diff -Nru symfony-6.4.21+dfsg/.agents/skills/symfony-merge-up/SKILL.md symfony-6.4.40+dfsg/.agents/skills/symfony-merge-up/SKILL.md
--- symfony-6.4.21+dfsg/.agents/skills/symfony-merge-up/SKILL.md	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/.agents/skills/symfony-merge-up/SKILL.md	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,207 @@
+---
+name: symfony-merge-up
+description: >
+  Cascade-merge maintained Symfony branches from oldest to newest (e.g.
+  6.4 → 7.4 → 8.0 → 8.1). Use when the user says "merge branches",
+  "merge up", "cascade merge", "sync branches", or "update branches".
+---
+
+# Symfony Branch Cascade Merge
+
+Merges each maintained branch into the next one, from oldest to newest.
+
+## Progress checklist
+
+- [ ] Step 0: Pre-flight checks
+- [ ] Step 1: Fetch maintained branches and pull them
+- [ ] Step 2: Cascade merge loop
+
+---
+
+## Confirmation rule
+
+Whenever the skill says **"Wait for confirmation"**, treat anything other than an
+explicit affirmative as **no**: stop and ask the user how they want to proceed.
+
+---
+
+## Step 0 — Pre-flight checks
+
+```bash
+git status --porcelain --untracked-files=no
+```
+
+If any output, **stop**:
+> "The working tree is not clean. Please commit or stash your changes first."
+
+---
+
+## Step 1 — Fetch maintained branches and pull them
+
+### 1a. Get the branch list
+
+```bash
+curl -s https://symfony.com/releases.json
+```
+
+Read `maintained_versions`. It is already sorted oldest → newest (e.g.
+`["6.4", "7.4", "8.0", "8.1"]`). Store as `BRANCHES`.
+
+### 1b. Pull every branch
+
+For each branch in `BRANCHES`:
+
+```bash
+git checkout <branch>
+git pull --ff-only origin <branch>
+```
+
+Using `--ff-only` ensures local branches haven't diverged from origin. If the
+pull fails, **stop** and report the error.
+
+---
+
+## Step 2 — Cascade merge loop
+
+For each consecutive pair `(SOURCE, TARGET)` in `BRANCHES`:
+
+### 2a. Merge
+
+```bash
+git checkout <TARGET>
+composer up
+git merge <SOURCE>
+```
+
+Three outcomes are possible:
+
+- **Already up-to-date:** print "✓ `<TARGET>` already up-to-date with `<SOURCE>`"
+  and skip to the next pair.
+- **Clean merge (no conflicts):** git creates the merge commit automatically.
+  Proceed directly to step 2c.
+- **Conflicts:** proceed to step 2b.
+
+### 2b. Resolve conflicts (only when git reports conflicts)
+
+List conflicts:
+
+```bash
+git diff --name-only --diff-filter=U
+```
+
+Read each conflicted file, resolve it, then `git add` it. When all are resolved:
+
+```bash
+git commit --no-edit
+```
+
+#### Conflict resolution rules
+
+| File pattern | Strategy |
+|---|---|
+| `CHANGELOG*.md` | Keep entries from both sides; newer branch entries on top |
+| Version constants, `composer.json` branch aliases | Keep the TARGET branch value |
+| Code files | Merge logically based on context; when unsure, ask the user |
+
+#### Legacy tests across major versions
+
+When merging from one major version to the next (e.g. 6.4 → 7.0), remove test
+methods marked with `@group legacy` or `#[Group('legacy')]`. The deprecations
+they cover have been removed in the new major version, so the tests are no
+longer relevant.
+
+After resolving, show `git diff HEAD~1` (first parent of the merge commit, i.e.
+the previous TARGET state) and wait for the user to confirm the resolution looks
+correct before proceeding.
+
+### 2c. Run tests for affected components
+
+Extract component, bridge, and bundle names from changed files:
+
+```bash
+git diff --name-only HEAD~1..HEAD
+```
+
+Paths look like `src/Symfony/{Component,Bridge,Bundle}/<NAME>/...`. Deduplicate,
+then run tests for each:
+
+```bash
+./phpunit src/Symfony/Component/<NAME>
+./phpunit src/Symfony/Bridge/<NAME>
+./phpunit src/Symfony/Bundle/<NAME>
+```
+
+For files under `src/Symfony/Contracts/`, run the single shared test suite:
+
+```bash
+./phpunit src/Symfony/Contracts
+```
+
+Ignore files outside these directories (root configs, `.github/`, etc.): they
+don't have component-level test suites.
+
+If tests fail or report PHPUnit deprecations (the PHPUnit version may differ
+between branches), first check whether the failure is pre-existing: run the same
+test on the TARGET branch before the merge (`git stash && git checkout HEAD~1`
+or check CI). Only fix failures introduced by the merge:
+1. Analyze and fix the code, including any PHPUnit deprecation notices.
+2. Commit the fix: `[<ComponentName>] Fix merge conflict resolution`.
+3. Re-run failing tests until green and deprecation-free.
+
+Report any pre-existing failures to the user without attempting to fix them.
+
+### 2d. Ask for confirmation before pushing
+
+Show:
+
+```
+Merge: <SOURCE> → <TARGET>
+Affected: <component list>
+Tests: all passing
+
+Commits since origin/<TARGET>:
+git log --oneline origin/<TARGET>..<TARGET>
+
+Ready to push? (yes / no)
+```
+
+**Wait for confirmation.** The user may make changes themselves before confirming.
+
+### 2e. Push and continue
+
+```bash
+git push origin <TARGET>
+```
+
+If the push fails, **stop** and report the error.
+
+Print "✓ `<SOURCE>` → `<TARGET>` done." and continue to the next pair.
+
+---
+
+## Final summary
+
+```
+All merges complete:
+  6.4 → 7.4  ✓
+  7.4 → 8.0  ✓
+  8.0 → 8.1  ✓
+```
+
+---
+
+## Gotchas
+
+- `CHANGELOG.md` conflicts are the most common; entries must be kept from both
+  sides, never dropped.
+- A merge can introduce test failures even without conflicts, because behavior
+  from the older branch may be incompatible with newer code. Always run tests.
+- Some components have slow test suites. Only run tests for components with
+  changed files, not the entire project.
+
+## Error handling
+
+- **Never** force-push or rewrite history.
+- **Never** use `--no-verify` on commits.
+- **Never** auto-recover from a failed `git push` or `git pull`. Stop and hand
+  control back to the user.
diff -Nru symfony-6.4.21+dfsg/CHANGELOG-6.4.md symfony-6.4.40+dfsg/CHANGELOG-6.4.md
--- symfony-6.4.21+dfsg/CHANGELOG-6.4.md	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/CHANGELOG-6.4.md	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,551 @@
 To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash
 To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v6.4.0...v6.4.1
 
+* 6.4.40 (2026-05-20)
+
+ * security #cve-2026-46626 [Runtime] Fix CVE-2024-50340 patch bypass by gating argv on $_SERVER['QUERY_STRING'] (nicolas-grekas)
+ * security #cve-2026-47212 [Notifier][Twilio] Reject webhooks with missing or invalid HMAC signature (nicolas-grekas)
+ * security #cve-2026-45753 [HtmlSanitizer] Sanitize URLs in action, formaction, poster and cite attributes (nicolas-grekas)
+ * security #cve-2026-45754 [Mailer][Mailjet] Reject webhooks with missing or invalid Basic credentials (alexandre-daubois)
+ * security #cve-2026-45072 [TwigBridge] Fix XSS issue in CodeExtension::fileExcerpt() (nicolas-grekas)
+ * security #cve-2026-45064 [HtmlSanitizer] Reject BiDi override characters and percent-encode spaces in URLs (nicolas-grekas)
+ * security #cve-2026-45066 [HtmlSanitizer] Fix `allowLinkHosts`/`allowMediaHosts` bypass via URL parser differentials and `<area>` misclassification (alexandre-daubois)
+ * security #cve-2026-45069 [Security] Add missing claims in `OidcTokenHandler` (alexandre-daubois)
+ * bug #64258 [DomCrawler] Fix `ChoiceFormField::addChoice()` clobbering values on multi-selects (nicolas-grekas)
+ * bug #64214 [HttpKernel] Preserve named-attribute override on Request/Session value resolvers (nicolas-grekas)
+ * security #cve-2026-45305 [Yaml] Harden the Parser::cleanup() regexes against catastrophic backtracking (nicolas-grekas)
+ * security #cve-2026-45304 [Yaml] Bound collection-alias resolution in the parser (nicolas-grekas)
+ * security #cve-2026-45133 [Yaml] Bound recursion depth in the parser (nicolas-grekas)
+ * security #cve-2026-45071 [DomCrawler] Fix XXE in addXmlContent() by not enabling `validateOnParse` (alexandre-daubois)
+ * security #cve-2026-45068 [Mailer] Add end-of-options separator before recipients in SendmailTransport; reject addresses starting with a dash (alexandre-daubois)
+ * security #cve-2026-45063 [Security] Anchor emailAddress regex to RDN boundary in X509Authenticator (alexandre-daubois)
+ * security #cve-2026-45065 [Routing] Fix regex alternation anchoring in `UrlGenerator` requirement validation (alexandre-daubois)
+ * security #cve-2026-45067 [Mime] Reject email addresses containing line breaks in Address (alexandre-daubois)
+ * security #cve-2026-45073 [Cache] Validate the prefix given to AbstractAdapter::clear() (nicolas-grekas)
+ * security #cve-2026-45077 [MonologBridge] Bind server:log to localhost by default (nicolas-grekas)
+
+* 6.4.39 (2026-05-13)
+
+ * bug #64198 [SecurityBundle] Allow defining security provider factories without config (hockdudu)
+ * bug #64189 [FrameworkBundle] Bump Request/Session value resolver priority above EntityValueResolver (ousamabenyounes)
+ * bug #64195 [Security] Remove the legacy nested unserialize() call from token and exception classes (nicolas-grekas)
+ * bug #64196 [Yaml] Reject non-stringables when using "!!binary" (nicolas-grekas)
+ * bug #64191 [Inflector][String] Fixed singularize `traces` > `trace` (ruudk)
+ * bug #64193 [Notifier] Use `hash_equals()` to compare webhook signatures for Vonage (alexandre-daubois)
+ * bug #64180 [Messenger][Amqp] Fix support for RabbitMQ v4 by adding delayed quorum queues (Jean85)
+ * bug #64187 [AssetMapper] Warn on missing bare CSS and JSON imports (ousamabenyounes)
+ * bug #64182 [Console] Fix signal handler scoping (jpollard3)
+ * bug #64181 [Security] Preserve webserver base URL in HttpUtils::createRequest() (ousamabenyounes)
+ * bug #64058 [Process] Ignore array env values before proc_open (dionisvl)
+ * bug #64179 [Filesystem] preserve source mode when copying files (nicolas-grekas)
+ * bug #64176 [Console] Make `ConsoleSectionOutput::overwrite()` atomic to fix sections + ProgressIndicator clear (Amoifr)
+ * bug #64174 [Scheduler] Use stored checkpoint as base date for debug:scheduler (ousamabenyounes)
+ * bug #64153 [Messenger] Drop trace args from FlattenException normalization (ousamabenyounes)
+ * bug #64150 [HttpKernel] Use backend-handled request for terminate listeners in HttpCache (Toflar)
+ * bug #64172 [WebProfilerBundle] Don’t try to access `RawMessage::$headers` (MatTheCat)
+ * bug #64148 [Dotenv] Don't truncate OS env vars containing $ when $_ENV is unpopulated (HMAZonderland)
+
+* 6.4.38 (2026-05-06)
+
+ * bug #63761 [Scheduler] Fix checkpoint state expiring when cache has default TTL (Amoifr)
+ * bug #64138 [Translation] Fix `TranslationPushCommand::getDomainsFromTranslatorBag` (MatTheCat)
+ * bug #63757 [Messenger][AmazonSqs] Do not override queue-level DelaySeconds when no DelayStamp is set (psantus)
+ * bug #64122 [Cache] Ensure compatibility with Relay extension 0.22.0 (nicolas-grekas)
+ * bug #64119 [Yaml] fix flow collection drops `&anchor` and `!!str &anchor` items (ousamabenyounes)
+ * bug #64086 [Messenger] Move `--time-limit` handling to Worker for proper capping with `--sleep` (Toflar)
+ * bug #64100 [Translation] URL-encode tmp path in XliffUtils::shouldEnableEntityLoader (ousamabenyounes)
+ * bug #64095 [RateLimiter] Carry over reserved tokens past fixed window resets (ousamabenyounes)
+ * bug #64099 [Ldap] Cast `default_socket_timeout` to `int` (ousamabenyounes)
+
+* 6.4.37 (2026-05-01)
+
+ * bug #64090 [DependencyInjection] Reject circular references through a factory builder's setup (nicolas-grekas)
+ * bug #64083 [Messenger] Alias the AMQP "user" connection option to "login" (lacatoire)
+ * bug #64084 [Messenger] Do not sleep after worker is stopped during idle cycle (Toflar)
+ * bug #64067 [Serializer] Move type-mismatch and uninitialized-property handling into concrete normalizers (ousamabenyounes)
+ * bug #64065 [Notifier][Ntfy] Fix Basic auth header by keeping base64 padding (ousamabenyounes)
+ * bug #64045 [Config] Allow env placeholders in NumericNode min/max checks (ousamabenyounes)
+ * bug #64047 [Mime] Preserve inline part filename instead of overwriting it with the Content-ID (ousamabenyounes)
+ * bug #64044 [FrameworkBundle] Apply tagged MIME type guessers in File::getMimeType() (ousamabenyounes)
+ * bug #64030 [MonologBridge] Guard against re-entrant calls in AbstractTokenProcessor (ousamabenyounes)
+ * bug #64060 [Cache] Normalize default_lifetime for pools wrapped by ChainAdapter (ostrolucky)
+ * bug #63996 [RateLimiter] Keep token bucket alive while reservation debt is unpaid (ousamabenyounes)
+ * bug #63975 [Lock] Avoid aborting outer PostgreSQL transaction on lock contention (lacatoire)
+ * bug #64046 [HttpClient] Don't share CURL_LOCK_DATA_CONNECT to honor max_host_connections (ousamabenyounes)
+ * bug #64036 [Validator] fix mapping properties using property hooks (mrossard)
+ * bug #64024 [AssetMapper] Allow spaces in version constraints (MatTheCat)
+ * bug #64020 [Dotenv] Strip NUL byte placeholder from values passed to `putenv()` (alexandre-daubois)
+ * bug #63982 [Messenger] Respect SentToFailureTransportStamp when failure transports are configured (ousamabenyounes)
+ * bug #63990 [Messenger] Do not apply --max to --stats unless explicitly set (ousamabenyounes)
+ * bug #63979 [Serializer] Capture constructor TypeError when collecting denormalization errors (lacatoire)
+ * bug #64006 [DependencyInjection] Fix hidden dependency on symfony/config in PhpDumper (GromNaN)
+ * bug #63981 [Routing] Honor the Request's method in UrlMatcher::matchRequest() (ousamabenyounes)
+ * bug #63980 [DependencyInjection] Log every build parameter removed during compilation (ousamabenyounes)
+ * bug #63974 [Serializer] Make `BackedEnumNormalizer` unconditionally return `null` on invalid value if `allow_invalid_values` is set (MatTheCat)
+ * bug #63964 [Cache] Ensure internal state is cleared in TagAwareAdapter::reset() … (KevinMartinsDev)
+ * bug #63955 [Dotenv] Fix variable corruption when loading env more than once (nicolas-grekas)
+ * bug #63959 [VarExporter] Don't warn for __sleep()-listed uninitialized declared properties (nicolas-grekas)
+ * bug #63952 [Scheduler] Respect `console.command` DI tag `command` attribute (nicolas-grekas)
+ * bug #63951 [DependencyInjection] Fix autowiring nullable intersection types (HypeMC)
+ * bug #63938 [Workflow] Fix HTML escaping in `GraphvizDumper` labels (alexandre-daubois)
+ * bug #63909 [Filesystem] Fix Path methods replacing backslashes on UNIX (Amoifr)
+ * bug #63922 [DependencyInjection] Fix excludeSelf not applied when using AutowireLocator (GromNaN)
+ * bug #63894 [Dotenv] Fix self-referencing variable resolution with suffix/prefix (Amoifr)
+ * bug #63883 [Serializer] Fix getAllowedAttributes() when groups contain wildcard '*' (takashiraki)
+ * bug #63876 [DependencyInjection] Fix instanceof autoconfiguration for anonymous classes (jlabedo)
+ * bug #63860 [Cache] Fix Psr16Cache::getMultiple() returning wrapper values when using TTL (nicolas-grekas)
+ * bug #63859 [Console] Fix shell completion when SHELL_VERBOSITY=-1 (nicolas-grekas)
+ * bug #63847 [EventDispatcher] Fix TraceableEventDispatcher when reset during dispatch (aschempp)
+ * data #63849  Remove needs-review flag for Afrikaans (af) (payene)
+
+* 6.4.36 (2026-03-31)
+
+ * bug #63823 [DependencyInjection] Fix rejecting inline services in parameters section (nicolas-grekas)
+ * bug #63817 [Serializer] Fix denormalization of nested array with key types (mtarld)
+ * bug #63818 [Cache] Ensure compatibility with Relay extension 0.21.0 (lyrixx)
+ * bug #63806 [Ldap] Make the Adapter resettable (kira0269, nicolas-grekas)
+ * bug #63720 [MonologBridge] Fix `ConsoleHandler` losing output after nested command terminates (mp3000mp)
+ * bug #63723 [EventDispatcher] Fix memory leak in TraceableEventDispatcher for long-running processes (wazum)
+ * bug #63749 [Console] Fix performance regression in OutputFormatter for ASCII content (pcescon)
+ * bug #63683 [TwigBridge] Fix image method to use DataPart content ID (pavelwitassek)
+ * bug #63787 [Serializer] Fix can*() prefix support in GetSetMethodNormalizer (sn3mdev)
+ * bug #63747 [Cache] Fix `Psr16Cache::getMultiple()` returning `ValueWrapper` with `TagAwareAdapter` (pcescon)
+ * bug #63766 [Dotenv] Fix preloading warning by replacing anonymous exception class (pcescon)
+ * bug #63777 [FrameworkBundle] Fix setting `router.request_context.base_url` when option `default_uri` is defined (nicolas-grekas)
+ * bug #63692 [HttpClient][EventSourceHttpClient] Fix broken streams when first event is delayed (LachlanArthur)
+ * bug #63726 [HttpClient] Unset push response content when the push handler is released (sakozoko)
+ * bug #63736 [Cache] Fix undefined array key when tag save fails in AbstractTagAwareAdapter (pcescon)
+ * bug #63724 [HttpKernel] Fix allowing invalid `#[Autowire]` references in controller arguments (valtzu)
+ * bug #63691 [Messenger] Use SignalRegistry::isSupported() in ConsumeMessagesCommand (shyim)
+ * bug #63674 [Dotenv] Fix self-referencing variables with defaults and env key resolution during deferred expansion (nicolas-grekas)
+ * bug #63676 [HttpKernel] Reset router locale to default when finishing main request (guillaumeVDP)
+ * bug #63679 [WebProfilerBundle] Only decrement pendingRequests when it's more than zero (andyexeter)
+ * bug #63655 [Cache] Fix ChainAdapter ignoring item expiry when propagating to earlier adapters (guillaumeVDP)
+ * bug #63656 [Form] Fix typed property initialization in ValidatorExtension (SeverinGloeckle)
+ * bug #63643 [Messenger] Fix duplicate pending messages in Redis transport with batch handlers (wazum)
+ * bug #63639 [ErrorHandler] "`@method`" deprecation notices are missing when interface inheritance is used (mpdude)
+ * bug #63635 [VarExporter] Skip rewriting initialized readonly properties during hydration (nicolas-grekas)
+ * bug #63629  Fix deprecation notices for "`@method`" annotations and classes with `__call()` (mpdude)
+ * bug #63620 [Dotenv] Fix escaped dollar signs lost during deferred variable resolution (nicolas-grekas)
+
+* 6.4.35 (2026-03-06)
+
+ * bug #63604 [Console] Fix `ApplicationTester` ignoring `interactive` and `verbosity` options when `SHELL_VERBOSITY` is set (nicolas-grekas)
+ * bug #63602 [Serializer] Fix denormalization of magic `__set` properties (nicolas-grekas)
+ * bug #63603 [HttpFoundation] Fix session cookie_lifetime not applied in mock session storage (nicolas-grekas)
+ * bug #63598 [UrlSanitizer] Add 'sms' to hostless schemes (hivokas)
+ * bug #63592 [Cache] Add timeout and slot eviction to LockRegistry stampede prevention (nicolas-grekas)
+ * bug #63570 [Console] Fix OUTPUT_RAW corrupting binary content on Windows (guillaumeVDP)
+ * bug #63584 [Mime] Use shell_exec() instead of passthru() in FileBinaryMimeTypeGuesser (nicolas-grekas)
+ * bug #63574 [FrameworkBundle] Fix stale container after reboot in KernelTestCase (nicolas-grekas)
+ * bug #63572 [Form] Fix duplicate validation errors when ValidatorExtension is instantiated multiple times (nicolas-grekas)
+ * bug #63568 [TwigBridge] Fix Bootstrap 4 horizontal layout broken by form errors moved outside label (nicolas-grekas)
+ * bug #63555 [HttpKernel] Fix int-to-float coercion for JSON #[MapRequestPayload] with pre-parsed array data (eyupcanakman)
+ * bug #63559 [Messenger] Flush batch handlers after inactivity timeout when worker is busy (nicolas-grekas)
+ * bug #63523 [Mailer][Mailjet] Fix inline attachments with custom Content-ID (99Vicky)
+ * bug #63550 [RateLimiter] Prevent negative token from causing integer underflow (jhogervorst)
+ * bug #63526 [WebProfilerBundle] Fix Symfony web debug toolbar not being displayed (zoglo)
+ * bug #63500 [PhpUnitBridge] Consider PSR-0/PSR-4 fallback dirs when building paths (mpdude)
+ * bug #63533 [DebugBundle] gracefully handle the kernel.runtime_mode.web parameter missing (xabbuh)
+ * bug #63534 [Validator] Regex bypass when match is false with too big input (vincent4vx)
+ * bug #63496 [Dotenv] Defer variable and command expansion to account for overrides from subsequent .env files (nicolas-grekas)
+ * bug #63506 [DependencyInjection] Fix `TypeError` when using a custom container base class with typed `$parameterBag` (nicolas-grekas)
+
+* 6.4.34 (2026-02-26)
+
+ * bug #63492 [RateLimiter] Fix retryAfter when consuming exactly all remaining tokens in FixedWindow and TokenBucket (ERuban)
+ * bug #63491 [RateLimiter] Fix `retryAfter` when consuming exactly all remaining tokens in `SlidingWindow` (ERuban)
+ * bug #52413 [RateLimiter] Fix reservations outside the second fixed window (SanderSander)
+ * bug #57392 [Serializer][Validator] Fix propertyPath in ConstraintViolationListNormalizer with MetadataAwareNameConverter (antten)
+ * bug #54236 [Config][Routing] Fix exclude option being ignored for non-glob and PSR-4 resources (NeilPeyssard)
+ * bug #47424 [Filesystem] makePathRelative with existing files, remove ending / (Petar Marjanovic)
+ * bug #52083 [Messenger][Amqp] Don't use retry routing key when sending to failure transport (Fabien Perroquin)
+ * bug #63275 [Messenger] Fix re-sending failed messages to a different failure transport (bartholdbos)
+ * bug #63473 [DependencyInjection] Fix PriorityTaggedServiceTrait not discovering `#[AsTaggedItem]` on decorated services (lacatoire)
+ * bug #63472 [TwigBridge] Fix Bootstrap 4 form errors rendered inside `<label>` (asispts)
+ * bug #54324 [Form] Fix merging POST params and files when collection entries have mismatched indices (priyadi)
+ * bug #52722 [Validator] Fix type error for non-array items when `Unique::fields` is set (aprat84)
+ * bug #54703 [HttpKernel] Fix default locale ignored when Accept-Language has no enabled-locale match (karimmorel)
+ * bug #62681 [FrameworkBundle] Make `ConfigDebugCommand` use its container to resolve env vars (MatTheCat)
+ * bug #47432 [Console] Fix various completion edge cases (Seldaek)
+ * bug #63450 [Form] Fix missing resource tracking for type extensions in FormPass (ranpafin)
+ * bug #63454 [Security] Fix lazy firewall triggering remember me authentication on POST requests to public routes (nicolas-grekas)
+ * bug #63460 [Workflow] Implement missing `reset()` method in `TraceableWorkflow` (santysisi)
+ * bug #63456 [Console] Fix validator exception masked by MissingInputException on empty input (nicolas-grekas)
+ * bug #63428 [Serializer] Fix handling of constructor enum denormalization errors (vvaswani)
+ * bug #63438 [Console] ProgressIndicator console helper display with multiple processes (guillaumeVDP)
+ * bug #63436 [Console] Silence shell_exec warning in hasSttyAvailable (lacatoire)
+ * bug #63448 [HttpFoundation] Handle empty session data in updateTimestamp() to fix compat with PHP 8.6 (nicolas-grekas)
+ * bug #63437 [Cache] Wrap `DoctrineDbalAdapter::doSave()` in savepoint to prevent transaction poisoning (lacatoire)
+ * bug #63405 [Serializer] Fix passing context option to property-info (nicolas-grekas)
+ * bug #63400 [CssSelector] Fix memory exhaustion by adding an LRU cache to CssSelectorConverter (arcangelini)
+ * bug #63386 [HttpKernel] Handle invalid backed-enum values gracefully in RequestPayloadValueResolver (nicolas-grekas)
+ * bug #63384 [FrameworkBundle] fail gracefully when the semaphore config is used but the component is missing (xabbuh)
+ * bug #63379 [DependencyInjection] Prevent false unused-env errors for abstract definitions removed at compile time (nicolas-grekas)
+ * bug #63344 [PropertyInfo] Prioritize property type over is/has/can accessors (nicolas-grekas)
+ * bug #63353 [Validator] Fix comparison validator crash on extreme dates (lacatoire)
+ * bug #63351 [Console] Fix SymfonyStyle block output with \r\n line endings (lacatoire)
+ * bug #63342 [PropertyInfo] fix union with mixed handling for the legacy PropertyInfo Type (xabbuh)
+ * bug #63319 [HttpFoundation] BinaryFileResponse: always return 206 if Range is valid (Jimbolino)
+ * bug #63307 [DependencyInjection] Fix stale binding lookup in `ResolveBindingsPass` error message (yoeunes)
+ * bug #63317 [Asset] Fix JsonManifestVersionStrategy exception on missing manifest in non-strict mode (claude)
+ * bug #63324 [Cache] Fix DSN auth not passed to Redis/RedisCluster/Relay in RedisTrait (ckrack)
+ * bug #63324 [Cache] Fix DSN auth not passed to Redis/RedisCluster/Relay in RedisTrait (ckrack)
+ * bug #57292 [Yaml] Fix parsing nested mappings in sequences (HypeMC)
+ * bug #63306 [Cache] Revert "Fix DSN auth not passed to clusters in RedisTrait" (nicolas-grekas)
+ * bug #63272 [Messenger][Cache] Fix forwarding SSL settings to the redis sentinel (CientistaDaWeb)
+ * bug #63288 [Messenger] Optimize serialized size of ErrorDetailsStamp (nicolas-grekas)
+ * bug #63292 [Messenger] Fix AMQP heartbeat reconnection during in-flight message handling (wazum)
+ * bug #63278 [Mailer] Fix Mailjet SMTP relay X-MJ-TemplateErrorReporting header format to MailjetApiTransport (mwijngaard)
+ * bug #63282 [Messenger] Revert batch processing fix (HypeMC)
+ * bug #63259 [FrameworkBundle] Fix BrowserKitAssertionsTrait compatibility with HttpBrowser (thiagomp)
+ * bug #63281 [String] Treat emoji VS16 as wide in width calc (fabpot)
+ * bug #63279 [Serializer] Normalize static methods when they have groups (digilist)
+ * bug #62970 [WebProfilerBundle] Fix hot reload support (FrankenPHP) (dunglas)
+ * bug #63271 [DoctrineBridge] Respect `schema_filter` in schema listeners (wazum)
+ * bug #63262 [HttpFoundation] Reject invalid paths (nicolas-grekas)
+ * bug #58460  Fix destructor throwing while timeout was handled (Seldaek, nicolas-grekas)
+ * bug #63255 [FrameworkBundle] Add missing `useAttributeAsKey` calls (MatTheCat)
+ * bug #57561 [DependencyInjection] Fix ignore invalid_reference behavior param for the some services (Nguyen26052004)
+ * bug #54304 [HttpFoundation] When calling UploadedFile::getErrorMessage() to a file which has no error and is uploaded successfully, it should not return an error (ArmCyber)
+ * bug #63238 [Console] Fall back to 0 when getCode() does not provide an integer (makomweb)
+ * bug #63239 [FrameworkBundle] Fix accessing the test container when using KernelTestCase in non-debug mode (nicolas-grekas)
+ * bug #58433 [Messenger] Avoid skipping batch handlers on flush (Erwin Houtsma)
+ * bug #63234 [DependencyInjection][HttpKernel] Fix parsing Target attributes on properties and on controllers (nicolas-grekas)
+ * bug #63231 [Translation] Fix for Crowdin Translation File Replaced with Partial Data When Pushing Default Locale Without --force (bhdnb)
+ * bug #63226 [Messenger] Fix calling nack() when ack() fails (nicolas-grekas)
+ * bug #63230 [Cache][HttpFoundation][Lock] fix engine declaration on mysql pdo table creations (tandev)
+ * bug #63225 [Finder] Fix SortableIterator inadvertently and inconsistently deduplicating appended iterators (nicolas-grekas)
+
+* 6.4.33 (2026-01-28)
+
+ * bug #63212 [HttpClient] Fix dealing with truncated streams after headers arrived with CurlHttpClient (nicolas-grekas)
+ * bug #63208 [PropertyInfo] Fix DocBlock resolution for inherited promoted properties (yoeunes)
+ * bug #63170 [RateLimiter] Persist state when consuming negative tokens (jhogervorst)
+ * bug #63137 [HttpFoundation] Fix PdoSessionHandler charset-collation mismatch with the Doctrine DBAL (samy-mahmoudi)
+ * bug #63211 [HttpClient] Fix dealing with multiple levels of AsyncResponse decoration (nicolas-grekas)
+ * bug #63202 [Messenger] Only send `UNLISTEN` query if we are actively listening (jwage)
+ * security #cve-2026-24739 [Process] Fix escaping for MSYS on Windows (nicolas-grekas)
+ * bug #63204 [PropertyInfo] Fix resolution of self/parent types in inherited DocBlocks (yoeunes)
+ * bug #63195 [FrameworkBundle] Clean `http_cache` dir in `KernelTestCase::ensureKernelShutdown()` (nicolas-grekas)
+ * bug #63164 [Process] Fix escaping for MSYS on Windows (nicolas-grekas)
+ * bug #63192 [Finder] Fix appending empty iterators (nicolas-grekas)
+ * bug #63193 [PropertyInfo] Conflict with phpdocumentor/reflection-docblock >= 6 (branch 6.4 only) (nicolas-grekas)
+ * bug #63191  [Serializer] Apply `#[Ignore]` to the right metadata (VincentLanglet)
+
+* 6.4.32 (2026-01-24)
+
+ * bug #63160 [DependencyInjection] Fix alias chain inversion when deprecated alias points to decorated service (amateescu)
+ * bug #62852 [Cache] Fix DSN auth not passed to clusters in RedisTrait (wikando-ck)
+ * bug #62959 [PropertyInfo] do not parse `scalar` as an object (xabbuh)
+ * bug #63136 [Serializer] Fix is/has/can accessor naming to strip prefix unless colliding (nicolas-grekas)
+ * bug #63144 [Form] Fix `OrderedHashMap` auto-increment logic with mixed keys (yoeunes)
+ * bug #63154 [Form] don't skip custom view transformers while normalizing submitted newlines (xabbuh)
+ * bug #63051 [DoctrineBridge] Fix custom type based on Uid on entity loader (IndraGunawan)
+ * bug #63108 [ErrorHandler] fix parsing of complexe type (jderusse)
+ * bug #63126 [PropertyInfo] Throw when phpdocumentor/reflection-docblock v6 is in use (branch 6.4 only) (nicolas-grekas)
+ * bug #63113 [Form] Fix ICU 72+ whitespace handling in `DateTimeToLocalizedStringTransformer` (roukmoute)
+ * bug #63052 [Serializer] Fix NameConverter not detecting wrong input format with `allow_extra_attributes=false` (xersion22)
+ * bug #63064 [Translation] Fix handling of empty lines in CsvFileLoader (fnogatz)
+ * bug #63043 [FrameworkBundle] Check for console package before register `CommandDataCollector` (gimler)
+ * bug #63016 [FrameworkBundle] Ensure a fresh container is used after cache warmup in `KernelTestCase` (lyrixx)
+ * bug #62762 [Finder] Fix `Finder::append()` breaking generic typing contract (jack-worman)
+ * bug #63004 [Process] Ignore invalid env var names (nicolas-grekas)
+ * bug #63005 [FrameworkBundle] Revert destination file change for secrets:decrypt-to-local (nicolas-grekas)
+ * bug #63012 [HttpFoundation] Fix double-prefixing of session keys when using redis/memcached (nicolas-grekas)
+ * bug #63001 [Scheduler] Fix array to string conversion in `#[AsCronTask]` arguments (serhiilabs)
+ * bug #62953 [Serializer] Fix removing nested values (gnoddep)
+ * bug #62988 [Messenger] Fix DBALv4 support by replacing trigger by explicit pg_notify() (nicolas-grekas)
+ * bug #62795 [FrameworkBundle] Fix mocking decorated services in tests (nicolas-grekas)
+ * bug #62838 [Serializer] Fix serialization of method with same name than property (VincentLanglet)
+ * bug #62872 [Messenger] Fix processing batches (HypeMC)
+ * bug #62848 [HttpKernel] Fix using HTTP Cache in worker mode (nicolas-grekas, stakovicz)
+ * bug #62954 [HttpClient] Fix existing headers must be replaced in CachingHttpClient (Toflar)
+ * bug #62884 [Form][TwigBridge] Prevent cached block prefixes from leaking across nested collections (nicolas-grekas)
+ * bug #62886 [PropertyAccess][PropertyInfo][Serializer] Skip methods that look like getters but return void or never (jordikroon)
+
+* 6.4.31 (2025-12-31)
+
+ * bug #62873 [Cache] Fix namespace of chained pools when using another chain as template (nicolas-grekas)
+ * bug #62840 [Cache] Fix stampede protection when forcing item recomputation (nicolas-grekas)
+ * bug #62845 [HttpClient] Fix ever growing `$maxHostConnections` (nicolas-grekas)
+ * bug #62843 [DependencyInjection] Fix referencing build-time array parameters (nicolas-grekas)
+ * bug #62841 [Form] Always normalize CRLF and CR to LF in `TextareaType` (alexandre-daubois)
+ * bug #62490 [FrameworkBundle] Fix cache:pool:prune exit code on failure (yoeunes)
+ * bug #62813 [Console] Fix EofShortcut instruction when using a modern terminal on Windows (fperxas)
+ * bug #62827 [Console] Fix choice autocomplete issue when string has spaces (ayyoub-afwallah)
+ * bug #62797 [Serializer] Fix inconsistent field naming from accessors when using groups (nicolas-grekas)
+ * bug #62741 [Finder] Fix converting unanchored glob patterns to regex (nicolas-grekas)
+ * bug #62759 [Form] do not use PHPUnit mock objects without configured expectations (xabbuh)
+ * bug #62796 [Security] do not use PHPUnit mock objects without configured expectations (xabbuh)
+ * bug #62808 [Translation] do not use PHPUnit mock objects without configured expectations (xabbuh)
+ * bug #62775 [Process] Fix dealing with broken stdin pipes (nicolas-grekas)
+ * bug #62793 [Cache] Fix calling the callback wrapper for `ChainAdapter` (nicolas-grekas)
+ * bug #62799 [Cache][HttpFoundation] Fix VARBINARY columns on sqlsrv (nicolas-grekas)
+ * bug #62803 [AssetMapper] Batch concurrent requests to prevent flooding jsdelivr (nicolas-grekas)
+ * bug #62810 [TwigBundle] Align TemplateIterator handling of @! original bundle templates with TwigExtension (mbessolov)
+ * bug #62812 [Messenger][AMQP] Fix negative delays with AMQP messenger transport (hockdudu)
+ * bug #62772 [PropertyInfo] Fix calling same-named method with required args instead of reading public property (makraz)
+ * bug #62773 [Serializer] Do not skip nested `null` values when denormalizing (MatTheCat)
+ * bug #62745 [Validator] do not use PHPUnit mock objects without configured expectations (xabbuh)
+ * bug #61963 [Doctrine][Messenger] Remove old MySQL special handling that causes deadlocks (psihius)
+ * bug #62744 [TwigBridge] do not use PHPUnit mock objects without configured expectations (xabbuh)
+ * bug #62756 [Mailer] do not use PHPUnit mock objects without configured expectations (xabbuh)
+ * bug #62740 [Serializer] Fix php 8.5 warning unexpected NAN value was coerced to … (aaa2000)
+ * bug #62758 [BrowserKit] Allow Cookie expiration to be an int (derrabus)
+ * bug #62396 [PropertyInfo] Fix inconsistency between isWritable and getWriteInfo (yoeunes)
+ * bug #62699 [HttpClient] Fix `ScopingHttpClient` to always pass `base_uri` as `string` instead of parsed `array` (santysisi)
+ * bug #62717 [PropertyInfo] fix ``@var`` tag support for `PhpStanExtractor` (qconer)
+ * bug #62706 [HttpClient] Fix PHP deprecation when using `AmpHttpClient` (nicolas-grekas)
+ * bug #62698 [HttpClient] Fix copy as curl for arrays with resources & unreachable host (HypeMC)
+ * bug #62686 [PropertyInfo] Fix PseudoType support in PhpDocTypeHelper (VincentLanglet)
+ * bug #62715 [DependencyInjection] Fix sharing services used only by tagged iterators (nicolas-grekas)
+ * bug #62714 [DependencyInjection] Handle recursive factory reentry for shared services in `PhpDumper` (nicolas-grekas)
+
+* 6.4.30 (2025-12-07)
+
+ * bug #62675 [DependencyInjection] Fix dealing with errored service definitions (nicolas-grekas)
+ * bug #62488 [HttpKernel] Make `#[Cache]` respect all explicit cache directives set in controller (ayyoub-afwallah)
+ * bug #62665 [DependencyInjection] Revert "bug #62541  Reset resolved state when setting a parameter" (nicolas-grekas)
+ * bug #61962  [Console] Handle signals on text input (valx76)
+ * bug #62661 [Runtime] Reuse the already created Request object when the app needs one as argument and returns a kernel (nicolas-grekas)
+ * bug #62621 [Form] Fix moneytype step (Belhassen)
+ * bug #62627 [Console] Preserve `--help` option when a command is not found (santysisi)
+ * bug #62619 [Messenger] Fix PHP 8.5 deprecation for pgsqlGetNotify() in PostgreSQL transport (Shine-neko)
+ * bug #62612 [Yaml] Fix regression handling blank lines in unquoted scalars (yoeunes)
+ * bug #62645 [HttpClient] Fix sharing CurlClientState between clones of CurlHttpClient instances (nicolas-grekas)
+ * bug #62541 [DependencyInjection] Reset resolved state when setting a parameter (yoeunes)
+ * bug #62602 [Cache] Fix the creation of a redis connection with only ext-relay (stof)
+ * bug #62577 [PropertyInfo] treat `mixed[]` the same as `array` when getting types from docblocks (xabbuh)
+ * bug #62498 [FrameworkBundle] fix merging of enabled locales (dmaicher)
+ * bug #62551 [FrameworkBundle] register attribute loader arguments in a forward-compatible way (xabbuh)
+ * bug #62482 [DependencyInjection] Fix loose validation in `#[Autowire]` attribute (yoeunes)
+ * bug #62513 [FrameworkBundle] Add missing `useAttributeAsKey` calls (MatTheCat)
+ * bug #62523 [DependencyInjection] Fix state corruption in `PhpFileLoader` during recursive imports (yoeunes)
+ * bug #62536 [Cache] ensure compatibility with Relay extension 0.20.0 (xabbuh)
+ * bug #62506 [DependencyInjection] Fix `query_string` env processor for URLs without query string (yoeunes)
+ * bug #62503 [HttpClient] Fix releasing uploaded stream resources (nicolas-grekas)
+ * bug #62485 [DependencyInjection] Fix loop corruption in `CheckTypeDeclarationsPass` (yoeunes)
+ * bug #62486 [DependencyInjection] Fix invalid PHP syntax for nullable `TypedReference` in `PhpDumper` (yoeunes)
+ * bug #62489 [FrameworkBundle] Fix TypeError when traversing scalar values in debug:config (yoeunes)
+ * bug #62493 [Console] Fix exception message when abbreviation matches multiple hidden commands (yoeunes)
+ * bug #62471 [String] Fix normalization in trimPrefix/trimSuffix (yoeunes)
+ * bug #62456 [AssetMapper] Fix entrypoint status lost during update (yoeunes)
+ * bug #62416 [Console] Fix completion for global options values (HypeMC)
+ * bug #62458 [Workflow] Fix `MethodMarkingStore` crash with inherited uninitialized properties (yoeunes)
+ * bug #62459 [Routing] Fix case sensitivity for static host matching in compiled routes (yoeunes)
+ * bug #62461 [Routing] Fix localized prefix updates breaking aliases (yoeunes)
+ * bug #62460 [Routing] Fix addNamePrefix breaking aliases to external routes (yoeunes)
+ * bug #62449 [HttpKernel] Fix using MapRequestPayload on nullable arguments (nicolas-grekas)
+ * bug #62415 [HttpClient] Don't reset unused clients in data collector (HypeMC)
+ * bug #62437 [DependencyInjection] Fix preloading `LazyClosure` (nicolas-grekas)
+ * bug #62409 [Yaml] Align unquoted multiline scalar parsing with spec for comments (yoeunes)
+ * bug #62398 [Cache] Fix accepting named closures as early-expiration callbacks (nicolas-grekas)
+ * bug #62406 [Notifier] do not use recipient phone numbers as sender e-mail addresses (xabbuh)
+ * bug #62407 [FrameworkBundle] work around limitation in `JsonResponse` when the data is `null` (xabbuh)
+ * bug #62400 [Form] Fix EnumType choice_label logic for grouped choices (yoeunes)
+ * bug #62372 [Cache] Recognize saveDeferred events as writes in `CacheDataCollector` (yitznewton)
+ * bug #62335 [Console] Fix signal handlers not being cleared after command termination (yoeunes)
+ * bug #62348 [Translation][Lokalise] fix "Project too big for sync export" (santysisi)
+ * bug #62287 [HttpFoundation] Fix AcceptHeader overwrites items with different parameters (yoeunes)
+ * bug #62356 [HttpClient] Fix `Warning: curl_multi_select(): timeout must be positive` (Jeroeny)
+ * bug #62334 [PropertyInfo] Fix `ReflectionExtractor` handling of underscore-only property names (yoeunes)
+ * bug #58473 [Serializer] Fix `AbstractObjectNormalizer` to allow scalar values to be normalized (Hanmac, xabbuh)
+ * bug #62093 [Security] Fix `HttpUtils::createRequest()` when the context’s base URL isn’t empty (MatTheCat)
+ * bug #62007 [Serializer] fix inherited properties normalization (Link1515)
+ * bug #62286 [Cache] compatibility with ext-redis 6.3 (xabbuh)
+ * bug #62321 [Serializer] Fix BackedEnumNormalizer behavior with partial denormalization (yoeunes)
+ * bug #62344 [OptionsResolver] Fix missing prototype key in nested error paths (yoeunes)
+ * bug #62346 [Clock] Align MockClock::sleep() behavior with NativeClock for negative values (yoeunes)
+ * bug #62347 [OptionsResolver] Ensure remove() also unsets deprecation status (yoeunes)
+ * bug #62359 [Yaml] Fix parsing of unquoted multiline scalars with comments or blank lines (yoeunes)
+ * bug #62350 [ExpressionLanguage] Compile numbers with var_export in Compiler::repr for thread-safety (yoeunes)
+
+* 6.4.29 (2025-11-12)
+
+ * security #cve-2025-64500 [HttpFoundation] Fix parsing pathinfo with no leading slash (nicolas-grekas)
+
+* 6.4.28 (2025-11-06)
+
+ * bug #62324 [HttpFoundation] Fix parsing hosts and schemes in URLs (nicolas-grekas)
+ * bug #62171 [Messenger] Fix commands writing to `STDERR` instead of `STDOUT` (wazum)
+ * bug #62315  Keep body size limit for AMP redirects (villermen)
+ * bug #62091 [BrowserKit] The BrowserKit history with parameter separator without slash. (biozshock)
+ * bug #62290 [Routing] Fix matching the "0" URL (cs278)
+ * bug #62285 [HttpClient] Reject 3xx pushed responses (nicolas-grekas)
+ * bug #62267 [Config] Use the empty string instead of null as an array offset (santysisi)
+ * bug #62246 [HttpFoundation] Allow Request::setFormat() to override predefined formats (longwave)
+ * bug #62242 [MonologBridge] Accept HttpExceptionInterface in HttpCodeActivationStrategy (GromNaN)
+ * bug #62222 [Cache] fix ext-redis 6.2.0 compatibility (xabbuh)
+ * bug #62201 [HtmlSanitizer] Remove `srcdoc` from allowed attributes (Spomky)
+
+* 6.4.27 (2025-10-28)
+
+ * bug #62145 [Mailer] Fix parsing message ids in SMTP responses (hacfi)
+ * bug #62096 [Cache] fix compatibility with Relay 0.12.1 (xabbuh)
+ * bug #62078 [FrameworkBundle] Fix secrets:encrypt-from-local (nicolas-grekas)
+ * bug #62028 [Validator] Update regular expression in URL validator (mjaschen)
+ * bug #62054 [AssetMapper] Fix parsing `@import` that don't use url() (nicolas-grekas)
+ * bug #62041 [DebugBundle] Wire `DumpDataCollector`'s `webMode` argument (HypeMC)
+ * bug #62038 [Translation][Loco] filter should be empty when filtering on all domains (atomiix)
+ * bug #62003 [Serializer] Fix unexpected type in denormalization errors when float|int union type used in constructor with non numeric string in form-data request (d-mitrofanov-v)
+ * bug #61990 [Cache][RedisTagAwareAdapter] Add Predis2 Replication Interface check (BrianMwit)
+ * bug #61960 [WebProfilerBundle] ”finish” errored requests (MatTheCat)
+ * bug #61945 [Cache] fix compatibility with Relay 0.12 (xabbuh)
+ * bug #61928 [Form] keep labels from configured choices (xabbuh)
+ * bug #61889 [Serializer] Fix discriminator class mapping with allow_extra_attributes=false (chris54721)
+ * bug #61861 [Console] Ensure terminal is usable after termination signal (johnstevenson)
+ * bug #61876 [Mailer][MailJet] Fix forbidden headers case-sensitive comparison (benjamintoussaint)
+ * bug #61875 [Form] do not cast too big floats to int (xabbuh)
+
+* 6.4.26 (2025-09-27)
+
+ * bug #61856 [Console] do not pass the empty string to ord() (xabbuh)
+ * bug #61855 [DoctrineBridge][Yaml] don't cast strings exceeding the min/max int ranges (xabbuh)
+ * bug #61844  do not coerce NAN to other types (xabbuh)
+ * bug #61825 [DoctrineBridge] Make `EntityUserProvider`s pass attributes to their loader (MatTheCat)
+ * bug #61793  [AssetMapper] Prevent duplicate entries in module preloads (xDeSwa)
+ * bug #61757 [FrameworkBundle] Perform-no-deep-merging on workflow transitions' from/to configs (nicolas-grekas)
+ * bug #61766  Fix ord()-related PHP 8.5 deprecations (nicolas-grekas)
+ * bug #61368 [HttpKernel] Refine Vary header check to skip special handling of 'Accept-Language' when it's the only entry and '_vary_by_language' is `true`  in `CacheAttributeListener` (santysisi)
+ * bug #61746 [Serializer] Fix unknown type in denormalization errors when union type used in constructor (d-mitrofanov-v)
+ * bug #61724 [Console] Fix handling of `\E` in Bash completion (HypeMC)
+ * bug #61518 [HttpKernel] Handle an array vary header in the http cache store for write (philpichet)
+ * bug #61736 [PhpUnitBridge] do not try to modify the result of a PhptTestCase (xabbuh)
+ * bug #61731 [PhpUnitBridge] Fix gathering deprecation in phpt (nicolas-grekas)
+ * bug #61729 [PhpUnitBridge] Silence deprecation of __sleep/wakeup() (nicolas-grekas)
+ * bug #61727  Replace __sleep/wakeup() by __(un)serialize() for throwing and internal usages (nicolas-grekas)
+ * bug #61693 [Console] Don’t append a new line to test inputs ending with an EOT (MatTheCat)
+ * bug #61596 [FrameworkBundle] Normalize workflow places separately (KevinVanSonsbeek)
+ * bug #61690 [Console] Don’t automatically append EOT to multiline test inputs (MatTheCat)
+ * bug #61667 [Config] Fix `GlobResource` pattern with trailing slash (HypeMC)
+ * bug #61659 [Security] Fix `HttpUtils::createRequest()` when the base request is forwarded (MatTheCat)
+ * bug #61645  Replace backtick operator, deprecated in PHP 8.5, with shell_exec() (iluuu1994)
+ * bug #61097 [Serializer] Fix normalizing objects with accessors having the same name as a property (RafaelKr)
+ * bug #61614 [SecurityBundle] Prevent accessing the tracked token storage when collecting data (MatTheCat)
+ * bug #61605 [Cache] Fix internal representation of non-static values (nicolas-grekas)
+ * bug #61599 [Cache] Make `TagAwareAdapter` registrable as a service (a.dmitryuk)
+ * bug #61595 [Security] Pass attributes to nested `ChainUserProvider`s (valtzu)
+ * bug #61232 [Messenger] Firebird Database - incompatibility with expected lowercase columns (DSsatwareAG)
+ * bug #61583 [DoctrineBridge] Fix exception catch when deleting temporary table in the sameDatabaseChecker (GromNaN)
+ * bug #61585 [HttpFoundation][SQLSRV] Change column type from `TEXT` to `STRING` (Matt-PMCT)
+ * bug #61571 [Serializer] Fix dealing with asymmetric visilibity for properties (santysisi)
+ * bug #61573 [Inflector][String] Fix edge cases (OskarStark)
+ * bug #61548 [Security] Fix attribute-based chained user providers (valtzu)
+
+* 6.4.25 (2025-08-29)
+
+ * bug #61520 [Yaml] Fix scope resolution operator in flow mapping keys (MatTheCat)
+ * bug #61534 [HttpClient] Fix PHP 8.5 deprecation using str_increment() (nicolas-grekas)
+ * bug #61529 [FrameworkBundle] Don’t collect CLI profiles if the profiler is disabled (MatTheCat)
+ * bug #61501 [Console] Fix testing multiline question (MatTheCat)
+ * bug #61503 [String] Fix nodes singular (ruudk)
+ * feature #61486 [Security] Ignore target route when exiting impersonation (MatTheCat)
+ * bug #61459 [String] Fix issues singular (ruudk)
+ * bug #61426 [Intl] Take timezoneTypes’ ianaMap into account (MatTheCat)
+ * bug #61453 [VarExporter] Fix serializing classes with __serialize() returning unprefixed private properties (nicolas-grekas)
+ * bug #61447 [String] specific fix to avoid 'outag' when inflecting 'outages' (PhilETaylor)
+ * bug #61115 [FrameworkBundle] Make `cache:warmup` warm up read-only caches (MatTheCat)
+ * bug #61401 [Process] Enhance hasSystemCallBeenInterrupted function for non-english locale (christianseel)
+ * bug #61405  Remove calls to no-op functions, deprecated in PHP 8.5 (nicolas-grekas)
+ * bug #61402  Remove calls to deprecated methods of SplObjectStorage (nicolas-grekas)
+ * bug #61355 [WebProfilerBundle] Fix toolbar not rendering after replacing it (aleho)
+ * bug #58547 [HtmlSanitizer] Fix `force_attributes` not replacing existing attribute in initial data (tgalopin)
+ * bug #61291 [Messenger] Remove fix `NoAutoAckStamp` handling in `Worker::flush()` (wazum)
+ * bug #61304 [PhpUnitBridge] Call Reflection*::setAccessible() only for PHP < 8.1 (W0rma)
+ * bug #61319 [Console] [Table] Don't split grapheme clusters (schlndh)
+
+* 6.4.24 (2025-07-31)
+
+ * bug #61276 [DependencyInjection] Escape parameters before resolving env placeholders (MatTheCat)
+ * bug #61268 [Console] [Table] Fix unnecessary wrapping (schlndh)
+ * bug #61085 [Lock] Fix using fractional TTLs (manuelderuiter)
+ * bug #61271 [Messenger] disable detecting modified indexes with DBAL 4.3 (xabbuh)
+ * bug #61242 [Console] [Table] Fix invalid UTF-8 due to text wrapping (schlndh)
+ * bug #61234 [Cache] RedisTrait::doFetch should use pipeline with GET's instead of MGET for Relay\Cluster (dorrogeray)
+ * bug #61246 [VarDumper] Use unique identifier for `RequestContextProvider` (ToshY)
+ * bug #58995 [Config] Do not generate unreachable configuration paths (bobvandevijver)
+ * bug #60867 [WebProfilerBundle] Fix missing indent on non php files opended in the profiler (phcorp)
+ * bug #61223 [Mailer][Brevo] Update Webhook IPs (jarbey)
+ * bug #61201 [Console] Fix JSON description for negatable input flags (nicolas-grekas)
+ * bug #61220 [Cache] fix compatibility with different Relay versions (xabbuh)
+ * bug #61158 [FrameworkBundle] Add missing html5-allow-no-tld to XSD file (nicolas-grekas)
+ * bug #61144 [VarDumper] Fix dumping on systems that don't have a working iconv (nicolas-grekas)
+ * bug #61138 [Console] fix profiler with overridden `run()` method (vinceAmstoutz)
+ * bug #61079 [Config] Fix support for attributes on class constants and enum cases (ruudk)
+ * bug #61111 [Translation] fix support of `TranslatableInterface` in `IdentityTranslator` (VincentLanglet)
+ * bug #61117 [Validator] fix handling required options (xabbuh)
+ * bug #61106 Fix `@var` phpdoc (fabpot)
+ * bug #61091 [Lock] [MongoDB] Enforce readPreference=primary and writeConcern=majority (notrix)
+ * bug #61105 [FrameworkBundle] fix phpdoc in `MicroKernelTrait` (santysisi)
+ * bug #61076 [ExpressionLanguage] Fix dumping of null safe operator (ivantsepp)
+ * bug #61028 [Serializer] Fix `readonly` property initialization from incorrect scope (santysisi)
+ * bug #61073 [VarExporter] Dump implicit-nullable types as explicit to prevent the corresponding deprecation (nicolas-grekas)
+ * bug #61062 [Brevo Mailer] Webhook IP Addresses have changed (richardhj)
+ * bug #60975 [Form] Fix precision loss when rounding large integers in `NumberToLocalizedStringTransformer` (OskarStark)
+ * bug #60953 [DoctrineBridge] Restore compatibility with Doctrine ODM (pepeh)
+ * bug #60958 [Serializer] remove return type from `AbstractObjectNormalizer::getAllowedAttributes()` (xabbuh)
+ * bug #60507 [Console][Messenger] Fix: Allow `UnrecoverableExceptionInterface` to bypass retry in `RunCommandMessageHandler` (santysisi)
+
+* 6.4.23 (2025-06-28)
+
+ * bug #60044 [Console] Table counts wrong column width when using colspan and `setColumnMaxWidth()` (vladimir-vv)
+ * bug #60042 [Console] Table counts wrong number of padding symbols in `renderCell()` method when cell contain unicode variant selector (vladimir-vv)
+ * bug #60594 [Cache] Fix using a `ChainAdapter` as an adapter for a pool (IndraGunawan)
+ * bug #60413 [Serializer] Fix collect_denormalization_errors flag in defaultContext (dmbrson)
+ * bug #60908 [Uid] Improve entropy of the increment for UUIDv7 (nicolas-grekas)
+ * bug #60914 [Console] Fix command option mode (InputOption::VALUE_REQUIRED) (gharlan)
+ * bug #60919 [VarDumper] Avoid deprecated call in PgSqlCaster (vrana)
+ * bug #60888 [Intl] Fix locale validator when canonicalize is true (rdavaillaud)
+ * bug #60885 [Notifier] Update fake SMS transports to use contracts event dispatcher (paulferrett)
+ * bug #60859 [TwigBundle] fix preload unlinked class `BinaryOperatorExpressionParser` (Grummfy)
+ * bug #60772 [Mailer] [Transport] Send clone of `RawMessage` instance in `RoundRobinTransport` (jnoordsij)
+ * bug #60842 [DependencyInjection] Fix generating adapters of functional interfaces (nicolas-grekas)
+ * bug #60809 [Serializer] Fix `TraceableSerializer` when called from a callable inside `array_map` (OrestisZag)
+ * bug #60511 [Serializer] Add support for discriminator map in property normalizer (ruudk)
+ * bug #60780 [FrameworkBundle] Fix argument not provided to `add_bus_name_stamp_middleware` (maxbaldanza)
+ * bug #60826 [DependencyInjection] Fix inlining when public services are involved (nicolas-grekas)
+ * bug #60806 [HttpClient] Limit curl's connection cache size (nicolas-grekas)
+ * bug #60705 [FrameworkBundle] Fix allow `loose` as an email validation mode (rhel-eo)
+ * bug #60759 [Messenger] Fix float value for worker memory limit (ro0NL)
+ * bug #60785 [Security] Handle non-callable implementations of `FirewallListenerInterface` (MatTheCat)
+ * bug #60781 [DomCrawler] Allow selecting `button`s by their `value` (MatTheCat)
+ * bug #60775 [Validator] flip excluded properties with keys with Doctrine-style constraint config (xabbuh)
+ * bug #60779 Silence E_DEPRECATED and E_USER_DEPRECATED (nicolas-grekas)
+ * bug #60502 [HttpCache] Hit the backend only once after waiting for the cache lock (mpdude)
+ * bug #60771 [Runtime] fix compatibility with Symfony 7.4 (xabbuh)
+ * bug #60676 [Form] Fix handling the empty string in NumberToLocalizedStringTransformer (gnat42)
+ * bug #60694 [Intl] Add missing currency (NOK) localization (en_NO) (llupa)
+ * bug #60711 [Intl] Ensure data consistency between alpha and numeric codes (llupa)
+ * bug #60724 [VarDumper] Fix dumping LazyObjectState when using VarExporter v8 (nicolas-grekas)
+ * bug #60693 [FrameworkBundle] ensureKernelShutdown in tearDownAfterClass (cquintana92)
+ * bug #60564 [FrameworkBundle] ensureKernelShutdown in tearDownAfterClass (cquintana92)
+ * bug #60640 [Mailer] use STARTTLS for SMTP with MailerSend (xabbuh)
+ * bug #60648 [Yaml] fix support for years outside of the 32b range on x86 arch on PHP 8.4 (nicolas-grekas)
+ * bug #60616 skip interactive questions asked by Composer (xabbuh)
+ * bug #60584 [DependencyInjection] Make `YamlDumper` quote resolved env vars if necessary (MatTheCat)
+ * bug #60588 [Notifier][Clicksend] Fix lack of recipient in case DSN does not have optional LIST_ID param (alifanau)
+ * bug #60547 [HttpFoundation] Fixed 'Via' header regex (thecaliskan)
+
+* 6.4.22 (2025-05-29)
+
+ * bug #60549 [Translation] Add intl-icu fallback for MessageCatalogue metadata (pontus-mp)
+ * bug #60571 [ErrorHandler] Do not transform file to link if it does not exist (lyrixx)
+ * bug #60494 [Messenger] fix: Add argument as integer (overexpOG)
+ * bug #60524 [Notifier] Fix Clicksend transport (BafS)
+ * bug #60478 [Validator] add missing `$extensions` and `$extensionsMessage` to the `Image` constraint (xabbuh)
+ * bug #60423 [DependencyInjection] Make `DefinitionErrorExceptionPass` consider `IGNORE_ON_UNINITIALIZED_REFERENCE` and `RUNTIME_EXCEPTION_ON_INVALID_REFERENCE` the same (MatTheCat)
+ * bug #60421 [VarExporter] Fixed lazy-loading ghost objects generation with property hooks (cheack)
+ * bug #60266 [Security] Exclude remember_me from default login authenticators (santysisi)
+ * bug #60400 [Config] Fix generated comment for multiline "info" (GromNaN)
+ * bug #60260 [Serializer] Prevent `Cannot traverse an already closed generator` error by materializing Traversable input (santysisi)
+ * bug #60292 [HttpFoundation] Encode path in `X-Accel-Redirect` header (Athorcis)
+ * bug #60379 [Security] Avoid failing when PersistentRememberMeHandler handles a malformed cookie (Seldaek)
+ * bug #60373 [FrameworkBundle] Ensure `Email` class exists before using it (Kocal)
+ * bug #60365 [FrameworkBundle] ensure that all supported e-mail validation modes can be configured (xabbuh)
+ * bug #60350 [Security][LoginLink] Throw `InvalidLoginLinkException` on invalid parameters (davidszkiba)
+ * bug #60340 [String] fix EmojiTransliterator return type compatibility with PHP 8.5 (xabbuh)
+
 * 6.4.21 (2025-05-02)
 
  * bug #60288 [VarExporter] dump default value for property hooks if present (xabbuh)
diff -Nru symfony-6.4.21+dfsg/composer.json symfony-6.4.40+dfsg/composer.json
--- symfony-6.4.21+dfsg/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
         "symfony/polyfill-intl-idn": "^1.10",
         "symfony/polyfill-intl-normalizer": "~1.0",
         "symfony/polyfill-mbstring": "~1.0",
-        "symfony/polyfill-php83": "^1.28",
+        "symfony/polyfill-php83": "^1.29",
         "symfony/polyfill-uuid": "^1.15"
     },
     "replace": {
@@ -155,7 +155,7 @@
         "psr/simple-cache": "^1.0|^2.0|^3.0",
         "seld/jsonlint": "^1.10",
         "symfony/mercure-bundle": "^0.3",
-        "symfony/phpunit-bridge": "^5.4|^6.0|^7.0",
+        "symfony/phpunit-bridge": "^7.4|^8.0",
         "symfony/runtime": "self.version",
         "symfony/security-acl": "~2.8|~3.0",
         "twig/cssinliner-extra": "^2.12|^3",
@@ -172,7 +172,7 @@
         "doctrine/orm": "<2.15",
         "egulias/email-validator": "~3.0.0",
         "masterminds/html5": "<2.6",
-        "phpdocumentor/reflection-docblock": "<5.2",
+        "phpdocumentor/reflection-docblock": "<5.2|>=6",
         "phpdocumentor/type-resolver": "<1.5.1",
         "phpunit/phpunit": "<7.5|9.1.2"
     },
diff -Nru symfony-6.4.21+dfsg/CONTRIBUTORS.md symfony-6.4.40+dfsg/CONTRIBUTORS.md
--- symfony-6.4.21+dfsg/CONTRIBUTORS.md	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/CONTRIBUTORS.md	2026-05-20 10:56:49.000000000 +0200
@@ -4,3935 +4,4155 @@
 Symfony is the result of the work of many people who made the code better.
 
 The Symfony Connect username in parenthesis allows to get more information
- - Fabien Potencier (fabpot)
  - Nicolas Grekas (nicolas-grekas)
+ - Fabien Potencier (fabpot)
  - Christian Flothmann (xabbuh)
  - Alexander M. Turek (derrabus)
- - Bernhard Schussek (bschussek)
+ - Oskar Stark (oskarstark)
+ - Alexandre Daubois (alexandre-daubois)
  - Robin Chalas (chalas_r)
+ - Bernhard Schussek (bschussek)
+ - Matthias Schmidt
  - Tobias Schultze (tobion)
+ - Jérôme Tamarelle (gromnan)
  - Grégoire Pineau (lyrixx)
- - Alexandre Daubois (alexandre-daubois)
  - Thomas Calvet (fancyweb)
+ - HypeMC (hypemc)
+ - Yonel Ceruto (yonelceruto)
  - Christophe Coevoet (stof)
  - Wouter de Jong (wouterj)
  - Jordi Boggiano (seldaek)
+ - Javier Eguiluz (javier.eguiluz)
  - Maxime Steinhausser (ogizanagi)
  - Kévin Dunglas (dunglas)
- - Javier Eguiluz (javier.eguiluz)
  - Victor Berchet (victor)
  - Ryan Weaver (weaverryan)
  - Jérémy DERUSSÉ (jderusse)
  - Jules Pietri (heah)
- - Roland Franssen
- - Oskar Stark (oskarstark)
  - Johannes S (johannes)
  - Kris Wallsmith (kriswallsmith)
  - Jakub Zalas (jakubzalas)
- - Yonel Ceruto (yonelceruto)
+ - Antoine Lamirault (alamirault)
+ - Mathias Arlaud (mtarld)
  - Hugo Hamon (hhamon)
  - Tobias Nyholm (tobias)
- - HypeMC (hypemc)
- - Jérôme Tamarelle (gromnan)
- - Antoine Lamirault (alamirault)
  - Samuel ROZE (sroze)
  - Pascal Borreli (pborreli)
  - Romain Neutron
+ - Santiago San Martin (santysisi)
  - Kevin Bond (kbond)
  - Joseph Bielawski (stloyd)
  - Drak (drak)
  - Abdellatif Ait boudad (aitboudad)
+ - matlec
  - Lukas Kahwe Smith (lsmith)
+ - Mathieu Santostefano (welcomattic)
  - Hamza Amrouche (simperfit)
  - Martin Hasoň (hason)
  - Jeremy Mikola (jmikola)
+ - Mathieu Lechat (mat_the_cat)
  - Jean-François Simon (jfsimon)
  - Benjamin Eberlei (beberlei)
  - Igor Wiedler
  - Jan Schädlich (jschaedl)
- - Mathias Arlaud (mtarld)
- - Mathieu Lechat (mat_the_cat)
- - Simon André (simonandre)
  - Vincent Langlet (deviling)
+ - Antonio J. García Lagar (ajgarlag)
+ - Pierre-Emmanuel CAPEL (pecapel)
+ - Kévin THERAGE (kevin_therage)
+ - Pierre-Emmanuel CAPEL
+ - Valtteri R (valtzu)
+ - corradogrimoldi
+ - Simon André (simonandre)
  - Matthias Pigulla (mpdude)
  - Gabriel Ostrolucký (gadelat)
  - Jonathan Wage (jwage)
  - Valentin Udaltsov (vudaltsov)
+ - Alexander Schranz (alexander-schranz)
  - Grégoire Paris (greg0ire)
  - Alexandre Salomé (alexandresalome)
  - William DURAND
- - ornicar
  - Dany Maillard (maidmaid)
+ - Pierre du Plessis (pierredup)
+ - Gábor Egyed (1ed)
  - Eriksen Costa
- - Diego Saint Esteben (dosten)
- - Dariusz Ruminski
  - stealth35 ‏ (stealth35)
- - Alexander Mols (asm89)
- - Gábor Egyed (1ed)
+ - Diego Saint Esteben (dosten)
  - Francis Besset (francisbesset)
- - Mathieu Santostefano (welcomattic)
  - Titouan Galopin (tgalopin)
- - Pierre du Plessis (pierredup)
+ - Alexander Mols (asm89)
  - David Maicher (dmaicher)
  - Tomasz Kowalczyk (thunderer)
  - Bulat Shakirzyanov (avalanche123)
+ - Ruud Kamphuis (ruudk)
+ - Gary PEGEOT (gary-p)
  - Iltar van der Berg
  - Miha Vrhovnik (mvrhov)
- - Gary PEGEOT (gary-p)
- - Alexander Schranz (alexander-schranz)
  - Saša Stamenković (umpirsky)
  - Allison Guilhem (a_guilhem)
  - Mathieu Piot (mpiot)
  - Vasilij Duško (staff)
+ - Tomas Norkūnas (norkunas)
+ - Konstantin Kudryashov (everzet)
  - Sarah Khalil (saro0h)
  - Laurent VOULLEMIER (lvo)
- - Konstantin Kudryashov (everzet)
- - Guilhem N (guilhemn)
  - Bilal Amarni (bamarni)
+ - Guilhem N (guilhemn)
  - Eriksen Costa
- - Florin Patan (florinpatan)
+ - soyuka
+ - Hubert Lenoir (hubert_lenoir)
  - Vladimir Reznichenko (kalessil)
+ - Florin Patan (florinpatan)
  - Peter Rehm (rpet)
  - Henrik Bjørnskov (henrikbjorn)
- - Ruud Kamphuis (ruudk)
  - David Buchmann (dbu)
+ - Ben Younes Ousama (oby)
  - Andrej Hudec (pulzarraider)
- - Tomas Norkūnas (norkunas)
  - Jáchym Toušek (enumag)
- - Hubert Lenoir (hubert_lenoir)
- - Christian Raue
  - Eric Clemmons (ericclemmons)
+ - Arnout Boks (aboks)
+ - Antoine Makdessi (amakdessi)
+ - Christian Raue
  - Denis (yethee)
- - Alex Pott
- - Michel Weimerskirch (mweimerskirch)
  - Issei Murasawa (issei_m)
- - Arnout Boks (aboks)
+ - Michel Weimerskirch (mweimerskirch)
+ - David Prévot (taffit)
+ - Alex Pott
  - Douglas Greenshields (shieldo)
  - Frank A. Fiebig (fafiebig)
- - Baldini
  - Fran Moreno (franmomu)
- - Antoine Makdessi (amakdessi)
+ - Baldini
  - Charles Sarrazin (csarrazi)
+ - Yanick Witschi (toflar)
  - Henrik Westphal (snc)
  - Dariusz Górecki (canni)
+ - Konstantin Myakshin (koc)
  - Ener-Getick
- - Graham Campbell (graham)
- - Joel Wurtz (brouznouf)
  - Massimiliano Arione (garak)
+ - Phil E. Taylor (philetaylor)
+ - Joel Wurtz (brouznouf)
  - Tugdual Saunier (tucksaun)
+ - Graham Campbell (graham)
+ - Luis Cordova (cordoval)
+ - Théo FIDRY
  - Lee McDermott
  - Brandon Turner
- - Luis Cordova (cordoval)
- - Phil E. Taylor (philetaylor)
- - Konstantin Myakshin (koc)
- - Daniel Holmes (dholmes)
  - Julien Falque (julienfalque)
+ - Daniel Holmes (dholmes)
  - Toni Uebernickel (havvg)
  - Bart van den Burg (burgov)
  - Vasilij Dusko | CREATION
  - Jordan Alliot (jalliot)
- - Théo FIDRY
+ - Jeroen Spee (jeroens)
  - John Wards (johnwards)
- - Valtteri R (valtzu)
- - Yanick Witschi (toflar)
- - Antoine Hérault (herzult)
+ - Florent Morselli (spomky_)
+ - Catoire (lacatoire)
  - Konstantin.Myakshin
- - Jeroen Spee (jeroens)
- - Arnaud Le Blanc (arnaud-lb)
- - Sebastiaan Stok (sstok)
- - Maxime STEINHAUSSER
+ - Antoine Hérault (herzult)
  - Rokas Mikalkėnas (rokasm)
+ - Maxime STEINHAUSSER
+ - Sebastiaan Stok (sstok)
  - Tac Tacelosky (tacman1123)
+ - Arnaud Le Blanc (arnaud-lb)
+ - Jérôme Vasseur (jvasseur)
  - gnito-org
- - Tim Nagel (merk)
  - Chris Wilkinson (thewilkybarkid)
- - Jérôme Vasseur (jvasseur)
- - Peter Kokot (peterkokot)
  - Brice BERNARD (brikou)
+ - Peter Kokot (peterkokot)
  - Jacob Dreesen (jdreesen)
+ - Tim Nagel (merk)
+ - Younes ENNAJI (yokho)
+ - marc.weistroff
  - Nicolas Philippe (nikophil)
- - Martin Auswöger
+ - Vladimir Tsykun (vtsykun)
  - Michal Piotrowski
- - marc.weistroff
  - Lars Strojny (lstrojny)
- - lenar
- - Vladimir Tsykun (vtsykun)
- - Włodzimierz Gajda (gajdaw)
  - Javier Spagnoletti (phansys)
+ - Gregor Harlan (gharlan)
  - Adrien Brault (adrienbrault)
- - Florian Voutzinos (florianv)
- - Teoh Han Hui (teohhanhui)
+ - Włodzimierz Gajda (gajdaw)
+ - Maximilian Beckers (maxbeckers)
+ - Jérôme Parmentier (lctrs)
+ - Bob van de Vijver (bobvandevijver)
  - Przemysław Bogusz (przemyslaw-bogusz)
+ - Teoh Han Hui (teohhanhui)
  - Colin Frei
- - excelwebzone
- - Florent Morselli (spomky_)
- - Paráda József (paradajozsef)
- - Maximilian Beckers (maxbeckers)
- - Baptiste Clavié (talus)
- - Alexander Schwenn (xelaris)
+ - Pascal CESCON (amoifr)
+ - Gordon Franke (gimler)
+ - Florian Voutzinos (florianv)
+ - Saif Eddin Gmati (azjezz)
  - Maxime Helias (maxhelias)
  - Fabien Pennequin (fabienpennequin)
+ - Baptiste Clavié (talus)
+ - Hugo Alliaume (kocal)
+ - Paráda József (paradajozsef)
+ - Andreas Schempp (aschempp)
+ - Alexander Schwenn (xelaris)
  - Dāvis Zālītis (k0d3r1s)
- - Gordon Franke (gimler)
- - Malte Schlüter (maltemaltesich)
- - soyuka
- - jeremyFreeAgent (jeremyfreeagent)
+ - Daniel Wehner (dawehner)
+ - Joshua Thijssen
  - Michael Babker (mbabker)
  - Alexis Lefebvre
  - Christopher Hertel (chertel)
- - Joshua Thijssen
- - Vasilij Dusko
- - Daniel Wehner (dawehner)
- - Robert Schönthal (digitalkaoz)
- - Smaine Milianni (ismail1432)
- - Hugo Alliaume (kocal)
+ - jeremyFreeAgent (jeremyfreeagent)
+ - Thomas Landauer (thomas-landauer)
  - François-Xavier de Guillebon (de-gui_f)
- - Andreas Schempp (aschempp)
- - noniagriconomie
+ - Malte Schlüter (maltemaltesich)
+ - Vasilij Dusko
  - Eric GELOEN (gelo)
- - Gabriel Caruso
- - Stefano Sala (stefano.sala)
+ - Stiven Llupa (sllupa)
+ - Jhonny Lidfors (jhonne)
  - Ion Bazan (ionbazan)
  - Niels Keurentjes (curry684)
+ - Richard van Laak (rvanlaak)
+ - Smaine Milianni (ismail1432)
+ - Stefano Sala (stefano.sala)
+ - Jonathan Scheiber (jmsche)
+ - Gabriel Caruso
  - OGAWA Katsuhiro (fivestar)
- - Jhonny Lidfors (jhonne)
- - Juti Noppornpitak (shiroyuki)
- - Gregor Harlan (gharlan)
- - Anthony MARTIN
+ - Robert Schönthal (digitalkaoz)
+ - Hidenori Goto (hidenorigoto)
  - Sebastian Hörl (blogsh)
- - Tigran Azatyan (tigranazatyan)
  - Florent Mata (fmata)
- - Jonathan Scheiber (jmsche)
  - Daniel Gomes (danielcsgomes)
- - Hidenori Goto (hidenorigoto)
- - Thomas Landauer (thomas-landauer)
- - Arnaud Kleinpeter (nanocom)
  - Guilherme Blanco (guilhermeblanco)
- - David Prévot (taffit)
- - Saif Eddin Gmati (azjezz)
- - Farhad Safarov (safarov)
- - SpacePossum
- - Richard van Laak (rvanlaak)
- - Andreas Braun
- - Pablo Godel (pgodel)
- - Alessandro Chitolina (alekitto)
- - Jan Rosier (rosier)
+ - Anthony MARTIN
+ - Arnaud Kleinpeter (nanocom)
+ - Juti Noppornpitak (shiroyuki)
+ - Romain Monteil (ker0x)
+ - Tigran Azatyan (tigranazatyan)
+ - Ben Davies (bendavies)
  - Rafael Dohms (rdohms)
- - Roman Martinuk (a2a4)
  - jwdeitch
- - Jérôme Parmentier (lctrs)
- - Ahmed TAILOULOUTE (ahmedtai)
- - Simon Berger
+ - Roman Martinuk (a2a4)
+ - Fritz Michael Gschwantner (fritzmg)
+ - Michael Käfer (michael_kaefer)
+ - Jan Rosier (rosier)
+ - Alessandro Chitolina (alekitto)
+ - Farhad Safarov (safarov)
+ - Pablo Godel (pgodel)
  - Jérémy Derussé
- - Matthieu Napoli (mnapoli)
- - Bob van de Vijver (bobvandevijver)
- - Tomas Votruba (tomas_votruba)
- - Arman Hosseini (arman)
- - Sokolov Evgeniy (ewgraf)
+ - Simon Berger
+ - Dawid Nowak
  - Andréia Bohner (andreia)
+ - Jack Worman (jworman)
+ - Philipp Wahala (hifi)
+ - Indra Gunawan (indragunawan)
+ - Sokolov Evgeniy (ewgraf)
+ - Alessandro Lai (jean85)
+ - Richard Shank (iampersistent)
+ - Arman Hosseini (arman)
  - Tom Van Looy (tvlooy)
+ - George Mponos (gmponos)
  - Vyacheslav Pavlov
+ - Roland Franssen
+ - Tomas Votruba (tomas_votruba)
  - Albert Casademont (acasademont)
- - George Mponos (gmponos)
- - Richard Shank (iampersistent)
- - Roland Franssen :)
- - Fritz Michael Gschwantner (fritzmg)
- - Romain Monteil (ker0x)
- - Sergey (upyx)
- - Marco Pivetta (ocramius)
- - Antonio Pauletich (x-coder264)
- - Vincent Touzet (vincenttouzet)
+ - Matthieu Napoli (mnapoli)
+ - Ahmed TAILOULOUTE (ahmedtai)
+ - Michał Pipa (michal.pipa)
+ - zairig imad (zairigimad)
+ - Soner Sayakci (shyim)
+ - wkania
+ - Quynh Xuan Nguyen (seriquynh)
  - Fabien Bourigault (fbourigault)
+ - YaFou
+ - Jonathan Ingram
+ - Wouter J
+ - Sergey (upyx)
  - Olivier Dolbeau (odolbeau)
+ - Vincent Touzet (vincenttouzet)
+ - Gocha Ossinkine (ossinkine)
  - Rouven Weßling (realityking)
- - Daniel Burger
- - Ben Davies (bendavies)
- - YaFou
- - Guillaume (guill)
- - Clemens Tolboom
- - Oleg Voronkovich
- - Helmer Aaviksoo
- - Alessandro Lai (jean85)
+ - Jannik Zschiesche
+ - Dorian Villet (gnutix)
+ - Samuel NELA (snela)
+ - Tyson Andre
+ - Marco Pivetta (ocramius)
+ - Ayyoub AFW-ALLAH (ayyoub-afwallah)
  - 77web
- - Gocha Ossinkine (ossinkine)
+ - Antonio Pauletich (x-coder264)
+ - GDIBass
+ - Oleg Voronkovich
  - Jesse Rushlow (geeshoe)
- - Matthieu Ouellette-Vachon (maoueh)
- - Michał Pipa (michal.pipa)
- - Dawid Nowak
- - Philipp Wahala (hifi)
- - Jannik Zschiesche
+ - Daniel Burger
+ - Guillaume (guill)
  - Amal Raghav (kertz)
- - Jonathan Ingram
+ - Alex Hofbauer (alexhofbauer)
+ - Asis Pattisahusiwa
+ - Clemens Tolboom
  - Artur Kotyrba
- - Wouter J
- - Tyson Andre
- - GDIBass
- - Samuel NELA (snela)
- - Baptiste Leduc (korbeil)
- - Vincent AUBERT (vincent)
- - Nate Wiebe (natewiebe13)
+ - Matthieu Ouellette-Vachon (maoueh)
+ - Justin Hileman (bobthecow)
+ - Christian Scheb
+ - Daniel Espendiller
+ - Quentin Devos
  - Michael Voříšek
- - zairig imad (zairigimad)
+ - Markus Fasselt (digilist)
  - Colin O&#039;Dell (colinodell)
- - Sébastien Alfaiate (seb33300)
- - James Halsall (jaitsu)
- - Christian Scheb
- - Alex Hofbauer (alexhofbauer)
- - Mikael Pajunen
- - Warnar Boekkooi (boekkooi)
- - Justin Hileman (bobthecow)
+ - Larry Garfield (crell)
  - Anthony GRASSIOT (antograssiot)
+ - Baptiste Leduc (korbeil)
  - Dmitrii Chekaliuk (lazyhammer)
+ - VAN DER PUTTE Guillaume (guillaume_vdp)
+ - Alan Poulain (alanpoulain)
+ - Nate Wiebe (natewiebe13)
+ - Richard Miller
  - Clément JOBEILI (dator)
+ - Marko Kaznovac (kaznovac)
+ - Warnar Boekkooi (boekkooi)
+ - Victor Bocharsky (bocharsky_bw)
+ - Thomas Rabaix (rande)
  - Andreas Möller (localheinz)
+ - DQNEO
+ - Chi-teck
+ - James Halsall (jaitsu)
+ - Mario A. Alvarez Garcia (nomack84)
+ - Mikael Pajunen
+ - Sergey Linnik (linniksa)
  - Marek Štípek (maryo)
- - matlec
- - Daniel Espendiller
+ - Vincent AUBERT (vincent)
+ - Aleksandar Jakovljevic (ajakov)
+ - Sébastien Alfaiate (seb33300)
  - Arnaud PETITPAS (apetitpa)
- - Michael Käfer (michael_kaefer)
- - Dorian Villet (gnutix)
  - Martin Hujer (martinhujer)
- - Sergey Linnik (linniksa)
- - Richard Miller
- - Quynh Xuan Nguyen (seriquynh)
- - Victor Bocharsky (bocharsky_bw)
- - Asis Pattisahusiwa
- - Aleksandar Jakovljevic (ajakov)
- - Mario A. Alvarez Garcia (nomack84)
- - Thomas Rabaix (rande)
  - D (denderello)
- - DQNEO
- - Chi-teck
- - Marko Kaznovac (kaznovac)
- - Stiven Llupa (sllupa)
- - Andre Rømcke (andrerom)
- - Bram Leeda (bram123)
- - Patrick Landolt (scube)
- - Karoly Gossler (connorhu)
- - Timo Bakx (timobakx)
- - Giorgio Premi
- - Alan Poulain (alanpoulain)
- - Ruben Gonzalez (rubenrua)
  - Benjamin Dulau (dbenjamin)
- - Markus Fasselt (digilist)
- - Denis Brumann (dbrumann)
+ - Karoly Gossler (connorhu)
+ - Andre Rømcke (andrerom)
  - mcfedr (mcfedr)
+ - Ruben Gonzalez (rubenrua)
+ - Pierre Minnieur (pminnieur)
+ - Jonathan H. Wage
  - Loick Piera (pyrech)
- - Remon van de Kamp
- - Mathieu Lemoine (lemoinem)
- - Christian Schmidt
- - Andreas Hucks (meandmymonkey)
- - Artem Lopata
- - Indra Gunawan (indragunawan)
  - Noel Guilbert (noel)
- - Bastien Jaillot (bastnic)
- - Soner Sayakci
+ - Guilliam Xavier
+ - Timo Bakx (timobakx)
+ - Andreas Hucks (meandmymonkey)
  - Stadly
- - Stepan Anchugov (kix)
- - bronze1man
- - sun (sun)
+ - Remon van de Kamp
  - Filippo Tessarotto (slamdunk)
- - Larry Garfield (crell)
- - Leo Feyer
+ - Anderson Müller
+ - sun (sun)
+ - Bastien Jaillot (bastnic)
+ - Denis Brumann (dbrumann)
  - Nikolay Labinskiy (e-moe)
+ - Christian Schmidt
  - Martin Schuhfuß (usefulthink)
+ - bronze1man
+ - Leo Feyer
+ - Giorgio Premi
+ - Mathieu Lemoine (lemoinem)
+ - roman joly (eltharin)
+ - Stepan Anchugov (kix)
+ - Bram Leeda (bram123)
  - apetitpa
- - Guilliam Xavier
- - Pierre Minnieur (pminnieur)
- - Dominique Bongiraud
- - Hugo Monteiro (monteiro)
- - Dmitrii Poddubnyi (karser)
- - Julien Pauli
- - Jonathan H. Wage
- - Michael Lee (zerustech)
- - Florian Lonqueu-Brochard (florianlb)
- - Joe Bennett (kralos)
- - Leszek Prabucki (l3l0)
- - Wojciech Kania
- - Thomas Lallement (raziel057)
- - Yassine Guedidi (yguedidi)
- - François Zaninotto (fzaninotto)
- - Dustin Whittle (dustinwhittle)
- - Timothée Barray (tyx)
- - jeff
- - John Kary (johnkary)
- - Võ Xuân Tiến (tienvx)
- - fd6130 (fdtvui)
- - Antonio J. García Lagar (ajgarlag)
  - Priyadi Iman Nurcahyo (priyadi)
+ - Patrick Landolt (scube)
+ - Edi Modrić (emodric)
+ - Jean-Baptiste Delhommeau
+ - Jan Sorgalla (jsor)
+ - Pascal Montoya
+ - Hugo Monteiro (monteiro)
  - Oleg Andreyev (oleg.andreyev)
- - Maciej Malarz (malarzm)
- - Marcin Sikoń (marphi)
+ - Yassine Guedidi (yguedidi)
+ - Evert Harmeling (evertharmeling)
  - Michele Orselli (orso)
  - Arjen van der Meijden
- - Sven Paulus (subsven)
- - Peter Kruithof (pkruithof)
- - Maxime Veber (nek-)
- - Valentine Boineau (valentineboineau)
- - Rui Marinho (ruimarinho)
  - Jeroen Noten (jeroennoten)
- - Possum
  - Jérémie Augustin (jaugustin)
- - Edi Modrić (emodric)
- - Pascal Montoya
- - Julien Brochet
  - François Pluchino (francoispluchino)
+ - Wolfgang Klinger (wolfgangklingerplan2net)
+ - Thomas Lallement (raziel057)
+ - Leszek Prabucki (l3l0)
+ - Marcin Sikoń (marphi)
  - Tristan Darricau (tristandsensio)
- - Jan Sorgalla (jsor)
- - henrikbjorn
  - Marcel Beerta (mazen)
- - Evert Harmeling (evertharmeling)
+ - Dustin Whittle (dustinwhittle)
+ - henrikbjorn
+ - Wojciech Kania
+ - Peter Kruithof (pkruithof)
+ - a.dmitryuk
+ - Rui Marinho (ruimarinho)
+ - Võ Xuân Tiến (tienvx)
+ - Dmitry Bukhonov
+ - Mickael GOETZ
  - Mantis Development
- - Hidde Wieringa (hiddewie)
- - dFayet
- - Rob Frawley 2nd (robfrawley)
- - Renan (renanbr)
- - Nikita Konstantinov (unkind)
- - Dariusz
- - Daniel Gorgan
- - Francois Zaninotto
- - Aurélien Pillevesse (aurelienpillevesse)
- - Daniel Tschinder
- - Christian Schmidt
- - Alexander Kotynia (olden)
+ - Chris Smith (cs278)
+ - Valentine Boineau (valentineboineau)
+ - Sven Paulus (subsven)
+ - Timothée Barray (tyx)
+ - jeff
+ - Michael Lee (zerustech)
  - Matthieu Lempereur (mryamous)
- - Elnur Abdurrakhimov (elnur)
- - Manuel Reinhard (sprain)
- - Zan Baldwin (zanbaldwin)
- - Tim Goudriaan (codedmonkey)
- - BoShurik
- - Quentin Devos
- - Adam Prager (padam87)
+ - Julien Brochet
+ - fd6130 (fdtvui)
+ - John Kary (johnkary)
+ - Maxime Veber (nek-)
+ - Maciej Malarz (malarzm)
+ - Joe Bennett (kralos)
+ - Dmitrii Poddubnyi (karser)
+ - Florian Lonqueu-Brochard (florianlb)
+ - François Zaninotto (fzaninotto)
+ - Francois Zaninotto
+ - Lynn van der Berg (kjarli)
  - Benoît Burnichon (bburnichon)
- - maxime.steinhausser
- - Iker Ibarguren (ikerib)
- - Roman Ring (inori)
- - Xavier Montaña Carreras (xmontana)
- - Romaric Drigon (romaricdrigon)
- - Sylvain Fabre (sylfabre)
- - Xavier Perez
- - Arjen Brouwer (arjenjb)
+ - Dariusz Ruminski
+ - Joseph Rouff (rouffj)
+ - David Badura (davidbadura)
  - Patrick McDougle (patrick-mcdougle)
+ - Alexander Kotynia (olden)
+ - Bob den Otter (bopp)
+ - Jordan Samouh (jordansamouh)
  - Arnt Gulbrandsen
- - Michel Roca (mroca)
- - Marc Weistroff (futurecat)
+ - Michaël Perrin (michael.perrin)
+ - Christian Schmidt
+ - Roman Ring (inori)
+ - Daniel Gorgan
  - Michał (bambucha15)
- - Danny Berger (dpb587)
- - Alif Rachmawadi
- - Anton Chernikov (anton_ch1989)
  - Pierre-Yves Lebecq (pylebecq)
- - Benjamin Leveque (benji07)
- - Jordan Samouh (jordansamouh)
- - David Badura (davidbadura)
- - Sullivan SENECHAL (soullivaneuh)
- - Uwe Jäger (uwej711)
  - javaDeveloperKid
- - Chris Smith (cs278)
- - W0rma
- - Lynn van der Berg (kjarli)
- - Michaël Perrin (michael.perrin)
+ - dFayet
+ - BoShurik
+ - Xavier Perez
+ - Nikita Konstantinov (unkind)
+ - Arjen Brouwer (arjenjb)
+ - Oleksiy (alexndlm)
+ - Daniel Tschinder
  - Eugene Leonovich (rybakit)
- - Joseph Rouff (rouffj)
- - Félix Labrecque (woodspire)
- - Marvin Petker
- - GordonsLondon
+ - Alif Rachmawadi
+ - Manuel Reinhard (sprain)
+ - Xavier Montaña Carreras (xmontana)
+ - Hidde Wieringa (hiddewie)
  - Ray
- - Philipp Cordes (corphi)
- - Chekote
- - Thomas Adam
- - Anderson Müller
+ - Emanuele Panzeri (thepanz)
  - jdhoek
+ - Aurélien Pillevesse (aurelienpillevesse)
  - Jurica Vlahoviček (vjurica)
- - Bob den Otter (bopp)
- - Thomas Schulz (king2500)
+ - Danny Berger (dpb587)
+ - Adrian Rudnik (kreischweide)
+ - Fabien S (bafs)
+ - Pierre Ambroise (dotordu)
+ - Félix Labrecque (woodspire)
+ - Adam Prager (padam87)
+ - Thibault Gattolliat (crovitche)
+ - Benjamin Leveque (benji07)
+ - Renan (renanbr)
+ - Anton Chernikov (anton_ch1989)
+ - Zan Baldwin (zanbaldwin)
+ - Chekote
+ - GordonsLondon
+ - siganushka (siganushka)
+ - Rob Frawley 2nd (robfrawley)
+ - Marc Weistroff (futurecat)
+ - Romaric Drigon (romaricdrigon)
+ - Michel Roca (mroca)
+ - Link1515
+ - Elnur Abdurrakhimov (elnur)
+ - Tim Goudriaan (codedmonkey)
+ - Alex Rock (pierstoval)
+ - pcescon
+ - Sylvain Fabre (sylfabre)
+ - Sullivan SENECHAL (soullivaneuh)
  - Kyle
- - Dariusz Rumiński
- - Philippe SEGATORI (tigitz)
- - Frank de Jonge
- - Andrii Bodnar
- - Dane Powell
- - Sebastien Morel (plopix)
- - Christopher Davis (chrisguitarguy)
- - Loïc Frémont (loic425)
+ - Uwe Jäger (uwej711)
+ - Thomas Schulz (king2500)
+ - maxime.steinhausser
+ - Thomas Adam
+ - Philipp Cordes (corphi)
+ - Iker Ibarguren (ikerib)
  - Matthieu Auger (matthieuauger)
- - Sergey Belyshkin (sbelyshkin)
- - Kévin THERAGE (kevin_therage)
- - Herberto Graca
- - Yoann RENARD (yrenard)
- - Josip Kruslin (jkruslin)
- - renanbr
- - Sébastien Lavoie (lavoiesl)
- - Alex Rock (pierstoval)
- - Wodor Wodorski
- - Beau Simensen (simensen)
+ - jaugustin
+ - Hamza Makraz (makraz)
+ - Jordane VASPARD (elementaire)
+ - Ismael Ambrosi (iambrosi)
  - Magnus Nordlander (magnusnordlander)
- - Robert Kiss (kepten)
- - Alexandre Quercia (alquerci)
- - Marcos Sánchez
- - Emanuele Panzeri (thepanz)
- - Zmey
- - Kim Hemsø Rasmussen (kimhemsoe)
  - Maximilian Reichel (phramz)
- - Samaël Villette (samadu61)
- - jaugustin
- - Pascal Luna (skalpa)
- - Wouter Van Hecke
- - Baptiste Lafontaine (magnetik)
- - Michael Hirschler (mvhirsch)
- - Michael Holm (hollo)
- - Robert Meijers
- - roman joly (eltharin)
- - Blanchon Vincent (blanchonvincent)
  - Cédric Anne
- - Christian Schmidt
- - Ben Hakim
- - Marco Petersen (ocrampete16)
- - Bohan Yang (brentybh)
- - Vilius Grigaliūnas
- - Jordane VASPARD (elementaire)
- - Thomas Bisignani (toma)
- - Florian Klein (docteurklein)
- - Pierre Ambroise (dotordu)
+ - Francesc Rosàs (frosas)
+ - Jerzy Zawadzki (jzawadzki)
+ - Gabor Toth (tgabi333)
+ - Christopher Davis (chrisguitarguy)
+ - flack (flack)
+ - Pavel Batanov (scaytrase)
  - Raphaël Geffroy (raphael-geffroy)
- - Damien Alexandre (damienalexandre)
- - Manuel Kießling (manuelkiessling)
- - Alexey Kopytko (sanmai)
- - Warxcell (warxcell)
- - Atsuhiro KUBO (iteman)
+ - Simon Podlipsky (simpod)
+ - Marcos Sánchez
+ - Samaël Villette (samadu61)
+ - Robert Kiss (kepten)
+ - Dominique Bongiraud
+ - Loïc Frémont (loic425)
+ - Thomas Bisignani (toma)
+ - Beau Simensen (simensen)
  - rudy onfroy (ronfroy)
- - Serkan Yildiz (srknyldz)
- - Andrew Moore (finewolf)
- - Bertrand Zuchuat (garfield-fr)
- - Marc Morera (mmoreram)
- - Gabor Toth (tgabi333)
+ - Bohan Yang (brentybh)
+ - Benjamin Morel
+ - Atsuhiro KUBO (iteman)
+ - Wu (wu-agriconomie)
  - realmfoo
- - Joppe De Cuyper (joppedc)
- - Fabien S (bafs)
- - Simon Podlipsky (simpod)
+ - Sergey Belyshkin (sbelyshkin)
+ - Alexandre Quercia (alquerci)
+ - Fabien Villepinte
  - Thomas Tourlourat (armetiz)
- - Andrey Esaulov (andremaha)
- - Grégoire Passault (gregwar)
- - Jerzy Zawadzki (jzawadzki)
- - Ismael Ambrosi (iambrosi)
- - Craig Duncan (duncan3dc)
  - Emmanuel BORGES
+ - Wouter Van Hecke
+ - Pascal Luna (skalpa)
+ - Kim Hemsø Rasmussen (kimhemsoe)
+ - Dane Powell
+ - Raul Fraile (raulfraile)
+ - Ben Hakim
+ - Tiago Ribeiro (fixe)
+ - Andrey Lebedev (alebedev)
+ - Craig Duncan (duncan3dc)
+ - Sebastien Morel (plopix)
+ - Blanchon Vincent (blanchonvincent)
+ - Herberto Graca
+ - Manuel de Ruiter (manuel)
+ - Marc Morera (mmoreram)
+ - Vilius Grigaliūnas
+ - renanbr
+ - Emanuele Gaspari (inmarelibero)
+ - Marco Petersen (ocrampete16)
+ - Grégoire Passault (gregwar)
+ - Frank de Jonge
+ - Wodor Wodorski
+ - Damien Alexandre (damienalexandre)
+ - Andrii Bodnar
+ - janschoenherr
+ - Bertrand Zuchuat (garfield-fr)
  - Mathieu Rochette (mathroc)
- - Karoly Negyesi (chx)
- - Aurelijus Valeiša (aurelijus)
- - Jan Decavele (jandc)
- - Gustavo Piltcher
  - Lee Rowlands
+ - Sébastien Lavoie (lavoiesl)
+ - Dalibor Karlović
+ - Jan Decavele (jandc)
+ - Baptiste Lafontaine (magnetik)
+ - Andrew Moore (finewolf)
+ - Manuel Kießling (manuelkiessling)
  - Stepan Tanasiychuk (stfalcon)
+ - Gustavo Piltcher
+ - Aurelijus Valeiša (aurelijus)
  - Ivan Kurnosov
- - Tiago Ribeiro (fixe)
- - Raul Fraile (raulfraile)
- - Adrian Rudnik (kreischweide)
- - Pavel Batanov (scaytrase)
- - Francesc Rosàs (frosas)
- - Bongiraud Dominique
- - janschoenherr
- - Emanuele Gaspari (inmarelibero)
- - Artem (artemgenvald)
- - Thierry T (lepiaf)
- - Lorenz Schori
- - Lukáš Holeczy (holicz)
- - Jeremy Livingston (jeremylivingston)
- - ivan
- - SUMIDA, Ippei (ippey_s)
- - Urinbayev Shakhobiddin (shokhaa)
- - Ahmed Raafat
+ - Serkan Yildiz (srknyldz)
+ - Quentin Dequippe (qdequippe)
+ - Yoann RENARD (yrenard)
+ - Josip Kruslin (jkruslin)
+ - Florian Klein (docteurklein)
+ - SiD (plbsid)
+ - Moshe Weitzman (weitzman)
+ - Alexey Kopytko (sanmai)
+ - Joppe De Cuyper (joppedc)
+ - Warxcell (warxcell)
+ - Michael Hirschler (mvhirsch)
+ - Christian Schmidt
+ - Michael Holm (hollo)
+ - Soner Sayakci
+ - schlndh
+ - Philippe SEGATORI (tigitz)
+ - Andrey Esaulov (andremaha)
+ - Pavel Kirpitsov (pavel-kirpichyov)
+ - Karoly Negyesi (chx)
+ - Kirill chEbba Chebunin
+ - hossein zolfi (ocean)
+ - Haralan Dobrev (hkdobrev)
+ - Philipp Kräutli (pkraeutli)
  - Philippe Segatori
- - Thibaut Cheymol (tcheymol)
- - Vincent Chalamon
+ - Kieran Brahney
  - Raffaele Carelle
- - Erin Millard
- - Matthew Lewinski (lewinski)
- - Islam Israfilov (islam93)
+ - Urinbayev Shakhobiddin (shokhaa)
+ - Johann Pardanaud
+ - Max Baldanza
+ - Maarten de Boer (mdeboer)
+ - Eric Masoero (eric-masoero)
+ - Karel Souffriau
+ - Clément Gautier (clementgautier)
+ - Albert Jessurum (ajessu)
+ - mondrake (mondrake)
+ - Kai
+ - Vitaliy Zakharov (zakharovvi)
+ - vladimir.reznichenko
  - Ricard Clau (ricardclau)
+ - Ivan Sarastov (isarastov)
+ - Yannick Ihmels (ihmels)
+ - Sanpi (sanpi)
+ - Grzegorz (Greg) Zdanowski (kiler129)
+ - Martin Herndl (herndlm)
+ - Thierry T (lepiaf)
+ - Hassan Amouhzi
+ - Issam Raouf (iraouf)
+ - Jeremy Livingston (jeremylivingston)
+ - Tobias Sjösten (tobiassjosten)
+ - Anthon Pang (robocoder)
+ - Islam Israfilov (islam93)
+ - Grenier Kévin (mcsky_biig)
+ - SUMIDA, Ippei (ippey_s)
+ - Gyula Sallai (salla)
  - Roumen Damianoff
- - Thomas Royer (cydonia7)
- - Nicolas LEFEVRE (nicoweb)
+ - Joe Lencioni
  - Asmir Mustafic (goetas)
+ - Steven RENAUX (steven_renaux)
+ - Maximilian Ruta (deltachaos)
+ - Eduardo Gulias (egulias)
  - Mateusz Sip (mateusz_sip)
+ - Gonzalo Vilaseca (gonzalovilaseca)
+ - Thomas Royer (cydonia7)
+ - Diego Agulló (aeoris)
+ - Cătălin Dan (dancatalin)
+ - Artem (artemgenvald)
+ - Alex Bowers
+ - Vyacheslav Salakhutdinov (megazoll)
+ - Valmonzo
+ - Mathias STRASSER (roukmoute)
+ - Pol Dellaiera (drupol)
+ - Ahmed Ghanem (ahmedghanem00)
+ - Alex (aik099)
  - Francesco Levorato
- - Vitaliy Zakharov (zakharovvi)
- - Tobias Sjösten (tobiassjosten)
- - Gyula Sallai (salla)
- - Hendrik Luup (hluup)
- - Inal DJAFAR (inalgnu)
- - C (dagardner)
- - Martin Herndl (herndlm)
- - Dmytro Borysovskyi (dmytr0)
- - Johann Pardanaud
- - Pierre Rineau
- - Kai Dederichs
- - Pavel Kirpitsov (pavel-kirpichyov)
- - Artur Eshenbrener
- - Issam Raouf (iraouf)
- - Harm van Tilborg (hvt)
- - Thomas Perez (scullwm)
- - Gwendolen Lynch
+ - Kev
  - smoench
- - Felix Labrecque
- - mondrake (mondrake)
- - Yaroslav Kiliba
- - FORT Pierre-Louis (plfort)
- - Jan Böhmer
- - Terje Bråten
- - Gonzalo Vilaseca (gonzalovilaseca)
- - Tarmo Leppänen (tarlepp)
  - Jakub Kucharovic (jkucharovic)
- - Daniel STANCU
- - Kristen Gilden
- - Robbert Klarenbeek (robbertkl)
- - Dalibor Karlović
- - Hamza Makraz (makraz)
- - Eric Masoero (eric-masoero)
- - Vitalii Ekert (comrade42)
+ - Hendrik Luup (hluup)
+ - Endre Fejes
+ - Maksym Slesarenko (maksym_slesarenko)
+ - Ahmed Raafat
+ - Matthew Lewinski (lewinski)
  - Clara van Miert
- - Haralan Dobrev (hkdobrev)
- - hossein zolfi (ocean)
- - Alexander Menshchikov
- - Clément Gautier (clementgautier)
- - James Gilliland (neclimdul)
- - Sanpi (sanpi)
- - Eduardo Gulias (egulias)
+ - Pavel Volokitin (pvolok)
+ - Andy Palmer (andyexeter)
  - giulio de donato (liuggio)
- - Ivan Mezinov
- - ShinDarth
- - Stéphane PY (steph_py)
- - Cătălin Dan (dancatalin)
- - Philipp Kräutli (pkraeutli)
- - Rhodri Pugh (rodnaph)
+ - Hans Mackowiak
+ - James Gilliland (neclimdul)
+ - Robbert Klarenbeek (robbertkl)
+ - Dmytro Borysovskyi (dmytr0)
+ - Xavier HAUSHERR
  - BrokenSourceCode
- - Grzegorz (Greg) Zdanowski (kiler129)
+ - Jan Nedbal
+ - Alain Hippolyte (aloneh)
+ - Stéphane PY (steph_py)
+ - ivan
+ - Julien Galenski (ruian)
+ - Alessandro Desantis
+ - Vadim Kharitonov (vadim)
+ - Daniel Tschinder
  - Dimitri Gritsajuk (ottaviano)
- - Kirill chEbba Chebunin
- - Pol Dellaiera (drupol)
- - Alex (aik099)
- - Kieran Brahney
- - Fabien Villepinte
- - SiD (plbsid)
- - Greg Thornton (xdissent)
- - Alex Bowers
- - Kev
- - kor3k kor3k (kor3k)
- - Costin Bereveanu (schniper)
- - Andrii Dembitskyi
  - Gasan Guseynov (gassan)
- - Marek Kalnik (marekkalnik)
- - Vyacheslav Salakhutdinov (megazoll)
- - Maksym Slesarenko (maksym_slesarenko)
- - Marc Biorklund (mbiork)
- - Hassan Amouhzi
- - Tamas Szijarto
- - Michele Locati
- - Yannick Ihmels (ihmels)
- - Pavel Volokitin (pvolok)
- - Arthur de Moulins (4rthem)
- - Matthias Althaus (althaus)
- - Saif Eddin G
- - Endre Fejes
- - Tobias Naumann (tna)
- - Daniel Beyer
- - Ivan Sarastov (isarastov)
- - flack (flack)
+ - Nadim AL ABDOU (nadim)
+ - Christophe L. (christophelau)
+ - Oscar Cubo Medina (ocubom)
+ - Bohdan Bobko
  - Shein Alexey
- - Joe Lencioni
- - Daniel Tschinder
- - Diego Agulló (aeoris)
- - vladimir.reznichenko
- - Kai
- - Alain Hippolyte (aloneh)
- - Grenier Kévin (mcsky_biig)
- - Xavier HAUSHERR
- - Albert Jessurum (ajessu)
- - Romain Pierre
+ - Thomas Perez (scullwm)
+ - C (dagardner)
+ - Marc Biorklund (mbiork)
+ - Damien Fernandes
  - Laszlo Korte
- - Alessandro Desantis
+ - Jesper Noordsij
+ - Marek Kalnik (marekkalnik)
+ - Vincent Chalamon
  - hubert lecorche (hlecorche)
+ - Felix Labrecque
+ - Vitalii Ekert (comrade42)
+ - Erin Millard
+ - Tarmo Leppänen (tarlepp)
+ - Zmey
+ - Tobias Naumann (tna)
+ - Yaroslav Kiliba
+ - Pablo Lozano (arkadis)
  - Vladyslav Loboda
+ - Ilija Tovilo (ilijatovilo)
+ - Inal DJAFAR (inalgnu)
+ - Ivan Mezinov
+ - Kevin van Sonsbeek (kevin_van_sonsbeek)
+ - FORT Pierre-Louis (plfort)
+ - Lorenz Schori
+ - Neil Peyssard (nepey)
+ - Arthur de Moulins (4rthem)
+ - kor3k kor3k (kor3k)
+ - Nathanael Noblet (gnat)
+ - Nicolas LEFEVRE (nicoweb)
+ - Kristen Gilden
+ - Daniel STANCU
+ - Terje Bråten
+ - Michele Locati
+ - Greg Thornton (xdissent)
+ - Jan Böhmer
+ - Matthias Althaus (althaus)
+ - Gwendolen Lynch
+ - Quentin Schuler (sukei)
+ - Pierre Rineau
  - Marc Morales Valldepérez (kuert)
- - Vadim Kharitonov (vadim)
- - Oscar Cubo Medina (ocubom)
- - Karel Souffriau
- - Christophe L. (christophelau)
- - a.dmitryuk
- - Anthon Pang (robocoder)
- - Julien Galenski (ruian)
- - Benjamin Morel
+ - Rob Bast
+ - Rhodri Pugh (rodnaph)
  - Ben Scott (bpscott)
- - Shyim
- - Pablo Lozano (arkadis)
- - Brian King
- - quentin neyrat (qneyrat)
- - Chris Tanaskoski (devristo)
- - Steffen Roßkamp
- - Andrey Lebedev (alebedev)
- - Alexandru Furculita (afurculita)
- - Michel Salib (michelsalib)
- - Ben Roberts (benr77)
- - Ahmed Ghanem (ahmedghanem00)
- - Valentin Jonovs
- - geoffrey
- - Quentin Dequippe (qdequippe)
- - Benoit Galati (benoitgalati)
- - Benjamin (yzalis)
- - Jeanmonod David (jeanmonod)
- - Webnet team (webnet)
- - Christian Gripp (core23)
- - Tobias Bönner
- - Nicolas Rigaud
- - PHAS Developer
- - Ben Ramsey (ramsey)
- - Berny Cantos (xphere81)
- - Antonio Jose Cerezo (ajcerezo)
- - Maelan LE BORGNE
- - Thomas Talbot (ioni)
- - Marcin Szepczynski (czepol)
- - Lescot Edouard (idetox)
- - Dennis Fridrich (dfridrich)
- - Mohammad Emran Hasan (phpfour)
- - Florian Merle (florian-merle)
- - Dmitriy Mamontov (mamontovdmitriy)
- - Jan Schumann
- - Matheo Daninos (mathdns)
- - Neil Peyssard (nepey)
- - Niklas Fiekas
- - Mark Challoner (markchalloner)
- - Andreas Hennings
- - Markus Bachmann (baachi)
- - Gunnstein Lye (glye)
- - Erkhembayar Gantulga (erheme318)
- - Yi-Jyun Pan
- - Sergey Melesh (sergex)
- - Greg Anderson
- - Arnaud De Abreu (arnaud-deabreu)
- - lancergr
- - Benjamin Zaslavsky (tiriel)
- - Tri Pham (phamuyentri)
- - Angelov Dejan (angelov)
- - Ivan Nikolaev (destillat)
- - Gildas Quéméner (gquemener)
- - Ioan Ovidiu Enache (ionutenache)
+ - Dave Long
+ - Harm van Tilborg (hvt)
+ - Costin Bereveanu (schniper)
+ - ShinDarth
+ - Thibaut Cheymol (tcheymol)
+ - Florent Blaison (orkin)
+ - Daniel Beyer
  - Mokhtar Tlili (sf-djuba)
- - Maxim Dovydenok (dovydenok-maxim)
- - Laurent Masforné (heisenberg)
- - Claude Khedhiri (ck-developer)
- - Benjamin Georgeault (wedgesama)
- - Desjardins Jérôme (jewome62)
- - Arturs Vonda
- - Matthew Smeets
- - Toni Rudolf (toooni)
- - Stefan Gehrig (sgehrig)
- - vagrant
- - Matthias Krauser (mkrauser)
- - Benjamin Cremer (bcremer)
- - Maarten de Boer (mdeboer)
+ - Lukáš Holeczy (holicz)
+ - Anthony Ferrara
+ - Philipp Rieber (bicpi)
  - Asier Illarramendi (doup)
- - AKeeman (akeeman)
- - Martijn Cuppens
- - Restless-ET
- - Vlad Gregurco (vgregurco)
- - Artem Stepin (astepin)
- - Jérémy DECOOL (jdecool)
- - Boris Vujicic (boris.vujicic)
- - Dries Vints
- - Judicaël RUFFIEUX (axanagor)
- - Chris Sedlmayr (catchamonkey)
- - DerManoMann
- - Jérôme Tanghe (deuchnord)
- - Mathias STRASSER (roukmoute)
- - simon chrzanowski (simonch)
- - Kamil Kokot (pamil)
- - Seb Koelen
- - Christoph Mewes (xrstf)
- - Andrew M-Y (andr)
- - Krasimir Bosilkov (kbosilkov)
- - Marcin Michalski (marcinmichalski)
- - Vitaliy Tverdokhlib (vitaliytv)
- - Ariel Ferrandini (aferrandini)
- - BASAK Semih (itsemih)
- - Dirk Pahl (dirkaholic)
- - Cédric Lombardot (cedriclombardot)
- - Jérémy REYNAUD (babeuloula)
- - Faizan Akram Dar (faizanakram)
- - Arkadius Stefanski (arkadius)
- - Jonas Flodén (flojon)
- - AnneKir
- - Tobias Weichart
- - Arnaud POINTET (oipnet)
- - Tristan Pouliquen
- - Miro Michalicka
- - Hans Mackowiak
+ - Ali-HENDA
+ - Petr Duda (petrduda)
+ - Robert-Jan de Dreu
  - M. Vondano
- - Dominik Zogg
- - Maximilian Zumbansen
- - Vadim Borodavko (javer)
- - Tavo Nieves J (tavoniievez)
- - Luc Vieillescazes (iamluc)
- - Erik Saunier (snickers)
- - François Dume (franek)
- - Jerzy Lekowski (jlekowski)
+ - Benjamin Cremer (bcremer)
+ - Ziumin
+ - Matthias Krauser (mkrauser)
+ - lenar
  - Raulnet
- - Petrisor Ciprian Daniel
- - Oleksiy (alexndlm)
- - William Arslett (warslett)
- - Giso Stallenberg (gisostallenberg)
- - Rob Bast
+ - Gigino Chianese (sajito)
+ - Matthijs van den Bos (matthijs)
  - Roberto Espinoza (respinoza)
- - Marvin Feldmann (breyndotechse)
+ - mcben
+ - Grummfy (grummfy)
+ - Maelan LE BORGNE
+ - Thomas Durand
+ - Maxime Pinot (maximepinot)
+ - jprivet-dev
+ - Denis Gorbachev (starfall)
+ - Jérôme Tanghe (deuchnord)
+ - Judicaël RUFFIEUX (axanagor)
+ - Benjamin (yzalis)
  - Soufian EZ ZANTAR (soezz)
+ - lancergr
+ - Forfarle (forfarle)
+ - Adrien Roches (neirda24)
+ - Adam Szaraniec
+ - Kamil Kokot (pamil)
  - Marek Zajac
- - Adam Harvey
- - Klaus Silveira (klaussilveira)
- - ilyes kooli (skafandri)
- - Anton Bakai
- - battye
- - Nicolas Dousson
- - Axel Guckelsberger (guite)
- - Sam Fleming (sam_fleming)
- - Alex Bakhturin
+ - Roy Van Ginneken (rvanginneken)
+ - Michael Moravec
+ - Korvin Szanto
+ - Giso Stallenberg (gisostallenberg)
+ - Dmitriy Mamontov (mamontovdmitriy)
+ - Brian King
+ - Matheo Daninos (mathdns)
+ - Niklas Fiekas
+ - Krzysztof Piasecki (krzysztek)
+ - Maximilian Zumbansen
+ - Nate (frickenate)
+ - Jacek Jędrzejewski (jacek.jedrzejewski)
  - Belhassen Bouchoucha (crownbackend)
- - Patrick Reimers (preimers)
- - Brayden Williams (redstar504)
- - insekticid
- - Jérémy M (th3mouk)
- - Trent Steel (trsteel88)
- - boombatower
- - Alireza Mirsepassi (alirezamirsepassi)
- - Jérôme Macias (jeromemacias)
- - Andrey Astakhov (aast)
- - ReenExe
- - Fabian Lange (codingfabian)
- - kylekatarnls (kylekatarnls)
- - Yoshio HANAWA
- - Jan van Thoor (janvt)
- - Joshua Nye
+ - Alex Bakhturin
+ - Lenard Palko
+ - Ben Roberts (benr77)
+ - Maxim Dovydenok (dovydenok-maxim)
+ - PHAS Developer
+ - Bilge
  - Martin Kirilov (wucdbm)
- - Koen Reiniers (koenre)
+ - Laurent Masforné (heisenberg)
+ - Boris Vujicic (boris.vujicic)
+ - Marcin Szepczynski (czepol)
+ - Jonas Flodén (flojon)
+ - Eyüp Can Akman
  - Kurt Thiemann
- - Nathan Dench (ndenc2)
- - Gijs van Lammeren
- - Sebastian Bergmann
- - Nadim AL ABDOU (nadim)
- - Matthew Grasmick
- - Miroslav Šustek (sustmi)
- - Pablo Díez (pablodip)
- - Kevin McBride
+ - Rodrigo Borrego Bernabé (rodrigobb)
  - Sergio Santoro
+ - Jannik Zschiesche
+ - Tavo Nieves J (tavoniievez)
+ - mamazu
+ - Peter Bowyer (pbowyer)
+ - Andrii Dembitskyi
  - Jonas Elfering
- - Philipp Rieber (bicpi)
- - Dmitriy Derepko
- - Manuel de Ruiter (manuel)
- - Nathanael Noblet (gnat)
- - nikos.sotiropoulos
- - BENOIT POLASZEK (bpolaszek)
- - Eduardo Oliveira (entering)
- - Oleksii Zhurbytskyi
- - Bilge
- - Anatoly Pashin (b1rdex)
- - Jonathan Johnson (jrjohnson)
- - Eugene Wissner
- - Ricardo Oliveira (ricardolotr)
- - Roy Van Ginneken (rvanginneken)
- - ondrowan
- - Barry vd. Heuvel (barryvdh)
- - Antonin CLAUZIER (0x346e3730)
- - Chad Sikorra (chadsikorra)
- - Evan S Kaufman (evanskaufman)
- - mcben
- - Jérôme Vieilledent (lolautruche)
+ - Jan van Thoor (janvt)
+ - William Arslett (warslett)
  - Roman Anasal
- - Filip Procházka (fprochazka)
- - Sergey Panteleev
- - Jeroen Thora (bolle)
- - Markus Lanthaler (lanthaler)
- - Gigino Chianese (sajito)
- - Remi Collet
- - Piotr Kugla (piku235)
- - Vicent Soria Durá (vicentgodella)
- - Michael Moravec
- - Leevi Graham (leevigraham)
- - Anthony Ferrara
+ - sasezaki
+ - Denis Kulichkin (onexhovia)
+ - Pablo Díez (pablodip)
  - tim
- - Ioan Negulescu
- - Greg ORIOL
- - Jakub Škvára (jskvara)
- - Andrew Udvare (audvare)
- - siganushka (siganushka)
- - alexpods
- - Quentin Schuler (sukei)
- - Adam Szaraniec
- - Dariusz Ruminski
- - Bahman Mehrdad (bahman)
- - Romain Gautier (mykiwi)
- - Link1515
- - Matthieu Bontemps
- - Erik Trapman
  - De Cock Xavier (xdecock)
- - Zbigniew Malcherczyk (ferror)
- - Nicolas Dewez (nicolas_dewez)
- - Denis Kulichkin (onexhovia)
- - Scott Arciszewski
+ - Benjamin Zaslavsky (tiriel)
+ - Loïc Ovigne (oviglo)
+ - Restless-ET
+ - Gunnstein Lye (glye)
+ - Ivan Rey (ivanrey)
+ - Luc Vieillescazes (iamluc)
+ - Alexander Deruwe (aderuwe)
+ - Arkadius Stefanski (arkadius)
+ - Dariusz Ruminski
+ - Jan Ole Behrens (deegital)
+ - Jeanmonod David (jeanmonod)
+ - BENOIT POLASZEK (bpolaszek)
+ - Erik Saunier (snickers)
+ - Bohdan Pliachenko
+ - Disquedur
  - Xavier HAUSHERR
+ - wicliff wolda (wickedone)
+ - Arturs Vonda
+ - Ryan
+ - Nicolas Rigaud
+ - Trent Steel (trsteel88)
+ - Miroslav Šustek (sustmi)
+ - Chad Sikorra (chadsikorra)
+ - Philipp Scheit (pscheit)
+ - Nicolas Dewez (nicolas_dewez)
+ - Benoit Galati (benoitgalati)
+ - Brayden Williams (redstar504)
  - Norbert Orzechowicz (norzechowicz)
- - Robert-Jan de Dreu
- - Fabrice Bernhard (fabriceb)
- - Matthijs van den Bos (matthijs)
- - Markus S. (staabm)
+ - Nathan Dench (ndenc2)
+ - DerManoMann
+ - Martin Morávek (keeo)
+ - Jiří Bok
+ - Johnny Robeson (johnny)
+ - Jeroen Thora (bolle)
+ - Marcin Michalski (marcinmichalski)
+ - Markus Bachmann (baachi)
+ - Alireza Mirsepassi (alirezamirsepassi)
+ - Vitaliy Tverdokhlib (vitaliytv)
+ - Sergey Panteleev
+ - Ned Schwartz
+ - Vlad Gregurco (vgregurco)
+ - François Dume (franek)
+ - Tobias Bönner
+ - Cédric Lombardot (cedriclombardot)
+ - Jérémy DECOOL (jdecool)
+ - Jérémy M (th3mouk)
+ - Matthieu Bontemps
+ - Andrew Udvare (audvare)
+ - Miro Michalicka
+ - Jan Schumann
+ - Gábor Fási
+ - R. Achmad Dadang Nur Hidayanto (dadangnh)
+ - Chris Tanaskoski (devristo)
+ - Arnaud De Abreu (arnaud-deabreu)
+ - Zbigniew Malcherczyk (ferror)
+ - Dirk Pahl (dirkaholic)
+ - Gawain Lynch (gawain)
+ - Axel Guckelsberger (guite)
+ - Geoffrey Tran (geoff)
+ - Vicent Soria Durá (vicentgodella)
+ - boombatower
+ - vagrant
+ - nikos.sotiropoulos
+ - Florian Rey (nervo)
+ - Lescot Edouard (idetox)
+ - Markus Staab
+ - Arnaud POINTET (oipnet)
+ - Johan Vlaar (johjohan)
+ - Gildas Quéméner (gquemener)
+ - Artem Stepin (astepin)
+ - Loïc Faugeron
+ - Greg ORIOL
+ - Piotr Kugla (piku235)
  - PatNowak
+ - Kevin McBride
+ - Ioan Ovidiu Enache (ionutenache)
  - Bhavinkumar Nakrani (bhavin4u)
- - Jaik Dean (jaikdean)
- - Krzysztof Piasecki (krzysztek)
+ - “Filip
  - Pavel Popov (metaer)
- - Lenard Palko
+ - Dennis Fridrich (dfridrich)
+ - Sander Toonen (xatoo)
+ - Andrew M-Y (andr)
+ - Mark Challoner (markchalloner)
+ - Ioan Negulescu
+ - Thomas Talbot (ioni)
+ - Fabrice Bernhard (fabriceb)
+ - Jérôme Vieilledent (lolautruche)
+ - aaa2000 (aaa2000)
+ - Sergey Melesh (sergex)
+ - Florian Merle (florian-merle)
+ - Emanuele Iannone
+ - Toni Rudolf (toooni)
+ - Ivan Nikolaev (destillat)
+ - Fabian Lange (codingfabian)
+ - Webnet team (webnet)
+ - Vadim Borodavko (javer)
+ - BASAK Semih (itsemih)
+ - Krasimir Bosilkov (kbosilkov)
+ - Yoshio HANAWA
+ - Ariel Ferrandini (aferrandini)
+ - Tobias Weichart
+ - Martijn Cuppens
+ - Filip Procházka (fprochazka)
+ - Jérôme Macias (jeromemacias)
+ - Jibé Barth (jibbarth)
+ - Mohammad Emran Hasan (phpfour)
+ - Erkhembayar Gantulga (erheme318)
+ - Jerzy Lekowski (jlekowski)
+ - Lctrs
  - Nils Adermann (naderman)
+ - Aurélien Fredouelle
  - Tom Klingenberg
- - Gábor Fási
- - R. Achmad Dadang Nur Hidayanto (dadangnh)
- - Nate (frickenate)
- - Stefan Kruppa
- - Jacek Jędrzejewski (jacek.jedrzejewski)
+ - NickSdot
+ - mmokhi
  - Shakhobiddin
- - Stefan Kruppa
- - Joachim Løvgaard (loevgaard)
- - sasezaki
- - Dawid Pakuła (zulusx)
- - Florian Rey (nervo)
- - Peter Bowyer (pbowyer)
- - Rodrigo Borrego Bernabé (rodrigobb)
- - John Bafford (jbafford)
- - Emanuele Iannone
- - Petr Duda (petrduda)
- - Marcos Rezende (rezende79)
- - Denis Gorbachev (starfall)
- - Martin Morávek (keeo)
+ - Bahman Mehrdad (bahman)
+ - Martin Parsiegla (spea)
+ - Adam Harvey
+ - Marvin Feldmann (breyndotechse)
+ - Pavel Campr (pcampr)
+ - Bernd Stellwag
+ - Patrick Reimers (preimers)
  - Kevin Saliou (kbsali)
- - Steven Surowiec (steves)
- - Shawn Iwinski
- - Dieter
+ - Marcos Rezende (rezende79)
+ - Steffen Roßkamp
+ - Yi-Jyun Pan
+ - Florent Destremau (florentdestremau)
+ - John Bafford (jbafford)
+ - Antonin CLAUZIER (0x346e3730)
  - Samuele Lilli (doncallisto)
- - Gawain Lynch (gawain)
- - mmokhi
- - Ryan
- - Alexander Deruwe (aderuwe)
- - Dave Hulbert (dave1010)
- - Ivan Rey (ivanrey)
- - Johan Vlaar (johjohan)
- - M. (mbontemps)
- - Marcin Chyłek (songoq)
- - Ned Schwartz
- - Ziumin
- - Daniel Tiringer
- - Lenar Lõhmus
- - Ilija Tovilo (ilijatovilo)
- - Maxime Pinot (maximepinot)
- - Sander Toonen (xatoo)
- - Zach Badgett (zachbadgett)
- - Loïc Faugeron
- - Aurélien Fredouelle
- - Pavel Campr (pcampr)
+ - Christoph Mewes (xrstf)
+ - Michel Salib (michelsalib)
+ - nathanpage
+ - Silas Joisten (silasjoisten)
+ - Shawn Iwinski
+ - Clemens Krack (ckrack)
+ - Scott Arciszewski
+ - Yevhen Sidelnyk
+ - Ben Ramsey (ramsey)
+ - Sebastian Zoglowek
+ - Remi Collet
+ - Ricardo Oliveira (ricardolotr)
  - Andrii Dembitskyi
- - Markus Staab
- - Forfarle (forfarle)
- - Johnny Robeson (johnny)
- - Disquedur
+ - Martin Gilbert (nitram1618)
+ - Petrisor Ciprian Daniel
+ - Greg Anderson
+ - W0rma
+ - Antonio Jose Cerezo (ajcerezo)
+ - simon chrzanowski (simonch)
+ - AKeeman (akeeman)
+ - Andreas Hennings
+ - Jaik Dean (jaikdean)
+ - Tri Pham (phamuyentri)
+ - Benjamin Georgeault (wedgesama)
+ - Markus Lanthaler (lanthaler)
+ - battye
+ - Jonathan Johnson (jrjohnson)
+ - Valentin Jonovs
+ - Christian Gripp (core23)
+ - ReenExe
+ - Angelov Dejan (angelov)
  - Guilherme Ferreira
- - Geoffrey Tran (geoff)
- - Jannik Zschiesche
- - Bernd Stellwag
- - Jan Ole Behrens (deegital)
- - wicliff wolda (wickedone)
- - Mantas Var (mvar)
- - Ramunas Pabreza (doobas)
- - Yuriy Vilks (igrizzli)
- - Terje Bråten
- - Sebastian Krebs
- - Piotr Stankowski
- - Pierre-Emmanuel Tanguy (petanguy)
- - Julien Maulny
- - Gennadi Janzen
- - johan Vlaar
- - Paul Oms
- - James Hemery
- - wuchen90
- - Wouter van der Loop (toppy-hennie)
- - Ninos
- - julien57
- - Mátyás Somfai (smatyas)
- - MrMicky
- - Bastien DURAND (deamon)
- - Dmitry Simushev
- - alcaeus
- - Simon Leblanc (leblanc_simon)
- - Fred Cox
- - Simon DELICATA
- - Thibault Buathier (gwemox)
- - Julien Boudry
- - vitaliytv
+ - Zach Badgett (zachbadgett)
+ - Berny Cantos (xphere81)
  - Franck RANAIVO-HARISOA (franckranaivo)
- - Yi-Jyun Pan
- - Egor Taranov
- - Arnaud Frézet
- - Philippe Segatori
- - Jon Gotlin (jongotlin)
- - Adrian Nguyen (vuphuong87)
- - benjaminmal
- - Roy de Vos Burchart
- - Andrey Sevastianov
- - Oleksandr Barabolia (oleksandrbarabolia)
- - Khoo Yong Jun
- - Christin Gruber (christingruber)
- - Sebastian Blum
- - Daniel González (daniel.gonzalez)
- - Julien Turby
- - Ricky Su (ricky)
- - scyzoryck
- - Kyle Evans (kevans91)
- - Max Rath (drak3)
- - Cristoforo Cervino (cristoforocervino)
- - marie
- - Stéphane Escandell (sescandell)
- - Fractal Zombie
- - James Johnston
- - Noémi Salaün (noemi-salaun)
- - Sinan Eldem (sineld)
- - Gennady Telegin
- - Benedikt Lenzen (demigodcode)
- - ampaze
- - Alexandre Dupuy (satchette)
- - Michel Hunziker
- - Malte Blättermann
- - Ilya Levin (ilyachase)
- - Simeon Kolev (simeon_kolev9)
+ - M. (mbontemps)
+ - Matthew Grasmick
+ - Eugene Wissner
+ - Steven Surowiec (steves)
+ - Marcin Chyłek (songoq)
+ - Erik Trapman
+ - geoffrey
+ - Stefan Kruppa
+ - Daniel Tiringer
+ - Dawid Pakuła (zulusx)
+ - Evan S Kaufman (evanskaufman)
+ - Sebastian Bergmann
+ - Alexandru Furculita (afurculita)
+ - Romain Gautier (mykiwi)
+ - ilyes kooli (skafandri)
+ - Desjardins Jérôme (jewome62)
+ - Matthew Smeets
+ - Anatoly Pashin (b1rdex)
+ - Jérémy REYNAUD (babeuloula)
+ - kylekatarnls (kylekatarnls)
+ - Jakub Škvára (jskvara)
+ - Oleksii Zhurbytskyi
+ - AnneKir
+ - Dominik Zogg
+ - Sam Fleming (sam_fleming)
+ - Anton Bakai
+ - Andrey Astakhov (aast)
+ - quentin neyrat (qneyrat)
+ - Leevi Graham (leevigraham)
+ - Dries Vints
+ - Klaus Silveira (klaussilveira)
+ - Dave Hulbert (dave1010)
+ - Chris Sedlmayr (catchamonkey)
+ - Eduardo Oliveira (entering)
+ - Koen Reiniers (koenre)
+ - Evgeny Ruban
+ - Faizan Akram Dar (faizanakram)
+ - Gijs van Lammeren
+ - Markus S. (staabm)
+ - takashiraki
+ - Joshua Nye
+ - Joachim Løvgaard (loevgaard)
+ - Claude Khedhiri (ck-developer)
+ - Stefan Gehrig (sgehrig)
+ - Barry vd. Heuvel (barryvdh)
+ - Malte Müns
+ - James Hudson (mrthehud)
+ - Eduardo Rocha
  - Joost van Driel (j92)
- - Jonas Elfering
- - Mihai Stancu
- - Nahuel Cuesta (ncuesta)
- - Santiago San Martin
- - Chris Boden (cboden)
- - EStyles (insidestyles)
+ - Rafael Kraut
+ - Thomas Nunninger
+ - Arpit Verma
+ - Max Baldanza
+ - Ettore Del Negro (ettoredn)
  - Christophe Villeger (seragan)
- - Krystian Marcisz (simivar)
- - Julien Fredon
+ - Vladimir Varlamov (iamvar)
+ - Arjan Keeman
+ - Zouaoui Montassar
+ - bukhonovd
+ - hugovms
+ - Payene Denis KOMBATE (payene)
+ - Ryan RAJKOMAR (rrajkomar)
+ - Nicolas Dousson
+ - Youssef Benhssaien (moghreb)
+ - Vikram Vaswani
+ - Alexander Dmitryuk (coden1)
+ - Andrew Tchircoff (andrewtch)
+ - Brad Jones
+ - Martin (meckhardt)
+ - Gerard van Helden (drm)
+ - Maks 3w (maks3w)
+ - Michael Roterman (wtfzdotnet)
+ - Nicole Cordes (ichhabrecht)
+ - Miquel Rodríguez Telep (mrtorrent)
+ - Sergey Kolodyazhnyy (skolodyazhnyy)
+ - tourze
+ - julien57
+ - Matijn (matijn-made)
+ - Florian Wolfsjaeger (flowolf)
+ - Jonathan Hogervorst
+ - Amr Ezzat (amrezzat)
+ - Julien Robic (nayte)
  - Xavier Leune (xleune)
- - Hany el-Kerdany
- - Wang Jingyu
- - Baptiste CONTRERAS
- - Åsmund Garfors
- - Maxime Douailin
- - Jean Pasdeloup
- - Maxime COLIN (maximecolin)
- - Loïc Ovigne (oviglo)
- - Lorenzo Millucci (lmillucci)
- - Javier López (loalf)
+ - aegypius
+ - Abhoryo
+ - Sergey Yastrebov
+ - Mustafa Cheraim (musta_cher)
  - Reinier Kip
- - Jérôme Tamarelle (jtamarelle-prismamedia)
- - Emil Masiakowski
- - Geoffrey Brier (geoffrey-brier)
- - Sofien Naas
- - Alexandre Parent
- - Daniel Badura
- - Brajk19
- - Roger Guasch (rogerguasch)
- - DT Inier (gam6itko)
- - Dustin Dobervich (dustin10)
+ - shubhalgupta
+ - Tomasz Kusy
+ - Raphaëll Roussel
+ - Pavel Witassek
+ - Benjamin Franzke
+ - Florian Weber
+ - Maksim Muruev
+ - Stéphane Escandell (sescandell)
+ - Israel J. Carberry
+ - Andrew Hilobok (hilobok)
+ - Ilia (aliance)
+ - Gladhon
+ - Mudassar
+ - Konstantin Grachev (grachevko)
+ - Philippe Segatori
+ - Benjamin Grandfond (benjamin)
+ - Oleksii Kozhemiaka (okozhemiaka)
+ - Gálik Pál
+ - develop
+ - Oriol Viñals
+ - Mihai Stancu
+ - Reyo Stallenberg (reyostallenberg)
+ - Pierre Hennequart
+ - Carson Full (carsonfull)
+ - Álvaro Sánchez Taboada
+ - Mark Schmale (masch)
+ - Benoît Merlet (trompette)
+ - Yuriy Vilks (igrizzli)
+ - fzerorubigd
+ - Denis Zunke (donalberto)
+ - Chris Boden (cboden)
+ - VJ
+ - Jacques MOATI (jmoati)
+ - grizlik
+ - Malte Blättermann
+ - louismariegaborit
+ - Benjamin Toussaint (bto)
+ - Barney Hanlon
+ - Kieran Cross (kilosierracharlie)
+ - Andrei C. (moldman)
+ - Daniel Cestari
+ - Bert Hekman (demontpx)
+ - Loïc Beurlet
+ - Marcos Gómez Vilches (markitosgv)
+ - Pedro Miguel Maymone de Resende (pedroresende)
+ - Ryan Hendrickson
  - Luis Tacón (lutacon)
- - Dmitrii Tarasov (dtarasov)
- - dantleech
- - Philipp Kolesnikov
- - Jack Worman (jworman)
- - Sebastian Marek (proofek)
- - Carlos Pereira De Amorim (epitre)
- - zenmate
- - Andrii Popov (andrii-popov)
- - David Fuhr
- - Malte Müns
- - Rodrigo Aguilera
- - Vladimir Varlamov (iamvar)
- - Aurimas Niekis (gcds)
- - Matthieu Calie (matth--)
- - Sem Schidler (xvilo)
- - Benjamin Schoch (bschoch)
- - Martins Sipenko
- - Guilherme Augusto Henschel
- - Rostyslav Kinash
- - Christophe V. (cvergne)
- - Mardari Dorel (dorumd)
- - Daisuke Ohata
- - Vincent Simonin
- - Pierrick VIGNAND (pierrick)
- - Alex Bogomazov (alebo)
- - aaa2000 (aaa2000)
- - Andy Palmer (andyexeter)
- - Andrew Neil Forster (krciga22)
- - Stefan Warman (warmans)
- - Tristan Maindron (tmaindron)
- - Behnoush Norouzali (behnoush)
- - Marko H. Tamminen (gzumba)
- - Wesley Lancel
- - Xavier Briand (xavierbriand)
- - Ke WANG (yktd26)
- - Ivo Bathke (ivoba)
- - Lukas Mencl
- - David Molineus
- - Strate
- - Anton A. Sumin
+ - Andreas Braun
+ - Zhuravlev Alexander (scif)
  - Marko Petrovic
- - alexandre.lassauge
- - Israel J. Carberry
- - Miquel Rodríguez Telep (mrtorrent)
- - Tamás Nagy (t-bond)
- - Sergey Kolodyazhnyy (skolodyazhnyy)
- - umpirski
- - Quentin de Longraye (quentinus95)
- - Chris Heng (gigablah)
- - Mickaël Buliard (mbuliard)
- - Jan Nedbal
- - Cornel Cruceru (amne)
- - Richard Bradley
- - Jan Walther (janwalther)
- - Ulumuddin Cahyadi Yunus (joenoez)
- - rtek
- - Mickaël Isaert (misaert)
+ - Jose Gonzalez
+ - den
+ - Jordan Deitch
+ - Arturas Smorgun (asarturas)
+ - Vincent QUATREVIEUX
+ - Loïc Chardonnet
+ - scyzoryck
+ - Tiago Brito (blackmx)
+ - bogdan
+ - Shin Ohno (ganchiku)
  - Adrien Jourdier (eclairia)
- - Florian Pfitzer (marmelatze)
- - Ivan Grigoriev (greedyivan)
- - Johann Saunier (prophet777)
- - Kevin SCHNEKENBURGER
- - Geordie
+ - Volodymyr Panivko
+ - David Fuhr
+ - Artur Eshenbrener
+ - Fabien LUCAS (flucas2)
+ - Ferran Perxas (fperxas)
+ - Tony Tran
+ - Tristan Roussel
+ - Johnny Peck (johnnypeck)
+ - frost-nzcr4
+ - Michiel Boeckaert (milio)
+ - Gerben Oolbekkink
+ - Jon Dufresne
+ - avorobiev
  - Fabien Salles (blacked)
- - Tim Düsterhus
- - Andreas Erhard (andaris)
- - alexpozzi
- - Michael Devery (mickadoo)
- - Gregor Nathanael Meyer (spackmat)
- - Antoine Corcy
- - Ahmed Ashraf (ahmedash95)
- - Gert Wijnalda (cinamo)
- - Aurimas Niekis (aurimasniekis)
- - Luca Saba (lucasaba)
+ - Guillaume Verstraete
+ - Pierre-Yves Landuré (biapy)
  - Sascha Grossenbacher (berdir)
- - Guillaume Aveline
- - nathanpage
- - Robin Lehrmann
- - Szijarto Tamas
- - Thomas P
- - Stephan Vock (glaubinix)
- - Jaroslav Kuba
- - Benjamin Zikarsky (bzikarsky)
- - Kristijan Kanalaš (kristijan_kanalas_infostud)
- - Rodrigo Méndez (rodmen)
- - sl_toto (sl_toto)
- - Marek Pietrzak (mheki)
- - “Filip
- - Mickaël Andrieu (mickaelandrieu)
- - Simon Watiau (simonwatiau)
- - Ruben Jacobs (rubenj)
- - Simon Schick (simonsimcity)
- - Tristan Roussel
- - NickSdot
- - Niklas Keller
- - Alexandre parent
- - Cameron Porter
- - Hossein Bukhamsin
- - Oliver Hoff
+ - Matt Johnson (gdibass)
+ - Wouter van der Loop (toppy-hennie)
+ - Terje Bråten
+ - Reen Lokum
+ - phpner
+ - Damien Fa
+ - Dennis Hotson
+ - Gregor Nathanael Meyer (spackmat)
+ - Geoffrey Brier (geoffrey-brier)
+ - zenas1210
+ - Felds Liscia (felds)
+ - Sander De la Marche (sanderdlm)
+ - Carlos Quintana
+ - Jeroen Fiege (fieg)
+ - Jeroen van den Enden (endroid)
+ - Ворожцов Максим (myks92)
+ - Tristan Maindron (tmaindron)
+ - Andreas Lutro (anlutro)
+ - Julien DIDIER (juliendidier)
+ - Denis Charrier (brucewouaigne)
+ - Alexandre Parent
+ - Siebe Vanden Eynden (siebe_ve)
+ - Alex Xandra Albert Sim
+ - Anton A. Sumin
+ - benjaminmal
+ - David Romaní
+ - d-mitrofanov-v
+ - Roger Guasch (rogerguasch)
+ - Kristof Van Cauwenbergh (kristofvc)
+ - Nahuel Cuesta (ncuesta)
+ - Sinan Eldem (sineld)
  - Christian Sciberras (uuf6429)
- - Thomas Nunninger
- - origaminal
- - Matteo Beccati (matteobeccati)
- - Renan Gonçalves (renan_saddam)
+ - Kagan Balga (kagan-balga)
+ - Simon Mönch
+ - Alex Bogomazov (alebo)
+ - Chris Jones (magikid)
+ - Jonathan (jlslew)
+ - Dennis Langen (nijusan)
+ - Mathias Brodala (mbrodala)
+ - Carlos Pereira De Amorim (epitre)
+ - Nathan PAGE (nathix)
+ - Jon Gotlin (jongotlin)
  - Vitaliy Ryaboy (vitaliy)
- - Kevin (oxfouzer)
- - Paweł Wacławczyk (pwc)
- - Oleg Zinchenko (cystbear)
- - Baptiste Meyer (meyerbaptiste)
+ - Mátyás Somfai (smatyas)
+ - Maxime COLIN (maximecolin)
+ - izzyp
+ - Jeremiasz Major
  - Tales Santos (tsantos84)
- - Tomasz Kusy
- - Johannes Klauss (cloppy)
- - Evan Villemez
- - fzerorubigd
- - Thomas Ploch
- - Benjamin Grandfond (benjamin)
- - Tiago Brito (blackmx)
- - Gintautas Miselis (naktibalda)
- - Richard van den Brand (ricbra)
- - Toon Verwerft (veewee)
- - develop
- - flip111
- - Douglas Hammond (wizhippo)
- - VJ
- - RJ Garcia
- - Adrien Lucas (adrienlucas)
- - Jawira Portugal (jawira)
- - Delf Tonder (leberknecht)
- - Ondrej Exner
- - Mark Sonnabaum
- - Chris Jones (magikid)
- - Massimiliano Braglia (massimilianobraglia)
- - Thijs-jan Veldhuizen (tjveldhuizen)
- - Richard Quadling
- - James Hudson (mrthehud)
- - Raphaëll Roussel
- - Michael Lutz
- - jochenvdv
- - Oriol Viñals
+ - Patrick Allaert
+ - mfettig
+ - Ana Raro
+ - Gabrielle Langer
+ - Sebastian Marek (proofek)
+ - Christopher Hall (mythmakr)
+ - katario
+ - wuchen90
  - Reedy
- - Arturas Smorgun (asarturas)
- - Aleksandr Volochnev (exelenz)
- - Robin van der Vleuten (robinvdvleuten)
- - Grinbergs Reinis (shima5)
- - Michael Piecko (michael.piecko)
- - Toni Peric (tperic)
- - yclian
- - Nicolas DOUSSON
- - radar3301
- - Aleksey Prilipko
- - Jelle Raaijmakers (gmta)
- - Andrew Berry
- - Sylvain BEISSIER (sylvain-beissier)
- - Wybren Koelmans (wybren_koelmans)
- - Roberto Nygaard
- - victor-prdh
- - Davide Borsatto (davide.borsatto)
- - Florian Hermann (fhermann)
- - Vitaliy Zhuk (zhukv)
- - zenas1210
- - Gert de Pagter
- - Julien DIDIER (juliendidier)
- - Ворожцов Максим (myks92)
- - Randy Geraads
- - Kevin van Sonsbeek (kevin_van_sonsbeek)
- - Simo Heinonen (simoheinonen)
+ - Ivan Grigoriev (greedyivan)
+ - Geert De Deckere
+ - Daniel Badura
+ - Eric Abouaf (neyric)
+ - Piotr Stankowski
+ - Dmitrii Tarasov (dtarasov)
+ - Glodzienski
+ - COMBROUSE Dimitri
+ - EStyles (insidestyles)
+ - ampaze
+ - ouardisoft
+ - Baptiste CONTRERAS
+ - Kay Wei
+ - Julien Tattevin (jutattevin)
+ - Ke WANG (yktd26)
  - Jay Klehr
- - Andreas Leathley (iquito)
- - Vladimir Luchaninov (luchaninov)
- - Sebastian Grodzicki (sgrodzicki)
- - Mohamed Gamal
- - Eric COURTIAL
- - Xesxen
- - Jeroen van den Enden (endroid)
- - Arun Philip
- - Pascal Helfenstein
- - Jesper Skytte (greew)
  - NanoSector
- - Petar Obradović
+ - Marek Pietrzak (mheki)
+ - Gert Wijnalda (cinamo)
+ - sl_toto (sl_toto)
+ - DUPUCH (bdupuch)
+ - Egor Taranov
+ - Don Pinkster
+ - Sergey Zolotov (enleur)
+ - Davide Borsatto (davide.borsatto)
+ - Massimiliano Braglia (massimilianobraglia)
+ - Guilherme Augusto Henschel
  - Baldur Rensch (brensch)
- - Carl Casbolt (carlcasbolt)
- - Jiri Barous
- - Vladyslav Petrovych
- - Loïc Chardonnet
- - Alex Xandra Albert Sim
- - Sergey Yastrebov
- - Carson Full (carsonfull)
+ - Cyril Quintin (cyqui)
+ - Jason Woods
+ - Matthieu Calie (matth--)
+ - ornicar
+ - Xavier Briand (xavierbriand)
+ - Daniel Alejandro Castro Arellano (lexcast)
+ - Paul Oms
+ - radar3301
+ - Pedro Casado (pdr33n)
+ - mohamed
  - Steve Grunwell
- - Yuen-Chi Lian
- - Mathias Brodala (mbrodala)
- - Robert Fischer (sandoba)
- - Tarjei Huse (tarjei)
- - Travis Carden (traviscarden)
- - mfettig
- - Besnik Br
- - Simon Mönch
- - Valmonzo
- - Sherin Bloemendaal
- - Jose Gonzalez
- - Jonathan (jlslew)
- - Claudio Zizza
- - aegypius
- - Ilia (aliance)
- - Christian Stoller (naitsirch)
- - COMBROUSE Dimitri
- - Dave Marshall (davedevelopment)
- - Jakub Kulhan (jakubkulhan)
- - Paweł Niedzielski (steveb)
- - Shaharia Azam
- - avorobiev
- - Gerben Oolbekkink
- - Gladhon
- - Maximilian.Beckers
- - Alex Kalineskou
- - Evan Shaw
- - stoccc
- - Grégoire Penverne (gpenverne)
- - Venu
- - Ryan Hendrickson
- - Damien Fa
- - Jonatan Männchen
- - Dennis Hotson
- - Andrew Tchircoff (andrewtch)
- - Lars Vierbergen (vierbergenlars)
- - Xav` (xavismeh)
- - Barney Hanlon
- - Thorry84
- - Romanavr
- - michaelwilliams
- - Alexandre Parent
- - 1emming
- - Eric Abouaf (neyric)
- - Nykopol (nykopol)
- - Thibault Richard (t-richard)
- - Jordan Deitch
- - Casper Valdemar Poulsen
- - Guillaume Verstraete
- - vladimir.panivko
- - Oliver Hader
- - Josiah (josiah)
- - Dennis Væversted (srnzitcom)
- - AndrolGenhald
- - Asier Etxebeste
- - Joschi Kuphal
- - John Bohn (jbohn)
- - Jason Tan (jt2k)
+ - Dragos Protung (dragosprotung)
+ - Marco Wansinck (mwansinck)
+ - Pierre-Emmanuel Tanguy (petanguy)
+ - rtek
+ - Emil Einarsson
  - Edvin Hultberg
- - shubhalgupta
- - Felds Liscia (felds)
- - Benjamin Lebon
+ - Ondrej Exner
  - Alexander Grimalovsky (flying)
- - Andrew Hilobok (hilobok)
- - Noah Heck (myesain)
- - Sébastien JEAN (sebastien76)
- - Christian Soronellas (theunic)
- - Max Baldanza
- - Volodymyr Panivko
- - kick-the-bucket
- - Thomas Durand
- - fedor.f
- - Yosmany Garcia (yosmanyga)
- - Jeremiasz Major
- - Jibé Barth (jibbarth)
- - Trevor North
- - Degory Valentine
- - izzyp
- - Jeroen Fiege (fieg)
- - Martin (meckhardt)
- - Wu (wu-agriconomie)
- - Marcel Hernandez
- - Evan C
- - buffcode
- - Glodzienski
- - Natsuki Ikeguchi
- - Krzysztof Łabuś (crozin)
- - Xavier Lacot (xavier)
- - Jon Dufresne
- - possum
- - Denis Zunke (donalberto)
- - Adrien Roches (neirda24)
- - Thomas Trautner (thomastr)
- - _sir_kane (waly)
- - Olivier Maisonneuve
- - Gálik Pál
- - Bálint Szekeres
- - Andrei C. (moldman)
- - Mike Meier (mykon)
- - Pedro Miguel Maymone de Resende (pedroresende)
- - stlrnz
- - Masterklavi
- - Adrien Wilmet (adrienfr)
- - Franco Traversaro (belinde)
- - Francis Turmel (fturmel)
- - Kagan Balga (kagan-balga)
- - Nikita Nefedov (nikita2206)
+ - ToshY
+ - Noémi Salaün (noemi-salaun)
+ - Paulo Ribeiro (paulo)
+ - Maxim Tugaev (tugmaks)
+ - Dhananjay Goratela
+ - Sebastian Grodzicki (sgrodzicki)
  - Alex Bacart
- - StefanoTarditi
- - cgonzalez
- - hugovms
- - Ben
+ - Mantas Var (mvar)
  - Vincent Composieux (eko)
- - Cyril Pascal (paxal)
- - Pedro Casado (pdr33n)
- - Jayson Xu (superjavason)
  - acoulton
- - DemigodCode
- - fago
+ - Delf Tonder (leberknecht)
+ - Florian Hermann (fhermann)
+ - Guillaume Aveline
+ - Vladyslav Petrovych
+ - Xavier Lacot (xavier)
+ - Cristoforo Cervino (cristoforocervino)
+ - Gábor Tóth
+ - Gintautas Miselis (naktibalda)
+ - Asier Etxebeste
+ - Andre Hoong
+ - Thorry84
+ - Johannes Klauss (cloppy)
  - Jan Prieser
- - Maximilian Bösing
- - Matt Johnson (gdibass)
- - Zhuravlev Alexander (scif)
- - Stefano Degenkamp (steef)
- - James Michael DuPont
- - Tinjo Schöni
- - Carlos Buenosvinos (carlosbuenosvinos)
- - Jake (jakesoft)
- - Rustam Bakeev (nommyde)
- - Vincent CHALAMON
- - Ivan Kurnosov
- - Christopher Hall (mythmakr)
- - Patrick Dawkins (pjcdawkins)
- - Paul Kamer (pkamer)
- - Rafał Wrzeszcz (rafalwrzeszcz)
- - Reyo Stallenberg (reyostallenberg)
- - Nguyen Xuan Quynh
- - Reen Lokum
- - Dennis Langen (nijusan)
+ - Noah Heck (myesain)
+ - James Johnston
  - Quentin Dreyer (qkdreyer)
- - Francisco Alvarez (sormes)
- - Martin Parsiegla (spea)
- - Maxim Tugaev (tugmaks)
- - ywisax
- - Manuel Alejandro Paz Cetina
- - Denis Charrier (brucewouaigne)
- - Youssef Benhssaien (moghreb)
- - Mario Ramundo (rammar)
+ - wanxiangchwng
+ - Marc Abramowitz
+ - Oliver Hoff
+ - Philipp Keck
+ - Aydin Hassan
+ - Adam
  - Ivan
- - Nico Haase
- - Philipp Scheit (pscheit)
- - Pierre Vanliefland (pvanliefland)
- - Roy Klutman (royklutman)
- - Sofiane HADDAG (sofhad)
- - Antoine M
- - frost-nzcr4
- - Shahriar56
- - Dhananjay Goratela
- - Kien Nguyen
- - Bozhidar Hristov
- - Oriol Viñals
- - arai
- - Achilles Kaloeridis (achilles)
- - Sébastien Despont (bouillou)
+ - kick-the-bucket
+ - Alexandre Dupuy (satchette)
+ - Maximilian.Beckers
+ - Jakub Vrána (vrana)
+ - 243083df
+ - Simon DELICATA
+ - Lukas Mencl
+ - Adrien Lucas (adrienlucas)
+ - Mickaël Andrieu (mickaelandrieu)
+ - Geordie
+ - Rodrigo Méndez (rodmen)
+ - Thiago Cordeiro (thiagocordeiro)
+ - Hossein Bukhamsin
+ - DT Inier (gam6itko)
+ - Romanavr
+ - Matteo Beccati (matteobeccati)
+ - Tarjei Huse (tarjei)
+ - SpacePossum
+ - Nguyen Xuan Quynh
+ - Toon Verwerft (veewee)
+ - jochenvdv
+ - Johann Saunier (prophet777)
+ - fedor.f
+ - Michał Marcin Brzuchalski (brzuchal)
+ - Simon Terrien (sterrien)
+ - Michał Jusięga
+ - Niklas Keller
+ - Thomas Cochard (tcochard)
+ - StefanoTarditi
+ - Sebastian Krebs
  - Laurent Bassin (lbassin)
- - Mouad ZIANI (mouadziani)
- - Tomasz Ignatiuk
+ - Koen Kuipers (koku)
+ - Andreas Erhard (andaris)
+ - origaminal
+ - Sem Schidler (xvilo)
+ - Aleksandr Volochnev (exelenz)
+ - Daniël Brekelmans (dbrekelmans)
+ - Josiah (josiah)
+ - abdul malik ikhsan (samsonasik)
+ - Sébastien JEAN (sebastien76)
+ - Trevor North
+ - Matthieu Mota (matthieumota)
+ - Simon Heimberg (simon_heimberg)
+ - Quentin de Longraye (quentinus95)
+ - Bill Hance (billhance)
+ - Dmytro Boiko (eagle)
+ - zenmate
+ - Baptiste Meyer (meyerbaptiste)
+ - mweimerskirch
+ - Michael Lutz
  - andrey1s
- - Abhoryo
- - louismariegaborit
- - Fabian Vogler (fabian)
- - Korvin Szanto
- - Stéphan Kochen
- - Arjan Keeman
- - Alaattin Kahramanlar (alaattin)
- - Sergey Zolotov (enleur)
- - Nicole Cordes (ichhabrecht)
- - Maksim Kotlyar (makasim)
- - Thibaut THOUEMENT (thibaut_thouement)
- - Neil Ferreira
- - Julie Hourcade (juliehde)
- - Dmitry Parnas (parnas)
- - Loïc Beurlet
- - Ana Raro
- - Ana Raro
+ - Robin van der Vleuten (robinvdvleuten)
+ - Patrick Dawkins (pjcdawkins)
+ - Anthony Tenneriello
+ - Stephan Vock (glaubinix)
+ - Mouad ZIANI (mouadziani)
+ - Julien Fredon
+ - Paweł Niedzielski (steveb)
+ - vladimir.panivko
+ - flip111
+ - Alexandre parent
+ - Balazs Csaba
+ - Matthieu Bontemps
+ - Tamás Nagy (t-bond)
+ - Olivier Maisonneuve
+ - Sherin Bloemendaal
+ - Valentin Nazarov
+ - Stefano Degenkamp (steef)
+ - Bálint Szekeres
  - Tony Malzhacker
- - Cosmin Sandu
- - Andreas Lutro (anlutro)
- - DUPUCH (bdupuch)
- - Cyril Quintin (cyqui)
- - Gerard van Helden (drm)
- - Florent Destremau (florentdestremau)
- - Florian Wolfsjaeger (flowolf)
- - Johnny Peck (johnnypeck)
+ - Oliver Hader
+ - Hany el-Kerdany
+ - Bozhidar Hristov
+ - Richard Henkenjohann (richardhj)
+ - umpirski
+ - Marc Laporte
+ - Tamas Szijarto
+ - Benjamin Lebon
+ - marie
+ - Richard van den Brand (ricbra)
+ - Evan C
+ - Mickaël Isaert (misaert)
+ - Fractal Zombie
+ - Ana Raro
+ - Kevin SCHNEKENBURGER
+ - Ian Jenkins (jenkoian)
+ - Jakub Podhorsky (podhy)
+ - Korvin Szanto
+ - Ivan Kurnosov
+ - Oriol Viñals
+ - Vitaliy Zhuk (zhukv)
+ - Cameron Porter
+ - Adrian Nguyen (vuphuong87)
+ - Alexander Kim
+ - Adrian Günter (adrianguenter)
+ - Robert Gruendler (pulse00)
  - Jordi Sala Morales (jsala)
- - Sander De la Marche (sanderdlm)
+ - Johnson Page (jwpage)
+ - Paweł Wacławczyk (pwc)
+ - Takashi Kanemoto (ttskch)
+ - Tinjo Schöni
+ - Oleg Zinchenko (cystbear)
+ - Mario Ramundo (rammar)
+ - Lorenzo Millucci (lmillucci)
+ - Yi-Jyun Pan
+ - Nikolai Mikhailov (sonnymilton)
+ - Roy de Vos Burchart
+ - Neil Ferreira
+ - Mikhail Yurasov (mym)
+ - Peter Potrowl
+ - Åsmund Garfors
+ - Grinbergs Reinis (shima5)
+ - Antal Áron (antalaron)
+ - stoccc
+ - Wesley Lancel
+ - Fred Cox
+ - Hossein Hosni
+ - Dennis Væversted (srnzitcom)
+ - Morten Wulff (wulff)
+ - Jiri Barous
+ - Thibaut THOUEMENT (thibaut_thouement)
+ - Ian Irlen
+ - James Michael DuPont
+ - Petar Obradović
+ - Vincent CHALAMON
+ - Seb Koelen
+ - Ramunas Pabreza (doobas)
+ - Tomasz Ignatiuk
+ - Masterklavi
+ - David ALLIX
+ - Daniel González (daniel.gonzalez)
+ - Jean Pasdeloup
+ - Thijs-jan Veldhuizen (tjveldhuizen)
+ - Gert de Pagter
+ - Julien Turby
+ - Brajk19
+ - Ondrej Machulda (ondram)
+ - Julien Maulny
+ - Thomas P
+ - Aurimas Niekis (gcds)
  - skmedix (skmedix)
- - Loic Chardonnet
- - Ivan Menshykov
- - David Romaní
- - Patrick Allaert
- - Alexander Li (aweelex)
- - Gustavo Falco (gfalco)
- - Matt Robinson (inanimatt)
- - Kristof Van Cauwenbergh (kristofvc)
+ - Florent Viel (luxifer)
+ - Sébastien Despont (bouillou)
+ - Maxime Douailin
+ - Vladimir Valikayev
+ - Morgan Auchede
  - Marco Lipparini (liarco)
- - Aleksey Podskrebyshev
- - Calin Mihai Pristavu
- - Gabrielle Langer
- - Jörn Lang
- - Adrian Günter (adrianguenter)
- - Amr Ezzat (amrezzat)
- - David Marín Carreño (davefx)
- - Fabien LUCAS (flucas2)
- - Alex (garrett)
- - Konstantin Grachev (grachevko)
+ - Christin Gruber (christingruber)
+ - Krzysztof Łabuś (crozin)
  - Hidde Boomsma (hboomsma)
- - Ondrej Machulda (ondram)
- - Jason Woods
- - mwsaz
- - bogdan
- - wanxiangchwng
- - Geert De Deckere
- - grizlik
- - Derek ROTH
- - Jeremy Benoist
- - Ben Johnson
- - Jan Kramer
- - mweimerskirch
- - Andrew Codispoti
- - Benjamin Laugueux
- - Lctrs
- - Benoît Bourgeois (bierdok)
- - Dmytro Boiko (eagle)
- - Shin Ohno (ganchiku)
- - Matthieu Mota (matthieumota)
+ - Manuel Alejandro Paz Cetina
+ - Rootie
+ - Ilya Levin (ilyachase)
+ - alexandre.lassauge
+ - Francisco Alvarez (sormes)
+ - Tamás Szigeti
+ - Travis Carden (traviscarden)
+ - Andrew Berry
+ - _sir_kane (waly)
+ - Cyril Vermandé (cyve)
+ - Alex (garrett)
+ - Cornel Cruceru (amne)
+ - Alex Kalineskou
+ - Bastien DURAND (deamon)
+ - Thibault Buathier (gwemox)
+ - Ulumuddin Cahyadi Yunus (joenoez)
+ - Chris Heng (gigablah)
+ - RJ Garcia
+ - Benjamin Schoch (bschoch)
+ - Sascha Dens (saschadens)
  - Jean-Baptiste GOMOND (mjbgo)
- - Jakub Podhorsky (podhy)
- - abdul malik ikhsan (samsonasik)
- - Henry Snoek (snoek09)
- - Morgan Auchede
- - Christian Morgan
- - Alexander Miehe
- - Daniël Brekelmans (dbrekelmans)
+ - David Molineus
+ - Gina Peter Banyard
+ - Matt Janssen
+ - arai
+ - Mior Muhammad Zaki (crynobone)
+ - Jan Kramer
+ - Lars Vierbergen (vierbergenlars)
+ - Simon Schick (simonsimcity)
+ - Michael Devery (mickadoo)
+ - Thiago Melo
+ - Stefan Warman (warmans)
+ - Shaharia Azam
+ - Jawira Portugal (jawira)
+ - Oleksandr Barabolia (oleksandrbarabolia)
+ - Natsuki Ikeguchi
+ - Simon Watiau (simonwatiau)
+ - Pavol Tuka
+ - Arun Philip
+ - Jan Walther (janwalther)
+ - Rimas Kudelis
+ - Benjamin Zikarsky (bzikarsky)
+ - Brunet Laurent (lbrunet)
+ - Marko H. Tamminen (gzumba)
+ - Joschi Kuphal
+ - Fabian Vogler (fabian)
+ - Pierrick VIGNAND (pierrick)
+ - Mark Sonnabaum
+ - James Hemery
+ - Florian Pfitzer (marmelatze)
+ - Michael Bessolov
+ - Ahmed Ashraf (ahmedash95)
+ - Carlos Buenosvinos (carlosbuenosvinos)
+ - Dustin Dobervich (dustin10)
+ - Jakub Kulhan (jakubkulhan)
+ - Kyle Evans (kevans91)
+ - Dominik Ulrich
  - Simon (kosssi)
- - Sascha Dens (saschadens)
- - Simon Heimberg (simon_heimberg)
- - Morten Wulff (wulff)
+ - Jesper Noordsij
+ - Javier López (loalf)
+ - Martins Sipenko
+ - Aurimas Niekis (aurimasniekis)
+ - Daisuke Ohata
+ - Ayke Halder
+ - Simon Leblanc (leblanc_simon)
+ - Besnik Br
+ - Evan Villemez
+ - ywisax
+ - Krystian Marcisz (simivar)
+ - Mohamed Gamal
+ - Yosmany Garcia (yosmanyga)
+ - Roy Klutman (royklutman)
+ - Jaroslav Kuba
+ - Ivo Bathke (ivoba)
+ - Minna N
+ - Christophe V. (cvergne)
+ - DemigodCode
+ - Clemens Krack
+ - Matthew Davis (mdavis1982)
+ - John Bohn (jbohn)
+ - Guillaume Sainthillier (guillaume-sainthillier)
+ - Jayson Xu (superjavason)
+ - Christian Soronellas (theunic)
+ - Thibault Richard (t-richard)
+ - Benjamin Laugueux
+ - fago
+ - Mike Meier (mykon)
+ - Vincent Simonin
+ - Max Rath (drak3)
+ - Dmitry Parnas (parnas)
+ - Rodrigo Aguilera
+ - Richard Bradley
+ - Douglas Reith (douglas_reith)
+ - Barthold Bos
+ - Xav` (xavismeh)
+ - vitaliytv
+ - Jörn Lang
  - Kieran
- - Don Pinkster
- - Maksim Muruev
- - Emil Einarsson
- - 243083df
- - Thibault Duplessis
- - katario
- - Rimas Kudelis
- - Marc Abramowitz
- - Matthias Schmidt
+ - Julie Hourcade (juliehde)
+ - Jonatan Männchen
+ - Tim Düsterhus
+ - Alaattin Kahramanlar (alaattin)
+ - Degory Valentine
+ - Jonas Elfering
+ - Ruben Gonzalez (rubenruateltek)
+ - Casper Valdemar Poulsen
+ - Thomas Ploch
+ - Paul Kamer (pkamer)
+ - Gustavo Falco (gfalco)
+ - Pascal Helfenstein
+ - Stephan Vierkant (svierkant)
+ - Vladimir Luchaninov (luchaninov)
  - Martijn Evers
- - Tony Tran
- - Balazs Csaba
- - Bill Hance (billhance)
- - Douglas Reith (douglas_reith)
- - Harry Walter (haswalt)
- - Jacques MOATI (jmoati)
- - Johnson Page (jwpage)
+ - Nicolas de Marqué (nicola)
+ - noniagriconomie
+ - Carl Casbolt (carlcasbolt)
+ - Jan Pintr
+ - Cosmin Sandu
+ - Maximilian Bösing
+ - Alexander Li (aweelex)
+ - Maksim Kotlyar (makasim)
+ - Arnaud Frézet
+ - Ben
+ - Franco Traversaro (belinde)
+ - michaelwilliams
+ - Luca Saba (lucasaba)
+ - Rustam Bakeev (nommyde)
+ - Jesper Skytte (greew)
+ - AndrolGenhald
+ - Antoine Corcy
+ - buffcode
+ - Pavlo Pelekh (pelekh)
+ - Randy Geraads
+ - johan Vlaar
  - Kuba Werłos (kuba)
- - Ruben Gonzalez (rubenruateltek)
- - Michael Roterman (wtfzdotnet)
- - Philipp Keck
- - Pavol Tuka
+ - Gennady Telegin
  - Arno Geurts
- - Adán Lobato (adanlobato)
- - Ian Jenkins (jenkoian)
- - Marcos Gómez Vilches (markitosgv)
- - Matthew Davis (mdavis1982)
- - Paulo Ribeiro (paulo)
- - Marc Laporte
- - Michał Jusięga
- - Kay Wei
- - Dominik Ulrich
- - den
- - Gábor Tóth
+ - Sofiane HADDAG (sofhad)
  - Bastien THOMAS
- - ouardisoft
- - Daniel Cestari
- - Matt Janssen
+ - Benedikt Lenzen (demigodcode)
+ - Christian Stoller (naitsirch)
+ - Calin Mihai Pristavu
+ - Grégoire Penverne (gpenverne)
+ - Kevin (oxfouzer)
+ - d-ph
+ - MrMicky
+ - Achilles Kaloeridis (achilles)
+ - Sebastian Paczkowski (sebpacz)
+ - Zeeshan Rashid (zeeshan)
+ - Andreas Leathley (iquito)
+ - Andrey Sevastianov
+ - Evan Shaw
+ - Claudio Zizza
+ - yclian
+ - Eric COURTIAL
+ - Robert Fischer (sandoba)
+ - Duncan de Boer (farmer-duck)
  - Stéphane Delprat
- - Mior Muhammad Zaki (crynobone)
+ - Roberto Nygaard
+ - Nico Haase
+ - David Marín Carreño (davefx)
+ - Michel Hunziker
+ - Alexander Miehe
+ - Kien Nguyen
+ - Nykopol (nykopol)
+ - stlrnz
+ - Stéphan Kochen
+ - Sofien Naas
+ - mwsaz
+ - Jake (jakesoft)
+ - Nikita Nefedov (nikita2206)
  - Elan Ruusamäe (glen)
- - Brunet Laurent (lbrunet)
- - Florent Viel (luxifer)
- - Maks 3w (maks3w)
- - Michiel Boeckaert (milio)
- - Mikhail Yurasov (mym)
- - Robert Gruendler (pulse00)
- - Sebastian Paczkowski (sebpacz)
- - Simon Terrien (sterrien)
- - Stephan Vierkant (svierkant)
- - Benoît Merlet (trompette)
- - Brad Jones
- - datibbaw
- - Dragos Protung (dragosprotung)
- - Koen Kuipers (koku)
- - Nicolas de Marqué (nicola)
- - Thiago Cordeiro (thiagocordeiro)
- - Matthieu Bontemps
- - Ian Irlen
- - Rootie
+ - Andrii Popov (andrii-popov)
+ - Harry Walter (haswalt)
+ - Sergii Dolgushev (serhey)
+ - Sylvain BEISSIER (sylvain-beissier)
+ - Andrew Neil Forster (krciga22)
+ - Rafał Wrzeszcz (rafalwrzeszcz)
+ - Douglas Hammond (wizhippo)
+ - Wybren Koelmans (wybren_koelmans)
+ - Mardari Dorel (dorumd)
+ - Philipp Kolesnikov
  - Sébastien Santoro (dereckson)
- - Daniel Alejandro Castro Arellano (lexcast)
- - Jiří Bok
- - Vincent Chalamon
- - Farhad Hedayatifard
- - Alan ZARLI
- - Thomas Jarrand
- - Baptiste Leduc (bleduc)
- - soyuka
- - Piotr Zajac
- - Patrick Kaufmann
- - Ismail Özgün Turan (dadeather)
- - Mickael Perraud
- - Anton Dyshkant
- - Rafael Villa Verde
- - Zoran Makrevski (zmakrevski)
- - Yann LUCAS (drixs6o9)
- - Kirill Nesmeyanov (serafim)
- - Reece Fowell (reecefowell)
- - Muhammad Aakash
- - Charly Goblet (_mocodo)
- - Htun Htun Htet (ryanhhh91)
- - Guillaume Gammelin
- - Valérian Galliat
- - Sorin Pop (sorinpop)
- - Elías Fernández
- - d-ph
- - Stewart Malik
+ - Simo Heinonen (simoheinonen)
+ - Simeon Kolev (simeon_kolev9)
+ - Jason Tan (jt2k)
+ - alexpozzi
+ - Shahriar56
+ - Rostyslav Kinash
+ - Toni Peric (tperic)
+ - Kristijan Kanalaš (kristijan_kanalas_infostud)
+ - Renan Rodrigo
+ - Ruben Jacobs (rubenj)
+ - Robin Lehrmann
+ - Marcel Hernandez
+ - Richard Quadling
+ - Andrew Codispoti
+ - Ivan Menshykov
+ - Jelle Raaijmakers (gmta)
+ - Jérôme Tamarelle (jtamarelle-prismamedia)
+ - Sebastian Blum
+ - Mickaël Buliard (mbuliard)
+ - Dave Marshall (davedevelopment)
+ - Matt Robinson (inanimatt)
+ - Venu
+ - Gennadi Janzen
+ - Thomas Trautner (thomastr)
+ - Cyril Pascal (paxal)
+ - Michael Piecko (michael.piecko)
+ - Derek ROTH
+ - Ricky Su (ricky)
+ - Khoo Yong Jun
+ - Pierre Vanliefland (pvanliefland)
+ - datibbaw
+ - Francis Turmel (fturmel)
+ - Xesxen
+ - Behnoush Norouzali (behnoush)
+ - Henry Snoek (snoek09)
+ - Renan Gonçalves (renan_saddam)
+ - Benoît Bourgeois (bierdok)
+ - Stanislau Kviatkouski (7-zete-7)
+ - Adrien Wilmet (adrienfr)
+ - Adán Lobato (adanlobato)
+ - Emil Masiakowski
+ - Christian Grasso (chris54721)
+ - Nicolas Badey (nico-b)
+ - Daniel Londero (dlondero)
+ - Diego Campoy
+ - Buster Neece
+ - Thomas Decaux
+ - tarlepp
+ - tinect (tinect)
+ - tirnanog06
+ - Dominik Ritter (dritter)
+ - Julien JANVIER (jjanvier)
+ - Nathan Sepulveda
+ - Ramazan APAYDIN (rapaydin)
+ - hjkl
+ - Tatsuya Tsuruoka
+ - Martynas Narbutas
+ - Noel Light-Hilary
+ - Alexis
+ - enomotodev
+ - Eugene Babushkin (warl)
+ - Patrick Kuijvenhoven
  - Frank Schulze (xit)
- - Renan Taranto (renan-taranto)
- - Ninos Ego
- - Samael tomas
- - Stefan Graupner (efrane)
- - Gemorroj (gemorroj)
- - Adrien Chinour
- - Jonas Claes
- - Mateusz Żyła (plotkabytes)
- - Rikijs Murgs
- - WoutervanderLoop.nl
- - Mihail Krasilnikov (krasilnikovm)
- - Uladzimir Tsykun
- - iamvar
- - Amaury Leroux de Lens (amo__)
- - Rene de Lima Barbosa (renedelima)
+ - Erfan Bahramali
+ - afaricamp
+ - Oz (import)
+ - Alexis Lefebvre
+ - Gregório Bonfante Borba (bonfante)
+ - klyk50
+ - Konstantinos Alexiou
+ - Dan (dantleech)
+ - Arnaud
  - Christian Jul Jensen
- - Lukas Kaltenbach
- - Alexandre GESLIN
- - The Whole Life to Learn
- - Pierre Tondereau
- - Joel Lusavuvu (enigma97)
- - Valentin Barbu (jimie)
- - Alex Vo (votanlean)
- - Mikkel Paulson
- - ergiegonzaga
- - André Matthies
- - kurozumi (kurozumi)
- - Nicolas Lemoine
+ - Michael Schneider
+ - Tim Lieberman
+ - Guillem Fondin (guillemfondin)
+ - Gleb Sidora
+ - Even André Fiskvik
+ - Lance McNearney
+ - Juanmi Rodriguez Cerón
+ - hainey
+ - Attila Szeremi
+ - Abdul.Mohsen B. A. A
+ - danilovict2
+ - Rein Baarsma (solidwebcode)
+ - DerStoffel
+ - René Landgrebe
+ - PierreRebeilleau
+ - Helmut Januschka
+ - Carlos Fernandes (carferdas)
+ - Nikos Charalampidis
+ - mohammadreza honarkhah
+ - Tim Jabs (rubinum)
+ - Peter Breuls
+ - Clément R. (clemrwan)
+ - Osayawe Ogbemudia Terry (terdia)
+ - tamcy
+ - casdal
+ - Janusz Jabłoński (yanoosh)
+ - chillbram
+ - Alexey Buyanow (alexbuyanow)
+ - Cosmin-Romeo TANASE
+ - Pedro Silva
  - Piergiuseppe Longo
- - Kevin Auivinet
- - Liverbool (liverbool)
- - Valentin Nazarov
- - Dalibor Karlović
- - Aurélien MARTIN
- - Malte Schlüter
- - Jules Matsounga (hyoa)
- - Yewhen Khoptynskyi (khoptynskyi)
- - Nicolas Attard (nicolasattard)
- - Jérôme Nadaud (jnadaud)
- - Frank Naegler
- - Sam Malone
- - Damien Fernandes
- - Ha Phan (haphan)
- - Chris Jones (leek)
- - neghmurken
- - stefan.r
- - Florian Cellier
- - xaav
- - Jean-Christophe Cuvelier [Artack]
- - Mahmoud Mostafa (mahmoud)
- - Alexandre Tranchant (alexandre_t)
- - Anthony Moutte
- - Ahmed Abdou
- - shreyadenny
- - Daniel Iwaniec
- - Thomas Ferney (thomasf)
- - Pieter
- - Louis-Proffit
- - Dennis Tobar
- - Michael Tibben
- - Hallison Boaventura (hallisonboaventura)
- - Mas Iting
- - Billie Thompson
- - Albion Bame (abame)
- - Ganesh Chandrasekaran (gxc4795)
- - Sander Marechal
- - Ivan Nemets
- - Grégoire Hébert (gregoirehebert)
- - Franz Wilding (killerpoke)
- - Ferenczi Krisztian (fchris82)
- - Artyum Petrov
- - Oleg Golovakhin (doc_tr)
- - Guillaume Smolders (guillaumesmo)
- - Icode4Food (icode4food)
- - Radosław Benkel
- - Bert ter Heide (bertterheide)
- - Kevin Nadin (kevinjhappy)
- - jean pasqualini (darkilliant)
- - Iliya Miroslavov Iliev (i.miroslavov)
- - Safonov Nikita (ns3777k)
- - Ross Motley (rossmotley)
- - ttomor
- - Mei Gwilym (meigwilym)
- - Michael H. Arieli
- - Miloš Milutinović
- - Jitendra Adhikari (adhocore)
- - Kevin Jansen
- - Nicolas Martin (cocorambo)
- - Tom Panier (neemzy)
- - Fred Cox
- - luffy1727
- - Luciano Mammino (loige)
- - LHommet Nicolas (nicolaslh)
- - fabios
- - eRIZ
- - Sander Coolen (scoolen)
- - Vic D&#039;Elfant (vicdelfant)
- - Amirreza Shafaat (amirrezashafaat)
- - Laurent Clouet
+ - Mark Beech (jaybizzle)
+ - Pavel Prischepa
+ - Serhii Smirnov
+ - Darryl Hein (xmmedia)
+ - Xavier REN
+ - thib92
+ - Francisco Facioni (fran6co)
+ - karl.rixon
+ - Pierre-Henry Soria 🌴 (pierrehenry)
+ - Hoffmann András
+ - ncou
+ - Vlad Dumitrache
+ - Enrico Schultz
+ - Markus Baumer
+ - Rafał Toboła
+ - Normunds
+ - Derek Lambert (dlambert)
+ - Nicolas Lemoine
+ - Paul Matthews
+ - TheMhv
+ - Imangazaliev Muhammad (imangazaliev)
+ - Kirill Lazarev
+ - Matt Daum (daum)
+ - kwiateusz
+ - Daniel Tiringer
+ - Siebe Vanden Eynden
+ - Ahmad El-Bardan
+ - Bojan
+ - Giuseppe Campanelli
+ - Rene de Lima Barbosa (renedelima)
+ - Marcin Szepczynski (szepczynski)
+ - Yannick Vanhaeren (yvh)
+ - Jens Hatlak
+ - Guillaume Loulier (guikingone)
+ - Yann Rabiller (einenlum)
+ - Tomasz Szymczyk (karion)
+ - Jeremy Bush
+ - Jiri Velek
+ - d.huethorst
+ - Dan Wilga
+ - Bouke Haarsma
+ - Laurens Laman
+ - Matt Ketmo (mattketmo)
+ - Mauricio Lopez (diaspar)
+ - Łukasz Makuch
+ - Arek Bochinski
+ - Vacheslav Silyutin
+ - Sam Williams
+ - Sajad Torkamani
+ - Gary Houbre (thegarious)
+ - shdev
+ - Rafael Tovar
+ - Ostrzyciel
+ - Tadcka
+ - wiseguy1394
+ - Sergiy Sokolenko
+ - karolsojko
+ - Cedrick Oka
+ - Gerrit Addiks
+ - Sven Nolting
+ - Victor Truhanovich (victor_truhanovich)
+ - Kasperki
+ - Peter Gribanov
+ - Jules Lamur
+ - Daniel Strøm
+ - Cristobal Dabed
  - Adoni Pavlakis (adoni)
- - Nicolas Le Goff (nlegoff)
- - Maarten Nusteling (nusje2000)
- - Peter van Dommelen
- - Anne-Sophie Bachelard
- - Gordienko Vladislav
- - Ahmed EBEN HASSINE (famas23)
- - Marvin Butkereit
- - Ben Oman
- - Chris de Kok
- - Eduard Bulava (nonanerz)
- - Andreas Kleemann (andesk)
+ - Martijn Croonen
+ - Patrik Patie Gmitter
+ - Kim Laï Trinh
+ - Peter Orosz (ill_logical)
  - Hubert Moreau (hmoreau)
- - Nicolas Appriou
- - Silas Joisten (silasjoisten)
- - Igor Timoshenko (igor.timoshenko)
- - Pierre-Emmanuel CAPEL
- - Manuele Menozzi
- - Yevhen Sidelnyk
- - “teerasak”
- - Anton Babenko (antonbabenko)
- - Irmantas Šiupšinskas (irmantas)
- - Benoit Mallo
- - Charles-Henri Bruyand
- - Danilo Silva
- - Giuseppe Campanelli
- - Valentin
- - pizzaminded
- - Nicolas Valverde
- - Konstantin S. M. Möllers (ksmmoellers)
- - Ken Stanley
- - ivan
- - Zachary Tong (polyfractal)
- - linh
- - Oleg Krasavin (okwinza)
- - Mario Blažek (marioblazek)
- - Jure (zamzung)
- - Michael Nelson
- - Ashura
- - Hryhorii Hrebiniuk
- - Nsbx
+ - Daniel Bannert
+ - Dominik Schwind (dominikschwind)
+ - Thomas Jarrand
+ - alsar
+ - Gerben Wijnja
+ - roog
  - Eric Krona
- - Alex Plekhanov
- - johnstevenson
- - hamza
- - dantleech
- - Kajetan Kołtuniak (kajtii)
- - Dan (dantleech)
- - Sander Goossens (sandergo90)
- - Rudy Onfroy
- - Tero Alén (tero)
- - DerManoMann
- - Damien  Fayet (rainst0rm)
- - MatTheCat
- - Guillaume Royer
- - Erfan Bahramali
- - Artem (digi)
- - boite
- - Silvio Ginter
- - Peter Culka
- - MGDSoft
- - Abdiel Carrazana (abdielcs)
- - joris
- - Vadim Tyukov (vatson)
- - alanzarli
- - Arman
- - Gabi Udrescu
- - Adamo Crespi (aerendir)
- - David Wolter (davewww)
- - Sortex
- - chispita
- - Wojciech Sznapka
- - Emmanuel Dreyfus
- - Luis Pabon (luispabon)
- - boulei_n
- - Anna Filina (afilina)
- - Gavin (gavin-markup)
- - Ksaveras Šakys (xawiers)
- - Shaun Simmons
- - Ariel J. Birnbaum
- - Yannick
- - Patrick Luca Fazzi (ap3ir0n)
- - Tim Lieberman
- - Danijel Obradović
- - Pablo Borowicz
- - Ondřej Frei
- - Bruno Rodrigues de Araujo (brunosinister)
- - Máximo Cuadros (mcuadros)
- - Arkalo2
- - Jacek Wilczyński (jacekwilczynski)
- - Christoph Kappestein
- - Camille Baronnet
- - EXT - THERAGE Kevin
- - tamirvs
- - gauss
- - julien.galenski
- - Florian Guimier
- - Maxime PINEAU
- - Igor Kokhlov (verdet)
+ - Flinsch
+ - Qingshan Luo
+ - Agata
+ - Joan Cruz
+ - David Vancl
+ - Sylvain METAYER
+ - jannick-holm
+ - Amin Hosseini (aminh)
+ - George Yiannoulopoulos
+ - Mateusz Lerczak
+ - William Thomson (gauss)
+ - Karim
+ - BiaDd
  - Christian Neff (secondtruth)
- - Chris Tiearney
- - Oliver Hoff
- - Minna N
- - Ole Rößner (basster)
- - andersmateusz
- - Laurent Moreau
- - Faton (notaf)
- - Tom Houdmont
+ - Ivan Pepelko (pepelko)
+ - Cesar Scur (cesarscur)
+ - Sergey Stavichenko (sergey_stavichenko)
+ - Ludek Stepan
+ - Kamil Musial
+ - Denis Yuzhanin
+ - Patrick Luca Fazzi (ap3ir0n)
+ - DaikiOnodera
+ - AbdelatifAitBara
+ - James Cowgill
+ - Camille Islasse
+ - Raito Akehanareru (raito)
+ - k-sahara
+ - Sergey Yuferev
+ - Michal Forbak
+ - satalaondrej
+ - Pitchaya Boonsarngsuk
+ - Cédric Lahouste (rapotor)
+ - Gautier Deuette
+ - Wojciech Gorczyca
+ - Dmytro Liashko
+ - everyx
+ - Florian Cellier
+ - Luís Cobucci (lcobucci)
  - tamar peled
- - mark burdett
- - Per Sandström (per)
- - Goran Juric
- - Laurent G. (laurentg)
- - Jean-Baptiste Nahan
- - Thomas Decaux
- - Nicolas Macherey
- - Asil Barkin Elik (asilelik)
- - Bhujagendra Ishaya
- - Guido Donnari
+ - Jon Green (jontjs)
+ - Ilya Vertakov
+ - j0k (j0k)
+ - Cyrille Bourgois (cyrilleb)
+ - Juga Paazmaya
+ - zcodes
+ - Sorin Gitlan (forapathy)
+ - Marvin Butkereit
+ - JG (jege)
+ - dangkhoagms (dangkhoagms)
+ - chesteroni (chesteroni)
+ - Kuzia
+ - Brian Freytag
+ - Daniel Perez Pinazo (pitiflautico)
+ - Shiro
+ - František Bereň
+ - Paul L McNeely (mcneely)
+ - Silvio Ginter
+ - spdionis
+ - Tadas Gliaubicas (tadcka)
+ - Pablo Ogando Ferreira
+ - Mostafa
+ - Frankie Wittevrongel
+ - Karel Syrový
+ - Stefan Graupner (efrane)
  - Jérôme Dumas
- - Mert Simsek (mrtsmsk0)
- - Lin Clark
- - Christophe Meneses (c77men)
- - Jeremy David (jeremy.david)
+ - Haritz
+ - povilas
+ - Kevin Herrera (kherge)
+ - Loenix
+ - Yannick
+ - excelwebzone
+ - Jean de La Bédoyère
+ - Tobias Speicher
+ - Oliver Hoff
+ - Bert Hekman
+ - Christian Wahler (christian)
+ - Kevin Decherf
+ - Aleksei Lebedev
+ - Andreas Forsblom (aforsblo)
+ - Alberto Pirovano (geezmo)
+ - marbul
+ - Dcp (decap94)
+ - Peter Simoncic
  - Andrei O
- - gr8b
- - Michał Marcin Brzuchalski (brzuchal)
- - Jordi Rejas
- - Troy McCabe
- - Ville Mattila
- - gstapinato
- - gr1ev0us
- - Léo VINCENT
- - mlazovla
- - Alejandro Diaz Torres
- - Bradley Zeggelaar
- - Karl Shea
- - Valentin
- - Markus Baumer
- - Max Beutel
- - adnen chouibi
- - Nathan Sepulveda
- - Łukasz Chruściel (lchrusciel)
- - Jan Vernieuwe (vernija)
- - Antanas Arvasevicius
- - Adam Kiss
+ - Sébastien Decrême (sebdec)
  - Pierre Dudoret
- - Michal Trojanowski
- - Thomas
- - j.schmitt
+ - Tiago Garcia (tiagojsag)
+ - Ambroise Maupate
+ - Jozef Môstka (mostkaj)
+ - Xavier RENAUDIN
+ - Roma (memphys)
+ - Bart Baaten
+ - Damián Nohales (eagleoneraptor)
+ - cthulhu
+ - Albert Ganiev (helios-ag)
+ - Stefan Moonen
+ - Ismail Faizi (kanafghan)
+ - Oleh Korneliuk
+ - Linas Ramanauskas
+ - Vlad Gapanovich (gapik)
+ - jonmldr
+ - Arnaud Buathier (arnapou)
+ - ollie harridge (ollietb)
+ - Nicolas A. Bérard-Nault
+ - Andre Eckardt (korve)
+ - Florent SEVESTRE (aniki-taicho)
+ - Julia
+ - Willem Mouwen
+ - gazi04
+ - neFAST
+ - Greg Korba
+ - SnakePin
+ - Dionysis Arvanitis
+ - Valmont Pehaut-Pietri (valmonzo)
+ - Sylvain Dherbecourt
+ - Nicolas Bastien (nicolas_bastien)
+ - Erwin Dirks
+ - Kirill Nesmeyanov (serafim)
+ - Philip Dahlstrøm
+ - Ahmed Shamim Hassan (me_shaon)
+ - Nasim
+ - Rémi Leclerc
+ - Gil Hadad
+ - Andreas Heigl (heiglandreas)
+ - Sébastien COURJEAN
+ - Felix Eymonot (hyanda)
+ - Eric Hertwig
+ - Kirill Saksin
+ - Mario Young
+ - Albion Bame (abame)
+ - Tijs Verkoyen
+ - Gustavo Adrian
+ - Clément Bertillon (skigun)
+ - Łukasz Giza (destroyer)
+ - Danilo Silva
+ - Klaas Naaijkens
+ - Sergey Novikov (s12v)
+ - bch36
+ - Knallcharge
+ - Andrii Boiko
+ - Ali Tavafi
+ - Juan Ases García (ases)
+ - Piotr Zajac
+ - Sylvain Lorinet
+ - markusu49
+ - Florian Morello
+ - Stefano A. (stefano93)
+ - Roger Webb
+ - Dmitry Hordinky
+ - Konstantin S. M. Möllers (ksmmoellers)
+ - Emre YILMAZ
+ - iamvar
+ - Samuel Vogel (samuelvogel)
+ - moldcraft
+ - Lenar Lõhmus
+ - v.shevelev
  - Georgi Georgiev
+ - Rares Sebastian Moldovan (raresmldvn)
+ - raplider
+ - llupa
+ - Daniel Kay (danielkay-cp)
+ - Matthias Larisch
+ - Evgeniy Koval
+ - Michal Čihař
+ - evgkord
+ - Radek Wionczek (rwionczek)
+ - Farid Jalilov
+ - Jeroen van den Nieuwenhuisen
+ - Abderrahman DAIF (death_maker)
+ - Victoria Quirante Ruiz (victoria)
+ - Norman Soetbeer
+ - Sam Malone
+ - Eno Mullaraj (emullaraj)
+ - Shaun Simmons
+ - Gaylord Poillon (gaylord_p)
+ - robmro27
+ - Valouleloup
+ - Christoforos Ntafos
+ - Neagu Cristian-Doru (cristian-neagu)
+ - Jordan de Laune (jdelaune)
+ - Frank Naegler
+ - Valentin VALCIU
+ - Bruno BOUTAREL
+ - Mark van den Berg
+ - Thierry Marianne
+ - Danish Translation Contributor
+ - Yorkie Chadwick (yorkie76)
+ - vlechemin
+ - Elías (eliasfernandez)
+ - Ken Stanley
+ - Máximo Cuadros (mcuadros)
+ - Edwin
+ - Per Modin
+ - abulford
+ - André Matthies
+ - Htun Htun Htet (ryanhhh91)
+ - Kamil Piwowarski (cyklista)
+ - uncaught
+ - Yurun
+ - SuRiKmAn
+ - Johannes Müller (johmue)
+ - Wouter de Wild
+ - Orestis
  - Norbert Schultheisz
+ - Felipy Amorim (felipyamorim)
+ - gr1ev0us
+ - Tayfun Aydin
+ - Patricia Wagner
+ - Romain
+ - Sebastian Göttschkes (sgoettschkes)
+ - Arkalo2
+ - Anton Sukhachev (mrsuh)
+ - MGDSoft
+ - Yasmany Cubela Medina (bitgandtter)
+ - Olexandr Kalaidzhy
+ - James Michael DuPont
+ - vlakoff
+ - Marc
+ - David Stone
+ - Patrizio Bekerle
+ - Jonathan Hedstrom
+ - Damon Jones (damon__jones)
+ - Cedric BERTOLINI (alsciende)
+ - Tito Miguel Costa (titomiguelcosta)
+ - Aurélien Fontaine
+ - RFreij
+ - Michał Dąbrowski (defrag)
+ - Markus Klein
+ - Nico Hiort af Ornäs
+ - Franz Wilding (killerpoke)
+ - Jesper Søndergaard Pedersen (zerrvox)
+ - Ville Mattila
+ - Guile (guile)
+ - Christoph König (chriskoenig)
+ - Markus Tacker
+ - Michael Dowling (mtdowling)
+ - Steve Müller
+ - Ben Miller
  - Maximilian Berghoff (electricmaxxx)
- - SOEDJEDE Felix (fsoedjede)
- - Evgeny Anisiforov
- - otsch
- - TristanPouliquen
- - Dominic Luidold
- - Piotr Antosik (antek88)
- - Nacho Martin (nacmartin)
- - Thomas Bibaut
- - Thibaut Chieux
- - mwos
- - Aydin Hassan
- - Volker Killesreiter (ol0lll)
- - Vedran Mihočinec (v-m-i)
+ - Piers Warmers
+ - Alexandre Segura
+ - Zuruuh
+ - Jérémy CROMBEZ (jeremy)
+ - Matthew J Mucklo
+ - Vincent AMSTOUTZ (vincent_amstz)
+ - Kai Dederichs
+ - Johannes Goslar
+ - Andras Ratz
+ - Erik van Wingerden
+ - wetternest
+ - Maksym Pustynnikov (pustynnikov)
  - Rafał Treffler
- - Sergey Novikov (s12v)
- - creiner
- - Jan Pintr
- - ProgMiner
- - Marcos Quesada (marcos_quesada)
- - Matthew (mattvick)
- - MARYNICH Mikhail (mmarynich-ext)
- - Viktor Novikov (nowiko)
- - Paul Mitchum (paul-m)
- - Angel Koilov (po_taka)
- - RevZer0 (rav)
- - Yura Uvarov (zim32)
- - Dan Finnie
+ - Malcolm Fell (emarref)
+ - David Zuelke
+ - Fabian Steiner (fabstei)
+ - Pablo Monterde Perez (plebs)
+ - Krzysztof Menżyk (krymen)
+ - Foxprodev
+ - shreypuranik
+ - Derek Stephen McLean
+ - Talha Zekeriya Durmuş
+ - DSeemiller
+ - Elias Teutschländer
+ - Vincent LEFORT (vlefort)
+ - David Szkiba
+ - Victor Garcia
+ - Goran (gog)
+ - Darius Leskauskas (darles)
+ - Mikko Ala-Fossi
+ - Ivan Nemets
+ - Peter Gnodde
+ - Ivan Nemets
+ - Sören Bernstein
+ - Koalabaerchen
+ - Hans N. Hjort
+ - Matt Lehner
+ - George Bateman
+ - Daniil Gentili
+ - DidierLmn
  - remieuronews
- - Marek Binkowski
- - Ken Marfilla (marfillaster)
- - Max Grigorian (maxakawizard)
- - allison guilhem
- - benatespina (benatespina)
- - Denis Kop
- - Fabrice Locher
- - Konstantin Chigakov
- - Kamil Szalewski (szal1k)
- - Jean-Guilhem Rouel (jean-gui)
- - Yoann MOROCUTTI
- - Ivan Yivoff
- - EdgarPE
- - jfcixmedia
- - Dominic Tubach
- - Martijn Evers
- - Alexander Onatskiy
- - Philipp Fritsche
- - Léon Gersen
- - tarlepp
- - Dustin Wilson
- - Benjamin Paap (benjaminpaap)
- - Claus Due (namelesscoder)
- - Christian
- - Alexandru Patranescu
- - Sébastien Lévêque (legenyes)
- - ju1ius
- - Denis Golubovskiy (bukashk0zzz)
- - Arkadiusz Rzadkowolski (flies)
- - Serge (nfx)
- - Oksana Kozlova (oksanakozlova)
- - Quentin Moreau (sheitak)
- - Mikkel Paulson
- - Michał Strzelecki
- - Bert Ramakers
- - Hugo Fonseca (fonsecas72)
- - Marc Duboc (icemad)
- - uncaught
- - Martynas Narbutas
- - Timothée BARRAY
- - Nilmar Sanchez Muguercia
- - Pierre LEJEUNE (darkanakin41)
- - Bailey Parker
+ - julien_tempo1 (julien_tempo1)
+ - David Christmann
+ - Christian Flach (cmfcmf)
+ - Nicolas Bondoux (nsbx)
+ - Marcel Siegert
  - curlycarla2004
- - Javier Ledezma
- - Kevin Auvinet
- - Antanas Arvasevicius
- - Kris Kelly
- - Eddie Abou-Jaoude (eddiejaoude)
- - Haritz Iturbe (hizai)
- - Nerijus Arlauskas (nercury)
- - Stanislau Kviatkouski (7-zete-7)
- - Rutger Hertogh
- - Diego Sapriza
- - Joan Cruz
- - inspiran
- - Alex Demchenko
- - Richard van Velzen
- - Cristobal Dabed
- - Daniel Mecke (daniel_mecke)
- - Matteo Giachino (matteosister)
- - Serhii Polishchuk (spolischook)
- - Tadas Gliaubicas (tadcka)
- - Thanos Polymeneas (thanos)
- - Atthaphon Urairat
- - Benoit Garret
- - HellFirePvP
- - Maximilian Ruta (deltachaos)
- - Jon Green (jontjs)
- - Jakub Sacha
- - Julius Kiekbusch
- - Kamil Musial
- - Lucas Bustamante
- - Olaf Klischat
- - Andrii
- - orlovv
- - Claude Dioudonnat
- - Jonathan Hedstrom
- - Peter Smeets (darkspartan)
- - Julien Bianchi (jubianchi)
- - Michael Dawart (mdawart)
- - Robert Meijers
- - Tijs Verkoyen
- - James Sansbury
- - Marcin Chwedziak
- - Dan Kadera
- - hjkl
- - Dan Wilga
- - Thijs Reijgersberg
- - Florian Heller
- - Oleksii Svitiashchuk
- - Andrew Tch
+ - Moza Bogdan (bogdan_moza)
+ - Zacharias Luiten
+ - Halil Hakan Karabay (hhkrby)
+ - Arne Groskurth
+ - Loïc Vernet (coil)
+ - Claude
+ - Marc Bennewitz
+ - Stefano Cappellini (stefano_cappellini)
+ - Ilya Biryukov (ibiryukov)
+ - Josef Hlavatý
+ - Jessica F Martinez
+ - johnstevenson
+ - Thomas Citharel (tcit)
+ - Paweł Stasicki
+ - sensio
+ - dantleech
+ - Robert Worgul
+ - Felix Marezki
+ - Steve Müller
+ - Michael Olšavský
+ - riadh26
  - Alexander Cheprasov
- - Tristan Bessoussa (sf_tristanb)
- - Rodrigo Díez Villamuera (rodrigodiez)
- - Brad Treloar
- - pritasil
- - Stephen Clouse
- - e-ivanov
- - Nathanaël Martel (nathanaelmartel)
- - Nicolas Jourdan (nicolasjc)
- - Benjamin Dos Santos
- - Abderrahman DAIF (death_maker)
- - Yann Rabiller (einenlum)
- - GagnarTest (gagnartest)
- - Jochen Bayer (jocl)
- - Tomas Javaisis
- - Constantine Shtompel
- - VAN DER PUTTE Guillaume (guillaume_vdp)
- - Patrick Carlo-Hickman
- - Bruno MATEU
- - Jeremy Bush
- - Lucas Bäuerle
- - Steven RENAUX (steven_renaux)
- - Laurens Laman
+ - Zoli Szabó (zoliszabo)
+ - Víctor Mateo (victormateo)
+ - Ninos
+ - phc
+ - Artfaith
+ - Tomas Kmieliauskas
+ - hamza
+ - Serge (nfx)
+ - Stano Turza
+ - Florian Pondepeyre
+ - Ala Eddine Khefifi (nayzo)
+ - Farhad Hedayatifard
+ - Per Sandström (per)
+ - devel
+ - Athorcis
+ - Emmanuel Vella (emmanuel.vella)
+ - Alexandre Beaujour
+ - Abudarham Yuval
+ - Thomas Baumgartner (shoplifter)
+ - nyro (nyro)
+ - ssilatel
+ - Cantepie
+ - seho-nl
+ - Christian López Espínola (penyaskito)
+ - Anton (bonio)
+ - Moritz Kraft (userfriendly)
+ - Brian Corrigan
+ - Nicolas
+ - Lukas Naumann
  - Thomason, James
- - Dario Savella
- - Gordienko Vladislav
- - Joas Schilling
- - Ener-Getick
- - Markus Thielen
- - Peter Trebaticky
- - Moza Bogdan (bogdan_moza)
- - Viacheslav Sychov
- - Zuruuh
- - Nicolas Sauveur (baishu)
- - Helmut Hummel (helhum)
- - Matt Brunt
- - David Vancl
- - Carlos Ortega Huetos
- - Péter Buri (burci)
- - Evgeny Efimov (edefimov)
- - jack.thomas (jackthomasatl)
- - John VanDeWeghe
- - kaiwa
- - Charles Sanquer (csanquer)
- - Albert Ganiev (helios-ag)
- - Neil Katin
- - Oleg Mifle
- - V1nicius00
- - David Otton
- - Will Donohoe
- - peter
- - Tugba Celebioglu
- - Jeroen de Boer
- - Oleg Sedinkin (akeylimepie)
- - Jérémy Jourdin (jjk801)
- - BRAMILLE Sébastien (oktapodia)
- - Artem Kolesnikov (tyomo4ka)
- - Markkus Millend
- - Clément
- - Gustavo Adrian
- - Jorrit Schippers (jorrit)
- - Yann (yann_eugone)
- - Matthias Neid
- - danilovict2
- - Yannick
- - Kuzia
- - spdionis
- - maxime.perrimond
- - rchoquet
- - v.shevelev
- - rvoisin
- - Dan Brown
- - gitlost
- - Taras Girnyk
- - Simon Mönch
- - Barthold Bos
- - cthulhu
- - Andoni Larzabal (andonilarz)
- - Wolfgang Klinger (wolfgangklingerplan2net)
+ - Adam Elsodaney (archfizz)
+ - Adrien Samson (adriensamson)
+ - Yevgen Kovalienia
+ - Aurimas Rimkus (patrikas)
+ - Caligone
+ - Alexandru Bucur
+ - Chris Maiden (matason)
+ - goabonga
+ - Vladislav Rastrusny (fractalizer)
+ - Grayson Koonce
+ - Elliot Anderson (elliot)
+ - Michael Lively (mlivelyjr)
+ - Jake Bishop (yakobeyak)
+ - Adel ELHAIBA (eadel)
+ - Mihail Krasilnikov (krasilnikovm)
+ - Valentin
+ - Arseny Razin
+ - Lin Clark
+ - Sébastien HOUZÉ
+ - Lauris Binde (laurisb)
+ - wallach-game
  - Staormin
- - Dmitry Derepko
- - Rémi Leclerc
- - Jan Vernarsky
- - Ionut Cioflan
- - John Edmerson Pizarra
- - Sergio
- - Jonas Hünig
- - Mehrdad
- - Amine Yakoubi
+ - Alexandre Tranchant (alexandre_t)
+ - Sébastien HOUZE
+ - Ignacio Alveal
+ - Xesau
+ - Grégory Pelletier (ip512)
+ - David Lumaye (tux1124)
+ - Drew Butler
+ - Morimoto Ryosuke
+ - Laurent Negre (raulnet)
+ - neghmurken
+ - Iain Cambridge
+ - Joe Springe
+ - Drew Butler
+ - Peter Mead (petermead)
+ - Nicolas ASSING (nicolasassing)
+ - Kamil Madejski (kmadejski)
+ - Michael Orlitzky
+ - Jeremy Benoist
+ - Jakub Chábek
+ - Stefan Kleff (stefanxl)
+ - Marcel Berteler
+ - Tomas Liubinas
+ - guangwu
+ - Nicolas Tallefourtané (nicolab)
+ - cybernet (cybernet2u)
+ - Simon / Yami
+ - Constantine Shtompel
+ - Robin Kanters (anddarerobin)
+ - ging-dev
+ - SanderSander
+ - Jelizaveta Lemeševa (broken_core)
+ - Martin Pärtel
+ - ryunosuke
+ - Saem Ghani
+ - PLAZANET Pierre (pedrotroller)
+ - Ron Gähler (t-ronx)
+ - Patryk Kozłowski
+ - Omar Yepez (oyepez003)
+ - Vladislav Vlastovskiy (vlastv)
+ - Matthew Foster (mfoster)
+ - Johan Wilfer (johanwilfer)
+ - Peter Schultz
+ - Alessandro Loffredo
+ - Marco Pfeiffer
  - Eduardo García Sanz (coma)
- - Arend Hummeling
- - Makdessi Alex
- - Dmitrii Baranov
- - fduch (fduch)
- - Juan Miguel Besada Vidal (soutlink)
- - Takashi Kanemoto (ttskch)
- - Aleksei Lebedev
- - dlorek
- - Stuart Fyfe
- - Jason Schilling (chapterjason)
- - David de Boer (ddeboer)
- - Eno Mullaraj (emullaraj)
- - Guillem Fondin (guillemfondin)
- - Nathan PAGE (nathix)
- - Ryan Rogers
- - Arnaud
- - Klaus Purer
- - Dmitrii Lozhkin
- - Gilles Doge (gido)
- - Marion Hurteau (marionleherisson)
- - Oscar Esteve (oesteve)
- - Sobhan Sharifi (50bhan)
- - Peter Potrowl
- - abulford
- - Philipp Kretzschmar
- - Jairo Pastor
- - Ilya Vertakov
- - Brooks Boyd
- - Axel Venet
- - Stephen
- - Roger Webb
- - Dmitriy Simushev
- - Pawel Smolinski
- - Yury (daffox)
- - John Espiritu (johnillo)
- - Tomasz (timitao)
- - Nguyen Tuan Minh (tuanminhgp)
- - Oxan van Leeuwen
- - pkowalczyk
- - dbrekelmans
- - Mykola Zyk
- - Soner Sayakci
- - Max Voloshin (maxvoloshin)
- - Nicolas Fabre (nfabre)
- - Raul Rodriguez (raul782)
- - Piet Steinhart
+ - Fabio Panaccione
+ - Zlatoslav Desyatnikov
+ - Damien Vauchel (damien_vauchel)
+ - MiBo
+ - Babichev Maxim (rez1dent3)
+ - Vladimir Vasilev (bobahvas)
+ - Roman Tyshyk
+ - alanzarli
+ - Severin Glöckle
+ - Aurélien ADAM (aadam)
+ - Martin Mayer (martin)
  - mousezheng
- - Radoslaw Kowalewski
- - mshavliuk
- - Rémy LESCALLIER
- - MightyBranch
- - Kacper Gunia (cakper)
- - Derek Lambert (dlambert)
- - Mark Pedron (markpedron)
- - Peter Thompson (petert82)
- - Victor Macko (victor_m)
- - Ismail Turan
- - error56
+ - Benjamin Franzke
+ - Volker Killesreiter (ol0lll)
+ - ZiYao54
+ - Thibaut Chieux
  - Felicitus
- - Jorge Vahldick (jvahldick)
- - Krzysztof Przybyszewski (kprzybyszewski)
- - Vladimir Mantulo (mantulo)
- - Boullé William (williamboulle)
- - Jesper Noordsij
- - Bart Baaten
- - Frederic Godfrin
- - Paul Matthews
- - aim8604
- - Jakub Kisielewski
- - Vacheslav Silyutin
- - Aleksandr Dankovtsev
- - Maciej Zgadzaj
- - Juan Traverso
- - David Legatt (dlegatt)
- - Alain Flaus (halundra)
- - Arthur Woimbée
- - tsufeki
- - Théo DELCEY
- - Philipp Strube
- - Wim Hendrikx
- - Andrii Serdiuk (andreyserdjuk)
- - Clement Herreman (clemherreman)
- - dangkhoagms (dangkhoagms)
- - Dan Ionut Dumitriu (danionut90)
- - Evgeny (disparity)
- - Floran Brutel (notFloran) (floran)
- - Vladislav Rastrusny (fractalizer)
- - Vlad Gapanovich (gapik)
- - Alexander Kurilo (kamazee)
- - nyro (nyro)
- - Konstantin Bogomolov
- - Marco
- - Marc Torres
- - Mark Spink
- - gndk
- - Alberto Aldegheri
- - Dalibor Karlović
- - Cesar Scur (cesarscur)
- - Cyril Vermandé (cyve)
- - Daniele Orru&#039; (danydev)
- - Raul Garcia Canet (juagarc4)
- - Sagrario Meneses
- - Dmitri Petmanson
- - heccjj
- - Alexandre Melard
- - Rafał Toboła
- - Dominik Schwind (dominikschwind)
- - Stefano A. (stefano93)
- - PierreRebeilleau
- - AlbinoDrought
- - Sergey Yuferev
- - Monet Emilien
- - voodooism
- - Tobias Stöckler
- - Mario Young
- - martkop26
- - Raphaël Davaillaud
- - Sander Hagen
- - Alexander Menk
- - cilefen (cilefen)
- - Prasetyo Wicaksono (jowy)
- - Mo Di (modi)
- - Victor Truhanovich (victor_truhanovich)
- - Pablo Schläpfer
- - Christian Rishøj
- - Nikos Charalampidis
- - Caligone
- - Roromix
- - Patrick Berenschot
- - SuRiKmAn
- - Xavier RENAUDIN
- - rtek
- - Christian Wahler (christian)
- - Jelte Steijaert (jelte)
- - Maxime AILLOUD (mailloud)
- - David Négrier (moufmouf)
+ - Julien BERNARD
+ - Guillaume Smolders (guillaumesmo)
+ - Simon Asika
  - Quique Porta (quiqueporta)
- - Tobias Feijten (tobias93)
- - mohammadreza honarkhah
- - Jessica F Martinez
- - paullallier
- - Artem Oliinyk (artemoliynyk)
- - Andrea Quintino (dirk39)
- - Andreas Heigl (heiglandreas)
- - Tomasz Szymczyk (karion)
- - Peter Dietrich (xosofox)
- - Alex Vasilchenko
- - sez-open
- - fruty
- - ConneXNL
+ - Gilles Gauthier
+ - Sergio
+ - Carsten Eilers (fnc)
+ - Dr. Gianluigi &quot;Zane&quot; Zanettini
+ - Abderrahim (phydev)
+ - Beth Binkovitz
+ - Sebastian Utz
+ - Harry Wiseman
+ - Denis Golubovskiy (bukashk0zzz)
+ - Eric Schildkamp
+ - Cyrille Jouineau (tuxosaurus)
+ - taiiiraaa
+ - adenkejawen
+ - Niels Robin-Aubertin
+ - Ibon Conesa (ibonkonesa)
+ - Bram Van der Sype (brammm)
+ - Alexey Deriyenko
+ - BRAMILLE Sébastien (oktapodia)
+ - Thijs Reijgersberg
+ - Mike Francis
+ - Thomas
+ - Michael Pohlers (mick_the_big)
+ - Martins Eglitis
+ - db306
+ - Jason Desrosiers
+ - Sébastien Lévêque (legenyes)
+ - Michaël Marinetti
+ - Sema
+ - Nicolas Pion
+ - Oncle Tom
+ - Alex Silcock
+ - Jelle Bekker (jbekker)
+ - Nguyen Tuan Minh (tuanminhgp)
+ - Asil Barkin Elik (asilelik)
+ - Yurii K
+ - rtek
+ - Bikal Basnet
+ - Paul Mitchum (paul-m)
+ - pdragun
+ - Théo DELCEY
+ - Nicolas Attard (nicolasattard)
+ - Charles-Édouard Coste
+ - Arnau González
+ - Lane Shukhov
+ - Viktor Novikov (nowiko)
+ - Yurguis Garcia (yurguis)
+ - Pierre-Louis LAUNAY
+ - Emilien Escalle
+ - misterx
+ - Menno Holtkamp
+ - Anne-Sophie Bachelard
+ - Will Donohoe
+ - Aurelijus Rožėnas
+ - Elías Fernández
+ - mieszko4
+ - Tema Yud
+ - Jacek Wilczyński (jacekwilczynski)
+ - Dominik Hajduk (dominikalp)
+ - Jorge Maiden (jorgemaiden)
+ - Luca Genuzio (genuzio)
+ - Antonio Mansilla
+ - Michael Zangerle
+ - Michael Nelson
+ - Nicolas Le Goff (nlegoff)
+ - Joseph FRANCLIN
+ - Marek Binkowski
+ - Mbechezi Nawo
+ - gauss
+ - rhel-eo
+ - Kirill Roskolii
+ - LoginovIlya
+ - Mamikon Arakelyan (mamikon)
+ - Michal Gebauer
+ - Ondřej Frei
  - Aharon Perkel
- - matze
- - Adam Wójs (awojs)
- - Justin Reherman (jreherman)
- - Rubén Calvo (rubencm)
- - Abdul.Mohsen B. A. A
- - Cédric Girard
- - Peter Jaap Blaakmeer
- - Robert Worgul
- - Swen van Zanten
- - Agustin Gomes
- - pthompson
- - Malaney J. Hill
- - Patryk Kozłowski
- - Alexandre Pavy
- - Tim Ward
- - Adiel Cristo (arcristo)
- - Christian Flach (cmfcmf)
- - Fabian Kropfhamer (fabiank)
- - Jeffrey Cafferata (jcidnl)
- - Junaid Farooq (junaidfarooq)
- - Lars Ambrosius Wallenborn (larsborn)
- - Pavel Starosek (octisher)
- - Oriol Mangas Abellan (oriolman)
- - Sebastian Göttschkes (sgoettschkes)
- - Marcin Nowak
- - Frankie Wittevrongel
- - Tatsuya Tsuruoka
- - Ross Tuck
- - omniError
- - Zander Baldwin
+ - Rodolfo Ruiz
+ - Fabien
+ - Joseph Maarek
+ - Juan Luis (juanlugb)
+ - DerManoMann
+ - Benhssaein Youssef
+ - Jack Wright
+ - Simon Müller (boscho)
+ - Guillaume Aveline
+ - Blackfelix
+ - Jakub Caban (lustmored)
+ - Vladimir Khramtsov (chrome)
+ - Mathieu Dewet (mdewet)
+ - Luke Towers
  - László GÖRÖG
- - djordy
- - Kévin Gomez (kevin)
- - Mihai Nica (redecs)
- - Andrei Igna
- - Adam Prickett
+ - Michael Genereux
+ - CarolienBEER
+ - Peter Dietrich (xosofox)
+ - Tero Alén (tero)
+ - Botond Dani (picur)
+ - AmsTaFF (amstaff)
+ - Tischoi
+ - Jeffrey Cafferata (jcidnl)
+ - jfcixmedia
+ - Maksym Romanowski (maxromanovsky)
+ - jersoe
+ - Pierre Foresi (pforesi)
+ - Francois Martin
+ - Carlos Tasada
+ - Denis Kop
+ - dasmfm
+ - max
+ - Michaël VEROUX
+ - Nsbx
+ - Bogdan
+ - Abdulkadir N. A.
+ - Roman Tymoshyk (tymoshyk)
+ - Jonathan Gough
+ - Jimmy Leger (redpanda)
+ - Ahmad Mayahi (ahmadmayahi)
+ - Jean-François Morin-Abdullah
+ - Camille Baronnet
+ - Kevin Nadin (kevinjhappy)
+ - Alexandru Patranescu
+ - Bert Ramakers
+ - George Sparrow
+ - Jan Vernieuwe (vernija)
+ - Sandro Hopf (senaria)
+ - Sam Anthony
+ - Illia Antypenko (aivus)
+ - John Edmerson Pizarra
+ - Matt Brunt
+ - Ivan Yivoff
+ - Olivier Laviale (olvlvl)
+ - Ahmed EBEN HASSINE (famas23)
+ - Olatunbosun Egberinde
+ - andersmateusz
+ - Yannick Bensacq (cibou)
+ - Walter Doekes
+ - Laurent Clouet
+ - Robin Duval (robin-duval)
+ - Ivo Valchev
+ - Youpie
+ - wesign (inscrutable01)
+ - Michael Simonson (mikes)
+ - dmitrijivanenko
+ - Gabriel Moreira
+ - Flavien Knuchel (knuch)
+ - WaiSkats
+ - David Joos (djoos)
  - azine
- - Luke Towers
- - Wojciech Zimoń
- - Vladimir Melnik
- - Anton Kroshilin
- - Pierre Tachoire
- - Dawid Sajdak
- - Maxime THIRY
- - Norman Soetbeer
- - Ludek Stepan
- - Benjamin BOUDIER
- - Frederik Schwan
- - Mark van den Berg
- - Aaron Stephens (astephens)
- - Craig Menning (cmenning)
- - Balázs Benyó (duplabe)
- - Erika Heidi Reinaldo (erikaheidi)
- - William Thomson (gauss)
- - Javier Espinosa (javespi)
- - Marc J. Schmidt (marcjs)
- - František Maša
- - Sebastian Schwarz
- - Flohw
- - karolsojko
- - Marco Jantke
- - Saem Ghani
- - Claudiu Cristea
- - Zacharias Luiten
- - Sebastian Utz
- - Adrien Gallou (agallou)
- - Andrea Sprega (asprega)
- - Maks Rafalko (bornfree)
- - Conrad Kleinespel (conradk)
- - Clément LEFEBVRE (nemoneph)
- - Viktor Bajraktar (njutn95)
- - Walter Dal Mut (wdalmut)
- - abluchet
- - Ruud Arentsen
- - Harald Tollefsen
- - PabloKowalczyk
- - Matthieu
- - ZiYao54
- - Arend-Jan Tetteroo
- - Albin Kerouaton
- - Sébastien HOUZÉ
+ - Gijs Kunze
+ - Jean-Guilhem Rouel (jean-gui)
  - sebastian
- - Mbechezi Nawo
- - wivaku
+ - Alexey Popkov
+ - Starfox64
+ - Abdiel Carrazana (abdielcs)
+ - RichardGuilland
+ - Javier
+ - Gemorroj (gemorroj)
+ - Vaidas Lažauskas
+ - Richard van Velzen
+ - Lebnik
+ - Holger Lösken
+ - ffd000
+ - lerminou
+ - Eddie Abou-Jaoude (eddiejaoude)
+ - wusuopu
+ - j4nr6n (j4nr6n)
+ - Malaney J. Hill
+ - Francesco Panina (dasas87)
+ - amcastror
+ - natechicago
+ - Shane McKinley
+ - Louis-Proffit
+ - Olivier Scherler (oscherler)
+ - Ibrahim Bougaoua
+ - Joseph Deray
+ - Roland Franssen :)
+ - Gerrit Drost
+ - Bjorn Twachtmann (dotbjorn)
+ - Justin Rainbow (jrainbow)
+ - Martin Komischke
+ - Almog Baku (almogbaku)
+ - Saif Eddin G
+ - Luis Ramirez (luisdeimos)
+ - Patrick Kaufmann
+ - Fernando Henrique
+ - Simon Ackermann
+ - Ismail Özgün Turan (dadeather)
+ - Carl Julian Sauter
+ - Troy McCabe
+ - Muriel (metalmumu)
+ - divinity76
+ - Adam
+ - Andrea Sprega (asprega)
+ - Merijn Wijngaard
+ - Atthaphon Urairat
+ - David Stone
+ - mlazovla
+ - Xavier HAUSHERR
+ - Kristen Gilden
+ - Guillaume Gammelin
+ - Romeo
+ - Peter Bex
  - Markus Reinhold
- - Jingyu Wang
- - steveYeah
- - Asrorbek (asrorbek)
- - Samy D (dinduks)
- - Keri Henare (kerihenare)
- - Andre Eckardt (korve)
- - Cédric Lahouste (rapotor)
- - Samuel Vogel (samuelvogel)
- - Osayawe Ogbemudia Terry (terdia)
- - Berat Doğan
- - Christian Kolb
- - Guillaume LECERF
- - Alan Scott
- - Juanmi Rodriguez Cerón
- - twifty
- - Andy Raines
- - François Poguet
- - Anthony Ferrara
- - Geoffrey Pécro (gpekz)
- - Klaas Cuvelier (kcuvelier)
- - Flavien Knuchel (knuch)
- - Mathieu TUDISCO (mathieutu)
- - Dmytro Dzubenko
- - Martijn Croonen
+ - Nerijus Arlauskas (nercury)
+ - Lucas Bäuerle
+ - JuntaTom (juntatom)
+ - Adrian Philipp
+ - “teerasak”
+ - czachor
+ - Wouter Sioen (wouter_sioen)
+ - Angel Fernando Quiroz Campos (angelfqc)
+ - Laurent Moreau
+ - Miquel Fontana
+ - Jos Elstgeest
+ - Cédric Girard
+ - Shyim
+ - Saem Ghani
+ - Jan Dobrovodský (j-dobr)
+ - Thorsten Hallwas
+ - Guillaume Royer
+ - Yewhen Khoptynskyi (khoptynskyi)
+ - Chris de Kok
+ - Benjamin Bender
+ - Sebastian Busch (sebu)
+ - devman1917
+ - Michał Strzelecki
+ - Romain Geissler
+ - Gerhard Seidel (gseidel)
+ - Nacho Martin (nacmartin)
+ - Anton Kroshilin
+ - Dilek Erkut
+ - Ole Rößner (basster)
+ - Karlos Presumido (oneko)
+ - John VanDeWeghe
+ - Matt Fields
+ - Ph3nol
+ - Bert ter Heide (bertterheide)
+ - kurozumi (kurozumi)
  - Peter Ward
- - markusu49
- - Steve Frécinaux
- - Constantine Shtompel
- - Jules Lamur
- - Renato Mendes Figueiredo
- - xdavidwu
- - Benjamin RICHARD
- - Raphaël Droz
- - pdommelen
- - Eric Stern
- - ShiraNai7
- - Cedrick Oka
- - Antal Áron (antalaron)
- - Guillaume Sainthillier (guillaume-sainthillier)
- - Ivan Pepelko (pepelko)
- - Vašek Purchart (vasek-purchart)
- - Janusz Jabłoński (yanoosh)
- - Jens Hatlak
- - Fleuv
- - Tayfun Aydin
- - Łukasz Makuch
- - Arne Groskurth
- - Ilya Chekalsky
- - Ostrzyciel
- - George Giannoulopoulos
- - Thibault G
- - Alexander Pasichnik (alex_brizzz)
- - Felix Eymonot (hyanda)
- - Luis Ramirez (luisdeimos)
- - Ilia Sergunin (maranqz)
- - Daniel Richter (richtermeister)
- - Sandro Hopf (senaria)
- - ChrisC
- - André Laugks
- - jack.shpartko
- - Willem Verspyck
- - Kim Laï Trinh
- - Johan de Ruijter
- - InbarAbraham
- - Jason Desrosiers
- - m.chwedziak
- - marbul
- - Filippos Karailanidis
- - Andreas Frömer
- - Jeroen Bouwmans
- - Bikal Basnet
- - Philip Frank
- - David Brooks
- - Lance McNearney
- - Illia Antypenko (aivus)
- - Jelizaveta Lemeševa (broken_core)
- - Dominik Ritter (dritter)
- - Frank Neff (fneff)
- - Volodymyr Kupriienko (greeflas)
- - Ilya Biryukov (ibiryukov)
- - Mathieu Ledru (matyo91)
- - Roma (memphys)
- - Jozef Môstka (mostkaj)
- - Florian Caron (shalalalala)
- - Serhiy Lunak (slunak)
- - Wojciech Błoszyk (wbloszyk)
- - Giorgio Premi
- - Matthias Bilger
- - abunch
- - tamcy
- - Lukas Naumann
- - Mikko Pesari
- - Krzysztof Pyrkosz
- - Aurélien Fontaine
- - ncou
- - Ian Carroll
- - Dennis Fehr
- - caponica
- - jdcook
- - 🦅KoNekoD
- - Daniel Kay (danielkay-cp)
- - Matt Daum (daum)
- - Malcolm Fell (emarref)
- - Alberto Pirovano (geezmo)
- - inwebo veritas (inwebo)
- - Pascal Woerde (pascalwoerde)
- - Pete Mitchell (peterjmit)
- - phuc vo (phucwan)
- - Tom Corrigan (tomcorrigan)
- - Luis Galeas
- - Bogdan Scordaliu
- - Sven Scholz
- - Martin Pärtel
- - Daniel Rotter (danrot)
+ - Ferenczi Krisztian (fchris82)
+ - Pierrick Charron
+ - Christoph Krapp
+ - Jeroen
+ - Philippe Pichet
+ - Ivan Tse
+ - izenin
+ - Ulrik Nielsen (mrbase)
+ - Ionut Cioflan
+ - Mark de Haan (markdehaan)
+ - Wim Godden (wimg)
+ - Gustavo Adrian
+ - Florian Bogey
+ - Michaël Thieulin (mthieulin)
+ - Wotre
+ - Thomas Bibaut
+ - darnel
+ - HellFirePvP
+ - mmokhi
+ - Antonio Torres
+ - Valentin
  - Frédéric Bouchery (fbouchery)
- - Jacek Kobus (jackks)
- - Patrick Daley (padrig)
- - Phillip Look (plook)
- - Foxprodev
- - Artfaith
- - Tom Kaminski
- - developer-av
- - Max Summe
- - Ema Panz
- - Hugo Sales
- - Dale.Nash
- - DidierLmn
- - Pedro Silva
- - Chihiro Adachi (chihiro-adachi)
- - Clément R. (clemrwan)
- - Jeroen de Graaf
- - Hossein Hosni
- - Ulrik McArdle
- - BiaDd
- - Oleksii Bulba
- - Ramon Cuñat
- - mboultoureau
- - Raphaëll Roussel
- - Vitalii
- - Tadcka
- - Bárbara Luz
- - Abudarham Yuval
- - Beth Binkovitz
- - adhamiamirhossein
- - Maxim Semkin
- - Gonzalo Míguez
- - Jan Vernarsky
- - BrokenSourceCode
+ - Nardberjean
+ - Tobias Anders
+ - Flavian Sierk
+ - Juliano Petronetto
+ - Alexander McCullagh (mccullagh)
  - Fabian Haase
- - roog
- - parinz1234
- - seho-nl
- - Romain Geissler
- - Martin Auswöger
- - Adrien Moiruad
- - Viktoriia Zolotova
- - Tomaz Ahlin
- - Nasim
- - Randel Palu
- - Anamarija Papić (anamarijapapic)
- - AnotherSymfonyUser (arderyp)
- - Marcus Stöhr (dafish)
- - Daniel González Zaballos (dem3trio)
- - Emmanuel Vella (emmanuel.vella)
- - Giuseppe Petraroli (gpetraroli)
- - Guillaume BRETOU (guiguiboy)
- - Ibon Conesa (ibonkonesa)
- - Yoann Chocteau (kezaweb)
- - Nikita Popov (nikic)
- - nuryagdy mustapayev (nueron)
- - Carsten Nielsen (phreaknerd)
- - Valérian Lepeule (vlepeule)
- - Michael Olšavský
- - Jay Severson
- - Benny Born
- - Vincent Vermeulen
- - Stefan Moonen
- - Emirald Mateli
- - Robert
- - Ivan Tse
- - René Kerner
- - Nathaniel Catchpole
- - Jontsa
- - Igor Plantaš
- - upchuk
- - Adrien Samson (adriensamson)
- - Samuel Gordalina (gordalina)
- - Maksym Romanowski (maxromanovsky)
- - Nicolas Eeckeloo (neeckeloo)
- - Andriy Prokopenko (sleepyboy)
- - Dariusz Ruminski
- - Starfox64
- - Ivo Valchev
- - Thomas Hanke
- - ffd000
- - Daniel Tschinder
+ - Shane Preece (shane)
+ - Fabrice Locher
+ - Eric Grimois
+ - David Négrier (moufmouf)
+ - Tomáš Polívka (draczris)
+ - Yoann MOROCUTTI
+ - Florian Caron (shalalalala)
+ - Arash Tabrizian (ghost098)
+ - Boullé William (williamboulle)
+ - Yiorgos Kalligeros
+ - Adam Monsen (meonkeys)
+ - Simone Di  Maulo (toretto460)
+ - cilefen (cilefen)
+ - sarah-eit
+ - Maarten Nusteling (nusje2000)
+ - Benoit Lévêque (benoit_leveque)
+ - Tom Hart
  - Arnaud CHASSEUX
- - Zlatoslav Desyatnikov
- - Wickex
- - tuqqu
- - Wojciech Gorczyca
- - Ahmad Al-Naib
- - Neagu Cristian-Doru (cristian-neagu)
+ - Dmytro Dzubenko
+ - Thomas Chmielowiec
+ - Christian Morgan
+ - Thomas Hanke
+ - ibasaw
+ - Anton Dyshkant
+ - Gabriel Birke
+ - Colin Michoudet
+ - Tobias Rautenkranz
+ - Maxim Lovchikov
+ - orlovv
+ - Pablo Schläpfer
+ - Giorgio Premi
+ - Stephen
+ - PaoRuby
+ - Warwick
+ - Benjamin Long
+ - martkop26
+ - Maxime Aknin (3m1x4m)
+ - Pathpat
+ - Andriy Prokopenko (sleepyboy)
+ - Kris Buist
+ - ReScO
+ - boite
+ - Charly Terrier (charlypoppins)
+ - Sergei Shitikov
+ - pthompson
+ - Thanh Trần
+ - Sezil
+ - patrick-mcdougle
+ - Carsten Nielsen (phreaknerd)
+ - David Courtey (david-crty)
+ - Kasper Hansen
+ - Robert Gurau
+ - Artem (digi)
+ - Randel Palu
+ - Paul Ferrett
+ - Ian Littman (iansltx)
+ - Viet Pham
  - Mathieu Morlon (glutamatt)
- - NIRAV MUKUNDBHAI PATEL (niravpatel919)
- - Owen Gray (otis)
- - Rafał Muszyński (rafmus90)
- - Sébastien Decrême (sebdec)
- - Timothy Anido (xanido)
- - Robert-Jan de Dreu
- - Mara Blaga
+ - Jovan Perovic (jperovic)
+ - Joel Marcey
+ - Pavinthan
+ - Milos Colakovic (project2481)
+ - Kantin CHARIGNON
+ - Jared Farrish
+ - Peter Smeets (darkspartan)
+ - Tristan Bessoussa (sf_tristanb)
+ - Anne-Julia Seitz
  - Rick Prent
- - skalpa
- - Kai
- - Bartłomiej Zając
- - Pieter Jordaan
- - Tournoud (damientournoud)
- - Michael Dowling (mtdowling)
- - Karlos Presumido (oneko)
- - Pierre Foresi (pforesi)
- - Tony Vermeiren (tony)
- - Bart Wach
- - Jos Elstgeest
- - Kirill Lazarev
- - Thomas Counsell
- - Joe
- - BilgeXA
- - mmokhi
- - Serhii Smirnov
- - Robert Queck
- - Peter Bouwdewijn
- - Kurt Thiemann
- - Martins Eglitis
- - Daniil Gentili
- - Eduard Morcinek
- - Wouter Diesveld
- - Romain
- - Matěj Humpál
- - Kasper Hansen
- - Nico Hiort af Ornäs
- - Eddy
- - Amine Matmati
- - Kristen Gilden
- - caalholm
- - Nouhail AL FIDI (alfidi)
- - Fabian Steiner (fabstei)
- - Felipy Amorim (felipyamorim)
- - Guillaume Loulier (guikingone)
- - Michael Lively (mlivelyjr)
- - Pierre Grimaud (pgrimaud)
- - Abderrahim (phydev)
- - Attila Bukor (r1pp3rj4ck)
- - Thomas Boileau (tboileau)
- - Alexander Janssen (tnajanssen)
- - Thomas Chmielowiec (chmielot)
- - Jānis Lukss
+ - Dawid Nowak
+ - Mehdi Mabrouk (mehdidev)
+ - victor-prdh
+ - georaldc
+ - Zdeněk Drahoš
+ - qzylalala
+ - nerdgod
+ - Tomáš Korec (tomkorec)
+ - Kaipi Yann
+ - Adrien Peyre (adpeyre)
+ - Andre Johnson
+ - Peter Trebaticky
+ - timesince
+ - jc
+ - Renan Taranto (renan-taranto)
+ - Ryan Rogers
+ - Luis Ramón López López (lrlopez)
+ - Vadim Tyukov (vatson)
+ - Chris Shennan (chrisshennan)
+ - Dominic Luidold
+ - Jeroen de Boer
+ - Robert-Jan de Dreu
+ - Marin Bînzari (spartakusmd)
+ - voodooism
+ - Nicolas Martin (cocorambo)
+ - Oleg Mifle
+ - maxime.perrimond
+ - Franz Liedke (franzliedke)
+ - Ruslan Zavacky (ruslanzavacky)
+ - Thomas Beaujean
  - simbera
- - Julien BERNARD
- - Michael Zangerle
- - rkerner
- - Alex Silcock
- - Raphael Hardt
- - Ivan Nemets
- - Dave Long
- - Qingshan Luo
- - Michael Olšavský
- - Ergie Gonzaga
- - Matthew J Mucklo
- - AnrDaemon
- - SnakePin
- - Matthew Covey
- - Tristan Kretzer
- - Adriaan Zonnenberg
- - Charly Terrier (charlypoppins)
- - Dcp (decap94)
- - Emre Akinci (emre)
- - Rachid Hammaoui (makmaoui)
- - Chris Maiden (matason)
- - psampaz (psampaz)
- - Andrea Ruggiero (pupax)
- - Stan Jansen (stanjan)
- - Maxwell Vandervelde
- - karstennilsen
- - kaywalker
- - Sebastian Ionescu
- - Robert Kopera
- - Pablo Ogando Ferreira
- - Thomas Ploch
- - Victor Prudhomme
- - Simon Neidhold
- - Wouter Ras
- - Gil Hadad
- - Valentin VALCIU
- - Jeremiah VALERIE
- - Alexandre Beaujour
+ - Jakub Vrána
  - Franck Ranaivo-Harisoa
- - Grégoire Rabasse
- - Cas van Dongen
- - Patrik Patie Gmitter
- - George Yiannoulopoulos
- - Yannick Snobbert
- - Kevin Dew
- - James Cowgill
- - Žan V. Dragan
- - sensio
- - Julien Menth (cfjulien)
- - Lyubomir Grozdanov (lubo13)
  - Nicolas Schwartz (nicoschwartz)
- - Tim Jabs (rubinum)
- - Schvoy Norbert (schvoy)
- - Stéphane Seng (stephaneseng)
- - Peter Schultz
- - Robert Korulczyk
- - Jonathan Gough
- - Benhssaein Youssef
- - Benoit Leveque
- - bill moll
- - chillbram
- - Benjamin Bender
- - PaoRuby
- - Holger Lösken
- - Bizley
- - Jared Farrish
- - Yohann Tilotti
- - karl.rixon
- - raplider
- - Konrad Mohrfeldt
- - Lance Chen
- - Ciaran McNulty (ciaranmcnulty)
- - Dominik Piekarski (dompie)
- - Andrew (drew)
- - j4nr6n (j4nr6n)
- - Rares Sebastian Moldovan (raresmldvn)
- - Stelian Mocanita (stelian)
- - Gautier Deuette
- - dsech
- - wallach-game
- - Gilbertsoft
- - tadas
- - Bastien Picharles
- - Kirk Madera
- - Linas Ramanauskas
- - mamazu
- - Keith Maika
- - izenin
- - Mephistofeles
- - Oleh Korneliuk
- - Emmanuelpcg
+ - Peter Thompson (petert82)
+ - Marco Jantke
+ - Jason Stephens
+ - Nicolas Sauveur (baishu)
+ - Jairo Pastor
+ - David Windell
+ - Thomas Boileau (tboileau)
+ - James Sansbury
+ - Matěj Humpál
+ - Rodrigo Díez Villamuera (rodrigodiez)
+ - helmi
+ - henderkes
+ - Дмитрий Пацура
+ - Bernard van der Esch (adeptofvoltron)
+ - eminjk
+ - Dennis Fehr
  - Rini Misini
- - Attila Szeremi
- - Evgeny Ruban
- - Hoffmann András
- - LubenZA
- - Victor Garcia
- - Juan Mrad
- - Denis Yuzhanin
- - k-sahara
- - Flavian Sierk
- - Rik van der Heijden
- - knezmilos13
- - Thomas Beaujean
- - alireza
- - Michael Bessolov
- - sauliusnord
- - Zdeněk Drahoš
- - Dan Harper
- - moldcraft
- - Marcin Kruk
- - Antoine Bellion (abellion)
- - Ramon Kleiss (akathos)
- - Alexey Buyanow (alexbuyanow)
- - Antonio Peric-Mazar (antonioperic)
- - César Suárez (csuarez)
- - Bjorn Twachtmann (dotbjorn)
- - Marek Víger (freezy)
- - Goran (gog)
- - Wahyu Kristianto (kristories)
- - Tobias Genberg (lorceroth)
- - Michael Simonson (mikes)
- - Nicolas Badey (nico-b)
- - Florent Blaison (orkin)
- - Olivier Scherler (oscherler)
- - Flo Gleixner (redflo)
- - Romain Jacquart (romainjacquart)
- - Shane Preece (shane)
- - Stephan Wentz (temp)
- - Johannes Goslar
- - Mike Gladysch
- - Geoff
- - georaldc
- - wusuopu
- - Markus Staab
- - Wouter de Wild
- - Peter Potrowl
- - povilas
- - andreybolonin1989@gmail.com
- - Gavin Staniforth
- - bahram
- - Alessandro Tagliapietra (alex88)
- - Nikita Starshinov (biji)
- - Alex Teterin (errogaht)
- - Gunnar Lium (gunnarlium)
- - Malte Wunsch (maltewunsch)
- - Marie Minasyan (marie.minassyan)
- - Pavel Stejskal (spajxo)
- - Szymon Kamiński (szk)
- - Tiago Garcia (tiagojsag)
- - Artiom
- - Jakub Simon
- - TheMhv
- - Eviljeks
- - Juliano Petronetto
  - robin.de.croock
- - Brandon Antonio Lorenzo
- - Bouke Haarsma
- - Boris Medvedev
- - mlievertz
- - Radosław Kowalewski
- - Enrico Schultz
- - tpetry
- - Nikita Sklyarov
- - JustDylan23
- - Juraj Surman
- - Martin Eckhardt
- - natechicago
- - DaikiOnodera
- - Victor
- - Andreas Allacher
- - Abdelilah Jabri
- - Alexis
- - Leonid Terentyev
- - Sergei Gorjunov
- - Jonathan Poston
- - Adrian Olek (adrianolek)
- - Camille Dejoye (cdejoye)
- - cybernet (cybernet2u)
- - Jody Mickey (jwmickey)
- - Przemysław Piechota (kibao)
- - Martin Schophaus (m_schophaus_adcada)
- - Martynas Sudintas (martiis)
- - Anton Sukhachev (mrsuh)
- - Pavlo Pelekh (pelekh)
- - Stefan Kleff (stefanxl)
- - RichardGuilland
- - Marcel Siegert
- - ryunosuke
- - Bruno BOUTAREL
- - John Stevenson
- - everyx
- - Richard Heine
- - Francisco Facioni (fran6co)
- - Stanislav Gamaiunov (happyproff)
- - Iwan van Staveren (istaveren)
- - Alexander McCullagh (mccullagh)
- - Paul L McNeely (mcneely)
- - Povilas S. (povilas)
- - Laurent Negre (raulnet)
- - Sergey Fokin (tyraelqp)
- - Victoria Quirante Ruiz (victoria)
- - Evrard Boulou
- - pborreli
- - Ibrahim Bougaoua
- - Boris Betzholz
- - Eric Caron
- - Arnau González
- - GurvanVgx
+ - Alex Carol (picard89)
+ - Talel Zighni
+ - maxperei
+ - Lyubomir Grozdanov (lubo13)
+ - Alexandre Pavy
  - Jiri Falis
- - 2manypeople
- - Wing
- - Thomas Bibb
- - Stefan Koopmanschap
- - George Sparrow
- - Toro Hill
- - Joni Halme
- - Matt Farmer
- - André Laugks
- - catch
- - aetxebeste
- - Roberto Guido
- - ElisDN
- - roromix
- - Vitali Tsyrkin
- - Juga Paazmaya
- - Alexandre Segura
- - afaricamp
- - Josef Cech
- - riadh26
- - AntoineDly
- - Konstantinos Alexiou
- - Andrii Boiko
- - Dilek Erkut
- - mikocevar
- - Harold Iedema
- - WaiSkats
- - Morimoto Ryosuke
- - Ikhsan Agustian
- - Benoit Lévêque (benoit_leveque)
- - Bernat Llibre Martín (bernatllibre)
- - Simon Bouland (bouland)
- - Christoph König (chriskoenig)
- - Dmytro Pigin (dotty)
- - Abdouarrahmane FOUAD (fabdouarrahmane)
- - Jakub Janata (janatjak)
+ - Nikola Svitlica (thecelavi)
+ - Artem Oliinyk (artemoliynyk)
+ - Kacper Gunia (cakper)
+ - mark burdett
  - Jm Aribau (jmaribau)
- - Matthew Foster (mfoster)
- - Paul Seiffert (seiffert)
- - Vasily Khayrulin (sirian)
- - Stas Soroka (stasyan)
+ - Kousuke Ebihara (co3k)
+ - Dmitry Simushev
+ - martijn
+ - Thomas BERTRAND (sevrahk)
+ - Valentin PONS (valx76)
+ - Tom Panier (neemzy)
+ - Pierre Sv (rrr63)
+ - Christian
+ - Raphael de Almeida (raphaeldealmeida)
+ - Romain Pierre
+ - Dan Ordille (dordille)
+ - Reda DAOUDI
+ - Andrew Carter (andrewcarteruk)
  - Thomas Dubuffet (thomasdubuffet)
- - Stefan Hüsges (tronsha)
- - Jake Bishop (yakobeyak)
- - Dan Blows
- - popnikos
+ - mlpo (mlpo)
+ - Stephanie Trumtel (einahp)
+ - Serhiy Lunak (slunak)
+ - Pontus Mårdnäs
+ - Philipp
+ - LubenZA
+ - Sagrario Meneses
+ - Mohammad Eftekhari (bluemmb)
+ - scourgen hung (scourgen)
+ - BilgeXA
+ - Matthew (mattvick)
+ - Bhujagendra Ishaya
+ - Marcus Stöhr (dafish)
+ - Stanislav Gamaiunov (happyproff)
+ - Ronny (big-r)
+ - Bruno Nogueira Nascimento Wowk
+ - Ivo Valchev
+ - Dmitriy Tkachenko (neka)
+ - Misha Klomp (mishaklomp)
+ - Eric Stern
+ - Schvoy Norbert (schvoy)
+ - Phillip Look (plook)
+ - Dario Savella
+ - Owen Gray (otis)
+ - stollr
+ - Tobias Weinert (tweini)
+ - RENAUDIN Xavier (xorrox)
+ - Thomas Ploch
+ - Benjamin Rosenberger
+ - Ruben Jansen
+ - Stefanos Psarras (stefanos)
  - Matt Wells
+ - Guido Donnari
  - Nicolas Appriou
- - Javier Alfonso Bellota de Frutos
- - stloyd
- - Tito Costa
- - Andreas
- - Chris Tickner
- - Andrew Coulton
- - Ulugbek Miniyarov
- - Jeremy Benoist
- - Antoine Beyet
- - Michal Gebauer
- - René Landgrebe
- - Phil Davis
- - Thiago Melo
- - Gleb Sidora
- - David Stone
- - Giorgio Premi
- - Gerhard Seidel (gseidel)
- - Jovan Perovic (jperovic)
- - Pablo Maria Martelletti (pmartelletti)
- - Sebastian Drewer-Gutland (sdg)
- - Sander van der Vlugt (stranding)
- - casdal
- - Florian Bogey
- - Waqas Ahmed
- - Bert Hekman
- - Luis Muñoz
- - Matthew Donadio
- - Kris Buist
- - Houziaux mike
- - Phobetor
- - Eric Schildkamp
- - Yoann MOROCUTTI
- - d.huethorst
- - Markus
- - Zayan Goripov
- - agaktr
- - Janusz Mocek
- - Johannes
- - Mostafa
- - kernig
- - Thomas Chmielowiec
- - shdev
- - Andrey Ryaguzov
- - Gennadi Janzen
- - SenTisso
- - Stefan
- - Peter Bex
- - Manatsawin Hanmongkolchai
- - Gunther Konig
- - Joe Springe
- - Mickael GOETZ
- - Tobias Speicher
- - Jesper Noordsij
- - DerStoffel
- - Flinsch
- - Maciej Schmidt
- - botbotbot
- - tatankat
  - Cláudio Cesar
- - Sven Nolting
- - Timon van der Vorm
- - nuncanada
- - Thierry Marianne
- - František Bereň
- - G.R.Dalenoort
- - Jeremiah VALERIE
- - Mike Francis
- - Nil Borodulia
- - Adam Katz
- - Almog Baku (almogbaku)
- - Boris Grishenko (arczinosek)
- - Arrakis (arrakis)
- - Danil Khaliullin (bifidokk)
- - Benjamin Schultz (bschultz)
- - Christian Grasso (chris54721)
- - Vladimir Khramtsov (chrome)
- - Gerd Christian Kunze (derdu)
- - Stephanie Trumtel (einahp)
- - Denys Voronin (hurricane)
- - Ionel Scutelnicu (ionelscutelnicu)
- - Jordan de Laune (jdelaune)
- - Juan Gonzalez Montes (juanwilde)
- - Kamil Madejski (kmadejski)
- - Mathieu Dewet (mdewet)
- - none (nelexa)
- - Nicolas Tallefourtané (nicolab)
- - Botond Dani (picur)
- - Rémi Faivre (rfv)
- - Radek Wionczek (rwionczek)
- - tinect (tinect)
- - Nick Stemerdink
- - Bernhard Rusch
- - David Stone
- - Vincent Bouzeran
- - fabi
- - Grayson Koonce
- - Ruben Jansen
- - Wissame MEKHILEF
- - Mihai Stancu
- - shreypuranik
- - Thibaut Salanon
- - Romain Dorgueil
- - Christopher Parotat
- - Andrey Helldar
- - Dennis Haarbrink
- - Daniel Kozák
- - Urban Suppiger
- - 蝦米
- - Julius Beckmann (h4cc)
- - Julien JANVIER (jjanvier)
- - Karim Cassam Chenaï (ka)
- - Lorenzo Adinolfi (loru88)
- - Marcello Mönkemeyer (marcello-moenkemeyer)
- - Ahmed Shamim Hassan (me_shaon)
- - Michal Kurzeja (mkurzeja)
- - Nicolas Bastien (nicolas_bastien)
- - Nikola Svitlica (thecelavi)
- - Andrew Zhilin (zhil)
- - Sjors Ottjes
- - azjezz
- - VojtaB
- - Andy Stanberry
- - Felix Marezki
- - Normunds
- - Yuri Karaban
- - Walter Doekes
- - Johan
- - Thomas Rothe
- - Edwin
- - Troy Crawford
- - Kirill Roskolii
- - Jeroen van den Nieuwenhuisen
- - nietonfir
- - Andriy
- - Taylor Otwell
- - alefranz
- - David Barratt
- - Andrea Giannantonio
- - Pavel.Batanov
- - avi123
- - Pavel Prischepa
- - Philip Dahlstrøm
+ - Richard Čepas
+ - Alessandro Tagliapietra (alex88)
+ - Willem Verspyck
+ - Mark Pedron (markpedron)
+ - Maciej Schmidt
+ - Manatsawin Hanmongkolchai
+ - Wim Molenberghs (wimm)
+ - Evgeny Efimov (edefimov)
+ - Jonathan (grafikart)
+ - Dmitrii Baranov
+ - gndk
+ - dened
+ - Adrien Chinour
+ - Gilles Doge (gido)
+ - david-binda
+ - Xavier Amado (xamado)
+ - Dustin Wilson
+ - Charly Goblet (_mocodo)
+ - Evgeniy Tetenchuk
+ - Yoann MOROCUTTI
+ - gstapinato
+ - Paulius Jarmalavičius (pjarmalavicius)
  - Pierre Schmitz
- - Sami Mussbach
- - qzylalala
- - alsar
- - downace
- - Aarón Nieves Fernández
- - Mikolaj Czajkowski
- - Ahto Türkson
- - Paweł Stasicki
- - Ph3nol
- - Kirill Saksin
- - Shiro
- - Reda DAOUDI
- - Koalabaerchen
- - michalmarcinkowski
- - Warwick
- - Chris
- - Farid Jalilov
- - Christiaan Wiesenekker
- - Ariful Alam
- - Florent Olivaud
- - Foxprodev
- - Eric Hertwig
- - JakeFr
- - Dmitry Hordinky
- - Oliver Klee
- - Niels Robin-Aubertin
- - Simon Sargeant
- - efeen
- - Mikko Ala-Fossi
- - Jan Christoph Beyer
- - withbest
- - Nicolas Pion
- - Muhammed Akbulut
- - Daniel Tiringer
- - Xesau
- - Koray Zorluoglu
+ - jack.thomas (jackthomasatl)
+ - Lars Ambrosius Wallenborn (larsborn)
+ - Jens Schulze
  - Roy-Orbison
- - Aaron Somi
- - kshida
- - Yasmany Cubela Medina (bitgandtter)
- - Michał Dąbrowski (defrag)
- - Aryel Tupinamba (dfkimera)
- - Elías (eliasfernandez)
- - Hans Höchtl (hhoechtl)
- - Simone Fumagalli (hpatoio)
- - Brian Graham (incognito)
- - Kevin Vergauwen (innocenzo)
- - Alessio Baglio (ioalessio)
- - Johannes Müller (johmue)
+ - Nico Müller (nicomllr)
+ - Charles Sanquer (csanquer)
+ - root
+ - Paweł Tomulik
+ - Ulrik McArdle
+ - Eric Caron
+ - Marvin Bölsterli (marvinb)
+ - Wang Jingyu
+ - Jaymin G
+ - thecaliskan
+ - Tomáš Votruba
+ - HADJEDJ Vincent (hadjedjvincent)
+ - Evrard Boulou
+ - Swen van Zanten
+ - Andrew Brown
+ - Juan M Martínez
+ - inwebo veritas (inwebo)
+ - Laurent Bachelier (laurentb)
+ - Maerlyn
+ - alekLexis
+ - Bárbara Luz
+ - Mickaël BULIARD
+ - Sven Scholz
+ - Cayetano Soriano Gallego (neoshadybeat)
+ - Matteo Galli
+ - Piotr Antosik (antek88)
+ - Ioana Hazsda (ioana-hazsda)
+ - Bruno Ziegler (sfcoder)
+ - Karl Shea
+ - Radoslaw Kowalewski
+ - Victor Macko (victor_m)
+ - Jérôme Nadaud (jnadaud)
+ - Marie Minasyan (marie.minassyan)
+ - Ahmed HANNACHI (tiecoders)
+ - Philipp Hoffmann (philipphoffmann)
+ - psampaz (psampaz)
+ - Martijn Evers
+ - Mathias Geat
+ - Andy Raines
+ - Jody Mickey (jwmickey)
+ - Sebastian Drewer-Gutland (sdg)
+ - Victor Prudhomme
+ - Léon Gersen
+ - Evgeny (disparity)
+ - Michael J
+ - Oleg Krasavin (okwinza)
+ - Choong Wei Tjeng (choonge)
  - Jordi Llonch (jordillonch)
- - julien_tempo1 (julien_tempo1)
- - Roman Igoshin (masterro)
+ - Your Name
+ - Baptiste Leduc (bleduc)
+ - dargor980
+ - Jakub Simon
+ - Antonio Angelino
+ - Florian Guimier
+ - Alexander Menk
  - Nicholas Ruunu (nicholasruunu)
- - Pierre Rebeilleau (pierrereb)
- - Milos Colakovic (project2481)
- - Raphael de Almeida (raphaeldealmeida)
- - Rénald Casagraude (rcasagraude)
- - Robin Duval (robin-duval)
- - Mohammad Ali Sarbanha (sarbanha)
- - Sergii Dolgushev (sergii-swds)
- - Steeve Titeca (stiteca)
- - Thomas Citharel (tcit)
- - Artem Lopata (bumz)
+ - Matt Farmer
+ - Juan Gonzalez Montes (juanwilde)
+ - dogedede
+ - Adrian Olek (adrianolek)
+ - gondo (gondo)
+ - Dale.Nash
+ - phuc vo (phucwan)
+ - Eduard Bulava (nonanerz)
+ - Patrick Berenschot
+ - Beno!t POLASZEK
+ - Markus Thielen
+ - Lajos Veres (vlajos)
+ - Adriaan Zonnenberg
+ - Danil Khaliullin (bifidokk)
+ - Yohan Giarelli (frequence-web)
+ - Andrew Clark (tqt_andrew_clark)
+ - Yoann Chocteau (kezaweb)
+ - Oksana Kozlova (oksanakozlova)
+ - Dan Kadera
+ - matze
+ - Alexandre Fiocre (demos77)
+ - jwaguet
+ - mwos
+ - Nil Borodulia
+ - Laurent Legaz
+ - Nikita Starshinov (biji)
+ - Gusakov Nikita (hell0w0rd)
+ - Jorge Vahldick (jvahldick)
+ - Storkeus
+ - Andy Stanberry
+ - emilienbouard (neime)
+ - Evert Jan Hakvoort
+ - François Poguet
  - Soha Jin
- - alex
- - Alex Niedre
- - evgkord
- - Roman Orlov
- - Simon Ackermann
- - Andreas Allacher
- - VolCh
- - Alexey Popkov
- - Gijs Kunze
- - Artyom Protaskin
- - Steven Dubois
- - Nathanael d. Noblet
- - Yurun
- - helmer
- - ged15
- - Simon Asika
- - CDR
- - Daan van Renterghem
- - Bálint Szekeres
- - Boudry Julien
- - amcastror
- - Bram Van der Sype (brammm)
- - Guile (guile)
- - Mark Beech (jaybizzle)
- - Julien Moulin (lizjulien)
- - Raito Akehanareru (raito)
- - Mauro Foti (skler)
- - Thibaut Arnoud (thibautarnoud)
- - Valmont Pehaut-Pietri (valmonzo)
- - Yannick Warnier (ywarnier)
- - Jörn Lang
- - Kevin Decherf
- - Paul LE CORRE
- - Christian Weiske
- - Maria Grazia Patteri
- - klemens
- - dened
- - muchafm
- - jpauli
- - Dmitry Korotovsky
- - Michael van Tricht
- - ReScO
- - Tim Strehle
- - Sébastien COURJEAN
+ - Vallel Blanco
+ - Gerry Vandermaesen (gerryvdm)
+ - Miguel Vieira
+ - Ondřej Mirtes (mirtes)
+ - Daniel Richter (richtermeister)
+ - Brian Freytag
+ - Maxwell Vandervelde
+ - Taylor Otwell
+ - Pavel Barton
+ - Jonas Hünig
+ - Johan
+ - Javier Alfonso Bellota de Frutos
+ - Adrien Moiruad
+ - Arend-Jan Tetteroo
+ - Gonzalo Míguez
+ - Ionel Scutelnicu (ionelscutelnicu)
+ - Helmut Hummel (helhum)
+ - Adrian
  - cay89
- - Sam Ward
- - Hans N. Hjort
- - Marko Vušak
- - Walther Lalk
- - Adam
+ - Troy Crawford
+ - Anthony Moutte
+ - Ahmad Al-Naib
+ - Paul Santus
+ - Jeremy Pollard
+ - Raphael Hardt
+ - soyuka
+ - Gavin (gavin-markup)
+ - Frédéric G. Marand (fgm)
+ - Raul Rodriguez (raul782)
+ - koyolgecen
+ - Vladimir Chernyshev (volch)
+ - Mihai Nica (redecs)
+ - Thomas Chmielowiec (chmielot)
+ - Kajetan Kołtuniak (kajtii)
+ - Aaron Piotrowski (trowski)
+ - Pavel Starosek (octisher)
+ - Patrick Carlo-Hickman
+ - Martins (kevin_martins)
+ - benatespina (benatespina)
+ - Vladimir Melnik
+ - Mark Spink
+ - Mo Di (modi)
+ - yoye
+ - Bruno Rodrigues de Araujo (brunosinister)
+ - abunch
+ - Plamen Mishev (pmishev)
+ - Michal Trojanowski
+ - Toby Griffiths (tog)
+ - Marcin Nowak
+ - Hugo Sales
+ - Andrea Quintino (dirk39)
+ - czachor
+ - Sylvain Just
+ - Chris Tickner
+ - Joas Schilling
+ - Arthur Woimbée
+ - Daan van Renterghem
+ - Nowfel2501
+ - Ernest Hymel
+ - Dmitry Danilson
+ - alangvazq
+ - Mark Topper
+ - Olaf Klischat
+ - xaav
+ - Ariel J. Birnbaum
+ - Dominik Kohler
+ - Andrzej
+ - Pierre Rineau
+ - Simon Mönch
+ - Mathieu TUDISCO (mathieutu)
+ - Pawel Smolinski
+ - Julius Kiekbusch
  - Ivo
- - vltrof
- - Ismo Vuorinen
- - Markus Staab
- - Valentin
- - Gerard
- - Sören Bernstein
- - michael.kubovic
- - devel
- - Iain Cambridge
- - taiiiraaa
- - Ali Tavafi
+ - cgonzalez
+ - Christian Eikermann
+ - Zander Baldwin
+ - Wojciech Zimoń
+ - Oxan van Leeuwen
+ - Anatol Belski
  - gedrox
- - Viet Pham
- - Alan Bondarchuk
- - Pchol
+ - Zachary Tong (polyfractal)
+ - sdkawata
+ - Daniel Rotter (danrot)
+ - Sebastian Ionescu
+ - Ikhsan Agustian
+ - Kenjy Thiébault (kthiebault)
+ - Roeland Jago Douma
+ - Nicolas Macherey
+ - Rubén Calvo (rubencm)
+ - Nicholas Byfleet (nickbyfleet)
+ - Antanas Arvasevicius
+ - Rénald Casagraude (rcasagraude)
+ - Walther Lalk
+ - Kevin Frantz
+ - downace
+ - Kai Eichinger
+ - Tomasz (timitao)
+ - Daniele Cesarini (ijanki)
+ - Bailey Parker
+ - Mahmoud Mostafa (mahmoud)
+ - Vic D&#039;Elfant (vicdelfant)
+ - Marc Lemay (flug)
+ - Joshua Behrens (joshuabehrens)
+ - Andrei Mateescu
+ - Tony Vermeiren (tony)
+ - Pavel Stejskal (spajxo)
+ - Nicolas Appriou
+ - Tobias Stöckler
+ - ChrisC
+ - allison guilhem
+ - Andrii Serdiuk (andreyserdjuk)
+ - Adrian Brajkovic
+ - Kris Kelly
+ - Ross Motley (rossmotley)
+ - Amaury Leroux de Lens (amo__)
+ - Dalibor Karlović
+ - Florian Pondepeyre
+ - Roberto Guido
+ - Sergey Fokin (tyraelqp)
+ - Nikita Popov (nikic)
+ - Simon Frost
+ - Artem (nexim)
+ - michalmarcinkowski
+ - Faton (notaf)
+ - Christiaan Wiesenekker
+ - Ramon Ornelas (ramonornela)
+ - Alexander Bauer (abauer)
+ - Krzysztof Przybyszewski (kprzybyszewski)
+ - Yuri Karaban
+ - Xeno Suter
+ - michal
+ - oscartv
+ - Valentin
+ - mshavliuk
+ - G/
+ - Maria Grazia Patteri
+ - zors1
+ - detinkin
+ - Taras Hinyk
+ - fabios
+ - sez-open
  - Benjamin Ellis
- - Shamimul Alam
- - Cyril HERRERA
- - dropfen
- - RAHUL K JHA
- - Andrey Chernykh
- - Edvinas Klovas
- - Drew Butler
- - Peter Breuls
- - Kevin EMO
+ - Guillaume LECERF
+ - jim
+ - Patrick Janzen
+ - Asrorbek Sultanov
+ - Péter Buri (burci)
+ - Lin Lu
+ - Rainrider
+ - omerida
+ - parinz1234
+ - Yann LUCAS (drixs6o9)
+ - Daniel Kozák
+ - NIRAV MUKUNDBHAI PATEL (niravpatel919)
+ - xammmue
+ - Vladislav Nikolayev (luxemate)
+ - Oleksii Bulba
+ - Justin Reherman (jreherman)
  - Chansig
- - Tischoi
- - divinity76
- - vdauchy
- - Andreas Hasenack
- - J Bruni
- - Alexey Prilipko
- - vlakoff
- - Anthony Tenneriello
- - thib92
- - Yiorgos Kalligeros
- - Rudolf Ratusiński
- - Bertalan Attila
- - Arek Bochinski
- - Rafael Tovar
- - Amin Hosseini (aminh)
- - AmsTaFF (amstaff)
- - Simon Müller (boscho)
- - Yannick Bensacq (cibou)
- - Cyrille Bourgois (cyrilleb)
- - Damien Vauchel (damien_vauchel)
- - Dmitrii Fedorenko (dmifedorenko)
- - William Pinaud (docfx)
- - Frédéric G. Marand (fgm)
- - Freek Van der Herten (freekmurze)
- - Luca Genuzio (genuzio)
- - Ben Gamra Housseine (hbgamra)
- - Andrew Marcinkevičius (ifdattic)
- - Ioana Hazsda (ioana-hazsda)
- - Jan Marek (janmarek)
- - Mark de Haan (markdehaan)
- - Maxime Corteel (mcorteel)
- - Dan Patrick (mdpatrick)
- - Mathieu MARCHOIS (mmar)
- - Nei Rauni Santos (nrauni)
+ - Roman Orlov
+ - Stéphane Seng (stephaneseng)
+ - Stas Soroka (stasyan)
+ - Stephen Clouse
+ - Chris Tiearney
+ - vltrof
+ - Matt Emerson
+ - paullallier
+ - Martin Eckhardt
+ - G.R.Dalenoort
  - Geoffrey Monte (numerogeek)
- - Martijn Boers (plebian)
- - Plamen Mishev (pmishev)
- - Pedro Magalhães (pmmaga)
- - Rares Vlaseanu (raresvla)
- - Trevor N. Suarez (rican7)
- - Sergii Dolgushev (serhey)
- - Clément Bertillon (skigun)
- - Rein Baarsma (solidwebcode)
- - tante kinast (tante)
- - Stephen Lewis (tehanomalousone)
- - Ahmed HANNACHI (tiecoders)
- - Vincent LEFORT (vlefort)
- - Walid BOUGHDIRI (walidboughdiri)
- - Wim Molenberghs (wimm)
- - Darryl Hein (xmmedia)
- - Vladimir Sadicov (xtech)
- - Marcel Berteler
- - sdkawata
- - Frederik Schmitt
- - Peter van Dommelen
+ - Benjamin Schultz (bschultz)
+ - Karolis Daužickas (kdauzickas)
+ - Damien  Fayet (rainst0rm)
+ - Léo VINCENT
+ - Shrey Puranik
+ - Radosław Benkel
+ - CDR
+ - Janusz Mocek
+ - Fabien D. (fabd)
+ - Aleksandr Dankovtsev
+ - Valérian Lepeule (vlepeule)
+ - Sergii Dolgushev (sergii-swds)
+ - Konrad
+ - Aaron Scherer (aequasi)
+ - Clément
+ - Mohammad Ali Sarbanha (sarbanha)
+ - Sébastien Armand (khepin)
+ - Alexey Berezuev
+ - rewrit3
+ - Matthew Burns
+ - Ilya Chekalsky
+ - aim8604
  - Tim van Densen
- - Andrzej
+ - Jelte Steijaert (jelte)
+ - Andreas
+ - Monere
+ - Simon Sargeant
+ - pkowalczyk
+ - Sjors Ottjes
+ - Myke79
+ - Christoph Kappestein
+ - mboultoureau
+ - Bernd Matzner (bmatzner)
+ - Alex Niedre
+ - Adam Wójs (awojs)
+ - Ema Panz
+ - MARYNICH Mikhail (mmarynich-ext)
+ - shreyadenny
+ - Daniel Tschinder
+ - David Wolter (davewww)
+ - AnotherSymfonyUser (arderyp)
+ - Goran Juric
+ - Daniel González Zaballos (dem3trio)
+ - Alejandro Diaz Torres
+ - Aleksandar Dimitrov (netbull)
+ - Tom Newby (tomnewbyau)
+ - boulei_n
+ - Axel Venet
+ - Jean-Baptiste Nahan
+ - Ser5
+ - Filipe Guerra
+ - Denis Klementjev (dklementjev)
+ - Marcello Mönkemeyer (marcello-moenkemeyer)
+ - Jason Schilling (chapterjason)
+ - Alex Rothberg
+ - Dan Patrick (mdpatrick)
+ - Sortex
+ - Paul Le Corre
+ - Mei Gwilym (meigwilym)
+ - Dennis Jaschinski (d.jaschinski)
+ - alex
+ - enekochan (enekochan)
+ - muchafm
+ - Michael Tibben
+ - Andreas Hasenack
+ - Jan Vernarsky
+ - Javier Espinosa (javespi)
+ - Vladislav Krupenkin (ideea)
+ - Adam Kiss
+ - Matthias Derer
+ - Artyum Petrov
+ - Diego Aguiar (mollokhan)
+ - Asrorbek (asrorbek)
+ - Jochen Bayer (jocl)
+ - Vincent Chalamon
+ - Marcin Kruk
+ - Tom Houdmont
+ - Klaus Purer
+ - Nicolás Alonso
+ - gr8b
+ - Jorrit Schippers (jorrit)
+ - Jonathan Vollebregt
+ - Karim Cassam Chenaï (ka)
+ - Liverbool (liverbool)
+ - Markus Staab
+ - Aleksejs Kovalovs (aleksejs1)
+ - ivan
+ - RAHUL K JHA
+ - Alex Vasilchenko
+ - Steven Dubois
+ - Ramon Kleiss (akathos)
+ - Szymon Tarasiński
+ - Maxim Kolokolnikov
+ - Max Grigorian (maxakawizard)
+ - Igor Kokhlov (verdet)
+ - Ahto Türkson
+ - arduanov
+ - julien.galenski
+ - Brad Treloar
+ - Viktoriia Zolotova
+ - Michael Gwynne
+ - Kevin Auivinet
+ - Robert Queck
+ - Vincent
+ - Stefan Kruppa
+ - Benedict Massolle (bemas)
+ - Frederik Schwan
  - Alexander Zogheb
- - tomasz-kusy
- - Rémi Blaise
- - Nicolas Séverin
+ - samuel laulhau (lalop)
+ - Fleuv
+ - Thomas Baccelli (atomiix)
+ - Matthias Neid
+ - Amine Matmati
+ - Jannik Zschiesche
+ - Emirald Mateli
+ - Aarón Nieves Fernández
+ - Linnaea Von Lavia
+ - Anamarija Papić (anamarijapapic)
+ - Volker (skydiablo)
+ - Dmitri Petmanson
+ - Joao Paulo V Martins (jpjoao)
+ - fduch (fduch)
+ - Sjoerd Nuijten (sjoerdnuijten)
+ - PatrickRedStar
  - patrickmaynard
- - Houssem
- - Joel Marcey
- - zolikonta
- - Daniel Bartoníček
- - Michael Hüneburg
- - David Christmann
- - root
- - pf
- - Zoli Konta
- - Vincent Chalnot
- - Roeland Jago Douma
- - Patrizio Bekerle
- - Tom Maguire
- - Mateusz Lerczak
- - Tim Porter
+ - Frederic Godfrin
+ - Arkadiusz Rzadkowolski (flies)
+ - Ellie Schaffer
+ - bahram
+ - Arrilot
+ - jamogon
+ - Martin Auswöger
+ - Damian (baum)
+ - Ikko Ashimine
+ - Florent Olivaud
+ - Tyler Stroud
+ - ureimers
+ - Anthony Ferrara
+ - Marco Pfeiffer
+ - Valentin Barbu (jimie)
+ - gechetspr
+ - Hadrien Cren (hcren)
+ - Bertalan Attila
+ - Keri Henare (kerihenare)
+ - Dmitry (staratel)
+ - Nico Hiort af Ornäs
+ - Alexandr Samuilov
+ - Edwin Hageman
+ - Anton Zagorskii
+ - Jure (zamzung)
+ - Emmanuel Dreyfus
+ - Dominic Tubach
+ - Evgeny Anisiforov
+ - Artyom Protaskin
+ - Andras Debreczeni
+ - Jordi Rejas
+ - Josef Cech
+ - Klaas Cuvelier (kcuvelier)
+ - craigmarvelley
+ - Tournoud (damientournoud)
  - Richard Quadling
- - Will Rowe
- - Rainrider
- - David Zuelke
- - Adrian
- - Oliver Eglseder
- - neFAST
- - Peter Gribanov
- - zcodes
- - Pierre Rineau
- - Florian Morello
- - Maxim Lovchikov
- - adenkejawen
- - Florent SEVESTRE (aniki-taicho)
+ - Jose Manuel Gonzalez (jgonzalez)
+ - JustDylan23
+ - Sepehr Lajevardi
+ - Robert Meijers
+ - Mara Blaga
+ - Adrien Foulon
+ - Mert Simsek (mrtsmsk0)
  - Ari Pringle (apringle)
- - Dan Ordille (dordille)
- - Jan Eichhorn (exeu)
- - Georg Ringer (georgringer)
- - Grégory Pelletier (ip512)
- - Johan Wilfer (johanwilfer)
+ - Karolis
+ - Bogdan Scordaliu
+ - Pavel Golovin (pgolovin)
+ - Tony Arcangelini
  - John Nickell (jrnickell)
- - Martin Mayer (martin)
- - Grzegorz Łukaszewicz (newicz)
- - Nico Müller (nicomllr)
- - Omar Yepez (oyepez003)
- - Jonny Schmid (schmidjon)
- - Toby Griffiths (tog)
- - Ashura
- - Götz Gottwald
- - Alessandra Lai
- - timesince
- - alangvazq
- - Christoph Krapp
- - Ernest Hymel
- - Andrea Civita
- - Nicolás Alonso
- - Roman Tyshyk
- - LoginovIlya
- - andreyserdjuk
+ - Max Summe
+ - Bastien Picharles
+ - Paul Andrieux
+ - Karim Miladi
+ - Maxime AILLOUD (mailloud)
+ - Mark Ogilvie
+ - Julien Bianchi (jubianchi)
+ - Yendric
+ - bill moll
+ - Oleksii Svitiashchuk
+ - Rares Vlaseanu (raresvla)
+ - Alan Scott
+ - ivelin vasilev
+ - Anton Babenko (antonbabenko)
+ - Kevin Verschaeve (keversc)
+ - dlorek
+ - Philippe Degeeter (pdegeeter)
+ - j.schmitt
+ - Jan Pech (pechynho)
+ - Thomas Ferney (thomasf)
+ - toxxxa
+ - Chris Jones (leek)
+ - Bartłomiej Zając
+ - ShiraNai7
+ - Ben Oman
+ - Pavol Tuka
+ - Sven Fabricius
+ - Arkadiusz Kondas (itcraftsmanpl)
+ - JK Groupe
+ - Johannes
+ - Samy D (dinduks)
+ - Adam Klvač
+ - Danil
+ - Prasetyo Wicaksono (jowy)
+ - Boris Grishenko (arczinosek)
+ - Jeroen de Graaf
+ - Ettore Del Negro
+ - Wojciech Skorodecki
+ - Lance Chen
+ - Gunther Konig
+ - Pierre LEJEUNE (darkanakin41)
+ - Bogdan Rancichi (devck)
+ - Alex Olmos (alexolmos)
+ - ondrowan
+ - Max Voloshin (maxvoloshin)
+ - Sami Mussbach
+ - Tim Ward
+ - Romain Jacquart (romainjacquart)
+ - Timon van der Vorm
+ - EdgarPE
+ - Phobetor
+ - 蝦米
+ - gitlost
+ - Andrew Coulton
+ - Dominik Pesch (dombn)
+ - Henne Van Och (hennevo)
+ - Eric J. Duran
+ - ProgMiner
+ - Bart Reunes (metalarend)
+ - Kai Eichinger
+ - Rudy Onfroy
+ - Nicolas Roudaire
+ - Oleg Golovakhin (doc_tr)
+ - rkerner
+ - otsch
+ - Andreas Kleemann (andesk)
+ - tsilefy
+ - Falco Nogatz
+ - Alex Demchenko
+ - Pawel Szczepanek (pauluz)
+ - Jelle Kapitein
+ - bokonet
+ - Tristan Pouliquen
+ - Alexandre Jardin (alexandre.jardin)
+ - Charles-Henri Bruyand
+ - 🦅KoNekoD
+ - Steeve Titeca (stiteca)
+ - Johannes
+ - baron (bastien)
+ - Ondřej Führer
+ - Vedran Mihočinec (v-m-i)
+ - MrNicodemuz
+ - sabruss
+ - Dylan
+ - Nick Stemerdink
+ - Samy Mahmoudi
+ - Juan Mrad
+ - Dmytro Pigin (dotty)
+ - Viacheslav Sychov
+ - Jeffrey Moelands (jeffreymoelands)
+ - Grégoire Hébert (gregoirehebert)
+ - Mas Iting
+ - Greg Szczotka (greg606)
+ - alifanau
+ - Wojciech Błoszyk (wbloszyk)
+ - Sorin Pop (sorinpop)
+ - Richard Trebichavský
+ - George Dietrich
+ - Yury (daffox)
+ - Ruud Arentsen
+ - Jay Severson
+ - Krzysztof Pyrkosz
+ - Christian Kolb
+ - Houssem
+ - Kévin
+ - Nicolas Eeckeloo (neeckeloo)
+ - ju1ius
+ - ConneXNL
+ - Jules Matsounga (hyoa)
  - Nick Chiu
- - Thanh Trần
+ - Jonny Schmid (schmidjon)
+ - Manuele Menozzi
+ - Yann (yann_eugone)
+ - Martin Mandl (m2mtech)
+ - Eviljeks
+ - smokeybear87
+ - Michael van Tricht
+ - Masao Maeda (brtriver)
+ - Success Go
+ - Taylan Kasap
+ - Maciej Zgadzaj
+ - Stuart Fyfe
+ - Fraller Balázs (fracsi)
+ - Vincent Godé
+ - Raphael Davaillaud
+ - Soner Sayakci
+ - dima-gr
+ - Pieter
+ - Luis Galeas
+ - dbrekelmans
+ - Maxim Semkin
+ - Stefan Koopmanschap
+ - Pedro Magalhães (pmmaga)
+ - Yannick
+ - Julien Boudry
+ - ttomor
+ - David Barratt
+ - Benjamin Paap (benjaminpaap)
+ - Vitalii
+ - Dave Heineman (dheineman)
+ - linh
+ - Maxime PINEAU
+ - Rik van der Heijden
+ - Lukas Kaltenbach
+ - JakeFr
+ - Matthew Covey
  - Robert Campbell
- - Matt Lehner
- - carlos-ea
- - Olexandr Kalaidzhy
- - Helmut Januschka
- - Jérémy Benoist
- - Hein Zaw Htet™
+ - Jörn Lang
+ - Bermon Clément (chou666)
  - Ruben Kruiswijk
- - Cosmin-Romeo TANASE
- - Ferran Vidal
- - Michael J
- - sal-car
- - youssef saoubou
- - Joseph Maarek
- - Alexander Menk
- - Alex Pods
- - timaschew
- - Jelle Kapitein
- - Jochen Mandl
- - elattariyassine
- - Asrorbek Sultanov
- - Marin Nicolae
- - Gerrit Addiks
- - Buster Neece
- - Albert Prat
- - Alessandro Loffredo
- - Ian Phillips
- - Carlos Tasada
- - Remi Collet
- - Haritz
+ - Ilya Bulakh
+ - Giorgio Premi
+ - Marek Víger (freezy)
+ - Orban Florin (forban)
+ - John Doe (theboat)
+ - Ariful Alam
+ - david perez (davidpv)
+ - Christian Rishøj
+ - Yannick Warnier (ywarnier)
+ - Serhii Polishchuk (spolischook)
+ - Luciano Mammino (loige)
+ - Marco
+ - Gerard Berengue Llobera (bere)
+ - mlievertz
+ - Pablo Maria Martelletti (pmartelletti)
+ - Quentin Moreau (sheitak)
+ - Jeremy Benoist
+ - Bernhard Rusch
+ - Timothée BARRAY
+ - The Whole Life to Learn
+ - Andreas Allacher
+ - Jeroen Bouwmans
+ - Àlex Fiestas
+ - Rémy LESCALLIER
+ - creiner
+ - Haritz Iturbe (hizai)
+ - GuillaumeVerdon
+ - Wim Hendrikx
+ - Tim Porter
+ - Jonathan Poston
+ - Steve Marvell
+ - Erwin Houtsma
+ - Shamimul Alam
+ - aetxebeste
+ - root
+ - Alex Vo (votanlean)
+ - Daniele Orru&#039; (danydev)
+ - Marc Jauvin
+ - Simon Bouland (bouland)
+ - Chris
+ - Guillaume BRETOU (guiguiboy)
+ - Marion Hurteau (marionleherisson)
+ - RTUnreal
  - Matthieu Prat
+ - Peter Culka
+ - Bernat Llibre Martín (bernatllibre)
+ - Tugba Celebioglu
+ - SOEDJEDE Felix (fsoedjede)
+ - Jochen Mandl
+ - Urban Suppiger
+ - Frederik Schmitt
+ - g123456789l
+ - M.Mahdi Mahmoodian
+ - Jorge Martin (jorgemartind)
+ - Ondřej Frei
+ - Konstantin Chigakov
+ - Arrakis (arrakis)
+ - xdavidwu
+ - vladyslavstartsev
+ - Chihiro Adachi (chihiro-adachi)
+ - Antonio Peric-Mazar (antonioperic)
+ - Artem Lopata
+ - Marvin Petker
+ - Dmitriy Derepko
+ - Christopher Georg (sky-chris)
+ - peter
+ - Szymon Kamiński (szk)
+ - brian978
+ - Kevin Meijer
+ - Jan Emrich
+ - Ruud Seberechts
+ - Billy Scheufler
+ - Frank Jogeleit
+ - Matthias Perret (mp3000mp)
+ - Attila Bukor (r1pp3rj4ck)
+ - Conrad Kleinespel (conradk)
+ - abluchet
+ - Dennis Tobar
+ - Jan Marek (janmarek)
+ - Jeroen De Dauw (jeroendedauw)
+ - Irmantas Šiupšinskas (irmantas)
+ - Stewart Malik
+ - AnrDaemon
+ - Toro Hill
+ - Bastien Clément (bastienclement)
+ - Mark van Duijker
+ - Gabriel Solomon (gabrielsolomon)
+ - Maciej Paprocki (maciekpaprocki)
+ - Jonas Claes
+ - Guillermo Gisinger (t3chn0r)
+ - Lorenzo Adinolfi (loru88)
+ - Will Rowe
+ - Koray Zorluoglu
+ - Pchol
+ - Jontsa
+ - Zan Baldwin (zanderbaldwin)
  - Brieuc Thomas
- - zors1
- - Peter Simoncic
- - lerminou
+ - André Laugks
+ - Florian &quot;Ori&quot; Neveu (fnev-eu)
+ - Tristan Kretzer
+ - Alex Plekhanov
+ - Brian Graham (incognito)
+ - rchoquet
+ - David Lima
+ - Mephistofeles
+ - Malte Schlüter
+ - Helmer Aaviksoo
+ - Miloš Milutinović
+ - Roromix
+ - Jorge P. Hernandez Lalcebo
+ - Alexander Kurilo (kamazee)
+ - Julien Sanchez (sumbobyboys)
+ - es
+ - Giuseppe Arcuti
+ - Jan Pintr
  - Adam Bramley
- - Ahmad El-Bardan
- - mantulo
- - pdragun
- - Paul Le Corre
- - Noel Light-Hilary
- - Filipe Guerra
- - Jean Ragouin
- - Gerben Wijnja
- - Emre YILMAZ
- - Rowan Manning
- - qsz
- - Marcos Labad
- - Per Modin
- - David Windell
- - Frank Jogeleit
- - Ondřej Frei
- - Gabriel Birke
- - Derek Bonner
- - martijn
- - Jenne van der Meer
- - annesosensio
+ - Dušan Kasan (dudo1904)
+ - Thibaut Cholley
+ - Phil Davis
+ - developer-av
+ - Danijel Obradović
+ - Tomáš Ludvik
+ - Ian Phillips
+ - Petr Jaroš (petajaros)
+ - Yuriy Potemkin
+ - Pierre Tondereau
+ - Vincent Pabst
+ - Johannes
+ - Michael Dawart (mdawart)
+ - Citia (citia)
+ - Kevin EMO
+ - Dan Harper
+ - mindaugasvcs
  - NothingWeAre
- - Storkeus
- - goabonga
- - Vladislav Iurciuc
+ - Florian Heller
+ - Daniel Kolvik (dkvk)
+ - alireza
+ - Hein Zaw Htet™
+ - Pierre Geyer (ptheg)
+ - steveYeah
+ - Oliver Eglseder
+ - Kurt Thiemann
+ - avi123
+ - Marcel Pociot (mpociot)
+ - Ivan Tse
+ - Alexandre Melard
+ - Schuyler Jager (sjager)
+ - Artem Kolesnikov (tyomo4ka)
+ - Christian Schiffler
+ - Dariusz Czech
+ - David Ronchaud
+ - DcgRG
+ - Dmitrii Lozhkin
+ - Steve Preston
+ - Fred Cox
+ - Antoine Bellion (abellion)
+ - Raphaëll Roussel
+ - vdauchy
+ - Miłosz Guglas (miloszowi)
+ - Foxprodev
+ - Alexander Janssen (tnajanssen)
+ - Till Hörner
+ - Peter van Dommelen
+ - Mehrdad
+ - dsech
+ - Michael Hüneburg
+ - Igor Tarasov (polosatus)
+ - heccjj
+ - Joris Garonian (grifx)
+ - Ciaran McNulty (ciaranmcnulty)
+ - Kevin Mian Kraiker
+ - dinitrol
+ - andreyserdjuk
+ - Dmitrii Fedorenko (dmifedorenko)
+ - Igor Timoshenko (igor.timoshenko)
+ - tilaven
+ - Gunnar Lium (gunnarlium)
+ - Steve Hyde
+ - Ksaveras Šakys (xawiers)
+ - Pierre Tachoire
+ - Skorney
+ - Matthieu
+ - kaiwa
+ - Sebastian Schwarz
+ - Boris Betzholz
  - Alan Chen
- - Anton Zagorskii
- - ging-dev
- - Maerlyn
- - Robert Gurau
- - Even André Fiskvik
- - Agata
- - dakur
- - florian-michael-mast
- - tourze
- - Dario Guarracino
+ - Roman Igoshin (masterro)
+ - Vicky Hagemeister
+ - Damir Mitrović
+ - Jon Cave
+ - Kevin Vergauwen (innocenzo)
+ - Ahmed Abdou
+ - Marcus Stöhr
+ - Stephan Wentz (temp)
+ - Alfonso Fernández García
+ - Antoine Beyet
+ - Dariusz Ruminski
+ - demeritcowboy
+ - djama
+ - Matthew Donadio
+ - Konstantin Bogomolov
+ - Alain Flaus (halundra)
+ - Michel Krenz
+ - kernig
+ - Claus Due (namelesscoder)
+ - Adrien Gallou (agallou)
+ - Alberto Aldegheri
+ - NorthBlue333
+ - tatankat
+ - Gennadi Janzen
+ - adhamiamirhossein
+ - InbarAbraham
+ - Nicolas Valverde
+ - Rikijs Murgs
+ - Simone Ruggieri
+ - zolikonta
+ - Till Krüss
+ - Raphaël Davaillaud
+ - Tomanhez
+ - Shaun Simmons
+ - goohib
+ - Thomas Rothe
+ - Timothy Anido (xanido)
+ - Romeo
+ - ergiegonzaga
+ - pizzaminded
+ - Wojciech Sznapka
+ - Vladimir Sazhin
+ - Evgeny Z (meze)
+ - Ismail Asci (ismailasci)
+ - Rachid Hammaoui (makmaoui)
+ - Malte Wunsch (maltewunsch)
+ - Jitendra Adhikari (adhocore)
+ - chispita
+ - Philipp Strube
+ - Sylvain Fabre (sylvain-fabre-assoconnect)
+ - Patrick Daley (padrig)
+ - elattariyassine
+ - Norman Soetbeer
  - sam-bee
- - Vlad Dumitrache
- - wetternest
- - Erik van Wingerden
- - Valouleloup
- - Pathpat
- - Jaymin G
- - robmro27
- - Vallel Blanco
+ - urban
+ - sauliusnord
+ - Andreas Streichardt
+ - Hayk Zakaryan
+ - neodevcode
+ - nietonfir
+ - tpetry
+ - Angel Koilov (po_taka)
+ - Illia Sakovich
+ - Alan ZARLI
+ - Zayan Goripov
+ - Aleksey Prilipko
+ - Bálint Szekeres
+ - Benoit Leveque
+ - Matej Žilák (teo_sk)
  - Alexis MARQUIS
- - Ernesto Domato
- - Matheus Gontijo
- - Gerrit Drost
- - Linnaea Von Lavia
- - Andrew Brown
- - Javan Eskander
- - Lenar Lõhmus
- - Cristian Gonzalez
- - MusikAnimal
- - AlberT
- - hainey
- - Juan M Martínez
- - Gilles Gauthier
- - Benjamin Franzke
- - Pavinthan
- - Sylvain METAYER
- - ddebree
- - Gyula Szucs
- - Dmitriy
- - Tomas Liubinas
- - Ivo Valchev
- - Jan Hort
- - Klaas Naaijkens
- - Bojan
- - Rafał
+ - César Suárez (csuarez)
+ - Ali Sol
+ - Mantas Urnieža
+ - darkweak
+ - Götz Gottwald
+ - Kélian Bousquet (kells)
+ - AntoineDly
+ - Marin Nicolae
+ - Vitali Tsyrkin
+ - Christian Seel
+ - Armando
+ - Uladzimir Tsykun
+ - Oleg Sedinkin (akeylimepie)
+ - error56
+ - Daniel Konstantinov
+ - WoutervanderLoop.nl
+ - andreybolonin1989@gmail.com
+ - Cyril HERRERA
+ - fmarchalemisys
+ - Andrey Helldar
+ - Dan Brown
+ - Simon Paarlberg (blamh)
+ - kshida
+ - Andrew Zhilin (zhil)
+ - Julien ARBEY
+ - Grégoire Rabasse
+ - damaya
+ - mikocevar
+ - Jeremiah VALERIE
+ - Benoit Mallo
+ - Andrey Ryaguzov
+ - tante kinast (tante)
+ - Nicolae Serban
+ - Flohw
+ - Petar Marjanovic
+ - Konstantin Scheumann
+ - Wing
+ - Maxime THIRY
+ - Mihai Stancu
+ - stefan.r
+ - Mauro Foti (skler)
+ - Adamo Crespi (aerendir)
+ - LHommet Nicolas (nicolaslh)
+ - Wickex
+ - Vašek Purchart (vasek-purchart)
+ - cmfcmf
+ - Stelian Mocanita (stelian)
+ - Nicolas Jourdan (nicolasjc)
+ - Albert Bakker (babbert)
+ - Ryan Linnit
+ - Ángel Guzmán Maeso (shakaran)
+ - Wissame MEKHILEF
+ - Sjoerd Adema
+ - Rudolf Ratusiński
+ - Ovidiu Gabriel Gireada (ovidiugireada)
+ - Marcin Twardowski
+ - Penny Leach
+ - Antoine (antoinela_adveris)
+ - Şəhriyar İmanov (shehriyari)
+ - Alexander Varwijk
+ - Jordi Kroon
+ - Fabien Perroquin
+ - AbdElKader Bouadjadja
+ - Martin Komischke
+ - Thomas Counsell
  - Adria Lopez (adlpz)
- - Adrien Peyre (adpeyre)
- - Aaron Scherer (aequasi)
- - Alexandre Jardin (alexandre.jardin)
+ - Adiel Cristo (arcristo)
+ - Yura Uvarov (zim32)
+ - Nathanael d. Noblet
+ - Maxcastel
+ - Benoit Garret
+ - Kevin Weber
+ - Erwan Nader (ernadoo)
+ - Simon Jamain
+ - Dan Finnie
+ - Jan Hort
+ - Tom Corrigan (tomcorrigan)
+ - michael.kubovic
+ - Tomaz Ahlin
+ - Tom Kaminski
+ - Joe
+ - Nathanaël Martel (nathanaelmartel)
+ - Alexis MARQUIS
+ - Tarjei Huse (symfony_cloud)
+ - Andriy
+ - Marko Vušak
+ - Benjamin BOUDIER
+ - Daniel Basten (axhm3a)
+ - Bruno Baguette
+ - Mario Blažek (marioblazek)
+ - Ronny López (ronnylt)
+ - Marcos Labad
+ - Axel Venet
+ - Pablo Eliezer
+ - BrokenSourceCode
+ - Artiom
+ - Viktor Bajraktar (njutn95)
+ - Adam Prickett
+ - Makdessi Alex
+ - Dmitry Korotovsky
+ - Volodymyr Kupriienko (greeflas)
+ - Lucas Bustamante
+ - Constantine Shtompel
+ - Martin Schophaus (m_schophaus_adcada)
+ - William Pinaud (docfx)
+ - Peter van Dommelen
+ - Gennadi McKelvey (gennadigennadigennadi)
+ - Brian Debuire
+ - René Kerner
+ - Markus Staab
+ - Bart Wach
+ - sualko
+ - Muharrem Demirci (mdemirci)
+ - Rich Sage
+ - Stan Jansen (stanjan)
+ - Kovacs Nicolas
+ - Lachlan Arthur
+ - ElisDN
+ - Jiri Korenek
+ - Arend Hummeling
+ - ged15
+ - Jan Eichhorn (exeu)
+ - Daniel Mecke (daniel_mecke)
+ - Seyedramin Banihashemi (ramin)
+ - Pierre-Chanel Gauthier (kmecnin)
+ - Ilia Sergunin (maranqz)
+ - wivaku
+ - Andreas Allacher
+ - alefranz
+ - sal-car
+ - Aaron Somi
+ - Boris Medvedev
+ - Serhii Bondarenko
+ - Jordan Hoff
+ - Andoni Larzabal (andonilarz)
+ - Hugo Posnic
+ - Martijn Boers (plebian)
+ - Billie Thompson
+ - Peter Zwosta
+ - Tom Maguire
+ - Agustin Gomes
+ - Emmanuelpcg
+ - Wouter Diesveld
+ - Wahyu Kristianto (kristories)
+ - Ladislav Tánczos
+ - Ismo Vuorinen
+ - karstennilsen
+ - Nilmar Sanchez Muguercia
+ - Yohann Tilotti
+ - MGatner
+ - Waqas Ahmed
+ - VojtaB
+ - Floran Brutel (notFloran) (floran)
+ - Vasily Khayrulin (sirian)
+ - Ramon Cuñat
+ - Joachim Krempel (jkrempel)
+ - Marcus Jaschen
+ - Markkus Millend
+ - benkarrer-lab
+ - Dennis Smink (dsmink)
+ - Arvids Godjuks (psihius)
+ - Jörg Rühl
+ - Icode4Food (icode4food)
+ - nuncanada
+ - David Brooks
+ - Brandon Antonio Lorenzo
+ - Curtis (ccorliss)
+ - Paul Clegg (clegginabox)
+ - jack.shpartko
+ - Audain
+ - Neil Katin
+ - Rémi Blaise
  - Bart Brouwer (bartbrouwer)
- - baron (bastien)
- - Bastien Clément (bastienclement)
+ - Ahmed Abdulrahman
+ - Kirk Madera
+ - Bruno MATEU
+ - Brad Bayliss
+ - Stakovicz
+ - J Bruni
+ - Rutger Hertogh
+ - botbotbot
+ - Sait KURT
+ - Geoffrey Pécro (gpekz)
+ - insekticid
+ - alexpods
+ - Nouhail AL FIDI (alfidi)
+ - drublic
+ - adars
+ - znerol
+ - Pascal Woerde (pascalwoerde)
+ - none (nelexa)
+ - Paul Seiffert (seiffert)
+ - Juraj Surman
+ - calm329
+ - Anna Filina (afilina)
+ - Christophe Meneses (c77men)
+ - Antoine Leblanc
+ - Andrei Igna
+ - Daniel Iwaniec
+ - Pierre Rebeilleau (pierrereb)
+ - Julien Pauli
+ - Vladimir Belozyorov
+ - Tammy D
+ - Richard Heine
+ - Stephen Lewis (tehanomalousone)
+ - Denys Voronin (hurricane)
+ - Florent Cailhol
  - Rosio (ben-rosio)
- - Simon Paarlberg (blamh)
- - Masao Maeda (brtriver)
- - Alexander Dmitryuk (coden1)
- - Valery Maslov (coderberg)
- - Damien Harper (damien.harper)
- - Darius Leskauskas (darles)
- - david perez (davidpv)
- - David Joos (djoos)
- - Denis Klementjev (dklementjev)
- - Dominik Pesch (dombn)
- - Dominik Hajduk (dominikalp)
- - Tomáš Polívka (draczris)
- - Dennis Smink (dsmink)
- - Duncan de Boer (farmer-duck)
- - Franz Liedke (franzliedke)
- - Gaylord Poillon (gaylord_p)
- - gondo (gondo)
- - Joris Garonian (grifx)
- - Grummfy (grummfy)
- - Hadrien Cren (hcren)
- - Gusakov Nikita (hell0w0rd)
- - Halil Hakan Karabay (hhkrby)
- - Oz (import)
- - Jaap van Otterdijk (jaapio)
- - Javier Núñez Berrocoso (javiernuber)
- - Jelle Bekker (jbekker)
- - Giovanni Albero (johntree)
- - Jorge Martin (jorgemartind)
- - Joeri Verdeyen (jverdeyen)
- - Kevin Verschaeve (keversc)
- - Kevin Herrera (kherge)
+ - Nathaniel Catchpole
+ - Albert (aprat84)
+ - Ahmed Soliman (ahmedsoliman)
+ - Martynas Sudintas (martiis)
+ - inspiran
+ - Aryel Tupinamba (dfkimera)
+ - Elias Häußler
+ - Andrea Giannantonio
+ - Mateusz Żyła (plotkabytes)
+ - Christoph Vincent Schaefer (cvschaefer)
+ - Laurent Bardin
+ - Aaron Stephens (astephens)
+ - tamirvs
+ - Belhassen
+ - Arend Hummeling
+ - Siragusa (asiragusa)
+ - Anna Damm
+ - Mlanawo MBECHEZI
+ - dakur
+ - Joel Lusavuvu (enigma97)
+ - Paul LE CORRE
+ - Peter Bouwdewijn
+ - Jean-Christophe Cuvelier [Artack]
+ - AUDUL
+ - Keith Maika
  - Kubicki Kamil (kubik)
- - Luis Ramón López López (lrlopez)
- - Vladislav Nikolayev (luxemate)
- - Martin Mandl (m2mtech)
- - Mehdi Mabrouk (mehdidev)
- - Bart Reunes (metalarend)
- - Muriel (metalmumu)
- - Michael Pohlers (mick_the_big)
- - Misha Klomp (mishaklomp)
- - mlpo (mlpo)
- - Marcel Pociot (mpociot)
+ - Matheus Gontijo
+ - Matthias Meyer
+ - Sander Coolen (scoolen)
+ - Kevin Jansen
+ - Nicolas Fabre (nfabre)
+ - adnen chouibi
+ - Raul Garcia Canet (juagarc4)
+ - Bradley Zeggelaar
+ - Jakub Kisielewski
+ - fabi
+ - Safonov Nikita (ns3777k)
  - Mikhail Prosalov (mprosalov)
- - Ulrik Nielsen (mrbase)
+ - Mikkel Paulson
+ - Sobhan Sharifi (50bhan)
+ - Lucas Matte
+ - Radosław Kowalewski
+ - Thibaut Arnoud (thibautarnoud)
+ - Mdsujansarkar
+ - Thomas Dutrion (theocrite)
+ - Nicolas Séverin
+ - Marc J. Schmidt (marcjs)
+ - jdcook
+ - Mohamed Karnichi (amiral)
+ - Cas
+ - caalholm
+ - Samael tomas
+ - popnikos
+ - PabloKowalczyk
+ - Brandon Kelly (brandonkelly)
+ - VolCh
+ - Victor
+ - Uwe Kleinmann
+ - David Legatt (dlegatt)
+ - ddebree
  - Marek Šimeček (mssimi)
- - Dmitriy Tkachenko (neka)
- - Cayetano Soriano Gallego (neoshadybeat)
- - Artem (nexim)
- - Nicolas ASSING (nicolasassing)
- - Olivier Laviale (olvlvl)
- - Pierre Gasté (pierre_g)
- - Pablo Monterde Perez (plebs)
- - Pierre-Olivier Vares (povares)
- - Jimmy Leger (redpanda)
- - Ronny López (ronnylt)
- - Julius (sakalys)
- - Dmitry (staratel)
- - Marcin Szepczynski (szepczynski)
- - Tito Miguel Costa (titomiguelcosta)
- - Simone Di  Maulo (toretto460)
- - Cyrille Jouineau (tuxosaurus)
- - Lajos Veres (vlajos)
- - Vladimir Chernyshev (volch)
- - Wim Godden (wimg)
- - Yorkie Chadwick (yorkie76)
- - Zakaria AMMOURA (zakariaamm)
- - Maxime Aknin (3m1x4m)
- - Pavel Barton
- - Exploit.cz
- - GuillaumeVerdon
- - Dmitry Danilson
+ - Temuri Takalandze (abgeo)
+ - Sander Goossens (sandergo90)
+ - Guilain (guilain_sylapps)
+ - David Soms
+ - Marc Duboc (icemad)
+ - fbuchlak
+ - V1nicius00
+ - tomasz-kusy
+ - pf
+ - Pete Mitchell (peterjmit)
+ - Philipp Fritsche
+ - Albert Prat
+ - Dominik Piekarski (dompie)
+ - nuryagdy mustapayev (nueron)
+ - Walter Dal Mut (wdalmut)
+ - Harold Iedema
+ - djordy
+ - Ernesto Domato
+ - Michael Squires
  - Marien Fressinaud
- - ureimers
- - akimsko
- - Youpie
- - Jason Stephens
- - Korvin Szanto
- - wkania
- - srsbiz
- - Taylan Kasap
- - Michael Orlitzky
- - Nicolas A. Bérard-Nault
- - Quentin Favrie
- - Matthias Derer
- - Francois Martin
- - vladyslavstartsev
- - Saem Ghani
- - Kévin
- - Stefan Oderbolz
- - valmonzo
- - Tamás Szigeti
- - Gabriel Moreira
- - Alexey Popkov
- - ChS
- - toxxxa
- - michal
- - Jannik Zschiesche
- - Alexis MARQUIS
- - Joseph Deray
+ - Vincent MOULENE (vints24)
+ - Łukasz Chruściel (lchrusciel)
+ - kaywalker
+ - Alexandre Segura
+ - Craig Menning (cmenning)
+ - pborreli
+ - Philipp Kretzschmar
+ - Gerard
+ - Adam Katz
+ - Benny Born
+ - Romain Dorgueil
+ - andrey-tech
+ - Gyula Szucs
  - Damian Sromek
- - Ben
- - Evgeniy Tetenchuk
- - Sjoerd Adema
- - Shrey Puranik
- - Kai Eichinger
- - Evgeniy Koval
- - Lars Moelleken
- - dasmfm
- - Karel Syrový
- - Claas Augner
- - Mathias Geat
- - neodevcode
- - Angel Fernando Quiroz Campos (angelfqc)
- - Arnaud Buathier (arnapou)
- - Curtis (ccorliss)
- - chesteroni (chesteroni)
- - Mauricio Lopez (diaspar)
- - HADJEDJ Vincent (hadjedjvincent)
- - Daniele Cesarini (ijanki)
- - Ismail Asci (ismailasci)
- - Jeffrey Moelands (jeffreymoelands)
- - Jakub Caban (lustmored)
- - Ondřej Mirtes (mirtes)
- - Paulius Jarmalavičius (pjarmalavicius)
- - Ramon Ornelas (ramonornela)
- - Ricardo de Vries (ricardodevries)
- - Ruslan Zavacky (ruslanzavacky)
- - Stefano Cappellini (stefano_cappellini)
- - Thomas Dutrion (theocrite)
- - Till Klampaeckel (till)
- - Tobias Weinert (tweini)
- - Wotre
- - goohib
- - Tom Counsell
- - Sepehr Lajevardi
- - George Bateman
- - Xavier HAUSHERR
- - Edwin Hageman
- - Mantas Urnieža
- - temperatur
- - ToshY
- - Paul Andrieux
- - Sezil
- - misterx
- - Cas
- - arend
- - Vincent Godé
- - helmi
- - Michael Steininger
- - Nardberjean
- - Dylan
- - ghazy ben ahmed
- - Karolis
- - Myke79
- - jersoe
- - Brian Debuire
- - Eric Grimois
- - Christian Schiffler
- - Piers Warmers
- - Sylvain Lorinet
- - Pavol Tuka
- - klyk50
- - Colin Michoudet
- - jc
- - BenjaminBeck
- - Aurelijus Rožėnas
- - Beno!t POLASZEK
- - Armando
- - Jordan Hoff
- - znerol
- - Christian Eikermann
- - Sergei Shitikov
- - Steffen Keuper
- - Kai Eichinger
- - Antonio Angelino
- - Jens Schulze
- - Tema Yud
- - Matt Fields
- - Olatunbosun Egberinde
- - Johannes
- - Andras Debreczeni
- - Knallcharge
- - Vladimir Sazhin
+ - Guillaume Lajarige (molkobain)
+ - Ryan Rud
+ - Joeri Verdeyen (jverdeyen)
  - Michel Bardelmeijer
- - Tomas Kmieliauskas
- - Ikko Ashimine
- - Erwin Dirks
- - Markus Ramšak
- - Billie Thompson
- - Philipp
+ - Laurent G. (laurentg)
+ - fruty
  - lol768
- - jamogon
- - Tom Hart
- - Vyacheslav Slinko
- - Benjamin Laugueux
- - guangwu
- - Lane Shukhov
- - Jakub Chábek
- - William Pinaud (DocFX)
- - Johannes
- - Jörg Rühl
- - George Dietrich
- - jannick-holm
- - wesleyh
- - Menno Holtkamp
- - Ser5
+ - Junaid Farooq (junaidfarooq)
+ - Abdouni Karim (abdounikarim)
+ - Luis Pabon (luispabon)
+ - Grzegorz Łukaszewicz (newicz)
+ - Trevor N. Suarez (rican7)
+ - Julien Menth (cfjulien)
+ - Billie Thompson
+ - Thomas Bibb
+ - Pieter Jordaan
+ - Jérémie Broutier
+ - SenTisso
+ - Robert Korulczyk
+ - Markus Ramšak
+ - Dan Blows
+ - Haikiri
+ - Christian Weiske
+ - Claudiu Cristea
+ - Alexandre GESLIN
+ - Tomas Javaisis
+ - Johan de Ruijter
+ - Bart Ruysseveldt
+ - Balázs Benyó (duplabe)
+ - Filippos Karailanidis
+ - Abdouarrahmane FOUAD (fabdouarrahmane)
+ - Sebastian Landwehr (dword123)
+ - Rafał Muszyński (rafmus90)
+ - Ben Johnson
+ - Dario Guarracino
+ - Camille Dejoye (cdejoye)
+ - Fabian Kropfhamer (fabiank)
+ - den den (dionisvl3)
+ - Sander van der Vlugt (stranding)
+ - Sergio Santoro
+ - Ashura
+ - Mathieu Ledru (matyo91)
+ - Valérian Galliat
+ - Reece Fowell (reecefowell)
+ - Jérémy (libertjeremy)
+ - John Espiritu (johnillo)
+ - Abdelilah Jabri
+ - Julien Manganne (juuuuuu)
+ - Javier Núñez Berrocoso (javiernuber)
+ - Ralf Kühnel (ralfkuehnel)
+ - Berat Doğan
+ - Ricardo de Vries (ricardodevries)
+ - Mati Kochen (mtk)
+ - Peter Potrowl
+ - Oussama Elgoumri
+ - Juan Traverso
+ - Mike Gladysch
+ - Rafael Villa Verde
+ - dropfen
+ - Marcin Chwedziak
+ - Gert de Pagter
+ - František Maša
+ - Thibault G
+ - Povilas S. (povilas)
+ - Gordienko Vladislav
+ - Amirreza Shafaat (amirrezashafaat)
+ - Michal Kurzeja (mkurzeja)
+ - Pierre Gasté (pierre_g)
+ - HMAZonderland
+ - Thanos Polymeneas (thanos)
  - Michael Hudson-Doyle
- - Matthew Burns
- - Daniel Bannert
- - Karim Miladi
- - Michael Genereux
- - Greg Korba
- - Camille Islasse
- - patrick-mcdougle
- - Tyler Stroud
- - Dariusz Czech
- - Clemens Krack
- - Bruno Baguette
- - Jack Wright
- - MrNicodemuz
- - Anonymous User
- - demeritcowboy
- - Paweł Tomulik
- - Eric J. Duran
- - Blackfelix
- - Pavel Witassek
- - Alexandru Bucur
- - Alexis Lefebvre
- - cmfcmf
- - sarah-eit
- - Michal Forbak
- - CarolienBEER
- - Drew Butler
- - Alexey Berezuev
- - pawel-lewtak
- - Pierrick Charron
- - Steve Müller
- - omerida
- - Andras Ratz
- - andreabreu98
- - Marcus
- - gechetspr
- - brian978
- - Michael Schneider
- - n-aleha
- - Richard Čepas
- - Talha Zekeriya Durmuş
- - Anatol Belski
- - Javier
+ - Hryhorii Hrebiniuk
+ - Jérémy Jourdin (jjk801)
+ - akimsko
+ - Vladimir Pakhomchik
  - Alexis BOYER
- - bch36
- - Kaipi Yann
- - wiseguy1394
- - adam-mospan
- - AUDUL
- - Steve Hyde
- - AbdelatifAitBara
- - nerdgod
- - Sam Williams
- - Ettore Del Negro
- - Guillaume Aveline
- - Adrian Philipp
- - James Michael DuPont
- - Simone Ruggieri
- - Markus Tacker
- - Tomáš Votruba
- - Kasperki
- - dima-gr
- - Daniel Strøm
- - Tammy D
- - Rodolfo Ruiz
- - tsilefy
+ - Alexander Menk
+ - tsufeki
+ - RevZer0 (rav)
+ - Andreas Frömer
+ - joris de wit (jdewit)
+ - Andrejs Leonovs
+ - Sander Hagen
+ - Marc Torres
+ - Jean Ragouin
+ - Till Klampaeckel (till)
+ - Jan Christoph Beyer
+ - Jenne van der Meer
+ - carlos-ea
+ - Muhammad Elhwawshy
+ - twifty
+ - AlberT
+ - MatTheCat
+ - anna-lena.waltinger
+ - rogamoore
+ - Maxime Corteel (mcorteel)
  - Enrico
- - Adrien Foulon
- - Sylvain Just
- - Ryan Rud
- - Ondrej Slinták
- - Jérémie Broutier
- - vlechemin
- - Brian Corrigan
- - Ladislav Tánczos
- - Brian Freytag
- - Skorney
- - Lucas Matte
- - Success Go
- - fmarchalemisys
- - MGatner
- - mieszko4
- - Steve Preston
- - ibasaw
- - Wojciech Skorodecki
- - Kevin Frantz
+ - andreabreu98
+ - Richard Hodgson
+ - Leonid Terentyev
+ - Alexey Vlasov
+ - David Grüner (vworldat)
+ - Egor Gorbachev
+ - David Gorges (davidgorges)
+ - Sergey Fedotov
+ - Vincent Bouzeran
+ - Mynyx
+ - Jan Vernarsky
+ - Stefan Oderbolz
+ - Mikko Pesari
+ - Zakaria AMMOURA (zakariaamm)
+ - e-ivanov
+ - Clément LEFEBVRE (nemoneph)
+ - Houziaux mike
+ - Eduardo Conceição
+ - Oscar Esteve (oesteve)
+ - Max Beutel
+ - Gavin Staniforth
+ - Matt Drollette (mdrollette)
  - Neophy7e
- - Evert Jan Hakvoort
- - bokonet
- - Arrilot
- - andrey-tech
- - David Ronchaud
- - Chris McGehee
- - Shaun Simmons
- - Pierre-Louis LAUNAY
- - Arseny Razin
+ - David Otton
  - A. Pauly
- - djama
- - Benjamin Rosenberger
- - Vladyslav Startsev
- - Michael Gwynne
- - Eduardo Conceição
- - changmin.keum
- - Jon Cave
- - Sébastien HOUZE
- - Abdulkadir N. A.
- - Markus Klein
- - Adam Klvač
- - Bruno Nogueira Nascimento Wowk
- - Tomanhez
- - satalaondrej
- - Matthias Dötsch
- - jonmldr
- - Yevgen Kovalienia
- - Lebnik
+ - Benjamin Pick
+ - Gordienko Vladislav
+ - Juan Miguel Besada Vidal (soutlink)
+ - Simon Neidhold
+ - Lars Moelleken
+ - Sean Templeton
+ - mrossard
+ - Steffen Keuper
+ - Walid BOUGHDIRI (walidboughdiri)
+ - tadas
+ - Jeremy David (jeremy.david)
+ - Eduard Morcinek
+ - Marcus
+ - Nikita Sklyarov
+ - Georg Ringer (georgringer)
+ - Maxime  P
+ - Vladislav Iurciuc
+ - Andrea Giuliano (shark)
+ - Andrew Tch
+ - Mickael Perraud
+ - ddegentesh
+ - Geoff
  - Shude
- - RTUnreal
- - Richard Hodgson
- - Sven Fabricius
- - Antonio Mansilla
- - Ondřej Führer
- - Bogdan
- - Sema
- - Ayke Halder
- - Thorsten Hallwas
- - Brian Freytag
- - Arend Hummeling
- - Joseph FRANCLIN
- - Marco Pfeiffer
+ - Dawid Sajdak
+ - Luis Muñoz
+ - Kévin Gomez (kevin)
  - Alex Nostadt
- - Michael Squires
- - Egor Gorbachev
+ - Robert Kopera
+ - Verlhac Gaëtan (viviengaetan)
+ - szymek
+ - Dennis Haarbrink
+ - rvoisin
+ - MightyBranch
+ - Michael
+ - Sander Marechal
+ - Alexander Pasichnik (alex_brizzz)
+ - Kamil Szalewski (szal1k)
+ - Jakub Janata (janatjak)
+ - Mehdi Achour (machour)
+ - Andrey Chernykh
+ - Kérian MONTES-MORIN (kerianmm)
+ - Alessandra Lai
+ - Hugo Fonseca (fonsecas72)
  - Julian Krzefski
- - Derek Stephen McLean
- - Norman Soetbeer
- - zorn
- - Yuriy Potemkin
- - Emilie Lorenzo
- - prudhomme victor
- - enomotodev
- - Vincent
- - Benjamin Long
- - Fabio Panaccione
- - Kévin Gonella
- - Ben Miller
- - Peter Gribanov
- - Matteo Galli
- - Bart Ruysseveldt
- - Ash014
- - Loenix
- - kwiateusz
- - Ilya Bulakh
+ - Gabi Udrescu
+ - Gerd Christian Kunze (derdu)
+ - Ross Tuck
+ - BenjaminBeck
+ - Andrew Marcinkevičius (ifdattic)
+ - n-aleha
+ - tuqqu
+ - Mikkel Paulson
+ - Valery Maslov (coderberg)
+ - Courcier Marvin (helyakin)
+ - Ulugbek Miniyarov
  - David Soria Parra
- - Simon Frost
- - Sergiy Sokolenko
- - Cantepie
- - detinkin
- - Ahmed Abdulrahman
- - dinitrol
- - Penny Leach
- - Kevin Mian Kraiker
- - Yurii K
- - Richard Trebichavský
- - Rich Sage
- - g123456789l
- - Mark Ogilvie
- - Jonathan Vollebregt
- - oscartv
- - DanSync
- - Peter Zwosta
- - Michal Čihař
- - parhs
- - Harry Wiseman
- - Emilien Escalle
- - jwaguet
- - Diego Campoy
- - Oncle Tom
- - Roland Franssen :)
- - Sam Anthony
+ - ghazy ben ahmed
+ - Damien Harper (damien.harper)
+ - pritasil
+ - Kevin Dew
+ - m.chwedziak
+ - SALMERON Valentin (vasal)
+ - Clement Herreman (clemherreman)
+ - Rowan Manning
+ - dantleech
+ - Wouter Ras
+ - Jesper Noordsij
+ - Jakub Sacha
+ - Ashura
+ - Igor Plantaš
+ - 2manypeople
+ - Tobias Feijten (tobias93)
+ - Jacek Kobus (jackks)
+ - Marcos Quesada (marcos_quesada)
+ - Alexey Popkov
+ - Giovanni Albero (johntree)
+ - Emre Akinci (emre)
+ - André Laugks
+ - upchuk
+ - Thibaut Salanon
+ - GK-302
+ - GagnarTest (gagnartest)
+ - stloyd
+ - Ian Carroll
+ - Jaap van Otterdijk (jaapio)
+ - Iwan van Staveren (istaveren)
+ - Cas van Dongen
+ - Benjamin RICHARD
+ - Nei Rauni Santos (nrauni)
+ - Steve Frécinaux
+ - Ener-Getick
  - Christian Stocker
- - Oussama Elgoumri
- - Gert de Pagter
- - David Lima
- - Steve Marvell
- - Dawid Nowak
- - Lesnykh Ilia
- - Shyim
- - sabruss
- - darnel
- - Nicolas
- - Sergio Santoro
- - tirnanog06
- - Andrejs Leonovs
- - llupa
- - Alfonso Fernández García
- - phc
- - Дмитрий Пацура
- - Signor Pedro
- - RFreij
- - Matthias Larisch
- - Maxime  P
- - Sean Templeton
- - Willem Mouwen
- - db306
- - Bohdan Pliachenko
- - Dr. Gianluigi &quot;Zane&quot; Zanettini
- - Michaël VEROUX
- - Julia
- - Lin Lu
- - arduanov
- - sualko
- - Marc Bennewitz
- - Fabien
- - Martin Komischke
- - Yendric
- - ADmad
- - Hugo Posnic
- - Nicolas Roudaire
- - Marc Jauvin
- - Matthias Meyer
- - Abdouni Karim (abdounikarim)
- - Temuri Takalandze (abgeo)
- - Bernard van der Esch (adeptofvoltron)
- - Andreas Forsblom (aforsblo)
- - Aleksejs Kovalovs (aleksejs1)
- - Alex Olmos (alexolmos)
- - Cedric BERTOLINI (alsciende)
- - Robin Kanters (anddarerobin)
- - Antoine (antoinela_adveris)
- - Juan Ases García (ases)
- - Siragusa (asiragusa)
- - Daniel Basten (axhm3a)
- - Albert Bakker (babbert)
- - Benedict Massolle (bemas)
- - Gerard Berengue Llobera (bere)
- - Ronny (big-r)
- - Bernd Matzner (bmatzner)
- - Vladimir Vasilev (bobahvas)
- - Anton (bonio)
- - Bram Tweedegolf (bram_tweedegolf)
- - Brandon Kelly (brandonkelly)
- - Choong Wei Tjeng (choonge)
- - Bermon Clément (chou666)
- - Citia (citia)
- - Kousuke Ebihara (co3k)
- - Loïc Vernet (coil)
- - Christoph Vincent Schaefer (cvschaefer)
- - Kamil Piwowarski (cyklista)
- - Damon Jones (damon__jones)
- - David Courtey (david-crty)
- - David Gorges (davidgorges)
- - Alexandre Fiocre (demos77)
- - Łukasz Giza (destroyer)
- - Daniel Londero (dlondero)
- - Dušan Kasan (dudo1904)
- - Sebastian Landwehr (dword123)
- - Adel ELHAIBA (eadel)
- - Damián Nohales (eagleoneraptor)
- - Elliot Anderson (elliot)
- - Erwan Nader (ernadoo)
- - Fabien D. (fabd)
- - Carsten Eilers (fnc)
- - Sorin Gitlan (forapathy)
- - Fraller Balázs (fracsi)
- - Lesueurs Frédéric (fredlesueurs)
- - Yohan Giarelli (frequence-web)
- - Gerry Vandermaesen (gerryvdm)
- - Arash Tabrizian (ghost098)
- - Greg Szczotka (greg606)
- - Ian Littman (iansltx)
+ - Mykola Zyk
+ - Julius Beckmann (h4cc)
+ - mantulo
+ - Dalibor Karlović
+ - adam-mospan
+ - GurvanVgx
+ - Hans Höchtl (hhoechtl)
+ - fh-github@fholzhauer.de
+ - Simone Fumagalli (hpatoio)
+ - Freek Van der Herten (freekmurze)
+ - Andrea Ruggiero (pupax)
+ - valmonzo
+ - George Giannoulopoulos
+ - Erika Heidi Reinaldo (erikaheidi)
+ - Muhammad Aakash
+ - Markus
+ - omniError
+ - EXT - THERAGE Kevin
+ - Javier Ledezma
+ - Przemysław Piechota (kibao)
+ - Flo Gleixner (redflo)
+ - Alessio Baglio (ioalessio)
+ - Michael Thieulin
+ - wesleyh
+ - florian-michael-mast
+ - Chris McGehee
+ - Frank Neff (fneff)
+ - pawel-lewtak
+ - Piet Steinhart
+ - Christopher Parotat
+ - Arman
+ - Benjamin Laugueux
+ - Žan V. Dragan
+ - Jānis Lukss
+ - Vladimir Mantulo (mantulo)
+ - Javan Eskander
+ - Vincent Chalnot
+ - Pablo Borowicz
+ - Emilie Lorenzo
+ - Samuel Gordalina (gordalina)
+ - Mike Milano (mmilano)
+ - Ganesh Chandrasekaran (gxc4795)
+ - Dan Ionut Dumitriu (danionut90)
+ - Vladimir Sadicov (xtech)
+ - Julius (sakalys)
+ - skalpa
+ - Diego Sapriza
+ - klemens
+ - Daniel Bartoníček
+ - Andrew (drew)
+ - Abdelhakim ABOULHAJ
+ - Robert Meijers
+ - agaktr
+ - Muhammed Akbulut
+ - Brooks Boyd
+ - Hallison Boaventura (hallisonboaventura)
+ - joris
+ - Matthias Bilger
  - Nathan DIdier (icz)
- - Vladislav Krupenkin (ideea)
- - Peter Orosz (ill_logical)
+ - eRIZ
+ - David de Boer (ddeboer)
+ - youssef saoubou
+ - Lesueurs Frédéric (fredlesueurs)
+ - Vincent Vermeulen
+ - Mathieu MARCHOIS (mmar)
+ - Matteo Giachino (matteosister)
+ - ChS
+ - Pavel.Batanov
+ - Ken Marfilla (marfillaster)
+ - zorn
+ - Ismail Turan
+ - Julien Moulin (lizjulien)
+ - André Filipe Gonçalves Neves (seven)
+ - MusikAnimal
+ - Albin Kerouaton
+ - Iliya Miroslavov Iliev (i.miroslavov)
+ - Signor Pedro
+ - Raphaël Droz
  - Ilia Lazarev (ilzrv)
- - Imangazaliev Muhammad (imangazaliev)
- - wesign (inscrutable01)
- - Arkadiusz Kondas (itcraftsmanpl)
- - j0k (j0k)
- - joris de wit (jdewit)
- - JG (jege)
- - Jérémy CROMBEZ (jeremy)
- - Jose Manuel Gonzalez (jgonzalez)
- - Joachim Krempel (jkrempel)
- - Jorge Maiden (jorgemaiden)
- - Joshua Behrens (joshuabehrens)
- - Joao Paulo V Martins (jpjoao)
- - Justin Rainbow (jrainbow)
- - Juan Luis (juanlugb)
- - JuntaTom (juntatom)
- - Julien Manganne (juuuuuu)
- - Ismail Faizi (kanafghan)
- - Karolis Daužickas (kdauzickas)
- - Kérian MONTES-MORIN (kerianmm)
- - Sébastien Armand (khepin)
- - Pierre-Chanel Gauthier (kmecnin)
- - Krzysztof Menżyk (krymen)
- - Kenjy Thiébault (kthiebault)
- - samuel laulhau (lalop)
- - Laurent Bachelier (laurentb)
- - Luís Cobucci (lcobucci)
- - Jérémy (libertjeremy)
- - Mehdi Achour (machour)
- - Mamikon Arakelyan (mamikon)
- - Mark Schmale (masch)
- - Matt Ketmo (mattketmo)
+ - Peter Gribanov
+ - Tito Costa
+ - Alex Teterin (errogaht)
+ - Pierre Grimaud (pgrimaud)
+ - Stefan Hüsges (tronsha)
+ - Quentin Favrie
+ - Patricia
+ - Sergei Gorjunov
  - Moritz Borgmann (mborgmann)
- - Matt Drollette (mdrollette)
- - Adam Monsen (meonkeys)
- - Mike Milano (mmilano)
- - Guillaume Lajarige (molkobain)
- - Diego Aguiar (mollokhan)
- - Steffen Persch (n3o77)
- - Ala Eddine Khefifi (nayzo)
- - emilienbouard (neime)
- - Nicholas Byfleet (nickbyfleet)
- - Nicolas Bondoux (nsbx)
- - Cedric Kastner (nurtext)
- - ollie harridge (ollietb)
- - Aurimas Rimkus (patrikas)
- - Pawel Szczepanek (pauluz)
- - Philippe Degeeter (pdegeeter)
- - PLAZANET Pierre (pedrotroller)
- - Christian López Espínola (penyaskito)
- - Petr Jaroš (petajaros)
- - Pavel Golovin (pgolovin)
- - Philipp Hoffmann (philipphoffmann)
- - Alex Carol (picard89)
- - Daniel Perez Pinazo (pitiflautico)
- - Igor Tarasov (polosatus)
- - Maksym Pustynnikov (pustynnikov)
- - Ralf Kühnel (ralfkuehnel)
- - Seyedramin Banihashemi (ramin)
- - Ramazan APAYDIN (rapaydin)
- - Babichev Maxim (rez1dent3)
- - scourgen hung (scourgen)
- - Sebastian Busch (sebu)
- - Sergey Stavichenko (sergey_stavichenko)
- - André Filipe Gonçalves Neves (seven)
- - Bruno Ziegler (sfcoder)
- - Ángel Guzmán Maeso (shakaran)
- - Andrea Giuliano (shark)
- - Şəhriyar İmanov (shehriyari)
- - Thomas Baumgartner (shoplifter)
- - Schuyler Jager (sjager)
- - Christopher Georg (sky-chris)
- - Volker (skydiablo)
- - Julien Sanchez (sumbobyboys)
- - Ron Gähler (t-ronx)
- - Guillermo Gisinger (t3chn0r)
- - Tomáš Korec (tomkorec)
- - Tom Newby (tomnewbyau)
- - Andrew Clark (tqt_andrew_clark)
- - Aaron Piotrowski (trowski)
- - David Lumaye (tux1124)
- - Roman Tymoshyk (tymoshyk)
- - Moritz Kraft (userfriendly)
- - Víctor Mateo (victormateo)
- - Vincent MOULENE (vints24)
- - Verlhac Gaëtan (viviengaetan)
- - David Grüner (vworldat)
- - Eugene Babushkin (warl)
- - Wouter Sioen (wouter_sioen)
- - Xavier Amado (xamado)
- - Jesper Søndergaard Pedersen (zerrvox)
- - Florent Cailhol
- - szymek
- - Ryan Linnit
- - Konrad
- - Kovacs Nicolas
- - eminjk
- - craigmarvelley
- - Stano Turza
- - Antoine Leblanc
- - drublic
- - Andre Johnson
- - MaPePeR
- - Andreas Streichardt
- - Alexandre Segura
- - Marco Pfeiffer
  - Vivien
- - Pascal Hofmann
- - david-binda
- - smokeybear87
- - Gustavo Adrian
- - damaya
- - Kevin Weber
+ - Claas Augner
+ - Ferran Vidal
+ - Pierre-Olivier Vares (povares)
+ - Gilbertsoft
+ - Amine Yakoubi
+ - Antanas Arvasevicius
+ - Ha Phan (haphan)
+ - Lesnykh Ilia
+ - Cedric Kastner (nurtext)
+ - jean pasqualini (darkilliant)
+ - Taras Girnyk
+ - Jeremiah VALERIE
+ - Eddy
+ - Alexander Onatskiy
+ - efeen
+ - timaschew
+ - Andrea Civita
+ - Michael Steininger
+ - Renato Mendes Figueiredo
+ - Kévin Gonella
+ - Frank Dekker
+ - SAY-5
  - Alexandru Năstase
- - Carl Julian Sauter
- - Dionysis Arvanitis
- - Sergey Fedotov
- - Konstantin Scheumann
- - Josef Hlavatý
- - Michael
- - fh-github@fholzhauer.de
- - rogamoore
- - AbdElKader Bouadjadja
- - ddegentesh
- - DSeemiller
- - Jan Emrich
- - Anne-Julia Seitz
- - mindaugasvcs
- - Mark Topper
- - Romain
- - Xavier REN
- - Kevin Meijer
- - max
- - Alexander Bauer (abauer)
- - Ahmad Mayahi (ahmadmayahi)
- - Mohamed Karnichi (amiral)
- - Andrew Carter (andrewcarteruk)
- - Adam Elsodaney (archfizz)
- - Gregório Bonfante Borba (bonfante)
- - Bogdan Rancichi (devck)
- - Daniel Kolvik (dkvk)
- - Marc Lemay (flug)
- - Gabriel Solomon (gabrielsolomon)
- - Courcier Marvin (helyakin)
- - Henne Van Och (hennevo)
- - Jeroen De Dauw (jeroendedauw)
- - Muharrem Demirci (mdemirci)
- - Evgeny Z (meze)
- - Aleksandar Dimitrov (netbull)
- - Pierre-Henry Soria 🌴 (pierrehenry)
- - Pierre Geyer (ptheg)
- - Richard Henkenjohann (richardhj)
- - Thomas BERTRAND (sevrahk)
+ - Michael Telgmann
+ - Bram Tweedegolf (bram_tweedegolf)
+ - Carlos Ortega Huetos
+ - ADmad
+ - Steffen Persch (n3o77)
+ - Rafał
  - Vladislav (simpson)
- - Marin Bînzari (spartakusmd)
- - Stefanos Psarras (stefanos)
- - Matej Žilák (teo_sk)
- - Gary Houbre (thegarious)
- - Vladislav Vlastovskiy (vlastv)
- - RENAUDIN Xavier (xorrox)
- - Yannick Vanhaeren (yvh)
- - Zan Baldwin (zanderbaldwin)
+ - Vyacheslav Slinko
+ - Benjamin Dos Santos
+ - temperatur
+ - Edvinas Klovas
+ - Remi Collet
+ - Ash014
+ - Sam Ward
+ - qsz
+ - luffy1727
+ - Aurélien MARTIN
+ - Ben Gamra Housseine (hbgamra)
+ - Tim Strehle
+ - Rémi Faivre (rfv)
+ - Derek Bonner
+ - Claude Dioudonnat
+ - Tobias Genberg (lorceroth)
+ - Giuseppe Petraroli (gpetraroli)
+ - withbest
+ - changmin.keum
+ - Bizley
+ - Konrad Mohrfeldt
+ - Pascal Hofmann
+ - parhs
+ - Alan Bondarchuk
+ - Philip Frank
+ - AlbinoDrought
+ - Zoran Makrevski (zmakrevski)
+ - Oriol Mangas Abellan (oriolman)
+ - Harald Tollefsen
+ - Maks Rafalko (bornfree)
+ - Oliver Klee
+ - Peter Jaap Blaakmeer
+ - Monet Emilien
+ - MaPePeR
diff -Nru symfony-6.4.21+dfsg/debian/changelog symfony-6.4.40+dfsg/debian/changelog
--- symfony-6.4.21+dfsg/debian/changelog	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/changelog	2026-05-22 01:06:27.000000000 +0200
@@ -1,3 +1,41 @@
+symfony (6.4.40+dfsg-0+deb13u1) trixie-security; urgency=medium
+
+  [ Fabien Potencier ]
+  * Update VERSION for 6.4.40
+
+  [ Nicolas Grekas ]
+  * [HtmlSanitizer] Reject BiDi override characters and percent-encode spaces
+    in URLs [CVE-2026-45064]
+  * [MonologBridge] Bind server:log to localhost by default [CVE-2026-45077]
+  * [Yaml] Bound recursion depth in the parser [CVE-2026-45133]
+  * [TwigBridge] Fix XSS issue in CodeExtension::fileExcerpt() [CVE-2026-45072]
+  * [Cache] Validate the prefix given to AbstractAdapter::clear()
+    [CVE-2026-45073]
+  * [Yaml] Bound collection-alias resolution in the parser [CVE-2026-45304]
+  * [Yaml] Harden the Parser::cleanup() regexes against catastrophic
+    backtracking [CVE-2026-45305]
+  * [Runtime] Fix CVE-2024-50340 patch bypass by gating argv on
+    $_SERVER['QUERY_STRING'] [CVE-2026-46626]
+
+  [ Alexandre Daubois ]
+  * [Routing] Fix regex alternation anchoring in UrlGenerator requirement
+    validation [CVE-2026-45065]
+  * [DomCrawler] Fix XXE in addXmlContent() by not enabling `validateOnParse`
+    [CVE-2026-45071]
+  * [HtmlSanitizer] Fix allowLinkHosts/allowMediaHosts bypass via URL parser
+    differentials and <area> misclassification [CVE-2026-45066]
+  * [Security] Add missing claims in `OidcTokenHandler` [CVE-2026-45069]
+  * [Security] Anchor emailAddress regex to RDN boundary in X509Authenticator
+    [CVE-2026-45063]
+  * [Mime] Reject email addresses containing line breaks in Address
+    [CVE-2026-45067]
+  * [Mailer] Add end-of-options separator before recipients in
+    SendmailTransport; reject addresses starting with a dash [CVE-2026-45068]
+  * [Mailer][Mailjet] Reject webhooks with missing or invalid Basic credentials
+    [CVE-2026-45754]
+
+ -- David Prévot <taffit@debian.org>  Fri, 22 May 2026 01:06:27 +0200
+
 symfony (6.4.21+dfsg-2+deb13u1) trixie; urgency=medium
 
   * Backport security fix from Symfony 6.4.29:
diff -Nru symfony-6.4.21+dfsg/debian/licensing/image-checksums.dcf symfony-6.4.40+dfsg/debian/licensing/image-checksums.dcf
--- symfony-6.4.21+dfsg/debian/licensing/image-checksums.dcf	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/licensing/image-checksums.dcf	2026-05-22 01:06:27.000000000 +0200
@@ -188,7 +188,7 @@
  0a143b4a17f49fc9fdb79e353e75e0da646a57b5c96a908db446ee0296304d12 but in a
  different file format and size.
 
-Checksum-Sha256: 3d0e89db62f6de90627a6ab583dcb4c2f64e2feed19979de4cb9ee09174cd4b2
+Checksum-Sha256: 708cbb55fe9e082e6f3b1835766593ffb016f324235f99d559e994dfebe0e239
 Files: src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php
 License: Expat
 FirstAppearance: https://github.com/symfony/symfony/commit/1fe82fa49b73fec4257c26c3c5f414ad5d44d84c#diff-7874dd6345a156ac553cc4ea25038855R479
@@ -212,7 +212,7 @@
 FirstAppearance: https://github.com/symfony/symfony/commit/e223f8e7982900b90a077f421d2f10162b058933#diff-6b7073c6168976b93223d23d98a87b4923f7a1352a10ab3d42fa75ecda1c8dcb
 Comment: Icon showing a green pixel. Added under the terms of Expat.
 
-Checksum-Sha256: cf796407a98ccccc8db4a572e1fa1fe253802ae4f3ac004d35765b0b27372618
+Checksum-Sha256: fb85958cc969897a38f77504d4111aa5a042b26f07f888b8ede1642ca2bf475f
 Files: src/Symfony/Component/String/UnicodeString.php
 License: Expat
 FirstAppearance: irrelevant
@@ -255,7 +255,7 @@
 FirstAppearance: irrelevant
 Comment: False positive: just a template.
 
-Checksum-Sha256: a99a67b8ac9f4c606a6d0f2f05982b80894e5b9b4fddc60858550d43928fa255
+Checksum-Sha256: e28d4be6376ad8db60145f1dd8c1105e151fe4d3d249211a2c7bf54568bb9136
 Files: src/Symfony/Component/String/Tests/UnicodeStringTest.php
 License: Expat
 FirstAppearance: irrelevant
@@ -364,7 +364,7 @@
 FirstAppearance: https://github.com/symfony/symfony/commit/0f85ba030b8725642ed0fdef804e969d88fcd7e5#diff-5dd4839cda3dec6eb13c926393862c2ad109e5dfbe7acc2aa8f052fc09ef9838
 Comment: A 16x9 white image, for tests.
 
-Checksum-Sha256: dee410f8f39bd7ffa7434594f5a27cd57e021c80e13e1cd7eced0d4ea2053761
+Checksum-Sha256: 862cff47e708ff0a28bb66dfeb4962052561b3b959a27d5307faea056b70e245
 Files: src/Symfony/Component/String/AbstractUnicodeString.php
 License: Expat
 FirstAppearance: irrelevant
@@ -457,7 +457,7 @@
 FirstAppearance: https://github.com/symfony/symfony/commit/9d0c26377ff0517f30d15bfb9c438aec6da0203e#diff-3a40f1b1d05c691c4fb190617abeb1ac
 Comment: Icon showing a black minus on a white background. Added under the terms of Expat.
 
-Checksum-Sha256: e6e04ae843852efaf660ed00916173cf6c297f9b3c30e258beecb2a4da7414b8
+Checksum-Sha256: 4b81a01af04cec01e6dcfc368948257f7edb5007e46186f3fc8795fed3f48406
 Files: src/Symfony/Component/String/Tests/AbstractUnicodeTestCase.php
 License: Expat
 FirstAppearance: irrelevant
diff -Nru symfony-6.4.21+dfsg/debian/patches/Adapt-conflict-to-Debian-expectations.patch symfony-6.4.40+dfsg/debian/patches/Adapt-conflict-to-Debian-expectations.patch
--- symfony-6.4.21+dfsg/debian/patches/Adapt-conflict-to-Debian-expectations.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Adapt-conflict-to-Debian-expectations.patch	2026-05-22 01:06:27.000000000 +0200
@@ -3,24 +3,25 @@
 Subject: Adapt conflict to Debian expectations
 
 ---
- composer.json                                           | 6 +++---
- src/Symfony/Bridge/Doctrine/composer.json               | 2 +-
- src/Symfony/Bundle/FrameworkBundle/composer.json        | 6 +++---
+ composer.json                                           | 8 ++++----
+ src/Symfony/Bridge/Doctrine/composer.json               | 4 ++--
+ src/Symfony/Bridge/Twig/composer.json                   | 4 ++--
+ src/Symfony/Bundle/FrameworkBundle/composer.json        | 8 ++++----
  src/Symfony/Component/DependencyInjection/composer.json | 2 +-
  src/Symfony/Component/Form/composer.json                | 4 ++--
  src/Symfony/Component/HttpFoundation/composer.json      | 2 +-
  src/Symfony/Component/Mime/composer.json                | 4 ++--
- src/Symfony/Component/PropertyInfo/composer.json        | 2 +-
+ src/Symfony/Component/PropertyInfo/composer.json        | 4 ++--
  src/Symfony/Component/Security/Core/composer.json       | 2 +-
  src/Symfony/Component/Security/Http/composer.json       | 2 +-
  src/Symfony/Component/Serializer/composer.json          | 2 +-
  src/Symfony/Component/Validator/composer.json           | 2 +-
  src/Symfony/Contracts/Service/composer.json             | 2 +-
  src/Symfony/Contracts/composer.json                     | 2 +-
- 14 files changed, 20 insertions(+), 20 deletions(-)
+ 15 files changed, 26 insertions(+), 26 deletions(-)
 
 diff --git a/composer.json b/composer.json
-index 53f24f5..89ee98d 100644
+index 7f80d87..f99996f 100644
 --- a/composer.json
 +++ b/composer.json
 @@ -165,16 +165,16 @@
@@ -36,7 +37,8 @@
 -        "egulias/email-validator": "~3.0.0",
 +        "egulias/email-validator": "<3.1",
          "masterminds/html5": "<2.6",
-         "phpdocumentor/reflection-docblock": "<5.2",
+-        "phpdocumentor/reflection-docblock": "<5.2|>=6",
++        "phpdocumentor/reflection-docblock": ">=6",
          "phpdocumentor/type-resolver": "<1.5.1",
 -        "phpunit/phpunit": "<7.5|9.1.2"
 +        "phpunit/phpunit": "<7.5"
@@ -44,10 +46,10 @@
      "config": {
          "allow-plugins": {
 diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json
-index 17828ca..d426958 100644
+index 6c5a671..d426958 100644
 --- a/src/Symfony/Bridge/Doctrine/composer.json
 +++ b/src/Symfony/Bridge/Doctrine/composer.json
-@@ -55,7 +55,7 @@
+@@ -55,12 +55,12 @@
          "doctrine/orm": "<2.15",
          "symfony/cache": "<5.4",
          "symfony/dependency-injection": "<6.2",
@@ -56,8 +58,31 @@
          "symfony/http-foundation": "<6.3",
          "symfony/http-kernel": "<6.2",
          "symfony/lock": "<6.3",
+         "symfony/messenger": "<5.4",
+-        "symfony/property-info": "<5.4|>=8",
++        "symfony/property-info": "<5.4",
+         "symfony/security-bundle": "<5.4",
+         "symfony/security-core": "<6.4",
+         "symfony/validator": "<6.4"
+diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json
+index ebb9330..52ec334 100644
+--- a/src/Symfony/Bridge/Twig/composer.json
++++ b/src/Symfony/Bridge/Twig/composer.json
+@@ -58,10 +58,10 @@
+         "phpdocumentor/reflection-docblock": "<3.2.2",
+         "phpdocumentor/type-resolver": "<1.4.0",
+         "symfony/console": "<5.4",
+-        "symfony/form": "<6.4.32|>7,<7.3.10|>7.4,<7.4.4",
++        "symfony/form": "<6.4.32",
+         "symfony/http-foundation": "<5.4",
+         "symfony/http-kernel": "<6.4",
+-        "symfony/mime": "<6.4.37|>=7.0,<7.4.9",
++        "symfony/mime": "<6.4.37",
+         "symfony/serializer": "<6.4",
+         "symfony/translation": "<5.4",
+         "symfony/workflow": "<5.4"
 diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json
-index c3aab84..0a2e8c0 100644
+index 242009a..ed62660 100644
 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json
 +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json
 @@ -82,7 +82,7 @@
@@ -69,8 +94,12 @@
          "symfony/dotenv": "<5.4",
          "symfony/dom-crawler": "<6.4",
          "symfony/http-client": "<6.3",
-@@ -93,8 +93,8 @@
-         "symfony/mime": "<6.4",
+@@ -90,11 +90,11 @@
+         "symfony/lock": "<5.4",
+         "symfony/mailer": "<5.4",
+         "symfony/messenger": "<6.3",
+-        "symfony/mime": "<6.4.37|>=7.0,<7.4.9",
++        "symfony/mime": "<6.4.37",
          "symfony/property-info": "<5.4",
          "symfony/property-access": "<5.4",
 -        "symfony/runtime": "<5.4.45|>=6.0,<6.4.13|>=7.0,<7.1.6",
@@ -143,12 +172,15 @@
      "autoload": {
          "psr-4": { "Symfony\\Component\\Mime\\": "" },
 diff --git a/src/Symfony/Component/PropertyInfo/composer.json b/src/Symfony/Component/PropertyInfo/composer.json
-index 495b51d..45be246 100644
+index b2e571e..1a2179b 100644
 --- a/src/Symfony/Component/PropertyInfo/composer.json
 +++ b/src/Symfony/Component/PropertyInfo/composer.json
-@@ -38,7 +38,7 @@
+@@ -36,9 +36,9 @@
+     },
+     "conflict": {
          "doctrine/annotations": "<1.12",
-         "phpdocumentor/reflection-docblock": "<5.2",
+-        "phpdocumentor/reflection-docblock": "<5.2|>=6",
++        "phpdocumentor/reflection-docblock": ">=6",
          "phpdocumentor/type-resolver": "<1.5.1",
 -        "symfony/dependency-injection": "<5.4|>=6.0,<6.4",
 +        "symfony/dependency-injection": "<6.4",
diff -Nru symfony-6.4.21+dfsg/debian/patches/Add-more-tests-to-group-tty.patch symfony-6.4.40+dfsg/debian/patches/Add-more-tests-to-group-tty.patch
--- symfony-6.4.21+dfsg/debian/patches/Add-more-tests-to-group-tty.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Add-more-tests-to-group-tty.patch	2026-05-22 01:06:27.000000000 +0200
@@ -13,7 +13,7 @@
  1 file changed, 9 insertions(+)
 
 diff --git a/src/Symfony/Component/Process/Tests/ProcessTest.php b/src/Symfony/Component/Process/Tests/ProcessTest.php
-index e9c7527..2682d4a 100644
+index af63491..8e8c073 100644
 --- a/src/Symfony/Component/Process/Tests/ProcessTest.php
 +++ b/src/Symfony/Component/Process/Tests/ProcessTest.php
 @@ -485,6 +485,9 @@ class ProcessTest extends TestCase
diff -Nru symfony-6.4.21+dfsg/debian/patches/Assume-php-async-aws-sqs-2.patch symfony-6.4.40+dfsg/debian/patches/Assume-php-async-aws-sqs-2.patch
--- symfony-6.4.21+dfsg/debian/patches/Assume-php-async-aws-sqs-2.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Assume-php-async-aws-sqs-2.patch	2026-05-22 01:06:27.000000000 +0200
@@ -10,10 +10,10 @@
  1 file changed, 1 insertion(+), 3 deletions(-)
 
 diff --git a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php
-index 691b3fd..c37f097 100644
+index b3c42ab..606f45a 100644
 --- a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php
 +++ b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php
-@@ -446,8 +446,6 @@ XML
+@@ -455,8 +455,6 @@ class ConnectionTest extends TestCase
  
      private function isAsyncAwsSqsVersion2Installed(): bool
      {
diff -Nru symfony-6.4.21+dfsg/debian/patches/Cache-Disable-Test-failing-tests-Error-Class-not-found.patch symfony-6.4.40+dfsg/debian/patches/Cache-Disable-Test-failing-tests-Error-Class-not-found.patch
--- symfony-6.4.21+dfsg/debian/patches/Cache-Disable-Test-failing-tests-Error-Class-not-found.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Cache-Disable-Test-failing-tests-Error-Class-not-found.patch	2026-05-22 01:06:27.000000000 +0200
@@ -5,16 +5,16 @@
 
 To be investigated
 ---
- .../Cache/Tests/Adapter/AdapterTestCase.php        |  12 ++
- .../Cache/Tests/Adapter/TagAwareAdapterTest.php    | 235 ---------------------
+ .../Cache/Tests/Adapter/AdapterTestCase.php        |  12 +
+ .../Cache/Tests/Adapter/TagAwareAdapterTest.php    | 255 ---------------------
  .../TagAwareAndProxyAdapterIntegrationTest.php     |   1 +
  .../Cache/Tests/Adapter/TagAwareTestTrait.php      |   9 +
  .../Tests/Messenger/EarlyExpirationHandlerTest.php |   1 +
- 5 files changed, 23 insertions(+), 235 deletions(-)
+ 5 files changed, 23 insertions(+), 255 deletions(-)
  delete mode 100644 src/Symfony/Component/Cache/Tests/Adapter/TagAwareAdapterTest.php
 
 diff --git a/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php b/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php
-index 2f77d29..8e3e3ed 100644
+index 9d4ecaf..3263ff6 100644
 --- a/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php
 +++ b/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php
 @@ -25,6 +25,16 @@ abstract class AdapterTestCase extends CachePoolTest
@@ -34,7 +34,7 @@
          if (!\array_key_exists('testPrune', $this->skippedTests) && !$this->createCachePool() instanceof PruneableInterface) {
              $this->skippedTests['testPrune'] = 'Not a pruneable cache pool.';
          }
-@@ -333,6 +343,7 @@ abstract class AdapterTestCase extends CachePoolTest
+@@ -361,6 +371,7 @@ abstract class AdapterTestCase extends CachePoolTest
  
      public function testNullByteInKey()
      {
@@ -42,7 +42,7 @@
          $cache = $this->createCachePool(0, __FUNCTION__);
  
          $cache->save($cache->getItem("a\0b")->set(123));
-@@ -342,6 +353,7 @@ abstract class AdapterTestCase extends CachePoolTest
+@@ -370,6 +381,7 @@ abstract class AdapterTestCase extends CachePoolTest
  
      public function testNumericKeysWorkAfterMemoryLeakPrevention()
      {
@@ -52,10 +52,10 @@
          for ($i = 0; $i < 1001; ++$i) {
 diff --git a/src/Symfony/Component/Cache/Tests/Adapter/TagAwareAdapterTest.php b/src/Symfony/Component/Cache/Tests/Adapter/TagAwareAdapterTest.php
 deleted file mode 100644
-index a85ef77..0000000
+index c7dd605..0000000
 --- a/src/Symfony/Component/Cache/Tests/Adapter/TagAwareAdapterTest.php
 +++ /dev/null
-@@ -1,235 +0,0 @@
+@@ -1,255 +0,0 @@
 -<?php
 -
 -/*
@@ -101,7 +101,7 @@
 -        $cache = new TagAwareAdapter($this->getPruneableMock());
 -        $this->assertTrue($cache->prune());
 -
--        $cache = new TagAwareAdapter($this->getNonPruneableMock());
+-        $cache = new TagAwareAdapter($this->createStub(AdapterInterface::class));
 -        $this->assertFalse($cache->prune());
 -
 -        $cache = new TagAwareAdapter($this->getFailingPruneableMock());
@@ -181,11 +181,6 @@
 -        return $pruneable;
 -    }
 -
--    private function getNonPruneableMock(): AdapterInterface&MockObject
--    {
--        return $this->createMock(AdapterInterface::class);
--    }
--
 -    /**
 -     * @doesNotPerformAssertions
 -     */
@@ -290,6 +285,31 @@
 -            // run generator
 -        }
 -    }
+-
+-    public function testResetClearsInternalStateEvenOnCommitFailure()
+-    {
+-        $pool = new class extends ArrayAdapter {
+-            public function commit(): bool
+-            {
+-                return false;
+-            }
+-        };
+-
+-        $adapter = new TagAwareAdapter($pool);
+-        $item = $adapter->getItem('foo');
+-        $item->set('bar');
+-        $adapter->saveDeferred($item);
+-
+-        // Simulate some known tag versions
+-        $propertyTags = new \ReflectionProperty($adapter, 'knownTagVersions');
+-        $propertyTags->setValue($adapter, ['tag1' => 1]);
+-
+-        $adapter->reset();
+-
+-        $propertyDeferred = new \ReflectionProperty($adapter, 'deferred');
+-        $this->assertEmpty($propertyDeferred->getValue($adapter), 'The deferred items must be cleared even if commit fails.');
+-        $this->assertEmpty($propertyTags->getValue($adapter), 'The known tag versions must be cleared even if commit fails.');
+-    }
 -}
 diff --git a/src/Symfony/Component/Cache/Tests/Adapter/TagAwareAndProxyAdapterIntegrationTest.php b/src/Symfony/Component/Cache/Tests/Adapter/TagAwareAndProxyAdapterIntegrationTest.php
 index 4af199d..68168f6 100644
@@ -366,7 +386,7 @@
          $pool->clear();
  
 diff --git a/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationHandlerTest.php b/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationHandlerTest.php
-index 6b84254..44a3659 100644
+index 963215d..d4c3a82 100644
 --- a/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationHandlerTest.php
 +++ b/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationHandlerTest.php
 @@ -34,6 +34,7 @@ class EarlyExpirationHandlerTest extends TestCase
diff -Nru symfony-6.4.21+dfsg/debian/patches/Config-Partially-revert-4c2c5c9ba76ba8db9e88748ae519605c0.patch symfony-6.4.40+dfsg/debian/patches/Config-Partially-revert-4c2c5c9ba76ba8db9e88748ae519605c0.patch
--- symfony-6.4.21+dfsg/debian/patches/Config-Partially-revert-4c2c5c9ba76ba8db9e88748ae519605c0.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Config-Partially-revert-4c2c5c9ba76ba8db9e88748ae519605c0.patch	2026-05-22 01:06:27.000000000 +0200
@@ -8,10 +8,10 @@
  1 file changed, 1 insertion(+), 11 deletions(-)
 
 diff --git a/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php b/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php
-index 722df54..0037637 100644
+index d722807..8446279 100644
 --- a/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php
 +++ b/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php
-@@ -83,21 +83,11 @@ class GeneratedConfigTest extends TestCase
+@@ -84,21 +84,11 @@ class GeneratedConfigTest extends TestCase
      public function testConfig(string $name, string $alias)
      {
          $basePath = __DIR__.'/Fixtures/';
diff -Nru symfony-6.4.21+dfsg/debian/patches/Config-Skip-tests-currently-failing.patch symfony-6.4.40+dfsg/debian/patches/Config-Skip-tests-currently-failing.patch
--- symfony-6.4.21+dfsg/debian/patches/Config-Skip-tests-currently-failing.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Config-Skip-tests-currently-failing.patch	2026-05-22 01:06:27.000000000 +0200
@@ -8,10 +8,10 @@
  1 file changed, 4 insertions(+)
 
 diff --git a/src/Symfony/Component/Config/Tests/Resource/ClassExistenceResourceTest.php b/src/Symfony/Component/Config/Tests/Resource/ClassExistenceResourceTest.php
-index 32093d9..de2c87a 100644
+index 57a38e5..1ad4571 100644
 --- a/src/Symfony/Component/Config/Tests/Resource/ClassExistenceResourceTest.php
 +++ b/src/Symfony/Component/Config/Tests/Resource/ClassExistenceResourceTest.php
-@@ -95,6 +95,8 @@ EOF
+@@ -95,6 +95,8 @@ class ClassExistenceResourceTest extends TestCase
  
      public function testBadFileName()
      {
@@ -20,7 +20,7 @@
          $res = new ClassExistenceResource(BadFileName::class, false);
  
          $this->expectException(\ReflectionException::class);
-@@ -105,6 +107,8 @@ EOF
+@@ -105,6 +107,8 @@ class ClassExistenceResourceTest extends TestCase
  
      public function testBadFileNameBis()
      {
diff -Nru symfony-6.4.21+dfsg/debian/patches/Console-Skip-currently-failing-assertion.patch symfony-6.4.40+dfsg/debian/patches/Console-Skip-currently-failing-assertion.patch
--- symfony-6.4.21+dfsg/debian/patches/Console-Skip-currently-failing-assertion.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Console-Skip-currently-failing-assertion.patch	2026-05-22 01:06:27.000000000 +0200
@@ -8,7 +8,7 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/src/Symfony/Component/Console/Tests/CursorTest.php b/src/Symfony/Component/Console/Tests/CursorTest.php
-index d8ae705..12b14d1 100644
+index 3e54696..f2cc734 100644
 --- a/src/Symfony/Component/Console/Tests/CursorTest.php
 +++ b/src/Symfony/Component/Console/Tests/CursorTest.php
 @@ -176,6 +176,7 @@ class CursorTest extends TestCase
diff -Nru symfony-6.4.21+dfsg/debian/patches/Declare-composer-group-for-tests-failing-outside-a-Compos.patch symfony-6.4.40+dfsg/debian/patches/Declare-composer-group-for-tests-failing-outside-a-Compos.patch
--- symfony-6.4.21+dfsg/debian/patches/Declare-composer-group-for-tests-failing-outside-a-Compos.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Declare-composer-group-for-tests-failing-outside-a-Compos.patch	2026-05-22 01:06:27.000000000 +0200
@@ -10,7 +10,7 @@
  3 files changed, 7 insertions(+)
 
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php
-index 4c17a80..8eaae56 100644
+index 2a7643a..e89b34a 100644
 --- a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php
 +++ b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php
 @@ -232,6 +232,7 @@ class DeprecationTest extends TestCase
@@ -36,7 +36,7 @@
      {
          $res = new ComposerResource();
 diff --git a/src/Symfony/Component/HttpKernel/Tests/HttpKernelBrowserTest.php b/src/Symfony/Component/HttpKernel/Tests/HttpKernelBrowserTest.php
-index 51fcbfa..8c9f532 100644
+index 708e942..07fe28f 100644
 --- a/src/Symfony/Component/HttpKernel/Tests/HttpKernelBrowserTest.php
 +++ b/src/Symfony/Component/HttpKernel/Tests/HttpKernelBrowserTest.php
 @@ -45,6 +45,9 @@ class HttpKernelBrowserTest extends TestCase
diff -Nru symfony-6.4.21+dfsg/debian/patches/DependencyInjection-Drop-parts-of-expectated-output.patch symfony-6.4.40+dfsg/debian/patches/DependencyInjection-Drop-parts-of-expectated-output.patch
--- symfony-6.4.21+dfsg/debian/patches/DependencyInjection-Drop-parts-of-expectated-output.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/DependencyInjection-Drop-parts-of-expectated-output.patch	2026-05-22 01:06:27.000000000 +0200
@@ -49,10 +49,10 @@
  
  // This file has been auto-generated by the Symfony Dependency Injection Component for internal use.
 diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt
-index 0cebc1f..2aa095d 100644
+index 1424ccb..81ffd15 100644
 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt
 +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt
-@@ -711,63 +711,6 @@ class ProjectServiceContainer extends Container
+@@ -724,63 +724,6 @@ class ProjectServiceContainer extends Container
      }
  }
  
@@ -117,10 +117,10 @@
  
  // This file has been auto-generated by the Symfony Dependency Injection Component for internal use.
 diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_inlined_factories.txt b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_inlined_factories.txt
-index 24f26c1..e60d5e8 100644
+index 0094ef8..360b817 100644
 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_inlined_factories.txt
 +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_inlined_factories.txt
-@@ -553,37 +553,6 @@ class ProjectServiceContainer extends Container
+@@ -566,37 +566,6 @@ class ProjectServiceContainer extends Container
      }
  }
  
@@ -191,10 +191,10 @@
  
  // This file has been auto-generated by the Symfony Dependency Injection Component for internal use.
 diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_lazy_inlined_factories.txt b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_lazy_inlined_factories.txt
-index 28a641d..402438f 100644
+index 55c467f..dd45dbd 100644
 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_lazy_inlined_factories.txt
 +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_lazy_inlined_factories.txt
-@@ -146,27 +146,6 @@ class ProjectServiceContainer extends Container
+@@ -147,27 +147,6 @@ class ProjectServiceContainer extends Container
      }
  }
  
@@ -223,10 +223,10 @@
  
  // This file has been auto-generated by the Symfony Dependency Injection Component for internal use.
 diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters_as_files.txt b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters_as_files.txt
-index f3442bc..8828091 100644
+index bc5a75f..b1ae223 100644
 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters_as_files.txt
 +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters_as_files.txt
-@@ -155,27 +155,6 @@ class ProjectServiceContainer extends Container
+@@ -156,27 +156,6 @@ class ProjectServiceContainer extends Container
      }
  }
  
diff -Nru symfony-6.4.21+dfsg/debian/patches/Drop-composer-runtime-api-that-confuses-phpabtpl.patch symfony-6.4.40+dfsg/debian/patches/Drop-composer-runtime-api-that-confuses-phpabtpl.patch
--- symfony-6.4.21+dfsg/debian/patches/Drop-composer-runtime-api-that-confuses-phpabtpl.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Drop-composer-runtime-api-that-confuses-phpabtpl.patch	2026-05-22 01:06:27.000000000 +0200
@@ -10,7 +10,7 @@
  4 files changed, 4 deletions(-)
 
 diff --git a/composer.json b/composer.json
-index cdae473..6f6fcf0 100644
+index 311ea80..590a82e 100644
 --- a/composer.json
 +++ b/composer.json
 @@ -34,7 +34,6 @@
@@ -22,7 +22,7 @@
          "ext-xml": "*",
          "friendsofphp/proxy-manager-lts": "^1.0.2",
 diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json
-index 0a2e8c0..f119389 100644
+index ed62660..9496538 100644
 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json
 +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json
 @@ -17,7 +17,6 @@
diff -Nru symfony-6.4.21+dfsg/debian/patches/Drop-listeners-from-phpunit.xml.patch symfony-6.4.40+dfsg/debian/patches/Drop-listeners-from-phpunit.xml.patch
--- symfony-6.4.21+dfsg/debian/patches/Drop-listeners-from-phpunit.xml.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Drop-listeners-from-phpunit.xml.patch	2026-05-22 01:06:27.000000000 +0200
@@ -7,10 +7,10 @@
  1 file changed, 22 deletions(-)
 
 diff --git a/phpunit.xml.dist b/phpunit.xml.dist
-index 3ca8477..5295402 100644
+index 793f14e..0a13234 100644
 --- a/phpunit.xml.dist
 +++ b/phpunit.xml.dist
-@@ -66,26 +66,4 @@
+@@ -64,26 +64,4 @@
              <directory>./src/Symfony/Contracts/*/vendor</directory>
          </exclude>
      </coverage>
diff -Nru symfony-6.4.21+dfsg/debian/patches/Drop-test-failing-outside-Composer-environment.patch symfony-6.4.40+dfsg/debian/patches/Drop-test-failing-outside-Composer-environment.patch
--- symfony-6.4.21+dfsg/debian/patches/Drop-test-failing-outside-Composer-environment.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Drop-test-failing-outside-Composer-environment.patch	2026-05-22 01:06:27.000000000 +0200
@@ -3,16 +3,16 @@
 Subject: Drop test failing outside Composer environment
 
 ---
- .../weak_vendors_on_non_vendor.phpt                | 74 ----------------------
- 1 file changed, 74 deletions(-)
+ .../weak_vendors_on_non_vendor.phpt                | 75 ----------------------
+ 1 file changed, 75 deletions(-)
  delete mode 100644 src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_non_vendor.phpt
 
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_non_vendor.phpt b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_non_vendor.phpt
 deleted file mode 100644
-index 9c72a8e..0000000
+index c6cd1d1..0000000
 --- a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_non_vendor.phpt
 +++ /dev/null
-@@ -1,74 +0,0 @@
+@@ -1,75 +0,0 @@
 ---TEST--
 -Test DeprecationErrorHandler in weak vendors mode on a non vendor file
 ---FILE--
@@ -23,6 +23,7 @@
 -putenv('ANSICON');
 -putenv('ConEmuANSI');
 -putenv('TERM');
+-putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 -
 -$vendor = __DIR__;
 -while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/debian/patches/Drop-tests-data-throwing-a-RuntimeException-outside-a-Com.patch symfony-6.4.40+dfsg/debian/patches/Drop-tests-data-throwing-a-RuntimeException-outside-a-Com.patch
--- symfony-6.4.21+dfsg/debian/patches/Drop-tests-data-throwing-a-RuntimeException-outside-a-Com.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Drop-tests-data-throwing-a-RuntimeException-outside-a-Com.patch	2026-05-22 01:06:27.000000000 +0200
@@ -10,10 +10,10 @@
  3 files changed, 3 deletions(-)
 
 diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/FragmentTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/FragmentTest.php
-index 48d5c32..148ab05 100644
+index f53e972..963bc39 100644
 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/FragmentTest.php
 +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/FragmentTest.php
-@@ -41,7 +41,6 @@ TXT
+@@ -42,7 +42,6 @@ class FragmentTest extends AbstractWebTestCase
      {
          return [
              [false],
diff -Nru symfony-6.4.21+dfsg/debian/patches/ErrorHandler-Skip-tests-currently-failing.patch symfony-6.4.40+dfsg/debian/patches/ErrorHandler-Skip-tests-currently-failing.patch
--- symfony-6.4.21+dfsg/debian/patches/ErrorHandler-Skip-tests-currently-failing.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/ErrorHandler-Skip-tests-currently-failing.patch	2026-05-22 01:06:27.000000000 +0200
@@ -9,7 +9,7 @@
  2 files changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php b/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php
-index ac08e69..c3a7372 100644
+index 1293c4f..2229404 100644
 --- a/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php
 +++ b/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php
 @@ -62,6 +62,8 @@ class DebugClassLoaderTest extends TestCase
@@ -30,7 +30,7 @@
          $this->assertTrue(class_exists(Fixtures\ClassAlias::class, true));
      }
  
-@@ -358,6 +362,8 @@ class DebugClassLoaderTest extends TestCase
+@@ -432,6 +436,8 @@ class DebugClassLoaderTest extends TestCase
  
      public function testEvaluatedCode()
      {
@@ -40,10 +40,10 @@
      }
  
 diff --git a/src/Symfony/Component/ErrorHandler/Tests/ErrorHandlerTest.php b/src/Symfony/Component/ErrorHandler/Tests/ErrorHandlerTest.php
-index 55a2a6b..675716d 100644
+index 20d1bb7..38eb5d7 100644
 --- a/src/Symfony/Component/ErrorHandler/Tests/ErrorHandlerTest.php
 +++ b/src/Symfony/Component/ErrorHandler/Tests/ErrorHandlerTest.php
-@@ -346,7 +346,7 @@ class ErrorHandlerTest extends TestCase
+@@ -345,7 +345,7 @@ class ErrorHandlerTest extends TestCase
              restore_exception_handler();
          }
  
diff -Nru symfony-6.4.21+dfsg/debian/patches/Filesystem-Drop-currently-failing-tests.patch symfony-6.4.40+dfsg/debian/patches/Filesystem-Drop-currently-failing-tests.patch
--- symfony-6.4.21+dfsg/debian/patches/Filesystem-Drop-currently-failing-tests.patch	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Filesystem-Drop-currently-failing-tests.patch	2026-05-22 01:06:27.000000000 +0200
@@ -0,0 +1,62 @@
+From: =?utf-8?q?David_Pr=C3=A9vot?= <david@tilapin.org>
+Date: Fri, 22 May 2026 08:26:45 +0200
+Subject: [Filesystem] Drop currently failing tests
+
+TODO: investigate
+---
+ src/Symfony/Component/Filesystem/Tests/FilesystemTest.php | 4 ++++
+ src/Symfony/Component/Filesystem/Tests/PathTest.php       | 5 ++---
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php b/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php
+index 6042042..a726ff8 100644
+--- a/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php
++++ b/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php
+@@ -1220,6 +1220,8 @@ class FilesystemTest extends FilesystemTestCase
+ 
+     public function testMakePathRelativeWithExistingFile()
+     {
++        $this->markTestSkipped('Test currently failing on Debian');
++
+         $dir = $this->workspace.\DIRECTORY_SEPARATOR.'foo'.\DIRECTORY_SEPARATOR.'bar';
+         mkdir($dir, 0o777, true);
+         $file = $dir.\DIRECTORY_SEPARATOR.'test.txt';
+@@ -1845,6 +1847,7 @@ class FilesystemTest extends FilesystemTestCase
+     public function testCopyShouldKeepExecutionPermission()
+     {
+         $this->markAsSkippedIfChmodIsMissing();
++        $this->markTestSkipped('Test currently failing on Debian');
+ 
+         $sourceFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_source_file';
+         $targetFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_target_file';
+@@ -1860,6 +1863,7 @@ class FilesystemTest extends FilesystemTestCase
+     public function testCopyShouldKeepRestrictivePermissions()
+     {
+         $this->markAsSkippedIfChmodIsMissing();
++        $this->markTestSkipped('Test currently failing on Debian');
+ 
+         $sourceFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_source_file';
+         $targetFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_target_file';
+diff --git a/src/Symfony/Component/Filesystem/Tests/PathTest.php b/src/Symfony/Component/Filesystem/Tests/PathTest.php
+index e1a7740..2a99385 100644
+--- a/src/Symfony/Component/Filesystem/Tests/PathTest.php
++++ b/src/Symfony/Component/Filesystem/Tests/PathTest.php
+@@ -379,9 +379,6 @@ class PathTest extends TestCase
+         // URLs and stream wrappers are considered absolute
+         yield ['phar:///css/style.css', true];
+         yield ['phar:///', true];
+-        yield ['http://example.com', true];
+-        yield ['ftp://user@server/path', true];
+-        yield ['vfs://root/file.txt', true];
+ 
+         if ('\\' === \DIRECTORY_SEPARATOR) {
+             yield ['\\css\\style.css', true];
+@@ -1133,6 +1130,8 @@ class PathTest extends TestCase
+ 
+     public function testNormalize()
+     {
++        $this->markTestSkipped('Test currently failing on Debian');
++
+         if ('\\' === \DIRECTORY_SEPARATOR) {
+             $this->assertSame('C:/Foo/Bar/test', Path::normalize('C:\\Foo\\Bar/test'));
+         } else {
diff -Nru symfony-6.4.21+dfsg/debian/patches/Finder-Drop-data-from-testsuite.patch symfony-6.4.40+dfsg/debian/patches/Finder-Drop-data-from-testsuite.patch
--- symfony-6.4.21+dfsg/debian/patches/Finder-Drop-data-from-testsuite.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Finder-Drop-data-from-testsuite.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-From: =?utf-8?q?David_Pr=C3=A9vot?= <david@tilapin.org>
-Date: Thu, 13 Nov 2025 08:24:17 +0100
-Subject: [Finder] Drop data from testsuite
-
-It seems to be failing in current Debian (old)stable now.
----
- .../Component/Finder/Tests/Iterator/DateRangeFilterIteratorTest.php     | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/src/Symfony/Component/Finder/Tests/Iterator/DateRangeFilterIteratorTest.php b/src/Symfony/Component/Finder/Tests/Iterator/DateRangeFilterIteratorTest.php
-index f4985df..bb4b239 100644
---- a/src/Symfony/Component/Finder/Tests/Iterator/DateRangeFilterIteratorTest.php
-+++ b/src/Symfony/Component/Finder/Tests/Iterator/DateRangeFilterIteratorTest.php
-@@ -36,8 +36,6 @@ class DateRangeFilterIteratorTest extends RealIteratorTestCase
-             '.git',
-             'test.py',
-             'foo',
--            'foo/bar.tmp',
--            'test.php',
-             'toto',
-             'toto/.git',
-             '.bar',
diff -Nru symfony-6.4.21+dfsg/debian/patches/Form-Skip-test-currently-failing.patch symfony-6.4.40+dfsg/debian/patches/Form-Skip-test-currently-failing.patch
--- symfony-6.4.21+dfsg/debian/patches/Form-Skip-test-currently-failing.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Form-Skip-test-currently-failing.patch	2026-05-22 01:06:27.000000000 +0200
@@ -11,7 +11,7 @@
  1 file changed, 1 deletion(-)
 
 diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/IntegerTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/IntegerTypeTest.php
-index 1e143b3..73aa812 100644
+index 8144f53..34f7bf3 100644
 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/IntegerTypeTest.php
 +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/IntegerTypeTest.php
 @@ -56,7 +56,6 @@ class IntegerTypeTest extends BaseTypeTestCase
diff -Nru symfony-6.4.21+dfsg/debian/patches/Group-jwt-for-tests-depending-on-it.patch symfony-6.4.40+dfsg/debian/patches/Group-jwt-for-tests-depending-on-it.patch
--- symfony-6.4.21+dfsg/debian/patches/Group-jwt-for-tests-depending-on-it.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Group-jwt-for-tests-depending-on-it.patch	2026-05-22 01:06:27.000000000 +0200
@@ -8,7 +8,7 @@
  2 files changed, 6 insertions(+)
 
 diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AccessTokenTest.php b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AccessTokenTest.php
-index 6cc2b1f..72398fa 100644
+index 71d42c4..f9362a2 100644
 --- a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AccessTokenTest.php
 +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AccessTokenTest.php
 @@ -347,6 +347,7 @@ class AccessTokenTest extends AbstractWebTestCase
@@ -20,7 +20,7 @@
      public function testOidcSuccess()
      {
 diff --git a/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php b/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php
-index f2c1993..f019857 100644
+index 91f5d77..c8f37c9 100644
 --- a/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php
 +++ b/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php
 @@ -33,6 +33,7 @@ class OidcTokenHandlerTest extends TestCase
@@ -39,7 +39,7 @@
       */
      public function testThrowsAnErrorIfTokenIsInvalid(string $token)
      {
-@@ -126,6 +128,9 @@ class OidcTokenHandlerTest extends TestCase
+@@ -159,6 +161,9 @@ class OidcTokenHandlerTest extends TestCase
          ];
      }
  
diff -Nru symfony-6.4.21+dfsg/debian/patches/group-network-for-test-failing-without-network.patch symfony-6.4.40+dfsg/debian/patches/group-network-for-test-failing-without-network.patch
--- symfony-6.4.21+dfsg/debian/patches/group-network-for-test-failing-without-network.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/group-network-for-test-failing-without-network.patch	2026-05-22 01:06:27.000000000 +0200
@@ -10,10 +10,10 @@
  4 files changed, 21 insertions(+)
 
 diff --git a/src/Symfony/Component/Cache/Tests/Traits/RedisTraitTest.php b/src/Symfony/Component/Cache/Tests/Traits/RedisTraitTest.php
-index 969d2b7..28cc04e 100644
+index 975d574..140813a 100644
 --- a/src/Symfony/Component/Cache/Tests/Traits/RedisTraitTest.php
 +++ b/src/Symfony/Component/Cache/Tests/Traits/RedisTraitTest.php
-@@ -86,6 +86,7 @@ class RedisTraitTest extends TestCase
+@@ -95,6 +95,7 @@ class RedisTraitTest extends TestCase
       * @see https://github.com/phpredis/phpredis/issues/1920
       *
       * @group integration
@@ -51,10 +51,10 @@
      {
          $this->assertSame(
 diff --git a/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/AdapterTest.php b/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/AdapterTest.php
-index c169f4c..abfb5ff 100644
+index 0a17343..2c60802 100644
 --- a/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/AdapterTest.php
 +++ b/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/AdapterTest.php
-@@ -83,6 +83,9 @@ class AdapterTest extends LdapTestCase
+@@ -99,6 +99,9 @@ class AdapterTest extends LdapTestCase
          $query->execute();
      }
  
@@ -64,7 +64,7 @@
      public function testLdapQueryScopeBase()
      {
          $ldap = new Adapter($this->getLdapConfig());
-@@ -99,6 +102,9 @@ class AdapterTest extends LdapTestCase
+@@ -115,6 +118,9 @@ class AdapterTest extends LdapTestCase
          $this->assertEquals(['Fabien Potencier'], $entry->getAttribute('cn'));
      }
  
diff -Nru symfony-6.4.21+dfsg/debian/patches/Group-nophpunit11-for-tests-failing-with-PHPUnit-11.patch symfony-6.4.40+dfsg/debian/patches/Group-nophpunit11-for-tests-failing-with-PHPUnit-11.patch
--- symfony-6.4.21+dfsg/debian/patches/Group-nophpunit11-for-tests-failing-with-PHPUnit-11.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Group-nophpunit11-for-tests-failing-with-PHPUnit-11.patch	2026-05-22 01:06:27.000000000 +0200
@@ -8,14 +8,14 @@
  .../Bridge/PhpUnit/Tests/CoverageListenerTest.php  |  3 ++
  .../DeprecationErrorHandler/ConfigurationTest.php  |  3 ++
  .../Bridge/PhpUnit/Tests/ProcessIsolationTest.php  |  3 ++
- .../PhpUnit/Tests/expectdeprecationfail.phpt       | 37 ----------------------
- .../Bridge/PhpUnit/Tests/expectnotrisky.phpt       | 18 -----------
- src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt  | 24 --------------
+ .../PhpUnit/Tests/expectdeprecationfail.phpt       | 39 ----------------------
+ .../Bridge/PhpUnit/Tests/expectnotrisky.phpt       | 18 ----------
+ src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt  | 26 ---------------
  .../Compiler/UnusedTagsPassTest.php                |  3 ++
  .../Tests/Functional/ApiAttributesTest.php         |  1 +
  .../Tests/ImportMap/RemotePackageStorageTest.php   |  3 ++
  .../Test/Constraint/BrowserCookieValueSameTest.php |  3 ++
- .../Tests/Test/Constraint/BrowserHasCookieTest.php |  9 ++++++
+ .../Tests/Test/Constraint/BrowserHasCookieTest.php |  9 +++++
  .../Tester/Constraint/CommandIsSuccessfulTest.php  |  2 +-
  .../CrawlerAnySelectorTextContainsTest.php         |  3 ++
  .../Constraint/CrawlerAnySelectorTextSameTest.php  |  3 ++
@@ -23,10 +23,10 @@
  .../Test/Constraint/CrawlerSelectorExistsTest.php  |  3 ++
  .../Constraint/CrawlerSelectorTextContainsTest.php |  3 ++
  .../Constraint/CrawlerSelectorTextSameTest.php     |  3 ++
- .../ErrorHandler/Tests/DebugClassLoaderTest.php    | 18 +++++++++++
- .../Finder/Tests/FinderOpenBasedirTest.php         |  9 ------
+ .../ErrorHandler/Tests/DebugClassLoaderTest.php    | 18 ++++++++++
+ .../Finder/Tests/FinderOpenBasedirTest.php         |  9 -----
  .../Form/Test/FormPerformanceTestCase.php          |  4 ---
- .../Component/Form/Tests/VersionAwareTest.php      | 24 --------------
+ .../Component/Form/Tests/VersionAwareTest.php      | 24 -------------
  .../Tests/NoPrivateNetworkHttpClientTest.php       |  2 ++
  .../Constraint/RequestAttributeValueSameTest.php   |  3 ++
  .../Constraint/ResponseCookieValueSameTest.php     |  3 ++
@@ -38,7 +38,7 @@
  .../Test/Constraint/ResponseIsSuccessfulTest.php   |  3 ++
  .../Test/Constraint/ResponseStatusCodeSameTest.php |  3 ++
  .../Mailer/Test/TransportFactoryTestCase.php       |  4 +--
- .../Tests/Transport/FailoverTransportTest.php      |  9 ++++++
+ .../Tests/Transport/FailoverTransportTest.php      |  9 +++++
  .../Tests/Transport/RoundRobinTransportTest.php    |  3 ++
  .../DispatchAfterCurrentBusMiddlewareTest.php      |  6 ++++
  .../Tests/Middleware/SendMessageMiddlewareTest.php |  3 ++
@@ -51,7 +51,7 @@
  .../AccessToken/Oidc/OidcTokenHandlerTest.php      |  1 -
  .../Authentication/AuthenticatorManagerTest.php    |  3 ++
  .../Tests/Controller/UserValueResolverTest.php     |  3 ++
- .../Tests/Normalizer/DateTimeNormalizerTest.php    | 20 ++----------
+ .../Tests/Normalizer/DateTimeNormalizerTest.php    | 20 ++---------
  .../String/Tests/Slugger/AsciiSluggerTest.php      | 10 ------
  .../Bridge/Phrase/Tests/PhraseProviderTest.php     | 10 ++++++
  .../Uid/Tests/Command/GenerateUlidCommandTest.php  |  1 +
@@ -62,14 +62,14 @@
  .../Tests/Constraints/RangeValidatorTest.php       |  2 +-
  .../Mapping/Loader/PropertyInfoLoaderTest.php      |  3 ++
  .../VarDumper/Tests/Caster/DoctrineCasterTest.php  |  3 ++
- 59 files changed, 179 insertions(+), 161 deletions(-)
+ 59 files changed, 179 insertions(+), 165 deletions(-)
  delete mode 100644 src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt
  delete mode 100644 src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt
  delete mode 100644 src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt
  delete mode 100644 src/Symfony/Component/Form/Tests/VersionAwareTest.php
 
 diff --git a/phpunit.xml.dist b/phpunit.xml.dist
-index 5295402..17ca395 100644
+index 0a13234..74865ab 100644
 --- a/phpunit.xml.dist
 +++ b/phpunit.xml.dist
 @@ -5,8 +5,8 @@
@@ -122,7 +122,7 @@
      {
          if ('\\' === \DIRECTORY_SEPARATOR) {
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php
-index a2259fc..f1aa0ad 100644
+index 1d455c6..70aefda 100644
 --- a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php
 +++ b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php
 @@ -463,6 +463,9 @@ class ConfigurationTest extends TestCase
@@ -151,15 +151,17 @@
          $this->expectException(\PHPUnit\Framework\Exception::class);
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt b/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt
 deleted file mode 100644
-index c4889e4..0000000
+index c1d0a1b..0000000
 --- a/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt
 +++ /dev/null
-@@ -1,37 +0,0 @@
+@@ -1,39 +0,0 @@
 ---TEST--
 -Test ExpectDeprecationTrait failing tests
 ---FILE--
 -<?php
--$test =  realpath(__DIR__.'/FailTests/ExpectDeprecationTraitTestFail.php');
+-putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
+-putenv('SYMFONY_EXPECTED_DEPRECATIONS_SERIALIZE');
+-$test = realpath(__DIR__.'/FailTests/ExpectDeprecationTraitTestFail.php');
 -passthru('phpunit --colors=never '.$test);
 -?>
 ---EXPECTF--
@@ -194,7 +196,7 @@
 -Tests: 2, Assertions: 2, Failures: 2.
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt b/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt
 deleted file mode 100644
-index b300add..0000000
+index 5599e33..0000000
 --- a/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt
 +++ /dev/null
 @@ -1,18 +0,0 @@
@@ -204,7 +206,7 @@
 -<?php if ('\\' === DIRECTORY_SEPARATOR && !extension_loaded('mbstring')) die('Skipping on Windows without mbstring');
 ---FILE--
 -<?php
--$test =  realpath(__DIR__.'/FailTests/NoAssertionsTestNotRisky.php');
+-$test = realpath(__DIR__.'/FailTests/NoAssertionsTestNotRisky.php');
 -passthru('phpunit --fail-on-risky --colors=never '.$test);
 -?>
 ---EXPECTF--
@@ -218,17 +220,19 @@
 -OK (1 test, 0 assertions)
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt b/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt
 deleted file mode 100644
-index 43cde22..0000000
+index 3013d8c..0000000
 --- a/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt
 +++ /dev/null
-@@ -1,24 +0,0 @@
+@@ -1,26 +0,0 @@
 ---TEST--
 -Test NoAssertionsTestRisky risky test
 ---SKIPIF--
 -<?php if ('\\' === DIRECTORY_SEPARATOR && !extension_loaded('mbstring')) die('Skipping on Windows without mbstring');
 ---FILE--
 -<?php
--$test =  realpath(__DIR__.'/FailTests/NoAssertionsTestRisky.php');
+-putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
+-putenv('SYMFONY_EXPECTED_DEPRECATIONS_SERIALIZE');
+-$test = realpath(__DIR__.'/FailTests/NoAssertionsTestRisky.php');
 -passthru('phpunit --fail-on-risky --colors=never '.$test);
 -?>
 ---EXPECTF--
@@ -247,11 +251,11 @@
 -OK, but incomplete, skipped, or risky tests!
 -Tests: 2, Assertions: 1, Risky: 1.
 diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/UnusedTagsPassTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/UnusedTagsPassTest.php
-index d9785f1..2b217b4 100644
+index 0951fc2..68a0167 100644
 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/UnusedTagsPassTest.php
 +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/UnusedTagsPassTest.php
 @@ -32,6 +32,9 @@ class UnusedTagsPassTest extends TestCase
-         $this->assertSame([sprintf('%s: Tag "kenrel.event_subscriber" was defined on service(s) "foo", "bar", but was never used. Did you mean "kernel.event_subscriber"?', UnusedTagsPass::class)], $container->getCompiler()->getLog());
+         $this->assertSame([\sprintf('%s: Tag "kenrel.event_subscriber" was defined on service(s) "foo", "bar", but was never used. Did you mean "kernel.event_subscriber"?', UnusedTagsPass::class)], $container->getCompiler()->getLog());
      }
  
 +    /**
@@ -261,19 +265,19 @@
      {
          if (\dirname((new \ReflectionClass(ContainerBuilder::class))->getFileName(), 3) !== \dirname(__DIR__, 5)) {
 diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ApiAttributesTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ApiAttributesTest.php
-index 96b6d0e..6ecaf19 100644
+index 28fc753..0c2bbdd 100644
 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ApiAttributesTest.php
 +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ApiAttributesTest.php
-@@ -87,6 +87,7 @@ class ApiAttributesTest extends AbstractWebTestCase
+@@ -88,6 +88,7 @@ class ApiAttributesTest extends AbstractWebTestCase
      }
  
      /**
 +     * @group nophpunit11
       * @dataProvider mapRequestPayloadProvider
       */
-     public function testMapRequestPayload(string $format, array $parameters, ?string $content, string $expectedResponse, int $expectedStatusCode)
+     public function testMapRequestPayload(string $format, array $parameters, ?string $content, callable $responseAssertion, int $expectedStatusCode)
 diff --git a/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageStorageTest.php b/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageStorageTest.php
-index 9064eec..0d7720e 100644
+index cfc117f..3817048 100644
 --- a/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageStorageTest.php
 +++ b/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageStorageTest.php
 @@ -41,6 +41,9 @@ class RemotePackageStorageTest extends TestCase
@@ -287,7 +291,7 @@
      {
          $vendorDir = self::$writableRoot.'/assets/acme/vendor';
 diff --git a/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserCookieValueSameTest.php b/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserCookieValueSameTest.php
-index f2de26f..d1aa7d7 100644
+index 42cb247..8a99f95 100644
 --- a/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserCookieValueSameTest.php
 +++ b/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserCookieValueSameTest.php
 @@ -21,6 +21,9 @@ use Symfony\Component\BrowserKit\Test\Constraint\BrowserCookieValueSame;
@@ -301,7 +305,7 @@
      {
          $browser = $this->getBrowser();
 diff --git a/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserHasCookieTest.php b/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserHasCookieTest.php
-index f6cb6d5..0bcba9a 100644
+index 4ba9f0e..d504235 100644
 --- a/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserHasCookieTest.php
 +++ b/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserHasCookieTest.php
 @@ -21,6 +21,9 @@ use Symfony\Component\BrowserKit\Test\Constraint\BrowserHasCookie;
@@ -432,7 +436,7 @@
      {
          $constraint = new CrawlerSelectorTextSame('title', 'Foo');
 diff --git a/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php b/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php
-index c3a7372..d534dc2 100644
+index 2229404..2829a10 100644
 --- a/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php
 +++ b/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php
 @@ -225,6 +225,9 @@ class DebugClassLoaderTest extends TestCase
@@ -454,7 +458,7 @@
 +     */
      public function testExtendedDeprecatedMethodDoesntTriggerAnyNotice()
      {
-         set_error_handler(fn () => false);
+         set_error_handler(static fn () => false);
 @@ -280,6 +286,9 @@ class DebugClassLoaderTest extends TestCase
          ], $deprecations);
      }
@@ -465,7 +469,7 @@
      public function testExtendedMethodDefinesNewParameters()
      {
          $deprecations = [];
-@@ -410,6 +419,9 @@ class DebugClassLoaderTest extends TestCase
+@@ -484,6 +493,9 @@ class DebugClassLoaderTest extends TestCase
          ], $deprecations);
      }
  
@@ -475,7 +479,7 @@
      public function testOverrideFinalProperty()
      {
          $deprecations = [];
-@@ -431,6 +443,9 @@ class DebugClassLoaderTest extends TestCase
+@@ -505,6 +517,9 @@ class DebugClassLoaderTest extends TestCase
          ], $deprecations);
      }
  
@@ -485,7 +489,7 @@
      public function testOverrideFinalConstant()
      {
          $deprecations = [];
-@@ -448,6 +463,9 @@ class DebugClassLoaderTest extends TestCase
+@@ -522,6 +537,9 @@ class DebugClassLoaderTest extends TestCase
          ], $deprecations);
      }
  
@@ -514,7 +518,7 @@
 -    }
  }
 diff --git a/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php b/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php
-index 7774d9b..1e34ca8 100644
+index 2f7c307..aeceebb 100644
 --- a/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php
 +++ b/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php
 @@ -11,8 +11,6 @@
@@ -537,7 +541,7 @@
       */
 diff --git a/src/Symfony/Component/Form/Tests/VersionAwareTest.php b/src/Symfony/Component/Form/Tests/VersionAwareTest.php
 deleted file mode 100644
-index 1a35b72..0000000
+index 90e0d10..0000000
 --- a/src/Symfony/Component/Form/Tests/VersionAwareTest.php
 +++ /dev/null
 @@ -1,24 +0,0 @@
@@ -561,26 +565,26 @@
 -    protected function requiresFeatureSet(int $requiredFeatureSetVersion)
 -    {
 -        if ($requiredFeatureSetVersion > static::$supportedFeatureSetVersion) {
--            $this->markTestSkipped(sprintf('Test requires features from symfony/form %.2f but only version %.2f is supported.', $requiredFeatureSetVersion / 100, static::$supportedFeatureSetVersion / 100));
+-            $this->markTestSkipped(\sprintf('Test requires features from symfony/form %.2f but only version %.2f is supported.', $requiredFeatureSetVersion / 100, static::$supportedFeatureSetVersion / 100));
 -        }
 -    }
 -}
 diff --git a/src/Symfony/Component/HttpClient/Tests/NoPrivateNetworkHttpClientTest.php b/src/Symfony/Component/HttpClient/Tests/NoPrivateNetworkHttpClientTest.php
-index 06ffc12..e52a040 100644
+index 000b234..d47d3db 100644
 --- a/src/Symfony/Component/HttpClient/Tests/NoPrivateNetworkHttpClientTest.php
 +++ b/src/Symfony/Component/HttpClient/Tests/NoPrivateNetworkHttpClientTest.php
-@@ -68,6 +68,7 @@ class NoPrivateNetworkHttpClientTest extends TestCase
- 
+@@ -69,6 +69,7 @@ class NoPrivateNetworkHttpClientTest extends TestCase
      /**
       * @dataProvider getExcludeIpData
+      *
 +     * @group nophpunit11
       * @group dns-sensitive
       */
      public function testExcludeByIp(string $ipAddr, $subnets, bool $mustThrow)
-@@ -105,6 +106,7 @@ class NoPrivateNetworkHttpClientTest extends TestCase
- 
+@@ -107,6 +108,7 @@ class NoPrivateNetworkHttpClientTest extends TestCase
      /**
       * @dataProvider getExcludeHostData
+      *
 +     * @group nophpunit11
       * @group dns-sensitive
       */
@@ -614,7 +618,7 @@
      {
          $response = new Response();
 diff --git a/src/Symfony/Component/HttpFoundation/Tests/Test/Constraint/ResponseFormatSameTest.php b/src/Symfony/Component/HttpFoundation/Tests/Test/Constraint/ResponseFormatSameTest.php
-index aed9285..9c4491c 100644
+index 42355f7..f65338f 100644
 --- a/src/Symfony/Component/HttpFoundation/Tests/Test/Constraint/ResponseFormatSameTest.php
 +++ b/src/Symfony/Component/HttpFoundation/Tests/Test/Constraint/ResponseFormatSameTest.php
 @@ -23,6 +23,9 @@ use Symfony\Component\HttpFoundation\Test\Constraint\ResponseFormatSame;
@@ -722,10 +726,10 @@
      {
          $constraint = new ResponseStatusCodeSame(200);
 diff --git a/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php b/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php
-index 5156086..e698c4d 100644
+index 65ecce7..fe52dfc 100644
 --- a/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php
 +++ b/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php
-@@ -75,7 +75,7 @@ abstract class TransportFactoryTestCase extends TestCase
+@@ -78,7 +78,7 @@ abstract class TransportFactoryTestCase extends TestCase
      }
  
      /**
@@ -734,7 +738,7 @@
       */
      public function testUnsupportedSchemeException(Dsn $dsn, ?string $message = null)
      {
-@@ -90,7 +90,7 @@ abstract class TransportFactoryTestCase extends TestCase
+@@ -93,7 +93,7 @@ abstract class TransportFactoryTestCase extends TestCase
      }
  
      /**
@@ -744,7 +748,7 @@
      public function testIncompleteDsnException(Dsn $dsn)
      {
 diff --git a/src/Symfony/Component/Mailer/Tests/Transport/FailoverTransportTest.php b/src/Symfony/Component/Mailer/Tests/Transport/FailoverTransportTest.php
-index 7988d57..37063a5 100644
+index 2c6b25e..480e565 100644
 --- a/src/Symfony/Component/Mailer/Tests/Transport/FailoverTransportTest.php
 +++ b/src/Symfony/Component/Mailer/Tests/Transport/FailoverTransportTest.php
 @@ -82,6 +82,9 @@ class FailoverTransportTest extends TestCase
@@ -778,10 +782,10 @@
      {
          $t1Matcher = $this->any();
 diff --git a/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php b/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php
-index a1b2bef..9cddeac 100644
+index 7daeb7e..6c5db76 100644
 --- a/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php
 +++ b/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php
-@@ -113,6 +113,9 @@ class RoundRobinTransportTest extends TestCase
+@@ -115,6 +115,9 @@ class RoundRobinTransportTest extends TestCase
          $this->assertTransports($t, 1, [$t2]);
      }
  
@@ -792,7 +796,7 @@
      {
          $t1 = $this->createMock(TransportInterface::class);
 diff --git a/src/Symfony/Component/Messenger/Tests/Middleware/DispatchAfterCurrentBusMiddlewareTest.php b/src/Symfony/Component/Messenger/Tests/Middleware/DispatchAfterCurrentBusMiddlewareTest.php
-index 2c671cf..63ce439 100644
+index 665af3b..6d3b4f0 100644
 --- a/src/Symfony/Component/Messenger/Tests/Middleware/DispatchAfterCurrentBusMiddlewareTest.php
 +++ b/src/Symfony/Component/Messenger/Tests/Middleware/DispatchAfterCurrentBusMiddlewareTest.php
 @@ -72,6 +72,9 @@ class DispatchAfterCurrentBusMiddlewareTest extends TestCase
@@ -816,10 +820,10 @@
      {
          $command = new DummyMessage('Level 0');
 diff --git a/src/Symfony/Component/Messenger/Tests/Middleware/SendMessageMiddlewareTest.php b/src/Symfony/Component/Messenger/Tests/Middleware/SendMessageMiddlewareTest.php
-index df40276..0de5416 100644
+index 2cc4a84..b2cc581 100644
 --- a/src/Symfony/Component/Messenger/Tests/Middleware/SendMessageMiddlewareTest.php
 +++ b/src/Symfony/Component/Messenger/Tests/Middleware/SendMessageMiddlewareTest.php
-@@ -28,6 +28,9 @@ use Symfony\Component\Messenger\Transport\Sender\SendersLocator;
+@@ -29,6 +29,9 @@ use Symfony\Component\Messenger\Transport\Sender\SendersLocator;
  
  class SendMessageMiddlewareTest extends MiddlewareTestCase
  {
@@ -830,10 +834,10 @@
      {
          $message = new DummyMessage('Hey');
 diff --git a/src/Symfony/Component/Mime/Tests/Crypto/DkimSignerTest.php b/src/Symfony/Component/Mime/Tests/Crypto/DkimSignerTest.php
-index 8832c72..3cfd9d5 100644
+index 9ace18b..2ebeceb 100644
 --- a/src/Symfony/Component/Mime/Tests/Crypto/DkimSignerTest.php
 +++ b/src/Symfony/Component/Mime/Tests/Crypto/DkimSignerTest.php
-@@ -45,6 +45,7 @@ EOF;
+@@ -45,6 +45,7 @@ class DkimSignerTest extends TestCase
  
      /**
       * @dataProvider getSignData
@@ -887,10 +891,10 @@
      public function testMissingRequiredOptionException(string $dsn, ?string $message = null)
      {
 diff --git a/src/Symfony/Component/Notifier/Tests/Transport/FailoverTransportTest.php b/src/Symfony/Component/Notifier/Tests/Transport/FailoverTransportTest.php
-index 866e141..d6c34d4 100644
+index f0ce71e..f67a060 100644
 --- a/src/Symfony/Component/Notifier/Tests/Transport/FailoverTransportTest.php
 +++ b/src/Symfony/Component/Notifier/Tests/Transport/FailoverTransportTest.php
-@@ -111,6 +111,9 @@ class FailoverTransportTest extends TestCase
+@@ -121,6 +121,9 @@ class FailoverTransportTest extends TestCase
          $t->send($message);
      }
  
@@ -900,7 +904,7 @@
      public function testSendAllDeadWithinRetryPeriod()
      {
          $message = new DummyMessage();
-@@ -144,6 +147,9 @@ class FailoverTransportTest extends TestCase
+@@ -158,6 +161,9 @@ class FailoverTransportTest extends TestCase
          $t->send($message);
      }
  
@@ -911,7 +915,7 @@
      {
          $message = new DummyMessage();
 diff --git a/src/Symfony/Component/Process/Tests/ProcessTest.php b/src/Symfony/Component/Process/Tests/ProcessTest.php
-index 47e4f7d..2e1e87c 100644
+index c623bad..9e98d15 100644
 --- a/src/Symfony/Component/Process/Tests/ProcessTest.php
 +++ b/src/Symfony/Component/Process/Tests/ProcessTest.php
 @@ -67,6 +67,7 @@ class ProcessTest extends TestCase
@@ -923,7 +927,7 @@
       */
      public function testThatProcessDoesNotThrowWarningDuringRun()
 diff --git a/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorCollectionTestCase.php b/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorCollectionTestCase.php
-index 742889a..416f869 100644
+index 768630c..1cfe828 100644
 --- a/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorCollectionTestCase.php
 +++ b/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorCollectionTestCase.php
 @@ -154,6 +154,9 @@ abstract class PropertyAccessorCollectionTestCase extends PropertyAccessorArrayA
@@ -937,7 +941,7 @@
      {
          $this->expectException(NoSuchPropertyException::class);
 diff --git a/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php b/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php
-index f019857..42dc45f 100644
+index c8f37c9..1526c18 100644
 --- a/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php
 +++ b/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php
 @@ -77,7 +77,6 @@ class OidcTokenHandlerTest extends TestCase
@@ -949,10 +953,10 @@
       */
      public function testThrowsAnErrorIfTokenIsInvalid(string $token)
 diff --git a/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php b/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php
-index c1a3b5c..41e5655 100644
+index 3004e8d..7fc73ea 100644
 --- a/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php
 +++ b/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php
-@@ -322,6 +322,9 @@ class AuthenticatorManagerTest extends TestCase
+@@ -329,6 +329,9 @@ class AuthenticatorManagerTest extends TestCase
          $this->assertSame($this->response, $response);
      }
  
@@ -961,12 +965,12 @@
 +     */
      public function testLogsUseTheDecoratedAuthenticatorWhenItIsTraceable()
      {
-         $authenticator = $this->createMock(TestInteractiveAuthenticator::class);
+         $authenticator = $this->createStub(TestInteractiveAuthenticator::class);
 diff --git a/src/Symfony/Component/Security/Http/Tests/Controller/UserValueResolverTest.php b/src/Symfony/Component/Security/Http/Tests/Controller/UserValueResolverTest.php
-index ca22899..3357aa1 100644
+index 1f36185..381f2e2 100644
 --- a/src/Symfony/Component/Security/Http/Tests/Controller/UserValueResolverTest.php
 +++ b/src/Symfony/Component/Security/Http/Tests/Controller/UserValueResolverTest.php
-@@ -123,6 +123,9 @@ class UserValueResolverTest extends TestCase
+@@ -124,6 +124,9 @@ class UserValueResolverTest extends TestCase
          $this->assertSame([$user], $resolver->resolve(Request::create('/'), $metadata));
      }
  
@@ -975,9 +979,9 @@
 +     */
      public function testResolveThrowsAccessDeniedWithWrongUserClass()
      {
-         $user = $this->createMock(UserInterface::class);
+         $user = new CustomUser('John', ['ROLE_USER'], 'password', 'hash');
 diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php
-index e65b6f6..950064d 100644
+index d8834e3..56aa8d7 100644
 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php
 +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php
 @@ -79,7 +79,7 @@ class DateTimeNormalizerTest extends TestCase
@@ -1004,25 +1008,25 @@
      {
 -        yield 'with timezone' => [
 -            '2016/12/01 17:35:00',
--            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Japan')),
--            new \DateTimeZone('Japan'),
+-            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Asia/Tokyo')),
+-            new \DateTimeZone('Asia/Tokyo'),
 -        ];
 -        yield 'with timezone as string' => [
 -            '2016/12/01 17:35:00',
--            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Japan')),
--            'Japan',
+-            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Asia/Tokyo')),
+-            'Asia/Tokyo',
 -        ];
 -        yield 'with format without timezone information' => [
 -            '2016.12.01 17:35:00',
--            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Japan')),
--            new \DateTimeZone('Japan'),
+-            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Asia/Tokyo')),
+-            new \DateTimeZone('Asia/Tokyo'),
 -            'Y.m.d H:i:s',
 -        ];
          yield 'ignored with format with timezone information' => [
              '2016-12-01T17:35:00Z',
              new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('UTC')),
 diff --git a/src/Symfony/Component/String/Tests/Slugger/AsciiSluggerTest.php b/src/Symfony/Component/String/Tests/Slugger/AsciiSluggerTest.php
-index 7a6c06a..96c4680 100644
+index 5573ec4..84b1885 100644
 --- a/src/Symfony/Component/String/Tests/Slugger/AsciiSluggerTest.php
 +++ b/src/Symfony/Component/String/Tests/Slugger/AsciiSluggerTest.php
 @@ -72,11 +72,6 @@ class AsciiSluggerTest extends TestCase
@@ -1050,7 +1054,7 @@
  
      /**
 diff --git a/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderTest.php b/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderTest.php
-index 499afbf..34b29b2 100644
+index 9b8f6e2..f96695a 100644
 --- a/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderTest.php
 +++ b/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderTest.php
 @@ -60,6 +60,7 @@ class PhraseProviderTest extends TestCase
@@ -1061,7 +1065,7 @@
       */
      public function testRead(string $locale, string $localeId, string $domain, string $responseContent, TranslatorBag $expectedTranslatorBag)
      {
-@@ -112,6 +113,7 @@ class PhraseProviderTest extends TestCase
+@@ -110,6 +111,7 @@ class PhraseProviderTest extends TestCase
  
      /**
       * @dataProvider readProvider
@@ -1077,7 +1081,7 @@
       */
      public function testCacheKeyOptionsSort(array $options, string $expectedKey)
      {
-@@ -293,6 +296,7 @@ class PhraseProviderTest extends TestCase
+@@ -294,6 +297,7 @@ class PhraseProviderTest extends TestCase
  
      /**
       * @dataProvider cacheItemProvider
@@ -1093,7 +1097,7 @@
       */
      public function testReadProviderExceptions(int $statusCode, string $expectedExceptionMessage, string $expectedLoggerMessage)
      {
-@@ -414,6 +419,7 @@ class PhraseProviderTest extends TestCase
+@@ -415,6 +420,7 @@ class PhraseProviderTest extends TestCase
  
      /**
       * @dataProvider initLocalesExceptionsProvider
@@ -1101,7 +1105,7 @@
       */
      public function testInitLocalesExceptions(int $statusCode, string $expectedExceptionMessage, string $expectedLoggerMessage)
      {
-@@ -538,6 +544,7 @@ class PhraseProviderTest extends TestCase
+@@ -540,6 +546,7 @@ class PhraseProviderTest extends TestCase
  
      /**
       * @dataProvider createLocalesExceptionsProvider
@@ -1109,7 +1113,7 @@
       */
      public function testCreateLocaleExceptions(int $statusCode, string $expectedExceptionMessage, string $expectedLoggerMessage)
      {
-@@ -626,6 +633,7 @@ class PhraseProviderTest extends TestCase
+@@ -629,6 +636,7 @@ class PhraseProviderTest extends TestCase
  
      /**
       * @dataProvider deleteExceptionsProvider
@@ -1117,7 +1121,7 @@
       */
      public function testDeleteProviderExceptions(int $statusCode, string $expectedExceptionMessage, string $expectedLoggerMessage)
      {
-@@ -668,6 +676,7 @@ class PhraseProviderTest extends TestCase
+@@ -672,6 +680,7 @@ class PhraseProviderTest extends TestCase
  
      /**
       * @dataProvider writeProvider
@@ -1125,7 +1129,7 @@
       */
      public function testWrite(string $locale, string $localeId, string $domain, string $content, TranslatorBag $bag)
      {
-@@ -744,6 +753,7 @@ class PhraseProviderTest extends TestCase
+@@ -748,6 +757,7 @@ class PhraseProviderTest extends TestCase
  
      /**
       * @dataProvider writeExceptionsProvider
@@ -1146,7 +1150,7 @@
       */
      public function testDefaults()
 diff --git a/src/Symfony/Component/Uid/Tests/UlidTest.php b/src/Symfony/Component/Uid/Tests/UlidTest.php
-index 6669bef..02ceaa4 100644
+index d987de8..1c2fd44 100644
 --- a/src/Symfony/Component/Uid/Tests/UlidTest.php
 +++ b/src/Symfony/Component/Uid/Tests/UlidTest.php
 @@ -22,6 +22,7 @@ class UlidTest extends TestCase
@@ -1158,7 +1162,7 @@
      public function testGenerate()
      {
 diff --git a/src/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php b/src/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
-index fa44b8a..5eb2b2a 100644
+index 0a92994..a5eb25c 100644
 --- a/src/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
 +++ b/src/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
 @@ -99,7 +99,7 @@ abstract class AbstractComparisonValidatorTestCase extends ConstraintValidatorTe
@@ -1246,7 +1250,7 @@
      public function testThrowsOnInvalidStringDates($expectedMessage, $value, $min, $max)
      {
 diff --git a/src/Symfony/Component/Validator/Tests/Mapping/Loader/PropertyInfoLoaderTest.php b/src/Symfony/Component/Validator/Tests/Mapping/Loader/PropertyInfoLoaderTest.php
-index f6a9e84..4b10dfd 100644
+index 0ebc17e..bf7a796 100644
 --- a/src/Symfony/Component/Validator/Tests/Mapping/Loader/PropertyInfoLoaderTest.php
 +++ b/src/Symfony/Component/Validator/Tests/Mapping/Loader/PropertyInfoLoaderTest.php
 @@ -33,6 +33,9 @@ use Symfony\Component\Validator\Validation;
@@ -1258,9 +1262,9 @@
 +     */
      public function testLoadClassMetadata()
      {
-         $propertyInfoStub = $this->createMock(PropertyInfoExtractorInterface::class);
+         $propertyInfoStub = $this->createStub(PropertyInfoExtractorInterface::class);
 diff --git a/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php b/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php
-index e0c2108..f2d7b27 100644
+index 02248a7..5a901d6 100644
 --- a/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php
 +++ b/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php
 @@ -25,6 +25,9 @@ class DoctrineCasterTest extends TestCase
diff -Nru symfony-6.4.21+dfsg/debian/patches/HttpClient-Skip-tests-relying-on-amphp-http-client.patch symfony-6.4.40+dfsg/debian/patches/HttpClient-Skip-tests-relying-on-amphp-http-client.patch
--- symfony-6.4.21+dfsg/debian/patches/HttpClient-Skip-tests-relying-on-amphp-http-client.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/HttpClient-Skip-tests-relying-on-amphp-http-client.patch	2026-05-22 01:06:27.000000000 +0200
@@ -7,10 +7,10 @@
  1 file changed, 7 insertions(+)
 
 diff --git a/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php b/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php
-index 3b83d82..a85d345 100644
+index e9abbcf..5b1fdea 100644
 --- a/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php
 +++ b/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php
-@@ -33,6 +33,13 @@ The vulcain binary can be found at https://github.com/symfony/binary-utils/relea
+@@ -34,6 +34,13 @@ The vulcain binary can be found at https://github.com/symfony/binary-utils/relea
  
  abstract class HttpClientTestCase extends BaseHttpClientTestCase
  {
diff -Nru symfony-6.4.21+dfsg/debian/patches/HttpFoundation-Fix-parsing-pathinfo-with-no-leading-slash.patch symfony-6.4.40+dfsg/debian/patches/HttpFoundation-Fix-parsing-pathinfo-with-no-leading-slash.patch
--- symfony-6.4.21+dfsg/debian/patches/HttpFoundation-Fix-parsing-pathinfo-with-no-leading-slash.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/HttpFoundation-Fix-parsing-pathinfo-with-no-leading-slash.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,49 +0,0 @@
-From: Nicolas Grekas <nicolas.grekas@gmail.com>
-Date: Fri, 31 Oct 2025 17:43:49 +0100
-Subject: [HttpFoundation] Fix parsing pathinfo with no leading slash
-
-Origin: upstream, https://github.com/symfony/symfony/commit/9962b91b12bb791322fa73836b350836b6db7cac
-Bug: https://github.com/symfony/symfony/security/advisories/GHSA-3rg7-wf37-54rm
-Bug-Debian: https://security-tracker.debian.org/tracker/CVE-2025-64500
----
- src/Symfony/Component/HttpFoundation/Request.php           |  5 ++---
- src/Symfony/Component/HttpFoundation/Tests/RequestTest.php | 10 ++++++++++
- 2 files changed, 12 insertions(+), 3 deletions(-)
-
-diff --git a/src/Symfony/Component/HttpFoundation/Request.php b/src/Symfony/Component/HttpFoundation/Request.php
-index 9220141..77e7384 100644
---- a/src/Symfony/Component/HttpFoundation/Request.php
-+++ b/src/Symfony/Component/HttpFoundation/Request.php
-@@ -1917,9 +1917,8 @@ class Request
-         }
- 
-         $pathInfo = substr($requestUri, \strlen($baseUrl));
--        if (false === $pathInfo || '' === $pathInfo) {
--            // If substr() returns false then PATH_INFO is set to an empty string
--            return '/';
-+        if (false === $pathInfo || '' === $pathInfo || '/' !== $pathInfo[0]) {
-+            return '/'.$pathInfo;
-         }
- 
-         return $pathInfo;
-diff --git a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
-index 7a4807e..5f35640 100644
---- a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
-+++ b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
-@@ -1906,6 +1906,16 @@ class RequestTest extends TestCase
-                 '',
-                 '/foo/api/bar',
-             ],
-+            [
-+                '/api/index.phpfoo',
-+                [
-+                    'SCRIPT_FILENAME' => '/var/www/api/index.php',
-+                    'SCRIPT_NAME' => '/api/index.php',
-+                    'PHP_SELF' => '/api/index.php',
-+                ],
-+                '/api/index.php',
-+                '/foo',
-+            ],
-         ];
-     }
- 
diff -Nru symfony-6.4.21+dfsg/debian/patches/HttpFoundation-Skip-tests-currently-failing.patch symfony-6.4.40+dfsg/debian/patches/HttpFoundation-Skip-tests-currently-failing.patch
--- symfony-6.4.21+dfsg/debian/patches/HttpFoundation-Skip-tests-currently-failing.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/HttpFoundation-Skip-tests-currently-failing.patch	2026-05-22 01:06:27.000000000 +0200
@@ -9,7 +9,7 @@
  2 files changed, 4 insertions(+)
 
 diff --git a/src/Symfony/Component/HttpFoundation/Tests/ResponseFunctionalTest.php b/src/Symfony/Component/HttpFoundation/Tests/ResponseFunctionalTest.php
-index 1b3566a..7330ac3 100644
+index 30fb9b0..cd2ebd9 100644
 --- a/src/Symfony/Component/HttpFoundation/Tests/ResponseFunctionalTest.php
 +++ b/src/Symfony/Component/HttpFoundation/Tests/ResponseFunctionalTest.php
 @@ -45,6 +45,8 @@ class ResponseFunctionalTest extends TestCase
@@ -18,11 +18,11 @@
      {
 +        $this->markTestSkipped('Test currently failing on Debian.');
 +
-         $result = file_get_contents(sprintf('http://localhost:8054/%s.php', $fixture));
-         $result = preg_replace_callback('/expires=[^;]++/', fn ($m) => str_replace('-', ' ', $m[0]), $result);
-         $this->assertStringMatchesFormatFile(__DIR__.sprintf('/Fixtures/response-functional/%s.expected', $fixture), $result);
+         $result = file_get_contents(\sprintf('http://localhost:8054/%s.php', $fixture));
+         $result = preg_replace_callback('/expires=[^;]++/', static fn ($m) => str_replace('-', ' ', $m[0]), $result);
+         $this->assertStringMatchesFormatFile(__DIR__.\sprintf('/Fixtures/response-functional/%s.expected', $fixture), $result);
 diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractSessionHandlerTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractSessionHandlerTest.php
-index 27fb57d..0c11122 100644
+index f3d5d6e..8d7c6ba 100644
 --- a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractSessionHandlerTest.php
 +++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractSessionHandlerTest.php
 @@ -43,6 +43,8 @@ class AbstractSessionHandlerTest extends TestCase
@@ -33,4 +33,4 @@
 +
          $context = ['http' => ['header' => "Cookie: sid=123abc\r\n"]];
          $context = stream_context_create($context);
-         $result = file_get_contents(sprintf('http://localhost:8053/%s.php', $fixture), false, $context);
+         $result = file_get_contents(\sprintf('http://localhost:8053/%s.php', $fixture), false, $context);
diff -Nru symfony-6.4.21+dfsg/debian/patches/Increasing-timeout-in-test-AbstractProcessTest-testS.patch symfony-6.4.40+dfsg/debian/patches/Increasing-timeout-in-test-AbstractProcessTest-testS.patch
--- symfony-6.4.21+dfsg/debian/patches/Increasing-timeout-in-test-AbstractProcessTest-testS.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Increasing-timeout-in-test-AbstractProcessTest-testS.patch	2026-05-22 01:06:27.000000000 +0200
@@ -12,10 +12,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/Symfony/Component/Process/Tests/ProcessTest.php b/src/Symfony/Component/Process/Tests/ProcessTest.php
-index 2682d4a..47e4f7d 100644
+index 8e8c073..c623bad 100644
 --- a/src/Symfony/Component/Process/Tests/ProcessTest.php
 +++ b/src/Symfony/Component/Process/Tests/ProcessTest.php
-@@ -899,9 +899,9 @@ class ProcessTest extends TestCase
+@@ -917,9 +917,9 @@ class ProcessTest extends TestCase
      public function testStartAfterATimeout()
      {
          $this->expectException(ProcessTimedOutException::class);
diff -Nru symfony-6.4.21+dfsg/debian/patches/Lock-Drop-test-currently-failing-on-buildd.patch symfony-6.4.40+dfsg/debian/patches/Lock-Drop-test-currently-failing-on-buildd.patch
--- symfony-6.4.21+dfsg/debian/patches/Lock-Drop-test-currently-failing-on-buildd.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Lock-Drop-test-currently-failing-on-buildd.patch	2026-05-22 01:06:27.000000000 +0200
@@ -8,10 +8,10 @@
  1 file changed, 1 deletion(-)
 
 diff --git a/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php b/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php
-index ea0cb6c..09c9d5e 100644
+index a7e1460..546e06b 100644
 --- a/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php
 +++ b/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php
-@@ -178,7 +178,6 @@ class DoctrineDbalStoreTest extends AbstractStoreTestCase
+@@ -271,7 +271,6 @@ class DoctrineDbalStoreTest extends AbstractStoreTestCase
              yield [\Doctrine\DBAL\Platforms\PostgreSQL94Platform::class];
          }
  
diff -Nru symfony-6.4.21+dfsg/debian/patches/PhpUnit-Skip-tests-currently-failing.patch symfony-6.4.40+dfsg/debian/patches/PhpUnit-Skip-tests-currently-failing.patch
--- symfony-6.4.21+dfsg/debian/patches/PhpUnit-Skip-tests-currently-failing.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/PhpUnit-Skip-tests-currently-failing.patch	2026-05-22 01:06:27.000000000 +0200
@@ -8,7 +8,7 @@
  1 file changed, 3 insertions(+)
 
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php
-index 8eaae56..2b562d2 100644
+index e89b34a..34bb193 100644
 --- a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php
 +++ b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php
 @@ -56,6 +56,8 @@ class DeprecationTest extends TestCase
diff -Nru symfony-6.4.21+dfsg/debian/patches/PhpUnit-Use-phpunit-directly.patch symfony-6.4.40+dfsg/debian/patches/PhpUnit-Use-phpunit-directly.patch
--- symfony-6.4.21+dfsg/debian/patches/PhpUnit-Use-phpunit-directly.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/PhpUnit-Use-phpunit-directly.patch	2026-05-22 01:06:27.000000000 +0200
@@ -9,39 +9,39 @@
  3 files changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt b/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt
-index f968cd1..c4889e4 100644
+index f97667b..c1d0a1b 100644
 --- a/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt
 +++ b/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt
-@@ -3,7 +3,7 @@ Test ExpectDeprecationTrait failing tests
- --FILE--
- <?php
- $test =  realpath(__DIR__.'/FailTests/ExpectDeprecationTraitTestFail.php');
+@@ -5,7 +5,7 @@ Test ExpectDeprecationTrait failing tests
+ putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
+ putenv('SYMFONY_EXPECTED_DEPRECATIONS_SERIALIZE');
+ $test = realpath(__DIR__.'/FailTests/ExpectDeprecationTraitTestFail.php');
 -passthru('php '.getenv('SYMFONY_SIMPLE_PHPUNIT_BIN_DIR').'/simple-phpunit.php --colors=never '.$test);
 +passthru('phpunit --colors=never '.$test);
  ?>
  --EXPECTF--
  PHPUnit %s
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt b/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt
-index 2005adf..b300add 100644
+index d2ccccf..5599e33 100644
 --- a/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt
 +++ b/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt
 @@ -5,7 +5,7 @@ Test NoAssertionsTestNotRisky not risky test
  --FILE--
  <?php
- $test =  realpath(__DIR__.'/FailTests/NoAssertionsTestNotRisky.php');
+ $test = realpath(__DIR__.'/FailTests/NoAssertionsTestNotRisky.php');
 -passthru('php '.getenv('SYMFONY_SIMPLE_PHPUNIT_BIN_DIR').'/simple-phpunit.php --fail-on-risky --colors=never '.$test);
 +passthru('phpunit --fail-on-risky --colors=never '.$test);
  ?>
  --EXPECTF--
  PHPUnit %s
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt b/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt
-index 91e0830..43cde22 100644
+index 82da362..3013d8c 100644
 --- a/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt
 +++ b/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt
-@@ -5,7 +5,7 @@ Test NoAssertionsTestRisky risky test
- --FILE--
- <?php
- $test =  realpath(__DIR__.'/FailTests/NoAssertionsTestRisky.php');
+@@ -7,7 +7,7 @@ Test NoAssertionsTestRisky risky test
+ putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
+ putenv('SYMFONY_EXPECTED_DEPRECATIONS_SERIALIZE');
+ $test = realpath(__DIR__.'/FailTests/NoAssertionsTestRisky.php');
 -passthru('php '.getenv('SYMFONY_SIMPLE_PHPUNIT_BIN_DIR').'/simple-phpunit.php --fail-on-risky --colors=never '.$test);
 +passthru('phpunit --fail-on-risky --colors=never '.$test);
  ?>
diff -Nru symfony-6.4.21+dfsg/debian/patches/Remove-calls-to-getExpectedException.patch symfony-6.4.40+dfsg/debian/patches/Remove-calls-to-getExpectedException.patch
--- symfony-6.4.21+dfsg/debian/patches/Remove-calls-to-getExpectedException.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Remove-calls-to-getExpectedException.patch	2026-05-22 01:06:27.000000000 +0200
@@ -8,10 +8,10 @@
  1 file changed, 5 insertions(+), 5 deletions(-)
 
 diff --git a/src/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php b/src/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
-index 9d16013..5a5c96d 100644
+index f714b42..06749de 100644
 --- a/src/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
 +++ b/src/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
-@@ -388,7 +388,7 @@ class UrlMatcherTest extends TestCase
+@@ -427,7 +427,7 @@ class UrlMatcherTest extends TestCase
  
      public function testExtraTrailingSlash()
      {
@@ -20,7 +20,7 @@
          $coll = new RouteCollection();
          $coll->add('foo', new Route('/foo'));
  
-@@ -398,7 +398,7 @@ class UrlMatcherTest extends TestCase
+@@ -437,7 +437,7 @@ class UrlMatcherTest extends TestCase
  
      public function testMissingTrailingSlashForNonSafeMethod()
      {
@@ -29,7 +29,7 @@
          $coll = new RouteCollection();
          $coll->add('foo', new Route('/foo/'));
  
-@@ -410,7 +410,7 @@ class UrlMatcherTest extends TestCase
+@@ -449,7 +449,7 @@ class UrlMatcherTest extends TestCase
  
      public function testExtraTrailingSlashForNonSafeMethod()
      {
@@ -38,7 +38,7 @@
          $coll = new RouteCollection();
          $coll->add('foo', new Route('/foo'));
  
-@@ -422,7 +422,7 @@ class UrlMatcherTest extends TestCase
+@@ -461,7 +461,7 @@ class UrlMatcherTest extends TestCase
  
      public function testSchemeRequirement()
      {
@@ -47,7 +47,7 @@
          $coll = new RouteCollection();
          $coll->add('foo', new Route('/foo', [], [], [], '', ['https']));
          $matcher = $this->getUrlMatcher($coll);
-@@ -431,7 +431,7 @@ class UrlMatcherTest extends TestCase
+@@ -470,7 +470,7 @@ class UrlMatcherTest extends TestCase
  
      public function testSchemeRequirementForNonSafeMethod()
      {
diff -Nru symfony-6.4.21+dfsg/debian/patches/Revert-ErrorHandler-Skip-same-vendor-method-deprecations-.patch symfony-6.4.40+dfsg/debian/patches/Revert-ErrorHandler-Skip-same-vendor-method-deprecations-.patch
--- symfony-6.4.21+dfsg/debian/patches/Revert-ErrorHandler-Skip-same-vendor-method-deprecations-.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Revert-ErrorHandler-Skip-same-vendor-method-deprecations-.patch	2026-05-22 01:06:27.000000000 +0200
@@ -11,7 +11,7 @@
  1 file changed, 9 deletions(-)
 
 diff --git a/src/Symfony/Component/ErrorHandler/DebugClassLoader.php b/src/Symfony/Component/ErrorHandler/DebugClassLoader.php
-index 3f2a136..89165d2 100644
+index a7dff65..c9080a8 100644
 --- a/src/Symfony/Component/ErrorHandler/DebugClassLoader.php
 +++ b/src/Symfony/Component/ErrorHandler/DebugClassLoader.php
 @@ -11,7 +11,6 @@
@@ -22,10 +22,10 @@
  use Doctrine\Common\Persistence\Proxy as LegacyProxy;
  use Doctrine\Persistence\Proxy;
  use Mockery\MockInterface;
-@@ -442,14 +441,6 @@ class DebugClassLoader
+@@ -476,14 +475,6 @@ class DebugClassLoader
                          self::$method[$class] = self::$method[$use];
                      }
-                 } elseif (!$refl->isInterface()) {
+                 } else {
 -                    if (!strncmp($vendor, str_replace('_', '\\', $use), $vendorLen)
 -                        && str_starts_with($className, 'Symfony\\')
 -                        && (!class_exists(InstalledVersions::class)
@@ -34,6 +34,6 @@
 -                        // skip "same vendor" @method deprecations for Symfony\* classes unless symfony/symfony is being tested
 -                        continue;
 -                    }
-                     $hasCall = $refl->hasMethod('__call');
-                     $hasStaticCall = $refl->hasMethod('__callStatic');
                      foreach (self::$method[$use] as [$interface, $static, $returnType, $name, $description]) {
+                         if (isset($parentInterfaces[$interface])) {
+                             // The @method annotation comes from an interface that has already been implemented by a concrete parent class,
diff -Nru symfony-6.4.21+dfsg/debian/patches/Scheduler-Adapt-filler-in-tests.patch symfony-6.4.40+dfsg/debian/patches/Scheduler-Adapt-filler-in-tests.patch
--- symfony-6.4.21+dfsg/debian/patches/Scheduler-Adapt-filler-in-tests.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Scheduler-Adapt-filler-in-tests.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-From: =?utf-8?q?David_Pr=C3=A9vot?= <david@tilapin.org>
-Date: Tue, 1 Aug 2023 13:50:56 +0200
-Subject: [Scheduler] Adapt filler in tests
-
-Should be replaced by an unknown number of spaces to be uncluded upstream.
-
-Forwarded: no
----
- src/Symfony/Component/Scheduler/Tests/Command/DebugCommandTest.php | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Symfony/Component/Scheduler/Tests/Command/DebugCommandTest.php b/src/Symfony/Component/Scheduler/Tests/Command/DebugCommandTest.php
-index e5f1843..1acdb11 100644
---- a/src/Symfony/Component/Scheduler/Tests/Command/DebugCommandTest.php
-+++ b/src/Symfony/Component/Scheduler/Tests/Command/DebugCommandTest.php
-@@ -38,7 +38,7 @@ class DebugCommandTest extends TestCase
- 
-         $tester->execute([], ['decorated' => false]);
- 
--        $filler = str_repeat(' ', 92);
-+        $filler = str_repeat(' ', 52);
-         $this->assertSame("\nScheduler\n=========\n\n [ERROR] No schedules found.{$filler}\n\n", $tester->getDisplay(true));
-     }
- 
diff -Nru symfony-6.4.21+dfsg/debian/patches/series symfony-6.4.40+dfsg/debian/patches/series
--- symfony-6.4.21+dfsg/debian/patches/series	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/series	2026-05-22 01:06:27.000000000 +0200
@@ -27,7 +27,6 @@
 Workaround-dh_phpcomposer-limitations.patch
 Drop-composer-runtime-api-that-confuses-phpabtpl.patch
 Drop-composer-plugin-api-that-confuses-pkg-php-tools.patch
-Scheduler-Adapt-filler-in-tests.patch
 VarDumper-Fix-expected-order-in-test.patch
 Assume-php-async-aws-sqs-2.patch
 VarDumper-Fix-expected-output-for-arm-and-32-bit-arch.patch
@@ -36,9 +35,8 @@
 Remove-calls-to-getExpectedException.patch
 Group-nophpunit11-for-tests-failing-with-PHPUnit-11.patch
 Drop-test-currently-failing-on-buildd.patch
-Skip-test-relying-on-broken-timezone-during-build.patch
 Skip-tests-failing-with-PHPUnit-11.5.17-1.patch
 Drop-tests-currently-failing-on-reproducible-infrastructu.patch
-HttpFoundation-Fix-parsing-pathinfo-with-no-leading-slash.patch
-Finder-Drop-data-from-testsuite.patch
+Filesystem-Drop-currently-failing-tests.patch
+Validator-Skip-failing-test-on-i386.patch
 # DEP-8/Tests-against-installed-classes.patch
diff -Nru symfony-6.4.21+dfsg/debian/patches/Skip-test-relying-on-broken-timezone-during-build.patch symfony-6.4.40+dfsg/debian/patches/Skip-test-relying-on-broken-timezone-during-build.patch
--- symfony-6.4.21+dfsg/debian/patches/Skip-test-relying-on-broken-timezone-during-build.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Skip-test-relying-on-broken-timezone-during-build.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,67 +0,0 @@
-From: =?utf-8?q?David_Pr=C3=A9vot?= <david@tilapin.org>
-Date: Mon, 24 Mar 2025 16:30:31 +0100
-Subject: Skip test relying on broken timezone during build
-
-This seems like a Debian issue, TBD.
----
- .../Serializer/Tests/Normalizer/DateTimeNormalizerTest.php       | 7 ++++---
- .../Validator/Tests/Constraints/TimezoneValidatorTest.php        | 9 ---------
- 2 files changed, 4 insertions(+), 12 deletions(-)
-
-diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php
-index 950064d..4177302 100644
---- a/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php
-+++ b/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php
-@@ -54,6 +54,8 @@ class DateTimeNormalizerTest extends TestCase
- 
-     public function testNormalizeUsingTimeZonePassedInConstructor()
-     {
-+        $this->markTestSkipped('Broken test with this TZ on Debian');
-+
-         $normalizer = new DateTimeNormalizer([DateTimeNormalizer::TIMEZONE_KEY => new \DateTimeZone('Japan')]);
- 
-         $this->assertSame('2016-12-01T00:00:00+09:00', $normalizer->normalize(new \DateTimeImmutable('2016/12/01', new \DateTimeZone('Japan'))));
-@@ -73,9 +75,6 @@ class DateTimeNormalizerTest extends TestCase
-     public static function normalizeUsingTimeZonePassedInContextProvider()
-     {
-         yield ['2016-12-01T00:00:00+00:00', new \DateTimeImmutable('2016/12/01', new \DateTimeZone('UTC')), null];
--        yield ['2016-12-01T00:00:00+09:00', new \DateTimeImmutable('2016/12/01', new \DateTimeZone('Japan')), new \DateTimeZone('Japan')];
--        yield ['2016-12-01T09:00:00+09:00', new \DateTimeImmutable('2016/12/01', new \DateTimeZone('UTC')), new \DateTimeZone('Japan')];
--        yield ['2016-12-01T09:00:00+09:00', new \DateTime('2016/12/01', new \DateTimeZone('UTC')), new \DateTimeZone('Japan')];
-     }
- 
-     /**
-@@ -181,6 +180,8 @@ class DateTimeNormalizerTest extends TestCase
- 
-     public function testDenormalizeUsingTimezonePassedInConstructor()
-     {
-+        $this->markTestSkipped('Broken test with this TZ on Debian');
-+
-         $timezone = new \DateTimeZone('Japan');
-         $expected = new \DateTimeImmutable('2016/12/01 17:35:00', $timezone);
-         $normalizer = new DateTimeNormalizer([DateTimeNormalizer::TIMEZONE_KEY => $timezone]);
-diff --git a/src/Symfony/Component/Validator/Tests/Constraints/TimezoneValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/TimezoneValidatorTest.php
-index a21756a..0e186c4 100644
---- a/src/Symfony/Component/Validator/Tests/Constraints/TimezoneValidatorTest.php
-+++ b/src/Symfony/Component/Validator/Tests/Constraints/TimezoneValidatorTest.php
-@@ -300,20 +300,11 @@ class TimezoneValidatorTest extends ConstraintValidatorTestCase
- 
-     public static function getDeprecatedTimezones(): iterable
-     {
--        yield ['Australia/ACT'];
--        yield ['Australia/LHI'];
--        yield ['Australia/Queensland'];
--        yield ['Canada/Eastern'];
--        yield ['Canada/Central'];
--        yield ['Canada/Mountain'];
--        yield ['Canada/Pacific'];
--        yield ['CET'];
-         yield ['GMT'];
-         yield ['Etc/Greenwich'];
-         yield ['Etc/UCT'];
-         yield ['Etc/Universal'];
-         yield ['Etc/Zulu'];
--        yield ['US/Pacific'];
-     }
- 
-     /**
diff -Nru symfony-6.4.21+dfsg/debian/patches/Skip-tests-failing-with-PHPUnit-11.5.17-1.patch symfony-6.4.40+dfsg/debian/patches/Skip-tests-failing-with-PHPUnit-11.5.17-1.patch
--- symfony-6.4.21+dfsg/debian/patches/Skip-tests-failing-with-PHPUnit-11.5.17-1.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Skip-tests-failing-with-PHPUnit-11.5.17-1.patch	2026-05-22 01:06:27.000000000 +0200
@@ -8,7 +8,7 @@
  1 file changed, 8 insertions(+)
 
 diff --git a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php
-index f1aa0ad..af96557 100644
+index 70aefda..0acddb4 100644
 --- a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php
 +++ b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php
 @@ -348,6 +348,8 @@ class ConfigurationTest extends TestCase
diff -Nru symfony-6.4.21+dfsg/debian/patches/Use-installed-files-for-CI.patch symfony-6.4.40+dfsg/debian/patches/Use-installed-files-for-CI.patch
--- symfony-6.4.21+dfsg/debian/patches/Use-installed-files-for-CI.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Use-installed-files-for-CI.patch	2026-05-22 01:06:27.000000000 +0200
@@ -7,10 +7,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php
-index 7f94b83..fad22e7 100644
+index d9f8b9d..444bddf 100644
 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php
 +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php
-@@ -1185,7 +1185,7 @@ abstract class FrameworkExtensionTestCase extends TestCase
+@@ -1284,7 +1284,7 @@ abstract class FrameworkExtensionTestCase extends TestCase
          if (false !== $positionCoreTranslationFile = array_search(strtr(realpath(__DIR__.'/../../../../Component/Security/Core/Resources/translations/security.en.xlf'), '/', \DIRECTORY_SEPARATOR), $files)) {
              $this->assertContains(strtr(realpath(__DIR__.'/../../../../Component/Security/Core/Resources/translations/security.en.xlf'), '/', \DIRECTORY_SEPARATOR), $files);
          } else {
diff -Nru symfony-6.4.21+dfsg/debian/patches/Validator-Skip-failing-test-on-i386.patch symfony-6.4.40+dfsg/debian/patches/Validator-Skip-failing-test-on-i386.patch
--- symfony-6.4.21+dfsg/debian/patches/Validator-Skip-failing-test-on-i386.patch	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Validator-Skip-failing-test-on-i386.patch	2026-05-22 01:06:27.000000000 +0200
@@ -0,0 +1,24 @@
+From: =?utf-8?q?David_Pr=C3=A9vot?= <david@tilapin.org>
+Date: Sat, 28 Feb 2026 09:12:21 +0100
+Subject: [Validator] Skip failing test on i386
+
+Forwarded: no
+---
+ .../Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php      | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php
+index 10f7201..9315811 100644
+--- a/src/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php
++++ b/src/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php
+@@ -86,6 +86,10 @@ class LessThanOrEqualValidatorTest extends AbstractComparisonValidatorTestCase
+ 
+     public function testInvalidComparisonWithExtremeDateDoesNotThrow()
+     {
++        if (\PHP_INT_SIZE === 4) {
++            self::markTestSkipped('Failing test on i386');
++        }
++
+         $constraint = new LessThanOrEqual(value: new \DateTimeImmutable('2025-01-01'));
+         $constraint->message = 'Constraint Message';
+ 
diff -Nru symfony-6.4.21+dfsg/debian/patches/VarDumper-Fix-expected-order-in-test.patch symfony-6.4.40+dfsg/debian/patches/VarDumper-Fix-expected-order-in-test.patch
--- symfony-6.4.21+dfsg/debian/patches/VarDumper-Fix-expected-order-in-test.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/VarDumper-Fix-expected-order-in-test.patch	2026-05-22 01:06:27.000000000 +0200
@@ -8,7 +8,7 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php b/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php
-index b0b0c90..e0c2108 100644
+index 6dfbfb3..02248a7 100644
 --- a/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php
 +++ b/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php
 @@ -36,10 +36,10 @@ class DoctrineCasterTest extends TestCase
diff -Nru symfony-6.4.21+dfsg/debian/patches/VarDumper-Fix-expected-output-for-arm-and-32-bit-arch.patch symfony-6.4.40+dfsg/debian/patches/VarDumper-Fix-expected-output-for-arm-and-32-bit-arch.patch
--- symfony-6.4.21+dfsg/debian/patches/VarDumper-Fix-expected-output-for-arm-and-32-bit-arch.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/VarDumper-Fix-expected-output-for-arm-and-32-bit-arch.patch	2026-05-22 01:06:27.000000000 +0200
@@ -3,14 +3,14 @@
 Subject: [VarDumper] Fix expected output for arm and 32-bit arch
 
 ---
- .../VarDumper/Tests/Caster/FFICasterTest.php       | 91 ++++++++++++++--------
- 1 file changed, 59 insertions(+), 32 deletions(-)
+ .../VarDumper/Tests/Caster/FFICasterTest.php       | 90 ++++++++++++++--------
+ 1 file changed, 58 insertions(+), 32 deletions(-)
 
 diff --git a/src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php b/src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php
-index 362e0a2..2ecf081 100644
+index a599453..581fd58 100644
 --- a/src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php
 +++ b/src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php
-@@ -104,13 +104,13 @@ class FFICasterTest extends TestCase
+@@ -116,13 +116,13 @@ class FFICasterTest extends TestCase
              'uint16_t' => ['uint16_t', '0', 2, 2],
              'int32_t' => ['int32_t', '0', 4, 4],
              'uint32_t' => ['uint32_t', '0', 4, 4],
@@ -27,7 +27,7 @@
          ];
      }
  
-@@ -128,6 +128,8 @@ class FFICasterTest extends TestCase
+@@ -142,6 +142,8 @@ class FFICasterTest extends TestCase
  
      public function testCastVoidFunction()
      {
@@ -36,7 +36,7 @@
          $abi = \PHP_OS_FAMILY === 'Windows' ? '[cdecl]' : '[fastcall]';
  
          $this->assertDumpEquals(<<<PHP
-@@ -139,6 +141,8 @@ class FFICasterTest extends TestCase
+@@ -155,6 +157,8 @@ class FFICasterTest extends TestCase
  
      public function testCastIntFunction()
      {
@@ -45,7 +45,7 @@
          $abi = \PHP_OS_FAMILY === 'Windows' ? '[cdecl]' : '[fastcall]';
  
          $this->assertDumpEquals(<<<PHP
-@@ -150,6 +154,8 @@ class FFICasterTest extends TestCase
+@@ -168,6 +172,8 @@ class FFICasterTest extends TestCase
  
      public function testCastFunctionWithArguments()
      {
@@ -54,22 +54,22 @@
          $abi = \PHP_OS_FAMILY === 'Windows' ? '[cdecl]' : '[fastcall]';
  
          $this->assertDumpEquals(<<<PHP
-@@ -166,10 +172,11 @@ class FFICasterTest extends TestCase
+@@ -186,10 +192,11 @@ class FFICasterTest extends TestCase
          $string = \FFI::cdef()->new('char[100]');
          $pointer = \FFI::addr($string[0]);
          \FFI::memcpy($pointer, $actualMessage, \strlen($actualMessage));
 +        $size = \PHP_INT_SIZE;
  
 -        $this->assertDumpEquals(<<<'PHP'
--        FFI\CData<char*> size 8 align 8 {
--          cdata: "Hello World!\x00"
+-            FFI\CData<char*> size 8 align 8 {
+-              cdata: "Hello World!\x00"
 +        $this->assertDumpMatchesFormat(<<<PHP
-+        FFI\CData<char*> size $size align $size {
-+          cdata: "Hello World!%A"
-         }
-         PHP, $pointer);
-     }
-@@ -183,6 +190,7 @@ class FFICasterTest extends TestCase
++            FFI\CData<char*> size $size align $size {
++              cdata: "Hello World!%A"
+             }
+             PHP,
+             $pointer
+@@ -205,6 +212,7 @@ class FFICasterTest extends TestCase
          $string = \FFI::cdef()->new('char['.$actualLength.']');
          $pointer = \FFI::addr($string[0]);
          \FFI::memcpy($pointer, $actualMessage, $actualLength);
@@ -77,16 +77,16 @@
  
          // the max length is platform-dependent and can be less than 255,
          // so we need to cut the expected message to the maximum length
-@@ -197,7 +205,7 @@ class FFICasterTest extends TestCase
+@@ -220,7 +228,7 @@ class FFICasterTest extends TestCase
          $expectedMessage = substr($expectedMessage, 0, $max);
  
          $this->assertDumpEquals(<<<PHP
--        FFI\CData<char*> size 8 align 8 {
-+        FFI\CData<char*> size $size align $size {
-           cdata: "$expectedMessage"…
-         }
-         PHP, $pointer);
-@@ -215,6 +223,10 @@ class FFICasterTest extends TestCase
+-            FFI\CData<char*> size 8 align 8 {
++            FFI\CData<char*> size $size align $size {
+               cdata: "$expectedMessage"…
+             }
+             PHP,
+@@ -240,6 +248,10 @@ class FFICasterTest extends TestCase
          $pointer = \FFI::cdef()->cast('char*', \FFI::cdef()->cast('void*', $pointer));
          $pointer[$actualLength] = "\x01";
  
@@ -95,68 +95,68 @@
 +        }
 +
          $this->assertDumpMatchesFormat(<<<PHP
-         FFI\CData<char*> size 8 align 8 {
-           cdata: %A"$actualMessage%s"
-@@ -247,13 +259,14 @@ class FFICasterTest extends TestCase
-             char* string;
-         } Event;
-         CPP);
+             FFI\CData<char*> size 8 align 8 {
+               cdata: %A"$actualMessage%s"
+@@ -278,13 +290,14 @@ class FFICasterTest extends TestCase
+             } Event;
+             CPP
+         );
 +        $size = \PHP_INT_SIZE;
  
 -        $this->assertDumpEquals(<<<'OUTPUT'
--        FFI\CData<union Event> size 8 align 8 {
--          something?: FFI\CType<void*> size 8 align 8 {
+-            FFI\CData<union Event> size 8 align 8 {
+-              something?: FFI\CType<void*> size 8 align 8 {
 +        $this->assertDumpEquals(<<<OUTPUT
-+        FFI\CData<union Event> size $size align $size {
-+          something?: FFI\CType<void*> size $size align $size {
-             0: FFI\CType<void> size 1 align 1 {}
-           }
--          string?: FFI\CType<char*> size 8 align 8 {
-+          string?: FFI\CType<char*> size $size align $size {
-             0: FFI\CType<char> size 1 align 1 {}
-           }
-         }
-@@ -271,16 +284,20 @@ class FFICasterTest extends TestCase
-         } Event;
-         CPP);
- 
--        $this->assertDumpEquals(<<<'OUTPUT'
--        FFI\CData<union Event> size 8 align 8 {
--          a?: FFI\CType<void*> size 8 align 8 {
++            FFI\CData<union Event> size $size align $size {
++              something?: FFI\CType<void*> size $size align $size {
+                 0: FFI\CType<void> size 1 align 1 {}
+               }
+-              string?: FFI\CType<char*> size 8 align 8 {
++              string?: FFI\CType<char*> size $size align $size {
+                 0: FFI\CType<char> size 1 align 1 {}
+               }
+             }
+@@ -304,17 +317,20 @@ class FFICasterTest extends TestCase
+             } Event;
+             CPP
+         );
 +        $size = \PHP_INT_SIZE === 4 ? 28 : 56;
 +        $intt = \PHP_INT_SIZE === 4 ? 'int32_t' : 'int64_t';
 +        $isize = \PHP_INT_SIZE;
-+
+ 
+-        $this->assertDumpEquals(<<<'OUTPUT'
+-            FFI\CData<union Event> size 8 align 8 {
+-              a?: FFI\CType<void*> size 8 align 8 {
 +        $this->assertDumpEquals(<<<OUTPUT
-+        FFI\CData<union Event> size $isize align $isize {
-+          a?: FFI\CType<void*> size $isize align $isize {
-             0: FFI\CType<void> size 1 align 1 {}
-           }
-           int32_t b: 0
--          c?: FFI\CType<char*> size 8 align 8 {
-+          c?: FFI\CType<char*> size $isize align $isize {
-             0: FFI\CType<char> size 1 align 1 {}
-           }
--          int64_t d: 0
-+          $intt d: 0
-         }
-         OUTPUT, $ffi->new('Event'));
-     }
-@@ -299,8 +316,11 @@ class FFICasterTest extends TestCase
-         } Example;
-         CPP);
++            FFI\CData<union Event> size $isize align $isize {
++              a?: FFI\CType<void*> size $isize align $isize {
+                 0: FFI\CType<void> size 1 align 1 {}
+               }
+               int32_t b: 0
+-              c?: FFI\CType<char*> size 8 align 8 {
++              c?: FFI\CType<char*> size $isize align $isize {
+                 0: FFI\CType<char> size 1 align 1 {}
+               }
+-              int64_t d: 0
++              $intt d: 0
+             }
+             OUTPUT,
+             $ffi->new('Event')
+@@ -336,8 +352,11 @@ class FFICasterTest extends TestCase
+             CPP
+         );
  
 -        $this->assertDumpEquals(<<<'OUTPUT'
--        FFI\CData<struct <anonymous>> size 56 align 8 {
+-            FFI\CData<struct <anonymous>> size 56 align 8 {
 +        $size = \PHP_INT_SIZE === 4 ? 28 : 56;
 +        $isize = \PHP_INT_SIZE;
 +
 +        $this->assertDumpEquals(<<<OUTPUT
-+        FFI\CData<struct <anonymous>> size $size align $isize {
-           int8_t* a: null
-           uint8_t* b: null
-           int64_t* c: null
-@@ -345,28 +365,30 @@ class FFICasterTest extends TestCase
++            FFI\CData<struct <anonymous>> size $size align $isize {
+               int8_t* a: null
+               uint8_t* b: null
+               int64_t* c: null
+@@ -385,28 +404,30 @@ class FFICasterTest extends TestCase
          $struct->e = \FFI::addr(\FFI::cdef()->cast('float', $float));
          $struct->f = \FFI::addr(\FFI::cdef()->cast('double', $double));
          $struct->g = \FFI::addr(\FFI::cdef()->cast('bool', $bool));
@@ -164,67 +164,67 @@
 +        $isize = \PHP_INT_SIZE;
  
 -        $this->assertDumpEquals(<<<'OUTPUT'
--        FFI\CData<struct <anonymous>> size 56 align 8 {
--          a: FFI\CData<int8_t*> size 8 align 8 {
+-            FFI\CData<struct <anonymous>> size 56 align 8 {
+-              a: FFI\CData<int8_t*> size 8 align 8 {
 +        $this->assertDumpEquals(<<<OUTPUT
-+        FFI\CData<struct <anonymous>> size $size align $isize {
-+          a: FFI\CData<int8_t*> size $isize align $isize {
-             cdata: 42
-           }
--          b: FFI\CData<uint8_t*> size 8 align 8 {
-+          b: FFI\CData<uint8_t*> size $isize align $isize {
-             cdata: 42
-           }
--          c: FFI\CData<int64_t*> size 8 align 8 {
-+          c: FFI\CData<int64_t*> size $isize align $isize {
-             cdata: 42
-           }
--          d: FFI\CData<uint64_t*> size 8 align 8 {
-+          d: FFI\CData<uint64_t*> size $isize align $isize {
-             cdata: 42
-           }
--          e: FFI\CData<float*> size 8 align 8 {
-+          e: FFI\CData<float*> size $isize align $isize {
-             cdata: 42.0
-           }
--          f: FFI\CData<double*> size 8 align 8 {
-+          f: FFI\CData<double*> size $isize align $isize {
-             cdata: 42.2
-           }
--          g: FFI\CData<bool*> size 8 align 8 {
-+          g: FFI\CData<bool*> size $isize align $isize {
-             cdata: true
-           }
-         }
-@@ -382,9 +404,10 @@ class FFICasterTest extends TestCase
-         CPP);
++            FFI\CData<struct <anonymous>> size $size align $isize {
++              a: FFI\CData<int8_t*> size $isize align $isize {
+                 cdata: 42
+               }
+-              b: FFI\CData<uint8_t*> size 8 align 8 {
++              b: FFI\CData<uint8_t*> size $isize align $isize {
+                 cdata: 42
+               }
+-              c: FFI\CData<int64_t*> size 8 align 8 {
++              c: FFI\CData<int64_t*> size $isize align $isize {
+                 cdata: 42
+               }
+-              d: FFI\CData<uint64_t*> size 8 align 8 {
++              d: FFI\CData<uint64_t*> size $isize align $isize {
+                 cdata: 42
+               }
+-              e: FFI\CData<float*> size 8 align 8 {
++              e: FFI\CData<float*> size $isize align $isize {
+                 cdata: 42.0
+               }
+-              f: FFI\CData<double*> size 8 align 8 {
++              f: FFI\CData<double*> size $isize align $isize {
+                 cdata: 42.2
+               }
+-              g: FFI\CData<bool*> size 8 align 8 {
++              g: FFI\CData<bool*> size $isize align $isize {
+                 cdata: true
+               }
+             }
+@@ -425,9 +446,10 @@ class FFICasterTest extends TestCase
+         );
  
          $struct = $ffi->new('Example', false);
 +        $isize = \PHP_INT_SIZE;
  
 -        $this->assertDumpEquals(<<<'OUTPUT'
--        FFI\CData<struct <anonymous>*> size 8 align 8 {
+-            FFI\CData<struct <anonymous>*> size 8 align 8 {
 +        $this->assertDumpEquals(<<<OUTPUT
-+        FFI\CData<struct <anonymous>*> size $isize align $isize {
-           cdata: FFI\CData<struct <anonymous>> size 1 align 1 {
-             int8_t a: 0
-           }
-@@ -394,10 +417,11 @@ class FFICasterTest extends TestCase
++            FFI\CData<struct <anonymous>*> size $isize align $isize {
+               cdata: FFI\CData<struct <anonymous>> size 1 align 1 {
+                 int8_t a: 0
+               }
+@@ -439,10 +461,11 @@ class FFICasterTest extends TestCase
          // Save the pointer as variable so that
          // it is not cleaned up by the GC
          $pointer = \FFI::addr($struct);
 +        $isize = \PHP_INT_SIZE;
  
 -        $this->assertDumpEquals(<<<'OUTPUT'
--        FFI\CData<struct <anonymous>**> size 8 align 8 {
--          cdata: FFI\CData<struct <anonymous>*> size 8 align 8 {
+-            FFI\CData<struct <anonymous>**> size 8 align 8 {
+-              cdata: FFI\CData<struct <anonymous>*> size 8 align 8 {
 +        $this->assertDumpEquals(<<<OUTPUT
-+        FFI\CData<struct <anonymous>**> size $isize align $isize {
-+          cdata: FFI\CData<struct <anonymous>*> size $isize align $isize {
-             cdata: FFI\CData<struct <anonymous>> size 1 align 1 {
-               int8_t a: 0
-             }
-@@ -439,7 +463,10 @@ class FFICasterTest extends TestCase
++            FFI\CData<struct <anonymous>**> size $isize align $isize {
++              cdata: FFI\CData<struct <anonymous>*> size $isize align $isize {
+                 cdata: FFI\CData<struct <anonymous>> size 1 align 1 {
+                   int8_t a: 0
+                 }
+@@ -487,7 +510,10 @@ class FFICasterTest extends TestCase
          $var = $ffi->new('Example');
          $var->func = (static fn (object $p) => 42);
  
diff -Nru symfony-6.4.21+dfsg/debian/patches/Workaround-dh_phpcomposer-limitations.patch symfony-6.4.40+dfsg/debian/patches/Workaround-dh_phpcomposer-limitations.patch
--- symfony-6.4.21+dfsg/debian/patches/Workaround-dh_phpcomposer-limitations.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Workaround-dh_phpcomposer-limitations.patch	2026-05-22 01:06:27.000000000 +0200
@@ -10,7 +10,7 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/composer.json b/composer.json
-index 89ee98d..cdae473 100644
+index f99996f..311ea80 100644
 --- a/composer.json
 +++ b/composer.json
 @@ -41,7 +41,7 @@
diff -Nru symfony-6.4.21+dfsg/debian/patches/Yaml-Drop-data-set-currently-failing-on-i386.patch symfony-6.4.40+dfsg/debian/patches/Yaml-Drop-data-set-currently-failing-on-i386.patch
--- symfony-6.4.21+dfsg/debian/patches/Yaml-Drop-data-set-currently-failing-on-i386.patch	2025-11-13 07:51:30.000000000 +0100
+++ symfony-6.4.40+dfsg/debian/patches/Yaml-Drop-data-set-currently-failing-on-i386.patch	2026-05-22 01:06:27.000000000 +0200
@@ -7,10 +7,10 @@
  1 file changed, 2 deletions(-)
 
 diff --git a/src/Symfony/Component/Yaml/Tests/InlineTest.php b/src/Symfony/Component/Yaml/Tests/InlineTest.php
-index da1192f..f12da89 100644
+index 39e15b6..07050fa 100644
 --- a/src/Symfony/Component/Yaml/Tests/InlineTest.php
 +++ b/src/Symfony/Component/Yaml/Tests/InlineTest.php
-@@ -358,7 +358,6 @@ class InlineTest extends TestCase
+@@ -367,7 +367,6 @@ class InlineTest extends TestCase
              ['2007-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 2007)],
              ['2007-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 2007)],
              ['1960-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 1960)],
@@ -18,7 +18,7 @@
  
              ['"a \\"string\\" with \'quoted strings inside\'"', 'a "string" with \'quoted strings inside\''],
              ["'a \"string\" with ''quoted strings inside'''", 'a "string" with \'quoted strings inside\''],
-@@ -432,7 +431,6 @@ class InlineTest extends TestCase
+@@ -445,7 +444,6 @@ class InlineTest extends TestCase
              ['2007-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 2007)],
              ['2007-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 2007)],
              ['1960-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 1960)],
diff -Nru symfony-6.4.21+dfsg/.git-blame-ignore-revs symfony-6.4.40+dfsg/.git-blame-ignore-revs
--- symfony-6.4.21+dfsg/.git-blame-ignore-revs	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.git-blame-ignore-revs	2026-05-20 10:56:49.000000000 +0200
@@ -2,3 +2,4 @@
 f4118e110a46de3ffb799e7d79bf15128d1646ea
 9519b54417c09c49496a4a6be238e63be9a73465
 ae0a783425b80b78376488619bf9106e69193fa4
+77bd236b8da064c90b19b84a35becfb3e43348db
diff -Nru symfony-6.4.21+dfsg/.github/build-packages.php symfony-6.4.40+dfsg/.github/build-packages.php
--- symfony-6.4.21+dfsg/.github/build-packages.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/build-packages.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,15 @@
 <?php
 
+// Logic inspired from composer/metadata-minifier
+function expandComposerMetadata(array $versions): array
+{
+    array_reduce($versions, function ($carry, $version) use (&$expandedVersions) {
+        return $expandedVersions[] = array_filter(array_merge($carry, $version), fn ($v) => '__unset' !== $v);
+    }, []);
+
+    return $expandedVersions ?? [];
+}
+
 if (3 > $_SERVER['argc']) {
     echo "Usage: branch version dir1 dir2 ... dirN\n";
     exit(1);
@@ -52,11 +62,13 @@
 
     $packages[$package->name][$package->version] = $package;
 
-    $versions = @file_get_contents('https://repo.packagist.org/p/'.$package->name.'.json') ?: sprintf('{"packages":{"%s":{"%s":%s}}}', $package->name, $package->version, file_get_contents($dir.'/composer.json'));
-    $versions = json_decode($versions)->packages->{$package->name};
+    foreach (['.json', '~dev.json'] as $ext) {
+        $versions = @file_get_contents('https://repo.packagist.org/p2/'.$package->name.$ext) ?: '[]';
+        $versions = json_decode($versions, true)['packages'][$package->name] ?? [];
 
-    foreach ($versions as $v => $package) {
-        $packages[$package->name] += [$v => $package];
+        foreach (expandComposerMetadata($versions) as $p) {
+            $packages[$package->name] += [$p['version'] => $p];
+        }
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/.github/expected-missing-return-types.diff symfony-6.4.40+dfsg/.github/expected-missing-return-types.diff
--- symfony-6.4.21+dfsg/.github/expected-missing-return-types.diff	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/expected-missing-return-types.diff	2026-05-20 10:56:49.000000000 +0200
@@ -215,14 +215,14 @@
 diff --git a/src/Symfony/Bridge/Doctrine/Security/RememberMe/DoctrineTokenProvider.php b/src/Symfony/Bridge/Doctrine/Security/RememberMe/DoctrineTokenProvider.php
 --- a/src/Symfony/Bridge/Doctrine/Security/RememberMe/DoctrineTokenProvider.php
 +++ b/src/Symfony/Bridge/Doctrine/Security/RememberMe/DoctrineTokenProvider.php
-@@ -72,5 +72,5 @@ class DoctrineTokenProvider implements TokenProviderInterface, TokenVerifierInte
+@@ -73,5 +73,5 @@ class DoctrineTokenProvider implements TokenProviderInterface, TokenVerifierInte
       * @return void
       */
 -    public function deleteTokenBySeries(string $series)
 +    public function deleteTokenBySeries(string $series): void
      {
          $sql = 'DELETE FROM rememberme_token WHERE series=:series';
-@@ -102,5 +102,5 @@ class DoctrineTokenProvider implements TokenProviderInterface, TokenVerifierInte
+@@ -103,5 +103,5 @@ class DoctrineTokenProvider implements TokenProviderInterface, TokenVerifierInte
       * @return void
       */
 -    public function createNewToken(PersistentTokenInterface $token)
@@ -262,37 +262,27 @@
 diff --git a/src/Symfony/Bridge/Monolog/Handler/ConsoleHandler.php b/src/Symfony/Bridge/Monolog/Handler/ConsoleHandler.php
 --- a/src/Symfony/Bridge/Monolog/Handler/ConsoleHandler.php
 +++ b/src/Symfony/Bridge/Monolog/Handler/ConsoleHandler.php
-@@ -133,5 +133,5 @@ class ConsoleHandler extends AbstractProcessingHandler implements EventSubscribe
+@@ -134,5 +134,5 @@ class ConsoleHandler extends AbstractProcessingHandler implements EventSubscribe
       * @return void
       */
 -    public function setOutput(OutputInterface $output)
 +    public function setOutput(OutputInterface $output): void
      {
          $this->output = $output;
-@@ -154,5 +154,5 @@ class ConsoleHandler extends AbstractProcessingHandler implements EventSubscribe
+@@ -156,5 +156,5 @@ class ConsoleHandler extends AbstractProcessingHandler implements EventSubscribe
       * @return void
       */
 -    public function onCommand(ConsoleCommandEvent $event)
 +    public function onCommand(ConsoleCommandEvent $event): void
      {
-         $output = $event->getOutput();
-@@ -169,5 +169,5 @@ class ConsoleHandler extends AbstractProcessingHandler implements EventSubscribe
+         if (1 !== ++$this->nestedCommandDepth) {
+@@ -175,5 +175,5 @@ class ConsoleHandler extends AbstractProcessingHandler implements EventSubscribe
       * @return void
       */
 -    public function onTerminate(ConsoleTerminateEvent $event)
 +    public function onTerminate(ConsoleTerminateEvent $event): void
      {
-         $this->close();
-diff --git a/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php b/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php
---- a/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php
-+++ b/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php
-@@ -158,5 +158,5 @@ class ElasticsearchLogstashHandler extends AbstractHandler
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
+         if ($this->nestedCommandDepth && !--$this->nestedCommandDepth) {
 diff --git a/src/Symfony/Bridge/Monolog/Handler/MailerHandler.php b/src/Symfony/Bridge/Monolog/Handler/MailerHandler.php
 --- a/src/Symfony/Bridge/Monolog/Handler/MailerHandler.php
 +++ b/src/Symfony/Bridge/Monolog/Handler/MailerHandler.php
@@ -404,7 +394,7 @@
 diff --git a/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php b/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php
 --- a/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php
 +++ b/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php
-@@ -136,5 +136,5 @@ class TwigRendererEngine extends AbstractRendererEngine
+@@ -139,5 +139,5 @@ class TwigRendererEngine extends AbstractRendererEngine
       * @return void
       */
 -    protected function loadResourcesFromTheme(string $cacheKey, mixed &$theme)
@@ -636,14 +626,14 @@
 diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
 +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
-@@ -213,5 +213,5 @@ class FrameworkExtension extends Extension
+@@ -216,5 +216,5 @@ class FrameworkExtension extends Extension
       * @throws LogicException
       */
 -    public function load(array $configs, ContainerBuilder $container)
 +    public function load(array $configs, ContainerBuilder $container): void
      {
          $loader = new PhpFileLoader($container, new FileLocator(\dirname(__DIR__).'/Resources/config'));
-@@ -3007,5 +3007,5 @@ class FrameworkExtension extends Extension
+@@ -3024,5 +3024,5 @@ class FrameworkExtension extends Extension
       * @return void
       */
 -    public static function registerRateLimiter(ContainerBuilder $container, string $name, array $limiterConfig)
@@ -653,14 +643,14 @@
 diff --git a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
 --- a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
 +++ b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
-@@ -97,5 +97,5 @@ class FrameworkBundle extends Bundle
+@@ -98,5 +98,5 @@ class FrameworkBundle extends Bundle
       * @return void
       */
 -    public function boot()
 +    public function boot(): void
      {
          $_ENV['DOCTRINE_DEPRECATIONS'] = $_SERVER['DOCTRINE_DEPRECATIONS'] ??= 'trigger';
-@@ -128,5 +128,5 @@ class FrameworkBundle extends Bundle
+@@ -129,5 +129,5 @@ class FrameworkBundle extends Bundle
       * @return void
       */
 -    public function build(ContainerBuilder $container)
@@ -724,7 +714,7 @@
 diff --git a/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php b/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php
 --- a/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php
 +++ b/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php
-@@ -88,5 +88,5 @@ abstract class KernelTestCase extends TestCase
+@@ -114,5 +114,5 @@ abstract class KernelTestCase extends TestCase
       * @return Container
       */
 -    protected static function getContainer(): ContainerInterface
@@ -965,21 +955,21 @@
 diff --git a/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php b/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php
 --- a/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php
 +++ b/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php
-@@ -42,5 +42,5 @@ class FirewallContext
+@@ -43,5 +43,5 @@ class FirewallContext
       * @return FirewallConfig|null
       */
 -    public function getConfig()
 +    public function getConfig(): ?FirewallConfig
      {
          return $this->config;
-@@ -58,5 +58,5 @@ class FirewallContext
+@@ -59,5 +59,5 @@ class FirewallContext
       * @return ExceptionListener|null
       */
 -    public function getExceptionListener()
 +    public function getExceptionListener(): ?ExceptionListener
      {
          return $this->exceptionListener;
-@@ -66,5 +66,5 @@ class FirewallContext
+@@ -67,5 +67,5 @@ class FirewallContext
       * @return LogoutListener|null
       */
 -    public function getLogoutListener()
@@ -1272,7 +1262,7 @@
 diff --git a/src/Symfony/Component/Cache/Adapter/ArrayAdapter.php b/src/Symfony/Component/Cache/Adapter/ArrayAdapter.php
 --- a/src/Symfony/Component/Cache/Adapter/ArrayAdapter.php
 +++ b/src/Symfony/Component/Cache/Adapter/ArrayAdapter.php
-@@ -264,5 +264,5 @@ class ArrayAdapter implements AdapterInterface, CacheInterface, LoggerAwareInter
+@@ -274,5 +274,5 @@ class ArrayAdapter implements AdapterInterface, CacheInterface, LoggerAwareInter
       * @return void
       */
 -    public function reset()
@@ -1282,7 +1272,7 @@
 diff --git a/src/Symfony/Component/Cache/Adapter/ChainAdapter.php b/src/Symfony/Component/Cache/Adapter/ChainAdapter.php
 --- a/src/Symfony/Component/Cache/Adapter/ChainAdapter.php
 +++ b/src/Symfony/Component/Cache/Adapter/ChainAdapter.php
-@@ -284,5 +284,5 @@ class ChainAdapter implements AdapterInterface, CacheInterface, PruneableInterfa
+@@ -285,5 +285,5 @@ class ChainAdapter implements AdapterInterface, CacheInterface, PruneableInterfa
       * @return void
       */
 -    public function reset()
@@ -1312,14 +1302,14 @@
 diff --git a/src/Symfony/Component/Cache/Adapter/PhpFilesAdapter.php b/src/Symfony/Component/Cache/Adapter/PhpFilesAdapter.php
 --- a/src/Symfony/Component/Cache/Adapter/PhpFilesAdapter.php
 +++ b/src/Symfony/Component/Cache/Adapter/PhpFilesAdapter.php
-@@ -58,5 +58,5 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface
+@@ -59,5 +59,5 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface
       * @return bool
       */
 -    public static function isSupported()
 +    public static function isSupported(): bool
      {
          self::$startTime ??= $_SERVER['REQUEST_TIME'] ?? time();
-@@ -281,5 +281,5 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface
+@@ -284,5 +284,5 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface
       * @return bool
       */
 -    protected function doUnlink(string $file)
@@ -1336,13 +1326,6 @@
 +    public function reset(): void
      {
          $this->commit();
-@@ -303,5 +303,5 @@ class TagAwareAdapter implements TagAwareAdapterInterface, TagAwareCacheInterfac
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/Cache/Adapter/TraceableAdapter.php b/src/Symfony/Component/Cache/Adapter/TraceableAdapter.php
 --- a/src/Symfony/Component/Cache/Adapter/TraceableAdapter.php
 +++ b/src/Symfony/Component/Cache/Adapter/TraceableAdapter.php
@@ -1397,7 +1380,7 @@
 diff --git a/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php b/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php
 --- a/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php
 +++ b/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php
-@@ -33,5 +33,5 @@ class CachePoolPass implements CompilerPassInterface
+@@ -35,5 +35,5 @@ class CachePoolPass implements CompilerPassInterface
       * @return void
       */
 -    public function process(ContainerBuilder $container)
@@ -1407,7 +1390,7 @@
 diff --git a/src/Symfony/Component/Cache/DependencyInjection/CachePoolPrunerPass.php b/src/Symfony/Component/Cache/DependencyInjection/CachePoolPrunerPass.php
 --- a/src/Symfony/Component/Cache/DependencyInjection/CachePoolPrunerPass.php
 +++ b/src/Symfony/Component/Cache/DependencyInjection/CachePoolPrunerPass.php
-@@ -27,5 +27,5 @@ class CachePoolPrunerPass implements CompilerPassInterface
+@@ -26,5 +26,5 @@ class CachePoolPrunerPass implements CompilerPassInterface
       * @return void
       */
 -    public function process(ContainerBuilder $container)
@@ -1420,8 +1403,8 @@
 @@ -38,5 +38,5 @@ class EarlyExpirationDispatcher
       * @return mixed
       */
--    public function __invoke(callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger = null)
-+    public function __invoke(callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger = null): mixed
+-    public function __invoke(callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger = null, ?float $beta = null)
++    public function __invoke(callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger = null, ?float $beta = null): mixed
      {
          if (!$item->isHit() || null === $message = EarlyExpirationMessage::create($this->reverseContainer, $callback, $item, $pool)) {
 diff --git a/src/Symfony/Component/Cache/Messenger/EarlyExpirationHandler.php b/src/Symfony/Component/Cache/Messenger/EarlyExpirationHandler.php
@@ -1434,16 +1417,6 @@
 +    public function __invoke(EarlyExpirationMessage $message): void
      {
          $item = $message->getItem();
-diff --git a/src/Symfony/Component/Cache/Traits/AbstractAdapterTrait.php b/src/Symfony/Component/Cache/Traits/AbstractAdapterTrait.php
---- a/src/Symfony/Component/Cache/Traits/AbstractAdapterTrait.php
-+++ b/src/Symfony/Component/Cache/Traits/AbstractAdapterTrait.php
-@@ -285,5 +285,5 @@ trait AbstractAdapterTrait
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php b/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php
 --- a/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php
 +++ b/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php
@@ -1454,13 +1427,6 @@
 +    protected function doUnlink(string $file): bool
      {
          return @unlink($file);
-@@ -181,5 +181,5 @@ trait FilesystemCommonTrait
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/Clock/ClockAwareTrait.php b/src/Symfony/Component/Clock/ClockAwareTrait.php
 --- a/src/Symfony/Component/Clock/ClockAwareTrait.php
 +++ b/src/Symfony/Component/Clock/ClockAwareTrait.php
@@ -1943,7 +1909,7 @@
 --- a/src/Symfony/Component/Config/FileLocatorInterface.php
 +++ b/src/Symfony/Component/Config/FileLocatorInterface.php
 @@ -33,4 +33,4 @@ interface FileLocatorInterface
-      * @psalm-return ($first is true ? string : string[])
+      * @throws FileLocatorFileNotFoundException If a file is not found
       */
 -    public function locate(string $name, ?string $currentPath = null, bool $first = true);
 +    public function locate(string $name, ?string $currentPath = null, bool $first = true): string|array;
@@ -1964,7 +1930,7 @@
 -    public function import(mixed $resource, ?string $type = null, bool $ignoreErrors = false, ?string $sourceResource = null, string|array|null $exclude = null)
 +    public function import(mixed $resource, ?string $type = null, bool $ignoreErrors = false, ?string $sourceResource = null, string|array|null $exclude = null): mixed
      {
-         if (\is_string($resource) && \strlen($resource) !== ($i = strcspn($resource, '*?{[')) && !str_contains($resource, "\n")) {
+         $excluded = [];
 diff --git a/src/Symfony/Component/Config/Loader/Loader.php b/src/Symfony/Component/Config/Loader/Loader.php
 --- a/src/Symfony/Component/Config/Loader/Loader.php
 +++ b/src/Symfony/Component/Config/Loader/Loader.php
@@ -2031,7 +1997,7 @@
 -    public function write(string $content, ?array $metadata = null)
 +    public function write(string $content, ?array $metadata = null): void
      {
-         $mode = 0666;
+         $mode = 0o666;
 diff --git a/src/Symfony/Component/Config/ResourceCheckerInterface.php b/src/Symfony/Component/Config/ResourceCheckerInterface.php
 --- a/src/Symfony/Component/Config/ResourceCheckerInterface.php
 +++ b/src/Symfony/Component/Config/ResourceCheckerInterface.php
@@ -2103,84 +2069,84 @@
 +    public function setDefinition(InputDefinition $definition): void
      {
          $this->definition = $definition;
-@@ -427,5 +427,5 @@ class Application implements ResetInterface
+@@ -436,5 +436,5 @@ class Application implements ResetInterface
       * @return void
       */
 -    public function setCatchExceptions(bool $boolean)
 +    public function setCatchExceptions(bool $boolean): void
      {
          $this->catchExceptions = $boolean;
-@@ -453,5 +453,5 @@ class Application implements ResetInterface
+@@ -462,5 +462,5 @@ class Application implements ResetInterface
       * @return void
       */
 -    public function setAutoExit(bool $boolean)
 +    public function setAutoExit(bool $boolean): void
      {
          $this->autoExit = $boolean;
-@@ -471,5 +471,5 @@ class Application implements ResetInterface
+@@ -480,5 +480,5 @@ class Application implements ResetInterface
       * @return void
       */
 -    public function setName(string $name)
 +    public function setName(string $name): void
      {
          $this->name = $name;
-@@ -489,5 +489,5 @@ class Application implements ResetInterface
+@@ -498,5 +498,5 @@ class Application implements ResetInterface
       * @return void
       */
 -    public function setVersion(string $version)
 +    public function setVersion(string $version): void
      {
          $this->version = $version;
-@@ -499,5 +499,5 @@ class Application implements ResetInterface
+@@ -508,5 +508,5 @@ class Application implements ResetInterface
       * @return string
       */
 -    public function getLongVersion()
 +    public function getLongVersion(): string
      {
          if ('UNKNOWN' !== $this->getName()) {
-@@ -529,5 +529,5 @@ class Application implements ResetInterface
+@@ -538,5 +538,5 @@ class Application implements ResetInterface
       * @return void
       */
 -    public function addCommands(array $commands)
 +    public function addCommands(array $commands): void
      {
          foreach ($commands as $command) {
-@@ -544,5 +544,5 @@ class Application implements ResetInterface
+@@ -553,5 +553,5 @@ class Application implements ResetInterface
       * @return Command|null
       */
 -    public function add(Command $command)
 +    public function add(Command $command): ?Command
      {
          $this->init();
-@@ -581,5 +581,5 @@ class Application implements ResetInterface
+@@ -590,5 +590,5 @@ class Application implements ResetInterface
       * @throws CommandNotFoundException When given command name does not exist
       */
 -    public function get(string $name)
 +    public function get(string $name): Command
      {
          $this->init();
-@@ -688,5 +688,5 @@ class Application implements ResetInterface
+@@ -697,5 +697,5 @@ class Application implements ResetInterface
       * @throws CommandNotFoundException When command name is incorrect or ambiguous
       */
 -    public function find(string $name)
 +    public function find(string $name): Command
      {
          $this->init();
-@@ -796,5 +796,5 @@ class Application implements ResetInterface
+@@ -819,5 +819,5 @@ class Application implements ResetInterface
       * @return Command[]
       */
 -    public function all(?string $namespace = null)
 +    public function all(?string $namespace = null): array
      {
          $this->init();
-@@ -940,5 +940,5 @@ class Application implements ResetInterface
+@@ -963,5 +963,5 @@ class Application implements ResetInterface
       * @return void
       */
 -    protected function configureIO(InputInterface $input, OutputInterface $output)
 +    protected function configureIO(InputInterface $input, OutputInterface $output): void
      {
          if (true === $input->hasParameterOption(['--ansi'], true)) {
-@@ -1005,5 +1005,5 @@ class Application implements ResetInterface
+@@ -1028,5 +1028,5 @@ class Application implements ResetInterface
       * @return int 0 if everything went fine, or an error code
       */
 -    protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output)
@@ -2263,7 +2229,7 @@
 +    protected function configure(): void
      {
          $this->ignoreValidationErrors();
-@@ -61,5 +61,5 @@ EOF
+@@ -61,5 +61,5 @@ class HelpCommand extends Command
       * @return void
       */
 -    public function setCommand(Command $command)
@@ -2286,8 +2252,8 @@
 @@ -31,4 +31,4 @@ interface SignalableCommandInterface
       * @return int|false The exit code to return or false to continue the normal execution
       */
--    public function handleSignal(int $signal, /* int|false $previousExitCode = 0 */);
-+    public function handleSignal(int $signal, /* int|false $previousExitCode = 0 */): int|false;
+-    public function handleSignal(int $signal/* , int|false $previousExitCode = 0 */);
++    public function handleSignal(int $signal/* , int|false $previousExitCode = 0 */): int|false;
  }
 diff --git a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php
 --- a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php
@@ -2328,21 +2294,21 @@
 diff --git a/src/Symfony/Component/Console/Formatter/OutputFormatter.php b/src/Symfony/Component/Console/Formatter/OutputFormatter.php
 --- a/src/Symfony/Component/Console/Formatter/OutputFormatter.php
 +++ b/src/Symfony/Component/Console/Formatter/OutputFormatter.php
-@@ -87,5 +87,5 @@ class OutputFormatter implements WrappableOutputFormatterInterface
+@@ -88,5 +88,5 @@ class OutputFormatter implements WrappableOutputFormatterInterface
       * @return void
       */
 -    public function setDecorated(bool $decorated)
 +    public function setDecorated(bool $decorated): void
      {
          $this->decorated = $decorated;
-@@ -100,5 +100,5 @@ class OutputFormatter implements WrappableOutputFormatterInterface
+@@ -101,5 +101,5 @@ class OutputFormatter implements WrappableOutputFormatterInterface
       * @return void
       */
 -    public function setStyle(string $name, OutputFormatterStyleInterface $style)
 +    public function setStyle(string $name, OutputFormatterStyleInterface $style): void
      {
          $this->styles[strtolower($name)] = $style;
-@@ -127,5 +127,5 @@ class OutputFormatter implements WrappableOutputFormatterInterface
+@@ -128,5 +128,5 @@ class OutputFormatter implements WrappableOutputFormatterInterface
       * @return string
       */
 -    public function formatAndWrap(?string $message, int $width)
@@ -2488,21 +2454,21 @@
 +    public function setHelperSet(?HelperSet $helperSet = null): void
      {
          if (1 > \func_num_args()) {
-@@ -95,5 +95,5 @@ abstract class Helper implements HelperInterface
+@@ -101,5 +101,5 @@ abstract class Helper implements HelperInterface
       * @return string
       */
 -    public static function formatTime(int|float $secs, int $precision = 1)
 +    public static function formatTime(int|float $secs, int $precision = 1): string
      {
          $secs = (int) floor($secs);
-@@ -138,5 +138,5 @@ abstract class Helper implements HelperInterface
+@@ -144,5 +144,5 @@ abstract class Helper implements HelperInterface
       * @return string
       */
 -    public static function formatMemory(int $memory)
 +    public static function formatMemory(int $memory): string
      {
          if ($memory >= 1024 * 1024 * 1024) {
-@@ -158,5 +158,5 @@ abstract class Helper implements HelperInterface
+@@ -164,5 +164,5 @@ abstract class Helper implements HelperInterface
       * @return string
       */
 -    public static function removeDecoration(OutputFormatterInterface $formatter, ?string $string)
@@ -2548,35 +2514,35 @@
 diff --git a/src/Symfony/Component/Console/Helper/ProgressIndicator.php b/src/Symfony/Component/Console/Helper/ProgressIndicator.php
 --- a/src/Symfony/Component/Console/Helper/ProgressIndicator.php
 +++ b/src/Symfony/Component/Console/Helper/ProgressIndicator.php
-@@ -74,5 +74,5 @@ class ProgressIndicator
+@@ -75,5 +75,5 @@ class ProgressIndicator
       * @return void
       */
 -    public function setMessage(?string $message)
 +    public function setMessage(?string $message): void
      {
          $this->message = $message;
-@@ -86,5 +86,5 @@ class ProgressIndicator
+@@ -87,5 +87,5 @@ class ProgressIndicator
       * @return void
       */
 -    public function start(string $message)
 +    public function start(string $message): void
      {
          if ($this->started) {
-@@ -106,5 +106,5 @@ class ProgressIndicator
+@@ -107,5 +107,5 @@ class ProgressIndicator
       * @return void
       */
 -    public function advance()
 +    public function advance(): void
      {
          if (!$this->started) {
-@@ -133,5 +133,5 @@ class ProgressIndicator
+@@ -134,5 +134,5 @@ class ProgressIndicator
       * @return void
       */
 -    public function finish(string $message)
 +    public function finish(string $message): void
      {
          if (!$this->started) {
-@@ -160,5 +160,5 @@ class ProgressIndicator
+@@ -163,5 +163,5 @@ class ProgressIndicator
       * @return void
       */
 -    public static function setPlaceholderFormatterDefinition(string $name, callable $callable)
@@ -3488,7 +3454,7 @@
 diff --git a/src/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php b/src/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
 --- a/src/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
 +++ b/src/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
-@@ -60,5 +60,5 @@ class AnalyzeServiceReferencesPass extends AbstractRecursivePass
+@@ -61,5 +61,5 @@ class AnalyzeServiceReferencesPass extends AbstractRecursivePass
       * @return void
       */
 -    public function process(ContainerBuilder $container)
@@ -3518,7 +3484,7 @@
 diff --git a/src/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php b/src/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
 --- a/src/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
 +++ b/src/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
-@@ -35,5 +35,5 @@ class CheckCircularReferencesPass implements CompilerPassInterface
+@@ -36,5 +36,5 @@ class CheckCircularReferencesPass implements CompilerPassInterface
       * @return void
       */
 -    public function process(ContainerBuilder $container)
@@ -3634,59 +3600,59 @@
 -    public function registerExtension(ExtensionInterface $extension)
 +    public function registerExtension(ExtensionInterface $extension): void
      {
-         throw new LogicException(sprintf('You cannot register extension "%s" from "%s". Extensions must be registered before the container is compiled.', get_debug_type($extension), $this->extensionClass));
+         throw new LogicException(\sprintf('You cannot register extension "%s" from "%s". Extensions must be registered before the container is compiled.', get_debug_type($extension), $this->extensionClass));
      }
  
 -    public function compile(bool $resolveEnvPlaceholders = false)
 +    public function compile(bool $resolveEnvPlaceholders = false): void
      {
-         throw new LogicException(sprintf('Cannot compile the container in extension "%s".', $this->extensionClass));
+         throw new LogicException(\sprintf('Cannot compile the container in extension "%s".', $this->extensionClass));
 diff --git a/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php b/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
 --- a/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
 +++ b/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
-@@ -126,5 +126,5 @@ class PassConfig
+@@ -127,5 +127,5 @@ class PassConfig
       * @throws InvalidArgumentException when a pass type doesn't exist
       */
 -    public function addPass(CompilerPassInterface $pass, string $type = self::TYPE_BEFORE_OPTIMIZATION, int $priority = 0)
 +    public function addPass(CompilerPassInterface $pass, string $type = self::TYPE_BEFORE_OPTIMIZATION, int $priority = 0): void
      {
          $property = $type.'Passes';
-@@ -202,5 +202,5 @@ class PassConfig
+@@ -203,5 +203,5 @@ class PassConfig
       * @return void
       */
 -    public function setMergePass(CompilerPassInterface $pass)
 +    public function setMergePass(CompilerPassInterface $pass): void
      {
          $this->mergePass = $pass;
-@@ -214,5 +214,5 @@ class PassConfig
+@@ -215,5 +215,5 @@ class PassConfig
       * @return void
       */
 -    public function setAfterRemovingPasses(array $passes)
 +    public function setAfterRemovingPasses(array $passes): void
      {
          $this->afterRemovingPasses = [$passes];
-@@ -226,5 +226,5 @@ class PassConfig
+@@ -227,5 +227,5 @@ class PassConfig
       * @return void
       */
 -    public function setBeforeOptimizationPasses(array $passes)
 +    public function setBeforeOptimizationPasses(array $passes): void
      {
          $this->beforeOptimizationPasses = [$passes];
-@@ -238,5 +238,5 @@ class PassConfig
+@@ -239,5 +239,5 @@ class PassConfig
       * @return void
       */
 -    public function setBeforeRemovingPasses(array $passes)
 +    public function setBeforeRemovingPasses(array $passes): void
      {
          $this->beforeRemovingPasses = [$passes];
-@@ -250,5 +250,5 @@ class PassConfig
+@@ -251,5 +251,5 @@ class PassConfig
       * @return void
       */
 -    public function setOptimizationPasses(array $passes)
 +    public function setOptimizationPasses(array $passes): void
      {
          $this->optimizationPasses = [$passes];
-@@ -262,5 +262,5 @@ class PassConfig
+@@ -263,5 +263,5 @@ class PassConfig
       * @return void
       */
 -    public function setRemovingPasses(array $passes)
@@ -3726,7 +3692,7 @@
 diff --git a/src/Symfony/Component/DependencyInjection/Compiler/RemoveBuildParametersPass.php b/src/Symfony/Component/DependencyInjection/Compiler/RemoveBuildParametersPass.php
 --- a/src/Symfony/Component/DependencyInjection/Compiler/RemoveBuildParametersPass.php
 +++ b/src/Symfony/Component/DependencyInjection/Compiler/RemoveBuildParametersPass.php
-@@ -24,5 +24,5 @@ class RemoveBuildParametersPass implements CompilerPassInterface
+@@ -29,5 +29,5 @@ class RemoveBuildParametersPass implements CompilerPassInterface
       * @return void
       */
 -    public function process(ContainerBuilder $container)
@@ -4003,49 +3969,49 @@
 +    public function prependExtensionConfig(string $name, array $config): void
      {
          if (!isset($this->extensionConfigs[$name])) {
-@@ -750,5 +750,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
+@@ -751,5 +751,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
       * @return void
       */
 -    public function compile(bool $resolveEnvPlaceholders = false)
 +    public function compile(bool $resolveEnvPlaceholders = false): void
      {
          $compiler = $this->getCompiler();
-@@ -814,5 +814,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
+@@ -815,5 +815,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
       * @return void
       */
 -    public function addAliases(array $aliases)
 +    public function addAliases(array $aliases): void
      {
          foreach ($aliases as $alias => $id) {
-@@ -828,5 +828,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
+@@ -829,5 +829,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
       * @return void
       */
 -    public function setAliases(array $aliases)
 +    public function setAliases(array $aliases): void
      {
          $this->aliasDefinitions = [];
-@@ -862,5 +862,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
+@@ -863,5 +863,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
       * @return void
       */
 -    public function removeAlias(string $alias)
 +    public function removeAlias(string $alias): void
      {
          if (isset($this->aliasDefinitions[$alias])) {
-@@ -924,5 +924,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
+@@ -925,5 +925,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
       * @return void
       */
 -    public function addDefinitions(array $definitions)
 +    public function addDefinitions(array $definitions): void
      {
          foreach ($definitions as $id => $definition) {
-@@ -938,5 +938,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
+@@ -939,5 +939,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
       * @return void
       */
 -    public function setDefinitions(array $definitions)
 +    public function setDefinitions(array $definitions): void
      {
          $this->definitions = [];
-@@ -1330,5 +1330,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
+@@ -1332,5 +1332,5 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
       * @return void
       */
 -    public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
@@ -4272,13 +4238,6 @@
 +    public function __call(string $method, array $args): mixed
      {
          if (method_exists($this, 'set'.$method)) {
-@@ -55,5 +55,5 @@ abstract class AbstractConfigurator
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/DependencyInjection/Loader/FileLoader.php b/src/Symfony/Component/DependencyInjection/Loader/FileLoader.php
 --- a/src/Symfony/Component/DependencyInjection/Loader/FileLoader.php
 +++ b/src/Symfony/Component/DependencyInjection/Loader/FileLoader.php
@@ -4591,35 +4550,35 @@
 diff --git a/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php b/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php
 --- a/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php
 +++ b/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php
-@@ -64,5 +64,5 @@ class ChoiceFormField extends FormField
+@@ -68,5 +68,5 @@ class ChoiceFormField extends FormField
       * @return void
       */
 -    public function select(string|array|bool $value)
 +    public function select(string|array|bool $value): void
      {
          $this->setValue($value);
-@@ -76,5 +76,5 @@ class ChoiceFormField extends FormField
+@@ -80,5 +80,5 @@ class ChoiceFormField extends FormField
       * @throws \LogicException When the type provided is not correct
       */
 -    public function tick()
 +    public function tick(): void
      {
          if ('checkbox' !== $this->type) {
-@@ -92,5 +92,5 @@ class ChoiceFormField extends FormField
+@@ -96,5 +96,5 @@ class ChoiceFormField extends FormField
       * @throws \LogicException When the type provided is not correct
       */
 -    public function untick()
 +    public function untick(): void
      {
          if ('checkbox' !== $this->type) {
-@@ -108,5 +108,5 @@ class ChoiceFormField extends FormField
+@@ -112,5 +112,5 @@ class ChoiceFormField extends FormField
       * @throws \InvalidArgumentException When value type provided is not correct
       */
 -    public function setValue(string|array|bool|null $value)
 +    public function setValue(string|array|bool|null $value): void
      {
          if ('checkbox' === $this->type && false === $value) {
-@@ -187,5 +187,5 @@ class ChoiceFormField extends FormField
+@@ -191,5 +191,5 @@ class ChoiceFormField extends FormField
       * @throws \LogicException When node type is incorrect
       */
 -    protected function initialize()
@@ -4744,16 +4703,6 @@
 +    protected function setNode(\DOMElement $node): void
      {
          if ('a' !== $node->nodeName && 'area' !== $node->nodeName && 'link' !== $node->nodeName) {
-diff --git a/src/Symfony/Component/ErrorHandler/BufferingLogger.php b/src/Symfony/Component/ErrorHandler/BufferingLogger.php
---- a/src/Symfony/Component/ErrorHandler/BufferingLogger.php
-+++ b/src/Symfony/Component/ErrorHandler/BufferingLogger.php
-@@ -44,5 +44,5 @@ class BufferingLogger extends AbstractLogger
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/ErrorHandler/ErrorRenderer/FileLinkFormatter.php b/src/Symfony/Component/ErrorHandler/ErrorRenderer/FileLinkFormatter.php
 --- a/src/Symfony/Component/ErrorHandler/ErrorRenderer/FileLinkFormatter.php
 +++ b/src/Symfony/Component/ErrorHandler/ErrorRenderer/FileLinkFormatter.php
@@ -4767,49 +4716,49 @@
 diff --git a/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php b/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php
 --- a/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php
 +++ b/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php
-@@ -55,5 +55,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
+@@ -58,5 +58,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
       * @return void
       */
 -    public function addListener(string $eventName, callable|array $listener, int $priority = 0)
 +    public function addListener(string $eventName, callable|array $listener, int $priority = 0): void
      {
          $this->dispatcher->addListener($eventName, $listener, $priority);
-@@ -63,5 +63,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
+@@ -66,5 +66,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
       * @return void
       */
 -    public function addSubscriber(EventSubscriberInterface $subscriber)
 +    public function addSubscriber(EventSubscriberInterface $subscriber): void
      {
          $this->dispatcher->addSubscriber($subscriber);
-@@ -71,5 +71,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
+@@ -74,5 +74,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
       * @return void
       */
 -    public function removeListener(string $eventName, callable|array $listener)
 +    public function removeListener(string $eventName, callable|array $listener): void
      {
          if (isset($this->wrappedListeners[$eventName])) {
-@@ -89,5 +89,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
+@@ -92,5 +92,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
       * @return void
       */
 -    public function removeSubscriber(EventSubscriberInterface $subscriber)
 +    public function removeSubscriber(EventSubscriberInterface $subscriber): void
      {
          $this->dispatcher->removeSubscriber($subscriber);
-@@ -230,5 +230,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
+@@ -231,5 +231,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
       * @return void
       */
 -    public function reset()
 +    public function reset(): void
      {
          $this->callStack = null;
-@@ -253,5 +253,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
+@@ -257,5 +257,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
       * @return void
       */
 -    protected function beforeDispatch(string $eventName, object $event)
 +    protected function beforeDispatch(string $eventName, object $event): void
      {
      }
-@@ -262,5 +262,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
+@@ -266,5 +266,5 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
       * @return void
       */
 -    protected function afterDispatch(string $eventName, object $event)
@@ -5024,7 +4973,7 @@
 -    public function toArray()
 +    public function toArray(): array
      {
-         throw new \BadMethodCallException(sprintf('Dumping a "%s" instance is not supported yet.', static::class));
+         throw new \BadMethodCallException(\sprintf('Dumping a "%s" instance is not supported yet.', static::class));
 @@ -94,5 +94,5 @@ class Node
       * @return string
       */
@@ -5038,7 +4987,7 @@
 -    protected function dumpString(string $value)
 +    protected function dumpString(string $value): string
      {
-         return sprintf('"%s"', addcslashes($value, "\0\t\"\\"));
+         return \sprintf('"%s"', addcslashes($value, "\0\t\"\\"));
 @@ -116,5 +116,5 @@ class Node
       * @return bool
       */
@@ -5155,8 +5104,8 @@
 @@ -92,5 +92,5 @@ class Filesystem
       * @throws IOException On any directory creation failure
       */
--    public function mkdir(string|iterable $dirs, int $mode = 0777)
-+    public function mkdir(string|iterable $dirs, int $mode = 0777): void
+-    public function mkdir(string|iterable $dirs, int $mode = 0o777)
++    public function mkdir(string|iterable $dirs, int $mode = 0o777): void
      {
          foreach ($this->toIterable($dirs) as $dir) {
 @@ -135,5 +135,5 @@ class Filesystem
@@ -5176,8 +5125,8 @@
 @@ -219,5 +219,5 @@ class Filesystem
       * @throws IOException When the change fails
       */
--    public function chmod(string|iterable $files, int $mode, int $umask = 0000, bool $recursive = false)
-+    public function chmod(string|iterable $files, int $mode, int $umask = 0000, bool $recursive = false): void
+-    public function chmod(string|iterable $files, int $mode, int $umask = 0o000, bool $recursive = false)
++    public function chmod(string|iterable $files, int $mode, int $umask = 0o000, bool $recursive = false): void
      {
          foreach ($this->toIterable($files) as $file) {
 @@ -245,5 +245,5 @@ class Filesystem
@@ -5215,21 +5164,21 @@
 +    public function hardlink(string $originFile, string|iterable $targetFiles): void
      {
          self::assertFunctionExists('link');
-@@ -542,5 +542,5 @@ class Filesystem
+@@ -549,5 +549,5 @@ class Filesystem
       * @throws IOException When file type is unknown
       */
 -    public function mirror(string $originDir, string $targetDir, ?\Traversable $iterator = null, array $options = [])
 +    public function mirror(string $originDir, string $targetDir, ?\Traversable $iterator = null, array $options = []): void
      {
          $targetDir = rtrim($targetDir, '/\\');
-@@ -668,5 +668,5 @@ class Filesystem
+@@ -675,5 +675,5 @@ class Filesystem
       * @throws IOException if the file cannot be written to
       */
 -    public function dumpFile(string $filename, $content)
 +    public function dumpFile(string $filename, $content): void
      {
          if (\is_array($content)) {
-@@ -719,5 +719,5 @@ class Filesystem
+@@ -726,5 +726,5 @@ class Filesystem
       * @throws IOException If the file is not writable
       */
 -    public function appendToFile(string $filename, $content/* , bool $lock = false */)
@@ -5239,7 +5188,7 @@
 diff --git a/src/Symfony/Component/Finder/Finder.php b/src/Symfony/Component/Finder/Finder.php
 --- a/src/Symfony/Component/Finder/Finder.php
 +++ b/src/Symfony/Component/Finder/Finder.php
-@@ -401,5 +401,5 @@ class Finder implements \IteratorAggregate, \Countable
+@@ -403,5 +403,5 @@ class Finder implements \IteratorAggregate, \Countable
       * @return void
       */
 -    public static function addVCSPattern(string|array $pattern)
@@ -5266,14 +5215,14 @@
 diff --git a/src/Symfony/Component/Form/AbstractRendererEngine.php b/src/Symfony/Component/Form/AbstractRendererEngine.php
 --- a/src/Symfony/Component/Form/AbstractRendererEngine.php
 +++ b/src/Symfony/Component/Form/AbstractRendererEngine.php
-@@ -65,5 +65,5 @@ abstract class AbstractRendererEngine implements FormRendererEngineInterface, Re
+@@ -70,5 +70,5 @@ abstract class AbstractRendererEngine implements FormRendererEngineInterface, Re
       * @return void
       */
 -    public function setTheme(FormView $view, mixed $themes, bool $useDefaultThemes = true)
 +    public function setTheme(FormView $view, mixed $themes, bool $useDefaultThemes = true): void
      {
          $cacheKey = $view->vars[self::CACHE_KEY_VAR];
-@@ -128,5 +128,5 @@ abstract class AbstractRendererEngine implements FormRendererEngineInterface, Re
+@@ -143,5 +143,5 @@ abstract class AbstractRendererEngine implements FormRendererEngineInterface, Re
       * @return bool
       */
 -    abstract protected function loadResourceForBlockName(string $cacheKey, FormView $view, string $blockName);
@@ -5821,21 +5770,21 @@
 +    public function buildForm(FormBuilderInterface $builder, array $options): void
      {
          $unknownValues = [];
-@@ -223,5 +223,5 @@ class ChoiceType extends AbstractType
+@@ -222,5 +222,5 @@ class ChoiceType extends AbstractType
       * @return void
       */
 -    public function buildView(FormView $view, FormInterface $form, array $options)
 +    public function buildView(FormView $view, FormInterface $form, array $options): void
      {
          $choiceTranslationDomain = $options['choice_translation_domain'];
-@@ -280,5 +280,5 @@ class ChoiceType extends AbstractType
+@@ -279,5 +279,5 @@ class ChoiceType extends AbstractType
       * @return void
       */
 -    public function finishView(FormView $view, FormInterface $form, array $options)
 +    public function finishView(FormView $view, FormInterface $form, array $options): void
      {
-         if ($options['expanded']) {
-@@ -300,5 +300,5 @@ class ChoiceType extends AbstractType
+         $view->vars['duplicate_preferred_choices'] = $options['duplicate_preferred_choices'];
+@@ -301,5 +301,5 @@ class ChoiceType extends AbstractType
       * @return void
       */
 -    public function configureOptions(OptionsResolver $resolver)
@@ -6125,14 +6074,14 @@
 +    public function buildView(FormView $view, FormInterface $form, array $options): void
      {
          $view->vars['money_pattern'] = self::getPattern($options['currency']);
-@@ -58,5 +58,5 @@ class MoneyType extends AbstractType
+@@ -64,5 +64,5 @@ class MoneyType extends AbstractType
       * @return void
       */
 -    public function configureOptions(OptionsResolver $resolver)
 +    public function configureOptions(OptionsResolver $resolver): void
      {
          $resolver->setDefaults([
-@@ -107,5 +107,5 @@ class MoneyType extends AbstractType
+@@ -113,5 +113,5 @@ class MoneyType extends AbstractType
       * @return string
       */
 -    protected static function getPattern(?string $currency)
@@ -6298,7 +6247,14 @@
 diff --git a/src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php b/src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php
 --- a/src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php
 +++ b/src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php
-@@ -21,5 +21,5 @@ class TextareaType extends AbstractType
+@@ -24,5 +24,5 @@ class TextareaType extends AbstractType implements DataTransformerInterface
+      * @return void
+      */
+-    public function buildForm(FormBuilderInterface $builder, array $options)
++    public function buildForm(FormBuilderInterface $builder, array $options): void
+     {
+         $builder->addViewTransformer($this);
+@@ -32,5 +32,5 @@ class TextareaType extends AbstractType implements DataTransformerInterface
       * @return void
       */
 -    public function buildView(FormView $view, FormInterface $form, array $options)
@@ -6424,14 +6380,14 @@
 +    public function buildForm(FormBuilderInterface $builder, array $options): void
      {
          if ('string' === $options['input']) {
-@@ -87,5 +87,5 @@ class WeekType extends AbstractType
+@@ -86,5 +86,5 @@ class WeekType extends AbstractType
       * @return void
       */
 -    public function buildView(FormView $view, FormInterface $form, array $options)
 +    public function buildView(FormView $view, FormInterface $form, array $options): void
      {
          $view->vars['widget'] = $options['widget'];
-@@ -99,5 +99,5 @@ class WeekType extends AbstractType
+@@ -98,5 +98,5 @@ class WeekType extends AbstractType
       * @return void
       */
 -    public function configureOptions(OptionsResolver $resolver)
@@ -6946,7 +6902,7 @@
 --- a/src/Symfony/Component/Form/NativeRequestHandler.php
 +++ b/src/Symfony/Component/Form/NativeRequestHandler.php
 @@ -46,5 +46,5 @@ class NativeRequestHandler implements RequestHandlerInterface
-      * @throws Exception\UnexpectedTypeException If the $request is not null
+      * @throws UnexpectedTypeException If the $request is not null
       */
 -    public function handleRequest(FormInterface $form, mixed $request = null)
 +    public function handleRequest(FormInterface $form, mixed $request = null): void
@@ -7010,36 +6966,16 @@
 +    public function finishView(FormView $view, FormInterface $form, array $options): void;
  
      /**
-diff --git a/src/Symfony/Component/Form/Util/OrderedHashMapIterator.php b/src/Symfony/Component/Form/Util/OrderedHashMapIterator.php
---- a/src/Symfony/Component/Form/Util/OrderedHashMapIterator.php
-+++ b/src/Symfony/Component/Form/Util/OrderedHashMapIterator.php
-@@ -66,5 +66,5 @@ class OrderedHashMapIterator implements \Iterator
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/HttpClient/CachingHttpClient.php b/src/Symfony/Component/HttpClient/CachingHttpClient.php
 --- a/src/Symfony/Component/HttpClient/CachingHttpClient.php
 +++ b/src/Symfony/Component/HttpClient/CachingHttpClient.php
-@@ -140,5 +140,5 @@ class CachingHttpClient implements HttpClientInterface, ResetInterface
+@@ -144,5 +144,5 @@ class CachingHttpClient implements HttpClientInterface, ResetInterface
       * @return void
       */
 -    public function reset()
 +    public function reset(): void
      {
          if ($this->client instanceof ResetInterface) {
-diff --git a/src/Symfony/Component/HttpClient/Chunk/ErrorChunk.php b/src/Symfony/Component/HttpClient/Chunk/ErrorChunk.php
---- a/src/Symfony/Component/HttpClient/Chunk/ErrorChunk.php
-+++ b/src/Symfony/Component/HttpClient/Chunk/ErrorChunk.php
-@@ -102,5 +102,5 @@ class ErrorChunk implements ChunkInterface
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/HttpClient/DecoratorTrait.php b/src/Symfony/Component/HttpClient/DecoratorTrait.php
 --- a/src/Symfony/Component/HttpClient/DecoratorTrait.php
 +++ b/src/Symfony/Component/HttpClient/DecoratorTrait.php
@@ -7053,7 +6989,7 @@
 diff --git a/src/Symfony/Component/HttpClient/HttpClientTrait.php b/src/Symfony/Component/HttpClient/HttpClientTrait.php
 --- a/src/Symfony/Component/HttpClient/HttpClientTrait.php
 +++ b/src/Symfony/Component/HttpClient/HttpClientTrait.php
-@@ -708,5 +708,5 @@ trait HttpClientTrait
+@@ -712,5 +712,5 @@ trait HttpClientTrait
       * @return string
       */
 -    private static function removeDotSegments(string $path)
@@ -7070,20 +7006,10 @@
 +    public function reset(): void
      {
          $this->requestsCount = 0;
-diff --git a/src/Symfony/Component/HttpClient/Response/CommonResponseTrait.php b/src/Symfony/Component/HttpClient/Response/CommonResponseTrait.php
---- a/src/Symfony/Component/HttpClient/Response/CommonResponseTrait.php
-+++ b/src/Symfony/Component/HttpClient/Response/CommonResponseTrait.php
-@@ -128,5 +128,5 @@ trait CommonResponseTrait
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/HttpClient/ScopingHttpClient.php b/src/Symfony/Component/HttpClient/ScopingHttpClient.php
 --- a/src/Symfony/Component/HttpClient/ScopingHttpClient.php
 +++ b/src/Symfony/Component/HttpClient/ScopingHttpClient.php
-@@ -97,5 +97,5 @@ class ScopingHttpClient implements HttpClientInterface, ResetInterface, LoggerAw
+@@ -104,5 +104,5 @@ class ScopingHttpClient implements HttpClientInterface, ResetInterface, LoggerAw
       * @return void
       */
 -    public function reset()
@@ -7234,91 +7160,91 @@
 +    public function initialize(array $query = [], array $request = [], array $attributes = [], array $cookies = [], array $files = [], array $server = [], $content = null): void
      {
          $this->request = new InputBag($request);
-@@ -446,5 +446,5 @@ class Request
+@@ -465,5 +465,5 @@ class Request
       * @return void
       */
 -    public static function setFactory(?callable $callable)
 +    public static function setFactory(?callable $callable): void
      {
          self::$requestFactory = $callable;
-@@ -552,5 +552,5 @@ class Request
+@@ -571,5 +571,5 @@ class Request
       * @return void
       */
 -    public function overrideGlobals()
 +    public function overrideGlobals(): void
      {
          $this->server->set('QUERY_STRING', static::normalizeQueryString(http_build_query($this->query->all(), '', '&')));
-@@ -594,5 +594,5 @@ class Request
+@@ -613,5 +613,5 @@ class Request
       * @return void
       */
 -    public static function setTrustedProxies(array $proxies, int $trustedHeaderSet)
 +    public static function setTrustedProxies(array $proxies, int $trustedHeaderSet): void
      {
-         self::$trustedProxies = array_reduce($proxies, function ($proxies, $proxy) {
-@@ -637,5 +637,5 @@ class Request
+         self::$trustedProxies = array_reduce($proxies, static function ($proxies, $proxy) {
+@@ -656,5 +656,5 @@ class Request
       * @return void
       */
 -    public static function setTrustedHosts(array $hostPatterns)
 +    public static function setTrustedHosts(array $hostPatterns): void
      {
-         self::$trustedHostPatterns = array_map(fn ($hostPattern) => sprintf('{%s}i', $hostPattern), $hostPatterns);
-@@ -685,5 +685,5 @@ class Request
+         self::$trustedHostPatterns = array_map(static fn ($hostPattern) => \sprintf('{%s}i', $hostPattern), $hostPatterns);
+@@ -704,5 +704,5 @@ class Request
       * @return void
       */
 -    public static function enableHttpMethodParameterOverride()
 +    public static function enableHttpMethodParameterOverride(): void
      {
          self::$httpMethodParameterOverride = true;
-@@ -772,5 +772,5 @@ class Request
+@@ -791,5 +791,5 @@ class Request
       * @return void
       */
 -    public function setSession(SessionInterface $session)
 +    public function setSession(SessionInterface $session): void
      {
          $this->session = $session;
-@@ -1195,5 +1195,5 @@ class Request
+@@ -1212,5 +1212,5 @@ class Request
       * @return void
       */
 -    public function setMethod(string $method)
 +    public function setMethod(string $method): void
      {
          $this->method = null;
-@@ -1318,5 +1318,5 @@ class Request
+@@ -1342,5 +1342,5 @@ class Request
       * @return void
       */
 -    public function setFormat(?string $format, string|array $mimeTypes)
 +    public function setFormat(?string $format, string|array $mimeTypes): void
      {
          if (null === static::$formats) {
-@@ -1350,5 +1350,5 @@ class Request
+@@ -1374,5 +1374,5 @@ class Request
       * @return void
       */
 -    public function setRequestFormat(?string $format)
 +    public function setRequestFormat(?string $format): void
      {
          $this->format = $format;
-@@ -1382,5 +1382,5 @@ class Request
+@@ -1406,5 +1406,5 @@ class Request
       * @return void
       */
 -    public function setDefaultLocale(string $locale)
 +    public function setDefaultLocale(string $locale): void
      {
          $this->defaultLocale = $locale;
-@@ -1404,5 +1404,5 @@ class Request
+@@ -1428,5 +1428,5 @@ class Request
       * @return void
       */
 -    public function setLocale(string $locale)
 +    public function setLocale(string $locale): void
      {
          $this->setPhpDefaultLocale($this->locale = $locale);
-@@ -1761,5 +1761,5 @@ class Request
+@@ -1785,5 +1785,5 @@ class Request
       * @return string
       */
 -    protected function prepareRequestUri()
 +    protected function prepareRequestUri(): string
      {
          $requestUri = '';
-@@ -1931,5 +1931,5 @@ class Request
+@@ -1954,5 +1954,5 @@ class Request
       * @return void
       */
 -    protected static function initializeFormats()
@@ -7431,7 +7357,7 @@
 -    public function setCookie(Cookie $cookie)
 +    public function setCookie(Cookie $cookie): void
      {
-         $this->cookies[$cookie->getDomain()][$cookie->getPath()][$cookie->getName()] = $cookie;
+         $this->cookies[$cookie->getDomain() ?? ''][$cookie->getPath()][$cookie->getName()] = $cookie;
 @@ -184,5 +184,5 @@ class ResponseHeaderBag extends HeaderBag
       * @return void
       */
@@ -7445,7 +7371,7 @@
 -    public function clearCookie(string $name, ?string $path = '/', ?string $domain = null, bool $secure = false, bool $httpOnly = true, ?string $sameSite = null /* , bool $partitioned = false */)
 +    public function clearCookie(string $name, ?string $path = '/', ?string $domain = null, bool $secure = false, bool $httpOnly = true, ?string $sameSite = null /* , bool $partitioned = false */): void
      {
-         $partitioned = 6 < \func_num_args() ? \func_get_arg(6) : false;
+         $partitioned = 6 < \func_num_args() ? func_get_arg(6) : false;
 @@ -251,5 +251,5 @@ class ResponseHeaderBag extends HeaderBag
       * @return string
       */
@@ -7718,7 +7644,7 @@
 diff --git a/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php b/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
 --- a/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
 +++ b/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
-@@ -242,5 +242,5 @@ class PdoSessionHandler extends AbstractSessionHandler
+@@ -241,5 +241,5 @@ class PdoSessionHandler extends AbstractSessionHandler
       * @throws \DomainException When an unsupported PDO driver is used
       */
 -    public function createTable()
@@ -7728,21 +7654,21 @@
 diff --git a/src/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php b/src/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
 --- a/src/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
 +++ b/src/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
-@@ -55,5 +55,5 @@ class MetadataBag implements SessionBagInterface
+@@ -59,5 +59,5 @@ class MetadataBag implements SessionBagInterface
       * @return void
       */
 -    public function initialize(array &$array)
 +    public function initialize(array &$array): void
      {
          $this->meta = &$array;
-@@ -89,5 +89,5 @@ class MetadataBag implements SessionBagInterface
+@@ -93,5 +93,5 @@ class MetadataBag implements SessionBagInterface
       * @return void
       */
 -    public function stampNew(?int $lifetime = null)
 +    public function stampNew(?int $lifetime = null): void
      {
          $this->stampCreated($lifetime);
-@@ -135,5 +135,5 @@ class MetadataBag implements SessionBagInterface
+@@ -139,5 +139,5 @@ class MetadataBag implements SessionBagInterface
       * @return void
       */
 -    public function setName(string $name)
@@ -8275,7 +8201,7 @@
 -    public function process(ContainerBuilder $container)
 +    public function process(ContainerBuilder $container): void
      {
-         $container->setAlias(LoggerInterface::class, 'logger');
+         if (!$container->has(LoggerInterface::class)) {
 diff --git a/src/Symfony/Component/HttpKernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php b/src/Symfony/Component/HttpKernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php
 --- a/src/Symfony/Component/HttpKernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php
 +++ b/src/Symfony/Component/HttpKernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php
@@ -8329,14 +8255,14 @@
 diff --git a/src/Symfony/Component/HttpKernel/EventListener/CacheAttributeListener.php b/src/Symfony/Component/HttpKernel/EventListener/CacheAttributeListener.php
 --- a/src/Symfony/Component/HttpKernel/EventListener/CacheAttributeListener.php
 +++ b/src/Symfony/Component/HttpKernel/EventListener/CacheAttributeListener.php
-@@ -50,5 +50,5 @@ class CacheAttributeListener implements EventSubscriberInterface
+@@ -51,5 +51,5 @@ class CacheAttributeListener implements EventSubscriberInterface
       * @return void
       */
 -    public function onKernelControllerArguments(ControllerArgumentsEvent $event)
 +    public function onKernelControllerArguments(ControllerArgumentsEvent $event): void
      {
          $request = $event->getRequest();
-@@ -96,5 +96,5 @@ class CacheAttributeListener implements EventSubscriberInterface
+@@ -97,5 +97,5 @@ class CacheAttributeListener implements EventSubscriberInterface
       * @return void
       */
 -    public function onKernelResponse(ResponseEvent $event)
@@ -8447,28 +8373,28 @@
 diff --git a/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php b/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
 --- a/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
 +++ b/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
-@@ -249,5 +249,5 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
+@@ -255,5 +255,5 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
       * @return void
       */
 -    public function terminate(Request $request, Response $response)
 +    public function terminate(Request $request, Response $response): void
      {
          // Do not call any listeners in case of a cache hit.
-@@ -469,5 +469,5 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
+@@ -475,5 +475,5 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
       * @return Response
       */
 -    protected function forward(Request $request, bool $catch = false, ?Response $entry = null)
 +    protected function forward(Request $request, bool $catch = false, ?Response $entry = null): Response
      {
          $this->surrogate?->addSurrogateCapability($request);
-@@ -603,5 +603,5 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
+@@ -600,5 +600,5 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
       * @throws \Exception
       */
 -    protected function store(Request $request, Response $response)
 +    protected function store(Request $request, Response $response): void
      {
          try {
-@@ -681,5 +681,5 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
+@@ -678,5 +678,5 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
       * @return void
       */
 -    protected function processResponseBody(Request $request, Response $response)
@@ -8528,14 +8454,14 @@
 +    public function cleanup(): void
      {
          // unlock everything
-@@ -254,5 +254,5 @@ class Store implements StoreInterface
+@@ -250,5 +250,5 @@ class Store implements StoreInterface
       * @throws \RuntimeException
       */
 -    public function invalidate(Request $request)
 +    public function invalidate(Request $request): void
      {
          $modified = false;
-@@ -421,5 +421,5 @@ class Store implements StoreInterface
+@@ -417,5 +417,5 @@ class Store implements StoreInterface
       * @return string
       */
 -    public function getPath(string $key)
@@ -8609,7 +8535,7 @@
 +    protected function getScript(object $request): string
      {
          $kernel = var_export(serialize($this->kernel), true);
-@@ -116,5 +116,5 @@ EOF;
+@@ -116,5 +116,5 @@ class HttpKernelBrowser extends AbstractBrowser
       * @return string
       */
 -    protected function getHandleScript()
@@ -8619,70 +8545,70 @@
 diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php
 --- a/src/Symfony/Component/HttpKernel/Kernel.php
 +++ b/src/Symfony/Component/HttpKernel/Kernel.php
-@@ -107,5 +107,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
+@@ -109,5 +109,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
       * @return void
       */
 -    public function boot()
 +    public function boot(): void
      {
-         if (true === $this->booted) {
-@@ -138,5 +138,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
+         if ($this->booted) {
+@@ -140,5 +140,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
       * @return void
       */
 -    public function reboot(?string $warmupDir)
 +    public function reboot(?string $warmupDir): void
      {
          $this->shutdown();
-@@ -148,5 +148,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
+@@ -150,5 +150,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
       * @return void
       */
 -    public function terminate(Request $request, Response $response)
 +    public function terminate(Request $request, Response $response): void
      {
-         if (false === $this->booted) {
-@@ -162,5 +162,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
+         if (!$this->booted) {
+@@ -164,5 +164,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
       * @return void
       */
 -    public function shutdown()
 +    public function shutdown(): void
      {
-         if (false === $this->booted) {
-@@ -340,5 +340,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
+         if (!$this->booted) {
+@@ -351,5 +351,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
       * @throws \LogicException if two bundles share a common name
       */
 -    protected function initializeBundles()
 +    protected function initializeBundles(): void
      {
          // init bundles
-@@ -360,5 +360,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
+@@ -371,5 +371,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
       * @return void
       */
 -    protected function build(ContainerBuilder $container)
 +    protected function build(ContainerBuilder $container): void
      {
      }
-@@ -400,5 +400,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
+@@ -411,5 +411,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
       * @return void
       */
 -    protected function initializeContainer()
 +    protected function initializeContainer(): void
      {
          $class = $this->getContainerClass();
-@@ -626,5 +626,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
+@@ -638,5 +638,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
       * @return void
       */
 -    protected function prepareContainer(ContainerBuilder $container)
 +    protected function prepareContainer(ContainerBuilder $container): void
      {
          $extensions = [];
-@@ -679,5 +679,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
+@@ -691,5 +691,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
       * @return void
       */
 -    protected function dumpContainer(ConfigCache $cache, ContainerBuilder $container, string $class, string $baseClass)
 +    protected function dumpContainer(ConfigCache $cache, ContainerBuilder $container, string $class, string $baseClass): void
      {
          // cache the container
-@@ -857,5 +857,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
+@@ -869,5 +869,5 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
       * @return void
       */
 -    public function __wakeup()
@@ -8905,24 +8831,23 @@
 -    public function terminate(Request $request, Response $response);
 +    public function terminate(Request $request, Response $response): void;
  }
-diff --git a/src/Symfony/Component/Intl/Data/Bundle/Compiler/BundleCompilerInterface.php b/src/Symfony/Component/Intl/Data/Bundle/Compiler/BundleCompilerInterface.php
---- a/src/Symfony/Component/Intl/Data/Bundle/Compiler/BundleCompilerInterface.php
-+++ b/src/Symfony/Component/Intl/Data/Bundle/Compiler/BundleCompilerInterface.php
-@@ -27,4 +27,4 @@ interface BundleCompilerInterface
-      * @return void
-      */
--    public function compile(string $sourcePath, string $targetDir);
-+    public function compile(string $sourcePath, string $targetDir): void;
- }
-diff --git a/src/Symfony/Component/Intl/Data/Bundle/Writer/BundleWriterInterface.php b/src/Symfony/Component/Intl/Data/Bundle/Writer/BundleWriterInterface.php
---- a/src/Symfony/Component/Intl/Data/Bundle/Writer/BundleWriterInterface.php
-+++ b/src/Symfony/Component/Intl/Data/Bundle/Writer/BundleWriterInterface.php
-@@ -24,4 +24,4 @@ interface BundleWriterInterface
-      * @return void
-      */
--    public function write(string $path, string $locale, mixed $data);
-+    public function write(string $path, string $locale, mixed $data): void;
- }
+diff --git a/src/Symfony/Component/Intl/Transliterator/EmojiTransliterator.php b/src/Symfony/Component/Intl/Transliterator/EmojiTransliterator.php
+--- a/src/Symfony/Component/Intl/Transliterator/EmojiTransliterator.php
++++ b/src/Symfony/Component/Intl/Transliterator/EmojiTransliterator.php
+@@ -75,5 +75,5 @@ if (!class_exists(\Transliterator::class)) {
+          */
+         #[\ReturnTypeWillChange]
+-        public function getErrorCode(): int|false
++        public function getErrorCode(): int
+         {
+             return isset($this->transliterator) ? $this->transliterator->getErrorCode() : 0;
+@@ -84,5 +84,5 @@ if (!class_exists(\Transliterator::class)) {
+          */
+         #[\ReturnTypeWillChange]
+-        public function getErrorMessage(): string|false
++        public function getErrorMessage(): string
+         {
+             return isset($this->transliterator) ? $this->transliterator->getErrorMessage() : '';
 diff --git a/src/Symfony/Component/Intl/Util/IntlTestHelper.php b/src/Symfony/Component/Intl/Util/IntlTestHelper.php
 --- a/src/Symfony/Component/Intl/Util/IntlTestHelper.php
 +++ b/src/Symfony/Component/Intl/Util/IntlTestHelper.php
@@ -9013,35 +8938,28 @@
 diff --git a/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php b/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php
 --- a/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php
 +++ b/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php
-@@ -48,5 +48,5 @@ class Connection extends AbstractConnection
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
-@@ -68,5 +68,5 @@ class Connection extends AbstractConnection
+@@ -65,5 +65,5 @@ class Connection extends AbstractConnection
       * @return void
       */
 -    public function bind(?string $dn = null, #[\SensitiveParameter] ?string $password = null)
 +    public function bind(?string $dn = null, #[\SensitiveParameter] ?string $password = null): void
      {
          if (!$this->connection) {
-@@ -101,5 +101,5 @@ class Connection extends AbstractConnection
+@@ -98,5 +98,5 @@ class Connection extends AbstractConnection
       * @return void
       */
 -    public function setOption(string $name, array|string|int|bool $value)
 +    public function setOption(string $name, array|string|int|bool $value): void
      {
          if (!@ldap_set_option($this->connection, ConnectionOptions::getOption($name), $value)) {
-@@ -111,5 +111,5 @@ class Connection extends AbstractConnection
+@@ -108,5 +108,5 @@ class Connection extends AbstractConnection
       * @return array|string|int|null
       */
 -    public function getOption(string $name)
 +    public function getOption(string $name): array|string|int|null
      {
          if (!@ldap_get_option($this->connection, ConnectionOptions::getOption($name), $ret)) {
-@@ -123,5 +123,5 @@ class Connection extends AbstractConnection
+@@ -120,5 +120,5 @@ class Connection extends AbstractConnection
       * @return void
       */
 -    protected function configureOptions(OptionsResolver $resolver)
@@ -9107,16 +9025,6 @@
 +    public function applyOperations(string $dn, iterable $operations): static
      {
          $operationsMapped = [];
-diff --git a/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php b/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php
---- a/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php
-+++ b/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php
-@@ -39,5 +39,5 @@ class Query extends AbstractQuery
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/Ldap/Entry.php b/src/Symfony/Component/Ldap/Entry.php
 --- a/src/Symfony/Component/Ldap/Entry.php
 +++ b/src/Symfony/Component/Ldap/Entry.php
@@ -9448,28 +9356,28 @@
 diff --git a/src/Symfony/Component/Lock/Store/MongoDbStore.php b/src/Symfony/Component/Lock/Store/MongoDbStore.php
 --- a/src/Symfony/Component/Lock/Store/MongoDbStore.php
 +++ b/src/Symfony/Component/Lock/Store/MongoDbStore.php
-@@ -209,5 +209,5 @@ class MongoDbStore implements PersistingStoreInterface
+@@ -212,5 +212,5 @@ class MongoDbStore implements PersistingStoreInterface
       * @throws DriverRuntimeException        for other driver errors (e.g. connection errors)
       */
 -    public function createTtlIndex(int $expireAfterSeconds = 0)
 +    public function createTtlIndex(int $expireAfterSeconds = 0): void
      {
          $server = $this->getManager()->selectServer();
-@@ -231,5 +231,5 @@ class MongoDbStore implements PersistingStoreInterface
+@@ -234,5 +234,5 @@ class MongoDbStore implements PersistingStoreInterface
       * @throws LockExpiredException when save is called on an expired lock
       */
 -    public function save(Key $key)
 +    public function save(Key $key): void
      {
          $key->reduceLifetime($this->initialTtl);
-@@ -257,5 +257,5 @@ class MongoDbStore implements PersistingStoreInterface
+@@ -260,5 +260,5 @@ class MongoDbStore implements PersistingStoreInterface
       * @throws LockExpiredException
       */
 -    public function putOffExpiration(Key $key, float $ttl)
 +    public function putOffExpiration(Key $key, float $ttl): void
      {
          $key->reduceLifetime($ttl);
-@@ -276,5 +276,5 @@ class MongoDbStore implements PersistingStoreInterface
+@@ -279,5 +279,5 @@ class MongoDbStore implements PersistingStoreInterface
       * @return void
       */
 -    public function delete(Key $key)
@@ -9641,16 +9549,6 @@
 +    public function reset(): void
      {
          $this->events = new MessageEvents();
-diff --git a/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php b/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php
---- a/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php
-+++ b/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php
-@@ -381,5 +381,5 @@ class SmtpTransport extends AbstractTransport
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsTransport.php b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsTransport.php
 --- a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsTransport.php
 +++ b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsTransport.php
@@ -9668,36 +9566,16 @@
 +    private function getReceiver(): MessageCountAwareInterface&ReceiverInterface
      {
          return $this->receiver ??= new AmazonSqsReceiver($this->connection, $this->serializer);
-diff --git a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php
---- a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php
-+++ b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php
-@@ -74,5 +74,5 @@ class Connection
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
-diff --git a/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php b/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php
---- a/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php
-+++ b/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php
-@@ -42,5 +42,5 @@ final class PostgreSqlConnection extends Connection
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php b/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php
 --- a/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php
 +++ b/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php
-@@ -132,5 +132,5 @@ EOF
+@@ -132,5 +132,5 @@ class ConsumeMessagesCommand extends Command implements SignalableCommandInterfa
       * @return void
       */
 -    protected function interact(InputInterface $input, OutputInterface $output)
 +    protected function interact(InputInterface $input, OutputInterface $output): void
      {
-         $io = new SymfonyStyle($input, $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output);
+         $io = new SymfonyStyle($input, $output);
 diff --git a/src/Symfony/Component/Messenger/Command/DebugCommand.php b/src/Symfony/Component/Messenger/Command/DebugCommand.php
 --- a/src/Symfony/Component/Messenger/Command/DebugCommand.php
 +++ b/src/Symfony/Component/Messenger/Command/DebugCommand.php
@@ -9721,7 +9599,7 @@
 diff --git a/src/Symfony/Component/Messenger/Command/StatsCommand.php b/src/Symfony/Component/Messenger/Command/StatsCommand.php
 --- a/src/Symfony/Component/Messenger/Command/StatsCommand.php
 +++ b/src/Symfony/Component/Messenger/Command/StatsCommand.php
-@@ -42,5 +42,5 @@ class StatsCommand extends Command
+@@ -41,5 +41,5 @@ class StatsCommand extends Command
       * @return void
       */
 -    protected function configure()
@@ -9751,7 +9629,7 @@
 diff --git a/src/Symfony/Component/Messenger/EventListener/SendFailedMessageToFailureTransportListener.php b/src/Symfony/Component/Messenger/EventListener/SendFailedMessageToFailureTransportListener.php
 --- a/src/Symfony/Component/Messenger/EventListener/SendFailedMessageToFailureTransportListener.php
 +++ b/src/Symfony/Component/Messenger/EventListener/SendFailedMessageToFailureTransportListener.php
-@@ -39,5 +39,5 @@ class SendFailedMessageToFailureTransportListener implements EventSubscriberInte
+@@ -37,5 +37,5 @@ class SendFailedMessageToFailureTransportListener implements EventSubscriberInte
       * @return void
       */
 -    public function onMessageFailed(WorkerMessageFailedEvent $event)
@@ -10093,35 +9971,28 @@
 diff --git a/src/Symfony/Component/Process/Process.php b/src/Symfony/Component/Process/Process.php
 --- a/src/Symfony/Component/Process/Process.php
 +++ b/src/Symfony/Component/Process/Process.php
-@@ -204,5 +204,5 @@ class Process implements \IteratorAggregate
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
-@@ -295,5 +295,5 @@ class Process implements \IteratorAggregate
+@@ -296,5 +296,5 @@ class Process implements \IteratorAggregate
       * @throws LogicException   In case a callback is provided and output has been disabled
       */
 -    public function start(?callable $callback = null, array $env = [])
 +    public function start(?callable $callback = null, array $env = []): void
      {
          if ($this->isRunning()) {
-@@ -1146,5 +1146,5 @@ class Process implements \IteratorAggregate
+@@ -1147,5 +1147,5 @@ class Process implements \IteratorAggregate
       * @throws ProcessTimedOutException In case the timeout was reached
       */
 -    public function checkTimeout()
 +    public function checkTimeout(): void
      {
          if (self::STATUS_STARTED !== $this->status) {
-@@ -1187,5 +1187,5 @@ class Process implements \IteratorAggregate
+@@ -1188,5 +1188,5 @@ class Process implements \IteratorAggregate
       * @return void
       */
 -    public function setOptions(array $options)
 +    public function setOptions(array $options): void
      {
          if ($this->isRunning()) {
-@@ -1284,5 +1284,5 @@ class Process implements \IteratorAggregate
+@@ -1285,5 +1285,5 @@ class Process implements \IteratorAggregate
       * @return void
       */
 -    protected function updateStatus(bool $blocking)
@@ -10506,26 +10377,6 @@
 +    abstract protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, object $annot): void;
  
      /**
-diff --git a/src/Symfony/Component/Routing/Loader/Configurator/CollectionConfigurator.php b/src/Symfony/Component/Routing/Loader/Configurator/CollectionConfigurator.php
---- a/src/Symfony/Component/Routing/Loader/Configurator/CollectionConfigurator.php
-+++ b/src/Symfony/Component/Routing/Loader/Configurator/CollectionConfigurator.php
-@@ -47,5 +47,5 @@ class CollectionConfigurator
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
-diff --git a/src/Symfony/Component/Routing/Loader/Configurator/ImportConfigurator.php b/src/Symfony/Component/Routing/Loader/Configurator/ImportConfigurator.php
---- a/src/Symfony/Component/Routing/Loader/Configurator/ImportConfigurator.php
-+++ b/src/Symfony/Component/Routing/Loader/Configurator/ImportConfigurator.php
-@@ -39,5 +39,5 @@ class ImportConfigurator
-      * @return void
-      */
--    public function __wakeup()
-+    public function __wakeup(): void
-     {
-         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
 diff --git a/src/Symfony/Component/Routing/Loader/XmlFileLoader.php b/src/Symfony/Component/Routing/Loader/XmlFileLoader.php
 --- a/src/Symfony/Component/Routing/Loader/XmlFileLoader.php
 +++ b/src/Symfony/Component/Routing/Loader/XmlFileLoader.php
@@ -10543,7 +10394,7 @@
 +    protected function parseRoute(RouteCollection $collection, \DOMElement $node, string $path): void
      {
          if ('' === $id = $node->getAttribute('id')) {
-@@ -156,5 +156,5 @@ class XmlFileLoader extends FileLoader
+@@ -158,5 +158,5 @@ class XmlFileLoader extends FileLoader
       * @throws \InvalidArgumentException When the XML is invalid
       */
 -    protected function parseImport(RouteCollection $collection, \DOMElement $node, string $path, string $file)
@@ -10560,14 +10411,14 @@
 +    protected function parseRoute(RouteCollection $collection, string $name, array $config, string $path): void
      {
          if (isset($config['alias'])) {
-@@ -176,5 +176,5 @@ class YamlFileLoader extends FileLoader
+@@ -178,5 +178,5 @@ class YamlFileLoader extends FileLoader
       * @return void
       */
 -    protected function parseImport(RouteCollection $collection, array $config, string $path, string $file)
 +    protected function parseImport(RouteCollection $collection, array $config, string $path, string $file): void
      {
          $type = $config['type'] ?? null;
-@@ -248,5 +248,5 @@ class YamlFileLoader extends FileLoader
+@@ -250,5 +250,5 @@ class YamlFileLoader extends FileLoader
       *                                   something is missing or the combination is nonsense
       */
 -    protected function validate(mixed $config, string $name, string $path)
@@ -10577,7 +10428,7 @@
 diff --git a/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherDumper.php b/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherDumper.php
 --- a/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherDumper.php
 +++ b/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherDumper.php
-@@ -54,5 +54,5 @@ EOF;
+@@ -54,5 +54,5 @@ class CompiledUrlMatcherDumper extends MatcherDumper
       * @return void
       */
 -    public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
@@ -10611,14 +10462,14 @@
 +    public function setContext(RequestContext $context): void
      {
          $this->context = $context;
-@@ -105,5 +105,5 @@ class UrlMatcher implements UrlMatcherInterface, RequestMatcherInterface
+@@ -106,5 +106,5 @@ class UrlMatcher implements UrlMatcherInterface, RequestMatcherInterface
       * @return void
       */
 -    public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
 +    public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider): void
      {
          $this->expressionLanguageProviders[] = $provider;
-@@ -259,5 +259,5 @@ class UrlMatcher implements UrlMatcherInterface, RequestMatcherInterface
+@@ -260,5 +260,5 @@ class UrlMatcher implements UrlMatcherInterface, RequestMatcherInterface
       * @return ExpressionLanguage
       */
 -    protected function getExpressionLanguage()
@@ -10673,56 +10524,56 @@
 +    public function addNamePrefix(string $prefix): void
      {
          $prefixedRoutes = [];
-@@ -253,5 +253,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
+@@ -259,5 +259,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
       * @return void
       */
 -    public function setHost(?string $pattern, array $defaults = [], array $requirements = [])
 +    public function setHost(?string $pattern, array $defaults = [], array $requirements = []): void
      {
          foreach ($this->routes as $route) {
-@@ -269,5 +269,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
+@@ -275,5 +275,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
       * @return void
       */
 -    public function setCondition(?string $condition)
 +    public function setCondition(?string $condition): void
      {
          foreach ($this->routes as $route) {
-@@ -283,5 +283,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
+@@ -289,5 +289,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
       * @return void
       */
 -    public function addDefaults(array $defaults)
 +    public function addDefaults(array $defaults): void
      {
          if ($defaults) {
-@@ -299,5 +299,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
+@@ -305,5 +305,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
       * @return void
       */
 -    public function addRequirements(array $requirements)
 +    public function addRequirements(array $requirements): void
      {
          if ($requirements) {
-@@ -315,5 +315,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
+@@ -321,5 +321,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
       * @return void
       */
 -    public function addOptions(array $options)
 +    public function addOptions(array $options): void
      {
          if ($options) {
-@@ -331,5 +331,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
+@@ -337,5 +337,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
       * @return void
       */
 -    public function setSchemes(string|array $schemes)
 +    public function setSchemes(string|array $schemes): void
      {
          foreach ($this->routes as $route) {
-@@ -345,5 +345,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
+@@ -351,5 +351,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
       * @return void
       */
 -    public function setMethods(string|array $methods)
 +    public function setMethods(string|array $methods): void
      {
          foreach ($this->routes as $route) {
-@@ -368,5 +368,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
+@@ -374,5 +374,5 @@ class RouteCollection implements \IteratorAggregate, \Countable
       * @return void
       */
 -    public function addResource(ResourceInterface $resource)
@@ -11122,7 +10973,7 @@
 diff --git a/src/Symfony/Component/Security/Core/User/UserInterface.php b/src/Symfony/Component/Security/Core/User/UserInterface.php
 --- a/src/Symfony/Component/Security/Core/User/UserInterface.php
 +++ b/src/Symfony/Component/Security/Core/User/UserInterface.php
-@@ -55,5 +55,5 @@ interface UserInterface
+@@ -53,5 +53,5 @@ interface UserInterface
       * @return void
       */
 -    public function eraseCredentials();
@@ -11322,7 +11173,7 @@
 diff --git a/src/Symfony/Component/Security/Http/FirewallMap.php b/src/Symfony/Component/Security/Http/FirewallMap.php
 --- a/src/Symfony/Component/Security/Http/FirewallMap.php
 +++ b/src/Symfony/Component/Security/Http/FirewallMap.php
-@@ -35,5 +35,5 @@ class FirewallMap implements FirewallMapInterface
+@@ -36,5 +36,5 @@ class FirewallMap implements FirewallMapInterface
       * @return void
       */
 -    public function add(?RequestMatcherInterface $requestMatcher = null, array $listeners = [], ?ExceptionListener $exceptionListener = null, ?LogoutListener $logoutListener = null)
@@ -11332,8 +11183,8 @@
 diff --git a/src/Symfony/Component/Security/Http/FirewallMapInterface.php b/src/Symfony/Component/Security/Http/FirewallMapInterface.php
 --- a/src/Symfony/Component/Security/Http/FirewallMapInterface.php
 +++ b/src/Symfony/Component/Security/Http/FirewallMapInterface.php
-@@ -38,4 +38,4 @@ interface FirewallMapInterface
-      * @return array{iterable<mixed, callable>, ExceptionListener, LogoutListener}
+@@ -39,4 +39,4 @@ interface FirewallMapInterface
+      * @return array{iterable<mixed, callable|FirewallListenerInterface>, ExceptionListener, LogoutListener}
       */
 -    public function getListeners(Request $request);
 +    public function getListeners(Request $request): array;
@@ -11504,14 +11355,14 @@
 +    protected function getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false): array|bool
      {
          $allowExtraAttributes = $context[self::ALLOW_EXTRA_ATTRIBUTES] ?? $this->defaultContext[self::ALLOW_EXTRA_ATTRIBUTES];
-@@ -271,5 +271,5 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
+@@ -276,5 +276,5 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
       * @return bool
       */
 -    protected function isAllowedAttribute(object|string $classOrObject, string $attribute, ?string $format = null, array $context = [])
 +    protected function isAllowedAttribute(object|string $classOrObject, string $attribute, ?string $format = null, array $context = []): bool
      {
          $ignoredAttributes = $context[self::IGNORED_ATTRIBUTES] ?? $this->defaultContext[self::IGNORED_ATTRIBUTES];
-@@ -322,5 +322,5 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
+@@ -327,5 +327,5 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
       * @throws MissingConstructorArgumentsException
       */
 -    protected function instantiateObject(array &$data, string $class, array &$context, \ReflectionClass $reflectionClass, array|bool $allowedAttributes, ?string $format = null)
@@ -11521,62 +11372,69 @@
 diff --git a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php
 --- a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php
 +++ b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php
-@@ -144,5 +144,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
+@@ -146,5 +146,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
       * @return bool
       */
 -    public function supportsNormalization(mixed $data, ?string $format = null /* , array $context = [] */)
 +    public function supportsNormalization(mixed $data, ?string $format = null /* , array $context = [] */): bool
      {
          return \is_object($data) && !$data instanceof \Traversable;
-@@ -152,5 +152,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
+@@ -154,5 +154,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
       * @return array|string|int|float|bool|\ArrayObject|null
       */
 -    public function normalize(mixed $object, ?string $format = null, array $context = [])
 +    public function normalize(mixed $object, ?string $format = null, array $context = []): array|string|int|float|bool|\ArrayObject|null
      {
          $context['_read_attributes'] = true;
-@@ -235,5 +235,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
+@@ -236,5 +236,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
       * @return object
       */
 -    protected function instantiateObject(array &$data, string $class, array &$context, \ReflectionClass $reflectionClass, array|bool $allowedAttributes, ?string $format = null)
 +    protected function instantiateObject(array &$data, string $class, array &$context, \ReflectionClass $reflectionClass, array|bool $allowedAttributes, ?string $format = null): object
      {
          if ($class !== $mappedClass = $this->getMappedClass($data, $class, $context)) {
-@@ -286,5 +286,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
+@@ -287,5 +287,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
       * @return string[]
       */
 -    abstract protected function extractAttributes(object $object, ?string $format = null, array $context = []);
 +    abstract protected function extractAttributes(object $object, ?string $format = null, array $context = []): array;
  
      /**
-@@ -293,5 +293,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
+@@ -294,5 +294,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
       * @return mixed
       */
 -    abstract protected function getAttributeValue(object $object, string $attribute, ?string $format = null, array $context = []);
 +    abstract protected function getAttributeValue(object $object, string $attribute, ?string $format = null, array $context = []): mixed;
  
      /**
-@@ -300,5 +300,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
+@@ -301,5 +301,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
       * @return bool
       */
 -    public function supportsDenormalization(mixed $data, string $type, ?string $format = null /* , array $context = [] */)
 +    public function supportsDenormalization(mixed $data, string $type, ?string $format = null /* , array $context = [] */): bool
      {
          return class_exists($type) || (interface_exists($type, false) && null !== $this->classDiscriminatorResolver?->getMappingForClass($type));
-@@ -308,5 +308,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
+@@ -309,5 +309,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
       * @return mixed
       */
 -    public function denormalize(mixed $data, string $type, ?string $format = null, array $context = [])
 +    public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed
      {
          $context['_read_attributes'] = false;
-@@ -430,5 +430,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
+@@ -442,5 +442,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
       * @return void
       */
 -    abstract protected function setAttributeValue(object $object, string $attribute, mixed $value, ?string $format = null, array $context = []);
 +    abstract protected function setAttributeValue(object $object, string $attribute, mixed $value, ?string $format = null, array $context = []): void;
  
      /**
+@@ -786,5 +786,5 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
+     }
+ 
+-    protected function getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false)
++    protected function getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false): array|bool
+     {
+         if (false === $allowedAttributes = parent::getAllowedAttributes($classOrObject, $context, $attributesAsString)) {
 diff --git a/src/Symfony/Component/Serializer/Normalizer/DenormalizableInterface.php b/src/Symfony/Component/Serializer/Normalizer/DenormalizableInterface.php
 --- a/src/Symfony/Component/Serializer/Normalizer/DenormalizableInterface.php
 +++ b/src/Symfony/Component/Serializer/Normalizer/DenormalizableInterface.php
@@ -11615,14 +11473,14 @@
 diff --git a/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php
 --- a/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php
 +++ b/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php
-@@ -168,5 +168,5 @@ class GetSetMethodNormalizer extends AbstractObjectNormalizer
+@@ -175,5 +175,5 @@ class GetSetMethodNormalizer extends AbstractObjectNormalizer
       * @return void
       */
 -    protected function setAttributeValue(object $object, string $attribute, mixed $value, ?string $format = null, array $context = [])
 +    protected function setAttributeValue(object $object, string $attribute, mixed $value, ?string $format = null, array $context = []): void
      {
          $setter = 'set'.$attribute;
-@@ -182,5 +182,5 @@ class GetSetMethodNormalizer extends AbstractObjectNormalizer
+@@ -189,5 +189,5 @@ class GetSetMethodNormalizer extends AbstractObjectNormalizer
      }
  
 -    protected function isAllowedAttribute($classOrObject, string $attribute, ?string $format = null, array $context = [])
@@ -11668,14 +11526,14 @@
 diff --git a/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php
 --- a/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php
 +++ b/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php
-@@ -156,5 +156,5 @@ class ObjectNormalizer extends AbstractObjectNormalizer
+@@ -131,5 +131,5 @@ class ObjectNormalizer extends AbstractObjectNormalizer
       * @return void
       */
 -    protected function setAttributeValue(object $object, string $attribute, mixed $value, ?string $format = null, array $context = [])
 +    protected function setAttributeValue(object $object, string $attribute, mixed $value, ?string $format = null, array $context = []): void
      {
          try {
-@@ -189,5 +189,5 @@ class ObjectNormalizer extends AbstractObjectNormalizer
+@@ -140,5 +140,5 @@ class ObjectNormalizer extends AbstractObjectNormalizer
      }
  
 -    protected function isAllowedAttribute($classOrObject, string $attribute, ?string $format = null, array $context = [])
@@ -11685,7 +11543,7 @@
 diff --git a/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php
 --- a/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php
 +++ b/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php
-@@ -191,5 +191,5 @@ class PropertyNormalizer extends AbstractObjectNormalizer
+@@ -196,5 +196,5 @@ class PropertyNormalizer extends AbstractObjectNormalizer
       * @return void
       */
 -    protected function setAttributeValue(object $object, string $attribute, mixed $value, ?string $format = null, array $context = [])
@@ -11738,7 +11596,7 @@
 diff --git a/src/Symfony/Component/Stopwatch/StopwatchEvent.php b/src/Symfony/Component/Stopwatch/StopwatchEvent.php
 --- a/src/Symfony/Component/Stopwatch/StopwatchEvent.php
 +++ b/src/Symfony/Component/Stopwatch/StopwatchEvent.php
-@@ -120,5 +120,5 @@ class StopwatchEvent
+@@ -118,5 +118,5 @@ class StopwatchEvent
       * @return void
       */
 -    public function ensureStopped()
@@ -11758,7 +11616,7 @@
 diff --git a/src/Symfony/Component/String/UnicodeString.php b/src/Symfony/Component/String/UnicodeString.php
 --- a/src/Symfony/Component/String/UnicodeString.php
 +++ b/src/Symfony/Component/String/UnicodeString.php
-@@ -366,5 +366,5 @@ class UnicodeString extends AbstractUnicodeString
+@@ -404,5 +404,5 @@ class UnicodeString extends AbstractUnicodeString
       * @return void
       */
 -    public function __wakeup()
@@ -12220,28 +12078,28 @@
 +    public function addResource(ResourceInterface $resource): void
      {
          $this->resources[$resource->__toString()] = $resource;
-@@ -254,5 +254,5 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
+@@ -264,5 +264,5 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
       * @return void
       */
 -    public function setMetadata(string $key, mixed $value, string $domain = 'messages')
 +    public function setMetadata(string $key, mixed $value, string $domain = 'messages'): void
      {
          $this->metadata[$domain][$key] = $value;
-@@ -262,5 +262,5 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
+@@ -272,5 +272,5 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
       * @return void
       */
 -    public function deleteMetadata(string $key = '', string $domain = 'messages')
 +    public function deleteMetadata(string $key = '', string $domain = 'messages'): void
      {
          if ('' == $domain) {
-@@ -295,5 +295,5 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
+@@ -305,5 +305,5 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
       * @return void
       */
 -    public function setCatalogueMetadata(string $key, mixed $value, string $domain = 'messages')
 +    public function setCatalogueMetadata(string $key, mixed $value, string $domain = 'messages'): void
      {
          $this->catalogueMetadata[$domain][$key] = $value;
-@@ -303,5 +303,5 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
+@@ -313,5 +313,5 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
       * @return void
       */
 -    public function deleteCatalogueMetadata(string $key = '', string $domain = 'messages')
@@ -12386,14 +12244,14 @@
 +    protected function initializeCatalogue(string $locale): void
      {
          $this->assertValidLocale($locale);
-@@ -388,5 +388,5 @@ EOF
+@@ -386,5 +386,5 @@ class Translator implements TranslatorInterface, TranslatorBagInterface, LocaleA
       * @return array
       */
 -    protected function computeFallbackLocales(string $locale)
 +    protected function computeFallbackLocales(string $locale): array
      {
          $this->parentLocales ??= json_decode(file_get_contents(__DIR__.'/Resources/data/parents.json'), true);
-@@ -436,5 +436,5 @@ EOF
+@@ -434,5 +434,5 @@ class Translator implements TranslatorInterface, TranslatorBagInterface, LocaleA
       * @throws InvalidArgumentException If the locale contains invalid characters
       */
 -    protected function assertValidLocale(string $locale)
@@ -13079,7 +12937,7 @@
 diff --git a/src/Symfony/Component/Validator/Constraints/UrlValidator.php b/src/Symfony/Component/Validator/Constraints/UrlValidator.php
 --- a/src/Symfony/Component/Validator/Constraints/UrlValidator.php
 +++ b/src/Symfony/Component/Validator/Constraints/UrlValidator.php
-@@ -49,5 +49,5 @@ class UrlValidator extends ConstraintValidator
+@@ -56,5 +56,5 @@ class UrlValidator extends ConstraintValidator
       * @return void
       */
 -    public function validate(mixed $value, Constraint $constraint)
@@ -13270,7 +13128,7 @@
 diff --git a/src/Symfony/Component/Validator/Test/ConstraintValidatorTestCase.php b/src/Symfony/Component/Validator/Test/ConstraintValidatorTestCase.php
 --- a/src/Symfony/Component/Validator/Test/ConstraintValidatorTestCase.php
 +++ b/src/Symfony/Component/Validator/Test/ConstraintValidatorTestCase.php
-@@ -294,5 +294,5 @@ abstract class ConstraintValidatorTestCase extends TestCase
+@@ -305,5 +305,5 @@ abstract class ConstraintValidatorTestCase extends TestCase
       * @psalm-return T
       */
 -    abstract protected function createValidator();
@@ -14059,7 +13917,7 @@
 -    public static function castHttpClient($client, array $a, Stub $stub, bool $isNested)
 +    public static function castHttpClient($client, array $a, Stub $stub, bool $isNested): array
      {
-         $multiKey = sprintf("\0%s\0multi", $client::class);
+         $multiKey = \sprintf("\0%s\0multi", $client::class);
 @@ -66,5 +66,5 @@ class SymfonyCaster
       * @return array
       */
@@ -14074,14 +13932,14 @@
 +    public static function castLazyObjectState($state, array $a, Stub $stub, bool $isNested): array
      {
          if (!$isNested) {
-@@ -109,5 +109,5 @@ class SymfonyCaster
+@@ -111,5 +111,5 @@ class SymfonyCaster
       * @return array
       */
 -    public static function castUuid(Uuid $uuid, array $a, Stub $stub, bool $isNested)
 +    public static function castUuid(Uuid $uuid, array $a, Stub $stub, bool $isNested): array
      {
          $a[Caster::PREFIX_VIRTUAL.'toBase58'] = $uuid->toBase58();
-@@ -125,5 +125,5 @@ class SymfonyCaster
+@@ -127,5 +127,5 @@ class SymfonyCaster
       * @return array
       */
 -    public static function castUlid(Ulid $ulid, array $a, Stub $stub, bool $isNested)
@@ -14354,28 +14212,28 @@
 +    protected function getDumpHeader(): string
      {
          $this->headerIsDumped = $this->outputStream ?? $this->lineDumper;
-@@ -789,5 +789,5 @@ EOHTML
+@@ -785,5 +785,5 @@ class HtmlDumper extends CliDumper
       * @return void
       */
 -    public function dumpString(Cursor $cursor, string $str, bool $bin, int $cut)
 +    public function dumpString(Cursor $cursor, string $str, bool $bin, int $cut): void
      {
          if ('' === $str && isset($cursor->attr['img-data'], $cursor->attr['content-type'])) {
-@@ -807,5 +807,5 @@ EOHTML
+@@ -803,5 +803,5 @@ class HtmlDumper extends CliDumper
       * @return void
       */
 -    public function enterHash(Cursor $cursor, int $type, string|int|null $class, bool $hasChild)
 +    public function enterHash(Cursor $cursor, int $type, string|int|null $class, bool $hasChild): void
      {
          if (Cursor::HASH_OBJECT === $type) {
-@@ -838,5 +838,5 @@ EOHTML
+@@ -834,5 +834,5 @@ class HtmlDumper extends CliDumper
       * @return void
       */
 -    public function leaveHash(Cursor $cursor, int $type, string|int|null $class, bool $hasChild, int $cut)
 +    public function leaveHash(Cursor $cursor, int $type, string|int|null $class, bool $hasChild, int $cut): void
      {
          $this->dumpEllipsis($cursor, $hasChild, $cut);
-@@ -954,5 +954,5 @@ EOHTML
+@@ -957,5 +957,5 @@ class HtmlDumper extends CliDumper
       * @return void
       */
 -    protected function dumpLine(int $depth, bool $endOfValue = false)
@@ -14405,7 +14263,7 @@
 diff --git a/src/Symfony/Component/VarExporter/Internal/Hydrator.php b/src/Symfony/Component/VarExporter/Internal/Hydrator.php
 --- a/src/Symfony/Component/VarExporter/Internal/Hydrator.php
 +++ b/src/Symfony/Component/VarExporter/Internal/Hydrator.php
-@@ -258,5 +258,5 @@ class Hydrator
+@@ -273,5 +273,5 @@ class Hydrator
       * @return array
       */
 -    public static function getPropertyScopes($class)
@@ -14466,7 +14324,7 @@
 -    public function onTransition(Event $event)
 +    public function onTransition(Event $event): void
      {
-         $this->logger->info(sprintf('Transition "%s" for subject of class "%s" in workflow "%s".', $event->getTransition()->getName(), $event->getSubject()::class, $event->getWorkflowName()));
+         $this->logger->info(\sprintf('Transition "%s" for subject of class "%s" in workflow "%s".', $event->getTransition()->getName(), $event->getSubject()::class, $event->getWorkflowName()));
 @@ -49,5 +49,5 @@ class AuditTrailListener implements EventSubscriberInterface
       * @return void
       */
diff -Nru symfony-6.4.21+dfsg/.github/patch-types.php symfony-6.4.40+dfsg/.github/patch-types.php
--- symfony-6.4.21+dfsg/.github/patch-types.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/patch-types.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,6 +50,7 @@
         case false !== strpos($file, '/src/Symfony/Component/Form/Tests/Fixtures/Answer.php'):
         case false !== strpos($file, '/src/Symfony/Component/Form/Tests/Fixtures/Number.php'):
         case false !== strpos($file, '/src/Symfony/Component/Form/Tests/Fixtures/Suit.php'):
+        case false !== strpos($file, '/src/Symfony/Component/PropertyAccess/Tests/Fixtures/AsymmetricVisibility.php'):
         case false !== strpos($file, '/src/Symfony/Component/PropertyInfo/Tests/Fixtures/'):
         case false !== strpos($file, '/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Php81Dummy.php'):
         case false !== strpos($file, '/src/Symfony/Component/Runtime/Internal/ComposerPlugin.php'):
diff -Nru symfony-6.4.21+dfsg/.github/psalm/.gitignore symfony-6.4.40+dfsg/.github/psalm/.gitignore
--- symfony-6.4.21+dfsg/.github/psalm/.gitignore	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/psalm/.gitignore	1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-*
-!.gitignore
-!stubs
-!stubs/*
diff -Nru symfony-6.4.21+dfsg/.github/psalm/psalm.baseline.xml symfony-6.4.40+dfsg/.github/psalm/psalm.baseline.xml
--- symfony-6.4.21+dfsg/.github/psalm/psalm.baseline.xml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/psalm/psalm.baseline.xml	1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<files psalm-version="4.x-dev@">
-</files>
diff -Nru symfony-6.4.21+dfsg/.github/PULL_REQUEST_TEMPLATE.md symfony-6.4.40+dfsg/.github/PULL_REQUEST_TEMPLATE.md
--- symfony-6.4.21+dfsg/.github/PULL_REQUEST_TEMPLATE.md	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/PULL_REQUEST_TEMPLATE.md	2026-05-20 10:56:49.000000000 +0200
@@ -1,22 +1,25 @@
 | Q             | A
 | ------------- | ---
-| Branch?       | 7.3 for features / 6.4, and 7.2 for bug fixes <!-- see below -->
+| Branch?       | 8.1 for features / 6.4, 7.4, 8.0 for bug fixes
 | Bug fix?      | yes/no
-| New feature?  | yes/no <!-- please update src/**/CHANGELOG.md files -->
-| Deprecations? | yes/no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
-| Issues        | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead -->
+| New feature?  | yes/no <!-- if yes, also update src/**/CHANGELOG.md -->
+| Deprecations? | yes/no <!-- if yes, also update UPGRADE-*.md and src/**/CHANGELOG.md -->
+| Issues        | Fix #... <!-- prefix each issue number with "Fix #"; no need to create an issue if none exists, explain below -->
 | License       | MIT
 
 <!--
-Replace this notice by a description of your feature/bugfix.
-This will help reviewers and should be a good start for the documentation.
+🛠️ Replace this text with a concise explanation of your change:
+- What it does and why it's needed
+- A simple example of how it works (include PHP, YAML, etc.)
+- If it modifies existing behavior, include a before/after comparison
 
-Additionally (see https://symfony.com/releases):
- - Always add tests and ensure they pass.
- - Bug fixes must be submitted against the lowest maintained branch where they apply
-   (lowest branches are regularly merged to upper ones so they get the fixes too).
- - Features and deprecations must be submitted against the latest branch.
- - For new features, provide some code snippets to help understand usage.
- - Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
- - Never break backward compatibility (see https://symfony.com/bc).
+Contributor guidelines:
+- ✅ Add tests and ensure they pass
+- 🐞 Bug fixes must target the **lowest maintained** branch where they apply
+  https://symfony.com/releases#maintained-symfony-branches
+- ✨ New features and deprecations must target the **feature** branch
+  and must add an entry to the changelog file of the patched component:
+  https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
+- 🔒 Do not break backward compatibility:
+  https://symfony.com/bc
 -->
diff -Nru symfony-6.4.21+dfsg/.github/sa-tools/.gitignore symfony-6.4.40+dfsg/.github/sa-tools/.gitignore
--- symfony-6.4.21+dfsg/.github/sa-tools/.gitignore	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/.github/sa-tools/.gitignore	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,6 @@
+*
+!.gitignore
+!psalm.baseline.xml
+!phpstan.baseline.neon
+!stubs
+!stubs/*
diff -Nru symfony-6.4.21+dfsg/.github/sa-tools/phpstan.baseline.neon symfony-6.4.40+dfsg/.github/sa-tools/phpstan.baseline.neon
--- symfony-6.4.21+dfsg/.github/sa-tools/phpstan.baseline.neon	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/.github/sa-tools/phpstan.baseline.neon	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,2 @@
+parameters:
+    ignoreErrors: []
diff -Nru symfony-6.4.21+dfsg/.github/sa-tools/psalm.baseline.xml symfony-6.4.40+dfsg/.github/sa-tools/psalm.baseline.xml
--- symfony-6.4.21+dfsg/.github/sa-tools/psalm.baseline.xml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/.github/sa-tools/psalm.baseline.xml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<files psalm-version="4.x-dev@">
+</files>
diff -Nru symfony-6.4.21+dfsg/.github/workflows/fabbot.yml symfony-6.4.40+dfsg/.github/workflows/fabbot.yml
--- symfony-6.4.21+dfsg/.github/workflows/fabbot.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/.github/workflows/fabbot.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,15 @@
+name: CS
+
+on:
+  pull_request:
+
+permissions:
+  contents: read
+
+jobs:
+  call-fabbot:
+    name: Fabbot
+    uses: symfony-tools/fabbot/.github/workflows/fabbot.yml@main
+    with:
+      package: Symfony
+      check_license: true
diff -Nru symfony-6.4.21+dfsg/.github/workflows/integration-tests.yml symfony-6.4.40+dfsg/.github/workflows/integration-tests.yml
--- symfony-6.4.21+dfsg/.github/workflows/integration-tests.yml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/workflows/integration-tests.yml	2026-05-20 10:56:49.000000000 +0200
@@ -1,7 +1,7 @@
 name: Integration
 
 on:
-  push:
+  push: { branches: [ '*.*' ] }
   pull_request:
 
 defaults:
@@ -34,7 +34,7 @@
         env:
           POSTGRES_PASSWORD: 'password'
       ldap:
-        image: bitnami/openldap
+        image: bitnamilegacy/openldap
         ports:
           - 3389:3389
         env:
@@ -74,7 +74,7 @@
         env:
           STANDALONE: 1
       redis-sentinel:
-        image: bitnami/redis-sentinel:6.2.8
+        image: bitnamilegacy/redis-sentinel:6.2.8
         ports:
           - 26379:26379
         env:
@@ -82,7 +82,7 @@
           REDIS_MASTER_SET: redis_sentinel
           REDIS_SENTINEL_QUORUM: 1
       redis-primary:
-        image: bitnami/redis:latest
+        image: bitnamilegacy/redis:latest
         ports:
           - 16381:6379
         env:
@@ -91,7 +91,7 @@
         options: >-
           --name=redis-primary
       redis-replica:
-        image: bitnami/redis:latest
+        image: bitnamilegacy/redis:latest
         ports:
           - 16382:6379
         env:
@@ -128,7 +128,7 @@
       zookeeper:
         image: zookeeper
       kafka:
-        image: bitnami/kafka:3.7
+        image: bitnamilegacy/kafka:3.7
         ports:
           - 9092:9092
         env:
@@ -208,7 +208,7 @@
         with:
           coverage: "none"
           extensions: "json,couchbase-3.2.2,memcached,mongodb-1.12.0,redis,rdkafka,xsl,ldap,relay"
-          ini-values: date.timezone=UTC,memory_limit=-1,default_socket_timeout=10,session.gc_probability=0,apc.enable_cli=1,zend.assertions=1
+          ini-values: date.timezone=UTC,memory_limit=-1,default_socket_timeout=10,session.gc_probability=0,apc.enable_cli=1,zend.assertions=1,intl.default_locale=en,intl.error_level=0
           php-version: "${{ matrix.php }}"
           tools: pecl
 
@@ -218,7 +218,7 @@
           php -i
 
       - name: Load fixtures
-        uses: docker://bitnami/openldap
+        uses: docker://bitnamilegacy/openldap
         with:
           entrypoint: /bin/bash
           args: -c "(/opt/bitnami/openldap/bin/ldapwhoami -H ldap://ldap:3389 -D cn=admin,dc=symfony,dc=com -w symfony||sleep 5) && /opt/bitnami/openldap/bin/ldapadd -H ldap://ldap:3389 -D cn=admin,dc=symfony,dc=com -w symfony -f src/Symfony/Component/Ldap/Tests/Fixtures/data/fixtures.ldif && /opt/bitnami/openldap/bin/ldapdelete -H ldap://ldap:3389 -D cn=admin,dc=symfony,dc=com -w symfony cn=a,ou=users,dc=symfony,dc=com"
@@ -261,6 +261,7 @@
           REDIS_SENTINEL_SERVICE: redis_sentinel
           REDIS_REPLICATION_HOSTS: 'localhost:16382 localhost:16381'
           MESSENGER_REDIS_DSN: redis://127.0.0.1:7006/messages
+          MESSENGER_REDIS_SENTINEL_MASTER: redis_sentinel
           MESSENGER_AMQP_DSN: amqp://localhost/%2f/messages
           MESSENGER_SQS_DSN: "sqs://localhost:4566/messages?sslmode=disable&poll_timeout=0.01"
           MESSENGER_SQS_FIFO_QUEUE_DSN: "sqs://localhost:4566/messages.fifo?sslmode=disable&poll_timeout=0.01"
diff -Nru symfony-6.4.21+dfsg/.github/workflows/intl-data-tests.yml symfony-6.4.40+dfsg/.github/workflows/intl-data-tests.yml
--- symfony-6.4.21+dfsg/.github/workflows/intl-data-tests.yml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/workflows/intl-data-tests.yml	2026-05-20 10:56:49.000000000 +0200
@@ -2,6 +2,7 @@
 
 on:
   push:
+    branches: [ '*.*' ]
     paths:
       - 'src/Symfony/Component/Intl/*.php'
       - 'src/Symfony/Component/Intl/Util/GitRepository.php'
@@ -56,7 +57,7 @@
         with:
           coverage: "none"
           extensions: "zip,intl-${{env.SYMFONY_ICU_VERSION}}"
-          ini-values: "memory_limit=-1"
+          ini-values: memory_limit=-1,intl.default_locale=en,intl.error_level=0
           php-version: "8.1"
 
       - name: Install dependencies
diff -Nru symfony-6.4.21+dfsg/.github/workflows/phpunit-bridge.yml symfony-6.4.40+dfsg/.github/workflows/phpunit-bridge.yml
--- symfony-6.4.21+dfsg/.github/workflows/phpunit-bridge.yml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/workflows/phpunit-bridge.yml	2026-05-20 10:56:49.000000000 +0200
@@ -2,6 +2,7 @@
 
 on:
   push:
+    branches: [ '*.*' ]
     paths:
       - 'src/Symfony/Bridge/PhpUnit/**'
   pull_request:
diff -Nru symfony-6.4.21+dfsg/.github/workflows/psalm.yml symfony-6.4.40+dfsg/.github/workflows/psalm.yml
--- symfony-6.4.21+dfsg/.github/workflows/psalm.yml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/workflows/psalm.yml	1970-01-01 01:00:00.000000000 +0100
@@ -1,62 +0,0 @@
-name: Psalm
-
-on:
-  pull_request: ~
-
-defaults:
-  run:
-    shell: bash
-
-concurrency:
-    group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
-    cancel-in-progress: true
-
-permissions:
-  contents: read
-
-jobs:
-  psalm:
-    name: Psalm
-    runs-on: ubuntu-24.04
-
-    env:
-      php-version: '8.1'
-    steps:
-      - name: Setup PHP
-        uses: shivammathur/setup-php@v2
-        with:
-          php-version: ${{ env.php-version }}
-          ini-values: "memory_limit=-1"
-          coverage: none
-
-      - name: Checkout target branch
-        uses: actions/checkout@v4
-        with:
-          ref: ${{ github.base_ref }}
-
-      - name: Checkout PR
-        uses: actions/checkout@v4
-
-      - name: Install dependencies
-        run: |
-          COMPOSER_HOME="$(composer config home)"
-          ([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
-          export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
-          composer remove --dev --no-update --no-interaction symfony/phpunit-bridge
-          composer require --no-progress --ansi --no-plugins psalm/phar:@stable phpunit/phpunit:^9.5 php-http/discovery psr/event-dispatcher mongodb/mongodb jetbrains/phpstorm-stubs
-
-      - name: Generate Psalm baseline
-        run: |
-          git checkout composer.json
-          git checkout -m ${{ github.base_ref }}
-
-          # @todo intersection types are broken in Psalm
-          # @see https://github.com/vimeo/psalm/issues/7520
-          sed -i 's/Uuid&/Uuid|/' src/Symfony/Component/Uid/Factory/TimeBasedUuidFactory.php
-          sed -i 's/Interface&/Interface|/' src/Symfony/Component/HttpFoundation/Session/Storage/Handler/MigratingSessionHandler.php
-          ./vendor/bin/psalm.phar --set-baseline=.github/psalm/psalm.baseline.xml --no-progress
-          git checkout -m FETCH_HEAD
-
-      - name: Psalm
-        run: |
-          ./vendor/bin/psalm.phar --no-progress || ./vendor/bin/psalm.phar --output-format=github --no-progress
diff -Nru symfony-6.4.21+dfsg/.github/workflows/scorecards.yml symfony-6.4.40+dfsg/.github/workflows/scorecards.yml
--- symfony-6.4.21+dfsg/.github/workflows/scorecards.yml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/workflows/scorecards.yml	2026-05-20 10:56:49.000000000 +0200
@@ -6,7 +6,7 @@
   schedule:
     - cron: '34 4 * * 6'
   push:
-    branches: [ "7.3" ]
+    branches: [ "8.1" ]
 
 # Declare default permissions as read only.
 permissions: read-all
diff -Nru symfony-6.4.21+dfsg/.github/workflows/static-analysis.yml symfony-6.4.40+dfsg/.github/workflows/static-analysis.yml
--- symfony-6.4.21+dfsg/.github/workflows/static-analysis.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/.github/workflows/static-analysis.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,94 @@
+name: Static Analysis
+
+on:
+  pull_request: ~
+
+defaults:
+  run:
+    shell: bash
+
+concurrency:
+    group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
+    cancel-in-progress: true
+
+permissions:
+  contents: read
+
+jobs:
+  psalm:
+    name: Psalm
+    runs-on: ubuntu-24.04
+
+    env:
+      php-version: '8.1'
+    steps:
+      - name: Setup PHP
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: ${{ env.php-version }}
+          ini-values: memory_limit=-1,intl.default_locale=en,intl.error_level=0
+          coverage: none
+
+      - name: Checkout target branch
+        uses: actions/checkout@v6
+        with:
+          ref: ${{ github.base_ref }}
+
+      - name: Install dependencies
+        run: |
+          COMPOSER_HOME="$(composer config home)"
+          ([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
+          export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
+          composer remove --dev --no-update --no-interaction symfony/phpunit-bridge
+          composer require --no-progress --ansi --no-plugins psalm/phar:@stable phpunit/phpunit:^9.5 php-http/discovery psr/event-dispatcher mongodb/mongodb jetbrains/phpstorm-stubs
+
+      - name: Generate Psalm baseline
+        run: ./vendor/bin/psalm.phar --set-baseline=.github/sa-tools/psalm.baseline.xml --no-progress
+
+      - name: Switch to PR
+        run: |
+          git checkout composer.json
+          git fetch --depth=1 origin '+${{ github.event.pull_request.head.sha }}'
+          git checkout -m FETCH_HEAD
+
+      - name: Psalm
+        run: ./vendor/bin/psalm.phar --no-progress || ./vendor/bin/psalm.phar --output-format=github --no-progress
+
+  phpstan:
+    name: PHPStan
+    runs-on: ubuntu-24.04
+
+    env:
+      php-version: '8.1'
+    steps:
+      - name: Setup PHP
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: ${{ env.php-version }}
+          ini-values: memory_limit=-1,intl.default_locale=en,intl.error_level=0
+          coverage: none
+
+      - name: Checkout target branch
+        uses: actions/checkout@v6
+        with:
+          ref: ${{ github.base_ref }}
+
+      - name: Install dependencies
+        run: |
+          COMPOSER_HOME="$(composer config home)"
+          ([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
+          export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
+          composer remove --dev --no-update --no-interaction symfony/phpunit-bridge
+          composer require --no-progress --ansi --no-plugins phpstan/phpstan:@stable phpstan/phpstan-deprecation-rules:@stable phpunit/phpunit:^9.5 php-http/discovery psr/event-dispatcher mongodb/mongodb
+
+      - name: Generate PHPStan baseline
+        run: ./vendor/bin/phpstan analyse --generate-baseline=.github/sa-tools/phpstan.baseline.neon --allow-empty-baseline --no-progress
+
+      - name: Switch to PR
+        run: |
+          git checkout composer.json
+          git fetch --depth=1 origin '+${{ github.event.pull_request.head.sha }}'
+          git checkout -m FETCH_HEAD
+
+      - name: PHPStan
+        run: ./vendor/bin/phpstan analyse --no-progress || ./vendor/bin/phpstan analyse --error-format=github --no-progress
diff -Nru symfony-6.4.21+dfsg/.github/workflows/unit-tests.yml symfony-6.4.40+dfsg/.github/workflows/unit-tests.yml
--- symfony-6.4.21+dfsg/.github/workflows/unit-tests.yml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/workflows/unit-tests.yml	2026-05-20 10:56:49.000000000 +0200
@@ -1,7 +1,7 @@
 name: Unit Tests
 
 on:
-  push:
+  push: { branches: [ '*.*' ] }
   pull_request:
 
 defaults:
@@ -27,14 +27,14 @@
       matrix:
         include:
           - php: '8.1'
-          - php: '8.2'
+          - php: '8.4'
             mode: high-deps
           - php: '8.2'
             mode: low-deps
           - php: '8.3'
           - php: '8.4'
           - php: '8.5'
-            #mode: experimental
+          - php: '8.6'
       fail-fast: false
 
     runs-on: ubuntu-24.04
@@ -49,7 +49,7 @@
         uses: shivammathur/setup-php@v2
         with:
           coverage: "none"
-          ini-values: date.timezone=UTC,memory_limit=-1,default_socket_timeout=10,session.gc_probability=0,apc.enable_cli=1,zend.assertions=1
+          ini-values: date.timezone=UTC,memory_limit=-1,default_socket_timeout=10,session.gc_probability=0,apc.enable_cli=1,zend.assertions=1,intl.default_locale=en,intl.error_level=0
           php-version: "${{ matrix.php }}"
           extensions: "${{ matrix.extensions || env.extensions }}"
           tools: flex
@@ -67,7 +67,7 @@
           ([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
 
           echo COLUMNS=120 >> $GITHUB_ENV
-          echo PHPUNIT="$(pwd)/phpunit --exclude-group tty,benchmark,intl-data,integration" >> $GITHUB_ENV
+          echo PHPUNIT="$(pwd)/phpunit --exclude-group tty,benchmark,intl-data,integration,transient" >> $GITHUB_ENV
           echo COMPOSER_UP='composer update --no-progress --ansi'$([[ "${{ matrix.mode }}" != low-deps ]] && echo ' --ignore-platform-req=php+') >> $GITHUB_ENV
 
           SYMFONY_VERSIONS=$(git ls-remote -q --heads | cut -f2 | grep -o '/[1-9][0-9]*\.[0-9].*' | sort -V)
@@ -92,7 +92,7 @@
 
           # Create local composer packages for each patched components and reference them in composer.json files when cross-testing components
           if [[ ! "${{ matrix.mode }}" = *-deps ]]; then
-              php .github/build-packages.php HEAD^ $SYMFONY_VERSION src/Symfony/Bridge/PhpUnit
+            php .github/build-packages.php HEAD^ $SYMFONY_VERSION src/Symfony/Bridge/PhpUnit
           else
             echo SYMFONY_DEPRECATIONS_HELPER=weak >> $GITHUB_ENV
             cp composer.json composer.json.orig
@@ -181,7 +181,7 @@
               echo -e "\n\\e[32mOK\\e[0m $title\\n\\n::endgroup::"
             fi
 
-            [[ "${{ matrix.mode }}" = experimental ]] || (exit $ok)
+            exit $ok
           }
           export -f _run_tests
 
@@ -212,7 +212,7 @@
               export SYMFONY_REQUIRE=">=$SYMFONY_VERSION"
               git fetch --depth=2 origin $SYMFONY_VERSION
               git checkout -m FETCH_HEAD
-              PATCHED_COMPONENTS=$(echo "$PATCHED_COMPONENTS" | xargs dirname | xargs -n1 -I{} bash -c "[ -e '{}/phpunit.xml.dist' ] && echo '{}'" | sort || true)
+              PATCHED_COMPONENTS=$(echo "$PATCHED_COMPONENTS" | xargs dirname | xargs -I{} bash -c "[ -e '{}/phpunit.xml.dist' ] && echo '{}'" | sort || true)
               if [[ $PATCHED_COMPONENTS ]]; then
                 echo "::group::install phpunit"
                 ./phpunit install
diff -Nru symfony-6.4.21+dfsg/.github/workflows/windows.yml symfony-6.4.40+dfsg/.github/workflows/windows.yml
--- symfony-6.4.21+dfsg/.github/workflows/windows.yml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.github/workflows/windows.yml	2026-05-20 10:56:49.000000000 +0200
@@ -1,7 +1,7 @@
 name: Windows
 
 on:
-  push:
+  push: { branches: [ '*.*' ] }
   pull_request:
 
 concurrency:
@@ -43,13 +43,15 @@
         run: |
           $env:Path = 'c:\php;' + $env:Path
           mkdir c:\php && cd c:\php
-          iwr -outf php-8.1.0-Win32-vs16-x86.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php-8.1.0-Win32-vs16-x86.zip
-          7z x php-8.1.0-Win32-vs16-x86.zip -y >nul
+          iwr -outf php.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php-8.1.0-Win32-vs16-x86.zip
+          7z x php.zip -y >nul
           cd ext
-          iwr -outf php_apcu-5.1.21-8.1-ts-vs16-x86.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php_apcu-5.1.21-8.1-ts-vs16-x86.zip
-          7z x php_apcu-5.1.21-8.1-ts-vs16-x86.zip -y >nul
-          iwr -outf php_redis-5.3.7-8.1-ts-vs16-x86.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php_redis-5.3.7-8.1-ts-vs16-x86.zip
-          7z x php_redis-5.3.7-8.1-ts-vs16-x86.zip -y >nul
+          iwr -outf php_apcu.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php_apcu-5.1.21-8.1-ts-vs16-x86.zip
+          7z x php_apcu.zip -y >nul
+          iwr -outf php_igbinary.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php_igbinary-3.2.16-8.1-ts-vs16-x86.zip
+          7z x php_igbinary.zip -y >nul
+          iwr -outf php_redis.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php_redis-5.3.7-8.1-ts-vs16-x86.zip
+          7z x php_redis.zip -y >nul
           cd ..
           Copy php.ini-development php.ini-min
           "memory_limit=-1" >> php.ini-min
@@ -66,6 +68,7 @@
           "opcache.enable_cli=1" >> php.ini-max
           "extension=php_openssl.dll" >> php.ini-max
           "extension=php_apcu.dll" >> php.ini-max
+          "extension=php_igbinary.dll" >> php.ini-max
           "extension=php_redis.dll" >> php.ini-max
           "apc.enable_cli=1" >> php.ini-max
           "extension=php_intl.dll" >> php.ini-max
@@ -73,6 +76,8 @@
           "extension=php_pdo_sqlite.dll" >> php.ini-max
           "extension=php_curl.dll" >> php.ini-max
           "extension=php_sodium.dll" >> php.ini-max
+          "intl.default_locale=en" >> php.ini-max
+          "intl.error_level=0" >> php.ini-max
           Copy php.ini-max php.ini
           cd ${{ github.workspace }}
           iwr -outf composer.phar https://getcomposer.org/download/latest-stable/composer.phar
diff -Nru symfony-6.4.21+dfsg/link symfony-6.4.40+dfsg/link
--- symfony-6.4.21+dfsg/link	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/link	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,11 @@
 $directories[] = __DIR__.'/src/Symfony/Contracts';
 foreach ($directories as $dir) {
     if ($filesystem->exists($composer = "$dir/composer.json")) {
-        $sfPackages[json_decode(file_get_contents($composer))->name] = $dir;
+        try {
+            $sfPackages[json_decode(file_get_contents($composer), null, 512, JSON_THROW_ON_ERROR)->name] = $dir;
+        } catch (JsonException $e) {
+            throw new RuntimeException(sprintf('Error parsing "%s": %s', $composer, $e->getMessage()), previous: $e);
+        }
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/.php-cs-fixer.dist.php symfony-6.4.40+dfsg/.php-cs-fixer.dist.php
--- symfony-6.4.21+dfsg/.php-cs-fixer.dist.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/.php-cs-fixer.dist.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,35 +13,40 @@
     exit(0);
 }
 
-$fileHeaderComment = <<<'EOF'
-This file is part of the Symfony package.
+$fileHeaderParts = [
+    <<<'EOF'
+        This file is part of the Symfony package.
 
-(c) Fabien Potencier <fabien@symfony.com>
+        (c) Fabien Potencier <fabien@symfony.com>
 
-For the full copyright and license information, please view the LICENSE
-file that was distributed with this source code.
-EOF;
+        EOF,
+    <<<'EOF'
+
+        For the full copyright and license information, please view the LICENSE
+        file that was distributed with this source code.
+        EOF,
+];
 
 return (new PhpCsFixer\Config())
-    // @see https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/7777
     ->setParallelConfig(PhpCsFixer\Runner\Parallel\ParallelConfigFactory::detect())
     ->setRules([
-        '@PHP71Migration' => true,
-        '@PHPUnit75Migration:risky' => true,
+        '@PHP8x1Migration' => true, // take lowest version from `git grep -h '"php"' **/composer.json | uniq | sort`
+        '@PHP8x1Migration:risky' => true,
+        '@PHPUnit9x1Migration:risky' => true, // take version from src/Symfony/Bridge/PhpUnit/phpunit.xml.dist#L4
         '@Symfony' => true,
         '@Symfony:risky' => true,
-        'protected_to_private' => false,
-        'no_superfluous_phpdoc_tags' => [
-            'remove_inheritdoc' => true,
-            'allow_unused_params' => true, // for future-ready params, to be replaced with https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7377
+        'header_comment' => [
+            'header' => implode('', $fileHeaderParts),
+            'validator' => implode('', [
+                '/',
+                preg_quote($fileHeaderParts[0], '/'),
+                '(?P<EXTRA>.*)??',
+                preg_quote($fileHeaderParts[1], '/'),
+                '/s',
+            ]),
         ],
-        'header_comment' => ['header' => $fileHeaderComment],
-        // TODO: Remove once the "compiler_optimized" set includes "sprintf"
-        'native_function_invocation' => ['include' => ['@compiler_optimized', 'sprintf'], 'scope' => 'namespaced', 'strict' => true],
-        'nullable_type_declaration' => true,
-        'nullable_type_declaration_for_default_null_value' => true,
-        'modernize_strpos' => true,
-        'get_class_to_class_keyword' => true,
+        'modern_serialization_methods' => false,
+        'void_return' => false,
     ])
     ->setRiskyAllowed(true)
     ->setFinder(
@@ -50,33 +55,18 @@
             ->append([__FILE__])
             ->notPath('#/Fixtures/#')
             ->exclude([
-                // explicit trigger_error tests
-                'Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/',
+                'Symfony/Bridge/PhpUnit/',
+                'Symfony/Component/Emoji/Resources/',
                 'Symfony/Component/Intl/Resources/data/',
             ])
-            // explicit tests for ommited @param type, against `no_superfluous_phpdoc_tags`
-            ->notPath('Symfony/Component/PropertyInfo/Tests/Extractor/PhpDocExtractorTest.php')
-            ->notPath('Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php')
             // Support for older PHPunit version
-            ->notPath('Symfony/Bridge/PhpUnit/SymfonyTestsListener.php')
             ->notPath('#Symfony/Bridge/PhpUnit/.*Mock\.php#')
             ->notPath('#Symfony/Bridge/PhpUnit/.*Legacy#')
-            // file content autogenerated by `var_export`
-            ->notPath('Symfony/Component/Translation/Tests/Fixtures/resources.php')
-            // explicit trigger_error tests
-            ->notPath('Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php')
-            // stop removing spaces on the end of the line in strings
-            ->notPath('Symfony/Component/Messenger/Tests/Command/FailedMessagesShowCommandTest.php')
             // auto-generated proxies
-            ->notPath('Symfony/Component/Cache/Traits/RelayProxy.php')
-            ->notPath('Symfony/Component/Cache/Traits/Redis5Proxy.php')
-            ->notPath('Symfony/Component/Cache/Traits/Redis6Proxy.php')
-            ->notPath('Symfony/Component/Cache/Traits/RedisCluster5Proxy.php')
-            ->notPath('Symfony/Component/Cache/Traits/RedisCluster6Proxy.php')
+            ->notPath('#Symfony/Component/Cache/Traits/Re.*Proxy\.php#')
             // svg
             ->notPath('Symfony/Component/ErrorHandler/Resources/assets/images/symfony-ghost.svg.php')
             // HTML templates
             ->notPath('#Symfony/.*\.html\.php#')
     )
-    ->setCacheFile('.php-cs-fixer.cache')
 ;
diff -Nru symfony-6.4.21+dfsg/phpstan.dist.neon symfony-6.4.40+dfsg/phpstan.dist.neon
--- symfony-6.4.21+dfsg/phpstan.dist.neon	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/phpstan.dist.neon	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,18 @@
+includes:
+    - vendor/phpstan/phpstan-deprecation-rules/rules.neon
+    - .github/sa-tools/phpstan.baseline.neon
+
+parameters:
+    level: 5
+    reportUnmatchedIgnoredErrors: false
+    tmpDir: .github/sa-tools/phpstan-cache
+    paths:
+        - src
+    excludePaths:
+        - src/Symfony/*/*/Tests/*
+        - src/Symfony/*/*/*/Tests/*
+        - src/Symfony/*/*/*/*/Tests/*
+        - src/Symfony/Component/Intl/Resources/emoji/*
+    ignoreErrors:
+        # Added in PHP 8.4
+        - '#^Class BcMath\\Number not found\.$#'
diff -Nru symfony-6.4.21+dfsg/phpunit.xml.dist symfony-6.4.40+dfsg/phpunit.xml.dist
--- symfony-6.4.21+dfsg/phpunit.xml.dist	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/phpunit.xml.dist	2026-05-20 10:56:49.000000000 +0200
@@ -10,8 +10,6 @@
 >
     <php>
         <ini name="error_reporting" value="-1" />
-        <ini name="intl.default_locale" value="en" />
-        <ini name="intl.error_level" value="0" />
         <ini name="memory_limit" value="-1" />
         <env name="DUMP_LIGHT_ARRAY" value="" />
         <env name="DUMP_STRING_LENGTH" value="" />
@@ -54,7 +52,7 @@
             <directory>./src/Symfony/Bridge/*/Tests</directory>
             <directory>./src/Symfony/Component/*/Tests</directory>
             <directory>./src/Symfony/Component/*/*/Tests</directory>
-            <directory>./src/Symfony/Contract/*/Tests</directory>
+            <directory>./src/Symfony/Contracts/*/Tests</directory>
             <directory>./src/Symfony/Bundle/*/Tests</directory>
             <directory>./src/Symfony/Bundle/*/Resources</directory>
             <directory>./src/Symfony/Component/*/Resources</directory>
diff -Nru symfony-6.4.21+dfsg/psalm.xml symfony-6.4.40+dfsg/psalm.xml
--- symfony-6.4.21+dfsg/psalm.xml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/psalm.xml	2026-05-20 10:56:49.000000000 +0200
@@ -5,8 +5,8 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="https://getpsalm.org/schema/config"
     xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
-    cacheDirectory="./.github/psalm/cache/"
-    errorBaseline=".github/psalm/psalm.baseline.xml"
+    cacheDirectory="./.github/sa-tools/psalm-cache/"
+    errorBaseline=".github/sa-tools/psalm.baseline.xml"
     findUnusedBaselineEntry="false"
     findUnusedCode="false"
     findUnusedIssueHandlerSuppression="false"
@@ -26,22 +26,10 @@
     <issueHandlers>
         <UndefinedClass>
             <errorLevel type="suppress">
-                <!-- These classes have been added in PHP 8.1 -->
-                <referencedClass name="BackedEnum"/>
-                <referencedClass name="ReflectionIntersectionType"/>
-                <referencedClass name="UnitEnum"/>
-                <!-- These classes have been added in PHP 8.2 -->
-                <referencedClass name="Random\*"/>
+                <!-- These classes have been added in PHP 8.4 -->
+                <referencedClass name="BcMath\Number"/>
             </errorLevel>
         </UndefinedClass>
-        <UndefinedDocblockClass>
-            <errorLevel type="suppress">
-                <!-- These classes have been added in PHP 8.1 -->
-                <referencedClass name="BackedEnum"/>
-                <referencedClass name="ReflectionIntersectionType"/>
-                <referencedClass name="UnitEnum"/>
-            </errorLevel>
-        </UndefinedDocblockClass>
         <UnusedClass>
             <errorLevel type="suppress">
                 <!--
@@ -60,12 +48,6 @@
                 <directory name="src/Symfony" />
             </errorLevel>
         </UnusedConstructor>
-        <UndefinedAttributeClass>
-            <errorLevel type="suppress">
-                <!-- These classes have been added in PHP 8.2 -->
-                <referencedClass name="SensitiveParameter"/>
-            </errorLevel>
-        </UndefinedAttributeClass>
     </issueHandlers>
 
     <forbiddenFunctions>
diff -Nru symfony-6.4.21+dfsg/splitsh.json symfony-6.4.40+dfsg/splitsh.json
--- symfony-6.4.21+dfsg/splitsh.json	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/splitsh.json	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,180 @@
+{
+    "subtrees": {
+        "doctrine-bridge": "src/Symfony/Bridge/Doctrine",
+        "monolog-bridge": "src/Symfony/Bridge/Monolog",
+        "phpunit-bridge": "src/Symfony/Bridge/PhpUnit",
+        "proxy-manager-bridge": "src/Symfony/Bridge/ProxyManager",
+        "psr-http-message-bridge": "src/Symfony/Bridge/PsrHttpMessage",
+        "twig-bridge": "src/Symfony/Bridge/Twig",
+        "debug-bundle": "src/Symfony/Bundle/DebugBundle",
+        "framework-bundle": "src/Symfony/Bundle/FrameworkBundle",
+        "security-bundle": "src/Symfony/Bundle/SecurityBundle",
+        "twig-bundle": "src/Symfony/Bundle/TwigBundle",
+        "web-profiler-bundle": "src/Symfony/Bundle/WebProfilerBundle",
+        "asset": "src/Symfony/Component/Asset",
+        "asset-mapper": "src/Symfony/Component/AssetMapper",
+        "browser-kit": "src/Symfony/Component/BrowserKit",
+        "cache": "src/Symfony/Component/Cache",
+        "clock": "src/Symfony/Component/Clock",
+        "config": "src/Symfony/Component/Config",
+        "console": "src/Symfony/Component/Console",
+        "css-selector": "src/Symfony/Component/CssSelector",
+        "dependency-injection": "src/Symfony/Component/DependencyInjection",
+        "dom-crawler": "src/Symfony/Component/DomCrawler",
+        "dotenv": "src/Symfony/Component/Dotenv",
+        "error-handler": "src/Symfony/Component/ErrorHandler",
+        "event-dispatcher": "src/Symfony/Component/EventDispatcher",
+        "expression-language": "src/Symfony/Component/ExpressionLanguage",
+        "filesystem": "src/Symfony/Component/Filesystem",
+        "finder": "src/Symfony/Component/Finder",
+        "form": "src/Symfony/Component/Form",
+        "html-sanitizer": "src/Symfony/Component/HtmlSanitizer",
+        "http-client": "src/Symfony/Component/HttpClient",
+        "http-foundation": "src/Symfony/Component/HttpFoundation",
+        "http-kernel": "src/Symfony/Component/HttpKernel",
+        "intl": "src/Symfony/Component/Intl",
+        "ldap": "src/Symfony/Component/Ldap",
+        "lock": {
+            "prefixes": [{ "from": "src/Symfony/Component/Lock", "to": "", "excludes": ["Bridge"] }]
+        },
+        "mailer": {
+            "prefixes": [{ "from": "src/Symfony/Component/Mailer", "to": "", "excludes": ["Bridge"] }]
+        },
+        "amazon-mailer": "src/Symfony/Component/Mailer/Bridge/Amazon",
+        "brevo-mailer": "src/Symfony/Component/Mailer/Bridge/Brevo",
+        "google-mailer": "src/Symfony/Component/Mailer/Bridge/Google",
+        "infobip-mailer": "src/Symfony/Component/Mailer/Bridge/Infobip",
+        "mail-pace-mailer": "src/Symfony/Component/Mailer/Bridge/MailPace",
+        "mailchimp-mailer": "src/Symfony/Component/Mailer/Bridge/Mailchimp",
+        "mailer-send-mailer": "src/Symfony/Component/Mailer/Bridge/MailerSend",
+        "mailgun-mailer": "src/Symfony/Component/Mailer/Bridge/Mailgun",
+        "mailjet-mailer": "src/Symfony/Component/Mailer/Bridge/Mailjet",
+        "oh-my-smtp-mailer": "src/Symfony/Component/Mailer/Bridge/OhMySmtp",
+        "postmark-mailer": "src/Symfony/Component/Mailer/Bridge/Postmark",
+        "scaleway-mailer": "src/Symfony/Component/Mailer/Bridge/Scaleway",
+        "sendgrid-mailer": "src/Symfony/Component/Mailer/Bridge/Sendgrid",
+        "sendinblue-mailer": "src/Symfony/Component/Mailer/Bridge/Sendinblue",
+        "messenger": {
+            "prefixes": [{ "from": "src/Symfony/Component/Messenger", "to": "", "excludes": ["Bridge"] }]
+        },
+        "amazon-sqs-messenger": "src/Symfony/Component/Messenger/Bridge/AmazonSqs",
+        "amqp-messenger": "src/Symfony/Component/Messenger/Bridge/Amqp",
+        "beanstalkd-messenger": "src/Symfony/Component/Messenger/Bridge/Beanstalkd",
+        "doctrine-messenger": "src/Symfony/Component/Messenger/Bridge/Doctrine",
+        "redis-messenger": "src/Symfony/Component/Messenger/Bridge/Redis",
+        "mime": "src/Symfony/Component/Mime",
+        "notifier": {
+            "prefixes": [{ "from": "src/Symfony/Component/Notifier", "to": "", "excludes": ["Bridge"] }]
+        },
+        "all-my-sms-notifier": "src/Symfony/Component/Notifier/Bridge/AllMySms",
+        "amazon-sns-notifier": "src/Symfony/Component/Notifier/Bridge/AmazonSns",
+        "bandwidth-notifier": "src/Symfony/Component/Notifier/Bridge/Bandwidth",
+        "brevo-notifier": "src/Symfony/Component/Notifier/Bridge/Brevo",
+        "chatwork-notifier": "src/Symfony/Component/Notifier/Bridge/Chatwork",
+        "click-send-notifier": "src/Symfony/Component/Notifier/Bridge/ClickSend",
+        "clickatell-notifier": "src/Symfony/Component/Notifier/Bridge/Clickatell",
+        "contact-everyone-notifier": "src/Symfony/Component/Notifier/Bridge/ContactEveryone",
+        "discord-notifier": "src/Symfony/Component/Notifier/Bridge/Discord",
+        "engagespot-notifier": "src/Symfony/Component/Notifier/Bridge/Engagespot",
+        "esendex-notifier": "src/Symfony/Component/Notifier/Bridge/Esendex",
+        "expo-notifier": "src/Symfony/Component/Notifier/Bridge/Expo",
+        "fake-chat-notifier": "src/Symfony/Component/Notifier/Bridge/FakeChat",
+        "fake-sms-notifier": "src/Symfony/Component/Notifier/Bridge/FakeSms",
+        "firebase-notifier": "src/Symfony/Component/Notifier/Bridge/Firebase",
+        "forty-six-elks-notifier": "src/Symfony/Component/Notifier/Bridge/FortySixElks",
+        "free-mobile-notifier": "src/Symfony/Component/Notifier/Bridge/FreeMobile",
+        "gateway-api-notifier": "src/Symfony/Component/Notifier/Bridge/GatewayApi",
+        "gitter-notifier": "src/Symfony/Component/Notifier/Bridge/Gitter",
+        "go-ip-notifier": "src/Symfony/Component/Notifier/Bridge/GoIp",
+        "google-chat-notifier": "src/Symfony/Component/Notifier/Bridge/GoogleChat",
+        "infobip-notifier": "src/Symfony/Component/Notifier/Bridge/Infobip",
+        "iqsms-notifier": "src/Symfony/Component/Notifier/Bridge/Iqsms",
+        "isendpro-notifier": "src/Symfony/Component/Notifier/Bridge/Isendpro",
+        "kaz-info-teh-notifier": "src/Symfony/Component/Notifier/Bridge/KazInfoTeh",
+        "light-sms-notifier": "src/Symfony/Component/Notifier/Bridge/LightSms",
+        "line-notify-notifier": "src/Symfony/Component/Notifier/Bridge/LineNotify",
+        "linked-in-notifier": "src/Symfony/Component/Notifier/Bridge/LinkedIn",
+        "mailjet-notifier": "src/Symfony/Component/Notifier/Bridge/Mailjet",
+        "mastodon-notifier": "src/Symfony/Component/Notifier/Bridge/Mastodon",
+        "mattermost-notifier": "src/Symfony/Component/Notifier/Bridge/Mattermost",
+        "mercure-notifier": "src/Symfony/Component/Notifier/Bridge/Mercure",
+        "message-bird-notifier": "src/Symfony/Component/Notifier/Bridge/MessageBird",
+        "message-media-notifier": "src/Symfony/Component/Notifier/Bridge/MessageMedia",
+        "microsoft-teams-notifier": "src/Symfony/Component/Notifier/Bridge/MicrosoftTeams",
+        "mobyt-notifier": "src/Symfony/Component/Notifier/Bridge/Mobyt",
+        "novu-notifier": "src/Symfony/Component/Notifier/Bridge/Novu",
+        "ntfy-notifier": "src/Symfony/Component/Notifier/Bridge/Ntfy",
+        "octopush-notifier": "src/Symfony/Component/Notifier/Bridge/Octopush",
+        "one-signal-notifier": "src/Symfony/Component/Notifier/Bridge/OneSignal",
+        "orange-sms-notifier": "src/Symfony/Component/Notifier/Bridge/OrangeSms",
+        "ovh-cloud-notifier": "src/Symfony/Component/Notifier/Bridge/OvhCloud",
+        "pager-duty-notifier": "src/Symfony/Component/Notifier/Bridge/PagerDuty",
+        "plivo-notifier": "src/Symfony/Component/Notifier/Bridge/Plivo",
+        "pushover-notifier": "src/Symfony/Component/Notifier/Bridge/Pushover",
+        "redlink-notifier": "src/Symfony/Component/Notifier/Bridge/Redlink",
+        "ring-central-notifier": "src/Symfony/Component/Notifier/Bridge/RingCentral",
+        "rocket-chat-notifier": "src/Symfony/Component/Notifier/Bridge/RocketChat",
+        "sendberry-notifier": "src/Symfony/Component/Notifier/Bridge/Sendberry",
+        "sendinblue-notifier": "src/Symfony/Component/Notifier/Bridge/Sendinblue",
+        "simple-textin-notifier": "src/Symfony/Component/Notifier/Bridge/SimpleTextin",
+        "sinch-notifier": "src/Symfony/Component/Notifier/Bridge/Sinch",
+        "slack-notifier": "src/Symfony/Component/Notifier/Bridge/Slack",
+        "sms77-notifier": "src/Symfony/Component/Notifier/Bridge/Sms77",
+        "sms-biuras-notifier": "src/Symfony/Component/Notifier/Bridge/SmsBiuras",
+        "sms-factor-notifier": "src/Symfony/Component/Notifier/Bridge/SmsFactor",
+        "smsapi-notifier": "src/Symfony/Component/Notifier/Bridge/Smsapi",
+        "smsc-notifier": "src/Symfony/Component/Notifier/Bridge/Smsc",
+        "smsmode-notifier": "src/Symfony/Component/Notifier/Bridge/Smsmode",
+        "spot-hit-notifier": "src/Symfony/Component/Notifier/Bridge/SpotHit",
+        "telegram-notifier": "src/Symfony/Component/Notifier/Bridge/Telegram",
+        "telnyx-notifier": "src/Symfony/Component/Notifier/Bridge/Telnyx",
+        "termii-notifier": "src/Symfony/Component/Notifier/Bridge/Termii",
+        "turbo-sms-notifier": "src/Symfony/Component/Notifier/Bridge/TurboSms",
+        "twilio-notifier": "src/Symfony/Component/Notifier/Bridge/Twilio",
+        "twitter-notifier": "src/Symfony/Component/Notifier/Bridge/Twitter",
+        "vonage-notifier": "src/Symfony/Component/Notifier/Bridge/Vonage",
+        "yunpian-notifier": "src/Symfony/Component/Notifier/Bridge/Yunpian",
+        "zendesk-notifier": "src/Symfony/Component/Notifier/Bridge/Zendesk",
+        "zulip-notifier": "src/Symfony/Component/Notifier/Bridge/Zulip",
+        "options-resolver": "src/Symfony/Component/OptionsResolver",
+        "password-hasher": "src/Symfony/Component/PasswordHasher",
+        "process": "src/Symfony/Component/Process",
+        "property-access": "src/Symfony/Component/PropertyAccess",
+        "property-info": "src/Symfony/Component/PropertyInfo",
+        "rate-limiter": "src/Symfony/Component/RateLimiter",
+        "remote-event": "src/Symfony/Component/RemoteEvent",
+        "routing": "src/Symfony/Component/Routing",
+        "runtime": "src/Symfony/Component/Runtime",
+        "scheduler": "src/Symfony/Component/Scheduler",
+        "security-core": "src/Symfony/Component/Security/Core",
+        "security-csrf": "src/Symfony/Component/Security/Csrf",
+        "security-http": "src/Symfony/Component/Security/Http",
+        "semaphore": "src/Symfony/Component/Semaphore",
+        "serializer": "src/Symfony/Component/Serializer",
+        "stopwatch": "src/Symfony/Component/Stopwatch",
+        "string": "src/Symfony/Component/String",
+        "templating": "src/Symfony/Component/Templating",
+        "translation": {
+            "prefixes": [{ "from": "src/Symfony/Component/Translation", "to": "", "excludes": ["Bridge"] }]
+        },
+        "crowdin-translation-provider": "src/Symfony/Component/Translation/Bridge/Crowdin",
+        "loco-translation-provider": "src/Symfony/Component/Translation/Bridge/Loco",
+        "lokalise-translation-provider": "src/Symfony/Component/Translation/Bridge/Lokalise",
+        "phrase-translation-provider": "src/Symfony/Component/Translation/Bridge/Phrase",
+        "uid": "src/Symfony/Component/Uid",
+        "validator": "src/Symfony/Component/Validator",
+        "var-dumper": "src/Symfony/Component/VarDumper",
+        "var-exporter": "src/Symfony/Component/VarExporter",
+        "web-link": "src/Symfony/Component/WebLink",
+        "webhook": "src/Symfony/Component/Webhook",
+        "workflow": "src/Symfony/Component/Workflow",
+        "yaml": "src/Symfony/Component/Yaml",
+        "contracts": {
+            "prefixes": [{ "from": "src/Symfony/Contracts", "to": "" }],
+            "target_branch": "3.4"
+        }
+    },
+    "defaults": {
+        "git_constraint": "<1.8.2"
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/ArgumentResolver/EntityValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/ArgumentResolver/EntityValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/ArgumentResolver/EntityValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/ArgumentResolver/EntityValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,7 +57,7 @@
         $message = '';
         if (null !== $options->expr) {
             if (null === $object = $this->findViaExpression($manager, $request, $options)) {
-                $message = sprintf(' The expression "%s" returned null.', $options->expr);
+                $message = \sprintf(' The expression "%s" returned null.', $options->expr);
             }
         // find by identifier?
         } elseif (false === $object = $this->find($manager, $request, $options, $argument->getName())) {
@@ -73,7 +73,7 @@
         }
 
         if (null === $object && !$argument->isNullable()) {
-            throw new NotFoundHttpException(sprintf('"%s" object not found by "%s".', $options->class, self::class).$message);
+            throw new NotFoundHttpException(\sprintf('"%s" object not found by "%s".', $options->class, self::class).$message);
         }
 
         return [$object];
@@ -129,7 +129,7 @@
             foreach ($options->id as $field) {
                 // Convert "%s_uuid" to "foobar_uuid"
                 if (str_contains($field, '%s')) {
-                    $field = sprintf($field, $name);
+                    $field = \sprintf($field, $name);
                 }
 
                 $id[$field] = $request->attributes->get($field);
@@ -198,7 +198,7 @@
     private function findViaExpression(ObjectManager $manager, Request $request, MapEntity $options): ?object
     {
         if (!$this->expressionLanguage) {
-            throw new \LogicException(sprintf('You cannot use the "%s" if the ExpressionLanguage component is not available. Try running "composer require symfony/expression-language".', __CLASS__));
+            throw new \LogicException(\sprintf('You cannot use the "%s" if the ExpressionLanguage component is not available. Try running "composer require symfony/expression-language".', __CLASS__));
         }
 
         $repository = $manager->getRepository($options->class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/CacheWarmer/ProxyCacheWarmer.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/CacheWarmer/ProxyCacheWarmer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/CacheWarmer/ProxyCacheWarmer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/CacheWarmer/ProxyCacheWarmer.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,11 +43,11 @@
         foreach ($this->registry->getManagers() as $em) {
             // we need the directory no matter the proxy cache generation strategy
             if (!is_dir($proxyCacheDir = $em->getConfiguration()->getProxyDir())) {
-                if (false === @mkdir($proxyCacheDir, 0777, true) && !is_dir($proxyCacheDir)) {
-                    throw new \RuntimeException(sprintf('Unable to create the Doctrine Proxy directory "%s".', $proxyCacheDir));
+                if (false === @mkdir($proxyCacheDir, 0o777, true) && !is_dir($proxyCacheDir)) {
+                    throw new \RuntimeException(\sprintf('Unable to create the Doctrine Proxy directory "%s".', $proxyCacheDir));
                 }
             } elseif (!is_writable($proxyCacheDir)) {
-                throw new \RuntimeException(sprintf('The Doctrine Proxy directory "%s" is not writeable for the current system user.', $proxyCacheDir));
+                throw new \RuntimeException(\sprintf('The Doctrine Proxy directory "%s" is not writeable for the current system user.', $proxyCacheDir));
             }
 
             // if proxies are autogenerated we don't need to generate them in the cache warmer
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/composer.json symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -60,7 +60,7 @@
         "symfony/http-kernel": "<6.2",
         "symfony/lock": "<6.3",
         "symfony/messenger": "<5.4",
-        "symfony/property-info": "<5.4",
+        "symfony/property-info": "<5.4|>=8",
         "symfony/security-bundle": "<5.4",
         "symfony/security-core": "<6.4",
         "symfony/validator": "<6.4"
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/DataCollector/DoctrineDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/DataCollector/DoctrineDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/DataCollector/DoctrineDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/DataCollector/DoctrineDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -189,7 +189,7 @@
                     return [Caster::PREFIX_VIRTUAL.'__toString()' => (string) $o->getObject()];
                 }
 
-                return [Caster::PREFIX_VIRTUAL.'⚠' => sprintf('Object of class "%s" could not be converted to string.', $o->getClass())];
+                return [Caster::PREFIX_VIRTUAL.'⚠' => \sprintf('Object of class "%s" could not be converted to string.', $o->getClass())];
             },
         ];
     }
@@ -278,7 +278,7 @@
         }
 
         if (\is_resource($var)) {
-            return [sprintf('/* Resource(%s) */', get_resource_type($var)), false, false];
+            return [\sprintf('/* Resource(%s) */', get_resource_type($var)), false, false];
         }
 
         return [$var, true, true];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,7 +86,7 @@
                 }
 
                 if (null === $bundle) {
-                    throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled.', $mappingName));
+                    throw new \InvalidArgumentException(\sprintf('Bundle "%s" does not exist or it is not enabled.', $mappingName));
                 }
 
                 $mappingConfig = $this->getMappingDriverBundleConfigDefaults($mappingConfig, $bundle, $container, $bundleMetadata['path']);
@@ -130,7 +130,7 @@
     {
         $mappingDirectory = $mappingConfig['dir'];
         if (!is_dir($mappingDirectory)) {
-            throw new \InvalidArgumentException(sprintf('Invalid Doctrine mapping path given. Cannot load Doctrine mapping/bundle named "%s".', $mappingName));
+            throw new \InvalidArgumentException(\sprintf('Invalid Doctrine mapping path given. Cannot load Doctrine mapping/bundle named "%s".', $mappingName));
         }
 
         $this->drivers[$mappingConfig['type']][$mappingConfig['prefix']] = realpath($mappingDirectory) ?: $mappingDirectory;
@@ -242,15 +242,15 @@
     protected function assertValidMappingConfiguration(array $mappingConfig, string $objectManagerName)
     {
         if (!$mappingConfig['type'] || !$mappingConfig['dir'] || !$mappingConfig['prefix']) {
-            throw new \InvalidArgumentException(sprintf('Mapping definitions for Doctrine manager "%s" require at least the "type", "dir" and "prefix" options.', $objectManagerName));
+            throw new \InvalidArgumentException(\sprintf('Mapping definitions for Doctrine manager "%s" require at least the "type", "dir" and "prefix" options.', $objectManagerName));
         }
 
         if (!is_dir($mappingConfig['dir'])) {
-            throw new \InvalidArgumentException(sprintf('Specified non-existing directory "%s" as Doctrine mapping source.', $mappingConfig['dir']));
+            throw new \InvalidArgumentException(\sprintf('Specified non-existing directory "%s" as Doctrine mapping source.', $mappingConfig['dir']));
         }
 
         if (!\in_array($mappingConfig['type'], ['xml', 'yml', 'annotation', 'php', 'staticphp', 'attribute'])) {
-            throw new \InvalidArgumentException(sprintf('Can only configure "xml", "yml", "annotation", "php", "staticphp" or "attribute" through the DoctrineBundle. Use your own bundle to configure other metadata drivers. You can register them by adding a new driver to the "%s" service definition.', $this->getObjectManagerElementName($objectManagerName.'_metadata_driver')));
+            throw new \InvalidArgumentException(\sprintf('Can only configure "xml", "yml", "annotation", "php", "staticphp" or "attribute" through the DoctrineBundle. Use your own bundle to configure other metadata drivers. You can register them by adding a new driver to the "%s" service definition.', $this->getObjectManagerElementName($objectManagerName.'_metadata_driver')));
         }
     }
 
@@ -358,8 +358,8 @@
                 $memcachedInstance->addMethodCall('addServer', [
                     $memcachedHost, $memcachedPort,
                 ]);
-                $container->setDefinition($this->getObjectManagerElementName(sprintf('%s_memcached_instance', $objectManagerName)), $memcachedInstance);
-                $cacheDef->addMethodCall('setMemcached', [new Reference($this->getObjectManagerElementName(sprintf('%s_memcached_instance', $objectManagerName)))]);
+                $container->setDefinition($this->getObjectManagerElementName(\sprintf('%s_memcached_instance', $objectManagerName)), $memcachedInstance);
+                $cacheDef->addMethodCall('setMemcached', [new Reference($this->getObjectManagerElementName(\sprintf('%s_memcached_instance', $objectManagerName)))]);
                 break;
             case 'redis':
                 $redisClass = !empty($cacheDriver['class']) ? $cacheDriver['class'] : '%'.$this->getObjectManagerElementName('cache.redis.class').'%';
@@ -371,8 +371,8 @@
                 $redisInstance->addMethodCall('connect', [
                     $redisHost, $redisPort,
                 ]);
-                $container->setDefinition($this->getObjectManagerElementName(sprintf('%s_redis_instance', $objectManagerName)), $redisInstance);
-                $cacheDef->addMethodCall('setRedis', [new Reference($this->getObjectManagerElementName(sprintf('%s_redis_instance', $objectManagerName)))]);
+                $container->setDefinition($this->getObjectManagerElementName(\sprintf('%s_redis_instance', $objectManagerName)), $redisInstance);
+                $cacheDef->addMethodCall('setRedis', [new Reference($this->getObjectManagerElementName(\sprintf('%s_redis_instance', $objectManagerName)))]);
                 break;
             case 'apc':
             case 'apcu':
@@ -380,10 +380,10 @@
             case 'xcache':
             case 'wincache':
             case 'zenddata':
-                $cacheDef = new Definition('%'.$this->getObjectManagerElementName(sprintf('cache.%s.class', $cacheDriver['type'])).'%');
+                $cacheDef = new Definition('%'.$this->getObjectManagerElementName(\sprintf('cache.%s.class', $cacheDriver['type'])).'%');
                 break;
             default:
-                throw new \InvalidArgumentException(sprintf('"%s" is an unrecognized Doctrine cache driver.', $cacheDriver['type']));
+                throw new \InvalidArgumentException(\sprintf('"%s" is an unrecognized Doctrine cache driver.', $cacheDriver['type']));
         }
 
         if (!isset($cacheDriver['namespace'])) {
@@ -475,7 +475,7 @@
             }
 
             if (null !== $autoMappedManager) {
-                throw new \LogicException(sprintf('You cannot enable "auto_mapping" on more than one manager at the same time (found in "%s" and "%s"").', $autoMappedManager, $name));
+                throw new \LogicException(\sprintf('You cannot enable "auto_mapping" on more than one manager at the same time (found in "%s" and "%s"").', $autoMappedManager, $name));
             }
 
             $autoMappedManager = $name;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,11 +83,11 @@
                 ? [$container->getParameterBag()->resolveValue($tag['connection'])]
                 : array_keys($this->connections);
             if ($listenerTag === $tagName && !isset($tag['event'])) {
-                throw new InvalidArgumentException(sprintf('Doctrine event listener "%s" must specify the "event" attribute.', $id));
+                throw new InvalidArgumentException(\sprintf('Doctrine event listener "%s" must specify the "event" attribute.', $id));
             }
             foreach ($connections as $con) {
                 if (!isset($this->connections[$con])) {
-                    throw new RuntimeException(sprintf('The Doctrine connection "%s" referenced in service "%s" does not exist. Available connections names: "%s".', $con, $id, implode('", "', array_keys($this->connections))));
+                    throw new RuntimeException(\sprintf('The Doctrine connection "%s" referenced in service "%s" does not exist. Available connections names: "%s".', $con, $id, implode('", "', array_keys($this->connections))));
                 }
 
                 if (!isset($managerDefs[$con])) {
@@ -127,7 +127,7 @@
     private function getEventManagerDef(ContainerBuilder $container, string $name): Definition
     {
         if (!isset($this->eventManagers[$name])) {
-            $this->eventManagers[$name] = $container->getDefinition(sprintf($this->managerTemplate, $name));
+            $this->eventManagers[$name] = $container->getDefinition(\sprintf($this->managerTemplate, $name));
         }
 
         return $this->eventManagers[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -157,7 +157,7 @@
      */
     protected function getChainDriverServiceName(ContainerBuilder $container): string
     {
-        return sprintf($this->driverPattern, $this->getManagerName($container));
+        return \sprintf($this->driverPattern, $this->getManagerName($container));
     }
 
     /**
@@ -179,7 +179,7 @@
      */
     private function getConfigurationServiceName(ContainerBuilder $container): string
     {
-        return sprintf($this->configurationPattern, $this->getManagerName($container));
+        return \sprintf($this->configurationPattern, $this->getManagerName($container));
     }
 
     /**
@@ -201,7 +201,7 @@
             }
         }
 
-        throw new InvalidArgumentException(sprintf('Could not find the manager name parameter in the container. Tried the following parameter names: "%s".', implode('", "', $this->managerParameters)));
+        throw new InvalidArgumentException(\sprintf('Could not find the manager name parameter in the container. Tried the following parameter names: "%s".', implode('", "', $this->managerParameters)));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
         private readonly ?EntityLoaderInterface $objectLoader = null,
     ) {
         if ($idReader && !$idReader->isSingleId()) {
-            throw new \InvalidArgumentException(sprintf('The "$idReader" argument of "%s" must be null when the query cannot be optimized because of composite id fields.', __METHOD__));
+            throw new \InvalidArgumentException(\sprintf('The "$idReader" argument of "%s" must be null when the query cannot be optimized because of composite id fields.', __METHOD__));
         }
 
         $this->class = $manager->getClassMetadata($class)->getName();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/IdReader.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/IdReader.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/IdReader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/IdReader.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
         }
 
         if (!$this->om->contains($object)) {
-            throw new RuntimeException(sprintf('Entity of type "%s" passed to the choice field must be managed. Maybe you forget to persist it in the entity manager?', get_debug_type($object)));
+            throw new RuntimeException(\sprintf('Entity of type "%s" passed to the choice field must be managed. Maybe you forget to persist it in the entity manager?', get_debug_type($object)));
         }
 
         $this->om->initializeObject($object);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
 use Doctrine\DBAL\Types\ConversionException;
 use Doctrine\DBAL\Types\Type;
 use Doctrine\ORM\QueryBuilder;
+use Symfony\Bridge\Doctrine\Types\AbstractUidType;
 use Symfony\Component\Form\Exception\TransformationFailedException;
 
 /**
@@ -67,12 +68,12 @@
 
             // Filter out non-integer values (e.g. ""). If we don't, some
             // databases such as PostgreSQL fail.
-            $values = array_values(array_filter($values, fn ($v) => (string) $v === (string) (int) $v || ctype_digit($v)));
-        } elseif (\in_array($type, ['ulid', 'uuid', 'guid'])) {
+            $values = array_values(array_filter($values, static fn ($v) => \is_string($v) && ctype_digit($v) || (string) $v === (string) (int) $v));
+        } elseif (null !== $type && (\in_array($type, ['ulid', 'uuid', 'guid']) || (Type::hasType($type) && is_subclass_of(Type::getType($type), AbstractUidType::class)))) {
             $parameterType = class_exists(ArrayParameterType::class) ? ArrayParameterType::STRING : Connection::PARAM_STR_ARRAY;
 
             // Like above, but we just filter out empty strings.
-            $values = array_values(array_filter($values, fn ($v) => '' !== (string) $v));
+            $values = array_values(array_filter($values, static fn ($v) => '' !== (string) $v));
 
             // Convert values into right type
             if (Type::hasType($type)) {
@@ -82,7 +83,7 @@
                     try {
                         $value = $doctrineType->convertToDatabaseValue($value, $platform);
                     } catch (ConversionException $e) {
-                        throw new TransformationFailedException(sprintf('Failed to transform "%s" into "%s".', $value, $type), 0, $e);
+                        throw new TransformationFailedException(\sprintf('Failed to transform "%s" into "%s".', $value, $type), 0, $e);
                     }
                 }
                 unset($value);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/DoctrineOrmTypeGuesser.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/DoctrineOrmTypeGuesser.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/DoctrineOrmTypeGuesser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/DoctrineOrmTypeGuesser.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,6 +36,10 @@
 use Symfony\Component\Form\Guess\TypeGuess;
 use Symfony\Component\Form\Guess\ValueGuess;
 
+if (!interface_exists(FormTypeGuesserInterface::class)) {
+    throw new \LogicException('You cannot use the "Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser" class as the "symfony/form" package is not installed. Try running "composer require symfony/form".');
+}
+
 class DoctrineOrmTypeGuesser implements FormTypeGuesserInterface
 {
     protected $registry;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/Type/DoctrineType.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/Type/DoctrineType.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/Type/DoctrineType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/Type/DoctrineType.php	2026-05-20 10:56:49.000000000 +0200
@@ -181,7 +181,7 @@
             $em = $this->registry->getManagerForClass($options['class']);
 
             if (null === $em) {
-                throw new RuntimeException(sprintf('Class "%s" seems not to be a managed Doctrine entity. Did you forget to map it?', $options['class']));
+                throw new RuntimeException(\sprintf('Class "%s" seems not to be a managed Doctrine entity. Did you forget to map it?', $options['class']));
             }
 
             return $em;
@@ -189,7 +189,7 @@
 
         // Invoke the query builder closure so that we can cache choice lists
         // for equal query builders
-        $queryBuilderNormalizer = function (Options $options, $queryBuilder) {
+        $queryBuilderNormalizer = static function (Options $options, $queryBuilder) {
             if (\is_callable($queryBuilder)) {
                 $queryBuilder = $queryBuilder($options['em']->getRepository($options['class']));
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/Type/EntityType.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/Type/EntityType.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Form/Type/EntityType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Form/Type/EntityType.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
 
         // Invoke the query builder closure so that we can cache choice lists
         // for equal query builders
-        $queryBuilderNormalizer = function (Options $options, $queryBuilder) {
+        $queryBuilderNormalizer = static function (Options $options, $queryBuilder) {
             if (\is_callable($queryBuilder)) {
                 $queryBuilder = $queryBuilder($options['em']->getRepository($options['class']));
 
@@ -54,7 +54,7 @@
     public function getLoader(ObjectManager $manager, object $queryBuilder, string $class): ORMQueryBuilderLoader
     {
         if (!$queryBuilder instanceof QueryBuilder) {
-            throw new \TypeError(sprintf('Expected an instance of "%s", but got "%s".', QueryBuilder::class, get_debug_type($queryBuilder)));
+            throw new \TypeError(\sprintf('Expected an instance of "%s", but got "%s".', QueryBuilder::class, get_debug_type($queryBuilder)));
         }
 
         return new ORMQueryBuilderLoader($queryBuilder);
@@ -77,7 +77,7 @@
     public function getQueryBuilderPartsForCachingHash(object $queryBuilder): ?array
     {
         if (!$queryBuilder instanceof QueryBuilder) {
-            throw new \TypeError(sprintf('Expected an instance of "%s", but got "%s".', QueryBuilder::class, get_debug_type($queryBuilder)));
+            throw new \TypeError(\sprintf('Expected an instance of "%s", but got "%s".', QueryBuilder::class, get_debug_type($queryBuilder)));
         }
 
         return [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/IdGenerator/UlidGenerator.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/IdGenerator/UlidGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/IdGenerator/UlidGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/IdGenerator/UlidGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 final class UlidGenerator extends AbstractIdGenerator
 {
     public function __construct(
-        private readonly ?UlidFactory $factory = null
+        private readonly ?UlidFactory $factory = null,
     ) {
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/ManagerRegistry.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/ManagerRegistry.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/ManagerRegistry.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/ManagerRegistry.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,13 +43,13 @@
 
         if ($manager instanceof LazyObjectInterface) {
             if (!$manager->resetLazyObject()) {
-                throw new \LogicException(sprintf('Resetting a non-lazy manager service is not supported. Declare the "%s" service as lazy.', $name));
+                throw new \LogicException(\sprintf('Resetting a non-lazy manager service is not supported. Declare the "%s" service as lazy.', $name));
             }
 
             return;
         }
         if (!$manager instanceof LazyLoadingInterface) {
-            throw new \LogicException(sprintf('Resetting a non-lazy manager service is not supported. Declare the "%s" service as lazy.', $name));
+            throw new \LogicException(\sprintf('Resetting a non-lazy manager service is not supported. Declare the "%s" service as lazy.', $name));
         }
         if ($manager instanceof GhostObjectInterface) {
             throw new \LogicException('Resetting a lazy-ghost-object manager service is not supported.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Middleware/Debug/Driver.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Middleware/Debug/Driver.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Middleware/Debug/Driver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Middleware/Debug/Driver.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     {
         $connection = parent::connect($params);
 
-        if ('void' !== (string) (new \ReflectionMethod(DriverInterface\Connection::class, 'commit'))->getReturnType()) {
+        if ('void' !== (string) (new \ReflectionMethod(ConnectionInterface::class, 'commit'))->getReturnType()) {
             return new DBAL3\Connection(
                 $connection,
                 $this->debugDataHolder,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/PropertyInfo/DoctrineExtractor.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/PropertyInfo/DoctrineExtractor.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/PropertyInfo/DoctrineExtractor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/PropertyInfo/DoctrineExtractor.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
         $properties = array_merge($metadata->getFieldNames(), $metadata->getAssociationNames());
 
         if ($metadata instanceof ClassMetadata && $metadata->embeddedClasses) {
-            $properties = array_filter($properties, fn ($property) => !str_contains($property, '.'));
+            $properties = array_filter($properties, static fn ($property) => !str_contains($property, '.'));
 
             $properties = array_merge($properties, array_keys($metadata->embeddedClasses));
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/AbstractSchemaListener.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/AbstractSchemaListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/AbstractSchemaListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/AbstractSchemaListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,9 @@
 namespace Symfony\Bridge\Doctrine\SchemaListener;
 
 use Doctrine\DBAL\Connection;
-use Doctrine\DBAL\Exception\TableNotFoundException;
+use Doctrine\DBAL\Exception\DatabaseObjectNotFoundException;
+use Doctrine\DBAL\Schema\NamedObject;
+use Doctrine\DBAL\Schema\Schema;
 use Doctrine\DBAL\Schema\Table;
 use Doctrine\DBAL\Types\Types;
 use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs;
@@ -21,6 +23,35 @@
 {
     abstract public function postGenerateSchema(GenerateSchemaEventArgs $event): void;
 
+    protected function filterSchemaChanges(Schema $schema, Connection $connection, callable $configurator): void
+    {
+        $filter = $connection->getConfiguration()->getSchemaAssetsFilter();
+
+        if (null === $filter) {
+            $configurator();
+
+            return;
+        }
+
+        $getNames = static fn ($array) => array_map(static fn ($object) => $object instanceof NamedObject ? $object->getObjectName()->toString() : $object->getName(), $array);
+        $previousTableNames = $getNames($schema->getTables());
+        $previousSequenceNames = $getNames($schema->getSequences());
+
+        $configurator();
+
+        foreach (array_diff($getNames($schema->getTables()), $previousTableNames) as $addedTable) {
+            if (!$filter($addedTable)) {
+                $schema->dropTable($addedTable);
+            }
+        }
+
+        foreach (array_diff($getNames($schema->getSequences()), $previousSequenceNames) as $addedSequence) {
+            if (!$filter($addedSequence)) {
+                $schema->dropSequence($addedSequence);
+            }
+        }
+    }
+
     protected function getIsSameDatabaseChecker(Connection $connection): \Closure
     {
         return static function (\Closure $exec) use ($connection): bool {
@@ -35,7 +66,7 @@
             $schemaManager->createTable($table);
 
             try {
-                $exec(sprintf('DROP TABLE %s', $checkTable));
+                $exec(\sprintf('DROP TABLE %s', $checkTable));
             } catch (\Exception) {
                 // ignore
             }
@@ -44,7 +75,7 @@
                 $schemaManager->dropTable($checkTable);
 
                 return false;
-            } catch (TableNotFoundException) {
+            } catch (DatabaseObjectNotFoundException) {
                 return true;
             }
         };
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/DoctrineDbalCacheAdapterSchemaListener.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/DoctrineDbalCacheAdapterSchemaListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/DoctrineDbalCacheAdapterSchemaListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/DoctrineDbalCacheAdapterSchemaListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,9 +31,13 @@
     public function postGenerateSchema(GenerateSchemaEventArgs $event): void
     {
         $connection = $event->getEntityManager()->getConnection();
+        $schema = $event->getSchema();
 
         foreach ($this->dbalAdapters as $dbalAdapter) {
-            $dbalAdapter->configureSchema($event->getSchema(), $connection, $this->getIsSameDatabaseChecker($connection));
+            $isSameDatabaseChecker = $this->getIsSameDatabaseChecker($connection);
+            $this->filterSchemaChanges($schema, $connection, static function () use ($dbalAdapter, $schema, $connection, $isSameDatabaseChecker) {
+                $dbalAdapter->configureSchema($schema, $connection, $isSameDatabaseChecker);
+            });
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/LockStoreSchemaListener.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/LockStoreSchemaListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/LockStoreSchemaListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/LockStoreSchemaListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,13 +28,17 @@
     public function postGenerateSchema(GenerateSchemaEventArgs $event): void
     {
         $connection = $event->getEntityManager()->getConnection();
+        $schema = $event->getSchema();
 
         foreach ($this->stores as $store) {
             if (!$store instanceof DoctrineDbalStore) {
                 continue;
             }
 
-            $store->configureSchema($event->getSchema(), $this->getIsSameDatabaseChecker($connection));
+            $isSameDatabaseChecker = $this->getIsSameDatabaseChecker($connection);
+            $this->filterSchemaChanges($schema, $connection, static function () use ($store, $schema, $isSameDatabaseChecker) {
+                $store->configureSchema($schema, $isSameDatabaseChecker);
+            });
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/MessengerTransportDoctrineSchemaListener.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/MessengerTransportDoctrineSchemaListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/MessengerTransportDoctrineSchemaListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/MessengerTransportDoctrineSchemaListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,13 +34,17 @@
     public function postGenerateSchema(GenerateSchemaEventArgs $event): void
     {
         $connection = $event->getEntityManager()->getConnection();
+        $schema = $event->getSchema();
 
         foreach ($this->transports as $transport) {
             if (!$transport instanceof DoctrineTransport) {
                 continue;
             }
 
-            $transport->configureSchema($event->getSchema(), $connection, $this->getIsSameDatabaseChecker($connection));
+            $isSameDatabaseChecker = $this->getIsSameDatabaseChecker($connection);
+            $this->filterSchemaChanges($schema, $connection, static function () use ($transport, $schema, $connection, $isSameDatabaseChecker) {
+                $transport->configureSchema($schema, $connection, $isSameDatabaseChecker);
+            });
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/PdoSessionHandlerSchemaListener.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/PdoSessionHandlerSchemaListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/PdoSessionHandlerSchemaListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/PdoSessionHandlerSchemaListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,12 @@
         }
 
         $connection = $event->getEntityManager()->getConnection();
+        $schema = $event->getSchema();
+        $isSameDatabaseChecker = $this->getIsSameDatabaseChecker($connection);
+        $sessionHandler = $this->sessionHandler;
 
-        $this->sessionHandler->configureSchema($event->getSchema(), $this->getIsSameDatabaseChecker($connection));
+        $this->filterSchemaChanges($schema, $connection, static function () use ($sessionHandler, $schema, $isSameDatabaseChecker) {
+            $sessionHandler->configureSchema($schema, $isSameDatabaseChecker);
+        });
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/RememberMeTokenProviderDoctrineSchemaListener.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/RememberMeTokenProviderDoctrineSchemaListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/RememberMeTokenProviderDoctrineSchemaListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/SchemaListener/RememberMeTokenProviderDoctrineSchemaListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,13 +32,18 @@
     public function postGenerateSchema(GenerateSchemaEventArgs $event): void
     {
         $connection = $event->getEntityManager()->getConnection();
+        $schema = $event->getSchema();
 
         foreach ($this->rememberMeHandlers as $rememberMeHandler) {
             if (
                 $rememberMeHandler instanceof PersistentRememberMeHandler
                 && ($tokenProvider = $rememberMeHandler->getTokenProvider()) instanceof DoctrineTokenProvider
             ) {
-                $tokenProvider->configureSchema($event->getSchema(), $connection, $this->getIsSameDatabaseChecker($connection));
+                $isSameDatabaseChecker = $this->getIsSameDatabaseChecker($connection);
+                $this->filterSchemaChanges($schema, $connection, static function () use ($tokenProvider, $schema, $connection, $isSameDatabaseChecker) {
+                    /* @var DoctrineTokenProvider $tokenProvider */
+                    $tokenProvider->configureSchema($schema, $connection, $isSameDatabaseChecker);
+                });
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Security/RememberMe/DoctrineTokenProvider.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Security/RememberMe/DoctrineTokenProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Security/RememberMe/DoctrineTokenProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Security/RememberMe/DoctrineTokenProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,6 +62,7 @@
 
         if ($row) {
             [$class, $username, $value, $last_used] = $row;
+
             return new PersistentToken($class, $username, $series, $value, new \DateTimeImmutable($last_used));
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Security/User/EntityUserProvider.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Security/User/EntityUserProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Security/User/EntityUserProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Security/User/EntityUserProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,21 +47,28 @@
     ) {
     }
 
-    public function loadUserByIdentifier(string $identifier): UserInterface
+    /**
+     * @param ?array $attributes
+     */
+    public function loadUserByIdentifier(string $identifier/* , ?array $attributes = null */): UserInterface
     {
         $repository = $this->getRepository();
         if (null !== $this->property) {
             $user = $repository->findOneBy([$this->property => $identifier]);
         } else {
             if (!$repository instanceof UserLoaderInterface) {
-                throw new \InvalidArgumentException(sprintf('You must either make the "%s" entity Doctrine Repository ("%s") implement "Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface" or set the "property" option in the corresponding entity provider configuration.', $this->classOrAlias, get_debug_type($repository)));
+                throw new \InvalidArgumentException(\sprintf('You must either make the "%s" entity Doctrine Repository ("%s") implement "Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface" or set the "property" option in the corresponding entity provider configuration.', $this->classOrAlias, get_debug_type($repository)));
             }
 
-            $user = $repository->loadUserByIdentifier($identifier);
+            if (null === $attributes = \func_num_args() > 1 ? func_get_arg(1) : null) {
+                $user = $repository->loadUserByIdentifier($identifier);
+            } else {
+                $user = $repository->loadUserByIdentifier($identifier, $attributes);
+            }
         }
 
         if (null === $user) {
-            $e = new UserNotFoundException(sprintf('User "%s" not found.', $identifier));
+            $e = new UserNotFoundException(\sprintf('User "%s" not found.', $identifier));
             $e->setUserIdentifier($identifier);
 
             throw $e;
@@ -74,7 +81,7 @@
     {
         $class = $this->getClass();
         if (!$user instanceof $class) {
-            throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
+            throw new UnsupportedUserException(\sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
         }
 
         $repository = $this->getRepository();
@@ -119,7 +126,7 @@
     {
         $class = $this->getClass();
         if (!$user instanceof $class) {
-            throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
+            throw new UnsupportedUserException(\sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
         }
 
         $repository = $this->getRepository();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/ArgumentResolver/EntityValueResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/ArgumentResolver/EntityValueResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/ArgumentResolver/EntityValueResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/ArgumentResolver/EntityValueResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,6 @@
 use Doctrine\Persistence\Mapping\ClassMetadata;
 use Doctrine\Persistence\ObjectManager;
 use Doctrine\Persistence\ObjectRepository;
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Doctrine\ArgumentResolver\EntityValueResolver;
 use Symfony\Bridge\Doctrine\Attribute\MapEntity;
@@ -30,7 +29,7 @@
 {
     public function testResolveWithoutClass()
     {
-        $manager = $this->getMockBuilder(ObjectManager::class)->getMock();
+        $manager = $this->createStub(ObjectManager::class);
         $registry = $this->createRegistry($manager);
         $resolver = new EntityValueResolver($registry);
 
@@ -42,7 +41,7 @@
 
     public function testResolveWithoutAttribute()
     {
-        $manager = $this->getMockBuilder(ObjectManager::class)->getMock();
+        $manager = $this->createStub(ObjectManager::class);
         $registry = $this->createRegistry($manager);
         $resolver = new EntityValueResolver($registry, null, new MapEntity(disabled: true));
 
@@ -65,7 +64,7 @@
 
     public function testResolveWithNoIdAndDataOptional()
     {
-        $manager = $this->getMockBuilder(ObjectManager::class)->getMock();
+        $manager = $this->createStub(ObjectManager::class);
         $registry = $this->createRegistry($manager);
         $resolver = new EntityValueResolver($registry);
 
@@ -132,7 +131,7 @@
 
     public function testResolveWithNullId()
     {
-        $manager = $this->getMockBuilder(ObjectManager::class)->getMock();
+        $manager = $this->createStub(ObjectManager::class);
         $registry = $this->createRegistry($manager);
         $resolver = new EntityValueResolver($registry);
 
@@ -146,7 +145,7 @@
 
     public function testResolveWithArrayIdNullValue()
     {
-        $manager = $this->createMock(ObjectManager::class);
+        $manager = $this->createStub(ObjectManager::class);
         $registry = $this->createRegistry($manager);
         $resolver = new EntityValueResolver($registry);
 
@@ -187,7 +186,7 @@
 
     public function testUsedProperIdentifier()
     {
-        $manager = $this->getMockBuilder(ObjectManager::class)->getMock();
+        $manager = $this->createStub(ObjectManager::class);
         $registry = $this->createRegistry($manager);
         $resolver = new EntityValueResolver($registry);
 
@@ -219,7 +218,7 @@
 
         $argument = $this->createArgument('stdClass', new MapEntity(), 'arg', true);
 
-        $metadata = $this->getMockBuilder(ClassMetadata::class)->getMock();
+        $metadata = $this->createStub(ClassMetadata::class);
         $manager->expects($this->once())
             ->method('getClassMetadata')
             ->with('stdClass')
@@ -272,7 +271,7 @@
 
     public function testExceptionWithExpressionIfNoLanguageAvailable()
     {
-        $manager = $this->getMockBuilder(ObjectManager::class)->getMock();
+        $manager = $this->createStub(ObjectManager::class);
         $registry = $this->createRegistry($manager);
         $resolver = new EntityValueResolver($registry);
 
@@ -390,7 +389,7 @@
 
     public function testAlreadyResolved()
     {
-        $manager = $this->getMockBuilder(ObjectManager::class)->getMock();
+        $manager = $this->createStub(ObjectManager::class);
         $registry = $this->createRegistry($manager);
         $resolver = new EntityValueResolver($registry);
 
@@ -407,11 +406,11 @@
         return new ArgumentMetadata($name, $class ?? \stdClass::class, false, false, null, $isNullable, $entity ? [$entity] : []);
     }
 
-    private function createRegistry(?ObjectManager $manager = null): ManagerRegistry&MockObject
+    private function createRegistry(?ObjectManager $manager = null): ManagerRegistry
     {
-        $registry = $this->getMockBuilder(ManagerRegistry::class)->getMock();
+        $registry = $this->createStub(ManagerRegistry::class);
 
-        $registry->expects($this->any())
+        $registry
             ->method('getManagerForClass')
             ->willReturn($manager);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/DataCollector/DoctrineDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/DataCollector/DoctrineDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/DataCollector/DoctrineDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/DataCollector/DoctrineDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -146,23 +146,19 @@
 
     private function createCollector(array $queries): DoctrineDataCollector
     {
-        $connection = $this->getMockBuilder(Connection::class)
-            ->disableOriginalConstructor()
-            ->getMock();
-        $connection->expects($this->any())
+        $connection = $this->createStub(Connection::class);
+        $connection
             ->method('getDatabasePlatform')
             ->willReturn(new MySqlPlatform());
 
-        $registry = $this->createMock(ManagerRegistry::class);
+        $registry = $this->createStub(ManagerRegistry::class);
         $registry
-            ->expects($this->any())
             ->method('getConnectionNames')
             ->willReturn(['default' => 'doctrine.dbal.default_connection']);
         $registry
-            ->expects($this->any())
             ->method('getManagerNames')
             ->willReturn(['default' => 'doctrine.orm.default_entity_manager']);
-        $registry->expects($this->any())
+        $registry
             ->method('getConnection')
             ->willReturn($connection);
 
@@ -191,3 +187,5 @@
         return $collector;
     }
 }
+
+// @php-cs-fixer-ignore fully_qualified_strict_types
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/DataCollector/DoctrineDataCollectorWithDebugStackTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/DataCollector/DoctrineDataCollectorWithDebugStackTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/DataCollector/DoctrineDataCollectorWithDebugStackTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/DataCollector/DoctrineDataCollectorWithDebugStackTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -130,11 +130,10 @@
                 new \stdClass(),
                 [],
                 <<<EOTXT
-{#%d
-  ⚠: "Object of class "stdClass" could not be converted to string."
-}
-EOTXT
-                ,
+                    {#%d
+                      ⚠: "Object of class "stdClass" could not be converted to string."
+                    }
+                    EOTXT,
                 false,
                 false,
             ],
@@ -142,11 +141,10 @@
                 new StringRepresentableClass(),
                 [],
                 <<<EOTXT
-Symfony\Bridge\Doctrine\Tests\DataCollector\StringRepresentableClass {#%d
-  __toString(): "string representation"
-}
-EOTXT
-                ,
+                    Symfony\Bridge\Doctrine\Tests\DataCollector\StringRepresentableClass {#%d
+                      __toString(): "string representation"
+                    }
+                    EOTXT,
                 false,
             ],
             ['this is not a date', ['date'], "⚠ Could not convert PHP value 'this is not a date'%S to type %Sdate%S. Expected one of the following types: null, DateTime", false, false],
@@ -154,11 +152,10 @@
                 new \stdClass(),
                 ['date'],
                 <<<EOTXT
-{#%d
-  ⚠: "Could not convert PHP value of type %SstdClass%S to type %Sdate%S. Expected one of the following types: null, DateTime"
-}
-EOTXT
-                ,
+                    {#%d
+                      ⚠: "Could not convert PHP value of type %SstdClass%S to type %Sdate%S. Expected one of the following types: null, DateTime"
+                    }
+                    EOTXT,
                 false,
                 false,
             ],
@@ -206,3 +203,5 @@
         return 'string representation';
     }
 }
+
+// @php-cs-fixer-ignore fully_qualified_strict_types
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Bridge\Doctrine\Tests\DependencyInjection;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Doctrine\DependencyInjection\AbstractDoctrineExtension;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -24,28 +23,42 @@
  */
 class DoctrineExtensionTest extends TestCase
 {
-    private MockObject&AbstractDoctrineExtension $extension;
+    private AbstractDoctrineExtension $extension;
 
     protected function setUp(): void
     {
         parent::setUp();
 
-        $this->extension = $this
-            ->getMockBuilder(AbstractDoctrineExtension::class)
-            ->onlyMethods([
-                'getMappingResourceConfigDirectory',
-                'getObjectManagerElementName',
-                'getMappingObjectDefaultName',
-                'getMappingResourceExtension',
-                'getMetadataDriverClass',
-                'load',
-            ])
-            ->getMock()
-        ;
+        if (method_exists($this, 'getStubBuilder')) {
+            $this->extension = self::getStubBuilder(AbstractDoctrineExtension::class)
+                ->onlyMethods([
+                    'getMappingResourceConfigDirectory',
+                    'getObjectManagerElementName',
+                    'getMappingObjectDefaultName',
+                    'getMappingResourceExtension',
+                    'getMetadataDriverClass',
+                    'load',
+                ])
+                ->getStub()
+            ;
+        } else {
+            $this->extension = $this
+                ->getMockBuilder(AbstractDoctrineExtension::class)
+                ->onlyMethods([
+                    'getMappingResourceConfigDirectory',
+                    'getObjectManagerElementName',
+                    'getMappingObjectDefaultName',
+                    'getMappingResourceExtension',
+                    'getMetadataDriverClass',
+                    'load',
+                ])
+                ->getMock()
+            ;
+        }
 
-        $this->extension->expects($this->any())
+        $this->extension
             ->method('getObjectManagerElementName')
-            ->willReturnCallback(fn ($name) => 'doctrine.orm.'.$name);
+            ->willReturnCallback(static fn ($name) => 'doctrine.orm.'.$name);
 
         $this->extension
             ->method('getMappingObjectDefaultName')
@@ -315,7 +328,7 @@
 
         $this->extension
             ->method('getMappingResourceConfigDirectory')
-            ->willReturnCallback(function ($bundleDir) {
+            ->willReturnCallback(static function ($bundleDir) {
                 if (null !== $bundleDir && is_dir($bundleDir.'/config/doctrine')) {
                     return 'config/doctrine';
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,9 +58,11 @@
     {
         $config = ORMSetup::createConfiguration(true);
         $config->setEntityNamespaces(['SymfonyTestsDoctrine' => 'Symfony\Bridge\Doctrine\Tests\Fixtures']);
-        $config->setAutoGenerateProxyClasses(true);
-        $config->setProxyDir(sys_get_temp_dir());
-        $config->setProxyNamespace('SymfonyTests\Doctrine');
+        if (\PHP_VERSION_ID < 80400 || !method_exists($config, 'enableNativeLazyObjects')) {
+            $config->setAutoGenerateProxyClasses(true);
+            $config->setProxyDir(sys_get_temp_dir());
+            $config->setProxyNamespace('SymfonyTests\Doctrine');
+        }
         $config->setMetadataDriverImpl(new AttributeDriver([__DIR__.'/../Tests/Fixtures' => 'Symfony\Bridge\Doctrine\Tests\Fixtures'], true));
         if (class_exists(DefaultSchemaManagerFactory::class)) {
             $config->setSchemaManagerFactory(new DefaultSchemaManagerFactory());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CompositeObjectNoToStringIdEntity.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CompositeObjectNoToStringIdEntity.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CompositeObjectNoToStringIdEntity.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CompositeObjectNoToStringIdEntity.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,12 +22,12 @@
     public function __construct(
         #[ORM\Id]
         #[ORM\ManyToOne(cascade: ['persist'])]
-        #[ORM\JoinColumn(name: 'object_one_id', nullable: false)]
+        #[ORM\JoinColumn(name: 'object_one_id')]
         protected SingleIntIdNoToStringEntity $objectOne,
 
         #[ORM\Id]
         #[ORM\ManyToOne(cascade: ['persist'])]
-        #[ORM\JoinColumn(name: 'object_two_id', nullable: false)]
+        #[ORM\JoinColumn(name: 'object_two_id')]
         protected SingleIntIdNoToStringEntity $objectTwo,
     ) {
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidIdEntity.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidIdEntity.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidIdEntity.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidIdEntity.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bridge\Doctrine\Tests\Fixtures;
+
+use Doctrine\ORM\Mapping\Column;
+use Doctrine\ORM\Mapping\Entity;
+use Doctrine\ORM\Mapping\Id;
+
+#[Entity]
+class CustomUuidIdEntity
+{
+    public function __construct(
+        #[Id, Column(type: CustomUuidIdType::class)]
+        protected CustomUuidId $id,
+    ) {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidId.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidId.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidId.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidId.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,18 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bridge\Doctrine\Tests\Fixtures;
+
+use Symfony\Component\Uid\Uuid;
+
+final class CustomUuidId extends Uuid
+{
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidIdType.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidIdType.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidIdType.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/CustomUuidIdType.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bridge\Doctrine\Tests\Fixtures;
+
+use Symfony\Bridge\Doctrine\Types\AbstractUidType;
+
+final class CustomUuidIdType extends AbstractUidType
+{
+    public function getName(): string
+    {
+        return self::class;
+    }
+
+    protected function getUidClass(): string
+    {
+        return CustomUuidId::class;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/SingleAssociationToIntIdEntity.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/SingleAssociationToIntIdEntity.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/SingleAssociationToIntIdEntity.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Fixtures/SingleAssociationToIntIdEntity.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
 {
     public function __construct(
         #[Id, OneToOne(cascade: ['ALL'])]
-        #[JoinColumn(nullable: false)]
+        #[JoinColumn()]
         protected SingleIntIdNoToStringEntity $entity,
 
         #[Column(nullable: true)]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,7 +14,6 @@
 use Doctrine\ORM\Mapping\ClassMetadata;
 use Doctrine\Persistence\ObjectManager;
 use Doctrine\Persistence\ObjectRepository;
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader;
 use Symfony\Bridge\Doctrine\Form\ChoiceList\EntityLoaderInterface;
@@ -27,41 +26,41 @@
  */
 class DoctrineChoiceLoaderTest extends TestCase
 {
-    private MockObject&ObjectManager $om;
-    private MockObject&ObjectRepository $repository;
+    private ObjectManager $om;
+    private ObjectRepository $repository;
     private string $class;
-    private MockObject&IdReader $idReader;
-    private MockObject&EntityLoaderInterface $objectLoader;
+    private IdReader $idReader;
+    private EntityLoaderInterface $objectLoader;
     private \stdClass $obj1;
     private \stdClass $obj2;
     private \stdClass $obj3;
 
     protected function setUp(): void
     {
-        $this->om = $this->createMock(ObjectManager::class);
+        $this->om = $this->createStub(ObjectManager::class);
         $this->repository = $this->createMock(ObjectRepository::class);
         $this->class = 'stdClass';
-        $this->idReader = $this->createMock(IdReader::class);
-        $this->idReader->expects($this->any())
+        $this->idReader = $this->createStub(IdReader::class);
+        $this->idReader
             ->method('isSingleId')
             ->willReturn(true)
         ;
 
-        $this->objectLoader = $this->createMock(EntityLoaderInterface::class);
+        $this->objectLoader = $this->createStub(EntityLoaderInterface::class);
         $this->obj1 = (object) ['name' => 'A'];
         $this->obj2 = (object) ['name' => 'B'];
         $this->obj3 = (object) ['name' => 'C'];
 
-        $this->om->expects($this->any())
+        $this->om
             ->method('getRepository')
             ->with($this->class)
             ->willReturn($this->repository);
 
-        $this->om->expects($this->any())
+        $this->om
             ->method('getClassMetadata')
             ->with($this->class)
             ->willReturn(new ClassMetadata($this->class));
-        $this->repository->expects($this->any())
+        $this->repository
             ->method('findAll')
             ->willReturn([$this->obj1, $this->obj2, $this->obj3])
         ;
@@ -76,7 +75,7 @@
         );
 
         $choices = [$this->obj1, $this->obj2, $this->obj3];
-        $value = function () {};
+        $value = static function () {};
         $choiceList = new ArrayChoiceList($choices, $value);
 
         $this->repository->expects($this->once())
@@ -92,6 +91,7 @@
 
     public function testLoadChoiceListUsesObjectLoaderIfAvailable()
     {
+        $this->objectLoader = $this->createMock(EntityLoaderInterface::class);
         $loader = new DoctrineChoiceLoader(
             $this->om,
             $this->class,
@@ -161,7 +161,7 @@
         $this->repository->expects($this->never())
             ->method('findAll');
 
-        $this->idReader->expects($this->any())
+        $this->idReader
             ->method('getIdValue')
             ->with($this->obj2)
             ->willReturn('2');
@@ -181,7 +181,7 @@
         );
 
         $choices = [$this->obj1, $this->obj2, $this->obj3];
-        $value = fn (\stdClass $object) => $object->name;
+        $value = static fn (\stdClass $object) => $object->name;
 
         $this->repository->expects($this->never())
             ->method('findAll')
@@ -206,7 +206,7 @@
         $this->repository->expects($this->never())
             ->method('findAll');
 
-        $this->idReader->expects($this->any())
+        $this->idReader
             ->method('getIdValue')
             ->with($this->obj2)
             ->willReturn('2');
@@ -253,6 +253,7 @@
 
     public function testLegacyLoadChoicesForValuesLoadsOnlyChoicesIfValueUseIdReader()
     {
+        $this->objectLoader = $this->createMock(EntityLoaderInterface::class);
         $loader = new DoctrineChoiceLoader(
             $this->om,
             $this->class,
@@ -260,7 +261,7 @@
             $this->objectLoader
         );
 
-        $this->idReader->expects($this->any())
+        $this->idReader
             ->method('getIdField')
             ->willReturn('idField');
 
@@ -278,6 +279,7 @@
 
     public function testLoadChoicesForValuesLoadsOnlyChoicesIfValueUseIdReader()
     {
+        $this->objectLoader = $this->createMock(EntityLoaderInterface::class);
         $loader = new DoctrineChoiceLoader(
             $this->om,
             $this->class,
@@ -287,7 +289,7 @@
 
         $choices = [$this->obj2, $this->obj3];
 
-        $this->idReader->expects($this->any())
+        $this->idReader
             ->method('getIdField')
             ->willReturn('idField');
 
@@ -299,7 +301,7 @@
             ->with('idField', [4 => '3', 7 => '2'])
             ->willReturn($choices);
 
-        $this->idReader->expects($this->any())
+        $this->idReader
             ->method('getIdValue')
             ->willReturnMap([
                 [$this->obj2, '2'],
@@ -321,7 +323,7 @@
         );
 
         $choices = [$this->obj1, $this->obj2, $this->obj3];
-        $value = fn (\stdClass $object) => $object->name;
+        $value = static fn (\stdClass $object) => $object->name;
 
         $this->repository->expects($this->once())
             ->method('findAll')
@@ -335,6 +337,7 @@
 
     public function testLoadChoicesForValuesLoadsOnlyChoicesIfValueIsIdReader()
     {
+        $this->objectLoader = $this->createMock(EntityLoaderInterface::class);
         $loader = new DoctrineChoiceLoader(
             $this->om,
             $this->class,
@@ -345,7 +348,7 @@
         $choices = [$this->obj2, $this->obj3];
         $value = [$this->idReader, 'getIdValue'];
 
-        $this->idReader->expects($this->any())
+        $this->idReader
             ->method('getIdField')
             ->willReturn('idField');
 
@@ -357,7 +360,7 @@
             ->with('idField', ['2'])
             ->willReturn($choices);
 
-        $this->idReader->expects($this->any())
+        $this->idReader
             ->method('getIdValue')
             ->willReturnMap([
                 [$this->obj2, '2'],
@@ -374,6 +377,8 @@
             ->method('isSingleId')
             ->willReturn(false)
         ;
+        $this->repository->expects($this->never())
+            ->method('findAll');
 
         $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionMessage('The "$idReader" argument of "Symfony\\Bridge\\Doctrine\\Form\\ChoiceList\\DoctrineChoiceLoader::__construct" must be null when the query cannot be optimized because of composite id fields.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/ORMQueryBuilderLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/ORMQueryBuilderLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/ORMQueryBuilderLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/ORMQueryBuilderLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,6 +22,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Doctrine\Form\ChoiceList\ORMQueryBuilderLoader;
 use Symfony\Bridge\Doctrine\Tests\DoctrineTestHelper;
+use Symfony\Bridge\Doctrine\Tests\Fixtures\CustomUuidIdType;
 use Symfony\Bridge\Doctrine\Tests\Fixtures\EmbeddedIdentifierEntity;
 use Symfony\Bridge\Doctrine\Tests\Fixtures\LegacyQueryMock;
 use Symfony\Bridge\Doctrine\Tests\Fixtures\SingleIntIdEntity;
@@ -159,6 +160,9 @@
         if (!Type::hasType('ulid')) {
             Type::addType('ulid', UlidType::class);
         }
+        if (!Type::hasType(CustomUuidIdType::class)) {
+            Type::addType(CustomUuidIdType::class, CustomUuidIdType::class);
+        }
 
         $em = DoctrineTestHelper::createTestEntityManager();
 
@@ -202,6 +206,9 @@
         if (!Type::hasType('ulid')) {
             Type::addType('ulid', UlidType::class);
         }
+        if (!Type::hasType(CustomUuidIdType::class)) {
+            Type::addType(CustomUuidIdType::class, CustomUuidIdType::class);
+        }
 
         $em = DoctrineTestHelper::createTestEntityManager();
 
@@ -219,7 +226,7 @@
         $loader = new ORMQueryBuilderLoader($qb);
 
         $this->expectException(TransformationFailedException::class);
-        $this->expectExceptionMessageMatches('/^Failed to transform "hello" into "(uuid|ulid)"\.$/');
+        $this->expectExceptionMessageMatches('/^Failed to transform "hello" into "(uuid|ulid|Symfony\\\\Bridge\\\\Doctrine\\\\Tests\\\\Fixtures\\\\CustomUuidIdType)"\.$/');
 
         $loader->getEntitiesByIds('id', ['hello']);
     }
@@ -267,6 +274,7 @@
         return [
             ['Symfony\Bridge\Doctrine\Tests\Fixtures\UuidIdEntity'],
             ['Symfony\Bridge\Doctrine\Tests\Fixtures\UlidIdEntity'],
+            ['Symfony\Bridge\Doctrine\Tests\Fixtures\CustomUuidIdEntity'],
         ];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/EventListener/MergeDoctrineCollectionListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/EventListener/MergeDoctrineCollectionListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/EventListener/MergeDoctrineCollectionListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/EventListener/MergeDoctrineCollectionListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,6 @@
 namespace Symfony\Bridge\Doctrine\Tests\Form\EventListener;
 
 use Doctrine\Common\Collections\ArrayCollection;
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Doctrine\Form\EventListener\MergeDoctrineCollectionListener;
 use Symfony\Component\EventDispatcher\EventDispatcher;
@@ -25,13 +24,13 @@
 {
     private ArrayCollection $collection;
     private EventDispatcher $dispatcher;
-    private MockObject&FormFactoryInterface $factory;
+    private FormFactoryInterface $factory;
 
     protected function setUp(): void
     {
         $this->collection = new ArrayCollection(['test']);
         $this->dispatcher = new EventDispatcher();
-        $this->factory = $this->createMock(FormFactoryInterface::class);
+        $this->factory = $this->createStub(FormFactoryInterface::class);
     }
 
     protected function getBuilder()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypePerformanceTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypePerformanceTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypePerformanceTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypePerformanceTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,13 +31,13 @@
 
     protected function getExtensions()
     {
-        $manager = $this->createMock(ManagerRegistry::class);
+        $manager = $this->createStub(ManagerRegistry::class);
 
-        $manager->expects($this->any())
+        $manager
             ->method('getManager')
             ->willReturn($this->em);
 
-        $manager->expects($this->any())
+        $manager
             ->method('getManagerForClass')
             ->willReturn($this->em);
 
@@ -127,9 +127,9 @@
 
         for ($i = 0; $i < 40; ++$i) {
             $form = $this->factory->create('Symfony\Bridge\Doctrine\Form\Type\EntityType', null, [
-                    'class' => self::ENTITY_CLASS,
-                    'preferred_choices' => $choices,
-                ]);
+                'class' => self::ENTITY_CLASS,
+                'preferred_choices' => $choices,
+            ]);
 
             // force loading of the choice list
             $form->createView();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,6 @@
 use Doctrine\ORM\EntityRepository;
 use Doctrine\ORM\Tools\SchemaTool;
 use Doctrine\Persistence\ManagerRegistry;
-use PHPUnit\Framework\MockObject\MockObject;
 use Symfony\Bridge\Doctrine\Form\DoctrineOrmExtension;
 use Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser;
 use Symfony\Bridge\Doctrine\Form\Type\EntityType;
@@ -54,12 +53,12 @@
     private const COMPOSITE_STRING_IDENT_CLASS = 'Symfony\Bridge\Doctrine\Tests\Fixtures\CompositeStringIdEntity';
 
     private EntityManager $em;
-    private MockObject&ManagerRegistry $emRegistry;
+    private ManagerRegistry $emRegistry;
 
     protected function setUp(): void
     {
         $this->em = DoctrineTestHelper::createTestEntityManager();
-        $this->emRegistry = $this->createRegistryMock('default', $this->em);
+        $this->emRegistry = $this->createRegistryMock($this->em);
 
         parent::setUp();
 
@@ -221,7 +220,7 @@
         $this->factory->createNamed('name', static::TESTED_TYPE, null, [
             'em' => 'default',
             'class' => self::SINGLE_IDENT_CLASS,
-            'query_builder' => fn () => new \stdClass(),
+            'query_builder' => static fn () => new \stdClass(),
         ]);
     }
 
@@ -235,9 +234,7 @@
         $field = $this->factory->createNamed('name', static::TESTED_TYPE, null, [
             'em' => 'default',
             'class' => self::SINGLE_IDENT_CLASS,
-            'query_builder' => function () {
-                return;
-            },
+            'query_builder' => static fn () => null,
         ]);
 
         $this->assertEquals([1 => new ChoiceView($entity1, '1', 'Foo'), 2 => new ChoiceView($entity2, '2', 'Bar')], $field->createView()->vars['choices']);
@@ -766,7 +763,7 @@
             'em' => 'default',
             'class' => self::ITEM_GROUP_CLASS,
             'choice_label' => 'name',
-            'choice_value' => function (?GroupableEntity $entity = null) {
+            'choice_value' => static function (?GroupableEntity $entity = null) {
                 if (null === $entity) {
                     return '';
                 }
@@ -780,7 +777,7 @@
         $this->assertEquals([
             'BazGroup/Foo' => new ChoiceView($entity1, 'BazGroup/Foo', 'Foo'),
             'BooGroup/Bar' => new ChoiceView($entity2, 'BooGroup/Bar', 'Bar'),
-            ], $field->createView()->vars['choices']);
+        ], $field->createView()->vars['choices']);
         $this->assertTrue($field->isSynchronized(), 'Field should be synchronized.');
         $this->assertSame($entity2, $field->getData(), 'Entity should be loaded by custom value.');
         $this->assertSame('BooGroup/Bar', $field->getViewData());
@@ -1059,7 +1056,7 @@
         $field = $this->factory->createNamed('name', static::TESTED_TYPE, null, [
             'em' => 'default',
             'class' => self::SINGLE_IDENT_CLASS,
-            'query_builder' => fn (EntityRepository $repository) => $repository->createQueryBuilder('e')
+            'query_builder' => static fn (EntityRepository $repository) => $repository->createQueryBuilder('e')
                 ->where('e.id IN (1, 2)'),
             'choice_label' => 'name',
         ]);
@@ -1081,7 +1078,7 @@
         $field = $this->factory->createNamed('name', static::TESTED_TYPE, null, [
             'em' => 'default',
             'class' => self::COMPOSITE_IDENT_CLASS,
-            'query_builder' => fn (EntityRepository $repository) => $repository->createQueryBuilder('e')
+            'query_builder' => static fn (EntityRepository $repository) => $repository->createQueryBuilder('e')
                 ->where('e.id1 IN (10, 50)'),
             'choice_label' => 'name',
         ]);
@@ -1137,6 +1134,7 @@
 
     public function testGetManagerForClassIfNoEm()
     {
+        $this->emRegistry = $this->createMock(ManagerRegistry::class);
         $this->emRegistry->expects($this->never())
             ->method('getManager');
 
@@ -1145,7 +1143,10 @@
             ->with(self::SINGLE_IDENT_CLASS)
             ->willReturn($this->em);
 
-        $this->factory->createNamed('name', static::TESTED_TYPE, null, [
+        $factory = Forms::createFormFactoryBuilder()
+            ->addExtensions($this->getExtensions())
+            ->getFormFactory();
+        $factory->createNamed('name', static::TESTED_TYPE, null, [
             'class' => self::SINGLE_IDENT_CLASS,
             'required' => false,
             'choice_label' => 'name',
@@ -1154,13 +1155,17 @@
 
     public function testExplicitEm()
     {
+        $this->emRegistry = $this->createMock(ManagerRegistry::class);
         $this->emRegistry->expects($this->never())
             ->method('getManager');
 
         $this->emRegistry->expects($this->never())
             ->method('getManagerForClass');
 
-        $this->factory->createNamed('name', static::TESTED_TYPE, null, [
+        $factory = Forms::createFormFactoryBuilder()
+            ->addExtensions($this->getExtensions())
+            ->getFormFactory();
+        $factory->createNamed('name', static::TESTED_TYPE, null, [
             'em' => $this->em,
             'class' => self::SINGLE_IDENT_CLASS,
             'choice_label' => 'name',
@@ -1197,13 +1202,13 @@
         $formBuilder->add('property2', static::TESTED_TYPE, [
             'em' => 'default',
             'class' => self::SINGLE_IDENT_CLASS,
-            'query_builder' => fn (EntityRepository $repo) => $repo->createQueryBuilder('e')->where('e.id IN (1, 2)'),
+            'query_builder' => static fn (EntityRepository $repo) => $repo->createQueryBuilder('e')->where('e.id IN (1, 2)'),
         ]);
 
         $formBuilder->add('property3', static::TESTED_TYPE, [
             'em' => 'default',
             'class' => self::SINGLE_IDENT_CLASS,
-            'query_builder' => fn (EntityRepository $repo) => $repo->createQueryBuilder('e')->where('e.id IN (1, 2)'),
+            'query_builder' => static fn (EntityRepository $repo) => $repo->createQueryBuilder('e')->where('e.id IN (1, 2)'),
         ]);
 
         $form = $formBuilder->getForm();
@@ -1253,13 +1258,13 @@
         $formBuilder->add('property2', static::TESTED_TYPE, [
             'em' => 'default',
             'class' => self::SINGLE_IDENT_CLASS,
-            'query_builder' => fn (EntityRepository $repo) => $repo->createQueryBuilder('e')->where('e.id = :id')->setParameter('id', 1),
+            'query_builder' => static fn (EntityRepository $repo) => $repo->createQueryBuilder('e')->where('e.id = :id')->setParameter('id', 1),
         ]);
 
         $formBuilder->add('property3', static::TESTED_TYPE, [
             'em' => 'default',
             'class' => self::SINGLE_IDENT_CLASS,
-            'query_builder' => fn (EntityRepository $repo) => $repo->createQueryBuilder('e')->where('e.id = :id')->setParameter('id', 1),
+            'query_builder' => static fn (EntityRepository $repo) => $repo->createQueryBuilder('e')->where('e.id = :id')->setParameter('id', 1),
         ]);
 
         $form = $formBuilder->getForm();
@@ -1279,12 +1284,12 @@
         $this->assertSame($choiceList1, $choiceList3);
     }
 
-    protected function createRegistryMock($name, $em): MockObject&ManagerRegistry
+    private function createRegistryMock($em): ManagerRegistry
     {
-        $registry = $this->createMock(ManagerRegistry::class);
-        $registry->expects($this->any())
+        $registry = $this->createStub(ManagerRegistry::class);
+        $registry
             ->method('getManager')
-            ->with($this->equalTo($name))
+            ->with($this->equalTo('default'))
             ->willReturn($em);
 
         return $registry;
@@ -1747,7 +1752,7 @@
             ->add('entity_two', self::TESTED_TYPE, [
                 'em' => 'default',
                 'class' => self::SINGLE_IDENT_CLASS,
-                'choice_value' => fn ($choice) => $choice ? $choice->name : '',
+                'choice_value' => static fn ($choice) => $choice ? $choice->name : '',
             ])
             ->createView()
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/IdGenerator/UlidGeneratorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/IdGenerator/UlidGeneratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/IdGenerator/UlidGeneratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/IdGenerator/UlidGeneratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,8 +34,8 @@
     {
         $ulid = new Ulid('00000000000000000000000000');
         $em = (new \ReflectionClass(EntityManager::class))->newInstanceWithoutConstructor();
-        $factory = $this->createMock(UlidFactory::class);
-        $factory->expects($this->any())
+        $factory = $this->createStub(UlidFactory::class);
+        $factory
             ->method('create')
             ->willReturn($ulid);
         $generator = new UlidGenerator($factory);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/IdGenerator/UuidGeneratorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/IdGenerator/UuidGeneratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/IdGenerator/UuidGeneratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/IdGenerator/UuidGeneratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Doctrine\IdGenerator\UuidGenerator;
 use Symfony\Component\Uid\Factory\UuidFactory;
+use Symfony\Component\Uid\TimeBasedUidInterface;
 use Symfony\Component\Uid\Uuid;
 use Symfony\Component\Uid\UuidV4;
 use Symfony\Component\Uid\UuidV6;
@@ -34,8 +35,8 @@
     {
         $uuid = new UuidV4();
         $em = (new \ReflectionClass(EntityManager::class))->newInstanceWithoutConstructor();
-        $factory = $this->createMock(UuidFactory::class);
-        $factory->expects($this->any())
+        $factory = $this->createStub(UuidFactory::class);
+        $factory
             ->method('create')
             ->willReturn($uuid);
         $generator = new UuidGenerator($factory);
@@ -47,13 +48,21 @@
     {
         $em = (new \ReflectionClass(EntityManager::class))->newInstanceWithoutConstructor();
         $generator = new UuidGenerator();
-        $this->assertInstanceOf(UuidV6::class, $generator->generate($em, new Entity()));
+        if (interface_exists(TimeBasedUidInterface::class)) {
+            $this->assertInstanceOf(TimeBasedUidInterface::class, $generator->generate($em, new Entity()));
+        } else {
+            $this->assertInstanceOf(UuidV6::class, $generator->generate($em, new Entity()));
+        }
 
         $generator = $generator->randomBased();
         $this->assertInstanceOf(UuidV4::class, $generator->generate($em, new Entity()));
 
         $generator = $generator->timeBased();
-        $this->assertInstanceOf(UuidV6::class, $generator->generate($em, new Entity()));
+        if (interface_exists(TimeBasedUidInterface::class)) {
+            $this->assertInstanceOf(TimeBasedUidInterface::class, $generator->generate($em, new Entity()));
+        } else {
+            $this->assertInstanceOf(UuidV6::class, $generator->generate($em, new Entity()));
+        }
 
         $generator = $generator->nameBased('prop1', Uuid::NAMESPACE_OID);
         $this->assertEquals(Uuid::v5(new Uuid(Uuid::NAMESPACE_OID), '3'), $generator->generate($em, new Entity()));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Logger/DbalLoggerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Logger/DbalLoggerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Logger/DbalLoggerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Logger/DbalLoggerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -101,11 +101,11 @@
             ->expects($this->once())
             ->method('log')
             ->with('SQL', [
-                    'utf8' => 'foo',
-                    [
-                        'nonutf8' => DbalLogger::BINARY_DATA_VALUE,
-                    ],
-                ]
+                'utf8' => 'foo',
+                [
+                    'nonutf8' => DbalLogger::BINARY_DATA_VALUE,
+                ],
+            ]
             )
         ;
 
@@ -174,8 +174,8 @@
         ;
 
         $dbalLogger->startQuery('SQL', [
-                'short' => $shortString,
-                'long' => $longString,
-            ]);
+            'short' => $shortString,
+            'long' => $longString,
+        ]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineClearEntityManagerWorkerSubscriberTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineClearEntityManagerWorkerSubscriberTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineClearEntityManagerWorkerSubscriberTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineClearEntityManagerWorkerSubscriberTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
         $entityManager2->expects($this->once())
             ->method('clear');
 
-        $managerRegistry = $this->createMock(ManagerRegistry::class);
+        $managerRegistry = $this->createStub(ManagerRegistry::class);
         $managerRegistry
             ->method('getManagers')
             ->with()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineCloseConnectionMiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineCloseConnectionMiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineCloseConnectionMiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineCloseConnectionMiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,8 +24,8 @@
 class DoctrineCloseConnectionMiddlewareTest extends MiddlewareTestCase
 {
     private MockObject&Connection $connection;
-    private MockObject&EntityManagerInterface $entityManager;
-    private MockObject&ManagerRegistry $managerRegistry;
+    private EntityManagerInterface $entityManager;
+    private ManagerRegistry $managerRegistry;
     private DoctrineCloseConnectionMiddleware $middleware;
     private string $entityManagerName = 'default';
 
@@ -33,10 +33,10 @@
     {
         $this->connection = $this->createMock(Connection::class);
 
-        $this->entityManager = $this->createMock(EntityManagerInterface::class);
+        $this->entityManager = $this->createStub(EntityManagerInterface::class);
         $this->entityManager->method('getConnection')->willReturn($this->connection);
 
-        $this->managerRegistry = $this->createMock(ManagerRegistry::class);
+        $this->managerRegistry = $this->createStub(ManagerRegistry::class);
         $this->managerRegistry->method('getManager')->willReturn($this->entityManager);
 
         $this->middleware = new DoctrineCloseConnectionMiddleware(
@@ -59,7 +59,8 @@
 
     public function testInvalidEntityManagerThrowsException()
     {
-        $managerRegistry = $this->createMock(ManagerRegistry::class);
+        $this->connection->expects($this->never())->method('getDatabasePlatform');
+        $managerRegistry = $this->createStub(ManagerRegistry::class);
         $managerRegistry
             ->method('getManager')
             ->with('unknown_manager')
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineOpenTransactionLoggerMiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineOpenTransactionLoggerMiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineOpenTransactionLoggerMiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineOpenTransactionLoggerMiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,12 +24,12 @@
 {
     private AbstractLogger $logger;
     private MockObject&Connection $connection;
-    private MockObject&EntityManagerInterface $entityManager;
+    private EntityManagerInterface $entityManager;
     private DoctrineOpenTransactionLoggerMiddleware $middleware;
 
     protected function setUp(): void
     {
-        $this->logger = new class() extends AbstractLogger {
+        $this->logger = new class extends AbstractLogger {
             public array $logs = [];
 
             public function log($level, $message, $context = []): void
@@ -40,10 +40,10 @@
 
         $this->connection = $this->createMock(Connection::class);
 
-        $this->entityManager = $this->createMock(EntityManagerInterface::class);
+        $this->entityManager = $this->createStub(EntityManagerInterface::class);
         $this->entityManager->method('getConnection')->willReturn($this->connection);
 
-        $managerRegistry = $this->createMock(ManagerRegistry::class);
+        $managerRegistry = $this->createStub(ManagerRegistry::class);
         $managerRegistry->method('getManager')->willReturn($this->entityManager);
 
         $this->middleware = new DoctrineOpenTransactionLoggerMiddleware($managerRegistry, null, $this->logger);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrinePingConnectionMiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrinePingConnectionMiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrinePingConnectionMiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrinePingConnectionMiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,8 +27,8 @@
 class DoctrinePingConnectionMiddlewareTest extends MiddlewareTestCase
 {
     private Connection&MockObject $connection;
-    private EntityManagerInterface&MockObject $entityManager;
-    private ManagerRegistry&MockObject $managerRegistry;
+    private EntityManagerInterface $entityManager;
+    private ManagerRegistry $managerRegistry;
     private DoctrinePingConnectionMiddleware $middleware;
     private string $entityManagerName = 'default';
 
@@ -36,10 +36,10 @@
     {
         $this->connection = $this->createMock(Connection::class);
 
-        $this->entityManager = $this->createMock(EntityManagerInterface::class);
+        $this->entityManager = $this->createStub(EntityManagerInterface::class);
         $this->entityManager->method('getConnection')->willReturn($this->connection);
 
-        $this->managerRegistry = $this->createMock(ManagerRegistry::class);
+        $this->managerRegistry = $this->createStub(ManagerRegistry::class);
         $this->managerRegistry->method('getManager')->willReturn($this->entityManager);
 
         $this->middleware = new DoctrinePingConnectionMiddleware(
@@ -59,10 +59,10 @@
                 static $counter = 0;
 
                 if (1 === ++$counter) {
-                    throw $this->createMock(DBALException::class);
+                    throw $this->createStub(DBALException::class);
                 }
 
-                return $this->createMock(Result::class);
+                return $this->createStub(Result::class);
             });
 
         $this->connection->expects($this->once())
@@ -77,27 +77,36 @@
 
     public function testMiddlewarePingResetEntityManager()
     {
-        $this->connection->method('getDatabasePlatform')
+        $this->connection
+            ->expects($this->once())
+            ->method('getDatabasePlatform')
             ->willReturn($this->mockPlatform());
 
-        $this->entityManager->expects($this->once())
+        $entityManager = $this->createMock(EntityManagerInterface::class);
+        $entityManager->method('getConnection')->willReturn($this->connection);
+        $entityManager->expects($this->once())
             ->method('isOpen')
             ->willReturn(false)
         ;
-        $this->managerRegistry->expects($this->once())
+
+        $managerRegistry = $this->createMock(ManagerRegistry::class);
+        $managerRegistry->method('getManager')->willReturn($entityManager);
+        $managerRegistry->expects($this->once())
             ->method('resetManager')
             ->with($this->entityManagerName)
         ;
+        $middleware = new DoctrinePingConnectionMiddleware($managerRegistry, $this->entityManagerName);
 
         $envelope = new Envelope(new \stdClass(), [
             new ConsumedByWorkerStamp(),
         ]);
-        $this->middleware->handle($envelope, $this->getStackMock());
+        $middleware->handle($envelope, $this->getStackMock());
     }
 
     public function testInvalidEntityManagerThrowsException()
     {
-        $managerRegistry = $this->createMock(ManagerRegistry::class);
+        $this->connection->expects($this->never())->method('getDatabasePlatform');
+        $managerRegistry = $this->createStub(ManagerRegistry::class);
         $managerRegistry
             ->method('getManager')
             ->with('unknown_manager')
@@ -127,9 +136,9 @@
         $this->middleware->handle($envelope, $this->getStackMock());
     }
 
-    private function mockPlatform(): AbstractPlatform&MockObject
+    private function mockPlatform(): AbstractPlatform
     {
-        $platform = $this->createMock(AbstractPlatform::class);
+        $platform = $this->createStub(AbstractPlatform::class);
         $platform->method('getDummySelectSQL')->willReturn('SELECT 1');
 
         return $platform;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineTransactionMiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineTransactionMiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineTransactionMiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineTransactionMiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,17 +23,17 @@
 class DoctrineTransactionMiddlewareTest extends MiddlewareTestCase
 {
     private MockObject&Connection $connection;
-    private MockObject&EntityManagerInterface $entityManager;
+    private EntityManagerInterface $entityManager;
     private DoctrineTransactionMiddleware $middleware;
 
     protected function setUp(): void
     {
         $this->connection = $this->createMock(Connection::class);
 
-        $this->entityManager = $this->createMock(EntityManagerInterface::class);
+        $this->entityManager = $this->createStub(EntityManagerInterface::class);
         $this->entityManager->method('getConnection')->willReturn($this->connection);
 
-        $managerRegistry = $this->createMock(ManagerRegistry::class);
+        $managerRegistry = $this->createStub(ManagerRegistry::class);
         $managerRegistry->method('getManager')->willReturn($this->entityManager);
 
         $this->middleware = new DoctrineTransactionMiddleware($managerRegistry);
@@ -47,11 +47,18 @@
         $this->connection->expects($this->once())
             ->method('commit')
         ;
-        $this->entityManager->expects($this->once())
+
+        $entityManager = $this->createMock(EntityManagerInterface::class);
+        $entityManager->method('getConnection')->willReturn($this->connection);
+        $entityManager->expects($this->once())
             ->method('flush')
         ;
 
-        $this->middleware->handle(new Envelope(new \stdClass()), $this->getStackMock());
+        $managerRegistry = $this->createStub(ManagerRegistry::class);
+        $managerRegistry->method('getManager')->willReturn($entityManager);
+
+        $middleware = new DoctrineTransactionMiddleware($managerRegistry);
+        $middleware->handle(new Envelope(new \stdClass()), $this->getStackMock());
     }
 
     public function testTransactionIsRolledBackOnException()
@@ -89,7 +96,8 @@
 
     public function testInvalidEntityManagerThrowsException()
     {
-        $managerRegistry = $this->createMock(ManagerRegistry::class);
+        $this->connection->expects($this->never())->method('getDatabasePlatform');
+        $managerRegistry = $this->createStub(ManagerRegistry::class);
         $managerRegistry
             ->method('getManager')
             ->with('unknown_manager')
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Middleware/Debug/MiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Middleware/Debug/MiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Middleware/Debug/MiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Middleware/Debug/MiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
         parent::setUp();
 
         if (!interface_exists(MiddlewareInterface::class)) {
-            $this->markTestSkipped(sprintf('%s needed to run this test', MiddlewareInterface::class));
+            $this->markTestSkipped(\sprintf('%s needed to run this test', MiddlewareInterface::class));
         }
 
         ClockMock::withClockMock(false);
@@ -67,16 +67,16 @@
         ], $config);
 
         $this->conn->executeQuery(<<<EOT
-CREATE TABLE products (
-	id INTEGER PRIMARY KEY,
-	name TEXT NOT NULL,
-	price REAL NOT NULL,
-	stock INTEGER NOT NULL,
-	picture BLOB NULL,
-	tags TEXT NULL,
-	created_at TEXT NULL
-);
-EOT);
+            CREATE TABLE products (
+            	id INTEGER PRIMARY KEY,
+            	name TEXT NOT NULL,
+            	price REAL NOT NULL,
+            	stock INTEGER NOT NULL,
+            	picture BLOB NULL,
+            	tags TEXT NULL,
+            	created_at TEXT NULL
+            );
+            EOT);
     }
 
     private function getResourceFromString(string $str)
@@ -124,9 +124,9 @@
         $this->init();
 
         $sql = <<<EOT
-INSERT INTO products(name, price, stock, picture, tags, created_at)
-VALUES (?, ?, ?, ?, ?, ?)
-EOT;
+            INSERT INTO products(name, price, stock, picture, tags, created_at)
+            VALUES (?, ?, ?, ?, ?, ?)
+            EOT;
 
         $stmt = $this->conn->prepare($sql);
         $stmt->bindValue(1, 'product1');
@@ -154,9 +154,9 @@
         $this->init();
 
         $sql = <<<EOT
-INSERT INTO products(name, price, stock, picture, tags)
-VALUES (?, ?, ?, ?, ?)
-EOT;
+            INSERT INTO products(name, price, stock, picture, tags)
+            VALUES (?, ?, ?, ?, ?)
+            EOT;
 
         $expectedRes = $res = $this->getResourceFromString('mydata');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,11 @@
             $config->setSchemaManagerFactory(new DefaultSchemaManagerFactory());
         }
         if (!class_exists(\Doctrine\Persistence\Mapping\Driver\AnnotationDriver::class)) { // doctrine/persistence >= 3.0
-            $config->setLazyGhostObjectEnabled(true);
+            if (\PHP_VERSION_ID >= 80400 && method_exists($config, 'enableNativeLazyObjects')) {
+                $config->enableNativeLazyObjects(true);
+            } else {
+                $config->setLazyGhostObjectEnabled(true);
+            }
         }
 
         $eventManager = new EventManager();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineFooType.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineFooType.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineFooType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineFooType.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
             throw new ConversionException(sprintf('Expected "%s", got "%s"', 'Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\Foo', get_debug_type($value)));
         }
 
-        return $foo->bar;
+        return $value->bar;
     }
 
     public function convertToPHPValue($value, AbstractPlatform $platform): ?Foo
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/DoctrineDbalCacheAdapterSchemaListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/DoctrineDbalCacheAdapterSchemaListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/DoctrineDbalCacheAdapterSchemaListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/DoctrineDbalCacheAdapterSchemaListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Bridge\Doctrine\Tests\SchemaListener;
 
+use Doctrine\DBAL\Configuration;
 use Doctrine\DBAL\Connection;
 use Doctrine\DBAL\Schema\Schema;
 use Doctrine\ORM\EntityManagerInterface;
@@ -24,7 +25,8 @@
     public function testPostGenerateSchema()
     {
         $schema = new Schema();
-        $dbalConnection = $this->createMock(Connection::class);
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn(new Configuration());
         $entityManager = $this->createMock(EntityManagerInterface::class);
         $entityManager->expects($this->once())
             ->method('getConnection')
@@ -35,9 +37,36 @@
         $dbalAdapter = $this->createMock(DoctrineDbalAdapter::class);
         $dbalAdapter->expects($this->once())
             ->method('configureSchema')
-            ->with($schema, $dbalConnection, fn () => true);
+            ->with($schema, $dbalConnection, static fn () => true);
 
         $subscriber = new DoctrineDbalCacheAdapterSchemaListener([$dbalAdapter]);
         $subscriber->postGenerateSchema($event);
     }
+
+    public function testPostGenerateSchemaRespectsSchemaFilter()
+    {
+        $schema = new Schema();
+
+        $configuration = new Configuration();
+        $configuration->setSchemaAssetsFilter(static fn (string $tableName) => 'cache_items' !== $tableName);
+
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn($configuration);
+
+        $entityManager = $this->createStub(EntityManagerInterface::class);
+        $entityManager->method('getConnection')->willReturn($dbalConnection);
+        $event = new GenerateSchemaEventArgs($entityManager, $schema);
+
+        $dbalAdapter = $this->createStub(DoctrineDbalAdapter::class);
+        $dbalAdapter->method('configureSchema')
+            ->willReturnCallback(static function (Schema $schema) {
+                $table = $schema->createTable('cache_items');
+                $table->addColumn('item_id', 'string');
+            });
+
+        $listener = new DoctrineDbalCacheAdapterSchemaListener([$dbalAdapter]);
+        $listener->postGenerateSchema($event);
+
+        $this->assertFalse($schema->hasTable('cache_items'));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/LockStoreSchemaListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/LockStoreSchemaListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/LockStoreSchemaListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/LockStoreSchemaListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Bridge\Doctrine\Tests\SchemaListener;
 
+use Doctrine\DBAL\Configuration;
 use Doctrine\DBAL\Connection;
 use Doctrine\DBAL\Schema\Schema;
 use Doctrine\ORM\EntityManagerInterface;
@@ -24,7 +25,8 @@
     public function testPostGenerateSchemaLockPdo()
     {
         $schema = new Schema();
-        $dbalConnection = $this->createMock(Connection::class);
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn(new Configuration());
         $entityManager = $this->createMock(EntityManagerInterface::class);
         $entityManager->expects($this->once())
             ->method('getConnection')
@@ -34,9 +36,36 @@
         $lockStore = $this->createMock(DoctrineDbalStore::class);
         $lockStore->expects($this->once())
             ->method('configureSchema')
-            ->with($schema, fn () => true);
+            ->with($schema, static fn () => true);
 
         $subscriber = new LockStoreSchemaListener((static fn () => yield $lockStore)());
         $subscriber->postGenerateSchema($event);
     }
+
+    public function testPostGenerateSchemaRespectsSchemaFilter()
+    {
+        $schema = new Schema();
+
+        $configuration = new Configuration();
+        $configuration->setSchemaAssetsFilter(static fn (string $tableName) => 'lock_keys' !== $tableName);
+
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn($configuration);
+
+        $entityManager = $this->createStub(EntityManagerInterface::class);
+        $entityManager->method('getConnection')->willReturn($dbalConnection);
+        $event = new GenerateSchemaEventArgs($entityManager, $schema);
+
+        $lockStore = $this->createStub(DoctrineDbalStore::class);
+        $lockStore->method('configureSchema')
+            ->willReturnCallback(static function (Schema $schema) {
+                $table = $schema->createTable('lock_keys');
+                $table->addColumn('key_id', 'string');
+            });
+
+        $listener = new LockStoreSchemaListener([$lockStore]);
+        $listener->postGenerateSchema($event);
+
+        $this->assertFalse($schema->hasTable('lock_keys'));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/MessengerTransportDoctrineSchemaListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/MessengerTransportDoctrineSchemaListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/MessengerTransportDoctrineSchemaListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/MessengerTransportDoctrineSchemaListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Bridge\Doctrine\Tests\SchemaListener;
 
+use Doctrine\DBAL\Configuration;
 use Doctrine\DBAL\Connection;
 use Doctrine\DBAL\Event\SchemaCreateTableEventArgs;
 use Doctrine\DBAL\Platforms\AbstractPlatform;
@@ -28,7 +29,8 @@
     public function testPostGenerateSchema()
     {
         $schema = new Schema();
-        $dbalConnection = $this->createMock(Connection::class);
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn(new Configuration());
         $entityManager = $this->createMock(EntityManagerInterface::class);
         $entityManager->expects($this->once())
             ->method('getConnection')
@@ -38,7 +40,7 @@
         $doctrineTransport = $this->createMock(DoctrineTransport::class);
         $doctrineTransport->expects($this->once())
             ->method('configureSchema')
-            ->with($schema, $dbalConnection, fn () => true);
+            ->with($schema, $dbalConnection, static fn () => true);
         $otherTransport = $this->createMock(TransportInterface::class);
         $otherTransport->expects($this->never())
             ->method($this->anything());
@@ -106,4 +108,93 @@
         $subscriber->onSchemaCreateTable($event);
         $this->assertFalse($event->isDefaultPrevented());
     }
+
+    public function testPostGenerateSchemaRespectsSchemaFilter()
+    {
+        $schema = new Schema();
+
+        $configuration = new Configuration();
+        $configuration->setSchemaAssetsFilter(static fn (string $tableName) => 'messenger_messages' !== $tableName);
+
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn($configuration);
+
+        $entityManager = $this->createStub(EntityManagerInterface::class);
+        $entityManager->method('getConnection')->willReturn($dbalConnection);
+        $event = new GenerateSchemaEventArgs($entityManager, $schema);
+
+        $doctrineTransport = $this->createStub(DoctrineTransport::class);
+        $doctrineTransport->method('configureSchema')
+            ->willReturnCallback(static function (Schema $schema) {
+                $table = $schema->createTable('messenger_messages');
+                $table->addColumn('id', 'integer', ['autoincrement' => true]);
+            });
+
+        $listener = new MessengerTransportDoctrineSchemaListener([$doctrineTransport]);
+        $listener->postGenerateSchema($event);
+
+        $this->assertFalse($schema->hasTable('messenger_messages'));
+    }
+
+    public function testPostGenerateSchemaRespectsSchemaFilterIncludingSequences()
+    {
+        $schema = new Schema();
+
+        $configuration = new Configuration();
+        $excluded = ['messenger_messages', 'messenger_messages_seq'];
+        $configuration->setSchemaAssetsFilter(static fn (string $assetName) => !\in_array($assetName, $excluded, true));
+
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn($configuration);
+
+        $entityManager = $this->createStub(EntityManagerInterface::class);
+        $entityManager->method('getConnection')->willReturn($dbalConnection);
+        $event = new GenerateSchemaEventArgs($entityManager, $schema);
+
+        $doctrineTransport = $this->createStub(DoctrineTransport::class);
+        $doctrineTransport->method('configureSchema')
+            ->willReturnCallback(static function (Schema $schema) {
+                $table = $schema->createTable('messenger_messages');
+                $table->addColumn('id', 'integer', ['autoincrement' => true]);
+                $schema->createSequence('messenger_messages_seq');
+            });
+
+        $listener = new MessengerTransportDoctrineSchemaListener([$doctrineTransport]);
+        $listener->postGenerateSchema($event);
+
+        $this->assertFalse($schema->hasTable('messenger_messages'));
+        $this->assertFalse($schema->hasSequence('messenger_messages_seq'));
+    }
+
+    public function testPostGenerateSchemaFilterDoesNotAffectPreExistingSequences()
+    {
+        $schema = new Schema();
+        $schema->createSequence('existing_seq');
+
+        $configuration = new Configuration();
+        $excluded = ['messenger_messages', 'messenger_messages_seq', 'existing_seq'];
+        $configuration->setSchemaAssetsFilter(static fn (string $assetName) => !\in_array($assetName, $excluded, true));
+
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn($configuration);
+
+        $entityManager = $this->createStub(EntityManagerInterface::class);
+        $entityManager->method('getConnection')->willReturn($dbalConnection);
+        $event = new GenerateSchemaEventArgs($entityManager, $schema);
+
+        $doctrineTransport = $this->createStub(DoctrineTransport::class);
+        $doctrineTransport->method('configureSchema')
+            ->willReturnCallback(static function (Schema $schema) {
+                $table = $schema->createTable('messenger_messages');
+                $table->addColumn('id', 'integer', ['autoincrement' => true]);
+                $schema->createSequence('messenger_messages_seq');
+            });
+
+        $listener = new MessengerTransportDoctrineSchemaListener([$doctrineTransport]);
+        $listener->postGenerateSchema($event);
+
+        $this->assertFalse($schema->hasTable('messenger_messages'));
+        $this->assertFalse($schema->hasSequence('messenger_messages_seq'));
+        $this->assertTrue($schema->hasSequence('existing_seq'));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/PdoSessionHandlerSchemaListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/PdoSessionHandlerSchemaListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/PdoSessionHandlerSchemaListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/PdoSessionHandlerSchemaListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Bridge\Doctrine\Tests\SchemaListener;
 
+use Doctrine\DBAL\Configuration;
 use Doctrine\DBAL\Connection;
 use Doctrine\DBAL\Schema\Schema;
 use Doctrine\ORM\EntityManagerInterface;
@@ -24,7 +25,8 @@
     public function testPostGenerateSchemaPdo()
     {
         $schema = new Schema();
-        $dbalConnection = $this->createMock(Connection::class);
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn(new Configuration());
         $entityManager = $this->createMock(EntityManagerInterface::class);
         $entityManager->expects($this->once())
             ->method('getConnection')
@@ -34,9 +36,36 @@
         $pdoSessionHandler = $this->createMock(PdoSessionHandler::class);
         $pdoSessionHandler->expects($this->once())
             ->method('configureSchema')
-            ->with($schema, fn () => true);
+            ->with($schema, static fn () => true);
 
         $subscriber = new PdoSessionHandlerSchemaListener($pdoSessionHandler);
         $subscriber->postGenerateSchema($event);
     }
+
+    public function testPostGenerateSchemaRespectsSchemaFilter()
+    {
+        $schema = new Schema();
+
+        $configuration = new Configuration();
+        $configuration->setSchemaAssetsFilter(static fn (string $tableName) => 'sessions' !== $tableName);
+
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn($configuration);
+
+        $entityManager = $this->createStub(EntityManagerInterface::class);
+        $entityManager->method('getConnection')->willReturn($dbalConnection);
+        $event = new GenerateSchemaEventArgs($entityManager, $schema);
+
+        $pdoSessionHandler = $this->createStub(PdoSessionHandler::class);
+        $pdoSessionHandler->method('configureSchema')
+            ->willReturnCallback(static function (Schema $schema) {
+                $table = $schema->createTable('sessions');
+                $table->addColumn('sess_id', 'string');
+            });
+
+        $listener = new PdoSessionHandlerSchemaListener($pdoSessionHandler);
+        $listener->postGenerateSchema($event);
+
+        $this->assertFalse($schema->hasTable('sessions'));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/RememberMeTokenProviderDoctrineSchemaListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/RememberMeTokenProviderDoctrineSchemaListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/RememberMeTokenProviderDoctrineSchemaListenerTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/SchemaListener/RememberMeTokenProviderDoctrineSchemaListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,87 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bridge\Doctrine\Tests\SchemaListener;
+
+use Doctrine\DBAL\Configuration;
+use Doctrine\DBAL\Connection;
+use Doctrine\DBAL\Schema\Schema;
+use Doctrine\ORM\EntityManagerInterface;
+use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs;
+use PHPUnit\Framework\TestCase;
+use Symfony\Bridge\Doctrine\SchemaListener\RememberMeTokenProviderDoctrineSchemaListener;
+use Symfony\Bridge\Doctrine\Security\RememberMe\DoctrineTokenProvider;
+use Symfony\Component\HttpFoundation\RequestStack;
+use Symfony\Component\Security\Core\User\UserProviderInterface;
+use Symfony\Component\Security\Http\RememberMe\PersistentRememberMeHandler;
+
+class RememberMeTokenProviderDoctrineSchemaListenerTest extends TestCase
+{
+    public static function setUpBeforeClass(): void
+    {
+        if (!class_exists(PersistentRememberMeHandler::class)) {
+            self::markTestSkipped('This test requires symfony/security-http.');
+        }
+    }
+
+    public function testPostGenerateSchema()
+    {
+        $schema = new Schema();
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn(new Configuration());
+        $entityManager = $this->createMock(EntityManagerInterface::class);
+        $entityManager->expects($this->once())
+            ->method('getConnection')
+            ->willReturn($dbalConnection);
+        $event = new GenerateSchemaEventArgs($entityManager, $schema);
+
+        $tokenProvider = new DoctrineTokenProvider($dbalConnection);
+        $rememberMeHandler = new PersistentRememberMeHandler(
+            $tokenProvider,
+            $this->createStub(UserProviderInterface::class),
+            new RequestStack(),
+            []
+        );
+
+        $listener = new RememberMeTokenProviderDoctrineSchemaListener([$rememberMeHandler]);
+        $listener->postGenerateSchema($event);
+
+        $this->assertTrue($schema->hasTable('rememberme_token'));
+    }
+
+    public function testPostGenerateSchemaRespectsSchemaFilter()
+    {
+        $schema = new Schema();
+
+        $configuration = new Configuration();
+        $configuration->setSchemaAssetsFilter(static fn (string $tableName) => 'rememberme_token' !== $tableName);
+
+        $dbalConnection = $this->createStub(Connection::class);
+        $dbalConnection->method('getConfiguration')->willReturn($configuration);
+
+        $entityManager = $this->createStub(EntityManagerInterface::class);
+        $entityManager->method('getConnection')->willReturn($dbalConnection);
+        $event = new GenerateSchemaEventArgs($entityManager, $schema);
+
+        $tokenProvider = new DoctrineTokenProvider($dbalConnection);
+        $rememberMeHandler = new PersistentRememberMeHandler(
+            $tokenProvider,
+            $this->createStub(UserProviderInterface::class),
+            new RequestStack(),
+            []
+        );
+
+        $listener = new RememberMeTokenProviderDoctrineSchemaListener([$rememberMeHandler]);
+        $listener->postGenerateSchema($event);
+
+        $this->assertFalse($schema->hasTable('rememberme_token'));
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderPostgresTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderPostgresTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderPostgresTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderPostgresTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace Symfony\Bridge\Doctrine\Tests\Security\RememberMe;
 
 use Doctrine\DBAL\Configuration;
@@ -10,6 +19,7 @@
 
 /**
  * @requires extension pdo_pgsql
+ *
  * @group integration
  */
 class DoctrineTokenProviderPostgresTest extends DoctrineTokenProviderTest
@@ -36,7 +46,7 @@
         ], $config);
         $connection->{method_exists($connection, 'executeStatement') ? 'executeStatement' : 'executeUpdate'}(<<<'SQL'
             DROP TABLE IF EXISTS rememberme_token;
-SQL
+            SQL
         );
 
         $connection->{method_exists($connection, 'executeStatement') ? 'executeStatement' : 'executeUpdate'}(<<<'SQL'
@@ -47,7 +57,7 @@
                 class    VARCHAR(100) NOT NULL,
                 username VARCHAR(200) NOT NULL
             );
-SQL
+            SQL
         );
 
         return new DoctrineTokenProvider($connection);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -140,7 +140,7 @@
                 class    varchar(100) NOT NULL,
                 username varchar(200) NOT NULL
             );
-SQL
+            SQL
         );
 
         return new DoctrineTokenProvider($connection);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,6 +25,7 @@
 use Symfony\Bridge\Doctrine\Tests\DoctrineTestHelper;
 use Symfony\Bridge\Doctrine\Tests\Fixtures\User;
 use Symfony\Component\Security\Core\Exception\UserNotFoundException;
+use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
 use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
 use Symfony\Component\Security\Core\User\UserInterface;
@@ -161,7 +162,7 @@
             ->method('loadUserByIdentifier')
             ->with('name')
             ->willReturn(
-                $this->createMock(UserInterface::class)
+                new InMemoryUser('John', 'password')
             );
 
         $provider = new EntityUserProvider(
@@ -172,9 +173,27 @@
         $provider->loadUserByIdentifier('name');
     }
 
+    public function testLoadUserByIdentifierShouldPassAttributesToTheUserLoader()
+    {
+        $repository = $this->createMock(UserLoaderRepository::class);
+        $repository->expects($this->once())
+            ->method('loadUserByIdentifier')
+            ->with('name', ['foo' => 'bar'])
+            ->willReturn(
+                new InMemoryUser('John', 'password')
+            );
+
+        $provider = new EntityUserProvider(
+            $this->getManager($this->getObjectManager($repository)),
+            'Symfony\Bridge\Doctrine\Tests\Fixtures\User'
+        );
+
+        $provider->loadUserByIdentifier('name', ['foo' => 'bar']);
+    }
+
     public function testLoadUserByIdentifierShouldDeclineInvalidInterface()
     {
-        $repository = $this->createMock(ObjectRepository::class);
+        $repository = $this->createStub(ObjectRepository::class);
 
         $provider = new EntityUserProvider(
             $this->getManager($this->getObjectManager($repository)),
@@ -231,8 +250,8 @@
 
     private function getManager($em, $name = null)
     {
-        $manager = $this->createMock(ManagerRegistry::class);
-        $manager->expects($this->any())
+        $manager = $this->createStub(ManagerRegistry::class);
+        $manager
             ->method('getManager')
             ->with($this->equalTo($name))
             ->willReturn($em);
@@ -242,7 +261,7 @@
 
     private function getObjectManager($repository)
     {
-        $objectManager = $this->createMock(ObjectManager::class);
+        $objectManager = $this->createStub(ObjectManager::class);
         $objectManager->method('getRepository')
             ->willReturn($repository);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Types/UlidTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Types/UlidTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Types/UlidTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Types/UlidTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -99,7 +99,7 @@
 
     public function testUlidInterfaceConvertsToPHPValue()
     {
-        $ulid = $this->createMock(AbstractUid::class);
+        $ulid = $this->createStub(AbstractUid::class);
         $actual = $this->type->convertToPHPValue($ulid, new SQLitePlatform());
 
         $this->assertSame($ulid, $actual);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Types/UuidTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Types/UuidTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Types/UuidTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Types/UuidTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,7 +106,7 @@
 
     public function testUuidInterfaceConvertsToPHPValue()
     {
-        $uuid = $this->createMock(AbstractUid::class);
+        $uuid = $this->createStub(AbstractUid::class);
         $actual = $this->type->convertToPHPValue($uuid, new SqlitePlatform());
 
         $this->assertSame($uuid, $actual);
@@ -168,3 +168,5 @@
         $this->assertTrue($this->type->requiresSQLCommentHint(new SqlitePlatform()));
     }
 }
+
+// @php-cs-fixer-ignore fully_qualified_strict_types
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Validator/Constraints/UniqueEntityValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Validator/Constraints/UniqueEntityValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Validator/Constraints/UniqueEntityValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Validator/Constraints/UniqueEntityValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,7 +72,7 @@
 
     protected function createRegistryMock($em = null)
     {
-        $registry = $this->createMock(ManagerRegistry::class);
+        $registry = $this->createStub(ManagerRegistry::class);
 
         if (null === $em) {
             $registry->method('getManager')
@@ -254,7 +254,7 @@
     {
         $entity1 = new SingleIntIdEntity(1, null);
 
-        $this->expectException(\Symfony\Component\Validator\Exception\ConstraintDefinitionException::class);
+        $this->expectException(ConstraintDefinitionException::class);
         $this->validator->validate($entity1, $constraint);
     }
 
@@ -811,7 +811,7 @@
         $entity = new SingleIntIdEntity(1, 'foo');
 
         return [
-            [$entity, new class() implements \Iterator {
+            [$entity, new class implements \Iterator {
                 public function current(): mixed
                 {
                     return null;
@@ -835,7 +835,7 @@
                 {
                 }
             }],
-            [$entity, new class() implements \Iterator {
+            [$entity, new class implements \Iterator {
                 public function current(): mixed
                 {
                     return false;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Validator/DoctrineLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Validator/DoctrineLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Tests/Validator/DoctrineLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Tests/Validator/DoctrineLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -214,7 +214,7 @@
 
         /** @var PropertyMetadata[] $autoMappingExplicitlyEnabledMetadata */
         $autoMappingExplicitlyEnabledMetadata = $classMetadata->getPropertyMetadata('autoMappingExplicitlyEnabled');
-        $this->assertCount(1, $autoMappingExplicitlyEnabledMetadata[0]->constraints);
+        $this->assertCount(1, $autoMappingExplicitlyEnabledMetadata[0]->getConstraints());
         $this->assertSame(AutoMappingStrategy::ENABLED, $autoMappingExplicitlyEnabledMetadata[0]->getAutoMappingStrategy());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntity.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntity.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntity.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntity.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
         bool|string|array|null $ignoreNull = null,
         ?array $groups = null,
         $payload = null,
-        array $options = []
+        array $options = [],
     ) {
         if (\is_array($fields) && \is_string(key($fields))) {
             $options = array_merge($fields, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Bridge\Doctrine\Validator\Constraints;
 
-use Doctrine\ORM\Mapping\ClassMetadata as OrmClassMetadata;
 use Doctrine\Persistence\ManagerRegistry;
 use Doctrine\Persistence\Mapping\ClassMetadata;
 use Doctrine\Persistence\ObjectManager;
@@ -73,13 +72,13 @@
             try {
                 $em = $this->registry->getManager($constraint->em);
             } catch (\InvalidArgumentException $e) {
-                throw new ConstraintDefinitionException(sprintf('Object manager "%s" does not exist.', $constraint->em), 0, $e);
+                throw new ConstraintDefinitionException(\sprintf('Object manager "%s" does not exist.', $constraint->em), 0, $e);
             }
         } else {
             $em = $this->registry->getManagerForClass($entity::class);
 
             if (!$em) {
-                throw new ConstraintDefinitionException(sprintf('Unable to find the object manager associated with an entity of class "%s".', get_debug_type($entity)));
+                throw new ConstraintDefinitionException(\sprintf('Unable to find the object manager associated with an entity of class "%s".', get_debug_type($entity)));
             }
         }
 
@@ -90,10 +89,10 @@
 
         foreach ($fields as $fieldName) {
             if (!$class->hasField($fieldName) && !$class->hasAssociation($fieldName)) {
-                throw new ConstraintDefinitionException(sprintf('The field "%s" is not mapped by Doctrine, so it cannot be validated for uniqueness.', $fieldName));
+                throw new ConstraintDefinitionException(\sprintf('The field "%s" is not mapped by Doctrine, so it cannot be validated for uniqueness.', $fieldName));
             }
 
-            if (property_exists(OrmClassMetadata::class, 'propertyAccessors')) {
+            if (property_exists($class, 'propertyAccessors')) {
                 $fieldValue = $class->propertyAccessors[$fieldName]->getValue($entity);
             } else {
                 $fieldValue = $class->reflFields[$fieldName]->getValue($entity);
@@ -136,7 +135,7 @@
             $supportedClass = $repository->getClassName();
 
             if (!$entity instanceof $supportedClass) {
-                throw new ConstraintDefinitionException(sprintf('The "%s" entity repository does not support the "%s" entity. The entity should be an instance of or extend "%s".', $constraint->entityClass, $class->getName(), $supportedClass));
+                throw new ConstraintDefinitionException(\sprintf('The "%s" entity repository does not support the "%s" entity. The entity should be an instance of or extend "%s".', $constraint->entityClass, $class->getName(), $supportedClass));
             }
         } else {
             $repository = $em->getRepository($entity::class);
@@ -229,19 +228,19 @@
         }
 
         if (!$identifiers) {
-            return sprintf('object("%s")', $idClass);
+            return \sprintf('object("%s")', $idClass);
         }
 
         array_walk($identifiers, function (&$id, $field) {
             if (!\is_object($id) || $id instanceof \DateTimeInterface) {
                 $idAsString = $this->formatValue($id, self::PRETTY_DATE);
             } else {
-                $idAsString = sprintf('object("%s")', $id::class);
+                $idAsString = \sprintf('object("%s")', $id::class);
             }
 
-            $id = sprintf('%s => %s', $field, $idAsString);
+            $id = \sprintf('%s => %s', $field, $idAsString);
         });
 
-        return sprintf('object("%s") identified by (%s)', $idClass, implode(', ', $identifiers));
+        return \sprintf('object("%s") identified by (%s)', $idClass, implode(', ', $identifiers));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Command/ServerLogCommand.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Command/ServerLogCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Command/ServerLogCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Command/ServerLogCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,6 +26,8 @@
 use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Cloner\Stub;
 
 /**
  * @author Grégoire Pineau <lyrixx@lyrixx.info>
@@ -62,20 +64,20 @@
         }
 
         $this
-            ->addOption('host', null, InputOption::VALUE_REQUIRED, 'The server host', '0.0.0.0:9911')
+            ->addOption('host', null, InputOption::VALUE_REQUIRED, 'The server host', '127.0.0.1:9911')
             ->addOption('format', null, InputOption::VALUE_REQUIRED, 'The line format', ConsoleFormatter::SIMPLE_FORMAT)
             ->addOption('date-format', null, InputOption::VALUE_REQUIRED, 'The date format', ConsoleFormatter::SIMPLE_DATE)
             ->addOption('filter', null, InputOption::VALUE_REQUIRED, 'An expression to filter log. Example: "level > 200 or channel in [\'app\', \'doctrine\']"')
             ->setHelp(<<<'EOF'
-<info>%command.name%</info> starts a log server to display in real time the log
-messages generated by your application:
+                <info>%command.name%</info> starts a log server to display in real time the log
+                messages generated by your application:
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-To filter the log messages using any ExpressionLanguage compatible expression, use the <comment>--filter</> option:
+                To filter the log messages using any ExpressionLanguage compatible expression, use the <comment>--filter</> option:
 
-<info>php %command.full_name% --filter="level > 200 or channel in ['app', 'doctrine']"</info>
-EOF
+                <info>php %command.full_name% --filter="level > 200 or channel in ['app', 'doctrine']"</info>
+                EOF
             )
         ;
     }
@@ -106,17 +108,22 @@
         }
 
         if (!$socket = stream_socket_server($host, $errno, $errstr)) {
-            throw new RuntimeException(sprintf('Server start failed on "%s": ', $host).$errstr.' '.$errno);
+            throw new RuntimeException(\sprintf('Server start failed on "%s": ', $host).$errstr.' '.$errno);
         }
 
         foreach ($this->getLogs($socket) as $clientId => $message) {
-            $record = unserialize(base64_decode($message));
+            $record = @unserialize(base64_decode($message), [
+                'allowed_classes' => [Data::class, Stub::class],
+            ]);
 
-            // Impossible to decode the message, give up.
-            if (false === $record) {
+            if (!\is_array($record)) {
                 continue;
             }
 
+            if (isset($record['datetime']) && \is_string($record['datetime'])) {
+                $record['datetime'] = \DateTimeImmutable::createFromFormat('Y-m-d\TH:i:s.uP', $record['datetime']) ?: $record['datetime'];
+            }
+
             if ($filter && !$this->el->evaluate($filter, $record)) {
                 continue;
             }
@@ -155,7 +162,7 @@
         if (isset($record['log_id'])) {
             $clientId = unpack('H*', $record['log_id'])[1];
         }
-        $logBlock = sprintf('<bg=%s> </>', self::BG_COLOR[$clientId % 8]);
+        $logBlock = \sprintf('<bg=%s> </>', self::BG_COLOR[$clientId % 8]);
         $output->write($logBlock);
 
         if (Logger::API >= 3) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Formatter/ConsoleFormatter.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Formatter/ConsoleFormatter.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Formatter/ConsoleFormatter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Formatter/ConsoleFormatter.php	2026-05-20 10:56:49.000000000 +0200
@@ -123,8 +123,8 @@
             '%datetime%' => $record['datetime'] instanceof \DateTimeInterface
                 ? $record['datetime']->format($this->options['date_format'])
                 : $record['datetime'],
-            '%start_tag%' => sprintf('<%s>', self::LEVEL_COLOR_MAP[$record['level']]),
-            '%level_name%' => sprintf($this->options['level_name_format'], $record['level_name']),
+            '%start_tag%' => \sprintf('<%s>', self::LEVEL_COLOR_MAP[$record['level']]),
+            '%level_name%' => \sprintf($this->options['level_name_format'], $record['level_name']),
             '%end_tag%' => '</>',
             '%channel%' => $record['channel'],
             '%message%' => $this->replacePlaceHolder($record)['message'],
@@ -177,7 +177,7 @@
             // Remove quotes added by the dumper around string.
             $v = trim($this->dumpData($v, false), '"');
             $v = OutputFormatter::escape($v);
-            $replacements['{'.$k.'}'] = sprintf('<comment>%s</>', $v);
+            $replacements['{'.$k.'}'] = \sprintf('<comment>%s</>', $v);
         }
 
         $record['message'] = strtr($message, $replacements);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/ConsoleHandler.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/ConsoleHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/ConsoleHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/ConsoleHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -95,6 +95,7 @@
         OutputInterface::VERBOSITY_DEBUG => Logger::DEBUG,
     ];
     private array $consoleFormatterOptions;
+    private int $nestedCommandDepth = 0;
 
     /**
      * @param OutputInterface|null $output            The console output to use (the handler remains disabled when passing null
@@ -142,6 +143,7 @@
      */
     public function close(): void
     {
+        $this->nestedCommandDepth = 0;
         $this->output = null;
 
         parent::close();
@@ -155,6 +157,10 @@
      */
     public function onCommand(ConsoleCommandEvent $event)
     {
+        if (1 !== ++$this->nestedCommandDepth) {
+            return;
+        }
+
         $output = $event->getOutput();
         if ($output instanceof ConsoleOutputInterface) {
             $output = $output->getErrorOutput();
@@ -170,7 +176,9 @@
      */
     public function onTerminate(ConsoleTerminateEvent $event)
     {
-        $this->close();
+        if ($this->nestedCommandDepth && !--$this->nestedCommandDepth) {
+            $this->close();
+        }
     }
 
     public static function getSubscribedEvents(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,8 +63,8 @@
 
     public function __construct(string $endpoint = 'http://127.0.0.1:9200', string $index = 'monolog', ?HttpClientInterface $client = null, string|int|Level $level = Logger::DEBUG, bool $bubble = true, string $elasticsearchVersion = '1.0.0')
     {
-        if (!interface_exists(HttpClientInterface::class)) {
-            throw new \LogicException(sprintf('The "%s" handler needs an HTTP client. Try running "composer require symfony/http-client".', __CLASS__));
+        if (!$client && !class_exists(HttpClient::class)) {
+            throw new \LogicException(\sprintf('The "%s" handler needs an HTTP client. Try running "composer require symfony/http-client".', __CLASS__));
         }
 
         parent::__construct($level, $bubble);
@@ -144,20 +144,17 @@
             ],
         ]);
 
-        $this->responses->attach($response);
+        $this->responses[$response] = null;
 
         $this->wait(false);
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -178,11 +175,11 @@
                     continue;
                 }
                 if ($chunk->isLast()) {
-                    $this->responses->detach($response);
+                    unset($this->responses[$response]);
                 }
             } catch (ExceptionInterface $e) {
-                $this->responses->detach($response);
-                error_log(sprintf("Could not push logs to Elasticsearch:\n%s", (string) $e));
+                unset($this->responses[$response]);
+                error_log(\sprintf("Could not push logs to Elasticsearch:\n%s", (string) $e));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/FingersCrossed/HttpCodeActivationStrategy.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/FingersCrossed/HttpCodeActivationStrategy.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/FingersCrossed/HttpCodeActivationStrategy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/FingersCrossed/HttpCodeActivationStrategy.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,7 +14,7 @@
 use Monolog\Handler\FingersCrossed\ActivationStrategyInterface;
 use Monolog\LogRecord;
 use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpKernel\Exception\HttpException;
+use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
 
 /**
  * Activation strategy that ignores certain HTTP codes.
@@ -49,7 +49,7 @@
         if (
             $isActivated
             && isset($record['context']['exception'])
-            && $record['context']['exception'] instanceof HttpException
+            && $record['context']['exception'] instanceof HttpExceptionInterface
             && ($request = $this->requestStack->getMainRequest())
         ) {
             foreach ($this->exclusions as $exclusion) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/FingersCrossed/NotFoundActivationStrategy.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/FingersCrossed/NotFoundActivationStrategy.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/FingersCrossed/NotFoundActivationStrategy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/FingersCrossed/NotFoundActivationStrategy.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function __construct(
         private RequestStack $requestStack,
         array $excludedUrls,
-        private ActivationStrategyInterface $inner
+        private ActivationStrategyInterface $inner,
     ) {
         $this->exclude = '{('.implode('|', $excludedUrls).')}i';
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/MailerHandler.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/MailerHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/MailerHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/MailerHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -108,7 +108,7 @@
         } elseif (\is_callable($this->messageTemplate)) {
             $message = ($this->messageTemplate)($content, $records);
             if (!$message instanceof Email) {
-                throw new \InvalidArgumentException(sprintf('Could not resolve message from a callable. Instance of "%s" is expected.', Email::class));
+                throw new \InvalidArgumentException(\sprintf('Could not resolve message from a callable. Instance of "%s" is expected.', Email::class));
             }
         } else {
             throw new \InvalidArgumentException('Could not resolve message as instance of Email or a callable returning it.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -151,6 +151,10 @@
             }
         }
 
+        if (isset($recordFormatted['datetime']) && $recordFormatted['datetime'] instanceof \DateTimeInterface) {
+            $recordFormatted['datetime'] = $recordFormatted['datetime']->format('Y-m-d\TH:i:s.uP');
+        }
+
         return base64_encode(serialize($recordFormatted))."\n";
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Processor/AbstractTokenProcessor.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Processor/AbstractTokenProcessor.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Processor/AbstractTokenProcessor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Processor/AbstractTokenProcessor.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,18 +41,29 @@
 
     abstract protected function getToken(): ?TokenInterface;
 
+    private bool $processing = false;
+
     private function doInvoke(array|LogRecord $record): array|LogRecord
     {
-        $record['extra'][$this->getKey()] = null;
+        if ($this->processing) {
+            return $record;
+        }
+
+        $this->processing = true;
+        try {
+            $record['extra'][$this->getKey()] = null;
 
-        if (null !== $token = $this->getToken()) {
-            $record['extra'][$this->getKey()] = [
-                'authenticated' => (bool) $token->getUser(),
-                'roles' => $token->getRoleNames(),
-            ];
+            if (null !== $token = $this->getToken()) {
+                $record['extra'][$this->getKey()] = [
+                    'authenticated' => (bool) $token->getUser(),
+                    'roles' => $token->getRoleNames(),
+                ];
 
-            // @deprecated since Symfony 5.3, change to $token->getUserIdentifier() in 7.0
-            $record['extra'][$this->getKey()]['user_identifier'] = method_exists($token, 'getUserIdentifier') ? $token->getUserIdentifier() : $token->getUsername();
+                // @deprecated since Symfony 5.3, change to $token->getUserIdentifier() in 7.0
+                $record['extra'][$this->getKey()]['user_identifier'] = method_exists($token, 'getUserIdentifier') ? $token->getUserIdentifier() : $token->getUsername();
+            }
+        } finally {
+            $this->processing = false;
         }
 
         return $record;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Formatter/ConsoleFormatterTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Formatter/ConsoleFormatterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Formatter/ConsoleFormatterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Formatter/ConsoleFormatterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Monolog\Formatter\ConsoleFormatter;
 use Symfony\Bridge\Monolog\Tests\RecordFactory;
+use Symfony\Component\VarDumper\Cloner\VarCloner;
 
 class ConsoleFormatterTest extends TestCase
 {
@@ -35,7 +36,7 @@
         $tests = [
             'record with DateTime object in datetime field' => [
                 'record' => RecordFactory::create(datetime: $currentDateTime),
-                'expectedMessage' => sprintf(
+                'expectedMessage' => \sprintf(
                     "%s <fg=cyan>WARNING  </> <comment>[test]</> test\n",
                     $currentDateTime->format(ConsoleFormatter::SIMPLE_DATE)
                 ),
@@ -59,4 +60,31 @@
 
         return $tests;
     }
+
+    public function testPlaceholderInMessageWithDataContext()
+    {
+        $formatter = new ConsoleFormatter(['colors' => false]);
+
+        // LogRecord::$context must be an array, so the Data object is nested inside it
+        $record = RecordFactory::create(message: 'Hello {user}', context: ['user' => (new VarCloner())->cloneVar('alice')]);
+
+        self::assertStringContainsString('Hello <comment>alice</>', $formatter->format($record));
+
+        if (Logger::API < 3) {
+            $context = (new VarCloner())->cloneVar(['user' => 'alice']);
+            $formatter = new ConsoleFormatter(['colors' => false]);
+
+            $output = $formatter->format([
+                'message' => 'Hello {user}',
+                'context' => $context,
+                'level' => Logger::WARNING,
+                'level_name' => Logger::getLevelName(Logger::WARNING),
+                'channel' => 'test',
+                'datetime' => '2019-01-01T00:42:00+00:00',
+                'extra' => [],
+            ]);
+
+            self::assertStringContainsString('Hello <comment>alice</>', $output);
+        }
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ChromePhpHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ChromePhpHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ChromePhpHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ChromePhpHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
         $request->headers->remove('User-Agent');
 
         $response = new Response('foo');
-        $event = new ResponseEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new ChromePhpHandler();
         $listener->onKernelResponse($event);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ConsoleHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ConsoleHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ConsoleHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ConsoleHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 use Symfony\Component\Console\ConsoleEvents;
 use Symfony\Component\Console\Event\ConsoleCommandEvent;
 use Symfony\Component\Console\Event\ConsoleTerminateEvent;
-use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\ArrayInput;
 use Symfony\Component\Console\Output\BufferedOutput;
 use Symfony\Component\Console\Output\Output;
 use Symfony\Component\Console\Output\OutputInterface;
@@ -63,7 +63,7 @@
 
         // check that the handler actually outputs the record if it handles it
         $levelName = Logger::getLevelName($level);
-        $levelName = sprintf('%-9s', $levelName);
+        $levelName = \sprintf('%-9s', $levelName);
 
         $realOutput = $this->getMockBuilder(Output::class)->onlyMethods(['doWrite'])->getMock();
         $realOutput->setVerbosity($verbosity);
@@ -134,7 +134,6 @@
     {
         $output = $this->createMock(OutputInterface::class);
         $output
-            ->expects($this->any())
             ->method('getVerbosity')
             ->willReturn(OutputInterface::VERBOSITY_DEBUG)
         ;
@@ -163,30 +162,62 @@
         $logger->pushHandler($handler);
 
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(ConsoleEvents::COMMAND, function () use ($logger) {
+        $dispatcher->addListener(ConsoleEvents::COMMAND, static function () use ($logger) {
             $logger->info('Before command message.');
         });
-        $dispatcher->addListener(ConsoleEvents::TERMINATE, function () use ($logger) {
+        $dispatcher->addListener(ConsoleEvents::TERMINATE, static function () use ($logger) {
             $logger->info('Before terminate message.');
         });
 
         $dispatcher->addSubscriber($handler);
 
-        $dispatcher->addListener(ConsoleEvents::COMMAND, function () use ($logger) {
+        $dispatcher->addListener(ConsoleEvents::COMMAND, static function () use ($logger) {
             $logger->info('After command message.');
         });
-        $dispatcher->addListener(ConsoleEvents::TERMINATE, function () use ($logger) {
+        $dispatcher->addListener(ConsoleEvents::TERMINATE, static function () use ($logger) {
             $logger->info('After terminate message.');
         });
 
-        $event = new ConsoleCommandEvent(new Command('foo'), $this->createMock(InputInterface::class), $output);
+        $event = new ConsoleCommandEvent(new Command('foo'), new ArrayInput([]), $output);
         $dispatcher->dispatch($event, ConsoleEvents::COMMAND);
         $this->assertStringContainsString('Before command message.', $out = $output->fetch());
         $this->assertStringContainsString('After command message.', $out);
 
-        $event = new ConsoleTerminateEvent(new Command('foo'), $this->createMock(InputInterface::class), $output, 0);
+        $event = new ConsoleTerminateEvent(new Command('foo'), new ArrayInput([]), $output, 0);
         $dispatcher->dispatch($event, ConsoleEvents::TERMINATE);
         $this->assertStringContainsString('Before terminate message.', $out = $output->fetch());
         $this->assertStringContainsString('After terminate message.', $out);
     }
+
+    public function testNestedCommandsDoNotCloseHandler()
+    {
+        $output = new BufferedOutput();
+        $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
+
+        $handler = new ConsoleHandler(null, false);
+
+        $logger = new Logger('app');
+        $logger->pushHandler($handler);
+
+        $dispatcher = new EventDispatcher();
+        $dispatcher->addSubscriber($handler);
+
+        $parentInput = new ArrayInput([]);
+        $subInput = new ArrayInput([]);
+
+        $dispatcher->dispatch(new ConsoleCommandEvent(new Command('messenger:consume'), $parentInput, $output), ConsoleEvents::COMMAND);
+        $logger->info('log from parent');
+        $this->assertStringContainsString('log from parent', $output->fetch());
+
+        $subOutput = new BufferedOutput();
+        $dispatcher->dispatch(new ConsoleCommandEvent(new Command('nested:task'), $subInput, $subOutput), ConsoleEvents::COMMAND);
+        $dispatcher->dispatch(new ConsoleTerminateEvent(new Command('nested:task'), $subInput, $subOutput, Command::SUCCESS), ConsoleEvents::TERMINATE);
+
+        $logger->info('log after sub-command');
+        $this->assertStringContainsString('log after sub-command', $output->fetch(), 'Handler must still be active after nested command terminates');
+
+        // Parent command terminates: handler must be closed now
+        $dispatcher->dispatch(new ConsoleTerminateEvent(new Command('messenger:consume'), $parentInput, $output, Command::SUCCESS), ConsoleEvents::TERMINATE);
+        $this->assertFalse($handler->isHandling(RecordFactory::create(Logger::DEBUG)), 'Handler must be closed after main command terminates');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ElasticsearchLogstashHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ElasticsearchLogstashHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ElasticsearchLogstashHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ElasticsearchLogstashHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,11 +27,11 @@
         $callCount = 0;
         $responseFactory = function ($method, $url, $options) use (&$callCount) {
             $body = <<<EOBODY
-{"index":{"_index":"log","_type":"_doc"}}
-{"@timestamp":"2020-01-01T00:00:00.000000+01:00","@version":1,"host":"my hostname","message":"My info message","type":"application","channel":"app","level":"INFO","monolog_level":200}
+                {"index":{"_index":"log","_type":"_doc"}}
+                {"@timestamp":"2020-01-01T00:00:00.000000+01:00","@version":1,"host":"my hostname","message":"My info message","type":"application","channel":"app","level":"INFO","monolog_level":200}
 
 
-EOBODY;
+                EOBODY;
 
             // Monolog 1X
             if (\defined(LogstashFormatter::class.'::V1')) {
@@ -63,11 +63,11 @@
         $callCount = 0;
         $responseFactory = function ($method, $url, $options) use (&$callCount) {
             $body = <<<EOBODY
-{"index":{"_index":"log"}}
-{"@timestamp":"2020-01-01T00:00:00.000000+01:00","@version":1,"host":"my hostname","message":"My info message","type":"application","channel":"app","level":"INFO","monolog_level":200}
+                {"index":{"_index":"log"}}
+                {"@timestamp":"2020-01-01T00:00:00.000000+01:00","@version":1,"host":"my hostname","message":"My info message","type":"application","channel":"app","level":"INFO","monolog_level":200}
 
 
-EOBODY;
+                EOBODY;
 
             // Monolog 1X
             if (\defined(LogstashFormatter::class.'::V1')) {
@@ -99,14 +99,14 @@
         $callCount = 0;
         $responseFactory = function ($method, $url, $options) use (&$callCount) {
             $body = <<<EOBODY
-{"index":{"_index":"log","_type":"_doc"}}
-{"@timestamp":"2020-01-01T00:00:00.000000+01:00","@version":1,"host":"my hostname","message":"My info message","type":"application","channel":"app","level":"INFO","monolog_level":200}
+                {"index":{"_index":"log","_type":"_doc"}}
+                {"@timestamp":"2020-01-01T00:00:00.000000+01:00","@version":1,"host":"my hostname","message":"My info message","type":"application","channel":"app","level":"INFO","monolog_level":200}
 
-{"index":{"_index":"log","_type":"_doc"}}
-{"@timestamp":"2020-01-01T00:00:01.000000+01:00","@version":1,"host":"my hostname","message":"My second message","type":"application","channel":"php","level":"WARNING","monolog_level":300}
+                {"index":{"_index":"log","_type":"_doc"}}
+                {"@timestamp":"2020-01-01T00:00:01.000000+01:00","@version":1,"host":"my hostname","message":"My second message","type":"application","channel":"php","level":"WARNING","monolog_level":300}
 
 
-EOBODY;
+                EOBODY;
 
             // Monolog 1X
             if (\defined(LogstashFormatter::class.'::V1')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/FingersCrossed/HttpCodeActivationStrategyTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/FingersCrossed/HttpCodeActivationStrategyTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/FingersCrossed/HttpCodeActivationStrategyTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/FingersCrossed/HttpCodeActivationStrategyTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
 use Symfony\Bridge\Monolog\Tests\RecordFactory;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpKernel\Exception\HttpException;
+use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
 
 class HttpCodeActivationStrategyTest extends TestCase
 {
@@ -74,6 +74,23 @@
 
     private static function getContextException(int $code): array
     {
-        return ['exception' => new HttpException($code)];
+        return ['exception' => new class($code) extends \RuntimeException implements HttpExceptionInterface {
+            private int $statusCode;
+
+            public function __construct(int $statusCode)
+            {
+                $this->statusCode = $statusCode;
+            }
+
+            public function getStatusCode(): int
+            {
+                return $this->statusCode;
+            }
+
+            public function getHeaders(): array
+            {
+                return [];
+            }
+        }];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/FirePHPHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/FirePHPHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/FirePHPHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/FirePHPHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -103,9 +103,16 @@
             return new FirePHPHandler();
         }
 
-        $handler = $this->getMockBuilder(FirePHPHandler::class)
-            ->onlyMethods(['isWebRequest'])
-            ->getMock();
+        if (method_exists($this, 'getStubBuilder')) {
+            $handler = self::getStubBuilder(FirePHPHandler::class)
+                ->onlyMethods(['isWebRequest'])
+                ->getStub();
+        } else {
+            $handler = $this->getMockBuilder(FirePHPHandler::class)
+                ->onlyMethods(['isWebRequest'])
+                ->getMock();
+        }
+
         // Disable web request detection
         $handler->method('isWebRequest')->willReturn(true);
 
@@ -120,7 +127,7 @@
         $request->headers->remove('User-Agent');
 
         $error = null;
-        set_error_handler(function ($type, $message) use (&$error) { $error = $message; }, \E_DEPRECATED);
+        set_error_handler(static function ($type, $message) use (&$error) { $error = $message; }, \E_DEPRECATED);
 
         $this->dispatchResponseEvent($handler, $request);
         restore_error_handler();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/MailerHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/MailerHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/MailerHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/MailerHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
         $this->mailer
             ->expects($this->once())
             ->method('send')
-            ->with($this->callback(fn (Email $email) => 'Alert: WARNING message' === $email->getSubject() && null === $email->getHtmlBody()))
+            ->with($this->callback(static fn (Email $email) => 'Alert: WARNING message' === $email->getSubject() && null === $email->getHtmlBody()))
         ;
         $handler->handle($this->getRecord(Logger::WARNING, 'message'));
     }
@@ -50,7 +50,7 @@
         $this->mailer
             ->expects($this->once())
             ->method('send')
-            ->with($this->callback(fn (Email $email) => 'Alert: ERROR error' === $email->getSubject() && null === $email->getHtmlBody()))
+            ->with($this->callback(static fn (Email $email) => 'Alert: ERROR error' === $email->getSubject() && null === $email->getHtmlBody()))
         ;
         $handler->handleBatch($this->getMultipleRecords());
     }
@@ -62,7 +62,7 @@
             ->method('send')
         ;
 
-        $callback = function () {
+        $callback = static function () {
             throw new \RuntimeException('Email creation callback should not have been called in this test');
         };
         $handler = new MailerHandler($this->mailer, $callback, Logger::ALERT);
@@ -81,7 +81,7 @@
         $this->mailer
             ->expects($this->once())
             ->method('send')
-            ->with($this->callback(fn (Email $email) => 'Alert: WARNING message' === $email->getSubject() && null === $email->getTextBody()))
+            ->with($this->callback(static fn (Email $email) => 'Alert: WARNING message' === $email->getSubject() && null === $email->getTextBody()))
         ;
         $handler->handle($this->getRecord(Logger::WARNING, 'message'));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ServerLogHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ServerLogHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ServerLogHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Handler/ServerLogHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,6 +19,7 @@
 use Symfony\Bridge\Monolog\Handler\ServerLogHandler;
 use Symfony\Bridge\Monolog\Tests\RecordFactory;
 use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Cloner\Stub;
 
 /**
  * Tests the ServerLogHandler.
@@ -58,7 +59,7 @@
         $infoRecord = RecordFactory::create(Logger::INFO, 'My info message', 'app', datetime: new \DateTimeImmutable('2013-05-29 16:21:54'));
 
         $socket = stream_socket_server($host, $errno, $errstr);
-        $this->assertIsResource($socket, sprintf('Server start failed on "%s": %s %s.', $host, $errstr, $errno));
+        $this->assertIsResource($socket, \sprintf('Server start failed on "%s": %s %s.', $host, $errstr, $errno));
 
         $this->assertTrue($handler->handle($infoRecord), 'The handler finished handling the log as bubble is false.');
 
@@ -80,12 +81,20 @@
                     $message = fgets($stream);
                     fclose($stream);
 
-                    $record = unserialize(base64_decode($message));
+                    $record = unserialize(base64_decode($message), [
+                        'allowed_classes' => [Data::class, Stub::class],
+                    ]);
                     $this->assertIsArray($record);
 
                     $this->assertArrayHasKey('message', $record);
                     $this->assertEquals('My info message', $record['message']);
 
+                    $this->assertArrayHasKey('datetime', $record);
+                    $this->assertIsString($record['datetime']);
+                    $datetime = \DateTimeImmutable::createFromFormat('Y-m-d\TH:i:s.uP', $record['datetime']);
+                    $this->assertInstanceOf(\DateTimeImmutable::class, $datetime);
+                    $this->assertSame('2013-05-29 16:21:54', $datetime->format('Y-m-d H:i:s'));
+
                     $this->assertArrayHasKey('extra', $record);
                     $this->assertInstanceOf(Data::class, $record['extra']);
                     $extra = $record['extra']->getValue(true);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/ConsoleCommandProcessorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/ConsoleCommandProcessorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/ConsoleCommandProcessorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/ConsoleCommandProcessorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,7 @@
 use Symfony\Component\Console\Command\Command;
 use Symfony\Component\Console\Event\ConsoleEvent;
 use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Output\NullOutput;
 
 class ConsoleCommandProcessorTest extends TestCase
 {
@@ -63,12 +63,11 @@
 
     private function getConsoleEvent(): ConsoleEvent
     {
-        $input = $this->createMock(InputInterface::class);
+        $input = $this->createStub(InputInterface::class);
         $input->method('getArguments')->willReturn(self::TEST_ARGUMENTS);
         $input->method('getOptions')->willReturn(self::TEST_OPTIONS);
-        $command = $this->createMock(Command::class);
-        $command->method('getName')->willReturn(self::TEST_NAME);
+        $command = new Command(self::TEST_NAME);
 
-        return new ConsoleEvent($command, $input, $this->createMock(OutputInterface::class));
+        return new ConsoleEvent($command, $input, new NullOutput());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/RouteProcessorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/RouteProcessorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/RouteProcessorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/RouteProcessorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -125,12 +125,12 @@
 
     private function getRequestEvent(Request $request, int $requestType = HttpKernelInterface::MAIN_REQUEST): RequestEvent
     {
-        return new RequestEvent($this->createMock(HttpKernelInterface::class), $request, $requestType);
+        return new RequestEvent($this->createStub(HttpKernelInterface::class), $request, $requestType);
     }
 
     private function getFinishRequestEvent(Request $request): FinishRequestEvent
     {
-        return new FinishRequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        return new FinishRequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
     }
 
     private function mockEmptyRequest(): Request
@@ -149,7 +149,7 @@
 
     private function mockRequest(array $attributes): Request
     {
-        $request = $this->createMock(Request::class);
+        $request = new Request();
         $request->attributes = new ParameterBag($attributes);
 
         return $request;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/SwitchUserTokenProcessorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/SwitchUserTokenProcessorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/SwitchUserTokenProcessorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/SwitchUserTokenProcessorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,7 +14,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Monolog\Processor\SwitchUserTokenProcessor;
 use Symfony\Bridge\Monolog\Tests\RecordFactory;
-use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 use Symfony\Component\Security\Core\Authentication\Token\SwitchUserToken;
 use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
 use Symfony\Component\Security\Core\User\InMemoryUser;
@@ -30,8 +30,8 @@
     {
         $originalToken = new UsernamePasswordToken(new InMemoryUser('original_user', 'password', ['ROLE_SUPER_ADMIN']), 'provider', ['ROLE_SUPER_ADMIN']);
         $switchUserToken = new SwitchUserToken(new InMemoryUser('user', 'passsword', ['ROLE_USER']), 'provider', ['ROLE_USER'], $originalToken);
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $tokenStorage->method('getToken')->willReturn($switchUserToken);
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($switchUserToken);
 
         $processor = new SwitchUserTokenProcessor($tokenStorage);
         $record = RecordFactory::create();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/TokenProcessorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/TokenProcessorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/TokenProcessorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/TokenProcessorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Monolog\Processor\TokenProcessor;
 use Symfony\Bridge\Monolog\Tests\RecordFactory;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
 use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
 use Symfony\Component\Security\Core\User\InMemoryUser;
@@ -28,8 +29,8 @@
     public function testProcessor()
     {
         $token = new UsernamePasswordToken(new InMemoryUser('user', 'password', ['ROLE_USER']), 'provider', ['ROLE_USER']);
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $tokenStorage->method('getToken')->willReturn($token);
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($token);
 
         $processor = new TokenProcessor($tokenStorage);
         $record = RecordFactory::create();
@@ -39,4 +40,31 @@
         $this->assertEquals($token->getUserIdentifier(), $record['extra']['token']['user_identifier']);
         $this->assertEquals(['ROLE_USER'], $record['extra']['token']['roles']);
     }
+
+    public function testReentrantCallIsSkipped()
+    {
+        $innerRecord = RecordFactory::create();
+
+        $tokenStorage = $this->createMock(TokenStorageInterface::class);
+        $processor = new TokenProcessor($tokenStorage);
+
+        $tokenStorage->method('getToken')
+            ->willReturnCallback(static function () use ($processor, &$innerRecord) {
+                // Simulate a re-entrant log call triggered during token resolution
+                // (e.g. firewall initializer → EntityManager construction → deprecation warning)
+                $innerRecord = $processor($innerRecord);
+
+                return null;
+            });
+
+        $outerRecord = RecordFactory::create();
+        $outerRecord = $processor($outerRecord);
+
+        // Outer call completed and set the key (to null since getToken() returned null)
+        $this->assertArrayHasKey('token', $outerRecord['extra']);
+        $this->assertNull($outerRecord['extra']['token']);
+
+        // Re-entrant call was silently dropped — record passed through unchanged
+        $this->assertArrayNotHasKey('token', $innerRecord['extra']);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/WebProcessorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/WebProcessorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/WebProcessorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Monolog/Tests/Processor/WebProcessorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -91,7 +91,7 @@
         $request->server->replace($server);
         $request->headers->replace($server);
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         return [$event, $server];
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
 global $argv, $argc;
 $argv = $_SERVER['argv'] ?? [];
 $argc = $_SERVER['argc'] ?? 0;
-$getEnvVar = function ($name, $default = false) use ($argv) {
+$getEnvVar = static function ($name, $default = false) use ($argv) {
     if (false !== $value = getenv($name)) {
         return $value;
     }
@@ -29,7 +29,7 @@
     static $phpunitConfig = null;
     if (null === $phpunitConfig) {
         $phpunitConfigFilename = null;
-        $getPhpUnitConfig = function ($probableConfig) use (&$getPhpUnitConfig) {
+        $getPhpUnitConfig = static function ($probableConfig) use (&$getPhpUnitConfig) {
             if (!$probableConfig) {
                 return null;
             }
@@ -89,7 +89,7 @@
     return $default;
 };
 
-$passthruOrFail = function ($command) {
+$passthruOrFail = static function ($command) {
     passthru($command, $status);
 
     if ($status) {
@@ -135,6 +135,7 @@
     'COMPOSER' => 'composer.json',
     'COMPOSER_VENDOR_DIR' => 'vendor',
     'COMPOSER_BIN_DIR' => 'bin',
+    'COMPOSER_NO_INTERACTION' => '1',
     'SYMFONY_SIMPLE_PHPUNIT_BIN_DIR' => __DIR__,
 ];
 
@@ -190,7 +191,7 @@
     }
 
     $info = [];
-    foreach (explode("\n", `$COMPOSER info --no-ansi -a -n phpunit/phpunit "$PHPUNIT_VERSION.*"`) as $line) {
+    foreach (explode("\n", shell_exec("$COMPOSER info --no-ansi -a -n phpunit/phpunit \"$PHPUNIT_VERSION.*\"")) as $line) {
         $line = rtrim($line);
 
         if (!$info && preg_match('/^versions +: /', $line)) {
@@ -218,7 +219,7 @@
         'requires' => ['php' => '*'],
     ];
 
-    $stableVersions = array_filter($info['versions'], function ($v) {
+    $stableVersions = array_filter($info['versions'], static function ($v) {
         return !preg_match('/-dev$|^dev-/', $v);
     });
 
@@ -231,10 +232,10 @@
     @copy("$PHPUNIT_VERSION_DIR/phpunit.xsd", 'phpunit.xsd');
     chdir("$PHPUNIT_VERSION_DIR");
     if ($SYMFONY_PHPUNIT_REMOVE) {
-        $passthruOrFail("$COMPOSER remove --no-update --no-interaction ".$SYMFONY_PHPUNIT_REMOVE);
+        $passthruOrFail("$COMPOSER remove --no-update ".$SYMFONY_PHPUNIT_REMOVE);
     }
     if ($SYMFONY_PHPUNIT_REQUIRE) {
-        $passthruOrFail("$COMPOSER require --no-update --no-interaction ".$SYMFONY_PHPUNIT_REQUIRE);
+        $passthruOrFail("$COMPOSER require --no-update ".$SYMFONY_PHPUNIT_REQUIRE);
     }
     if (5.1 <= $PHPUNIT_VERSION && $PHPUNIT_VERSION < 5.4) {
         $passthruOrFail("$COMPOSER require --no-update phpunit/phpunit-mock-objects \"~3.1.0\"");
@@ -334,7 +335,7 @@
 chdir($oldPwd);
 
 if ($PHPUNIT_VERSION < 8.0) {
-    $argv = array_filter($argv, function ($v) use (&$argc) {
+    $argv = array_filter($argv, static function ($v) use (&$argc) {
         if ('--do-not-cache-result' !== $v) {
             return true;
         }
@@ -456,7 +457,7 @@
         }
     }
 } elseif (!isset($argv[1]) || 'install' !== $argv[1] || file_exists('install')) {
-    if (!class_exists(\SymfonyExcludeListSimplePhpunit::class, false)) {
+    if (!class_exists(SymfonyExcludeListSimplePhpunit::class, false)) {
         class SymfonyExcludeListSimplePhpunit
         {
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/bootstrap.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/bootstrap.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/bootstrap.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/bootstrap.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
 }
 
 // Detect if we're loaded by an actual run of phpunit
-if (!defined('PHPUNIT_COMPOSER_INSTALL') && !class_exists(\PHPUnit\TextUI\Command::class, false)) {
+if (!defined('PHPUNIT_COMPOSER_INSTALL') && !class_exists(PHPUnit\TextUI\Command::class, false)) {
     return;
 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/composer.json symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -2,7 +2,9 @@
     "name": "symfony/phpunit-bridge",
     "type": "symfony-bridge",
     "description": "Provides utilities for PHPUnit, especially user deprecation notices management",
-    "keywords": [],
+    "keywords": [
+        "testing"
+    ],
     "homepage": "https://symfony.com",
     "license": "MIT",
     "authors": [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/CoverageListener.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/CoverageListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/CoverageListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/CoverageListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,7 +86,9 @@
     private function addCoversForClassToAnnotationCache(Test $test, array $covers): void
     {
         $r = new \ReflectionProperty(TestUtil::class, 'annotationCache');
-        $r->setAccessible(true);
+        if (\PHP_VERSION_ID < 80100) {
+            $r->setAccessible(true);
+        }
 
         $cache = $r->getValue();
         $cache = array_replace_recursive($cache, [
@@ -103,10 +105,12 @@
         $docBlock = Registry::getInstance()->forClassName(\get_class($test));
 
         $symbolAnnotations = new \ReflectionProperty($docBlock, 'symbolAnnotations');
-        $symbolAnnotations->setAccessible(true);
+        if (\PHP_VERSION_ID < 80100) {
+            $symbolAnnotations->setAccessible(true);
+        }
 
         // Exclude internal classes; PHPUnit 9.1+ is picky about tests covering, say, a \RuntimeException
-        $covers = array_filter($covers, function (string $class) {
+        $covers = array_filter($covers, static function (string $class) {
             $reflector = new \ReflectionClass($class);
 
             return $reflector->isUserDefined();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Configuration.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Configuration.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Configuration.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Configuration.php	2026-05-20 10:56:49.000000000 +0200
@@ -76,10 +76,10 @@
 
         foreach ($thresholds as $group => $threshold) {
             if (!\in_array($group, $groups, true)) {
-                throw new \InvalidArgumentException(sprintf('Unrecognized threshold "%s", expected one of "%s".', $group, implode('", "', $groups)));
+                throw new \InvalidArgumentException(\sprintf('Unrecognized threshold "%s", expected one of "%s".', $group, implode('", "', $groups)));
             }
             if (!is_numeric($threshold)) {
-                throw new \InvalidArgumentException(sprintf('Threshold for group "%s" has invalid value "%s".', $group, $threshold));
+                throw new \InvalidArgumentException(\sprintf('Threshold for group "%s" has invalid value "%s".', $group, $threshold));
             }
             $this->thresholds[$group] = (int) $threshold;
         }
@@ -111,17 +111,17 @@
 
         foreach ($verboseOutput as $group => $status) {
             if (!isset($this->verboseOutput[$group])) {
-                throw new \InvalidArgumentException(sprintf('Unsupported verbosity group "%s", expected one of "%s".', $group, implode('", "', array_keys($this->verboseOutput))));
+                throw new \InvalidArgumentException(\sprintf('Unsupported verbosity group "%s", expected one of "%s".', $group, implode('", "', array_keys($this->verboseOutput))));
             }
             $this->verboseOutput[$group] = $status;
         }
 
         if ($ignoreFile) {
             if (!is_file($ignoreFile)) {
-                throw new \InvalidArgumentException(sprintf('The ignoreFile "%s" does not exist.', $ignoreFile));
+                throw new \InvalidArgumentException(\sprintf('The ignoreFile "%s" does not exist.', $ignoreFile));
             }
             set_error_handler(static function ($t, $m) use ($ignoreFile, &$line) {
-                throw new \RuntimeException(sprintf('Invalid pattern found in "%s" on line "%d"', $ignoreFile, 1 + $line).substr($m, 12));
+                throw new \RuntimeException(\sprintf('Invalid pattern found in "%s" on line "%d"', $ignoreFile, 1 + $line).substr($m, 12));
             });
             try {
                 foreach (file($ignoreFile) as $line => $pattern) {
@@ -147,7 +147,7 @@
                     $this->baselineDeprecations[$baseline_deprecation->location][$baseline_deprecation->message] = $baseline_deprecation->count;
                 }
             } else {
-                throw new \InvalidArgumentException(sprintf('The baselineFile "%s" does not exist.', $this->baselineFile));
+                throw new \InvalidArgumentException(\sprintf('The baselineFile "%s" does not exist.', $this->baselineFile));
             }
         }
 
@@ -316,7 +316,7 @@
         parse_str($serializedConfiguration, $normalizedConfiguration);
         foreach (array_keys($normalizedConfiguration) as $key) {
             if (!\in_array($key, ['max', 'disabled', 'verbose', 'quiet', 'ignoreFile', 'generateBaseline', 'baselineFile', 'logFile'], true)) {
-                throw new \InvalidArgumentException(sprintf('Unknown configuration option "%s".', $key));
+                throw new \InvalidArgumentException(\sprintf('Unknown configuration option "%s".', $key));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php	2026-05-20 10:56:49.000000000 +0200
@@ -118,7 +118,7 @@
             return;
         }
 
-        set_error_handler(function () {});
+        set_error_handler(static function () {});
         try {
             $parsedMsg = unserialize($this->message);
         } finally {
@@ -351,7 +351,7 @@
             }
         }
 
-        throw new \RuntimeException(sprintf('No vendors found for path "%s".', $path));
+        throw new \RuntimeException(\sprintf('No vendors found for path "%s".', $path));
     }
 
     /**
@@ -376,6 +376,10 @@
                             array_merge($loader->getPrefixes(), $loader->getPrefixesPsr4()),
                             $paths
                         );
+                        $paths = self::addSourcePathsFromPrefixes(
+                            ['fallback' => $loader->getFallbackDirs(), 'fallback_psr4' => $loader->getFallbackDirsPsr4()],
+                            $paths
+                        );
                     }
                 }
             }
@@ -437,7 +441,9 @@
     {
         $exception = new \Exception($this->message);
         $reflection = new \ReflectionProperty($exception, 'trace');
-        $reflection->setAccessible(true);
+        if (\PHP_VERSION_ID < 80100) {
+            $reflection->setAccessible(true);
+        }
         $reflection->setValue($exception, $this->trace);
 
         return ($this->originatesFromAnObject() ? 'deprecation triggered by '.$this->originatingClass().'::'.$this->originatingMethod().":\n" : '')
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,7 +96,7 @@
     public static function collectDeprecations($outputFile)
     {
         $deprecations = [];
-        $previousErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) use (&$deprecations, &$previousErrorHandler) {
+        $previousErrorHandler = set_error_handler(static function ($type, $msg, $file, $line, $context = []) use (&$deprecations, &$previousErrorHandler) {
             if (\E_USER_DEPRECATED !== $type && \E_DEPRECATED !== $type && (\E_WARNING !== $type || false === strpos($msg, '" targeting switch is equivalent to "break'))) {
                 if ($previousErrorHandler) {
                     return $previousErrorHandler($type, $msg, $file, $line, $context);
@@ -119,7 +119,7 @@
             return null;
         });
 
-        register_shutdown_function(function () use ($outputFile, &$deprecations) {
+        register_shutdown_function(static function () use ($outputFile, &$deprecations) {
             file_put_contents($outputFile, serialize($deprecations));
         });
     }
@@ -171,6 +171,13 @@
             exit(1);
         }
 
+        if (\PHP_VERSION_ID >= 80500 && \in_array($msg, [
+            'The __sleep() serialization magic method has been deprecated. Implement __serialize() instead (or in addition, if support for old PHP versions is necessary)',
+            'The __wakeup() serialization magic method has been deprecated. Implement __unserialize() instead (or in addition, if support for old PHP versions is necessary)',
+        ], true)) {
+            return null;
+        }
+
         if ('legacy' === $group) {
             $this->deprecationGroups[$group]->addNotice();
         } elseif ($deprecation->originatesFromAnObject()) {
@@ -304,13 +311,13 @@
      */
     private function displayDeprecations($groups, $configuration)
     {
-        $cmp = function ($a, $b) {
+        $cmp = static function ($a, $b) {
             return $b->count() - $a->count();
         };
 
         if ($configuration->shouldWriteToLogFile()) {
             if (false === $handle = @fopen($file = $configuration->getLogFile(), 'a')) {
-                throw new \InvalidArgumentException(sprintf('The configured log file "%s" is not writeable.', $file));
+                throw new \InvalidArgumentException(\sprintf('The configured log file "%s" is not writeable.', $file));
             }
         } else {
             $handle = fopen('php://output', 'w');
@@ -318,7 +325,7 @@
 
         foreach ($groups as $group) {
             if ($this->deprecationGroups[$group]->count()) {
-                $deprecationGroupMessage = sprintf(
+                $deprecationGroupMessage = \sprintf(
                     '%s deprecation notices (%d)',
                     \in_array($group, ['direct', 'indirect', 'self'], true) ? "Remaining $group" : ucfirst($group),
                     $this->deprecationGroups[$group]->count()
@@ -337,7 +344,7 @@
                 uasort($notices, $cmp);
 
                 foreach ($notices as $msg => $notice) {
-                    fwrite($handle, sprintf("\n  %sx: %s\n", $notice->count(), $msg));
+                    fwrite($handle, \sprintf("\n  %sx: %s\n", $notice->count(), $msg));
 
                     $countsByCaller = $notice->getCountsByCaller();
                     arsort($countsByCaller);
@@ -349,7 +356,7 @@
                                 fwrite($handle, "    ...\n");
                                 break;
                             }
-                            fwrite($handle, sprintf("    %dx in %s\n", $count, preg_replace('/(.*)\\\\(.*?::.*?)$/', '$2 from $1', $method)));
+                            fwrite($handle, \sprintf("    %dx in %s\n", $count, preg_replace('/(.*)\\\\(.*?::.*?)$/', '$2 from $1', $method)));
                         }
                     }
                 }
@@ -392,7 +399,7 @@
                     $frame['object']->getConvertWarningsToExceptions()
                 );
             } elseif (ErrorHandler::class === $eh && $frame['object'] instanceof TestCase) {
-                return function (int $errorNumber, string $errorString, string $errorFile, int $errorLine) {
+                return static function (int $errorNumber, string $errorString, string $errorFile, int $errorLine) {
                     ErrorHandler::instance()($errorNumber, $errorString, $errorFile, $errorLine);
 
                     return true;
@@ -400,7 +407,7 @@
             }
         }
 
-        return function () { return false; };
+        return static function () { return false; };
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Legacy/SymfonyTestsListenerTrait.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Legacy/SymfonyTestsListenerTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Legacy/SymfonyTestsListenerTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Legacy/SymfonyTestsListenerTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,6 +18,7 @@
 use PHPUnit\Framework\TestCase;
 use PHPUnit\Framework\TestSuite;
 use PHPUnit\Runner\BaseTestRunner;
+use PHPUnit\Runner\PhptTestCase;
 use PHPUnit\Util\Blacklist;
 use PHPUnit\Util\ExcludeList;
 use PHPUnit\Util\Test;
@@ -93,12 +94,12 @@
         }
     }
 
-    public function __sleep()
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -206,6 +207,12 @@
 
     public function startTest($test): void
     {
+        if (-2 < $this->state && $test instanceof PhptTestCase) {
+            $this->runsInSeparateProcess = tempnam(sys_get_temp_dir(), 'deprec');
+            putenv('SYMFONY_DEPRECATIONS_SERIALIZE='.$this->runsInSeparateProcess);
+            putenv('SYMFONY_EXPECTED_DEPRECATIONS_SERIALIZE='.tempnam(sys_get_temp_dir(), 'expectdeprec'));
+        }
+
         if (-2 < $this->state && $test instanceof TestCase) {
             // This event is triggered before the test is re-run in isolation
             if ($this->willBeIsolated($test)) {
@@ -273,9 +280,9 @@
 
         if ($this->checkNumAssertions) {
             $assertions = \count(self::$expectedDeprecations) + $test->getNumAssertions();
-            if ($test->doesNotPerformAssertions() && $assertions > 0) {
+            if ($test instanceof TestCase && $test->doesNotPerformAssertions() && $assertions > 0) {
                 $test->getTestResultObject()->addFailure($test, new RiskyTestError(sprintf('This test is annotated with "@doesNotPerformAssertions", but performed %s assertions', $assertions)), $time);
-            } elseif ($assertions === 0 && !$test->doesNotPerformAssertions() && $test->getTestResultObject()->noneSkipped()) {
+            } elseif ($test instanceof TestCase && $assertions === 0 && !$test->doesNotPerformAssertions() && $test->getTestResultObject()->noneSkipped()) {
                 $test->getTestResultObject()->addFailure($test, new RiskyTestError('This test did not perform any assertions'), $time);
             }
 
@@ -299,15 +306,15 @@
         }
 
         if (self::$expectedDeprecations) {
-            if (!\in_array($test->getStatus(), [BaseTestRunner::STATUS_SKIPPED, BaseTestRunner::STATUS_INCOMPLETE], true)) {
+            if ($test instanceof TestCase && !\in_array($test->getStatus(), [BaseTestRunner::STATUS_SKIPPED, BaseTestRunner::STATUS_INCOMPLETE], true)) {
                 $test->addToAssertionCount(\count(self::$expectedDeprecations));
             }
 
             restore_error_handler();
 
-            if (!\in_array('legacy', $groups, true)) {
+            if ($test instanceof TestCase && !\in_array('legacy', $groups, true)) {
                 $test->getTestResultObject()->addError($test, new AssertionFailedError('Only tests with the "@group legacy" annotation can expect a deprecation.'), 0);
-            } elseif (!\in_array($test->getStatus(), [BaseTestRunner::STATUS_SKIPPED, BaseTestRunner::STATUS_INCOMPLETE, BaseTestRunner::STATUS_FAILURE, BaseTestRunner::STATUS_ERROR], true)) {
+            } elseif ($test instanceof TestCase && !\in_array($test->getStatus(), [BaseTestRunner::STATUS_SKIPPED, BaseTestRunner::STATUS_INCOMPLETE, BaseTestRunner::STATUS_FAILURE, BaseTestRunner::STATUS_ERROR], true)) {
                 try {
                     $prefix = "@expectedDeprecation:\n";
                     $test->assertStringMatchesFormat($prefix.'%A  '.implode("\n%A  ", self::$expectedDeprecations)."\n%A", $prefix.'  '.implode("\n  ", self::$gatheredDeprecations)."\n");
@@ -357,7 +364,9 @@
         }
 
         $r = new \ReflectionProperty($test, 'runTestInSeparateProcess');
-        $r->setAccessible(true);
+        if (\PHP_VERSION_ID < 80100) {
+            $r->setAccessible(true);
+        }
 
         return $r->getValue($test) ?? false;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline2.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline2.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline2.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline2.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline3.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline3.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline3.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline3.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/baseline.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -26,6 +26,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ConfigurationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -245,7 +245,7 @@
         $groups = $this->buildGroups($deprecationsPerType);
 
         foreach ($expected as $groupName => $tolerates) {
-            $this->assertSame($tolerates, $configuration->toleratesForGroup($groupName, $groups), sprintf('Deprecation type "%s" is %s', $groupName, $tolerates ? 'tolerated' : 'not tolerated'));
+            $this->assertSame($tolerates, $configuration->toleratesForGroup($groupName, $groups), \sprintf('Deprecation type "%s" is %s', $groupName, $tolerates ? 'tolerated' : 'not tolerated'));
         }
     }
 
@@ -474,7 +474,7 @@
         $trace[2] = [
             'class' => DebugClassLoader::class,
             'function' => 'testBaselineGenerationWithDeprecationTriggeredByDebugClassLoader',
-            'args' => [self::class]
+            'args' => [self::class],
         ];
 
         $deprecation = new Deprecation('Deprecation by debug class loader', $trace, '');
@@ -512,7 +512,7 @@
         $filename = $this->createFile();
         unlink($filename);
         $this->expectException(\InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The baselineFile "%s" does not exist.', $filename));
+        $this->expectExceptionMessage(\sprintf('The baselineFile "%s" does not exist.', $filename));
         Configuration::fromUrlEncodedString('baselineFile='.urlencode($filename));
     }
 
@@ -526,7 +526,7 @@
         $this->expectExceptionMessageMatches('/[Ff]ailed to open stream: Permission denied/');
 
         set_error_handler(static function (int $errno, string $errstr, ?string $errfile = null, ?int $errline = null): bool {
-            if ($errno & (E_WARNING | E_WARNING)) {
+            if ($errno & (\E_WARNING | \E_WARNING)) {
                 throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
             }
 
@@ -592,7 +592,7 @@
         $filename = $this->createFile();
         unlink($filename);
         $this->expectException(\InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The ignoreFile "%s" does not exist.', $filename));
+        $this->expectExceptionMessage(\sprintf('The ignoreFile "%s" does not exist.', $filename));
         Configuration::fromUrlEncodedString('ignoreFile='.urlencode($filename));
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/debug_class_loader_autoload.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/debug_class_loader_autoload.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/debug_class_loader_autoload.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/debug_class_loader_autoload.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/debug_class_loader_deprecation.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/debug_class_loader_deprecation.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/debug_class_loader_deprecation.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/debug_class_loader_deprecation.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/default.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/default.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/default.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/default.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -9,6 +9,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/deprecated_regexp.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/deprecated_regexp.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/deprecated_regexp.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/deprecated_regexp.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/deprecation/deprecation.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/deprecation/deprecation.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/deprecation/deprecation.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/deprecation/deprecation.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,3 +1,12 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 @trigger_error('I come from… afar! :D', \E_USER_DEPRECATED);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationGroupTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationGroupTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationGroupTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationGroupTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace Symfony\Bridge\PhpUnit\Tests\DeprecationErrorHandler;
 
 use PHPUnit\Framework\TestCase;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationNoticeTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationNoticeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationNoticeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationNoticeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace Symfony\Bridge\PhpUnit\Tests\DeprecationErrorHandler;
 
 use PHPUnit\Framework\TestCase;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -275,7 +275,9 @@
                     $loader = require $v.'/autoload.php';
                     $reflection = new \ReflectionClass($loader);
                     $prop = $reflection->getProperty('prefixDirsPsr4');
-                    $prop->setAccessible(true);
+                    if (\PHP_VERSION_ID < 80100) {
+                        $prop->setAccessible(true);
+                    }
                     $currentValue = $prop->getValue($loader);
                     self::$prefixDirsPsr4[] = [$prop, $loader, $currentValue];
                     $currentValue['Symfony\\Bridge\\PhpUnit\\'] = [realpath(__DIR__.'/../..')];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/disabled_1.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/disabled_1.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/disabled_1.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/disabled_1.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -9,6 +9,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/disabled.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/disabled.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/disabled.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/disabled.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/eval_not_self.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/eval_not_self.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/eval_not_self.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/eval_not_self.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/AppService.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/AppService.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/AppService.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/AppService.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace App\Services;
 
 use acme\lib\SomeService;
@@ -20,9 +29,9 @@
     {
         $args = [__FUNCTION__, __FUNCTION__];
         if ($useContracts) {
-            trigger_deprecation('App', '3.0', sprintf('%s is deprecated, use %s_new instead.', ...$args));
+            trigger_deprecation('App', '3.0', \sprintf('%s is deprecated, use %s_new instead.', ...$args));
         } else {
-            @trigger_error(sprintf('Since App 3.0: %s is deprecated, use %s_new instead.', ...$args), \E_USER_DEPRECATED);
+            @trigger_error(\sprintf('Since App 3.0: %s is deprecated, use %s_new instead.', ...$args), \E_USER_DEPRECATED);
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/BarService.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/BarService.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/BarService.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/BarService.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace App\Services;
 
 use acme\lib\ExtendsDeprecatedClassFromOtherVendor;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/ExtendsDeprecatedFromVendor.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/ExtendsDeprecatedFromVendor.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/ExtendsDeprecatedFromVendor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app/ExtendsDeprecatedFromVendor.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace App\Services;
 
 use fcy\lib\DeprecatedClass;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app_fallback/App/Services/FallbackDirService.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app_fallback/App/Services/FallbackDirService.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app_fallback/App/Services/FallbackDirService.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_app_fallback/App/Services/FallbackDirService.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,20 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace App\Services;
+
+final class FallbackDirService
+{
+    public function selfDeprecation(): void
+    {
+        @trigger_error('Since FallbackApp 1.0: selfDeprecation is deprecated.', \E_USER_DEPRECATED);
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/deprecation_riddled.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/deprecation_riddled.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/deprecation_riddled.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/deprecation_riddled.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,3 +35,6 @@
 $foo = new FooTestCase();
 $foo->testLegacyFoo();
 $foo->testNonLegacyBar();
+
+// @php-cs-fixer-ignore error_suppression Explicit trigger_error tests
+// @php-cs-fixer-ignore psr_autoloading
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/ExtendsDeprecatedClassFromOtherVendor.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/ExtendsDeprecatedClassFromOtherVendor.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/ExtendsDeprecatedClassFromOtherVendor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/ExtendsDeprecatedClassFromOtherVendor.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace acme\lib;
 
 use fcy\lib\DeprecatedClass;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/PhpDeprecation.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/PhpDeprecation.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/PhpDeprecation.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/PhpDeprecation.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace acme\lib;
 
 class PhpDeprecation implements \Serializable
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/SomeService.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/SomeService.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/SomeService.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/acme/lib/SomeService.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace acme\lib;
 
 use bar\lib\AnotherService;
@@ -10,9 +19,9 @@
     {
         $args = [__FUNCTION__, __FUNCTION__];
         if ($useContracts) {
-            trigger_deprecation('acme/lib', '3.0', sprintf('%s is deprecated, use %s_new instead.', ...$args));
+            trigger_deprecation('acme/lib', '3.0', \sprintf('%s is deprecated, use %s_new instead.', ...$args));
         } else {
-            @trigger_error(sprintf('Since acme/lib 3.0: %s is deprecated, use %s_new instead.', ...$args), \E_USER_DEPRECATED);
+            @trigger_error(\sprintf('Since acme/lib 3.0: %s is deprecated, use %s_new instead.', ...$args), \E_USER_DEPRECATED);
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/autoload.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/autoload.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/autoload.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/autoload.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 require_once __DIR__.'/composer/autoload_real.php';
 
 return ComposerAutoloaderInitFake::getLoader();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/bar/lib/AnotherService.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/bar/lib/AnotherService.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/bar/lib/AnotherService.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/bar/lib/AnotherService.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace bar\lib;
 
 class AnotherService
@@ -8,9 +17,9 @@
     {
         $args = [__FUNCTION__, __FUNCTION__];
         if ($useContracts) {
-            trigger_deprecation('bar/lib', '3.0', sprintf('%s is deprecated, use %s_new instead.', ...$args));
+            trigger_deprecation('bar/lib', '3.0', \sprintf('%s is deprecated, use %s_new instead.', ...$args));
         } else {
-            @trigger_error(sprintf('Since bar/lib 3.0: %s is deprecated, use %s_new instead.', ...$args), \E_USER_DEPRECATED);
+            @trigger_error(\sprintf('Since bar/lib 3.0: %s is deprecated, use %s_new instead.', ...$args), \E_USER_DEPRECATED);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/composer/autoload_real.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/composer/autoload_real.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/composer/autoload_real.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/composer/autoload_real.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 class ComposerLoaderFake
 {
     public function getPrefixes()
@@ -17,6 +26,16 @@
         ];
     }
 
+    public function getFallbackDirs()
+    {
+        return [];
+    }
+
+    public function getFallbackDirsPsr4()
+    {
+        return [];
+    }
+
     public function loadClass($className)
     {
         if ($file = $this->findFile($className)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/fcy/lib/DeprecatedClass.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/fcy/lib/DeprecatedClass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/fcy/lib/DeprecatedClass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor/fcy/lib/DeprecatedClass.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace fcy\lib;
 
 /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/autoload.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/autoload.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/autoload.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/autoload.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 require_once __DIR__.'/composer/autoload_real.php';
 
 return ComposerAutoloaderInitFakeBis::getLoader();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/composer/autoload_real.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/composer/autoload_real.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/composer/autoload_real.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/composer/autoload_real.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 class ComposerLoaderFakeBis
 {
     public function getPrefixes()
@@ -14,6 +23,16 @@
         ];
     }
 
+    public function getFallbackDirs()
+    {
+        return [];
+    }
+
+    public function getFallbackDirsPsr4()
+    {
+        return [];
+    }
+
     public function loadClass($className)
     {
         foreach ($this->getPrefixesPsr4() as $prefix => $baseDirs) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/foo/lib/SomeOtherService.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/foo/lib/SomeOtherService.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/foo/lib/SomeOtherService.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_bis/foo/lib/SomeOtherService.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace foo\lib;
 
 class SomeOtherService
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/autoload.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/autoload.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/autoload.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/autoload.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,14 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+require_once __DIR__.'/composer/autoload_real.php';
+
+return ComposerAutoloaderInitFakeFallbackPsr0::getLoader();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/composer/autoload_real.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/composer/autoload_real.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/composer/autoload_real.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/composer/autoload_real.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,60 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+class ComposerLoaderFakeFallbackPsr0
+{
+    public function getPrefixes()
+    {
+        return [];
+    }
+
+    public function getPrefixesPsr4()
+    {
+        return [];
+    }
+
+    public function getFallbackDirs()
+    {
+        return [__DIR__.'/../../fake_app_fallback/'];
+    }
+
+    public function getFallbackDirsPsr4()
+    {
+        return [];
+    }
+
+    public function loadClass($className)
+    {
+        foreach ($this->getFallbackDirs() as $dir) {
+            $file = $dir.strtr($className, '\\', '/').'.php';
+            if (file_exists($file)) {
+                require $file;
+
+                return;
+            }
+        }
+    }
+}
+
+class ComposerAutoloaderInitFakeFallbackPsr0
+{
+    private static $loader;
+
+    public static function getLoader()
+    {
+        if (null === self::$loader) {
+            self::$loader = new ComposerLoaderFakeFallbackPsr0();
+            spl_autoload_register([self::$loader, 'loadClass']);
+        }
+
+        return self::$loader;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/composer/installed.json symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/composer/installed.json
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/composer/installed.json	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr0/composer/installed.json	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1 @@
+[]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/autoload.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/autoload.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/autoload.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/autoload.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,14 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+require_once __DIR__.'/composer/autoload_real.php';
+
+return ComposerAutoloaderInitFakeFallbackPsr4::getLoader();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/composer/autoload_real.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/composer/autoload_real.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/composer/autoload_real.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/composer/autoload_real.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,60 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+class ComposerLoaderFakeFallbackPsr4
+{
+    public function getPrefixes()
+    {
+        return [];
+    }
+
+    public function getPrefixesPsr4()
+    {
+        return [];
+    }
+
+    public function getFallbackDirs()
+    {
+        return [];
+    }
+
+    public function getFallbackDirsPsr4()
+    {
+        return [__DIR__.'/../../fake_app_fallback/'];
+    }
+
+    public function loadClass($className)
+    {
+        foreach ($this->getFallbackDirsPsr4() as $dir) {
+            $file = $dir.strtr($className, '\\', '/').'.php';
+            if (file_exists($file)) {
+                require $file;
+
+                return;
+            }
+        }
+    }
+}
+
+class ComposerAutoloaderInitFakeFallbackPsr4
+{
+    private static $loader;
+
+    public static function getLoader()
+    {
+        if (null === self::$loader) {
+            self::$loader = new ComposerLoaderFakeFallbackPsr4();
+            spl_autoload_register([self::$loader, 'loadClass']);
+        }
+
+        return self::$loader;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/composer/installed.json symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/composer/installed.json
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/composer/installed.json	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fake_vendor_fallback_psr4/composer/installed.json	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1 @@
+[]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fallback_psr0_dir_as_self.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fallback_psr0_dir_as_self.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fallback_psr0_dir_as_self.phpt	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fallback_psr0_dir_as_self.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,44 @@
+--TEST--
+Test that a deprecation from code in a PSR-0 fallback dir is classified as "self"
+--FILE--
+<?php
+
+$k = 'SYMFONY_DEPRECATIONS_HELPER';
+putenv($k.'='.$_SERVER[$k] = $_ENV[$k] = 'max[self]=0');
+putenv('ANSICON');
+putenv('ConEmuANSI');
+putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
+
+$vendor = __DIR__;
+while (!file_exists($vendor.'/vendor')) {
+    $vendor = dirname($vendor);
+}
+define('PHPUNIT_COMPOSER_INSTALL', $vendor.'/vendor/autoload.php');
+require PHPUNIT_COMPOSER_INSTALL;
+require_once __DIR__.'/../../bootstrap.php';
+
+eval(<<<'EOPHP'
+namespace PHPUnit\Util;
+
+class Test
+{
+    public static function getGroups()
+    {
+        return array();
+    }
+}
+EOPHP
+);
+
+require __DIR__.'/fake_vendor_fallback_psr0/autoload.php';
+
+(new \App\Services\FallbackDirService())->selfDeprecation();
+
+?>
+--EXPECTF--
+Remaining self deprecation notices (1)
+
+  1x: Since FallbackApp 1.0: selfDeprecation is deprecated.
+    1x in FallbackDirService::selfDeprecation from App\Services
+
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fallback_psr4_dir_as_self.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fallback_psr4_dir_as_self.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fallback_psr4_dir_as_self.phpt	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/fallback_psr4_dir_as_self.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,42 @@
+--TEST--
+Test that a deprecation from code in a PSR-0 fallback dir is classified as "self"
+--FILE--
+<?php
+
+$k = 'SYMFONY_DEPRECATIONS_HELPER';
+putenv($k.'='.$_SERVER[$k] = $_ENV[$k] = 'max[self]=0');
+putenv('ANSICON');
+putenv('ConEmuANSI');
+putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
+
+$vendor = __DIR__;
+while (!file_exists($vendor.'/vendor')) {
+    $vendor = dirname($vendor);
+}
+define('PHPUNIT_COMPOSER_INSTALL', $vendor.'/vendor/autoload.php');
+require PHPUNIT_COMPOSER_INSTALL;
+require_once __DIR__.'/../../bootstrap.php';
+eval(<<<'EOPHP'
+namespace PHPUnit\Util;
+
+class Test
+{
+    public static function getGroups()
+    {
+        return array();
+    }
+}
+EOPHP
+);
+require __DIR__.'/fake_vendor_fallback_psr4/autoload.php';
+
+(new \App\Services\FallbackDirService())->selfDeprecation();
+
+?>
+--EXPECTF--
+Remaining self deprecation notices (1)
+
+  1x: Since FallbackApp 1.0: selfDeprecation is deprecated.
+    1x in FallbackDirService::selfDeprecation from App\Services
+
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/generate_baseline.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/generate_baseline.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/generate_baseline.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/generate_baseline.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -10,6 +10,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/generate_phar.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/generate_phar.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/generate_phar.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/generate_phar.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,4 +1,13 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 $phar = new Phar(__DIR__.\DIRECTORY_SEPARATOR.'deprecation.phar', 0, 'deprecation.phar');
 $phar->buildFromDirectory(__DIR__.\DIRECTORY_SEPARATOR.'deprecation');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ignore.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ignore.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ignore.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/ignore.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/lagging_vendor.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/lagging_vendor.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/lagging_vendor.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/lagging_vendor.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/log_file.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/log_file.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/log_file.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/log_file.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/multiple_autoloads.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/multiple_autoloads.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/multiple_autoloads.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/multiple_autoloads.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/partially_quiet2.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/partially_quiet2.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/partially_quiet2.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/partially_quiet2.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/partially_quiet.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/partially_quiet.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/partially_quiet.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/partially_quiet.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/php_deprecation_from_vendor_class.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/php_deprecation_from_vendor_class.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/php_deprecation_from_vendor_class.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/php_deprecation_from_vendor_class.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -10,6 +10,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/quiet_but_failing.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/quiet_but_failing.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/quiet_but_failing.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/quiet_but_failing.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/quiet.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/quiet.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/quiet.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/quiet.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/self_on_non_vendor.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/self_on_non_vendor.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/self_on_non_vendor.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/self_on_non_vendor.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/shutdown_deprecations.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/shutdown_deprecations.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/shutdown_deprecations.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/shutdown_deprecations.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -9,6 +9,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/trigger_deprecation_types.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/trigger_deprecation_types.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/trigger_deprecation_types.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/trigger_deprecation_types.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/trigger_error_types.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/trigger_error_types.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/trigger_error_types.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/trigger_error_types.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_eval_d_deprecation.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_eval_d_deprecation.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_eval_d_deprecation.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_eval_d_deprecation.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_non_vendor.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_non_vendor.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_non_vendor.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_non_vendor.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_phar_deprecation.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_phar_deprecation.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_phar_deprecation.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_phar_deprecation.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -9,6 +9,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_vendor.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_vendor.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_vendor.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/weak_vendors_on_vendor.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 putenv('ANSICON');
 putenv('ConEmuANSI');
 putenv('TERM');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
 
 $vendor = __DIR__;
 while (!file_exists($vendor.'/vendor')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectdeprecationfail.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -2,7 +2,9 @@
 Test ExpectDeprecationTrait failing tests
 --FILE--
 <?php
-$test =  realpath(__DIR__.'/FailTests/ExpectDeprecationTraitTestFail.php');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
+putenv('SYMFONY_EXPECTED_DEPRECATIONS_SERIALIZE');
+$test = realpath(__DIR__.'/FailTests/ExpectDeprecationTraitTestFail.php');
 passthru('php '.getenv('SYMFONY_SIMPLE_PHPUNIT_BIN_DIR').'/simple-phpunit.php --colors=never '.$test);
 ?>
 --EXPECTF--
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectnotrisky.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -4,7 +4,7 @@
 <?php if ('\\' === DIRECTORY_SEPARATOR && !extension_loaded('mbstring')) die('Skipping on Windows without mbstring');
 --FILE--
 <?php
-$test =  realpath(__DIR__.'/FailTests/NoAssertionsTestNotRisky.php');
+$test = realpath(__DIR__.'/FailTests/NoAssertionsTestNotRisky.php');
 passthru('php '.getenv('SYMFONY_SIMPLE_PHPUNIT_BIN_DIR').'/simple-phpunit.php --fail-on-risky --colors=never '.$test);
 ?>
 --EXPECTF--
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PhpUnit/Tests/expectrisky.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -4,7 +4,9 @@
 <?php if ('\\' === DIRECTORY_SEPARATOR && !extension_loaded('mbstring')) die('Skipping on Windows without mbstring');
 --FILE--
 <?php
-$test =  realpath(__DIR__.'/FailTests/NoAssertionsTestRisky.php');
+putenv('SYMFONY_DEPRECATIONS_SERIALIZE');
+putenv('SYMFONY_EXPECTED_DEPRECATIONS_SERIALIZE');
+$test = realpath(__DIR__.'/FailTests/NoAssertionsTestRisky.php');
 passthru('php '.getenv('SYMFONY_SIMPLE_PHPUNIT_BIN_DIR').'/simple-phpunit.php --fail-on-risky --colors=never '.$test);
 ?>
 --EXPECTF--
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Internal/ProxyGenerator.php symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Internal/ProxyGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Internal/ProxyGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Internal/ProxyGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,11 +48,11 @@
             return (new \ReflectionClass($class))->name;
         }
         if (!$definition->isLazy()) {
-            throw new \InvalidArgumentException(sprintf('Invalid definition for service of class "%s": setting the "proxy" tag on a service requires it to be "lazy".', $definition->getClass()));
+            throw new \InvalidArgumentException(\sprintf('Invalid definition for service of class "%s": setting the "proxy" tag on a service requires it to be "lazy".', $definition->getClass()));
         }
         $tags = $definition->getTag('proxy');
         if (!isset($tags[0]['interface'])) {
-            throw new \InvalidArgumentException(sprintf('Invalid definition for service of class "%s": the "interface" attribute is missing on the "proxy" tag.', $definition->getClass()));
+            throw new \InvalidArgumentException(\sprintf('Invalid definition for service of class "%s": the "interface" attribute is missing on the "proxy" tag.', $definition->getClass()));
         }
         if (1 === \count($tags)) {
             return class_exists($tags[0]['interface']) || interface_exists($tags[0]['interface'], false) ? $tags[0]['interface'] : null;
@@ -62,10 +62,10 @@
         $interfaces = '';
         foreach ($tags as $tag) {
             if (!isset($tag['interface'])) {
-                throw new \InvalidArgumentException(sprintf('Invalid definition for service of class "%s": the "interface" attribute is missing on a "proxy" tag.', $definition->getClass()));
+                throw new \InvalidArgumentException(\sprintf('Invalid definition for service of class "%s": the "interface" attribute is missing on a "proxy" tag.', $definition->getClass()));
             }
             if (!interface_exists($tag['interface'])) {
-                throw new \InvalidArgumentException(sprintf('Invalid definition for service of class "%s": several "proxy" tags found but "%s" is not an interface.', $definition->getClass(), $tag['interface']));
+                throw new \InvalidArgumentException(\sprintf('Invalid definition for service of class "%s": several "proxy" tags found but "%s" is not an interface.', $definition->getClass(), $tag['interface']));
             }
 
             $proxyInterface .= '\\'.$tag['interface'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,27 +53,27 @@
         $instantiation = 'return';
 
         if ($definition->isShared()) {
-            $instantiation .= sprintf(' $container->%s[%s] =', $definition->isPublic() && !$definition->isPrivate() ? 'services' : 'privates', var_export($id, true));
+            $instantiation .= \sprintf(' $container->%s[%s] =', $definition->isPublic() && !$definition->isPrivate() ? 'services' : 'privates', var_export($id, true));
         }
 
         $proxifiedClass = new \ReflectionClass($this->proxyGenerator->getProxifiedClass($definition));
         $proxyClass = $this->getProxyClassName($proxifiedClass->name);
 
         return <<<EOF
-        if (true === \$lazyLoad) {
-            $instantiation \$container->createProxy('$proxyClass', static fn () => \\$proxyClass::staticProxyConstructor(
-                static function (&\$wrappedInstance, \ProxyManager\Proxy\LazyLoadingInterface \$proxy) use (\$container) {
-                    \$wrappedInstance = $factoryCode;
-
-                    \$proxy->setProxyInitializer(null);
-
-                    return true;
-                }
-            ));
-        }
+                    if (true === \$lazyLoad) {
+                        $instantiation \$container->createProxy('$proxyClass', static fn () => \\$proxyClass::staticProxyConstructor(
+                            static function (&\$wrappedInstance, \ProxyManager\Proxy\LazyLoadingInterface \$proxy) use (\$container) {
+                                \$wrappedInstance = $factoryCode;
+
+                                \$proxy->setProxyInitializer(null);
+
+                                return true;
+                            }
+                        ));
+                    }
 
 
-EOF;
+            EOF;
     }
 
     public function getProxyCode(Definition $definition, ?string $id = null): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/ContainerBuilderTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/ContainerBuilderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/ContainerBuilderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/ContainerBuilderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 /**
- * Integration tests for {@see \Symfony\Component\DependencyInjection\ContainerBuilder} combined
+ * Integration tests for {@see ContainerBuilder} combined
  * with the ProxyManager bridge.
  *
  * @author Marco Pivetta <ocramius@gmail.com>
@@ -38,7 +38,7 @@
 
         $builder->compile();
 
-        /* @var $foo1 \ProxyManager\Proxy\LazyLoadingInterface|\ProxyManager\Proxy\ValueHolderInterface */
+        /** @var LazyLoadingInterface|\ProxyManager\Proxy\ValueHolderInterface $foo1 */
         $foo1 = $builder->get('foo1');
 
         $foo1->__destruct();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Dumper/PhpDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Dumper/PhpDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Dumper/PhpDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Dumper/PhpDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
 use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
 
 /**
- * Integration tests for {@see \Symfony\Component\DependencyInjection\Dumper\PhpDumper} combined
+ * Integration tests for {@see PhpDumper} combined
  * with the ProxyManager bridge.
  *
  * @author Marco Pivetta <ocramius@gmail.com>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Instantiator/RuntimeInstantiatorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Instantiator/RuntimeInstantiatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Instantiator/RuntimeInstantiatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Instantiator/RuntimeInstantiatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
 use Symfony\Component\DependencyInjection\Definition;
 
 /**
- * Tests for {@see \Symfony\Bridge\ProxyManager\LazyProxy\Instantiator\RuntimeInstantiator}.
+ * Tests for {@see RuntimeInstantiator}.
  *
  * @author Marco Pivetta <ocramius@gmail.com>
  *
@@ -39,9 +39,9 @@
         $instance = new \stdClass();
         $container = $this->createMock(ContainerInterface::class);
         $definition = new Definition('stdClass');
-        $instantiator = fn () => $instance;
+        $instantiator = static fn () => $instance;
 
-        /* @var $proxy LazyLoadingInterface|ValueHolderInterface */
+        /** @var LazyLoadingInterface|ValueHolderInterface $proxy */
         $proxy = $this->instantiator->instantiateProxy($container, $definition, 'foo', $instantiator);
 
         $this->assertInstanceOf(LazyLoadingInterface::class, $proxy);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/Fixtures/proxy-implem.php symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/Fixtures/proxy-implem.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/Fixtures/proxy-implem.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/Fixtures/proxy-implem.php	2026-05-20 10:56:49.000000000 +0200
@@ -210,12 +210,12 @@
         return $this->initializer%s;
     }
 
-    public function initializeProxy() : bool
+    public function initializeProxy(): bool
     {
         return $this->initializer%s && ($this->initializer%s->__invoke($valueHolder%s, $this, 'initializeProxy', array(), $this->initializer%s) || 1) && $this->valueHolder%s = $valueHolder%s;
     }
 
-    public function isProxyInitialized() : bool
+    public function isProxyInitialized(): bool
     {
         return null !== $this->valueHolder%s;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,7 @@
 use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface;
 
 /**
- * Tests for {@see \Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper\ProxyDumper}.
+ * Tests for {@see ProxyDumper}.
  *
  * @author Marco Pivetta <ocramius@gmail.com>
  *
@@ -116,32 +116,33 @@
         $implem = "<?php\n\n".$this->dumper->getProxyCode($definition);
         $factory = $this->dumper->getProxyFactoryCode($definition, 'foo', '$container->getFooService(false)');
         $factory = <<<EOPHP
-<?php
+            <?php
 
-return new class
-{
-    public \$proxyClass;
-    private \$privates = [];
+            return new class
+            {
+                public \$proxyClass;
+                private \$privates = [];
 
-    public function getFooService(\$lazyLoad = true)
-    {
-        \$container = \$this;
+                public function getFooService(\$lazyLoad = true)
+                {
+                    \$container = \$this;
 
-{$factory}        return new {$class}();
-    }
+            {$factory}        return new {$class}();
+                }
 
-    protected function createProxy(\$class, \Closure \$factory)
-    {
-        \$this->proxyClass = \$class;
+                protected function createProxy(\$class, \Closure \$factory)
+                {
+                    \$this->proxyClass = \$class;
 
-        return \$factory();
-    }
-};
+                    return \$factory();
+                }
+            };
 
-EOPHP;
+            EOPHP;
 
         $implem = preg_replace('#\n    /\*\*.*?\*/#s', '', $implem);
         $implem = str_replace("array(\n        \n    );", "[\n        \n    ];", $implem);
+        $implem = str_replace('() : bool', '(): bool', $implem);
 
         $this->assertStringMatchesFormatFile(__DIR__.'/Fixtures/proxy-implem.php', $implem);
         $this->assertStringEqualsFile(__DIR__.'/Fixtures/proxy-factory.php', $factory);
@@ -172,7 +173,7 @@
         ];
 
         array_map(
-            function ($definition) {
+            static function ($definition) {
                 $definition[0]->setLazy(true);
             },
             $definitions
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/HttpFoundationFactory.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/HttpFoundationFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/HttpFoundationFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/HttpFoundationFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -99,7 +99,7 @@
      */
     private function createUploadedFile(UploadedFileInterface $psrUploadedFile): UploadedFile
     {
-        return new UploadedFile($psrUploadedFile, function () { return $this->getTemporaryPath(); });
+        return new UploadedFile($psrUploadedFile, fn () => $this->getTemporaryPath());
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/PsrHttpFactory.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/PsrHttpFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/PsrHttpFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/PsrHttpFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
             $psr17Factory = match (true) {
                 class_exists(DiscoveryPsr17Factory::class) => new DiscoveryPsr17Factory(),
                 class_exists(NyholmPsr17Factory::class) => new NyholmPsr17Factory(),
-                default => throw new \LogicException(sprintf('You cannot use the "%s" as no PSR-17 factories have been provided. Try running "composer require php-http/discovery psr/http-factory-implementation:*".', self::class)),
+                default => throw new \LogicException(\sprintf('You cannot use the "%s" as no PSR-17 factories have been provided. Try running "composer require php-http/discovery psr/http-factory-implementation:*".', self::class)),
             };
 
             $serverRequestFactory ??= $psr17Factory;
@@ -166,7 +166,7 @@
         } else {
             $stream = $this->streamFactory->createStreamFromFile('php://temp', 'wb+');
             if ($symfonyResponse instanceof StreamedResponse || $symfonyResponse instanceof BinaryFileResponse) {
-                ob_start(function ($buffer) use ($stream) {
+                ob_start(static function ($buffer) use ($stream) {
                     $stream->write($buffer);
 
                     return '';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/UploadedFile.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/UploadedFile.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/UploadedFile.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Factory/UploadedFile.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,10 +59,10 @@
         try {
             $this->psrUploadedFile->moveTo((string) $target);
         } catch (\RuntimeException $e) {
-            throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, $e->getMessage()), 0, $e);
+            throw new FileException(\sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, $e->getMessage()), 0, $e);
         }
 
-        @chmod($target, 0666 & ~umask());
+        @chmod($target, 0o666 & ~umask());
 
         return $target;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,8 +27,8 @@
 {
     public function testServerRequest()
     {
-        $symfonyRequest = $this->createMock(Request::class);
-        $psrRequest = $this->createMock(ServerRequestInterface::class);
+        $symfonyRequest = new Request();
+        $psrRequest = $this->createStub(ServerRequestInterface::class);
 
         $resolver = $this->bootstrapResolver($symfonyRequest, $psrRequest);
 
@@ -37,8 +37,8 @@
 
     public function testRequest()
     {
-        $symfonyRequest = $this->createMock(Request::class);
-        $psrRequest = $this->createMock(ServerRequestInterface::class);
+        $symfonyRequest = new Request();
+        $psrRequest = $this->createStub(ServerRequestInterface::class);
 
         $resolver = $this->bootstrapResolver($symfonyRequest, $psrRequest);
 
@@ -47,8 +47,8 @@
 
     public function testMessage()
     {
-        $symfonyRequest = $this->createMock(Request::class);
-        $psrRequest = $this->createMock(ServerRequestInterface::class);
+        $symfonyRequest = new Request();
+        $psrRequest = $this->createStub(ServerRequestInterface::class);
 
         $resolver = $this->bootstrapResolver($symfonyRequest, $psrRequest);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/EventListener/PsrResponseListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/EventListener/PsrResponseListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/EventListener/PsrResponseListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/EventListener/PsrResponseListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,6 +48,6 @@
 
     private function createEventMock(mixed $controllerResult): ViewEvent
     {
-        return new ViewEvent($this->createMock(HttpKernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $controllerResult);
+        return new ViewEvent($this->createStub(HttpKernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $controllerResult);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/Factory/PsrHttpFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/Factory/PsrHttpFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/Factory/PsrHttpFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/Factory/PsrHttpFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -167,7 +167,7 @@
 
     public function testCreateResponseFromStreamed()
     {
-        $response = new StreamedResponse(function () {
+        $response = new StreamedResponse(static function () {
             echo "Line 1\n";
             flush();
 
@@ -219,14 +219,14 @@
             [],
             [],
             [
-            'f1' => $file,
-            'f2' => ['name' => null, 'type' => null, 'tmp_name' => null, 'error' => \UPLOAD_ERR_NO_FILE, 'size' => 0],
-          ],
+                'f1' => $file,
+                'f2' => ['name' => null, 'type' => null, 'tmp_name' => null, 'error' => \UPLOAD_ERR_NO_FILE, 'size' => 0],
+            ],
             [
-            'REQUEST_METHOD' => 'POST',
-            'HTTP_HOST' => 'dunglas.fr',
-            'HTTP_X_SYMFONY' => '2.8',
-          ],
+                'REQUEST_METHOD' => 'POST',
+                'HTTP_HOST' => 'dunglas.fr',
+                'HTTP_X_SYMFONY' => '2.8',
+            ],
             'Content'
         );
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/Functional/CovertTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/Functional/CovertTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/Functional/CovertTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/PsrHttpMessage/Tests/Functional/CovertTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -71,7 +71,7 @@
             $this->assertEquals($request->getUser(), $finalRequest->getUser());
             $this->assertEquals($request->getUserInfo(), $finalRequest->getUserInfo());
         } elseif ($finalRequest instanceof ServerRequestInterface) {
-            $strToLower = function ($arr) {
+            $strToLower = static function ($arr) {
                 foreach ($arr as $key => $value) {
                     yield strtolower($key) => $value;
                 }
@@ -146,9 +146,7 @@
 
         return array_merge([
             [$sfRequest, $psr17Factory, $symfonyFactory],
-        ], array_map(function ($psr7Request) use ($symfonyFactory, $psr17Factory) {
-            return [$psr7Request, $symfonyFactory, $psr17Factory];
-        }, $psr7Requests));
+        ], array_map(static fn ($psr7Request) => [$psr7Request, $symfonyFactory, $psr17Factory], $psr7Requests));
     }
 
     /**
@@ -172,7 +170,7 @@
             $this->assertEquals($response->getStatusCode(), $finalResponse->getStatusCode());
             $this->assertEquals($response->getTtl(), $finalResponse->getTtl());
         } elseif ($finalResponse instanceof ResponseInterface) {
-            $strToLower = function ($arr) {
+            $strToLower = static function ($arr) {
                 foreach ($arr as $key => $value) {
                     yield strtolower($key) => $value;
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Command/DebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Command/DebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Command/DebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Command/DebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,28 +68,28 @@
             ->setDefinition([
                 new InputArgument('name', InputArgument::OPTIONAL, 'The template name'),
                 new InputOption('filter', null, InputOption::VALUE_REQUIRED, 'Show details for all entries matching this filter'),
-                new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'text'),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'text'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command outputs a list of twig functions,
-filters, globals and tests.
+                The <info>%command.name%</info> command outputs a list of twig functions,
+                filters, globals and tests.
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-The command lists all functions, filters, etc.
+                The command lists all functions, filters, etc.
 
-  <info>php %command.full_name% @Twig/Exception/error.html.twig</info>
+                  <info>php %command.full_name% @Twig/Exception/error.html.twig</info>
 
-The command lists all paths that match the given template name.
+                The command lists all paths that match the given template name.
 
-  <info>php %command.full_name% --filter=date</info>
+                  <info>php %command.full_name% --filter=date</info>
 
-The command lists everything that contains the word date.
+                The command lists everything that contains the word date.
 
-  <info>php %command.full_name% --format=json</info>
+                  <info>php %command.full_name% --format=json</info>
 
-The command lists everything in a machine readable json format.
-EOF
+                The command lists everything in a machine readable json format.
+                EOF
             )
         ;
     }
@@ -101,13 +101,13 @@
         $filter = $input->getOption('filter');
 
         if (null !== $name && [] === $this->getFilesystemLoaders()) {
-            throw new InvalidArgumentException(sprintf('Argument "name" not supported, it requires the Twig loader "%s".', FilesystemLoader::class));
+            throw new InvalidArgumentException(\sprintf('Argument "name" not supported, it requires the Twig loader "%s".', FilesystemLoader::class));
         }
 
         match ($input->getOption('format')) {
             'text' => $name ? $this->displayPathsText($io, $name) : $this->displayGeneralText($io, $filter),
             'json' => $name ? $this->displayPathsJson($io, $name) : $this->displayGeneralJson($io, $filter),
-            default => throw new InvalidArgumentException(sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
+            default => throw new InvalidArgumentException(\sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
         };
 
         return 0;
@@ -132,7 +132,7 @@
         $io->section('Matched File');
         if ($file->valid()) {
             if ($fileLink = $this->getFileLink($file->key())) {
-                $io->block($file->current(), 'OK', sprintf('fg=black;bg=green;href=%s', $fileLink), ' ', true);
+                $io->block($file->current(), 'OK', \sprintf('fg=black;bg=green;href=%s', $fileLink), ' ', true);
             } else {
                 $io->success($file->current());
             }
@@ -142,9 +142,9 @@
                 $io->section('Overridden Files');
                 do {
                     if ($fileLink = $this->getFileLink($file->key())) {
-                        $io->text(sprintf('* <href=%s>%s</>', $fileLink, $file->current()));
+                        $io->text(\sprintf('* <href=%s>%s</>', $fileLink, $file->current()));
                     } else {
-                        $io->text(sprintf('* %s', $file->current()));
+                        $io->text(\sprintf('* %s', $file->current()));
                     }
                     $file->next();
                 } while ($file->valid());
@@ -165,11 +165,11 @@
                 [$namespace, $shortname] = $this->parseTemplateName($name);
                 $alternatives = $this->findAlternatives($shortname, $shortnames);
                 if (FilesystemLoader::MAIN_NAMESPACE !== $namespace) {
-                    $alternatives = array_map(fn ($shortname) => '@'.$namespace.'/'.$shortname, $alternatives);
+                    $alternatives = array_map(static fn ($shortname) => '@'.$namespace.'/'.$shortname, $alternatives);
                 }
             }
 
-            $this->error($io, sprintf('Template name "%s" not found', $name), $alternatives);
+            $this->error($io, \sprintf('Template name "%s" not found', $name), $alternatives);
         }
 
         $io->section('Configured Paths');
@@ -182,7 +182,7 @@
             if (FilesystemLoader::MAIN_NAMESPACE === $namespace) {
                 $message = 'No template paths configured for your application';
             } else {
-                $message = sprintf('No template paths configured for "@%s" namespace', $namespace);
+                $message = \sprintf('No template paths configured for "@%s" namespace', $namespace);
                 foreach ($this->getFilesystemLoaders() as $loader) {
                     $namespaces = $loader->getNamespaces();
                     foreach ($this->findAlternatives($namespace, $namespaces) as $namespace) {
@@ -210,7 +210,7 @@
                 $data['overridden_files'] = $files;
             }
         } else {
-            $data['matched_file'] = sprintf('Template name "%s" not found', $name);
+            $data['matched_file'] = \sprintf('Template name "%s" not found', $name);
         }
         $data['loader_paths'] = $paths;
 
@@ -349,7 +349,7 @@
             }
 
             // format args
-            $args = array_map(function (\ReflectionParameter $param) {
+            $args = array_map(static function (\ReflectionParameter $param) {
                 if ($param->isDefaultValueAvailable()) {
                     return $param->getName().' = '.json_encode($param->getDefaultValue());
                 }
@@ -375,7 +375,7 @@
                 return '(unknown?)';
             }
         } catch (\UnexpectedValueException $e) {
-            return sprintf(' <error>%s</error>', $decorated ? OutputFormatter::escape($e->getMessage()) : $e->getMessage());
+            return \sprintf(' <error>%s</error>', $decorated ? OutputFormatter::escape($e->getMessage()) : $e->getMessage());
         }
 
         if ('globals' === $type) {
@@ -385,7 +385,7 @@
 
             $description = substr(@json_encode($meta), 0, 50);
 
-            return sprintf(' = %s', $decorated ? OutputFormatter::escape($description) : $description);
+            return \sprintf(' = %s', $decorated ? OutputFormatter::escape($description) : $description);
         }
 
         if ('functions' === $type) {
@@ -432,14 +432,14 @@
     {
         $messages = [];
         foreach ($wrongBundles as $path => $alternatives) {
-            $message = sprintf('Path "%s" not matching any bundle found', $path);
+            $message = \sprintf('Path "%s" not matching any bundle found', $path);
             if ($alternatives) {
                 if (1 === \count($alternatives)) {
-                    $message .= sprintf(", did you mean \"%s\"?\n", $alternatives[0]);
+                    $message .= \sprintf(", did you mean \"%s\"?\n", $alternatives[0]);
                 } else {
                     $message .= ", did you mean one of these:\n";
                     foreach ($alternatives as $bundle) {
-                        $message .= sprintf("  - %s\n", $bundle);
+                        $message .= \sprintf("  - %s\n", $bundle);
                     }
                 }
             }
@@ -492,7 +492,7 @@
     {
         if (isset($name[0]) && '@' === $name[0]) {
             if (false === ($pos = strpos($name, '/')) || $pos === \strlen($name) - 1) {
-                throw new InvalidArgumentException(sprintf('Malformed namespaced template name "%s" (expecting "@namespace/template_name").', $name));
+                throw new InvalidArgumentException(\sprintf('Malformed namespaced template name "%s" (expecting "@namespace/template_name").', $name));
             }
 
             $namespace = substr($name, 1, $pos - 1);
@@ -544,7 +544,7 @@
         }
 
         $threshold = 1e3;
-        $alternatives = array_filter($alternatives, fn ($lev) => $lev < 2 * $threshold);
+        $alternatives = array_filter($alternatives, static fn ($lev) => $lev < 2 * $threshold);
         ksort($alternatives, \SORT_NATURAL | \SORT_FLAG_CASE);
 
         return array_keys($alternatives);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Command/LintCommand.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Command/LintCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Command/LintCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Command/LintCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,27 +54,27 @@
     protected function configure()
     {
         $this
-            ->addOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())))
+            ->addOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())))
             ->addOption('show-deprecations', null, InputOption::VALUE_NONE, 'Show deprecations as errors')
             ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN')
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command lints a template and outputs to STDOUT
-the first encountered syntax error.
+                The <info>%command.name%</info> command lints a template and outputs to STDOUT
+                the first encountered syntax error.
 
-You can validate the syntax of contents passed from STDIN:
+                You can validate the syntax of contents passed from STDIN:
 
-  <info>cat filename | php %command.full_name% -</info>
+                  <info>cat filename | php %command.full_name% -</info>
 
-Or the syntax of a file:
+                Or the syntax of a file:
 
-  <info>php %command.full_name% filename</info>
+                  <info>php %command.full_name% filename</info>
 
-Or of a whole directory:
+                Or of a whole directory:
 
-  <info>php %command.full_name% dirname</info>
-  <info>php %command.full_name% dirname --format=json</info>
+                  <info>php %command.full_name% dirname</info>
+                  <info>php %command.full_name% dirname --format=json</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -151,7 +151,7 @@
             return Finder::create()->files()->in($filename)->name($this->namePatterns);
         }
 
-        throw new RuntimeException(sprintf('File or directory "%s" is not readable.', $filename));
+        throw new RuntimeException(\sprintf('File or directory "%s" is not readable.', $filename));
     }
 
     private function validate(string $template, string $file): array
@@ -178,7 +178,7 @@
             'txt' => $this->displayTxt($output, $io, $files),
             'json' => $this->displayJson($output, $files),
             'github' => $this->displayTxt($output, $io, $files, true),
-            default => throw new InvalidArgumentException(sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
+            default => throw new InvalidArgumentException(\sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
         };
     }
 
@@ -189,7 +189,7 @@
 
         foreach ($filesInfo as $info) {
             if ($info['valid'] && $output->isVerbose()) {
-                $io->comment('<info>OK</info>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
+                $io->comment('<info>OK</info>'.($info['file'] ? \sprintf(' in %s', $info['file']) : ''));
             } elseif (!$info['valid']) {
                 ++$errors;
                 $this->renderException($io, $info['template'], $info['exception'], $info['file'], $githubReporter);
@@ -197,9 +197,9 @@
         }
 
         if (0 === $errors) {
-            $io->success(sprintf('All %d Twig files contain valid syntax.', \count($filesInfo)));
+            $io->success(\sprintf('All %d Twig files contain valid syntax.', \count($filesInfo)));
         } else {
-            $io->warning(sprintf('%d Twig files have valid syntax and %d contain errors.', \count($filesInfo) - $errors, $errors));
+            $io->warning(\sprintf('%d Twig files have valid syntax and %d contain errors.', \count($filesInfo) - $errors, $errors));
         }
 
         return min($errors, 1);
@@ -209,7 +209,7 @@
     {
         $errors = 0;
 
-        array_walk($filesInfo, function (&$v) use (&$errors) {
+        array_walk($filesInfo, static function (&$v) use (&$errors) {
             $v['file'] = (string) $v['file'];
             unset($v['template']);
             if (!$v['valid']) {
@@ -231,28 +231,28 @@
         $githubReporter?->error($exception->getRawMessage(), $file, $line <= 0 ? null : $line);
 
         if ($file) {
-            $output->text(sprintf('<error> ERROR </error> in %s (line %s)', $file, $line));
+            $output->text(\sprintf('<error> ERROR </error> in %s (line %s)', $file, $line));
         } else {
-            $output->text(sprintf('<error> ERROR </error> (line %s)', $line));
+            $output->text(\sprintf('<error> ERROR </error> (line %s)', $line));
         }
 
         // If the line is not known (this might happen for deprecations if we fail at detecting the line for instance),
         // we render the message without context, to ensure the message is displayed.
         if ($line <= 0) {
-            $output->text(sprintf('<error> >> %s</error> ', $exception->getRawMessage()));
+            $output->text(\sprintf('<error> >> %s</error> ', $exception->getRawMessage()));
 
             return;
         }
 
         foreach ($this->getContext($template, $line) as $lineNumber => $code) {
-            $output->text(sprintf(
+            $output->text(\sprintf(
                 '%s %-6s %s',
                 $lineNumber === $line ? '<error> >> </error>' : '    ',
                 $lineNumber,
                 $code
             ));
             if ($lineNumber === $line) {
-                $output->text(sprintf('<error> >> %s</error> ', $exception->getRawMessage()));
+                $output->text(\sprintf('<error> >> %s</error> ', $exception->getRawMessage()));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/composer.json symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -29,12 +29,12 @@
         "symfony/asset-mapper": "^6.3|^7.0",
         "symfony/dependency-injection": "^5.4|^6.0|^7.0",
         "symfony/finder": "^5.4|^6.0|^7.0",
-        "symfony/form": "^6.4.20|^7.2.5",
+        "symfony/form": "^6.4.32|~7.3.10|^7.4.4",
         "symfony/html-sanitizer": "^6.1|^7.0",
         "symfony/http-foundation": "^5.4|^6.0|^7.0",
         "symfony/http-kernel": "^6.4|^7.0",
         "symfony/intl": "^5.4|^6.0|^7.0",
-        "symfony/mime": "^6.2|^7.0",
+        "symfony/mime": "^6.4.37|^7.4.9",
         "symfony/polyfill-intl-icu": "~1.0",
         "symfony/property-info": "^5.4|^6.0|^7.0",
         "symfony/routing": "^5.4|^6.0|^7.0",
@@ -58,10 +58,10 @@
         "phpdocumentor/reflection-docblock": "<3.2.2",
         "phpdocumentor/type-resolver": "<1.4.0",
         "symfony/console": "<5.4",
-        "symfony/form": "<6.3",
+        "symfony/form": "<6.4.32|>7,<7.3.10|>7.4,<7.4.4",
         "symfony/http-foundation": "<5.4",
         "symfony/http-kernel": "<6.4",
-        "symfony/mime": "<6.2",
+        "symfony/mime": "<6.4.37|>=7.0,<7.4.9",
         "symfony/serializer": "<6.4",
         "symfony/translation": "<5.4",
         "symfony/workflow": "<5.4"
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/ErrorRenderer/TwigErrorRenderer.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/ErrorRenderer/TwigErrorRenderer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/ErrorRenderer/TwigErrorRenderer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/ErrorRenderer/TwigErrorRenderer.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,7 +68,7 @@
 
     private function findTemplate(int $statusCode): ?string
     {
-        $template = sprintf('@Twig/Exception/error%s.html.twig', $statusCode);
+        $template = \sprintf('@Twig/Exception/error%s.html.twig', $statusCode);
         if ($this->twig->getLoader()->exists($template)) {
             return $template;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Extension/CodeExtension.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Extension/CodeExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Extension/CodeExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Extension/CodeExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,18 +59,18 @@
         $parts = explode('\\', $class);
         $short = array_pop($parts);
 
-        return sprintf('<abbr title="%s">%s</abbr>', $class, $short);
+        return \sprintf('<abbr title="%s">%s</abbr>', $class, $short);
     }
 
     public function abbrMethod(string $method): string
     {
         if (str_contains($method, '::')) {
             [$class, $method] = explode('::', $method, 2);
-            $result = sprintf('%s::%s()', $this->abbrClass($class), $method);
+            $result = \sprintf('%s::%s()', $this->abbrClass($class), $method);
         } elseif ('Closure' === $method) {
-            $result = sprintf('<abbr title="%s">%1$s</abbr>', $method);
+            $result = \sprintf('<abbr title="%s">%1$s</abbr>', $method);
         } else {
-            $result = sprintf('<abbr title="%s">%1$s</abbr>()', $method);
+            $result = \sprintf('<abbr title="%s">%1$s</abbr>()', $method);
         }
 
         return $result;
@@ -87,9 +87,9 @@
                 $item[1] = htmlspecialchars($item[1], \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset);
                 $parts = explode('\\', $item[1]);
                 $short = array_pop($parts);
-                $formattedValue = sprintf('<em>object</em>(<abbr title="%s">%s</abbr>)', $item[1], $short);
+                $formattedValue = \sprintf('<em>object</em>(<abbr title="%s">%s</abbr>)', $item[1], $short);
             } elseif ('array' === $item[0]) {
-                $formattedValue = sprintf('<em>array</em>(%s)', \is_array($item[1]) ? $this->formatArgs($item[1]) : htmlspecialchars(var_export($item[1], true), \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset));
+                $formattedValue = \sprintf('<em>array</em>(%s)', \is_array($item[1]) ? $this->formatArgs($item[1]) : htmlspecialchars(var_export($item[1], true), \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset));
             } elseif ('null' === $item[0]) {
                 $formattedValue = '<em>null</em>';
             } elseif ('boolean' === $item[0]) {
@@ -102,7 +102,7 @@
                 $formattedValue = str_replace("\n", '', htmlspecialchars(var_export($item[1], true), \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset));
             }
 
-            $result[] = \is_int($key) ? $formattedValue : sprintf("'%s' => %s", htmlspecialchars($key, \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset), $formattedValue);
+            $result[] = \is_int($key) ? $formattedValue : \sprintf("'%s' => %s", htmlspecialchars($key, \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset), $formattedValue);
         }
 
         return implode(', ', $result);
@@ -121,39 +121,85 @@
      */
     public function fileExcerpt(string $file, int $line, int $srcContext = 3): ?string
     {
-        if (is_file($file) && is_readable($file)) {
-            // highlight_file could throw warnings
-            // see https://bugs.php.net/25725
-            $code = @highlight_file($file, true);
-            if (\PHP_VERSION_ID >= 80300) {
-                // remove main pre/code tags
-                $code = preg_replace('#^<pre.*?>\s*<code.*?>(.*)</code>\s*</pre>#s', '\\1', $code);
-                // split multiline span tags
-                $code = preg_replace_callback('#<span ([^>]++)>((?:[^<\\n]*+\\n)++[^<]*+)</span>#', function ($m) {
-                    return "<span $m[1]>".str_replace("\n", "</span>\n<span $m[1]>", $m[2]).'</span>';
-                }, $code);
-                $content = explode("\n", $code);
-            } else {
-                // remove main code/span tags
-                $code = preg_replace('#^<code.*?>\s*<span.*?>(.*)</span>\s*</code>#s', '\\1', $code);
-                // split multiline spans
-                $code = preg_replace_callback('#<span ([^>]++)>((?:[^<]*+<br \/>)++[^<]*+)</span>#', fn ($m) => "<span $m[1]>".str_replace('<br />', "</span><br /><span $m[1]>", $m[2]).'</span>', $code);
-                $content = explode('<br />', $code);
-            }
+        if (!is_file($file) || !is_readable($file)) {
+            return null;
+        }
 
-            $lines = [];
-            if (0 > $srcContext) {
-                $srcContext = \count($content);
-            }
+        $contents = file_get_contents($file);
 
-            for ($i = max($line - $srcContext, 1), $max = min($line + $srcContext, \count($content)); $i <= $max; ++$i) {
-                $lines[] = '<li'.($i == $line ? ' class="selected"' : '').'><a class="anchor" id="line'.$i.'"></a><code>'.self::fixCodeMarkup($content[$i - 1]).'</code></li>';
-            }
+        if (!str_contains($contents, '<?php') && !str_contains($contents, '<?=')) {
+            $lines = explode("\n", htmlspecialchars($contents, \ENT_QUOTES | \ENT_SUBSTITUTE, $this->charset));
 
-            return '<ol start="'.max($line - $srcContext, 1).'">'.implode("\n", $lines).'</ol>';
-        }
+            if (0 > $srcContext) {
+                $srcContext = \count($lines);
+            }
 
-        return null;
+            return $this->formatFileExcerpt(
+                $this->extractExcerptLines($lines, $line, $srcContext),
+                $line,
+                $srcContext
+            );
+        }
+
+        // highlight_string could throw warnings
+        // see https://bugs.php.net/25725
+        $code = @highlight_string($contents, true);
+
+        if (\PHP_VERSION_ID >= 80300) {
+            // remove main pre/code tags
+            $code = preg_replace('#^<pre.*?>\s*<code.*?>(.*)</code>\s*</pre>#s', '\\1', $code);
+            // split multiline span tags
+            $code = preg_replace_callback(
+                '#<span ([^>]++)>((?:[^<\\n]*+\\n)++[^<]*+)</span>#',
+                static fn (array $m): string => "<span $m[1]>".str_replace("\n", "</span>\n<span $m[1]>", $m[2]).'</span>',
+                $code
+            );
+            $lines = explode("\n", $code);
+        } else {
+            // remove main code/span tags
+            $code = preg_replace('#^<code.*?>\s*<span.*?>(.*)</span>\s*</code>#s', '\\1', $code);
+            // split multiline spans
+            $code = preg_replace_callback(
+                '#<span ([^>]++)>((?:[^<]*+<br \/>)++[^<]*+)</span>#',
+                static fn (array $m): string => "<span $m[1]>".str_replace('<br />', "</span><br /><span $m[1]>", $m[2]).'</span>',
+                $code
+            );
+            $lines = explode('<br />', $code);
+        }
+
+        if (0 > $srcContext) {
+            $srcContext = \count($lines);
+        }
+
+        return $this->formatFileExcerpt(
+            array_map(
+                self::fixCodeMarkup(...),
+                $this->extractExcerptLines($lines, $line, $srcContext),
+            ),
+            $line,
+            $srcContext
+        );
+    }
+
+    private function extractExcerptLines(array $lines, int $selectedLine, int $srcContext): array
+    {
+        return \array_slice(
+            $lines,
+            max($selectedLine - $srcContext, 0),
+            min($srcContext * 2 + 1, \count($lines) - $selectedLine + $srcContext),
+            true
+        );
+    }
+
+    private function formatFileExcerpt(array $lines, int $selectedLine, int $srcContext): string
+    {
+        $start = max($selectedLine - $srcContext, 1);
+
+        return "<ol start=\"{$start}\">".implode("\n", array_map(
+            static fn (string $line, int $num): string => '<li'.(++$num === $selectedLine ? ' class="selected"' : '')."><a class=\"anchor\" id=\"line{$num}\"></a><code>{$line}</code></li>",
+            $lines,
+            array_keys($lines),
+        )).'</ol>';
     }
 
     /**
@@ -166,7 +212,7 @@
         if (null === $text) {
             if (null !== $rel = $this->getFileRelative($file)) {
                 $rel = explode('/', htmlspecialchars($rel, \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset), 2);
-                $text = sprintf('<abbr title="%s%2$s">%s</abbr>%s', htmlspecialchars($this->projectDir, \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset), $rel[0], '/'.($rel[1] ?? ''));
+                $text = \sprintf('<abbr title="%s%2$s">%s</abbr>%s', htmlspecialchars($this->projectDir, \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset), $rel[0], '/'.($rel[1] ?? ''));
             } else {
                 $text = htmlspecialchars($file, \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset);
             }
@@ -179,7 +225,7 @@
         }
 
         if (false !== $link = $this->getFileLink($file, $line)) {
-            return sprintf('<a href="%s" title="Click to open this file" class="file_link">%s</a>', htmlspecialchars($link, \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset), $text);
+            return \sprintf('<a href="%s" title="Click to open this file" class="file_link">%s</a>', htmlspecialchars($link, \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset), $text);
         }
 
         return $text;
@@ -243,7 +289,7 @@
         // missing </span> tag at the end of line
         $opening = strpos($line, '<span');
         $closing = strpos($line, '</span>');
-        if (false !== $opening && (false === $closing || $closing > $opening)) {
+        if (false !== $opening && (false === $closing || $closing < $opening)) {
             $line .= '</span>';
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Extension/FormExtension.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Extension/FormExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Extension/FormExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Extension/FormExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -157,7 +157,7 @@
                 continue;
             }
 
-            /* @var ChoiceView $choice */
+            /** @var ChoiceView $choice */
             $translatableLabel = $this->createFieldTranslation($choice->label, $choice->labelTranslationParameters, $translationDomain);
             yield $translatableLabel => $choice->value;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Extension/HttpKernelRuntime.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Extension/HttpKernelRuntime.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Extension/HttpKernelRuntime.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Extension/HttpKernelRuntime.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,7 +57,7 @@
     public function generateFragmentUri(ControllerReference $controller, bool $absolute = false, bool $strict = true, bool $sign = true): string
     {
         if (null === $this->fragmentUriGenerator) {
-            throw new \LogicException(sprintf('An instance of "%s" must be provided to use "%s()".', FragmentUriGeneratorInterface::class, __METHOD__));
+            throw new \LogicException(\sprintf('An instance of "%s" must be provided to use "%s()".', FragmentUriGeneratorInterface::class, __METHOD__));
         }
 
         return $this->fragmentUriGenerator->generate($controller, null, $absolute, $strict, $sign);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,10 +47,10 @@
     {
         if (null === $this->translator) {
             if (!interface_exists(TranslatorInterface::class)) {
-                throw new \LogicException(sprintf('You cannot use the "%s" if the Translation Contracts are not available. Try running "composer require symfony/translation".', __CLASS__));
+                throw new \LogicException(\sprintf('You cannot use the "%s" if the Translation Contracts are not available. Try running "composer require symfony/translation".', __CLASS__));
             }
 
-            $this->translator = new class() implements TranslatorInterface {
+            $this->translator = new class implements TranslatorInterface {
                 use TranslatorTrait;
             };
         }
@@ -100,7 +100,7 @@
     {
         if ($message instanceof TranslatableInterface) {
             if ([] !== $arguments && !\is_string($arguments)) {
-                throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be a locale passed as a string when the message is a "%s", "%s" given.', __METHOD__, TranslatableInterface::class, get_debug_type($arguments)));
+                throw new \TypeError(\sprintf('Argument 2 passed to "%s()" must be a locale passed as a string when the message is a "%s", "%s" given.', __METHOD__, TranslatableInterface::class, get_debug_type($arguments)));
             }
 
             if ($message instanceof TranslatableMessage && '' === $message->getMessage()) {
@@ -111,7 +111,7 @@
         }
 
         if (!\is_array($arguments)) {
-            throw new \TypeError(sprintf('Unless the message is a "%s", argument 2 passed to "%s()" must be an array of parameters, "%s" given.', TranslatableInterface::class, __METHOD__, get_debug_type($arguments)));
+            throw new \TypeError(\sprintf('Unless the message is a "%s", argument 2 passed to "%s()" must be an array of parameters, "%s" given.', TranslatableInterface::class, __METHOD__, get_debug_type($arguments)));
         }
 
         if ('' === $message = (string) $message) {
@@ -128,7 +128,7 @@
     public function createTranslatable(string $message, array $parameters = [], ?string $domain = null): TranslatableMessage
     {
         if (!class_exists(TranslatableMessage::class)) {
-            throw new \LogicException(sprintf('You cannot use the "%s" as the Translation Component is not installed. Try running "composer require symfony/translation".', __CLASS__));
+            throw new \LogicException(\sprintf('You cannot use the "%s" as the Translation Component is not installed. Try running "composer require symfony/translation".', __CLASS__));
         }
 
         return new TranslatableMessage($message, $parameters, $domain);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Extension/WebLinkExtension.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Extension/WebLinkExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Extension/WebLinkExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Extension/WebLinkExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
     /**
      * Adds a "Link" HTTP header.
      *
-     * @param string $rel        The relation type (e.g. "preload", "prefetch", "prerender" or "dns-prefetch")
+     * @param string $rel        The relation type (e.g. "preload", "prefetch", or "dns-prefetch")
      * @param array  $attributes The attributes of this link (e.g. "['as' => true]", "['pr' => 0.5]")
      *
      * @return string The relation URI
@@ -117,7 +117,11 @@
     }
 
     /**
-     * Indicates to the client that it should prerender this resource .
+     * Indicates to the client that it should prerender this resource.
+     *
+     * This feature is deprecated and superseded by the Speculation Rules API.
+     *
+     * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel/prerender
      *
      * @param array $attributes The attributes of this link (e.g. "['as' => true]", "['pr' => 0.5]")
      *
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php	2026-05-20 10:56:49.000000000 +0200
@@ -71,6 +71,7 @@
             // $this->resources[$cacheKey][$block] is not set. Since the themes are
             // already loaded, it can only be a non-existing block.
             $this->resources[$cacheKey][$blockName] = false;
+            $this->setResourceInheritability($cacheKey, $blockName, true);
 
             return false;
         }
@@ -108,8 +109,9 @@
 
             // EAGER CACHE POPULATION (see doc comment)
             foreach ($this->resources[$parentCacheKey] as $nestedBlockName => $resource) {
-                if (!isset($this->resources[$cacheKey][$nestedBlockName])) {
+                if (!isset($this->resources[$cacheKey][$nestedBlockName]) && $this->isResourceInheritable($parentCacheKey, $nestedBlockName)) {
                     $this->resources[$cacheKey][$nestedBlockName] = $resource;
+                    $this->setResourceInheritability($cacheKey, $nestedBlockName, true);
                 }
             }
         }
@@ -119,6 +121,7 @@
         if (!isset($this->resources[$cacheKey][$blockName])) {
             // Cache that we didn't find anything to speed up further accesses
             $this->resources[$cacheKey][$blockName] = false;
+            $this->setResourceInheritability($cacheKey, $blockName, true);
         }
 
         return false !== $this->resources[$cacheKey][$blockName];
@@ -162,6 +165,7 @@
                     // The resource given back is the key to the bucket that
                     // contains this block.
                     $this->resources[$cacheKey][$block] = $blockData;
+                    $this->setResourceInheritability($cacheKey, $block, true);
                 }
             }
         } while (false !== $currentTheme = $currentTheme->getParent($context));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
             $messageContext = $message->getContext();
 
             if (isset($messageContext['email'])) {
-                throw new InvalidArgumentException(sprintf('A "%s" context cannot have an "email" entry as this is a reserved variable.', get_debug_type($message)));
+                throw new InvalidArgumentException(\sprintf('A "%s" context cannot have an "email" entry as this is a reserved variable.', get_debug_type($message)));
             }
 
             $vars = array_merge($this->context, $messageContext, [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Mime/NotificationEmail.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Mime/NotificationEmail.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Mime/NotificationEmail.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Mime/NotificationEmail.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
         }
 
         if ($missingPackages) {
-            throw new \LogicException(sprintf('You cannot use "%s" if the "%s" Twig extension%s not available. Try running "%s".', static::class, implode('" and "', $missingPackages), \count($missingPackages) > 1 ? 's are' : ' is', 'composer require '.implode(' ', array_keys($missingPackages))));
+            throw new \LogicException(\sprintf('You cannot use "%s" if the "%s" Twig extension%s not available. Try running "%s".', static::class, implode('" and "', $missingPackages), \count($missingPackages) > 1 ? 's are' : ' is', 'composer require '.implode(' ', array_keys($missingPackages))));
         }
 
         parent::__construct($headers, $body);
@@ -88,7 +88,7 @@
     public function markdown(string $content): static
     {
         if (!class_exists(MarkdownExtension::class)) {
-            throw new \LogicException(sprintf('You cannot use "%s" if the Markdown Twig extension is not available. Try running "composer require twig/markdown-extra".', __METHOD__));
+            throw new \LogicException(\sprintf('You cannot use "%s" if the Markdown Twig extension is not available. Try running "composer require twig/markdown-extra".', __METHOD__));
         }
 
         $this->context['markdown'] = true;
@@ -218,7 +218,7 @@
         $importance = $this->context['importance'] ?? self::IMPORTANCE_LOW;
         $this->priority($this->determinePriority($importance));
         if ($this->context['importance']) {
-            $headers->setHeaderBody('Text', 'Subject', sprintf('[%s] %s', strtoupper($importance), $this->getSubject()));
+            $headers->setHeaderBody('Text', 'Subject', \sprintf('[%s] %s', strtoupper($importance), $this->getSubject()));
         }
 
         return $headers;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Mime/WrappedTemplatedEmail.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Mime/WrappedTemplatedEmail.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Mime/WrappedTemplatedEmail.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Mime/WrappedTemplatedEmail.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,9 +47,10 @@
     {
         $file = $this->twig->getLoader()->getSourceContext($image);
         $body = $file->getPath() ? new File($file->getPath()) : $file->getCode();
-        $this->message->addPart((new DataPart($body, $image, $contentType))->asInline());
+        $dataPart = (new DataPart($body, $image, $contentType))->asInline();
+        $this->message->addPart($dataPart);
 
-        return 'cid:'.$image;
+        return 'cid:'.$dataPart->getContentId();
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Node/DumpNode.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Node/DumpNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Node/DumpNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Node/DumpNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,18 +56,18 @@
         if (!$this->hasNode('values')) {
             // remove embedded templates (macros) from the context
             $compiler
-                ->write(sprintf('$%svars = [];'."\n", $varPrefix))
-                ->write(sprintf('foreach ($context as $%1$skey => $%1$sval) {'."\n", $varPrefix))
+                ->write(\sprintf('$%svars = [];'."\n", $varPrefix))
+                ->write(\sprintf('foreach ($context as $%1$skey => $%1$sval) {'."\n", $varPrefix))
                 ->indent()
-                ->write(sprintf('if (!$%sval instanceof \Twig\Template) {'."\n", $varPrefix))
+                ->write(\sprintf('if (!$%sval instanceof \Twig\Template) {'."\n", $varPrefix))
                 ->indent()
-                ->write(sprintf('$%1$svars[$%1$skey] = $%1$sval;'."\n", $varPrefix))
+                ->write(\sprintf('$%1$svars[$%1$skey] = $%1$sval;'."\n", $varPrefix))
                 ->outdent()
                 ->write("}\n")
                 ->outdent()
                 ->write("}\n")
                 ->addDebugInfo($this)
-                ->write(sprintf('\Symfony\Component\VarDumper\VarDumper::dump($%svars);'."\n", $varPrefix));
+                ->write(\sprintf('\Symfony\Component\VarDumper\VarDumper::dump($%svars);'."\n", $varPrefix));
         } elseif (($values = $this->getNode('values')) && 1 === $values->count()) {
             $compiler
                 ->addDebugInfo($this)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Node/StopwatchNode.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Node/StopwatchNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Node/StopwatchNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Node/StopwatchNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
     public function __construct(Node $name, Node $body, $var, int $lineno = 0, ?string $tag = null)
     {
         if (!$var instanceof AssignNameExpression && !$var instanceof LocalVariable) {
-            throw new \TypeError(sprintf('Expected an instance of "%s" or "%s", but got "%s".', AssignNameExpression::class, LocalVariable::class, get_debug_type($var)));
+            throw new \TypeError(\sprintf('Expected an instance of "%s" or "%s", but got "%s".', AssignNameExpression::class, LocalVariable::class, get_debug_type($var)));
         }
 
         if (class_exists(FirstClassTwigCallableReady::class)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,17 +52,16 @@
                 $this->scope->set('domain', $node->getNode('expr'));
 
                 return $node;
-            } else {
-                $var = $this->getVarName();
-                $name = class_exists(AssignContextVariable::class) ? new AssignContextVariable($var, $node->getTemplateLine()) : new AssignNameExpression($var, $node->getTemplateLine());
-                $this->scope->set('domain', class_exists(ContextVariable::class) ? new ContextVariable($var, $node->getTemplateLine()) : new NameExpression($var, $node->getTemplateLine()));
-
-                if (class_exists(Nodes::class)) {
-                    return new SetNode(false, new Nodes([$name]), new Nodes([$node->getNode('expr')]), $node->getTemplateLine());
-                } else {
-                    return new SetNode(false, new Node([$name]), new Node([$node->getNode('expr')]), $node->getTemplateLine());
-                }
             }
+            $var = $this->getVarName();
+            $name = class_exists(AssignContextVariable::class) ? new AssignContextVariable($var, $node->getTemplateLine()) : new AssignNameExpression($var, $node->getTemplateLine());
+            $this->scope->set('domain', class_exists(ContextVariable::class) ? new ContextVariable($var, $node->getTemplateLine()) : new NameExpression($var, $node->getTemplateLine()));
+
+            if (class_exists(Nodes::class)) {
+                return new SetNode(false, new Nodes([$name]), new Nodes([$node->getNode('expr')]), $node->getTemplateLine());
+            }
+
+            return new SetNode(false, new Node([$name]), new Node([$node->getNode('expr')]), $node->getTemplateLine());
         }
 
         if (!$this->scope->has('domain')) {
@@ -128,6 +127,6 @@
 
     private function getVarName(): string
     {
-        return sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false));
+        return \sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_horizontal_layout.html.twig symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_horizontal_layout.html.twig
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_horizontal_layout.html.twig	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_horizontal_layout.html.twig	2026-05-20 10:56:49.000000000 +0200
@@ -9,8 +9,9 @@
         {%- if expanded is not defined or not expanded -%}
             {%- set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' col-form-label')|trim}) -%}
         {%- endif -%}
-        {%- set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' ' ~ block('form_label_class'))|trim}) -%}
-        {{- parent() -}}
+        <div class="{{ block('form_label_class') }}">
+            {{- parent() -}}
+        </div>
     {%- endif -%}
 {%- endblock form_label %}
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig	2026-05-20 10:56:49.000000000 +0200
@@ -235,7 +235,8 @@
         {%- endif -%}
         <{{ element|default('label') }}{% if label_attr %}{% with { attr: label_attr } %}{{ block('attributes') }}{% endwith %}{% endif %}>
         {{- block('form_label_content') -}}
-        {% block form_label_errors %}{{- form_errors(form) -}}{% endblock form_label_errors %}</{{ element|default('label') }}>
+        </{{ element|default('label') }}>
+        {% block form_label_errors %}{{- form_errors(form) -}}{% endblock form_label_errors %}
     {%- else -%}
         {%- if errors|length > 0 -%}
         <div id="{{ id }}_errors" class="mb-2">
@@ -271,8 +272,8 @@
             {%- if label is not same as(false) -%}
                 {{- block('form_label_content') -}}
             {%- endif -%}
-            {{- form_errors(form) -}}
         </label>
+        {{- form_errors(form) -}}
     {%- endif -%}
 {%- endblock checkbox_radio_label %}
 
@@ -297,7 +298,7 @@
 
 {% block form_errors -%}
     {%- if errors|length > 0 -%}
-        <span class="{% if form is not rootform %}invalid-feedback{% else %}alert alert-danger{% endif %} d-block">
+        <span class="{% if form is not rootform %}invalid-feedback{% else %}alert alert-danger{% endif %} d-block mb-1">
             {%- for error in errors -%}
                 <span class="d-block">
                     <span class="form-error-icon badge badge-danger text-uppercase">{{ 'Error'|trans({}, 'validators') }}</span> <span class="form-error-message">{{ error.message }}</span>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Test/FormLayoutTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Test/FormLayoutTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Test/FormLayoutTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Test/FormLayoutTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,7 @@
 use Symfony\Component\Form\FormRendererInterface;
 use Symfony\Component\Form\FormView;
 use Symfony\Component\Form\Test\FormIntegrationTestCase;
-use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
+use Symfony\Component\Security\Csrf\CsrfTokenManager;
 use Twig\Environment;
 use Twig\Loader\FilesystemLoader;
 
@@ -44,7 +44,7 @@
         }
 
         $rendererEngine = new TwigRendererEngine($this->getThemes(), $environment);
-        $this->renderer = new FormRenderer($rendererEngine, $this->createMock(CsrfTokenManagerInterface::class));
+        $this->renderer = new FormRenderer($rendererEngine, new CsrfTokenManager());
         $this->registerTwigRuntimeLoader($environment, $this->renderer);
     }
 
@@ -57,7 +57,7 @@
             // the top level
             $dom->loadXML('<root>'.$html.'</root>');
         } catch (\Exception $e) {
-            $this->fail(sprintf(
+            $this->fail(\sprintf(
                 "Failed loading HTML:\n\n%s\n\nError: %s",
                 $html,
                 $e->getMessage()
@@ -68,7 +68,7 @@
 
         if ($nodeList->length != $count) {
             $dom->formatOutput = true;
-            $this->fail(sprintf(
+            $this->fail(\sprintf(
                 "Failed asserting that \n\n%s\n\nmatches exactly %s. Matches %s in \n\n%s",
                 $expression,
                 1 == $count ? 'once' : $count.' times',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Test/Traits/RuntimeLoaderProvider.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Test/Traits/RuntimeLoaderProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Test/Traits/RuntimeLoaderProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Test/Traits/RuntimeLoaderProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,18 +11,17 @@
 
 namespace Symfony\Bridge\Twig\Test\Traits;
 
+use Symfony\Component\DependencyInjection\ServiceLocator;
 use Symfony\Component\Form\FormRenderer;
 use Twig\Environment;
-use Twig\RuntimeLoader\RuntimeLoaderInterface;
+use Twig\RuntimeLoader\ContainerRuntimeLoader;
 
 trait RuntimeLoaderProvider
 {
     protected function registerTwigRuntimeLoader(Environment $environment, FormRenderer $renderer)
     {
-        $loader = $this->createMock(RuntimeLoaderInterface::class);
-        $loader->expects($this->any())->method('load')->willReturnMap([
-            ['Symfony\Component\Form\FormRenderer', $renderer],
-        ]);
-        $environment->addRuntimeLoader($loader);
+        $environment->addRuntimeLoader(new ContainerRuntimeLoader(new ServiceLocator([
+            FormRenderer::class => static fn () => $renderer,
+        ])));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/AppVariableTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/AppVariableTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/AppVariableTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/AppVariableTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,11 +15,12 @@
 use Symfony\Bridge\Twig\AppVariable;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
 use Symfony\Component\HttpFoundation\Session\Session;
-use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
-use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
-use Symfony\Component\Security\Core\User\UserInterface;
+use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
+use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
+use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Translation\LocaleSwitcher;
 
 class AppVariableTest extends TestCase
@@ -61,9 +62,9 @@
      */
     public function testGetSession()
     {
-        $request = $this->createMock(Request::class);
-        $request->method('hasSession')->willReturn(true);
-        $request->method('getSession')->willReturn($session = new Session());
+        $session = new Session();
+        $request = new Request();
+        $request->setSession($session);
 
         $this->setRequestStack($request);
 
@@ -86,28 +87,25 @@
 
     public function testGetToken()
     {
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
+        $tokenStorage = new TokenStorage();
         $this->appVariable->setTokenStorage($tokenStorage);
 
-        $token = $this->createMock(TokenInterface::class);
-        $tokenStorage->method('getToken')->willReturn($token);
+        $token = new NullToken();
+        $tokenStorage->setToken($token);
 
         $this->assertEquals($token, $this->appVariable->getToken());
     }
 
     public function testGetUser()
     {
-        $this->setTokenStorage($user = $this->createMock(UserInterface::class));
+        $this->setTokenStorage($user = new InMemoryUser('john', 'password'));
 
         $this->assertEquals($user, $this->appVariable->getUser());
     }
 
     public function testGetLocale()
     {
-        $localeSwitcher = $this->createMock(LocaleSwitcher::class);
-        $this->appVariable->setLocaleSwitcher($localeSwitcher);
-
-        $localeSwitcher->method('getLocale')->willReturn('fr');
+        $this->appVariable->setLocaleSwitcher(new LocaleSwitcher('fr', []));
 
         self::assertEquals('fr', $this->appVariable->getLocale());
     }
@@ -121,16 +119,14 @@
 
     public function testGetTokenWithNoToken()
     {
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $this->appVariable->setTokenStorage($tokenStorage);
+        $this->appVariable->setTokenStorage(new TokenStorage());
 
         $this->assertNull($this->appVariable->getToken());
     }
 
     public function testGetUserWithNoToken()
     {
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $this->appVariable->setTokenStorage($tokenStorage);
+        $this->appVariable->setTokenStorage(new TokenStorage());
 
         $this->assertNull($this->appVariable->getUser());
     }
@@ -301,13 +297,11 @@
 
     protected function setTokenStorage($user)
     {
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
+        $tokenStorage = new TokenStorage();
         $this->appVariable->setTokenStorage($tokenStorage);
 
-        $token = $this->createMock(TokenInterface::class);
-        $tokenStorage->method('getToken')->willReturn($token);
-
-        $token->method('getUser')->willReturn($user);
+        $token = new UsernamePasswordToken($user, 'main');
+        $tokenStorage->setToken($token);
     }
 
     private function setFlashMessages($sessionHasStarted = true)
@@ -317,16 +311,19 @@
             'warning' => ['Warning #1 message'],
             'error' => ['Error #1 message', 'Error #2 message'],
         ];
-        $flashBag = new FlashBag();
-        $flashBag->initialize($flashMessages);
 
-        $session = $this->createMock(Session::class);
-        $session->method('isStarted')->willReturn($sessionHasStarted);
-        $session->method('getFlashBag')->willReturn($flashBag);
-
-        $request = $this->createMock(Request::class);
-        $request->method('hasSession')->willReturn(true);
-        $request->method('getSession')->willReturn($session);
+        $storage = new MockArraySessionStorage();
+        $storage->setSessionData([
+            '_symfony_flashes' => $flashMessages,
+        ]);
+        $session = new Session($storage);
+
+        if ($sessionHasStarted) {
+            $session->start();
+        }
+
+        $request = new Request();
+        $request->setSession($session);
         $this->setRequestStack($request);
 
         return $flashMessages;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Command/DebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Command/DebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Command/DebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Command/DebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,25 +96,24 @@
             'input' => ['name' => 'base.html.twig'],
             'output' => <<<TXT
 
-Matched File
-------------
+                Matched File
+                ------------
 
- Template name "base.html.twig" not found%A
+                 Template name "base.html.twig" not found%A
 
-Configured Paths
-----------------
+                Configured Paths
+                ----------------
 
- No template paths configured for your application%s
+                 No template paths configured for your application%s
 
- ----------- -------------------------------------%A
-  Namespace   Paths%A
- ----------- -------------------------------------%A
-  @Twig       vendors/twig-bundle/Resources/views%e%A
- ----------- -------------------------------------%A
+                 ----------- -------------------------------------%A
+                  Namespace   Paths%A
+                 ----------- -------------------------------------%A
+                  @Twig       vendors/twig-bundle/Resources/views%e%A
+                 ----------- -------------------------------------%A
 
 
-TXT
-            ,
+                TXT,
             'paths' => ['vendors/twig-bundle/Resources/views/' => 'Twig'],
         ];
 
@@ -122,28 +121,27 @@
             'input' => ['name' => '@App/foo.html.twig'],
             'output' => <<<TXT
 
-Matched File
-------------
+                Matched File
+                ------------
 
- Template name "@App/foo.html.twig" not found%A
+                 Template name "@App/foo.html.twig" not found%A
 
-Configured Paths
-----------------
+                Configured Paths
+                ----------------
 
- No template paths configured for "@App" namespace%A
+                 No template paths configured for "@App" namespace%A
 
- ----------- -------------------------------------%A
-  Namespace   Paths%A
- ----------- -------------------------------------%A
-  (None)      templates%e%A
-  %A
-  @Twig       templates/bundles/TwigBundle%e%A
-              vendors/twig-bundle/Resources/views%e%A 
- ----------- -------------------------------------%A
+                 ----------- -------------------------------------%A
+                  Namespace   Paths%A
+                 ----------- -------------------------------------%A
+                  (None)      templates%e%A
+                  %A
+                  @Twig       templates/bundles/TwigBundle%e%A
+                              vendors/twig-bundle/Resources/views%e%A 
+                 ----------- -------------------------------------%A
 
 
-TXT
-            ,
+                TXT,
             'paths' => $defaultPaths,
         ];
 
@@ -151,23 +149,22 @@
             'input' => ['name' => 'base.html.twig'],
             'output' => <<<TXT
 
-Matched File
-------------
+                Matched File
+                ------------
 
- [OK] templates%ebase.html.twig%A
+                 [OK] templates%ebase.html.twig%A
 
-Configured Paths
-----------------
+                Configured Paths
+                ----------------
 
- ----------- ------------%A
-  Namespace   Paths%A
- ----------- ------------%A
-  (None)      templates%e%A
- ----------- ------------%A
+                 ----------- ------------%A
+                  Namespace   Paths%A
+                 ----------- ------------%A
+                  (None)      templates%e%A
+                 ----------- ------------%A
 
 
-TXT
-            ,
+                TXT,
             'paths' => $defaultPaths,
         ];
 
@@ -175,29 +172,28 @@
             'input' => ['name' => '@Twig/error.html.twig'],
             'output' => <<<TXT
 
-Matched File
-------------
+                Matched File
+                ------------
 
- [OK] templates%ebundles%eTwigBundle%eerror.html.twig%A
+                 [OK] templates%ebundles%eTwigBundle%eerror.html.twig%A
 
-Overridden Files
-----------------
+                Overridden Files
+                ----------------
 
- * vendors%etwig-bundle%eResources%eviews%eerror.html.twig
+                 * vendors%etwig-bundle%eResources%eviews%eerror.html.twig
 
-Configured Paths
-----------------
+                Configured Paths
+                ----------------
 
- ----------- -------------------------------------- 
-  Namespace   Paths%A
- ----------- -------------------------------------- 
-  @Twig       templates/bundles/TwigBundle%e%A
-              vendors/twig-bundle/Resources/views%e%A
- ----------- -------------------------------------- 
+                 ----------- -------------------------------------- 
+                  Namespace   Paths%A
+                 ----------- -------------------------------------- 
+                  @Twig       templates/bundles/TwigBundle%e%A
+                              vendors/twig-bundle/Resources/views%e%A
+                 ----------- -------------------------------------- 
 
 
-TXT
-            ,
+                TXT,
             'paths' => $defaultPaths,
         ];
 
@@ -205,22 +201,21 @@
             'input' => ['name' => '@Twg/error.html.twig'],
             'output' => <<<TXT
 
-Matched File
-------------
+                Matched File
+                ------------
 
- Template name "@Twg/error.html.twig" not found%A
+                 Template name "@Twg/error.html.twig" not found%A
 
-Configured Paths
-----------------
+                Configured Paths
+                ----------------
 
- No template paths configured for "@Twg" namespace%A
-%A
-%wDid you mean this?%A
-%w@Twig%A
+                 No template paths configured for "@Twg" namespace%A
+                %A
+                %wDid you mean this?%A
+                %w@Twig%A
 
 
-TXT
-            ,
+                TXT,
             'paths' => $defaultPaths,
         ];
 
@@ -228,28 +223,27 @@
             'input' => ['name' => '@Twig/eror.html.twig'],
             'output' => <<<TXT
 
-Matched File
-------------
+                Matched File
+                ------------
 
- Template name "@Twig/eror.html.twig" not found%A
-%A
-%wDid you mean one of these?%A
-%w@Twig/base.html.twig%A
-%w@Twig/error.html.twig%A
-
-Configured Paths
-----------------
-
- ----------- -------------------------------------- 
-  Namespace   Paths                                 
- ----------- -------------------------------------- 
-  @Twig       templates/bundles/TwigBundle%e%A
-              vendors/twig-bundle/Resources/views%e%A
- ----------- -------------------------------------- 
+                 Template name "@Twig/eror.html.twig" not found%A
+                %A
+                %wDid you mean one of these?%A
+                %w@Twig/base.html.twig%A
+                %w@Twig/error.html.twig%A
+
+                Configured Paths
+                ----------------
+
+                 ----------- -------------------------------------- 
+                  Namespace   Paths                                 
+                 ----------- -------------------------------------- 
+                  @Twig       templates/bundles/TwigBundle%e%A
+                              vendors/twig-bundle/Resources/views%e%A
+                 ----------- -------------------------------------- 
 
 
-TXT
-            ,
+                TXT,
             'paths' => $defaultPaths,
         ];
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -165,7 +165,7 @@
         } else {
             $options = ['deprecated' => true];
         }
-        $environment->addFilter(new TwigFilter('deprecated_filter', fn ($v) => $v, $options));
+        $environment->addFilter(new TwigFilter('deprecated_filter', static fn ($v) => $v, $options));
 
         $command = new LintCommand($environment);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/ErrorRenderer/TwigErrorRendererTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/ErrorRenderer/TwigErrorRendererTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/ErrorRenderer/TwigErrorRendererTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/ErrorRenderer/TwigErrorRendererTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,6 @@
     {
         $exception = new \Exception();
 
-        $twig = $this->createMock(Environment::class);
         $nativeRenderer = $this->createMock(HtmlErrorRenderer::class);
         $nativeRenderer
             ->expects($this->once())
@@ -33,7 +32,7 @@
             ->with($exception)
         ;
 
-        (new TwigErrorRenderer($twig, $nativeRenderer, true))->render(new \Exception());
+        (new TwigErrorRenderer(new Environment(new ArrayLoader()), $nativeRenderer, true))->render(new \Exception());
     }
 
     public function testFallbackToNativeRendererIfCustomTemplateNotFound()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/EventListener/TemplateAttributeListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/EventListener/TemplateAttributeListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/EventListener/TemplateAttributeListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/EventListener/TemplateAttributeListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,7 @@
 use Symfony\Component\HttpKernel\Event\ViewEvent;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Twig\Environment;
+use Twig\Loader\ArrayLoader;
 
 class TemplateAttributeListenerTest extends TestCase
 {
@@ -43,7 +44,7 @@
         ;
 
         $request = new Request();
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $controllerArgumentsEvent = new ControllerArgumentsEvent($kernel, [new TemplateAttributeController(), 'foo'], ['Bar'], $request, null);
         $listener = new TemplateAttributeListener($twig);
 
@@ -68,9 +69,11 @@
     public function testForm()
     {
         $request = new Request();
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $controllerArgumentsEvent = new ControllerArgumentsEvent($kernel, [new TemplateAttributeController(), 'foo'], [], $request, null);
-        $listener = new TemplateAttributeListener($this->createMock(Environment::class));
+        $listener = new TemplateAttributeListener(new Environment(new ArrayLoader([
+            'templates/foo.html.twig' => '',
+        ])));
 
         $form = $this->createMock(FormInterface::class);
         $form->expects($this->once())->method('createView');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap3HorizontalLayoutTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap3HorizontalLayoutTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap3HorizontalLayoutTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap3HorizontalLayoutTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -163,9 +163,9 @@
     public function testStartTagForMultipartForm()
     {
         $form = $this->factory->createBuilder('Symfony\Component\Form\Extension\Core\Type\FormType', null, [
-                'method' => 'get',
-                'action' => 'http://example.com/directory',
-            ])
+            'method' => 'get',
+            'action' => 'http://example.com/directory',
+        ])
             ->add('file', 'Symfony\Component\Form\Extension\Core\Type\FileType')
             ->getForm();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap3LayoutTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap3LayoutTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap3LayoutTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap3LayoutTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -1013,7 +1013,7 @@
     {
         $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', '&a', [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b', 'Choice&C' => '&c'],
-            'choice_label' => function ($choice, $label, $value) {
+            'choice_label' => static function ($choice, $label, $value) {
                 if ('&b' === $choice) {
                     return false;
                 }
@@ -1063,7 +1063,7 @@
     {
         $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', '&a', [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b'],
-            'choice_label' => fn () => false,
+            'choice_label' => static fn () => false,
             'multiple' => false,
             'expanded' => true,
         ]);
@@ -1376,7 +1376,7 @@
     {
         $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', ['&a'], [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b', 'Choice&C' => '&c'],
-            'choice_label' => function ($choice, $label, $value) {
+            'choice_label' => static function ($choice, $label, $value) {
                 if ('&b' === $choice) {
                     return false;
                 }
@@ -1426,7 +1426,7 @@
     {
         $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', ['&a'], [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b'],
-            'choice_label' => fn () => false,
+            'choice_label' => static fn () => false,
             'multiple' => true,
             'expanded' => true,
         ]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Bridge\Twig\Tests\Extension;
 
 use Symfony\Component\Form\FormError;
+use Symfony\Component\Translation\TranslatableMessage;
 
 /**
  * Abstract class providing test cases for the Bootstrap 4 horizontal Twig form theme.
@@ -20,6 +21,211 @@
  */
 abstract class AbstractBootstrap4HorizontalLayoutTestCase extends AbstractBootstrap4LayoutTestCase
 {
+    public function testLabel()
+    {
+        $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType');
+        $view = $form->createView();
+        $this->renderWidget($view, ['label' => 'foo']);
+        $html = $this->renderLabel($view);
+
+        $this->assertMatchesXpath($html,
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [.="[trans]Name[/trans]"]
+    ]
+'
+        );
+    }
+
+    public function testLabelWithoutTranslation()
+    {
+        $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
+            'translation_domain' => false,
+        ]);
+
+        $this->assertMatchesXpath($this->renderLabel($form->createView()),
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [.="Name"]
+    ]
+'
+        );
+    }
+
+    public function testLabelWithCustomTextPassedAsOption()
+    {
+        $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
+            'label' => 'Custom label',
+        ]);
+        $html = $this->renderLabel($form->createView());
+
+        $this->assertMatchesXpath($html,
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [.="[trans]Custom label[/trans]"]
+    ]
+'
+        );
+    }
+
+    public function testLabelWithCustomTextPassedDirectly()
+    {
+        $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType');
+        $html = $this->renderLabel($form->createView(), 'Custom label');
+
+        $this->assertMatchesXpath($html,
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [.="[trans]Custom label[/trans]"]
+    ]
+'
+        );
+    }
+
+    public function testLabelWithCustomTextPassedAsOptionAndDirectly()
+    {
+        $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
+            'label' => 'Custom label',
+        ]);
+        $html = $this->renderLabel($form->createView(), 'Overridden label');
+
+        $this->assertMatchesXpath($html,
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [.="[trans]Overridden label[/trans]"]
+    ]
+'
+        );
+    }
+
+    public function testLabelFormatName()
+    {
+        $form = $this->factory->createNamedBuilder('myform')
+            ->add('myfield', 'Symfony\Component\Form\Extension\Core\Type\TextType')
+            ->getForm();
+        $view = $form->get('myfield')->createView();
+        $html = $this->renderLabel($view, null, ['label_format' => 'form.%name%']);
+
+        $this->assertMatchesXpath($html,
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="myform_myfield"]
+        [.="[trans]form.myfield[/trans]"]
+    ]
+'
+        );
+    }
+
+    public function testLabelFormatId()
+    {
+        $form = $this->factory->createNamedBuilder('myform')
+            ->add('myfield', 'Symfony\Component\Form\Extension\Core\Type\TextType')
+            ->getForm();
+        $view = $form->get('myfield')->createView();
+        $html = $this->renderLabel($view, null, ['label_format' => 'form.%id%']);
+
+        $this->assertMatchesXpath($html,
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="myform_myfield"]
+        [.="[trans]form.myform_myfield[/trans]"]
+    ]
+'
+        );
+    }
+
+    public function testLabelFormatAsFormOption()
+    {
+        $options = ['label_format' => 'form.%name%'];
+
+        $form = $this->factory->createNamedBuilder('myform', 'Symfony\Component\Form\Extension\Core\Type\FormType', null, $options)
+            ->add('myfield', 'Symfony\Component\Form\Extension\Core\Type\TextType')
+            ->getForm();
+        $view = $form->get('myfield')->createView();
+        $html = $this->renderLabel($view);
+
+        $this->assertMatchesXpath($html,
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="myform_myfield"]
+        [.="[trans]form.myfield[/trans]"]
+    ]
+'
+        );
+    }
+
+    public function testLabelFormatOverriddenOption()
+    {
+        $options = ['label_format' => 'form.%name%'];
+
+        $form = $this->factory->createNamedBuilder('myform', 'Symfony\Component\Form\Extension\Core\Type\FormType', null, $options)
+            ->add('myfield', 'Symfony\Component\Form\Extension\Core\Type\TextType', ['label_format' => 'field.%name%'])
+            ->getForm();
+        $view = $form->get('myfield')->createView();
+        $html = $this->renderLabel($view);
+
+        $this->assertMatchesXpath($html,
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="myform_myfield"]
+        [.="[trans]field.myfield[/trans]"]
+    ]
+'
+        );
+    }
+
+    public function testLabelWithTranslationParameters()
+    {
+        $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType');
+        $html = $this->renderLabel($form->createView(), 'Address is %address%', [
+            'label_translation_parameters' => [
+                '%address%' => 'Paris, rue de la Paix',
+            ],
+        ]);
+
+        $this->assertMatchesXpath($html,
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [.="[trans]Address is Paris, rue de la Paix[/trans]"]
+    ]
+'
+        );
+    }
+
+    public function testLabelWithTranslatableMessage()
+    {
+        $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
+            'label' => new TranslatableMessage('foo'),
+        ]);
+        $html = $this->renderLabel($form->createView());
+
+        $this->assertMatchesXpath($html,
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [.="[trans]foo[/trans]"]
+    ]
+'
+        );
+    }
+
     public function testRow()
     {
         $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType');
@@ -30,15 +236,16 @@
         $this->assertMatchesXpath($html,
             '/div
     [
-        ./label[@for="name"]
-        [
-            ./span[@class="alert alert-danger d-block"]
+        ./div
+            [@class="col-sm-2"]
+            [./label[@for="name"]]
+            [./span[@class="alert alert-danger d-block mb-1"]
                 [./span[@class="d-block"]
                     [./span[.="[trans]Error[/trans]"]]
                     [./span[.="[trans]Error![/trans]"]]
                 ]
                 [count(./span)=1]
-        ]
+            ]
         /following-sibling::div[./input[@id="name"]]
     ]
 '
@@ -53,9 +260,12 @@
         $html = $this->renderLabel($view);
 
         $this->assertMatchesXpath($html,
-            '/legend
-    [@class="col-form-label col-sm-2 col-form-label required"]
-    [.="[trans]Name[/trans]"]
+            '/div
+    [@class="col-sm-2"]
+    [./legend
+        [@class="col-form-label col-form-label required"]
+        [.="[trans]Name[/trans]"]
+    ]
 '
         );
     }
@@ -70,9 +280,12 @@
         ]);
 
         $this->assertMatchesXpath($html,
-            '/label
-    [@for="name"]
-    [@class="col-form-label col-sm-2 required"]
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [@class="col-form-label required"]
+    ]
 '
         );
     }
@@ -87,9 +300,12 @@
         ]);
 
         $this->assertMatchesXpath($html,
-            '/label
-    [@for="name"]
-    [@class="my&class col-form-label col-sm-2 required"]
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [@class="my&class col-form-label required"]
+    ]
 '
         );
     }
@@ -104,10 +320,13 @@
         ]);
 
         $this->assertMatchesXpath($html,
-            '/label
-    [@for="name"]
-    [@class="my&class col-form-label col-sm-2 required"]
-    [.="[trans]Custom label[/trans]"]
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [@class="my&class col-form-label required"]
+        [.="[trans]Custom label[/trans]"]
+    ]
 '
         );
     }
@@ -124,10 +343,13 @@
         ]);
 
         $this->assertMatchesXpath($html,
-            '/label
-    [@for="name"]
-    [@class="my&class col-form-label col-sm-2 required"]
-    [.="[trans]Custom label[/trans]"]
+            '/div
+    [@class="col-sm-2"]
+    [./label
+        [@for="name"]
+        [@class="my&class col-form-label required"]
+        [.="[trans]Custom label[/trans]"]
+    ]
 '
         );
     }
@@ -144,8 +366,8 @@
             ],
         ]);
 
-        $this->assertMatchesXpath($html, '/label[@for="name"][@class="my&class col-form-label col-sm-2 required"][.="[trans]<b>Bolded label</b>[/trans]"]');
-        $this->assertMatchesXpath($html, '/label[@for="name"][@class="my&class col-form-label col-sm-2 required"]/b[.="Bolded label"]', 0);
+        $this->assertMatchesXpath($html, '/div[@class="col-sm-2"]/label[@for="name"][@class="my&class col-form-label required"][.="[trans]<b>Bolded label</b>[/trans]"]');
+        $this->assertMatchesXpath($html, '/div[@class="col-sm-2"]/label[@for="name"][@class="my&class col-form-label required"]/b[.="Bolded label"]', 0);
     }
 
     public function testLabelHtmlIsTrue()
@@ -161,8 +383,8 @@
             ],
         ]);
 
-        $this->assertMatchesXpath($html, '/label[@for="name"][@class="my&class col-form-label col-sm-2 required"][.="[trans]<b>Bolded label</b>[/trans]"]', 0);
-        $this->assertMatchesXpath($html, '/label[@for="name"][@class="my&class col-form-label col-sm-2 required"]/b[.="Bolded label"]');
+        $this->assertMatchesXpath($html, '/div[@class="col-sm-2"]/label[@for="name"][@class="my&class col-form-label required"][.="[trans]<b>Bolded label</b>[/trans]"]', 0);
+        $this->assertMatchesXpath($html, '/div[@class="col-sm-2"]/label[@for="name"][@class="my&class col-form-label required"]/b[.="Bolded label"]');
     }
 
     public function testLegendOnExpandedType()
@@ -177,9 +399,12 @@
         $html = $this->renderLabel($view);
 
         $this->assertMatchesXpath($html,
-            '/legend
-    [@class="col-sm-2 col-form-label required"]
-    [.="[trans]Custom label[/trans]"]
+            '/div
+    [@class="col-sm-2"]
+    [./legend
+        [@class="col-form-label required"]
+        [.="[trans]Custom label[/trans]"]
+    ]
 '
         );
     }
@@ -214,9 +439,9 @@
     public function testStartTagForMultipartForm()
     {
         $form = $this->factory->createBuilder('Symfony\Component\Form\Extension\Core\Type\FormType', null, [
-                'method' => 'get',
-                'action' => 'http://example.com/directory',
-            ])
+            'method' => 'get',
+            'action' => 'http://example.com/directory',
+        ])
             ->add('file', 'Symfony\Component\Form\Extension\Core\Type\FileType')
             ->getForm();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,14 +41,12 @@
             '/div
     [
         ./label[@for="name"]
-        [
-            ./span[@class="alert alert-danger d-block"]
-                [./span[@class="d-block"]
-                    [./span[.="[trans]Error[/trans]"]]
-                    [./span[.="[trans]Error![/trans]"]]
-                ]
-                [count(./span)=1]
+        /following-sibling::span[@class="alert alert-danger d-block mb-1"]
+        [./span[@class="d-block"]
+            [./span[.="[trans]Error[/trans]"]]
+            [./span[.="[trans]Error![/trans]"]]
         ]
+        [count(./span)=1]
         /following-sibling::input[@id="name"]
     ]
 '
@@ -324,7 +322,7 @@
 
         $this->assertMatchesXpath($html,
             '/span
-    [@class="alert alert-danger d-block"]
+    [@class="alert alert-danger d-block mb-1"]
     [
         ./span[@class="d-block"]
             [./span[.="[trans]Error[/trans]"]]
@@ -536,7 +534,7 @@
     {
         $form = $this->factory->createNamed('name', ChoiceType::class, '&a', [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b', 'Choice&C' => '&c'],
-            'choice_label' => function ($choice, $label, $value) {
+            'choice_label' => static function ($choice, $label, $value) {
                 if ('&b' === $choice) {
                     return false;
                 }
@@ -580,7 +578,7 @@
     {
         $form = $this->factory->createNamed('name', ChoiceType::class, '&a', [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b'],
-            'choice_label' => fn () => false,
+            'choice_label' => static fn () => false,
             'multiple' => false,
             'expanded' => true,
         ]);
@@ -855,7 +853,7 @@
     {
         $form = $this->factory->createNamed('name', ChoiceType::class, ['&a'], [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b', 'Choice&C' => '&c'],
-            'choice_label' => function ($choice, $label, $value) {
+            'choice_label' => static function ($choice, $label, $value) {
                 if ('&b' === $choice) {
                     return false;
                 }
@@ -899,7 +897,7 @@
     {
         $form = $this->factory->createNamed('name', ChoiceType::class, ['&a'], [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b'],
-            'choice_label' => fn () => false,
+            'choice_label' => static fn () => false,
             'multiple' => true,
             'expanded' => true,
         ]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractDivLayoutTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractDivLayoutTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractDivLayoutTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractDivLayoutTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -471,7 +471,7 @@
 
     public function testCsrf()
     {
-        $this->csrfTokenManager->expects($this->any())
+        $this->csrfTokenManager
             ->method('getToken')
             ->willReturn(new CsrfToken('token_id', 'foo&bar'));
 
@@ -691,9 +691,9 @@
     public function testChoiceRowWithCustomBlock()
     {
         $form = $this->factory->createNamedBuilder('name_c', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', 'a', [
-                'choices' => ['ChoiceA' => 'a', 'ChoiceB' => 'b'],
-                'expanded' => true,
-            ])
+            'choices' => ['ChoiceA' => 'a', 'ChoiceB' => 'b'],
+            'expanded' => true,
+        ])
             ->getForm();
 
         $this->assertWidgetMatchesXpath($form->createView(), [],
@@ -732,7 +732,7 @@
     {
         $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', '&a', [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b', 'Choice&C' => '&c'],
-            'choice_label' => function ($choice, $label, $value) {
+            'choice_label' => static function ($choice, $label, $value) {
                 if ('&b' === $choice) {
                     return false;
                 }
@@ -763,7 +763,7 @@
     {
         $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', '&a', [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b'],
-            'choice_label' => fn () => false,
+            'choice_label' => static fn () => false,
             'multiple' => false,
             'expanded' => true,
         ]);
@@ -807,7 +807,7 @@
     {
         $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', ['&a'], [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b', 'Choice&C' => '&c'],
-            'choice_label' => function ($choice, $label, $value) {
+            'choice_label' => static function ($choice, $label, $value) {
                 if ('&b' === $choice) {
                     return false;
                 }
@@ -838,7 +838,7 @@
     {
         $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', ['&a'], [
             'choices' => ['Choice&A' => '&a', 'Choice&B' => '&b'],
-            'choice_label' => fn () => false,
+            'choice_label' => static fn () => false,
             'multiple' => true,
             'expanded' => true,
         ]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
 
 namespace Symfony\Bridge\Twig\Tests\Extension;
 
-use PHPUnit\Framework\MockObject\MockObject;
+use PHPUnit\Framework\MockObject\Stub;
 use Symfony\Bridge\Twig\Test\FormLayoutTestCase;
 use Symfony\Component\Form\Extension\Core\Type\PercentType;
 use Symfony\Component\Form\Extension\Core\Type\SubmitType;
@@ -25,7 +25,7 @@
 
 abstract class AbstractLayoutTestCase extends FormLayoutTestCase
 {
-    protected MockObject&CsrfTokenManagerInterface $csrfTokenManager;
+    protected Stub&CsrfTokenManagerInterface $csrfTokenManager;
     protected array $testableFeatures = [];
 
     private string $defaultLocale;
@@ -39,7 +39,7 @@
         $this->defaultLocale = \Locale::getDefault();
         \Locale::setDefault('en');
 
-        $this->csrfTokenManager = $this->createMock(CsrfTokenManagerInterface::class);
+        $this->csrfTokenManager = $this->createStub(CsrfTokenManagerInterface::class);
 
         parent::setUp();
     }
@@ -310,8 +310,8 @@
     public function testLabelWithoutTranslationOnButton()
     {
         $form = $this->factory->createNamedBuilder('myform', 'Symfony\Component\Form\Extension\Core\Type\FormType', null, [
-                'translation_domain' => false,
-            ])
+            'translation_domain' => false,
+        ])
             ->add('mybutton', 'Symfony\Component\Form\Extension\Core\Type\ButtonType')
             ->getForm();
         $view = $form->get('mybutton')->createView();
@@ -2393,9 +2393,9 @@
     public function testStartTagForMultipartForm()
     {
         $form = $this->factory->createBuilder('Symfony\Component\Form\Extension\Core\Type\FormType', null, [
-                'method' => 'get',
-                'action' => 'http://example.com/directory',
-            ])
+            'method' => 'get',
+            'action' => 'http://example.com/directory',
+        ])
             ->add('file', 'Symfony\Component\Form\Extension\Core\Type\FileType')
             ->getForm();
 
@@ -2540,8 +2540,8 @@
     public function testAttributesNotTranslatedWhenTranslationDomainIsFalse()
     {
         $view = $this->factory->createNamedBuilder('name', 'Symfony\Component\Form\Extension\Core\Type\FormType', null, [
-                'translation_domain' => false,
-            ])
+            'translation_domain' => false,
+        ])
             ->add('firstName', 'Symfony\Component\Form\Extension\Core\Type\TextType', ['attr' => ['title' => 'Foo']])
             ->add('lastName', 'Symfony\Component\Form\Extension\Core\Type\TextType', ['attr' => ['placeholder' => 'Bar']])
             ->getForm()
@@ -2648,7 +2648,7 @@
 
     public function testHelpWithTranslatableInterface()
     {
-        $message = new class() implements TranslatableInterface {
+        $message = new class implements TranslatableInterface {
             public function trans(TranslatorInterface $translator, ?string $locale = null): string
             {
                 return $translator->trans('foo');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractTableLayoutTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractTableLayoutTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractTableLayoutTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/AbstractTableLayoutTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -337,7 +337,7 @@
 
     public function testCsrf()
     {
-        $this->csrfTokenManager->expects($this->any())
+        $this->csrfTokenManager
             ->method('getToken')
             ->willReturn(new CsrfToken('token_id', 'foo&bar'));
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
 {
     public function testFormatFile()
     {
-        $expected = sprintf('<a href="proto://foobar%s#&amp;line=25" title="Click to open this file" class="file_link">%s at line 25</a>', substr(__FILE__, 5), __FILE__);
+        $expected = \sprintf('<a href="proto://foobar%s#&amp;line=25" title="Click to open this file" class="file_link">%s at line 25</a>', substr(__FILE__, 5), __FILE__);
         $this->assertEquals($expected, $this->getExtension()->formatFile(__FILE__, 25));
     }
 
@@ -38,16 +38,16 @@
         ];
 
         $template = <<<'TWIG'
-{{ 'Bare'|abbr_class }}
-{{ fqcn|abbr_class }}
-{{ xss|abbr_class }}
-TWIG;
+            {{ 'Bare'|abbr_class }}
+            {{ fqcn|abbr_class }}
+            {{ xss|abbr_class }}
+            TWIG;
 
         $expected = <<<'HTML'
-<abbr title="Bare">Bare</abbr>
-<abbr title="F\Q\N\Foo">Foo</abbr>
-<abbr title="&lt;script&gt;">&lt;script&gt;</abbr>
-HTML;
+            <abbr title="Bare">Bare</abbr>
+            <abbr title="F\Q\N\Foo">Foo</abbr>
+            <abbr title="&lt;script&gt;">&lt;script&gt;</abbr>
+            HTML;
 
         $this->assertEquals($expected, $this->render($template, $data));
     }
@@ -60,20 +60,20 @@
         ];
 
         $template = <<<'TWIG'
-{{ 'Bare::Method'|abbr_method }}
-{{ fqcn|abbr_method }}
-{{ 'Closure'|abbr_method }}
-{{ 'Method'|abbr_method }}
-{{ xss|abbr_method }}
-TWIG;
+            {{ 'Bare::Method'|abbr_method }}
+            {{ fqcn|abbr_method }}
+            {{ 'Closure'|abbr_method }}
+            {{ 'Method'|abbr_method }}
+            {{ xss|abbr_method }}
+            TWIG;
 
         $expected = <<<'HTML'
-<abbr title="Bare">Bare</abbr>::Method()
-<abbr title="F\Q\N\Foo">Foo</abbr>::Method()
-<abbr title="Closure">Closure</abbr>
-<abbr title="Method">Method</abbr>()
-<abbr title="&lt;script&gt;">&lt;script&gt;</abbr>()
-HTML;
+            <abbr title="Bare">Bare</abbr>::Method()
+            <abbr title="F\Q\N\Foo">Foo</abbr>::Method()
+            <abbr title="Closure">Closure</abbr>
+            <abbr title="Method">Method</abbr>()
+            <abbr title="&lt;script&gt;">&lt;script&gt;</abbr>()
+            HTML;
 
         $this->assertEquals($expected, $this->render($template, $data));
     }
@@ -100,18 +100,18 @@
         ];
 
         $template = <<<'TWIG'
-{{ args|format_args }}
-{{ xss|format_args }}
-{{ args|format_args_as_text }}
-{{ xss|format_args_as_text }}
-TWIG;
+            {{ args|format_args }}
+            {{ xss|format_args }}
+            {{ args|format_args_as_text }}
+            {{ xss|format_args_as_text }}
+            TWIG;
 
         $expected = <<<'HTML'
-<em>object</em>(<abbr title="Foo">Foo</abbr>), <em>array</em>('foo', <em>null</em>), <em>resource</em>, 'bar', 123, true
-<em>object</em>(<abbr title="&lt;Foo&gt;">&lt;Foo&gt;</abbr>), <em>array</em>('&lt;foo&gt;'), '&lt;bar&gt;', 123, true, '&lt;script&gt;'
-object(Foo), array(&#039;foo&#039;, null), resource, &#039;bar&#039;, 123, true
-object(&amp;lt;Foo&amp;gt;), array(&#039;&amp;lt;foo&amp;gt;&#039;), &#039;&amp;lt;bar&amp;gt;&#039;, 123, true, &#039;&amp;lt;script&amp;gt;&#039;
-HTML;
+            <em>object</em>(<abbr title="Foo">Foo</abbr>), <em>array</em>('foo', <em>null</em>), <em>resource</em>, 'bar', 123, true
+            <em>object</em>(<abbr title="&lt;Foo&gt;">&lt;Foo&gt;</abbr>), <em>array</em>('&lt;foo&gt;'), '&lt;bar&gt;', 123, true, '&lt;script&gt;'
+            object(Foo), array(&#039;foo&#039;, null), resource, &#039;bar&#039;, 123, true
+            object(&amp;lt;Foo&amp;gt;), array(&#039;&amp;lt;foo&amp;gt;&#039;), &#039;&amp;lt;bar&amp;gt;&#039;, 123, true, &#039;&amp;lt;script&amp;gt;&#039;
+            HTML;
 
         $this->assertEquals($expected, $this->render($template, $data));
     }
@@ -119,29 +119,135 @@
     public function testFormatFileIntegration()
     {
         $template = <<<'TWIG'
-{{ 'foo/bar/baz.php'|format_file(21) }}
-TWIG;
+            {{ 'foo/bar/baz.php'|format_file(21) }}
+            TWIG;
 
         $expected = <<<'HTML'
-<a href="proto://foo/bar/baz.php#&amp;line=21" title="Click to open this file" class="file_link">foo/bar/baz.php at line 21</a>
-HTML;
+            <a href="proto://foo/bar/baz.php#&amp;line=21" title="Click to open this file" class="file_link">foo/bar/baz.php at line 21</a>
+            HTML;
 
         $this->assertEquals($expected, $this->render($template));
     }
 
+    /**
+     * @dataProvider fileExcerptIntegrationProvider
+     */
+    public function testFileExcerptIntegration(string $expected, array $data)
+    {
+        $template = <<<'TWIG'
+            {{ file_path|file_excerpt(line, src_context) }}
+            TWIG;
+        $html = $this->render($template, $data);
+
+        // highlight_file function output changed sing PHP 8.3
+        // see https://github.com/php/php-src/blob/e2667f17bc24e3cd200bb3eda457f566f1f77f8f/UPGRADING#L239-L242
+        if (\PHP_VERSION_ID < 80300) {
+            $html = str_replace('&nbsp;', ' ', $html);
+        }
+
+        $html = html_entity_decode($html);
+
+        $this->assertEquals($expected, $html);
+    }
+
+    public static function fileExcerptIntegrationProvider()
+    {
+        $fixturesPath = \dirname(__DIR__).\DIRECTORY_SEPARATOR.'Fixtures';
+
+        yield 'php file' => [
+            'expected' => <<<'HTML'
+                <ol start="1"><li><a class="anchor" id="line1"></a><code><span style="color: #0000BB"><?php</span></code></li>
+                <li><a class="anchor" id="line2"></a><code><span style="color: #0000BB"></span></code></li>
+                <li><a class="anchor" id="line3"></a><code><span style="color: #0000BB"></span><span style="color: #007700">echo </span><span style="color: #DD0000">'Hello'</span><span style="color: #007700">;</span></code></li>
+                <li><a class="anchor" id="line4"></a><code><span style="color: #007700">echo </span><span style="color: #DD0000">'World!'</span><span style="color: #007700">;</span></code></li>
+                <li><a class="anchor" id="line5"></a><code><span style="color: #007700"></span></code></li></ol>
+                HTML,
+            'data' => [
+                'file_path' => $fixturesPath.\DIRECTORY_SEPARATOR.'hello_world.php',
+                'line' => 0,
+                'src_context' => 3,
+            ],
+        ];
+
+        yield 'php file with selected line and no source context' => [
+            'expected' => <<<'HTML'
+                <ol start="1"><li class="selected"><a class="anchor" id="line1"></a><code><span style="color: #0000BB"><?php</span></code></li>
+                <li><a class="anchor" id="line2"></a><code><span style="color: #0000BB"></span></code></li>
+                <li><a class="anchor" id="line3"></a><code><span style="color: #0000BB"></span><span style="color: #007700">echo </span><span style="color: #DD0000">'Hello'</span><span style="color: #007700">;</span></code></li>
+                <li><a class="anchor" id="line4"></a><code><span style="color: #007700">echo </span><span style="color: #DD0000">'World!'</span><span style="color: #007700">;</span></code></li>
+                <li><a class="anchor" id="line5"></a><code><span style="color: #007700"></span></code></li></ol>
+                HTML,
+            'data' => [
+                'file_path' => $fixturesPath.\DIRECTORY_SEPARATOR.'hello_world.php',
+                'line' => 1,
+                'src_context' => -1,
+            ],
+        ];
+
+        yield 'php file excerpt with selected line and custom source context' => [
+            'expected' => <<<'HTML'
+                <ol start="2"><li class="selected"><a class="anchor" id="line3"></a><code><span style="color: #0000BB"></span><span style="color: #007700">echo </span><span style="color: #DD0000">'Hello'</span><span style="color: #007700">;</span></code></li>
+                <li><a class="anchor" id="line4"></a><code><span style="color: #007700">echo </span><span style="color: #DD0000">'World!'</span><span style="color: #007700">;</span></code></li>
+                <li><a class="anchor" id="line5"></a><code><span style="color: #007700"></span></code></li></ol>
+                HTML,
+            'data' => [
+                'file_path' => $fixturesPath.\DIRECTORY_SEPARATOR.'hello_world.php',
+                'line' => 3,
+                'src_context' => 1,
+            ],
+        ];
+
+        yield 'php file excerpt with out of bound selected line' => [
+            'expected' => <<<'HTML'
+                <ol start="99"></ol>
+                HTML,
+            'data' => [
+                'file_path' => $fixturesPath.\DIRECTORY_SEPARATOR.'hello_world.php',
+                'line' => 100,
+                'src_context' => 1,
+            ],
+        ];
+
+        yield 'json file' => [
+            'expected' => <<<'HTML'
+                <ol start="1"><li><a class="anchor" id="line1"></a><code>[</code></li>
+                <li><a class="anchor" id="line2"></a><code>  "Hello",</code></li>
+                <li><a class="anchor" id="line3"></a><code>  "World!"</code></li>
+                <li><a class="anchor" id="line4"></a><code>]</code></li>
+                <li><a class="anchor" id="line5"></a><code></code></li></ol>
+                HTML,
+            'data' => [
+                'file_path' => $fixturesPath.\DIRECTORY_SEPARATOR.'hello_world.json',
+                'line' => 0,
+                'src_context' => 3,
+            ],
+        ];
+    }
+
+    public function testFileExcerptEscapesNonPhpContents()
+    {
+        $file = \dirname(__DIR__).\DIRECTORY_SEPARATOR.'Fixtures'.\DIRECTORY_SEPARATOR.'xss.html';
+
+        $html = $this->getExtension()->fileExcerpt($file, 1);
+
+        $this->assertStringNotContainsString('<script>', $html);
+        $this->assertStringContainsString('&lt;script&gt;alert(1)&lt;/script&gt;', $html);
+        $this->assertStringContainsString('&amp; &quot;quoted&quot; &lt;tags&gt;', $html);
+    }
+
     public function testFormatFileFromTextIntegration()
     {
         $template = <<<'TWIG'
-{{ 'in "foo/bar/baz.php" at line 21'|format_file_from_text }}
-{{ 'in &quot;foo/bar/baz.php&quot; on line 21'|format_file_from_text }}
-{{ 'in "<script>" on line 21'|format_file_from_text }}
-TWIG;
+            {{ 'in "foo/bar/baz.php" at line 21'|format_file_from_text }}
+            {{ 'in &quot;foo/bar/baz.php&quot; on line 21'|format_file_from_text }}
+            {{ 'in "<script>" on line 21'|format_file_from_text }}
+            TWIG;
 
         $expected = <<<'HTML'
-in <a href="proto://foo/bar/baz.php#&amp;line=21" title="Click to open this file" class="file_link">foo/bar/baz.php at line 21</a>
-in <a href="proto://foo/bar/baz.php#&amp;line=21" title="Click to open this file" class="file_link">foo/bar/baz.php at line 21</a>
-in <a href="proto://&lt;script&gt;#&amp;line=21" title="Click to open this file" class="file_link">&lt;script&gt; at line 21</a>
-HTML;
+            in <a href="proto://foo/bar/baz.php#&amp;line=21" title="Click to open this file" class="file_link">foo/bar/baz.php at line 21</a>
+            in <a href="proto://foo/bar/baz.php#&amp;line=21" title="Click to open this file" class="file_link">foo/bar/baz.php at line 21</a>
+            in <a href="proto://&lt;script&gt;#&amp;line=21" title="Click to open this file" class="file_link">&lt;script&gt; at line 21</a>
+            HTML;
 
         $this->assertEquals($expected, $this->render($template));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/DumpExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/DumpExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/DumpExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/DumpExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,6 @@
 use Symfony\Component\VarDumper\VarDumper;
 use Twig\Environment;
 use Twig\Loader\ArrayLoader;
-use Twig\Loader\LoaderInterface;
 
 class DumpExtensionTest extends TestCase
 {
@@ -37,7 +36,7 @@
 
         $dumped = null;
         $exception = null;
-        $prevDumper = VarDumper::setHandler(function ($var) use (&$dumped) { $dumped = $var; });
+        $prevDumper = VarDumper::setHandler(static function ($var) use (&$dumped) { $dumped = $var; });
 
         try {
             $this->assertEquals($expectedOutput, $twig->render('template'));
@@ -68,7 +67,7 @@
     public function testDump($context, $args, $expectedOutput, $debug = true)
     {
         $extension = new DumpExtension(new VarCloner());
-        $twig = new Environment($this->createMock(LoaderInterface::class), [
+        $twig = new Environment(new ArrayLoader(), [
             'debug' => $debug,
             'cache' => false,
             'optimizations' => 0,
@@ -113,7 +112,7 @@
     public function testCustomDumper()
     {
         $output = '';
-        $lineDumper = function ($line) use (&$output) {
+        $lineDumper = static function ($line) use (&$output) {
             $output .= $line;
         };
 
@@ -125,7 +124,7 @@
             '</pre><script>Sfdump("%s")</script>'
         );
         $extension = new DumpExtension(new VarCloner(), $dumper);
-        $twig = new Environment($this->createMock(LoaderInterface::class), [
+        $twig = new Environment(new ArrayLoader(), [
             'debug' => true,
             'cache' => false,
             'optimizations' => 0,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/Fixtures/StubTranslator.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/Fixtures/StubTranslator.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/Fixtures/StubTranslator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/Fixtures/StubTranslator.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,12 +11,19 @@
 
 namespace Symfony\Bridge\Twig\Tests\Extension\Fixtures;
 
+use Symfony\Contracts\Translation\TranslatableInterface;
 use Symfony\Contracts\Translation\TranslatorInterface;
 
 class StubTranslator implements TranslatorInterface
 {
     public function trans($id, array $parameters = [], $domain = null, $locale = null): string
     {
+        foreach ($parameters as $k => $v) {
+            if ($v instanceof TranslatableInterface) {
+                $parameters[$k] = $v->trans($this, $locale);
+            }
+        }
+
         return '[trans]'.strtr($id, $parameters).'[/trans]';
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,7 @@
 use Symfony\Bridge\Twig\Form\TwigRendererEngine;
 use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubTranslator;
 use Symfony\Component\Form\FormRenderer;
-use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
+use Symfony\Component\Security\Csrf\CsrfTokenManager;
 use Twig\Environment;
 use Twig\Loader\FilesystemLoader;
 
@@ -60,7 +60,7 @@
             'bootstrap_3_layout.html.twig',
             'custom_widgets.html.twig',
         ], $environment);
-        $this->renderer = new FormRenderer($rendererEngine, $this->createMock(CsrfTokenManagerInterface::class));
+        $this->renderer = new FormRenderer($rendererEngine, new CsrfTokenManager());
         $this->registerTwigRuntimeLoader($environment, $this->renderer);
 
         $view = $this->factory
@@ -69,11 +69,12 @@
         ;
 
         $this->assertSame(<<<'HTML'
-<div class="input-group">
-                            <span class="input-group-addon">&euro; </span>
-            <input type="text" id="name" name="name" required="required" class="form-control" />        </div>
-HTML
-            , trim($this->renderWidget($view)));
+            <div class="input-group">
+                                        <span class="input-group-addon">&euro; </span>
+                        <input type="text" id="name" name="name" required="required" inputmode="decimal" class="form-control" />        </div>
+            HTML,
+            trim($this->renderWidget($view))
+        );
     }
 
     protected function getTemplatePaths(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4LayoutTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4LayoutTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4LayoutTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4LayoutTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,7 @@
 use Symfony\Bridge\Twig\Form\TwigRendererEngine;
 use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubTranslator;
 use Symfony\Component\Form\FormRenderer;
-use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
+use Symfony\Component\Security\Csrf\CsrfTokenManager;
 use Twig\Environment;
 use Twig\Loader\FilesystemLoader;
 
@@ -65,7 +65,7 @@
             'bootstrap_4_layout.html.twig',
             'custom_widgets.html.twig',
         ], $environment);
-        $this->renderer = new FormRenderer($rendererEngine, $this->createMock(CsrfTokenManagerInterface::class));
+        $this->renderer = new FormRenderer($rendererEngine, new CsrfTokenManager());
         $this->registerTwigRuntimeLoader($environment, $this->renderer);
 
         $view = $this->factory
@@ -74,11 +74,12 @@
         ;
 
         $this->assertSame(<<<'HTML'
-<div class="input-group "><div class="input-group-prepend">
-                    <span class="input-group-text">&euro; </span>
-                </div><input type="text" id="name" name="name" required="required" class="form-control" /></div>
-HTML
-            , trim($this->renderWidget($view)));
+            <div class="input-group "><div class="input-group-prepend">
+                                <span class="input-group-text">&euro; </span>
+                            </div><input type="text" id="name" name="name" required="required" inputmode="decimal" class="form-control" /></div>
+            HTML,
+            trim($this->renderWidget($view))
+        );
     }
 
     protected function getTemplatePaths(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap5LayoutTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap5LayoutTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap5LayoutTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap5LayoutTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
 use Symfony\Component\Form\Extension\Core\Type\FormType;
 use Symfony\Component\Form\Extension\Core\Type\MoneyType;
 use Symfony\Component\Form\FormRenderer;
-use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
+use Symfony\Component\Security\Csrf\CsrfTokenManager;
 use Twig\Environment;
 use Twig\Loader\FilesystemLoader;
 
@@ -67,7 +67,7 @@
             'bootstrap_5_layout.html.twig',
             'custom_widgets.html.twig',
         ], $environment);
-        $this->renderer = new FormRenderer($rendererEngine, $this->getMockBuilder(CsrfTokenManagerInterface::class)->getMock());
+        $this->renderer = new FormRenderer($rendererEngine, new CsrfTokenManager());
         $this->registerTwigRuntimeLoader($environment, $this->renderer);
 
         $view = $this->factory
@@ -75,9 +75,10 @@
             ->createView();
 
         self::assertSame(<<<'HTML'
-<div class="input-group "><span class="input-group-text">&euro; </span><input type="text" id="name" name="name" required="required" class="form-control" /></div>
-HTML
-            , trim($this->renderWidget($view)));
+            <div class="input-group "><span class="input-group-text">&euro; </span><input type="text" id="name" name="name" required="required" inputmode="decimal" class="form-control" /></div>
+            HTML,
+            trim($this->renderWidget($view))
+        );
     }
 
     protected function getTemplatePaths(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
 use Symfony\Component\Form\ChoiceList\View\ChoiceView;
 use Symfony\Component\Form\FormRenderer;
 use Symfony\Component\Form\FormView;
-use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
+use Symfony\Component\Security\Csrf\CsrfTokenManager;
 use Twig\Environment;
 use Twig\Loader\FilesystemLoader;
 
@@ -148,7 +148,7 @@
             'form_div_layout.html.twig',
             'custom_widgets.html.twig',
         ], $environment);
-        $this->renderer = new FormRenderer($rendererEngine, $this->createMock(CsrfTokenManagerInterface::class));
+        $this->renderer = new FormRenderer($rendererEngine, new CsrfTokenManager());
         $this->registerTwigRuntimeLoader($environment, $this->renderer);
 
         $view = $this->factory
@@ -156,7 +156,7 @@
             ->createView()
         ;
 
-        $this->assertSame('&euro; <input type="text" id="name" name="name" required="required" />', $this->renderWidget($view));
+        $this->assertSame('&euro; <input type="text" id="name" name="name" required="required" inputmode="decimal" />', $this->renderWidget($view));
     }
 
     public function testHelpAttr()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionFieldHelpersTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionFieldHelpersTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionFieldHelpersTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionFieldHelpersTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -100,9 +100,7 @@
                     'yes',
                     'no',
                 ],
-                'choice_label' => static function (string $choice) {
-                    return new TranslatableMessage('parametrized.%value%', ['%value%' => $choice], 'forms');
-                },
+                'choice_label' => static fn (string $choice) => new TranslatableMessage('parametrized.%value%', ['%value%' => $choice], 'forms'),
             ])
             ->getForm()
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/HtmlSanitizerExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/HtmlSanitizerExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/HtmlSanitizerExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/HtmlSanitizerExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,8 +42,8 @@
             ->willReturn('bar');
 
         $twig->addExtension(new HtmlSanitizerExtension(new ServiceLocator([
-            'foo' => fn () => $fooSanitizer,
-            'bar' => fn () => $barSanitizer,
+            'foo' => static fn () => $fooSanitizer,
+            'bar' => static fn () => $barSanitizer,
         ]), 'foo'));
 
         $this->assertSame('foo', $twig->render('foo'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/HttpKernelExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/HttpKernelExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/HttpKernelExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/HttpKernelExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Bridge\Twig\Extension\HttpKernelExtension;
 use Symfony\Bridge\Twig\Extension\HttpKernelRuntime;
 use Symfony\Bundle\FrameworkBundle\Controller\TemplateController;
+use Symfony\Component\DependencyInjection\ServiceLocator;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpFoundation\Response;
@@ -24,7 +25,7 @@
 use Symfony\Component\HttpKernel\Fragment\FragmentUriGenerator;
 use Twig\Environment;
 use Twig\Loader\ArrayLoader;
-use Twig\RuntimeLoader\RuntimeLoaderInterface;
+use Twig\RuntimeLoader\ContainerRuntimeLoader;
 
 class HttpKernelExtensionTest extends TestCase
 {
@@ -68,17 +69,18 @@
         $kernelRuntime = new HttpKernelRuntime($fragmentHandler, $fragmentUriGenerator);
 
         $loader = new ArrayLoader([
-            'index' => sprintf(<<<TWIG
-{{ fragment_uri(controller("%s::templateAction", {template: "foo.html.twig"})) }}
-TWIG
-                , str_replace('\\', '\\\\', TemplateController::class)), ]);
+            'index' => \sprintf(<<<TWIG
+                {{ fragment_uri(controller("%s::templateAction", {template: "foo.html.twig"})) }}
+                TWIG,
+                str_replace('\\', '\\\\', TemplateController::class)
+            ),
+        ]);
         $twig = new Environment($loader, ['debug' => true, 'cache' => false]);
         $twig->addExtension(new HttpKernelExtension());
 
-        $loader = $this->createMock(RuntimeLoaderInterface::class);
-        $loader->expects($this->any())->method('load')->willReturnMap([
-            [HttpKernelRuntime::class, $kernelRuntime],
-        ]);
+        $loader = new ContainerRuntimeLoader(new ServiceLocator([
+            HttpKernelRuntime::class => static fn () => $kernelRuntime,
+        ]));
         $twig->addRuntimeLoader($loader);
 
         $this->assertMatchesRegularExpression('#/_fragment\?_hash=.+&amp;_path=template%3Dfoo.html.twig%26_format%3Dhtml%26_locale%3Den%26_controller%3DSymfony%255CBundle%255CFrameworkBundle%255CController%255CTemplateController%253A%253AtemplateAction$#', $twig->render('index'));
@@ -109,10 +111,9 @@
         $twig = new Environment($loader, ['debug' => true, 'cache' => false]);
         $twig->addExtension(new HttpKernelExtension());
 
-        $loader = $this->createMock(RuntimeLoaderInterface::class);
-        $loader->expects($this->any())->method('load')->willReturnMap([
-            ['Symfony\Bridge\Twig\Extension\HttpKernelRuntime', new HttpKernelRuntime($renderer)],
-        ]);
+        $loader = new ContainerRuntimeLoader(new ServiceLocator([
+            HttpKernelRuntime::class => static fn () => new HttpKernelRuntime($renderer),
+        ]));
         $twig->addRuntimeLoader($loader);
 
         return $twig->render('index');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/ImportMapExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/ImportMapExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/ImportMapExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/ImportMapExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -9,15 +9,16 @@
  * file that was distributed with this source code.
  */
 
-namespace Extension;
+namespace Symfony\Bridge\Twig\Tests\Extension;
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Twig\Extension\ImportMapExtension;
 use Symfony\Bridge\Twig\Extension\ImportMapRuntime;
 use Symfony\Component\AssetMapper\ImportMap\ImportMapRenderer;
+use Symfony\Component\DependencyInjection\ServiceLocator;
 use Twig\Environment;
 use Twig\Loader\ArrayLoader;
-use Twig\RuntimeLoader\RuntimeLoaderInterface;
+use Twig\RuntimeLoader\ContainerRuntimeLoader;
 
 class ImportMapExtensionTest extends TestCase
 {
@@ -35,14 +36,10 @@
             ->willReturn($expected);
         $runtime = new ImportMapRuntime($importMapRenderer);
 
-        $mockRuntimeLoader = $this->createMock(RuntimeLoaderInterface::class);
-        $mockRuntimeLoader
-            ->method('load')
-            ->willReturnMap([
-                [ImportMapRuntime::class, $runtime],
-            ])
-        ;
-        $twig->addRuntimeLoader($mockRuntimeLoader);
+        $runtimeLoader = new ContainerRuntimeLoader(new ServiceLocator([
+            ImportMapRuntime::class => static fn () => $runtime,
+        ]));
+        $twig->addRuntimeLoader($runtimeLoader);
 
         $this->assertSame($expected, $twig->render('template'));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/RoutingExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/RoutingExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/RoutingExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/RoutingExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,7 @@
 use Symfony\Bridge\Twig\Extension\RoutingExtension;
 use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
 use Twig\Environment;
-use Twig\Loader\LoaderInterface;
+use Twig\Loader\ArrayLoader;
 use Twig\Node\Expression\FilterExpression;
 use Twig\Source;
 
@@ -26,8 +26,8 @@
      */
     public function testEscaping($template, $mustBeEscaped)
     {
-        $twig = new Environment($this->createMock(LoaderInterface::class), ['debug' => true, 'cache' => false, 'autoescape' => 'html', 'optimizations' => 0]);
-        $twig->addExtension(new RoutingExtension($this->createMock(UrlGeneratorInterface::class)));
+        $twig = new Environment(new ArrayLoader(), ['debug' => true, 'cache' => false, 'autoescape' => 'html', 'optimizations' => 0]);
+        $twig->addExtension(new RoutingExtension($this->createStub(UrlGeneratorInterface::class)));
 
         $nodes = $twig->parse($twig->tokenize(new Source($template, '')));
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/SerializerExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/SerializerExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/SerializerExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/SerializerExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Bridge\Twig\Extension\SerializerExtension;
 use Symfony\Bridge\Twig\Extension\SerializerRuntime;
 use Symfony\Bridge\Twig\Tests\Extension\Fixtures\SerializerModelFixture;
+use Symfony\Component\DependencyInjection\ServiceLocator;
 use Symfony\Component\Serializer\Encoder\JsonEncoder;
 use Symfony\Component\Serializer\Encoder\YamlEncoder;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
@@ -23,7 +24,7 @@
 use Symfony\Component\Serializer\Serializer;
 use Twig\Environment;
 use Twig\Loader\ArrayLoader;
-use Twig\RuntimeLoader\RuntimeLoaderInterface;
+use Twig\RuntimeLoader\ContainerRuntimeLoader;
 
 /**
  * @author Jesse Rushlow <jr@rushlow.dev>
@@ -52,17 +53,13 @@
         $meta = new ClassMetadataFactory(new AttributeLoader());
         $runtime = new SerializerRuntime(new Serializer([new ObjectNormalizer($meta)], [new JsonEncoder(), new YamlEncoder()]));
 
-        $mockRuntimeLoader = $this->createMock(RuntimeLoaderInterface::class);
-        $mockRuntimeLoader
-            ->method('load')
-            ->willReturnMap([
-                ['Symfony\Bridge\Twig\Extension\SerializerRuntime', $runtime],
-            ])
-        ;
+        $runtimeLoader = new ContainerRuntimeLoader(new ServiceLocator([
+            SerializerRuntime::class => static fn () => $runtime,
+        ]));
 
         $twig = new Environment(new ArrayLoader(['template' => $template]));
         $twig->addExtension(new SerializerExtension());
-        $twig->addRuntimeLoader($mockRuntimeLoader);
+        $twig->addRuntimeLoader($runtimeLoader);
 
         return $twig;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/StopwatchExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/StopwatchExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/StopwatchExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/StopwatchExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -77,18 +77,18 @@
                 $expectedName->evaluate($name);
                 $this->assertSame($expectedCategory, $category);
 
-                return $this->createMock(StopwatchEvent::class);
+                return new StopwatchEvent('1.0');
             })
         ;
 
         $stopwatch
             ->expects($this->exactly($expectedCalls))
             ->method('stop')
-            ->willReturnCallback(function (string $name) use (&$expectedStopCalls) {
+            ->willReturnCallback(static function (string $name) use (&$expectedStopCalls) {
                 [$expectedName] = array_shift($expectedStopCalls);
                 $expectedName->evaluate($name);
 
-                return $this->createMock(StopwatchEvent::class);
+                return new StopwatchEvent('1.0');
             })
         ;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/WorkflowExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/WorkflowExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/WorkflowExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Extension/WorkflowExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
         ];
 
         $transitionsMetadata = new \SplObjectStorage();
-        $transitionsMetadata->attach($this->t1, ['title' => 't1 title']);
+        $transitionsMetadata[$this->t1] = ['title' => 't1 title'];
         $metadataStore = new InMemoryMetadataStore(
             ['title' => 'workflow title'],
             ['orderer' => ['title' => 'ordered title']],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/hello_world.json symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/hello_world.json
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/hello_world.json	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/hello_world.json	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,4 @@
+[
+  "Hello",
+  "World!"
+]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/hello_world.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/hello_world.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/hello_world.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/hello_world.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,4 @@
+<?php
+
+echo 'Hello';
+echo 'World!';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/xss.html symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/xss.html
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/xss.html	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Fixtures/xss.html	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,2 @@
+<script>alert(1)</script>
+& "quoted" <tags>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Form/TwigRendererEngineTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Form/TwigRendererEngineTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Form/TwigRendererEngineTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Form/TwigRendererEngineTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,110 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bridge\Twig\Tests\Form;
+
+use Symfony\Bridge\Twig\Form\TwigRendererEngine;
+use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\Extension\Core\Type\CollectionType;
+use Symfony\Component\Form\Extension\Core\Type\FormType;
+use Symfony\Component\Form\Extension\Core\Type\TextType;
+use Symfony\Component\Form\FormBuilderInterface;
+use Symfony\Component\Form\FormRenderer;
+use Symfony\Component\Form\Test\FormIntegrationTestCase;
+use Twig\Environment;
+use Twig\Loader\ArrayLoader;
+
+class TwigRendererEngineTest extends FormIntegrationTestCase
+{
+    public function testNestedCollectionsDoNotReuseParentBlockPrefixCache()
+    {
+        $renderer = $this->createRenderer();
+
+        $form = $this->factory->create(TaskManagerType::class);
+        $form->submit([
+            'taskLists' => [
+                [
+                    'tasks' => [
+                        ['name' => 'first'],
+                    ],
+                ],
+            ],
+        ]);
+
+        $view = $form->createView();
+        $renderer->setTheme($view, 'form_layout.html.twig');
+
+        $this->assertSame('[embedded-row]', $renderer->searchAndRenderBlock($view['taskLists'][0], 'row'));
+        $this->assertSame('[form-row]', $renderer->searchAndRenderBlock($view['taskLists'][0]['tasks'][0], 'row'));
+    }
+
+    private function createRenderer(): FormRenderer
+    {
+        $twig = new Environment(new ArrayLoader([
+            'form_layout.html.twig' => <<<'TWIG'
+                {% block form_row %}[form-row]{% endblock %}
+                {% block embedded_row %}[embedded-row]{% endblock %}
+                TWIG,
+        ]));
+
+        $engine = new TwigRendererEngine(['form_layout.html.twig'], $twig);
+
+        return new FormRenderer($engine);
+    }
+}
+
+class TaskManagerType extends AbstractType
+{
+    public function buildForm(FormBuilderInterface $builder, array $options): void
+    {
+        $builder->add('taskLists', CollectionType::class, [
+            'entry_type' => TaskListType::class,
+            'allow_add' => true,
+        ]);
+    }
+}
+
+class TaskListType extends AbstractType
+{
+    public function buildForm(FormBuilderInterface $builder, array $options): void
+    {
+        $builder->add('tasks', CollectionType::class, [
+            'entry_type' => TaskType::class,
+            'allow_add' => true,
+        ]);
+    }
+
+    public function getParent(): ?string
+    {
+        return EmbeddedType::class;
+    }
+}
+
+class TaskType extends AbstractType
+{
+    public function buildForm(FormBuilderInterface $builder, array $options): void
+    {
+        $builder->add('name', TextType::class);
+    }
+}
+
+class EmbeddedType extends AbstractType
+{
+    public function getParent(): ?string
+    {
+        return FormType::class;
+    }
+
+    public function getBlockPrefix(): string
+    {
+        return 'embedded';
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Mime/BodyRendererTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Mime/BodyRendererTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Mime/BodyRendererTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Mime/BodyRendererTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,7 @@
 use Symfony\Component\Mime\Exception\InvalidArgumentException;
 use Symfony\Component\Mime\HtmlToTextConverter\DefaultHtmlToTextConverter;
 use Symfony\Component\Mime\HtmlToTextConverter\HtmlToTextConverterInterface;
+use Symfony\Component\Mime\Part\DataPart;
 use Symfony\Component\Mime\Part\Multipart\AlternativePart;
 use Symfony\Component\Translation\LocaleSwitcher;
 use Twig\Environment;
@@ -54,13 +55,13 @@
     public function testRenderMultiLineHtmlOnly()
     {
         $html = <<<HTML
-<head>
-<style type="text/css">
-css
-</style>
-</head>
-<b>HTML</b>
-HTML;
+            <head>
+            <style type="text/css">
+            css
+            </style>
+            </head>
+            <b>HTML</b>
+            HTML;
         $email = $this->prepareEmail(null, $html);
         $body = $email->getBody();
         $this->assertInstanceOf(AlternativePart::class, $body);
@@ -149,6 +150,21 @@
         $this->assertEquals('Locale: fr', $email->getHtmlBody());
     }
 
+    public function testImageReturnsDataPartContentId()
+    {
+        $email = $this->prepareEmail(null, '{{ email.image("image.jpg") }}');
+        $html = $email->getHtmlBody();
+
+        $this->assertStringStartsWith('cid:', $html);
+        $cid = substr($html, 4);
+
+        $inlineParts = array_filter($email->getAttachments(), static fn (DataPart $part) => $part->hasContentId());
+        $this->assertCount(1, $inlineParts);
+
+        $inlinePart = reset($inlineParts);
+        $this->assertSame($cid, $inlinePart->getContentId());
+    }
+
     private function prepareEmail(?string $text, ?string $html, array $context = [], ?HtmlToTextConverterInterface $converter = null, ?LocaleSwitcher $localeSwitcher = null, ?string $locale = null): TemplatedEmail
     {
         $twig = new Environment(new ArrayLoader([
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Mime/TemplatedEmailTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Mime/TemplatedEmailTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Mime/TemplatedEmailTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Mime/TemplatedEmailTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,42 +66,42 @@
         $expected = clone $e;
 
         $expectedJson = <<<EOF
-{
-    "htmlTemplate": "email.html.twig",
-    "textTemplate": "email.txt.twig",
-    "locale": "en",
-    "context": {
-        "foo": "bar"
-    },
-    "text": null,
-    "textCharset": null,
-    "html": null,
-    "htmlCharset": null,
-    "attachments": [
-        {%A
-            "body": "Some Text file",%A
-            "name": "test.txt",%A
-        }
-    ],
-    "headers": {
-        "to": [
             {
-                "addresses": [
-                    {
-                        "address": "you@example.com",
-                        "name": ""
+                "htmlTemplate": "email.html.twig",
+                "textTemplate": "email.txt.twig",
+                "locale": "en",
+                "context": {
+                    "foo": "bar"
+                },
+                "text": null,
+                "textCharset": null,
+                "html": null,
+                "htmlCharset": null,
+                "attachments": [
+                    {%A
+                        "body": "Some Text file",%A
+                        "name": "test.txt",%A
                     }
                 ],
-                "name": "To",
-                "lineLength": 76,
-                "lang": null,
-                "charset": "utf-8"
+                "headers": {
+                    "to": [
+                        {
+                            "addresses": [
+                                {
+                                    "address": "you@example.com",
+                                    "name": ""
+                                }
+                            ],
+                            "name": "To",
+                            "lineLength": 76,
+                            "lang": null,
+                            "charset": "utf-8"
+                        }
+                    ]
+                },
+                "body": null
             }
-        ]
-    },
-    "body": null
-}
-EOF;
+            EOF;
 
         $extractor = new PhpDocExtractor();
         $propertyNormalizer = new PropertyNormalizer(null, null, $extractor);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Node/DumpNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Node/DumpNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Node/DumpNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Node/DumpNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,7 @@
 use Symfony\Bridge\Twig\Node\DumpNode;
 use Twig\Compiler;
 use Twig\Environment;
-use Twig\Loader\LoaderInterface;
+use Twig\Loader\ArrayLoader;
 use Twig\Node\Expression\NameExpression;
 use Twig\Node\Expression\Variable\ContextVariable;
 use Twig\Node\Node;
@@ -27,22 +27,22 @@
     {
         $node = new DumpNode('bar', null, 7);
 
-        $env = new Environment($this->createMock(LoaderInterface::class));
+        $env = new Environment(new ArrayLoader());
         $compiler = new Compiler($env);
 
         $expected = <<<'EOTXT'
-if ($this->env->isDebug()) {
-    $barvars = [];
-    foreach ($context as $barkey => $barval) {
-        if (!$barval instanceof \Twig\Template) {
-            $barvars[$barkey] = $barval;
-        }
-    }
-    // line 7
-    \Symfony\Component\VarDumper\VarDumper::dump($barvars);
-}
+            if ($this->env->isDebug()) {
+                $barvars = [];
+                foreach ($context as $barkey => $barval) {
+                    if (!$barval instanceof \Twig\Template) {
+                        $barvars[$barkey] = $barval;
+                    }
+                }
+                // line 7
+                \Symfony\Component\VarDumper\VarDumper::dump($barvars);
+            }
 
-EOTXT;
+            EOTXT;
 
         $this->assertSame($expected, $compiler->compile($node)->getSource());
     }
@@ -51,22 +51,22 @@
     {
         $node = new DumpNode('bar', null, 7);
 
-        $env = new Environment($this->createMock(LoaderInterface::class));
+        $env = new Environment(new ArrayLoader());
         $compiler = new Compiler($env);
 
         $expected = <<<'EOTXT'
-    if ($this->env->isDebug()) {
-        $barvars = [];
-        foreach ($context as $barkey => $barval) {
-            if (!$barval instanceof \Twig\Template) {
-                $barvars[$barkey] = $barval;
-            }
-        }
-        // line 7
-        \Symfony\Component\VarDumper\VarDumper::dump($barvars);
-    }
+                if ($this->env->isDebug()) {
+                    $barvars = [];
+                    foreach ($context as $barkey => $barval) {
+                        if (!$barval instanceof \Twig\Template) {
+                            $barvars[$barkey] = $barval;
+                        }
+                    }
+                    // line 7
+                    \Symfony\Component\VarDumper\VarDumper::dump($barvars);
+                }
 
-EOTXT;
+            EOTXT;
 
         $this->assertSame($expected, $compiler->compile($node, 1)->getSource());
     }
@@ -85,16 +85,16 @@
 
         $node = new DumpNode('bar', $vars, 7);
 
-        $env = new Environment($this->createMock(LoaderInterface::class));
+        $env = new Environment(new ArrayLoader());
         $compiler = new Compiler($env);
 
         $expected = <<<'EOTXT'
-if ($this->env->isDebug()) {
-    // line 7
-    \Symfony\Component\VarDumper\VarDumper::dump(%foo%);
-}
+            if ($this->env->isDebug()) {
+                // line 7
+                \Symfony\Component\VarDumper\VarDumper::dump(%foo%);
+            }
 
-EOTXT;
+            EOTXT;
 
         $expected = preg_replace('/%(.*?)%/', '($context["$1"] ?? null)', $expected);
 
@@ -117,19 +117,19 @@
 
         $node = new DumpNode('bar', $vars, 7);
 
-        $env = new Environment($this->createMock(LoaderInterface::class));
+        $env = new Environment(new ArrayLoader());
         $compiler = new Compiler($env);
 
         $expected = <<<'EOTXT'
-if ($this->env->isDebug()) {
-    // line 7
-    \Symfony\Component\VarDumper\VarDumper::dump([
-        "foo" => %foo%,
-        "bar" => %bar%,
-    ]);
-}
+            if ($this->env->isDebug()) {
+                // line 7
+                \Symfony\Component\VarDumper\VarDumper::dump([
+                    "foo" => %foo%,
+                    "bar" => %bar%,
+                ]);
+            }
 
-EOTXT;
+            EOTXT;
 
         $expected = preg_replace('/%(.*?)%/', '($context["$1"] ?? null)', $expected);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Node/FormThemeTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Node/FormThemeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Node/FormThemeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Node/FormThemeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
 use Symfony\Component\Form\FormRendererEngineInterface;
 use Twig\Compiler;
 use Twig\Environment;
-use Twig\Loader\LoaderInterface;
+use Twig\Loader\ArrayLoader;
 use Twig\Node\Expression\ArrayExpression;
 use Twig\Node\Expression\ConstantExpression;
 use Twig\Node\Expression\NameExpression;
@@ -64,15 +64,22 @@
 
         $node = new FormThemeNode($form, $resources, 0);
 
-        $environment = new Environment($this->createMock(LoaderInterface::class));
-        $formRenderer = new FormRenderer($this->createMock(FormRendererEngineInterface::class));
+        $environment = new Environment(new ArrayLoader());
+        $formRenderer = new FormRenderer($this->createStub(FormRendererEngineInterface::class));
         $this->registerTwigRuntimeLoader($environment, $formRenderer);
         $compiler = new Compiler($environment);
 
+        // cope with various versions of Twig
+        $source = '[1 => "tpl1", 0 => "tpl2"]';
+        if ('["tpl1", "tpl2"]' === (new Compiler($environment))->subcompile($node->getNode('resources'))->getSource()) {
+            $source = '["tpl1", "tpl2"]';
+        }
+
         $this->assertEquals(
-            sprintf(
-                '$this->env->getRuntime("Symfony\\\\Component\\\\Form\\\\FormRenderer")->setTheme(%s, [1 => "tpl1", 0 => "tpl2"], true);',
-                $this->getVariableGetter('form')
+            \sprintf(
+                '$this->env->getRuntime("Symfony\\\\Component\\\\Form\\\\FormRenderer")->setTheme(%s, %s, true);',
+                $this->getVariableGetter('form'),
+                $source
             ),
             trim($compiler->compile($node)->getSource())
         );
@@ -80,9 +87,10 @@
         $node = new FormThemeNode($form, $resources, 0, null, true);
 
         $this->assertEquals(
-            sprintf(
-                '$this->env->getRuntime("Symfony\\\\Component\\\\Form\\\\FormRenderer")->setTheme(%s, [1 => "tpl1", 0 => "tpl2"], false);',
-                $this->getVariableGetter('form')
+            \sprintf(
+                '$this->env->getRuntime("Symfony\\\\Component\\\\Form\\\\FormRenderer")->setTheme(%s, %s, false);',
+                $this->getVariableGetter('form'),
+                $source
             ),
             trim($compiler->compile($node)->getSource())
         );
@@ -92,7 +100,7 @@
         $node = new FormThemeNode($form, $resources, 0);
 
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime("Symfony\\\\Component\\\\Form\\\\FormRenderer")->setTheme(%s, "tpl1", true);',
                 $this->getVariableGetter('form')
             ),
@@ -102,7 +110,7 @@
         $node = new FormThemeNode($form, $resources, 0, null, true);
 
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime("Symfony\\\\Component\\\\Form\\\\FormRenderer")->setTheme(%s, "tpl1", false);',
                 $this->getVariableGetter('form')
             ),
@@ -112,6 +120,6 @@
 
     protected function getVariableGetter($name)
     {
-        return sprintf('($context["%s"] ?? null)', $name);
+        return \sprintf('($context["%s"] ?? null)', $name);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Node/SearchAndRenderBlockNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Node/SearchAndRenderBlockNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Node/SearchAndRenderBlockNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Node/SearchAndRenderBlockNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,7 @@
 use Twig\Compiler;
 use Twig\Environment;
 use Twig\Extension\CoreExtension;
-use Twig\Loader\LoaderInterface;
+use Twig\Loader\ArrayLoader;
 use Twig\Node\Expression\ArrayExpression;
 use Twig\Node\Expression\ConditionalExpression;
 use Twig\Node\Expression\ConstantExpression;
@@ -48,10 +48,10 @@
             $node = new SearchAndRenderBlockNode('form_widget', $arguments, 0);
         }
 
-        $compiler = new Compiler(new Environment($this->createMock(LoaderInterface::class)));
+        $compiler = new Compiler(new Environment(new ArrayLoader()));
 
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(%s, \'widget\')',
                 $this->getVariableGetter('form')
             ),
@@ -85,10 +85,10 @@
             $node = new SearchAndRenderBlockNode('form_widget', $arguments, 0);
         }
 
-        $compiler = new Compiler(new Environment($this->createMock(LoaderInterface::class)));
+        $compiler = new Compiler(new Environment(new ArrayLoader()));
 
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(%s, \'widget\', ["foo" => "bar"])',
                 $this->getVariableGetter('form')
             ),
@@ -116,10 +116,10 @@
             $node = new SearchAndRenderBlockNode('form_label', $arguments, 0);
         }
 
-        $compiler = new Compiler(new Environment($this->createMock(LoaderInterface::class)));
+        $compiler = new Compiler(new Environment(new ArrayLoader()));
 
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(%s, \'label\', ["label" => "my label"])',
                 $this->getVariableGetter('form')
             ),
@@ -147,12 +147,12 @@
             $node = new SearchAndRenderBlockNode('form_label', $arguments, 0);
         }
 
-        $compiler = new Compiler(new Environment($this->createMock(LoaderInterface::class)));
+        $compiler = new Compiler(new Environment(new ArrayLoader()));
 
         // "label" => null must not be included in the output!
         // Otherwise the default label is overwritten with null.
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(%s, \'label\')',
                 $this->getVariableGetter('form')
             ),
@@ -180,12 +180,12 @@
             $node = new SearchAndRenderBlockNode('form_label', $arguments, 0);
         }
 
-        $compiler = new Compiler(new Environment($this->createMock(LoaderInterface::class)));
+        $compiler = new Compiler(new Environment(new ArrayLoader()));
 
         // "label" => null must not be included in the output!
         // Otherwise the default label is overwritten with null.
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(%s, \'label\')',
                 $this->getVariableGetter('form')
             ),
@@ -211,10 +211,10 @@
             $node = new SearchAndRenderBlockNode('form_label', $arguments, 0);
         }
 
-        $compiler = new Compiler(new Environment($this->createMock(LoaderInterface::class)));
+        $compiler = new Compiler(new Environment(new ArrayLoader()));
 
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(%s, \'label\')',
                 $this->getVariableGetter('form')
             ),
@@ -250,13 +250,13 @@
             $node = new SearchAndRenderBlockNode('form_label', $arguments, 0);
         }
 
-        $compiler = new Compiler(new Environment($this->createMock(LoaderInterface::class)));
+        $compiler = new Compiler(new Environment(new ArrayLoader()));
 
         // "label" => null must not be included in the output!
         // Otherwise the default label is overwritten with null.
         // https://github.com/symfony/symfony/issues/5029
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(%s, \'label\', ["foo" => "bar"])',
                 $this->getVariableGetter('form')
             ),
@@ -296,10 +296,10 @@
             $node = new SearchAndRenderBlockNode('form_label', $arguments, 0);
         }
 
-        $compiler = new Compiler(new Environment($this->createMock(LoaderInterface::class)));
+        $compiler = new Compiler(new Environment(new ArrayLoader()));
 
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(%s, \'label\', ["foo" => "bar", "label" => "value in argument"])',
                 $this->getVariableGetter('form')
             ),
@@ -343,13 +343,13 @@
             $node = new SearchAndRenderBlockNode('form_label', $arguments, 0);
         }
 
-        $compiler = new Compiler(new Environment($this->createMock(LoaderInterface::class)));
+        $compiler = new Compiler(new Environment(new ArrayLoader()));
 
         // "label" => null must not be included in the output!
         // Otherwise the default label is overwritten with null.
         // https://github.com/symfony/symfony/issues/5029
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(%s, \'label\', (%s($_label_ = ((true) ? (null) : (null))) ? [] : ["label" => $_label_]))',
                 $this->getVariableGetter('form'),
                 method_exists(CoreExtension::class, 'testEmpty') ? 'CoreExtension::testEmpty' : 'twig_test_empty'
@@ -412,13 +412,13 @@
             $node = new SearchAndRenderBlockNode('form_label', $arguments, 0);
         }
 
-        $compiler = new Compiler(new Environment($this->createMock(LoaderInterface::class)));
+        $compiler = new Compiler(new Environment(new ArrayLoader()));
 
         // "label" => null must not be included in the output!
         // Otherwise the default label is overwritten with null.
         // https://github.com/symfony/symfony/issues/5029
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(%s, \'label\', ["foo" => "bar", "label" => "value in attributes"] + (%s($_label_ = ((true) ? (null) : (null))) ? [] : ["label" => $_label_]))',
                 $this->getVariableGetter('form'),
                 method_exists(CoreExtension::class, 'testEmpty') ? 'CoreExtension::testEmpty' : 'twig_test_empty'
@@ -429,6 +429,6 @@
 
     protected function getVariableGetter($name)
     {
-        return sprintf('($context["%s"] ?? null)', $name);
+        return \sprintf('($context["%s"] ?? null)', $name);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Node/TransNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Node/TransNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Node/TransNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Node/TransNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,7 @@
 use Twig\Attribute\YieldReady;
 use Twig\Compiler;
 use Twig\Environment;
-use Twig\Loader\LoaderInterface;
+use Twig\Loader\ArrayLoader;
 use Twig\Node\Expression\NameExpression;
 use Twig\Node\Expression\Variable\ContextVariable;
 use Twig\Node\TextNode;
@@ -32,11 +32,11 @@
         $vars = class_exists(ContextVariable::class) ? new ContextVariable('foo', 0) : new NameExpression('foo', 0);
         $node = new TransNode($body, null, null, $vars);
 
-        $env = new Environment($this->createMock(LoaderInterface::class), ['strict_variables' => true]);
+        $env = new Environment(new ArrayLoader(), ['strict_variables' => true]);
         $compiler = new Compiler($env);
 
         $this->assertEquals(
-            sprintf(
+            \sprintf(
                 '%s $this->env->getExtension(\'Symfony\Bridge\Twig\Extension\TranslationExtension\')->trans("trans %%var%%", array_merge(["%%var%%" => %s], %s), "messages");',
                 class_exists(YieldReady::class) ? 'yield' : 'echo',
                 $this->getVariableGetterWithoutStrictCheck('var'),
@@ -48,15 +48,15 @@
 
     protected function getVariableGetterWithoutStrictCheck($name)
     {
-        return sprintf('($context["%s"] ?? null)', $name);
+        return \sprintf('($context["%s"] ?? null)', $name);
     }
 
     protected function getVariableGetterWithStrictCheck($name)
     {
         if (Environment::MAJOR_VERSION >= 2) {
-            return sprintf('(isset($context["%1$s"]) || array_key_exists("%1$s", $context) ? $context["%1$s"] : (function () { throw new %2$s(\'Variable "%1$s" does not exist.\', 0, $this->source); })())', $name, Environment::VERSION_ID >= 20700 ? 'RuntimeError' : 'Twig_Error_Runtime');
+            return \sprintf('(isset($context["%1$s"]) || array_key_exists("%1$s", $context) ? $context["%1$s"] : (function () { throw new %2$s(\'Variable "%1$s" does not exist.\', 0, $this->source); })())', $name, Environment::VERSION_ID >= 20700 ? 'RuntimeError' : 'Twig_Error_Runtime');
         }
 
-        return sprintf('($context["%s"] ?? $this->getContext($context, "%1$s"))', $name);
+        return \sprintf('($context["%s"] ?? $this->getContext($context, "%1$s"))', $name);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/NodeVisitor/TranslationDefaultDomainNodeVisitorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/NodeVisitor/TranslationDefaultDomainNodeVisitorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/NodeVisitor/TranslationDefaultDomainNodeVisitorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/NodeVisitor/TranslationDefaultDomainNodeVisitorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,7 @@
 use Symfony\Bridge\Twig\NodeVisitor\TranslationDefaultDomainNodeVisitor;
 use Symfony\Bridge\Twig\NodeVisitor\TranslationNodeVisitor;
 use Twig\Environment;
-use Twig\Loader\LoaderInterface;
+use Twig\Loader\ArrayLoader;
 use Twig\Node\Expression\ArrayExpression;
 use Twig\Node\Node;
 
@@ -27,7 +27,7 @@
     /** @dataProvider getDefaultDomainAssignmentTestData */
     public function testDefaultDomainAssignment(Node $node)
     {
-        $env = new Environment($this->createMock(LoaderInterface::class), ['cache' => false, 'autoescape' => false, 'optimizations' => 0]);
+        $env = new Environment(new ArrayLoader(), ['cache' => false, 'autoescape' => false, 'optimizations' => 0]);
         $visitor = new TranslationDefaultDomainNodeVisitor();
 
         // visit trans_default_domain tag
@@ -53,7 +53,7 @@
     /** @dataProvider getDefaultDomainAssignmentTestData */
     public function testNewModuleWithoutDefaultDomainTag(Node $node)
     {
-        $env = new Environment($this->createMock(LoaderInterface::class), ['cache' => false, 'autoescape' => false, 'optimizations' => 0]);
+        $env = new Environment(new ArrayLoader(), ['cache' => false, 'autoescape' => false, 'optimizations' => 0]);
         $visitor = new TranslationDefaultDomainNodeVisitor();
 
         // visit trans_default_domain tag
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/NodeVisitor/TranslationNodeVisitorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/NodeVisitor/TranslationNodeVisitorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/NodeVisitor/TranslationNodeVisitorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/NodeVisitor/TranslationNodeVisitorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,7 @@
 use Symfony\Bridge\Twig\NodeVisitor\TranslationNodeVisitor;
 use Twig\Attribute\FirstClassTwigCallableReady;
 use Twig\Environment;
-use Twig\Loader\LoaderInterface;
+use Twig\Loader\ArrayLoader;
 use Twig\Node\Expression\ArrayExpression;
 use Twig\Node\Expression\ConstantExpression;
 use Twig\Node\Expression\FilterExpression;
@@ -30,7 +30,7 @@
     /** @dataProvider getMessagesExtractionTestData */
     public function testMessagesExtraction(Node $node, array $expectedMessages)
     {
-        $env = new Environment($this->createMock(LoaderInterface::class), ['cache' => false, 'autoescape' => false, 'optimizations' => 0]);
+        $env = new Environment(new ArrayLoader(), ['cache' => false, 'autoescape' => false, 'optimizations' => 0]);
         $visitor = new TranslationNodeVisitor();
         $visitor->enable();
         $visitor->enterNode($node, $env);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/TokenParser/FormThemeTokenParserTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/TokenParser/FormThemeTokenParserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/TokenParser/FormThemeTokenParserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/TokenParser/FormThemeTokenParserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,7 @@
 use Symfony\Bridge\Twig\TokenParser\FormThemeTokenParser;
 use Twig\Attribute\FirstClassTwigCallableReady;
 use Twig\Environment;
-use Twig\Loader\LoaderInterface;
+use Twig\Loader\ArrayLoader;
 use Twig\Node\Expression\ArrayExpression;
 use Twig\Node\Expression\ConstantExpression;
 use Twig\Node\Expression\NameExpression;
@@ -31,7 +31,7 @@
      */
     public function testCompile($source, $expected)
     {
-        $env = new Environment($this->createMock(LoaderInterface::class), ['cache' => false, 'autoescape' => false, 'optimizations' => 0]);
+        $env = new Environment(new ArrayLoader(), ['cache' => false, 'autoescape' => false, 'optimizations' => 0]);
         $env->addTokenParser(new FormThemeTokenParser());
         $source = new Source($source, '');
         $stream = $env->tokenize($source);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Translation/TwigExtractorTest.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Translation/TwigExtractorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/Tests/Translation/TwigExtractorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/Tests/Translation/TwigExtractorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,11 +14,10 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\Twig\Extension\TranslationExtension;
 use Symfony\Bridge\Twig\Translation\TwigExtractor;
+use Symfony\Component\Translation\IdentityTranslator;
 use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Contracts\Translation\TranslatorInterface;
 use Twig\Environment;
 use Twig\Loader\ArrayLoader;
-use Twig\Loader\LoaderInterface;
 
 class TwigExtractorTest extends TestCase
 {
@@ -29,14 +28,13 @@
      */
     public function testExtract($template, $messages)
     {
-        $loader = $this->createMock(LoaderInterface::class);
-        $twig = new Environment($loader, [
+        $twig = new Environment(new ArrayLoader(), [
             'strict_variables' => true,
             'debug' => true,
             'cache' => false,
             'autoescape' => false,
         ]);
-        $twig->addExtension(new TranslationExtension($this->createMock(TranslatorInterface::class)));
+        $twig->addExtension(new TranslationExtension(new IdentityTranslator()));
 
         $extractor = new TwigExtractor($twig);
         $extractor->setPrefix('prefix');
@@ -99,8 +97,8 @@
      */
     public function testExtractSyntaxError($resources, array $messages)
     {
-        $twig = new Environment($this->createMock(LoaderInterface::class));
-        $twig->addExtension(new TranslationExtension($this->createMock(TranslatorInterface::class)));
+        $twig = new Environment(new ArrayLoader());
+        $twig->addExtension(new TranslationExtension(new IdentityTranslator()));
 
         $extractor = new TwigExtractor($twig);
         $catalogue = new MessageCatalogue('en');
@@ -129,7 +127,7 @@
             'cache' => false,
             'autoescape' => false,
         ]);
-        $twig->addExtension(new TranslationExtension($this->createMock(TranslatorInterface::class)));
+        $twig->addExtension(new TranslationExtension(new IdentityTranslator()));
 
         $extractor = new TwigExtractor($twig);
         $catalogue = new MessageCatalogue('en');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -108,7 +108,7 @@
     private static function onUndefined(string $name, string $type, string $component): string
     {
         if (class_exists(FullStack::class) && isset(self::FULL_STACK_ENABLE[$component])) {
-            return sprintf('Did you forget to %s? Unknown %s "%s".', self::FULL_STACK_ENABLE[$component], $type, $name);
+            return \sprintf('Did you forget to %s? Unknown %s "%s".', self::FULL_STACK_ENABLE[$component], $type, $name);
         }
 
         $missingPackage = 'symfony/'.$component;
@@ -117,6 +117,6 @@
             $missingPackage = 'symfony/twig-bundle';
         }
 
-        return sprintf('Did you forget to run "composer require %s"? Unknown %s "%s".', $missingPackage, $type, $name);
+        return \sprintf('Did you forget to run "composer require %s"? Unknown %s "%s".', $missingPackage, $type, $name);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/DebugBundle/DebugBundle.php symfony-6.4.40+dfsg/src/Symfony/Bundle/DebugBundle/DebugBundle.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/DebugBundle/DebugBundle.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/DebugBundle/DebugBundle.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,10 +35,10 @@
             // The dump data collector is used by default, so dump output is sent to
             // the WDT. In a CLI context, if dump is used too soon, the data collector
             // will buffer it, and release it at the end of the script.
-            VarDumper::setHandler(function ($var, ?string $label = null) use ($container) {
+            VarDumper::setHandler(static function ($var, ?string $label = null) use ($container) {
                 $dumper = $container->get('data_collector.dump');
                 $cloner = $container->get('var_dumper.cloner');
-                $handler = function ($var, ?string $label = null) use ($dumper, $cloner) {
+                $handler = static function ($var, ?string $label = null) use ($dumper, $cloner) {
                     $var = $cloner->cloneVar($var);
                     if (null !== $label) {
                         $var = $var->withContext(['label' => $label]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/DebugBundle/DependencyInjection/Compiler/DumpDataCollectorPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/DebugBundle/DependencyInjection/Compiler/DumpDataCollectorPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/DebugBundle/DependencyInjection/Compiler/DumpDataCollectorPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/DebugBundle/DependencyInjection/Compiler/DumpDataCollectorPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,5 +41,9 @@
         if (!$container->hasParameter('web_profiler.debug_toolbar.mode') || WebDebugToolbarListener::DISABLED === $container->getParameter('web_profiler.debug_toolbar.mode')) {
             $definition->replaceArgument(3, null);
         }
+
+        if (!$container->hasParameter('kernel.runtime_mode.web')) {
+            $definition->replaceArgument(5, null);
+        }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/DebugBundle/Resources/config/services.php symfony-6.4.40+dfsg/src/Symfony/Bundle/DebugBundle/Resources/config/services.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/DebugBundle/Resources/config/services.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/DebugBundle/Resources/config/services.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,6 +52,7 @@
                 param('kernel.charset'),
                 service('.virtual_request_stack'),
                 null, // var_dumper.cli_dumper or var_dumper.server_connection when debug.dump_destination is set
+                param('kernel.runtime_mode.web'),
             ])
             ->tag('data_collector', [
                 'id' => 'dump',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/Compiler/DumpDataCollectorPassTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/Compiler/DumpDataCollectorPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/Compiler/DumpDataCollectorPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/Compiler/DumpDataCollectorPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
         $container = new ContainerBuilder();
         $container->addCompilerPass(new DumpDataCollectorPass());
 
-        $definition = new Definition(DumpDataCollector::class, [null, null, new Reference('.virtual_request_stack'), null]);
+        $definition = new Definition(DumpDataCollector::class, [null, null, '%kernel.charset%', new Reference('.virtual_request_stack'), null, '%kernel.runtime_mode.web%']);
         $container->setDefinition('data_collector.dump', $definition);
 
         $container->compile();
@@ -42,7 +42,7 @@
         $container->register('.virtual_request_stack', RequestStack::class);
         $container->addCompilerPass(new DumpDataCollectorPass());
 
-        $definition = new Definition(DumpDataCollector::class, [null, null, null, new Reference('.virtual_request_stack')]);
+        $definition = new Definition(DumpDataCollector::class, [null, null, '%kernel.charset%', new Reference('.virtual_request_stack'), null, '%kernel.runtime_mode.web%']);
         $container->setDefinition('data_collector.dump', $definition);
         $container->setParameter('web_profiler.debug_toolbar.mode', WebDebugToolbarListener::ENABLED);
 
@@ -57,7 +57,7 @@
         $container->register('request_stack', RequestStack::class);
         $container->addCompilerPass(new DumpDataCollectorPass());
 
-        $definition = new Definition(DumpDataCollector::class, [null, null, null, new Reference('.virtual_request_stack')]);
+        $definition = new Definition(DumpDataCollector::class, [null, null, '%kernel.charset%', new Reference('.virtual_request_stack'), null, '%kernel.runtime_mode.web%']);
         $container->setDefinition('data_collector.dump', $definition);
         $container->setParameter('web_profiler.debug_toolbar.mode', WebDebugToolbarListener::ENABLED);
 
@@ -71,7 +71,7 @@
         $container = new ContainerBuilder();
         $container->addCompilerPass(new DumpDataCollectorPass());
 
-        $definition = new Definition(DumpDataCollector::class, [null, null, new Reference('.virtual_request_stack'), new RequestStack()]);
+        $definition = new Definition(DumpDataCollector::class, [null, null, '%kernel.charset%', new Reference('.virtual_request_stack'), null, '%kernel.runtime_mode.web%']);
         $container->setDefinition('data_collector.dump', $definition);
         $container->setParameter('web_profiler.debug_toolbar.mode', WebDebugToolbarListener::DISABLED);
 
@@ -85,11 +85,42 @@
         $container = new ContainerBuilder();
         $container->addCompilerPass(new DumpDataCollectorPass());
 
-        $definition = new Definition(DumpDataCollector::class, [null, null, new Reference('.virtual_request_stack'), new RequestStack()]);
+        $definition = new Definition(DumpDataCollector::class, [null, null, '%kernel.charset%', new Reference('.virtual_request_stack'), null, '%kernel.runtime_mode.web%']);
         $container->setDefinition('data_collector.dump', $definition);
 
         $container->compile();
 
         $this->assertNull($definition->getArgument(3));
     }
+
+    public function testProcessWithRuntimeModeSet()
+    {
+        $container = new ContainerBuilder();
+        $container->setParameter('kernel.charset', 'UTF-8');
+        $container->setParameter('kernel.runtime_mode.web', false);
+        $container->addCompilerPass(new DumpDataCollectorPass());
+
+        $definition = new Definition(DumpDataCollector::class, [null, null, '%kernel.charset%', new Reference('.virtual_request_stack'), null, '%kernel.runtime_mode.web%']);
+        $container->setDefinition('data_collector.dump', $definition);
+
+        $container->compile();
+
+        $this->assertFalse($definition->getArgument(5));
+        $this->assertCount(0, $definition->getErrors());
+    }
+
+    public function testProcessWithRuntimeModeNotSet()
+    {
+        $container = new ContainerBuilder();
+        $container->setParameter('kernel.charset', 'UTF-8');
+        $container->addCompilerPass(new DumpDataCollectorPass());
+
+        $definition = new Definition(DumpDataCollector::class, [null, null, '%kernel.charset%', new Reference('.virtual_request_stack'), null, '%kernel.runtime_mode.web%']);
+        $container->setDefinition('data_collector.dump', $definition);
+
+        $container->compile();
+
+        $this->assertNull($definition->getArgument(5));
+        $this->assertCount(0, $definition->getErrors());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/DebugExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/DebugExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/DebugExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/DebugExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,10 +13,14 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Bundle\DebugBundle\DebugBundle;
+use Symfony\Bundle\DebugBundle\DependencyInjection\Compiler\DumpDataCollectorPass;
 use Symfony\Bundle\DebugBundle\DependencyInjection\DebugExtension;
+use Symfony\Component\Config\Loader\LoaderInterface;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
 use Symfony\Component\HttpFoundation\RequestStack;
+use Symfony\Component\HttpKernel\DataCollector\DumpDataCollector;
+use Symfony\Component\HttpKernel\Kernel;
 use Symfony\Component\VarDumper\Caster\ReflectionCaster;
 use Symfony\Component\VarDumper\Dumper\CliDumper;
 use Symfony\Component\VarDumper\Server\Connection;
@@ -107,6 +111,33 @@
         $this->assertSame($expectedOutput, $container->findDefinition('cli_dumper_public')->getArgument(0));
     }
 
+    public function testRuntimeModeIsNotSetIfParameterDoesNotExist()
+    {
+        $kernel = new class('dev', true) extends Kernel {
+            public function registerBundles(): iterable
+            {
+                return [];
+            }
+
+            public function registerContainerConfiguration(LoaderInterface $loader): void
+            {
+            }
+
+            public function getKernelParameters(): array
+            {
+                return parent::getKernelParameters();
+            }
+        };
+        $container = new ContainerBuilder();
+        $container->getParameterBag()->add($kernel->getKernelParameters());
+        $container->registerExtension(new DebugExtension());
+        $container->loadFromExtension('debug', []);
+        $container->addCompilerPass(new DumpDataCollectorPass());
+        $this->compileContainer($container);
+
+        $this->assertInstanceOf(DumpDataCollector::class, $container->get('data_collector.dump'));
+    }
+
     private function createContainer()
     {
         $container = new ContainerBuilder(new ParameterBag([
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/AbstractPhpFileCacheWarmer.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/AbstractPhpFileCacheWarmer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/AbstractPhpFileCacheWarmer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/AbstractPhpFileCacheWarmer.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
         // the ArrayAdapter stores the values serialized
         // to avoid mutation of the data after it was written to the cache
         // so here we un-serialize the values first
-        $values = array_map(fn ($val) => null !== $val ? unserialize($val) : null, $arrayAdapter->getValues());
+        $values = array_map(static fn ($val) => null !== $val ? unserialize($val) : null, $arrayAdapter->getValues());
 
         return $this->warmUpPhpArrayAdapter(new PhpArrayAdapter($this->phpArrayFile, new NullAdapter()), $values);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/AnnotationsCacheWarmer.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/AnnotationsCacheWarmer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/AnnotationsCacheWarmer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/AnnotationsCacheWarmer.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,7 +78,7 @@
     protected function warmUpPhpArrayAdapter(PhpArrayAdapter $phpArrayAdapter, array $values): array
     {
         // make sure we don't cache null values
-        $values = array_filter($values, fn ($val) => null !== $val);
+        $values = array_filter($values, static fn ($val) => null !== $val);
 
         return parent::warmUpPhpArrayAdapter($phpArrayAdapter, $values);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/ConfigBuilderCacheWarmer.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/ConfigBuilderCacheWarmer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/ConfigBuilderCacheWarmer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/ConfigBuilderCacheWarmer.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
 
         if ($this->kernel instanceof Kernel) {
             /** @var ContainerBuilder $container */
-            $container = \Closure::bind(function (Kernel $kernel) {
+            $container = \Closure::bind(static function (Kernel $kernel) {
                 $containerBuilder = $kernel->getContainerBuilder();
                 $kernel->prepareContainer($containerBuilder);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/RouterCacheWarmer.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/RouterCacheWarmer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/RouterCacheWarmer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/RouterCacheWarmer.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
             return (array) $router->warmUp($cacheDir, $buildDir);
         }
 
-        throw new \LogicException(sprintf('The router "%s" cannot be warmed up because it does not implement "%s".', get_debug_type($router), WarmableInterface::class));
+        throw new \LogicException(\sprintf('The router "%s" cannot be warmed up because it does not implement "%s".', get_debug_type($router), WarmableInterface::class));
     }
 
     public function isOptional(): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/ValidatorCacheWarmer.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/ValidatorCacheWarmer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/ValidatorCacheWarmer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/ValidatorCacheWarmer.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
     protected function warmUpPhpArrayAdapter(PhpArrayAdapter $phpArrayAdapter, array $values): array
     {
         // make sure we don't cache null values
-        $values = array_filter($values, fn ($val) => null !== $val);
+        $values = array_filter($values, static fn ($val) => null !== $val);
 
         return parent::warmUpPhpArrayAdapter($phpArrayAdapter, $values);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md	2026-05-20 10:56:49.000000000 +0200
@@ -6,6 +6,7 @@
 
  * Add `HttpClientAssertionsTrait`
  * Add `AbstractController::renderBlock()` and `renderBlockView()`
+ * Remove call to `renderView()` in `AbstractController::render()`
  * Add native return type to `Translator` and to `Application::reset()`
  * Deprecate the integration of Doctrine annotations, either uninstall the `doctrine/annotations` package or disable the integration by setting `framework.annotations` to `false`
  * Enable `json_decode_detailed_errors` context for Serializer by default if `kernel.debug` is true and the `seld/jsonlint` package is installed
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,11 +35,11 @@
     {
         $this
             ->setHelp(<<<'EOT'
-The <info>%command.name%</info> command displays information about the current Symfony project.
+                The <info>%command.name%</info> command displays information about the current Symfony project.
 
-The <info>PHP</info> section displays important configuration that could affect your application. The values might
-be different between web and CLI.
-EOT
+                The <info>PHP</info> section displays important configuration that could affect your application. The values might
+                be different between web and CLI.
+                EOT
             )
         ;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AbstractConfigCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AbstractConfigCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AbstractConfigCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AbstractConfigCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
         $rows = [];
 
         $bundles = $this->getApplication()->getKernel()->getBundles();
-        usort($bundles, fn ($bundleA, $bundleB) => strcmp($bundleA->getName(), $bundleB->getName()));
+        usort($bundles, static fn ($bundleA, $bundleB) => strcmp($bundleA->getName(), $bundleB->getName()));
 
         foreach ($bundles as $bundle) {
             $extension = $bundle->getContainerExtension();
@@ -117,7 +117,7 @@
         foreach ($bundles as $bundle) {
             if ($name === $bundle->getName()) {
                 if (!$bundle->getContainerExtension()) {
-                    throw new \LogicException(sprintf('Bundle "%s" does not have a container extension.', $name));
+                    throw new \LogicException(\sprintf('Bundle "%s" does not have a container extension.', $name));
                 }
 
                 return $bundle->getContainerExtension();
@@ -147,13 +147,13 @@
         }
 
         if (!str_ends_with($name, 'Bundle')) {
-            $message = sprintf('No extensions with configuration available for "%s".', $name);
+            $message = \sprintf('No extensions with configuration available for "%s".', $name);
         } else {
-            $message = sprintf('No extension with alias "%s" is enabled.', $name);
+            $message = \sprintf('No extension with alias "%s" is enabled.', $name);
         }
 
         if (isset($guess) && $minScore < 3) {
-            $message .= sprintf("\n\nDid you mean \"%s\"?", $guess);
+            $message .= \sprintf("\n\nDid you mean \"%s\"?", $guess);
         }
 
         throw new LogicException($message);
@@ -165,11 +165,11 @@
     public function validateConfiguration(ExtensionInterface $extension, mixed $configuration)
     {
         if (!$configuration) {
-            throw new \LogicException(sprintf('The extension with alias "%s" does not have its getConfiguration() method setup.', $extension->getAlias()));
+            throw new \LogicException(\sprintf('The extension with alias "%s" does not have its getConfiguration() method setup.', $extension->getAlias()));
         }
 
         if (!$configuration instanceof ConfigurationInterface) {
-            throw new \LogicException(sprintf('Configuration class "%s" should implement ConfigurationInterface in order to be dumpable.', get_debug_type($configuration)));
+            throw new \LogicException(\sprintf('Configuration class "%s" should implement ConfigurationInterface in order to be dumpable.', get_debug_type($configuration)));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,24 +62,24 @@
             ->addOption('relative', null, InputOption::VALUE_NONE, 'Make relative symlinks')
             ->addOption('no-cleanup', null, InputOption::VALUE_NONE, 'Do not remove the assets of the bundles that no longer exist')
             ->setHelp(<<<'EOT'
-The <info>%command.name%</info> command installs bundle assets into a given
-directory (e.g. the <comment>public</comment> directory).
+                The <info>%command.name%</info> command installs bundle assets into a given
+                directory (e.g. the <comment>public</comment> directory).
 
-  <info>php %command.full_name% public</info>
+                  <info>php %command.full_name% public</info>
 
-A "bundles" directory will be created inside the target directory and the
-"Resources/public" directory of each bundle will be copied into it.
+                A "bundles" directory will be created inside the target directory and the
+                "Resources/public" directory of each bundle will be copied into it.
 
-To create a symlink to each bundle instead of copying its assets, use the
-<info>--symlink</info> option (will fall back to hard copies when symbolic links aren't possible:
+                To create a symlink to each bundle instead of copying its assets, use the
+                <info>--symlink</info> option (will fall back to hard copies when symbolic links aren't possible:
 
-  <info>php %command.full_name% public --symlink</info>
+                  <info>php %command.full_name% public --symlink</info>
 
-To make symlink relative, add the <info>--relative</info> option:
+                To make symlink relative, add the <info>--relative</info> option:
 
-  <info>php %command.full_name% public --symlink --relative</info>
+                  <info>php %command.full_name% public --symlink --relative</info>
 
-EOT
+                EOT
             )
         ;
     }
@@ -97,7 +97,7 @@
             $targetArg = $kernel->getProjectDir().'/'.$targetArg;
 
             if (!is_dir($targetArg)) {
-                throw new InvalidArgumentException(sprintf('The target directory "%s" does not exist.', $targetArg));
+                throw new InvalidArgumentException(\sprintf('The target directory "%s" does not exist.', $targetArg));
             }
         }
 
@@ -134,7 +134,7 @@
             $validAssetDirs[] = $assetDir;
 
             if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
-                $message = sprintf("%s\n-> %s", $bundle->getName(), $targetDir);
+                $message = \sprintf("%s\n-> %s", $bundle->getName(), $targetDir);
             } else {
                 $message = $bundle->getName();
             }
@@ -155,13 +155,13 @@
                 }
 
                 if ($method === $expectedMethod) {
-                    $rows[] = [sprintf('<fg=green;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'OK' : "\xE2\x9C\x94" /* HEAVY CHECK MARK (U+2714) */), $message, $method];
+                    $rows[] = [\sprintf('<fg=green;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'OK' : "\xE2\x9C\x94" /* HEAVY CHECK MARK (U+2714) */), $message, $method];
                 } else {
-                    $rows[] = [sprintf('<fg=yellow;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'WARNING' : '!'), $message, $method];
+                    $rows[] = [\sprintf('<fg=yellow;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'WARNING' : '!'), $message, $method];
                 }
             } catch (\Exception $e) {
                 $exitCode = 1;
-                $rows[] = [sprintf('<fg=red;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'ERROR' : "\xE2\x9C\x98" /* HEAVY BALLOT X (U+2718) */), $message, $e->getMessage()];
+                $rows[] = [\sprintf('<fg=red;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'ERROR' : "\xE2\x9C\x98" /* HEAVY BALLOT X (U+2718) */), $message, $e->getMessage()];
             }
         }
         // remove the assets of the bundles that no longer exist
@@ -234,7 +234,7 @@
         }
         $this->filesystem->symlink($originDir, $targetDir);
         if (!file_exists($targetDir)) {
-            throw new IOException(sprintf('Symbolic link "%s" was created but appears to be broken.', $targetDir), 0, null, $targetDir);
+            throw new IOException(\sprintf('Symbolic link "%s" was created but appears to be broken.', $targetDir), 0, null, $targetDir);
         }
     }
 
@@ -243,7 +243,7 @@
      */
     private function hardCopy(string $originDir, string $targetDir): string
     {
-        $this->filesystem->mkdir($targetDir, 0777);
+        $this->filesystem->mkdir($targetDir, 0o777);
         // We use a custom iterator to ignore VCS files
         $this->filesystem->mirror($originDir, $targetDir, Finder::create()->ignoreDotFiles(false)->in($originDir));
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,12 +56,12 @@
                 new InputOption('no-optional-warmers', '', InputOption::VALUE_NONE, 'Skip optional cache warmers (faster)'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command clears and warms up the application cache for a given environment
-and debug mode:
+                The <info>%command.name%</info> command clears and warms up the application cache for a given environment
+                and debug mode:
 
-  <info>php %command.full_name% --env=dev</info>
-  <info>php %command.full_name% --env=prod --no-debug</info>
-EOF
+                  <info>php %command.full_name% --env=dev</info>
+                  <info>php %command.full_name% --env=prod --no-debug</info>
+                EOF
             )
         ;
     }
@@ -80,7 +80,7 @@
         $fs->remove($oldCacheDir);
 
         if (!is_writable($realCacheDir)) {
-            throw new RuntimeException(sprintf('Unable to write in the "%s" directory.', $realCacheDir));
+            throw new RuntimeException(\sprintf('Unable to write in the "%s" directory.', $realCacheDir));
         }
 
         $useBuildDir = $realBuildDir !== $realCacheDir;
@@ -89,7 +89,7 @@
             $fs->remove($oldBuildDir);
 
             if (!is_writable($realBuildDir)) {
-                throw new RuntimeException(sprintf('Unable to write in the "%s" directory.', $realBuildDir));
+                throw new RuntimeException(\sprintf('Unable to write in the "%s" directory.', $realBuildDir));
             }
 
             if ($this->isNfs($realCacheDir)) {
@@ -100,7 +100,7 @@
             $fs->mkdir($realCacheDir);
         }
 
-        $io->comment(sprintf('Clearing the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
+        $io->comment(\sprintf('Clearing the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
         if ($useBuildDir) {
             $this->cacheClearer->clear($realBuildDir);
         }
@@ -199,7 +199,7 @@
             $io->comment('Finished');
         }
 
-        $io->success(sprintf('Cache for the "%s" environment (debug=%s) was successfully cleared.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
+        $io->success(\sprintf('Cache for the "%s" environment (debug=%s) was successfully cleared.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
 
         return 0;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolClearCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolClearCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolClearCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolClearCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,10 +55,10 @@
             ->addOption('all', null, InputOption::VALUE_NONE, 'Clear all cache pools')
             ->addOption('exclude', null, InputOption::VALUE_IS_ARRAY | InputOption::VALUE_REQUIRED, 'A list of cache pools or cache pool clearers to exclude')
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command clears the given cache pools or cache pool clearers.
+                The <info>%command.name%</info> command clears the given cache pools or cache pool clearers.
 
-    %command.full_name% <cache pool or clearer 1> [...<cache pool or clearer N>]
-EOF
+                    %command.full_name% <cache pool or clearer 1> [...<cache pool or clearer N>]
+                EOF
             )
         ;
     }
@@ -99,28 +99,28 @@
                 } elseif ($pool instanceof Psr6CacheClearer) {
                     $clearers[$id] = $pool;
                 } else {
-                    throw new InvalidArgumentException(sprintf('"%s" is not a cache pool nor a cache clearer.', $id));
+                    throw new InvalidArgumentException(\sprintf('"%s" is not a cache pool nor a cache clearer.', $id));
                 }
             }
         }
 
         foreach ($clearers as $id => $clearer) {
-            $io->comment(sprintf('Calling cache clearer: <info>%s</info>', $id));
+            $io->comment(\sprintf('Calling cache clearer: <info>%s</info>', $id));
             $clearer->clear($kernel->getContainer()->getParameter('kernel.cache_dir'));
         }
 
         $failure = false;
         foreach ($pools as $id => $pool) {
-            $io->comment(sprintf('Clearing cache pool: <info>%s</info>', $id));
+            $io->comment(\sprintf('Clearing cache pool: <info>%s</info>', $id));
 
             if ($pool instanceof CacheItemPoolInterface) {
                 if (!$pool->clear()) {
-                    $io->warning(sprintf('Cache pool "%s" could not be cleared.', $pool));
+                    $io->warning(\sprintf('Cache pool "%s" could not be cleared.', $pool));
                     $failure = true;
                 }
             } else {
                 if (false === $this->poolClearer->clearPool($id)) {
-                    $io->warning(sprintf('Cache pool "%s" could not be cleared.', $pool));
+                    $io->warning(\sprintf('Cache pool "%s" could not be cleared.', $pool));
                     $failure = true;
                 }
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolDeleteCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolDeleteCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolDeleteCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolDeleteCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,10 +51,10 @@
                 new InputArgument('key', InputArgument::REQUIRED, 'The cache key to delete from the pool'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> deletes an item from a given cache pool.
+                The <info>%command.name%</info> deletes an item from a given cache pool.
 
-    %command.full_name% <pool> <key>
-EOF
+                    %command.full_name% <pool> <key>
+                EOF
             )
         ;
     }
@@ -67,16 +67,16 @@
         $cachePool = $this->poolClearer->getPool($pool);
 
         if (!$cachePool->hasItem($key)) {
-            $io->note(sprintf('Cache item "%s" does not exist in cache pool "%s".', $key, $pool));
+            $io->note(\sprintf('Cache item "%s" does not exist in cache pool "%s".', $key, $pool));
 
             return 0;
         }
 
         if (!$cachePool->deleteItem($key)) {
-            throw new \Exception(sprintf('Cache item "%s" could not be deleted.', $key));
+            throw new \Exception(\sprintf('Cache item "%s" could not be deleted.', $key));
         }
 
-        $io->success(sprintf('Cache item "%s" was successfully deleted.', $key));
+        $io->success(\sprintf('Cache item "%s" was successfully deleted.', $key));
 
         return 0;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolInvalidateTagsCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolInvalidateTagsCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolInvalidateTagsCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolInvalidateTagsCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,26 +65,26 @@
         $errors = false;
 
         foreach ($pools as $name) {
-            $io->comment(sprintf('Invalidating tag(s): <info>%s</info> from pool <comment>%s</comment>.', $tagList, $name));
+            $io->comment(\sprintf('Invalidating tag(s): <info>%s</info> from pool <comment>%s</comment>.', $tagList, $name));
 
             try {
                 $pool = $this->pools->get($name);
             } catch (ServiceNotFoundException) {
-                $io->error(sprintf('Pool "%s" not found.', $name));
+                $io->error(\sprintf('Pool "%s" not found.', $name));
                 $errors = true;
 
                 continue;
             }
 
             if (!$pool instanceof TagAwareCacheInterface) {
-                $io->error(sprintf('Pool "%s" is not taggable.', $name));
+                $io->error(\sprintf('Pool "%s" is not taggable.', $name));
                 $errors = true;
 
                 continue;
             }
 
             if (!$pool->invalidateTags($tags)) {
-                $io->error(sprintf('Cache tag(s) "%s" could not be invalidated for pool "%s".', $tagList, $name));
+                $io->error(\sprintf('Cache tag(s) "%s" could not be invalidated for pool "%s".', $tagList, $name));
                 $errors = true;
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolListCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolListCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolListCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolListCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,8 +41,8 @@
     {
         $this
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command lists all available cache pools.
-EOF
+                The <info>%command.name%</info> command lists all available cache pools.
+                EOF
             )
         ;
     }
@@ -51,7 +51,7 @@
     {
         $io = new SymfonyStyle($input, $output);
 
-        $io->table(['Pool name'], array_map(fn ($pool) => [$pool], $this->poolNames));
+        $io->table(['Pool name'], array_map(static fn ($pool) => [$pool], $this->poolNames));
 
         return 0;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolPruneCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolPruneCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolPruneCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolPruneCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,10 +42,10 @@
     {
         $this
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command deletes all expired items from all pruneable pools.
+                The <info>%command.name%</info> command deletes all expired items from all pruneable pools.
 
-    %command.full_name%
-EOF
+                    %command.full_name%
+                EOF
             )
         ;
     }
@@ -53,14 +53,21 @@
     protected function execute(InputInterface $input, OutputInterface $output): int
     {
         $io = new SymfonyStyle($input, $output);
+        $exitCode = Command::SUCCESS;
 
         foreach ($this->pools as $name => $pool) {
-            $io->comment(sprintf('Pruning cache pool: <info>%s</info>', $name));
-            $pool->prune();
+            $io->comment(\sprintf('Pruning cache pool: <info>%s</info>', $name));
+
+            if (!$pool->prune()) {
+                $io->error(\sprintf('Cache pool "%s" could not be pruned.', $name));
+                $exitCode = Command::FAILURE;
+            }
         }
 
-        $io->success('Successfully pruned cache pool(s).');
+        if (Command::SUCCESS === $exitCode) {
+            $io->success('Successfully pruned cache pool(s).');
+        }
 
-        return 0;
+        return $exitCode;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,11 +47,11 @@
                 new InputOption('no-optional-warmers', '', InputOption::VALUE_NONE, 'Skip optional cache warmers (faster)'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command warms up the cache.
+                The <info>%command.name%</info> command warms up the cache.
 
-Before running this command, the cache must be empty.
+                Before running this command, the cache must be empty.
 
-EOF
+                EOF
             )
         ;
     }
@@ -61,7 +61,7 @@
         $io = new SymfonyStyle($input, $output);
 
         $kernel = $this->getApplication()->getKernel();
-        $io->comment(sprintf('Warming up the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
+        $io->comment(\sprintf('Warming up the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
 
         if (!$input->getOption('no-optional-warmers')) {
             $this->cacheWarmer->enableOptionalWarmers();
@@ -72,14 +72,15 @@
             $kernel->warmUp($cacheDir);
         }
 
-        $preload = $this->cacheWarmer->warmUp($cacheDir);
-
         $buildDir = $kernel->getContainer()->getParameter('kernel.build_dir');
+
+        $preload = $this->cacheWarmer->warmUp($cacheDir, $buildDir);
+
         if ($preload && $cacheDir === $buildDir && file_exists($preloadFile = $buildDir.'/'.$kernel->getContainer()->getParameter('kernel.container_class').'.preload.php')) {
             Preloader::append($preloadFile, $preload);
         }
 
-        $io->success(sprintf('Cache for the "%s" environment (debug=%s) was successfully warmed.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
+        $io->success(\sprintf('Cache for the "%s" environment (debug=%s) was successfully warmed.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
 
         return 0;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Bundle\FrameworkBundle\Command;
 
+use Psr\Container\ContainerInterface;
 use Symfony\Component\Config\Definition\ConfigurationInterface;
 use Symfony\Component\Config\Definition\Processor;
 use Symfony\Component\Console\Attribute\AsCommand;
@@ -39,9 +40,15 @@
 #[AsCommand(name: 'debug:config', description: 'Dump the current configuration for an extension')]
 class ConfigDebugCommand extends AbstractConfigCommand
 {
+    public function __construct(
+        private ?ContainerInterface $envVarProcessors = null,
+    ) {
+        parent::__construct();
+    }
+
     protected function configure(): void
     {
-        $commentedHelpFormats = array_map(fn ($format) => sprintf('<comment>%s</comment>', $format), $this->getAvailableFormatOptions());
+        $commentedHelpFormats = array_map(static fn ($format) => \sprintf('<comment>%s</comment>', $format), $this->getAvailableFormatOptions());
         $helpFormats = implode('", "', $commentedHelpFormats);
 
         $this
@@ -49,27 +56,27 @@
                 new InputArgument('name', InputArgument::OPTIONAL, 'The bundle name or the extension alias'),
                 new InputArgument('path', InputArgument::OPTIONAL, 'The configuration option path'),
                 new InputOption('resolve-env', null, InputOption::VALUE_NONE, 'Display resolved environment variable values instead of placeholders'),
-                new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), class_exists(Yaml::class) ? 'txt' : 'json'),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), class_exists(Yaml::class) ? 'txt' : 'json'),
             ])
             ->setHelp(<<<EOF
-The <info>%command.name%</info> command dumps the current configuration for an
-extension/bundle.
+                The <info>%command.name%</info> command dumps the current configuration for an
+                extension/bundle.
 
-Either the extension alias or bundle name can be used:
+                Either the extension alias or bundle name can be used:
 
-  <info>php %command.full_name% framework</info>
-  <info>php %command.full_name% FrameworkBundle</info>
+                  <info>php %command.full_name% framework</info>
+                  <info>php %command.full_name% FrameworkBundle</info>
 
-The <info>--format</info> option specifies the format of the configuration,
-these are "{$helpFormats}".
+                The <info>--format</info> option specifies the format of the configuration,
+                these are "{$helpFormats}".
 
-  <info>php %command.full_name% framework --format=json</info>
+                  <info>php %command.full_name% framework --format=json</info>
 
-For dumping a specific option, add its path as second argument:
+                For dumping a specific option, add its path as second argument:
 
-  <info>php %command.full_name% framework serializer.enabled</info>
+                  <info>php %command.full_name% framework serializer.enabled</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -106,7 +113,7 @@
         if (null === $path = $input->getArgument('path')) {
             if ('txt' === $input->getOption('format')) {
                 $io->title(
-                    sprintf('Current configuration for %s', $name === $extensionAlias ? sprintf('extension with alias "%s"', $extensionAlias) : sprintf('"%s"', $name))
+                    \sprintf('Current configuration for %s', $name === $extensionAlias ? \sprintf('extension with alias "%s"', $extensionAlias) : \sprintf('"%s"', $name))
                 );
             }
 
@@ -123,7 +130,7 @@
             return 1;
         }
 
-        $io->title(sprintf('Current configuration for "%s.%s"', $extensionAlias, $path));
+        $io->title(\sprintf('Current configuration for "%s.%s"', $extensionAlias, $path));
 
         $io->writeln($this->convertToFormat($config, $format));
 
@@ -135,7 +142,7 @@
         return match ($format) {
             'txt', 'yaml' => Yaml::dump($config, 10),
             'json' => json_encode($config, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE),
-            default => throw new InvalidArgumentException(sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
+            default => throw new InvalidArgumentException(\sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
         };
     }
 
@@ -146,6 +153,9 @@
 
         $method = new \ReflectionMethod($kernel, 'buildContainer');
         $container = $method->invoke($kernel);
+        if ($this->envVarProcessors) {
+            $container->set('container.env_var_processors_locator', $this->envVarProcessors);
+        }
         $container->getCompiler()->compile($container);
 
         return $container;
@@ -161,8 +171,8 @@
         $steps = explode('.', $path);
 
         foreach ($steps as $step) {
-            if (!\array_key_exists($step, $config)) {
-                throw new LogicException(sprintf('Unable to find configuration for "%s.%s".', $alias, $path));
+            if (!\is_array($config) || !\array_key_exists($step, $config)) {
+                throw new LogicException(\sprintf('Unable to find configuration for "%s.%s".', $alias, $path));
             }
 
             $config = $config[$step];
@@ -190,7 +200,7 @@
         // Fall back to default config if the extension has one
 
         if (!$extension instanceof ConfigurationExtensionInterface && !$extension instanceof ConfigurationInterface) {
-            throw new \LogicException(sprintf('The extension with alias "%s" does not have configuration.', $extensionAlias));
+            throw new \LogicException(\sprintf('The extension with alias "%s" does not have configuration.', $extensionAlias));
         }
 
         $configs = $container->getExtensionConfig($extensionAlias);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,34 +39,34 @@
 {
     protected function configure(): void
     {
-        $commentedHelpFormats = array_map(fn ($format) => sprintf('<comment>%s</comment>', $format), $this->getAvailableFormatOptions());
+        $commentedHelpFormats = array_map(static fn ($format) => \sprintf('<comment>%s</comment>', $format), $this->getAvailableFormatOptions());
         $helpFormats = implode('", "', $commentedHelpFormats);
 
         $this
             ->setDefinition([
                 new InputArgument('name', InputArgument::OPTIONAL, 'The Bundle name or the extension alias'),
                 new InputArgument('path', InputArgument::OPTIONAL, 'The configuration option path'),
-                new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'yaml'),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'yaml'),
             ])
             ->setHelp(<<<EOF
-The <info>%command.name%</info> command dumps the default configuration for an
-extension/bundle.
+                The <info>%command.name%</info> command dumps the default configuration for an
+                extension/bundle.
 
-Either the extension alias or bundle name can be used:
+                Either the extension alias or bundle name can be used:
 
-  <info>php %command.full_name% framework</info>
-  <info>php %command.full_name% FrameworkBundle</info>
+                  <info>php %command.full_name% framework</info>
+                  <info>php %command.full_name% FrameworkBundle</info>
 
-The <info>--format</info> option specifies the format of the configuration,
-these are "{$helpFormats}".
+                The <info>--format</info> option specifies the format of the configuration,
+                these are "{$helpFormats}".
 
-  <info>php %command.full_name% FrameworkBundle --format=xml</info>
+                  <info>php %command.full_name% FrameworkBundle --format=xml</info>
 
-For dumping a specific option, add its path as second argument (only available for the yaml format):
+                For dumping a specific option, add its path as second argument (only available for the yaml format):
 
-  <info>php %command.full_name% framework http_client.default_options</info>
+                  <info>php %command.full_name% framework http_client.default_options</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -118,27 +118,27 @@
         }
 
         if ($name === $extension->getAlias()) {
-            $message = sprintf('Default configuration for extension with alias: "%s"', $name);
+            $message = \sprintf('Default configuration for extension with alias: "%s"', $name);
         } else {
-            $message = sprintf('Default configuration for "%s"', $name);
+            $message = \sprintf('Default configuration for "%s"', $name);
         }
 
         if (null !== $path) {
-            $message .= sprintf(' at path "%s"', $path);
+            $message .= \sprintf(' at path "%s"', $path);
         }
 
         switch ($format) {
             case 'yaml':
-                $io->writeln(sprintf('# %s', $message));
+                $io->writeln(\sprintf('# %s', $message));
                 $dumper = new YamlReferenceDumper();
                 break;
             case 'xml':
-                $io->writeln(sprintf('<!-- %s -->', $message));
+                $io->writeln(\sprintf('<!-- %s -->', $message));
                 $dumper = new XmlReferenceDumper();
                 break;
             default:
                 $io->writeln($message);
-                throw new InvalidArgumentException(sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions())));
+                throw new InvalidArgumentException(\sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions())));
         }
 
         $io->writeln(null === $path ? $dumper->dump($configuration, $extension->getNamespace()) : $dumper->dumpAtPath($configuration, $path));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,61 +52,61 @@
                 new InputOption('types', null, InputOption::VALUE_NONE, 'Display types (classes/interfaces) available in the container'),
                 new InputOption('env-var', null, InputOption::VALUE_REQUIRED, 'Display a specific environment variable used in the container'),
                 new InputOption('env-vars', null, InputOption::VALUE_NONE, 'Display environment variables used in the container'),
-                new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
                 new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw description'),
                 new InputOption('deprecations', null, InputOption::VALUE_NONE, 'Display deprecations generated when compiling and warming up the container'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command displays all configured <comment>public</comment> services:
+                The <info>%command.name%</info> command displays all configured <comment>public</comment> services:
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-To see deprecations generated during container compilation and cache warmup, use the <info>--deprecations</info> option:
+                To see deprecations generated during container compilation and cache warmup, use the <info>--deprecations</info> option:
 
-  <info>php %command.full_name% --deprecations</info>
+                  <info>php %command.full_name% --deprecations</info>
 
-To get specific information about a service, specify its name:
+                To get specific information about a service, specify its name:
 
-  <info>php %command.full_name% validator</info>
+                  <info>php %command.full_name% validator</info>
 
-To get specific information about a service including all its arguments, use the <info>--show-arguments</info> flag:
+                To get specific information about a service including all its arguments, use the <info>--show-arguments</info> flag:
 
-  <info>php %command.full_name% validator --show-arguments</info>
+                  <info>php %command.full_name% validator --show-arguments</info>
 
-To see available types that can be used for autowiring, use the <info>--types</info> flag:
+                To see available types that can be used for autowiring, use the <info>--types</info> flag:
 
-  <info>php %command.full_name% --types</info>
+                  <info>php %command.full_name% --types</info>
 
-To see environment variables used by the container, use the <info>--env-vars</info> flag:
+                To see environment variables used by the container, use the <info>--env-vars</info> flag:
 
-  <info>php %command.full_name% --env-vars</info>
+                  <info>php %command.full_name% --env-vars</info>
 
-Display a specific environment variable by specifying its name with the <info>--env-var</info> option:
+                Display a specific environment variable by specifying its name with the <info>--env-var</info> option:
 
-  <info>php %command.full_name% --env-var=APP_ENV</info>
+                  <info>php %command.full_name% --env-var=APP_ENV</info>
 
-Use the --tags option to display tagged <comment>public</comment> services grouped by tag:
+                Use the --tags option to display tagged <comment>public</comment> services grouped by tag:
 
-  <info>php %command.full_name% --tags</info>
+                  <info>php %command.full_name% --tags</info>
 
-Find all services with a specific tag by specifying the tag name with the <info>--tag</info> option:
+                Find all services with a specific tag by specifying the tag name with the <info>--tag</info> option:
 
-  <info>php %command.full_name% --tag=form.type</info>
+                  <info>php %command.full_name% --tag=form.type</info>
 
-Use the <info>--parameters</info> option to display all parameters:
+                Use the <info>--parameters</info> option to display all parameters:
 
-  <info>php %command.full_name% --parameters</info>
+                  <info>php %command.full_name% --parameters</info>
 
-Display a specific parameter by specifying its name with the <info>--parameter</info> option:
+                Display a specific parameter by specifying its name with the <info>--parameter</info> option:
 
-  <info>php %command.full_name% --parameter=kernel.debug</info>
+                  <info>php %command.full_name% --parameter=kernel.debug</info>
 
-By default, internal services are hidden. You can display them
-using the <info>--show-hidden</info> flag:
+                By default, internal services are hidden. You can display them
+                using the <info>--show-hidden</info> flag:
 
-  <info>php %command.full_name% --show-hidden</info>
+                  <info>php %command.full_name% --show-hidden</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -171,19 +171,19 @@
                 if ($object->hasDefinition($options['id'])) {
                     $definition = $object->getDefinition($options['id']);
                     if ($definition->isDeprecated()) {
-                        $errorIo->warning($definition->getDeprecation($options['id'])['message'] ?? sprintf('The "%s" service is deprecated.', $options['id']));
+                        $errorIo->warning($definition->getDeprecation($options['id'])['message'] ?? \sprintf('The "%s" service is deprecated.', $options['id']));
                     }
                 }
                 if ($object->hasAlias($options['id'])) {
                     $alias = $object->getAlias($options['id']);
                     if ($alias->isDeprecated()) {
-                        $errorIo->warning($alias->getDeprecation($options['id'])['message'] ?? sprintf('The "%s" alias is deprecated.', $options['id']));
+                        $errorIo->warning($alias->getDeprecation($options['id'])['message'] ?? \sprintf('The "%s" alias is deprecated.', $options['id']));
                     }
                 }
             }
 
             if (isset($options['id']) && isset($kernel->getContainer()->getRemovedIds()[$options['id']])) {
-                $errorIo->note(sprintf('The "%s" service or alias has been removed or inlined when the container was compiled.', $options['id']));
+                $errorIo->note(\sprintf('The "%s" service or alias has been removed or inlined when the container was compiled.', $options['id']));
             }
         } catch (ServiceNotFoundException $e) {
             if ('' !== $e->getId() && '@' === $e->getId()[0]) {
@@ -277,7 +277,7 @@
 
         $matchingServices = $this->findServiceIdsContaining($container, $name, $showHidden);
         if (!$matchingServices) {
-            throw new InvalidArgumentException(sprintf('No services found that match "%s".', $name));
+            throw new InvalidArgumentException(\sprintf('No services found that match "%s".', $name));
         }
 
         if (1 === \count($matchingServices)) {
@@ -297,7 +297,7 @@
 
         $matchingTags = $this->findTagsContaining($container, $tagName);
         if (!$matchingTags) {
-            throw new InvalidArgumentException(sprintf('No tags found that match "%s".', $tagName));
+            throw new InvalidArgumentException(\sprintf('No tags found that match "%s".', $tagName));
         }
 
         if (1 === \count($matchingTags)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ContainerLintCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ContainerLintCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ContainerLintCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/ContainerLintCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -80,7 +80,7 @@
 
         if (!$kernel->isDebug() || !$kernelContainer->getParameter('debug.container.dump') || !(new ConfigCache($kernelContainer->getParameter('debug.container.dump'), true))->isFresh()) {
             if (!$kernel instanceof Kernel) {
-                throw new RuntimeException(sprintf('This command does not support the application kernel: "%s" does not extend "%s".', get_debug_type($kernel), Kernel::class));
+                throw new RuntimeException(\sprintf('This command does not support the application kernel: "%s" does not extend "%s".', get_debug_type($kernel), Kernel::class));
             }
 
             $buildContainer = \Closure::bind(function (): ContainerBuilder {
@@ -91,7 +91,7 @@
             $container = $buildContainer();
         } else {
             if (!$kernelContainer instanceof Container) {
-                throw new RuntimeException(sprintf('This command does not support the application container: "%s" does not extend "%s".', get_debug_type($kernelContainer), Container::class));
+                throw new RuntimeException(\sprintf('This command does not support the application container: "%s" does not extend "%s".', get_debug_type($kernelContainer), Container::class));
             }
 
             (new XmlFileLoader($container = new ContainerBuilder($parameterBag = new EnvPlaceholderParameterBag()), new FileLocator()))->load($kernelContainer->getParameter('debug.container.dump'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/DebugAutowiringCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/DebugAutowiringCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/DebugAutowiringCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/DebugAutowiringCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,16 +49,16 @@
                 new InputOption('all', null, InputOption::VALUE_NONE, 'Show also services that are not aliased'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command displays the classes and interfaces that
-you can use as type-hints for autowiring:
+                The <info>%command.name%</info> command displays the classes and interfaces that
+                you can use as type-hints for autowiring:
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-You can also pass a search term to filter the list:
+                You can also pass a search term to filter the list:
 
-  <info>php %command.full_name% log</info>
+                  <info>php %command.full_name% log</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -75,10 +75,10 @@
         if ($search = $input->getArgument('search')) {
             $searchNormalized = preg_replace('/[^a-zA-Z0-9\x7f-\xff $]++/', '', $search);
 
-            $serviceIds = array_filter($serviceIds, fn ($serviceId) => false !== stripos(str_replace('\\', '', $serviceId), $searchNormalized) && !str_starts_with($serviceId, '.'));
+            $serviceIds = array_filter($serviceIds, static fn ($serviceId) => false !== stripos(str_replace('\\', '', $serviceId), $searchNormalized) && !str_starts_with($serviceId, '.'));
 
             if (!$serviceIds) {
-                $errorIo->error(sprintf('No autowirable classes or interfaces found matching "%s"', $search));
+                $errorIo->error(\sprintf('No autowirable classes or interfaces found matching "%s"', $search));
 
                 return 1;
             }
@@ -97,7 +97,7 @@
         $io->title('Autowirable Types');
         $io->text('The following classes & interfaces can be used as type-hints when autowiring:');
         if ($search) {
-            $io->text(sprintf('(only showing classes/interfaces matching <comment>%s</comment>)', $search));
+            $io->text(\sprintf('(only showing classes/interfaces matching <comment>%s</comment>)', $search));
         }
         $hasAlias = [];
         $all = $input->getOption('all');
@@ -120,10 +120,10 @@
                 }
             }
 
-            $serviceLine = sprintf('<fg=yellow>%s</>', $serviceId);
+            $serviceLine = \sprintf('<fg=yellow>%s</>', $serviceId);
             if ('' !== $fileLink = $this->getFileLink($previousId)) {
                 $serviceLine = substr($serviceId, \strlen($previousId));
-                $serviceLine = sprintf('<fg=yellow;href=%s>%s</>', $fileLink, $previousId).('' !== $serviceLine ? sprintf('<fg=yellow>%s</>', $serviceLine) : '');
+                $serviceLine = \sprintf('<fg=yellow;href=%s>%s</>', $fileLink, $previousId).('' !== $serviceLine ? \sprintf('<fg=yellow>%s</>', $serviceLine) : '');
             }
 
             if ($container->hasAlias($serviceId)) {
@@ -168,7 +168,7 @@
         $io->newLine();
 
         if (0 < $serviceIdsNb) {
-            $io->text(sprintf('%s more concrete service%s would be displayed when adding the "--all" option.', $serviceIdsNb, $serviceIdsNb > 1 ? 's' : ''));
+            $io->text(\sprintf('%s more concrete service%s would be displayed when adding the "--all" option.', $serviceIdsNb, $serviceIdsNb > 1 ? 's' : ''));
         }
         if ($all) {
             $io->text('Pro-tip: use interfaces in your type-hints instead of classes to benefit from the dependency inversion principle.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/EventDispatcherDebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/EventDispatcherDebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/EventDispatcherDebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/EventDispatcherDebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,18 +52,18 @@
             ->setDefinition([
                 new InputArgument('event', InputArgument::OPTIONAL, 'An event name or a part of the event name'),
                 new InputOption('dispatcher', null, InputOption::VALUE_REQUIRED, 'To view events of a specific event dispatcher', self::DEFAULT_DISPATCHER),
-                new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
                 new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw description'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command displays all configured listeners:
+                The <info>%command.name%</info> command displays all configured listeners:
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-To get specific listeners for an event, specify its name:
+                To get specific listeners for an event, specify its name:
 
-  <info>php %command.full_name% kernel.request</info>
-EOF
+                  <info>php %command.full_name% kernel.request</info>
+                EOF
             )
         ;
     }
@@ -78,7 +78,7 @@
         $options = [];
         $dispatcherServiceName = $input->getOption('dispatcher');
         if (!$this->dispatchers->has($dispatcherServiceName)) {
-            $io->getErrorStyle()->error(sprintf('Event dispatcher "%s" is not available.', $dispatcherServiceName));
+            $io->getErrorStyle()->error(\sprintf('Event dispatcher "%s" is not available.', $dispatcherServiceName));
 
             return 1;
         }
@@ -92,7 +92,7 @@
                 // if there is no direct match, try find partial matches
                 $events = $this->searchForEvent($dispatcher, $event);
                 if (0 === \count($events)) {
-                    $io->getErrorStyle()->warning(sprintf('The event "%s" does not have any registered listeners.', $event));
+                    $io->getErrorStyle()->warning(\sprintf('The event "%s" does not have any registered listeners.', $event));
 
                     return 0;
                 } elseif (1 === \count($events)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,15 +57,15 @@
                 new InputArgument('name', InputArgument::OPTIONAL, 'A route name'),
                 new InputOption('show-controllers', null, InputOption::VALUE_NONE, 'Show assigned controllers in overview'),
                 new InputOption('show-aliases', null, InputOption::VALUE_NONE, 'Show aliases in overview'),
-                new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
                 new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw route(s)'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> displays the configured routes:
+                The <info>%command.name%</info> displays the configured routes:
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -107,7 +107,7 @@
             }
 
             if (!$route) {
-                throw new InvalidArgumentException(sprintf('The route "%s" does not exist.', $name));
+                throw new InvalidArgumentException(\sprintf('The route "%s" does not exist.', $name));
             }
 
             $helper->describe($io, $route, [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,15 +57,15 @@
                 new InputOption('host', null, InputOption::VALUE_REQUIRED, 'Set the URI host'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> shows which routes match a given request and which don't and for what reason:
+                The <info>%command.name%</info> shows which routes match a given request and which don't and for what reason:
 
-  <info>php %command.full_name% /foo</info>
+                  <info>php %command.full_name% /foo</info>
 
-or
+                or
 
-  <info>php %command.full_name% /foo --method POST --scheme https --host symfony.com --verbose</info>
+                  <info>php %command.full_name% /foo --method POST --scheme https --host symfony.com --verbose</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -97,21 +97,21 @@
         $matches = false;
         foreach ($traces as $trace) {
             if (TraceableUrlMatcher::ROUTE_ALMOST_MATCHES == $trace['level']) {
-                $io->text(sprintf('Route <info>"%s"</> almost matches but %s', $trace['name'], lcfirst($trace['log'])));
+                $io->text(\sprintf('Route <info>"%s"</> almost matches but %s', $trace['name'], lcfirst($trace['log'])));
             } elseif (TraceableUrlMatcher::ROUTE_MATCHES == $trace['level']) {
-                $io->success(sprintf('Route "%s" matches', $trace['name']));
+                $io->success(\sprintf('Route "%s" matches', $trace['name']));
 
                 $routerDebugCommand = $this->getApplication()->find('debug:router');
                 $routerDebugCommand->run(new ArrayInput(['name' => $trace['name']]), $output);
 
                 $matches = true;
             } elseif ($input->getOption('verbose')) {
-                $io->text(sprintf('Route "%s" does not match: %s', $trace['name'], $trace['log']));
+                $io->text(\sprintf('Route "%s" does not match: %s', $trace['name'], $trace['log']));
             }
         }
 
         if (!$matches) {
-            $io->error(sprintf('None of the routes match the path "%s"', $input->getArgument('path_info')));
+            $io->error(\sprintf('None of the routes match the path "%s"', $input->getArgument('path_info')));
 
             return 1;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsDecryptToLocalCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsDecryptToLocalCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsDecryptToLocalCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsDecryptToLocalCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,14 +44,14 @@
         $this
             ->addOption('force', 'f', InputOption::VALUE_NONE, 'Force overriding of secrets that already exist in the local vault')
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command decrypts all secrets and copies them in the local vault.
+                The <info>%command.name%</info> command decrypts all secrets and copies them in the local vault.
 
-    <info>%command.full_name%</info>
+                    <info>%command.full_name%</info>
 
-When the <info>--force</info> option is provided, secrets that already exist in the local vault are overridden.
+                When the <info>--force</info> option is provided, secrets that already exist in the local vault are overridden.
 
-    <info>%command.full_name% --force</info>
-EOF
+                    <info>%command.full_name% --force</info>
+                EOF
             )
         ;
     }
@@ -68,7 +68,7 @@
 
         $secrets = $this->vault->list(true);
 
-        $io->comment(sprintf('%d secret%s found in the vault.', \count($secrets), 1 !== \count($secrets) ? 's' : ''));
+        $io->comment(\sprintf('%d secret%s found in the vault.', \count($secrets), 1 !== \count($secrets) ? 's' : ''));
 
         $skipped = 0;
         if (!$input->getOption('force')) {
@@ -82,14 +82,14 @@
 
         if ($skipped > 0) {
             $io->warning([
-                sprintf('%d secret%s already overridden in the local vault and will be skipped.', $skipped, 1 !== $skipped ? 's are' : ' is'),
+                \sprintf('%d secret%s already overridden in the local vault and will be skipped.', $skipped, 1 !== $skipped ? 's are' : ' is'),
                 'Use the --force flag to override these.',
             ]);
         }
 
         foreach ($secrets as $k => $v) {
             if (null === $v) {
-                $io->error($this->vault->getLastMessage() ?? sprintf('Secret "%s" has been skipped as there was an error reading it.', $k));
+                $io->error($this->vault->getLastMessage() ?? \sprintf('Secret "%s" has been skipped as there was an error reading it.', $k));
                 continue;
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,10 +42,10 @@
     {
         $this
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command encrypts all locally overridden secrets to the vault.
+                The <info>%command.name%</info> command encrypts all locally overridden secrets to the vault.
 
-    <info>%command.full_name%</info>
-EOF
+                    <info>%command.full_name%</info>
+                EOF
             )
         ;
     }
@@ -61,14 +61,13 @@
         }
 
         foreach ($this->vault->list(true) as $name => $value) {
-            $localValue = $this->localVault->reveal($name);
+            if (null === $localValue = $this->localVault->reveal($name)) {
+                continue;
+            }
 
-            if (null !== $localValue && $value !== $localValue) {
+            if ($value !== $localValue) {
                 $this->vault->seal($name, $localValue);
-            } elseif (null !== $message = $this->localVault->getLastMessage()) {
-                $io->error($message);
-
-                return 1;
+                $io->note($this->vault->getLastMessage());
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsGenerateKeysCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsGenerateKeysCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsGenerateKeysCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsGenerateKeysCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,16 +47,16 @@
             ->addOption('local', 'l', InputOption::VALUE_NONE, 'Update the local vault.')
             ->addOption('rotate', 'r', InputOption::VALUE_NONE, 'Re-encrypt existing secrets with the newly generated keys.')
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command generates a new encryption key.
+                The <info>%command.name%</info> command generates a new encryption key.
 
-    <info>%command.full_name%</info>
+                    <info>%command.full_name%</info>
 
-If encryption keys already exist, the command must be called with
-the <info>--rotate</info> option in order to override those keys and re-encrypt
-existing secrets.
+                If encryption keys already exist, the command must be called with
+                the <info>--rotate</info> option in order to override those keys and re-encrypt
+                existing secrets.
 
-    <info>%command.full_name% --rotate</info>
-EOF
+                    <info>%command.full_name% --rotate</info>
+                EOF
             )
         ;
     }
@@ -67,7 +67,7 @@
         $vault = $input->getOption('local') ? $this->localVault : $this->vault;
 
         if (null === $vault) {
-            $io->success('The local vault is disabled.');
+            $io->error('The local vault is disabled.');
 
             return 1;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsListCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsListCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsListCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsListCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,14 +47,14 @@
         $this
             ->addOption('reveal', 'r', InputOption::VALUE_NONE, 'Display decrypted values alongside names')
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command list all stored secrets.
+                The <info>%command.name%</info> command list all stored secrets.
 
-    <info>%command.full_name%</info>
+                    <info>%command.full_name%</info>
 
-When the option <info>--reveal</info> is provided, the decrypted secrets are also displayed.
+                When the option <info>--reveal</info> is provided, the decrypted secrets are also displayed.
 
-    <info>%command.full_name% --reveal</info>
-EOF
+                    <info>%command.full_name% --reveal</info>
+                EOF
             )
         ;
     }
@@ -66,7 +66,7 @@
         $io->comment('Use <info>"%env(<name>)%"</info> to reference a secret in a config file.');
 
         if (!$reveal = $input->getOption('reveal')) {
-            $io->comment(sprintf('To reveal the secrets run <info>php %s %s --reveal</info>', $_SERVER['PHP_SELF'], $this->getName()));
+            $io->comment(\sprintf('To reveal the secrets run <info>php %s %s --reveal</info>', $_SERVER['PHP_SELF'], $this->getName()));
         }
 
         $secrets = $this->vault->list($reveal);
@@ -75,7 +75,7 @@
         $rows = [];
 
         $dump = new Dumper($output);
-        $dump = fn ($v) => null === $v ? '******' : $dump($v);
+        $dump = static fn ($v) => null === $v ? '******' : $dump($v);
 
         foreach ($secrets as $name => $value) {
             $rows[$name] = [$name, $dump($value)];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsRemoveCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsRemoveCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsRemoveCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsRemoveCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,10 +49,10 @@
             ->addArgument('name', InputArgument::REQUIRED, 'The name of the secret')
             ->addOption('local', 'l', InputOption::VALUE_NONE, 'Update the local vault.')
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command removes a secret from the vault.
+                The <info>%command.name%</info> command removes a secret from the vault.
 
-    <info>%command.full_name% <name></info>
-EOF
+                    <info>%command.full_name% <name></info>
+                EOF
             )
         ;
     }
@@ -63,7 +63,7 @@
         $vault = $input->getOption('local') ? $this->localVault : $this->vault;
 
         if (null === $vault) {
-            $io->success('The local vault is disabled.');
+            $io->error('The local vault is disabled.');
 
             return 1;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsSetCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsSetCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsSetCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/SecretsSetCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,24 +52,24 @@
             ->addOption('local', 'l', InputOption::VALUE_NONE, 'Update the local vault.')
             ->addOption('random', 'r', InputOption::VALUE_OPTIONAL, 'Generate a random value.', false)
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command stores a secret in the vault.
+                The <info>%command.name%</info> command stores a secret in the vault.
 
-    <info>%command.full_name% <name></info>
+                    <info>%command.full_name% <name></info>
 
-To reference secrets in services.yaml or any other config
-files, use <info>"%env(<name>)%"</info>.
+                To reference secrets in services.yaml or any other config
+                files, use <info>"%env(<name>)%"</info>.
 
-By default, the secret value should be entered interactively.
-Alternatively, provide a file where to read the secret from:
+                By default, the secret value should be entered interactively.
+                Alternatively, provide a file where to read the secret from:
 
-    <info>php %command.full_name% <name> filename</info>
+                    <info>php %command.full_name% <name> filename</info>
 
-Use "-" as a file name to read from STDIN:
+                Use "-" as a file name to read from STDIN:
 
-    <info>cat filename | php %command.full_name% <name> -</info>
+                    <info>cat filename | php %command.full_name% <name> -</info>
 
-Use <info>--local</info> to override secrets for local needs.
-EOF
+                Use <info>--local</info> to override secrets for local needs.
+                EOF
             )
         ;
     }
@@ -88,7 +88,7 @@
         }
 
         if ($this->localVault === $vault && !\array_key_exists($name, $this->vault->list())) {
-            $io->error(sprintf('Secret "%s" does not exist in the vault, you cannot override it locally.', $name));
+            $io->error(\sprintf('Secret "%s" does not exist in the vault, you cannot override it locally.', $name));
 
             return 1;
         }
@@ -107,9 +107,9 @@
         } elseif (is_file($file) && is_readable($file)) {
             $value = file_get_contents($file);
         } elseif (!is_file($file)) {
-            throw new \InvalidArgumentException(sprintf('File not found: "%s".', $file));
+            throw new \InvalidArgumentException(\sprintf('File not found: "%s".', $file));
         } elseif (!is_readable($file)) {
-            throw new \InvalidArgumentException(sprintf('File is not readable: "%s".', $file));
+            throw new \InvalidArgumentException(\sprintf('File is not readable: "%s".', $file));
         }
 
         if ($vault->generateKeys()) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,41 +79,41 @@
             ->setDefinition([
                 new InputArgument('locale', InputArgument::REQUIRED, 'The locale'),
                 new InputArgument('bundle', InputArgument::OPTIONAL, 'The bundle name or directory where to load the messages'),
-                new InputOption('domain', null, InputOption::VALUE_OPTIONAL, 'The messages domain'),
+                new InputOption('domain', null, InputOption::VALUE_REQUIRED, 'The messages domain'),
                 new InputOption('only-missing', null, InputOption::VALUE_NONE, 'Display only missing messages'),
                 new InputOption('only-unused', null, InputOption::VALUE_NONE, 'Display only unused messages'),
                 new InputOption('all', null, InputOption::VALUE_NONE, 'Load messages from all registered bundles'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command helps finding unused or missing translation
-messages and comparing them with the fallback ones by inspecting the
-templates and translation files of a given bundle or the default translations directory.
+                The <info>%command.name%</info> command helps finding unused or missing translation
+                messages and comparing them with the fallback ones by inspecting the
+                templates and translation files of a given bundle or the default translations directory.
 
-You can display information about bundle translations in a specific locale:
+                You can display information about bundle translations in a specific locale:
 
-  <info>php %command.full_name% en AcmeDemoBundle</info>
+                  <info>php %command.full_name% en AcmeDemoBundle</info>
 
-You can also specify a translation domain for the search:
+                You can also specify a translation domain for the search:
 
-  <info>php %command.full_name% --domain=messages en AcmeDemoBundle</info>
+                  <info>php %command.full_name% --domain=messages en AcmeDemoBundle</info>
 
-You can only display missing messages:
+                You can only display missing messages:
 
-  <info>php %command.full_name% --only-missing en AcmeDemoBundle</info>
+                  <info>php %command.full_name% --only-missing en AcmeDemoBundle</info>
 
-You can only display unused messages:
+                You can only display unused messages:
 
-  <info>php %command.full_name% --only-unused en AcmeDemoBundle</info>
+                  <info>php %command.full_name% --only-unused en AcmeDemoBundle</info>
 
-You can display information about application translations in a specific locale:
+                You can display information about application translations in a specific locale:
 
-  <info>php %command.full_name% en</info>
+                  <info>php %command.full_name% en</info>
 
-You can display information about translations in all registered bundles in a specific locale:
+                You can display information about translations in all registered bundles in a specific locale:
 
-  <info>php %command.full_name% --all en</info>
+                  <info>php %command.full_name% --all en</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -155,7 +155,7 @@
                 $codePaths = [$path.'/templates'];
 
                 if (!is_dir($transPaths[0])) {
-                    throw new InvalidArgumentException(sprintf('"%s" is neither an enabled bundle nor a directory.', $transPaths[0]));
+                    throw new InvalidArgumentException(\sprintf('"%s" is neither an enabled bundle nor a directory.', $transPaths[0]));
                 }
             }
         } elseif ($input->getOption('all')) {
@@ -181,10 +181,10 @@
 
         // No defined or extracted messages
         if (!$allMessages || null !== $domain && empty($allMessages[$domain])) {
-            $outputMessage = sprintf('No defined or extracted messages for locale "%s"', $locale);
+            $outputMessage = \sprintf('No defined or extracted messages for locale "%s"', $locale);
 
             if (null !== $domain) {
-                $outputMessage .= sprintf(' and domain "%s"', $domain);
+                $outputMessage .= \sprintf(' and domain "%s"', $domain);
             }
 
             $io->getErrorStyle()->warning($outputMessage);
@@ -196,9 +196,9 @@
         $fallbackCatalogues = $this->loadFallbackCatalogues($locale, $transPaths);
 
         // Display header line
-        $headers = ['State', 'Domain', 'Id', sprintf('Message Preview (%s)', $locale)];
+        $headers = ['State', 'Domain', 'Id', \sprintf('Message Preview (%s)', $locale)];
         foreach ($fallbackCatalogues as $fallbackCatalogue) {
-            $headers[] = sprintf('Fallback Message Preview (%s)', $fallbackCatalogue->getLocale());
+            $headers[] = \sprintf('Fallback Message Preview (%s)', $fallbackCatalogue->getLocale());
         }
         $rows = [];
         // Iterate all message ids and determine their state
@@ -320,7 +320,7 @@
 
     private function formatId(string $id): string
     {
-        return sprintf('<fg=cyan;options=bold>%s</>', $id);
+        return \sprintf('<fg=cyan;options=bold>%s</>', $id);
     }
 
     private function sanitizeString(string $string, int $length = 40): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
         parent::__construct();
 
         if (!method_exists($writer, 'getFormats')) {
-            throw new \InvalidArgumentException(sprintf('The writer class "%s" does not implement the "getFormats()" method.', $writer::class));
+            throw new \InvalidArgumentException(\sprintf('The writer class "%s" does not implement the "getFormats()" method.', $writer::class));
         }
 
         $this->writer = $writer;
@@ -84,43 +84,43 @@
             ->setDefinition([
                 new InputArgument('locale', InputArgument::REQUIRED, 'The locale'),
                 new InputArgument('bundle', InputArgument::OPTIONAL, 'The bundle name or directory where to load the messages'),
-                new InputOption('prefix', null, InputOption::VALUE_OPTIONAL, 'Override the default prefix', '__'),
-                new InputOption('format', null, InputOption::VALUE_OPTIONAL, 'Override the default output format', 'xlf12'),
+                new InputOption('prefix', null, InputOption::VALUE_REQUIRED, 'Override the default prefix', '__'),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, 'Override the default output format', 'xlf12'),
                 new InputOption('dump-messages', null, InputOption::VALUE_NONE, 'Should the messages be dumped in the console'),
                 new InputOption('force', null, InputOption::VALUE_NONE, 'Should the extract be done'),
                 new InputOption('clean', null, InputOption::VALUE_NONE, 'Should clean not found messages'),
-                new InputOption('domain', null, InputOption::VALUE_OPTIONAL, 'Specify the domain to extract'),
+                new InputOption('domain', null, InputOption::VALUE_REQUIRED, 'Specify the domain to extract'),
                 new InputOption('sort', null, InputOption::VALUE_OPTIONAL, 'Return list of messages sorted alphabetically (only works with --dump-messages)', 'asc'),
-                new InputOption('as-tree', null, InputOption::VALUE_OPTIONAL, 'Dump the messages as a tree-like structure: The given value defines the level where to switch to inline YAML'),
+                new InputOption('as-tree', null, InputOption::VALUE_REQUIRED, 'Dump the messages as a tree-like structure: The given value defines the level where to switch to inline YAML'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command extracts translation strings from templates
-of a given bundle or the default translations directory. It can display them or merge
-the new ones into the translation files.
+                The <info>%command.name%</info> command extracts translation strings from templates
+                of a given bundle or the default translations directory. It can display them or merge
+                the new ones into the translation files.
 
-When new translation strings are found it can automatically add a prefix to the translation
-message.
+                When new translation strings are found it can automatically add a prefix to the translation
+                message.
 
-Example running against a Bundle (AcmeBundle)
+                Example running against a Bundle (AcmeBundle)
 
-  <info>php %command.full_name% --dump-messages en AcmeBundle</info>
-  <info>php %command.full_name% --force --prefix="new_" fr AcmeBundle</info>
+                  <info>php %command.full_name% --dump-messages en AcmeBundle</info>
+                  <info>php %command.full_name% --force --prefix="new_" fr AcmeBundle</info>
 
-Example running against default messages directory
+                Example running against default messages directory
 
-  <info>php %command.full_name% --dump-messages en</info>
-  <info>php %command.full_name% --force --prefix="new_" fr</info>
+                  <info>php %command.full_name% --dump-messages en</info>
+                  <info>php %command.full_name% --force --prefix="new_" fr</info>
 
-You can sort the output with the <comment>--sort</> flag:
+                You can sort the output with the <comment>--sort</> flag:
 
-    <info>php %command.full_name% --dump-messages --sort=asc en AcmeBundle</info>
-    <info>php %command.full_name% --dump-messages --sort=desc fr</info>
+                    <info>php %command.full_name% --dump-messages --sort=asc en AcmeBundle</info>
+                    <info>php %command.full_name% --dump-messages --sort=desc fr</info>
 
-You can dump a tree-like structure using the yaml format with <comment>--as-tree</> flag:
+                You can dump a tree-like structure using the yaml format with <comment>--as-tree</> flag:
 
-    <info>php %command.full_name% --force --format=yaml --as-tree=3 en AcmeBundle</info>
+                    <info>php %command.full_name% --force --format=yaml --as-tree=3 en AcmeBundle</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -183,13 +183,13 @@
                 $codePaths = [$path.'/templates'];
 
                 if (!is_dir($transPaths[0])) {
-                    throw new InvalidArgumentException(sprintf('"%s" is neither an enabled bundle nor a directory.', $transPaths[0]));
+                    throw new InvalidArgumentException(\sprintf('"%s" is neither an enabled bundle nor a directory.', $transPaths[0]));
                 }
             }
         }
 
         $io->title('Translation Messages Extractor and Dumper');
-        $io->comment(sprintf('Generating "<info>%s</info>" translation files for "<info>%s</info>"', $input->getArgument('locale'), $currentName));
+        $io->comment(\sprintf('Generating "<info>%s</info>" translation files for "<info>%s</info>"', $input->getArgument('locale'), $currentName));
 
         $io->comment('Parsing templates...');
         $extractedCatalogue = $this->extractMessages($input->getArgument('locale'), $codePaths, $input->getOption('prefix'));
@@ -228,8 +228,8 @@
 
                 $list = array_merge(
                     array_diff($allKeys, $newKeys),
-                    array_map(fn ($id) => sprintf('<fg=green>%s</>', $id), $newKeys),
-                    array_map(fn ($id) => sprintf('<fg=red>%s</>', $id), array_keys($operation->getObsoleteMessages($domain)))
+                    array_map(static fn ($id) => \sprintf('<fg=green>%s</>', $id), $newKeys),
+                    array_map(static fn ($id) => \sprintf('<fg=red>%s</>', $id), array_keys($operation->getObsoleteMessages($domain)))
                 );
 
                 $domainMessagesCount = \count($list);
@@ -249,17 +249,17 @@
                     }
                 }
 
-                $io->section(sprintf('Messages extracted for domain "<info>%s</info>" (%d message%s)', $domain, $domainMessagesCount, $domainMessagesCount > 1 ? 's' : ''));
+                $io->section(\sprintf('Messages extracted for domain "<info>%s</info>" (%d message%s)', $domain, $domainMessagesCount, $domainMessagesCount > 1 ? 's' : ''));
                 $io->listing($list);
 
                 $extractedMessagesCount += $domainMessagesCount;
             }
 
             if ('xlf' === $format) {
-                $io->comment(sprintf('Xliff output version is <info>%s</info>', $xliffVersion));
+                $io->comment(\sprintf('Xliff output version is <info>%s</info>', $xliffVersion));
             }
 
-            $resultMessage = sprintf('%d message%s successfully extracted', $extractedMessagesCount, $extractedMessagesCount > 1 ? 's were' : ' was');
+            $resultMessage = \sprintf('%d message%s successfully extracted', $extractedMessagesCount, $extractedMessagesCount > 1 ? 's were' : ' was');
         }
 
         // save the files
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
             $this->definitions = $workflows;
             trigger_deprecation('symfony/framework-bundle', '6.2', 'Passing an array of definitions in "%s()" is deprecated. Inject a ServiceLocator filled with all workflows instead.', __METHOD__);
         } else {
-            throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be an array or a ServiceLocator, "%s" given.', __METHOD__, \gettype($workflows)));
+            throw new \TypeError(\sprintf('Argument 1 passed to "%s()" must be an array or a ServiceLocator, "%s" given.', __METHOD__, \gettype($workflows)));
         }
     }
 
@@ -77,13 +77,13 @@
                 new InputOption('dump-format', null, InputOption::VALUE_REQUIRED, 'The dump format ['.implode('|', self::DUMP_FORMAT_OPTIONS).']', 'dot'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command dumps the graphical representation of a
-workflow in different formats
+                The <info>%command.name%</info> command dumps the graphical representation of a
+                workflow in different formats
 
-<info>DOT</info>:  %command.full_name% <workflow name> | dot -Tpng > workflow.png
-<info>PUML</info>: %command.full_name% <workflow name> --dump-format=puml | java -jar plantuml.jar -p > workflow.png
-<info>MERMAID</info>: %command.full_name% <workflow name> --dump-format=mermaid | mmdc -o workflow.svg
-EOF
+                <info>DOT</info>:  %command.full_name% <workflow name> | dot -Tpng > workflow.png
+                <info>PUML</info>: %command.full_name% <workflow name> --dump-format=puml | java -jar plantuml.jar -p > workflow.png
+                <info>MERMAID</info>: %command.full_name% <workflow name> --dump-format=mermaid | mmdc -o workflow.svg
+                EOF
             )
         ;
     }
@@ -94,7 +94,7 @@
 
         if (isset($this->workflows)) {
             if (!$this->workflows->has($workflowName)) {
-                throw new InvalidArgumentException(sprintf('The workflow named "%s" cannot be found.', $workflowName));
+                throw new InvalidArgumentException(\sprintf('The workflow named "%s" cannot be found.', $workflowName));
             }
             $workflow = $this->workflows->get($workflowName);
             $type = $workflow instanceof StateMachine ? 'state_machine' : 'workflow';
@@ -108,7 +108,7 @@
         }
 
         if (null === $definition) {
-            throw new InvalidArgumentException(sprintf('No service found for "workflow.%1$s" nor "state_machine.%1$s".', $workflowName));
+            throw new InvalidArgumentException(\sprintf('No service found for "workflow.%1$s" nor "state_machine.%1$s".', $workflowName));
         }
 
         switch ($input->getOption('dump-format')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/XliffLintCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/XliffLintCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/XliffLintCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/XliffLintCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
             return $default($directory);
         };
 
-        $isReadableProvider = fn ($fileOrDirectory, $default) => str_starts_with($fileOrDirectory, '@') || $default($fileOrDirectory);
+        $isReadableProvider = static fn ($fileOrDirectory, $default) => str_starts_with($fileOrDirectory, '@') || $default($fileOrDirectory);
 
         parent::__construct(null, $directoryIteratorProvider, $isReadableProvider);
     }
@@ -47,11 +47,11 @@
 
         $this->setHelp($this->getHelp().<<<'EOF'
 
-Or find all files in a bundle:
+            Or find all files in a bundle:
 
-  <info>php %command.full_name% @AcmeDemoBundle</info>
+              <info>php %command.full_name% @AcmeDemoBundle</info>
 
-EOF
+            EOF
         );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/YamlLintCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/YamlLintCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/YamlLintCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Command/YamlLintCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
             return $default($directory);
         };
 
-        $isReadableProvider = fn ($fileOrDirectory, $default) => str_starts_with($fileOrDirectory, '@') || $default($fileOrDirectory);
+        $isReadableProvider = static fn ($fileOrDirectory, $default) => str_starts_with($fileOrDirectory, '@') || $default($fileOrDirectory);
 
         parent::__construct(null, $directoryIteratorProvider, $isReadableProvider);
     }
@@ -46,11 +46,11 @@
 
         $this->setHelp($this->getHelp().<<<'EOF'
 
-Or find all files in a bundle:
+            Or find all files in a bundle:
 
-  <info>php %command.full_name% @AcmeDemoBundle</info>
+              <info>php %command.full_name% @AcmeDemoBundle</info>
 
-EOF
+            EOF
         );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/composer.json symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
         "symfony/lock": "^5.4|^6.0|^7.0",
         "symfony/mailer": "^5.4|^6.0|^7.0",
         "symfony/messenger": "^6.3|^7.0",
-        "symfony/mime": "^6.4|^7.0",
+        "symfony/mime": "^6.4.37|^7.4.9",
         "symfony/notifier": "^5.4|^6.0|^7.0",
         "symfony/process": "^5.4|^6.0|^7.0",
         "symfony/rate-limiter": "^5.4|^6.0|^7.0",
@@ -90,7 +90,7 @@
         "symfony/lock": "<5.4",
         "symfony/mailer": "<5.4",
         "symfony/messenger": "<6.3",
-        "symfony/mime": "<6.4",
+        "symfony/mime": "<6.4.37|>=7.0,<7.4.9",
         "symfony/property-info": "<5.4",
         "symfony/property-access": "<5.4",
         "symfony/runtime": "<5.4.45|>=6.0,<6.4.13|>=7.0,<7.1.6",
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Application.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Application.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Application.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Application.php	2026-05-20 10:56:49.000000000 +0200
@@ -166,7 +166,7 @@
 
     public function getLongVersion(): string
     {
-        return parent::getLongVersion().sprintf(' (env: <comment>%s</>, debug: <comment>%s</>)', $this->kernel->getEnvironment(), $this->kernel->isDebug() ? 'true' : 'false');
+        return parent::getLongVersion().\sprintf(' (env: <comment>%s</>, debug: <comment>%s</>)', $this->kernel->getEnvironment(), $this->kernel->isDebug() ? 'true' : 'false');
     }
 
     public function add(Command $command): ?Command
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/Descriptor.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/Descriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/Descriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/Descriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
             $object instanceof Alias => $this->describeContainerAlias($object, $options),
             $object instanceof EventDispatcherInterface => $this->describeEventDispatcherListeners($object, $options),
             \is_callable($object) => $this->describeCallable($object, $options),
-            default => throw new \InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_debug_type($object))),
+            default => throw new \InvalidArgumentException(\sprintf('Object of type "%s" is not describable.', get_debug_type($object))),
         };
 
         if ($object instanceof ContainerBuilder) {
@@ -133,7 +133,7 @@
         }
 
         if (\is_object($value)) {
-            return sprintf('object(%s)', $value::class);
+            return \sprintf('object(%s)', $value::class);
         }
 
         if (\is_string($value)) {
@@ -243,7 +243,7 @@
                 }
             }
         }
-        uasort($maxPriority, fn ($a, $b) => $b <=> $a);
+        uasort($maxPriority, static fn ($a, $b) => $b <=> $a);
 
         return array_keys($maxPriority);
     }
@@ -260,7 +260,7 @@
 
     protected function sortByPriority(array $tag): array
     {
-        usort($tag, fn ($a, $b) => ($b['priority'] ?? 0) <=> ($a['priority'] ?? 0));
+        usort($tag, static fn ($a, $b) => ($b['priority'] ?? 0) <=> ($a['priority'] ?? 0));
 
         return $tag;
     }
@@ -353,7 +353,7 @@
     {
         try {
             return array_values(array_unique(array_map(
-                fn (ServiceReferenceGraphEdge $edge) => $edge->getSourceNode()->getId(),
+                static fn (ServiceReferenceGraphEdge $edge) => $edge->getSourceNode()->getId(),
                 $container->getCompiler()->getServiceReferenceGraph()->getNode($serviceId)->getInEdges()
             )));
         } catch (InvalidArgumentException $exception) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -156,7 +156,7 @@
         $data = [$key => $parameter];
 
         if ($deprecation) {
-            $data['_deprecation'] = sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], sprintf(...\array_slice($deprecation, 2)));
+            $data['_deprecation'] = \sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], \sprintf(...\array_slice($deprecation, 2)));
         }
 
         $this->writeData($data, $options);
@@ -169,7 +169,7 @@
 
     protected function describeContainerDeprecations(ContainerBuilder $container, array $options = []): void
     {
-        $containerDeprecationFilePath = sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
+        $containerDeprecationFilePath = \sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
         if (!file_exists($containerDeprecationFilePath)) {
             throw new RuntimeException('The deprecation file does not exist, please try warming the cache first.');
         }
@@ -236,7 +236,7 @@
             $deprecations = [];
 
             foreach ($deprecated as $parameter => $deprecation) {
-                $deprecations[$parameter] = sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], sprintf(...\array_slice($deprecation, 2)));
+                $deprecations[$parameter] = \sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], \sprintf(...\array_slice($deprecation, 2)));
             }
 
             $sortedParameters['_deprecations'] = $deprecations;
@@ -280,7 +280,7 @@
                 if ($factory[0] instanceof Reference) {
                     $data['factory_service'] = (string) $factory[0];
                 } elseif ($factory[0] instanceof Definition) {
-                    $data['factory_service'] = sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'class not configured');
+                    $data['factory_service'] = \sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'class not configured');
                 } else {
                     $data['factory_class'] = $factory[0];
                 }
@@ -332,7 +332,7 @@
                 $data[] = $l;
             }
         } else {
-            $registeredListeners = \array_key_exists('events', $options) ? array_combine($options['events'], array_map(fn ($event) => $eventDispatcher->getListeners($event), $options['events'])) : $eventDispatcher->getListeners();
+            $registeredListeners = \array_key_exists('events', $options) ? array_combine($options['events'], array_map(static fn ($event) => $eventDispatcher->getListeners($event), $options['events'])) : $eventDispatcher->getListeners();
             ksort($registeredListeners);
 
             foreach ($registeredListeners as $eventListened => $eventListeners) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
             }
             $this->describeRoute($route, ['name' => $name]);
             if (($showAliases ??= $options['show_aliases'] ?? false) && $aliases = ($reverseAliases ??= $this->getReverseAliases($routes))[$name] ?? []) {
-                $this->write(sprintf("- Aliases: \n%s", implode("\n", array_map(static fn (string $alias): string => sprintf('    - %s', $alias), $aliases))));
+                $this->write(\sprintf("- Aliases: \n%s", implode("\n", array_map(static fn (string $alias): string => \sprintf('    - %s', $alias), $aliases))));
             }
         }
         $this->write("\n");
@@ -75,11 +75,11 @@
 
         $this->write("Container parameters\n====================\n");
         foreach ($this->sortParameters($parameters) as $key => $value) {
-            $this->write(sprintf(
+            $this->write(\sprintf(
                 "\n- `%s`: `%s`%s",
                 $key,
                 $this->formatParameter($value),
-                isset($deprecatedParameters[$key]) ? sprintf(' *Since %s %s: %s*', $deprecatedParameters[$key][0], $deprecatedParameters[$key][1], sprintf(...\array_slice($deprecatedParameters[$key], 2))) : ''
+                isset($deprecatedParameters[$key]) ? \sprintf(' *Since %s %s: %s*', $deprecatedParameters[$key][0], $deprecatedParameters[$key][1], \sprintf(...\array_slice($deprecatedParameters[$key], 2))) : ''
             ));
         }
     }
@@ -111,13 +111,13 @@
         } elseif ($service instanceof Definition) {
             $this->describeContainerDefinition($service, $childOptions, $container);
         } else {
-            $this->write(sprintf('**`%s`:** `%s`', $options['id'], $service::class));
+            $this->write(\sprintf('**`%s`:** `%s`', $options['id'], $service::class));
         }
     }
 
     protected function describeContainerDeprecations(ContainerBuilder $container, array $options = []): void
     {
-        $containerDeprecationFilePath = sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
+        $containerDeprecationFilePath = \sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
         if (!file_exists($containerDeprecationFilePath)) {
             throw new RuntimeException('The deprecation file does not exist, please try warming the cache first.');
         }
@@ -132,11 +132,11 @@
         $formattedLogs = [];
         $remainingCount = 0;
         foreach ($logs as $log) {
-            $formattedLogs[] = sprintf("- %sx: \"%s\" in %s:%s\n", $log['count'], $log['message'], $log['file'], $log['line']);
+            $formattedLogs[] = \sprintf("- %sx: \"%s\" in %s:%s\n", $log['count'], $log['message'], $log['file'], $log['line']);
             $remainingCount += $log['count'];
         }
 
-        $this->write(sprintf("## Remaining deprecations (%s)\n\n", $remainingCount));
+        $this->write(\sprintf("## Remaining deprecations (%s)\n\n", $remainingCount));
         foreach ($formattedLogs as $formattedLog) {
             $this->write($formattedLog);
         }
@@ -201,7 +201,7 @@
             $this->write("\n\nServices\n--------\n");
             foreach ($services['services'] as $id => $service) {
                 $this->write("\n");
-                $this->write(sprintf('- `%s`: `%s`', $id, $service::class));
+                $this->write(\sprintf('- `%s`: `%s`', $id, $service::class));
             }
         }
     }
@@ -244,7 +244,7 @@
                 if ($factory[0] instanceof Reference) {
                     $output .= "\n".'- Factory Service: `'.$factory[0].'`';
                 } elseif ($factory[0] instanceof Definition) {
-                    $output .= "\n".sprintf('- Factory Service: inline factory service (%s)', $factory[0]->getClass() ? sprintf('`%s`', $factory[0]->getClass()) : 'not configured');
+                    $output .= "\n".\sprintf('- Factory Service: inline factory service (%s)', $factory[0]->getClass() ? \sprintf('`%s`', $factory[0]->getClass()) : 'not configured');
                 } else {
                     $output .= "\n".'- Factory Class: `'.$factory[0].'`';
                 }
@@ -273,7 +273,7 @@
         $inEdges = null !== $container && isset($options['id']) ? $this->getServiceEdges($container, $options['id']) : [];
         $output .= "\n".'- Usages: '.($inEdges ? implode(', ', $inEdges) : 'none');
 
-        $this->write(isset($options['id']) ? sprintf("### %s\n\n%s\n", $options['id'], $output) : $output);
+        $this->write(isset($options['id']) ? \sprintf("### %s\n\n%s\n", $options['id'], $output) : $output);
     }
 
     protected function describeContainerAlias(Alias $alias, array $options = [], ?ContainerBuilder $container = null): void
@@ -287,7 +287,7 @@
             return;
         }
 
-        $this->write(sprintf("### %s\n\n%s\n", $options['id'], $output));
+        $this->write(\sprintf("### %s\n\n%s\n", $options['id'], $output));
 
         if (!$container) {
             return;
@@ -300,7 +300,7 @@
     protected function describeContainerParameter(mixed $parameter, ?array $deprecation, array $options = []): void
     {
         if (isset($options['parameter'])) {
-            $this->write(sprintf("%s\n%s\n\n%s%s", $options['parameter'], str_repeat('=', \strlen($options['parameter'])), $this->formatParameter($parameter), $deprecation ? sprintf("\n\n*Since %s %s: %s*", $deprecation[0], $deprecation[1], sprintf(...\array_slice($deprecation, 2))) : ''));
+            $this->write(\sprintf("%s\n%s\n\n%s%s", $options['parameter'], str_repeat('=', \strlen($options['parameter'])), $this->formatParameter($parameter), $deprecation ? \sprintf("\n\n*Since %s %s: %s*", $deprecation[0], $deprecation[1], \sprintf(...\array_slice($deprecation, 2))) : ''));
         } else {
             $this->write($parameter);
         }
@@ -319,35 +319,35 @@
         $title = 'Registered listeners';
 
         if (null !== $dispatcherServiceName) {
-            $title .= sprintf(' of event dispatcher "%s"', $dispatcherServiceName);
+            $title .= \sprintf(' of event dispatcher "%s"', $dispatcherServiceName);
         }
 
         if (null !== $event) {
-            $title .= sprintf(' for event `%s` ordered by descending priority', $event);
+            $title .= \sprintf(' for event `%s` ordered by descending priority', $event);
             $registeredListeners = $eventDispatcher->getListeners($event);
         } else {
             // Try to see if "events" exists
-            $registeredListeners = \array_key_exists('events', $options) ? array_combine($options['events'], array_map(fn ($event) => $eventDispatcher->getListeners($event), $options['events'])) : $eventDispatcher->getListeners();
+            $registeredListeners = \array_key_exists('events', $options) ? array_combine($options['events'], array_map(static fn ($event) => $eventDispatcher->getListeners($event), $options['events'])) : $eventDispatcher->getListeners();
         }
 
-        $this->write(sprintf('# %s', $title)."\n");
+        $this->write(\sprintf('# %s', $title)."\n");
 
         if (null !== $event) {
             foreach ($registeredListeners as $order => $listener) {
-                $this->write("\n".sprintf('## Listener %d', $order + 1)."\n");
+                $this->write("\n".\sprintf('## Listener %d', $order + 1)."\n");
                 $this->describeCallable($listener);
-                $this->write(sprintf('- Priority: `%d`', $eventDispatcher->getListenerPriority($event, $listener))."\n");
+                $this->write(\sprintf('- Priority: `%d`', $eventDispatcher->getListenerPriority($event, $listener))."\n");
             }
         } else {
             ksort($registeredListeners);
 
             foreach ($registeredListeners as $eventListened => $eventListeners) {
-                $this->write("\n".sprintf('## %s', $eventListened)."\n");
+                $this->write("\n".\sprintf('## %s', $eventListened)."\n");
 
                 foreach ($eventListeners as $order => $eventListener) {
-                    $this->write("\n".sprintf('### Listener %d', $order + 1)."\n");
+                    $this->write("\n".\sprintf('### Listener %d', $order + 1)."\n");
                     $this->describeCallable($eventListener);
-                    $this->write(sprintf('- Priority: `%d`', $eventDispatcher->getListenerPriority($eventListened, $eventListener))."\n");
+                    $this->write(\sprintf('- Priority: `%d`', $eventDispatcher->getListenerPriority($eventListened, $eventListener))."\n");
                 }
             }
         }
@@ -361,16 +361,16 @@
             $string .= "\n- Type: `function`";
 
             if (\is_object($callable[0])) {
-                $string .= "\n".sprintf('- Name: `%s`', $callable[1]);
-                $string .= "\n".sprintf('- Class: `%s`', $callable[0]::class);
+                $string .= "\n".\sprintf('- Name: `%s`', $callable[1]);
+                $string .= "\n".\sprintf('- Class: `%s`', $callable[0]::class);
             } else {
                 if (!str_starts_with($callable[1], 'parent::')) {
-                    $string .= "\n".sprintf('- Name: `%s`', $callable[1]);
-                    $string .= "\n".sprintf('- Class: `%s`', $callable[0]);
+                    $string .= "\n".\sprintf('- Name: `%s`', $callable[1]);
+                    $string .= "\n".\sprintf('- Class: `%s`', $callable[0]);
                     $string .= "\n- Static: yes";
                 } else {
-                    $string .= "\n".sprintf('- Name: `%s`', substr($callable[1], 8));
-                    $string .= "\n".sprintf('- Class: `%s`', $callable[0]);
+                    $string .= "\n".\sprintf('- Name: `%s`', substr($callable[1], 8));
+                    $string .= "\n".\sprintf('- Class: `%s`', $callable[0]);
                     $string .= "\n- Static: yes";
                     $string .= "\n- Parent: yes";
                 }
@@ -385,12 +385,12 @@
             $string .= "\n- Type: `function`";
 
             if (!str_contains($callable, '::')) {
-                $string .= "\n".sprintf('- Name: `%s`', $callable);
+                $string .= "\n".\sprintf('- Name: `%s`', $callable);
             } else {
                 $callableParts = explode('::', $callable);
 
-                $string .= "\n".sprintf('- Name: `%s`', $callableParts[1]);
-                $string .= "\n".sprintf('- Class: `%s`', $callableParts[0]);
+                $string .= "\n".\sprintf('- Name: `%s`', $callableParts[1]);
+                $string .= "\n".\sprintf('- Class: `%s`', $callableParts[0]);
                 $string .= "\n- Static: yes";
             }
 
@@ -408,10 +408,10 @@
 
                 return;
             }
-            $string .= "\n".sprintf('- Name: `%s`', $r->name);
+            $string .= "\n".\sprintf('- Name: `%s`', $r->name);
 
             if ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) {
-                $string .= "\n".sprintf('- Class: `%s`', $class->name);
+                $string .= "\n".\sprintf('- Class: `%s`', $class->name);
                 if (!$r->getClosureThis()) {
                     $string .= "\n- Static: yes";
                 }
@@ -424,7 +424,7 @@
 
         if (method_exists($callable, '__invoke')) {
             $string .= "\n- Type: `object`";
-            $string .= "\n".sprintf('- Name: `%s`', $callable::class);
+            $string .= "\n".\sprintf('- Name: `%s`', $callable::class);
 
             $this->write($string."\n");
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -133,7 +133,7 @@
 
             if (isset($deprecatedParameters[$parameter])) {
                 $tableRows[] = [new TableCell(
-                    sprintf('<comment>(Since %s %s: %s)</comment>', $deprecatedParameters[$parameter][0], $deprecatedParameters[$parameter][1], sprintf(...\array_slice($deprecatedParameters[$parameter], 2))),
+                    \sprintf('<comment>(Since %s %s: %s)</comment>', $deprecatedParameters[$parameter][0], $deprecatedParameters[$parameter][1], \sprintf(...\array_slice($deprecatedParameters[$parameter], 2))),
                     ['colspan' => 2]
                 )];
             }
@@ -154,7 +154,7 @@
         }
 
         foreach ($this->findDefinitionsByTag($container, $showHidden) as $tag => $definitions) {
-            $options['output']->section(sprintf('"%s" tag', $tag));
+            $options['output']->section(\sprintf('"%s" tag', $tag));
             $options['output']->listing(array_keys($definitions));
         }
     }
@@ -170,7 +170,7 @@
         } elseif ($service instanceof Definition) {
             $this->describeContainerDefinition($service, $options, $container);
         } else {
-            $options['output']->title(sprintf('Information for Service "<info>%s</info>"', $options['id']));
+            $options['output']->title(\sprintf('Information for Service "<info>%s</info>"', $options['id']));
             $options['output']->table(
                 ['Service ID', 'Class'],
                 [
@@ -192,7 +192,7 @@
         }
 
         if ($showTag) {
-            $title .= sprintf(' Tagged with "%s" Tag', $options['tag']);
+            $title .= \sprintf(' Tagged with "%s" Tag', $options['tag']);
         }
 
         $options['output']->title($title);
@@ -249,7 +249,7 @@
         foreach ($serviceIds as $serviceId) {
             $definition = $this->resolveServiceDefinition($container, $serviceId);
 
-            $styledServiceId = $rawOutput ? $serviceId : sprintf('<fg=cyan>%s</fg=cyan>', OutputFormatter::escape($serviceId));
+            $styledServiceId = $rawOutput ? $serviceId : \sprintf('<fg=cyan>%s</fg=cyan>', OutputFormatter::escape($serviceId));
             if ($definition instanceof Definition) {
                 if ($showTag) {
                     foreach ($this->sortByPriority($definition->getTag($showTag)) as $key => $tag) {
@@ -272,7 +272,7 @@
                 }
             } elseif ($definition instanceof Alias) {
                 $alias = $definition;
-                $tableRows[] = array_merge([$styledServiceId, sprintf('alias for "%s"', $alias)], $tagsCount ? array_fill(0, $tagsCount, '') : []);
+                $tableRows[] = array_merge([$styledServiceId, \sprintf('alias for "%s"', $alias)], $tagsCount ? array_fill(0, $tagsCount, '') : []);
             } else {
                 $tableRows[] = array_merge([$styledServiceId, $definition::class], $tagsCount ? array_fill(0, $tagsCount, '') : []);
             }
@@ -284,7 +284,7 @@
     protected function describeContainerDefinition(Definition $definition, array $options = [], ?ContainerBuilder $container = null): void
     {
         if (isset($options['id'])) {
-            $options['output']->title(sprintf('Information for Service "<info>%s</info>"', $options['id']));
+            $options['output']->title(\sprintf('Information for Service "<info>%s</info>"', $options['id']));
         }
 
         if ('' !== $classDescription = $this->getClassDescription((string) $definition->getClass())) {
@@ -301,13 +301,13 @@
             $tagInformation = [];
             foreach ($tags as $tagName => $tagData) {
                 foreach ($tagData as $tagParameters) {
-                    $parameters = array_map(fn ($key, $value) => sprintf('<info>%s</info>: %s', $key, \is_array($value) ? $this->formatParameter($value) : $value), array_keys($tagParameters), array_values($tagParameters));
+                    $parameters = array_map(fn ($key, $value) => \sprintf('<info>%s</info>: %s', $key, \is_array($value) ? $this->formatParameter($value) : $value), array_keys($tagParameters), array_values($tagParameters));
                     $parameters = implode(', ', $parameters);
 
                     if ('' === $parameters) {
-                        $tagInformation[] = sprintf('%s', $tagName);
+                        $tagInformation[] = \sprintf('%s', $tagName);
                     } else {
-                        $tagInformation[] = sprintf('%s (%s)', $tagName, $parameters);
+                        $tagInformation[] = \sprintf('%s (%s)', $tagName, $parameters);
                     }
                 }
             }
@@ -343,7 +343,7 @@
                 if ($factory[0] instanceof Reference) {
                     $tableRows[] = ['Factory Service', $factory[0]];
                 } elseif ($factory[0] instanceof Definition) {
-                    $tableRows[] = ['Factory Service', sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'class not configured')];
+                    $tableRows[] = ['Factory Service', \sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'class not configured')];
                 } else {
                     $tableRows[] = ['Factory Class', $factory[0]];
                 }
@@ -361,27 +361,27 @@
                     $argument = $argument->getValues()[0];
                 }
                 if ($argument instanceof Reference) {
-                    $argumentsInformation[] = sprintf('Service(%s)', (string) $argument);
+                    $argumentsInformation[] = \sprintf('Service(%s)', (string) $argument);
                 } elseif ($argument instanceof IteratorArgument) {
                     if ($argument instanceof TaggedIteratorArgument) {
-                        $argumentsInformation[] = sprintf('Tagged Iterator for "%s"%s', $argument->getTag(), $options['is_debug'] ? '' : sprintf(' (%d element(s))', \count($argument->getValues())));
+                        $argumentsInformation[] = \sprintf('Tagged Iterator for "%s"%s', $argument->getTag(), $options['is_debug'] ? '' : \sprintf(' (%d element(s))', \count($argument->getValues())));
                     } else {
-                        $argumentsInformation[] = sprintf('Iterator (%d element(s))', \count($argument->getValues()));
+                        $argumentsInformation[] = \sprintf('Iterator (%d element(s))', \count($argument->getValues()));
                     }
 
                     foreach ($argument->getValues() as $ref) {
-                        $argumentsInformation[] = sprintf('- Service(%s)', $ref);
+                        $argumentsInformation[] = \sprintf('- Service(%s)', $ref);
                     }
                 } elseif ($argument instanceof ServiceLocatorArgument) {
-                    $argumentsInformation[] = sprintf('Service locator (%d element(s))', \count($argument->getValues()));
+                    $argumentsInformation[] = \sprintf('Service locator (%d element(s))', \count($argument->getValues()));
                 } elseif ($argument instanceof Definition) {
                     $argumentsInformation[] = 'Inlined Service';
                 } elseif ($argument instanceof \UnitEnum) {
                     $argumentsInformation[] = ltrim(var_export($argument, true), '\\');
                 } elseif ($argument instanceof AbstractArgument) {
-                    $argumentsInformation[] = sprintf('Abstract argument (%s)', $argument->getText());
+                    $argumentsInformation[] = \sprintf('Abstract argument (%s)', $argument->getText());
                 } else {
-                    $argumentsInformation[] = \is_array($argument) ? sprintf('Array (%d element(s))', \count($argument)) : $argument;
+                    $argumentsInformation[] = \is_array($argument) ? \sprintf('Array (%d element(s))', \count($argument)) : $argument;
                 }
             }
 
@@ -396,7 +396,7 @@
 
     protected function describeContainerDeprecations(ContainerBuilder $container, array $options = []): void
     {
-        $containerDeprecationFilePath = sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
+        $containerDeprecationFilePath = \sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
         if (!file_exists($containerDeprecationFilePath)) {
             $options['output']->warning('The deprecation file does not exist, please try warming the cache first.');
 
@@ -413,19 +413,19 @@
         $formattedLogs = [];
         $remainingCount = 0;
         foreach ($logs as $log) {
-            $formattedLogs[] = sprintf("%sx: %s\n      in %s:%s", $log['count'], $log['message'], $log['file'], $log['line']);
+            $formattedLogs[] = \sprintf("%sx: %s\n      in %s:%s", $log['count'], $log['message'], $log['file'], $log['line']);
             $remainingCount += $log['count'];
         }
-        $options['output']->title(sprintf('Remaining deprecations (%s)', $remainingCount));
+        $options['output']->title(\sprintf('Remaining deprecations (%s)', $remainingCount));
         $options['output']->listing($formattedLogs);
     }
 
     protected function describeContainerAlias(Alias $alias, array $options = [], ?ContainerBuilder $container = null): void
     {
         if ($alias->isPublic() && !$alias->isPrivate()) {
-            $options['output']->comment(sprintf('This service is a <info>public</info> alias for the service <info>%s</info>', (string) $alias));
+            $options['output']->comment(\sprintf('This service is a <info>public</info> alias for the service <info>%s</info>', (string) $alias));
         } else {
-            $options['output']->comment(sprintf('This service is a <comment>private</comment> alias for the service <info>%s</info>', (string) $alias));
+            $options['output']->comment(\sprintf('This service is a <comment>private</comment> alias for the service <info>%s</info>', (string) $alias));
         }
 
         if (!$container) {
@@ -444,7 +444,7 @@
 
         if ($deprecation) {
             $rows[] = [new TableCell(
-                sprintf('<comment>(Since %s %s: %s)</comment>', $deprecation[0], $deprecation[1], sprintf(...\array_slice($deprecation, 2))),
+                \sprintf('<comment>(Since %s %s: %s)</comment>', $deprecation[0], $deprecation[1], \sprintf(...\array_slice($deprecation, 2))),
                 ['colspan' => 2]
             )];
         }
@@ -522,16 +522,16 @@
         $title = 'Registered Listeners';
 
         if (null !== $dispatcherServiceName) {
-            $title .= sprintf(' of Event Dispatcher "%s"', $dispatcherServiceName);
+            $title .= \sprintf(' of Event Dispatcher "%s"', $dispatcherServiceName);
         }
 
         if (null !== $event) {
-            $title .= sprintf(' for "%s" Event', $event);
+            $title .= \sprintf(' for "%s" Event', $event);
             $registeredListeners = $eventDispatcher->getListeners($event);
         } else {
             $title .= ' Grouped by Event';
             // Try to see if "events" exists
-            $registeredListeners = \array_key_exists('events', $options) ? array_combine($options['events'], array_map(fn ($event) => $eventDispatcher->getListeners($event), $options['events'])) : $eventDispatcher->getListeners();
+            $registeredListeners = \array_key_exists('events', $options) ? array_combine($options['events'], array_map(static fn ($event) => $eventDispatcher->getListeners($event), $options['events'])) : $eventDispatcher->getListeners();
         }
 
         $options['output']->title($title);
@@ -540,7 +540,7 @@
         } else {
             ksort($registeredListeners);
             foreach ($registeredListeners as $eventListened => $eventListeners) {
-                $options['output']->section(sprintf('"%s" event', $eventListened));
+                $options['output']->section(\sprintf('"%s" event', $eventListened));
                 $this->renderEventListenerTable($eventDispatcher, $eventListened, $eventListeners, $options['output']);
             }
         }
@@ -557,7 +557,7 @@
         $tableRows = [];
 
         foreach ($eventListeners as $order => $listener) {
-            $tableRows[] = [sprintf('#%d', $order + 1), $this->formatCallable($listener), $eventDispatcher->getListenerPriority($event, $listener)];
+            $tableRows[] = [\sprintf('#%d', $order + 1), $this->formatCallable($listener), $eventDispatcher->getListenerPriority($event, $listener)];
         }
 
         $io->table($tableHeaders, $tableRows);
@@ -573,7 +573,7 @@
 
         $configAsString = '';
         foreach ($config as $key => $value) {
-            $configAsString .= sprintf("\n%s: %s", $key, $this->formatValue($value));
+            $configAsString .= \sprintf("\n%s: %s", $key, $this->formatValue($value));
         }
 
         return trim($configAsString);
@@ -627,7 +627,7 @@
 
         $fileLink = $this->fileLinkFormatter->format($r->getFileName(), $r->getStartLine());
         if ($fileLink) {
-            return sprintf('<href=%s>%s</>', $fileLink, $anchorText);
+            return \sprintf('<href=%s>%s</>', $fileLink, $anchorText);
         }
 
         return $anchorText;
@@ -637,14 +637,14 @@
     {
         if (\is_array($callable)) {
             if (\is_object($callable[0])) {
-                return sprintf('%s::%s()', $callable[0]::class, $callable[1]);
+                return \sprintf('%s::%s()', $callable[0]::class, $callable[1]);
             }
 
-            return sprintf('%s::%s()', $callable[0], $callable[1]);
+            return \sprintf('%s::%s()', $callable[0], $callable[1]);
         }
 
         if (\is_string($callable)) {
-            return sprintf('%s()', $callable);
+            return \sprintf('%s()', $callable);
         }
 
         if ($callable instanceof \Closure) {
@@ -653,14 +653,14 @@
                 return 'Closure()';
             }
             if ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) {
-                return sprintf('%s::%s()', $class->name, $r->name);
+                return \sprintf('%s::%s()', $class->name, $r->name);
             }
 
             return $r->name.'()';
         }
 
         if (method_exists($callable, '__invoke')) {
-            return sprintf('%s::__invoke()', $callable::class);
+            return \sprintf('%s::__invoke()', $callable::class);
         }
 
         throw new \InvalidArgumentException('Callable is not describable.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -110,7 +110,7 @@
 
     protected function describeContainerDeprecations(ContainerBuilder $container, array $options = []): void
     {
-        $containerDeprecationFilePath = sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
+        $containerDeprecationFilePath = \sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
         if (!file_exists($containerDeprecationFilePath)) {
             throw new RuntimeException('The deprecation file does not exist, please try warming the cache first.');
         }
@@ -243,7 +243,7 @@
             $parameterXML->appendChild(new \DOMText($this->formatParameter($value)));
 
             if (isset($deprecatedParameters[$key])) {
-                $parameterXML->setAttribute('deprecated', sprintf('Since %s %s: %s', $deprecatedParameters[$key][0], $deprecatedParameters[$key][1], sprintf(...\array_slice($deprecatedParameters[$key], 2))));
+                $parameterXML->setAttribute('deprecated', \sprintf('Since %s %s: %s', $deprecatedParameters[$key][0], $deprecatedParameters[$key][1], \sprintf(...\array_slice($deprecatedParameters[$key], 2))));
             }
         }
 
@@ -341,7 +341,7 @@
                 if ($factory[0] instanceof Reference) {
                     $factoryXML->setAttribute('service', (string) $factory[0]);
                 } elseif ($factory[0] instanceof Definition) {
-                    $factoryXML->setAttribute('service', sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'not configured'));
+                    $factoryXML->setAttribute('service', \sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'not configured'));
                 } else {
                     $factoryXML->setAttribute('class', $factory[0]);
                 }
@@ -490,7 +490,7 @@
             $parameterXML->setAttribute('key', $options['parameter']);
 
             if ($deprecation) {
-                $parameterXML->setAttribute('deprecated', sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], sprintf(...\array_slice($deprecation, 2))));
+                $parameterXML->setAttribute('deprecated', \sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], \sprintf(...\array_slice($deprecation, 2))));
             }
         }
 
@@ -510,7 +510,7 @@
             $this->appendEventListenerDocument($eventDispatcher, $event, $eventDispatcherXML, $registeredListeners);
         } else {
             // Try to see if "events" exists
-            $registeredListeners = \array_key_exists('events', $options) ? array_combine($options['events'], array_map(fn ($event) => $eventDispatcher->getListeners($event), $options['events'])) : $eventDispatcher->getListeners();
+            $registeredListeners = \array_key_exists('events', $options) ? array_combine($options['events'], array_map(static fn ($event) => $eventDispatcher->getListeners($event), $options['events'])) : $eventDispatcher->getListeners();
             ksort($registeredListeners);
 
             foreach ($registeredListeners as $eventListened => $eventListeners) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/AbstractController.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/AbstractController.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/AbstractController.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/AbstractController.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
     protected function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
         if (!$this->container->has('parameter_bag')) {
-            throw new ServiceNotFoundException('parameter_bag.', null, null, [], sprintf('The "%s::getParameter()" method is missing a parameter bag to work properly. Did you forget to register your controller as a service subscriber? This can be fixed either by using autoconfiguration or by manually wiring a "parameter_bag" in the service locator passed to the controller.', static::class));
+            throw new ServiceNotFoundException('parameter_bag.', null, null, [], \sprintf('The "%s::getParameter()" method is missing a parameter bag to work properly. Did you forget to register your controller as a service subscriber? This can be fixed either by using autoconfiguration or by manually wiring a "parameter_bag" in the service locator passed to the controller.', static::class));
         }
 
         return $this->container->get('parameter_bag')->get($name);
@@ -157,6 +157,10 @@
             return new JsonResponse($json, $status, $headers, true);
         }
 
+        if (null === $data) {
+            return new JsonResponse('null', $status, $headers, true);
+        }
+
         return new JsonResponse($data, $status, $headers);
     }
 
@@ -289,7 +293,7 @@
 
         $twig = $this->container->get('twig');
 
-        $callback = function () use ($twig, $view, $parameters) {
+        $callback = static function () use ($twig, $view, $parameters) {
             $twig->display($view, $parameters);
         };
 
@@ -432,7 +436,7 @@
     private function doRenderView(string $view, ?string $block, array $parameters, string $method): string
     {
         if (!$this->container->has('twig')) {
-            throw new \LogicException(sprintf('You cannot use the "%s" method if the Twig Bundle is not available. Try running "composer require symfony/twig-bundle".', $method));
+            throw new \LogicException(\sprintf('You cannot use the "%s" method if the Twig Bundle is not available. Try running "composer require symfony/twig-bundle".', $method));
         }
 
         foreach ($parameters as $k => $v) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerResolver.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,10 +31,9 @@
         }
         if ($controller instanceof AbstractController) {
             if (null === $previousContainer = $controller->setContainer($this->container)) {
-                throw new \LogicException(sprintf('"%s" has no container set, did you forget to define it as a service subscriber?', $class));
-            } else {
-                $controller->setContainer($previousContainer);
+                throw new \LogicException(\sprintf('"%s" has no container set, did you forget to define it as a service subscriber?', $class));
             }
+            $controller->setContainer($previousContainer);
         }
 
         return $controller;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/RedirectController.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/RedirectController.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/RedirectController.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Controller/RedirectController.php	2026-05-20 10:56:49.000000000 +0200
@@ -176,7 +176,7 @@
 
         if (\array_key_exists('route', $p)) {
             if (\array_key_exists('path', $p)) {
-                throw new \RuntimeException(sprintf('Ambiguous redirection settings, use the "path" or "route" parameter, not both: "%s" and "%s" found respectively in "%s" routing configuration.', $p['path'], $p['route'], $request->attributes->get('_route')));
+                throw new \RuntimeException(\sprintf('Ambiguous redirection settings, use the "path" or "route" parameter, not both: "%s" and "%s" found respectively in "%s" routing configuration.', $p['path'], $p['route'], $request->attributes->get('_route')));
             }
 
             return $this->redirectAction($request, $p['route'], $p['permanent'] ?? false, $p['ignoreAttributes'] ?? false, $p['keepRequestMethod'] ?? false, $p['keepQueryParams'] ?? false);
@@ -186,6 +186,6 @@
             return $this->urlRedirectAction($request, $p['path'], $p['permanent'] ?? false, $p['scheme'] ?? null, $p['httpPort'] ?? null, $p['httpsPort'] ?? null, $p['keepRequestMethod'] ?? false);
         }
 
-        throw new \RuntimeException(sprintf('The parameter "path" or "route" is required to configure the redirect action in "%s" routing configuration.', $request->attributes->get('_route')));
+        throw new \RuntimeException(\sprintf('The parameter "path" or "route" is required to configure the redirect action in "%s" routing configuration.', $request->attributes->get('_route')));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/LoggingTranslatorPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/LoggingTranslatorPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/LoggingTranslatorPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/LoggingTranslatorPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
             $class = $container->getParameterBag()->resolveValue($definition->getClass());
 
             if (!$r = $container->getReflectionClass($class)) {
-                throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $translatorAlias));
+                throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $translatorAlias));
             }
             if ($r->isSubclassOf(TranslatorInterface::class) && $r->isSubclassOf(TranslatorBagInterface::class)) {
                 $container->getDefinition('translator.logging')->setDecoratedService('translator');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ProfilerPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ProfilerPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ProfilerPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ProfilerPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
             if (isset($attributes[0]['template']) || is_subclass_of($collectorClass, TemplateAwareDataCollectorInterface::class)) {
                 $idForTemplate = $attributes[0]['id'] ?? $collectorClass;
                 if (!$idForTemplate) {
-                    throw new InvalidArgumentException(sprintf('Data collector service "%s" must have an id attribute in order to specify a template.', $id));
+                    throw new InvalidArgumentException(\sprintf('Data collector service "%s" must have an id attribute in order to specify a template.', $id));
                 }
                 $template = [$idForTemplate, $attributes[0]['template'] ?? $collectorClass::getTemplate()];
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/TestServiceContainerWeakRefPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/TestServiceContainerWeakRefPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/TestServiceContainerWeakRefPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/TestServiceContainerWeakRefPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,10 @@
         $definitions = $container->getDefinitions();
 
         foreach ($definitions as $id => $definition) {
-            if ($id && '.' !== $id[0] && (!$definition->isPublic() || $definition->isPrivate() || $definition->hasTag('container.private')) && !$definition->hasErrors() && !$definition->isAbstract()) {
+            if ($inner = $definition->getTag('container.decorator')[0]['inner'] ?? null) {
+                $privateServices[$inner] = new Reference($inner, ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE);
+            }
+            if ($id && '.' !== $id[0] && ($definition->isPrivate() || $definition->hasTag('container.private')) && !$definition->hasErrors() && !$definition->isAbstract()) {
                 $privateServices[$id] = new Reference($id, ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE);
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/UnusedTagsPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/UnusedTagsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/UnusedTagsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/UnusedTagsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -132,9 +132,9 @@
             }
 
             $services = array_keys($container->findTaggedServiceIds($tag));
-            $message = sprintf('Tag "%s" was defined on service(s) "%s", but was never used.', $tag, implode('", "', $services));
+            $message = \sprintf('Tag "%s" was defined on service(s) "%s", but was never used.', $tag, implode('", "', $services));
             if ($candidates) {
-                $message .= sprintf(' Did you mean "%s"?', implode('", "', $candidates));
+                $message .= \sprintf(' Did you mean "%s"?', implode('", "', $candidates));
             }
 
             $container->log($this, $message);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/WorkflowGuardListenerPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/WorkflowGuardListenerPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/WorkflowGuardListenerPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/WorkflowGuardListenerPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
 
         foreach ($servicesNeeded as $service) {
             if (!$container->has($service)) {
-                throw new LogicException(sprintf('The "%s" service is needed to be able to use the workflow guard listener.', $service));
+                throw new LogicException(\sprintf('The "%s" service is needed to be able to use the workflow guard listener.', $service));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,15 +75,15 @@
 
         $rootNode
             ->beforeNormalization()
-                ->ifTrue(fn ($v) => !isset($v['assets']) && isset($v['templating']) && class_exists(Package::class))
-                ->then(function ($v) {
+                ->ifTrue(static fn ($v) => !isset($v['assets']) && isset($v['templating']) && class_exists(Package::class))
+                ->then(static function ($v) {
                     $v['assets'] = [];
 
                     return $v;
                 })
             ->end()
             ->validate()
-                ->always(function ($v) {
+                ->always(static function ($v) {
                     if (!isset($v['http_method_override'])) {
                         trigger_deprecation('symfony/framework-bundle', '6.1', 'Not setting the "framework.http_method_override" config option is deprecated. It will default to "false" in 7.0.');
 
@@ -123,7 +123,7 @@
                     ->prototype('scalar')->end()
                 ->end()
                 ->arrayNode('trusted_hosts')
-                    ->beforeNormalization()->ifString()->then(fn ($v) => [$v])->end()
+                    ->beforeNormalization()->ifString()->then(static fn ($v) => [$v])->end()
                     ->prototype('scalar')->end()
                 ->end()
                 ->scalarNode('trusted_proxies')->end()
@@ -131,7 +131,7 @@
                     ->fixXmlConfig('trusted_header')
                     ->performNoDeepMerging()
                     ->defaultValue(['x-forwarded-for', 'x-forwarded-port', 'x-forwarded-proto'])
-                    ->beforeNormalization()->ifString()->then(fn ($v) => $v ? array_map('trim', explode(',', $v)) : [])->end()
+                    ->beforeNormalization()->ifString()->then(static fn ($v) => $v ? array_map('trim', explode(',', $v)) : [])->end()
                     ->enumPrototype()
                         ->values([
                             'forwarded',
@@ -153,7 +153,7 @@
             return ContainerBuilder::willBeAvailable($package, $class, $parentPackages);
         };
 
-        $enableIfStandalone = fn (string $package, string $class) => !class_exists(FullStack::class) && $willBeAvailable($package, $class) ? 'canBeDisabled' : 'canBeEnabled';
+        $enableIfStandalone = static fn (string $package, string $class) => !class_exists(FullStack::class) && $willBeAvailable($package, $class) ? 'canBeDisabled' : 'canBeEnabled';
 
         $this->addCsrfSection($rootNode);
         $this->addFormSection($rootNode, $enableIfStandalone);
@@ -358,7 +358,7 @@
                 ->arrayNode('workflows')
                     ->canBeEnabled()
                     ->beforeNormalization()
-                        ->always(function ($v) {
+                        ->always(static function ($v) {
                             if (\is_array($v) && true === $v['enabled']) {
                                 $workflows = $v;
                                 unset($workflows['enabled']);
@@ -367,13 +367,13 @@
                                     $workflows = [];
                                 }
 
-                                if (1 === \count($workflows) && isset($workflows['workflows']) && !array_is_list($workflows['workflows']) && array_diff(array_keys($workflows['workflows']), ['audit_trail', 'type', 'marking_store', 'supports', 'support_strategy', 'initial_marking', 'places', 'transitions'])) {
+                                if (1 === \count($workflows) && isset($workflows['workflows']) && !array_is_list($workflows['workflows']) && array_diff_key($workflows['workflows'], ['audit_trail' => 1, 'type' => 1, 'marking_store' => 1, 'supports' => 1, 'support_strategy' => 1, 'initial_marking' => 1, 'places' => 1, 'transitions' => 1])) {
                                     $workflows = $workflows['workflows'];
                                 }
 
                                 foreach ($workflows as $key => $workflow) {
                                     if (isset($workflow['enabled']) && false === $workflow['enabled']) {
-                                        throw new LogicException(sprintf('Cannot disable a single workflow. Remove the configuration for the workflow "%s" instead.', $key));
+                                        throw new LogicException(\sprintf('Cannot disable a single workflow. Remove the configuration for the workflow "%s" instead.', $key));
                                     }
 
                                     unset($workflows[$key]['enabled']);
@@ -420,12 +420,12 @@
                                     ->arrayNode('supports')
                                         ->beforeNormalization()
                                             ->ifString()
-                                            ->then(fn ($v) => [$v])
+                                            ->then(static fn ($v) => [$v])
                                         ->end()
                                         ->prototype('scalar')
                                             ->cannotBeEmpty()
                                             ->validate()
-                                                ->ifTrue(fn ($v) => !class_exists($v) && !interface_exists($v, false))
+                                                ->ifTrue(static fn ($v) => !class_exists($v) && !interface_exists($v, false))
                                                 ->thenInvalid('The supported class or interface "%s" does not exist.')
                                             ->end()
                                         ->end()
@@ -441,7 +441,7 @@
                                     ->variableNode('events_to_dispatch')
                                         ->defaultValue(null)
                                         ->validate()
-                                            ->ifTrue(function ($v) {
+                                            ->ifTrue(static function ($v) {
                                                 if (null === $v) {
                                                     return false;
                                                 }
@@ -468,32 +468,21 @@
                                     ->arrayNode('places')
                                         ->beforeNormalization()
                                             ->always()
-                                            ->then(function ($places) {
+                                            ->then(static function ($places) {
                                                 if (!\is_array($places)) {
                                                     throw new InvalidConfigurationException('The "places" option must be an array in workflow configuration.');
                                                 }
 
-                                                // It's an indexed array of shape  ['place1', 'place2']
-                                                if (isset($places[0]) && \is_string($places[0])) {
-                                                    return array_map(function (string $place) {
-                                                        return ['name' => $place];
-                                                    }, $places);
-                                                }
-
-                                                // It's an indexed array, we let the validation occur
-                                                if (isset($places[0]) && \is_array($places[0])) {
-                                                    return $places;
-                                                }
-
-                                                foreach ($places as $name => $place) {
-                                                    if (\is_array($place) && \array_key_exists('name', $place)) {
-                                                        continue;
+                                                $normalizedPlaces = [];
+                                                foreach ($places as $key => $value) {
+                                                    if (!\is_array($value)) {
+                                                        $value = ['name' => $value];
                                                     }
-                                                    $place['name'] = $name;
-                                                    $places[$name] = $place;
+                                                    $value['name'] ??= $key;
+                                                    $normalizedPlaces[] = $value;
                                                 }
 
-                                                return array_values($places);
+                                                return $normalizedPlaces;
                                             })
                                         ->end()
                                         ->isRequired()
@@ -505,6 +494,7 @@
                                                     ->cannotBeEmpty()
                                                 ->end()
                                                 ->arrayNode('metadata')
+                                                    ->useAttributeAsKey('key')
                                                     ->normalizeKeys(false)
                                                     ->defaultValue([])
                                                     ->example(['color' => 'blue', 'description' => 'Workflow to manage article.'])
@@ -516,26 +506,26 @@
                                     ->end()
                                     ->arrayNode('transitions')
                                         ->beforeNormalization()
-                                            ->always()
-                                            ->then(function ($transitions) {
+                                            ->always(static function ($transitions) {
                                                 if (!\is_array($transitions)) {
                                                     throw new InvalidConfigurationException('The "transitions" option must be an array in workflow configuration.');
                                                 }
 
-                                                // It's an indexed array, we let the validation occur
-                                                if (isset($transitions[0]) && \is_array($transitions[0])) {
-                                                    return $transitions;
-                                                }
-
-                                                foreach ($transitions as $name => $transition) {
-                                                    if (\is_array($transition) && \array_key_exists('name', $transition)) {
-                                                        continue;
+                                                $normalizedTransitions = [];
+                                                foreach ($transitions as $key => $transition) {
+                                                    if (\is_array($transition)) {
+                                                        if (\is_string($key = $transition['key'] ?? $key)) {
+                                                            $transition['name'] ??= $key;
+                                                        }
+                                                        if (!($transition['name'] ?? false)) {
+                                                            throw new InvalidConfigurationException('The "name" option is required for each transition in workflow configuration.');
+                                                        }
+                                                        unset($transition['key']);
                                                     }
-                                                    $transition['name'] = $name;
-                                                    $transitions[$name] = $transition;
+                                                    $normalizedTransitions[$key] = $transition;
                                                 }
 
-                                                return $transitions;
+                                                return $normalizedTransitions;
                                             })
                                         ->end()
                                         ->isRequired()
@@ -552,9 +542,10 @@
                                                     ->example('is_fully_authenticated() and is_granted(\'ROLE_JOURNALIST\') and subject.getTitle() == \'My first article\'')
                                                 ->end()
                                                 ->arrayNode('from')
+                                                    ->performNoDeepMerging()
                                                     ->beforeNormalization()
                                                         ->ifString()
-                                                        ->then(fn ($v) => [$v])
+                                                        ->then(static fn ($v) => [$v])
                                                     ->end()
                                                     ->requiresAtLeastOneElement()
                                                     ->prototype('scalar')
@@ -562,9 +553,10 @@
                                                     ->end()
                                                 ->end()
                                                 ->arrayNode('to')
+                                                    ->performNoDeepMerging()
                                                     ->beforeNormalization()
                                                         ->ifString()
-                                                        ->then(fn ($v) => [$v])
+                                                        ->then(static fn ($v) => [$v])
                                                     ->end()
                                                     ->requiresAtLeastOneElement()
                                                     ->prototype('scalar')
@@ -572,6 +564,7 @@
                                                     ->end()
                                                 ->end()
                                                 ->arrayNode('metadata')
+                                                    ->useAttributeAsKey('key')
                                                     ->normalizeKeys(false)
                                                     ->defaultValue([])
                                                     ->example(['color' => 'blue', 'description' => 'Workflow to manage article.'])
@@ -582,6 +575,7 @@
                                         ->end()
                                     ->end()
                                     ->arrayNode('metadata')
+                                        ->useAttributeAsKey('key')
                                         ->normalizeKeys(false)
                                         ->defaultValue([])
                                         ->example(['color' => 'blue', 'description' => 'Workflow to manage article.'])
@@ -590,20 +584,16 @@
                                     ->end()
                                 ->end()
                                 ->validate()
-                                    ->ifTrue(function ($v) {
-                                        return $v['supports'] && isset($v['support_strategy']);
-                                    })
+                                    ->ifTrue(static fn ($v) => $v['supports'] && isset($v['support_strategy']))
                                     ->thenInvalid('"supports" and "support_strategy" cannot be used together.')
                                 ->end()
                                 ->validate()
-                                    ->ifTrue(function ($v) {
-                                        return !$v['supports'] && !isset($v['support_strategy']);
-                                    })
+                                    ->ifTrue(static fn ($v) => !$v['supports'] && !isset($v['support_strategy']))
                                     ->thenInvalid('"supports" or "support_strategy" should be configured.')
                                 ->end()
                                 ->beforeNormalization()
                                         ->always()
-                                        ->then(function ($values) {
+                                        ->then(static function ($values) {
                                             // Special case to deal with XML when the user wants an empty array
                                             if (\array_key_exists('event_to_dispatch', $values) && null === $values['event_to_dispatch']) {
                                                 $values['events_to_dispatch'] = [];
@@ -658,7 +648,7 @@
     {
         $rootNode
             ->validate()
-                ->always(function (array $v): array {
+                ->always(static function (array $v): array {
                     if ($v['session']['enabled']) {
                         if (!\array_key_exists('cookie_secure', $v['session'])) {
                             trigger_deprecation('symfony/framework-bundle', '6.4', 'Not setting the "framework.session.cookie_secure" config option is deprecated. It will default to "auto" in 7.0.');
@@ -691,7 +681,7 @@
                         ->scalarNode('handler_id')->end()
                         ->scalarNode('name')
                             ->validate()
-                                ->ifTrue(function ($v) {
+                                ->ifTrue(static function ($v) {
                                     parse_str($v, $parsed);
 
                                     return implode('&', array_keys($parsed)) !== (string) $v;
@@ -741,8 +731,8 @@
                             ->useAttributeAsKey('name')
                             ->prototype('array')
                                 ->beforeNormalization()
-                                    ->ifTrue(fn ($v) => \is_array($v) && isset($v['mime_type']))
-                                    ->then(fn ($v) => $v['mime_type'])
+                                    ->ifTrue(static fn ($v) => \is_array($v) && isset($v['mime_type']))
+                                    ->then(static fn ($v) => $v['mime_type'])
                                 ->end()
                                 ->beforeNormalization()->castToArray()->end()
                                 ->prototype('scalar')->end()
@@ -779,21 +769,15 @@
                         ->end()
                     ->end()
                     ->validate()
-                        ->ifTrue(function ($v) {
-                            return isset($v['version_strategy']) && isset($v['version']);
-                        })
+                        ->ifTrue(static fn ($v) => isset($v['version_strategy']) && isset($v['version']))
                         ->thenInvalid('You cannot use both "version_strategy" and "version" at the same time under "assets".')
                     ->end()
                     ->validate()
-                        ->ifTrue(function ($v) {
-                            return isset($v['version_strategy']) && isset($v['json_manifest_path']);
-                        })
+                        ->ifTrue(static fn ($v) => isset($v['version_strategy']) && isset($v['json_manifest_path']))
                         ->thenInvalid('You cannot use both "version_strategy" and "json_manifest_path" at the same time under "assets".')
                     ->end()
                     ->validate()
-                        ->ifTrue(function ($v) {
-                            return isset($v['version']) && isset($v['json_manifest_path']);
-                        })
+                        ->ifTrue(static fn ($v) => isset($v['version']) && isset($v['json_manifest_path']))
                         ->thenInvalid('You cannot use both "version" and "json_manifest_path" at the same time under "assets".')
                     ->end()
                     ->fixXmlConfig('package')
@@ -811,8 +795,8 @@
                                     ->scalarNode('version_strategy')->defaultNull()->end()
                                     ->scalarNode('version')
                                         ->beforeNormalization()
-                                        ->ifTrue(fn ($v) => '' === $v)
-                                        ->then(fn () => null)
+                                        ->ifTrue(static fn ($v) => '' === $v)
+                                        ->then(static fn () => null)
                                         ->end()
                                     ->end()
                                     ->scalarNode('version_format')->defaultNull()->end()
@@ -825,21 +809,15 @@
                                     ->end()
                                 ->end()
                                 ->validate()
-                                    ->ifTrue(function ($v) {
-                                        return isset($v['version_strategy']) && isset($v['version']);
-                                    })
+                                    ->ifTrue(static fn ($v) => isset($v['version_strategy']) && isset($v['version']))
                                     ->thenInvalid('You cannot use both "version_strategy" and "version" at the same time under "assets" packages.')
                                 ->end()
                                 ->validate()
-                                    ->ifTrue(function ($v) {
-                                        return isset($v['version_strategy']) && isset($v['json_manifest_path']);
-                                    })
+                                    ->ifTrue(static fn ($v) => isset($v['version_strategy']) && isset($v['json_manifest_path']))
                                     ->thenInvalid('You cannot use both "version_strategy" and "json_manifest_path" at the same time under "assets" packages.')
                                 ->end()
                                 ->validate()
-                                    ->ifTrue(function ($v) {
-                                        return isset($v['version']) && isset($v['json_manifest_path']);
-                                    })
+                                    ->ifTrue(static fn ($v) => isset($v['version']) && isset($v['json_manifest_path']))
                                     ->thenInvalid('You cannot use both "version" and "json_manifest_path" at the same time under "assets" packages.')
                                 ->end()
                             ->end()
@@ -870,7 +848,7 @@
                             ->useAttributeAsKey('namespace')
                             ->beforeNormalization()
                                 ->always()
-                                ->then(function ($v) {
+                                ->then(static function ($v) {
                                     $result = [];
                                     foreach ($v as $key => $item) {
                                         // "dir" => "namespace"
@@ -969,7 +947,7 @@
                     ->children()
                         ->arrayNode('fallbacks')
                             ->info('Defaults to the value of "default_locale".')
-                            ->beforeNormalization()->ifString()->then(fn ($v) => [$v])->end()
+                            ->beforeNormalization()->ifString()->then(static fn ($v) => [$v])->end()
                             ->prototype('scalar')->end()
                             ->defaultValue([])
                         ->end()
@@ -1030,7 +1008,7 @@
     {
         $rootNode
             ->validate()
-                ->always(function ($v) {
+                ->always(static function ($v) {
                     if ($v['validation']['enabled'] && !\array_key_exists('email_validation_mode', $v['validation'])) {
                         trigger_deprecation('symfony/framework-bundle', '6.4', 'Not setting the "framework.validation.email_validation_mode" config option is deprecated. It will default to "html5" in 7.0.');
                     }
@@ -1041,8 +1019,8 @@
             ->children()
                 ->arrayNode('validation')
                     ->beforeNormalization()
-                        ->ifTrue(fn ($v) => isset($v['enable_annotations']))
-                        ->then(function ($v) {
+                        ->ifTrue(static fn ($v) => isset($v['enable_annotations']))
+                        ->then(static function ($v) {
                             trigger_deprecation('symfony/framework-bundle', '6.4', 'Option "enable_annotations" at "framework.validation" is deprecated. Use the "enable_attributes" option instead.');
 
                             if (isset($v['enable_attributes'])) {
@@ -1066,7 +1044,7 @@
                             ->validate()->castToArray()->end()
                         ->end()
                         ->scalarNode('translation_domain')->defaultValue('validators')->end()
-                        ->enumNode('email_validation_mode')->values(['html5', 'loose', 'strict'])->end()
+                        ->enumNode('email_validation_mode')->values(['html5', 'html5-allow-no-tld', 'strict', 'loose'])->end()
                         ->arrayNode('mapping')
                             ->addDefaultsIfNotSet()
                             ->fixXmlConfig('path')
@@ -1099,7 +1077,7 @@
                             ->normalizeKeys(false)
                             ->beforeNormalization()
                                 ->ifArray()
-                                ->then(function (array $values): array {
+                                ->then(static function (array $values): array {
                                     foreach ($values as $k => $v) {
                                         if (isset($v['service'])) {
                                             continue;
@@ -1165,8 +1143,8 @@
             ->children()
                 ->arrayNode('serializer')
                     ->beforeNormalization()
-                        ->ifTrue(fn ($v) => isset($v['enable_annotations']))
-                        ->then(function ($v) {
+                        ->ifTrue(static fn ($v) => isset($v['enable_annotations']))
+                        ->then(static function ($v) {
                             trigger_deprecation('symfony/framework-bundle', '6.4', 'Option "enable_annotations" at "framework.serializer" is deprecated. Use the "enable_attributes" option instead.');
 
                             if (isset($v['enable_attributes'])) {
@@ -1195,10 +1173,11 @@
                             ->end()
                         ->end()
                         ->arrayNode('default_context')
+                            ->useAttributeAsKey('key')
                             ->normalizeKeys(false)
                             ->validate()
                                 ->ifTrue(fn () => $this->debug && class_exists(JsonParser::class))
-                                ->then(fn (array $v) => $v + [JsonDecode::DETAILED_ERROR_MESSAGES => true])
+                                ->then(static fn (array $v) => $v + [JsonDecode::DETAILED_ERROR_MESSAGES => true])
                             ->end()
                             ->defaultValue([])
                             ->prototype('variable')->end()
@@ -1274,7 +1253,7 @@
                             ->prototype('array')
                                 ->fixXmlConfig('adapter')
                                 ->beforeNormalization()
-                                    ->ifTrue(fn ($v) => isset($v['provider']) && \is_array($v['adapters'] ?? $v['adapter'] ?? null) && 1 < \count($v['adapters'] ?? $v['adapter']))
+                                    ->ifTrue(static fn ($v) => isset($v['provider']) && \is_array($v['adapters'] ?? $v['adapter'] ?? null) && 1 < \count($v['adapters'] ?? $v['adapter']))
                                     ->thenInvalid('Pool cannot have a "provider" while more than one adapter is defined')
                                 ->end()
                                 ->children()
@@ -1283,7 +1262,7 @@
                                         ->info('One or more adapters to chain for creating the pool, defaults to "cache.app".')
                                         ->beforeNormalization()->castToArray()->end()
                                         ->beforeNormalization()
-                                            ->always()->then(function ($values) {
+                                            ->always()->then(static function ($values) {
                                                 if ([0] === array_keys($values) && \is_array($values[0])) {
                                                     return $values[0];
                                                 }
@@ -1322,7 +1301,7 @@
                                 ->end()
                             ->end()
                             ->validate()
-                                ->ifTrue(fn ($v) => isset($v['cache.app']) || isset($v['cache.system']))
+                                ->ifTrue(static fn ($v) => isset($v['cache.app']) || isset($v['cache.system']))
                                 ->thenInvalid('"cache.app" and "cache.system" are reserved names')
                             ->end()
                         ->end()
@@ -1357,7 +1336,7 @@
                             ->treatNullLike($this->debug)
                             ->beforeNormalization()
                                 ->ifArray()
-                                ->then(function (array $v): array {
+                                ->then(static function (array $v): array {
                                     if (!($v[0]['type'] ?? false)) {
                                         return $v;
                                     }
@@ -1373,7 +1352,7 @@
                                 })
                             ->end()
                             ->validate()
-                                ->ifTrue(fn ($v) => !(\is_int($v) || \is_bool($v) || \is_array($v)))
+                                ->ifTrue(static fn ($v) => !(\is_int($v) || \is_bool($v) || \is_array($v)))
                                 ->thenInvalid('The "php_errors.log" parameter should be either an integer, a boolean, or an array')
                             ->end()
                         ->end()
@@ -1401,7 +1380,7 @@
                     ->beforeNormalization()
                         // Handle legacy XML configuration
                         ->ifArray()
-                        ->then(function (array $v): array {
+                        ->then(static function (array $v): array {
                             if (!\array_key_exists('exception', $v)) {
                                 return $v;
                             }
@@ -1424,19 +1403,19 @@
                             ->scalarNode('log_level')
                                 ->info('The level of log message. Null to let Symfony decide.')
                                 ->validate()
-                                    ->ifTrue(fn ($v) => null !== $v && !\in_array($v, $logLevels, true))
-                                    ->thenInvalid(sprintf('The log level is not valid. Pick one among "%s".', implode('", "', $logLevels)))
+                                    ->ifTrue(static fn ($v) => null !== $v && !\in_array($v, $logLevels, true))
+                                    ->thenInvalid(\sprintf('The log level is not valid. Pick one among "%s".', implode('", "', $logLevels)))
                                 ->end()
                                 ->defaultNull()
                             ->end()
                             ->scalarNode('status_code')
                                 ->info('The status code of the response. Null or 0 to let Symfony decide.')
                                 ->beforeNormalization()
-                                    ->ifTrue(fn ($v) => 0 === $v)
-                                    ->then(fn ($v) => null)
+                                    ->ifTrue(static fn ($v) => 0 === $v)
+                                    ->then(static fn ($v) => null)
                                 ->end()
                                 ->validate()
-                                    ->ifTrue(fn ($v) => null !== $v && ($v < 100 || $v > 599))
+                                    ->ifTrue(static fn ($v) => null !== $v && ($v < 100 || $v > 599))
                                     ->thenInvalid('The status code is not valid. Pick a value between 100 and 599.')
                                 ->end()
                                 ->defaultNull()
@@ -1456,15 +1435,15 @@
                     ->info('Lock configuration')
                     ->{$enableIfStandalone('symfony/lock', Lock::class)}()
                     ->beforeNormalization()
-                        ->ifString()->then(fn ($v) => ['enabled' => true, 'resources' => $v])
+                        ->ifString()->then(static fn ($v) => ['enabled' => true, 'resources' => $v])
                     ->end()
                     ->beforeNormalization()
-                        ->ifTrue(fn ($v) => \is_array($v) && !isset($v['enabled']))
-                        ->then(fn ($v) => $v + ['enabled' => true])
+                        ->ifTrue(static fn ($v) => \is_array($v) && !isset($v['enabled']))
+                        ->then(static fn ($v) => $v + ['enabled' => true])
                     ->end()
                     ->beforeNormalization()
-                        ->ifTrue(fn ($v) => \is_array($v) && !isset($v['resources']) && !isset($v['resource']))
-                        ->then(function ($v) {
+                        ->ifTrue(static fn ($v) => \is_array($v) && !isset($v['resources']) && !isset($v['resource']))
+                        ->then(static function ($v) {
                             $e = $v['enabled'];
                             unset($v['enabled']);
 
@@ -1473,7 +1452,7 @@
                     ->end()
                     ->addDefaultsIfNotSet()
                     ->validate()
-                        ->ifTrue(fn ($config) => $config['enabled'] && !$config['resources'])
+                        ->ifTrue(static fn ($config) => $config['enabled'] && !$config['resources'])
                         ->thenInvalid('At least one resource must be defined.')
                     ->end()
                     ->fixXmlConfig('resource')
@@ -1483,11 +1462,11 @@
                             ->useAttributeAsKey('name')
                             ->defaultValue(['default' => [class_exists(SemaphoreStore::class) && SemaphoreStore::isSupported() ? 'semaphore' : 'flock']])
                             ->beforeNormalization()
-                                ->ifString()->then(fn ($v) => ['default' => $v])
+                                ->ifString()->then(static fn ($v) => ['default' => $v])
                             ->end()
                             ->beforeNormalization()
-                                ->ifTrue(fn ($v) => \is_array($v) && array_is_list($v))
-                                ->then(function ($v) {
+                                ->ifTrue(static fn ($v) => \is_array($v) && array_is_list($v))
+                                ->then(static function ($v) {
                                     $resources = [];
                                     foreach ($v as $resource) {
                                         $resources[] = \is_array($resource) && isset($resource['name'])
@@ -1501,7 +1480,7 @@
                             ->end()
                             ->prototype('array')
                                 ->performNoDeepMerging()
-                                ->beforeNormalization()->ifString()->then(fn ($v) => [$v])->end()
+                                ->beforeNormalization()->ifString()->then(static fn ($v) => [$v])->end()
                                 ->prototype('scalar')->end()
                             ->end()
                         ->end()
@@ -1519,15 +1498,15 @@
                     ->info('Semaphore configuration')
                     ->{$enableIfStandalone('symfony/semaphore', Semaphore::class)}()
                     ->beforeNormalization()
-                        ->ifString()->then(fn ($v) => ['enabled' => true, 'resources' => $v])
+                        ->ifString()->then(static fn ($v) => ['enabled' => true, 'resources' => $v])
                     ->end()
                     ->beforeNormalization()
-                        ->ifTrue(fn ($v) => \is_array($v) && !isset($v['enabled']))
-                        ->then(fn ($v) => $v + ['enabled' => true])
+                        ->ifTrue(static fn ($v) => \is_array($v) && !isset($v['enabled']))
+                        ->then(static fn ($v) => $v + ['enabled' => true])
                     ->end()
                     ->beforeNormalization()
-                        ->ifTrue(fn ($v) => \is_array($v) && !isset($v['resources']) && !isset($v['resource']))
-                        ->then(function ($v) {
+                        ->ifTrue(static fn ($v) => \is_array($v) && !isset($v['resources']) && !isset($v['resource']))
+                        ->then(static function ($v) {
                             $e = $v['enabled'];
                             unset($v['enabled']);
 
@@ -1542,11 +1521,11 @@
                             ->useAttributeAsKey('name')
                             ->requiresAtLeastOneElement()
                             ->beforeNormalization()
-                                ->ifString()->then(fn ($v) => ['default' => $v])
+                                ->ifString()->then(static fn ($v) => ['default' => $v])
                             ->end()
                             ->beforeNormalization()
-                                ->ifTrue(fn ($v) => \is_array($v) && array_is_list($v))
-                                ->then(function ($v) {
+                                ->ifTrue(static fn ($v) => \is_array($v) && array_is_list($v))
+                                ->then(static function ($v) {
                                     $resources = [];
                                     foreach ($v as $resource) {
                                         $resources[] = \is_array($resource) && isset($resource['name'])
@@ -1588,12 +1567,12 @@
                     ->fixXmlConfig('transport')
                     ->fixXmlConfig('bus', 'buses')
                     ->validate()
-                        ->ifTrue(fn ($v) => isset($v['buses']) && \count($v['buses']) > 1 && null === $v['default_bus'])
+                        ->ifTrue(static fn ($v) => isset($v['buses']) && \count($v['buses']) > 1 && null === $v['default_bus'])
                         ->thenInvalid('You must specify the "default_bus" if you define more than one bus.')
                     ->end()
                     ->validate()
-                        ->ifTrue(fn ($v) => isset($v['buses']) && null !== $v['default_bus'] && !isset($v['buses'][$v['default_bus']]))
-                        ->then(fn ($v) => throw new InvalidConfigurationException(sprintf('The specified default bus "%s" is not configured. Available buses are "%s".', $v['default_bus'], implode('", "', array_keys($v['buses'])))))
+                        ->ifTrue(static fn ($v) => isset($v['buses']) && null !== $v['default_bus'] && !isset($v['buses'][$v['default_bus']]))
+                        ->then(static fn ($v) => throw new InvalidConfigurationException(\sprintf('The specified default bus "%s" is not configured. Available buses are "%s".', $v['default_bus'], implode('", "', array_keys($v['buses'])))))
                     ->end()
                     ->children()
                         ->arrayNode('routing')
@@ -1601,7 +1580,7 @@
                             ->useAttributeAsKey('message_class')
                             ->beforeNormalization()
                                 ->always()
-                                ->then(function ($config) {
+                                ->then(static function ($config) {
                                     if (!\is_array($config)) {
                                         return [];
                                     }
@@ -1618,9 +1597,7 @@
                                             ];
                                         } else {
                                             $newConfig[$v['message-class']]['senders'] = array_map(
-                                                function ($a) {
-                                                    return \is_string($a) ? $a : $a['service'];
-                                                },
+                                                static fn ($a) => \is_string($a) ? $a : $a['service'],
                                                 array_values($v['sender'])
                                             );
                                         }
@@ -1667,15 +1644,14 @@
                             ->arrayPrototype()
                                 ->beforeNormalization()
                                     ->ifString()
-                                    ->then(function (string $dsn) {
-                                        return ['dsn' => $dsn];
-                                    })
+                                    ->then(static fn (string $dsn) => ['dsn' => $dsn])
                                 ->end()
                                 ->fixXmlConfig('option')
                                 ->children()
                                     ->scalarNode('dsn')->end()
                                     ->scalarNode('serializer')->defaultNull()->info('Service id of a custom serializer to use.')->end()
                                     ->arrayNode('options')
+                                        ->useAttributeAsKey('key')
                                         ->normalizeKeys(false)
                                         ->defaultValue([])
                                         ->prototype('variable')
@@ -1688,7 +1664,7 @@
                                     ->arrayNode('retry_strategy')
                                         ->addDefaultsIfNotSet()
                                         ->beforeNormalization()
-                                            ->always(function ($v) {
+                                            ->always(static function ($v) {
                                                 if (isset($v['service']) && (isset($v['max_retries']) || isset($v['delay']) || isset($v['multiplier']) || isset($v['max_delay']))) {
                                                     throw new \InvalidArgumentException('The "service" cannot be used along with the other "retry_strategy" options.');
                                                 }
@@ -1720,7 +1696,7 @@
                             ->info('Reset container services after each message.')
                             ->setDeprecated('symfony/framework-bundle', '6.1', 'Option "%node%" at "%path%" is deprecated. It does nothing and will be removed in version 7.0.')
                             ->validate()
-                                ->ifTrue(fn ($v) => true !== $v)
+                                ->ifTrue(static fn ($v) => true !== $v)
                                 ->thenInvalid('The "framework.messenger.reset_on_message" configuration option can be set to "true" only. To prevent services resetting after each message you can set the "--no-reset" option in "messenger:consume" command.')
                             ->end()
                         ->end()
@@ -1739,8 +1715,8 @@
                                 ->children()
                                     ->arrayNode('default_middleware')
                                         ->beforeNormalization()
-                                            ->ifTrue(fn ($v) => \is_string($v) || \is_bool($v))
-                                            ->then(fn ($v) => [
+                                            ->ifTrue(static fn ($v) => \is_string($v) || \is_bool($v))
+                                            ->then(static fn ($v) => [
                                                 'enabled' => 'allow_no_handlers' === $v ? true : $v,
                                                 'allow_no_handlers' => 'allow_no_handlers' === $v,
                                                 'allow_no_senders' => true,
@@ -1755,14 +1731,14 @@
                                     ->arrayNode('middleware')
                                         ->performNoDeepMerging()
                                         ->beforeNormalization()
-                                            ->ifTrue(fn ($v) => \is_string($v) || (\is_array($v) && !\is_int(key($v))))
-                                            ->then(fn ($v) => [$v])
+                                            ->ifTrue(static fn ($v) => \is_string($v) || (\is_array($v) && !\is_int(key($v))))
+                                            ->then(static fn ($v) => [$v])
                                         ->end()
                                         ->defaultValue([])
                                         ->arrayPrototype()
                                             ->beforeNormalization()
                                                 ->always()
-                                                ->then(function ($middleware): array {
+                                                ->then(static function ($middleware): array {
                                                     if (!\is_array($middleware)) {
                                                         return ['id' => $middleware];
                                                     }
@@ -1833,7 +1809,7 @@
                     ->{$enableIfStandalone('symfony/http-client', HttpClient::class)}()
                     ->fixXmlConfig('scoped_client')
                     ->beforeNormalization()
-                        ->always(function ($config) {
+                        ->always(static function ($config) {
                             if (empty($config['scoped_clients']) || !\is_array($config['default_options']['retry_failed'] ?? null)) {
                                 return $config;
                             }
@@ -1866,6 +1842,7 @@
                                 ->end()
                                 ->arrayNode('vars')
                                     ->info('Associative array: the default vars used to expand the templated URI.')
+                                    ->useAttributeAsKey('name')
                                     ->normalizeKeys(false)
                                     ->variablePrototype()->end()
                                 ->end()
@@ -1879,7 +1856,7 @@
                                     ->info('Associative array: domain => IP.')
                                     ->useAttributeAsKey('host')
                                     ->beforeNormalization()
-                                        ->always(function ($config) {
+                                        ->always(static function ($config) {
                                             if (!\is_array($config)) {
                                                 return [];
                                             }
@@ -1946,6 +1923,7 @@
                                 ->end()
                                 ->arrayNode('extra')
                                     ->info('Extra options for specific HTTP client')
+                                    ->useAttributeAsKey('name')
                                     ->normalizeKeys(false)
                                     ->variablePrototype()->end()
                                 ->end()
@@ -1962,7 +1940,7 @@
                                 ->fixXmlConfig('header')
                                 ->beforeNormalization()
                                     ->always()
-                                    ->then(function ($config) {
+                                    ->then(static function ($config) {
                                         if (!class_exists(HttpClient::class)) {
                                             throw new LogicException('HttpClient support cannot be enabled as the component is not installed. Try running "composer require symfony/http-client".');
                                         }
@@ -1971,11 +1949,11 @@
                                     })
                                 ->end()
                                 ->validate()
-                                    ->ifTrue(fn ($v) => !isset($v['scope']) && !isset($v['base_uri']))
+                                    ->ifTrue(static fn ($v) => !isset($v['scope']) && !isset($v['base_uri']))
                                     ->thenInvalid('Either "scope" or "base_uri" should be defined.')
                                 ->end()
                                 ->validate()
-                                    ->ifTrue(fn ($v) => !empty($v['query']) && !isset($v['base_uri']))
+                                    ->ifTrue(static fn ($v) => !empty($v['query']) && !isset($v['base_uri']))
                                     ->thenInvalid('"query" applies to "base_uri" but no base URI is defined.')
                                 ->end()
                                 ->children()
@@ -2000,7 +1978,7 @@
                                         ->info('Associative array of query string values merged with the base URI.')
                                         ->useAttributeAsKey('key')
                                         ->beforeNormalization()
-                                            ->always(function ($config) {
+                                            ->always(static function ($config) {
                                                 if (!\is_array($config)) {
                                                     return [];
                                                 }
@@ -2030,7 +2008,7 @@
                                         ->info('Associative array: domain => IP.')
                                         ->useAttributeAsKey('host')
                                         ->beforeNormalization()
-                                            ->always(function ($config) {
+                                            ->always(static function ($config) {
                                                 if (!\is_array($config)) {
                                                     return [];
                                                 }
@@ -2097,6 +2075,7 @@
                                     ->end()
                                     ->arrayNode('extra')
                                         ->info('Extra options for specific HTTP client')
+                                        ->useAttributeAsKey('name')
                                         ->normalizeKeys(false)
                                         ->variablePrototype()->end()
                                     ->end()
@@ -2120,7 +2099,7 @@
                 ->canBeEnabled()
                 ->addDefaultsIfNotSet()
                 ->beforeNormalization()
-                    ->always(function ($v) {
+                    ->always(static function ($v) {
                         if (isset($v['retry_strategy']) && (isset($v['http_codes']) || isset($v['delay']) || isset($v['multiplier']) || isset($v['max_delay']) || isset($v['jitter']))) {
                             throw new \InvalidArgumentException('The "retry_strategy" option cannot be used along with the "http_codes", "delay", "multiplier", "max_delay" or "jitter" options.');
                         }
@@ -2161,7 +2140,7 @@
                                 ->arrayNode('methods')
                                     ->beforeNormalization()
                                     ->ifArray()
-                                        ->then(fn ($v) => array_map('strtoupper', $v))
+                                        ->then(static fn ($v) => array_map('strtoupper', $v))
                                     ->end()
                                     ->prototype('scalar')->end()
                                     ->info('A list of HTTP methods that triggers a retry for this status code. When empty, all methods are retried')
@@ -2187,7 +2166,7 @@
                     ->info('Mailer configuration')
                     ->{$enableIfStandalone('symfony/mailer', Mailer::class)}()
                     ->validate()
-                        ->ifTrue(fn ($v) => isset($v['dsn']) && \count($v['transports']))
+                        ->ifTrue(static fn ($v) => isset($v['dsn']) && \count($v['transports']))
                         ->thenInvalid('"dsn" and "transports" cannot be used together.')
                     ->end()
                     ->fixXmlConfig('transport')
@@ -2208,7 +2187,7 @@
                                     ->performNoDeepMerging()
                                     ->beforeNormalization()
                                     ->ifArray()
-                                        ->then(fn ($v) => array_filter(array_values($v)))
+                                        ->then(static fn ($v) => array_filter(array_values($v)))
                                     ->end()
                                     ->prototype('scalar')->end()
                                 ->end()
@@ -2220,8 +2199,8 @@
                             ->prototype('array')
                                 ->normalizeKeys(false)
                                 ->beforeNormalization()
-                                    ->ifTrue(fn ($v) => !\is_array($v) || array_keys($v) !== ['value'])
-                                    ->then(fn ($v) => ['value' => $v])
+                                    ->ifTrue(static fn ($v) => !\is_array($v) || array_keys($v) !== ['value'])
+                                    ->then(static fn ($v) => ['value' => $v])
                                 ->end()
                                 ->children()
                                     ->variableNode('value')->end()
@@ -2265,7 +2244,7 @@
                         ->arrayNode('channel_policy')
                             ->useAttributeAsKey('name')
                             ->prototype('array')
-                                ->beforeNormalization()->ifString()->then(fn ($v) => [$v])->end()
+                                ->beforeNormalization()->ifString()->then(static fn ($v) => [$v])->end()
                                 ->prototype('scalar')->end()
                             ->end()
                         ->end()
@@ -2336,8 +2315,8 @@
                     ->{$enableIfStandalone('symfony/rate-limiter', TokenBucketLimiter::class)}()
                     ->fixXmlConfig('limiter')
                     ->beforeNormalization()
-                        ->ifTrue(fn ($v) => \is_array($v) && !isset($v['limiters']) && !isset($v['limiter']))
-                        ->then(function (array $v) {
+                        ->ifTrue(static fn ($v) => \is_array($v) && !isset($v['limiters']) && !isset($v['limiter']))
+                        ->then(static function (array $v) {
                             $newV = [
                                 'enabled' => $v['enabled'] ?? true,
                             ];
@@ -2387,7 +2366,7 @@
                                     ->end()
                                 ->end()
                                 ->validate()
-                                    ->ifTrue(fn ($v) => 'no_limit' !== $v['policy'] && !isset($v['limit']))
+                                    ->ifTrue(static fn ($v) => 'no_limit' !== $v['policy'] && !isset($v['limit']))
                                     ->thenInvalid('A limit must be provided when using a policy different than "no_limit".')
                                 ->end()
                             ->end()
@@ -2402,7 +2381,7 @@
     {
         $rootNode
             ->validate()
-                ->always(function ($v) {
+                ->always(static function ($v) {
                     if ($v['uid']['enabled']) {
                         if (!\array_key_exists('default_uuid_version', $v['uid'])) {
                             trigger_deprecation('symfony/framework-bundle', '6.4', 'Not setting the "framework.uid.default_uuid_version" config option is deprecated. It will default to "7" in 7.0.');
@@ -2486,10 +2465,10 @@
                                         ->useAttributeAsKey('name')
                                         ->variablePrototype()
                                             ->beforeNormalization()
-                                                ->ifArray()->then(fn ($n) => $n['attribute'] ?? $n)
+                                                ->ifArray()->then(static fn ($n) => $n['attribute'] ?? $n)
                                             ->end()
                                             ->validate()
-                                                ->ifTrue(fn ($n): bool => !\is_string($n) && !\is_array($n))
+                                                ->ifTrue(static fn ($n): bool => !\is_string($n) && !\is_array($n))
                                                 ->thenInvalid('The value must be either a string or an array of strings.')
                                             ->end()
                                         ->end()
@@ -2498,7 +2477,7 @@
                                         ->info('Configures elements as blocked. Blocked elements are elements the sanitizer should remove from the input, but retain their children.')
                                         ->beforeNormalization()
                                             ->ifString()
-                                            ->then(fn (string $n): array => (array) $n)
+                                            ->then(static fn (string $n): array => (array) $n)
                                         ->end()
                                         ->scalarPrototype()->end()
                                     ->end()
@@ -2506,7 +2485,7 @@
                                         ->info('Configures elements as dropped. Dropped elements are elements the sanitizer should remove from the input, including their children.')
                                         ->beforeNormalization()
                                             ->ifString()
-                                            ->then(fn (string $n): array => (array) $n)
+                                            ->then(static fn (string $n): array => (array) $n)
                                         ->end()
                                         ->scalarPrototype()->end()
                                     ->end()
@@ -2516,7 +2495,7 @@
                                         ->useAttributeAsKey('name')
                                         ->variablePrototype()
                                             ->beforeNormalization()
-                                                ->ifArray()->then(fn ($n) => $n['element'] ?? $n)
+                                                ->ifArray()->then(static fn ($n) => $n['element'] ?? $n)
                                             ->end()
                                         ->end()
                                     ->end()
@@ -2526,7 +2505,7 @@
                                         ->useAttributeAsKey('name')
                                         ->variablePrototype()
                                             ->beforeNormalization()
-                                                ->ifArray()->then(fn ($n) => $n['element'] ?? $n)
+                                                ->ifArray()->then(static fn ($n) => $n['element'] ?? $n)
                                             ->end()
                                         ->end()
                                     ->end()
@@ -2552,7 +2531,7 @@
                                         ->info('Allows only a given list of hosts to be used in links href attributes.')
                                         ->defaultValue(null)
                                         ->validate()
-                                            ->ifTrue(fn ($v) => !\is_array($v) && null !== $v)
+                                            ->ifTrue(static fn ($v) => !\is_array($v) && null !== $v)
                                             ->thenInvalid('The "allowed_link_hosts" parameter must be an array or null')
                                         ->end()
                                     ->end()
@@ -2568,7 +2547,7 @@
                                         ->info('Allows only a given list of hosts to be used in media source attributes (img, audio, video, ...).')
                                         ->defaultValue(null)
                                         ->validate()
-                                            ->ifTrue(fn ($v) => !\is_array($v) && null !== $v)
+                                            ->ifTrue(static fn ($v) => !\is_array($v) && null !== $v)
                                             ->thenInvalid('The "allowed_media_hosts" parameter must be an array or null')
                                         ->end()
                                     ->end()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -163,6 +163,7 @@
 use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
 use Symfony\Component\Serializer\Mapping\Loader\XmlFileLoader;
 use Symfony\Component\Serializer\Mapping\Loader\YamlFileLoader;
+use Symfony\Component\Serializer\Normalizer\CacheableSupportsMethodInterface;
 use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
 use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
 use Symfony\Component\Serializer\Serializer;
@@ -679,7 +680,7 @@
             $tagAttributes = get_object_vars($attribute);
             if ($reflector instanceof \ReflectionMethod) {
                 if (isset($tagAttributes['method'])) {
-                    throw new LogicException(sprintf('AsEventListener attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
+                    throw new LogicException(\sprintf('AsEventListener attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
                 }
                 $tagAttributes['method'] = $reflector->getName();
             }
@@ -697,7 +698,7 @@
             unset($tagAttributes['fromTransport']);
             if ($reflector instanceof \ReflectionMethod) {
                 if (isset($tagAttributes['method'])) {
-                    throw new LogicException(sprintf('AsMessageHandler attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
+                    throw new LogicException(\sprintf('AsMessageHandler attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
                 }
                 $tagAttributes['method'] = $reflector->getName();
             }
@@ -721,7 +722,7 @@
                     ];
                     if ($reflector instanceof \ReflectionMethod) {
                         if (isset($tagAttributes['method'])) {
-                            throw new LogicException(sprintf('"%s" attribute cannot declare a method on "%s::%s()".', $attribute::class, $reflector->class, $reflector->name));
+                            throw new LogicException(\sprintf('"%s" attribute cannot declare a method on "%s::%s()".', $attribute::class, $reflector->class, $reflector->name));
                         }
                         $tagAttributes['method'] = $reflector->getName();
                     }
@@ -735,7 +736,7 @@
             $container->getDefinition('config_cache_factory')->setArguments([]);
         }
 
-        if (!$config['disallow_search_engine_index'] ?? false) {
+        if (!$config['disallow_search_engine_index']) {
             $container->removeDefinition('disallow_search_engine_index_response_listener');
         }
 
@@ -908,7 +909,7 @@
         // Choose storage class based on the DSN
         [$class] = explode(':', $config['dsn'], 2);
         if ('file' !== $class) {
-            throw new \LogicException(sprintf('Driver "%s" is not supported for the profiler.', $class));
+            throw new \LogicException(\sprintf('Driver "%s" is not supported for the profiler.', $class));
         }
 
         $container->setParameter('profiler.storage.dsn', $config['dsn']);
@@ -920,11 +921,11 @@
         $container->getDefinition('profiler_listener')
             ->addArgument($config['collect_parameter']);
 
-        if (!$container->getParameter('kernel.debug') || !class_exists(CliRequest::class) || !$container->has('debug.stopwatch')) {
+        if (!$container->getParameter('kernel.debug') || !$this->hasConsole() || !$container->has('debug.stopwatch') || !class_exists(CliRequest::class)) {
             $container->removeDefinition('console_profiler_listener');
         }
 
-        if (!class_exists(CommandDataCollector::class)) {
+        if (!$this->hasConsole() || !class_exists(CommandDataCollector::class)) {
             $container->removeDefinition('.data_collector.command');
         }
     }
@@ -947,7 +948,7 @@
 
         foreach ($config['workflows'] as $name => $workflow) {
             $type = $workflow['type'];
-            $workflowId = sprintf('%s.%s', $type, $name);
+            $workflowId = \sprintf('%s.%s', $type, $name);
 
             // Process Metadata (workflow + places (transition is done in the "create transition" block))
             $metadataStoreDefinition = new Definition(Workflow\Metadata\InMemoryMetadataStore::class, [[], [], null]);
@@ -972,19 +973,19 @@
             $transitionCounter = 0;
             foreach ($workflow['transitions'] as $transition) {
                 if ('workflow' === $type) {
-                    $transitionDefinition = new Definition(Workflow\Transition::class, [$transition['name'], $transition['from'], $transition['to']]);
-                    $transitionId = sprintf('.%s.transition.%s', $workflowId, $transitionCounter++);
-                    $container->setDefinition($transitionId, $transitionDefinition);
+                    $transitionId = \sprintf('.%s.transition.%s', $workflowId, $transitionCounter++);
+                    $container->register($transitionId, Workflow\Transition::class)
+                        ->setArguments([$transition['name'], $transition['from'], $transition['to']]);
                     $transitions[] = new Reference($transitionId);
                     if (isset($transition['guard'])) {
-                        $configuration = new Definition(Workflow\EventListener\GuardExpression::class);
-                        $configuration->addArgument(new Reference($transitionId));
-                        $configuration->addArgument($transition['guard']);
-                        $eventName = sprintf('workflow.%s.guard.%s', $name, $transition['name']);
-                        $guardsConfiguration[$eventName][] = $configuration;
+                        $eventName = \sprintf('workflow.%s.guard.%s', $name, $transition['name']);
+                        $guardsConfiguration[$eventName][] = new Definition(
+                            Workflow\EventListener\GuardExpression::class,
+                            [new Reference($transitionId), $transition['guard']]
+                        );
                     }
                     if ($transition['metadata']) {
-                        $transitionsMetadataDefinition->addMethodCall('attach', [
+                        $transitionsMetadataDefinition->addMethodCall('offsetSet', [
                             new Reference($transitionId),
                             $transition['metadata'],
                         ]);
@@ -992,19 +993,19 @@
                 } elseif ('state_machine' === $type) {
                     foreach ($transition['from'] as $from) {
                         foreach ($transition['to'] as $to) {
-                            $transitionDefinition = new Definition(Workflow\Transition::class, [$transition['name'], $from, $to]);
-                            $transitionId = sprintf('.%s.transition.%s', $workflowId, $transitionCounter++);
-                            $container->setDefinition($transitionId, $transitionDefinition);
+                            $transitionId = \sprintf('.%s.transition.%s', $workflowId, $transitionCounter++);
+                            $container->register($transitionId, Workflow\Transition::class)
+                                ->setArguments([$transition['name'], $from, $to]);
                             $transitions[] = new Reference($transitionId);
                             if (isset($transition['guard'])) {
-                                $configuration = new Definition(Workflow\EventListener\GuardExpression::class);
-                                $configuration->addArgument(new Reference($transitionId));
-                                $configuration->addArgument($transition['guard']);
-                                $eventName = sprintf('workflow.%s.guard.%s', $name, $transition['name']);
-                                $guardsConfiguration[$eventName][] = $configuration;
+                                $eventName = \sprintf('workflow.%s.guard.%s', $name, $transition['name']);
+                                $guardsConfiguration[$eventName][] = new Definition(
+                                    Workflow\EventListener\GuardExpression::class,
+                                    [new Reference($transitionId), $transition['guard']]
+                                );
                             }
                             if ($transition['metadata']) {
-                                $transitionsMetadataDefinition->addMethodCall('attach', [
+                                $transitionsMetadataDefinition->addMethodCall('offsetSet', [
                                     new Reference($transitionId),
                                     $transition['metadata'],
                                 ]);
@@ -1014,7 +1015,7 @@
                 }
             }
             $metadataStoreDefinition->replaceArgument(2, $transitionsMetadataDefinition);
-            $container->setDefinition(sprintf('%s.metadata_store', $workflowId), $metadataStoreDefinition);
+            $container->setDefinition(\sprintf('%s.metadata_store', $workflowId), $metadataStoreDefinition);
 
             // Create places
             $places = array_column($workflow['places'], 'name');
@@ -1025,7 +1026,7 @@
             $definitionDefinition->addArgument($places);
             $definitionDefinition->addArgument($transitions);
             $definitionDefinition->addArgument($initialMarking);
-            $definitionDefinition->addArgument(new Reference(sprintf('%s.metadata_store', $workflowId)));
+            $definitionDefinition->addArgument(new Reference(\sprintf('%s.metadata_store', $workflowId)));
 
             // Create MarkingStore
             $markingStoreDefinition = null;
@@ -1040,8 +1041,8 @@
             }
 
             // Create Workflow
-            $workflowDefinition = new ChildDefinition(sprintf('%s.abstract', $type));
-            $workflowDefinition->replaceArgument(0, new Reference(sprintf('%s.definition', $workflowId)));
+            $workflowDefinition = new ChildDefinition(\sprintf('%s.abstract', $type));
+            $workflowDefinition->replaceArgument(0, new Reference(\sprintf('%s.definition', $workflowId)));
             $workflowDefinition->replaceArgument(1, $markingStoreDefinition);
             $workflowDefinition->replaceArgument(3, $name);
             $workflowDefinition->replaceArgument(4, $workflow['events_to_dispatch']);
@@ -1055,7 +1056,7 @@
 
             // Store to container
             $container->setDefinition($workflowId, $workflowDefinition);
-            $container->setDefinition(sprintf('%s.definition', $workflowId), $definitionDefinition);
+            $container->setDefinition(\sprintf('%s.definition', $workflowId), $definitionDefinition);
             $container->registerAliasForArgument($workflowId, WorkflowInterface::class, $name.'.'.$type);
             $container->registerAliasForArgument($workflowId, WorkflowInterface::class, $name);
 
@@ -1066,7 +1067,7 @@
                 $validator = new Workflow\Validator\WorkflowValidator();
             }
 
-            $trs = array_map(fn (Reference $ref): Workflow\Transition => $container->get((string) $ref), $transitions);
+            $trs = array_map(static fn (Reference $ref): Workflow\Transition => $container->get((string) $ref), $transitions);
             $realDefinition = new Workflow\Definition($places, $trs, $initialMarking);
             $validator->validate($realDefinition, $name);
 
@@ -1084,11 +1085,11 @@
             if ($workflow['audit_trail']['enabled']) {
                 $listener = new Definition(Workflow\EventListener\AuditTrailListener::class);
                 $listener->addTag('monolog.logger', ['channel' => 'workflow']);
-                $listener->addTag('kernel.event_listener', ['event' => sprintf('workflow.%s.leave', $name), 'method' => 'onLeave']);
-                $listener->addTag('kernel.event_listener', ['event' => sprintf('workflow.%s.transition', $name), 'method' => 'onTransition']);
-                $listener->addTag('kernel.event_listener', ['event' => sprintf('workflow.%s.enter', $name), 'method' => 'onEnter']);
+                $listener->addTag('kernel.event_listener', ['event' => \sprintf('workflow.%s.leave', $name), 'method' => 'onLeave']);
+                $listener->addTag('kernel.event_listener', ['event' => \sprintf('workflow.%s.transition', $name), 'method' => 'onTransition']);
+                $listener->addTag('kernel.event_listener', ['event' => \sprintf('workflow.%s.enter', $name), 'method' => 'onEnter']);
                 $listener->addArgument(new Reference('logger'));
-                $container->setDefinition(sprintf('.%s.listener.audit_trail', $workflowId), $listener);
+                $container->setDefinition(\sprintf('.%s.listener.audit_trail', $workflowId), $listener);
             }
 
             // Add Guard Listener
@@ -1116,7 +1117,7 @@
                     $guard->addTag('kernel.event_listener', ['event' => $eventName, 'method' => 'onTransition']);
                 }
 
-                $container->setDefinition(sprintf('.%s.listener.guard', $workflowId), $guard);
+                $container->setDefinition(\sprintf('.%s.listener.guard', $workflowId), $guard);
                 $container->setParameter('workflow.has_guard_listeners', true);
             }
         }
@@ -1136,7 +1137,7 @@
                 $tagAttributes = get_object_vars($attribute);
                 if ($reflector instanceof \ReflectionMethod) {
                     if (isset($tagAttributes['method'])) {
-                        throw new LogicException(sprintf('"%s" attribute cannot declare a method on "%s::%s()".', $attribute::class, $reflector->class, $reflector->name));
+                        throw new LogicException(\sprintf('"%s" attribute cannot declare a method on "%s::%s()".', $attribute::class, $reflector->class, $reflector->name));
                     }
                     $tagAttributes['method'] = $reflector->getName();
                 }
@@ -1232,8 +1233,7 @@
         $container->setParameter('request_listener.https_port', $config['https_port']);
 
         if (null !== $config['default_uri']) {
-            $container->getDefinition('router.request_context')
-                ->replaceArgument(0, $config['default_uri']);
+            $container->setParameter('router.request_context.base_url', $config['default_uri']);
         }
 
         if ($this->isInitializedConfigEnabled('annotations') && (new \ReflectionClass(AttributeClassLoader::class))->hasProperty('reader')) {
@@ -1264,6 +1264,7 @@
         }
 
         $container->setParameter('session.storage.options', $options);
+        $container->setParameter('session.metadata.cookie_lifetime', $options['cookie_lifetime'] ?? null);
 
         // session handler (the internal callback registered with PHP session management)
         if (null === $config['handler_id']) {
@@ -1349,7 +1350,7 @@
         $paths = $config['paths'];
         foreach ($container->getParameter('kernel.bundles_metadata') as $name => $bundle) {
             if ($container->fileExists($dir = $bundle['path'].'/Resources/public') || $container->fileExists($dir = $bundle['path'].'/public')) {
-                $paths[$dir] = sprintf('bundles/%s', preg_replace('/bundle$/', '', strtolower($name)));
+                $paths[$dir] = \sprintf('bundles/%s', preg_replace('/bundle$/', '', strtolower($name)));
             }
         }
         $excludedPathPatterns = [];
@@ -1525,7 +1526,7 @@
             if ($container->fileExists($dir)) {
                 $dirs[] = $transPaths[] = $dir;
             } else {
-                throw new \UnexpectedValueException(sprintf('"%s" defined in translator.paths does not exist or is not a directory.', $dir));
+                throw new \UnexpectedValueException(\sprintf('"%s" defined in translator.paths does not exist or is not a directory.', $dir));
             }
         }
 
@@ -1553,7 +1554,7 @@
                 $finder = Finder::create()
                     ->followLinks()
                     ->files()
-                    ->filter(fn (\SplFileInfo $file) => 2 <= substr_count($file->getBasename(), '.') && preg_match('/\.\w+$/', $file->getBasename()))
+                    ->filter(static fn (\SplFileInfo $file) => 2 <= substr_count($file->getBasename(), '.') && preg_match('/\.\w+$/', $file->getBasename()))
                     ->in($dir)
                     ->sortByName()
                 ;
@@ -1576,7 +1577,7 @@
                     'resource_files' => $files,
                     'scanned_directories' => $scannedDirectories = array_merge($dirs, $nonExistingDirs),
                     'cache_vary' => [
-                        'scanned_directories' => array_map(fn ($dir) => str_starts_with($dir, $projectDir.'/') ? substr($dir, 1 + \strlen($projectDir)) : $dir, $scannedDirectories),
+                        'scanned_directories' => array_map(static fn ($dir) => str_starts_with($dir, $projectDir.'/') ? substr($dir, 1 + \strlen($projectDir)) : $dir, $scannedDirectories),
                     ],
                 ]
             );
@@ -1609,7 +1610,7 @@
         foreach ($classToServices as $class => $service) {
             $package = substr($service, \strlen('translation.provider_factory.'));
 
-            if (!$container->hasDefinition('http_client') || !ContainerBuilder::willBeAvailable(sprintf('symfony/%s-translation-provider', $package), $class, $parentPackages)) {
+            if (!$container->hasDefinition('http_client') || !ContainerBuilder::willBeAvailable(\sprintf('symfony/%s-translation-provider', $package), $class, $parentPackages)) {
                 $container->removeDefinition($service);
             }
         }
@@ -1622,11 +1623,11 @@
 
         foreach ($config['providers'] as $provider) {
             if ($provider['locales']) {
-                $locales += $provider['locales'];
+                $locales = array_merge($locales, $provider['locales']);
             }
         }
 
-        $locales = array_unique($locales);
+        $locales = array_values(array_unique($locales));
 
         $container->getDefinition('console.command.translation_pull')
             ->replaceArgument(4, array_merge($transPaths, [$config['default_path']]))
@@ -1719,7 +1720,7 @@
 
     private function registerValidatorMapping(ContainerBuilder $container, array $config, array &$files): void
     {
-        $fileRecorder = function ($extension, $path) use (&$files) {
+        $fileRecorder = static function ($extension, $path) use (&$files) {
             $files['yaml' === $extension ? 'yml' : $extension][] = $path;
         };
 
@@ -1770,11 +1771,11 @@
                 $container->addResource(new DirectoryResource($path, '/^$/'));
             } elseif ($container->fileExists($path, false)) {
                 if (!preg_match('/\.(xml|ya?ml)$/', $path, $matches)) {
-                    throw new \RuntimeException(sprintf('Unsupported mapping type in "%s", supported types are XML & Yaml.', $path));
+                    throw new \RuntimeException(\sprintf('Unsupported mapping type in "%s", supported types are XML & Yaml.', $path));
                 }
                 $fileRecorder($matches[1], $path);
             } else {
-                throw new \RuntimeException(sprintf('Could not open file or directory "%s".', $path));
+                throw new \RuntimeException(\sprintf('Could not open file or directory "%s".', $path));
             }
         }
     }
@@ -1809,8 +1810,8 @@
             $cacheService = 'annotations.filesystem_cache_adapter';
             $cacheDir = $container->getParameterBag()->resolveValue($config['file_cache_dir']);
 
-            if (!is_dir($cacheDir) && false === @mkdir($cacheDir, 0777, true) && !is_dir($cacheDir)) {
-                throw new \RuntimeException(sprintf('Could not create cache directory "%s".', $cacheDir));
+            if (!is_dir($cacheDir) && false === @mkdir($cacheDir, 0o777, true) && !is_dir($cacheDir)) {
+                throw new \RuntimeException(\sprintf('Could not create cache directory "%s".', $cacheDir));
             }
 
             $container
@@ -1882,7 +1883,7 @@
 
         if ($config['decryption_env_var']) {
             if (!preg_match('/^(?:[-.\w\\\\]*+:)*+\w++$/', $config['decryption_env_var'])) {
-                throw new InvalidArgumentException(sprintf('Invalid value "%s" set as "decryption_env_var": only "word" characters are allowed.', $config['decryption_env_var']));
+                throw new InvalidArgumentException(\sprintf('Invalid value "%s" set as "decryption_env_var": only "word" characters are allowed.', $config['decryption_env_var']));
             }
 
             if (ContainerBuilder::willBeAvailable('symfony/string', LazyString::class, ['symfony/framework-bundle'])) {
@@ -1954,13 +1955,13 @@
         if (isset($config['enable_attributes']) && $config['enable_attributes']) {
             $annotationLoader = new Definition(
                 AttributeLoader::class,
-                [new Reference('annotation_reader', ContainerInterface::NULL_ON_INVALID_REFERENCE)]
+                interface_exists(CacheableSupportsMethodInterface::class) ? [new Reference('annotation_reader', ContainerInterface::NULL_ON_INVALID_REFERENCE)] : [],
             );
 
             $serializerLoaders[] = $annotationLoader;
         }
 
-        $fileRecorder = function ($extension, $path) use (&$serializerLoaders) {
+        $fileRecorder = static function ($extension, $path) use (&$serializerLoaders) {
             $definition = new Definition(\in_array($extension, ['yaml', 'yml']) ? YamlFileLoader::class : XmlFileLoader::class, [$path]);
             $serializerLoaders[] = $definition;
         };
@@ -2100,6 +2101,10 @@
 
     private function registerSemaphoreConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader): void
     {
+        if (!class_exists(Semaphore::class)) {
+            throw new LogicException('Semaphore support cannot be enabled as the Semaphore component is not installed. Try running "composer require symfony/semaphore".');
+        }
+
         $loader->load('semaphore.php');
 
         foreach ($config['resources'] as $resourceName => $resourceStore) {
@@ -2214,16 +2219,18 @@
                 $defaultMiddleware['after'][0]['arguments'] = [$bus['default_middleware']['allow_no_senders']];
                 $defaultMiddleware['after'][1]['arguments'] = [$bus['default_middleware']['allow_no_handlers']];
 
-                // argument to add_bus_name_stamp_middleware
-                $defaultMiddleware['before'][0]['arguments'] = [$busId];
-
                 $middleware = array_merge($defaultMiddleware['before'], $middleware, $defaultMiddleware['after']);
             }
 
-            foreach ($middleware as $middlewareItem) {
+            foreach ($middleware as $key => $middlewareItem) {
                 if (!$validationEnabled && \in_array($middlewareItem['id'], ['validation', 'messenger.middleware.validation'], true)) {
                     throw new LogicException('The Validation middleware is only available when the Validator component is installed and enabled. Try running "composer require symfony/validator".');
                 }
+
+                // argument to add_bus_name_stamp_middleware
+                if ('add_bus_name_stamp_middleware' === $middlewareItem['id']) {
+                    $middleware[$key]['arguments'] = [$busId];
+                }
             }
 
             if ($container->getParameter('kernel.debug') && class_exists(Stopwatch::class)) {
@@ -2258,7 +2265,7 @@
         $failureTransports = [];
         if ($config['failure_transport']) {
             if (!isset($config['transports'][$config['failure_transport']])) {
-                throw new LogicException(sprintf('Invalid Messenger configuration: the failure transport "%s" is not a valid transport or service id.', $config['failure_transport']));
+                throw new LogicException(\sprintf('Invalid Messenger configuration: the failure transport "%s" is not a valid transport or service id.', $config['failure_transport']));
             }
 
             $container->setAlias('messenger.failure_transports.default', 'messenger.transport.'.$config['failure_transport']);
@@ -2298,7 +2305,7 @@
             if (null !== $transport['retry_strategy']['service']) {
                 $transportRetryReferences[$name] = new Reference($transport['retry_strategy']['service']);
             } else {
-                $retryServiceId = sprintf('messenger.retry.multiplier_retry_strategy.%s', $name);
+                $retryServiceId = \sprintf('messenger.retry.multiplier_retry_strategy.%s', $name);
                 $retryDefinition = new ChildDefinition('messenger.retry.abstract_multiplier_retry_strategy');
                 $retryDefinition
                     ->replaceArgument(0, $transport['retry_strategy']['max_retries'])
@@ -2332,27 +2339,27 @@
         foreach ($config['transports'] as $name => $transport) {
             if ($transport['failure_transport']) {
                 if (!isset($senderReferences[$transport['failure_transport']])) {
-                    throw new LogicException(sprintf('Invalid Messenger configuration: the failure transport "%s" is not a valid transport or service id.', $transport['failure_transport']));
+                    throw new LogicException(\sprintf('Invalid Messenger configuration: the failure transport "%s" is not a valid transport or service id.', $transport['failure_transport']));
                 }
             }
         }
 
-        $failureTransportReferencesByTransportName = array_map(fn ($failureTransportName) => $senderReferences[$failureTransportName], $failureTransportsByName);
+        $failureTransportReferencesByTransportName = array_map(static fn ($failureTransportName) => $senderReferences[$failureTransportName], $failureTransportsByName);
 
         $messageToSendersMapping = [];
         foreach ($config['routing'] as $message => $messageConfiguration) {
             if ('*' !== $message && !class_exists($message) && !interface_exists($message, false) && !preg_match('/^(?:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+\\\\)++\*$/', $message)) {
                 if (str_contains($message, '*')) {
-                    throw new LogicException(sprintf('Invalid Messenger routing configuration: invalid namespace "%s" wildcard.', $message));
+                    throw new LogicException(\sprintf('Invalid Messenger routing configuration: invalid namespace "%s" wildcard.', $message));
                 }
 
-                throw new LogicException(sprintf('Invalid Messenger routing configuration: class or interface "%s" not found.', $message));
+                throw new LogicException(\sprintf('Invalid Messenger routing configuration: class or interface "%s" not found.', $message));
             }
 
             // make sure senderAliases contains all senders
             foreach ($messageConfiguration['senders'] as $sender) {
                 if (!isset($senderReferences[$sender])) {
-                    throw new LogicException(sprintf('Invalid Messenger routing configuration: the "%s" class is being routed to a sender called "%s". This is not a valid transport or service id.', $message, $sender));
+                    throw new LogicException(\sprintf('Invalid Messenger routing configuration: the "%s" class is being routed to a sender called "%s". This is not a valid transport or service id.', $message, $sender));
                 }
             }
 
@@ -2392,7 +2399,8 @@
 
             $failureTransportsByTransportNameServiceLocator = ServiceLocatorTagPass::register($container, $failureTransportReferencesByTransportName);
             $container->getDefinition('messenger.failure.send_failed_message_to_failure_transport_listener')
-                ->replaceArgument(0, $failureTransportsByTransportNameServiceLocator);
+                ->replaceArgument(0, $failureTransportsByTransportNameServiceLocator)
+                ->replaceArgument(2, $failureTransportsByName);
         } else {
             $container->removeDefinition('messenger.failure.send_failed_message_to_failure_transport_listener');
             $container->removeDefinition('console.command.messenger_failed_messages_retry');
@@ -2553,7 +2561,7 @@
 
         foreach ($config['scoped_clients'] as $name => $scopeConfig) {
             if ($container->has($name)) {
-                throw new InvalidArgumentException(sprintf('Invalid scope name: "%s" is reserved.', $name));
+                throw new InvalidArgumentException(\sprintf('Invalid scope name: "%s" is reserved.', $name));
             }
 
             $scope = $scopeConfig['scope'] ?? null;
@@ -2690,7 +2698,7 @@
         foreach ($classToServices as $class => $service) {
             $package = substr($service, \strlen('mailer.transport_factory.'));
 
-            if (!ContainerBuilder::willBeAvailable(sprintf('symfony/%s-mailer', 'gmail' === $package ? 'google' : $package), $class, ['symfony/framework-bundle', 'symfony/mailer'])) {
+            if (!ContainerBuilder::willBeAvailable(\sprintf('symfony/%s-mailer', 'gmail' === $package ? 'google' : $package), $class, ['symfony/framework-bundle', 'symfony/mailer'])) {
                 $container->removeDefinition($service);
             }
         }
@@ -2707,7 +2715,7 @@
             foreach ($webhookRequestParsers as $class => $service) {
                 $package = substr($service, \strlen('mailer.webhook.request_parser.'));
 
-                if (!ContainerBuilder::willBeAvailable(sprintf('symfony/%s-mailer', 'gmail' === $package ? 'google' : $package), $class, ['symfony/framework-bundle', 'symfony/mailer'])) {
+                if (!ContainerBuilder::willBeAvailable(\sprintf('symfony/%s-mailer', 'gmail' === $package ? 'google' : $package), $class, ['symfony/framework-bundle', 'symfony/mailer'])) {
                     $container->removeDefinition($service);
                 }
             }
@@ -2880,7 +2888,7 @@
         foreach ($classToServices as $class => $service) {
             $package = substr($service, \strlen('notifier.transport_factory.'));
 
-            if (!ContainerBuilder::willBeAvailable(sprintf('symfony/%s-notifier', $package), $class, $parentPackages)) {
+            if (!ContainerBuilder::willBeAvailable(\sprintf('symfony/%s-notifier', $package), $class, $parentPackages)) {
                 $container->removeDefinition($service);
             }
         }
@@ -2936,7 +2944,7 @@
             foreach ($webhookRequestParsers as $class => $service) {
                 $package = substr($service, \strlen('notifier.webhook.request_parser.'));
 
-                if (!ContainerBuilder::willBeAvailable(sprintf('symfony/%s-notifier', $package), $class, ['symfony/framework-bundle', 'symfony/notifier'])) {
+                if (!ContainerBuilder::willBeAvailable(\sprintf('symfony/%s-notifier', $package), $class, ['symfony/framework-bundle', 'symfony/notifier'])) {
                     $container->removeDefinition($service);
                 }
             }
@@ -2985,11 +2993,11 @@
 
             if (null !== $limiterConfig['lock_factory']) {
                 if (!interface_exists(LockInterface::class)) {
-                    throw new LogicException(sprintf('Rate limiter "%s" requires the Lock component to be installed. Try running "composer require symfony/lock".', $name));
+                    throw new LogicException(\sprintf('Rate limiter "%s" requires the Lock component to be installed. Try running "composer require symfony/lock".', $name));
                 }
 
                 if (!$this->isInitializedConfigEnabled('lock')) {
-                    throw new LogicException(sprintf('Rate limiter "%s" requires the Lock component to be configured.', $name));
+                    throw new LogicException(\sprintf('Rate limiter "%s" requires the Lock component to be configured.', $name));
                 }
 
                 $limiter->replaceArgument(2, new Reference($limiterConfig['lock_factory']));
@@ -3026,10 +3034,10 @@
 
         if (null !== $limiterConfig['lock_factory']) {
             if (!interface_exists(LockInterface::class)) {
-                throw new LogicException(sprintf('Rate limiter "%s" requires the Lock component to be installed. Try running "composer require symfony/lock".', $name));
+                throw new LogicException(\sprintf('Rate limiter "%s" requires the Lock component to be installed. Try running "composer require symfony/lock".', $name));
             }
             if (!$container->hasDefinition('lock.factory.abstract')) {
-                throw new LogicException(sprintf('Rate limiter "%s" requires the Lock component to be configured.', $name));
+                throw new LogicException(\sprintf('Rate limiter "%s" requires the Lock component to be configured.', $name));
             }
 
             $limiter->replaceArgument(2, new Reference($limiterConfig['lock_factory']));
@@ -3194,7 +3202,7 @@
             return $this->configsEnabled[$path];
         }
 
-        throw new LogicException(sprintf('Can not read config enabled at "%s" because it has not been initialized.', $path));
+        throw new LogicException(\sprintf('Can not read config enabled at "%s" because it has not been initialized.', $path));
     }
 
     private function readConfigEnabled(string $path, ContainerBuilder $container, array $config): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/EventListener/ConsoleProfilerListener.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/EventListener/ConsoleProfilerListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/EventListener/ConsoleProfilerListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/EventListener/ConsoleProfilerListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -109,6 +109,10 @@
             return;
         }
 
+        if (!$this->profiler->isEnabled()) {
+            return;
+        }
+
         if (null !== $sectionId = $request->attributes->get('_stopwatch_token')) {
             // we must close the section before saving the profile to allow late collect
             try {
@@ -148,7 +152,7 @@
 
             if ($this->urlGenerator && $output) {
                 $token = $p->getToken();
-                $output->writeln(sprintf(
+                $output->writeln(\sprintf(
                     'See profile <href=%s>%s</>',
                     $this->urlGenerator->generate('_profiler', ['token' => $token], UrlGeneratorInterface::ABSOLUTE_URL),
                     $token
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/EventListener/SuggestMissingPackageSubscriber.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/EventListener/SuggestMissingPackageSubscriber.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/EventListener/SuggestMissingPackageSubscriber.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/EventListener/SuggestMissingPackageSubscriber.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
             return;
         }
 
-        $message = sprintf("%s\n\nYou may be looking for a command provided by the \"%s\" which is currently not installed. Try running \"composer require %s\".", $error->getMessage(), $suggestion[0], $suggestion[1]);
+        $message = \sprintf("%s\n\nYou may be looking for a command provided by the \"%s\" which is currently not installed. Try running \"composer require %s\".", $error->getMessage(), $suggestion[0], $suggestion[1]);
         $event->setError(new CommandNotFoundException($message));
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php	2026-05-20 10:56:49.000000000 +0200
@@ -123,6 +123,12 @@
         if ($this->container->hasParameter('kernel.trust_x_sendfile_type_header') && $this->container->getParameter('kernel.trust_x_sendfile_type_header')) {
             BinaryFileResponse::trustXSendfileTypeHeader();
         }
+
+        // Instantiate the mime_types service so its setDefault() call fires.
+        // The service is made public by AddMimeTypeGuesserPass only when custom guessers are tagged.
+        if ($this->container->has('mime_types')) {
+            $this->container->get('mime_types');
+        }
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Kernel/MicroKernelTrait.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Kernel/MicroKernelTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Kernel/MicroKernelTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Kernel/MicroKernelTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -178,7 +178,7 @@
             }
 
             $file = (new \ReflectionObject($this))->getFileName();
-            /* @var ContainerPhpFileLoader $kernelLoader */
+            /** @var ContainerPhpFileLoader $kernelLoader */
             $kernelLoader = $loader->getResolver()->resolve($file);
             $kernelLoader->setCurrentDir(\dirname($file));
             $instanceof = &\Closure::bind(fn &() => $this->instanceof, $kernelLoader, $kernelLoader)();
@@ -204,7 +204,7 @@
     public function loadRoutes(LoaderInterface $loader): RouteCollection
     {
         $file = (new \ReflectionObject($this))->getFileName();
-        /* @var RoutingPhpFileLoader $kernelLoader */
+        /** @var RoutingPhpFileLoader $kernelLoader */
         $kernelLoader = $loader->getResolver()->resolve($file, 'php');
         $kernelLoader->setCurrentDir(\dirname($file));
         $collection = new RouteCollection();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/KernelBrowser.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/KernelBrowser.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/KernelBrowser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/KernelBrowser.php	2026-05-20 10:56:49.000000000 +0200
@@ -117,11 +117,11 @@
         $tokenAttributes = 2 < \func_num_args() ? func_get_arg(2) : [];
 
         if (!interface_exists(UserInterface::class)) {
-            throw new \LogicException(sprintf('"%s" requires symfony/security-core to be installed. Try running "composer require symfony/security-core".', __METHOD__));
+            throw new \LogicException(\sprintf('"%s" requires symfony/security-core to be installed. Try running "composer require symfony/security-core".', __METHOD__));
         }
 
         if (!$user instanceof UserInterface) {
-            throw new \LogicException(sprintf('The first argument of "%s" must be instance of "%s", "%s" provided.', __METHOD__, UserInterface::class, get_debug_type($user)));
+            throw new \LogicException(\sprintf('The first argument of "%s" must be instance of "%s", "%s" provided.', __METHOD__, UserInterface::class, get_debug_type($user)));
         }
 
         $token = new TestBrowserToken($user->getRoles(), $user, $firewallContext);
@@ -142,7 +142,7 @@
         $session->set('_security_'.$firewallContext, serialize($token));
         $session->save();
 
-        $domains = array_unique(array_map(fn (Cookie $cookie) => $cookie->getName() === $session->getName() ? $cookie->getDomain() : '', $this->getCookieJar()->all())) ?: [''];
+        $domains = array_unique(array_map(static fn (Cookie $cookie) => $cookie->getName() === $session->getName() ? $cookie->getDomain() : '', $this->getCookieJar()->all())) ?: [''];
         foreach ($domains as $domain) {
             $cookie = new Cookie($session->getName(), $session->getId(), null, null, $domain);
             $this->getCookieJar()->set($cookie);
@@ -223,25 +223,25 @@
         $profilerCode = '';
         if ($this->profiler) {
             $profilerCode = <<<'EOF'
-$container = $kernel->getContainer();
-$container = $container->has('test.service_container') ? $container->get('test.service_container') : $container;
-$container->get('profiler')->enable();
-EOF;
+                $container = $kernel->getContainer();
+                $container = $container->has('test.service_container') ? $container->get('test.service_container') : $container;
+                $container->get('profiler')->enable();
+                EOF;
         }
 
         $code = <<<EOF
-<?php
+            <?php
 
-error_reporting($errorReporting);
+            error_reporting($errorReporting);
 
-$requires
+            $requires
 
-\$kernel = unserialize($kernel);
-\$kernel->boot();
-$profilerCode
+            \$kernel = unserialize($kernel);
+            \$kernel->boot();
+            $profilerCode
 
-\$request = unserialize($request);
-EOF;
+            \$request = unserialize($request);
+            EOF;
 
         return $code.$this->getHandleScript();
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.php	2026-05-20 10:56:49.000000000 +0200
@@ -88,7 +88,7 @@
                 '', // namespace
                 0, // default lifetime
                 abstract_arg('version'),
-                sprintf('%s/pools/system', param('kernel.cache_dir')),
+                \sprintf('%s/pools/system', param('kernel.cache_dir')),
                 service('logger')->ignoreOnInvalid(),
             ])
             ->tag('cache.pool', ['clearer' => 'cache.system_clearer', 'reset' => 'reset'])
@@ -110,7 +110,7 @@
             ->args([
                 '', // namespace
                 0, // default lifetime
-                sprintf('%s/pools/app', param('kernel.cache_dir')),
+                \sprintf('%s/pools/app', param('kernel.cache_dir')),
                 service('cache.default_marshaller')->ignoreOnInvalid(),
             ])
             ->call('setLogger', [service('logger')->ignoreOnInvalid()])
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/collectors.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/collectors.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/collectors.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/collectors.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
         ->set('data_collector.logger', LoggerDataCollector::class)
             ->args([
                 service('logger')->ignoreOnInvalid(),
-                sprintf('%s/%s', param('kernel.build_dir'), param('kernel.container_class')),
+                \sprintf('%s/%s', param('kernel.build_dir'), param('kernel.container_class')),
                 service('.virtual_request_stack')->ignoreOnInvalid(),
             ])
             ->tag('monolog.logger', ['channel' => 'profiler'])
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/console.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/console.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/console.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/console.php	2026-05-20 10:56:49.000000000 +0200
@@ -124,6 +124,9 @@
             ->tag('console.command')
 
         ->set('console.command.config_debug', ConfigDebugCommand::class)
+            ->args([
+                service('container.env_var_processors_locator'),
+            ])
             ->tag('console.command')
 
         ->set('console.command.config_dump_reference', ConfigDumpReferenceCommand::class)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,6 @@
                 tagged_iterator('mailer.transport_factory'),
             ])
 
-        ->set('mailer.default_transport', TransportInterface::class)
         ->alias('mailer.default_transport', 'mailer.transports')
         ->alias(TransportInterface::class, 'mailer.default_transport')
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.php	2026-05-20 10:56:49.000000000 +0200
@@ -186,6 +186,7 @@
             ->args([
                 abstract_arg('failure transports'),
                 service('logger')->ignoreOnInvalid(),
+                abstract_arg('failure transports by name'),
             ])
             ->tag('kernel.event_subscriber')
             ->tag('monolog.logger', ['channel' => 'messenger'])
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd	2026-05-20 10:56:49.000000000 +0200
@@ -295,6 +295,7 @@
     <xsd:simpleType name="email-validation-mode">
         <xsd:restriction base="xsd:string">
             <xsd:enumeration value="html5" />
+            <xsd:enumeration value="html5-allow-no-tld" />
             <xsd:enumeration value="loose" />
             <xsd:enumeration value="strict" />
         </xsd:restriction>
@@ -470,7 +471,8 @@
             <xsd:element name="metadata" type="metadata" minOccurs="0" maxOccurs="unbounded" />
             <xsd:element name="guard" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
         </xsd:sequence>
-        <xsd:attribute name="name" type="xsd:string" use="required" />
+        <xsd:attribute name="name" type="xsd:string" />
+        <xsd:attribute name="key" type="xsd:string" />
     </xsd:complexType>
 
     <xsd:complexType name="place" mixed="true">
@@ -484,6 +486,7 @@
         <xsd:sequence>
             <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
         </xsd:sequence>
+        <xsd:attribute name="key" type="xsd:string" />
     </xsd:complexType>
 
     <xsd:simpleType name="event_to_dispatch">
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/services.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/services.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/services.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/services.php	2026-05-20 10:56:49.000000000 +0200
@@ -131,7 +131,7 @@
             ->args([
                 tagged_iterator('kernel.cache_warmer'),
                 param('kernel.debug'),
-                sprintf('%s/%sDeprecations.log', param('kernel.build_dir'), param('kernel.container_class')),
+                \sprintf('%s/%sDeprecations.log', param('kernel.build_dir'), param('kernel.container_class')),
             ])
             ->tag('container.no_preload')
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/session.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/session.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/session.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/session.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,6 +43,7 @@
                     ->args([
                         param('session.metadata.storage_key'),
                         param('session.metadata.update_threshold'),
+                        param('session.metadata.cookie_lifetime'),
                     ]),
                 false,
             ])
@@ -53,6 +54,7 @@
                     ->args([
                         param('session.metadata.storage_key'),
                         param('session.metadata.update_threshold'),
+                        param('session.metadata.cookie_lifetime'),
                     ]),
                 false,
             ])
@@ -64,6 +66,7 @@
                     ->args([
                         param('session.metadata.storage_key'),
                         param('session.metadata.update_threshold'),
+                        param('session.metadata.cookie_lifetime'),
                     ]),
             ])
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.php	2026-05-20 10:56:49.000000000 +0200
@@ -80,10 +80,13 @@
             ->tag('controller.argument_value_resolver', ['priority' => 100, 'name' => RequestAttributeValueResolver::class])
 
         ->set('argument_resolver.request', RequestValueResolver::class)
-            ->tag('controller.argument_value_resolver', ['priority' => 50, 'name' => RequestValueResolver::class])
+            // Run before EntityValueResolver (DoctrineBundle, priority 110) so type-hinted
+            // Request arguments do not trigger entity-manager bootstrap. Keep this above
+            // DoctrineBundle's EntityValueResolver priority if it ever changes.
+            ->tag('controller.argument_value_resolver', ['priority' => 120, 'name' => RequestValueResolver::class])
 
         ->set('argument_resolver.session', SessionValueResolver::class)
-            ->tag('controller.argument_value_resolver', ['priority' => 50, 'name' => SessionValueResolver::class])
+            ->tag('controller.argument_value_resolver', ['priority' => 120, 'name' => SessionValueResolver::class])
 
         ->set('argument_resolver.service', ServiceValueResolver::class)
             ->args([
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Routing/Router.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Routing/Router.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Routing/Router.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Routing/Router.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
         } elseif ($container instanceof SymfonyContainerInterface) {
             $this->paramFetcher = $container->getParameter(...);
         } else {
-            throw new \LogicException(sprintf('You should either pass a "%s" instance or provide the $parameters argument of the "%s" method.', SymfonyContainerInterface::class, __METHOD__));
+            throw new \LogicException(\sprintf('You should either pass a "%s" instance or provide the $parameters argument of the "%s" method.', SymfonyContainerInterface::class, __METHOD__));
         }
 
         $this->defaultLocale = $defaultLocale;
@@ -165,7 +165,7 @@
             }
 
             if (preg_match('/^env\((?:\w++:)*+\w++\)$/', $match[1])) {
-                throw new RuntimeException(sprintf('Using "%%%s%%" is not allowed in routing configuration.', $match[1]));
+                throw new RuntimeException(\sprintf('Using "%%%s%%" is not allowed in routing configuration.', $match[1]));
             }
 
             $resolved = ($this->paramFetcher)($match[1]);
@@ -182,7 +182,7 @@
                 }
             }
 
-            throw new RuntimeException(sprintf('The container parameter "%s", used in the route configuration value "%s", must be a string or numeric, but it is of type "%s".', $match[1], $value, get_debug_type($resolved)));
+            throw new RuntimeException(\sprintf('The container parameter "%s", used in the route configuration value "%s", must be a string or numeric, but it is of type "%s".', $match[1], $value, get_debug_type($resolved)));
         }, $value);
 
         return str_replace('%%', '%', $escapedValue);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/AbstractVault.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/AbstractVault.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/AbstractVault.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/AbstractVault.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     protected function validateName(string $name): void
     {
         if (!preg_match('/^\w++$/D', $name)) {
-            throw new \LogicException(sprintf('Invalid secret name "%s": only "word" characters are allowed.', $name));
+            throw new \LogicException(\sprintf('Invalid secret name "%s": only "word" characters are allowed.', $name));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/DotenvVault.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/DotenvVault.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/DotenvVault.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/DotenvVault.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
 
         file_put_contents($this->dotenvFile, $content);
 
-        $this->lastMessage = sprintf('Secret "%s" %s in "%s".', $name, $count ? 'added' : 'updated', $this->getPrettyPath($this->dotenvFile));
+        $this->lastMessage = \sprintf('Secret "%s" %s in "%s".', $name, $count ? 'added' : 'updated', $this->getPrettyPath($this->dotenvFile));
     }
 
     public function reveal(string $name): ?string
@@ -55,7 +55,7 @@
         $v = $_ENV[$name] ?? (str_starts_with($name, 'HTTP_') ? null : ($_SERVER[$name] ?? null));
 
         if ('' === ($v ?? '')) {
-            $this->lastMessage = sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath($this->dotenvFile));
+            $this->lastMessage = \sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath($this->dotenvFile));
 
             return null;
         }
@@ -73,12 +73,12 @@
 
         if ($count) {
             file_put_contents($this->dotenvFile, $content);
-            $this->lastMessage = sprintf('Secret "%s" removed from file "%s".', $name, $this->getPrettyPath($this->dotenvFile));
+            $this->lastMessage = \sprintf('Secret "%s" removed from file "%s".', $name, $this->getPrettyPath($this->dotenvFile));
 
             return true;
         }
 
-        $this->lastMessage = sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath($this->dotenvFile));
+        $this->lastMessage = \sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath($this->dotenvFile));
 
         return false;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/SodiumVault.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/SodiumVault.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/SodiumVault.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Secrets/SodiumVault.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
         }
 
         if (!$override && null !== $this->encryptionKey) {
-            $this->lastMessage = sprintf('Sodium keys already exist at "%s*.{public,private}" and won\'t be overridden.', $this->getPrettyPath($this->pathPrefix));
+            $this->lastMessage = \sprintf('Sodium keys already exist at "%s*.{public,private}" and won\'t be overridden.', $this->getPrettyPath($this->pathPrefix));
 
             return false;
         }
@@ -70,7 +70,7 @@
         $this->export('encrypt.public', $this->encryptionKey);
         $this->export('decrypt.private', $this->decryptionKey);
 
-        $this->lastMessage = sprintf('Sodium keys have been generated at "%s*.public/private.php".', $this->getPrettyPath($this->pathPrefix));
+        $this->lastMessage = \sprintf('Sodium keys have been generated at "%s*.public/private.php".', $this->getPrettyPath($this->pathPrefix));
 
         return true;
     }
@@ -86,9 +86,9 @@
         $list = $this->list();
         $list[$name] = null;
         uksort($list, 'strnatcmp');
-        file_put_contents($this->pathPrefix.'list.php', sprintf("<?php\n\nreturn %s;\n", VarExporter::export($list)), \LOCK_EX);
+        file_put_contents($this->pathPrefix.'list.php', \sprintf("<?php\n\nreturn %s;\n", VarExporter::export($list)), \LOCK_EX);
 
-        $this->lastMessage = sprintf('Secret "%s" encrypted in "%s"; you can commit it.', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
+        $this->lastMessage = \sprintf('Secret "%s" encrypted in "%s"; you can commit it.', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
     }
 
     public function reveal(string $name): ?string
@@ -98,13 +98,13 @@
 
         $filename = $this->getFilename($name);
         if (!is_file($file = $this->pathPrefix.$filename.'.php')) {
-            $this->lastMessage = sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
+            $this->lastMessage = \sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
 
             return null;
         }
 
         if (!\function_exists('sodium_crypto_box_seal')) {
-            $this->lastMessage = sprintf('Secret "%s" cannot be revealed as the "sodium" PHP extension missing. Try running "composer require paragonie/sodium_compat" if you cannot enable the extension."', $name);
+            $this->lastMessage = \sprintf('Secret "%s" cannot be revealed as the "sodium" PHP extension missing. Try running "composer require paragonie/sodium_compat" if you cannot enable the extension."', $name);
 
             return null;
         }
@@ -112,13 +112,13 @@
         $this->loadKeys();
 
         if ('' === $this->decryptionKey) {
-            $this->lastMessage = sprintf('Secret "%s" cannot be revealed as no decryption key was found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
+            $this->lastMessage = \sprintf('Secret "%s" cannot be revealed as no decryption key was found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
 
             return null;
         }
 
         if (false === $value = sodium_crypto_box_seal_open(include $file, $this->decryptionKey)) {
-            $this->lastMessage = sprintf('Secret "%s" cannot be revealed as the wrong decryption key was provided for "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
+            $this->lastMessage = \sprintf('Secret "%s" cannot be revealed as the wrong decryption key was provided for "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
 
             return null;
         }
@@ -133,16 +133,16 @@
 
         $filename = $this->getFilename($name);
         if (!is_file($file = $this->pathPrefix.$filename.'.php')) {
-            $this->lastMessage = sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
+            $this->lastMessage = \sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
 
             return false;
         }
 
         $list = $this->list();
         unset($list[$name]);
-        file_put_contents($this->pathPrefix.'list.php', sprintf("<?php\n\nreturn %s;\n", VarExporter::export($list)), \LOCK_EX);
+        file_put_contents($this->pathPrefix.'list.php', \sprintf("<?php\n\nreturn %s;\n", VarExporter::export($list)), \LOCK_EX);
 
-        $this->lastMessage = sprintf('Secret "%s" removed from "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
+        $this->lastMessage = \sprintf('Secret "%s" removed from "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
 
         return @unlink($file) || !file_exists($file);
     }
@@ -199,7 +199,7 @@
         } elseif ('' !== $this->decryptionKey) {
             $this->encryptionKey = sodium_crypto_box_publickey($this->decryptionKey);
         } else {
-            throw new \RuntimeException(sprintf('Encryption key not found in "%s".', \dirname($this->pathPrefix)));
+            throw new \RuntimeException(\sprintf('Encryption key not found in "%s".', \dirname($this->pathPrefix)));
         }
     }
 
@@ -208,7 +208,7 @@
         $b64 = 'decrypt.private' === $filename ? '// SYMFONY_DECRYPTION_SECRET='.base64_encode($data)."\n" : '';
         $name = basename($this->pathPrefix.$filename);
         $data = str_replace('%', '\x', rawurlencode($data));
-        $data = sprintf("<?php // %s on %s\n\n%sreturn \"%s\";\n", $name, date('r'), $b64, $data);
+        $data = \sprintf("<?php // %s on %s\n\n%sreturn \"%s\";\n", $name, date('r'), $b64, $data);
 
         $this->createSecretsDir();
 
@@ -220,8 +220,8 @@
 
     private function createSecretsDir(): void
     {
-        if ($this->secretsDir && !is_dir($this->secretsDir) && !@mkdir($this->secretsDir, 0777, true) && !is_dir($this->secretsDir)) {
-            throw new \RuntimeException(sprintf('Unable to create the secrets directory (%s).', $this->secretsDir));
+        if ($this->secretsDir && !is_dir($this->secretsDir) && !@mkdir($this->secretsDir, 0o777, true) && !is_dir($this->secretsDir)) {
+            throw new \RuntimeException(\sprintf('Unable to create the secrets directory (%s).', $this->secretsDir));
         }
 
         $this->secretsDir = null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/BrowserKitAssertionsTrait.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/BrowserKitAssertionsTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/BrowserKitAssertionsTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/BrowserKitAssertionsTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,8 @@
 use PHPUnit\Framework\Constraint\LogicalNot;
 use PHPUnit\Framework\ExpectationFailedException;
 use Symfony\Component\BrowserKit\AbstractBrowser;
+use Symfony\Component\BrowserKit\Request as BrowserKitRequest;
+use Symfony\Component\BrowserKit\Response as BrowserKitResponse;
 use Symfony\Component\BrowserKit\Test\Constraint as BrowserKitConstraint;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
@@ -171,7 +173,7 @@
         }
 
         if (!$client instanceof AbstractBrowser) {
-            static::fail(sprintf('A client must be set to make assertions on it. Did you forget to call "%s::createClient()"?', __CLASS__));
+            static::fail(\sprintf('A client must be set to make assertions on it. Did you forget to call "%s::createClient()"?', __CLASS__));
         }
 
         return $client;
@@ -183,6 +185,14 @@
             static::fail('A client must have an HTTP Response to make assertions. Did you forget to make an HTTP request?');
         }
 
+        if ($response instanceof BrowserKitResponse) {
+            return new Response(
+                $response->getContent(),
+                $response->getStatusCode(),
+                $response->getHeaders()
+            );
+        }
+
         return $response;
     }
 
@@ -192,6 +202,18 @@
             static::fail('A client must have an HTTP Request to make assertions. Did you forget to make an HTTP request?');
         }
 
+        if ($request instanceof BrowserKitRequest) {
+            return Request::create(
+                $request->getUri(),
+                $request->getMethod(),
+                $request->getParameters(),
+                $request->getCookies(),
+                $request->getFiles(),
+                $request->getServer(),
+                $request->getContent()
+            );
+        }
+
         return $request;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/DomCrawlerAssertionsTrait.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/DomCrawlerAssertionsTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/DomCrawlerAssertionsTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/DomCrawlerAssertionsTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,12 +26,12 @@
 {
     public static function assertSelectorExists(string $selector, string $message = ''): void
     {
-        self::assertThat(self::getCrawler(), new DomCrawlerConstraint\CrawlerSelectorExists($selector), $message);
+        self::assertThat(self::getCrawler(), new CrawlerSelectorExists($selector), $message);
     }
 
     public static function assertSelectorNotExists(string $selector, string $message = ''): void
     {
-        self::assertThat(self::getCrawler(), new LogicalNot(new DomCrawlerConstraint\CrawlerSelectorExists($selector)), $message);
+        self::assertThat(self::getCrawler(), new LogicalNot(new CrawlerSelectorExists($selector)), $message);
     }
 
     public static function assertSelectorCount(int $expectedCount, string $selector, string $message = ''): void
@@ -42,7 +42,7 @@
     public static function assertSelectorTextContains(string $selector, string $text, string $message = ''): void
     {
         self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
-            new DomCrawlerConstraint\CrawlerSelectorExists($selector),
+            new CrawlerSelectorExists($selector),
             new DomCrawlerConstraint\CrawlerSelectorTextContains($selector, $text)
         ), $message);
     }
@@ -50,7 +50,7 @@
     public static function assertAnySelectorTextContains(string $selector, string $text, string $message = ''): void
     {
         self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
-            new DomCrawlerConstraint\CrawlerSelectorExists($selector),
+            new CrawlerSelectorExists($selector),
             new DomCrawlerConstraint\CrawlerAnySelectorTextContains($selector, $text)
         ), $message);
     }
@@ -58,7 +58,7 @@
     public static function assertSelectorTextSame(string $selector, string $text, string $message = ''): void
     {
         self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
-            new DomCrawlerConstraint\CrawlerSelectorExists($selector),
+            new CrawlerSelectorExists($selector),
             new DomCrawlerConstraint\CrawlerSelectorTextSame($selector, $text)
         ), $message);
     }
@@ -66,7 +66,7 @@
     public static function assertAnySelectorTextSame(string $selector, string $text, string $message = ''): void
     {
         self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
-            new DomCrawlerConstraint\CrawlerSelectorExists($selector),
+            new CrawlerSelectorExists($selector),
             new DomCrawlerConstraint\CrawlerAnySelectorTextSame($selector, $text)
         ), $message);
     }
@@ -74,7 +74,7 @@
     public static function assertSelectorTextNotContains(string $selector, string $text, string $message = ''): void
     {
         self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
-            new DomCrawlerConstraint\CrawlerSelectorExists($selector),
+            new CrawlerSelectorExists($selector),
             new LogicalNot(new DomCrawlerConstraint\CrawlerSelectorTextContains($selector, $text))
         ), $message);
     }
@@ -82,7 +82,7 @@
     public static function assertAnySelectorTextNotContains(string $selector, string $text, string $message = ''): void
     {
         self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
-            new DomCrawlerConstraint\CrawlerSelectorExists($selector),
+            new CrawlerSelectorExists($selector),
             new LogicalNot(new DomCrawlerConstraint\CrawlerAnySelectorTextContains($selector, $text))
         ), $message);
     }
@@ -100,7 +100,7 @@
     public static function assertInputValueSame(string $fieldName, string $expectedValue, string $message = ''): void
     {
         self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
-            new DomCrawlerConstraint\CrawlerSelectorExists("input[name=\"$fieldName\"]"),
+            new CrawlerSelectorExists("input[name=\"$fieldName\"]"),
             new DomCrawlerConstraint\CrawlerSelectorAttributeValueSame("input[name=\"$fieldName\"]", 'value', $expectedValue)
         ), $message);
     }
@@ -108,7 +108,7 @@
     public static function assertInputValueNotSame(string $fieldName, string $expectedValue, string $message = ''): void
     {
         self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
-            new DomCrawlerConstraint\CrawlerSelectorExists("input[name=\"$fieldName\"]"),
+            new CrawlerSelectorExists("input[name=\"$fieldName\"]"),
             new LogicalNot(new DomCrawlerConstraint\CrawlerSelectorAttributeValueSame("input[name=\"$fieldName\"]", 'value', $expectedValue))
         ), $message);
     }
@@ -126,18 +126,18 @@
     public static function assertFormValue(string $formSelector, string $fieldName, string $value, string $message = ''): void
     {
         $node = self::getCrawler()->filter($formSelector);
-        self::assertNotEmpty($node, sprintf('Form "%s" not found.', $formSelector));
+        self::assertNotEmpty($node, \sprintf('Form "%s" not found.', $formSelector));
         $values = $node->form()->getValues();
-        self::assertArrayHasKey($fieldName, $values, $message ?: sprintf('Field "%s" not found in form "%s".', $fieldName, $formSelector));
+        self::assertArrayHasKey($fieldName, $values, $message ?: \sprintf('Field "%s" not found in form "%s".', $fieldName, $formSelector));
         self::assertSame($value, $values[$fieldName]);
     }
 
     public static function assertNoFormValue(string $formSelector, string $fieldName, string $message = ''): void
     {
         $node = self::getCrawler()->filter($formSelector);
-        self::assertNotEmpty($node, sprintf('Form "%s" not found.', $formSelector));
+        self::assertNotEmpty($node, \sprintf('Form "%s" not found.', $formSelector));
         $values = $node->form()->getValues();
-        self::assertArrayNotHasKey($fieldName, $values, $message ?: sprintf('Field "%s" has a value in form "%s".', $fieldName, $formSelector));
+        self::assertArrayNotHasKey($fieldName, $values, $message ?: \sprintf('Field "%s" has a value in form "%s".', $fieldName, $formSelector));
     }
 
     private static function getCrawler(): Crawler
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/HttpClientAssertionsTrait.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/HttpClientAssertionsTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/HttpClientAssertionsTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/HttpClientAssertionsTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
         $expectedRequestHasBeenFound = false;
 
         if (!\array_key_exists($httpClientId, $httpClientDataCollector->getClients())) {
-            static::fail(sprintf('HttpClient "%s" is not registered.', $httpClientId));
+            static::fail(\sprintf('HttpClient "%s" is not registered.', $httpClientId));
         }
 
         foreach ($httpClientDataCollector->getClients()[$httpClientId]['traces'] as $trace) {
@@ -101,7 +101,7 @@
         $unexpectedUrlHasBeenFound = false;
 
         if (!\array_key_exists($httpClientId, $httpClientDataCollector->getClients())) {
-            static::fail(sprintf('HttpClient "%s" is not registered.', $httpClientId));
+            static::fail(\sprintf('HttpClient "%s" is not registered.', $httpClientId));
         }
 
         foreach ($httpClientDataCollector->getClients()[$httpClientId]['traces'] as $trace) {
@@ -113,7 +113,7 @@
             }
         }
 
-        self::assertFalse($unexpectedUrlHasBeenFound, sprintf('Unexpected URL called: "%s" - "%s"', $expectedMethod, $unexpectedUrl));
+        self::assertFalse($unexpectedUrlHasBeenFound, \sprintf('Unexpected URL called: "%s" - "%s"', $expectedMethod, $unexpectedUrl));
     }
 
     public static function assertHttpClientRequestCount(int $count, string $httpClientId = 'http_client'): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,9 +12,12 @@
 namespace Symfony\Bundle\FrameworkBundle\Test;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Config\Resource\SelfCheckingResourceChecker;
 use Symfony\Component\DependencyInjection\Container;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
+use Symfony\Component\Filesystem\Filesystem;
+use Symfony\Component\HttpKernel\Kernel;
 use Symfony\Component\HttpKernel\KernelInterface;
 use Symfony\Contracts\Service\ResetInterface;
 
@@ -37,6 +40,8 @@
 
     protected static $booted = false;
 
+    private static bool $kernelHasBeenRebooted = false;
+
     protected function tearDown(): void
     {
         static::ensureKernelShutdown();
@@ -45,6 +50,14 @@
         static::$booted = false;
     }
 
+    public static function tearDownAfterClass(): void
+    {
+        static::ensureKernelShutdown();
+        static::$class = null;
+        static::$kernel = null;
+        static::$booted = false;
+    }
+
     /**
      * @throws \RuntimeException
      * @throws \LogicException
@@ -52,11 +65,11 @@
     protected static function getKernelClass(): string
     {
         if (!isset($_SERVER['KERNEL_CLASS']) && !isset($_ENV['KERNEL_CLASS'])) {
-            throw new \LogicException(sprintf('You must set the KERNEL_CLASS environment variable to the fully-qualified class name of your Kernel in phpunit.xml / phpunit.xml.dist or override the "%1$s::createKernel()" or "%1$s::getKernelClass()" method.', static::class));
+            throw new \LogicException(\sprintf('You must set the KERNEL_CLASS environment variable to the fully-qualified class name of your Kernel in phpunit.xml / phpunit.xml.dist or override the "%1$s::createKernel()" or "%1$s::getKernelClass()" method.', static::class));
         }
 
         if (!class_exists($class = $_ENV['KERNEL_CLASS'] ?? $_SERVER['KERNEL_CLASS'])) {
-            throw new \RuntimeException(sprintf('Class "%s" doesn\'t exist or cannot be autoloaded. Check that the KERNEL_CLASS value in phpunit.xml matches the fully-qualified class name of your Kernel or override the "%s::createKernel()" method.', $class, static::class));
+            throw new \RuntimeException(\sprintf('Class "%s" doesn\'t exist or cannot be autoloaded. Check that the KERNEL_CLASS value in phpunit.xml matches the fully-qualified class name of your Kernel or override the "%s::createKernel()" method.', $class, static::class));
         }
 
         return $class;
@@ -74,6 +87,19 @@
         static::$kernel = $kernel;
         static::$booted = true;
 
+        // If the cache warmer is registered, it means that the cache has been
+        // warmed up, so the current container is not fresh anymore. Let's
+        // reboot a fresh one.
+        if ($kernel->getContainer()->initialized('cache_warmer')) {
+            static::ensureKernelShutdown();
+            self::$kernelHasBeenRebooted = true;
+
+            $kernel = static::createKernel($options);
+            $kernel->boot();
+            static::$kernel = $kernel;
+            static::$booted = true;
+        }
+
         return static::$kernel;
     }
 
@@ -127,6 +153,11 @@
             static::$kernel->boot();
             $container = static::$kernel->getContainer();
 
+            $httpCacheDir = null;
+            if ($container->has('http_cache')) {
+                $httpCacheDir = static::$kernel->getCacheDir().'/http_cache';
+            }
+
             if ($container->has('services_resetter')) {
                 // Instantiate the service because Container::reset() only resets services that have been used
                 $container->get('services_resetter');
@@ -135,9 +166,27 @@
             static::$kernel->shutdown();
             static::$booted = false;
 
+            if (self::$kernelHasBeenRebooted) {
+                self::$kernelHasBeenRebooted = false;
+                try {
+                    (new \ReflectionProperty(Kernel::class, 'freshCache'))->setValue(null, []);
+                } catch (\ReflectionException) {
+                    // ignore if the property doesn't exist
+                }
+                try {
+                    (new \ReflectionProperty(SelfCheckingResourceChecker::class, 'cache'))->setValue(null, []);
+                } catch (\ReflectionException) {
+                    // ignore if the property doesn't exist
+                }
+            }
+
             if ($container instanceof ResetInterface) {
                 $container->reset();
             }
+
+            if (null !== $httpCacheDir && is_dir($httpCacheDir)) {
+                (new Filesystem())->remove($httpCacheDir);
+            }
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/TestContainer.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/TestContainer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/TestContainer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/TestContainer.php	2026-05-20 10:56:49.000000000 +0200
@@ -71,15 +71,11 @@
         $container = $this->getPublicContainer();
         $renamedId = $this->renamedIds[$id] ?? $id;
 
-        try {
+        if (!$this->getPrivateContainer()->has($renamedId)) {
             $container->set($renamedId, $service);
-        } catch (InvalidArgumentException $e) {
-            if (!str_starts_with($e->getMessage(), "The \"$renamedId\" service is private")) {
-                throw $e;
-            }
-            if (isset($container->privates[$renamedId])) {
-                throw new InvalidArgumentException(sprintf('The "%s" service is already initialized, you cannot replace it.', $id));
-            }
+        } elseif (isset($container->privates[$renamedId])) {
+            throw new InvalidArgumentException(\sprintf('The "%s" service is already initialized, you cannot replace it.', $id));
+        } else {
             $container->privates[$renamedId] = $service;
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
     protected static function createClient(array $options = [], array $server = []): KernelBrowser
     {
         if (static::$booted) {
-            throw new \LogicException(sprintf('Booting the kernel before calling "%s()" is not supported, the kernel should only be booted once.', __METHOD__));
+            throw new \LogicException(\sprintf('Booting the kernel before calling "%s()" is not supported, the kernel should only be booted once.', __METHOD__));
         }
 
         $kernel = static::bootKernel($options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/AnnotationsCacheWarmerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/AnnotationsCacheWarmerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/AnnotationsCacheWarmerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/AnnotationsCacheWarmerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
 
     public function testAnnotationsCacheWarmerWithDebugDisabled()
     {
-        file_put_contents($this->cacheDir.'/annotations.map', sprintf('<?php return %s;', var_export([__CLASS__], true)));
+        file_put_contents($this->cacheDir.'/annotations.map', \sprintf('<?php return %s;', var_export([__CLASS__], true)));
         $cacheFile = tempnam($this->cacheDir, __FUNCTION__);
         $reader = new AnnotationReader();
 
@@ -72,7 +72,7 @@
 
     public function testAnnotationsCacheWarmerWithDebugEnabled()
     {
-        file_put_contents($this->cacheDir.'/annotations.map', sprintf('<?php return %s;', var_export([__CLASS__], true)));
+        file_put_contents($this->cacheDir.'/annotations.map', \sprintf('<?php return %s;', var_export([__CLASS__], true)));
         $cacheFile = tempnam($this->cacheDir, __FUNCTION__);
         $reader = new AnnotationReader();
 
@@ -103,12 +103,12 @@
     {
         $this->assertFalse(class_exists($annotatedClass = 'C\C\C', false));
 
-        file_put_contents($this->cacheDir.'/annotations.map', sprintf('<?php return %s;', var_export([$annotatedClass], true)));
+        file_put_contents($this->cacheDir.'/annotations.map', \sprintf('<?php return %s;', var_export([$annotatedClass], true)));
 
         $this->expectDeprecation('Since symfony/framework-bundle 6.4: The "Symfony\Bundle\FrameworkBundle\CacheWarmer\AnnotationsCacheWarmer" class is deprecated without replacement.');
         $warmer = new AnnotationsCacheWarmer(new AnnotationReader(), tempnam($this->cacheDir, __FUNCTION__));
 
-        spl_autoload_register($classLoader = function ($class) use ($annotatedClass) {
+        spl_autoload_register($classLoader = static function ($class) use ($annotatedClass) {
             if ($class === $annotatedClass) {
                 throw new \DomainException('This exception should be caught by the warmer.');
             }
@@ -130,7 +130,7 @@
 
         $this->assertFalse(class_exists($annotatedClass = 'AClassThatDoesNotExist_FWB_CacheWarmer_AnnotationsCacheWarmerTest', false));
 
-        file_put_contents($this->cacheDir.'/annotations.map', sprintf('<?php return %s;', var_export([$annotatedClass], true)));
+        file_put_contents($this->cacheDir.'/annotations.map', \sprintf('<?php return %s;', var_export([$annotatedClass], true)));
         $this->expectDeprecation('Since symfony/framework-bundle 6.4: The "Symfony\Bundle\FrameworkBundle\CacheWarmer\AnnotationsCacheWarmer" class is deprecated without replacement.');
         $warmer = new AnnotationsCacheWarmer(new AnnotationReader(), tempnam($this->cacheDir, __FUNCTION__));
 
@@ -155,7 +155,7 @@
             ->onlyMethods(['doWarmUp'])
             ->getMock();
 
-        $warmer->method('doWarmUp')->willReturnCallback(function ($cacheDir, ArrayAdapter $arrayAdapter) {
+        $warmer->method('doWarmUp')->willReturnCallback(static function ($cacheDir, ArrayAdapter $arrayAdapter) {
             $arrayAdapter->getItem('foo_miss');
 
             $item = $arrayAdapter->getItem('bar_hit');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ConfigBuilderCacheWarmerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ConfigBuilderCacheWarmerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ConfigBuilderCacheWarmerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ConfigBuilderCacheWarmerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -188,7 +188,7 @@
         $kernel = new class($this->varDir) extends TestKernel {
             protected function build(ContainerBuilder $container): void
             {
-                $container->registerExtension(new class() extends Extension implements ConfigurationInterface {
+                $container->registerExtension(new class extends Extension implements ConfigurationInterface {
                     public function load(array $configs, ContainerBuilder $container): void
                     {
                     }
@@ -275,7 +275,7 @@
             {
                 /** @var TestSecurityExtension $extension */
                 $extension = $container->getExtension('test_security');
-                $extension->addAuthenticatorFactory(new class() implements TestAuthenticatorFactoryInterface {
+                $extension->addAuthenticatorFactory(new class implements TestAuthenticatorFactoryInterface {
                     public function getKey(): string
                     {
                         return 'token';
@@ -291,19 +291,19 @@
             {
                 yield from parent::registerBundles();
 
-                yield new class() extends Bundle {
+                yield new class extends Bundle {
                     public function getContainerExtension(): ExtensionInterface
                     {
                         return new TestSecurityExtension();
                     }
                 };
 
-                yield new class() extends Bundle {
+                yield new class extends Bundle {
                     public function build(ContainerBuilder $container): void
                     {
                         /** @var TestSecurityExtension $extension */
                         $extension = $container->getExtension('test_security');
-                        $extension->addAuthenticatorFactory(new class() implements TestAuthenticatorFactoryInterface {
+                        $extension->addAuthenticatorFactory(new class implements TestAuthenticatorFactoryInterface {
                             public function getKey(): string
                             {
                                 return 'form-login';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/RouterCacheWarmerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/RouterCacheWarmerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/RouterCacheWarmerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/RouterCacheWarmerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,8 +12,8 @@
 namespace Symfony\Bundle\FrameworkBundle\Tests\CacheWarmer;
 
 use PHPUnit\Framework\TestCase;
-use Psr\Container\ContainerInterface;
 use Symfony\Bundle\FrameworkBundle\CacheWarmer\RouterCacheWarmer;
+use Symfony\Component\DependencyInjection\Container;
 use Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface;
 use Symfony\Component\Routing\RouterInterface;
 
@@ -21,11 +21,11 @@
 {
     public function testWarmUpWithWarmebleInterface()
     {
-        $containerMock = $this->getMockBuilder(ContainerInterface::class)->onlyMethods(['get', 'has'])->getMock();
+        $container = new Container();
 
-        $routerMock = $this->getMockBuilder(testRouterInterfaceWithWarmebleInterface::class)->onlyMethods(['match', 'generate', 'getContext', 'setContext', 'getRouteCollection', 'warmUp'])->getMock();
-        $containerMock->expects($this->any())->method('get')->with('router')->willReturn($routerMock);
-        $routerCacheWarmer = new RouterCacheWarmer($containerMock);
+        $routerMock = $this->createStub(testRouterInterfaceWithWarmableInterface::class);
+        $container->set('router', $routerMock);
+        $routerCacheWarmer = new RouterCacheWarmer($container);
 
         $routerCacheWarmer->warmUp('/tmp');
         $routerMock->expects($this->any())->method('warmUp')->with('/tmp')->willReturn([]);
@@ -34,21 +34,21 @@
 
     public function testWarmUpWithoutWarmebleInterface()
     {
-        $containerMock = $this->getMockBuilder(ContainerInterface::class)->onlyMethods(['get', 'has'])->getMock();
+        $container = new Container();
 
-        $routerMock = $this->getMockBuilder(testRouterInterfaceWithoutWarmebleInterface::class)->onlyMethods(['match', 'generate', 'getContext', 'setContext', 'getRouteCollection'])->getMock();
-        $containerMock->expects($this->any())->method('get')->with('router')->willReturn($routerMock);
-        $routerCacheWarmer = new RouterCacheWarmer($containerMock);
+        $routerMock = $this->createStub(testRouterInterfaceWithoutWarmableInterface::class);
+        $container->set('router', $routerMock);
+        $routerCacheWarmer = new RouterCacheWarmer($container);
         $this->expectException(\LogicException::class);
         $this->expectExceptionMessage('cannot be warmed up because it does not implement "Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface"');
         $routerCacheWarmer->warmUp('/tmp');
     }
 }
 
-interface testRouterInterfaceWithWarmebleInterface extends RouterInterface, WarmableInterface
+interface testRouterInterfaceWithWarmableInterface extends RouterInterface, WarmableInterface
 {
 }
 
-interface testRouterInterfaceWithoutWarmebleInterface extends RouterInterface
+interface testRouterInterfaceWithoutWarmableInterface extends RouterInterface
 {
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/SerializerCacheWarmerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/SerializerCacheWarmerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/SerializerCacheWarmerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/SerializerCacheWarmerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -81,7 +81,7 @@
 
         $warmer = new SerializerCacheWarmer([new YamlFileLoader(__DIR__.'/../Fixtures/Serialization/Resources/does_not_exist.yaml')], tempnam(sys_get_temp_dir(), __FUNCTION__));
 
-        spl_autoload_register($classLoader = function ($class) use ($mappedClass) {
+        spl_autoload_register($classLoader = static function ($class) use ($mappedClass) {
             if ($class === $mappedClass) {
                 throw new \DomainException('This exception should be caught by the warmer.');
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ValidatorCacheWarmerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ValidatorCacheWarmerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ValidatorCacheWarmerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ValidatorCacheWarmerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -89,7 +89,7 @@
         $validatorBuilder->addYamlMapping(__DIR__.'/../Fixtures/Validation/Resources/does_not_exist.yaml');
         $warmer = new ValidatorCacheWarmer($validatorBuilder, tempnam(sys_get_temp_dir(), __FUNCTION__));
 
-        spl_autoload_register($classloader = function ($class) use ($mappedClass) {
+        spl_autoload_register($classloader = static function ($class) use ($mappedClass) {
             if ($class === $mappedClass) {
                 throw new \DomainException('This exception should be caught by the warmer.');
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/AboutCommand/AboutCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/AboutCommand/AboutCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/AboutCommand/AboutCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/AboutCommand/AboutCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
         $this->fs->mkdir($kernel->getProjectDir());
 
         $this->fs->dumpFile($kernel->getCacheDir().'/readable_file', 'The file content.');
-        $this->fs->chmod($kernel->getCacheDir().'/readable_file', 0777);
+        $this->fs->chmod($kernel->getCacheDir().'/readable_file', 0o777);
 
         $tester = $this->createCommandTester($kernel);
         $ret = $tester->execute([]);
@@ -43,7 +43,7 @@
         $this->assertStringContainsString('Cache directory', $tester->getDisplay());
         $this->assertStringContainsString('Log directory', $tester->getDisplay());
 
-        $this->fs->chmod($kernel->getCacheDir().'/readable_file', 0777);
+        $this->fs->chmod($kernel->getCacheDir().'/readable_file', 0o777);
 
         try {
             $this->fs->remove($kernel->getProjectDir());
@@ -62,7 +62,7 @@
         }
 
         $this->fs->dumpFile($kernel->getCacheDir().'/unreadable_file', 'The file content.');
-        $this->fs->chmod($kernel->getCacheDir().'/unreadable_file', 0222);
+        $this->fs->chmod($kernel->getCacheDir().'/unreadable_file', 0o222);
 
         $tester = $this->createCommandTester($kernel);
         $ret = $tester->execute([]);
@@ -71,7 +71,7 @@
         $this->assertStringContainsString('Cache directory', $tester->getDisplay());
         $this->assertStringContainsString('Log directory', $tester->getDisplay());
 
-        $this->fs->chmod($kernel->getCacheDir().'/unreadable_file', 0777);
+        $this->fs->chmod($kernel->getCacheDir().'/unreadable_file', 0o777);
 
         try {
             $this->fs->remove($kernel->getProjectDir());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
             $configCacheFactory->cache(
                 substr($file, 0, -5),
                 function () use ($file) {
-                    $this->fail(sprintf('Meta file "%s" is not fresh', (string) $file));
+                    $this->fail(\sprintf('Meta file "%s" is not fresh', (string) $file));
                 }
             );
         }
@@ -92,7 +92,7 @@
             $containerRef->getFileName()
         );
         $this->assertMatchesRegularExpression(
-            sprintf('/\'kernel.container_class\'\s*=>\s*\'%s\'/', $containerClass),
+            \sprintf('/\'kernel.container_class\'\s*=>\s*\'%s\'/', $containerClass),
             file_get_contents($containerFile),
             'kernel.container_class is properly set on the dumped container'
         );
@@ -121,7 +121,7 @@
         // BUT without "kernel.build_dir" parameter (like an old dumped container)
         $kernel->boot();
         $container = $kernel->getContainer();
-        \Closure::bind(function (Container $class) {
+        \Closure::bind(static function (Container $class) {
             unset($class->loadedDynamicParameters['kernel.build_dir']);
             unset($class->parameters['kernel.build_dir']);
         }, null, $container::class)($container);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolClearCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolClearCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolClearCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolClearCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,10 +12,10 @@
 namespace Symfony\Bundle\FrameworkBundle\Tests\Command;
 
 use PHPUnit\Framework\MockObject\MockObject;
-use Psr\Cache\CacheItemPoolInterface;
 use Symfony\Bundle\FrameworkBundle\Command\CachePoolClearCommand;
 use Symfony\Bundle\FrameworkBundle\Console\Application;
 use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
+use Symfony\Component\Cache\Adapter\ArrayAdapter;
 use Symfony\Component\Console\Tester\CommandCompletionTester;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer;
@@ -23,20 +23,13 @@
 
 class CachePoolClearCommandTest extends TestCase
 {
-    private CacheItemPoolInterface $cachePool;
-
-    protected function setUp(): void
-    {
-        $this->cachePool = $this->createMock(CacheItemPoolInterface::class);
-    }
-
     /**
      * @dataProvider provideCompletionSuggestions
      */
     public function testComplete(array $input, array $expectedSuggestions)
     {
         $application = new Application($this->getKernel());
-        $application->add(new CachePoolClearCommand(new Psr6CacheClearer(['foo' => $this->cachePool]), ['foo']));
+        $application->add(new CachePoolClearCommand(new Psr6CacheClearer(['foo' => new ArrayAdapter()]), ['foo']));
         $tester = new CommandCompletionTester($application->get('cache:pool:clear'));
 
         $suggestions = $tester->complete($input);
@@ -58,7 +51,6 @@
 
         $kernel = $this->createMock(KernelInterface::class);
         $kernel
-            ->expects($this->any())
             ->method('getContainer')
             ->willReturn($container);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolDeleteCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolDeleteCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolDeleteCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolDeleteCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
 use Symfony\Bundle\FrameworkBundle\Command\CachePoolDeleteCommand;
 use Symfony\Bundle\FrameworkBundle\Console\Application;
 use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
+use Symfony\Component\Cache\Adapter\ArrayAdapter;
 use Symfony\Component\Console\Tester\CommandCompletionTester;
 use Symfony\Component\Console\Tester\CommandTester;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -24,26 +25,20 @@
 
 class CachePoolDeleteCommandTest extends TestCase
 {
-    private MockObject&CacheItemPoolInterface $cachePool;
-
-    protected function setUp(): void
-    {
-        $this->cachePool = $this->createMock(CacheItemPoolInterface::class);
-    }
-
     public function testCommandWithValidKey()
     {
-        $this->cachePool->expects($this->once())
+        $cachePool = $this->createMock(CacheItemPoolInterface::class);
+        $cachePool->expects($this->once())
             ->method('hasItem')
             ->with('bar')
             ->willReturn(true);
 
-        $this->cachePool->expects($this->once())
+        $cachePool->expects($this->once())
             ->method('deleteItem')
             ->with('bar')
             ->willReturn(true);
 
-        $tester = $this->getCommandTester($this->getKernel());
+        $tester = $this->getCommandTester($this->getKernel(), $cachePool);
         $tester->execute(['pool' => 'foo', 'key' => 'bar']);
 
         $this->assertStringContainsString('[OK] Cache item "bar" was successfully deleted.', $tester->getDisplay());
@@ -51,16 +46,17 @@
 
     public function testCommandWithInValidKey()
     {
-        $this->cachePool->expects($this->once())
+        $cachePool = $this->createMock(CacheItemPoolInterface::class);
+        $cachePool->expects($this->once())
             ->method('hasItem')
             ->with('bar')
             ->willReturn(false);
 
-        $this->cachePool->expects($this->never())
+        $cachePool->expects($this->never())
             ->method('deleteItem')
             ->with('bar');
 
-        $tester = $this->getCommandTester($this->getKernel());
+        $tester = $this->getCommandTester($this->getKernel(), $cachePool);
         $tester->execute(['pool' => 'foo', 'key' => 'bar']);
 
         $this->assertStringContainsString('[NOTE] Cache item "bar" does not exist in cache pool "foo".', $tester->getDisplay());
@@ -68,19 +64,20 @@
 
     public function testCommandDeleteFailed()
     {
-        $this->cachePool->expects($this->once())
+        $cachePool = $this->createMock(CacheItemPoolInterface::class);
+        $cachePool->expects($this->once())
             ->method('hasItem')
             ->with('bar')
             ->willReturn(true);
 
-        $this->cachePool->expects($this->once())
+        $cachePool->expects($this->once())
             ->method('deleteItem')
             ->with('bar')
             ->willReturn(false);
 
         $this->expectExceptionMessage('Cache item "bar" could not be deleted.');
 
-        $tester = $this->getCommandTester($this->getKernel());
+        $tester = $this->getCommandTester($this->getKernel(), $cachePool);
         $tester->execute(['pool' => 'foo', 'key' => 'bar']);
     }
 
@@ -90,7 +87,7 @@
     public function testComplete(array $input, array $expectedSuggestions)
     {
         $application = new Application($this->getKernel());
-        $application->add(new CachePoolDeleteCommand(new Psr6CacheClearer(['foo' => $this->cachePool]), ['foo']));
+        $application->add(new CachePoolDeleteCommand(new Psr6CacheClearer(['foo' => new ArrayAdapter()]), ['foo']));
         $tester = new CommandCompletionTester($application->get('cache:pool:delete'));
 
         $suggestions = $tester->complete($input);
@@ -112,7 +109,6 @@
 
         $kernel = $this->createMock(KernelInterface::class);
         $kernel
-            ->expects($this->any())
             ->method('getContainer')
             ->willReturn($container);
 
@@ -124,10 +120,10 @@
         return $kernel;
     }
 
-    private function getCommandTester(KernelInterface $kernel): CommandTester
+    private function getCommandTester(KernelInterface $kernel, CacheItemPoolInterface $cachePool): CommandTester
     {
         $application = new Application($kernel);
-        $application->add(new CachePoolDeleteCommand(new Psr6CacheClearer(['foo' => $this->cachePool])));
+        $application->add(new CachePoolDeleteCommand(new Psr6CacheClearer(['foo' => $cachePool])));
 
         return new CommandTester($application->find('cache:pool:delete'));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolInvalidateTagsCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolInvalidateTagsCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolInvalidateTagsCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePoolInvalidateTagsCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -132,7 +132,7 @@
     private function createCommand(array $services): CachePoolInvalidateTagsCommand
     {
         return new CachePoolInvalidateTagsCommand(
-            new ServiceLocator(array_map(fn ($service) => fn () => $service, $services))
+            new ServiceLocator(array_map(static fn ($service) => static fn () => $service, $services))
         );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePruneCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePruneCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePruneCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CachePruneCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,6 +35,44 @@
         $tester->execute([]);
     }
 
+    public function testCommandFailsOnPruneError()
+    {
+        $failedPool = $this->createMock(PruneableInterface::class);
+        $failedPool->expects($this->once())->method('prune')->willReturn(false);
+
+        $generator = new RewindableGenerator(static function () use ($failedPool) {
+            yield 'failed_pool' => $failedPool;
+        }, 1);
+
+        $tester = $this->getCommandTester($this->getKernel(), $generator);
+        $tester->execute([]);
+
+        $this->assertSame(1, $tester->getStatusCode());
+        $this->assertStringContainsString('[ERROR] Cache pool "failed_pool" could not be pruned.', $tester->getDisplay());
+    }
+
+    public function testCommandContinuesOnFailure()
+    {
+        $failedPool = $this->createMock(PruneableInterface::class);
+        $failedPool->expects($this->once())->method('prune')->willReturn(false);
+
+        $successPool = $this->createMock(PruneableInterface::class);
+        $successPool->expects($this->once())->method('prune')->willReturn(true);
+
+        $generator = new RewindableGenerator(static function () use ($failedPool, $successPool) {
+            yield 'failed_pool' => $failedPool;
+            yield 'success_pool' => $successPool;
+        }, 2);
+
+        $tester = $this->getCommandTester($this->getKernel(), $generator);
+        $tester->execute([]);
+
+        $this->assertSame(1, $tester->getStatusCode());
+        $display = $tester->getDisplay();
+        $this->assertStringContainsString('[ERROR] Cache pool "failed_pool" could not be pruned.', $display);
+        $this->assertStringContainsString('Pruning cache pool: success_pool', $display);
+    }
+
     private function getRewindableGenerator(): RewindableGenerator
     {
         return new RewindableGenerator(function () {
@@ -45,7 +83,7 @@
 
     private function getEmptyRewindableGenerator(): RewindableGenerator
     {
-        return new RewindableGenerator(fn () => new \ArrayIterator([]), 0);
+        return new RewindableGenerator(static fn () => new \ArrayIterator([]), 0);
     }
 
     private function getKernel(): MockObject&KernelInterface
@@ -54,7 +92,6 @@
 
         $kernel = $this->createMock(KernelInterface::class);
         $kernel
-            ->expects($this->any())
             ->method('getContainer')
             ->willReturn($container);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/EventDispatcherDebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/EventDispatcherDebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/EventDispatcherDebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/EventDispatcherDebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,14 +43,14 @@
     private function createCommandCompletionTester(): CommandCompletionTester
     {
         $dispatchers = new ServiceLocator([
-            'event_dispatcher' => function () {
+            'event_dispatcher' => static function () {
                 $dispatcher = new EventDispatcher();
                 $dispatcher->addListener(MessageEvent::class, 'var_dump');
                 $dispatcher->addListener('console.command', 'var_dump');
 
                 return $dispatcher;
             },
-            'other_event_dispatcher' => function () {
+            'other_event_dispatcher' => static function () {
                 $dispatcher = new EventDispatcher();
                 $dispatcher->addListener('other_event', 'var_dump');
                 $dispatcher->addListener('App\OtherEvent', 'var_dump');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/RouterMatchCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/RouterMatchCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/RouterMatchCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/RouterMatchCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,13 +57,11 @@
         $routeCollection = new RouteCollection();
         $routeCollection->add('foo', new Route('foo'));
         $requestContext = new RequestContext();
-        $router = $this->createMock(RouterInterface::class);
+        $router = $this->createStub(RouterInterface::class);
         $router
-            ->expects($this->any())
             ->method('getRouteCollection')
             ->willReturn($routeCollection);
         $router
-            ->expects($this->any())
             ->method('getContext')
             ->willReturn($requestContext);
 
@@ -76,7 +74,7 @@
         $container
             ->expects($this->atLeastOnce())
             ->method('has')
-            ->willReturnCallback(fn ($id) => 'console.command_loader' !== $id)
+            ->willReturnCallback(static fn ($id) => 'console.command_loader' !== $id)
         ;
         $container
             ->expects($this->any())
@@ -87,7 +85,6 @@
 
         $kernel = $this->createMock(KernelInterface::class);
         $kernel
-            ->expects($this->any())
             ->method('getContainer')
             ->willReturn($container)
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsDecryptToLocalCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsDecryptToLocalCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsDecryptToLocalCommandTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsDecryptToLocalCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,95 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Command;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Bundle\FrameworkBundle\Command\SecretsDecryptToLocalCommand;
+use Symfony\Bundle\FrameworkBundle\Secrets\SodiumVault;
+use Symfony\Component\Console\Tester\CommandTester;
+use Symfony\Component\Filesystem\Filesystem;
+
+/**
+ * @requires extension sodium
+ */
+class SecretsDecryptToLocalCommandTest extends TestCase
+{
+    private string $mainDir;
+    private string $localDir;
+
+    protected function setUp(): void
+    {
+        $this->mainDir = sys_get_temp_dir().'/sf_secrets/main/';
+        $this->localDir = sys_get_temp_dir().'/sf_secrets/local/';
+
+        $fs = new Filesystem();
+        $fs->remove([$this->mainDir, $this->localDir]);
+
+        $mainVault = new SodiumVault($this->mainDir);
+        $mainVault->generateKeys();
+        $mainVault->seal('FOO_SECRET', 'super_secret_value');
+
+        $localVault = new SodiumVault($this->localDir);
+        $localVault->generateKeys();
+    }
+
+    protected function tearDown(): void
+    {
+        (new Filesystem())->remove([$this->mainDir, $this->localDir]);
+    }
+
+    public function testSecretsAreDecryptedAndStoredInLocalVault()
+    {
+        $mainVault = new SodiumVault($this->mainDir);
+        $localVault = new SodiumVault($this->localDir);
+        $tester = new CommandTester(new SecretsDecryptToLocalCommand($mainVault, $localVault));
+
+        $this->assertSame(0, $tester->execute([]));
+        $this->assertStringContainsString('1 secret found in the vault.', $tester->getDisplay());
+        $this->assertStringContainsString('Secret "FOO_SECRET" encrypted', $tester->getDisplay());
+
+        $this->assertArrayHasKey('FOO_SECRET', $localVault->list(true));
+        $this->assertSame('super_secret_value', $localVault->reveal('FOO_SECRET'));
+    }
+
+    public function testExistingLocalSecretsAreSkippedWithoutForce()
+    {
+        $mainVault = new SodiumVault($this->mainDir);
+        $localVault = new SodiumVault($this->localDir);
+        $localVault->seal('FOO_SECRET', 'old_value');
+        $tester = new CommandTester(new SecretsDecryptToLocalCommand($mainVault, $localVault));
+
+        $this->assertSame(0, $tester->execute([]));
+        $this->assertMatchesRegularExpression('/1 secret is already overridden in the local vault and will be\s+skipped\./', $tester->getDisplay());
+        $this->assertSame('old_value', $localVault->reveal('FOO_SECRET'));
+    }
+
+    public function testForceOptionOverridesLocalSecrets()
+    {
+        $mainVault = new SodiumVault($this->mainDir);
+        $localVault = new SodiumVault($this->localDir);
+        $localVault->seal('FOO_SECRET', 'old_value');
+        $tester = new CommandTester(new SecretsDecryptToLocalCommand($mainVault, $localVault));
+
+        $this->assertSame(0, $tester->execute(['--force' => true]));
+        $this->assertStringContainsString('Secret "FOO_SECRET" encrypted', $tester->getDisplay());
+        $this->assertSame('super_secret_value', $localVault->reveal('FOO_SECRET'));
+    }
+
+    public function testFailsGracefullyWhenLocalVaultIsDisabled()
+    {
+        $mainVault = new SodiumVault($this->mainDir);
+        $tester = new CommandTester(new SecretsDecryptToLocalCommand($mainVault, null));
+
+        $this->assertSame(1, $tester->execute([]));
+        $this->assertStringContainsString('The local vault is disabled.', $tester->getDisplay());
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsEncryptFromLocalCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsEncryptFromLocalCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsEncryptFromLocalCommandTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsEncryptFromLocalCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,112 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Command;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Bundle\FrameworkBundle\Command\SecretsEncryptFromLocalCommand;
+use Symfony\Bundle\FrameworkBundle\Secrets\AbstractVault;
+use Symfony\Bundle\FrameworkBundle\Secrets\SodiumVault;
+use Symfony\Component\Console\Tester\CommandTester;
+use Symfony\Component\Filesystem\Filesystem;
+
+/**
+ * @requires extension sodium
+ */
+class SecretsEncryptFromLocalCommandTest extends TestCase
+{
+    private string $vaultDir;
+    private string $localVaultDir;
+    private Filesystem $fs;
+
+    protected function setUp(): void
+    {
+        $this->vaultDir = sys_get_temp_dir().'/sf_secrets/vault_'.uniqid();
+        $this->localVaultDir = sys_get_temp_dir().'/sf_secrets/local_'.uniqid();
+        $this->fs = new Filesystem();
+        $this->fs->remove([$this->vaultDir, $this->localVaultDir]);
+    }
+
+    protected function tearDown(): void
+    {
+        $this->fs->remove([$this->vaultDir, $this->localVaultDir]);
+    }
+
+    public function testFailsWhenLocalVaultIsDisabled()
+    {
+        $vault = $this->createStub(AbstractVault::class);
+        $command = new SecretsEncryptFromLocalCommand($vault, null);
+        $tester = new CommandTester($command);
+
+        $this->assertSame(1, $tester->execute([]));
+        $this->assertStringContainsString('The local vault is disabled.', $tester->getDisplay());
+    }
+
+    public function testEncryptsLocalOverrides()
+    {
+        $vault = new SodiumVault($this->vaultDir);
+        $vault->generateKeys();
+
+        $localVault = new SodiumVault($this->localVaultDir);
+        $localVault->generateKeys();
+
+        $vault->seal('MY_SECRET', 'prod-value');
+        $localVault->seal('MY_SECRET', 'local-value');
+
+        $command = new SecretsEncryptFromLocalCommand($vault, $localVault);
+        $tester = new CommandTester($command);
+
+        $exitCode = $tester->execute([]);
+        $this->assertSame(0, $exitCode);
+
+        $revealed = $vault->reveal('MY_SECRET');
+        $this->assertSame('local-value', $revealed);
+    }
+
+    public function testDoesNotSealIfSameValue()
+    {
+        $vault = new SodiumVault($this->vaultDir);
+        $vault->generateKeys();
+
+        $localVault = new SodiumVault($this->localVaultDir);
+        $localVault->generateKeys();
+
+        $vault->seal('SHARED_SECRET', 'same-value');
+        $localVault->seal('SHARED_SECRET', 'same-value');
+
+        $command = new SecretsEncryptFromLocalCommand($vault, $localVault);
+        $tester = new CommandTester($command);
+
+        $exitCode = $tester->execute([]);
+        $this->assertSame(0, $exitCode);
+
+        $revealed = $vault->reveal('SHARED_SECRET');
+        $this->assertSame('same-value', $revealed);
+    }
+
+    public function testStillSucceedsIfLocalSecretIsMissing()
+    {
+        $vault = new SodiumVault($this->vaultDir);
+        $vault->generateKeys();
+
+        $localVault = new SodiumVault($this->localVaultDir);
+        $localVault->generateKeys();
+
+        $vault->seal('MISSING_IN_LOCAL', 'prod-only');
+
+        $command = new SecretsEncryptFromLocalCommand($vault, $localVault);
+        $tester = new CommandTester($command);
+
+        $this->assertSame(0, $tester->execute([]));
+        $revealed = $vault->reveal('MISSING_IN_LOCAL');
+        $this->assertSame('prod-only', $revealed);
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsGenerateKeysCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsGenerateKeysCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsGenerateKeysCommandTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsGenerateKeysCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,90 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Command;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Bundle\FrameworkBundle\Command\SecretsGenerateKeysCommand;
+use Symfony\Bundle\FrameworkBundle\Secrets\AbstractVault;
+use Symfony\Bundle\FrameworkBundle\Secrets\SodiumVault;
+use Symfony\Component\Console\Tester\CommandTester;
+use Symfony\Component\Filesystem\Filesystem;
+
+/**
+ * @requires extension sodium
+ */
+class SecretsGenerateKeysCommandTest extends TestCase
+{
+    private string $secretsDir;
+    private const ENC_KEY_FILE = 'test.encrypt.public.php';
+    private const DEC_KEY_FILE = 'test.decrypt.private.php';
+
+    protected function setUp(): void
+    {
+        $this->secretsDir = sys_get_temp_dir().'/sf_secrets/test/';
+        (new Filesystem())->remove($this->secretsDir);
+    }
+
+    protected function tearDown(): void
+    {
+        (new Filesystem())->remove($this->secretsDir);
+    }
+
+    public function testItGeneratesSodiumKeys()
+    {
+        $vault = new SodiumVault($this->secretsDir);
+        $tester = new CommandTester(new SecretsGenerateKeysCommand($vault));
+
+        $this->assertSame(0, $tester->execute([]));
+        $this->assertKeysExistAndReadable();
+    }
+
+    public function testItRotatesSodiumKeysWhenRequested()
+    {
+        $vault = new SodiumVault($this->secretsDir);
+        $tester = new CommandTester(new SecretsGenerateKeysCommand($vault));
+
+        $this->assertSame(0, $tester->execute(['--rotate' => true]));
+        $this->assertKeysExistAndReadable();
+    }
+
+    public function testItFailsGracefullyWhenLocalVaultIsDisabled()
+    {
+        $vault = $this->createStub(AbstractVault::class);
+        $tester = new CommandTester(new SecretsGenerateKeysCommand($vault));
+
+        $this->assertSame(1, $tester->execute(['--local' => true]));
+        $this->assertStringContainsString('The local vault is disabled.', $tester->getDisplay());
+    }
+
+    public function testFailsWhenKeysAlreadyExistAndRotateNotPassed()
+    {
+        $vault = new SodiumVault($this->secretsDir);
+        $vault->generateKeys();
+
+        $command = new SecretsGenerateKeysCommand($vault);
+        $tester = new CommandTester($command);
+
+        $this->assertSame(1, $tester->execute([]));
+        $this->assertStringContainsString('Sodium keys already exist at', $tester->getDisplay());
+    }
+
+    private function assertKeysExistAndReadable(): void
+    {
+        $encPath = $this->secretsDir.'/'.self::ENC_KEY_FILE;
+        $decPath = $this->secretsDir.'/'.self::DEC_KEY_FILE;
+
+        $this->assertFileExists($encPath, 'Encryption key file does not exist.');
+        $this->assertFileExists($decPath, 'Decryption key file does not exist.');
+        $this->assertNotFalse(@file_get_contents($encPath), 'Encryption key file is not readable.');
+        $this->assertNotFalse(@file_get_contents($decPath), 'Decryption key file is not readable.');
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsListCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsListCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsListCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsListCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
      */
     public function testExecute()
     {
-        $vault = $this->createMock(AbstractVault::class);
+        $vault = $this->createStub(AbstractVault::class);
         $vault->method('list')->willReturn(['A' => 'a', 'B' => 'b', 'C' => null, 'D' => null, 'E' => null]);
 
         $_ENV = ['A' => '', 'B' => 'A', 'C' => '', 'D' => false, 'E' => null];
@@ -34,24 +34,15 @@
         $tester = new CommandTester($command);
         $this->assertSame(0, $tester->execute([]));
 
-        $expectedOutput = <<<EOTXT
-             // Use "%%env(<name>)%%" to reference a secret in a config file.
+        $display = trim(preg_replace('/ ++$/m', '', $tester->getDisplay(true)), "\n");
 
-             // To reveal the secrets run %s secrets:list --reveal
-
-             -------- -------- -------------
-              Secret   Value    Local Value
-             -------- -------- -------------
-              A        "a"
-              B        "b"      ******
-              C        ******
-              D        ******   ******
-              E        ******
-             -------- -------- -------------
-
-             // Local values override secret values.
-             // Use secrets:set --local to define them.
-            EOTXT;
-        $this->assertStringMatchesFormat($expectedOutput, trim(preg_replace('/ ++$/m', '', $tester->getDisplay(true)), "\n"));
+        $this->assertStringContainsString('// Use "%env(<name>)%" to reference a secret in a config file.', $display);
+        $this->assertMatchesRegularExpression('/\n\s*A\s+"a"\s*\n/', $display);
+        $this->assertMatchesRegularExpression('/\n\s*B\s+"b"\s+\*\*\*\*\*\*\s*\n/', $display);
+        $this->assertMatchesRegularExpression('/\n\s*C\s+\*\*\*\*\*\*\s*\n/', $display);
+        $this->assertMatchesRegularExpression('/\n\s*D\s+\*\*\*\*\*\*\s+\*\*\*\*\*\*\s*\n/', $display);
+        $this->assertMatchesRegularExpression('/\n\s*E\s+\*\*\*\*\*\*\s*\n/', $display);
+        $this->assertStringContainsString('// Local values override secret values.', $display);
+        $this->assertStringContainsString('// Use secrets:set --local to define them.', $display);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsRemoveCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsRemoveCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsRemoveCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsRemoveCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,10 +23,10 @@
      */
     public function testComplete(bool $withLocalVault, array $input, array $expectedSuggestions)
     {
-        $vault = $this->createMock(AbstractVault::class);
+        $vault = $this->createStub(AbstractVault::class);
         $vault->method('list')->willReturn(['SECRET' => null, 'OTHER_SECRET' => null]);
         if ($withLocalVault) {
-            $localVault = $this->createMock(AbstractVault::class);
+            $localVault = $this->createStub(AbstractVault::class);
             $localVault->method('list')->willReturn(['SECRET' => null]);
         } else {
             $localVault = null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsSetCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsSetCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsSetCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsSetCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,9 +23,9 @@
      */
     public function testComplete(array $input, array $expectedSuggestions)
     {
-        $vault = $this->createMock(AbstractVault::class);
+        $vault = $this->createStub(AbstractVault::class);
         $vault->method('list')->willReturn(['SECRET' => null, 'OTHER_SECRET' => null]);
-        $localVault = $this->createMock(AbstractVault::class);
+        $localVault = $this->createStub(AbstractVault::class);
         $command = new SecretsSetCommand($vault, $localVault);
         $tester = new CommandCompletionTester($command);
         $suggestions = $tester->complete($input);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationDebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationDebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationDebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationDebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -167,30 +167,25 @@
 
     private function createCommand(array $extractedMessages = [], array $loadedMessages = [], ?KernelInterface $kernel = null, array $transPaths = [], array $codePaths = [], ?ExtractorInterface $extractor = null, array $bundles = [], array $enabledLocales = []): TranslationDebugCommand
     {
-        $translator = $this->createMock(Translator::class);
-        $translator
-            ->expects($this->any())
-            ->method('getFallbackLocales')
-            ->willReturn(['en']);
+        $translator = new Translator('fr');
+        $translator->setFallbackLocales(['en']);
 
         if (!$extractor) {
-            $extractor = $this->createMock(ExtractorInterface::class);
+            $extractor = $this->createStub(ExtractorInterface::class);
             $extractor
-                ->expects($this->any())
                 ->method('extract')
                 ->willReturnCallback(
-                    function ($path, $catalogue) use ($extractedMessages) {
+                    static function ($path, $catalogue) use ($extractedMessages) {
                         $catalogue->add($extractedMessages);
                     }
                 );
         }
 
-        $loader = $this->createMock(TranslationReader::class);
+        $loader = $this->createStub(TranslationReader::class);
         $loader
-            ->expects($this->any())
             ->method('read')
             ->willReturnCallback(
-                function ($path, $catalogue) use ($loadedMessages) {
+                static function ($path, $catalogue) use ($loadedMessages) {
                     $catalogue->add($loadedMessages);
                 }
             );
@@ -200,21 +195,18 @@
                 ['foo', $this->getBundle($this->translationDir)],
                 ['test', $this->getBundle('test')],
             ];
-            $kernel = $this->createMock(KernelInterface::class);
+            $kernel = $this->createStub(KernelInterface::class);
             $kernel
-                ->expects($this->any())
                 ->method('getBundle')
                 ->willReturnMap($returnValues);
         }
 
         $kernel
-            ->expects($this->any())
             ->method('getBundles')
             ->willReturn($bundles);
 
         $container = new Container();
         $kernel
-            ->expects($this->any())
             ->method('getContainer')
             ->willReturn($container);
 
@@ -228,9 +220,8 @@
 
     private function getBundle($path)
     {
-        $bundle = $this->createMock(BundleInterface::class);
+        $bundle = $this->createStub(BundleInterface::class);
         $bundle
-            ->expects($this->any())
             ->method('getPath')
             ->willReturn($path)
         ;
@@ -254,12 +245,11 @@
                 'foo' => 'foo',
             ],
         ];
-        $extractor = $this->createMock(ExtractorInterface::class);
+        $extractor = $this->createStub(ExtractorInterface::class);
         $extractor
-            ->expects($this->any())
             ->method('extract')
             ->willReturnCallback(
-                function ($path, $catalogue) use ($extractedMessagesWithDomains) {
+                static function ($path, $catalogue) use ($extractedMessagesWithDomains) {
                     foreach ($extractedMessagesWithDomains as $domain => $message) {
                         $catalogue->add($message, $domain);
                     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationUpdateCommandCompletionTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationUpdateCommandCompletionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationUpdateCommandCompletionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationUpdateCommandCompletionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -69,37 +69,31 @@
 
     private function createCommandCompletionTester($extractedMessages = [], $loadedMessages = [], ?KernelInterface $kernel = null, array $transPaths = [], array $codePaths = []): CommandCompletionTester
     {
-        $translator = $this->createMock(Translator::class);
-        $translator
-            ->expects($this->any())
-            ->method('getFallbackLocales')
-            ->willReturn(['en']);
+        $translator = new Translator('fr');
+        $translator->setFallbackLocales(['en']);
 
-        $extractor = $this->createMock(ExtractorInterface::class);
+        $extractor = $this->createStub(ExtractorInterface::class);
         $extractor
-            ->expects($this->any())
             ->method('extract')
             ->willReturnCallback(
-                function ($path, $catalogue) use ($extractedMessages) {
+                static function ($path, $catalogue) use ($extractedMessages) {
                     foreach ($extractedMessages as $domain => $messages) {
                         $catalogue->add($messages, $domain);
                     }
                 }
             );
 
-        $loader = $this->createMock(TranslationReader::class);
+        $loader = $this->createStub(TranslationReader::class);
         $loader
-            ->expects($this->any())
             ->method('read')
             ->willReturnCallback(
-                function ($path, $catalogue) use ($loadedMessages) {
+                static function ($path, $catalogue) use ($loadedMessages) {
                     $catalogue->add($loadedMessages);
                 }
             );
 
-        $writer = $this->createMock(TranslationWriter::class);
+        $writer = $this->createStub(TranslationWriter::class);
         $writer
-            ->expects($this->any())
             ->method('getFormats')
             ->willReturn(
                 ['php', 'xlf', 'po', 'mo', 'yml', 'yaml', 'ts', 'csv', 'ini', 'json', 'res']
@@ -110,21 +104,18 @@
                 ['foo', $this->getBundle($this->translationDir)],
                 ['test', $this->getBundle('test')],
             ];
-            $kernel = $this->createMock(KernelInterface::class);
+            $kernel = $this->createStub(KernelInterface::class);
             $kernel
-                ->expects($this->any())
                 ->method('getBundle')
                 ->willReturnMap($returnValues);
         }
 
         $kernel
-            ->expects($this->any())
             ->method('getBundles')
             ->willReturn([new ExtensionPresentBundle()]);
 
         $container = new Container();
         $kernel
-            ->expects($this->any())
             ->method('getContainer')
             ->willReturn($container);
 
@@ -138,9 +129,8 @@
 
     private function getBundle($path)
     {
-        $bundle = $this->createMock(BundleInterface::class);
+        $bundle = $this->createStub(BundleInterface::class);
         $bundle
-            ->expects($this->any())
             ->method('getPath')
             ->willReturn($path)
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationUpdateCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationUpdateCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationUpdateCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/TranslationUpdateCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -156,16 +156,16 @@
 
             if (preg_match('/\.[a-z]+$/', $transPath)) {
                 if (!realpath(\dirname($transPath))) {
-                    mkdir(\dirname($transPath), 0777, true);
+                    mkdir(\dirname($transPath), 0o777, true);
                 }
 
                 touch($transPath);
             } else {
-                mkdir($transPath, 0777, true);
+                mkdir($transPath, 0o777, true);
             }
         }
 
-        $command = $this->createMock(TranslationUpdateCommand::class);
+        $command = $this->createStub(TranslationUpdateCommand::class);
 
         $method = new \ReflectionMethod(TranslationUpdateCommand::class, 'filterDuplicateTransPaths');
 
@@ -194,37 +194,31 @@
 
     private function createCommandTester($extractedMessages = [], $loadedMessages = [], ?KernelInterface $kernel = null, array $transPaths = [], array $codePaths = []): CommandTester
     {
-        $translator = $this->createMock(Translator::class);
-        $translator
-            ->expects($this->any())
-            ->method('getFallbackLocales')
-            ->willReturn(['en']);
+        $translator = new Translator('fr');
+        $translator->setFallbackLocales(['en']);
 
-        $extractor = $this->createMock(ExtractorInterface::class);
+        $extractor = $this->createStub(ExtractorInterface::class);
         $extractor
-            ->expects($this->any())
             ->method('extract')
             ->willReturnCallback(
-                function ($path, $catalogue) use ($extractedMessages) {
+                static function ($path, $catalogue) use ($extractedMessages) {
                     foreach ($extractedMessages as $domain => $messages) {
                         $catalogue->add($messages, $domain);
                     }
                 }
             );
 
-        $loader = $this->createMock(TranslationReader::class);
+        $loader = $this->createStub(TranslationReader::class);
         $loader
-            ->expects($this->any())
             ->method('read')
             ->willReturnCallback(
-                function ($path, $catalogue) use ($loadedMessages) {
+                static function ($path, $catalogue) use ($loadedMessages) {
                     $catalogue->add($loadedMessages);
                 }
             );
 
-        $writer = $this->createMock(TranslationWriter::class);
+        $writer = $this->createStub(TranslationWriter::class);
         $writer
-            ->expects($this->any())
             ->method('getFormats')
             ->willReturn(
                 ['xlf', 'yml', 'yaml']
@@ -235,21 +229,18 @@
                 ['foo', $this->getBundle($this->translationDir)],
                 ['test', $this->getBundle('test')],
             ];
-            $kernel = $this->createMock(KernelInterface::class);
+            $kernel = $this->createStub(KernelInterface::class);
             $kernel
-                ->expects($this->any())
                 ->method('getBundle')
                 ->willReturnMap($returnValues);
         }
 
         $kernel
-            ->expects($this->any())
             ->method('getBundles')
             ->willReturn([]);
 
         $container = new Container();
         $kernel
-            ->expects($this->any())
             ->method('getContainer')
             ->willReturn($container);
 
@@ -263,9 +254,8 @@
 
     private function getBundle($path)
     {
-        $bundle = $this->createMock(BundleInterface::class);
+        $bundle = $this->createStub(BundleInterface::class);
         $bundle
-            ->expects($this->any())
             ->method('getPath')
             ->willReturn($path)
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/XliffLintCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/XliffLintCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/XliffLintCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/XliffLintCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,10 +35,10 @@
     {
         $command = new XliffLintCommand();
         $expected = <<<EOF
-Or find all files in a bundle:
+            Or find all files in a bundle:
 
-  <info>php %command.full_name% @AcmeDemoBundle</info>
-EOF;
+              <info>php %command.full_name% @AcmeDemoBundle</info>
+            EOF;
 
         $this->assertStringContainsString($expected, $command->getHelp());
     }
@@ -92,7 +92,6 @@
             ->willReturn(new HelperSet());
 
         $application
-            ->expects($this->any())
             ->method('getDefinition')
             ->willReturn(new InputDefinition());
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,10 +73,10 @@
     {
         $command = new YamlLintCommand();
         $expected = <<<EOF
-Or find all files in a bundle:
+            Or find all files in a bundle:
 
-  <info>php %command.full_name% @AcmeDemoBundle</info>
-EOF;
+              <info>php %command.full_name% @AcmeDemoBundle</info>
+            EOF;
 
         $this->assertStringContainsString($expected, $command->getHelp());
     }
@@ -140,7 +140,6 @@
             ->willReturn(new HelperSet());
 
         $application
-            ->expects($this->any())
             ->method('getDefinition')
             ->willReturn(new InputDefinition());
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/ApplicationTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/ApplicationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/ApplicationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/ApplicationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
 {
     public function testBundleInterfaceImplementation()
     {
-        $bundle = $this->createMock(BundleInterface::class);
+        $bundle = $this->createStub(BundleInterface::class);
 
         $kernel = $this->getKernel([$bundle], true);
 
@@ -131,11 +131,11 @@
         $container->register(ThrowingCommand::class, ThrowingCommand::class);
         $container->setParameter('console.command.ids', [ThrowingCommand::class => ThrowingCommand::class]);
 
-        $kernel = $this->createMock(KernelInterface::class);
+        $kernel = $this->createStub(KernelInterface::class);
         $kernel
             ->method('getBundles')
             ->willReturn([$this->createBundleMock(
-                [(new Command('fine'))->setCode(function (InputInterface $input, OutputInterface $output) { $output->write('fine'); })]
+                [(new Command('fine'))->setCode(static function (InputInterface $input, OutputInterface $output) { $output->write('fine'); })]
             )]);
         $kernel
             ->method('getContainer')
@@ -159,11 +159,11 @@
         $container = new ContainerBuilder();
         $container->register('event_dispatcher', EventDispatcher::class);
 
-        $kernel = $this->createMock(KernelInterface::class);
+        $kernel = $this->createStub(KernelInterface::class);
         $kernel
             ->method('getBundles')
             ->willReturn([$this->createBundleMock(
-                [(new Command(null))->setCode(function (InputInterface $input, OutputInterface $output) { $output->write('fine'); })]
+                [(new Command(null))->setCode(static function (InputInterface $input, OutputInterface $output) { $output->write('fine'); })]
             )]);
         $kernel
             ->method('getContainer')
@@ -193,7 +193,7 @@
         $kernel
             ->method('getBundles')
             ->willReturn([$this->createBundleMock(
-                [(new Command('fine'))->setCode(function (InputInterface $input, OutputInterface $output) { $output->write('fine'); })]
+                [(new Command('fine'))->setCode(static function (InputInterface $input, OutputInterface $output) { $output->write('fine'); })]
             )]);
         $kernel
             ->method('getContainer')
@@ -297,12 +297,10 @@
         $kernel = $this->createMock(KernelInterface::class);
         $kernel->expects($this->once())->method('boot');
         $kernel
-            ->expects($this->any())
             ->method('getBundles')
             ->willReturn($bundles)
         ;
         $kernel
-            ->expects($this->any())
             ->method('getContainer')
             ->willReturn($container)
         ;
@@ -316,7 +314,7 @@
         $bundle
             ->expects($this->once())
             ->method('registerCommands')
-            ->willReturnCallback(function (Application $application) use ($commands) {
+            ->willReturnCallback(static function (Application $application) use ($commands) {
                 $application->addCommands($commands);
             })
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/AbstractDescriptorTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/AbstractDescriptorTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/AbstractDescriptorTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/AbstractDescriptorTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -292,7 +292,7 @@
     {
         $data = [];
         foreach ($objects as $name => $object) {
-            $file = sprintf('%s.%s', trim($name, '.'), static::getFormat());
+            $file = \sprintf('%s.%s', trim($name, '.'), static::getFormat());
             $description = file_get_contents(__DIR__.'/../../Fixtures/Descriptor/'.$file);
             $data[] = [$object, $description, $file];
         }
@@ -313,7 +313,7 @@
         $data = [];
         foreach ($objects as $name => $object) {
             foreach ($variations as $suffix => $options) {
-                $file = sprintf('%s_%s.%s', trim($name, '.'), $suffix, static::getFormat());
+                $file = \sprintf('%s_%s.%s', trim($name, '.'), $suffix, static::getFormat());
                 $description = file_get_contents(__DIR__.'/../../Fixtures/Descriptor/'.$file);
                 $data[] = [$object, $description, $options, $file];
             }
@@ -332,7 +332,7 @@
         $data = [];
         foreach ($objects as $name => $object) {
             foreach ($variations as $suffix => $options) {
-                $file = sprintf('%s_%s.%s', trim($name, '.'), $suffix, static::getFormat());
+                $file = \sprintf('%s_%s.%s', trim($name, '.'), $suffix, static::getFormat());
                 $description = file_get_contents(__DIR__.'/../../Fixtures/Descriptor/'.$file);
                 $data[] = [$object, $description, $options, $file];
             }
@@ -353,7 +353,7 @@
         $data = [];
         foreach (ObjectsProvider::getContainerBuildersWithPriorityTags() as $name => $object) {
             foreach ($variations as $suffix => $options) {
-                $file = sprintf('%s_%s.%s', trim($name, '.'), $suffix, static::getFormat());
+                $file = \sprintf('%s_%s.%s', trim($name, '.'), $suffix, static::getFormat());
                 $description = file_get_contents(__DIR__.'/../../Fixtures/Descriptor/'.$file);
                 $data[] = [$object, $description, $options];
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/ObjectsProvider.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/ObjectsProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/ObjectsProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/ObjectsProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -255,7 +255,7 @@
         $eventDispatcher = new EventDispatcher();
 
         $eventDispatcher->addListener('event1', 'var_dump', 255);
-        $eventDispatcher->addListener('event1', fn () => 'Closure', -1);
+        $eventDispatcher->addListener('event1', static fn () => 'Closure', -1);
         $eventDispatcher->addListener('event2', new CallableClass());
 
         return ['event_dispatcher_1' => $eventDispatcher];
@@ -268,7 +268,7 @@
             'callable_2' => ['Symfony\\Bundle\\FrameworkBundle\\Tests\\Console\\Descriptor\\CallableClass', 'staticMethod'],
             'callable_3' => [new CallableClass(), 'method'],
             'callable_4' => 'Symfony\\Bundle\\FrameworkBundle\\Tests\\Console\\Descriptor\\CallableClass::staticMethod',
-            'callable_6' => fn () => 'Closure',
+            'callable_6' => static fn () => 'Closure',
             'callable_7' => new CallableClass(),
             'callable_from_callable' => (new CallableClass())(...),
         ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/TextDescriptorTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/TextDescriptorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/TextDescriptorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/TextDescriptorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
 
         foreach ($getDescribeData as $key => &$data) {
             $routeStub = $data[0];
-            $routeStub->setDefault('_controller', sprintf('%s::%s', MyController::class, '__invoke'));
+            $routeStub->setDefault('_controller', \sprintf('%s::%s', MyController::class, '__invoke'));
             $file = $data[2];
             $file = preg_replace('#(\..*?)$#', '_link$1', $file);
             $data = file_get_contents(__DIR__.'/../../Fixtures/Descriptor/'.$file);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/AbstractControllerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/AbstractControllerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/AbstractControllerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/AbstractControllerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,6 +48,7 @@
 use Symfony\Component\WebLink\HttpHeaderSerializer;
 use Symfony\Component\WebLink\Link;
 use Twig\Environment;
+use Twig\Loader\ArrayLoader;
 
 class AbstractControllerTest extends TestCase
 {
@@ -113,7 +114,7 @@
         $requestStack->push($request);
 
         $kernel = $this->createMock(HttpKernelInterface::class);
-        $kernel->expects($this->once())->method('handle')->willReturnCallback(fn (Request $request) => new Response($request->getRequestFormat().'--'.$request->getLocale()));
+        $kernel->expects($this->once())->method('handle')->willReturnCallback(static fn (Request $request) => new Response($request->getRequestFormat().'--'.$request->getLocale()));
 
         $container = new Container();
         $container->set('request_stack', $requestStack);
@@ -224,16 +225,47 @@
         $this->assertEquals('{}', $response->getContent());
     }
 
+    public function testJsonNull()
+    {
+        $controller = $this->createController();
+        $controller->setContainer(new Container());
+
+        $response = $controller->json(null);
+        $this->assertInstanceOf(JsonResponse::class, $response);
+        $this->assertSame('null', $response->getContent());
+    }
+
+    public function testJsonNullWithSerializer()
+    {
+        $container = new Container();
+
+        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer
+            ->expects($this->once())
+            ->method('serialize')
+            ->with(null, 'json', ['json_encode_options' => JsonResponse::DEFAULT_ENCODING_OPTIONS])
+            ->willReturn('null');
+
+        $container->set('serializer', $serializer);
+
+        $controller = $this->createController();
+        $controller->setContainer($container);
+
+        $response = $controller->json(null);
+        $this->assertInstanceOf(JsonResponse::class, $response);
+        $this->assertSame('null', $response->getContent());
+    }
+
     public function testFile()
     {
         $container = new Container();
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $container->set('http_kernel', $kernel);
 
         $controller = $this->createController();
         $controller->setContainer($container);
 
-        /* @var BinaryFileResponse $response */
+        /** @var BinaryFileResponse $response */
         $response = $controller->file(new File(__FILE__));
         $this->assertInstanceOf(BinaryFileResponse::class, $response);
         $this->assertSame(200, $response->getStatusCode());
@@ -248,7 +280,7 @@
     {
         $controller = $this->createController();
 
-        /* @var BinaryFileResponse $response */
+        /** @var BinaryFileResponse $response */
         $response = $controller->file(new File(__FILE__), null, ResponseHeaderBag::DISPOSITION_INLINE);
 
         $this->assertInstanceOf(BinaryFileResponse::class, $response);
@@ -264,7 +296,7 @@
     {
         $controller = $this->createController();
 
-        /* @var BinaryFileResponse $response */
+        /** @var BinaryFileResponse $response */
         $fileName = 'test.php';
         $response = $controller->file(new File(__FILE__), $fileName);
 
@@ -281,7 +313,7 @@
     {
         $controller = $this->createController();
 
-        /* @var BinaryFileResponse $response */
+        /** @var BinaryFileResponse $response */
         $fileName = 'test.php';
         $response = $controller->file(new File(__FILE__), $fileName, ResponseHeaderBag::DISPOSITION_INLINE);
 
@@ -298,7 +330,7 @@
     {
         $controller = $this->createController();
 
-        /* @var BinaryFileResponse $response */
+        /** @var BinaryFileResponse $response */
         $response = $controller->file(__FILE__);
 
         $this->assertInstanceOf(BinaryFileResponse::class, $response);
@@ -314,7 +346,7 @@
     {
         $controller = $this->createController();
 
-        /* @var BinaryFileResponse $response */
+        /** @var BinaryFileResponse $response */
         $response = $controller->file(__FILE__, 'test.php');
 
         $this->assertInstanceOf(BinaryFileResponse::class, $response);
@@ -370,7 +402,7 @@
      */
     public function testdenyAccessUnlessGrantedSetsAttributesAsArray($attribute, $exceptionAttributes)
     {
-        $authorizationChecker = $this->createMock(AuthorizationCheckerInterface::class);
+        $authorizationChecker = $this->createStub(AuthorizationCheckerInterface::class);
         $authorizationChecker->method('isGranted')->willReturn(false);
 
         $container = new Container();
@@ -526,10 +558,8 @@
 
     public function testStreamTwig()
     {
-        $twig = $this->createMock(Environment::class);
-
         $container = new Container();
-        $container->set('twig', $twig);
+        $container->set('twig', new Environment(new ArrayLoader()));
 
         $controller = $this->createController();
         $controller->setContainer($container);
@@ -560,8 +590,7 @@
     public function testAddFlash()
     {
         $flashBag = new FlashBag();
-        $session = $this->createMock(Session::class);
-        $session->expects($this->once())->method('getFlashBag')->willReturn($flashBag);
+        $session = new Session(null, null, $flashBag);
 
         $request = new Request();
         $request->setSession($session);
@@ -632,7 +661,7 @@
 
     public function testCreateForm()
     {
-        $config = $this->createMock(FormConfigInterface::class);
+        $config = $this->createStub(FormConfigInterface::class);
         $config->method('getInheritData')->willReturn(false);
         $config->method('getName')->willReturn('');
 
@@ -652,7 +681,7 @@
 
     public function testCreateFormBuilder()
     {
-        $formBuilder = $this->createMock(FormBuilderInterface::class);
+        $formBuilder = $this->createStub(FormBuilderInterface::class);
 
         $formFactory = $this->createMock(FormFactoryInterface::class);
         $formFactory->expects($this->once())->method('createBuilder')->willReturn($formBuilder);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,9 +33,9 @@
     {
         $resolver = $this->createControllerResolver();
         $request = Request::create('/');
-        $request->attributes->set('_controller', sprintf('%s::testAction', ContainerAwareController::class));
+        $request->attributes->set('_controller', \sprintf('%s::testAction', ContainerAwareController::class));
 
-        $this->expectDeprecation(sprintf('Since symfony/dependency-injection 6.4: Relying on "Symfony\Component\DependencyInjection\ContainerAwareInterface" to get the container in "%s" is deprecated, register the controller as a service and use dependency injection instead.', ContainerAwareController::class));
+        $this->expectDeprecation(\sprintf('Since symfony/dependency-injection 6.4: Relying on "Symfony\Component\DependencyInjection\ContainerAwareInterface" to get the container in "%s" is deprecated, register the controller as a service and use dependency injection instead.', ContainerAwareController::class));
         $controller = $resolver->getController($request);
 
         $this->assertInstanceOf(ContainerAwareController::class, $controller[0]);
@@ -52,7 +52,7 @@
         $request = Request::create('/');
         $request->attributes->set('_controller', ContainerAwareController::class);
 
-        $this->expectDeprecation(sprintf('Since symfony/dependency-injection 6.4: Relying on "Symfony\Component\DependencyInjection\ContainerAwareInterface" to get the container in "%s" is deprecated, register the controller as a service and use dependency injection instead.', ContainerAwareController::class));
+        $this->expectDeprecation(\sprintf('Since symfony/dependency-injection 6.4: Relying on "Symfony\Component\DependencyInjection\ContainerAwareInterface" to get the container in "%s" is deprecated, register the controller as a service and use dependency injection instead.', ContainerAwareController::class));
         $controller = $resolver->getController($request);
 
         $this->assertInstanceOf(ContainerAwareController::class, $controller);
@@ -76,7 +76,7 @@
         $request = Request::create('/');
         $request->attributes->set('_controller', TestAbstractController::class.'::testAction');
 
-        $this->expectDeprecation(sprintf('Since symfony/dependency-injection 6.4: Relying on "Symfony\Component\DependencyInjection\ContainerAwareInterface" to get the container in "%s" is deprecated, register the controller as a service and use dependency injection instead.', ContainerAwareController::class));
+        $this->expectDeprecation(\sprintf('Since symfony/dependency-injection 6.4: Relying on "Symfony\Component\DependencyInjection\ContainerAwareInterface" to get the container in "%s" is deprecated, register the controller as a service and use dependency injection instead.', ContainerAwareController::class));
         $this->assertSame([$controller, 'testAction'], $resolver->getController($request));
         $this->assertSame($container, $controller->getContainer());
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/TestAbstractController.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/TestAbstractController.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/TestAbstractController.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/TestAbstractController.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,11 +41,11 @@
                 continue;
             }
             if (!isset($expected[$id])) {
-                throw new \UnexpectedValueException(sprintf('Service "%s" is not expected, as declared by "%s::getSubscribedServices()".', $id, AbstractController::class));
+                throw new \UnexpectedValueException(\sprintf('Service "%s" is not expected, as declared by "%s::getSubscribedServices()".', $id, AbstractController::class));
             }
             $type = substr($expected[$id], 1);
             if (!$container->get($id) instanceof $type) {
-                throw new \UnexpectedValueException(sprintf('Service "%s" is expected to be an instance of "%s", as declared by "%s::getSubscribedServices()".', $id, $type, AbstractController::class));
+                throw new \UnexpectedValueException(\sprintf('Service "%s" is expected to be an instance of "%s", as declared by "%s::getSubscribedServices()".', $id, $type, AbstractController::class));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DataCollector/RouterDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DataCollector/RouterDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DataCollector/RouterDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DataCollector/RouterDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
 
     protected function createControllerEvent(Request $request): ControllerEvent
     {
-        $kernel = $this->createMock(KernelInterface::class);
+        $kernel = $this->createStub(KernelInterface::class);
 
         return new ControllerEvent($kernel, new RedirectController(), $request, null);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/ProfilerPassTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/ProfilerPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/ProfilerPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/ProfilerPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
 
     public static function provideValidCollectorWithTemplateUsingAutoconfigure(): \Generator
     {
-        yield [new class() implements TemplateAwareDataCollectorInterface {
+        yield [new class implements TemplateAwareDataCollectorInterface {
             public function collect(Request $request, Response $response, ?\Throwable $exception = null): void
             {
             }
@@ -86,7 +86,7 @@
             }
         }];
 
-        yield [new class() extends AbstractDataCollector {
+        yield [new class extends AbstractDataCollector {
             public function collect(Request $request, Response $response, ?\Throwable $exception = null): void
             {
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/UnusedTagsPassTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/UnusedTagsPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/UnusedTagsPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/UnusedTagsPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
 
         $pass->process($container);
 
-        $this->assertSame([sprintf('%s: Tag "kenrel.event_subscriber" was defined on service(s) "foo", "bar", but was never used. Did you mean "kernel.event_subscriber"?', UnusedTagsPass::class)], $container->getCompiler()->getLog());
+        $this->assertSame([\sprintf('%s: Tag "kenrel.event_subscriber" was defined on service(s) "foo", "bar", but was never used. Did you mean "kernel.event_subscriber"?', UnusedTagsPass::class)], $container->getCompiler()->getLog());
     }
 
     public function testMissingKnownTags()
@@ -44,7 +44,7 @@
     private function getKnownTags(): array
     {
         $tags = \Closure::bind(
-            fn () => UnusedTagsPass::KNOWN_TAGS,
+            static fn () => UnusedTagsPass::KNOWN_TAGS,
             null,
             UnusedTagsPass::class
         )();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -223,19 +223,19 @@
         $this->expectExceptionMessage($expectedMessage);
 
         $processor->processConfiguration($configuration, [
-                [
-                    'http_method_override' => false,
-                    'handle_all_throwables' => true,
-                    'php_errors' => ['log' => true],
-                    'assets' => $assetConfig,
-                ],
-            ]);
+            [
+                'http_method_override' => false,
+                'handle_all_throwables' => true,
+                'php_errors' => ['log' => true],
+                'assets' => $assetConfig,
+            ],
+        ]);
     }
 
     public static function provideInvalidAssetConfigurationTests(): iterable
     {
         // helper to turn config into embedded package config
-        $createPackageConfig = fn (array $packageConfig) => [
+        $createPackageConfig = static fn (array $packageConfig) => [
             'base_urls' => '//example.com',
             'version' => 1,
             'packages' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_bus_name_stamp.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_bus_name_stamp.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_bus_name_stamp.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_bus_name_stamp.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,24 @@
+<?php
+
+$container->loadFromExtension('framework', [
+    'annotations' => false,
+    'http_method_override' => false,
+    'handle_all_throwables' => true,
+    'php_errors' => ['log' => true],
+    'messenger' => [
+        'default_bus' => 'messenger.bus.commands',
+        'buses' => [
+            'messenger.bus.commands' => [
+                'default_middleware' => false,
+                'middleware' => [
+                    'add_bus_name_stamp_middleware',
+                    'send_message',
+                    'handle_message',
+                ],
+            ],
+            'messenger.bus.events' => [
+                'default_middleware' => true,
+            ],
+        ],
+    ],
+]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/serializer_attributes_enabled_annotations_enabled_globally.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/serializer_attributes_enabled_annotations_enabled_globally.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/serializer_attributes_enabled_annotations_enabled_globally.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/serializer_attributes_enabled_annotations_enabled_globally.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,8 @@
+<?php
+
+$container->loadFromExtension('framework', [
+    'annotations' => true,
+    'serializer' => [
+        'enable_attributes' => true,
+    ],
+]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/translator_providers.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/translator_providers.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/translator_providers.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/translator_providers.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,19 @@
+<?php
+
+$container->loadFromExtension('framework', [
+    'annotations' => false,
+    'http_method_override' => false,
+    'handle_all_throwables' => true,
+    'php_errors' => ['log' => true],
+    'enabled_locales' => ['es'],
+    'translator' => [
+        'providers' => [
+            'foo_provider' => [
+                'locales' => ['en', 'fr'],
+            ],
+            'bar_provider' => [
+                'locales' => ['de', 'pl'],
+            ]
+        ]
+    ],
+]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_base_config.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_base_config.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_base_config.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_base_config.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,36 @@
+<?php
+
+return function (Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator $container) {
+    $container->services()->alias('test_workflow', 'workflow.test_workflow')->public();
+    $container->extension('framework', [
+        'http_method_override' => false,
+        'handle_all_throwables' => true,
+        'annotations' => [
+            'enabled' => false,
+        ],
+        'php_errors' => [
+            'log' => true,
+        ],
+        'workflows' => [
+            'test_workflow' => [
+                'type' => 'workflow',
+                'supports' => [
+                    'Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase',
+                ],
+                'initial_marking' => ['start'],
+                'places' => [
+                    'start',
+                    'middle',
+                    'end',
+                    'alternative',
+                ],
+                'transitions' => [
+                    'base_transition' => [
+                        'from' => ['start'],
+                        'to' => ['end'],
+                    ],
+                ],
+            ],
+        ],
+    ]);
+};
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_override_config.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_override_config.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_override_config.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_override_config.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,35 @@
+<?php
+
+return function (Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator $container) {
+    $container->extension('framework', [
+        'http_method_override' => false,
+        'handle_all_throwables' => true,
+        'annotations' => [
+            'enabled' => false,
+        ],
+        'php_errors' => [
+            'log' => true,
+        ],
+        'workflows' => [
+            'test_workflow' => [
+                'type' => 'workflow',
+                'supports' => [
+                    'Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase',
+                ],
+                'initial_marking' => ['start'],
+                'places' => [
+                    'start',
+                    'middle',
+                    'end',
+                    'alternative',
+                ],
+                'transitions' => [
+                    'base_transition' => [
+                        'from' => ['middle'],
+                        'to' => ['alternative'],
+                    ],
+                ],
+            ],
+        ],
+    ]);
+};
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_with_complex_place_follow_by_simplistic_place_config.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_with_complex_place_follow_by_simplistic_place_config.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_with_complex_place_follow_by_simplistic_place_config.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_with_complex_place_follow_by_simplistic_place_config.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,55 @@
+<?php
+
+use Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase;
+
+$container->loadFromExtension('framework', [
+    'annotations' => false,
+    'http_method_override' => false,
+    'handle_all_throwables' => true,
+    'php_errors' => ['log' => true],
+    'workflows' => [
+        'article' => [
+            'type' => 'workflow',
+            'supports' => [
+                FrameworkExtensionTestCase::class,
+            ],
+            'initial_marking' => ['draft'],
+            'metadata' => [
+                'title' => 'article workflow',
+                'description' => 'workflow for articles',
+            ],
+            'places' => [
+                'draft' => [
+                    'metadata' => [
+                        'foo' => 'bar',
+                    ],
+                ],
+                'wait_for_journalist',
+                'approved_by_journalist' => [
+                    'name' => 'approved_by_journalist',
+                ],
+                'wait_for_spellchecker',
+                'approved_by_spellchecker',
+                'published',
+            ],
+            'transitions' => [
+                'request_review' => [
+                    'from' => 'draft',
+                    'to' => ['wait_for_journalist', 'wait_for_spellchecker'],
+                ],
+                'journalist_approval' => [
+                    'from' => 'wait_for_journalist',
+                    'to' => 'approved_by_journalist',
+                ],
+                'spellchecker_approval' => [
+                    'from' => 'wait_for_spellchecker',
+                    'to' => 'approved_by_spellchecker',
+                ],
+                'publish' => [
+                    'from' => ['approved_by_journalist', 'approved_by_spellchecker'],
+                    'to' => 'published',
+                ],
+            ],
+        ],
+    ],
+]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_with_simplistic_place_follow_by_complex_place_config.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_with_simplistic_place_follow_by_complex_place_config.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_with_simplistic_place_follow_by_complex_place_config.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/workflow_with_simplistic_place_follow_by_complex_place_config.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,55 @@
+<?php
+
+use Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase;
+
+$container->loadFromExtension('framework', [
+    'annotations' => false,
+    'http_method_override' => false,
+    'handle_all_throwables' => true,
+    'php_errors' => ['log' => true],
+    'workflows' => [
+        'article' => [
+            'type' => 'workflow',
+            'supports' => [
+                FrameworkExtensionTestCase::class,
+            ],
+            'initial_marking' => ['draft'],
+            'metadata' => [
+                'title' => 'article workflow',
+                'description' => 'workflow for articles',
+            ],
+            'places' => [
+                'draft',
+                'wait_for_journalist' => [
+                    'metadata' => [
+                        'description' => 'The article is awaiting approval of an authorized journalist.',
+                    ],
+                ],
+                'approved_by_journalist' => [
+                    'name' => 'approved_by_journalist',
+                ],
+                'wait_for_spellchecker',
+                'approved_by_spellchecker',
+                'published',
+            ],
+            'transitions' => [
+                'request_review' => [
+                    'from' => 'draft',
+                    'to' => ['wait_for_journalist', 'wait_for_spellchecker'],
+                ],
+                'journalist_approval' => [
+                    'from' => 'wait_for_journalist',
+                    'to' => 'approved_by_journalist',
+                ],
+                'spellchecker_approval' => [
+                    'from' => 'wait_for_spellchecker',
+                    'to' => 'approved_by_spellchecker',
+                ],
+                'publish' => [
+                    'from' => ['approved_by_journalist', 'approved_by_spellchecker'],
+                    'to' => 'published',
+                ],
+            ],
+        ],
+    ],
+]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_bus_name_stamp.xml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_bus_name_stamp.xml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_bus_name_stamp.xml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_bus_name_stamp.xml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<container xmlns="http://symfony.com/schema/dic/services"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:framework="http://symfony.com/schema/dic/symfony"
+    xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
+        http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
+
+    <framework:config http-method-override="false" handle-all-throwables="true">
+        <framework:annotations enabled="false" />
+        <framework:php-errors log="true" />
+        <framework:messenger default-bus="messenger.bus.commands">
+            <framework:bus name="messenger.bus.commands" default-middleware="false">
+                <framework:middleware id="add_bus_name_stamp_middleware" />
+                <framework:middleware id="send_message" />
+                <framework:middleware id="handle_message" />
+            </framework:bus>
+            <framework:bus name="messenger.bus.events" default-middleware="true" />
+        </framework:messenger>
+    </framework:config>
+</container>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/serializer_attributes_enabled_annotations_enabled_globally.xml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/serializer_attributes_enabled_annotations_enabled_globally.xml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/serializer_attributes_enabled_annotations_enabled_globally.xml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/serializer_attributes_enabled_annotations_enabled_globally.xml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,10 @@
+<?xml version="1.0" ?>
+<container xmlns="http://symfony.com/schema/dic/services"
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xmlns:framework="http://symfony.com/schema/dic/symfony">
+
+    <framework:config>
+        <framework:annotations enabled="true" />
+        <framework:serializer enable-attributes="true" />
+    </framework:config>
+</container>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/translator_providers.xml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/translator_providers.xml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/translator_providers.xml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/translator_providers.xml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,24 @@
+<?xml version="1.0" ?>
+
+<container xmlns="http://symfony.com/schema/dic/services"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:framework="http://symfony.com/schema/dic/symfony"
+    xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
+                        http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
+
+    <framework:config secret="s3cr3t" http-method-override="false" handle-all-throwables="true">
+        <framework:annotations enabled="false" />
+        <framework:php-errors log="true" />
+        <framework:enabled-locale>es</framework:enabled-locale>
+        <framework:translator enabled="true">
+            <framework:provider name="foo_provider">
+                <framework:locale>en</framework:locale>
+                <framework:locale>fr</framework:locale>
+            </framework:provider>
+            <framework:provider name="bar_provider">
+                <framework:locale>de</framework:locale>
+                <framework:locale>pl</framework:locale>
+            </framework:provider>
+        </framework:translator>
+    </framework:config>
+</container>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_base_config.xml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_base_config.xml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_base_config.xml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_base_config.xml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<container xmlns="http://symfony.com/schema/dic/services"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:framework="http://symfony.com/schema/dic/symfony"
+    xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
+                        http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
+
+    <services>
+        <service id="test_workflow" alias="workflow.test_workflow" public="true" />
+    </services>
+    <framework:config http-method-override="false" handle-all-throwables="true">
+        <framework:annotations enabled="false" />
+        <framework:php-errors log="true" />
+        <framework:workflow name="test_workflow" type="workflow">
+            <framework:initial-marking>start</framework:initial-marking>
+            <framework:support>Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase</framework:support>
+            <framework:place>start</framework:place>
+            <framework:place>middle</framework:place>
+            <framework:place>end</framework:place>
+            <framework:place>alternative</framework:place>
+            <framework:transition key="base_transition">
+                <framework:from>start</framework:from>
+                <framework:to>end</framework:to>
+            </framework:transition>
+        </framework:workflow>
+    </framework:config>
+</container>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_override_config.xml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_override_config.xml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_override_config.xml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_override_config.xml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<container xmlns="http://symfony.com/schema/dic/services"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:framework="http://symfony.com/schema/dic/symfony"
+    xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
+                        http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
+
+    <framework:config http-method-override="false" handle-all-throwables="true">
+        <framework:annotations enabled="false" />
+        <framework:php-errors log="true" />
+        <framework:workflow name="test_workflow" type="workflow">
+            <framework:transition key="base_transition">
+                <framework:from>middle</framework:from>
+                <framework:to>alternative</framework:to>
+            </framework:transition>
+        </framework:workflow>
+    </framework:config>
+</container>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_with_complex_place_follow_by_simplistic_place_config.xml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_with_complex_place_follow_by_simplistic_place_config.xml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_with_complex_place_follow_by_simplistic_place_config.xml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_with_complex_place_follow_by_simplistic_place_config.xml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<container xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xmlns:framework="http://symfony.com/schema/dic/symfony"
+           xmlns="http://symfony.com/schema/dic/services"
+           xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
+        http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd"
+>
+    <framework:config http-method-override="false" handle-all-throwables="true">
+        <framework:annotations enabled="false"/>
+        <framework:php-errors log="true"/>
+        <framework:workflow name="article" type="workflow">
+            <framework:audit-trail enabled="true"/>
+            <framework:initial-marking>draft</framework:initial-marking>
+            <framework:support>Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase</framework:support>
+            <framework:place name="draft">
+                <framework:metadata>
+                    <framework:foo>bar</framework:foo>
+                </framework:metadata>
+            </framework:place>
+            <framework:place>wait_for_journalist</framework:place>
+            <framework:place name="approved_by_journalist"/>
+            <framework:place>wait_for_spellchecker</framework:place>
+            <framework:place>approved_by_spellchecker</framework:place>
+            <framework:place>published</framework:place>
+            <framework:transition name="request_review">
+                <framework:from>draft</framework:from>
+                <framework:to>wait_for_journalist</framework:to>
+                <framework:to>wait_for_spellchecker</framework:to>
+            </framework:transition>
+            <framework:transition name="journalist_approval">
+                <framework:from>wait_for_journalist</framework:from>
+                <framework:to>approved_by_journalist</framework:to>
+            </framework:transition>
+            <framework:transition name="spellchecker_approval">
+                <framework:from>wait_for_spellchecker</framework:from>
+                <framework:to>approved_by_spellchecker</framework:to>
+            </framework:transition>
+            <framework:transition name="publish">
+                <framework:from>approved_by_journalist</framework:from>
+                <framework:from>approved_by_spellchecker</framework:from>
+                <framework:to>published</framework:to>
+            </framework:transition>
+            <framework:metadata>
+                <framework:title>article workflow</framework:title>
+                <framework:description>workflow for articles</framework:description>
+            </framework:metadata>
+        </framework:workflow>
+    </framework:config>
+</container>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_with_simplistic_place_follow_by_complex_place_config.xml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_with_simplistic_place_follow_by_complex_place_config.xml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_with_simplistic_place_follow_by_complex_place_config.xml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/workflow_with_simplistic_place_follow_by_complex_place_config.xml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<container xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xmlns:framework="http://symfony.com/schema/dic/symfony"
+           xmlns="http://symfony.com/schema/dic/services"
+           xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
+        http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd"
+>
+    <framework:config http-method-override="false" handle-all-throwables="true">
+        <framework:annotations enabled="false"/>
+        <framework:php-errors log="true"/>
+        <framework:workflow name="article" type="workflow">
+            <framework:audit-trail enabled="true"/>
+            <framework:initial-marking>draft</framework:initial-marking>
+            <framework:support>Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase</framework:support>
+            <framework:place>draft</framework:place>
+            <framework:place name="wait_for_journalist">
+                <framework:metadata>
+                    <framework:description>The article is awaiting approval of an authorized journalist.</framework:description>
+                </framework:metadata>
+            </framework:place>
+            <framework:place name="approved_by_journalist"/>
+            <framework:place>wait_for_spellchecker</framework:place>
+            <framework:place>approved_by_spellchecker</framework:place>
+            <framework:place>published</framework:place>
+            <framework:transition name="request_review">
+                <framework:from>draft</framework:from>
+                <framework:to>wait_for_journalist</framework:to>
+                <framework:to>wait_for_spellchecker</framework:to>
+            </framework:transition>
+            <framework:transition name="journalist_approval">
+                <framework:from>wait_for_journalist</framework:from>
+                <framework:to>approved_by_journalist</framework:to>
+            </framework:transition>
+            <framework:transition name="spellchecker_approval">
+                <framework:from>wait_for_spellchecker</framework:from>
+                <framework:to>approved_by_spellchecker</framework:to>
+            </framework:transition>
+            <framework:transition name="publish">
+                <framework:from>approved_by_journalist</framework:from>
+                <framework:from>approved_by_spellchecker</framework:from>
+                <framework:to>published</framework:to>
+            </framework:transition>
+            <framework:metadata>
+                <framework:title>article workflow</framework:title>
+                <framework:description>workflow for articles</framework:description>
+            </framework:metadata>
+        </framework:workflow>
+    </framework:config>
+</container>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_bus_name_stamp.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_bus_name_stamp.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_bus_name_stamp.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_bus_name_stamp.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,17 @@
+framework:
+    annotations: false
+    http_method_override: false
+    handle_all_throwables: true
+    php_errors:
+        log: true
+    messenger:
+        default_bus: messenger.bus.commands
+        buses:
+            messenger.bus.commands:
+                default_middleware: false
+                middleware:
+                    - "add_bus_name_stamp_middleware"
+                    - "send_message"
+                    - "handle_message"
+            messenger.bus.events:
+                default_middleware: true
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/serializer_attributes_enabled_annotations_enabled_globally.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/serializer_attributes_enabled_annotations_enabled_globally.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/serializer_attributes_enabled_annotations_enabled_globally.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/serializer_attributes_enabled_annotations_enabled_globally.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,4 @@
+framework:
+    annotations: true
+    serializer:
+        enable_attributes: true
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/translator_providers.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/translator_providers.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/translator_providers.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/translator_providers.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,13 @@
+framework:
+    annotations: false
+    http_method_override: false
+    handle_all_throwables: true
+    enabled_locales: [ 'es' ]
+    php_errors:
+        log: true
+    translator:
+        providers:
+            foo_provider:
+                locales: [ 'en', 'fr' ]
+            bar_provider:
+                locales: [ 'de', 'pl' ]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_base_config.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_base_config.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_base_config.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_base_config.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,26 @@
+services:
+    test_workflow:
+        alias: workflow.test_workflow
+        public: true
+framework:
+    http_method_override: false
+    handle_all_throwables: true
+    annotations:
+        enabled: false
+    php_errors:
+        log: true
+    workflows:
+        test_workflow:
+            type: workflow
+            supports:
+                - Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase
+            initial_marking: [start]
+            places:
+                - start
+                - middle
+                - end
+                - alternative
+            transitions:
+                base_transition:
+                    from: [start]
+                    to: [end]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_override_config.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_override_config.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_override_config.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_override_config.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,13 @@
+framework:
+    http_method_override: false
+    handle_all_throwables: true
+    annotations:
+        enabled: false
+    php_errors:
+        log: true
+    workflows:
+        test_workflow:
+            transitions:
+                base_transition:
+                    from: [middle]
+                    to: [alternative]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_complex_place_follow_by_simplistic_place_config_with_alternative_syntax.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_complex_place_follow_by_simplistic_place_config_with_alternative_syntax.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_complex_place_follow_by_simplistic_place_config_with_alternative_syntax.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_complex_place_follow_by_simplistic_place_config_with_alternative_syntax.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,37 @@
+framework:
+    annotations: false
+    http_method_override: false
+    handle_all_throwables: true
+    php_errors:
+        log: true
+    workflows:
+        article:
+            type: workflow
+            supports:
+                - Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase
+            initial_marking: [ draft ]
+            metadata:
+                title: article workflow
+                description: workflow for articles
+            places:
+                - draft:
+                      metadata:
+                          foo: bar
+                - wait_for_journalist
+                - approved_by_journalist
+                - wait_for_spellchecker
+                - approved_by_spellchecker
+                - published
+            transitions:
+                request_review:
+                    from: [ draft ]
+                    to: [ wait_for_journalist, wait_for_spellchecker ]
+                journalist_approval:
+                    from: [ wait_for_journalist ]
+                    to: [ approved_by_journalist ]
+                spellchecker_approval:
+                    from: [ wait_for_spellchecker ]
+                    to: [ approved_by_spellchecker ]
+                publish:
+                    from: [ approved_by_journalist, approved_by_spellchecker ]
+                    to: [ published ]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_complex_place_follow_by_simplistic_place_config.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_complex_place_follow_by_simplistic_place_config.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_complex_place_follow_by_simplistic_place_config.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_complex_place_follow_by_simplistic_place_config.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,37 @@
+framework:
+    annotations: false
+    http_method_override: false
+    handle_all_throwables: true
+    php_errors:
+        log: true
+    workflows:
+        article:
+            type: workflow
+            supports:
+                - Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase
+            initial_marking: [ draft ]
+            metadata:
+                title: article workflow
+                description: workflow for articles
+            places:
+                draft:
+                    metadata:
+                        foo: bar
+                wait_for_journalist: ~
+                approved_by_journalist: ~
+                wait_for_spellchecker: ~
+                approved_by_spellchecker: ~
+                published: ~
+            transitions:
+                request_review:
+                    from: [ draft ]
+                    to: [ wait_for_journalist, wait_for_spellchecker ]
+                journalist_approval:
+                    from: [ wait_for_journalist ]
+                    to: [ approved_by_journalist ]
+                spellchecker_approval:
+                    from: [ wait_for_spellchecker ]
+                    to: [ approved_by_spellchecker ]
+                publish:
+                    from: [ approved_by_journalist, approved_by_spellchecker ]
+                    to: [ published ]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_simplistic_place_follow_by_complex_place_config_with_alternative_syntax.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_simplistic_place_follow_by_complex_place_config_with_alternative_syntax.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_simplistic_place_follow_by_complex_place_config_with_alternative_syntax.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_simplistic_place_follow_by_complex_place_config_with_alternative_syntax.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,37 @@
+framework:
+    annotations: false
+    http_method_override: false
+    handle_all_throwables: true
+    php_errors:
+        log: true
+    workflows:
+        article:
+            type: workflow
+            supports:
+                - Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase
+            initial_marking: [ draft ]
+            metadata:
+                title: article workflow
+                description: workflow for articles
+            places:
+                - draft
+                -   wait_for_journalist:
+                        metadata:
+                            description: The article is awaiting approval of an authorized journalist.
+                - approved_by_journalist
+                - wait_for_spellchecker
+                - approved_by_spellchecker
+                - published
+            transitions:
+                request_review:
+                    from: [ draft ]
+                    to: [ wait_for_journalist, wait_for_spellchecker ]
+                journalist_approval:
+                    from: [ wait_for_journalist ]
+                    to: [ approved_by_journalist ]
+                spellchecker_approval:
+                    from: [ wait_for_spellchecker ]
+                    to: [ approved_by_spellchecker ]
+                publish:
+                    from: [ approved_by_journalist, approved_by_spellchecker ]
+                    to: [ published ]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_simplistic_place_follow_by_complex_place_config.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_simplistic_place_follow_by_complex_place_config.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_simplistic_place_follow_by_complex_place_config.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/workflow_with_simplistic_place_follow_by_complex_place_config.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,37 @@
+framework:
+    annotations: false
+    http_method_override: false
+    handle_all_throwables: true
+    php_errors:
+        log: true
+    workflows:
+        article:
+            type: workflow
+            supports:
+                - Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\FrameworkExtensionTestCase
+            initial_marking: [ draft ]
+            metadata:
+                title: article workflow
+                description: workflow for articles
+            places:
+                draft: ~
+                wait_for_journalist:
+                    metadata:
+                        description: The article is awaiting approval of an authorized journalist.
+                approved_by_journalist: ~
+                wait_for_spellchecker: ~
+                approved_by_spellchecker: ~
+                published: ~
+            transitions:
+                request_review:
+                    from: [ draft ]
+                    to: [ wait_for_journalist, wait_for_spellchecker ]
+                journalist_approval:
+                    from: [ wait_for_journalist ]
+                    to: [ approved_by_journalist ]
+                spellchecker_approval:
+                    from: [ wait_for_spellchecker ]
+                    to: [ approved_by_spellchecker ]
+                publish:
+                    from: [ approved_by_journalist, approved_by_spellchecker ]
+                    to: [ published ]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,6 +31,7 @@
 use Symfony\Component\Cache\Adapter\TagAwareAdapter;
 use Symfony\Component\Cache\DependencyInjection\CachePoolPass;
 use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
+use Symfony\Component\Console\DataCollector\CommandDataCollector;
 use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument;
 use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument;
 use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument;
@@ -67,6 +68,7 @@
 use Symfony\Component\Notifier\TexterInterface;
 use Symfony\Component\PropertyAccess\PropertyAccessor;
 use Symfony\Component\Security\Core\AuthenticationEvents;
+use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
 use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
 use Symfony\Component\Serializer\Mapping\Loader\XmlFileLoader;
 use Symfony\Component\Serializer\Mapping\Loader\YamlFileLoader;
@@ -170,6 +172,22 @@
         $this->assertSame(ArrayAdapter::class, $cache->getClass(), 'ArrayAdapter should be used in debug mode');
     }
 
+    public function testRequestAndSessionValueResolversRunBeforeEntityValueResolver()
+    {
+        $container = $this->createContainerFromFile('full');
+
+        // DoctrineBundle ships EntityValueResolver at priority 110. Lower priorities trigger an
+        // entity-manager bootstrap on every Request/Session controller argument before the
+        // dedicated resolver is asked, costing tens of ms per request.
+        $entityValueResolverPriority = 110;
+
+        $requestTag = $container->getDefinition('argument_resolver.request')->getTag('controller.argument_value_resolver');
+        $this->assertGreaterThan($entityValueResolverPriority, $requestTag[0]['priority']);
+
+        $sessionTag = $container->getDefinition('argument_resolver.session')->getTag('controller.argument_value_resolver');
+        $this->assertGreaterThan($entityValueResolverPriority, $sessionTag[0]['priority']);
+    }
+
     public function testCsrfProtectionNeedsSessionToBeEnabled()
     {
         $this->expectException(\LogicException::class);
@@ -266,6 +284,10 @@
 
         $this->assertTrue($container->hasDefinition('profiler'), '->registerProfilerConfiguration() loads profiling.xml');
         $this->assertTrue($container->hasDefinition('data_collector.config'), '->registerProfilerConfiguration() loads collectors.xml');
+
+        if (class_exists(CommandDataCollector::class)) {
+            $this->assertTrue($container->hasDefinition('.data_collector.command'));
+        }
     }
 
     public function testDisabledProfiler()
@@ -276,6 +298,26 @@
         $this->assertFalse($container->hasDefinition('data_collector.config'), '->registerProfilerConfiguration() does not load collectors.xml');
     }
 
+    public function testProfilerWithoutConsole()
+    {
+        $extension = new class extends FrameworkExtension {
+            protected function hasConsole(): bool
+            {
+                return false;
+            }
+
+            public function getAlias(): string
+            {
+                return 'framework';
+            }
+        };
+
+        $container = $this->createContainerFromFile('profiler', [], true, false, $extension);
+        $container->compile();
+
+        $this->assertFalse($container->hasDefinition('.data_collector.command'));
+    }
+
     public function testProfilerCollectSerializerDataEnabled()
     {
         $container = $this->createContainerFromFile('profiler_collect_serializer_data');
@@ -376,7 +418,7 @@
         $transitionsMetadata = $metadataStoreDefinition->getArgument(2);
         $this->assertSame(\SplObjectStorage::class, $transitionsMetadata->getClass());
         $transitionsMetadataCall = $transitionsMetadata->getMethodCalls()[0];
-        $this->assertSame('attach', $transitionsMetadataCall[0]);
+        $this->assertSame('offsetSet', $transitionsMetadataCall[0]);
         $params = $transitionsMetadataCall[1];
         $this->assertCount(2, $params);
         $this->assertInstanceOf(Reference::class, $params[0]);
@@ -414,6 +456,20 @@
         $this->createContainerFromFile('workflow_without_support_and_support_strategy');
     }
 
+    public function testWorkflowWithSimplisticPlaceFollowedByComplexPlace()
+    {
+        $container = $this->createContainerFromFile('workflow_with_simplistic_place_follow_by_complex_place_config');
+
+        $this->assertTrue($container->hasDefinition('workflow.article'), 'Workflow is parsed and registered as a service');
+    }
+
+    public function testWorkflowWithComplexPlaceFollowedBySimplisticPlace()
+    {
+        $container = $this->createContainerFromFile('workflow_with_complex_place_follow_by_simplistic_place_config');
+
+        $this->assertTrue($container->hasDefinition('workflow.article'), 'Workflow is parsed and registered as a service');
+    }
+
     public function testWorkflowMultipleTransitionsWithSameName()
     {
         $container = $this->createContainerFromFile('workflow_with_multiple_transitions_with_same_name');
@@ -547,6 +603,27 @@
         $this->assertSame([WorkflowEvents::LEAVE, WorkflowEvents::COMPLETED], $eventsToDispatch);
     }
 
+    public function testWorkflowTransitionsPerformNoDeepMerging()
+    {
+        $container = $this->createContainer(['kernel.charset' => 'UTF-8', 'kernel.secret' => 'secret', 'kernel.runtime_environment' => 'test']);
+        $container->registerExtension(new FrameworkExtension());
+
+        $this->loadFromFile($container, 'workflow_base_config');
+
+        $this->loadFromFile($container, 'workflow_override_config');
+
+        $container->compile();
+
+        $transitions = [];
+
+        foreach ($container->getDefinition('test_workflow')->getArgument(0)->getArgument(1) as $transitionDefinition) {
+            $transitions[] = $transitionDefinition->getArguments();
+        }
+
+        $this->assertCount(1, $transitions);
+        $this->assertSame(['base_transition', ['middle'], ['alternative']], $transitions[0]);
+    }
+
     public function testEnabledPhpErrorsConfig()
     {
         $container = $this->createContainerFromFile('php_errors_enabled');
@@ -782,7 +859,7 @@
         $container = $this->createContainerFromFile('messenger_disabled');
         $messengerDefinitions = array_filter(
             $container->getDefinitions(),
-            fn ($name) => str_starts_with($name, 'messenger.'),
+            static fn ($name) => str_starts_with($name, 'messenger.'),
             \ARRAY_FILTER_USE_KEY
         );
 
@@ -861,7 +938,7 @@
     public function testMessengerWithoutConsole()
     {
         $extension = $this->createPartialMock(FrameworkExtension::class, ['hasConsole', 'getAlias']);
-        $extension->method('hasConsole')->willReturn(false);
+        $extension->expects($this->atLeastOnce())->method('hasConsole')->willReturn(false);
         $extension->method('getAlias')->willReturn((new FrameworkExtension())->getAlias());
 
         $container = $this->createContainerFromFile('messenger', [], true, false, $extension);
@@ -904,7 +981,7 @@
             'transport_3' => new Reference('messenger.transport.failure_transport_3'),
         ];
 
-        $failureTransportsReferences = array_map(function (ServiceClosureArgument $serviceClosureArgument) {
+        $failureTransportsReferences = array_map(static function (ServiceClosureArgument $serviceClosureArgument) {
             $values = $serviceClosureArgument->getValues();
 
             return array_shift($values);
@@ -945,7 +1022,7 @@
             'transport_3' => new Reference('messenger.transport.failure_transport_3'),
         ];
 
-        $failureTransportsReferences = array_map(function (ServiceClosureArgument $serviceClosureArgument) {
+        $failureTransportsReferences = array_map(static function (ServiceClosureArgument $serviceClosureArgument) {
             $values = $serviceClosureArgument->getValues();
 
             return array_shift($values);
@@ -1019,7 +1096,7 @@
             'schedule' => new Reference('messenger.transport.failed'),
         ];
 
-        $failureTransportsReferences = array_map(function (ServiceClosureArgument $serviceClosureArgument) {
+        $failureTransportsReferences = array_map(static function (ServiceClosureArgument $serviceClosureArgument) {
             $values = $serviceClosureArgument->getValues();
 
             return array_shift($values);
@@ -1102,6 +1179,28 @@
         $this->assertSame('messenger.bus.commands', (string) $container->getAlias('messenger.default_bus'));
     }
 
+    public function testMessengerWithAddBusNameStampMiddleware()
+    {
+        $container = $this->createContainerFromFile('messenger_bus_name_stamp');
+
+        $this->assertTrue($container->has('messenger.bus.commands'));
+        $this->assertEquals([
+            ['id' => 'add_bus_name_stamp_middleware', 'arguments' => ['messenger.bus.commands']],
+            ['id' => 'send_message', 'arguments' => []],
+            ['id' => 'handle_message', 'arguments' => []],
+        ], $container->getParameter('messenger.bus.commands.middleware'));
+        $this->assertTrue($container->has('messenger.bus.events'));
+        $this->assertSame([], $container->getDefinition('messenger.bus.events')->getArgument(0));
+        $this->assertEquals([
+            ['id' => 'add_bus_name_stamp_middleware', 'arguments' => ['messenger.bus.events']],
+            ['id' => 'reject_redelivered_message_middleware'],
+            ['id' => 'dispatch_after_current_bus'],
+            ['id' => 'failed_message_processing_middleware'],
+            ['id' => 'send_message', 'arguments' => [true]],
+            ['id' => 'handle_message', 'arguments' => [false]],
+        ], $container->getParameter('messenger.bus.events.middleware'));
+    }
+
     public function testMessengerMiddlewareFactoryErroneousFormat()
     {
         $this->expectException(\InvalidArgumentException::class);
@@ -1197,7 +1296,7 @@
 
         $nonExistingDirectories = array_filter(
             $options['scanned_directories'],
-            fn ($directory) => !file_exists($directory)
+            static fn ($directory) => !file_exists($directory)
         );
 
         $this->assertNotEmpty($nonExistingDirectories, 'FrameworkBundle should pass non existing directories to Translator');
@@ -1205,6 +1304,13 @@
         $this->assertSame('Fixtures/translations', $options['cache_vary']['scanned_directories'][3]);
     }
 
+    public function testTranslatorProvidersMergedEnabledLocales()
+    {
+        $container = $this->createContainerFromFile('translator_providers');
+        self::assertSame(['es', 'en', 'fr', 'de', 'pl'], $container->getDefinition('console.command.translation_pull')->getArgument(5));
+        self::assertSame(['es', 'en', 'fr', 'de', 'pl'], $container->getDefinition('console.command.translation_push')->getArgument(3));
+    }
+
     public function testTranslatorMultipleFallbacks()
     {
         $container = $this->createContainerFromFile('translator_fallbacks');
@@ -1654,6 +1760,23 @@
         $this->assertFalse($container->hasDefinition('serializer.mapping.cache_class_metadata_factory'));
     }
 
+    /**
+     * @group legacy
+     */
+    public function testSerializerAttributesEnabledAnnotationsEnabledGlobally()
+    {
+        $container = $this->createContainerFromFile('serializer_attributes_enabled_annotations_enabled_globally');
+        $cacheWarmer = $container->getDefinition('serializer.mapping.cache_warmer');
+        $loaders = $cacheWarmer->getArgument(0);
+        $attributeLoader = $loaders[0];
+
+        if (class_exists(AnnotationLoader::class)) {
+            $this->assertEquals([new Reference('annotation_reader', ContainerInterface::NULL_ON_INVALID_REFERENCE)], $attributeLoader->getArguments());
+        } else {
+            $this->assertSame([], $attributeLoader->getArguments());
+        }
+    }
+
     public function testSerializerMapping()
     {
         $container = $this->createContainerFromFile('serializer_mapping_without_annotations', ['kernel.bundles_metadata' => ['TestBundle' => ['namespace' => 'Symfony\\Bundle\\FrameworkBundle\\Tests', 'path' => __DIR__.'/Fixtures/TestBundle']]]);
@@ -1812,24 +1935,24 @@
             'cacheRedisTagAwareBaz2',
         ];
         foreach ($argNames as $argumentName) {
-            $aliasesForArguments[] = sprintf('%s $%s', TagAwareCacheInterface::class, $argumentName);
-            $aliasesForArguments[] = sprintf('%s $%s', CacheInterface::class, $argumentName);
-            $aliasesForArguments[] = sprintf('%s $%s', CacheItemPoolInterface::class, $argumentName);
+            $aliasesForArguments[] = \sprintf('%s $%s', TagAwareCacheInterface::class, $argumentName);
+            $aliasesForArguments[] = \sprintf('%s $%s', CacheInterface::class, $argumentName);
+            $aliasesForArguments[] = \sprintf('%s $%s', CacheItemPoolInterface::class, $argumentName);
         }
 
         foreach ($aliasesForArguments as $aliasForArgumentStr) {
             $aliasForArgument = $container->getAlias($aliasForArgumentStr);
-            $this->assertNotNull($aliasForArgument, sprintf("No alias found for '%s'", $aliasForArgumentStr));
+            $this->assertNotNull($aliasForArgument, \sprintf("No alias found for '%s'", $aliasForArgumentStr));
 
             $def = $container->getDefinition((string) $aliasForArgument);
-            $this->assertInstanceOf(ChildDefinition::class, $def, sprintf("No definition found for '%s'", $aliasForArgumentStr));
+            $this->assertInstanceOf(ChildDefinition::class, $def, \sprintf("No definition found for '%s'", $aliasForArgumentStr));
 
             $defParent = $container->getDefinition($def->getParent());
             if ($defParent instanceof ChildDefinition) {
                 $defParent = $container->getDefinition($defParent->getParent());
             }
 
-            $this->assertSame(RedisTagAwareAdapter::class, $defParent->getClass(), sprintf("'%s' is not %s", $aliasForArgumentStr, RedisTagAwareAdapter::class));
+            $this->assertSame(RedisTagAwareAdapter::class, $defParent->getClass(), \sprintf("'%s' is not %s", $aliasForArgumentStr, RedisTagAwareAdapter::class));
         }
     }
 
@@ -2212,7 +2335,7 @@
 
         foreach ((new Finder())->in(\dirname(__DIR__, 4).'/Component/Notifier/Bridge')->directories()->depth(0)->exclude('Mercure') as $bridgeDirectory) {
             $transportFactoryName = strtolower(preg_replace('/(.)([A-Z])/', '$1-$2', $bridgeDirectory->getFilename()));
-            $this->assertTrue($container->hasDefinition('notifier.transport_factory.'.$transportFactoryName), sprintf('Did you forget to add the "%s" TransportFactory to the $classToServices array in FrameworkExtension?', $bridgeDirectory->getFilename()));
+            $this->assertTrue($container->hasDefinition('notifier.transport_factory.'.$transportFactoryName), \sprintf('Did you forget to add the "%s" TransportFactory to the $classToServices array in FrameworkExtension?', $bridgeDirectory->getFilename()));
         }
     }
 
@@ -2235,7 +2358,7 @@
         $this->assertSame('kernel.locale_aware', $switcherDef->getArgument(1)->getTag());
         $this->assertEquals(new Reference('router.request_context', ContainerBuilder::IGNORE_ON_INVALID_REFERENCE), $switcherDef->getArgument(2));
 
-        $localeAwareServices = array_map(fn (Reference $r) => (string) $r, $switcherDef->getArgument(1)->getValues());
+        $localeAwareServices = array_map(static fn (Reference $r) => (string) $r, $switcherDef->getArgument(1)->getValues());
 
         $this->assertNotContains('translation.locale_switcher', $localeAwareServices);
     }
@@ -2550,14 +2673,14 @@
 
     private function assertCachePoolServiceDefinitionIsCreated(ContainerBuilder $container, $id, $adapter, $defaultLifetime)
     {
-        $this->assertTrue($container->has($id), sprintf('Service definition "%s" for cache pool of type "%s" is registered', $id, $adapter));
+        $this->assertTrue($container->has($id), \sprintf('Service definition "%s" for cache pool of type "%s" is registered', $id, $adapter));
 
         $poolDefinition = $container->getDefinition($id);
 
-        $this->assertInstanceOf(ChildDefinition::class, $poolDefinition, sprintf('Cache pool "%s" is based on an abstract cache pool.', $id));
+        $this->assertInstanceOf(ChildDefinition::class, $poolDefinition, \sprintf('Cache pool "%s" is based on an abstract cache pool.', $id));
 
-        $this->assertTrue($poolDefinition->hasTag('cache.pool'), sprintf('Service definition "%s" is tagged with the "cache.pool" tag.', $id));
-        $this->assertFalse($poolDefinition->isAbstract(), sprintf('Service definition "%s" is not abstract.', $id));
+        $this->assertTrue($poolDefinition->hasTag('cache.pool'), \sprintf('Service definition "%s" is tagged with the "cache.pool" tag.', $id));
+        $this->assertFalse($poolDefinition->isAbstract(), \sprintf('Service definition "%s" is not abstract.', $id));
 
         $tag = $poolDefinition->getTag('cache.pool');
         $this->assertArrayHasKey('default_lifetime', $tag[0], 'The default lifetime is stored as an attribute of the "cache.pool" tag.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/PhpFrameworkExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/PhpFrameworkExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/PhpFrameworkExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/PhpFrameworkExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,7 @@
 use Symfony\Component\DependencyInjection\Exception\LogicException;
 use Symfony\Component\DependencyInjection\Exception\OutOfBoundsException;
 use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
+use Symfony\Component\Validator\Constraints\Email;
 use Symfony\Component\Workflow\Exception\InvalidDefinitionException;
 
 class PhpFrameworkExtensionTest extends FrameworkExtensionTestCase
@@ -30,7 +31,7 @@
     public function testAssetsCannotHavePathAndUrl()
     {
         $this->expectException(\LogicException::class);
-        $this->createContainerFromClosure(function ($container) {
+        $this->createContainerFromClosure(static function ($container) {
             $container->loadFromExtension('framework', [
                 'annotations' => false,
                 'http_method_override' => false,
@@ -47,7 +48,7 @@
     public function testAssetPackageCannotHavePathAndUrl()
     {
         $this->expectException(\LogicException::class);
-        $this->createContainerFromClosure(function ($container) {
+        $this->createContainerFromClosure(static function ($container) {
             $container->loadFromExtension('framework', [
                 'annotations' => false,
                 'http_method_override' => false,
@@ -69,7 +70,7 @@
     {
         $this->expectException(InvalidConfigurationException::class);
         $this->expectExceptionMessage('The "places" option must be an array in workflow configuration.');
-        $this->createContainerFromClosure(function ($container) {
+        $this->createContainerFromClosure(static function ($container) {
             $container->loadFromExtension('framework', [
                 'workflows' => [
                     'article' => [
@@ -84,7 +85,7 @@
     {
         $this->expectException(InvalidConfigurationException::class);
         $this->expectExceptionMessage('The "transitions" option must be an array in workflow configuration.');
-        $this->createContainerFromClosure(function ($container) {
+        $this->createContainerFromClosure(static function ($container) {
             $container->loadFromExtension('framework', [
                 'workflows' => [
                     'article' => [
@@ -99,7 +100,7 @@
     {
         $this->expectException(InvalidDefinitionException::class);
         $this->expectExceptionMessage('A transition from a place/state must have an unique name. Multiple transitions named "a_to_b" from place/state "a" were found on StateMachine "article".');
-        $this->createContainerFromClosure(function ($container) {
+        $this->createContainerFromClosure(static function ($container) {
             $container->loadFromExtension('framework', [
                 'annotations' => false,
                 'http_method_override' => false,
@@ -130,7 +131,7 @@
 
     public function testWorkflowDefaultMarkingStoreDefinition()
     {
-        $container = $this->createContainerFromClosure(function ($container) {
+        $container = $this->createContainerFromClosure(static function ($container) {
             $container->loadFromExtension('framework', [
                 'annotations' => false,
                 'http_method_override' => false,
@@ -191,7 +192,7 @@
     public function testRateLimiterWithLockFactory()
     {
         try {
-            $this->createContainerFromClosure(function (ContainerBuilder $container) {
+            $this->createContainerFromClosure(static function (ContainerBuilder $container) {
                 $container->loadFromExtension('framework', [
                     'annotations' => false,
                     'http_method_override' => false,
@@ -209,7 +210,7 @@
             $this->assertEquals('Rate limiter "with_lock" requires the Lock component to be configured.', $e->getMessage());
         }
 
-        $container = $this->createContainerFromClosure(function (ContainerBuilder $container) {
+        $container = $this->createContainerFromClosure(static function (ContainerBuilder $container) {
             $container->loadFromExtension('framework', [
                 'annotations' => false,
                 'http_method_override' => false,
@@ -228,7 +229,7 @@
 
     public function testRateLimiterLockFactory()
     {
-        $container = $this->createContainerFromClosure(function (ContainerBuilder $container) {
+        $container = $this->createContainerFromClosure(static function (ContainerBuilder $container) {
             $container->loadFromExtension('framework', [
                 'annotations' => false,
                 'http_method_override' => false,
@@ -245,4 +246,32 @@
 
         $container->getDefinition('limiter.without_lock')->getArgument(2);
     }
+
+    /**
+     * @dataProvider emailValidationModeProvider
+     */
+    public function testValidatorEmailValidationMode(string $mode)
+    {
+        $this->expectNotToPerformAssertions();
+
+        $this->createContainerFromClosure(static function (ContainerBuilder $container) use ($mode) {
+            $container->loadFromExtension('framework', [
+                'annotations' => false,
+                'http_method_override' => false,
+                'handle_all_throwables' => true,
+                'php_errors' => ['log' => true],
+                'validation' => [
+                    'email_validation_mode' => $mode,
+                ],
+            ]);
+        });
+    }
+
+    public static function emailValidationModeProvider()
+    {
+        foreach (Email::VALIDATION_MODES as $mode) {
+            yield [$mode];
+        }
+        yield ['loose'];
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/YamlFrameworkExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/YamlFrameworkExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/YamlFrameworkExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/YamlFrameworkExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection;
 
+use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
 use Symfony\Component\Config\FileLocator;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
@@ -22,4 +23,18 @@
         $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/Fixtures/yml'));
         $loader->load($file.'.yml');
     }
+
+    public function testWorkflowWithSimplisticPlaceFollowedByComplexPlaceWithAlternativeSyntax()
+    {
+        $this->expectException(InvalidConfigurationException::class);
+        $this->expectExceptionMessage('Unrecognized option "wait_for_journalist" under "framework.workflows.workflows.article.places.1". Available options are "metadata", "name".');
+        $this->createContainerFromFile('workflow_with_simplistic_place_follow_by_complex_place_config_with_alternative_syntax');
+    }
+
+    public function testWorkflowWithComplexPlaceFollowedBySimplisticPlaceWithAlternativeSyntax()
+    {
+        $this->expectException(InvalidConfigurationException::class);
+        $this->expectExceptionMessage('Unrecognized option "draft" under "framework.workflows.workflows.article.places.0". Available options are "metadata", "name".');
+        $this->createContainerFromFile('workflow_with_complex_place_follow_by_simplistic_place_config_with_alternative_syntax');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ApiAttributesTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ApiAttributesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ApiAttributesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ApiAttributesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Bundle\FrameworkBundle\Tests\Functional;
 
+use Symfony\Component\DomCrawler\Crawler;
 use Symfony\Component\HttpFoundation\JsonResponse;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
@@ -89,15 +90,14 @@
     /**
      * @dataProvider mapRequestPayloadProvider
      */
-    public function testMapRequestPayload(string $format, array $parameters, ?string $content, string $expectedResponse, int $expectedStatusCode)
+    public function testMapRequestPayload(string $format, array $parameters, ?string $content, callable $responseAssertion, int $expectedStatusCode)
     {
         $client = self::createClient(['test_case' => 'ApiAttributesTest']);
 
-        [$acceptHeader, $assertion] = [
-            'html' => ['text/html', self::assertStringContainsString(...)],
-            'json' => ['application/json', self::assertJsonStringEqualsJsonString(...)],
-            'xml' => ['text/xml', self::assertXmlStringEqualsXmlString(...)],
-            'dummy' => ['application/dummy', self::assertStringContainsString(...)],
+        $acceptHeader = [
+            'json' => 'application/json',
+            'xml' => 'text/xml',
+            'dummy' => 'application/dummy',
         ][$format];
 
         $client->request(
@@ -111,12 +111,7 @@
 
         $response = $client->getResponse();
         $responseContent = $response->getContent();
-
-        if ($expectedResponse) {
-            $assertion($expectedResponse, $responseContent);
-        } else {
-            self::assertSame('', $responseContent);
-        }
+        $responseAssertion($responseContent);
 
         self::assertSame($expectedStatusCode, $response->getStatusCode());
     }
@@ -127,7 +122,9 @@
             'format' => 'json',
             'parameters' => [],
             'content' => '',
-            'expectedResponse' => '',
+            'responseAssertion' => static function (string $response) {
+                self::assertSame('', $response);
+            },
             'expectedStatusCode' => 204,
         ];
 
@@ -140,12 +137,16 @@
                     "approved": false
                 }
                 JSON,
-            'expectedResponse' => <<<'JSON'
-                {
-                    "comment": "Hello everyone!",
-                    "approved": false
-                }
-                JSON,
+            'responseAssertion' => static function (string $response) {
+                self::assertJsonStringEqualsJsonString(<<<'JSON'
+                    {
+                        "comment": "Hello everyone!",
+                        "approved": false
+                    }
+                    JSON,
+                    $response
+                );
+            },
             'expectedStatusCode' => 200,
         ];
 
@@ -158,14 +159,18 @@
                     "approved": false,
                 }
                 JSON,
-            'expectedResponse' => <<<'JSON'
-                {
-                    "type": "https:\/\/tools.ietf.org\/html\/rfc2616#section-10",
-                    "title": "An error occurred",
-                    "status": 400,
-                    "detail": "Bad Request"
-                }
-                JSON,
+            'responseAssertion' => static function (string $response) {
+                self::assertJsonStringEqualsJsonString(<<<'JSON'
+                    {
+                        "type": "https:\/\/tools.ietf.org\/html\/rfc2616#section-10",
+                        "title": "An error occurred",
+                        "status": 400,
+                        "detail": "Bad Request"
+                    }
+                    JSON,
+                    $response
+                );
+            },
             'expectedStatusCode' => 400,
         ];
 
@@ -173,7 +178,9 @@
             'format' => 'dummy',
             'parameters' => [],
             'content' => 'Hello',
-            'expectedResponse' => '415 Unsupported Media Type',
+            'responseAssertion' => static function (string $response) {
+                self::assertStringContainsString('415 Unsupported Media Type', $response);
+            },
             'expectedStatusCode' => 415,
         ];
 
@@ -186,12 +193,16 @@
                     <approved>true</approved>
                 </request>
                 XML,
-            'expectedResponse' => <<<'XML'
-                <response>
-                    <comment>Hello everyone!</comment>
-                    <approved>1</approved>
-                </response>
-                XML,
+            'responseAssertion' => static function (string $response) {
+                self::assertXmlStringEqualsXmlString(<<<'XML'
+                    <response>
+                        <comment>Hello everyone!</comment>
+                        <approved>1</approved>
+                    </response>
+                    XML,
+                    $response
+                );
+            },
             'expectedStatusCode' => 200,
         ];
 
@@ -204,24 +215,28 @@
                     "approved": "string instead of bool"
                 }
                 JSON,
-            'expectedResponse' => <<<'JSON'
-                {
-                    "type": "https:\/\/symfony.com\/errors\/validation",
-                    "title": "Validation Failed",
-                    "status": 422,
-                    "detail": "approved: This value should be of type bool.",
-                    "violations": [
-                        {
-                            "propertyPath": "approved",
-                            "title": "This value should be of type bool.",
-                            "template": "This value should be of type {{ type }}.",
-                            "parameters": {
-                                "{{ type }}": "bool"
+            'responseAssertion' => static function (string $response) {
+                self::assertJsonStringEqualsJsonString(<<<'JSON'
+                    {
+                        "type": "https:\/\/symfony.com\/errors\/validation",
+                        "title": "Validation Failed",
+                        "status": 422,
+                        "detail": "approved: This value should be of type bool.",
+                        "violations": [
+                            {
+                                "propertyPath": "approved",
+                                "title": "This value should be of type bool.",
+                                "template": "This value should be of type {{ type }}.",
+                                "parameters": {
+                                    "{{ type }}": "bool"
+                                }
                             }
-                        }
-                    ]
-                }
-                JSON,
+                        ]
+                    }
+                    JSON,
+                    $response
+                );
+            },
             'expectedStatusCode' => 422,
         ];
 
@@ -234,36 +249,20 @@
                     "approved": true
                 }
                 JSON,
-            'expectedResponse' => <<<'JSON'
-                {
-                    "type": "https:\/\/symfony.com\/errors\/validation",
-                    "title": "Validation Failed",
-                    "status": 422,
-                    "detail": "comment: This value should not be blank.\ncomment: This value is too short. It should have 10 characters or more.",
-                    "violations": [
-                        {
-                            "propertyPath": "comment",
-                            "title": "This value should not be blank.",
-                            "template": "This value should not be blank.",
-                            "parameters": {
-                                "{{ value }}": "\"\""
-                            },
-                            "type": "urn:uuid:c1051bb4-d103-4f74-8988-acbcafc7fdc3"
-                        },
-                        {
-                            "propertyPath": "comment",
-                            "title": "This value is too short. It should have 10 characters or more.",
-                            "template": "This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.",
-                            "parameters": {
-                                "{{ value }}": "\"\"",
-                                "{{ limit }}": "10",
-                                "{{ value_length }}": "0"
-                            },
-                            "type": "urn:uuid:9ff3fdc4-b214-49db-8718-39c315e33d45"
-                        }
-                    ]
-                }
-                JSON,
+            'responseAssertion' => static function (string $response) {
+                self::assertJson($response);
+
+                $json = json_decode($response, true);
+
+                self::assertSame('https://symfony.com/errors/validation', $json['type'] ?? null);
+                self::assertSame('Validation Failed', $json['title'] ?? null);
+                self::assertSame(422, $json['status'] ?? null);
+                self::assertSame("comment: This value should not be blank.\ncomment: This value is too short. It should have 10 characters or more.", $json['detail'] ?? null);
+                self::assertIsArray($json['violations'] ?? null);
+                self::assertCount(2, $json['violations']);
+                self::assertSame('urn:uuid:c1051bb4-d103-4f74-8988-acbcafc7fdc3', $json['violations'][0]['type'] ?? null);
+                self::assertSame('urn:uuid:9ff3fdc4-b214-49db-8718-39c315e33d45', $json['violations'][1]['type'] ?? null);
+            },
             'expectedStatusCode' => 422,
         ];
 
@@ -276,26 +275,16 @@
                     <approved>false</approved>
                 </request>
                 XML,
-            'expectedResponse' => <<<'XML'
-                <?xml version="1.0"?>
-                <response>
-                    <type>https://symfony.com/errors/validation</type>
-                    <title>Validation Failed</title>
-                    <status>422</status>
-                    <detail>comment: This value is too short. It should have 10 characters or more.</detail>
-                    <violations>
-                        <propertyPath>comment</propertyPath>
-                        <title>This value is too short. It should have 10 characters or more.</title>
-                        <template>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</template>
-                        <parameters>
-                            <item key="{{ value }}">"H"</item>
-                            <item key="{{ limit }}">10</item>
-                            <item key="{{ value_length }}">1</item>
-                        </parameters>
-                        <type>urn:uuid:9ff3fdc4-b214-49db-8718-39c315e33d45</type>
-                    </violations>
-                </response>
-                XML,
+            'responseAssertion' => static function (string $response) {
+                $crawler = new Crawler($response);
+
+                self::assertSame('https://symfony.com/errors/validation', $crawler->filterXPath('response/type')->text());
+                self::assertSame('Validation Failed', $crawler->filterXPath('response/title')->text());
+                self::assertSame('422', $crawler->filterXPath('response/status')->text());
+                self::assertSame('comment: This value is too short. It should have 10 characters or more.', $crawler->filterXPath('response/detail')->text());
+                self::assertCount(1, $crawler->filterXPath('response/violations'));
+                self::assertSame('urn:uuid:9ff3fdc4-b214-49db-8718-39c315e33d45', $crawler->filterXPath('response/violations/type')->text());
+            },
             'expectedStatusCode' => 422,
         ];
 
@@ -303,12 +292,16 @@
             'format' => 'json',
             'input' => ['comment' => 'Hello everyone!', 'approved' => '0'],
             'content' => null,
-            'expectedResponse' => <<<'JSON'
-                {
-                    "comment": "Hello everyone!",
-                    "approved": false
-                }
-                JSON,
+            'responseAssertion' => static function (string $response) {
+                self::assertJsonStringEqualsJsonString(<<<'JSON'
+                    {
+                        "comment": "Hello everyone!",
+                        "approved": false
+                    }
+                    JSON,
+                    $response
+                );
+            },
             'expectedStatusCode' => 200,
         ];
 
@@ -316,36 +309,20 @@
             'format' => 'json',
             'input' => ['comment' => '', 'approved' => '1'],
             'content' => null,
-            'expectedResponse' => <<<'JSON'
-                {
-                    "type": "https:\/\/symfony.com\/errors\/validation",
-                    "title": "Validation Failed",
-                    "status": 422,
-                    "detail": "comment: This value should not be blank.\ncomment: This value is too short. It should have 10 characters or more.",
-                    "violations": [
-                        {
-                            "propertyPath": "comment",
-                            "title": "This value should not be blank.",
-                            "template": "This value should not be blank.",
-                            "parameters": {
-                                "{{ value }}": "\"\""
-                            },
-                            "type": "urn:uuid:c1051bb4-d103-4f74-8988-acbcafc7fdc3"
-                        },
-                        {
-                            "propertyPath": "comment",
-                            "title": "This value is too short. It should have 10 characters or more.",
-                            "template": "This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.",
-                            "parameters": {
-                                "{{ value }}": "\"\"",
-                                "{{ limit }}": "10",
-                                "{{ value_length }}": "0"
-                            },
-                            "type": "urn:uuid:9ff3fdc4-b214-49db-8718-39c315e33d45"
-                        }
-                    ]
-                }
-                JSON,
+            'responseAssertion' => static function (string $response) {
+                self::assertJson($response);
+
+                $json = json_decode($response, true);
+
+                self::assertSame('https://symfony.com/errors/validation', $json['type'] ?? null);
+                self::assertSame('Validation Failed', $json['title'] ?? null);
+                self::assertSame(422, $json['status'] ?? null);
+                self::assertSame("comment: This value should not be blank.\ncomment: This value is too short. It should have 10 characters or more.", $json['detail'] ?? null);
+                self::assertIsArray($json['violations'] ?? null);
+                self::assertCount(2, $json['violations']);
+                self::assertSame('urn:uuid:c1051bb4-d103-4f74-8988-acbcafc7fdc3', $json['violations'][0]['type'] ?? null);
+                self::assertSame('urn:uuid:9ff3fdc4-b214-49db-8718-39c315e33d45', $json['violations'][1]['type'] ?? null);
+            },
             'expectedStatusCode' => 422,
         ];
     }
@@ -379,11 +356,11 @@
 
         return new Response(
             <<<XML
-            <response>
-                <comment>{$body->comment}</comment>
-                <approved>{$body->approved}</approved>
-            </response>
-            XML
+                <response>
+                    <comment>{$body->comment}</comment>
+                    <approved>{$body->approved}</approved>
+                </response>
+                XML
         );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AppKernel.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AppKernel.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AppKernel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AppKernel.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,14 +35,14 @@
     public function __construct($varDir, $testCase, $rootConfig, $environment, $debug)
     {
         if (!is_dir(__DIR__.'/'.$testCase)) {
-            throw new \InvalidArgumentException(sprintf('The test case "%s" does not exist.', $testCase));
+            throw new \InvalidArgumentException(\sprintf('The test case "%s" does not exist.', $testCase));
         }
         $this->varDir = $varDir;
         $this->testCase = $testCase;
 
         $fs = new Filesystem();
         if (!$fs->isAbsolutePath($rootConfig) && !file_exists($rootConfig = __DIR__.'/'.$testCase.'/'.$rootConfig)) {
-            throw new \InvalidArgumentException(sprintf('The root config "%s" does not exist.', $rootConfig));
+            throw new \InvalidArgumentException(\sprintf('The root config "%s" does not exist.', $rootConfig));
         }
         $this->rootConfig = $rootConfig;
 
@@ -57,7 +57,7 @@
     public function registerBundles(): iterable
     {
         if (!file_exists($filename = $this->getProjectDir().'/'.$this->testCase.'/bundles.php')) {
-            throw new \RuntimeException(sprintf('The bundles file "%s" does not exist.', $filename));
+            throw new \RuntimeException(\sprintf('The bundles file "%s" does not exist.', $filename));
         }
 
         return include $filename;
@@ -89,14 +89,16 @@
         $container->registerExtension(new TestDumpExtension());
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
-        return ['varDir', 'testCase', 'rootConfig', 'environment', 'debug'];
+        return [$this->varDir, $this->testCase, $this->rootConfig, $this->environment, $this->debug];
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
-        foreach ($this as $k => $v) {
+        [$this->varDir, $this->testCase, $this->rootConfig, $this->environment, $this->debug] = $data;
+
+        foreach ($this as $v) {
             if (\is_object($v)) {
                 throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
             }
@@ -117,7 +119,10 @@
     {
         $treeBuilder = new TreeBuilder('foo');
         $rootNode = $treeBuilder->getRootNode();
-        $rootNode->children()->scalarNode('foo')->defaultValue('bar')->end()->end();
+        $rootNode->children()
+            ->scalarNode('foo')->defaultValue('bar')->end()
+            ->scalarNode('vault_test_secret')->defaultValue('')->end()
+        ->end();
 
         return $treeBuilder;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ConfigDump/config.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ConfigDump/config.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ConfigDump/config.yml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ConfigDump/config.yml	2026-05-20 10:56:49.000000000 +0200
@@ -10,8 +10,22 @@
         storage_factory_id: session.storage.factory.native
         cookie_httponly: '%env(bool:COOKIE_HTTPONLY)%'
 
+foo:
+    vault_test_secret: '%env(TEST_VAULT_SECRET)%'
+
 parameters:
     env(LOCALE): en
     env(COOKIE_HTTPONLY): '1'
+    env(TEST_VAULT_SECRET): ''
     secret: test
     default_config_test_foo: bar
+
+services:
+    Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\EnvVarLoader\StatefulEnvVarLoader:
+        tags:
+            - container.env_var_loader
+
+    test.vault_env_var_primer:
+        class: Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\EnvVarLoader\VaultEnvVarPrimer
+        arguments: ['%env(TEST_VAULT_SECRET)%']
+        public: true
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/no_dump.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/no_dump.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/no_dump.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/no_dump.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,5 @@
+imports:
+    - { resource: config.yml }
+
+parameters:
+    debug.container.dump: false
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/HttpClient/services.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/HttpClient/services.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/HttpClient/services.yml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/HttpClient/services.yml	2026-05-20 10:56:49.000000000 +0200
@@ -5,5 +5,8 @@
     Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller\HttpClientController:
         tags: ['controller.service_arguments']
 
+    Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller\HttpClientMockingController:
+        tags: ['controller.service_arguments']
+
     Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Tests\MockClientCallback:
         class: Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Tests\MockClientCallback
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/bundles.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/bundles.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/bundles.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/bundles.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,18 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Bundle\FrameworkBundle\FrameworkBundle;
+use Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\TestBundle;
+
+return [
+    new FrameworkBundle(),
+    new TestBundle(),
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/config.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/config.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/config.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/config.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,3 @@
+imports:
+    - { resource: ../config/default.yml }
+    - { resource: services.yml }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/services.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/services.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/services.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/MimeType/services.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,6 @@
+services:
+    _defaults:
+        public: true
+
+    Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\MimeType\CustomMimeTypeGuesser:
+        tags: ['mime.mime_type_guesser']
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/HttpClientMockingController.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/HttpClientMockingController.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/HttpClientMockingController.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/HttpClientMockingController.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,25 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller;
+
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Contracts\HttpClient\HttpClientInterface;
+
+class HttpClientMockingController
+{
+    public function __invoke(HttpClientInterface $httpClient): Response
+    {
+        $response = $httpClient->request('GET', 'https://example.com/');
+
+        return new Response($response->getContent());
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/SessionController.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/SessionController.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/SessionController.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/SessionController.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,13 +35,13 @@
             // remember name
             $session->set('name', $name);
 
-            return new Response(sprintf('<html><body>Hello %s, nice to meet you.</body></html>', $name));
+            return new Response(\sprintf('<html><body>Hello %s, nice to meet you.</body></html>', $name));
         }
 
         // existing session
         $name = $session->get('name');
 
-        return new Response(sprintf('<html><body>Welcome back %s, nice to meet you.</body></html>', $name));
+        return new Response(\sprintf('<html><body>Welcome back %s, nice to meet you.</body></html>', $name));
     }
 
     public function cacheableAction()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/EnvVarLoader/StatefulEnvVarLoader.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/EnvVarLoader/StatefulEnvVarLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/EnvVarLoader/StatefulEnvVarLoader.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/EnvVarLoader/StatefulEnvVarLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,40 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\EnvVarLoader;
+
+use Symfony\Component\DependencyInjection\EnvVarLoaderInterface;
+
+/**
+ * Simulates a vault-like env var loader whose secrets are populated via static
+ * state. This allows tests to control what the loader returns and to verify
+ * that the running container's already-initialized processor (with its cached
+ * env var state) is used by ConfigDebugCommand instead of a freshly-built one.
+ */
+class StatefulEnvVarLoader implements EnvVarLoaderInterface
+{
+    private static array $envVars = [];
+
+    public static function setEnvVar(string $name, string $value): void
+    {
+        self::$envVars[$name] = $value;
+    }
+
+    public static function reset(): void
+    {
+        self::$envVars = [];
+    }
+
+    public function loadEnvVars(): array
+    {
+        return self::$envVars;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/EnvVarLoader/VaultEnvVarPrimer.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/EnvVarLoader/VaultEnvVarPrimer.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/EnvVarLoader/VaultEnvVarPrimer.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/EnvVarLoader/VaultEnvVarPrimer.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,25 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\EnvVarLoader;
+
+/**
+ * A simple service that holds a resolved env var value.
+ * Used in tests to force the application container's env var processor
+ * to resolve and cache a vault-provided env var before the static loader
+ * state is cleared.
+ */
+class VaultEnvVarPrimer
+{
+    public function __construct(public readonly string $value)
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/MimeType/CustomMimeTypeGuesser.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/MimeType/CustomMimeTypeGuesser.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/MimeType/CustomMimeTypeGuesser.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/MimeType/CustomMimeTypeGuesser.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,29 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\MimeType;
+
+use Symfony\Component\Mime\MimeTypeGuesserInterface;
+
+class CustomMimeTypeGuesser implements MimeTypeGuesserInterface
+{
+    public const FAKE_MIME_TYPE = 'application/x-test-custom-guesser';
+
+    public function isGuesserSupported(): bool
+    {
+        return true;
+    }
+
+    public function guessMimeType(string $path): ?string
+    {
+        return self::FAKE_MIME_TYPE;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Resources/config/routing.yml symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Resources/config/routing.yml
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Resources/config/routing.yml	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Resources/config/routing.yml	2026-05-20 10:56:49.000000000 +0200
@@ -65,6 +65,10 @@
     path:     /http_client_call
     defaults: { _controller: Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller\HttpClientController::index }
 
+http_client_mock:
+    path:     /http_client_mock
+    defaults: { _controller: Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller\HttpClientMockingController }
+
 uid:
     resource: "../../Controller/UidController.php"
     type: "attribute"
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
     {
         parent::build($container);
 
-        /** @var $extension DependencyInjection\TestExtension */
+        /** @var DependencyInjection\TestExtension $extension */
         $extension = $container->getExtension('test');
 
         if (!$container->getParameterBag() instanceof FrozenParameterBag) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CacheAttributeListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CacheAttributeListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CacheAttributeListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CacheAttributeListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
     {
         $client = self::createClient(['test_case' => 'CacheAttributeListener']);
 
-        $client->request('GET', '/', server: ['HTTP_IF_NONE_MATCH' => sprintf('"%s"', hash('sha256', '12345'))]);
+        $client->request('GET', '/', server: ['HTTP_IF_NONE_MATCH' => \sprintf('"%s"', hash('sha256', '12345'))]);
 
         self::assertTrue($client->getResponse()->isRedirect('http://localhost/login'));
     }
@@ -44,7 +44,7 @@
         $client = self::createClient(['test_case' => 'CacheAttributeListener']);
 
         $client->loginUser(new InMemoryUser('the-username', 'the-password', ['ROLE_USER']));
-        $client->request('GET', '/', server: ['HTTP_IF_NONE_MATCH' => sprintf('"%s"', hash('sha256', '12345'))]);
+        $client->request('GET', '/', server: ['HTTP_IF_NONE_MATCH' => \sprintf('"%s"', hash('sha256', '12345'))]);
 
         $response = $client->getResponse();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ConfigDebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ConfigDebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ConfigDebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ConfigDebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand;
 use Symfony\Bundle\FrameworkBundle\Console\Application;
+use Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\EnvVarLoader\StatefulEnvVarLoader;
 use Symfony\Component\Console\Exception\InvalidArgumentException;
 use Symfony\Component\Console\Input\ArrayInput;
 use Symfony\Component\Console\Output\NullOutput;
@@ -141,7 +142,7 @@
         $this->assertStringContainsString('locale: en', $tester->getDisplay());
         $this->assertStringContainsString('secret: test', $tester->getDisplay());
         $this->assertStringContainsString('cookie_httponly: true', $tester->getDisplay());
-        $this->assertStringContainsString('ide: '.$debug ? ($_ENV['SYMFONY_IDE'] ?? $_SERVER['SYMFONY_IDE'] ?? 'null') : 'null', $tester->getDisplay());
+        $this->assertStringContainsString('ide: '.($debug ? ($_ENV['SYMFONY_IDE'] ?? $_SERVER['SYMFONY_IDE'] ?? 'null') : 'null'), $tester->getDisplay());
     }
 
     /**
@@ -155,7 +156,7 @@
 
         $this->assertSame(0, $ret, 'Returns 0 in case of success');
         $kernelCacheDir = self::$kernel->getContainer()->getParameter('kernel.cache_dir');
-        $this->assertStringContainsString(sprintf("dsn: 'file:%s/profiler'", $kernelCacheDir), $tester->getDisplay());
+        $this->assertStringContainsString(\sprintf("dsn: 'file:%s/profiler'", $kernelCacheDir), $tester->getDisplay());
     }
 
     /**
@@ -264,6 +265,44 @@
         yield 'option --format, debug' => [true, ['--format', ''], ['yaml', 'json']];
     }
 
+    public function testDumpPathDeepIntoScalar()
+    {
+        $tester = $this->createCommandTester(true);
+
+        $tester->execute(['name' => 'framework', 'path' => 'secret.foo']);
+
+        $this->assertSame(1, $tester->getStatusCode());
+        $this->assertStringContainsString('Unable to find configuration for "framework.secret.foo"', $tester->getDisplay());
+    }
+
+    public function testEnvVarsResolvedFromRunningContainerProcessor()
+    {
+        // This test reproduces the scenario where an env var is only resolvable via a
+        // loader (e.g. SodiumVault) that is already initialized in the running container
+        // but cannot be re-instantiated inside the freshly built container (e.g. because
+        // its secrets dir or decryption key depends on another vault secret – a circular
+        // dependency). StatefulEnvVarLoader simulates such a vault: after its state is
+        // cleared, new instances return nothing, but the already-running processor
+        // retains the value in its $loadedVars cache.
+        StatefulEnvVarLoader::setEnvVar('TEST_VAULT_SECRET', 'from_loader');
+
+        $application = $this->createApplication(true);
+
+        // Accessing the primer service forces the running container's EnvVarProcessor
+        // to call StatefulEnvVarLoader::loadEnvVars() and cache the result.
+        static::$kernel->getContainer()->get('test.vault_env_var_primer');
+
+        // Clear the loader's static state: from this point on, new StatefulEnvVarLoader
+        // instances (as would be created by the freshly compiled container) return [].
+        StatefulEnvVarLoader::reset();
+
+        $tester = new CommandTester($application->find('debug:config'));
+        $ret = $tester->execute(['name' => 'foo', '--resolve-env' => true]);
+
+        $this->assertSame(0, $ret);
+        $this->assertStringContainsString('vault_test_secret: from_loader', $tester->getDisplay());
+    }
+
     private function createCommandTester(bool $debug): CommandTester
     {
         $command = $this->createApplication($debug)->find('debug:config');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ConfigDumpReferenceCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ConfigDumpReferenceCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ConfigDumpReferenceCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ConfigDumpReferenceCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -98,14 +98,15 @@
 
         $this->assertSame(0, $ret, 'Returns 0 in case of success');
         $this->assertSame(<<<'EOL'
-# Default configuration for extension with alias: "test" at path "array"
-array:
-    child1:               ~
-    child2:               ~
+            # Default configuration for extension with alias: "test" at path "array"
+            array:
+                child1:               ~
+                child2:               ~
 
 
-EOL
-            , $tester->getDisplay(true));
+            EOL,
+            $tester->getDisplay(true)
+        );
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerDebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerDebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerDebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerDebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
 
     public function testNoDumpedXML()
     {
-        static::bootKernel(['test_case' => 'ContainerDebug', 'root_config' => 'config.yml', 'debug' => true, 'debug.container.dump' => false]);
+        static::bootKernel(['test_case' => 'ContainerDebug', 'root_config' => 'no_dump.yml', 'debug' => true]);
 
         $application = new Application(static::$kernel);
         $application->setAutoExit(false);
@@ -94,10 +94,10 @@
         $tester = new ApplicationTester($application);
 
         $tester->run(['command' => 'debug:container', 'name' => 'deprecated', '--format' => 'txt']);
-        $this->assertStringContainsString('[WARNING] The "deprecated" service is deprecated since foo/bar 1.9 and will be removed in 2.0', $tester->getDisplay());
+        $this->assertStringContainsString('The "deprecated" service is deprecated since foo/bar 1.9 and will be removed in 2.0', preg_replace('/\s+/', ' ', $tester->getDisplay()));
 
         $tester->run(['command' => 'debug:container', 'name' => 'deprecated_alias', '--format' => 'txt']);
-        $this->assertStringContainsString('[WARNING] The "deprecated_alias" alias is deprecated since foo/bar 1.9 and will be removed in 2.0', $tester->getDisplay());
+        $this->assertStringContainsString('The "deprecated_alias" alias is deprecated since foo/bar 1.9 and will be removed in 2.0', preg_replace('/\s+/', ' ', $tester->getDisplay()));
     }
 
     public function testExcludedService()
@@ -168,25 +168,26 @@
 
         $this->assertStringMatchesFormat(<<<'TXT'
 
-Symfony Container Environment Variables
-=======================================
+            Symfony Container Environment Variables
+            =======================================
 
- --------- ----------------- ------------%w
-  Name      Default value     Real value%w
- --------- ----------------- ------------%w
-  JSON      "[1, "2.5", 3]"   n/a%w
-  REAL      n/a               "value"%w
-  UNKNOWN   n/a               n/a%w
- --------- ----------------- ------------%w
+             --------- ----------------- ------------%w
+              Name      Default value     Real value%w
+             --------- ----------------- ------------%w
+              JSON      "[1, "2.5", 3]"   n/a%w
+              REAL      n/a               "value"%w
+              UNKNOWN   n/a               n/a%w
+             --------- ----------------- ------------%w
 
- // Note real values might be different between web and CLI.%w
+             // Note real values might be different between web and CLI.%w
 
- [WARNING] The following variables are missing:%w
+             [WARNING] The following variables are missing:%w
 
- * UNKNOWN
+             * UNKNOWN
 
-TXT
-            , $tester->getDisplay(true));
+            TXT,
+            $tester->getDisplay(true)
+        );
 
         putenv('REAL');
     }
@@ -209,15 +210,15 @@
     public function testGetDeprecation()
     {
         static::bootKernel(['test_case' => 'ContainerDebug', 'root_config' => 'config.yml', 'debug' => true]);
-        $path = sprintf('%s/%sDeprecations.log', static::$kernel->getContainer()->getParameter('kernel.build_dir'), static::$kernel->getContainer()->getParameter('kernel.container_class'));
+        $path = \sprintf('%s/%sDeprecations.log', static::$kernel->getContainer()->getParameter('kernel.build_dir'), static::$kernel->getContainer()->getParameter('kernel.container_class'));
         touch($path);
         file_put_contents($path, serialize([[
             'type' => 16384,
             'message' => 'The "Symfony\Bundle\FrameworkBundle\Controller\Controller" class is deprecated since Symfony 4.2, use Symfony\Bundle\FrameworkBundle\Controller\AbstractController instead.',
-            'file' => '/home/hamza/projet/contrib/sf/vendor/symfony/framework-bundle/Controller/Controller.php',
+            'file' => '/home/hamza/project/contrib/sf/vendor/symfony/framework-bundle/Controller/Controller.php',
             'line' => 17,
             'trace' => [[
-                'file' => '/home/hamza/projet/contrib/sf/src/Controller/DefaultController.php',
+                'file' => '/home/hamza/project/contrib/sf/src/Controller/DefaultController.php',
                 'line' => 9,
                 'function' => 'spl_autoload_call',
             ]],
@@ -233,13 +234,13 @@
 
         $tester->assertCommandIsSuccessful();
         $this->assertStringContainsString('Symfony\Bundle\FrameworkBundle\Controller\Controller', $tester->getDisplay());
-        $this->assertStringContainsString('/home/hamza/projet/contrib/sf/vendor/symfony/framework-bundle/Controller/Controller.php', $tester->getDisplay());
+        $this->assertStringContainsString('/home/hamza/project/contrib/sf/vendor/symfony/framework-bundle/Controller/Controller.php', $tester->getDisplay());
     }
 
     public function testGetDeprecationNone()
     {
         static::bootKernel(['test_case' => 'ContainerDebug', 'root_config' => 'config.yml', 'debug' => true]);
-        $path = sprintf('%s/%sDeprecations.log', static::$kernel->getContainer()->getParameter('kernel.build_dir'), static::$kernel->getContainer()->getParameter('kernel.container_class'));
+        $path = \sprintf('%s/%sDeprecations.log', static::$kernel->getContainer()->getParameter('kernel.build_dir'), static::$kernel->getContainer()->getParameter('kernel.container_class'));
         touch($path);
         file_put_contents($path, serialize([]));
 
@@ -258,7 +259,7 @@
     public function testGetDeprecationNoFile()
     {
         static::bootKernel(['test_case' => 'ContainerDebug', 'root_config' => 'config.yml', 'debug' => true]);
-        $path = sprintf('%s/%sDeprecations.log', static::$kernel->getContainer()->getParameter('kernel.build_dir'), static::$kernel->getContainer()->getParameter('kernel.container_class'));
+        $path = \sprintf('%s/%sDeprecations.log', static::$kernel->getContainer()->getParameter('kernel.build_dir'), static::$kernel->getContainer()->getParameter('kernel.container_class'));
         @unlink($path);
 
         $application = new Application(static::$kernel);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerLintCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerLintCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerLintCommandTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerLintCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,55 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Functional;
+
+use Symfony\Bundle\FrameworkBundle\Console\Application;
+use Symfony\Component\Console\Tester\CommandTester;
+
+/**
+ * @group functional
+ */
+class ContainerLintCommandTest extends AbstractWebTestCase
+{
+    private Application $application;
+
+    /**
+     * @dataProvider containerLintProvider
+     */
+    public function testLintContainer(string $configFile, string $expectedOutput)
+    {
+        $kernel = static::createKernel([
+            'test_case' => 'ContainerDebug',
+            'root_config' => $configFile,
+            'debug' => true,
+        ]);
+        $this->application = new Application($kernel);
+
+        $tester = $this->createCommandTester();
+        $exitCode = $tester->execute([]);
+
+        $this->assertSame(0, $exitCode);
+        $this->assertStringContainsString($expectedOutput, $tester->getDisplay());
+    }
+
+    public static function containerLintProvider(): array
+    {
+        return [
+            'default container' => ['config.yml', 'The container was linted successfully'],
+            'missing dump file' => ['no_dump.yml', 'The container was linted successfully'],
+        ];
+    }
+
+    private function createCommandTester(): CommandTester
+    {
+        return new CommandTester($this->application->get('lint:container'));
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/FragmentTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/FragmentTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/FragmentTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/FragmentTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,15 +26,16 @@
         $client->request('GET', '/fragment_home');
 
         $this->assertEquals(<<<TXT
-bar txt
---
-html
---
-es
---
-fr
-TXT
-            , $client->getResponse()->getContent());
+            bar txt
+            --
+            html
+            --
+            es
+            --
+            fr
+            TXT,
+            $client->getResponse()->getContent()
+        );
     }
 
     public static function getConfigs()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/HttpClientTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/HttpClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/HttpClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/HttpClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,10 @@
 
 namespace Symfony\Bundle\FrameworkBundle\Tests\Functional;
 
+use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
+use Symfony\Contracts\HttpClient\HttpClientInterface;
+
 class HttpClientTest extends AbstractWebTestCase
 {
     public function testHttpClientAssertions()
@@ -30,4 +34,15 @@
 
         $this->assertHttpClientRequestCount(6, 'symfony.http_client');
     }
+
+    public function testHttpClientCanBeOverriddenInWebTestCase()
+    {
+        $browser = $this->createClient(['test_case' => 'HttpClient', 'root_config' => 'config.yml', 'debug' => true]);
+        $mockedContent = 'Request Mocked successfully!';
+        static::getContainer()->set(HttpClientInterface::class, new MockHttpClient(new MockResponse($mockedContent)));
+
+        $browser->request('GET', '/http_client_mock');
+
+        self::assertSame($mockedContent, $browser->getResponse()->getContent());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/KernelTestCaseFreshCacheTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/KernelTestCaseFreshCacheTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/KernelTestCaseFreshCacheTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/KernelTestCaseFreshCacheTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Functional;
+
+use Symfony\Component\HttpKernel\KernelInterface;
+
+class KernelTestCaseFreshCacheTest extends AbstractWebTestCase
+{
+    private static string $trackedFile;
+
+    public static function setUpBeforeClass(): void
+    {
+        parent::setUpBeforeClass();
+
+        self::$trackedFile = sys_get_temp_dir().'/'.static::getVarDir().'/tracked_file.yaml';
+    }
+
+    public static function tearDownAfterClass(): void
+    {
+        parent::tearDownAfterClass();
+
+        @unlink(self::$trackedFile);
+    }
+
+    public function testContainerIsRebuiltWhenTrackedFileAppears()
+    {
+        @unlink(self::$trackedFile);
+
+        // First boot: container is built tracking the file as non-existing
+        static::bootKernel(['test_case' => 'TestServiceContainer', 'debug' => true]);
+
+        $this->assertFalse(static::$kernel->getContainer()->getParameter('tracked_file_existed'));
+
+        static::ensureKernelShutdown();
+
+        // Create the tracked file between boots
+        @mkdir(\dirname(self::$trackedFile), 0o777, true);
+        file_put_contents(self::$trackedFile, 'placeholder');
+
+        // Reboot: should detect the resource change and rebuild the container
+        static::bootKernel(['test_case' => 'TestServiceContainer', 'debug' => true]);
+
+        $this->assertTrue(static::$kernel->getContainer()->getParameter('tracked_file_existed'));
+    }
+
+    protected static function createKernel(array $options = []): KernelInterface
+    {
+        $kernel = parent::createKernel($options);
+
+        FileExistenceTrackingKernel::$trackedFile = self::$trackedFile;
+
+        return $kernel;
+    }
+
+    protected static function getKernelClass(): string
+    {
+        require_once __DIR__.'/app/AppKernel.php';
+
+        return FileExistenceTrackingKernel::class;
+    }
+}
+
+class FileExistenceTrackingKernel extends app\AppKernel
+{
+    public static string $trackedFile;
+
+    protected function build(\Symfony\Component\DependencyInjection\ContainerBuilder $container): void
+    {
+        parent::build($container);
+
+        $container->setParameter('tracked_file_existed', $container->fileExists(self::$trackedFile));
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/MimeTypeGuesserBootTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/MimeTypeGuesserBootTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/MimeTypeGuesserBootTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/MimeTypeGuesserBootTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,47 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Functional;
+
+use Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\MimeType\CustomMimeTypeGuesser;
+use Symfony\Component\Mime\MimeTypes;
+
+/**
+ * @group functional
+ */
+class MimeTypeGuesserBootTest extends AbstractWebTestCase
+{
+    /**
+     * Verifies that booting the kernel eagerly instantiates the "mime_types" service,
+     * so that MimeTypes::setDefault() fires before any code calls MimeTypes::getDefault().
+     *
+     * Without this, File::getMimeType() (and any other static call site) silently
+     * falls back to a fresh, default-only MimeTypes instance, dropping every guesser
+     * tagged "mime.mime_type_guesser" in the container.
+     */
+    public function testCustomGuesserIsAppliedAfterKernelBootEvenWithoutExplicitContainerLookup()
+    {
+        // Reset the MimeTypes static default so any prior test cannot leak its instance
+        // into this one. Replace it with a fresh, default-only MimeTypes — mimicking the
+        // "no DI container has touched it yet" runtime state described in the bug report.
+        $defaultProperty = new \ReflectionProperty(MimeTypes::class, 'default');
+        $defaultProperty->setValue(null, new MimeTypes());
+
+        $kernel = static::createKernel(['test_case' => 'MimeType', 'root_config' => 'config.yml']);
+        $kernel->boot();
+
+        // Intentionally do NOT call $kernel->getContainer()->get('mime_types') —
+        // the bug being covered is that nothing in the request lifecycle fetches
+        // it, leaving MimeTypes::getDefault() pointing at a fresh, default-only
+        // instance that ignores every container-tagged guesser.
+        $this->assertSame(CustomMimeTypeGuesser::FAKE_MIME_TYPE, MimeTypes::getDefault()->guessMimeType(__FILE__));
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/TestServiceContainerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/TestServiceContainerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/TestServiceContainerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/TestServiceContainerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,6 @@
         static::bootKernel(['test_case' => 'TestServiceContainer', 'root_config' => 'test_disabled.yml', 'environment' => 'test_disabled']);
 
         $this->expectException(\LogicException::class);
-
         static::getContainer();
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/ConcreteMicroKernel.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/ConcreteMicroKernel.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/ConcreteMicroKernel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/ConcreteMicroKernel.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,12 +63,12 @@
         return $this->cacheDir;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/flex-style/src/FlexStyleMicroKernel.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/flex-style/src/FlexStyleMicroKernel.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/flex-style/src/FlexStyleMicroKernel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/flex-style/src/FlexStyleMicroKernel.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,12 +64,12 @@
         return \dirname((new \ReflectionObject($this))->getFileName(), 2);
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/KernelBrowserTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/KernelBrowserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/KernelBrowserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/KernelBrowserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,7 +68,7 @@
             ->disableOriginalConstructor()
             ->getMock();
 
-        $mock->expects($this->any())->method('handle')->willReturn(new Response('foo'));
+        $mock->method('handle')->willReturn(new Response('foo'));
 
         return $mock;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RedirectableCompiledUrlMatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RedirectableCompiledUrlMatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RedirectableCompiledUrlMatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RedirectableCompiledUrlMatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,14 +28,14 @@
         $matcher = $this->getMatcher($routes, $context = new RequestContext());
 
         $this->assertEquals([
-                '_controller' => 'Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction',
-                'path' => '/foo/',
-                'permanent' => true,
-                'scheme' => null,
-                'httpPort' => $context->getHttpPort(),
-                'httpsPort' => $context->getHttpsPort(),
-                '_route' => 'foo',
-            ],
+            '_controller' => 'Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction',
+            'path' => '/foo/',
+            'permanent' => true,
+            'scheme' => null,
+            'httpPort' => $context->getHttpPort(),
+            'httpsPort' => $context->getHttpsPort(),
+            '_route' => 'foo',
+        ],
             $matcher->match('/foo')
         );
     }
@@ -48,14 +48,14 @@
         $matcher = $this->getMatcher($routes, $context = new RequestContext());
 
         $this->assertEquals([
-                '_controller' => 'Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction',
-                'path' => '/foo',
-                'permanent' => true,
-                'scheme' => 'https',
-                'httpPort' => $context->getHttpPort(),
-                'httpsPort' => $context->getHttpsPort(),
-                '_route' => 'foo',
-            ],
+            '_controller' => 'Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction',
+            'path' => '/foo',
+            'permanent' => true,
+            'scheme' => 'https',
+            'httpPort' => $context->getHttpPort(),
+            'httpsPort' => $context->getHttpsPort(),
+            '_route' => 'foo',
+        ],
             $matcher->match('/foo')
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RouterTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RouterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RouterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RouterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
     {
         $this->expectException(\LogicException::class);
         $this->expectExceptionMessage('You should either pass a "Symfony\Component\DependencyInjection\ContainerInterface" instance or provide the $parameters argument of the "Symfony\Bundle\FrameworkBundle\Routing\Router::__construct" method');
-        new Router($this->createMock(ContainerInterface::class), 'foo');
+        new Router($this->createStub(ContainerInterface::class), 'foo');
     }
 
     public function testGenerateWithServiceParam()
@@ -609,10 +609,9 @@
 
     private function getServiceContainer(RouteCollection $routes): Container
     {
-        $loader = $this->createMock(LoaderInterface::class);
+        $loader = $this->createStub(LoaderInterface::class);
 
         $loader
-            ->expects($this->any())
             ->method('load')
             ->willReturn($routes)
         ;
@@ -630,10 +629,9 @@
 
     private function getPsr11ServiceContainer(RouteCollection $routes): ContainerInterface
     {
-        $loader = $this->createMock(LoaderInterface::class);
+        $loader = $this->createStub(LoaderInterface::class);
 
         $loader
-            ->expects($this->any())
             ->method('load')
             ->willReturn($routes)
         ;
@@ -655,7 +653,7 @@
         $bag
             ->expects($this->any())
             ->method('get')
-            ->willReturnCallback(fn ($key) => $params[$key] ?? null)
+            ->willReturnCallback(static fn ($key) => $params[$key] ?? null)
         ;
 
         return $bag;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Test/KernelTestCaseHttpCacheTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Test/KernelTestCaseHttpCacheTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Test/KernelTestCaseHttpCacheTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Test/KernelTestCaseHttpCacheTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,145 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\Test;
+
+use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\Filesystem\Filesystem;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpKernel\HttpCache\HttpCache;
+use Symfony\Component\HttpKernel\HttpCache\Store;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\Kernel;
+use Symfony\Component\HttpKernel\KernelInterface;
+
+class KernelTestCaseHttpCacheTest extends KernelTestCase
+{
+    private static string $baseDir;
+
+    public static function setUpBeforeClass(): void
+    {
+        self::$baseDir = sys_get_temp_dir().'/sf_http_cache_kernel_testcase_'.uniqid('', true);
+    }
+
+    public static function tearDownAfterClass(): void
+    {
+        if (isset(self::$baseDir)) {
+            (new Filesystem())->remove(self::$baseDir);
+        }
+
+        parent::tearDownAfterClass();
+    }
+
+    protected static function createKernel(array $options = []): KernelInterface
+    {
+        return new HttpCacheTestKernel(self::$baseDir, $options['environment'] ?? 'test', $options['debug'] ?? true);
+    }
+
+    public function testHttpCacheIsClearedBetweenKernelShutdowns()
+    {
+        DynamicHttpKernel::$counter = 0;
+
+        $kernel = $this->bootKernelForHttpCache();
+        $response = $kernel->handle(Request::create('/'));
+
+        $this->assertSame('count: 1', $response->getContent());
+
+        static::ensureKernelShutdown();
+
+        $kernel = $this->bootKernelForHttpCache();
+        $response = $kernel->handle(Request::create('/'));
+
+        $this->assertSame('count: 2', $response->getContent());
+    }
+
+    private function bootKernelForHttpCache(): KernelInterface
+    {
+        $kernel = static::createKernel();
+        $kernel->boot();
+        static::$kernel = $kernel;
+        static::$booted = true;
+
+        return $kernel;
+    }
+}
+
+class HttpCacheTestKernel extends Kernel
+{
+    public function __construct(
+        private readonly string $baseDir,
+        string $environment,
+        bool $debug,
+    ) {
+        parent::__construct($environment, $debug);
+    }
+
+    public function registerBundles(): iterable
+    {
+        return [];
+    }
+
+    public function registerContainerConfiguration(\Symfony\Component\Config\Loader\LoaderInterface $loader): void
+    {
+        $loader->load(function (ContainerBuilder $container): void {
+            $container->register('kernel', KernelInterface::class)
+                ->setSynthetic(true)
+                ->setPublic(true);
+
+            $container->register('http_kernel', DynamicHttpKernel::class)
+                ->setPublic(true);
+
+            $container->register('http_cache.store', Store::class)
+                ->setPublic(true)
+                ->setArguments([$this->getCacheDir().'/http_cache']);
+
+            $container->register('http_cache', HttpCache::class)
+                ->setPublic(true)
+                ->setArguments([
+                    new Reference('kernel'),
+                    new Reference('http_cache.store'),
+                    null,
+                    [],
+                ]);
+        });
+    }
+
+    public function getProjectDir(): string
+    {
+        return $this->baseDir;
+    }
+
+    public function getCacheDir(): string
+    {
+        return $this->baseDir.'/cache';
+    }
+
+    public function getLogDir(): string
+    {
+        return $this->baseDir.'/log';
+    }
+}
+
+class DynamicHttpKernel implements HttpKernelInterface
+{
+    public static int $counter = 0;
+
+    public function handle(Request $request, int $type = self::MAIN_REQUEST, bool $catch = true): Response
+    {
+        $response = new Response('count: '.++self::$counter);
+        $response->setPublic();
+        $response->setMaxAge(60);
+
+        return $response;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Test/WebTestCaseTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Test/WebTestCaseTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Test/WebTestCaseTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Tests/Test/WebTestCaseTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -352,8 +352,8 @@
 
     private function getResponseTester(Response $response): WebTestCase
     {
-        $client = $this->createMock(KernelBrowser::class);
-        $client->expects($this->any())->method('getResponse')->willReturn($response);
+        $client = $this->createStub(KernelBrowser::class);
+        $client->method('getResponse')->willReturn($response);
 
         $request = new Request([], [], [], [], [], [
             'HTTPS' => 'on',
@@ -361,36 +361,36 @@
             'SERVER_NAME' => 'example.com',
         ]);
         $request->setFormat('custom', ['application/vnd.myformat']);
-        $client->expects($this->any())->method('getRequest')->willReturn($request);
+        $client->method('getRequest')->willReturn($request);
 
         return $this->getTester($client);
     }
 
     private function getCrawlerTester(Crawler $crawler): WebTestCase
     {
-        $client = $this->createMock(KernelBrowser::class);
-        $client->expects($this->any())->method('getCrawler')->willReturn($crawler);
+        $client = $this->createStub(KernelBrowser::class);
+        $client->method('getCrawler')->willReturn($crawler);
 
         return $this->getTester($client);
     }
 
     private function getClientTester(): WebTestCase
     {
-        $client = $this->createMock(KernelBrowser::class);
+        $client = $this->createStub(KernelBrowser::class);
         $jar = new CookieJar();
         $jar->set(new Cookie('foo', 'bar', null, '/path', 'example.com'));
-        $client->expects($this->any())->method('getCookieJar')->willReturn($jar);
+        $client->method('getCookieJar')->willReturn($jar);
 
         return $this->getTester($client);
     }
 
     private function getRequestTester(): WebTestCase
     {
-        $client = $this->createMock(KernelBrowser::class);
+        $client = $this->createStub(KernelBrowser::class);
         $request = new Request();
         $request->attributes->set('foo', 'bar');
         $request->attributes->set('_route', 'homepage');
-        $client->expects($this->any())->method('getRequest')->willReturn($request);
+        $client->method('getRequest')->willReturn($request);
 
         return $this->getTester($client);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Translation/Translator.php symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Translation/Translator.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/FrameworkBundle/Translation/Translator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/FrameworkBundle/Translation/Translator.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
 
         // check option names
         if ($diff = array_diff(array_keys($options), array_keys($this->options))) {
-            throw new InvalidArgumentException(sprintf('The Translator does not support the following options: \'%s\'.', implode('\', \'', $diff)));
+            throw new InvalidArgumentException(\sprintf('The Translator does not support the following options: \'%s\'.', implode('\', \'', $diff)));
         }
 
         $this->options = array_merge($this->options, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Command/DebugFirewallCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Command/DebugFirewallCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Command/DebugFirewallCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Command/DebugFirewallCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,25 +57,25 @@
 
         $this
             ->setHelp(<<<EOF
-The <info>%command.name%</info> command displays the firewalls that are configured
-in your application:
+                The <info>%command.name%</info> command displays the firewalls that are configured
+                in your application:
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-You can pass a firewall name to display more detailed information about
-a specific firewall:
+                You can pass a firewall name to display more detailed information about
+                a specific firewall:
 
-  <info>php %command.full_name% $exampleName</info>
+                  <info>php %command.full_name% $exampleName</info>
 
-To include all events and event listeners for a specific firewall, use the
-<info>events</info> option:
+                To include all events and event listeners for a specific firewall, use the
+                <info>events</info> option:
 
-  <info>php %command.full_name% --events $exampleName</info>
+                  <info>php %command.full_name% --events $exampleName</info>
 
-EOF
+                EOF
             )
             ->setDefinition([
-                new InputArgument('name', InputArgument::OPTIONAL, sprintf('A firewall name (for example "%s")', $exampleName)),
+                new InputArgument('name', InputArgument::OPTIONAL, \sprintf('A firewall name (for example "%s")', $exampleName)),
                 new InputOption('events', null, InputOption::VALUE_NONE, 'Include a list of event listeners (only available in combination with the "name" argument)'),
             ]);
     }
@@ -92,10 +92,10 @@
             return 0;
         }
 
-        $serviceId = sprintf('security.firewall.map.context.%s', $name);
+        $serviceId = \sprintf('security.firewall.map.context.%s', $name);
 
         if (!$this->contexts->has($serviceId)) {
-            $io->error(sprintf('Firewall %s was not found. Available firewalls are: %s', $name, implode(', ', $this->firewallNames)));
+            $io->error(\sprintf('Firewall %s was not found. Available firewalls are: %s', $name, implode(', ', $this->firewallNames)));
 
             return 1;
         }
@@ -103,7 +103,7 @@
         /** @var FirewallContext $context */
         $context = $this->contexts->get($serviceId);
 
-        $io->title(sprintf('Firewall "%s"', $name));
+        $io->title(\sprintf('Firewall "%s"', $name));
 
         $this->displayFirewallSummary($name, $context, $io);
 
@@ -125,7 +125,7 @@
 
         $io->listing($this->firewallNames);
 
-        $io->comment(sprintf('To view details of a specific firewall, re-run this command with a firewall name. (e.g. <comment>debug:firewall %s</comment>)', $this->getExampleName()));
+        $io->comment(\sprintf('To view details of a specific firewall, re-run this command with a firewall name. (e.g. <comment>debug:firewall %s</comment>)', $this->getExampleName()));
     }
 
     protected function displayFirewallSummary(string $name, FirewallContext $context, SymfonyStyle $io): void
@@ -169,9 +169,9 @@
 
     protected function displayEventListeners(string $name, FirewallContext $context, SymfonyStyle $io): void
     {
-        $io->title(sprintf('Event listeners for firewall "%s"', $name));
+        $io->title(\sprintf('Event listeners for firewall "%s"', $name));
 
-        $dispatcherId = sprintf('security.event_dispatcher.%s', $name);
+        $dispatcherId = \sprintf('security.event_dispatcher.%s', $name);
 
         if (!$this->eventDispatchers->has($dispatcherId)) {
             $io->text('No event dispatcher has been registered for this firewall.');
@@ -183,12 +183,12 @@
         $dispatcher = $this->eventDispatchers->get($dispatcherId);
 
         foreach ($dispatcher->getListeners() as $event => $listeners) {
-            $io->section(sprintf('"%s" event', $event));
+            $io->section(\sprintf('"%s" event', $event));
 
             $rows = [];
             foreach ($listeners as $order => $listener) {
                 $rows[] = [
-                    sprintf('#%d', $order + 1),
+                    \sprintf('#%d', $order + 1),
                     $this->formatCallable($listener),
                     $dispatcher->getListenerPriority($event, $listener),
                 ];
@@ -203,7 +203,7 @@
 
     private function displayAuthenticators(string $name, SymfonyStyle $io): void
     {
-        $io->title(sprintf('Authenticators for firewall "%s"', $name));
+        $io->title(\sprintf('Authenticators for firewall "%s"', $name));
 
         $authenticators = $this->authenticators[$name] ?? [];
 
@@ -216,7 +216,7 @@
         $io->table(
             ['Classname'],
             array_map(
-                fn ($authenticator) => [$authenticator::class],
+                static fn ($authenticator) => [$authenticator::class],
                 $authenticators
             )
         );
@@ -226,14 +226,14 @@
     {
         if (\is_array($callable)) {
             if (\is_object($callable[0])) {
-                return sprintf('%s::%s()', $callable[0]::class, $callable[1]);
+                return \sprintf('%s::%s()', $callable[0]::class, $callable[1]);
             }
 
-            return sprintf('%s::%s()', $callable[0], $callable[1]);
+            return \sprintf('%s::%s()', $callable[0], $callable[1]);
         }
 
         if (\is_string($callable)) {
-            return sprintf('%s()', $callable);
+            return \sprintf('%s()', $callable);
         }
 
         if ($callable instanceof \Closure) {
@@ -242,14 +242,14 @@
                 return 'Closure()';
             }
             if ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) {
-                return sprintf('%s::%s()', $class->name, $r->name);
+                return \sprintf('%s::%s()', $class->name, $r->name);
             }
 
             return $r->name.'()';
         }
 
         if (method_exists($callable, '__invoke')) {
-            return sprintf('%s::__invoke()', $callable::class);
+            return \sprintf('%s::__invoke()', $callable::class);
         }
 
         throw new \InvalidArgumentException('Callable is not describable.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DataCollector/SecurityDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DataCollector/SecurityDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DataCollector/SecurityDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DataCollector/SecurityDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,10 +106,12 @@
             }
 
             $logoutUrl = null;
-            try {
-                $logoutUrl = $this->logoutUrlGenerator?->getLogoutPath();
-            } catch (\Exception) {
-                // fail silently when the logout URL cannot be generated
+            if ($this->logoutUrlGenerator && method_exists($token, 'getFirewallName')) {
+                try {
+                    $logoutUrl = $this->logoutUrlGenerator->getLogoutPath($token->getFirewallName());
+                } catch (\Exception) {
+                    // fail silently when the logout URL cannot be generated
+                }
             }
 
             $this->data = [
@@ -187,7 +189,7 @@
                 if ($this->data['impersonated'] && null !== $switchUserConfig = $firewallConfig->getSwitchUser()) {
                     $exitPath = $request->getRequestUri();
                     $exitPath .= null === $request->getQueryString() ? '?' : '&';
-                    $exitPath .= sprintf('%s=%s', urlencode($switchUserConfig['parameter']), SwitchUserListener::EXIT_VALUE);
+                    $exitPath .= \sprintf('%s=%s', urlencode($switchUserConfig['parameter']), SwitchUserListener::EXIT_VALUE);
 
                     $this->data['impersonation_exit_path'] = $exitPath;
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Debug/TraceableFirewallListener.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Debug/TraceableFirewallListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Debug/TraceableFirewallListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Debug/TraceableFirewallListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
                             $listeners[] = $listener;
                             $wrappedLazyListeners[] = $listener;
                         } else {
-                            $listeners[] = function (RequestEvent $event) use ($listener, &$wrappedListeners) {
+                            $listeners[] = static function (RequestEvent $event) use ($listener, &$wrappedListeners) {
                                 $wrappedListener = new WrappedListener($listener);
                                 $wrappedListener($event);
                                 $wrappedListeners[] = $wrappedListener->getInfo();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSecurityVotersPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSecurityVotersPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSecurityVotersPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSecurityVotersPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,7 +52,7 @@
             $class = $container->getParameterBag()->resolveValue($definition->getClass());
 
             if (!is_a($class, VoterInterface::class, true)) {
-                throw new LogicException(sprintf('"%s" must implement the "%s" when used as a voter.', $class, VoterInterface::class));
+                throw new LogicException(\sprintf('"%s" must implement the "%s" when used as a voter.', $class, VoterInterface::class));
             }
 
             if ($debug) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,10 +31,10 @@
         }
 
         $sessionOptions = $container->getParameter('session.storage.options');
-        $domainRegexp = empty($sessionOptions['cookie_domain']) ? '%%s' : sprintf('(?:%%%%s|(?:.+\.)?%s)', preg_quote(trim($sessionOptions['cookie_domain'], '.')));
+        $domainRegexp = empty($sessionOptions['cookie_domain']) ? '%%s' : \sprintf('(?:%%%%s|(?:.+\.)?%s)', preg_quote(trim($sessionOptions['cookie_domain'], '.')));
 
         if ('auto' === ($sessionOptions['cookie_secure'] ?? null)) {
-            $secureDomainRegexp = sprintf('{^https://%s$}i', $domainRegexp);
+            $secureDomainRegexp = \sprintf('{^https://%s$}i', $domainRegexp);
             $domainRegexp = 'https?://'.$domainRegexp;
         } else {
             $secureDomainRegexp = null;
@@ -42,7 +42,7 @@
         }
 
         $container->findDefinition('security.http_utils')
-            ->addArgument(sprintf('{^%s$}i', $domainRegexp))
+            ->addArgument(\sprintf('{^%s$}i', $domainRegexp))
             ->addArgument($secureDomainRegexp);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/RegisterEntryPointPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/RegisterEntryPointPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/RegisterEntryPointPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/RegisterEntryPointPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
                     $entryPointNames[] = is_numeric($key) ? $serviceId : $key;
                 }
 
-                throw new InvalidConfigurationException(sprintf('Because you have multiple authenticators in firewall "%s", you need to set the "entry_point" key to one of your authenticators ("%s") or a service ID implementing "%s". The "entry_point" determines what should happen (e.g. redirect to "/login") when an anonymous user tries to access a protected page.', $firewallName, implode('", "', $entryPointNames), AuthenticationEntryPointInterface::class));
+                throw new InvalidConfigurationException(\sprintf('Because you have multiple authenticators in firewall "%s", you need to set the "entry_point" key to one of your authenticators ("%s") or a service ID implementing "%s". The "entry_point" determines what should happen (e.g. redirect to "/login") when an anonymous user tries to access a protected page.', $firewallName, implode('", "', $entryPointNames), AuthenticationEntryPointInterface::class));
             }
 
             $config->replaceArgument(7, $entryPoint);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/RegisterLdapLocatorPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/RegisterLdapLocatorPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/RegisterLdapLocatorPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/RegisterLdapLocatorPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,8 +30,9 @@
         $definition = $container->setDefinition('security.ldap_locator', new Definition(ServiceLocator::class));
 
         $locators = [];
-        foreach ($container->findTaggedServiceIds('ldap') as $serviceId => $tags) {
-            $locators[$serviceId] = new ServiceClosureArgument(new Reference($serviceId));
+        foreach ($container->findTaggedServiceIds('ldap') as $id => $tags) {
+            $locators[$id] = new ServiceClosureArgument(new Reference($id));
+            $container->getDefinition($id)->addTag('kernel.reset', ['method' => 'reset', 'on_invalid' => 'ignore']);
         }
 
         $definition->addArgument($locators);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/ReplaceDecoratedRememberMeHandlerPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/ReplaceDecoratedRememberMeHandlerPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/ReplaceDecoratedRememberMeHandlerPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/ReplaceDecoratedRememberMeHandlerPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
             // get the actual custom remember me handler definition (passed to the decorator)
             $realRememberMeHandler = $container->findDefinition((string) $definition->getArgument(0));
             if (null === $realRememberMeHandler) {
-                throw new \LogicException(sprintf('Invalid service definition for custom remember me handler; no service found with ID "%s".', (string) $definition->getArgument(0)));
+                throw new \LogicException(\sprintf('Invalid service definition for custom remember me handler; no service found with ID "%s".', (string) $definition->getArgument(0)));
             }
 
             foreach ($rememberMeHandlerTags as $rememberMeHandlerTag) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/SortFirewallListenersPass.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/SortFirewallListenersPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/SortFirewallListenersPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/SortFirewallListenersPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
         $prioritiesByServiceId = $this->getListenerPriorities($listenerIteratorArgument, $container);
 
         $listeners = $listenerIteratorArgument->getValues();
-        usort($listeners, fn (Reference $a, Reference $b) => $prioritiesByServiceId[(string) $b] <=> $prioritiesByServiceId[(string) $a]);
+        usort($listeners, static fn (Reference $a, Reference $b) => $prioritiesByServiceId[(string) $b] <=> $prioritiesByServiceId[(string) $a]);
 
         $listenerIteratorArgument->setValues(array_values($listeners));
     }
@@ -62,7 +62,7 @@
             $class = $def->getClass();
 
             if (!$r = $container->getReflectionClass($class)) {
-                throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
+                throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
             }
 
             $priority = 0;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,15 +78,15 @@
                         ->booleanNode('allow_if_equal_granted_denied')->defaultTrue()->end()
                     ->end()
                     ->validate()
-                        ->ifTrue(fn ($v) => isset($v['strategy'], $v['service']))
+                        ->ifTrue(static fn ($v) => isset($v['strategy'], $v['service']))
                         ->thenInvalid('"strategy" and "service" cannot be used together.')
                     ->end()
                     ->validate()
-                        ->ifTrue(fn ($v) => isset($v['strategy'], $v['strategy_service']))
+                        ->ifTrue(static fn ($v) => isset($v['strategy'], $v['strategy_service']))
                         ->thenInvalid('"strategy" and "strategy_service" cannot be used together.')
                     ->end()
                     ->validate()
-                        ->ifTrue(fn ($v) => isset($v['service'], $v['strategy_service']))
+                        ->ifTrue(static fn ($v) => isset($v['service'], $v['strategy_service']))
                         ->thenInvalid('"service" and "strategy_service" cannot be used together.')
                     ->end()
                 ->end()
@@ -111,10 +111,10 @@
                     ->useAttributeAsKey('id')
                     ->prototype('array')
                         ->performNoDeepMerging()
-                        ->beforeNormalization()->ifString()->then(fn ($v) => ['value' => $v])->end()
+                        ->beforeNormalization()->ifString()->then(static fn ($v) => ['value' => $v])->end()
                         ->beforeNormalization()
-                            ->ifTrue(fn ($v) => \is_array($v) && isset($v['value']))
-                            ->then(fn ($v) => preg_split('/\s*,\s*/', $v['value']))
+                            ->ifTrue(static fn ($v) => \is_array($v) && isset($v['value']))
+                            ->then(static fn ($v) => preg_split('/\s*,\s*/', $v['value']))
                         ->end()
                         ->prototype('scalar')->end()
                     ->end()
@@ -145,7 +145,7 @@
                             ->scalarNode('host')->defaultNull()->end()
                             ->integerNode('port')->defaultNull()->end()
                             ->arrayNode('ips')
-                                ->beforeNormalization()->ifString()->then(fn ($v) => [$v])->end()
+                                ->beforeNormalization()->ifString()->then(static fn ($v) => [$v])->end()
                                 ->prototype('scalar')->end()
                             ->end()
                             ->arrayNode('attributes')
@@ -154,7 +154,7 @@
                             ->end()
                             ->scalarNode('route')->defaultNull()->end()
                             ->arrayNode('methods')
-                                ->beforeNormalization()->ifString()->then(fn ($v) => preg_split('/\s*,\s*/', $v))->end()
+                                ->beforeNormalization()->ifString()->then(static fn ($v) => preg_split('/\s*,\s*/', $v))->end()
                                 ->prototype('scalar')->end()
                             ->end()
                             ->scalarNode('allow_if')->defaultNull()->end()
@@ -162,7 +162,7 @@
                         ->fixXmlConfig('role')
                         ->children()
                             ->arrayNode('roles')
-                                ->beforeNormalization()->ifString()->then(fn ($v) => preg_split('/\s*,\s*/', $v))->end()
+                                ->beforeNormalization()->ifString()->then(static fn ($v) => preg_split('/\s*,\s*/', $v))->end()
                                 ->prototype('scalar')->end()
                             ->end()
                         ->end()
@@ -194,12 +194,12 @@
             ->scalarNode('pattern')
                 ->beforeNormalization()
                     ->ifArray()
-                    ->then(fn ($v) => sprintf('(?:%s)', implode('|', $v)))
+                    ->then(static fn ($v) => \sprintf('(?:%s)', implode('|', $v)))
                 ->end()
             ->end()
             ->scalarNode('host')->end()
             ->arrayNode('methods')
-                ->beforeNormalization()->ifString()->then(fn ($v) => preg_split('/\s*,\s*/', $v))->end()
+                ->beforeNormalization()->ifString()->then(static fn ($v) => preg_split('/\s*,\s*/', $v))->end()
                 ->prototype('scalar')->end()
             ->end()
             ->booleanNode('security')->defaultTrue()->end()
@@ -212,7 +212,7 @@
             ->scalarNode('access_denied_url')->end()
             ->scalarNode('access_denied_handler')->end()
             ->scalarNode('entry_point')
-                ->info(sprintf('An enabled authenticator name or a service id that implements "%s"', AuthenticationEntryPointInterface::class))
+                ->info(\sprintf('An enabled authenticator name or a service id that implements "%s"', AuthenticationEntryPointInterface::class))
             ->end()
             ->scalarNode('provider')->end()
             ->booleanNode('stateless')->defaultFalse()->end()
@@ -222,16 +222,16 @@
                 ->treatTrueLike([])
                 ->canBeUnset()
                 ->beforeNormalization()
-                    ->ifTrue(fn ($v): bool => isset($v['csrf_token_generator']) && !isset($v['csrf_token_manager']))
-                    ->then(function (array $v): array {
+                    ->ifTrue(static fn ($v): bool => isset($v['csrf_token_generator']) && !isset($v['csrf_token_manager']))
+                    ->then(static function (array $v): array {
                         $v['csrf_token_manager'] = $v['csrf_token_generator'];
 
                         return $v;
                     })
                 ->end()
                 ->beforeNormalization()
-                    ->ifTrue(fn ($v): bool => \is_array($v) && (isset($v['csrf_token_manager']) xor isset($v['enable_csrf'])))
-                    ->then(function (array $v): array {
+                    ->ifTrue(static fn ($v): bool => \is_array($v) && (isset($v['csrf_token_manager']) xor isset($v['enable_csrf'])))
+                    ->then(static function (array $v): array {
                         if (isset($v['csrf_token_manager'])) {
                             $v['enable_csrf'] = true;
                         } elseif ($v['enable_csrf']) {
@@ -258,7 +258,7 @@
                     ->booleanNode('invalidate_session')->defaultTrue()->end()
                     ->arrayNode('clear_site_data')
                         ->performNoDeepMerging()
-                        ->beforeNormalization()->ifString()->then(fn ($v) => $v ? array_map('trim', explode(',', $v)) : [])->end()
+                        ->beforeNormalization()->ifString()->then(static fn ($v) => $v ? array_map('trim', explode(',', $v)) : [])->end()
                         ->enumPrototype()
                             ->values([
                                 '*', 'cache', 'cookies', 'storage', 'executionContexts',
@@ -271,8 +271,8 @@
                     ->arrayNode('delete_cookies')
                         ->normalizeKeys(false)
                         ->beforeNormalization()
-                            ->ifTrue(fn ($v) => \is_array($v) && \is_int(key($v)))
-                            ->then(fn ($v) => array_map(fn ($v) => ['name' => $v], $v))
+                            ->ifTrue(static fn ($v) => \is_array($v) && \is_int(key($v)))
+                            ->then(static fn ($v) => array_map(static fn ($v) => ['name' => $v], $v))
                         ->end()
                         ->useAttributeAsKey('name')
                         ->prototype('array')
@@ -300,8 +300,8 @@
                 ->info('A list of badges that must be present on the authenticated passport.')
                 ->validate()
                     ->always()
-                    ->then(function ($requiredBadges) {
-                        return array_map(function ($requiredBadge) {
+                    ->then(static function ($requiredBadges) {
+                        return array_map(static function ($requiredBadge) {
                             if (class_exists($requiredBadge)) {
                                 return $requiredBadge;
                             }
@@ -313,7 +313,7 @@
                                 }
                             }
 
-                            throw new InvalidConfigurationException(sprintf('Undefined security Badge class "%s" set in "security.firewall.required_badges".', $requiredBadge));
+                            throw new InvalidConfigurationException(\sprintf('Undefined security Badge class "%s" set in "security.firewall.required_badges".', $requiredBadge));
                         }, $requiredBadges);
                     })
                 ->end()
@@ -339,15 +339,15 @@
         $firewallNodeBuilder
             ->end()
             ->validate()
-                ->ifTrue(fn ($v) => true === $v['security'] && isset($v['pattern']) && !isset($v['request_matcher']))
-                ->then(function ($firewall) use ($abstractFactoryKeys) {
+                ->ifTrue(static fn ($v) => true === $v['security'] && isset($v['pattern']) && !isset($v['request_matcher']))
+                ->then(static function ($firewall) use ($abstractFactoryKeys) {
                     foreach ($abstractFactoryKeys as $k) {
                         if (!isset($firewall[$k]['check_path'])) {
                             continue;
                         }
 
                         if (str_contains($firewall[$k]['check_path'], '/') && !preg_match('#'.$firewall['pattern'].'#', $firewall[$k]['check_path'])) {
-                            throw new \LogicException(sprintf('The check_path "%s" for login method "%s" is not matched by the firewall pattern "%s".', $firewall[$k]['check_path'], $k, $firewall['pattern']));
+                            throw new \LogicException(\sprintf('The check_path "%s" for login method "%s" is not matched by the firewall pattern "%s".', $firewall[$k]['check_path'], $k, $firewall['pattern']));
                         }
                     }
 
@@ -388,7 +388,7 @@
                         ->arrayNode('providers')
                             ->beforeNormalization()
                                 ->ifString()
-                                ->then(fn ($v) => preg_split('/\s*,\s*/', $v))
+                                ->then(static fn ($v) => preg_split('/\s*,\s*/', $v))
                             ->end()
                             ->prototype('scalar')->end()
                         ->end()
@@ -406,11 +406,11 @@
 
         $providerNodeBuilder
             ->validate()
-                ->ifTrue(fn ($v) => \count($v) > 1)
+                ->ifTrue(static fn ($v) => \count($v) > 1)
                 ->thenInvalid('You cannot set multiple provider types for the same provider')
             ->end()
             ->validate()
-                ->ifTrue(fn ($v) => 0 === \count($v))
+                ->ifTrue(static fn ($v) => 0 === \count($v))
                 ->thenInvalid('You must set a provider definition for the provider.')
             ->end()
         ;
@@ -435,12 +435,12 @@
                     ->prototype('array')
                         ->canBeUnset()
                         ->performNoDeepMerging()
-                        ->beforeNormalization()->ifString()->then(fn ($v) => ['algorithm' => $v])->end()
+                        ->beforeNormalization()->ifString()->then(static fn ($v) => ['algorithm' => $v])->end()
                         ->children()
                             ->scalarNode('algorithm')
                                 ->cannotBeEmpty()
                                 ->validate()
-                                    ->ifTrue(fn ($v) => !\is_string($v))
+                                    ->ifTrue(static fn ($v) => !\is_string($v))
                                     ->thenInvalid('You must provide a string value.')
                                 ->end()
                             ->end()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/AccessToken/OidcUserInfoTokenHandlerFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/AccessToken/OidcUserInfoTokenHandlerFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/AccessToken/OidcUserInfoTokenHandlerFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/AccessToken/OidcUserInfoTokenHandlerFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
                 ->fixXmlConfig($this->getKey())
                 ->beforeNormalization()
                     ->ifString()
-                    ->then(fn ($v) => ['claim' => 'sub', 'base_uri' => $v])
+                    ->then(static fn ($v) => ['claim' => 'sub', 'base_uri' => $v])
                 ->end()
                 ->children()
                     ->scalarNode('base_uri')
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/AccessTokenFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/AccessTokenFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/AccessTokenFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/AccessTokenFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
                 ->fixXmlConfig('token_extractors')
                 ->beforeNormalization()
                     ->ifString()
-                    ->then(fn ($v) => [$v])
+                    ->then(static fn ($v) => [$v])
                 ->end()
                 ->cannotBeEmpty()
                 ->defaultValue([
@@ -68,19 +68,19 @@
 
                 ->beforeNormalization()
                     ->ifString()
-                    ->then(fn ($v) => ['id' => $v])
+                    ->then(static fn ($v) => ['id' => $v])
                 ->end()
 
                 ->beforeNormalization()
-                    ->ifTrue(fn ($v) => \is_array($v) && 1 < \count($v))
-                    ->then(fn () => throw new InvalidConfigurationException('You cannot configure multiple token handlers.'))
+                    ->ifTrue(static fn ($v) => \is_array($v) && 1 < \count($v))
+                    ->then(static fn () => throw new InvalidConfigurationException('You cannot configure multiple token handlers.'))
                 ->end()
 
                 // "isRequired" must be set otherwise the following custom validation is not called
                 ->isRequired()
                 ->beforeNormalization()
-                    ->ifTrue(fn ($v) => \is_array($v) && !$v)
-                    ->then(fn () => throw new InvalidConfigurationException('You must set a token handler.'))
+                    ->ifTrue(static fn ($v) => \is_array($v) && !$v)
+                    ->then(static fn () => throw new InvalidConfigurationException('You must set a token handler.'))
                 ->end()
 
                 ->children()
@@ -107,7 +107,7 @@
     {
         $successHandler = isset($config['success_handler']) ? new Reference($this->createAuthenticationSuccessHandler($container, $firewallName, $config)) : null;
         $failureHandler = isset($config['failure_handler']) ? new Reference($this->createAuthenticationFailureHandler($container, $firewallName, $config)) : null;
-        $authenticatorId = sprintf('security.authenticator.access_token.%s', $firewallName);
+        $authenticatorId = \sprintf('security.authenticator.access_token.%s', $firewallName);
         $extractorId = $this->createExtractor($container, $firewallName, $config['token_extractors']);
         $tokenHandlerId = $this->createTokenHandler($container, $firewallName, $config['token_handler'], $userProviderId);
 
@@ -134,15 +134,15 @@
             'request_body' => 'security.access_token_extractor.request_body',
             'header' => 'security.access_token_extractor.header',
         ];
-        $extractors = array_map(fn ($extractor) => $aliases[$extractor] ?? $extractor, $extractors);
+        $extractors = array_map(static fn ($extractor) => $aliases[$extractor] ?? $extractor, $extractors);
 
         if (1 === \count($extractors)) {
             return current($extractors);
         }
-        $extractorId = sprintf('security.authenticator.access_token.chain_extractor.%s', $firewallName);
+        $extractorId = \sprintf('security.authenticator.access_token.chain_extractor.%s', $firewallName);
         $container
             ->setDefinition($extractorId, new ChildDefinition('security.authenticator.access_token.chain_extractor'))
-            ->replaceArgument(0, array_map(fn (string $extractorId): Reference => new Reference($extractorId), $extractors))
+            ->replaceArgument(0, array_map(static fn (string $extractorId): Reference => new Reference($extractorId), $extractors))
         ;
 
         return $extractorId;
@@ -151,7 +151,7 @@
     private function createTokenHandler(ContainerBuilder $container, string $firewallName, array $config, ?string $userProviderId): string
     {
         $key = array_keys($config)[0];
-        $id = sprintf('security.access_token_handler.%s', $firewallName);
+        $id = \sprintf('security.access_token_handler.%s', $firewallName);
 
         foreach ($this->tokenHandlerFactories as $factory) {
             if ($key !== $factory->getKey()) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/CustomAuthenticatorFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/CustomAuthenticatorFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/CustomAuthenticatorFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/CustomAuthenticatorFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,8 +47,8 @@
         $factoryRootNode
             ->fixXmlConfig('custom_authenticator')
             ->validate()
-                ->ifTrue(fn ($v) => isset($v['custom_authenticators']) && empty($v['custom_authenticators']))
-                ->then(function ($v) {
+                ->ifTrue(static fn ($v) => isset($v['custom_authenticators']) && empty($v['custom_authenticators']))
+                ->then(static function ($v) {
                     unset($v['custom_authenticators']);
 
                     return $v;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/LoginLinkFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/LoginLinkFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/LoginLinkFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/LoginLinkFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,10 +61,10 @@
                 ->info('Cache service id used to expired links of max_uses is set.')
             ->end()
             ->scalarNode('success_handler')
-                ->info(sprintf('A service id that implements %s.', AuthenticationSuccessHandlerInterface::class))
+                ->info(\sprintf('A service id that implements %s.', AuthenticationSuccessHandlerInterface::class))
             ->end()
             ->scalarNode('failure_handler')
-                ->info(sprintf('A service id that implements %s.', AuthenticationFailureHandlerInterface::class))
+                ->info(\sprintf('A service id that implements %s.', AuthenticationFailureHandlerInterface::class))
             ->end()
             ->scalarNode('provider')
                 ->info('The user provider to load users from.')
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/LoginThrottlingFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/LoginThrottlingFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/LoginThrottlingFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/LoginThrottlingFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
     {
         $builder
             ->children()
-                ->scalarNode('limiter')->info(sprintf('A service id implementing "%s".', RequestRateLimiterInterface::class))->end()
+                ->scalarNode('limiter')->info(\sprintf('A service id implementing "%s".', RequestRateLimiterInterface::class))->end()
                 ->integerNode('max_attempts')->defaultValue(5)->end()
                 ->scalarNode('interval')->defaultValue('1 minute')->end()
                 ->scalarNode('lock_factory')->info('The service ID of the lock factory used by the login rate limiter (or null to disable locking)')->defaultNull()->end()
@@ -97,7 +97,7 @@
 
         if (null !== $limiterConfig['lock_factory']) {
             if (!interface_exists(LockInterface::class)) {
-                throw new LogicException(sprintf('Rate limiter "%s" requires the Lock component to be installed. Try running "composer require symfony/lock".', $name));
+                throw new LogicException(\sprintf('Rate limiter "%s" requires the Lock component to be installed. Try running "composer require symfony/lock".', $name));
             }
 
             $limiter->replaceArgument(2, new Reference($limiterConfig['lock_factory']));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RememberMeFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RememberMeFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RememberMeFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RememberMeFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,7 @@
         // create remember me handler (which manage the remember-me cookies)
         $rememberMeHandlerId = 'security.authenticator.remember_me_handler.'.$firewallName;
         if (isset($config['service']) && isset($config['token_provider'])) {
-            throw new InvalidConfigurationException(sprintf('You cannot use both "service" and "token_provider" in "security.firewalls.%s.remember_me".', $firewallName));
+            throw new InvalidConfigurationException(\sprintf('You cannot use both "service" and "token_provider" in "security.firewalls.%s.remember_me".', $firewallName));
         }
 
         if (isset($config['service'])) {
@@ -138,7 +138,7 @@
             ->scalarNode('service')->end()
             ->arrayNode('user_providers')
                 ->beforeNormalization()
-                    ->ifString()->then(fn ($v) => [$v])
+                    ->ifString()->then(static fn ($v) => [$v])
                 ->end()
                 ->prototype('scalar')->end()
             ->end()
@@ -152,7 +152,7 @@
             ->end()
             ->arrayNode('token_provider')
                 ->beforeNormalization()
-                    ->ifString()->then(fn ($v) => ['service' => $v])
+                    ->ifString()->then(static fn ($v) => ['service' => $v])
                 ->end()
                 ->children()
                     ->scalarNode('service')->info('The service ID of a custom rememberme token provider.')->end()
@@ -203,7 +203,7 @@
         }
 
         if (!$tokenProviderId) {
-            throw new InvalidConfigurationException(sprintf('No token provider was set for firewall "%s". Either configure a service ID or set "remember_me.token_provider.doctrine" to true.', $firewallName));
+            throw new InvalidConfigurationException(\sprintf('No token provider was set for firewall "%s". Either configure a service ID or set "remember_me.token_provider.doctrine" to true.', $firewallName));
         }
 
         return $tokenProviderId;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/SignatureAlgorithmFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/SignatureAlgorithmFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/SignatureAlgorithmFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/SignatureAlgorithmFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
             case 'ES384':
             case 'ES512':
                 if (!class_exists(Algorithm::class.'\\'.$algorithm)) {
-                    throw new \LogicException(sprintf('You cannot use the "%s" signature algorithm since "web-token/jwt-signature-algorithm-ecdsa" is not installed. Try running "composer require web-token/jwt-signature-algorithm-ecdsa".', $algorithm));
+                    throw new \LogicException(\sprintf('You cannot use the "%s" signature algorithm since "web-token/jwt-signature-algorithm-ecdsa" is not installed. Try running "composer require web-token/jwt-signature-algorithm-ecdsa".', $algorithm));
                 }
 
                 $algorithm = Algorithm::class.'\\'.$algorithm;
@@ -38,6 +38,6 @@
                 return new $algorithm();
         }
 
-        throw new InvalidArgumentException(sprintf('Unsupported signature algorithm "%s". Only ES* algorithms are supported. If you want to use another algorithm, create your TokenHandler as a service.', $algorithm));
+        throw new InvalidArgumentException(\sprintf('Unsupported signature algorithm "%s". Only ES* algorithms are supported. If you want to use another algorithm, create your TokenHandler as a service.', $algorithm));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/UserProvider/InMemoryFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/UserProvider/InMemoryFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/UserProvider/InMemoryFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/UserProvider/InMemoryFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,7 +63,7 @@
                         ->children()
                             ->scalarNode('password')->defaultNull()->end()
                             ->arrayNode('roles')
-                                ->beforeNormalization()->ifString()->then(fn ($v) => preg_split('/\s*,\s*/', $v))->end()
+                                ->beforeNormalization()->ifString()->then(static fn ($v) => preg_split('/\s*,\s*/', $v))->end()
                                 ->prototype('scalar')->end()
                             ->end()
                         ->end()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/UserProvider/LdapFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/UserProvider/LdapFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/UserProvider/LdapFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/UserProvider/LdapFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,7 +68,7 @@
                     ->prototype('scalar')->end()
                 ->end()
                 ->arrayNode('default_roles')
-                    ->beforeNormalization()->ifString()->then(fn ($v) => preg_split('/\s*,\s*/', $v))->end()
+                    ->beforeNormalization()->ifString()->then(static fn ($v) => preg_split('/\s*,\s*/', $v))->end()
                     ->requiresAtLeastOneElement()
                     ->prototype('scalar')->end()
                 ->end()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -98,6 +98,7 @@
     {
         if (!array_filter($configs)) {
             trigger_deprecation('symfony/security-bundle', '6.3', 'Enabling bundle "%s" and not configuring it is deprecated.', SecurityBundle::class);
+
             // uncomment the following line in 7.0
             // throw new InvalidConfigurationException(sprintf('Enabling bundle "%s" and not configuring it is not allowed.', SecurityBundle::class));
             return;
@@ -207,7 +208,7 @@
             MainConfiguration::STRATEGY_CONSENSUS => new Definition(ConsensusStrategy::class, [$allowIfAllAbstainDecisions, $allowIfEqualGrantedDeniedDecisions]),
             MainConfiguration::STRATEGY_UNANIMOUS => new Definition(UnanimousStrategy::class, [$allowIfAllAbstainDecisions]),
             MainConfiguration::STRATEGY_PRIORITY => new Definition(PriorityStrategy::class, [$allowIfAllAbstainDecisions]),
-            default => throw new InvalidConfigurationException(sprintf('The strategy "%s" is not supported.', $strategy)),
+            default => throw new InvalidConfigurationException(\sprintf('The strategy "%s" is not supported.', $strategy)),
         };
     }
 
@@ -334,7 +335,7 @@
                 $authenticators[$name] = ServiceLocatorTagPass::register($container, $firewallAuthenticatorRefs);
             }
             $contextId = 'security.firewall.map.context.'.$name;
-            $isLazy = !$firewall['stateless'] && (!empty($firewall['anonymous']['lazy']) || $firewall['lazy']);
+            $isLazy = !$firewall['stateless'] && $firewall['lazy'];
             $context = new ChildDefinition($isLazy ? 'security.firewall.lazy_context' : 'security.firewall.context');
             $context = $container->setDefinition($contextId, $context);
             $context
@@ -396,7 +397,7 @@
         $defaultProvider = null;
         if (isset($firewall['provider'])) {
             if (!isset($providerIds[$normalizedName = str_replace('-', '_', $firewall['provider'])])) {
-                throw new InvalidConfigurationException(sprintf('Invalid firewall "%s": user provider "%s" not found.', $id, $firewall['provider']));
+                throw new InvalidConfigurationException(\sprintf('Invalid firewall "%s": user provider "%s" not found.', $id, $firewall['provider']));
             }
             $defaultProvider = $providerIds[$normalizedName];
 
@@ -516,7 +517,7 @@
         $configuredEntryPoint = $defaultEntryPoint;
 
         // authenticator manager
-        $authenticators = array_map(fn ($id) => new Reference($id), $firewallAuthenticationProviders);
+        $authenticators = array_map(static fn ($id) => new Reference($id), $firewallAuthenticationProviders);
         $container
             ->setDefinition($managerId = 'security.authenticator.manager.'.$id, new ChildDefinition('security.authenticator.manager'))
             ->replaceArgument(0, $authenticators)
@@ -630,7 +631,7 @@
                 $userProvider = $this->getUserProvider($container, $id, $firewall, $key, $defaultProvider, $providerIds);
 
                 if (!$factory instanceof AuthenticatorFactoryInterface) {
-                    throw new InvalidConfigurationException(sprintf('Authenticator factory "%s" ("%s") must implement "%s".', get_debug_type($factory), $key, AuthenticatorFactoryInterface::class));
+                    throw new InvalidConfigurationException(\sprintf('Authenticator factory "%s" ("%s") must implement "%s".', get_debug_type($factory), $key, AuthenticatorFactoryInterface::class));
                 }
 
                 if (null === $userProvider && !$factory instanceof StatelessAuthenticatorFactoryInterface) {
@@ -667,7 +668,7 @@
     {
         if (isset($firewall[$factoryKey]['provider'])) {
             if (!isset($providerIds[$normalizedName = str_replace('-', '_', $firewall[$factoryKey]['provider'])])) {
-                throw new InvalidConfigurationException(sprintf('Invalid firewall "%s": user provider "%s" not found.', $id, $firewall[$factoryKey]['provider']));
+                throw new InvalidConfigurationException(\sprintf('Invalid firewall "%s": user provider "%s" not found.', $id, $firewall[$factoryKey]['provider']));
             }
 
             return $providerIds[$normalizedName];
@@ -685,7 +686,7 @@
             return $this->createMissingUserProvider($container, $id, $factoryKey);
         }
 
-        if ('remember_me' === $factoryKey || 'anonymous' === $factoryKey || 'custom_authenticators' === $factoryKey) {
+        if ('remember_me' === $factoryKey || 'custom_authenticators' === $factoryKey) {
             if ('custom_authenticators' === $factoryKey) {
                 trigger_deprecation('symfony/security-bundle', '5.4', 'Not configuring explicitly the provider for the "%s" firewall is deprecated because it\'s ambiguous as there is more than one registered provider. Set the "provider" key to one of the configured providers, even if your custom authenticators don\'t use it.', $id);
             }
@@ -693,12 +694,12 @@
             return 'security.user_providers';
         }
 
-        throw new InvalidConfigurationException(sprintf('Not configuring explicitly the provider for the "%s" authenticator on "%s" firewall is ambiguous as there is more than one registered provider.', $factoryKey, $id));
+        throw new InvalidConfigurationException(\sprintf('Not configuring explicitly the provider for the "%s" authenticator on "%s" firewall is ambiguous as there is more than one registered provider.', $factoryKey, $id));
     }
 
     private function createMissingUserProvider(ContainerBuilder $container, string $id, string $factoryKey): string
     {
-        $userProvider = sprintf('security.user.provider.missing.%s', $factoryKey);
+        $userProvider = \sprintf('security.user.provider.missing.%s', $factoryKey);
         $container->setDefinition(
             $userProvider,
             (new ChildDefinition('security.user.provider.missing'))->replaceArgument(0, $id)
@@ -778,7 +779,7 @@
                 $config['algorithm'] = 'native';
                 $config['native_algorithm'] = \PASSWORD_ARGON2I;
             } else {
-                throw new InvalidConfigurationException(sprintf('Algorithm "argon2i" is not available. Either use "%s" or upgrade to PHP 7.2+ instead.', \defined('SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13') ? 'argon2id", "auto' : 'auto'));
+                throw new InvalidConfigurationException(\sprintf('Algorithm "argon2i" is not available. Either use "%s" or upgrade to PHP 7.2+ instead.', \defined('SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13') ? 'argon2id", "auto' : 'auto'));
             }
 
             return $this->createHasher($config);
@@ -791,7 +792,7 @@
                 $config['algorithm'] = 'native';
                 $config['native_algorithm'] = \PASSWORD_ARGON2ID;
             } else {
-                throw new InvalidConfigurationException(sprintf('Algorithm "argon2id" is not available. Either use "%s", upgrade to PHP 7.3+ or use libsodium 1.0.15+ instead.', \defined('PASSWORD_ARGON2I') || $hasSodium ? 'argon2i", "auto' : 'auto'));
+                throw new InvalidConfigurationException(\sprintf('Algorithm "argon2id" is not available. Either use "%s", upgrade to PHP 7.3+ or use libsodium 1.0.15+ instead.', \defined('PASSWORD_ARGON2I') || $hasSodium ? 'argon2i", "auto' : 'auto'));
             }
 
             return $this->createHasher($config);
@@ -847,7 +848,7 @@
         foreach ($this->userProviderFactories as $factory) {
             $key = str_replace('-', '_', $factory->getKey());
 
-            if (!empty($provider[$key])) {
+            if (\array_key_exists($key, $provider)) {
                 $factory->create($container, $name, $provider[$key]);
 
                 return $name;
@@ -875,7 +876,7 @@
             return $name;
         }
 
-        throw new InvalidConfigurationException(sprintf('Unable to create definition for "%s" user provider.', $name));
+        throw new InvalidConfigurationException(\sprintf('Unable to create definition for "%s" user provider.', $name));
     }
 
     private function getUserProviderId(string $name): string
@@ -906,10 +907,10 @@
         $userProvider = isset($config['provider']) ? $this->getUserProviderId($config['provider']) : $defaultProvider;
 
         if (!$userProvider) {
-            throw new InvalidConfigurationException(sprintf('Not configuring explicitly the provider for the "switch_user" listener on "%s" firewall is ambiguous as there is more than one registered provider.', $id));
+            throw new InvalidConfigurationException(\sprintf('Not configuring explicitly the provider for the "switch_user" listener on "%s" firewall is ambiguous as there is more than one registered provider.', $id));
         }
         if ($stateless && null !== $config['target_route']) {
-            throw new InvalidConfigurationException(sprintf('Cannot set a "target_route" for the "switch_user" listener on the "%s" firewall as it is stateless.', $id));
+            throw new InvalidConfigurationException(\sprintf('Cannot set a "target_route" for the "switch_user" listener on the "%s" firewall as it is stateless.', $id));
         }
 
         $switchUserListenerId = 'security.authentication.switchuser_listener.'.$id;
@@ -954,7 +955,7 @@
                 $container->resolveEnvPlaceholders($ip, null, $usedEnvs);
 
                 if (!$usedEnvs && !$this->isValidIps($ip)) {
-                    throw new \LogicException(sprintf('The given value "%s" in the "security.access_control" config option is not a valid IP address.', $ip));
+                    throw new \LogicException(\sprintf('The given value "%s" in the "security.access_control" config option is not a valid IP address.', $ip));
                 }
 
                 $usedEnvs = null;
@@ -1047,7 +1048,7 @@
 
     private function isValidIps(string|array $ips): bool
     {
-        $ipsList = array_reduce((array) $ips, fn ($ips, $ip) => array_merge($ips, preg_split('/\s*,\s*/', $ip)), []);
+        $ipsList = array_reduce((array) $ips, static fn ($ips, $ip) => array_merge($ips, preg_split('/\s*,\s*/', $ip)), []);
 
         if (!$ipsList) {
             return false;
@@ -1099,7 +1100,7 @@
                 $factories[] = array_merge($factory, [$i]);
             }
 
-            usort($factories, fn ($a, $b) => $b[0] <=> $a[0] ?: $a[2] <=> $b[2]);
+            usort($factories, static fn ($a, $b) => $b[0] <=> $a[0] ?: $a[2] <=> $b[2]);
 
             $this->sortedFactories = array_column($factories, 1);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Resources/config/security_authenticator.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Resources/config/security_authenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Resources/config/security_authenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Resources/config/security_authenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
         // Listeners
         ->set('security.listener.check_authenticator_credentials', CheckCredentialsListener::class)
             ->args([
-               service('security.password_hasher_factory'),
+                service('security.password_hasher_factory'),
             ])
             ->tag('kernel.event_subscriber')
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallAwareTrait.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallAwareTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallAwareTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallAwareTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
         if (!$this->locator->has($firewallName)) {
             $message = 'No '.$serviceIdentifier.' found for this firewall.';
             if (\defined(static::class.'::FIREWALL_OPTION')) {
-                $message .= sprintf(' Did you forget to add a "'.static::FIREWALL_OPTION.'" key under your "%s" firewall?', $firewallName);
+                $message .= \sprintf(' Did you forget to add a "'.static::FIREWALL_OPTION.'" key under your "%s" firewall?', $firewallName);
             }
 
             throw new \LogicException($message);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallConfig.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallConfig.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallConfig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallConfig.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
         private readonly ?string $accessDeniedUrl = null,
         private readonly array $authenticators = [],
         private readonly ?array $switchUser = null,
-        private readonly ?array $logout = null
+        private readonly ?array $logout = null,
     ) {
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Bundle\SecurityBundle\Security;
 
 use Symfony\Component\Security\Http\Firewall\ExceptionListener;
+use Symfony\Component\Security\Http\Firewall\FirewallListenerInterface;
 use Symfony\Component\Security\Http\Firewall\LogoutListener;
 
 /**
@@ -28,7 +29,7 @@
     private ?FirewallConfig $config;
 
     /**
-     * @param iterable<mixed, callable> $listeners
+     * @param iterable<mixed, callable|FirewallListenerInterface> $listeners
      */
     public function __construct(iterable $listeners, ?ExceptionListener $exceptionListener = null, ?LogoutListener $logoutListener = null, ?FirewallConfig $config = null)
     {
@@ -47,7 +48,7 @@
     }
 
     /**
-     * @return iterable<mixed, callable>
+     * @return iterable<mixed, callable|FirewallListenerInterface>
      */
     public function getListeners(): iterable
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Security/LazyFirewallContext.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Security/LazyFirewallContext.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Security/LazyFirewallContext.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Security/LazyFirewallContext.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
     {
         $listeners = [];
         $request = $event->getRequest();
-        $lazy = $request->isMethodCacheable();
+        $lazy = true;
 
         foreach (parent::getListeners() as $listener) {
             if (!$lazy || !$listener instanceof FirewallListenerInterface) {
@@ -67,7 +67,7 @@
             return;
         }
 
-        $this->tokenStorage->setInitializer(function () use ($event, $listeners) {
+        $this->tokenStorage->setInitializer(static function () use ($event, $listeners) {
             $event = new LazyResponseEvent($event);
             foreach ($listeners as $listener) {
                 $listener($event);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Security.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Security.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Security.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Security.php	2026-05-20 10:56:49.000000000 +0200
@@ -162,7 +162,7 @@
 
         if ($validateCsrfToken) {
             if (!$this->container->has('security.csrf.token_manager') || !$logoutConfig = $firewallConfig->getLogout()) {
-                throw new LogicException(sprintf('Unable to logout with CSRF token validation. Either make sure that CSRF protection is enabled and "logout" is configured on the "%s" firewall, or bypass CSRF token validation explicitly by passing false to the $validateCsrfToken argument of this method.', $firewallConfig->getName()));
+                throw new LogicException(\sprintf('Unable to logout with CSRF token validation. Either make sure that CSRF protection is enabled and "logout" is configured on the "%s" firewall, or bypass CSRF token validation explicitly by passing false to the $validateCsrfToken argument of this method.', $firewallConfig->getName()));
             }
             $csrfToken = ParameterBagUtils::getRequestParameterValue($request, $logoutConfig['csrf_parameter']);
             if (!\is_string($csrfToken) || !$this->container->get('security.csrf.token_manager')->isTokenValid(new CsrfToken($logoutConfig['csrf_token_id'], $csrfToken))) {
@@ -181,20 +181,19 @@
     private function getAuthenticator(?string $authenticatorName, string $firewallName): AuthenticatorInterface
     {
         if (!isset($this->authenticators[$firewallName])) {
-            throw new LogicException(sprintf('No authenticators found for firewall "%s".', $firewallName));
+            throw new LogicException(\sprintf('No authenticators found for firewall "%s".', $firewallName));
         }
 
         /** @var ServiceProviderInterface $firewallAuthenticatorLocator */
         $firewallAuthenticatorLocator = $this->authenticators[$firewallName];
 
         if (!$authenticatorName) {
-            $authenticatorIds = array_keys($firewallAuthenticatorLocator->getProvidedServices());
-
+            $authenticatorIds = array_filter(array_keys($firewallAuthenticatorLocator->getProvidedServices()), static fn (string $authenticatorId) => $authenticatorId !== \sprintf('security.authenticator.remember_me.%s', $firewallName));
             if (!$authenticatorIds) {
-                throw new LogicException(sprintf('No authenticator was found for the firewall "%s".', $firewallName));
+                throw new LogicException(\sprintf('No authenticator was found for the firewall "%s".', $firewallName));
             }
             if (1 < \count($authenticatorIds)) {
-                throw new LogicException(sprintf('Too many authenticators were found for the current firewall "%s". You must provide an instance of "%s" to login programmatically. The available authenticators for the firewall "%s" are "%s".', $firewallName, AuthenticatorInterface::class, $firewallName, implode('" ,"', $authenticatorIds)));
+                throw new LogicException(\sprintf('Too many authenticators were found for the current firewall "%s". You must provide an instance of "%s" to login programmatically. The available authenticators for the firewall "%s" are "%s".', $firewallName, AuthenticatorInterface::class, $firewallName, implode('" ,"', $authenticatorIds)));
             }
 
             return $firewallAuthenticatorLocator->get($authenticatorIds[0]);
@@ -207,7 +206,7 @@
         $authenticatorId = 'security.authenticator.'.$authenticatorName.'.'.$firewallName;
 
         if (!$firewallAuthenticatorLocator->has($authenticatorId)) {
-            throw new LogicException(sprintf('Unable to find an authenticator named "%s" for the firewall "%s". Available authenticators: "%s".', $authenticatorName, $firewallName, implode('", "', array_keys($firewallAuthenticatorLocator->getProvidedServices()))));
+            throw new LogicException(\sprintf('Unable to find an authenticator named "%s" for the firewall "%s". Available authenticators: "%s".', $authenticatorName, $firewallName, implode('", "', array_keys($firewallAuthenticatorLocator->getProvidedServices()))));
         }
 
         return $firewallAuthenticatorLocator->get($authenticatorId);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/CacheWarmer/ExpressionCacheWarmerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/CacheWarmer/ExpressionCacheWarmerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/CacheWarmer/ExpressionCacheWarmerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/CacheWarmer/ExpressionCacheWarmerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
                 $this->assertSame($expectedExpression, $expression);
                 $this->assertSame($expectedNames, $names);
 
-                return $this->createMock(ParsedExpression::class);
+                return $this->createStub(ParsedExpression::class);
             })
         ;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Command/DebugFirewallCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Command/DebugFirewallCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Command/DebugFirewallCommandTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Command/DebugFirewallCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,185 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\SecurityBundle\Tests\Command;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Bundle\SecurityBundle\Command\DebugFirewallCommand;
+use Symfony\Bundle\SecurityBundle\Security\FirewallConfig;
+use Symfony\Bundle\SecurityBundle\Security\FirewallContext;
+use Symfony\Bundle\SecurityBundle\Tests\Fixtures\DummyAuthenticator;
+use Symfony\Component\Console\Tester\CommandTester;
+use Symfony\Component\DependencyInjection\Container;
+use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
+
+class DebugFirewallCommandTest extends TestCase
+{
+    public function testFirewallListOutputMatchesFixture()
+    {
+        $firewallNames = ['main', 'api'];
+
+        $command = new DebugFirewallCommand($firewallNames, new Container(), new Container(), []);
+        $tester = new CommandTester($command);
+
+        $this->assertSame(0, $tester->execute([]));
+        $this->assertStringContainsString('Firewalls', $tester->getDisplay());
+        $this->assertStringContainsString('The following firewalls are defined:', $tester->getDisplay());
+        $this->assertStringContainsString('* main', $tester->getDisplay());
+        $this->assertStringContainsString('* api', $tester->getDisplay());
+        $this->assertStringContainsString('To view details of a specific firewall', $tester->getDisplay());
+    }
+
+    public function testFirewallNotFoundDisplaysError()
+    {
+        $firewallNames = ['main', 'api'];
+
+        $authenticators = [];
+
+        $command = new DebugFirewallCommand(
+            $firewallNames,
+            new Container(),
+            new Container(),
+            $authenticators
+        );
+
+        $tester = new CommandTester($command);
+
+        $this->assertSame(1, $tester->execute(['name' => 'admin']));
+        $this->assertStringContainsString('Firewall admin was not found.', $tester->getDisplay());
+        $this->assertStringContainsString('Available firewalls are: main, api', $tester->getDisplay());
+    }
+
+    public function testFirewallMainOutputMatchesFixture()
+    {
+        $firewallNames = ['main'];
+
+        $config = new FirewallConfig(
+            name: 'main',
+            userChecker: 'user_checker_service',
+            requestMatcher: null,
+            securityEnabled: true,
+            stateless: false,
+            provider: 'user_provider_service',
+            context: 'main',
+            entryPoint: 'entry_point_service',
+            accessDeniedHandler: 'access_denied_handler_service',
+            accessDeniedUrl: '/access-denied',
+            authenticators: [],
+            switchUser: null
+        );
+
+        $context = new FirewallContext([], config: $config);
+
+        $contexts = new Container();
+        $contexts->set('security.firewall.map.context.main', $context);
+
+        $eventDispatchers = new Container();
+        $authenticator = new DummyAuthenticator();
+        $authenticators = ['main' => [$authenticator]];
+
+        $command = new DebugFirewallCommand($firewallNames, $contexts, $eventDispatchers, $authenticators);
+        $tester = new CommandTester($command);
+
+        $this->assertSame(0, $tester->execute(['name' => 'main', '--events' => true]));
+        $this->assertEquals($this->getFixtureOutput('firewall_main_output.txt'), trim(str_replace(\PHP_EOL, "\n", $tester->getDisplay())));
+    }
+
+    public function testFirewallWithEventsOutputMatchesFixture()
+    {
+        $firewallNames = ['main'];
+
+        $config = new FirewallConfig(
+            name: 'main',
+            userChecker: 'user_checker_service',
+            context: 'main',
+            stateless: false,
+            provider: 'user_provider_service',
+            entryPoint: 'entry_point_service',
+            accessDeniedHandler: 'access_denied_handler_service',
+            accessDeniedUrl: '/access-denied',
+        );
+
+        $context = new FirewallContext([], config: $config);
+
+        $contexts = new Container();
+        $contexts->set('security.firewall.map.context.main', $context);
+
+        $dispatcher = new EventDispatcher();
+        $listener = static fn () => null;
+        $listenerTwo = static fn (int $number) => $number * 2;
+        $dispatcher->addListener('security.event', $listener, 42);
+        $dispatcher->addListener('security.event', $listenerTwo, 42);
+
+        $eventDispatchers = new Container();
+        $eventDispatchers->set('security.event_dispatcher.main', $dispatcher);
+
+        $authenticator = new DummyAuthenticator();
+        $authenticatorTwo = new DummyAuthenticator();
+        $authenticatorThree = new DummyAuthenticator();
+        $authenticators = ['main' => [$authenticator, $authenticatorTwo], 'api' => [$authenticatorThree]];
+
+        $command = new DebugFirewallCommand($firewallNames, $contexts, $eventDispatchers, $authenticators);
+        $tester = new CommandTester($command);
+
+        $this->assertSame(0, $tester->execute(['name' => 'main', '--events' => true]));
+        $this->assertEquals($this->getFixtureOutput('firewall_main_with_events_output.txt'), trim(str_replace(\PHP_EOL, "\n", $tester->getDisplay())));
+    }
+
+    public function testFirewallWithSwitchUserDisplaysSection()
+    {
+        $firewallNames = ['main'];
+
+        $switchUserConfig = [
+            'parameter' => '_switch_user_test',
+            'provider' => 'custom_provider_test',
+            'role' => 'ROLE_ALLOWED_TO_SWITCH',
+        ];
+
+        $config = new FirewallConfig(
+            name: 'main',
+            userChecker: 'user_checker_service_test',
+            context: 'main',
+            stateless: false,
+            provider: 'user_provider_service_test',
+            entryPoint: 'entry_point_service_test',
+            accessDeniedHandler: 'access_denied_handler_service_test',
+            accessDeniedUrl: '/access-denied-test',
+            switchUser: $switchUserConfig,
+        );
+
+        $context = new FirewallContext([], config: $config);
+
+        $contexts = new Container();
+        $contexts->set('security.firewall.map.context.main', $context);
+
+        $eventDispatchers = new Container();
+        $authenticator = new DummyAuthenticator();
+        $authenticatorTwo = $this->createStub(AuthenticatorInterface::class);
+        $authenticators = ['main' => [$authenticator], 'api' => [$authenticatorTwo]];
+
+        $command = new DebugFirewallCommand(
+            $firewallNames,
+            $contexts,
+            $eventDispatchers,
+            $authenticators
+        );
+        $tester = new CommandTester($command);
+
+        $this->assertSame(0, $tester->execute(['name' => 'main']));
+        $this->assertEquals($this->getFixtureOutput('firewall_main_with_switch_user.txt'), trim(str_replace(\PHP_EOL, "\n", $tester->getDisplay())));
+    }
+
+    private function getFixtureOutput(string $file): string
+    {
+        return trim(file_get_contents(__DIR__.'/../Fixtures/Descriptor/'.$file));
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DataCollector/SecurityDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DataCollector/SecurityDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DataCollector/SecurityDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DataCollector/SecurityDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,7 @@
 use Symfony\Bundle\SecurityBundle\DependencyInjection\MainConfiguration;
 use Symfony\Bundle\SecurityBundle\Security\FirewallConfig;
 use Symfony\Bundle\SecurityBundle\Security\FirewallMap;
+use Symfony\Component\DependencyInjection\Container;
 use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
@@ -31,7 +32,6 @@
 use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface;
 use Symfony\Component\Security\Core\Role\RoleHierarchy;
 use Symfony\Component\Security\Core\User\InMemoryUser;
-use Symfony\Component\Security\Http\FirewallMapInterface;
 use Symfony\Component\Security\Http\Logout\LogoutUrlGenerator;
 use Symfony\Component\VarDumper\Caster\ClassStub;
 use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
@@ -40,7 +40,7 @@
 {
     public function testCollectWhenSecurityIsDisabled()
     {
-        $collector = new SecurityDataCollector(null, null, null, null, null, null, true);
+        $collector = new SecurityDataCollector(null, null, null, null, null, null);
         $collector->collect(new Request(), new Response());
 
         $this->assertSame('security', $collector->getName());
@@ -60,7 +60,7 @@
     public function testCollectWhenAuthenticationTokenIsNull()
     {
         $tokenStorage = new TokenStorage();
-        $collector = new SecurityDataCollector($tokenStorage, $this->getRoleHierarchy(), null, null, null, null, true);
+        $collector = new SecurityDataCollector($tokenStorage, $this->getRoleHierarchy(), null, null, null, null);
         $collector->collect(new Request(), new Response());
 
         $this->assertTrue($collector->isEnabled());
@@ -82,7 +82,7 @@
         $tokenStorage = new TokenStorage();
         $tokenStorage->setToken(new UsernamePasswordToken(new InMemoryUser('hhamon', 'P4$$w0rD', $roles), 'provider', $roles));
 
-        $collector = new SecurityDataCollector($tokenStorage, $this->getRoleHierarchy(), null, null, null, null, true);
+        $collector = new SecurityDataCollector($tokenStorage, $this->getRoleHierarchy(), null, null, null, null);
         $collector->collect(new Request(), new Response());
         $collector->lateCollect();
 
@@ -105,7 +105,7 @@
         $tokenStorage = new TokenStorage();
         $tokenStorage->setToken(new SwitchUserToken(new InMemoryUser('hhamon', 'P4$$w0rD', ['ROLE_USER', 'ROLE_PREVIOUS_ADMIN']), 'provider', ['ROLE_USER', 'ROLE_PREVIOUS_ADMIN'], $adminToken));
 
-        $collector = new SecurityDataCollector($tokenStorage, $this->getRoleHierarchy(), null, null, null, null, true);
+        $collector = new SecurityDataCollector($tokenStorage, $this->getRoleHierarchy(), null, null, null, null);
         $collector->collect(new Request(), new Response());
         $collector->lateCollect();
 
@@ -135,7 +135,7 @@
             ->with($request)
             ->willReturn($firewallConfig);
 
-        $collector = new SecurityDataCollector(null, null, null, null, $firewallMap, new TraceableFirewallListener($firewallMap, new EventDispatcher(), new LogoutUrlGenerator()), true);
+        $collector = new SecurityDataCollector(null, null, null, null, $firewallMap, new TraceableFirewallListener($firewallMap, new EventDispatcher(), new LogoutUrlGenerator()));
         $collector->collect($request, new Response());
         $collector->lateCollect();
         $collected = $collector->getFirewall();
@@ -159,27 +159,21 @@
         $response = new Response();
 
         // Don't inject any firewall map
-        $collector = new SecurityDataCollector(null, null, null, null, null, null, true);
+        $collector = new SecurityDataCollector(null, null, null, null, null, null);
         $collector->collect($request, $response);
         $this->assertNull($collector->getFirewall());
 
         // Inject an instance that is not context aware
-        $firewallMap = $this
-            ->getMockBuilder(FirewallMapInterface::class)
-            ->disableOriginalConstructor()
-            ->getMock();
+        $firewallMap = new FirewallMap(new Container(), []);
 
-        $collector = new SecurityDataCollector(null, null, null, null, $firewallMap, new TraceableFirewallListener($firewallMap, new EventDispatcher(), new LogoutUrlGenerator()), true);
+        $collector = new SecurityDataCollector(null, null, null, null, $firewallMap, new TraceableFirewallListener($firewallMap, new EventDispatcher(), new LogoutUrlGenerator()));
         $collector->collect($request, $response);
         $this->assertNull($collector->getFirewall());
 
         // Null config
-        $firewallMap = $this
-            ->getMockBuilder(FirewallMap::class)
-            ->disableOriginalConstructor()
-            ->getMock();
+        $firewallMap = new FirewallMap(new Container(), []);
 
-        $collector = new SecurityDataCollector(null, null, null, null, $firewallMap, new TraceableFirewallListener($firewallMap, new EventDispatcher(), new LogoutUrlGenerator()), true);
+        $collector = new SecurityDataCollector(null, null, null, null, $firewallMap, new TraceableFirewallListener($firewallMap, new EventDispatcher(), new LogoutUrlGenerator()));
         $collector->collect($request, $response);
         $this->assertNull($collector->getFirewall());
     }
@@ -190,9 +184,9 @@
     public function testGetListeners()
     {
         $request = new Request();
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
         $event->setResponse($response = new Response());
-        $listener = function ($e) use ($event, &$listenerCalled) {
+        $listener = static function ($e) use ($event, &$listenerCalled) {
             $listenerCalled += $e === $event;
         };
         $firewallMap = $this
@@ -200,10 +194,10 @@
             ->disableOriginalConstructor()
             ->getMock();
         $firewallMap
-            ->expects($this->any())
             ->method('getFirewallConfig')
-            ->with($request)
-            ->willReturn(null);
+            ->willReturnMap([
+                [$request, null],
+            ]);
         $firewallMap
             ->expects($this->once())
             ->method('getListeners')
@@ -213,7 +207,7 @@
         $firewall = new TraceableFirewallListener($firewallMap, new EventDispatcher(), new LogoutUrlGenerator());
         $firewall->onKernelRequest($event);
 
-        $collector = new SecurityDataCollector(null, null, null, null, $firewallMap, $firewall, true);
+        $collector = new SecurityDataCollector(null, null, null, null, $firewallMap, $firewall);
         $collector->collect($request, $response);
 
         $this->assertNotEmpty($collected = $collector->getListeners()[0]);
@@ -226,7 +220,7 @@
         $voter1 = new DummyVoter();
         $voter2 = new DummyVoter();
 
-        $decoratedVoter1 = new TraceableVoter($voter1, new class() implements EventDispatcherInterface {
+        $decoratedVoter1 = new TraceableVoter($voter1, new class implements EventDispatcherInterface {
             public function dispatch(object $event, ?string $eventName = null): object
             {
                 return new \stdClass();
@@ -235,7 +229,7 @@
 
         $strategy = MainConfiguration::STRATEGY_AFFIRMATIVE;
 
-        $accessDecisionManager = $this->createMock(TraceableAccessDecisionManager::class);
+        $accessDecisionManager = $this->createStub(TraceableAccessDecisionManager::class);
 
         $accessDecisionManager
             ->method('getStrategy')
@@ -260,7 +254,7 @@
                 ],
             ]]);
 
-        $dataCollector = new SecurityDataCollector(null, null, null, $accessDecisionManager, null, null, true);
+        $dataCollector = new SecurityDataCollector(null, null, null, $accessDecisionManager, null, null);
 
         $dataCollector->collect(new Request(), new Response());
 
@@ -278,9 +272,7 @@
 
         $this->assertEquals($actualDecisionLog, $expectedDecisionLog, 'Wrong value returned by getAccessDecisionLog');
 
-        $actualVoterClasses = array_map(static function (ClassStub $classStub): string {
-            return (string) $classStub;
-        }, $dataCollector->getVoters());
+        $actualVoterClasses = array_map(static fn (ClassStub $classStub): string => (string) $classStub, $dataCollector->getVoters());
 
         $expectedVoterClasses = [
             $voter1::class,
@@ -301,7 +293,7 @@
         $voter1 = new DummyVoter();
         $voter2 = new DummyVoter();
 
-        $decoratedVoter1 = new TraceableVoter($voter1, new class() implements EventDispatcherInterface {
+        $decoratedVoter1 = new TraceableVoter($voter1, new class implements EventDispatcherInterface {
             public function dispatch(object $event, ?string $eventName = null): object
             {
                 return new \stdClass();
@@ -310,7 +302,7 @@
 
         $strategy = MainConfiguration::STRATEGY_UNANIMOUS;
 
-        $accessDecisionManager = $this->createMock(TraceableAccessDecisionManager::class);
+        $accessDecisionManager = $this->createStub(TraceableAccessDecisionManager::class);
 
         $accessDecisionManager
             ->method('getStrategy')
@@ -348,7 +340,7 @@
                 ],
             ]);
 
-        $dataCollector = new SecurityDataCollector(null, null, null, $accessDecisionManager, null, null, true);
+        $dataCollector = new SecurityDataCollector(null, null, null, $accessDecisionManager, null, null);
 
         $dataCollector->collect(new Request(), new Response());
 
@@ -379,9 +371,7 @@
 
         $this->assertEquals($actualDecisionLog, $expectedDecisionLog, 'Wrong value returned by getAccessDecisionLog');
 
-        $actualVoterClasses = array_map(static function (ClassStub $classStub): string {
-            return (string) $classStub;
-        }, $dataCollector->getVoters());
+        $actualVoterClasses = array_map(static fn (ClassStub $classStub): string => (string) $classStub, $dataCollector->getVoters());
 
         $expectedVoterClasses = [
             $voter1::class,
@@ -401,7 +391,7 @@
     {
         $strategy = MainConfiguration::STRATEGY_AFFIRMATIVE;
 
-        $accessDecisionManager = $this->createMock(TraceableAccessDecisionManager::class);
+        $accessDecisionManager = $this->createStub(TraceableAccessDecisionManager::class);
 
         $accessDecisionManager
             ->method('getStrategy')
@@ -420,7 +410,7 @@
                 'voterDetails' => [],
             ]]);
 
-        $dataCollector = new SecurityDataCollector(null, null, null, $accessDecisionManager, null, null, true);
+        $dataCollector = new SecurityDataCollector(null, null, null, $accessDecisionManager, null, null);
 
         $dataCollector->collect(new Request(), new Response());
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Debug/TraceableFirewallListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Debug/TraceableFirewallListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Debug/TraceableFirewallListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Debug/TraceableFirewallListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Event\RequestEvent;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
 use Symfony\Component\Security\Http\Authentication\AuthenticatorManager;
 use Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticatorManagerListener;
@@ -38,9 +38,9 @@
     public function testOnKernelRequestRecordsListeners()
     {
         $request = new Request();
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
-        $event->setResponse($response = new Response());
-        $listener = function ($e) use ($event, &$listenerCalled) {
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event->setResponse(new Response());
+        $listener = static function ($e) use ($event, &$listenerCalled) {
             $listenerCalled += $e === $event;
         };
         $firewallMap = $this->createMock(FirewallMap::class);
@@ -68,19 +68,20 @@
     {
         $request = new Request();
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
         $event->setResponse($response = new Response());
 
         $supportingAuthenticator = $this->createMock(DummyAuthenticator::class);
         $supportingAuthenticator
             ->method('supports')
-            ->with($request)
-            ->willReturn(true);
+            ->willReturnMap([
+                [$request, true],
+            ]);
         $supportingAuthenticator
             ->expects($this->once())
             ->method('authenticate')
             ->with($request)
-            ->willReturn(new SelfValidatingPassport(new UserBadge('robin', function () {})));
+            ->willReturn(new SelfValidatingPassport(new UserBadge('robin', static function () {})));
         $supportingAuthenticator
             ->expects($this->once())
             ->method('onAuthenticationSuccess')
@@ -90,17 +91,16 @@
             ->method('createToken')
             ->willReturn($this->createMock(TokenInterface::class));
 
-        $notSupportingAuthenticator = $this->createMock(DummyAuthenticator::class);
+        $notSupportingAuthenticator = $this->createStub(DummyAuthenticator::class);
         $notSupportingAuthenticator
             ->method('supports')
             ->with($request)
             ->willReturn(false);
 
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
         $dispatcher = new EventDispatcher();
         $authenticatorManager = new AuthenticatorManager(
             [$notSupportingAuthenticator, $supportingAuthenticator],
-            $tokenStorage,
+            new TokenStorage(),
             $dispatcher,
             'main'
         );
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/RegisterGlobalSecurityEventListenersPassTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/RegisterGlobalSecurityEventListenersPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/RegisterGlobalSecurityEventListenersPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/RegisterGlobalSecurityEventListenersPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -192,7 +192,7 @@
         }
 
         // PHP internally sorts all the arrays first, so returning proper 1 / -1 values is crucial
-        $foundListeners = array_uintersect($expectedListeners, $actualListeners, fn (array $a, array $b) => $a <=> $b);
+        $foundListeners = array_uintersect($expectedListeners, $actualListeners, static fn (array $a, array $b) => $a <=> $b);
 
         $this->assertEquals($expectedListeners, $foundListeners);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/CompleteConfigurationTestCase.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/CompleteConfigurationTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/CompleteConfigurationTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/CompleteConfigurationTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -94,7 +94,7 @@
     {
         $container = $this->getContainer('container1');
 
-        $providers = array_values(array_filter($container->getServiceIds(), fn ($key) => str_starts_with($key, 'security.user.provider.concrete')));
+        $providers = array_values(array_filter($container->getServiceIds(), static fn ($key) => str_starts_with($key, 'security.user.provider.concrete')));
 
         $expectedProviders = [
             'security.user.provider.concrete.default',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/argon2i_hasher.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/argon2i_hasher.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/argon2i_hasher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/argon2i_hasher.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,6 @@
 <?php
 
-$this->load('container1.php');
+$loader->load('container1.php');
 
 $container->loadFromExtension('security', [
     'password_hashers' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/bcrypt_hasher.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/bcrypt_hasher.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/bcrypt_hasher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/bcrypt_hasher.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,6 @@
 <?php
 
-$this->load('container1.php');
+$loader->load('container1.php');
 
 $container->loadFromExtension('security', [
     'password_hashers' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/merge.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/merge.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/merge.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/merge.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,6 @@
 <?php
 
-$this->load('merge_import.php');
+$loader->load('merge_import.php');
 
 $container->loadFromExtension('security', [
     'providers' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/migrating_hasher.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/migrating_hasher.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/migrating_hasher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/migrating_hasher.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,6 @@
 <?php
 
-$this->load('container1.php');
+$loader->load('container1.php');
 
 $container->loadFromExtension('security', [
     'password_hashers' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/sodium_hasher.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/sodium_hasher.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/sodium_hasher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/sodium_hasher.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,6 @@
 <?php
 
-$this->load('container1.php');
+$loader->load('container1.php');
 
 $container->loadFromExtension('security', [
     'password_hashers' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProvider/CustomProvider.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProvider/CustomProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProvider/CustomProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProvider/CustomProvider.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-<?php
-
-namespace Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvider;
-
-use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface;
-use Symfony\Component\Config\Definition\Builder\NodeDefinition;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class CustomProvider implements UserProviderFactoryInterface
-{
-    public function create(ContainerBuilder $container, string $id, array $config): void
-    {
-    }
-
-    public function getKey(): string
-    {
-        return 'custom';
-    }
-
-    public function addConfiguration(NodeDefinition $builder): void
-    {
-        $builder
-            ->children()
-                ->scalarNode('foo')->defaultValue('bar')->end()
-            ->end()
-        ;
-    }
-}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProvider/DummyProvider.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProvider/DummyProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProvider/DummyProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProvider/DummyProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,22 +2,27 @@
 
 namespace Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvider;
 
-use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface;
-use Symfony\Component\Config\Definition\Builder\NodeDefinition;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\Security\Core\User\UserInterface;
+use Symfony\Component\Security\Core\User\UserProviderInterface;
 
-class DummyProvider implements UserProviderFactoryInterface
+class DummyProvider implements UserProviderInterface
 {
-    public function create(ContainerBuilder $container, $id, $config): void
+    public function __construct(string $foo)
     {
     }
 
-    public function getKey(): string
+    public function refreshUser(UserInterface $user): UserInterface
     {
-        return 'foo';
+        throw new \Exception('Not implemented');
     }
 
-    public function addConfiguration(NodeDefinition $node): void
+    public function supportsClass(string $class): bool
     {
+        throw new \Exception('Not implemented');
+    }
+
+    public function loadUserByIdentifier(string $identifier): UserInterface
+    {
+        throw new \Exception('Not implemented');
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProviderFactory/CustomProviderFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProviderFactory/CustomProviderFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProviderFactory/CustomProviderFactory.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProviderFactory/CustomProviderFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,34 @@
+<?php
+
+namespace Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProviderFactory;
+
+use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface;
+use Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvider\DummyProvider;
+use Symfony\Component\Config\Definition\Builder\NodeDefinition;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Definition;
+
+class CustomProviderFactory implements UserProviderFactoryInterface
+{
+    public function create(ContainerBuilder $container, string $id, array $config): void
+    {
+        $definition = $container->setDefinition($id, new Definition(DummyProvider::class));
+        $definition->setArgument('$foo', $config['foo']);
+    }
+
+    public function getKey(): string
+    {
+        return 'custom';
+    }
+
+    public function addConfiguration(NodeDefinition $builder): void
+    {
+        $builder
+            ->children()
+                ->scalarNode('foo')
+                    ->defaultValue('bar')
+                ->end()
+            ->end()
+        ;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProviderFactory/DummyProviderFactory.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProviderFactory/DummyProviderFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProviderFactory/DummyProviderFactory.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/UserProviderFactory/DummyProviderFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,26 @@
+<?php
+
+namespace Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProviderFactory;
+
+use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface;
+use Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvider\DummyProvider;
+use Symfony\Component\Config\Definition\Builder\NodeDefinition;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Definition;
+
+class DummyProviderFactory implements UserProviderFactoryInterface
+{
+    public function create(ContainerBuilder $container, $id, $config): void
+    {
+        $container->setDefinition($id, new Definition(DummyProvider::class));
+    }
+
+    public function getKey(): string
+    {
+        return 'foo';
+    }
+
+    public function addConfiguration(NodeDefinition $node): void
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/SecurityExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/SecurityExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/SecurityExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/SecurityExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,8 @@
 use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\FirewallListenerFactoryInterface;
 use Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension;
 use Symfony\Bundle\SecurityBundle\SecurityBundle;
-use Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvider\DummyProvider;
+use Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProviderFactory\CustomProviderFactory;
+use Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProviderFactory\DummyProviderFactory;
 use Symfony\Component\Config\Definition\Builder\NodeDefinition;
 use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
 use Symfony\Component\DependencyInjection\Argument\IteratorArgument;
@@ -68,16 +69,80 @@
         $container->compile();
     }
 
+    public function testFirewallWithCustomUserProvider()
+    {
+        $container = $this->getRawContainer();
+
+        $extension = $container->getExtension('security');
+        $extension->addUserProviderFactory(new CustomProviderFactory());
+
+        $container->loadFromExtension('security', [
+            'providers' => [
+                'my_app_provider' => [
+                    'custom' => [
+                        'foo' => 'baz',
+                    ],
+                ],
+            ],
+
+            'firewalls' => [
+                'some_firewall' => [
+                    'pattern' => '/.*',
+                    'http_basic' => [],
+                ],
+            ],
+        ]);
+
+        $container->compile();
+
+        $this->assertTrue($container->hasDefinition('security.user.provider.concrete.my_app_provider'));
+        $this->assertEquals('baz', $container->getDefinition('security.user.provider.concrete.my_app_provider')->getArgument('$foo'));
+    }
+
     public function testFirewallWithInvalidUserProvider()
     {
         $container = $this->getRawContainer();
 
         $extension = $container->getExtension('security');
-        $extension->addUserProviderFactory(new DummyProvider());
+        $extension->addUserProviderFactory(new CustomProviderFactory());
+
+        $container->loadFromExtension('security', [
+            'providers' => [
+                'my_app_provider' => [
+                    'some_other' => [
+                        'bar' => 'baz',
+                    ],
+                ],
+            ],
+
+            'firewalls' => [
+                'some_firewall' => [
+                    'pattern' => '/.*',
+                    'http_basic' => [],
+                ],
+            ],
+        ]);
+
+        $this->expectException(InvalidConfigurationException::class);
+        $this->expectExceptionMessage('Unrecognized option "some_other" under "security.providers.my_app_provider". Available options are "chain", "custom", "id", "ldap", "memory".');
+
+        $container->compile();
+    }
+
+    public function testFirewallWithInvalidUserProviderConfig()
+    {
+        $container = $this->getRawContainer();
+
+        $extension = $container->getExtension('security');
+        $extension->addUserProviderFactory(new CustomProviderFactory());
 
         $container->loadFromExtension('security', [
             'providers' => [
-                'my_foo' => ['foo' => []],
+                'my_app_provider' => [
+                    'custom' => [
+                        'bar' => 'baz',
+                    ],
+                ],
             ],
 
             'firewalls' => [
@@ -89,9 +154,42 @@
         ]);
 
         $this->expectException(InvalidConfigurationException::class);
-        $this->expectExceptionMessage('Unable to create definition for "security.user.provider.concrete.my_foo" user provider');
+        $this->expectExceptionMessage('Unrecognized option "bar" under "security.providers.my_app_provider.custom". Available option is "foo".');
+
+        $container->compile();
+    }
+
+    public function testFirewallWithUserProviderWithoutConfig()
+    {
+        $container = $this->getRawContainer();
+
+        $extension = $container->getExtension('security');
+        $extension->addUserProviderFactory(new DummyProviderFactory());
+
+        $container->loadFromExtension('security', [
+            'providers' => [
+                'my_app_provider' => [
+                    'foo' => null,
+                ],
+                'my_other_app_provider' => [
+                    'foo' => [],
+                ],
+            ],
+
+            'firewalls' => [
+                'some_firewall' => [
+                    'pattern' => '/.*',
+                    'http_basic' => [
+                        'provider' => 'my_app_provider',
+                    ],
+                ],
+            ],
+        ]);
 
         $container->compile();
+
+        $this->assertTrue($container->hasDefinition('security.user.provider.concrete.my_app_provider'));
+        $this->assertTrue($container->hasDefinition('security.user.provider.concrete.my_other_app_provider'));
     }
 
     public function testDisableRoleHierarchyVoter()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/XmlCustomProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/XmlCustomProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/XmlCustomProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/XmlCustomProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,7 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension;
-use Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvider\CustomProvider;
+use Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProviderFactory\CustomProviderFactory;
 use Symfony\Component\Config\FileLocator;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
@@ -30,7 +30,7 @@
         $container->register('cache.system', \stdClass::class);
 
         $security = new SecurityExtension();
-        $security->addUserProviderFactory(new CustomProvider());
+        $security->addUserProviderFactory(new CustomProviderFactory());
         $container->registerExtension($security);
 
         (new XmlFileLoader($container, new FileLocator(__DIR__.'/Fixtures/xml')))->load($configurationFile);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/EventListener/VoteListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/EventListener/VoteListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/EventListener/VoteListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/EventListener/VoteListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
 {
     public function testOnVoterVote()
     {
-        $voter = $this->createMock(VoterInterface::class);
+        $voter = $this->createStub(VoterInterface::class);
 
         $traceableAccessDecisionManager = $this
             ->getMockBuilder(TraceableAccessDecisionManager::class)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_output.txt symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_output.txt
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_output.txt	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_output.txt	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,30 @@
+Firewall "main"
+===============
+
+ ----------------------- ------------------------------- 
+  Option                  Value                          
+ ----------------------- ------------------------------- 
+  Name                    main                           
+  Context                 main                           
+  Lazy                    No                             
+  Stateless               No                             
+  User Checker            user_checker_service           
+  Provider                user_provider_service          
+  Entry Point             entry_point_service            
+  Access Denied URL       /access-denied                 
+  Access Denied Handler   access_denied_handler_service  
+ ----------------------- ------------------------------- 
+
+Event listeners for firewall "main"
+===================================
+
+ No event dispatcher has been registered for this firewall.
+
+Authenticators for firewall "main"
+==================================
+
+ ----------------------------------------------------------------- 
+  Classname                                                        
+ ----------------------------------------------------------------- 
+  Symfony\Bundle\SecurityBundle\Tests\Fixtures\DummyAuthenticator  
+ -----------------------------------------------------------------
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_with_events_output.txt symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_with_events_output.txt
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_with_events_output.txt	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_with_events_output.txt	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,39 @@
+Firewall "main"
+===============
+
+ ----------------------- ------------------------------- 
+  Option                  Value                          
+ ----------------------- ------------------------------- 
+  Name                    main                           
+  Context                 main                           
+  Lazy                    No                             
+  Stateless               No                             
+  User Checker            user_checker_service           
+  Provider                user_provider_service          
+  Entry Point             entry_point_service            
+  Access Denied URL       /access-denied                 
+  Access Denied Handler   access_denied_handler_service  
+ ----------------------- ------------------------------- 
+
+Event listeners for firewall "main"
+===================================
+
+"security.event" event
+----------------------
+
+ ------- ----------- ---------- 
+  Order   Callable    Priority  
+ ------- ----------- ---------- 
+  #1      Closure()   42        
+  #2      Closure()   42        
+ ------- ----------- ---------- 
+
+Authenticators for firewall "main"
+==================================
+
+ ----------------------------------------------------------------- 
+  Classname                                                        
+ ----------------------------------------------------------------- 
+  Symfony\Bundle\SecurityBundle\Tests\Fixtures\DummyAuthenticator  
+  Symfony\Bundle\SecurityBundle\Tests\Fixtures\DummyAuthenticator  
+ -----------------------------------------------------------------
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_with_switch_user.txt symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_with_switch_user.txt
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_with_switch_user.txt	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/Descriptor/firewall_main_with_switch_user.txt	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,36 @@
+Firewall "main"
+===============
+
+ ----------------------- ------------------------------------ 
+  Option                  Value                               
+ ----------------------- ------------------------------------ 
+  Name                    main                                
+  Context                 main                                
+  Lazy                    No                                  
+  Stateless               No                                  
+  User Checker            user_checker_service_test           
+  Provider                user_provider_service_test          
+  Entry Point             entry_point_service_test            
+  Access Denied URL       /access-denied-test                 
+  Access Denied Handler   access_denied_handler_service_test  
+ ----------------------- ------------------------------------ 
+
+User switching
+--------------
+
+ ----------- ------------------------ 
+  Option      Value                   
+ ----------- ------------------------ 
+  Parameter   _switch_user_test       
+  Provider    custom_provider_test    
+  User Role   ROLE_ALLOWED_TO_SWITCH  
+ ----------- ------------------------ 
+
+Authenticators for firewall "main"
+==================================
+
+ ----------------------------------------------------------------- 
+  Classname                                                        
+ ----------------------------------------------------------------- 
+  Symfony\Bundle\SecurityBundle\Tests\Fixtures\DummyAuthenticator  
+ -----------------------------------------------------------------
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/DummyAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/DummyAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/DummyAuthenticator.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Fixtures/DummyAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,50 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\SecurityBundle\Tests\Fixtures;
+
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+use Symfony\Component\Security\Core\Exception\AuthenticationException;
+use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
+use Symfony\Component\Security\Http\Authenticator\Passport\Passport;
+use Symfony\Component\Security\Http\Authenticator\Passport\PassportInterface;
+
+class DummyAuthenticator implements AuthenticatorInterface
+{
+    public function supports(Request $request): ?bool
+    {
+        return null;
+    }
+
+    public function authenticate(Request $request): Passport
+    {
+    }
+
+    public function createToken(Passport $passport, string $firewallName): TokenInterface
+    {
+    }
+
+    public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName): ?Response
+    {
+        return null;
+    }
+
+    public function onAuthenticationFailure(Request $request, AuthenticationException $exception): ?Response
+    {
+        return null;
+    }
+
+    public function createAuthenticatedToken(PassportInterface $passport, string $firewallName): TokenInterface
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AccessTokenTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AccessTokenTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AccessTokenTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AccessTokenTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -376,7 +376,7 @@
         );
 
         $client = $this->createClient(['test_case' => 'AccessToken', 'root_config' => 'config_oidc.yml']);
-        $client->request('GET', '/foo', [], [], ['HTTP_AUTHORIZATION' => sprintf('Bearer %s', $token)]);
+        $client->request('GET', '/foo', [], [], ['HTTP_AUTHORIZATION' => \sprintf('Bearer %s', $token)]);
         $response = $client->getResponse();
 
         $this->assertInstanceOf(Response::class, $response);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AppKernel.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AppKernel.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AppKernel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AppKernel.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
     public function __construct($varDir, $testCase, $rootConfig, $environment, $debug)
     {
         if (!is_dir(__DIR__.'/'.$testCase)) {
-            throw new \InvalidArgumentException(sprintf('The test case "%s" does not exist.', $testCase));
+            throw new \InvalidArgumentException(\sprintf('The test case "%s" does not exist.', $testCase));
         }
         $this->varDir = $varDir;
         $this->testCase = $testCase;
@@ -37,7 +37,7 @@
         $fs = new Filesystem();
         foreach ((array) $rootConfig as $config) {
             if (!$fs->isAbsolutePath($config) && !is_file($config = __DIR__.'/'.$testCase.'/'.$config)) {
-                throw new \InvalidArgumentException(sprintf('The root config "%s" does not exist.', $config));
+                throw new \InvalidArgumentException(\sprintf('The root config "%s" does not exist.', $config));
             }
 
             $this->rootConfig[] = $config;
@@ -54,7 +54,7 @@
     public function registerBundles(): iterable
     {
         if (!is_file($filename = $this->getProjectDir().'/'.$this->testCase.'/bundles.php')) {
-            throw new \RuntimeException(sprintf('The bundles file "%s" does not exist.', $filename));
+            throw new \RuntimeException(\sprintf('The bundles file "%s" does not exist.', $filename));
         }
 
         return include $filename;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Controller/FooController.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Controller/FooController.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Controller/FooController.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Controller/FooController.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,6 +18,6 @@
 {
     public function __invoke(UserInterface $user): JsonResponse
     {
-        return new JsonResponse(['message' => sprintf('Welcome @%s!', $user->getUserIdentifier())]);
+        return new JsonResponse(['message' => \sprintf('Welcome @%s!', $user->getUserIdentifier())]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Security/Handler/AccessTokenHandler.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Security/Handler/AccessTokenHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Security/Handler/AccessTokenHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Security/Handler/AccessTokenHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
     {
         return match ($accessToken) {
             'VALID_ACCESS_TOKEN' => new UserBadge('dunglas'),
-            'SELF_CONTAINED_ACCESS_TOKEN' => new UserBadge('dunglas', fn () => new InMemoryUser('dunglas', null, ['ROLE_USER'])),
+            'SELF_CONTAINED_ACCESS_TOKEN' => new UserBadge('dunglas', static fn () => new InMemoryUser('dunglas', null, ['ROLE_USER'])),
             default => throw new BadCredentialsException('Invalid credentials.'),
         };
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Security/Http/JsonAuthenticationSuccessHandler.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Security/Http/JsonAuthenticationSuccessHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Security/Http/JsonAuthenticationSuccessHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AccessTokenBundle/Security/Http/JsonAuthenticationSuccessHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,6 @@
 {
     public function onAuthenticationSuccess(Request $request, TokenInterface $token): ?Response
     {
-        return new JsonResponse(['message' => sprintf('Good game @%s!', $token->getUserIdentifier())]);
+        return new JsonResponse(['message' => \sprintf('Good game @%s!', $token->getUserIdentifier())]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AuthenticatorBundle/ApiAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AuthenticatorBundle/ApiAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AuthenticatorBundle/ApiAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/AuthenticatorBundle/ApiAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
 
         $userLoader = null;
         if ($this->selfLoadingUser) {
-            $userLoader = fn ($username) => new InMemoryUser($username, 'test', ['ROLE_USER']);
+            $userLoader = static fn ($username) => new InMemoryUser($username, 'test', ['ROLE_USER']);
         }
 
         return new SelfValidatingPassport(new UserBadge($email, $userLoader));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/CsrfFormLoginBundle/Form/UserLoginType.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/CsrfFormLoginBundle/Form/UserLoginType.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/CsrfFormLoginBundle/Form/UserLoginType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/CsrfFormLoginBundle/Form/UserLoginType.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,7 +52,7 @@
          * request; however, we can match the expected behavior by checking the
          * session for an authentication error and last username.
          */
-        $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($request) {
+        $builder->addEventListener(FormEvents::PRE_SET_DATA, static function (FormEvent $event) use ($request) {
             if ($request->attributes->has(SecurityRequestAttributes::AUTHENTICATION_ERROR)) {
                 $error = $request->attributes->get(SecurityRequestAttributes::AUTHENTICATION_ERROR);
             } else {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/JsonLoginBundle/Controller/TestController.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/JsonLoginBundle/Controller/TestController.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/JsonLoginBundle/Controller/TestController.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/JsonLoginBundle/Controller/TestController.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,6 @@
 {
     public function loginCheckAction(UserInterface $user)
     {
-        return new JsonResponse(['message' => sprintf('Welcome @%s!', $user->getUserIdentifier())]);
+        return new JsonResponse(['message' => \sprintf('Welcome @%s!', $user->getUserIdentifier())]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/JsonLoginBundle/Security/Http/JsonAuthenticationSuccessHandler.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/JsonLoginBundle/Security/Http/JsonAuthenticationSuccessHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/JsonLoginBundle/Security/Http/JsonAuthenticationSuccessHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/JsonLoginBundle/Security/Http/JsonAuthenticationSuccessHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,6 @@
 {
     public function onAuthenticationSuccess(Request $request, TokenInterface $token): ?Response
     {
-        return new JsonResponse(['message' => sprintf('Good game @%s!', $token->getUserIdentifier())]);
+        return new JsonResponse(['message' => \sprintf('Good game @%s!', $token->getUserIdentifier())]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/LoginLink/TestCustomLoginLinkSuccessHandler.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/LoginLink/TestCustomLoginLinkSuccessHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/LoginLink/TestCustomLoginLinkSuccessHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/LoginLink/TestCustomLoginLinkSuccessHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,6 @@
 {
     public function onAuthenticationSuccess(Request $request, TokenInterface $token): ?Response
     {
-        return new JsonResponse(['message' => sprintf('Welcome %s!', $token->getUserIdentifier())]);
+        return new JsonResponse(['message' => \sprintf('Welcome %s!', $token->getUserIdentifier())]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/RememberMeBundle/Security/UserChangingUserProvider.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/RememberMeBundle/Security/UserChangingUserProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/RememberMeBundle/Security/UserChangingUserProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/RememberMeBundle/Security/UserChangingUserProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
     private function changeUser(UserInterface $user): UserInterface
     {
         if (self::$changePassword) {
-            $alterUser = \Closure::bind(function (InMemoryUser $user) { $user->password = 'changed!'; }, null, class_exists(User::class) ? User::class : InMemoryUser::class);
+            $alterUser = \Closure::bind(static function (InMemoryUser $user) { $user->password = 'changed!'; }, null, class_exists(User::class) ? User::class : InMemoryUser::class);
             $alterUser($user);
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/SecuredPageBundle/Security/Core/User/ArrayUserProvider.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/SecuredPageBundle/Security/Core/User/ArrayUserProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/SecuredPageBundle/Security/Core/User/ArrayUserProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/SecuredPageBundle/Security/Core/User/ArrayUserProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
         $user = $this->getUser($identifier);
 
         if (null === $user) {
-            $e = new UserNotFoundException(sprintf('User "%s" not found.', $identifier));
+            $e = new UserNotFoundException(\sprintf('User "%s" not found.', $identifier));
             $e->setUsername($identifier);
 
             throw $e;
@@ -60,7 +60,7 @@
     public function refreshUser(UserInterface $user): UserInterface
     {
         if (!$user instanceof UserInterface) {
-            throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
+            throw new UnsupportedUserException(\sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
         }
 
         $storedUser = $this->getUser($user->getUserIdentifier());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/CsrfFormLoginTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/CsrfFormLoginTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/CsrfFormLoginTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/CsrfFormLoginTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     {
         $client = $this->createClient($options);
 
-        $this->callInRequestContext($client, function () {
+        $this->callInRequestContext($client, static function () {
             static::getContainer()->get('security.csrf.token_storage')->setToken('foo', 'bar');
         });
 
@@ -63,7 +63,7 @@
     {
         $client = $this->createClient($options);
 
-        $this->callInRequestContext($client, function () {
+        $this->callInRequestContext($client, static function () {
             static::getContainer()->get('security.csrf.token_storage')->setToken('foo', 'bar');
         });
 
@@ -134,7 +134,7 @@
     {
         /** @var EventDispatcherInterface $eventDispatcher */
         $eventDispatcher = static::getContainer()->get(EventDispatcherInterface::class);
-        $wrappedCallable = function (RequestEvent $event) use (&$callable) {
+        $wrappedCallable = static function (RequestEvent $event) use (&$callable) {
             $callable();
             $event->setResponse(new Response(''));
             $event->stopPropagation();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/EventAliasTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/EventAliasTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/EventAliasTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/EventAliasTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,10 +12,10 @@
 namespace Symfony\Bundle\SecurityBundle\Tests\Functional;
 
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
 use Symfony\Component\Security\Core\AuthenticationEvents;
 use Symfony\Component\Security\Core\Event\AuthenticationSuccessEvent;
-use Symfony\Component\Security\Core\User\UserInterface;
+use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
 use Symfony\Component\Security\Http\Event\SwitchUserEvent;
 use Symfony\Component\Security\Http\SecurityEvents;
@@ -28,9 +28,9 @@
         $container = $client->getContainer();
         $dispatcher = $container->get('event_dispatcher');
 
-        $dispatcher->dispatch(new AuthenticationSuccessEvent($this->createMock(TokenInterface::class)), AuthenticationEvents::AUTHENTICATION_SUCCESS);
-        $dispatcher->dispatch(new InteractiveLoginEvent($this->createMock(Request::class), $this->createMock(TokenInterface::class)), SecurityEvents::INTERACTIVE_LOGIN);
-        $dispatcher->dispatch(new SwitchUserEvent($this->createMock(Request::class), $this->createMock(UserInterface::class), $this->createMock(TokenInterface::class)), SecurityEvents::SWITCH_USER);
+        $dispatcher->dispatch(new AuthenticationSuccessEvent(new UsernamePasswordToken(new InMemoryUser('John', 'password'), 'main')), AuthenticationEvents::AUTHENTICATION_SUCCESS);
+        $dispatcher->dispatch(new InteractiveLoginEvent(new Request(), new UsernamePasswordToken(new InMemoryUser('John', 'password'), 'main')), SecurityEvents::INTERACTIVE_LOGIN);
+        $dispatcher->dispatch(new SwitchUserEvent(new Request(), new InMemoryUser('John', 'password'), new UsernamePasswordToken(new InMemoryUser('Alice', 'password'), 'main')), SecurityEvents::SWITCH_USER);
 
         $this->assertEquals(
             [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/LogoutTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/LogoutTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/LogoutTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/LogoutTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
             '_password' => 'test',
         ]);
 
-        $this->callInRequestContext($client, function () {
+        $this->callInRequestContext($client, static function () {
             static::getContainer()->get('security.csrf.token_storage')->setToken('foo', 'bar');
         });
 
@@ -82,7 +82,7 @@
     {
         /** @var EventDispatcherInterface $eventDispatcher */
         $eventDispatcher = static::getContainer()->get(EventDispatcherInterface::class);
-        $wrappedCallable = function (RequestEvent $event) use (&$callable) {
+        $wrappedCallable = static function (RequestEvent $event) use (&$callable) {
             $callable();
             $event->setResponse(new Response(''));
             $event->stopPropagation();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/RememberMeCookieTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/RememberMeCookieTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/RememberMeCookieTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/RememberMeCookieTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
             '_username' => 'test',
             '_password' => 'test',
         ], [], [
-             'HTTPS' => (int) $https,
+            'HTTPS' => (int) $https,
         ]);
 
         $cookies = $client->getResponse()->headers->getCookies(ResponseHeaderBag::COOKIES_ARRAY);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/SecurityTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/SecurityTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/SecurityTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Functional/SecurityTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -128,7 +128,7 @@
         // put a csrf token in the storage
         /** @var EventDispatcherInterface $eventDispatcher */
         $eventDispatcher = static::getContainer()->get(EventDispatcherInterface::class);
-        $setCsrfToken = function (RequestEvent $event) {
+        $setCsrfToken = static function (RequestEvent $event) {
             static::getContainer()->get('security.csrf.token_storage')->setToken('logout', 'bar');
             $event->setResponse(new Response(''));
         };
@@ -255,7 +255,7 @@
         $user = new InMemoryUser('chalasr', 'the-password', ['ROLE_FOO']);
         $this->security->login($user, $this->authenticator);
 
-        return new JsonResponse(['message' => sprintf('Welcome @%s!', $this->security->getUser()->getUserIdentifier())]);
+        return new JsonResponse(['message' => \sprintf('Welcome @%s!', $this->security->getUser()->getUserIdentifier())]);
     }
 }
 
@@ -279,6 +279,6 @@
 {
     public function __invoke(UserInterface $user)
     {
-        return new JsonResponse(['message' => sprintf('Welcome back @%s', $user->getUserIdentifier())]);
+        return new JsonResponse(['message' => \sprintf('Welcome back @%s', $user->getUserIdentifier())]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/LoginLink/FirewallAwareLoginLinkHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/LoginLink/FirewallAwareLoginLinkHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/LoginLink/FirewallAwareLoginLinkHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/LoginLink/FirewallAwareLoginLinkHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,13 +12,14 @@
 namespace Symfony\Bundle\SecurityBundle\Tests\LoginLink;
 
 use PHPUnit\Framework\TestCase;
-use Psr\Container\ContainerInterface;
 use Symfony\Bundle\SecurityBundle\LoginLink\FirewallAwareLoginLinkHandler;
 use Symfony\Bundle\SecurityBundle\Security\FirewallConfig;
+use Symfony\Bundle\SecurityBundle\Security\FirewallContext;
 use Symfony\Bundle\SecurityBundle\Security\FirewallMap;
+use Symfony\Component\DependencyInjection\Container;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\Security\Core\User\UserInterface;
+use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Http\LoginLink\LoginLinkDetails;
 use Symfony\Component\Security\Http\LoginLink\LoginLinkHandlerInterface;
 
@@ -26,7 +27,7 @@
 {
     public function testSuccessfulDecoration()
     {
-        $user = $this->createMock(UserInterface::class);
+        $user = new InMemoryUser('John', 'password');
         $linkDetails = new LoginLinkDetails('http://example.com', new \DateTimeImmutable());
         $request = Request::create('http://example.com/verify');
 
@@ -40,9 +41,8 @@
             ->method('consumeLoginLink')
             ->with($request)
             ->willReturn($user);
-        $locator = $this->createLocator([
-            'main_firewall' => $loginLinkHandler,
-        ]);
+        $locator = new Container();
+        $locator->set('main_firewall', $loginLinkHandler);
         $requestStack = new RequestStack();
         $requestStack->push($request);
 
@@ -56,24 +56,11 @@
 
     private function createFirewallMap(string $firewallName)
     {
-        $map = $this->createMock(FirewallMap::class);
-        $map->expects($this->any())
-            ->method('getFirewallConfig')
-            ->willReturn($config = new FirewallConfig($firewallName, 'user_checker'));
+        $context = new FirewallContext([], null, null, new FirewallConfig($firewallName, 'user_checker'));
+        $locator = new Container();
+        $locator->set($firewallName, $context);
+        $map = new FirewallMap($locator, [$firewallName => null]);
 
         return $map;
     }
-
-    private function createLocator(array $linkers)
-    {
-        $locator = $this->createMock(ContainerInterface::class);
-        $locator->expects($this->any())
-            ->method('has')
-            ->willReturnCallback(fn ($firewallName) => isset($linkers[$firewallName]));
-        $locator->expects($this->any())
-            ->method('get')
-            ->willReturnCallback(fn ($firewallName) => $linkers[$firewallName]);
-
-        return $locator;
-    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/FirewallContextTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/FirewallContextTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/FirewallContextTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/FirewallContextTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
         $config = new FirewallConfig('main', 'user_checker', 'request_matcher');
         $exceptionListener = $this->getExceptionListenerMock();
         $logoutListener = $this->getLogoutListenerMock();
-        $listeners = [function () {}];
+        $listeners = [static function () {}];
 
         $context = new FirewallContext($listeners, $exceptionListener, $logoutListener, $config);
 
@@ -36,17 +36,11 @@
 
     private function getExceptionListenerMock()
     {
-        return $this
-            ->getMockBuilder(ExceptionListener::class)
-            ->disableOriginalConstructor()
-            ->getMock();
+        return $this->createStub(ExceptionListener::class);
     }
 
     private function getLogoutListenerMock()
     {
-        return $this
-            ->getMockBuilder(LogoutListener::class)
-            ->disableOriginalConstructor()
-            ->getMock();
+        return $this->createStub(LogoutListener::class);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/FirewallMapTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/FirewallMapTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/FirewallMapTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/FirewallMapTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,19 +60,11 @@
     /** @dataProvider providesStatefulStatelessRequests */
     public function testGetListeners(Request $request, bool $expectedState)
     {
-        $firewallContext = $this->createMock(FirewallContext::class);
-
         $firewallConfig = new FirewallConfig('main', 'user_checker', null, true, true);
-        $firewallContext->expects($this->once())->method('getConfig')->willReturn($firewallConfig);
-
-        $listener = function () {};
-        $firewallContext->expects($this->once())->method('getListeners')->willReturn([$listener]);
-
-        $exceptionListener = $this->createMock(ExceptionListener::class);
-        $firewallContext->expects($this->once())->method('getExceptionListener')->willReturn($exceptionListener);
-
-        $logoutListener = $this->createMock(LogoutListener::class);
-        $firewallContext->expects($this->once())->method('getLogoutListener')->willReturn($logoutListener);
+        $listener = static function () {};
+        $exceptionListener = $this->createStub(ExceptionListener::class);
+        $logoutListener = $this->createStub(LogoutListener::class);
+        $firewallContext = new FirewallContext([$listener], $exceptionListener, $logoutListener, $firewallConfig);
 
         $matcher = $this->createMock(RequestMatcherInterface::class);
         $matcher->expects($this->once())
@@ -80,8 +72,8 @@
             ->with($request)
             ->willReturn(true);
 
-        $container = $this->createMock(Container::class);
-        $container->expects($this->exactly(2))->method('get')->willReturn($firewallContext);
+        $container = new Container();
+        $container->set('security.firewall.map.context.foo', $firewallContext);
 
         $firewallMap = new FirewallMap($container, ['security.firewall.map.context.foo' => $matcher]);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/LazyFirewallContextTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/LazyFirewallContextTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/LazyFirewallContextTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/Security/LazyFirewallContextTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,49 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\SecurityBundle\Tests\Security;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Bundle\SecurityBundle\Security\LazyFirewallContext;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpKernel\Event\RequestEvent;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
+use Symfony\Component\Security\Http\Firewall\FirewallListenerInterface;
+
+class LazyFirewallContextTest extends TestCase
+{
+    public function testPostRequestWithOnlyLazyAuthenticatorsIsHandledLazily()
+    {
+        $lazyListener = $this->createMock(FirewallListenerInterface::class);
+        $lazyListener->expects($this->once())->method('supports')->willReturn(null);
+        // authenticate() must NOT be called eagerly
+        $lazyListener->expects($this->never())->method('authenticate');
+
+        $tokenStorage = new TokenStorage();
+
+        $context = new LazyFirewallContext(
+            [$lazyListener],
+            null,
+            null,
+            null,
+            $tokenStorage,
+        );
+
+        $request = Request::create('/public-route', 'POST');
+        $kernel = $this->createStub(HttpKernelInterface::class);
+        $event = new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST);
+
+        $context($event);
+
+        $this->assertFalse($event->hasResponse(), 'No response should be set for a lazy firewall on a public route.');
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/SecurityTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/SecurityTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/SecurityTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/SecurityBundle/Tests/SecurityTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,18 +16,18 @@
 use Symfony\Bundle\SecurityBundle\Security;
 use Symfony\Bundle\SecurityBundle\Security\FirewallConfig;
 use Symfony\Bundle\SecurityBundle\Security\FirewallMap;
+use Symfony\Component\DependencyInjection\Container;
 use Symfony\Component\DependencyInjection\ServiceLocator;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
-use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
 use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
 use Symfony\Component\Security\Core\Exception\LogicException;
 use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Core\User\UserCheckerInterface;
-use Symfony\Component\Security\Core\User\UserInterface;
 use Symfony\Component\Security\Csrf\CsrfToken;
 use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
 use Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface;
@@ -41,11 +41,8 @@
     public function testGetToken()
     {
         $token = new UsernamePasswordToken(new InMemoryUser('foo', 'bar'), 'provider');
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-
-        $tokenStorage->expects($this->once())
-            ->method('getToken')
-            ->willReturn($token);
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($token);
 
         $container = $this->createContainer('security.token_storage', $tokenStorage);
 
@@ -58,15 +55,14 @@
      */
     public function testGetUser($userInToken, $expectedUser)
     {
-        $token = $this->createMock(TokenInterface::class);
-        $token->expects($this->any())
-            ->method('getUser')
-            ->willReturn($userInToken);
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-
-        $tokenStorage->expects($this->once())
-            ->method('getToken')
-            ->willReturn($token);
+        if (null === $userInToken) {
+            $token = new NullToken();
+        } else {
+            $token = new UsernamePasswordToken($userInToken, 'main');
+        }
+
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($token);
 
         $container = $this->createContainer('security.token_storage', $tokenStorage);
 
@@ -126,12 +122,13 @@
     public function testLogin()
     {
         $request = new Request();
-        $authenticator = $this->createMock(AuthenticatorInterface::class);
-        $requestStack = $this->createMock(RequestStack::class);
+        $authenticator = $this->createStub(AuthenticatorInterface::class);
+        $requestStack = new RequestStack();
+        $requestStack->push($request);
         $firewallMap = $this->createMock(FirewallMap::class);
         $firewall = new FirewallConfig('main', 'main');
         $userAuthenticator = $this->createMock(UserAuthenticatorInterface::class);
-        $user = $this->createMock(UserInterface::class);
+        $user = new InMemoryUser('John', 'password');
         $userChecker = $this->createMock(UserCheckerInterface::class);
 
         $container = $this->createMock(ContainerInterface::class);
@@ -146,7 +143,6 @@
             ])
         ;
 
-        $requestStack->expects($this->once())->method('getCurrentRequest')->willReturn($request);
         $firewallMap->expects($this->once())->method('getFirewallConfig')->willReturn($firewall);
         $userAuthenticator->expects($this->once())->method('authenticateUser')->with($user, $authenticator, $request);
         $userChecker->expects($this->once())->method('checkPreAuth')->with($user);
@@ -155,7 +151,10 @@
         $firewallAuthenticatorLocator
             ->expects($this->once())
             ->method('getProvidedServices')
-            ->willReturn(['security.authenticator.custom.dev' => $authenticator])
+            ->willReturn([
+                'security.authenticator.custom.dev' => $authenticator,
+                'security.authenticator.remember_me.main' => $authenticator,
+            ])
         ;
         $firewallAuthenticatorLocator
             ->expects($this->once())
@@ -172,11 +171,12 @@
     public function testLoginReturnsAuthenticatorResponse()
     {
         $request = new Request();
-        $authenticator = $this->createMock(AuthenticatorInterface::class);
-        $requestStack = $this->createMock(RequestStack::class);
+        $authenticator = $this->createStub(AuthenticatorInterface::class);
+        $requestStack = new RequestStack();
+        $requestStack->push($request);
         $firewallMap = $this->createMock(FirewallMap::class);
         $firewall = new FirewallConfig('main', 'main');
-        $user = $this->createMock(UserInterface::class);
+        $user = new InMemoryUser('John', 'password');
         $userChecker = $this->createMock(UserCheckerInterface::class);
         $userAuthenticator = $this->createMock(UserAuthenticatorInterface::class);
 
@@ -192,7 +192,6 @@
             ])
         ;
 
-        $requestStack->expects($this->once())->method('getCurrentRequest')->willReturn($request);
         $firewallMap->expects($this->once())->method('getFirewallConfig')->willReturn($firewall);
         $userChecker->expects($this->once())->method('checkPreAuth')->with($user);
         $userAuthenticator->expects($this->once())->method('authenticateUser')
@@ -223,12 +222,11 @@
     public function testLoginWithoutAuthenticatorThrows()
     {
         $request = new Request();
-        $authenticator = $this->createMock(AuthenticatorInterface::class);
         $requestStack = $this->createMock(RequestStack::class);
         $firewallMap = $this->createMock(FirewallMap::class);
         $firewall = new FirewallConfig('main', 'main');
-        $user = $this->createMock(UserInterface::class);
-        $userChecker = $this->createMock(UserCheckerInterface::class);
+        $user = new InMemoryUser('John', 'password');
+        $userChecker = $this->createStub(UserCheckerInterface::class);
 
         $container = $this->createMock(ContainerInterface::class);
         $container
@@ -255,7 +253,7 @@
     public function testLoginWithoutRequestContext()
     {
         $requestStack = new RequestStack();
-        $user = $this->createMock(UserInterface::class);
+        $user = new InMemoryUser('John', 'password');
 
         $container = $this->createMock(ContainerInterface::class);
         $container
@@ -274,17 +272,52 @@
         $security->login($user);
     }
 
+    public function testLoginFailsWhenTooManyAuthenticatorsFound()
+    {
+        $request = new Request();
+        $authenticator = $this->createStub(AuthenticatorInterface::class);
+        $requestStack = new RequestStack();
+        $requestStack->push($request);
+        $firewallMap = $this->createMock(FirewallMap::class);
+        $firewall = new FirewallConfig('main', 'main');
+        $userAuthenticator = $this->createStub(UserAuthenticatorInterface::class);
+        $user = new InMemoryUser('John', 'password');
+        $userChecker = $this->createStub(UserCheckerInterface::class);
+
+        $container = new Container();
+        $container->set('request_stack', $requestStack);
+        $container->set('security.firewall.map', $firewallMap);
+        $container->set('security.authenticator.managers_locator', $this->createContainer('main', $userAuthenticator));
+        $container->set('security.user_checker_locator', $this->createContainer('main', $userChecker));
+
+        $firewallMap->expects($this->once())->method('getFirewallConfig')->willReturn($firewall);
+
+        $firewallAuthenticatorLocator = $this->createMock(ServiceProviderInterface::class);
+        $firewallAuthenticatorLocator
+            ->expects($this->once())
+            ->method('getProvidedServices')
+            ->willReturn([
+                'security.authenticator.custom.main' => $authenticator,
+                'security.authenticator.other.main' => $authenticator,
+            ])
+        ;
+
+        $security = new Security($container, ['main' => $firewallAuthenticatorLocator]);
+
+        $this->expectException(\LogicException::class);
+        $this->expectExceptionMessage('Too many authenticators were found for the current firewall "main". You must provide an instance of "Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface" to login programmatically. The available authenticators for the firewall "main" are "security.authenticator.custom.main" ,"security.authenticator.other.main');
+        $security->login($user);
+    }
+
     public function testLogout()
     {
         $request = new Request();
         $requestStack = $this->createMock(RequestStack::class);
         $requestStack->expects($this->once())->method('getMainRequest')->willReturn($request);
 
-        $token = $this->createMock(TokenInterface::class);
-        $token->method('getUser')->willReturn(new InMemoryUser('foo', 'bar'));
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $tokenStorage->expects($this->once())->method('getToken')->willReturn($token);
-        $tokenStorage->expects($this->once())->method('setToken')->with(null);
+        $token = new UsernamePasswordToken(new InMemoryUser('foo', 'bar'), 'main');
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($token);
 
         $eventDispatcher = $this->createMock(EventDispatcherInterface::class);
         $eventDispatcher
@@ -323,6 +356,8 @@
         ;
         $security = new Security($container);
         $security->logout(false);
+
+        $this->assertNull($tokenStorage->getToken());
     }
 
     public function testLogoutWithoutFirewall()
@@ -331,14 +366,9 @@
         $requestStack = $this->createMock(RequestStack::class);
         $requestStack->expects($this->once())->method('getMainRequest')->willReturn($request);
 
-        $token = $this->createMock(TokenInterface::class);
-        $token->method('getUser')->willReturn(new InMemoryUser('foo', 'bar'));
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $tokenStorage
-            ->expects($this->once())
-            ->method('getToken')
-            ->willReturn($token)
-        ;
+        $token = new UsernamePasswordToken(new InMemoryUser('foo', 'bar'), 'main');
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($token);
 
         $firewallMap = $this->createMock(FirewallMap::class);
         $firewallMap
@@ -369,11 +399,9 @@
         $requestStack = $this->createMock(RequestStack::class);
         $requestStack->expects($this->once())->method('getMainRequest')->willReturn($request);
 
-        $token = $this->createMock(TokenInterface::class);
-        $token->method('getUser')->willReturn(new InMemoryUser('foo', 'bar'));
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $tokenStorage->expects($this->once())->method('getToken')->willReturn($token);
-        $tokenStorage->expects($this->once())->method('setToken')->with(null);
+        $token = new UsernamePasswordToken(new InMemoryUser('foo', 'bar'), 'main');
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($token);
 
         $eventDispatcher = $this->createMock(EventDispatcherInterface::class);
         $eventDispatcher
@@ -417,6 +445,7 @@
 
         $this->assertInstanceOf(Response::class, $response);
         $this->assertEquals('a custom response', $response->getContent());
+        $this->assertNull($tokenStorage->getToken());
     }
 
     public function testLogoutWithValidCsrf()
@@ -425,11 +454,9 @@
         $requestStack = $this->createMock(RequestStack::class);
         $requestStack->expects($this->once())->method('getMainRequest')->willReturn($request);
 
-        $token = $this->createMock(TokenInterface::class);
-        $token->method('getUser')->willReturn(new InMemoryUser('foo', 'bar'));
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $tokenStorage->expects($this->once())->method('getToken')->willReturn($token);
-        $tokenStorage->expects($this->once())->method('setToken')->with(null);
+        $token = new UsernamePasswordToken(new InMemoryUser('foo', 'bar'), 'main');
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($token);
 
         $eventDispatcher = $this->createMock(EventDispatcherInterface::class);
         $eventDispatcher
@@ -478,6 +505,7 @@
 
         $this->assertInstanceOf(Response::class, $response);
         $this->assertEquals('a custom response', $response->getContent());
+        $this->assertNull($tokenStorage->getToken());
     }
 
     public function testLogoutWithoutRequestContext()
@@ -503,6 +531,6 @@
 
     private function createContainer(string $serviceId, object $serviceObject): ContainerInterface
     {
-        return new ServiceLocator([$serviceId => fn () => $serviceObject]);
+        return new ServiceLocator([$serviceId => static fn () => $serviceObject]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/Command/LintCommand.php symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/Command/LintCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/Command/LintCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/Command/LintCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,11 +31,11 @@
             ->setHelp(
                 $this->getHelp().<<<'EOF'
 
-Or all template files in a bundle:
+                    Or all template files in a bundle:
 
-  <info>php %command.full_name% @AcmeDemoBundle</info>
+                      <info>php %command.full_name% @AcmeDemoBundle</info>
 
-EOF
+                    EOF
             )
         ;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configuration.php symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configuration.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configuration.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configuration.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,8 +33,8 @@
         $rootNode = $treeBuilder->getRootNode();
 
         $rootNode->beforeNormalization()
-            ->ifTrue(fn ($v) => \is_array($v) && \array_key_exists('exception_controller', $v))
-            ->then(function ($v) {
+            ->ifTrue(static fn ($v) => \is_array($v) && \array_key_exists('exception_controller', $v))
+            ->then(static function ($v) {
                 if (isset($v['exception_controller'])) {
                     throw new InvalidConfigurationException('Option "exception_controller" under "twig" must be null or unset, use "error_controller" under "framework" instead.');
                 }
@@ -64,8 +64,8 @@
                     ->prototype('scalar')->defaultValue('form_div_layout.html.twig')->end()
                     ->example(['@My/form.html.twig'])
                     ->validate()
-                        ->ifTrue(fn ($v) => !\in_array('form_div_layout.html.twig', $v))
-                        ->then(fn ($v) => array_merge(['form_div_layout.html.twig'], $v))
+                        ->ifTrue(static fn ($v) => !\in_array('form_div_layout.html.twig', $v))
+                        ->then(static fn ($v) => array_merge(['form_div_layout.html.twig'], $v))
                     ->end()
                 ->end()
             ->end()
@@ -84,8 +84,8 @@
                     ->prototype('array')
                         ->normalizeKeys(false)
                         ->beforeNormalization()
-                            ->ifTrue(fn ($v) => \is_string($v) && str_starts_with($v, '@'))
-                            ->then(function ($v) {
+                            ->ifTrue(static fn ($v) => \is_string($v) && str_starts_with($v, '@'))
+                            ->then(static function ($v) {
                                 if (str_starts_with($v, '@@')) {
                                     return substr($v, 1);
                                 }
@@ -94,7 +94,7 @@
                             })
                         ->end()
                         ->beforeNormalization()
-                            ->ifTrue(function ($v) {
+                            ->ifTrue(static function ($v) {
                                 if (\is_array($v)) {
                                     $keys = array_keys($v);
                                     sort($keys);
@@ -104,7 +104,7 @@
 
                                 return true;
                             })
-                            ->then(fn ($v) => ['value' => $v])
+                            ->then(static fn ($v) => ['value' => $v])
                         ->end()
                         ->children()
                             ->scalarNode('id')->end()
@@ -149,7 +149,7 @@
                     ->info('Pattern of file name used for cache warmer and linter')
                     ->beforeNormalization()
                         ->ifString()
-                            ->then(fn ($value) => [$value])
+                            ->then(static fn ($value) => [$value])
                         ->end()
                     ->prototype('scalar')->end()
                 ->end()
@@ -158,7 +158,7 @@
                     ->useAttributeAsKey('paths')
                     ->beforeNormalization()
                         ->ifArray()
-                        ->then(function ($paths) {
+                        ->then(static function ($paths) {
                             $normalized = [];
                             foreach ($paths as $path => $namespace) {
                                 if (\is_array($namespace)) {
@@ -221,7 +221,7 @@
                 ->arrayNode('mailer')
                     ->children()
                         ->scalarNode('html_to_text_converter')
-                            ->info(sprintf('A service implementing the "%s"', HtmlToTextConverterInterface::class))
+                            ->info(\sprintf('A service implementing the "%s"', HtmlToTextConverterInterface::class))
                             ->defaultNull()
                         ->end()
                     ->end()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configurator/EnvironmentConfigurator.php symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configurator/EnvironmentConfigurator.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configurator/EnvironmentConfigurator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configurator/EnvironmentConfigurator.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
         $environment->getExtension(CoreExtension::class)->setNumberFormat($this->decimals, $this->decimalPoint, $this->thousandsSeparator);
 
         // wrap UndefinedCallableHandler in closures for lazy-autoloading
-        $environment->registerUndefinedFilterCallback(fn ($name) => UndefinedCallableHandler::onUndefinedFilter($name));
-        $environment->registerUndefinedFunctionCallback(fn ($name) => UndefinedCallableHandler::onUndefinedFunction($name));
+        $environment->registerUndefinedFilterCallback(static fn ($name) => UndefinedCallableHandler::onUndefinedFilter($name));
+        $environment->registerUndefinedFunctionCallback(static fn ($name) => UndefinedCallableHandler::onUndefinedFunction($name));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/Resources/config/twig.php symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/Resources/config/twig.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/Resources/config/twig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/Resources/config/twig.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,6 +38,7 @@
 use Symfony\Bundle\TwigBundle\TemplateIterator;
 use Twig\Cache\FilesystemCache;
 use Twig\Environment;
+use Twig\ExpressionParser\Infix\BinaryOperatorExpressionParser;
 use Twig\Extension\CoreExtension;
 use Twig\Extension\DebugExtension;
 use Twig\Extension\EscaperExtension;
@@ -63,6 +64,7 @@
             ->tag('container.preload', ['class' => EscaperExtension::class])
             ->tag('container.preload', ['class' => OptimizerExtension::class])
             ->tag('container.preload', ['class' => StagingExtension::class])
+            ->tag('container.preload', ['class' => BinaryOperatorExpressionParser::class])
             ->tag('container.preload', ['class' => ExtensionSet::class])
             ->tag('container.preload', ['class' => Template::class])
             ->tag('container.preload', ['class' => TemplateWrapper::class])
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/TemplateIterator.php symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/TemplateIterator.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/TemplateIterator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/TemplateIterator.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,6 +64,12 @@
             if (null !== $this->defaultPath) {
                 $templates[] = $this->findTemplatesInDirectory($this->defaultPath.'/bundles/'.$bundle->getName(), $name);
             }
+
+            /*
+             * The bundle's own templates are also registered with the "!" prefix namespace - this matches
+             * @see \Symfony\Bundle\TwigBundle\DependencyInjection\TwigExtension::load()
+             */
+            $templates[] = $this->findTemplatesInDirectory($bundleTemplatesDir, '!'.$name);
         }
 
         foreach ($this->paths as $dir => $namespace) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/Tests/Functional/NoTemplatingEntryTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/Tests/Functional/NoTemplatingEntryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/Tests/Functional/NoTemplatingEntryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/Tests/Functional/NoTemplatingEntryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
 
     public function registerContainerConfiguration(LoaderInterface $loader): void
     {
-        $loader->load(function (ContainerBuilder $container) {
+        $loader->load(static function (ContainerBuilder $container) {
             $config = [
                 'annotations' => false,
                 'http_method_override' => false,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/Tests/TemplateIteratorTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/Tests/TemplateIteratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/TwigBundle/Tests/TemplateIteratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/TwigBundle/Tests/TemplateIteratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,6 +25,7 @@
         sort($sorted);
         $this->assertEquals(
             [
+                '@!Bar/index.html.twig',
                 '@Bar/index.html.twig',
                 '@Bar/layout.html.twig',
                 '@Foo/index.html.twig',
@@ -43,6 +44,7 @@
         sort($sorted);
         $this->assertEquals(
             [
+                '@!Bar/index.html.twig',
                 '@Bar/index.html.twig',
                 '@Bar/layout.html.twig',
                 '@Foo/index.html.twig',
@@ -54,12 +56,12 @@
 
     private function createKernelMock(): Kernel
     {
-        $bundle = $this->createMock(BundleInterface::class);
-        $bundle->expects($this->any())->method('getName')->willReturn('BarBundle');
-        $bundle->expects($this->any())->method('getPath')->willReturn(__DIR__.'/Fixtures/templates/BarBundle');
+        $bundle = $this->createStub(BundleInterface::class);
+        $bundle->method('getName')->willReturn('BarBundle');
+        $bundle->method('getPath')->willReturn(__DIR__.'/Fixtures/templates/BarBundle');
 
-        $kernel = $this->createMock(Kernel::class);
-        $kernel->expects($this->any())->method('getBundles')->willReturn([
+        $kernel = $this->createStub(Kernel::class);
+        $kernel->method('getBundles')->willReturn([
             $bundle,
         ]);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,7 +78,7 @@
         $page = $request->query->get('page', 'home');
         $profileType = $request->query->get('type', 'request');
 
-        if ('latest' === $token && $latest = current($this->profiler->find(null, null, 1, null, null, null, null, fn ($profile) => $profileType === $profile['virtual_type']))) {
+        if ('latest' === $token && $latest = current($this->profiler->find(null, null, 1, null, null, null, null, static fn ($profile) => $profileType === $profile['virtual_type']))) {
             $token = $latest['token'];
         }
 
@@ -105,7 +105,7 @@
         }
 
         if (!$profile->hasCollector($panel)) {
-            throw new NotFoundHttpException(sprintf('Panel "%s" is not available for token "%s".', $panel, $token));
+            throw new NotFoundHttpException(\sprintf('Panel "%s" is not available for token "%s".', $panel, $token));
         }
 
         return $this->renderWithCspNonces($request, $this->getTemplateManager()->getName($profile, $panel), [
@@ -229,7 +229,7 @@
             'request' => $request,
             'token' => $token,
             'profile' => $profile,
-            'tokens' => $this->profiler->find($ip, $url, $limit, $method, $start, $end, $statusCode, fn ($profile) => $profileType === $profile['virtual_type']),
+            'tokens' => $this->profiler->find($ip, $url, $limit, $method, $start, $end, $statusCode, static fn ($profile) => $profileType === $profile['virtual_type']),
             'ip' => $ip,
             'method' => $method,
             'status_code' => $statusCode,
@@ -279,7 +279,7 @@
             return new RedirectResponse($this->generator->generate('_profiler', ['token' => $token]), 302, ['Content-Type' => 'text/html']);
         }
 
-        $tokens = $this->profiler->find($ip, $url, $limit, $method, $start, $end, $statusCode, fn ($profile) => $profileType === $profile['virtual_type']);
+        $tokens = $this->profiler->find($ip, $url, $limit, $method, $start, $end, $statusCode, static fn ($profile) => $profileType === $profile['virtual_type']);
 
         return new RedirectResponse($this->generator->generate('_profiler_search_results', [
             'token' => $tokens ? $tokens[0]['token'] : 'empty',
@@ -343,12 +343,12 @@
     {
         $this->denyAccessIfProfilerDisabled();
         if ('JetBrainsMono' !== $fontName) {
-            throw new NotFoundHttpException(sprintf('Font file "%s.woff2" not found.', $fontName));
+            throw new NotFoundHttpException(\sprintf('Font file "%s.woff2" not found.', $fontName));
         }
 
         $fontFile = \dirname(__DIR__).'/Resources/fonts/'.$fontName.'.woff2';
         if (!is_file($fontFile) || !is_readable($fontFile)) {
-            throw new NotFoundHttpException(sprintf('Cannot read font file "%s".', $fontFile));
+            throw new NotFoundHttpException(\sprintf('Cannot read font file "%s".', $fontFile));
         }
 
         $this->profiler?->disable();
@@ -375,7 +375,7 @@
         $filename = $this->baseDir.\DIRECTORY_SEPARATOR.$file;
 
         if (preg_match("'(^|[/\\\\])\.'", $file) || !is_readable($filename)) {
-            throw new NotFoundHttpException(sprintf('The file "%s" cannot be opened.', $file));
+            throw new NotFoundHttpException(\sprintf('The file "%s" cannot be opened.', $file));
         }
 
         return $this->renderWithCspNonces($request, '@WebProfiler/Profiler/open.html.twig', [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Csp/ContentSecurityPolicyHandler.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Csp/ContentSecurityPolicyHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Csp/ContentSecurityPolicyHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Csp/ContentSecurityPolicyHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -124,10 +124,10 @@
         $headers = $this->getCspHeaders($response);
 
         $types = [
-          'script-src' => 'csp_script_nonce',
-          'script-src-elem' => 'csp_script_nonce',
-          'style-src' => 'csp_style_nonce',
-          'style-src-elem' => 'csp_style_nonce',
+            'script-src' => 'csp_script_nonce',
+            'script-src-elem' => 'csp_script_nonce',
+            'style-src' => 'csp_style_nonce',
+            'style-src-elem' => 'csp_style_nonce',
         ];
 
         foreach ($headers as $header => $directives) {
@@ -152,7 +152,7 @@
                 if (!\in_array('\'unsafe-inline\'', $headers[$header][$type], true)) {
                     $headers[$header][$type][] = '\'unsafe-inline\'';
                 }
-                $headers[$header][$type][] = sprintf('\'nonce-%s\'', $nonces[$tokenName]);
+                $headers[$header][$type][] = \sprintf('\'nonce-%s\'', $nonces[$tokenName]);
             }
         }
 
@@ -180,7 +180,7 @@
      */
     private function generateCspHeader(array $directives): string
     {
-        return array_reduce(array_keys($directives), fn ($res, $name) => ('' !== $res ? $res.'; ' : '').sprintf('%s %s', $name, implode(' ', $directives[$name])), '');
+        return array_reduce(array_keys($directives), static fn ($res, $name) => ('' !== $res ? $res.'; ' : '').\sprintf('%s %s', $name, implode(' ', $directives[$name])), '');
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/EventListener/WebDebugToolbarListener.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/EventListener/WebDebugToolbarListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/EventListener/WebDebugToolbarListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/EventListener/WebDebugToolbarListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
     public function setMode(int $mode): void
     {
         if (self::DISABLED !== $mode && self::ENABLED !== $mode) {
-            throw new \InvalidArgumentException(sprintf('Invalid value provided for mode, use one of "%s::DISABLED" or "%s::ENABLED".', self::class, self::class));
+            throw new \InvalidArgumentException(\sprintf('Invalid value provided for mode, use one of "%s::DISABLED" or "%s::ENABLED".', self::class, self::class));
         }
 
         $this->mode = $mode;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Profiler/TemplateManager.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Profiler/TemplateManager.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Profiler/TemplateManager.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Profiler/TemplateManager.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
         $templates = $this->getNames($profile);
 
         if (!isset($templates[$panel])) {
-            throw new NotFoundHttpException(sprintf('Panel "%s" is not registered in profiler or is not present in viewed profile.', $panel));
+            throw new NotFoundHttpException(\sprintf('Panel "%s" is not registered in profiler or is not present in viewed profile.', $panel));
         }
 
         return $templates[$panel];
@@ -77,7 +77,7 @@
             }
 
             if (!$loader->exists($template.'.html.twig')) {
-                throw new \UnexpectedValueException(sprintf('The profiler template "%s.html.twig" for data collector "%s" does not exist.', $template, $name));
+                throw new \UnexpectedValueException(\sprintf('The profiler template "%s.html.twig" for data collector "%s" does not exist.', $template, $name));
             }
 
             $templates[$name] = $template.'.html.twig';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/mailer.html.twig symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/mailer.html.twig
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/mailer.html.twig	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/mailer.html.twig	2026-05-20 10:56:49.000000000 +0200
@@ -278,24 +278,8 @@
                             {% for event in collector.events.events(transport) %}
                                 <tr class="mailer-email-summary-table-row {{ loop.first ? 'active' }}" data-target="#email-{{ loop.index }}">
                                     <td>{{ loop.index }}</td>
-                                    <td>
-                                        {% if event.message.subject is defined %}
-                                            {{ event.message.getSubject() ?? '(No subject)' }}
-                                        {% elseif event.message.headers.has('subject') %}
-                                            {{ event.message.headers.get('subject').bodyAsString()|default('(No subject)') }}
-                                        {% else %}
-                                            (No subject)
-                                        {% endif %}
-                                    </td>
-                                    <td>
-                                        {% if event.message.to is defined %}
-                                            {{ event.message.getTo()|map(addr => addr.toString())|join(', ')|default('(empty)') }}
-                                        {% elseif event.message.headers.has('to') %}
-                                            {{ event.message.headers.get('to').bodyAsString()|default('(empty)') }}
-                                        {% else %}
-                                            (empty)
-                                        {% endif %}
-                                    </td>
+                                    <td>{{ event.message.headers.get('subject').bodyAsString()|default('(No subject)') }}</td>
+                                    <td>{{ event.message.headers.get('to').bodyAsString()|default(event.envelope.recipients|map(addr => addr.toString())|join(', ')) }}</td>
                                     <td class="visually-hidden"><button class="mailer-email-summary-table-row-button" data-target="#email-{{ loop.index }}">View email details</button></td>
                                 </tr>
                             {% endfor %}
@@ -339,34 +323,16 @@
                     <div class="tab-content">
                         <div class="card-block">
                             <p class="mailer-message-subject">
-                                {% if message.subject is defined %}
-                                    {{ message.getSubject() ?? '(No subject)' }}
-                                {% elseif message.headers.has('subject') %}
-                                    {{ message.headers.get('subject').bodyAsString()|default('(No subject)') }}
-                                {% else %}
-                                    (No subject)
-                                {% endif %}
+                                {{ message.headers.get('subject').bodyAsString()|default('(No subject)') }}
                             </p>
                             <div class="mailer-message-headers">
                                 <p>
                                     <strong>From:</strong>
-                                    {% if message.from is defined %}
-                                        {{ message.getFrom()|map(addr => addr.toString())|join(', ')|default('(empty)') }}
-                                    {% elseif message.headers.has('from') %}
-                                        {{ message.headers.get('from').bodyAsString()|default('(empty)') }}
-                                    {% else %}
-                                        (empty)
-                                    {% endif %}
+                                    {{ message.headers.get('from').bodyAsString()|default('(empty)') }}
                                 </p>
                                 <p>
                                     <strong>To:</strong>
-                                    {% if message.to is defined %}
-                                        {{ message.getTo()|map(addr => addr.toString())|join(', ')|default('(empty)') }}
-                                    {% elseif message.headers.has('to') %}
-                                        {{ message.headers.get('to').bodyAsString()|default('(empty)') }}
-                                    {% else %}
-                                        (empty)
-                                    {% endif %}
+                                    {{ message.headers.get('to').bodyAsString()|default('(empty)') }}
                                 </p>
                                 {% for header in message.headers.all|filter(header => (header.name ?? '')|lower not in ['subject', 'from', 'to']) %}
                                     <p class="mailer-message-header-secondary">{{ header.toString }}</p>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_js.html.twig symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_js.html.twig
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_js.html.twig	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_js.html.twig	2026-05-20 10:56:49.000000000 +0200
@@ -1,656 +1,662 @@
-<div id="sfwdt{{ token }}" class="sf-toolbar sf-display-none" role="region" aria-label="Symfony Web Debug Toolbar">
-    {{ include('@WebProfiler/Profiler/toolbar.html.twig', {
-        templates: {
-            'request': '@WebProfiler/Profiler/cancel.html.twig'
-        },
-        profile: null,
-        profiler_url: url('_profiler', {token: token}),
-        profiler_markup_version: 3,
-    }) }}
-</div>
-
-<style{% if csp_style_nonce %} nonce="{{ csp_style_nonce }}"{% endif %}>
-    {{ include('@WebProfiler/Profiler/toolbar.css.twig') }}
-</style>
-
-{# CAUTION: the contents of this file are processed by Twig before loading
-            them as JavaScript source code. Always use '/*' comments instead
-            of '//' comments to avoid impossible-to-debug side-effects #}
-<script{% if csp_script_nonce is defined and csp_script_nonce %} nonce="{{ csp_script_nonce }}"{% endif %}>/*<![CDATA[*/
-    if (typeof Sfjs === 'undefined' || typeof Sfjs.loadToolbar === 'undefined') {
-        Sfjs = (function() {
-            "use strict";
-
-            if ('classList' in document.documentElement) {
-                var hasClass = function (el, cssClass) { return el.classList.contains(cssClass); };
-                var removeClass = function(el, cssClass) { el.classList.remove(cssClass); };
-                var addClass = function(el, cssClass) { el.classList.add(cssClass); };
-                var toggleClass = function(el, cssClass) { el.classList.toggle(cssClass); };
-            } else {
-                var hasClass = function (el, cssClass) { return el.className.match(new RegExp('\\b' + cssClass + '\\b')); };
-                var removeClass = function(el, cssClass) { el.className = el.className.replace(new RegExp('\\b' + cssClass + '\\b'), ' '); };
-                var addClass = function(el, cssClass) { if (!hasClass(el, cssClass)) { el.className += " " + cssClass; } };
-                var toggleClass = function(el, cssClass) { hasClass(el, cssClass) ? removeClass(el, cssClass) : addClass(el, cssClass); };
-            }
-
-            var noop = function() {};
-
-            var profilerStorageKey = 'symfony/profiler/';
-
-            var addEventListener;
-
-            var el = document.createElement('div');
-            if (!('addEventListener' in el)) {
-                addEventListener = function (element, eventName, callback) {
-                    element.attachEvent('on' + eventName, callback);
-                };
-            } else {
-                addEventListener = function (element, eventName, callback) {
-                    element.addEventListener(eventName, callback, false);
-                };
-            }
-
-            var request = function(url, onSuccess, onError, payload, options, tries) {
-                var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
-                options = options || {};
-                options.retry = options.retry || false;
-                tries = tries || 1;
-                /* this delays for 125, 375, 625, 875, and 1000, ... */
-                var delay = tries < 5 ? (tries - 0.5) * 250 : 1000;
-
-                xhr.open(options.method || 'GET', url, true);
-                xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
-                xhr.onreadystatechange = function(state) {
-                    if (4 !== xhr.readyState) {
-                        return null;
-                    }
-
-                    if (xhr.status == 404 && options.retry && !options.stop) {
-                        setTimeout(function() {
-                            if (options.stop) {
-                                return;
-                            }
-                            request(url, onSuccess, onError, payload, options, tries + 1);
-                        }, delay);
-
-                        return null;
-                    }
+<div class="sf-toolbar sf-display-none" role="region" aria-label="Symfony Web Debug Toolbar" data-frankenphp-hot-reload-preserve>
+    <div id="sfwdt{{ token }}">
+        {{ include('@WebProfiler/Profiler/toolbar.html.twig', {
+            templates: {
+                'request': '@WebProfiler/Profiler/cancel.html.twig'
+            },
+            profile: null,
+            profiler_url: url('_profiler', {token: token}),
+            profiler_markup_version: 3,
+        }) }}
+    </div>
+
+    <style{% if csp_style_nonce %} nonce="{{ csp_style_nonce }}"{% endif %}>
+        {{ include('@WebProfiler/Profiler/toolbar.css.twig') }}
+    </style>
+
+    {# CAUTION: the contents of this file are processed by Twig before loading
+                them as JavaScript source code. Always use '/*' comments instead
+                of '//' comments to avoid impossible-to-debug side-effects #}
+    <script{% if csp_script_nonce is defined and csp_script_nonce %} nonce="{{ csp_script_nonce }}"{% endif %}>/*<![CDATA[*/
+        if (typeof Sfjs === 'undefined' || typeof Sfjs.loadToolbar === 'undefined') {
+            Sfjs = (function() {
+                "use strict";
+
+                if ('classList' in document.documentElement) {
+                    var hasClass = function (el, cssClass) { return el.classList.contains(cssClass); };
+                    var removeClass = function(el, cssClass) { el.classList.remove(cssClass); };
+                    var addClass = function(el, cssClass) { el.classList.add(cssClass); };
+                    var toggleClass = function(el, cssClass) { el.classList.toggle(cssClass); };
+                } else {
+                    var hasClass = function (el, cssClass) { return el.className.match(new RegExp('\\b' + cssClass + '\\b')); };
+                    var removeClass = function(el, cssClass) { el.className = el.className.replace(new RegExp('\\b' + cssClass + '\\b'), ' '); };
+                    var addClass = function(el, cssClass) { if (!hasClass(el, cssClass)) { el.className += " " + cssClass; } };
+                    var toggleClass = function(el, cssClass) { hasClass(el, cssClass) ? removeClass(el, cssClass) : addClass(el, cssClass); };
+                }
 
-                    if (200 === xhr.status) {
-                        (onSuccess || noop)(xhr);
-                    } else {
-                        (onError || noop)(xhr);
-                    }
-                };
+                var noop = function() {};
 
-                if (options.onSend) {
-                    options.onSend(tries);
-                }
+                var profilerStorageKey = 'symfony/profiler/';
 
-                xhr.send(payload || '');
-            };
+                var addEventListener;
 
-            var getPreference = function(name) {
-                if (!window.localStorage) {
-                    return null;
+                var el = document.createElement('div');
+                if (!('addEventListener' in el)) {
+                    addEventListener = function (element, eventName, callback) {
+                        element.attachEvent('on' + eventName, callback);
+                    };
+                } else {
+                    addEventListener = function (element, eventName, callback) {
+                        element.addEventListener(eventName, callback, false);
+                    };
                 }
 
-                return localStorage.getItem(profilerStorageKey + name);
-            };
+                var request = function(url, onSuccess, onError, payload, options, tries) {
+                    var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
+                    options = options || {};
+                    options.retry = options.retry || false;
+                    tries = tries || 1;
+                    /* this delays for 125, 375, 625, 875, and 1000, ... */
+                    var delay = tries < 5 ? (tries - 0.5) * 250 : 1000;
+
+                    xhr.open(options.method || 'GET', url, true);
+                    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
+                    xhr.onreadystatechange = function(state) {
+                        if (4 !== xhr.readyState) {
+                            return null;
+                        }
 
-            var setPreference = function(name, value) {
-                if (!window.localStorage) {
-                    return null;
-                }
+                        if (xhr.status == 404 && options.retry && !options.stop) {
+                            setTimeout(function() {
+                                if (options.stop) {
+                                    return;
+                                }
+                                request(url, onSuccess, onError, payload, options, tries + 1);
+                            }, delay);
 
-                localStorage.setItem(profilerStorageKey + name, value);
-            };
+                            return null;
+                        }
 
-            var requestStack = [];
+                        if (200 === xhr.status) {
+                            (onSuccess || noop)(xhr);
+                        } else {
+                            (onError || noop)(xhr);
+                        }
+                    };
 
-            var extractHeaders = function(xhr, stackElement) {
-                /* Here we avoid to call xhr.getResponseHeader in order to */
-                /* prevent polluting the console with CORS security errors */
-                var allHeaders = xhr.getAllResponseHeaders();
-                var ret;
+                    if (options.onSend) {
+                        options.onSend(tries);
+                    }
 
-                if (ret = allHeaders.match(/^x-debug-token:\s+(.*)$/im)) {
-                    stackElement.profile = ret[1];
-                }
-                if (ret = allHeaders.match(/^x-debug-token-link:\s+(.*)$/im)) {
-                    stackElement.profilerUrl = ret[1];
-                }
-                if (ret = allHeaders.match(/^Symfony-Debug-Toolbar-Replace:\s+(.*)$/im)) {
-                    stackElement.toolbarReplaceFinished = false;
-                    stackElement.toolbarReplace = '1' === ret[1];
-                }
-            };
+                    xhr.send(payload || '');
+                };
 
-            var successStreak = 4;
-            var pendingRequests = 0;
-            var renderAjaxRequests = function() {
-                var requestCounter = document.querySelector('.sf-toolbar-ajax-request-counter');
-                if (!requestCounter) {
-                    return;
-                }
-                requestCounter.textContent = requestStack.length;
+                var getPreference = function(name) {
+                    if (!window.localStorage) {
+                        return null;
+                    }
 
-                var infoSpan = document.querySelector(".sf-toolbar-ajax-info");
-                if (infoSpan) {
-                    infoSpan.textContent = requestStack.length + ' AJAX request' + (requestStack.length !== 1 ? 's' : '');
-                }
+                    return localStorage.getItem(profilerStorageKey + name);
+                };
 
-                var ajaxToolbarPanel = document.querySelector('.sf-toolbar-block-ajax');
-                if (requestStack.length) {
-                    ajaxToolbarPanel.style.display = 'block';
-                } else {
-                    ajaxToolbarPanel.style.display = 'none';
-                }
-                if (pendingRequests > 0) {
-                    addClass(ajaxToolbarPanel, 'sf-ajax-request-loading');
-                } else if (successStreak < 4) {
-                    addClass(ajaxToolbarPanel, 'sf-toolbar-status-red');
-                    removeClass(ajaxToolbarPanel, 'sf-ajax-request-loading');
-                } else {
-                    removeClass(ajaxToolbarPanel, 'sf-ajax-request-loading');
-                    removeClass(ajaxToolbarPanel, 'sf-toolbar-status-red');
-                }
-            };
+                var setPreference = function(name, value) {
+                    if (!window.localStorage) {
+                        return null;
+                    }
 
-            var startAjaxRequest = function(index) {
-                var tbody = document.querySelector('.sf-toolbar-ajax-request-list');
-                if (!tbody) {
-                    return;
-                }
+                    localStorage.setItem(profilerStorageKey + name, value);
+                };
 
-                var nbOfAjaxRequest = tbody.rows.length;
-                if (nbOfAjaxRequest >= 100) {
-                    tbody.deleteRow(0);
-                }
+                var requestStack = [];
 
-                var request = requestStack[index];
-                pendingRequests++;
-                var row = document.createElement('tr');
-                request.DOMNode = row;
-
-                var requestNumberCell = document.createElement('td');
-                requestNumberCell.textContent = index + 1;
-                row.appendChild(requestNumberCell);
-
-                var profilerCell = document.createElement('td');
-                profilerCell.textContent = 'n/a';
-                row.appendChild(profilerCell);
-
-                var methodCell = document.createElement('td');
-                methodCell.textContent = request.method;
-                row.appendChild(methodCell);
-
-                var typeCell = document.createElement('td');
-                typeCell.textContent = request.type;
-                row.appendChild(typeCell);
-
-                var statusCodeCell = document.createElement('td');
-                var statusCode = document.createElement('span');
-                statusCode.textContent = 'n/a';
-                statusCodeCell.appendChild(statusCode);
-                row.appendChild(statusCodeCell);
-
-                var pathCell = document.createElement('td');
-                pathCell.className = 'sf-ajax-request-url';
-                if ('GET' === request.method) {
-                    var pathLink = document.createElement('a');
-                    pathLink.setAttribute('href', request.url);
-                    pathLink.textContent = request.url;
-                    pathCell.appendChild(pathLink);
-                } else {
-                    pathCell.textContent = request.url;
-                }
-                pathCell.setAttribute('title', request.url);
-                row.appendChild(pathCell);
+                var extractHeaders = function(xhr, stackElement) {
+                    /* Here we avoid to call xhr.getResponseHeader in order to */
+                    /* prevent polluting the console with CORS security errors */
+                    var allHeaders = xhr.getAllResponseHeaders();
+                    var ret;
+
+                    if (ret = allHeaders.match(/^x-debug-token:\s+(.*)$/im)) {
+                        stackElement.profile = ret[1];
+                    }
+                    if (ret = allHeaders.match(/^x-debug-token-link:\s+(.*)$/im)) {
+                        stackElement.profilerUrl = ret[1];
+                    }
+                    if (ret = allHeaders.match(/^Symfony-Debug-Toolbar-Replace:\s+(.*)$/im)) {
+                        stackElement.toolbarReplaceFinished = false;
+                        stackElement.toolbarReplace = '1' === ret[1];
+                    }
+                };
 
-                var durationCell = document.createElement('td');
-                durationCell.className = 'sf-ajax-request-duration';
-                durationCell.textContent = 'n/a';
-                row.appendChild(durationCell);
+                var successStreak = 4;
+                var pendingRequests = 0;
+                var renderAjaxRequests = function() {
+                    var requestCounter = document.querySelector('.sf-toolbar-ajax-request-counter');
+                    if (!requestCounter) {
+                        return;
+                    }
+                    requestCounter.textContent = requestStack.length;
+
+                    var infoSpan = document.querySelector(".sf-toolbar-ajax-info");
+                    if (infoSpan) {
+                        infoSpan.textContent = requestStack.length + ' AJAX request' + (requestStack.length !== 1 ? 's' : '');
+                    }
+
+                    var ajaxToolbarPanel = document.querySelector('.sf-toolbar-block-ajax');
+                    if (requestStack.length) {
+                        ajaxToolbarPanel.style.display = 'block';
+                    } else {
+                        ajaxToolbarPanel.style.display = 'none';
+                    }
+                    if (pendingRequests > 0) {
+                        addClass(ajaxToolbarPanel, 'sf-ajax-request-loading');
+                    } else if (successStreak < 4) {
+                        addClass(ajaxToolbarPanel, 'sf-toolbar-status-red');
+                        removeClass(ajaxToolbarPanel, 'sf-ajax-request-loading');
+                    } else {
+                        removeClass(ajaxToolbarPanel, 'sf-ajax-request-loading');
+                        removeClass(ajaxToolbarPanel, 'sf-toolbar-status-red');
+                    }
+                };
 
-                request.liveDurationHandle = setInterval(function() {
-                    durationCell.textContent = (new Date() - request.start) + ' ms';
-                }, 100);
+                var startAjaxRequest = function(index) {
+                    var tbody = document.querySelector('.sf-toolbar-ajax-request-list');
+                    if (!tbody) {
+                        return;
+                    }
+
+                    var nbOfAjaxRequest = tbody.rows.length;
+                    if (nbOfAjaxRequest >= 100) {
+                        tbody.deleteRow(0);
+                    }
+
+                    var request = requestStack[index];
+                    pendingRequests++;
+                    var row = document.createElement('tr');
+                    request.DOMNode = row;
+
+                    var requestNumberCell = document.createElement('td');
+                    requestNumberCell.textContent = index + 1;
+                    row.appendChild(requestNumberCell);
+
+                    var profilerCell = document.createElement('td');
+                    profilerCell.textContent = 'n/a';
+                    row.appendChild(profilerCell);
+
+                    var methodCell = document.createElement('td');
+                    methodCell.textContent = request.method;
+                    row.appendChild(methodCell);
+
+                    var typeCell = document.createElement('td');
+                    typeCell.textContent = request.type;
+                    row.appendChild(typeCell);
+
+                    var statusCodeCell = document.createElement('td');
+                    var statusCode = document.createElement('span');
+                    statusCode.textContent = 'n/a';
+                    statusCodeCell.appendChild(statusCode);
+                    row.appendChild(statusCodeCell);
+
+                    var pathCell = document.createElement('td');
+                    pathCell.className = 'sf-ajax-request-url';
+                    if ('GET' === request.method) {
+                        var pathLink = document.createElement('a');
+                        pathLink.setAttribute('href', request.url);
+                        pathLink.textContent = request.url;
+                        pathCell.appendChild(pathLink);
+                    } else {
+                        pathCell.textContent = request.url;
+                    }
+                    pathCell.setAttribute('title', request.url);
+                    row.appendChild(pathCell);
 
-                row.className = 'sf-ajax-request sf-ajax-request-loading';
-                tbody.insertBefore(row, null);
+                    var durationCell = document.createElement('td');
+                    durationCell.className = 'sf-ajax-request-duration';
+                    durationCell.textContent = 'n/a';
+                    row.appendChild(durationCell);
 
-                var toolbarInfo = document.querySelector('.sf-toolbar-block-ajax .sf-toolbar-info');
-                toolbarInfo.scrollTop = toolbarInfo.scrollHeight;
+                    request.liveDurationHandle = setInterval(function() {
+                        durationCell.textContent = (new Date() - request.start) + ' ms';
+                    }, 100);
 
-                renderAjaxRequests();
-            };
+                    row.className = 'sf-ajax-request sf-ajax-request-loading';
+                    tbody.insertBefore(row, null);
 
-            var finishAjaxRequest = function(index) {
-                var request = requestStack[index];
-                clearInterval(request.liveDurationHandle);
+                    var toolbarInfo = document.querySelector('.sf-toolbar-block-ajax .sf-toolbar-info');
+                    toolbarInfo.scrollTop = toolbarInfo.scrollHeight;
 
-                if (!request.DOMNode) {
-                    return;
-                }
+                    renderAjaxRequests();
+                };
 
-                if (request.toolbarReplace && !request.toolbarReplaceFinished && request.profile) {
-                    /* Flag as complete because finishAjaxRequest can be called multiple times. */
-                    request.toolbarReplaceFinished = true;
-                    /* Search up through the DOM to find the toolbar's container ID. */
-                    for (var elem = request.DOMNode; elem && elem !== document; elem = elem.parentNode) {
-                        if (elem.id.match(/^sfwdt/)) {
-                            Sfjs.loadToolbar(elem.id.replace(/^sfwdt/, ''), request.profile);
-                            break;
+                var finishAjaxRequest = function(index) {
+                    var request = requestStack[index];
+                    clearInterval(request.liveDurationHandle);
+
+                    if (!request.DOMNode) {
+                        return;
+                    }
+
+                    if (request.toolbarReplace && !request.toolbarReplaceFinished && request.profile) {
+                        /* Flag as complete because finishAjaxRequest can be called multiple times. */
+                        request.toolbarReplaceFinished = true;
+                        /* Search up through the DOM to find the toolbar's container ID. */
+                        for (var elem = request.DOMNode; elem && elem !== document; elem = elem.parentNode) {
+                            if (elem.id.match(/^sfwdt/)) {
+                                Sfjs.loadToolbar(elem.id.replace(/^sfwdt/, ''), request.profile);
+                                break;
+                            }
                         }
                     }
-                }
 
-                pendingRequests--;
-                var row = request.DOMNode;
-                /* Unpack the children from the row */
-                var profilerCell = row.children[1];
-                var methodCell = row.children[2];
-                var statusCodeCell = row.children[4];
-                var statusCodeElem = statusCodeCell.children[0];
-                var durationCell = row.children[6];
-
-                if (request.error) {
-                    row.className = 'sf-ajax-request sf-ajax-request-error';
-                    methodCell.className = 'sf-ajax-request-error';
-                    successStreak = 0;
-                } else {
-                    row.className = 'sf-ajax-request sf-ajax-request-ok';
-                    successStreak++;
-                }
+                    if (pendingRequests > 0) {
+                        pendingRequests--;
+                    }
 
-                if (request.statusCode) {
-                    if (request.statusCode < 300) {
-                        statusCodeElem.setAttribute('class', 'sf-toolbar-status');
-                    } else if (request.statusCode < 400) {
-                        statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-yellow');
+                    var row = request.DOMNode;
+                    /* Unpack the children from the row */
+                    var profilerCell = row.children[1];
+                    var methodCell = row.children[2];
+                    var statusCodeCell = row.children[4];
+                    var statusCodeElem = statusCodeCell.children[0];
+                    var durationCell = row.children[6];
+
+                    if (request.error) {
+                        row.className = 'sf-ajax-request sf-ajax-request-error';
+                        methodCell.className = 'sf-ajax-request-error';
+                        successStreak = 0;
                     } else {
-                        statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-red');
+                        row.className = 'sf-ajax-request sf-ajax-request-ok';
+                        successStreak++;
                     }
-                    statusCodeElem.textContent = request.statusCode;
-                } else {
-                    statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-red');
-                }
-
-                if (request.duration) {
-                    durationCell.textContent = request.duration + ' ms';
-                }
-
-                if (request.profilerUrl) {
-                    profilerCell.textContent = '';
-                    var profilerLink = document.createElement('a');
-                    profilerLink.setAttribute('href', request.profilerUrl);
-                    profilerLink.textContent = request.profile;
-                    profilerCell.appendChild(profilerLink);
-                }
-
-                renderAjaxRequests();
-            };
 
-            {% if excluded_ajax_paths is defined %}
-            if (window.fetch && window.fetch.polyfill === undefined) {
-                var oldFetch = window.fetch;
-                window.fetch = function () {
-                    var promise = oldFetch.apply(this, arguments);
-                    var url = arguments[0];
-                    var params = arguments[1];
-                    var paramType = Object.prototype.toString.call(arguments[0]);
-                    if (paramType === '[object Request]') {
-                        url = arguments[0].url;
-                        params = {
-                            method: arguments[0].method,
-                            credentials: arguments[0].credentials,
-                            headers: arguments[0].headers,
-                            mode: arguments[0].mode,
-                            redirect: arguments[0].redirect
-                        };
+                    if (request.statusCode) {
+                        if (request.statusCode < 300) {
+                            statusCodeElem.setAttribute('class', 'sf-toolbar-status');
+                        } else if (request.statusCode < 400) {
+                            statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-yellow');
+                        } else {
+                            statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-red');
+                        }
+                        statusCodeElem.textContent = request.statusCode;
                     } else {
-                        url = String(url);
+                        statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-red');
                     }
-                    if (!url.match(new RegExp({{ excluded_ajax_paths|json_encode|raw }}))) {
-                        var method = 'GET';
-                        if (params && params.method !== undefined) {
-                            method = params.method;
-                        }
 
-                        var stackElement = {
-                            error: false,
-                            url: url,
-                            method: method,
-                            type: 'fetch',
-                            start: new Date()
-                        };
+                    if (request.duration) {
+                        durationCell.textContent = request.duration + ' ms';
+                    }
 
-                        var idx = requestStack.push(stackElement) - 1;
-                        promise.then(function (r) {
-                            stackElement.duration = new Date() - stackElement.start;
-                            stackElement.error = r.status < 200 || r.status >= 400;
-                            stackElement.statusCode = r.status;
-                            stackElement.profile = r.headers.get('x-debug-token');
-                            stackElement.profilerUrl = r.headers.get('x-debug-token-link');
-                            stackElement.toolbarReplaceFinished = false;
-                            stackElement.toolbarReplace = '1' === r.headers.get('Symfony-Debug-Toolbar-Replace');
-                            finishAjaxRequest(idx);
-                        }, function (e){
-                            stackElement.error = true;
-                            finishAjaxRequest(idx);
-                        });
-                        startAjaxRequest(idx);
+                    if (request.profilerUrl) {
+                        profilerCell.textContent = '';
+                        var profilerLink = document.createElement('a');
+                        profilerLink.setAttribute('href', request.profilerUrl);
+                        profilerLink.textContent = request.profile;
+                        profilerCell.appendChild(profilerLink);
                     }
 
-                    return promise;
+                    renderAjaxRequests();
                 };
-            }
-            if (window.XMLHttpRequest && XMLHttpRequest.prototype.addEventListener) {
-                var proxied = XMLHttpRequest.prototype.open;
-
-                XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
-                    var self = this;
-
-                    /* prevent logging AJAX calls to static and inline files, like templates */
-                    var path = url;
-                    if (url.slice(0, 1) === '/') {
-                        if (0 === url.indexOf('{{ request.basePath|e('js') }}')) {
-                            path = url.slice({{ request.basePath|length }});
-                        }
-                    }
-                    else if (0 === url.indexOf('{{ (request.schemeAndHttpHost ~ request.basePath)|e('js') }}')) {
-                        path = url.slice({{ (request.schemeAndHttpHost ~ request.basePath)|length }});
-                    }
-
-                    if (!path.match(new RegExp({{ excluded_ajax_paths|json_encode|raw }}))) {
-                        var stackElement = {
-                            error: false,
-                            url: url,
-                            method: method,
-                            type: 'xhr',
-                            start: new Date()
-                        };
 
-                        var idx = requestStack.push(stackElement) - 1;
+                {% if excluded_ajax_paths is defined %}
+                if (window.fetch && window.fetch.polyfill === undefined) {
+                    var oldFetch = window.fetch;
+                    window.fetch = function () {
+                        var promise = oldFetch.apply(this, arguments);
+                        var url = arguments[0];
+                        var params = arguments[1];
+                        var paramType = Object.prototype.toString.call(arguments[0]);
+                        if (paramType === '[object Request]') {
+                            url = arguments[0].url;
+                            params = {
+                                method: arguments[0].method,
+                                credentials: arguments[0].credentials,
+                                headers: arguments[0].headers,
+                                mode: arguments[0].mode,
+                                redirect: arguments[0].redirect
+                            };
+                        } else {
+                            url = String(url);
+                        }
+                        if (!url.match(new RegExp({{ excluded_ajax_paths|json_encode|raw }}))) {
+                            var method = 'GET';
+                            if (params && params.method !== undefined) {
+                                method = params.method;
+                            }
+
+                            var stackElement = {
+                                error: false,
+                                url: url,
+                                method: method,
+                                type: 'fetch',
+                                start: new Date()
+                            };
 
-                        this.addEventListener('readystatechange', function() {
-                            if (self.readyState == 4) {
+                            var idx = requestStack.push(stackElement) - 1;
+                            promise.then(function (r) {
                                 stackElement.duration = new Date() - stackElement.start;
-                                stackElement.error = self.status < 200 || self.status >= 400;
-                                stackElement.statusCode = self.status;
-                                extractHeaders(self, stackElement);
-
+                                stackElement.error = r.status < 200 || r.status >= 400;
+                                stackElement.statusCode = r.status;
+                                stackElement.profile = r.headers.get('x-debug-token');
+                                stackElement.profilerUrl = r.headers.get('x-debug-token-link');
+                                stackElement.toolbarReplaceFinished = false;
+                                stackElement.toolbarReplace = '1' === r.headers.get('Symfony-Debug-Toolbar-Replace');
                                 finishAjaxRequest(idx);
+                            }, function (e){
+                                stackElement.error = true;
+                                finishAjaxRequest(idx);
+                            });
+                            startAjaxRequest(idx);
+                        }
+
+                        return promise;
+                    };
+                }
+                if (window.XMLHttpRequest && XMLHttpRequest.prototype.addEventListener) {
+                    var proxied = XMLHttpRequest.prototype.open;
+
+                    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
+                        var self = this;
+
+                        /* prevent logging AJAX calls to static and inline files, like templates */
+                        var path = url;
+                        if (url.slice(0, 1) === '/') {
+                            if (0 === url.indexOf('{{ request.basePath|e('js') }}')) {
+                                path = url.slice({{ request.basePath|length }});
                             }
-                        }, false);
+                        }
+                        else if (0 === url.indexOf('{{ (request.schemeAndHttpHost ~ request.basePath)|e('js') }}')) {
+                            path = url.slice({{ (request.schemeAndHttpHost ~ request.basePath)|length }});
+                        }
 
-                        startAjaxRequest(idx);
-                    }
+                        if (!path.match(new RegExp({{ excluded_ajax_paths|json_encode|raw }}))) {
+                            var stackElement = {
+                                error: false,
+                                url: url,
+                                method: method,
+                                type: 'xhr',
+                                start: new Date()
+                            };
+
+                            var idx = requestStack.push(stackElement) - 1;
+
+                            this.addEventListener('readystatechange', function() {
+                                if (self.readyState == 4) {
+                                    stackElement.duration = new Date() - stackElement.start;
+                                    stackElement.error = self.status < 200 || self.status >= 400;
+                                    stackElement.statusCode = self.status;
+                                    extractHeaders(self, stackElement);
 
-                    proxied.apply(this, Array.prototype.slice.call(arguments));
-                };
-            }
-            {% endif %}
+                                    finishAjaxRequest(idx);
+                                }
+                            }, false);
 
-            return {
-                hasClass: hasClass,
+                            startAjaxRequest(idx);
+                        }
 
-                removeClass: removeClass,
+                        proxied.apply(this, Array.prototype.slice.call(arguments));
+                    };
+                }
+                {% endif %}
 
-                addClass: addClass,
+                return {
+                    hasClass: hasClass,
 
-                toggleClass: toggleClass,
+                    removeClass: removeClass,
 
-                getPreference: getPreference,
+                    addClass: addClass,
 
-                setPreference: setPreference,
+                    toggleClass: toggleClass,
 
-                addEventListener: addEventListener,
+                    getPreference: getPreference,
 
-                request: request,
+                    setPreference: setPreference,
 
-                renderAjaxRequests: renderAjaxRequests,
+                    addEventListener: addEventListener,
 
-                getSfwdt: function(token) {
-                    if (!this.sfwdt) {
-                        this.sfwdt = document.getElementById('sfwdt' + token);
-                    }
+                    request: request,
 
-                    return this.sfwdt;
-                },
+                    renderAjaxRequests: renderAjaxRequests,
 
-                load: function(selector, url, onSuccess, onError, options) {
-                    var el = document.getElementById(selector);
+                    getSfwdt: function(token) {
+                        return document.getElementById('sfwdt' + token);
+                    },
 
-                    if (el && el.getAttribute('data-sfurl') !== url) {
-                        request(
-                            url,
-                            function(xhr) {
-                                el.innerHTML = xhr.responseText;
-                                el.setAttribute('data-sfurl', url);
-                                removeClass(el, 'loading');
-                                var pending = pendingRequests;
-                                for (var i = 0; i < requestStack.length; i++) {
-                                    startAjaxRequest(i);
-                                    if (requestStack[i].duration) {
-                                        finishAjaxRequest(i);
+                    load: function(selector, url, onSuccess, onError, options) {
+                        var el = document.getElementById(selector);
+
+                        if (el && el.getAttribute('data-sfurl') !== url) {
+                            request(
+                                url,
+                                function(xhr) {
+                                    el.innerHTML = xhr.responseText;
+                                    el.setAttribute('data-sfurl', url);
+                                    removeClass(el, 'loading');
+                                    var pending = pendingRequests;
+                                    for (var i = 0; i < requestStack.length; i++) {
+                                        startAjaxRequest(i);
+                                        if (requestStack[i].duration || requestStack[i].error) {
+                                            finishAjaxRequest(i);
+                                        }
                                     }
-                                }
-                                /* Revert the pending state in case there was a start called without a finish above. */
-                                pendingRequests = pending;
-                                (onSuccess || noop)(xhr, el);
-                            },
-                            function(xhr) { (onError || noop)(xhr, el); },
-                            '',
-                            options
-                        );
-                    }
+                                    /* Revert the pending state in case there was a start called without a finish above. */
+                                    pendingRequests = pending;
+                                    (onSuccess || noop)(xhr, el);
+                                },
+                                function(xhr) { (onError || noop)(xhr, el); },
+                                '',
+                                options
+                            );
+                        }
 
-                    return this;
-                },
+                        return this;
+                    },
 
-                showToolbar: function(token) {
-                    var sfwdt = this.getSfwdt(token);
-                    removeClass(sfwdt, 'sf-display-none');
-
-                    if (getPreference('toolbar/displayState') == 'none') {
-                        document.getElementById('sfToolbarMainContent-' + token).style.display = 'none';
-                        document.getElementById('sfToolbarClearer-' + token).style.display = 'none';
-                        document.getElementById('sfMiniToolbar-' + token).style.display = 'block';
-                    } else {
-                        document.getElementById('sfToolbarMainContent-' + token).style.display = 'block';
-                        document.getElementById('sfToolbarClearer-' + token).style.display = 'block';
-                        document.getElementById('sfMiniToolbar-' + token).style.display = 'none';
-                    }
-                },
-
-                hideToolbar: function(token) {
-                    var sfwdt = this.getSfwdt(token);
-                    addClass(sfwdt, 'sf-display-none');
-                },
-
-                initToolbar: function(token) {
-                    this.showToolbar(token);
-
-                    var hideButton = document.getElementById('sfToolbarHideButton-' + token);
-                    var hideButtonSvg = hideButton.querySelector('svg');
-                    hideButtonSvg.setAttribute('aria-hidden', 'true');
-                    hideButtonSvg.setAttribute('focusable', 'false');
-                    addEventListener(hideButton, 'click', function (event) {
-                        event.preventDefault();
-
-                        var p = this.parentNode;
-                        p.style.display = 'none';
-                        (p.previousElementSibling || p.previousSibling).style.display = 'none';
-                        document.getElementById('sfMiniToolbar-' + token).style.display = 'block';
-                        setPreference('toolbar/displayState', 'none');
-                    });
-
-                    var showButton = document.getElementById('sfToolbarMiniToggler-' + token);
-                    var showButtonSvg = showButton.querySelector('svg');
-                    showButtonSvg.setAttribute('aria-hidden', 'true');
-                    showButtonSvg.setAttribute('focusable', 'false');
-                    addEventListener(showButton, 'click', function (event) {
-                        event.preventDefault();
+                    showToolbar: function(token) {
+                        var sfwdt = this.getSfwdt(token);
+                        removeClass(sfwdt.parentNode, 'sf-display-none');
 
-                        var elem = this.parentNode;
-                        if (elem.style.display == 'none') {
+                        if (getPreference('toolbar/displayState') == 'none') {
                             document.getElementById('sfToolbarMainContent-' + token).style.display = 'none';
                             document.getElementById('sfToolbarClearer-' + token).style.display = 'none';
-                            elem.style.display = 'block';
+                            document.getElementById('sfMiniToolbar-' + token).style.display = 'block';
                         } else {
                             document.getElementById('sfToolbarMainContent-' + token).style.display = 'block';
                             document.getElementById('sfToolbarClearer-' + token).style.display = 'block';
-                            elem.style.display = 'none'
+                            document.getElementById('sfMiniToolbar-' + token).style.display = 'none';
                         }
+                    },
 
-                        setPreference('toolbar/displayState', 'block');
-                    });
-                },
-
-                loadToolbar: function(token, newToken) {
-                    var that = this;
-                    var triesCounter = document.getElementById('sfLoadCounter-' + token);
-
-                    var options = {
-                        retry: true,
-                        onSend: function (count) {
-                            if (count === 3) {
-                                that.initToolbar(token);
-                            }
-
-                            if (triesCounter) {
-                                triesCounter.textContent = count;
-                            }
-                        },
-                    };
-
-                    var cancelButton = document.getElementById('sfLoadCancel-' + token);
-                    if (cancelButton) {
-                        addEventListener(cancelButton, 'click', function (event) {
+                    hideToolbar: function(token) {
+                        var sfwdt = this.getSfwdt(token);
+                        addClass(sfwdt.parentNode, 'sf-display-none');
+                    },
+
+                    initToolbar: function(token) {
+                        this.showToolbar(token);
+
+                        var hideButton = document.getElementById('sfToolbarHideButton-' + token);
+                        var hideButtonSvg = hideButton.querySelector('svg');
+                        hideButtonSvg.setAttribute('aria-hidden', 'true');
+                        hideButtonSvg.setAttribute('focusable', 'false');
+                        addEventListener(hideButton, 'click', function (event) {
                             event.preventDefault();
 
-                            options.stop = true;
-                            that.hideToolbar(token);
+                            var p = this.parentNode;
+                            p.style.display = 'none';
+                            (p.previousElementSibling || p.previousSibling).style.display = 'none';
+                            document.getElementById('sfMiniToolbar-' + token).style.display = 'block';
+                            setPreference('toolbar/displayState', 'none');
                         });
-                    }
 
-                    newToken = (newToken || token);
+                        var showButton = document.getElementById('sfToolbarMiniToggler-' + token);
+                        var showButtonSvg = showButton.querySelector('svg');
+                        showButtonSvg.setAttribute('aria-hidden', 'true');
+                        showButtonSvg.setAttribute('focusable', 'false');
+                        addEventListener(showButton, 'click', function (event) {
+                            event.preventDefault();
 
-                    this.load(
-                        'sfwdt' + token,
-                        '{{ url("_wdt", { "token": "xxxxxx" })|escape('js') }}'.replace(/xxxxxx/, newToken),
-                        function(xhr, el) {
-                            /* Do nothing in the edge case where the toolbar has already been replaced with a new one */
-                            if (!document.getElementById('sfToolbarMainContent-' + newToken)) {
-                                return;
+                            var elem = this.parentNode;
+                            if (elem.style.display == 'none') {
+                                document.getElementById('sfToolbarMainContent-' + token).style.display = 'none';
+                                document.getElementById('sfToolbarClearer-' + token).style.display = 'none';
+                                elem.style.display = 'block';
+                            } else {
+                                document.getElementById('sfToolbarMainContent-' + token).style.display = 'block';
+                                document.getElementById('sfToolbarClearer-' + token).style.display = 'block';
+                                elem.style.display = 'none'
                             }
 
-                            /* Evaluate in global scope scripts embedded inside the toolbar */
-                            var i, scripts = [].slice.call(el.querySelectorAll('script'));
-                            for (i = 0; i < scripts.length; ++i) {
-                                if (scripts[i].firstChild) {
-                                    eval.call({}, scripts[i].firstChild.nodeValue);
+                            setPreference('toolbar/displayState', 'block');
+                        });
+                    },
+
+                    loadToolbar: function(token, newToken) {
+                        var that = this;
+                        var triesCounter = document.getElementById('sfLoadCounter-' + token);
+
+                        var options = {
+                            retry: true,
+                            onSend: function (count) {
+                                if (count === 3) {
+                                    that.initToolbar(token);
                                 }
-                            }
 
-                            el.style.display = -1 !== xhr.responseText.indexOf('sf-toolbarreset') ? 'block' : 'none';
+                                if (triesCounter) {
+                                    triesCounter.textContent = count;
+                                }
+                            },
+                        };
 
-                            if (el.style.display == 'none') {
-                                return;
-                            }
+                        var cancelButton = document.getElementById('sfLoadCancel-' + token);
+                        if (cancelButton) {
+                            addEventListener(cancelButton, 'click', function (event) {
+                                event.preventDefault();
 
-                            that.initToolbar(newToken);
+                                options.stop = true;
+                                that.hideToolbar(token);
+                            });
+                        }
 
-                            /* Handle toolbar-info position */
-                            var toolbarBlocks = [].slice.call(el.querySelectorAll('.sf-toolbar-block'));
-                            for (i = 0; i < toolbarBlocks.length; ++i) {
-                                toolbarBlocks[i].onmouseover = function () {
-                                    var toolbarInfo = this.querySelectorAll('.sf-toolbar-info')[0];
-                                    var pageWidth = document.body.clientWidth;
-                                    var elementWidth = toolbarInfo.offsetWidth;
-                                    var leftValue = (elementWidth + this.offsetLeft) - pageWidth;
-                                    var rightValue = (elementWidth + (pageWidth - this.offsetLeft)) - pageWidth;
-
-                                    /* Reset right and left value, useful on window resize */
-                                    toolbarInfo.style.right = '';
-                                    toolbarInfo.style.left = '';
+                        newToken = (newToken || token);
 
-                                    if (elementWidth > pageWidth) {
-                                        toolbarInfo.style.left = 0;
-                                    }
-                                    else if (leftValue > 0 && rightValue > 0) {
-                                        toolbarInfo.style.right = (rightValue * -1) + 'px';
-                                    } else if (leftValue < 0) {
-                                        toolbarInfo.style.left = 0;
-                                    } else {
-                                        toolbarInfo.style.right = '0px';
+                        this.load(
+                            'sfwdt' + token,
+                            '{{ url("_wdt", { "token": "xxxxxx" })|escape('js') }}'.replace(/xxxxxx/, newToken),
+                            function(xhr, el) {
+                                var toolbarContent = document.getElementById('sfToolbarMainContent-' + newToken);
+
+                                /* Do nothing in the edge case where the toolbar has already been replaced with a new one */
+                                if (!toolbarContent) {
+                                    return;
+                                }
+
+                                /* Replace the ID, it has to match the new token */
+                                toolbarContent.parentElement.id = 'sfwdt' + newToken;
+
+                                /* Evaluate in global scope scripts embedded inside the toolbar */
+                                var i, scripts = [].slice.call(el.querySelectorAll('script'));
+                                for (i = 0; i < scripts.length; ++i) {
+                                    if (scripts[i].firstChild) {
+                                        eval.call({}, scripts[i].firstChild.nodeValue);
                                     }
-                                };
-                            }
+                                }
 
-                            renderAjaxRequests();
-                            addEventListener(document.querySelector('.sf-toolbar-ajax-clear'), 'click', function() {
-                                requestStack = [];
-                                renderAjaxRequests();
-                                successStreak = 4;
-                                document.querySelector('.sf-toolbar-ajax-request-list').innerHTML = '';
-                            });
-                            addEventListener(document.querySelector('.sf-toolbar-block-ajax'), 'mouseenter', function (event) {
-                                var elem = document.querySelector('.sf-toolbar-block-ajax .sf-toolbar-info');
-                                elem.scrollTop = elem.scrollHeight;
-                            });
-                            addEventListener(document.querySelector('.sf-toolbar-block-ajax > .sf-toolbar-icon'), 'click', function (event) {
-                                event.preventDefault();
+                                el.style.display = -1 !== xhr.responseText.indexOf('sf-toolbarreset') ? 'block' : 'none';
 
-                                toggleClass(this.parentNode, 'hover');
-                            });
+                                if (el.style.display == 'none') {
+                                    return;
+                                }
 
-                            var dumpInfo = document.querySelector('.sf-toolbar-block-dump .sf-toolbar-info');
-                            if (null !== dumpInfo) {
-                                addEventListener(dumpInfo, 'sfbeforedumpcollapse', function () {
-                                    dumpInfo.style.minHeight = dumpInfo.getBoundingClientRect().height+'px';
+                                that.initToolbar(newToken);
+
+                                /* Handle toolbar-info position */
+                                var toolbarBlocks = [].slice.call(el.querySelectorAll('.sf-toolbar-block'));
+                                for (i = 0; i < toolbarBlocks.length; ++i) {
+                                    toolbarBlocks[i].onmouseover = function () {
+                                        var toolbarInfo = this.querySelectorAll('.sf-toolbar-info')[0];
+                                        var pageWidth = document.body.clientWidth;
+                                        var elementWidth = toolbarInfo.offsetWidth;
+                                        var leftValue = (elementWidth + this.offsetLeft) - pageWidth;
+                                        var rightValue = (elementWidth + (pageWidth - this.offsetLeft)) - pageWidth;
+
+                                        /* Reset right and left value, useful on window resize */
+                                        toolbarInfo.style.right = '';
+                                        toolbarInfo.style.left = '';
+
+                                        if (elementWidth > pageWidth) {
+                                            toolbarInfo.style.left = 0;
+                                        }
+                                        else if (leftValue > 0 && rightValue > 0) {
+                                            toolbarInfo.style.right = (rightValue * -1) + 'px';
+                                        } else if (leftValue < 0) {
+                                            toolbarInfo.style.left = 0;
+                                        } else {
+                                            toolbarInfo.style.right = '0px';
+                                        }
+                                    };
+                                }
+
+                                renderAjaxRequests();
+                                addEventListener(document.querySelector('.sf-toolbar-ajax-clear'), 'click', function() {
+                                    requestStack = [];
+                                    renderAjaxRequests();
+                                    successStreak = 4;
+                                    document.querySelector('.sf-toolbar-ajax-request-list').innerHTML = '';
                                 });
-                                addEventListener(dumpInfo, 'mouseleave', function () {
-                                    dumpInfo.style.minHeight = '';
+                                addEventListener(document.querySelector('.sf-toolbar-block-ajax'), 'mouseenter', function (event) {
+                                    var elem = document.querySelector('.sf-toolbar-block-ajax .sf-toolbar-info');
+                                    elem.scrollTop = elem.scrollHeight;
                                 });
-                            }
-                        },
-                        function(xhr) {
-                            if (xhr.status !== 0 && !options.stop) {
-                                var sfwdt = that.getSfwdt(token);
-                                sfwdt.innerHTML = '\
-                                <div class="sf-toolbarreset notranslate">\
-                                    <div class="sf-toolbar-icon"><svg width="26" height="28" xmlns="http://www.w3.org/2000/svg" version="1.1" x="0px" y="0px" viewBox="0 0 26 28" enable-background="new 0 0 26 28" xml:space="preserve"><path fill="#FFFFFF" d="M13 0C5.8 0 0 5.8 0 13c0 7.2 5.8 13 13 13c7.2 0 13-5.8 13-13C26 5.8 20.2 0 13 0z M20 7.5 c-0.6 0-1-0.3-1-0.9c0-0.2 0-0.4 0.2-0.6c0.1-0.3 0.2-0.3 0.2-0.4c0-0.3-0.5-0.4-0.7-0.4c-2 0.1-2.5 2.7-2.9 4.8l-0.2 1.1 c1.1 0.2 1.9 0 2.4-0.3c0.6-0.4-0.2-0.8-0.1-1.3C18 9.2 18.4 9 18.7 8.9c0.5 0 0.8 0.5 0.8 1c0 0.8-1.1 2-3.3 1.9 c-0.3 0-0.5 0-0.7-0.1L15 14.1c-0.4 1.7-0.9 4.1-2.6 6.2c-1.5 1.8-3.1 2.1-3.8 2.1c-1.3 0-2.1-0.6-2.2-1.6c0-0.9 0.8-1.4 1.3-1.4 c0.7 0 1.2 0.5 1.2 1.1c0 0.5-0.2 0.6-0.4 0.7c-0.1 0.1-0.3 0.2-0.3 0.4c0 0.1 0.1 0.3 0.4 0.3c0.5 0 0.9-0.3 1.2-0.5 c1.3-1 1.7-2.9 2.4-6.2l0.1-0.8c0.2-1.1 0.5-2.3 0.8-3.5c-0.9-0.7-1.4-1.5-2.6-1.8c-0.8-0.2-1.3 0-1.7 0.4C8.4 10 8.6 10.7 9 11.1 l0.7 0.7c0.8 0.9 1.3 1.7 1.1 2.7c-0.3 1.6-2.1 2.8-4.3 2.1c-1.9-0.6-2.2-1.9-2-2.7c0.2-0.6 0.7-0.8 1.2-0.6 c0.5 0.2 0.7 0.8 0.6 1.3c0 0.1 0 0.1-0.1 0.3C6 15 5.9 15.2 5.9 15.3c-0.1 0.4 0.4 0.7 0.8 0.8c0.8 0.3 1.7-0.2 1.9-0.9 c0.2-0.6-0.2-1.1-0.4-1.2l-0.8-0.9c-0.4-0.4-1.2-1.5-0.8-2.8c0.2-0.5 0.5-1 0.9-1.4c1-0.7 2-0.8 3-0.6c1.3 0.4 1.9 1.2 2.8 1.9 c0.5-1.3 1.1-2.6 2-3.8c0.9-1 2-1.7 3.3-1.8C20 4.8 21 5.4 21 6.3C21 6.7 20.8 7.5 20 7.5z"/></svg></div>\
-                                    An error occurred while loading the web debug toolbar. <a href="{{ url("_profiler_home")|escape('js') }}' + newToken + '">Open the web profiler.</a>\
-                                </div>\
-                            ';
-                                sfwdt.setAttribute('class', 'sf-toolbar sf-error-toolbar');
-                            }
-                        },
-                        options
-                    );
+                                addEventListener(document.querySelector('.sf-toolbar-block-ajax > .sf-toolbar-icon'), 'click', function (event) {
+                                    event.preventDefault();
+
+                                    toggleClass(this.parentNode, 'hover');
+                                });
+
+                                var dumpInfo = document.querySelector('.sf-toolbar-block-dump .sf-toolbar-info');
+                                if (null !== dumpInfo) {
+                                    addEventListener(dumpInfo, 'sfbeforedumpcollapse', function () {
+                                        dumpInfo.style.minHeight = dumpInfo.getBoundingClientRect().height+'px';
+                                    });
+                                    addEventListener(dumpInfo, 'mouseleave', function () {
+                                        dumpInfo.style.minHeight = '';
+                                    });
+                                }
+                            },
+                            function(xhr) {
+                                if (xhr.status !== 0 && !options.stop) {
+                                    var sfwdt = that.getSfwdt(token);
+                                    sfwdt.innerHTML = '\
+                                    <div class="sf-toolbarreset notranslate">\
+                                        <div class="sf-toolbar-icon"><svg width="26" height="28" xmlns="http://www.w3.org/2000/svg" version="1.1" x="0px" y="0px" viewBox="0 0 26 28" enable-background="new 0 0 26 28" xml:space="preserve"><path fill="#FFFFFF" d="M13 0C5.8 0 0 5.8 0 13c0 7.2 5.8 13 13 13c7.2 0 13-5.8 13-13C26 5.8 20.2 0 13 0z M20 7.5 c-0.6 0-1-0.3-1-0.9c0-0.2 0-0.4 0.2-0.6c0.1-0.3 0.2-0.3 0.2-0.4c0-0.3-0.5-0.4-0.7-0.4c-2 0.1-2.5 2.7-2.9 4.8l-0.2 1.1 c1.1 0.2 1.9 0 2.4-0.3c0.6-0.4-0.2-0.8-0.1-1.3C18 9.2 18.4 9 18.7 8.9c0.5 0 0.8 0.5 0.8 1c0 0.8-1.1 2-3.3 1.9 c-0.3 0-0.5 0-0.7-0.1L15 14.1c-0.4 1.7-0.9 4.1-2.6 6.2c-1.5 1.8-3.1 2.1-3.8 2.1c-1.3 0-2.1-0.6-2.2-1.6c0-0.9 0.8-1.4 1.3-1.4 c0.7 0 1.2 0.5 1.2 1.1c0 0.5-0.2 0.6-0.4 0.7c-0.1 0.1-0.3 0.2-0.3 0.4c0 0.1 0.1 0.3 0.4 0.3c0.5 0 0.9-0.3 1.2-0.5 c1.3-1 1.7-2.9 2.4-6.2l0.1-0.8c0.2-1.1 0.5-2.3 0.8-3.5c-0.9-0.7-1.4-1.5-2.6-1.8c-0.8-0.2-1.3 0-1.7 0.4C8.4 10 8.6 10.7 9 11.1 l0.7 0.7c0.8 0.9 1.3 1.7 1.1 2.7c-0.3 1.6-2.1 2.8-4.3 2.1c-1.9-0.6-2.2-1.9-2-2.7c0.2-0.6 0.7-0.8 1.2-0.6 c0.5 0.2 0.7 0.8 0.6 1.3c0 0.1 0 0.1-0.1 0.3C6 15 5.9 15.2 5.9 15.3c-0.1 0.4 0.4 0.7 0.8 0.8c0.8 0.3 1.7-0.2 1.9-0.9 c0.2-0.6-0.2-1.1-0.4-1.2l-0.8-0.9c-0.4-0.4-1.2-1.5-0.8-2.8c0.2-0.5 0.5-1 0.9-1.4c1-0.7 2-0.8 3-0.6c1.3 0.4 1.9 1.2 2.8 1.9 c0.5-1.3 1.1-2.6 2-3.8c0.9-1 2-1.7 3.3-1.8C20 4.8 21 5.4 21 6.3C21 6.7 20.8 7.5 20 7.5z"/></svg></div>\
+                                        An error occurred while loading the web debug toolbar. <a href="{{ url("_profiler_home")|escape('js') }}' + newToken + '">Open the web profiler.</a>\
+                                    </div>\
+                                ';
+                                    sfwdt.parentElement.setAttribute('class', 'sf-toolbar sf-error-toolbar');
+                                }
+                            },
+                            options
+                        );
 
-                    return this;
-                },
+                        return this;
+                    },
 
-                toggle: function(selector, elOn, elOff) {
-                    var tmp = elOn.style.display,
-                        el = document.getElementById(selector);
+                    toggle: function(selector, elOn, elOff) {
+                        var tmp = elOn.style.display,
+                            el = document.getElementById(selector);
 
-                    elOn.style.display = elOff.style.display;
-                    elOff.style.display = tmp;
+                        elOn.style.display = elOff.style.display;
+                        elOff.style.display = tmp;
 
-                    if (el) {
-                        el.style.display = 'none' === tmp ? 'none' : 'block';
-                    }
+                        if (el) {
+                            el.style.display = 'none' === tmp ? 'none' : 'block';
+                        }
 
-                    return this;
-                },
-            };
-        })();
-    }
+                        return this;
+                    },
+                };
+            })();
+        }
 
-    Sfjs.loadToolbar('{{ token }}');
-/*]]>*/</script>
+        Sfjs.loadToolbar('{{ token }}');
+    /*]]>*/</script>
+</div>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Controller/ProfilerControllerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Controller/ProfilerControllerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Controller/ProfilerControllerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Controller/ProfilerControllerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,16 +28,16 @@
 use Symfony\Component\HttpKernel\Profiler\Profiler;
 use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
 use Twig\Environment;
+use Twig\Loader\ArrayLoader;
 use Twig\Loader\LoaderInterface;
 
 class ProfilerControllerTest extends WebTestCase
 {
     public function testHomeActionWithProfilerDisabled()
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $twig = $this->createMock(Environment::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
 
-        $controller = new ProfilerController($urlGenerator, null, $twig, []);
+        $controller = new ProfilerController($urlGenerator, null, new Environment(new ArrayLoader()), []);
 
         $this->expectException(NotFoundHttpException::class);
         $this->expectExceptionMessage('The profiler must be enabled.');
@@ -111,10 +111,9 @@
 
     public function testToolbarActionWithProfilerDisabled()
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $twig = $this->createMock(Environment::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
 
-        $controller = new ProfilerController($urlGenerator, null, $twig, []);
+        $controller = new ProfilerController($urlGenerator, null, new Environment(new ArrayLoader()), []);
 
         $this->expectException(NotFoundHttpException::class);
         $this->expectExceptionMessage('The profiler must be enabled.');
@@ -127,11 +126,10 @@
      */
     public function testToolbarActionWithEmptyToken($token)
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $twig = $this->createMock(Environment::class);
-        $profiler = $this->createMock(Profiler::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
+        $profiler = $this->createStub(Profiler::class);
 
-        $controller = new ProfilerController($urlGenerator, $profiler, $twig, []);
+        $controller = new ProfilerController($urlGenerator, $profiler, new Environment(new ArrayLoader()), []);
 
         $response = $controller->toolbarAction(Request::create('/_wdt/empty'), $token);
         $this->assertEquals(200, $response->getStatusCode());
@@ -151,9 +149,9 @@
      */
     public function testOpeningDisallowedPaths($path, $isAllowed)
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $twig = $this->createMock(Environment::class);
-        $profiler = $this->createMock(Profiler::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
+        $twig = $this->createStub(Environment::class);
+        $profiler = $this->createStub(Profiler::class);
 
         $controller = new ProfilerController($urlGenerator, $profiler, $twig, [], null, __DIR__.'/../..');
 
@@ -184,13 +182,13 @@
      */
     public function testReturns404onTokenNotFound($withCsp)
     {
-        $twig = $this->createMock(Environment::class);
+        $twig = $this->createStub(Environment::class);
         $profiler = $this->createMock(Profiler::class);
 
         $profiler
             ->expects($this->exactly(2))
             ->method('loadProfile')
-            ->willReturnCallback(fn ($token) => 'found' == $token ? new Profile($token) : null)
+            ->willReturnCallback(static fn ($token) => 'found' == $token ? new Profile($token) : null)
         ;
 
         $controller = $this->createController($profiler, $twig, $withCsp);
@@ -204,10 +202,9 @@
 
     public function testSearchBarActionWithProfilerDisabled()
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $twig = $this->createMock(Environment::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
 
-        $controller = new ProfilerController($urlGenerator, null, $twig, []);
+        $controller = new ProfilerController($urlGenerator, null, new Environment(new ArrayLoader()), []);
 
         $this->expectException(NotFoundHttpException::class);
         $this->expectExceptionMessage('The profiler must be enabled.');
@@ -225,7 +222,7 @@
         $this->assertSame(200, $client->getResponse()->getStatusCode());
 
         foreach (['ip', 'status_code', 'url', 'token', 'start', 'end'] as $searchCriteria) {
-            $this->assertSame('', $crawler->filter(sprintf('form input[name="%s"]', $searchCriteria))->text());
+            $this->assertSame('', $crawler->filter(\sprintf('form input[name="%s"]', $searchCriteria))->text());
         }
     }
 
@@ -299,10 +296,9 @@
 
     public function testSearchActionWithProfilerDisabled()
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $twig = $this->createMock(Environment::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
 
-        $controller = new ProfilerController($urlGenerator, null, $twig, []);
+        $controller = new ProfilerController($urlGenerator, null, new Environment(new ArrayLoader()), []);
 
         $this->expectException(NotFoundHttpException::class);
         $this->expectExceptionMessage('The profiler must be enabled.');
@@ -334,15 +330,14 @@
         $client->request('GET', '/_profiler/search?ip=&method=GET&status_code=&url=&token=&start=&end=&limit=10');
 
         $this->assertStringContainsString('results found', $client->getResponse()->getContent());
-        $this->assertStringContainsString(sprintf('<a href="/_profiler/%s">%s</a>', $token, $token), $client->getResponse()->getContent());
+        $this->assertStringContainsString(\sprintf('<a href="/_profiler/%s">%s</a>', $token, $token), $client->getResponse()->getContent());
     }
 
     public function testPhpinfoActionWithProfilerDisabled()
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $twig = $this->createMock(Environment::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
 
-        $controller = new ProfilerController($urlGenerator, null, $twig, []);
+        $controller = new ProfilerController($urlGenerator, null, new Environment(new ArrayLoader()), []);
 
         $this->expectException(NotFoundHttpException::class);
         $this->expectExceptionMessage('The profiler must be enabled.');
@@ -357,15 +352,14 @@
 
         $client->request('GET', '/_profiler/phpinfo');
 
-        $this->assertStringContainsString('PHP License', $client->getResponse()->getContent());
+        $this->assertStringContainsString('PHP Credits', $client->getResponse()->getContent());
     }
 
     public function testFontActionWithProfilerDisabled()
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $twig = $this->createMock(Environment::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
 
-        $controller = new ProfilerController($urlGenerator, null, $twig, []);
+        $controller = new ProfilerController($urlGenerator, null, new Environment(new ArrayLoader()), []);
 
         $this->expectException(NotFoundHttpException::class);
         $this->expectExceptionMessage('The profiler must be enabled.');
@@ -375,11 +369,10 @@
 
     public function testFontActionWithInvalidFontName()
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $profiler = $this->createMock(Profiler::class);
-        $twig = $this->createMock(Environment::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
+        $profiler = $this->createStub(Profiler::class);
 
-        $controller = new ProfilerController($urlGenerator, $profiler, $twig, []);
+        $controller = new ProfilerController($urlGenerator, $profiler, new Environment(new ArrayLoader()), []);
 
         $this->expectException(NotFoundHttpException::class);
         $this->expectExceptionMessage('Font file "InvalidFontName.woff2" not found.');
@@ -430,10 +423,10 @@
 
     private function createController($profiler, $twig, $withCSP, array $templates = []): ProfilerController
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
 
         if ($withCSP) {
-            $nonceGenerator = $this->createMock(NonceGenerator::class);
+            $nonceGenerator = $this->createStub(NonceGenerator::class);
             $nonceGenerator->method('generate')->willReturn('dummy_nonce');
 
             return new ProfilerController($urlGenerator, $profiler, $twig, $templates, new ContentSecurityPolicyHandler($nonceGenerator));
@@ -536,7 +529,7 @@
             ->with($expectedTemplate);
 
         $this
-            ->createController($profiler, $twig, false, array_map(function (string $collectorName) use ($expectedPanel, $expectedTemplate): array {
+            ->createController($profiler, $twig, false, array_map(static function (string $collectorName) use ($expectedPanel, $expectedTemplate): array {
                 if ($collectorName === $expectedPanel) {
                     return [$expectedPanel, $expectedTemplate];
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Controller/RouterControllerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Controller/RouterControllerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Controller/RouterControllerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Controller/RouterControllerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,9 +39,7 @@
 
         $matchedRouteCell = $crawler
             ->filter('#router-logs .status-success td')
-            ->reduce(function (Crawler $td) use ($path): bool {
-                return $td->text() === $path;
-            });
+            ->reduce(static fn (Crawler $td): bool => $td->text() === $path);
 
         $this->assertSame(1, $matchedRouteCell->count());
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Csp/ContentSecurityPolicyHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Csp/ContentSecurityPolicyHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Csp/ContentSecurityPolicyHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Csp/ContentSecurityPolicyHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -211,9 +211,9 @@
 
     private function mockNonceGenerator($value)
     {
-        $generator = $this->createMock(NonceGenerator::class);
+        $generator = $this->createStub(NonceGenerator::class);
 
-        $generator->expects($this->any())
+        $generator
             ->method('generate')
             ->willReturn($value);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Bundle\WebProfilerBundle\Tests\DependencyInjection;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use Symfony\Bundle\WebProfilerBundle\DependencyInjection\WebProfilerExtension;
 use Symfony\Bundle\WebProfilerBundle\Tests\TestCase;
 use Symfony\Component\DependencyInjection\Container;
@@ -34,7 +33,7 @@
 
 class WebProfilerExtensionTest extends TestCase
 {
-    private MockObject&KernelInterface $kernel;
+    private KernelInterface $kernel;
     private ?ContainerBuilder $container;
 
     public static function assertSaneContainer(Container $container)
@@ -59,7 +58,7 @@
     {
         parent::setUp();
 
-        $this->kernel = $this->createMock(KernelInterface::class);
+        $this->kernel = $this->createStub(KernelInterface::class);
 
         $this->container = new ContainerBuilder();
         $this->container->register('data_collector.dump', DumpDataCollector::class)->setPublic(true);
@@ -157,7 +156,7 @@
         bool $toolbarEnabled,
         bool $interceptRedirects,
         bool $listenerInjected,
-        bool $listenerEnabled
+        bool $listenerEnabled,
     ) {
         $extension = new WebProfilerExtension();
         $extension->load(
@@ -178,11 +177,11 @@
     public static function getInterceptRedirectsToolbarConfig()
     {
         return [
-             [
-                 'toolbarEnabled' => false,
-                 'interceptRedirects' => true,
-                 'listenerInjected' => true,
-                 'listenerEnabled' => false,
+            [
+                'toolbarEnabled' => false,
+                'interceptRedirects' => true,
+                'listenerInjected' => true,
+                'listenerEnabled' => false,
             ],
             [
                 'toolbarEnabled' => false,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/EventListener/WebDebugToolbarListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/EventListener/WebDebugToolbarListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/EventListener/WebDebugToolbarListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/EventListener/WebDebugToolbarListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
 use Symfony\Component\HttpKernel\DataCollector\DumpDataCollector;
 use Symfony\Component\HttpKernel\Event\ResponseEvent;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\Kernel;
+use Symfony\Component\HttpKernel\KernelInterface;
 use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
 use Twig\Environment;
 
@@ -65,7 +65,7 @@
         $response = new Response('Some content', $statusCode);
         $response->headers->set('Location', 'https://example.com/');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock('Redirection'), true);
         $listener->onKernelResponse($event);
@@ -79,7 +79,7 @@
         $response = new Response('Some content', '301');
         $response->headers->set('Location', 'https://example.com/');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request([], [], ['_format' => 'json']), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request([], [], ['_format' => 'json']), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock('Redirection'), true);
         $listener->onKernelResponse($event);
@@ -93,7 +93,7 @@
         $response = new Response('<html><head></head><body></body></html>');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock());
         $listener->onKernelResponse($event);
@@ -109,7 +109,7 @@
         $response = new Response('<html><head></head><body></body></html>');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
         $response->headers->set('Content-Type', 'text/xml');
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock());
         $listener->onKernelResponse($event);
@@ -125,7 +125,7 @@
         $response = new Response('<html><head></head><body></body></html>');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
         $response->headers->set('Content-Disposition', 'attachment; filename=test.html');
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock());
         $listener->onKernelResponse($event);
@@ -143,7 +143,7 @@
         $response = new Response('<html><head></head><body></body></html>', $statusCode);
         $response->headers->set('Location', 'https://example.com/');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock());
         $listener->onKernelResponse($event);
@@ -166,7 +166,7 @@
     {
         $response = new Response('<html><head></head><body></body></html>');
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock());
         $listener->onKernelResponse($event);
@@ -182,7 +182,7 @@
         $response = new Response('<html><head></head><body></body></html>');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::SUB_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::SUB_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock());
         $listener->onKernelResponse($event);
@@ -198,7 +198,7 @@
         $response = new Response('<div>Some content</div>');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock());
         $listener->onKernelResponse($event);
@@ -217,7 +217,7 @@
         $request = new Request();
         $request->headers->set('X-Requested-With', 'XMLHttpRequest');
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), $request, HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock());
         $listener->onKernelResponse($event);
@@ -233,7 +233,7 @@
         $response = new Response('<html><head></head><body></body></html>');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request([], [], ['_format' => 'json']), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request([], [], ['_format' => 'json']), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock());
         $listener->onKernelResponse($event);
@@ -254,7 +254,7 @@
             ->willReturn('http://mydomain.com/_profiler/xxxxxxxx')
         ;
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock(), false, WebDebugToolbarListener::ENABLED, $urlGenerator);
         $listener->onKernelResponse($event);
@@ -275,7 +275,7 @@
             ->willThrowException(new \Exception('foo'))
         ;
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock(), false, WebDebugToolbarListener::ENABLED, $urlGenerator);
         $listener->onKernelResponse($event);
@@ -296,7 +296,7 @@
             ->willThrowException(new \Exception("This\nmultiline\r\ntabbed text should\tcome out\r on\n \ta single plain\r\nline"))
         ;
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock(), false, WebDebugToolbarListener::ENABLED, $urlGenerator);
         $listener->onKernelResponse($event);
@@ -309,7 +309,7 @@
         $response = new Response('<html><head></head><body></body></html>');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $cspHandler = $this->createMock(ContentSecurityPolicyHandler::class);
         $cspHandler->expects($this->once())
@@ -330,7 +330,7 @@
         $response = new Response('<html><head></head><body></body></html>');
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $cspHandler = $this->createMock(ContentSecurityPolicyHandler::class);
         $cspHandler->expects($this->never())
@@ -352,7 +352,7 @@
         $response->headers->set('Content-Type', null);
         $response->headers->set('X-Debug-Token', 'xxxxxxxx');
 
-        $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(KernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $response);
 
         $listener = new WebDebugToolbarListener($this->getTwigMock(), false, WebDebugToolbarListener::ENABLED, null);
         $listener->onKernelResponse($event);
@@ -362,8 +362,8 @@
 
     protected function getTwigMock($render = 'WDT')
     {
-        $templating = $this->createMock(Environment::class);
-        $templating->expects($this->any())
+        $templating = $this->createStub(Environment::class);
+        $templating
             ->method('render')
             ->willReturn($render);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Profiler/TemplateManagerTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Profiler/TemplateManagerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Profiler/TemplateManagerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Profiler/TemplateManagerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
     {
         parent::setUp();
 
-        $this->profiler = $this->createMock(Profiler::class);
+        $this->profiler = $this->createStub(Profiler::class);
         $twigEnvironment = $this->mockTwigEnvironment();
         $templates = [
             'data_collector.foo' => ['foo', '@Foo/Collector/foo.html.twig'],
@@ -54,7 +54,7 @@
      */
     public function testGetNameValidTemplate()
     {
-        $this->profiler->expects($this->any())
+        $this->profiler
             ->method('has')
             ->withAnyParameters()
             ->willReturnCallback($this->profilerHasCallback(...));
@@ -82,15 +82,12 @@
 
     protected function mockTwigEnvironment()
     {
-        $this->twigEnvironment = $this->createMock(Environment::class);
-
-        $loader = $this->createMock(LoaderInterface::class);
+        $loader = $this->createStub(LoaderInterface::class);
         $loader
-            ->expects($this->any())
             ->method('exists')
             ->willReturn(true);
 
-        $this->twigEnvironment->expects($this->any())->method('getLoader')->willReturn($loader);
+        $this->twigEnvironment = new Environment($loader);
 
         return $this->twigEnvironment;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Resources/IconTest.php symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Resources/IconTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Resources/IconTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Bundle/WebProfilerBundle/Tests/Resources/IconTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,17 +23,17 @@
         $iconFilePath = realpath($iconFilePath);
         $svgFileContents = file_get_contents($iconFilePath);
 
-        $this->assertStringContainsString('xmlns="http://www.w3.org/2000/svg"', $svgFileContents, sprintf('The SVG metadata of the "%s" icon must use "http://www.w3.org/2000/svg" as its "xmlns" value.', $iconFilePath));
+        $this->assertStringContainsString('xmlns="http://www.w3.org/2000/svg"', $svgFileContents, \sprintf('The SVG metadata of the "%s" icon must use "http://www.w3.org/2000/svg" as its "xmlns" value.', $iconFilePath));
 
-        $this->assertMatchesRegularExpression('~<svg .* width="\d+".+>.*</svg>~s', file_get_contents($iconFilePath), sprintf('The SVG file of the "%s" icon must include a "width" attribute.', $iconFilePath));
+        $this->assertMatchesRegularExpression('~<svg .* width="\d+".+>.*</svg>~s', file_get_contents($iconFilePath), \sprintf('The SVG file of the "%s" icon must include a "width" attribute.', $iconFilePath));
 
-        $this->assertMatchesRegularExpression('~<svg .* height="\d+".+>.*</svg>~s', file_get_contents($iconFilePath), sprintf('The SVG file of the "%s" icon must include a "height" attribute.', $iconFilePath));
+        $this->assertMatchesRegularExpression('~<svg .* height="\d+".+>.*</svg>~s', file_get_contents($iconFilePath), \sprintf('The SVG file of the "%s" icon must include a "height" attribute.', $iconFilePath));
 
-        $this->assertMatchesRegularExpression('~<svg .* viewBox="0 0 \d+ \d+".+>.*</svg>~s', file_get_contents($iconFilePath), sprintf('The SVG file of the "%s" icon must include a "viewBox" attribute.', $iconFilePath));
+        $this->assertMatchesRegularExpression('~<svg .* viewBox="0 0 \d+ \d+".+>.*</svg>~s', file_get_contents($iconFilePath), \sprintf('The SVG file of the "%s" icon must include a "viewBox" attribute.', $iconFilePath));
     }
 
     public static function provideIconFilePaths(): array
     {
-        return array_map(fn ($filePath) => (array) $filePath, glob(__DIR__.'/../../Resources/views/Icon/*.svg'));
+        return array_map(static fn ($filePath) => (array) $filePath, glob(__DIR__.'/../../Resources/views/Icon/*.svg'));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Packages.php symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Packages.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Packages.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Packages.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,7 +72,7 @@
         }
 
         if (!isset($this->packages[$name])) {
-            throw new InvalidArgumentException(sprintf('There is no "%s" asset package.', $name));
+            throw new InvalidArgumentException(\sprintf('There is no "%s" asset package.', $name));
         }
 
         return $this->packages[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/Context/RequestStackContextTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/Context/RequestStackContextTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/Context/RequestStackContextTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/Context/RequestStackContextTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     {
         $testBasePath = 'test-path';
 
-        $request = $this->createMock(Request::class);
+        $request = $this->createStub(Request::class);
         $request->method('getBasePath')
             ->willReturn($testBasePath);
         $requestStack = $this->createMock(RequestStack::class);
@@ -52,7 +52,7 @@
 
     public function testIsSecureTrue()
     {
-        $request = $this->createMock(Request::class);
+        $request = $this->createStub(Request::class);
         $request->method('isSecure')
             ->willReturn(true);
         $requestStack = $this->createMock(RequestStack::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/PackagesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/PackagesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/PackagesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/PackagesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,8 +24,8 @@
     public function testGetterSetters()
     {
         $packages = new Packages();
-        $packages->setDefaultPackage($default = $this->createMock(PackageInterface::class));
-        $packages->addPackage('a', $a = $this->createMock(PackageInterface::class));
+        $packages->setDefaultPackage($default = $this->createStub(PackageInterface::class));
+        $packages->addPackage('a', $a = $this->createStub(PackageInterface::class));
 
         $this->assertSame($default, $packages->getPackage());
         $this->assertSame($a, $packages->getPackage('a'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/PathPackageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/PathPackageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/PathPackageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/PathPackageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,8 +79,8 @@
 
     public function testVersionStrategyGivesAbsoluteURL()
     {
-        $versionStrategy = $this->createMock(VersionStrategyInterface::class);
-        $versionStrategy->expects($this->any())
+        $versionStrategy = $this->createStub(VersionStrategyInterface::class);
+        $versionStrategy
             ->method('applyVersion')
             ->willReturn('https://cdn.com/bar/main.css');
         $package = new PathPackage('/subdirectory', $versionStrategy, $this->getContext('/bar'));
@@ -90,8 +90,8 @@
 
     private function getContext($basePath)
     {
-        $context = $this->createMock(ContextInterface::class);
-        $context->expects($this->any())->method('getBasePath')->willReturn($basePath);
+        $context = $this->createStub(ContextInterface::class);
+        $context->method('getBasePath')->willReturn($basePath);
 
         return $context;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/UrlPackageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/UrlPackageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/UrlPackageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/UrlPackageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -92,8 +92,8 @@
 
     public function testVersionStrategyGivesAbsoluteURL()
     {
-        $versionStrategy = $this->createMock(VersionStrategyInterface::class);
-        $versionStrategy->expects($this->any())
+        $versionStrategy = $this->createStub(VersionStrategyInterface::class);
+        $versionStrategy
             ->method('applyVersion')
             ->willReturn('https://cdn.com/bar/main.css');
         $package = new UrlPackage('https://example.com', $versionStrategy);
@@ -126,8 +126,8 @@
 
     private function getContext($secure): ContextInterface
     {
-        $context = $this->createMock(ContextInterface::class);
-        $context->expects($this->any())->method('isSecure')->willReturn($secure);
+        $context = $this->createStub(ContextInterface::class);
+        $context->method('isSecure')->willReturn($secure);
 
         return $context;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/VersionStrategy/JsonManifestVersionStrategyTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/VersionStrategy/JsonManifestVersionStrategyTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/VersionStrategy/JsonManifestVersionStrategyTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/VersionStrategy/JsonManifestVersionStrategyTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
     }
 
     /**
-     * @dataProvider provideMissingStrategies
+     * @dataProvider provideMissingStrictStrategies
      */
     public function testMissingManifestFileThrowsException(JsonManifestVersionStrategy $strategy)
     {
@@ -65,6 +65,14 @@
     }
 
     /**
+     * @dataProvider provideMissingStrategies
+     */
+    public function testMissingManifestFileReturnsOriginalPathInNonStrictMode(JsonManifestVersionStrategy $strategy)
+    {
+        $this->assertSame('main.js', $strategy->applyVersion('main.js'));
+    }
+
+    /**
      * @dataProvider provideInvalidStrategies
      */
     public function testManifestFileWithBadJSONThrowsException(JsonManifestVersionStrategy $strategy)
@@ -77,7 +85,7 @@
     public function testRemoteManifestFileWithoutHttpClient()
     {
         $this->expectException(\LogicException::class);
-        $this->expectExceptionMessage(sprintf('The "%s" class needs an HTTP client to use a remote manifest. Try running "composer require symfony/http-client".', JsonManifestVersionStrategy::class));
+        $this->expectExceptionMessage(\sprintf('The "%s" class needs an HTTP client to use a remote manifest. Try running "composer require symfony/http-client".', JsonManifestVersionStrategy::class));
 
         new JsonManifestVersionStrategy('https://cdn.example.com/manifest.json');
     }
@@ -97,9 +105,14 @@
         yield from static::provideStrategies('non-existent-file.json');
     }
 
-    public static function provideStrategies(string $manifestPath): \Generator
+    public static function provideMissingStrictStrategies(): \Generator
+    {
+        yield from static::provideStrategies('non-existent-file.json', true);
+    }
+
+    public static function provideStrategies(string $manifestPath, bool $strictMode = false): \Generator
     {
-        $httpClient = new MockHttpClient(function ($method, $url, $options) {
+        $httpClient = new MockHttpClient(static function ($method, $url, $options) {
             $filename = __DIR__.'/../Fixtures/'.basename($url);
 
             if (file_exists($filename)) {
@@ -109,9 +122,9 @@
             return new MockResponse('{}', ['http_code' => 404]);
         });
 
-        yield [new JsonManifestVersionStrategy('https://cdn.example.com/'.$manifestPath, $httpClient)];
+        yield [new JsonManifestVersionStrategy('https://cdn.example.com/'.$manifestPath, $httpClient, $strictMode)];
 
-        yield [new JsonManifestVersionStrategy(__DIR__.'/../Fixtures/'.$manifestPath)];
+        yield [new JsonManifestVersionStrategy(__DIR__.'/../Fixtures/'.$manifestPath, null, $strictMode)];
     }
 
     public static function provideStrictStrategies(): \Generator
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/VersionStrategy/StaticVersionStrategyTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/VersionStrategy/StaticVersionStrategyTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Asset/Tests/VersionStrategy/StaticVersionStrategyTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Asset/Tests/VersionStrategy/StaticVersionStrategyTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function testApplyVersion($path, $version, $format)
     {
         $staticVersionStrategy = new StaticVersionStrategy($version, $format);
-        $formatted = sprintf($format ?: '%s?%s', $path, $version);
+        $formatted = \sprintf($format ?: '%s?%s', $path, $version);
         $this->assertSame($formatted, $staticVersionStrategy->applyVersion($path));
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Asset/UrlPackage.php symfony-6.4.40+dfsg/src/Symfony/Component/Asset/UrlPackage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Asset/UrlPackage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Asset/UrlPackage.php	2026-05-20 10:56:49.000000000 +0200
@@ -117,7 +117,7 @@
             if (str_starts_with($url, 'https://') || str_starts_with($url, '//') || '' === $url) {
                 $sslUrls[] = $url;
             } elseif (!parse_url($url, \PHP_URL_SCHEME)) {
-                throw new InvalidArgumentException(sprintf('"%s" is not a valid URL.', $url));
+                throw new InvalidArgumentException(\sprintf('"%s" is not a valid URL.', $url));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Asset/VersionStrategy/JsonManifestVersionStrategy.php symfony-6.4.40+dfsg/src/Symfony/Component/Asset/VersionStrategy/JsonManifestVersionStrategy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Asset/VersionStrategy/JsonManifestVersionStrategy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Asset/VersionStrategy/JsonManifestVersionStrategy.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
         $this->strictMode = $strictMode;
 
         if (null === $this->httpClient && ($scheme = parse_url($this->manifestPath, \PHP_URL_SCHEME)) && str_starts_with($scheme, 'http')) {
-            throw new LogicException(sprintf('The "%s" class needs an HTTP client to use a remote manifest. Try running "composer require symfony/http-client".', self::class));
+            throw new LogicException(\sprintf('The "%s" class needs an HTTP client to use a remote manifest. Try running "composer require symfony/http-client".', self::class));
         }
     }
 
@@ -75,19 +75,25 @@
                         'headers' => ['accept' => 'application/json'],
                     ])->toArray();
                 } catch (DecodingExceptionInterface $e) {
-                    throw new RuntimeException(sprintf('Error parsing JSON from asset manifest URL "%s".', $this->manifestPath), 0, $e);
+                    throw new RuntimeException(\sprintf('Error parsing JSON from asset manifest URL "%s".', $this->manifestPath), 0, $e);
                 } catch (ClientExceptionInterface $e) {
-                    throw new RuntimeException(sprintf('Error loading JSON from asset manifest URL "%s".', $this->manifestPath), 0, $e);
+                    if ($this->strictMode) {
+                        throw new RuntimeException(\sprintf('Error loading JSON from asset manifest URL "%s".', $this->manifestPath), 0, $e);
+                    }
+                    $this->manifestData = [];
                 }
             } else {
                 if (!is_file($this->manifestPath)) {
-                    throw new RuntimeException(sprintf('Asset manifest file "%s" does not exist. Did you forget to build the assets with npm or yarn?', $this->manifestPath));
-                }
-
-                try {
-                    $this->manifestData = json_decode(file_get_contents($this->manifestPath), true, flags: \JSON_THROW_ON_ERROR);
-                } catch (\JsonException $e) {
-                    throw new RuntimeException(sprintf('Error parsing JSON from asset manifest file "%s": ', $this->manifestPath).$e->getMessage(), previous: $e);
+                    if ($this->strictMode) {
+                        throw new RuntimeException(\sprintf('Asset manifest file "%s" does not exist. Did you forget to build the assets with npm or yarn?', $this->manifestPath));
+                    }
+                    $this->manifestData = [];
+                } else {
+                    try {
+                        $this->manifestData = json_decode(file_get_contents($this->manifestPath), true, flags: \JSON_THROW_ON_ERROR);
+                    } catch (\JsonException $e) {
+                        throw new RuntimeException(\sprintf('Error parsing JSON from asset manifest file "%s": ', $this->manifestPath).$e->getMessage(), previous: $e);
+                    }
                 }
             }
         }
@@ -97,10 +103,10 @@
         }
 
         if ($this->strictMode) {
-            $message = sprintf('Asset "%s" not found in manifest "%s".', $path, $this->manifestPath);
+            $message = \sprintf('Asset "%s" not found in manifest "%s".', $path, $this->manifestPath);
             $alternatives = $this->findAlternatives($path, $this->manifestData);
             if (\count($alternatives) > 0) {
-                $message .= sprintf(' Did you mean one of these? "%s".', implode('", "', $alternatives));
+                $message .= \sprintf(' Did you mean one of these? "%s".', implode('", "', $alternatives));
             }
 
             throw new AssetNotFoundException($message, $alternatives);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Asset/VersionStrategy/StaticVersionStrategy.php symfony-6.4.40+dfsg/src/Symfony/Component/Asset/VersionStrategy/StaticVersionStrategy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Asset/VersionStrategy/StaticVersionStrategy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Asset/VersionStrategy/StaticVersionStrategy.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
 
     public function applyVersion(string $path): string
     {
-        $versionized = sprintf($this->format, ltrim($path, '/'), $this->getVersion($path));
+        $versionized = \sprintf($this->format, ltrim($path, '/'), $this->getVersion($path));
 
         if ($path && '/' === $path[0]) {
             return '/'.$versionized;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/AssetMapperDevServerSubscriber.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/AssetMapperDevServerSubscriber.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/AssetMapperDevServerSubscriber.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/AssetMapperDevServerSubscriber.php	2026-05-20 10:56:49.000000000 +0200
@@ -127,7 +127,7 @@
         $asset = $this->findAssetFromCache($pathInfo);
 
         if (!$asset) {
-            throw new NotFoundHttpException(sprintf('Asset with public path "%s" not found.', $pathInfo));
+            throw new NotFoundHttpException(\sprintf('Asset with public path "%s" not found.', $pathInfo));
         }
 
         $this->profiler?->disable();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/AssetMapper.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/AssetMapper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/AssetMapper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/AssetMapper.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
         foreach ($this->mapperRepository->all() as $logicalPath => $filePath) {
             $asset = $this->getAsset($logicalPath);
             if (null === $asset) {
-                throw new \LogicException(sprintf('Asset "%s" could not be found.', $logicalPath));
+                throw new \LogicException(\sprintf('Asset "%s" could not be found.', $logicalPath));
             }
             yield $asset;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/AssetMapperRepository.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/AssetMapperRepository.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/AssetMapperRepository.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/AssetMapperRepository.php	2026-05-20 10:56:49.000000000 +0200
@@ -149,7 +149,7 @@
         foreach ($this->paths as $path => $namespace) {
             if ($filesystem->isAbsolutePath($path)) {
                 if (!file_exists($path) && $this->debug) {
-                    throw new \InvalidArgumentException(sprintf('The asset mapper directory "%s" does not exist.', $path));
+                    throw new \InvalidArgumentException(\sprintf('The asset mapper directory "%s" does not exist.', $path));
                 }
                 $this->absolutePaths[realpath($path)] = $namespace;
 
@@ -163,7 +163,7 @@
             }
 
             if ($this->debug) {
-                throw new \InvalidArgumentException(sprintf('The asset mapper directory "%s" does not exist.', $path));
+                throw new \InvalidArgumentException(\sprintf('The asset mapper directory "%s" does not exist.', $path));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/AssetMapperCompileCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/AssetMapperCompileCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/AssetMapperCompileCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/AssetMapperCompileCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,11 +50,11 @@
     {
         $this
             ->setHelp(<<<'EOT'
-The <info>%command.name%</info> command compiles and dumps all the assets in
-the asset mapper into the final public directory (usually <comment>public/assets</comment>).
+                The <info>%command.name%</info> command compiles and dumps all the assets in
+                the asset mapper into the final public directory (usually <comment>public/assets</comment>).
 
-This command is meant to be run during deployment.
-EOT
+                This command is meant to be run during deployment.
+                EOT
             );
     }
 
@@ -69,26 +69,26 @@
         $this->compiledConfigReader->removeConfig(ImportMapGenerator::IMPORT_MAP_CACHE_FILENAME);
         $entrypointFiles = [];
         foreach ($this->importMapGenerator->getEntrypointNames() as $entrypointName) {
-            $path = sprintf(ImportMapGenerator::ENTRYPOINT_CACHE_FILENAME_PATTERN, $entrypointName);
+            $path = \sprintf(ImportMapGenerator::ENTRYPOINT_CACHE_FILENAME_PATTERN, $entrypointName);
             $this->compiledConfigReader->removeConfig($path);
             $entrypointFiles[$entrypointName] = $path;
         }
 
         $manifest = $this->createManifestAndWriteFiles($io);
         $manifestPath = $this->compiledConfigReader->saveConfig(AssetMapper::MANIFEST_FILE_NAME, $manifest);
-        $io->comment(sprintf('Manifest written to <info>%s</info>', $this->shortenPath($manifestPath)));
+        $io->comment(\sprintf('Manifest written to <info>%s</info>', $this->shortenPath($manifestPath)));
 
         $importMapPath = $this->compiledConfigReader->saveConfig(ImportMapGenerator::IMPORT_MAP_CACHE_FILENAME, $this->importMapGenerator->getRawImportMapData());
-        $io->comment(sprintf('Import map data written to <info>%s</info>.', $this->shortenPath($importMapPath)));
+        $io->comment(\sprintf('Import map data written to <info>%s</info>.', $this->shortenPath($importMapPath)));
 
         foreach ($entrypointFiles as $entrypointName => $path) {
             $this->compiledConfigReader->saveConfig($path, $this->importMapGenerator->findEagerEntrypointImports($entrypointName));
         }
-        $styledEntrypointNames = array_map(fn (string $entrypointName) => sprintf('<info>%s</>', $entrypointName), array_keys($entrypointFiles));
-        $io->comment(sprintf('Entrypoint metadata written for <comment>%d</> entrypoints (%s).', \count($entrypointFiles), implode(', ', $styledEntrypointNames)));
+        $styledEntrypointNames = array_map(static fn (string $entrypointName) => \sprintf('<info>%s</>', $entrypointName), array_keys($entrypointFiles));
+        $io->comment(\sprintf('Entrypoint metadata written for <comment>%d</> entrypoints (%s).', \count($entrypointFiles), implode(', ', $styledEntrypointNames)));
 
         if ($this->isDebug) {
-            $io->warning(sprintf(
+            $io->warning(\sprintf(
                 'You are compiling assets in development. Symfony will not serve any changed assets until you delete the files in the "%s" directory.',
                 $this->shortenPath(\dirname($manifestPath))
             ));
@@ -104,7 +104,7 @@
 
     private function createManifestAndWriteFiles(SymfonyStyle $io): array
     {
-        $io->comment(sprintf('Compiling and writing asset files to <info>%s</info>', $this->shortenPath($this->assetsFilesystem->getDestinationPath())));
+        $io->comment(\sprintf('Compiling and writing asset files to <info>%s</info>', $this->shortenPath($this->assetsFilesystem->getDestinationPath())));
         $manifest = [];
         foreach ($this->assetMapper->allAssets() as $asset) {
             if (null !== $asset->content) {
@@ -117,7 +117,7 @@
             $manifest[$asset->logicalPath] = $asset->publicPath;
         }
         ksort($manifest);
-        $io->comment(sprintf('Compiled <info>%d</info> assets', \count($manifest)));
+        $io->comment(\sprintf('Compiled <info>%d</info> assets', \count($manifest)));
 
         return $manifest;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/DebugAssetMapperCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/DebugAssetMapperCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/DebugAssetMapperCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/DebugAssetMapperCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,9 +42,9 @@
         $this
             ->addOption('full', null, null, 'Whether to show the full paths')
             ->setHelp(<<<'EOT'
-The <info>%command.name%</info> command outputs all of the assets in
-asset mapper for debugging purposes.
-EOT
+                The <info>%command.name%</info> command outputs all of the assets in
+                asset mapper for debugging purposes.
+                EOT
             );
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapAuditCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapAuditCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapAuditCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapAuditCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
         $this->addOption(
             name: 'format',
             mode: InputOption::VALUE_REQUIRED,
-            description: sprintf('The output format ("%s")', implode(', ', $this->getAvailableFormatOptions())),
+            description: \sprintf('The output format ("%s")', implode(', ', $this->getAvailableFormatOptions())),
             default: 'txt',
         );
     }
@@ -63,7 +63,7 @@
         return match ($format) {
             'txt' => $this->displayTxt($audit),
             'json' => $this->displayJson($audit),
-            default => throw new \InvalidArgumentException(sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
+            default => throw new \InvalidArgumentException(\sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
         };
     }
 
@@ -72,14 +72,14 @@
         $rows = [];
 
         $packagesWithoutVersion = [];
-        $vulnerabilitiesCount = array_map(fn () => 0, self::SEVERITY_COLORS);
+        $vulnerabilitiesCount = array_map(static fn () => 0, self::SEVERITY_COLORS);
         foreach ($audit as $packageAudit) {
             if (!$packageAudit->version) {
                 $packagesWithoutVersion[] = $packageAudit->package;
             }
             foreach ($packageAudit->vulnerabilities as $vulnerability) {
                 $rows[] = [
-                    sprintf('<fg=%s>%s</>', self::SEVERITY_COLORS[$vulnerability->severity] ?? 'default', ucfirst($vulnerability->severity)),
+                    \sprintf('<fg=%s>%s</>', self::SEVERITY_COLORS[$vulnerability->severity] ?? 'default', ucfirst($vulnerability->severity)),
                     $vulnerability->summary,
                     $packageAudit->package,
                     $packageAudit->version ?? 'n/a',
@@ -113,7 +113,7 @@
             $this->io->newLine();
         }
 
-        $this->io->text(sprintf('%d package%s found: %d audited / %d skipped',
+        $this->io->text(\sprintf('%d package%s found: %d audited / %d skipped',
             $packagesCount,
             1 === $packagesCount ? '' : 's',
             $packagesCount - $packagesWithoutVersionCount,
@@ -121,7 +121,7 @@
         ));
 
         if (0 < $packagesWithoutVersionCount) {
-            $this->io->warning(sprintf('Unable to retrieve versions for package%s: %s',
+            $this->io->warning(\sprintf('Unable to retrieve versions for package%s: %s',
                 1 === $packagesWithoutVersionCount ? '' : 's',
                 implode(', ', $packagesWithoutVersion)
             ));
@@ -134,10 +134,10 @@
                 if (!$count) {
                     continue;
                 }
-                $vulnerabilitySummary[] = sprintf('%d %s', $count, ucfirst($severity));
+                $vulnerabilitySummary[] = \sprintf('%d %s', $count, ucfirst($severity));
                 $vulnerabilityCount += $count;
             }
-            $this->io->text(sprintf('%d vulnerabilit%s found: %s',
+            $this->io->text(\sprintf('%d vulnerabilit%s found: %s',
                 $vulnerabilityCount,
                 1 === $vulnerabilityCount ? 'y' : 'ies',
                 implode(' / ', $vulnerabilitySummary),
@@ -149,7 +149,7 @@
 
     private function displayJson(array $audit): int
     {
-        $vulnerabilitiesCount = array_map(fn () => 0, self::SEVERITY_COLORS);
+        $vulnerabilitiesCount = array_map(static fn () => 0, self::SEVERITY_COLORS);
 
         $json = [
             'packages' => [],
@@ -160,7 +160,7 @@
             $json['packages'][] = [
                 'package' => $packageAudit->package,
                 'version' => $packageAudit->version,
-                'vulnerabilities' => array_map(fn (ImportMapPackageAuditVulnerability $v) => [
+                'vulnerabilities' => array_map(static fn (ImportMapPackageAuditVulnerability $v) => [
                     'ghsa_id' => $v->ghsaId,
                     'cve_id' => $v->cveId,
                     'url' => $v->url,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapInstallCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapInstallCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapInstallCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapInstallCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
         $finishedCount = 0;
         $progressBar = new ProgressBar($output);
         $progressBar->setFormat('<info>%current%/%max%</info> %bar% %url%');
-        $downloadedPackages = $this->packageDownloader->downloadPackages(function (string $package, string $event, ResponseInterface $response, int $totalPackages) use (&$finishedCount, $progressBar) {
+        $downloadedPackages = $this->packageDownloader->downloadPackages(static function (string $package, string $event, ResponseInterface $response, int $totalPackages) use (&$finishedCount, $progressBar) {
             $progressBar->setMessage($response->getInfo('url'), 'url');
             if (0 === $progressBar->getMaxSteps()) {
                 $progressBar->setMaxSteps($totalPackages);
@@ -63,7 +63,7 @@
             return Command::SUCCESS;
         }
 
-        $io->success(sprintf(
+        $io->success(\sprintf(
             'Downloaded %d package%s into %s.',
             \count($downloadedPackages),
             1 === \count($downloadedPackages) ? '' : 's',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapOutdatedCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapOutdatedCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapOutdatedCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapOutdatedCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,20 +46,20 @@
             ->addOption(
                 name: 'format',
                 mode: InputOption::VALUE_REQUIRED,
-                description: sprintf('The output format ("%s")', implode(', ', $this->getAvailableFormatOptions())),
+                description: \sprintf('The output format ("%s")', implode(', ', $this->getAvailableFormatOptions())),
                 default: 'txt',
             )
             ->setHelp(<<<'EOT'
-The <info>%command.name%</info> command will list the latest updates available for the 3rd party packages in <comment>importmap.php</comment>.
-Versions showing in <fg=red>red</> are semver compatible versions and you should upgrading.
-Versions showing in <fg=yellow>yellow</> are major updates that include backward compatibility breaks according to semver.
+                The <info>%command.name%</info> command will list the latest updates available for the 3rd party packages in <comment>importmap.php</comment>.
+                Versions showing in <fg=red>red</> are semver compatible versions and you should upgrading.
+                Versions showing in <fg=yellow>yellow</> are major updates that include backward compatibility breaks according to semver.
 
-   <info>php %command.full_name%</info>
+                   <info>php %command.full_name%</info>
 
-Or specific packages only:
+                Or specific packages only:
 
-   <info>php %command.full_name% <packages></info>
-EOT
+                   <info>php %command.full_name% <packages></info>
+                EOT
             );
     }
 
@@ -68,12 +68,12 @@
         $io = new SymfonyStyle($input, $output);
         $packages = $input->getArgument('packages');
         $packagesUpdateInfos = $this->updateChecker->getAvailableUpdates($packages);
-        $packagesUpdateInfos = array_filter($packagesUpdateInfos, fn ($packageUpdateInfo) => $packageUpdateInfo->hasUpdate());
+        $packagesUpdateInfos = array_filter($packagesUpdateInfos, static fn ($packageUpdateInfo) => $packageUpdateInfo->hasUpdate());
         if (0 === \count($packagesUpdateInfos)) {
             return Command::SUCCESS;
         }
 
-        $displayData = array_map(fn (string $importName, PackageUpdateInfo $packageUpdateInfo) => [
+        $displayData = array_map(static fn (string $importName, PackageUpdateInfo $packageUpdateInfo) => [
             'name' => $importName,
             'current' => $packageUpdateInfo->currentVersion,
             'latest' => $packageUpdateInfo->latestVersion,
@@ -88,9 +88,9 @@
             foreach ($displayData as $datum) {
                 $color = self::COLOR_MAPPING[$datum['latest-status']] ?? 'default';
                 $table->addRow([
-                    sprintf('<fg=%s>%s</>', $color, $datum['name']),
+                    \sprintf('<fg=%s>%s</>', $color, $datum['name']),
                     $datum['current'],
-                    sprintf('<fg=%s>%s</>', $color, $datum['latest']),
+                    \sprintf('<fg=%s>%s</>', $color, $datum['latest']),
                 ]);
             }
             $table->render();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapRemoveCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapRemoveCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapRemoveCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapRemoveCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,13 +36,13 @@
         $this
             ->addArgument('packages', InputArgument::IS_ARRAY | InputArgument::REQUIRED, 'The packages to remove')
             ->setHelp(<<<'EOT'
-The <info>%command.name%</info> command removes packages from the <comment>importmap.php</comment>.
-If a package was downloaded into your app, the downloaded file will also be removed.
+                The <info>%command.name%</info> command removes packages from the <comment>importmap.php</comment>.
+                If a package was downloaded into your app, the downloaded file will also be removed.
 
-For example:
+                For example:
 
-    <info>php %command.full_name% lodash</info>
-EOT
+                    <info>php %command.full_name% lodash</info>
+                EOT
             )
         ;
     }
@@ -55,9 +55,9 @@
         $this->importMapManager->remove($packageList);
 
         if (1 === \count($packageList)) {
-            $io->success(sprintf('Removed "%s" from importmap.php.', $packageList[0]));
+            $io->success(\sprintf('Removed "%s" from importmap.php.', $packageList[0]));
         } else {
-            $io->success(sprintf('Removed %d items from importmap.php.', \count($packageList)));
+            $io->success(\sprintf('Removed %d items from importmap.php.', \count($packageList)));
         }
 
         return Command::SUCCESS;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapRequireCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapRequireCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapRequireCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapRequireCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,34 +45,34 @@
             ->addOption('entrypoint', null, InputOption::VALUE_NONE, 'Make the package(s) an entrypoint?')
             ->addOption('path', null, InputOption::VALUE_REQUIRED, 'The local path where the package lives relative to the project root')
             ->setHelp(<<<'EOT'
-The <info>%command.name%</info> command adds packages to <comment>importmap.php</comment> usually
-by finding a CDN URL for the given package and version.
+                The <info>%command.name%</info> command adds packages to <comment>importmap.php</comment> usually
+                by finding a CDN URL for the given package and version.
 
-For example:
+                For example:
 
-    <info>php %command.full_name% lodash</info>
-    <info>php %command.full_name% "lodash@^4.15"</info>
+                    <info>php %command.full_name% lodash</info>
+                    <info>php %command.full_name% "lodash@^4.15"</info>
 
-You can also require specific paths of a package:
+                You can also require specific paths of a package:
 
-    <info>php %command.full_name% "chart.js/auto"</info>
+                    <info>php %command.full_name% "chart.js/auto"</info>
 
-Or require one package/file, but alias its name in your import map:
+                Or require one package/file, but alias its name in your import map:
 
-    <info>php %command.full_name% "vue/dist/vue.esm-bundler.js=vue"</info>
+                    <info>php %command.full_name% "vue/dist/vue.esm-bundler.js=vue"</info>
 
-Sometimes, a package may require other packages and multiple new items may be added
-to the import map.
+                Sometimes, a package may require other packages and multiple new items may be added
+                to the import map.
 
-You can also require multiple packages at once:
+                You can also require multiple packages at once:
 
-    <info>php %command.full_name% "lodash@^4.15" "@hotwired/stimulus"</info>
+                    <info>php %command.full_name% "lodash@^4.15" "@hotwired/stimulus"</info>
 
-To add an importmap entry pointing to a local file, use the <info>path</info> option:
+                To add an importmap entry pointing to a local file, use the <info>path</info> option:
 
-    <info>php %command.full_name% "any_module_name" --path=./assets/some_file.js</info>
+                    <info>php %command.full_name% "any_module_name" --path=./assets/some_file.js</info>
 
-EOT
+                EOT
             );
     }
 
@@ -96,7 +96,7 @@
         foreach ($packageList as $packageName) {
             $parts = ImportMapManager::parsePackageName($packageName);
             if (null === $parts) {
-                $io->error(sprintf('Package "%s" is not a valid package name format. Use the format PACKAGE@VERSION - e.g. "lodash" or "lodash@^4"', $packageName));
+                $io->error(\sprintf('Package "%s" is not a valid package name format. Use the format PACKAGE@VERSION - e.g. "lodash" or "lodash@^4"', $packageName));
 
                 return Command::FAILURE;
             }
@@ -116,18 +116,18 @@
 
         if (1 === \count($newPackages)) {
             $newPackage = $newPackages[0];
-            $message = sprintf('Package "%s" added to importmap.php', $newPackage->importName);
+            $message = \sprintf('Package "%s" added to importmap.php', $newPackage->importName);
 
             $message .= '.';
         } else {
-            $names = array_map(fn (ImportMapEntry $package) => $package->importName, $newPackages);
-            $message = sprintf('%d new items (%s) added to the importmap.php!', \count($newPackages), implode(', ', $names));
+            $names = array_map(static fn (ImportMapEntry $package) => $package->importName, $newPackages);
+            $message = \sprintf('%d new items (%s) added to the importmap.php!', \count($newPackages), implode(', ', $names));
         }
 
         $messages = [$message];
 
         if (1 === \count($newPackages)) {
-            $messages[] = sprintf('Use the new package normally by importing "%s".', $newPackages[0]->importName);
+            $messages[] = \sprintf('Use the new package normally by importing "%s".', $newPackages[0]->importName);
         }
 
         $io->success($messages);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapUpdateCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapUpdateCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapUpdateCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/ImportMapUpdateCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,15 +41,15 @@
         $this
             ->addArgument('packages', InputArgument::IS_ARRAY | InputArgument::OPTIONAL, 'List of packages\' names')
             ->setHelp(<<<'EOT'
-The <info>%command.name%</info> command will update all from the 3rd part packages
-in <comment>importmap.php</comment> to their latest version, including downloaded packages.
+                The <info>%command.name%</info> command will update all from the 3rd part packages
+                in <comment>importmap.php</comment> to their latest version, including downloaded packages.
 
-   <info>php %command.full_name%</info>
+                   <info>php %command.full_name%</info>
 
-Or specific packages only:
+                Or specific packages only:
 
-    <info>php %command.full_name% <packages></info>
-EOT
+                    <info>php %command.full_name% <packages></info>
+                EOT
             )
         ;
     }
@@ -64,7 +64,7 @@
         $this->renderVersionProblems($this->importMapVersionChecker, $output);
 
         if (0 < \count($packages)) {
-            $io->success(sprintf(
+            $io->success(\sprintf(
                 'Updated %s package%s in importmap.php.',
                 implode(', ', array_map(static fn (ImportMapEntry $entry): string => $entry->importName, $updatedPackages)),
                 1 < \count($updatedPackages) ? 's' : '',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/VersionProblemCommandTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/VersionProblemCommandTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Command/VersionProblemCommandTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Command/VersionProblemCommandTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,12 +24,12 @@
         $problems = $importMapVersionChecker->checkVersions();
         foreach ($problems as $problem) {
             if (null === $problem->installedVersion) {
-                $output->writeln(sprintf('[warning] <info>%s</info> requires <info>%s</info> but it is not in the importmap.php. You may need to run "php bin/console importmap:require %s".', $problem->packageName, $problem->dependencyPackageName, $problem->dependencyPackageName));
+                $output->writeln(\sprintf('[warning] <info>%s</info> requires <info>%s</info> but it is not in the importmap.php. You may need to run "php bin/console importmap:require %s".', $problem->packageName, $problem->dependencyPackageName, $problem->dependencyPackageName));
 
                 continue;
             }
 
-            $output->writeln(sprintf('[warning] <info>%s</info> requires <info>%s</info>@<comment>%s</comment> but version <comment>%s</comment> is installed.', $problem->packageName, $problem->dependencyPackageName, $problem->requiredVersionConstraint, $problem->installedVersion));
+            $output->writeln(\sprintf('[warning] <info>%s</info> requires <info>%s</info>@<comment>%s</comment> but version <comment>%s</comment> is installed.', $problem->packageName, $problem->dependencyPackageName, $problem->requiredVersionConstraint, $problem->installedVersion));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/CompiledAssetMapperConfigReader.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/CompiledAssetMapperConfigReader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/CompiledAssetMapperConfigReader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/CompiledAssetMapperConfigReader.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
     public function saveConfig(string $filename, array $data): string
     {
         $path = Path::join($this->directory, $filename);
-        @mkdir(\dirname($path), 0777, true);
+        @mkdir(\dirname($path), 0o777, true);
         file_put_contents($path, json_encode($data, \JSON_PRETTY_PRINT | \JSON_THROW_ON_ERROR));
 
         return $path;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,12 +20,20 @@
 /**
  * Resolves url() paths in CSS files.
  *
- * Originally sourced from https://github.com/rails/propshaft/blob/main/lib/propshaft/compilers/css_asset_urls.rb
+ * Originally sourced from https://github.com/rails/propshaft/blob/main/lib/propshaft/compiler/css_asset_urls.rb
  */
 final class CssAssetUrlCompiler implements AssetCompilerInterface
 {
-    // https://regex101.com/r/BOJ3vG/1
-    public const ASSET_URL_PATTERN = '/url\(\s*["\']?(?!(?:\/|\#|%23|data|http|\/\/))([^"\'\s?#)]+)([#?][^"\')]+)?\s*["\']?\)/';
+    // https://regex101.com/r/BOJ3vG/2
+    public const ASSET_URL_PATTERN = <<<'REGEX'
+        {
+            (?|
+            (url\()\s*+["']?(?!(?:/|\#|%23|data|http|//))([^"')\s?#]++)(?:[?#][^"')]++)?["']?\s*+(\))
+            |
+            (@import\s++)["'](?!(?:/|\#|%23|data|http|//))([^"')\s?#]++)(?:[?#][^"')]++)?["']
+            )
+        }x
+        REGEX;
 
     public function __construct(
         private readonly string $missingImportMode = self::MISSING_IMPORT_WARN,
@@ -51,7 +59,7 @@
         return preg_replace_callback(self::ASSET_URL_PATTERN, function ($matches) use ($asset, $assetMapper, $commentBlocks) {
             $matchPos = $matches[0][1];
 
-            // Ignore matchs inside comments
+            // Ignore matches inside comments
             foreach ($commentBlocks as $block) {
                 if ($matchPos > $block[0]) {
                     if ($matchPos < $block[1]) {
@@ -62,16 +70,16 @@
             }
 
             try {
-                $resolvedSourcePath = Path::join(\dirname($asset->sourcePath), $matches[1]);
+                $resolvedSourcePath = Path::join(\dirname($asset->sourcePath), $matches[2][0]);
             } catch (RuntimeException $e) {
-                $this->handleMissingImport(sprintf('Error processing import in "%s": ', $asset->sourcePath).$e->getMessage(), $e);
+                $this->handleMissingImport(\sprintf('Error processing import in "%s": ', $asset->sourcePath).$e->getMessage(), $e);
 
-                return $matches[0];
+                return $matches[0][0];
             }
             $dependentAsset = $assetMapper->getAssetFromSourcePath($resolvedSourcePath);
 
             if (null === $dependentAsset) {
-                $message = sprintf('Unable to find asset "%s" referenced in "%s". The file "%s" ', $matches[1], $asset->sourcePath, $resolvedSourcePath);
+                $message = \sprintf('Unable to find asset "%s" referenced in "%s". The file "%s" ', $matches[2][0], $asset->sourcePath, $resolvedSourcePath);
                 if (is_file($resolvedSourcePath)) {
                     $message .= 'exists, but it is not in a mapped asset path. Add it to the "paths" config.';
                 } else {
@@ -80,14 +88,14 @@
                 $this->handleMissingImport($message);
 
                 // return original, unchanged path
-                return $matches[0];
+                return $matches[0][0];
             }
 
             $asset->addDependency($dependentAsset);
             $relativePath = Path::makeRelative($dependentAsset->publicPath, \dirname($asset->publicPathWithoutDigest));
 
-            return 'url("'.$relativePath.'")';
-        }, $content);
+            return $matches[1][0].'"'.$relativePath.'"'.($matches[3][0] ?? '');
+        }, $content, -1, $count, \PREG_OFFSET_CAPTURE);
     }
 
     public function supports(MappedAsset $asset): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Compiler/JavaScriptImportPathCompiler.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Compiler/JavaScriptImportPathCompiler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Compiler/JavaScriptImportPathCompiler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Compiler/JavaScriptImportPathCompiler.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
             $isRelativeImport = str_starts_with($importedModule, '.');
             if (!$isRelativeImport) {
                 // URL or /absolute imports will also go here, but will be ignored
-                $dependentAsset = $this->findAssetForBareImport($importedModule, $assetMapper);
+                $dependentAsset = $this->findAssetForBareImport($importedModule, $asset, $assetMapper);
             } else {
                 $dependentAsset = $this->findAssetForRelativeImport($importedModule, $asset, $assetMapper);
             }
@@ -120,7 +120,7 @@
             $relativeImportPath = $this->makeRelativeForJavaScript($relativeImportPath);
 
             return str_replace($importedModule, $relativeImportPath, $fullImportString);
-        }, $content, -1, $count, \PREG_OFFSET_CAPTURE) ?? throw new RuntimeException(sprintf('Failed to compile JavaScript import paths in "%s". Error: "%s".', $asset->sourcePath, preg_last_error_msg()));
+        }, $content, -1, $count, \PREG_OFFSET_CAPTURE) ?? throw new RuntimeException(\sprintf('Failed to compile JavaScript import paths in "%s". Error: "%s".', $asset->sourcePath, preg_last_error_msg()));
     }
 
     public function supports(MappedAsset $asset): bool
@@ -173,17 +173,26 @@
         return false;
     }
 
-    private function findAssetForBareImport(string $importedModule, AssetMapperInterface $assetMapper): ?MappedAsset
+    private function findAssetForBareImport(string $importedModule, MappedAsset $asset, AssetMapperInterface $assetMapper): ?MappedAsset
     {
         if (!$importMapEntry = $this->importMapConfigReader->findRootImportMapEntry($importedModule)) {
-            // don't warn on missing non-relative (bare) imports: these could be valid URLs
+            // Bare names may resolve to a valid URL at runtime, so we don't warn about them in general.
+            // But the browser can only load a CSS or JSON module by bare name through an importmap entry
+            // (the experimental import-attributes `with { type: '...' }` syntax aside), so a missing bare
+            // `.css`/`.json` import silently does nothing - warn the user at compile time.
+            if (!$asset->isVendor
+                && !str_contains($importedModule, '://')
+                && (str_ends_with($lowerModule = strtolower($importedModule), '.css') || str_ends_with($lowerModule, '.json'))
+            ) {
+                $this->handleMissingImport(\sprintf('Unable to find asset "%s" imported from "%s". Add it to "importmap.php", e.g. via the "importmap:require" command.', $importedModule, $asset->sourcePath));
+            }
 
             return null;
         }
 
         try {
-            if ($asset = $assetMapper->getAsset($importMapEntry->path)) {
-                return $asset;
+            if ($dependentAsset = $assetMapper->getAsset($importMapEntry->path)) {
+                return $dependentAsset;
             }
 
             return $assetMapper->getAssetFromSourcePath($this->importMapConfigReader->convertPathToFilesystemPath($importMapEntry->path));
@@ -199,7 +208,7 @@
         } catch (RuntimeException $e) {
             // avoid warning about vendor imports - these are often comments
             if (!$asset->isVendor) {
-                $this->handleMissingImport(sprintf('Error processing import in "%s": ', $asset->sourcePath).$e->getMessage(), $e);
+                $this->handleMissingImport(\sprintf('Error processing import in "%s": ', $asset->sourcePath).$e->getMessage(), $e);
             }
 
             return null;
@@ -220,14 +229,14 @@
             return null;
         }
 
-        $message = sprintf('Unable to find asset "%s" imported from "%s".', $importedModule, $asset->sourcePath);
+        $message = \sprintf('Unable to find asset "%s" imported from "%s".', $importedModule, $asset->sourcePath);
 
         if (is_file($resolvedSourcePath)) {
-            $message .= sprintf('The file "%s" exists, but it is not in a mapped asset path. Add it to the "paths" config.', $resolvedSourcePath);
+            $message .= \sprintf('The file "%s" exists, but it is not in a mapped asset path. Add it to the "paths" config.', $resolvedSourcePath);
         } else {
             try {
-                if (null !== $assetMapper->getAssetFromSourcePath(sprintf('%s.js', $resolvedSourcePath))) {
-                    $message .= sprintf(' Try adding ".js" to the end of the import - i.e. "%s.js".', $importedModule);
+                if (null !== $assetMapper->getAssetFromSourcePath(\sprintf('%s.js', $resolvedSourcePath))) {
+                    $message .= \sprintf(' Try adding ".js" to the end of the import - i.e. "%s.js".', $importedModule);
                 }
             } catch (CircularAssetsException) {
                 // avoid circular error if there is self-referencing import comments
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Compiler/SourceMappingUrlsCompiler.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Compiler/SourceMappingUrlsCompiler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Compiler/SourceMappingUrlsCompiler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Compiler/SourceMappingUrlsCompiler.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,11 +18,11 @@
 /**
  * Rewrites already-existing source map URLs to their final digested path.
  *
- * Originally sourced from https://github.com/rails/propshaft/blob/main/lib/propshaft/compilers/source_mapping_urls.rb
+ * Originally sourced from https://github.com/rails/propshaft/blob/main/lib/propshaft/compiler/source_mapping_urls.rb
  */
 final class SourceMappingUrlsCompiler implements AssetCompilerInterface
 {
-    private const SOURCE_MAPPING_PATTERN = '/^(\/\/|\/\*)# sourceMappingURL=(.+\.map)/m';
+    private const SOURCE_MAPPING_PATTERN = '{^(//|/\*)# sourceMappingURL=(.+\.map)}m';
 
     public function supports(MappedAsset $asset): bool
     {
@@ -31,7 +31,7 @@
 
     public function compile(string $content, MappedAsset $asset, AssetMapperInterface $assetMapper): string
     {
-        return preg_replace_callback(self::SOURCE_MAPPING_PATTERN, function ($matches) use ($asset, $assetMapper) {
+        return preg_replace_callback(self::SOURCE_MAPPING_PATTERN, static function ($matches) use ($asset, $assetMapper) {
             $resolvedPath = Path::join(\dirname($asset->sourcePath), $matches[2]);
 
             $dependentAsset = $assetMapper->getAssetFromSourcePath($resolvedPath);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Factory/CachedMappedAssetFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Factory/CachedMappedAssetFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Factory/CachedMappedAssetFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Factory/CachedMappedAssetFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,7 +61,7 @@
      */
     private function collectResourcesFromAsset(MappedAsset $mappedAsset): array
     {
-        $resources = array_map(fn (string $path) => is_dir($path) ? new DirectoryResource($path) : new FileResource($path), $mappedAsset->getFileDependencies());
+        $resources = array_map(static fn (string $path) => is_dir($path) ? new DirectoryResource($path) : new FileResource($path), $mappedAsset->getFileDependencies());
         $resources[] = new FileResource($mappedAsset->sourcePath);
 
         foreach ($mappedAsset->getDependencies() as $assetDependency) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Factory/MappedAssetFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Factory/MappedAssetFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Factory/MappedAssetFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Factory/MappedAssetFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
     public function createMappedAsset(string $logicalPath, string $sourcePath): ?MappedAsset
     {
         if (isset($this->assetsBeingCreated[$logicalPath])) {
-            throw new CircularAssetsException($this->assetsCache[$logicalPath], sprintf('Circular reference detected while creating asset for "%s": "%s".', $logicalPath, implode(' -> ', $this->assetsBeingCreated).' -> '.$logicalPath));
+            throw new CircularAssetsException($this->assetsCache[$logicalPath], \sprintf('Circular reference detected while creating asset for "%s": "%s".', $logicalPath, implode(' -> ', $this->assetsBeingCreated).' -> '.$logicalPath));
         }
         $this->assetsBeingCreated[$logicalPath] = $logicalPath;
 
@@ -97,7 +97,7 @@
     private function compileContent(MappedAsset $asset): ?string
     {
         if (!is_file($asset->sourcePath)) {
-            throw new RuntimeException(sprintf('Asset source path "%s" could not be found.', $asset->sourcePath));
+            throw new RuntimeException(\sprintf('Asset source path "%s" could not be found.', $asset->sourcePath));
         }
 
         if (!$this->compiler->supports($asset)) {
@@ -118,7 +118,7 @@
             return $this->assetsPathResolver->resolvePublicPath($asset->logicalPath);
         }
 
-        $digestedPath = preg_replace_callback('/\.(\w+)$/', fn ($matches) => "-{$digest}{$matches[0]}", $asset->logicalPath);
+        $digestedPath = preg_replace_callback('/\.(\w+)$/', static fn ($matches) => "-{$digest}{$matches[0]}", $asset->logicalPath);
 
         return $this->assetsPathResolver->resolvePublicPath($digestedPath);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/BatchHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/BatchHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/BatchHttpClient.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/BatchHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,57 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\AssetMapper\ImportMap;
+
+use Symfony\Component\HttpClient\DecoratorTrait;
+use Symfony\Contracts\HttpClient\HttpClientInterface;
+use Symfony\Contracts\HttpClient\ResponseInterface;
+
+/**
+ * @internal
+ */
+class BatchHttpClient implements HttpClientInterface
+{
+    use DecoratorTrait;
+
+    private const BATCH_SIZE = 250;
+
+    private \WeakMap $pendingRequests;
+
+    public function request(string $method, string $url, array $options = []): ResponseInterface
+    {
+        $this->pendingRequests ??= new \WeakMap();
+        $pendingRequests = [];
+
+        foreach ($this->pendingRequests as $response => $_) {
+            if ($response->getInfo('http_code')) {
+                $this->pendingRequests->offsetUnset($response);
+            } else {
+                $pendingRequests[] = $response;
+            }
+        }
+
+        if (\count($pendingRequests) >= self::BATCH_SIZE) {
+            foreach ($this->client->stream($pendingRequests) as $response => $chunk) {
+                if (!$chunk->isTimeout() && $chunk->isFirst()) {
+                    $response->getStatusCode(); // ignore 3/4/5xx
+                    $this->pendingRequests->offsetUnset($response);
+                    break;
+                }
+            }
+        }
+
+        $response = $this->client->request($method, $url, $options);
+        $this->pendingRequests[$response] = true;
+
+        return $response;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapAuditor.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapAuditor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapAuditor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapAuditor.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
         ]);
 
         if (200 !== $response->getStatusCode()) {
-            throw new RuntimeException(sprintf('Error %d auditing packages. Response: '.$response->getContent(false), $response->getStatusCode()));
+            throw new RuntimeException(\sprintf('Error %d auditing packages. Response: '.$response->getContent(false), $response->getStatusCode()));
         }
 
         foreach ($response->toArray() as $advisory) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapConfigReader.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapConfigReader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapConfigReader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapConfigReader.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
         foreach ($importMapConfig ?? [] as $importName => $data) {
             $validKeys = ['path', 'version', 'type', 'entrypoint', 'url', 'package_specifier', 'downloaded_to', 'preload'];
             if ($invalidKeys = array_diff(array_keys($data), $validKeys)) {
-                throw new \InvalidArgumentException(sprintf('The following keys are not valid for the importmap entry "%s": "%s". Valid keys are: "%s".', $importName, implode('", "', $invalidKeys), implode('", "', $validKeys)));
+                throw new \InvalidArgumentException(\sprintf('The following keys are not valid for the importmap entry "%s": "%s". Valid keys are: "%s".', $importName, implode('", "', $invalidKeys), implode('", "', $validKeys)));
             }
 
             // should solve itself when the config is written again
@@ -70,10 +70,10 @@
 
             if (isset($data['path'])) {
                 if (isset($data['version'])) {
-                    throw new RuntimeException(sprintf('The importmap entry "%s" cannot have both a "path" and "version" option.', $importName));
+                    throw new RuntimeException(\sprintf('The importmap entry "%s" cannot have both a "path" and "version" option.', $importName));
                 }
                 if (isset($data['package_specifier'])) {
-                    throw new RuntimeException(sprintf('The importmap entry "%s" cannot have both a "path" and "package_specifier" option.', $importName));
+                    throw new RuntimeException(\sprintf('The importmap entry "%s" cannot have both a "path" and "package_specifier" option.', $importName));
                 }
 
                 $entries->add(ImportMapEntry::createLocal($importName, $type, $data['path'], $isEntrypoint));
@@ -88,7 +88,7 @@
             }
 
             if (null === $version) {
-                throw new RuntimeException(sprintf('The importmap entry "%s" must have either a "path" or "version" option.', $importName));
+                throw new RuntimeException(\sprintf('The importmap entry "%s" must have either a "path" or "version" option.', $importName));
             }
 
             $packageModuleSpecifier = $data['package_specifier'] ?? $importName;
@@ -125,22 +125,22 @@
 
         $map = class_exists(VarExporter::class) ? VarExporter::export($importMapConfig) : var_export($importMapConfig, true);
         file_put_contents($this->importMapConfigPath, <<<EOF
-        <?php
+            <?php
 
-        /**
-         * Returns the importmap for this application.
-         *
-         * - "path" is a path inside the asset mapper system. Use the
-         *     "debug:asset-map" command to see the full list of paths.
-         *
-         * - "entrypoint" (JavaScript only) set to true for any module that will
-         *     be used as an "entrypoint" (and passed to the importmap() Twig function).
-         *
-         * The "importmap:require" command can be used to add new entries to this file.
-         */
-        return $map;
+            /**
+             * Returns the importmap for this application.
+             *
+             * - "path" is a path inside the asset mapper system. Use the
+             *     "debug:asset-map" command to see the full list of paths.
+             *
+             * - "entrypoint" (JavaScript only) set to true for any module that will
+             *     be used as an "entrypoint" (and passed to the importmap() Twig function).
+             *
+             * The "importmap:require" command can be used to add new entries to this file.
+             */
+            return $map;
 
-        EOF);
+            EOF);
     }
 
     public function findRootImportMapEntry(string $moduleName): ?ImportMapEntry
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapEntries.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapEntries.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapEntries.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapEntries.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
     public function get(string $importName): ImportMapEntry
     {
         if (!$this->has($importName)) {
-            throw new \InvalidArgumentException(sprintf('The importmap entry "%s" does not exist.', $importName));
+            throw new \InvalidArgumentException(\sprintf('The importmap entry "%s" does not exist.', $importName));
         }
 
         return $this->entries[$importName];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -121,26 +121,26 @@
      */
     public function findEagerEntrypointImports(string $entryName): array
     {
-        if ($this->compiledConfigReader->configExists(sprintf(self::ENTRYPOINT_CACHE_FILENAME_PATTERN, $entryName))) {
-            return $this->compiledConfigReader->loadConfig(sprintf(self::ENTRYPOINT_CACHE_FILENAME_PATTERN, $entryName));
+        if ($this->compiledConfigReader->configExists(\sprintf(self::ENTRYPOINT_CACHE_FILENAME_PATTERN, $entryName))) {
+            return $this->compiledConfigReader->loadConfig(\sprintf(self::ENTRYPOINT_CACHE_FILENAME_PATTERN, $entryName));
         }
 
         $rootImportEntries = $this->importMapConfigReader->getEntries();
         if (!$rootImportEntries->has($entryName)) {
-            throw new \InvalidArgumentException(sprintf('The entrypoint "%s" does not exist in "importmap.php".', $entryName));
+            throw new \InvalidArgumentException(\sprintf('The entrypoint "%s" does not exist in "importmap.php".', $entryName));
         }
 
         if (!$rootImportEntries->get($entryName)->isEntrypoint) {
-            throw new \InvalidArgumentException(sprintf('The entrypoint "%s" is not an entry point in "importmap.php". Set "entrypoint" => true to make it available as an entrypoint.', $entryName));
+            throw new \InvalidArgumentException(\sprintf('The entrypoint "%s" is not an entry point in "importmap.php". Set "entrypoint" => true to make it available as an entrypoint.', $entryName));
         }
 
         if ($rootImportEntries->get($entryName)->isRemotePackage()) {
-            throw new \InvalidArgumentException(sprintf('The entrypoint "%s" is a remote package and cannot be used as an entrypoint.', $entryName));
+            throw new \InvalidArgumentException(\sprintf('The entrypoint "%s" is a remote package and cannot be used as an entrypoint.', $entryName));
         }
 
         $asset = $this->findAsset($rootImportEntries->get($entryName)->path);
         if (!$asset) {
-            throw new \InvalidArgumentException(sprintf('The path "%s" of the entrypoint "%s" mentioned in "importmap.php" cannot be found in any asset map paths.', $rootImportEntries->get($entryName)->path, $entryName));
+            throw new \InvalidArgumentException(\sprintf('The path "%s" of the entrypoint "%s" mentioned in "importmap.php" cannot be found in any asset map paths.', $rootImportEntries->get($entryName)->path, $entryName));
         }
 
         return $this->findEagerImports($asset);
@@ -181,7 +181,7 @@
             if ($javaScriptImport->addImplicitlyToImportMap) {
                 if (!$importedAsset = $this->assetMapper->getAsset($javaScriptImport->assetLogicalPath)) {
                     // should not happen at this point, unless something added a bogus JavaScriptImport to this asset
-                    throw new LogicException(sprintf('Cannot find imported JavaScript asset "%s" in asset mapper.', $javaScriptImport->assetLogicalPath));
+                    throw new LogicException(\sprintf('Cannot find imported JavaScript asset "%s" in asset mapper.', $javaScriptImport->assetLogicalPath));
                 }
 
                 $nextEntry = ImportMapEntry::createLocal(
@@ -240,7 +240,7 @@
                 // Follow its imports!
                 if (!$javaScriptAsset = $this->assetMapper->getAsset($javaScriptImport->assetLogicalPath)) {
                     // should not happen at this point, unless something added a bogus JavaScriptImport to this asset
-                    throw new LogicException(sprintf('Cannot find JavaScript asset "%s" (imported in "%s") in asset mapper.', $javaScriptImport->assetLogicalPath, $asset->logicalPath));
+                    throw new LogicException(\sprintf('Cannot find JavaScript asset "%s" (imported in "%s") in asset mapper.', $javaScriptImport->assetLogicalPath, $asset->logicalPath));
                 }
                 $queue[] = $javaScriptAsset;
             }
@@ -253,12 +253,12 @@
     {
         if ($entry->isRemotePackage()) {
             if (!is_file($entry->path)) {
-                throw new LogicException(sprintf('The "%s" vendor asset is missing. Try running the "importmap:install" command.', $entry->importName));
+                throw new LogicException(\sprintf('The "%s" vendor asset is missing. Try running the "importmap:install" command.', $entry->importName));
             }
 
-            throw new LogicException(sprintf('The "%s" vendor file exists locally (%s), but cannot be found in any asset map paths. Be sure the assets vendor directory is an asset mapper path.', $entry->importName, $entry->path));
+            throw new LogicException(\sprintf('The "%s" vendor file exists locally (%s), but cannot be found in any asset map paths. Be sure the assets vendor directory is an asset mapper path.', $entry->importName, $entry->path));
         }
 
-        throw new LogicException(sprintf('The asset "%s" cannot be found in any asset map paths.', $entry->path));
+        throw new LogicException(\sprintf('The asset "%s" cannot be found in any asset map paths.', $entry->path));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapManager.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapManager.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapManager.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapManager.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,8 +68,8 @@
      */
     public static function parsePackageName(string $packageName): ?array
     {
-        // https://regex101.com/r/z1nj7P/1
-        $regex = '/((?P<package>@?[^=@\n]+))(?:@(?P<version>[^=\s\n]+))?(?:=(?P<alias>[^\s\n]+))?/';
+        // https://regex101.com/r/3SkfPg/1
+        $regex = '/((?P<package>@?[^=@\n]+))(?:@(?P<version>[^=\n]+))?(?:=(?P<alias>[^\s\n]+))?/';
 
         if (!preg_match($regex, $packageName, $matches)) {
             return null;
@@ -94,7 +94,7 @@
 
         foreach ($packagesToRemove as $packageName) {
             if (!$currentEntries->has($packageName)) {
-                throw new \InvalidArgumentException(sprintf('Package "%s" listed for removal was not found in "importmap.php".', $packageName));
+                throw new \InvalidArgumentException(\sprintf('Package "%s" listed for removal was not found in "importmap.php".', $packageName));
             }
 
             $this->cleanupPackageFiles($currentEntries->get($packageName));
@@ -112,6 +112,8 @@
                     $entry->packageModuleSpecifier,
                     null,
                     $importName,
+                    null,
+                    $entry->isEntrypoint,
                 );
 
                 // remove it: then it will be re-added
@@ -149,7 +151,7 @@
 
             $path = $requireOptions->path;
             if (!$asset = $this->findAsset($path)) {
-                throw new \LogicException(sprintf('The path "%s" of the package "%s" cannot be found: either pass the logical name of the asset or a relative path starting with "./".', $requireOptions->path, $requireOptions->importName));
+                throw new \LogicException(\sprintf('The path "%s" of the package "%s" cannot be found: either pass the logical name of the asset or a relative path starting with "./".', $requireOptions->path, $requireOptions->importName));
             }
 
             // convert to a relative path (or fallback to the logical path)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapRenderer.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapRenderer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapRenderer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapRenderer.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,14 +73,14 @@
             if ('css' !== $data['type']) {
                 $importMap[$importName] = $path;
                 if ($preload) {
-                    $modulePreloads[] = $path;
+                    $modulePreloads[$path] = $path;
                 }
             } elseif ($preload) {
                 $cssLinks[] = $path;
                 // importmap entry is a noop
                 $importMap[$importName] = 'data:application/javascript,';
             } else {
-                $importMap[$importName] = 'data:application/javascript,'.rawurlencode(sprintf('document.head.appendChild(Object.assign(document.createElement("link"),{rel:"stylesheet",href:"%s"}))', addslashes($path)));
+                $importMap[$importName] = 'data:application/javascript,'.rawurlencode(\sprintf('document.head.appendChild(Object.assign(document.createElement("link"),{rel:"stylesheet",href:"%s"}))', addslashes($path)));
             }
         }
 
@@ -106,7 +106,7 @@
 
         if (false !== $this->polyfillImportName && null === $polyFillPath) {
             if ('es-module-shims' !== $this->polyfillImportName) {
-                throw new \InvalidArgumentException(sprintf('The JavaScript module polyfill was not found in your import map. Either disable the polyfill or run "php bin/console importmap:require "%s"" to install it.', $this->polyfillImportName));
+                throw new \InvalidArgumentException(\sprintf('The JavaScript module polyfill was not found in your import map. Either disable the polyfill or run "php bin/console importmap:require "%s"" to install it.', $this->polyfillImportName));
             }
 
             // a fallback for the default polyfill in case it's not in the importmap
@@ -153,7 +153,7 @@
 
         $attributes += $this->scriptAttributes;
         if (isset($attributes['src']) || isset($attributes['type'])) {
-            throw new \InvalidArgumentException(sprintf('The "src" and "type" attributes are not allowed on the <script> tag rendered by "%s".', self::class));
+            throw new \InvalidArgumentException(\sprintf('The "src" and "type" attributes are not allowed on the <script> tag rendered by "%s".', self::class));
         }
 
         foreach ($attributes as $name => $value) {
@@ -163,7 +163,7 @@
 
                 continue;
             }
-            $attributeString .= sprintf('%s="%s"', $name, $this->escapeAttributeValue($value));
+            $attributeString .= \sprintf('%s="%s"', $name, $this->escapeAttributeValue($value));
         }
 
         return $attributeString;
@@ -171,7 +171,7 @@
 
     private function addWebLinkPreloads(Request $request, array $cssLinks): void
     {
-        $cssPreloadLinks = array_map(fn ($url) => (new Link('preload', $url))->withAttribute('as', 'style'), $cssLinks);
+        $cssPreloadLinks = array_map(static fn ($url) => (new Link('preload', $url))->withAttribute('as', 'style'), $cssLinks);
 
         if (null === $linkProvider = $request->attributes->get('_links')) {
             $request->attributes->set('_links', new GenericLinkProvider($cssPreloadLinks));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapUpdateChecker.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapUpdateChecker.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapUpdateChecker.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapUpdateChecker.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,16 +11,20 @@
 
 namespace Symfony\Component\AssetMapper\ImportMap;
 
+use Symfony\Component\HttpClient\HttpClient;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
 
 class ImportMapUpdateChecker
 {
     private const URL_PACKAGE_METADATA = 'https://registry.npmjs.org/%s';
 
+    private readonly HttpClientInterface $httpClient;
+
     public function __construct(
         private readonly ImportMapConfigReader $importMapConfigReader,
-        private readonly HttpClientInterface $httpClient,
+        ?HttpClientInterface $httpClient = null,
     ) {
+        $this->httpClient = new BatchHttpClient($httpClient ?? HttpClient::create());
     }
 
     /**
@@ -44,20 +48,20 @@
                 continue;
             }
 
-            $responses[$entry->importName] = $this->httpClient->request('GET', sprintf(self::URL_PACKAGE_METADATA, $entry->getPackageName()), ['headers' => ['Accept' => 'application/vnd.npm.install-v1+json']]);
+            $responses[$entry->importName] = $this->httpClient->request('GET', \sprintf(self::URL_PACKAGE_METADATA, $entry->getPackageName()), ['headers' => ['Accept' => 'application/vnd.npm.install-v1+json']]);
         }
 
         foreach ($responses as $importName => $response) {
             $entry = $entries->get($importName);
             if (200 !== $response->getStatusCode()) {
-                throw new \RuntimeException(sprintf('Unable to get latest version for package "%s".', $entry->getPackageName()));
+                throw new \RuntimeException(\sprintf('Unable to get latest version for package "%s".', $entry->getPackageName()));
             }
             $updateInfo = new PackageUpdateInfo($entry->getPackageName(), $entry->version);
             try {
                 $updateInfo->latestVersion = json_decode($response->getContent(), true)['dist-tags']['latest'];
                 $updateInfo->updateType = $this->getUpdateType($updateInfo->currentVersion, $updateInfo->latestVersion);
             } catch (\Exception $e) {
-                throw new \RuntimeException(sprintf('Unable to get latest version for package "%s".', $entry->getPackageName()), 0, $e);
+                throw new \RuntimeException(\sprintf('Unable to get latest version for package "%s".', $entry->getPackageName()), 0, $e);
             }
             $updateInfos[$importName] = $updateInfo;
         }
@@ -88,6 +92,6 @@
             return PackageUpdateInfo::UPDATE_TYPE_PATCH;
         }
 
-        throw new \LogicException(sprintf('Unable to determine update type for "%s" and "%s".', $currentVersion, $latestVersion));
+        throw new \LogicException(\sprintf('Unable to determine update type for "%s" and "%s".', $currentVersion, $latestVersion));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapVersionChecker.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapVersionChecker.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapVersionChecker.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/ImportMapVersionChecker.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,14 +21,14 @@
 {
     private const PACKAGE_METADATA_PATTERN = 'https://registry.npmjs.org/%package%/%version%';
 
-    private HttpClientInterface $httpClient;
+    private readonly HttpClientInterface $httpClient;
 
     public function __construct(
         private ImportMapConfigReader $importMapConfigReader,
         private RemotePackageDownloader $packageDownloader,
         ?HttpClientInterface $httpClient = null,
     ) {
-        $this->httpClient = $httpClient ?? HttpClient::create();
+        $this->httpClient = new BatchHttpClient($httpClient ?? HttpClient::create());
     }
 
     /**
@@ -106,7 +106,7 @@
             $response = $e->getResponse();
             $packageNames = implode('", "', array_column($errors, 0));
 
-            throw new RuntimeException(sprintf('Error %d finding metadata for package "%s". Response: ', $response->getStatusCode(), $packageNames).$response->getContent(false), 0, $e);
+            throw new RuntimeException(\sprintf('Error %d finding metadata for package "%s". Response: ', $response->getStatusCode(), $packageNames).$response->getContent(false), 0, $e);
         }
 
         return $problems;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/PackageVersionProblem.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/PackageVersionProblem.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/PackageVersionProblem.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/PackageVersionProblem.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,7 @@
         public readonly string $packageName,
         public readonly string $dependencyPackageName,
         public readonly string $requiredVersionConstraint,
-        public readonly ?string $installedVersion
+        public readonly ?string $installedVersion,
     ) {
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/RemotePackageDownloader.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/RemotePackageDownloader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/RemotePackageDownloader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/RemotePackageDownloader.php	2026-05-20 10:56:49.000000000 +0200
@@ -69,7 +69,7 @@
         $downloadedPackages = [];
         foreach ($remoteEntriesToDownload as $package => $entry) {
             if (!isset($contents[$package])) {
-                throw new \LogicException(sprintf('The package "%s" was not downloaded.', $package));
+                throw new \LogicException(\sprintf('The package "%s" was not downloaded.', $package));
             }
 
             $this->remotePackageStorage->save($entry, $contents[$package]['content']);
@@ -88,7 +88,7 @@
         }
 
         if ($contents) {
-            throw new \LogicException(sprintf('The following packages were unexpectedly downloaded: "%s".', implode('", "', array_keys($contents))));
+            throw new \LogicException(\sprintf('The following packages were unexpectedly downloaded: "%s".', implode('", "', array_keys($contents))));
         }
 
         $this->saveInstalled($newInstalled);
@@ -103,7 +103,7 @@
     {
         $installed = $this->loadInstalled();
         if (!isset($installed[$importName])) {
-            throw new \InvalidArgumentException(sprintf('The "%s" vendor asset is missing. Run "php bin/console importmap:install".', $importName));
+            throw new \InvalidArgumentException(\sprintf('The "%s" vendor asset is missing. Run "php bin/console importmap:install".', $importName));
         }
 
         return $installed[$importName]['dependencies'];
@@ -128,11 +128,11 @@
 
         foreach ($installed as $package => $data) {
             if (!isset($data['version'])) {
-                throw new \InvalidArgumentException(sprintf('The package "%s" is missing its version.', $package));
+                throw new \InvalidArgumentException(\sprintf('The package "%s" is missing its version.', $package));
             }
 
             if (!isset($data['dependencies'])) {
-                throw new \LogicException(sprintf('The package "%s" is missing its dependencies.', $package));
+                throw new \LogicException(\sprintf('The package "%s" is missing its dependencies.', $package));
             }
 
             if (!isset($data['extraFiles'])) {
@@ -146,7 +146,7 @@
     private function saveInstalled(array $installed): void
     {
         $this->installed = $installed;
-        file_put_contents($this->remotePackageStorage->getStorageDir().'/installed.php', sprintf('<?php return %s;', var_export($installed, true)));
+        file_put_contents($this->remotePackageStorage->getStorageDir().'/installed.php', \sprintf('<?php return %s;', var_export($installed, true)));
     }
 
     private function areAllExtraFilesDownloaded(ImportMapEntry $entry, array $extraFilenames): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/RemotePackageStorage.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/RemotePackageStorage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/RemotePackageStorage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/RemotePackageStorage.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function isDownloaded(ImportMapEntry $entry): bool
     {
         if (!$entry->isRemotePackage()) {
-            throw new \InvalidArgumentException(sprintf('The entry "%s" is not a remote package.', $entry->importName));
+            throw new \InvalidArgumentException(\sprintf('The entry "%s" is not a remote package.', $entry->importName));
         }
 
         return is_file($this->getDownloadPath($entry->packageModuleSpecifier, $entry->type));
@@ -39,7 +39,7 @@
     public function isExtraFileDownloaded(ImportMapEntry $entry, string $extraFilename): bool
     {
         if (!$entry->isRemotePackage()) {
-            throw new \InvalidArgumentException(sprintf('The entry "%s" is not a remote package.', $entry->importName));
+            throw new \InvalidArgumentException(\sprintf('The entry "%s" is not a remote package.', $entry->importName));
         }
 
         return is_file($this->getExtraFileDownloadPath($entry, $extraFilename));
@@ -48,28 +48,28 @@
     public function save(ImportMapEntry $entry, string $contents): void
     {
         if (!$entry->isRemotePackage()) {
-            throw new \InvalidArgumentException(sprintf('The entry "%s" is not a remote package.', $entry->importName));
+            throw new \InvalidArgumentException(\sprintf('The entry "%s" is not a remote package.', $entry->importName));
         }
 
         $vendorPath = $this->getDownloadPath($entry->packageModuleSpecifier, $entry->type);
 
-        @mkdir(\dirname($vendorPath), 0777, true);
+        @mkdir(\dirname($vendorPath), 0o777, true);
         if (false === @file_put_contents($vendorPath, $contents)) {
-            throw new RuntimeException(error_get_last()['message'] ?? sprintf('Failed to write file "%s".', $vendorPath));
+            throw new RuntimeException(error_get_last()['message'] ?? \sprintf('Failed to write file "%s".', $vendorPath));
         }
     }
 
     public function saveExtraFile(ImportMapEntry $entry, string $extraFilename, string $contents): void
     {
         if (!$entry->isRemotePackage()) {
-            throw new \InvalidArgumentException(sprintf('The entry "%s" is not a remote package.', $entry->importName));
+            throw new \InvalidArgumentException(\sprintf('The entry "%s" is not a remote package.', $entry->importName));
         }
 
         $vendorPath = $this->getExtraFileDownloadPath($entry, $extraFilename);
 
-        @mkdir(\dirname($vendorPath), 0777, true);
+        @mkdir(\dirname($vendorPath), 0o777, true);
         if (false === @file_put_contents($vendorPath, $contents)) {
-            throw new RuntimeException(error_get_last()['message'] ?? sprintf('Failed to write file "%s".', $vendorPath));
+            throw new RuntimeException(error_get_last()['message'] ?? \sprintf('Failed to write file "%s".', $vendorPath));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Symfony\Component\AssetMapper\Compiler\CssAssetUrlCompiler;
 use Symfony\Component\AssetMapper\Exception\RuntimeException;
+use Symfony\Component\AssetMapper\ImportMap\BatchHttpClient;
 use Symfony\Component\AssetMapper\ImportMap\ImportMapEntry;
 use Symfony\Component\AssetMapper\ImportMap\ImportMapType;
 use Symfony\Component\AssetMapper\ImportMap\PackageRequireOptions;
@@ -32,12 +33,12 @@
 
     private const ES_MODULE_SHIMS = 'es-module-shims';
 
-    private HttpClientInterface $httpClient;
+    private readonly HttpClientInterface $httpClient;
 
     public function __construct(
         ?HttpClientInterface $httpClient = null,
     ) {
-        $this->httpClient = $httpClient ?? HttpClient::create();
+        $this->httpClient = new BatchHttpClient($httpClient ?? HttpClient::create());
     }
 
     public function resolvePackages(array $packagesToRequire): array
@@ -58,7 +59,7 @@
 
             [$packageName, $filePath] = ImportMapEntry::splitPackageNameAndFilePath($packageSpecifier);
 
-            $versionUrl = sprintf(self::URL_PATTERN_VERSION, $packageName);
+            $versionUrl = \sprintf(self::URL_PATTERN_VERSION, $packageName);
             if (null !== $options->versionConstraint) {
                 $versionUrl .= '?specifier='.urlencode($options->versionConstraint);
             }
@@ -77,15 +78,15 @@
 
             $version = $response->toArray()['version'];
             if (null === $version) {
-                throw new RuntimeException(sprintf('Unable to find the latest version for package "%s" - try specifying the version manually.', $packageName));
+                throw new RuntimeException(\sprintf('Unable to find the latest version for package "%s" - try specifying the version manually.', $packageName));
             }
 
             $pattern = $this->resolveUrlPattern($packageName, $filePath);
-            $requiredPackages[$i][1] = $this->httpClient->request('GET', sprintf($pattern, $packageName, $version, $filePath));
+            $requiredPackages[$i][1] = $this->httpClient->request('GET', \sprintf($pattern, $packageName, $version, $filePath));
             $requiredPackages[$i][4] = $version;
 
             if (!$filePath) {
-                $entrypointResponses[$packageName] = [$this->httpClient->request('GET', sprintf(self::URL_PATTERN_ENTRYPOINT, $packageName, $version)), $version];
+                $entrypointResponses[$packageName] = [$this->httpClient->request('GET', \sprintf(self::URL_PATTERN_ENTRYPOINT, $packageName, $version)), $version];
             }
         }
 
@@ -95,7 +96,7 @@
             $response = $e->getResponse();
             $packages = implode('", "', array_column($findVersionErrors, 0));
 
-            throw new RuntimeException(sprintf('Error %d finding version from jsDelivr for the following packages: "%s". Check your package names. Response: ', $response->getStatusCode(), $packages).$response->getContent(false), 0, $e);
+            throw new RuntimeException(\sprintf('Error %d finding version from jsDelivr for the following packages: "%s". Check your package names. Response: ', $response->getStatusCode(), $packages).$response->getContent(false), 0, $e);
         }
 
         // process the contents of each package & add the resolved package
@@ -120,7 +121,7 @@
             $response = $e->getResponse();
             $packages = implode('", "', array_column($getContentErrors, 0));
 
-            throw new RuntimeException(sprintf('Error %d requiring packages from jsDelivr for "%s". Check your package names. Response: ', $response->getStatusCode(), $packages).$response->getContent(false), 0, $e);
+            throw new RuntimeException(\sprintf('Error %d requiring packages from jsDelivr for "%s". Check your package names. Response: ', $response->getStatusCode(), $packages).$response->getContent(false), 0, $e);
         }
 
         // process any pending CSS entrypoints
@@ -148,7 +149,7 @@
             $response = $e->getResponse();
             $packages = implode('", "', array_column($entrypointErrors, 0));
 
-            throw new RuntimeException(sprintf('Error %d checking for a CSS entrypoint for "%s". Response: ', $response->getStatusCode(), $packages).$response->getContent(false), 0, $e);
+            throw new RuntimeException(\sprintf('Error %d checking for a CSS entrypoint for "%s". Response: ', $response->getStatusCode(), $packages).$response->getContent(false), 0, $e);
         }
 
         if ($packagesToRequire) {
@@ -168,7 +169,7 @@
         $responses = [];
         foreach ($importMapEntries as $package => $entry) {
             if (!$entry->isRemotePackage()) {
-                throw new \InvalidArgumentException(sprintf('The entry "%s" is not a remote package.', $entry->importName));
+                throw new \InvalidArgumentException(\sprintf('The entry "%s" is not a remote package.', $entry->importName));
             }
 
             $pattern = $this->resolveUrlPattern(
@@ -176,7 +177,7 @@
                 $entry->getPackagePathString(),
                 $entry->type,
             );
-            $url = sprintf($pattern, $entry->getPackageName(), $entry->version, $entry->getPackagePathString());
+            $url = \sprintf($pattern, $entry->getPackageName(), $entry->version, $entry->getPackagePathString());
 
             $responses[$package] = [$this->httpClient->request('GET', $url), $entry];
         }
@@ -184,6 +185,7 @@
         $errors = [];
         $contents = [];
         $extraFileResponses = [];
+        /** @var ImportMapEntry $entry */
         foreach ($responses as $package => [$response, $entry]) {
             if (200 !== $response->getStatusCode()) {
                 $errors[] = [$package, $response];
@@ -196,7 +198,6 @@
 
             $dependencies = [];
             $extraFiles = [];
-            /* @var ImportMapEntry $entry */
             $contents[$package] = [
                 'content' => $this->makeImportsBare($response->getContent(), $dependencies, $extraFiles, $entry->type, $entry->getPackagePathString()),
                 'dependencies' => $dependencies,
@@ -206,7 +207,7 @@
             if (0 !== \count($extraFiles)) {
                 $extraFileResponses[$package] = [];
                 foreach ($extraFiles as $extraFile) {
-                    $extraFileResponses[$package][] = [$this->httpClient->request('GET', sprintf(self::URL_PATTERN_DIST_CSS, $entry->getPackageName(), $entry->version, $extraFile)), $extraFile, $entry->getPackageName(), $entry->version];
+                    $extraFileResponses[$package][] = [$this->httpClient->request('GET', \sprintf(self::URL_PATTERN_DIST_CSS, $entry->getPackageName(), $entry->version, $extraFile)), $extraFile, $entry->getPackageName(), $entry->version];
                 }
             }
 
@@ -221,7 +222,7 @@
             $response = $e->getResponse();
             $packages = implode('", "', array_column($errors, 0));
 
-            throw new RuntimeException(sprintf('Error %d downloading packages from jsDelivr for "%s". Check your package names. Response: ', $response->getStatusCode(), $packages).$response->getContent(false), 0, $e);
+            throw new RuntimeException(\sprintf('Error %d downloading packages from jsDelivr for "%s". Check your package names. Response: ', $response->getStatusCode(), $packages).$response->getContent(false), 0, $e);
         }
 
         $extraFileErrors = [];
@@ -246,7 +247,7 @@
                 if (0 !== \count($extraFiles)) {
                     $extraFileResponses[$package] = [];
                     foreach ($extraFiles as $newExtraFile) {
-                        $extraFileResponses[$package][] = [$this->httpClient->request('GET', sprintf(self::URL_PATTERN_DIST_CSS, $packageName, $version, $newExtraFile)), $newExtraFile, $packageName, $version];
+                        $extraFileResponses[$package][] = [$this->httpClient->request('GET', \sprintf(self::URL_PATTERN_DIST_CSS, $packageName, $version, $newExtraFile)), $newExtraFile, $packageName, $version];
                     }
                 }
             }
@@ -262,7 +263,7 @@
             $response = $e->getResponse();
             $packages = implode('", "', array_column($extraFileErrors, 0));
 
-            throw new RuntimeException(sprintf('Error %d downloading extra imported files from jsDelivr for "%s". Response: ', $response->getStatusCode(), $packages).$response->getContent(false), 0, $e);
+            throw new RuntimeException(\sprintf('Error %d downloading extra imported files from jsDelivr for "%s". Response: ', $response->getStatusCode(), $packages).$response->getContent(false), 0, $e);
         }
 
         return $contents;
@@ -300,12 +301,12 @@
     private function makeImportsBare(string $content, array &$dependencies, array &$extraFiles, ImportMapType $type, string $sourceFilePath): string
     {
         if (ImportMapType::JS === $type) {
-            $content = preg_replace_callback(self::IMPORT_REGEX, function ($matches) use (&$dependencies) {
+            $content = preg_replace_callback(self::IMPORT_REGEX, static function ($matches) use (&$dependencies) {
                 $packageName = $matches[2].$matches[4]; // add the path if any
                 $dependencies[] = $packageName;
 
                 // replace the "/npm/package@version/+esm" with "package@version"
-                return str_replace($matches[1], sprintf('"%s"', $packageName), $matches[0]);
+                return str_replace($matches[1], \sprintf('"%s"', $packageName), $matches[0]);
             }, $content);
 
             // source maps are not also downloaded - so remove the sourceMappingURL
@@ -318,7 +319,7 @@
         }
 
         preg_match_all(CssAssetUrlCompiler::ASSET_URL_PATTERN, $content, $matches);
-        foreach ($matches[1] as $path) {
+        foreach ($matches[2] as $path) {
             if (str_starts_with($path, 'data:')) {
                 continue;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperCompilerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperCompilerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperCompilerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperCompilerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
 {
     public function testCompile()
     {
-        $compiler1 = new class() implements AssetCompilerInterface {
+        $compiler1 = new class implements AssetCompilerInterface {
             public function supports(MappedAsset $asset): bool
             {
                 return 'css' === $asset->publicExtension;
@@ -33,7 +33,7 @@
             }
         };
 
-        $compiler2 = new class() implements AssetCompilerInterface {
+        $compiler2 = new class implements AssetCompilerInterface {
             public function supports(MappedAsset $asset): bool
             {
                 return 'js' === $asset->publicExtension;
@@ -45,7 +45,7 @@
             }
         };
 
-        $compiler3 = new class() implements AssetCompilerInterface {
+        $compiler3 = new class implements AssetCompilerInterface {
             public function supports(MappedAsset $asset): bool
             {
                 return 'js' === $asset->publicExtension;
@@ -59,10 +59,10 @@
 
         $compiler = new AssetMapperCompiler(
             [$compiler1, $compiler2, $compiler3],
-            fn () => $this->createMock(AssetMapperInterface::class),
+            fn () => $this->createStub(AssetMapperInterface::class),
         );
         $asset = new MappedAsset('foo.js', publicPathWithoutDigest: '/assets/foo.js');
-        $actualContents = $compiler->compile('starting contents', $asset, $this->createMock(AssetMapperInterface::class));
+        $actualContents = $compiler->compile('starting contents', $asset);
         $this->assertSame('starting contents compiler2 called compiler3 called', $actualContents);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperDevServerSubscriberFunctionalTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperDevServerSubscriberFunctionalTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperDevServerSubscriberFunctionalTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperDevServerSubscriberFunctionalTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,10 +26,12 @@
         $this->assertSame(200, $response->getStatusCode());
         $this->assertInstanceOf(BinaryFileResponse::class, $response);
         $this->assertSame(<<<EOF
-        /* file1.css */
-        body {}
+            /* file1.css */
+            body {}
 
-        EOF, $response->getFile()->getContent());
+            EOF,
+            $response->getFile()->getContent()
+        );
         $this->assertSame('"b3445cb7a86a0795a7af7f2004498aef"', $response->headers->get('ETag'));
         $this->assertSame('immutable, max-age=604800, public', $response->headers->get('Cache-Control'));
         $this->assertTrue($response->headers->has('X-Assets-Dev'));
@@ -43,10 +45,12 @@
         $response = $client->getResponse();
         $this->assertSame(200, $response->getStatusCode());
         $this->assertSame(<<<EOF
-        /* voilà.css */
-        body {}
+            /* voilà.css */
+            body {}
 
-        EOF, $client->getInternalResponse()->getContent());
+            EOF,
+            $client->getInternalResponse()->getContent()
+        );
     }
 
     public function test404OnUnknownAsset()
@@ -77,10 +81,12 @@
         $this->assertSame(200, $response->getStatusCode());
         $this->assertInstanceOf(BinaryFileResponse::class, $response);
         $this->assertSame(<<<EOF
-        /* already-abcdefVWXYZ0123456789.digested.css */
-        body {}
+            /* already-abcdefVWXYZ0123456789.digested.css */
+            body {}
 
-        EOF, $response->getFile()->getContent());
+            EOF,
+            $response->getFile()->getContent()
+        );
     }
 
     protected static function getKernelClass(): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperRepositoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperRepositoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperRepositoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperRepositoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -138,7 +138,7 @@
             '*/*3.css',
             '*/*.digested.*',
         ];
-        $excludedGlobs = array_map(function ($pattern) {
+        $excludedGlobs = array_map(static function ($pattern) {
             // globbed equally in FrameworkExtension
             return Glob::toRegex($pattern, true, false);
         }, $excludedPatterns);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/AssetMapperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,7 +60,7 @@
 
         $this->mappedAssetFactory->expects($this->exactly(8))
             ->method('createMappedAsset')
-            ->willReturnCallback(function (string $logicalPath, string $filePath) {
+            ->willReturnCallback(static function (string $logicalPath, string $filePath) {
                 $asset = new MappedAsset($logicalPath, publicPath: '/final-assets/'.$logicalPath);
 
                 return $asset;
@@ -90,12 +90,12 @@
     {
         $dirs = ['dir1' => '', 'dir2' => '', 'dir3' => ''];
         $repository = new AssetMapperRepository($dirs, __DIR__.'/Fixtures');
-        $compiledConfigReader = $this->createMock(CompiledAssetMapperConfigReader::class);
-        $compiledConfigReader->expects($this->any())
+        $compiledConfigReader = $this->createStub(CompiledAssetMapperConfigReader::class);
+        $compiledConfigReader
             ->method('configExists')
             ->with(AssetMapper::MANIFEST_FILE_NAME)
             ->willReturn(true);
-        $compiledConfigReader->expects($this->any())
+        $compiledConfigReader
             ->method('loadConfig')
             ->willReturn(['file4.js' => '/final-assets/file4.checksumfrommanifest.js']);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/Command/AssetMapperCompileCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/Command/AssetMapperCompileCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/Command/AssetMapperCompileCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/Command/AssetMapperCompileCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,10 +62,12 @@
 
         $this->assertFileExists($targetBuildDir.'/subdir/file5-f4fdc37375c7f5f2629c5659a0579967.js');
         $this->assertSame(<<<EOF
-        import '../file4.js';
-        console.log('file5.js');
+            import '../file4.js';
+            console.log('file5.js');
 
-        EOF, file_get_contents($targetBuildDir.'/subdir/file5-f4fdc37375c7f5f2629c5659a0579967.js'));
+            EOF,
+            file_get_contents($targetBuildDir.'/subdir/file5-f4fdc37375c7f5f2629c5659a0579967.js')
+        );
 
         $finder = new Finder();
         $finder->in($targetBuildDir)->files();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/CssAssetUrlCompilerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/CssAssetUrlCompilerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/CssAssetUrlCompilerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/CssAssetUrlCompilerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
 namespace Symfony\Component\AssetMapper\Tests\Compiler;
 
 use PHPUnit\Framework\TestCase;
-use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
 use Symfony\Component\AssetMapper\AssetMapperInterface;
 use Symfony\Component\AssetMapper\Compiler\AssetCompilerInterface;
 use Symfony\Component\AssetMapper\Compiler\CssAssetUrlCompiler;
@@ -25,10 +25,10 @@
      */
     public function testCompile(string $input, string $expectedOutput, array $expectedDependencies)
     {
-        $assetMapper = $this->createMock(AssetMapperInterface::class);
-        $assetMapper->expects($this->any())
+        $assetMapper = $this->createStub(AssetMapperInterface::class);
+        $assetMapper
             ->method('getAssetFromSourcePath')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 return match ($path) {
                     '/project/assets/images/foo.png' => new MappedAsset('images/foo.png',
                         publicPathWithoutDigest: '/assets/images/foo.png',
@@ -45,7 +45,7 @@
         $compiler = new CssAssetUrlCompiler();
         $asset = new MappedAsset('styles.css', '/project/assets/styles.css', '/assets/styles.css');
         $this->assertSame($expectedOutput, $compiler->compile($input, $asset, $assetMapper));
-        $assetDependencyLogicalPaths = array_map(fn (MappedAsset $dependency) => $dependency->logicalPath, $asset->getDependencies());
+        $assetDependencyLogicalPaths = array_map(static fn (MappedAsset $dependency) => $dependency->logicalPath, $asset->getDependencies());
         $this->assertSame($expectedDependencies, $assetDependencyLogicalPaths);
     }
 
@@ -62,14 +62,12 @@
                 body {
                     background: url("images/foo.png");
                 }
-                EOF
-            ,
+                EOF,
             'expectedOutput' => <<<EOF
                 body {
                     background: url("images/foo.123456.png");
                 }
-                EOF
-            ,
+                EOF,
             'expectedDependencies' => ['images/foo.png'],
         ];
 
@@ -144,14 +142,88 @@
             }',
             'expectedDependencies' => ['images/foo.png'],
         ];
+
+        yield 'import_without_url_double_quotes' => [
+            'input' => '@import "more-styles.css"',
+            'expectedOutput' => '@import "more-styles.abcd123.css"',
+            'expectedDependencies' => ['more-styles.css'],
+        ];
+
+        yield 'import_without_url_single_quotes' => [
+            'input' => "@import 'more-styles.css'",
+            'expectedOutput' => '@import "more-styles.abcd123.css"',
+            'expectedDependencies' => ['more-styles.css'],
+        ];
+
+        yield 'import_without_url_with_media_query' => [
+            'input' => '@import "more-styles.css" screen',
+            'expectedOutput' => '@import "more-styles.abcd123.css" screen',
+            'expectedDependencies' => ['more-styles.css'],
+        ];
+
+        yield 'import_without_url_with_media_query_single_quotes' => [
+            'input' => "@import 'more-styles.css' screen and (max-width: 600px)",
+            'expectedOutput' => '@import "more-styles.abcd123.css" screen and (max-width: 600px)',
+            'expectedDependencies' => ['more-styles.css'],
+        ];
+
+        yield 'import_without_url_with_dot_slash' => [
+            'input' => '@import "./more-styles.css"',
+            'expectedOutput' => '@import "more-styles.abcd123.css"',
+            'expectedDependencies' => ['more-styles.css'],
+        ];
+
+        yield 'import_without_url_with_dot_dot_slash' => [
+            'input' => '@import "../assets/more-styles.css"',
+            'expectedOutput' => '@import "more-styles.abcd123.css"',
+            'expectedDependencies' => ['more-styles.css'],
+        ];
+
+        yield 'import_without_url_absolute_path_ignored' => [
+            'input' => '@import "/path/to/more-styles.css"',
+            'expectedOutput' => '@import "/path/to/more-styles.css"',
+            'expectedDependencies' => [],
+        ];
+
+        yield 'import_without_url_http_url_ignored' => [
+            'input' => '@import "https://cdn.io/more-styles.css"',
+            'expectedOutput' => '@import "https://cdn.io/more-styles.css"',
+            'expectedDependencies' => [],
+        ];
+
+        yield 'import_without_url_data_uri_ignored' => [
+            'input' => '@import "data:text/css;base64,LmJvZHkgeyBiYWNrZ3JvdW5kOiByZWQ7IH0="',
+            'expectedOutput' => '@import "data:text/css;base64,LmJvZHkgeyBiYWNrZ3JvdW5kOiByZWQ7IH0="',
+            'expectedDependencies' => [],
+        ];
+
+        yield 'import_without_url_in_comments_ignored' => [
+            'input' => 'body { background: url("images/foo.png"); } /* @import "more-styles.css" */',
+            'expectedOutput' => 'body { background: url("images/foo.123456.png"); } /* @import "more-styles.css" */',
+            'expectedDependencies' => ['images/foo.png'],
+        ];
+
+        yield 'mixed_url_and_import_without_url' => [
+            'input' => <<<EOF
+                @import "more-styles.css";
+                body { background: url("images/foo.png"); }
+                @import url(./more-styles.css);
+                EOF,
+            'expectedOutput' => <<<EOF
+                @import "more-styles.abcd123.css";
+                body { background: url("images/foo.123456.png"); }
+                @import url("more-styles.abcd123.css");
+                EOF,
+            'expectedDependencies' => ['more-styles.css', 'images/foo.png', 'more-styles.css'],
+        ];
     }
 
     public function testCompileFindsRelativeFilesViaSourcePath()
     {
-        $assetMapper = $this->createMock(AssetMapperInterface::class);
-        $assetMapper->expects($this->any())
+        $assetMapper = $this->createStub(AssetMapperInterface::class);
+        $assetMapper
             ->method('getAssetFromSourcePath')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 return match ($path) {
                     '/project/assets/images/foo.png' => new MappedAsset('images/foo.png',
                         publicPathWithoutDigest: '/assets/images/foo.png',
@@ -194,8 +266,8 @@
 
         $asset = new MappedAsset($sourceLogicalName, '/path/to/styles.css');
 
-        $compiler = new CssAssetUrlCompiler(AssetCompilerInterface::MISSING_IMPORT_STRICT, $this->createMock(LoggerInterface::class));
-        $this->assertSame($input, $compiler->compile($input, $asset, $this->createMock(AssetMapperInterface::class)));
+        $compiler = new CssAssetUrlCompiler(AssetCompilerInterface::MISSING_IMPORT_STRICT, new NullLogger());
+        $this->assertSame($input, $compiler->compile($input, $asset, $this->createStub(AssetMapperInterface::class)));
     }
 
     public static function provideStrictModeTests(): iterable
@@ -223,5 +295,23 @@
             'input' => "background-image: url(\'data:image/png;base64,iVBORw0KG\')",
             'expectedExceptionMessage' => null,
         ];
+
+        yield 'importing_non_existent_file_without_url_throws_exception' => [
+            'sourceLogicalName' => 'styles.css',
+            'input' => '@import "non-existent.css"',
+            'expectedExceptionMessage' => 'Unable to find asset "non-existent.css" referenced in "/path/to/styles.css".',
+        ];
+
+        yield 'importing_absolute_file_path_without_url_is_ignored' => [
+            'sourceLogicalName' => 'styles.css',
+            'input' => '@import "/path/to/non-existent.css"',
+            'expectedExceptionMessage' => null,
+        ];
+
+        yield 'importing_a_url_without_url_is_ignored' => [
+            'sourceLogicalName' => 'styles.css',
+            'input' => '@import "https://cdn.io/non-existent.css"',
+            'expectedExceptionMessage' => null,
+        ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/JavaScriptImportPathCompilerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/JavaScriptImportPathCompilerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/JavaScriptImportPathCompilerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/JavaScriptImportPathCompilerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
 namespace Symfony\Component\AssetMapper\Tests\Compiler;
 
 use PHPUnit\Framework\TestCase;
-use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
 use Symfony\Component\AssetMapper\AssetMapperInterface;
 use Symfony\Component\AssetMapper\Compiler\AssetCompilerInterface;
 use Symfony\Component\AssetMapper\Compiler\JavaScriptImportPathCompiler;
@@ -32,10 +32,10 @@
     {
         $asset = new MappedAsset('app.js', '/project/assets/app.js', publicPathWithoutDigest: '/assets/app.js');
 
-        $importMapConfigReader = $this->createMock(ImportMapConfigReader::class);
-        $importMapConfigReader->expects($this->any())
+        $importMapConfigReader = $this->createStub(ImportMapConfigReader::class);
+        $importMapConfigReader
             ->method('findRootImportMapEntry')
-            ->willReturnCallback(function ($importName) {
+            ->willReturnCallback(static function ($importName) {
                 return match ($importName) {
                     'module_in_importmap_local_asset' => ImportMapEntry::createLocal('module_in_importmap_local_asset', ImportMapType::JS, 'module_in_importmap_local_asset.js', false),
                     'module_in_importmap_remote' => ImportMapEntry::createRemote('module_in_importmap_remote', ImportMapType::JS, './vendor/module_in_importmap_remote.js', '1.2.3', 'could_be_anything', false),
@@ -43,29 +43,29 @@
                     default => null,
                 };
             });
-        $importMapConfigReader->expects($this->any())
+        $importMapConfigReader
             ->method('convertPathToFilesystemPath')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 return match ($path) {
                     './vendor/module_in_importmap_remote.js' => '/project/assets/vendor/module_in_importmap_remote.js',
                     '/project/assets/vendor/@popperjs/core.js' => '/project/assets/vendor/@popperjs/core.js',
-                    default => throw new \RuntimeException(sprintf('Unexpected path "%s"', $path)),
+                    default => throw new \RuntimeException(\sprintf('Unexpected path "%s"', $path)),
                 };
             });
 
-        $assetMapper = $this->createMock(AssetMapperInterface::class);
-        $assetMapper->expects($this->any())
+        $assetMapper = $this->createStub(AssetMapperInterface::class);
+        $assetMapper
             ->method('getAsset')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 return match ($path) {
                     'module_in_importmap_local_asset.js' => new MappedAsset('module_in_importmap_local_asset.js', '/can/be/anything.js', publicPathWithoutDigest: '/assets/module_in_importmap_local_asset.js'),
                     default => null,
                 };
             });
 
-        $assetMapper->expects($this->any())
+        $assetMapper
             ->method('getAssetFromSourcePath')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 return match ($path) {
                     '/project/assets/foo.js' => new MappedAsset('foo.js', '/can/be/anything.js', publicPathWithoutDigest: '/assets/foo.js'),
                     '/project/assets/bootstrap.js' => new MappedAsset('bootstrap.js', '/can/be/anything.js', publicPathWithoutDigest: '/assets/bootstrap.js'),
@@ -95,18 +95,18 @@
     {
         yield 'standard_symfony_app_js' => [
             'input' => <<<EOF
-            import './bootstrap.js';
+                import './bootstrap.js';
 
-            /*
-             * Welcome to your app's main JavaScript file!
-             *
-             * This file will be included onto the page via the importmap() Twig function,
-             * which should already be in your base.html.twig.
-             */
-            import './styles/app.css';
+                /*
+                 * Welcome to your app's main JavaScript file!
+                 *
+                 * This file will be included onto the page via the importmap() Twig function,
+                 * which should already be in your base.html.twig.
+                 */
+                import './styles/app.css';
 
-            console.log('This log comes from assets/app.js - welcome to AssetMapper! 🎉');
-            EOF,
+                console.log('This log comes from assets/app.js - welcome to AssetMapper! 🎉');
+                EOF,
             'expectedJavaScriptImports' => [
                 '/assets/bootstrap.js' => ['lazy' => false, 'asset' => 'bootstrap.js', 'add' => true],
                 '/assets/styles/app.css' => ['lazy' => false, 'asset' => 'styles/app.css', 'add' => true],
@@ -122,8 +122,7 @@
             'input' => <<<EOF
                 const fun;
                 import("./other.js");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => ['/assets/other.js' => ['lazy' => true, 'asset' => 'other.js', 'add' => true]],
         ];
 
@@ -183,8 +182,7 @@
                     myFunction,
                     helperFunction
                 } from "./other.js";
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => ['/assets/other.js' => ['lazy' => false, 'asset' => 'other.js', 'add' => true]],
         ];
 
@@ -240,8 +238,7 @@
             'input' => <<<EOF
                 const fun;
                 // import("./other.js");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => [],
         ];
 
@@ -249,8 +246,7 @@
             'input' => <<<EOF
                 const fun;
                  // import("./other.js");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => [],
         ];
 
@@ -258,8 +254,7 @@
             'input' => <<<EOF
                 const fun;
                 // this is not going to be parsed import("./other.js");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => [],
         ];
 
@@ -267,8 +262,7 @@
             'input' => <<<EOF
                 const fun;
                 console.log('// I am not really a comment'); import("./other.js");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => ['/assets/other.js' => ['lazy' => true, 'asset' => 'other.js', 'add' => true]],
         ];
 
@@ -276,8 +270,7 @@
             'input' => <<<EOF
                 const fun;
                 /* comment */ import("./other.js");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => ['/assets/other.js' => ['lazy' => true, 'asset' => 'other.js', 'add' => true]],
         ];
 
@@ -285,8 +278,7 @@
             'input' => <<<EOF
                 const fun;
                     /* comment import("./other.js"); */
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => [],
         ];
 
@@ -294,8 +286,7 @@
             'input' => <<<EOF
                 const fun;
                     /* comment import("./other.js");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => ['/assets/other.js' => ['lazy' => true, 'asset' => 'other.js', 'add' => true]],
         ];
 
@@ -305,8 +296,7 @@
                     /* comment import("./other.js");
                     and more
                     */
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => [],
         ];
 
@@ -314,8 +304,7 @@
             'input' => <<<EOF
                 const fun;
                     console.log('/* not a comment'); import("./other.js");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => ['/assets/other.js' => ['lazy' => true, 'asset' => 'other.js', 'add' => true]],
         ];
 
@@ -323,8 +312,7 @@
             'input' => <<<EOF
                 const fun;
                 console.log("import('./foo.js')");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => [],
         ];
 
@@ -332,8 +320,7 @@
             'input' => <<<EOF
                 const fun;
                 console.log(" foo \" import('./foo.js')");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => [],
         ];
 
@@ -341,8 +328,7 @@
             'input' => <<<EOF
                 const fun;
                 console.log('import("./foo.js")');
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => [],
         ];
 
@@ -350,8 +336,7 @@
             'input' => <<<EOF
                 const fun;
                 console.log("import('./other.js')"); import("./foo.js");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => ['/assets/foo.js' => ['lazy' => true, 'asset' => 'foo.js', 'add' => true]],
         ];
 
@@ -359,8 +344,7 @@
             'input' => <<<EOF
                 const fun;
                 import("./other.js"); console.log("import('./foo.js')");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => ['/assets/other.js' => ['lazy' => true, 'asset' => 'other.js', 'add' => true]],
         ];
 
@@ -368,8 +352,7 @@
             'input' => <<<EOF
                 const fun;
                 import("./other.js"); console.log("import('./foo.js')"); import("./subdir/foo.js");
-                EOF
-            ,
+                EOF,
             'expectedJavaScriptImports' => [
                 '/assets/other.js' => ['lazy' => true, 'asset' => 'other.js', 'add' => true],
                 '/assets/subdir/foo.js' => ['lazy' => true, 'asset' => 'subdir/foo.js', 'add' => true],
@@ -406,15 +389,15 @@
     {
         $inputAsset = new MappedAsset('app.js', '/project/assets/app.js', publicPathWithoutDigest: '/assets/app.js');
 
-        $assetMapper = $this->createMock(AssetMapperInterface::class);
-        $assetMapper->expects($this->any())
+        $assetMapper = $this->createStub(AssetMapperInterface::class);
+        $assetMapper
             ->method('getAssetFromSourcePath')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 return match ($path) {
                     '/project/assets/other.js' => new MappedAsset('other.js', '/can/be/anything.js', publicPathWithoutDigest: '/assets/other.js'),
                     '/project/assets/subdir/foo.js' => new MappedAsset('subdir/foo.js', '/can/be/anything.js', publicPathWithoutDigest: '/assets/subdir/foo.js'),
                     '/project/root_asset.js' => new MappedAsset('root_asset.js', '/can/be/anything.js', publicPathWithoutDigest: '/assets/root_asset.js'),
-                    default => throw new \RuntimeException(sprintf('Unexpected source path "%s"', $path)),
+                    default => throw new \RuntimeException(\sprintf('Unexpected source path "%s"', $path)),
                 };
             });
 
@@ -424,7 +407,7 @@
             import '../root_asset.js';
             EOF;
 
-        $compiler = new JavaScriptImportPathCompiler($this->createMock(ImportMapConfigReader::class));
+        $compiler = new JavaScriptImportPathCompiler($this->createStub(ImportMapConfigReader::class));
         $compiler->compile($input, $inputAsset, $assetMapper);
         $this->assertCount(3, $inputAsset->getJavaScriptImports());
         $this->assertSame('other.js', $inputAsset->getJavaScriptImports()[0]->assetLogicalPath);
@@ -439,15 +422,15 @@
         }
         $inputAsset = new MappedAsset('app.js', 'C:\\\\project\\assets\\app.js', publicPathWithoutDigest: '/assets/app.js');
 
-        $assetMapper = $this->createMock(AssetMapperInterface::class);
-        $assetMapper->expects($this->any())
+        $assetMapper = $this->createStub(AssetMapperInterface::class);
+        $assetMapper
             ->method('getAssetFromSourcePath')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 return match ($path) {
                     'C://project/assets/other.js' => new MappedAsset('other.js', '/can/be/anything.js', publicPathWithoutDigest: '/assets/other.js'),
                     'C://project/assets/subdir/foo.js' => new MappedAsset('subdir/foo.js', '/can/be/anything.js', publicPathWithoutDigest: '/assets/subdir/foo.js'),
                     'C://project/root_asset.js' => new MappedAsset('root_asset.js', '/can/be/anything.js', publicPathWithoutDigest: '/assets/root_asset.js'),
-                    default => throw new \RuntimeException(sprintf('Unexpected source path "%s"', $path)),
+                    default => throw new \RuntimeException(\sprintf('Unexpected source path "%s"', $path)),
                 };
             });
 
@@ -457,7 +440,7 @@
             import '../root_asset.js';
             EOF;
 
-        $compiler = new JavaScriptImportPathCompiler($this->createMock(ImportMapConfigReader::class));
+        $compiler = new JavaScriptImportPathCompiler($this->createStub(ImportMapConfigReader::class));
         $compiler->compile($input, $inputAsset, $assetMapper);
         $this->assertCount(3, $inputAsset->getJavaScriptImports());
         $this->assertSame('other.js', $inputAsset->getJavaScriptImports()[0]->assetLogicalPath);
@@ -478,7 +461,7 @@
             ->method('getAssetFromSourcePath')
             ->willReturn($importedAsset);
 
-        $compiler = new JavaScriptImportPathCompiler($this->createMock(ImportMapConfigReader::class));
+        $compiler = new JavaScriptImportPathCompiler($this->createStub(ImportMapConfigReader::class));
         $this->assertSame($expectedOutput, $compiler->compile($input, $asset, $assetMapper));
     }
 
@@ -532,7 +515,7 @@
         $appAsset = new MappedAsset('app.js', '/project/assets/app.js', '/assets/app.js');
         $otherAsset = new MappedAsset('other.js', '/project/assets/other.js', '/assets/other.js');
 
-        $importMapConfigReader = $this->createMock(ImportMapConfigReader::class);
+        $importMapConfigReader = $this->createStub(ImportMapConfigReader::class);
         $assetMapper = $this->createMock(AssetMapperInterface::class);
         $assetMapper->expects($this->once())
             ->method('getAssetFromSourcePath')
@@ -556,10 +539,11 @@
             ->method('findRootImportMapEntry')
             ->with('@popperjs/core')
             ->willReturn(ImportMapEntry::createRemote('@popperjs/core', ImportMapType::JS, './vendor/@popperjs/core.js', '1.2.3', 'could_be_anything', false));
-        $importMapConfigReader->expects($this->any())
+        $importMapConfigReader
             ->method('convertPathToFilesystemPath')
-            ->with('./vendor/@popperjs/core.js')
-            ->willReturn('/path/to/vendor/@popperjs/core.js');
+            ->willReturnMap([
+                ['./vendor/@popperjs/core.js', '/path/to/vendor/@popperjs/core.js'],
+            ]);
 
         $assetMapper = $this->createMock(AssetMapperInterface::class);
         $assetMapper->expects($this->once())
@@ -583,10 +567,11 @@
             ->method('findRootImportMapEntry')
             ->with('foobar')
             ->willReturn(ImportMapEntry::createRemote('foobar', ImportMapType::JS, 'foo.js', '1.2.3', 'foobar', false));
-        $importMapConfigReader->expects($this->any())
+        $importMapConfigReader
             ->method('convertPathToFilesystemPath')
-            ->with('foo.js')
-            ->willReturn('foo.js');
+            ->willReturnMap([
+                ['foo.js', 'foo.js'],
+            ]);
 
         $assetMapper = $this->createMock(AssetMapperInterface::class);
         $assetMapper->expects($this->once())
@@ -602,6 +587,34 @@
         $this->assertCount(0, $bootstrapAsset->getJavaScriptImports());
     }
 
+    public function testCompileDoesNotWarnOnBareCssImportPresentInImportmap()
+    {
+        $appAsset = new MappedAsset('app.js', '/path/to/app.js');
+        $cssAsset = new MappedAsset('some-package/styles.css', '/path/to/vendor/some-package/styles.css', publicPathWithoutDigest: '/assets/some-package/styles.css');
+
+        $importMapConfigReader = $this->createMock(ImportMapConfigReader::class);
+        $importMapConfigReader->expects($this->once())
+            ->method('findRootImportMapEntry')
+            ->with('some-package/styles.css')
+            ->willReturn(ImportMapEntry::createRemote('some-package/styles.css', ImportMapType::CSS, './vendor/some-package/styles.css', '1.2.3', 'could_be_anything', false));
+        $importMapConfigReader
+            ->method('convertPathToFilesystemPath')
+            ->willReturnMap([
+                ['./vendor/some-package/styles.css', '/path/to/vendor/some-package/styles.css'],
+            ]);
+
+        $assetMapper = $this->createMock(AssetMapperInterface::class);
+        $assetMapper->expects($this->once())
+            ->method('getAssetFromSourcePath')
+            ->with('/path/to/vendor/some-package/styles.css')
+            ->willReturn($cssAsset);
+
+        $compiler = new JavaScriptImportPathCompiler($importMapConfigReader, AssetCompilerInterface::MISSING_IMPORT_STRICT, new NullLogger());
+        $input = "import 'some-package/styles.css';";
+        $this->assertSame($input, $compiler->compile($input, $appAsset, $assetMapper));
+        $this->assertCount(1, $appAsset->getJavaScriptImports());
+    }
+
     /**
      * @dataProvider provideMissingImportModeTests
      */
@@ -614,16 +627,15 @@
 
         $asset = new MappedAsset($sourceLogicalName, '/path/to/app.js');
 
-        $logger = $this->createMock(LoggerInterface::class);
         $compiler = new JavaScriptImportPathCompiler(
-            $this->createMock(ImportMapConfigReader::class),
+            $this->createStub(ImportMapConfigReader::class),
             AssetCompilerInterface::MISSING_IMPORT_STRICT,
-            $logger
+            new NullLogger()
         );
-        $assetMapper = $this->createMock(AssetMapperInterface::class);
-        $assetMapper->expects($this->any())
+        $assetMapper = $this->createStub(AssetMapperInterface::class);
+        $assetMapper
             ->method('getAssetFromSourcePath')
-            ->willReturnCallback(function ($sourcePath) {
+            ->willReturnCallback(static function ($sourcePath) {
                 return match ($sourcePath) {
                     '/path/to/other.js' => new MappedAsset('other.js', '/can/be/anything.js', publicPathWithoutDigest: '/assets/other.js'),
                     default => null,
@@ -659,14 +671,68 @@
             'input' => "import 'https://example.com/other.js';",
             'expectedExceptionMessage' => null,
         ];
+
+        yield 'importing_a_bare_module_is_ignored_because_it_could_be_a_url' => [
+            'sourceLogicalName' => 'app.js',
+            'input' => "import 'lodash';",
+            'expectedExceptionMessage' => null,
+        ];
+
+        yield 'importing_a_bare_js_package_whose_name_ends_in_dot_js_is_ignored' => [
+            'sourceLogicalName' => 'app.js',
+            'input' => "import 'chart.js';",
+            'expectedExceptionMessage' => null,
+        ];
+
+        yield 'importing_a_missing_bare_css_file_throws_exception' => [
+            'sourceLogicalName' => 'app.js',
+            'input' => "import 'some-package/styles.css';",
+            'expectedExceptionMessage' => 'Unable to find asset "some-package/styles.css" imported from "/path/to/app.js". Add it to "importmap.php", e.g. via the "importmap:require" command.',
+        ];
+
+        yield 'dynamic_importing_a_missing_bare_css_file_throws_exception' => [
+            'sourceLogicalName' => 'app.js',
+            'input' => "await import('some-package/styles.css');",
+            'expectedExceptionMessage' => 'Unable to find asset "some-package/styles.css" imported from "/path/to/app.js". Add it to "importmap.php", e.g. via the "importmap:require" command.',
+        ];
+
+        yield 'importing_a_css_file_from_a_url_is_ignored' => [
+            'sourceLogicalName' => 'app.js',
+            'input' => "import 'https://example.com/styles.css';",
+            'expectedExceptionMessage' => null,
+        ];
+
+        yield 'importing_a_missing_bare_css_file_with_uppercase_extension_throws_exception' => [
+            'sourceLogicalName' => 'app.js',
+            'input' => "import 'some-package/styles.CSS';",
+            'expectedExceptionMessage' => 'Unable to find asset "some-package/styles.CSS" imported from "/path/to/app.js". Add it to "importmap.php", e.g. via the "importmap:require" command.',
+        ];
+
+        yield 'importing_a_missing_bare_json_file_throws_exception' => [
+            'sourceLogicalName' => 'app.js',
+            'input' => "import data from 'some-package/data.json';",
+            'expectedExceptionMessage' => 'Unable to find asset "some-package/data.json" imported from "/path/to/app.js". Add it to "importmap.php", e.g. via the "importmap:require" command.',
+        ];
+
+        yield 'dynamic_importing_a_missing_bare_json_file_throws_exception' => [
+            'sourceLogicalName' => 'app.js',
+            'input' => "await import('some-package/data.json');",
+            'expectedExceptionMessage' => 'Unable to find asset "some-package/data.json" imported from "/path/to/app.js". Add it to "importmap.php", e.g. via the "importmap:require" command.',
+        ];
+
+        yield 'importing_a_json_file_from_a_url_is_ignored' => [
+            'sourceLogicalName' => 'app.js',
+            'input' => "import data from 'https://example.com/data.json';",
+            'expectedExceptionMessage' => null,
+        ];
     }
 
     public function testErrorMessageAvoidsCircularException()
     {
-        $assetMapper = $this->createMock(AssetMapperInterface::class);
-        $assetMapper->expects($this->any())
+        $assetMapper = $this->createStub(AssetMapperInterface::class);
+        $assetMapper
             ->method('getAsset')
-            ->willReturnCallback(function ($logicalPath) {
+            ->willReturnCallback(static function ($logicalPath) {
                 if ('htmx' === $logicalPath) {
                     return null;
                 }
@@ -677,7 +743,7 @@
             });
 
         $asset = new MappedAsset('htmx.js', '/path/to/app.js');
-        $compiler = new JavaScriptImportPathCompiler($this->createMock(ImportMapConfigReader::class));
+        $compiler = new JavaScriptImportPathCompiler($this->createStub(ImportMapConfigReader::class));
         $content = '//** @type {import("./htmx").HtmxApi} */';
         $compiled = $compiler->compile($content, $asset, $assetMapper);
         // To form a good exception message, the compiler will check for the
@@ -688,10 +754,10 @@
 
     public function testCompilerThrowsExceptionOnPcreError()
     {
-        $compiler = new JavaScriptImportPathCompiler($this->createMock(ImportMapConfigReader::class));
+        $compiler = new JavaScriptImportPathCompiler($this->createStub(ImportMapConfigReader::class));
         $content = str_repeat('foo "import *  ', 50);
         $javascriptAsset = new MappedAsset('app.js', '/project/assets/app.js', publicPathWithoutDigest: '/assets/app.js');
-        $assetMapper = $this->createMock(AssetMapperInterface::class);
+        $assetMapper = $this->createStub(AssetMapperInterface::class);
 
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage('Failed to compile JavaScript import paths in "/project/assets/app.js". Error: "Backtrack limit exhausted".');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/SourceMappingUrlsCompilerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/SourceMappingUrlsCompilerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/SourceMappingUrlsCompilerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/Compiler/SourceMappingUrlsCompilerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,10 +23,10 @@
      */
     public function testCompile(string $sourceLogicalName, string $input, string $expectedOutput, $expectedDependencies)
     {
-        $assetMapper = $this->createMock(AssetMapperInterface::class);
-        $assetMapper->expects($this->any())
+        $assetMapper = $this->createStub(AssetMapperInterface::class);
+        $assetMapper
             ->method('getAssetFromSourcePath')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 return match ($path) {
                     '/project/assets/foo.js.map' => new MappedAsset('foo.js.map',
                         publicPathWithoutDigest: '/assets/foo.js.map',
@@ -50,7 +50,7 @@
             publicPathWithoutDigest: '/assets/'.$sourceLogicalName,
         );
         $this->assertSame($expectedOutput, $compiler->compile($input, $asset, $assetMapper));
-        $assetDependencyLogicalPaths = array_map(fn (MappedAsset $dependency) => $dependency->logicalPath, $asset->getDependencies());
+        $assetDependencyLogicalPaths = array_map(static fn (MappedAsset $dependency) => $dependency->logicalPath, $asset->getDependencies());
         $this->assertSame($expectedDependencies, $assetDependencyLogicalPaths);
     }
 
@@ -61,13 +61,11 @@
             'input' => <<<EOF
                 var fun;
                 //# sourceMappingURL=foo.js.map
-                EOF
-            ,
+                EOF,
             'expectedOutput' => <<<EOF
                 var fun;
                 //# sourceMappingURL=foo.123456.js.map
-                EOF
-            ,
+                EOF,
             'expectedDependencies' => ['foo.js.map'],
         ];
 
@@ -76,13 +74,11 @@
             'input' => <<<EOF
                 .class { color: green; }
                 /*# sourceMappingURL=bar.css.map */
-                EOF
-            ,
+                EOF,
             'expectedOutput' => <<<EOF
                 .class { color: green; }
                 /*# sourceMappingURL=bar.abcd123.css.map */
-                EOF
-            ,
+                EOF,
             'expectedDependencies' => ['styles/bar.css.map'],
         ];
 
@@ -91,13 +87,11 @@
             'input' => <<<EOF
                 .class { color: green; }
                 /*# sourceMappingURL=../sourcemaps/baz.css.map */
-                EOF
-            ,
+                EOF,
             'expectedOutput' => <<<EOF
                 .class { color: green; }
                 /*# sourceMappingURL=../sourcemaps/baz.987fedc.css.map */
-                EOF
-            ,
+                EOF,
             'expectedDependencies' => ['sourcemaps/baz.css.map'],
         ];
 
@@ -105,12 +99,10 @@
             'sourceLogicalName' => 'styles/bar.css',
             'input' => <<<EOF
                 .class { color: green; }
-                EOF
-            ,
+                EOF,
             'expectedOutput' => <<<EOF
                 .class { color: green; }
-                EOF
-            ,
+                EOF,
             'expectedDependencies' => [],
         ];
 
@@ -119,13 +111,11 @@
             'input' => <<<EOF
                 .class { color: green; }
                 /*# sourceMappingURL=unknown.css.map */
-                EOF
-            ,
+                EOF,
             'expectedOutput' => <<<EOF
                 .class { color: green; }
                 /*# sourceMappingURL=unknown.css.map */
-                EOF
-            ,
+                EOF,
             'expectedDependencies' => [],
         ];
 
@@ -135,14 +125,12 @@
                 .class::before {
                   content: "# sourceMappingURL=sourceMappingURL-outside-comment.css.map";
                 }
-                EOF
-            ,
+                EOF,
             'expectedOutput' => <<<EOF
                 .class::before {
                   content: "# sourceMappingURL=sourceMappingURL-outside-comment.css.map";
                 }
-                EOF
-            ,
+                EOF,
             'expectedDependencies' => [],
         ];
 
@@ -152,14 +140,12 @@
                 .class {
                   color: green; /*# sourceMappingURL=sourceMappingURL-not-at-start.css.map */
                 }
-                EOF
-            ,
+                EOF,
             'expectedOutput' => <<<EOF
                 .class {
                   color: green; /*# sourceMappingURL=sourceMappingURL-not-at-start.css.map */
                 }
-                EOF
-            ,
+                EOF,
             'expectedDependencies' => [],
         ];
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/Factory/MappedAssetFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/Factory/MappedAssetFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/Factory/MappedAssetFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/Factory/MappedAssetFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\AssetMapper\Tests\Factory;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\AssetMapper\AssetMapperCompiler;
 use Symfony\Component\AssetMapper\AssetMapperInterface;
@@ -28,7 +27,7 @@
 {
     private const DEFAULT_FIXTURES = __DIR__.'/../Fixtures/assets/vendor';
 
-    private AssetMapperInterface&MockObject $assetMapper;
+    private AssetMapperInterface $assetMapper;
 
     public function testCreateMappedAsset()
     {
@@ -52,7 +51,7 @@
 
     public function testCreateMappedAssetWithContentThatChanged()
     {
-        $file1Compiler = new class() implements AssetCompilerInterface {
+        $file1Compiler = new class implements AssetCompilerInterface {
             public function supports(MappedAsset $asset): bool
             {
                 return true;
@@ -94,7 +93,7 @@
 
     public function testCreateMappedAssetWithDigest()
     {
-        $file6Compiler = new class() implements AssetCompilerInterface {
+        $file6Compiler = new class implements AssetCompilerInterface {
             public function supports(MappedAsset $asset): bool
             {
                 return true;
@@ -150,7 +149,7 @@
     private function createFactory(?AssetCompilerInterface $extraCompiler = null, ?string $vendorDir = self::DEFAULT_FIXTURES): MappedAssetFactory
     {
         $compilers = [
-            new JavaScriptImportPathCompiler($this->createMock(ImportMapConfigReader::class)),
+            new JavaScriptImportPathCompiler($this->createStub(ImportMapConfigReader::class)),
             new CssAssetUrlCompiler(),
         ];
         if ($extraCompiler) {
@@ -162,12 +161,10 @@
             fn () => $this->assetMapper,
         );
 
-        $pathResolver = $this->createMock(PublicAssetsPathResolverInterface::class);
-        $pathResolver->expects($this->any())
+        $pathResolver = $this->createStub(PublicAssetsPathResolverInterface::class);
+        $pathResolver
             ->method('resolvePublicPath')
-            ->willReturnCallback(function (string $logicalPath) {
-                return '/final-assets/'.$logicalPath;
-            });
+            ->willReturnCallback(static fn (string $logicalPath) => '/final-assets/'.$logicalPath);
 
         $factory = new MappedAssetFactory(
             $pathResolver,
@@ -176,10 +173,10 @@
         );
 
         // mock the AssetMapper to behave like normal: by calling back to the factory
-        $this->assetMapper = $this->createMock(AssetMapperInterface::class);
-        $this->assetMapper->expects($this->any())
+        $this->assetMapper = $this->createStub(AssetMapperInterface::class);
+        $this->assetMapper
             ->method('getAssetFromSourcePath')
-            ->willReturnCallback(function (string $sourcePath) use ($factory) {
+            ->willReturnCallback(static function (string $sourcePath) use ($factory) {
                 if (str_contains($sourcePath, 'dir1')) {
                     $logicalPath = substr($sourcePath, strpos($sourcePath, 'dir1') + 5);
                 } elseif (str_contains($sourcePath, 'dir2')) {
@@ -187,7 +184,7 @@
                 } elseif (str_contains($sourcePath, 'circular_dir')) {
                     $logicalPath = substr($sourcePath, strpos($sourcePath, 'circular_dir') + 13);
                 } else {
-                    throw new \RuntimeException(sprintf('Could not find asset "%s".', $sourcePath));
+                    throw new \RuntimeException(\sprintf('Could not find asset "%s".', $sourcePath));
                 }
 
                 return $factory->createMappedAsset($logicalPath, $sourcePath);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapAuditorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapAuditorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapAuditorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapAuditorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
 
     protected function setUp(): void
     {
-        $this->importMapConfigReader = $this->createMock(ImportMapConfigReader::class);
+        $this->importMapConfigReader = $this->createStub(ImportMapConfigReader::class);
         $this->httpClient = new MockHttpClient();
         $this->importMapAuditor = new ImportMapAuditor($this->importMapConfigReader, $this->httpClient);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapConfigReaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapConfigReaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapConfigReaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapConfigReaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,35 +39,33 @@
     public function testGetEntriesAndWriteEntries()
     {
         $importMap = <<<EOF
-<?php
-return [
-    'remote_package' => [
-        'version' => '3.2.1',
-    ],
-    'local_package' => [
-        'path' => 'app.js',
-    ],
-    'type_css' => [
-        'path' => 'styles/app.css',
-        'type' => 'css',
-    ],
-    'entry_point' => [
-        'path' => 'entry.js',
-        'entrypoint' => true,
-    ],
-    'package/with_file.js' => [
-        'version' => '1.0.0',
-    ],
-];
-EOF;
+            <?php
+            return [
+                'remote_package' => [
+                    'version' => '3.2.1',
+                ],
+                'local_package' => [
+                    'path' => 'app.js',
+                ],
+                'type_css' => [
+                    'path' => 'styles/app.css',
+                    'type' => 'css',
+                ],
+                'entry_point' => [
+                    'path' => 'entry.js',
+                    'entrypoint' => true,
+                ],
+                'package/with_file.js' => [
+                    'version' => '1.0.0',
+                ],
+            ];
+            EOF;
         file_put_contents(__DIR__.'/../Fixtures/importmap_config_reader/importmap.php', $importMap);
 
-        $remotePackageStorage = $this->createMock(RemotePackageStorage::class);
-        $remotePackageStorage->expects($this->any())
+        $remotePackageStorage = $this->createStub(RemotePackageStorage::class);
+        $remotePackageStorage
             ->method('getDownloadPath')
-            ->willReturnCallback(static function (string $packageModuleSpecifier, ImportMapType $type) {
-                return '/path/to/vendor/'.$packageModuleSpecifier.'.'.$type->value;
-            });
+            ->willReturnCallback(static fn (string $packageModuleSpecifier, ImportMapType $type) => '/path/to/vendor/'.$packageModuleSpecifier.'.'.$type->value);
         $reader = new ImportMapConfigReader(
             __DIR__.'/../Fixtures/importmap_config_reader/importmap.php',
             $remotePackageStorage,
@@ -111,7 +109,7 @@
      */
     public function testConvertPathToFilesystemPath(string $path, string $expectedPath)
     {
-        $configReader = new ImportMapConfigReader(realpath(__DIR__.'/../Fixtures/importmap.php'), $this->createMock(RemotePackageStorage::class));
+        $configReader = new ImportMapConfigReader(realpath(__DIR__.'/../Fixtures/importmap.php'), new RemotePackageStorage(sys_get_temp_dir()));
         // normalize path separators for comparison
         $expectedPath = str_replace('\\', '/', $expectedPath);
         $this->assertSame($expectedPath, $configReader->convertPathToFilesystemPath($path));
@@ -135,7 +133,7 @@
      */
     public function testConvertFilesystemPathToPath(string $path, ?string $expectedPath)
     {
-        $configReader = new ImportMapConfigReader(__DIR__.'/../Fixtures/importmap.php', $this->createMock(RemotePackageStorage::class));
+        $configReader = new ImportMapConfigReader(__DIR__.'/../Fixtures/importmap.php', new RemotePackageStorage(sys_get_temp_dir()));
         $this->assertSame($expectedPath, $configReader->convertFilesystemPathToPath($path));
     }
 
@@ -154,7 +152,7 @@
 
     public function testFindRootImportMapEntry()
     {
-        $configReader = new ImportMapConfigReader(__DIR__.'/../Fixtures/importmap.php', $this->createMock(RemotePackageStorage::class));
+        $configReader = new ImportMapConfigReader(__DIR__.'/../Fixtures/importmap.php', new RemotePackageStorage(sys_get_temp_dir()));
         $entry = $configReader->findRootImportMapEntry('file2');
         $this->assertSame('file2', $entry->importName);
         $this->assertSame('file2.js', $entry->path);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapGeneratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapGeneratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapGeneratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapGeneratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\AssetMapper\Tests\ImportMap;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\AssetMapper\AssetMapperInterface;
 use Symfony\Component\AssetMapper\CompiledAssetMapperConfigReader;
@@ -27,9 +26,9 @@
 
 class ImportMapGeneratorTest extends TestCase
 {
-    private AssetMapperInterface&MockObject $assetMapper;
-    private CompiledAssetMapperConfigReader&MockObject $compiledConfigReader;
-    private ImportMapConfigReader&MockObject $configReader;
+    private AssetMapperInterface $assetMapper;
+    private CompiledAssetMapperConfigReader $compiledConfigReader;
+    private ImportMapConfigReader $configReader;
 
     private Filesystem $filesystem;
     private static string $writableRoot = __DIR__.'/../Fixtures/importmap_generator';
@@ -262,9 +261,9 @@
         $manager = $this->createImportMapGenerator();
         $this->mockImportMap($importMapEntries);
         $this->mockAssetMapper($mappedAssets);
-        $this->configReader->expects($this->any())
+        $this->configReader
             ->method('convertPathToFilesystemPath')
-            ->willReturnCallback(function (string $path) {
+            ->willReturnCallback(static function (string $path) {
                 if (!str_starts_with($path, '.')) {
                     return $path;
                 }
@@ -574,6 +573,7 @@
 
     public function testGetRawImportDataUsesCacheFile()
     {
+        $this->compiledConfigReader = $this->createMock(CompiledAssetMapperConfigReader::class);
         $manager = $this->createImportMapGenerator();
         $importmapData = [
             'app' => [
@@ -693,6 +693,7 @@
 
     public function testFindEagerEntrypointImportsUsesCacheFile()
     {
+        $this->compiledConfigReader = $this->createMock(CompiledAssetMapperConfigReader::class);
         $manager = $this->createImportMapGenerator();
         $entrypointData = [
             'app',
@@ -711,14 +712,14 @@
 
     private function createImportMapGenerator(): ImportMapGenerator
     {
-        $this->compiledConfigReader = $this->createMock(CompiledAssetMapperConfigReader::class);
-        $this->assetMapper = $this->createMock(AssetMapperInterface::class);
-        $this->configReader = $this->createMock(ImportMapConfigReader::class);
+        $this->compiledConfigReader ??= $this->createStub(CompiledAssetMapperConfigReader::class);
+        $this->assetMapper = $this->createStub(AssetMapperInterface::class);
+        $this->configReader = $this->createStub(ImportMapConfigReader::class);
 
         // mock this to behave like normal
-        $this->configReader->expects($this->any())
+        $this->configReader
             ->method('createRemoteEntry')
-            ->willReturnCallback(function (string $importName, ImportMapType $type, string $version, string $packageModuleSpecifier, bool $isEntrypoint) {
+            ->willReturnCallback(static function (string $importName, ImportMapType $type, string $version, string $packageModuleSpecifier, bool $isEntrypoint) {
                 $path = '/path/to/vendor/'.$packageModuleSpecifier.'.js';
 
                 return ImportMapEntry::createRemote($importName, $type, $path, $version, $packageModuleSpecifier, $isEntrypoint);
@@ -733,7 +734,7 @@
 
     private function mockImportMap(array $importMapEntries): void
     {
-        $this->configReader->expects($this->any())
+        $this->configReader
             ->method('getEntries')
             ->willReturn(new ImportMapEntries($importMapEntries))
         ;
@@ -746,8 +747,8 @@
 
     private static function createRemoteEntry(string $importName, string $version, ?string $path = null, ImportMapType $type = ImportMapType::JS, ?string $packageSpecifier = null): ImportMapEntry
     {
-        $packageSpecifier = $packageSpecifier ?? $importName;
-        $path = $path ?? '/vendor/any-path.js';
+        $packageSpecifier ??= $importName;
+        $path ??= '/vendor/any-path.js';
 
         return ImportMapEntry::createRemote($importName, $type, path: $path, version: $version, packageModuleSpecifier: $packageSpecifier, isEntrypoint: false);
     }
@@ -757,9 +758,9 @@
      */
     private function mockAssetMapper(array $mappedAssets): void
     {
-        $this->assetMapper->expects($this->any())
+        $this->assetMapper
             ->method('getAsset')
-            ->willReturnCallback(function (string $logicalPath) use ($mappedAssets) {
+            ->willReturnCallback(static function (string $logicalPath) use ($mappedAssets) {
                 foreach ($mappedAssets as $asset) {
                     if ($asset->logicalPath === $logicalPath) {
                         return $asset;
@@ -770,11 +771,11 @@
             })
         ;
 
-        $this->assetMapper->expects($this->any())
+        $this->assetMapper
             ->method('getAssetFromSourcePath')
-            ->willReturnCallback(function (string $sourcePath) use ($mappedAssets) {
+            ->willReturnCallback(static function (string $sourcePath) use ($mappedAssets) {
                 // collapse ../ in paths and ./ in paths to mimic the realpath AssetMapper uses
-                $unCollapsePath = function (string $path) {
+                $unCollapsePath = static function (string $path) {
                     $parts = explode('/', $path);
                     $newParts = [];
                     foreach ($parts as $part) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapManagerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapManagerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapManagerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapManagerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,10 +28,10 @@
 
 class ImportMapManagerTest extends TestCase
 {
-    private AssetMapperInterface&MockObject $assetMapper;
-    private PackageResolverInterface&MockObject $packageResolver;
+    private AssetMapperInterface $assetMapper;
+    private PackageResolverInterface $packageResolver;
     private ImportMapConfigReader&MockObject $configReader;
-    private RemotePackageDownloader&MockObject $remotePackageDownloader;
+    private RemotePackageDownloader $remotePackageDownloader;
 
     private Filesystem $filesystem;
     private static string $writableRoot = __DIR__.'/../Fixtures/importmap_manager';
@@ -54,13 +54,14 @@
      */
     public function testRequire(array $packages, int $expectedProviderPackageArgumentCount, array $resolvedPackages, array $expectedImportMap)
     {
+        $this->packageResolver = $this->createMock(PackageResolverInterface::class);
         $manager = $this->createImportMapManager();
         // physical file we point to in one test
         $this->writeFile('assets/some_file.js', 'some file contents');
 
-        $this->assetMapper->expects($this->any())
+        $this->assetMapper
             ->method('getAssetFromSourcePath')
-            ->willReturnCallback(function (string $sourcePath) {
+            ->willReturnCallback(static function (string $sourcePath) {
                 if (str_ends_with($sourcePath, 'some_file.js')) {
                     // physical file we point to in one test
                     return new MappedAsset('some_file.js', $sourcePath);
@@ -70,21 +71,21 @@
             })
         ;
 
-        $this->configReader->expects($this->any())
+        $this->configReader
             ->method('convertPathToFilesystemPath')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 if (str_ends_with($path, 'some_file.js')) {
                     return '/path/to/assets/some_file.js';
                 }
 
-                throw new \Exception(sprintf('Unexpected path "%s"', $path));
+                throw new \Exception(\sprintf('Unexpected path "%s"', $path));
             });
-        $this->configReader->expects($this->any())
+        $this->configReader
             ->method('convertFilesystemPathToPath')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 return match ($path) {
                     '/path/to/assets/some_file.js' => './assets/some_file.js',
-                    default => throw new \Exception(sprintf('Unexpected path "%s"', $path)),
+                    default => throw new \Exception(\sprintf('Unexpected path "%s"', $path)),
                 };
             });
         $this->configReader->expects($this->once())
@@ -125,9 +126,7 @@
 
         $this->packageResolver->expects($this->exactly(0 === $expectedProviderPackageArgumentCount ? 0 : 1))
             ->method('resolvePackages')
-            ->with($this->callback(function (array $packages) use ($expectedProviderPackageArgumentCount) {
-                return \count($packages) === $expectedProviderPackageArgumentCount;
-            }))
+            ->with($this->callback(static fn (array $packages) => \count($packages) === $expectedProviderPackageArgumentCount))
             ->willReturn($resolvedPackages)
         ;
 
@@ -237,6 +236,7 @@
 
     public function testUpdateAll()
     {
+        $this->packageResolver = $this->createMock(PackageResolverInterface::class);
         $manager = $this->createImportMapManager();
         $this->mockImportMap([
             self::createRemoteEntry('lodash', version: '1.2.3', path: '/vendor/lodash.js'),
@@ -282,6 +282,8 @@
 
     public function testUpdateWithSpecificPackages()
     {
+        $this->packageResolver = $this->createMock(PackageResolverInterface::class);
+        $this->remotePackageDownloader = $this->createMock(RemotePackageDownloader::class);
         $manager = $this->createImportMapManager();
         $this->mockImportMap([
             self::createRemoteEntry('lodash', version: '1.2.3'),
@@ -323,12 +325,12 @@
         $this->assertIsArray($parsed);
 
         // remove integer keys - they're noise
-        $parsed = array_filter($parsed, fn ($key) => !\is_int($key), \ARRAY_FILTER_USE_KEY);
+        $parsed = array_filter($parsed, static fn ($key) => !\is_int($key), \ARRAY_FILTER_USE_KEY);
         $this->assertEquals($expectedReturn, $parsed);
 
         $parsedWithAlias = ImportMapManager::parsePackageName($packageName.'=some_alias');
         $this->assertIsArray($parsedWithAlias);
-        $parsedWithAlias = array_filter($parsedWithAlias, fn ($key) => !\is_int($key), \ARRAY_FILTER_USE_KEY);
+        $parsedWithAlias = array_filter($parsedWithAlias, static fn ($key) => !\is_int($key), \ARRAY_FILTER_USE_KEY);
         $expectedReturnWithAlias = $expectedReturn + ['alias' => 'some_alias'];
         $this->assertEquals($expectedReturnWithAlias, $parsedWithAlias, 'Asserting with alias');
     }
@@ -350,6 +352,14 @@
             ],
         ];
 
+        yield 'with_version_constraint_containing_spaces' => [
+            'lodash@^1.2.3 || ^2.0',
+            [
+                'package' => 'lodash',
+                'version' => '^1.2.3 || ^2.0',
+            ],
+        ];
+
         yield 'namespaced_package_simple' => [
             '@hotwired/stimulus',
             [
@@ -364,19 +374,64 @@
                 'version' => '^1.2.3',
             ],
         ];
+
+        yield 'namespaced_package_with_version_constraint_containing_spaces' => [
+            '@hotwired/turbo@^7.1.0 || ^8.0',
+            [
+                'package' => '@hotwired/turbo',
+                'version' => '^7.1.0 || ^8.0',
+            ],
+        ];
+
+        yield 'namespaced_package_with_version_constraint_without_spaces_around_operator' => [
+            '@hotwired/turbo@^7.1.0||^8.0',
+            [
+                'package' => '@hotwired/turbo',
+                'version' => '^7.1.0||^8.0',
+            ],
+        ];
+    }
+
+    public function testUpdatePreservesEntrypointStatus()
+    {
+        $this->packageResolver = $this->createMock(PackageResolverInterface::class);
+        $manager = $this->createImportMapManager();
+
+        $this->mockImportMap([
+            self::createRemoteEntry('my_entrypoint', version: '1.0.0', isEntrypoint: true),
+            self::createRemoteEntry('standard_lib', version: '2.0.0', isEntrypoint: false),
+        ]);
+
+        $this->packageResolver->expects($this->once())
+            ->method('resolvePackages')
+            ->willReturn([
+                self::resolvedPackage('my_entrypoint', '1.0.1', isEntrypoint: true),
+                self::resolvedPackage('standard_lib', '2.1.0'),
+            ]);
+
+        $this->configReader->expects($this->once())
+            ->method('writeEntries')
+            ->with($this->callback(function (ImportMapEntries $entries) {
+                $this->assertTrue($entries->get('my_entrypoint')->isEntrypoint, 'Entrypoint status lost!');
+                $this->assertFalse($entries->get('standard_lib')->isEntrypoint);
+
+                return true;
+            }));
+
+        $manager->update();
     }
 
     private function createImportMapManager(): ImportMapManager
     {
-        $this->assetMapper = $this->createMock(AssetMapperInterface::class);
+        $this->assetMapper = $this->createStub(AssetMapperInterface::class);
         $this->configReader = $this->createMock(ImportMapConfigReader::class);
-        $this->packageResolver = $this->createMock(PackageResolverInterface::class);
-        $this->remotePackageDownloader = $this->createMock(RemotePackageDownloader::class);
+        $this->packageResolver ??= $this->createStub(PackageResolverInterface::class);
+        $this->remotePackageDownloader ??= $this->createStub(RemotePackageDownloader::class);
 
         // mock this to behave like normal
-        $this->configReader->expects($this->any())
+        $this->configReader
             ->method('createRemoteEntry')
-            ->willReturnCallback(function (string $importName, ImportMapType $type, string $version, string $packageModuleSpecifier, bool $isEntrypoint) {
+            ->willReturnCallback(static function (string $importName, ImportMapType $type, string $version, string $packageModuleSpecifier, bool $isEntrypoint) {
                 $path = '/path/to/vendor/'.$packageModuleSpecifier.'.js';
 
                 return ImportMapEntry::createRemote($importName, $type, $path, $version, $packageModuleSpecifier, $isEntrypoint);
@@ -390,10 +445,10 @@
         );
     }
 
-    private static function resolvedPackage(string $packageName, string $version, ImportMapType $type = ImportMapType::JS)
+    private static function resolvedPackage(string $packageName, string $version, ImportMapType $type = ImportMapType::JS, bool $isEntrypoint = false)
     {
         return new ResolvedImportMapPackage(
-            new PackageRequireOptions($packageName),
+            new PackageRequireOptions($packageName, entrypoint: $isEntrypoint),
             $version,
             $type,
         );
@@ -401,7 +456,7 @@
 
     private function mockImportMap(array $importMapEntries): void
     {
-        $this->configReader->expects($this->any())
+        $this->configReader
             ->method('getEntries')
             ->willReturn(new ImportMapEntries($importMapEntries))
         ;
@@ -411,7 +466,7 @@
     {
         $path = \dirname(self::$writableRoot.'/'.$filename);
         if (!is_dir($path)) {
-            mkdir($path, 0777, true);
+            mkdir($path, 0o777, true);
         }
         file_put_contents(self::$writableRoot.'/'.$filename, $content);
     }
@@ -421,11 +476,11 @@
         return ImportMapEntry::createLocal($importName, $type, path: $path, isEntrypoint: $isEntrypoint);
     }
 
-    private static function createRemoteEntry(string $importName, string $version, ?string $path = null, ImportMapType $type = ImportMapType::JS, ?string $packageSpecifier = null): ImportMapEntry
+    private static function createRemoteEntry(string $importName, string $version, ?string $path = null, ImportMapType $type = ImportMapType::JS, ?string $packageSpecifier = null, bool $isEntrypoint = false): ImportMapEntry
     {
-        $packageSpecifier = $packageSpecifier ?? $importName;
-        $path = $path ?? '/vendor/any-path.js';
+        $packageSpecifier ??= $importName;
+        $path ??= '/vendor/any-path.js';
 
-        return ImportMapEntry::createRemote($importName, $type, path: $path, version: $version, packageModuleSpecifier: $packageSpecifier, isEntrypoint: false);
+        return ImportMapEntry::createRemote($importName, $type, path: $path, version: $version, packageModuleSpecifier: $packageSpecifier, isEntrypoint: $isEntrypoint);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapRendererTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapRendererTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapRendererTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapRendererTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,10 +60,10 @@
                 ],
             ]);
 
-        $assetPackages = $this->createMock(Packages::class);
-        $assetPackages->expects($this->any())
+        $assetPackages = $this->createStub(Packages::class);
+        $assetPackages
             ->method('getUrl')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 // try to imitate the behavior of the real service
                 if (str_starts_with($path, 'http') || str_starts_with($path, '/')) {
                     return $path;
@@ -116,7 +116,7 @@
 
         $renderer = new ImportMapRenderer(
             $importMapGenerator,
-            $this->createMock(Packages::class),
+            $this->createStub(Packages::class),
             polyfillImportName: 'es-module-shims',
         );
         $html = $renderer->render(['app']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapUpdateCheckerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapUpdateCheckerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapUpdateCheckerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapUpdateCheckerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
 
     protected function setUp(): void
     {
-        $this->importMapConfigReader = $this->createMock(ImportMapConfigReader::class);
+        $this->importMapConfigReader = $this->createStub(ImportMapConfigReader::class);
         $httpClient = new MockHttpClient();
         $httpClient->setResponseFactory(self::responseFactory(...));
         $this->updateChecker = new ImportMapUpdateChecker($this->importMapConfigReader, $httpClient);
@@ -120,9 +120,9 @@
         $this->importMapConfigReader->method('getEntries')->willReturn(new ImportMapEntries($entries));
         if (null !== $expectedException) {
             $this->expectException($expectedException::class);
-            $this->updateChecker->getAvailableUpdates(array_map(fn ($entry) => $entry->importName, $entries));
+            $this->updateChecker->getAvailableUpdates(array_map(static fn ($entry) => $entry->importName, $entries));
         } else {
-            $update = $this->updateChecker->getAvailableUpdates(array_map(fn ($entry) => $entry->importName, $entries));
+            $update = $this->updateChecker->getAvailableUpdates(array_map(static fn ($entry) => $entry->importName, $entries));
             $this->assertEquals($expectedUpdateInfo, $update);
         }
     }
@@ -207,7 +207,7 @@
 
     private static function createRemoteEntry(string $importName, string $version, ImportMapType $type = ImportMapType::JS, ?string $packageSpecifier = null): ImportMapEntry
     {
-        $packageSpecifier = $packageSpecifier ?? $importName;
+        $packageSpecifier ??= $importName;
 
         return ImportMapEntry::createRemote($importName, $type, path: '/vendor/any-path.js', version: $version, packageModuleSpecifier: $packageSpecifier, isEntrypoint: false);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapVersionCheckerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapVersionCheckerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapVersionCheckerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/ImportMapVersionCheckerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
         $remoteDownloader = $this->createMock(RemotePackageDownloader::class);
         $remoteDownloader->expects($this->exactly(\count($importMapEntries)))
             ->method('getDependencies')
-            ->with($this->callback(function ($importName) use ($importMapEntries) {
+            ->with($this->callback(static function ($importName) use ($importMapEntries) {
                 foreach ($importMapEntries as $entry) {
                     if ($entry->importName === $importName) {
                         return true;
@@ -46,9 +46,9 @@
 
                 return false;
             }))
-            ->willReturnCallback(function ($importName) use ($dependencies) {
+            ->willReturnCallback(static function ($importName) use ($dependencies) {
                 if (!isset($dependencies[$importName])) {
-                    throw new \InvalidArgumentException(sprintf('Missing dependencies in test for "%s"', $importName));
+                    throw new \InvalidArgumentException(\sprintf('Missing dependencies in test for "%s"', $importName));
                 }
 
                 return $dependencies[$importName];
@@ -427,7 +427,7 @@
 
     private static function createRemoteEntry(string $importName, string $version, ?string $packageModuleSpecifier = null): ImportMapEntry
     {
-        $packageModuleSpecifier = $packageModuleSpecifier ?? $importName;
+        $packageModuleSpecifier ??= $importName;
 
         return ImportMapEntry::createRemote($importName, ImportMapType::JS, '/path/to/'.$importName, $version, $packageModuleSpecifier, false);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageDownloaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageDownloaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageDownloaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageDownloaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
             ->method('getEntries')
             ->willReturn($importMapEntries);
 
-        $progressCallback = fn () => null;
+        $progressCallback = static fn () => null;
         $packageResolver->expects($this->once())
             ->method('downloadPackages')
             ->with(
@@ -116,13 +116,13 @@
 
         // matches installed version and file exists
         $entry1 = ImportMapEntry::createRemote('foo', ImportMapType::JS, path: '/any', version: '1.0.0', packageModuleSpecifier: 'foo', isEntrypoint: false);
-        @mkdir(self::$writableRoot.'/assets/vendor/foo', 0777, true);
+        @mkdir(self::$writableRoot.'/assets/vendor/foo', 0o777, true);
         file_put_contents(self::$writableRoot.'/assets/vendor/foo/foo.index.js', 'original foo content');
         // matches installed version but file does not exist
         $entry2 = ImportMapEntry::createRemote('bar.js/file', ImportMapType::JS, path: '/any', version: '1.0.0', packageModuleSpecifier: 'bar.js/file', isEntrypoint: false);
         // does not match installed version
         $entry3 = ImportMapEntry::createRemote('baz', ImportMapType::CSS, path: '/any', version: '1.1.0', packageModuleSpecifier: 'baz', isEntrypoint: false);
-        @mkdir(self::$writableRoot.'/assets/vendor/baz', 0777, true);
+        @mkdir(self::$writableRoot.'/assets/vendor/baz', 0o777, true);
         file_put_contents(self::$writableRoot.'/assets/vendor/baz/baz.index.css', 'original baz content');
         // matches installed & file exists, but has missing extra file
         $entry4 = ImportMapEntry::createRemote('has-missing-extra', ImportMapType::JS, path: '/any', version: '1.0.0', packageModuleSpecifier: 'has-missing-extra', isEntrypoint: false);
@@ -172,8 +172,8 @@
         $remotePackageStorage = new RemotePackageStorage('/foo/assets/vendor');
         $downloader = new RemotePackageDownloader(
             $remotePackageStorage,
-            $this->createMock(ImportMapConfigReader::class),
-            $this->createMock(PackageResolverInterface::class),
+            $this->createStub(ImportMapConfigReader::class),
+            $this->createStub(PackageResolverInterface::class),
         );
         $this->assertSame('/foo/assets/vendor', $downloader->getVendorDir());
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageStorageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageStorageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageStorageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/RemotePackageStorageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
         $vendorDir = self::$writableRoot.'/assets/acme/vendor';
         $this->filesystem->mkdir($vendorDir.'/module_specifier');
         $this->filesystem->touch($vendorDir.'/module_specifier/module_specifier.index.js');
-        $this->filesystem->chmod($vendorDir.'/module_specifier/module_specifier.index.js', 0555);
+        $this->filesystem->chmod($vendorDir.'/module_specifier/module_specifier.index.js', 0o555);
 
         $storage = new RemotePackageStorage($vendorDir);
         $entry = ImportMapEntry::createRemote('foo', ImportMapType::JS, '/does/not/matter', '1.0.0', 'module_specifier', false);
@@ -57,7 +57,7 @@
         try {
             $storage->save($entry, 'any content');
         } finally {
-            $this->filesystem->chmod($vendorDir.'/module_specifier/module_specifier.index.js', 0777);
+            $this->filesystem->chmod($vendorDir.'/module_specifier/module_specifier.index.js', 0o777);
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/Resolver/JsDelivrEsmResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/Resolver/JsDelivrEsmResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/Resolver/JsDelivrEsmResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/ImportMap/Resolver/JsDelivrEsmResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -441,16 +441,16 @@
                 [
                     'url' => '/es-module-shims@1.8.2',
                     'body' => <<<'EOF'
-const je="\n//# sourceURL=",Ue="\n//# sourceMappingURL=",Me=/^(text|application)\/(x-)?javascript(;|$)/,_e=/^(application)\/wasm(;|$)/,Ie=/^(text|application)\/json(;|$)/,Re=/^(text|application)\/css(;|$)/,Te=/url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;
-//# sourceMappingURL=/sm/ef3916de598f421a779ba0e69af94655b2043095cde2410cc01893452d893338.map
-EOF
+                        const je="\n//# sourceURL=",Ue="\n//# sourceMappingURL=",Me=/^(text|application)\/(x-)?javascript(;|$)/,_e=/^(application)\/wasm(;|$)/,Ie=/^(text|application)\/json(;|$)/,Re=/^(text|application)\/css(;|$)/,Te=/url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;
+                        //# sourceMappingURL=/sm/ef3916de598f421a779ba0e69af94655b2043095cde2410cc01893452d893338.map
+                        EOF,
                 ],
             ],
             [
                 'es-module-shims' => [
                     'content' => <<<'EOF'
-const je="\n//# sourceURL=",Ue="\n//# sourceMappingURL=",Me=/^(text|application)\/(x-)?javascript(;|$)/,_e=/^(application)\/wasm(;|$)/,Ie=/^(text|application)\/json(;|$)/,Re=/^(text|application)\/css(;|$)/,Te=/url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;
-EOF,
+                        const je="\n//# sourceURL=",Ue="\n//# sourceMappingURL=",Me=/^(text|application)\/(x-)?javascript(;|$)/,_e=/^(application)\/wasm(;|$)/,Ie=/^(text|application)\/json(;|$)/,Re=/^(text|application)\/css(;|$)/,Te=/url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;
+                        EOF,
                     'dependencies' => [],
                     'extraFiles' => [],
                 ],
@@ -482,16 +482,15 @@
             [
                 'url' => '/npm/bootstrap-icons@1.1.1/font/bootstrap-icons.min.css',
                 'body' => <<<EOF
-                @font-face{font-display:block;font-family:bootstrap-icons;src:
-                    url("fonts/bootstrap-icons.woff2?2820a3852bdb9a5832199cc61cec4e65") format("woff2"),
-                    url("fonts/bootstrap-icons.woff?2820a3852bdb9a5832199cc61cec4e65") format("woff")},
-                    url("./fonts/bootstrap-icons.woff-fake-dot-slash") format("woff-fake-dot-slash"),
-                    url("../fonts/bootstrap-icons.woff-fake-dot-dot-slash") format("woff-fake-dot-dot-slash"),
-                    url("data:will-be-ignored") format("woff-fake-data-format"),
-                    url("data:https://example.com/will-be-ignored") format("woff-fake-absolute-url"),
-                    .bi::before,[class*=" bi-"]::before,[class^=bi-]::before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;
-                EOF
-                ,
+                    @font-face{font-display:block;font-family:bootstrap-icons;src:
+                        url("fonts/bootstrap-icons.woff2?2820a3852bdb9a5832199cc61cec4e65") format("woff2"),
+                        url("fonts/bootstrap-icons.woff?2820a3852bdb9a5832199cc61cec4e65") format("woff")},
+                        url("./fonts/bootstrap-icons.woff-fake-dot-slash") format("woff-fake-dot-slash"),
+                        url("../fonts/bootstrap-icons.woff-fake-dot-dot-slash") format("woff-fake-dot-dot-slash"),
+                        url("data:will-be-ignored") format("woff-fake-data-format"),
+                        url("data:https://example.com/will-be-ignored") format("woff-fake-absolute-url"),
+                        .bi::before,[class*=" bi-"]::before,[class^=bi-]::before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;
+                    EOF,
             ],
             [
                 'url' => '/npm/bootstrap-icons@1.1.1/font/fonts/bootstrap-icons.woff2',
@@ -704,7 +703,7 @@
 
     private static function createRemoteEntry(string $importName, string $version, ImportMapType $type = ImportMapType::JS, ?string $packageSpecifier = null): ImportMapEntry
     {
-        $packageSpecifier = $packageSpecifier ?? $importName;
+        $packageSpecifier ??= $importName;
 
         return ImportMapEntry::createRemote($importName, $type, path: 'does not matter', version: $version, packageModuleSpecifier: $packageSpecifier, isEntrypoint: false);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/MapperAwareAssetPackageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/MapperAwareAssetPackageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/AssetMapper/Tests/MapperAwareAssetPackageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/AssetMapper/Tests/MapperAwareAssetPackageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
             ->with('foo')
             ->willReturn('2.0');
 
-        $assetMapperPackage = new MapperAwareAssetPackage($inner, $this->createMock(AssetMapperInterface::class));
+        $assetMapperPackage = new MapperAwareAssetPackage($inner, $this->createStub(AssetMapperInterface::class));
 
         $this->assertSame('2.0', $assetMapperPackage->getVersion('foo'));
     }
@@ -40,13 +40,11 @@
         $inner->expects($this->once())
             ->method('getUrl')
             ->with($expectedPathSentToInner)
-            ->willReturnCallback(function ($path) {
-                return '/'.$path;
-            });
-        $assetMapper = $this->createMock(AssetMapperInterface::class);
-        $assetMapper->expects($this->any())
+            ->willReturnCallback(static fn ($path) => '/'.$path);
+        $assetMapper = $this->createStub(AssetMapperInterface::class);
+        $assetMapper
             ->method('getPublicPath')
-            ->willReturnCallback(function ($path) {
+            ->willReturnCallback(static function ($path) {
                 switch ($path) {
                     case 'images/foo.png':
                         return '/assets/images/foo.123456.png';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/AbstractBrowser.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/AbstractBrowser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/AbstractBrowser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/AbstractBrowser.php	2026-05-20 10:56:49.000000000 +0200
@@ -204,7 +204,7 @@
      */
     public function getCrawler(): Crawler
     {
-        return $this->crawler ?? throw new BadMethodCallException(sprintf('The "request()" method must be called before "%s()".', __METHOD__));
+        return $this->crawler ?? throw new BadMethodCallException(\sprintf('The "request()" method must be called before "%s()".', __METHOD__));
     }
 
     /**
@@ -224,7 +224,7 @@
      */
     public function getInternalResponse(): Response
     {
-        return $this->internalResponse ?? throw new BadMethodCallException(sprintf('The "request()" method must be called before "%s()".', __METHOD__));
+        return $this->internalResponse ?? throw new BadMethodCallException(\sprintf('The "request()" method must be called before "%s()".', __METHOD__));
     }
 
     /**
@@ -237,7 +237,7 @@
      */
     public function getResponse(): object
     {
-        return $this->response ?? throw new BadMethodCallException(sprintf('The "request()" method must be called before "%s()".', __METHOD__));
+        return $this->response ?? throw new BadMethodCallException(\sprintf('The "request()" method must be called before "%s()".', __METHOD__));
     }
 
     /**
@@ -245,7 +245,7 @@
      */
     public function getInternalRequest(): Request
     {
-        return $this->internalRequest ?? throw new BadMethodCallException(sprintf('The "request()" method must be called before "%s()".', __METHOD__));
+        return $this->internalRequest ?? throw new BadMethodCallException(\sprintf('The "request()" method must be called before "%s()".', __METHOD__));
     }
 
     /**
@@ -258,7 +258,7 @@
      */
     public function getRequest(): object
     {
-        return $this->request ?? throw new BadMethodCallException(sprintf('The "request()" method must be called before "%s()".', __METHOD__));
+        return $this->request ?? throw new BadMethodCallException(\sprintf('The "request()" method must be called before "%s()".', __METHOD__));
     }
 
     /**
@@ -287,7 +287,7 @@
     {
         $serverParameters = 1 < \func_num_args() ? func_get_arg(1) : [];
 
-        $crawler = $this->crawler ?? throw new BadMethodCallException(sprintf('The "request()" method must be called before "%s()".', __METHOD__));
+        $crawler = $this->crawler ?? throw new BadMethodCallException(\sprintf('The "request()" method must be called before "%s()".', __METHOD__));
 
         return $this->click($crawler->selectLink($linkText)->link(), $serverParameters);
     }
@@ -316,11 +316,11 @@
      */
     public function submitForm(string $button, array $fieldValues = [], string $method = 'POST', array $serverParameters = []): Crawler
     {
-        $crawler = $this->crawler ?? throw new BadMethodCallException(sprintf('The "request()" method must be called before "%s()".', __METHOD__));
+        $crawler = $this->crawler ?? throw new BadMethodCallException(\sprintf('The "request()" method must be called before "%s()".', __METHOD__));
         $buttonNode = $crawler->selectButton($button);
 
         if (0 === $buttonNode->count()) {
-            throw new InvalidArgumentException(sprintf('There is no button with "%s" as its content, id, value or name.', $button));
+            throw new InvalidArgumentException(\sprintf('There is no button with "%s" as its content, id, value or name.', $button));
         }
 
         $form = $buttonNode->form($fieldValues, $method);
@@ -444,7 +444,7 @@
         }
 
         if (!$process->isSuccessful() || !preg_match('/^O\:\d+\:/', $process->getOutput())) {
-            throw new RuntimeException(sprintf('OUTPUT: %s ERROR OUTPUT: %s.', $process->getOutput(), $process->getErrorOutput()));
+            throw new RuntimeException(\sprintf('OUTPUT: %s ERROR OUTPUT: %s.', $process->getOutput(), $process->getErrorOutput()));
         }
 
         return unserialize($process->getOutput());
@@ -554,7 +554,7 @@
         if (-1 !== $this->maxRedirects) {
             if ($this->redirectCount > $this->maxRedirects) {
                 $this->redirectCount = 0;
-                throw new LogicException(sprintf('The maximum number (%d) of redirections was reached.', $this->maxRedirects));
+                throw new LogicException(\sprintf('The maximum number (%d) of redirections was reached.', $this->maxRedirects));
             }
         }
 
@@ -630,7 +630,7 @@
         if (!$this->history->isEmpty()) {
             $currentUri = $this->history->current()->getUri();
         } else {
-            $currentUri = sprintf('http%s://%s/',
+            $currentUri = \sprintf('http%s://%s/',
                 isset($this->server['HTTPS']) ? 's' : '',
                 $this->server['HTTP_HOST'] ?? 'localhost'
             );
@@ -656,7 +656,7 @@
             $uri = $path.$uri;
         }
 
-        return preg_replace('#^(.*?//[^/]+)\/.*$#', '$1', $currentUri).$uri;
+        return preg_replace('#^(.*?//[^/?]+)[/?].*$#', '$1', $currentUri).$uri;
     }
 
     /**
@@ -690,3 +690,5 @@
         return $host;
     }
 }
+
+// @php-cs-fixer-ignore error_suppression This file is explicitly expected to not silence each of trigger_error calls
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Cookie.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Cookie.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Cookie.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Cookie.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,17 +48,17 @@
     /**
      * Sets a cookie.
      *
-     * @param string      $name         The cookie name
-     * @param string|null $value        The value of the cookie
-     * @param string|null $expires      The time the cookie expires
-     * @param string|null $path         The path on the server in which the cookie will be available on
-     * @param string      $domain       The domain that the cookie is available
-     * @param bool        $secure       Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client
-     * @param bool        $httponly     The cookie httponly flag
-     * @param bool        $encodedValue Whether the value is encoded or not
-     * @param string|null $samesite     The cookie samesite attribute
+     * @param string          $name         The cookie name
+     * @param string|null     $value        The value of the cookie
+     * @param string|int|null $expires      The time the cookie expires
+     * @param string|null     $path         The path on the server in which the cookie will be available on
+     * @param string          $domain       The domain that the cookie is available
+     * @param bool            $secure       Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client
+     * @param bool            $httponly     The cookie httponly flag
+     * @param bool            $encodedValue Whether the value is encoded or not
+     * @param string|null     $samesite     The cookie samesite attribute
      */
-    public function __construct(string $name, ?string $value, ?string $expires = null, ?string $path = null, string $domain = '', bool $secure = false, bool $httponly = true, bool $encodedValue = false, ?string $samesite = null)
+    public function __construct(string $name, ?string $value, string|int|null $expires = null, ?string $path = null, string $domain = '', bool $secure = false, bool $httponly = true, bool $encodedValue = false, ?string $samesite = null)
     {
         if ($encodedValue) {
             $this->rawValue = $value ?? '';
@@ -77,7 +77,7 @@
         if (null !== $expires) {
             $timestampAsDateTime = \DateTimeImmutable::createFromFormat('U', $expires);
             if (false === $timestampAsDateTime) {
-                throw new UnexpectedValueException(sprintf('The cookie expiration time "%s" is not valid.', $expires));
+                throw new UnexpectedValueException(\sprintf('The cookie expiration time "%s" is not valid.', $expires));
             }
 
             $this->expires = $timestampAsDateTime->format('U');
@@ -89,7 +89,7 @@
      */
     public function __toString(): string
     {
-        $cookie = sprintf('%s=%s', $this->name, $this->rawValue);
+        $cookie = \sprintf('%s=%s', $this->name, $this->rawValue);
 
         if (null !== $this->expires) {
             $dateTime = \DateTimeImmutable::createFromFormat('U', $this->expires, new \DateTimeZone('GMT'));
@@ -129,7 +129,7 @@
         $parts = explode(';', $cookie);
 
         if (!str_contains($parts[0], '=')) {
-            throw new InvalidArgumentException(sprintf('The cookie string "%s" is not valid.', $parts[0]));
+            throw new InvalidArgumentException(\sprintf('The cookie string "%s" is not valid.', $parts[0]));
         }
 
         [$name, $value] = explode('=', array_shift($parts), 2);
@@ -148,7 +148,7 @@
 
         if (null !== $url) {
             if (false === ($urlParts = parse_url($url)) || !isset($urlParts['host'])) {
-                throw new InvalidArgumentException(sprintf('The URL "%s" is not valid.', $url));
+                throw new InvalidArgumentException(\sprintf('The URL "%s" is not valid.', $url));
             }
 
             $values['domain'] = $urlParts['host'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/HttpBrowser.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/HttpBrowser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/HttpBrowser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/HttpBrowser.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
     public function __construct(?HttpClientInterface $client = null, ?History $history = null, ?CookieJar $cookieJar = null)
     {
         if (!$client && !class_exists(HttpClient::class)) {
-            throw new LogicException(sprintf('You cannot use "%s" as the HttpClient component is not installed. Try running "composer require symfony/http-client".', __CLASS__));
+            throw new LogicException(\sprintf('You cannot use "%s" as the HttpClient component is not installed. Try running "composer require symfony/http-client".', __CLASS__));
         }
 
         $this->client = $client ?? HttpClient::create();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Response.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Response.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Response.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Response.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,10 +46,10 @@
         $headers = '';
         foreach ($this->headers as $name => $value) {
             if (\is_string($value)) {
-                $headers .= sprintf("%s: %s\n", $name, $value);
+                $headers .= \sprintf("%s: %s\n", $name, $value);
             } else {
                 foreach ($value as $headerValue) {
-                    $headers .= sprintf("%s: %s\n", $name, $headerValue);
+                    $headers .= \sprintf("%s: %s\n", $name, $headerValue);
                 }
             }
         }
@@ -104,7 +104,7 @@
         }
 
         if (!\is_array($content)) {
-            throw new JsonException(sprintf('JSON content was expected to decode to an array, "%s" returned.', get_debug_type($content)));
+            throw new JsonException(\sprintf('JSON content was expected to decode to an array, "%s" returned.', get_debug_type($content)));
         }
 
         return $this->jsonData = $content;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Test/Constraint/BrowserCookieValueSame.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Test/Constraint/BrowserCookieValueSame.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Test/Constraint/BrowserCookieValueSame.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Test/Constraint/BrowserCookieValueSame.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,14 +33,14 @@
 
     public function toString(): string
     {
-        $str = sprintf('has cookie "%s"', $this->name);
+        $str = \sprintf('has cookie "%s"', $this->name);
         if ('/' !== $this->path) {
-            $str .= sprintf(' with path "%s"', $this->path);
+            $str .= \sprintf(' with path "%s"', $this->path);
         }
         if ($this->domain) {
-            $str .= sprintf(' for domain "%s"', $this->domain);
+            $str .= \sprintf(' for domain "%s"', $this->domain);
         }
-        $str .= sprintf(' with %svalue "%s"', $this->raw ? 'raw ' : '', $this->value);
+        $str .= \sprintf(' with %svalue "%s"', $this->raw ? 'raw ' : '', $this->value);
 
         return $str;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Test/Constraint/BrowserHasCookie.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Test/Constraint/BrowserHasCookie.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Test/Constraint/BrowserHasCookie.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Test/Constraint/BrowserHasCookie.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,12 +29,12 @@
 
     public function toString(): string
     {
-        $str = sprintf('has cookie "%s"', $this->name);
+        $str = \sprintf('has cookie "%s"', $this->name);
         if ('/' !== $this->path) {
-            $str .= sprintf(' with path "%s"', $this->path);
+            $str .= \sprintf(' with path "%s"', $this->path);
         }
         if ($this->domain) {
-            $str .= sprintf(' for domain "%s"', $this->domain);
+            $str .= \sprintf(' for domain "%s"', $this->domain);
         }
 
         return $str;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/AbstractBrowserTest.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/AbstractBrowserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/AbstractBrowserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/AbstractBrowserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -889,4 +889,13 @@
 
         $client->getInternalRequest();
     }
+
+    public function testHistoryWithParametersAndNoSlash()
+    {
+        $client = $this->getBrowser();
+        $client->request('GET', 'https://www.example.com?the=value');
+        $client->request('GET', '/path/?parameter=value');
+
+        $this->assertSame('https://www.example.com/path/?parameter=value', $client->getRequest()->getUri(), '->request() history provides proper base.');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/CookieJarTest.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/CookieJarTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/CookieJarTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/CookieJarTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -94,7 +94,7 @@
     {
         $timestamp = time() + 3600;
         $date = gmdate('D, d M Y H:i:s \G\M\T', $timestamp);
-        $setCookies = [sprintf('foo=foo; expires=%s; domain=.symfony.com; path=/, bar=bar; domain=.blog.symfony.com, PHPSESSID=id; expires=%1$s', $date)];
+        $setCookies = [\sprintf('foo=foo; expires=%s; domain=.symfony.com; path=/, bar=bar; domain=.blog.symfony.com, PHPSESSID=id; expires=%1$s', $date)];
 
         $cookieJar = new CookieJar();
         $cookieJar->updateFromSetCookie($setCookies);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/HttpBrowserTest.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/HttpBrowserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/HttpBrowserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/HttpBrowserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
             ->expects($this->once())
             ->method('request')
             ->with(...$expectedArguments)
-            ->willReturn($this->createMock(ResponseInterface::class));
+            ->willReturn($this->createStub(ResponseInterface::class));
 
         $browser = new HttpBrowser($client);
         $browser->request(...$requestArguments);
@@ -104,7 +104,7 @@
 
                 return true;
             }))
-            ->willReturn($this->createMock(ResponseInterface::class));
+            ->willReturn($this->createStub(ResponseInterface::class));
 
         $browser = new HttpBrowser($client);
         $path = tempnam(sys_get_temp_dir(), 'http');
@@ -196,7 +196,7 @@
             ->expects($this->once())
             ->method('request')
             ->with('GET', 'http://localhost'.$requestPath)
-            ->willReturn($this->createMock(ResponseInterface::class));
+            ->willReturn($this->createStub(ResponseInterface::class));
         $browser = new HttpBrowser($client);
         $browser->request('GET', $requestPath);
     }
@@ -272,7 +272,7 @@
 
                 return true;
             }))
-            ->willReturn($this->createMock(ResponseInterface::class));
+            ->willReturn($this->createStub(ResponseInterface::class));
     }
 
     protected function expectClientToNotSendRequestWithFiles(HttpClientInterface $client, $fileContents)
@@ -290,6 +290,6 @@
 
                 return true;
             }))
-            ->willReturn($this->createMock(ResponseInterface::class));
+            ->willReturn($this->createStub(ResponseInterface::class));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserCookieValueSameTest.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserCookieValueSameTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserCookieValueSameTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserCookieValueSameTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,10 +44,10 @@
 
     private function getBrowser(): AbstractBrowser
     {
-        $browser = $this->createMock(AbstractBrowser::class);
+        $browser = $this->createStub(AbstractBrowser::class);
         $jar = new CookieJar();
         $jar->set(new Cookie('foo', 'bar', null, '/path', 'example.com'));
-        $browser->expects($this->any())->method('getCookieJar')->willReturn($jar);
+        $browser->method('getCookieJar')->willReturn($jar);
 
         return $browser;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserHasCookieTest.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserHasCookieTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserHasCookieTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/Test/Constraint/BrowserHasCookieTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -74,10 +74,10 @@
 
     private function getBrowser(): AbstractBrowser
     {
-        $browser = $this->createMock(AbstractBrowser::class);
+        $browser = $this->createStub(AbstractBrowser::class);
         $jar = new CookieJar();
         $jar->set(new Cookie('foo', 'bar', null, '/path', 'example.com'));
-        $browser->expects($this->any())->method('getCookieJar')->willReturn($jar);
+        $browser->method('getCookieJar')->willReturn($jar);
 
         return $browser;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/TestClient.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/TestClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/TestClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/TestClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,11 +47,11 @@
         $path = $r->getFileName();
 
         return <<<EOF
-<?php
+            <?php
 
-require_once('$path');
+            require_once('$path');
 
-echo serialize($this->nextScript);
-EOF;
+            echo serialize($this->nextScript);
+            EOF;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/TestHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/TestHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/BrowserKit/Tests/TestHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/BrowserKit/Tests/TestHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,11 +70,11 @@
         $path = $r->getFileName();
 
         return <<<EOF
-<?php
+            <?php
 
-require_once('$path');
+            require_once('$path');
 
-echo serialize($this->nextScript);
-EOF;
+            echo serialize($this->nextScript);
+            EOF;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/AbstractAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/AbstractAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/AbstractAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/AbstractAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
         $this->namespace = '' === $namespace ? '' : CacheItem::validateKey($namespace).static::NS_SEPARATOR;
         $this->defaultLifetime = $defaultLifetime;
         if (null !== $this->maxIdLength && \strlen($namespace) > $this->maxIdLength - 24) {
-            throw new InvalidArgumentException(sprintf('Namespace must be %d chars max, %d given ("%s").', $this->maxIdLength - 24, \strlen($namespace), $namespace));
+            throw new InvalidArgumentException(\sprintf('Namespace must be %d chars max, %d given ("%s").', $this->maxIdLength - 24, \strlen($namespace), $namespace));
         }
         self::$createCacheItem ??= \Closure::bind(
             static function ($key, $value, $isHit) {
@@ -155,7 +155,7 @@
                     $ok = false;
                     $v = $values[$id];
                     $type = get_debug_type($v);
-                    $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.');
+                    $message = \sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.');
                     CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]);
                 }
             } else {
@@ -178,7 +178,7 @@
                 }
                 $ok = false;
                 $type = get_debug_type($v);
-                $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.');
+                $message = \sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.');
                 CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]);
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/AbstractTagAwareAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/AbstractTagAwareAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/AbstractTagAwareAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/AbstractTagAwareAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
         $this->namespace = '' === $namespace ? '' : CacheItem::validateKey($namespace).':';
         $this->defaultLifetime = $defaultLifetime;
         if (null !== $this->maxIdLength && \strlen($namespace) > $this->maxIdLength - 24) {
-            throw new InvalidArgumentException(sprintf('Namespace must be %d chars max, %d given ("%s").', $this->maxIdLength - 24, \strlen($namespace), $namespace));
+            throw new InvalidArgumentException(\sprintf('Namespace must be %d chars max, %d given ("%s").', $this->maxIdLength - 24, \strlen($namespace), $namespace));
         }
         self::$createCacheItem ??= \Closure::bind(
             static function ($key, $value, $isHit) {
@@ -192,9 +192,8 @@
             if (\is_array($e) || 1 === \count($values)) {
                 foreach (\is_array($e) ? $e : array_keys($values) as $id) {
                     $ok = false;
-                    $v = $values[$id];
-                    $type = get_debug_type($v);
-                    $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.');
+                    $type = \array_key_exists($id, $values) ? get_debug_type($values[$id]) : 'unknown';
+                    $message = \sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.');
                     CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]);
                 }
             } else {
@@ -218,7 +217,7 @@
                 }
                 $ok = false;
                 $type = get_debug_type($v);
-                $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.');
+                $message = \sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.');
                 CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]);
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/ApcuAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/ApcuAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/ApcuAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/ApcuAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -82,7 +82,7 @@
     protected function doClear(string $namespace): bool
     {
         return isset($namespace[0]) && class_exists(\APCUIterator::class, false) && ('cli' !== \PHP_SAPI || filter_var(\ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOL))
-            ? apcu_delete(new \APCUIterator(sprintf('/^%s/', preg_quote($namespace, '/')), \APC_ITER_KEY))
+            ? apcu_delete(new \APCUIterator(\sprintf('/^%s/', preg_quote($namespace, '/')), \APC_ITER_KEY))
             : apcu_clear_cache();
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/ArrayAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/ArrayAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/ArrayAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/ArrayAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,6 +34,7 @@
     private array $values = [];
     private array $tags = [];
     private array $expiries = [];
+    private array $explicitExpiries = [];
     private int $defaultLifetime;
     private float $maxLifetime;
     private int $maxItems;
@@ -46,11 +47,11 @@
     public function __construct(int $defaultLifetime = 0, bool $storeSerialized = true, float $maxLifetime = 0, int $maxItems = 0)
     {
         if (0 > $maxLifetime) {
-            throw new InvalidArgumentException(sprintf('Argument $maxLifetime must be positive, %F passed.', $maxLifetime));
+            throw new InvalidArgumentException(\sprintf('Argument $maxLifetime must be positive, %F passed.', $maxLifetime));
         }
 
         if (0 > $maxItems) {
-            throw new InvalidArgumentException(sprintf('Argument $maxItems must be a positive integer, %d passed.', $maxItems));
+            throw new InvalidArgumentException(\sprintf('Argument $maxItems must be a positive integer, %d passed.', $maxItems));
         }
 
         $this->defaultLifetime = $defaultLifetime;
@@ -58,7 +59,7 @@
         $this->maxLifetime = $maxLifetime;
         $this->maxItems = $maxItems;
         self::$createCacheItem ??= \Closure::bind(
-            static function ($key, $value, $isHit, $tags) {
+            static function ($key, $value, $isHit, $tags, $expiry = null) {
                 $item = new CacheItem();
                 $item->key = $key;
                 $item->value = $value;
@@ -66,6 +67,9 @@
                 if (null !== $tags) {
                     $item->metadata[CacheItem::METADATA_TAGS] = $tags;
                 }
+                if (null !== $expiry) {
+                    $item->metadata[CacheItem::METADATA_EXPIRY] = $expiry;
+                }
 
                 return $item;
             },
@@ -126,7 +130,7 @@
             $value = $this->storeSerialized ? $this->unfreeze($key, $isHit) : $this->values[$key];
         }
 
-        return (self::$createCacheItem)($key, $value, $isHit, $this->tags[$key] ?? null);
+        return (self::$createCacheItem)($key, $value, $isHit, $this->tags[$key] ?? null, $this->explicitExpiries[$key] ?? null);
     }
 
     public function getItems(array $keys = []): iterable
@@ -139,7 +143,7 @@
     public function deleteItem(mixed $key): bool
     {
         \assert('' !== CacheItem::validateKey($key));
-        unset($this->values[$key], $this->tags[$key], $this->expiries[$key]);
+        unset($this->values[$key], $this->tags[$key], $this->expiries[$key], $this->explicitExpiries[$key]);
 
         return true;
     }
@@ -193,13 +197,19 @@
                     break;
                 }
 
-                unset($this->values[$k], $this->tags[$k], $this->expiries[$k]);
+                unset($this->values[$k], $this->tags[$k], $this->expiries[$k], $this->explicitExpiries[$k]);
             }
         }
 
         $this->values[$key] = $value;
         $this->expiries[$key] = $expiry ?? \PHP_INT_MAX;
 
+        if (null !== $item["\0*\0expiry"] && \PHP_INT_MAX !== $this->expiries[$key]) {
+            $this->explicitExpiries[$key] = $this->expiries[$key];
+        } else {
+            unset($this->explicitExpiries[$key]);
+        }
+
         if (null === $this->tags[$key] = $item["\0*\0newMetadata"][CacheItem::METADATA_TAGS] ?? null) {
             unset($this->tags[$key]);
         }
@@ -224,7 +234,7 @@
 
             foreach ($this->values as $key => $value) {
                 if (!isset($this->expiries[$key]) || $this->expiries[$key] <= $now || str_starts_with($key, $prefix)) {
-                    unset($this->values[$key], $this->tags[$key], $this->expiries[$key]);
+                    unset($this->values[$key], $this->tags[$key], $this->expiries[$key], $this->explicitExpiries[$key]);
                 }
             }
 
@@ -233,7 +243,7 @@
             }
         }
 
-        $this->values = $this->tags = $this->expiries = [];
+        $this->values = $this->tags = $this->expiries = $this->explicitExpiries = [];
 
         return true;
     }
@@ -290,7 +300,7 @@
             }
             unset($keys[$i]);
 
-            yield $key => $f($key, $value, $isHit, $this->tags[$key] ?? null);
+            yield $key => $f($key, $value, $isHit, $this->tags[$key] ?? null, $this->explicitExpiries[$key] ?? null);
         }
 
         foreach ($keys as $key) {
@@ -316,7 +326,7 @@
                     unset($this->values[$key]);
                 }
                 $type = get_debug_type($value);
-                $message = sprintf('Failed to save key "{key}" of type %s: %s', $type, $e->getMessage());
+                $message = \sprintf('Failed to save key "{key}" of type %s: %s', $type, $e->getMessage());
                 CacheItem::log($this->logger, $message, ['key' => $key, 'exception' => $e, 'cache-adapter' => get_debug_type($this)]);
 
                 return null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/ChainAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/ChainAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/ChainAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/ChainAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
 
         foreach ($adapters as $adapter) {
             if (!$adapter instanceof CacheItemPoolInterface) {
-                throw new InvalidArgumentException(sprintf('The class "%s" does not implement the "%s" interface.', get_debug_type($adapter), CacheItemPoolInterface::class));
+                throw new InvalidArgumentException(\sprintf('The class "%s" does not implement the "%s" interface.', get_debug_type($adapter), CacheItemPoolInterface::class));
             }
             if ('cli' === \PHP_SAPI && $adapter instanceof ApcuAdapter && !filter_var(\ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOL)) {
                 continue; // skip putting APCu in the chain when the backend is disabled
@@ -76,9 +76,10 @@
                 $item->metadata = $item->newMetadata = $sourceItem->metadata = $sourceMetadata;
 
                 if (isset($item->metadata[CacheItem::METADATA_EXPIRY])) {
-                    $item->expiresAt(\DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $item->metadata[CacheItem::METADATA_EXPIRY])));
+                    $item->expiresAt(\DateTimeImmutable::createFromFormat('U.u', \sprintf('%.6F', $item->metadata[CacheItem::METADATA_EXPIRY])));
                 } elseif (0 < $defaultLifetime) {
                     $item->expiresAfter($defaultLifetime);
+                    $item->newMetadata[CacheItem::METADATA_EXPIRY] = $item->expiry;
                 }
 
                 return $item;
@@ -106,7 +107,7 @@
                 $callback = $wrap;
                 $beta = \INF === $beta ? \INF : 0;
             }
-            if ($adapter instanceof CacheInterface) {
+            if ($adapter instanceof CacheInterface && $i !== $this->adapterCount) {
                 $value = $adapter->get($key, $callback, $beta, $metadata);
             } else {
                 $value = $this->doGet($adapter, $key, $callback, $beta, $metadata);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/DoctrineDbalAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/DoctrineDbalAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/DoctrineDbalAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/DoctrineDbalAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,6 +32,8 @@
 {
     private const MAX_KEY_LENGTH = 255;
 
+    private static int $savepointCounter = 0;
+
     private MarshallerInterface $marshaller;
     private Connection $conn;
     private string $platformName;
@@ -62,7 +64,7 @@
     public function __construct(Connection|string $connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], ?MarshallerInterface $marshaller = null)
     {
         if (isset($namespace[0]) && preg_match('#[^-+.A-Za-z0-9]#', $namespace, $match)) {
-            throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+.A-Za-z0-9] are allowed.', $match[0]));
+            throw new InvalidArgumentException(\sprintf('Namespace contains "%s" but only characters in [-+.A-Za-z0-9] are allowed.', $match[0]));
         }
 
         if ($connOrDsn instanceof Connection) {
@@ -151,7 +153,7 @@
 
         if ('' !== $this->namespace) {
             $deleteSql .= " AND $this->idCol LIKE ?";
-            $params[] = sprintf('%s%%', $this->namespace);
+            $params[] = \sprintf('%s%%', $this->namespace);
             $paramTypes[] = ParameterType::STRING;
         }
 
@@ -244,6 +246,26 @@
             return $failed;
         }
 
+        if ($this->conn->isTransactionActive() && $this->conn->getDatabasePlatform()->supportsSavepoints()) {
+            $savepoint = 'cache_save_'.++self::$savepointCounter;
+            try {
+                $this->conn->createSavepoint($savepoint);
+                $failed = $this->doSaveInner($values, $lifetime, $failed);
+                $this->conn->releaseSavepoint($savepoint);
+
+                return $failed;
+            } catch (\Throwable $e) {
+                $this->conn->rollbackSavepoint($savepoint);
+
+                throw $e;
+            }
+        }
+
+        return $this->doSaveInner($values, $lifetime, $failed);
+    }
+
+    private function doSaveInner(array $values, int $lifetime, array $failed): array|bool
+    {
         $platformName = $this->getPlatformName();
         $insertSql = "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?)";
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/MemcachedAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/MemcachedAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/MemcachedAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/MemcachedAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
     /**
      * We are replacing characters that are illegal in Memcached keys with reserved characters from
      * {@see \Symfony\Contracts\Cache\ItemInterface::RESERVED_CHARACTERS} that are legal in Memcached.
-     * Note: don’t use {@see \Symfony\Component\Cache\Adapter\AbstractAdapter::NS_SEPARATOR}.
+     * Note: don’t use {@see AbstractAdapter::NS_SEPARATOR}.
      */
     private const RESERVED_MEMCACHED = " \n\r\t\v\f\0";
     private const RESERVED_PSR6 = '@()\{}/';
@@ -111,7 +111,7 @@
                 if (!str_starts_with($dsn, 'memcached:')) {
                     throw new InvalidArgumentException('Invalid Memcached DSN: it does not start with "memcached:".');
                 }
-                $params = preg_replace_callback('#^memcached:(//)?(?:([^@]*+)@)?#', function ($m) use (&$username, &$password) {
+                $params = preg_replace_callback('#^memcached:(//)?(?:([^@]*+)@)?#', static function ($m) use (&$username, &$password) {
                     if (!empty($m[2])) {
                         [$username, $password] = explode(':', $m[2], 2) + [1 => null];
                         $username = rawurldecode($username);
@@ -314,7 +314,7 @@
             throw new CacheException('MemcachedAdapter: "serializer" option must be "php" or "igbinary".');
         }
         if ('' !== $prefix = (string) $this->lazyClient->getOption(\Memcached::OPT_PREFIX_KEY)) {
-            throw new CacheException(sprintf('MemcachedAdapter: "prefix_key" option must be empty when using proxified connections, "%s" given.', $prefix));
+            throw new CacheException(\sprintf('MemcachedAdapter: "prefix_key" option must be empty when using proxified connections, "%s" given.', $prefix));
         }
 
         return $this->client = $this->lazyClient;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/ParameterNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/ParameterNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/ParameterNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/ParameterNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
         try {
             return \DateTimeImmutable::createFromFormat('U', 0)->add(new \DateInterval($duration))->getTimestamp();
         } catch (\Exception $e) {
-            throw new \InvalidArgumentException(sprintf('Cannot parse date interval "%s".', $duration), 0, $e);
+            throw new \InvalidArgumentException(\sprintf('Cannot parse date interval "%s".', $duration), 0, $e);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/PdoAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/PdoAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/PdoAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/PdoAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,16 +57,16 @@
     public function __construct(#[\SensitiveParameter] \PDO|string $connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], ?MarshallerInterface $marshaller = null)
     {
         if (\is_string($connOrDsn) && str_contains($connOrDsn, '://')) {
-            throw new InvalidArgumentException(sprintf('Usage of Doctrine DBAL URL with "%s" is not supported. Use a PDO DSN or "%s" instead.', __CLASS__, DoctrineDbalAdapter::class));
+            throw new InvalidArgumentException(\sprintf('Usage of Doctrine DBAL URL with "%s" is not supported. Use a PDO DSN or "%s" instead.', __CLASS__, DoctrineDbalAdapter::class));
         }
 
         if (isset($namespace[0]) && preg_match('#[^-+.A-Za-z0-9]#', $namespace, $match)) {
-            throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+.A-Za-z0-9] are allowed.', $match[0]));
+            throw new InvalidArgumentException(\sprintf('Namespace contains "%s" but only characters in [-+.A-Za-z0-9] are allowed.', $match[0]));
         }
 
         if ($connOrDsn instanceof \PDO) {
             if (\PDO::ERRMODE_EXCEPTION !== $connOrDsn->getAttribute(\PDO::ATTR_ERRMODE)) {
-                throw new InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __CLASS__));
+                throw new InvalidArgumentException(\sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __CLASS__));
             }
 
             $this->conn = $connOrDsn;
@@ -108,12 +108,12 @@
             // - trailing space removal
             // - case-insensitivity
             // - language processing like é == e
-            'mysql' => "CREATE TABLE $this->table ($this->idCol VARBINARY(255) NOT NULL PRIMARY KEY, $this->dataCol MEDIUMBLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8mb4_bin, ENGINE = InnoDB",
+            'mysql' => "CREATE TABLE $this->table ($this->idCol VARBINARY(255) NOT NULL PRIMARY KEY, $this->dataCol MEDIUMBLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED, $this->timeCol INTEGER UNSIGNED NOT NULL) ENGINE = InnoDB",
             'sqlite' => "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)",
             'pgsql' => "CREATE TABLE $this->table ($this->idCol VARCHAR(255) NOT NULL PRIMARY KEY, $this->dataCol BYTEA NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)",
             'oci' => "CREATE TABLE $this->table ($this->idCol VARCHAR2(255) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)",
             'sqlsrv' => "CREATE TABLE $this->table ($this->idCol VARCHAR(255) NOT NULL PRIMARY KEY, $this->dataCol VARBINARY(MAX) NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)",
-            default => throw new \DomainException(sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $driver)),
+            default => throw new \DomainException(\sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $driver)),
         };
 
         $this->getConnection()->exec($sql);
@@ -137,7 +137,7 @@
         $delete->bindValue(':time', time(), \PDO::PARAM_INT);
 
         if ('' !== $this->namespace) {
-            $delete->bindValue(':namespace', sprintf('%s%%', $this->namespace), \PDO::PARAM_STR);
+            $delete->bindValue(':namespace', \sprintf('%s%%', $this->namespace), \PDO::PARAM_STR);
         }
         try {
             return $delete->execute();
@@ -314,7 +314,17 @@
             $insertStmt->bindValue(':time', $now, \PDO::PARAM_INT);
         }
 
+        if ('sqlsrv' === $driver) {
+            $dataStream = fopen('php://memory', 'r+');
+        }
         foreach ($values as $id => $data) {
+            if ('sqlsrv' === $driver) {
+                rewind($dataStream);
+                fwrite($dataStream, $data);
+                ftruncate($dataStream, \strlen($data));
+                rewind($dataStream);
+                $data = $dataStream;
+            }
             try {
                 $stmt->execute();
             } catch (\PDOException $e) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/PhpArrayAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/PhpArrayAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/PhpArrayAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/PhpArrayAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,7 @@
 use Symfony\Component\Cache\Exception\InvalidArgumentException;
 use Symfony\Component\Cache\PruneableInterface;
 use Symfony\Component\Cache\ResettableInterface;
+use Symfony\Component\Cache\Traits\CachedValueInterface;
 use Symfony\Component\Cache\Traits\ContractsTrait;
 use Symfony\Component\Cache\Traits\ProxyTrait;
 use Symfony\Component\VarExporter\VarExporter;
@@ -96,22 +97,21 @@
         if ('N;' === $value) {
             return null;
         }
+        if (!$value instanceof CachedValueInterface) {
+            return $value;
+        }
         try {
-            if ($value instanceof \Closure) {
-                return $value();
-            }
+            return $value->getValue();
         } catch (\Throwable) {
             unset($this->keys[$key]);
             goto get_from_pool;
         }
-
-        return $value;
     }
 
     public function getItem(mixed $key): CacheItem
     {
         if (!\is_string($key)) {
-            throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
+            throw new InvalidArgumentException(\sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
         }
         if (!isset($this->values)) {
             $this->initialize();
@@ -125,9 +125,9 @@
 
         if ('N;' === $value) {
             $value = null;
-        } elseif ($value instanceof \Closure) {
+        } elseif ($value instanceof CachedValueInterface) {
             try {
-                $value = $value();
+                $value = $value->getValue();
             } catch (\Throwable) {
                 $value = null;
                 $isHit = false;
@@ -141,7 +141,7 @@
     {
         foreach ($keys as $key) {
             if (!\is_string($key)) {
-                throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
+                throw new InvalidArgumentException(\sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
             }
         }
         if (!isset($this->values)) {
@@ -154,7 +154,7 @@
     public function hasItem(mixed $key): bool
     {
         if (!\is_string($key)) {
-            throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
+            throw new InvalidArgumentException(\sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
         }
         if (!isset($this->values)) {
             $this->initialize();
@@ -166,7 +166,7 @@
     public function deleteItem(mixed $key): bool
     {
         if (!\is_string($key)) {
-            throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
+            throw new InvalidArgumentException(\sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
         }
         if (!isset($this->values)) {
             $this->initialize();
@@ -182,7 +182,7 @@
 
         foreach ($keys as $key) {
             if (!\is_string($key)) {
-                throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
+                throw new InvalidArgumentException(\sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
             }
 
             if (isset($this->keys[$key])) {
@@ -250,21 +250,21 @@
     {
         if (file_exists($this->file)) {
             if (!is_file($this->file)) {
-                throw new InvalidArgumentException(sprintf('Cache path exists and is not a file: "%s".', $this->file));
+                throw new InvalidArgumentException(\sprintf('Cache path exists and is not a file: "%s".', $this->file));
             }
 
             if (!is_writable($this->file)) {
-                throw new InvalidArgumentException(sprintf('Cache file is not writable: "%s".', $this->file));
+                throw new InvalidArgumentException(\sprintf('Cache file is not writable: "%s".', $this->file));
             }
         } else {
             $directory = \dirname($this->file);
 
-            if (!is_dir($directory) && !@mkdir($directory, 0777, true)) {
-                throw new InvalidArgumentException(sprintf('Cache directory does not exist and cannot be created: "%s".', $directory));
+            if (!is_dir($directory) && !@mkdir($directory, 0o777, true)) {
+                throw new InvalidArgumentException(\sprintf('Cache directory does not exist and cannot be created: "%s".', $directory));
             }
 
             if (!is_writable($directory)) {
-                throw new InvalidArgumentException(sprintf('Cache directory is not writable: "%s".', $directory));
+                throw new InvalidArgumentException(\sprintf('Cache directory is not writable: "%s".', $directory));
             }
         }
 
@@ -272,14 +272,14 @@
         $dumpedValues = '';
         $dumpedMap = [];
         $dump = <<<'EOF'
-<?php
+            <?php
 
-// This file has been auto-generated by the Symfony Cache Component.
+            // This file has been auto-generated by the Symfony Cache Component.
 
-return [[
+            return [[
 
 
-EOF;
+            EOF;
 
         foreach ($values as $key => $value) {
             CacheItem::validateKey(\is_int($key) ? (string) $key : $key);
@@ -291,7 +291,7 @@
                 try {
                     $value = VarExporter::export($value, $isStaticValue, $preload);
                 } catch (\Exception $e) {
-                    throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value)), 0, $e);
+                    throw new InvalidArgumentException(\sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value)), 0, $e);
                 }
             } elseif (\is_string($value)) {
                 // Wrap "N;" in a closure to not confuse it with an encoded `null`
@@ -300,14 +300,13 @@
                 }
                 $value = var_export($value, true);
             } elseif (!\is_scalar($value)) {
-                throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value)));
+                throw new InvalidArgumentException(\sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value)));
             } else {
                 $value = var_export($value, true);
             }
 
             if (!$isStaticValue) {
-                $value = str_replace("\n", "\n    ", $value);
-                $value = "static function () {\n    return {$value};\n}";
+                $value = 'new class() implements \\'.CachedValueInterface::class." { public function getValue(): mixed { return {$value}; } }";
             }
             $hash = hash('xxh128', $value);
 
@@ -324,7 +323,7 @@
         $tmpFile = uniqid($this->file, true);
 
         file_put_contents($tmpFile, $dump);
-        @chmod($tmpFile, 0666 & ~umask());
+        @chmod($tmpFile, 0o666 & ~umask());
         unset($serialized, $value, $dump);
 
         @rename($tmpFile, $this->file);
@@ -368,9 +367,9 @@
 
                 if ('N;' === $value) {
                     yield $key => $f($key, null, true);
-                } elseif ($value instanceof \Closure) {
+                } elseif ($value instanceof CachedValueInterface) {
                     try {
-                        yield $key => $f($key, $value(), true);
+                        yield $key => $f($key, $value->getValue(), true);
                     } catch (\Throwable) {
                         yield $key => $f($key, null, false);
                     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/PhpFilesAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/PhpFilesAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/PhpFilesAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/PhpFilesAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use Symfony\Component\Cache\Exception\CacheException;
 use Symfony\Component\Cache\Exception\InvalidArgumentException;
 use Symfony\Component\Cache\PruneableInterface;
+use Symfony\Component\Cache\Traits\CachedValueInterface;
 use Symfony\Component\Cache\Traits\FilesystemCommonTrait;
 use Symfony\Component\VarExporter\VarExporter;
 
@@ -114,8 +115,10 @@
                 $values[$id] = null;
             } elseif (!\is_object($value)) {
                 $values[$id] = $value;
+            } elseif ($value instanceof CachedValueInterface) {
+                $values[$id] = $value->getValue();
             } elseif (!$value instanceof LazyValue) {
-                $values[$id] = $value();
+                $values[$id] = $value;
             } elseif (false === $values[$id] = include $value->file) {
                 unset($values[$id], $this->values[$id]);
                 $missingIds[] = $id;
@@ -152,7 +155,7 @@
                     if ($now >= $expiresAt) {
                         unset($this->values[$id], $missingIds[$k], self::$valuesCache[$file]);
                     }
-                } catch (\ErrorException $e) {
+                } catch (\ErrorException) {
                     unset($missingIds[$k]);
                 }
             }
@@ -217,7 +220,7 @@
                 try {
                     $value = VarExporter::export($value, $isStaticValue);
                 } catch (\Exception $e) {
-                    throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value)), 0, $e);
+                    throw new InvalidArgumentException(\sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value)), 0, $e);
                 }
             } elseif (\is_string($value)) {
                 // Wrap "N;" in a closure to not confuse it with an encoded `null`
@@ -226,7 +229,7 @@
                 }
                 $value = var_export($value, true);
             } elseif (!\is_scalar($value)) {
-                throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value)));
+                throw new InvalidArgumentException(\sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value)));
             } else {
                 $value = var_export($value, true);
             }
@@ -236,7 +239,7 @@
             if ($isStaticValue) {
                 $value = "return [{$expiry}, {$value}];";
             } elseif ($this->appendOnly) {
-                $value = "return [{$expiry}, static fn () => {$value}];";
+                $value = "return [{$expiry}, new class() implements \\".CachedValueInterface::class." { public function getValue(): mixed { return {$value}; } }];";
             } else {
                 // We cannot use a closure here because of https://bugs.php.net/76982
                 $value = str_replace('\Symfony\Component\VarExporter\Internal\\', '', $value);
@@ -255,7 +258,7 @@
         }
 
         if (!$ok && !is_writable($this->directory)) {
-            throw new CacheException(sprintf('Cache directory is not writable (%s).', $this->directory));
+            throw new CacheException(\sprintf('Cache directory is not writable (%s).', $this->directory));
         }
 
         return $ok;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/ProxyAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/ProxyAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/ProxyAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/ProxyAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
         self::$setInnerItem ??= \Closure::bind(
             static function (CacheItemInterface $innerItem, CacheItem $item, $expiry = null) {
                 $innerItem->set($item->pack());
-                $innerItem->expiresAt(($expiry ?? $item->expiry) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $expiry ?? $item->expiry)) : null);
+                $innerItem->expiresAt(($expiry ?? $item->expiry) ? \DateTimeImmutable::createFromFormat('U.u', \sprintf('%.6F', $expiry ?? $item->expiry)) : null);
             },
             null,
             CacheItem::class
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/RedisTagAwareAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/RedisTagAwareAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/RedisTagAwareAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/RedisTagAwareAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use Predis\Connection\Aggregate\ClusterInterface;
 use Predis\Connection\Aggregate\PredisCluster;
 use Predis\Connection\Aggregate\ReplicationInterface;
+use Predis\Connection\Replication\ReplicationInterface as Predis2ReplicationInterface;
 use Predis\Response\ErrorInterface;
 use Predis\Response\Status;
 use Relay\Relay;
@@ -63,7 +64,7 @@
     public function __construct(\Redis|Relay|\RedisArray|\RedisCluster|\Predis\ClientInterface $redis, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null)
     {
         if ($redis instanceof \Predis\ClientInterface && $redis->getConnection() instanceof ClusterInterface && !$redis->getConnection() instanceof PredisCluster) {
-            throw new InvalidArgumentException(sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', PredisCluster::class, get_debug_type($redis->getConnection())));
+            throw new InvalidArgumentException(\sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', PredisCluster::class, get_debug_type($redis->getConnection())));
         }
 
         $isRelay = $redis instanceof Relay;
@@ -72,7 +73,7 @@
 
             foreach (\is_array($compression) ? $compression : [$compression] as $c) {
                 if ($isRelay ? Relay::COMPRESSION_NONE : \Redis::COMPRESSION_NONE !== $c) {
-                    throw new InvalidArgumentException(sprintf('redis compression must be disabled when using "%s", use "%s" instead.', static::class, DeflateMarshaller::class));
+                    throw new InvalidArgumentException(\sprintf('redis compression must be disabled when using "%s", use "%s" instead.', static::class, DeflateMarshaller::class));
                 }
             }
         }
@@ -85,7 +86,7 @@
     {
         $eviction = $this->getRedisEvictionPolicy();
         if ('noeviction' !== $eviction && !str_starts_with($eviction, 'volatile-')) {
-            throw new LogicException(sprintf('Redis maxmemory-policy setting "%s" is *not* supported by RedisTagAwareAdapter, use "noeviction" or "volatile-*" eviction policies.', $eviction));
+            throw new LogicException(\sprintf('Redis maxmemory-policy setting "%s" is *not* supported by RedisTagAwareAdapter, use "noeviction" or "volatile-*" eviction policies.', $eviction));
         }
 
         // serialize values
@@ -135,19 +136,19 @@
     protected function doDeleteYieldTags(array $ids): iterable
     {
         $lua = <<<'EOLUA'
-            local v = redis.call('GET', KEYS[1])
-            local e = redis.pcall('UNLINK', KEYS[1])
+                        local v = redis.call('GET', KEYS[1])
+                        local e = redis.pcall('UNLINK', KEYS[1])
 
-            if type(e) ~= 'number' then
-                redis.call('DEL', KEYS[1])
-            end
-
-            if not v or v:len() <= 13 or v:byte(1) ~= 0x9D or v:byte(6) ~= 0 or v:byte(10) ~= 0x5F then
-                return ''
-            end
+                        if type(e) ~= 'number' then
+                            redis.call('DEL', KEYS[1])
+                        end
+
+                        if not v or v:len() <= 13 or v:byte(1) ~= 0x9D or v:byte(6) ~= 0 or v:byte(10) ~= 0x5F then
+                            return ''
+                        end
 
-            return v:sub(14, 13 + v:byte(13) + v:byte(12) * 256 + v:byte(11) * 65536)
-EOLUA;
+                        return v:sub(14, 13 + v:byte(13) + v:byte(12) * 256 + v:byte(11) * 65536)
+            EOLUA;
 
         $results = $this->pipeline(function () use ($ids, $lua) {
             foreach ($ids as $id) {
@@ -194,31 +195,31 @@
         // garbage collect that set from the client side.
 
         $lua = <<<'EOLUA'
-            redis.replicate_commands()
+                        redis.replicate_commands()
 
-            local cursor = '0'
-            local id = KEYS[1]
-            repeat
-                local result = redis.call('SSCAN', id, cursor, 'COUNT', 5000);
-                cursor = result[1];
-                local rems = {}
-
-                for _, v in ipairs(result[2]) do
-                    local ok, _ = pcall(redis.call, 'DEL', ARGV[1]..v)
-                    if ok then
-                        table.insert(rems, v)
-                    end
-                end
-                if 0 < #rems then
-                    redis.call('SREM', id, unpack(rems))
-                end
-            until '0' == cursor;
+                        local cursor = '0'
+                        local id = KEYS[1]
+                        repeat
+                            local result = redis.call('SSCAN', id, cursor, 'COUNT', 5000);
+                            cursor = result[1];
+                            local rems = {}
+
+                            for _, v in ipairs(result[2]) do
+                                local ok, _ = pcall(redis.call, 'DEL', ARGV[1]..v)
+                                if ok then
+                                    table.insert(rems, v)
+                                end
+                            end
+                            if 0 < #rems then
+                                redis.call('SREM', id, unpack(rems))
+                            end
+                        until '0' == cursor;
 
-            redis.call('SUNIONSTORE', '{'..id..'}'..id, id)
-            redis.call('DEL', id)
+                        redis.call('SUNIONSTORE', '{'..id..'}'..id, id)
+                        redis.call('DEL', id)
 
-            return redis.call('SSCAN', '{'..id..'}'..id, '0', 'COUNT', 5000)
-EOLUA;
+                        return redis.call('SSCAN', '{'..id..'}'..id, '0', 'COUNT', 5000)
+            EOLUA;
 
         $results = $this->pipeline(function () use ($tagIds, $lua) {
             if ($this->redis instanceof \Predis\ClientInterface) {
@@ -233,14 +234,14 @@
         });
 
         $lua = <<<'EOLUA'
-            redis.replicate_commands()
+                        redis.replicate_commands()
 
-            local id = KEYS[1]
-            local cursor = table.remove(ARGV)
-            redis.call('SREM', '{'..id..'}'..id, unpack(ARGV))
+                        local id = KEYS[1]
+                        local cursor = table.remove(ARGV)
+                        redis.call('SREM', '{'..id..'}'..id, unpack(ARGV))
 
-            return redis.call('SSCAN', '{'..id..'}'..id, cursor, 'COUNT', 5000)
-EOLUA;
+                        return redis.call('SSCAN', '{'..id..'}'..id, cursor, 'COUNT', 5000)
+            EOLUA;
 
         $success = true;
         foreach ($results as $id => $values) {
@@ -265,7 +266,7 @@
                     $evalArgs = [$lua, $evalArgs, 1];
                 }
 
-                $results = $this->pipeline(function () use ($evalArgs) {
+                $results = $this->pipeline(static function () use ($evalArgs) {
                     yield 'eval' => $evalArgs;
                 });
 
@@ -286,9 +287,16 @@
 
         $hosts = $this->getHosts();
         $host = reset($hosts);
-        if ($host instanceof \Predis\Client && $host->getConnection() instanceof ReplicationInterface) {
+        if ($host instanceof \Predis\Client) {
+            $connection = $host->getConnection();
+
             // Predis supports info command only on the master in replication environments
-            $hosts = [$host->getClientFor('master')];
+            if ($connection instanceof ReplicationInterface) {
+                $hosts = [$host->getClientFor('master')];
+            } elseif ($connection instanceof Predis2ReplicationInterface) {
+                $connection->switchToMaster();
+                $hosts = [$host];
+            }
         }
 
         foreach ($hosts as $host) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/TagAwareAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/TagAwareAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/TagAwareAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/TagAwareAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -288,21 +288,22 @@
      */
     public function reset()
     {
-        $this->commit();
-        $this->knownTagVersions = [];
-        $this->pool instanceof ResettableInterface && $this->pool->reset();
-        $this->tags instanceof ResettableInterface && $this->tags->reset();
+        try {
+            $this->commit();
+        } finally {
+            $this->knownTagVersions = [];
+            $this->deferred = [];
+            $this->pool instanceof ResettableInterface && $this->pool->reset();
+            $this->tags instanceof ResettableInterface && $this->tags->reset();
+        }
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -366,7 +367,7 @@
             (self::$saveTags)($this->tags, $newTags);
         }
 
-        while ($now > ($this->knownTagVersions[$tag = array_key_first($this->knownTagVersions)][0] ?? \INF)) {
+        while ($now > ($this->knownTagVersions[$tag = array_key_first($this->knownTagVersions) ?? ''][0] ?? \INF)) {
             unset($this->knownTagVersions[$tag]);
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/TraceableAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/TraceableAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Adapter/TraceableAdapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Adapter/TraceableAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,11 +38,11 @@
     public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed
     {
         if (!$this->pool instanceof CacheInterface) {
-            throw new \BadMethodCallException(sprintf('Cannot call "%s::get()": this class doesn\'t implement "%s".', get_debug_type($this->pool), CacheInterface::class));
+            throw new \BadMethodCallException(\sprintf('Cannot call "%s::get()": this class doesn\'t implement "%s".', get_debug_type($this->pool), CacheInterface::class));
         }
 
         $isHit = true;
-        $callback = function (CacheItem $item, bool &$save) use ($callback, &$isHit) {
+        $callback = static function (CacheItem $item, bool &$save) use ($callback, &$isHit) {
             $isHit = $item->isHit();
 
             return $callback($item, $save);
@@ -129,7 +129,7 @@
         } finally {
             $event->end = microtime(true);
         }
-        $f = function () use ($result, $event) {
+        $f = static function () use ($result, $event) {
             $event->result = [];
             foreach ($result as $key => $item) {
                 if ($event->result[$key] = $item->isHit()) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/CacheItem.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/CacheItem.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/CacheItem.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/CacheItem.php	2026-05-20 10:56:49.000000000 +0200
@@ -82,7 +82,7 @@
         } elseif (\is_int($time)) {
             $this->expiry = $time + microtime(true);
         } else {
-            throw new InvalidArgumentException(sprintf('Expiration date must be an integer, a DateInterval or null, "%s" given.', get_debug_type($time)));
+            throw new InvalidArgumentException(\sprintf('Expiration date must be an integer, a DateInterval or null, "%s" given.', get_debug_type($time)));
         }
 
         return $this;
@@ -91,14 +91,14 @@
     public function tag(mixed $tags): static
     {
         if (!$this->isTaggable) {
-            throw new LogicException(sprintf('Cache item "%s" comes from a non tag-aware pool: you cannot tag it.', $this->key));
+            throw new LogicException(\sprintf('Cache item "%s" comes from a non tag-aware pool: you cannot tag it.', $this->key));
         }
         if (!\is_array($tags) && !$tags instanceof \Traversable) { // don't use is_iterable(), it's slow
             $tags = [$tags];
         }
         foreach ($tags as $tag) {
             if (!\is_string($tag) && !$tag instanceof \Stringable) {
-                throw new InvalidArgumentException(sprintf('Cache tag must be string or object that implements __toString(), "%s" given.', get_debug_type($tag)));
+                throw new InvalidArgumentException(\sprintf('Cache tag must be string or object that implements __toString(), "%s" given.', get_debug_type($tag)));
             }
             $tag = (string) $tag;
             if (isset($this->newMetadata[self::METADATA_TAGS][$tag])) {
@@ -108,7 +108,7 @@
                 throw new InvalidArgumentException('Cache tag length must be greater than zero.');
             }
             if (false !== strpbrk($tag, self::RESERVED_CHARACTERS)) {
-                throw new InvalidArgumentException(sprintf('Cache tag "%s" contains reserved characters "%s".', $tag, self::RESERVED_CHARACTERS));
+                throw new InvalidArgumentException(\sprintf('Cache tag "%s" contains reserved characters "%s".', $tag, self::RESERVED_CHARACTERS));
             }
             $this->newMetadata[self::METADATA_TAGS][$tag] = $tag;
         }
@@ -131,13 +131,13 @@
     public static function validateKey($key): string
     {
         if (!\is_string($key)) {
-            throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
+            throw new InvalidArgumentException(\sprintf('Cache key must be string, "%s" given.', get_debug_type($key)));
         }
         if ('' === $key) {
             throw new InvalidArgumentException('Cache key length must be greater than zero.');
         }
         if (false !== strpbrk($key, self::RESERVED_CHARACTERS)) {
-            throw new InvalidArgumentException(sprintf('Cache key "%s" contains reserved characters "%s".', $key, self::RESERVED_CHARACTERS));
+            throw new InvalidArgumentException(\sprintf('Cache key "%s" contains reserved characters "%s".', $key, self::RESERVED_CHARACTERS));
         }
 
         return $key;
@@ -170,6 +170,10 @@
         }
         $valueWrapper = self::VALUE_WRAPPER;
 
+        if ($this->value instanceof $valueWrapper) {
+            return new $valueWrapper($this->value->value, $m + ['expiry' => $this->expiry] + $this->value->metadata);
+        }
+
         return new $valueWrapper($this->value, $m + ['expiry' => $this->expiry]);
     }
 
@@ -197,3 +201,5 @@
         return true;
     }
 }
+
+// @php-cs-fixer-ignore protected_to_private Friend-level scope access relies on protected properties
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/DataCollector/CacheDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/DataCollector/CacheDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/DataCollector/CacheDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/DataCollector/CacheDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -143,6 +143,8 @@
                     }
                 } elseif ('save' === $call->name) {
                     ++$statistics[$name]['writes'];
+                } elseif ('saveDeferred' === $call->name) {
+                    ++$statistics[$name]['writes'];
                 } elseif ('deleteItem' === $call->name) {
                     ++$statistics[$name]['deletes'];
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,9 @@
 use Symfony\Component\Cache\Adapter\ChainAdapter;
 use Symfony\Component\Cache\Adapter\NullAdapter;
 use Symfony\Component\Cache\Adapter\ParameterNormalizer;
+use Symfony\Component\Cache\Adapter\TagAwareAdapter;
 use Symfony\Component\Cache\Messenger\EarlyExpirationDispatcher;
+use Symfony\Component\Cache\PruneableInterface;
 use Symfony\Component\DependencyInjection\ChildDefinition;
 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -51,6 +53,7 @@
             'default_lifetime',
             'early_expiration_message_bus',
             'reset',
+            'pruneable',
         ];
         foreach ($container->findTaggedServiceIds('cache.pool') as $id => $tags) {
             $adapter = $pool = $container->getDefinition($id);
@@ -58,9 +61,11 @@
                 continue;
             }
             $class = $adapter->getClass();
+            $providers = $adapter->getArguments();
             while ($adapter instanceof ChildDefinition) {
                 $adapter = $container->findDefinition($adapter->getParent());
                 $class = $class ?: $adapter->getClass();
+                $providers += $adapter->getArguments();
                 if ($t = $adapter->getTag('cache.pool')) {
                     $tags[0] += $t[0];
                 }
@@ -88,11 +93,13 @@
                 $tags[0]['provider'] = new Reference(static::getServiceProvider($container, $tags[0]['provider']));
             }
 
+            $pruneable = $tags[0]['pruneable'] ?? $container->getReflectionClass($class, false)?->implementsInterface(PruneableInterface::class) ?? false;
+
             if (ChainAdapter::class === $class) {
                 $adapters = [];
-                foreach ($adapter->getArgument(0) as $provider => $adapter) {
+                foreach ($providers['index_0'] ?? $providers[0] as $provider => $adapter) {
                     if ($adapter instanceof ChildDefinition) {
-                        $chainedPool = $adapter;
+                        $chainedPool = clone $adapter;
                     } else {
                         $chainedPool = $adapter = new ChildDefinition($adapter);
                     }
@@ -109,7 +116,7 @@
                     }
 
                     if (ChainAdapter::class === $chainedClass) {
-                        throw new InvalidArgumentException(sprintf('Invalid service "%s": chain of adapters cannot reference another chain, found "%s".', $id, $chainedPool->getParent()));
+                        throw new InvalidArgumentException(\sprintf('Invalid service "%s": chain of adapters cannot reference another chain, found "%s".', $id, $chainedPool->getParent()));
                     }
 
                     $i = 0;
@@ -123,7 +130,14 @@
                     }
 
                     if (isset($tags[0]['default_lifetime'])) {
-                        $chainedPool->replaceArgument($i++, $tags[0]['default_lifetime']);
+                        $defaultLifetime = $tags[0]['default_lifetime'];
+
+                        if (!is_numeric($defaultLifetime)) {
+                            $defaultLifetime = (new Definition('int', [$defaultLifetime]))
+                                ->setFactory([ParameterNormalizer::class, 'normalizeDuration']);
+                        }
+
+                        $chainedPool->replaceArgument($i++, $defaultLifetime);
                     }
 
                     $adapters[] = $chainedPool;
@@ -154,7 +168,9 @@
                         ),
                     ]);
                     $pool->addTag('container.reversible');
-                } elseif ('namespace' !== $attr || !\in_array($class, [ArrayAdapter::class, NullAdapter::class], true)) {
+                } elseif ('pruneable' === $attr) {
+                    // no-op
+                } elseif ('namespace' !== $attr || !\in_array($class, [ArrayAdapter::class, NullAdapter::class, TagAwareAdapter::class], true)) {
                     $argument = $tags[0][$attr];
 
                     if ('default_lifetime' === $attr && !is_numeric($argument)) {
@@ -167,13 +183,17 @@
                 unset($tags[0][$attr]);
             }
             if (!empty($tags[0])) {
-                throw new InvalidArgumentException(sprintf('Invalid "cache.pool" tag for service "%s": accepted attributes are "clearer", "provider", "name", "namespace", "default_lifetime", "early_expiration_message_bus" and "reset", found "%s".', $id, implode('", "', array_keys($tags[0]))));
+                throw new InvalidArgumentException(\sprintf('Invalid "cache.pool" tag for service "%s": accepted attributes are "clearer", "provider", "name", "namespace", "default_lifetime", "early_expiration_message_bus", "reset" and "pruneable", found "%s".', $id, implode('", "', array_keys($tags[0]))));
             }
 
             if (null !== $clearer) {
                 $clearers[$clearer][$name] = new Reference($id, $container::IGNORE_ON_UNINITIALIZED_REFERENCE);
             }
 
+            $poolTags = $pool->getTags();
+            $poolTags['cache.pool'][0]['pruneable'] ??= $pruneable;
+            $pool->setTags($poolTags);
+
             $allPools[$name] = new Reference($id, $container::IGNORE_ON_UNINITIALIZED_REFERENCE);
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/DependencyInjection/CachePoolPrunerPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/DependencyInjection/CachePoolPrunerPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/DependencyInjection/CachePoolPrunerPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/DependencyInjection/CachePoolPrunerPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,6 @@
 use Symfony\Component\DependencyInjection\Argument\IteratorArgument;
 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 use Symfony\Component\DependencyInjection\Reference;
 
 /**
@@ -35,14 +34,8 @@
         $services = [];
 
         foreach ($container->findTaggedServiceIds('cache.pool') as $id => $tags) {
-            $class = $container->getParameterBag()->resolveValue($container->getDefinition($id)->getClass());
-
-            if (!$reflection = $container->getReflectionClass($class)) {
-                throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
-            }
-
-            if ($reflection->implementsInterface(PruneableInterface::class)) {
-                $services[$id] = new Reference($id);
+            if ($tags[0]['pruneable'] ?? $container->getReflectionClass($container->getDefinition($id)->getClass(), false)?->implementsInterface(PruneableInterface::class) ?? false) {
+                $services[$tags[0]['name'] ?? $id] = new Reference($id);
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/LockRegistry.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/LockRegistry.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/LockRegistry.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/LockRegistry.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,12 +65,14 @@
     /**
      * Defines a set of existing files that will be used as keys to acquire locks.
      *
-     * @return array The previously defined set of files
+     * @param list<string> $files A list of existing files
+     *
+     * @return list<string> The previously defined set of files
      */
     public static function setFiles(array $files): array
     {
         $previousFiles = self::$files;
-        self::$files = $files;
+        self::$files = array_values($files);
 
         foreach (self::$openedFiles as $file) {
             if ($file) {
@@ -83,7 +85,7 @@
         return $previousFiles;
     }
 
-    public static function compute(callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, ?\Closure $setMetadata = null, ?LoggerInterface $logger = null): mixed
+    public static function compute(callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, ?\Closure $setMetadata = null, ?LoggerInterface $logger = null, ?float $beta = null): mixed
     {
         if ('\\' === \DIRECTORY_SEPARATOR && null === self::$lockedFiles) {
             // disable locking on Windows by default
@@ -97,7 +99,7 @@
         }
 
         self::$signalingException ??= unserialize("O:9:\"Exception\":1:{s:16:\"\0Exception\0trace\";a:0:{}}");
-        self::$signalingCallback ??= fn () => throw self::$signalingException;
+        self::$signalingCallback ??= static fn () => throw self::$signalingException;
 
         while (true) {
             try {
@@ -105,7 +107,7 @@
                 $locked = flock($lock, \LOCK_EX | \LOCK_NB, $wouldBlock);
 
                 if ($locked || !$wouldBlock) {
-                    $logger?->info(sprintf('Lock %s, now computing item "{key}"', $locked ? 'acquired' : 'not supported'), ['key' => $item->getKey()]);
+                    $logger?->info(\sprintf('Lock %s, now computing item "{key}"', $locked ? 'acquired' : 'not supported'), ['key' => $item->getKey()]);
                     self::$lockedFiles[$key] = true;
 
                     $value = $callback($item, $save);
@@ -123,9 +125,33 @@
                 }
                 // if we failed the race, retry locking in blocking mode to wait for the winner
                 $logger?->info('Item "{key}" is locked, waiting for it to be released', ['key' => $item->getKey()]);
-                flock($lock, \LOCK_SH);
+
+                $deadline = microtime(true) + 30.0;
+                $acquired = false;
+                do {
+                    if ($acquired = flock($lock, \LOCK_SH | \LOCK_NB)) {
+                        break;
+                    }
+                    usleep(100_000);
+                } while (microtime(true) < $deadline);
+
+                if (!$acquired) {
+                    $logger?->warning('Lock on item "{key}" timed out, evicting slot', ['key' => $item->getKey()]);
+                    unset(self::$files[$key]);
+                    self::setFiles(self::$files);
+                    $lock = null;
+
+                    return self::compute($callback, $item, $save, $pool, $setMetadata, $logger, $beta);
+                }
+
+                if (\INF === $beta) {
+                    $logger?->info('Force-recomputing item "{key}"', ['key' => $item->getKey()]);
+                    continue;
+                }
             } finally {
-                flock($lock, \LOCK_UN);
+                if ($lock) {
+                    flock($lock, \LOCK_UN);
+                }
                 unset(self::$lockedFiles[$key]);
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationDispatcher.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationDispatcher.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationDispatcher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationDispatcher.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,13 +37,13 @@
     /**
      * @return mixed
      */
-    public function __invoke(callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger = null)
+    public function __invoke(callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger = null, ?float $beta = null)
     {
         if (!$item->isHit() || null === $message = EarlyExpirationMessage::create($this->reverseContainer, $callback, $item, $pool)) {
             // The item is stale or the callback cannot be reversed: we must compute the value now
             $logger?->info('Computing item "{key}" online: '.($item->isHit() ? 'callback cannot be reversed' : 'item is stale'), ['key' => $item->getKey()]);
 
-            return null !== $this->callbackWrapper ? ($this->callbackWrapper)($callback, $item, $save, $pool, $setMetadata, $logger) : $callback($item, $save);
+            return null !== $this->callbackWrapper ? ($this->callbackWrapper)($callback, $item, $save, $pool, $setMetadata, $logger, $beta) : $callback($item, $save);
         }
 
         $envelope = $this->bus->dispatch($message);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
         static $setMetadata;
 
         $setMetadata ??= \Closure::bind(
-            function (CacheItem $item, float $startTime) {
+            static function (CacheItem $item, float $startTime) {
                 if ($item->expiry > $endTime = microtime(true)) {
                     $item->newMetadata[CacheItem::METADATA_EXPIRY] = $item->expiry;
                     $item->newMetadata[CacheItem::METADATA_CTIME] = (int) ceil(1000 * ($endTime - $startTime));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationMessage.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationMessage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationMessage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Messenger/EarlyExpirationMessage.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,6 +35,11 @@
 
         $pool = $reverseContainer->getId($pool);
 
+        if ($callback instanceof \Closure && !str_contains(($r = new \ReflectionFunction($callback))->name, '{closure')) {
+            $callback = [$r->getClosureThis() ?? (\PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass())?->name, $r->name];
+            $callback[0] ?: $callback = $r->name;
+        }
+
         if (\is_object($callback)) {
             if (null === $id = $reverseContainer->getId($callback)) {
                 return null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Psr16Cache.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Psr16Cache.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Psr16Cache.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Psr16Cache.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,6 +18,7 @@
 use Symfony\Component\Cache\Adapter\AdapterInterface;
 use Symfony\Component\Cache\Exception\InvalidArgumentException;
 use Symfony\Component\Cache\Traits\ProxyTrait;
+use Symfony\Contracts\Cache\ItemInterface;
 
 /**
  * Turns a PSR-6 cache into a PSR-16 one.
@@ -68,6 +69,10 @@
         };
         self::$packCacheItem ??= \Closure::bind(
             static function (CacheItem $item) {
+                if (!isset($item->metadata[ItemInterface::METADATA_CTIME])) {
+                    return $item->value;
+                }
+
                 $item->newMetadata = $item->metadata;
 
                 return $item->pack();
@@ -135,7 +140,7 @@
         if ($keys instanceof \Traversable) {
             $keys = iterator_to_array($keys, false);
         } elseif (!\is_array($keys)) {
-            throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given.', get_debug_type($keys)));
+            throw new InvalidArgumentException(\sprintf('Cache keys must be array or Traversable, "%s" given.', get_debug_type($keys)));
         }
 
         try {
@@ -166,7 +171,7 @@
     {
         $valuesIsArray = \is_array($values);
         if (!$valuesIsArray && !$values instanceof \Traversable) {
-            throw new InvalidArgumentException(sprintf('Cache values must be array or Traversable, "%s" given.', get_debug_type($values)));
+            throw new InvalidArgumentException(\sprintf('Cache values must be array or Traversable, "%s" given.', get_debug_type($values)));
         }
         $items = [];
 
@@ -215,7 +220,7 @@
         if ($keys instanceof \Traversable) {
             $keys = iterator_to_array($keys, false);
         } elseif (!\is_array($keys)) {
-            throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given.', get_debug_type($keys)));
+            throw new InvalidArgumentException(\sprintf('Cache keys must be array or Traversable, "%s" given.', get_debug_type($keys)));
         }
 
         try {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,7 +61,7 @@
         $this->assertSame($value, $item->get());
 
         $isHit = true;
-        $this->assertSame($value, $cache->get('foo', function (CacheItem $item) use (&$isHit) { $isHit = false; }, 0));
+        $this->assertSame($value, $cache->get('foo', static function (CacheItem $item) use (&$isHit) { $isHit = false; }, 0));
         $this->assertTrue($isHit);
 
         $this->assertNull($cache->get('foo', function (CacheItem $item) use (&$isHit, $value) {
@@ -96,16 +96,16 @@
 
         $cache = $this->createCachePool(0, __FUNCTION__);
 
-        $v = $cache->get('k1', function () use (&$counter, $cache) {
-            $cache->get('k2', function () use (&$counter) { return ++$counter; });
-            $v = $cache->get('k2', function () use (&$counter) { return ++$counter; }); // ensure the callback is called once
+        $v = $cache->get('k1', static function () use (&$counter, $cache) {
+            $cache->get('k2', static function () use (&$counter) { return ++$counter; });
+            $v = $cache->get('k2', static function () use (&$counter) { return ++$counter; }); // ensure the callback is called once
 
             return $v;
         });
 
         $this->assertSame(1, $counter);
         $this->assertSame(1, $v);
-        $this->assertSame(1, $cache->get('k2', fn () => 2));
+        $this->assertSame(1, $cache->get('k2', static fn () => 2));
     }
 
     public function testDontSaveWhenAskedNotTo()
@@ -116,14 +116,14 @@
 
         $cache = $this->createCachePool(0, __FUNCTION__);
 
-        $v1 = $cache->get('some-key', function ($item, &$save) {
+        $v1 = $cache->get('some-key', static function ($item, &$save) {
             $save = false;
 
             return 1;
         });
         $this->assertSame($v1, 1);
 
-        $v2 = $cache->get('some-key', fn () => 2);
+        $v2 = $cache->get('some-key', static fn () => 2);
         $this->assertSame($v2, 2, 'First value was cached and should not have been');
 
         $v3 = $cache->get('some-key', function () {
@@ -141,7 +141,7 @@
         $cache = $this->createCachePool(0, __FUNCTION__);
 
         $cache->deleteItem('foo');
-        $cache->get('foo', function ($item) {
+        $cache->get('foo', static function ($item) {
             $item->expiresAfter(10);
             usleep(999000);
 
@@ -234,7 +234,7 @@
         /** @var PruneableInterface|CacheItemPoolInterface $cache */
         $cache = $this->createCachePool();
 
-        $doSet = function ($name, $value, ?\DateInterval $expiresAfter = null) use ($cache) {
+        $doSet = static function ($name, $value, ?\DateInterval $expiresAfter = null) use ($cache) {
             $item = $cache->getItem($name);
             $item->set($value);
 
@@ -307,6 +307,34 @@
         $this->assertTrue($cache->hasItem('barfoo'));
     }
 
+    /**
+     * @dataProvider provideInvalidPrefixes
+     */
+    public function testClearWithInvalidPrefix(string $prefix)
+    {
+        if (isset($this->skippedTests[__FUNCTION__])) {
+            $this->markTestSkipped($this->skippedTests[__FUNCTION__]);
+        }
+
+        $cache = $this->createCachePool(0, __FUNCTION__);
+        $cache->clear();
+
+        $cache->save($cache->getItem('foobar')->set(1));
+
+        $this->assertFalse($cache->clear($prefix));
+        $this->assertTrue($cache->hasItem('foobar'));
+    }
+
+    public static function provideInvalidPrefixes(): iterable
+    {
+        yield 'single quote' => ["foo' OR 1=1; --"];
+        yield 'percent wildcard' => ['foo%'];
+        yield 'space' => ['foo bar'];
+        yield 'null byte' => ["foo\0bar"];
+        yield 'backslash' => ['foo\\bar'];
+        yield 'slash' => ['foo/bar'];
+    }
+
     public function testWeirdDataMatchingMetadataWrappedValues()
     {
         if (isset($this->skippedTests[__FUNCTION__])) {
@@ -373,7 +401,7 @@
 
 class NotUnserializable
 {
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \Exception(__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ApcuAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ApcuAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ApcuAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ApcuAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
         $pool = $this->createCachePool();
 
         $item = $pool->getItem('foo');
-        $item->set(function () {});
+        $item->set(static function () {});
 
         $this->assertFalse($pool->save($item));
 
@@ -109,7 +109,7 @@
         try {
             // disable PHPUnit error handler to mimic a production environment
             $isCalled = false;
-            set_error_handler(function () use (&$isCalled) {
+            set_error_handler(static function () use (&$isCalled) {
                 $isCalled = true;
             });
             $pool = new ApcuAdapter(str_replace('\\', '.', __CLASS__));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ArrayAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ArrayAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ArrayAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ArrayAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,6 +24,7 @@
         'testGetMetadata' => 'ArrayAdapter does not keep metadata.',
         'testDeferredSaveWithoutCommit' => 'Assumes a shared cache which ArrayAdapter is not.',
         'testSaveWithoutExpire' => 'Assumes a shared cache which ArrayAdapter is not.',
+        'testClearWithInvalidPrefix' => 'ArrayAdapter does not validate the prefix.',
     ];
 
     public function createCachePool(int $defaultLifetime = 0): CacheItemPoolInterface
@@ -50,7 +51,7 @@
 
         // Fail (should be missing from $values)
         $item = $cache->getItem('buz');
-        $cache->save($item->set(function () {}));
+        $cache->save($item->set(static function () {}));
 
         $values = $cache->getValues();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
 
         $cache = new ChainAdapter([
             $this->getPruneableMock(),
-            $this->getNonPruneableMock(),
+            $this->createStub(AdapterInterface::class),
             $this->getPruneableMock(),
         ]);
         $this->assertTrue($cache->prune());
@@ -197,6 +197,72 @@
         $this->assertFalse($item->isHit());
     }
 
+    public function testItemExpiryIsPreservedWhenPropagatedToPreviousAdapters()
+    {
+        if (isset($this->skippedTests[__FUNCTION__])) {
+            $this->markTestSkipped($this->skippedTests[__FUNCTION__]);
+        }
+
+        $adapter1 = new ArrayAdapter(100);
+        $adapter2 = new ArrayAdapter(100);
+
+        $cache = new ChainAdapter([$adapter1, $adapter2], 100);
+
+        // Save with an explicit 2-second TTL
+        $cache->save($cache->getItem('key')->expiresAfter(2)->set('value'));
+
+        // Simulate adapter1 miss
+        $adapter1->clear();
+        $this->assertFalse($adapter1->hasItem('key'));
+        $this->assertTrue($adapter2->hasItem('key'));
+
+        // This should propagate the item from adapter2 to adapter1,
+        // preserving the original 2-second TTL (not the 100-second defaultLifetime)
+        $cache->getItem('key');
+        $this->assertTrue($adapter1->hasItem('key'));
+
+        sleep(3);
+
+        $this->assertFalse($adapter2->getItem('key')->isHit(), 'Item should have expired in adapter2');
+        $this->assertFalse($adapter1->getItem('key')->isHit(), 'Item should have expired in adapter1 with original TTL, not defaultLifetime');
+    }
+
+    public function testItemExpiryIsPreservedWhenPropagatedToPreviousAdaptersUsingGetMethod()
+    {
+        if (isset($this->skippedTests[__FUNCTION__])) {
+            $this->markTestSkipped($this->skippedTests[__FUNCTION__]);
+        }
+
+        $adapter1 = new ArrayAdapter(100);
+        $adapter2 = new ArrayAdapter(100);
+
+        $cache = new ChainAdapter([$adapter1, $adapter2], 100);
+
+        // Save with an explicit 2-second TTL via get() callback
+        $cache->get('key', static function (ItemInterface $item) {
+            $item->expiresAfter(2);
+
+            return 'value';
+        });
+
+        // Simulate adapter1 miss
+        $adapter1->clear();
+        $this->assertFalse($adapter1->hasItem('key'));
+        $this->assertTrue($adapter2->hasItem('key'));
+
+        // This should propagate the item from adapter2 to adapter1,
+        // preserving the original 2-second TTL (not the 100-second defaultLifetime)
+        $cache->get('key', function () {
+            $this->fail('Callback should not be called when item exists in adapter2');
+        });
+        $this->assertTrue($adapter1->hasItem('key'));
+
+        sleep(3);
+
+        $this->assertFalse($adapter2->getItem('key')->isHit(), 'Item should have expired in adapter2');
+        $this->assertFalse($adapter1->getItem('key')->isHit(), 'Item should have expired in adapter1 with original TTL, not defaultLifetime');
+    }
+
     public function testExpirationOnAllAdapters()
     {
         if (isset($this->skippedTests[__FUNCTION__])) {
@@ -231,7 +297,7 @@
             ->willReturn(true);
 
         $cache = new ChainAdapter([$adapter1, $adapter2], 6);
-        $cache->get('test_key', function (ItemInterface $item) {
+        $cache->get('test_key', static function (ItemInterface $item) {
             $item->expiresAfter(15);
 
             return 'chain';
@@ -262,8 +328,27 @@
         return $pruneable;
     }
 
-    private function getNonPruneableMock(): AdapterInterface
+    public function testSetCallbackWrapperPropagation()
     {
-        return $this->createMock(AdapterInterface::class);
+        $adapter1 = new ArrayAdapter();
+        $adapter2 = new FilesystemAdapter();
+
+        $chain = new ChainAdapter([$adapter1, $adapter2]);
+
+        $callbackWrapperCalled = false;
+        $customWrapper = static function (callable $callback, CacheItem $item, bool &$save) use (&$callbackWrapperCalled) {
+            $callbackWrapperCalled = true;
+
+            return $callback($item, $save);
+        };
+
+        $chain->setCallbackWrapper($customWrapper);
+
+        $chain->delete('test-callback-wrapper');
+
+        $result = $chain->get('test-callback-wrapper', static fn () => 'computed-value');
+
+        $this->assertTrue($callbackWrapperCalled);
+        $this->assertSame('computed-value', $result);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/CouchbaseBucketAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/CouchbaseBucketAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/CouchbaseBucketAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/CouchbaseBucketAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,6 +27,7 @@
 {
     protected $skippedTests = [
         'testClearPrefix' => 'Couchbase cannot clear by prefix',
+        'testClearWithInvalidPrefix' => 'Couchbase cannot clear by prefix',
     ];
 
     protected static \CouchbaseBucket $client;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/CouchbaseCollectionAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/CouchbaseCollectionAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/CouchbaseCollectionAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/CouchbaseCollectionAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,6 +28,7 @@
 {
     protected $skippedTests = [
         'testClearPrefix' => 'Couchbase cannot clear by prefix',
+        'testClearWithInvalidPrefix' => 'Couchbase cannot clear by prefix',
     ];
 
     protected static Collection $client;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/DoctrineDbalAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/DoctrineDbalAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/DoctrineDbalAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/DoctrineDbalAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
 use Doctrine\DBAL\Driver\AbstractMySQLDriver;
 use Doctrine\DBAL\Driver\Middleware;
 use Doctrine\DBAL\DriverManager;
+use Doctrine\DBAL\Platforms\AbstractPlatform;
 use Doctrine\DBAL\Schema\DefaultSchemaManagerFactory;
 use Doctrine\DBAL\Schema\Schema;
 use Psr\Cache\CacheItemPoolInterface;
@@ -57,7 +58,7 @@
             $this->markTestSkipped('doctrine/dbal v2 does not support custom drivers using middleware');
         }
 
-        $middleware = $this->createMock(Middleware::class);
+        $middleware = $this->createStub(Middleware::class);
         $middleware
             ->method('wrap')
             ->willReturn(new DriverWrapper($connection->getDriver()));
@@ -85,7 +86,7 @@
         $schema = new Schema();
 
         $adapter = new DoctrineDbalAdapter($connection);
-        $adapter->configureSchema($schema, $connection, fn () => true);
+        $adapter->configureSchema($schema, $connection, static fn () => true);
         $this->assertTrue($schema->hasTable('cache_items'));
     }
 
@@ -95,11 +96,11 @@
             @unlink(self::$dbFile);
         }
 
-        $otherConnection = $this->createConnectionMock();
+        $otherConnection = $this->createConnection();
         $schema = new Schema();
 
         $adapter = $this->createCachePool();
-        $adapter->configureSchema($schema, $otherConnection, fn () => false);
+        $adapter->configureSchema($schema, $otherConnection, static fn () => false);
         $this->assertFalse($schema->hasTable('cache_items'));
     }
 
@@ -114,7 +115,7 @@
         $schema->createTable('cache_items');
 
         $adapter = new DoctrineDbalAdapter($connection);
-        $adapter->configureSchema($schema, $connection, fn () => true);
+        $adapter->configureSchema($schema, $connection, static fn () => true);
         $table = $schema->getTable('cache_items');
         $this->assertEmpty($table->getColumns(), 'The table was not overwritten');
     }
@@ -168,6 +169,49 @@
         }
     }
 
+    public function testSaveWithinActiveTransactionUsesSavepoint()
+    {
+        $dbFile = tempnam(sys_get_temp_dir(), 'sf_sqlite_savepoint');
+        try {
+            $connection = DriverManager::getConnection(['driver' => 'pdo_sqlite', 'path' => $dbFile], $this->getDbalConfig());
+            $adapter = new DoctrineDbalAdapter($connection);
+            $adapter->createTable();
+
+            $connection->beginTransaction();
+            $item = $adapter->getItem('savepoint_key');
+            $item->set('savepoint_value');
+            $adapter->save($item);
+
+            $this->assertTrue($connection->isTransactionActive(), 'Outer transaction must still be active after cache save');
+            $connection->commit();
+
+            $this->assertSame('savepoint_value', $adapter->getItem('savepoint_key')->get());
+        } finally {
+            @unlink($dbFile);
+        }
+    }
+
+    public function testSavepointIsRolledBackOnFailure()
+    {
+        $platform = $this->createMock(AbstractPlatform::class);
+        $platform->method('supportsSavepoints')->willReturn(true);
+
+        $conn = $this->createMock(Connection::class);
+        $conn->method('isTransactionActive')->willReturn(true);
+        $conn->method('getDatabasePlatform')->willReturn($platform);
+        $conn->expects($this->once())->method('createSavepoint')->with($this->stringStartsWith('cache_save_'));
+        $conn->expects($this->once())->method('rollbackSavepoint')->with($this->stringStartsWith('cache_save_'));
+        $conn->expects($this->never())->method('releaseSavepoint');
+        $conn->method('prepare')->willThrowException(new \RuntimeException('DB error'));
+
+        $adapter = new DoctrineDbalAdapter($conn);
+
+        $doSave = new \ReflectionMethod($adapter, 'doSave');
+
+        $this->expectException(\RuntimeException::class);
+        $doSave->invoke($adapter, ['key' => 'value'], 0);
+    }
+
     protected function isPruned(DoctrineDbalAdapter $cache, string $name): bool
     {
         $o = new \ReflectionObject($cache);
@@ -175,16 +219,16 @@
 
         /** @var Connection $conn */
         $conn = $connProp->getValue($cache);
-        $result = $conn->executeQuery('SELECT 1 FROM cache_items WHERE item_id LIKE ?', [sprintf('%%%s', $name)]);
+        $result = $conn->executeQuery('SELECT 1 FROM cache_items WHERE item_id LIKE ?', [\sprintf('%%%s', $name)]);
 
         return 1 !== (int) $result->fetchOne();
     }
 
-    private function createConnectionMock()
+    private function createConnection(): Connection
     {
-        $connection = $this->createMock(Connection::class);
-        $driver = $this->createMock(AbstractMySQLDriver::class);
-        $connection->expects($this->any())
+        $connection = $this->createStub(Connection::class);
+        $driver = $this->createStub(AbstractMySQLDriver::class);
+        $connection
             ->method('getDriver')
             ->willReturn($driver);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/FilesystemTagAwareAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/FilesystemTagAwareAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/FilesystemTagAwareAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/FilesystemTagAwareAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Psr\Cache\CacheItemPoolInterface;
 use Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter;
+use Symfony\Component\Cache\Tests\Fixtures\FailingTagFilesystemAdapter;
 
 /**
  * @group time-sensitive
@@ -25,4 +26,16 @@
     {
         return new FilesystemTagAwareAdapter('', $defaultLifetime);
     }
+
+    public function testCommitDoesNotFailWhenTagSaveFails()
+    {
+        $adapter = new FailingTagFilesystemAdapter();
+
+        $item = $adapter->getItem('foo');
+        $item->set('bar');
+        $item->tag(['tag1']);
+        $adapter->saveDeferred($item);
+
+        $this->assertFalse($adapter->commit(), 'Commit should return false when tag save fails');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/MaxIdLengthAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/MaxIdLengthAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/MaxIdLengthAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/MaxIdLengthAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Cache\Tests\Adapter;
 
+use PHPUnit\Framework\Assert;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Cache\Adapter\AbstractAdapter;
 use Symfony\Component\Cache\Exception\InvalidArgumentException;
@@ -19,25 +20,24 @@
 {
     public function testLongKey()
     {
-        $cache = $this->getMockBuilder(MaxIdLengthAdapter::class)
-            ->setConstructorArgs([str_repeat('-', 10)])
-            ->onlyMethods(['doHave', 'doFetch', 'doDelete', 'doSave', 'doClear'])
-            ->getMock();
-
-        $cache->expects($this->exactly(2))
-            ->method('doHave')
-            ->willReturnCallback(function (...$args) {
-                static $series = [
-                    ['----------:z5XrNUPebf0nPxQwjc6C1A:'],
-                    ['----------:---------------------------------------'],
-                ];
-
-                $expectedArgs = array_shift($series);
-                $this->assertSame($expectedArgs, $args);
+        $cache = new class extends MaxIdLengthAdapter {
+            private static $series = [
+                ['----------:z5XrNUPebf0nPxQwjc6C1A:'],
+                ['----------:---------------------------------------'],
+            ];
+
+            public function __construct()
+            {
+                parent::__construct(str_repeat('-', 10));
+            }
+
+            protected function doHave(string $id): bool
+            {
+                Assert::assertSame(array_shift(self::$series), $id);
 
                 return false;
-            })
-        ;
+            }
+        };
 
         $cache->hasItem(str_repeat('-', 40));
         $cache->hasItem(str_repeat('-', 39));
@@ -45,13 +45,17 @@
 
     public function testLongKeyVersioning()
     {
-        $cache = $this->getMockBuilder(MaxIdLengthAdapter::class)
-            ->setConstructorArgs([str_repeat('-', 26)])
-            ->getMock();
-
-        $cache
-            ->method('doFetch')
-            ->willReturn(['2:']);
+        $cache = new class extends MaxIdLengthAdapter {
+            public function __construct()
+            {
+                parent::__construct(str_repeat('-', 26));
+            }
+
+            protected function doFetch(array $ids): iterable
+            {
+                return ['2:'];
+            }
+        };
 
         $reflectionClass = new \ReflectionClass(AbstractAdapter::class);
 
@@ -91,4 +95,29 @@
 
         parent::__construct($ns);
     }
+
+    protected function doFetch(array $ids): iterable
+    {
+        throw new \LogicException(\sprintf('"%s()" was not expected to be called.', __METHOD__));
+    }
+
+    protected function doHave(string $id): bool
+    {
+        throw new \LogicException(\sprintf('"%s()" was not expected to be called.', __METHOD__));
+    }
+
+    protected function doClear(string $namespace): bool
+    {
+        throw new \LogicException(\sprintf('"%s()" was not expected to be called.', __METHOD__));
+    }
+
+    protected function doDelete(array $ids): bool
+    {
+        throw new \LogicException(\sprintf('"%s()" was not expected to be called.', __METHOD__));
+    }
+
+    protected function doSave(array $values, int $lifetime): array|bool
+    {
+        throw new \LogicException(\sprintf('"%s()" was not expected to be called.', __METHOD__));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/MemcachedAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/MemcachedAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/MemcachedAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/MemcachedAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,6 +25,7 @@
         'testHasItemReturnsFalseWhenDeferredItemIsExpired' => 'Testing expiration slows down the test suite',
         'testDefaultLifeTime' => 'Testing expiration slows down the test suite',
         'testClearPrefix' => 'Memcached cannot clear by prefix',
+        'testClearWithInvalidPrefix' => 'Memcached cannot clear by prefix',
     ];
 
     protected static \Memcached $client;
@@ -124,7 +125,7 @@
             'port' => $port,
         ];
 
-        $f = fn ($s) => ['host' => $s['host'], 'port' => $s['port']];
+        $f = static fn ($s) => ['host' => $s['host'], 'port' => $s['port']];
         $this->assertSame([$expect], array_map($f, $client1->getServerList()));
         $this->assertSame([$expect], array_map($f, $client2->getServerList()));
         $this->assertSame([$expect], array_map($f, $client3->getServerList()));
@@ -249,7 +250,7 @@
         $pool = $this->createCachePool(0, null, $namespace);
 
         /**
-         * Choose a key that is below {@see \Symfony\Component\Cache\Adapter\MemcachedAdapter::$maxIdLength} so that
+         * Choose a key that is below {@see MemcachedAdapter::$maxIdLength} so that
          * {@see \Symfony\Component\Cache\Traits\AbstractTrait::getId()} does not shorten the key but choose special
          * characters that would be encoded and therefore increase the key length over the Memcached limit.
          */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/NullAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/NullAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/NullAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/NullAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
         $adapter = $this->createCachePool();
 
         $fetched = [];
-        $adapter->get('myKey', function ($item) use (&$fetched) { $fetched[] = $item; });
+        $adapter->get('myKey', static function ($item) use (&$fetched) { $fetched[] = $item; });
         $this->assertCount(1, $fetched);
         $item = $fetched[0];
         $this->assertFalse($item->isHit());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PdoAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PdoAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PdoAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PdoAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
     {
         $pdo = new \PDO('sqlite:'.self::$dbFile);
 
-        $getCacheItemCount = fn () => (int) $pdo->query('SELECT COUNT(*) FROM cache_items')->fetch(\PDO::FETCH_COLUMN);
+        $getCacheItemCount = static fn () => (int) $pdo->query('SELECT COUNT(*) FROM cache_items')->fetch(\PDO::FETCH_COLUMN);
 
         $this->assertSame(0, $getCacheItemCount());
 
@@ -123,7 +123,7 @@
 
         /** @var \PDOStatement $select */
         $select = $getPdoConn->invoke($cache)->prepare('SELECT 1 FROM cache_items WHERE item_id LIKE :id');
-        $select->bindValue(':id', sprintf('%%%s', $name));
+        $select->bindValue(':id', \sprintf('%%%s', $name));
         $select->execute();
 
         return 1 !== (int) $select->fetch(\PDO::FETCH_COLUMN);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PhpArrayAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PhpArrayAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PhpArrayAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PhpArrayAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,6 +58,7 @@
 
         'testDefaultLifeTime' => 'PhpArrayAdapter does not allow configuring a default lifetime.',
         'testPrune' => 'PhpArrayAdapter just proxies',
+        'testClearWithInvalidPrefix' => 'PhpArrayAdapter does not validate the prefix.',
     ];
 
     protected static string $file;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
             'scheme' => 'tls',
             'host' => $redisHost[0],
             'port' => (int) ($redisHost[1] ?? 6379),
-            'ssl' => ['verify_peer' => '0'],
+            'ssl' => ['verify_peer' => false],
             'persistent' => 0,
             'timeout' => 3,
             'read_write_timeout' => 0,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisReplicationAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisReplicationAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisReplicationAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisReplicationAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,9 +27,9 @@
         $hosts = explode(' ', getenv('REDIS_REPLICATION_HOSTS'));
         $lastArrayKey = array_key_last($hosts);
         $hostTable = [];
-        foreach($hosts as $key => $host) {
+        foreach ($hosts as $key => $host) {
             $hostInformation = array_combine(['host', 'port'], explode(':', $host));
-            if($lastArrayKey === $key) {
+            if ($lastArrayKey === $key) {
                 $hostInformation['role'] = 'master';
             }
             $hostTable[] = $hostInformation;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisTagAwareReplicationAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisTagAwareReplicationAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisTagAwareReplicationAdapterTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/PredisTagAwareReplicationAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,37 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Tests\Adapter;
+
+use Psr\Cache\CacheItemPoolInterface;
+use Symfony\Component\Cache\Adapter\RedisTagAwareAdapter;
+
+/**
+ * @group integration
+ */
+class PredisTagAwareReplicationAdapterTest extends PredisRedisReplicationAdapterTest
+{
+    use TagAwareTestTrait;
+
+    protected function setUp(): void
+    {
+        parent::setUp();
+        $this->skippedTests['testTagItemExpiry'] = 'Testing expiration slows down the test suite';
+    }
+
+    public function createCachePool(int $defaultLifetime = 0, ?string $testMethod = null): CacheItemPoolInterface
+    {
+        $this->assertInstanceOf(\Predis\Client::class, self::$redis);
+        $adapter = new RedisTagAwareAdapter(self::$redis, str_replace('\\', '.', __CLASS__), $defaultLifetime);
+
+        return $adapter;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ProxyAdapterAndRedisAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ProxyAdapterAndRedisAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ProxyAdapterAndRedisAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ProxyAdapterAndRedisAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
 
         $cache = $this->createCachePool(1);
         $cache->clear();
-        $value = rand();
+        $value = random_int(0, getrandmax());
         $item = $cache->getItem('foo');
         $setCacheItemExpiry($item, 0);
         $cache->save($item->set($value));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ProxyAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ProxyAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ProxyAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/ProxyAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,6 +27,7 @@
         'testDeferredSaveWithoutCommit' => 'Assumes a shared cache which ArrayAdapter is not.',
         'testSaveWithoutExpire' => 'Assumes a shared cache which ArrayAdapter is not.',
         'testPrune' => 'ProxyAdapter just proxies',
+        'testClearWithInvalidPrefix' => 'Inner ArrayAdapter does not validate the prefix.',
     ];
 
     public function createCachePool(int $defaultLifetime = 0, ?string $testMethod = null): CacheItemPoolInterface
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/TagAwareAdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/TagAwareAdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Adapter/TagAwareAdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Adapter/TagAwareAdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
         $cache = new TagAwareAdapter($this->getPruneableMock());
         $this->assertTrue($cache->prune());
 
-        $cache = new TagAwareAdapter($this->getNonPruneableMock());
+        $cache = new TagAwareAdapter($this->createStub(AdapterInterface::class));
         $this->assertFalse($cache->prune());
 
         $cache = new TagAwareAdapter($this->getFailingPruneableMock());
@@ -123,11 +123,6 @@
         return $pruneable;
     }
 
-    private function getNonPruneableMock(): AdapterInterface&MockObject
-    {
-        return $this->createMock(AdapterInterface::class);
-    }
-
     /**
      * @doesNotPerformAssertions
      */
@@ -232,4 +227,29 @@
             // run generator
         }
     }
+
+    public function testResetClearsInternalStateEvenOnCommitFailure()
+    {
+        $pool = new class extends ArrayAdapter {
+            public function commit(): bool
+            {
+                return false;
+            }
+        };
+
+        $adapter = new TagAwareAdapter($pool);
+        $item = $adapter->getItem('foo');
+        $item->set('bar');
+        $adapter->saveDeferred($item);
+
+        // Simulate some known tag versions
+        $propertyTags = new \ReflectionProperty($adapter, 'knownTagVersions');
+        $propertyTags->setValue($adapter, ['tag1' => 1]);
+
+        $adapter->reset();
+
+        $propertyDeferred = new \ReflectionProperty($adapter, 'deferred');
+        $this->assertEmpty($propertyDeferred->getValue($adapter), 'The deferred items must be cleared even if commit fails.');
+        $this->assertEmpty($propertyTags->getValue($adapter), 'The known tag versions must be cleared even if commit fails.');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/DataCollector/CacheDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/DataCollector/CacheDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/DataCollector/CacheDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/DataCollector/CacheDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,6 +86,46 @@
         $this->assertEquals($statistics[self::INSTANCE_NAME]['writes'], 1, 'writes');
     }
 
+    public function testSaveDeferredEventWithoutExplicitCommitDataCollector()
+    {
+        $traceableAdapterEvent = new \stdClass();
+        $traceableAdapterEvent->name = 'saveDeferred';
+        $traceableAdapterEvent->start = 0;
+        $traceableAdapterEvent->end = 0;
+
+        $statistics = $this->getCacheDataCollectorStatisticsFromEvents([$traceableAdapterEvent]);
+
+        $this->assertSame(1, $statistics[self::INSTANCE_NAME]['calls'], 'calls');
+        $this->assertSame(0, $statistics[self::INSTANCE_NAME]['reads'], 'reads');
+        $this->assertSame(0, $statistics[self::INSTANCE_NAME]['hits'], 'hits');
+        $this->assertSame(0, $statistics[self::INSTANCE_NAME]['misses'], 'misses');
+        $this->assertSame(1, $statistics[self::INSTANCE_NAME]['writes'], 'writes');
+    }
+
+    public function testSaveDeferredEventWithExplicitCommitDataCollector()
+    {
+        $traceableAdapterSaveDeferredEvent = new \stdClass();
+        $traceableAdapterSaveDeferredEvent->name = 'saveDeferred';
+        $traceableAdapterSaveDeferredEvent->start = 0;
+        $traceableAdapterSaveDeferredEvent->end = 0;
+
+        $traceableAdapterCommitEvent = new \stdClass();
+        $traceableAdapterCommitEvent->name = 'commit';
+        $traceableAdapterCommitEvent->start = 0;
+        $traceableAdapterCommitEvent->end = 0;
+
+        $statistics = $this->getCacheDataCollectorStatisticsFromEvents([
+            $traceableAdapterSaveDeferredEvent,
+            $traceableAdapterCommitEvent,
+        ]);
+
+        $this->assertSame(2, $statistics[self::INSTANCE_NAME]['calls'], 'calls');
+        $this->assertSame(0, $statistics[self::INSTANCE_NAME]['reads'], 'reads');
+        $this->assertSame(0, $statistics[self::INSTANCE_NAME]['hits'], 'hits');
+        $this->assertSame(0, $statistics[self::INSTANCE_NAME]['misses'], 'misses');
+        $this->assertSame(1, $statistics[self::INSTANCE_NAME]['writes'], 'writes');
+    }
+
     public function testCollectBeforeEnd()
     {
         $adapter = new TraceableAdapter(new NullAdapter());
@@ -93,7 +133,7 @@
         $collector = new CacheDataCollector();
         $collector->addInstance(self::INSTANCE_NAME, $adapter);
 
-        $adapter->get('foo', function () use ($collector) {
+        $adapter->get('foo', static function () use ($collector) {
             $collector->collect(new Request(), new Response());
 
             return 123;
@@ -112,7 +152,7 @@
         $collector = new CacheDataCollector();
         $collector->addInstance(self::INSTANCE_NAME, $adapter);
 
-        $adapter->get('foo', function () use ($collector) {
+        $adapter->get('foo', static function () use ($collector) {
             $collector->lateCollect();
 
             return 123;
@@ -128,7 +168,7 @@
 
     private function getCacheDataCollectorStatisticsFromEvents(array $traceableAdapterEvents)
     {
-        $traceableAdapterMock = $this->createMock(TraceableAdapter::class);
+        $traceableAdapterMock = $this->createStub(TraceableAdapter::class);
         $traceableAdapterMock->method('getCalls')->willReturn($traceableAdapterEvents);
 
         $cacheDataCollector = new CacheDataCollector();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,8 +15,11 @@
 use Symfony\Component\Cache\Adapter\ApcuAdapter;
 use Symfony\Component\Cache\Adapter\ArrayAdapter;
 use Symfony\Component\Cache\Adapter\ChainAdapter;
+use Symfony\Component\Cache\Adapter\FilesystemAdapter;
 use Symfony\Component\Cache\Adapter\NullAdapter;
+use Symfony\Component\Cache\Adapter\ParameterNormalizer;
 use Symfony\Component\Cache\Adapter\RedisAdapter;
+use Symfony\Component\Cache\Adapter\TagAwareAdapter;
 use Symfony\Component\Cache\DependencyInjection\CachePoolPass;
 use Symfony\Component\DependencyInjection\ChildDefinition;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -102,15 +105,18 @@
         $this->assertSame('xmOJ8gqF-Y', $cachePool->getArgument(0));
     }
 
-    public function testNamespaceArgumentIsNotReplacedIfArrayAdapterIsUsed()
+    /**
+     * @dataProvider providerAdaptersNotNamespace
+     */
+    public function testNamespaceArgumentIsNotReplacedIfAdapterWithoutNamespace(string $adapterClass)
     {
         $container = new ContainerBuilder();
         $container->setParameter('kernel.container_class', 'app');
         $container->setParameter('kernel.project_dir', 'foo');
 
-        $container->register('cache.adapter.array', ArrayAdapter::class)->addArgument(0);
+        $container->register('cache.adapter', $adapterClass)->addArgument(0);
 
-        $cachePool = new ChildDefinition('cache.adapter.array');
+        $cachePool = new ChildDefinition('cache.adapter');
         $cachePool->addTag('cache.pool');
         $container->setDefinition('app.cache_pool', $cachePool);
 
@@ -119,21 +125,11 @@
         $this->assertCount(0, $container->getDefinition('app.cache_pool')->getArguments());
     }
 
-    public function testNamespaceArgumentIsNotReplacedIfNullAdapterIsUsed()
+    public static function providerAdaptersNotNamespace(): iterable
     {
-        $container = new ContainerBuilder();
-        $container->setParameter('kernel.container_class', 'app');
-        $container->setParameter('kernel.project_dir', 'foo');
-
-        $container->register('cache.adapter.null', NullAdapter::class);
-
-        $cachePool = new ChildDefinition('cache.adapter.null');
-        $cachePool->addTag('cache.pool');
-        $container->setDefinition('app.cache_pool', $cachePool);
-
-        $this->cachePoolPass->process($container);
-
-        $this->assertCount(0, $container->getDefinition('app.cache_pool')->getArguments());
+        yield [ArrayAdapter::class];
+        yield [NullAdapter::class];
+        yield [TagAwareAdapter::class];
     }
 
     public function testArgsAreReplaced()
@@ -209,7 +205,8 @@
         $container->register('cache.adapter.apcu', ApcuAdapter::class)
             ->setArguments([null, 0, null])
             ->addTag('cache.pool');
-        $container->register('cache.chain', ChainAdapter::class)
+        $container->register('cache.adapter.chain', ChainAdapter::class);
+        $container->setDefinition('cache.chain', new ChildDefinition('cache.adapter.chain'))
             ->addArgument(['cache.adapter.array', 'cache.adapter.apcu'])
             ->addTag('cache.pool');
         $container->setDefinition('cache.app', new ChildDefinition('cache.chain'))
@@ -224,7 +221,7 @@
         $this->assertSame('cache.chain', $appCachePool->getParent());
 
         $chainCachePool = $container->getDefinition('cache.chain');
-        $this->assertNotInstanceOf(ChildDefinition::class, $chainCachePool);
+        $this->assertInstanceOf(ChildDefinition::class, $chainCachePool);
         $this->assertCount(2, $chainCachePool->getArgument(0));
         $this->assertInstanceOf(ChildDefinition::class, $chainCachePool->getArgument(0)[0]);
         $this->assertSame('cache.adapter.array', $chainCachePool->getArgument(0)[0]->getParent());
@@ -236,6 +233,63 @@
         $this->assertSame('cache.app', $doctrineCachePool->getParent());
     }
 
+    public function testChainChildDefinitionGetsOwnNamespace()
+    {
+        $container = new ContainerBuilder();
+        $container->setParameter('cache.prefix.seed', 'test');
+
+        $container->register('cache.adapter.filesystem', FilesystemAdapter::class)
+            ->setAbstract(true)
+            ->setArguments([null, 0, null]);
+        $container->register('cache.adapter.chain', ChainAdapter::class)
+            ->setAbstract(true);
+
+        $container->setDefinition('cache.parent.chain', new ChildDefinition('cache.adapter.chain'))
+            ->addArgument(['cache.adapter.filesystem'])
+            ->addTag('cache.pool');
+
+        $container->setDefinition('foobar.chained.cache', new ChildDefinition('cache.parent.chain'))
+            ->addTag('cache.pool');
+
+        $this->cachePoolPass->process($container);
+
+        $parentChain = $container->getDefinition('cache.parent.chain');
+        $childChain = $container->getDefinition('foobar.chained.cache');
+
+        $parentNamespace = $parentChain->getArgument(0)[0]->getArgument(0);
+        $childNamespace = $childChain->getArgument(0)[0]->getArgument(0);
+
+        $this->assertNotSame($parentNamespace, $childNamespace);
+    }
+
+    public function testChainAdapterNormalizesDefaultLifetimeDurationString()
+    {
+        $container = new ContainerBuilder();
+        $container->setParameter('kernel.container_class', 'app');
+        $container->setParameter('kernel.project_dir', 'foo');
+
+        $container->register('cache.adapter.array', ArrayAdapter::class)
+            ->addTag('cache.pool');
+        $container->register('cache.adapter.apcu', ApcuAdapter::class)
+            ->setArguments([null, 0, null])
+            ->addTag('cache.pool');
+        $container->register('cache.adapter.chain', ChainAdapter::class);
+        $container->setDefinition('cache.chain', new ChildDefinition('cache.adapter.chain'))
+            ->addArgument(['cache.adapter.array', 'cache.adapter.apcu'])
+            ->addTag('cache.pool', ['default_lifetime' => '1 week']);
+
+        $this->cachePoolPass->process($container);
+
+        $chainPool = $container->getDefinition('cache.chain');
+        foreach ($chainPool->getArgument(0) as $innerAdapter) {
+            $this->assertInstanceOf(Definition::class, $innerAdapter);
+            $arguments = $innerAdapter->getArguments();
+            $lifetimeArg = $arguments[array_key_last($arguments)];
+            $this->assertSame([ParameterNormalizer::class, 'normalizeDuration'], $lifetimeArg->getFactory());
+            $this->assertSame(['1 week'], $lifetimeArg->getArguments());
+        }
+    }
+
     public function testGlobalClearerAlias()
     {
         $container = new ContainerBuilder();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPrunerPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPrunerPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPrunerPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPrunerPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,14 @@
 namespace Symfony\Component\Cache\Tests\DependencyInjection;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Bundle\FrameworkBundle\Command\CachePoolPruneCommand;
 use Symfony\Component\Cache\Adapter\FilesystemAdapter;
 use Symfony\Component\Cache\Adapter\PhpFilesAdapter;
+use Symfony\Component\Cache\DependencyInjection\CachePoolPass;
 use Symfony\Component\Cache\DependencyInjection\CachePoolPrunerPass;
+use Symfony\Component\Cache\PruneableInterface;
 use Symfony\Component\DependencyInjection\Argument\IteratorArgument;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 use Symfony\Component\DependencyInjection\Reference;
 
 class CachePoolPrunerPassTest extends TestCase
@@ -57,17 +59,66 @@
         $this->assertCount($aliasesBefore, $container->getAliases());
     }
 
-    public function testCompilerPassThrowsOnInvalidDefinitionClass()
+    public function testNonPruneablePoolsAreNotAdded()
     {
         $container = new ContainerBuilder();
-        $container->register('console.command.cache_pool_prune')->addArgument([]);
-        $container->register('pool.not-found', NotFound::class)->addTag('cache.pool');
+        $container->setParameter('kernel.debug', false);
+        $container->setParameter('kernel.project_dir', __DIR__);
+        $container->setParameter('kernel.container_class', 'TestContainer');
 
-        $pass = new CachePoolPrunerPass();
+        $container->register('console.command.cache_pool_prune', CachePoolPruneCommand::class)
+            ->setArguments([new IteratorArgument([])]);
 
-        $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage('Class "Symfony\Component\Cache\Tests\DependencyInjection\NotFound" used for service "pool.not-found" cannot be found.');
+        $container->register('cache.null', NonPruneableAdapter::class)
+            ->setArguments([null])
+            ->addTag('cache.pool');
 
-        $pass->process($container);
+        $container->register('cache.fs', PruneableAdapter::class)
+            ->setArguments([null])
+            ->addTag('cache.pool');
+
+        (new CachePoolPass())->process($container);
+        (new CachePoolPrunerPass())->process($container);
+
+        $arg = $container->getDefinition('console.command.cache_pool_prune')->getArgument(0);
+        $values = $arg->getValues();
+
+        $this->assertArrayNotHasKey('cache.null', $values);
+        $this->assertArrayHasKey('cache.fs', $values);
     }
+
+    public function testPruneableAttributeOverridesInterfaceCheck()
+    {
+        $container = new ContainerBuilder();
+        $container->setParameter('kernel.debug', false);
+        $container->setParameter('kernel.project_dir', __DIR__);
+        $container->setParameter('kernel.container_class', 'TestContainer');
+
+        $container->register('console.command.cache_pool_prune', 'stdClass')
+            ->setArguments([new IteratorArgument([])]);
+
+        $container->register('manual.pool', NonPruneableAdapter::class)
+            ->setArguments([null])
+            ->addTag('cache.pool', ['pruneable' => true]);
+
+        (new CachePoolPass())->process($container);
+        (new CachePoolPrunerPass())->process($container);
+
+        $arg = $container->getDefinition('console.command.cache_pool_prune')->getArgument(0);
+        $values = $arg->getValues();
+
+        $this->assertArrayHasKey('manual.pool', $values);
+    }
+}
+
+class PruneableAdapter implements PruneableInterface
+{
+    public function prune(): bool
+    {
+        return true;
+    }
+}
+
+class NonPruneableAdapter
+{
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Fixtures/FailingTagFilesystemAdapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Fixtures/FailingTagFilesystemAdapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Fixtures/FailingTagFilesystemAdapter.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Fixtures/FailingTagFilesystemAdapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Tests\Fixtures;
+
+use Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter;
+
+/**
+ * Adapter that simulates a failure when saving tags.
+ */
+class FailingTagFilesystemAdapter extends FilesystemTagAwareAdapter
+{
+    protected function doSave(array $values, int $lifetime, array $addTagData = [], array $removeTagData = []): array
+    {
+        $failed = parent::doSave($values, $lifetime, $addTagData, $removeTagData);
+
+        // Simulate tag save failure by returning tag IDs as failed
+        foreach ($addTagData as $tagId => $ids) {
+            $failed[] = $tagId;
+        }
+
+        return $failed;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
         $marshaller = new DefaultMarshaller();
         $values = [
             'a' => 123,
-            'b' => function () {},
+            'b' => static function () {},
         ];
 
         $expected = ['a' => \extension_loaded('igbinary') && (version_compare('3.1.6', phpversion('igbinary'), '<=')) ? igbinary_serialize(123) : serialize(123)];
@@ -113,7 +113,7 @@
     {
         $marshaller = new DefaultMarshaller(false, true);
         $values = [
-            'a' => function () {},
+            'a' => static function () {},
         ];
 
         $this->expectException(\ValueError::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationDispatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationDispatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationDispatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationDispatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,6 +24,7 @@
 use Symfony\Component\DependencyInjection\ServiceLocator;
 use Symfony\Component\Filesystem\Filesystem;
 use Symfony\Component\Messenger\Envelope;
+use Symfony\Component\Messenger\MessageBus;
 use Symfony\Component\Messenger\MessageBusInterface;
 
 class EarlyExpirationDispatcherTest extends TestCase
@@ -41,7 +42,7 @@
 
         $item = $pool->getItem('foo');
 
-        $computationService = new class() {
+        $computationService = new class {
             public function __invoke(CacheItem $item)
             {
                 return 123;
@@ -54,12 +55,10 @@
 
         $reverseContainer = new ReverseContainer($container, new ServiceLocator([]));
 
-        $bus = $this->createMock(MessageBusInterface::class);
-
-        $dispatcher = new EarlyExpirationDispatcher($bus, $reverseContainer);
+        $dispatcher = new EarlyExpirationDispatcher(new MessageBus(), $reverseContainer);
 
         $saveResult = null;
-        $pool->setCallbackWrapper(function (callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger) use ($dispatcher, &$saveResult) {
+        $pool->setCallbackWrapper(static function (callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger) use ($dispatcher, &$saveResult) {
             try {
                 return $dispatcher($callback, $item, $save, $pool, $setMetadata, $logger);
             } finally {
@@ -67,7 +66,7 @@
             }
         });
 
-        $this->assertSame(345, $pool->get('foo', fn () => 345));
+        $this->assertSame(345, $pool->get('foo', static fn () => 345));
         $this->assertTrue($saveResult);
 
         $expected = [
@@ -90,7 +89,7 @@
         $pool->save($item->set(789));
         $item = $pool->getItem('foo');
 
-        $computationService = new class() {
+        $computationService = new class {
             public function __invoke(CacheItem $item)
             {
                 return 123;
@@ -113,7 +112,7 @@
         $dispatcher = new EarlyExpirationDispatcher($bus, $reverseContainer);
 
         $saveResult = true;
-        $setMetadata = function () {
+        $setMetadata = static function () {
         };
         $dispatcher($computationService, $item, $saveResult, $pool, $setMetadata, $logger);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
         $item = $pool->getItem('foo');
         $item->set(234);
 
-        $computationService = new class() implements CallbackInterface {
+        $computationService = new class implements CallbackInterface {
             public function __invoke(CacheItemInterface $item, bool &$save): mixed
             {
                 usleep(30000);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationMessageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationMessageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationMessageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Messenger/EarlyExpirationMessageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
         $item = $pool->getItem('foo');
         $item->set(234);
 
-        $computationService = new class() {
+        $computationService = new class {
             public function __invoke(CacheItem $item)
             {
                 return 123;
@@ -57,4 +57,58 @@
         $this->assertSame('@computation_service', $msg->getCallback());
         $this->assertSame($computationService, $msg->findCallback($reverseContainer));
     }
+
+    public function testCreateWithNonAnonymousClosureBoundToInstance()
+    {
+        $pool = new ArrayAdapter();
+        $item = $pool->getItem('foo');
+        $item->set(234);
+
+        $computationService = new class {
+            public function compute(CacheItem $item)
+            {
+                return 123;
+            }
+
+            public static function staticCompute(CacheItem $item)
+            {
+                return 123;
+            }
+        };
+
+        $container = new Container();
+        $container->set('computation_service', $computationService);
+        $container->set('cache_pool', $pool);
+
+        $reverseContainer = new ReverseContainer($container, new ServiceLocator([]));
+
+        $closure = $computationService->compute(...);
+        $msg = EarlyExpirationMessage::create($reverseContainer, $closure, $item, $pool);
+        $this->assertSame(['@computation_service', 'compute'], $msg->getCallback());
+
+        $closure = $computationService::staticCompute(...);
+        $msg = EarlyExpirationMessage::create($reverseContainer, $closure, $item, $pool);
+        $this->assertSame([$computationService::class, 'staticCompute'], $msg->getCallback());
+
+        $msg = EarlyExpirationMessage::create($reverseContainer, var_dump(...), $item, $pool);
+        $this->assertSame('var_dump', $msg->getCallback());
+
+        $this->assertSame('cache_pool', $msg->getPool());
+    }
+
+    public function testCreateWithAnonymousClosure()
+    {
+        $pool = new ArrayAdapter();
+        $item = $pool->getItem('foo');
+        $item->set(234);
+
+        $container = new Container();
+        $container->set('cache_pool', $pool);
+
+        $reverseContainer = new ReverseContainer($container, new ServiceLocator([]));
+
+        $msg = EarlyExpirationMessage::create($reverseContainer, static fn () => 123, $item, $pool);
+
+        $this->assertNull($msg);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Psr16CacheTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Psr16CacheTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Psr16CacheTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Psr16CacheTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,7 +13,9 @@
 
 use Cache\IntegrationTests\SimpleCacheTest;
 use Psr\SimpleCache\CacheInterface;
+use Symfony\Component\Cache\Adapter\ArrayAdapter;
 use Symfony\Component\Cache\Adapter\FilesystemAdapter;
+use Symfony\Component\Cache\Adapter\TagAwareAdapter;
 use Symfony\Component\Cache\PruneableInterface;
 use Symfony\Component\Cache\Psr16Cache;
 
@@ -32,7 +34,7 @@
 
         $pool = $this->createSimpleCache();
         if ($pool instanceof Psr16Cache) {
-            $pool = ((array) $pool)[sprintf("\0%s\0pool", Psr16Cache::class)];
+            $pool = ((array) $pool)[\sprintf("\0%s\0pool", Psr16Cache::class)];
         }
 
         if (!$pool instanceof PruneableInterface) {
@@ -167,16 +169,42 @@
             $this->fail('Test classes for pruneable caches must implement `isPruned($cache, $name)` method.');
         }
 
-        $pool = ((array) $cache)[sprintf("\0%s\0pool", Psr16Cache::class)];
+        $pool = ((array) $cache)[\sprintf("\0%s\0pool", Psr16Cache::class)];
         $getFileMethod = (new \ReflectionObject($pool))->getMethod('getFile');
 
         return !file_exists($getFileMethod->invoke($pool, $name));
     }
+
+    public function testGetMultipleWithTagAwareAdapter()
+    {
+        $cache = new Psr16Cache(new TagAwareAdapter(new ArrayAdapter()));
+
+        $cache->set('foo', 'foo-val');
+        $cache->set('bar', 'bar-val');
+
+        $this->assertSame('foo-val', $cache->get('foo'));
+        $this->assertSame('bar-val', $cache->get('bar'));
+
+        $this->assertSame(['foo' => 'foo-val', 'bar' => 'bar-val'], $cache->getMultiple(['foo', 'bar']));
+    }
+
+    public function testGetMultipleWithTtl()
+    {
+        $cache = new Psr16Cache(new ArrayAdapter());
+
+        $cache->set('foo', 'foo-val', 60);
+        $cache->set('bar', 'bar-val', 60);
+
+        $this->assertSame('foo-val', $cache->get('foo'));
+        $this->assertSame('bar-val', $cache->get('bar'));
+
+        $this->assertSame(['foo' => 'foo-val', 'bar' => 'bar-val'], $cache->getMultiple(['foo', 'bar']));
+    }
 }
 
 class NotUnserializable
 {
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \Exception(__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Traits/RedisProxiesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Traits/RedisProxiesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Traits/RedisProxiesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Traits/RedisProxiesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,17 +33,17 @@
         $expected = substr($proxy, 0, 4 + strpos($proxy, '[];'));
         $methods = [];
 
-        foreach ((new \ReflectionClass(sprintf('Symfony\Component\Cache\Traits\\%s%dProxy', $class, $version)))->getMethods() as $method) {
-            if ('reset' === $method->name || method_exists(LazyProxyTrait::class, $method->name)) {
+        foreach ((new \ReflectionClass(\sprintf('Symfony\Component\Cache\Traits\\%s%dProxy', $class, $version)))->getMethods() as $method) {
+            if ('reset' === $method->name || method_exists(LazyProxyTrait::class, $method->name) || $method->isInternal()) {
                 continue;
             }
-            $return = $method->getReturnType() instanceof \ReflectionNamedType && 'void' === (string) $method->getReturnType() ? '' : 'return ';
-            $methods[$method->name] = "\n    ".ProxyHelper::exportSignature($method, false, $args)."\n".<<<EOPHP
-                {
-                    {$return}(\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
-                }
+            $return = '__construct' === $method->name || $method->getReturnType() instanceof \ReflectionNamedType && 'void' === (string) $method->getReturnType() ? '' : 'return ';
+            $methods[$method->name] = "\n    ".ProxyHelper::exportSignature($method, true, $args)."\n".<<<EOPHP
+                    {
+                        {$return}(\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
+                    }
 
-            EOPHP;
+                EOPHP;
         }
 
         uksort($methods, 'strnatcmp');
@@ -52,16 +52,16 @@
         $methods = [];
 
         foreach ((new \ReflectionClass($class))->getMethods() as $method) {
-            if ('reset' === $method->name || method_exists(LazyProxyTrait::class, $method->name)) {
+            if ('__destruct' === $method->name || 'reset' === $method->name) {
                 continue;
             }
-            $return = $method->getReturnType() instanceof \ReflectionNamedType && 'void' === (string) $method->getReturnType() ? '' : 'return ';
+            $return = '__construct' === $method->name || $method->getReturnType() instanceof \ReflectionNamedType && 'void' === (string) $method->getReturnType() ? '' : 'return ';
             $methods[$method->name] = "\n    ".ProxyHelper::exportSignature($method, false, $args)."\n".<<<EOPHP
-                {
-                    {$return}(\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
-                }
+                    {
+                        {$return}(\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
+                    }
 
-            EOPHP;
+                EOPHP;
         }
 
         uksort($methods, 'strnatcmp');
@@ -87,30 +87,30 @@
         $expectedMethods = [];
 
         foreach ((new \ReflectionClass(RelayProxy::class))->getMethods() as $method) {
-            if ('reset' === $method->name || method_exists(LazyProxyTrait::class, $method->name) || $method->isStatic()) {
+            if ('reset' === $method->name || method_exists(LazyProxyTrait::class, $method->name) || $method->isInternal()) {
                 continue;
             }
 
-            $return = $method->getReturnType() instanceof \ReflectionNamedType && 'void' === (string) $method->getReturnType() ? '' : 'return ';
-            $expectedMethods[$method->name] = "\n    ".ProxyHelper::exportSignature($method, false, $args)."\n".<<<EOPHP
-                {
-                    {$return}(\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
-                }
+            $return = '__construct' === $method->name || $method->getReturnType() instanceof \ReflectionNamedType && 'void' === (string) $method->getReturnType() ? '' : 'return ';
+            $expectedMethods[$method->name] = "\n    ".ProxyHelper::exportSignature($method, true, $args)."\n".<<<EOPHP
+                    {
+                        {$return}(\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
+                    }
 
-            EOPHP;
+                EOPHP;
         }
 
         foreach ((new \ReflectionClass(Relay::class))->getMethods() as $method) {
-            if ('reset' === $method->name || method_exists(LazyProxyTrait::class, $method->name) || $method->isStatic()) {
+            if ('__destruct' === $method->name || 'reset' === $method->name || $method->isStatic()) {
                 continue;
             }
-            $return = $method->getReturnType() instanceof \ReflectionNamedType && 'void' === (string) $method->getReturnType() ? '' : 'return ';
+            $return = '__construct' === $method->name || $method->getReturnType() instanceof \ReflectionNamedType && 'void' === (string) $method->getReturnType() ? '' : 'return ';
             $methods[$method->name] = "\n    ".ProxyHelper::exportSignature($method, false, $args)."\n".<<<EOPHP
-                {
-                    {$return}(\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
-                }
+                    {
+                        {$return}(\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
+                    }
 
-            EOPHP;
+                EOPHP;
         }
 
         uksort($methods, 'strnatcmp');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Traits/RedisTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Traits/RedisTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Tests/Traits/RedisTraitTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Tests/Traits/RedisTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,19 +20,28 @@
  */
 class RedisTraitTest extends TestCase
 {
+    public static function setUpBeforeClass(): void
+    {
+        try {
+            (new \Redis())->connect(...explode(':', getenv('REDIS_HOST')));
+        } catch (\Exception $e) {
+            self::markTestSkipped(getenv('REDIS_HOST').': '.$e->getMessage());
+        }
+    }
+
     /**
      * @dataProvider provideCreateConnection
      */
     public function testCreateConnection(string $dsn, string $expectedClass)
     {
         if (!class_exists($expectedClass)) {
-            self::markTestSkipped(sprintf('The "%s" class is required.', $expectedClass));
+            self::markTestSkipped(\sprintf('The "%s" class is required.', $expectedClass));
         }
         if (!getenv('REDIS_CLUSTER_HOSTS')) {
             self::markTestSkipped('REDIS_CLUSTER_HOSTS env var is not defined.');
         }
 
-        $mock = new class () {
+        $mock = new class {
             use RedisTrait;
         };
         $connection = $mock::createConnection($dsn);
@@ -46,7 +55,7 @@
             self::markTestSkipped('REDIS_AUTHENTICATED_HOST env var is not defined.');
         }
 
-        $mock = new class () {
+        $mock = new class {
             use RedisTrait;
         };
         $connection = $mock::createConnection('redis://:p%40ssword@'.getenv('REDIS_AUTHENTICATED_HOST'));
@@ -57,30 +66,30 @@
 
     public static function provideCreateConnection(): array
     {
-        $hosts = array_map(fn ($host) => sprintf('host[%s]', $host), explode(' ', getenv('REDIS_CLUSTER_HOSTS')));
+        $hosts = array_map(static fn ($host) => \sprintf('host[%s]', $host), explode(' ', getenv('REDIS_CLUSTER_HOSTS')));
 
         return [
             [
-                sprintf('redis:?%s&redis_cluster=1', $hosts[0]),
+                \sprintf('redis:?%s&redis_cluster=1', $hosts[0]),
                 'RedisCluster',
             ],
             [
-                sprintf('redis:?%s&redis_cluster=true', $hosts[0]),
+                \sprintf('redis:?%s&redis_cluster=true', $hosts[0]),
                 'RedisCluster',
             ],
             [
-                sprintf('redis:?%s', $hosts[0]),
+                \sprintf('redis:?%s', $hosts[0]),
                 'Redis',
             ],
             [
-                sprintf('redis:?%s', implode('&', \array_slice($hosts, 0, 2))),
+                \sprintf('redis:?%s', implode('&', \array_slice($hosts, 0, 2))),
                 'RedisArray',
             ],
         ];
     }
 
     /**
-     * Due to a bug in phpredis, the persistent connection will keep its last selected database. So when re-using
+     * Due to a bug in phpredis, the persistent connection will keep its last selected database. So when reusing
      * a persistent connection, the database has to be re-selected, too.
      *
      * @see https://github.com/phpredis/phpredis/issues/1920
@@ -89,12 +98,6 @@
      */
     public function testPconnectSelectsCorrectDatabase()
     {
-        if (!class_exists(\Redis::class)) {
-            self::markTestSkipped('The "Redis" class is required.');
-        }
-        if (!getenv('REDIS_HOST')) {
-            self::markTestSkipped('REDIS_HOST env var is not defined.');
-        }
         if (!\ini_get('redis.pconnect.pooling_enabled')) {
             self::markTestSkipped('The bug only occurs when pooling is enabled.');
         }
@@ -105,7 +108,7 @@
         }
 
         try {
-            $mock = new class () {
+            $mock = new class {
                 use RedisTrait;
             };
 
@@ -143,7 +146,7 @@
             self::markTestSkipped('REDIS_AUTHENTICATED_HOST env var is not defined.');
         }
 
-        $mock = new class () {
+        $mock = new class {
             use RedisTrait;
         };
         $connection = $mock::createConnection($dsn);
@@ -190,7 +193,7 @@
         }
         $this->expectException(InvalidArgumentException::class);
 
-        $mock = new class () {
+        $mock = new class {
             use RedisTrait;
         };
         $mock::createConnection($dsn);
@@ -200,11 +203,11 @@
     {
         return [
             [
-                'redis://:p%40ssword@'.getenv('REDIS_AUTHENTICATED_HOST').'/abc'
+                'redis://:p%40ssword@'.getenv('REDIS_AUTHENTICATED_HOST').'/abc',
             ],
             [
-                'redis://:p%40ssword@'.getenv('REDIS_AUTHENTICATED_HOST').'/3?dbindex=6'
-            ]
+                'redis://:p%40ssword@'.getenv('REDIS_AUTHENTICATED_HOST').'/3?dbindex=6',
+            ],
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/AbstractAdapterTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/AbstractAdapterTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/AbstractAdapterTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/AbstractAdapterTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -125,6 +125,10 @@
                 $this->namespaceVersion = $namespaceVersion;
                 $this->ids = [];
             }
+        } elseif (preg_match('#[^-+.A-Za-z0-9]#', $prefix)) {
+            CacheItem::log($this->logger, 'Failed to clear the cache: Namespace-prefix contains invalid characters.', ['cache-adapter' => get_debug_type($this)]);
+
+            return false;
         } else {
             $namespaceToClear = $this->namespace.$prefix;
         }
@@ -276,15 +280,12 @@
         $this->ids = [];
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -303,7 +304,7 @@
         try {
             foreach ($items as $id => $value) {
                 if (!isset($keys[$id])) {
-                    throw new InvalidArgumentException(sprintf('Could not match value id "%s" to keys "%s".', $id, implode('", "', $keys)));
+                    throw new InvalidArgumentException(\sprintf('Could not match value id "%s" to keys "%s".', $id, implode('", "', $keys)));
                 }
                 $key = $keys[$id];
                 unset($keys[$id]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/CachedValueInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/CachedValueInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/CachedValueInterface.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/CachedValueInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,20 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits;
+
+/**
+ * @internal
+ */
+interface CachedValueInterface
+{
+    public function getValue(): mixed;
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/ContractsTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/ContractsTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/ContractsTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/ContractsTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
         }
 
         $previousWrapper = $this->callbackWrapper;
-        $this->callbackWrapper = $callbackWrapper ?? static fn (callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger) => $callback($item, $save);
+        $this->callbackWrapper = $callbackWrapper ?? static fn (callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger, ?float $beta = null) => $callback($item, $save);
 
         return $previousWrapper;
     }
@@ -62,7 +62,7 @@
     private function doGet(AdapterInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null): mixed
     {
         if (0 > $beta ??= 1.0) {
-            throw new InvalidArgumentException(sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta));
+            throw new InvalidArgumentException(\sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta));
         }
 
         static $setMetadata;
@@ -82,7 +82,7 @@
 
         $this->callbackWrapper ??= LockRegistry::compute(...);
 
-        return $this->contractsGet($pool, $key, function (CacheItem $item, bool &$save) use ($pool, $callback, $setMetadata, &$metadata, $key) {
+        return $this->contractsGet($pool, $key, function (CacheItem $item, bool &$save) use ($pool, $callback, $setMetadata, &$metadata, $key, $beta) {
             // don't wrap nor save recursive calls
             if (isset($this->computing[$key])) {
                 $value = $callback($item, $save);
@@ -99,9 +99,9 @@
             }
 
             try {
-                $value = ($this->callbackWrapper)($callback, $item, $save, $pool, function (CacheItem $item) use ($setMetadata, $startTime, &$metadata) {
+                $value = ($this->callbackWrapper)($callback, $item, $save, $pool, static function (CacheItem $item) use ($setMetadata, $startTime, &$metadata) {
                     $setMetadata($item, $startTime, $metadata);
-                }, $this->logger ?? null);
+                }, $this->logger ?? null, $beta);
                 $setMetadata($item, $startTime, $metadata);
 
                 return $value;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,19 +32,19 @@
         }
         if (isset($namespace[0])) {
             if (preg_match('#[^-+_.A-Za-z0-9]#', $namespace, $match)) {
-                throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0]));
+                throw new InvalidArgumentException(\sprintf('Namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0]));
             }
             $directory .= \DIRECTORY_SEPARATOR.$namespace;
         } else {
             $directory .= \DIRECTORY_SEPARATOR.'@';
         }
         if (!is_dir($directory)) {
-            @mkdir($directory, 0777, true);
+            @mkdir($directory, 0o777, true);
         }
         $directory .= \DIRECTORY_SEPARATOR;
         // On Windows the whole path is limited to 258 chars
         if ('\\' === \DIRECTORY_SEPARATOR && \strlen($directory) > 234) {
-            throw new InvalidArgumentException(sprintf('Cache directory too long (%s).', $directory));
+            throw new InvalidArgumentException(\sprintf('Cache directory too long (%s).', $directory));
         }
 
         $this->directory = $directory;
@@ -134,7 +134,7 @@
         $dir = ($directory ?? $this->directory).strtoupper($hash[0].\DIRECTORY_SEPARATOR.$hash[1].\DIRECTORY_SEPARATOR);
 
         if ($mkdir && !is_dir($dir)) {
-            @mkdir($dir, 0777, true);
+            @mkdir($dir, 0o777, true);
         }
 
         return $dir.substr($hash, 2, 20);
@@ -172,15 +172,12 @@
         }
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/FilesystemTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/FilesystemTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/FilesystemTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/FilesystemTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -92,7 +92,7 @@
         }
 
         if ($failed && !is_writable($this->directory)) {
-            throw new CacheException(sprintf('Cache directory is not writable (%s).', $this->directory));
+            throw new CacheException(\sprintf('Cache directory is not writable (%s).', $this->directory));
         }
 
         return $failed;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Redis61ProxyTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Redis61ProxyTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Redis61ProxyTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Redis61ProxyTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,81 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits;
+
+if (version_compare(phpversion('redis'), '6.1.0-dev', '>=')) {
+    /**
+     * @internal
+     */
+    trait Redis61ProxyTrait
+    {
+        public function dump($key): \Redis|string|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args());
+        }
+
+        public function hRandField($key, $options = null): \Redis|array|string|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hRandField(...\func_get_args());
+        }
+
+        public function hSet($key, ...$fields_and_vals): \Redis|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hSet(...\func_get_args());
+        }
+
+        public function mget($keys): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mget(...\func_get_args());
+        }
+
+        public function sRandMember($key, $count = 0): mixed
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sRandMember(...\func_get_args());
+        }
+
+        public function waitaof($numlocal, $numreplicas, $timeout): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->waitaof(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait Redis61ProxyTrait
+    {
+        public function dump($key): \Redis|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args());
+        }
+
+        public function hRandField($key, $options = null): \Redis|array|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hRandField(...\func_get_args());
+        }
+
+        public function hSet($key, $member, $value): \Redis|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hSet(...\func_get_args());
+        }
+
+        public function mget($keys): \Redis|array
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mget(...\func_get_args());
+        }
+
+        public function sRandMember($key, $count = 0): \Redis|array|false|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sRandMember(...\func_get_args());
+        }
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Redis62ProxyTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Redis62ProxyTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Redis62ProxyTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Redis62ProxyTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,52 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits;
+
+if (version_compare(phpversion('redis'), '6.2.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait Redis62ProxyTrait
+    {
+        public function expiremember($key, $field, $ttl, $unit = null): \Redis|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expiremember(...\func_get_args());
+        }
+
+        public function expirememberat($key, $field, $timestamp): \Redis|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expirememberat(...\func_get_args());
+        }
+
+        public function getWithMeta($key): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getWithMeta(...\func_get_args());
+        }
+
+        public function serverName(): false|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->serverName(...\func_get_args());
+        }
+
+        public function serverVersion(): false|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->serverVersion(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait Redis62ProxyTrait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Redis63ProxyTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Redis63ProxyTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Redis63ProxyTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Redis63ProxyTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,162 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits;
+
+if (version_compare(phpversion('redis'), '6.3.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait Redis63ProxyTrait
+    {
+        public function delifeq($key, $value): \Redis|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->delifeq(...\func_get_args());
+        }
+
+        public function hexpire($key, $ttl, $fields, $mode = null): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexpire(...\func_get_args());
+        }
+
+        public function hexpireat($key, $time, $fields, $mode = null): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexpireat(...\func_get_args());
+        }
+
+        public function hexpiretime($key, $fields): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexpiretime(...\func_get_args());
+        }
+
+        public function hgetdel($key, $fields): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetdel(...\func_get_args());
+        }
+
+        public function hgetex($key, $fields, $expiry = null): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetex(...\func_get_args());
+        }
+
+        public function hGetWithMeta($key, $member): mixed
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hGetWithMeta(...\func_get_args());
+        }
+
+        public function hpersist($key, $fields): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpersist(...\func_get_args());
+        }
+
+        public function hpexpire($key, $ttl, $fields, $mode = null): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpexpire(...\func_get_args());
+        }
+
+        public function hpexpireat($key, $mstime, $fields, $mode = null): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpexpireat(...\func_get_args());
+        }
+
+        public function hpexpiretime($key, $fields): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpexpiretime(...\func_get_args());
+        }
+
+        public function hpttl($key, $fields): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpttl(...\func_get_args());
+        }
+
+        public function hsetex($key, $fields, $expiry = null): \Redis|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hsetex(...\func_get_args());
+        }
+
+        public function httl($key, $fields): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->httl(...\func_get_args());
+        }
+
+        public function vadd($key, $values, $element, $options = null): \Redis|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vadd(...\func_get_args());
+        }
+
+        public function vcard($key): \Redis|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vcard(...\func_get_args());
+        }
+
+        public function vdim($key): \Redis|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vdim(...\func_get_args());
+        }
+
+        public function vemb($key, $member, $raw = false): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vemb(...\func_get_args());
+        }
+
+        public function vgetattr($key, $member, $decode = true): \Redis|array|string|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vgetattr(...\func_get_args());
+        }
+
+        public function vinfo($key): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vinfo(...\func_get_args());
+        }
+
+        public function vismember($key, $member): \Redis|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vismember(...\func_get_args());
+        }
+
+        public function vlinks($key, $member, $withscores = false): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vlinks(...\func_get_args());
+        }
+
+        public function vrandmember($key, $count = 0): \Redis|array|string|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrandmember(...\func_get_args());
+        }
+
+        public function vrange($key, $min, $max, $count = -1): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrange(...\func_get_args());
+        }
+
+        public function vrem($key, $member): \Redis|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrem(...\func_get_args());
+        }
+
+        public function vsetattr($key, $member, $attributes): \Redis|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vsetattr(...\func_get_args());
+        }
+
+        public function vsim($key, $member, $options = null): \Redis|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vsim(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait Redis63ProxyTrait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Redis6Proxy.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Redis6Proxy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Redis6Proxy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Redis6Proxy.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,9 @@
  */
 class Redis6Proxy extends \Redis implements ResetInterface, LazyObjectInterface
 {
-    use Redis6ProxyTrait;
+    use Redis61ProxyTrait;
+    use Redis62ProxyTrait;
+    use Redis63ProxyTrait;
     use LazyProxyTrait {
         resetLazyObject as reset;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Redis6ProxyTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Redis6ProxyTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Redis6ProxyTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Redis6ProxyTrait.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Cache\Traits;
-
-if (version_compare(phpversion('redis'), '6.1.0-dev', '>=')) {
-    /**
-     * @internal
-     */
-    trait Redis6ProxyTrait
-    {
-        public function dump($key): \Redis|string|false
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args());
-        }
-
-        public function hRandField($key, $options = null): \Redis|array|string|false
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hRandField(...\func_get_args());
-        }
-
-        public function hSet($key, ...$fields_and_vals): \Redis|false|int
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hSet(...\func_get_args());
-        }
-
-        public function mget($keys): \Redis|array|false
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mget(...\func_get_args());
-        }
-
-        public function sRandMember($key, $count = 0): mixed
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sRandMember(...\func_get_args());
-        }
-
-        public function waitaof($numlocal, $numreplicas, $timeout): \Redis|array|false
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->waitaof(...\func_get_args());
-        }
-    }
-} else {
-    /**
-     * @internal
-     */
-    trait Redis6ProxyTrait
-    {
-        public function dump($key): \Redis|string
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args());
-        }
-
-        public function hRandField($key, $options = null): \Redis|array|string
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hRandField(...\func_get_args());
-        }
-
-        public function hSet($key, $member, $value): \Redis|false|int
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hSet(...\func_get_args());
-        }
-
-        public function mget($keys): \Redis|array
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mget(...\func_get_args());
-        }
-
-        public function sRandMember($key, $count = 0): \Redis|array|false|string
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sRandMember(...\func_get_args());
-        }
-    }
-}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster61ProxyTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster61ProxyTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster61ProxyTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster61ProxyTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,46 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits;
+
+if (version_compare(phpversion('redis'), '6.1.0-dev', '>')) {
+    /**
+     * @internal
+     */
+    trait RedisCluster61ProxyTrait
+    {
+        public function getex($key, $options = []): \RedisCluster|string|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getex(...\func_get_args());
+        }
+
+        public function publish($channel, $message): \RedisCluster|bool|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->publish(...\func_get_args());
+        }
+
+        public function waitaof($key_or_address, $numlocal, $numreplicas, $timeout): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->waitaof(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait RedisCluster61ProxyTrait
+    {
+        public function publish($channel, $message): \RedisCluster|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->publish(...\func_get_args());
+        }
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster62ProxyTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster62ProxyTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster62ProxyTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster62ProxyTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,47 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits;
+
+if (version_compare(phpversion('redis'), '6.2.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait RedisCluster62ProxyTrait
+    {
+        public function expiremember($key, $field, $ttl, $unit = null): \Redis|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expiremember(...\func_get_args());
+        }
+
+        public function expirememberat($key, $field, $timestamp): \Redis|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expirememberat(...\func_get_args());
+        }
+
+        public function getdel($key): mixed
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getdel(...\func_get_args());
+        }
+
+        public function getWithMeta($key): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getWithMeta(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait RedisCluster62ProxyTrait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster63ProxyTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster63ProxyTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster63ProxyTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster63ProxyTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,162 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits;
+
+if (version_compare(phpversion('redis'), '6.3.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait RedisCluster63ProxyTrait
+    {
+        public function delifeq($key, $value): \RedisCluster|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->delifeq(...\func_get_args());
+        }
+
+        public function hexpire($key, $ttl, $fields, $mode = null): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexpire(...\func_get_args());
+        }
+
+        public function hexpireat($key, $time, $fields, $mode = null): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexpireat(...\func_get_args());
+        }
+
+        public function hexpiretime($key, $fields): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexpiretime(...\func_get_args());
+        }
+
+        public function hgetdel($key, $fields): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetdel(...\func_get_args());
+        }
+
+        public function hgetex($key, $fields, $expiry = null): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetex(...\func_get_args());
+        }
+
+        public function hgetWithMeta($key, $member): mixed
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetWithMeta(...\func_get_args());
+        }
+
+        public function hpersist($key, $fields): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpersist(...\func_get_args());
+        }
+
+        public function hpexpire($key, $ttl, $fields, $mode = null): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpexpire(...\func_get_args());
+        }
+
+        public function hpexpireat($key, $mstime, $fields, $mode = null): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpexpireat(...\func_get_args());
+        }
+
+        public function hpexpiretime($key, $fields): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpexpiretime(...\func_get_args());
+        }
+
+        public function hpttl($key, $fields): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpttl(...\func_get_args());
+        }
+
+        public function hsetex($key, $fields, $expiry = null): \RedisCluster|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hsetex(...\func_get_args());
+        }
+
+        public function httl($key, $fields): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->httl(...\func_get_args());
+        }
+
+        public function vadd($key, $values, $element, $options = null): \RedisCluster|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vadd(...\func_get_args());
+        }
+
+        public function vcard($key): \RedisCluster|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vcard(...\func_get_args());
+        }
+
+        public function vdim($key): \RedisCluster|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vdim(...\func_get_args());
+        }
+
+        public function vemb($key, $member, $raw = false): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vemb(...\func_get_args());
+        }
+
+        public function vgetattr($key, $member, $decode = true): \RedisCluster|array|string|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vgetattr(...\func_get_args());
+        }
+
+        public function vinfo($key): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vinfo(...\func_get_args());
+        }
+
+        public function vismember($key, $member): \RedisCluster|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vismember(...\func_get_args());
+        }
+
+        public function vlinks($key, $member, $withscores = false): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vlinks(...\func_get_args());
+        }
+
+        public function vrandmember($key, $count = 0): \RedisCluster|array|string|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrandmember(...\func_get_args());
+        }
+
+        public function vrange($key, $min, $max, $count = -1): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrange(...\func_get_args());
+        }
+
+        public function vrem($key, $member): \RedisCluster|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrem(...\func_get_args());
+        }
+
+        public function vsetattr($key, $member, $attributes): \RedisCluster|int|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vsetattr(...\func_get_args());
+        }
+
+        public function vsim($key, $member, $options = null): \RedisCluster|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vsim(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait RedisCluster63ProxyTrait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster6Proxy.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster6Proxy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster6Proxy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster6Proxy.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,9 @@
  */
 class RedisCluster6Proxy extends \RedisCluster implements ResetInterface, LazyObjectInterface
 {
-    use RedisCluster6ProxyTrait;
+    use RedisCluster61ProxyTrait;
+    use RedisCluster62ProxyTrait;
+    use RedisCluster63ProxyTrait;
     use LazyProxyTrait {
         resetLazyObject as reset;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster6ProxyTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster6ProxyTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster6ProxyTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisCluster6ProxyTrait.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Cache\Traits;
-
-if (version_compare(phpversion('redis'), '6.1.0-dev', '>')) {
-    /**
-     * @internal
-     */
-    trait RedisCluster6ProxyTrait
-    {
-        public function getex($key, $options = []): \RedisCluster|string|false
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getex(...\func_get_args());
-        }
-
-        public function publish($channel, $message): \RedisCluster|bool|int
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->publish(...\func_get_args());
-        }
-
-        public function waitaof($key_or_address, $numlocal, $numreplicas, $timeout): \RedisCluster|array|false
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->waitaof(...\func_get_args());
-        }
-    }
-} else {
-    /**
-     * @internal
-     */
-    trait RedisCluster6ProxyTrait
-    {
-        public function publish($channel, $message): \RedisCluster|bool
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->publish(...\func_get_args());
-        }
-    }
-}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RedisTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RedisTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,6 +37,7 @@
 {
     private static array $defaultConnectionOptions = [
         'class' => null,
+        'auth' => null,
         'persistent' => 0,
         'persistent_id' => null,
         'timeout' => 30,
@@ -58,7 +59,7 @@
         parent::__construct($namespace, $defaultLifetime);
 
         if (preg_match('#[^-+_.A-Za-z0-9]#', $namespace, $match)) {
-            throw new InvalidArgumentException(sprintf('RedisAdapter namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0]));
+            throw new InvalidArgumentException(\sprintf('RedisAdapter namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0]));
         }
 
         if ($redis instanceof \Predis\ClientInterface && $redis->getOptions()->exceptions) {
@@ -95,11 +96,12 @@
             throw new InvalidArgumentException('Invalid Redis DSN: it does not start with "redis[s]:".');
         }
 
-        if (!\extension_loaded('redis') && !class_exists(\Predis\Client::class)) {
-            throw new CacheException('Cannot find the "redis" extension nor the "predis/predis" package.');
+        if (!\extension_loaded('redis') && !\extension_loaded('relay') && !class_exists(\Predis\Client::class)) {
+            throw new CacheException('Cannot find the "redis" extension nor the "relay" extension nor the "predis/predis" package.');
         }
 
-        $params = preg_replace_callback('#^'.$scheme.':(//)?(?:(?:(?<user>[^:@]*+):)?(?<password>[^@]*+)@)?#', function ($m) use (&$auth) {
+        $auth = null;
+        $params = preg_replace_callback('#^'.$scheme.':(//)?(?:(?:(?<user>[^:@]*+):)?(?<password>[^@]*+)@)?#', static function ($m) use (&$auth) {
             if (isset($m['password'])) {
                 if (\in_array($m['user'], ['', 'default'], true)) {
                     $auth = rawurldecode($m['password']);
@@ -174,7 +176,25 @@
 
         $params += $query + $options + self::$defaultConnectionOptions;
 
-        if (isset($params['redis_sentinel']) && !class_exists(\Predis\Client::class) && !class_exists(\RedisSentinel::class) && !class_exists(Sentinel::class)) {
+        $booleanStreamOptions = [
+            'allow_self_signed',
+            'capture_peer_cert',
+            'capture_peer_cert_chain',
+            'disable_compression',
+            'SNI_enabled',
+            'verify_peer',
+            'verify_peer_name',
+        ];
+
+        foreach ($params['ssl'] ?? [] as $streamOption => $value) {
+            if (\in_array($streamOption, $booleanStreamOptions, true) && \is_string($value)) {
+                $params['ssl'][$streamOption] = filter_var($value, \FILTER_VALIDATE_BOOL);
+            }
+        }
+
+        if (!isset($params['redis_sentinel'])) {
+            $params['auth'] ??= $auth;
+        } elseif (!class_exists(\Predis\Client::class) && !class_exists(\RedisSentinel::class) && !class_exists(Sentinel::class)) {
             throw new CacheException('Redis Sentinel support requires one of: "predis/predis", "ext-redis >= 5.2", "ext-relay".');
         }
 
@@ -201,7 +221,7 @@
         };
 
         if (isset($params['redis_sentinel']) && !is_a($class, \Predis\Client::class, true) && !class_exists(\RedisSentinel::class) && !class_exists(Sentinel::class)) {
-            throw new CacheException(sprintf('Cannot use Redis Sentinel: class "%s" does not extend "Predis\Client" and neither ext-redis >= 5.2 nor ext-relay have been found.', $class));
+            throw new CacheException(\sprintf('Cannot use Redis Sentinel: class "%s" does not extend "Predis\Client" and neither ext-redis >= 5.2 nor ext-relay have been found.', $class));
         }
 
         $isRedisExt = is_a($class, \Redis::class, true);
@@ -217,7 +237,7 @@
                 do {
                     $host = $hosts[$hostIndex]['host'] ?? $hosts[$hostIndex]['path'];
                     $port = $hosts[$hostIndex]['port'] ?? 0;
-                    $passAuth = isset($params['auth']) && (!$isRedisExt || \defined('Redis::OPT_NULL_MULTIBULK_AS_NULL'));
+                    $passAuth = null !== $params['auth'] && (!$isRedisExt || \defined('Redis::OPT_NULL_MULTIBULK_AS_NULL'));
                     $address = false;
 
                     if (isset($hosts[$hostIndex]['host']) && $tls) {
@@ -229,7 +249,7 @@
                     }
 
                     try {
-                        if (version_compare(phpversion('redis'), '6.0.0', '>=') && $isRedisExt) {
+                        if ($isRedisExt && version_compare(phpversion('redis'), '6.0.0', '>=')) {
                             $options = [
                                 'host' => $host,
                                 'port' => $port,
@@ -243,6 +263,10 @@
                                 $options['auth'] = $params['auth'];
                             }
 
+                            if (null !== $params['ssl'] && version_compare(phpversion('redis'), '6.2.0', '>=')) {
+                                $options['ssl'] = $params['ssl'];
+                            }
+
                             $sentinel = new \RedisSentinel($options);
                         } else {
                             $extra = $passAuth ? [$params['auth']] : [];
@@ -258,58 +282,38 @@
                 } while (++$hostIndex < \count($hosts) && !$address);
 
                 if (isset($params['redis_sentinel']) && !$address) {
-                    throw new InvalidArgumentException(sprintf('Failed to retrieve master information from sentinel "%s".', $params['redis_sentinel']), previous: $redisException ?? null);
+                    throw new InvalidArgumentException(\sprintf('Failed to retrieve master information from sentinel "%s".', $params['redis_sentinel']), previous: $redisException ?? null);
                 }
 
                 try {
                     $extra = [
                         'stream' => $params['ssl'] ?? null,
                     ];
-                    $booleanStreamOptions = [
-                        'allow_self_signed',
-                        'capture_peer_cert',
-                        'capture_peer_cert_chain',
-                        'disable_compression',
-                        'SNI_enabled',
-                        'verify_peer',
-                        'verify_peer_name',
-                    ];
 
-                    foreach ($extra['stream'] ?? [] as $streamOption => $value) {
-                        if (\in_array($streamOption, $booleanStreamOptions, true) && \is_string($value)) {
-                            $extra['stream'][$streamOption] = filter_var($value, \FILTER_VALIDATE_BOOL);
-                        }
-                    }
-
-                    if (isset($params['auth'])) {
+                    if (null !== $params['auth']) {
                         $extra['auth'] = $params['auth'];
                     }
                     @$redis->{$connect}($host, $port, (float) $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...\defined('Redis::SCAN_PREFIX') || !$isRedisExt ? [$extra] : []);
 
-                    set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
+                    set_error_handler(static function ($type, $msg) use (&$error) { $error = $msg; });
                     try {
                         $isConnected = $redis->isConnected();
                     } finally {
                         restore_error_handler();
                     }
                     if (!$isConnected) {
-                        $error = preg_match('/^Redis::p?connect\(\): (.*)/', $error ?? $redis->getLastError() ?? '', $error) ? sprintf(' (%s)', $error[1]) : '';
+                        $error = preg_match('/^Redis::p?connect\(\): (.*)/', $error ?? $redis->getLastError() ?? '', $error) ? \sprintf(' (%s)', $error[1]) : '';
                         throw new InvalidArgumentException('Redis connection failed: '.$error.'.');
                     }
 
-                    if ((null !== $auth && !$redis->auth($auth))
-                        // Due to a bug in phpredis we must always select the dbindex if persistent pooling is enabled
-                        // @see https://github.com/phpredis/phpredis/issues/1920
-                        // @see https://github.com/symfony/symfony/issues/51578
-                        || (($params['dbindex'] || ('pconnect' === $connect && '0' !== \ini_get('redis.pconnect.pooling_enabled'))) && !$redis->select($params['dbindex']))
-                    ) {
-                        $e = preg_replace('/^ERR /', '', $redis->getLastError());
-                        throw new InvalidArgumentException('Redis connection failed: '.$e.'.');
-                    }
-
                     if (0 < $params['tcp_keepalive'] && (!$isRedisExt || \defined('Redis::OPT_TCP_KEEPALIVE'))) {
                         $redis->setOption($isRedisExt ? \Redis::OPT_TCP_KEEPALIVE : Relay::OPT_TCP_KEEPALIVE, $params['tcp_keepalive']);
                     }
+
+                    if ((!\defined('Redis::SCAN_PREFIX') && null !== $auth && $isRedisExt && !$redis->auth($auth)) || !$redis->select($params['dbindex'])) {
+                        $e = preg_replace('/^ERR /', '', $redis->getLastError());
+                        throw new InvalidArgumentException('Redis connection failed: '.$e.'.');
+                    }
                 } catch (\RedisException|\Relay\Exception $e) {
                     throw new InvalidArgumentException('Redis connection failed: '.$e->getMessage());
                 }
@@ -389,14 +393,12 @@
             if ($params['dbindex']) {
                 $params['parameters']['database'] = $params['dbindex'];
             }
-            if (null !== $auth) {
-                if (\is_array($auth)) {
-                    // ACL
-                    $params['parameters']['username'] = $auth[0];
-                    $params['parameters']['password'] = $auth[1];
-                } else {
-                    $params['parameters']['password'] = $auth;
-                }
+            if (\is_array($auth)) {
+                // ACL
+                $params['parameters']['username'] = $auth[0];
+                $params['parameters']['password'] = $auth[1];
+            } elseif (null !== $auth) {
+                $params['parameters']['password'] = $auth;
             }
 
             if (isset($params['ssl'])) {
@@ -418,9 +420,9 @@
                 $redis->getConnection()->setSentinelTimeout($params['timeout']);
             }
         } elseif (class_exists($class, false)) {
-            throw new InvalidArgumentException(sprintf('"%s" is not a subclass of "Redis", "RedisArray", "RedisCluster", "Relay\Relay" nor "Predis\ClientInterface".', $class));
+            throw new InvalidArgumentException(\sprintf('"%s" is not a subclass of "Redis", "RedisArray", "RedisCluster", "Relay\Relay" nor "Predis\ClientInterface".', $class));
         } else {
-            throw new InvalidArgumentException(sprintf('Class "%s" does not exist.', $class));
+            throw new InvalidArgumentException(\sprintf('Class "%s" does not exist.', $class));
         }
 
         return $redis;
@@ -434,8 +436,8 @@
 
         $result = [];
 
-        if ($this->redis instanceof \Predis\ClientInterface && ($this->redis->getConnection() instanceof ClusterInterface || $this->redis->getConnection() instanceof Predis2ClusterInterface)) {
-            $values = $this->pipeline(function () use ($ids) {
+        if (($this->redis instanceof \Predis\ClientInterface && ($this->redis->getConnection() instanceof ClusterInterface || $this->redis->getConnection() instanceof Predis2ClusterInterface)) || $this->redis instanceof RelayCluster) {
+            $values = $this->pipeline(static function () use ($ids) {
                 foreach ($ids as $id) {
                     yield 'get' => [$id];
                 }
@@ -545,7 +547,7 @@
             static $del;
             $del ??= (class_exists(UNLINK::class) ? 'unlink' : 'del');
 
-            $this->pipeline(function () use ($ids, $del) {
+            $this->pipeline(static function () use ($ids, $del) {
                 foreach ($ids as $id) {
                     yield $del => [$id];
                 }
@@ -575,7 +577,7 @@
             return $failed;
         }
 
-        $results = $this->pipeline(function () use ($values, $lifetime) {
+        $results = $this->pipeline(static function () use ($values, $lifetime) {
             foreach ($values as $id => $value) {
                 if (0 >= $lifetime) {
                     yield 'set' => [$id, $value];
@@ -644,7 +646,7 @@
 
         if (!$redis instanceof \Predis\ClientInterface && 'eval' === $command && $redis->getLastError()) {
             $e = $redis instanceof Relay ? new \Relay\Exception($redis->getLastError()) : new \RedisException($redis->getLastError());
-            $results = array_map(fn ($v) => false === $v ? $e : $v, (array) $results);
+            $results = array_map(static fn ($v) => false === $v ? $e : $v, (array) $results);
         }
 
         if (\is_bool($results)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/BgsaveTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/BgsaveTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/BgsaveTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/BgsaveTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,36 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.11', '>=')) {
+    /**
+     * @internal
+     */
+    trait BgsaveTrait
+    {
+        public function bgsave($arg = null): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgsave(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait BgsaveTrait
+    {
+        public function bgsave($schedule = false): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgsave(...\func_get_args());
+        }
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/FtTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/FtTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/FtTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/FtTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,132 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.9.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait FtTrait
+    {
+        public function ftAggregate($index, $query, $options = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftAggregate(...\func_get_args());
+        }
+
+        public function ftAliasAdd($index, $alias): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftAliasAdd(...\func_get_args());
+        }
+
+        public function ftAliasDel($alias): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftAliasDel(...\func_get_args());
+        }
+
+        public function ftAliasUpdate($index, $alias): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftAliasUpdate(...\func_get_args());
+        }
+
+        public function ftAlter($index, $schema, $skipinitialscan = false): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftAlter(...\func_get_args());
+        }
+
+        public function ftConfig($operation, $option, $value = null): \Relay\Relay|array|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftConfig(...\func_get_args());
+        }
+
+        public function ftCreate($index, $schema, $options = null): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftCreate(...\func_get_args());
+        }
+
+        public function ftCursor($operation, $index, $cursor, $options = null): \Relay\Relay|array|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftCursor(...\func_get_args());
+        }
+
+        public function ftDictAdd($dict, $term, ...$other_terms): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftDictAdd(...\func_get_args());
+        }
+
+        public function ftDictDel($dict, $term, ...$other_terms): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftDictDel(...\func_get_args());
+        }
+
+        public function ftDictDump($dict): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftDictDump(...\func_get_args());
+        }
+
+        public function ftDropIndex($index, $dd = false): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftDropIndex(...\func_get_args());
+        }
+
+        public function ftExplain($index, $query, $dialect = 0): \Relay\Relay|false|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftExplain(...\func_get_args());
+        }
+
+        public function ftExplainCli($index, $query, $dialect = 0): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftExplainCli(...\func_get_args());
+        }
+
+        public function ftInfo($index): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftInfo(...\func_get_args());
+        }
+
+        public function ftProfile($index, $command, $query, $limited = false): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftProfile(...\func_get_args());
+        }
+
+        public function ftSearch($index, $query, $options = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftSearch(...\func_get_args());
+        }
+
+        public function ftSpellCheck($index, $query, $options = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftSpellCheck(...\func_get_args());
+        }
+
+        public function ftSynDump($index): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftSynDump(...\func_get_args());
+        }
+
+        public function ftSynUpdate($index, $synonym, $term_or_terms, $skipinitialscan = false): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftSynUpdate(...\func_get_args());
+        }
+
+        public function ftTagVals($index, $tag): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ftTagVals(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait FtTrait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/GetWithMetaTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/GetWithMetaTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/GetWithMetaTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/GetWithMetaTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.10.1', '>=')) {
+    /**
+     * @internal
+     */
+    trait GetWithMetaTrait
+    {
+        public function getWithMeta($key): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getWithMeta(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait GetWithMetaTrait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/IsTrackedTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/IsTrackedTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/IsTrackedTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/IsTrackedTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.11.1', '>=')) {
+    /**
+     * @internal
+     */
+    trait IsTrackedTrait
+    {
+        public function isTracked($key): bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->isTracked(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait IsTrackedTrait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/MoveTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/MoveTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/MoveTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/MoveTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,12 +33,12 @@
      */
     trait MoveTrait
     {
-        public function blmove($srckey, $dstkey, $srcpos, $dstpos, $timeout): \Relay\Relay|false|null|string
+        public function blmove($srckey, $dstkey, $srcpos, $dstpos, $timeout): \Relay\Relay|false|string|null
         {
             return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blmove(...\func_get_args());
         }
 
-        public function lmove($srckey, $dstkey, $srcpos, $dstpos): \Relay\Relay|false|null|string
+        public function lmove($srckey, $dstkey, $srcpos, $dstpos): \Relay\Relay|false|string|null
         {
             return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lmove(...\func_get_args());
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay11Trait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay11Trait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay11Trait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay11Trait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,132 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.11.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait Relay11Trait
+    {
+        public function cmsIncrBy($key, $field, $value, ...$fields_and_values): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->cmsIncrBy(...\func_get_args());
+        }
+
+        public function cmsInfo($key): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->cmsInfo(...\func_get_args());
+        }
+
+        public function cmsInitByDim($key, $width, $depth): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->cmsInitByDim(...\func_get_args());
+        }
+
+        public function cmsInitByProb($key, $error, $probability): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->cmsInitByProb(...\func_get_args());
+        }
+
+        public function cmsMerge($dstkey, $keys, $weights = []): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->cmsMerge(...\func_get_args());
+        }
+
+        public function cmsQuery($key, ...$fields): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->cmsQuery(...\func_get_args());
+        }
+
+        public function commandlog($subcmd, ...$args): \Relay\Relay|array|bool|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->commandlog(...\func_get_args());
+        }
+
+        public function hexpire($hash, $ttl, $fields, $mode = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexpire(...\func_get_args());
+        }
+
+        public function hexpireat($hash, $ttl, $fields, $mode = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexpireat(...\func_get_args());
+        }
+
+        public function hexpiretime($hash, $fields): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexpiretime(...\func_get_args());
+        }
+
+        public function hgetdel($key, $fields): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetdel(...\func_get_args());
+        }
+
+        public function hgetex($hash, $fields, $expiry = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetex(...\func_get_args());
+        }
+
+        public function hpersist($hash, $fields): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpersist(...\func_get_args());
+        }
+
+        public function hpexpire($hash, $ttl, $fields, $mode = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpexpire(...\func_get_args());
+        }
+
+        public function hpexpireat($hash, $ttl, $fields, $mode = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpexpireat(...\func_get_args());
+        }
+
+        public function hpexpiretime($hash, $fields): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpexpiretime(...\func_get_args());
+        }
+
+        public function hpttl($hash, $fields): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hpttl(...\func_get_args());
+        }
+
+        public function hsetex($key, $fields, $expiry = null): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hsetex(...\func_get_args());
+        }
+
+        public function httl($hash, $fields): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->httl(...\func_get_args());
+        }
+
+        public function serverName(): false|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->serverName(...\func_get_args());
+        }
+
+        public function serverVersion(): false|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->serverVersion(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait Relay11Trait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,51 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.12.1', '>=')) {
+    /**
+     * @internal
+     */
+    trait Relay121Trait
+    {
+        public function hgetWithMeta($hash, $member): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetWithMeta(...\func_get_args());
+        }
+
+        public function select($db): \Relay\Relay|bool|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->select(...\func_get_args());
+        }
+
+        public function watch($key, ...$other_keys): \Relay\Relay|bool|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait Relay121Trait
+    {
+        public function select($db): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->select(...\func_get_args());
+        }
+
+        public function watch($key, ...$other_keys): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args());
+        }
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,107 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.12.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait Relay12Trait
+    {
+        public function delifeq($key, $value): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->delifeq(...\func_get_args());
+        }
+
+        public function vadd($key, $values, $element, $options = null): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vadd(...\func_get_args());
+        }
+
+        public function vcard($key): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vcard(...\func_get_args());
+        }
+
+        public function vdim($key): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vdim(...\func_get_args());
+        }
+
+        public function vemb($key, $element, $raw = false): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vemb(...\func_get_args());
+        }
+
+        public function vgetattr($key, $element, $raw = false): \Relay\Relay|array|false|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vgetattr(...\func_get_args());
+        }
+
+        public function vinfo($key): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vinfo(...\func_get_args());
+        }
+
+        public function vismember($key, $element): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vismember(...\func_get_args());
+        }
+
+        public function vlinks($key, $element, $withscores): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vlinks(...\func_get_args());
+        }
+
+        public function vrandmember($key, $count = 0): \Relay\Relay|array|false|string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrandmember(...\func_get_args());
+        }
+
+        public function vrange($key, $min, $max, $count = -1): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrange(...\func_get_args());
+        }
+
+        public function vrem($key, $element): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrem(...\func_get_args());
+        }
+
+        public function vsetattr($key, $element, $attributes): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vsetattr(...\func_get_args());
+        }
+
+        public function vsim($key, $member, $options = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vsim(...\func_get_args());
+        }
+
+        public function xdelex($key, $ids, $mode = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xdelex(...\func_get_args());
+        }
+
+        public function xackdel($key, $group, $ids, $mode = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xackdel(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait Relay12Trait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay20Trait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay20Trait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay20Trait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay20Trait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,47 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.20.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait Relay20Trait
+    {
+        public function _digest($value): string
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_digest(...\func_get_args());
+        }
+
+        public function delex($key, $options = null): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->delex(...\func_get_args());
+        }
+
+        public function digest($key): \Relay\Relay|false|string|null
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->digest(...\func_get_args());
+        }
+
+        public function msetex($kvals, $ttl = null): \Relay\Relay|false|int
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->msetx(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait Relay20Trait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay21Trait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay21Trait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay21Trait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay21Trait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,37 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.21.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait Relay21Trait
+    {
+        public function gcra($key, $maxBurst, $requestsPerPeriod, $period, $tokens = 0): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->gcra(...\func_get_args());
+        }
+
+        public function hotkeys($subcmd, $args = null): \Relay\Relay|array|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hotkeys(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait Relay21Trait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay22Trait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay22Trait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay22Trait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/Relay22Trait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,36 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.22.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait Relay22Trait
+    {
+        public function jsonStrAppend($key, $value, $path = null, $fpha = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonStrAppend(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait Relay22Trait
+    {
+        public function jsonStrAppend($key, $value, $path = null): \Relay\Relay|array|false
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonStrAppend(...\func_get_args());
+        }
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/SwapdbTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/SwapdbTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/Relay/SwapdbTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/Relay/SwapdbTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Cache\Traits\Relay;
+
+if (version_compare(phpversion('relay'), '0.9.0', '>=')) {
+    /**
+     * @internal
+     */
+    trait SwapdbTrait
+    {
+        public function swapdb($index1, $index2): \Relay\Relay|bool
+        {
+            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->swapdb(...\func_get_args());
+        }
+    }
+} else {
+    /**
+     * @internal
+     */
+    trait SwapdbTrait
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RelayProxy.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RelayProxy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RelayProxy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RelayProxy.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,13 +11,24 @@
 
 namespace Symfony\Component\Cache\Traits;
 
+use Symfony\Component\Cache\Traits\Relay\BgsaveTrait;
 use Symfony\Component\Cache\Traits\Relay\CopyTrait;
+use Symfony\Component\Cache\Traits\Relay\FtTrait;
 use Symfony\Component\Cache\Traits\Relay\GeosearchTrait;
 use Symfony\Component\Cache\Traits\Relay\GetrangeTrait;
+use Symfony\Component\Cache\Traits\Relay\GetWithMetaTrait;
 use Symfony\Component\Cache\Traits\Relay\HsetTrait;
+use Symfony\Component\Cache\Traits\Relay\IsTrackedTrait;
 use Symfony\Component\Cache\Traits\Relay\MoveTrait;
 use Symfony\Component\Cache\Traits\Relay\NullableReturnTrait;
 use Symfony\Component\Cache\Traits\Relay\PfcountTrait;
+use Symfony\Component\Cache\Traits\Relay\Relay11Trait;
+use Symfony\Component\Cache\Traits\Relay\Relay121Trait;
+use Symfony\Component\Cache\Traits\Relay\Relay12Trait;
+use Symfony\Component\Cache\Traits\Relay\Relay20Trait;
+use Symfony\Component\Cache\Traits\Relay\Relay21Trait;
+use Symfony\Component\Cache\Traits\Relay\Relay22Trait;
+use Symfony\Component\Cache\Traits\Relay\SwapdbTrait;
 use Symfony\Component\VarExporter\LazyObjectInterface;
 use Symfony\Component\VarExporter\LazyProxyTrait;
 use Symfony\Contracts\Service\ResetInterface;
@@ -32,10 +43,14 @@
  */
 class RelayProxy extends \Relay\Relay implements ResetInterface, LazyObjectInterface
 {
+    use BgsaveTrait;
     use CopyTrait;
+    use FtTrait;
     use GeosearchTrait;
     use GetrangeTrait;
+    use GetWithMetaTrait;
     use HsetTrait;
+    use IsTrackedTrait;
     use LazyProxyTrait {
         resetLazyObject as reset;
     }
@@ -43,6 +58,13 @@
     use NullableReturnTrait;
     use PfcountTrait;
     use RelayProxyTrait;
+    use Relay11Trait;
+    use Relay12Trait;
+    use Relay121Trait;
+    use Relay20Trait;
+    use Relay21Trait;
+    use Relay22Trait;
+    use SwapdbTrait;
 
     private const LAZY_OBJECT_PROPERTY_SCOPES = [];
 
@@ -236,11 +258,6 @@
         return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rawCommand(...\func_get_args());
     }
 
-    public function select($db): \Relay\Relay|bool
-    {
-        return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->select(...\func_get_args());
-    }
-
     public function auth(#[\SensitiveParameter] $auth): bool
     {
         return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->auth(...\func_get_args());
@@ -341,11 +358,6 @@
         return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lcs(...\func_get_args());
     }
 
-    public function bgsave($schedule = false): \Relay\Relay|bool
-    {
-        return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgsave(...\func_get_args());
-    }
-
     public function save(): \Relay\Relay|bool
     {
         return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->save(...\func_get_args());
@@ -931,11 +943,6 @@
         return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->wait(...\func_get_args());
     }
 
-    public function watch($key, ...$other_keys): \Relay\Relay|bool
-    {
-        return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args());
-    }
-
     public function unwatch(): \Relay\Relay|bool
     {
         return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unwatch(...\func_get_args());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RelayProxyTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RelayProxyTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/RelayProxyTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/RelayProxyTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -117,11 +117,6 @@
             return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonSet(...\func_get_args());
         }
 
-        public function jsonStrAppend($key, $value, $path = null): \Relay\Relay|array|false
-        {
-            return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonStrAppend(...\func_get_args());
-        }
-
         public function jsonStrLen($key, $path = null): \Relay\Relay|array|false
         {
             return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonStrLen(...\func_get_args());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/ValueWrapper.php symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/ValueWrapper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Cache/Traits/ValueWrapper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Cache/Traits/ValueWrapper.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,3 +79,6 @@
         $this->metadata = $metadata;
     }
 }
+
+// @php-cs-fixer-ignore long_to_shorthand_operator To prevent false positive causing "Cannot use assign-op operators with string offsets" error
+// @php-cs-fixer-ignore psr_autoloading This class is explicitly having short, special name
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Clock/DatePoint.php symfony-6.4.40+dfsg/src/Symfony/Component/Clock/DatePoint.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Clock/DatePoint.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Clock/DatePoint.php	2026-05-20 10:56:49.000000000 +0200
@@ -98,7 +98,7 @@
     public function modify(string $modifier): static
     {
         if (\PHP_VERSION_ID < 80300) {
-            return @parent::modify($modifier) ?: throw new \DateMalformedStringException(error_get_last()['message'] ?? sprintf('Invalid modifier: "%s".', $modifier));
+            return @parent::modify($modifier) ?: throw new \DateMalformedStringException(error_get_last()['message'] ?? \sprintf('Invalid modifier: "%s".', $modifier));
         }
 
         return parent::modify($modifier);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Clock/MockClock.php symfony-6.4.40+dfsg/src/Symfony/Component/Clock/MockClock.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Clock/MockClock.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Clock/MockClock.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,8 +54,12 @@
 
     public function sleep(float|int $seconds): void
     {
+        if (0 >= $seconds) {
+            return;
+        }
+
         $now = (float) $this->now->format('Uu') + $seconds * 1e6;
-        $now = substr_replace(sprintf('@%07.0F', $now), '.', -6, 0);
+        $now = substr_replace(\sprintf('@%07.0F', $now), '.', -6, 0);
         $timezone = $this->now->getTimezone();
 
         $this->now = DatePoint::createFromInterface(new \DateTimeImmutable($now, $timezone))->setTimezone($timezone);
@@ -67,7 +71,7 @@
     public function modify(string $modifier): void
     {
         if (\PHP_VERSION_ID < 80300) {
-            $this->now = @$this->now->modify($modifier) ?: throw new \DateMalformedStringException(error_get_last()['message'] ?? sprintf('Invalid modifier: "%s". Could not modify MockClock.', $modifier));
+            $this->now = @$this->now->modify($modifier) ?: throw new \DateMalformedStringException(error_get_last()['message'] ?? \sprintf('Invalid modifier: "%s". Could not modify MockClock.', $modifier));
 
             return;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Clock/Tests/ClockTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Clock/Tests/ClockTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Clock/Tests/ClockTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Clock/Tests/ClockTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -74,7 +74,7 @@
 
     public function testPsrClock()
     {
-        $psrClock = new class() implements ClockInterface {
+        $psrClock = new class implements ClockInterface {
             public function now(): \DateTimeImmutable
             {
                 return new \DateTimeImmutable('@1234567');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Clock/Tests/MockClockTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Clock/Tests/MockClockTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Clock/Tests/MockClockTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Clock/Tests/MockClockTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -117,4 +117,14 @@
         $this->assertNotSame($clock, $utcClock);
         $this->assertSame('UTC', $utcClock->now()->getTimezone()->getName());
     }
+
+    public function testSleepWithNegativeValueDoesNothing()
+    {
+        $initialTime = new \DateTimeImmutable('2000-01-01 12:00:00 UTC');
+
+        $clock = new MockClock($initialTime);
+        $clock->sleep(-10.5);
+
+        $this->assertEquals($initialTime, $clock->now());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Builder/ClassBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Builder/ClassBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Builder/ClassBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Builder/ClassBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,11 +63,11 @@
                 }
                 unset($path[$key]);
             }
-            $require .= sprintf('require_once __DIR__.\DIRECTORY_SEPARATOR.\'%s\';', implode('\'.\DIRECTORY_SEPARATOR.\'', $path))."\n";
+            $require .= \sprintf('require_once __DIR__.\DIRECTORY_SEPARATOR.\'%s\';', implode('\'.\DIRECTORY_SEPARATOR.\'', $path))."\n";
         }
         $use = $require ? "\n" : '';
         foreach (array_keys($this->use) as $statement) {
-            $use .= sprintf('use %s;', $statement)."\n";
+            $use .= \sprintf('use %s;', $statement)."\n";
         }
 
         $implements = [] === $this->implements ? '' : 'implements '.implode(', ', $this->implements);
@@ -126,8 +126,8 @@
             $property->setType($classType);
         }
         $this->properties[] = $property;
-        $defaultValue = null !== $defaultValue ? sprintf(' = %s', $defaultValue) : '';
-        $property->setContent(sprintf('private $%s%s;', $property->getName(), $defaultValue));
+        $defaultValue = null !== $defaultValue ? \sprintf(' = %s', $defaultValue) : '';
+        $property->setContent(\sprintf('private $%s%s;', $property->getName(), $defaultValue));
 
         return $property;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Builder/ConfigBuilderGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Builder/ConfigBuilderGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Builder/ConfigBuilderGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Builder/ConfigBuilderGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -81,7 +81,7 @@
     {
         $directory = $this->outputDir.\DIRECTORY_SEPARATOR.$class->getDirectory();
         if (!is_dir($directory)) {
-            @mkdir($directory, 0777, true);
+            @mkdir($directory, 0o777, true);
         }
 
         return $directory.\DIRECTORY_SEPARATOR.$class->getFilename();
@@ -115,7 +115,7 @@
                 $child instanceof PrototypedArrayNode => $this->handlePrototypedArrayNode($child, $class, $namespace),
                 $child instanceof VariableNode => $this->handleVariableNode($child, $class),
                 $child instanceof ArrayNode => $this->handleArrayNode($child, $class, $namespace),
-                default => throw new \RuntimeException(sprintf('Unknown node "%s".', $child::class)),
+                default => throw new \RuntimeException(\sprintf('Unknown node "%s".', $child::class)),
             };
         }
     }
@@ -127,12 +127,15 @@
         $class->addRequire($childClass);
         $this->classes[] = $childClass;
 
+        $nodeTypes = $this->getParameterTypes($node);
+        $paramType = $this->getParamType($nodeTypes);
+
         $hasNormalizationClosures = $this->hasNormalizationClosures($node);
         $comment = $this->getComment($node);
-        if ($hasNormalizationClosures) {
-            $comment = sprintf(" * @template TValue\n * @param TValue \$value\n%s", $comment);
-            $comment .= sprintf(' * @return %s|$this'."\n", $childClass->getFqcn());
-            $comment .= sprintf(' * @psalm-return (TValue is array ? %s : static)'."\n ", $childClass->getFqcn());
+        if ($hasNormalizationClosures && 'array' !== $paramType) {
+            $comment = \sprintf(" * @template TValue of %s\n * @param TValue \$value\n%s", $paramType, $comment);
+            $comment .= \sprintf(' * @return %s|$this'."\n", $childClass->getFqcn());
+            $comment .= \sprintf(' * @psalm-return (TValue is array ? %s : static)'."\n ", $childClass->getFqcn());
         }
         if ('' !== $comment) {
             $comment = "/**\n$comment*/\n";
@@ -142,8 +145,7 @@
             $node->getName(),
             $this->getType($childClass->getFqcn(), $hasNormalizationClosures)
         );
-        $nodeTypes = $this->getParameterTypes($node);
-        $body = $hasNormalizationClosures ? '
+        $body = $hasNormalizationClosures && 'array' !== $paramType ? '
 COMMENTpublic function NAME(PARAM_TYPE $value = []): CLASS|static
 {
     if (!\is_array($value)) {
@@ -178,7 +180,7 @@
             'COMMENT' => $comment,
             'PROPERTY' => $property->getName(),
             'CLASS' => $childClass->getFqcn(),
-            'PARAM_TYPE' => \in_array('mixed', $nodeTypes, true) ? 'mixed' : implode('|', $nodeTypes),
+            'PARAM_TYPE' => $paramType,
         ]);
 
         $this->buildNode($node, $childClass, $this->getSubNamespace($childClass));
@@ -218,10 +220,11 @@
 
         $nodeParameterTypes = $this->getParameterTypes($node);
         $prototypeParameterTypes = $this->getParameterTypes($prototype);
+        $noKey = null === $key = $node->getKeyAttribute();
         if (!$prototype instanceof ArrayNode || ($prototype instanceof PrototypedArrayNode && $prototype->getPrototype() instanceof ScalarNode)) {
             $class->addUse(ParamConfigurator::class);
             $property = $class->addProperty($node->getName());
-            if (null === $key = $node->getKeyAttribute()) {
+            if ($noKey) {
                 // This is an array of values; don't use singular name
                 $nodeTypesWithoutArray = array_filter($nodeParameterTypes, static fn ($type) => 'array' !== $type);
                 $body = '
@@ -242,7 +245,7 @@
                     'PROPERTY' => $property->getName(),
                     'PROTOTYPE_TYPE' => implode('|', $prototypeParameterTypes),
                     'EXTRA_TYPE' => $nodeTypesWithoutArray ? '|'.implode('|', $nodeTypesWithoutArray) : '',
-                    'PARAM_TYPE' => \in_array('mixed', $nodeParameterTypes, true) ? 'mixed' : 'ParamConfigurator|'.implode('|', $nodeParameterTypes),
+                    'PARAM_TYPE' => $this->getParamType($nodeParameterTypes, true),
                 ]);
             } else {
                 $body = '
@@ -259,7 +262,7 @@
 
                 $class->addMethod($methodName, $body, [
                     'PROPERTY' => $property->getName(),
-                    'TYPE' => \in_array('mixed', $prototypeParameterTypes, true) ? 'mixed' : 'ParamConfigurator|'.implode('|', $prototypeParameterTypes),
+                    'TYPE' => $this->getParamType($prototypeParameterTypes, true),
                     'VAR' => '' === $key ? 'key' : $key,
                     'VALUE' => 'value' === $key ? 'data' : 'value',
                 ]);
@@ -280,18 +283,20 @@
             $this->getType($childClass->getFqcn().'[]', $hasNormalizationClosures)
         );
 
+        $paramType = $this->getParamType($noKey ? $nodeParameterTypes : $prototypeParameterTypes);
+
         $comment = $this->getComment($node);
-        if ($hasNormalizationClosures) {
-            $comment = sprintf(" * @template TValue\n * @param TValue \$value\n%s", $comment);
-            $comment .= sprintf(' * @return %s|$this'."\n", $childClass->getFqcn());
-            $comment .= sprintf(' * @psalm-return (TValue is array ? %s : static)'."\n ", $childClass->getFqcn());
+        if ($hasNormalizationClosures && 'array' !== $paramType) {
+            $comment = \sprintf(" * @template TValue of %s\n * @param TValue \$value\n%s", $paramType, $comment);
+            $comment .= \sprintf(' * @return %s|$this'."\n", $childClass->getFqcn());
+            $comment .= \sprintf(' * @psalm-return (TValue is array ? %s : static)'."\n ", $childClass->getFqcn());
         }
         if ('' !== $comment) {
             $comment = "/**\n$comment*/\n";
         }
 
-        if (null === $key = $node->getKeyAttribute()) {
-            $body = $hasNormalizationClosures ? '
+        if ($noKey) {
+            $body = $hasNormalizationClosures && 'array' !== $paramType ? '
 COMMENTpublic function NAME(PARAM_TYPE $value = []): CLASS|static
 {
     $this->_usedProperties[\'PROPERTY\'] = true;
@@ -313,10 +318,10 @@
                 'COMMENT' => $comment,
                 'PROPERTY' => $property->getName(),
                 'CLASS' => $childClass->getFqcn(),
-                'PARAM_TYPE' => \in_array('mixed', $nodeParameterTypes, true) ? 'mixed' : implode('|', $nodeParameterTypes),
+                'PARAM_TYPE' => $paramType,
             ]);
         } else {
-            $body = $hasNormalizationClosures ? '
+            $body = $hasNormalizationClosures && 'array' !== $paramType ? '
 COMMENTpublic function NAME(string $VAR, PARAM_TYPE $VALUE = []): CLASS|static
 {
     if (!\is_array($VALUE)) {
@@ -352,7 +357,7 @@
                 'CLASS' => $childClass->getFqcn(),
                 'VAR' => '' === $key ? 'key' : $key,
                 'VALUE' => 'value' === $key ? 'data' : 'value',
-                'PARAM_TYPE' => \in_array('mixed', $prototypeParameterTypes, true) ? 'mixed' : implode('|', $prototypeParameterTypes),
+                'PARAM_TYPE' => $paramType,
             ]);
         }
 
@@ -413,39 +418,39 @@
     {
         $comment = '';
         if ('' !== $info = (string) $node->getInfo()) {
-            $comment .= ' * '.$info."\n";
+            $comment .= $info."\n";
         }
 
         if (!$node instanceof ArrayNode) {
             foreach ((array) ($node->getExample() ?? []) as $example) {
-                $comment .= ' * @example '.$example."\n";
+                $comment .= '@example '.$example."\n";
             }
 
             if ('' !== $default = $node->getDefaultValue()) {
-                $comment .= ' * @default '.(null === $default ? 'null' : var_export($default, true))."\n";
+                $comment .= '@default '.(null === $default ? 'null' : var_export($default, true))."\n";
             }
 
             if ($node instanceof EnumNode) {
-                $comment .= sprintf(' * @param ParamConfigurator|%s $value', implode('|', array_unique(array_map(fn ($a) => !$a instanceof \UnitEnum ? var_export($a, true) : '\\'.ltrim(var_export($a, true), '\\'), $node->getValues()))))."\n";
+                $comment .= \sprintf('@param ParamConfigurator|%s $value', implode('|', array_unique(array_map(static fn ($a) => !$a instanceof \UnitEnum ? var_export($a, true) : '\\'.ltrim(var_export($a, true), '\\'), $node->getValues()))))."\n";
             } else {
                 $parameterTypes = $this->getParameterTypes($node);
-                $comment .= ' * @param ParamConfigurator|'.implode('|', $parameterTypes).' $value'."\n";
+                $comment .= '@param ParamConfigurator|'.implode('|', $parameterTypes).' $value'."\n";
             }
         } else {
             foreach ((array) ($node->getExample() ?? []) as $example) {
-                $comment .= ' * @example '.json_encode($example)."\n";
+                $comment .= '@example '.json_encode($example)."\n";
             }
 
             if ($node->hasDefaultValue() && [] != $default = $node->getDefaultValue()) {
-                $comment .= ' * @default '.json_encode($default)."\n";
+                $comment .= '@default '.json_encode($default)."\n";
             }
         }
 
         if ($node->isDeprecated()) {
-            $comment .= ' * @deprecated '.$node->getDeprecation($node->getName(), $node->getParent()->getName())['message']."\n";
+            $comment .= '@deprecated '.$node->getDeprecation($node->getName(), $node->getParent()->getName())['message']."\n";
         }
 
-        return $comment;
+        return $comment ? ' * '.str_replace("\n", "\n * ", rtrim($comment, "\n"))."\n" : '';
     }
 
     /**
@@ -579,7 +584,7 @@
 
     private function getSubNamespace(ClassBuilder $rootClass): string
     {
-        return sprintf('%s\\%s', $rootClass->getNamespace(), substr($rootClass->getName(), 0, -6));
+        return \sprintf('%s\\%s', $rootClass->getNamespace(), substr($rootClass->getName(), 0, -6));
     }
 
     private function hasNormalizationClosures(NodeInterface $node): bool
@@ -597,4 +602,9 @@
     {
         return $classType.($hasNormalizationClosures ? '|scalar' : '');
     }
+
+    private function getParamType(array $types, bool $withParamConfigurator = false): string
+    {
+        return \in_array('mixed', $types, true) ? 'mixed' : ($withParamConfigurator ? 'ParamConfigurator|' : '').implode('|', $types);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/ArrayNode.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/ArrayNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/ArrayNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/ArrayNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -177,7 +177,7 @@
     public function getDefaultValue(): mixed
     {
         if (!$this->hasDefaultValue()) {
-            throw new \RuntimeException(sprintf('The node at path "%s" has no default value.', $this->getPath()));
+            throw new \RuntimeException(\sprintf('The node at path "%s" has no default value.', $this->getPath()));
         }
 
         $defaults = [];
@@ -205,7 +205,7 @@
             throw new \InvalidArgumentException('Child nodes must be named.');
         }
         if (isset($this->children[$name])) {
-            throw new \InvalidArgumentException(sprintf('A child node named "%s" already exists.', $name));
+            throw new \InvalidArgumentException(\sprintf('A child node named "%s" already exists.', $name));
         }
 
         $this->children[$name] = $node;
@@ -218,15 +218,15 @@
     protected function finalizeValue(mixed $value): mixed
     {
         if (false === $value) {
-            throw new UnsetKeyException(sprintf('Unsetting key for path "%s", value: %s.', $this->getPath(), json_encode($value)));
+            throw new UnsetKeyException(\sprintf('Unsetting key for path "%s", value: %s.', $this->getPath(), json_encode($value)));
         }
 
         foreach ($this->children as $name => $child) {
             if (!\array_key_exists($name, $value)) {
                 if ($child->isRequired()) {
-                    $message = sprintf('The child config "%s" under "%s" must be configured', $name, $this->getPath());
+                    $message = \sprintf('The child config "%s" under "%s" must be configured', $name, $this->getPath());
                     if ($child->getInfo()) {
-                        $message .= sprintf(': %s', $child->getInfo());
+                        $message .= \sprintf(': %s', $child->getInfo());
                     } else {
                         $message .= '.';
                     }
@@ -264,7 +264,7 @@
     protected function validateType(mixed $value)
     {
         if (!\is_array($value) && (!$this->allowFalse || false !== $value)) {
-            $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "array", but got "%s"', $this->getPath(), get_debug_type($value)));
+            $ex = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected "array", but got "%s"', $this->getPath(), get_debug_type($value)));
             if ($hint = $this->getInfo()) {
                 $ex->addHint($hint);
             }
@@ -315,13 +315,13 @@
                 }
             }
 
-            $msg = sprintf('Unrecognized option%s "%s" under "%s"', 1 === \count($value) ? '' : 's', implode(', ', array_keys($value)), $this->getPath());
+            $msg = \sprintf('Unrecognized option%s "%s" under "%s"', 1 === \count($value) ? '' : 's', implode(', ', array_keys($value)), $this->getPath());
 
             if (\count($guesses)) {
                 asort($guesses);
-                $msg .= sprintf('. Did you mean "%s"?', implode('", "', array_keys($guesses)));
+                $msg .= \sprintf('. Did you mean "%s"?', implode('", "', array_keys($guesses)));
             } else {
-                $msg .= sprintf('. Available option%s %s "%s".', 1 === \count($proposals) ? '' : 's', 1 === \count($proposals) ? 'is' : 'are', implode('", "', $proposals));
+                $msg .= \sprintf('. Available option%s %s "%s".', 1 === \count($proposals) ? '' : 's', 1 === \count($proposals) ? 'is' : 'are', implode('", "', $proposals));
             }
 
             $ex = new InvalidConfigurationException($msg);
@@ -370,7 +370,7 @@
             // no conflict
             if (!\array_key_exists($k, $leftSide)) {
                 if (!$this->allowNewKeys) {
-                    $ex = new InvalidConfigurationException(sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file. If you are trying to overwrite an element, make sure you redefine it with the same name.', $this->getPath()));
+                    $ex = new InvalidConfigurationException(\sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file. If you are trying to overwrite an element, make sure you redefine it with the same name.', $this->getPath()));
                     $ex->setPath($this->getPath());
 
                     throw $ex;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/BaseNode.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/BaseNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/BaseNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/BaseNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -313,7 +313,7 @@
     final public function merge(mixed $leftSide, mixed $rightSide): mixed
     {
         if (!$this->allowOverwrite) {
-            throw new ForbiddenOverwriteException(sprintf('Configuration path "%s" cannot be overwritten. You have to define all options for this path, and any of its sub-paths in one configuration section.', $this->getPath()));
+            throw new ForbiddenOverwriteException(\sprintf('Configuration path "%s" cannot be overwritten. You have to define all options for this path, and any of its sub-paths in one configuration section.', $this->getPath()));
         }
 
         if ($leftSide !== $leftPlaceholders = self::resolvePlaceholderValue($leftSide)) {
@@ -432,7 +432,7 @@
 
                 throw $e;
             } catch (\Exception $e) {
-                throw new InvalidConfigurationException(sprintf('Invalid configuration for path "%s": ', $this->getPath()).$e->getMessage(), $e->getCode(), $e);
+                throw new InvalidConfigurationException(\sprintf('Invalid configuration for path "%s": ', $this->getPath()).$e->getMessage(), $e->getCode(), $e);
             }
         }
 
@@ -507,7 +507,7 @@
     private function doValidateType(mixed $value): void
     {
         if (null !== $this->handlingPlaceholder && !$this->allowPlaceholders()) {
-            $e = new InvalidTypeException(sprintf('A dynamic value is not compatible with a "%s" node type at path "%s".', static::class, $this->getPath()));
+            $e = new InvalidTypeException(\sprintf('A dynamic value is not compatible with a "%s" node type at path "%s".', static::class, $this->getPath()));
             $e->setPath($this->getPath());
 
             throw $e;
@@ -523,7 +523,7 @@
         $validTypes = $this->getValidPlaceholderTypes();
 
         if ($validTypes && array_diff($knownTypes, $validTypes)) {
-            $e = new InvalidTypeException(sprintf(
+            $e = new InvalidTypeException(\sprintf(
                 'Invalid type for path "%s". Expected %s, but got %s.',
                 $this->getPath(),
                 1 === \count($validTypes) ? '"'.reset($validTypes).'"' : 'one of "'.implode('", "', $validTypes).'"',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/BooleanNode.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/BooleanNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/BooleanNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/BooleanNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     protected function validateType(mixed $value)
     {
         if (!\is_bool($value)) {
-            $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "bool", but got "%s".', $this->getPath(), get_debug_type($value)));
+            $ex = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected "bool", but got "%s".', $this->getPath(), get_debug_type($value)));
             if ($hint = $this->getInfo()) {
                 $ex->addHint($hint);
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php	2026-05-20 10:56:49.000000000 +0200
@@ -248,7 +248,7 @@
             ->treatNullLike(['enabled' => true])
             ->beforeNormalization()
                 ->ifArray()
-                ->then(function (array $v) {
+                ->then(static function (array $v) {
                     $v['enabled'] ??= true;
 
                     return $v;
@@ -331,7 +331,7 @@
 
     public function append(NodeDefinition $node): static
     {
-        $this->children[$node->name] = $node->setParent($this);
+        $this->children[$node->name ?? ''] = $node->setParent($this);
 
         return $this;
     }
@@ -374,7 +374,7 @@
 
             if ($this->default) {
                 if (!\is_array($this->defaultValue)) {
-                    throw new \InvalidArgumentException(sprintf('%s: the default value of an array node has to be an array.', $node->getPath()));
+                    throw new \InvalidArgumentException(\sprintf('%s: the default value of an array node has to be an array.', $node->getPath()));
                 }
 
                 $node->setDefaultValue($this->defaultValue);
@@ -434,23 +434,23 @@
         $path = $node->getPath();
 
         if (null !== $this->key) {
-            throw new InvalidDefinitionException(sprintf('->useAttributeAsKey() is not applicable to concrete nodes at path "%s".', $path));
+            throw new InvalidDefinitionException(\sprintf('->useAttributeAsKey() is not applicable to concrete nodes at path "%s".', $path));
         }
 
         if (false === $this->allowEmptyValue) {
-            throw new InvalidDefinitionException(sprintf('->cannotBeEmpty() is not applicable to concrete nodes at path "%s".', $path));
+            throw new InvalidDefinitionException(\sprintf('->cannotBeEmpty() is not applicable to concrete nodes at path "%s".', $path));
         }
 
         if (true === $this->atLeastOne) {
-            throw new InvalidDefinitionException(sprintf('->requiresAtLeastOneElement() is not applicable to concrete nodes at path "%s".', $path));
+            throw new InvalidDefinitionException(\sprintf('->requiresAtLeastOneElement() is not applicable to concrete nodes at path "%s".', $path));
         }
 
         if ($this->default) {
-            throw new InvalidDefinitionException(sprintf('->defaultValue() is not applicable to concrete nodes at path "%s".', $path));
+            throw new InvalidDefinitionException(\sprintf('->defaultValue() is not applicable to concrete nodes at path "%s".', $path));
         }
 
         if (false !== $this->addDefaultChildren) {
-            throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() is not applicable to concrete nodes at path "%s".', $path));
+            throw new InvalidDefinitionException(\sprintf('->addDefaultChildrenIfNoneSet() is not applicable to concrete nodes at path "%s".', $path));
         }
     }
 
@@ -466,20 +466,20 @@
         $path = $node->getPath();
 
         if ($this->addDefaults) {
-            throw new InvalidDefinitionException(sprintf('->addDefaultsIfNotSet() is not applicable to prototype nodes at path "%s".', $path));
+            throw new InvalidDefinitionException(\sprintf('->addDefaultsIfNotSet() is not applicable to prototype nodes at path "%s".', $path));
         }
 
         if (false !== $this->addDefaultChildren) {
             if ($this->default) {
-                throw new InvalidDefinitionException(sprintf('A default value and default children might not be used together at path "%s".', $path));
+                throw new InvalidDefinitionException(\sprintf('A default value and default children might not be used together at path "%s".', $path));
             }
 
             if (null !== $this->key && (null === $this->addDefaultChildren || \is_int($this->addDefaultChildren) && $this->addDefaultChildren > 0)) {
-                throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() should set default children names as ->useAttributeAsKey() is used at path "%s".', $path));
+                throw new InvalidDefinitionException(\sprintf('->addDefaultChildrenIfNoneSet() should set default children names as ->useAttributeAsKey() is used at path "%s".', $path));
             }
 
             if (null === $this->key && (\is_string($this->addDefaultChildren) || \is_array($this->addDefaultChildren))) {
-                throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() might not set default children names as ->useAttributeAsKey() is not used at path "%s".', $path));
+                throw new InvalidDefinitionException(\sprintf('->addDefaultChildrenIfNoneSet() might not set default children names as ->useAttributeAsKey() is not used at path "%s".', $path));
             }
         }
     }
@@ -504,7 +504,7 @@
             : substr($nodePath, 0, $pathSeparatorPos);
 
         if (null === $node = ($this->children[$firstPathSegment] ?? null)) {
-            throw new \RuntimeException(sprintf('Node with name "%s" does not exist in the current node "%s".', $firstPathSegment, $this->name));
+            throw new \RuntimeException(\sprintf('Node with name "%s" does not exist in the current node "%s".', $firstPathSegment, $this->name));
         }
 
         if (false === $pathSeparatorPos) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Builder/ExprBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Builder/ExprBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Builder/ExprBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Builder/ExprBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -196,7 +196,7 @@
      */
     public function thenInvalid(string $message): static
     {
-        $this->thenPart = static fn ($v) => throw new \InvalidArgumentException(sprintf($message, json_encode($v)));
+        $this->thenPart = static fn ($v) => throw new \InvalidArgumentException(\sprintf($message, json_encode($v)));
 
         return $this;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Builder/NodeBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Builder/NodeBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Builder/NodeBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Builder/NodeBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -190,13 +190,13 @@
         $type = strtolower($type);
 
         if (!isset($this->nodeMapping[$type])) {
-            throw new \RuntimeException(sprintf('The node type "%s" is not registered.', $type));
+            throw new \RuntimeException(\sprintf('The node type "%s" is not registered.', $type));
         }
 
         $class = $this->nodeMapping[$type];
 
         if (!class_exists($class)) {
-            throw new \RuntimeException(sprintf('The node class "%s" does not exist.', $class));
+            throw new \RuntimeException(\sprintf('The node class "%s" does not exist.', $class));
         }
 
         return $class;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Builder/NumericNodeDefinition.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Builder/NumericNodeDefinition.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Builder/NumericNodeDefinition.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Builder/NumericNodeDefinition.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
     public function max(int|float $max): static
     {
         if (isset($this->min) && $this->min > $max) {
-            throw new \InvalidArgumentException(sprintf('You cannot define a max(%s) as you already have a min(%s).', $max, $this->min));
+            throw new \InvalidArgumentException(\sprintf('You cannot define a max(%s) as you already have a min(%s).', $max, $this->min));
         }
         $this->max = $max;
 
@@ -50,7 +50,7 @@
     public function min(int|float $min): static
     {
         if (isset($this->max) && $this->max < $min) {
-            throw new \InvalidArgumentException(sprintf('You cannot define a min(%s) as you already have a max(%s).', $min, $this->max));
+            throw new \InvalidArgumentException(\sprintf('You cannot define a min(%s) as you already have a max(%s).', $min, $this->max));
         }
         $this->min = $min;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Dumper/XmlReferenceDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Dumper/XmlReferenceDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Dumper/XmlReferenceDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Dumper/XmlReferenceDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
 
         // xml remapping
         if ($node->getParent()) {
-            $remapping = array_filter($node->getParent()->getXmlRemappings(), fn (array $mapping) => $rootName === $mapping[1]);
+            $remapping = array_filter($node->getParent()->getXmlRemappings(), static fn (array $mapping) => $rootName === $mapping[1]);
 
             if (\count($remapping)) {
                 [$singular] = current($remapping);
@@ -151,7 +151,7 @@
 
                 if ($child instanceof BaseNode && $child->isDeprecated()) {
                     $deprecation = $child->getDeprecation($child->getName(), $node->getPath());
-                    $comments[] = sprintf('Deprecated (%s)', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '').$deprecation['message']);
+                    $comments[] = \sprintf('Deprecated (%s)', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '').$deprecation['message']);
                 }
 
                 if ($child instanceof EnumNode) {
@@ -205,7 +205,7 @@
         $rootOpenTag = '<'.$rootName;
         if (1 >= ($attributesCount = \count($rootAttributes))) {
             if (1 === $attributesCount) {
-                $rootOpenTag .= sprintf(' %s="%s"', current(array_keys($rootAttributes)), $this->writeValue(current($rootAttributes)));
+                $rootOpenTag .= \sprintf(' %s="%s"', current(array_keys($rootAttributes)), $this->writeValue(current($rootAttributes)));
             }
 
             $rootOpenTag .= $rootIsEmptyTag ? ' />' : '>';
@@ -221,7 +221,7 @@
             $i = 1;
 
             foreach ($rootAttributes as $attrName => $attrValue) {
-                $attr = sprintf('%s="%s"', $attrName, $this->writeValue($attrValue));
+                $attr = \sprintf('%s="%s"', $attrName, $this->writeValue($attrValue));
 
                 $this->writeLine($attr, $depth + 4);
 
@@ -258,7 +258,7 @@
         $indent = \strlen($text) + $indent;
         $format = '%'.$indent.'s';
 
-        $this->reference .= sprintf($format, $text).\PHP_EOL;
+        $this->reference .= \sprintf($format, $text).\PHP_EOL;
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Dumper/YamlReferenceDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Dumper/YamlReferenceDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Dumper/YamlReferenceDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Dumper/YamlReferenceDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
 
         foreach (explode('.', $path) as $step) {
             if (!$node instanceof ArrayNode) {
-                throw new \UnexpectedValueException(sprintf('Unable to find node at path "%s.%s".', $rootNode->getName(), $path));
+                throw new \UnexpectedValueException(\sprintf('Unable to find node at path "%s.%s".', $rootNode->getName(), $path));
             }
 
             /** @var NodeInterface[] $children */
@@ -60,7 +60,7 @@
                 }
             }
 
-            throw new \UnexpectedValueException(sprintf('Unable to find node at path "%s.%s".', $rootNode->getName(), $path));
+            throw new \UnexpectedValueException(\sprintf('Unable to find node at path "%s.%s".', $rootNode->getName(), $path));
         }
 
         return $this->dumpNode($node);
@@ -130,7 +130,7 @@
         // deprecated?
         if ($node instanceof BaseNode && $node->isDeprecated()) {
             $deprecation = $node->getDeprecation($node->getName(), $parentNode ? $parentNode->getPath() : $node->getPath());
-            $comments[] = sprintf('Deprecated (%s)', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '').$deprecation['message']);
+            $comments[] = \sprintf('Deprecated (%s)', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '').$deprecation['message']);
         }
 
         // example
@@ -142,12 +142,12 @@
         $comments = \count($comments) ? '# '.implode(', ', $comments) : '';
 
         $key = $prototypedArray ? '-' : $node->getName().':';
-        $text = rtrim(sprintf('%-21s%s %s', $key, $default, $comments), ' ');
+        $text = rtrim(\sprintf('%-21s%s %s', $key, $default, $comments), ' ');
 
         if ($node instanceof BaseNode && $info = $node->getInfo()) {
             $this->writeLine('');
             // indenting multi-line info
-            $info = str_replace("\n", sprintf("\n%".($depth * 4).'s# ', ' '), $info);
+            $info = str_replace("\n", \sprintf("\n%".($depth * 4).'s# ', ' '), $info);
             $this->writeLine('# '.$info, $depth * 4);
         }
 
@@ -189,7 +189,7 @@
         $indent = \strlen($text) + $indent;
         $format = '%'.$indent.'s';
 
-        $this->reference .= sprintf($format, $text)."\n";
+        $this->reference .= \sprintf($format, $text)."\n";
     }
 
     private function writeArray(array $array, int $depth, bool $asComment = false): void
@@ -208,7 +208,7 @@
             if ($isIndexed) {
                 $this->writeLine($prefix.'- '.$val, $depth * 4);
             } else {
-                $this->writeLine(sprintf('%s%-20s %s', $prefix, $key.':', $val), $depth * 4);
+                $this->writeLine(\sprintf('%s%-20s %s', $prefix, $key.':', $val), $depth * 4);
             }
 
             if (\is_array($value)) {
@@ -249,6 +249,6 @@
         }
         $keyNode->setInfo($info);
 
-        return [$key => $keyNode];
+        return [$key ?? '' => $keyNode];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/EnumNode.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/EnumNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/EnumNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/EnumNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,11 +34,11 @@
             }
 
             if (!$value instanceof \UnitEnum) {
-                throw new \InvalidArgumentException(sprintf('"%s" only supports scalar, enum, or null values, "%s" given.', __CLASS__, get_debug_type($value)));
+                throw new \InvalidArgumentException(\sprintf('"%s" only supports scalar, enum, or null values, "%s" given.', __CLASS__, get_debug_type($value)));
             }
 
             if ($value::class !== ($enumClass ??= $value::class)) {
-                throw new \InvalidArgumentException(sprintf('"%s" only supports one type of enum, "%s" and "%s" passed.', __CLASS__, $enumClass, $value::class));
+                throw new \InvalidArgumentException(\sprintf('"%s" only supports one type of enum, "%s" and "%s" passed.', __CLASS__, $enumClass, $value::class));
             }
         }
 
@@ -85,7 +85,7 @@
         $value = parent::finalizeValue($value);
 
         if (!\in_array($value, $this->values, true)) {
-            $ex = new InvalidConfigurationException(sprintf('The value %s is not allowed for path "%s". Permissible values: %s', json_encode($value), $this->getPath(), $this->getPermissibleValues(', ')));
+            $ex = new InvalidConfigurationException(\sprintf('The value %s is not allowed for path "%s". Permissible values: %s', json_encode($value), $this->getPath(), $this->getPermissibleValues(', ')));
             $ex->setPath($this->getPath());
 
             throw $ex;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/FloatNode.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/FloatNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/FloatNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/FloatNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
         }
 
         if (!\is_float($value)) {
-            $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "float", but got "%s".', $this->getPath(), get_debug_type($value)));
+            $ex = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected "float", but got "%s".', $this->getPath(), get_debug_type($value)));
             if ($hint = $this->getInfo()) {
                 $ex->addHint($hint);
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/IntegerNode.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/IntegerNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/IntegerNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/IntegerNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     protected function validateType(mixed $value)
     {
         if (!\is_int($value)) {
-            $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "int", but got "%s".', $this->getPath(), get_debug_type($value)));
+            $ex = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected "int", but got "%s".', $this->getPath(), get_debug_type($value)));
             if ($hint = $this->getInfo()) {
                 $ex->addHint($hint);
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Loader/DefinitionFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Loader/DefinitionFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/Loader/DefinitionFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/Loader/DefinitionFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -81,7 +81,7 @@
             $reflectionType = $parameter->getType();
 
             if (!$reflectionType instanceof \ReflectionNamedType) {
-                throw new \InvalidArgumentException(sprintf('Could not resolve argument "$%s" for "%s". You must typehint it (for example with "%s").', $parameter->getName(), $path, DefinitionConfigurator::class));
+                throw new \InvalidArgumentException(\sprintf('Could not resolve argument "$%s" for "%s". You must typehint it (for example with "%s").', $parameter->getName(), $path, DefinitionConfigurator::class));
             }
 
             $arguments[] = match ($reflectionType->getName()) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/NumericNode.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/NumericNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/NumericNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/NumericNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,12 +34,16 @@
     {
         $value = parent::finalizeValue($value);
 
+        if ($this->isHandlingPlaceholder()) {
+            return $value;
+        }
+
         $errorMsg = null;
         if (isset($this->min) && $value < $this->min) {
-            $errorMsg = sprintf('The value %s is too small for path "%s". Should be greater than or equal to %s', $value, $this->getPath(), $this->min);
+            $errorMsg = \sprintf('The value %s is too small for path "%s". Should be greater than or equal to %s', $value, $this->getPath(), $this->min);
         }
         if (isset($this->max) && $value > $this->max) {
-            $errorMsg = sprintf('The value %s is too big for path "%s". Should be less than or equal to %s', $value, $this->getPath(), $this->max);
+            $errorMsg = \sprintf('The value %s is too big for path "%s". Should be less than or equal to %s', $value, $this->getPath(), $this->max);
         }
         if (isset($errorMsg)) {
             $ex = new InvalidConfigurationException($errorMsg);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/PrototypedArrayNode.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/PrototypedArrayNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/PrototypedArrayNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/PrototypedArrayNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -168,7 +168,7 @@
     protected function finalizeValue(mixed $value): mixed
     {
         if (false === $value) {
-            throw new UnsetKeyException(sprintf('Unsetting key for path "%s", value: %s.', $this->getPath(), json_encode($value)));
+            throw new UnsetKeyException(\sprintf('Unsetting key for path "%s", value: %s.', $this->getPath(), json_encode($value)));
         }
 
         foreach ($value as $k => $v) {
@@ -181,7 +181,7 @@
         }
 
         if (\count($value) < $this->minNumberOfElements) {
-            $ex = new InvalidConfigurationException(sprintf('The path "%s" should have at least %d element(s) defined.', $this->getPath(), $this->minNumberOfElements));
+            $ex = new InvalidConfigurationException(\sprintf('The path "%s" should have at least %d element(s) defined.', $this->getPath(), $this->minNumberOfElements));
             $ex->setPath($this->getPath());
 
             throw $ex;
@@ -206,7 +206,7 @@
         foreach ($value as $k => $v) {
             if (null !== $this->keyAttribute && \is_array($v)) {
                 if (!isset($v[$this->keyAttribute]) && \is_int($k) && $isList) {
-                    $ex = new InvalidConfigurationException(sprintf('The attribute "%s" must be set for path "%s".', $this->keyAttribute, $this->getPath()));
+                    $ex = new InvalidConfigurationException(\sprintf('The attribute "%s" must be set for path "%s".', $this->keyAttribute, $this->getPath()));
                     $ex->setPath($this->getPath());
 
                     throw $ex;
@@ -239,7 +239,7 @@
                 }
 
                 if (\array_key_exists($k, $normalized)) {
-                    $ex = new DuplicateKeyException(sprintf('Duplicate key "%s" for path "%s".', $k, $this->getPath()));
+                    $ex = new DuplicateKeyException(\sprintf('Duplicate key "%s" for path "%s".', $k, $this->getPath()));
                     $ex->setPath($this->getPath());
 
                     throw $ex;
@@ -280,7 +280,7 @@
             // no conflict
             if (!\array_key_exists($k, $leftSide)) {
                 if (!$this->allowNewKeys) {
-                    $ex = new InvalidConfigurationException(sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file.', $this->getPath()));
+                    $ex = new InvalidConfigurationException(\sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file.', $this->getPath()));
                     $ex->setPath($this->getPath());
 
                     throw $ex;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/ScalarNode.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/ScalarNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/ScalarNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/ScalarNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
     protected function validateType(mixed $value)
     {
         if (!\is_scalar($value) && null !== $value) {
-            $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "scalar", but got "%s".', $this->getPath(), get_debug_type($value)));
+            $ex = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected "scalar", but got "%s".', $this->getPath(), get_debug_type($value)));
             if ($hint = $this->getInfo()) {
                 $ex->addHint($hint);
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/VariableNode.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/VariableNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Definition/VariableNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Definition/VariableNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -80,7 +80,7 @@
         // deny environment variables only when using custom validators
         // this avoids ever passing an empty value to final validation closures
         if (!$this->allowEmptyValue && $this->isHandlingPlaceholder() && $this->finalValidationClosures) {
-            $e = new InvalidConfigurationException(sprintf('The path "%s" cannot contain an environment variable when empty values are not allowed by definition and are validated.', $this->getPath()));
+            $e = new InvalidConfigurationException(\sprintf('The path "%s" cannot contain an environment variable when empty values are not allowed by definition and are validated.', $this->getPath()));
             if ($hint = $this->getInfo()) {
                 $e->addHint($hint);
             }
@@ -90,7 +90,7 @@
         }
 
         if (!$this->allowEmptyValue && $this->isValueEmpty($value)) {
-            $ex = new InvalidConfigurationException(sprintf('The path "%s" cannot contain an empty value, but got %s.', $this->getPath(), json_encode($value)));
+            $ex = new InvalidConfigurationException(\sprintf('The path "%s" cannot contain an empty value, but got %s.', $this->getPath(), json_encode($value)));
             if ($hint = $this->getInfo()) {
                 $ex->addHint($hint);
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Exception/FileLoaderImportCircularReferenceException.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Exception/FileLoaderImportCircularReferenceException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Exception/FileLoaderImportCircularReferenceException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Exception/FileLoaderImportCircularReferenceException.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 {
     public function __construct(array $resources, int $code = 0, ?\Throwable $previous = null)
     {
-        $message = sprintf('Circular reference detected in "%s" ("%s" > "%s").', $this->varToString($resources[0]), implode('" > "', $resources), $resources[0]);
+        $message = \sprintf('Circular reference detected in "%s" ("%s" > "%s").', $this->varToString($resources[0]), implode('" > "', $resources), $resources[0]);
 
         \Exception::__construct($message, $code, $previous);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Exception/LoaderLoadException.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Exception/LoaderLoadException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Exception/LoaderLoadException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Exception/LoaderLoadException.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
             try {
                 $resource = json_encode($resource, \JSON_THROW_ON_ERROR);
             } catch (\JsonException) {
-                $resource = sprintf('resource of type "%s"', get_debug_type($resource));
+                $resource = \sprintf('resource of type "%s"', get_debug_type($resource));
             }
         }
 
@@ -42,35 +42,35 @@
             // Trim the trailing period of the previous message. We only want 1 period remove so no rtrim...
             if (str_ends_with($previous->getMessage(), '.')) {
                 $trimmedMessage = substr($previous->getMessage(), 0, -1);
-                $message .= sprintf('%s', $trimmedMessage).' in ';
+                $message .= \sprintf('%s', $trimmedMessage).' in ';
             } else {
-                $message .= sprintf('%s', $previous->getMessage()).' in ';
+                $message .= \sprintf('%s', $previous->getMessage()).' in ';
             }
             $message .= $resource.' ';
 
             // show tweaked trace to complete the human readable sentence
             if (null === $sourceResource) {
-                $message .= sprintf('(which is loaded in resource "%s")', $resource);
+                $message .= \sprintf('(which is loaded in resource "%s")', $resource);
             } else {
-                $message .= sprintf('(which is being imported from "%s")', $sourceResource);
+                $message .= \sprintf('(which is being imported from "%s")', $sourceResource);
             }
             $message .= '.';
 
         // if there's no previous message, present it the default way
         } elseif (null === $sourceResource) {
-            $message .= sprintf('Cannot load resource "%s".', $resource);
+            $message .= \sprintf('Cannot load resource "%s".', $resource);
         } else {
-            $message .= sprintf('Cannot import resource "%s" from "%s".', $resource, $sourceResource);
+            $message .= \sprintf('Cannot import resource "%s" from "%s".', $resource, $sourceResource);
         }
 
         // Is the resource located inside a bundle?
         if ('@' === $resource[0]) {
             $parts = explode(\DIRECTORY_SEPARATOR, $resource);
             $bundle = substr($parts[0], 1);
-            $message .= sprintf(' Make sure the "%s" bundle is correctly registered and loaded in the application kernel class.', $bundle);
-            $message .= sprintf(' If the bundle is registered, make sure the bundle path "%s" is not empty.', $resource);
+            $message .= \sprintf(' Make sure the "%s" bundle is correctly registered and loaded in the application kernel class.', $bundle);
+            $message .= \sprintf(' If the bundle is registered, make sure the bundle path "%s" is not empty.', $resource);
         } elseif (null !== $type) {
-            $message .= sprintf(' Make sure there is a loader supporting the "%s" type.', $type);
+            $message .= \sprintf(' Make sure there is a loader supporting the "%s" type.', $type);
         }
 
         parent::__construct($message, $code, $previous);
@@ -82,20 +82,20 @@
     protected function varToString(mixed $var)
     {
         if (\is_object($var)) {
-            return sprintf('Object(%s)', $var::class);
+            return \sprintf('Object(%s)', $var::class);
         }
 
         if (\is_array($var)) {
             $a = [];
             foreach ($var as $k => $v) {
-                $a[] = sprintf('%s => %s', $k, $this->varToString($v));
+                $a[] = \sprintf('%s => %s', $k, $this->varToString($v));
             }
 
-            return sprintf('Array(%s)', implode(', ', $a));
+            return \sprintf('Array(%s)', implode(', ', $a));
         }
 
         if (\is_resource($var)) {
-            return sprintf('Resource(%s)', get_resource_type($var));
+            return \sprintf('Resource(%s)', get_resource_type($var));
         }
 
         if (null === $var) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/FileLocatorInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/FileLocatorInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/FileLocatorInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/FileLocatorInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,10 +27,10 @@
      *
      * @return string|string[] The full path to the file or an array of file paths
      *
+     * @psalm-return ($first is true ? string : string[])
+     *
      * @throws \InvalidArgumentException        If $name is empty
      * @throws FileLocatorFileNotFoundException If a file is not found
-     *
-     * @psalm-return ($first is true ? string : string[])
      */
     public function locate(string $name, ?string $currentPath = null, bool $first = true);
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/FileLocator.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/FileLocator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/FileLocator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/FileLocator.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
         if ($this->isAbsolutePath($name)) {
             if (!file_exists($name)) {
-                throw new FileLocatorFileNotFoundException(sprintf('The file "%s" does not exist.', $name), 0, null, [$name]);
+                throw new FileLocatorFileNotFoundException(\sprintf('The file "%s" does not exist.', $name), 0, null, [$name]);
             }
 
             return $name;
@@ -70,7 +70,7 @@
         }
 
         if (!$filepaths) {
-            throw new FileLocatorFileNotFoundException(sprintf('The file "%s" does not exist (in: "%s").', $name, implode('", "', $paths)), 0, null, $notfound);
+            throw new FileLocatorFileNotFoundException(\sprintf('The file "%s" does not exist (in: "%s").', $name, implode('", "', $paths)), 0, null, $notfound);
         }
 
         return $filepaths;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Loader/FileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Loader/FileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Loader/FileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Loader/FileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,27 +72,40 @@
      */
     public function import(mixed $resource, ?string $type = null, bool $ignoreErrors = false, ?string $sourceResource = null, string|array|null $exclude = null)
     {
-        if (\is_string($resource) && \strlen($resource) !== ($i = strcspn($resource, '*?{[')) && !str_contains($resource, "\n")) {
-            $excluded = [];
-            foreach ((array) $exclude as $pattern) {
-                foreach ($this->glob($pattern, true, $_, false, true) as $path => $info) {
-                    // normalize Windows slashes and remove trailing slashes
-                    $excluded[rtrim(str_replace('\\', '/', $path), '/')] = true;
-                }
+        $excluded = [];
+        foreach ((array) $exclude as $pattern) {
+            foreach ($this->glob($pattern, true, $_, false, true) as $path => $info) {
+                // normalize Windows slashes and remove trailing slashes
+                $excluded[rtrim(str_replace('\\', '/', $path), '/')] = true;
             }
+        }
 
-            $ret = [];
-            $isSubpath = 0 !== $i && str_contains(substr($resource, 0, $i), '/');
-            foreach ($this->glob($resource, false, $_, $ignoreErrors || !$isSubpath, false, $excluded) as $path => $info) {
-                if (null !== $res = $this->doImport($path, 'glob' === $type ? null : $type, $ignoreErrors, $sourceResource)) {
-                    $ret[] = $res;
-                }
-                $isSubpath = true;
+        if (\is_string($resource) && !class_exists($resource)) {
+            $isGlobPattern = \strlen($resource) !== strcspn($resource, '*?{[');
+
+            if (!$isGlobPattern && $excluded) {
+                $resource = rtrim(str_replace('\\', '/', $resource), '/');
+                $resource .= '/**/*';
+                $isGlobPattern = true;
             }
 
-            if ($isSubpath) {
-                return isset($ret[1]) ? $ret : ($ret[0] ?? null);
+            if ($isGlobPattern && !str_contains($resource, "\n")) {
+                $ret = [];
+                $i = strcspn($resource, '*?{[');
+                $isSubpath = 0 !== $i && str_contains(substr($resource, 0, $i), '/');
+                foreach ($this->glob($resource, false, $_, $ignoreErrors || !$isSubpath, false, $excluded) as $path => $info) {
+                    if (null !== $res = $this->doImport($path, 'glob' === $type ? null : $type, $ignoreErrors, $sourceResource)) {
+                        $ret[] = $res;
+                    }
+                    $isSubpath = true;
+                }
+
+                if ($isSubpath) {
+                    return isset($ret[1]) ? $ret : ($ret[0] ?? null);
+                }
             }
+        } elseif (\is_array($resource) && $excluded) {
+            $resource['_excluded'] = $excluded;
         }
 
         return $this->doImport($resource, $type, $ignoreErrors, $sourceResource);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Resource/ClassExistenceResource.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Resource/ClassExistenceResource.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Resource/ClassExistenceResource.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Resource/ClassExistenceResource.php	2026-05-20 10:56:49.000000000 +0200
@@ -101,23 +101,23 @@
         return $this->exists[0] xor !$exists[0];
     }
 
-    /**
-     * @internal
-     */
-    public function __sleep(): array
+    public function __serialize(): array
     {
         if (null === $this->exists) {
             $this->isFresh(0);
         }
 
-        return ['resource', 'exists'];
+        return [
+            'resource' => $this->resource,
+            'exists' => $this->exists,
+        ];
     }
 
-    /**
-     * @internal
-     */
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
+        $this->resource = array_shift($data);
+        $this->exists = array_shift($data);
+
         if (\is_bool($this->exists)) {
             $this->exists = [$this->exists, null];
         }
@@ -158,10 +158,10 @@
             throw $previous;
         }
 
-        $message = sprintf('Class "%s" not found.', $class);
+        $message = \sprintf('Class "%s" not found.', $class);
 
         if ($class !== (self::$autoloadedClass ?? $class)) {
-            $message = substr_replace($message, sprintf(' while loading "%s"', self::$autoloadedClass), -1, 0);
+            $message = substr_replace($message, \sprintf(' while loading "%s"', self::$autoloadedClass), -1, 0);
         }
 
         if (null !== $previous) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Resource/DirectoryResource.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Resource/DirectoryResource.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Resource/DirectoryResource.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Resource/DirectoryResource.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
         $this->pattern = $pattern;
 
         if (false === $resolvedResource || !is_dir($resolvedResource)) {
-            throw new \InvalidArgumentException(sprintf('The directory "%s" does not exist.', $resource));
+            throw new \InvalidArgumentException(\sprintf('The directory "%s" does not exist.', $resource));
         }
 
         $this->resource = $resolvedResource;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Resource/FileResource.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Resource/FileResource.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Resource/FileResource.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Resource/FileResource.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
         $resolvedResource = realpath($resource) ?: (file_exists($resource) ? $resource : false);
 
         if (false === $resolvedResource) {
-            throw new \InvalidArgumentException(sprintf('The file "%s" does not exist.', $resource));
+            throw new \InvalidArgumentException(\sprintf('The file "%s" does not exist.', $resource));
         }
 
         $this->resource = $resolvedResource;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Resource/GlobResource.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Resource/GlobResource.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Resource/GlobResource.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Resource/GlobResource.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
         $this->globBrace = \defined('GLOB_BRACE') ? \GLOB_BRACE : 0;
 
         if (false === $resolvedPrefix) {
-            throw new \InvalidArgumentException(sprintf('The path "%s" does not exist.', $prefix));
+            throw new \InvalidArgumentException(\sprintf('The path "%s" does not exist.', $prefix));
         }
 
         $this->prefix = $resolvedPrefix;
@@ -77,21 +77,28 @@
         return $this->hash === $hash;
     }
 
-    /**
-     * @internal
-     */
-    public function __sleep(): array
+    public function __serialize(): array
     {
         $this->hash ??= $this->computeHash();
 
-        return ['prefix', 'pattern', 'recursive', 'hash', 'forExclusion', 'excludedPrefixes'];
-    }
-
-    /**
-     * @internal
-     */
-    public function __wakeup(): void
-    {
+        return [
+            'prefix' => $this->prefix,
+            'pattern' => $this->pattern,
+            'recursive' => $this->recursive,
+            'hash' => $this->hash,
+            'forExclusion' => $this->forExclusion,
+            'excludedPrefixes' => $this->excludedPrefixes,
+        ];
+    }
+
+    public function __unserialize(array $data): void
+    {
+        $this->prefix = array_shift($data);
+        $this->pattern = array_shift($data);
+        $this->recursive = array_shift($data);
+        $this->hash = array_shift($data);
+        $this->forExclusion = array_shift($data);
+        $this->excludedPrefixes = array_shift($data);
         $this->globBrace = \defined('GLOB_BRACE') ? \GLOB_BRACE : 0;
     }
 
@@ -111,7 +118,7 @@
         if (class_exists(Finder::class)) {
             $regex = Glob::toRegex($pattern);
             if ($this->recursive) {
-                $regex = substr_replace($regex, '(/|$)', -2, 1);
+                $regex = substr_replace($regex, str_ends_with($pattern, '/') ? '' : '(/|$)', -2, 1);
             }
         } else {
             $regex = null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Resource/ReflectionClassResource.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Resource/ReflectionClassResource.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Resource/ReflectionClassResource.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Resource/ReflectionClassResource.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Config\Resource;
 
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+use Symfony\Component\Form\FormTypeExtensionInterface;
 use Symfony\Component\Messenger\Handler\MessageSubscriberInterface;
 use Symfony\Contracts\Service\ServiceSubscriberInterface;
 
@@ -60,17 +61,19 @@
         return 'reflection.'.$this->className;
     }
 
-    /**
-     * @internal
-     */
-    public function __sleep(): array
+    public function __serialize(): array
     {
         if (!isset($this->hash)) {
             $this->hash = $this->computeHash();
             $this->loadFiles($this->classReflector);
         }
 
-        return ['files', 'className', 'hash'];
+        return [
+            'files' => $this->files,
+            'className' => $this->className,
+            'excludedVendors' => $this->excludedVendors,
+            'hash' => $this->hash,
+        ];
     }
 
     private function loadFiles(\ReflectionClass $class): void
@@ -123,7 +126,7 @@
         yield print_r($attributes, true);
         $attributes = [];
 
-        yield $class->getDocComment();
+        yield $class->getDocComment() ?: '';
         yield (int) $class->isFinal();
         yield (int) $class->isAbstract();
 
@@ -135,6 +138,14 @@
             yield print_r($class->getConstants(), true);
         }
 
+        foreach ($class->getReflectionConstants() as $constant) {
+            foreach ($constant->getAttributes() as $a) {
+                $attributes[] = [$a->getName(), (string) $a];
+            }
+            yield $constant->name.print_r($attributes, true);
+            $attributes = [];
+        }
+
         if (!$class->isInterface()) {
             $defaults = $class->getDefaultProperties();
 
@@ -145,7 +156,7 @@
                 yield print_r($attributes, true);
                 $attributes = [];
 
-                yield $p->getDocComment();
+                yield $p->getDocComment() ?: '';
                 yield $p->isDefault() ? '<default>' : '';
                 yield $p->isPublic() ? 'public' : 'protected';
                 yield $p->isStatic() ? 'static' : '';
@@ -202,5 +213,12 @@
             yield ServiceSubscriberInterface::class;
             yield print_r($class->name::getSubscribedServices(), true);
         }
+
+        if (interface_exists(FormTypeExtensionInterface::class, false) && $class->isSubclassOf(FormTypeExtensionInterface::class)) {
+            yield FormTypeExtensionInterface::class;
+            foreach ($class->name::getExtendedTypes() as $key => $value) {
+                yield $key.print_r($value, true);
+            }
+        }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/ResourceCheckerConfigCache.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/ResourceCheckerConfigCache.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/ResourceCheckerConfigCache.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/ResourceCheckerConfigCache.php	2026-05-20 10:56:49.000000000 +0200
@@ -111,7 +111,7 @@
      */
     public function write(string $content, ?array $metadata = null)
     {
-        $mode = 0666;
+        $mode = 0o666;
         $umask = umask();
         $filesystem = new Filesystem();
         $filesystem->dumpFile($this->file, $content);
@@ -149,7 +149,7 @@
         $content = file_get_contents($file);
         $signalingException = new \UnexpectedValueException();
         $prevUnserializeHandler = ini_set('unserialize_callback_func', self::class.'::handleUnserializeCallback');
-        $prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler, $signalingException) {
+        $prevErrorHandler = set_error_handler(static function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler, $signalingException) {
             if (__FILE__ === $file && !\in_array($type, [\E_DEPRECATED, \E_USER_DEPRECATED], true)) {
                 throw $signalingException;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValues/ErrorPagesConfig.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValues/ErrorPagesConfig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValues/ErrorPagesConfig.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValues/ErrorPagesConfig.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,75 @@
+<?php
+
+namespace Symfony\Config\ArrayValues;
+
+use Symfony\Component\Config\Loader\ParamConfigurator;
+use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
+
+/**
+ * This class is automatically generated to help in creating a config.
+ */
+class ErrorPagesConfig 
+{
+    private $enabled;
+    private $withTrace;
+    private $_usedProperties = [];
+
+    /**
+     * @default false
+     * @param ParamConfigurator|bool $value
+     * @return $this
+     */
+    public function enabled($value): static
+    {
+        $this->_usedProperties['enabled'] = true;
+        $this->enabled = $value;
+
+        return $this;
+    }
+
+    /**
+     * @default null
+     * @param ParamConfigurator|bool $value
+     * @return $this
+     */
+    public function withTrace($value): static
+    {
+        $this->_usedProperties['withTrace'] = true;
+        $this->withTrace = $value;
+
+        return $this;
+    }
+
+    public function __construct(array $value = [])
+    {
+        if (array_key_exists('enabled', $value)) {
+            $this->_usedProperties['enabled'] = true;
+            $this->enabled = $value['enabled'];
+            unset($value['enabled']);
+        }
+
+        if (array_key_exists('with_trace', $value)) {
+            $this->_usedProperties['withTrace'] = true;
+            $this->withTrace = $value['with_trace'];
+            unset($value['with_trace']);
+        }
+
+        if ([] !== $value) {
+            throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value)));
+        }
+    }
+
+    public function toArray(): array
+    {
+        $output = [];
+        if (isset($this->_usedProperties['enabled'])) {
+            $output['enabled'] = $this->enabled;
+        }
+        if (isset($this->_usedProperties['withTrace'])) {
+            $output['with_trace'] = $this->withTrace;
+        }
+
+        return $output;
+    }
+
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValues/TransportsConfig.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValues/TransportsConfig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValues/TransportsConfig.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValues/TransportsConfig.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,52 @@
+<?php
+
+namespace Symfony\Config\ArrayValues;
+
+use Symfony\Component\Config\Loader\ParamConfigurator;
+use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
+
+/**
+ * This class is automatically generated to help in creating a config.
+ */
+class TransportsConfig 
+{
+    private $dsn;
+    private $_usedProperties = [];
+
+    /**
+     * @default null
+     * @param ParamConfigurator|mixed $value
+     * @return $this
+     */
+    public function dsn($value): static
+    {
+        $this->_usedProperties['dsn'] = true;
+        $this->dsn = $value;
+
+        return $this;
+    }
+
+    public function __construct(array $value = [])
+    {
+        if (array_key_exists('dsn', $value)) {
+            $this->_usedProperties['dsn'] = true;
+            $this->dsn = $value['dsn'];
+            unset($value['dsn']);
+        }
+
+        if ([] !== $value) {
+            throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value)));
+        }
+    }
+
+    public function toArray(): array
+    {
+        $output = [];
+        if (isset($this->_usedProperties['dsn'])) {
+            $output['dsn'] = $this->dsn;
+        }
+
+        return $output;
+    }
+
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValuesConfig.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValuesConfig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValuesConfig.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues/Symfony/Config/ArrayValuesConfig.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,96 @@
+<?php
+
+namespace Symfony\Config;
+
+require_once __DIR__.\DIRECTORY_SEPARATOR.'ArrayValues'.\DIRECTORY_SEPARATOR.'TransportsConfig.php';
+require_once __DIR__.\DIRECTORY_SEPARATOR.'ArrayValues'.\DIRECTORY_SEPARATOR.'ErrorPagesConfig.php';
+
+use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
+
+/**
+ * This class is automatically generated to help in creating a config.
+ */
+class ArrayValuesConfig implements \Symfony\Component\Config\Builder\ConfigBuilderInterface
+{
+    private $transports;
+    private $errorPages;
+    private $_usedProperties = [];
+
+    /**
+     * @template TValue of string|array
+     * @param TValue $value
+     * @return \Symfony\Config\ArrayValues\TransportsConfig|$this
+     * @psalm-return (TValue is array ? \Symfony\Config\ArrayValues\TransportsConfig : static)
+     */
+    public function transports(string $name, string|array $value = []): \Symfony\Config\ArrayValues\TransportsConfig|static
+    {
+        if (!\is_array($value)) {
+            $this->_usedProperties['transports'] = true;
+            $this->transports[$name] = $value;
+
+            return $this;
+        }
+
+        if (!isset($this->transports[$name]) || !$this->transports[$name] instanceof \Symfony\Config\ArrayValues\TransportsConfig) {
+            $this->_usedProperties['transports'] = true;
+            $this->transports[$name] = new \Symfony\Config\ArrayValues\TransportsConfig($value);
+        } elseif (1 < \func_num_args()) {
+            throw new InvalidConfigurationException('The node created by "transports()" has already been initialized. You cannot pass values the second time you call transports().');
+        }
+
+        return $this->transports[$name];
+    }
+
+    /**
+     * @default {"enabled":false}
+    */
+    public function errorPages(array $value = []): \Symfony\Config\ArrayValues\ErrorPagesConfig
+    {
+        if (null === $this->errorPages) {
+            $this->_usedProperties['errorPages'] = true;
+            $this->errorPages = new \Symfony\Config\ArrayValues\ErrorPagesConfig($value);
+        } elseif (0 < \func_num_args()) {
+            throw new InvalidConfigurationException('The node created by "errorPages()" has already been initialized. You cannot pass values the second time you call errorPages().');
+        }
+
+        return $this->errorPages;
+    }
+
+    public function getExtensionAlias(): string
+    {
+        return 'array_values';
+    }
+
+    public function __construct(array $value = [])
+    {
+        if (array_key_exists('transports', $value)) {
+            $this->_usedProperties['transports'] = true;
+            $this->transports = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\ArrayValues\TransportsConfig($v) : $v, $value['transports']);
+            unset($value['transports']);
+        }
+
+        if (array_key_exists('error_pages', $value)) {
+            $this->_usedProperties['errorPages'] = true;
+            $this->errorPages = \is_array($value['error_pages']) ? new \Symfony\Config\ArrayValues\ErrorPagesConfig($value['error_pages']) : $value['error_pages'];
+            unset($value['error_pages']);
+        }
+
+        if ([] !== $value) {
+            throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value)));
+        }
+    }
+
+    public function toArray(): array
+    {
+        $output = [];
+        if (isset($this->_usedProperties['transports'])) {
+            $output['transports'] = array_map(fn ($v) => $v instanceof \Symfony\Config\ArrayValues\TransportsConfig ? $v->toArray() : $v, $this->transports);
+        }
+        if (isset($this->_usedProperties['errorPages'])) {
+            $output['error_pages'] = $this->errorPages instanceof \Symfony\Config\ArrayValues\ErrorPagesConfig ? $this->errorPages->toArray() : $this->errorPages;
+        }
+
+        return $output;
+    }
+
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.config.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.config.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.config.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.config.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,19 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Config\ArrayValuesConfig;
+
+return static function (ArrayValuesConfig $config) {
+    $config->transports('foo')->dsn('bar');
+    $config->transports('bar', ['dsn' => 'foobar']);
+
+    $config->errorPages()->withTrace(false);
+};
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.output.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.output.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.output.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.output.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,24 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+return [
+    'transports' => [
+        'foo' => [
+            'dsn' => 'bar',
+        ],
+        'bar' => [
+            'dsn' => 'foobar',
+        ],
+    ],
+    'error_pages' => [
+        'with_trace' => false,
+    ]
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ArrayValues.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,42 @@
+<?php
+
+namespace Symfony\Component\Config\Tests\Builder\Fixtures;
+
+use Symfony\Component\Config\Definition\Builder\TreeBuilder;
+use Symfony\Component\Config\Definition\ConfigurationInterface;
+
+class ArrayValues implements ConfigurationInterface
+{
+    public function getConfigTreeBuilder(): TreeBuilder
+    {
+        $tb = new TreeBuilder('array_values');
+        $rootNode = $tb->getRootNode();
+        $rootNode
+            ->children()
+                ->arrayNode('transports')
+                    ->normalizeKeys(false)
+                    ->useAttributeAsKey('name')
+                    ->arrayPrototype()
+                        ->beforeNormalization()
+                            ->ifString()
+                            ->then(function (string $dsn) {
+                                return ['dsn' => $dsn];
+                            })
+                        ->end()
+                        ->fixXmlConfig('option')
+                        ->children()
+                            ->scalarNode('dsn')->end()
+                        ->end()
+                    ->end()
+                ->end()
+                ->arrayNode('error_pages')
+                    ->canBeEnabled()
+                    ->children()
+                        ->booleanNode('with_trace')->end()
+                    ->end()
+                ->end()
+            ->end();
+
+        return $tb;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues/Symfony/Config/NodeInitialValues/Messenger/TransportsConfig.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues/Symfony/Config/NodeInitialValues/Messenger/TransportsConfig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues/Symfony/Config/NodeInitialValues/Messenger/TransportsConfig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues/Symfony/Config/NodeInitialValues/Messenger/TransportsConfig.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,9 @@
     private $_usedProperties = [];
 
     /**
+     * The DSN to use. This is a required option.
+     * The info is used to describe the DSN,
+     * it can be multi-line.
      * @default null
      * @param ParamConfigurator|mixed $value
      * @return $this
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,13 @@
                             ->arrayPrototype()
                                 ->fixXmlConfig('option')
                                 ->children()
-                                    ->scalarNode('dsn')->end()
+                                    ->scalarNode('dsn')
+                                        ->info(<<<'INFO'
+                                            The DSN to use. This is a required option.
+                                            The info is used to describe the DSN,
+                                            it can be multi-line.
+                                            INFO)
+                                        ->end()
                                     ->scalarNode('serializer')->defaultNull()->end()
                                     ->arrayNode('options')
                                         ->normalizeKeys(false)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ScalarNormalizedTypes/Symfony/Config/ScalarNormalizedTypes/NestedConfig.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ScalarNormalizedTypes/Symfony/Config/ScalarNormalizedTypes/NestedConfig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ScalarNormalizedTypes/Symfony/Config/ScalarNormalizedTypes/NestedConfig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ScalarNormalizedTypes/Symfony/Config/ScalarNormalizedTypes/NestedConfig.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,7 @@
     private $_usedProperties = [];
 
     /**
-     * @template TValue
+     * @template TValue of mixed
      * @param TValue $value
      * @default {"enabled":null}
      * @return \Symfony\Config\ScalarNormalizedTypes\Nested\NestedObjectConfig|$this
@@ -43,7 +43,7 @@
     }
 
     /**
-     * @template TValue
+     * @template TValue of mixed
      * @param TValue $value
      * @return \Symfony\Config\ScalarNormalizedTypes\Nested\NestedListObjectConfig|$this
      * @psalm-return (TValue is array ? \Symfony\Config\ScalarNormalizedTypes\Nested\NestedListObjectConfig : static)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ScalarNormalizedTypes/Symfony/Config/ScalarNormalizedTypesConfig.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ScalarNormalizedTypes/Symfony/Config/ScalarNormalizedTypesConfig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ScalarNormalizedTypes/Symfony/Config/ScalarNormalizedTypesConfig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/Fixtures/ScalarNormalizedTypes/Symfony/Config/ScalarNormalizedTypesConfig.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
     }
 
     /**
-     * @template TValue
+     * @template TValue of mixed
      * @param TValue $value
      * @default {"enabled":null}
      * @return \Symfony\Config\ScalarNormalizedTypes\ObjectConfig|$this
@@ -74,7 +74,7 @@
     }
 
     /**
-     * @template TValue
+     * @template TValue of mixed
      * @param TValue $value
      * @return \Symfony\Config\ScalarNormalizedTypes\ListObjectConfig|$this
      * @psalm-return (TValue is array ? \Symfony\Config\ScalarNormalizedTypes\ListObjectConfig : static)
@@ -92,7 +92,7 @@
     }
 
     /**
-     * @template TValue
+     * @template TValue of mixed
      * @param TValue $value
      * @return \Symfony\Config\ScalarNormalizedTypes\KeyedListObjectConfig|$this
      * @psalm-return (TValue is array ? \Symfony\Config\ScalarNormalizedTypes\KeyedListObjectConfig : static)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,6 +62,7 @@
             'AddToList' => 'add_to_list',
             'NodeInitialValues' => 'node_initial_values',
             'ArrayExtraKeys' => 'array_extra_keys',
+            'ArrayValues' => 'array_values',
         ];
 
         foreach ($array as $name => $alias) {
@@ -198,6 +199,8 @@
             }
             $currentFiles[substr($file->getPathname(), \strlen($current))] = $file->getPathname();
         }
+        ksort($expectedFiles);
+        ksort($currentFiles);
 
         $this->assertSame(array_keys($expectedFiles), array_keys($currentFiles));
         foreach ($expectedFiles as $fileName => $filePath) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/ArrayNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/ArrayNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/ArrayNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/ArrayNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -251,7 +251,7 @@
         $node->addChild($childNode);
 
         $deprecationTriggered = false;
-        $deprecationHandler = function ($level, $message, $file, $line) use (&$prevErrorHandler, &$deprecationTriggered) {
+        $deprecationHandler = static function ($level, $message, $file, $line) use (&$prevErrorHandler, &$deprecationTriggered) {
             if (\E_USER_DEPRECATED === $level) {
                 return $deprecationTriggered = true;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/BaseNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/BaseNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/BaseNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/BaseNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
         $constructorArgs[] = $params[0];
 
         if (isset($params[1])) {
-            $parent = $this->createMock(NodeInterface::class);
+            $parent = $this->createStub(NodeInterface::class);
             $parent->method('getPath')->willReturn($params[1]);
 
             $constructorArgs[] = $parent;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/BooleanNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/BooleanNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/BooleanNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/BooleanNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,6 @@
      */
     public function testNormalizeThrowsExceptionOnInvalidValues($value)
     {
-
         $node = new BooleanNode('test');
 
         $this->expectException(InvalidTypeException::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/Builder/ArrayNodeDefinitionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/Builder/ArrayNodeDefinitionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/Builder/ArrayNodeDefinitionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/Builder/ArrayNodeDefinitionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -239,7 +239,7 @@
             ->children()
                 ->scalarNode('value')
                     ->beforeNormalization()
-                        ->ifTrue(fn ($value) => empty($value))
+                        ->ifTrue(static fn ($value) => empty($value))
                         ->thenUnset()
                     ->end()
                 ->end()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/Builder/ExprBuilderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/Builder/ExprBuilderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/Builder/ExprBuilderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/Builder/ExprBuilderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,13 +37,13 @@
         $this->assertFinalizedValueIs('new_value', $test, ['key' => true]);
 
         $test = $this->getTestBuilder()
-            ->ifTrue(fn () => true)
+            ->ifTrue(static fn () => true)
             ->then($this->returnClosure('new_value'))
         ->end();
         $this->assertFinalizedValueIs('new_value', $test);
 
         $test = $this->getTestBuilder()
-            ->ifTrue(fn () => false)
+            ->ifTrue(static fn () => false)
             ->then($this->returnClosure('new_value'))
         ->end();
         $this->assertFinalizedValueIs('value', $test);
@@ -241,7 +241,7 @@
      */
     protected function returnClosure($val): \Closure
     {
-        return fn () => $val;
+        return static fn () => $val;
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/Dumper/XmlReferenceDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/Dumper/XmlReferenceDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/Dumper/XmlReferenceDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/Dumper/XmlReferenceDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,84 +36,84 @@
     private function getConfigurationAsString()
     {
         return str_replace("\n", \PHP_EOL, <<<'EOL'
-<!-- Namespace: http://example.org/schema/dic/acme_root -->
-<!-- scalar-required: Required -->
-<!-- scalar-deprecated: Deprecated (Since vendor/package 1.1: The child node "scalar_deprecated" at path "acme_root" is deprecated.) -->
-<!-- scalar-deprecated-with-message: Deprecated (Since vendor/package 1.1: Deprecation custom message for "scalar_deprecated_with_message" at "acme_root") -->
-<!-- enum-with-default: One of "this"; "that" -->
-<!-- enum: One of "this"; "that"; Symfony\Component\Config\Tests\Fixtures\TestEnum::Ccc -->
-<!-- variable: Example: foo, bar -->
-<config
-    boolean="true"
-    scalar-empty=""
-    scalar-null="null"
-    scalar-true="true"
-    scalar-false="false"
-    scalar-default="default"
-    scalar-array-empty=""
-    scalar-array-defaults="elem1,elem2"
-    scalar-required=""
-    scalar-deprecated=""
-    scalar-deprecated-with-message=""
-    node-with-a-looong-name=""
-    enum-with-default="this"
-    enum=""
-    variable=""
-    custom-node="true"
->
-
-    <!-- some info -->
-    <!--
-        child3: this is a long
-                multi-line info text
-                which should be indented;
-                Example: example setting
-    -->
-    <array
-        child1=""
-        child2=""
-        child3=""
-    />
-
-    <!-- prototype -->
-    <scalar-prototyped>scalar value</scalar-prototyped>
-
-    <!-- prototype: Parameter name -->
-    <parameter name="parameter name">scalar value</parameter>
-
-    <!-- prototype -->
-    <connection
-        user=""
-        pass=""
-    />
-
-    <!-- prototype -->
-    <cms-page page="cms page page">
-
-        <!-- prototype -->
-        <!-- title: Required -->
-        <!-- path: Required -->
-        <page
-            locale="page locale"
-            title=""
-            path=""
-        />
-
-    </cms-page>
-
-    <!-- prototype -->
-    <pipou name="pipou name">
-
-        <!-- prototype -->
-        <name didou="" />
+            <!-- Namespace: http://example.org/schema/dic/acme_root -->
+            <!-- scalar-required: Required -->
+            <!-- scalar-deprecated: Deprecated (Since vendor/package 1.1: The child node "scalar_deprecated" at path "acme_root" is deprecated.) -->
+            <!-- scalar-deprecated-with-message: Deprecated (Since vendor/package 1.1: Deprecation custom message for "scalar_deprecated_with_message" at "acme_root") -->
+            <!-- enum-with-default: One of "this"; "that" -->
+            <!-- enum: One of "this"; "that"; Symfony\Component\Config\Tests\Fixtures\TestEnum::Ccc -->
+            <!-- variable: Example: foo, bar -->
+            <config
+                boolean="true"
+                scalar-empty=""
+                scalar-null="null"
+                scalar-true="true"
+                scalar-false="false"
+                scalar-default="default"
+                scalar-array-empty=""
+                scalar-array-defaults="elem1,elem2"
+                scalar-required=""
+                scalar-deprecated=""
+                scalar-deprecated-with-message=""
+                node-with-a-looong-name=""
+                enum-with-default="this"
+                enum=""
+                variable=""
+                custom-node="true"
+            >
+
+                <!-- some info -->
+                <!--
+                    child3: this is a long
+                            multi-line info text
+                            which should be indented;
+                            Example: example setting
+                -->
+                <array
+                    child1=""
+                    child2=""
+                    child3=""
+                />
+
+                <!-- prototype -->
+                <scalar-prototyped>scalar value</scalar-prototyped>
+
+                <!-- prototype: Parameter name -->
+                <parameter name="parameter name">scalar value</parameter>
+
+                <!-- prototype -->
+                <connection
+                    user=""
+                    pass=""
+                />
+
+                <!-- prototype -->
+                <cms-page page="cms page page">
+
+                    <!-- prototype -->
+                    <!-- title: Required -->
+                    <!-- path: Required -->
+                    <page
+                        locale="page locale"
+                        title=""
+                        path=""
+                    />
+
+                </cms-page>
+
+                <!-- prototype -->
+                <pipou name="pipou name">
+
+                    <!-- prototype -->
+                    <name didou="" />
 
-    </pipou>
+                </pipou>
 
-    <array-with-array-example-and-no-default-value />
+                <array-with-array-example-and-no-default-value />
 
-</config>
+            </config>
 
-EOL
+            EOL
         );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/Dumper/YamlReferenceDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/Dumper/YamlReferenceDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/Dumper/YamlReferenceDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/Dumper/YamlReferenceDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,41 +30,41 @@
     {
         return [
             'Regular node' => ['scalar_true', <<<EOL
-scalar_true:          true
-EOL
+                scalar_true:          true
+                EOL
             ],
             'Array node' => ['array', <<<EOL
-# some info
-array:
-    child1:               ~
-    child2:               ~
-
-    # this is a long
-    # multi-line info text
-    # which should be indented
-    child3:               ~ # Example: 'example setting'
-EOL
+                # some info
+                array:
+                    child1:               ~
+                    child2:               ~
+
+                    # this is a long
+                    # multi-line info text
+                    # which should be indented
+                    child3:               ~ # Example: 'example setting'
+                EOL
             ],
             'Regular nested' => ['array.child2', <<<EOL
-child2:               ~
-EOL
+                child2:               ~
+                EOL
             ],
             'Prototype' => ['cms_pages.page', <<<EOL
-# Prototype
-page:
+                # Prototype
+                page:
 
-    # Prototype
-    locale:
-        title:                ~ # Required
-        path:                 ~ # Required
-EOL
+                    # Prototype
+                    locale:
+                        title:                ~ # Required
+                        path:                 ~ # Required
+                EOL
             ],
             'Nested prototype' => ['cms_pages.page.locale', <<<EOL
-# Prototype
-locale:
-    title:                ~ # Required
-    path:                 ~ # Required
-EOL
+                # Prototype
+                locale:
+                    title:                ~ # Required
+                    path:                 ~ # Required
+                EOL
             ],
         ];
     }
@@ -84,71 +84,71 @@
     private function getConfigurationAsString(): string
     {
         return <<<'EOL'
-acme_root:
-    boolean:              true
-    scalar_empty:         ~
-    scalar_null:          null
-    scalar_true:          true
-    scalar_false:         false
-    scalar_default:       default
-    scalar_array_empty:   []
-    scalar_array_defaults:
-
-        # Defaults:
-        - elem1
-        - elem2
-    scalar_required:      ~ # Required
-    scalar_deprecated:    ~ # Deprecated (Since vendor/package 1.1: The child node "scalar_deprecated" at path "acme_root" is deprecated.)
-    scalar_deprecated_with_message: ~ # Deprecated (Since vendor/package 1.1: Deprecation custom message for "scalar_deprecated_with_message" at "acme_root")
-    node_with_a_looong_name: ~
-    enum_with_default:    this # One of "this"; "that"
-    enum:                 ~ # One of "this"; "that"; Symfony\Component\Config\Tests\Fixtures\TestEnum::Ccc
-
-    # some info
-    array:
-        child1:               ~
-        child2:               ~
-
-        # this is a long
-        # multi-line info text
-        # which should be indented
-        child3:               ~ # Example: 'example setting'
-    scalar_prototyped:    []
-    variable:             ~
-
-        # Examples:
-        # - foo
-        # - bar
-    parameters:
-
-        # Prototype: Parameter name
-        name:                 ~
-    connections:
-
-        # Prototype
-        -
-            user:                 ~
-            pass:                 ~
-    cms_pages:
-
-        # Prototype
-        page:
-
-            # Prototype
-            locale:
-                title:                ~ # Required
-                path:                 ~ # Required
-    pipou:
-
-        # Prototype
-        name:                 []
-    array_with_array_example_and_no_default_value: []
-
-        # Examples:
-        # - foo
-        # - bar
-    custom_node:          true
+            acme_root:
+                boolean:              true
+                scalar_empty:         ~
+                scalar_null:          null
+                scalar_true:          true
+                scalar_false:         false
+                scalar_default:       default
+                scalar_array_empty:   []
+                scalar_array_defaults:
+
+                    # Defaults:
+                    - elem1
+                    - elem2
+                scalar_required:      ~ # Required
+                scalar_deprecated:    ~ # Deprecated (Since vendor/package 1.1: The child node "scalar_deprecated" at path "acme_root" is deprecated.)
+                scalar_deprecated_with_message: ~ # Deprecated (Since vendor/package 1.1: Deprecation custom message for "scalar_deprecated_with_message" at "acme_root")
+                node_with_a_looong_name: ~
+                enum_with_default:    this # One of "this"; "that"
+                enum:                 ~ # One of "this"; "that"; Symfony\Component\Config\Tests\Fixtures\TestEnum::Ccc
+
+                # some info
+                array:
+                    child1:               ~
+                    child2:               ~
+
+                    # this is a long
+                    # multi-line info text
+                    # which should be indented
+                    child3:               ~ # Example: 'example setting'
+                scalar_prototyped:    []
+                variable:             ~
+
+                    # Examples:
+                    # - foo
+                    # - bar
+                parameters:
+
+                    # Prototype: Parameter name
+                    name:                 ~
+                connections:
+
+                    # Prototype
+                    -
+                        user:                 ~
+                        pass:                 ~
+                cms_pages:
+
+                    # Prototype
+                    page:
+
+                        # Prototype
+                        locale:
+                            title:                ~ # Required
+                            path:                 ~ # Required
+                pipou:
+
+                    # Prototype
+                    name:                 []
+                array_with_array_example_and_no_default_value: []
+
+                    # Examples:
+                    # - foo
+                    # - bar
+                custom_node:          true
 
-EOL;
+            EOL;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/FloatNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/FloatNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/FloatNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/FloatNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Config\Definition\Exception\InvalidTypeException;
 use Symfony\Component\Config\Definition\FloatNode;
+use Symfony\Component\Config\Definition\NumericNode;
 
 class FloatNodeTest extends TestCase
 {
@@ -76,4 +77,16 @@
             [new \stdClass()],
         ];
     }
+
+    public function testFinalizeAcceptsEnvPlaceholderBelowMin()
+    {
+        $node = new FloatNode('multiplier', null, 1);
+        NumericNode::setPlaceholder('env_FOO', ['float' => 0.0]);
+
+        try {
+            $this->assertSame('env_FOO', $node->finalize('env_FOO'));
+        } finally {
+            NumericNode::resetPlaceholders();
+        }
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/IntegerNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/IntegerNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/IntegerNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/IntegerNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Config\Definition\Exception\InvalidTypeException;
 use Symfony\Component\Config\Definition\IntegerNode;
+use Symfony\Component\Config\Definition\NumericNode;
 
 class IntegerNodeTest extends TestCase
 {
@@ -73,4 +74,16 @@
             [new \stdClass()],
         ];
     }
+
+    public function testFinalizeAcceptsEnvPlaceholderBelowMin()
+    {
+        $node = new IntegerNode('max_retries', null, 1);
+        NumericNode::setPlaceholder('env_BAR', ['int' => 0]);
+
+        try {
+            $this->assertSame('env_BAR', $node->finalize('env_BAR'));
+        } finally {
+            NumericNode::resetPlaceholders();
+        }
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/NormalizationTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/NormalizationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/NormalizationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/NormalizationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
                     ->node('encoders', 'array')
                         ->useAttributeAsKey('class')
                         ->prototype('array')
-                            ->beforeNormalization()->ifString()->then(fn ($v) => ['algorithm' => $v])->end()
+                            ->beforeNormalization()->ifString()->then(static fn ($v) => ['algorithm' => $v])->end()
                             ->children()
                                 ->node('algorithm', 'scalar')->end()
                             ->end()
@@ -88,7 +88,7 @@
             ],
         ];
 
-        return array_map(fn ($v) => [$v], $configs);
+        return array_map(static fn ($v) => [$v], $configs);
     }
 
     /**
@@ -134,7 +134,7 @@
             ],
         ];
 
-        return array_map(fn ($v) => [$v], $configs);
+        return array_map(static fn ($v) => [$v], $configs);
     }
 
     /**
@@ -165,7 +165,7 @@
             ],
         ];
 
-        return array_map(fn ($v) => [$v], $configs);
+        return array_map(static fn ($v) => [$v], $configs);
     }
 
     public function testNonAssociativeArrayThrowsExceptionIfAttributeNotSet()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/PrototypedArrayNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/PrototypedArrayNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/PrototypedArrayNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/PrototypedArrayNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -291,51 +291,51 @@
         $variableValue = new VariableNode('value');
 
         return [
-           [
-               $scalarValue,
-               [
-                   ['id' => 'option1', 'value' => 'value1'],
-               ],
-               ['option1' => 'value1'],
-           ],
+            [
+                $scalarValue,
+                [
+                    ['id' => 'option1', 'value' => 'value1'],
+                ],
+                ['option1' => 'value1'],
+            ],
 
-           [
-               $scalarValue,
-               [
-                   ['id' => 'option1', 'value' => 'value1'],
-                   ['id' => 'option2', 'value' => 'value2', 'foo' => 'foo2'],
-               ],
-               [
-                   'option1' => 'value1',
-                   'option2' => ['value' => 'value2', 'foo' => 'foo2'],
-               ],
-           ],
+            [
+                $scalarValue,
+                [
+                    ['id' => 'option1', 'value' => 'value1'],
+                    ['id' => 'option2', 'value' => 'value2', 'foo' => 'foo2'],
+                ],
+                [
+                    'option1' => 'value1',
+                    'option2' => ['value' => 'value2', 'foo' => 'foo2'],
+                ],
+            ],
 
-           [
-               $arrayValue,
-               [
-                   [
-                       'id' => 'option1',
-                       'value' => ['foo' => 'foo1', 'bar' => 'bar1'],
-                   ],
-               ],
-               [
-                   'option1' => ['foo' => 'foo1', 'bar' => 'bar1'],
-               ],
-           ],
+            [
+                $arrayValue,
+                [
+                    [
+                        'id' => 'option1',
+                        'value' => ['foo' => 'foo1', 'bar' => 'bar1'],
+                    ],
+                ],
+                [
+                    'option1' => ['foo' => 'foo1', 'bar' => 'bar1'],
+                ],
+            ],
 
-           [$variableValue,
-               [
-                   [
-                       'id' => 'option1', 'value' => ['foo' => 'foo1', 'bar' => 'bar1'],
-                   ],
-                   ['id' => 'option2', 'value' => 'value2'],
-               ],
-               [
-                   'option1' => ['foo' => 'foo1', 'bar' => 'bar1'],
-                   'option2' => 'value2',
-               ],
-           ],
+            [$variableValue,
+                [
+                    [
+                        'id' => 'option1', 'value' => ['foo' => 'foo1', 'bar' => 'bar1'],
+                    ],
+                    ['id' => 'option2', 'value' => 'value2'],
+                ],
+                [
+                    'option1' => ['foo' => 'foo1', 'bar' => 'bar1'],
+                    'option2' => 'value2',
+                ],
+            ],
         ];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/ScalarNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/ScalarNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Definition/ScalarNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Definition/ScalarNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,7 @@
         $node->addChild($childNode);
 
         $deprecationTriggered = 0;
-        $deprecationHandler = function ($level, $message, $file, $line) use (&$prevErrorHandler, &$deprecationTriggered) {
+        $deprecationHandler = static function ($level, $message, $file, $line) use (&$prevErrorHandler, &$deprecationTriggered) {
             if (\E_USER_DEPRECATED === $level) {
                 return ++$deprecationTriggered;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Loader/FileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Loader/FileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Loader/FileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Loader/FileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,10 +22,8 @@
 {
     public function testImportWithFileLocatorDelegation()
     {
-        $locatorMock = $this->createMock(FileLocatorInterface::class);
-
-        $locatorMockForAdditionalLoader = $this->createMock(FileLocatorInterface::class);
-        $locatorMockForAdditionalLoader->expects($this->any())
+        $locatorMockForAdditionalLoader = $this->createStub(FileLocatorInterface::class);
+        $locatorMockForAdditionalLoader
             ->method('locate')
             ->willReturn(
                 ['path/to/file1'],
@@ -35,7 +33,7 @@
                 ['path/to/file1', 'path/to/file2']
             );
 
-        $fileLoader = new TestFileLoader($locatorMock);
+        $fileLoader = new TestFileLoader(new FileLocator());
         $fileLoader->setSupports(false);
         $fileLoader->setCurrentDir('.');
 
@@ -92,16 +90,14 @@
 
     public function testImportWithGlobLikeResourceWhichContainsMultipleLines()
     {
-        $locatorMock = $this->createMock(FileLocatorInterface::class);
-        $loader = new TestFileLoader($locatorMock);
+        $loader = new TestFileLoader(new FileLocator());
 
         $this->assertSame("foo\nfoobar[foo]", $loader->import("foo\nfoobar[foo]"));
     }
 
     public function testImportWithGlobLikeResourceWhichContainsSlashesAndMultipleLines()
     {
-        $locatorMock = $this->createMock(FileLocatorInterface::class);
-        $loader = new TestFileLoader($locatorMock);
+        $loader = new TestFileLoader(new FileLocator());
 
         $this->assertSame("foo\nfoo/bar[foo]", $loader->import("foo\nfoo/bar[foo]"));
     }
@@ -122,11 +118,14 @@
         $this->assertSame(__FILE__, strtr($loader->import('FileLoaderTest.*'), '/', \DIRECTORY_SEPARATOR));
     }
 
-    public function testImportWithExclude()
+    /**
+     * @dataProvider importWithExcludeProvider
+     */
+    public function testImportWithExclude(string $include, string $exclude, int $expectedCount)
     {
         $loader = new TestFileLoader(new FileLocator(__DIR__.'/../Fixtures'));
-        $loadedFiles = $loader->import('Include/*', null, false, null, __DIR__.'/../Fixtures/Include/{ExcludeFile.txt}');
-        $this->assertCount(2, $loadedFiles);
+        $loadedFiles = $loader->import($include, null, false, null, $exclude);
+        $this->assertCount($expectedCount, $loadedFiles);
         $this->assertNotContains('ExcludeFile.txt', $loadedFiles);
     }
 
@@ -141,6 +140,24 @@
         $this->assertNotContains('baz.txt', $loadedFiles);
     }
 
+    public static function importWithExcludeProvider(): iterable
+    {
+        yield ['Include/*', __DIR__.'/../Fixtures/Include/{ExcludeFile.txt}', 2];
+        yield ['Include/', __DIR__.'/../Fixtures/Include/{ExcludeFile.txt}', 4];
+        yield ['Include', __DIR__.'/../Fixtures/Include/{ExcludeFile.txt}', 4];
+        yield ['Include/**/*', __DIR__.'/../Fixtures/Include/{ExcludeFile.txt}', 4];
+        yield ['Include/*', __DIR__.'/../Fixtures/Include/{Exclude*.txt}', 2];
+        yield ['Include/', __DIR__.'/../Fixtures/Include/{Exclude*.txt}', 4];
+        yield ['Include', __DIR__.'/../Fixtures/Include/{Exclude*.txt}', 4];
+        yield ['Include/**/*', __DIR__.'/../Fixtures/Include/{Exclude*.txt}', 4];
+        yield ['Include/', __DIR__.'/../Fixtures/Include/**/{ExcludeFile.txt}', 3];
+        yield ['Include', __DIR__.'/../Fixtures/Include/**/{ExcludeFile.txt}', 3];
+        yield ['Include/**/*', __DIR__.'/../Fixtures/Include/**/{ExcludeFile.txt}', 3];
+        yield ['Include/', __DIR__.'/../Fixtures/Include/**/{Exclude*.txt}', 3];
+        yield ['Include', __DIR__.'/../Fixtures/Include/**/{Exclude*.txt}', 3];
+        yield ['Include/**/*', __DIR__.'/../Fixtures/Include/**/{Exclude*.txt}', 3];
+    }
+
     public static function excludeTrailingSlashConsistencyProvider(): iterable
     {
         yield [__DIR__.'/../Fixtures/Exclude/ExcludeToo/'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Loader/LoaderResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Loader/LoaderResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Loader/LoaderResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Loader/LoaderResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
     public function testConstructor()
     {
         $resolver = new LoaderResolver([
-            $loader = $this->createMock(LoaderInterface::class),
+            $loader = $this->createStub(LoaderInterface::class),
         ]);
 
         $this->assertEquals([$loader], $resolver->getLoaders(), '__construct() takes an array of loaders as its first argument');
@@ -28,20 +28,20 @@
 
     public function testResolve()
     {
-        $loader = $this->createMock(LoaderInterface::class);
+        $loader = $this->createStub(LoaderInterface::class);
         $resolver = new LoaderResolver([$loader]);
         $this->assertFalse($resolver->resolve('foo.foo'), '->resolve() returns false if no loader is able to load the resource');
 
         $loader = $this->createMock(LoaderInterface::class);
         $loader->expects($this->once())->method('supports')->willReturn(true);
         $resolver = new LoaderResolver([$loader]);
-        $this->assertEquals($loader, $resolver->resolve(function () {}), '->resolve() returns the loader for the given resource');
+        $this->assertEquals($loader, $resolver->resolve(static function () {}), '->resolve() returns the loader for the given resource');
     }
 
     public function testLoaders()
     {
         $resolver = new LoaderResolver();
-        $resolver->addLoader($loader = $this->createMock(LoaderInterface::class));
+        $resolver->addLoader($loader = $this->createStub(LoaderInterface::class));
 
         $this->assertEquals([$loader], $resolver->getLoaders(), 'addLoader() adds a loader');
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Loader/LoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Loader/LoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Loader/LoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Loader/LoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,13 +15,14 @@
 use Symfony\Component\Config\Exception\LoaderLoadException;
 use Symfony\Component\Config\Loader\Loader;
 use Symfony\Component\Config\Loader\LoaderInterface;
+use Symfony\Component\Config\Loader\LoaderResolver;
 use Symfony\Component\Config\Loader\LoaderResolverInterface;
 
 class LoaderTest extends TestCase
 {
     public function testGetSetResolver()
     {
-        $resolver = $this->createMock(LoaderResolverInterface::class);
+        $resolver = new LoaderResolver([]);
 
         $loader = new ProjectLoader1();
         $loader->setResolver($resolver);
@@ -31,7 +32,7 @@
 
     public function testResolve()
     {
-        $resolvedLoader = $this->createMock(LoaderInterface::class);
+        $resolvedLoader = $this->createStub(LoaderInterface::class);
 
         $resolver = $this->createMock(LoaderResolverInterface::class);
         $resolver->expects($this->once())
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Resource/ClassExistenceResourceTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Resource/ClassExistenceResourceTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Resource/ClassExistenceResourceTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Resource/ClassExistenceResourceTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,12 +39,12 @@
         $this->assertTrue($res->isFresh(time()));
 
         eval(<<<EOF
-namespace Symfony\Component\Config\Tests\Fixtures;
+            namespace Symfony\Component\Config\Tests\Fixtures;
 
-class BarClass
-{
-}
-EOF
+            class BarClass
+            {
+            }
+            EOF
         );
 
         $this->assertFalse($res->isFresh(time()));
@@ -59,7 +59,7 @@
 
     public function testExistsKo()
     {
-        spl_autoload_register($autoloader = function ($class) use (&$loadedClass) { $loadedClass = $class; });
+        spl_autoload_register($autoloader = static function ($class) use (&$loadedClass) { $loadedClass = $class; });
 
         try {
             $res = new ClassExistenceResource('MissingFooClass');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Resource/DirectoryResourceTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Resource/DirectoryResourceTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Resource/DirectoryResourceTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Resource/DirectoryResourceTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
     {
         $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionMessageMatches('/The directory ".*" does not exist./');
-        new DirectoryResource('/____foo/foobar'.mt_rand(1, 999999));
+        new DirectoryResource('/____foo/foobar'.random_int(1, 999999));
     }
 
     public function testIsFresh()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
     {
         $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionMessageMatches('/The file ".*" does not exist./');
-        new FileResource('/____foo/foobar'.mt_rand(1, 999999));
+        new FileResource('/____foo/foobar'.random_int(1, 999999));
     }
 
     public function testIsFresh()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Resource/GlobResourceTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Resource/GlobResourceTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Resource/GlobResourceTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Resource/GlobResourceTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,10 +25,15 @@
         touch($dir.'/Resource/.hiddenFile');
     }
 
-    public function testIterator()
+    /**
+     * @testWith ["/Resource"]
+     *           ["/**\/Resource"]
+     *           ["/**\/Resource/"]
+     */
+    public function testIterator(string $pattern)
     {
         $dir = \dirname(__DIR__).\DIRECTORY_SEPARATOR.'Fixtures';
-        $resource = new GlobResource($dir, '/Resource', true);
+        $resource = new GlobResource($dir, $pattern, true);
 
         $paths = iterator_to_array($resource);
 
@@ -36,15 +41,6 @@
         $this->assertEquals([$file => new \SplFileInfo($file)], $paths);
         $this->assertInstanceOf(\SplFileInfo::class, current($paths));
         $this->assertSame($dir, $resource->getPrefix());
-
-        $resource = new GlobResource($dir, '/**/Resource', true);
-
-        $paths = iterator_to_array($resource);
-
-        $file = $dir.'/Resource'.\DIRECTORY_SEPARATOR.'ConditionalClass.php';
-        $this->assertEquals([$file => $file], $paths);
-        $this->assertInstanceOf(\SplFileInfo::class, current($paths));
-        $this->assertSame($dir, $resource->getPrefix());
     }
 
     public function testIteratorForExclusionDoesntIterateThroughSubfolders()
@@ -177,6 +173,8 @@
         $expected = [
             $dir.'/Exclude/ExcludeToo/AnotheExcludedFile.txt',
             $dir.'/ExcludeTrailingSlash/exclude/baz.txt',
+            $dir.'/Include/SubDir/ExcludeFile.txt',
+            $dir.'/Include/SubDir/IncludeFile.txt',
             $dir.'/foo.xml',
         ];
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Resource/ReflectionClassResourceTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Resource/ReflectionClassResourceTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Resource/ReflectionClassResourceTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Resource/ReflectionClassResourceTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -71,31 +71,31 @@
         }
 
         $code = <<<'EOPHP'
-/* 0*/
-/* 1*/  class %s extends ErrorException
-/* 2*/  {
-/* 3*/      const FOO = 123;
-/* 4*/
-/* 5*/      public $pub = [];
-/* 6*/
-/* 7*/      protected $prot;
-/* 8*/
-/* 9*/      private $priv;
-/*10*/
-/*11*/      public function pub($arg = null) {}
-/*12*/
-/*13*/      protected function prot($a = []) {}
-/*14*/
-/*15*/      private function priv() {}
-/*16*/
-/*17*/      public function ccc($bar = A_CONSTANT_THAT_FOR_SURE_WILL_NEVER_BE_DEFINED_CCCCCC) {}
-/*18*/  }
-EOPHP;
+            /* 0*/
+            /* 1*/  class %s extends ErrorException
+            /* 2*/  {
+            /* 3*/      const FOO = 123;
+            /* 4*/
+            /* 5*/      public $pub = [];
+            /* 6*/
+            /* 7*/      protected $prot;
+            /* 8*/
+            /* 9*/      private $priv;
+            /*10*/
+            /*11*/      public function pub($arg = null) {}
+            /*12*/
+            /*13*/      protected function prot($a = []) {}
+            /*14*/
+            /*15*/      private function priv() {}
+            /*16*/
+            /*17*/      public function ccc($bar = A_CONSTANT_THAT_FOR_SURE_WILL_NEVER_BE_DEFINED_CCCCCC) {}
+            /*18*/  }
+            EOPHP;
 
         static $expectedSignature, $generateSignature;
 
         if (null === $expectedSignature) {
-            eval(sprintf($code, $class = 'Foo'.str_replace('.', '_', uniqid('', true))));
+            eval(\sprintf($code, $class = 'Foo'.str_replace('.', '_', uniqid('', true))));
             $r = new \ReflectionClass(ReflectionClassResource::class);
             $generateSignature = $r->getMethod('generateSignature');
             $generateSignature = $generateSignature->getClosure($r->newInstanceWithoutConstructor());
@@ -106,7 +106,7 @@
         if (null !== $changedCode) {
             $code[$changedLine] = $changedCode;
         }
-        eval(sprintf(implode("\n", $code), $class = 'Foo'.str_replace('.', '_', uniqid('', true))));
+        eval(\sprintf(implode("\n", $code), $class = 'Foo'.str_replace('.', '_', uniqid('', true))));
         $signature = implode("\n", iterator_to_array($generateSignature(new \ReflectionClass($class))));
 
         if ($changeExpected) {
@@ -216,6 +216,30 @@
         TestServiceWithStaticProperty::$initializedObject = new TestServiceWithStaticProperty();
         $this->assertTrue($res->isFresh(0));
     }
+
+    public function testEnum()
+    {
+        $res = new ReflectionClassResource($enum = new \ReflectionClass(SomeEnum::class));
+        $r = new \ReflectionClass(ReflectionClassResource::class);
+        $generateSignature = $r->getMethod('generateSignature')->getClosure($res);
+        $actual = implode("\n", iterator_to_array($generateSignature($enum)));
+        $this->assertStringContainsString('UnitEnum', $actual);
+        $this->assertStringContainsString('TestAttribute', $actual);
+        $this->assertStringContainsString('Beta', $actual);
+    }
+
+    public function testBackedEnum()
+    {
+        $res = new ReflectionClassResource($enum = new \ReflectionClass(SomeBackedEnum::class));
+        $r = new \ReflectionClass(ReflectionClassResource::class);
+        $generateSignature = $r->getMethod('generateSignature')->getClosure($res);
+        $actual = implode("\n", iterator_to_array($generateSignature($enum)));
+        $this->assertStringContainsString('UnitEnum', $actual);
+        $this->assertStringContainsString('BackedEnum', $actual);
+        $this->assertStringContainsString('TestAttribute', $actual);
+        $this->assertStringContainsString('Beta', $actual);
+        $this->assertStringContainsString('beta', $actual);
+    }
 }
 
 interface DummyInterface
@@ -262,3 +286,19 @@
 {
     public static object $initializedObject;
 }
+
+enum SomeEnum
+{
+    case Alpha;
+
+    #[TestAttribute]
+    case Beta;
+}
+
+enum SomeBackedEnum: string
+{
+    case Alpha = 'alpha';
+
+    #[TestAttribute]
+    case Beta = 'beta';
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -119,7 +119,7 @@
 
     public function testCacheIsNotFreshWhenUnserializeFails()
     {
-        $checker = $this->createMock(ResourceCheckerInterface::class);
+        $checker = $this->createStub(ResourceCheckerInterface::class);
         $cache = new ResourceCheckerConfigCache($this->cacheFile, [$checker]);
         $cache->write('foo', [new FileResource(__FILE__)]);
 
@@ -139,7 +139,7 @@
 
     public function testCacheIsNotFreshIfNotExistsMetaFile()
     {
-        $checker = $this->createMock(ResourceCheckerInterface::class);
+        $checker = $this->createStub(ResourceCheckerInterface::class);
         $cache = new ResourceCheckerConfigCache($this->cacheFile, [$checker]);
         $cache->write('foo', [new FileResource(__FILE__)]);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Util/XmlUtilsTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Util/XmlUtilsTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Tests/Util/XmlUtilsTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Tests/Util/XmlUtilsTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,11 +39,11 @@
             if ('\\' === \DIRECTORY_SEPARATOR) {
                 $this->markTestSkipped('chmod is not supported on Windows');
             }
-            chmod($fixtures.'not_readable.xml', 000);
+            chmod($fixtures.'not_readable.xml', 0o00);
             XmlUtils::loadFile($fixtures.'not_readable.xml');
             $this->fail();
         } catch (\InvalidArgumentException $e) {
-            chmod($fixtures.'not_readable.xml', 0644);
+            chmod($fixtures.'not_readable.xml', 0o644);
             $this->assertStringContainsString('is not readable', $e->getMessage());
         }
 
@@ -170,7 +170,7 @@
             [0, '0'],
             [1, '1'],
             [-1, '-1'],
-            [0777, '0777'],
+            [0o777, '0777'],
             [-511, '-0777'],
             ['0877', '0877'],
             [255, '0xFF'],
@@ -196,7 +196,7 @@
         $file = __DIR__.'/../Fixtures/foo.xml';
 
         $this->expectException(\InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('File "%s" does not contain valid XML, it is empty.', $file));
+        $this->expectExceptionMessage(\sprintf('File "%s" does not contain valid XML, it is empty.', $file));
 
         XmlUtils::loadFile($file);
     }
@@ -206,7 +206,7 @@
     {
         $errorReporting = error_reporting(-1);
 
-        set_error_handler(function ($errno, $errstr) {
+        set_error_handler(static function ($errno, $errstr) {
             throw new \Exception($errstr, $errno);
         });
 
@@ -216,7 +216,7 @@
                 XmlUtils::loadFile($file);
                 $this->fail('An exception should have been raised');
             } catch (\InvalidArgumentException $e) {
-                $this->assertEquals(sprintf('File "%s" does not contain valid XML, it is empty.', $file), $e->getMessage());
+                $this->assertEquals(\sprintf('File "%s" does not contain valid XML, it is empty.', $file), $e->getMessage());
             }
         } finally {
             restore_error_handler();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Config/Util/XmlUtils.php symfony-6.4.40+dfsg/src/Symfony/Component/Config/Util/XmlUtils.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Config/Util/XmlUtils.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Config/Util/XmlUtils.php	2026-05-20 10:56:49.000000000 +0200
@@ -84,7 +84,7 @@
             } else {
                 libxml_use_internal_errors($internalErrors);
 
-                throw new XmlParsingException(sprintf('Invalid XSD file: "%s".', $schemaOrCallable));
+                throw new XmlParsingException(\sprintf('Invalid XSD file: "%s".', $schemaOrCallable));
             }
 
             if (!$valid) {
@@ -115,23 +115,23 @@
     public static function loadFile(string $file, string|callable|null $schemaOrCallable = null): \DOMDocument
     {
         if (!is_file($file)) {
-            throw new \InvalidArgumentException(sprintf('Resource "%s" is not a file.', $file));
+            throw new \InvalidArgumentException(\sprintf('Resource "%s" is not a file.', $file));
         }
 
         if (!is_readable($file)) {
-            throw new \InvalidArgumentException(sprintf('File "%s" is not readable.', $file));
+            throw new \InvalidArgumentException(\sprintf('File "%s" is not readable.', $file));
         }
 
         $content = @file_get_contents($file);
 
         if ('' === trim($content)) {
-            throw new \InvalidArgumentException(sprintf('File "%s" does not contain valid XML, it is empty.', $file));
+            throw new \InvalidArgumentException(\sprintf('File "%s" does not contain valid XML, it is empty.', $file));
         }
 
         try {
             return static::parse($content, $schemaOrCallable);
         } catch (InvalidXmlException $e) {
-            throw new XmlParsingException(sprintf('The XML file "%s" is not valid.', $file), 0, $e->getPrevious());
+            throw new XmlParsingException(\sprintf('The XML file "%s" is not valid.', $file), 0, $e->getPrevious());
         }
     }
 
@@ -245,7 +245,7 @@
     {
         $errors = [];
         foreach (libxml_get_errors() as $error) {
-            $errors[] = sprintf('[%s %s] %s (in %s - line %d, column %d)',
+            $errors[] = \sprintf('[%s %s] %s (in %s - line %d, column %d)',
                 \LIBXML_ERR_WARNING == $error->level ? 'WARNING' : 'ERROR',
                 $error->code,
                 trim($error->message),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Application.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Application.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Application.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Application.php	2026-05-20 10:56:49.000000000 +0200
@@ -270,9 +270,9 @@
 
                 $style = new SymfonyStyle($input, $output);
                 $output->writeln('');
-                $formattedBlock = (new FormatterHelper())->formatBlock(sprintf('Command "%s" is not defined.', $name), 'error', true);
+                $formattedBlock = (new FormatterHelper())->formatBlock(\sprintf('Command "%s" is not defined.', $name), 'error', true);
                 $output->writeln($formattedBlock);
-                if (!$style->confirm(sprintf('Do you want to run "%s" instead? ', $alternative), false)) {
+                if (!$style->confirm(\sprintf('Do you want to run "%s" instead? ', $alternative), false)) {
                     if (null !== $this->dispatcher) {
                         $event = new ConsoleErrorEvent($input, $output, $e);
                         $this->dispatcher->dispatch($event, ConsoleEvents::ERROR);
@@ -403,6 +403,15 @@
 
             return;
         }
+
+        if (
+            CompletionInput::TYPE_OPTION_VALUE === $input->getCompletionType()
+            && ($definition = $this->getDefinition())->hasOption($input->getCompletionName())
+        ) {
+            $definition->getOption($input->getCompletionName())->complete($input, $suggestions);
+
+            return;
+        }
     }
 
     /**
@@ -502,7 +511,7 @@
     {
         if ('UNKNOWN' !== $this->getName()) {
             if ('UNKNOWN' !== $this->getVersion()) {
-                return sprintf('%s <info>%s</info>', $this->getName(), $this->getVersion());
+                return \sprintf('%s <info>%s</info>', $this->getName(), $this->getVersion());
             }
 
             return $this->getName();
@@ -561,7 +570,7 @@
         }
 
         if (!$command->getName()) {
-            throw new LogicException(sprintf('The command defined in "%s" cannot have an empty name.', get_debug_type($command)));
+            throw new LogicException(\sprintf('The command defined in "%s" cannot have an empty name.', get_debug_type($command)));
         }
 
         $this->commands[$command->getName()] = $command;
@@ -585,12 +594,12 @@
         $this->init();
 
         if (!$this->has($name)) {
-            throw new CommandNotFoundException(sprintf('The command "%s" does not exist.', $name));
+            throw new CommandNotFoundException(\sprintf('The command "%s" does not exist.', $name));
         }
 
         // When the command has a different name than the one used at the command loader level
         if (!isset($this->commands[$name])) {
-            throw new CommandNotFoundException(sprintf('The "%s" command cannot be found because it is registered under multiple names. Make sure you don\'t set a different name via constructor or "setName()".', $name));
+            throw new CommandNotFoundException(\sprintf('The "%s" command cannot be found because it is registered under multiple names. Make sure you don\'t set a different name via constructor or "setName()".', $name));
         }
 
         $command = $this->commands[$name];
@@ -654,7 +663,7 @@
         $namespaces = preg_grep('{^'.$expr.'}', $allNamespaces);
 
         if (empty($namespaces)) {
-            $message = sprintf('There are no commands defined in the "%s" namespace.', $namespace);
+            $message = \sprintf('There are no commands defined in the "%s" namespace.', $namespace);
 
             if ($alternatives = $this->findAlternatives($namespace, $allNamespaces)) {
                 if (1 == \count($alternatives)) {
@@ -671,7 +680,7 @@
 
         $exact = \in_array($namespace, $namespaces, true);
         if (\count($namespaces) > 1 && !$exact) {
-            throw new NamespaceNotFoundException(sprintf("The namespace \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $namespace, $this->getAbbreviationSuggestions(array_values($namespaces))), array_values($namespaces));
+            throw new NamespaceNotFoundException(\sprintf("The namespace \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $namespace, $this->getAbbreviationSuggestions(array_values($namespaces))), array_values($namespaces));
         }
 
         return $exact ? $namespace : reset($namespaces);
@@ -720,18 +729,17 @@
                 $this->findNamespace(substr($name, 0, $pos));
             }
 
-            $message = sprintf('Command "%s" is not defined.', $name);
+            $message = \sprintf('Command "%s" is not defined.', $name);
 
             if ($alternatives = $this->findAlternatives($name, $allCommands)) {
-                // remove hidden commands
-                $alternatives = array_filter($alternatives, fn ($name) => !$this->get($name)->isHidden());
+                $wantHelps = $this->wantHelps;
+                $this->wantHelps = false;
 
-                if (1 == \count($alternatives)) {
-                    $message .= "\n\nDid you mean this?\n    ";
-                } else {
-                    $message .= "\n\nDid you mean one of these?\n    ";
+                // remove hidden commands
+                if ($alternatives = array_filter($alternatives, fn ($name) => !$this->get($name)->isHidden())) {
+                    $message .= \sprintf("\n\nDid you mean %s?\n    %s", 1 === \count($alternatives) ? 'this' : 'one of these', implode("\n    ", $alternatives));
                 }
-                $message .= implode("\n    ", $alternatives);
+                $this->wantHelps = $wantHelps;
             }
 
             throw new CommandNotFoundException($message, array_values($alternatives));
@@ -753,6 +761,21 @@
             }));
         }
 
+        // check whether all commands left are aliases to the same one
+        if (\count($commands) > 1) {
+            $uniqueCommands = array_unique(array_map(function ($nameOrAlias) use (&$commandList) {
+                if (!$commandList[$nameOrAlias] instanceof Command) {
+                    $commandList[$nameOrAlias] = $this->commandLoader->get($nameOrAlias);
+                }
+
+                return $commandList[$nameOrAlias]->getName();
+            }, $commands));
+
+            if (1 === \count($uniqueCommands)) {
+                $commands = [reset($uniqueCommands)];
+            }
+        }
+
         if (\count($commands) > 1) {
             $usableWidth = $this->terminal->getWidth() - 10;
             $abbrevs = array_values($commands);
@@ -760,7 +783,7 @@
             foreach ($abbrevs as $abbrev) {
                 $maxLen = max(Helper::width($abbrev), $maxLen);
             }
-            $abbrevs = array_map(function ($cmd) use ($commandList, $usableWidth, $maxLen, &$commands) {
+            $abbrevs = array_map(static function ($cmd) use ($commandList, $usableWidth, $maxLen, &$commands) {
                 if ($commandList[$cmd]->isHidden()) {
                     unset($commands[array_search($cmd, $commands)]);
 
@@ -775,14 +798,14 @@
             if (\count($commands) > 1) {
                 $suggestions = $this->getAbbreviationSuggestions(array_filter($abbrevs));
 
-                throw new CommandNotFoundException(sprintf("Command \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $name, $suggestions), array_values($commands));
+                throw new CommandNotFoundException(\sprintf("Command \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $name, $suggestions), array_values($commands));
             }
         }
 
-        $command = $this->get(reset($commands));
+        $command = $commands ? $this->get(reset($commands)) : null;
 
-        if ($command->isHidden()) {
-            throw new CommandNotFoundException(sprintf('The command "%s" does not exist.', $name));
+        if (!$command || $command->isHidden()) {
+            throw new CommandNotFoundException(\sprintf('The command "%s" does not exist.', $name));
         }
 
         return $command;
@@ -857,7 +880,7 @@
         $this->doRenderThrowable($e, $output);
 
         if (null !== $this->runningCommand) {
-            $output->writeln(sprintf('<info>%s</info>', OutputFormatter::escape(sprintf($this->runningCommand->getSynopsis(), $this->getName()))), OutputInterface::VERBOSITY_QUIET);
+            $output->writeln(\sprintf('<info>%s</info>', OutputFormatter::escape(\sprintf($this->runningCommand->getSynopsis(), $this->getName()))), OutputInterface::VERBOSITY_QUIET);
             $output->writeln('', OutputInterface::VERBOSITY_QUIET);
         }
     }
@@ -868,14 +891,14 @@
             $message = trim($e->getMessage());
             if ('' === $message || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
                 $class = get_debug_type($e);
-                $title = sprintf('  [%s%s]  ', $class, 0 !== ($code = $e->getCode()) ? ' ('.$code.')' : '');
+                $title = \sprintf('  [%s%s]  ', $class, 0 !== ($code = $e->getCode()) ? ' ('.$code.')' : '');
                 $len = Helper::width($title);
             } else {
                 $len = 0;
             }
 
             if (str_contains($message, "@anonymous\0")) {
-                $message = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $message);
+                $message = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', static fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $message);
             }
 
             $width = $this->terminal->getWidth() ? $this->terminal->getWidth() - 1 : \PHP_INT_MAX;
@@ -892,14 +915,14 @@
 
             $messages = [];
             if (!$e instanceof ExceptionInterface || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
-                $messages[] = sprintf('<comment>%s</comment>', OutputFormatter::escape(sprintf('In %s line %s:', basename($e->getFile()) ?: 'n/a', $e->getLine() ?: 'n/a')));
+                $messages[] = \sprintf('<comment>%s</comment>', OutputFormatter::escape(\sprintf('In %s line %s:', basename($e->getFile()) ?: 'n/a', $e->getLine() ?: 'n/a')));
             }
-            $messages[] = $emptyLine = sprintf('<error>%s</error>', str_repeat(' ', $len));
+            $messages[] = $emptyLine = \sprintf('<error>%s</error>', str_repeat(' ', $len));
             if ('' === $message || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
-                $messages[] = sprintf('<error>%s%s</error>', $title, str_repeat(' ', max(0, $len - Helper::width($title))));
+                $messages[] = \sprintf('<error>%s%s</error>', $title, str_repeat(' ', max(0, $len - Helper::width($title))));
             }
             foreach ($lines as $line) {
-                $messages[] = sprintf('<error>  %s  %s</error>', OutputFormatter::escape($line[0]), str_repeat(' ', $len - $line[1]));
+                $messages[] = \sprintf('<error>  %s  %s</error>', OutputFormatter::escape($line[0]), str_repeat(' ', $len - $line[1]));
             }
             $messages[] = $emptyLine;
             $messages[] = '';
@@ -926,7 +949,7 @@
                     $file = $trace[$i]['file'] ?? 'n/a';
                     $line = $trace[$i]['line'] ?? 'n/a';
 
-                    $output->writeln(sprintf(' %s%s at <info>%s:%s</info>', $class, $function ? $type.$function.'()' : '', $file, $line), OutputInterface::VERBOSITY_QUIET);
+                    $output->writeln(\sprintf(' %s%s at <info>%s:%s</info>', $class, $function ? $type.$function.'()' : '', $file, $line), OutputInterface::VERBOSITY_QUIET);
                 }
 
                 $output->writeln('', OutputInterface::VERBOSITY_QUIET);
@@ -1012,19 +1035,15 @@
             }
         }
 
+        $registeredSignals = false;
         $commandSignals = $command instanceof SignalableCommandInterface ? $command->getSubscribedSignals() : [];
         if ($commandSignals || $this->dispatcher && $this->signalsToDispatchEvent) {
             if (!$this->signalRegistry) {
                 throw new RuntimeException('Unable to subscribe to signal events. Make sure that the "pcntl" extension is installed and that "pcntl_*" functions are not disabled by your php.ini\'s "disable_functions" directive.');
             }
 
-            if (Terminal::hasSttyAvailable()) {
-                $sttyMode = shell_exec('stty -g');
-
-                foreach ([\SIGINT, \SIGTERM] as $signal) {
-                    $this->signalRegistry->register($signal, static fn () => shell_exec('stty '.$sttyMode));
-                }
-            }
+            $registeredSignals = true;
+            $this->getSignalRegistry()->pushCurrentHandlers();
 
             if ($this->dispatcher) {
                 // We register application signals, so that we can dispatch the event
@@ -1059,7 +1078,7 @@
             }
 
             foreach ($commandSignals as $signal) {
-                $this->signalRegistry->register($signal, function (int $signal) use ($command): void {
+                $this->signalRegistry->register($signal, static function (int $signal) use ($command): void {
                     $exitCode = $command->handleSignal($signal);
                     // BC layer for Symfony <= 5
                     if (null === $exitCode) {
@@ -1075,7 +1094,13 @@
         }
 
         if (null === $this->dispatcher) {
-            return $command->run($input, $output);
+            try {
+                return $command->run($input, $output);
+            } finally {
+                if ($registeredSignals) {
+                    $this->getSignalRegistry()->popPreviousHandlers();
+                }
+            }
         }
 
         // bind before the console.command event, so the listeners have access to input options/arguments
@@ -1105,6 +1130,10 @@
             if (0 === $exitCode = $event->getExitCode()) {
                 $e = null;
             }
+        } finally {
+            if ($registeredSignals) {
+                $this->getSignalRegistry()->popPreviousHandlers();
+            }
         }
 
         $event = new ConsoleTerminateEvent($command, $input, $output, $exitCode);
@@ -1226,7 +1255,7 @@
             }
         }
 
-        $alternatives = array_filter($alternatives, fn ($lev) => $lev < 2 * $threshold);
+        $alternatives = array_filter($alternatives, static fn ($lev) => $lev < 2 * $threshold);
         ksort($alternatives, \SORT_NATURAL | \SORT_FLAG_CASE);
 
         return array_keys($alternatives);
@@ -1278,7 +1307,7 @@
 
             foreach (preg_split('//u', $m[0]) as $char) {
                 // test if $char could be appended to current line
-                if (mb_strwidth($line.$char, 'utf8') <= $width) {
+                if (Helper::width($line.$char) <= $width) {
                     $line .= $char;
                     continue;
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/CI/GithubActionReporter.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/CI/GithubActionReporter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/CI/GithubActionReporter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/CI/GithubActionReporter.php	2026-05-20 10:56:49.000000000 +0200
@@ -89,11 +89,11 @@
 
         if (!$file) {
             // No file provided, output the message solely:
-            $this->output->writeln(sprintf('::%s::%s', $type, $message));
+            $this->output->writeln(\sprintf('::%s::%s', $type, $message));
 
             return;
         }
 
-        $this->output->writeln(sprintf('::%s file=%s,line=%s,col=%s::%s', $type, strtr($file, self::ESCAPED_PROPERTIES), strtr($line ?? 1, self::ESCAPED_PROPERTIES), strtr($col ?? 0, self::ESCAPED_PROPERTIES), $message));
+        $this->output->writeln(\sprintf('::%s file=%s,line=%s,col=%s::%s', $type, strtr($file, self::ESCAPED_PROPERTIES), strtr($line ?? 1, self::ESCAPED_PROPERTIES), strtr($col ?? 0, self::ESCAPED_PROPERTIES), $message));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Color.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Color.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Color.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Color.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,7 +60,7 @@
 
         foreach ($options as $option) {
             if (!isset(self::AVAILABLE_OPTIONS[$option])) {
-                throw new InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s).', $option, implode(', ', array_keys(self::AVAILABLE_OPTIONS))));
+                throw new InvalidArgumentException(\sprintf('Invalid option specified: "%s". Expected one of (%s).', $option, implode(', ', array_keys(self::AVAILABLE_OPTIONS))));
             }
 
             $this->options[$option] = self::AVAILABLE_OPTIONS[$option];
@@ -88,7 +88,7 @@
             return '';
         }
 
-        return sprintf("\033[%sm", implode(';', $setCodes));
+        return \sprintf("\033[%sm", implode(';', $setCodes));
     }
 
     public function unset(): string
@@ -107,7 +107,7 @@
             return '';
         }
 
-        return sprintf("\033[%sm", implode(';', $unsetCodes));
+        return \sprintf("\033[%sm", implode(';', $unsetCodes));
     }
 
     private function parseColor(string $color, bool $background = false): string
@@ -128,6 +128,6 @@
             return ($background ? '10' : '9').self::BRIGHT_COLORS[$color];
         }
 
-        throw new InvalidArgumentException(sprintf('Invalid "%s" color; expected one of (%s).', $color, implode(', ', array_merge(array_keys(self::COLORS), array_keys(self::BRIGHT_COLORS)))));
+        throw new InvalidArgumentException(\sprintf('Invalid "%s" color; expected one of (%s).', $color, implode(', ', array_merge(array_keys(self::COLORS), array_keys(self::BRIGHT_COLORS)))));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/Command.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/Command.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/Command.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/Command.php	2026-05-20 10:56:49.000000000 +0200
@@ -326,7 +326,7 @@
             $statusCode = $this->execute($input, $output);
 
             if (!\is_int($statusCode)) {
-                throw new \TypeError(sprintf('Return value of "%s::execute()" must be of the type int, "%s" returned.', static::class, get_debug_type($statusCode)));
+                throw new \TypeError(\sprintf('Return value of "%s::execute()" must be of the type int, "%s" returned.', static::class, get_debug_type($statusCode)));
             }
         }
 
@@ -446,7 +446,7 @@
      */
     public function getNativeDefinition(): InputDefinition
     {
-        return $this->definition ?? throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', static::class));
+        return $this->definition ?? throw new LogicException(\sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', static::class));
     }
 
     /**
@@ -464,7 +464,7 @@
     {
         $suggestedValues = 5 <= \func_num_args() ? func_get_arg(4) : [];
         if (!\is_array($suggestedValues) && !$suggestedValues instanceof \Closure) {
-            throw new \TypeError(sprintf('Argument 5 passed to "%s()" must be array or \Closure, "%s" given.', __METHOD__, get_debug_type($suggestedValues)));
+            throw new \TypeError(\sprintf('Argument 5 passed to "%s()" must be array or \Closure, "%s" given.', __METHOD__, get_debug_type($suggestedValues)));
         }
         $this->definition->addArgument(new InputArgument($name, $mode, $description, $default, $suggestedValues));
         $this->fullDefinition?->addArgument(new InputArgument($name, $mode, $description, $default, $suggestedValues));
@@ -488,7 +488,7 @@
     {
         $suggestedValues = 6 <= \func_num_args() ? func_get_arg(5) : [];
         if (!\is_array($suggestedValues) && !$suggestedValues instanceof \Closure) {
-            throw new \TypeError(sprintf('Argument 5 passed to "%s()" must be array or \Closure, "%s" given.', __METHOD__, get_debug_type($suggestedValues)));
+            throw new \TypeError(\sprintf('Argument 5 passed to "%s()" must be array or \Closure, "%s" given.', __METHOD__, get_debug_type($suggestedValues)));
         }
         $this->definition->addOption(new InputOption($name, $shortcut, $mode, $description, $default, $suggestedValues));
         $this->fullDefinition?->addOption(new InputOption($name, $shortcut, $mode, $description, $default, $suggestedValues));
@@ -662,7 +662,7 @@
         $key = $short ? 'short' : 'long';
 
         if (!isset($this->synopsis[$key])) {
-            $this->synopsis[$key] = trim(sprintf('%s %s', $this->name, $this->definition->getSynopsis($short)));
+            $this->synopsis[$key] = trim(\sprintf('%s %s', $this->name, $this->definition->getSynopsis($short)));
         }
 
         return $this->synopsis[$key];
@@ -676,7 +676,7 @@
     public function addUsage(string $usage): static
     {
         if (!str_starts_with($usage, $this->name)) {
-            $usage = sprintf('%s %s', $this->name, $usage);
+            $usage = \sprintf('%s %s', $this->name, $usage);
         }
 
         $this->usages[] = $usage;
@@ -703,7 +703,7 @@
     public function getHelper(string $name): mixed
     {
         if (null === $this->helperSet) {
-            throw new LogicException(sprintf('Cannot retrieve helper "%s" because there is no HelperSet defined. Did you forget to add your command to the application or to set the application on the command using the setApplication() method? You can also set the HelperSet directly using the setHelperSet() method.', $name));
+            throw new LogicException(\sprintf('Cannot retrieve helper "%s" because there is no HelperSet defined. Did you forget to add your command to the application or to set the application on the command using the setApplication() method? You can also set the HelperSet directly using the setHelperSet() method.', $name));
         }
 
         return $this->helperSet->get($name);
@@ -719,7 +719,7 @@
     private function validateName(string $name): void
     {
         if (!preg_match('/^[^\:]++(\:[^\:]++)*$/', $name)) {
-            throw new InvalidArgumentException(sprintf('Command name "%s" is invalid.', $name));
+            throw new InvalidArgumentException(\sprintf('Command name "%s" is invalid.', $name));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/CompleteCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/CompleteCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/CompleteCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/CompleteCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -85,7 +85,7 @@
             // "symfony" must be kept for compat with the shell scripts generated by Symfony Console 5.4 - 6.1
             $version = $input->getOption('symfony') ? '1' : $input->getOption('api-version');
             if ($version && version_compare($version, self::COMPLETION_API_VERSION, '<')) {
-                $message = sprintf('Completion script version is not supported ("%s" given, ">=%s" required).', $version, self::COMPLETION_API_VERSION);
+                $message = \sprintf('Completion script version is not supported ("%s" given, ">=%s" required).', $version, self::COMPLETION_API_VERSION);
                 $this->log($message);
 
                 $output->writeln($message.' Install the Symfony completion script again by using the "completion" command.');
@@ -99,7 +99,7 @@
             }
 
             if (!$completionOutput = $this->completionOutputs[$shell] ?? false) {
-                throw new \RuntimeException(sprintf('Shell completion is not supported for your shell: "%s" (supported: "%s").', $shell, implode('", "', array_keys($this->completionOutputs))));
+                throw new \RuntimeException(\sprintf('Shell completion is not supported for your shell: "%s" (supported: "%s").', $shell, implode('", "', array_keys($this->completionOutputs))));
             }
 
             $completionInput = $this->createCompletionInput($input);
@@ -115,24 +115,30 @@
                 '<info>Messages:</>',
             ]);
 
-            $command = $this->findCommand($completionInput, $output);
+            if ($command = $this->findCommand($completionInput, $output)) {
+                $command->mergeApplicationDefinition();
+                $completionInput->bind($command->getDefinition());
+            }
+
             if (null === $command) {
                 $this->log('  No command found, completing using the Application class.');
 
                 $this->getApplication()->complete($completionInput, $suggestions);
             } elseif (
                 $completionInput->mustSuggestArgumentValuesFor('command')
-                && $command->getName() !== $completionInput->getCompletionValue()
-                && !\in_array($completionInput->getCompletionValue(), $command->getAliases(), true)
             ) {
-                $this->log('  No command found, completing using the Application class.');
+                $this->log('  Command found, completing command name.');
 
                 // expand shortcut names ("cache:cl<TAB>") into their full name ("cache:clear")
-                $suggestions->suggestValues(array_filter(array_merge([$command->getName()], $command->getAliases())));
+                $commandNames = array_filter(array_merge([$command->getName()], $command->getAliases()));
+                foreach ($commandNames as $name) {
+                    if (str_starts_with($name, $completionInput->getCompletionValue())) {
+                        $commandNames = [$name];
+                        break;
+                    }
+                }
+                $suggestions->suggestValues($commandNames);
             } else {
-                $command->mergeApplicationDefinition();
-                $completionInput->bind($command->getDefinition());
-
                 if (CompletionInput::TYPE_OPTION_NAME === $completionInput->getCompletionType()) {
                     $this->log('  Completing option names for the <comment>'.($command instanceof LazyCommand ? $command->getCommand() : $command)::class.'</> command.');
 
@@ -155,7 +161,7 @@
 
             $this->log('<info>Suggestions:</>');
             if ($options = $suggestions->getOptionSuggestions()) {
-                $this->log('  --'.implode(' --', array_map(fn ($o) => $o->getName(), $options)));
+                $this->log('  --'.implode(' --', array_map(static fn ($o) => $o->getName(), $options)));
             } elseif ($values = $suggestions->getValueSuggestions()) {
                 $this->log('  '.implode(' ', $values));
             } else {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/DumpCompletionCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/DumpCompletionCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/DumpCompletionCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/DumpCompletionCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,33 +56,33 @@
 
         $this
             ->setHelp(<<<EOH
-The <info>%command.name%</> command dumps the shell completion script required
-to use shell autocompletion (currently, {$supportedShells} completion are supported).
+                The <info>%command.name%</> command dumps the shell completion script required
+                to use shell autocompletion (currently, {$supportedShells} completion are supported).
 
-<comment>Static installation
--------------------</>
+                <comment>Static installation
+                -------------------</>
 
-Dump the script to a global completion file and restart your shell:
+                Dump the script to a global completion file and restart your shell:
 
-    <info>%command.full_name% {$shell} | sudo tee {$completionFile}</>
+                    <info>%command.full_name% {$shell} | sudo tee {$completionFile}</>
 
-Or dump the script to a local file and source it:
+                Or dump the script to a local file and source it:
 
-    <info>%command.full_name% {$shell} > completion.sh</>
+                    <info>%command.full_name% {$shell} > completion.sh</>
 
-    <comment># source the file whenever you use the project</>
-    <info>source completion.sh</>
+                    <comment># source the file whenever you use the project</>
+                    <info>source completion.sh</>
 
-    <comment># or add this line at the end of your "{$rcFile}" file:</>
-    <info>source /path/to/completion.sh</>
+                    <comment># or add this line at the end of your "{$rcFile}" file:</>
+                    <info>source /path/to/completion.sh</>
 
-<comment>Dynamic installation
---------------------</>
+                <comment>Dynamic installation
+                --------------------</>
 
-Add this to the end of your shell configuration file (e.g. <info>"{$rcFile}"</>):
+                Add this to the end of your shell configuration file (e.g. <info>"{$rcFile}"</>):
 
-    <info>eval "$({$fullCommand} completion {$shell})"</>
-EOH
+                    <info>eval "$({$fullCommand} completion {$shell})"</>
+                EOH
             )
             ->addArgument('shell', InputArgument::OPTIONAL, 'The shell type (e.g. "bash"), the value of the "$SHELL" env var will be used if this is not given', null, $this->getSupportedShells(...))
             ->addOption('debug', null, InputOption::VALUE_NONE, 'Tail the completion debug log')
@@ -108,9 +108,9 @@
                 $output = $output->getErrorOutput();
             }
             if ($shell) {
-                $output->writeln(sprintf('<error>Detected shell "%s", which is not supported by Symfony shell completion (supported shells: "%s").</>', $shell, implode('", "', $supportedShells)));
+                $output->writeln(\sprintf('<error>Detected shell "%s", which is not supported by Symfony shell completion (supported shells: "%s").</>', $shell, implode('", "', $supportedShells)));
             } else {
-                $output->writeln(sprintf('<error>Shell not detected, Symfony shell completion only supports "%s").</>', implode('", "', $supportedShells)));
+                $output->writeln(\sprintf('<error>Shell not detected, Symfony shell completion only supports "%s").</>', implode('", "', $supportedShells)));
             }
 
             return 2;
@@ -133,7 +133,7 @@
             touch($debugFile);
         }
         $process = new Process(['tail', '-f', $debugFile], null, null, null, 0);
-        $process->run(function (string $type, string $line) use ($output): void {
+        $process->run(static function (string $type, string $line) use ($output): void {
             $output->write($line);
         });
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/HelpCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/HelpCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/HelpCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/HelpCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,21 +38,21 @@
             ->setName('help')
             ->setDefinition([
                 new InputArgument('command_name', InputArgument::OPTIONAL, 'The command name', 'help', fn () => array_keys((new ApplicationDescription($this->getApplication()))->getCommands())),
-                new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt', fn () => (new DescriptorHelper())->getFormats()),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt', static fn () => (new DescriptorHelper())->getFormats()),
                 new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command help'),
             ])
             ->setDescription('Display help for a command')
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command displays help for a given command:
+                The <info>%command.name%</info> command displays help for a given command:
 
-  <info>%command.full_name% list</info>
+                  <info>%command.full_name% list</info>
 
-You can also output the help in other formats by using the <comment>--format</comment> option:
+                You can also output the help in other formats by using the <comment>--format</comment> option:
 
-  <info>%command.full_name% --format=xml list</info>
+                  <info>%command.full_name% --format=xml list</info>
 
-To display the list of available commands, please use the <info>list</info> command.
-EOF
+                To display the list of available commands, please use the <info>list</info> command.
+                EOF
             )
         ;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/ListCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/ListCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/ListCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/ListCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,27 +35,27 @@
             ->setDefinition([
                 new InputArgument('namespace', InputArgument::OPTIONAL, 'The namespace name', null, fn () => array_keys((new ApplicationDescription($this->getApplication()))->getNamespaces())),
                 new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command list'),
-                new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt', fn () => (new DescriptorHelper())->getFormats()),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt', static fn () => (new DescriptorHelper())->getFormats()),
                 new InputOption('short', null, InputOption::VALUE_NONE, 'To skip describing commands\' arguments'),
             ])
             ->setDescription('List commands')
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command lists all commands:
+                The <info>%command.name%</info> command lists all commands:
 
-  <info>%command.full_name%</info>
+                  <info>%command.full_name%</info>
 
-You can also display the commands for a specific namespace:
+                You can also display the commands for a specific namespace:
 
-  <info>%command.full_name% test</info>
+                  <info>%command.full_name% test</info>
 
-You can also output the information in other formats by using the <comment>--format</comment> option:
+                You can also output the information in other formats by using the <comment>--format</comment> option:
 
-  <info>%command.full_name% --format=xml</info>
+                  <info>%command.full_name% --format=xml</info>
 
-It's also possible to get raw list of commands (useful for embedding command runner):
+                It's also possible to get raw list of commands (useful for embedding command runner):
 
-  <info>%command.full_name% --raw</info>
-EOF
+                  <info>%command.full_name% --raw</info>
+                EOF
             )
         ;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/SignalableCommandInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/SignalableCommandInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/SignalableCommandInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/SignalableCommandInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,5 +30,5 @@
      *
      * @return int|false The exit code to return or false to continue the normal execution
      */
-    public function handleSignal(int $signal, /* int|false $previousExitCode = 0 */);
+    public function handleSignal(int $signal/* , int|false $previousExitCode = 0 */);
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/TraceableCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/TraceableCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Command/TraceableCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Command/TraceableCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,9 +62,7 @@
         parent::__construct($command->getName());
 
         // init below enables calling {@see parent::run()}
-        [$code, $processTitle, $ignoreValidationErrors] = \Closure::bind(function () {
-            return [$this->code, $this->processTitle, $this->ignoreValidationErrors];
-        }, $command, Command::class)();
+        [$code, $processTitle, $ignoreValidationErrors] = \Closure::bind(fn () => [$this->code, $this->processTitle, $this->ignoreValidationErrors], $command, Command::class)();
 
         if (\is_callable($code)) {
             $this->setCode($code);
@@ -283,7 +281,7 @@
         $event = $this->stopwatch->start($this->getName(), 'command');
 
         try {
-            $this->exitCode = parent::run($input, $output);
+            $this->exitCode = $this->command->run($input, $output);
         } finally {
             $event->stop();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/CommandLoader/ContainerCommandLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/CommandLoader/ContainerCommandLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/CommandLoader/ContainerCommandLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/CommandLoader/ContainerCommandLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
     public function get(string $name): Command
     {
         if (!$this->has($name)) {
-            throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name));
+            throw new CommandNotFoundException(\sprintf('Command "%s" does not exist.', $name));
         }
 
         return $this->container->get($this->commandMap[$name]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/CommandLoader/FactoryCommandLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/CommandLoader/FactoryCommandLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/CommandLoader/FactoryCommandLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/CommandLoader/FactoryCommandLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
     public function get(string $name): Command
     {
         if (!isset($this->factories[$name])) {
-            throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name));
+            throw new CommandNotFoundException(\sprintf('Command "%s" does not exist.', $name));
         }
 
         $factory = $this->factories[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Completion/Suggestion.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Completion/Suggestion.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Completion/Suggestion.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Completion/Suggestion.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 {
     public function __construct(
         private readonly string $value,
-        private readonly string $description = ''
+        private readonly string $description = '',
     ) {
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Cursor.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Cursor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Cursor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Cursor.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
      */
     public function moveUp(int $lines = 1): static
     {
-        $this->output->write(sprintf("\x1b[%dA", $lines));
+        $this->output->write(\sprintf("\x1b[%dA", $lines));
 
         return $this;
     }
@@ -46,7 +46,7 @@
      */
     public function moveDown(int $lines = 1): static
     {
-        $this->output->write(sprintf("\x1b[%dB", $lines));
+        $this->output->write(\sprintf("\x1b[%dB", $lines));
 
         return $this;
     }
@@ -56,7 +56,7 @@
      */
     public function moveRight(int $columns = 1): static
     {
-        $this->output->write(sprintf("\x1b[%dC", $columns));
+        $this->output->write(\sprintf("\x1b[%dC", $columns));
 
         return $this;
     }
@@ -66,7 +66,7 @@
      */
     public function moveLeft(int $columns = 1): static
     {
-        $this->output->write(sprintf("\x1b[%dD", $columns));
+        $this->output->write(\sprintf("\x1b[%dD", $columns));
 
         return $this;
     }
@@ -76,7 +76,7 @@
      */
     public function moveToColumn(int $column): static
     {
-        $this->output->write(sprintf("\x1b[%dG", $column));
+        $this->output->write(\sprintf("\x1b[%dG", $column));
 
         return $this;
     }
@@ -86,7 +86,7 @@
      */
     public function moveToPosition(int $column, int $row): static
     {
-        $this->output->write(sprintf("\x1b[%d;%dH", $row + 1, $column));
+        $this->output->write(\sprintf("\x1b[%d;%dH", $row + 1, $column));
 
         return $this;
     }
@@ -195,7 +195,7 @@
 
         $code = trim(fread($this->input, 1024));
 
-        shell_exec(sprintf('stty %s', $sttyMode));
+        shell_exec(\sprintf('stty %s', $sttyMode));
 
         sscanf($code, "\033[%d;%dR", $row, $col);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/DataCollector/CommandDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/DataCollector/CommandDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/DataCollector/CommandDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/DataCollector/CommandDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -118,7 +118,7 @@
     public function getInterruptedBySignal(): ?string
     {
         if (isset($this->data['interrupted_by_signal'])) {
-            return sprintf('%s (%d)', SignalMap::getSignalName($this->data['interrupted_by_signal']), $this->data['interrupted_by_signal']);
+            return \sprintf('%s (%d)', SignalMap::getSignalName($this->data['interrupted_by_signal']), $this->data['interrupted_by_signal']);
         }
 
         return null;
@@ -204,7 +204,7 @@
     public function getSignalable(): array
     {
         return array_map(
-            static fn (int $signal): string => sprintf('%s (%d)', SignalMap::getSignalName($signal), $signal),
+            static fn (int $signal): string => \sprintf('%s (%d)', SignalMap::getSignalName($signal), $signal),
             $this->data['signalable']
         );
     }
@@ -212,7 +212,7 @@
     public function getHandledSignals(): array
     {
         $keys = array_map(
-            static fn (int $signal): string => sprintf('%s (%d)', SignalMap::getSignalName($signal), $signal),
+            static fn (int $signal): string => \sprintf('%s (%d)', SignalMap::getSignalName($signal), $signal),
             array_keys($this->data['handled_signals'])
         );
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,10 +48,10 @@
                 $aliases = $tags[0]['command'];
             } else {
                 if (!$r = $container->getReflectionClass($class)) {
-                    throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
+                    throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
                 }
                 if (!$r->isSubclassOf(Command::class)) {
-                    throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, 'console.command', Command::class));
+                    throw new InvalidArgumentException(\sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, 'console.command', Command::class));
                 }
                 $aliases = str_replace('%', '%%', $class::getDefaultName() ?? '');
             }
@@ -105,10 +105,10 @@
 
             if (!$description) {
                 if (!$r = $container->getReflectionClass($class)) {
-                    throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
+                    throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
                 }
                 if (!$r->isSubclassOf(Command::class)) {
-                    throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, 'console.command', Command::class));
+                    throw new InvalidArgumentException(\sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, 'console.command', Command::class));
                 }
                 $description = str_replace('%', '%%', $class::getDefaultDescription() ?? '');
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/ApplicationDescription.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/ApplicationDescription.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/ApplicationDescription.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/ApplicationDescription.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
     public function getCommand(string $name): Command
     {
         if (!isset($this->commands[$name]) && !isset($this->aliases[$name])) {
-            throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name));
+            throw new CommandNotFoundException(\sprintf('Command "%s" does not exist.', $name));
         }
 
         return $this->commands[$name] ?? $this->aliases[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/Descriptor.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/Descriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/Descriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/Descriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
             $object instanceof InputDefinition => $this->describeInputDefinition($object, $options),
             $object instanceof Command => $this->describeCommand($object, $options),
             $object instanceof Application => $this->describeApplication($object, $options),
-            default => throw new InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_debug_type($object))),
+            default => throw new InvalidArgumentException(\sprintf('Object of type "%s" is not describable.', get_debug_type($object))),
         };
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/JsonDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/JsonDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/JsonDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/JsonDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -108,7 +108,7 @@
             'is_value_required' => false,
             'is_multiple' => false,
             'description' => 'Negate the "--'.$option->getName().'" option',
-            'default' => false,
+            'default' => null === $option->getDefault() ? null : !$option->getDefault(),
         ] : [
             'name' => '--'.$option->getName(),
             'shortcut' => $option->getShortcut() ? '-'.str_replace('|', '|-', $option->getShortcut()) : '',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/MarkdownDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/MarkdownDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/MarkdownDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/MarkdownDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,7 +106,7 @@
                 .str_repeat('-', Helper::width($command->getName()) + 2)."\n\n"
                 .($command->getDescription() ? $command->getDescription()."\n\n" : '')
                 .'### Usage'."\n\n"
-                .array_reduce($command->getAliases(), fn ($carry, $usage) => $carry.'* `'.$usage.'`'."\n")
+                .array_reduce($command->getAliases(), static fn ($carry, $usage) => $carry.'* `'.$usage.'`'."\n")
             );
 
             return;
@@ -119,7 +119,7 @@
             .str_repeat('-', Helper::width($command->getName()) + 2)."\n\n"
             .($command->getDescription() ? $command->getDescription()."\n\n" : '')
             .'### Usage'."\n\n"
-            .array_reduce(array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()), fn ($carry, $usage) => $carry.'* `'.$usage.'`'."\n")
+            .array_reduce(array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()), static fn ($carry, $usage) => $carry.'* `'.$usage.'`'."\n")
         );
 
         if ($help = $command->getProcessedHelp()) {
@@ -149,7 +149,7 @@
             }
 
             $this->write("\n\n");
-            $this->write(implode("\n", array_map(fn ($commandName) => sprintf('* [`%s`](#%s)', $commandName, str_replace(':', '', $description->getCommand($commandName)->getName())), $namespace['commands'])));
+            $this->write(implode("\n", array_map(static fn ($commandName) => \sprintf('* [`%s`](#%s)', $commandName, str_replace(':', '', $description->getCommand($commandName)->getName())), $namespace['commands'])));
         }
 
         foreach ($description->getCommands() as $command) {
@@ -162,7 +162,7 @@
     {
         if ('UNKNOWN' !== $application->getName()) {
             if ('UNKNOWN' !== $application->getVersion()) {
-                return sprintf('%s %s', $application->getName(), $application->getVersion());
+                return \sprintf('%s %s', $application->getName(), $application->getVersion());
             }
 
             return $application->getName();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/ReStructuredTextDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/ReStructuredTextDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/ReStructuredTextDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/ReStructuredTextDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -167,7 +167,7 @@
             return 'Console Tool';
         }
         if ('UNKNOWN' !== $application->getVersion()) {
-            return sprintf('%s %s', $application->getName(), $application->getVersion());
+            return \sprintf('%s %s', $application->getName(), $application->getVersion());
         }
 
         return $application->getName();
@@ -209,7 +209,7 @@
             $commands = $this->removeAliasesAndHiddenCommands($commands);
 
             $this->write("\n\n");
-            $this->write(implode("\n", array_map(static fn ($commandName) => sprintf('- `%s`_', $commandName), array_keys($commands))));
+            $this->write(implode("\n", array_map(static fn ($commandName) => \sprintf('- `%s`_', $commandName), array_keys($commands))));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/TextDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/TextDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Descriptor/TextDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Descriptor/TextDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
     protected function describeInputArgument(InputArgument $argument, array $options = []): void
     {
         if (null !== $argument->getDefault() && (!\is_array($argument->getDefault()) || \count($argument->getDefault()))) {
-            $default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($argument->getDefault()));
+            $default = \sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($argument->getDefault()));
         } else {
             $default = '';
         }
@@ -39,7 +39,7 @@
         $totalWidth = $options['total_width'] ?? Helper::width($argument->getName());
         $spacingWidth = $totalWidth - \strlen($argument->getName());
 
-        $this->writeText(sprintf('  <info>%s</info>  %s%s%s',
+        $this->writeText(\sprintf('  <info>%s</info>  %s%s%s',
             $argument->getName(),
             str_repeat(' ', $spacingWidth),
             // + 4 = 2 spaces before <info>, 2 spaces after </info>
@@ -51,7 +51,7 @@
     protected function describeInputOption(InputOption $option, array $options = []): void
     {
         if ($option->acceptValue() && null !== $option->getDefault() && (!\is_array($option->getDefault()) || \count($option->getDefault()))) {
-            $default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($option->getDefault()));
+            $default = \sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($option->getDefault()));
         } else {
             $default = '';
         }
@@ -66,14 +66,14 @@
         }
 
         $totalWidth = $options['total_width'] ?? $this->calculateTotalWidthForOptions([$option]);
-        $synopsis = sprintf('%s%s',
-            $option->getShortcut() ? sprintf('-%s, ', $option->getShortcut()) : '    ',
-            sprintf($option->isNegatable() ? '--%1$s|--no-%1$s' : '--%1$s%2$s', $option->getName(), $value)
+        $synopsis = \sprintf('%s%s',
+            $option->getShortcut() ? \sprintf('-%s, ', $option->getShortcut()) : '    ',
+            \sprintf($option->isNegatable() ? '--%1$s|--no-%1$s' : '--%1$s%2$s', $option->getName(), $value)
         );
 
         $spacingWidth = $totalWidth - Helper::width($synopsis);
 
-        $this->writeText(sprintf('  <info>%s</info>  %s%s%s%s',
+        $this->writeText(\sprintf('  <info>%s</info>  %s%s%s%s',
             $synopsis,
             str_repeat(' ', $spacingWidth),
             // + 4 = 2 spaces before <info>, 2 spaces after </info>
@@ -166,7 +166,7 @@
             $width = $this->getColumnWidth($description->getCommands());
 
             foreach ($description->getCommands() as $command) {
-                $this->writeText(sprintf("%-{$width}s %s", $command->getName(), $command->getDescription()), $options);
+                $this->writeText(\sprintf("%-{$width}s %s", $command->getName(), $command->getDescription()), $options);
                 $this->writeText("\n");
             }
         } else {
@@ -193,16 +193,16 @@
             }
 
             // calculate max. width based on available commands per namespace
-            $width = $this->getColumnWidth(array_merge(...array_values(array_map(fn ($namespace) => array_intersect($namespace['commands'], array_keys($commands)), array_values($namespaces)))));
+            $width = $this->getColumnWidth(array_merge(...array_values(array_map(static fn ($namespace) => array_intersect($namespace['commands'], array_keys($commands)), array_values($namespaces)))));
 
             if ($describedNamespace) {
-                $this->writeText(sprintf('<comment>Available commands for the "%s" namespace:</comment>', $describedNamespace), $options);
+                $this->writeText(\sprintf('<comment>Available commands for the "%s" namespace:</comment>', $describedNamespace), $options);
             } else {
                 $this->writeText('<comment>Available commands:</comment>', $options);
             }
 
             foreach ($namespaces as $namespace) {
-                $namespace['commands'] = array_filter($namespace['commands'], fn ($name) => isset($commands[$name]));
+                $namespace['commands'] = array_filter($namespace['commands'], static fn ($name) => isset($commands[$name]));
 
                 if (!$namespace['commands']) {
                     continue;
@@ -218,7 +218,7 @@
                     $spacingWidth = $width - Helper::width($name);
                     $command = $commands[$name];
                     $commandAliases = $name === $command->getName() ? $this->getCommandAliasesText($command) : '';
-                    $this->writeText(sprintf('  <info>%s</info>%s%s', $name, str_repeat(' ', $spacingWidth), $commandAliases.$command->getDescription()), $options);
+                    $this->writeText(\sprintf('  <info>%s</info>%s%s', $name, str_repeat(' ', $spacingWidth), $commandAliases.$command->getDescription()), $options);
                 }
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Exception/RunCommandFailedException.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Exception/RunCommandFailedException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Exception/RunCommandFailedException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Exception/RunCommandFailedException.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
     {
         parent::__construct(
             $exception instanceof \Throwable ? $exception->getMessage() : $exception,
-            $exception instanceof \Throwable ? $exception->getCode() : 0,
+            $exception instanceof \Throwable && \is_int($exception->getCode()) ? $exception->getCode() : 0,
             $exception instanceof \Throwable ? $exception : null,
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Formatter/OutputFormatter.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Formatter/OutputFormatter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Formatter/OutputFormatter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Formatter/OutputFormatter.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Console\Formatter;
 
 use Symfony\Component\Console\Exception\InvalidArgumentException;
+use Symfony\Component\Console\Helper\Helper;
 
 use function Symfony\Component\String\b;
 
@@ -112,7 +113,7 @@
     public function getStyle(string $name): OutputFormatterStyleInterface
     {
         if (!$this->hasStyle($name)) {
-            throw new InvalidArgumentException(sprintf('Undefined style: "%s".', $name));
+            throw new InvalidArgumentException(\sprintf('Undefined style: "%s".', $name));
         }
 
         return $this->styles[strtolower($name)];
@@ -132,6 +133,10 @@
             return '';
         }
 
+        // For ASCII-only strings, byte positions equal character positions,
+        // so we can use native strlen/substr which is much faster than Helper::length/substr.
+        $isAscii = !preg_match('/[\x80-\xFF]/', $message);
+
         $offset = 0;
         $output = '';
         $openTagRegex = '[a-z](?:[^\\\\<>]*+ | \\\\.)*';
@@ -146,9 +151,17 @@
                 continue;
             }
 
-            // add the text up to the next tag
-            $output .= $this->applyCurrentStyle(substr($message, $offset, $pos - $offset), $output, $width, $currentLineLength);
-            $offset = $pos + \strlen($text);
+            if ($isAscii) {
+                // For ASCII, byte position = character position, no conversion needed
+                $output .= $this->applyCurrentStyle(substr($message, $offset, $pos - $offset), $output, $width, $currentLineLength);
+                $offset = $pos + \strlen($text);
+            } else {
+                // convert byte position to character position.
+                $pos = Helper::length(substr($message, 0, $pos));
+                // add the text up to the next tag
+                $output .= $this->applyCurrentStyle(Helper::substr($message, $offset, $pos - $offset), $output, $width, $currentLineLength);
+                $offset = $pos + Helper::length($text);
+            }
 
             // opening tag?
             if ($open = '/' !== $text[1]) {
@@ -169,7 +182,7 @@
             }
         }
 
-        $output .= $this->applyCurrentStyle(substr($message, $offset), $output, $width, $currentLineLength);
+        $output .= $this->applyCurrentStyle($isAscii ? substr($message, $offset) : Helper::substr($message, $offset), $output, $width, $currentLineLength);
 
         return strtr($output, ["\0" => '\\', '\\<' => '<', '\\>' => '>']);
     }
@@ -236,8 +249,18 @@
         }
 
         if ($currentLineLength) {
-            $prefix = substr($text, 0, $i = $width - $currentLineLength)."\n";
-            $text = substr($text, $i);
+            $lines = explode("\n", $text, 2);
+            $prefix = Helper::substr($lines[0], 0, $i = $width - $currentLineLength)."\n";
+            $text = Helper::substr($lines[0], $i);
+
+            if (isset($lines[1])) {
+                // $prefix may contain the full first line in which the \n is already a part of $prefix.
+                if ('' !== $text) {
+                    $text .= "\n";
+                }
+
+                $text .= $lines[1];
+            }
         } else {
             $prefix = '';
         }
@@ -252,8 +275,8 @@
 
         $lines = explode("\n", $text);
 
-        foreach ($lines as $line) {
-            $currentLineLength += \strlen($line);
+        foreach ($lines as $i => $line) {
+            $currentLineLength = 0 === $i ? $currentLineLength + Helper::length($line) : Helper::length($line);
             if ($width <= $currentLineLength) {
                 $currentLineLength = 0;
             }
@@ -272,6 +295,6 @@
     {
         $encoding = mb_detect_encoding($text, null, true) ?: 'UTF-8';
 
-        return b($text)->toCodePointString($encoding)->wordwrap($width, "\n", true)->toByteString($encoding);
+        return b($text)->toUnicodeString($encoding)->wordwrap($width, "\n", true)->toByteString($encoding);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/DebugFormatterHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/DebugFormatterHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/DebugFormatterHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/DebugFormatterHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
     {
         $this->started[$id] = ['border' => ++$this->count % \count(self::COLORS)];
 
-        return sprintf("%s<bg=blue;fg=white> %s </> <fg=blue>%s</>\n", $this->getBorder($id), $prefix, $message);
+        return \sprintf("%s<bg=blue;fg=white> %s </> <fg=blue>%s</>\n", $this->getBorder($id), $prefix, $message);
     }
 
     /**
@@ -47,22 +47,22 @@
                 unset($this->started[$id]['out']);
             }
             if (!isset($this->started[$id]['err'])) {
-                $message .= sprintf('%s<bg=red;fg=white> %s </> ', $this->getBorder($id), $errorPrefix);
+                $message .= \sprintf('%s<bg=red;fg=white> %s </> ', $this->getBorder($id), $errorPrefix);
                 $this->started[$id]['err'] = true;
             }
 
-            $message .= str_replace("\n", sprintf("\n%s<bg=red;fg=white> %s </> ", $this->getBorder($id), $errorPrefix), $buffer);
+            $message .= str_replace("\n", \sprintf("\n%s<bg=red;fg=white> %s </> ", $this->getBorder($id), $errorPrefix), $buffer);
         } else {
             if (isset($this->started[$id]['err'])) {
                 $message .= "\n";
                 unset($this->started[$id]['err']);
             }
             if (!isset($this->started[$id]['out'])) {
-                $message .= sprintf('%s<bg=green;fg=white> %s </> ', $this->getBorder($id), $prefix);
+                $message .= \sprintf('%s<bg=green;fg=white> %s </> ', $this->getBorder($id), $prefix);
                 $this->started[$id]['out'] = true;
             }
 
-            $message .= str_replace("\n", sprintf("\n%s<bg=green;fg=white> %s </> ", $this->getBorder($id), $prefix), $buffer);
+            $message .= str_replace("\n", \sprintf("\n%s<bg=green;fg=white> %s </> ", $this->getBorder($id), $prefix), $buffer);
         }
 
         return $message;
@@ -76,10 +76,10 @@
         $trailingEOL = isset($this->started[$id]['out']) || isset($this->started[$id]['err']) ? "\n" : '';
 
         if ($successful) {
-            return sprintf("%s%s<bg=green;fg=white> %s </> <fg=green>%s</>\n", $trailingEOL, $this->getBorder($id), $prefix, $message);
+            return \sprintf("%s%s<bg=green;fg=white> %s </> <fg=green>%s</>\n", $trailingEOL, $this->getBorder($id), $prefix, $message);
         }
 
-        $message = sprintf("%s%s<bg=red;fg=white> %s </> <fg=red>%s</>\n", $trailingEOL, $this->getBorder($id), $prefix, $message);
+        $message = \sprintf("%s%s<bg=red;fg=white> %s </> <fg=red>%s</>\n", $trailingEOL, $this->getBorder($id), $prefix, $message);
 
         unset($this->started[$id]['out'], $this->started[$id]['err']);
 
@@ -88,7 +88,7 @@
 
     private function getBorder(string $id): string
     {
-        return sprintf('<bg=%s> </>', self::COLORS[$this->started[$id]['border']]);
+        return \sprintf('<bg=%s> </>', self::COLORS[$this->started[$id]['border']]);
     }
 
     public function getName(): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/DescriptorHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/DescriptorHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/DescriptorHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/DescriptorHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
         ], $options);
 
         if (!isset($this->descriptors[$options['format']])) {
-            throw new InvalidArgumentException(sprintf('Unsupported format "%s".', $options['format']));
+            throw new InvalidArgumentException(\sprintf('Unsupported format "%s".', $options['format']));
         }
 
         $descriptor = $this->descriptors[$options['format']];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/Dumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/Dumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/Dumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/Dumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
                 return rtrim($dumper->dump(($this->cloner ??= new VarCloner())->cloneVar($var)->withRefHandles(false), true));
             };
         } else {
-            $this->handler = fn ($var): string => match (true) {
+            $this->handler = static fn ($var): string => match (true) {
                 null === $var => 'null',
                 true === $var => 'true',
                 false === $var => 'false',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/FormatterHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/FormatterHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/FormatterHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/FormatterHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
      */
     public function formatSection(string $section, string $message, string $style = 'info'): string
     {
-        return sprintf('<%s>[%s]</%s> %s', $style, $section, $style, $message);
+        return \sprintf('<%s>[%s]</%s> %s', $style, $section, $style, $message);
     }
 
     /**
@@ -41,7 +41,7 @@
         $lines = [];
         foreach ($messages as $message) {
             $message = OutputFormatter::escape($message);
-            $lines[] = sprintf($large ? '  %s  ' : ' %s ', $message);
+            $lines[] = \sprintf($large ? '  %s  ' : ' %s ', $message);
             $len = max(self::width($message) + ($large ? 4 : 2), $len);
         }
 
@@ -54,7 +54,7 @@
         }
 
         for ($i = 0; isset($messages[$i]); ++$i) {
-            $messages[$i] = sprintf('<%s>%s</%s>', $style, $messages[$i], $style);
+            $messages[$i] = \sprintf('<%s>%s</%s>', $style, $messages[$i], $style);
         }
 
         return implode("\n", $messages);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/Helper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/Helper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/Helper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/Helper.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,9 @@
         $string ??= '';
 
         if (preg_match('//u', $string)) {
-            return (new UnicodeString($string))->width(false);
+            $string = preg_replace('/[\p{Cc}\x7F]++/u', '', $string, -1, $count);
+
+            return (new UnicodeString($string))->width(false) + $count;
         }
 
         if (false === $encoding = mb_detect_encoding($string, null, true)) {
@@ -84,6 +86,10 @@
     {
         $string ??= '';
 
+        if (preg_match('//u', $string)) {
+            return (new UnicodeString($string))->slice($from, $length);
+        }
+
         if (false === $encoding = mb_detect_encoding($string, null, true)) {
             return substr($string, $from, $length);
         }
@@ -140,18 +146,18 @@
     public static function formatMemory(int $memory)
     {
         if ($memory >= 1024 * 1024 * 1024) {
-            return sprintf('%.1f GiB', $memory / 1024 / 1024 / 1024);
+            return \sprintf('%.1f GiB', $memory / 1024 / 1024 / 1024);
         }
 
         if ($memory >= 1024 * 1024) {
-            return sprintf('%.1f MiB', $memory / 1024 / 1024);
+            return \sprintf('%.1f MiB', $memory / 1024 / 1024);
         }
 
         if ($memory >= 1024) {
-            return sprintf('%d KiB', $memory / 1024);
+            return \sprintf('%d KiB', $memory / 1024);
         }
 
-        return sprintf('%d B', $memory);
+        return \sprintf('%d B', $memory);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/HelperSet.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/HelperSet.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/HelperSet.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/HelperSet.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
     public function get(string $name): HelperInterface
     {
         if (!$this->has($name)) {
-            throw new InvalidArgumentException(sprintf('The helper "%s" is not defined.', $name));
+            throw new InvalidArgumentException(\sprintf('The helper "%s" is not defined.', $name));
         }
 
         return $this->helpers[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/OutputWrapper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/OutputWrapper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/OutputWrapper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/OutputWrapper.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
     private const URL_PATTERN = 'https?://\S+';
 
     public function __construct(
-        private bool $allowCutUrls = false
+        private bool $allowCutUrls = false,
     ) {
     }
 
@@ -59,7 +59,7 @@
             return $text;
         }
 
-        $tagPattern = sprintf('<(?:(?:%s)|/(?:%s)?)>', self::TAG_OPEN_REGEX_SEGMENT, self::TAG_CLOSE_REGEX_SEGMENT);
+        $tagPattern = \sprintf('<(?:(?:%s)|/(?:%s)?)>', self::TAG_OPEN_REGEX_SEGMENT, self::TAG_CLOSE_REGEX_SEGMENT);
         $limitPattern = "{1,$width}";
         $patternBlocks = [$tagPattern];
         if (!$this->allowCutUrls) {
@@ -68,7 +68,7 @@
         $patternBlocks[] = '.';
         $blocks = implode('|', $patternBlocks);
         $rowPattern = "(?:$blocks)$limitPattern";
-        $pattern = sprintf('#(?:((?>(%1$s)((?<=[^\S\r\n])[^\S\r\n]?|(?=\r?\n)|$|[^\S\r\n]))|(%1$s))(?:\r?\n)?|(?:\r?\n|$))#imux', $rowPattern);
+        $pattern = \sprintf('#(?:((?>(%1$s)((?<=[^\S\r\n])[^\S\r\n]?|(?=\r?\n)|$|[^\S\r\n]))|(%1$s))(?:\r?\n)?|(?:\r?\n|$))#imux', $rowPattern);
         $output = rtrim(preg_replace($pattern, '\\1'.$break, $text), $break);
 
         return str_replace(' '.$break, $break, $output);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/ProcessHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/ProcessHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/ProcessHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/ProcessHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
             $process = $cmd[0];
             unset($cmd[0]);
         } else {
-            throw new \InvalidArgumentException(sprintf('Invalid command provided to "%s()": the command should be an array whose first element is either the path to the binary to run or a "Process" object.', __METHOD__));
+            throw new \InvalidArgumentException(\sprintf('Invalid command provided to "%s()": the command should be an array whose first element is either the path to the binary to run or a "Process" object.', __METHOD__));
         }
 
         if ($verbosity <= $output->getVerbosity()) {
@@ -69,12 +69,12 @@
         $process->run($callback, $cmd);
 
         if ($verbosity <= $output->getVerbosity()) {
-            $message = $process->isSuccessful() ? 'Command ran successfully' : sprintf('%s Command did not run successfully', $process->getExitCode());
+            $message = $process->isSuccessful() ? 'Command ran successfully' : \sprintf('%s Command did not run successfully', $process->getExitCode());
             $output->write($formatter->stop(spl_object_hash($process), $message, $process->isSuccessful()));
         }
 
         if (!$process->isSuccessful() && null !== $error) {
-            $output->writeln(sprintf('<error>%s</error>', $this->escapeString($error)));
+            $output->writeln(\sprintf('<error>%s</error>', $this->escapeString($error)));
         }
 
         return $process;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/ProgressBar.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/ProgressBar.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/ProgressBar.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/ProgressBar.php	2026-05-20 10:56:49.000000000 +0200
@@ -539,7 +539,7 @@
     private static function initPlaceholderFormatters(): array
     {
         return [
-            'bar' => function (self $bar, OutputInterface $output) {
+            'bar' => static function (self $bar, OutputInterface $output) {
                 $completeBars = $bar->getBarOffset();
                 $display = str_repeat($bar->getBarCharacter(), $completeBars);
                 if ($completeBars < $bar->getBarWidth()) {
@@ -549,25 +549,25 @@
 
                 return $display;
             },
-            'elapsed' => fn (self $bar) => Helper::formatTime(time() - $bar->getStartTime(), 2),
-            'remaining' => function (self $bar) {
+            'elapsed' => static fn (self $bar) => Helper::formatTime(time() - $bar->getStartTime(), 2),
+            'remaining' => static function (self $bar) {
                 if (!$bar->getMaxSteps()) {
                     throw new LogicException('Unable to display the remaining time if the maximum number of steps is not set.');
                 }
 
                 return Helper::formatTime($bar->getRemaining(), 2);
             },
-            'estimated' => function (self $bar) {
+            'estimated' => static function (self $bar) {
                 if (!$bar->getMaxSteps()) {
                     throw new LogicException('Unable to display the estimated time if the maximum number of steps is not set.');
                 }
 
                 return Helper::formatTime($bar->getEstimated(), 2);
             },
-            'memory' => fn (self $bar) => Helper::formatMemory(memory_get_usage(true)),
-            'current' => fn (self $bar) => str_pad($bar->getProgress(), $bar->getStepWidth(), ' ', \STR_PAD_LEFT),
-            'max' => fn (self $bar) => $bar->getMaxSteps(),
-            'percent' => fn (self $bar) => floor($bar->getProgressPercent() * 100),
+            'memory' => static fn (self $bar) => Helper::formatMemory(memory_get_usage(true)),
+            'current' => static fn (self $bar) => str_pad($bar->getProgress(), $bar->getStepWidth(), ' ', \STR_PAD_LEFT),
+            'max' => static fn (self $bar) => $bar->getMaxSteps(),
+            'percent' => static fn (self $bar) => floor($bar->getProgressPercent() * 100),
         ];
     }
 
@@ -603,7 +603,7 @@
             }
 
             if (isset($matches[2])) {
-                $text = sprintf('%'.$matches[2], $text);
+                $text = \sprintf('%'.$matches[2], $text);
             }
 
             return $text;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/ProgressIndicator.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/ProgressIndicator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/ProgressIndicator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/ProgressIndicator.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Symfony\Component\Console\Exception\InvalidArgumentException;
 use Symfony\Component\Console\Exception\LogicException;
+use Symfony\Component\Console\Output\ConsoleSectionOutput;
 use Symfony\Component\Console\Output\OutputInterface;
 
 /**
@@ -140,7 +141,9 @@
 
         $this->message = $message;
         $this->display();
-        $this->output->writeln('');
+        if (!$this->output instanceof ConsoleSectionOutput) {
+            $this->output->writeln('');
+        }
         $this->started = false;
     }
 
@@ -207,7 +210,9 @@
      */
     private function overwrite(string $message): void
     {
-        if ($this->output->isDecorated()) {
+        if ($this->output instanceof ConsoleSectionOutput) {
+            $this->output->overwrite($message);
+        } elseif ($this->output->isDecorated()) {
             $this->output->write("\x0D\x1B[2K");
             $this->output->write($message);
         } else {
@@ -226,10 +231,10 @@
     private static function initPlaceholderFormatters(): array
     {
         return [
-            'indicator' => fn (self $indicator) => $indicator->indicatorValues[$indicator->indicatorCurrent % \count($indicator->indicatorValues)],
-            'message' => fn (self $indicator) => $indicator->message,
-            'elapsed' => fn (self $indicator) => Helper::formatTime(time() - $indicator->startTime, 2),
-            'memory' => fn () => Helper::formatMemory(memory_get_usage(true)),
+            'indicator' => static fn (self $indicator) => $indicator->indicatorValues[$indicator->indicatorCurrent % \count($indicator->indicatorValues)],
+            'message' => static fn (self $indicator) => $indicator->message,
+            'elapsed' => static fn (self $indicator) => Helper::formatTime(time() - $indicator->startTime, 2),
+            'memory' => static fn () => Helper::formatMemory(memory_get_usage(true)),
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/QuestionHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/QuestionHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/QuestionHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/QuestionHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -220,7 +220,7 @@
         foreach ($choices as $key => $value) {
             $padding = str_repeat(' ', $maxWidth - self::width($key));
 
-            $messages[] = sprintf("  [<$tag>%s$padding</$tag>] %s", $key, $value);
+            $messages[] = \sprintf("  [<$tag>%s$padding</$tag>] %s", $key, $value);
         }
 
         return $messages;
@@ -258,11 +258,7 @@
         $ofs = -1;
         $matches = $autocomplete($ret);
         $numMatches = \count($matches);
-
-        $sttyMode = shell_exec('stty -g');
-        $isStdin = 'php://stdin' === (stream_get_meta_data($inputStream)['uri'] ?? null);
-        $r = [$inputStream];
-        $w = [];
+        $inputHelper = new TerminalInputHelper($inputStream);
 
         // Disable icanon (so we can fread each keypress) and echo (we'll do echoing here instead)
         shell_exec('stty -icanon -echo');
@@ -272,15 +268,13 @@
 
         // Read a keypress
         while (!feof($inputStream)) {
-            while ($isStdin && 0 === @stream_select($r, $w, $w, 0, 100)) {
-                // Give signal handlers a chance to run
-                $r = [$inputStream];
-            }
+            $inputHelper->waitForInput();
             $c = fread($inputStream, 1);
 
             // as opposed to fgets(), fread() returns an empty string when the stream content is empty, not false.
             if (false === $c || ('' === $ret && '' === $c && null === $question->getDefault())) {
-                shell_exec('stty '.$sttyMode);
+                // Restore the terminal so it behaves normally again
+                $inputHelper->finish();
                 throw new MissingInputException('Aborted.');
             } elseif ("\177" === $c) { // Backspace Character
                 if (0 === $numMatches && 0 !== $i) {
@@ -317,19 +311,19 @@
                     $ofs += ('A' === $c[2]) ? -1 : 1;
                     $ofs = ($numMatches + $ofs) % $numMatches;
                 }
-            } elseif (\ord($c) < 32) {
+            } elseif ('' === $c || \ord($c) < 32) {
                 if ("\t" === $c || "\n" === $c) {
                     if ($numMatches > 0 && -1 !== $ofs) {
                         $ret = (string) $matches[$ofs];
                         // Echo out remaining chars for current match
-                        $remainingCharacters = substr($ret, \strlen(trim($this->mostRecentlyEnteredValue($fullChoice))));
+                        $remainingCharacters = substr($ret, \strlen($this->mostRecentlyEnteredValue($fullChoice)));
                         $output->write($remainingCharacters);
                         $fullChoice .= $remainingCharacters;
                         $i = (false === $encoding = mb_detect_encoding($fullChoice, null, true)) ? \strlen($fullChoice) : mb_strlen($fullChoice, $encoding);
 
                         $matches = array_filter(
                             $autocomplete($ret),
-                            fn ($match) => '' === $ret || str_starts_with($match, $ret)
+                            static fn ($match) => '' === $ret || str_starts_with($match, $ret)
                         );
                         $numMatches = \count($matches);
                         $ofs = -1;
@@ -376,14 +370,14 @@
             if ($numMatches > 0 && -1 !== $ofs) {
                 $cursor->savePosition();
                 // Write highlighted text, complete the partially entered response
-                $charactersEntered = \strlen(trim($this->mostRecentlyEnteredValue($fullChoice)));
+                $charactersEntered = \strlen($this->mostRecentlyEnteredValue($fullChoice));
                 $output->write('<hl>'.OutputFormatter::escapeTrailingBackslash(substr($matches[$ofs], $charactersEntered)).'</hl>');
                 $cursor->restorePosition();
             }
         }
 
-        // Reset stty so it behaves normally again
-        shell_exec('stty '.$sttyMode);
+        // Restore the terminal so it behaves normally again
+        $inputHelper->finish();
 
         return $fullChoice;
     }
@@ -434,27 +428,25 @@
             return $value;
         }
 
+        $inputHelper = null;
+
         if (self::$stty && Terminal::hasSttyAvailable()) {
-            $sttyMode = shell_exec('stty -g');
+            $inputHelper = new TerminalInputHelper($inputStream);
             shell_exec('stty -echo');
         } elseif ($this->isInteractiveInput($inputStream)) {
             throw new RuntimeException('Unable to hide the response.');
         }
 
-        $value = fgets($inputStream, 4096);
+        $value = $this->doReadInput($inputStream, helper: $inputHelper);
 
         if (4095 === \strlen($value)) {
             $errOutput = $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output;
             $errOutput->warning('The value was possibly truncated by your shell or terminal emulator');
         }
 
-        if (self::$stty && Terminal::hasSttyAvailable()) {
-            shell_exec('stty '.$sttyMode);
-        }
+        // Restore the terminal so it behaves normally again
+        $inputHelper?->finish();
 
-        if (false === $value) {
-            throw new MissingInputException('Aborted.');
-        }
         if ($trimmable) {
             $value = trim($value);
         }
@@ -482,6 +474,8 @@
 
             try {
                 return $question->getValidator()($interviewer());
+            } catch (MissingInputException $e) {
+                throw $error ?? $e;
             } catch (RuntimeException $e) {
                 throw $e;
             } catch (\Exception $error) {
@@ -514,7 +508,7 @@
     {
         if (!$question->isMultiline()) {
             $cp = $this->setIOCodepage();
-            $ret = fgets($inputStream, 4096);
+            $ret = $this->doReadInput($inputStream);
 
             return $this->resetIOCodepage($cp, $ret);
         }
@@ -524,13 +518,11 @@
             return false;
         }
 
-        $ret = '';
         $cp = $this->setIOCodepage();
-        while (false !== ($char = fgetc($multiLineStreamReader))) {
-            if (\PHP_EOL === "{$ret}{$char}") {
-                break;
-            }
-            $ret .= $char;
+        $ret = $this->doReadInput($multiLineStreamReader, "\x4");
+
+        if (stream_get_meta_data($inputStream)['seekable']) {
+            fseek($inputStream, ftell($multiLineStreamReader));
         }
 
         return $this->resetIOCodepage($cp, $ret);
@@ -597,4 +589,35 @@
 
         return $cloneStream;
     }
+
+    /**
+     * @param resource $inputStream
+     */
+    private function doReadInput($inputStream, ?string $exitChar = null, ?TerminalInputHelper $helper = null): string
+    {
+        $ret = '';
+        $helper ??= new TerminalInputHelper($inputStream, false);
+
+        while (!feof($inputStream)) {
+            $helper->waitForInput();
+            $char = fread($inputStream, 1);
+
+            // as opposed to fgets(), fread() returns an empty string when the stream content is empty, not false.
+            if (false === $char || ('' === $ret && '' === $char)) {
+                throw new MissingInputException('Aborted.');
+            }
+
+            if (\PHP_EOL === "{$ret}{$char}" || $exitChar === $char) {
+                break;
+            }
+
+            $ret .= $char;
+
+            if (null === $exitChar && "\n" === $char) {
+                break;
+            }
+        }
+
+        return $ret;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/SymfonyQuestionHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/SymfonyQuestionHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/SymfonyQuestionHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/SymfonyQuestionHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,17 +34,17 @@
         $default = $question->getDefault();
 
         if ($question->isMultiline()) {
-            $text .= sprintf(' (press %s to continue)', $this->getEofShortcut());
+            $text .= \sprintf(' (press %s to continue)', $this->getEofShortcut($output));
         }
 
         switch (true) {
             case null === $default:
-                $text = sprintf(' <info>%s</info>:', $text);
+                $text = \sprintf(' <info>%s</info>:', $text);
 
                 break;
 
             case $question instanceof ConfirmationQuestion:
-                $text = sprintf(' <info>%s (yes/no)</info> [<comment>%s</comment>]:', $text, $default ? 'yes' : 'no');
+                $text = \sprintf(' <info>%s (yes/no)</info> [<comment>%s</comment>]:', $text, $default ? 'yes' : 'no');
 
                 break;
 
@@ -56,18 +56,18 @@
                     $default[$key] = $choices[trim($value)];
                 }
 
-                $text = sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, OutputFormatter::escape(implode(', ', $default)));
+                $text = \sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, OutputFormatter::escape(implode(', ', $default)));
 
                 break;
 
             case $question instanceof ChoiceQuestion:
                 $choices = $question->getChoices();
-                $text = sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, OutputFormatter::escape($choices[$default] ?? $default));
+                $text = \sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, OutputFormatter::escape($choices[$default] ?? $default));
 
                 break;
 
             default:
-                $text = sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, OutputFormatter::escape($default));
+                $text = \sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, OutputFormatter::escape($default));
         }
 
         $output->writeln($text);
@@ -98,9 +98,9 @@
         parent::writeError($output, $error);
     }
 
-    private function getEofShortcut(): string
+    private function getEofShortcut(OutputInterface $output): string
     {
-        if ('Windows' === \PHP_OS_FAMILY) {
+        if ('\\' === \DIRECTORY_SEPARATOR && !$output->isDecorated()) {
             return '<comment>Ctrl+Z</comment> then <comment>Enter</comment>';
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/TableCell.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/TableCell.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/TableCell.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/TableCell.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
 
         // check option names
         if ($diff = array_diff(array_keys($options), array_keys($this->options))) {
-            throw new InvalidArgumentException(sprintf('The TableCell does not support the following options: \'%s\'.', implode('\', \'', $diff)));
+            throw new InvalidArgumentException(\sprintf('The TableCell does not support the following options: \'%s\'.', implode('\', \'', $diff)));
         }
 
         if (isset($options['style']) && !$options['style'] instanceof TableCellStyle) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/TableCellStyle.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/TableCellStyle.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/TableCellStyle.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/TableCellStyle.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,11 +43,11 @@
     public function __construct(array $options = [])
     {
         if ($diff = array_diff(array_keys($options), array_keys($this->options))) {
-            throw new InvalidArgumentException(sprintf('The TableCellStyle does not support the following options: \'%s\'.', implode('\', \'', $diff)));
+            throw new InvalidArgumentException(\sprintf('The TableCellStyle does not support the following options: \'%s\'.', implode('\', \'', $diff)));
         }
 
         if (isset($options['align']) && !\array_key_exists($options['align'], self::ALIGN_MAP)) {
-            throw new InvalidArgumentException(sprintf('Wrong align value. Value must be following: \'%s\'.', implode('\', \'', array_keys(self::ALIGN_MAP))));
+            throw new InvalidArgumentException(\sprintf('Wrong align value. Value must be following: \'%s\'.', implode('\', \'', array_keys(self::ALIGN_MAP))));
         }
 
         $this->options = array_merge($this->options, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/Table.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/Table.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/Table.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/Table.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
     {
         self::$styles ??= self::initStyles();
 
-        return self::$styles[$name] ?? throw new InvalidArgumentException(sprintf('Style "%s" is not defined.', $name));
+        return self::$styles[$name] ?? throw new InvalidArgumentException(\sprintf('Style "%s" is not defined.', $name));
     }
 
     /**
@@ -168,7 +168,7 @@
     public function setColumnMaxWidth(int $columnIndex, int $width): static
     {
         if (!$this->output->getFormatter() instanceof WrappableOutputFormatterInterface) {
-            throw new \LogicException(sprintf('Setting a maximum column width is only supported when using a "%s" formatter, got "%s".', WrappableOutputFormatterInterface::class, get_debug_type($this->output->getFormatter())));
+            throw new \LogicException(\sprintf('Setting a maximum column width is only supported when using a "%s" formatter, got "%s".', WrappableOutputFormatterInterface::class, get_debug_type($this->output->getFormatter())));
         }
 
         $this->columnMaxWidths[$columnIndex] = $width;
@@ -237,7 +237,7 @@
     public function appendRow(TableSeparator|array $row): static
     {
         if (!$this->output instanceof ConsoleSectionOutput) {
-            throw new RuntimeException(sprintf('Output should be an instance of "%s" when calling "%s".', ConsoleSectionOutput::class, __METHOD__));
+            throw new RuntimeException(\sprintf('Output should be an instance of "%s" when calling "%s".', ConsoleSectionOutput::class, __METHOD__));
         }
 
         if ($this->rendered) {
@@ -370,14 +370,14 @@
                     foreach ($parts as $idx => $part) {
                         if ($headers && !$containsColspan) {
                             if (0 === $idx) {
-                                $rows[] = [sprintf(
+                                $rows[] = [\sprintf(
                                     '<comment>%s%s</>: %s',
                                     str_repeat(' ', $maxHeaderLength - Helper::width(Helper::removeDecoration($formatter, $headers[$i] ?? ''))),
                                     $headers[$i] ?? '',
                                     $part
                                 )];
                             } else {
-                                $rows[] = [sprintf(
+                                $rows[] = [\sprintf(
                                     '%s  %s',
                                     str_pad('', $maxHeaderLength, ' ', \STR_PAD_LEFT),
                                     $part
@@ -497,12 +497,12 @@
         }
 
         if (null !== $title) {
-            $titleLength = Helper::width(Helper::removeDecoration($formatter = $this->output->getFormatter(), $formattedTitle = sprintf($titleFormat, $title)));
+            $titleLength = Helper::width(Helper::removeDecoration($formatter = $this->output->getFormatter(), $formattedTitle = \sprintf($titleFormat, $title)));
             $markupLength = Helper::width($markup);
             if ($titleLength > $limit = $markupLength - 4) {
                 $titleLength = $limit;
-                $formatLength = Helper::width(Helper::removeDecoration($formatter, sprintf($titleFormat, '')));
-                $formattedTitle = sprintf($titleFormat, Helper::substr($title, 0, $limit - $formatLength - 3).'...');
+                $formatLength = Helper::width(Helper::removeDecoration($formatter, \sprintf($titleFormat, '')));
+                $formattedTitle = \sprintf($titleFormat, Helper::substr($title, 0, $limit - $formatLength - 3).'...');
             }
 
             $titleStart = intdiv($markupLength - $titleLength, 2);
@@ -513,7 +513,7 @@
             }
         }
 
-        $this->output->writeln(sprintf($this->style->getBorderFormat(), $markup));
+        $this->output->writeln(\sprintf($this->style->getBorderFormat(), $markup));
     }
 
     /**
@@ -523,7 +523,7 @@
     {
         $borders = $this->style->getBorderChars();
 
-        return sprintf($this->style->getBorderFormat(), self::BORDER_OUTSIDE === $type ? $borders[1] : $borders[3]);
+        return \sprintf($this->style->getBorderFormat(), self::BORDER_OUTSIDE === $type ? $borders[1] : $borders[3]);
     }
 
     /**
@@ -564,18 +564,15 @@
         }
 
         // str_pad won't work properly with multi-byte strings, we need to fix the padding
-        if (false !== $encoding = mb_detect_encoding($cell, null, true)) {
-            $width += \strlen($cell) - mb_strwidth($cell, $encoding);
-        }
-
+        $width += \strlen($cell) - Helper::width($cell) - substr_count($cell, "\0");
         $style = $this->getColumnStyle($column);
 
         if ($cell instanceof TableSeparator) {
-            return sprintf($style->getBorderFormat(), str_repeat($style->getBorderChars()[2], $width));
+            return \sprintf($style->getBorderFormat(), str_repeat($style->getBorderChars()[2], $width));
         }
 
         $width += Helper::length($cell) - Helper::length(Helper::removeDecoration($this->output->getFormatter(), $cell));
-        $content = sprintf($style->getCellRowContentFormat(), $cell);
+        $content = \sprintf($style->getCellRowContentFormat(), $cell);
 
         $padType = $style->getPadType();
         if ($cell instanceof TableCell && $cell->getStyle() instanceof TableCellStyle) {
@@ -600,7 +597,7 @@
             $padType = $cell->getStyle()->getPadByAlign();
         }
 
-        return sprintf($cellFormat, str_pad($content, $width, $style->getPaddingChar(), $padType));
+        return \sprintf($cellFormat, str_pad($content, $width, $style->getPaddingChar(), $padType));
     }
 
     /**
@@ -632,8 +629,48 @@
             foreach ($rows[$rowKey] as $column => $cell) {
                 $colspan = $cell instanceof TableCell ? $cell->getColspan() : 1;
 
-                if (isset($this->columnMaxWidths[$column]) && Helper::width(Helper::removeDecoration($formatter, $cell)) > $this->columnMaxWidths[$column]) {
-                    $cell = $formatter->formatAndWrap($cell, $this->columnMaxWidths[$column] * $colspan);
+                $minWrappedWidth = 0;
+                $widthApplied = [];
+                $lengthColumnBorder = $this->getColumnSeparatorWidth() + Helper::width($this->style->getCellRowContentFormat()) - 2;
+                for ($i = $column; $i < ($column + $colspan); ++$i) {
+                    if (isset($this->columnMaxWidths[$i])) {
+                        $minWrappedWidth += $this->columnMaxWidths[$i];
+                        $widthApplied[] = ['type' => 'max', 'column' => $i];
+                    } elseif (($this->columnWidths[$i] ?? 0) > 0 && $colspan > 1) {
+                        $minWrappedWidth += $this->columnWidths[$i];
+                        $widthApplied[] = ['type' => 'min', 'column' => $i];
+                    }
+                }
+                if (1 === \count($widthApplied)) {
+                    if ($colspan > 1) {
+                        $minWrappedWidth *= $colspan;  // previous logic
+                    }
+                } elseif (\count($widthApplied) > 1) {
+                    $minWrappedWidth += (\count($widthApplied) - 1) * $lengthColumnBorder;
+                }
+
+                $cellWidth = Helper::width(Helper::removeDecoration($formatter, $cell));
+                if ($minWrappedWidth && $cellWidth > $minWrappedWidth) {
+                    $cell = $formatter->formatAndWrap($cell, $minWrappedWidth);
+                }
+                // update minimal columnWidths for spanned columns
+                if ($colspan > 1 && $minWrappedWidth > 0) {
+                    $columnsMinWidthProcessed = [];
+                    $cellWidth = min($cellWidth, $minWrappedWidth);
+                    foreach ($widthApplied as $item) {
+                        if ('max' === $item['type'] && $cellWidth >= $this->columnMaxWidths[$item['column']]) {
+                            $minWidthColumn = $this->columnMaxWidths[$item['column']];
+                            $this->columnWidths[$item['column']] = $minWidthColumn;
+                            $columnsMinWidthProcessed[$item['column']] = true;
+                            $cellWidth -= $minWidthColumn + $lengthColumnBorder;
+                        }
+                    }
+                    for ($i = $column; $i < ($column + $colspan); ++$i) {
+                        if (isset($columnsMinWidthProcessed[$i])) {
+                            continue;
+                        }
+                        $this->columnWidths[$i] = $cellWidth + $lengthColumnBorder;
+                    }
                 }
                 if (!str_contains($cell ?? '', "\n")) {
                     continue;
@@ -697,7 +734,7 @@
         $unmergedRows = [];
         foreach ($rows[$line] as $column => $cell) {
             if (null !== $cell && !$cell instanceof TableCell && !\is_scalar($cell) && !$cell instanceof \Stringable) {
-                throw new InvalidArgumentException(sprintf('A cell must be a TableCell, a scalar or an object implementing "__toString()", "%s" given.', get_debug_type($cell)));
+                throw new InvalidArgumentException(\sprintf('A cell must be a TableCell, a scalar or an object implementing "__toString()", "%s" given.', get_debug_type($cell)));
             }
             if ($cell instanceof TableCell && $cell->getRowspan() > 1) {
                 $nbLines = $cell->getRowspan() - 1;
@@ -842,7 +879,7 @@
 
     private function getColumnSeparatorWidth(): int
     {
-        return Helper::width(sprintf($this->style->getBorderFormat(), $this->style->getBorderChars()[3]));
+        return Helper::width(\sprintf($this->style->getBorderFormat(), $this->style->getBorderChars()[3]));
     }
 
     private function getCellWidth(array $row, int $column): int
@@ -925,6 +962,6 @@
             return $name;
         }
 
-        return self::$styles[$name] ?? throw new InvalidArgumentException(sprintf('Style "%s" is not defined.', $name));
+        return self::$styles[$name] ?? throw new InvalidArgumentException(\sprintf('Style "%s" is not defined.', $name));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/TableStyle.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/TableStyle.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/TableStyle.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/TableStyle.php	2026-05-20 10:56:49.000000000 +0200
@@ -77,10 +77,11 @@
      *
      * <code>
      * ╔═══════════════╤══════════════════════════╤══════════════════╗
-     * 1 ISBN          2 Title                    │ Author           ║
-     * ╠═══════════════╪══════════════════════════╪══════════════════╣
+     * ║ ISBN          │ Title                    │ Author           ║
+     * ╠═══════1═══════╪══════════════════════════╪══════════════════╣
      * ║ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  ║
      * ║ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  ║
+     * ╟───────2───────┼──────────────────────────┼──────────────────╢
      * ║ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien ║
      * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  ║
      * ╚═══════════════╧══════════════════════════╧══════════════════╝
@@ -101,11 +102,10 @@
      *
      * <code>
      * ╔═══════════════╤══════════════════════════╤══════════════════╗
-     * ║ ISBN          │ Title                    │ Author           ║
-     * ╠═══════1═══════╪══════════════════════════╪══════════════════╣
+     * 1 ISBN          2 Title                    │ Author           ║
+     * ╠═══════════════╪══════════════════════════╪══════════════════╣
      * ║ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  ║
      * ║ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  ║
-     * ╟───────2───────┼──────────────────────────┼──────────────────╢
      * ║ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien ║
      * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  ║
      * ╚═══════════════╧══════════════════════════╧══════════════════╝
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/TerminalInputHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/TerminalInputHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Helper/TerminalInputHelper.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Helper/TerminalInputHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,156 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Console\Helper;
+
+/**
+ * TerminalInputHelper stops Ctrl-C and similar signals from leaving the terminal in
+ * an unusable state if its settings have been modified when reading user input.
+ * This can be an issue on non-Windows platforms.
+ *
+ * Usage:
+ *
+ *     $inputHelper = new TerminalInputHelper($inputStream);
+ *
+ *     ...change terminal settings
+ *
+ *     // Wait for input before all input reads
+ *     $inputHelper->waitForInput();
+ *
+ *     ...read input
+ *
+ *     // Call finish to restore terminal settings and signal handlers
+ *     $inputHelper->finish()
+ *
+ * @internal
+ */
+final class TerminalInputHelper
+{
+    /** @var resource */
+    private $inputStream;
+    private bool $isStdin;
+    private string $initialState = '';
+    private int $signalToKill = 0;
+    private array $signalHandlers = [];
+    private array $targetSignals = [];
+    private bool $withStty;
+
+    /**
+     * @param resource $inputStream
+     *
+     * @throws \RuntimeException If unable to read terminal settings
+     */
+    public function __construct($inputStream, bool $withStty = true)
+    {
+        $this->inputStream = $inputStream;
+        $this->isStdin = 'php://stdin' === stream_get_meta_data($inputStream)['uri'];
+        $this->withStty = $withStty;
+
+        if ($withStty) {
+            if (!\is_string($state = shell_exec('stty -g'))) {
+                throw new \RuntimeException('Unable to read the terminal settings.');
+            }
+
+            $this->initialState = $state;
+
+            $this->createSignalHandlers();
+        }
+    }
+
+    /**
+     * Waits for input.
+     */
+    public function waitForInput(): void
+    {
+        if ($this->isStdin) {
+            $r = [$this->inputStream];
+            $w = [];
+
+            // Allow signal handlers to run
+            while (0 === @stream_select($r, $w, $w, 0, 100)) {
+                $r = [$this->inputStream];
+            }
+        }
+
+        if ($this->withStty) {
+            $this->checkForKillSignal();
+        }
+    }
+
+    /**
+     * Restores terminal state and signal handlers.
+     */
+    public function finish(): void
+    {
+        if (!$this->withStty) {
+            return;
+        }
+
+        // Safeguard in case an unhandled kill signal exists
+        $this->checkForKillSignal();
+        shell_exec('stty '.$this->initialState);
+        $this->signalToKill = 0;
+
+        foreach ($this->signalHandlers as $signal => $originalHandler) {
+            pcntl_signal($signal, $originalHandler);
+        }
+        $this->signalHandlers = [];
+        $this->targetSignals = [];
+    }
+
+    private function createSignalHandlers(): void
+    {
+        if (!\function_exists('pcntl_async_signals') || !\function_exists('pcntl_signal')) {
+            return;
+        }
+
+        pcntl_async_signals(true);
+        $this->targetSignals = [\SIGINT, \SIGQUIT, \SIGTERM];
+
+        foreach ($this->targetSignals as $signal) {
+            $this->signalHandlers[$signal] = pcntl_signal_get_handler($signal);
+
+            pcntl_signal($signal, function ($signal) {
+                // Save current state, then restore to initial state
+                $currentState = shell_exec('stty -g');
+                shell_exec('stty '.$this->initialState);
+                $originalHandler = $this->signalHandlers[$signal];
+
+                if (\is_callable($originalHandler)) {
+                    $originalHandler($signal);
+                    // Handler did not exit, so restore to current state
+                    shell_exec('stty '.$currentState);
+
+                    return;
+                }
+
+                // Not a callable, so SIG_DFL or SIG_IGN
+                if (\SIG_DFL === $originalHandler) {
+                    $this->signalToKill = $signal;
+                }
+            });
+        }
+    }
+
+    private function checkForKillSignal(): void
+    {
+        if (\in_array($this->signalToKill, $this->targetSignals, true)) {
+            // Try posix_kill
+            if (\function_exists('posix_kill')) {
+                pcntl_signal($this->signalToKill, \SIG_DFL);
+                posix_kill(getmypid(), $this->signalToKill);
+            }
+
+            // Best attempt fallback
+            exit(128 + $this->signalToKill);
+        }
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/ArgvInput.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/ArgvInput.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/ArgvInput.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/ArgvInput.php	2026-05-20 10:56:49.000000000 +0200
@@ -122,7 +122,7 @@
         for ($i = 0; $i < $len; ++$i) {
             if (!$this->definition->hasShortcut($name[$i])) {
                 $encoding = mb_detect_encoding($name, null, true);
-                throw new RuntimeException(sprintf('The "-%s" option does not exist.', false === $encoding ? $name[$i] : mb_substr($name, $i, 1, $encoding)));
+                throw new RuntimeException(\sprintf('The "-%s" option does not exist.', false === $encoding ? $name[$i] : mb_substr($name, $i, 1, $encoding)));
             }
 
             $option = $this->definition->getOptionForShortcut($name[$i]);
@@ -130,9 +130,8 @@
                 $this->addLongOption($option->getName(), $i === $len - 1 ? null : substr($name, $i + 1));
 
                 break;
-            } else {
-                $this->addLongOption($option->getName(), null);
             }
+            $this->addLongOption($option->getName(), null);
         }
     }
 
@@ -176,21 +175,21 @@
         } else {
             $all = $this->definition->getArguments();
             $symfonyCommandName = null;
-            if (($inputArgument = $all[$key = array_key_first($all)] ?? null) && 'command' === $inputArgument->getName()) {
+            if (($inputArgument = $all[$key = array_key_first($all) ?? ''] ?? null) && 'command' === $inputArgument->getName()) {
                 $symfonyCommandName = $this->arguments['command'] ?? null;
                 unset($all[$key]);
             }
 
             if (\count($all)) {
                 if ($symfonyCommandName) {
-                    $message = sprintf('Too many arguments to "%s" command, expected arguments "%s".', $symfonyCommandName, implode('" "', array_keys($all)));
+                    $message = \sprintf('Too many arguments to "%s" command, expected arguments "%s".', $symfonyCommandName, implode('" "', array_keys($all)));
                 } else {
-                    $message = sprintf('Too many arguments, expected arguments "%s".', implode('" "', array_keys($all)));
+                    $message = \sprintf('Too many arguments, expected arguments "%s".', implode('" "', array_keys($all)));
                 }
             } elseif ($symfonyCommandName) {
-                $message = sprintf('No arguments expected for "%s" command, got "%s".', $symfonyCommandName, $token);
+                $message = \sprintf('No arguments expected for "%s" command, got "%s".', $symfonyCommandName, $token);
             } else {
-                $message = sprintf('No arguments expected, got "%s".', $token);
+                $message = \sprintf('No arguments expected, got "%s".', $token);
             }
 
             throw new RuntimeException($message);
@@ -205,7 +204,7 @@
     private function addShortOption(string $shortcut, mixed $value): void
     {
         if (!$this->definition->hasShortcut($shortcut)) {
-            throw new RuntimeException(sprintf('The "-%s" option does not exist.', $shortcut));
+            throw new RuntimeException(\sprintf('The "-%s" option does not exist.', $shortcut));
         }
 
         $this->addLongOption($this->definition->getOptionForShortcut($shortcut)->getName(), $value);
@@ -220,12 +219,12 @@
     {
         if (!$this->definition->hasOption($name)) {
             if (!$this->definition->hasNegation($name)) {
-                throw new RuntimeException(sprintf('The "--%s" option does not exist.', $name));
+                throw new RuntimeException(\sprintf('The "--%s" option does not exist.', $name));
             }
 
             $optionName = $this->definition->negationToName($name);
             if (null !== $value) {
-                throw new RuntimeException(sprintf('The "--%s" option does not accept a value.', $name));
+                throw new RuntimeException(\sprintf('The "--%s" option does not accept a value.', $name));
             }
             $this->options[$optionName] = false;
 
@@ -235,7 +234,7 @@
         $option = $this->definition->getOption($name);
 
         if (null !== $value && !$option->acceptValue()) {
-            throw new RuntimeException(sprintf('The "--%s" option does not accept a value.', $name));
+            throw new RuntimeException(\sprintf('The "--%s" option does not accept a value.', $name));
         }
 
         if (\in_array($value, ['', null], true) && $option->acceptValue() && \count($this->parsed)) {
@@ -251,7 +250,7 @@
 
         if (null === $value) {
             if ($option->isValueRequired()) {
-                throw new RuntimeException(sprintf('The "--%s" option requires a value.', $name));
+                throw new RuntimeException(\sprintf('The "--%s" option requires a value.', $name));
             }
 
             if (!$option->isArray() && !$option->isValueOptional()) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/ArrayInput.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/ArrayInput.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/ArrayInput.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/ArrayInput.php	2026-05-20 10:56:49.000000000 +0200
@@ -140,7 +140,7 @@
     private function addShortOption(string $shortcut, mixed $value): void
     {
         if (!$this->definition->hasShortcut($shortcut)) {
-            throw new InvalidOptionException(sprintf('The "-%s" option does not exist.', $shortcut));
+            throw new InvalidOptionException(\sprintf('The "-%s" option does not exist.', $shortcut));
         }
 
         $this->addLongOption($this->definition->getOptionForShortcut($shortcut)->getName(), $value);
@@ -156,7 +156,7 @@
     {
         if (!$this->definition->hasOption($name)) {
             if (!$this->definition->hasNegation($name)) {
-                throw new InvalidOptionException(sprintf('The "--%s" option does not exist.', $name));
+                throw new InvalidOptionException(\sprintf('The "--%s" option does not exist.', $name));
             }
 
             $optionName = $this->definition->negationToName($name);
@@ -169,7 +169,7 @@
 
         if (null === $value) {
             if ($option->isValueRequired()) {
-                throw new InvalidOptionException(sprintf('The "--%s" option requires a value.', $name));
+                throw new InvalidOptionException(\sprintf('The "--%s" option requires a value.', $name));
             }
 
             if (!$option->isValueOptional()) {
@@ -188,7 +188,7 @@
     private function addArgument(string|int $name, mixed $value): void
     {
         if (!$this->definition->hasArgument($name)) {
-            throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
+            throw new InvalidArgumentException(\sprintf('The "%s" argument does not exist.', $name));
         }
 
         $this->arguments[$name] = $value;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/InputArgument.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/InputArgument.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/InputArgument.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/InputArgument.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
 
     private string $name;
     private int $mode;
-    private string|int|bool|array|null|float $default;
+    private string|int|bool|array|float|null $default;
     private array|\Closure $suggestedValues;
     private string $description;
 
@@ -49,7 +49,7 @@
         if (null === $mode) {
             $mode = self::OPTIONAL;
         } elseif ($mode > 7 || $mode < 1) {
-            throw new InvalidArgumentException(sprintf('Argument mode "%s" is not valid.', $mode));
+            throw new InvalidArgumentException(\sprintf('Argument mode "%s" is not valid.', $mode));
         }
 
         $this->name = $name;
@@ -137,7 +137,7 @@
     {
         $values = $this->suggestedValues;
         if ($values instanceof \Closure && !\is_array($values = $values($input))) {
-            throw new LogicException(sprintf('Closure for argument "%s" must return an array. Got "%s".', $this->name, get_debug_type($values)));
+            throw new LogicException(\sprintf('Closure for argument "%s" must return an array. Got "%s".', $this->name, get_debug_type($values)));
         }
         if ($values) {
             $suggestions->suggestValues($values);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/InputDefinition.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/InputDefinition.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/InputDefinition.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/InputDefinition.php	2026-05-20 10:56:49.000000000 +0200
@@ -105,15 +105,15 @@
     public function addArgument(InputArgument $argument)
     {
         if (isset($this->arguments[$argument->getName()])) {
-            throw new LogicException(sprintf('An argument with name "%s" already exists.', $argument->getName()));
+            throw new LogicException(\sprintf('An argument with name "%s" already exists.', $argument->getName()));
         }
 
         if (null !== $this->lastArrayArgument) {
-            throw new LogicException(sprintf('Cannot add a required argument "%s" after an array argument "%s".', $argument->getName(), $this->lastArrayArgument->getName()));
+            throw new LogicException(\sprintf('Cannot add a required argument "%s" after an array argument "%s".', $argument->getName(), $this->lastArrayArgument->getName()));
         }
 
         if ($argument->isRequired() && null !== $this->lastOptionalArgument) {
-            throw new LogicException(sprintf('Cannot add a required argument "%s" after an optional one "%s".', $argument->getName(), $this->lastOptionalArgument->getName()));
+            throw new LogicException(\sprintf('Cannot add a required argument "%s" after an optional one "%s".', $argument->getName(), $this->lastOptionalArgument->getName()));
         }
 
         if ($argument->isArray()) {
@@ -137,7 +137,7 @@
     public function getArgument(string|int $name): InputArgument
     {
         if (!$this->hasArgument($name)) {
-            throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
+            throw new InvalidArgumentException(\sprintf('The "%s" argument does not exist.', $name));
         }
 
         $arguments = \is_int($name) ? array_values($this->arguments) : $this->arguments;
@@ -231,16 +231,16 @@
     public function addOption(InputOption $option)
     {
         if (isset($this->options[$option->getName()]) && !$option->equals($this->options[$option->getName()])) {
-            throw new LogicException(sprintf('An option named "%s" already exists.', $option->getName()));
+            throw new LogicException(\sprintf('An option named "%s" already exists.', $option->getName()));
         }
         if (isset($this->negations[$option->getName()])) {
-            throw new LogicException(sprintf('An option named "%s" already exists.', $option->getName()));
+            throw new LogicException(\sprintf('An option named "%s" already exists.', $option->getName()));
         }
 
         if ($option->getShortcut()) {
             foreach (explode('|', $option->getShortcut()) as $shortcut) {
                 if (isset($this->shortcuts[$shortcut]) && !$option->equals($this->options[$this->shortcuts[$shortcut]])) {
-                    throw new LogicException(sprintf('An option with shortcut "%s" already exists.', $shortcut));
+                    throw new LogicException(\sprintf('An option with shortcut "%s" already exists.', $shortcut));
                 }
             }
         }
@@ -255,7 +255,7 @@
         if ($option->isNegatable()) {
             $negatedName = 'no-'.$option->getName();
             if (isset($this->options[$negatedName])) {
-                throw new LogicException(sprintf('An option named "%s" already exists.', $negatedName));
+                throw new LogicException(\sprintf('An option named "%s" already exists.', $negatedName));
             }
             $this->negations[$negatedName] = $option->getName();
         }
@@ -269,7 +269,7 @@
     public function getOption(string $name): InputOption
     {
         if (!$this->hasOption($name)) {
-            throw new InvalidArgumentException(sprintf('The "--%s" option does not exist.', $name));
+            throw new InvalidArgumentException(\sprintf('The "--%s" option does not exist.', $name));
         }
 
         return $this->options[$name];
@@ -343,7 +343,7 @@
     public function shortcutToName(string $shortcut): string
     {
         if (!isset($this->shortcuts[$shortcut])) {
-            throw new InvalidArgumentException(sprintf('The "-%s" option does not exist.', $shortcut));
+            throw new InvalidArgumentException(\sprintf('The "-%s" option does not exist.', $shortcut));
         }
 
         return $this->shortcuts[$shortcut];
@@ -359,7 +359,7 @@
     public function negationToName(string $negation): string
     {
         if (!isset($this->negations[$negation])) {
-            throw new InvalidArgumentException(sprintf('The "--%s" option does not exist.', $negation));
+            throw new InvalidArgumentException(\sprintf('The "--%s" option does not exist.', $negation));
         }
 
         return $this->negations[$negation];
@@ -378,7 +378,7 @@
             foreach ($this->getOptions() as $option) {
                 $value = '';
                 if ($option->acceptValue()) {
-                    $value = sprintf(
+                    $value = \sprintf(
                         ' %s%s%s',
                         $option->isValueOptional() ? '[' : '',
                         strtoupper($option->getName()),
@@ -386,9 +386,9 @@
                     );
                 }
 
-                $shortcut = $option->getShortcut() ? sprintf('-%s|', $option->getShortcut()) : '';
-                $negation = $option->isNegatable() ? sprintf('|--no-%s', $option->getName()) : '';
-                $elements[] = sprintf('[%s--%s%s%s]', $shortcut, $option->getName(), $value, $negation);
+                $shortcut = $option->getShortcut() ? \sprintf('-%s|', $option->getShortcut()) : '';
+                $negation = $option->isNegatable() ? \sprintf('|--no-%s', $option->getName()) : '';
+                $elements[] = \sprintf('[%s--%s%s%s]', $shortcut, $option->getName(), $value, $negation);
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/InputOption.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/InputOption.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/InputOption.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/InputOption.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
     private string $name;
     private string|array|null $shortcut;
     private int $mode;
-    private string|int|bool|array|null|float $default;
+    private string|int|bool|array|float|null $default;
     private array|\Closure $suggestedValues;
     private string $description;
 
@@ -95,7 +95,7 @@
         if (null === $mode) {
             $mode = self::VALUE_NONE;
         } elseif ($mode >= (self::VALUE_NEGATABLE << 1) || $mode < 1) {
-            throw new InvalidArgumentException(sprintf('Option mode "%s" is not valid.', $mode));
+            throw new InvalidArgumentException(\sprintf('Option mode "%s" is not valid.', $mode));
         }
 
         $this->name = $name;
@@ -231,7 +231,7 @@
     {
         $values = $this->suggestedValues;
         if ($values instanceof \Closure && !\is_array($values = $values($input))) {
-            throw new LogicException(sprintf('Closure for option "%s" must return an array. Got "%s".', $this->name, get_debug_type($values)));
+            throw new LogicException(\sprintf('Closure for option "%s" must return an array. Got "%s".', $this->name, get_debug_type($values)));
         }
         if ($values) {
             $suggestions->suggestValues($values);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/Input.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/Input.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/Input.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/Input.php	2026-05-20 10:56:49.000000000 +0200
@@ -71,10 +71,10 @@
         $definition = $this->definition;
         $givenArguments = $this->arguments;
 
-        $missingArguments = array_filter(array_keys($definition->getArguments()), fn ($argument) => !\array_key_exists($argument, $givenArguments) && $definition->getArgument($argument)->isRequired());
+        $missingArguments = array_filter(array_keys($definition->getArguments()), static fn ($argument) => !\array_key_exists($argument, $givenArguments) && $definition->getArgument($argument)->isRequired());
 
         if (\count($missingArguments) > 0) {
-            throw new RuntimeException(sprintf('Not enough arguments (missing: "%s").', implode(', ', $missingArguments)));
+            throw new RuntimeException(\sprintf('Not enough arguments (missing: "%s").', implode(', ', $missingArguments)));
         }
     }
 
@@ -99,7 +99,7 @@
     public function getArgument(string $name): mixed
     {
         if (!$this->definition->hasArgument($name)) {
-            throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
+            throw new InvalidArgumentException(\sprintf('The "%s" argument does not exist.', $name));
         }
 
         return $this->arguments[$name] ?? $this->definition->getArgument($name)->getDefault();
@@ -111,7 +111,7 @@
     public function setArgument(string $name, mixed $value)
     {
         if (!$this->definition->hasArgument($name)) {
-            throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
+            throw new InvalidArgumentException(\sprintf('The "%s" argument does not exist.', $name));
         }
 
         $this->arguments[$name] = $value;
@@ -138,7 +138,7 @@
         }
 
         if (!$this->definition->hasOption($name)) {
-            throw new InvalidArgumentException(sprintf('The "%s" option does not exist.', $name));
+            throw new InvalidArgumentException(\sprintf('The "%s" option does not exist.', $name));
         }
 
         return \array_key_exists($name, $this->options) ? $this->options[$name] : $this->definition->getOption($name)->getDefault();
@@ -154,7 +154,7 @@
 
             return;
         } elseif (!$this->definition->hasOption($name)) {
-            throw new InvalidArgumentException(sprintf('The "%s" option does not exist.', $name));
+            throw new InvalidArgumentException(\sprintf('The "%s" option does not exist.', $name));
         }
 
         $this->options[$name] = $value;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/StringInput.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/StringInput.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Input/StringInput.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Input/StringInput.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,7 +72,7 @@
                 $token .= $match[1];
             } else {
                 // should never happen
-                throw new InvalidArgumentException(sprintf('Unable to parse input near "... %s ...".', substr($input, $cursor, 10)));
+                throw new InvalidArgumentException(\sprintf('Unable to parse input near "... %s ...".', substr($input, $cursor, 10)));
             }
 
             $cursor += \strlen($match[0]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Logger/ConsoleLogger.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Logger/ConsoleLogger.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Logger/ConsoleLogger.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Logger/ConsoleLogger.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
     public function log($level, $message, array $context = []): void
     {
         if (!isset($this->verbosityLevelMap[$level])) {
-            throw new InvalidArgumentException(sprintf('The log level "%s" does not exist.', $level));
+            throw new InvalidArgumentException(\sprintf('The log level "%s" does not exist.', $level));
         }
 
         $output = $this->output;
@@ -78,7 +78,7 @@
         // the if condition check isn't necessary -- it's the same one that $output will do internally anyway.
         // We only do it for efficiency here as the message formatting is relatively expensive.
         if ($output->getVerbosity() >= $this->verbosityLevelMap[$level]) {
-            $output->writeln(sprintf('<%1$s>[%2$s] %3$s</%1$s>', $this->formatLevelMap[$level], $level, $this->interpolate($message, $context)), $this->verbosityLevelMap[$level]);
+            $output->writeln(\sprintf('<%1$s>[%2$s] %3$s</%1$s>', $this->formatLevelMap[$level], $level, $this->interpolate($message, $context)), $this->verbosityLevelMap[$level]);
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Messenger/RunCommandMessageHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Messenger/RunCommandMessageHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Messenger/RunCommandMessageHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Messenger/RunCommandMessageHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,8 @@
 use Symfony\Component\Console\Exception\RunCommandFailedException;
 use Symfony\Component\Console\Input\StringInput;
 use Symfony\Component\Console\Output\BufferedOutput;
+use Symfony\Component\Messenger\Exception\RecoverableExceptionInterface;
+use Symfony\Component\Messenger\Exception\UnrecoverableExceptionInterface;
 
 /**
  * @author Kevin Bond <kevinbond@gmail.com>
@@ -35,12 +37,14 @@
 
         try {
             $exitCode = $this->application->run($input, $output);
+        } catch (UnrecoverableExceptionInterface|RecoverableExceptionInterface $e) {
+            throw $e;
         } catch (\Throwable $e) {
             throw new RunCommandFailedException($e, new RunCommandContext($message, Command::FAILURE, $output->fetch()));
         }
 
         if ($message->throwOnFailure && Command::SUCCESS !== $exitCode) {
-            throw new RunCommandFailedException(sprintf('Command "%s" exited with code "%s".', $message->input, $exitCode), new RunCommandContext($message, $exitCode, $output->fetch()));
+            throw new RunCommandFailedException(\sprintf('Command "%s" exited with code "%s".', $message->input, $exitCode), new RunCommandContext($message, $exitCode, $output->fetch()));
         }
 
         return new RunCommandContext($message, $exitCode, $output->fetch());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Output/AnsiColorMode.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Output/AnsiColorMode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Output/AnsiColorMode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Output/AnsiColorMode.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
         }
 
         if (6 !== \strlen($hexColor)) {
-            throw new InvalidArgumentException(sprintf('Invalid "#%s" color.', $hexColor));
+            throw new InvalidArgumentException(\sprintf('Invalid "#%s" color.', $hexColor));
         }
 
         $color = hexdec($hexColor);
@@ -63,7 +63,7 @@
         return match ($this) {
             self::Ansi4 => (string) $this->convertFromRGB($r, $g, $b),
             self::Ansi8 => '8;5;'.((string) $this->convertFromRGB($r, $g, $b)),
-            self::Ansi24 => sprintf('8;2;%d;%d;%d', $r, $g, $b)
+            self::Ansi24 => \sprintf('8;2;%d;%d;%d', $r, $g, $b),
         };
     }
 
@@ -72,7 +72,7 @@
         return match ($this) {
             self::Ansi4 => $this->degradeHexColorToAnsi4($r, $g, $b),
             self::Ansi8 => $this->degradeHexColorToAnsi8($r, $g, $b),
-            default => throw new InvalidArgumentException("RGB cannot be converted to {$this->name}.")
+            default => throw new InvalidArgumentException("RGB cannot be converted to {$this->name}."),
         };
     }
 
@@ -96,11 +96,11 @@
             }
 
             return (int) round(($r - 8) / 247 * 24) + 232;
-        } else {
-            return 16 +
-                    (36 * (int) round($r / 255 * 5)) +
-                    (6 * (int) round($g / 255 * 5)) +
-                    (int) round($b / 255 * 5);
         }
+
+        return 16 +
+                (36 * (int) round($r / 255 * 5)) +
+                (6 * (int) round($g / 255 * 5)) +
+                (int) round($b / 255 * 5);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Output/ConsoleOutput.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Output/ConsoleOutput.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Output/ConsoleOutput.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Output/ConsoleOutput.php	2026-05-20 10:56:49.000000000 +0200
@@ -142,12 +142,27 @@
      */
     private function openOutputStream()
     {
+        static $stdout;
+
+        if ($stdout) {
+            return $stdout;
+        }
+
         if (!$this->hasStdoutSupport()) {
-            return fopen('php://output', 'w');
+            return $stdout = fopen('php://output', 'w');
         }
 
         // Use STDOUT when possible to prevent from opening too many file descriptors
-        return \defined('STDOUT') ? \STDOUT : (@fopen('php://stdout', 'w') ?: fopen('php://output', 'w'));
+        if (!\defined('STDOUT')) {
+            return $stdout = @fopen('php://stdout', 'w') ?: fopen('php://output', 'w');
+        }
+
+        // On Windows, STDOUT is opened in text mode; reopen in binary mode to prevent \n to \r\n conversion
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            return $stdout = @fopen('php://stdout', 'w') ?: \STDOUT;
+        }
+
+        return $stdout = \STDOUT;
     }
 
     /**
@@ -155,11 +170,26 @@
      */
     private function openErrorStream()
     {
+        static $stderr;
+
+        if ($stderr) {
+            return $stderr;
+        }
+
         if (!$this->hasStderrSupport()) {
-            return fopen('php://output', 'w');
+            return $stderr = fopen('php://output', 'w');
         }
 
         // Use STDERR when possible to prevent from opening too many file descriptors
-        return \defined('STDERR') ? \STDERR : (@fopen('php://stderr', 'w') ?: fopen('php://output', 'w'));
+        if (!\defined('STDERR')) {
+            return $stderr = @fopen('php://stderr', 'w') ?: fopen('php://output', 'w');
+        }
+
+        // On Windows, STDERR is opened in text mode; reopen in binary mode to prevent \n → \r\n conversion
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            return $stderr = @fopen('php://stderr', 'w') ?: \STDERR;
+        }
+
+        return $stderr ??= \STDERR;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Output/ConsoleSectionOutput.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Output/ConsoleSectionOutput.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Output/ConsoleSectionOutput.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Output/ConsoleSectionOutput.php	2026-05-20 10:56:49.000000000 +0200
@@ -88,8 +88,31 @@
      */
     public function overwrite(string|iterable $message)
     {
-        $this->clear();
-        $this->writeln($message);
+        if (!$this->content || !$this->isDecorated()) {
+            $this->writeln($message);
+
+            return;
+        }
+
+        // Replace own content and write everything in a single cursor-up + erase
+        // pass, to avoid the flicker (and the line-eating artifacts on some
+        // terminals) caused by calling clear() then writeln() back-to-back.
+        $linesCleared = $this->lines;
+        $this->content = [];
+        $this->lines = 0;
+
+        if (!is_iterable($message)) {
+            $message = [$message];
+        }
+
+        foreach ($message as $line) {
+            $this->addContent($line, true);
+        }
+
+        $erasedContent = $this->popStreamContentUntilCurrentSection($this->maxHeight ? min($this->maxHeight, $linesCleared) : $linesCleared);
+
+        parent::doWrite($this->getVisibleContent(), false);
+        parent::doWrite($erasedContent, false);
     }
 
     public function getContent(): string
@@ -229,7 +252,7 @@
 
         if ($numberOfLinesToClear > 0) {
             // move cursor up n lines
-            parent::doWrite(sprintf("\x1b[%dA", $numberOfLinesToClear), false);
+            parent::doWrite(\sprintf("\x1b[%dA", $numberOfLinesToClear), false);
             // erase to end of screen
             parent::doWrite("\x1b[0J", false);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Output/TrimmedBufferOutput.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Output/TrimmedBufferOutput.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Output/TrimmedBufferOutput.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Output/TrimmedBufferOutput.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
     public function __construct(int $maxLength, ?int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = false, ?OutputFormatterInterface $formatter = null)
     {
         if ($maxLength <= 0) {
-            throw new InvalidArgumentException(sprintf('"%s()" expects a strictly positive maxLength. Got %d.', __METHOD__, $maxLength));
+            throw new InvalidArgumentException(\sprintf('"%s()" expects a strictly positive maxLength. Got %d.', __METHOD__, $maxLength));
         }
 
         parent::__construct($verbosity, $decorated, $formatter);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Question/ChoiceQuestion.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Question/ChoiceQuestion.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Question/ChoiceQuestion.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Question/ChoiceQuestion.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,9 +26,9 @@
     private string $errorMessage = 'Value "%s" is invalid';
 
     /**
-     * @param string                     $question The question to ask to the user
-     * @param array                      $choices  The list of available choices
-     * @param string|bool|int|float|null $default  The default answer to return
+     * @param string                                   $question The question to ask to the user
+     * @param array<string|bool|int|float|\Stringable> $choices  The list of available choices
+     * @param string|bool|int|float|null               $default  The default answer to return
      */
     public function __construct(string $question, array $choices, string|bool|int|float|null $default = null)
     {
@@ -44,7 +44,7 @@
     }
 
     /**
-     * Returns available choices.
+     * @return array<string|bool|int|float|\Stringable>
      */
     public function getChoices(): array
     {
@@ -120,7 +120,7 @@
             if ($multiselect) {
                 // Check for a separated comma values
                 if (!preg_match('/^[^,]+(?:,[^,]+)*$/', (string) $selected, $matches)) {
-                    throw new InvalidArgumentException(sprintf($errorMessage, $selected));
+                    throw new InvalidArgumentException(\sprintf($errorMessage, $selected));
                 }
 
                 $selectedChoices = explode(',', (string) $selected);
@@ -144,7 +144,7 @@
                 }
 
                 if (\count($results) > 1) {
-                    throw new InvalidArgumentException(sprintf('The provided answer is ambiguous. Value should be one of "%s".', implode('" or "', $results)));
+                    throw new InvalidArgumentException(\sprintf('The provided answer is ambiguous. Value should be one of "%s".', implode('" or "', $results)));
                 }
 
                 $result = array_search($value, $choices);
@@ -160,7 +160,7 @@
                 }
 
                 if (false === $result) {
-                    throw new InvalidArgumentException(sprintf($errorMessage, $value));
+                    throw new InvalidArgumentException(\sprintf($errorMessage, $value));
                 }
 
                 // For associative choices, consistently return the key as string:
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Question/ConfirmationQuestion.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Question/ConfirmationQuestion.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Question/ConfirmationQuestion.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Question/ConfirmationQuestion.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
         $default = $this->getDefault();
         $regex = $this->trueAnswerRegex;
 
-        return function ($answer) use ($default, $regex) {
+        return static function ($answer) use ($default, $regex) {
             if (\is_bool($answer)) {
                 return $answer;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Question/Question.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Question/Question.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Question/Question.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Question/Question.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
     private bool $hiddenFallback = true;
     private ?\Closure $autocompleterCallback = null;
     private ?\Closure $validator = null;
-    private string|int|bool|null|float $default;
+    private string|int|bool|float|null $default;
     private ?\Closure $normalizer = null;
     private bool $trimmable = true;
     private bool $multiline = false;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Resources/completion.bash symfony-6.4.40+dfsg/src/Symfony/Component/Console/Resources/completion.bash
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Resources/completion.bash	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Resources/completion.bash	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
 
     local completecmd=("$sf_cmd" "_complete" "--no-interaction" "-sbash" "-c$cword" "-a{{ VERSION }}")
     for w in ${words[@]}; do
-        w=$(printf -- '%b' "$w")
+        w="${w//\\\\/\\}"
         # remove quotes from typed values
         quote="${w:0:1}"
         if [ "$quote" == \' ]; then
@@ -54,7 +54,7 @@
     done
 
     local sfcomplete
-    if sfcomplete=$(${completecmd[@]} 2>&1); then
+    if sfcomplete=$(SHELL_VERBOSITY=0 ${completecmd[@]} 2>&1); then
         local quote suggestions
         quote=${cur:0:1}
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Resources/completion.fish symfony-6.4.40+dfsg/src/Symfony/Component/Console/Resources/completion.fish
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Resources/completion.fish	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Resources/completion.fish	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
 
     set completecmd $completecmd "-c$c"
 
-    set sfcomplete ($completecmd)
+    set sfcomplete (env SHELL_VERBOSITY=0 $completecmd)
 
     for i in $sfcomplete
         echo $i
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Resources/completion.zsh symfony-6.4.40+dfsg/src/Symfony/Component/Console/Resources/completion.zsh
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Resources/completion.zsh	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Resources/completion.zsh	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
     fi
 
     # Use eval to handle any environment variables and such
-    out=$(eval ${requestComp} 2>/dev/null)
+    out=$(eval SHELL_VERBOSITY=0 ${requestComp} 2>/dev/null)
 
     while IFS='\n' read -r comp; do
         if [ -n "$comp" ]; then
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/SignalRegistry/SignalMap.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/SignalRegistry/SignalMap.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/SignalRegistry/SignalMap.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/SignalRegistry/SignalMap.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
         if (!isset(self::$map)) {
             $r = new \ReflectionExtension('pcntl');
             $c = $r->getConstants();
-            $map = array_filter($c, fn ($k) => str_starts_with($k, 'SIG') && !str_starts_with($k, 'SIG_') && 'SIGBABY' !== $k, \ARRAY_FILTER_USE_KEY);
+            $map = array_filter($c, static fn ($k) => str_starts_with($k, 'SIG') && !str_starts_with($k, 'SIG_') && 'SIGBABY' !== $k, \ARRAY_FILTER_USE_KEY);
             self::$map = array_flip($map);
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/SignalRegistry/SignalRegistry.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/SignalRegistry/SignalRegistry.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/SignalRegistry/SignalRegistry.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/SignalRegistry/SignalRegistry.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,8 +13,21 @@
 
 final class SignalRegistry
 {
+    /**
+     * @var array<int, array<callable>>
+     */
     private array $signalHandlers = [];
 
+    /**
+     * @var array<array<int, array<callable>>>
+     */
+    private array $stack = [];
+
+    /**
+     * @var array<int, callable|int|string>
+     */
+    private array $originalHandlers = [];
+
     public function __construct()
     {
         if (\function_exists('pcntl_async_signals')) {
@@ -24,17 +37,21 @@
 
     public function register(int $signal, callable $signalHandler): void
     {
-        if (!isset($this->signalHandlers[$signal])) {
-            $previousCallback = pcntl_signal_get_handler($signal);
+        $previous = pcntl_signal_get_handler($signal);
 
-            if (\is_callable($previousCallback)) {
-                $this->signalHandlers[$signal][] = $previousCallback;
+        if (!isset($this->originalHandlers[$signal])) {
+            $this->originalHandlers[$signal] = $previous;
+        }
+
+        if (!isset($this->signalHandlers[$signal])) {
+            if (\is_callable($previous) && [$this, 'handle'] !== $previous) {
+                $this->signalHandlers[$signal][] = $previous;
             }
         }
 
         $this->signalHandlers[$signal][] = $signalHandler;
 
-        pcntl_signal($signal, $this->handle(...));
+        pcntl_signal($signal, [$this, 'handle']);
     }
 
     public static function isSupported(): bool
@@ -54,4 +71,57 @@
             $signalHandler($signal, $hasNext);
         }
     }
+
+    /**
+     * Pushes the current active handlers onto the stack and clears the active list.
+     *
+     * This prepares the registry for a new set of handlers within a specific scope.
+     *
+     * @internal
+     */
+    public function pushCurrentHandlers(): void
+    {
+        // Restore the original OS-level disposition while the active map is empty,
+        // so signals are not routed through handle() without a registered handler.
+        foreach ($this->signalHandlers as $signal => $handlers) {
+            if (isset($this->originalHandlers[$signal])) {
+                pcntl_signal($signal, $this->originalHandlers[$signal]);
+            }
+        }
+
+        $this->stack[] = $this->signalHandlers;
+        $this->signalHandlers = [];
+    }
+
+    /**
+     * Restores the previous handlers from the stack, making them active.
+     *
+     * This also restores the original OS-level signal handler if no
+     * more handlers are registered for a signal that was just popped.
+     *
+     * @internal
+     */
+    public function popPreviousHandlers(): void
+    {
+        $popped = $this->signalHandlers;
+        $previous = array_pop($this->stack) ?? [];
+
+        // Expose a transitional superset so handle() never reads a missing key
+        // if a signal lands while the OS-level handlers below are being swapped.
+        $this->signalHandlers = $previous + $popped;
+
+        // Reinstall the registry handler for signals owned by the restored scope.
+        foreach ($previous as $signal => $handlers) {
+            pcntl_signal($signal, [$this, 'handle']);
+        }
+
+        // Restore the original OS-level handler for signals no scope owns anymore.
+        foreach ($popped as $signal => $handlers) {
+            if (!isset($previous[$signal]) && isset($this->originalHandlers[$signal])) {
+                pcntl_signal($signal, $this->originalHandlers[$signal]);
+            }
+        }
+
+        $this->signalHandlers = $previous;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Style/SymfonyStyle.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Style/SymfonyStyle.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Style/SymfonyStyle.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Style/SymfonyStyle.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,8 +79,8 @@
     {
         $this->autoPrependBlock();
         $this->writeln([
-            sprintf('<comment>%s</>', OutputFormatter::escapeTrailingBackslash($message)),
-            sprintf('<comment>%s</>', str_repeat('=', Helper::width(Helper::removeDecoration($this->getFormatter(), $message)))),
+            \sprintf('<comment>%s</>', OutputFormatter::escapeTrailingBackslash($message)),
+            \sprintf('<comment>%s</>', str_repeat('=', Helper::width(Helper::removeDecoration($this->getFormatter(), $message)))),
         ]);
         $this->newLine();
     }
@@ -92,8 +92,8 @@
     {
         $this->autoPrependBlock();
         $this->writeln([
-            sprintf('<comment>%s</>', OutputFormatter::escapeTrailingBackslash($message)),
-            sprintf('<comment>%s</>', str_repeat('-', Helper::width(Helper::removeDecoration($this->getFormatter(), $message)))),
+            \sprintf('<comment>%s</>', OutputFormatter::escapeTrailingBackslash($message)),
+            \sprintf('<comment>%s</>', str_repeat('-', Helper::width(Helper::removeDecoration($this->getFormatter(), $message)))),
         ]);
         $this->newLine();
     }
@@ -104,7 +104,7 @@
     public function listing(array $elements)
     {
         $this->autoPrependText();
-        $elements = array_map(fn ($element) => sprintf(' * %s', $element), $elements);
+        $elements = array_map(static fn ($element) => \sprintf(' * %s', $element), $elements);
 
         $this->writeln($elements);
         $this->newLine();
@@ -119,7 +119,7 @@
 
         $messages = \is_array($message) ? array_values($message) : [$message];
         foreach ($messages as $message) {
-            $this->writeln(sprintf(' %s', $message));
+            $this->writeln(\sprintf(' %s', $message));
         }
     }
 
@@ -463,7 +463,7 @@
         $lines = [];
 
         if (null !== $type) {
-            $type = sprintf('[%s] ', $type);
+            $type = \sprintf('[%s] ', $type);
             $indentLength = Helper::width($type);
             $lineIndentation = str_repeat(' ', $indentLength);
         }
@@ -475,12 +475,14 @@
                 $message = OutputFormatter::escape($message);
             }
 
+            $message = str_replace("\r\n", "\n", $message);
+
             $lines = array_merge(
                 $lines,
-                explode(\PHP_EOL, $outputWrapper->wrap(
+                explode("\n", $outputWrapper->wrap(
                     $message,
                     $this->lineLength - $prefixLength - $indentLength,
-                    \PHP_EOL
+                    "\n"
                 ))
             );
 
@@ -505,7 +507,7 @@
             $line .= str_repeat(' ', max($this->lineLength - Helper::width(Helper::removeDecoration($this->getFormatter(), $line)), 0));
 
             if ($style) {
-                $line = sprintf('<%s>%s</>', $style, $line);
+                $line = \sprintf('<%s>%s</>', $style, $line);
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Terminal.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Terminal.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Terminal.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Terminal.php	2026-05-20 10:56:49.000000000 +0200
@@ -128,7 +128,7 @@
             return false;
         }
 
-        return self::$stty = (bool) shell_exec('stty 2> '.('\\' === \DIRECTORY_SEPARATOR ? 'NUL' : '/dev/null'));
+        return self::$stty = (bool) @shell_exec('stty 2> '.('\\' === \DIRECTORY_SEPARATOR ? 'NUL' : '/dev/null'));
     }
 
     private static function initDimensions(): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tester/ApplicationTester.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tester/ApplicationTester.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tester/ApplicationTester.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tester/ApplicationTester.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
      */
     public function run(array $input, array $options = []): int
     {
-        $prevShellVerbosity = getenv('SHELL_VERBOSITY');
+        $prevShellVerbosity = [getenv('SHELL_VERBOSITY'), $_ENV['SHELL_VERBOSITY'] ?? false, $_SERVER['SHELL_VERBOSITY'] ?? false];
 
         try {
             $this->input = new ArrayInput($input);
@@ -63,22 +63,35 @@
 
             $this->initOutput($options);
 
+            // Temporarily clear SHELL_VERBOSITY to prevent Application::configureIO
+            // from overriding the interactive and verbosity settings set above
+            if (\function_exists('putenv')) {
+                @putenv('SHELL_VERBOSITY');
+            }
+            unset($_ENV['SHELL_VERBOSITY'], $_SERVER['SHELL_VERBOSITY']);
+
             return $this->statusCode = $this->application->run($this->input, $this->output);
         } finally {
             // SHELL_VERBOSITY is set by Application::configureIO so we need to unset/reset it
             // to its previous value to avoid one test's verbosity to spread to the following tests
-            if (false === $prevShellVerbosity) {
+            if (false === $prevShellVerbosity[0]) {
                 if (\function_exists('putenv')) {
                     @putenv('SHELL_VERBOSITY');
                 }
-                unset($_ENV['SHELL_VERBOSITY']);
-                unset($_SERVER['SHELL_VERBOSITY']);
             } else {
                 if (\function_exists('putenv')) {
-                    @putenv('SHELL_VERBOSITY='.$prevShellVerbosity);
+                    @putenv('SHELL_VERBOSITY='.$prevShellVerbosity[0]);
                 }
-                $_ENV['SHELL_VERBOSITY'] = $prevShellVerbosity;
-                $_SERVER['SHELL_VERBOSITY'] = $prevShellVerbosity;
+            }
+            if (false === $prevShellVerbosity[1]) {
+                unset($_ENV['SHELL_VERBOSITY']);
+            } else {
+                $_ENV['SHELL_VERBOSITY'] = $prevShellVerbosity[1];
+            }
+            if (false === $prevShellVerbosity[2]) {
+                unset($_SERVER['SHELL_VERBOSITY']);
+            } else {
+                $_SERVER['SHELL_VERBOSITY'] = $prevShellVerbosity[2];
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tester/Constraint/CommandIsSuccessful.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tester/Constraint/CommandIsSuccessful.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tester/Constraint/CommandIsSuccessful.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tester/Constraint/CommandIsSuccessful.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,6 +38,6 @@
             Command::INVALID => 'Command was invalid.',
         ];
 
-        return $mapping[$other] ?? sprintf('Command returned exit status %d.', $other);
+        return $mapping[$other] ?? \sprintf('Command returned exit status %d.', $other);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tester/TesterTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tester/TesterTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tester/TesterTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tester/TesterTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -168,7 +168,11 @@
         $stream = fopen('php://memory', 'r+', false);
 
         foreach ($inputs as $input) {
-            fwrite($stream, $input.\PHP_EOL);
+            fwrite($stream, $input);
+
+            if (!str_ends_with($input, "\x4")) {
+                fwrite($stream, \PHP_EOL);
+            }
         }
 
         rewind($stream);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/ApplicationTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/ApplicationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/ApplicationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/ApplicationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,6 +49,8 @@
 use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+use Symfony\Component\Process\Exception\ProcessTimedOutException;
+use Symfony\Component\Process\Exception\RuntimeException;
 use Symfony\Component\Process\Process;
 
 class ApplicationTest extends TestCase
@@ -99,6 +101,7 @@
         require_once self::$fixturesPath.'/TestAmbiguousCommandRegistering2.php';
         require_once self::$fixturesPath.'/FooHiddenCommand.php';
         require_once self::$fixturesPath.'/BarHiddenCommand.php';
+        require_once self::$fixturesPath.'/ManyAliasesCommand.php';
     }
 
     protected function normalizeLineBreaks($text)
@@ -174,7 +177,7 @@
         $this->assertCount(1, $commands, '->all() takes a namespace as its first argument');
 
         $application->setCommandLoader(new FactoryCommandLoader([
-            'foo:bar1' => fn () => new \Foo1Command(),
+            'foo:bar1' => static fn () => new \Foo1Command(),
         ]));
         $commands = $application->all('foo');
         $this->assertCount(2, $commands, '->all() takes a namespace as its first argument');
@@ -191,7 +194,7 @@
 
     public function testRegisterAmbiguous()
     {
-        $code = function (InputInterface $input, OutputInterface $output) {
+        $code = static function (InputInterface $input, OutputInterface $output) {
             $output->writeln('It works!');
         };
 
@@ -265,7 +268,7 @@
         $this->assertEquals($foo, $application->get('afoobar'), '->get() returns a command by alias');
 
         $application->setCommandLoader(new FactoryCommandLoader([
-            'foo:bar1' => fn () => new \Foo1Command(),
+            'foo:bar1' => static fn () => new \Foo1Command(),
         ]));
 
         $this->assertTrue($application->has('afoobar'), '->has() returns true if an instance is registered for an alias even with command loader');
@@ -413,11 +416,23 @@
         $application->find('FoO:BaR');
     }
 
+    public function testFindSingleWithAmbiguousAliases()
+    {
+        $application = new Application();
+        $application->add(new \ManyAliasesCommand());
+        $application->add(new \AlternativeCommand());
+
+        $this->assertInstanceOf(\ManyAliasesCommand::class, $application->find('a'), '->find() will find the correct command using a short alias');
+        $this->assertInstanceOf(\ManyAliasesCommand::class, $application->find('alias'), '->find() will find the correct command using a long alias');
+        $this->assertInstanceOf(\ManyAliasesCommand::class, $application->find('aliased'), '->find() will find the correct command using the right name');
+        $this->assertInstanceOf(\ManyAliasesCommand::class, $application->find('ali'), '->find() will find the correct command using an ambiguous shortened version');
+    }
+
     public function testFindWithCommandLoader()
     {
         $application = new Application();
         $application->setCommandLoader(new FactoryCommandLoader([
-            'foo:bar' => $f = fn () => new \FooCommand(),
+            'foo:bar' => $f = static fn () => new \FooCommand(),
         ]));
 
         $this->assertInstanceOf(\FooCommand::class, $application->find('foo:bar'), '->find() returns a command if its name exists');
@@ -635,7 +650,7 @@
         } catch (\Exception $e) {
             $this->assertInstanceOf(CommandNotFoundException::class, $e, '->find() throws a CommandNotFoundException if command does not exist');
             $this->assertSame([], $e->getAlternatives());
-            $this->assertEquals(sprintf('Command "%s" is not defined.', $commandName), $e->getMessage(), '->find() throws a CommandNotFoundException if command does not exist, without alternatives');
+            $this->assertEquals(\sprintf('Command "%s" is not defined.', $commandName), $e->getMessage(), '->find() throws a CommandNotFoundException if command does not exist, without alternatives');
         }
 
         // Test if "bar1" command throw a "CommandNotFoundException" and does not contain
@@ -646,7 +661,7 @@
         } catch (\Exception $e) {
             $this->assertInstanceOf(CommandNotFoundException::class, $e, '->find() throws a CommandNotFoundException if command does not exist');
             $this->assertSame(['afoobar1', 'foo:bar1'], $e->getAlternatives());
-            $this->assertMatchesRegularExpression(sprintf('/Command "%s" is not defined./', $commandName), $e->getMessage(), '->find() throws a CommandNotFoundException if command does not exist, with alternatives');
+            $this->assertMatchesRegularExpression(\sprintf('/Command "%s" is not defined./', $commandName), $e->getMessage(), '->find() throws a CommandNotFoundException if command does not exist, with alternatives');
             $this->assertMatchesRegularExpression('/afoobar1/', $e->getMessage(), '->find() throws a CommandNotFoundException if command does not exist, with alternative : "afoobar1"');
             $this->assertMatchesRegularExpression('/foo:bar1/', $e->getMessage(), '->find() throws a CommandNotFoundException if command does not exist, with alternative : "foo:bar1"');
             $this->assertDoesNotMatchRegularExpression('/foo:bar(?!1)/', $e->getMessage(), '->find() throws a CommandNotFoundException if command does not exist, without "foo:bar" alternative');
@@ -817,14 +832,14 @@
         $application = new Application();
         $application->setAutoExit(false);
         $application->setCatchExceptions($catchExceptions);
-        $application->add((new Command('boom'))->setCode(fn () => throw new \Error('This is an error.')));
+        $application->add((new Command('boom'))->setCode(static fn () => throw new \Error('This is an error.')));
 
         putenv('COLUMNS=120');
         $tester = new ApplicationTester($application);
 
         try {
             $tester->run(['command' => 'boom']);
-            $this->fail('The exception is not catched.');
+            $this->fail('The exception is not caught.');
         } catch (\Throwable $e) {
             $this->assertInstanceOf(\Error::class, $e);
             $this->assertSame('This is an error.', $e->getMessage());
@@ -891,7 +906,7 @@
         $application = new Application();
         $application->setAutoExit(false);
         putenv('COLUMNS=120');
-        $application->register('foo')->setCode(function () {
+        $application->register('foo')->setCode(static function () {
             throw new \Exception('エラーメッセージ');
         });
         $tester = new ApplicationTester($application);
@@ -905,7 +920,7 @@
         $application = new Application();
         $application->setAutoExit(false);
         putenv('COLUMNS=32');
-        $application->register('foo')->setCode(function () {
+        $application->register('foo')->setCode(static function () {
             throw new \Exception('コマンドの実行中にエラーが発生しました。');
         });
         $tester = new ApplicationTester($application);
@@ -919,7 +934,7 @@
         $application = new Application();
         $application->setAutoExit(false);
         putenv('COLUMNS=22');
-        $application->register('foo')->setCode(function () {
+        $application->register('foo')->setCode(static function () {
             throw new \Exception('dont break here <info>!</info>');
         });
         $tester = new ApplicationTester($application);
@@ -931,14 +946,14 @@
 
     public function testRenderExceptionLineBreaks()
     {
-        $application = $this->getMockBuilder(MockableAppliationWithTerminalWidth::class)
-            ->onlyMethods(['getTerminalWidth'])
-            ->getMock();
-        $application->setAutoExit(false);
-        $application->expects($this->any())
-            ->method('getTerminalWidth')
-            ->willReturn(120);
-        $application->register('foo')->setCode(function () {
+        $application = new class extends MockableAppliationWithTerminalWidth {
+            public function getTerminalWidth(): int
+            {
+                return 120;
+            }
+        };
+        $application->setAutoExit(false);
+        $application->register('foo')->setCode(static function () {
             throw new \InvalidArgumentException("\n\nline 1 with extra spaces        \nline 2\n\nline 4\n");
         });
         $tester = new ApplicationTester($application);
@@ -954,7 +969,7 @@
     {
         $application = new Application();
         $application->setAutoExit(false);
-        $application->register('foo')->setCode(function () {
+        $application->register('foo')->setCode(static function () {
             throw new class('') extends \InvalidArgumentException {};
         });
         $tester = new ApplicationTester($application);
@@ -964,8 +979,8 @@
 
         $application = new Application();
         $application->setAutoExit(false);
-        $application->register('foo')->setCode(function () {
-            throw new \InvalidArgumentException(sprintf('Dummy type "%s" is invalid.', (new class() {})::class));
+        $application->register('foo')->setCode(static function () {
+            throw new \InvalidArgumentException(\sprintf('Dummy type "%s" is invalid.', (new class {})::class));
         });
         $tester = new ApplicationTester($application);
 
@@ -980,7 +995,7 @@
     {
         $application = new Application();
         $application->setAutoExit(false);
-        $application->register('foo')->setCode(function () {
+        $application->register('foo')->setCode(static function () {
             throw new class('') extends \InvalidArgumentException {};
         });
         $tester = new ApplicationTester($application);
@@ -990,8 +1005,8 @@
 
         $application = new Application();
         $application->setAutoExit(false);
-        $application->register('foo')->setCode(function () {
-            throw new \InvalidArgumentException(sprintf('Dummy type "%s" is invalid.', (new class() {})::class));
+        $application->register('foo')->setCode(static function () {
+            throw new \InvalidArgumentException(\sprintf('Dummy type "%s" is invalid.', (new class {})::class));
         });
         $tester = new ApplicationTester($application);
 
@@ -1005,7 +1020,7 @@
         $application->setAutoExit(false);
         $application
             ->register('foo')
-            ->setCode(function () {
+            ->setCode(static function () {
                 throw new \Exception('some exception');
             })
             ->addArgument('info')
@@ -1177,7 +1192,7 @@
 
         // We can assume here that some other test asserts that the event is dispatched at all
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use (&$passedRightValue) {
+        $dispatcher->addListener('console.terminate', static function (ConsoleTerminateEvent $event) use (&$passedRightValue) {
             $passedRightValue = (4 === $event->getExitCode());
         });
 
@@ -1185,7 +1200,7 @@
         $application->setDispatcher($dispatcher);
         $application->setAutoExit(false);
 
-        $application->register('test')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('test')->setCode(static function (InputInterface $input, OutputInterface $output) {
             throw new \Exception('', 4);
         });
 
@@ -1216,7 +1231,7 @@
 
         // We can assume here that some other test asserts that the event is dispatched at all
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use (&$passedRightValue) {
+        $dispatcher->addListener('console.terminate', static function (ConsoleTerminateEvent $event) use (&$passedRightValue) {
             $passedRightValue = (1 === $event->getExitCode());
         });
 
@@ -1224,7 +1239,7 @@
         $application->setDispatcher($dispatcher);
         $application->setAutoExit(false);
 
-        $application->register('test')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('test')->setCode(static function (InputInterface $input, OutputInterface $output) {
             throw new \Exception();
         });
 
@@ -1267,7 +1282,7 @@
             ->register('foo')
             ->setAliases(['f'])
             ->setDefinition([new InputOption('survey', 'e', InputOption::VALUE_REQUIRED, 'My option with a shortcut.')])
-            ->setCode(function (InputInterface $input, OutputInterface $output) {})
+            ->setCode(static function (InputInterface $input, OutputInterface $output) {})
         ;
 
         $input = new ArrayInput(['command' => 'foo']);
@@ -1290,7 +1305,7 @@
         $application
             ->register('foo')
             ->setDefinition([$def])
-            ->setCode(function (InputInterface $input, OutputInterface $output) {})
+            ->setCode(static function (InputInterface $input, OutputInterface $output) {})
         ;
 
         $input = new ArrayInput(['command' => 'foo']);
@@ -1427,7 +1442,7 @@
         $application->setAutoExit(false);
         $application->setDispatcher($this->getDispatcher());
 
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('foo')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('foo.');
         });
 
@@ -1443,7 +1458,7 @@
         $application->setAutoExit(false);
         $application->setCatchExceptions(false);
 
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('foo')->setCode(static function (InputInterface $input, OutputInterface $output) {
             throw new \RuntimeException('foo');
         });
 
@@ -1461,7 +1476,7 @@
         $application->setDispatcher($this->getDispatcher());
         $application->setAutoExit(false);
 
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('foo')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('foo.');
 
             throw new \RuntimeException('foo');
@@ -1475,7 +1490,7 @@
     public function testRunDispatchesAllEventsWithExceptionInListener()
     {
         $dispatcher = $this->getDispatcher();
-        $dispatcher->addListener('console.command', function () {
+        $dispatcher->addListener('console.command', static function () {
             throw new \RuntimeException('foo');
         });
 
@@ -1483,7 +1498,7 @@
         $application->setDispatcher($dispatcher);
         $application->setAutoExit(false);
 
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('foo')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('foo.');
         });
 
@@ -1498,7 +1513,7 @@
         $application->setAutoExit(false);
         $application->setCatchExceptions(false);
 
-        $application->register('dym')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('dym')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('dym.');
 
             throw new \Error('dymerr');
@@ -1521,7 +1536,7 @@
         $application->setCatchExceptions(false);
 
         // Throws an exception when find fails
-        $commandLoader = $this->createMock(CommandLoaderInterface::class);
+        $commandLoader = $this->createStub(CommandLoaderInterface::class);
         $commandLoader->method('getNames')->willThrowException(new \Error('Find exception'));
         $application->setCommandLoader($commandLoader);
 
@@ -1537,13 +1552,13 @@
     public function testRunAllowsErrorListenersToSilenceTheException()
     {
         $dispatcher = $this->getDispatcher();
-        $dispatcher->addListener('console.error', function (ConsoleErrorEvent $event) {
+        $dispatcher->addListener('console.error', static function (ConsoleErrorEvent $event) {
             $event->getOutput()->write('silenced.');
 
             $event->setExitCode(0);
         });
 
-        $dispatcher->addListener('console.command', function () {
+        $dispatcher->addListener('console.command', static function () {
             throw new \RuntimeException('foo');
         });
 
@@ -1551,7 +1566,7 @@
         $application->setDispatcher($dispatcher);
         $application->setAutoExit(false);
 
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('foo')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('foo.');
         });
 
@@ -1587,7 +1602,7 @@
         $application->setCatchExceptions(false);
         $application->setDispatcher(new EventDispatcher());
 
-        $application->register('dym')->setCode(function () {
+        $application->register('dym')->setCode(static function () {
             throw new \Error('Something went wrong.');
         });
 
@@ -1608,7 +1623,7 @@
         $application->setAutoExit(false);
         $application->setCatchExceptions(false);
 
-        $application->register('dym')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('dym')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('dym.');
 
             throw new \Error('dymerr');
@@ -1629,7 +1644,7 @@
         $application->setDispatcher($this->getDispatcher());
         $application->setAutoExit(false);
 
-        $application->register('dym')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('dym')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('dym.');
 
             throw new \Error('dymerr');
@@ -1646,7 +1661,7 @@
         $application->setDispatcher($this->getDispatcher());
         $application->setAutoExit(false);
 
-        $application->register('dus')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('dus')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('dus.');
 
             throw new \Error('duserr');
@@ -1663,7 +1678,7 @@
         $application->setDispatcher($this->getDispatcher(true));
         $application->setAutoExit(false);
 
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('foo')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('foo.');
         });
 
@@ -1679,7 +1694,7 @@
         $quietValue = null;
 
         $dispatcher = $this->getDispatcher();
-        $dispatcher->addListener('console.command', function (ConsoleCommandEvent $event) use (&$noInteractionValue, &$quietValue) {
+        $dispatcher->addListener('console.command', static function (ConsoleCommandEvent $event) use (&$noInteractionValue, &$quietValue) {
             $input = $event->getInput();
 
             $noInteractionValue = $input->getOption('no-interaction');
@@ -1690,7 +1705,7 @@
         $application->setDispatcher($dispatcher);
         $application->setAutoExit(false);
 
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('foo')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('foo.');
         });
 
@@ -1706,7 +1721,7 @@
         $extraValue = null;
 
         $dispatcher = $this->getDispatcher();
-        $dispatcher->addListener('console.command', function (ConsoleCommandEvent $event) use (&$extraValue) {
+        $dispatcher->addListener('console.command', static function (ConsoleCommandEvent $event) use (&$extraValue) {
             $definition = $event->getCommand()->getDefinition();
             $input = $event->getInput();
 
@@ -1720,7 +1735,7 @@
         $application->setDispatcher($dispatcher);
         $application->setAutoExit(false);
 
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('foo')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('foo.');
         });
 
@@ -1818,7 +1833,7 @@
     public function testGetDisabledLazyCommand()
     {
         $application = new Application();
-        $application->setCommandLoader(new FactoryCommandLoader(['disabled' => fn () => new DisabledCommand()]));
+        $application->setCommandLoader(new FactoryCommandLoader(['disabled' => static fn () => new DisabledCommand()]));
 
         $this->expectException(CommandNotFoundException::class);
 
@@ -1828,14 +1843,14 @@
     public function testHasReturnsFalseForDisabledLazyCommand()
     {
         $application = new Application();
-        $application->setCommandLoader(new FactoryCommandLoader(['disabled' => fn () => new DisabledCommand()]));
+        $application->setCommandLoader(new FactoryCommandLoader(['disabled' => static fn () => new DisabledCommand()]));
         $this->assertFalse($application->has('disabled'));
     }
 
     public function testAllExcludesDisabledLazyCommand()
     {
         $application = new Application();
-        $application->setCommandLoader(new FactoryCommandLoader(['disabled' => fn () => new DisabledCommand()]));
+        $application->setCommandLoader(new FactoryCommandLoader(['disabled' => static fn () => new DisabledCommand()]));
         $this->assertArrayNotHasKey('disabled', $application->all());
     }
 
@@ -1847,15 +1862,15 @@
         $loaded = [];
 
         $application->setCommandLoader(new FactoryCommandLoader([
-            'foo:bar' => function () use (&$loaded) {
+            'foo:bar' => static function () use (&$loaded) {
                 $loaded['foo:bar'] = true;
 
-                return (new Command('foo:bar'))->setCode(function () {});
+                return (new Command('foo:bar'))->setCode(static function () {});
             },
-            'foo' => function () use (&$loaded) {
+            'foo' => static function () use (&$loaded) {
                 $loaded['foo'] = true;
 
-                return (new Command('foo'))->setCode(function () {});
+                return (new Command('foo'))->setCode(static function () {});
             },
         ]));
 
@@ -1867,21 +1882,21 @@
     protected function getDispatcher($skipCommand = false)
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener('console.command', function (ConsoleCommandEvent $event) use ($skipCommand) {
+        $dispatcher->addListener('console.command', static function (ConsoleCommandEvent $event) use ($skipCommand) {
             $event->getOutput()->write('before.');
 
             if ($skipCommand) {
                 $event->disableCommand();
             }
         });
-        $dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use ($skipCommand) {
+        $dispatcher->addListener('console.terminate', static function (ConsoleTerminateEvent $event) use ($skipCommand) {
             $event->getOutput()->writeln('after.');
 
             if (!$skipCommand) {
                 $event->setExitCode(ConsoleCommandEvent::RETURN_CODE_DISABLED);
             }
         });
-        $dispatcher->addListener('console.error', function (ConsoleErrorEvent $event) {
+        $dispatcher->addListener('console.error', static function (ConsoleErrorEvent $event) {
             $event->getOutput()->write('error.');
 
             $event->setError(new \LogicException('error.', $event->getExitCode(), $event->getError()));
@@ -1896,7 +1911,7 @@
         $application->setAutoExit(false);
         $application->setDispatcher(new EventDispatcher());
 
-        $application->register('dym')->setCode(function () {
+        $application->register('dym')->setCode(static function () {
             throw new \Error('Something went wrong.');
         });
 
@@ -1913,11 +1928,11 @@
     public function testThrowingErrorListener()
     {
         $dispatcher = $this->getDispatcher();
-        $dispatcher->addListener('console.error', function (ConsoleErrorEvent $event) {
+        $dispatcher->addListener('console.error', static function (ConsoleErrorEvent $event) {
             throw new \RuntimeException('foo');
         });
 
-        $dispatcher->addListener('console.command', function () {
+        $dispatcher->addListener('console.command', static function () {
             throw new \RuntimeException('bar');
         });
 
@@ -1926,7 +1941,7 @@
         $application->setAutoExit(false);
         $application->setCatchExceptions(false);
 
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
+        $application->register('foo')->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->write('foo.');
         });
 
@@ -1962,7 +1977,7 @@
 
         $dispatcherCalled = false;
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener('console.signal', function () use (&$dispatcherCalled) {
+        $dispatcher->addListener('console.signal', static function () use (&$dispatcherCalled) {
             $dispatcherCalled = true;
         });
 
@@ -1982,7 +1997,7 @@
 
         $dispatcherCalled = false;
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener('console.signal', function (ConsoleSignalEvent $e) use (&$dispatcherCalled) {
+        $dispatcher->addListener('console.signal', static function (ConsoleSignalEvent $e) use (&$dispatcherCalled) {
             $e->abortExit();
             $dispatcherCalled = true;
         });
@@ -2080,7 +2095,7 @@
         // on SIGUSR1, we need to register a blank handler to avoid the process
         // being stopped.
         $blankHandlerSignaled = false;
-        pcntl_signal(\SIGUSR1, function () use (&$blankHandlerSignaled) {
+        pcntl_signal(\SIGUSR1, static function () use (&$blankHandlerSignaled) {
             $blankHandlerSignaled = true;
         });
 
@@ -2174,7 +2189,7 @@
         $terminateEventDispatched = false;
         $dispatcher = new EventDispatcher();
         $dispatcher->addSubscriber($command);
-        $dispatcher->addListener('console.terminate', function () use (&$terminateEventDispatched) {
+        $dispatcher->addListener('console.terminate', static function () use (&$terminateEventDispatched) {
             $terminateEventDispatched = true;
         });
         $application = new Application();
@@ -2199,6 +2214,31 @@
      */
     public function testSignalableRestoresStty()
     {
+        $params = [__DIR__.'/Fixtures/application_signalable.php'];
+        $this->runRestoresSttyTest($params, 254, true);
+    }
+
+    /**
+     * @group tty
+     *
+     * @dataProvider provideTerminalInputHelperOption
+     */
+    public function testTerminalInputHelperRestoresStty(string $option)
+    {
+        $params = [__DIR__.'/Fixtures/application_sttyhelper.php', $option];
+        $this->runRestoresSttyTest($params, 0, false);
+    }
+
+    public static function provideTerminalInputHelperOption()
+    {
+        return [
+            ['--choice'],
+            ['--hidden'],
+        ];
+    }
+
+    private function runRestoresSttyTest(array $params, int $expectedExitCode, bool $equals)
+    {
         if (!Terminal::hasSttyAvailable()) {
             $this->markTestSkipped('stty not available');
         }
@@ -2209,22 +2249,264 @@
 
         $previousSttyMode = shell_exec('stty -g');
 
-        $p = new Process(['php', __DIR__.'/Fixtures/application_signalable.php']);
-        $p->setTty(true);
-        $p->start();
+        array_unshift($params, 'php');
+        $p = new Process($params);
+        try {
+            $p->setTty(true);
+            $p->start();
+        } catch (RuntimeException $e) {
+            if (str_contains($e->getMessage(), '/dev/tty')) {
+                $this->markTestSkipped('/dev/tty is not read/writable in this environment.');
+            }
+
+            throw $e;
+        }
 
         for ($i = 0; $i < 10 && shell_exec('stty -g') === $previousSttyMode; ++$i) {
-            usleep(100000);
+            usleep(200000);
         }
 
         $this->assertNotSame($previousSttyMode, shell_exec('stty -g'));
         $p->signal(\SIGINT);
-        $p->wait();
+        try {
+            $exitCode = $p->wait();
+        } catch (ProcessTimedOutException) {
+            $p->stop(0);
+            $this->markTestSkipped('TTY signal handling is not supported in this environment.');
+        }
 
         $sttyMode = shell_exec('stty -g');
         shell_exec('stty '.$previousSttyMode);
 
         $this->assertSame($previousSttyMode, $sttyMode);
+
+        if ($equals) {
+            $this->assertEquals($expectedExitCode, $exitCode);
+        } else {
+            $this->assertNotEquals($expectedExitCode, $exitCode);
+        }
+    }
+
+    /**
+     * @requires extension pcntl
+     */
+    public function testSignalHandlersAreCleanedUpAfterCommandRuns()
+    {
+        $application = new Application();
+        $application->setAutoExit(false);
+        $application->setCatchExceptions(false);
+        $application->add(new SignableCommand(false));
+
+        $signalRegistry = $application->getSignalRegistry();
+        $tester = new ApplicationTester($application);
+
+        $this->assertCount(0, $this->getHandlersForSignal($signalRegistry, \SIGUSR1), 'Registry should be empty initially.');
+
+        $tester->run(['command' => 'signal']);
+        $this->assertCount(0, $this->getHandlersForSignal($signalRegistry, \SIGUSR1), 'Registry should be empty after first run.');
+
+        $tester->run(['command' => 'signal']);
+        $this->assertCount(0, $this->getHandlersForSignal($signalRegistry, \SIGUSR1), 'Registry should still be empty after second run.');
+    }
+
+    /**
+     * @requires extension pcntl
+     */
+    public function testSignalHandlersCleanupOnException()
+    {
+        $command = new class('signal:exception') extends Command implements SignalableCommandInterface {
+            public function getSubscribedSignals(): array
+            {
+                return [\SIGUSR1];
+            }
+
+            public function handleSignal(int $signal, int|false $previousExitCode = 0): int|false
+            {
+                return false;
+            }
+
+            protected function execute(InputInterface $input, OutputInterface $output): int
+            {
+                throw new \RuntimeException('Test exception');
+            }
+        };
+
+        $application = new Application();
+        $application->setAutoExit(false);
+        $application->setCatchExceptions(true);
+        $application->add($command);
+
+        $signalRegistry = $application->getSignalRegistry();
+        $tester = new ApplicationTester($application);
+
+        $this->assertCount(0, $this->getHandlersForSignal($signalRegistry, \SIGUSR1), 'Pre-condition: Registry must be empty.');
+
+        $tester->run(['command' => 'signal:exception']);
+        $this->assertCount(0, $this->getHandlersForSignal($signalRegistry, \SIGUSR1), 'Signal handlers must be cleaned up even on exception.');
+    }
+
+    /**
+     * @requires extension pcntl
+     */
+    public function testNestedCommandsIsolateSignalHandlers()
+    {
+        $application = new Application();
+        $application->setAutoExit(false);
+        $application->setCatchExceptions(false);
+
+        $signalRegistry = $application->getSignalRegistry();
+        $self = $this;
+
+        $innerCommand = new class('signal:inner') extends Command implements SignalableCommandInterface {
+            public $signalRegistry;
+            public $self;
+
+            public function getSubscribedSignals(): array
+            {
+                return [\SIGUSR1];
+            }
+
+            public function handleSignal(int $signal, int|false $previousExitCode = 0): int|false
+            {
+                return false;
+            }
+
+            protected function execute(InputInterface $input, OutputInterface $output): int
+            {
+                $handlers = $this->self->getHandlersForSignal($this->signalRegistry, \SIGUSR1);
+                $this->self->assertCount(1, $handlers, 'Inner command should only see its own handler.');
+                $output->write('Inner execute.');
+
+                return 0;
+            }
+        };
+
+        $outerCommand = new class('signal:outer') extends Command implements SignalableCommandInterface {
+            public $signalRegistry;
+            public $self;
+
+            public function getSubscribedSignals(): array
+            {
+                return [\SIGUSR1];
+            }
+
+            public function handleSignal(int $signal, int|false $previousExitCode = 0): int|false
+            {
+                return false;
+            }
+
+            protected function execute(InputInterface $input, OutputInterface $output): int
+            {
+                $handlersBefore = $this->self->getHandlersForSignal($this->signalRegistry, \SIGUSR1);
+                $this->self->assertCount(1, $handlersBefore, 'Outer command must have its handler registered.');
+
+                $output->write('Outer pre-run.');
+
+                $this->getApplication()->find('signal:inner')->run(new ArrayInput([]), $output);
+
+                $output->write('Outer post-run.');
+
+                $handlersAfter = $this->self->getHandlersForSignal($this->signalRegistry, \SIGUSR1);
+                $this->self->assertCount(1, $handlersAfter, 'Outer command\'s handler must be restored.');
+                $this->self->assertSame($handlersBefore, $handlersAfter, 'Handler stack must be identical after pop.');
+
+                return 0;
+            }
+        };
+
+        $innerCommand->self = $self;
+        $innerCommand->signalRegistry = $signalRegistry;
+        $outerCommand->self = $self;
+        $outerCommand->signalRegistry = $signalRegistry;
+
+        $application->add($innerCommand);
+        $application->add($outerCommand);
+
+        $tester = new ApplicationTester($application);
+
+        $this->assertCount(0, $this->getHandlersForSignal($signalRegistry, \SIGUSR1), 'Pre-condition: Registry must be empty.');
+        $tester->run(['command' => 'signal:outer']);
+        $this->assertStringContainsString('Outer pre-run.Inner execute.Outer post-run.', $tester->getDisplay());
+
+        $this->assertCount(0, $this->getHandlersForSignal($signalRegistry, \SIGUSR1), 'Registry must be empty after all commands are finished.');
+    }
+
+    /**
+     * @requires extension pcntl
+     */
+    public function testOriginalHandlerRestoredAfterPop()
+    {
+        $this->assertSame(\SIG_DFL, pcntl_signal_get_handler(\SIGUSR1), 'Pre-condition: Original handler for SIGUSR1 must be SIG_DFL.');
+
+        $application = new Application();
+        $application->setAutoExit(false);
+        $application->setCatchExceptions(false);
+        $application->add(new SignableCommand(false));
+
+        $tester = new ApplicationTester($application);
+        $tester->run(['command' => 'signal']);
+
+        $this->assertSame(\SIG_DFL, pcntl_signal_get_handler(\SIGUSR1), 'OS-level handler for SIGUSR1 must be restored to SIG_DFL.');
+
+        $tester->run(['command' => 'signal']);
+        $this->assertSame(\SIG_DFL, pcntl_signal_get_handler(\SIGUSR1), 'OS-level handler must remain SIG_DFL after a second run.');
+    }
+
+    public function testFindAmbiguousHiddenCommands()
+    {
+        $application = new Application();
+
+        $application->add(new Command('test:foo'));
+        $application->add(new Command('test:foobar'));
+        $application->get('test:foo')->setHidden(true);
+        $application->get('test:foobar')->setHidden(true);
+
+        $this->expectException(CommandNotFoundException::class);
+        $this->expectExceptionMessage('The command "t:f" does not exist.');
+
+        $application->find('t:f');
+    }
+
+    public function testDoesNotFindHiddenCommandAsAlternativeIfHelpOptionIsPresent()
+    {
+        $application = new Application();
+        $application->setAutoExit(false);
+        $application->add(new \FooHiddenCommand());
+
+        $tester = new ApplicationTester($application);
+        $tester->setInputs(['yes']);
+        $tester->run(['command' => 'foohidden', '--help' => true]);
+
+        $this->assertStringContainsString('Command "foohidden" is not defined.', $tester->getDisplay(true));
+        $this->assertStringNotContainsString('Did you mean', $tester->getDisplay(true));
+        $this->assertStringNotContainsString('Do you want to run', $tester->getDisplay(true));
+        $this->assertSame(Command::FAILURE, $tester->getStatusCode());
+    }
+
+    public function testsPreservedHelpOptionWhenItsAnAlternative()
+    {
+        $application = new Application();
+        $application->setAutoExit(false);
+        $application->add(new \FoobarCommand());
+
+        $tester = new ApplicationTester($application);
+        $tester->setInputs(['yes']);
+        $tester->run(['command' => 'foobarfoo', '--help' => true]);
+
+        $this->assertStringContainsString('Command "foobarfoo" is not defined.', $tester->getDisplay(true));
+        $this->assertStringContainsString('Do you want to run "foobar:foo" instead?', $tester->getDisplay(true));
+        $this->assertStringContainsString('The foobar:foo command', $tester->getDisplay(true));
+        $this->assertSame(Command::SUCCESS, $tester->getStatusCode());
+    }
+
+    /**
+     * Reads the private "signalHandlers" property of the SignalRegistry for assertions.
+     */
+    public function getHandlersForSignal(SignalRegistry $registry, int $signal): array
+    {
+        $handlers = (\Closure::bind(fn () => $this->signalHandlers, $registry, SignalRegistry::class))();
+
+        return $handlers[$signal] ?? [];
     }
 
     private function createSignalableApplication(Command $command, ?EventDispatcherInterface $dispatcher): Application
@@ -2234,7 +2516,7 @@
         if ($dispatcher) {
             $application->setDispatcher($dispatcher);
         }
-        $application->add(new LazyCommand('signal', [], '', false, fn () => $command, true));
+        $application->add(new LazyCommand('signal', [], '', false, static fn () => $command, true));
 
         return $application;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Command/CommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Command/CommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Command/CommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Command/CommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -142,7 +142,7 @@
     public function testInvalidCommandNames($name)
     {
         $this->expectException(\InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('Command name "%s" is invalid.', $name));
+        $this->expectExceptionMessage(\sprintf('Command name "%s" is invalid.', $name));
 
         (new \TestCommand())->setName($name);
     }
@@ -350,7 +350,7 @@
     public function testSetCode()
     {
         $command = new \TestCommand();
-        $ret = $command->setCode(function (InputInterface $input, OutputInterface $output) {
+        $ret = $command->setCode(static function (InputInterface $input, OutputInterface $output) {
             $output->writeln('from the code...');
         });
         $this->assertEquals($command, $ret, '->setCode() implements a fluent interface');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Command/CompleteCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Command/CompleteCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Command/CompleteCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Command/CompleteCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,6 +19,7 @@
 use Symfony\Component\Console\Completion\CompletionSuggestions;
 use Symfony\Component\Console\Completion\Output\BashCompletionOutput;
 use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Tester\CommandTester;
 
@@ -34,6 +35,8 @@
 
         $this->application = new Application();
         $this->application->add(new CompleteCommandTest_HelloCommand());
+        $this->application->getDefinition()
+            ->addOption(new InputOption('global-option', null, InputOption::VALUE_REQUIRED, suggestedValues: ['foo', 'bar', 'baz']));
 
         $this->command->setApplication($this->application);
         $this->tester = new CommandTester($this->command);
@@ -102,10 +105,12 @@
 
     public static function provideCompleteCommandNameInputs()
     {
-        yield 'empty' => [['bin/console'], ['help', 'list', 'completion', 'hello', 'ahoy']];
-        yield 'partial' => [['bin/console', 'he'], ['help', 'list', 'completion', 'hello', 'ahoy']];
-        yield 'complete-shortcut-name' => [['bin/console', 'hell'], ['hello', 'ahoy']];
-        yield 'complete-aliases' => [['bin/console', 'ah'], ['hello', 'ahoy']];
+        yield 'empty' => [['bin/console'], ['help', 'list', 'completion', 'hello', 'ahoy', 'h', 'ahah']];
+        yield 'partial' => [['bin/console', 'he'], ['help', 'list', 'completion', 'hello', 'ahoy', 'h', 'ahah']];
+        yield 'complete-shortcut-name' => [['bin/console', 'hell'], ['hello']];
+        yield 'complete-aliases' => [['bin/console', 'ah'], ['ahoy']];
+        yield 'short-alias-completes-to-name' => [['bin/console', 'h'], ['hello']];
+        yield 'ambiguous-of-same-command-completes-to-first-match' => [['bin/console', 'ah'], ['ahoy']];
     }
 
     /**
@@ -119,10 +124,13 @@
 
     public static function provideCompleteCommandInputDefinitionInputs()
     {
-        yield 'definition' => [['bin/console', 'hello', '-'], ['--help', '--quiet', '--verbose', '--version', '--ansi', '--no-ansi', '--no-interaction']];
+        yield 'definition' => [['bin/console', 'hello', '-'], ['--help', '--quiet', '--verbose', '--version', '--ansi', '--no-ansi', '--no-interaction', '--global-option']];
         yield 'custom' => [['bin/console', 'hello'], ['Fabien', 'Robin', 'Wouter']];
-        yield 'definition-aliased' => [['bin/console', 'ahoy', '-'], ['--help', '--quiet', '--verbose', '--version', '--ansi', '--no-ansi', '--no-interaction']];
+        yield 'definition-aliased' => [['bin/console', 'ahoy', '-'], ['--help', '--quiet', '--verbose', '--version', '--ansi', '--no-ansi', '--no-interaction', '--global-option']];
         yield 'custom-aliased' => [['bin/console', 'ahoy'], ['Fabien', 'Robin', 'Wouter']];
+        yield 'custom-aliased-input' => [['bin/console', 'ahoy', 'Fa'], ['Fabien', 'Robin', 'Wouter']];
+        yield 'global-option-values' => [['bin/console', '--global-option'], ['foo', 'bar', 'baz']];
+        yield 'global-option-with-command-values' => [['bin/console', 'ahoy', '--global-option'], ['foo', 'bar', 'baz']];
     }
 
     private function execute(array $input)
@@ -137,7 +145,7 @@
     public function configure(): void
     {
         $this->setName('hello')
-             ->setAliases(['ahoy'])
+             ->setAliases(['ahoy', 'h', 'ahah'])
              ->setDescription('Hello test command')
              ->addArgument('name', InputArgument::REQUIRED)
         ;
@@ -147,6 +155,10 @@
     {
         if ($input->mustSuggestArgumentValuesFor('name')) {
             $suggestions->suggestValues(['Fabien', 'Robin', 'Wouter']);
+
+            return;
         }
+
+        parent::complete($input, $suggestions);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Command/ListCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Command/ListCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Command/ListCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Command/ListCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,11 +41,11 @@
         $commandTester = new CommandTester($command = $application->get('list'));
         $commandTester->execute(['command' => $command->getName(), '--raw' => true]);
         $output = <<<'EOF'
-completion   Dump the shell completion script
-help         Display help for a command
-list         List commands
+            completion   Dump the shell completion script
+            help         Display help for a command
+            list         List commands
 
-EOF;
+            EOF;
 
         $this->assertEquals($output, $commandTester->getDisplay(true));
     }
@@ -58,9 +58,9 @@
         $commandTester = new CommandTester($command = $application->get('list'));
         $commandTester->execute(['command' => $command->getName(), 'namespace' => 'foo', '--raw' => true]);
         $output = <<<'EOF'
-foo:bar   The foo:bar command
+            foo:bar   The foo:bar command
 
-EOF;
+            EOF;
 
         $this->assertEquals($output, $commandTester->getDisplay(true));
     }
@@ -73,26 +73,26 @@
         $commandTester = new CommandTester($command = $application->get('list'));
         $commandTester->execute(['command' => $command->getName()], ['decorated' => false]);
         $output = <<<'EOF'
-Console Tool
+            Console Tool
 
-Usage:
-  command [options] [arguments]
+            Usage:
+              command [options] [arguments]
 
-Options:
-  -h, --help            Display help for the given command. When no command is given display help for the list command
-  -q, --quiet           Do not output any message
-  -V, --version         Display this application version
-      --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
-  -n, --no-interaction  Do not ask any interactive question
-  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-
-Available commands:
-  completion  Dump the shell completion script
-  help        Display help for a command
-  list        List commands
- 0foo
-  0foo:bar    0foo:bar command
-EOF;
+            Options:
+              -h, --help            Display help for the given command. When no command is given display help for the list command
+              -q, --quiet           Do not output any message
+              -V, --version         Display this application version
+                  --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
+              -n, --no-interaction  Do not ask any interactive question
+              -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
+
+            Available commands:
+              completion  Dump the shell completion script
+              help        Display help for a command
+              list        List commands
+             0foo
+              0foo:bar    0foo:bar command
+            EOF;
 
         $this->assertEquals($output, trim($commandTester->getDisplay(true)));
     }
@@ -105,11 +105,11 @@
         $commandTester = new CommandTester($command = $application->get('list'));
         $commandTester->execute(['command' => $command->getName(), '--raw' => true]);
         $output = <<<'EOF'
-completion   Dump the shell completion script
-help         Display help for a command
-list         List commands
-0foo:bar     0foo:bar command
-EOF;
+            completion   Dump the shell completion script
+            help         Display help for a command
+            list         List commands
+            0foo:bar     0foo:bar command
+            EOF;
 
         $this->assertEquals($output, trim($commandTester->getDisplay(true)));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Command/SingleCommandApplicationTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Command/SingleCommandApplicationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Command/SingleCommandApplicationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Command/SingleCommandApplicationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
 {
     public function testRun()
     {
-        $command = new class() extends SingleCommandApplication {
+        $command = new class extends SingleCommandApplication {
             protected function execute(InputInterface $input, OutputInterface $output): int
             {
                 return 0;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Command/TraceableCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Command/TraceableCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Command/TraceableCommandTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Command/TraceableCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Console\Tests\Command;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Console\Application;
+use Symfony\Component\Console\Command\TraceableCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+use Symfony\Component\Console\Tests\Fixtures\LoopExampleCommand;
+use Symfony\Component\Stopwatch\Stopwatch;
+
+class TraceableCommandTest extends TestCase
+{
+    private Application $application;
+
+    protected function setUp(): void
+    {
+        $this->application = new Application();
+        $this->application->add(new LoopExampleCommand());
+    }
+
+    public function testRunIsOverriddenWithoutProfile()
+    {
+        $command = $this->application->find('app:loop:example');
+        $commandTester = new CommandTester($command);
+        $commandTester->execute([]);
+        $commandTester->assertCommandIsSuccessful();
+
+        $output = $commandTester->getDisplay();
+        $this->assertLoopOutputCorrectness($output);
+    }
+
+    public function testRunIsNotOverriddenWithProfile()
+    {
+        // Simulate the bug environment by wrapping
+        // our command in TraceableCommand, which is what Symfony does
+        // when you use the --profile option.
+        $command = new LoopExampleCommand();
+        $traceableCommand = new TraceableCommand($command, new Stopwatch());
+
+        $this->application->add($traceableCommand);
+
+        $commandTester = new CommandTester($traceableCommand);
+        $commandTester->execute([]);
+        $commandTester->assertCommandIsSuccessful();
+
+        $output = $commandTester->getDisplay();
+        $this->assertLoopOutputCorrectness($output);
+    }
+
+    public function assertLoopOutputCorrectness(string $output)
+    {
+        $completeChar = '\\' !== \DIRECTORY_SEPARATOR ? '▓' : '=';
+        self::assertMatchesRegularExpression('~3/3\s+\['.$completeChar.'+]\s+100%~u', $output);
+        self::assertStringContainsString('Loop finished.', $output);
+        self::assertEquals(3, substr_count($output, 'Hello world'));
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/CommandLoader/ContainerCommandLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/CommandLoader/ContainerCommandLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/CommandLoader/ContainerCommandLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/CommandLoader/ContainerCommandLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,8 +22,8 @@
     public function testHas()
     {
         $loader = new ContainerCommandLoader(new ServiceLocator([
-            'foo-service' => fn () => new Command('foo'),
-            'bar-service' => fn () => new Command('bar'),
+            'foo-service' => static fn () => new Command('foo'),
+            'bar-service' => static fn () => new Command('bar'),
         ]), ['foo' => 'foo-service', 'bar' => 'bar-service']);
 
         $this->assertTrue($loader->has('foo'));
@@ -34,8 +34,8 @@
     public function testGet()
     {
         $loader = new ContainerCommandLoader(new ServiceLocator([
-            'foo-service' => fn () => new Command('foo'),
-            'bar-service' => fn () => new Command('bar'),
+            'foo-service' => static fn () => new Command('foo'),
+            'bar-service' => static fn () => new Command('bar'),
         ]), ['foo' => 'foo-service', 'bar' => 'bar-service']);
 
         $this->assertInstanceOf(Command::class, $loader->get('foo'));
@@ -51,8 +51,8 @@
     public function testGetCommandNames()
     {
         $loader = new ContainerCommandLoader(new ServiceLocator([
-            'foo-service' => fn () => new Command('foo'),
-            'bar-service' => fn () => new Command('bar'),
+            'foo-service' => static fn () => new Command('foo'),
+            'bar-service' => static fn () => new Command('bar'),
         ]), ['foo' => 'foo-service', 'bar' => 'bar-service']);
 
         $this->assertSame(['foo', 'bar'], $loader->getNames());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/CommandLoader/FactoryCommandLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/CommandLoader/FactoryCommandLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/CommandLoader/FactoryCommandLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/CommandLoader/FactoryCommandLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,8 +21,8 @@
     public function testHas()
     {
         $loader = new FactoryCommandLoader([
-            'foo' => fn () => new Command('foo'),
-            'bar' => fn () => new Command('bar'),
+            'foo' => static fn () => new Command('foo'),
+            'bar' => static fn () => new Command('bar'),
         ]);
 
         $this->assertTrue($loader->has('foo'));
@@ -33,8 +33,8 @@
     public function testGet()
     {
         $loader = new FactoryCommandLoader([
-            'foo' => fn () => new Command('foo'),
-            'bar' => fn () => new Command('bar'),
+            'foo' => static fn () => new Command('foo'),
+            'bar' => static fn () => new Command('bar'),
         ]);
 
         $this->assertInstanceOf(Command::class, $loader->get('foo'));
@@ -50,8 +50,8 @@
     public function testGetCommandNames()
     {
         $loader = new FactoryCommandLoader([
-            'foo' => fn () => new Command('foo'),
-            'bar' => fn () => new Command('bar'),
+            'foo' => static fn () => new Command('foo'),
+            'bar' => static fn () => new Command('bar'),
         ]);
 
         $this->assertSame(['foo', 'bar'], $loader->getNames());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/CursorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/CursorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/CursorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/CursorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -184,7 +184,11 @@
         $this->assertEquals("\x1b[11;10H", $this->getOutputContent($output));
 
         $isTtySupported = (bool) @proc_open('echo 1 >/dev/null', [['file', '/dev/tty', 'r'], ['file', '/dev/tty', 'w'], ['file', '/dev/tty', 'w']], $pipes);
-        $this->assertEquals($isTtySupported, '/' === \DIRECTORY_SEPARATOR && stream_isatty(\STDOUT));
+        $isStreamTtySupported = '/' === \DIRECTORY_SEPARATOR && stream_isatty(\STDOUT);
+
+        if ($isTtySupported !== $isStreamTtySupported) {
+            $this->markTestSkipped('TTY probing is inconsistent in this environment.');
+        }
 
         if ($isTtySupported) {
             // When tty is supported, we can't validate the exact cursor position since it depends where the cursor is when the test runs.
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Descriptor/AbstractDescriptorTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Descriptor/AbstractDescriptorTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Descriptor/AbstractDescriptorTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Descriptor/AbstractDescriptorTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -87,7 +87,7 @@
     {
         $data = [];
         foreach ($objects as $name => $object) {
-            $description = file_get_contents(sprintf('%s/../Fixtures/%s.%s', __DIR__, $name, static::getFormat()));
+            $description = file_get_contents(\sprintf('%s/../Fixtures/%s.%s', __DIR__, $name, static::getFormat()));
             $data[] = [$object, $description];
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Descriptor/JsonDescriptorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Descriptor/JsonDescriptorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Descriptor/JsonDescriptorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Descriptor/JsonDescriptorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,10 +36,9 @@
             return array_map($this->normalizeOutputRecursively(...), $output);
         }
 
-        if (null === $output) {
-            return null;
-        }
-
-        return parent::normalizeOutput($output);
+        return match ($output) {
+            null, true, false => $output,
+            default => parent::normalizeOutput($output),
+        };
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/EventListener/ErrorListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/EventListener/ErrorListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/EventListener/ErrorListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/EventListener/ErrorListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
 use Symfony\Component\Console\Input\Input;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\StringInput;
-use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Output\NullOutput;
 
 class ErrorListenerTest extends TestCase
 {
@@ -38,7 +38,7 @@
         ;
 
         $listener = new ErrorListener($logger);
-        $listener->onConsoleError(new ConsoleErrorEvent(new ArgvInput(['console.php', 'test:run', '--foo=baz', 'buzz']), $this->createMock(OutputInterface::class), $error, new Command('test:run')));
+        $listener->onConsoleError(new ConsoleErrorEvent(new ArgvInput(['console.php', 'test:run', '--foo=baz', 'buzz']), new NullOutput(), $error, new Command('test:run')));
     }
 
     public function testOnConsoleErrorWithNoCommandAndNoInputString()
@@ -53,7 +53,7 @@
         ;
 
         $listener = new ErrorListener($logger);
-        $listener->onConsoleError(new ConsoleErrorEvent(new NonStringInput(), $this->createMock(OutputInterface::class), $error));
+        $listener->onConsoleError(new ConsoleErrorEvent(new NonStringInput(), new NullOutput(), $error));
     }
 
     public function testOnConsoleTerminateForNonZeroExitCodeWritesToLog()
@@ -122,7 +122,7 @@
 
     private function getConsoleTerminateEvent(InputInterface $input, $exitCode)
     {
-        return new ConsoleTerminateEvent(new Command('test:run'), $input, $this->createMock(OutputInterface::class), $exitCode);
+        return new ConsoleTerminateEvent(new Command('test:run'), $input, new NullOutput(), $exitCode);
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Exception/RunCommandFailedExceptionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Exception/RunCommandFailedExceptionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Exception/RunCommandFailedExceptionTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Exception/RunCommandFailedExceptionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,49 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Console\Tests\Exception;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Exception\RunCommandFailedException;
+use Symfony\Component\Console\Messenger\RunCommandContext;
+use Symfony\Component\Console\Messenger\RunCommandMessage;
+
+class RunCommandFailedExceptionTest extends TestCase
+{
+    public function testDefaultExceptionProvidesCode()
+    {
+        $exception = self::createException(new \Exception('Boom!', 42));
+
+        self::assertSame(42, $exception->getCode());
+    }
+
+    public function testNonIntegerCodeProvidesZero()
+    {
+        $exception = self::createException(new class extends \Exception {
+            protected $code = 'non-integer-code';
+        });
+
+        self::assertSame(0, $exception->getCode());
+    }
+
+    private static function createException(\Throwable $inner): RunCommandFailedException
+    {
+        return new RunCommandFailedException(
+            $inner,
+            new RunCommandContext(
+                new RunCommandMessage('foo'),
+                exitCode: Command::FAILURE,
+                output: 'bar'
+            )
+        );
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/AbstractLoopCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/AbstractLoopCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/AbstractLoopCommand.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/AbstractLoopCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,41 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Console\Tests\Fixtures;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+
+abstract class AbstractLoopCommand extends Command
+{
+    public function run(InputInterface $input, OutputInterface $output): int
+    {
+        $io = new SymfonyStyle($input, $output);
+        $contexts = [1, 2, 3];
+        $io->progressStart(count($contexts));
+        $code = self::SUCCESS;
+
+        foreach ($contexts as $ignored) {
+            $io->progressAdvance();
+            try {
+                parent::run($input, $output);
+            } catch (\Throwable) {
+                $code = self::FAILURE;
+            }
+        }
+        $io->progressFinish();
+        $output->writeln("\nLoop finished.");
+
+        return $code;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_2.json symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_2.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_2.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_2.json	2026-05-20 10:56:49.000000000 +0200
@@ -85,7 +85,7 @@
                         "is_value_required": false,
                         "is_multiple": false,
                         "description": "Do not ask any interactive question",
-                        "default": false
+                        "default": null
                     },
                     "shell": {
                         "name": "--shell",
@@ -206,7 +206,7 @@
                         "is_value_required": false,
                         "is_multiple": false,
                         "description": "Do not ask any interactive question",
-                        "default": false
+                        "default": null
                     },
                     "debug": {
                         "name": "--debug",
@@ -318,7 +318,7 @@
                         "is_value_required": false,
                         "is_multiple": false,
                         "description": "Do not ask any interactive question",
-                        "default": false
+                        "default": null
                     }
                 }
             }
@@ -421,7 +421,7 @@
                         "is_value_required": false,
                         "is_multiple": false,
                         "description": "Do not ask any interactive question",
-                        "default": false
+                        "default": null
                     },
                     "short": {
                         "name": "--short",
@@ -509,7 +509,7 @@
                         "is_value_required": false,
                         "is_multiple": false,
                         "description": "Do not ask any interactive question",
-                        "default": false
+                        "default": null
                     }
                 }
             }
@@ -605,7 +605,7 @@
                         "is_value_required": false,
                         "is_multiple": false,
                         "description": "Do not ask any interactive question",
-                        "default": false
+                        "default": null
                     }
                 }
             }
@@ -682,7 +682,7 @@
                         "is_value_required": false,
                         "is_multiple": false,
                         "description": "Do not ask any interactive question",
-                        "default": false
+                        "default": null
                     }
                 }
             }
@@ -761,7 +761,7 @@
                         "is_value_required": false,
                         "is_multiple": false,
                         "description": "Do not ask any interactive question",
-                        "default": false
+                        "default": null
                     }
                 }
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_signalable.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_signalable.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_signalable.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_signalable.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 
     public function handleSignal(int $signal, int|false $previousExitCode = 0): int|false
     {
-        exit(0);
+        exit(254);
     }
 })
     ->setCode(function(InputInterface $input, OutputInterface $output) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_sttyhelper.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_sttyhelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_sttyhelper.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_sttyhelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,37 @@
+<?php
+
+use Symfony\Component\Console\Input\InputDefinition;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Question\ChoiceQuestion;
+use Symfony\Component\Console\Question\Question;
+use Symfony\Component\Console\SingleCommandApplication;
+
+$vendor = __DIR__;
+while (!file_exists($vendor.'/vendor')) {
+    $vendor = dirname($vendor);
+}
+require $vendor.'/vendor/autoload.php';
+
+(new class extends SingleCommandApplication {})
+    ->setDefinition(new InputDefinition([
+        new InputOption('choice', null, InputOption::VALUE_NONE, ''),
+        new InputOption('hidden', null, InputOption::VALUE_NONE, ''),
+    ]))
+    ->setCode(function (InputInterface $input, OutputInterface $output) {
+        if ($input->getOption('choice')) {
+            $this->getHelper('question')
+                 ->ask($input, $output, new ChoiceQuestion('😊', ['n']));
+        } else {
+            $question = new Question('😊');
+            $question->setHidden(true);
+            $this->getHelper('question')
+                 ->ask($input, $output, $question);
+        }
+
+        return 0;
+    })
+    ->run()
+
+;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_test_sigint.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_test_sigint.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_test_sigint.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/application_test_sigint.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,46 @@
+<?php
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Helper\QuestionHelper;
+use Symfony\Component\Console\Input\ArgvInput;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\ConsoleOutput;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Question\Question;
+
+$vendor = __DIR__;
+while (!file_exists($vendor.'/vendor')) {
+    $vendor = \dirname($vendor);
+}
+require $vendor.'/vendor/autoload.php';
+
+(new class extends Command {
+    protected function configure(): void
+    {
+        $this->addArgument('mode', InputArgument::OPTIONAL, default: 'single');
+    }
+
+    protected function execute(InputInterface $input, OutputInterface $output): int
+    {
+        $mode = $input->getArgument('mode');
+
+        $question = new Question('Enter text: ');
+        $question->setMultiline($mode !== 'single');
+
+        $helper = new QuestionHelper();
+
+        pcntl_async_signals(true);
+        pcntl_signal(\SIGALRM, function () {
+            posix_kill(posix_getpid(), \SIGINT);
+            pcntl_signal_dispatch();
+        });
+        pcntl_alarm(1);
+
+        $helper->ask($input, $output, $question);
+
+        return Command::SUCCESS;
+    }
+})
+    ->run(new ArgvInput($argv), new ConsoleOutput())
+;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/binary_output.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/binary_output.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/binary_output.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/binary_output.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,13 @@
+<?php
+
+$vendor = __DIR__;
+while (!file_exists($vendor.'/vendor')) {
+    $vendor = \dirname($vendor);
+}
+require $vendor.'/vendor/autoload.php';
+
+use Symfony\Component\Console\Output\ConsoleOutput;
+use Symfony\Component\Console\Output\OutputInterface;
+
+$output = new ConsoleOutput();
+$output->write("HELLO\nWORLD", false, OutputInterface::OUTPUT_RAW);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/LoopExampleCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/LoopExampleCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/LoopExampleCommand.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/LoopExampleCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,28 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Console\Tests\Fixtures;
+
+use Symfony\Component\Console\Attribute\AsCommand;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+#[AsCommand('app:loop:example')]
+class LoopExampleCommand extends AbstractLoopCommand
+{
+    protected function execute(InputInterface $input, OutputInterface $output): int
+    {
+        $output->writeln(' Hello world');
+
+        return Command::SUCCESS;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/ManyAliasesCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/ManyAliasesCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Fixtures/ManyAliasesCommand.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Fixtures/ManyAliasesCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,22 @@
+<?php
+
+use Symfony\Component\Console\Command\Command;
+
+class ManyAliasesCommand extends Command
+{
+    protected function configure(): void
+    {
+        $this->setName('aliased')
+            ->setAliases(['a', 'alias', 'alias2', 'alias3'])
+            ->setDescription('Aliased command');
+    }
+}
+
+class AlternativeCommand extends Command
+{
+    protected function configure(): void
+    {
+        $this->setName('alternative')
+            ->setDescription('Aliased command 2');
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Formatter/OutputFormatterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Formatter/OutputFormatterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Formatter/OutputFormatterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Formatter/OutputFormatterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -177,7 +177,7 @@
             $expected = $tag.$input.'</'.$styleString.'>';
             $this->assertSame($expected, $formatter->format($expected));
         } else {
-            /* @var OutputFormatterStyle $result */
+            /** @var OutputFormatterStyle $result */
             $this->assertInstanceOf(OutputFormatterStyle::class, $result);
             $this->assertSame($expected, $formatter->format($tag.$input.'</>'));
             $this->assertSame($expected, $formatter->format($tag.$input.'</'.$styleString.'>'));
@@ -306,51 +306,59 @@
     {
         $formatter = new OutputFormatter(true);
 
-        $this->assertEquals(<<<EOF
-\033[32m
-some text\033[39m
-EOF
-            , $formatter->format(<<<'EOF'
-<info>
-some text</info>
-EOF
-            ));
-
-        $this->assertEquals(<<<EOF
-\033[32msome text
-\033[39m
-EOF
-            , $formatter->format(<<<'EOF'
-<info>some text
-</info>
-EOF
-            ));
-
-        $this->assertEquals(<<<EOF
-\033[32m
-some text
-\033[39m
-EOF
-            , $formatter->format(<<<'EOF'
-<info>
-some text
-</info>
-EOF
-            ));
-
-        $this->assertEquals(<<<EOF
-\033[32m
-some text
-more text
-\033[39m
-EOF
-            , $formatter->format(<<<'EOF'
-<info>
-some text
-more text
-</info>
-EOF
-            ));
+        $this->assertEquals(
+            <<<EOF
+                \033[32m
+                some text\033[39m
+                EOF,
+            $formatter->format(<<<'EOF'
+                <info>
+                some text</info>
+                EOF
+            )
+        );
+
+        $this->assertEquals(
+            <<<EOF
+                \033[32msome text
+                \033[39m
+                EOF,
+            $formatter->format(<<<'EOF'
+                <info>some text
+                </info>
+                EOF
+            )
+        );
+
+        $this->assertEquals(
+            <<<EOF
+                \033[32m
+                some text
+                \033[39m
+                EOF,
+            $formatter->format(<<<'EOF'
+                <info>
+                some text
+                </info>
+                EOF
+            )
+        );
+
+        $this->assertEquals(
+            <<<EOF
+                \033[32m
+                some text
+                more text
+                \033[39m
+                EOF,
+            $formatter->format(<<<'EOF'
+                <info>
+                some text
+                more text
+                </info>
+                EOF
+            )
+        );
     }
 
     public function testFormatAndWrap()
@@ -365,6 +373,15 @@
         $this->assertSame("Lore\nm \e[37;41mip\e[39;49m\n\e[37;41msum\e[39;49m \ndolo\nr \e[32msi\e[39m\n\e[32mt\e[39m am\net", $formatter->formatAndWrap('Lorem <error>ipsum</error> dolor <info>sit</info> amet', 4));
         $this->assertSame("Lorem \e[37;41mip\e[39;49m\n\e[37;41msum\e[39;49m dolo\nr \e[32msit\e[39m am\net", $formatter->formatAndWrap('Lorem <error>ipsum</error> dolor <info>sit</info> amet', 8));
         $this->assertSame("Lorem \e[37;41mipsum\e[39;49m dolor \e[32m\e[39m\n\e[32msit\e[39m, \e[37;41mamet\e[39;49m et \e[32mlauda\e[39m\n\e[32mntium\e[39m architecto", $formatter->formatAndWrap('Lorem <error>ipsum</error> dolor <info>sit</info>, <error>amet</error> et <info>laudantium</info> architecto', 18));
+        $this->assertSame("\e[37;41mnon-empty-array\e[39;49m\e[37;41m<mixed, mixed>\e[39;49m given.\n🪪  argument.type", $formatter->formatAndWrap("<error>non-empty-array<mixed, mixed></error> given.\n🪪  argument.type", 38));
+        $this->assertSame("Usuário <strong>{{user_name}}</strong> não é válid\no.", $formatter->formatAndWrap('Usuário <strong>{{user_name}}</strong> não é válido.', 50));
+        $this->assertSame("foo\e[37;41mb\e[39;49m\n\e[37;41mar\e[39;49mbaz", $formatter->formatAndWrap("foo<error>b\nar</error>baz", 7));
+        $this->assertSame("foo\e[37;41mbar\e[39;49mbaz\nnewline", $formatter->formatAndWrap("foo<error>bar</error>baz\nnewline", 11));
+        $this->assertSame("foobarbaz\n\e[37;41mnewline\e[39;49m", $formatter->formatAndWrap("foobarbaz\n<error>newline</error>", 11));
+        $this->assertSame("foobar\e[37;41mbaz\e[39;49m\n\e[37;41mnewline\e[39;49m", $formatter->formatAndWrap("foobar<error>baz\nnewline</error>", 11));
+        $this->assertSame("foobar\e[37;41mbazne\e[39;49m\n\e[37;41mwline\e[39;49m", $formatter->formatAndWrap("foobar<error>bazne\nwline</error>", 11));
+        $this->assertSame("foobar\e[37;41mbazne\e[39;49m\n\e[37;41mw\e[39;49m\n\e[37;41mline\e[39;49m", $formatter->formatAndWrap("foobar<error>baznew\nline</error>", 11));
+        $this->assertSame("\e[37;41m👩‍🌾\e[39;49m", $formatter->formatAndWrap('<error>👩‍🌾</error>', 1));
 
         $formatter = new OutputFormatter();
 
@@ -376,6 +393,15 @@
         $this->assertSame("Â rèälly\nlöng tîtlè\nthät cöüld\nnèêd\nmúltîplê\nlínès", $formatter->formatAndWrap('Â rèälly löng tîtlè thät cöüld nèêd múltîplê línès', 10));
         $this->assertSame("Â rèälly\nlöng tîtlè\nthät cöüld\nnèêd\nmúltîplê\n línès", $formatter->formatAndWrap("Â rèälly löng tîtlè thät cöüld nèêd múltîplê\n línès", 10));
         $this->assertSame('', $formatter->formatAndWrap(null, 5));
+        $this->assertSame("non-empty-array<mixed, mixed> given.\n🪪  argument.type", $formatter->formatAndWrap("<error>non-empty-array<mixed, mixed></error> given.\n🪪  argument.type", 38));
+        $this->assertSame("Usuário <strong>{{user_name}}</strong> não é válid\no.", $formatter->formatAndWrap('Usuário <strong>{{user_name}}</strong> não é válido.', 50));
+        $this->assertSame("foob\narbaz", $formatter->formatAndWrap("foo<error>b\nar</error>baz", 7));
+        $this->assertSame("foobarbaz\nnewline", $formatter->formatAndWrap("foo<error>bar</error>baz\nnewline", 11));
+        $this->assertSame("foobarbaz\nnewline", $formatter->formatAndWrap("foobarbaz\n<error>newline</error>", 11));
+        $this->assertSame("foobarbaz\nnewline", $formatter->formatAndWrap("foobar<error>baz\nnewline</error>", 11));
+        $this->assertSame("foobarbazne\nwline", $formatter->formatAndWrap("foobar<error>bazne\nwline</error>", 11));
+        $this->assertSame("foobarbazne\nw\nline", $formatter->formatAndWrap("foobar<error>baznew\nline</error>", 11));
+        $this->assertSame('👩‍🌾', $formatter->formatAndWrap('👩‍🌾', 1));
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/AbstractQuestionHelperTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/AbstractQuestionHelperTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/AbstractQuestionHelperTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/AbstractQuestionHelperTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,13 +18,13 @@
 {
     protected function createStreamableInputInterfaceMock($stream = null, $interactive = true)
     {
-        $mock = $this->createMock(StreamableInputInterface::class);
-        $mock->expects($this->any())
+        $mock = $this->createStub(StreamableInputInterface::class);
+        $mock
             ->method('isInteractive')
             ->willReturn($interactive);
 
         if ($stream) {
-            $mock->expects($this->any())
+            $mock
                 ->method('getStream')
                 ->willReturn($stream);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/DumperNativeFallbackTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/DumperNativeFallbackTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/DumperNativeFallbackTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/DumperNativeFallbackTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,7 +14,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\PhpUnit\ClassExistsMock;
 use Symfony\Component\Console\Helper\Dumper;
-use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Output\NullOutput;
 use Symfony\Component\VarDumper\Dumper\CliDumper;
 
 class DumperNativeFallbackTest extends TestCase
@@ -37,7 +37,7 @@
      */
     public function testInvoke($variable, $primitiveString)
     {
-        $dumper = new Dumper($this->createMock(OutputInterface::class));
+        $dumper = new Dumper(new NullOutput());
 
         $this->assertSame($primitiveString, $dumper($variable));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/DumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/DumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/DumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/DumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,7 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Console\Helper\Dumper;
-use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Output\NullOutput;
 use Symfony\Component\VarDumper\Test\VarDumperTestTrait;
 
 class DumperTest extends TestCase
@@ -37,10 +37,7 @@
      */
     public function testInvoke($variable)
     {
-        $output = $this->createMock(OutputInterface::class);
-        $output->method('isDecorated')->willReturn(false);
-
-        $dumper = new Dumper($output);
+        $dumper = new Dumper(new NullOutput());
 
         $this->assertDumpMatchesFormat($dumper($variable), $variable);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/HelperSetTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/HelperSetTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/HelperSetTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/HelperSetTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -89,13 +89,13 @@
 
     private function getGenericMockHelper($name, ?HelperSet $helperset = null)
     {
-        $mock_helper = $this->createMock(HelperInterface::class);
-        $mock_helper->expects($this->any())
+        $mock_helper = $this->createStub(HelperInterface::class);
+        $mock_helper
             ->method('getName')
             ->willReturn($name);
 
         if ($helperset) {
-            $mock_helper->expects($this->any())
+            $mock_helper
                 ->method('setHelperSet')
                 ->with($this->equalTo($helperset));
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/OutputWrapperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/OutputWrapperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/OutputWrapperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/OutputWrapperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,18 +35,18 @@
             20,
             false,
             <<<'EOS'
-            Árvíztűrőtükörfúrógé
-            p https://github.com/symfony/symfony Lorem ipsum
-            <comment>dolor</comment> sit amet,
-            consectetur
-            adipiscing elit.
-            Praesent vestibulum
-            nulla quis urna
-            maximus porttitor.
-            Donec ullamcorper
-            risus at <error>libero
-            ornare</error> efficitur.
-            EOS,
+                Árvíztűrőtükörfúrógé
+                p https://github.com/symfony/symfony Lorem ipsum
+                <comment>dolor</comment> sit amet,
+                consectetur
+                adipiscing elit.
+                Praesent vestibulum
+                nulla quis urna
+                maximus porttitor.
+                Donec ullamcorper
+                risus at <error>libero
+                ornare</error> efficitur.
+                EOS,
         ];
 
         yield 'Allow URL cut' => [
@@ -54,20 +54,20 @@
             20,
             true,
             <<<'EOS'
-            Árvíztűrőtükörfúrógé
-            p
-            https://github.com/s
-            ymfony/symfony Lorem
-            ipsum <comment>dolor</comment> sit
-            amet, consectetur
-            adipiscing elit.
-            Praesent vestibulum
-            nulla quis urna
-            maximus porttitor.
-            Donec ullamcorper
-            risus at <error>libero
-            ornare</error> efficitur.
-            EOS,
+                Árvíztűrőtükörfúrógé
+                p
+                https://github.com/s
+                ymfony/symfony Lorem
+                ipsum <comment>dolor</comment> sit
+                amet, consectetur
+                adipiscing elit.
+                Praesent vestibulum
+                nulla quis urna
+                maximus porttitor.
+                Donec ullamcorper
+                risus at <error>libero
+                ornare</error> efficitur.
+                EOS,
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,7 @@
     /**
      * @dataProvider provideCommandsAndOutput
      */
-    public function testVariousProcessRuns(string $expected, Process|string|array $cmd, int $verbosity, ?string $error)
+    public function testVariousProcessRuns(array $expectedOutputLines, bool $successful, Process|string|array $cmd, int $verbosity, ?string $error)
     {
         if (\is_string($cmd)) {
             $cmd = Process::fromShellCommandline($cmd);
@@ -31,9 +31,57 @@
 
         $helper = new ProcessHelper();
         $helper->setHelperSet(new HelperSet([new DebugFormatterHelper()]));
-        $output = $this->getOutputStream($verbosity);
-        $helper->run($output, $cmd, $error);
-        $this->assertEquals($expected, $this->getOutput($output));
+        $outputStream = $this->getOutputStream($verbosity);
+        $helper->run($outputStream, $cmd, $error);
+
+        $expectedLines = 1 + \count($expectedOutputLines);
+
+        if (StreamOutput::VERBOSITY_VERY_VERBOSE <= $verbosity) {
+            // the executed command and the result are displayed
+            $expectedLines += 2;
+        }
+
+        if (null !== $error) {
+            ++$expectedLines;
+        }
+
+        $output = explode("\n", $this->getOutput($outputStream));
+
+        $this->assertCount($expectedLines, $output);
+
+        // remove the trailing newline
+        array_pop($output);
+
+        if (null !== $error) {
+            $this->assertSame($error, array_pop($output));
+        }
+
+        if (StreamOutput::VERBOSITY_VERY_VERBOSE <= $verbosity) {
+            if ($cmd instanceof Process) {
+                $expectedCommandLine = $cmd->getCommandLine();
+            } elseif (\is_array($cmd) && $cmd[0] instanceof Process) {
+                $expectedCommandLine = $cmd[0]->getCommandLine();
+            } elseif (\is_array($cmd)) {
+                $expectedCommandLine = (new Process($cmd))->getCommandLine();
+            } else {
+                $expectedCommandLine = $cmd;
+            }
+
+            $this->assertSame('  RUN  '.$expectedCommandLine, array_shift($output));
+
+            if ($successful) {
+                $this->assertSame('  RES  Command ran successfully', array_pop($output));
+            } else {
+                $this->assertSame('  RES  252 Command did not run successfully', array_pop($output));
+            }
+        }
+
+        if ([] !== $expectedOutputLines) {
+            sort($expectedOutputLines);
+            sort($output);
+
+            $this->assertEquals($expectedOutputLines, $output);
+        }
     }
 
     public function testPassedCallbackIsExecuted()
@@ -43,7 +91,7 @@
         $output = $this->getOutputStream(StreamOutput::VERBOSITY_NORMAL);
 
         $executed = false;
-        $callback = function () use (&$executed) { $executed = true; };
+        $callback = static function () use (&$executed) { $executed = true; };
 
         $helper->run($output, ['php', '-r', 'echo 42;'], null, $callback);
         $this->assertTrue($executed);
@@ -51,70 +99,23 @@
 
     public static function provideCommandsAndOutput(): array
     {
-        $successOutputVerbose = <<<'EOT'
-  RUN  php -r "echo 42;"
-  RES  Command ran successfully
-
-EOT;
-        $successOutputDebug = <<<'EOT'
-  RUN  php -r "echo 42;"
-  OUT  42
-  RES  Command ran successfully
-
-EOT;
-        $successOutputDebugWithTags = <<<'EOT'
-  RUN  php -r "echo '<info>42</info>';"
-  OUT  <info>42</info>
-  RES  Command ran successfully
-
-EOT;
-        $successOutputProcessDebug = <<<'EOT'
-  RUN  'php' '-r' 'echo 42;'
-  OUT  42
-  RES  Command ran successfully
-
-EOT;
-        $syntaxErrorOutputVerbose = <<<'EOT'
-  RUN  php -r "fwrite(STDERR, 'error message');usleep(50000);fwrite(STDOUT, 'out message');exit(252);"
-  RES  252 Command did not run successfully
-
-EOT;
-        $syntaxErrorOutputDebug = <<<'EOT'
-  RUN  php -r "fwrite(STDERR, 'error message');usleep(500000);fwrite(STDOUT, 'out message');exit(252);"
-  ERR  error message
-  OUT  out message
-  RES  252 Command did not run successfully
-
-EOT;
-
         $PHP = '\\' === \DIRECTORY_SEPARATOR ? '"!PHP!"' : '"$PHP"';
-        $successOutputPhp = <<<EOT
-  RUN  php -r $PHP
-  OUT  42
-  RES  Command ran successfully
-
-EOT;
-
-        $errorMessage = 'An error occurred';
-        $args = new Process(['php', '-r', 'echo 42;']);
-        $args = $args->getCommandLine();
-        $successOutputProcessDebug = str_replace("'php' '-r' 'echo 42;'", $args, $successOutputProcessDebug);
 
         return [
-            ['', 'php -r "echo 42;"', StreamOutput::VERBOSITY_VERBOSE, null],
-            [$successOutputVerbose, 'php -r "echo 42;"', StreamOutput::VERBOSITY_VERY_VERBOSE, null],
-            [$successOutputDebug, 'php -r "echo 42;"', StreamOutput::VERBOSITY_DEBUG, null],
-            [$successOutputDebugWithTags, 'php -r "echo \'<info>42</info>\';"', StreamOutput::VERBOSITY_DEBUG, null],
-            ['', 'php -r "syntax error"', StreamOutput::VERBOSITY_VERBOSE, null],
-            [$syntaxErrorOutputVerbose, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERY_VERBOSE, null],
-            [$syntaxErrorOutputDebug, 'php -r "fwrite(STDERR, \'error message\');usleep(500000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_DEBUG, null],
-            [$errorMessage.\PHP_EOL, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERBOSE, $errorMessage],
-            [$syntaxErrorOutputVerbose.$errorMessage.\PHP_EOL, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERY_VERBOSE, $errorMessage],
-            [$syntaxErrorOutputDebug.$errorMessage.\PHP_EOL, 'php -r "fwrite(STDERR, \'error message\');usleep(500000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_DEBUG, $errorMessage],
-            [$successOutputProcessDebug, ['php', '-r', 'echo 42;'], StreamOutput::VERBOSITY_DEBUG, null],
-            [$successOutputDebug, Process::fromShellCommandline('php -r "echo 42;"'), StreamOutput::VERBOSITY_DEBUG, null],
-            [$successOutputProcessDebug, [new Process(['php', '-r', 'echo 42;'])], StreamOutput::VERBOSITY_DEBUG, null],
-            [$successOutputPhp, [Process::fromShellCommandline('php -r '.$PHP), 'PHP' => 'echo 42;'], StreamOutput::VERBOSITY_DEBUG, null],
+            [[], true, 'php -r "echo 42;"', StreamOutput::VERBOSITY_VERBOSE, null],
+            [[], true, 'php -r "echo 42;"', StreamOutput::VERBOSITY_VERY_VERBOSE, null],
+            [['  OUT  42'], true, 'php -r "echo 42;"', StreamOutput::VERBOSITY_DEBUG, null],
+            [['  OUT  <info>42</info>'], true, 'php -r "echo \'<info>42</info>\';"', StreamOutput::VERBOSITY_DEBUG, null],
+            [[], false, 'php -r "syntax error"', StreamOutput::VERBOSITY_VERBOSE, null],
+            [[], false, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERY_VERBOSE, null],
+            [['  ERR  error message', '  OUT  out message'], false, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_DEBUG, null],
+            [[], false, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERBOSE, 'An error occurred'],
+            [[], false, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERY_VERBOSE, 'An error occurred'],
+            [['  ERR  error message', '  OUT  out message'], false, 'php -r "fwrite(STDERR, \'error message\');usleep(500000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_DEBUG, 'An error occurred'],
+            [['  OUT  42'], true, ['php', '-r', 'echo 42;'], StreamOutput::VERBOSITY_DEBUG, null],
+            [['  OUT  42'], true, Process::fromShellCommandline('php -r "echo 42;"'), StreamOutput::VERBOSITY_DEBUG, null],
+            [['  OUT  42'], true, [new Process(['php', '-r', 'echo 42;'])], StreamOutput::VERBOSITY_DEBUG, null],
+            [['  OUT  42'], true, [Process::fromShellCommandline('php -r '.$PHP), 'PHP' => 'echo 42;'], StreamOutput::VERBOSITY_DEBUG, null],
         ];
     }
 
@@ -127,6 +128,6 @@
     {
         rewind($output->getStream());
 
-        return stream_get_contents($output->getStream());
+        return str_replace(\PHP_EOL, "\n", stream_get_contents($output->getStream()));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/ProgressBarTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/ProgressBarTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/ProgressBarTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/ProgressBarTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -423,7 +423,7 @@
         $output = new ConsoleSectionOutput($stream->getStream(), $sections, $stream->getVerbosity(), $stream->isDecorated(), new OutputFormatter());
 
         $bar = new ProgressBar($output, 50, 0);
-        $bar->setFormat('[%bar%] %percent:3s%%' . PHP_EOL . '%message%' . PHP_EOL);
+        $bar->setFormat('[%bar%] %percent:3s%%'.\PHP_EOL.'%message%'.\PHP_EOL);
         $bar->setMessage('');
         $bar->start();
         $bar->display();
@@ -435,8 +435,8 @@
         rewind($output->getStream());
         $this->assertEquals(escapeshellcmd(
             '[>---------------------------]   0%'.\PHP_EOL.\PHP_EOL.
-            "\x1b[2A\x1b[0J".'[>---------------------------]   2%'.\PHP_EOL. 'Doing something...' . \PHP_EOL .
-            "\x1b[2A\x1b[0J".'[=>--------------------------]   4%'.\PHP_EOL. 'Doing something foo...' . \PHP_EOL),
+            "\x1b[2A\x1b[0J".'[>---------------------------]   2%'.\PHP_EOL.'Doing something...'.\PHP_EOL.
+            "\x1b[2A\x1b[0J".'[=>--------------------------]   4%'.\PHP_EOL.'Doing something foo...'.\PHP_EOL),
             escapeshellcmd(stream_get_contents($output->getStream()))
         );
     }
@@ -448,7 +448,7 @@
         $output = new ConsoleSectionOutput($stream->getStream(), $sections, $stream->getVerbosity(), $stream->isDecorated(), new OutputFormatter());
 
         $bar = new ProgressBar($output, 50, 0);
-        $bar->setFormat('[%bar%] %percent:3s%%' . PHP_EOL . '%message%');
+        $bar->setFormat('[%bar%] %percent:3s%%'.\PHP_EOL.'%message%');
         $bar->setMessage('Start');
         $bar->start();
         $bar->display();
@@ -460,8 +460,8 @@
         rewind($output->getStream());
         $this->assertEquals(escapeshellcmd(
             '[>---------------------------]   0%'.\PHP_EOL.'Start'.\PHP_EOL.
-            "\x1b[2A\x1b[0J".'[>---------------------------]   2%'.\PHP_EOL .
-            "\x1b[1A\x1b[0J".'[=>--------------------------]   4%'.\PHP_EOL. 'Doing something...' . \PHP_EOL),
+            "\x1b[2A\x1b[0J".'[>---------------------------]   2%'.\PHP_EOL.
+            "\x1b[1A\x1b[0J".'[=>--------------------------]   4%'.\PHP_EOL.'Doing something...'.\PHP_EOL),
             escapeshellcmd(stream_get_contents($output->getStream()))
         );
     }
@@ -473,7 +473,7 @@
         $output = new ConsoleSectionOutput($stream->getStream(), $sections, $stream->getVerbosity(), $stream->isDecorated(), new OutputFormatter());
 
         $bar = new ProgressBar($output, 50, 0);
-        $bar->setFormat('[%bar%] %percent:3s%%' . PHP_EOL . '<comment>%message%</comment>');
+        $bar->setFormat('[%bar%] %percent:3s%%'.\PHP_EOL.'<comment>%message%</comment>');
         $bar->setMessage('Start');
         $bar->start();
         $bar->display();
@@ -485,8 +485,8 @@
         rewind($output->getStream());
         $this->assertEquals(escapeshellcmd(
             '[>---------------------------]   0%'.\PHP_EOL."\x1b[33mStart\x1b[39m".\PHP_EOL.
-            "\x1b[2A\x1b[0J".'[>---------------------------]   2%'.\PHP_EOL .
-            "\x1b[1A\x1b[0J".'[=>--------------------------]   4%'.\PHP_EOL. "\x1b[33mDoing something...\x1b[39m" . \PHP_EOL),
+            "\x1b[2A\x1b[0J".'[>---------------------------]   2%'.\PHP_EOL.
+            "\x1b[1A\x1b[0J".'[=>--------------------------]   4%'.\PHP_EOL."\x1b[33mDoing something...\x1b[39m".\PHP_EOL),
             escapeshellcmd(stream_get_contents($output->getStream()))
         );
     }
@@ -949,7 +949,7 @@
 
     public function testAddingPlaceholderFormatter()
     {
-        ProgressBar::setPlaceholderFormatterDefinition('remaining_steps', fn (ProgressBar $bar) => $bar->getMaxSteps() - $bar->getProgress());
+        ProgressBar::setPlaceholderFormatterDefinition('remaining_steps', static fn (ProgressBar $bar) => $bar->getMaxSteps() - $bar->getProgress());
         $bar = new ProgressBar($output = $this->getOutputStream(), 3, 0);
         $bar->setFormat(' %remaining_steps% [%bar%]');
 
@@ -970,7 +970,7 @@
     {
         $bar = new ProgressBar($output = $this->getOutputStream(), 3, 0);
         $bar->setFormat(' %countdown% [%bar%]');
-        $bar->setPlaceholderFormatter('countdown', $function = fn (ProgressBar $bar) => $bar->getMaxSteps() - $bar->getProgress());
+        $bar->setPlaceholderFormatter('countdown', $function = static fn (ProgressBar $bar) => $bar->getMaxSteps() - $bar->getProgress());
 
         $this->assertSame($function, $bar->getPlaceholderFormatter('countdown'));
 
@@ -1014,7 +1014,7 @@
         putenv('COLUMNS=156');
 
         $bar = new ProgressBar($output = $this->getOutputStream(), 15, 0);
-        ProgressBar::setPlaceholderFormatterDefinition('memory', function (ProgressBar $bar) {
+        ProgressBar::setPlaceholderFormatterDefinition('memory', static function (ProgressBar $bar) {
             static $i = 0;
             $mem = 100000 * $i;
             $colors = $i++ ? '41;37' : '44;37';
@@ -1162,7 +1162,7 @@
     {
         $bar = new ProgressBar($output = $this->getOutputStream(), 0, 0);
 
-        $this->assertEquals([1, 2], iterator_to_array($bar->iterate((function () {
+        $this->assertEquals([1, 2], iterator_to_array($bar->iterate((static function () {
             yield 1;
             yield 2;
         })())));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/ProgressIndicatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/ProgressIndicatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/ProgressIndicatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/ProgressIndicatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,9 @@
 namespace Symfony\Component\Console\Tests\Helper;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Console\Formatter\OutputFormatter;
 use Symfony\Component\Console\Helper\ProgressIndicator;
+use Symfony\Component\Console\Output\ConsoleSectionOutput;
 use Symfony\Component\Console\Output\StreamOutput;
 
 /**
@@ -170,6 +172,58 @@
         ];
     }
 
+    public function testWithConsoleSectionOutput()
+    {
+        $sections = [];
+        $stream = fopen('php://memory', 'r+', false);
+        $output = new ConsoleSectionOutput($stream, $sections, StreamOutput::VERBOSITY_NORMAL, true, new OutputFormatter());
+
+        $bar = new ProgressIndicator($output, null, 100, ['-', '\\', '|', '/']);
+        $bar->start('Starting...');
+        usleep(101000);
+        $bar->advance();
+        $bar->finish('Done...');
+
+        rewind($stream);
+        $content = stream_get_contents($stream);
+
+        // Must not use raw ANSI line-clear sequences — those corrupt ConsoleSectionOutput's internal line tracking
+        $this->assertStringNotContainsString("\x0D\x1B[2K", $content);
+
+        // finish() must not add an extra trailing newline — ConsoleSectionOutput::overwrite() already ends with writeln()
+        $this->assertStringEndsWith(' \\ Done...'.\PHP_EOL, $content);
+    }
+
+    public function testMultipleSectionsWithProgressIndicators()
+    {
+        $sections = [];
+        $stream = fopen('php://memory', 'r+', false);
+        $formatter = new OutputFormatter();
+        $section1 = new ConsoleSectionOutput($stream, $sections, StreamOutput::VERBOSITY_NORMAL, true, $formatter);
+        $section2 = new ConsoleSectionOutput($stream, $sections, StreamOutput::VERBOSITY_NORMAL, true, $formatter);
+
+        $bar1 = new ProgressIndicator($section1, null, 100, ['-', '\\', '|', '/']);
+        $bar2 = new ProgressIndicator($section2, null, 100, ['-', '\\', '|', '/']);
+
+        $bar1->start('Project 1...');
+        $bar2->start('Project 2...');
+        usleep(101000);
+        $bar1->advance();
+        $bar2->advance();
+        $bar1->finish('Project 1 Done.');
+        $bar2->finish('Project 2 Done.');
+
+        rewind($stream);
+        $content = stream_get_contents($stream);
+
+        // Must not use raw ANSI line-clear sequences
+        $this->assertStringNotContainsString("\x0D\x1B[2K", $content);
+
+        // Both finished messages must appear in the output
+        $this->assertStringContainsString('Project 1 Done.', $content);
+        $this->assertStringContainsString('Project 2 Done.', $content);
+    }
+
     protected function getOutputStream($decorated = true, $verbosity = StreamOutput::VERBOSITY_NORMAL)
     {
         return new StreamOutput(fopen('php://memory', 'r+', false), $verbosity, $decorated);
@@ -179,6 +233,6 @@
     {
         $count = substr_count($expected, "\n");
 
-        return "\x0D\x1B[2K".($count ? sprintf("\033[%dA", $count) : '').$expected;
+        return "\x0D\x1B[2K".($count ? \sprintf("\033[%dA", $count) : '').$expected;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,6 +26,8 @@
 use Symfony\Component\Console\Question\Question;
 use Symfony\Component\Console\Terminal;
 use Symfony\Component\Console\Tester\ApplicationTester;
+use Symfony\Component\Process\Exception\ProcessSignaledException;
+use Symfony\Component\Process\Process;
 
 /**
  * @group tty
@@ -279,14 +281,14 @@
         //
         // No effort is made to avoid irrelevant suggestions, as this is handled
         // by the autocomplete function.
-        $callback = function ($input) {
+        $callback = static function ($input) {
             $knownWords = ['Carrot', 'Creme', 'Curry', 'Parsnip', 'Pie', 'Potato', 'Tart'];
             $inputWords = explode(' ', $input);
             array_pop($inputWords);
             $suggestionBase = $inputWords ? implode(' ', $inputWords).' ' : '';
 
             return array_map(
-                fn ($word) => $suggestionBase.$word.' ',
+                static fn ($word) => $suggestionBase.$word.' ',
                 $knownWords
             );
         };
@@ -375,6 +377,24 @@
         $this->assertSame($character, $dialog->ask($this->createStreamableInputInterfaceMock($inputStream), $this->createOutputInterface(), $question));
     }
 
+    public function testAutocompleteWithSpaceAfterPartialMatch()
+    {
+        if (!Terminal::hasSttyAvailable()) {
+            $this->markTestSkipped('`stty` is required to test autocomplete functionality');
+        }
+
+        // a<SPACE><TAB><NEWLINE>
+        $inputStream = $this->getInputStream("a \t\n");
+
+        $dialog = new QuestionHelper();
+        $dialog->setHelperSet(new HelperSet([new FormatterHelper()]));
+
+        $question = new ChoiceQuestion('Please select a choice', ['a test', 'another choice']);
+        $question->setMaxAttempts(1);
+
+        $this->assertSame('a test', $dialog->ask($this->createStreamableInputInterfaceMock($inputStream), $this->createOutputInterface(), $question));
+    }
+
     public function testAutocompleteWithTrailingBackslash()
     {
         if (!Terminal::hasSttyAvailable()) {
@@ -446,14 +466,14 @@
     public function testAskMultilineResponseWithEOF()
     {
         $essay = <<<'EOD'
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque pretium lectus quis suscipit porttitor. Sed pretium bibendum vestibulum.
+            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque pretium lectus quis suscipit porttitor. Sed pretium bibendum vestibulum.
 
-Etiam accumsan, justo vitae imperdiet aliquet, neque est sagittis mauris, sed interdum massa leo id leo.
+            Etiam accumsan, justo vitae imperdiet aliquet, neque est sagittis mauris, sed interdum massa leo id leo.
 
-Aliquam rhoncus, libero ac blandit convallis, est sapien hendrerit nulla, vitae aliquet tellus orci a odio. Aliquam gravida ante sit amet massa lacinia, ut condimentum purus venenatis.
+            Aliquam rhoncus, libero ac blandit convallis, est sapien hendrerit nulla, vitae aliquet tellus orci a odio. Aliquam gravida ante sit amet massa lacinia, ut condimentum purus venenatis.
 
-Vivamus et erat dictum, euismod neque in, laoreet odio. Aenean vitae tellus at leo vestibulum auctor id eget urna.
-EOD;
+            Vivamus et erat dictum, euismod neque in, laoreet odio. Aenean vitae tellus at leo vestibulum auctor id eget urna.
+            EOD;
 
         $response = $this->getInputStream($essay);
 
@@ -505,11 +525,11 @@
     public function testAskMultilineResponseWithWithCursorInMiddleOfSeekableInputStream()
     {
         $input = <<<EOD
-This
-is
-some
-input
-EOD;
+            This
+            is
+            some
+            input
+            EOD;
         $response = $this->getInputStream($input);
         fseek($response, 8);
 
@@ -519,7 +539,7 @@
         $question->setMultiline(true);
 
         $this->assertSame("some\ninput", $dialog->ask($this->createStreamableInputInterfaceMock($response), $this->createOutputInterface(), $question));
-        $this->assertSame(8, ftell($response));
+        $this->assertSame(18, ftell($response));
     }
 
     /**
@@ -564,7 +584,7 @@
         $dialog->setHelperSet($helperSet);
 
         $error = 'This is not a color!';
-        $validator = function ($color) use ($error) {
+        $validator = static function ($color) use ($error) {
             if (!\in_array($color, ['white', 'black'])) {
                 throw new \InvalidArgumentException($error);
             }
@@ -759,7 +779,7 @@
         $dialog = new QuestionHelper();
 
         $question = new Question('What\'s your name?');
-        $question->setValidator(function ($value) {
+        $question->setValidator(static function ($value) {
             if (!$value) {
                 throw new \Exception('A value is required.');
             }
@@ -771,15 +791,35 @@
         $dialog->ask($this->createStreamableInputInterfaceMock($this->getInputStream('')), $this->createOutputInterface(), $question);
     }
 
+    public function testValidatorExceptionPropagatesOnEmptyInput()
+    {
+        $dialog = new QuestionHelper();
+
+        $question = new Question('What\'s your name?');
+        $question->setValidator(static function ($value) {
+            if ('' === $value || null === $value) {
+                throw new \InvalidArgumentException('A value is required.');
+            }
+
+            return $value;
+        });
+
+        $this->expectException(\InvalidArgumentException::class);
+        $this->expectExceptionMessage('A value is required.');
+
+        // Simulate setInputs(['']), which writes "\n" to the stream then EOF
+        $dialog->ask($this->createStreamableInputInterfaceMock($this->getInputStream("\n")), $this->createOutputInterface(), $question);
+    }
+
     public function testQuestionValidatorRepeatsThePrompt()
     {
         $tries = 0;
         $application = new Application();
         $application->setAutoExit(false);
         $application->register('question')
-            ->setCode(function ($input, $output) use (&$tries) {
+            ->setCode(static function ($input, $output) use (&$tries) {
                 $question = new Question('This is a promptable question');
-                $question->setValidator(function ($value) use (&$tries) {
+                $question->setValidator(static function ($value) use (&$tries) {
                     ++$tries;
                     if (!$value) {
                         throw new \Exception();
@@ -929,6 +969,28 @@
         $this->assertStringEndsWith("\033[1D\033[K\033[2D\033[K\033[1D\033[K", stream_get_contents($stream));
     }
 
+    /**
+     * @testWith ["single"]
+     *           ["multi"]
+     */
+    public function testExitCommandOnInputSIGINT(string $mode)
+    {
+        if (!\function_exists('pcntl_signal')) {
+            $this->markTestSkipped('pcntl signals not available');
+        }
+
+        $p = new Process(
+            ['php', \dirname(__DIR__).'/Fixtures/application_test_sigint.php', $mode],
+            timeout: 2, // the process will auto shutdown if not killed by SIGINT, to prevent blocking
+        );
+        $p->setPty(true);
+        $p->start();
+
+        $this->expectException(ProcessSignaledException::class);
+        $this->expectExceptionMessage('The process has been signaled with signal "2".');
+        $p->wait();
+    }
+
     protected function getInputStream($input)
     {
         $stream = fopen('php://memory', 'r+', false);
@@ -945,8 +1007,8 @@
 
     protected function createInputInterfaceMock($interactive = true)
     {
-        $mock = $this->createMock(InputInterface::class);
-        $mock->expects($this->any())
+        $mock = $this->createStub(InputInterface::class);
+        $mock
             ->method('isInteractive')
             ->willReturn($interactive);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/SymfonyQuestionHelperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/SymfonyQuestionHelperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/SymfonyQuestionHelperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/SymfonyQuestionHelperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -101,7 +101,7 @@
     {
         $questionHelper = new SymfonyQuestionHelper();
         $question = new Question('What is your favorite superhero?');
-        $question->setValidator(fn ($value) => $value);
+        $question->setValidator(static fn ($value) => $value);
         $input = $this->createStreamableInputInterfaceMock($this->getInputStream("\n"));
         $this->assertNull($questionHelper->ask($input, $this->createOutputInterface(), $question));
     }
@@ -155,13 +155,15 @@
         );
 
         $this->assertOutputContains(<<<EOT
- qqq:
-  [foo   ] foo
-  [żółw  ] bar
-  [łabądź] baz
- >
-EOT
-            , $output, true);
+             qqq:
+              [foo   ] foo
+              [żółw  ] bar
+              [łabądź] baz
+             >
+            EOT,
+            $output,
+            true
+        );
     }
 
     public function testChoiceQuestionCustomPrompt()
@@ -176,11 +178,13 @@
         );
 
         $this->assertOutputContains(<<<EOT
- qqq:
-  [0] foo
- >ccc>
-EOT
-            , $output, true);
+             qqq:
+              [0] foo
+             >ccc>
+            EOT,
+            $output,
+            true
+        );
     }
 
     protected function getInputStream($input)
@@ -202,8 +206,8 @@
 
     protected function createInputInterfaceMock($interactive = true)
     {
-        $mock = $this->createMock(InputInterface::class);
-        $mock->expects($this->any())
+        $mock = $this->createStub(InputInterface::class);
+        $mock
             ->method('isInteractive')
             ->willReturn($interactive);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/TableTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/TableTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Helper/TableTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Helper/TableTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -103,16 +103,16 @@
                 $books,
                 'default',
                 <<<'TABLE'
-+---------------+--------------------------+------------------+
-| ISBN          | Title                    | Author           |
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 | A Tale of Two Cities     | Charles Dickens  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+--------------------------+------------------+
+                    +---------------+--------------------------+------------------+
+                    | ISBN          | Title                    | Author           |
+                    +---------------+--------------------------+------------------+
+                    | 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
+                    | 9971-5-0210-0 | A Tale of Two Cities     | Charles Dickens  |
+                    | 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
+                    | 80-902734-1-6 | And Then There Were None | Agatha Christie  |
+                    +---------------+--------------------------+------------------+
 
-TABLE
+                    TABLE,
             ],
             [
                 ['ISBN', 'Title', 'Author'],
@@ -148,16 +148,16 @@
                 $books,
                 'box',
                 <<<'TABLE'
-┌───────────────┬──────────────────────────┬──────────────────┐
-│ ISBN          │ Title                    │ Author           │
-├───────────────┼──────────────────────────┼──────────────────┤
-│ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  │
-│ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  │
-│ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien │
-│ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  │
-└───────────────┴──────────────────────────┴──────────────────┘
+                    ┌───────────────┬──────────────────────────┬──────────────────┐
+                    │ ISBN          │ Title                    │ Author           │
+                    ├───────────────┼──────────────────────────┼──────────────────┤
+                    │ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  │
+                    │ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  │
+                    │ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien │
+                    │ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  │
+                    └───────────────┴──────────────────────────┴──────────────────┘
 
-TABLE
+                    TABLE,
             ],
             [
                 ['ISBN', 'Title', 'Author'],
@@ -170,17 +170,17 @@
                 ],
                 'box-double',
                 <<<'TABLE'
-╔═══════════════╤══════════════════════════╤══════════════════╗
-║ ISBN          │ Title                    │ Author           ║
-╠═══════════════╪══════════════════════════╪══════════════════╣
-║ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  ║
-║ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  ║
-╟───────────────┼──────────────────────────┼──────────────────╢
-║ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien ║
-║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  ║
-╚═══════════════╧══════════════════════════╧══════════════════╝
+                    ╔═══════════════╤══════════════════════════╤══════════════════╗
+                    ║ ISBN          │ Title                    │ Author           ║
+                    ╠═══════════════╪══════════════════════════╪══════════════════╣
+                    ║ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  ║
+                    ║ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  ║
+                    ╟───────────────┼──────────────────────────┼──────────────────╢
+                    ║ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien ║
+                    ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  ║
+                    ╚═══════════════╧══════════════════════════╧══════════════════╝
 
-TABLE
+                    TABLE,
             ],
             [
                 ['ISBN', 'Title'],
@@ -192,16 +192,16 @@
                 ],
                 'default',
                 <<<'TABLE'
-+---------------+--------------------------+------------------+
-| ISBN          | Title                    |                  |
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 |                          |                  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+--------------------------+------------------+
+                    +---------------+--------------------------+------------------+
+                    | ISBN          | Title                    |                  |
+                    +---------------+--------------------------+------------------+
+                    | 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
+                    | 9971-5-0210-0 |                          |                  |
+                    | 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
+                    | 80-902734-1-6 | And Then There Were None | Agatha Christie  |
+                    +---------------+--------------------------+------------------+
 
-TABLE
+                    TABLE,
             ],
             [
                 [],
@@ -213,14 +213,14 @@
                 ],
                 'default',
                 <<<'TABLE'
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 |                          |                  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+--------------------------+------------------+
+                    +---------------+--------------------------+------------------+
+                    | 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
+                    | 9971-5-0210-0 |                          |                  |
+                    | 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
+                    | 80-902734-1-6 | And Then There Were None | Agatha Christie  |
+                    +---------------+--------------------------+------------------+
 
-TABLE
+                    TABLE,
             ],
             [
                 ['ISBN', 'Title', 'Author'],
@@ -232,31 +232,31 @@
                 ],
                 'default',
                 <<<'TABLE'
-+---------------+----------------------------+-----------------+
-| ISBN          | Title                      | Author          |
-+---------------+----------------------------+-----------------+
-| 99921-58-10-7 | Divine                     | Dante Alighieri |
-|               | Comedy                     |                 |
-| 9971-5-0210-2 | Harry Potter               | Rowling         |
-|               | and the Chamber of Secrets | Joanne K.       |
-| 9971-5-0210-2 | Harry Potter               | Rowling         |
-|               | and the Chamber of Secrets | Joanne K.       |
-| 960-425-059-0 | The Lord of the Rings      | J. R. R.        |
-|               |                            | Tolkien         |
-+---------------+----------------------------+-----------------+
+                    +---------------+----------------------------+-----------------+
+                    | ISBN          | Title                      | Author          |
+                    +---------------+----------------------------+-----------------+
+                    | 99921-58-10-7 | Divine                     | Dante Alighieri |
+                    |               | Comedy                     |                 |
+                    | 9971-5-0210-2 | Harry Potter               | Rowling         |
+                    |               | and the Chamber of Secrets | Joanne K.       |
+                    | 9971-5-0210-2 | Harry Potter               | Rowling         |
+                    |               | and the Chamber of Secrets | Joanne K.       |
+                    | 960-425-059-0 | The Lord of the Rings      | J. R. R.        |
+                    |               |                            | Tolkien         |
+                    +---------------+----------------------------+-----------------+
 
-TABLE
+                    TABLE,
             ],
             [
                 ['ISBN', 'Title'],
                 [],
                 'default',
                 <<<'TABLE'
-+------+-------+
-| ISBN | Title |
-+------+-------+
+                    +------+-------+
+                    | ISBN | Title |
+                    +------+-------+
 
-TABLE
+                    TABLE,
             ],
             [
                 [],
@@ -272,14 +272,14 @@
                 ],
                 'default',
                 <<<'TABLE'
-+---------------+----------------------+-----------------+
-| ISBN          | Title                | Author          |
-+---------------+----------------------+-----------------+
-| 99921-58-10-7 | Divine Comedy        | Dante Alighieri |
-| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens |
-+---------------+----------------------+-----------------+
+                    +---------------+----------------------+-----------------+
+                    | ISBN          | Title                | Author          |
+                    +---------------+----------------------+-----------------+
+                    | 99921-58-10-7 | Divine Comedy        | Dante Alighieri |
+                    | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens |
+                    +---------------+----------------------+-----------------+
 
-TABLE
+                    TABLE,
             ],
             'Cell text with tags not used for Output styling' => [
                 ['ISBN', 'Title', 'Author'],
@@ -289,14 +289,14 @@
                 ],
                 'default',
                 <<<'TABLE'
-+----------------------------------+----------------------+-----------------+
-| ISBN                             | Title                | Author          |
-+----------------------------------+----------------------+-----------------+
-| <strong>99921-58-10-700</strong> | <f>Divine Com</f>    | Dante Alighieri |
-| 9971-5-0210-0                    | A Tale of Two Cities | Charles Dickens |
-+----------------------------------+----------------------+-----------------+
+                    +----------------------------------+----------------------+-----------------+
+                    | ISBN                             | Title                | Author          |
+                    +----------------------------------+----------------------+-----------------+
+                    | <strong>99921-58-10-700</strong> | <f>Divine Com</f>    | Dante Alighieri |
+                    | 9971-5-0210-0                    | A Tale of Two Cities | Charles Dickens |
+                    +----------------------------------+----------------------+-----------------+
 
-TABLE
+                    TABLE,
             ],
             'Cell with colspan' => [
                 ['ISBN', 'Title', 'Author'],
@@ -321,22 +321,22 @@
                 ],
                 'default',
                 <<<'TABLE'
-+-------------------------------+-------------------------------+-----------------------------+
-| ISBN                          | Title                         | Author                      |
-+-------------------------------+-------------------------------+-----------------------------+
-| 99921-58-10-7                 | Divine Comedy                 | Dante Alighieri             |
-+-------------------------------+-------------------------------+-----------------------------+
-| Divine Comedy(Dante Alighieri)                                                              |
-+-------------------------------+-------------------------------+-----------------------------+
-| Arduino: A Quick-Start Guide                                  | Mark Schmidt                |
-+-------------------------------+-------------------------------+-----------------------------+
-| 9971-5-0210-0                 | A Tale of                                                   |
-|                               | Two Cities                                                  |
-+-------------------------------+-------------------------------+-----------------------------+
-| Cupìdĭtâte díctá âtquè pôrrò, tèmpórà exercitátìónèm mòdí ânìmí núllà nèmò vèl níhìl!       |
-+-------------------------------+-------------------------------+-----------------------------+
+                    +-------------------------------+-------------------------------+-----------------------------+
+                    | ISBN                          | Title                         | Author                      |
+                    +-------------------------------+-------------------------------+-----------------------------+
+                    | 99921-58-10-7                 | Divine Comedy                 | Dante Alighieri             |
+                    +-------------------------------+-------------------------------+-----------------------------+
+                    | Divine Comedy(Dante Alighieri)                                                              |
+                    +-------------------------------+-------------------------------+-----------------------------+
+                    | Arduino: A Quick-Start Guide                                  | Mark Schmidt                |
+                    +-------------------------------+-------------------------------+-----------------------------+
+                    | 9971-5-0210-0                 | A Tale of                                                   |
+                    |                               | Two Cities                                                  |
+                    +-------------------------------+-------------------------------+-----------------------------+
+                    | Cupìdĭtâte díctá âtquè pôrrò, tèmpórà exercitátìónèm mòdí ânìmí núllà nèmò vèl níhìl!       |
+                    +-------------------------------+-------------------------------+-----------------------------+
 
-TABLE
+                    TABLE,
             ],
             'Cell after colspan contains new line break' => [
                 ['Foo', 'Bar', 'Baz'],
@@ -348,14 +348,14 @@
                 ],
                 'default',
                 <<<'TABLE'
-+-----+-----+-----+
-| Foo | Bar | Baz |
-+-----+-----+-----+
-| foo       | baz |
-| bar       | qux |
-+-----+-----+-----+
+                    +-----+-----+-----+
+                    | Foo | Bar | Baz |
+                    +-----+-----+-----+
+                    | foo       | baz |
+                    | bar       | qux |
+                    +-----+-----+-----+
 
-TABLE
+                    TABLE,
             ],
             'Cell after colspan contains multiple new lines' => [
                 ['Foo', 'Bar', 'Baz'],
@@ -367,15 +367,15 @@
                 ],
                 'default',
                 <<<'TABLE'
-+-----+-----+------+
-| Foo | Bar | Baz  |
-+-----+-----+------+
-| foo       | baz  |
-| bar       | qux  |
-|           | quux |
-+-----+-----+------+
+                    +-----+-----+------+
+                    | Foo | Bar | Baz  |
+                    +-----+-----+------+
+                    | foo       | baz  |
+                    | bar       | qux  |
+                    |           | quux |
+                    +-----+-----+------+
 
-TABLE
+                    TABLE,
             ],
             'Cell with rowspan' => [
                 ['ISBN', 'Title', 'Author'],
@@ -393,20 +393,20 @@
                 ],
                 'default',
                 <<<'TABLE'
-+---------------+---------------+-----------------+
-| ISBN          | Title         | Author          |
-+---------------+---------------+-----------------+
-| 9971-5-0210-0 | Divine Comedy | Dante Alighieri |
-|               |               |                 |
-|               | The Lord of   | J. R.           |
-|               | the Rings     | R. Tolkien      |
-+---------------+---------------+-----------------+
-| 80-902734-1-6 | And Then      | Agatha Christie |
-| 80-902734-1-7 | There         | Test            |
-|               | Were None     |                 |
-+---------------+---------------+-----------------+
+                    +---------------+---------------+-----------------+
+                    | ISBN          | Title         | Author          |
+                    +---------------+---------------+-----------------+
+                    | 9971-5-0210-0 | Divine Comedy | Dante Alighieri |
+                    |               |               |                 |
+                    |               | The Lord of   | J. R.           |
+                    |               | the Rings     | R. Tolkien      |
+                    +---------------+---------------+-----------------+
+                    | 80-902734-1-6 | And Then      | Agatha Christie |
+                    | 80-902734-1-7 | There         | Test            |
+                    |               | Were None     |                 |
+                    +---------------+---------------+-----------------+
 
-TABLE
+                    TABLE,
             ],
             'Cell with rowspan and colspan' => [
                 ['ISBN', 'Title', 'Author'],
@@ -426,18 +426,18 @@
                 ],
                 'default',
                 <<<'TABLE'
-+------------------+---------+-----------------+
-| ISBN             | Title   | Author          |
-+------------------+---------+-----------------+
-| 9971-5-0210-0              | Dante Alighieri |
-|                            | Charles Dickens |
-+------------------+---------+-----------------+
-| Dante Alighieri  | 9971-5-0210-0             |
-| J. R. R. Tolkien |                           |
-| J. R. R          |                           |
-+------------------+---------+-----------------+
+                    +------------------+---------+-----------------+
+                    | ISBN             | Title   | Author          |
+                    +------------------+---------+-----------------+
+                    | 9971-5-0210-0              | Dante Alighieri |
+                    |                            | Charles Dickens |
+                    +------------------+---------+-----------------+
+                    | Dante Alighieri  | 9971-5-0210-0             |
+                    | J. R. R. Tolkien |                           |
+                    | J. R. R          |                           |
+                    +------------------+---------+-----------------+
 
-TABLE
+                    TABLE,
             ],
             'Cell with rowspan and colspan contains new line break' => [
                 ['ISBN', 'Title', 'Author'],
@@ -461,26 +461,26 @@
                 ],
                 'default',
                 <<<'TABLE'
-+-----------------+-------+-----------------+
-| ISBN            | Title | Author          |
-+-----------------+-------+-----------------+
-| 9971                    | Dante Alighieri |
-| -5-                     | Charles Dickens |
-| 021                     |                 |
-| 0-0                     |                 |
-+-----------------+-------+-----------------+
-| Dante Alighieri | 9971                    |
-| Charles Dickens | -5-                     |
-|                 | 021                     |
-|                 | 0-0                     |
-+-----------------+-------+-----------------+
-| 9971                    | Dante           |
-| -5-                     | Alighieri       |
-| 021                     |                 |
-| 0-0                     |                 |
-+-----------------+-------+-----------------+
+                    +-----------------+-------+-----------------+
+                    | ISBN            | Title | Author          |
+                    +-----------------+-------+-----------------+
+                    | 9971                    | Dante Alighieri |
+                    | -5-                     | Charles Dickens |
+                    | 021                     |                 |
+                    | 0-0                     |                 |
+                    +-----------------+-------+-----------------+
+                    | Dante Alighieri | 9971                    |
+                    | Charles Dickens | -5-                     |
+                    |                 | 021                     |
+                    |                 | 0-0                     |
+                    +-----------------+-------+-----------------+
+                    | 9971                    | Dante           |
+                    | -5-                     | Alighieri       |
+                    | 021                     |                 |
+                    | 0-0                     |                 |
+                    +-----------------+-------+-----------------+
 
-TABLE
+                    TABLE,
             ],
             'Cell with rowspan and colspan without using TableSeparator' => [
                 ['ISBN', 'Title', 'Author'],
@@ -498,20 +498,20 @@
                 ],
                 'default',
                 <<<'TABLE'
-+-----------------+-------+-----------------+
-| ISBN            | Title | Author          |
-+-----------------+-------+-----------------+
-| 9971                    | Dante Alighieri |
-| -5-                     | Charles Dickens |
-| 021                     |                 |
-| 0-0                     |                 |
-| Dante Alighieri | 9971                    |
-| Charles Dickens | -5-                     |
-|                 | 021                     |
-|                 | 0-0                     |
-+-----------------+-------+-----------------+
+                    +-----------------+-------+-----------------+
+                    | ISBN            | Title | Author          |
+                    +-----------------+-------+-----------------+
+                    | 9971                    | Dante Alighieri |
+                    | -5-                     | Charles Dickens |
+                    | 021                     |                 |
+                    | 0-0                     |                 |
+                    | Dante Alighieri | 9971                    |
+                    | Charles Dickens | -5-                     |
+                    |                 | 021                     |
+                    |                 | 0-0                     |
+                    +-----------------+-------+-----------------+
 
-TABLE
+                    TABLE,
             ],
             'Cell with rowspan and colspan with separator inside a rowspan' => [
                 ['ISBN', 'Author'],
@@ -525,15 +525,15 @@
                 ],
                 'default',
                 <<<'TABLE'
-+---------------+-----------------+
-| ISBN          | Author          |
-+---------------+-----------------+
-| 9971-5-0210-0 | Dante Alighieri |
-|               |-----------------|
-|               | Charles Dickens |
-+---------------+-----------------+
+                    +---------------+-----------------+
+                    | ISBN          | Author          |
+                    +---------------+-----------------+
+                    | 9971-5-0210-0 | Dante Alighieri |
+                    |               |-----------------|
+                    |               | Charles Dickens |
+                    +---------------+-----------------+
 
-TABLE
+                    TABLE,
             ],
             'Multiple header lines' => [
                 [
@@ -543,13 +543,13 @@
                 [],
                 'default',
                 <<<'TABLE'
-+------+-------+--------+
-| Main title            |
-+------+-------+--------+
-| ISBN | Title | Author |
-+------+-------+--------+
+                    +------+-------+--------+
+                    | Main title            |
+                    +------+-------+--------+
+                    | ISBN | Title | Author |
+                    +------+-------+--------+
 
-TABLE
+                    TABLE,
             ],
             'Row with multiple cells' => [
                 [],
@@ -563,11 +563,11 @@
                 ],
                 'default',
                 <<<'TABLE'
-+---+--+--+---+--+---+--+---+--+
-| 1       | 2    | 3    | 4    |
-+---+--+--+---+--+---+--+---+--+
+                    +---+--+--+---+--+---+--+---+--+
+                    | 1       | 2    | 3    | 4    |
+                    +---+--+--+---+--+---+--+---+--+
 
-TABLE
+                    TABLE,
             ],
             'Coslpan and table cells with comment style' => [
                 [
@@ -586,16 +586,15 @@
                 ],
                 'default',
                 <<<TABLE
-+-----------------+------------------+---------+
-|\033[32m \033[39m\033[33mLong Title\033[39m\033[32m                                   \033[39m|
-+-----------------+------------------+---------+
-| 9971-5-0210-0                                |
-+-----------------+------------------+---------+
-| Dante Alighieri | J. R. R. Tolkien | J. R. R |
-+-----------------+------------------+---------+
+                    +-----------------+------------------+---------+
+                    |\033[32m \033[39m\033[33mLong Title\033[39m\033[32m                                   \033[39m|
+                    +-----------------+------------------+---------+
+                    | 9971-5-0210-0                                |
+                    +-----------------+------------------+---------+
+                    | Dante Alighieri | J. R. R. Tolkien | J. R. R |
+                    +-----------------+------------------+---------+
 
-TABLE
-                ,
+                    TABLE,
                 true,
             ],
             'Row with formatted cells containing a newline' => [
@@ -615,16 +614,15 @@
                 ],
                 'default',
                 <<<'TABLE'
-+-------+------------+
-[37;41m| [39;49m[37;41mDont break[39;49m[37;41m         |[39;49m
-[37;41m| here[39;49m               |
-+-------+------------+
-[39;49m| foo   | [39;49m[37;41mDont break[39;49m[39;49m |[39;49m
-[39;49m| bar   | [39;49m[37;41mhere[39;49m       |
-+-------+------------+
+                    +-------+------------+
+                    [37;41m| [39;49m[37;41mDont break[39;49m[37;41m         |[39;49m
+                    [37;41m| here[39;49m               |
+                    +-------+------------+
+                    [39;49m| foo   | [39;49m[37;41mDont break[39;49m[39;49m |[39;49m
+                    [39;49m| bar   | [39;49m[37;41mhere[39;49m       |
+                    +-------+------------+
 
-TABLE
-                ,
+                    TABLE,
                 true,
             ],
             'TabeCellStyle with align. Also with rowspan and colspan > 1' => [
@@ -695,18 +693,17 @@
                 ],
                 'default',
                 <<<'TABLE'
-+---------------+---------------+-------------------------------------------+
-|          ISBN | Title         |                  Author                   |
-+---------------+---------------+-------------------------------------------+
-|      978      | De Monarchia  |             Dante Alighieri               |
-| 99921-58-10-7 | Divine Comedy | spans multiple rows rows Dante Alighieri  |
-|               |               |         spans multiple rows rows          |
-+---------------+---------------+-------------------------------------------+
-|             test              |                                      tttt |
-+---------------+---------------+-------------------------------------------+
+                    +---------------+---------------+-------------------------------------------+
+                    |          ISBN | Title         |                  Author                   |
+                    +---------------+---------------+-------------------------------------------+
+                    |      978      | De Monarchia  |             Dante Alighieri               |
+                    | 99921-58-10-7 | Divine Comedy | spans multiple rows rows Dante Alighieri  |
+                    |               |               |         spans multiple rows rows          |
+                    +---------------+---------------+-------------------------------------------+
+                    |             test              |                                      tttt |
+                    +---------------+---------------+-------------------------------------------+
 
-TABLE
-                ,
+                    TABLE,
             ],
             'TabeCellStyle with fg,bg. Also with rowspan and colspan > 1' => [
                 [],
@@ -766,16 +763,15 @@
                 ],
                 'default',
                 <<<'TABLE'
-+---------------+---------------+-------------------------------------------+
-[39;49m| [39;49m[31m978[39m[39;49m           | De Monarchia  |[39;49m[31;42m             Dante Alighieri               [39;49m[39;49m|[39;49m
-[39;49m| [39;49m[32m99921-58-10-7[39m[39;49m | Divine Comedy |[39;49m[31;42m spans multiple rows rows Dante Alighieri  [39;49m[39;49m|[39;49m
-|               |               |[31;42m         spans multiple rows rows          [39;49m|
-+---------------+---------------+-------------------------------------------+
-|             [37;41mtest[39;49m              |[31;42m                                      tttt [39;49m|
-+---------------+---------------+-------------------------------------------+
+                    +---------------+---------------+-------------------------------------------+
+                    [39;49m| [39;49m[31m978[39m[39;49m           | De Monarchia  |[39;49m[31;42m             Dante Alighieri               [39;49m[39;49m|[39;49m
+                    [39;49m| [39;49m[32m99921-58-10-7[39m[39;49m | Divine Comedy |[39;49m[31;42m spans multiple rows rows Dante Alighieri  [39;49m[39;49m|[39;49m
+                    |               |               |[31;42m         spans multiple rows rows          [39;49m|
+                    +---------------+---------------+-------------------------------------------+
+                    |             [37;41mtest[39;49m              |[31;42m                                      tttt [39;49m|
+                    +---------------+---------------+-------------------------------------------+
 
-TABLE
-                ,
+                    TABLE,
                 true,
             ],
             'TabeCellStyle with cellFormat. Also with rowspan and colspan > 1' => [
@@ -821,16 +817,15 @@
                 ],
                 'default',
                 <<<'TABLE'
-+----------------+---------------+---------------------+
-|[30;46m ISBN           [39;49m|[32m Title         [39m|[32m Author              [39m|
-+----------------+---------------+---------------------+
-[39;49m| 978-0521567817 | De Monarchia  |[39;49m[32m Dante Alighieri     [39m[39;49m|[39;49m
-| 978-0804169127 | Divine Comedy |[32m spans multiple rows [39m|
-|[37;41m test                           [39;49m| tttt                |
-+----------------+---------------+---------------------+
+                    +----------------+---------------+---------------------+
+                    |[30;46m ISBN           [39;49m|[32m Title         [39m|[32m Author              [39m|
+                    +----------------+---------------+---------------------+
+                    [39;49m| 978-0521567817 | De Monarchia  |[39;49m[32m Dante Alighieri     [39m[39;49m|[39;49m
+                    | 978-0804169127 | Divine Comedy |[32m spans multiple rows [39m|
+                    |[37;41m test                           [39;49m| tttt                |
+                    +----------------+---------------+---------------------+
 
-TABLE
-                ,
+                    TABLE,
                 true,
             ],
         ];
@@ -848,13 +843,13 @@
 
         $expected =
 <<<'TABLE'
-+------+
-| ■■   |
-+------+
-| 1234 |
-+------+
+    +------+
+    | ■■   |
+    +------+
+    | 1234 |
+    +------+
 
-TABLE;
+    TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -868,11 +863,11 @@
 
         $expected =
 <<<'TABLE'
-+-------+
-| 12345 |
-+-------+
+    +-------+
+    | 12345 |
+    +-------+
 
-TABLE;
+    TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -886,11 +881,11 @@
 
         $expected =
 <<<'TABLE'
-+----------+
-| 12345.01 |
-+----------+
+    +----------+
+    | 12345.01 |
+    +----------+
 
-TABLE;
+    TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -914,13 +909,13 @@
 
         $expected =
 <<<'TABLE'
-.......
-. Foo .
-.......
-. Bar .
-.......
+    .......
+    . Foo .
+    .......
+    . Bar .
+    .......
 
-TABLE;
+    TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -941,17 +936,17 @@
 
         $expected =
 <<<'TABLE'
-+------+
-| Foo  |
-+------+
-| Bar1 |
-+------+
-| Bar2 |
-+------+
-| Bar3 |
-+------+
+    +------+
+    | Foo  |
+    +------+
+    | Bar1 |
+    +------+
+    | Bar2 |
+    +------+
+    | Bar3 |
+    +------+
 
-TABLE;
+    TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
 
@@ -970,17 +965,17 @@
 
         $expected =
 <<<TABLE
-+----+---+
-| foo    |
-+----+---+
-+----+---+
-| foo    |
-+----+---+
-+----+---+
-| foo    |
-+----+---+
+    +----+---+
+    | foo    |
+    +----+---+
+    +----+---+
+    | foo    |
+    +----+---+
+    +----+---+
+    | foo    |
+    +----+---+
 
-TABLE;
+    TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1003,14 +998,14 @@
 
         $expected =
             <<<TABLE
-+---------------+----------------------+-----------------+--------+
-| ISBN          | Title                | Author          |  Price |
-+---------------+----------------------+-----------------+--------+
-| 99921-58-10-7 | Divine Comedy        | Dante Alighieri |   9.95 |
-| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | 139.25 |
-+---------------+----------------------+-----------------+--------+
+                +---------------+----------------------+-----------------+--------+
+                | ISBN          | Title                | Author          |  Price |
+                +---------------+----------------------+-----------------+--------+
+                | 99921-58-10-7 | Divine Comedy        | Dante Alighieri |   9.95 |
+                | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | 139.25 |
+                +---------------+----------------------+-----------------+--------+
 
-TABLE;
+                TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1049,14 +1044,14 @@
 
         $expected =
             <<<TABLE
-+-----------------+----------------------+-----------------+------------+
-| ISBN            | Title                | Author          |      Price |
-+-----------------+----------------------+-----------------+------------+
-| 99921-58-10-7   | Divine Comedy        | Dante Alighieri |       9.95 |
-| 9971-5-0210-0   | A Tale of Two Cities | Charles Dickens |     139.25 |
-+-----------------+----------------------+-----------------+------------+
+                +-----------------+----------------------+-----------------+------------+
+                | ISBN            | Title                | Author          |      Price |
+                +-----------------+----------------------+-----------------+------------+
+                | 99921-58-10-7   | Divine Comedy        | Dante Alighieri |       9.95 |
+                | 9971-5-0210-0   | A Tale of Two Cities | Charles Dickens |     139.25 |
+                +-----------------+----------------------+-----------------+------------+
 
-TABLE;
+                TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1080,14 +1075,14 @@
 
         $expected =
             <<<TABLE
-+-----------------+----------------------+-----------------+------------+
-| ISBN            | Title                | Author          |      Price |
-+-----------------+----------------------+-----------------+------------+
-| 99921-58-10-7   | Divine Comedy        | Dante Alighieri |       9.95 |
-| 9971-5-0210-0   | A Tale of Two Cities | Charles Dickens |     139.25 |
-+-----------------+----------------------+-----------------+------------+
+                +-----------------+----------------------+-----------------+------------+
+                | ISBN            | Title                | Author          |      Price |
+                +-----------------+----------------------+-----------------+------------+
+                | 99921-58-10-7   | Divine Comedy        | Dante Alighieri |       9.95 |
+                | 9971-5-0210-0   | A Tale of Two Cities | Charles Dickens |     139.25 |
+                +-----------------+----------------------+-----------------+------------+
 
-TABLE;
+                TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1110,19 +1105,19 @@
 
         $expected =
             <<<TABLE
-+---------------+---------------+-----------------+-------+
-|\033[32m ISBN          \033[39m|\033[32m Title         \033[39m|\033[32m Author          \033[39m|\033[32m Price \033[39m|
-+---------------+---------------+-----------------+-------+
-| 99921-58-10-7 | Divine Comedy | Dante Alighieri | 9.95  |
-+---------------+---------------+-----------------+-------+
-\x1b[5A\x1b[0J+---------------+----------------------+-----------------+--------+
-|\033[32m ISBN          \033[39m|\033[32m Title                \033[39m|\033[32m Author          \033[39m|\033[32m Price  \033[39m|
-+---------------+----------------------+-----------------+--------+
-| 99921-58-10-7 | Divine Comedy        | Dante Alighieri | 9.95   |
-| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | 139.25 |
-+---------------+----------------------+-----------------+--------+
+                +---------------+---------------+-----------------+-------+
+                |\033[32m ISBN          \033[39m|\033[32m Title         \033[39m|\033[32m Author          \033[39m|\033[32m Price \033[39m|
+                +---------------+---------------+-----------------+-------+
+                | 99921-58-10-7 | Divine Comedy | Dante Alighieri | 9.95  |
+                +---------------+---------------+-----------------+-------+
+                \x1b[5A\x1b[0J+---------------+----------------------+-----------------+--------+
+                |\033[32m ISBN          \033[39m|\033[32m Title                \033[39m|\033[32m Author          \033[39m|\033[32m Price  \033[39m|
+                +---------------+----------------------+-----------------+--------+
+                | 99921-58-10-7 | Divine Comedy        | Dante Alighieri | 9.95   |
+                | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | 139.25 |
+                +---------------+----------------------+-----------------+--------+
 
-TABLE;
+                TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1143,14 +1138,14 @@
 
         $expected =
             <<<TABLE
-+---------------+----------------------+-----------------+--------+
-|\033[32m ISBN          \033[39m|\033[32m Title                \033[39m|\033[32m Author          \033[39m|\033[32m Price  \033[39m|
-+---------------+----------------------+-----------------+--------+
-| 99921-58-10-7 | Divine Comedy        | Dante Alighieri | 9.95   |
-| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | 139.25 |
-+---------------+----------------------+-----------------+--------+
+                +---------------+----------------------+-----------------+--------+
+                |\033[32m ISBN          \033[39m|\033[32m Title                \033[39m|\033[32m Author          \033[39m|\033[32m Price  \033[39m|
+                +---------------+----------------------+-----------------+--------+
+                | 99921-58-10-7 | Divine Comedy        | Dante Alighieri | 9.95   |
+                | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | 139.25 |
+                +---------------+----------------------+-----------------+--------+
 
-TABLE;
+                TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1173,19 +1168,19 @@
 
         $expected =
             <<<TABLE
-+---------------+---------------+-----------------+-------+
-| ISBN          | Title         | Author          | Price |
-+---------------+---------------+-----------------+-------+
-| 99921-58-10-7 | Divine Comedy | Dante Alighieri | 9.95  |
-+---------------+---------------+-----------------+-------+
-+---------------+----------------------+-----------------+--------+
-| ISBN          | Title                | Author          | Price  |
-+---------------+----------------------+-----------------+--------+
-| 99921-58-10-7 | Divine Comedy        | Dante Alighieri | 9.95   |
-| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | 139.25 |
-+---------------+----------------------+-----------------+--------+
+                +---------------+---------------+-----------------+-------+
+                | ISBN          | Title         | Author          | Price |
+                +---------------+---------------+-----------------+-------+
+                | 99921-58-10-7 | Divine Comedy | Dante Alighieri | 9.95  |
+                +---------------+---------------+-----------------+-------+
+                +---------------+----------------------+-----------------+--------+
+                | ISBN          | Title                | Author          | Price  |
+                +---------------+----------------------+-----------------+--------+
+                | 99921-58-10-7 | Divine Comedy        | Dante Alighieri | 9.95   |
+                | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | 139.25 |
+                +---------------+----------------------+-----------------+--------+
 
-TABLE;
+                TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1216,17 +1211,17 @@
 
         $expected =
             <<<TABLE
-My Table
-+------+-------+--------+-------+
-|\033[32m ISBN \033[39m|\033[32m Title \033[39m|\033[32m Author \033[39m|\033[32m Price \033[39m|
-+------+-------+--------+-------+
-\x1b[3A\x1b[0J+---------------+----------------------+-----------------+--------+
-|\033[32m ISBN          \033[39m|\033[32m Title                \033[39m|\033[32m Author          \033[39m|\033[32m Price  \033[39m|
-+---------------+----------------------+-----------------+--------+
-| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | 139.25 |
-+---------------+----------------------+-----------------+--------+
+                My Table
+                +------+-------+--------+-------+
+                |\033[32m ISBN \033[39m|\033[32m Title \033[39m|\033[32m Author \033[39m|\033[32m Price \033[39m|
+                +------+-------+--------+-------+
+                \x1b[3A\x1b[0J+---------------+----------------------+-----------------+--------+
+                |\033[32m ISBN          \033[39m|\033[32m Title                \033[39m|\033[32m Author          \033[39m|\033[32m Price  \033[39m|
+                +---------------+----------------------+-----------------+--------+
+                | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | 139.25 |
+                +---------------+----------------------+-----------------+--------+
 
-TABLE;
+                TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1276,17 +1271,16 @@
                 'Page 1/2',
                 'default',
                 <<<'TABLE'
-+---------------+----------- Books --------+------------------+
-| ISBN          | Title                    | Author           |
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 | A Tale of Two Cities     | Charles Dickens  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+--------- Page 1/2 -------+------------------+
+                    +---------------+----------- Books --------+------------------+
+                    | ISBN          | Title                    | Author           |
+                    +---------------+--------------------------+------------------+
+                    | 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
+                    | 9971-5-0210-0 | A Tale of Two Cities     | Charles Dickens  |
+                    | 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
+                    | 80-902734-1-6 | And Then There Were None | Agatha Christie  |
+                    +---------------+--------- Page 1/2 -------+------------------+
 
-TABLE
-                ,
+                    TABLE,
                 true,
             ],
             'header contains multiple lines' => [
@@ -1294,50 +1288,50 @@
                 'footer',
                 'default',
                 <<<'TABLE'
-+---------------+---- Multiline
-header
-here -+------------------+
-| ISBN          | Title                    | Author           |
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 | A Tale of Two Cities     | Charles Dickens  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+---------- footer --------+------------------+
+                    +---------------+--- Multiline
+                    header
+                    here +------------------+
+                    | ISBN          | Title                    | Author           |
+                    +---------------+--------------------------+------------------+
+                    | 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
+                    | 9971-5-0210-0 | A Tale of Two Cities     | Charles Dickens  |
+                    | 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
+                    | 80-902734-1-6 | And Then There Were None | Agatha Christie  |
+                    +---------------+---------- footer --------+------------------+
 
-TABLE
+                    TABLE,
             ],
             [
                 'Books',
                 'Page 1/2',
                 'box',
                 <<<'TABLE'
-┌───────────────┬─────────── Books ────────┬──────────────────┐
-│ ISBN          │ Title                    │ Author           │
-├───────────────┼──────────────────────────┼──────────────────┤
-│ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  │
-│ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  │
-│ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien │
-│ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  │
-└───────────────┴───────── Page 1/2 ───────┴──────────────────┘
+                    ┌───────────────┬─────────── Books ────────┬──────────────────┐
+                    │ ISBN          │ Title                    │ Author           │
+                    ├───────────────┼──────────────────────────┼──────────────────┤
+                    │ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  │
+                    │ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  │
+                    │ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien │
+                    │ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  │
+                    └───────────────┴───────── Page 1/2 ───────┴──────────────────┘
 
-TABLE
+                    TABLE,
             ],
             [
                 'Boooooooooooooooooooooooooooooooooooooooooooooooooooooooks',
                 'Page 1/999999999999999999999999999999999999999999999999999',
                 'default',
                 <<<'TABLE'
-+- Booooooooooooooooooooooooooooooooooooooooooooooooooooo... -+
-| ISBN          | Title                    | Author           |
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 | A Tale of Two Cities     | Charles Dickens  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+- Page 1/99999999999999999999999999999999999999999999999... -+
+                    +- Booooooooooooooooooooooooooooooooooooooooooooooooooooo... -+
+                    | ISBN          | Title                    | Author           |
+                    +---------------+--------------------------+------------------+
+                    | 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
+                    | 9971-5-0210-0 | A Tale of Two Cities     | Charles Dickens  |
+                    | 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
+                    | 80-902734-1-6 | And Then There Were None | Agatha Christie  |
+                    +- Page 1/99999999999999999999999999999999999999999999999... -+
 
-TABLE
+                    TABLE,
             ],
         ];
     }
@@ -1353,12 +1347,12 @@
             ->render();
 
         $expected = <<<'TABLE'
-+-------- Reproducer --------+
-| Value            | 123-456 |
-| Some other value | 789-0   |
-+------------------+---------+
+            +-------- Reproducer --------+
+            | Value            | 123-456 |
+            | Some other value | 789-0   |
+            +------------------+---------+
 
-TABLE;
+            TABLE;
 
         $this->assertSame($expected, $this->getOutputContent($output));
     }
@@ -1378,16 +1372,16 @@
 
         $expected =
             <<<TABLE
-+---------------+-------+----------+----------------+
-| Divine Comedy | A     | The Lord | And Then There |
-|               | Tale  | of the   | Were None      |
-|               | of    | Rings    |                |
-|               | Two   |          |                |
-|               | Citie |          |                |
-|               | s     |          |                |
-+---------------+-------+----------+----------------+
+                +---------------+-------+----------+----------------+
+                | Divine Comedy | A     | The Lord | And Then There |
+                |               | Tale  | of the   | Were None      |
+                |               | of    | Rings    |                |
+                |               | Two   |          |                |
+                |               | Citie |          |                |
+                |               | s     |          |                |
+                +---------------+-------+----------+----------------+
 
-TABLE;
+                TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1414,15 +1408,15 @@
 
         $expected =
             <<<TABLE
-+-------------+--------------------------------+
-| Publication | Very long header with a lot of |
-|             | information                    |
-+-------------+--------------------------------+
-| 1954        | The Lord of the Rings, by      |
-|             | J.R.R. Tolkien                 |
-+-------------+--------------------------------+
+                +-------------+--------------------------------+
+                | Publication | Very long header with a lot of |
+                |             | information                    |
+                +-------------+--------------------------------+
+                | 1954        | The Lord of the Rings, by      |
+                |             | J.R.R. Tolkien                 |
+                +-------------+--------------------------------+
 
-TABLE;
+                TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1437,12 +1431,12 @@
 
         $expected =
             <<<'TABLE'
-+-------+
-| 1234\ |
-| 6     |
-+-------+
+                +-------+
+                | 1234\ |
+                | 6     |
+                +-------+
 
-TABLE;
+                TABLE;
 
         $this->assertEquals($expected, $this->getOutputContent($output));
     }
@@ -1470,15 +1464,15 @@
 
         $expected =
             <<<TABLE
-┌───────────────┬───────────────┬─────────────────┐
-│ ISBN          │ Title         │ Author          │
-├───────────────┼───────────────┼─────────────────┤
-│ 99921-58-10-7 │ Divine Comedy │ Dante Alighieri │
-├───────────────┼───────────────┼─────────────────┤
-│ This value spans 3 columns.                     │
-└───────────────┴───────────────┴─────────────────┘
+                ┌───────────────┬───────────────┬─────────────────┐
+                │ ISBN          │ Title         │ Author          │
+                ├───────────────┼───────────────┼─────────────────┤
+                │ 99921-58-10-7 │ Divine Comedy │ Dante Alighieri │
+                ├───────────────┼───────────────┼─────────────────┤
+                │ This value spans 3 columns.                     │
+                └───────────────┴───────────────┴─────────────────┘
 
-TABLE;
+                TABLE;
 
         $this->assertSame($expected, $this->getOutputContent($output));
     }
@@ -1488,37 +1482,37 @@
         $headers = ['foo', 'bar', 'baz'];
         $rows = [['one', 'two', 'tree'], ['1', '2', '3']];
         $expected = <<<EOTXT
-+-----+------+---+
-| foo | one  | 1 |
-| bar | two  | 2 |
-| baz | tree | 3 |
-+-----+------+---+
+            +-----+------+---+
+            | foo | one  | 1 |
+            | bar | two  | 2 |
+            | baz | tree | 3 |
+            +-----+------+---+
 
-EOTXT;
+            EOTXT;
         yield [$headers, $rows, $expected];
 
         $headers = ['foo', 'bar', 'baz'];
         $rows = [['one', 'two'], ['1']];
         $expected = <<<EOTXT
-+-----+-----+---+
-| foo | one | 1 |
-| bar | two |   |
-| baz |     |   |
-+-----+-----+---+
+            +-----+-----+---+
+            | foo | one | 1 |
+            | bar | two |   |
+            | baz |     |   |
+            +-----+-----+---+
 
-EOTXT;
+            EOTXT;
         yield [$headers, $rows, $expected];
 
         $headers = ['foo', 'bar', 'baz'];
         $rows = [['one', 'two', 'tree'], new TableSeparator(), ['1', '2', '3']];
         $expected = <<<EOTXT
-+-----+------+---+
-| foo | one  | 1 |
-| bar | two  | 2 |
-| baz | tree | 3 |
-+-----+------+---+
+            +-----+------+---+
+            | foo | one  | 1 |
+            | bar | two  | 2 |
+            | baz | tree | 3 |
+            +-----+------+---+
 
-EOTXT;
+            EOTXT;
         yield [$headers, $rows, $expected];
     }
 
@@ -1575,29 +1569,29 @@
 
         $expected =
             <<<TABLE
-+-----------------+-----------------+-----------------+
-| Lorem ipsum dolor sit amet, consectetur adipi       |
-| scing elit, sed do eiusmod tempor                   |
-+-----------------+-----------------+-----------------+
-| Lorem ipsum dolor sit amet, consectetur             |
-| adipiscing elit, sed do eiusmod tempor              |
-+-----------------+-----------------+-----------------+
-| Lorem ipsum dolor sit amet, co    | hello world     |
-| nsectetur                         |                 |
-+-----------------+-----------------+-----------------+
-| hello world     | Lorem ipsum dolor sit amet, co    |
-|                 | nsectetur adipiscing elit         |
-+-----------------+-----------------+-----------------+
-| hello           | world           | Lorem ipsum     |
-|                 |                 | dolor sit amet, |
-|                 |                 | consectetur     |
-+-----------------+-----------------+-----------------+
-| Symfony         | Test            | Lorem ipsum dol |
-|                 |                 | or sit amet,    |
-|                 |                 | consectetur     |
-+-----------------+-----------------+-----------------+
+                +-----------------+-----------------+-----------------+
+                | Lorem ipsum dolor sit amet, consectetur adipiscing  |
+                | elit, sed do eiusmod tempor                         |
+                +-----------------+-----------------+-----------------+
+                | Lorem ipsum dolor sit amet, consectetur adipiscing  |
+                | elit, sed do eiusmod tempor                         |
+                +-----------------+-----------------+-----------------+
+                | Lorem ipsum dolor sit amet, conse | hello world     |
+                | ctetur                            |                 |
+                +-----------------+-----------------+-----------------+
+                | hello world     | Lorem ipsum dolor sit amet, conse |
+                |                 | ctetur adipiscing elit            |
+                +-----------------+-----------------+-----------------+
+                | hello           | world           | Lorem ipsum     |
+                |                 |                 | dolor sit amet, |
+                |                 |                 | consectetur     |
+                +-----------------+-----------------+-----------------+
+                | Symfony         | Test            | Lorem ipsum dol |
+                |                 |                 | or sit amet,    |
+                |                 |                 | consectetur     |
+                +-----------------+-----------------+-----------------+
 
-TABLE;
+                TABLE;
 
         $this->assertSame($expected, $this->getOutputContent($output));
     }
@@ -1611,55 +1605,52 @@
 
         yield 'With header for all' => [
             <<<EOTXT
-+------------------------------+
-|   ISBN: 99921-58-10-7        |
-|  Title: Divine Comedy        |
-| Author: Dante Alighieri      |
-|  Price: 9.95                 |
-|------------------------------|
-|   ISBN: 9971-5-0210-0        |
-|  Title: A Tale of Two Cities |
-| Author: Charles Dickens      |
-|  Price: 139.25               |
-+------------------------------+
+                +------------------------------+
+                |   ISBN: 99921-58-10-7        |
+                |  Title: Divine Comedy        |
+                | Author: Dante Alighieri      |
+                |  Price: 9.95                 |
+                |------------------------------|
+                |   ISBN: 9971-5-0210-0        |
+                |  Title: A Tale of Two Cities |
+                | Author: Charles Dickens      |
+                |  Price: 139.25               |
+                +------------------------------+
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author', 'Price'],
             $books,
         ];
 
         yield 'With header for none' => [
             <<<EOTXT
-+----------------------+
-| 99921-58-10-7        |
-| Divine Comedy        |
-| Dante Alighieri      |
-| 9.95                 |
-|----------------------|
-| 9971-5-0210-0        |
-| A Tale of Two Cities |
-| Charles Dickens      |
-| 139.25               |
-+----------------------+
+                +----------------------+
+                | 99921-58-10-7        |
+                | Divine Comedy        |
+                | Dante Alighieri      |
+                | 9.95                 |
+                |----------------------|
+                | 9971-5-0210-0        |
+                | A Tale of Two Cities |
+                | Charles Dickens      |
+                | 139.25               |
+                +----------------------+
 
-EOTXT
-            ,
+                EOTXT,
             [],
             $books,
         ];
 
         yield 'With multibyte characters in some headers (the "í" in "Títle") and cells (the "í" in "Dívíne")' => [
             <<<EOTXT
-+-------------------------+
-|   ISBN: 99921-58-10-7   |
-|  Títle: Dívíne Comedy   |
-| Author: Dante Alighieri |
-|  Price: 9.95            |
-+-------------------------+
+                +-------------------------+
+                |   ISBN: 99921-58-10-7   |
+                |  Títle: Dívíne Comedy   |
+                | Author: Dante Alighieri |
+                |  Price: 9.95            |
+                +-------------------------+
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Títle', 'Author', 'Price'],
             [
                 [
@@ -1673,38 +1664,36 @@
 
         yield 'With header for some' => [
             <<<EOTXT
-+------------------------------+
-|   ISBN: 99921-58-10-7        |
-|  Title: Divine Comedy        |
-| Author: Dante Alighieri      |
-|       : 9.95                 |
-|------------------------------|
-|   ISBN: 9971-5-0210-0        |
-|  Title: A Tale of Two Cities |
-| Author: Charles Dickens      |
-|       : 139.25               |
-+------------------------------+
+                +------------------------------+
+                |   ISBN: 99921-58-10-7        |
+                |  Title: Divine Comedy        |
+                | Author: Dante Alighieri      |
+                |       : 9.95                 |
+                |------------------------------|
+                |   ISBN: 9971-5-0210-0        |
+                |  Title: A Tale of Two Cities |
+                | Author: Charles Dickens      |
+                |       : 139.25               |
+                +------------------------------+
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author'],
             $books,
         ];
 
         yield 'With row for some headers' => [
             <<<EOTXT
-+----------+
-| foo: one |
-| bar: two |
-| baz:     |
-|----------|
-| foo: 1   |
-| bar:     |
-| baz:     |
-+----------+
+                +----------+
+                | foo: one |
+                | bar: two |
+                | baz:     |
+                |----------|
+                | foo: 1   |
+                | bar:     |
+                | baz:     |
+                +----------+
 
-EOTXT
-            ,
+                EOTXT,
             ['foo', 'bar', 'baz'],
             [
                 ['one', 'two'],
@@ -1714,18 +1703,17 @@
 
         yield 'With TableSeparator' => [
             <<<EOTXT
-+-----------+
-| foo: one  |
-| bar: two  |
-| baz: tree |
-|-----------|
-| foo: 1    |
-| bar: 2    |
-| baz: 3    |
-+-----------+
+                +-----------+
+                | foo: one  |
+                | bar: two  |
+                | baz: tree |
+                |-----------|
+                | foo: 1    |
+                | bar: 2    |
+                | baz: 3    |
+                +-----------+
 
-EOTXT
-            ,
+                EOTXT,
             ['foo', 'bar', 'baz'],
             [
                 ['one', 'two', 'tree'],
@@ -1736,21 +1724,20 @@
 
         yield 'With breaking line' => [
             <<<EOTXT
-+-------------------------+
-|   ISBN: 99921-58-10-7   |
-|  Title: Divine Comedy   |
-| Author: Dante Alighieri |
-|  Price: 9.95            |
-|-------------------------|
-|   ISBN: 9971-5-0210-0   |
-|  Title: A Tale          |
-|         of Two Cities   |
-| Author: Charles Dickens |
-|  Price: 139.25          |
-+-------------------------+
+                +-------------------------+
+                |   ISBN: 99921-58-10-7   |
+                |  Title: Divine Comedy   |
+                | Author: Dante Alighieri |
+                |  Price: 9.95            |
+                |-------------------------|
+                |   ISBN: 9971-5-0210-0   |
+                |  Title: A Tale          |
+                |         of Two Cities   |
+                | Author: Charles Dickens |
+                |  Price: 139.25          |
+                +-------------------------+
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author', 'Price'],
             [
                 ['99921-58-10-7', 'Divine Comedy', 'Dante Alighieri', '9.95'],
@@ -1760,18 +1747,17 @@
 
         yield 'With text tag' => [
             <<<EOTXT
-+------------------------------+
-|   ISBN: 99921-58-10-7        |
-|  Title: Divine Comedy        |
-| Author: Dante Alighieri      |
-|------------------------------|
-|   ISBN: 9971-5-0210-0        |
-|  Title: A Tale of Two Cities |
-| Author: Charles Dickens      |
-+------------------------------+
+                +------------------------------+
+                |   ISBN: 99921-58-10-7        |
+                |  Title: Divine Comedy        |
+                | Author: Dante Alighieri      |
+                |------------------------------|
+                |   ISBN: 9971-5-0210-0        |
+                |  Title: A Tale of Two Cities |
+                | Author: Charles Dickens      |
+                +------------------------------+
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author'],
             [
                 ['<info>99921-58-10-7</info>', '<error>Divine Comedy</error>', '<fg=blue;bg=white>Dante Alighieri</fg=blue;bg=white>'],
@@ -1781,20 +1767,19 @@
 
         yield 'With colspan' => [
             <<<EOTXT
-+---------------------------------------------------------------------------------------+
-|   ISBN: 99921-58-10-7                                                                 |
-|  Title: Divine Comedy                                                                 |
-| Author: Dante Alighieri                                                               |
-|---------------------------------------------------------------------------------------|
-| Cupiditate dicta atque porro, tempora exercitationem modi animi nulla nemo vel nihil! |
-|---------------------------------------------------------------------------------------|
-|   ISBN: 9971-5-0210-0                                                                 |
-|  Title: A Tale of Two Cities                                                          |
-| Author: Charles Dickens                                                               |
-+---------------------------------------------------------------------------------------+
+                +---------------------------------------------------------------------------------------+
+                |   ISBN: 99921-58-10-7                                                                 |
+                |  Title: Divine Comedy                                                                 |
+                | Author: Dante Alighieri                                                               |
+                |---------------------------------------------------------------------------------------|
+                | Cupiditate dicta atque porro, tempora exercitationem modi animi nulla nemo vel nihil! |
+                |---------------------------------------------------------------------------------------|
+                |   ISBN: 9971-5-0210-0                                                                 |
+                |  Title: A Tale of Two Cities                                                          |
+                | Author: Charles Dickens                                                               |
+                +---------------------------------------------------------------------------------------+
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author'],
             [
                 ['99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'],
@@ -1805,28 +1790,27 @@
 
         yield 'With colspans but no header' => [
             <<<EOTXT
-+--------------------------------------------------------------------------------+
-| Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor |
-|--------------------------------------------------------------------------------|
-| Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor |
-|--------------------------------------------------------------------------------|
-| Lorem ipsum dolor sit amet, consectetur                                        |
-| hello world                                                                    |
-|--------------------------------------------------------------------------------|
-| hello world                                                                    |
-| Lorem ipsum dolor sit amet, consectetur adipiscing elit                        |
-|--------------------------------------------------------------------------------|
-| hello                                                                          |
-| world                                                                          |
-| Lorem ipsum dolor sit amet, consectetur                                        |
-|--------------------------------------------------------------------------------|
-| Symfony                                                                        |
-| Test                                                                           |
-| Lorem ipsum dolor sit amet, consectetur                                        |
-+--------------------------------------------------------------------------------+
+                +--------------------------------------------------------------------------------+
+                | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor |
+                |--------------------------------------------------------------------------------|
+                | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor |
+                |--------------------------------------------------------------------------------|
+                | Lorem ipsum dolor sit amet, consectetur                                        |
+                | hello world                                                                    |
+                |--------------------------------------------------------------------------------|
+                | hello world                                                                    |
+                | Lorem ipsum dolor sit amet, consectetur adipiscing elit                        |
+                |--------------------------------------------------------------------------------|
+                | hello                                                                          |
+                | world                                                                          |
+                | Lorem ipsum dolor sit amet, consectetur                                        |
+                |--------------------------------------------------------------------------------|
+                | Symfony                                                                        |
+                | Test                                                                           |
+                | Lorem ipsum dolor sit amet, consectetur                                        |
+                +--------------------------------------------------------------------------------+
 
-EOTXT
-            ,
+                EOTXT,
             [],
             [
                 [new TableCell('Lorem ipsum dolor sit amet, <fg=white;bg=green>consectetur</> adipiscing elit, <fg=white;bg=red>sed</> do <fg=white;bg=red>eiusmod</> tempor', ['colspan' => 3])],
@@ -1845,20 +1829,19 @@
 
         yield 'Borderless style' => [
             <<<EOTXT
- ============================== 
-    ISBN: 99921-58-10-7         
-   Title: Divine Comedy         
-  Author: Dante Alighieri       
-   Price: 9.95                  
- ============================== 
-    ISBN: 9971-5-0210-0         
-   Title: A Tale of Two Cities  
-  Author: Charles Dickens       
-   Price: 139.25                
- ============================== 
+                 ============================== 
+                    ISBN: 99921-58-10-7         
+                   Title: Divine Comedy         
+                  Author: Dante Alighieri       
+                   Price: 9.95                  
+                 ============================== 
+                    ISBN: 9971-5-0210-0         
+                   Title: A Tale of Two Cities  
+                  Author: Charles Dickens       
+                   Price: 139.25                
+                 ============================== 
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author', 'Price'],
             $books,
             'borderless',
@@ -1866,18 +1849,17 @@
 
         yield 'Compact style' => [
             <<<EOTXT
-  ISBN: 99921-58-10-7        
- Title: Divine Comedy        
-Author: Dante Alighieri      
- Price: 9.95                 
-
-  ISBN: 9971-5-0210-0        
- Title: A Tale of Two Cities 
-Author: Charles Dickens      
- Price: 139.25               
+                  ISBN: 99921-58-10-7        
+                 Title: Divine Comedy        
+                Author: Dante Alighieri      
+                 Price: 9.95                 
+
+                  ISBN: 9971-5-0210-0        
+                 Title: A Tale of Two Cities 
+                Author: Charles Dickens      
+                 Price: 139.25               
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author', 'Price'],
             $books,
             'compact',
@@ -1885,20 +1867,19 @@
 
         yield 'symfony-style-guide style' => [
             <<<EOTXT
- ------------------------------ 
-    ISBN: 99921-58-10-7         
-   Title: Divine Comedy         
-  Author: Dante Alighieri       
-   Price: 9.95                  
- ------------------------------ 
-    ISBN: 9971-5-0210-0         
-   Title: A Tale of Two Cities  
-  Author: Charles Dickens       
-   Price: 139.25                
- ------------------------------ 
+                 ------------------------------ 
+                    ISBN: 99921-58-10-7         
+                   Title: Divine Comedy         
+                  Author: Dante Alighieri       
+                   Price: 9.95                  
+                 ------------------------------ 
+                    ISBN: 9971-5-0210-0         
+                   Title: A Tale of Two Cities  
+                  Author: Charles Dickens       
+                   Price: 139.25                
+                 ------------------------------ 
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author', 'Price'],
             $books,
             'symfony-style-guide',
@@ -1906,20 +1887,19 @@
 
         yield 'box style' => [
             <<<EOTXT
-┌──────────────────────────────┐
-│   ISBN: 99921-58-10-7        │
-│  Title: Divine Comedy        │
-│ Author: Dante Alighieri      │
-│  Price: 9.95                 │
-│──────────────────────────────│
-│   ISBN: 9971-5-0210-0        │
-│  Title: A Tale of Two Cities │
-│ Author: Charles Dickens      │
-│  Price: 139.25               │
-└──────────────────────────────┘
+                ┌──────────────────────────────┐
+                │   ISBN: 99921-58-10-7        │
+                │  Title: Divine Comedy        │
+                │ Author: Dante Alighieri      │
+                │  Price: 9.95                 │
+                │──────────────────────────────│
+                │   ISBN: 9971-5-0210-0        │
+                │  Title: A Tale of Two Cities │
+                │ Author: Charles Dickens      │
+                │  Price: 139.25               │
+                └──────────────────────────────┘
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author', 'Price'],
             $books,
             'box',
@@ -1927,20 +1907,19 @@
 
         yield 'box-double style' => [
             <<<EOTXT
-╔══════════════════════════════╗
-║   ISBN: 99921-58-10-7        ║
-║  Title: Divine Comedy        ║
-║ Author: Dante Alighieri      ║
-║  Price: 9.95                 ║
-║──────────────────────────────║
-║   ISBN: 9971-5-0210-0        ║
-║  Title: A Tale of Two Cities ║
-║ Author: Charles Dickens      ║
-║  Price: 139.25               ║
-╚══════════════════════════════╝
+                ╔══════════════════════════════╗
+                ║   ISBN: 99921-58-10-7        ║
+                ║  Title: Divine Comedy        ║
+                ║ Author: Dante Alighieri      ║
+                ║  Price: 9.95                 ║
+                ║──────────────────────────────║
+                ║   ISBN: 9971-5-0210-0        ║
+                ║  Title: A Tale of Two Cities ║
+                ║ Author: Charles Dickens      ║
+                ║  Price: 139.25               ║
+                ╚══════════════════════════════╝
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author', 'Price'],
             $books,
             'box-double',
@@ -1948,20 +1927,19 @@
 
         yield 'With titles' => [
             <<<EOTXT
-+----------- Books ------------+
-|   ISBN: 99921-58-10-7        |
-|  Title: Divine Comedy        |
-| Author: Dante Alighieri      |
-|  Price: 9.95                 |
-|------------------------------|
-|   ISBN: 9971-5-0210-0        |
-|  Title: A Tale of Two Cities |
-| Author: Charles Dickens      |
-|  Price: 139.25               |
-+---------- Page 1/2 ----------+
+                +----------- Books ------------+
+                |   ISBN: 99921-58-10-7        |
+                |  Title: Divine Comedy        |
+                | Author: Dante Alighieri      |
+                |  Price: 9.95                 |
+                |------------------------------|
+                |   ISBN: 9971-5-0210-0        |
+                |  Title: A Tale of Two Cities |
+                | Author: Charles Dickens      |
+                |  Price: 139.25               |
+                +---------- Page 1/2 ----------+
 
-EOTXT
-            ,
+                EOTXT,
             ['ISBN', 'Title', 'Author', 'Price'],
             $books,
             'default',
@@ -2007,15 +1985,15 @@
 
         $expected =
             <<<TABLE
-+----------------------+
-| \033]8;;Lorem\033\\Lorem ipsum dolor\033]8;;\033\\    |
-| \033]8;;Lorem\033\\sit amet,\033]8;;\033\\            |
-| \033]8;;Lorem\033\\consectetur\033]8;;\033\\          |
-| \033]8;;Lorem\033\\adipiscing elit, sed\033]8;;\033\\ |
-| \033]8;;Lorem\033\\do eiusmod tempor\033]8;;\033\\    |
-+----------------------+
+                +----------------------+
+                | \033]8;;Lorem\033\\Lorem ipsum dolor\033]8;;\033\\    |
+                | \033]8;;Lorem\033\\sit amet,\033]8;;\033\\            |
+                | \033]8;;Lorem\033\\consectetur\033]8;;\033\\          |
+                | \033]8;;Lorem\033\\adipiscing elit, sed\033]8;;\033\\ |
+                | \033]8;;Lorem\033\\do eiusmod tempor\033]8;;\033\\    |
+                +----------------------+
 
-TABLE;
+                TABLE;
 
         $this->assertSame($expected, $this->getOutputContent($output));
     }
@@ -2038,13 +2016,12 @@
         $table->render();
 
         $this->assertSame(<<<TABLE
-┌──── Title ┬───┐
-│ Hello │ 1 │ 3 │
-│ World │ 2 │ 4 │
-└───────┴───┴───┘
+            ┌──── Title ┬───┐
+            │ Hello │ 1 │ 3 │
+            │ World │ 2 │ 4 │
+            └───────┴───┴───┘
 
-TABLE
-            ,
+            TABLE,
             $this->getOutputContent($output)
         );
     }
@@ -2067,14 +2044,42 @@
         $table->render();
 
         $this->assertSame(<<<TABLE
-┌──── Title ────┐
-│ Hello │ World │
-├───────┼───────┤
-│ 1     │ 2     │
-│ 3     │ 4     │
-└───────┴───────┘
+            ┌──── Title ────┐
+            │ Hello │ World │
+            ├───────┼───────┤
+            │ 1     │ 2     │
+            │ 3     │ 4     │
+            └───────┴───────┘
 
-TABLE,
+            TABLE,
+            $this->getOutputContent($output)
+        );
+    }
+
+    public function testGithubIssue60038WidthOfCellWithEmoji()
+    {
+        $table = (new Table($output = $this->getOutputStream()))
+            ->setHeaderTitle('Test Title')
+            ->setHeaders(['Title', 'Author'])
+            ->setRows([
+                ['🎭 💫 ☯ Divine Comedy', 'Dante Alighieri'],
+                // the snowflake in text style (e2 9d 84 ef b8 8e) has a variant selector
+                ['❄︎❄︎❄︎ snowflake in text style ❄︎❄︎❄︎', ''],
+                ['And a very long line to show difference in previous lines', ''],
+            ])
+        ;
+        $table->render();
+
+        $this->assertSame(<<<TABLE
+            +-------------------------------- Test Title ---------------+-----------------+
+            | Title                                                     | Author          |
+            +-----------------------------------------------------------+-----------------+
+            | 🎭 💫 ☯ Divine Comedy                                     | Dante Alighieri |
+            | ❄︎❄︎❄︎ snowflake in text style ❄︎❄︎❄︎                           |                 |
+            | And a very long line to show difference in previous lines |                 |
+            +-----------------------------------------------------------+-----------------+
+
+            TABLE,
             $this->getOutputContent($output)
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Input/InputArgumentTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Input/InputArgumentTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Input/InputArgumentTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Input/InputArgumentTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -121,22 +121,22 @@
         $this->assertTrue($argument->hasCompletion());
         $suggestions = new CompletionSuggestions();
         $argument->complete(new CompletionInput(), $suggestions);
-        $this->assertSame($values, array_map(fn (Suggestion $suggestion) => $suggestion->getValue(), $suggestions->getValueSuggestions()));
+        $this->assertSame($values, array_map(static fn (Suggestion $suggestion) => $suggestion->getValue(), $suggestions->getValueSuggestions()));
     }
 
     public function testCompleteClosure()
     {
         $values = ['foo', 'bar'];
-        $argument = new InputArgument('foo', null, '', null, fn (CompletionInput $input): array => $values);
+        $argument = new InputArgument('foo', null, '', null, static fn (CompletionInput $input): array => $values);
         $this->assertTrue($argument->hasCompletion());
         $suggestions = new CompletionSuggestions();
         $argument->complete(new CompletionInput(), $suggestions);
-        $this->assertSame($values, array_map(fn (Suggestion $suggestion) => $suggestion->getValue(), $suggestions->getValueSuggestions()));
+        $this->assertSame($values, array_map(static fn (Suggestion $suggestion) => $suggestion->getValue(), $suggestions->getValueSuggestions()));
     }
 
     public function testCompleteClosureReturnIncorrectType()
     {
-        $argument = new InputArgument('foo', InputArgument::OPTIONAL, '', null, fn (CompletionInput $input) => 'invalid');
+        $argument = new InputArgument('foo', InputArgument::OPTIONAL, '', null, static fn (CompletionInput $input) => 'invalid');
 
         $this->expectException(LogicException::class);
         $this->expectExceptionMessage('Closure for argument "foo" must return an array. Got "string".');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Input/InputDefinitionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Input/InputDefinitionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Input/InputDefinitionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Input/InputDefinitionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -113,7 +113,7 @@
     {
         $this->initializeArguments();
         $this->expectException(\LogicException::class);
-        $this->expectExceptionMessage(sprintf('Cannot add a required argument "%s" after an optional one "%s".', $this->foo2->getName(), $this->foo->getName()));
+        $this->expectExceptionMessage(\sprintf('Cannot add a required argument "%s" after an optional one "%s".', $this->foo2->getName(), $this->foo->getName()));
 
         $definition = new InputDefinition();
         $definition->addArgument($this->foo);
@@ -179,7 +179,7 @@
             new InputArgument('foo1', InputArgument::OPTIONAL),
             new InputArgument('foo2', InputArgument::OPTIONAL, '', 'default'),
             new InputArgument('foo3', InputArgument::OPTIONAL | InputArgument::IS_ARRAY),
-        //  new InputArgument('foo4', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, '', [1, 2]),
+            // new InputArgument('foo4', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, '', [1, 2]),
         ]);
         $this->assertEquals(['foo1' => null, 'foo2' => 'default', 'foo3' => []], $definition->getArgumentDefaults(), '->getArgumentDefaults() return the default values for each argument');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Input/InputOptionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Input/InputOptionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Input/InputOptionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Input/InputOptionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -234,22 +234,22 @@
         $this->assertTrue($option->hasCompletion());
         $suggestions = new CompletionSuggestions();
         $option->complete(new CompletionInput(), $suggestions);
-        $this->assertSame($values, array_map(fn (Suggestion $suggestion) => $suggestion->getValue(), $suggestions->getValueSuggestions()));
+        $this->assertSame($values, array_map(static fn (Suggestion $suggestion) => $suggestion->getValue(), $suggestions->getValueSuggestions()));
     }
 
     public function testCompleteClosure()
     {
         $values = ['foo', 'bar'];
-        $option = new InputOption('foo', null, InputOption::VALUE_OPTIONAL, '', null, fn (CompletionInput $input): array => $values);
+        $option = new InputOption('foo', null, InputOption::VALUE_OPTIONAL, '', null, static fn (CompletionInput $input): array => $values);
         $this->assertTrue($option->hasCompletion());
         $suggestions = new CompletionSuggestions();
         $option->complete(new CompletionInput(), $suggestions);
-        $this->assertSame($values, array_map(fn (Suggestion $suggestion) => $suggestion->getValue(), $suggestions->getValueSuggestions()));
+        $this->assertSame($values, array_map(static fn (Suggestion $suggestion) => $suggestion->getValue(), $suggestions->getValueSuggestions()));
     }
 
     public function testCompleteClosureReturnIncorrectType()
     {
-        $option = new InputOption('foo', null, InputOption::VALUE_OPTIONAL, '', null, fn (CompletionInput $input) => 'invalid');
+        $option = new InputOption('foo', null, InputOption::VALUE_OPTIONAL, '', null, static fn (CompletionInput $input) => 'invalid');
 
         $this->expectException(LogicException::class);
         $this->expectExceptionMessage('Closure for option "foo" must return an array. Got "string".');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Logger/ConsoleLoggerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Logger/ConsoleLoggerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Logger/ConsoleLoggerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Logger/ConsoleLoggerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -151,14 +151,7 @@
 
     public function testObjectCastToString()
     {
-        if (method_exists($this, 'createPartialMock')) {
-            $dummy = $this->createPartialMock(DummyTest::class, ['__toString']);
-        } else {
-            $dummy = $this->createPartialMock(DummyTest::class, ['__toString']);
-        }
-        $dummy->method('__toString')->willReturn('DUMMY');
-
-        $this->getLogger()->warning($dummy);
+        $this->getLogger()->warning(new DummyTest());
 
         $expected = ['warning DUMMY'];
         $this->assertEquals($expected, $this->getLogs());
@@ -201,5 +194,6 @@
 {
     public function __toString(): string
     {
+        return 'DUMMY';
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Messenger/RunCommandMessageHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Messenger/RunCommandMessageHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Messenger/RunCommandMessageHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Messenger/RunCommandMessageHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,10 @@
 use Symfony\Component\Console\Messenger\RunCommandMessage;
 use Symfony\Component\Console\Messenger\RunCommandMessageHandler;
 use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Messenger\Exception\RecoverableExceptionInterface;
+use Symfony\Component\Messenger\Exception\RecoverableMessageHandlingException;
+use Symfony\Component\Messenger\Exception\UnrecoverableExceptionInterface;
+use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException;
 
 /**
  * @author Kevin Bond <kevinbond@gmail.com>
@@ -81,17 +85,51 @@
         $this->fail('Exception not thrown.');
     }
 
+    public function testExecutesCommandThatThrownUnrecoverableException()
+    {
+        $handler = new RunCommandMessageHandler($this->createApplicationWithCommand());
+
+        try {
+            $handler(new RunCommandMessage('test:command --throw-unrecoverable'));
+        } catch (UnrecoverableExceptionInterface $e) {
+            $this->assertSame('Unrecoverable exception message', $e->getMessage());
+            $this->assertNull($e->getPrevious());
+
+            return;
+        }
+
+        $this->fail('Exception not thrown.');
+    }
+
+    public function testExecutesCommandThatThrownRecoverableException()
+    {
+        $handler = new RunCommandMessageHandler($this->createApplicationWithCommand());
+
+        try {
+            $handler(new RunCommandMessage('test:command --throw-recoverable'));
+        } catch (RecoverableExceptionInterface $e) {
+            $this->assertSame('Recoverable exception message', $e->getMessage());
+            $this->assertNull($e->getPrevious());
+
+            return;
+        }
+
+        $this->fail('Exception not thrown.');
+    }
+
     private function createApplicationWithCommand(): Application
     {
         $application = new Application();
         $application->setAutoExit(false);
         $application->addCommands([
-            new class() extends Command {
+            new class extends Command {
                 public function configure(): void
                 {
                     $this
                         ->setName('test:command')
                         ->addOption('throw')
+                        ->addOption('throw-unrecoverable')
+                        ->addOption('throw-recoverable')
                         ->addOption('exit', null, InputOption::VALUE_REQUIRED, 0)
                     ;
                 }
@@ -100,6 +138,14 @@
                 {
                     $output->write('some message');
 
+                    if ($input->getOption('throw-unrecoverable')) {
+                        throw new UnrecoverableMessageHandlingException('Unrecoverable exception message');
+                    }
+
+                    if ($input->getOption('throw-recoverable')) {
+                        throw new RecoverableMessageHandlingException('Recoverable exception message');
+                    }
+
                     if ($input->getOption('throw')) {
                         throw new \RuntimeException('exception message');
                     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Output/ConsoleSectionOutputTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Output/ConsoleSectionOutputTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Output/ConsoleSectionOutputTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Output/ConsoleSectionOutputTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
         $output->clear();
 
         rewind($output->getStream());
-        $this->assertEquals('Foo'.\PHP_EOL.'Bar'.\PHP_EOL.sprintf("\x1b[%dA", 2)."\x1b[0J", stream_get_contents($output->getStream()));
+        $this->assertEquals('Foo'.\PHP_EOL.'Bar'.\PHP_EOL.\sprintf("\x1b[%dA", 2)."\x1b[0J", stream_get_contents($output->getStream()));
     }
 
     public function testClearNumberOfLines()
@@ -56,7 +56,7 @@
         $output->clear(2);
 
         rewind($output->getStream());
-        $this->assertEquals("Foo\nBar\nBaz\nFooBar".\PHP_EOL.sprintf("\x1b[%dA", 2)."\x1b[0J", stream_get_contents($output->getStream()));
+        $this->assertEquals("Foo\nBar\nBaz\nFooBar".\PHP_EOL.\sprintf("\x1b[%dA", 2)."\x1b[0J", stream_get_contents($output->getStream()));
     }
 
     public function testClearNumberOfLinesWithMultipleSections()
@@ -197,7 +197,21 @@
         $output->overwrite('Bar');
 
         rewind($output->getStream());
-        $this->assertEquals('Foo'.\PHP_EOL.'Bar'.\PHP_EOL.'Baz'.\PHP_EOL.sprintf("\x1b[%dA", 3)."\x1b[0J".'Bar'.\PHP_EOL, stream_get_contents($output->getStream()));
+        $this->assertEquals('Foo'.\PHP_EOL.'Bar'.\PHP_EOL.'Baz'.\PHP_EOL.\sprintf("\x1b[%dA", 3)."\x1b[0J".'Bar'.\PHP_EOL, stream_get_contents($output->getStream()));
+    }
+
+    public function testOverwriteWithMaxHeightOverflow()
+    {
+        $sections = [];
+        $output = new ConsoleSectionOutput($this->stream, $sections, OutputInterface::VERBOSITY_NORMAL, true, new OutputFormatter());
+        $output->setMaxHeight(2);
+
+        $output->writeln(['One', 'Two']);
+        // overwrite with more lines than the max height: only the last lines stay visible
+        $output->overwrite('A'.\PHP_EOL.'B'.\PHP_EOL.'C');
+
+        rewind($output->getStream());
+        $this->assertEquals('One'.\PHP_EOL.'Two'.\PHP_EOL."\x1b[2A\x1b[0J".'B'.\PHP_EOL.'C'.\PHP_EOL, stream_get_contents($output->getStream()));
     }
 
     public function testAddingMultipleSections()
@@ -223,7 +237,7 @@
         $output2->overwrite('Foobar');
 
         rewind($output->getStream());
-        $this->assertEquals('Foo'.\PHP_EOL.'Bar'.\PHP_EOL."\x1b[2A\x1b[0JBar".\PHP_EOL."\x1b[1A\x1b[0JBaz".\PHP_EOL.'Bar'.\PHP_EOL."\x1b[1A\x1b[0JFoobar".\PHP_EOL, stream_get_contents($output->getStream()));
+        $this->assertEquals('Foo'.\PHP_EOL.'Bar'.\PHP_EOL."\x1b[2A\x1b[0JBaz".\PHP_EOL.'Bar'.\PHP_EOL."\x1b[1A\x1b[0JFoobar".\PHP_EOL, stream_get_contents($output->getStream()));
     }
 
     public function testMultipleSectionsOutputWithoutNewline()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Output/StreamOutputTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Output/StreamOutputTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Output/StreamOutputTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Output/StreamOutputTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Console\Output\Output;
 use Symfony\Component\Console\Output\StreamOutput;
+use Symfony\Component\Process\Process;
 
 class StreamOutputTest extends TestCase
 {
@@ -65,4 +66,12 @@
         rewind($output->getStream());
         $this->assertEquals('', stream_get_contents($output->getStream()));
     }
+
+    public function testRawOutputPreservesNewlinesInContent()
+    {
+        $process = new Process(['php', __DIR__.'/../Fixtures/binary_output.php']);
+        $process->run();
+
+        $this->assertSame("HELLO\nWORLD", $process->getOutput(), 'Raw output must not convert LF in binary content');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Question/ConfirmationQuestionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Question/ConfirmationQuestionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Question/ConfirmationQuestionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Question/ConfirmationQuestionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
         foreach ($answers as $answer) {
             $normalizer = $sut->getNormalizer();
             $actual = $normalizer($answer);
-            $this->assertEquals($expected, $actual, sprintf($message, $answer));
+            $this->assertEquals($expected, $actual, \sprintf($message, $answer));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Question/QuestionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Question/QuestionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Question/QuestionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Question/QuestionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
     public function testSetHiddenWithAutocompleterCallback()
     {
         $this->question->setAutocompleterCallback(
-            fn (string $input): array => []
+            static fn (string $input): array => []
         );
 
         $this->expectException(\LogicException::class);
@@ -76,7 +76,7 @@
     public function testSetHiddenWithNoAutocompleterCallback()
     {
         $this->question->setAutocompleterCallback(
-            fn (string $input): array => []
+            static fn (string $input): array => []
         );
         $this->question->setAutocompleterCallback(null);
 
@@ -187,7 +187,7 @@
 
     public function testGetSetAutocompleterCallback()
     {
-        $callback = fn (string $input): array => [];
+        $callback = static fn (string $input): array => [];
 
         $this->question->setAutocompleterCallback($callback);
         self::assertSame($callback, $this->question->getAutocompleterCallback());
@@ -208,7 +208,7 @@
         );
 
         $this->question->setAutocompleterCallback(
-            fn (string $input): array => []
+            static fn (string $input): array => []
         );
     }
 
@@ -220,7 +220,7 @@
         $exception = null;
         try {
             $this->question->setAutocompleterCallback(
-                fn (string $input): array => []
+                static fn (string $input): array => []
             );
         } catch (\Exception $exception) {
             // Do nothing
@@ -232,7 +232,7 @@
     public static function providerGetSetValidator()
     {
         return [
-            [fn ($input) => $input],
+            [static fn ($input) => $input],
             [null],
         ];
     }
@@ -288,7 +288,7 @@
 
     public function testGetSetNormalizer()
     {
-        $normalizer = fn ($input) => $input;
+        $normalizer = static fn ($input) => $input;
         $this->question->setNormalizer($normalizer);
         self::assertSame($normalizer, $this->question->getNormalizer());
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/SignalRegistry/SignalMapTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/SignalRegistry/SignalMapTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/SignalRegistry/SignalMapTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/SignalRegistry/SignalMapTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,15 +18,13 @@
 {
     /**
      * @requires extension pcntl
-     *
-     * @testWith [2, "SIGINT"]
-     *           [9, "SIGKILL"]
-     *           [15, "SIGTERM"]
-     *           [31, "SIGSYS"]
      */
-    public function testSignalExists(int $signal, string $expected)
+    public function testSignalExists()
     {
-        $this->assertSame($expected, SignalMap::getSignalName($signal));
+        $this->assertSame('SIGINT', SignalMap::getSignalName(\SIGINT));
+        $this->assertSame('SIGKILL', SignalMap::getSignalName(\SIGKILL));
+        $this->assertSame('SIGTERM', SignalMap::getSignalName(\SIGTERM));
+        $this->assertSame('SIGSYS', SignalMap::getSignalName(\SIGSYS));
     }
 
     public function testSignalDoesNotExist()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/SignalRegistry/SignalRegistryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/SignalRegistry/SignalRegistryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/SignalRegistry/SignalRegistryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/SignalRegistry/SignalRegistryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
         $signalRegistry = new SignalRegistry();
 
         $isHandled = false;
-        $signalRegistry->register(\SIGUSR1, function () use (&$isHandled) {
+        $signalRegistry->register(\SIGUSR1, static function () use (&$isHandled) {
             $isHandled = true;
         });
 
@@ -48,12 +48,12 @@
         $signalRegistry = new SignalRegistry();
 
         $isHandled1 = false;
-        $signalRegistry->register(\SIGUSR1, function () use (&$isHandled1) {
+        $signalRegistry->register(\SIGUSR1, static function () use (&$isHandled1) {
             $isHandled1 = true;
         });
 
         $isHandled2 = false;
-        $signalRegistry->register(\SIGUSR1, function () use (&$isHandled2) {
+        $signalRegistry->register(\SIGUSR1, static function () use (&$isHandled2) {
             $isHandled2 = true;
         });
 
@@ -70,7 +70,7 @@
         $isHandled1 = false;
         $isHandled2 = false;
 
-        $signalRegistry->register(\SIGUSR1, function () use (&$isHandled1) {
+        $signalRegistry->register(\SIGUSR1, static function () use (&$isHandled1) {
             $isHandled1 = true;
         });
 
@@ -79,7 +79,7 @@
         $this->assertTrue($isHandled1);
         $this->assertFalse($isHandled2);
 
-        $signalRegistry->register(\SIGUSR2, function () use (&$isHandled2) {
+        $signalRegistry->register(\SIGUSR2, static function () use (&$isHandled2) {
             $isHandled2 = true;
         });
 
@@ -93,12 +93,12 @@
         $signalRegistry = new SignalRegistry();
 
         $isHandled1 = false;
-        pcntl_signal(\SIGUSR1, function () use (&$isHandled1) {
+        pcntl_signal(\SIGUSR1, static function () use (&$isHandled1) {
             $isHandled1 = true;
         });
 
         $isHandled2 = false;
-        $signalRegistry->register(\SIGUSR1, function () use (&$isHandled2) {
+        $signalRegistry->register(\SIGUSR1, static function () use (&$isHandled2) {
             $isHandled2 = true;
         });
 
@@ -113,14 +113,14 @@
         $signalRegistry1 = new SignalRegistry();
 
         $isHandled1 = false;
-        $signalRegistry1->register(\SIGUSR1, function () use (&$isHandled1) {
+        $signalRegistry1->register(\SIGUSR1, static function () use (&$isHandled1) {
             $isHandled1 = true;
         });
 
         $signalRegistry2 = new SignalRegistry();
 
         $isHandled2 = false;
-        $signalRegistry2->register(\SIGUSR1, function () use (&$isHandled2) {
+        $signalRegistry2->register(\SIGUSR1, static function () use (&$isHandled2) {
             $isHandled2 = true;
         });
 
@@ -129,4 +129,137 @@
         $this->assertTrue($isHandled1);
         $this->assertTrue($isHandled2);
     }
+
+    public function testPushPopIsolatesHandlers()
+    {
+        $registry = new SignalRegistry();
+
+        $signal = \SIGUSR1;
+
+        $handler1 = static function () {};
+        $handler2 = static function () {};
+
+        $registry->pushCurrentHandlers();
+        $registry->register($signal, $handler1);
+
+        $this->assertCount(1, $this->getHandlersForSignal($registry, $signal));
+
+        $registry->pushCurrentHandlers();
+        $registry->register($signal, $handler2);
+
+        $this->assertCount(1, $this->getHandlersForSignal($registry, $signal));
+        $this->assertSame([$handler2], $this->getHandlersForSignal($registry, $signal));
+
+        $registry->popPreviousHandlers();
+
+        $this->assertCount(1, $this->getHandlersForSignal($registry, $signal));
+        $this->assertSame([$handler1], $this->getHandlersForSignal($registry, $signal));
+
+        $registry->popPreviousHandlers();
+
+        $this->assertCount(0, $this->getHandlersForSignal($registry, $signal));
+    }
+
+    public function testPushCurrentHandlersRestoresOriginalHandler()
+    {
+        $registry = new SignalRegistry();
+
+        $previousHandlerCalled = false;
+        pcntl_signal(\SIGUSR1, static function () use (&$previousHandlerCalled) {
+            $previousHandlerCalled = true;
+        });
+
+        $registeredHandlerCalled = false;
+        $registry->register(\SIGUSR1, static function () use (&$registeredHandlerCalled) {
+            $registeredHandlerCalled = true;
+        });
+
+        $registry->pushCurrentHandlers();
+
+        posix_kill(posix_getpid(), \SIGUSR1);
+
+        $this->assertTrue($previousHandlerCalled);
+        $this->assertFalse($registeredHandlerCalled);
+    }
+
+    public function testPopPreviousHandlersRestoresPreviousOsHandler()
+    {
+        $registry = new SignalRegistry();
+
+        $outerHandlerCalled = false;
+        $registry->register(\SIGUSR1, static function () use (&$outerHandlerCalled) {
+            $outerHandlerCalled = true;
+        });
+
+        $registry->pushCurrentHandlers();
+
+        $innerHandlerCalled = false;
+        $registry->register(\SIGUSR2, static function () use (&$innerHandlerCalled) {
+            $innerHandlerCalled = true;
+        });
+
+        $registry->popPreviousHandlers();
+
+        posix_kill(posix_getpid(), \SIGUSR1);
+
+        $this->assertTrue($outerHandlerCalled);
+        $this->assertFalse($innerHandlerCalled);
+    }
+
+    public function testPopPreviousHandlersRestoresPreviousOsHandlerForSameSignal()
+    {
+        $registry = new SignalRegistry();
+
+        $outerHandlerCalled = false;
+        $registry->register(\SIGUSR1, static function () use (&$outerHandlerCalled) {
+            $outerHandlerCalled = true;
+        });
+
+        $registry->pushCurrentHandlers();
+
+        $innerHandlerCalled = false;
+        $registry->register(\SIGUSR1, static function () use (&$innerHandlerCalled) {
+            $innerHandlerCalled = true;
+        });
+
+        $registry->popPreviousHandlers();
+
+        posix_kill(posix_getpid(), \SIGUSR1);
+
+        $this->assertTrue($outerHandlerCalled);
+        $this->assertFalse($innerHandlerCalled);
+    }
+
+    public function testRestoreOriginalOnEmptyAfterPop()
+    {
+        if (!\extension_loaded('pcntl')) {
+            $this->markTestSkipped('PCNTL extension required');
+        }
+
+        $registry = new SignalRegistry();
+
+        $signal = \SIGUSR2;
+
+        $original = pcntl_signal_get_handler($signal);
+
+        $handler = static function () {};
+
+        $registry->pushCurrentHandlers();
+        $registry->register($signal, $handler);
+
+        $this->assertNotEquals($original, pcntl_signal_get_handler($signal));
+
+        $registry->popPreviousHandlers();
+
+        $this->assertEquals($original, pcntl_signal_get_handler($signal));
+    }
+
+    private function getHandlersForSignal(SignalRegistry $registry, int $signal): array
+    {
+        $ref = new \ReflectionClass($registry);
+        $prop = $ref->getProperty('signalHandlers');
+        $handlers = $prop->getValue($registry);
+
+        return $handlers[$signal] ?? [];
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Style/SymfonyStyleTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Style/SymfonyStyleTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Style/SymfonyStyleTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Style/SymfonyStyleTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,9 +96,25 @@
         $this->assertStringEqualsFile($outputFilepath, $this->tester->getDisplay(true));
     }
 
+    public function testBlockWithWindowsLineEndings()
+    {
+        $code = static function (InputInterface $input, OutputInterface $output) {
+            $io = new SymfonyStyle($input, $output);
+            $io->block("First line.\r\nSecond line.", 'INFO', 'fg=white;bg=blue', ' ', true);
+        };
+
+        $this->command->setCode($code);
+        $this->tester->execute([], ['interactive' => false, 'decorated' => false]);
+
+        $display = $this->tester->getDisplay(true);
+        $this->assertStringNotContainsString("\r", $display);
+        $this->assertStringContainsString('First line.', $display);
+        $this->assertStringContainsString('Second line.', $display);
+    }
+
     public function testGetErrorStyle()
     {
-        $input = $this->createMock(InputInterface::class);
+        $input = $this->createStub(InputInterface::class);
 
         $errorOutput = $this->createMock(OutputInterface::class);
         $errorOutput
@@ -123,7 +139,7 @@
 
     public function testCreateTableWithConsoleOutput()
     {
-        $input = $this->createMock(InputInterface::class);
+        $input = $this->createStub(InputInterface::class);
         $output = $this->createMock(ConsoleOutputInterface::class);
         $output
             ->method('getFormatter')
@@ -131,7 +147,7 @@
         $output
             ->expects($this->once())
             ->method('section')
-            ->willReturn($this->createMock(ConsoleSectionOutput::class));
+            ->willReturn($this->createStub(ConsoleSectionOutput::class));
 
         $style = new SymfonyStyle($input, $output);
 
@@ -140,8 +156,8 @@
 
     public function testCreateTableWithoutConsoleOutput()
     {
-        $input = $this->createMock(InputInterface::class);
-        $output = $this->createMock(OutputInterface::class);
+        $input = $this->createStub(InputInterface::class);
+        $output = $this->createStub(OutputInterface::class);
         $output
             ->method('getFormatter')
             ->willReturn(new OutputFormatter());
@@ -156,12 +172,12 @@
 
     public function testGetErrorStyleUsesTheCurrentOutputIfNoErrorOutputIsAvailable()
     {
-        $output = $this->createMock(OutputInterface::class);
+        $output = $this->createStub(OutputInterface::class);
         $output
             ->method('getFormatter')
             ->willReturn(new OutputFormatter());
 
-        $style = new SymfonyStyle($this->createMock(InputInterface::class), $output);
+        $style = new SymfonyStyle($this->createStub(InputInterface::class), $output);
 
         $this->assertInstanceOf(SymfonyStyle::class, $style->getErrorStyle());
     }
@@ -186,7 +202,7 @@
         $inputStream = fopen('php://memory', 'r+');
         fwrite($inputStream, $answer.\PHP_EOL);
         rewind($inputStream);
-        $input = $this->createMock(Input::class);
+        $input = $this->createStub(Input::class);
         $sections = [];
         $output = new ConsoleSectionOutput(fopen('php://memory', 'r+', false), $sections, StreamOutput::VERBOSITY_NORMAL, true, new OutputFormatter());
         $input
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Tester/ApplicationTesterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Tester/ApplicationTesterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Tester/ApplicationTesterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Tester/ApplicationTesterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
         $this->application->setAutoExit(false);
         $this->application->register('foo')
             ->addArgument('foo')
-            ->setCode(function ($input, $output) {
+            ->setCode(static function ($input, $output) {
                 $output->writeln('foo');
             })
         ;
@@ -65,7 +65,7 @@
     {
         $application = new Application();
         $application->setAutoExit(false);
-        $application->register('foo')->setCode(function ($input, $output) {
+        $application->register('foo')->setCode(static function ($input, $output) {
             $helper = new QuestionHelper();
             $helper->ask($input, $output, new Question('Q1'));
             $helper->ask($input, $output, new Question('Q2'));
@@ -85,13 +85,55 @@
         $this->tester->assertCommandIsSuccessful('->getStatusCode() returns the status code');
     }
 
+    /**
+     * @dataProvider provideShellVerbositySources
+     */
+    public function testShellVerbosityDoesNotOverrideInteractiveAndVerbosity(callable $setShellVerbosity, callable $cleanUp)
+    {
+        $setShellVerbosity();
+
+        try {
+            $application = new Application();
+            $application->setAutoExit(false);
+            $application->register('foo')
+                ->setCode(static function ($input, $output) {
+                    $output->writeln('foo');
+                })
+            ;
+
+            $tester = new ApplicationTester($application);
+            $tester->run(['command' => 'foo'], ['interactive' => true]);
+
+            $this->assertTrue($tester->getInput()->isInteractive());
+            $this->assertSame('foo'.\PHP_EOL, $tester->getDisplay());
+        } finally {
+            $cleanUp();
+        }
+    }
+
+    public static function provideShellVerbositySources(): iterable
+    {
+        yield 'putenv' => [
+            static function () { putenv('SHELL_VERBOSITY=-1'); },
+            static function () { putenv('SHELL_VERBOSITY'); },
+        ];
+        yield '$_ENV' => [
+            static function () { $_ENV['SHELL_VERBOSITY'] = '-1'; },
+            static function () { unset($_ENV['SHELL_VERBOSITY']); },
+        ];
+        yield '$_SERVER' => [
+            static function () { $_SERVER['SHELL_VERBOSITY'] = '-1'; },
+            static function () { unset($_SERVER['SHELL_VERBOSITY']); },
+        ];
+    }
+
     public function testErrorOutput()
     {
         $application = new Application();
         $application->setAutoExit(false);
         $application->register('foo')
             ->addArgument('foo')
-            ->setCode(function ($input, $output) {
+            ->setCode(static function ($input, $output) {
                 $output->getErrorOutput()->write('foo');
             })
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Tester/CommandTesterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Tester/CommandTesterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Console/Tests/Tester/CommandTesterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Console/Tests/Tester/CommandTesterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,9 @@
 use Symfony\Component\Console\Command\Command;
 use Symfony\Component\Console\Helper\HelperSet;
 use Symfony\Component\Console\Helper\QuestionHelper;
+use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\Output;
+use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Question\ChoiceQuestion;
 use Symfony\Component\Console\Question\Question;
 use Symfony\Component\Console\Style\SymfonyStyle;
@@ -32,7 +34,7 @@
         $this->command = new Command('foo');
         $this->command->addArgument('command');
         $this->command->addArgument('foo');
-        $this->command->setCode(function ($input, $output) { $output->writeln('foo'); });
+        $this->command->setCode(static function ($input, $output) { $output->writeln('foo'); });
 
         $this->tester = new CommandTester($this->command);
         $this->tester->execute(['foo' => 'bar'], ['interactive' => false, 'decorated' => false, 'verbosity' => Output::VERBOSITY_VERBOSE]);
@@ -92,7 +94,7 @@
         $application->setAutoExit(false);
 
         $command = new Command('foo');
-        $command->setCode(function ($input, $output) { $output->writeln('foo'); });
+        $command->setCode(static function ($input, $output) { $output->writeln('foo'); });
 
         $application->add($command);
 
@@ -112,7 +114,7 @@
 
         $command = new Command('foo');
         $command->setHelperSet(new HelperSet([new QuestionHelper()]));
-        $command->setCode(function ($input, $output) use ($questions, $command) {
+        $command->setCode(static function ($input, $output) use ($questions, $command) {
             $helper = $command->getHelper('question');
             $helper->ask($input, $output, new Question($questions[0]));
             $helper->ask($input, $output, new Question($questions[1]));
@@ -127,6 +129,32 @@
         $this->assertEquals(implode('', $questions), $tester->getDisplay(true));
     }
 
+    public function testCommandWithMultilineInputs()
+    {
+        $question = 'What is your address?';
+
+        $command = new Command('foo');
+        $command->setHelperSet(new HelperSet([new QuestionHelper()]));
+        $command->setCode(static function (InputInterface $input, OutputInterface $output) use ($question, $command): int {
+            $output->write($command->getHelper('question')->ask($input, $output, (new Question($question))->setMultiline(true)));
+            $output->write(stream_get_contents($input->getStream()));
+
+            return 0;
+        });
+
+        $tester = new CommandTester($command);
+
+        $address = <<<ADDRESS
+            31 Spooner Street
+            Quahog
+            ADDRESS;
+        $tester->setInputs([$address."\x04", $address]);
+        $tester->execute([]);
+
+        $tester->assertCommandIsSuccessful();
+        $this->assertSame($question.$address.$address.\PHP_EOL, $tester->getDisplay());
+    }
+
     public function testCommandWithDefaultInputs()
     {
         $questions = [
@@ -137,7 +165,7 @@
 
         $command = new Command('foo');
         $command->setHelperSet(new HelperSet([new QuestionHelper()]));
-        $command->setCode(function ($input, $output) use ($questions, $command) {
+        $command->setCode(static function ($input, $output) use ($questions, $command) {
             $helper = $command->getHelper('question');
             $helper->ask($input, $output, new Question($questions[0], 'Bobby'));
             $helper->ask($input, $output, new Question($questions[1], 'Fine'));
@@ -162,7 +190,7 @@
 
         $command = new Command('foo');
         $command->setHelperSet(new HelperSet([new QuestionHelper()]));
-        $command->setCode(function ($input, $output) use ($questions, $command) {
+        $command->setCode(static function ($input, $output) use ($questions, $command) {
             $helper = $command->getHelper('question');
             $helper->ask($input, $output, new ChoiceQuestion('choice', ['a', 'b']));
             $helper->ask($input, $output, new Question($questions[0]));
@@ -189,7 +217,7 @@
 
         $command = new Command('foo');
         $command->setHelperSet(new HelperSet([new QuestionHelper()]));
-        $command->setCode(function ($input, $output) use ($questions, $command) {
+        $command->setCode(static function ($input, $output) use ($questions, $command) {
             $helper = $command->getHelper('question');
             $helper->ask($input, $output, new ChoiceQuestion('choice', ['a', 'b']));
             $helper->ask($input, $output, new Question($questions[0]));
@@ -214,7 +242,7 @@
         ];
 
         $command = new Command('foo');
-        $command->setCode(function ($input, $output) use ($questions) {
+        $command->setCode(static function ($input, $output) use ($questions) {
             $io = new SymfonyStyle($input, $output);
             $io->ask($questions[0]);
             $io->ask($questions[1]);
@@ -233,7 +261,7 @@
         $command = new Command('foo');
         $command->addArgument('command');
         $command->addArgument('foo');
-        $command->setCode(function ($input, $output) {
+        $command->setCode(static function ($input, $output) {
             $output->getErrorOutput()->write('foo');
         });
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/CssSelectorConverter.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/CssSelectorConverter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/CssSelectorConverter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/CssSelectorConverter.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,6 +26,8 @@
  */
 class CssSelectorConverter
 {
+    public static int $maxCachedItems = 1024;
+
     private Translator $translator;
     private array $cache;
 
@@ -62,6 +64,21 @@
      */
     public function toXPath(string $cssExpr, string $prefix = 'descendant-or-self::'): string
     {
-        return $this->cache[$prefix][$cssExpr] ??= $this->translator->cssToXPath($cssExpr, $prefix);
+        $cacheKey = $prefix."\0".$cssExpr;
+
+        if (isset($this->cache[$cacheKey])) {
+            // Move the item last in cache (LRU)
+            $value = $this->cache[$cacheKey];
+            unset($this->cache[$cacheKey]);
+
+            return $this->cache[$cacheKey] = $value;
+        }
+
+        if (\count($this->cache) >= self::$maxCachedItems) {
+            // Evict the oldest entry
+            unset($this->cache[array_key_first($this->cache)]);
+        }
+
+        return $this->cache[$cacheKey] = $this->translator->cssToXPath($cssExpr, $prefix);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Exception/SyntaxErrorException.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Exception/SyntaxErrorException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Exception/SyntaxErrorException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Exception/SyntaxErrorException.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,17 +25,17 @@
 {
     public static function unexpectedToken(string $expectedValue, Token $foundToken): self
     {
-        return new self(sprintf('Expected %s, but %s found.', $expectedValue, $foundToken));
+        return new self(\sprintf('Expected %s, but %s found.', $expectedValue, $foundToken));
     }
 
     public static function pseudoElementFound(string $pseudoElement, string $unexpectedLocation): self
     {
-        return new self(sprintf('Unexpected pseudo-element "::%s" found %s.', $pseudoElement, $unexpectedLocation));
+        return new self(\sprintf('Unexpected pseudo-element "::%s" found %s.', $pseudoElement, $unexpectedLocation));
     }
 
     public static function unclosedString(int $position): self
     {
-        return new self(sprintf('Unclosed/invalid string at %s.', $position));
+        return new self(\sprintf('Unclosed/invalid string at %s.', $position));
     }
 
     public static function nestedNot(): self
@@ -45,7 +45,7 @@
 
     public static function notAtTheStartOfASelector(string $pseudoElement): self
     {
-        return new self(sprintf('Got immediate child pseudo-element ":%s" not at the start of a selector', $pseudoElement));
+        return new self(\sprintf('Got immediate child pseudo-element ":%s" not at the start of a selector', $pseudoElement));
     }
 
     public static function stringAsFunctionArgument(): self
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/AttributeNode.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/AttributeNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/AttributeNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/AttributeNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
         $attribute = $this->namespace ? $this->namespace.'|'.$this->attribute : $this->attribute;
 
         return 'exists' === $this->operator
-            ? sprintf('%s[%s[%s]]', $this->getNodeName(), $this->selector, $attribute)
-            : sprintf("%s[%s[%s %s '%s']]", $this->getNodeName(), $this->selector, $attribute, $this->operator, $this->value);
+            ? \sprintf('%s[%s[%s]]', $this->getNodeName(), $this->selector, $attribute)
+            : \sprintf("%s[%s[%s %s '%s']]", $this->getNodeName(), $this->selector, $attribute, $this->operator, $this->value);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/ClassNode.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/ClassNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/ClassNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/ClassNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,6 +49,6 @@
 
     public function __toString(): string
     {
-        return sprintf('%s[%s.%s]', $this->getNodeName(), $this->selector, $this->name);
+        return \sprintf('%s[%s.%s]', $this->getNodeName(), $this->selector, $this->name);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/CombinedSelectorNode.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/CombinedSelectorNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/CombinedSelectorNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/CombinedSelectorNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,6 +58,6 @@
     {
         $combinator = ' ' === $this->combinator ? '<followed>' : $this->combinator;
 
-        return sprintf('%s[%s %s %s]', $this->getNodeName(), $this->selector, $combinator, $this->subSelector);
+        return \sprintf('%s[%s %s %s]', $this->getNodeName(), $this->selector, $combinator, $this->subSelector);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/ElementNode.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/ElementNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/ElementNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/ElementNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,6 +51,6 @@
     {
         $element = $this->element ?: '*';
 
-        return sprintf('%s[%s]', $this->getNodeName(), $this->namespace ? $this->namespace.'|'.$element : $element);
+        return \sprintf('%s[%s]', $this->getNodeName(), $this->namespace ? $this->namespace.'|'.$element : $element);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/FunctionNode.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/FunctionNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/FunctionNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/FunctionNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,8 +64,8 @@
 
     public function __toString(): string
     {
-        $arguments = implode(', ', array_map(fn (Token $token) => "'".$token->getValue()."'", $this->arguments));
+        $arguments = implode(', ', array_map(static fn (Token $token) => "'".$token->getValue()."'", $this->arguments));
 
-        return sprintf('%s[%s:%s(%s)]', $this->getNodeName(), $this->selector, $this->name, $arguments ? '['.$arguments.']' : '');
+        return \sprintf('%s[%s:%s(%s)]', $this->getNodeName(), $this->selector, $this->name, $arguments ? '['.$arguments.']' : '');
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/HashNode.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/HashNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/HashNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/HashNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,6 +49,6 @@
 
     public function __toString(): string
     {
-        return sprintf('%s[%s#%s]', $this->getNodeName(), $this->selector, $this->id);
+        return \sprintf('%s[%s#%s]', $this->getNodeName(), $this->selector, $this->id);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/NegationNode.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/NegationNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/NegationNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/NegationNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,6 +49,6 @@
 
     public function __toString(): string
     {
-        return sprintf('%s[%s:not(%s)]', $this->getNodeName(), $this->selector, $this->subSelector);
+        return \sprintf('%s[%s:not(%s)]', $this->getNodeName(), $this->selector, $this->subSelector);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/PseudoNode.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/PseudoNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/PseudoNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/PseudoNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,6 +49,6 @@
 
     public function __toString(): string
     {
-        return sprintf('%s[%s:%s]', $this->getNodeName(), $this->selector, $this->identifier);
+        return \sprintf('%s[%s:%s]', $this->getNodeName(), $this->selector, $this->identifier);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/SelectorNode.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/SelectorNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Node/SelectorNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Node/SelectorNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,6 +49,6 @@
 
     public function __toString(): string
     {
-        return sprintf('%s[%s%s]', $this->getNodeName(), $this->tree, $this->pseudoElement ? '::'.$this->pseudoElement : '');
+        return \sprintf('%s[%s%s]', $this->getNodeName(), $this->tree, $this->pseudoElement ? '::'.$this->pseudoElement : '');
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Parser/Handler/StringHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Parser/Handler/StringHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Parser/Handler/StringHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Parser/Handler/StringHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,7 +52,7 @@
         $match = $reader->findPattern($this->patterns->getQuotedStringPattern($quote));
 
         if (!$match) {
-            throw new InternalErrorException(sprintf('Should have found at least an empty match at %d.', $reader->getPosition()));
+            throw new InternalErrorException(\sprintf('Should have found at least an empty match at %d.', $reader->getPosition()));
         }
 
         // check unclosed strings
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Parser/Parser.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Parser/Parser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Parser/Parser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Parser/Parser.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,9 +57,9 @@
             }
         }
 
-        $joined = trim(implode('', array_map(fn (Token $token) => $token->getValue(), $tokens)));
+        $joined = trim(implode('', array_map(static fn (Token $token) => $token->getValue(), $tokens)));
 
-        $int = function ($string) {
+        $int = static function ($string) {
             if (!is_numeric($string)) {
                 throw SyntaxErrorException::stringAsFunctionArgument();
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerEscaping.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerEscaping.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerEscaping.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerEscaping.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
 
     private function replaceUnicodeSequences(string $value): string
     {
-        return preg_replace_callback($this->patterns->getUnicodeEscapePattern(), function ($match) {
+        return preg_replace_callback($this->patterns->getUnicodeEscapePattern(), static function ($match) {
             $c = hexdec($match[1]);
 
             if (0x80 > $c %= 0x200000) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerPatterns.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerPatterns.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerPatterns.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerPatterns.php	2026-05-20 10:56:49.000000000 +0200
@@ -84,6 +84,6 @@
 
     public function getQuotedStringPattern(string $quote): string
     {
-        return '~^'.sprintf($this->quotedStringPattern, $quote).'~i';
+        return '~^'.\sprintf($this->quotedStringPattern, $quote).'~i';
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Parser/Token.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Parser/Token.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Parser/Token.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Parser/Token.php	2026-05-20 10:56:49.000000000 +0200
@@ -103,9 +103,9 @@
     public function __toString(): string
     {
         if ($this->value) {
-            return sprintf('<%s "%s" at %s>', $this->type, $this->value, $this->position);
+            return \sprintf('<%s "%s" at %s>', $this->type, $this->value, $this->position);
         }
 
-        return sprintf('<%s at %s>', $this->type, $this->position);
+        return \sprintf('<%s at %s>', $this->type, $this->position);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Tests/CssSelectorConverterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Tests/CssSelectorConverterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Tests/CssSelectorConverterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Tests/CssSelectorConverterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,6 +51,37 @@
         (new CssSelectorConverter())->toXPath('h1:');
     }
 
+    public function testLruCacheMovesRecentlyUsedToEnd()
+    {
+        CssSelectorConverter::$maxCachedItems = 5;
+        $htmlCacheProperty = new \ReflectionProperty(CssSelectorConverter::class, 'htmlCache');
+        $htmlCacheProperty->setValue(null, []);
+
+        $converter = new CssSelectorConverter(true);
+
+        // Fill cache with 5 entries (h0-h4)
+        for ($i = 0; $i < 5; ++$i) {
+            $converter->toXPath("h$i");
+        }
+
+        // Access h0 to move it to end (most recently used)
+        $converter->toXPath('h0');
+
+        // Trigger eviction
+        $converter->toXPath('h5');
+
+        $cache = $htmlCacheProperty->getValue();
+
+        // h0 was accessed recently (moved to end), so it survives eviction
+        $this->assertArrayHasKey("descendant-or-self::\0h0", $cache);
+        // h5 is the newest entry
+        $this->assertArrayHasKey("descendant-or-self::\0h5", $cache);
+        // h1 was the oldest untouched entry, should be evicted
+        $this->assertArrayNotHasKey("descendant-or-self::\0h1", $cache);
+
+        CssSelectorConverter::$maxCachedItems = 1024;
+    }
+
     /** @dataProvider getCssToXPathWithoutPrefixTestData */
     public function testCssToXPathWithoutPrefix($css, $xpath)
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Tests/Parser/ParserTest.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Tests/Parser/ParserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Tests/Parser/ParserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Tests/Parser/ParserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
     {
         $parser = new Parser();
 
-        $this->assertEquals($representation, array_map(fn (SelectorNode $node) => (string) $node->getTree(), $parser->parse($source)));
+        $this->assertEquals($representation, array_map(static fn (SelectorNode $node) => (string) $node->getTree(), $parser->parse($source)));
     }
 
     /** @dataProvider getParserExceptionTestData */
@@ -70,7 +70,7 @@
     public function testParseSeries($series, $a, $b)
     {
         $parser = new Parser();
-        $selectors = $parser->parse(sprintf(':nth-child(%s)', $series));
+        $selectors = $parser->parse(\sprintf(':nth-child(%s)', $series));
         $this->assertCount(1, $selectors);
 
         /** @var FunctionNode $function */
@@ -82,7 +82,7 @@
     public function testParseSeriesException($series)
     {
         $parser = new Parser();
-        $selectors = $parser->parse(sprintf(':nth-child(%s)', $series));
+        $selectors = $parser->parse(\sprintf(':nth-child(%s)', $series));
         $this->assertCount(1, $selectors);
 
         /** @var FunctionNode $function */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Tests/XPath/TranslatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Tests/XPath/TranslatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/Tests/XPath/TranslatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/Tests/XPath/TranslatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -156,18 +156,18 @@
         $translator->registerExtension(new HtmlExtension($translator));
         $document = new \DOMDocument();
         $document->loadHTML(<<<'HTML'
-<html>
-  <body>
-    <p>
-      <span>A</span>
-    </p>
-    <p>
-      <span>B</span>
-      <span>C</span>
-    </p>
-  </body>
-</html>
-HTML
+            <html>
+              <body>
+                <p>
+                  <span>A</span>
+                </p>
+                <p>
+                  <span>B</span>
+                  <span>C</span>
+                </p>
+              </body>
+            </html>
+            HTML
         );
 
         $xpath = new \DOMXPath($document);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/AttributeMatchingExtension.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/AttributeMatchingExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/AttributeMatchingExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/AttributeMatchingExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,12 +47,12 @@
 
     public function translateEquals(XPathExpr $xpath, string $attribute, ?string $value): XPathExpr
     {
-        return $xpath->addCondition(sprintf('%s = %s', $attribute, Translator::getXpathLiteral($value)));
+        return $xpath->addCondition(\sprintf('%s = %s', $attribute, Translator::getXpathLiteral($value)));
     }
 
     public function translateIncludes(XPathExpr $xpath, string $attribute, ?string $value): XPathExpr
     {
-        return $xpath->addCondition($value ? sprintf(
+        return $xpath->addCondition($value ? \sprintf(
             '%1$s and contains(concat(\' \', normalize-space(%1$s), \' \'), %2$s)',
             $attribute,
             Translator::getXpathLiteral(' '.$value.' ')
@@ -61,7 +61,7 @@
 
     public function translateDashMatch(XPathExpr $xpath, string $attribute, ?string $value): XPathExpr
     {
-        return $xpath->addCondition(sprintf(
+        return $xpath->addCondition(\sprintf(
             '%1$s and (%1$s = %2$s or starts-with(%1$s, %3$s))',
             $attribute,
             Translator::getXpathLiteral($value),
@@ -71,7 +71,7 @@
 
     public function translatePrefixMatch(XPathExpr $xpath, string $attribute, ?string $value): XPathExpr
     {
-        return $xpath->addCondition($value ? sprintf(
+        return $xpath->addCondition($value ? \sprintf(
             '%1$s and starts-with(%1$s, %2$s)',
             $attribute,
             Translator::getXpathLiteral($value)
@@ -80,7 +80,7 @@
 
     public function translateSuffixMatch(XPathExpr $xpath, string $attribute, ?string $value): XPathExpr
     {
-        return $xpath->addCondition($value ? sprintf(
+        return $xpath->addCondition($value ? \sprintf(
             '%1$s and substring(%1$s, string-length(%1$s)-%2$s) = %3$s',
             $attribute,
             \strlen($value) - 1,
@@ -90,7 +90,7 @@
 
     public function translateSubstringMatch(XPathExpr $xpath, string $attribute, ?string $value): XPathExpr
     {
-        return $xpath->addCondition($value ? sprintf(
+        return $xpath->addCondition($value ? \sprintf(
             '%1$s and contains(%1$s, %2$s)',
             $attribute,
             Translator::getXpathLiteral($value)
@@ -99,7 +99,7 @@
 
     public function translateDifferent(XPathExpr $xpath, string $attribute, ?string $value): XPathExpr
     {
-        return $xpath->addCondition(sprintf(
+        return $xpath->addCondition(\sprintf(
             $value ? 'not(%1$s) or %1$s != %2$s' : '%s != %s',
             $attribute,
             Translator::getXpathLiteral($value)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/FunctionExtension.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/FunctionExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/FunctionExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/FunctionExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
         try {
             [$a, $b] = Parser::parseSeries($function->getArguments());
         } catch (SyntaxErrorException $e) {
-            throw new ExpressionErrorException(sprintf('Invalid series: "%s".', implode('", "', $function->getArguments())), 0, $e);
+            throw new ExpressionErrorException(\sprintf('Invalid series: "%s".', implode('", "', $function->getArguments())), 0, $e);
         }
 
         $xpath->addStarPrefix();
@@ -83,10 +83,10 @@
             $expr .= ' - '.$b;
         }
 
-        $conditions = [sprintf('%s %s 0', $expr, $sign)];
+        $conditions = [\sprintf('%s %s 0', $expr, $sign)];
 
         if (1 !== $a && -1 !== $a) {
-            $conditions[] = sprintf('(%s) mod %d = 0', $expr, $a);
+            $conditions[] = \sprintf('(%s) mod %d = 0', $expr, $a);
         }
 
         return $xpath->addCondition(implode(' and ', $conditions));
@@ -134,7 +134,7 @@
             }
         }
 
-        return $xpath->addCondition(sprintf(
+        return $xpath->addCondition(\sprintf(
             'contains(string(.), %s)',
             Translator::getXpathLiteral($arguments[0]->getValue())
         ));
@@ -152,7 +152,7 @@
             }
         }
 
-        return $xpath->addCondition(sprintf(
+        return $xpath->addCondition(\sprintf(
             'lang(%s)',
             Translator::getXpathLiteral($arguments[0]->getValue())
         ));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/HtmlExtension.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/HtmlExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/HtmlExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/HtmlExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -142,7 +142,7 @@
             }
         }
 
-        return $xpath->addCondition(sprintf(
+        return $xpath->addCondition(\sprintf(
             'ancestor-or-self::*[@lang][1][starts-with(concat('
             ."translate(@%s, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '-')"
             .', %s)]',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/NodeExtension.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/NodeExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/NodeExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/NodeExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -91,7 +91,7 @@
         $subXpath->addNameTest();
 
         if ($subXpath->getCondition()) {
-            return $xpath->addCondition(sprintf('not(%s)', $subXpath->getCondition()));
+            return $xpath->addCondition(\sprintf('not(%s)', $subXpath->getCondition()));
         }
 
         return $xpath->addCondition('0');
@@ -121,11 +121,11 @@
         }
 
         if ($node->getNamespace()) {
-            $name = sprintf('%s:%s', $node->getNamespace(), $name);
+            $name = \sprintf('%s:%s', $node->getNamespace(), $name);
             $safe = $safe && $this->isSafeName($node->getNamespace());
         }
 
-        $attribute = $safe ? '@'.$name : sprintf('attribute::*[name() = %s]', Translator::getXpathLiteral($name));
+        $attribute = $safe ? '@'.$name : \sprintf('attribute::*[name() = %s]', Translator::getXpathLiteral($name));
         $value = $node->getValue();
         $xpath = $translator->nodeToXPath($node->getSelector());
 
@@ -166,7 +166,7 @@
         }
 
         if ($node->getNamespace()) {
-            $element = sprintf('%s:%s', $node->getNamespace(), $element);
+            $element = \sprintf('%s:%s', $node->getNamespace(), $element);
             $safe = $safe && $this->isSafeName($node->getNamespace());
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/PseudoClassExtension.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/PseudoClassExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/PseudoClassExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Extension/PseudoClassExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -107,7 +107,7 @@
     {
         $element = $xpath->getElement();
 
-        return $xpath->addCondition(sprintf('count(preceding-sibling::%s)=0 and count(following-sibling::%s)=0', $element, $element));
+        return $xpath->addCondition(\sprintf('count(preceding-sibling::%s)=0 and count(following-sibling::%s)=0', $element, $element));
     }
 
     public function translateEmpty(XPathExpr $xpath): XPathExpr
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Translator.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Translator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/Translator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/Translator.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
         $parts = [];
         while (true) {
             if (false !== $pos = strpos($string, "'")) {
-                $parts[] = sprintf("'%s'", substr($string, 0, $pos));
+                $parts[] = \sprintf("'%s'", substr($string, 0, $pos));
                 $parts[] = "\"'\"";
                 $string = substr($string, $pos + 1);
             } else {
@@ -84,7 +84,7 @@
             }
         }
 
-        return sprintf('concat(%s)', implode(', ', $parts));
+        return \sprintf('concat(%s)', implode(', ', $parts));
     }
 
     public function cssToXPath(string $cssExpr, string $prefix = 'descendant-or-self::'): string
@@ -130,7 +130,7 @@
     public function getExtension(string $name): Extension\ExtensionInterface
     {
         if (!isset($this->extensions[$name])) {
-            throw new ExpressionErrorException(sprintf('Extension "%s" not registered.', $name));
+            throw new ExpressionErrorException(\sprintf('Extension "%s" not registered.', $name));
         }
 
         return $this->extensions[$name];
@@ -152,7 +152,7 @@
     public function nodeToXPath(NodeInterface $node): XPathExpr
     {
         if (!isset($this->nodeTranslators[$node->getNodeName()])) {
-            throw new ExpressionErrorException(sprintf('Node "%s" not supported.', $node->getNodeName()));
+            throw new ExpressionErrorException(\sprintf('Node "%s" not supported.', $node->getNodeName()));
         }
 
         return $this->nodeTranslators[$node->getNodeName()]($node, $this);
@@ -164,7 +164,7 @@
     public function addCombination(string $combiner, NodeInterface $xpath, NodeInterface $combinedXpath): XPathExpr
     {
         if (!isset($this->combinationTranslators[$combiner])) {
-            throw new ExpressionErrorException(sprintf('Combiner "%s" not supported.', $combiner));
+            throw new ExpressionErrorException(\sprintf('Combiner "%s" not supported.', $combiner));
         }
 
         return $this->combinationTranslators[$combiner]($this->nodeToXPath($xpath), $this->nodeToXPath($combinedXpath));
@@ -176,7 +176,7 @@
     public function addFunction(XPathExpr $xpath, FunctionNode $function): XPathExpr
     {
         if (!isset($this->functionTranslators[$function->getName()])) {
-            throw new ExpressionErrorException(sprintf('Function "%s" not supported.', $function->getName()));
+            throw new ExpressionErrorException(\sprintf('Function "%s" not supported.', $function->getName()));
         }
 
         return $this->functionTranslators[$function->getName()]($xpath, $function);
@@ -188,7 +188,7 @@
     public function addPseudoClass(XPathExpr $xpath, string $pseudoClass): XPathExpr
     {
         if (!isset($this->pseudoClassTranslators[$pseudoClass])) {
-            throw new ExpressionErrorException(sprintf('Pseudo-class "%s" not supported.', $pseudoClass));
+            throw new ExpressionErrorException(\sprintf('Pseudo-class "%s" not supported.', $pseudoClass));
         }
 
         return $this->pseudoClassTranslators[$pseudoClass]($xpath);
@@ -200,7 +200,7 @@
     public function addAttributeMatching(XPathExpr $xpath, string $operator, string $attribute, ?string $value): XPathExpr
     {
         if (!isset($this->attributeMatchingTranslators[$operator])) {
-            throw new ExpressionErrorException(sprintf('Attribute matcher operator "%s" not supported.', $operator));
+            throw new ExpressionErrorException(\sprintf('Attribute matcher operator "%s" not supported.', $operator));
         }
 
         return $this->attributeMatchingTranslators[$operator]($xpath, $attribute, $value);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/XPathExpr.php symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/XPathExpr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/CssSelector/XPath/XPathExpr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/CssSelector/XPath/XPathExpr.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
      */
     public function addCondition(string $condition): static
     {
-        $this->condition = $this->condition ? sprintf('(%s) and (%s)', $this->condition, $condition) : $condition;
+        $this->condition = $this->condition ? \sprintf('(%s) and (%s)', $this->condition, $condition) : $condition;
 
         return $this;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Argument/LazyClosure.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Argument/LazyClosure.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Argument/LazyClosure.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Argument/LazyClosure.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,6 @@
 namespace Symfony\Component\DependencyInjection\Argument;
 
 use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
 use Symfony\Component\DependencyInjection\Reference;
@@ -36,42 +35,42 @@
     public function __get(mixed $name): mixed
     {
         if ('service' !== $name) {
-            throw new InvalidArgumentException(sprintf('Cannot read property "%s" from a lazy closure.', $name));
+            throw new InvalidArgumentException(\sprintf('Cannot read property "%s" from a lazy closure.', $name));
         }
 
         if (isset($this->initializer)) {
-            $this->service = ($this->initializer)();
+            if (\is_string($service = ($this->initializer)())) {
+                $service = (new \ReflectionClass($service))->newInstanceWithoutConstructor();
+            }
+            $this->service = $service;
             unset($this->initializer);
         }
 
         return $this->service;
     }
 
-    public static function getCode(string $initializer, array $callable, Definition $definition, ContainerBuilder $container, ?string $id): string
+    public static function getCode(string $initializer, array $callable, string $class, ContainerBuilder $container, ?string $id): string
     {
         $method = $callable[1];
-        $asClosure = 'Closure' === ($definition->getClass() ?: 'Closure');
 
-        if ($asClosure) {
+        if ($asClosure = 'Closure' === $class) {
             $class = ($callable[0] instanceof Reference ? $container->findDefinition($callable[0]) : $callable[0])->getClass();
-        } else {
-            $class = $definition->getClass();
         }
 
         $r = $container->getReflectionClass($class);
 
         if (null !== $id) {
-            $id = sprintf(' for service "%s"', $id);
+            $id = \sprintf(' for service "%s"', $id);
         }
 
         if (!$asClosure) {
             $id = str_replace('%', '%%', (string) $id);
 
             if (!$r || !$r->isInterface()) {
-                throw new RuntimeException(sprintf("Cannot create adapter{$id} because \"%s\" is not an interface.", $class));
+                throw new RuntimeException(\sprintf("Cannot create adapter{$id} because \"%s\" is not an interface.", $class));
             }
             if (1 !== \count($method = $r->getMethods())) {
-                throw new RuntimeException(sprintf("Cannot create adapter{$id} because interface \"%s\" doesn't have exactly one method.", $class));
+                throw new RuntimeException(\sprintf("Cannot create adapter{$id} because interface \"%s\" doesn't have exactly one method.", $class));
             }
             $method = $method[0]->name;
         } elseif (!$r || !$r->hasMethod($method)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Argument/ReferenceSetArgumentTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Argument/ReferenceSetArgumentTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Argument/ReferenceSetArgumentTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Argument/ReferenceSetArgumentTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
     {
         foreach ($values as $k => $v) {
             if (null !== $v && !$v instanceof Reference) {
-                throw new InvalidArgumentException(sprintf('A "%s" must hold only Reference instances, "%s" given.', __CLASS__, get_debug_type($v)));
+                throw new InvalidArgumentException(\sprintf('A "%s" must hold only Reference instances, "%s" given.', __CLASS__, get_debug_type($v)));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Argument/ServiceLocator.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Argument/ServiceLocator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Argument/ServiceLocator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Argument/ServiceLocator.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,6 +43,6 @@
 
     public function getProvidedServices(): array
     {
-        return $this->serviceTypes ??= array_map(fn () => '?', $this->serviceMap);
+        return $this->serviceTypes ??= array_map(static fn () => '?', $this->serviceMap);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Attribute/AutowireDecorated.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Attribute/AutowireDecorated.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Attribute/AutowireDecorated.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Attribute/AutowireDecorated.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
 
 namespace Symfony\Component\DependencyInjection\Attribute;
 
-#[\Attribute(\Attribute::TARGET_PARAMETER)]
+#[\Attribute(\Attribute::TARGET_PARAMETER | \Attribute::TARGET_PROPERTY)]
 class AutowireDecorated
 {
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Attribute/AutowireLocator.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Attribute/AutowireLocator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Attribute/AutowireLocator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Attribute/AutowireLocator.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,11 +58,11 @@
             if ($type instanceof SubscribedService) {
                 $key = $type->key ?? $key;
                 $attributes = $type->attributes;
-                $type = ($type->nullable ? '?' : '').($type->type ?? throw new InvalidArgumentException(sprintf('When "%s" is used, a type must be set.', SubscribedService::class)));
+                $type = ($type->nullable ? '?' : '').($type->type ?? throw new InvalidArgumentException(\sprintf('When "%s" is used, a type must be set.', SubscribedService::class)));
             }
 
             if (!\is_string($type) || !preg_match('/(?(DEFINE)(?<cn>[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+))(?(DEFINE)(?<fqcn>(?&cn)(?:\\\\(?&cn))*+))^\??(?&fqcn)(?:(?:\|(?&fqcn))*+|(?:&(?&fqcn))*+)$/', $type)) {
-                throw new InvalidArgumentException(sprintf('"%s" is not a PHP type for key "%s".', \is_string($type) ? $type : get_debug_type($type), $key));
+                throw new InvalidArgumentException(\sprintf('"%s" is not a PHP type for key "%s".', \is_string($type) ? $type : get_debug_type($type), $key));
             }
             $optionalBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
             if ('?' === $type[0]) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Attribute/Autowire.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Attribute/Autowire.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Attribute/Autowire.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Attribute/Autowire.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
  *
  * @author Kevin Bond <kevinbond@gmail.com>
  */
-#[\Attribute(\Attribute::TARGET_PARAMETER)]
+#[\Attribute(\Attribute::TARGET_PARAMETER | \Attribute::TARGET_PROPERTY)]
 class Autowire
 {
     public readonly string|array|Expression|Reference|ArgumentInterface|null $value;
@@ -52,7 +52,7 @@
             if (null !== $value && null !== $service) {
                 throw new LogicException('#[Autowire] attribute cannot declare $value and $service at the same time.');
             }
-        } elseif (!(null !== $value xor null !== $service xor null !== $expression xor null !== $env xor null !== $param)) {
+        } elseif (1 !== (null !== $value) + (null !== $service) + (null !== $expression) + (null !== $env) + (null !== $param)) {
             throw new LogicException('#[Autowire] attribute must declare exactly one of $service, $expression, $env, $param or $value.');
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Attribute/Target.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Attribute/Target.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Attribute/Target.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Attribute/Target.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
  *
  * @author Nicolas Grekas <p@tchwork.com>
  */
-#[\Attribute(\Attribute::TARGET_PARAMETER)]
+#[\Attribute(\Attribute::TARGET_PARAMETER | \Attribute::TARGET_PROPERTY)]
 final class Target
 {
     public function __construct(
@@ -30,7 +30,7 @@
     public function getParsedName(): string
     {
         if (null === $this->name) {
-            throw new LogicException(sprintf('Cannot parse the name of a #[Target] attribute that has not been resolved. Did you forget to call "%s::parseName()"?', __CLASS__));
+            throw new LogicException(\sprintf('Cannot parse the name of a #[Target] attribute that has not been resolved. Did you forget to call "%s::parseName()"?', __CLASS__));
         }
 
         return lcfirst(str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $this->name))));
@@ -56,7 +56,7 @@
                 $function = $function->name;
             }
 
-            throw new InvalidArgumentException(sprintf('Invalid #[Target] name "%s" on parameter "$%s" of "%s()": the first character must be a letter.', $name, $parameter->name, $function));
+            throw new InvalidArgumentException(\sprintf('Invalid #[Target] name "%s" on parameter "$%s" of "%s()": the first character must be a letter.', $name, $parameter->name, $function));
         }
 
         return preg_match('/^[a-zA-Z0-9_\x7f-\xff]++$/', $name) ? $name : $parsedName;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AbstractRecursivePass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AbstractRecursivePass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AbstractRecursivePass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AbstractRecursivePass.php	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             }
 
             if (!\function_exists($factory)) {
-                throw new RuntimeException(sprintf('Invalid service "%s": function "%s" does not exist.', $this->currentId, $factory));
+                throw new RuntimeException(\sprintf('Invalid service "%s": function "%s" does not exist.', $this->currentId, $factory));
             }
             $r = new \ReflectionFunction($factory);
             if (false !== $r->getFileName() && file_exists($r->getFileName())) {
@@ -150,7 +150,7 @@
             [$class, $method] = $factory;
 
             if ('__construct' === $method) {
-                throw new RuntimeException(sprintf('Invalid service "%s": "__construct()" cannot be used as a factory method.', $this->currentId));
+                throw new RuntimeException(\sprintf('Invalid service "%s": "__construct()" cannot be used as a factory method.', $this->currentId));
             }
 
             if ($class instanceof Reference) {
@@ -174,20 +174,20 @@
         try {
             if (!$r = $this->container->getReflectionClass($class)) {
                 if (null === $class) {
-                    throw new RuntimeException(sprintf('Invalid service "%s": the class is not set.', $this->currentId));
+                    throw new RuntimeException(\sprintf('Invalid service "%s": the class is not set.', $this->currentId));
                 }
 
-                throw new RuntimeException(sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class));
+                throw new RuntimeException(\sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class));
             }
         } catch (\ReflectionException $e) {
-            throw new RuntimeException(sprintf('Invalid service "%s": ', $this->currentId).lcfirst($e->getMessage()));
+            throw new RuntimeException(\sprintf('Invalid service "%s": ', $this->currentId).lcfirst($e->getMessage()));
         }
         if (!$r = $r->getConstructor()) {
             if ($required) {
-                throw new RuntimeException(sprintf('Invalid service "%s": class%s has no constructor.', $this->currentId, sprintf($class !== $this->currentId ? ' "%s"' : '', $class)));
+                throw new RuntimeException(\sprintf('Invalid service "%s": class%s has no constructor.', $this->currentId, \sprintf($class !== $this->currentId ? ' "%s"' : '', $class)));
             }
         } elseif (!$r->isPublic()) {
-            throw new RuntimeException(sprintf('Invalid service "%s": ', $this->currentId).sprintf($class !== $this->currentId ? 'constructor of class "%s"' : 'its constructor', $class).' must be public.');
+            throw new RuntimeException(\sprintf('Invalid service "%s": ', $this->currentId).\sprintf($class !== $this->currentId ? 'constructor of class "%s"' : 'its constructor', $class).' must be public.');
         }
 
         return $r;
@@ -207,11 +207,11 @@
         }
 
         if (null === $class) {
-            throw new RuntimeException(sprintf('Invalid service "%s": the class is not set.', $this->currentId));
+            throw new RuntimeException(\sprintf('Invalid service "%s": the class is not set.', $this->currentId));
         }
 
         if (!$r = $this->container->getReflectionClass($class)) {
-            throw new RuntimeException(sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class));
+            throw new RuntimeException(\sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class));
         }
 
         if (!$r->hasMethod($method)) {
@@ -223,12 +223,12 @@
                 return new \ReflectionMethod(static function (...$arguments) {}, '__invoke');
             }
 
-            throw new RuntimeException(sprintf('Invalid service "%s": method "%s()" does not exist.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method));
+            throw new RuntimeException(\sprintf('Invalid service "%s": method "%s()" does not exist.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method));
         }
 
         $r = $r->getMethod($method);
         if (!$r->isPublic()) {
-            throw new RuntimeException(sprintf('Invalid service "%s": method "%s()" must be public.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method));
+            throw new RuntimeException(\sprintf('Invalid service "%s": method "%s()" must be public.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method));
         }
 
         return $r;
@@ -249,12 +249,12 @@
                     $arg = $this->processValue(new Reference($id));
                     $this->inExpression = false;
                     if (!$arg instanceof Reference) {
-                        throw new RuntimeException(sprintf('"%s::processValue()" must return a Reference when processing an expression, "%s" returned for service("%s").', static::class, get_debug_type($arg), $id));
+                        throw new RuntimeException(\sprintf('"%s::processValue()" must return a Reference when processing an expression, "%s" returned for service("%s").', static::class, get_debug_type($arg), $id));
                     }
-                    $arg = sprintf('"%s"', $arg);
+                    $arg = \sprintf('"%s"', $arg);
                 }
 
-                return sprintf('$this->get(%s)', $arg);
+                return \sprintf('$this->get(%s)', $arg);
             });
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AliasDeprecatedPublicServicesPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AliasDeprecatedPublicServicesPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AliasDeprecatedPublicServicesPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AliasDeprecatedPublicServicesPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,11 +25,11 @@
     {
         foreach ($container->findTaggedServiceIds('container.private') as $id => $tags) {
             if (null === $package = $tags[0]['package'] ?? null) {
-                throw new InvalidArgumentException(sprintf('The "package" attribute is mandatory for the "container.private" tag on the "%s" service.', $id));
+                throw new InvalidArgumentException(\sprintf('The "package" attribute is mandatory for the "container.private" tag on the "%s" service.', $id));
             }
 
             if (null === $version = $tags[0]['version'] ?? null) {
-                throw new InvalidArgumentException(sprintf('The "version" attribute is mandatory for the "container.private" tag on the "%s" service.', $id));
+                throw new InvalidArgumentException(\sprintf('The "version" attribute is mandatory for the "container.private" tag on the "%s" service.', $id));
             }
 
             $definition = $container->getDefinition($id);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,6 +41,7 @@
     private bool $lazy;
     private bool $byConstructor;
     private bool $byFactory;
+    private bool $byMultiUseArgument;
     private array $definitions;
     private array $aliases;
 
@@ -67,6 +68,7 @@
         $this->lazy = false;
         $this->byConstructor = false;
         $this->byFactory = false;
+        $this->byMultiUseArgument = false;
         $this->definitions = $container->getDefinitions();
         $this->aliases = $container->getAliases();
 
@@ -89,7 +91,12 @@
 
         if ($value instanceof ArgumentInterface) {
             $this->lazy = !$this->byFactory || !$value instanceof IteratorArgument;
+            $byMultiUseArgument = $this->byMultiUseArgument;
+            if ($value instanceof IteratorArgument) {
+                $this->byMultiUseArgument = true;
+            }
             parent::processValue($value->getValues());
+            $this->byMultiUseArgument = $byMultiUseArgument;
             $this->lazy = $lazy;
 
             return $value;
@@ -106,7 +113,8 @@
                 $value,
                 $this->lazy || ($this->hasProxyDumper && $targetDefinition?->isLazy()),
                 ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $value->getInvalidBehavior(),
-                $this->byConstructor
+                $this->byConstructor,
+                $this->byMultiUseArgument
             );
 
             if ($inExpression) {
@@ -117,7 +125,9 @@
                     $targetDefinition,
                     $value,
                     $this->lazy || $targetDefinition?->isLazy(),
-                    true
+                    true,
+                    $this->byConstructor,
+                    $this->byMultiUseArgument
                 );
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AttributeAutoconfigurationPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AttributeAutoconfigurationPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AttributeAutoconfigurationPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AttributeAutoconfigurationPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,7 +52,7 @@
             } elseif ($parameterType instanceof \ReflectionNamedType) {
                 $types[] = $parameterType->getName();
             } else {
-                throw new LogicException(sprintf('Argument "$%s" of attribute autoconfigurator should have a type, use one or more of "\ReflectionClass|\ReflectionMethod|\ReflectionProperty|\ReflectionParameter|\Reflector" in "%s" on line "%d".', $reflectorParameter->getName(), $callableReflector->getFileName(), $callableReflector->getStartLine()));
+                throw new LogicException(\sprintf('Argument "$%s" of attribute autoconfigurator should have a type, use one or more of "\ReflectionClass|\ReflectionMethod|\ReflectionProperty|\ReflectionParameter|\Reflector" in "%s" on line "%d".', $reflectorParameter->getName(), $callableReflector->getFileName(), $callableReflector->getStartLine()));
             }
 
             try {
@@ -70,7 +70,7 @@
                         continue;
                     }
                     if (!($targets & \constant('Attribute::TARGET_'.strtoupper($symbol)))) {
-                        throw new LogicException(sprintf('Invalid type "Reflection%s" on argument "$%s": attribute "%s" cannot target a '.$symbol.' in "%s" on line "%d".', ucfirst($symbol), $reflectorParameter->getName(), $attributeName, $callableReflector->getFileName(), $callableReflector->getStartLine()));
+                        throw new LogicException(\sprintf('Invalid type "Reflection%s" on argument "$%s": attribute "%s" cannot target a '.$symbol.' in "%s" on line "%d".', ucfirst($symbol), $reflectorParameter->getName(), $attributeName, $callableReflector->getFileName(), $callableReflector->getStartLine()));
                     }
                 }
                 $this->{$symbol.'AttributeConfigurators'}[$attributeName] = $callable;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutoAliasServicePass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutoAliasServicePass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutoAliasServicePass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutoAliasServicePass.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
         foreach ($container->findTaggedServiceIds('auto_alias') as $serviceId => $tags) {
             foreach ($tags as $tag) {
                 if (!isset($tag['format'])) {
-                    throw new InvalidArgumentException(sprintf('Missing tag information "format" on auto_alias service "%s".', $serviceId));
+                    throw new InvalidArgumentException(\sprintf('Missing tag information "format" on auto_alias service "%s".', $serviceId));
                 }
 
                 $aliasId = $container->getParameterBag()->resolveValue($tag['format']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
     public function __construct(bool $throwOnAutowireException = true)
     {
         $this->throwOnAutowiringException = $throwOnAutowireException;
-        $this->defaultArgument = new class() {
+        $this->defaultArgument = new class {
             public $value;
             public $names;
             public $bag;
@@ -141,7 +141,7 @@
                 $message = $this->createTypeNotFoundMessageCallback($value, 'it');
 
                 // since the error message varies by referenced id and $this->currentId, so should the id of the dummy errored definition
-                $this->container->register($id = sprintf('.errored.%s.%s', $this->currentId, (string) $value), $value->getType())
+                $this->container->register($id = \sprintf('.errored.%s.%s', $this->currentId, (string) $value), $value->getType())
                     ->addError($message);
 
                 return new TypedReference($id, $value->getType(), $value->getInvalidBehavior(), $value->getName());
@@ -153,7 +153,7 @@
             return $value;
         }
         if (!$reflectionClass = $this->container->getReflectionClass($value->getClass(), false)) {
-            $this->container->log($this, sprintf('Skipping service "%s": Class or interface "%s" cannot be loaded.', $this->currentId, $value->getClass()));
+            $this->container->log($this, \sprintf('Skipping service "%s": Class or interface "%s" cannot be loaded.', $this->currentId, $value->getClass()));
 
             return $value;
         }
@@ -290,7 +290,7 @@
 
             $getValue = function () use ($type, $parameter, $class, $method, $name, $target) {
                 if (!$value = $this->getAutowiredReference($ref = new TypedReference($type, $type, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $name, $target), false)) {
-                    $failureMessage = $this->createTypeNotFoundMessageCallback($ref, sprintf('argument "$%s" of method "%s()"', $parameter->name, $class !== $this->currentId ? $class.'::'.$method : $method));
+                    $failureMessage = $this->createTypeNotFoundMessageCallback($ref, \sprintf('argument "$%s" of method "%s()"', $parameter->name, $class !== $this->currentId ? $class.'::'.$method : $method));
 
                     if ($parameter->isDefaultValueAvailable()) {
                         $value = $this->defaultArgument->withValue($parameter);
@@ -329,7 +329,7 @@
 
                         if (!\is_array($lazy)) {
                             if (str_contains($type, '|')) {
-                                throw new AutowiringFailedException($this->currentId, sprintf('Cannot use #[Autowire] with option "lazy: true" on union types for service "%s"; set the option to the interface(s) that should be proxied instead.', $this->currentId));
+                                throw new AutowiringFailedException($this->currentId, \sprintf('Cannot use #[Autowire] with option "lazy: true" on union types for service "%s"; set the option to the interface(s) that should be proxied instead.', $this->currentId));
                             }
                             $lazy = str_contains($type, '&') ? explode('&', $type) : [];
                         }
@@ -382,9 +382,9 @@
                         break;
                     }
                     $type = ProxyHelper::exportType($parameter);
-                    $type = $type ? sprintf('is type-hinted "%s"', preg_replace('/(^|[(|&])\\\\|^\?\\\\?/', '\1', $type)) : 'has no type-hint';
+                    $type = $type ? \sprintf('is type-hinted "%s"', preg_replace('/(^|[(|&])\\\\|^\?\\\\?/', '\1', $type)) : 'has no type-hint';
 
-                    throw new AutowiringFailedException($this->currentId, sprintf('Cannot autowire service "%s": argument "$%s" of method "%s()" %s, you should configure its value explicitly.', $this->currentId, $parameter->name, $class !== $this->currentId ? $class.'::'.$method : $method, $type));
+                    throw new AutowiringFailedException($this->currentId, \sprintf('Cannot autowire service "%s": argument "$%s" of method "%s()" %s, you should configure its value explicitly.', $this->currentId, $parameter->name, $class !== $this->currentId ? $class.'::'.$method : $method, $type));
                 }
 
                 // specifically pass the default value
@@ -593,7 +593,7 @@
             $namespace = substr($namespace, 0, $i);
 
             if ($this->container->hasDefinition($namespace) && $tag = $this->container->getDefinition($namespace)->getTag('container.excluded')) {
-                return sprintf('Cannot autowire service "%s": %s needs an instance of "%s" but this type has been excluded %s.', $currentId, $label, $type, $tag[0]['source'] ?? 'from autowiring');
+                return \sprintf('Cannot autowire service "%s": %s needs an instance of "%s" but this type has been excluded %s.', $currentId, $label, $type, $tag[0]['source'] ?? 'from autowiring');
             }
         } while (false !== $i = strrpos($namespace, '\\'));
 
@@ -609,19 +609,19 @@
                     $parentMsg = "couldn't be loaded. Either it was not found or it is missing a parent class or a trait";
                 }
             } catch (\ReflectionException $e) {
-                $parentMsg = sprintf('is missing a parent class (%s)', $e->getMessage());
+                $parentMsg = \sprintf('is missing a parent class (%s)', $e->getMessage());
             }
 
-            $message = sprintf('has type "%s" but this class %s.', $type, $parentMsg ?: 'was not found');
+            $message = \sprintf('has type "%s" but this class %s.', $type, $parentMsg ?: 'was not found');
         } else {
             $alternatives = $this->createTypeAlternatives($this->container, $reference);
 
             if (null !== $target = (array_filter($reference->getAttributes(), static fn ($a) => $a instanceof Target)[0] ?? null)) {
                 $target = null !== $target->name ? "('{$target->name}')" : '';
-                $message = sprintf('has "#[Target%s]" but no such target exists.%s', $target, $alternatives);
+                $message = \sprintf('has "#[Target%s]" but no such target exists.%s', $target, $alternatives);
             } else {
                 $message = $this->container->has($type) ? 'this service is abstract' : 'no such service exists';
-                $message = sprintf('references %s "%s" but %s.%s', $r->isInterface() ? 'interface' : 'class', $type, $message, $alternatives);
+                $message = \sprintf('references %s "%s" but %s.%s', $r->isInterface() ? 'interface' : 'class', $type, $message, $alternatives);
             }
 
             if ($r->isInterface() && !$alternatives) {
@@ -629,7 +629,7 @@
             }
         }
 
-        $message = sprintf('Cannot autowire service "%s": %s %s', $currentId, $label, $message);
+        $message = \sprintf('Cannot autowire service "%s": %s %s', $currentId, $label, $message);
 
         if (null !== $this->lastFailure) {
             $message = $this->lastFailure."\n".$message;
@@ -654,20 +654,20 @@
         unset($autowiringAliases['']);
 
         if ($autowiringAliases) {
-            return sprintf(' Did you mean to target%s "%s" instead?', 1 < \count($autowiringAliases) ? ' one of' : '', implode('", "', $autowiringAliases));
+            return \sprintf(' Did you mean to target%s "%s" instead?', 1 < \count($autowiringAliases) ? ' one of' : '', implode('", "', $autowiringAliases));
         }
 
         if (!$container->has($type) && false !== $key = array_search(strtolower($type), array_map('strtolower', $servicesAndAliases))) {
-            return sprintf(' Did you mean "%s"?', $servicesAndAliases[$key]);
+            return \sprintf(' Did you mean "%s"?', $servicesAndAliases[$key]);
         } elseif (isset($this->ambiguousServiceTypes[$type])) {
-            $message = sprintf('one of these existing services: "%s"', implode('", "', $this->ambiguousServiceTypes[$type]));
+            $message = \sprintf('one of these existing services: "%s"', implode('", "', $this->ambiguousServiceTypes[$type]));
         } elseif (isset($this->types[$type])) {
-            $message = sprintf('the existing "%s" service', $this->types[$type]);
+            $message = \sprintf('the existing "%s" service', $this->types[$type]);
         } else {
             return '';
         }
 
-        return sprintf(' You should maybe alias this %s to %s.', class_exists($type, false) ? 'class' : 'interface', $message);
+        return \sprintf(' You should maybe alias this %s to %s.', class_exists($type, false) ? 'class' : 'interface', $message);
     }
 
     private function getAliasesSuggestionForType(ContainerBuilder $container, string $type): ?string
@@ -682,15 +682,15 @@
         if (1 < $len = \count($aliases)) {
             $message = 'Try changing the type-hint to one of its parents: ';
             for ($i = 0, --$len; $i < $len; ++$i) {
-                $message .= sprintf('%s "%s", ', class_exists($aliases[$i], false) ? 'class' : 'interface', $aliases[$i]);
+                $message .= \sprintf('%s "%s", ', class_exists($aliases[$i], false) ? 'class' : 'interface', $aliases[$i]);
             }
-            $message .= sprintf('or %s "%s".', class_exists($aliases[$i], false) ? 'class' : 'interface', $aliases[$i]);
+            $message .= \sprintf('or %s "%s".', class_exists($aliases[$i], false) ? 'class' : 'interface', $aliases[$i]);
 
             return $message;
         }
 
         if ($aliases) {
-            return sprintf('Try changing the type-hint to "%s" instead.', $aliases[0]);
+            return \sprintf('Try changing the type-hint to "%s" instead.', $aliases[0]);
         }
 
         return null;
@@ -719,7 +719,7 @@
     private function getCombinedAlias(string $type, ?string $name = null): ?string
     {
         if (str_contains($type, '&')) {
-            $types = explode('&', $type);
+            $types = explode('&', trim($type, '()'));
         } elseif (str_contains($type, '|')) {
             $types = explode('|', $type);
         } else {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutowireRequiredPropertiesPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutowireRequiredPropertiesPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutowireRequiredPropertiesPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/AutowireRequiredPropertiesPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,9 @@
 
 namespace Symfony\Component\DependencyInjection\Compiler;
 
+use Symfony\Component\DependencyInjection\Attribute\Autowire;
+use Symfony\Component\DependencyInjection\Attribute\AutowireDecorated;
+use Symfony\Component\DependencyInjection\Attribute\Target;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\Definition;
 use Symfony\Component\DependencyInjection\TypedReference;
@@ -56,7 +59,11 @@
             }
 
             $type = $type->getName();
-            $value->setProperty($name, new TypedReference($type, $type, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, $name));
+            $value->setProperty($name, new TypedReference($type, $type, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, $name, array_map(static fn ($a) => $a->newInstance(), array_merge(
+                $reflectionProperty->getAttributes(Autowire::class, \ReflectionAttribute::IS_INSTANCEOF),
+                $reflectionProperty->getAttributes(AutowireDecorated::class),
+                $reflectionProperty->getAttributes(Target::class),
+            ))));
         }
 
         return $value;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckArgumentsValidityPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckArgumentsValidityPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckArgumentsValidityPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckArgumentsValidityPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
 
             if ($k !== $i++) {
                 if (!\is_int($k)) {
-                    $msg = sprintf('Invalid constructor argument for service "%s": integer expected but found string "%s". Check your service definition.', $this->currentId, $k);
+                    $msg = \sprintf('Invalid constructor argument for service "%s": integer expected but found string "%s". Check your service definition.', $this->currentId, $k);
                     $value->addError($msg);
                     if ($this->throwExceptions) {
                         throw new RuntimeException($msg);
@@ -56,7 +56,7 @@
                     break;
                 }
 
-                $msg = sprintf('Invalid constructor argument %d for service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $this->currentId, $i);
+                $msg = \sprintf('Invalid constructor argument %d for service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $this->currentId, $i);
                 $value->addError($msg);
                 if ($this->throwExceptions) {
                     throw new RuntimeException($msg);
@@ -64,7 +64,7 @@
             }
 
             if ($hasNamedArgs) {
-                $msg = sprintf('Invalid constructor argument for service "%s": cannot use positional argument after named argument. Check your service definition.', $this->currentId);
+                $msg = \sprintf('Invalid constructor argument for service "%s": cannot use positional argument after named argument. Check your service definition.', $this->currentId);
                 $value->addError($msg);
                 if ($this->throwExceptions) {
                     throw new RuntimeException($msg);
@@ -85,7 +85,7 @@
 
                 if ($k !== $i++) {
                     if (!\is_int($k)) {
-                        $msg = sprintf('Invalid argument for method call "%s" of service "%s": integer expected but found string "%s". Check your service definition.', $methodCall[0], $this->currentId, $k);
+                        $msg = \sprintf('Invalid argument for method call "%s" of service "%s": integer expected but found string "%s". Check your service definition.', $methodCall[0], $this->currentId, $k);
                         $value->addError($msg);
                         if ($this->throwExceptions) {
                             throw new RuntimeException($msg);
@@ -94,7 +94,7 @@
                         break;
                     }
 
-                    $msg = sprintf('Invalid argument %d for method call "%s" of service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $methodCall[0], $this->currentId, $i);
+                    $msg = \sprintf('Invalid argument %d for method call "%s" of service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $methodCall[0], $this->currentId, $i);
                     $value->addError($msg);
                     if ($this->throwExceptions) {
                         throw new RuntimeException($msg);
@@ -102,7 +102,7 @@
                 }
 
                 if ($hasNamedArgs) {
-                    $msg = sprintf('Invalid argument for method call "%s" of service "%s": cannot use positional argument after named argument. Check your service definition.', $methodCall[0], $this->currentId);
+                    $msg = \sprintf('Invalid argument for method call "%s" of service "%s": cannot use positional argument after named argument. Check your service definition.', $methodCall[0], $this->currentId);
                     $value->addError($msg);
                     if ($this->throwExceptions) {
                         throw new RuntimeException($msg);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
                 continue;
             }
 
-            $isLeaf = !!$node->getValue();
+            $isLeaf = (bool) $node->getValue();
             $isConcrete = !$edge->isLazy() && !$edge->isWeak();
 
             // Skip already checked lazy services if they are still lazy. Will not gain any new information.
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,7 +14,6 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Exception\EnvParameterException;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Loader\FileLoader;
 
 /**
  * This pass validates each definition individually only taking the information
@@ -40,25 +39,29 @@
     public function process(ContainerBuilder $container)
     {
         foreach ($container->getDefinitions() as $id => $definition) {
+            if ($definition->hasErrors()) {
+                continue;
+            }
+
             // synthetic service is public
             if ($definition->isSynthetic() && !$definition->isPublic()) {
-                throw new RuntimeException(sprintf('A synthetic service ("%s") must be public.', $id));
+                throw new RuntimeException(\sprintf('A synthetic service ("%s") must be public.', $id));
             }
 
             // non-synthetic, non-abstract service has class
-            if (!$definition->isAbstract() && !$definition->isSynthetic() && !$definition->getClass() && !$definition->hasTag('container.service_locator') && (!$definition->getFactory() || !preg_match(FileLoader::ANONYMOUS_ID_REGEXP, $id))) {
+            if (!$definition->isAbstract() && !$definition->isSynthetic() && !$definition->getClass() && !$definition->hasTag('container.service_locator') && (!$definition->getFactory() || !preg_match(ContainerBuilder::ANONYMOUS_ID_REGEXP, $id))) {
                 if ($definition->getFactory()) {
-                    throw new RuntimeException(sprintf('Please add the class to service "%s" even if it is constructed by a factory since we might need to add method calls based on compile-time checks.', $id));
+                    throw new RuntimeException(\sprintf('Please add the class to service "%s" even if it is constructed by a factory since we might need to add method calls based on compile-time checks.', $id));
                 }
                 if (class_exists($id) || interface_exists($id, false)) {
                     if (str_starts_with($id, '\\') && 1 < substr_count($id, '\\')) {
-                        throw new RuntimeException(sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface. Please specify the class attribute explicitly or remove the leading backslash by renaming the service to "%s" to get rid of this error.', $id, substr($id, 1)));
+                        throw new RuntimeException(\sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface. Please specify the class attribute explicitly or remove the leading backslash by renaming the service to "%s" to get rid of this error.', $id, substr($id, 1)));
                     }
 
-                    throw new RuntimeException(sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface in the global namespace. Leaving out the "class" attribute is only allowed for namespaced classes. Please specify the class attribute explicitly to get rid of this error.', $id));
+                    throw new RuntimeException(\sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface in the global namespace. Leaving out the "class" attribute is only allowed for namespaced classes. Please specify the class attribute explicitly to get rid of this error.', $id));
                 }
 
-                throw new RuntimeException(sprintf('The definition for "%s" has no class. If you intend to inject this service dynamically at runtime, please mark it as synthetic=true. If this is an abstract definition solely used by child definitions, please add abstract=true, otherwise specify a class to get rid of this error.', $id));
+                throw new RuntimeException(\sprintf('The definition for "%s" has no class. If you intend to inject this service dynamically at runtime, please mark it as synthetic=true. If this is an abstract definition solely used by child definitions, please add abstract=true, otherwise specify a class to get rid of this error.', $id));
             }
 
             // tag attribute values must be scalars
@@ -93,7 +96,7 @@
                 $this->validateAttributes($id, $tag, $value, [...$path, $name]);
             } elseif (!\is_scalar($value) && null !== $value) {
                 $name = implode('.', [...$path, $name]);
-                throw new RuntimeException(sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s".', $id, $tag, $name));
+                throw new RuntimeException(\sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s".', $id, $tag, $name));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -101,7 +101,7 @@
             }
         }
 
-        $pass = new class() extends AbstractRecursivePass {
+        $pass = new class extends AbstractRecursivePass {
             public Reference $ref;
             public string $sourceId;
             public array $alternatives;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckFactoryBuilderCircularReferencePass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckFactoryBuilderCircularReferencePass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckFactoryBuilderCircularReferencePass.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckFactoryBuilderCircularReferencePass.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,130 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\DependencyInjection\Compiler;
+
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
+use Symfony\Component\DependencyInjection\Reference;
+
+/**
+ * Detects cycles where a service's factory is `[Definition $b, $method]` and $b's
+ * own properties/method calls/configurator transitively require that same service
+ * through constructor references.
+ *
+ * The soft-circular instantiation pattern relies on storing the service's instance
+ * before deferred edges fire, but a factory consumes the builder's state at call
+ * time: deferring $b's setup until after `$b->method(...)` would feed the factory
+ * an unconfigured builder. The cycle is unresolvable; bail out instead of letting
+ * the dumper produce silently wrong code or `ContainerBuilder::createService()`
+ * silently return a half-built instance.
+ */
+class CheckFactoryBuilderCircularReferencePass implements CompilerPassInterface
+{
+    private ContainerBuilder $container;
+    private array $visited;
+    private array $path;
+    private string $currentId;
+
+    public function process(ContainerBuilder $container): void
+    {
+        $this->container = $container;
+
+        try {
+            foreach ($container->getDefinitions() as $id => $definition) {
+                $factory = $definition->getFactory();
+                if (!\is_array($factory) || !$factory[0] instanceof Definition) {
+                    continue;
+                }
+
+                $builder = $factory[0];
+                if (!$builder->getMethodCalls() && !$builder->getProperties() && null === $builder->getConfigurator()) {
+                    continue;
+                }
+
+                $this->currentId = $id;
+                $this->visited = [$id => true];
+                $this->path = [$id];
+
+                $setup = [$builder->getProperties(), $builder->getMethodCalls(), $builder->getConfigurator()];
+                if ($this->setupReferencesCurrent($setup)) {
+                    $this->path[] = $id;
+
+                    throw new ServiceCircularReferenceException($id, $this->path);
+                }
+            }
+        } finally {
+            unset($this->container, $this->visited, $this->path, $this->currentId);
+        }
+    }
+
+    private function setupReferencesCurrent(mixed $value): bool
+    {
+        if (\is_array($value)) {
+            foreach ($value as $v) {
+                if ($this->setupReferencesCurrent($v)) {
+                    return true;
+                }
+            }
+
+            return false;
+        }
+
+        if ($value instanceof Reference) {
+            $id = (string) $value;
+            while ($this->container->hasAlias($id)) {
+                $id = (string) $this->container->getAlias($id);
+            }
+
+            if ($id === $this->currentId) {
+                return true;
+            }
+
+            if (isset($this->visited[$id]) || !$this->container->hasDefinition($id)) {
+                return false;
+            }
+
+            $def = $this->container->getDefinition($id);
+
+            // Lazy services break the eager-construction chain through a proxy.
+            if ($def->isLazy() || $def->isSynthetic()) {
+                return false;
+            }
+
+            $this->visited[$id] = true;
+            $this->path[] = $id;
+
+            // Only constructor edges propagate the "needed during construction" reachability.
+            if ($this->setupReferencesCurrent([$def->getArguments(), $def->getFactory()])) {
+                return true;
+            }
+
+            array_pop($this->path);
+
+            return false;
+        }
+
+        if ($value instanceof Definition) {
+            // Inlined sub-definition: every part of it runs while the outer service
+            // is still being constructed, so walk its full structure.
+            return $this->setupReferencesCurrent([
+                $value->getArguments(),
+                $value->getFactory(),
+                $value->getProperties(),
+                $value->getMethodCalls(),
+                $value->getConfigurator(),
+            ]);
+        }
+
+        return false;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
             $targetDefinition = $this->container->getDefinition((string) $value);
 
             if ($targetDefinition->isAbstract()) {
-                throw new RuntimeException(sprintf('The definition "%s" has a reference to an abstract definition "%s". Abstract definitions cannot be the target of references.', $this->currentId, $value));
+                throw new RuntimeException(\sprintf('The definition "%s" has a reference to an abstract definition "%s". Abstract definitions cannot be the target of references.', $this->currentId, $value));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckTypeDeclarationsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckTypeDeclarationsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckTypeDeclarationsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/CheckTypeDeclarationsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,7 +79,7 @@
 
     protected function processValue(mixed $value, bool $isRoot = false): mixed
     {
-        if (isset($this->skippedIds[$this->currentId])) {
+        if (isset($this->skippedIds[$this->currentId ?? ''])) {
             return $value;
         }
 
@@ -129,7 +129,7 @@
         $numberOfRequiredParameters = $reflectionFunction->getNumberOfRequiredParameters();
 
         if (\count($values) < $numberOfRequiredParameters) {
-            throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": "%s::%s()" requires %d arguments, %d passed.', $this->currentId, $reflectionFunction->class, $reflectionFunction->name, $numberOfRequiredParameters, \count($values)));
+            throw new InvalidArgumentException(\sprintf('Invalid definition for service "%s": "%s::%s()" requires %d arguments, %d passed.', $this->currentId, $reflectionFunction->class, $reflectionFunction->name, $numberOfRequiredParameters, \count($values)));
         }
 
         $reflectionParameters = $reflectionFunction->getParameters();
@@ -142,13 +142,14 @@
             if (!$p->hasType() || $p->isVariadic()) {
                 continue;
             }
+            $key = $i;
             if (\array_key_exists($p->name, $values)) {
-                $i = $p->name;
+                $key = $p->name;
             } elseif (!\array_key_exists($i, $values)) {
                 continue;
             }
 
-            $this->checkType($checkedDefinition, $values[$i], $p, $envPlaceholderUniquePrefix);
+            $this->checkType($checkedDefinition, $values[$key], $p, $envPlaceholderUniquePrefix);
         }
 
         if ($reflectionFunction->isVariadic() && ($lastParameter = end($reflectionParameters))->hasType()) {
@@ -318,7 +319,7 @@
                 return;
             }
         } elseif ($reflectionType->isBuiltin()) {
-            $checkFunction = sprintf('is_%s', $type);
+            $checkFunction = \sprintf('is_%s', $type);
             if ($checkFunction($value)) {
                 return;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php	2026-05-20 10:56:49.000000000 +0200
@@ -92,7 +92,7 @@
             }
 
             if ($decoratedDefinition?->isSynthetic()) {
-                throw new InvalidArgumentException(sprintf('A synthetic service cannot be decorated: service "%s" cannot decorate "%s".', $id, $inner));
+                throw new InvalidArgumentException(\sprintf('A synthetic service cannot be decorated: service "%s" cannot decorate "%s".', $id, $inner));
             }
 
             if (isset($decoratingDefinitions[$inner])) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/DefinitionErrorExceptionPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/DefinitionErrorExceptionPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/DefinitionErrorExceptionPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/DefinitionErrorExceptionPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,10 +65,13 @@
         }
 
         if ($value instanceof Reference && $this->currentId !== $targetId = (string) $value) {
-            if (ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $value->getInvalidBehavior()) {
-                $this->sourceReferences[$targetId][$this->currentId] ??= true;
+            if (
+                ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $value->getInvalidBehavior()
+                || ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $value->getInvalidBehavior()
+            ) {
+                $this->sourceReferences[$targetId][$this->currentId ?? ''] ??= true;
             } else {
-                $this->sourceReferences[$targetId][$this->currentId] = false;
+                $this->sourceReferences[$targetId][$this->currentId ?? ''] = false;
             }
 
             return $value;
@@ -78,7 +81,7 @@
             return parent::processValue($value, $isRoot);
         }
 
-        $this->erroredDefinitions[$this->currentId] = $value;
+        $this->erroredDefinitions[$this->currentId ?? ''] = $value;
 
         return parent::processValue($value);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,6 +73,9 @@
                     if (!$this->graph->hasNode($id)) {
                         continue;
                     }
+                    if ($definition->isPublic()) {
+                        $this->connectedIds[$id] = true;
+                    }
                     foreach ($this->graph->getNode($id)->getOutEdges() as $edge) {
                         if (isset($notInlinedIds[$edge->getSourceNode()->getId()])) {
                             $this->currentId = $id;
@@ -141,9 +144,9 @@
             return $value;
         }
 
-        $this->container->log($this, sprintf('Inlined service "%s" to "%s".', $id, $this->currentId));
+        $this->container->log($this, \sprintf('Inlined service "%s" to "%s".', $id, $this->currentId));
         $this->inlinedIds[$id] = $definition->isPublic() || !$definition->isShared();
-        $this->notInlinedIds[$this->currentId] = true;
+        $this->notInlinedIds[$this->currentId ?? ''] = true;
 
         if ($definition->isShared()) {
             return $definition;
@@ -189,17 +192,13 @@
             return true;
         }
 
-        if ($definition->isPublic()) {
+        if ($definition->isPublic()
+            || $this->currentId === $id
+            || !$this->graph->hasNode($id)
+        ) {
             return false;
         }
 
-        if (!$this->graph->hasNode($id)) {
-            return true;
-        }
-
-        if ($this->currentId === $id) {
-            return false;
-        }
         $this->connectedIds[$id] = true;
 
         $srcIds = [];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -165,17 +165,17 @@
 
     public function addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0): static
     {
-        throw new LogicException(sprintf('You cannot add compiler pass "%s" from extension "%s". Compiler passes must be registered before the container is compiled.', get_debug_type($pass), $this->extensionClass));
+        throw new LogicException(\sprintf('You cannot add compiler pass "%s" from extension "%s". Compiler passes must be registered before the container is compiled.', get_debug_type($pass), $this->extensionClass));
     }
 
     public function registerExtension(ExtensionInterface $extension)
     {
-        throw new LogicException(sprintf('You cannot register extension "%s" from "%s". Extensions must be registered before the container is compiled.', get_debug_type($extension), $this->extensionClass));
+        throw new LogicException(\sprintf('You cannot register extension "%s" from "%s". Extensions must be registered before the container is compiled.', get_debug_type($extension), $this->extensionClass));
     }
 
     public function compile(bool $resolveEnvPlaceholders = false)
     {
-        throw new LogicException(sprintf('Cannot compile the container in extension "%s".', $this->extensionClass));
+        throw new LogicException(\sprintf('Cannot compile the container in extension "%s".', $this->extensionClass));
     }
 
     public function resolveEnvPlaceholders(mixed $value, string|bool|null $format = null, ?array &$usedEnvs = null): mixed
@@ -197,7 +197,7 @@
             }
             foreach ($placeholders as $placeholder) {
                 if (false !== stripos($value, $placeholder)) {
-                    throw new RuntimeException(sprintf('Using a cast in "env(%s)" is incompatible with resolution at compile time in "%s". The logic in the extension should be moved to a compiler pass, or an env parameter with no cast should be used instead.', $env, $this->extensionClass));
+                    throw new RuntimeException(\sprintf('Using a cast in "env(%s)" is incompatible with resolution at compile time in "%s". The logic in the extension should be moved to a compiler pass, or an env parameter with no cast should be used instead.', $env, $this->extensionClass));
                 }
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php	2026-05-20 10:56:49.000000000 +0200
@@ -87,6 +87,7 @@
             new CheckExceptionOnInvalidReferenceBehaviorPass(),
             new InlineServiceDefinitionsPass(new AnalyzeServiceReferencesPass()),
             new AnalyzeServiceReferencesPass(),
+            new CheckFactoryBuilderCircularReferencePass(),
             new DefinitionErrorExceptionPass(),
         ]];
 
@@ -97,7 +98,8 @@
                 new AliasDeprecatedPublicServicesPass(),
             ],
             // Let build parameters be available as late as possible
-            -2048 => [new RemoveBuildParametersPass()],
+            // Don't remove array parameters since ResolveParameterPlaceHoldersPass doesn't resolve them
+            -2048 => [new RemoveBuildParametersPass(true)],
         ];
     }
 
@@ -129,7 +131,7 @@
     {
         $property = $type.'Passes';
         if (!isset($this->$property)) {
-            throw new InvalidArgumentException(sprintf('Invalid type "%s".', $type));
+            throw new InvalidArgumentException(\sprintf('Invalid type "%s".', $type));
         }
 
         $passes = &$this->$property;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,6 +65,17 @@
             $class = $container->getParameterBag()->resolveValue($class) ?: null;
             $checkTaggedItem = !$definition->hasTag($definition->isAutoconfigured() ? 'container.ignore_attributes' : $tagName);
 
+            // For decorated services, walk the decoration chain to find #[AsTaggedItem] on the original service
+            $innerClass = null;
+            $innerDef = $definition;
+            while ($innerId = $innerDef->getTag('container.decorator')[0]['inner'] ?? null) {
+                if (!$container->has($innerId)) {
+                    break;
+                }
+                $innerDef = $container->findDefinition($innerId);
+                $innerClass = $container->getParameterBag()->resolveValue($innerDef->getClass()) ?: null;
+            }
+
             foreach ($attributes as $attribute) {
                 $index = $priority = null;
 
@@ -72,6 +83,9 @@
                     $priority = $attribute['priority'];
                 } elseif (null === $defaultPriority && $defaultPriorityMethod && $class) {
                     $defaultPriority = PriorityTaggedServiceUtil::getDefault($container, $serviceId, $class, $defaultPriorityMethod, $tagName, 'priority', $checkTaggedItem);
+                    if (null === $defaultPriority && $innerClass) {
+                        $defaultPriority = PriorityTaggedServiceUtil::getDefault($container, $serviceId, $innerClass, $defaultPriorityMethod, $tagName, 'priority', true);
+                    }
                 }
                 $priority ??= $defaultPriority ??= 0;
 
@@ -84,9 +98,12 @@
                     $index = $attribute[$indexAttribute];
                 } elseif (null === $defaultIndex && $defaultPriorityMethod && $class) {
                     $defaultIndex = PriorityTaggedServiceUtil::getDefault($container, $serviceId, $class, $defaultIndexMethod ?? 'getDefaultName', $tagName, $indexAttribute, $checkTaggedItem);
+                    if (null === $defaultIndex && $innerClass) {
+                        $defaultIndex = PriorityTaggedServiceUtil::getDefault($container, $serviceId, $innerClass, $defaultIndexMethod ?? 'getDefaultName', $tagName, $indexAttribute, true);
+                    }
                 }
                 $decorated = $definition->getTag('container.decorator')[0]['id'] ?? null;
-                $index = $index ?? $defaultIndex ?? $defaultIndex = $decorated ?? $serviceId;
+                $index ??= $defaultIndex ?? $defaultIndex = $decorated ?? $serviceId;
 
                 $services[] = [$priority, ++$i, $index, $serviceId, $class];
             }
@@ -139,10 +156,10 @@
         }
 
         if (null !== $indexAttribute) {
-            $service = $class !== $serviceId ? sprintf('service "%s"', $serviceId) : 'on the corresponding service';
-            $message = [sprintf('Either method "%s::%s()" should ', $class, $defaultMethod), sprintf(' or tag "%s" on %s is missing attribute "%s".', $tagName, $service, $indexAttribute)];
+            $service = $class !== $serviceId ? \sprintf('service "%s"', $serviceId) : 'on the corresponding service';
+            $message = [\sprintf('Either method "%s::%s()" should ', $class, $defaultMethod), \sprintf(' or tag "%s" on %s is missing attribute "%s".', $tagName, $service, $indexAttribute)];
         } else {
-            $message = [sprintf('Method "%s::%s()" should ', $class, $defaultMethod), '.'];
+            $message = [\sprintf('Method "%s::%s()" should ', $class, $defaultMethod), '.'];
         }
 
         if (!($rm = $r->getMethod($defaultMethod))->isStatic()) {
@@ -157,7 +174,7 @@
 
         if ('priority' === $indexAttribute) {
             if (!\is_int($default)) {
-                throw new InvalidArgumentException(implode(sprintf('return int (got "%s")', get_debug_type($default)), $message));
+                throw new InvalidArgumentException(implode(\sprintf('return int (got "%s")', get_debug_type($default)), $message));
             }
 
             return $default;
@@ -168,7 +185,7 @@
         }
 
         if (!\is_string($default)) {
-            throw new InvalidArgumentException(implode(sprintf('return string|int (got "%s")', get_debug_type($default)), $message));
+            throw new InvalidArgumentException(implode(\sprintf('return string|int (got "%s")', get_debug_type($default)), $message));
         }
 
         return $default;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RegisterEnvVarProcessorsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RegisterEnvVarProcessorsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RegisterEnvVarProcessorsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RegisterEnvVarProcessorsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,9 +37,9 @@
         $processors = [];
         foreach ($container->findTaggedServiceIds('container.env_var_processor') as $id => $tags) {
             if (!$r = $container->getReflectionClass($class = $container->getDefinition($id)->getClass())) {
-                throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
+                throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
             } elseif (!$r->isSubclassOf(EnvVarProcessorInterface::class)) {
-                throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $id, EnvVarProcessorInterface::class));
+                throw new InvalidArgumentException(\sprintf('Service "%s" must implement interface "%s".', $id, EnvVarProcessorInterface::class));
             }
             foreach ($class::getProvidedTypes() as $prefix => $type) {
                 $processors[$prefix] = new Reference($id);
@@ -69,7 +69,7 @@
 
         foreach ($types as $type) {
             if (!\in_array($type, self::ALLOWED_TYPES)) {
-                throw new InvalidArgumentException(sprintf('Invalid type "%s" returned by "%s::getProvidedTypes()", expected one of "%s".', $type, $class, implode('", "', self::ALLOWED_TYPES)));
+                throw new InvalidArgumentException(\sprintf('Invalid type "%s" returned by "%s::getProvidedTypes()", expected one of "%s".', $type, $class, implode('", "', self::ALLOWED_TYPES)));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RegisterServiceSubscribersPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RegisterServiceSubscribersPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RegisterServiceSubscribersPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RegisterServiceSubscribersPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,10 +50,10 @@
             }
             ksort($attributes);
             if ([] !== array_diff(array_keys($attributes), ['id', 'key'])) {
-                throw new InvalidArgumentException(sprintf('The "container.service_subscriber" tag accepts only the "key" and "id" attributes, "%s" given for service "%s".', implode('", "', array_keys($attributes)), $this->currentId));
+                throw new InvalidArgumentException(\sprintf('The "container.service_subscriber" tag accepts only the "key" and "id" attributes, "%s" given for service "%s".', implode('", "', array_keys($attributes)), $this->currentId));
             }
             if (!\array_key_exists('id', $attributes)) {
-                throw new InvalidArgumentException(sprintf('Missing "id" attribute on "container.service_subscriber" tag with key="%s" for service "%s".', $attributes['key'], $this->currentId));
+                throw new InvalidArgumentException(\sprintf('Missing "id" attribute on "container.service_subscriber" tag with key="%s" for service "%s".', $attributes['key'], $this->currentId));
             }
             if (!\array_key_exists('key', $attributes)) {
                 $attributes['key'] = $attributes['id'];
@@ -66,10 +66,10 @@
         $class = $value->getClass();
 
         if (!$r = $this->container->getReflectionClass($class)) {
-            throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $this->currentId));
+            throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $this->currentId));
         }
         if (!$r->isSubclassOf(ServiceSubscriberInterface::class)) {
-            throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $this->currentId, ServiceSubscriberInterface::class));
+            throw new InvalidArgumentException(\sprintf('Service "%s" must implement interface "%s".', $this->currentId, ServiceSubscriberInterface::class));
         }
         $class = $r->name;
         // to remove when symfony/dependency-injection will stop being compatible with symfony/framework-bundle<6.0
@@ -87,11 +87,11 @@
             if ($type instanceof SubscribedService) {
                 $key = $type->key ?? $key;
                 $attributes = $type->attributes;
-                $type = ($type->nullable ? '?' : '').($type->type ?? throw new InvalidArgumentException(sprintf('When "%s::getSubscribedServices()" returns "%s", a type must be set.', $class, SubscribedService::class)));
+                $type = ($type->nullable ? '?' : '').($type->type ?? throw new InvalidArgumentException(\sprintf('When "%s::getSubscribedServices()" returns "%s", a type must be set.', $class, SubscribedService::class)));
             }
 
             if (!\is_string($type) || !preg_match('/(?(DEFINE)(?<cn>[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+))(?(DEFINE)(?<fqcn>(?&cn)(?:\\\\(?&cn))*+))^\??(?&fqcn)(?:(?:\|(?&fqcn))*+|(?:&(?&fqcn))*+)$/', $type)) {
-                throw new InvalidArgumentException(sprintf('"%s::getSubscribedServices()" must return valid PHP types for service "%s" key "%s", "%s" returned.', $class, $this->currentId, $key, \is_string($type) ? $type : get_debug_type($type)));
+                throw new InvalidArgumentException(\sprintf('"%s::getSubscribedServices()" must return valid PHP types for service "%s" key "%s", "%s" returned.', $class, $this->currentId, $key, \is_string($type) ? $type : get_debug_type($type)));
             }
             $optionalBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
             if ('?' === $type[0]) {
@@ -104,7 +104,7 @@
             }
             if (!isset($serviceMap[$key])) {
                 if (!$autowire) {
-                    throw new InvalidArgumentException(sprintf('Service "%s" misses a "container.service_subscriber" tag with "key"/"id" attributes corresponding to entry "%s" as returned by "%s::getSubscribedServices()".', $this->currentId, $key, $class));
+                    throw new InvalidArgumentException(\sprintf('Service "%s" misses a "container.service_subscriber" tag with "key"/"id" attributes corresponding to entry "%s" as returned by "%s::getSubscribedServices()".', $this->currentId, $key, $class));
                 }
                 if ($replaceDeprecatedSession && SessionInterface::class === $type) {
                     // This prevents triggering the deprecation when building the container
@@ -132,8 +132,8 @@
         }
 
         if ($serviceMap = array_keys($serviceMap)) {
-            $message = sprintf(1 < \count($serviceMap) ? 'keys "%s" do' : 'key "%s" does', str_replace('%', '%%', implode('", "', $serviceMap)));
-            throw new InvalidArgumentException(sprintf('Service %s not exist in the map returned by "%s::getSubscribedServices()" for service "%s".', $message, $class, $this->currentId));
+            $message = \sprintf(1 < \count($serviceMap) ? 'keys "%s" do' : 'key "%s" does', str_replace('%', '%%', implode('", "', $serviceMap)));
+            throw new InvalidArgumentException(\sprintf('Service %s not exist in the map returned by "%s::getSubscribedServices()" for service "%s".', $message, $class, $this->currentId));
         }
 
         $locatorRef = ServiceLocatorTagPass::register($this->container, $subscriberMap, $this->currentId);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,8 +27,9 @@
     {
         foreach ($container->getDefinitions() as $id => $definition) {
             if ($definition->isAbstract()) {
+                $container->resolveEnvPlaceholders($definition);
                 $container->removeDefinition($id);
-                $container->log($this, sprintf('Removed service "%s"; reason: abstract.', $id));
+                $container->log($this, \sprintf('Removed service "%s"; reason: abstract.', $id));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveBuildParametersPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveBuildParametersPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveBuildParametersPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveBuildParametersPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,11 @@
      */
     private array $removedParameters = [];
 
+    public function __construct(
+        private bool $preserveArrays = false,
+    ) {
+    }
+
     /**
      * @return void
      */
@@ -29,11 +34,15 @@
         $this->removedParameters = [];
 
         foreach ($parameterBag->all() as $name => $value) {
-            if ('.' === ($name[0] ?? '')) {
+            if ('.' !== ($name[0] ?? '')) {
+                continue;
+            }
+            if (!$this->preserveArrays || !\is_array($value)) {
                 $this->removedParameters[$name] = $value;
-
                 $parameterBag->remove($name);
-                $container->log($this, sprintf('Removing build parameter "%s".', $name));
+                $container->log($this, \sprintf('Removing build parameter "%s".', $name));
+            } else {
+                $container->log($this, \sprintf('Keeping array build parameter "%s" for placeholder resolution.', $name));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
             }
 
             $container->removeAlias($id);
-            $container->log($this, sprintf('Removed service "%s"; reason: private alias.', $id));
+            $container->log($this, \sprintf('Removed service "%s"; reason: private alias.', $id));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveUnusedDefinitionsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveUnusedDefinitionsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveUnusedDefinitionsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/RemoveUnusedDefinitionsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
                 if (!isset($connectedIds[$id])) {
                     $container->removeDefinition($id);
                     $container->resolveEnvPlaceholders(!$definition->hasErrors() ? serialize($definition) : $definition);
-                    $container->log($this, sprintf('Removed service "%s"; reason: unused.', $id));
+                    $container->log($this, \sprintf('Removed service "%s"; reason: unused.', $id));
                 }
             }
         } finally {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,15 @@
         $seenAliasTargets = [];
         $replacements = [];
 
-        foreach ($container->getAliases() as $definitionId => $target) {
+        // Sort aliases so non-deprecated ones come first. This ensures that when
+        // multiple aliases point to the same private definition, non-deprecated
+        // aliases get priority for renaming. Otherwise, the definition might be
+        // renamed to a deprecated alias ID, causing the original service ID to
+        // become an alias to the deprecated one (inverting the alias chain).
+        $aliases = $container->getAliases();
+        uasort($aliases, static fn ($a, $b) => $a->isDeprecated() <=> $b->isDeprecated());
+
+        foreach ($aliases as $definitionId => $target) {
             $targetId = (string) $target;
             // Special case: leave this target alone
             if ('service_container' === $targetId) {
@@ -95,7 +103,7 @@
             // Perform the replacement
             $newId = $this->replacements[$referenceId];
             $value = new Reference($newId, $value->getInvalidBehavior());
-            $this->container->log($this, sprintf('Changed reference of service "%s" previously pointing to "%s" to "%s".', $this->currentId, $referenceId, $newId));
+            $this->container->log($this, \sprintf('Changed reference of service "%s" previously pointing to "%s" to "%s".', $this->currentId, $referenceId, $newId));
         }
 
         return parent::processValue($value, $isRoot);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveBindingsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveBindingsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveBindingsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveBindingsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,11 +58,11 @@
                 }
 
                 if ($argumentType) {
-                    $message .= sprintf('of type "%s" ', $argumentType);
+                    $message .= \sprintf('of type "%s" ', $argumentType);
                 }
 
                 if ($argumentName) {
-                    $message .= sprintf('named "%s" ', $argumentName);
+                    $message .= \sprintf('named "%s" ', $argumentName);
                 }
 
                 if (BoundArgument::DEFAULTS_BINDING === $bindingType) {
@@ -70,17 +70,17 @@
                 } elseif (BoundArgument::INSTANCEOF_BINDING === $bindingType) {
                     $message .= 'under "_instanceof"';
                 } else {
-                    $message .= sprintf('for service "%s"', $serviceId);
+                    $message .= \sprintf('for service "%s"', $serviceId);
                 }
 
                 if ($file) {
-                    $message .= sprintf(' in file "%s"', $file);
+                    $message .= \sprintf(' in file "%s"', $file);
                 }
 
-                $message = sprintf('A binding is configured for an argument %s, but no corresponding argument has been found. It may be unused and should be removed, or it may have a typo.', $message);
+                $message = \sprintf('A binding is configured for an argument %s, but no corresponding argument has been found. It may be unused and should be removed, or it may have a typo.', $message);
 
                 if ($this->errorMessages) {
-                    $message .= sprintf("\nCould be related to%s:", 1 < \count($this->errorMessages) ? ' one of' : '');
+                    $message .= \sprintf("\nCould be related to%s:", 1 < \count($this->errorMessages) ? ' one of' : '');
                 }
                 foreach ($this->errorMessages as $m) {
                     $message .= "\n - ".$m;
@@ -121,10 +121,10 @@
         foreach ($bindings as $key => $binding) {
             [$bindingValue, $bindingId, $used, $bindingType, $file] = $binding->getValues();
             if ($used) {
-                $this->usedBindings[$bindingId] = true;
-                unset($this->unusedBindings[$bindingId]);
-            } elseif (!isset($this->usedBindings[$bindingId])) {
-                $this->unusedBindings[$bindingId] = [$key, $this->currentId, $bindingType, $file];
+                $this->usedBindings[$bindingId ?? ''] = true;
+                unset($this->unusedBindings[$bindingId ?? '']);
+            } elseif (!isset($this->usedBindings[$bindingId ?? ''])) {
+                $this->unusedBindings[$bindingId ?? ''] = [$key, $this->currentId, $bindingType, $file];
             }
 
             if (preg_match('/^(?:(?:array|bool|float|int|string|iterable|([^ $]++)) )\$/', $key, $m)) {
@@ -141,7 +141,7 @@
             }
 
             if (null !== $bindingValue && !$bindingValue instanceof Reference && !$bindingValue instanceof Definition && !$bindingValue instanceof TaggedIteratorArgument && !$bindingValue instanceof ServiceLocatorArgument) {
-                throw new InvalidArgumentException(sprintf('Invalid value for binding key "%s" for service "%s": expected "%s", "%s", "%s", "%s" or null, "%s" given.', $key, $this->currentId, Reference::class, Definition::class, TaggedIteratorArgument::class, ServiceLocatorArgument::class, get_debug_type($bindingValue)));
+                throw new InvalidArgumentException(\sprintf('Invalid value for binding key "%s" for service "%s": expected "%s", "%s", "%s", "%s" or null, "%s" given.', $key, $this->currentId, Reference::class, Definition::class, TaggedIteratorArgument::class, ServiceLocatorArgument::class, get_debug_type($bindingValue)));
             }
         }
 
@@ -222,16 +222,16 @@
                     continue;
                 }
 
-                if (isset($bindingNames[$name]) || isset($bindingNames[$parsedName]) || isset($bindingNames[$parameter->name])) {
+                if (null !== $binding = $bindingNames[$name] ?? $bindingNames[$parsedName] ?? $bindingNames[$parameter->name] ?? null) {
                     $bindingKey = array_search($binding, $bindings, true);
                     $argumentType = substr($bindingKey, 0, strpos($bindingKey, ' '));
-                    $this->errorMessages[] = sprintf('Did you forget to add the type "%s" to argument "$%s" of method "%s::%s()"?', $argumentType, $parameter->name, $reflectionMethod->class, $reflectionMethod->name);
+                    $this->errorMessages[] = \sprintf('Did you forget to add the type "%s" to argument "$%s" of method "%s::%s()"?', $argumentType, $parameter->name, $reflectionMethod->class, $reflectionMethod->name);
                 }
             }
 
             foreach ($names as $key => $name) {
                 if (\array_key_exists($name, $arguments) && (0 === $key || \array_key_exists($key - 1, $arguments))) {
-                    if (!array_key_exists($key, $arguments)) {
+                    if (!\array_key_exists($key, $arguments)) {
                         $arguments[$key] = $arguments[$name];
                     }
                     unset($arguments[$name]);
@@ -263,8 +263,8 @@
     {
         [$bindingValue, $bindingId] = $binding->getValues();
 
-        $this->usedBindings[$bindingId] = true;
-        unset($this->unusedBindings[$bindingId]);
+        $this->usedBindings[$bindingId ?? ''] = true;
+        unset($this->unusedBindings[$bindingId ?? '']);
 
         return $bindingValue;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveChildDefinitionsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveChildDefinitionsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveChildDefinitionsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveChildDefinitionsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,7 +65,7 @@
             throw $e;
         } catch (ExceptionInterface $e) {
             $r = new \ReflectionProperty($e, 'message');
-            $r->setValue($e, sprintf('Service "%s": %s', $this->currentId, $e->getMessage()));
+            $r->setValue($e, \sprintf('Service "%s": %s', $this->currentId, $e->getMessage()));
 
             throw $e;
         }
@@ -74,7 +74,7 @@
     private function doResolveDefinition(ChildDefinition $definition): Definition
     {
         if (!$this->container->has($parent = $definition->getParent())) {
-            throw new RuntimeException(sprintf('Parent definition "%s" does not exist.', $parent));
+            throw new RuntimeException(\sprintf('Parent definition "%s" does not exist.', $parent));
         }
 
         $searchKey = array_search($parent, $this->currentPath);
@@ -93,7 +93,7 @@
             $this->currentId = $id;
         }
 
-        $this->container->log($this, sprintf('Resolving inheritance for "%s" (parent: %s).', $this->currentId, $parent));
+        $this->container->log($this, \sprintf('Resolving inheritance for "%s" (parent: %s).', $this->currentId, $parent));
         $def = new Definition();
 
         // merge in parent definition
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveClassPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveClassPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveClassPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveClassPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,15 +26,17 @@
     public function process(ContainerBuilder $container)
     {
         foreach ($container->getDefinitions() as $id => $definition) {
-            if ($definition->isSynthetic() || null !== $definition->getClass()) {
+            if ($definition->isSynthetic()
+                || $definition->hasErrors()
+                || null !== $definition->getClass()
+                || !preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)++$/', $id)
+            ) {
                 continue;
             }
-            if (preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)++$/', $id)) {
-                if ($definition instanceof ChildDefinition && !class_exists($id)) {
-                    throw new InvalidArgumentException(sprintf('Service definition "%s" has a parent but no class, and its name looks like an FQCN. Either the class is missing or you want to inherit it from the parent service. To resolve this ambiguity, please rename this service to a non-FQCN (e.g. using dots), or create the missing class.', $id));
-                }
-                $definition->setClass($id);
+            if ($definition instanceof ChildDefinition && !class_exists($id)) {
+                throw new InvalidArgumentException(\sprintf('Service definition "%s" has a parent but no class, and its name looks like an FQCN. Either the class is missing or you want to inherit it from the parent service. To resolve this ambiguity, please rename this service to a non-FQCN (e.g. using dots), or create the missing class.', $id));
             }
+            $definition->setClass($id);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveDecoratorStackPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveDecoratorStackPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveDecoratorStackPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveDecoratorStackPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,11 +35,11 @@
             $definition = $container->getDefinition($id);
 
             if (!$definition instanceof ChildDefinition) {
-                throw new InvalidArgumentException(sprintf('Invalid service "%s": only definitions with a "parent" can have the "container.stack" tag.', $id));
+                throw new InvalidArgumentException(\sprintf('Invalid service "%s": only definitions with a "parent" can have the "container.stack" tag.', $id));
             }
 
             if (!$stack = $definition->getArguments()) {
-                throw new InvalidArgumentException(sprintf('Invalid service "%s": the stack of decorators is empty.', $id));
+                throw new InvalidArgumentException(\sprintf('Invalid service "%s": the stack of decorators is empty.', $id));
             }
 
             $stacks[$id] = $stack;
@@ -99,7 +99,7 @@
             } elseif ($definition instanceof Reference || $definition instanceof Alias) {
                 $path[] = (string) $definition;
             } else {
-                throw new InvalidArgumentException(sprintf('Invalid service "%s": unexpected value of type "%s" found in the stack of decorators.', $id, get_debug_type($definition)));
+                throw new InvalidArgumentException(\sprintf('Invalid service "%s": unexpected value of type "%s" found in the stack of decorators.', $id, get_debug_type($definition)));
             }
 
             $p = $prefix.$k;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveFactoryClassPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveFactoryClassPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveFactoryClassPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveFactoryClassPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
     {
         if ($value instanceof Definition && \is_array($factory = $value->getFactory()) && null === $factory[0]) {
             if (null === $class = $value->getClass()) {
-                throw new RuntimeException(sprintf('The "%s" service is defined to be created by a factory, but is missing the factory class. Did you forget to define the factory or service class?', $this->currentId));
+                throw new RuntimeException(\sprintf('The "%s" service is defined to be created by a factory, but is missing the factory class. Did you forget to define the factory or service class?', $this->currentId));
             }
 
             $factory[0] = $class;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveHotPathPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveHotPathPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveHotPathPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveHotPathPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
                 return $value->clearTag('container.hot_path');
             }
 
-            $this->resolvedIds[$this->currentId] = true;
+            $this->resolvedIds[$this->currentId ?? ''] = true;
 
             if (!$value->hasTag('container.hot_path')) {
                 return $value;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveInstanceofConditionalsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveInstanceofConditionalsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveInstanceofConditionalsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveInstanceofConditionalsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
     {
         foreach ($container->getAutoconfiguredInstanceof() as $interface => $definition) {
             if ($definition->getArguments()) {
-                throw new InvalidArgumentException(sprintf('Autoconfigured instanceof for type "%s" defines arguments but these are not supported and should be removed.', $interface));
+                throw new InvalidArgumentException(\sprintf('Autoconfigured instanceof for type "%s" defines arguments but these are not supported and should be removed.', $interface));
             }
         }
 
@@ -85,7 +85,7 @@
                 /** @var ChildDefinition $instanceofDef */
                 $instanceofDef = clone $instanceofDef;
                 $instanceofDef->setAbstract(true)->setParent($parent ?: '.abstract.instanceof.'.$id);
-                $parent = '.instanceof.'.$interface.'.'.$key.'.'.$id;
+                $parent = '.instanceof.'.strtr($interface, "\0\r\n", '---').'.'.$key.'.'.$id;
                 $container->setDefinition($parent, $instanceofDef);
                 $instanceofTags[] = [$interface, $instanceofDef->getTags()];
                 $instanceofBindings = $instanceofDef->getBindings() + $instanceofBindings;
@@ -158,12 +158,12 @@
     private function mergeConditionals(array $autoconfiguredInstanceof, array $instanceofConditionals, ContainerBuilder $container): array
     {
         // make each value an array of ChildDefinition
-        $conditionals = array_map(fn ($childDef) => [$childDef], $autoconfiguredInstanceof);
+        $conditionals = array_map(static fn ($childDef) => [$childDef], $autoconfiguredInstanceof);
 
         foreach ($instanceofConditionals as $interface => $instanceofDef) {
             // make sure the interface/class exists (but don't validate automaticInstanceofConditionals)
             if (!$container->getReflectionClass($interface)) {
-                throw new RuntimeException(sprintf('"%s" is set as an "instanceof" conditional, but it does not exist.', $interface));
+                throw new RuntimeException(\sprintf('"%s" is set as an "instanceof" conditional, but it does not exist.', $interface));
             }
 
             if (!isset($autoconfiguredInstanceof[$interface])) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -114,7 +114,7 @@
                 $e = new ServiceNotFoundException($id, $this->currentId);
 
                 // since the error message varies by $id and $this->currentId, so should the id of the dummy errored definition
-                $this->container->register($id = sprintf('.errored.%s.%s', $this->currentId, $id), $value->getType())
+                $this->container->register($id = \sprintf('.errored.%s.%s', $this->currentId, $id), $value->getType())
                     ->addError($e->getMessage());
 
                 return new TypedReference($id, $value->getType(), $value->getInvalidBehavior());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveNamedArgumentsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveNamedArgumentsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveNamedArgumentsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveNamedArgumentsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
     protected function processValue(mixed $value, bool $isRoot = false): mixed
     {
         if ($value instanceof AbstractArgument && $value->getText().'.' === $value->getTextWithContext()) {
-            $value->setContext(sprintf('A value found in service "%s"', $this->currentId));
+            $value->setContext(\sprintf('A value found in service "%s"', $this->currentId));
         }
 
         if (!$value instanceof Definition) {
@@ -47,7 +47,7 @@
 
             foreach ($arguments as $key => $argument) {
                 if ($argument instanceof AbstractArgument && $argument->getText().'.' === $argument->getTextWithContext()) {
-                    $argument->setContext(sprintf('Argument '.(\is_int($key) ? 1 + $key : '"%3$s"').' of '.('__construct' === $method ? 'service "%s"' : 'method call "%s::%s()"'), $this->currentId, $method, $key));
+                    $argument->setContext(\sprintf('Argument '.(\is_int($key) ? 1 + $key : '"%3$s"').' of '.('__construct' === $method ? 'service "%s"' : 'method call "%s::%s()"'), $this->currentId, $method, $key));
                 }
 
                 if (\is_int($key)) {
@@ -64,7 +64,7 @@
                 }
 
                 if (isset($key[0]) && '$' !== $key[0] && !class_exists($key) && !interface_exists($key, false)) {
-                    throw new InvalidArgumentException(sprintf('Invalid service "%s": did you forget to add the "$" prefix to argument "%s"?', $this->currentId, $key));
+                    throw new InvalidArgumentException(\sprintf('Invalid service "%s": did you forget to add the "$" prefix to argument "%s"?', $this->currentId, $key));
                 }
 
                 if (isset($key[0]) && '$' === $key[0]) {
@@ -84,11 +84,11 @@
                         }
                     }
 
-                    throw new InvalidArgumentException(sprintf('Invalid service "%s": method "%s()" has no argument named "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method, $key));
+                    throw new InvalidArgumentException(\sprintf('Invalid service "%s": method "%s()" has no argument named "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method, $key));
                 }
 
                 if (null !== $argument && !$argument instanceof Reference && !$argument instanceof Definition) {
-                    throw new InvalidArgumentException(sprintf('Invalid service "%s": the value of argument "%s" of method "%s()" must be null, an instance of "%s" or an instance of "%s", "%s" given.', $this->currentId, $key, $class !== $this->currentId ? $class.'::'.$method : $method, Reference::class, Definition::class, get_debug_type($argument)));
+                    throw new InvalidArgumentException(\sprintf('Invalid service "%s": the value of argument "%s" of method "%s()" must be null, an instance of "%s" or an instance of "%s", "%s" given.', $this->currentId, $key, $class !== $this->currentId ? $class.'::'.$method : $method, Reference::class, Definition::class, get_debug_type($argument)));
                 }
 
                 $typeFound = false;
@@ -101,7 +101,7 @@
                 }
 
                 if (!$typeFound) {
-                    throw new InvalidArgumentException(sprintf('Invalid service "%s": method "%s()" has no argument type-hinted as "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method, $key));
+                    throw new InvalidArgumentException(\sprintf('Invalid service "%s": method "%s()" has no argument type-hinted as "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method, $key));
                 }
             }
 
@@ -128,7 +128,7 @@
 
         foreach ($value->getProperties() as $key => $argument) {
             if ($argument instanceof AbstractArgument && $argument->getText().'.' === $argument->getTextWithContext()) {
-                $argument->setContext(sprintf('Property "%s" of service "%s"', $key, $this->currentId));
+                $argument->setContext(\sprintf('Property "%s" of service "%s"', $key, $this->currentId));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,11 @@
             $this->currentId = $id;
 
             if ($aliasId !== $defId = $this->getDefinitionId($aliasId, $container)) {
-                $container->setAlias($id, $defId)->setPublic($alias->isPublic());
+                $newAlias = $container->setAlias($id, $defId)->setPublic($alias->isPublic());
+
+                if ($alias->isDeprecated()) {
+                    $newAlias->setDeprecated(...array_values($alias->getDeprecation('%alias_id%')));
+                }
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceLocatorTagPass.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceLocatorTagPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceLocatorTagPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceLocatorTagPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,8 +35,12 @@
     protected function processValue(mixed $value, bool $isRoot = false): mixed
     {
         if ($value instanceof ServiceLocatorArgument) {
-            if ($value->getTaggedIteratorArgument()) {
-                $value->setValues($this->findAndSortTaggedServices($value->getTaggedIteratorArgument(), $this->container));
+            if ($taggedIterator = $value->getTaggedIteratorArgument()) {
+                $exclude = $taggedIterator->getExclude();
+                if ($taggedIterator->excludeSelf()) {
+                    $exclude[] = $this->currentId;
+                }
+                $value->setValues($this->findAndSortTaggedServices($taggedIterator, $this->container, $exclude));
             }
 
             return self::register($this->container, $value->getValues());
@@ -61,7 +65,7 @@
         }
 
         if (!\is_array($services)) {
-            throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": an array of references is expected as first argument when the "container.service_locator" tag is set.', $this->currentId));
+            throw new InvalidArgumentException(\sprintf('Invalid definition for service "%s": an array of references is expected as first argument when the "container.service_locator" tag is set.', $this->currentId));
         }
 
         $i = 0;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,8 +26,9 @@
     private bool $lazy;
     private bool $weak;
     private bool $byConstructor;
+    private bool $byMultiUseArgument;
 
-    public function __construct(ServiceReferenceGraphNode $sourceNode, ServiceReferenceGraphNode $destNode, mixed $value = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false)
+    public function __construct(ServiceReferenceGraphNode $sourceNode, ServiceReferenceGraphNode $destNode, mixed $value = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false, bool $byMultiUseArgument = false)
     {
         $this->sourceNode = $sourceNode;
         $this->destNode = $destNode;
@@ -35,6 +36,7 @@
         $this->lazy = $lazy;
         $this->weak = $weak;
         $this->byConstructor = $byConstructor;
+        $this->byMultiUseArgument = $byMultiUseArgument;
     }
 
     /**
@@ -84,4 +86,9 @@
     {
         return $this->byConstructor;
     }
+
+    public function isFromMultiUseArgument(): bool
+    {
+        return $this->byMultiUseArgument;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
     public function getNode(string $id): ServiceReferenceGraphNode
     {
         if (!isset($this->nodes[$id])) {
-            throw new InvalidArgumentException(sprintf('There is no node with id "%s".', $id));
+            throw new InvalidArgumentException(\sprintf('There is no node with id "%s".', $id));
         }
 
         return $this->nodes[$id];
@@ -74,7 +74,7 @@
     /**
      * Connects 2 nodes together in the Graph.
      */
-    public function connect(?string $sourceId, mixed $sourceValue, ?string $destId, mixed $destValue = null, ?Reference $reference = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false): void
+    public function connect(?string $sourceId, mixed $sourceValue, ?string $destId, mixed $destValue = null, ?Reference $reference = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false, bool $byMultiUseArgument = false): void
     {
         if (null === $sourceId || null === $destId) {
             return;
@@ -82,7 +82,7 @@
 
         $sourceNode = $this->createNode($sourceId, $sourceValue);
         $destNode = $this->createNode($destId, $destValue);
-        $edge = new ServiceReferenceGraphEdge($sourceNode, $destNode, $reference, $lazy, $weak, $byConstructor);
+        $edge = new ServiceReferenceGraphEdge($sourceNode, $destNode, $reference, $lazy, $weak, $byConstructor, $byMultiUseArgument);
 
         $sourceNode->addOutEdge($edge);
         $destNode->addInEdge($edge);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ContainerBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ContainerBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ContainerBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ContainerBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,6 +57,11 @@
 class ContainerBuilder extends Container implements TaggedContainerInterface
 {
     /**
+     * Regexp to match anonymous service IDs generated by the DI loaders.
+     */
+    public const ANONYMOUS_ID_REGEXP = '/^\.\d+_[^~]*+~[._a-zA-Z\d]{7}$/';
+
+    /**
      * @var array<string, ExtensionInterface>
      */
     private array $extensions = [];
@@ -207,7 +212,7 @@
         $this->extensions[$extension->getAlias()] = $extension;
 
         if (false !== $extension->getNamespace()) {
-            $this->extensionsByNs[$extension->getNamespace()] = $extension;
+            $this->extensionsByNs[$extension->getNamespace() ?? ''] = $extension;
         }
     }
 
@@ -226,7 +231,7 @@
             return $this->extensionsByNs[$name];
         }
 
-        throw new LogicException(sprintf('Container extension "%s" is not registered.', $name));
+        throw new LogicException(\sprintf('Container extension "%s" is not registered.', $name));
     }
 
     /**
@@ -488,7 +493,7 @@
     {
         if ($this->isCompiled() && (isset($this->definitions[$id]) && !$this->definitions[$id]->isSynthetic())) {
             // setting a synthetic service on a compiled container is alright
-            throw new BadMethodCallException(sprintf('Setting service "%s" for an unknown or non-synthetic service definition on a compiled container is not allowed.', $id));
+            throw new BadMethodCallException(\sprintf('Setting service "%s" for an unknown or non-synthetic service definition on a compiled container is not allowed.', $id));
         }
 
         unset($this->definitions[$id], $this->aliasDefinitions[$id], $this->removedIds[$id]);
@@ -669,7 +674,7 @@
 
         foreach ($container->getAutoconfiguredInstanceof() as $interface => $childDefinition) {
             if (isset($this->autoconfiguredInstanceof[$interface])) {
-                throw new InvalidArgumentException(sprintf('"%s" has already been autoconfigured and merge() does not support merging autoconfiguration for the same class/interface.', $interface));
+                throw new InvalidArgumentException(\sprintf('"%s" has already been autoconfigured and merge() does not support merging autoconfiguration for the same class/interface.', $interface));
             }
 
             $this->autoconfiguredInstanceof[$interface] = $childDefinition;
@@ -677,7 +682,7 @@
 
         foreach ($container->getAutoconfiguredAttributes() as $attribute => $configurator) {
             if (isset($this->autoconfiguredAttributes[$attribute])) {
-                throw new InvalidArgumentException(sprintf('"%s" has already been autoconfigured and merge() does not support merging autoconfiguration for the same attribute.', $attribute));
+                throw new InvalidArgumentException(\sprintf('"%s" has already been autoconfigured and merge() does not support merging autoconfiguration for the same attribute.', $attribute));
             }
 
             $this->autoconfiguredAttributes[$attribute] = $configurator;
@@ -722,7 +727,7 @@
     public function deprecateParameter(string $name, string $package, string $version, string $message = 'The parameter "%s" is deprecated.'): void
     {
         if (!$this->parameterBag instanceof ParameterBag) {
-            throw new BadMethodCallException(sprintf('The parameter bag must be an instance of "%s" to call "%s".', ParameterBag::class, __METHOD__));
+            throw new BadMethodCallException(\sprintf('The parameter bag must be an instance of "%s" to call "%s".', ParameterBag::class, __METHOD__));
         }
 
         $this->parameterBag->deprecate($name, $package, $version, $message);
@@ -742,10 +747,11 @@
      *  * The parameter bag is frozen;
      *  * Extension loading is disabled.
      *
-     * @param bool $resolveEnvPlaceholders Whether %env()% parameters should be resolved using the current
-     *                                     env vars or be replaced by uniquely identifiable placeholders.
-     *                                     Set to "true" when you want to use the current ContainerBuilder
-     *                                     directly, keep to "false" when the container is dumped instead.
+     * @param bool $resolveEnvPlaceholders Whether %env()% parameters should be resolved at build time using
+     *                                     the current env var values (true), or be resolved at runtime based
+     *                                     on the environment (false). In general, this should be set to "true"
+     *                                     when you want to use the current ContainerBuilder directly, and to
+     *                                     "false" when the container is dumped instead.
      *
      * @return void
      */
@@ -776,7 +782,7 @@
 
         if ($bag instanceof EnvPlaceholderParameterBag) {
             if ($resolveEnvPlaceholders) {
-                $this->parameterBag = new ParameterBag($this->resolveEnvPlaceholders($bag->all(), true));
+                $this->parameterBag = new ParameterBag($this->resolveEnvPlaceholders($this->escapeParameters($bag->all()), true));
             }
 
             $this->envPlaceholders = $bag->getEnvPlaceholders();
@@ -842,7 +848,7 @@
     public function setAlias(string $alias, string|Alias $id): Alias
     {
         if ('' === $alias || '\\' === $alias[-1] || \strlen($alias) !== strcspn($alias, "\0\r\n'")) {
-            throw new InvalidArgumentException(sprintf('Invalid alias id: "%s".', $alias));
+            throw new InvalidArgumentException(\sprintf('Invalid alias id: "%s".', $alias));
         }
 
         if (\is_string($id)) {
@@ -850,7 +856,7 @@
         }
 
         if ($alias === (string) $id) {
-            throw new InvalidArgumentException(sprintf('An alias cannot reference itself, got a circular reference on "%s".', $alias));
+            throw new InvalidArgumentException(\sprintf('An alias cannot reference itself, got a circular reference on "%s".', $alias));
         }
 
         unset($this->definitions[$alias], $this->removedIds[$alias]);
@@ -888,7 +894,7 @@
     public function getAlias(string $id): Alias
     {
         if (!isset($this->aliasDefinitions[$id])) {
-            throw new InvalidArgumentException(sprintf('The service alias "%s" does not exist.', $id));
+            throw new InvalidArgumentException(\sprintf('The service alias "%s" does not exist.', $id));
         }
 
         return $this->aliasDefinitions[$id];
@@ -965,7 +971,7 @@
         }
 
         if ('' === $id || '\\' === $id[-1] || \strlen($id) !== strcspn($id, "\0\r\n'")) {
-            throw new InvalidArgumentException(sprintf('Invalid service id: "%s".', $id));
+            throw new InvalidArgumentException(\sprintf('Invalid service id: "%s".', $id));
         }
 
         unset($this->aliasDefinitions[$id], $this->removedIds[$id]);
@@ -1036,11 +1042,11 @@
         }
 
         if ($definition instanceof ChildDefinition) {
-            throw new RuntimeException(sprintf('Constructing service "%s" from a parent definition is not supported at build time.', $id));
+            throw new RuntimeException(\sprintf('Constructing service "%s" from a parent definition is not supported at build time.', $id));
         }
 
         if ($definition->isSynthetic()) {
-            throw new RuntimeException(sprintf('You have requested a synthetic service ("%s"). The DIC does not know how to construct this service.', $id));
+            throw new RuntimeException(\sprintf('You have requested a synthetic service ("%s"). The DIC does not know how to construct this service.', $id));
         }
 
         if ($definition->isDeprecated()) {
@@ -1059,14 +1065,15 @@
             }
 
             if (\is_array($callable) && (
-                $callable[0] instanceof Reference
+                'Closure' !== $class
+                || $callable[0] instanceof Reference
                 || $callable[0] instanceof Definition && !isset($inlineServices[spl_object_hash($callable[0])])
             )) {
                 $initializer = function () use ($callable, &$inlineServices) {
                     return $this->doResolveServices($callable[0], $inlineServices);
                 };
 
-                $proxy = eval('return '.LazyClosure::getCode('$initializer', $callable, $definition, $this, $id).';');
+                $proxy = eval('return '.LazyClosure::getCode('$initializer', $callable, $class, $this, $id).';');
                 $this->shareService($definition, $proxy, $id, $inlineServices);
 
                 return $proxy;
@@ -1100,7 +1107,7 @@
             if (\is_array($factory)) {
                 $factory = [$this->doResolveServices($parameterBag->resolveValue($factory[0]), $inlineServices, $isConstructorArgument), $factory[1]];
             } elseif (!\is_string($factory)) {
-                throw new RuntimeException(sprintf('Cannot create service "%s" because of invalid factory.', $id));
+                throw new RuntimeException(\sprintf('Cannot create service "%s" because of invalid factory.', $id));
             } elseif (str_starts_with($factory, '@=')) {
                 $factory = fn (ServiceLocator $arguments) => $this->getExpressionLanguage()->evaluate(substr($factory, 2), ['container' => $this, 'args' => $arguments]);
                 $arguments = [new ServiceLocatorArgument($arguments)];
@@ -1114,7 +1121,7 @@
         }
 
         if (!array_is_list($arguments)) {
-            $arguments = array_combine(array_map(fn ($k) => preg_replace('/^.*\\$/', '', $k), array_keys($arguments)), $arguments);
+            $arguments = array_combine(array_map(static fn ($k) => preg_replace('/^.*\\$/', '', $k), array_keys($arguments)), $arguments);
         }
 
         if (null !== $factory) {
@@ -1123,7 +1130,7 @@
             if (!$definition->isDeprecated() && \is_array($factory) && \is_string($factory[0])) {
                 $r = new \ReflectionClass($factory[0]);
 
-                if (0 < strpos($r->getDocComment(), "\n * @deprecated ")) {
+                if (0 < strpos($r->getDocComment() ?: '', "\n * @deprecated ")) {
                     trigger_deprecation('', '', 'The "%s" service relies on the deprecated "%s" factory class. It should either be deprecated or its factory upgraded.', $id, $r->name);
                 }
             }
@@ -1140,7 +1147,7 @@
                 $service = $r->getConstructor() ? $r->newInstanceArgs($arguments) : $r->newInstance();
             }
 
-            if (!$definition->isDeprecated() && 0 < strpos($r->getDocComment(), "\n * @deprecated ")) {
+            if (!$definition->isDeprecated() && 0 < strpos($r->getDocComment() ?: '', "\n * @deprecated ")) {
                 trigger_deprecation('', '', 'The "%s" service relies on the deprecated "%s" class. It should either be deprecated or its implementation upgraded.', $id, $r->name);
             }
         }
@@ -1183,7 +1190,7 @@
             }
 
             if (!\is_callable($callable)) {
-                throw new InvalidArgumentException(sprintf('The configure callable for class "%s" is not a callable.', get_debug_type($service)));
+                throw new InvalidArgumentException(\sprintf('The configure callable for class "%s" is not a callable.', get_debug_type($service)));
             }
 
             $callable($service);
@@ -1292,7 +1299,7 @@
         foreach ($this->getDefinitions() as $id => $definition) {
             if ($definition->hasTag($name) && !$definition->hasTag('container.excluded')) {
                 if ($throwOnAbstract && $definition->isAbstract()) {
-                    throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must not be abstract.', $id, $name));
+                    throw new InvalidArgumentException(\sprintf('The service "%s" tagged "%s" must not be abstract.', $id, $name));
                 }
                 $tags[$id] = $definition->getTag($name);
             }
@@ -1386,10 +1393,10 @@
 
         if (!preg_match('/^[a-zA-Z_\x7f-\xff]/', $parsedName)) {
             if ($id !== $name) {
-                $id = sprintf(' for service "%s"', $id);
+                $id = \sprintf(' for service "%s"', $id);
             }
 
-            throw new InvalidArgumentException(sprintf('Invalid argument name "%s"'.$id.': the first character must be a letter.', $name));
+            throw new InvalidArgumentException(\sprintf('Invalid argument name "%s"'.$id.': the first character must be a letter.', $name));
         }
 
         if ($parsedName !== $name) {
@@ -1461,14 +1468,14 @@
                     if (true === $format) {
                         $resolved = $bag->escapeValue($this->getEnv($env));
                     } else {
-                        $resolved = sprintf($format, $env);
+                        $resolved = \sprintf($format, $env);
                     }
                     if ($placeholder === $value) {
                         $value = $resolved;
                         $completed = true;
                     } else {
                         if (!\is_string($resolved) && !is_numeric($resolved)) {
-                            throw new RuntimeException(sprintf('A string value must be composed of strings and/or numbers, but found parameter "env(%s)" of type "%s" inside string value "%s".', $env, get_debug_type($resolved), $this->resolveEnvPlaceholders($value)));
+                            throw new RuntimeException(\sprintf('A string value must be composed of strings and/or numbers, but found parameter "env(%s)" of type "%s" inside string value "%s".', $env, get_debug_type($resolved), $this->resolveEnvPlaceholders($value)));
                         }
                         $value = str_ireplace($placeholder, $resolved, $value);
                     }
@@ -1523,7 +1530,7 @@
     final public static function willBeAvailable(string $package, string $class, array $parentPackages): bool
     {
         if (!class_exists(InstalledVersions::class)) {
-            throw new \LogicException(sprintf('Calling "%s" when dependencies have been installed with Composer 1 is not supported. Consider upgrading to Composer 2.', __METHOD__));
+            throw new \LogicException(\sprintf('Calling "%s" when dependencies have been installed with Composer 1 is not supported. Consider upgrading to Composer 2.', __METHOD__));
         }
 
         if (!class_exists($class) && !interface_exists($class, false) && !trait_exists($class, false)) {
@@ -1726,4 +1733,18 @@
 
         return $this->pathsInVendor[$path] = false;
     }
+
+    private function escapeParameters(array $parameters): array
+    {
+        $params = [];
+        foreach ($parameters as $k => $v) {
+            $params[$k] = match (true) {
+                \is_array($v) => $this->escapeParameters($v),
+                \is_string($v) => str_replace('%', '%%', $v),
+                default => $v,
+            };
+        }
+
+        return $params;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Container.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Container.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Container.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Container.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
  *
  * It gives access to object instances (services).
  * Services and parameters are simple key/pair stores.
- * The container can have four possible behaviors when a service
+ * The container can have five possible behaviors when a service
  * does not exist (or is not initialized for the last case):
  *
  *  * EXCEPTION_ON_INVALID_REFERENCE: Throws an exception at compilation time (the default)
@@ -160,12 +160,12 @@
             if (isset($this->syntheticIds[$id]) || !isset($this->getRemovedIds()[$id])) {
                 // no-op
             } elseif (null === $service) {
-                throw new InvalidArgumentException(sprintf('The "%s" service is private, you cannot unset it.', $id));
+                throw new InvalidArgumentException(\sprintf('The "%s" service is private, you cannot unset it.', $id));
             } else {
-                throw new InvalidArgumentException(sprintf('The "%s" service is private, you cannot replace it.', $id));
+                throw new InvalidArgumentException(\sprintf('The "%s" service is private, you cannot replace it.', $id));
             }
         } elseif (isset($this->services[$id])) {
-            throw new InvalidArgumentException(sprintf('The "%s" service is already initialized, you cannot replace it.', $id));
+            throw new InvalidArgumentException(\sprintf('The "%s" service is already initialized, you cannot replace it.', $id));
         }
 
         if (isset($this->aliases[$id])) {
@@ -243,10 +243,10 @@
                 throw new ServiceNotFoundException($id);
             }
             if (isset($container->syntheticIds[$id])) {
-                throw new ServiceNotFoundException($id, null, null, [], sprintf('The "%s" service is synthetic, it needs to be set at boot time before it can be used.', $id));
+                throw new ServiceNotFoundException($id, null, null, [], \sprintf('The "%s" service is synthetic, it needs to be set at boot time before it can be used.', $id));
             }
             if (isset($container->getRemovedIds()[$id])) {
-                throw new ServiceNotFoundException($id, null, null, [], sprintf('The "%s" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead.', $id));
+                throw new ServiceNotFoundException($id, null, null, [], \sprintf('The "%s" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead.', $id));
             }
 
             $alternatives = [];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Definition.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Definition.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Definition.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Definition.php	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
     public function setDecoratedService(?string $id, ?string $renamedId = null, int $priority = 0, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE): static
     {
         if ($renamedId && $id === $renamedId) {
-            throw new InvalidArgumentException(sprintf('The decorated service inner name for "%s" must be different than the service name itself.', $id));
+            throw new InvalidArgumentException(\sprintf('The decorated service inner name for "%s" must be different than the service name itself.', $id));
         }
 
         $this->changes['decorated_service'] = true;
@@ -252,15 +252,15 @@
     public function replaceArgument(int|string $index, mixed $argument): static
     {
         if (0 === \count($this->arguments)) {
-            throw new OutOfBoundsException(sprintf('Cannot replace arguments for class "%s" if none have been configured yet.', $this->class));
+            throw new OutOfBoundsException(\sprintf('Cannot replace arguments for class "%s" if none have been configured yet.', $this->class));
         }
 
         if (\is_int($index) && ($index < 0 || $index > \count($this->arguments) - 1)) {
-            throw new OutOfBoundsException(sprintf('The index "%d" is not in the range [0, %d] of the arguments of class "%s".', $index, \count($this->arguments) - 1, $this->class));
+            throw new OutOfBoundsException(\sprintf('The index "%d" is not in the range [0, %d] of the arguments of class "%s".', $index, \count($this->arguments) - 1, $this->class));
         }
 
         if (!\array_key_exists($index, $this->arguments)) {
-            throw new OutOfBoundsException(sprintf('The argument "%s" doesn\'t exist in class "%s".', $index, $this->class));
+            throw new OutOfBoundsException(\sprintf('The argument "%s" doesn\'t exist in class "%s".', $index, $this->class));
         }
 
         $this->arguments[$index] = $argument;
@@ -296,7 +296,7 @@
     public function getArgument(int|string $index): mixed
     {
         if (!\array_key_exists($index, $this->arguments)) {
-            throw new OutOfBoundsException(sprintf('The argument "%s" doesn\'t exist in class "%s".', $index, $this->class));
+            throw new OutOfBoundsException(\sprintf('The argument "%s" doesn\'t exist in class "%s".', $index, $this->class));
         }
 
         return $this->arguments[$index];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,13 +34,13 @@
     private array $edges;
     // All values should be strings
     private array $options = [
-            'graph' => ['ratio' => 'compress'],
-            'node' => ['fontsize' => '11', 'fontname' => 'Arial', 'shape' => 'record'],
-            'edge' => ['fontsize' => '9', 'fontname' => 'Arial', 'color' => 'grey', 'arrowhead' => 'open', 'arrowsize' => '0.5'],
-            'node.instance' => ['fillcolor' => '#9999ff', 'style' => 'filled'],
-            'node.definition' => ['fillcolor' => '#eeeeee'],
-            'node.missing' => ['fillcolor' => '#ff9999', 'style' => 'filled'],
-        ];
+        'graph' => ['ratio' => 'compress'],
+        'node' => ['fontsize' => '11', 'fontname' => 'Arial', 'shape' => 'record'],
+        'edge' => ['fontsize' => '9', 'fontname' => 'Arial', 'color' => 'grey', 'arrowhead' => 'open', 'arrowsize' => '0.5'],
+        'node.instance' => ['fillcolor' => '#9999ff', 'style' => 'filled'],
+        'node.definition' => ['fillcolor' => '#eeeeee'],
+        'node.missing' => ['fillcolor' => '#ff9999', 'style' => 'filled'],
+    ];
 
     /**
      * Dumps the service container as a graphviz graph.
@@ -88,7 +88,7 @@
         foreach ($this->nodes as $id => $node) {
             $aliases = $this->getAliases($id);
 
-            $code .= sprintf("  node_%s [label=\"%s\\n%s\\n\", shape=%s%s];\n", $this->dotize($id), $id.($aliases ? ' ('.implode(', ', $aliases).')' : ''), $node['class'], $this->options['node']['shape'], $this->addAttributes($node['attributes']));
+            $code .= \sprintf("  node_%s [label=\"%s\\n%s\\n\", shape=%s%s];\n", $this->dotize($id), $id.($aliases ? ' ('.implode(', ', $aliases).')' : ''), $node['class'], $this->options['node']['shape'], $this->addAttributes($node['attributes']));
         }
 
         return $code;
@@ -99,7 +99,7 @@
         $code = '';
         foreach ($this->edges as $id => $edges) {
             foreach ($edges as $edge) {
-                $code .= sprintf("  node_%s -> node_%s [label=\"%s\" style=\"%s\"%s];\n", $this->dotize($id), $this->dotize($edge['to']), $edge['name'], $edge['required'] ? 'filled' : 'dashed', $edge['lazy'] ? ' color="#9999ff"' : '');
+                $code .= \sprintf("  node_%s -> node_%s [label=\"%s\" style=\"%s\"%s];\n", $this->dotize($id), $this->dotize($edge['to']), $edge['name'], $edge['required'] ? 'filled' : 'dashed', $edge['lazy'] ? ' color="#9999ff"' : '');
             }
         }
 
@@ -198,7 +198,7 @@
 
     private function startDot(): string
     {
-        return sprintf("digraph sc {\n  %s\n  node [%s];\n  edge [%s];\n\n",
+        return \sprintf("digraph sc {\n  %s\n  node [%s];\n  edge [%s];\n\n",
             $this->addOptions($this->options['graph']),
             $this->addOptions($this->options['node']),
             $this->addOptions($this->options['edge'])
@@ -214,7 +214,7 @@
     {
         $code = [];
         foreach ($attributes as $k => $v) {
-            $code[] = sprintf('%s="%s"', $k, $v);
+            $code[] = \sprintf('%s="%s"', $k, $v);
         }
 
         return $code ? ', '.implode(', ', $code) : '';
@@ -224,7 +224,7 @@
     {
         $code = [];
         foreach ($options as $k => $v) {
-            $code[] = sprintf('%s="%s"', $k, $v);
+            $code[] = \sprintf('%s="%s"', $k, $v);
         }
 
         return implode(' ', $code);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,6 @@
 use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface;
 use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\LazyServiceDumper;
 use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper;
-use Symfony\Component\DependencyInjection\Loader\FileLoader;
 use Symfony\Component\DependencyInjection\Parameter;
 use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
 use Symfony\Component\DependencyInjection\Reference;
@@ -185,7 +184,7 @@
         $this->class = $options['class'];
 
         if (!str_starts_with($baseClass = $options['base_class'], '\\') && 'Container' !== $baseClass) {
-            $baseClass = sprintf('%s\%s', $options['namespace'] ? '\\'.$options['namespace'] : '', $baseClass);
+            $baseClass = \sprintf('%s\%s', $options['namespace'] ? '\\'.$options['namespace'] : '', $baseClass);
             $this->baseClass = $baseClass;
         } elseif ('Container' === $baseClass) {
             $this->baseClass = Container::class;
@@ -217,7 +216,7 @@
                 $this->targetDirMaxMatches = $i - $lastOptionalDir;
 
                 while (--$i >= $lastOptionalDir) {
-                    $regex = sprintf('(%s%s)?', preg_quote(\DIRECTORY_SEPARATOR.$dir[$i], '#'), $regex);
+                    $regex = \sprintf('(%s%s)?', preg_quote(\DIRECTORY_SEPARATOR.$dir[$i], '#'), $regex);
                 }
 
                 do {
@@ -255,19 +254,19 @@
 
         if ($this->asFiles) {
             $fileTemplate = <<<EOF
-<?php
+                <?php
 
-use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+                use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
+                use Symfony\Component\DependencyInjection\ContainerInterface;
+                use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+
+                /*{$this->docStar}
+                 * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
+                 */
+                class %s extends {$options['class']}
+                {%s}
 
-/*{$this->docStar}
- * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
- */
-class %s extends {$options['class']}
-{%s}
-
-EOF;
+                EOF;
             $files = [];
             $preloadedFiles = [];
             $ids = $this->container->getRemovedIds();
@@ -287,7 +286,7 @@
 
             if (!$this->inlineFactories) {
                 foreach ($this->generateServiceFiles($services) as $file => [$c, $preload]) {
-                    $files[$file] = sprintf($fileTemplate, substr($file, 0, -4), $c);
+                    $files[$file] = \sprintf($fileTemplate, substr($file, 0, -4), $c);
 
                     if ($preload) {
                         $preloadedFiles[$file] = $file;
@@ -334,65 +333,65 @@
                 }
 
                 $code[$options['class'].'.preload.php'] = <<<EOF
-<?php
+                    <?php
 
-// This file has been auto-generated by the Symfony Dependency Injection Component
-// You can reference it in the "opcache.preload" php.ini setting on PHP >= 7.4 when preloading is desired
+                    // This file has been auto-generated by the Symfony Dependency Injection Component
+                    // You can reference it in the "opcache.preload" php.ini setting on PHP >= 7.4 when preloading is desired
 
-use Symfony\Component\DependencyInjection\Dumper\Preloader;
+                    use Symfony\Component\DependencyInjection\Dumper\Preloader;
 
-if (in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
-    return;
-}
+                    if (in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
+                        return;
+                    }
 
-require $autoloadFile;
-(require __DIR__.'/{$options['class']}.php')->set(\\Container{$hash}\\{$options['class']}::class, null);
-$preloadedFiles
-\$classes = [];
+                    require $autoloadFile;
+                    (require __DIR__.'/{$options['class']}.php')->set(\\Container{$hash}\\{$options['class']}::class, null);
+                    $preloadedFiles
+                    \$classes = [];
 
-EOF;
+                    EOF;
 
                 foreach ($this->preload as $class) {
                     if (!$class || str_contains($class, '$') || \in_array($class, ['int', 'float', 'string', 'bool', 'resource', 'object', 'array', 'null', 'callable', 'iterable', 'mixed', 'void', 'never'], true)) {
                         continue;
                     }
                     if (!(class_exists($class, false) || interface_exists($class, false) || trait_exists($class, false)) || (new \ReflectionClass($class))->isUserDefined()) {
-                        $code[$options['class'].'.preload.php'] .= sprintf("\$classes[] = '%s';\n", $class);
+                        $code[$options['class'].'.preload.php'] .= \sprintf("\$classes[] = '%s';\n", $class);
                     }
                 }
 
                 $code[$options['class'].'.preload.php'] .= <<<'EOF'
 
-$preloaded = Preloader::preload($classes);
+                    $preloaded = Preloader::preload($classes);
 
-EOF;
+                    EOF;
             }
 
             $code[$options['class'].'.php'] = <<<EOF
-<?php
-{$namespaceLine}
-// This file has been auto-generated by the Symfony Dependency Injection Component for internal use.
-
-if (\\class_exists(\\Container{$hash}\\{$options['class']}::class, false)) {
-    // no-op
-} elseif (!include __DIR__.'/Container{$hash}/{$options['class']}.php') {
-    touch(__DIR__.'/Container{$hash}.legacy');
-
-    return;
-}
-
-if (!\\class_exists({$options['class']}::class, false)) {
-    \\class_alias(\\Container{$hash}\\{$options['class']}::class, {$options['class']}::class, false);
-}
-
-return new \\Container{$hash}\\{$options['class']}([
-    'container.build_hash' => '$hash',
-    'container.build_id' => '$id',
-    'container.build_time' => $time,
-    'container.runtime_mode' => \\in_array(\\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) ? 'web=0' : 'web=1',
-], __DIR__.\\DIRECTORY_SEPARATOR.'Container{$hash}');
+                <?php
+                {$namespaceLine}
+                // This file has been auto-generated by the Symfony Dependency Injection Component for internal use.
+
+                if (\\class_exists(\\Container{$hash}\\{$options['class']}::class, false)) {
+                    // no-op
+                } elseif (!include __DIR__.'/Container{$hash}/{$options['class']}.php') {
+                    touch(__DIR__.'/Container{$hash}.legacy');
+
+                    return;
+                }
+
+                if (!\\class_exists({$options['class']}::class, false)) {
+                    \\class_alias(\\Container{$hash}\\{$options['class']}::class, {$options['class']}::class, false);
+                }
 
-EOF;
+                return new \\Container{$hash}\\{$options['class']}([
+                    'container.build_hash' => '$hash',
+                    'container.build_id' => '$id',
+                    'container.build_time' => $time,
+                    'container.runtime_mode' => \\in_array(\\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) ? 'web=0' : 'web=1',
+                ], __DIR__.\\DIRECTORY_SEPARATOR.'Container{$hash}');
+
+                EOF;
         } else {
             $code .= $this->endClass();
             foreach ($proxyClasses as $c) {
@@ -458,7 +457,7 @@
         foreach ($edges as $edge) {
             $node = $edge->getDestNode();
             $id = $node->getId();
-            if ($sourceId === $id || !$node->getValue() instanceof Definition || $edge->isWeak()) {
+            if (($sourceId === $id && !$edge->isLazy()) || !$node->getValue() instanceof Definition || $edge->isWeak()) {
                 continue;
             }
 
@@ -542,7 +541,7 @@
             return;
         }
         $file = $r->getFileName();
-        if (str_ends_with($file, ') : eval()\'d code')) {
+        if ($file && str_ends_with($file, ') : eval()\'d code')) {
             $file = substr($file, 0, strrpos($file, '(', -17));
         }
         if (!$file || $this->doExport($file) === $exportedFile = $this->export($file)) {
@@ -584,20 +583,23 @@
             }
             $alreadyGenerated[$asGhostObject][$class] = true;
 
-            foreach (array_column($definition->getTag('proxy'), 'interface') ?: [$class] as $r) {
-                if (!$r = $this->container->getReflectionClass($r)) {
-                    continue;
-                }
-                do {
-                    $file = $r->getFileName();
-                    if (str_ends_with($file, ') : eval()\'d code')) {
-                        $file = substr($file, 0, strrpos($file, '(', -17));
-                    }
-                    if (is_file($file)) {
-                        $this->container->addResource(new FileResource($file));
+            if ($this->container->isTrackingResources()) {
+                foreach (array_column($definition->getTag('proxy'), 'interface') ?: [$class] as $r) {
+                    if (!$r = $this->container->getReflectionClass($r)) {
+                        continue;
                     }
-                    $r = $r->getParentClass() ?: null;
-                } while ($r?->isUserDefined());
+                    do {
+                        if ($file = $r->getFileName()) {
+                            if (str_ends_with($file, ') : eval()\'d code')) {
+                                $file = substr($file, 0, strrpos($file, '(', -17));
+                            }
+                            if (is_file($file)) {
+                                $this->container->addResource(new FileResource($file));
+                            }
+                        }
+                        $r = $r->getParentClass() ?: null;
+                    } while ($r?->isUserDefined());
+                }
             }
 
             if ("\n" === $proxyCode = "\n".$proxyDumper->getProxyCode($definition, $id)) {
@@ -613,7 +615,7 @@
                     if ($this->inlineFactories) {
                         $this->inlinedRequires[$file] = true;
                     }
-                    $code .= sprintf("include_once %s;\n", $file);
+                    $code .= \sprintf("include_once %s;\n", $file);
                 }
 
                 $proxyCode = $code.$proxyCode;
@@ -665,7 +667,7 @@
             }
 
             foreach (array_diff_key(array_flip($lineage), $this->inlinedRequires) as $file => $class) {
-                $code .= sprintf("        include_once %s;\n", $file);
+                $code .= \sprintf("        include_once %s;\n", $file);
             }
         }
 
@@ -673,7 +675,7 @@
             if ($file = $def->getFile()) {
                 $file = $this->dumpValue($file);
                 $file = '(' === $file[0] ? substr($file, 1, -1) : $file;
-                $code .= sprintf("        include_once %s;\n", $file);
+                $code .= \sprintf("        include_once %s;\n", $file);
             }
         }
 
@@ -693,12 +695,11 @@
         $class = $this->dumpValue($definition->getClass());
 
         if (str_starts_with($class, "'") && !str_contains($class, '$') && !preg_match('/^\'(?:\\\{2})?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?:\\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*\'$/', $class)) {
-            throw new InvalidArgumentException(sprintf('"%s" is not a valid class name for the "%s" service.', $class, $id));
+            throw new InvalidArgumentException(\sprintf('"%s" is not a valid class name for the "%s" service.', $class, $id));
         }
 
         $asGhostObject = false;
         $isProxyCandidate = $this->isProxyCandidate($definition, $asGhostObject, $id);
-        $instantiation = '';
 
         $lastWitherIndex = null;
         foreach ($definition->getMethodCalls() as $k => $call) {
@@ -707,20 +708,26 @@
             }
         }
 
-        if (!$isProxyCandidate && $definition->isShared() && !isset($this->singleUsePrivateIds[$id]) && null === $lastWitherIndex) {
-            $instantiation = sprintf('$container->%s[%s] = %s', $this->container->getDefinition($id)->isPublic() ? 'services' : 'privates', $this->doExport($id), $isSimpleInstance ? '' : '$instance');
-        } elseif (!$isSimpleInstance) {
-            $instantiation = '$instance';
-        }
+        $shouldShareInline = !$isProxyCandidate && $definition->isShared() && !isset($this->singleUsePrivateIds[$id]) && null === $lastWitherIndex;
+        $serviceAccessor = \sprintf('$container->%s[%s]', $this->container->getDefinition($id)->isPublic() ? 'services' : 'privates', $this->doExport($id));
+        $return = match (true) {
+            $shouldShareInline && !isset($this->circularReferences[$id]) && $isSimpleInstance => 'return '.$serviceAccessor.' = ',
+            $shouldShareInline && !isset($this->circularReferences[$id]) => $serviceAccessor.' = $instance = ',
+            $shouldShareInline || !$isSimpleInstance => '$instance = ',
+            default => 'return ',
+        };
 
-        $return = '';
-        if ($isSimpleInstance) {
-            $return = 'return ';
-        } else {
-            $instantiation .= ' = ';
+        $code = $this->addNewInstance($definition, '        '.$return, $id, $asGhostObject);
+
+        if ($shouldShareInline && isset($this->circularReferences[$id])) {
+            $code .= \sprintf(
+                "\n        if (isset(%s)) {\n            return %1\$s;\n        }\n\n        %s%1\$s = \$instance;\n",
+                $serviceAccessor,
+                $isSimpleInstance ? 'return ' : ''
+            );
         }
 
-        return $this->addNewInstance($definition, '        '.$return.$instantiation, $id, $asGhostObject);
+        return $code;
     }
 
     private function isTrivialInstance(Definition $definition): bool
@@ -784,12 +791,12 @@
 
             if ($call[2] ?? false) {
                 if (null !== $sharedNonLazyId && $lastWitherIndex === $k && 'instance' === $variableName) {
-                    $witherAssignation = sprintf('$container->%s[\'%s\'] = ', $definition->isPublic() ? 'services' : 'privates', $sharedNonLazyId);
+                    $witherAssignation = \sprintf('$container->%s[\'%s\'] = ', $definition->isPublic() ? 'services' : 'privates', $sharedNonLazyId);
                 }
-                $witherAssignation .= sprintf('$%s = ', $variableName);
+                $witherAssignation .= \sprintf('$%s = ', $variableName);
             }
 
-            $calls .= $this->wrapServiceConditionals($call[1], sprintf("        %s\$%s->%s(%s);\n", $witherAssignation, $variableName, $call[0], implode(', ', $arguments)));
+            $calls .= $this->wrapServiceConditionals($call[1], \sprintf("        %s\$%s->%s(%s);\n", $witherAssignation, $variableName, $call[0], implode(', ', $arguments)));
         }
 
         return $calls;
@@ -799,7 +806,7 @@
     {
         $code = '';
         foreach ($definition->getProperties() as $name => $value) {
-            $code .= sprintf("        \$%s->%s = %s;\n", $variableName, $name, $this->dumpValue($value));
+            $code .= \sprintf("        \$%s->%s = %s;\n", $variableName, $name, $this->dumpValue($value));
         }
 
         return $code;
@@ -813,25 +820,25 @@
 
         if (\is_array($callable)) {
             if ($callable[0] instanceof Reference
-                || ($callable[0] instanceof Definition && $this->definitionVariables->contains($callable[0]))
+                || ($callable[0] instanceof Definition && $this->definitionVariables->offsetExists($callable[0]))
             ) {
-                return sprintf("        %s->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
+                return \sprintf("        %s->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
             }
 
             $class = $this->dumpValue($callable[0]);
             // If the class is a string we can optimize away
             if (str_starts_with($class, "'") && !str_contains($class, '$')) {
-                return sprintf("        %s::%s(\$%s);\n", $this->dumpLiteralClass($class), $callable[1], $variableName);
+                return \sprintf("        %s::%s(\$%s);\n", $this->dumpLiteralClass($class), $callable[1], $variableName);
             }
 
             if (str_starts_with($class, 'new ')) {
-                return sprintf("        (%s)->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
+                return \sprintf("        (%s)->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
             }
 
-            return sprintf("        [%s, '%s'](\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
+            return \sprintf("        [%s, '%s'](\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
         }
 
-        return sprintf("        %s(\$%s);\n", $callable, $variableName);
+        return \sprintf("        %s(\$%s);\n", $callable, $variableName);
     }
 
     private function addService(string $id, Definition $definition): array
@@ -845,14 +852,14 @@
 
         if ($class = $definition->getClass()) {
             $class = $class instanceof Parameter ? '%'.$class.'%' : $this->container->resolveEnvPlaceholders($class);
-            $return[] = sprintf(str_starts_with($class, '%') ? '@return object A %1$s instance' : '@return \%s', ltrim($class, '\\'));
+            $return[] = \sprintf(str_starts_with($class, '%') ? '@return object A %1$s instance' : '@return \%s', ltrim($class, '\\'));
         } elseif ($factory = $definition->getFactory()) {
             if (\is_string($factory) && !str_starts_with($factory, '@=')) {
-                $return[] = sprintf('@return object An instance returned by %s()', $factory);
+                $return[] = \sprintf('@return object An instance returned by %s()', $factory);
             } elseif (\is_array($factory) && (\is_string($factory[0]) || $factory[0] instanceof Definition || $factory[0] instanceof Reference)) {
                 $class = $factory[0] instanceof Definition ? $factory[0]->getClass() : (string) $factory[0];
                 $class = $class instanceof Parameter ? '%'.$class.'%' : $this->container->resolveEnvPlaceholders($class);
-                $return[] = sprintf('@return object An instance returned by %s::%s()', $class, $factory[1]);
+                $return[] = \sprintf('@return object An instance returned by %s::%s()', $class, $factory[1]);
             }
         }
 
@@ -862,7 +869,7 @@
             }
 
             $deprecation = $definition->getDeprecation($id);
-            $return[] = sprintf('@deprecated %s', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '').$deprecation['message']);
+            $return[] = \sprintf('@deprecated %s', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '').$deprecation['message']);
         }
 
         $return = str_replace("\n     * \n", "\n     *\n", implode("\n     * ", $return));
@@ -882,18 +889,18 @@
 
         $code = <<<EOF
 
-    /*{$this->docStar}
-     * Gets the $public '$id'$shared$autowired service.
-     *
-     * $return
-EOF;
+                /*{$this->docStar}
+                 * Gets the $public '$id'$shared$autowired service.
+                 *
+                 * $return
+            EOF;
         $code = str_replace('*/', ' ', $code).<<<EOF
 
-     */
-    protected static function {$methodName}(\$container$lazyInitialization)
-    {
+                 */
+                protected static function {$methodName}(\$container$lazyInitialization)
+                {
 
-EOF;
+            EOF;
 
         if ($asFile) {
             $file = $methodName.'.php';
@@ -903,14 +910,14 @@
         }
 
         if ($definition->hasErrors() && $e = $definition->getErrors()) {
-            $code .= sprintf("        throw new RuntimeException(%s);\n", $this->export(reset($e)));
+            $code .= \sprintf("        throw new RuntimeException(%s);\n", $this->export(reset($e)));
         } else {
             $this->serviceCalls = [];
             $this->inlinedDefinitions = $this->getDefinitionsFromArguments([$definition], null, $this->serviceCalls);
 
             if ($definition->isDeprecated()) {
                 $deprecation = $definition->getDeprecation($id);
-                $code .= sprintf("        trigger_deprecation(%s, %s, %s);\n\n", $this->export($deprecation['package']), $this->export($deprecation['version']), $this->export($deprecation['message']));
+                $code .= \sprintf("        trigger_deprecation(%s, %s, %s);\n\n", $this->export($deprecation['package']), $this->export($deprecation['version']), $this->export($deprecation['message']));
             } elseif ($definition->hasTag($this->hotPathTag) || !$definition->hasTag($this->preloadTags[1])) {
                 foreach ($this->inlinedDefinitions as $def) {
                     foreach ($this->getClasses($def, $id) as $class) {
@@ -920,7 +927,7 @@
             }
 
             if (!$definition->isShared()) {
-                $factory = sprintf('$container->factories%s[%s]', $definition->isPublic() ? '' : "['service_container']", $this->doExport($id));
+                $factory = \sprintf('$container->factories%s[%s]', $definition->isPublic() ? '' : "['service_container']", $this->doExport($id));
             }
 
             $asGhostObject = false;
@@ -928,24 +935,24 @@
                 $definition = $isProxyCandidate;
 
                 if (!$definition->isShared()) {
-                    $code .= sprintf('        %s ??= ', $factory);
+                    $code .= \sprintf('        %s ??= ', $factory);
 
                     if ($definition->isPublic()) {
-                        $code .= sprintf("fn () => self::%s(\$container);\n\n", $asFile ? 'do' : $methodName);
+                        $code .= \sprintf("fn () => self::%s(\$container);\n\n", $asFile ? 'do' : $methodName);
                     } else {
-                        $code .= sprintf("self::%s(...);\n\n", $asFile ? 'do' : $methodName);
+                        $code .= \sprintf("self::%s(...);\n\n", $asFile ? 'do' : $methodName);
                     }
                 }
                 $lazyLoad = $asGhostObject ? '$proxy' : 'false';
 
-                $factoryCode = $asFile ? sprintf('self::do($container, %s)', $lazyLoad) : sprintf('self::%s($container, %s)', $methodName, $lazyLoad);
+                $factoryCode = $asFile ? \sprintf('self::do($container, %s)', $lazyLoad) : \sprintf('self::%s($container, %s)', $methodName, $lazyLoad);
                 $code .= $this->getProxyDumper()->getProxyFactoryCode($definition, $id, $factoryCode);
             }
 
             $c = $this->addServiceInclude($id, $definition, null !== $isProxyCandidate);
 
             if ('' !== $c && $isProxyCandidate && !$definition->isShared()) {
-                $c = implode("\n", array_map(fn ($line) => $line ? '    '.$line : $line, explode("\n", $c)));
+                $c = implode("\n", array_map(static fn ($line) => $line ? '    '.$line : $line, explode("\n", $c)));
                 $code .= "        static \$include = true;\n\n";
                 $code .= "        if (\$include) {\n";
                 $code .= $c;
@@ -958,10 +965,10 @@
             $c = $this->addInlineService($id, $definition);
 
             if (!$isProxyCandidate && !$definition->isShared()) {
-                $c = implode("\n", array_map(fn ($line) => $line ? '    '.$line : $line, explode("\n", $c)));
+                $c = implode("\n", array_map(static fn ($line) => $line ? '    '.$line : $line, explode("\n", $c)));
                 $lazyloadInitialization = $definition->isLazy() ? ', $lazyLoad = true' : '';
 
-                $c = sprintf("        %s = function (\$container%s) {\n%s        };\n\n        return %1\$s(\$container);\n", $factory, $lazyloadInitialization, $c);
+                $c = \sprintf("        %s = function (\$container%s) {\n%s        };\n\n        return %1\$s(\$container);\n", $factory, $lazyloadInitialization, $c);
             }
 
             $code .= $c;
@@ -1027,21 +1034,20 @@
         $name = $this->getNextVariableName();
         $this->referenceVariables[$targetId] = new Variable($name);
 
-        $reference = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $behavior ? new Reference($targetId, $behavior) : null;
-        $code .= sprintf("        \$%s = %s;\n", $name, $this->getServiceCall($targetId, $reference));
+        $reference = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $behavior ? new Reference($targetId, $behavior) : null;
+        $code .= \sprintf("        \$%s = %s;\n", $name, $this->getServiceCall($targetId, $reference));
 
         if (!$hasSelfRef || !$forConstructor) {
             return $code;
         }
 
-        $code .= sprintf(<<<'EOTXT'
+        $code .= \sprintf(<<<'EOTXT'
 
-        if (isset($container->%s[%s])) {
-            return $container->%1$s[%2$s];
-        }
+                    if (isset($container->%s[%s])) {
+                        return $container->%1$s[%2$s];
+                    }
 
-EOTXT
-            ,
+            EOTXT,
             $this->container->getDefinition($id)->isPublic() ? 'services' : 'privates',
             $this->doExport($id)
         );
@@ -1054,7 +1060,7 @@
         $code = '';
 
         if ($isSimpleInstance = $isRootInstance = null === $inlineDef) {
-            foreach ($this->serviceCalls as $targetId => [$callCount, $behavior, $byConstructor]) {
+            foreach ($this->serviceCalls as $targetId => [, , $byConstructor]) {
                 if ($byConstructor && isset($this->circularReferences[$id][$targetId]) && !$this->circularReferences[$id][$targetId] && !($this->hasProxyDumper && $definition->isLazy())) {
                     $code .= $this->addInlineReference($id, $definition, $targetId, $forConstructor);
                 }
@@ -1188,50 +1194,51 @@
             }
 
             if (\is_string($callable) && str_starts_with($callable, '@=')) {
-                return $return.sprintf('(($args = %s) ? (%s) : null)',
+                return $return.\sprintf('(($args = %s) ? (%s) : null)',
                     $this->dumpValue(new ServiceLocatorArgument($definition->getArguments())),
                     $this->getExpressionLanguage()->compile(substr($callable, 2), ['container' => 'container', 'args' => 'args'])
                 ).$tail;
             }
 
             if (!\is_array($callable)) {
-                return $return.sprintf('%s(%s)', $this->dumpLiteralClass($this->dumpValue($callable)), $arguments ? implode(', ', $arguments) : '').$tail;
+                return $return.\sprintf('%s(%s)', $this->dumpLiteralClass($this->dumpValue($callable)), $arguments ? implode(', ', $arguments) : '').$tail;
             }
 
             if (!preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $callable[1])) {
-                throw new RuntimeException(sprintf('Cannot dump definition because of invalid factory method (%s).', $callable[1] ?: 'n/a'));
+                throw new RuntimeException(\sprintf('Cannot dump definition because of invalid factory method (%s).', $callable[1] ?: 'n/a'));
             }
 
-            if (['...'] === $arguments && ($definition->isLazy() || 'Closure' !== ($definition->getClass() ?? 'Closure')) && (
+            if (['...'] === $arguments && ('Closure' !== ($class = $definition->getClass() ?: 'Closure') || $definition->isLazy() && (
                 $callable[0] instanceof Reference
-                || ($callable[0] instanceof Definition && !$this->definitionVariables->contains($callable[0]))
-            )) {
+                || ($callable[0] instanceof Definition && !$this->definitionVariables->offsetExists($callable[0]))
+            ))) {
                 $initializer = 'fn () => '.$this->dumpValue($callable[0]);
+                $this->preload[LazyClosure::class] = LazyClosure::class;
 
-                return $return.LazyClosure::getCode($initializer, $callable, $definition, $this->container, $id).$tail;
+                return $return.LazyClosure::getCode($initializer, $callable, $class, $this->container, $id).$tail;
             }
 
             if ($callable[0] instanceof Reference
-                || ($callable[0] instanceof Definition && $this->definitionVariables->contains($callable[0]))
+                || ($callable[0] instanceof Definition && $this->definitionVariables->offsetExists($callable[0]))
             ) {
-                return $return.sprintf('%s->%s(%s)', $this->dumpValue($callable[0]), $callable[1], $arguments ? implode(', ', $arguments) : '').$tail;
+                return $return.\sprintf('%s->%s(%s)', $this->dumpValue($callable[0]), $callable[1], $arguments ? implode(', ', $arguments) : '').$tail;
             }
 
             $class = $this->dumpValue($callable[0]);
             // If the class is a string we can optimize away
             if (str_starts_with($class, "'") && !str_contains($class, '$')) {
                 if ("''" === $class) {
-                    throw new RuntimeException(sprintf('Cannot dump definition: "%s" service is defined to be created by a factory but is missing the service reference, did you forget to define the factory service id or class?', $id ? 'The "'.$id.'"' : 'inline'));
+                    throw new RuntimeException(\sprintf('Cannot dump definition: "%s" service is defined to be created by a factory but is missing the service reference, did you forget to define the factory service id or class?', $id ? 'The "'.$id.'"' : 'inline'));
                 }
 
-                return $return.sprintf('%s::%s(%s)', $this->dumpLiteralClass($class), $callable[1], $arguments ? implode(', ', $arguments) : '').$tail;
+                return $return.\sprintf('%s::%s(%s)', $this->dumpLiteralClass($class), $callable[1], $arguments ? implode(', ', $arguments) : '').$tail;
             }
 
             if (str_starts_with($class, 'new ')) {
-                return $return.sprintf('(%s)->%s(%s)', $class, $callable[1], $arguments ? implode(', ', $arguments) : '').$tail;
+                return $return.\sprintf('(%s)->%s(%s)', $class, $callable[1], $arguments ? implode(', ', $arguments) : '').$tail;
             }
 
-            return $return.sprintf("[%s, '%s'](%s)", $class, $callable[1], $arguments ? implode(', ', $arguments) : '').$tail;
+            return $return.\sprintf("[%s, '%s'](%s)", $class, $callable[1], $arguments ? implode(', ', $arguments) : '').$tail;
         }
 
         if (null === $class = $definition->getClass()) {
@@ -1239,14 +1246,14 @@
         }
 
         if (!$asGhostObject) {
-            return $return.sprintf('new %s(%s)', $this->dumpLiteralClass($this->dumpValue($class)), implode(', ', $arguments)).$tail;
+            return $return.\sprintf('new %s(%s)', $this->dumpLiteralClass($this->dumpValue($class)), implode(', ', $arguments)).$tail;
         }
 
         if (!method_exists($this->container->getParameterBag()->resolveValue($class), '__construct')) {
             return $return.'$lazyLoad'.$tail;
         }
 
-        return $return.sprintf('($lazyLoad->__construct(%s) && false ?: $lazyLoad)', implode(', ', $arguments)).$tail;
+        return $return.\sprintf('($lazyLoad->__construct(%s) && false ?: $lazyLoad)', implode(', ', $arguments)).$tail;
     }
 
     private function startClass(string $class, string $baseClass, bool $hasProxyClasses): string
@@ -1254,30 +1261,30 @@
         $namespaceLine = !$this->asFiles && $this->namespace ? "\nnamespace {$this->namespace};\n" : '';
 
         $code = <<<EOF
-<?php
-$namespaceLine
-use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
-
-/*{$this->docStar}
- * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
- */
-class $class extends $baseClass
-{
-    private const DEPRECATED_PARAMETERS = [];
+            <?php
+            $namespaceLine
+            use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
+            use Symfony\Component\DependencyInjection\ContainerInterface;
+            use Symfony\Component\DependencyInjection\Container;
+            use Symfony\Component\DependencyInjection\Exception\LogicException;
+            use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
+            use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+            use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
+            use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
+
+            /*{$this->docStar}
+             * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
+             */
+            class $class extends $baseClass
+            {
+                private const DEPRECATED_PARAMETERS = [];
 
-    protected \$parameters = [];
+                protected \$parameters = [];
 
-    public function __construct()
-    {
+                public function __construct()
+                {
 
-EOF;
+            EOF;
         $code = str_replace("    private const DEPRECATED_PARAMETERS = [];\n\n", $this->addDeprecatedParameters(), $code);
         if ($this->asFiles) {
             $code = str_replace('__construct()', '__construct(private array $buildParameters = [], protected string $containerDir = __DIR__)', $code);
@@ -1288,16 +1295,9 @@
             }
         }
 
-        if (Container::class !== $this->baseClass) {
-            $r = $this->container->getReflectionClass($this->baseClass, false);
-            if (null !== $r
-                && (null !== $constructor = $r->getConstructor())
-                && 0 === $constructor->getNumberOfRequiredParameters()
-                && Container::class !== $constructor->getDeclaringClass()->name
-            ) {
-                $code .= "        parent::__construct();\n";
-                $code .= "        \$this->parameterBag = null;\n\n";
-            }
+        if ($this->needsUnsetParameterBag()) {
+            $code .= "        parent::__construct();\n";
+            $code .= "        unset(\$this->parameterBag);\n\n";
         }
 
         if ($this->container->getParameterBag()->all()) {
@@ -1311,42 +1311,42 @@
         $code .= $this->addAliases();
         $code .= $this->addInlineRequires($hasProxyClasses);
         $code .= <<<EOF
-    }
+                }
 
-    public function compile(): void
-    {
-        throw new LogicException('You cannot compile a dumped container that was already compiled.');
-    }
+                public function compile(): void
+                {
+                    throw new LogicException('You cannot compile a dumped container that was already compiled.');
+                }
 
-    public function isCompiled(): bool
-    {
-        return true;
-    }
+                public function isCompiled(): bool
+                {
+                    return true;
+                }
 
-EOF;
+            EOF;
         $code .= $this->addRemovedIds();
 
         if ($this->asFiles && !$this->inlineFactories) {
             $code .= <<<'EOF'
 
-    protected function load($file, $lazyLoad = true): mixed
-    {
-        if (class_exists($class = __NAMESPACE__.'\\'.$file, false)) {
-            return $class::do($this, $lazyLoad);
-        }
+                    protected function load($file, $lazyLoad = true): mixed
+                    {
+                        if (class_exists($class = __NAMESPACE__.'\\'.$file, false)) {
+                            return $class::do($this, $lazyLoad);
+                        }
 
-        if ('.' === $file[-4]) {
-            $class = substr($class, 0, -4);
-        } else {
-            $file .= '.php';
-        }
+                        if ('.' === $file[-4]) {
+                            $class = substr($class, 0, -4);
+                        } else {
+                            $file .= '.php';
+                        }
 
-        $service = require $this->containerDir.\DIRECTORY_SEPARATOR.$file;
+                        $service = require $this->containerDir.\DIRECTORY_SEPARATOR.$file;
 
-        return class_exists($class, false) ? $class::do($this, $lazyLoad) : $service;
-    }
+                        return class_exists($class, false) ? $class::do($this, $lazyLoad) : $service;
+                    }
 
-EOF;
+                EOF;
         }
 
         foreach ($this->container->getDefinitions() as $definition) {
@@ -1362,12 +1362,12 @@
 
             $code .= <<<EOF
 
-    protected function createProxy(\$class, \Closure \$factory)
-    {
-        {$proxyLoader}return \$factory();
-    }
+                    protected function createProxy(\$class, \Closure \$factory)
+                    {
+                        {$proxyLoader}return \$factory();
+                    }
 
-EOF;
+                EOF;
             break;
         }
 
@@ -1406,7 +1406,7 @@
             $ids = array_keys($ids);
             sort($ids);
             foreach ($ids as $id) {
-                if (preg_match(FileLoader::ANONYMOUS_ID_REGEXP, $id)) {
+                if (preg_match(ContainerBuilder::ANONYMOUS_ID_REGEXP, $id)) {
                     continue;
                 }
                 $code .= '            '.$this->doExport($id)." => true,\n";
@@ -1417,12 +1417,12 @@
 
         return <<<EOF
 
-    public function getRemovedIds(): array
-    {
-        return {$code};
-    }
+                public function getRemovedIds(): array
+                {
+                    return {$code};
+                }
 
-EOF;
+            EOF;
     }
 
     private function addDeprecatedParameters(): string
@@ -1472,7 +1472,7 @@
         ksort($definitions);
         foreach ($definitions as $id => $definition) {
             if (!$definition->isSynthetic() && $definition->isPublic() && !$this->isHotPath($definition)) {
-                $code .= sprintf("            %s => '%s',\n", $this->doExport($id), $this->generateMethodName($id));
+                $code .= \sprintf("            %s => '%s',\n", $this->doExport($id), $this->generateMethodName($id));
             }
         }
 
@@ -1520,19 +1520,19 @@
             $messageExported = $this->export($deprecation['message']);
             $code .= <<<EOF
 
-    /*{$this->docStar}
-     * Gets the $public '$alias' alias.
-     *
-     * @return object The "$id" service.
-     */
-    protected static function {$methodNameAlias}(\$container)
-    {
-        trigger_deprecation($packageExported, $versionExported, $messageExported);
+                    /*{$this->docStar}
+                     * Gets the $public '$alias' alias.
+                     *
+                     * @return object The "$id" service.
+                     */
+                    protected static function {$methodNameAlias}(\$container)
+                    {
+                        trigger_deprecation($packageExported, $versionExported, $messageExported);
 
-        return \$container->get($idExported);
-    }
+                        return \$container->get($idExported);
+                    }
 
-EOF;
+                EOF;
         }
 
         return $code;
@@ -1564,7 +1564,7 @@
         foreach ($lineage as $file) {
             if (!isset($this->inlinedRequires[$file])) {
                 $this->inlinedRequires[$file] = true;
-                $code .= sprintf("\n            include_once %s;", $file);
+                $code .= \sprintf("\n            include_once %s;", $file);
             }
         }
 
@@ -1572,12 +1572,25 @@
             $code .= "\n            include_once __DIR__.'/proxy-classes.php';";
         }
 
-        return $code ? sprintf("\n        \$this->privates['service_container'] = static function (\$container) {%s\n        };\n", $code) : '';
+        return $code ? \sprintf("\n        \$this->privates['service_container'] = static function (\$container) {%s\n        };\n", $code) : '';
+    }
+
+    private function needsUnsetParameterBag(): bool
+    {
+        if (Container::class === $this->baseClass) {
+            return false;
+        }
+        $r = $this->container->getReflectionClass($this->baseClass, false);
+
+        return null !== $r
+            && (null !== $constructor = $r->getConstructor())
+            && 0 === $constructor->getNumberOfRequiredParameters()
+            && Container::class !== $constructor->getDeclaringClass()->name;
     }
 
     private function addDefaultParametersMethod(): string
     {
-        if (!$this->container->getParameterBag()->all()) {
+        if (!$this->container->getParameterBag()->all() && !$this->needsUnsetParameterBag()) {
             return '';
         }
 
@@ -1586,74 +1599,75 @@
 
         foreach ($this->container->getParameterBag()->all() as $key => $value) {
             if ($key !== $resolvedKey = $this->container->resolveEnvPlaceholders($key)) {
-                throw new InvalidArgumentException(sprintf('Parameter name cannot use env parameters: "%s".', $resolvedKey));
+                throw new InvalidArgumentException(\sprintf('Parameter name cannot use env parameters: "%s".', $resolvedKey));
             }
             $hasEnum = false;
             $export = $this->exportParameters([$value], '', 12, $hasEnum);
             $export = explode('0 => ', substr(rtrim($export, " ]\n"), 2, -1), 2);
 
             if ($hasEnum || preg_match("/\\\$container->(?:getEnv\('(?:[-.\w\\\\]*+:)*+\w*+'\)|targetDir\.'')/", $export[1])) {
-                $dynamicPhp[$key] = sprintf('%s%s => %s,', $export[0], $this->export($key), $export[1]);
+                $dynamicPhp[$key] = \sprintf('%s%s => %s,', $export[0], $this->export($key), $export[1]);
                 $this->dynamicParameters[$key] = true;
             } else {
-                $php[] = sprintf('%s%s => %s,', $export[0], $this->export($key), $export[1]);
+                $php[] = \sprintf('%s%s => %s,', $export[0], $this->export($key), $export[1]);
             }
         }
-        $parameters = sprintf("[\n%s\n%s]", implode("\n", $php), str_repeat(' ', 8));
+        $parameters = \sprintf("[\n%s\n%s]", implode("\n", $php), str_repeat(' ', 8));
 
         $code = <<<'EOF'
 
-    public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
-    {
-        if (isset(self::DEPRECATED_PARAMETERS[$name])) {
-            trigger_deprecation(...self::DEPRECATED_PARAMETERS[$name]);
-        }
+                public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
+                {
+                    if (isset(self::DEPRECATED_PARAMETERS[$name])) {
+                        trigger_deprecation(...self::DEPRECATED_PARAMETERS[$name]);
+                    }
 
-        if (isset($this->buildParameters[$name])) {
-            return $this->buildParameters[$name];
-        }
+                    if (\array_key_exists($name, $this->buildParameters)) {
+                        return $this->buildParameters[$name];
+                    }
 
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
-        if (isset($this->loadedDynamicParameters[$name])) {
-            return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
-        }
+                    if (isset($this->loadedDynamicParameters[$name])) {
+                        return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
+                    }
 
-        return $this->parameters[$name];
-    }
+                    if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+                        throw new ParameterNotFoundException($name);
+                    }
 
-    public function hasParameter(string $name): bool
-    {
-        if (isset($this->buildParameters[$name])) {
-            return true;
-        }
+                    return $this->parameters[$name];
+                }
 
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
-    }
+                public function hasParameter(string $name): bool
+                {
+                    if (\array_key_exists($name, $this->buildParameters)) {
+                        return true;
+                    }
 
-    public function setParameter(string $name, $value): void
-    {
-        throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
-    }
+                    return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
+                }
 
-    public function getParameterBag(): ParameterBagInterface
-    {
-        if (!isset($this->parameterBag)) {
-            $parameters = $this->parameters;
-            foreach ($this->loadedDynamicParameters as $name => $loaded) {
-                $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
-            }
-            foreach ($this->buildParameters as $name => $value) {
-                $parameters[$name] = $value;
-            }
-            $this->parameterBag = new FrozenParameterBag($parameters, self::DEPRECATED_PARAMETERS);
-        }
+                public function setParameter(string $name, $value): void
+                {
+                    throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
+                }
 
-        return $this->parameterBag;
-    }
+                public function getParameterBag(): ParameterBagInterface
+                {
+                    if (!isset($this->parameterBag)) {
+                        $parameters = $this->parameters;
+                        foreach ($this->loadedDynamicParameters as $name => $loaded) {
+                            $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
+                        }
+                        foreach ($this->buildParameters as $name => $value) {
+                            $parameters[$name] = $value;
+                        }
+                        $this->parameterBag = new FrozenParameterBag($parameters, self::DEPRECATED_PARAMETERS);
+                    }
 
-EOF;
+                    return $this->parameterBag;
+                }
+
+            EOF;
 
         if (!$this->asFiles) {
             $code = preg_replace('/^.*buildParameters.*\n.*\n.*\n\n?/m', '', $code);
@@ -1667,16 +1681,16 @@
         if ($dynamicPhp) {
             $loadedDynamicParameters = $this->exportParameters(array_combine(array_keys($dynamicPhp), array_fill(0, \count($dynamicPhp), false)), '', 8);
             $getDynamicParameter = <<<'EOF'
-        $container = $this;
-        $value = match ($name) {
-%s
-            default => throw new ParameterNotFoundException($name),
-        };
-        $this->loadedDynamicParameters[$name] = true;
-
-        return $this->dynamicParameters[$name] = $value;
-EOF;
-            $getDynamicParameter = sprintf($getDynamicParameter, implode("\n", $dynamicPhp));
+                        $container = $this;
+                        $value = match ($name) {
+                %s
+                            default => throw new ParameterNotFoundException($name),
+                        };
+                        $this->loadedDynamicParameters[$name] = true;
+
+                        return $this->dynamicParameters[$name] = $value;
+                EOF;
+            $getDynamicParameter = \sprintf($getDynamicParameter, implode("\n", $dynamicPhp));
         } else {
             $loadedDynamicParameters = '[]';
             $getDynamicParameter = str_repeat(' ', 8).'throw new ParameterNotFoundException($name);';
@@ -1684,20 +1698,20 @@
 
         $code .= <<<EOF
 
-    private \$loadedDynamicParameters = {$loadedDynamicParameters};
-    private \$dynamicParameters = [];
+                private \$loadedDynamicParameters = {$loadedDynamicParameters};
+                private \$dynamicParameters = [];
 
-    private function getDynamicParameter(string \$name)
-    {
-{$getDynamicParameter}
-    }
+                private function getDynamicParameter(string \$name)
+                {
+            {$getDynamicParameter}
+                }
 
-    protected function getDefaultParameters(): array
-    {
-        return $parameters;
-    }
+                protected function getDefaultParameters(): array
+                {
+                    return $parameters;
+                }
 
-EOF;
+            EOF;
 
         return $code;
     }
@@ -1712,34 +1726,34 @@
             if (\is_array($value)) {
                 $value = $this->exportParameters($value, $path.'/'.$key, $indent + 4, $hasEnum);
             } elseif ($value instanceof ArgumentInterface) {
-                throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain special arguments. "%s" found in "%s".', get_debug_type($value), $path.'/'.$key));
+                throw new InvalidArgumentException(\sprintf('You cannot dump a container with parameters that contain special arguments. "%s" found in "%s".', get_debug_type($value), $path.'/'.$key));
             } elseif ($value instanceof Variable) {
-                throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain variable references. Variable "%s" found in "%s".', $value, $path.'/'.$key));
+                throw new InvalidArgumentException(\sprintf('You cannot dump a container with parameters that contain variable references. Variable "%s" found in "%s".', $value, $path.'/'.$key));
             } elseif ($value instanceof Definition) {
-                throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain service definitions. Definition for "%s" found in "%s".', $value->getClass(), $path.'/'.$key));
+                throw new InvalidArgumentException(\sprintf('You cannot dump a container with parameters that contain service definitions. Definition for "%s" found in "%s".', $value->getClass(), $path.'/'.$key));
             } elseif ($value instanceof Reference) {
-                throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain references to other services (reference to service "%s" found in "%s").', $value, $path.'/'.$key));
+                throw new InvalidArgumentException(\sprintf('You cannot dump a container with parameters that contain references to other services (reference to service "%s" found in "%s").', $value, $path.'/'.$key));
             } elseif ($value instanceof Expression) {
-                throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain expressions. Expression "%s" found in "%s".', $value, $path.'/'.$key));
+                throw new InvalidArgumentException(\sprintf('You cannot dump a container with parameters that contain expressions. Expression "%s" found in "%s".', $value, $path.'/'.$key));
             } elseif ($value instanceof \UnitEnum) {
                 $hasEnum = true;
-                $value = sprintf('\%s::%s', $value::class, $value->name);
+                $value = \sprintf('\%s::%s', $value::class, $value->name);
             } else {
                 $value = $this->export($value);
             }
 
-            $php[] = sprintf('%s%s => %s,', str_repeat(' ', $indent), $this->export($key), $value);
+            $php[] = \sprintf('%s%s => %s,', str_repeat(' ', $indent), $this->export($key), $value);
         }
 
-        return sprintf("[\n%s\n%s]", implode("\n", $php), str_repeat(' ', $indent - 4));
+        return \sprintf("[\n%s\n%s]", implode("\n", $php), str_repeat(' ', $indent - 4));
     }
 
     private function endClass(): string
     {
         return <<<'EOF'
-}
+            }
 
-EOF;
+            EOF;
     }
 
     private function wrapServiceConditionals(mixed $value, string $code): string
@@ -1749,9 +1763,9 @@
         }
 
         // re-indent the wrapped code
-        $code = implode("\n", array_map(fn ($line) => $line ? '    '.$line : $line, explode("\n", $code)));
+        $code = implode("\n", array_map(static fn ($line) => $line ? '    '.$line : $line, explode("\n", $code)));
 
-        return sprintf("        if (%s) {\n%s        }\n", $condition, $code);
+        return \sprintf("        if (%s) {\n%s        }\n", $condition, $code);
     }
 
     private function getServiceConditionals(mixed $value): string
@@ -1761,14 +1775,14 @@
             if (!$this->container->hasDefinition($service)) {
                 return 'false';
             }
-            $conditions[] = sprintf('isset($container->%s[%s])', $this->container->getDefinition($service)->isPublic() ? 'services' : 'privates', $this->doExport($service));
+            $conditions[] = \sprintf('isset($container->%s[%s])', $this->container->getDefinition($service)->isPublic() ? 'services' : 'privates', $this->doExport($service));
         }
         foreach (ContainerBuilder::getServiceConditionals($value) as $service) {
             if ($this->container->hasDefinition($service) && !$this->container->getDefinition($service)->isPublic()) {
                 continue;
             }
 
-            $conditions[] = sprintf('$container->has(%s)', $this->doExport($service));
+            $conditions[] = \sprintf('$container->has(%s)', $this->doExport($service));
         }
 
         if (!$conditions) {
@@ -1827,10 +1841,10 @@
             $isList = array_is_list($value);
             $code = [];
             foreach ($value as $k => $v) {
-                $code[] = $isList ? $this->dumpValue($v, $interpolate) : sprintf('%s => %s', $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate));
+                $code[] = $isList ? $this->dumpValue($v, $interpolate) : \sprintf('%s => %s', $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate));
             }
 
-            return sprintf('[%s]', implode(', ', $code));
+            return \sprintf('[%s]', implode(', ', $code));
         } elseif ($value instanceof ArgumentInterface) {
             $scope = [$this->definitionVariables, $this->referenceVariables];
             $this->definitionVariables = $this->referenceVariables = null;
@@ -1842,7 +1856,15 @@
 
                     $returnedType = '';
                     if ($value instanceof TypedReference) {
-                        $returnedType = sprintf(': %s\%s', ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $value->getInvalidBehavior() ? '' : '?', str_replace(['|', '&'], ['|\\', '&\\'], $value->getType()));
+                        $type = $value->getType();
+                        $nullable = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $value->getInvalidBehavior() ? '' : '?';
+
+                        if ('?' === ($type[0] ?? '')) {
+                            $type = substr($type, 1);
+                            $nullable = '?';
+                        }
+
+                        $returnedType = \sprintf(': %s\%s', $nullable, str_replace(['|', '&'], ['|\\', '&\\'], $type));
                     }
 
                     $attribute = '';
@@ -1853,10 +1875,10 @@
                             $attribute .= ', class: '.$this->dumpValue($class, $interpolate);
                         }
 
-                        $attribute = sprintf('#[\Closure(%s)] ', $attribute);
+                        $attribute = \sprintf('#[\Closure(%s)] ', $attribute);
                     }
 
-                    return sprintf('%sfn ()%s => %s', $attribute, $returnedType, $code);
+                    return \sprintf('%sfn ()%s => %s', $attribute, $returnedType, $code);
                 }
 
                 if ($value instanceof IteratorArgument) {
@@ -1870,7 +1892,7 @@
                     $operands = [0];
                     foreach ($values as $k => $v) {
                         ($c = $this->getServiceConditionals($v)) ? $operands[] = "(int) ($c)" : ++$operands[0];
-                        $v = $this->wrapServiceConditionals($v, sprintf("        yield %s => %s;\n", $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate)));
+                        $v = $this->wrapServiceConditionals($v, \sprintf("        yield %s => %s;\n", $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate)));
                         foreach (explode("\n", $v) as $v) {
                             if ($v) {
                                 $code[] = '    '.$v;
@@ -1878,7 +1900,7 @@
                         }
                     }
 
-                    $code[] = sprintf('        }, %s)', \count($operands) > 1 ? 'fn () => '.implode(' + ', $operands) : $operands[0]);
+                    $code[] = \sprintf('        }, %s)', \count($operands) > 1 ? 'fn () => '.implode(' + ', $operands) : $operands[0]);
 
                     return implode("\n", $code);
                 }
@@ -1888,8 +1910,8 @@
                     $serviceTypes = '';
                     foreach ($value->getValues() as $k => $v) {
                         if (!$v instanceof Reference) {
-                            $serviceMap .= sprintf("\n            %s => [%s],", $this->export($k), $this->dumpValue($v));
-                            $serviceTypes .= sprintf("\n            %s => '?',", $this->export($k));
+                            $serviceMap .= \sprintf("\n            %s => [%s],", $this->export($k), $this->dumpValue($v));
+                            $serviceTypes .= \sprintf("\n            %s => '?',", $this->export($k));
                             continue;
                         }
                         $id = (string) $v;
@@ -1898,28 +1920,28 @@
                         }
                         $definition = $this->container->getDefinition($id);
                         $load = !($definition->hasErrors() && $e = $definition->getErrors()) ? $this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition) : reset($e);
-                        $serviceMap .= sprintf("\n            %s => [%s, %s, %s, %s],",
+                        $serviceMap .= \sprintf("\n            %s => [%s, %s, %s, %s],",
                             $this->export($k),
                             $this->export($definition->isShared() ? ($definition->isPublic() ? 'services' : 'privates') : false),
                             $this->doExport($id),
                             $this->export(ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE !== $v->getInvalidBehavior() && !\is_string($load) ? $this->generateMethodName($id) : null),
                             $this->export($load)
                         );
-                        $serviceTypes .= sprintf("\n            %s => %s,", $this->export($k), $this->export($v instanceof TypedReference ? $v->getType() : '?'));
+                        $serviceTypes .= \sprintf("\n            %s => %s,", $this->export($k), $this->export($v instanceof TypedReference ? $v->getType() : '?'));
                         $this->locatedIds[$id] = true;
                     }
                     $this->addGetService = true;
 
-                    return sprintf('new \%s($container->getService ??= $container->getService(...), [%s%s], [%s%s])', ServiceLocator::class, $serviceMap, $serviceMap ? "\n        " : '', $serviceTypes, $serviceTypes ? "\n        " : '');
+                    return \sprintf('new \%s($container->getService ??= $container->getService(...), [%s%s], [%s%s])', ServiceLocator::class, $serviceMap, $serviceMap ? "\n        " : '', $serviceTypes, $serviceTypes ? "\n        " : '');
                 }
             } finally {
                 [$this->definitionVariables, $this->referenceVariables] = $scope;
             }
         } elseif ($value instanceof Definition) {
             if ($value->hasErrors() && $e = $value->getErrors()) {
-                return sprintf('throw new RuntimeException(%s)', $this->export(reset($e)));
+                return \sprintf('throw new RuntimeException(%s)', $this->export(reset($e)));
             }
-            if ($this->definitionVariables?->contains($value)) {
+            if ($this->definitionVariables?->offsetExists($value)) {
                 return $this->dumpValue($this->definitionVariables[$value], $interpolate);
             }
             if ($value->getMethodCalls()) {
@@ -1956,19 +1978,18 @@
                 // we do this to deal with non string values (Boolean, integer, ...)
                 // the preg_replace_callback converts them to strings
                 return $this->dumpParameter($match[1]);
-            } else {
-                $replaceParameters = fn ($match) => "'.".$this->dumpParameter($match[2]).".'";
+            }
+            $replaceParameters = fn ($match) => "'.".$this->dumpParameter($match[2]).".'";
 
-                $code = str_replace('%%', '%', preg_replace_callback('/(?<!%)(%)([^%]+)\1/', $replaceParameters, $this->export($value)));
+            $code = str_replace('%%', '%', preg_replace_callback('/(?<!%)(%)([^%]+)\1/', $replaceParameters, $this->export($value)));
 
-                return $code;
-            }
+            return $code;
         } elseif ($value instanceof \UnitEnum) {
-            return sprintf('\%s::%s', $value::class, $value->name);
+            return \sprintf('\%s::%s', $value::class, $value->name);
         } elseif ($value instanceof AbstractArgument) {
             throw new RuntimeException($value->getTextWithContext());
         } elseif (\is_object($value) || \is_resource($value)) {
-            throw new RuntimeException(sprintf('Unable to dump a service container if a parameter is an object or a resource, got "%s".', get_debug_type($value)));
+            throw new RuntimeException(\sprintf('Unable to dump a service container if a parameter is an object or a resource, got "%s".', get_debug_type($value)));
         }
 
         return $this->export($value);
@@ -1982,10 +2003,10 @@
     private function dumpLiteralClass(string $class): string
     {
         if (str_contains($class, '$')) {
-            return sprintf('${($_ = %s) && false ?: "_"}', $class);
+            return \sprintf('${($_ = %s) && false ?: "_"}', $class);
         }
         if (!str_starts_with($class, "'") || !preg_match('/^\'(?:\\\{2})?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?:\\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*\'$/', $class)) {
-            throw new RuntimeException(sprintf('Cannot dump definition because of invalid class name (%s).', $class ?: 'n/a'));
+            throw new RuntimeException(\sprintf('Cannot dump definition because of invalid class name (%s).', $class ?: 'n/a'));
         }
 
         $class = substr(str_replace('\\\\', '\\', $class), 1, -1);
@@ -1996,7 +2017,7 @@
     private function dumpParameter(string $name): string
     {
         if (!$this->container->hasParameter($name) || ($this->dynamicParameters[$name] ?? false)) {
-            return sprintf('$container->getParameter(%s)', $this->doExport($name));
+            return \sprintf('$container->getParameter(%s)', $this->doExport($name));
         }
 
         $value = $this->container->getParameter($name);
@@ -2006,7 +2027,7 @@
             return $dumpedValue;
         }
 
-        return sprintf('$container->parameters[%s]', $this->doExport($name));
+        return \sprintf('$container->parameters[%s]', $this->doExport($name));
     }
 
     private function getServiceCall(string $id, ?Reference $reference = null): string
@@ -2021,7 +2042,7 @@
 
         if ($this->container->hasDefinition($id) && $definition = $this->container->getDefinition($id)) {
             if ($definition->isSynthetic()) {
-                $code = sprintf('$container->get(%s%s)', $this->doExport($id), null !== $reference ? ', '.$reference->getInvalidBehavior() : '');
+                $code = \sprintf('$container->get(%s%s)', $this->doExport($id), null !== $reference ? ', '.$reference->getInvalidBehavior() : '');
             } elseif (null !== $reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $reference->getInvalidBehavior()) {
                 $code = 'null';
                 if (!$definition->isShared()) {
@@ -2029,24 +2050,24 @@
                 }
             } elseif ($this->isTrivialInstance($definition)) {
                 if ($definition->hasErrors() && $e = $definition->getErrors()) {
-                    return sprintf('throw new RuntimeException(%s)', $this->export(reset($e)));
+                    return \sprintf('throw new RuntimeException(%s)', $this->export(reset($e)));
                 }
                 $code = $this->addNewInstance($definition, '', $id);
                 if ($definition->isShared() && !isset($this->singleUsePrivateIds[$id])) {
-                    return sprintf('($container->%s[%s] ??= %s)', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code);
+                    return \sprintf('($container->%s[%s] ??= %s)', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code);
                 }
                 $code = "($code)";
             } else {
                 $code = $this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition) ? "\$container->load('%s')" : 'self::%s($container)';
-                $code = sprintf($code, $this->generateMethodName($id));
+                $code = \sprintf($code, $this->generateMethodName($id));
 
                 if (!$definition->isShared()) {
-                    $factory = sprintf('$container->factories%s[%s]', $definition->isPublic() ? '' : "['service_container']", $this->doExport($id));
-                    $code = sprintf('(isset(%s) ? %1$s($container) : %s)', $factory, $code);
+                    $factory = \sprintf('$container->factories%s[%s]', $definition->isPublic() ? '' : "['service_container']", $this->doExport($id));
+                    $code = \sprintf('(isset(%s) ? %1$s($container) : %s)', $factory, $code);
                 }
             }
             if ($definition->isShared() && !isset($this->singleUsePrivateIds[$id])) {
-                $code = sprintf('($container->%s[%s] ?? %s)', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code);
+                $code = \sprintf('($container->%s[%s] ?? %s)', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code);
             }
 
             return $code;
@@ -2055,12 +2076,12 @@
             return 'null';
         }
         if (null !== $reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $reference->getInvalidBehavior()) {
-            $code = sprintf('$container->get(%s, ContainerInterface::NULL_ON_INVALID_REFERENCE)', $this->doExport($id));
+            $code = \sprintf('$container->get(%s, ContainerInterface::NULL_ON_INVALID_REFERENCE)', $this->doExport($id));
         } else {
-            $code = sprintf('$container->get(%s)', $this->doExport($id));
+            $code = \sprintf('$container->get(%s)', $this->doExport($id));
         }
 
-        return sprintf('($container->services[%s] ?? %s)', $this->doExport($id), $code);
+        return \sprintf('($container->services[%s] ?? %s)', $this->doExport($id), $code);
     }
 
     /**
@@ -2151,7 +2172,7 @@
                     return $this->getServiceCall($id);
                 }
 
-                return sprintf('$container->get(%s)', $arg);
+                return \sprintf('$container->get(%s)', $arg);
             });
 
             if ($this->container->isTrackingResources()) {
@@ -2179,7 +2200,7 @@
             if (!$value = $edge->getSourceNode()->getValue()) {
                 continue;
             }
-            if ($edge->isLazy() || !$value instanceof Definition || !$value->isShared()) {
+            if ($edge->isLazy() || !$value instanceof Definition || !$value->isShared() || $edge->isFromMultiUseArgument()) {
                 return false;
             }
 
@@ -2213,13 +2234,13 @@
             $offset = 2 + $this->targetDirMaxMatches - \count($matches);
 
             if (0 < $offset) {
-                $dirname = sprintf('\dirname(__DIR__, %d)', $offset + (int) $this->asFiles);
+                $dirname = \sprintf('\dirname(__DIR__, %d)', $offset + (int) $this->asFiles);
             } elseif ($this->asFiles) {
                 $dirname = "\$container->targetDir.''"; // empty string concatenation on purpose
             }
 
             if ($prefix || $suffix) {
-                return sprintf('(%s%s%s)', $prefix, $dirname, $suffix);
+                return \sprintf('(%s%s%s)', $prefix, $dirname, $suffix);
             }
 
             return $dirname;
@@ -2236,7 +2257,7 @@
         }
         if (\is_string($value) && str_contains($value, "\n")) {
             $cleanParts = explode("\n", $value);
-            $cleanParts = array_map(fn ($part) => var_export($part, true), $cleanParts);
+            $cleanParts = array_map(static fn ($part) => var_export($part, true), $cleanParts);
             $export = implode('."\n".', $cleanParts);
         } else {
             $export = var_export($value, true);
@@ -2300,7 +2321,7 @@
         while ($definition instanceof Definition) {
             foreach ($definition->getTag($this->preloadTags[0]) as $tag) {
                 if (!isset($tag['class'])) {
-                    throw new InvalidArgumentException(sprintf('Missing attribute "class" on tag "%s" for service "%s".', $this->preloadTags[0], $id));
+                    throw new InvalidArgumentException(\sprintf('Missing attribute "class" on tag "%s" for service "%s".', $this->preloadTags[0], $id));
                 }
 
                 $classes[] = trim($tag['class'], '\\');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
     public static function append(string $file, array $list): void
     {
         if (!file_exists($file)) {
-            throw new \LogicException(sprintf('File "%s" does not exist.', $file));
+            throw new \LogicException(\sprintf('File "%s" does not exist.', $file));
         }
 
         $cacheDir = \dirname($file);
@@ -27,19 +27,19 @@
 
         foreach ($list as $item) {
             if (str_starts_with($item, $cacheDir)) {
-                file_put_contents($file, sprintf("require_once __DIR__.%s;\n", var_export(strtr(substr($item, \strlen($cacheDir)), \DIRECTORY_SEPARATOR, '/'), true)), \FILE_APPEND);
+                file_put_contents($file, \sprintf("require_once __DIR__.%s;\n", var_export(strtr(substr($item, \strlen($cacheDir)), \DIRECTORY_SEPARATOR, '/'), true)), \FILE_APPEND);
                 continue;
             }
 
-            $classes[] = sprintf("\$classes[] = %s;\n", var_export($item, true));
+            $classes[] = \sprintf("\$classes[] = %s;\n", var_export($item, true));
         }
 
-        file_put_contents($file, sprintf("\n\$classes = [];\n%s\$preloaded = Preloader::preload(\$classes, \$preloaded);\n", implode('', $classes)), \FILE_APPEND);
+        file_put_contents($file, \sprintf("\n\$classes = [];\n%s\$preloaded = Preloader::preload(\$classes, \$preloaded);\n", implode('', $classes)), \FILE_APPEND);
     }
 
     public static function preload(array $classes, array $preloaded = []): array
     {
-        set_error_handler(function ($t, $m, $f, $l) {
+        set_error_handler(static function ($t, $m, $f, $l) {
             if (error_reporting() & $t) {
                 if (__FILE__ !== $f) {
                     throw new \ErrorException($m, 0, $t, $f, $l);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -130,7 +130,7 @@
         }
 
         $tags = $definition->getTags();
-        $tags['container.error'] = array_map(fn ($e) => ['message' => $e], $definition->getErrors());
+        $tags['container.error'] = array_map(static fn ($e) => ['message' => $e], $definition->getErrors());
         foreach ($tags as $name => $tags) {
             foreach ($tags as $attributes) {
                 $tag = $this->document->createElement('tag');
@@ -422,9 +422,9 @@
             case $value instanceof Parameter:
                 return '%'.$value.'%';
             case $value instanceof \UnitEnum:
-                return sprintf('%s::%s', $value::class, $value->name);
+                return \sprintf('%s::%s', $value::class, $value->name);
             case \is_object($value) || \is_resource($value):
-                throw new RuntimeException(sprintf('Unable to dump a service container if a parameter is an object or a resource, got "%s".', get_debug_type($value)));
+                throw new RuntimeException(\sprintf('Unable to dump a service container if a parameter is an object or a resource, got "%s".', get_debug_type($value)));
             default:
                 return (string) $value;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,36 +50,36 @@
 
         $this->dumper ??= new YmlDumper();
 
-        return $this->container->resolveEnvPlaceholders($this->addParameters()."\n".$this->addServices());
+        return $this->addParameters()."\n".$this->addServices();
     }
 
     private function addService(string $id, Definition $definition): string
     {
-        $code = "    $id:\n";
+        $code = "    {$this->dumper->dump($id)}:\n";
         if ($class = $definition->getClass()) {
             if (str_starts_with($class, '\\')) {
                 $class = substr($class, 1);
             }
 
-            $code .= sprintf("        class: %s\n", $this->dumper->dump($class));
+            $code .= \sprintf("        class: %s\n", $this->dumper->dump($this->container->resolveEnvPlaceholders($class)));
         }
 
         if (!$definition->isPrivate()) {
-            $code .= sprintf("        public: %s\n", $definition->isPublic() ? 'true' : 'false');
+            $code .= \sprintf("        public: %s\n", $definition->isPublic() ? 'true' : 'false');
         }
 
         $tagsCode = '';
         $tags = $definition->getTags();
-        $tags['container.error'] = array_map(fn ($e) => ['message' => $e], $definition->getErrors());
+        $tags['container.error'] = array_map(static fn ($e) => ['message' => $e], $definition->getErrors());
         foreach ($tags as $name => $tags) {
             foreach ($tags as $attributes) {
                 $att = [];
                 foreach ($attributes as $key => $value) {
-                    $att[] = sprintf('%s: %s', $this->dumper->dump($key), $this->dumper->dump($value));
+                    $att[] = \sprintf('%s: %s', $this->dumper->dump($key), $this->dumper->dump($value));
                 }
                 $att = $att ? ': { '.implode(', ', $att).' }' : '';
 
-                $tagsCode .= sprintf("            - %s%s\n", $this->dumper->dump($name), $att);
+                $tagsCode .= \sprintf("            - %s%s\n", $this->dumper->dump($name), $att);
             }
         }
         if ($tagsCode) {
@@ -87,7 +87,7 @@
         }
 
         if ($definition->getFile()) {
-            $code .= sprintf("        file: %s\n", $this->dumper->dump($definition->getFile()));
+            $code .= \sprintf("        file: %s\n", $this->dumper->dump($this->container->resolveEnvPlaceholders($definition->getFile())));
         }
 
         if ($definition->isSynthetic()) {
@@ -98,7 +98,7 @@
             $code .= "        deprecated:\n";
             foreach ($definition->getDeprecation('%service_id%') as $key => $value) {
                 if ('' !== $value) {
-                    $code .= sprintf("            %s: %s\n", $key, $this->dumper->dump($value));
+                    $code .= \sprintf("            %s: %s\n", $key, $this->dumper->dump($value));
                 }
             }
         }
@@ -120,15 +120,15 @@
         }
 
         if ($definition->getArguments()) {
-            $code .= sprintf("        arguments: %s\n", $this->dumper->dump($this->dumpValue($definition->getArguments()), 0));
+            $code .= \sprintf("        arguments: %s\n", $this->dumper->dump($this->dumpValue($definition->getArguments()), 0));
         }
 
         if ($definition->getProperties()) {
-            $code .= sprintf("        properties: %s\n", $this->dumper->dump($this->dumpValue($definition->getProperties()), 0));
+            $code .= \sprintf("        properties: %s\n", $this->dumper->dump($this->dumpValue($definition->getProperties()), 0));
         }
 
         if ($definition->getMethodCalls()) {
-            $code .= sprintf("        calls:\n%s\n", $this->dumper->dump($this->dumpValue($definition->getMethodCalls()), 1, 12));
+            $code .= \sprintf("        calls:\n%s\n", $this->dumper->dump($this->dumpValue($definition->getMethodCalls()), 1, 12));
         }
 
         if (!$definition->isShared()) {
@@ -137,31 +137,31 @@
 
         if (null !== $decoratedService = $definition->getDecoratedService()) {
             [$decorated, $renamedId, $priority] = $decoratedService;
-            $code .= sprintf("        decorates: %s\n", $decorated);
+            $code .= \sprintf("        decorates: %s\n", $decorated);
             if (null !== $renamedId) {
-                $code .= sprintf("        decoration_inner_name: %s\n", $renamedId);
+                $code .= \sprintf("        decoration_inner_name: %s\n", $renamedId);
             }
             if (0 !== $priority) {
-                $code .= sprintf("        decoration_priority: %s\n", $priority);
+                $code .= \sprintf("        decoration_priority: %s\n", $priority);
             }
 
             $decorationOnInvalid = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
             if (\in_array($decorationOnInvalid, [ContainerInterface::IGNORE_ON_INVALID_REFERENCE, ContainerInterface::NULL_ON_INVALID_REFERENCE])) {
                 $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE === $decorationOnInvalid ? 'null' : 'ignore';
-                $code .= sprintf("        decoration_on_invalid: %s\n", $invalidBehavior);
+                $code .= \sprintf("        decoration_on_invalid: %s\n", $invalidBehavior);
             }
         }
 
         if ($callable = $definition->getFactory()) {
             if (\is_array($callable) && ['Closure', 'fromCallable'] !== $callable && $definition->getClass() === $callable[0]) {
-                $code .= sprintf("        constructor: %s\n", $callable[1]);
+                $code .= \sprintf("        constructor: %s\n", $callable[1]);
             } else {
-                $code .= sprintf("        factory: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0));
+                $code .= \sprintf("        factory: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0));
             }
         }
 
         if ($callable = $definition->getConfigurator()) {
-            $code .= sprintf("        configurator: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0));
+            $code .= \sprintf("        configurator: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0));
         }
 
         return $code;
@@ -176,20 +176,20 @@
 
             foreach ($id->getDeprecation('%alias_id%') as $key => $value) {
                 if ('' !== $value) {
-                    $deprecated .= sprintf("            %s: %s\n", $key, $value);
+                    $deprecated .= \sprintf("            %s: %s\n", $key, $value);
                 }
             }
         }
 
         if (!$id->isDeprecated() && $id->isPrivate()) {
-            return sprintf("    %s: '@%s'\n", $alias, $id);
+            return \sprintf("    %s: '@%s'\n", $alias, $id);
         }
 
         if ($id->isPublic()) {
             $deprecated = "        public: true\n".$deprecated;
         }
 
-        return sprintf("    %s:\n        alias: %s\n%s", $alias, $id, $deprecated);
+        return \sprintf("    %s:\n        alias: %s\n%s", $alias, $id, $deprecated);
     }
 
     private function addServices(): string
@@ -238,7 +238,7 @@
             }
         }
 
-        return $callable;
+        return $this->container->resolveEnvPlaceholders($callable);
     }
 
     /**
@@ -290,7 +290,7 @@
             } elseif ($value instanceof ServiceLocatorArgument) {
                 $tag = 'service_locator';
             } else {
-                throw new RuntimeException(sprintf('Unspecified Yaml tag for type "%s".', get_debug_type($value)));
+                throw new RuntimeException(\sprintf('Unspecified Yaml tag for type "%s".', get_debug_type($value)));
             }
 
             return new TaggedValue($tag, $this->dumpValue($value->getValues()));
@@ -299,7 +299,7 @@
         if (\is_array($value)) {
             $code = [];
             foreach ($value as $k => $v) {
-                $code[$k] = $this->dumpValue($v);
+                $code[$this->container->resolveEnvPlaceholders($k)] = $this->dumpValue($v);
             }
 
             return $code;
@@ -312,14 +312,14 @@
         } elseif ($value instanceof Definition) {
             return new TaggedValue('service', (new Parser())->parse("_:\n".$this->addService('_', $value), Yaml::PARSE_CUSTOM_TAGS)['_']['_']);
         } elseif ($value instanceof \UnitEnum) {
-            return new TaggedValue('php/const', sprintf('%s::%s', $value::class, $value->name));
+            return new TaggedValue('php/const', \sprintf('%s::%s', $value::class, $value->name));
         } elseif ($value instanceof AbstractArgument) {
             return new TaggedValue('abstract', $value->getText());
         } elseif (\is_object($value) || \is_resource($value)) {
-            throw new RuntimeException(sprintf('Unable to dump a service container if a parameter is an object or a resource, got "%s".', get_debug_type($value)));
+            throw new RuntimeException(\sprintf('Unable to dump a service container if a parameter is an object or a resource, got "%s".', get_debug_type($value)));
         }
 
-        return $value;
+        return $this->container->resolveEnvPlaceholders($value);
     }
 
     private function getServiceCall(string $id, ?Reference $reference = null): string
@@ -328,22 +328,22 @@
             switch ($reference->getInvalidBehavior()) {
                 case ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE: break;
                 case ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE: break;
-                case ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE: return sprintf('@!%s', $id);
-                default: return sprintf('@?%s', $id);
+                case ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE: return \sprintf('@!%s', $id);
+                default: return \sprintf('@?%s', $id);
             }
         }
 
-        return sprintf('@%s', $id);
+        return \sprintf('@%s', $id);
     }
 
     private function getParameterCall(string $id): string
     {
-        return sprintf('%%%s%%', $id);
+        return \sprintf('%%%s%%', $id);
     }
 
     private function getExpressionCall(string $expression): string
     {
-        return sprintf('@=%s', $expression);
+        return \sprintf('@=%s', $expression);
     }
 
     private function prepareParameters(array $parameters, bool $escape = true): array
@@ -359,7 +359,7 @@
             $filtered[$key] = $value;
         }
 
-        return $escape ? $this->escape($filtered) : $filtered;
+        return $escape ? $this->container->resolveEnvPlaceholders($this->escape($filtered)) : $filtered;
     }
 
     private function escape(array $arguments): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
 
         if ('key' === $prefix) {
             if (false === $i) {
-                throw new RuntimeException(sprintf('Invalid env "key:%s": a key specifier should be provided.', $name));
+                throw new RuntimeException(\sprintf('Invalid env "key:%s": a key specifier should be provided.', $name));
             }
 
             $next = substr($name, $i + 1);
@@ -74,11 +74,11 @@
             $array = $getEnv($next);
 
             if (!\is_array($array)) {
-                throw new RuntimeException(sprintf('Resolved value of "%s" did not result in an array value.', $next));
+                throw new RuntimeException(\sprintf('Resolved value of "%s" did not result in an array value.', $next));
             }
 
             if (!isset($array[$key]) && !\array_key_exists($key, $array)) {
-                throw new EnvNotFoundException(sprintf('Key "%s" not found in %s (resolved from "%s").', $key, json_encode($array), $next));
+                throw new EnvNotFoundException(\sprintf('Key "%s" not found in %s (resolved from "%s").', $key, json_encode($array), $next));
             }
 
             return $array[$key];
@@ -86,7 +86,7 @@
 
         if ('enum' === $prefix) {
             if (false === $i) {
-                throw new RuntimeException(sprintf('Invalid env "enum:%s": a "%s" class-string should be provided.', $name, \BackedEnum::class));
+                throw new RuntimeException(\sprintf('Invalid env "enum:%s": a "%s" class-string should be provided.', $name, \BackedEnum::class));
             }
 
             $next = substr($name, $i + 1);
@@ -94,14 +94,14 @@
             $backedEnumValue = $getEnv($next);
 
             if (!\is_string($backedEnumValue) && !\is_int($backedEnumValue)) {
-                throw new RuntimeException(sprintf('Resolved value of "%s" did not result in a string or int value.', $next));
+                throw new RuntimeException(\sprintf('Resolved value of "%s" did not result in a string or int value.', $next));
             }
 
             if (!is_subclass_of($backedEnumClassName, \BackedEnum::class)) {
-                throw new RuntimeException(sprintf('"%s" is not a "%s".', $backedEnumClassName, \BackedEnum::class));
+                throw new RuntimeException(\sprintf('"%s" is not a "%s".', $backedEnumClassName, \BackedEnum::class));
             }
 
-            return $backedEnumClassName::tryFrom($backedEnumValue) ?? throw new RuntimeException(sprintf('Enum value "%s" is not backed by "%s".', $backedEnumValue, $backedEnumClassName));
+            return $backedEnumClassName::tryFrom($backedEnumValue) ?? throw new RuntimeException(\sprintf('Enum value "%s" is not backed by "%s".', $backedEnumValue, $backedEnumClassName));
         }
 
         if ('defined' === $prefix) {
@@ -114,14 +114,14 @@
 
         if ('default' === $prefix) {
             if (false === $i) {
-                throw new RuntimeException(sprintf('Invalid env "default:%s": a fallback parameter should be provided.', $name));
+                throw new RuntimeException(\sprintf('Invalid env "default:%s": a fallback parameter should be provided.', $name));
             }
 
             $next = substr($name, $i + 1);
             $default = substr($name, 0, $i);
 
             if ('' !== $default && !$this->container->hasParameter($default)) {
-                throw new RuntimeException(sprintf('Invalid env fallback in "default:%s": parameter "%s" not found.', $name, $default));
+                throw new RuntimeException(\sprintf('Invalid env fallback in "default:%s": parameter "%s" not found.', $name, $default));
             }
 
             try {
@@ -139,17 +139,17 @@
 
         if ('file' === $prefix || 'require' === $prefix) {
             if (!\is_scalar($file = $getEnv($name))) {
-                throw new RuntimeException(sprintf('Invalid file name: env var "%s" is non-scalar.', $name));
+                throw new RuntimeException(\sprintf('Invalid file name: env var "%s" is non-scalar.', $name));
             }
             if (!is_file($file)) {
-                throw new EnvNotFoundException(sprintf('File "%s" not found (resolved from "%s").', $file, $name));
+                throw new EnvNotFoundException(\sprintf('File "%s" not found (resolved from "%s").', $file, $name));
             }
 
             if ('file' === $prefix) {
                 return file_get_contents($file);
-            } else {
-                return require $file;
             }
+
+            return require $file;
         }
 
         $returnNull = false;
@@ -214,7 +214,7 @@
 
             if (false === $env) {
                 if (!$this->container->hasParameter("env($name)")) {
-                    throw new EnvNotFoundException(sprintf('Environment variable not found: "%s".', $name));
+                    throw new EnvNotFoundException(\sprintf('Environment variable not found: "%s".', $name));
                 }
 
                 $env = $this->container->getParameter("env($name)");
@@ -227,7 +227,7 @@
             }
 
             if (!isset($this->getProvidedTypes()[$prefix])) {
-                throw new RuntimeException(sprintf('Unsupported env var prefix "%s".', $prefix));
+                throw new RuntimeException(\sprintf('Unsupported env var prefix "%s".', $prefix));
             }
 
             if (!\in_array($prefix, ['string', 'bool', 'not', 'int', 'float'], true)) {
@@ -236,13 +236,13 @@
         }
 
         if ('shuffle' === $prefix) {
-            \is_array($env) ? shuffle($env) : throw new RuntimeException(sprintf('Env var "%s" cannot be shuffled, expected array, got "%s".', $name, get_debug_type($env)));
+            \is_array($env) ? shuffle($env) : throw new RuntimeException(\sprintf('Env var "%s" cannot be shuffled, expected array, got "%s".', $name, get_debug_type($env)));
 
             return $env;
         }
 
         if (null !== $env && !\is_scalar($env)) {
-            throw new RuntimeException(sprintf('Non-scalar env var "%s" cannot be cast to "%s".', $name, $prefix));
+            throw new RuntimeException(\sprintf('Non-scalar env var "%s" cannot be cast to "%s".', $name, $prefix));
         }
 
         if ('string' === $prefix) {
@@ -257,7 +257,7 @@
 
         if ('int' === $prefix) {
             if (null !== $env && false === $env = filter_var($env, \FILTER_VALIDATE_INT) ?: filter_var($env, \FILTER_VALIDATE_FLOAT)) {
-                throw new RuntimeException(sprintf('Non-numeric env var "%s" cannot be cast to int.', $name));
+                throw new RuntimeException(\sprintf('Non-numeric env var "%s" cannot be cast to int.', $name));
             }
 
             return (int) $env;
@@ -265,7 +265,7 @@
 
         if ('float' === $prefix) {
             if (null !== $env && false === $env = filter_var($env, \FILTER_VALIDATE_FLOAT)) {
-                throw new RuntimeException(sprintf('Non-numeric env var "%s" cannot be cast to float.', $name));
+                throw new RuntimeException(\sprintf('Non-numeric env var "%s" cannot be cast to float.', $name));
             }
 
             return (float) $env;
@@ -273,7 +273,7 @@
 
         if ('const' === $prefix) {
             if (!\defined($env)) {
-                throw new RuntimeException(sprintf('Env var "%s" maps to undefined constant "%s".', $name, $env));
+                throw new RuntimeException(\sprintf('Env var "%s" maps to undefined constant "%s".', $name, $env));
             }
 
             return \constant($env);
@@ -287,11 +287,11 @@
             $env = json_decode($env, true);
 
             if (\JSON_ERROR_NONE !== json_last_error()) {
-                throw new RuntimeException(sprintf('Invalid JSON in env var "%s": ', $name).json_last_error_msg());
+                throw new RuntimeException(\sprintf('Invalid JSON in env var "%s": ', $name).json_last_error_msg());
             }
 
             if (null !== $env && !\is_array($env)) {
-                throw new RuntimeException(sprintf('Invalid JSON env var "%s": array or null expected, "%s" given.', $name, get_debug_type($env)));
+                throw new RuntimeException(\sprintf('Invalid JSON env var "%s": array or null expected, "%s" given.', $name, get_debug_type($env)));
             }
 
             return $env;
@@ -301,10 +301,10 @@
             $params = parse_url($env);
 
             if (false === $params) {
-                throw new RuntimeException(sprintf('Invalid URL in env var "%s".', $name));
+                throw new RuntimeException(\sprintf('Invalid URL in env var "%s".', $name));
             }
             if (!isset($params['scheme'], $params['host'])) {
-                throw new RuntimeException(sprintf('Invalid URL in env var "%s": scheme and host expected.', $name));
+                throw new RuntimeException(\sprintf('Invalid URL in env var "%s": scheme and host expected.', $name));
             }
             $params += [
                 'port' => null,
@@ -325,7 +325,7 @@
         }
 
         if ('query_string' === $prefix) {
-            $queryString = parse_url($env, \PHP_URL_QUERY) ?: $env;
+            $queryString = parse_url($env, \PHP_URL_QUERY) ?: (parse_url($env, \PHP_URL_SCHEME) ? '' : $env);
             parse_str($queryString, $result);
 
             return $result;
@@ -344,7 +344,7 @@
                 }
 
                 if (!\is_scalar($value)) {
-                    throw new RuntimeException(sprintf('Parameter "%s" found when resolving env var "%s" must be scalar, "%s" given.', $match[1], $name, get_debug_type($value)));
+                    throw new RuntimeException(\sprintf('Parameter "%s" found when resolving env var "%s" must be scalar, "%s" given.', $match[1], $name, get_debug_type($value)));
                 }
 
                 return $value;
@@ -359,6 +359,6 @@
             return trim($env);
         }
 
-        throw new RuntimeException(sprintf('Unsupported env var prefix "%s" for env name "%s".', $prefix, $name));
+        throw new RuntimeException(\sprintf('Unsupported env var prefix "%s" for env name "%s".', $prefix, $name));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/EnvParameterException.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/EnvParameterException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/EnvParameterException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/EnvParameterException.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,6 @@
 {
     public function __construct(array $envs, ?\Throwable $previous = null, string $message = 'Incompatible use of dynamic environment variables "%s" found in parameters.')
     {
-        parent::__construct(sprintf($message, implode('", "', $envs)), 0, $previous);
+        parent::__construct(\sprintf($message, implode('", "', $envs)), 0, $previous);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/InvalidParameterTypeException.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/InvalidParameterTypeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/InvalidParameterTypeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/InvalidParameterTypeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,9 +27,9 @@
 
         $function = $parameter->getDeclaringFunction();
         $functionName = $function instanceof \ReflectionMethod
-            ? sprintf('%s::%s', $function->getDeclaringClass()->getName(), $function->getName())
+            ? \sprintf('%s::%s', $function->getDeclaringClass()->getName(), $function->getName())
             : $function->getName();
 
-        parent::__construct(sprintf('Invalid definition for service "%s": argument %d of "%s()" accepts "%s", "%s" passed.', $serviceId, 1 + $parameter->getPosition(), $functionName, $acceptedType, $type));
+        parent::__construct(\sprintf('Invalid definition for service "%s": argument %d of "%s()" accepts "%s", "%s" passed.', $serviceId, 1 + $parameter->getPosition(), $functionName, $acceptedType, $type));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/ParameterCircularReferenceException.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/ParameterCircularReferenceException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/ParameterCircularReferenceException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/ParameterCircularReferenceException.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
 
     public function __construct(array $parameters, ?\Throwable $previous = null)
     {
-        parent::__construct(sprintf('Circular reference detected for parameter "%s" ("%s" > "%s").', $parameters[0], implode('" > "', $parameters), $parameters[0]), 0, $previous);
+        parent::__construct(\sprintf('Circular reference detected for parameter "%s" ("%s" > "%s").', $parameters[0], implode('" > "', $parameters), $parameters[0]), 0, $previous);
 
         $this->parameters = $parameters;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/ParameterNotFoundException.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/ParameterNotFoundException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/ParameterNotFoundException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/ParameterNotFoundException.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,13 +53,13 @@
     public function updateRepr()
     {
         if (null !== $this->sourceId) {
-            $this->message = sprintf('The service "%s" has a dependency on a non-existent parameter "%s".', $this->sourceId, $this->key);
+            $this->message = \sprintf('The service "%s" has a dependency on a non-existent parameter "%s".', $this->sourceId, $this->key);
         } elseif (null !== $this->sourceKey) {
-            $this->message = sprintf('The parameter "%s" has a dependency on a non-existent parameter "%s".', $this->sourceKey, $this->key);
+            $this->message = \sprintf('The parameter "%s" has a dependency on a non-existent parameter "%s".', $this->sourceKey, $this->key);
         } elseif ('.' === ($this->key[0] ?? '')) {
-            $this->message = sprintf('Parameter "%s" not found. It was probably deleted during the compilation of the container.', $this->key);
+            $this->message = \sprintf('Parameter "%s" not found. It was probably deleted during the compilation of the container.', $this->key);
         } else {
-            $this->message = sprintf('You have requested a non-existent parameter "%s".', $this->key);
+            $this->message = \sprintf('You have requested a non-existent parameter "%s".', $this->key);
         }
 
         if ($this->alternatives) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/ServiceCircularReferenceException.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/ServiceCircularReferenceException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/ServiceCircularReferenceException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/ServiceCircularReferenceException.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,7 @@
 
     public function __construct(string $serviceId, array $path, ?\Throwable $previous = null)
     {
-        parent::__construct(sprintf('Circular reference detected for service "%s", path: "%s".', $serviceId, implode(' -> ', $path)), 0, $previous);
+        parent::__construct(\sprintf('Circular reference detected for service "%s", path: "%s".', $serviceId, implode(' -> ', $path)), 0, $previous);
 
         $this->serviceId = $serviceId;
         $this->path = $path;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/ServiceNotFoundException.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/ServiceNotFoundException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Exception/ServiceNotFoundException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Exception/ServiceNotFoundException.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,9 +29,9 @@
         if (null !== $msg) {
             // no-op
         } elseif (null === $sourceId) {
-            $msg = sprintf('You have requested a non-existent service "%s".', $id);
+            $msg = \sprintf('You have requested a non-existent service "%s".', $id);
         } else {
-            $msg = sprintf('The service "%s" has a dependency on a non-existent service "%s".', $sourceId, $id);
+            $msg = \sprintf('The service "%s" has a dependency on a non-existent service "%s".', $sourceId, $id);
         }
 
         if ($alternatives) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ExpressionLanguageProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ExpressionLanguageProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ExpressionLanguageProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ExpressionLanguageProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,11 +39,11 @@
     public function getFunctions(): array
     {
         return [
-            new ExpressionFunction('service', $this->serviceCompiler ?? fn ($arg) => sprintf('$container->get(%s)', $arg), fn (array $variables, $value) => $variables['container']->get($value)),
+            new ExpressionFunction('service', $this->serviceCompiler ?? static fn ($arg) => \sprintf('$container->get(%s)', $arg), static fn (array $variables, $value) => $variables['container']->get($value)),
 
-            new ExpressionFunction('parameter', fn ($arg) => sprintf('$container->getParameter(%s)', $arg), fn (array $variables, $value) => $variables['container']->getParameter($value)),
+            new ExpressionFunction('parameter', static fn ($arg) => \sprintf('$container->getParameter(%s)', $arg), static fn (array $variables, $value) => $variables['container']->getParameter($value)),
 
-            new ExpressionFunction('env', fn ($arg) => sprintf('$container->getEnv(%s)', $arg), function (array $variables, $value) {
+            new ExpressionFunction('env', static fn ($arg) => \sprintf('$container->getEnv(%s)', $arg), function (array $variables, $value) {
                 if (!$this->getEnv) {
                     throw new LogicException('You need to pass a getEnv closure to the expression language provider to use the "env" function.');
                 }
@@ -51,7 +51,7 @@
                 return ($this->getEnv)($value);
             }),
 
-            new ExpressionFunction('arg', fn ($arg) => sprintf('$args?->get(%s)', $arg), fn (array $variables, $value) => $variables['args']?->get($value)),
+            new ExpressionFunction('arg', static fn ($arg) => \sprintf('$args?->get(%s)', $arg), static fn (array $variables, $value) => $variables['args']?->get($value)),
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Extension/Extension.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Extension/Extension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Extension/Extension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Extension/Extension.php	2026-05-20 10:56:49.000000000 +0200
@@ -92,7 +92,7 @@
         }
 
         if (!$class->implementsInterface(ConfigurationInterface::class)) {
-            throw new LogicException(sprintf('The extension configuration class "%s" must implement "%s".', $class->getName(), ConfigurationInterface::class));
+            throw new LogicException(\sprintf('The extension configuration class "%s" must implement "%s".', $class->getName(), ConfigurationInterface::class));
         }
 
         if (!($constructor = $class->getConstructor()) || !$constructor->getNumberOfRequiredParameters()) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/Instantiator/LazyServiceInstantiator.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/Instantiator/LazyServiceInstantiator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/Instantiator/LazyServiceInstantiator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/Instantiator/LazyServiceInstantiator.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
         $dumper = new LazyServiceDumper();
 
         if (!$dumper->isProxyCandidate($definition, $asGhostObject, $id)) {
-            throw new InvalidArgumentException(sprintf('Cannot instantiate lazy proxy for service "%s".', $id));
+            throw new InvalidArgumentException(\sprintf('Cannot instantiate lazy proxy for service "%s".', $id));
         }
 
         if (!class_exists($proxyClass = $dumper->getProxyClass($definition, $asGhostObject), false)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/LazyServiceDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/LazyServiceDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/LazyServiceDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/LazyServiceDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
 
         if ($definition->hasTag('proxy')) {
             if (!$definition->isLazy()) {
-                throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": setting the "proxy" tag on a service requires it to be "lazy".', $id ?? $definition->getClass()));
+                throw new InvalidArgumentException(\sprintf('Invalid definition for service "%s": setting the "proxy" tag on a service requires it to be "lazy".', $id ?? $definition->getClass()));
             }
 
             return true;
@@ -69,7 +69,7 @@
         $instantiation = 'return';
 
         if ($definition->isShared()) {
-            $instantiation .= sprintf(' $container->%s[%s] =', $definition->isPublic() && !$definition->isPrivate() ? 'services' : 'privates', var_export($id, true));
+            $instantiation .= \sprintf(' $container->%s[%s] =', $definition->isPublic() && !$definition->isPrivate() ? 'services' : 'privates', var_export($id, true));
         }
 
         $asGhostObject = str_contains($factoryCode, '$proxy');
@@ -77,29 +77,29 @@
 
         if (!$asGhostObject) {
             return <<<EOF
-                    if (true === \$lazyLoad) {
-                        $instantiation \$container->createProxy('$proxyClass', static fn () => \\$proxyClass::createLazyProxy(static fn () => $factoryCode));
-                    }
+                        if (true === \$lazyLoad) {
+                            $instantiation \$container->createProxy('$proxyClass', static fn () => \\$proxyClass::createLazyProxy(static fn () => $factoryCode));
+                        }
 
 
-            EOF;
+                EOF;
         }
 
-        $factoryCode = sprintf('static fn ($proxy) => %s', $factoryCode);
+        $factoryCode = \sprintf('static fn ($proxy) => %s', $factoryCode);
 
         return <<<EOF
-                if (true === \$lazyLoad) {
-                    $instantiation \$container->createProxy('$proxyClass', static fn () => \\$proxyClass::createLazyGhost($factoryCode));
-                }
+                    if (true === \$lazyLoad) {
+                        $instantiation \$container->createProxy('$proxyClass', static fn () => \\$proxyClass::createLazyGhost($factoryCode));
+                    }
 
 
-        EOF;
+            EOF;
     }
 
     public function getProxyCode(Definition $definition, ?string $id = null): string
     {
         if (!$this->isProxyCandidate($definition, $asGhostObject, $id)) {
-            throw new InvalidArgumentException(sprintf('Cannot instantiate lazy proxy for service "%s".', $id ?? $definition->getClass()));
+            throw new InvalidArgumentException(\sprintf('Cannot instantiate lazy proxy for service "%s".', $id ?? $definition->getClass()));
         }
         $proxyClass = $this->getProxyClass($definition, $asGhostObject, $class);
 
@@ -107,7 +107,7 @@
             try {
                 return (\PHP_VERSION_ID >= 80200 && $class?->isReadOnly() ? 'readonly ' : '').'class '.$proxyClass.ProxyHelper::generateLazyGhost($class);
             } catch (LogicException $e) {
-                throw new InvalidArgumentException(sprintf('Cannot generate lazy ghost for service "%s".', $id ?? $definition->getClass()), 0, $e);
+                throw new InvalidArgumentException(\sprintf('Cannot generate lazy ghost for service "%s".', $id ?? $definition->getClass()), 0, $e);
             }
         }
         $interfaces = [];
@@ -115,13 +115,13 @@
         if ($definition->hasTag('proxy')) {
             foreach ($definition->getTag('proxy') as $tag) {
                 if (!isset($tag['interface'])) {
-                    throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": the "interface" attribute is missing on a "proxy" tag.', $id ?? $definition->getClass()));
+                    throw new InvalidArgumentException(\sprintf('Invalid definition for service "%s": the "interface" attribute is missing on a "proxy" tag.', $id ?? $definition->getClass()));
                 }
                 if (!interface_exists($tag['interface']) && !class_exists($tag['interface'], false)) {
-                    throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": several "proxy" tags found but "%s" is not an interface.', $id ?? $definition->getClass(), $tag['interface']));
+                    throw new InvalidArgumentException(\sprintf('Invalid definition for service "%s": several "proxy" tags found but "%s" is not an interface.', $id ?? $definition->getClass(), $tag['interface']));
                 }
                 if ('object' !== $definition->getClass() && !is_a($class->name, $tag['interface'], true)) {
-                    throw new InvalidArgumentException(sprintf('Invalid "proxy" tag for service "%s": class "%s" doesn\'t implement "%s".', $id ?? $definition->getClass(), $definition->getClass(), $tag['interface']));
+                    throw new InvalidArgumentException(\sprintf('Invalid "proxy" tag for service "%s": class "%s" doesn\'t implement "%s".', $id ?? $definition->getClass(), $definition->getClass(), $tag['interface']));
                 }
                 $interfaces[] = new \ReflectionClass($tag['interface']);
             }
@@ -135,7 +135,7 @@
         try {
             return (\PHP_VERSION_ID >= 80200 && $class?->isReadOnly() ? 'readonly ' : '').'class '.$proxyClass.ProxyHelper::generateLazyProxy($class, $interfaces);
         } catch (LogicException $e) {
-            throw new InvalidArgumentException(sprintf('Cannot generate lazy proxy for service "%s".', $id ?? $definition->getClass()), 0, $e);
+            throw new InvalidArgumentException(\sprintf('Cannot generate lazy proxy for service "%s".', $id ?? $definition->getClass()), 0, $e);
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/ProxyHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/ProxyHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/ProxyHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/LazyProxy/ProxyHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
                     return null;
                 }
 
-                $types[] = sprintf('(%s)', $typeHint);
+                $types[] = \sprintf('(%s)', $typeHint);
 
                 continue;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/AbstractConfigurator.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/AbstractConfigurator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/AbstractConfigurator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/AbstractConfigurator.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,18 +43,15 @@
             return $this->{'set'.$method}(...$args);
         }
 
-        throw new \BadMethodCallException(sprintf('Call to undefined method "%s::%s()".', static::class, $method));
+        throw new \BadMethodCallException(\sprintf('Call to undefined method "%s::%s()".', static::class, $method));
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -80,6 +77,18 @@
             $value = (self::$valuePreProcessor)($value, $allowServices);
         }
 
+        if ($value instanceof ParamConfigurator) {
+            return (string) $value;
+        }
+
+        if (\is_scalar($value ?? '') || $value instanceof \UnitEnum) {
+            return $value;
+        }
+
+        if (!$allowServices) {
+            throw new InvalidArgumentException(\sprintf('Cannot use values of type "%s" in service configuration files.', get_debug_type($value)));
+        }
+
         if ($value instanceof ReferenceConfigurator) {
             $reference = new Reference($value->id, $value->invalidBehavior);
 
@@ -93,31 +102,20 @@
             return $def;
         }
 
-        if ($value instanceof ParamConfigurator) {
-            return (string) $value;
-        }
-
         if ($value instanceof self) {
-            throw new InvalidArgumentException(sprintf('"%s()" can be used only at the root of service configuration files.', $value::FACTORY));
+            throw new InvalidArgumentException(\sprintf('"%s()" can be used only at the root of service configuration files.', $value::FACTORY));
         }
 
         switch (true) {
-            case null === $value:
-            case \is_scalar($value):
-            case $value instanceof \UnitEnum:
-                return $value;
-
             case $value instanceof ArgumentInterface:
             case $value instanceof Definition:
             case $value instanceof Expression:
             case $value instanceof Parameter:
             case $value instanceof AbstractArgument:
             case $value instanceof Reference:
-                if ($allowServices) {
-                    return $value;
-                }
+                return $value;
         }
 
-        throw new InvalidArgumentException(sprintf('Cannot use values of type "%s" in service configuration files.', get_debug_type($value)));
+        throw new InvalidArgumentException(\sprintf('Cannot use values of type "%s" in service configuration files.', get_debug_type($value)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ContainerConfigurator.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ContainerConfigurator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ContainerConfigurator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ContainerConfigurator.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,8 +51,8 @@
     final public function extension(string $namespace, array $config): void
     {
         if (!$this->container->hasExtension($namespace)) {
-            $extensions = array_filter(array_map(fn (ExtensionInterface $ext) => $ext->getAlias(), $this->container->getExtensions()));
-            throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $namespace, $this->file, $namespace, $extensions ? implode('", "', $extensions) : 'none'));
+            $extensions = array_filter(array_map(static fn (ExtensionInterface $ext) => $ext->getAlias(), $this->container->getExtensions()));
+            throw new InvalidArgumentException(\sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $namespace, $this->file, $namespace, $extensions ? implode('", "', $extensions) : 'none'));
         }
 
         $this->container->loadFromExtension($namespace, static::processValue($config));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/DefaultsConfigurator.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/DefaultsConfigurator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/DefaultsConfigurator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/DefaultsConfigurator.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
                 $this->validateAttributes($tag, $value, [...$path, $name]);
             } elseif (!\is_scalar($value ?? '')) {
                 $name = implode('.', [...$path, $name]);
-                throw new InvalidArgumentException(sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type or an array of scalar-type.', $tag, $name));
+                throw new InvalidArgumentException(\sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type or an array of scalar-type.', $tag, $name));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ParametersConfigurator.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ParametersConfigurator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ParametersConfigurator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ParametersConfigurator.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
     final public function set(string $name, mixed $value): static
     {
         if ($value instanceof Expression) {
-            throw new InvalidArgumentException(sprintf('Using an expression in parameter "%s" is not allowed.', $name));
+            throw new InvalidArgumentException(\sprintf('Using an expression in parameter "%s" is not allowed.', $name));
         }
 
         $this->container->setParameter($name, static::processValue($value, true));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ServicesConfigurator.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ServicesConfigurator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ServicesConfigurator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/ServicesConfigurator.php	2026-05-20 10:56:49.000000000 +0200
@@ -80,7 +80,7 @@
                 throw new \LogicException('Anonymous services must have a class name.');
             }
 
-            $id = sprintf('.%d_%s', ++$this->anonymousCount, preg_replace('/^.*\\\\/', '', $class).'~'.$this->anonymousHash);
+            $id = \sprintf('.%d_%s', ++$this->anonymousCount, preg_replace('/^.*\\\\/', '', $class).'~'.$this->anonymousHash);
         } elseif (!$defaults->isPublic() || !$defaults->isPrivate()) {
             $definition->setPublic($defaults->isPublic() && !$defaults->isPrivate());
         }
@@ -163,7 +163,7 @@
 
                 $services[$i] = $definition;
             } elseif (!$service instanceof ReferenceConfigurator) {
-                throw new InvalidArgumentException(sprintf('"%s()" expects a list of definitions as returned by "%s()" or "%s()", "%s" given at index "%s" for service "%s".', __METHOD__, InlineServiceConfigurator::FACTORY, ReferenceConfigurator::FACTORY, $service instanceof AbstractConfigurator ? $service::FACTORY.'()' : get_debug_type($service), $i, $id));
+                throw new InvalidArgumentException(\sprintf('"%s()" expects a list of definitions as returned by "%s()" or "%s()", "%s" given at index "%s" for service "%s".', __METHOD__, InlineServiceConfigurator::FACTORY, ReferenceConfigurator::FACTORY, $service instanceof AbstractConfigurator ? $service::FACTORY.'()' : get_debug_type($service), $i, $id));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/FactoryTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/FactoryTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/FactoryTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/FactoryTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
         if (\is_string($factory) && 1 === substr_count($factory, ':')) {
             $factoryParts = explode(':', $factory);
 
-            throw new InvalidArgumentException(sprintf('Invalid factory "%s": the "service:method" notation is not available when using PHP-based DI configuration. Use "[service(\'%s\'), \'%s\']" instead.', $factory, $factoryParts[0], $factoryParts[1]));
+            throw new InvalidArgumentException(\sprintf('Invalid factory "%s": the "service:method" notation is not available when using PHP-based DI configuration. Use "[service(\'%s\'), \'%s\']" instead.', $factory, $factoryParts[0], $factoryParts[1]));
         }
 
         if ($factory instanceof Expression) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/FromCallableTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/FromCallableTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/FromCallableTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/FromCallableTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
             'calls' => 'getMethodCalls',
         ] as $key => $method) {
             if ($this->definition->$method()) {
-                throw new InvalidArgumentException(sprintf('The configuration key "%s" is unsupported when using "fromCallable()".', $key));
+                throw new InvalidArgumentException(\sprintf('The configuration key "%s" is unsupported when using "fromCallable()".', $key));
             }
         }
 
@@ -44,7 +44,7 @@
         if (\is_string($callable) && 1 === substr_count($callable, ':')) {
             $parts = explode(':', $callable);
 
-            throw new InvalidArgumentException(sprintf('Invalid callable "%s": the "service:method" notation is not available when using PHP-based DI configuration. Use "[service(\'%s\'), \'%s\']" instead.', $callable, $parts[0], $parts[1]));
+            throw new InvalidArgumentException(\sprintf('Invalid callable "%s": the "service:method" notation is not available when using PHP-based DI configuration. Use "[service(\'%s\'), \'%s\']" instead.', $callable, $parts[0], $parts[1]));
         }
 
         if ($callable instanceof Expression) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/ParentTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/ParentTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/ParentTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/ParentTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     final public function parent(string $parent): static
     {
         if (!$this->allowParent) {
-            throw new InvalidArgumentException(sprintf('A parent cannot be defined when either "_instanceof" or "_defaults" are also defined for service prototype "%s".', $this->id));
+            throw new InvalidArgumentException(\sprintf('A parent cannot be defined when either "_instanceof" or "_defaults" are also defined for service prototype "%s".', $this->id));
         }
 
         if ($this->definition instanceof ChildDefinition) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/TagTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/TagTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/TagTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/Configurator/Traits/TagTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,7 @@
     final public function tag(string $name, array $attributes = []): static
     {
         if ('' === $name) {
-            throw new InvalidArgumentException(sprintf('The tag name for service "%s" must be a non-empty string.', $this->id));
+            throw new InvalidArgumentException(\sprintf('The tag name for service "%s" must be a non-empty string.', $this->id));
         }
 
         $this->validateAttributes($name, $attributes);
@@ -40,7 +40,7 @@
                 $this->validateAttributes($tag, $value, [...$path, $name]);
             } elseif (!\is_scalar($value ?? '')) {
                 $name = implode('.', [...$path, $name]);
-                throw new InvalidArgumentException(sprintf('A tag attribute must be of a scalar-type or an array of scalar-types for service "%s", tag "%s", attribute "%s".', $this->id, $tag, $name));
+                throw new InvalidArgumentException(\sprintf('A tag attribute must be of a scalar-type or an array of scalar-types for service "%s", tag "%s", attribute "%s".', $this->id, $tag, $name));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/FileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/FileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/FileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/FileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
  */
 abstract class FileLoader extends BaseFileLoader
 {
-    public const ANONYMOUS_ID_REGEXP = '/^\.\d+_[^~]*+~[._a-zA-Z\d]{7}$/';
+    public const ANONYMOUS_ID_REGEXP = ContainerBuilder::ANONYMOUS_ID_REGEXP;
 
     protected $container;
     protected $isLoadingInstanceof = false;
@@ -63,7 +63,7 @@
         if ($ignoreNotFound = 'not_found' === $ignoreErrors) {
             $args[2] = false;
         } elseif (!\is_bool($ignoreErrors)) {
-            throw new \TypeError(sprintf('Invalid argument $ignoreErrors provided to "%s::import()": boolean or "not_found" expected, "%s" given.', static::class, get_debug_type($ignoreErrors)));
+            throw new \TypeError(\sprintf('Invalid argument $ignoreErrors provided to "%s::import()": boolean or "not_found" expected, "%s" given.', static::class, get_debug_type($ignoreErrors)));
         }
 
         try {
@@ -101,10 +101,10 @@
     public function registerClasses(Definition $prototype, string $namespace, string $resource, string|array|null $exclude = null/* , string $source = null */)
     {
         if (!str_ends_with($namespace, '\\')) {
-            throw new InvalidArgumentException(sprintf('Namespace prefix must end with a "\\": "%s".', $namespace));
+            throw new InvalidArgumentException(\sprintf('Namespace prefix must end with a "\\": "%s".', $namespace));
         }
         if (!preg_match('/^(?:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+\\\\)++$/', $namespace)) {
-            throw new InvalidArgumentException(sprintf('Namespace is not a valid PSR-4 prefix: "%s".', $namespace));
+            throw new InvalidArgumentException(\sprintf('Namespace is not a valid PSR-4 prefix: "%s".', $namespace));
         }
         // This can happen with YAML files
         if (\is_array($exclude) && \in_array(null, $exclude, true)) {
@@ -166,12 +166,12 @@
                 $this->interfaces[] = $class;
             } else {
                 $this->setDefinition($class, $definition = $getPrototype());
+                $definition->setClass($class);
                 if (null !== $errorMessage) {
                     $definition->addError($errorMessage);
 
                     continue;
                 }
-                $definition->setClass($class);
 
                 $interfaces = [];
                 foreach (class_implements($class, false) as $interface) {
@@ -190,10 +190,10 @@
                     $alias = $attribute->id ?? $defaultAlias;
                     $public = $attribute->public;
                     if (null === $alias) {
-                        throw new LogicException(sprintf('Alias cannot be automatically determined for class "%s". If you have used the #[AsAlias] attribute with a class implementing multiple interfaces, add the interface you want to alias to the first parameter of #[AsAlias].', $class));
+                        throw new LogicException(\sprintf('Alias cannot be automatically determined for class "%s". If you have used the #[AsAlias] attribute with a class implementing multiple interfaces, add the interface you want to alias to the first parameter of #[AsAlias].', $class));
                     }
                     if (isset($this->aliases[$alias])) {
-                        throw new LogicException(sprintf('The "%s" alias has already been defined with the #[AsAlias] attribute in "%s".', $alias, $this->aliases[$alias]));
+                        throw new LogicException(\sprintf('The "%s" alias has already been defined with the #[AsAlias] attribute in "%s".', $alias, $this->aliases[$alias]));
                     }
                     $this->aliases[$alias] = new Alias($class, $public);
                 }
@@ -240,7 +240,7 @@
 
         if ($this->isLoadingInstanceof) {
             if (!$definition instanceof ChildDefinition) {
-                throw new InvalidArgumentException(sprintf('Invalid type definition "%s": ChildDefinition expected, "%s" given.', $id, get_debug_type($definition)));
+                throw new InvalidArgumentException(\sprintf('Invalid type definition "%s": ChildDefinition expected, "%s" given.', $id, get_debug_type($definition)));
             }
             $this->instanceof[$id] = $definition;
         } else {
@@ -272,7 +272,7 @@
                 $prefixLen = \strlen($resource->getPrefix());
 
                 if ($excludePrefix && !str_starts_with($excludePrefix, $resource->getPrefix())) {
-                    throw new InvalidArgumentException(sprintf('Invalid "exclude" pattern when importing classes for "%s": make sure your "exclude" pattern (%s) is a subset of the "resource" pattern (%s).', $namespace, $excludePattern, $pattern));
+                    throw new InvalidArgumentException(\sprintf('Invalid "exclude" pattern when importing classes for "%s": make sure your "exclude" pattern (%s) is a subset of the "resource" pattern (%s).', $namespace, $excludePattern, $pattern));
                 }
             }
 
@@ -297,7 +297,7 @@
             }
             // check to make sure the expected class exists
             if (!$r) {
-                throw new InvalidArgumentException(sprintf('Expected to find class "%s" in file "%s" while importing services from resource "%s", but it was not found! Check the namespace prefix used with the resource.', $class, $path, $pattern));
+                throw new InvalidArgumentException(\sprintf('Expected to find class "%s" in file "%s" while importing services from resource "%s", but it was not found! Check the namespace prefix used with the resource.', $class, $path, $pattern));
             }
 
             if ($r->isInstantiable() || $r->isInterface()) {
@@ -337,7 +337,7 @@
         static $attributes = [];
 
         if (null !== $source && !isset($attributes[$source])) {
-            $attributes[$source] = ['source' => sprintf('in "%s/%s"', basename(\dirname($source)), basename($source))];
+            $attributes[$source] = ['source' => \sprintf('in "%s/%s"', basename(\dirname($source)), basename($source))];
         }
 
         $this->container->register($class, $class)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/IniFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/IniFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/IniFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/IniFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         // first pass to catch parsing errors
         $result = parse_ini_file($path, true);
         if (false === $result || [] === $result) {
-            throw new InvalidArgumentException(sprintf('The "%s" file is not valid.', $resource));
+            throw new InvalidArgumentException(\sprintf('The "%s" file is not valid.', $resource));
         }
 
         // real raw parsing
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,6 +57,9 @@
             return include $path;
         }, $this, ProtectedPhpFileLoader::class);
 
+        $instanceof = $this->instanceof;
+        $this->instanceof = [];
+
         try {
             $callback = $load($path, $this->env);
 
@@ -64,7 +67,7 @@
                 $this->executeCallback($callback, new ContainerConfigurator($this->container, $this, $this->instanceof, $path, $resource, $this->env), $path);
             }
         } finally {
-            $this->instanceof = [];
+            $this->instanceof = $instanceof;
             $this->registerAliasesForSinglyImplementedInterfaces();
         }
 
@@ -108,7 +111,7 @@
         foreach ($r->getParameters() as $parameter) {
             $reflectionType = $parameter->getType();
             if (!$reflectionType instanceof \ReflectionNamedType) {
-                throw new \InvalidArgumentException(sprintf('Could not resolve argument "$%s" for "%s". You must typehint it (for example with "%s" or "%s").', $parameter->getName(), $path, ContainerConfigurator::class, ContainerBuilder::class));
+                throw new \InvalidArgumentException(\sprintf('Could not resolve argument "$%s" for "%s". You must typehint it (for example with "%s" or "%s").', $parameter->getName(), $path, ContainerConfigurator::class, ContainerBuilder::class));
             }
             $type = $reflectionType->getName();
 
@@ -133,7 +136,7 @@
                     try {
                         $configBuilder = $this->configBuilder($type);
                     } catch (InvalidArgumentException|\LogicException $e) {
-                        throw new \InvalidArgumentException(sprintf('Could not resolve argument "%s" for "%s".', $type.' $'.$parameter->getName(), $path), 0, $e);
+                        throw new \InvalidArgumentException(\sprintf('Could not resolve argument "%s" for "%s".', $type.' $'.$parameter->getName(), $path), 0, $e);
                     }
                     $configBuilders[] = $configBuilder;
                     $arguments[] = $configBuilder;
@@ -171,7 +174,7 @@
 
         // If it does not start with Symfony\Config\ we don't know how to handle this
         if (!str_starts_with($namespace, 'Symfony\\Config\\')) {
-            throw new InvalidArgumentException(sprintf('Could not find or generate class "%s".', $namespace));
+            throw new InvalidArgumentException(\sprintf('Could not find or generate class "%s".', $namespace));
         }
 
         // Try to get the extension alias
@@ -182,13 +185,13 @@
         }
 
         if (!$this->container->hasExtension($alias)) {
-            $extensions = array_filter(array_map(fn (ExtensionInterface $ext) => $ext->getAlias(), $this->container->getExtensions()));
-            throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s". Looked for namespace "%s", found "%s".', $namespace, $alias, $extensions ? implode('", "', $extensions) : 'none'));
+            $extensions = array_filter(array_map(static fn (ExtensionInterface $ext) => $ext->getAlias(), $this->container->getExtensions()));
+            throw new InvalidArgumentException(\sprintf('There is no extension able to load the configuration for "%s". Looked for namespace "%s", found "%s".', $namespace, $alias, $extensions ? implode('", "', $extensions) : 'none'));
         }
 
         $extension = $this->container->getExtension($alias);
         if (!$extension instanceof ConfigurationExtensionInterface) {
-            throw new \LogicException(sprintf('You cannot use the config builder for "%s" because the extension does not implement "%s".', $namespace, ConfigurationExtensionInterface::class));
+            throw new \LogicException(\sprintf('You cannot use the config builder for "%s" because the extension does not implement "%s".', $namespace, ConfigurationExtensionInterface::class));
         }
 
         $configuration = $extension->getConfiguration([], $this->container);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
         if ($this->env) {
             $xpath = new \DOMXPath($xml);
             $xpath->registerNamespace('container', self::NS);
-            foreach ($xpath->query(sprintf('//container:when[@env="%s"]', $this->env)) ?: [] as $root) {
+            foreach ($xpath->query(\sprintf('//container:when[@env="%s"]', $this->env)) ?: [] as $root) {
                 $env = $this->env;
                 $this->env = null;
                 try {
@@ -222,11 +222,11 @@
                 $version = $deprecated[0]->getAttribute('version') ?: '';
 
                 if (!$deprecated[0]->hasAttribute('package')) {
-                    throw new InvalidArgumentException(sprintf('Missing attribute "package" at node "deprecated" in "%s".', $file));
+                    throw new InvalidArgumentException(\sprintf('Missing attribute "package" at node "deprecated" in "%s".', $file));
                 }
 
                 if (!$deprecated[0]->hasAttribute('version')) {
-                    throw new InvalidArgumentException(sprintf('Missing attribute "version" at node "deprecated" in "%s".', $file));
+                    throw new InvalidArgumentException(\sprintf('Missing attribute "version" at node "deprecated" in "%s".', $file));
                 }
 
                 $alias->setDeprecated($package, $version, $message);
@@ -282,11 +282,11 @@
             $version = $deprecated[0]->getAttribute('version') ?: '';
 
             if (!$deprecated[0]->hasAttribute('package')) {
-                throw new InvalidArgumentException(sprintf('Missing attribute "package" at node "deprecated" in "%s".', $file));
+                throw new InvalidArgumentException(\sprintf('Missing attribute "package" at node "deprecated" in "%s".', $file));
             }
 
             if (!$deprecated[0]->hasAttribute('version')) {
-                throw new InvalidArgumentException(sprintf('Missing attribute "version" at node "deprecated" in "%s".', $file));
+                throw new InvalidArgumentException(\sprintf('Missing attribute "version" at node "deprecated" in "%s".', $file));
             }
 
             $definition->setDeprecated($package, $version, $message);
@@ -317,7 +317,7 @@
 
         if ($constructor = $service->getAttribute('constructor')) {
             if (null !== $definition->getFactory()) {
-                throw new LogicException(sprintf('The "%s" service cannot declare a factory as well as a constructor.', $service->getAttribute('id')));
+                throw new LogicException(\sprintf('The "%s" service cannot declare a factory as well as a constructor.', $service->getAttribute('id')));
             }
 
             $definition->setFactory([null, $constructor]);
@@ -339,7 +339,11 @@
         }
 
         foreach ($this->getChildren($service, 'call') as $call) {
-            $definition->addMethodCall($call->getAttribute('method'), $this->getArgumentsAsPhp($call, 'argument', $file), XmlUtils::phpize($call->getAttribute('returns-clone')));
+            $definition->addMethodCall(
+                $call->getAttribute('method'),
+                $this->getArgumentsAsPhp($call, 'argument', $file),
+                XmlUtils::phpize($call->getAttribute('returns-clone')) ?: false
+            );
         }
 
         $tags = $this->getChildren($service, 'tag');
@@ -347,10 +351,10 @@
         foreach ($tags as $tag) {
             $tagNameComesFromAttribute = $tag->childElementCount || '' === $tag->nodeValue;
             if ('' === $tagName = $tagNameComesFromAttribute ? $tag->getAttribute('name') : $tag->nodeValue) {
-                throw new InvalidArgumentException(sprintf('The tag name for service "%s" in "%s" must be a non-empty string.', (string) $service->getAttribute('id'), $file));
+                throw new InvalidArgumentException(\sprintf('The tag name for service "%s" in "%s" must be a non-empty string.', (string) $service->getAttribute('id'), $file));
             }
 
-            $parameters = $this->getTagAttributes($tag, sprintf('The attribute name of tag "%s" for service "%s" in %s must be a non-empty string.', $tagName, (string) $service->getAttribute('id'), $file));
+            $parameters = $this->getTagAttributes($tag, \sprintf('The attribute name of tag "%s" for service "%s" in %s must be a non-empty string.', $tagName, (string) $service->getAttribute('id'), $file));
             foreach ($tag->attributes as $name => $node) {
                 if ($tagNameComesFromAttribute && 'name' === $name) {
                     continue;
@@ -390,7 +394,7 @@
             } elseif ('null' === $decorationOnInvalid) {
                 $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE;
             } else {
-                throw new InvalidArgumentException(sprintf('Invalid value "%s" for attribute "decoration-on-invalid" on service "%s". Did you mean "exception", "ignore" or "null" in "%s"?', $decorationOnInvalid, $service->getAttribute('id'), $file));
+                throw new InvalidArgumentException(\sprintf('Invalid value "%s" for attribute "decoration-on-invalid" on service "%s". Did you mean "exception", "ignore" or "null" in "%s"?', $decorationOnInvalid, $service->getAttribute('id'), $file));
             }
 
             $renameId = $service->hasAttribute('decoration-inner-name') ? $service->getAttribute('decoration-inner-name') : null;
@@ -401,7 +405,7 @@
 
         if ($callable = $this->getChildren($service, 'from-callable')) {
             if ($definition instanceof ChildDefinition) {
-                throw new InvalidArgumentException(sprintf('Attribute "parent" is unsupported when using "<from-callable>" on service "%s".', (string) $service->getAttribute('id')));
+                throw new InvalidArgumentException(\sprintf('Attribute "parent" is unsupported when using "<from-callable>" on service "%s".', (string) $service->getAttribute('id')));
             }
 
             foreach ([
@@ -414,7 +418,7 @@
                 'Tag "<call>"' => 'getMethodCalls',
             ] as $key => $method) {
                 if ($definition->$method()) {
-                    throw new InvalidArgumentException($key.sprintf(' is unsupported when using "<from-callable>" on service "%s".', (string) $service->getAttribute('id')));
+                    throw new InvalidArgumentException($key.\sprintf(' is unsupported when using "<from-callable>" on service "%s".', (string) $service->getAttribute('id')));
                 }
             }
 
@@ -483,7 +487,7 @@
                 }
             }
             if ($errors) {
-                throw new InvalidArgumentException(sprintf('Unable to parse file "%s": ', $file).implode("\n", $errors), $e->getCode(), $e);
+                throw new InvalidArgumentException(\sprintf('Unable to parse file "%s": ', $file).implode("\n", $errors), $e->getCode(), $e);
             }
         }
 
@@ -509,7 +513,7 @@
             foreach ($nodes as $node) {
                 if ($services = $this->getChildren($node, 'service')) {
                     // give it a unique name
-                    $id = sprintf('.%d_%s', ++$count, preg_replace('/^.*\\\\/', '', $services[0]->getAttribute('class')).$suffix);
+                    $id = \sprintf('.%d_%s', ++$count, preg_replace('/^.*\\\\/', '', $services[0]->getAttribute('class')).$suffix);
                     $node->setAttribute('id', $id);
                     $node->setAttribute('service', $id);
 
@@ -526,7 +530,7 @@
         // anonymous services "in the wild"
         if (false !== $nodes = $xpath->query('.//container:services/container:service[not(@id)]', $root)) {
             foreach ($nodes as $node) {
-                throw new InvalidArgumentException(sprintf('Top-level services must have "id" attribute, none found in "%s" at line %d.', $file, $node->getLineNo()));
+                throw new InvalidArgumentException(\sprintf('Top-level services must have "id" attribute, none found in "%s" at line %d.', $file, $node->getLineNo()));
             }
         }
 
@@ -574,7 +578,7 @@
             switch ($type = $arg->getAttribute('type')) {
                 case 'service':
                     if ('' === $arg->getAttribute('id')) {
-                        throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="service" has no or empty "id" attribute in "%s".', $name, $file));
+                        throw new InvalidArgumentException(\sprintf('Tag "<%s>" with type="service" has no or empty "id" attribute in "%s".', $name, $file));
                     }
 
                     $arguments[$key] = new Reference($arg->getAttribute('id'), $invalidBehavior);
@@ -622,7 +626,7 @@
                     $forLocator = 'tagged_locator' === $type;
 
                     if (!$arg->getAttribute('tag')) {
-                        throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="%s" has no or empty "tag" attribute in "%s".', $name, $type, $file));
+                        throw new InvalidArgumentException(\sprintf('Tag "<%s>" with type="%s" has no or empty "tag" attribute in "%s".', $name, $type, $file));
                     }
 
                     $excludes = array_column($this->getChildren($arg, 'exclude'), 'nodeValue');
@@ -641,7 +645,7 @@
                     break;
                 case 'binary':
                     if (false === $value = base64_decode($arg->nodeValue)) {
-                        throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="binary" is not a valid base64 encoded string.', $name));
+                        throw new InvalidArgumentException(\sprintf('Tag "<%s>" with type="binary" is not a valid base64 encoded string.', $name));
                     }
                     $arguments[$key] = $value;
                     break;
@@ -724,7 +728,7 @@
                     $path = str_replace([$ns, str_replace('http://', 'https://', $ns)], str_replace('\\', '/', $extension->getXsdValidationBasePath()).'/', $items[$i + 1]);
 
                     if (!is_file($path)) {
-                        throw new RuntimeException(sprintf('Extension "%s" references a non-existent XSD file "%s".', get_debug_type($extension), $path));
+                        throw new RuntimeException(\sprintf('Extension "%s" references a non-existent XSD file "%s".', get_debug_type($extension), $path));
                     }
 
                     $schemaLocations[$items[$i]] = $path;
@@ -735,38 +739,39 @@
         $tmpfiles = [];
         $imports = '';
         foreach ($schemaLocations as $namespace => $location) {
-            $parts = explode('/', $location);
-            $locationstart = 'file:///';
             if (0 === stripos($location, 'phar://')) {
-                $tmpfile = tempnam(sys_get_temp_dir(), 'symfony');
-                if ($tmpfile) {
+                if ($tmpfile = tempnam(sys_get_temp_dir(), 'symfony')) {
                     copy($location, $tmpfile);
                     $tmpfiles[] = $tmpfile;
-                    $parts = explode('/', str_replace('\\', '/', $tmpfile));
+                    $location = self::getFileUrl($tmpfile);
                 } else {
+                    $parts = explode('/', '\\' === \DIRECTORY_SEPARATOR ? str_replace('\\', '/', $location) : $location);
                     array_shift($parts);
-                    $locationstart = 'phar:///';
+                    $drive = '\\' === \DIRECTORY_SEPARATOR ? array_shift($parts).'/' : '';
+                    $location = 'phar:///'.$drive.implode('/', array_map('rawurlencode', $parts));
                 }
             } elseif ('\\' === \DIRECTORY_SEPARATOR && str_starts_with($location, '\\\\')) {
-                $locationstart = '';
+                $parts = explode('/', $location);
+                $drive = array_shift($parts).'/';
+                $location = $drive.implode('/', array_map('rawurlencode', $parts));
+            } else {
+                $location = self::getFileUrl($location);
             }
-            $drive = '\\' === \DIRECTORY_SEPARATOR ? array_shift($parts).'/' : '';
-            $location = $locationstart.$drive.implode('/', array_map('rawurlencode', $parts));
 
-            $imports .= sprintf('  <xsd:import namespace="%s" schemaLocation="%s" />'."\n", $namespace, $location);
+            $imports .= \sprintf('  <xsd:import namespace="%s" schemaLocation="%s" />'."\n", $namespace, $location);
         }
 
         $source = <<<EOF
-<?xml version="1.0" encoding="utf-8" ?>
-<xsd:schema xmlns="http://symfony.com/schema"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    targetNamespace="http://symfony.com/schema"
-    elementFormDefault="qualified">
-
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
-$imports
-</xsd:schema>
-EOF
+            <?xml version="1.0" encoding="utf-8" ?>
+            <xsd:schema xmlns="http://symfony.com/schema"
+                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                targetNamespace="http://symfony.com/schema"
+                elementFormDefault="qualified">
+
+                <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+            $imports
+            </xsd:schema>
+            EOF
         ;
 
         if ($this->shouldEnableEntityLoader()) {
@@ -796,7 +801,7 @@
             });
             $schema = '<?xml version="1.0" encoding="utf-8"?>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <xsd:include schemaLocation="file:///'.rawurlencode(str_replace('\\', '/', $tmpfile)).'" />
+  <xsd:include schemaLocation="'.self::getFileUrl($tmpfile).'" />
 </xsd:schema>';
             file_put_contents($tmpfile, '<?xml version="1.0" encoding="utf-8"?>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
@@ -808,11 +813,24 @@
         return !@$dom->schemaValidateSource($schema);
     }
 
+    private static function getFileUrl(string $path): string
+    {
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            $parts = explode('/', str_replace('\\', '/', $path));
+            $drive = array_shift($parts).'/';
+        } else {
+            $parts = explode('/', $path);
+            $drive = '';
+        }
+
+        return 'file:///'.$drive.implode('/', array_map('rawurlencode', $parts));
+    }
+
     private function validateAlias(\DOMElement $alias, string $file): void
     {
         foreach ($alias->attributes as $name => $node) {
             if (!\in_array($name, ['alias', 'id', 'public'])) {
-                throw new InvalidArgumentException(sprintf('Invalid attribute "%s" defined for alias "%s" in "%s".', $name, $alias->getAttribute('id'), $file));
+                throw new InvalidArgumentException(\sprintf('Invalid attribute "%s" defined for alias "%s" in "%s".', $name, $alias->getAttribute('id'), $file));
             }
         }
 
@@ -821,7 +839,7 @@
                 continue;
             }
             if ('deprecated' !== $child->localName) {
-                throw new InvalidArgumentException(sprintf('Invalid child element "%s" defined for alias "%s" in "%s".', $child->localName, $alias->getAttribute('id'), $file));
+                throw new InvalidArgumentException(\sprintf('Invalid child element "%s" defined for alias "%s" in "%s".', $child->localName, $alias->getAttribute('id'), $file));
             }
         }
     }
@@ -840,8 +858,8 @@
 
             // can it be handled by an extension?
             if (!$this->container->hasExtension($node->namespaceURI)) {
-                $extensionNamespaces = array_filter(array_map(fn (ExtensionInterface $ext) => $ext->getNamespace(), $this->container->getExtensions()));
-                throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $node->tagName, $file, $node->namespaceURI, $extensionNamespaces ? implode('", "', $extensionNamespaces) : 'none'));
+                $extensionNamespaces = array_filter(array_map(static fn (ExtensionInterface $ext) => $ext->getNamespace(), $this->container->getExtensions()));
+                throw new InvalidArgumentException(\sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $node->tagName, $file, $node->namespaceURI, $extensionNamespaces ? implode('", "', $extensionNamespaces) : 'none'));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -135,7 +135,7 @@
         // per-env configuration
         if ($this->env && isset($content['when@'.$this->env])) {
             if (!\is_array($content['when@'.$this->env])) {
-                throw new InvalidArgumentException(sprintf('The "when@%s" key should contain an array in "%s". Check your YAML syntax.', $this->env, $path));
+                throw new InvalidArgumentException(\sprintf('The "when@%s" key should contain an array in "%s". Check your YAML syntax.', $this->env, $path));
             }
 
             $env = $this->env;
@@ -158,7 +158,7 @@
         // parameters
         if (isset($content['parameters'])) {
             if (!\is_array($content['parameters'])) {
-                throw new InvalidArgumentException(sprintf('The "parameters" key should contain an array in "%s". Check your YAML syntax.', $path));
+                throw new InvalidArgumentException(\sprintf('The "parameters" key should contain an array in "%s". Check your YAML syntax.', $path));
             }
 
             foreach ($content['parameters'] as $key => $value) {
@@ -201,7 +201,7 @@
         }
 
         if (!\is_array($content['imports'])) {
-            throw new InvalidArgumentException(sprintf('The "imports" key should contain an array in "%s". Check your YAML syntax.', $file));
+            throw new InvalidArgumentException(\sprintf('The "imports" key should contain an array in "%s". Check your YAML syntax.', $file));
         }
 
         $defaultDirectory = \dirname($file);
@@ -210,7 +210,7 @@
                 $import = ['resource' => $import];
             }
             if (!isset($import['resource'])) {
-                throw new InvalidArgumentException(sprintf('An import should provide a resource in "%s". Check your YAML syntax.', $file));
+                throw new InvalidArgumentException(\sprintf('An import should provide a resource in "%s". Check your YAML syntax.', $file));
             }
 
             $this->setCurrentDir($defaultDirectory);
@@ -225,7 +225,7 @@
         }
 
         if (!\is_array($content['services'])) {
-            throw new InvalidArgumentException(sprintf('The "services" key should contain an array in "%s". Check your YAML syntax.', $file));
+            throw new InvalidArgumentException(\sprintf('The "services" key should contain an array in "%s". Check your YAML syntax.', $file));
         }
 
         if (\array_key_exists('_instanceof', $content['services'])) {
@@ -233,16 +233,16 @@
             unset($content['services']['_instanceof']);
 
             if (!\is_array($instanceof)) {
-                throw new InvalidArgumentException(sprintf('Service "_instanceof" key must be an array, "%s" given in "%s".', get_debug_type($instanceof), $file));
+                throw new InvalidArgumentException(\sprintf('Service "_instanceof" key must be an array, "%s" given in "%s".', get_debug_type($instanceof), $file));
             }
             $this->instanceof = [];
             $this->isLoadingInstanceof = true;
             foreach ($instanceof as $id => $service) {
                 if (!$service || !\is_array($service)) {
-                    throw new InvalidArgumentException(sprintf('Type definition "%s" must be a non-empty array within "_instanceof" in "%s". Check your YAML syntax.', $id, $file));
+                    throw new InvalidArgumentException(\sprintf('Type definition "%s" must be a non-empty array within "_instanceof" in "%s". Check your YAML syntax.', $id, $file));
                 }
                 if (\is_string($service) && str_starts_with($service, '@')) {
-                    throw new InvalidArgumentException(sprintf('Type definition "%s" cannot be an alias within "_instanceof" in "%s". Check your YAML syntax.', $id, $file));
+                    throw new InvalidArgumentException(\sprintf('Type definition "%s" cannot be an alias within "_instanceof" in "%s". Check your YAML syntax.', $id, $file));
                 }
                 $this->parseDefinition($id, $service, $file, [], false, $trackBindings);
             }
@@ -267,18 +267,18 @@
         unset($content['services']['_defaults']);
 
         if (!\is_array($defaults)) {
-            throw new InvalidArgumentException(sprintf('Service "_defaults" key must be an array, "%s" given in "%s".', get_debug_type($defaults), $file));
+            throw new InvalidArgumentException(\sprintf('Service "_defaults" key must be an array, "%s" given in "%s".', get_debug_type($defaults), $file));
         }
 
         foreach ($defaults as $key => $default) {
             if (!isset(self::DEFAULTS_KEYWORDS[$key])) {
-                throw new InvalidArgumentException(sprintf('The configuration key "%s" cannot be used to define a default value in "%s". Allowed keys are "%s".', $key, $file, implode('", "', self::DEFAULTS_KEYWORDS)));
+                throw new InvalidArgumentException(\sprintf('The configuration key "%s" cannot be used to define a default value in "%s". Allowed keys are "%s".', $key, $file, implode('", "', self::DEFAULTS_KEYWORDS)));
             }
         }
 
         if (isset($defaults['tags'])) {
             if (!\is_array($tags = $defaults['tags'])) {
-                throw new InvalidArgumentException(sprintf('Parameter "tags" in "_defaults" must be an array in "%s". Check your YAML syntax.', $file));
+                throw new InvalidArgumentException(\sprintf('Parameter "tags" in "_defaults" must be an array in "%s". Check your YAML syntax.', $file));
             }
 
             foreach ($tags as $tag) {
@@ -291,23 +291,23 @@
                     $tag = current($tag);
                 } else {
                     if (!isset($tag['name'])) {
-                        throw new InvalidArgumentException(sprintf('A "tags" entry in "_defaults" is missing a "name" key in "%s".', $file));
+                        throw new InvalidArgumentException(\sprintf('A "tags" entry in "_defaults" is missing a "name" key in "%s".', $file));
                     }
                     $name = $tag['name'];
                     unset($tag['name']);
                 }
 
                 if (!\is_string($name) || '' === $name) {
-                    throw new InvalidArgumentException(sprintf('The tag name in "_defaults" must be a non-empty string in "%s".', $file));
+                    throw new InvalidArgumentException(\sprintf('The tag name in "_defaults" must be a non-empty string in "%s".', $file));
                 }
 
-                $this->validateAttributes(sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type in "%s". Check your YAML syntax.', $name, '%s', $file), $tag);
+                $this->validateAttributes(\sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type in "%s". Check your YAML syntax.', $name, '%s', $file), $tag);
             }
         }
 
         if (isset($defaults['bind'])) {
             if (!\is_array($defaults['bind'])) {
-                throw new InvalidArgumentException(sprintf('Parameter "bind" in "_defaults" must be an array in "%s". Check your YAML syntax.', $file));
+                throw new InvalidArgumentException(\sprintf('Parameter "bind" in "_defaults" must be an array in "%s". Check your YAML syntax.', $file));
             }
 
             foreach ($this->resolveServices($defaults['bind'], $file) as $argument => $value) {
@@ -335,7 +335,7 @@
     private function parseDefinition(string $id, array|string|null $service, string $file, array $defaults, bool $return = false, bool $trackBindings = true): Definition|Alias|null
     {
         if (preg_match('/^_[a-zA-Z0-9_]*$/', $id)) {
-            throw new InvalidArgumentException(sprintf('Service names that start with an underscore are reserved. Rename the "%s" service or define it in XML instead.', $id));
+            throw new InvalidArgumentException(\sprintf('Service names that start with an underscore are reserved. Rename the "%s" service or define it in XML instead.', $id));
         }
 
         if (\is_string($service) && str_starts_with($service, '@')) {
@@ -353,12 +353,12 @@
         }
 
         if (!\is_array($service ??= [])) {
-            throw new InvalidArgumentException(sprintf('A service definition must be an array or a string starting with "@" but "%s" found for service "%s" in "%s". Check your YAML syntax.', get_debug_type($service), $id, $file));
+            throw new InvalidArgumentException(\sprintf('A service definition must be an array or a string starting with "@" but "%s" found for service "%s" in "%s". Check your YAML syntax.', get_debug_type($service), $id, $file));
         }
 
         if (isset($service['stack'])) {
             if (!\is_array($service['stack'])) {
-                throw new InvalidArgumentException(sprintf('A stack must be an array of definitions, "%s" given for service "%s" in "%s". Check your YAML syntax.', get_debug_type($service), $id, $file));
+                throw new InvalidArgumentException(\sprintf('A stack must be an array of definitions, "%s" given for service "%s" in "%s". Check your YAML syntax.', get_debug_type($service), $id, $file));
             }
 
             $stack = [];
@@ -372,7 +372,7 @@
                 }
 
                 if (\is_array($frame) && isset($frame['stack'])) {
-                    throw new InvalidArgumentException(sprintf('Service stack "%s" cannot contain another stack in "%s".', $id, $file));
+                    throw new InvalidArgumentException(\sprintf('Service stack "%s" cannot contain another stack in "%s".', $id, $file));
                 }
 
                 $definition = $this->parseDefinition($id.'" at index "'.$k, $frame, $file, $defaults, true);
@@ -385,7 +385,7 @@
             }
 
             if ($diff = array_diff(array_keys($service), ['stack', 'public', 'deprecated'])) {
-                throw new InvalidArgumentException(sprintf('Invalid attribute "%s"; supported ones are "public" and "deprecated" for service "%s" in "%s". Check your YAML syntax.', implode('", "', $diff), $id, $file));
+                throw new InvalidArgumentException(\sprintf('Invalid attribute "%s"; supported ones are "public" and "deprecated" for service "%s" in "%s". Check your YAML syntax.', implode('", "', $diff), $id, $file));
             }
 
             $service = [
@@ -403,7 +403,7 @@
         if (isset($service['from_callable'])) {
             foreach (['alias', 'parent', 'synthetic', 'factory', 'file', 'arguments', 'properties', 'configurator', 'calls'] as $key) {
                 if (isset($service['factory'])) {
-                    throw new InvalidArgumentException(sprintf('The configuration key "%s" is unsupported for the service "%s" when using "from_callable" in "%s".', $key, $id, $file));
+                    throw new InvalidArgumentException(\sprintf('The configuration key "%s" is unsupported for the service "%s" when using "from_callable" in "%s".', $key, $id, $file));
                 }
             }
 
@@ -429,18 +429,18 @@
 
             foreach ($service as $key => $value) {
                 if (!\in_array($key, ['alias', 'public', 'deprecated'])) {
-                    throw new InvalidArgumentException(sprintf('The configuration key "%s" is unsupported for the service "%s" which is defined as an alias in "%s". Allowed configuration keys for service aliases are "alias", "public" and "deprecated".', $key, $id, $file));
+                    throw new InvalidArgumentException(\sprintf('The configuration key "%s" is unsupported for the service "%s" which is defined as an alias in "%s". Allowed configuration keys for service aliases are "alias", "public" and "deprecated".', $key, $id, $file));
                 }
 
                 if ('deprecated' === $key) {
                     $deprecation = \is_array($value) ? $value : ['message' => $value];
 
                     if (!isset($deprecation['package'])) {
-                        throw new InvalidArgumentException(sprintf('Missing attribute "package" of the "deprecated" option in "%s".', $file));
+                        throw new InvalidArgumentException(\sprintf('Missing attribute "package" of the "deprecated" option in "%s".', $file));
                     }
 
                     if (!isset($deprecation['version'])) {
-                        throw new InvalidArgumentException(sprintf('Missing attribute "version" of the "deprecated" option in "%s".', $file));
+                        throw new InvalidArgumentException(\sprintf('Missing attribute "version" of the "deprecated" option in "%s".', $file));
                     }
 
                     $alias->setDeprecated($deprecation['package'] ?? '', $deprecation['version'] ?? '', $deprecation['message'] ?? '');
@@ -457,7 +457,7 @@
             $definition = new ChildDefinition('');
         } elseif (isset($service['parent'])) {
             if ('' !== $service['parent'] && '@' === $service['parent'][0]) {
-                throw new InvalidArgumentException(sprintf('The value of the "parent" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s").', $id, $service['parent'], substr($service['parent'], 1)));
+                throw new InvalidArgumentException(\sprintf('The value of the "parent" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s").', $id, $service['parent'], substr($service['parent'], 1)));
             }
 
             $definition = new ChildDefinition($service['parent']);
@@ -508,11 +508,11 @@
             $deprecation = \is_array($service['deprecated']) ? $service['deprecated'] : ['message' => $service['deprecated']];
 
             if (!isset($deprecation['package'])) {
-                throw new InvalidArgumentException(sprintf('Missing attribute "package" of the "deprecated" option in "%s".', $file));
+                throw new InvalidArgumentException(\sprintf('Missing attribute "package" of the "deprecated" option in "%s".', $file));
             }
 
             if (!isset($deprecation['version'])) {
-                throw new InvalidArgumentException(sprintf('Missing attribute "version" of the "deprecated" option in "%s".', $file));
+                throw new InvalidArgumentException(\sprintf('Missing attribute "version" of the "deprecated" option in "%s".', $file));
             }
 
             $definition->setDeprecated($deprecation['package'] ?? '', $deprecation['version'] ?? '', $deprecation['message'] ?? '');
@@ -524,7 +524,7 @@
 
         if (isset($service['constructor'])) {
             if (null !== $definition->getFactory()) {
-                throw new LogicException(sprintf('The "%s" service cannot declare a factory as well as a constructor.', $id));
+                throw new LogicException(\sprintf('The "%s" service cannot declare a factory as well as a constructor.', $id));
             }
 
             $definition->setFactory([null, $service['constructor']]);
@@ -548,16 +548,16 @@
 
         if (isset($service['calls'])) {
             if (!\is_array($service['calls'])) {
-                throw new InvalidArgumentException(sprintf('Parameter "calls" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file));
+                throw new InvalidArgumentException(\sprintf('Parameter "calls" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file));
             }
 
             foreach ($service['calls'] as $k => $call) {
                 if (!\is_array($call) && (!\is_string($k) || !$call instanceof TaggedValue)) {
-                    throw new InvalidArgumentException(sprintf('Invalid method call for service "%s": expected map or array, "%s" given in "%s".', $id, $call instanceof TaggedValue ? '!'.$call->getTag() : get_debug_type($call), $file));
+                    throw new InvalidArgumentException(\sprintf('Invalid method call for service "%s": expected map or array, "%s" given in "%s".', $id, $call instanceof TaggedValue ? '!'.$call->getTag() : get_debug_type($call), $file));
                 }
 
                 if (\is_string($k)) {
-                    throw new InvalidArgumentException(sprintf('Invalid method call for service "%s", did you forget a leading dash before "%s: ..." in "%s"?', $id, $k, $file));
+                    throw new InvalidArgumentException(\sprintf('Invalid method call for service "%s", did you forget a leading dash before "%s: ..." in "%s"?', $id, $k, $file));
                 }
 
                 if (isset($call['method']) && \is_string($call['method'])) {
@@ -571,7 +571,7 @@
 
                         if ($args instanceof TaggedValue) {
                             if ('returns_clone' !== $args->getTag()) {
-                                throw new InvalidArgumentException(sprintf('Unsupported tag "!%s", did you mean "!returns_clone" for service "%s" in "%s"?', $args->getTag(), $id, $file));
+                                throw new InvalidArgumentException(\sprintf('Unsupported tag "!%s", did you mean "!returns_clone" for service "%s" in "%s"?', $args->getTag(), $id, $file));
                             }
 
                             $returnsClone = true;
@@ -580,7 +580,7 @@
                             $returnsClone = false;
                         }
                     } elseif (empty($call[0])) {
-                        throw new InvalidArgumentException(sprintf('Invalid call for service "%s": the method must be defined as the first index of an array or as the only key of a map in "%s".', $id, $file));
+                        throw new InvalidArgumentException(\sprintf('Invalid call for service "%s": the method must be defined as the first index of an array or as the only key of a map in "%s".', $id, $file));
                     } else {
                         $method = $call[0];
                         $args = $call[1] ?? [];
@@ -589,7 +589,7 @@
                 }
 
                 if (!\is_array($args)) {
-                    throw new InvalidArgumentException(sprintf('The second parameter for function call "%s" must be an array of its arguments for service "%s" in "%s". Check your YAML syntax.', $method, $id, $file));
+                    throw new InvalidArgumentException(\sprintf('The second parameter for function call "%s" must be an array of its arguments for service "%s" in "%s". Check your YAML syntax.', $method, $id, $file));
                 }
 
                 $args = $this->resolveServices($args, $file);
@@ -599,7 +599,7 @@
 
         $tags = $service['tags'] ?? [];
         if (!\is_array($tags)) {
-            throw new InvalidArgumentException(sprintf('Parameter "tags" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file));
+            throw new InvalidArgumentException(\sprintf('Parameter "tags" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file));
         }
 
         if (isset($defaults['tags'])) {
@@ -616,24 +616,24 @@
                 $tag = current($tag);
             } else {
                 if (!isset($tag['name'])) {
-                    throw new InvalidArgumentException(sprintf('A "tags" entry is missing a "name" key for service "%s" in "%s".', $id, $file));
+                    throw new InvalidArgumentException(\sprintf('A "tags" entry is missing a "name" key for service "%s" in "%s".', $id, $file));
                 }
                 $name = $tag['name'];
                 unset($tag['name']);
             }
 
             if (!\is_string($name) || '' === $name) {
-                throw new InvalidArgumentException(sprintf('The tag name for service "%s" in "%s" must be a non-empty string.', $id, $file));
+                throw new InvalidArgumentException(\sprintf('The tag name for service "%s" in "%s" must be a non-empty string.', $id, $file));
             }
 
-            $this->validateAttributes(sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s" in "%s". Check your YAML syntax.', $id, $name, '%s', $file), $tag);
+            $this->validateAttributes(\sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s" in "%s". Check your YAML syntax.', $id, $name, '%s', $file), $tag);
 
             $definition->addTag($name, $tag);
         }
 
         if (null !== $decorates = $service['decorates'] ?? null) {
             if ('' !== $decorates && '@' === $decorates[0]) {
-                throw new InvalidArgumentException(sprintf('The value of the "decorates" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s").', $id, $service['decorates'], substr($decorates, 1)));
+                throw new InvalidArgumentException(\sprintf('The value of the "decorates" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s").', $id, $service['decorates'], substr($decorates, 1)));
             }
 
             $decorationOnInvalid = \array_key_exists('decoration_on_invalid', $service) ? $service['decoration_on_invalid'] : 'exception';
@@ -644,9 +644,9 @@
             } elseif (null === $decorationOnInvalid) {
                 $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE;
             } elseif ('null' === $decorationOnInvalid) {
-                throw new InvalidArgumentException(sprintf('Invalid value "%s" for attribute "decoration_on_invalid" on service "%s". Did you mean null (without quotes) in "%s"?', $decorationOnInvalid, $id, $file));
+                throw new InvalidArgumentException(\sprintf('Invalid value "%s" for attribute "decoration_on_invalid" on service "%s". Did you mean null (without quotes) in "%s"?', $decorationOnInvalid, $id, $file));
             } else {
-                throw new InvalidArgumentException(sprintf('Invalid value "%s" for attribute "decoration_on_invalid" on service "%s". Did you mean "exception", "ignore" or null in "%s"?', $decorationOnInvalid, $id, $file));
+                throw new InvalidArgumentException(\sprintf('Invalid value "%s" for attribute "decoration_on_invalid" on service "%s". Did you mean "exception", "ignore" or null in "%s"?', $decorationOnInvalid, $id, $file));
             }
 
             $renameId = $service['decoration_inner_name'] ?? null;
@@ -666,7 +666,7 @@
 
             if (isset($service['bind'])) {
                 if (!\is_array($service['bind'])) {
-                    throw new InvalidArgumentException(sprintf('Parameter "bind" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file));
+                    throw new InvalidArgumentException(\sprintf('Parameter "bind" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file));
                 }
 
                 $bindings = array_merge($bindings, $this->resolveServices($service['bind'], $file));
@@ -686,12 +686,12 @@
         }
 
         if (\array_key_exists('namespace', $service) && !\array_key_exists('resource', $service)) {
-            throw new InvalidArgumentException(sprintf('A "resource" attribute must be set when the "namespace" attribute is set for service "%s" in "%s". Check your YAML syntax.', $id, $file));
+            throw new InvalidArgumentException(\sprintf('A "resource" attribute must be set when the "namespace" attribute is set for service "%s" in "%s". Check your YAML syntax.', $id, $file));
         }
 
         if ($return) {
             if (\array_key_exists('resource', $service)) {
-                throw new InvalidArgumentException(sprintf('Invalid "resource" attribute found for service "%s" in "%s". Check your YAML syntax.', $id, $file));
+                throw new InvalidArgumentException(\sprintf('Invalid "resource" attribute found for service "%s" in "%s". Check your YAML syntax.', $id, $file));
             }
 
             return $definition;
@@ -699,7 +699,7 @@
 
         if (\array_key_exists('resource', $service)) {
             if (!\is_string($service['resource'])) {
-                throw new InvalidArgumentException(sprintf('A "resource" attribute must be of type string for service "%s" in "%s". Check your YAML syntax.', $id, $file));
+                throw new InvalidArgumentException(\sprintf('A "resource" attribute must be of type string for service "%s" in "%s". Check your YAML syntax.', $id, $file));
             }
             $exclude = $service['exclude'] ?? null;
             $namespace = $service['namespace'] ?? $id;
@@ -719,7 +719,7 @@
         if (\is_string($callable)) {
             if (str_starts_with($callable, '@=')) {
                 if ('factory' !== $parameter) {
-                    throw new InvalidArgumentException(sprintf('Using expressions in "%s" for the "%s" service is not supported in "%s".', $parameter, $id, $file));
+                    throw new InvalidArgumentException(\sprintf('Using expressions in "%s" for the "%s" service is not supported in "%s".', $parameter, $id, $file));
                 }
                 if (!class_exists(Expression::class)) {
                     throw new \LogicException('The "@=" expression syntax cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".');
@@ -733,7 +733,7 @@
                     return [$this->resolveServices($callable, $file), '__invoke'];
                 }
 
-                throw new InvalidArgumentException(sprintf('The value of the "%s" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s" in "%s").', $parameter, $id, $callable, substr($callable, 1), $file));
+                throw new InvalidArgumentException(\sprintf('The value of the "%s" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s" in "%s").', $parameter, $id, $callable, substr($callable, 1), $file));
             }
 
             return $callable;
@@ -748,10 +748,10 @@
                 return $callable;
             }
 
-            throw new InvalidArgumentException(sprintf('Parameter "%s" must contain an array with two elements for service "%s" in "%s". Check your YAML syntax.', $parameter, $id, $file));
+            throw new InvalidArgumentException(\sprintf('Parameter "%s" must contain an array with two elements for service "%s" in "%s". Check your YAML syntax.', $parameter, $id, $file));
         }
 
-        throw new InvalidArgumentException(sprintf('Parameter "%s" must be a string or an array for service "%s" in "%s". Check your YAML syntax.', $parameter, $id, $file));
+        throw new InvalidArgumentException(\sprintf('Parameter "%s" must be a string or an array for service "%s" in "%s". Check your YAML syntax.', $parameter, $id, $file));
     }
 
     /**
@@ -761,16 +761,16 @@
      */
     protected function loadFile(string $file): ?array
     {
-        if (!class_exists(\Symfony\Component\Yaml\Parser::class)) {
+        if (!class_exists(YamlParser::class)) {
             throw new RuntimeException('Unable to load YAML config files as the Symfony Yaml Component is not installed. Try running "composer require symfony/yaml".');
         }
 
         if (!stream_is_local($file)) {
-            throw new InvalidArgumentException(sprintf('This is not a local file "%s".', $file));
+            throw new InvalidArgumentException(\sprintf('This is not a local file "%s".', $file));
         }
 
         if (!is_file($file)) {
-            throw new InvalidArgumentException(sprintf('The file "%s" does not exist.', $file));
+            throw new InvalidArgumentException(\sprintf('The file "%s" does not exist.', $file));
         }
 
         $this->yamlParser ??= new YamlParser();
@@ -778,7 +778,7 @@
         try {
             $configuration = $this->yamlParser->parseFile($file, Yaml::PARSE_CONSTANT | Yaml::PARSE_CUSTOM_TAGS);
         } catch (ParseException $e) {
-            throw new InvalidArgumentException(sprintf('The file "%s" does not contain valid YAML: ', $file).$e->getMessage(), 0, $e);
+            throw new InvalidArgumentException(\sprintf('The file "%s" does not contain valid YAML: ', $file).$e->getMessage(), 0, $e);
         }
 
         return $this->validate($configuration, $file);
@@ -796,7 +796,7 @@
         }
 
         if (!\is_array($content)) {
-            throw new InvalidArgumentException(sprintf('The service file "%s" is not valid. It should contain an array. Check your YAML syntax.', $file));
+            throw new InvalidArgumentException(\sprintf('The service file "%s" is not valid. It should contain an array. Check your YAML syntax.', $file));
         }
 
         foreach ($content as $namespace => $data) {
@@ -805,8 +805,8 @@
             }
 
             if (!$this->container->hasExtension($namespace)) {
-                $extensionNamespaces = array_filter(array_map(fn (ExtensionInterface $ext) => $ext->getAlias(), $this->container->getExtensions()));
-                throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $namespace, $file, $namespace, $extensionNamespaces ? sprintf('"%s"', implode('", "', $extensionNamespaces)) : 'none'));
+                $extensionNamespaces = array_filter(array_map(static fn (ExtensionInterface $ext) => $ext->getAlias(), $this->container->getExtensions()));
+                throw new InvalidArgumentException(\sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $namespace, $file, $namespace, $extensionNamespaces ? \sprintf('"%s"', implode('", "', $extensionNamespaces)) : 'none'));
             }
         }
 
@@ -827,7 +827,7 @@
             }
             if ('iterator' === $value->getTag()) {
                 if (!\is_array($argument)) {
-                    throw new InvalidArgumentException(sprintf('"!iterator" tag only accepts sequences in "%s".', $file));
+                    throw new InvalidArgumentException(\sprintf('"!iterator" tag only accepts sequences in "%s".', $file));
                 }
                 $argument = $this->resolveServices($argument, $file, $isParameter);
 
@@ -840,7 +840,7 @@
             }
             if ('service_locator' === $value->getTag()) {
                 if (!\is_array($argument)) {
-                    throw new InvalidArgumentException(sprintf('"!service_locator" tag only accepts maps in "%s".', $file));
+                    throw new InvalidArgumentException(\sprintf('"!service_locator" tag only accepts maps in "%s".', $file));
                 }
 
                 $argument = $this->resolveServices($argument, $file, $isParameter);
@@ -856,14 +856,14 @@
 
                 if (\is_array($argument) && isset($argument['tag']) && $argument['tag']) {
                     if ($diff = array_diff(array_keys($argument), $supportedKeys = ['tag', 'index_by', 'default_index_method', 'default_priority_method', 'exclude', 'exclude_self'])) {
-                        throw new InvalidArgumentException(sprintf('"!%s" tag contains unsupported key "%s"; supported ones are "%s".', $value->getTag(), implode('", "', $diff), implode('", "', $supportedKeys)));
+                        throw new InvalidArgumentException(\sprintf('"!%s" tag contains unsupported key "%s"; supported ones are "%s".', $value->getTag(), implode('", "', $diff), implode('", "', $supportedKeys)));
                     }
 
                     $argument = new TaggedIteratorArgument($argument['tag'], $argument['index_by'] ?? null, $argument['default_index_method'] ?? null, $forLocator, $argument['default_priority_method'] ?? null, (array) ($argument['exclude'] ?? null), $argument['exclude_self'] ?? true);
                 } elseif (\is_string($argument) && $argument) {
                     $argument = new TaggedIteratorArgument($argument, null, null, $forLocator);
                 } else {
-                    throw new InvalidArgumentException(sprintf('"!%s" tags only accept a non empty string or an array with a key "tag" in "%s".', $value->getTag(), $file));
+                    throw new InvalidArgumentException(\sprintf('"!%s" tags only accept a non empty string or an array with a key "tag" in "%s".', $value->getTag(), $file));
                 }
 
                 if ($forLocator) {
@@ -874,7 +874,7 @@
             }
             if ('service' === $value->getTag()) {
                 if ($isParameter) {
-                    throw new InvalidArgumentException(sprintf('Using an anonymous service in a parameter is not allowed in "%s".', $file));
+                    throw new InvalidArgumentException(\sprintf('Using an anonymous service in a parameter is not allowed in "%s".', $file));
                 }
 
                 $isLoadingInstanceof = $this->isLoadingInstanceof;
@@ -882,11 +882,11 @@
                 $instanceof = $this->instanceof;
                 $this->instanceof = [];
 
-                $id = sprintf('.%d_%s', ++$this->anonymousServicesCount, preg_replace('/^.*\\\\/', '', $argument['class'] ?? '').$this->anonymousServicesSuffix);
+                $id = \sprintf('.%d_%s', ++$this->anonymousServicesCount, preg_replace('/^.*\\\\/', '', $argument['class'] ?? '').$this->anonymousServicesSuffix);
                 $this->parseDefinition($id, $argument, $file, []);
 
                 if (!$this->container->hasDefinition($id)) {
-                    throw new InvalidArgumentException(sprintf('Creating an alias using the tag "!service" is not allowed in "%s".', $file));
+                    throw new InvalidArgumentException(\sprintf('Creating an alias using the tag "!service" is not allowed in "%s".', $file));
                 }
 
                 $this->container->getDefinition($id);
@@ -900,7 +900,7 @@
                 return new AbstractArgument($value->getValue());
             }
 
-            throw new InvalidArgumentException(sprintf('Unsupported tag "!%s".', $value->getTag()));
+            throw new InvalidArgumentException(\sprintf('Unsupported tag "!%s".', $value->getTag()));
         }
 
         if (\is_array($value)) {
@@ -909,7 +909,7 @@
             }
         } elseif (\is_string($value) && str_starts_with($value, '@=')) {
             if ($isParameter) {
-                throw new InvalidArgumentException(sprintf('Using expressions in parameters is not allowed in "%s".', $file));
+                throw new InvalidArgumentException(\sprintf('Using expressions in parameters is not allowed in "%s".', $file));
             }
 
             if (!class_exists(Expression::class)) {
@@ -967,7 +967,7 @@
 
         foreach ($definition as $key => $value) {
             if (!isset($keywords[$key])) {
-                throw new InvalidArgumentException(sprintf('The configuration key "%s" is unsupported for definition "%s" in "%s". Allowed configuration keys are "%s".', $key, $id, $file, implode('", "', $keywords)));
+                throw new InvalidArgumentException(\sprintf('The configuration key "%s" is unsupported for definition "%s" in "%s". Allowed configuration keys are "%s".', $key, $id, $file, implode('", "', $keywords)));
             }
         }
     }
@@ -979,7 +979,7 @@
                 $this->validateAttributes($message, $value, [...$path, $name]);
             } elseif (!\is_scalar($value ?? '')) {
                 $name = implode('.', [...$path, $name]);
-                throw new InvalidArgumentException(sprintf($message, $name));
+                throw new InvalidArgumentException(\sprintf($message, $name));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ParameterBag/EnvPlaceholderParameterBag.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ParameterBag/EnvPlaceholderParameterBag.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ParameterBag/EnvPlaceholderParameterBag.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ParameterBag/EnvPlaceholderParameterBag.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,14 +42,14 @@
                 }
             }
             if (!preg_match('/^(?:[-.\w\\\\]*+:)*+\w*+$/', $env)) {
-                throw new InvalidArgumentException(sprintf('Invalid %s name: only "word" characters are allowed.', $name));
+                throw new InvalidArgumentException(\sprintf('Invalid %s name: only "word" characters are allowed.', $name));
             }
             if ($this->has($name) && null !== ($defaultValue = parent::get($name)) && !\is_string($defaultValue)) {
-                throw new RuntimeException(sprintf('The default value of an env() parameter must be a string or null, but "%s" given to "%s".', get_debug_type($defaultValue), $name));
+                throw new RuntimeException(\sprintf('The default value of an env() parameter must be a string or null, but "%s" given to "%s".', get_debug_type($defaultValue), $name));
             }
 
             $uniqueName = hash('xxh128', $name.'_'.self::$counter++);
-            $placeholder = sprintf('%s_%s_%s', $this->getEnvPlaceholderUniquePrefix(), strtr($env, ':-.\\', '____'), $uniqueName);
+            $placeholder = \sprintf('%s_%s_%s', $this->getEnvPlaceholderUniquePrefix(), strtr($env, ':-.\\', '____'), $uniqueName);
             $this->envPlaceholders[$env][$placeholder] = $placeholder;
 
             return $placeholder;
@@ -65,7 +65,7 @@
     {
         if (!isset($this->envPlaceholderUniquePrefix)) {
             $reproducibleEntropy = unserialize(serialize($this->parameters));
-            array_walk_recursive($reproducibleEntropy, function (&$v) { $v = null; });
+            array_walk_recursive($reproducibleEntropy, static function (&$v) { $v = null; });
             $this->envPlaceholderUniquePrefix = 'env_'.substr(hash('xxh128', serialize($reproducibleEntropy)), -16);
         }
 
@@ -151,7 +151,7 @@
 
         foreach ($this->envPlaceholders as $env => $placeholders) {
             if ($this->has($name = "env($env)") && null !== ($default = $this->parameters[$name]) && !\is_string($default)) {
-                throw new RuntimeException(sprintf('The default value of env parameter "%s" must be a string or null, "%s" given.', $env, get_debug_type($default)));
+                throw new RuntimeException(\sprintf('The default value of env parameter "%s" must be a string or null, "%s" given.', $env, get_debug_type($default)));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,7 +106,7 @@
     public function set(string $name, array|bool|string|int|float|\UnitEnum|null $value)
     {
         if (is_numeric($name)) {
-            trigger_deprecation('symfony/dependency-injection', '6.2', sprintf('Using numeric parameter name "%s" is deprecated and will throw as of 7.0.', $name));
+            trigger_deprecation('symfony/dependency-injection', '6.2', \sprintf('Using numeric parameter name "%s" is deprecated and will throw as of 7.0.', $name));
             // uncomment the following line in 7.0
             // throw new InvalidArgumentException(sprintf('The parameter name "%s" cannot be numeric.', $name));
         }
@@ -189,7 +189,7 @@
             foreach ($value as $key => $v) {
                 $resolvedKey = \is_string($key) ? $this->resolveValue($key, $resolving) : $key;
                 if (!\is_scalar($resolvedKey) && !$resolvedKey instanceof \Stringable) {
-                    throw new RuntimeException(sprintf('Array keys must be a scalar-value, but found key "%s" to resolve to type "%s".', $key, get_debug_type($resolvedKey)));
+                    throw new RuntimeException(\sprintf('Array keys must be a scalar-value, but found key "%s" to resolve to type "%s".', $key, get_debug_type($resolvedKey)));
                 }
 
                 $args[$resolvedKey] = $this->resolveValue($v, $resolving);
@@ -245,7 +245,7 @@
             $resolved = $this->get($key);
 
             if (!\is_string($resolved) && !is_numeric($resolved)) {
-                throw new RuntimeException(sprintf('A string value must be composed of strings and/or numbers, but found parameter "%s" of type "%s" inside string value "%s".', $key, get_debug_type($resolved), $value));
+                throw new RuntimeException(\sprintf('A string value must be composed of strings and/or numbers, but found parameter "%s" of type "%s" inside string value "%s".', $key, get_debug_type($resolved), $value));
             }
 
             $resolved = (string) $resolved;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ReverseContainer.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ReverseContainer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ReverseContainer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ReverseContainer.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
         }
 
         if (isset($this->serviceContainer->getRemovedIds()[$id])) {
-            throw new ServiceNotFoundException($id, null, null, [], sprintf('The "%s" service is private and cannot be accessed by reference. You should either make it public, or tag it as "%s".', $id, $this->tagName));
+            throw new ServiceNotFoundException($id, null, null, [], \sprintf('The "%s" service is private and cannot be accessed by reference. You should either make it public, or tag it as "%s".', $id, $this->tagName));
         }
 
         return $this->serviceContainer->get($id);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ServiceLocator.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ServiceLocator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/ServiceLocator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/ServiceLocator.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,11 +46,11 @@
         try {
             return $this->doGet($id);
         } catch (RuntimeException $e) {
-            $what = sprintf('service "%s" required by "%s"', $id, $this->externalId);
+            $what = \sprintf('service "%s" required by "%s"', $id, $this->externalId);
             $message = preg_replace('/service "\.service_locator\.[^"]++"/', $what, $e->getMessage());
 
             if ($e->getMessage() === $message) {
-                $message = sprintf('Cannot resolve %s: %s', $what, $message);
+                $message = \sprintf('Cannot resolve %s: %s', $what, $message);
             }
 
             $r = new \ReflectionProperty($e, 'message');
@@ -88,7 +88,7 @@
     private function createNotFoundException(string $id): NotFoundExceptionInterface
     {
         if ($this->loading) {
-            $msg = sprintf('The service "%s" has a dependency on a non-existent service "%s". This locator %s', end($this->loading), $id, $this->formatAlternatives());
+            $msg = \sprintf('The service "%s" has a dependency on a non-existent service "%s". This locator %s', end($this->loading), $id, $this->formatAlternatives());
 
             return new ServiceNotFoundException($id, end($this->loading) ?: null, null, [], $msg);
         }
@@ -98,7 +98,7 @@
         $externalId = $this->externalId ?: $class;
 
         $msg = [];
-        $msg[] = sprintf('Service "%s" not found:', $id);
+        $msg[] = \sprintf('Service "%s" not found:', $id);
 
         if (!$this->container) {
             $class = null;
@@ -110,22 +110,22 @@
                 $class = null;
             } catch (ServiceNotFoundException $e) {
                 if ($e->getAlternatives()) {
-                    $msg[] = sprintf('did you mean %s? Anyway,', $this->formatAlternatives($e->getAlternatives(), 'or'));
+                    $msg[] = \sprintf('did you mean %s? Anyway,', $this->formatAlternatives($e->getAlternatives(), 'or'));
                 } else {
                     $class = null;
                 }
             }
         }
         if ($externalId) {
-            $msg[] = sprintf('the container inside "%s" is a smaller service locator that %s', $externalId, $this->formatAlternatives());
+            $msg[] = \sprintf('the container inside "%s" is a smaller service locator that %s', $externalId, $this->formatAlternatives());
         } else {
-            $msg[] = sprintf('the current service locator %s', $this->formatAlternatives());
+            $msg[] = \sprintf('the current service locator %s', $this->formatAlternatives());
         }
 
         if (!$class) {
             // no-op
         } elseif (is_subclass_of($class, ServiceSubscriberInterface::class)) {
-            $msg[] = sprintf('Unless you need extra laziness, try using dependency injection instead. Otherwise, you need to declare it using "%s::getSubscribedServices()".', preg_replace('/([^\\\\]++\\\\)++/', '', $class));
+            $msg[] = \sprintf('Unless you need extra laziness, try using dependency injection instead. Otherwise, you need to declare it using "%s::getSubscribedServices()".', preg_replace('/([^\\\\]++\\\\)++/', '', $class));
         } else {
             $msg[] = 'Try using dependency injection instead.';
         }
@@ -145,10 +145,10 @@
             if (!$alternatives = array_keys($this->factories)) {
                 return 'is empty...';
             }
-            $format = sprintf('only knows about the %s service%s.', $format, 1 < \count($alternatives) ? 's' : '');
+            $format = \sprintf('only knows about the %s service%s.', $format, 1 < \count($alternatives) ? 's' : '');
         }
         $last = array_pop($alternatives);
 
-        return sprintf($format, $alternatives ? implode('", "', $alternatives) : $last, $alternatives ? sprintf(' %s "%s"', $separator, $last) : '');
+        return \sprintf($format, $alternatives ? implode('", "', $alternatives) : $last, $alternatives ? \sprintf(' %s "%s"', $separator, $last) : '');
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Argument/LazyClosureTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Argument/LazyClosureTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Argument/LazyClosureTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Argument/LazyClosureTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\DependencyInjection\Tests\Argument;
 
-use InvalidArgumentException;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\DependencyInjection\Argument\LazyClosure;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -21,9 +20,9 @@
 {
     public function testMagicGetThrows()
     {
-        $closure = new LazyClosure(fn () => null);
+        $closure = new LazyClosure(static fn () => null);
 
-        $this->expectException(InvalidArgumentException::class);
+        $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionMessage('Cannot read property "foo" from a lazy closure.');
 
         $closure->foo;
@@ -34,7 +33,7 @@
         $this->expectException(\RuntimeException::class);
         $this->expectExceptionMessage('Cannot create adapter for service "foo" because "Symfony\Component\DependencyInjection\Tests\Argument\LazyClosureTest" is not an interface.');
 
-        LazyClosure::getCode('foo', [new \stdClass(), 'bar'], new Definition(LazyClosureTest::class), new ContainerBuilder(), 'foo');
+        LazyClosure::getCode('foo', [new \stdClass(), 'bar'], self::class, new ContainerBuilder(), 'foo');
     }
 
     public function testThrowsOnNonFunctionalInterface()
@@ -42,7 +41,7 @@
         $this->expectException(\RuntimeException::class);
         $this->expectExceptionMessage('Cannot create adapter for service "foo" because interface "Symfony\Component\DependencyInjection\Tests\Argument\NonFunctionalInterface" doesn\'t have exactly one method.');
 
-        LazyClosure::getCode('foo', [new \stdClass(), 'bar'], new Definition(NonFunctionalInterface::class), new ContainerBuilder(), 'foo');
+        LazyClosure::getCode('foo', [new \stdClass(), 'bar'], NonFunctionalInterface::class, new ContainerBuilder(), 'foo');
     }
 
     public function testThrowsOnUnknownMethodInInterface()
@@ -50,7 +49,7 @@
         $this->expectException(\RuntimeException::class);
         $this->expectExceptionMessage('Cannot create lazy closure for service "bar" because its corresponding callable is invalid.');
 
-        LazyClosure::getCode('bar', [new Definition(FunctionalInterface::class), 'bar'], new Definition(\Closure::class), new ContainerBuilder(), 'bar');
+        LazyClosure::getCode('bar', [new Definition(FunctionalInterface::class), 'bar'], \Closure::class, new ContainerBuilder(), 'bar');
     }
 }
 
@@ -62,5 +61,6 @@
 interface NonFunctionalInterface
 {
     public function foo();
+
     public function bar();
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Argument/RewindableGeneratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Argument/RewindableGeneratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Argument/RewindableGeneratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Argument/RewindableGeneratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,14 +18,14 @@
 {
     public function testImplementsCountable()
     {
-        $this->assertInstanceOf(\Countable::class, new RewindableGenerator(function () {
+        $this->assertInstanceOf(\Countable::class, new RewindableGenerator(static function () {
             yield 1;
         }, 1));
     }
 
     public function testCountUsesProvidedValue()
     {
-        $generator = new RewindableGenerator(function () {
+        $generator = new RewindableGenerator(static function () {
             yield 1;
         }, 3);
 
@@ -35,9 +35,9 @@
     public function testCountUsesProvidedValueAsCallback()
     {
         $called = 0;
-        $generator = new RewindableGenerator(function () {
+        $generator = new RewindableGenerator(static function () {
             yield 1;
-        }, function () use (&$called) {
+        }, static function () use (&$called) {
             ++$called;
 
             return 3;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Attribute/AutowireTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Attribute/AutowireTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Attribute/AutowireTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Attribute/AutowireTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -82,4 +82,24 @@
 
         yield [['value' => 'some-value', 'expression' => 'expr']];
     }
+
+    /**
+     * @dataProvider provideMutuallyExclusiveOptions
+     */
+    public function testConstructThrowsOnMutuallyExclusiveOptions(array $parameters)
+    {
+        $this->expectException(LogicException::class);
+        $this->expectExceptionMessage('#[Autowire] attribute must declare exactly one of $service, $expression, $env, $param or $value.');
+
+        new Autowire(...$parameters);
+    }
+
+    public static function provideMutuallyExclusiveOptions(): iterable
+    {
+        yield [[]];
+        yield [['value' => 'some-value', 'service' => 'id']];
+        yield [['value' => 'some-value', 'service' => 'id', 'expression' => 'expr']];
+        yield [['value' => 'some-value', 'service' => 'id', 'expression' => 'expr', 'env' => 'ENV']];
+        yield [['value' => 'some-value', 'service' => 'id', 'expression' => 'expr', 'env' => 'ENV', 'param' => 'param']];
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AbstractRecursivePassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AbstractRecursivePassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AbstractRecursivePassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AbstractRecursivePassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
             ->register('foo', \stdClass::class)
             ->setFactory([new Reference('child'), 'createFactory']);
 
-        $pass = new class() extends AbstractRecursivePass {
+        $pass = new class extends AbstractRecursivePass {
             public \ReflectionMethod $actual;
 
             protected function processValue($value, $isRoot = false): mixed
@@ -61,7 +61,7 @@
             ->setAbstract(true);
         $container->setDefinition('foo', new ChildDefinition('parent'));
 
-        $pass = new class() extends AbstractRecursivePass {
+        $pass = new class extends AbstractRecursivePass {
             public \ReflectionMethod $actual;
 
             protected function processValue($value, $isRoot = false): mixed
@@ -87,7 +87,7 @@
             ->setAbstract(true);
         $container->setDefinition('foo', new ChildDefinition('parent'));
 
-        $pass = new class() extends AbstractRecursivePass {
+        $pass = new class extends AbstractRecursivePass {
             public \ReflectionMethod $actual;
 
             protected function processValue($value, $isRoot = false): mixed
@@ -113,7 +113,7 @@
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage('Invalid service "foo": the class is not set.');
 
-        (new class() extends AbstractRecursivePass {
+        (new class extends AbstractRecursivePass {
             protected function processValue($value, $isRoot = false): mixed
             {
                 if ($value instanceof Definition && 'foo' === $this->currentId) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AliasDeprecatedPublicServicesPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AliasDeprecatedPublicServicesPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AliasDeprecatedPublicServicesPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AliasDeprecatedPublicServicesPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
             ->addTag('container.private', $attributes);
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "%s" attribute is mandatory for the "container.private" tag on the "foo" service.', $attribute));
+        $this->expectExceptionMessage(\sprintf('The "%s" attribute is mandatory for the "container.private" tag on the "foo" service.', $attribute));
 
         (new AliasDeprecatedPublicServicesPass())->process($container);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,7 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Definition;
 use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\ExpressionLanguage\Expression;
 
 class AnalyzeServiceReferencesPassTest extends TestCase
 {
@@ -204,6 +205,29 @@
         $this->assertCount(1, $graph->getNode('foo')->getInEdges());
     }
 
+    public function testExpressionReferenceKeepsConstructorFlag()
+    {
+        $container = new ContainerBuilder();
+        $container->register('bar');
+        $container
+            ->register('foo')
+            ->addArgument(new Expression('service("bar")'));
+
+        $graph = $this->process($container);
+
+        $edges = $graph->getNode('bar')->getInEdges();
+        $exprEdge = null;
+        foreach ($edges as $edge) {
+            if ('.internal.reference_in_expression' === $edge->getSourceNode()->getId()) {
+                $exprEdge = $edge;
+                break;
+            }
+        }
+
+        $this->assertNotNull($exprEdge, 'Expression edge should exist.');
+        $this->assertTrue($exprEdge->isReferencedByConstructor());
+    }
+
     protected function process(ContainerBuilder $container)
     {
         $pass = new AnalyzeServiceReferencesPass();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AutowirePassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AutowirePassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AutowirePassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AutowirePassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -443,7 +443,7 @@
     /**
      * @requires PHP 8.2
      */
-    public function testParameterWithNullableIntersectionIsSkipped()
+    public function testParameterWithNullableIntersectionIsSkippedWhenAliasDoesNotExist()
     {
         $container = new ContainerBuilder();
 
@@ -456,6 +456,26 @@
         $this->assertNull($definition->getArgument(0));
     }
 
+    /**
+     * @requires PHP 8.2
+     */
+    public function testParameterWithNullableIntersectionIsAutowiredWhenAliasExists()
+    {
+        $container = new ContainerBuilder();
+
+        $container->register('b', \stdClass::class);
+        $container->setAlias(CollisionInterface::class, 'b');
+        $container->setAlias(AnotherInterface::class, 'b');
+
+        $optDefinition = $container->register('opt', NullableIntersection::class);
+        $optDefinition->setAutowired(true);
+
+        (new AutowirePass())->process($container);
+
+        $definition = $container->getDefinition('opt');
+        $this->assertSame('b', (string) $definition->getArgument(0));
+    }
+
     public function testParameterWithNullUnionIsAutowired()
     {
         $container = new ContainerBuilder();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AutowireRequiredPropertiesPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AutowireRequiredPropertiesPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AutowireRequiredPropertiesPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/AutowireRequiredPropertiesPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,9 +13,11 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait;
+use Symfony\Component\DependencyInjection\Attribute\Target;
 use Symfony\Component\DependencyInjection\Compiler\AutowireRequiredPropertiesPass;
 use Symfony\Component\DependencyInjection\Compiler\ResolveClassPass;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\TypedReference;
 
 require_once __DIR__.'/../Fixtures/includes/autowiring_classes.php';
 require_once __DIR__.'/../Fixtures/includes/autowiring_classes_74.php';
@@ -62,4 +64,24 @@
         $this->assertArrayHasKey('foo', $properties);
         $this->assertEquals(Foo::class, (string) $properties['foo']);
     }
+
+    public function testTargetAttributeIsPropagatedOnRequiredProperty()
+    {
+        $container = new ContainerBuilder();
+        $container->register(Foo::class);
+
+        $container->register('property_injection_with_target', AutowirePropertyWithTarget::class)
+            ->setAutowired(true);
+
+        (new ResolveClassPass())->process($container);
+        (new AutowireRequiredPropertiesPass())->process($container);
+
+        $properties = $container->getDefinition('property_injection_with_target')->getProperties();
+
+        $this->assertArrayHasKey('foo', $properties);
+        $this->assertInstanceOf(TypedReference::class, $properties['foo']);
+        $attributes = array_values(array_filter($properties['foo']->getAttributes(), static fn ($attribute) => $attribute instanceof Target));
+        $this->assertCount(1, $attributes);
+        $this->assertSame('foo.target', $attributes[0]->name);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -108,18 +108,18 @@
         $message = 'A "tags" attribute must be of a scalar-type for service "a", tag "%s", attribute "%s".';
         yield 'object attribute value' => [
             'foo',
-            ['bar' => new class() {}],
-            sprintf($message, 'foo', 'bar'),
+            ['bar' => new class {}],
+            \sprintf($message, 'foo', 'bar'),
         ];
         yield 'nested object attribute value' => [
             'foo',
-            ['bar' => ['baz' => new class() {}]],
-            sprintf($message, 'foo', 'bar.baz'),
+            ['bar' => ['baz' => new class {}]],
+            \sprintf($message, 'foo', 'bar.baz'),
         ];
         yield 'deeply nested object attribute value' => [
             'foo',
-            ['bar' => ['baz' => ['qux' => new class() {}]]],
-            sprintf($message, 'foo', 'bar.baz.qux'),
+            ['bar' => ['baz' => ['qux' => new class {}]]],
+            \sprintf($message, 'foo', 'bar.baz.qux'),
         ];
     }
 
@@ -155,6 +155,18 @@
         $this->process($container);
 
         $this->addToAssertionCount(1);
+    }
+
+    public function testProcessSkipsDefinitionsWithErrors()
+    {
+        $container = new ContainerBuilder();
+        $definition = $container->register('a')->setSynthetic(true)->setPublic(false);
+        $definition->addError('Some error message');
+
+        // This should not throw an exception because the definition has errors
+        $this->process($container);
+
+        $this->addToAssertionCount(1);
     }
 
     protected function process(ContainerBuilder $container)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckFactoryBuilderCircularReferencePassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckFactoryBuilderCircularReferencePassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckFactoryBuilderCircularReferencePassTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckFactoryBuilderCircularReferencePassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,197 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\DependencyInjection\Tests\Compiler;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
+use Symfony\Component\DependencyInjection\Reference;
+
+class CheckFactoryBuilderCircularReferencePassTest extends TestCase
+{
+    public function testThrowsWhenInlinedConsumerReferencesProduct()
+    {
+        // The consumer ("extension") is private and used only by the builder's
+        // method call, so it gets inlined into the builder. The dumper would emit
+        // "$instance = $a->build()" before "$a->useExtension(...)" and silently
+        // produce a half-built service.
+        $container = new ContainerBuilder();
+        $container->register('builder', 'stdClass')
+            ->addMethodCall('useExtension', [new Reference('extension')]);
+        $container->register('product', 'stdClass')
+            ->setFactory([new Reference('builder'), 'build'])
+            ->setPublic(true);
+        $container->register('extension', 'stdClass')
+            ->addArgument(new Reference('product'));
+
+        $this->expectException(ServiceCircularReferenceException::class);
+        $this->expectExceptionMessage('Circular reference detected for service "product"');
+
+        $container->compile();
+    }
+
+    public function testThrowsWhenPublicConsumerReferencesProduct()
+    {
+        // The consumer ("extension") is public, so it stays a Reference inside
+        // the inlined builder's setter args. Same broken pattern, different graph
+        // shape: the previous dumper-side check missed this one.
+        $container = new ContainerBuilder();
+        $container->register('builder', 'stdClass')
+            ->addMethodCall('useExtension', [new Reference('extension')]);
+        $container->register('product', 'stdClass')
+            ->setFactory([new Reference('builder'), 'build'])
+            ->setPublic(true);
+        $container->register('extension', 'stdClass')
+            ->setPublic(true)
+            ->addArgument(new Reference('product'));
+
+        $this->expectException(ServiceCircularReferenceException::class);
+        $this->expectExceptionMessage('Circular reference detected for service "product", path: "product -> extension -> product"');
+
+        $container->compile();
+    }
+
+    public function testAllowsBuilderWithoutSetup()
+    {
+        // The factory builder has no method calls/properties/configurator, so the
+        // soft-circular pattern works: the cycle is on the produced service's own
+        // setter, not on the builder.
+        $container = new ContainerBuilder();
+        $container->register('builder', 'stdClass');
+        $container->register('product', 'stdClass')
+            ->setPublic(true)
+            ->setFactory([new Reference('builder'), 'build'])
+            ->addMethodCall('setExtension', [new Reference('extension')]);
+        $container->register('extension', 'stdClass')
+            ->addArgument(new Reference('product'));
+
+        $container->compile();
+
+        $this->addToAssertionCount(1);
+    }
+
+    public function testAllowsStringFactoryWithSelfSetterCycle()
+    {
+        $container = new ContainerBuilder();
+        $container->register('product', 'stdClass')
+            ->setPublic(true)
+            ->setFactory('create_product')
+            ->addMethodCall('setExtension', [new Reference('extension')]);
+        $container->register('extension', 'stdClass')
+            ->addArgument(new Reference('product'));
+
+        $container->compile();
+
+        $this->addToAssertionCount(1);
+    }
+
+    public function testAllowsConstructorArgInlinedSetterCycle()
+    {
+        // FooCircular-style: foo's constructor takes bar; bar's setter takes foobar;
+        // foobar's constructor takes foo. The inlined sub-Definition (bar) is a
+        // *constructor arg*, not a factory, so foo holds bar and bar's deferred
+        // setter is observable through that reference. Legit soft-circular.
+        $container = new ContainerBuilder();
+        $container->register('foo', 'stdClass')
+            ->setPublic(true)
+            ->addArgument(new Reference('bar'));
+        $container->register('bar', 'stdClass')
+            ->addMethodCall('addFoobar', [new Reference('foobar')]);
+        $container->register('foobar', 'stdClass')
+            ->addArgument(new Reference('foo'));
+
+        $container->compile();
+
+        $this->addToAssertionCount(1);
+    }
+
+    public function testIgnoresLazyConsumer()
+    {
+        // The consumer is lazy: it gets a proxy, the eager construction chain is
+        // broken. The same shape as Case B but with `extension` lazy.
+        $container = new ContainerBuilder();
+        $container->register('builder', 'stdClass')
+            ->addMethodCall('useExtension', [new Reference('extension')]);
+        $container->register('product', 'stdClass')
+            ->setFactory([new Reference('builder'), 'build'])
+            ->setPublic(true);
+        $container->register('extension', 'stdClass')
+            ->setPublic(true)
+            ->setLazy(true)
+            ->addArgument(new Reference('product'));
+
+        $container->compile();
+
+        $this->addToAssertionCount(1);
+    }
+
+    public function testFollowsTransitiveConstructorChain()
+    {
+        // builder's setter doesn't reference product directly, but the chain
+        // builder -> mid -> product still requires product before the factory
+        // call. Same shape, one hop further.
+        $container = new ContainerBuilder();
+        $container->register('builder', 'stdClass')
+            ->addMethodCall('useMid', [new Reference('mid')]);
+        $container->register('product', 'stdClass')
+            ->setFactory([new Reference('builder'), 'build'])
+            ->setPublic(true);
+        $container->register('mid', 'stdClass')
+            ->setPublic(true)
+            ->addArgument(new Reference('extension'));
+        $container->register('extension', 'stdClass')
+            ->setPublic(true)
+            ->addArgument(new Reference('product'));
+
+        $this->expectException(ServiceCircularReferenceException::class);
+
+        $container->compile();
+    }
+
+    public function testIgnoresInlinedDefinitionFactoryWithoutCycle()
+    {
+        // The factory builder has setters but they don't lead back to the
+        // produced service. Should compile cleanly.
+        $container = new ContainerBuilder();
+        $container->register('builder', 'stdClass')
+            ->addMethodCall('useUnrelated', [new Reference('unrelated')]);
+        $container->register('product', 'stdClass')
+            ->setFactory([new Reference('builder'), 'build'])
+            ->setPublic(true);
+        $container->register('unrelated', 'stdClass')
+            ->setPublic(true);
+
+        $container->compile();
+
+        $this->addToAssertionCount(1);
+    }
+
+    public function testInlinedExtensionDefinitionRouteAlsoCaught()
+    {
+        // Same as Case A but using a literal Definition argument (mimicking what
+        // InlineServiceDefinitionsPass produces) so we exercise the
+        // walk-Definition path of the pass.
+        $container = new ContainerBuilder();
+        $extension = new Definition('stdClass');
+        $extension->addArgument(new Reference('product'));
+        $container->register('builder', 'stdClass')
+            ->addMethodCall('useExtension', [$extension]);
+        $container->register('product', 'stdClass')
+            ->setFactory([new Reference('builder'), 'build'])
+            ->setPublic(true);
+
+        $this->expectException(ServiceCircularReferenceException::class);
+
+        $container->compile();
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckTypeDeclarationsPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckTypeDeclarationsPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckTypeDeclarationsPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckTypeDeclarationsPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -1023,6 +1023,18 @@
 
         $this->addToAssertionCount(1);
     }
+
+    public function testCheckTypeDeclarationsSkipsSubsequentNamedArguments()
+    {
+        $container = new ContainerBuilder();
+        $container->register('service', ServiceWithTwoInts::class)
+            ->setArguments(['a' => 1, 'b' => []]);
+
+        $this->expectException(InvalidParameterTypeException::class);
+        $this->expectExceptionMessage('argument 2 of "Symfony\Component\DependencyInjection\Tests\Compiler\ServiceWithTwoInts::__construct()" accepts "int", "array" passed');
+
+        (new CheckTypeDeclarationsPass(true))->process($container);
+    }
 }
 
 class CallableClass
@@ -1038,3 +1050,10 @@
     {
     }
 }
+
+class ServiceWithTwoInts
+{
+    public function __construct(int $a, int $b)
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CustomExpressionLanguageFunctionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CustomExpressionLanguageFunctionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CustomExpressionLanguageFunctionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/CustomExpressionLanguageFunctionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
             ->setPublic(true)
             ->setArguments([new Expression('custom_func("foobar")')]);
 
-        $container->addExpressionLanguageProvider(new class() implements ExpressionFunctionProviderInterface {
+        $container->addExpressionLanguageProvider(new class implements ExpressionFunctionProviderInterface {
             public function getFunctions(): array
             {
                 return [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/DefinitionErrorExceptionPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/DefinitionErrorExceptionPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/DefinitionErrorExceptionPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/DefinitionErrorExceptionPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,6 +64,9 @@
         $container->register('foo', 'stdClass')
             ->addArgument(new Reference('bar', ContainerBuilder::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE));
 
+        $container->register('baz', 'stdClass')
+            ->addArgument(new Reference('bar', ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE));
+
         $pass = new DefinitionErrorExceptionPass();
         $pass->process($container);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -223,9 +223,9 @@
             ->register('foo')
             ->setPublic(true)
             ->setArguments([
-                    $ref1 = new Reference('b'),
-                    $ref2 = new Reference('b'),
-                ])
+                $ref1 = new Reference('b'),
+                $ref2 = new Reference('b'),
+            ])
         ;
         $this->process($container);
 
@@ -252,9 +252,9 @@
             ->register('foo')
             ->setPublic(true)
             ->setArguments([
-                    $ref = new Reference('b'),
-                    $inlineFactory,
-                ])
+                $ref = new Reference('b'),
+                $inlineFactory,
+            ])
         ;
         $this->process($container);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -750,7 +750,7 @@
 
         /** @var ServiceLocator $serviceLocator */
         $serviceLocator = $s->getParam();
-        $this->assertTrue($s->getParam() instanceof ServiceLocator, sprintf('Wrong instance, should be an instance of ServiceLocator, %s given', get_debug_type($serviceLocator)));
+        $this->assertTrue($s->getParam() instanceof ServiceLocator, \sprintf('Wrong instance, should be an instance of ServiceLocator, %s given', get_debug_type($serviceLocator)));
 
         $same = [
             'bar' => $serviceLocator->get('bar'),
@@ -783,7 +783,7 @@
 
         /** @var ServiceLocator $serviceLocator */
         $serviceLocator = $s->getParam();
-        $this->assertTrue($s->getParam() instanceof ServiceLocator, sprintf('Wrong instance, should be an instance of ServiceLocator, %s given', get_debug_type($serviceLocator)));
+        $this->assertTrue($s->getParam() instanceof ServiceLocator, \sprintf('Wrong instance, should be an instance of ServiceLocator, %s given', get_debug_type($serviceLocator)));
 
         $same = [
             'bar' => $serviceLocator->get('bar'),
@@ -815,7 +815,7 @@
 
         /** @var ServiceLocator $serviceLocator */
         $serviceLocator = $s->getParam();
-        $this->assertTrue($s->getParam() instanceof ServiceLocator, sprintf('Wrong instance, should be an instance of ServiceLocator, %s given', get_debug_type($serviceLocator)));
+        $this->assertTrue($s->getParam() instanceof ServiceLocator, \sprintf('Wrong instance, should be an instance of ServiceLocator, %s given', get_debug_type($serviceLocator)));
 
         $same = [
             'bar_tab_class_with_defaultmethod' => $serviceLocator->get('bar_tab_class_with_defaultmethod'),
@@ -842,7 +842,7 @@
 
         /** @var ServiceLocator $serviceLocator */
         $serviceLocator = $s->getParam();
-        $this->assertTrue($s->getParam() instanceof ServiceLocator, sprintf('Wrong instance, should be an instance of ServiceLocator, %s given', get_debug_type($serviceLocator)));
+        $this->assertTrue($s->getParam() instanceof ServiceLocator, \sprintf('Wrong instance, should be an instance of ServiceLocator, %s given', get_debug_type($serviceLocator)));
 
         $expected = [
             'bar_tag' => $container->get('bar_tag'),
@@ -868,7 +868,7 @@
 
         /** @var ServiceLocator $serviceLocator */
         $serviceLocator = $s->getParam();
-        $this->assertTrue($s->getParam() instanceof ServiceLocator, sprintf('Wrong instance, should be an instance of ServiceLocator, %s given', get_debug_type($serviceLocator)));
+        $this->assertTrue($s->getParam() instanceof ServiceLocator, \sprintf('Wrong instance, should be an instance of ServiceLocator, %s given', get_debug_type($serviceLocator)));
 
         $expected = [
             'baz' => $container->get('bar_tag'),
@@ -1180,6 +1180,36 @@
         self::assertInstanceOf(ContainerInterface::class, $taggedLocator = $s->getLocator());
         self::assertSame($container, $taggedLocator);
     }
+
+    public function testAttributeAutoconfigurationOnAnonymousClass()
+    {
+        $anonymousClass = new class {
+            #[CustomMethodAttribute('static')]
+            public function aMethod()
+            {
+            }
+        };
+
+        $container = new ContainerBuilder();
+        $container->registerAttributeForAutoconfiguration(
+            CustomMethodAttribute::class,
+            static function (ChildDefinition $d, CustomMethodAttribute $a, \ReflectionMethod $_r) {
+                $d->addTag('app.custom_tag', ['attribute' => $a->someAttribute]);
+            }
+        );
+
+        $container->register('test', $anonymousClass::class)
+            ->setPublic(true)
+            ->setSynthetic(true)
+            ->setAutoconfigured(true);
+
+        $collector = new TagCollector();
+        $container->addCompilerPass($collector);
+
+        $container->compile();
+
+        self::assertSame(['test' => [['attribute' => 'static']]], $collector->collectedTags);
+    }
 }
 
 class ServiceSubscriberStub implements ServiceSubscriberInterface
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/MergeExtensionConfigurationPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/MergeExtensionConfigurationPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/MergeExtensionConfigurationPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/MergeExtensionConfigurationPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,22 +31,22 @@
         $tmpProviders = [];
 
         $extension = $this->createMock(ExtensionInterface::class);
-        $extension->expects($this->any())
+        $extension
             ->method('getXsdValidationBasePath')
             ->willReturn(false);
-        $extension->expects($this->any())
+        $extension
             ->method('getNamespace')
             ->willReturn('http://example.org/schema/dic/foo');
-        $extension->expects($this->any())
+        $extension
             ->method('getAlias')
             ->willReturn('foo');
         $extension->expects($this->once())
             ->method('load')
-            ->willReturnCallback(function (array $config, ContainerBuilder $container) use (&$tmpProviders) {
+            ->willReturnCallback(static function (array $config, ContainerBuilder $container) use (&$tmpProviders) {
                 $tmpProviders = $container->getExpressionLanguageProviders();
             });
 
-        $provider = $this->createMock(ExpressionFunctionProviderInterface::class);
+        $provider = $this->createStub(ExpressionFunctionProviderInterface::class);
         $container = new ContainerBuilder(new ParameterBag());
         $container->registerExtension($extension);
         $container->prependExtensionConfig('foo', ['bar' => true]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/PassConfigTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/PassConfigTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/PassConfigTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/PassConfigTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,10 +25,10 @@
         $config = new PassConfig();
         $config->setBeforeOptimizationPasses([]);
 
-        $pass1 = $this->createMock(CompilerPassInterface::class);
+        $pass1 = $this->createStub(CompilerPassInterface::class);
         $config->addPass($pass1, PassConfig::TYPE_BEFORE_OPTIMIZATION, 10);
 
-        $pass2 = $this->createMock(CompilerPassInterface::class);
+        $pass2 = $this->createStub(CompilerPassInterface::class);
         $config->addPass($pass2, PassConfig::TYPE_BEFORE_OPTIMIZATION, 30);
 
         $passes = $config->getBeforeOptimizationPasses();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/PriorityTaggedServiceTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/PriorityTaggedServiceTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/PriorityTaggedServiceTraitTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/PriorityTaggedServiceTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -191,12 +191,12 @@
 
     public static function provideInvalidDefaultMethods(): iterable
     {
-        yield ['getMethodShouldBeStatic', null, sprintf('Method "%s::getMethodShouldBeStatic()" should be static.', FooTaggedForInvalidDefaultMethodClass::class)];
-        yield ['getMethodShouldBeStatic', 'foo', sprintf('Either method "%s::getMethodShouldBeStatic()" should be static or tag "my_custom_tag" on service "service1" is missing attribute "foo".', FooTaggedForInvalidDefaultMethodClass::class)];
-        yield ['getMethodShouldBePublicInsteadProtected', null, sprintf('Method "%s::getMethodShouldBePublicInsteadProtected()" should be public.', FooTaggedForInvalidDefaultMethodClass::class)];
-        yield ['getMethodShouldBePublicInsteadProtected', 'foo', sprintf('Either method "%s::getMethodShouldBePublicInsteadProtected()" should be public or tag "my_custom_tag" on service "service1" is missing attribute "foo".', FooTaggedForInvalidDefaultMethodClass::class)];
-        yield ['getMethodShouldBePublicInsteadPrivate', null, sprintf('Method "%s::getMethodShouldBePublicInsteadPrivate()" should be public.', FooTaggedForInvalidDefaultMethodClass::class)];
-        yield ['getMethodShouldBePublicInsteadPrivate', 'foo', sprintf('Either method "%s::getMethodShouldBePublicInsteadPrivate()" should be public or tag "my_custom_tag" on service "service1" is missing attribute "foo".', FooTaggedForInvalidDefaultMethodClass::class)];
+        yield ['getMethodShouldBeStatic', null, \sprintf('Method "%s::getMethodShouldBeStatic()" should be static.', FooTaggedForInvalidDefaultMethodClass::class)];
+        yield ['getMethodShouldBeStatic', 'foo', \sprintf('Either method "%s::getMethodShouldBeStatic()" should be static or tag "my_custom_tag" on service "service1" is missing attribute "foo".', FooTaggedForInvalidDefaultMethodClass::class)];
+        yield ['getMethodShouldBePublicInsteadProtected', null, \sprintf('Method "%s::getMethodShouldBePublicInsteadProtected()" should be public.', FooTaggedForInvalidDefaultMethodClass::class)];
+        yield ['getMethodShouldBePublicInsteadProtected', 'foo', \sprintf('Either method "%s::getMethodShouldBePublicInsteadProtected()" should be public or tag "my_custom_tag" on service "service1" is missing attribute "foo".', FooTaggedForInvalidDefaultMethodClass::class)];
+        yield ['getMethodShouldBePublicInsteadPrivate', null, \sprintf('Method "%s::getMethodShouldBePublicInsteadPrivate()" should be public.', FooTaggedForInvalidDefaultMethodClass::class)];
+        yield ['getMethodShouldBePublicInsteadPrivate', 'foo', \sprintf('Either method "%s::getMethodShouldBePublicInsteadPrivate()" should be public or tag "my_custom_tag" on service "service1" is missing attribute "foo".', FooTaggedForInvalidDefaultMethodClass::class)];
     }
 
     public function testTaggedItemAttributes()
@@ -233,6 +233,61 @@
         $this->assertSame(array_keys($expected), array_keys($services));
         $this->assertEquals($expected, $priorityTaggedServiceTraitImplementation->test($tag, $container));
     }
+
+    public function testDecoratedServiceAsTaggedItemIndex()
+    {
+        $container = new ContainerBuilder();
+
+        // Register the inner service with AsTaggedItem
+        $container->register('inner.tagged_service', DecoratedAsTaggedItemService::class)
+            ->setAutoconfigured(true)
+            ->addTag('my_custom_tag');
+
+        // Register a decorator that wraps the inner service
+        $decorator = $container->register('decorator.tagged_service', \stdClass::class);
+        $decorator->addTag('my_custom_tag');
+        $decorator->addTag('container.decorator', ['id' => DecoratedAsTaggedItemService::class, 'inner' => 'inner.tagged_service']);
+
+        (new ResolveInstanceofConditionalsPass())->process($container);
+
+        $priorityTaggedServiceTraitImplementation = new PriorityTaggedServiceTraitImplementation();
+
+        $tag = new TaggedIteratorArgument('my_custom_tag', 'foo', 'getFooBar');
+        $services = $priorityTaggedServiceTraitImplementation->test($tag, $container);
+
+        $this->assertArrayHasKey('custom_key', $services);
+        $this->assertSame('decorator.tagged_service', (string) $services['custom_key']);
+    }
+
+    public function testMultiLevelDecoratedServiceAsTaggedItemIndex()
+    {
+        $container = new ContainerBuilder();
+
+        // Register the innermost service with AsTaggedItem
+        $container->register('inner.tagged_service', DecoratedAsTaggedItemService::class)
+            ->setAutoconfigured(true)
+            ->addTag('my_custom_tag');
+
+        // First decorator wraps the inner service
+        $decorator1 = $container->register('decorator1.tagged_service', \stdClass::class);
+        $decorator1->addTag('my_custom_tag');
+        $decorator1->addTag('container.decorator', ['id' => DecoratedAsTaggedItemService::class, 'inner' => 'inner.tagged_service']);
+
+        // Second decorator wraps the first decorator
+        $decorator2 = $container->register('decorator2.tagged_service', \stdClass::class);
+        $decorator2->addTag('my_custom_tag');
+        $decorator2->addTag('container.decorator', ['id' => DecoratedAsTaggedItemService::class, 'inner' => 'decorator1.tagged_service']);
+
+        (new ResolveInstanceofConditionalsPass())->process($container);
+
+        $priorityTaggedServiceTraitImplementation = new PriorityTaggedServiceTraitImplementation();
+
+        $tag = new TaggedIteratorArgument('my_custom_tag', 'foo', 'getFooBar');
+        $services = $priorityTaggedServiceTraitImplementation->test($tag, $container);
+
+        $this->assertArrayHasKey('custom_key', $services);
+        $this->assertSame('decorator2.tagged_service', (string) $services['custom_key']);
+    }
 }
 
 class PriorityTaggedServiceTraitImplementation
@@ -259,3 +314,8 @@
 {
     public static function getFooBar(): string;
 }
+
+#[AsTaggedItem(index: 'custom_key', priority: 1)]
+class DecoratedAsTaggedItemService
+{
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RegisterServiceSubscribersPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RegisterServiceSubscribersPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RegisterServiceSubscribersPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RegisterServiceSubscribersPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -257,7 +257,7 @@
             $this->markTestSkipped('SubscribedService attribute not available.');
         }
 
-        $subscriber = new class() implements ServiceSubscriberInterface {
+        $subscriber = new class implements ServiceSubscriberInterface {
             use ServiceSubscriberTrait;
 
             #[SubscribedService]
@@ -277,7 +277,7 @@
             $this->markTestSkipped('SubscribedService attribute not available.');
         }
 
-        $subscriber = new class() implements ServiceSubscriberInterface {
+        $subscriber = new class implements ServiceSubscriberInterface {
             use ServiceSubscriberTrait;
 
             #[SubscribedService]
@@ -297,7 +297,7 @@
             $this->markTestSkipped('SubscribedService attribute not available.');
         }
 
-        $subscriber = new class() implements ServiceSubscriberInterface {
+        $subscriber = new class implements ServiceSubscriberInterface {
             use ServiceSubscriberTrait;
 
             #[SubscribedService]
@@ -368,7 +368,7 @@
     {
         $container = new ContainerBuilder();
 
-        $subscriber = new class() implements ServiceSubscriberInterface {
+        $subscriber = new class implements ServiceSubscriberInterface {
             public static function getSubscribedServices(): array
             {
                 return [
@@ -417,7 +417,7 @@
 
         $container = new ContainerBuilder();
 
-        $subscriber = new class() implements ServiceSubscriberInterface {
+        $subscriber = new class implements ServiceSubscriberInterface {
             public static function getSubscribedServices(): array
             {
                 return [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveBuildParametersPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveBuildParametersPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveBuildParametersPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveBuildParametersPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,4 +30,39 @@
         $this->assertFalse($builder->hasParameter('.bar'), '".bar" parameter must be removed.');
         $this->assertSame(['.bar' => 'Bar'], $pass->getRemovedParameters(), '".bar" parameter must be returned with its value.');
     }
+
+    public function testArrayBuildParametersArePreservedWhenConfigured()
+    {
+        $builder = new ContainerBuilder();
+        $builder->setParameter('foo', 'Foo');
+        $builder->setParameter('.scalar', 'Bar');
+        $builder->setParameter('.array', ['baz' => 'qux']);
+
+        $pass = new RemoveBuildParametersPass(true);
+        $pass->process($builder);
+
+        $this->assertSame('Foo', $builder->getParameter('foo'), '"foo" parameter must be defined.');
+        $this->assertFalse($builder->hasParameter('.scalar'), '".scalar" parameter must be removed.');
+        $this->assertTrue($builder->hasParameter('.array'), '".array" parameter must be preserved.');
+        $this->assertSame(['baz' => 'qux'], $builder->getParameter('.array'), '".array" parameter must retain its value.');
+        $this->assertSame(['.scalar' => 'Bar'], $pass->getRemovedParameters(), 'Only ".scalar" parameter must be returned as removed.');
+
+        $log = $builder->getCompiler()->getLog();
+        $this->assertContains(RemoveBuildParametersPass::class.': Removing build parameter ".scalar".', $log);
+        $this->assertContains(RemoveBuildParametersPass::class.': Keeping array build parameter ".array" for placeholder resolution.', $log);
+    }
+
+    public function testNonArrayBuildParametersAreAlwaysRemoved()
+    {
+        $builder = new ContainerBuilder();
+        $builder->setParameter('.scalar', 'Bar');
+        $builder->setParameter('.array', ['baz' => 'qux']);
+
+        $pass = new RemoveBuildParametersPass();
+        $pass->process($builder);
+
+        $this->assertFalse($builder->hasParameter('.scalar'), '".scalar" parameter must be removed.');
+        $this->assertFalse($builder->hasParameter('.array'), '".array" parameter must be removed.');
+        $this->assertSame(['.scalar' => 'Bar', '.array' => ['baz' => 'qux']], $pass->getRemovedParameters(), 'Both parameters must be returned as removed.');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -143,7 +143,7 @@
     public function testProcessWorksWithClosureErrorsInDefinitions()
     {
         $definition = new Definition();
-        $definition->addError(fn () => 'foo bar');
+        $definition->addError(static fn () => 'foo bar');
 
         $container = new ContainerBuilder();
         $container
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,6 +62,50 @@
         $this->process($container);
     }
 
+    public function testProcessDoesNotInvertAliasChainWithDeprecatedAlias()
+    {
+        $container = new ContainerBuilder();
+
+        // Original service (will be decorated)
+        $container->register('my_service', \stdClass::class);
+
+        // Private decorator that decorates the service
+        $container->register('my_decorator', \stdClass::class)
+            ->setDecoratedService('my_service')
+            ->setPublic(false);
+
+        // After DecoratorServicePass runs, we'll have:
+        // - my_service -> my_decorator (alias created by decorator)
+        // - my_decorator (the decorator definition, private)
+        // - my_decorator.inner (the original service)
+        //
+        // Simulate this state:
+        $container->removeDefinition('my_service');
+        $container->setAlias('my_service', 'my_decorator')->setPublic(true);
+
+        // Deprecated alias pointing to the original service ID
+        // After ResolveReferencesToAliasesPass, this would point to my_decorator
+        $container->setAlias('MyServiceInterface', 'my_decorator')
+            ->setPublic(true)
+            ->setDeprecated('my/package', '1.0', 'The "%alias_id%" alias is deprecated.');
+
+        // Now both aliases point to the same private definition:
+        // - my_service -> my_decorator (not deprecated)
+        // - MyServiceInterface -> my_decorator (deprecated)
+
+        $this->process($container);
+
+        // The non-deprecated alias (my_service) should be used for renaming,
+        // NOT the deprecated one (MyServiceInterface)
+        $this->assertTrue($container->hasDefinition('my_service'), 'my_service should be the definition, not an alias');
+        $this->assertFalse($container->hasAlias('my_service'), 'my_service should not be an alias');
+
+        // The deprecated alias should remain an alias pointing to my_service
+        $this->assertTrue($container->hasAlias('MyServiceInterface'), 'MyServiceInterface should be an alias');
+        $this->assertSame('my_service', (string) $container->getAlias('MyServiceInterface'));
+        $this->assertTrue($container->getAlias('MyServiceInterface')->isDeprecated());
+    }
+
     protected function process(ContainerBuilder $container)
     {
         $pass = new ReplaceAliasByActualDefinitionPass();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveBindingsPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveBindingsPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveBindingsPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveBindingsPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,6 +32,7 @@
 use Symfony\Component\DependencyInjection\Tests\Fixtures\NamedEnumArgumentDummy;
 use Symfony\Component\DependencyInjection\Tests\Fixtures\NamedIterableArgumentDummy;
 use Symfony\Component\DependencyInjection\Tests\Fixtures\ParentNotExists;
+use Symfony\Component\DependencyInjection\Tests\Fixtures\UntypedWithTarget;
 use Symfony\Component\DependencyInjection\Tests\Fixtures\WithTarget;
 use Symfony\Component\DependencyInjection\TypedReference;
 
@@ -232,6 +233,76 @@
         $pass->process($container);
     }
 
+    /**
+     * @dataProvider provideEmptyBindingTypehintWithMultipleBindingsCases
+     */
+    public function testEmptyBindingTypehintWithMultipleBindings(string $expectedType, string $expectedArgument, string $class, array $bindings)
+    {
+        $this->expectException(InvalidArgumentException::class);
+        $this->expectExceptionMessage(\sprintf('Did you forget to add the type "%s" to argument "$%s"', $expectedType, $expectedArgument));
+
+        $container = new ContainerBuilder();
+        $definition = $container->register($class, $class);
+        $definition->setBindings($bindings);
+
+        $pass = new ResolveBindingsPass();
+        $pass->process($container);
+    }
+
+    public static function provideEmptyBindingTypehintWithMultipleBindingsCases(): iterable
+    {
+        yield 'multiple bindings with matching first' => [
+            'string',
+            'apiKey',
+            NamedArgumentsDummy::class,
+            [
+                'string $apiKey' => new BoundArgument('foo'),
+                'int $hostName' => new BoundArgument(80),
+            ],
+        ];
+
+        yield 'multiple bindings with matching last' => [
+            'string',
+            'apiKey',
+            NamedArgumentsDummy::class,
+            [
+                'int $hostName' => new BoundArgument(80),
+                'string $apiKey' => new BoundArgument('foo'),
+            ],
+        ];
+
+        yield 'three bindings with matching in the middle' => [
+            'string',
+            'apiKey',
+            NamedArgumentsDummy::class,
+            [
+                'bool $debug' => new BoundArgument(true),
+                'string $apiKey' => new BoundArgument('foo'),
+                'int $hostName' => new BoundArgument(80),
+            ],
+        ];
+
+        yield 'class type binding' => [
+            'Psr\Log\LoggerInterface',
+            'apiKey',
+            NamedArgumentsDummy::class,
+            [
+                'int $hostName' => new BoundArgument(80),
+                'Psr\Log\LoggerInterface $apiKey' => new BoundArgument(new Reference('logger')),
+            ],
+        ];
+
+        yield 'binding matching parameter name with #[Target] attribute' => [
+            'string',
+            'key',
+            UntypedWithTarget::class,
+            [
+                'int $other' => new BoundArgument(80),
+                'string $key' => new BoundArgument('secret'),
+            ],
+        ];
+    }
+
     public function testIterableBindingTypehint()
     {
         $autoloader = static function ($class) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveClassPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveClassPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveClassPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveClassPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -93,4 +93,16 @@
 
         (new ResolveClassPass())->process($container);
     }
+
+    public function testSkipsDefinitionsWithErrors()
+    {
+        $container = new ContainerBuilder();
+        $def = $container->register('App\SomeClass');
+        $def->addError('Some error message');
+
+        (new ResolveClassPass())->process($container);
+
+        // The class should not be set because the definition has errors
+        $this->assertNull($def->getClass());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -165,6 +165,30 @@
         $this->addToAssertionCount(1);
     }
 
+    public function testDeprecationIsPreservedWhenResolvingAliasChain()
+    {
+        $container = new ContainerBuilder();
+
+        // Create a chain: deprecated_alias -> intermediate_alias -> service
+        $container->register('service', 'stdClass');
+
+        $container->setAlias('intermediate_alias', 'service');
+
+        $deprecatedAlias = new Alias('intermediate_alias');
+        $deprecatedAlias->setPublic(true);
+        $deprecatedAlias->setDeprecated('my/package', '1.0', 'The "%alias_id%" alias is deprecated.');
+        $container->setAlias('deprecated_alias', $deprecatedAlias);
+
+        $this->process($container);
+
+        // After resolving, deprecated_alias should point directly to service
+        // but should still be deprecated
+        $resolvedAlias = $container->getAlias('deprecated_alias');
+        $this->assertSame('service', (string) $resolvedAlias);
+        $this->assertTrue($resolvedAlias->isDeprecated(), 'Deprecation should be preserved when resolving alias chain');
+        $this->assertSame('my/package', $resolvedAlias->getDeprecation('deprecated_alias')['package']);
+    }
+
     protected function process(ContainerBuilder $container)
     {
         $pass = new ResolveReferencesToAliasesPass();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ServiceLocatorTagPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ServiceLocatorTagPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ServiceLocatorTagPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ServiceLocatorTagPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Component\DependencyInjection\Argument\BoundArgument;
 use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument;
 use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument;
+use Symfony\Component\DependencyInjection\Attribute\AsTaggedItem;
 use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Definition;
@@ -217,6 +218,62 @@
         static::assertSame(['service-2', 'service-1'], array_keys($factories));
     }
 
+    public function testIndexedByAsTaggedItemWithDecoration()
+    {
+        $container = new ContainerBuilder();
+
+        $locator = new Definition(Locator::class);
+        $locator->setPublic(true);
+        $locator->addArgument(new ServiceLocatorArgument(new TaggedIteratorArgument('test_tag', 'key', null, true)));
+
+        $container->setDefinition(Locator::class, $locator);
+
+        $service = new Definition(AsTaggedItemService::class);
+        $service->setPublic(true);
+        $service->setAutoconfigured(true);
+        $service->addTag('test_tag');
+
+        $container->setDefinition(AsTaggedItemService::class, $service);
+
+        $decorated = new Definition(AsTaggedItemServiceDecorator::class);
+        $decorated->setPublic(true);
+        $decorated->setDecoratedService(AsTaggedItemService::class);
+
+        $container->setDefinition(AsTaggedItemServiceDecorator::class, $decorated);
+
+        $container->compile();
+
+        /** @var ServiceLocator $locator */
+        $locator = $container->get(Locator::class)->locator;
+        static::assertTrue($locator->has('custom_key'));
+        static::assertInstanceOf(AsTaggedItemServiceDecorator::class, $locator->get('custom_key'));
+    }
+
+    public function testExcludeSelfFromTaggedServiceLocator()
+    {
+        $container = new ContainerBuilder();
+
+        $locator = new Definition(Locator::class);
+        $locator->setPublic(true);
+        $locator->addTag('test_tag');
+        $locator->addArgument(new ServiceLocatorArgument(new TaggedIteratorArgument('test_tag', null, null, true)));
+
+        $container->setDefinition(Locator::class, $locator);
+
+        $service = new Definition(Service::class);
+        $service->setPublic(true);
+        $service->addTag('test_tag');
+
+        $container->setDefinition(Service::class, $service);
+
+        $container->compile();
+
+        /** @var ServiceLocator $locator */
+        $locator = $container->get(Locator::class)->locator;
+        static::assertTrue($locator->has(Service::class), 'Other tagged services should be in the locator');
+        static::assertFalse($locator->has(Locator::class), 'The service itself should be excluded via excludeSelf');
+    }
+
     public function testBindingsAreProcessed()
     {
         $container = new ContainerBuilder();
@@ -247,3 +304,12 @@
 class DecoratedService
 {
 }
+
+#[AsTaggedItem(index: 'custom_key')]
+class AsTaggedItemService
+{
+}
+
+class AsTaggedItemServiceDecorator
+{
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ValidateEnvPlaceholdersPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ValidateEnvPlaceholdersPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ValidateEnvPlaceholdersPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Compiler/ValidateEnvPlaceholdersPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -334,7 +334,7 @@
                 ->scalarNode('scalar_node_not_empty_validated')
                     ->cannotBeEmpty()
                     ->validate()
-                        ->always(fn ($value) => $value)
+                        ->always(static fn ($value) => $value)
                     ->end()
                 ->end()
                 ->integerNode('int_node')->end()
@@ -342,12 +342,12 @@
                 ->booleanNode('bool_node')->end()
                 ->arrayNode('array_node')
                     ->beforeNormalization()
-                        ->ifTrue(fn ($value) => !\is_array($value))
-                        ->then(fn ($value) => ['child_node' => $value])
+                        ->ifTrue(static fn ($value) => !\is_array($value))
+                        ->then(static fn ($value) => ['child_node' => $value])
                     ->end()
                     ->beforeNormalization()
                         ->ifArray()
-                        ->then(function (array $v) {
+                        ->then(static function (array $v) {
                             if (isset($v['bool_force_cast'])) {
                                 $v['bool_force_cast'] = (bool) $v['bool_force_cast'];
                             }
@@ -360,7 +360,7 @@
                         ->booleanNode('bool_force_cast')->end()
                         ->integerNode('int_unset_at_zero')
                             ->validate()
-                                ->ifTrue(fn ($value) => 0 === $value)
+                                ->ifTrue(static fn ($value) => 0 === $value)
                                 ->thenUnset()
                             ->end()
                         ->end()
@@ -371,7 +371,7 @@
                 ->variableNode('variable_node')->end()
                 ->scalarNode('string_node')
                     ->validate()
-                        ->ifTrue(fn ($value) => !\is_string($value) || 'fail' === $value)
+                        ->ifTrue(static fn ($value) => !\is_string($value) || 'fail' === $value)
                         ->thenInvalid('%s is not a valid string')
                     ->end()
                 ->end()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Config/ContainerParametersResourceCheckerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Config/ContainerParametersResourceCheckerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Config/ContainerParametersResourceCheckerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Config/ContainerParametersResourceCheckerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,18 +47,18 @@
 
     public static function isFreshProvider()
     {
-        yield 'not fresh on missing parameter' => [function (MockObject $container) {
+        yield 'not fresh on missing parameter' => [static function (MockObject $container) {
             $container->method('hasParameter')->with('locales')->willReturn(false);
         }, false];
 
-        yield 'not fresh on different value' => [function (MockObject $container) {
+        yield 'not fresh on different value' => [static function (MockObject $container) {
             $container->method('getParameter')->with('locales')->willReturn(['nl', 'es']);
         }, false];
 
-        yield 'fresh on every identical parameters' => [function (MockObject $container, TestCase $testCase) {
+        yield 'fresh on every identical parameters' => [static function (MockObject $container, TestCase $testCase) {
             $container->expects($testCase->exactly(2))->method('hasParameter')->willReturn(true);
             $container->expects($testCase->exactly(2))->method('getParameter')
-                ->willReturnCallback(function (...$args) {
+                ->willReturnCallback(static function (...$args) {
                     static $series = [
                         [['locales'], ['fr', 'en']],
                         [['default_locale'], 'fr'],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,6 +49,7 @@
 use Symfony\Component\DependencyInjection\ServiceLocator;
 use Symfony\Component\DependencyInjection\Tests\Compiler\Foo;
 use Symfony\Component\DependencyInjection\Tests\Compiler\FooAnnotation;
+use Symfony\Component\DependencyInjection\Tests\Compiler\MyCallable;
 use Symfony\Component\DependencyInjection\Tests\Compiler\SingleMethodInterface;
 use Symfony\Component\DependencyInjection\Tests\Compiler\Wither;
 use Symfony\Component\DependencyInjection\Tests\Fixtures\CaseSensitiveClass;
@@ -153,7 +154,7 @@
 
     public function testDeprecateParameterThrowsWhenParameterBagIsNotInternal()
     {
-        $builder = new ContainerBuilder(new class() implements ParameterBagInterface {
+        $builder = new ContainerBuilder(new class implements ParameterBagInterface {
             public function clear(): void
             {
             }
@@ -461,8 +462,8 @@
         $builder = new ContainerBuilder();
         $builder->setResourceTracking(false);
         $defaultPasses = $builder->getCompiler()->getPassConfig()->getPasses();
-        $builder->addCompilerPass($pass1 = $this->createMock(CompilerPassInterface::class), PassConfig::TYPE_BEFORE_OPTIMIZATION, -5);
-        $builder->addCompilerPass($pass2 = $this->createMock(CompilerPassInterface::class), PassConfig::TYPE_BEFORE_OPTIMIZATION, 10);
+        $builder->addCompilerPass($pass1 = $this->createStub(CompilerPassInterface::class), PassConfig::TYPE_BEFORE_OPTIMIZATION, -5);
+        $builder->addCompilerPass($pass2 = $this->createStub(CompilerPassInterface::class), PassConfig::TYPE_BEFORE_OPTIMIZATION, 10);
 
         $passes = $builder->getCompiler()->getPassConfig()->getPasses();
         $this->assertCount(\count($passes) - 2, $defaultPasses);
@@ -522,6 +523,19 @@
         $this->assertInstanceOf(Foo::class, $container->get('closure_proxy')->theMethod());
     }
 
+    public function testClosureProxyWithStaticMethod()
+    {
+        $container = new ContainerBuilder();
+        $container->register('closure_proxy', SingleMethodInterface::class)
+            ->setPublic('true')
+            ->setFactory(['Closure', 'fromCallable'])
+            ->setArguments([[MyCallable::class, 'theMethodImpl']]);
+        $container->compile();
+
+        $this->assertInstanceOf(SingleMethodInterface::class, $container->get('closure_proxy'));
+        $this->assertSame(124, $container->get('closure_proxy')->theMethod());
+    }
+
     public function testCreateServiceClass()
     {
         $builder = new ContainerBuilder();
@@ -870,6 +884,7 @@
         $container->setParameter('bar', '%% %env(DUMMY_ENV_VAR)% %env(DUMMY_SERVER_VAR)% %env(HTTP_DUMMY_VAR)%');
         $container->setParameter('foo', '%env(FOO)%');
         $container->setParameter('baz', '%foo%');
+        $container->setParameter('qux', '%%quux%%');
         $container->setParameter('env(HTTP_DUMMY_VAR)', '123');
         $container->register('teatime', 'stdClass')
             ->setProperty('foo', '%env(DUMMY_ENV_VAR)%')
@@ -1114,7 +1129,7 @@
 
         $this->assertCount(1, $resources);
 
-        /* @var $resource \Symfony\Component\Config\Resource\FileResource */
+        /** @var FileResource $resource */
         $resource = end($resources);
 
         $this->assertInstanceOf(FileResource::class, $resource);
@@ -1177,7 +1192,7 @@
 
         $matchingResources = array_filter(
             $container->getResources(),
-            fn (ResourceInterface $resource) => 'reflection.BarClass' === (string) $resource
+            static fn (ResourceInterface $resource) => 'reflection.BarClass' === (string) $resource
         );
 
         $this->assertNotEmpty($matchingResources);
@@ -1358,7 +1373,7 @@
     public function testLazyLoadedService()
     {
         $loader = new ClosureLoader($container = new ContainerBuilder());
-        $loader->load(function (ContainerBuilder $container) {
+        $loader->load(static function (ContainerBuilder $container) {
             $container->set('a', new \BazClass());
             $definition = new Definition('BazClass');
             $definition->setLazy(true);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
      */
     public function testCamelize($id, $expected)
     {
-        $this->assertEquals($expected, Container::camelize($id), sprintf('Container::camelize("%s")', $id));
+        $this->assertEquals($expected, Container::camelize($id), \sprintf('Container::camelize("%s")', $id));
     }
 
     public static function dataForTestCamelize()
@@ -63,7 +63,7 @@
      */
     public function testUnderscore($id, $expected)
     {
-        $this->assertEquals($expected, Container::underscore($id), sprintf('Container::underscore("%s")', $id));
+        $this->assertEquals($expected, Container::underscore($id), \sprintf('Container::underscore("%s")', $id));
     }
 
     public static function dataForTestUnderscore()
@@ -320,7 +320,7 @@
     public function testReset()
     {
         $c = new Container();
-        $c->set('bar', $bar = new class() implements ResetInterface {
+        $c->set('bar', $bar = new class implements ResetInterface {
             public int $resetCounter = 0;
 
             public function reset(): void
@@ -420,7 +420,6 @@
         $container->compile();
 
         $r = new \ReflectionMethod($container, 'getEnv');
-        $r->setAccessible(true);
         $this->assertNull($r->invoke($container, 'FOO'));
     }
 
@@ -429,14 +428,11 @@
         $container = new Container();
         $container->setParameter('env(FOO)', null);
         $container->set('container.env_var_processors_locator', new ServiceLocator([
-            'string' => static function () use ($container): EnvVarProcessor {
-                return new EnvVarProcessor($container);
-            },
+            'string' => static fn () => new EnvVarProcessor($container),
         ]));
         $container->compile();
 
         $r = new \ReflectionMethod($container, 'getEnv');
-        $r->setAccessible(true);
         $this->assertNull($r->invoke($container, 'FOO'));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,10 +37,12 @@
 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 use Symfony\Component\DependencyInjection\Exception\LogicException;
 use Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException;
+use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
 use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
 use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper;
 use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
+use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
 use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
 use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\DependencyInjection\ServiceLocator;
@@ -54,6 +56,7 @@
 use Symfony\Component\DependencyInjection\Tests\Compiler\SingleMethodInterface;
 use Symfony\Component\DependencyInjection\Tests\Compiler\Wither;
 use Symfony\Component\DependencyInjection\Tests\Compiler\WitherAnnotation;
+use Symfony\Component\DependencyInjection\Tests\Fixtures\Bar;
 use Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition;
 use Symfony\Component\DependencyInjection\Tests\Fixtures\DependencyContainer;
 use Symfony\Component\DependencyInjection\Tests\Fixtures\DependencyContainerInterface;
@@ -68,6 +71,7 @@
 use Symfony\Component\DependencyInjection\Tests\Fixtures\WitherStaticReturnType;
 use Symfony\Component\DependencyInjection\TypedReference;
 use Symfony\Component\ExpressionLanguage\Expression;
+use Symfony\Component\VarExporter\Internal\LazyDecoratorTrait;
 use Symfony\Component\VarExporter\LazyObjectInterface;
 
 require_once __DIR__.'/../Fixtures/includes/autowiring_classes.php';
@@ -176,6 +180,26 @@
         $this->assertStringEqualsFile(self::$fixturesPath.'/php/custom_container_class_with_optional_constructor_arguments.php', $dumper->dump(['base_class' => 'ConstructorWithOptionalArgumentsContainer', 'namespace' => 'Symfony\Component\DependencyInjection\Tests\Fixtures\Container']));
     }
 
+    public function testDumpCustomContainerClassWithTypedParameterBagCanBeInstantiated()
+    {
+        $container = new ContainerBuilder();
+        $container->compile();
+
+        $dumper = new PhpDumper($container);
+        $code = $dumper->dump(['base_class' => 'ContainerWithTypedParameterBag', 'class' => 'CompiledContainerWithTypedParameterBag', 'namespace' => 'Symfony\Component\DependencyInjection\Tests\Fixtures\Container']);
+
+        // The compiled container must not assign null to a potentially typed $parameterBag property
+        $this->assertStringNotContainsString('$this->parameterBag = null', $code);
+        $this->assertStringContainsString('unset($this->parameterBag)', $code);
+
+        // Verify the compiled container can actually be instantiated without TypeError
+        eval('?>'.$code);
+        $compiledContainer = new \Symfony\Component\DependencyInjection\Tests\Fixtures\Container\CompiledContainerWithTypedParameterBag();
+        $this->assertTrue($compiledContainer->isCompiled());
+
+        $this->assertInstanceOf(FrozenParameterBag::class, $compiledContainer->getParameterBag());
+    }
+
     public function testDumpCustomContainerClassWithMandatoryArgumentLessConstructor()
     {
         $container = new ContainerBuilder();
@@ -318,6 +342,38 @@
         $this->assertStringMatchesFormatFile(self::$fixturesPath.'/php/services9_inlined_factories_with_tagged_iterrator.txt', $dump);
     }
 
+    public function testTaggedIteratorServicesRemainSharedWhenUsedByFactory()
+    {
+        PhpDumperTest_TaggedIteratorService::reset();
+
+        $container = new ContainerBuilder();
+        $container
+            ->register('tagged_service', PhpDumperTest_TaggedIteratorService::class)
+            ->addTag('tag1');
+        $container
+            ->register('wrapper', PhpDumperTest_TaggedIteratorWrapper::class)
+            ->setFactory([new Reference('wrapper_factory'), 'create'])
+            ->setPublic(true);
+        $container
+            ->register('wrapper_factory', PhpDumperTest_TaggedIteratorWrapperFactory::class)
+            ->setArguments([new TaggedIteratorArgument('tag1')]);
+
+        $container->compile();
+
+        $dumper = new PhpDumper($container);
+        eval('?>'.$dumper->dump(['class' => 'Symfony_DI_PhpDumper_Test_Tagged_Iterator_Factory']));
+
+        $compiled = new \Symfony_DI_PhpDumper_Test_Tagged_Iterator_Factory();
+        $wrapper = $compiled->get('wrapper');
+
+        $firstIteration = iterator_to_array($wrapper->getTaggedServices(), false);
+        $secondIteration = iterator_to_array($wrapper->getTaggedServices(), false);
+
+        $this->assertCount(1, $firstIteration);
+        $this->assertSame($firstIteration, $secondIteration);
+        $this->assertSame(1, PhpDumperTest_TaggedIteratorService::$constructed);
+    }
+
     public function testDumpAsFilesWithLazyFactoriesInlined()
     {
         $container = new ContainerBuilder();
@@ -718,6 +774,21 @@
         $dumper->dump();
     }
 
+    public function testEnvInAbstractDefinitionIsIgnoredWhenDefinitionIsRemoved()
+    {
+        $container = new ContainerBuilder();
+        $container->register('abstract_service', Bar::class)
+            ->setAbstract(true)
+            ->setArgument('$quz', '%env(FOO)%')
+        ;
+        $container->compile();
+
+        $dumper = new PhpDumper($container);
+        $dumper->dump();
+
+        $this->assertGreaterThan(0, $container->getEnvCounters()['FOO']);
+    }
+
     public function testCircularDynamicEnv()
     {
         $this->expectException(ParameterCircularReferenceException::class);
@@ -920,7 +991,8 @@
 
         $dumper = new PhpDumper($container);
 
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/services_dedup_lazy.php', $dumper->dump());
+        $legacy = \PHP_VERSION_ID < 80400 || !trait_exists(LazyDecoratorTrait::class) ? 'legacy_' : '';
+        $this->assertStringEqualsFile(self::$fixturesPath.'/php/'.$legacy.'services_dedup_lazy.php', $dumper->dump());
     }
 
     public function testLazyArgumentProvideGenerator()
@@ -1062,7 +1134,7 @@
 
         $container->register(TestDefinition1::class, TestDefinition1::class)->setPublic(true);
 
-        $container->addCompilerPass(new class() implements CompilerPassInterface {
+        $container->addCompilerPass(new class implements CompilerPassInterface {
             public function process(ContainerBuilder $container): void
             {
                 $container->setDefinition('late_alias', new Definition(TestDefinition1::class))->setPublic(true);
@@ -1386,26 +1458,26 @@
         $this->assertSame(FooUnitEnum::BAR, $container->getParameter('unit_enum'));
         $this->assertSame([FooUnitEnum::BAR, FooUnitEnum::FOO], $container->getParameter('enum_array'));
         $this->assertStringMatchesFormat(<<<'PHP'
-%A
-    protected static function getBarService($container)
-    {
-        return $container->services['bar'] = new \stdClass(\Symfony\Component\DependencyInjection\Tests\Fixtures\FooUnitEnum::BAR, $container->getParameter('enum_array'));
-    }
-%A
-    private function getDynamicParameter(string $name)
-    {
-        $container = $this;
-        $value = match ($name) {
-            'unit_enum' => \Symfony\Component\DependencyInjection\Tests\Fixtures\FooUnitEnum::BAR,
-            'enum_array' => [
-                0 => \Symfony\Component\DependencyInjection\Tests\Fixtures\FooUnitEnum::BAR,
-                1 => \Symfony\Component\DependencyInjection\Tests\Fixtures\FooUnitEnum::FOO,
-            ],
-            default => throw new ParameterNotFoundException($name),
-        };
-%A
-PHP
-            , $dumpedContainer
+            %A
+                protected static function getBarService($container)
+                {
+                    return $container->services['bar'] = new \stdClass(\Symfony\Component\DependencyInjection\Tests\Fixtures\FooUnitEnum::BAR, $container->getParameter('enum_array'));
+                }
+            %A
+                private function getDynamicParameter(string $name)
+                {
+                    $container = $this;
+                    $value = match ($name) {
+                        'unit_enum' => \Symfony\Component\DependencyInjection\Tests\Fixtures\FooUnitEnum::BAR,
+                        'enum_array' => [
+                            0 => \Symfony\Component\DependencyInjection\Tests\Fixtures\FooUnitEnum::BAR,
+                            1 => \Symfony\Component\DependencyInjection\Tests\Fixtures\FooUnitEnum::FOO,
+                        ],
+                        default => throw new ParameterNotFoundException($name),
+                    };
+            %A
+            PHP,
+            $dumpedContainer
         );
     }
 
@@ -1431,6 +1503,39 @@
         $this->assertEquals((object) ['foo' => (object) [123]], $container->get('bar'));
     }
 
+    public function testSyntheticServiceWithNullOnInvalidReference()
+    {
+        $container = new ContainerBuilder();
+        $container->register('synthetic_service', 'stdClass')->setPublic(true)->setSynthetic(true);
+        // Reference the synthetic service twice so the dumper creates a variable for it
+        $container->register('bar', 'stdClass')->setPublic(true)->setShared(false)
+            ->setProperty('synth', new Reference('synthetic_service', ContainerBuilder::NULL_ON_INVALID_REFERENCE))
+            ->setProperty('synth2', new Reference('synthetic_service', ContainerBuilder::NULL_ON_INVALID_REFERENCE));
+
+        $container->compile();
+
+        $dumper = new PhpDumper($container);
+        $dump = $dumper->dump([
+            'class' => 'Symfony_DI_PhpDumper_Test_SyntheticNullOnInvalid',
+        ]);
+
+        // The dumped code should pass the behavior (2 = NULL_ON_INVALID_REFERENCE) when getting the synthetic service
+        $this->assertStringContainsString("->get('synthetic_service', 2)", $dump);
+
+        eval('?>'.$dump);
+
+        $container = new \Symfony_DI_PhpDumper_Test_SyntheticNullOnInvalid();
+
+        // Without the synthetic service being set, bar should still be instantiable with synth=null
+        $bar = $container->get('bar');
+        $this->assertNull($bar->synth);
+
+        // After setting the synthetic service, it should be injected
+        $container->set('synthetic_service', (object) ['test' => 123]);
+        $bar2 = $container->get('bar');
+        $this->assertEquals((object) ['test' => 123], $bar2->synth);
+    }
+
     public function testAdawsonContainer()
     {
         $container = new ContainerBuilder();
@@ -1616,7 +1721,8 @@
         $container->compile();
         $dumper = new PhpDumper($container);
         $dump = $dumper->dump(['class' => 'Symfony_DI_PhpDumper_Service_Wither_Lazy']);
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/services_wither_lazy.php', $dump);
+        $legacy = \PHP_VERSION_ID < 80400 || !trait_exists(LazyDecoratorTrait::class) ? 'legacy_' : '';
+        $this->assertStringEqualsFile(self::$fixturesPath.'/php/'.$legacy.'services_wither_lazy.php', $dump);
         eval('?>'.$dump);
 
         $container = new \Symfony_DI_PhpDumper_Service_Wither_Lazy();
@@ -1641,7 +1747,8 @@
         $container->compile();
         $dumper = new PhpDumper($container);
         $dump = $dumper->dump(['class' => 'Symfony_DI_PhpDumper_Service_Wither_Lazy_Non_Shared']);
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/services_wither_lazy_non_shared.php', $dump);
+        $legacy = \PHP_VERSION_ID < 80400 || !trait_exists(LazyDecoratorTrait::class) ? 'legacy_' : '';
+        $this->assertStringEqualsFile(self::$fixturesPath.'/php/'.$legacy.'services_wither_lazy_non_shared.php', $dump);
         eval('?>'.$dump);
 
         $container = new \Symfony_DI_PhpDumper_Service_Wither_Lazy_Non_Shared();
@@ -1780,6 +1887,25 @@
         $dumper->dump();
     }
 
+    public function testDotPrefixedParametersAreNotAccessibleInDumpedContainer()
+    {
+        $container = new ContainerBuilder();
+        $container->setParameter('.build_param', 'internal_value');
+        $container->setParameter('regular_param', 'public_value');
+        $container->compile();
+
+        $dumper = new PhpDumper($container);
+        eval('?>'.$dumper->dump(['class' => 'Symfony_DI_PhpDumper_Test_Dot_Prefixed']));
+
+        $dumped = new \Symfony_DI_PhpDumper_Test_Dot_Prefixed();
+
+        $this->assertTrue($dumped->hasParameter('regular_param'));
+        $this->assertSame('public_value', $dumped->getParameter('regular_param'));
+        $this->assertFalse($dumped->hasParameter('.build_param'));
+        $this->expectException(ParameterNotFoundException::class);
+        $dumped->getParameter('.build_param');
+    }
+
     /**
      * @group legacy
      */
@@ -1828,6 +1954,37 @@
         $this->addToAssertionCount(1);
     }
 
+    public function testDecoratedFactoryServiceKeepsReentrantInstance()
+    {
+        ReentrantFactory::reset();
+
+        $container = new ContainerBuilder();
+        $container
+            ->register('decorated_service', \stdClass::class)
+            ->setPublic(true);
+        $container
+            ->register('decorated_service.reentrant', \stdClass::class)
+            ->setPublic(true)
+            ->setDecoratedService('decorated_service')
+            ->setFactory([ReentrantFactory::class, 'create'])
+            ->setArguments([
+                new ServiceLocatorArgument(['decorated_service' => new Reference('decorated_service')]),
+                new Reference('decorated_service.reentrant.inner'),
+            ]);
+
+        $container->compile();
+
+        $dumper = new PhpDumper($container);
+        eval('?>'.$dumper->dump(['class' => 'Symfony_DI_PhpDumper_Test_Reentrant_Service']));
+
+        $compiled = new \Symfony_DI_PhpDumper_Test_Reentrant_Service();
+
+        $service = $compiled->get('decorated_service');
+
+        $this->assertInstanceOf(\stdClass::class, ReentrantFactory::$reentrantInstance);
+        $this->assertSame(ReentrantFactory::$reentrantInstance, $service);
+    }
+
     public function testExpressionInFactory()
     {
         $container = new ContainerBuilder();
@@ -1856,7 +2013,7 @@
     {
         $container = new ContainerBuilder();
         $container->register('closure_proxy', SingleMethodInterface::class)
-            ->setPublic('true')
+            ->setPublic(true)
             ->setFactory(['Closure', 'fromCallable'])
             ->setArguments([[new Reference('foo'), 'cloneFoo']])
             ->setLazy(true);
@@ -1878,12 +2035,12 @@
     {
         $container = new ContainerBuilder();
         $container->register('closure', 'Closure')
-            ->setPublic('true')
+            ->setPublic(true)
             ->setFactory(['Closure', 'fromCallable'])
             ->setArguments([new Reference('bar')]);
         $container->register('bar', 'stdClass');
         $container->register('closure_of_service_closure', 'Closure')
-            ->setPublic('true')
+            ->setPublic(true)
             ->setFactory(['Closure', 'fromCallable'])
             ->setArguments([new ServiceClosureArgument(new Reference('bar2'))]);
         $container->register('bar2', 'stdClass');
@@ -1897,15 +2054,15 @@
     {
         $container = new ContainerBuilder();
         $container->register('foo', Foo::class)
-            ->setPublic('true');
+            ->setPublic(true);
         $container->register('my_callable', MyCallable::class)
-            ->setPublic('true');
+            ->setPublic(true);
         $container->register('baz', \Closure::class)
             ->setFactory(['Closure', 'fromCallable'])
             ->setArguments(['var_dump'])
-            ->setPublic('true');
+            ->setPublic(true);
         $container->register('bar', LazyClosureConsumer::class)
-            ->setPublic('true')
+            ->setPublic(true)
             ->setAutowired(true);
         $container->compile();
         $dumper = new PhpDumper($container);
@@ -1931,12 +2088,12 @@
     {
         $container = new ContainerBuilder();
         $container->register('closure1', 'Closure')
-            ->setPublic('true')
+            ->setPublic(true)
             ->setFactory(['Closure', 'fromCallable'])
             ->setLazy(true)
             ->setArguments([[new Reference('foo'), 'cloneFoo']]);
         $container->register('closure2', 'Closure')
-            ->setPublic('true')
+            ->setPublic(true)
             ->setFactory(['Closure', 'fromCallable'])
             ->setLazy(true)
             ->setArguments([[new Reference('foo_void'), '__invoke']]);
@@ -1970,17 +2127,18 @@
     {
         $container = new ContainerBuilder();
         $container->register('foo', Foo::class)
-            ->setPublic('true');
+            ->setPublic(true);
         $container->setAlias(Foo::class, 'foo');
         $container->register('bar', LazyServiceConsumer::class)
-            ->setPublic('true')
+            ->setPublic(true)
             ->setAutowired(true);
         $container->compile();
         $dumper = new PhpDumper($container);
 
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/lazy_autowire_attribute.php', $dumper->dump(['class' => 'Symfony_DI_PhpDumper_Test_Lazy_Autowire_Attribute']));
+        $legacy = \PHP_VERSION_ID < 80400 || !trait_exists(LazyDecoratorTrait::class) ? 'legacy_' : '';
+        $this->assertStringEqualsFile(self::$fixturesPath.'/php/'.$legacy.'lazy_autowire_attribute.php', $dumper->dump(['class' => 'Symfony_DI_PhpDumper_Test_Lazy_Autowire_Attribute']));
 
-        require self::$fixturesPath.'/php/lazy_autowire_attribute.php';
+        require self::$fixturesPath.'/php/'.$legacy.'lazy_autowire_attribute.php';
 
         $container = new \Symfony_DI_PhpDumper_Test_Lazy_Autowire_Attribute();
 
@@ -1993,7 +2151,7 @@
     {
         $container = new ContainerBuilder();
         $container->register('foo', AAndIInterfaceConsumer::class)
-            ->setPublic('true')
+            ->setPublic(true)
             ->setAutowired(true);
 
         $container->compile();
@@ -2009,7 +2167,8 @@
 
         $dumper = new PhpDumper($container);
 
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/lazy_autowire_attribute_with_intersection.php', $dumper->dump());
+        $legacy = \PHP_VERSION_ID < 80400 || !trait_exists(LazyDecoratorTrait::class) ? 'legacy_' : '';
+        $this->assertStringEqualsFile(self::$fixturesPath.'/php/'.$legacy.'lazy_autowire_attribute_with_intersection.php', $dumper->dump());
     }
 
     public function testCallableAdapterConsumer()
@@ -2017,7 +2176,7 @@
         $container = new ContainerBuilder();
         $container->register('foo', Foo::class);
         $container->register('bar', CallableAdapterConsumer::class)
-            ->setPublic('true')
+            ->setPublic(true)
             ->setAutowired(true);
         $container->compile();
         $dumper = new PhpDumper($container);
@@ -2063,78 +2222,98 @@
             ['<?php echo/**/\foo();', '<?php echo \foo();'],
             ['<?php echo/** bar */\foo();', '<?php echo \foo();'],
             ['<?php /**/echo \foo();', '<?php echo \foo();'],
-            [<<<'EOF'
-<?php
-include_once \dirname(__DIR__).'/foo.php';
+            [
+                <<<'EOF'
+                    <?php
+                    include_once \dirname(__DIR__).'/foo.php';
 
-$string = 'string should not be   modified';
+                    $string = 'string should not be   modified';
 
-$string = 'string should not be
+                    $string = 'string should not be
 
-modified';
+                    modified';
 
 
-$heredoc = <<<HD
+                    $heredoc = <<<HD
 
 
-Heredoc should not be   modified {$a[1+$b]}
+                    Heredoc should not be   modified {$a[1+$b]}
 
 
-HD;
+                    HD;
 
-$nowdoc = <<<'ND'
+                    $nowdoc = <<<'ND'
 
 
-Nowdoc should not be   modified
+                    Nowdoc should not be   modified
 
 
-ND;
+                    ND;
 
-/**
- * some class comments to strip
- */
-class TestClass
-{
-    /**
-     * some method comments to strip
-     */
-    public function doStuff()
-    {
-        // inline comment
-    }
-}
-EOF
-                , <<<'EOF'
-<?php
-include_once \dirname(__DIR__).'/foo.php';
-$string = 'string should not be   modified';
-$string = 'string should not be
+                    /**
+                     * some class comments to strip
+                     */
+                    class TestClass
+                    {
+                        /**
+                         * some method comments to strip
+                         */
+                        public function doStuff()
+                        {
+                            // inline comment
+                        }
+                    }
+                    EOF,
+                <<<'EOF'
+                    <?php
+                    include_once \dirname(__DIR__).'/foo.php';
+                    $string = 'string should not be   modified';
+                    $string = 'string should not be
 
-modified';
-$heredoc = <<<HD
+                    modified';
+                    $heredoc = <<<HD
 
 
-Heredoc should not be   modified {$a[1+$b]}
+                    Heredoc should not be   modified {$a[1+$b]}
 
 
-HD;
-$nowdoc = <<<'ND'
+                    HD;
+                    $nowdoc = <<<'ND'
 
 
-Nowdoc should not be   modified
+                    Nowdoc should not be   modified
 
 
-ND;
-class TestClass
-{
-    public function doStuff()
-    {
-        }
-}
-EOF
+                    ND;
+                    class TestClass
+                    {
+                        public function doStuff()
+                        {
+                            }
+                    }
+                    EOF,
             ],
         ];
     }
+
+    public function testDumpServiceClosureWithNullableTypedReference()
+    {
+        $container = new ContainerBuilder();
+        $container->register('bar', 'stdClass');
+        $container->register('foo', 'stdClass')
+            ->setPublic(true)
+            ->setArguments([
+                new ServiceClosureArgument(new TypedReference('bar', '?stdClass')),
+            ]);
+
+        $container->compile();
+
+        $dumper = new PhpDumper($container);
+        $code = $dumper->dump(['as_files' => false]);
+
+        $this->assertStringNotContainsString(': \?stdClass', $code);
+        $this->assertStringContainsString(': ?\stdClass', $code);
+    }
 }
 
 class Rot13EnvVarProcessor implements EnvVarProcessorInterface
@@ -2193,3 +2372,67 @@
     ) {
     }
 }
+
+class ReentrantFactory
+{
+    public static ?object $reentrantInstance = null;
+    private static bool $shouldReenter = true;
+
+    public static function reset(): void
+    {
+        self::$reentrantInstance = null;
+        self::$shouldReenter = true;
+    }
+
+    public static function create(ServiceLocator $locator, object $inner): \stdClass
+    {
+        if (self::$shouldReenter) {
+            self::$shouldReenter = false;
+            self::$reentrantInstance = $locator->get('decorated_service');
+            self::$shouldReenter = true;
+        }
+
+        return (object) ['inner' => $inner];
+    }
+}
+
+class PhpDumperTest_TaggedIteratorService
+{
+    public static int $constructed = 0;
+
+    public function __construct()
+    {
+        ++self::$constructed;
+    }
+
+    public static function reset(): void
+    {
+        self::$constructed = 0;
+    }
+}
+
+class PhpDumperTest_TaggedIteratorWrapper
+{
+    public function __construct(
+        private iterable $taggedServices,
+    ) {
+    }
+
+    public function getTaggedServices(): iterable
+    {
+        return $this->taggedServices;
+    }
+}
+
+class PhpDumperTest_TaggedIteratorWrapperFactory
+{
+    public function __construct(
+        private iterable $taggedServices,
+    ) {
+    }
+
+    public function create(): PhpDumperTest_TaggedIteratorWrapper
+    {
+        return new PhpDumperTest_TaggedIteratorWrapper($this->taggedServices);
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -215,6 +215,26 @@
         $this->assertEquals(file_get_contents(self::$fixturesPath.'/yaml/services_with_array_tags.yml'), $dumper->dump());
     }
 
+    public function testDumpResolvedEnvPlaceholders()
+    {
+        $container = new ContainerBuilder();
+        $container->setParameter('%env(PARAMETER_NAME)%', '%env(PARAMETER_VALUE)%');
+        $container
+            ->register('service', '%env(SERVICE_CLASS)%')
+            ->setFile('%env(SERVICE_FILE)%')
+            ->addArgument('%env(SERVICE_ARGUMENT)%')
+            ->setProperty('%env(SERVICE_PROPERTY_NAME)%', '%env(SERVICE_PROPERTY_VALUE)%')
+            ->addMethodCall('%env(SERVICE_METHOD_NAME)%', ['%env(SERVICE_METHOD_ARGUMENT)%'])
+            ->setFactory('%env(SERVICE_FACTORY)%')
+            ->setConfigurator('%env(SERVICE_CONFIGURATOR)%')
+            ->setPublic(true)
+        ;
+        $container->compile();
+        $dumper = new YamlDumper($container);
+
+        $this->assertEquals(file_get_contents(self::$fixturesPath.'/yaml/container_with_env_placeholders.yml'), $dumper->dump());
+    }
+
     private function assertEqualYamlStructure(string $expected, string $yaml, string $message = '')
     {
         $parser = new Parser();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -329,10 +329,10 @@
 
         $this->assertSame('hello', $result);
 
-        $result = $processor->getEnv('base64', 'foo', fn ($name) => '/+0=');
+        $result = $processor->getEnv('base64', 'foo', static fn ($name) => '/+0=');
         $this->assertSame("\xFF\xED", $result);
 
-        $result = $processor->getEnv('base64', 'foo', fn ($name) => '_-0=');
+        $result = $processor->getEnv('base64', 'foo', static fn ($name) => '_-0=');
         $this->assertSame("\xFF\xED", $result);
     }
 
@@ -580,7 +580,7 @@
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage('Resolved value of "foo" did not result in a string or int value.');
 
-        $processor->getEnv('enum', StringBackedEnum::class.':foo', fn () => null);
+        $processor->getEnv('enum', StringBackedEnum::class.':foo', static fn () => null);
     }
 
     public function testGetEnvEnumInvalidArg()
@@ -590,7 +590,7 @@
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage('"bogus" is not a "BackedEnum".');
 
-        $processor->getEnv('enum', 'bogus:foo', fn () => '');
+        $processor->getEnv('enum', 'bogus:foo', static fn () => '');
     }
 
     public function testGetEnvEnumInvalidBackedValue()
@@ -600,7 +600,7 @@
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage('Enum value "bogus" is not backed by "'.StringBackedEnum::class.'".');
 
-        $processor->getEnv('enum', StringBackedEnum::class.':foo', fn () => 'bogus');
+        $processor->getEnv('enum', StringBackedEnum::class.':foo', static fn () => 'bogus');
     }
 
     /**
@@ -625,7 +625,7 @@
             ['null', 'null'],
             ['Null', 'Null'],
             ['NULL', 'NULL'],
-         ];
+        ];
     }
 
     public function testRequireMissingFile()
@@ -635,7 +635,7 @@
         $this->expectException(EnvNotFoundException::class);
         $this->expectExceptionMessage('missing-file');
 
-        $processor->getEnv('require', '/missing-file', fn ($name) => $name);
+        $processor->getEnv('require', '/missing-file', static fn ($name) => $name);
     }
 
     public function testRequireFile()
@@ -664,7 +664,7 @@
 
         $processor = new EnvVarProcessor($container);
 
-        $result = $processor->getEnv('resolve', 'foo', fn () => '%bar%');
+        $result = $processor->getEnv('resolve', 'foo', static fn () => '%bar%');
 
         $this->assertSame($processed, $result);
     }
@@ -684,7 +684,7 @@
     {
         $processor = new EnvVarProcessor(new Container());
 
-        $result = $processor->getEnv('resolve', 'foo', fn () => '%%');
+        $result = $processor->getEnv('resolve', 'foo', static fn () => '%%');
 
         $this->assertSame('%', $result);
     }
@@ -703,7 +703,7 @@
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage('Parameter "bar" found when resolving env var "foo" must be scalar');
 
-        $processor->getEnv('resolve', 'foo', fn () => '%bar%');
+        $processor->getEnv('resolve', 'foo', static fn () => '%bar%');
     }
 
     public static function notScalarResolve()
@@ -723,7 +723,7 @@
         $processor = new EnvVarProcessor($container);
         $getEnv = $processor->getEnv(...);
 
-        $result = $processor->getEnv('resolve', 'foo', fn ($name) => 'foo' === $name ? '%env(BAR)%' : $getEnv('string', $name, function () {}));
+        $result = $processor->getEnv('resolve', 'foo', static fn ($name) => 'foo' === $name ? '%env(BAR)%' : $getEnv('string', $name, static function () {}));
 
         $this->assertSame('BAR in container', $result);
     }
@@ -739,7 +739,7 @@
         $processor = new EnvVarProcessor($container);
         $getEnv = $processor->getEnv(...);
 
-        $result = $processor->getEnv('resolve', 'foo', fn ($name) => 'foo' === $name ? '%env(BAR)%' : $getEnv('string', $name, function () {}));
+        $result = $processor->getEnv('resolve', 'foo', static fn ($name) => 'foo' === $name ? '%env(BAR)%' : $getEnv('string', $name, static function () {}));
 
         $this->assertSame('BAR in environment', $result);
 
@@ -768,7 +768,7 @@
 
         $this->assertSame(
             ['bar', 'foo'],
-            (new EnvVarProcessor(new Container()))->getEnv('shuffle', '', fn () => ['foo', 'bar']),
+            (new EnvVarProcessor(new Container()))->getEnv('shuffle', '', static fn () => ['foo', 'bar']),
         );
     }
 
@@ -776,14 +776,14 @@
     {
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage('Env var "foo" cannot be shuffled, expected array, got "string".');
-        (new EnvVarProcessor(new Container()))->getEnv('shuffle', 'foo', fn () => 'bar');
+        (new EnvVarProcessor(new Container()))->getEnv('shuffle', 'foo', static fn () => 'bar');
     }
 
     public static function validCsv()
     {
         $complex = <<<'CSV'
-,"""","foo""","\""",\,foo\
-CSV;
+            ,"""","foo""","\""",\,foo\
+            CSV;
 
         return [
             ['', []],
@@ -801,14 +801,14 @@
         $_ENV['BAZ_ENV_LOADER'] = '';
         $_ENV['BUZ_ENV_LOADER'] = '';
 
-        $loaders = function () {
-            yield new class() implements EnvVarLoaderInterface {
+        $loaders = static function () {
+            yield new class implements EnvVarLoaderInterface {
                 public function loadEnvVars(): array
                 {
                     return [
                         'FOO_ENV_LOADER' => '123',
                         'BAZ_ENV_LOADER' => '',
-                        'LAZY_ENV_LOADER' => new class() {
+                        'LAZY_ENV_LOADER' => new class {
                             public function __toString()
                             {
                                 return '';
@@ -818,14 +818,14 @@
                 }
             };
 
-            yield new class() implements EnvVarLoaderInterface {
+            yield new class implements EnvVarLoaderInterface {
                 public function loadEnvVars(): array
                 {
                     return [
                         'FOO_ENV_LOADER' => '234',
                         'BAR_ENV_LOADER' => '456',
                         'BAZ_ENV_LOADER' => '567',
-                        'LAZY_ENV_LOADER' => new class() {
+                        'LAZY_ENV_LOADER' => new class {
                             public function __toString()
                             {
                                 return '678';
@@ -838,22 +838,22 @@
 
         $processor = new EnvVarProcessor(new Container(), new RewindableGenerator($loaders, 2));
 
-        $result = $processor->getEnv('string', 'FOO_ENV_LOADER', function () {});
+        $result = $processor->getEnv('string', 'FOO_ENV_LOADER', static function () {});
         $this->assertSame('123', $result);
 
-        $result = $processor->getEnv('string', 'BAR_ENV_LOADER', function () {});
+        $result = $processor->getEnv('string', 'BAR_ENV_LOADER', static function () {});
         $this->assertSame('456', $result);
 
-        $result = $processor->getEnv('string', 'BAZ_ENV_LOADER', function () {});
+        $result = $processor->getEnv('string', 'BAZ_ENV_LOADER', static function () {});
         $this->assertSame('567', $result);
 
-        $result = $processor->getEnv('string', 'BUZ_ENV_LOADER', function () {});
+        $result = $processor->getEnv('string', 'BUZ_ENV_LOADER', static function () {});
         $this->assertSame('', $result);
 
-        $result = $processor->getEnv('string', 'FOO_ENV_LOADER', function () {});
+        $result = $processor->getEnv('string', 'FOO_ENV_LOADER', static function () {});
         $this->assertSame('123', $result); // check twice
 
-        $result = $processor->getEnv('string', 'LAZY_ENV_LOADER', function () {});
+        $result = $processor->getEnv('string', 'LAZY_ENV_LOADER', static function () {});
         $this->assertSame('678', $result);
 
         unset($_ENV['BAZ_ENV_LOADER']);
@@ -867,12 +867,12 @@
         $container->compile();
 
         $index = 0;
-        $loaders = function () use (&$index) {
+        $loaders = static function () use (&$index) {
             if (0 === $index++) {
                 throw new ParameterCircularReferenceException(['FOO_CONTAINER']);
             }
 
-            yield new class() implements EnvVarLoaderInterface {
+            yield new class implements EnvVarLoaderInterface {
                 public function loadEnvVars(): array
                 {
                     return [
@@ -884,16 +884,16 @@
 
         $processor = new EnvVarProcessor($container, new RewindableGenerator($loaders, 1));
 
-        $result = $processor->getEnv('string', 'FOO_CONTAINER', function () {});
+        $result = $processor->getEnv('string', 'FOO_CONTAINER', static function () {});
         $this->assertSame('foo', $result);
 
-        $result = $processor->getEnv('string', 'FOO_ENV_LOADER', function () {});
+        $result = $processor->getEnv('string', 'FOO_ENV_LOADER', static function () {});
         $this->assertSame('123', $result);
 
         $result = $processor->getEnv('default', ':BAR_CONTAINER', function ($name) use ($processor) {
             $this->assertSame('BAR_CONTAINER', $name);
 
-            return $processor->getEnv('string', $name, function () {});
+            return $processor->getEnv('string', $name, static function () {});
         });
         $this->assertNull($result);
 
@@ -946,11 +946,7 @@
     {
         $processor = new EnvVarProcessor(new Container());
 
-        $this->assertSame($expected, $processor->getEnv($prefix, 'default::FOO', static function () use ($processor) {
-            return $processor->getEnv('default', ':FOO', static function () {
-                return null;
-            });
-        }));
+        $this->assertSame($expected, $processor->getEnv($prefix, 'default::FOO', static fn () => $processor->getEnv('default', ':FOO', static fn () => null)));
     }
 
     public function testGetEnvWithEmptyStringPrefixCastsToString()
@@ -976,10 +972,30 @@
 
     public static function provideGetEnvDefined(): iterable
     {
-        yield 'Defined' => [true, fn () => 'foo'];
-        yield 'Falsy but defined' => [true, fn () => '0'];
-        yield 'Empty string' => [false, fn () => ''];
-        yield 'Null' => [false, fn () => null];
-        yield 'Env var not defined' => [false, fn () => throw new EnvNotFoundException()];
+        yield 'Defined' => [true, static fn () => 'foo'];
+        yield 'Falsy but defined' => [true, static fn () => '0'];
+        yield 'Empty string' => [false, static fn () => ''];
+        yield 'Null' => [false, static fn () => null];
+        yield 'Env var not defined' => [false, static fn () => throw new EnvNotFoundException()];
+    }
+
+    /**
+     * @dataProvider provideQueryStringScenarios
+     */
+    public function testQueryStringEnvVarProcessor($envValue, $expectedResult)
+    {
+        $processor = new EnvVarProcessor(new Container());
+
+        $result = $processor->getEnv('query_string', 'MY_VAR', static fn () => $envValue);
+
+        $this->assertSame($expectedResult, $result);
+    }
+
+    public static function provideQueryStringScenarios(): iterable
+    {
+        yield 'url_without_query' => ['https://example.com', []];
+        yield 'url_with_empty_query' => ['https://example.com?', []];
+        yield 'url_with_query' => ['https://example.com?foo=bar&baz=123', ['foo' => 'bar', 'baz' => '123']];
+        yield 'raw_query_string' => ['foo=bar&test=1', ['foo' => 'bar', 'test' => '1']];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Exception/AutowiringFailedExceptionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Exception/AutowiringFailedExceptionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Exception/AutowiringFailedExceptionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Exception/AutowiringFailedExceptionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
         $counter = 0;
         $exception = new AutowiringFailedException(
             'App\DummyService',
-            function () use (&$counter) {
+            static function () use (&$counter) {
                 ++$counter;
 
                 throw new \Exception('boo');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Extension/AbstractExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Extension/AbstractExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Extension/AbstractExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Extension/AbstractExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
 {
     public function testConfiguration()
     {
-        $extension = new class() extends AbstractExtension {
+        $extension = new class extends AbstractExtension {
             public function configure(DefinitionConfigurator $definition): void
             {
                 // load one
@@ -56,7 +56,7 @@
 
     public function testPrependAppendExtensionConfig()
     {
-        $extension = new class() extends AbstractExtension {
+        $extension = new class extends AbstractExtension {
             public function prependExtension(ContainerConfigurator $container, ContainerBuilder $builder): void
             {
                 // append config
@@ -80,7 +80,7 @@
 
     public function testLoadExtension()
     {
-        $extension = new class() extends AbstractExtension {
+        $extension = new class extends AbstractExtension {
             public function configure(DefinitionConfigurator $definition): void
             {
                 $definition->import('../Fixtures/config/definition/foo.php');
@@ -121,7 +121,7 @@
 
     protected function processPrependExtension(PrependExtensionInterface $extension): ContainerBuilder
     {
-        $thirdExtension = new class() extends AbstractExtension {
+        $thirdExtension = new class extends AbstractExtension {
             public function configure(DefinitionConfigurator $definition): void
             {
                 $definition->import('../Fixtures/config/definition/foo.php');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/instanceof_import_child.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/instanceof_import_child.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/instanceof_import_child.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/instanceof_import_child.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,5 @@
+<?php
+
+use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+
+return function (ContainerConfigurator $container) {};
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/instanceof_import_parent.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/instanceof_import_parent.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/instanceof_import_parent.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/instanceof_import_parent.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,17 @@
+<?php
+
+namespace Symfony\Component\DependencyInjection\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
+
+return function (ContainerConfigurator $container, PhpFileLoader $loader) {
+    $services = $container->services();
+
+    $services->instanceof(\stdClass::class)->tag('foo_tag');
+
+    $services->set('service_before', \stdClass::class);
+
+    $loader->import('instanceof_import_child.php');
+
+    $services->set('service_after', \stdClass::class);
+};
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Container/ContainerWithTypedParameterBag.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Container/ContainerWithTypedParameterBag.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Container/ContainerWithTypedParameterBag.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Container/ContainerWithTypedParameterBag.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,13 @@
+<?php
+
+namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Container;
+
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
+
+class ContainerWithTypedParameterBag extends \Symfony\Component\DependencyInjection\Container
+{
+    public function __construct(?ParameterBagInterface $parameterBag = null)
+    {
+        parent::__construct($parameterBag);
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes_80.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes_80.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes_80.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes_80.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
 use Symfony\Component\DependencyInjection\Attribute\AutowireDecorated;
 use Symfony\Component\DependencyInjection\Attribute\TaggedIterator;
 use Symfony\Component\DependencyInjection\Attribute\TaggedLocator;
+use Symfony\Component\DependencyInjection\Attribute\Target;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Contracts\Service\Attribute\Required;
 
@@ -33,6 +34,13 @@
     public Foo $foo;
 }
 
+class AutowirePropertyWithTarget
+{
+    #[Required]
+    #[Target('foo.target')]
+    public Foo $foo;
+}
+
 #[\Attribute(\Attribute::TARGET_PARAMETER)]
 class CustomAutowire extends Autowire
 {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes.php	2026-05-20 10:56:49.000000000 +0200
@@ -582,4 +582,9 @@
     public function __invoke(): void
     {
     }
+
+    public static function theMethodImpl(): int
+    {
+        return 124;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_constructor_without_arguments.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_constructor_without_arguments.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_constructor_without_arguments.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_constructor_without_arguments.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
     public function __construct()
     {
         parent::__construct();
-        $this->parameterBag = null;
+        unset($this->parameterBag);
 
         $this->services = $this->privates = [];
 
@@ -37,4 +37,55 @@
     {
         return true;
     }
+
+    public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
+    {
+        if (isset($this->loadedDynamicParameters[$name])) {
+            return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
+        }
+
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
+        return $this->parameters[$name];
+    }
+
+    public function hasParameter(string $name): bool
+    {
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
+    }
+
+    public function setParameter(string $name, $value): void
+    {
+        throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
+    }
+
+    public function getParameterBag(): ParameterBagInterface
+    {
+        if (!isset($this->parameterBag)) {
+            $parameters = $this->parameters;
+            foreach ($this->loadedDynamicParameters as $name => $loaded) {
+                $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
+            }
+            $this->parameterBag = new FrozenParameterBag($parameters);
+        }
+
+        return $this->parameterBag;
+    }
+
+    private $loadedDynamicParameters = [];
+    private $dynamicParameters = [];
+
+    private function getDynamicParameter(string $name)
+    {
+        throw new ParameterNotFoundException($name);
+    }
+
+    protected function getDefaultParameters(): array
+    {
+        return [
+
+        ];
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_with_optional_constructor_arguments.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_with_optional_constructor_arguments.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_with_optional_constructor_arguments.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_with_optional_constructor_arguments.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
     public function __construct()
     {
         parent::__construct();
-        $this->parameterBag = null;
+        unset($this->parameterBag);
 
         $this->services = $this->privates = [];
 
@@ -37,4 +37,55 @@
     {
         return true;
     }
+
+    public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
+    {
+        if (isset($this->loadedDynamicParameters[$name])) {
+            return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
+        }
+
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
+        return $this->parameters[$name];
+    }
+
+    public function hasParameter(string $name): bool
+    {
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
+    }
+
+    public function setParameter(string $name, $value): void
+    {
+        throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
+    }
+
+    public function getParameterBag(): ParameterBagInterface
+    {
+        if (!isset($this->parameterBag)) {
+            $parameters = $this->parameters;
+            foreach ($this->loadedDynamicParameters as $name => $loaded) {
+                $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
+            }
+            $this->parameterBag = new FrozenParameterBag($parameters);
+        }
+
+        return $this->parameterBag;
+    }
+
+    private $loadedDynamicParameters = [];
+    private $dynamicParameters = [];
+
+    private function getDynamicParameter(string $name)
+    {
+        throw new ParameterNotFoundException($name);
+    }
+
+    protected function getDefaultParameters(): array
+    {
+        return [
+
+        ];
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/lazy_autowire_attribute.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/lazy_autowire_attribute.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/lazy_autowire_attribute.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/lazy_autowire_attribute.php	2026-05-20 10:56:49.000000000 +0200
@@ -87,12 +87,23 @@
 
 class FooProxy4048957 extends \Symfony\Component\DependencyInjection\Tests\Compiler\Foo implements \Symfony\Component\VarExporter\LazyObjectInterface
 {
-    use \Symfony\Component\VarExporter\LazyProxyTrait;
+    use \Symfony\Component\VarExporter\Internal\LazyDecoratorTrait;
 
     private const LAZY_OBJECT_PROPERTY_SCOPES = [];
+
+    public function cloneFoo(?\stdClass $bar = null): static
+    {
+        ${0} = $this->lazyObjectState->realInstance;
+        ${1} = ${0}->cloneFoo(...\func_get_args());
+
+        return match (true) {
+            ${1} === ${0} => $this,
+            !${1} instanceof ${0} || !${0} instanceof ${1} => ${1},
+            null !== $this->lazyObjectState->cloneInstance =& ${1} => clone $this,
+        };
+    }
 }
 
 // Help opcache.preload discover always-needed symbols
 class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
 class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
-class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/lazy_autowire_attribute_with_intersection.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/lazy_autowire_attribute_with_intersection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/lazy_autowire_attribute_with_intersection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/lazy_autowire_attribute_with_intersection.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,7 +61,13 @@
             return $container->services['foo'];
         }
 
-        return $container->services['foo'] = new \Symfony\Component\DependencyInjection\Tests\Compiler\AAndIInterfaceConsumer($a);
+        $instance = new \Symfony\Component\DependencyInjection\Tests\Compiler\AAndIInterfaceConsumer($a);
+
+        if (isset($container->services['foo'])) {
+            return $container->services['foo'];
+        }
+
+        return $container->services['foo'] = $instance;
     }
 
     /**
@@ -81,21 +87,16 @@
 
 class objectProxy8ac8e9a implements \Symfony\Component\DependencyInjection\Tests\Compiler\AInterface, \Symfony\Component\DependencyInjection\Tests\Compiler\IInterface, \Symfony\Component\VarExporter\LazyObjectInterface
 {
-    use \Symfony\Component\VarExporter\LazyProxyTrait;
+    use \Symfony\Component\VarExporter\Internal\LazyDecoratorTrait;
 
     private const LAZY_OBJECT_PROPERTY_SCOPES = [];
 
     public function initializeLazyObject(): \Symfony\Component\DependencyInjection\Tests\Compiler\AInterface&\Symfony\Component\DependencyInjection\Tests\Compiler\IInterface
     {
-        if ($state = $this->lazyObjectState ?? null) {
-            return $state->realInstance ??= ($state->initializer)();
-        }
-
-        return $this;
+        return $this->lazyObjectState->realInstance;
     }
 }
 
 // Help opcache.preload discover always-needed symbols
 class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
 class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
-class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_lazy_autowire_attribute.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_lazy_autowire_attribute.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_lazy_autowire_attribute.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_lazy_autowire_attribute.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,98 @@
+<?php
+
+use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\Container;
+use Symfony\Component\DependencyInjection\Exception\LogicException;
+use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
+use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
+
+/**
+ * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
+ */
+class Symfony_DI_PhpDumper_Test_Lazy_Autowire_Attribute extends Container
+{
+    protected $parameters = [];
+
+    public function __construct()
+    {
+        $this->services = $this->privates = [];
+        $this->methodMap = [
+            'bar' => 'getBarService',
+            'foo' => 'getFooService',
+        ];
+
+        $this->aliases = [];
+    }
+
+    public function compile(): void
+    {
+        throw new LogicException('You cannot compile a dumped container that was already compiled.');
+    }
+
+    public function isCompiled(): bool
+    {
+        return true;
+    }
+
+    public function getRemovedIds(): array
+    {
+        return [
+            '.lazy.Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\Foo' => true,
+            'Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\Foo' => true,
+        ];
+    }
+
+    protected function createProxy($class, \Closure $factory)
+    {
+        return $factory();
+    }
+
+    /**
+     * Gets the public 'bar' shared autowired service.
+     *
+     * @return \Symfony\Component\DependencyInjection\Tests\Dumper\LazyServiceConsumer
+     */
+    protected static function getBarService($container)
+    {
+        return $container->services['bar'] = new \Symfony\Component\DependencyInjection\Tests\Dumper\LazyServiceConsumer(($container->privates['.lazy.Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\Foo'] ?? self::getFoo2Service($container)));
+    }
+
+    /**
+     * Gets the public 'foo' shared service.
+     *
+     * @return \Symfony\Component\DependencyInjection\Tests\Compiler\Foo
+     */
+    protected static function getFooService($container)
+    {
+        return $container->services['foo'] = new \Symfony\Component\DependencyInjection\Tests\Compiler\Foo();
+    }
+
+    /**
+     * Gets the private '.lazy.Symfony\Component\DependencyInjection\Tests\Compiler\Foo' shared service.
+     *
+     * @return \Symfony\Component\DependencyInjection\Tests\Compiler\Foo
+     */
+    protected static function getFoo2Service($container, $lazyLoad = true)
+    {
+        if (true === $lazyLoad) {
+            return $container->privates['.lazy.Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\Foo'] = $container->createProxy('FooProxy4048957', static fn () => \FooProxy4048957::createLazyProxy(static fn () => self::getFoo2Service($container, false)));
+        }
+
+        return ($container->services['foo'] ??= new \Symfony\Component\DependencyInjection\Tests\Compiler\Foo());
+    }
+}
+
+class FooProxy4048957 extends \Symfony\Component\DependencyInjection\Tests\Compiler\Foo implements \Symfony\Component\VarExporter\LazyObjectInterface
+{
+    use \Symfony\Component\VarExporter\LazyProxyTrait;
+
+    private const LAZY_OBJECT_PROPERTY_SCOPES = [];
+}
+
+// Help opcache.preload discover always-needed symbols
+class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_lazy_autowire_attribute_with_intersection.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_lazy_autowire_attribute_with_intersection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_lazy_autowire_attribute_with_intersection.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_lazy_autowire_attribute_with_intersection.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,107 @@
+<?php
+
+use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\Container;
+use Symfony\Component\DependencyInjection\Exception\LogicException;
+use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
+use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
+
+/**
+ * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
+ */
+class ProjectServiceContainer extends Container
+{
+    protected $parameters = [];
+
+    public function __construct()
+    {
+        $this->services = $this->privates = [];
+        $this->methodMap = [
+            'foo' => 'getFooService',
+        ];
+
+        $this->aliases = [];
+    }
+
+    public function compile(): void
+    {
+        throw new LogicException('You cannot compile a dumped container that was already compiled.');
+    }
+
+    public function isCompiled(): bool
+    {
+        return true;
+    }
+
+    public function getRemovedIds(): array
+    {
+        return [
+            '.lazy.foo.gDmfket' => true,
+        ];
+    }
+
+    protected function createProxy($class, \Closure $factory)
+    {
+        return $factory();
+    }
+
+    /**
+     * Gets the public 'foo' shared autowired service.
+     *
+     * @return \Symfony\Component\DependencyInjection\Tests\Compiler\AAndIInterfaceConsumer
+     */
+    protected static function getFooService($container)
+    {
+        $a = ($container->privates['.lazy.foo.gDmfket'] ?? self::get_Lazy_Foo_GDmfketService($container));
+
+        if (isset($container->services['foo'])) {
+            return $container->services['foo'];
+        }
+
+        $instance = new \Symfony\Component\DependencyInjection\Tests\Compiler\AAndIInterfaceConsumer($a);
+
+        if (isset($container->services['foo'])) {
+            return $container->services['foo'];
+        }
+
+        return $container->services['foo'] = $instance;
+    }
+
+    /**
+     * Gets the private '.lazy.foo.gDmfket' shared service.
+     *
+     * @return \object
+     */
+    protected static function get_Lazy_Foo_GDmfketService($container, $lazyLoad = true)
+    {
+        if (true === $lazyLoad) {
+            return $container->privates['.lazy.foo.gDmfket'] = $container->createProxy('objectProxy8ac8e9a', static fn () => \objectProxy8ac8e9a::createLazyProxy(static fn () => self::get_Lazy_Foo_GDmfketService($container, false)));
+        }
+
+        return ($container->services['foo'] ?? self::getFooService($container));
+    }
+}
+
+class objectProxy8ac8e9a implements \Symfony\Component\DependencyInjection\Tests\Compiler\AInterface, \Symfony\Component\DependencyInjection\Tests\Compiler\IInterface, \Symfony\Component\VarExporter\LazyObjectInterface
+{
+    use \Symfony\Component\VarExporter\LazyProxyTrait;
+
+    private const LAZY_OBJECT_PROPERTY_SCOPES = [];
+
+    public function initializeLazyObject(): \Symfony\Component\DependencyInjection\Tests\Compiler\AInterface&\Symfony\Component\DependencyInjection\Tests\Compiler\IInterface
+    {
+        if ($state = $this->lazyObjectState ?? null) {
+            return $state->realInstance ??= ($state->initializer)();
+        }
+
+        return $this;
+    }
+}
+
+// Help opcache.preload discover always-needed symbols
+class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_dedup_lazy.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_dedup_lazy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_dedup_lazy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_dedup_lazy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,126 @@
+<?php
+
+use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\Container;
+use Symfony\Component\DependencyInjection\Exception\LogicException;
+use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
+use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
+
+/**
+ * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
+ */
+class ProjectServiceContainer extends Container
+{
+    protected $parameters = [];
+
+    public function __construct()
+    {
+        $this->services = $this->privates = [];
+        $this->methodMap = [
+            'bar' => 'getBarService',
+            'baz' => 'getBazService',
+            'buz' => 'getBuzService',
+            'foo' => 'getFooService',
+        ];
+
+        $this->aliases = [];
+    }
+
+    public function compile(): void
+    {
+        throw new LogicException('You cannot compile a dumped container that was already compiled.');
+    }
+
+    public function isCompiled(): bool
+    {
+        return true;
+    }
+
+    protected function createProxy($class, \Closure $factory)
+    {
+        return $factory();
+    }
+
+    /**
+     * Gets the public 'bar' shared service.
+     *
+     * @return \stdClass
+     */
+    protected static function getBarService($container, $lazyLoad = true)
+    {
+        if (true === $lazyLoad) {
+            return $container->services['bar'] = $container->createProxy('stdClassGhost2fc7938', static fn () => \stdClassGhost2fc7938::createLazyGhost(static fn ($proxy) => self::getBarService($container, $proxy)));
+        }
+
+        return $lazyLoad;
+    }
+
+    /**
+     * Gets the public 'baz' shared service.
+     *
+     * @return \stdClass
+     */
+    protected static function getBazService($container, $lazyLoad = true)
+    {
+        if (true === $lazyLoad) {
+            return $container->services['baz'] = $container->createProxy('stdClassProxy2fc7938', static fn () => \stdClassProxy2fc7938::createLazyProxy(static fn () => self::getBazService($container, false)));
+        }
+
+        return \foo_bar();
+    }
+
+    /**
+     * Gets the public 'buz' shared service.
+     *
+     * @return \stdClass
+     */
+    protected static function getBuzService($container, $lazyLoad = true)
+    {
+        if (true === $lazyLoad) {
+            return $container->services['buz'] = $container->createProxy('stdClassProxy2fc7938', static fn () => \stdClassProxy2fc7938::createLazyProxy(static fn () => self::getBuzService($container, false)));
+        }
+
+        return \foo_bar();
+    }
+
+    /**
+     * Gets the public 'foo' shared service.
+     *
+     * @return \stdClass
+     */
+    protected static function getFooService($container, $lazyLoad = true)
+    {
+        if (true === $lazyLoad) {
+            return $container->services['foo'] = $container->createProxy('stdClassGhost2fc7938', static fn () => \stdClassGhost2fc7938::createLazyGhost(static fn ($proxy) => self::getFooService($container, $proxy)));
+        }
+
+        return $lazyLoad;
+    }
+}
+
+class stdClassGhost2fc7938 extends \stdClass implements \Symfony\Component\VarExporter\LazyObjectInterface
+{
+    use \Symfony\Component\VarExporter\LazyGhostTrait;
+
+    private const LAZY_OBJECT_PROPERTY_SCOPES = [];
+}
+
+// Help opcache.preload discover always-needed symbols
+class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
+
+class stdClassProxy2fc7938 extends \stdClass implements \Symfony\Component\VarExporter\LazyObjectInterface
+{
+    use \Symfony\Component\VarExporter\LazyProxyTrait;
+
+    private const LAZY_OBJECT_PROPERTY_SCOPES = [];
+}
+
+// Help opcache.preload discover always-needed symbols
+class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_wither_lazy_non_shared.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_wither_lazy_non_shared.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_wither_lazy_non_shared.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_wither_lazy_non_shared.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,88 @@
+<?php
+
+use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\Container;
+use Symfony\Component\DependencyInjection\Exception\LogicException;
+use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
+use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
+
+/**
+ * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
+ */
+class Symfony_DI_PhpDumper_Service_Wither_Lazy_Non_Shared extends Container
+{
+    protected $parameters = [];
+
+    public function __construct()
+    {
+        $this->services = $this->privates = [];
+        $this->methodMap = [
+            'wither' => 'getWitherService',
+        ];
+
+        $this->aliases = [];
+    }
+
+    public function compile(): void
+    {
+        throw new LogicException('You cannot compile a dumped container that was already compiled.');
+    }
+
+    public function isCompiled(): bool
+    {
+        return true;
+    }
+
+    public function getRemovedIds(): array
+    {
+        return [
+            'Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\Foo' => true,
+        ];
+    }
+
+    protected function createProxy($class, \Closure $factory)
+    {
+        return $factory();
+    }
+
+    /**
+     * Gets the public 'wither' autowired service.
+     *
+     * @return \Symfony\Component\DependencyInjection\Tests\Compiler\Wither
+     */
+    protected static function getWitherService($container, $lazyLoad = true)
+    {
+        $container->factories['wither'] ??= fn () => self::getWitherService($container);
+
+        if (true === $lazyLoad) {
+            return $container->createProxy('WitherProxyDd381be', static fn () => \WitherProxyDd381be::createLazyProxy(static fn () => self::getWitherService($container, false)));
+        }
+
+        $instance = new \Symfony\Component\DependencyInjection\Tests\Compiler\Wither();
+
+        $a = ($container->privates['Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\Foo'] ??= new \Symfony\Component\DependencyInjection\Tests\Compiler\Foo());
+
+        $instance = $instance->withFoo1($a);
+        $instance = $instance->withFoo2($a);
+        $instance->setFoo($a);
+
+        return $instance;
+    }
+}
+
+class WitherProxyDd381be extends \Symfony\Component\DependencyInjection\Tests\Compiler\Wither implements \Symfony\Component\VarExporter\LazyObjectInterface
+{
+    use \Symfony\Component\VarExporter\LazyProxyTrait;
+
+    private const LAZY_OBJECT_PROPERTY_SCOPES = [
+        'foo' => [parent::class, 'foo', null, 4],
+    ];
+}
+
+// Help opcache.preload discover always-needed symbols
+class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_wither_lazy.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_wither_lazy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_wither_lazy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/legacy_services_wither_lazy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,86 @@
+<?php
+
+use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\Container;
+use Symfony\Component\DependencyInjection\Exception\LogicException;
+use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
+use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
+
+/**
+ * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
+ */
+class Symfony_DI_PhpDumper_Service_Wither_Lazy extends Container
+{
+    protected $parameters = [];
+
+    public function __construct()
+    {
+        $this->services = $this->privates = [];
+        $this->methodMap = [
+            'wither' => 'getWitherService',
+        ];
+
+        $this->aliases = [];
+    }
+
+    public function compile(): void
+    {
+        throw new LogicException('You cannot compile a dumped container that was already compiled.');
+    }
+
+    public function isCompiled(): bool
+    {
+        return true;
+    }
+
+    public function getRemovedIds(): array
+    {
+        return [
+            'Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\Foo' => true,
+        ];
+    }
+
+    protected function createProxy($class, \Closure $factory)
+    {
+        return $factory();
+    }
+
+    /**
+     * Gets the public 'wither' shared autowired service.
+     *
+     * @return \Symfony\Component\DependencyInjection\Tests\Compiler\Wither
+     */
+    protected static function getWitherService($container, $lazyLoad = true)
+    {
+        if (true === $lazyLoad) {
+            return $container->services['wither'] = $container->createProxy('WitherProxy580fe0f', static fn () => \WitherProxy580fe0f::createLazyProxy(static fn () => self::getWitherService($container, false)));
+        }
+
+        $instance = new \Symfony\Component\DependencyInjection\Tests\Compiler\Wither();
+
+        $a = ($container->privates['Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\Foo'] ??= new \Symfony\Component\DependencyInjection\Tests\Compiler\Foo());
+
+        $instance = $instance->withFoo1($a);
+        $instance = $instance->withFoo2($a);
+        $instance->setFoo($a);
+
+        return $instance;
+    }
+}
+
+class WitherProxy580fe0f extends \Symfony\Component\DependencyInjection\Tests\Compiler\Wither implements \Symfony\Component\VarExporter\LazyObjectInterface
+{
+    use \Symfony\Component\VarExporter\LazyProxyTrait;
+
+    private const LAZY_OBJECT_PROPERTY_SCOPES = [
+        'foo' => [parent::class, 'foo', null, 4],
+    ];
+}
+
+// Help opcache.preload discover always-needed symbols
+class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
+class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,19 +50,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,19 +50,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,19 +65,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,19 +61,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,19 +37,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt	2026-05-20 10:56:49.000000000 +0200
@@ -117,7 +117,13 @@
      */
     public static function do($container, $lazyLoad = true)
     {
-        $container->services['baz'] = $instance = new \Baz();
+        $instance = new \Baz();
+
+        if (isset($container->services['baz'])) {
+            return $container->services['baz'];
+        }
+
+        $container->services['baz'] = $instance;
 
         $instance->setFoo(($container->services['foo_with_inline'] ?? $container->load('getFooWithInlineService')));
 
@@ -339,7 +345,13 @@
      */
     public static function do($container, $lazyLoad = true)
     {
-        $container->services['foo_with_inline'] = $instance = new \Foo();
+        $instance = new \Foo();
+
+        if (isset($container->services['foo_with_inline'])) {
+            return $container->services['foo_with_inline'];
+        }
+
+        $container->services['foo_with_inline'] = $instance;
 
         $a = new \Bar();
         $a->pub = 'pub';
@@ -649,27 +661,28 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (isset($this->buildParameters[$name])) {
+        if (\array_key_exists($name, $this->buildParameters)) {
             return $this->buildParameters[$name];
         }
 
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        if (isset($this->buildParameters[$name])) {
+        if (\array_key_exists($name, $this->buildParameters)) {
             return true;
         }
 
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php	2026-05-20 10:56:49.000000000 +0200
@@ -162,7 +162,13 @@
      */
     protected static function getBazService($container)
     {
-        $container->services['baz'] = $instance = new \Baz();
+        $instance = new \Baz();
+
+        if (isset($container->services['baz'])) {
+            return $container->services['baz'];
+        }
+
+        $container->services['baz'] = $instance;
 
         $instance->setFoo(($container->services['foo_with_inline'] ?? self::getFooWithInlineService($container)));
 
@@ -310,7 +316,13 @@
      */
     protected static function getFooWithInlineService($container)
     {
-        $container->services['foo_with_inline'] = $instance = new \Foo();
+        $instance = new \Foo();
+
+        if (isset($container->services['foo_with_inline'])) {
+            return $container->services['foo_with_inline'];
+        }
+
+        $container->services['foo_with_inline'] = $instance;
 
         $a = new \Bar();
         $a->pub = 'pub';
@@ -440,19 +452,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_inlined_factories.txt symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_inlined_factories.txt
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_inlined_factories.txt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_inlined_factories.txt	2026-05-20 10:56:49.000000000 +0200
@@ -181,7 +181,13 @@
      */
     protected static function getBazService($container)
     {
-        $container->services['baz'] = $instance = new \Baz();
+        $instance = new \Baz();
+
+        if (isset($container->services['baz'])) {
+            return $container->services['baz'];
+        }
+
+        $container->services['baz'] = $instance;
 
         $instance->setFoo(($container->services['foo_with_inline'] ?? self::getFooWithInlineService($container)));
 
@@ -331,7 +337,13 @@
      */
     protected static function getFooWithInlineService($container)
     {
-        $container->services['foo_with_inline'] = $instance = new \Foo();
+        $instance = new \Foo();
+
+        if (isset($container->services['foo_with_inline'])) {
+            return $container->services['foo_with_inline'];
+        }
+
+        $container->services['foo_with_inline'] = $instance;
 
         $a = new \Bar();
         $a->pub = 'pub';
@@ -491,27 +503,28 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (isset($this->buildParameters[$name])) {
+        if (\array_key_exists($name, $this->buildParameters)) {
             return $this->buildParameters[$name];
         }
 
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        if (isset($this->buildParameters[$name])) {
+        if (\array_key_exists($name, $this->buildParameters)) {
             return true;
         }
 
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_lazy_inlined_factories.txt symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_lazy_inlined_factories.txt
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_lazy_inlined_factories.txt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_lazy_inlined_factories.txt	2026-05-20 10:56:49.000000000 +0200
@@ -84,27 +84,28 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (isset($this->buildParameters[$name])) {
+        if (\array_key_exists($name, $this->buildParameters)) {
             return $this->buildParameters[$name];
         }
 
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        if (isset($this->buildParameters[$name])) {
+        if (\array_key_exists($name, $this->buildParameters)) {
             return true;
         }
 
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_adawson.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_adawson.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_adawson.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_adawson.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,7 +78,13 @@
      */
     protected static function getDbService($container)
     {
-        $container->services['App\\Db'] = $instance = new \App\Db();
+        $instance = new \App\Db();
+
+        if (isset($container->services['App\\Db'])) {
+            return $container->services['App\\Db'];
+        }
+
+        $container->services['App\\Db'] = $instance;
 
         $instance->schema = ($container->privates['App\\Schema'] ?? self::getSchemaService($container));
 
@@ -98,6 +104,12 @@
             return $container->privates['App\\Schema'];
         }
 
-        return $container->privates['App\\Schema'] = new \App\Schema($a);
+        $instance = new \App\Schema($a);
+
+        if (isset($container->privates['App\\Schema'])) {
+            return $container->privates['App\\Schema'];
+        }
+
+        return $container->privates['App\\Schema'] = $instance;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_almost_circular_private.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_almost_circular_private.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_almost_circular_private.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_almost_circular_private.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,7 +106,13 @@
      */
     protected static function getBar2Service($container)
     {
-        $container->services['bar2'] = $instance = new \BarCircular();
+        $instance = new \BarCircular();
+
+        if (isset($container->services['bar2'])) {
+            return $container->services['bar2'];
+        }
+
+        $container->services['bar2'] = $instance;
 
         $instance->addFoobar(new \FoobarCircular(($container->services['foo2'] ?? self::getFoo2Service($container))));
 
@@ -154,7 +160,13 @@
 
         $b = new \stdClass();
 
-        $container->services['connection'] = $instance = new \stdClass($a, $b);
+        $instance = new \stdClass($a, $b);
+
+        if (isset($container->services['connection'])) {
+            return $container->services['connection'];
+        }
+
+        $container->services['connection'] = $instance;
 
         $b->logger = ($container->services['logger'] ?? self::getLoggerService($container));
 
@@ -174,7 +186,13 @@
 
         $b = new \stdClass();
 
-        $container->services['connection2'] = $instance = new \stdClass($a, $b);
+        $instance = new \stdClass($a, $b);
+
+        if (isset($container->services['connection2'])) {
+            return $container->services['connection2'];
+        }
+
+        $container->services['connection2'] = $instance;
 
         $c = new \stdClass($instance);
 
@@ -202,7 +220,13 @@
         }, 1));
         $a->flag = 'ok';
 
-        return $container->services['doctrine.entity_manager'] = \FactoryChecker::create($a);
+        $instance = \FactoryChecker::create($a);
+
+        if (isset($container->services['doctrine.entity_manager'])) {
+            return $container->services['doctrine.entity_manager'];
+        }
+
+        return $container->services['doctrine.entity_manager'] = $instance;
     }
 
     /**
@@ -234,7 +258,13 @@
             return $container->services['foo2'];
         }
 
-        return $container->services['foo2'] = new \FooCircular($a);
+        $instance = new \FooCircular($a);
+
+        if (isset($container->services['foo2'])) {
+            return $container->services['foo2'];
+        }
+
+        return $container->services['foo2'] = $instance;
     }
 
     /**
@@ -261,7 +291,13 @@
      */
     protected static function getFoo6Service($container)
     {
-        $container->services['foo6'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['foo6'])) {
+            return $container->services['foo6'];
+        }
+
+        $container->services['foo6'] = $instance;
 
         $instance->bar6 = ($container->privates['bar6'] ?? self::getBar6Service($container));
 
@@ -291,7 +327,13 @@
      */
     protected static function getListener3Service($container)
     {
-        $container->services['listener3'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['listener3'])) {
+            return $container->services['listener3'];
+        }
+
+        $container->services['listener3'] = $instance;
 
         $instance->manager = ($container->services['manager3'] ?? self::getManager3Service($container));
 
@@ -311,7 +353,13 @@
             return $container->services['listener4'];
         }
 
-        return $container->services['listener4'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['listener4'])) {
+            return $container->services['listener4'];
+        }
+
+        return $container->services['listener4'] = $instance;
     }
 
     /**
@@ -327,7 +375,13 @@
             return $container->services['logger'];
         }
 
-        $container->services['logger'] = $instance = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['logger'])) {
+            return $container->services['logger'];
+        }
+
+        $container->services['logger'] = $instance;
 
         $instance->handler = new \stdClass(($container->services['manager'] ?? self::getManagerService($container)));
 
@@ -347,7 +401,13 @@
             return $container->services['manager'];
         }
 
-        return $container->services['manager'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['manager'])) {
+            return $container->services['manager'];
+        }
+
+        return $container->services['manager'] = $instance;
     }
 
     /**
@@ -363,7 +423,13 @@
             return $container->services['manager2'];
         }
 
-        return $container->services['manager2'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['manager2'])) {
+            return $container->services['manager2'];
+        }
+
+        return $container->services['manager2'] = $instance;
     }
 
     /**
@@ -379,7 +445,13 @@
             return $container->services['manager3'];
         }
 
-        return $container->services['manager3'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['manager3'])) {
+            return $container->services['manager3'];
+        }
+
+        return $container->services['manager3'] = $instance;
     }
 
     /**
@@ -424,7 +496,13 @@
         }
         $b = new \stdClass();
 
-        $container->services['pA'] = $instance = new \stdClass($b, $a);
+        $instance = new \stdClass($b, $a);
+
+        if (isset($container->services['pA'])) {
+            return $container->services['pA'];
+        }
+
+        $container->services['pA'] = $instance;
 
         $b->d = ($container->privates['pD'] ?? self::getPDService($container));
 
@@ -460,7 +538,13 @@
             return $container->services['subscriber'];
         }
 
-        return $container->services['subscriber'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['subscriber'])) {
+            return $container->services['subscriber'];
+        }
+
+        return $container->services['subscriber'] = $instance;
     }
 
     /**
@@ -476,7 +560,13 @@
             return $container->privates['bar6'];
         }
 
-        return $container->privates['bar6'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->privates['bar6'])) {
+            return $container->privates['bar6'];
+        }
+
+        return $container->privates['bar6'] = $instance;
     }
 
     /**
@@ -486,7 +576,13 @@
      */
     protected static function getConnection3Service($container)
     {
-        $container->privates['connection3'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->privates['connection3'])) {
+            return $container->privates['connection3'];
+        }
+
+        $container->privates['connection3'] = $instance;
 
         $instance->listener = [($container->services['listener3'] ?? self::getListener3Service($container))];
 
@@ -500,7 +596,13 @@
      */
     protected static function getConnection4Service($container)
     {
-        $container->privates['connection4'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->privates['connection4'])) {
+            return $container->privates['connection4'];
+        }
+
+        $container->privates['connection4'] = $instance;
 
         $instance->listener = [($container->services['listener4'] ?? self::getListener4Service($container))];
 
@@ -520,7 +622,13 @@
             return $container->privates['doctrine.listener'];
         }
 
-        return $container->privates['doctrine.listener'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->privates['doctrine.listener'])) {
+            return $container->privates['doctrine.listener'];
+        }
+
+        return $container->privates['doctrine.listener'] = $instance;
     }
 
     /**
@@ -546,10 +654,16 @@
      */
     protected static function getMailer_TransportService($container)
     {
-        return $container->privates['mailer.transport'] = (new \FactoryCircular(new RewindableGenerator(function () use ($container) {
+        $instance = (new \FactoryCircular(new RewindableGenerator(function () use ($container) {
             yield 0 => ($container->privates['mailer.transport_factory.amazon'] ?? self::getMailer_TransportFactory_AmazonService($container));
-            yield 1 => self::getMailerInline_TransportFactory_AmazonService($container);
+            yield 1 => ($container->privates['mailer_inline.transport_factory.amazon'] ?? self::getMailerInline_TransportFactory_AmazonService($container));
         }, 2)))->create();
+
+        if (isset($container->privates['mailer.transport'])) {
+            return $container->privates['mailer.transport'];
+        }
+
+        return $container->privates['mailer.transport'] = $instance;
     }
 
     /**
@@ -561,7 +675,13 @@
     {
         $a = new \stdClass();
 
-        $container->privates['mailer.transport_factory.amazon'] = $instance = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->privates['mailer.transport_factory.amazon'])) {
+            return $container->privates['mailer.transport_factory.amazon'];
+        }
+
+        $container->privates['mailer.transport_factory.amazon'] = $instance;
 
         $a->handler = ($container->privates['mailer.transport'] ?? self::getMailer_TransportService($container));
 
@@ -588,7 +708,7 @@
         $a = new \stdClass();
         $a->handler = ($container->privates['mailer_inline.mailer'] ?? self::getMailerInline_MailerService($container));
 
-        return new \stdClass($a);
+        return $container->privates['mailer_inline.transport_factory.amazon'] = new \stdClass($a);
     }
 
     /**
@@ -604,7 +724,13 @@
             return $container->privates['manager4'];
         }
 
-        return $container->privates['manager4'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->privates['manager4'])) {
+            return $container->privates['manager4'];
+        }
+
+        return $container->privates['manager4'] = $instance;
     }
 
     /**
@@ -614,7 +740,13 @@
      */
     protected static function getPCService($container, $lazyLoad = true)
     {
-        $container->privates['pC'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->privates['pC'])) {
+            return $container->privates['pC'];
+        }
+
+        $container->privates['pC'] = $instance;
 
         $instance->d = ($container->privates['pD'] ?? self::getPDService($container));
 
@@ -634,6 +766,12 @@
             return $container->privates['pD'];
         }
 
-        return $container->privates['pD'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->privates['pD'])) {
+            return $container->privates['pD'];
+        }
+
+        return $container->privates['pD'] = $instance;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_almost_circular_public.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_almost_circular_public.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_almost_circular_public.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_almost_circular_public.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,7 +106,13 @@
      */
     protected static function getBarService($container)
     {
-        $container->services['bar'] = $instance = new \BarCircular();
+        $instance = new \BarCircular();
+
+        if (isset($container->services['bar'])) {
+            return $container->services['bar'];
+        }
+
+        $container->services['bar'] = $instance;
 
         $instance->addFoobar(($container->services['foobar'] ?? self::getFoobarService($container)));
 
@@ -142,7 +148,13 @@
             return $container->services['bar5'];
         }
 
-        $container->services['bar5'] = $instance = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['bar5'])) {
+            return $container->services['bar5'];
+        }
+
+        $container->services['bar5'] = $instance;
 
         $instance->foo = $a;
 
@@ -177,7 +189,13 @@
         }
         $b = new \stdClass();
 
-        $container->services['connection'] = $instance = new \stdClass($a, $b);
+        $instance = new \stdClass($a, $b);
+
+        if (isset($container->services['connection'])) {
+            return $container->services['connection'];
+        }
+
+        $container->services['connection'] = $instance;
 
         $b->logger = ($container->services['logger'] ?? self::getLoggerService($container));
 
@@ -198,7 +216,13 @@
         }
         $b = new \stdClass();
 
-        $container->services['connection2'] = $instance = new \stdClass($a, $b);
+        $instance = new \stdClass($a, $b);
+
+        if (isset($container->services['connection2'])) {
+            return $container->services['connection2'];
+        }
+
+        $container->services['connection2'] = $instance;
 
         $c = new \stdClass($instance);
         $c->handler2 = new \stdClass(($container->services['manager2'] ?? self::getManager2Service($container)));
@@ -215,7 +239,13 @@
      */
     protected static function getConnection3Service($container)
     {
-        $container->services['connection3'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['connection3'])) {
+            return $container->services['connection3'];
+        }
+
+        $container->services['connection3'] = $instance;
 
         $instance->listener = [($container->services['listener3'] ?? self::getListener3Service($container))];
 
@@ -229,7 +259,13 @@
      */
     protected static function getConnection4Service($container)
     {
-        $container->services['connection4'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['connection4'])) {
+            return $container->services['connection4'];
+        }
+
+        $container->services['connection4'] = $instance;
 
         $instance->listener = [($container->services['listener4'] ?? self::getListener4Service($container))];
 
@@ -243,7 +279,13 @@
      */
     protected static function getDispatcherService($container, $lazyLoad = true)
     {
-        $container->services['dispatcher'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['dispatcher'])) {
+            return $container->services['dispatcher'];
+        }
+
+        $container->services['dispatcher'] = $instance;
 
         $instance->subscriber = ($container->services['subscriber'] ?? self::getSubscriberService($container));
 
@@ -257,7 +299,13 @@
      */
     protected static function getDispatcher2Service($container, $lazyLoad = true)
     {
-        $container->services['dispatcher2'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['dispatcher2'])) {
+            return $container->services['dispatcher2'];
+        }
+
+        $container->services['dispatcher2'] = $instance;
 
         $instance->subscriber2 = ($container->privates['subscriber2'] ?? self::getSubscriber2Service($container));
 
@@ -271,9 +319,15 @@
      */
     protected static function getDoctrine_EntityListenerResolverService($container)
     {
-        return $container->services['doctrine.entity_listener_resolver'] = new \stdClass(new RewindableGenerator(function () use ($container) {
+        $instance = new \stdClass(new RewindableGenerator(function () use ($container) {
             yield 0 => ($container->services['doctrine.listener'] ?? self::getDoctrine_ListenerService($container));
         }, 1));
+
+        if (isset($container->services['doctrine.entity_listener_resolver'])) {
+            return $container->services['doctrine.entity_listener_resolver'];
+        }
+
+        return $container->services['doctrine.entity_listener_resolver'] = $instance;
     }
 
     /**
@@ -292,7 +346,13 @@
         $b->resolver = $a;
         $b->flag = 'ok';
 
-        return $container->services['doctrine.entity_manager'] = \FactoryChecker::create($b);
+        $instance = \FactoryChecker::create($b);
+
+        if (isset($container->services['doctrine.entity_manager'])) {
+            return $container->services['doctrine.entity_manager'];
+        }
+
+        return $container->services['doctrine.entity_manager'] = $instance;
     }
 
     /**
@@ -308,7 +368,13 @@
             return $container->services['doctrine.listener'];
         }
 
-        return $container->services['doctrine.listener'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['doctrine.listener'])) {
+            return $container->services['doctrine.listener'];
+        }
+
+        return $container->services['doctrine.listener'] = $instance;
     }
 
     /**
@@ -324,7 +390,13 @@
             return $container->services['foo'];
         }
 
-        return $container->services['foo'] = new \FooCircular($a);
+        $instance = new \FooCircular($a);
+
+        if (isset($container->services['foo'])) {
+            return $container->services['foo'];
+        }
+
+        return $container->services['foo'] = $instance;
     }
 
     /**
@@ -336,7 +408,13 @@
     {
         $a = new \BarCircular();
 
-        $container->services['foo2'] = $instance = new \FooCircular($a);
+        $instance = new \FooCircular($a);
+
+        if (isset($container->services['foo2'])) {
+            return $container->services['foo2'];
+        }
+
+        $container->services['foo2'] = $instance;
 
         $a->addFoobar(($container->services['foobar2'] ?? self::getFoobar2Service($container)));
 
@@ -368,7 +446,13 @@
      */
     protected static function getFoo5Service($container)
     {
-        $container->services['foo5'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['foo5'])) {
+            return $container->services['foo5'];
+        }
+
+        $container->services['foo5'] = $instance;
 
         $instance->bar = ($container->services['bar5'] ?? self::getBar5Service($container));
 
@@ -382,7 +466,13 @@
      */
     protected static function getFoo6Service($container)
     {
-        $container->services['foo6'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['foo6'])) {
+            return $container->services['foo6'];
+        }
+
+        $container->services['foo6'] = $instance;
 
         $instance->bar6 = ($container->privates['bar6'] ?? self::getBar6Service($container));
 
@@ -402,7 +492,13 @@
             return $container->services['foobar'];
         }
 
-        return $container->services['foobar'] = new \FoobarCircular($a);
+        $instance = new \FoobarCircular($a);
+
+        if (isset($container->services['foobar'])) {
+            return $container->services['foobar'];
+        }
+
+        return $container->services['foobar'] = $instance;
     }
 
     /**
@@ -418,7 +514,13 @@
             return $container->services['foobar2'];
         }
 
-        return $container->services['foobar2'] = new \FoobarCircular($a);
+        $instance = new \FoobarCircular($a);
+
+        if (isset($container->services['foobar2'])) {
+            return $container->services['foobar2'];
+        }
+
+        return $container->services['foobar2'] = $instance;
     }
 
     /**
@@ -454,7 +556,13 @@
      */
     protected static function getListener3Service($container)
     {
-        $container->services['listener3'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['listener3'])) {
+            return $container->services['listener3'];
+        }
+
+        $container->services['listener3'] = $instance;
 
         $instance->manager = ($container->services['manager3'] ?? self::getManager3Service($container));
 
@@ -474,7 +582,13 @@
             return $container->services['listener4'];
         }
 
-        return $container->services['listener4'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['listener4'])) {
+            return $container->services['listener4'];
+        }
+
+        return $container->services['listener4'] = $instance;
     }
 
     /**
@@ -490,7 +604,13 @@
             return $container->services['logger'];
         }
 
-        $container->services['logger'] = $instance = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['logger'])) {
+            return $container->services['logger'];
+        }
+
+        $container->services['logger'] = $instance;
 
         $instance->handler = new \stdClass(($container->services['manager'] ?? self::getManagerService($container)));
 
@@ -510,7 +630,13 @@
             return $container->services['mailer.transport'];
         }
 
-        return $container->services['mailer.transport'] = $a->create();
+        $instance = $a->create();
+
+        if (isset($container->services['mailer.transport'])) {
+            return $container->services['mailer.transport'];
+        }
+
+        return $container->services['mailer.transport'] = $instance;
     }
 
     /**
@@ -520,10 +646,16 @@
      */
     protected static function getMailer_TransportFactoryService($container)
     {
-        return $container->services['mailer.transport_factory'] = new \FactoryCircular(new RewindableGenerator(function () use ($container) {
+        $instance = new \FactoryCircular(new RewindableGenerator(function () use ($container) {
             yield 0 => ($container->services['mailer.transport_factory.amazon'] ?? self::getMailer_TransportFactory_AmazonService($container));
             yield 1 => ($container->services['mailer_inline.transport_factory.amazon'] ?? self::getMailerInline_TransportFactory_AmazonService($container));
         }, 2));
+
+        if (isset($container->services['mailer.transport_factory'])) {
+            return $container->services['mailer.transport_factory'];
+        }
+
+        return $container->services['mailer.transport_factory'] = $instance;
     }
 
     /**
@@ -539,7 +671,13 @@
             return $container->services['mailer.transport_factory.amazon'];
         }
 
-        return $container->services['mailer.transport_factory.amazon'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['mailer.transport_factory.amazon'])) {
+            return $container->services['mailer.transport_factory.amazon'];
+        }
+
+        return $container->services['mailer.transport_factory.amazon'] = $instance;
     }
 
     /**
@@ -575,7 +713,13 @@
             return $container->services['manager'];
         }
 
-        return $container->services['manager'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['manager'])) {
+            return $container->services['manager'];
+        }
+
+        return $container->services['manager'] = $instance;
     }
 
     /**
@@ -591,7 +735,13 @@
             return $container->services['manager2'];
         }
 
-        return $container->services['manager2'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['manager2'])) {
+            return $container->services['manager2'];
+        }
+
+        return $container->services['manager2'] = $instance;
     }
 
     /**
@@ -607,7 +757,13 @@
             return $container->services['manager3'];
         }
 
-        return $container->services['manager3'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['manager3'])) {
+            return $container->services['manager3'];
+        }
+
+        return $container->services['manager3'] = $instance;
     }
 
     /**
@@ -631,7 +787,13 @@
      */
     protected static function getMonolog_Logger2Service($container)
     {
-        $container->services['monolog.logger_2'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['monolog.logger_2'])) {
+            return $container->services['monolog.logger_2'];
+        }
+
+        $container->services['monolog.logger_2'] = $instance;
 
         $instance->handler = ($container->services['mailer.transport'] ?? self::getMailer_TransportService($container));
 
@@ -684,7 +846,13 @@
             return $container->services['pA'];
         }
 
-        return $container->services['pA'] = new \stdClass($a, $b);
+        $instance = new \stdClass($a, $b);
+
+        if (isset($container->services['pA'])) {
+            return $container->services['pA'];
+        }
+
+        return $container->services['pA'] = $instance;
     }
 
     /**
@@ -694,7 +862,13 @@
      */
     protected static function getPBService($container)
     {
-        $container->services['pB'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['pB'])) {
+            return $container->services['pB'];
+        }
+
+        $container->services['pB'] = $instance;
 
         $instance->d = ($container->services['pD'] ?? self::getPDService($container));
 
@@ -708,7 +882,13 @@
      */
     protected static function getPCService($container, $lazyLoad = true)
     {
-        $container->services['pC'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['pC'])) {
+            return $container->services['pC'];
+        }
+
+        $container->services['pC'] = $instance;
 
         $instance->d = ($container->services['pD'] ?? self::getPDService($container));
 
@@ -728,7 +908,13 @@
             return $container->services['pD'];
         }
 
-        return $container->services['pD'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['pD'])) {
+            return $container->services['pD'];
+        }
+
+        return $container->services['pD'] = $instance;
     }
 
     /**
@@ -760,7 +946,13 @@
             return $container->services['subscriber'];
         }
 
-        return $container->services['subscriber'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->services['subscriber'])) {
+            return $container->services['subscriber'];
+        }
+
+        return $container->services['subscriber'] = $instance;
     }
 
     /**
@@ -776,7 +968,13 @@
             return $container->privates['bar6'];
         }
 
-        return $container->privates['bar6'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->privates['bar6'])) {
+            return $container->privates['bar6'];
+        }
+
+        return $container->privates['bar6'] = $instance;
     }
 
     /**
@@ -818,7 +1016,13 @@
             return $container->privates['manager4'];
         }
 
-        return $container->privates['manager4'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->privates['manager4'])) {
+            return $container->privates['manager4'];
+        }
+
+        return $container->privates['manager4'] = $instance;
     }
 
     /**
@@ -834,6 +1038,12 @@
             return $container->privates['subscriber2'];
         }
 
-        return $container->privates['subscriber2'] = new \stdClass($a);
+        $instance = new \stdClass($a);
+
+        if (isset($container->privates['subscriber2'])) {
+            return $container->privates['subscriber2'];
+        }
+
+        return $container->privates['subscriber2'] = $instance;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,19 +54,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_base64_env.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_base64_env.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_base64_env.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_base64_env.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,19 +37,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_csv_env.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_csv_env.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_csv_env.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_csv_env.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,19 +37,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_dedup_lazy.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_dedup_lazy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_dedup_lazy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_dedup_lazy.php	2026-05-20 10:56:49.000000000 +0200
@@ -115,7 +115,7 @@
 
 class stdClassProxy2fc7938 extends \stdClass implements \Symfony\Component\VarExporter\LazyObjectInterface
 {
-    use \Symfony\Component\VarExporter\LazyProxyTrait;
+    use \Symfony\Component\VarExporter\Internal\LazyDecoratorTrait;
 
     private const LAZY_OBJECT_PROPERTY_SCOPES = [];
 }
@@ -123,4 +123,3 @@
 // Help opcache.preload discover always-needed symbols
 class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
 class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
-class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deep_graph.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deep_graph.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deep_graph.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deep_graph.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,13 @@
      */
     protected static function getBarService($container)
     {
-        $container->services['bar'] = $instance = new \stdClass();
+        $instance = new \stdClass();
+
+        if (isset($container->services['bar'])) {
+            return $container->services['bar'];
+        }
+
+        $container->services['bar'] = $instance;
 
         $instance->p5 = new \stdClass(($container->services['foo'] ?? self::getFooService($container)));
 
@@ -76,6 +82,12 @@
 
         $b->p2 = $c;
 
-        return $container->services['foo'] = new \Symfony\Component\DependencyInjection\Tests\Dumper\FooForDeepGraph($a, $b);
+        $instance = new \Symfony\Component\DependencyInjection\Tests\Dumper\FooForDeepGraph($a, $b);
+
+        if (isset($container->services['foo'])) {
+            return $container->services['foo'];
+        }
+
+        return $container->services['foo'] = $instance;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_default_env.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_default_env.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_default_env.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_default_env.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,19 +37,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters_as_files.txt symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters_as_files.txt
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters_as_files.txt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters_as_files.txt	2026-05-20 10:56:49.000000000 +0200
@@ -95,27 +95,28 @@
             trigger_deprecation(...self::DEPRECATED_PARAMETERS[$name]);
         }
 
-        if (isset($this->buildParameters[$name])) {
+        if (\array_key_exists($name, $this->buildParameters)) {
             return $this->buildParameters[$name];
         }
 
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        if (isset($this->buildParameters[$name])) {
+        if (\array_key_exists($name, $this->buildParameters)) {
             return true;
         }
 
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_deprecated_parameters.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,19 +58,20 @@
             trigger_deprecation(...self::DEPRECATED_PARAMETERS[$name]);
         }
 
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_env_in_id.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_env_in_id.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_env_in_id.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_env_in_id.php	2026-05-20 10:56:49.000000000 +0200
@@ -69,19 +69,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_errored_definition.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_errored_definition.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_errored_definition.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_errored_definition.php	2026-05-20 10:56:49.000000000 +0200
@@ -162,7 +162,13 @@
      */
     protected static function getBazService($container)
     {
-        $container->services['baz'] = $instance = new \Baz();
+        $instance = new \Baz();
+
+        if (isset($container->services['baz'])) {
+            return $container->services['baz'];
+        }
+
+        $container->services['baz'] = $instance;
 
         $instance->setFoo(($container->services['foo_with_inline'] ?? self::getFooWithInlineService($container)));
 
@@ -310,7 +316,13 @@
      */
     protected static function getFooWithInlineService($container)
     {
-        $container->services['foo_with_inline'] = $instance = new \Foo();
+        $instance = new \Foo();
+
+        if (isset($container->services['foo_with_inline'])) {
+            return $container->services['foo_with_inline'];
+        }
+
+        $container->services['foo_with_inline'] = $instance;
 
         $a = new \Bar();
         $a->pub = 'pub';
@@ -440,19 +452,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_json_env.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_json_env.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_json_env.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_json_env.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,19 +37,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_query_string_env.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_query_string_env.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_query_string_env.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_query_string_env.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,19 +37,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_rot13_env.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_rot13_env.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_rot13_env.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_rot13_env.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,19 +73,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_unsupported_characters.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_unsupported_characters.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_unsupported_characters.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_unsupported_characters.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,19 +72,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_url_env.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_url_env.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_url_env.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_url_env.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,19 +37,20 @@
 
     public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
     {
-        if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) {
-            throw new ParameterNotFoundException($name);
-        }
         if (isset($this->loadedDynamicParameters[$name])) {
             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
         }
 
+        if (!\array_key_exists($name, $this->parameters) || '.' === ($name[0] ?? '')) {
+            throw new ParameterNotFoundException($name);
+        }
+
         return $this->parameters[$name];
     }
 
     public function hasParameter(string $name): bool
     {
-        return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters);
+        return \array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
     }
 
     public function setParameter(string $name, $value): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_wither_lazy_non_shared.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_wither_lazy_non_shared.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_wither_lazy_non_shared.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_wither_lazy_non_shared.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,14 +75,49 @@
 
 class WitherProxyDd381be extends \Symfony\Component\DependencyInjection\Tests\Compiler\Wither implements \Symfony\Component\VarExporter\LazyObjectInterface
 {
-    use \Symfony\Component\VarExporter\LazyProxyTrait;
+    use \Symfony\Component\VarExporter\Internal\LazyDecoratorTrait;
 
     private const LAZY_OBJECT_PROPERTY_SCOPES = [
         'foo' => [parent::class, 'foo', null, 4],
     ];
+
+    public function setFoo(\Symfony\Component\DependencyInjection\Tests\Compiler\Foo $foo)
+    {
+        ${0} = $this->lazyObjectState->realInstance;
+        ${1} = ${0}->setFoo(...\func_get_args());
+
+        return match (true) {
+            ${1} === ${0} => $this,
+            !${1} instanceof ${0} || !${0} instanceof ${1} => ${1},
+            null !== $this->lazyObjectState->cloneInstance =& ${1} => clone $this,
+        };
+    }
+
+    public function withFoo1(\Symfony\Component\DependencyInjection\Tests\Compiler\Foo $foo): static
+    {
+        ${0} = $this->lazyObjectState->realInstance;
+        ${1} = ${0}->withFoo1(...\func_get_args());
+
+        return match (true) {
+            ${1} === ${0} => $this,
+            !${1} instanceof ${0} || !${0} instanceof ${1} => ${1},
+            null !== $this->lazyObjectState->cloneInstance =& ${1} => clone $this,
+        };
+    }
+
+    public function withFoo2(\Symfony\Component\DependencyInjection\Tests\Compiler\Foo $foo): static
+    {
+        ${0} = $this->lazyObjectState->realInstance;
+        ${1} = ${0}->withFoo2(...\func_get_args());
+
+        return match (true) {
+            ${1} === ${0} => $this,
+            !${1} instanceof ${0} || !${0} instanceof ${1} => ${1},
+            null !== $this->lazyObjectState->cloneInstance =& ${1} => clone $this,
+        };
+    }
 }
 
 // Help opcache.preload discover always-needed symbols
 class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
 class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
-class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_wither_lazy.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_wither_lazy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_wither_lazy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_wither_lazy.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,14 +73,49 @@
 
 class WitherProxy580fe0f extends \Symfony\Component\DependencyInjection\Tests\Compiler\Wither implements \Symfony\Component\VarExporter\LazyObjectInterface
 {
-    use \Symfony\Component\VarExporter\LazyProxyTrait;
+    use \Symfony\Component\VarExporter\Internal\LazyDecoratorTrait;
 
     private const LAZY_OBJECT_PROPERTY_SCOPES = [
         'foo' => [parent::class, 'foo', null, 4],
     ];
+
+    public function setFoo(\Symfony\Component\DependencyInjection\Tests\Compiler\Foo $foo)
+    {
+        ${0} = $this->lazyObjectState->realInstance;
+        ${1} = ${0}->setFoo(...\func_get_args());
+
+        return match (true) {
+            ${1} === ${0} => $this,
+            !${1} instanceof ${0} || !${0} instanceof ${1} => ${1},
+            null !== $this->lazyObjectState->cloneInstance =& ${1} => clone $this,
+        };
+    }
+
+    public function withFoo1(\Symfony\Component\DependencyInjection\Tests\Compiler\Foo $foo): static
+    {
+        ${0} = $this->lazyObjectState->realInstance;
+        ${1} = ${0}->withFoo1(...\func_get_args());
+
+        return match (true) {
+            ${1} === ${0} => $this,
+            !${1} instanceof ${0} || !${0} instanceof ${1} => ${1},
+            null !== $this->lazyObjectState->cloneInstance =& ${1} => clone $this,
+        };
+    }
+
+    public function withFoo2(\Symfony\Component\DependencyInjection\Tests\Compiler\Foo $foo): static
+    {
+        ${0} = $this->lazyObjectState->realInstance;
+        ${1} = ${0}->withFoo2(...\func_get_args());
+
+        return match (true) {
+            ${1} === ${0} => $this,
+            !${1} instanceof ${0} || !${0} instanceof ${1} => ${1},
+            null !== $this->lazyObjectState->cloneInstance =& ${1} => clone $this,
+        };
+    }
 }
 
 // Help opcache.preload discover always-needed symbols
 class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
 class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
-class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/StaticConstructorAutoconfigure.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/StaticConstructorAutoconfigure.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/StaticConstructorAutoconfigure.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/StaticConstructorAutoconfigure.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,6 @@
 namespace Symfony\Component\DependencyInjection\Tests\Fixtures;
 
 use Symfony\Component\DependencyInjection\Attribute\Autoconfigure;
-use Symfony\Component\DependencyInjection\Attribute\Factory;
 
 #[Autoconfigure(bind: ['$foo' => 'foo'], constructor: 'create')]
 class StaticConstructorAutoconfigure
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/UntypedWithTarget.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/UntypedWithTarget.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/UntypedWithTarget.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/UntypedWithTarget.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,23 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\DependencyInjection\Tests\Fixtures;
+
+use Symfony\Component\DependencyInjection\Attribute\Target;
+
+class UntypedWithTarget
+{
+    public function __construct(
+        #[Target('apiKey')]
+        $key
+    ) {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services31.xml symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services31.xml
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services31.xml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services31.xml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
+    <services>
+        <service id="invalid_service" class="App\Foo">
+            <bogusTag />
+        </service>
+    </services>
+</container>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/container_with_env_placeholders.yml symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/container_with_env_placeholders.yml
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/container_with_env_placeholders.yml	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/container_with_env_placeholders.yml	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,19 @@
+parameters:
+    '%env(PARAMETER_NAME)%': '%env(PARAMETER_VALUE)%'
+
+services:
+    service_container:
+        class: Symfony\Component\DependencyInjection\ContainerInterface
+        public: true
+        synthetic: true
+    service:
+        class: '%env(SERVICE_CLASS)%'
+        public: true
+        file: '%env(SERVICE_FILE)%'
+        arguments: ['%env(SERVICE_ARGUMENT)%']
+        properties: { '%env(SERVICE_PROPERTY_NAME)%': '%env(SERVICE_PROPERTY_VALUE)%' }
+        calls:
+            - ['%env(SERVICE_METHOD_NAME)%', ['%env(SERVICE_METHOD_ARGUMENT)%']]
+
+        factory: '%env(SERVICE_FACTORY)%'
+        configurator: '%env(SERVICE_CONFIGURATOR)%'
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,7 @@
 use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator;
 
 /**
- * Tests for {@see \Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator}.
+ * Tests for {@see RealServiceInstantiator}.
  *
  * @author Marco Pivetta <ocramius@gmail.com>
  */
@@ -28,7 +28,7 @@
         $instantiator = new RealServiceInstantiator();
         $instance = new \stdClass();
         $container = $this->createMock(ContainerInterface::class);
-        $callback = fn () => $instance;
+        $callback = static fn () => $instance;
 
         $this->assertSame($instance, $instantiator->instantiateProxy($container, new Definition(), 'foo', $callback));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/LazyProxy/PhpDumper/NullDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/LazyProxy/PhpDumper/NullDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/LazyProxy/PhpDumper/NullDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/LazyProxy/PhpDumper/NullDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,7 @@
 use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper;
 
 /**
- * Tests for {@see \Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper}.
+ * Tests for {@see NullDumper}.
  *
  * @author Marco Pivetta <ocramius@gmail.com>
  */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
     {
         $loader = new ClosureLoader(new ContainerBuilder());
 
-        $this->assertTrue($loader->supports(function ($container) {}), '->supports() returns true if the resource is loadable');
+        $this->assertTrue($loader->supports(static function ($container) {}), '->supports() returns true if the resource is loadable');
         $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
     }
 
@@ -29,7 +29,7 @@
     {
         $loader = new ClosureLoader($container = new ContainerBuilder(), 'some-env');
 
-        $loader->load(function ($container, $env) {
+        $loader->load(static function ($container, $env) {
             $container->setParameter('foo', 'foo');
             $container->setParameter('env', $env);
         });
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/Configurator/AbstractConfiguratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/Configurator/AbstractConfiguratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/Configurator/AbstractConfiguratorTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/Configurator/AbstractConfiguratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,59 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\DependencyInjection\Tests\Loader\Configurator;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+use Symfony\Component\DependencyInjection\Loader\Configurator\AbstractConfigurator;
+use Symfony\Component\DependencyInjection\Loader\Configurator\InlineServiceConfigurator;
+use Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator;
+use Symfony\Component\DependencyInjection\Reference;
+
+class AbstractConfiguratorTest extends TestCase
+{
+    public function testInlineServiceIsNotAllowedWithoutAllowServices()
+    {
+        $configurator = new InlineServiceConfigurator(new Definition('stdClass'));
+
+        $this->expectException(InvalidArgumentException::class);
+
+        AbstractConfigurator::processValue($configurator, false);
+    }
+
+    public function testServiceReferenceIsNotAllowedWithoutAllowServices()
+    {
+        $configurator = new ReferenceConfigurator('foo');
+
+        $this->expectException(InvalidArgumentException::class);
+
+        AbstractConfigurator::processValue($configurator, false);
+    }
+
+    public function testInlineServiceIsAllowedWithAllowServices()
+    {
+        $configurator = new InlineServiceConfigurator(new Definition('stdClass'));
+
+        $result = AbstractConfigurator::processValue($configurator, true);
+
+        $this->assertInstanceOf(Definition::class, $result);
+    }
+
+    public function testServiceReferenceIsAllowedWithAllowServices()
+    {
+        $configurator = new ReferenceConfigurator('foo');
+
+        $result = AbstractConfigurator::processValue($configurator, true);
+
+        $this->assertInstanceOf(Reference::class, $result);
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/FileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/FileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/FileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/FileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -227,6 +227,25 @@
         );
     }
 
+    public function testClassIsSetEvenWhenDefinitionHasErrors()
+    {
+        $container = new ContainerBuilder();
+        $container->setParameter('bad_classes_dir', 'BadClasses');
+        $loader = new TestFileLoader($container, new FileLocator(self::$fixturesPath.'/Fixtures'), 'test');
+
+        $loader->registerClasses(
+            (new Definition())->setAutoconfigured(true),
+            'Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\BadClasses\\',
+            'Prototype/%bad_classes_dir%/*'
+        );
+
+        $definition = $container->getDefinition(MissingParent::class);
+
+        // The class should be set even when the definition has errors
+        $this->assertSame(MissingParent::class, $definition->getClass());
+        $this->assertNotEmpty($definition->getErrors());
+    }
+
     public function testRegisterClassesWithBadPrefix()
     {
         $this->expectException(InvalidArgumentException::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
     public function testTypeConversionsWithNativePhp($key, $value, $supported)
     {
         if (!$supported) {
-            $this->markTestSkipped(sprintf('Converting the value "%s" to "%s" is not supported by the IniFileLoader.', $key, $value));
+            $this->markTestSkipped(\sprintf('Converting the value "%s" to "%s" is not supported by the IniFileLoader.', $key, $value));
         }
 
         $expected = parse_ini_file(__DIR__.'/../Fixtures/ini/types.ini', true, \INI_SCANNER_TYPED);
@@ -82,7 +82,7 @@
             ['zero', 0, true],
             ['0b0110_byte_string', bindec('0b0110'), false], // not supported by INI_SCANNER_TYPED
             ['11112222333344445555_great_number', '1111,2222,3333,4444,5555', true],
-            ['0777_number_starting_with_0', 0777, false], // not supported by INI_SCANNER_TYPED
+            ['0777_number_starting_with_0', 0o777, false], // not supported by INI_SCANNER_TYPED
             ['255_hexadecimal', 0xFF, false], // not supported by INI_SCANNER_TYPED
             ['100.0_exponential', 1e2, false], // not supported by INI_SCANNER_TYPED
             ['-120.0_exponential', -1.2E2, false], // not supported by INI_SCANNER_TYPED
@@ -101,7 +101,7 @@
     public function testLegacyTypeConversionsWithNativePhp($key, $value, $supported)
     {
         if (!$supported) {
-            $this->markTestSkipped(sprintf('Converting the value "%s" to "%s" is not supported by the IniFileLoader.', $key, $value));
+            $this->markTestSkipped(\sprintf('Converting the value "%s" to "%s" is not supported by the IniFileLoader.', $key, $value));
         }
 
         $expected = parse_ini_file(__DIR__.'/../Fixtures/ini/types_legacy.ini', true, \INI_SCANNER_TYPED);
@@ -132,7 +132,7 @@
             ['0', 0, true],
             ['0b0110', bindec('0b0110'), false], // not supported by INI_SCANNER_TYPED
             ['11112222333344445555', '1111,2222,3333,4444,5555', true],
-            ['0777', 0777, false], // not supported by INI_SCANNER_TYPED
+            ['0777', 0o777, false], // not supported by INI_SCANNER_TYPED
             ['255', 0xFF, false], // not supported by INI_SCANNER_TYPED
             ['100.0', 1e2, false], // not supported by INI_SCANNER_TYPED
             ['-120.0', -1.2E2, false], // not supported by INI_SCANNER_TYPED
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -236,4 +236,18 @@
         $values = ['foo' => new Definition(\stdClass::class), 'bar' => new Definition(\stdClass::class)];
         $this->assertEquals([new ServiceLocatorArgument($values)], $container->getDefinition('locator_dependent_inline_service')->getArguments());
     }
+
+    public function testInstanceofStateIsRestoredAfterImport()
+    {
+        $container = new ContainerBuilder();
+
+        $loader = new PhpFileLoader($container, new FileLocator(\dirname(__DIR__).'/Fixtures/config'));
+        $loader->load('instanceof_import_parent.php');
+
+        $conditionalsBefore = $container->getDefinition('service_before')->getInstanceofConditionals();
+        $this->assertArrayHasKey(\stdClass::class, $conditionalsBefore, 'Pre-import definition missing instanceof rule.');
+
+        $conditionalsAfter = $container->getDefinition('service_after')->getInstanceofConditionals();
+        $this->assertArrayHasKey(\stdClass::class, $conditionalsAfter, 'Post-import definition missing instanceof rule (State corruption detected).');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -88,7 +88,7 @@
             $this->fail('->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
         } catch (\Exception $e) {
             $this->assertInstanceOf(InvalidArgumentException::class, $e, '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
-            $this->assertMatchesRegularExpression(sprintf('#^Unable to parse file ".+%s": .+.$#', 'parameters.ini'), $e->getMessage(), '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
+            $this->assertMatchesRegularExpression(\sprintf('#^Unable to parse file ".+%s": .+.$#', 'parameters.ini'), $e->getMessage(), '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
 
             $e = $e->getPrevious();
             $this->assertInstanceOf(\InvalidArgumentException::class, $e, '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
@@ -102,7 +102,7 @@
             $this->fail('->parseFileToDOM() throws an InvalidArgumentException if the loaded file does not validate the XSD');
         } catch (\Exception $e) {
             $this->assertInstanceOf(InvalidArgumentException::class, $e, '->parseFileToDOM() throws an InvalidArgumentException if the loaded file does not validate the XSD');
-            $this->assertMatchesRegularExpression(sprintf('#^Unable to parse file ".+%s": .+.$#', 'nonvalid.xml'), $e->getMessage(), '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
+            $this->assertMatchesRegularExpression(\sprintf('#^Unable to parse file ".+%s": .+.$#', 'nonvalid.xml'), $e->getMessage(), '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
 
             $e = $e->getPrevious();
             $this->assertInstanceOf(\InvalidArgumentException::class, $e, '->parseFileToDOM() throws an InvalidArgumentException if the loaded file does not validate the XSD');
@@ -207,11 +207,11 @@
             $this->fail('->load() throws a LoaderLoadException if the imported xml file configuration does not exist');
         } catch (\Exception $e) {
             $this->assertInstanceOf(LoaderLoadException::class, $e, '->load() throws a LoaderLoadException if the imported xml file configuration does not exist');
-            $this->assertMatchesRegularExpression(sprintf('#^The file "%1$s" does not exist \(in: .+\) in %1$s \(which is being imported from ".+%2$s"\)\.$#', 'foo_fake\.xml', 'services4_bad_import_with_errors\.xml'), $e->getMessage(), '->load() throws a LoaderLoadException if the imported xml file configuration does not exist');
+            $this->assertMatchesRegularExpression(\sprintf('#^The file "%1$s" does not exist \(in: .+\) in %1$s \(which is being imported from ".+%2$s"\)\.$#', 'foo_fake\.xml', 'services4_bad_import_with_errors\.xml'), $e->getMessage(), '->load() throws a LoaderLoadException if the imported xml file configuration does not exist');
 
             $e = $e->getPrevious();
             $this->assertInstanceOf(FileLocatorFileNotFoundException::class, $e, '->load() throws a FileLocatorFileNotFoundException if the imported xml file configuration does not exist');
-            $this->assertMatchesRegularExpression(sprintf('#^The file "%s" does not exist \(in: .+\)\.$#', 'foo_fake\.xml'), $e->getMessage(), '->load() throws a FileLocatorFileNotFoundException if the imported xml file configuration does not exist');
+            $this->assertMatchesRegularExpression(\sprintf('#^The file "%s" does not exist \(in: .+\)\.$#', 'foo_fake\.xml'), $e->getMessage(), '->load() throws a FileLocatorFileNotFoundException if the imported xml file configuration does not exist');
         }
 
         try {
@@ -219,11 +219,11 @@
             $this->fail('->load() throws an LoaderLoadException if the imported configuration does not validate the XSD');
         } catch (\Exception $e) {
             $this->assertInstanceOf(LoaderLoadException::class, $e, '->load() throws a LoaderLoadException if the imported configuration does not validate the XSD');
-            $this->assertMatchesRegularExpression(sprintf('#^Unable to parse file ".+%s": .+.$#', 'nonvalid\.xml'), $e->getMessage(), '->load() throws a LoaderLoadException if the imported configuration does not validate the XSD');
+            $this->assertMatchesRegularExpression(\sprintf('#^Unable to parse file ".+%s": .+.$#', 'nonvalid\.xml'), $e->getMessage(), '->load() throws a LoaderLoadException if the imported configuration does not validate the XSD');
 
             $e = $e->getPrevious();
             $this->assertInstanceOf(InvalidArgumentException::class, $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-            $this->assertMatchesRegularExpression(sprintf('#^Unable to parse file ".+%s": .+.$#', 'nonvalid\.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+            $this->assertMatchesRegularExpression(\sprintf('#^Unable to parse file ".+%s": .+.$#', 'nonvalid\.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
 
             $e = $e->getPrevious();
             $this->assertInstanceOf(XmlParsingException::class, $e, '->load() throws a XmlParsingException if the configuration does not validate the XSD');
@@ -598,7 +598,7 @@
             $this->fail('->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
         } catch (\Exception $e) {
             $this->assertInstanceOf(InvalidArgumentException::class, $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-            $this->assertMatchesRegularExpression(sprintf('#^Unable to parse file ".+%s": .+.$#', 'services3.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+            $this->assertMatchesRegularExpression(\sprintf('#^Unable to parse file ".+%s": .+.$#', 'services3.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
 
             $e = $e->getPrevious();
             $this->assertInstanceOf(\InvalidArgumentException::class, $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
@@ -635,7 +635,7 @@
             $this->fail('->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
         } catch (\Exception $e) {
             $this->assertInstanceOf(InvalidArgumentException::class, $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-            $this->assertMatchesRegularExpression(sprintf('#^Unable to parse file ".+%s": .+.$#', 'services7.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+            $this->assertMatchesRegularExpression(\sprintf('#^Unable to parse file ".+%s": .+.$#', 'services7.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
 
             $e = $e->getPrevious();
             $this->assertInstanceOf(\InvalidArgumentException::class, $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
@@ -686,7 +686,7 @@
             $this->fail('->load() throws an InvalidArgumentException if the configuration contains a document type');
         } catch (\Exception $e) {
             $this->assertInstanceOf(InvalidArgumentException::class, $e, '->load() throws an InvalidArgumentException if the configuration contains a document type');
-            $this->assertMatchesRegularExpression(sprintf('#^Unable to parse file ".+%s": .+.$#', 'withdoctype.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration contains a document type');
+            $this->assertMatchesRegularExpression(\sprintf('#^Unable to parse file ".+%s": .+.$#', 'withdoctype.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration contains a document type');
 
             $e = $e->getPrevious();
             $this->assertInstanceOf(\InvalidArgumentException::class, $e, '->load() throws an InvalidArgumentException if the configuration contains a document type');
@@ -774,7 +774,7 @@
         $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
         $loader->load('services_prototype.xml');
 
-        $ids = array_keys(array_filter($container->getDefinitions(), fn ($def) => !$def->hasTag('container.excluded')));
+        $ids = array_keys(array_filter($container->getDefinitions(), static fn ($def) => !$def->hasTag('container.excluded')));
         sort($ids);
         $this->assertSame([Prototype\Foo::class, Prototype\Sub\Bar::class, 'service_container'], $ids);
 
@@ -810,7 +810,7 @@
         $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
         $loader->load($fileName);
 
-        $ids = array_keys(array_filter($container->getDefinitions(), fn ($def) => !$def->hasTag('container.excluded')));
+        $ids = array_keys(array_filter($container->getDefinitions(), static fn ($def) => !$def->hasTag('container.excluded')));
         sort($ids);
         $this->assertSame([Prototype\Foo::class, Prototype\Sub\Bar::class, 'service_container'], $ids);
 
@@ -1029,7 +1029,7 @@
             '$quz' => 'quz',
             '$factory' => 'factory',
             'iterable $baz' => new TaggedIteratorArgument('bar'),
-        ], array_map(fn (BoundArgument $v) => $v->getValues()[0], $definition->getBindings()));
+        ], array_map(static fn (BoundArgument $v) => $v->getValues()[0], $definition->getBindings()));
         $this->assertEquals([
             'quz',
             null,
@@ -1047,7 +1047,7 @@
             'NonExistent' => null,
             '$quz' => 'quz',
             '$factory' => 'factory',
-        ], array_map(fn (BoundArgument $v) => $v->getValues()[0], $definition->getBindings()));
+        ], array_map(static fn (BoundArgument $v) => $v->getValues()[0], $definition->getBindings()));
     }
 
     public function testFqcnLazyProxy()
@@ -1221,14 +1221,14 @@
     public static function dataForBindingsAndInnerCollections()
     {
         return [
-           ['bar1', ['item.1', 'item.2']],
-           ['bar2', ['item.1', 'item.2']],
-           ['bar3', ['item.1', 'item.2', 'item.3', 'item.4']],
-           ['bar4', ['item.1', 'item.3', 'item.4']],
-           ['bar5', ['item.1', 'item.2', ['item.3.1', 'item.3.2']]],
-           ['bar6', ['item.1', ['item.2.1', 'item.2.2'], 'item.3']],
-           ['bar7', new IteratorArgument(['item.1', 'item.2'])],
-           ['bar8', new IteratorArgument(['item.1', 'item.2', ['item.3.1', 'item.3.2']])],
+            ['bar1', ['item.1', 'item.2']],
+            ['bar2', ['item.1', 'item.2']],
+            ['bar3', ['item.1', 'item.2', 'item.3', 'item.4']],
+            ['bar4', ['item.1', 'item.3', 'item.4']],
+            ['bar5', ['item.1', 'item.2', ['item.3.1', 'item.3.2']]],
+            ['bar6', ['item.1', ['item.2.1', 'item.2.2'], 'item.3']],
+            ['bar7', new IteratorArgument(['item.1', 'item.2'])],
+            ['bar8', new IteratorArgument(['item.1', 'item.2', ['item.3.1', 'item.3.2']])],
         ];
     }
 
@@ -1265,7 +1265,7 @@
     public function testStaticConstructorWithFactoryThrows()
     {
         $container = new ContainerBuilder();
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath . '/xml'));
+        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
 
         $this->expectException(LogicException::class);
         $this->expectExceptionMessage('The "static_constructor" service cannot declare a factory as well as a constructor.');
@@ -1286,4 +1286,20 @@
 
         self::assertInstanceOf(RemoteCallerSocket::class, $container->get(RemoteCaller::class));
     }
+
+    public function testXmlParseExceptionIncludesFilenameAndPosition()
+    {
+        $container = new ContainerBuilder();
+        $loader = new XmlFileLoader(
+            $container,
+            new FileLocator(__DIR__.'/../Fixtures/xml')
+        );
+
+        $invalidXMLFileName = 'services31.xml';
+
+        $this->expectException(InvalidArgumentException::class);
+        $this->expectExceptionMessageMatches('/Unable to parse file .*services31\.xml.*bogusTag.*This element is not expected.*line 5, column 0/');
+
+        $loader->load($invalidXMLFileName);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -153,11 +153,11 @@
             $this->fail('->load() throws a LoaderLoadException if the imported yaml file does not exist');
         } catch (\Exception $e) {
             $this->assertInstanceOf(LoaderLoadException::class, $e, '->load() throws a LoaderLoadException if the imported yaml file does not exist');
-            $this->assertMatchesRegularExpression(sprintf('#^The file "%1$s" does not exist \(in: .+\) in %1$s \(which is being imported from ".+%2$s"\)\.$#', 'foo_fake\.yml', 'services4_bad_import_with_errors\.yml'), $e->getMessage(), '->load() throws a LoaderLoadException if the imported yaml file does not exist');
+            $this->assertMatchesRegularExpression(\sprintf('#^The file "%1$s" does not exist \(in: .+\) in %1$s \(which is being imported from ".+%2$s"\)\.$#', 'foo_fake\.yml', 'services4_bad_import_with_errors\.yml'), $e->getMessage(), '->load() throws a LoaderLoadException if the imported yaml file does not exist');
 
             $e = $e->getPrevious();
             $this->assertInstanceOf(FileLocatorFileNotFoundException::class, $e, '->load() throws a FileLocatorFileNotFoundException if the imported yaml file does not exist');
-            $this->assertMatchesRegularExpression(sprintf('#^The file "%s" does not exist \(in: .+\)\.$#', 'foo_fake\.yml'), $e->getMessage(), '->load() throws a FileLocatorFileNotFoundException if the imported yaml file does not exist');
+            $this->assertMatchesRegularExpression(\sprintf('#^The file "%s" does not exist \(in: .+\)\.$#', 'foo_fake\.yml'), $e->getMessage(), '->load() throws a FileLocatorFileNotFoundException if the imported yaml file does not exist');
         }
 
         try {
@@ -165,11 +165,11 @@
             $this->fail('->load() throws a LoaderLoadException if the tag in the imported yaml file is not valid');
         } catch (\Exception $e) {
             $this->assertInstanceOf(LoaderLoadException::class, $e, '->load() throws a LoaderLoadException if the tag in the imported yaml file is not valid');
-            $this->assertMatchesRegularExpression(sprintf('#^The service file ".+%1$s" is not valid\. It should contain an array\. Check your YAML syntax in .+%1$s \(which is being imported from ".+%2$s"\)\.$#', 'nonvalid2\.yml', 'services4_bad_import_nonvalid.yml'), $e->getMessage(), '->load() throws a LoaderLoadException if the tag in the imported yaml file is not valid');
+            $this->assertMatchesRegularExpression(\sprintf('#^The service file ".+%1$s" is not valid\. It should contain an array\. Check your YAML syntax in .+%1$s \(which is being imported from ".+%2$s"\)\.$#', 'nonvalid2\.yml', 'services4_bad_import_nonvalid.yml'), $e->getMessage(), '->load() throws a LoaderLoadException if the tag in the imported yaml file is not valid');
 
             $e = $e->getPrevious();
             $this->assertInstanceOf(InvalidArgumentException::class, $e, '->load() throws an InvalidArgumentException if the tag in the imported yaml file is not valid');
-            $this->assertMatchesRegularExpression(sprintf('#^The service file ".+%s" is not valid\. It should contain an array\. Check your YAML syntax\.$#', 'nonvalid2\.yml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the tag in the imported yaml file is not valid');
+            $this->assertMatchesRegularExpression(\sprintf('#^The service file ".+%s" is not valid\. It should contain an array\. Check your YAML syntax\.$#', 'nonvalid2\.yml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the tag in the imported yaml file is not valid');
         }
     }
 
@@ -542,7 +542,7 @@
         $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
         $loader->load('services_prototype.yml');
 
-        $ids = array_keys(array_filter($container->getDefinitions(), fn ($def) => !$def->hasTag('container.excluded')));
+        $ids = array_keys(array_filter($container->getDefinitions(), static fn ($def) => !$def->hasTag('container.excluded')));
         sort($ids);
         $this->assertSame([Prototype\Foo::class, Prototype\Sub\Bar::class, 'service_container'], $ids);
 
@@ -595,7 +595,7 @@
         $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
         $loader->load('services_prototype_namespace.yml');
 
-        $ids = array_keys(array_filter($container->getDefinitions(), fn ($def) => !$def->hasTag('container.excluded')));
+        $ids = array_keys(array_filter($container->getDefinitions(), static fn ($def) => !$def->hasTag('container.excluded')));
         sort($ids);
 
         $this->assertSame([
@@ -929,7 +929,7 @@
             '$quz' => 'quz',
             '$factory' => 'factory',
             'iterable $baz' => new TaggedIteratorArgument('bar'),
-        ], array_map(fn (BoundArgument $v) => $v->getValues()[0], $definition->getBindings()));
+        ], array_map(static fn (BoundArgument $v) => $v->getValues()[0], $definition->getBindings()));
         $this->assertEquals([
             'quz',
             null,
@@ -947,7 +947,7 @@
             'NonExistent' => null,
             '$quz' => 'quz',
             '$factory' => 'factory',
-        ], array_map(fn (BoundArgument $v) => $v->getValues()[0], $definition->getBindings()));
+        ], array_map(static fn (BoundArgument $v) => $v->getValues()[0], $definition->getBindings()));
     }
 
     public function testProcessNotExistingActionParam()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/EnvPlaceholderParameterBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/EnvPlaceholderParameterBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/EnvPlaceholderParameterBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/EnvPlaceholderParameterBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
     public function testMergeWillNotDuplicateIdenticalParameters()
     {
         $envVariableName = 'DB_HOST';
-        $parameter = sprintf('env(%s)', $envVariableName);
+        $parameter = \sprintf('env(%s)', $envVariableName);
         $firstBag = new EnvPlaceholderParameterBag();
 
         // initialize placeholders
@@ -59,7 +59,7 @@
     public function testMergeWhereFirstBagIsEmptyWillWork()
     {
         $envVariableName = 'DB_HOST';
-        $parameter = sprintf('env(%s)', $envVariableName);
+        $parameter = \sprintf('env(%s)', $envVariableName);
         $firstBag = new EnvPlaceholderParameterBag();
         $secondBag = new EnvPlaceholderParameterBag();
 
@@ -84,8 +84,8 @@
         $uniqueEnvName = 'DB_HOST';
         $commonEnvName = 'DB_USER';
 
-        $uniqueParamName = sprintf('env(%s)', $uniqueEnvName);
-        $commonParamName = sprintf('env(%s)', $commonEnvName);
+        $uniqueParamName = \sprintf('env(%s)', $uniqueEnvName);
+        $commonParamName = \sprintf('env(%s)', $commonEnvName);
 
         $firstBag = new EnvPlaceholderParameterBag();
         // initialize common placeholder
@@ -106,7 +106,7 @@
     public function testMergeWithDifferentIdentifiersForPlaceholders()
     {
         $envName = 'DB_USER';
-        $paramName = sprintf('env(%s)', $envName);
+        $paramName = \sprintf('env(%s)', $envName);
 
         $firstBag = new EnvPlaceholderParameterBag();
         $secondBag = new EnvPlaceholderParameterBag();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -343,7 +343,7 @@
         try {
             $this->assertEquals($expected, $bag->resolveString($test), $description);
         } catch (ParameterNotFoundException $e) {
-            $this->fail(sprintf('%s - "%s"', $description, $expected));
+            $this->fail(\sprintf('%s - "%s"', $description, $expected));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/ServiceLocatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/ServiceLocatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DependencyInjection/Tests/ServiceLocatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DependencyInjection/Tests/ServiceLocatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,8 +35,8 @@
     public function testGetThrowsOnUndefinedService()
     {
         $locator = $this->getServiceLocator([
-            'foo' => fn () => 'bar',
-            'bar' => fn () => 'baz',
+            'foo' => static fn () => 'bar',
+            'bar' => static fn () => 'baz',
         ]);
 
         $this->expectException(NotFoundExceptionInterface::class);
@@ -57,7 +57,7 @@
         $container = new Container();
         $container->set('foo', new \stdClass());
         $subscriber = new SomeServiceSubscriber();
-        $subscriber->container = $this->getServiceLocator(['bar' => function () {}]);
+        $subscriber->container = $this->getServiceLocator(['bar' => static function () {}]);
         $subscriber->container = $subscriber->container->withContext('caller', $container);
 
         $this->expectException(NotFoundExceptionInterface::class);
@@ -83,8 +83,8 @@
     public function testInvoke()
     {
         $locator = $this->getServiceLocator([
-            'foo' => fn () => 'bar',
-            'bar' => fn () => 'baz',
+            'foo' => static fn () => 'bar',
+            'bar' => static fn () => 'baz',
         ]);
 
         $this->assertSame('bar', $locator('foo'));
@@ -95,9 +95,9 @@
     public function testProvidesServicesInformation()
     {
         $locator = new ServiceLocator([
-            'foo' => fn () => 'bar',
-            'bar' => fn (): string => 'baz',
-            'baz' => fn (): ?string => 'zaz',
+            'foo' => static fn () => 'bar',
+            'bar' => static fn (): string => 'baz',
+            'baz' => static fn (): ?string => 'zaz',
         ]);
 
         $this->assertSame($locator->getProvidedServices(), [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/AbstractUriElement.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/AbstractUriElement.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/AbstractUriElement.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/AbstractUriElement.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
         $elementUriIsRelative = !parse_url(trim($this->getRawUri()), \PHP_URL_SCHEME);
         $baseUriIsAbsolute = null !== $this->currentUri && \in_array(strtolower(substr($this->currentUri, 0, 4)), ['http', 'file']);
         if ($elementUriIsRelative && !$baseUriIsAbsolute) {
-            throw new \InvalidArgumentException(sprintf('The URL of the element is relative, so you must define its base URI passing an absolute URL to the constructor of the "%s" class ("%s" was passed).', __CLASS__, $this->currentUri));
+            throw new \InvalidArgumentException(\sprintf('The URL of the element is relative, so you must define its base URI passing an absolute URL to the constructor of the "%s" class ("%s" was passed).', __CLASS__, $this->currentUri));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Crawler.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Crawler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Crawler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Crawler.php	2026-05-20 10:56:49.000000000 +0200
@@ -124,7 +124,7 @@
         } elseif (\is_string($node)) {
             $this->addContent($node);
         } elseif (null !== $node) {
-            throw new \InvalidArgumentException(sprintf('Expecting a DOMNodeList or DOMNode instance, an array, a string, or null, but got "%s".', get_debug_type($node)));
+            throw new \InvalidArgumentException(\sprintf('Expecting a DOMNodeList or DOMNode instance, an array, a string, or null, but got "%s".', get_debug_type($node)));
         }
     }
 
@@ -225,7 +225,6 @@
         $internalErrors = libxml_use_internal_errors(true);
 
         $dom = new \DOMDocument('1.0', $charset);
-        $dom->validateOnParse = true;
 
         if ('' !== trim($content)) {
             @$dom->loadXML($content, $options);
@@ -755,7 +754,7 @@
     public function selectLink(string $value): static
     {
         return $this->filterRelativeXPath(
-            sprintf('descendant-or-self::a[contains(concat(\' \', normalize-space(string(.)), \' \'), %1$s) or ./img[contains(concat(\' \', normalize-space(string(@alt)), \' \'), %1$s)]]', static::xpathLiteral(' '.$value.' '))
+            \sprintf('descendant-or-self::a[contains(concat(\' \', normalize-space(string(.)), \' \'), %1$s) or ./img[contains(concat(\' \', normalize-space(string(@alt)), \' \'), %1$s)]]', static::xpathLiteral(' '.$value.' '))
         );
     }
 
@@ -764,18 +763,18 @@
      */
     public function selectImage(string $value): static
     {
-        $xpath = sprintf('descendant-or-self::img[contains(normalize-space(string(@alt)), %s)]', static::xpathLiteral($value));
+        $xpath = \sprintf('descendant-or-self::img[contains(normalize-space(string(@alt)), %s)]', static::xpathLiteral($value));
 
         return $this->filterRelativeXPath($xpath);
     }
 
     /**
-     * Selects a button by name or alt value for images.
+     * Selects a button by its text content, id, value, name or alt attribute.
      */
     public function selectButton(string $value): static
     {
         return $this->filterRelativeXPath(
-            sprintf('descendant-or-self::input[((contains(%1$s, "submit") or contains(%1$s, "button")) and contains(concat(\' \', normalize-space(string(@value)), \' \'), %2$s)) or (contains(%1$s, "image") and contains(concat(\' \', normalize-space(string(@alt)), \' \'), %2$s)) or @id=%3$s or @name=%3$s] | descendant-or-self::button[contains(concat(\' \', normalize-space(string(.)), \' \'), %2$s) or @id=%3$s or @name=%3$s]', 'translate(@type, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")', static::xpathLiteral(' '.$value.' '), static::xpathLiteral($value))
+            \sprintf('descendant-or-self::input[((contains(%1$s, "submit") or contains(%1$s, "button")) and contains(concat(\' \', normalize-space(string(@value)), \' \'), %2$s)) or (contains(%1$s, "image") and contains(concat(\' \', normalize-space(string(@alt)), \' \'), %2$s)) or @id=%3$s or @name=%3$s] | descendant-or-self::button[contains(concat(\' \', normalize-space(string(.)), \' \'), %2$s) or contains(concat(\' \', normalize-space(string(@value)), \' \'), %2$s) or @id=%3$s or @name=%3$s]', 'translate(@type, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")', static::xpathLiteral(' '.$value.' '), static::xpathLiteral($value))
         );
     }
 
@@ -793,7 +792,7 @@
         $node = $this->getNode(0);
 
         if (!$node instanceof \DOMElement) {
-            throw new \InvalidArgumentException(sprintf('The selected node should be instance of DOMElement, got "%s".', get_debug_type($node)));
+            throw new \InvalidArgumentException(\sprintf('The selected node should be instance of DOMElement, got "%s".', get_debug_type($node)));
         }
 
         return new Link($node, $this->baseHref, $method);
@@ -811,7 +810,7 @@
         $links = [];
         foreach ($this->nodes as $node) {
             if (!$node instanceof \DOMElement) {
-                throw new \InvalidArgumentException(sprintf('The current node list should contain only DOMElement instances, "%s" found.', get_debug_type($node)));
+                throw new \InvalidArgumentException(\sprintf('The current node list should contain only DOMElement instances, "%s" found.', get_debug_type($node)));
             }
 
             $links[] = new Link($node, $this->baseHref, 'get');
@@ -834,7 +833,7 @@
         $node = $this->getNode(0);
 
         if (!$node instanceof \DOMElement) {
-            throw new \InvalidArgumentException(sprintf('The selected node should be instance of DOMElement, got "%s".', get_debug_type($node)));
+            throw new \InvalidArgumentException(\sprintf('The selected node should be instance of DOMElement, got "%s".', get_debug_type($node)));
         }
 
         return new Image($node, $this->baseHref);
@@ -850,7 +849,7 @@
         $images = [];
         foreach ($this as $node) {
             if (!$node instanceof \DOMElement) {
-                throw new \InvalidArgumentException(sprintf('The current node list should contain only DOMElement instances, "%s" found.', get_debug_type($node)));
+                throw new \InvalidArgumentException(\sprintf('The current node list should contain only DOMElement instances, "%s" found.', get_debug_type($node)));
             }
 
             $images[] = new Image($node, $this->baseHref);
@@ -873,7 +872,7 @@
         $node = $this->getNode(0);
 
         if (!$node instanceof \DOMElement) {
-            throw new \InvalidArgumentException(sprintf('The selected node should be instance of DOMElement, got "%s".', get_debug_type($node)));
+            throw new \InvalidArgumentException(\sprintf('The selected node should be instance of DOMElement, got "%s".', get_debug_type($node)));
         }
 
         $form = new Form($node, $this->uri, $method, $this->baseHref);
@@ -922,18 +921,18 @@
     public static function xpathLiteral(string $s): string
     {
         if (!str_contains($s, "'")) {
-            return sprintf("'%s'", $s);
+            return \sprintf("'%s'", $s);
         }
 
         if (!str_contains($s, '"')) {
-            return sprintf('"%s"', $s);
+            return \sprintf('"%s"', $s);
         }
 
         $string = $s;
         $parts = [];
         while (true) {
             if (false !== $pos = strpos($string, "'")) {
-                $parts[] = sprintf("'%s'", substr($string, 0, $pos));
+                $parts[] = \sprintf("'%s'", substr($string, 0, $pos));
                 $parts[] = "\"'\"";
                 $string = substr($string, $pos + 1);
             } else {
@@ -942,7 +941,7 @@
             }
         }
 
-        return sprintf('concat(%s)', implode(', ', $parts));
+        return \sprintf('concat(%s)', implode(', ', $parts));
     }
 
     /**
@@ -1182,7 +1181,7 @@
         }
 
         // ask for one namespace, otherwise we'd get a collection with an item for each node
-        $namespaces = $domxpath->query(sprintf('(//namespace::*[name()="%s"])[last()]', $this->defaultNamespacePrefix === $prefix ? '' : $prefix));
+        $namespaces = $domxpath->query(\sprintf('(//namespace::*[name()="%s"])[last()]', $this->defaultNamespacePrefix === $prefix ? '' : $prefix));
 
         return $this->cachedNamespaces[$prefix] = ($node = $namespaces->item(0)) ? $node->nodeValue : null;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php	2026-05-20 10:56:49.000000000 +0200
@@ -82,7 +82,7 @@
     public function tick()
     {
         if ('checkbox' !== $this->type) {
-            throw new \LogicException(sprintf('You cannot tick "%s" as it is not a checkbox (%s).', $this->name, $this->type));
+            throw new \LogicException(\sprintf('You cannot tick "%s" as it is not a checkbox (%s).', $this->name, $this->type));
         }
 
         $this->setValue(true);
@@ -98,7 +98,7 @@
     public function untick()
     {
         if ('checkbox' !== $this->type) {
-            throw new \LogicException(sprintf('You cannot untick "%s" as it is not a checkbox (%s).', $this->name, $this->type));
+            throw new \LogicException(\sprintf('You cannot untick "%s" as it is not a checkbox (%s).', $this->name, $this->type));
         }
 
         $this->setValue(false);
@@ -122,16 +122,16 @@
         } else {
             if (\is_array($value)) {
                 if (!$this->multiple) {
-                    throw new \InvalidArgumentException(sprintf('The value for "%s" cannot be an array.', $this->name));
+                    throw new \InvalidArgumentException(\sprintf('The value for "%s" cannot be an array.', $this->name));
                 }
 
                 foreach ($value as $v) {
                     if (!$this->containsOption($v, $this->options)) {
-                        throw new \InvalidArgumentException(sprintf('Input "%s" cannot take "%s" as a value (possible values: "%s").', $this->name, $v, implode('", "', $this->availableOptionValues())));
+                        throw new \InvalidArgumentException(\sprintf('Input "%s" cannot take "%s" as a value (possible values: "%s").', $this->name, $v, implode('", "', $this->availableOptionValues())));
                     }
                 }
             } elseif (!$this->containsOption($value, $this->options)) {
-                throw new \InvalidArgumentException(sprintf('Input "%s" cannot take "%s" as a value (possible values: "%s").', $this->name, $value, implode('", "', $this->availableOptionValues())));
+                throw new \InvalidArgumentException(\sprintf('Input "%s" cannot take "%s" as a value (possible values: "%s").', $this->name, $value, implode('", "', $this->availableOptionValues())));
             }
 
             if ($this->multiple) {
@@ -156,14 +156,18 @@
     public function addChoice(\DOMElement $node): void
     {
         if (!$this->multiple && 'radio' !== $this->type) {
-            throw new \LogicException(sprintf('Unable to add a choice for "%s" as it is not multiple or is not a radio button.', $this->name));
+            throw new \LogicException(\sprintf('Unable to add a choice for "%s" as it is not multiple or is not a radio button.', $this->name));
         }
 
         $option = $this->buildOptionValue($node);
         $this->options[] = $option;
 
         if ($node->hasAttribute('checked')) {
-            $this->value = $option['value'];
+            if ($this->multiple) {
+                $this->value[] = $option['value'];
+            } else {
+                $this->value = $option['value'];
+            }
         }
     }
 
@@ -193,11 +197,11 @@
     protected function initialize()
     {
         if ('input' !== $this->node->nodeName && 'select' !== $this->node->nodeName) {
-            throw new \LogicException(sprintf('A ChoiceFormField can only be created from an input or select tag (%s given).', $this->node->nodeName));
+            throw new \LogicException(\sprintf('A ChoiceFormField can only be created from an input or select tag (%s given).', $this->node->nodeName));
         }
 
         if ('input' === $this->node->nodeName && 'checkbox' !== strtolower($this->node->getAttribute('type')) && 'radio' !== strtolower($this->node->getAttribute('type'))) {
-            throw new \LogicException(sprintf('A ChoiceFormField can only be created from an input tag with a type of checkbox or radio (given type is "%s").', $this->node->getAttribute('type')));
+            throw new \LogicException(\sprintf('A ChoiceFormField can only be created from an input tag with a type of checkbox or radio (given type is "%s").', $this->node->getAttribute('type')));
         }
 
         $this->value = null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Field/FileFormField.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Field/FileFormField.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Field/FileFormField.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Field/FileFormField.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
     {
         $codes = [\UPLOAD_ERR_INI_SIZE, \UPLOAD_ERR_FORM_SIZE, \UPLOAD_ERR_PARTIAL, \UPLOAD_ERR_NO_FILE, \UPLOAD_ERR_NO_TMP_DIR, \UPLOAD_ERR_CANT_WRITE, \UPLOAD_ERR_EXTENSION];
         if (!\in_array($error, $codes)) {
-            throw new \InvalidArgumentException(sprintf('The error code "%s" is not valid.', $error));
+            throw new \InvalidArgumentException(\sprintf('The error code "%s" is not valid.', $error));
         }
 
         $this->value = ['name' => '', 'type' => '', 'tmp_name' => '', 'error' => $error, 'size' => 0];
@@ -100,11 +100,11 @@
     protected function initialize()
     {
         if ('input' !== $this->node->nodeName) {
-            throw new \LogicException(sprintf('A FileFormField can only be created from an input tag (%s given).', $this->node->nodeName));
+            throw new \LogicException(\sprintf('A FileFormField can only be created from an input tag (%s given).', $this->node->nodeName));
         }
 
         if ('file' !== strtolower($this->node->getAttribute('type'))) {
-            throw new \LogicException(sprintf('A FileFormField can only be created from an input tag with a type of file (given type is "%s").', $this->node->getAttribute('type')));
+            throw new \LogicException(\sprintf('A FileFormField can only be created from an input tag with a type of file (given type is "%s").', $this->node->getAttribute('type')));
         }
 
         $this->setValue(null);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Field/FormField.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Field/FormField.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Field/FormField.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Field/FormField.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,7 +63,7 @@
         $xpath = new \DOMXPath($this->node->ownerDocument);
 
         if ($this->node->hasAttribute('id')) {
-            $labels = $xpath->query(sprintf('descendant::label[@for="%s"]', $this->node->getAttribute('id')));
+            $labels = $xpath->query(\sprintf('descendant::label[@for="%s"]', $this->node->getAttribute('id')));
             if ($labels->length > 0) {
                 return $labels->item(0);
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Field/InputFormField.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Field/InputFormField.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Field/InputFormField.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Field/InputFormField.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
     protected function initialize()
     {
         if ('input' !== $this->node->nodeName && 'button' !== $this->node->nodeName) {
-            throw new \LogicException(sprintf('An InputFormField can only be created from an input or button tag (%s given).', $this->node->nodeName));
+            throw new \LogicException(\sprintf('An InputFormField can only be created from an input or button tag (%s given).', $this->node->nodeName));
         }
 
         $type = strtolower($this->node->getAttribute('type'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Field/TextareaFormField.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Field/TextareaFormField.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Field/TextareaFormField.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Field/TextareaFormField.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
     protected function initialize()
     {
         if ('textarea' !== $this->node->nodeName) {
-            throw new \LogicException(sprintf('A TextareaFormField can only be created from a textarea tag (%s given).', $this->node->nodeName));
+            throw new \LogicException(\sprintf('A TextareaFormField can only be created from a textarea tag (%s given).', $this->node->nodeName));
         }
 
         $this->value = '';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/FormFieldRegistry.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/FormFieldRegistry.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/FormFieldRegistry.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/FormFieldRegistry.php	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
         while ($segments) {
             $path = array_shift($segments);
             if (!\is_array($target) || !\array_key_exists($path, $target)) {
-                throw new \InvalidArgumentException(sprintf('Unreachable field "%s".', $path));
+                throw new \InvalidArgumentException(\sprintf('Unreachable field "%s".', $path));
             }
             $target = &$target[$path];
         }
@@ -106,7 +106,7 @@
     public function set(string $name, mixed $value): void
     {
         $target = &$this->get($name);
-        if ((!\is_array($value) && $target instanceof Field\FormField) || $target instanceof Field\ChoiceFormField) {
+        if ((!\is_array($value) && $target instanceof FormField) || $target instanceof Field\ChoiceFormField) {
             $target->setValue($value);
         } elseif (\is_array($value)) {
             $registry = new static();
@@ -116,7 +116,7 @@
                 $this->set($k, $v);
             }
         } else {
-            throw new \InvalidArgumentException(sprintf('Cannot set value on a compound field "%s".', $name));
+            throw new \InvalidArgumentException(\sprintf('Cannot set value on a compound field "%s".', $name));
         }
     }
 
@@ -136,7 +136,7 @@
     private function walk(array $array, ?string $base = '', array &$output = []): array
     {
         foreach ($array as $k => $v) {
-            $path = empty($base) ? $k : sprintf('%s[%s]', $base, $k);
+            $path = empty($base) ? $k : \sprintf('%s[%s]', $base, $k);
             if (\is_array($v)) {
                 $this->walk($v, $path, $output);
             } else {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Form.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Form.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Form.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Form.php	2026-05-20 10:56:49.000000000 +0200
@@ -152,7 +152,7 @@
 
                 array_walk_recursive(
                     $expandedValue,
-                    function (&$value, $key) {
+                    static function (&$value, $key) {
                         if (ctype_digit($value) && ('size' === $key || 'error' === $key)) {
                             $value = (int) $value;
                         }
@@ -339,7 +339,7 @@
     public function disableValidation(): static
     {
         foreach ($this->fields->all() as $field) {
-            if ($field instanceof Field\ChoiceFormField) {
+            if ($field instanceof ChoiceFormField) {
                 $field->disableValidation();
             }
         }
@@ -365,7 +365,7 @@
                 $formId = $node->getAttribute('form');
                 $form = $node->ownerDocument->getElementById($formId);
                 if (null === $form) {
-                    throw new \LogicException(sprintf('The selected node has an invalid form attribute (%s).', $formId));
+                    throw new \LogicException(\sprintf('The selected node has an invalid form attribute (%s).', $formId));
                 }
                 $this->node = $form;
 
@@ -378,7 +378,7 @@
                 }
             } while ('form' !== $node->nodeName);
         } elseif ('form' !== $node->nodeName) {
-            throw new \LogicException(sprintf('Unable to submit on a "%s" tag.', $node->nodeName));
+            throw new \LogicException(\sprintf('Unable to submit on a "%s" tag.', $node->nodeName));
         }
 
         $this->node = $node;
@@ -423,7 +423,7 @@
             // corresponding elements are either descendants or have a matching HTML5 form attribute
             $formId = Crawler::xpathLiteral($this->node->getAttribute('id'));
 
-            $fieldNodes = $xpath->query(sprintf('( descendant::input[@form=%s] | descendant::button[@form=%1$s] | descendant::textarea[@form=%1$s] | descendant::select[@form=%1$s] | //form[@id=%1$s]//input[not(@form)] | //form[@id=%1$s]//button[not(@form)] | //form[@id=%1$s]//textarea[not(@form)] | //form[@id=%1$s]//select[not(@form)] )[( not(ancestor::template) or ancestor::turbo-stream )]', $formId));
+            $fieldNodes = $xpath->query(\sprintf('( descendant::input[@form=%s] | descendant::button[@form=%1$s] | descendant::textarea[@form=%1$s] | descendant::select[@form=%1$s] | //form[@id=%1$s]//input[not(@form)] | //form[@id=%1$s]//button[not(@form)] | //form[@id=%1$s]//textarea[not(@form)] | //form[@id=%1$s]//select[not(@form)] )[( not(ancestor::template) or ancestor::turbo-stream )]', $formId));
             foreach ($fieldNodes as $node) {
                 $this->addField($node);
             }
@@ -449,14 +449,14 @@
 
         $nodeName = $node->nodeName;
         if ('select' == $nodeName || 'input' == $nodeName && 'checkbox' == strtolower($node->getAttribute('type'))) {
-            $this->set(new Field\ChoiceFormField($node));
+            $this->set(new ChoiceFormField($node));
         } elseif ('input' == $nodeName && 'radio' == strtolower($node->getAttribute('type'))) {
             // there may be other fields with the same name that are no choice
             // fields already registered (see https://github.com/symfony/symfony/issues/11689)
             if ($this->has($node->getAttribute('name')) && $this->get($node->getAttribute('name')) instanceof ChoiceFormField) {
                 $this->get($node->getAttribute('name'))->addChoice($node);
             } else {
-                $this->set(new Field\ChoiceFormField($node));
+                $this->set(new ChoiceFormField($node));
             }
         } elseif ('input' == $nodeName && 'file' == strtolower($node->getAttribute('type'))) {
             $this->set(new Field\FileFormField($node));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Image.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Image.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Image.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Image.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
     protected function setNode(\DOMElement $node)
     {
         if ('img' !== $node->nodeName) {
-            throw new \LogicException(sprintf('Unable to visualize a "%s" tag.', $node->nodeName));
+            throw new \LogicException(\sprintf('Unable to visualize a "%s" tag.', $node->nodeName));
         }
 
         $this->node = $node;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Link.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Link.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Link.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Link.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
     protected function setNode(\DOMElement $node)
     {
         if ('a' !== $node->nodeName && 'area' !== $node->nodeName && 'link' !== $node->nodeName) {
-            throw new \LogicException(sprintf('Unable to navigate from a "%s" tag.', $node->nodeName));
+            throw new \LogicException(\sprintf('Unable to navigate from a "%s" tag.', $node->nodeName));
         }
 
         $this->node = $node;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerAnySelectorTextContains.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerAnySelectorTextContains.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerAnySelectorTextContains.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerAnySelectorTextContains.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,16 +29,16 @@
     public function toString(): string
     {
         if ($this->hasNode) {
-            return sprintf('the text of any node matching selector "%s" contains "%s"', $this->selector, $this->expectedText);
+            return \sprintf('the text of any node matching selector "%s" contains "%s"', $this->selector, $this->expectedText);
         }
 
-        return sprintf('the Crawler has a node matching selector "%s"', $this->selector);
+        return \sprintf('the Crawler has a node matching selector "%s"', $this->selector);
     }
 
     protected function matches($other): bool
     {
         if (!$other instanceof Crawler) {
-            throw new \InvalidArgumentException(sprintf('"%s" constraint expected an argument of type "%s", got "%s".', self::class, Crawler::class, get_debug_type($other)));
+            throw new \InvalidArgumentException(\sprintf('"%s" constraint expected an argument of type "%s", got "%s".', self::class, Crawler::class, get_debug_type($other)));
         }
 
         $other = $other->filter($this->selector);
@@ -50,10 +50,8 @@
 
         $this->hasNode = true;
 
-        $nodes = $other->each(fn (Crawler $node) => $node->text(null, true));
-        $matches = array_filter($nodes, function (string $node): bool {
-            return str_contains($node, $this->expectedText);
-        });
+        $nodes = $other->each(static fn (Crawler $node) => $node->text(null, true));
+        $matches = array_filter($nodes, fn (string $node): bool => str_contains($node, $this->expectedText));
 
         return 0 < \count($matches);
     }
@@ -61,7 +59,7 @@
     protected function failureDescription($other): string
     {
         if (!$other instanceof Crawler) {
-            throw new \InvalidArgumentException(sprintf('"%s" constraint expected an argument of type "%s", got "%s".', self::class, Crawler::class, get_debug_type($other)));
+            throw new \InvalidArgumentException(\sprintf('"%s" constraint expected an argument of type "%s", got "%s".', self::class, Crawler::class, get_debug_type($other)));
         }
 
         return $this->toString();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerAnySelectorTextSame.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerAnySelectorTextSame.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerAnySelectorTextSame.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerAnySelectorTextSame.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,13 +27,13 @@
 
     public function toString(): string
     {
-        return sprintf('has at least a node matching selector "%s" with content "%s"', $this->selector, $this->expectedText);
+        return \sprintf('has at least a node matching selector "%s" with content "%s"', $this->selector, $this->expectedText);
     }
 
     protected function matches($other): bool
     {
         if (!$other instanceof Crawler) {
-            throw new \InvalidArgumentException(sprintf('"%s" constraint expected an argument of type "%s", got "%s".', self::class, Crawler::class, get_debug_type($other)));
+            throw new \InvalidArgumentException(\sprintf('"%s" constraint expected an argument of type "%s", got "%s".', self::class, Crawler::class, get_debug_type($other)));
         }
 
         $other = $other->filter($this->selector);
@@ -41,7 +41,7 @@
             return false;
         }
 
-        $nodes = $other->each(fn (Crawler $node) => trim($node->text(null, true)));
+        $nodes = $other->each(static fn (Crawler $node) => trim($node->text(null, true)));
 
         return \in_array($this->expectedText, $nodes, true);
     }
@@ -49,7 +49,7 @@
     protected function failureDescription($other): string
     {
         if (!$other instanceof Crawler) {
-            throw new \InvalidArgumentException(sprintf('"%s" constraint expected an argument of type "%s", got "%s".', self::class, Crawler::class, get_debug_type($other)));
+            throw new \InvalidArgumentException(\sprintf('"%s" constraint expected an argument of type "%s", got "%s".', self::class, Crawler::class, get_debug_type($other)));
         }
 
         return 'the Crawler '.$this->toString();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorAttributeValueSame.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorAttributeValueSame.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorAttributeValueSame.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorAttributeValueSame.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
 
     public function toString(): string
     {
-        return sprintf('has a node matching selector "%s" with attribute "%s" of value "%s"', $this->selector, $this->attribute, $this->expectedText);
+        return \sprintf('has a node matching selector "%s" with attribute "%s" of value "%s"', $this->selector, $this->attribute, $this->expectedText);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorCount.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorCount.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorCount.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorCount.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
 
     public function toString(): string
     {
-        return sprintf('selector "%s" count is "%d"', $this->selector, $this->count);
+        return \sprintf('selector "%s" count is "%d"', $this->selector, $this->count);
     }
 
     /**
@@ -40,6 +40,6 @@
      */
     protected function failureDescription($crawler): string
     {
-        return sprintf('the Crawler selector "%s" was expected to be found %d time(s) but was found %d time(s)', $this->selector, $this->count, \count($crawler->filter($this->selector)));
+        return \sprintf('the Crawler selector "%s" was expected to be found %d time(s) but was found %d time(s)', $this->selector, $this->count, \count($crawler->filter($this->selector)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorExists.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorExists.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorExists.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorExists.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
 
     public function toString(): string
     {
-        return sprintf('matches selector "%s"', $this->selector);
+        return \sprintf('matches selector "%s"', $this->selector);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorTextContains.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorTextContains.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorTextContains.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorTextContains.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,10 +30,10 @@
     public function toString(): string
     {
         if ($this->hasNode) {
-            return sprintf('the text "%s" of the node matching selector "%s" contains "%s"', $this->nodeText, $this->selector, $this->expectedText);
+            return \sprintf('the text "%s" of the node matching selector "%s" contains "%s"', $this->nodeText, $this->selector, $this->expectedText);
         }
 
-        return sprintf('the Crawler has a node matching selector "%s"', $this->selector);
+        return \sprintf('the Crawler has a node matching selector "%s"', $this->selector);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorTextSame.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorTextSame.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorTextSame.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Test/Constraint/CrawlerSelectorTextSame.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
 
     public function toString(): string
     {
-        return sprintf('has a node matching selector "%s" with content "%s"', $this->selector, $this->expectedText);
+        return \sprintf('has a node matching selector "%s" with content "%s"', $this->selector, $this->expectedText);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/AbstractCrawlerTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/AbstractCrawlerTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/AbstractCrawlerTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/AbstractCrawlerTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -143,6 +143,18 @@
         $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addXmlContent() adds nodes from an XML string');
     }
 
+    public function testAddXmlContentDoesNotExpandExternalEntities()
+    {
+        $crawler = $this->createCrawler();
+        $crawler->addXmlContent(
+            '<?xml version="1.0"?>'
+            .'<!DOCTYPE r [<!ENTITY xxe SYSTEM "file:///etc/hosts">]>'
+            .'<r>&xxe;</r>'
+        );
+
+        $this->assertSame('', $crawler->text());
+    }
+
     public function testAddXmlContentCharset()
     {
         $crawler = $this->createCrawler();
@@ -266,7 +278,7 @@
 
     public function testEach()
     {
-        $data = $this->createTestCrawler()->filterXPath('//ul[1]/li')->each(fn ($node, $i) => $i.'-'.$node->text());
+        $data = $this->createTestCrawler()->filterXPath('//ul[1]/li')->each(static fn ($node, $i) => $i.'-'.$node->text());
 
         $this->assertEquals(['0-One', '1-Two', '2-Three'], $data, '->each() executes an anonymous function on each node of the list');
     }
@@ -292,7 +304,7 @@
     public function testReduce()
     {
         $crawler = $this->createTestCrawler()->filterXPath('//ul[1]/li');
-        $nodes = $crawler->reduce(fn ($node, $i) => 1 !== $i);
+        $nodes = $crawler->reduce(static fn ($node, $i) => 1 !== $i);
         $this->assertNotSame($nodes, $crawler, '->reduce() returns a new instance of a crawler');
         $this->assertInstanceOf(Crawler::class, $nodes, '->reduce() returns a new instance of a crawler');
 
@@ -452,10 +464,10 @@
         $this->assertCount(0, $crawler->filterXPath('/body'));
         $this->assertCount(1, $crawler->filterXPath('./body'));
         $this->assertCount(1, $crawler->filterXPath('.//body'));
-        $this->assertCount(5, $crawler->filterXPath('.//input'));
+        $this->assertCount(6, $crawler->filterXPath('.//input'));
         $this->assertCount(4, $crawler->filterXPath('//form')->filterXPath('//button | //input'));
         $this->assertCount(1, $crawler->filterXPath('body'));
-        $this->assertCount(6, $crawler->filterXPath('//button | //input'));
+        $this->assertCount(8, $crawler->filterXPath('//button | //input'));
         $this->assertCount(1, $crawler->filterXPath('//body'));
         $this->assertCount(1, $crawler->filterXPath('descendant-or-self::body'));
         $this->assertCount(1, $crawler->filterXPath('//div[@id="parent"]')->filterXPath('./div'), 'A child selection finds only the current div');
@@ -723,32 +735,39 @@
         $this->assertNotSame($crawler, $crawler->selectButton('FooValue'), '->selectButton() returns a new instance of a crawler');
         $this->assertInstanceOf(Crawler::class, $crawler->selectButton('FooValue'), '->selectButton() returns a new instance of a crawler');
 
-        $this->assertEquals(1, $crawler->selectButton('FooValue')->count(), '->selectButton() selects buttons');
-        $this->assertEquals(1, $crawler->selectButton('FooName')->count(), '->selectButton() selects buttons');
-        $this->assertEquals(1, $crawler->selectButton('FooId')->count(), '->selectButton() selects buttons');
-
-        $this->assertEquals(1, $crawler->selectButton('BarValue')->count(), '->selectButton() selects buttons');
-        $this->assertEquals(1, $crawler->selectButton('BarName')->count(), '->selectButton() selects buttons');
-        $this->assertEquals(1, $crawler->selectButton('BarId')->count(), '->selectButton() selects buttons');
+        $this->assertCount(1, $crawler->selectButton('FooValue'), '->selectButton() selects type-submit inputs by value');
+        $this->assertCount(1, $crawler->selectButton('FooName'), '->selectButton() selects type-submit inputs by name');
+        $this->assertCount(1, $crawler->selectButton('FooId'), '->selectButton() selects type-submit inputs by id');
+
+        $this->assertCount(1, $crawler->selectButton('BarValue'), '->selectButton() selects type-button inputs by value');
+        $this->assertCount(1, $crawler->selectButton('BarName'), '->selectButton() selects type-button inputs by name');
+        $this->assertCount(1, $crawler->selectButton('BarId'), '->selectButton() selects type-button inputs by id');
+
+        $this->assertCount(1, $crawler->selectButton('ImageAlt'), '->selectButton() selects type-image inputs by alt');
+
+        $this->assertCount(1, $crawler->selectButton('ButtonValue'), '->selectButton() selects buttons by value');
+        $this->assertCount(1, $crawler->selectButton('ButtonName'), '->selectButton() selects buttons by name');
+        $this->assertCount(1, $crawler->selectButton('ButtonId'), '->selectButton() selects buttons by id');
+        $this->assertCount(1, $crawler->selectButton('ButtonText'), '->selectButton() selects buttons by text content');
 
-        $this->assertEquals(1, $crawler->selectButton('FooBarValue')->count(), '->selectButton() selects buttons with form attribute too');
-        $this->assertEquals(1, $crawler->selectButton('FooBarName')->count(), '->selectButton() selects buttons with form attribute too');
+        $this->assertCount(1, $crawler->selectButton('FooBarValue'), '->selectButton() selects buttons with form attribute too');
+        $this->assertCount(1, $crawler->selectButton('FooBarName'), '->selectButton() selects buttons with form attribute too');
     }
 
     public function testSelectButtonWithSingleQuotesInNameAttribute()
     {
         $html = <<<'HTML'
-<html lang="en">
-<body>
-    <div id="action">
-        <a href="/index.php?r=site/login">Login</a>
-    </div>
-    <form id="login-form" action="/index.php?r=site/login" method="post">
-        <button type="submit" name="Click 'Here'">Submit</button>
-    </form>
-</body>
-</html>
-HTML;
+            <html lang="en">
+            <body>
+                <div id="action">
+                    <a href="/index.php?r=site/login">Login</a>
+                </div>
+                <form id="login-form" action="/index.php?r=site/login" method="post">
+                    <button type="submit" name="Click 'Here'">Submit</button>
+                </form>
+            </body>
+            </html>
+            HTML;
 
         $crawler = $this->createCrawler($this->getDoctype().$html);
 
@@ -758,17 +777,17 @@
     public function testSelectButtonWithDoubleQuotesInNameAttribute()
     {
         $html = <<<'HTML'
-<html lang="en">
-<body>
-    <div id="action">
-        <a href="/index.php?r=site/login">Login</a>
-    </div>
-    <form id="login-form" action="/index.php?r=site/login" method="post">
-        <button type="submit" name='Click "Here"'>Submit</button>
-    </form>
-</body>
-</html>
-HTML;
+            <html lang="en">
+            <body>
+                <div id="action">
+                    <a href="/index.php?r=site/login">Login</a>
+                </div>
+                <form id="login-form" action="/index.php?r=site/login" method="post">
+                    <button type="submit" name='Click "Here"'>Submit</button>
+                </form>
+            </body>
+            </html>
+            HTML;
 
         $crawler = $this->createCrawler($this->getDoctype().$html);
 
@@ -825,17 +844,17 @@
     public function testSelectLinkAndLinkFiltered()
     {
         $html = <<<'HTML'
-<html lang="en">
-<body>
-    <div id="action">
-        <a href="/index.php?r=site/login">Login</a>
-    </div>
-    <form id="login-form" action="/index.php?r=site/login" method="post">
-        <button type="submit">Submit</button>
-    </form>
-</body>
-</html>
-HTML;
+            <html lang="en">
+            <body>
+                <div id="action">
+                    <a href="/index.php?r=site/login">Login</a>
+                </div>
+                <form id="login-form" action="/index.php?r=site/login" method="post">
+                    <button type="submit">Submit</button>
+                </form>
+            </body>
+            </html>
+            HTML;
 
         $crawler = $this->createCrawler($this->getDoctype().$html);
         $filtered = $crawler->filterXPath("descendant-or-self::*[@id = 'login-form']");
@@ -972,16 +991,16 @@
     public function testMatch(string $mainNodeSelector, bool $expected, string $selector)
     {
         $html = <<<'HTML'
-<html lang="en">
-<body>
-    <div id="foo" class="foo other">
-        <div>
-            <div id="bar" class="bar other"></div>
-        </div>
-    </div>
-</body>
-</html>
-HTML;
+            <html lang="en">
+            <body>
+                <div id="foo" class="foo other">
+                    <div>
+                        <div id="bar" class="bar other"></div>
+                    </div>
+                </div>
+            </body>
+            </html>
+            HTML;
 
         $crawler = $this->createCrawler($this->getDoctype().$html);
         $node = $crawler->filter($mainNodeSelector);
@@ -991,23 +1010,23 @@
     public function testClosest()
     {
         $html = <<<'HTML'
-<html lang="en">
-<body>
-    <div class="lorem2 ok">
-        <div>
-            <div class="lorem3 ko"></div>
-        </div>
-        <div class="lorem1 ok">
-            <div id="foo" class="newFoo ok">
-                <div class="lorem1 ko"></div>
-            </div>
-        </div>
-    </div>
-    <div class="lorem2 ko">
-    </div>
-</body>
-</html>
-HTML;
+            <html lang="en">
+            <body>
+                <div class="lorem2 ok">
+                    <div>
+                        <div class="lorem3 ko"></div>
+                    </div>
+                    <div class="lorem1 ok">
+                        <div id="foo" class="newFoo ok">
+                            <div class="lorem1 ko"></div>
+                        </div>
+                    </div>
+                </div>
+                <div class="lorem2 ko">
+                </div>
+            </body>
+            </html>
+            HTML;
 
         $crawler = $this->createCrawler($this->getDoctype().$html);
         $foo = $crawler->filter('#foo');
@@ -1034,14 +1053,14 @@
     public function testClosestWithOrphanedNode()
     {
         $html = <<<'HTML'
-<html lang="en">
-<body>
-    <div id="foo" class="newFoo ok">
-        <div class="lorem1 ko"></div>
-    </div>
-</body>
-</html>
-HTML;
+            <html lang="en">
+            <body>
+                <div id="foo" class="newFoo ok">
+                    <div class="lorem1 ko"></div>
+                </div>
+            </body>
+            </html>
+            HTML;
 
         $crawler = $this->createCrawler($this->getDoctype().$html);
         $foo = $crawler->filter('#foo');
@@ -1057,17 +1076,17 @@
     public function testOuterHtml()
     {
         $html = <<<'HTML'
-<html lang="en">
-<body>
-    <div class="foo">
-    <ul>
-        <li>1</li>
-        <li>2</li>
-        <li>3</li>
-    </ul>
-</body>
-</html>
-HTML;
+            <html lang="en">
+            <body>
+                <div class="foo">
+                <ul>
+                    <li>1</li>
+                    <li>2</li>
+                    <li>3</li>
+                </ul>
+            </body>
+            </html>
+            HTML;
 
         $crawler = $this->createCrawler($this->getDoctype().$html);
         $bar = $crawler->filter('ul');
@@ -1144,20 +1163,20 @@
     public function testFilteredChildren()
     {
         $html = <<<'HTML'
-<html lang="en">
-<body>
-    <div id="foo">
-        <div class="lorem">
-            <p class="lorem"></p>
-        </div>
-        <div class="lorem">
-            <span class="lorem"></span>
-        </div>
-        <span class="ipsum"></span>
-    </div>
-</body>
-</html>
-HTML;
+            <html lang="en">
+            <body>
+                <div id="foo">
+                    <div class="lorem">
+                        <p class="lorem"></p>
+                    </div>
+                    <div class="lorem">
+                        <span class="lorem"></span>
+                    </div>
+                    <span class="ipsum"></span>
+                </div>
+            </body>
+            </html>
+            HTML;
 
         $crawler = $this->createCrawler($this->getDoctype().$html);
         $foo = $crawler->filter('#foo');
@@ -1322,6 +1341,9 @@
                     <input type="submit" value="FooBarValue" name="FooBarName" form="FooFormId" />
                     <input type="text" value="FooTextValue" name="FooTextName" form="FooFormId" />
 
+                    <input type="image" alt="ImageAlt" form="FooFormId">
+                    <button form="FooFormId">ButtonText</button>
+
                     <ul class="first">
                         <li class="first">One</li>
                         <li>Two</li>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/Field/ChoiceFormFieldTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/Field/ChoiceFormFieldTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/Field/ChoiceFormFieldTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/Field/ChoiceFormFieldTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -128,6 +128,22 @@
         $this->assertTrue($field->isDisabled(), '->isDisabled() returns true for selects with a disabled attribute');
     }
 
+    public function testAddChoiceOnMultipleSelectKeepsExistingValues()
+    {
+        $node = $this->createSelectNode(['foo' => true, 'bar' => false], ['multiple' => 'multiple']);
+        $field = new ChoiceFormField($node);
+
+        $this->assertEquals(['foo'], $field->getValue());
+
+        $document = new \DOMDocument();
+        $newOption = $document->createElement('option', 'baz');
+        $newOption->setAttribute('value', 'baz');
+        $newOption->setAttribute('checked', 'checked');
+        $field->addChoice($newOption);
+
+        $this->assertEquals(['foo', 'baz'], $field->getValue());
+    }
+
     public function testMultipleSelects()
     {
         $node = $this->createSelectNode(['foo' => false, 'bar' => false], ['multiple' => 'multiple']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/FormTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/FormTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/FormTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/FormTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -206,7 +206,7 @@
         $this->assertEquals(
             $values,
             array_map(
-                function ($field) {
+                static function ($field) {
                     $class = $field::class;
 
                     return [substr($class, strrpos($class, '\\') + 1), $field->getValue()];
@@ -252,7 +252,7 @@
                 'appends the submitted button value but not other submit buttons',
                 '<input type="submit" name="bar" value="bar" />
                  <input type="submit" name="foobar" value="foobar" />',
-                 ['foobar' => ['InputFormField', 'foobar']],
+                ['foobar' => ['InputFormField', 'foobar']],
             ],
             [
                 'turns an image input into x and y fields',
@@ -263,38 +263,38 @@
                 'returns textareas',
                 '<textarea name="foo">foo</textarea>
                  <input type="submit" />',
-                 ['foo' => ['TextareaFormField', 'foo']],
+                ['foo' => ['TextareaFormField', 'foo']],
             ],
             [
                 'returns inputs',
                 '<input type="text" name="foo" value="foo" />
                  <input type="submit" />',
-                 ['foo' => ['InputFormField', 'foo']],
+                ['foo' => ['InputFormField', 'foo']],
             ],
             [
                 'returns checkboxes',
                 '<input type="checkbox" name="foo" value="foo" checked="checked" />
                  <input type="submit" />',
-                 ['foo' => ['ChoiceFormField', 'foo']],
+                ['foo' => ['ChoiceFormField', 'foo']],
             ],
             [
                 'returns not-checked checkboxes',
                 '<input type="checkbox" name="foo" value="foo" />
                  <input type="submit" />',
-                 ['foo' => ['ChoiceFormField', false]],
+                ['foo' => ['ChoiceFormField', false]],
             ],
             [
                 'returns radio buttons',
                 '<input type="radio" name="foo" value="foo" />
                  <input type="radio" name="foo" value="bar" checked="bar" />
                  <input type="submit" />',
-                 ['foo' => ['ChoiceFormField', 'bar']],
+                ['foo' => ['ChoiceFormField', 'bar']],
             ],
             [
                 'returns file inputs',
                 '<input type="file" name="foo" />
                  <input type="submit" />',
-                 ['foo' => ['FileFormField', ['name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0]]],
+                ['foo' => ['FileFormField', ['name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0]]],
             ],
         ];
     }
@@ -830,7 +830,7 @@
             3 => 3,
             'bar' => [
                 'baz' => 'fbb',
-             ],
+            ],
         ]);
     }
 
@@ -886,13 +886,12 @@
         ;
 
         $field
-            ->expects($this->any())
+            ->expects($this->atLeastOnce())
             ->method('getName')
             ->willReturn($name)
         ;
 
         $field
-            ->expects($this->any())
             ->method('getValue')
             ->willReturn($value)
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/ImageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/ImageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/ImageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/ImageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
     public function testGetUri($url, $currentUri, $expected)
     {
         $dom = new \DOMDocument();
-        $dom->loadHTML(sprintf('<html><img alt="foo" src="%s" /></html>', $url));
+        $dom->loadHTML(\sprintf('<html><img alt="foo" src="%s" /></html>', $url));
         $image = new Image($dom->getElementsByTagName('img')->item(0), $currentUri);
 
         $this->assertEquals($expected, $image->getUri());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/LinkTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/LinkTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/LinkTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/LinkTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
     public function testGetUri($url, $currentUri, $expected)
     {
         $dom = new \DOMDocument();
-        $dom->loadHTML(sprintf('<html><a href="%s">foo</a></html>', $url));
+        $dom->loadHTML(\sprintf('<html><a href="%s">foo</a></html>', $url));
         $link = new Link($dom->getElementsByTagName('a')->item(0), $currentUri);
 
         $this->assertEquals($expected, $link->getUri());
@@ -87,7 +87,7 @@
     public function testGetUriOnArea($url, $currentUri, $expected)
     {
         $dom = new \DOMDocument();
-        $dom->loadHTML(sprintf('<html><map><area href="%s" /></map></html>', $url));
+        $dom->loadHTML(\sprintf('<html><map><area href="%s" /></map></html>', $url));
         $link = new Link($dom->getElementsByTagName('area')->item(0), $currentUri);
 
         $this->assertEquals($expected, $link->getUri());
@@ -99,7 +99,7 @@
     public function testGetUriOnLink($url, $currentUri, $expected)
     {
         $dom = new \DOMDocument();
-        $dom->loadHTML(sprintf('<html><head><link href="%s" /></head></html>', $url));
+        $dom->loadHTML(\sprintf('<html><head><link href="%s" /></head></html>', $url));
         $link = new Link($dom->getElementsByTagName('link')->item(0), $currentUri);
 
         $this->assertEquals($expected, $link->getUri());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/NativeParserCrawlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/NativeParserCrawlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/DomCrawler/Tests/NativeParserCrawlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/DomCrawler/Tests/NativeParserCrawlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,20 +24,22 @@
 
         $crawler = $this->createCrawler();
         $crawler->addHtmlContent(<<<'EOF'
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-    <head>
-    </head>
-    <body>
-        <nav><a href="#"><a href="#"></nav>
-    </body>
-</html>
-EOF
-            , 'UTF-8');
+            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+            <html>
+                <head>
+                </head>
+                <body>
+                    <div><a href="#"></div>
+                </body>
+                </body>
+            </html>
+            EOF,
+            'UTF-8'
+        );
 
         $errors = libxml_get_errors();
         $this->assertCount(1, $errors);
-        $this->assertEquals("Tag nav invalid\n", $errors[0]->message);
+        $this->assertEquals("Unexpected end tag : body\n", $errors[0]->message);
 
         libxml_clear_errors();
         libxml_use_internal_errors($internalErrors);
@@ -49,16 +51,17 @@
 
         $crawler = $this->createCrawler();
         $crawler->addXmlContent(<<<'EOF'
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-    <head>
-    </head>
-    <body>
-        <nav><a href="#"><a href="#"></nav>
-    </body>
-</html>
-EOF
-            , 'UTF-8');
+            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+            <html>
+                <head>
+                </head>
+                <body>
+                    <nav><a href="#"><a href="#"></nav>
+                </body>
+            </html>
+            EOF,
+            'UTF-8'
+        );
 
         $this->assertGreaterThan(1, libxml_get_errors());
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Command/DebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Command/DebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Command/DebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Command/DebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,15 +58,15 @@
                 new InputArgument('filter', InputArgument::OPTIONAL, 'The name of an environment variable or a filter.', null, $this->getAvailableVars(...)),
             ])
             ->setHelp(<<<'EOT'
-The <info>%command.full_name%</info> command displays all the environment variables configured by dotenv:
+                The <info>%command.full_name%</info> command displays all the environment variables configured by dotenv:
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-To get specific variables, specify its full or partial name:
+                To get specific variables, specify its full or partial name:
 
-    <info>php %command.full_name% FOO_BAR</info>
+                    <info>php %command.full_name% FOO_BAR</info>
 
-EOT
+                EOT
             );
     }
 
@@ -85,7 +85,7 @@
             $dotenvPath = $this->projectDirectory;
 
             if (is_file($composerFile = $this->projectDirectory.'/composer.json')) {
-                $runtimeConfig = (json_decode(file_get_contents($composerFile), true))['extra']['runtime'] ?? [];
+                $runtimeConfig = json_decode(file_get_contents($composerFile), true)['extra']['runtime'] ?? [];
 
                 if (isset($runtimeConfig['dotenv_path'])) {
                     $dotenvPath = $this->projectDirectory.'/'.$runtimeConfig['dotenv_path'];
@@ -98,18 +98,18 @@
         $envFiles = $this->getEnvFiles($filePath);
         $availableFiles = array_filter($envFiles, 'is_file');
 
-        if (\in_array(sprintf('%s.local.php', $filePath), $availableFiles, true)) {
-            $io->warning(sprintf('Due to existing dump file (%s.local.php) all other dotenv files are skipped.', $this->getRelativeName($filePath)));
+        if (\in_array(\sprintf('%s.local.php', $filePath), $availableFiles, true)) {
+            $io->warning(\sprintf('Due to existing dump file (%s.local.php) all other dotenv files are skipped.', $this->getRelativeName($filePath)));
         }
 
-        if (is_file($filePath) && is_file(sprintf('%s.dist', $filePath))) {
-            $io->warning(sprintf('The file %s.dist gets skipped due to the existence of %1$s.', $this->getRelativeName($filePath)));
+        if (is_file($filePath) && is_file(\sprintf('%s.dist', $filePath))) {
+            $io->warning(\sprintf('The file %s.dist gets skipped due to the existence of %1$s.', $this->getRelativeName($filePath)));
         }
 
         $io->section('Scanned Files (in descending priority)');
         $io->listing(array_map(fn (string $envFile) => \in_array($envFile, $availableFiles, true)
-            ? sprintf('<fg=green>✓</> %s', $this->getRelativeName($envFile))
-            : sprintf('<fg=red>⨯</> %s', $this->getRelativeName($envFile)), $envFiles));
+            ? \sprintf('<fg=green>✓</> %s', $this->getRelativeName($envFile))
+            : \sprintf('<fg=red>⨯</> %s', $this->getRelativeName($envFile)), $envFiles));
 
         $nameFilter = $input->getArgument('filter');
         $variables = $this->getVariables($availableFiles, $nameFilter);
@@ -124,7 +124,7 @@
 
             $io->comment('Note that values might be different between web and CLI.');
         } else {
-            $io->warning(sprintf('No variables match the given filter "%s".', $nameFilter));
+            $io->warning(\sprintf('No variables match the given filter "%s".', $nameFilter));
         }
 
         return 0;
@@ -188,17 +188,17 @@
     private function getEnvFiles(string $filePath): array
     {
         $files = [
-            sprintf('%s.local.php', $filePath),
-            sprintf('%s.%s.local', $filePath, $this->kernelEnvironment),
-            sprintf('%s.%s', $filePath, $this->kernelEnvironment),
+            \sprintf('%s.local.php', $filePath),
+            \sprintf('%s.%s.local', $filePath, $this->kernelEnvironment),
+            \sprintf('%s.%s', $filePath, $this->kernelEnvironment),
         ];
 
         if ('test' !== $this->kernelEnvironment) {
-            $files[] = sprintf('%s.local', $filePath);
+            $files[] = \sprintf('%s.local', $filePath);
         }
 
-        if (!is_file($filePath) && is_file(sprintf('%s.dist', $filePath))) {
-            $files[] = sprintf('%s.dist', $filePath);
+        if (!is_file($filePath) && is_file(\sprintf('%s.dist', $filePath))) {
+            $files[] = \sprintf('%s.dist', $filePath);
         } else {
             $files[] = $filePath;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Command/DotenvDumpCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Command/DotenvDumpCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Command/DotenvDumpCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Command/DotenvDumpCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,13 @@
 /**
  * A console command to compile .env files into a PHP-optimized file called .env.local.php.
  *
- * @internal
+ * To use this command, first register it explicitly as a service, e.g in your services.yaml file:
+ *
+ *     ```yaml
+ *     services:
+ *         # [...]
+ *         Symfony\Component\Dotenv\Command\DotenvDumpCommand: ~
+ *     ```
  */
 #[Autoconfigure(bind: ['$projectDir' => '%kernel.project_dir%', '$defaultEnv' => '%kernel.environment%'])]
 #[AsCommand(name: 'dotenv:dump', description: 'Compile .env files to .env.local.php')]
@@ -48,10 +54,10 @@
             ])
             ->addOption('empty', null, InputOption::VALUE_NONE, 'Ignore the content of .env files')
             ->setHelp(<<<'EOT'
-The <info>%command.name%</info> command compiles .env files into a PHP-optimized file called .env.local.php.
+                The <info>%command.name%</info> command compiles .env files into a PHP-optimized file called .env.local.php.
 
-    <info>%command.full_name%</info>
-EOT
+                    <info>%command.full_name%</info>
+                EOT
             )
         ;
     }
@@ -79,16 +85,16 @@
 
         $vars = var_export($vars, true);
         $vars = <<<EOF
-<?php
+            <?php
 
-// This file was generated by running "php bin/console dotenv:dump $env"
+            // This file was generated by running "php bin/console dotenv:dump $env"
 
-return $vars;
+            return $vars;
 
-EOF;
+            EOF;
         file_put_contents($dotenvPath.'.local.php', $vars, \LOCK_EX);
 
-        $output->writeln(sprintf('Successfully dumped .env files in <info>.env.local.php</> for the <info>%s</> environment.', $env));
+        $output->writeln(\sprintf('Successfully dumped .env files in <info>.env.local.php</> for the <info>%s</> environment.', $env));
 
         return 0;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Dotenv.php symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Dotenv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Dotenv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Dotenv.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use Symfony\Component\Dotenv\Exception\FormatException;
 use Symfony\Component\Dotenv\Exception\FormatExceptionContext;
 use Symfony\Component\Dotenv\Exception\PathException;
+use Symfony\Component\Dotenv\Exception\VariableCircularReferenceException;
 use Symfony\Component\Process\Exception\ExceptionInterface as ProcessException;
 use Symfony\Component\Process\Process;
 
@@ -35,10 +36,14 @@
     private string $data;
     private int $end;
     private array $values = [];
+    private array $overriddenValues = [];
+    private array $loadedRawVars = [];
     private string $envKey;
     private string $debugKey;
     private array $prodEnvs = ['prod'];
     private bool $usePutenv = false;
+    private bool $deferPutenv = false;
+    private array $pendingPutenv = [];
 
     public function __construct(string $envKey = 'APP_ENV', string $debugKey = 'APP_DEBUG')
     {
@@ -80,7 +85,13 @@
      */
     public function load(string $path, string ...$extraPaths): void
     {
-        $this->doLoad(false, \func_get_args());
+        $this->deferPutenv = true;
+        try {
+            $this->doLoad(false, \func_get_args());
+            $this->resolveLoadedVars();
+        } finally {
+            $this->deferPutenv = false;
+        }
     }
 
     /**
@@ -100,33 +111,47 @@
      */
     public function loadEnv(string $path, ?string $envKey = null, string $defaultEnv = 'dev', array $testEnvs = ['test'], bool $overrideExistingVars = false): void
     {
-        $k = $envKey ?? $this->envKey;
+        $this->deferPutenv = true;
+        try {
+            $k = $envKey ?? $this->envKey;
 
-        if (is_file($path) || !is_file($p = "$path.dist")) {
-            $this->doLoad($overrideExistingVars, [$path]);
-        } else {
-            $this->doLoad($overrideExistingVars, [$p]);
-        }
+            if (is_file($path) || !is_file($p = "$path.dist")) {
+                $this->doLoad($overrideExistingVars, [$path]);
+            } else {
+                $this->doLoad($overrideExistingVars, [$p]);
+            }
 
-        if (null === $env = $_SERVER[$k] ?? $_ENV[$k] ?? null) {
-            $this->populate([$k => $env = $defaultEnv], $overrideExistingVars);
-        }
+            if (null === $env = $_SERVER[$k] ?? $_ENV[$k] ?? null) {
+                $this->populate([$k => $env = $defaultEnv], $overrideExistingVars);
+            } elseif (str_contains($env, '$') || str_contains($env, "\x00") || str_contains($env, '\\')) {
+                $env = $this->resolveEnvKey($env, $k);
+            }
 
-        if (!\in_array($env, $testEnvs, true) && is_file($p = "$path.local")) {
-            $this->doLoad($overrideExistingVars, [$p]);
-            $env = $_SERVER[$k] ?? $_ENV[$k] ?? $env;
-        }
+            if (!\in_array($env, $testEnvs, true) && is_file($p = "$path.local")) {
+                $this->doLoad($overrideExistingVars, [$p]);
+                $env = $_SERVER[$k] ?? $_ENV[$k] ?? $env;
+                if (str_contains($env, '$') || str_contains($env, "\x00") || str_contains($env, '\\')) {
+                    $env = $this->resolveEnvKey($env, $k);
+                }
+            }
 
-        if ('local' === $env) {
-            return;
-        }
+            if ('local' === $env) {
+                return;
+            }
 
-        if (is_file($p = "$path.$env")) {
-            $this->doLoad($overrideExistingVars, [$p]);
-        }
+            if (is_file($p = "$path.$env")) {
+                $this->doLoad($overrideExistingVars, [$p]);
+            }
 
-        if (is_file($p = "$path.$env.local")) {
-            $this->doLoad($overrideExistingVars, [$p]);
+            if (is_file($p = "$path.$env.local")) {
+                $this->doLoad($overrideExistingVars, [$p]);
+            }
+        } finally {
+            try {
+                $this->resolveLoadedVars();
+            } finally {
+                $this->deferPutenv = false;
+            }
         }
     }
 
@@ -167,7 +192,13 @@
      */
     public function overload(string $path, string ...$extraPaths): void
     {
-        $this->doLoad(true, \func_get_args());
+        $this->deferPutenv = true;
+        try {
+            $this->doLoad(true, \func_get_args());
+            $this->resolveLoadedVars();
+        } finally {
+            $this->deferPutenv = false;
+        }
     }
 
     /**
@@ -193,7 +224,11 @@
             }
 
             if ($this->usePutenv) {
-                putenv("$name=$value");
+                if ($this->deferPutenv) {
+                    $this->pendingPutenv[$name] = true;
+                } else {
+                    putenv("$name=$value");
+                }
             }
 
             $_ENV[$name] = $value;
@@ -236,6 +271,9 @@
         $this->values = [];
         $name = '';
 
+        $loadedVars = array_flip(explode(',', $_SERVER['SYMFONY_DOTENV_VARS'] ?? $_ENV['SYMFONY_DOTENV_VARS'] ?? ''));
+        unset($loadedVars['']);
+
         $this->skipEmptyLines();
 
         while ($this->cursor < $this->end) {
@@ -246,7 +284,7 @@
                     break;
 
                 case self::STATE_VALUE:
-                    $this->values[$name] = $this->lexValue();
+                    $this->values[$name] = $this->resolveValue($this->lexValue(), $loadedVars);
                     $state = self::STATE_VARNAME;
                     break;
             }
@@ -264,6 +302,57 @@
         }
     }
 
+    private function parseRaw(string $data, string $path = '.env'): array
+    {
+        $this->path = $path;
+        $this->data = str_replace(["\r\n", "\r"], "\n", $data);
+        $this->lineno = 1;
+        $this->cursor = 0;
+        $this->end = \strlen($this->data);
+        $state = self::STATE_VARNAME;
+        $this->values = [];
+        $name = '';
+
+        $this->skipEmptyLines();
+
+        while ($this->cursor < $this->end) {
+            switch ($state) {
+                case self::STATE_VARNAME:
+                    $name = $this->lexVarname();
+                    $state = self::STATE_VALUE;
+                    break;
+
+                case self::STATE_VALUE:
+                    $this->values[$name] = $this->lexValue();
+                    $state = self::STATE_VARNAME;
+                    break;
+            }
+        }
+
+        if (self::STATE_VALUE === $state) {
+            $this->values[$name] = '';
+        }
+
+        try {
+            return $this->values;
+        } finally {
+            $this->values = [];
+        }
+    }
+
+    /**
+     * Resolves a raw value by expanding commands, variables, backslash escapes,
+     * and restoring literal $ markers.
+     */
+    private function resolveValue(string $value, array $loadedVars): string
+    {
+        $resolved = $this->resolveCommands($value, $loadedVars);
+        $resolved = $this->resolveVariables($resolved, $loadedVars);
+        $resolved = str_replace('\\\\', '\\', $resolved);
+
+        return str_replace("\x00", '$', $resolved);
+    }
+
     private function lexVarname(): string
     {
         // var name + optional export
@@ -305,8 +394,6 @@
             throw $this->createFormatException('Whitespace are not supported before the value');
         }
 
-        $loadedVars = array_flip(explode(',', $_SERVER['SYMFONY_DOTENV_VARS'] ?? $_ENV['SYMFONY_DOTENV_VARS'] ?? ''));
-        unset($loadedVars['']);
         $v = '';
 
         do {
@@ -321,7 +408,10 @@
                     }
                 } while ("'" !== $this->data[$this->cursor + $len]);
 
-                $v .= substr($this->data, 1 + $this->cursor, $len - 1);
+                // In single-quoted strings, $ is literal and \ has no special meaning.
+                // Double backslashes so they survive the unescape in resolveValue(),
+                // and mark $ as \x00 so it's not treated as a variable reference.
+                $v .= str_replace(['\\', '$'], ['\\\\', "\x00"], substr($this->data, 1 + $this->cursor, $len - 1));
                 $this->cursor += 1 + $len;
             } elseif ('"' === $this->data[$this->cursor]) {
                 $value = '';
@@ -340,11 +430,8 @@
                 }
                 ++$this->cursor;
                 $value = str_replace(['\\"', '\r', '\n'], ['"', "\r", "\n"], $value);
-                $resolvedValue = $value;
-                $resolvedValue = $this->resolveCommands($resolvedValue, $loadedVars);
-                $resolvedValue = $this->resolveVariables($resolvedValue, $loadedVars);
-                $resolvedValue = str_replace('\\\\', '\\', $resolvedValue);
-                $v .= $resolvedValue;
+                // Mark escaped $ (\$) as \x00 so it's treated as literal
+                $v .= $this->protectEscapedDollars($value);
             } else {
                 $value = '';
                 $prevChr = $this->data[$this->cursor - 1];
@@ -363,12 +450,9 @@
                     ++$this->cursor;
                 }
                 $value = rtrim($value);
-                $resolvedValue = $value;
-                $resolvedValue = $this->resolveCommands($resolvedValue, $loadedVars);
-                $resolvedValue = $this->resolveVariables($resolvedValue, $loadedVars);
-                $resolvedValue = str_replace('\\\\', '\\', $resolvedValue);
+                $resolvedValue = $this->protectEscapedDollars($value);
 
-                if ($resolvedValue === $value && preg_match('/\s+/', $value)) {
+                if ($resolvedValue === $value && preg_match('/\s+/', $value) && !str_contains($value, '$')) {
                     throw $this->createFormatException('A value containing spaces must be surrounded by quotes');
                 }
 
@@ -385,6 +469,26 @@
         return $v;
     }
 
+    /**
+     * Converts \$ (escaped dollar) to \x00 (literal marker), handling
+     * even/odd backslash counts correctly: \$ → \x00, \\$ → \\$ (unchanged).
+     */
+    private function protectEscapedDollars(string $value): string
+    {
+        if (!str_contains($value, '$')) {
+            return $value;
+        }
+
+        return preg_replace_callback('/\\\\+\$/', static function ($m) {
+            $bs = substr($m[0], 0, -1);
+            if (1 === \strlen($bs) % 2) {
+                return substr($bs, 0, -1)."\x00";
+            }
+
+            return $m[0];
+        }, $value);
+    }
+
     private function lexNestedExpression(): string
     {
         ++$this->cursor;
@@ -460,7 +564,7 @@
             try {
                 $process->mustRun();
             } catch (ProcessException) {
-                throw $this->createFormatException(sprintf('Issue expanding a command (%s)', $process->getErrorOutput()));
+                throw $this->createFormatException(\sprintf('Issue expanding a command (%s)', $process->getErrorOutput()));
             }
 
             return preg_replace('/[\r\n]+$/', '', $process->getOutput());
@@ -515,7 +619,7 @@
             if ('' === $value && isset($matches['default_value']) && '' !== $matches['default_value']) {
                 $unsupportedChars = strpbrk($matches['default_value'], '\'"{$');
                 if (false !== $unsupportedChars) {
-                    throw $this->createFormatException(sprintf('Unsupported character "%s" found in the default value of variable "$%s".', $unsupportedChars[0], $name));
+                    throw $this->createFormatException(\sprintf('Unsupported character "%s" found in the default value of variable "$%s".', $unsupportedChars[0], $name));
                 }
 
                 $value = substr($matches['default_value'], 2);
@@ -559,7 +663,175 @@
                 throw new FormatException('Loading files starting with a byte-order-mark (BOM) is not supported.', new FormatExceptionContext($data, $path, 1, 0));
             }
 
-            $this->populate($this->parse($data, $path), $overrideExistingVars);
+            if (str_contains($data, "\0")) {
+                throw new FormatException('Loading files containing NUL bytes is not supported.', new FormatExceptionContext($data, $path, 1, 0));
+            }
+
+            $values = $this->parseRaw($data, $path);
+
+            $loadedVars = array_flip(explode(',', $_SERVER['SYMFONY_DOTENV_VARS'] ?? $_ENV['SYMFONY_DOTENV_VARS'] ?? ''));
+            unset($loadedVars['']);
+
+            foreach ($values as $name => $_) {
+                $alreadyExternal = isset($_ENV[$name]) || isset($_SERVER[$name]) && !str_starts_with($name, 'HTTP_');
+                if (!isset($this->overriddenValues[$name]) && $alreadyExternal) {
+                    $this->overriddenValues[$name] = $_ENV[$name] ?? $_SERVER[$name];
+                }
+                if (isset($loadedVars[$name]) || $overrideExistingVars || !$alreadyExternal) {
+                    $this->loadedRawVars[$name] = true;
+                }
+            }
+
+            $this->populate($values, $overrideExistingVars);
+        }
+    }
+
+    /**
+     * Eagerly resolves a raw env key value so that loadEnv() can determine
+     * which additional .env files to load before full deferred resolution.
+     */
+    private function resolveEnvKey(string $value, string $name): string
+    {
+        $loadedVars = array_flip(explode(',', $_SERVER['SYMFONY_DOTENV_VARS'] ?? $_ENV['SYMFONY_DOTENV_VARS'] ?? ''));
+        unset($loadedVars['']);
+
+        // Save and clear own value so self-referencing defaults work
+        $envBackup = $_ENV[$name] ?? null;
+        $serverBackup = $_SERVER[$name] ?? null;
+        unset($_ENV[$name], $_SERVER[$name]);
+        if ($this->usePutenv) {
+            $getenvBackup = (string) getenv($name);
+            putenv($name);
+        }
+
+        $this->values = [];
+        $this->path = '';
+        $this->data = '';
+        $this->lineno = 0;
+        $this->cursor = 0;
+        $this->end = 0;
+
+        $resolved = $this->resolveCommands($value, $loadedVars);
+        $resolved = $this->resolveVariables($resolved, $loadedVars);
+        $resolved = str_replace(["\x00", '\\\\'], ['$', '\\'], $resolved);
+
+        if (null !== $envBackup) {
+            $_ENV[$name] = $envBackup;
+        }
+        if (null !== $serverBackup) {
+            $_SERVER[$name] = $serverBackup;
         }
+        if ($this->usePutenv) {
+            putenv("$name=$getenvBackup");
+        }
+
+        $this->values = [];
+
+        return $resolved;
+    }
+
+    private function resolveLoadedVars(): void
+    {
+        $loadedVars = array_flip(explode(',', $_SERVER['SYMFONY_DOTENV_VARS'] ?? $_ENV['SYMFONY_DOTENV_VARS'] ?? ''));
+        unset($loadedVars['']);
+
+        $rawVars = $this->loadedRawVars;
+        $this->loadedRawVars = [];
+        unset($rawVars['SYMFONY_DOTENV_VARS']);
+
+        $this->values = [];
+        $this->path = '';
+        $this->data = '';
+        $this->lineno = 0;
+        $this->cursor = 0;
+        $this->end = 0;
+
+        // Detect variables that were originally defined as self-referencing
+        // (e.g. MY_VAR="${MY_VAR:-default}") so their own raw value is hidden
+        // during resolution, allowing the default to trigger correctly.
+        $selfReferencingVars = [];
+        foreach ($rawVars as $name => $_) {
+            $value = $_ENV[$name] ?? '';
+            if (str_contains($value, '$') && preg_match('/\$\{?'.preg_quote($name, '/').'(?![A-Za-z0-9_])/', $value)) {
+                $selfReferencingVars[$name] = true;
+            }
+        }
+
+        for ($pass = 0; $pass < 5; ++$pass) {
+            $resolved = [];
+            foreach ($rawVars as $name => $_) {
+                if (!str_contains($value = $_ENV[$name] ?? '', '$')) {
+                    continue;
+                }
+
+                if (isset($selfReferencingVars[$name])) {
+                    $envBackup = $_ENV[$name] ?? null;
+                    $serverBackup = $_SERVER[$name] ?? null;
+                    if (isset($this->overriddenValues[$name])) {
+                        $_ENV[$name] = $this->overriddenValues[$name];
+                        $_SERVER[$name] = $this->overriddenValues[$name];
+                    } else {
+                        unset($_ENV[$name], $_SERVER[$name]);
+                    }
+                    if ($this->usePutenv) {
+                        $getenvBackup = (string) getenv($name);
+                        if (isset($this->overriddenValues[$name])) {
+                            putenv("$name={$this->overriddenValues[$name]}");
+                        } else {
+                            putenv($name);
+                        }
+                    }
+                }
+
+                $resolvedValue = $this->resolveCommands($value, $loadedVars);
+                $resolvedValue = $this->resolveVariables($resolvedValue, $loadedVars);
+
+                if (isset($selfReferencingVars[$name])) {
+                    if (null !== $envBackup) {
+                        $_ENV[$name] = $envBackup;
+                    }
+                    if (null !== $serverBackup) {
+                        $_SERVER[$name] = $serverBackup;
+                    }
+                    if ($this->usePutenv) {
+                        putenv("$name=$getenvBackup");
+                    }
+                }
+
+                if ($value !== $resolvedValue) {
+                    $resolved[$name] = $resolvedValue;
+                }
+            }
+            if (!$resolved) {
+                break;
+            }
+            $this->populate($resolved, true);
+        }
+        if (5 === $pass && $resolved) {
+            throw new VariableCircularReferenceException('Too many levels of variable indirection in env vars: '.implode(', ', array_keys($resolved)).'.');
+        }
+
+        // Restore literal $ signs and unescape backslashes
+        $restored = [];
+        foreach ($rawVars as $name => $_) {
+            $value = $_ENV[$name] ?? '';
+            if ($value !== $newValue = str_replace(["\x00", '\\\\'], ['$', '\\'], $value)) {
+                $restored[$name] = $newValue;
+            }
+        }
+        if ($restored) {
+            $this->populate($restored, true);
+        }
+
+        if ($this->usePutenv && $this->pendingPutenv) {
+            foreach ($this->pendingPutenv as $name => $_) {
+                putenv($name.'='.($_ENV[$name] ?? ''));
+            }
+            $this->pendingPutenv = [];
+        }
+
+        $this->values = [];
+        $this->overriddenValues = [];
+        unset($this->path, $this->data, $this->lineno, $this->cursor, $this->end);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Exception/FormatException.php symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Exception/FormatException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Exception/FormatException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Exception/FormatException.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
     {
         $this->context = $context;
 
-        parent::__construct(sprintf("%s in \"%s\" at line %d.\n%s", $message, $context->getPath(), $context->getLineno(), $context->getDetails()), $code, $previous);
+        parent::__construct(\sprintf("%s in \"%s\" at line %d.\n%s", $message, $context->getPath(), $context->getLineno(), $context->getDetails()), $code, $previous);
     }
 
     public function getContext(): FormatExceptionContext
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Exception/PathException.php symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Exception/PathException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Exception/PathException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Exception/PathException.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,6 @@
 {
     public function __construct(string $path, int $code = 0, ?\Throwable $previous = null)
     {
-        parent::__construct(sprintf('Unable to read the "%s" environment file.', $path), $code, $previous);
+        parent::__construct(\sprintf('Unable to read the "%s" environment file.', $path), $code, $previous);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Exception/VariableCircularReferenceException.php symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Exception/VariableCircularReferenceException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Exception/VariableCircularReferenceException.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Exception/VariableCircularReferenceException.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Dotenv\Exception;
+
+/**
+ * Thrown when there are too many levels of variable indirection in env vars.
+ *
+ * @author Pascal CESCON <pascal.cescon@gmail.com>
+ */
+final class VariableCircularReferenceException extends \LogicException implements ExceptionInterface
+{
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Tests/Command/DebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Tests/Command/DebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Tests/Command/DebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Tests/Command/DebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,17 +50,17 @@
         $tester = new CommandTester($command);
         $tester->execute([]);
         $expectedFormat = <<<'OUTPUT'
-%a
- ---------- ------- ------------ ------%S
-  Variable   Value   .env.local   .env%S
- ---------- ------- ------------ ------%S
-  FOO                baz          bar%S
-  TEST123            n/a          true%S
- ---------- ------- ------------ ------%S
+            %a
+             ---------- ------- ------------ ------%S
+              Variable   Value   .env.local   .env%S
+             ---------- ------- ------------ ------%S
+              FOO                baz          bar%S
+              TEST123            n/a          true%S
+             ---------- ------- ------------ ------%S
 
- // Note that values might be different between web and CLI.%S
-%a
-OUTPUT;
+             // Note that values might be different between web and CLI.%S
+            %a
+            OUTPUT;
 
         $this->assertStringMatchesFormat($expectedFormat, $tester->getDisplay());
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Tests/Command/DotenvDumpCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Tests/Command/DotenvDumpCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Tests/Command/DotenvDumpCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Tests/Command/DotenvDumpCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,14 +21,14 @@
     protected function setUp(): void
     {
         file_put_contents(__DIR__.'/.env', <<<EOF
-APP_ENV=dev
-APP_SECRET=abc123
-EOF
+            APP_ENV=dev
+            APP_SECRET=abc123
+            EOF
         );
 
         file_put_contents(__DIR__.'/.env.local', <<<EOF
-APP_LOCAL=yes
-EOF
+            APP_LOCAL=yes
+            EOF
         );
     }
 
@@ -73,8 +73,8 @@
     public function testExecuteTestEnvs()
     {
         file_put_contents(__DIR__.'/composer.json', <<<EOF
-{"extra":{"runtime":{"test_envs":[]}}}
-EOF
+            {"extra":{"runtime":{"test_envs":[]}}}
+            EOF
         );
 
         $command = $this->createCommand();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Tests/DotenvTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Tests/DotenvTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Dotenv/Tests/DotenvTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Dotenv/Tests/DotenvTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Component\Dotenv\Dotenv;
 use Symfony\Component\Dotenv\Exception\FormatException;
 use Symfony\Component\Dotenv\Exception\PathException;
+use Symfony\Component\Dotenv\Exception\VariableCircularReferenceException;
 
 class DotenvTest extends TestCase
 {
@@ -52,7 +53,7 @@
             ['FOO=$(echo foo'."\n", "Missing closing parenthesis. in \".env\" at line 1.\n...FOO=$(echo foo\\n...\n                ^ line 1 offset 14"],
             ["FOO=\nBAR=\${FOO:-\'a{a}a}", "Unsupported character \"'\" found in the default value of variable \"\$FOO\". in \".env\" at line 2.\n...\\nBAR=\${FOO:-\'a{a}a}...\n                       ^ line 2 offset 24"],
             ["FOO=\nBAR=\${FOO:-a\$a}", "Unsupported character \"\$\" found in the default value of variable \"\$FOO\". in \".env\" at line 2.\n...FOO=\\nBAR=\${FOO:-a\$a}...\n                       ^ line 2 offset 20"],
-            ["FOO=\nBAR=\${FOO:-a\"a}", "Unclosed braces on variable expansion in \".env\" at line 2.\n...FOO=\\nBAR=\${FOO:-a\"a}...\n                    ^ line 2 offset 17"],
+            ["FOO=\nBAR=\${FOO:-a\"a}", "Missing quote to end the value in \".env\" at line 2.\n...FOO=\\nBAR=\${FOO:-a\"a}...\n                       ^ line 2 offset 20"],
             ['_=FOO', "Invalid character in variable name in \".env\" at line 1.\n..._=FOO...\n  ^ line 1 offset 0"],
         ];
 
@@ -237,6 +238,71 @@
         $this->assertSame('BAZ', $bar);
     }
 
+    public function testLoadDoesNotReResolveAlreadyLoadedVars()
+    {
+        unset($_ENV['FOO'], $_ENV['BAR'], $_ENV['SYMFONY_DOTENV_VARS']);
+        unset($_SERVER['FOO'], $_SERVER['BAR'], $_SERVER['SYMFONY_DOTENV_VARS']);
+        putenv('FOO');
+        putenv('BAR');
+        putenv('SYMFONY_DOTENV_VARS');
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+
+        $path1 = tempnam($tmpdir, 'sf-');
+        $path2 = tempnam($tmpdir, 'sf-');
+
+        file_put_contents($path1, "FOO='This\$isokay'");
+        file_put_contents($path2, "BAR='hello'");
+
+        try {
+            (new Dotenv())->load($path1);
+            $this->assertSame('This$isokay', $_ENV['FOO']);
+
+            (new Dotenv())->load($path2);
+            $this->assertSame('This$isokay', $_ENV['FOO']);
+            $this->assertSame('hello', $_ENV['BAR']);
+        } finally {
+            unset($_ENV['FOO'], $_ENV['BAR'], $_ENV['SYMFONY_DOTENV_VARS']);
+            unset($_SERVER['FOO'], $_SERVER['BAR'], $_SERVER['SYMFONY_DOTENV_VARS']);
+            putenv('FOO');
+            putenv('BAR');
+            putenv('SYMFONY_DOTENV_VARS');
+            unlink($path1);
+            unlink($path2);
+            rmdir($tmpdir);
+        }
+    }
+
+    public function testLoadDoesNotResolveExternalEnvVarsOnlyPresentInServer()
+    {
+        // Mimics PHP's default `variables_order = "GPCS"` (no `E`) where
+        // OS-provided environment variables (e.g. from Kubernetes envFrom or
+        // Docker) are placed in $_SERVER but not in $_ENV when PHP starts.
+        // Such values must be left untouched by Dotenv even when the same key
+        // has a default value in the loaded .env file.
+        unset($_ENV['FOO'], $_SERVER['FOO'], $_ENV['SYMFONY_DOTENV_VARS'], $_SERVER['SYMFONY_DOTENV_VARS']);
+        putenv('FOO');
+        putenv('SYMFONY_DOTENV_VARS');
+
+        $_SERVER['FOO'] = 'abc$def';
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+        $path = tempnam($tmpdir, 'sf-');
+        file_put_contents($path, "FOO=default\n");
+
+        try {
+            (new Dotenv())->loadEnv($path, defaultEnv: 'prod');
+            $this->assertSame('abc$def', $_ENV['FOO']);
+            $this->assertSame('abc$def', $_SERVER['FOO']);
+        } finally {
+            unset($_ENV['FOO'], $_SERVER['FOO'], $_ENV['SYMFONY_DOTENV_VARS'], $_SERVER['SYMFONY_DOTENV_VARS']);
+            putenv('FOO');
+            putenv('SYMFONY_DOTENV_VARS');
+            unlink($path);
+            @rmdir($tmpdir);
+        }
+    }
+
     public function testLoadEnv()
     {
         $resetContext = static function (): void {
@@ -363,6 +429,384 @@
         rmdir($tmpdir);
     }
 
+    public function testLoadEnvResolvesVariablesFromOverriddenFiles()
+    {
+        $resetContext = static function (): void {
+            unset($_ENV['SYMFONY_DOTENV_VARS'], $_ENV['REDIS_HOST'], $_ENV['LOCK_DSN'], $_ENV['HOST'], $_ENV['DSN'], $_ENV['FOO'], $_ENV['BAR'], $_ENV['DATABASE_URL'], $_ENV['TEST_APP_ENV']);
+            unset($_SERVER['SYMFONY_DOTENV_VARS'], $_SERVER['REDIS_HOST'], $_SERVER['LOCK_DSN'], $_SERVER['HOST'], $_SERVER['DSN'], $_SERVER['FOO'], $_SERVER['BAR'], $_SERVER['DATABASE_URL'], $_SERVER['TEST_APP_ENV']);
+            putenv('SYMFONY_DOTENV_VARS');
+            putenv('REDIS_HOST');
+            putenv('LOCK_DSN');
+            putenv('HOST');
+            putenv('DSN');
+            putenv('FOO');
+            putenv('BAR');
+            putenv('DATABASE_URL');
+            putenv('TEST_APP_ENV');
+        };
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+        $path = tempnam($tmpdir, 'sf-');
+
+        // .env defines REDIS_HOST and LOCK_DSN referencing it
+        file_put_contents($path, "REDIS_HOST=localhost\nLOCK_DSN=redis://\${REDIS_HOST}");
+        // .env.local overrides REDIS_HOST
+        file_put_contents("$path.local", 'REDIS_HOST=aaa');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('aaa', getenv('REDIS_HOST'));
+        $this->assertSame('redis://aaa', getenv('LOCK_DSN'));
+
+        // backslash + variable in double-quoted value must resolve correctly
+        file_put_contents($path, "HOST=localhost\nDSN=\"path\\\\\${HOST}\"");
+        file_put_contents("$path.local", 'HOST=override');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('override', getenv('HOST'));
+        $this->assertSame('path\\override', getenv('DSN'));
+
+        // single-quoted $ must stay literal and not be resolved
+        file_put_contents($path, "BAR=hello\nFOO='\$BAR'");
+        file_put_contents("$path.local", 'BAR=world');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('$BAR', getenv('FOO'));
+        $this->assertSame('world', getenv('BAR'));
+
+        // escaped $ in double-quoted value must stay literal during deferred resolution
+        file_put_contents($path, 'FOO="\$2y\$10\$AAAAAAAAAAAAAAAAAAAAAAAAAA.BBBBBBBBBBBBBBBBBBBBBB"');
+        file_put_contents("$path.local", 'BAR=dummy');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('$2y$10$AAAAAAAAAAAAAAAAAAAAAAAAAA.BBBBBBBBBBBBBBBBBBBBBB', getenv('FOO'));
+
+        // escaped $ in unquoted value must stay literal during deferred resolution
+        file_put_contents($path, 'FOO=\$2y\$10\$AAAAAAAAAAAAAAAAAAAAAAAAAA.BBBBBBBBBBBBBBBBBBBBBB');
+        file_put_contents("$path.local", 'BAR=dummy');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('$2y$10$AAAAAAAAAAAAAAAAAAAAAAAAAA.BBBBBBBBBBBBBBBBBBBBBB', getenv('FOO'));
+
+        // double backslash in unquoted value without $ must be unescaped during deferred resolution
+        file_put_contents($path, 'DATABASE_URL=sqlsrv://user:pass@localhost\\\\SQLEXPRESS/db');
+        file_put_contents("$path.local", 'BAR=dummy');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('sqlsrv://user:pass@localhost\\SQLEXPRESS/db', getenv('DATABASE_URL'));
+
+        // double backslash + variable in cross-file resolution must not double-unescape
+        file_put_contents($path, "HOST=localhost\nDSN=\"path\\\\\\\\:\${HOST}\"");
+        file_put_contents("$path.local", 'HOST=override');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('path\\\\:override', getenv('DSN'));
+
+        $resetContext();
+        unlink("$path.local");
+        unlink($path);
+        rmdir($tmpdir);
+    }
+
+    public function testLoadMultiplePathsResolvesVariables()
+    {
+        unset($_ENV['SYMFONY_DOTENV_VARS'], $_ENV['HOST'], $_ENV['URL']);
+        unset($_SERVER['SYMFONY_DOTENV_VARS'], $_SERVER['HOST'], $_SERVER['URL']);
+        putenv('SYMFONY_DOTENV_VARS');
+        putenv('HOST');
+        putenv('URL');
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+        $path1 = tempnam($tmpdir, 'sf-');
+        $path2 = tempnam($tmpdir, 'sf-');
+
+        file_put_contents($path1, "HOST=localhost\nURL=http://\${HOST}");
+        file_put_contents($path2, 'HOST=production');
+
+        (new Dotenv())->usePutenv()->load($path1, $path2);
+
+        $this->assertSame('production', getenv('HOST'));
+        $this->assertSame('http://production', getenv('URL'));
+
+        putenv('SYMFONY_DOTENV_VARS');
+        putenv('HOST');
+        putenv('URL');
+        unlink($path1);
+        unlink($path2);
+        rmdir($tmpdir);
+    }
+
+    public function testLoadEnvResolvesCommandsWithOverriddenVars()
+    {
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            $this->markTestSkipped('This test cannot be run on Windows.');
+        }
+
+        $resetContext = static function (): void {
+            unset($_ENV['SYMFONY_DOTENV_VARS'], $_ENV['HOST'], $_ENV['RESOLVED'], $_ENV['TEST_APP_ENV']);
+            unset($_SERVER['SYMFONY_DOTENV_VARS'], $_SERVER['HOST'], $_SERVER['RESOLVED'], $_SERVER['TEST_APP_ENV']);
+            putenv('SYMFONY_DOTENV_VARS');
+            putenv('HOST');
+            putenv('RESOLVED');
+            putenv('TEST_APP_ENV');
+        };
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+        $path = tempnam($tmpdir, 'sf-');
+
+        file_put_contents($path, "HOST=original\nRESOLVED=\"\$(echo \${HOST})\"");
+        file_put_contents("$path.local", 'HOST=overridden');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('overridden', getenv('HOST'));
+        $this->assertSame('overridden', getenv('RESOLVED'));
+
+        $resetContext();
+        unlink("$path.local");
+        unlink($path);
+        rmdir($tmpdir);
+    }
+
+    public function testLoadEnvResolvesUnquotedCommandsWithOverriddenVars()
+    {
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            $this->markTestSkipped('This test cannot be run on Windows.');
+        }
+
+        $resetContext = static function (): void {
+            unset($_ENV['SYMFONY_DOTENV_VARS'], $_ENV['HOST'], $_ENV['RESOLVED'], $_ENV['TEST_APP_ENV']);
+            unset($_SERVER['SYMFONY_DOTENV_VARS'], $_SERVER['HOST'], $_SERVER['RESOLVED'], $_SERVER['TEST_APP_ENV']);
+        };
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+        $path = tempnam($tmpdir, 'sf-');
+
+        file_put_contents($path, "HOST=original\nRESOLVED=\$(echo \${HOST})");
+        file_put_contents("$path.local", 'HOST=overridden');
+
+        $resetContext();
+        (new Dotenv())->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('overridden', $_ENV['HOST']);
+        $this->assertSame('overridden', $_ENV['RESOLVED']);
+
+        $resetContext();
+        unlink("$path.local");
+        unlink($path);
+        rmdir($tmpdir);
+    }
+
+    public function testLoadEnvSelfReferencingVariableWithDefault()
+    {
+        $resetContext = static function (): void {
+            unset($_ENV['SYMFONY_DOTENV_VARS'], $_ENV['MY_VAR'], $_ENV['TEST_APP_ENV']);
+            unset($_SERVER['SYMFONY_DOTENV_VARS'], $_SERVER['MY_VAR'], $_SERVER['TEST_APP_ENV']);
+            putenv('SYMFONY_DOTENV_VARS');
+            putenv('MY_VAR');
+            putenv('TEST_APP_ENV');
+        };
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+        $path = tempnam($tmpdir, 'sf-');
+
+        // Self-referencing variable with default value
+        file_put_contents($path, 'MY_VAR="${MY_VAR:-default_value}"');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('default_value', getenv('MY_VAR'));
+
+        // When host env is set, it should take precedence
+        $resetContext();
+        putenv('MY_VAR=host_value');
+        $_ENV['MY_VAR'] = 'host_value';
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('host_value', getenv('MY_VAR'));
+
+        // Self-referencing variable with := (assign default)
+        file_put_contents($path, 'MY_VAR="${MY_VAR:=fallback}"');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('fallback', getenv('MY_VAR'));
+
+        $resetContext();
+        putenv('MY_VAR');
+        unlink($path);
+        @rmdir($tmpdir);
+    }
+
+    public function testLoadSelfReferencingVariableWithSuffix()
+    {
+        $resetContext = static function (): void {
+            unset($_ENV['SYMFONY_DOTENV_VARS'], $_ENV['MY_VAR']);
+            unset($_SERVER['SYMFONY_DOTENV_VARS'], $_SERVER['MY_VAR']);
+            putenv('SYMFONY_DOTENV_VARS');
+            putenv('MY_VAR');
+        };
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+        $basePath = tempnam($tmpdir, 'sf-');
+        $overridePath = tempnam($tmpdir, 'sf-');
+
+        // Base file sets original value, override file appends suffix
+        file_put_contents($basePath, 'MY_VAR=original');
+        file_put_contents($overridePath, 'MY_VAR="${MY_VAR}_suffix"');
+
+        $resetContext();
+        $dotenv = (new Dotenv())->usePutenv();
+        $dotenv->load($basePath);
+        $dotenv->load($overridePath);
+
+        $this->assertSame('original_suffix', getenv('MY_VAR'));
+
+        // Test with prefix instead of suffix
+        file_put_contents($overridePath, 'MY_VAR="prefix_${MY_VAR}"');
+
+        $resetContext();
+        $dotenv = (new Dotenv())->usePutenv();
+        $dotenv->load($basePath);
+        $dotenv->load($overridePath);
+
+        $this->assertSame('prefix_original', getenv('MY_VAR'));
+
+        // Test chained loads (three files)
+        $thirdPath = tempnam($tmpdir, 'sf-');
+        file_put_contents($overridePath, 'MY_VAR="${MY_VAR}_middle"');
+        file_put_contents($thirdPath, 'MY_VAR="${MY_VAR}_end"');
+
+        $resetContext();
+        $dotenv = (new Dotenv())->usePutenv();
+        $dotenv->load($basePath);
+        $dotenv->load($overridePath);
+        $dotenv->load($thirdPath);
+
+        $this->assertSame('original_middle_end', getenv('MY_VAR'));
+
+        $resetContext();
+        unlink($basePath);
+        unlink($overridePath);
+        unlink($thirdPath);
+        @rmdir($tmpdir);
+    }
+
+    public function testLoadEnvSelfReferencingEnvKeyControlsFileLoading()
+    {
+        $resetContext = static function (): void {
+            unset($_ENV['SYMFONY_DOTENV_VARS'], $_ENV['TEST_APP_ENV'], $_ENV['FOO']);
+            unset($_SERVER['SYMFONY_DOTENV_VARS'], $_SERVER['TEST_APP_ENV'], $_SERVER['FOO']);
+            putenv('SYMFONY_DOTENV_VARS');
+            putenv('TEST_APP_ENV');
+            putenv('FOO');
+        };
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+        $path = tempnam($tmpdir, 'sf-');
+
+        // APP_ENV with self-referencing default must control which .env files are loaded
+        file_put_contents($path, 'TEST_APP_ENV="${TEST_APP_ENV:-dev}"'."\nFOO=bar");
+        file_put_contents("$path.dev", 'FOO=devbar');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('dev', getenv('TEST_APP_ENV'));
+        $this->assertSame('devbar', getenv('FOO'));
+
+        // Host env should override the default and control file loading
+        $resetContext();
+        file_put_contents("$path.prod", 'FOO=prodbar');
+        putenv('TEST_APP_ENV=prod');
+        $_ENV['TEST_APP_ENV'] = 'prod';
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('prod', getenv('TEST_APP_ENV'));
+        $this->assertSame('prodbar', getenv('FOO'));
+
+        $resetContext();
+        putenv('TEST_APP_ENV');
+        @unlink("$path.dev");
+        @unlink("$path.prod");
+        unlink($path);
+        @rmdir($tmpdir);
+    }
+
+    public function testLoadEnvThrowsOnCircularVariableReferences()
+    {
+        $resetContext = static function (): void {
+            unset($_ENV['SYMFONY_DOTENV_VARS'], $_ENV['A'], $_ENV['B'], $_ENV['TEST_APP_ENV']);
+            unset($_SERVER['SYMFONY_DOTENV_VARS'], $_SERVER['A'], $_SERVER['B'], $_SERVER['TEST_APP_ENV']);
+        };
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+        $path1 = tempnam($tmpdir, 'sf-');
+        $path2 = tempnam($tmpdir, 'sf-');
+
+        // Mutual references that grow each pass — never stabilize
+        file_put_contents($path1, 'A=${B}x');
+        file_put_contents($path2, 'B=${A}y');
+
+        $resetContext();
+        try {
+            $this->expectException(VariableCircularReferenceException::class);
+            $this->expectExceptionMessage('Too many levels of variable indirection');
+            (new Dotenv())->load($path1, $path2);
+        } finally {
+            $resetContext();
+            unlink($path1);
+            unlink($path2);
+            rmdir($tmpdir);
+        }
+    }
+
+    public function testLoadEnvUnquotedSpaceWithVariableDoesNotThrow()
+    {
+        $resetContext = static function (): void {
+            unset($_ENV['SYMFONY_DOTENV_VARS'], $_ENV['PREFIX'], $_ENV['LABEL'], $_ENV['TEST_APP_ENV']);
+            unset($_SERVER['SYMFONY_DOTENV_VARS'], $_SERVER['PREFIX'], $_SERVER['LABEL'], $_SERVER['TEST_APP_ENV']);
+            putenv('SYMFONY_DOTENV_VARS');
+            putenv('PREFIX');
+            putenv('LABEL');
+            putenv('TEST_APP_ENV');
+        };
+
+        @mkdir($tmpdir = sys_get_temp_dir().'/dotenv');
+        $path = tempnam($tmpdir, 'sf-');
+
+        // Unquoted value with a space and a variable reference
+        file_put_contents($path, "PREFIX=hello\nLABEL=\${PREFIX} world");
+        file_put_contents("$path.local", 'PREFIX=overridden');
+
+        $resetContext();
+        (new Dotenv())->usePutenv()->loadEnv($path, 'TEST_APP_ENV');
+
+        $this->assertSame('overridden', getenv('PREFIX'));
+        $this->assertSame('overridden world', getenv('LABEL'));
+
+        $resetContext();
+        unlink("$path.local");
+        unlink($path);
+        rmdir($tmpdir);
+    }
+
     public function testOverload()
     {
         unset($_ENV['FOO']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/BufferingLogger.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/BufferingLogger.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/BufferingLogger.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/BufferingLogger.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,15 +35,12 @@
         return $logs;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -65,7 +62,7 @@
                 }
             }
 
-            error_log(sprintf('%s [%s] %s', date(\DateTimeInterface::RFC3339), $level, $message));
+            error_log(\sprintf('%s [%s] %s', date(\DateTimeInterface::RFC3339), $level, $message));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/DebugClassLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/DebugClassLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/DebugClassLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/DebugClassLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -127,6 +127,21 @@
     private static array $internalMethods = [];
     private static array $annotatedParameters = [];
     private static array $darwinCache = ['/' => ['/', []]];
+    /**
+     * @var array<string, list<array{0: string, 1: bool, 2: string, 3: string, 4: string|null}>>
+     *
+     * Maps an interface FQCN (or an abstract class accumulating entries from its interfaces) to the list of
+     * "@method" annotations declared on it. For interfaces, the entry is populated directly by parsing the
+     * annotations from the interface's docblock. For abstract classes, the information from all implemented
+     * interfaces is merged together, so that the check can later be applied to the first concrete subclass.
+     *
+     * Each entry is a tuple of:
+     *   [0] string      $interface   - FQCN of the interface that carries the "@method" annotation
+     *   [1] bool        $static      - whether the method is declared static
+     *   [2] string      $returnType  - return type from the annotation, or '' if absent
+     *   [3] string      $name        - method name plus its parameter signature, e.g. "foo($arg, int $n)"
+     *   [4] string|null $description - description text (period-normalised), or null if absent
+     */
     private static array $method = [];
     private static array $returnTypes = [];
     private static array $methodTraits = [];
@@ -182,7 +197,7 @@
     public static function enable(): void
     {
         // Ensures we don't hit https://bugs.php.net/42098
-        class_exists(\Symfony\Component\ErrorHandler\ErrorHandler::class);
+        class_exists(ErrorHandler::class);
         class_exists(\Psr\Log\LogLevel::class);
 
         if (!\is_array($functions = spl_autoload_functions())) {
@@ -332,7 +347,7 @@
             $name = $refl->getName();
 
             if ($name !== $class && 0 === strcasecmp($name, $class)) {
-                throw new \RuntimeException(sprintf('Case mismatch between loaded and declared class names: "%s" vs "%s".', $class, $name));
+                throw new \RuntimeException(\sprintf('Case mismatch between loaded and declared class names: "%s" vs "%s".', $class, $name));
             }
 
             $deprecations = $this->checkAnnotations($refl, $name);
@@ -348,14 +363,14 @@
 
         if (!$exists) {
             if (str_contains($class, '/')) {
-                throw new \RuntimeException(sprintf('Trying to autoload a class with an invalid name "%s". Be careful that the namespace separator is "\" in PHP, not "/".', $class));
+                throw new \RuntimeException(\sprintf('Trying to autoload a class with an invalid name "%s". Be careful that the namespace separator is "\" in PHP, not "/".', $class));
             }
 
-            throw new \RuntimeException(sprintf('The autoloader expected class "%s" to be defined in file "%s". The file was found but the class was not in it, the class name or namespace probably has a typo.', $class, $file));
+            throw new \RuntimeException(\sprintf('The autoloader expected class "%s" to be defined in file "%s". The file was found but the class was not in it, the class name or namespace probably has a typo.', $class, $file));
         }
 
         if (self::$caseCheck && $message = $this->checkCase($refl, $file, $class)) {
-            throw new \RuntimeException(sprintf('Case mismatch between class and real file names: "%s" vs "%s" in "%s".', $message[0], $message[1], $message[2]));
+            throw new \RuntimeException(\sprintf('Case mismatch between class and real file names: "%s" vs "%s" in "%s".', $message[0], $message[1], $message[2]));
         }
     }
 
@@ -398,6 +413,14 @@
 
             if ($refl->isInterface() && isset($doc['method'])) {
                 foreach ($doc['method'] as $name => [$static, $returnType, $signature, $description]) {
+                    if ($refl->hasMethod($static ? '__callStatic' : '__call')) {
+                        // When the interface has "virtual" @method declarations but at the same time contains a __call/__callStatic magic method,
+                        // do not trigger a deprecation notice. This is to address special use cases like in Predis' ClientInterface where the
+                        // "@method" annotations never intend to actually add the method to the interface, but are used to document the "virtual"
+                        // API provided by the interface through the technical implementation of magic calls. This might cause false negatives
+                        // (missing notices) in the case that such interfaces are later amended with actual (real) methods.
+                        continue;
+                    }
                     self::$method[$class][] = [$class, $static, $returnType, $name.$signature, $description];
 
                     if ('' !== $returnType) {
@@ -416,10 +439,19 @@
             }
 
             if (isset(self::$final[$parent])) {
-                $deprecations[] = sprintf('The "%s" class is considered final%s It may change without further notice as of its next major version. You should not extend it from "%s".', $parent, self::$final[$parent], $className);
+                $deprecations[] = \sprintf('The "%s" class is considered final%s It may change without further notice as of its next major version. You should not extend it from "%s".', $parent, self::$final[$parent], $className);
             }
         }
 
+        // When the parent is a concrete class, we will trigger deprecation notices to make it aware that it needs
+        // to add the new methods announced with @method. The parent will have to provide all those methods.
+        // For child classes this means they will not need to deal with @method coming from any of the interfaces
+        // the parent implements.
+        // Put those interfaces that we can ignore into $parentInterfaces.
+        // The ternary makes use of the fact that abstract parent classes will accumulate the methods in self::$method,
+        // so !isset(self::$method[$parent]) indicates a concrete parent class.
+        $parentInterfaces = ($parent && !isset(self::$method[$parent])) ? class_implements($parent, false) : [];
+
         // Detect if the parent is annotated
         foreach ($parentAndOwnInterfaces + class_uses($class, false) as $use) {
             if (!isset(self::$checkedClasses[$use])) {
@@ -429,19 +461,21 @@
                 $type = class_exists($class, false) ? 'class' : (interface_exists($class, false) ? 'interface' : 'trait');
                 $verb = class_exists($use, false) || interface_exists($class, false) ? 'extends' : (interface_exists($use, false) ? 'implements' : 'uses');
 
-                $deprecations[] = sprintf('The "%s" %s %s "%s" that is deprecated%s', $className, $type, $verb, $use, self::$deprecated[$use]);
+                $deprecations[] = \sprintf('The "%s" %s %s "%s" that is deprecated%s', $className, $type, $verb, $use, self::$deprecated[$use]);
             }
             if (isset(self::$internal[$use]) && strncmp($vendor, str_replace('_', '\\', $use), $vendorLen)) {
-                $deprecations[] = sprintf('The "%s" %s is considered internal%s It may change without further notice. You should not use it from "%s".', $use, class_exists($use, false) ? 'class' : (interface_exists($use, false) ? 'interface' : 'trait'), self::$internal[$use], $className);
+                $deprecations[] = \sprintf('The "%s" %s is considered internal%s It may change without further notice. You should not use it from "%s".', $use, class_exists($use, false) ? 'class' : (interface_exists($use, false) ? 'interface' : 'trait'), self::$internal[$use], $className);
             }
             if (isset(self::$method[$use])) {
-                if ($refl->isAbstract()) {
+                if ($refl->isAbstract() || $refl->isInterface()) {
+                    // Abstract classes and interfaces inherit @method from interfaces they
+                    // implement directly or through inheritance.
                     if (isset(self::$method[$class])) {
                         self::$method[$class] = array_merge(self::$method[$class], self::$method[$use]);
                     } else {
                         self::$method[$class] = self::$method[$use];
                     }
-                } elseif (!$refl->isInterface()) {
+                } else {
                     if (!strncmp($vendor, str_replace('_', '\\', $use), $vendorLen)
                         && str_starts_with($className, 'Symfony\\')
                         && (!class_exists(InstalledVersions::class)
@@ -450,15 +484,15 @@
                         // skip "same vendor" @method deprecations for Symfony\* classes unless symfony/symfony is being tested
                         continue;
                     }
-                    $hasCall = $refl->hasMethod('__call');
-                    $hasStaticCall = $refl->hasMethod('__callStatic');
                     foreach (self::$method[$use] as [$interface, $static, $returnType, $name, $description]) {
-                        if ($static ? $hasStaticCall : $hasCall) {
+                        if (isset($parentInterfaces[$interface])) {
+                            // The @method annotation comes from an interface that has already been implemented by a concrete parent class,
+                            // so we can ignore it here.
                             continue;
                         }
                         $realName = substr($name, 0, strpos($name, '('));
-                        if (!$refl->hasMethod($realName) || !($methodRefl = $refl->getMethod($realName))->isPublic() || ($static && !$methodRefl->isStatic()) || (!$static && $methodRefl->isStatic())) {
-                            $deprecations[] = sprintf('Class "%s" should implement method "%s::%s%s"%s', $className, ($static ? 'static ' : '').$interface, $name, $returnType ? ': '.$returnType : '', null === $description ? '.' : ': '.$description);
+                        if (!$refl->hasMethod($realName) || !($methodRefl = $refl->getMethod($realName))->isPublic() || ($static xor $methodRefl->isStatic())) {
+                            $deprecations[] = \sprintf('Class "%s" should implement method "%s::%s%s"%s', $className, ($static ? 'static ' : '').$interface, $name, $returnType ? ': '.$returnType : '', null === $description ? '.' : ': '.$description);
                         }
                     }
                 }
@@ -522,13 +556,13 @@
 
             if ($parent && isset(self::$finalMethods[$parent][$method->name])) {
                 [$declaringClass, $message] = self::$finalMethods[$parent][$method->name];
-                $deprecations[] = sprintf('The "%s::%s()" method is considered final%s It may change without further notice as of its next major version. You should not extend it from "%s".', $declaringClass, $method->name, $message, $className);
+                $deprecations[] = \sprintf('The "%s::%s()" method is considered final%s It may change without further notice as of its next major version. You should not extend it from "%s".', $declaringClass, $method->name, $message, $className);
             }
 
             if (isset(self::$internalMethods[$class][$method->name])) {
                 [$declaringClass, $message] = self::$internalMethods[$class][$method->name];
                 if (strncmp($ns, $declaringClass, $len)) {
-                    $deprecations[] = sprintf('The "%s::%s()" method is considered internal%s It may change without further notice. You should not extend it from "%s".', $declaringClass, $method->name, $message, $className);
+                    $deprecations[] = \sprintf('The "%s::%s()" method is considered internal%s It may change without further notice. You should not extend it from "%s".', $declaringClass, $method->name, $message, $className);
                 }
             }
 
@@ -547,7 +581,7 @@
 
                 foreach (self::$annotatedParameters[$class][$method->name] as $parameterName => $deprecation) {
                     if (!isset($definedParameters[$parameterName]) && !isset($doc['param'][$parameterName])) {
-                        $deprecations[] = sprintf($deprecation, $className);
+                        $deprecations[] = \sprintf($deprecation, $className);
                     }
                 }
             }
@@ -585,7 +619,7 @@
                     if ('docblock' === $this->patchTypes['force']) {
                         $this->patchMethod($method, $returnType, $declaringFile, $normalizedType);
                     } elseif ('' !== $declaringClass && $this->patchTypes['deprecations']) {
-                        $deprecations[] = sprintf('Method "%s::%s()" might add "%s" as a native return type declaration in the future. Do the same in %s "%s" now to avoid errors or add an explicit @return annotation to suppress this message.', $declaringClass, $method->name, $normalizedType, interface_exists($declaringClass) ? 'implementation' : 'child class', $className);
+                        $deprecations[] = \sprintf('Method "%s::%s()" might add "%s" as a native return type declaration in the future. Do the same in %s "%s" now to avoid errors or add an explicit @return annotation to suppress this message.', $declaringClass, $method->name, $normalizedType, interface_exists($declaringClass) ? 'implementation' : 'child class', $className);
                     }
                 }
             }
@@ -634,7 +668,7 @@
             }
             foreach ($doc['param'] as $parameterName => $parameterType) {
                 if (!isset($definedParameters[$parameterName])) {
-                    self::$annotatedParameters[$class][$method->name][$parameterName] = sprintf('The "%%s::%s()" method will require a new "%s$%s" argument in the next major version of its %s "%s", not defining it is deprecated.', $method->name, $parameterType ? $parameterType.' ' : '', $parameterName, interface_exists($className) ? 'interface' : 'parent class', $className);
+                    self::$annotatedParameters[$class][$method->name][$parameterName] = \sprintf('The "%%s::%s()" method will require a new "%s$%s" argument in the next major version of its %s "%s", not defining it is deprecated.', $method->name, $parameterType ? $parameterType.' ' : '', $parameterName, interface_exists($className) ? 'interface' : 'parent class', $className);
                 }
             }
         }
@@ -654,7 +688,7 @@
                 foreach ($parentAndOwnInterfaces as $use) {
                     if (isset(self::${$type}[$use][$r->name]) && !isset($doc['deprecated']) && ('finalConstants' === $type || substr($use, 0, strrpos($use, '\\')) !== substr($use, 0, strrpos($class, '\\')))) {
                         $msg = 'finalConstants' === $type ? '%s" constant' : '$%s" property';
-                        $deprecations[] = sprintf('The "%s::'.$msg.' is considered final. You should not override it in "%s".', self::${$type}[$use][$r->name], $r->name, $class);
+                        $deprecations[] = \sprintf('The "%s::'.$msg.' is considered final. You should not override it in "%s".', self::${$type}[$use][$r->name], $r->name, $class);
                     }
                 }
 
@@ -895,8 +929,8 @@
             }
         }
 
-        $phpType = sprintf($nullable ? (1 < \count($phpTypes) ? '%s|null' : '?%s') : '%s', implode($glue, $phpTypes));
-        $docType = sprintf($nullable ? '%s|null' : '%s', implode($glue, $docTypes));
+        $phpType = \sprintf($nullable ? (1 < \count($phpTypes) ? '%s|null' : '?%s') : '%s', implode($glue, $phpTypes));
+        $docType = \sprintf($nullable ? '%s|null' : '%s', implode($glue, $docTypes));
 
         self::$returnTypes[$class][$method] = [$phpType, $docType, $class, $filename];
     }
@@ -1028,7 +1062,7 @@
                 ++$fileOffset;
             }
 
-            $returnType[$i] = null !== $format ? sprintf($format, $alias) : $alias;
+            $returnType[$i] = null !== $format ? \sprintf($format, $alias) : $alias;
         }
 
         if ('docblock' === $this->patchTypes['force'] || ('object' === $normalizedType && '7.1' === $this->patchTypes['php'])) {
@@ -1042,11 +1076,11 @@
                 $code[$startLine] = "     * @return $returnType\n".$code[$startLine];
             } else {
                 $code[$startLine] .= <<<EOTXT
-    /**
-     * @return $returnType
-     */
+                        /**
+                         * @return $returnType
+                         */
 
-EOTXT;
+                    EOTXT;
             }
 
             $fileOffset += substr_count($code[$startLine], "\n") - 1;
@@ -1137,7 +1171,7 @@
         $braces = 0;
         for (; $i < $end; ++$i) {
             if (!$inClosure) {
-                $inClosure = false !== strpos($code[$i], 'function (');
+                $inClosure = str_contains($code[$i], 'function (');
             }
 
             if ($inClosure) {
@@ -1216,7 +1250,7 @@
             $static = 'static' === $parts[0];
 
             for ($i = $static ? 2 : 0; null !== $p = $parts[$i] ?? null; $i += 2) {
-                if (\in_array($p, ['', '|', '&', 'callable'], true) || \in_array(substr($returnType, -1), ['|', '&'], true)) {
+                if (\in_array($p, ['', 'callable'], true) || \in_array(substr($returnType, -1), ['|', '&'], true) || \in_array($p[0], ['|', '&'], true)) {
                     $returnType .= trim($parts[$i - 1] ?? '').$p;
                     continue;
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Debug.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Debug.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Debug.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Debug.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 {
     public static function enable(): ErrorHandler
     {
-        error_reporting(-1);
+        error_reporting(\E_ALL & ~\E_DEPRECATED & ~\E_USER_DEPRECATED);
 
         if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
             ini_set('display_errors', 0);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,11 +34,11 @@
         if (false !== $namespaceSeparatorIndex = strrpos($fullyQualifiedClassName, '\\')) {
             $className = substr($fullyQualifiedClassName, $namespaceSeparatorIndex + 1);
             $namespacePrefix = substr($fullyQualifiedClassName, 0, $namespaceSeparatorIndex);
-            $message = sprintf('Attempted to load %s "%s" from namespace "%s".', $typeName, $className, $namespacePrefix);
+            $message = \sprintf('Attempted to load %s "%s" from namespace "%s".', $typeName, $className, $namespacePrefix);
             $tail = ' for another namespace?';
         } else {
             $className = $fullyQualifiedClassName;
-            $message = sprintf('Attempted to load %s "%s" from the global namespace.', $typeName, $className);
+            $message = \sprintf('Attempted to load %s "%s" from the global namespace.', $typeName, $className);
             $tail = '?';
         }
 
@@ -141,7 +141,7 @@
         ];
 
         if ($prefix) {
-            $candidates = array_filter($candidates, fn ($candidate) => str_starts_with($candidate, $prefix));
+            $candidates = array_filter($candidates, static fn ($candidate) => str_starts_with($candidate, $prefix));
         }
 
         // We cannot use the autoloader here as most of them use require; but if the class
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/UndefinedFunctionErrorEnhancer.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/UndefinedFunctionErrorEnhancer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/UndefinedFunctionErrorEnhancer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/UndefinedFunctionErrorEnhancer.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,10 +47,10 @@
         if (false !== $namespaceSeparatorIndex = strrpos($fullyQualifiedFunctionName, '\\')) {
             $functionName = substr($fullyQualifiedFunctionName, $namespaceSeparatorIndex + 1);
             $namespacePrefix = substr($fullyQualifiedFunctionName, 0, $namespaceSeparatorIndex);
-            $message = sprintf('Attempted to call function "%s" from namespace "%s".', $functionName, $namespacePrefix);
+            $message = \sprintf('Attempted to call function "%s" from namespace "%s".', $functionName, $namespacePrefix);
         } else {
             $functionName = $fullyQualifiedFunctionName;
-            $message = sprintf('Attempted to call function "%s" from the global namespace.', $functionName);
+            $message = \sprintf('Attempted to call function "%s" from the global namespace.', $functionName);
         }
 
         $candidates = [];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/UndefinedMethodErrorEnhancer.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/UndefinedMethodErrorEnhancer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/UndefinedMethodErrorEnhancer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorEnhancer/UndefinedMethodErrorEnhancer.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
         $className = $matches[1];
         $methodName = $matches[2];
 
-        $message = sprintf('Attempted to call an undefined method named "%s" of class "%s".', $methodName, $className);
+        $message = \sprintf('Attempted to call an undefined method named "%s" of class "%s".', $methodName, $className);
 
         if ('' === $methodName || !class_exists($className) || null === $methods = get_class_methods($className)) {
             // failed to get the class or its methods on which an unknown method was called (for example on an anonymous class)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -193,7 +193,7 @@
             $traceReflector->setValue($e, $trace);
             $e->file = $file ?? $e->file;
             $e->line = $line ?? $e->line;
-        }, null, new class() extends \Exception {
+        }, null, new class extends \Exception {
         });
         $this->debug = $debug;
     }
@@ -435,7 +435,7 @@
                 return true;
             }
         } else {
-            if (PHP_VERSION_ID < 80303 && str_contains($message, '@anonymous')) {
+            if (\PHP_VERSION_ID < 80303 && str_contains($message, '@anonymous')) {
                 $backtrace = debug_backtrace(false, 5);
 
                 for ($i = 1; isset($backtrace[$i]); ++$i) {
@@ -451,7 +451,7 @@
                 }
             }
 
-            if (false !== strpos($message, "@anonymous\0")) {
+            if (str_contains($message, "@anonymous\0")) {
                 $message = $this->parseAnonymousClass($message);
                 $logMessage = $this->levels[$type].': '.$message;
             }
@@ -599,7 +599,7 @@
         }
         if (!$handler) {
             if (null === $error && $exitCode = self::$exitCode) {
-                register_shutdown_function('register_shutdown_function', function () use ($exitCode) { exit($exitCode); });
+                register_shutdown_function('register_shutdown_function', static function () use ($exitCode) { exit($exitCode); });
             }
 
             return;
@@ -638,7 +638,7 @@
         }
 
         if ($exit && $exitCode = self::$exitCode) {
-            register_shutdown_function('register_shutdown_function', function () use ($exitCode) { exit($exitCode); });
+            register_shutdown_function('register_shutdown_function', static function () use ($exitCode) { exit($exitCode); });
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/CliErrorRenderer.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/CliErrorRenderer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/CliErrorRenderer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/CliErrorRenderer.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public function render(\Throwable $exception): FlattenException
     {
         $cloner = new VarCloner();
-        $dumper = new class() extends CliDumper {
+        $dumper = new class extends CliDumper {
             protected function supportsColors(): bool
             {
                 $outputStream = $this->outputStream;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/FileLinkFormatter.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/FileLinkFormatter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/FileLinkFormatter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/FileLinkFormatter.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,14 +67,11 @@
         return false;
     }
 
-    /**
-     * @internal
-     */
-    public function __sleep(): array
+    public function __serialize(): array
     {
         $this->fileLinkFormat = $this->getFileLinkFormat();
 
-        return ['fileLinkFormat'];
+        return ['fileLinkFormat' => $this->fileLinkFormat];
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/HtmlErrorRenderer.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/HtmlErrorRenderer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/HtmlErrorRenderer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/ErrorRenderer/HtmlErrorRenderer.php	2026-05-20 10:56:49.000000000 +0200
@@ -158,9 +158,9 @@
         $result = [];
         foreach ($args as $key => $item) {
             if ('object' === $item[0]) {
-                $formattedValue = sprintf('<em>object</em>(%s)', $this->abbrClass($item[1]));
+                $formattedValue = \sprintf('<em>object</em>(%s)', $this->abbrClass($item[1]));
             } elseif ('array' === $item[0]) {
-                $formattedValue = sprintf('<em>array</em>(%s)', \is_array($item[1]) ? $this->formatArgs($item[1]) : $item[1]);
+                $formattedValue = \sprintf('<em>array</em>(%s)', \is_array($item[1]) ? $this->formatArgs($item[1]) : $item[1]);
             } elseif ('null' === $item[0]) {
                 $formattedValue = '<em>null</em>';
             } elseif ('boolean' === $item[0]) {
@@ -173,7 +173,7 @@
                 $formattedValue = str_replace("\n", '', $this->escape(var_export($item[1], true)));
             }
 
-            $result[] = \is_int($key) ? $formattedValue : sprintf("'%s' => %s", $this->escape($key), $formattedValue);
+            $result[] = \is_int($key) ? $formattedValue : \sprintf("'%s' => %s", $this->escape($key), $formattedValue);
         }
 
         return implode(', ', $result);
@@ -194,7 +194,7 @@
         $parts = explode('\\', $class);
         $short = array_pop($parts);
 
-        return sprintf('<abbr title="%s">%s</abbr>', $class, $short);
+        return \sprintf('<abbr title="%s">%s</abbr>', $class, $short);
     }
 
     private function getFileRelative(string $file): ?string
@@ -223,7 +223,7 @@
             $text = $file;
             if (null !== $rel = $this->getFileRelative($text)) {
                 $rel = explode('/', $rel, 2);
-                $text = sprintf('<abbr title="%s%2$s">%s</abbr>%s', $this->projectDir, $rel[0], '/'.($rel[1] ?? ''));
+                $text = \sprintf('<abbr title="%s%2$s">%s</abbr>%s', $this->projectDir, $rel[0], '/'.($rel[1] ?? ''));
             }
         }
 
@@ -231,9 +231,13 @@
             $text .= ' at line '.$line;
         }
 
+        if (!file_exists($file)) {
+            return $text;
+        }
+
         $link = $this->fileLinkFormat->format($file, $line);
 
-        return sprintf('<a href="%s" title="Click to open this file" class="file_link">%s</a>', $this->escape($link), $text);
+        return \sprintf('<a href="%s" title="Click to open this file" class="file_link">%s</a>', $this->escape($link), $text);
     }
 
     /**
@@ -253,15 +257,13 @@
                 // remove main pre/code tags
                 $code = preg_replace('#^<pre.*?>\s*<code.*?>(.*)</code>\s*</pre>#s', '\\1', $code);
                 // split multiline span tags
-                $code = preg_replace_callback('#<span ([^>]++)>((?:[^<\\n]*+\\n)++[^<]*+)</span>#', function ($m) {
-                    return "<span $m[1]>".str_replace("\n", "</span>\n<span $m[1]>", $m[2]).'</span>';
-                }, $code);
+                $code = preg_replace_callback('#<span ([^>]++)>((?:[^<\\n]*+\\n)++[^<]*+)</span>#', static fn ($m) => "<span $m[1]>".str_replace("\n", "</span>\n<span $m[1]>", $m[2]).'</span>', $code);
                 $content = explode("\n", $code);
             } else {
                 // remove main code/span tags
                 $code = preg_replace('#^<code.*?>\s*<span.*?>(.*)</span>\s*</code>#s', '\\1', $code);
                 // split multiline spans
-                $code = preg_replace_callback('#<span ([^>]++)>((?:[^<]*+<br \/>)++[^<]*+)</span>#', fn ($m) => "<span $m[1]>".str_replace('<br />', "</span><br /><span $m[1]>", $m[2]).'</span>', $code);
+                $code = preg_replace_callback('#<span ([^>]++)>((?:[^<]*+<br \/>)++[^<]*+)</span>#', static fn ($m) => "<span $m[1]>".str_replace('<br />', "</span><br /><span $m[1]>", $m[2]).'</span>', $code);
                 $content = explode('<br />', $code);
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Exception/FlattenException.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Exception/FlattenException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Exception/FlattenException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Exception/FlattenException.php	2026-05-20 10:56:49.000000000 +0200
@@ -94,7 +94,7 @@
         if (!$cloner ??= $defaultCloner) {
             $cloner = $defaultCloner = new VarCloner();
             $cloner->addCasters([
-                \Throwable::class => function (\Throwable $e, array $a, Stub $s, bool $isNested): array {
+                \Throwable::class => static function (\Throwable $e, array $a, Stub $s, bool $isNested): array {
                     if (!$isNested) {
                         unset($a[Caster::PREFIX_PROTECTED.'message']);
                         unset($a[Caster::PREFIX_PROTECTED.'code']);
@@ -228,7 +228,7 @@
     public function setMessage(string $message): static
     {
         if (str_contains($message, "@anonymous\0")) {
-            $message = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $message);
+            $message = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', static fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $message);
         }
 
         $this->message = $message;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Resources/bin/extract-tentative-return-types.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Resources/bin/extract-tentative-return-types.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Resources/bin/extract-tentative-return-types.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Resources/bin/extract-tentative-return-types.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,29 +20,29 @@
 // Usage: find -name *.stub.php | sort | /path/to/extract-tentative-return-types.php > /path/to/TentativeTypes.php
 
 echo <<<EOPHP
-<?php
+    <?php
 
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ErrorHandler\Internal;
-
-/**
- * This class has been generated by extract-tentative-return-types.php.
- *
- * @internal
- */
-class TentativeTypes
-{
-    public const RETURN_TYPES = [
+    /*
+     * This file is part of the Symfony package.
+     *
+     * (c) Fabien Potencier <fabien@symfony.com>
+     *
+     * For the full copyright and license information, please view the LICENSE
+     * file that was distributed with this source code.
+     */
+
+    namespace Symfony\Component\ErrorHandler\Internal;
+
+    /**
+     * This class has been generated by extract-tentative-return-types.php.
+     *
+     * @internal
+     */
+    class TentativeTypes
+    {
+        public const RETURN_TYPES = [
 
-EOPHP;
+    EOPHP;
 
 while (false !== $file = fgets(\STDIN)) {
     $code = file_get_contents(substr($file, 0, -1));
@@ -66,7 +66,7 @@
 
         echo "        '$class' => [\n";
 
-        preg_replace_callback('{@tentative-return-type.*?[\s]function ([^(]++)[^)]++\)\s*+:\s*+([^\n;\{]++)}s', function ($m) {
+        preg_replace_callback('{@tentative-return-type.*?[\s]function ([^(]++)[^)]++\)\s*+:\s*+([^\n;\{]++)}s', static function ($m) {
             $m[2] = str_replace(' ', '', $m[2]);
             echo "            '$m[1]' => '$m[2]',\n";
 
@@ -78,7 +78,7 @@
 }
 
 echo <<<EOPHP
-    ];
-}
+        ];
+    }
 
-EOPHP;
+    EOPHP;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/DebugClassLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
     protected function setUp(): void
     {
         $this->patchTypes = getenv('SYMFONY_PATCH_TYPE_DECLARATIONS');
-        $this->errorReporting = error_reporting(E_ALL);
+        $this->errorReporting = error_reporting(\E_ALL);
         putenv('SYMFONY_PATCH_TYPE_DECLARATIONS=deprecations=1');
         $this->loader = [new DebugClassLoader([new ClassLoader(), 'loadClass']), 'loadClass'];
         spl_autoload_register($this->loader, true, true);
@@ -120,9 +120,9 @@
      */
     public function testDeprecatedSuper(string $class, string $super, string $type)
     {
-        set_error_handler(fn () => false);
+        set_error_handler(static fn () => false);
         $e = error_reporting(0);
-        trigger_error('', E_USER_DEPRECATED);
+        trigger_error('', \E_USER_DEPRECATED);
 
         class_exists('Test\\'.__NAMESPACE__.'\\'.$class, true);
 
@@ -133,7 +133,7 @@
         unset($lastError['file'], $lastError['line']);
 
         $xError = [
-            'type' => E_USER_DEPRECATED,
+            'type' => \E_USER_DEPRECATED,
             'message' => 'The "Test\Symfony\Component\ErrorHandler\Tests\\'.$class.'" class '.$type.' "Symfony\Component\ErrorHandler\Tests\Fixtures\\'.$super.'" that is deprecated but this is a test deprecation notice.',
         ];
 
@@ -150,9 +150,9 @@
 
     public function testInterfaceExtendsDeprecatedInterface()
     {
-        set_error_handler(fn () => false);
+        set_error_handler(static fn () => false);
         $e = error_reporting(0);
-        trigger_error('', E_USER_NOTICE);
+        trigger_error('', \E_USER_NOTICE);
 
         class_exists('Test\\'.NonDeprecatedInterfaceClass::class, true);
 
@@ -163,7 +163,7 @@
         unset($lastError['file'], $lastError['line']);
 
         $xError = [
-            'type' => E_USER_NOTICE,
+            'type' => \E_USER_NOTICE,
             'message' => '',
         ];
 
@@ -172,9 +172,9 @@
 
     public function testDeprecatedSuperInSameNamespace()
     {
-        set_error_handler(fn () => false);
+        set_error_handler(static fn () => false);
         $e = error_reporting(0);
-        trigger_error('', E_USER_NOTICE);
+        trigger_error('', \E_USER_NOTICE);
 
         class_exists(ExtendsDeprecatedParent::class, true);
 
@@ -185,7 +185,7 @@
         unset($lastError['file'], $lastError['line']);
 
         $xError = [
-            'type' => E_USER_NOTICE,
+            'type' => \E_USER_NOTICE,
             'message' => '',
         ];
 
@@ -195,8 +195,8 @@
     public function testExtendedFinalClass()
     {
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
         require __DIR__.'/Fixtures/FinalClasses.php';
 
@@ -224,8 +224,8 @@
     public function testExtendedFinalMethod()
     {
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
         class_exists(Fixtures\ExtendedFinalMethod::class, true);
 
@@ -242,9 +242,9 @@
 
     public function testExtendedDeprecatedMethodDoesntTriggerAnyNotice()
     {
-        set_error_handler(fn () => false);
+        set_error_handler(static fn () => false);
         $e = error_reporting(0);
-        trigger_error('', E_USER_NOTICE);
+        trigger_error('', \E_USER_NOTICE);
 
         class_exists('Test\\'.ExtendsAnnotatedClass::class, true);
 
@@ -254,14 +254,14 @@
         $lastError = error_get_last();
         unset($lastError['file'], $lastError['line']);
 
-        $this->assertSame(['type' => E_USER_NOTICE, 'message' => ''], $lastError);
+        $this->assertSame(['type' => \E_USER_NOTICE, 'message' => ''], $lastError);
     }
 
     public function testInternalsUse()
     {
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
         class_exists('Test\\'.ExtendsInternals::class, true);
 
@@ -279,8 +279,8 @@
     public function testExtendedMethodDefinesNewParameters()
     {
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
         class_exists(Fixtures\SubClassWithAnnotatedParameters::class, true);
 
@@ -301,8 +301,8 @@
     public function testUseTraitWithInternalMethod()
     {
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
         class_exists('Test\\'.UseTraitWithInternalMethod::class, true);
 
@@ -315,8 +315,8 @@
     public function testVirtualUse()
     {
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
         class_exists('Test\\'.ExtendsVirtual::class, true);
 
@@ -333,7 +333,7 @@
             'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualParent" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::invalidInterfaceMethod(): unknownType".',
             'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualParent" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::invalidInterfaceMethodNoBraces(): unknownType|string".',
             'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualParent" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::complexInterfaceMethod($arg, ...$args)".',
-            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualParent" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::complexInterfaceMethodTyped($arg, int ...$args): string[]|int": Description ...',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualParent" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::complexInterfaceMethodTyped($arg, int ...$args): array<string, int>|string[]|int": Description ...',
             'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualParent" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethodNoBraces(): mixed".',
             'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualParent" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethodTyped(int $arg): \stdClass": Description.',
             'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualParent" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethodTypedNoBraces(): \stdClass[]".',
@@ -342,17 +342,91 @@
         ], $deprecations);
     }
 
+    public function testVirtualUseWithInheritedInterface()
+    {
+        // A concrete class implementing a child interface should also receive notices for @method
+        // annotations declared on parent interfaces, even without abstract classes in between.
+        // (ExtendsVirtualSubInterfaceDirect implements VirtualSubInterface, which extends VirtualInterface)
+
+        $deprecations = [];
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
+
+        class_exists('Test\\'.ExtendsVirtualSubInterfaceDirect::class, true);
+
+        error_reporting($e);
+        restore_error_handler();
+
+        $this->assertSame([
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualSubInterface::subInterfaceMethod(): string".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::interfaceMethod(): string".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticReturningMethod(): static".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::sameLineInterfaceMethod($arg)".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::sameLineInterfaceMethodNoBraces()".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::newLineInterfaceMethod()": Some description!',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::newLineInterfaceMethodNoBraces(): \stdClass": Description.',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::invalidInterfaceMethod(): unknownType".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::invalidInterfaceMethodNoBraces(): unknownType|string".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::complexInterfaceMethod($arg, ...$args)".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::complexInterfaceMethodTyped($arg, int ...$args): array<string, int>|string[]|int": Description ...',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethod(): Foo&Bar".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethodNoBraces(): mixed".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethodTyped(int $arg): \stdClass": Description.',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualSubInterfaceDirect" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethodTypedNoBraces(): \stdClass[]".',
+        ], $deprecations);
+    }
+
     public function testVirtualUseWithMagicCall()
     {
+        // This is like the preceding testVirtualUse() test, but this time the class contains
+        // __call/__callStatic magic methods. We want the notices to be triggered in this case:
+        // If the interface changes the "@method" to a real declaration in the future, the class
+        // will need to contain that method.
+
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
         class_exists('Test\\'.ExtendsVirtualMagicCall::class, true);
 
         error_reporting($e);
         restore_error_handler();
 
+        $this->assertSame([
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::interfaceMethod(): string".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticReturningMethod(): static".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::sameLineInterfaceMethod($arg)".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::sameLineInterfaceMethodNoBraces()".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::newLineInterfaceMethod()": Some description!',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::newLineInterfaceMethodNoBraces(): \stdClass": Description.',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::invalidInterfaceMethod(): unknownType".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::invalidInterfaceMethodNoBraces(): unknownType|string".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::complexInterfaceMethod($arg, ...$args)".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::complexInterfaceMethodTyped($arg, int ...$args): array<string, int>|string[]|int": Description ...',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethod(): Foo&Bar".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethodNoBraces(): mixed".',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethodTyped(int $arg): \stdClass": Description.',
+            'Class "Test\Symfony\Component\ErrorHandler\Tests\ExtendsVirtualMagicCall" should implement method "static Symfony\Component\ErrorHandler\Tests\Fixtures\VirtualInterface::staticMethodTypedNoBraces(): \stdClass[]".',
+        ], $deprecations);
+    }
+
+    public function testVirtualUseWithMagicCallInterface()
+    {
+        // When an interface uses "@method" annotations and, at the same time, requires the __call method to be
+        // implemented, do not trigger notices. The assumption is that this interface documents an API contract
+        // using a pattern of magic calls, for example like https://github.com/predis/predis/blob/deee2b6d605eb6401446f6f6354414ab7571a5a0/src/ClientInterface.php.
+        // This has the risk of false negatives, i. e. missing notices in case the interface intends to add real
+        // methods in the future.
+
+        $deprecations = [];
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
+
+        class_exists('Test\\'.ExtendsVirtualMagicCallInterface::class, true);
+
+        error_reporting($e);
+        restore_error_handler();
+
         $this->assertSame([], $deprecations);
     }
 
@@ -364,8 +438,8 @@
     public function testReturnType()
     {
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
         class_exists('Test\\'.ReturnType::class, true);
 
@@ -407,8 +481,8 @@
     public function testOverrideFinalProperty()
     {
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
         class_exists(Fixtures\OverrideFinalProperty::class, true);
         class_exists(Fixtures\FinalProperty\OverrideFinalPropertySameNamespace::class, true);
@@ -421,15 +495,15 @@
             'The "Symfony\Component\ErrorHandler\Tests\Fixtures\FinalProperty\FinalProperty::$pub" property is considered final. You should not override it in "Symfony\Component\ErrorHandler\Tests\Fixtures\OverrideFinalProperty".',
             'The "Symfony\Component\ErrorHandler\Tests\Fixtures\FinalProperty\FinalProperty::$prot" property is considered final. You should not override it in "Symfony\Component\ErrorHandler\Tests\Fixtures\OverrideFinalProperty".',
             'The "Symfony\Component\ErrorHandler\Tests\Fixtures\FinalProperty\FinalProperty::$implicitlyFinal" property is considered final. You should not override it in "Symfony\Component\ErrorHandler\Tests\Fixtures\OverrideFinalProperty".',
-            'The "Test\Symfony\Component\ErrorHandler\Tests\FinalProperty\OutsideFinalProperty::$final" property is considered final. You should not override it in "Test\Symfony\Component\ErrorHandler\Tests\OverrideOutsideFinalProperty".'
+            'The "Test\Symfony\Component\ErrorHandler\Tests\FinalProperty\OutsideFinalProperty::$final" property is considered final. You should not override it in "Test\Symfony\Component\ErrorHandler\Tests\OverrideOutsideFinalProperty".',
         ], $deprecations);
     }
 
     public function testOverrideFinalConstant()
     {
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
         class_exists(Fixtures\FinalConstant\OverrideFinalConstant::class, true);
 
@@ -445,10 +519,10 @@
     public function testOverrideFinalConstant81()
     {
         $deprecations = [];
-        set_error_handler(function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
-        $e = error_reporting(E_USER_DEPRECATED);
+        set_error_handler(static function ($type, $msg) use (&$deprecations) { $deprecations[] = $msg; });
+        $e = error_reporting(\E_USER_DEPRECATED);
 
-        class_exists( Fixtures\FinalConstant\OverrideFinalConstant81::class, true);
+        class_exists(Fixtures\FinalConstant\OverrideFinalConstant81::class, true);
 
         error_reporting($e);
         restore_error_handler();
@@ -497,7 +571,7 @@
             eval('namespace Test\\'.__NAMESPACE__.'; class NonDeprecatedInterfaceClass implements \\'.__NAMESPACE__.'\Fixtures\NonDeprecatedInterface {}');
         } elseif ('Test\\'.Float::class === $class) {
             eval('namespace Test\\'.__NAMESPACE__.'; class Float {}');
-        } elseif (str_starts_with($class, 'Test\\' . ExtendsFinalClass::class)) {
+        } elseif (str_starts_with($class, 'Test\\'.ExtendsFinalClass::class)) {
             $classShortName = substr($class, strrpos($class, '\\') + 1);
             eval('namespace Test\\'.__NAMESPACE__.'; class '.$classShortName.' extends \\'.__NAMESPACE__.'\Fixtures\\'.substr($classShortName, 7).' {}');
         } elseif ('Test\\'.ExtendsAnnotatedClass::class === $class) {
@@ -537,9 +611,16 @@
             eval('namespace Test\\'.__NAMESPACE__.'; abstract class ExtendsVirtualAbstractBase extends \\'.__NAMESPACE__.'\Fixtures\VirtualClass implements \\'.__NAMESPACE__.'\Fixtures\VirtualInterface {
                 public function ownAbstractBaseMethod() { }
             }');
+        } elseif ('Test\\'.ExtendsVirtualSubInterfaceDirect::class === $class) {
+            eval('namespace Test\\'.__NAMESPACE__.'; class ExtendsVirtualSubInterfaceDirect implements \\'.__NAMESPACE__.'\Fixtures\VirtualSubInterface {
+            }');
         } elseif ('Test\\'.ExtendsVirtualMagicCall::class === $class) {
             eval('namespace Test\\'.__NAMESPACE__.'; class ExtendsVirtualMagicCall extends \\'.__NAMESPACE__.'\Fixtures\VirtualClassMagicCall implements \\'.__NAMESPACE__.'\Fixtures\VirtualInterface {
             }');
+        } elseif ('Test\\'.ExtendsVirtualMagicCallInterface::class === $class) {
+            eval('namespace Test\\'.__NAMESPACE__.'; class ExtendsVirtualMagicCallInterface implements \\'.__NAMESPACE__.'\Fixtures\VirtualInterfaceWithCall {
+                public function __call(string $name, array $arguments): mixed { return null; }
+            }');
         } elseif ('Test\\'.ReturnType::class === $class) {
             return $fixtureDir.\DIRECTORY_SEPARATOR.'ReturnType.php';
         } elseif ('Test\\'.Fixtures\OutsideInterface::class === $class) {
@@ -551,3 +632,5 @@
         }
     }
 }
+
+// @php-cs-fixer-ignore error_suppression This file is explicitly expected to not silence each of trigger_error calls
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorEnhancer/ClassNotFoundErrorEnhancerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorEnhancer/ClassNotFoundErrorEnhancerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorEnhancer/ClassNotFoundErrorEnhancerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorEnhancer/ClassNotFoundErrorEnhancerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -133,7 +133,7 @@
             [
                 'Class \'Foo\\Bar\\UndefinedFunctionError\' not found',
                 "Attempted to load class \"UndefinedFunctionError\" from namespace \"Foo\\Bar\".\nDid you forget a \"use\" statement for another namespace?",
-                function ($className) { /* do nothing here */ },
+                static function ($className) { /* do nothing here */ },
             ],
         ];
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,6 @@
     protected function tearDown(): void
     {
         $r = new \ReflectionProperty(ErrorHandler::class, 'exitCode');
-        $r->setAccessible(true);
         $r->setValue(null, 0);
     }
 
@@ -70,7 +69,7 @@
 
     public function testErrorGetLast()
     {
-        $logger = $this->createMock(LoggerInterface::class);
+        $logger = new NullLogger();
         $handler = ErrorHandler::register();
         $handler->setDefaultLogger($logger);
         $handler->screamAt(\E_ALL);
@@ -192,7 +191,7 @@
     public function testDefaultLogger()
     {
         try {
-            $logger = $this->createMock(LoggerInterface::class);
+            $logger = new NullLogger();
             $handler = ErrorHandler::register();
 
             $handler->setDefaultLogger($logger, \E_NOTICE);
@@ -333,7 +332,7 @@
 
     public function testHandleErrorWithAnonymousClass()
     {
-        $anonymousObject = new class() extends \stdClass {
+        $anonymousObject = new class extends \stdClass {
         };
 
         $handler = ErrorHandler::register();
@@ -422,7 +421,7 @@
             ['Uncaught Exception: foo', new \Exception('foo')],
             ['Uncaught Exception: foo', new class('foo') extends \RuntimeException {
             }],
-            ['Uncaught Exception: foo stdClass@anonymous bar', new \RuntimeException('foo '.(new class() extends \stdClass {
+            ['Uncaught Exception: foo stdClass@anonymous bar', new \RuntimeException('foo '.(new class extends \stdClass {
             })::class.' bar')],
             ['Uncaught Error: bar', new \Error('bar')],
             ['Uncaught ccc', new \ErrorException('ccc')],
@@ -500,7 +499,7 @@
             ->method('log')
             ->with(LogLevel::CRITICAL, 'Uncaught Exception: Foo message', ['exception' => $exception]);
 
-        $handler->setExceptionHandler(function () use ($handler, $mockLogger) {
+        $handler->setExceptionHandler(static function () use ($handler, $mockLogger) {
             $handler->setDefaultLogger($mockLogger);
         });
 
@@ -547,7 +546,7 @@
         $exception = new \Error("Class 'IReallyReallyDoNotExistAnywhereInTheRepositoryISwear' not found");
 
         $handler = new ErrorHandler();
-        $handler->setExceptionHandler(function () use (&$args) {
+        $handler->setExceptionHandler(static function () use (&$args) {
             $args = \func_get_args();
         });
 
@@ -561,7 +560,7 @@
     {
         $this->expectException(\Exception::class);
         $handler = new ErrorHandler();
-        $handler->setExceptionHandler(function ($e) use ($handler) {
+        $handler->setExceptionHandler(static function ($e) use ($handler) {
             $handler->setExceptionHandler(null);
             $handler->handleException($e);
         });
@@ -641,7 +640,7 @@
             $this->markTestSkipped('zend.assertions is forcibly disabled');
         }
 
-        set_error_handler(function () {});
+        set_error_handler(static function () {});
         $ini = [
             ini_set('zend.assertions', 1),
             ini_set('assert.active', 1),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/FileLinkFormatterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/FileLinkFormatterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/FileLinkFormatterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/FileLinkFormatterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -91,9 +91,7 @@
      */
     public function testIdeFileLinkFormatWithPathMappingParameters($mappings)
     {
-        $params = array_reduce($mappings, function ($c, $m) {
-            return "$c&".implode('>', $m);
-        }, '');
+        $params = array_reduce($mappings, static fn ($c, $m) => "$c&".implode('>', $m), '');
         $sut = new FileLinkFormatter("vscode://file/%f:%l$params");
         foreach ($mappings as $mapping) {
             $fileGuest = $mapping['guest'].'file.php';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/HtmlErrorRendererTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/HtmlErrorRendererTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/HtmlErrorRendererTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/HtmlErrorRendererTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,20 +27,20 @@
     public static function getRenderData(): iterable
     {
         $expectedDebug = <<<HTML
-<!-- Foo (500 Internal Server Error) -->
-<!DOCTYPE html>
-<html lang="en">
-%A<title>Foo (500 Internal Server Error)</title>
-%A<div class="trace trace-as-html" id="trace-box-1">%A
-<!-- Foo (500 Internal Server Error) -->
-HTML;
+            <!-- Foo (500 Internal Server Error) -->
+            <!DOCTYPE html>
+            <html lang="en">
+            %A<title>Foo (500 Internal Server Error)</title>
+            %A<div class="trace trace-as-html" id="trace-box-1">%A
+            <!-- Foo (500 Internal Server Error) -->
+            HTML;
 
         $expectedNonDebug = <<<HTML
-<!DOCTYPE html>
-<html lang="en">
-%A<title>An Error Occurred: Internal Server Error</title>
-%A<h2>The server returned a "500 Internal Server Error".</h2>%A
-HTML;
+            <!DOCTYPE html>
+            <html lang="en">
+            %A<title>An Error Occurred: Internal Server Error</title>
+            %A<h2>The server returned a "500 Internal Server Error".</h2>%A
+            HTML;
 
         yield '->render() returns the HTML content WITH stack traces in debug mode' => [
             new \RuntimeException('Foo'),
@@ -100,7 +100,7 @@
 
     public function testRendersStackWithoutBinaryStrings()
     {
-        // make sure method arguments are available in stack traces (see https://www.php.net/manual/en/ini.core.php)
+        // make sure method arguments are available in stack traces (see https://php.net/ini.core)
         ini_set('zend.exception_ignore_args', false);
 
         $binaryData = file_get_contents(__DIR__.'/../Fixtures/pixel.png');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/SerializerErrorRendererTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/SerializerErrorRendererTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/SerializerErrorRendererTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/SerializerErrorRendererTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
         $exception = new \RuntimeException('Foo');
         $errorRenderer = new SerializerErrorRenderer(
             new Serializer([new ProblemNormalizer()], [new JsonEncoder()]),
-            fn () => 'json'
+            static fn () => 'json'
         );
 
         $this->assertSame('{"type":"https:\/\/tools.ietf.org\/html\/rfc2616#section-10","title":"An error occurred","status":500,"detail":"Internal Server Error"}', $errorRenderer->render($exception)->getAsString());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/Exception/FlattenExceptionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/Exception/FlattenExceptionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/Exception/FlattenExceptionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/Exception/FlattenExceptionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -245,7 +245,7 @@
 
     public function testAnonymousClass()
     {
-        $flattened = FlattenException::createFromThrowable(new class() extends \RuntimeException {
+        $flattened = FlattenException::createFromThrowable(new class extends \RuntimeException {
         });
 
         $this->assertSame('RuntimeException@anonymous', $flattened->getClass());
@@ -255,7 +255,7 @@
 
         $this->assertSame('Symfony\Component\HttpKernel\Exception\NotFoundHttpException@anonymous', $flattened->getClass());
 
-        $flattened = FlattenException::createFromThrowable(new \Exception(sprintf('Class "%s" blah.', (new class() extends \RuntimeException {
+        $flattened = FlattenException::createFromThrowable(new \Exception(\sprintf('Class "%s" blah.', (new class extends \RuntimeException {
         })::class)));
 
         $this->assertSame('Class "RuntimeException@anonymous" blah.', $flattened->getMessage());
@@ -273,7 +273,7 @@
 
     public function testToString()
     {
-        $test = fn ($a, $b, $c, $d) => new \RuntimeException('This is a test message');
+        $test = static fn ($a, $b, $c, $d) => new \RuntimeException('This is a test message');
 
         $exception = $test('foo123', 1, null, 1.5);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/Fixtures/VirtualInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/Fixtures/VirtualInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/Fixtures/VirtualInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/Fixtures/VirtualInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,8 +21,8 @@
  * @method unknownType|string invalidInterfaceMethodNoBraces
  *
  * Complex
- * @method              complexInterfaceMethod($arg, ...$args)
- * @method string[]|int complexInterfaceMethodTyped($arg, int ...$args) Description ...
+ * @method                                 complexInterfaceMethod($arg, ...$args)
+ * @method array<string, int>|string[]|int complexInterfaceMethodTyped($arg, int ...$args) Description ...
  *
  * Static
  * @method static Foo&Bar staticMethod()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/Fixtures/VirtualInterfaceWithCall.php symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/Fixtures/VirtualInterfaceWithCall.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ErrorHandler/Tests/Fixtures/VirtualInterfaceWithCall.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ErrorHandler/Tests/Fixtures/VirtualInterfaceWithCall.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,11 @@
+<?php
+
+namespace Symfony\Component\ErrorHandler\Tests\Fixtures;
+
+/**
+ * @method string magicInterfaceMethod()
+ */
+interface VirtualInterfaceWithCall
+{
+    public function __call(string $name, array $arguments): mixed;
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,6 +40,9 @@
     private EventDispatcherInterface $dispatcher;
     private array $wrappedListeners = [];
     private array $orphanedEvents = [];
+    private array $dispatchDepth = [];
+    private array $calledListenerInfos = [];
+    private array $calledOriginalListeners = [];
     private ?RequestStack $requestStack;
     private string $currentRequestHash = '';
 
@@ -127,7 +130,7 @@
         $currentRequestHash = $this->currentRequestHash = $this->requestStack && ($request = $this->requestStack->getCurrentRequest()) ? spl_object_hash($request) : '';
 
         if (null !== $this->logger && $event instanceof StoppableEventInterface && $event->isPropagationStopped()) {
-            $this->logger->debug(sprintf('The "%s" event is already stopped. No listeners have been called.', $eventName));
+            $this->logger->debug(\sprintf('The "%s" event is already stopped. No listeners have been called.', $eventName));
         }
 
         $this->preProcess($eventName);
@@ -155,20 +158,20 @@
 
     public function getCalledListeners(?Request $request = null): array
     {
-        if (null === $this->callStack) {
+        if (!$this->calledListenerInfos) {
             return [];
         }
 
         $hash = $request ? spl_object_hash($request) : null;
         $called = [];
-        foreach ($this->callStack as $listener) {
-            [$eventName, $requestHash] = $this->callStack->getInfo();
+
+        foreach ($this->calledListenerInfos as $requestHash => $infos) {
             if (null === $hash || $hash === $requestHash) {
-                $called[] = $listener->getInfo($eventName);
+                $called[] = $infos;
             }
         }
 
-        return $called;
+        return $called ? array_merge(...$called) : [];
     }
 
     public function getNotCalledListeners(?Request $request = null): array
@@ -185,16 +188,14 @@
         $hash = $request ? spl_object_hash($request) : null;
         $calledListeners = [];
 
-        if (null !== $this->callStack) {
-            foreach ($this->callStack as $calledListener) {
-                [, $requestHash] = $this->callStack->getInfo();
-
-                if (null === $hash || $hash === $requestHash) {
-                    $calledListeners[] = $calledListener->getWrappedListener();
-                }
+        foreach ($this->calledOriginalListeners as $requestHash => $eventListeners) {
+            if (null === $hash || $hash === $requestHash) {
+                $calledListeners[] = array_merge(...array_values($eventListeners));
             }
         }
 
+        $calledListeners = $calledListeners ? array_merge(...$calledListeners) : [];
+
         $notCalled = [];
 
         foreach ($allListeners as $eventName => $listeners) {
@@ -234,6 +235,9 @@
         $this->callStack = null;
         $this->orphanedEvents = [];
         $this->currentRequestHash = '';
+        $this->dispatchDepth = [];
+        $this->calledListenerInfos = [];
+        $this->calledOriginalListeners = [];
     }
 
     /**
@@ -267,6 +271,8 @@
 
     private function preProcess(string $eventName): void
     {
+        $this->dispatchDepth[$eventName] = ($this->dispatchDepth[$eventName] ?? 0) + 1;
+
         if (!$this->dispatcher->hasListeners($eventName)) {
             $this->orphanedEvents[$this->currentRequestHash][] = $eventName;
 
@@ -274,17 +280,23 @@
         }
 
         foreach ($this->dispatcher->getListeners($eventName) as $listener) {
-            $priority = $this->getListenerPriority($eventName, $listener);
+            $priority = $this->getListenerPriority($eventName, $listener) ?? 0;
             $wrappedListener = new WrappedListener($listener instanceof WrappedListener ? $listener->getWrappedListener() : $listener, null, $this->stopwatch, $this);
             $this->wrappedListeners[$eventName][] = $wrappedListener;
             $this->dispatcher->removeListener($eventName, $listener);
             $this->dispatcher->addListener($eventName, $wrappedListener, $priority);
-            $this->callStack->attach($wrappedListener, [$eventName, $this->currentRequestHash]);
+            $this->callStack[$wrappedListener] = [$eventName, $this->currentRequestHash];
         }
     }
 
     private function postProcess(string $eventName): void
     {
+        if (null === $this->callStack) {
+            return;
+        }
+
+        $this->dispatchDepth[$eventName] = ($this->dispatchDepth[$eventName] ?? 1) - 1;
+
         unset($this->wrappedListeners[$eventName]);
         $skipped = false;
         foreach ($this->dispatcher->getListeners($eventName) as $listener) {
@@ -302,10 +314,16 @@
 
             if ($listener->wasCalled()) {
                 $this->logger?->debug('Notified event "{event}" to listener "{listener}".', $context);
-            } else {
-                $this->callStack->detach($listener);
+
+                $original = $listener->getWrappedListener();
+                if (!\in_array($original, $this->calledOriginalListeners[$this->currentRequestHash][$eventName] ?? [], true)) {
+                    $this->calledOriginalListeners[$this->currentRequestHash][$eventName][] = $original;
+                    $this->calledListenerInfos[$this->currentRequestHash][] = $listener->getInfo($eventName);
+                }
             }
 
+            unset($this->callStack[$listener]);
+
             if (null !== $this->logger && $skipped) {
                 $this->logger->debug('Listener "{listener}" was not called for event "{event}".', $context);
             }
@@ -316,6 +334,28 @@
                 $skipped = true;
             }
         }
+
+        if (0 < $this->dispatchDepth[$eventName]) {
+            return;
+        }
+
+        // Clean up stale callStack entries left by nested same-event dispatches
+        $stale = [];
+        foreach ($this->callStack as $listener) {
+            if ($this->callStack->getInfo()[0] === $eventName) {
+                $stale[] = $listener;
+            }
+        }
+        foreach ($stale as $listener) {
+            if ($listener->wasCalled()) {
+                $original = $listener->getWrappedListener();
+                if (!\in_array($original, $this->calledOriginalListeners[$this->currentRequestHash][$eventName] ?? [], true)) {
+                    $this->calledOriginalListeners[$this->currentRequestHash][$eventName][] = $original;
+                    $this->calledListenerInfos[$this->currentRequestHash][] = $listener->getInfo($eventName);
+                }
+            }
+            unset($this->callStack[$listener]);
+        }
     }
 
     private function sortNotCalledListeners(array $a, array $b): int
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,12 +86,12 @@
                     $event['method'] = 'on'.preg_replace_callback([
                         '/(?<=\b|_)[a-z]/i',
                         '/[^a-z0-9]/i',
-                    ], fn ($matches) => strtoupper($matches[0]), $event['event']);
+                    ], static fn ($matches) => strtoupper($matches[0]), $event['event']);
                     $event['method'] = preg_replace('/[^a-z0-9]/i', '', $event['method']);
 
                     if (null !== ($class = $container->getDefinition($id)->getClass()) && ($r = $container->getReflectionClass($class, false)) && !$r->hasMethod($event['method'])) {
                         if (!$r->hasMethod('__invoke')) {
-                            throw new InvalidArgumentException(sprintf('None of the "%s" or "__invoke" methods exist for the service "%s". Please define the "method" attribute on "kernel.event_listener" tags.', $event['method'], $id));
+                            throw new InvalidArgumentException(\sprintf('None of the "%s" or "__invoke" methods exist for the service "%s". Please define the "method" attribute on "kernel.event_listener" tags.', $event['method'], $id));
                         }
 
                         $event['method'] = '__invoke';
@@ -126,10 +126,10 @@
             $class = $def->getClass();
 
             if (!$r = $container->getReflectionClass($class)) {
-                throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
+                throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
             }
             if (!$r->isSubclassOf(EventSubscriberInterface::class)) {
-                throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $id, EventSubscriberInterface::class));
+                throw new InvalidArgumentException(\sprintf('Service "%s" must implement interface "%s".', $id, EventSubscriberInterface::class));
             }
             $class = $r->name;
 
@@ -181,7 +181,7 @@
             || $type->isBuiltin()
             || Event::class === ($name = $type->getName())
         ) {
-            throw new InvalidArgumentException(sprintf('Service "%s" must define the "event" attribute on "kernel.event_listener" tags.', $id));
+            throw new InvalidArgumentException(\sprintf('Service "%s" must define the "event" attribute on "kernel.event_listener" tags.', $id));
         }
 
         return $name;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/GenericEvent.php symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/GenericEvent.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/GenericEvent.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/GenericEvent.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
             return $this->arguments[$key];
         }
 
-        throw new \InvalidArgumentException(sprintf('Argument "%s" not found.', $key));
+        throw new \InvalidArgumentException(\sprintf('Argument "%s" not found.', $key));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
         $dispatcher = new EventDispatcher();
         $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
 
-        $tdispatcher->addListener('foo', $listener = function () {});
+        $tdispatcher->addListener('foo', $listener = static function () {});
         $listeners = $dispatcher->getListeners('foo');
         $this->assertCount(1, $listeners);
         $this->assertSame($listener, $listeners[0]);
@@ -41,7 +41,7 @@
         $dispatcher = new EventDispatcher();
         $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
 
-        $tdispatcher->addListener('foo', $listener = function () {});
+        $tdispatcher->addListener('foo', $listener = static function () {});
         $this->assertSame($dispatcher->getListeners('foo'), $tdispatcher->getListeners('foo'));
     }
 
@@ -53,7 +53,7 @@
         $this->assertFalse($dispatcher->hasListeners('foo'));
         $this->assertFalse($tdispatcher->hasListeners('foo'));
 
-        $tdispatcher->addListener('foo', $listener = function () {});
+        $tdispatcher->addListener('foo', $listener = static function () {});
         $this->assertTrue($dispatcher->hasListeners('foo'));
         $this->assertTrue($tdispatcher->hasListeners('foo'));
     }
@@ -63,7 +63,7 @@
         $dispatcher = new EventDispatcher();
         $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
 
-        $tdispatcher->addListener('foo', function () {}, 123);
+        $tdispatcher->addListener('foo', static function () {}, 123);
 
         $listeners = $dispatcher->getListeners('foo');
         $this->assertSame(123, $tdispatcher->getListenerPriority('foo', $listeners[0]));
@@ -80,7 +80,7 @@
         $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
         $priorityWhileDispatching = null;
 
-        $listener = function () use ($tdispatcher, &$priorityWhileDispatching, &$listener) {
+        $listener = static function () use ($tdispatcher, &$priorityWhileDispatching, &$listener) {
             $priorityWhileDispatching = $tdispatcher->getListenerPriority('bar', $listener);
         };
 
@@ -108,7 +108,7 @@
     public function testGetCalledListeners()
     {
         $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $tdispatcher->addListener('foo', function () {}, 5);
+        $tdispatcher->addListener('foo', static function () {}, 5);
 
         $listeners = $tdispatcher->getNotCalledListeners();
         $this->assertArrayHasKey('stub', $listeners[0]);
@@ -140,7 +140,7 @@
     public function testClearCalledListeners()
     {
         $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $tdispatcher->addListener('foo', function () {}, 5);
+        $tdispatcher->addListener('foo', static function () {}, 5);
 
         $tdispatcher->dispatch(new Event(), 'foo');
         $tdispatcher->reset();
@@ -155,7 +155,7 @@
     public function testDispatchAfterReset()
     {
         $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $tdispatcher->addListener('foo', function () {}, 5);
+        $tdispatcher->addListener('foo', static function () {}, 5);
 
         $tdispatcher->reset();
         $tdispatcher->dispatch(new Event(), 'foo');
@@ -168,11 +168,11 @@
     {
         $tdispatcher = null;
         $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $dispatcher->addListener('foo', function (Event $event, $eventName, $dispatcher) use (&$tdispatcher) {
+        $dispatcher->addListener('foo', static function (Event $event, $eventName, $dispatcher) use (&$tdispatcher) {
             $tdispatcher = $dispatcher;
             $dispatcher->dispatch(new Event(), 'bar');
         });
-        $dispatcher->addListener('bar', function (Event $event) {});
+        $dispatcher->addListener('bar', static function (Event $event) {});
         $dispatcher->dispatch(new Event(), 'foo');
         $this->assertSame($dispatcher, $tdispatcher);
         $this->assertCount(2, $dispatcher->getCalledListeners());
@@ -197,7 +197,7 @@
     public function testItDoesNotReturnHandledEvents()
     {
         $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $tdispatcher->addListener('foo', function () {});
+        $tdispatcher->addListener('foo', static function () {});
         $tdispatcher->dispatch(new Event(), 'foo');
         $events = $tdispatcher->getOrphanedEvents();
         $this->assertEmpty($events);
@@ -209,8 +209,8 @@
 
         $dispatcher = new EventDispatcher();
         $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch(), $logger);
-        $tdispatcher->addListener('foo', $listener1 = function () {});
-        $tdispatcher->addListener('foo', $listener2 = function () {});
+        $tdispatcher->addListener('foo', $listener1 = static function () {});
+        $tdispatcher->addListener('foo', $listener2 = static function () {});
 
         $tdispatcher->dispatch(new Event(), 'foo');
 
@@ -234,8 +234,8 @@
 
         $dispatcher = new EventDispatcher();
         $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch(), $logger);
-        $tdispatcher->addListener('foo', $listener1 = function (Event $event) { $event->stopPropagation(); });
-        $tdispatcher->addListener('foo', $listener2 = function () {});
+        $tdispatcher->addListener('foo', $listener1 = static function (Event $event) { $event->stopPropagation(); });
+        $tdispatcher->addListener('foo', $listener2 = static function () {});
 
         $tdispatcher->dispatch(new Event(), 'foo');
 
@@ -264,8 +264,8 @@
 
         $dispatcher = new EventDispatcher();
         $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
-        $tdispatcher->addListener('foo', function () use (&$called) { $called[] = 'foo1'; }, 10);
-        $tdispatcher->addListener('foo', function () use (&$called) { $called[] = 'foo2'; }, 20);
+        $tdispatcher->addListener('foo', static function () use (&$called) { $called[] = 'foo1'; }, 10);
+        $tdispatcher->addListener('foo', static function () use (&$called) { $called[] = 'foo2'; }, 20);
 
         $tdispatcher->dispatch(new Event(), 'foo');
 
@@ -277,13 +277,13 @@
         $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
         $loop = 1;
         $dispatchedEvents = 0;
-        $dispatcher->addListener('foo', $listener1 = function () use ($dispatcher, &$loop) {
+        $dispatcher->addListener('foo', $listener1 = static function () use ($dispatcher, &$loop) {
             ++$loop;
             if (2 == $loop) {
                 $dispatcher->dispatch(new Event(), 'foo');
             }
         });
-        $dispatcher->addListener('foo', function () use (&$dispatchedEvents) {
+        $dispatcher->addListener('foo', static function () use (&$dispatchedEvents) {
             ++$dispatchedEvents;
         });
 
@@ -296,10 +296,10 @@
     {
         $nestedCall = false;
         $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $dispatcher->addListener('foo', function (Event $e) use ($dispatcher) {
+        $dispatcher->addListener('foo', static function (Event $e) use ($dispatcher) {
             $dispatcher->dispatch(new Event(), 'bar', $e);
         });
-        $dispatcher->addListener('bar', function (Event $e) use (&$nestedCall) {
+        $dispatcher->addListener('bar', static function (Event $e) use (&$nestedCall) {
             $nestedCall = true;
         });
 
@@ -311,11 +311,11 @@
     public function testListenerCanRemoveItselfWhenExecuted()
     {
         $eventDispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $listener1 = function ($event, $eventName, EventDispatcherInterface $dispatcher) use (&$listener1) {
+        $listener1 = static function ($event, $eventName, EventDispatcherInterface $dispatcher) use (&$listener1) {
             $dispatcher->removeListener('foo', $listener1);
         };
         $eventDispatcher->addListener('foo', $listener1);
-        $eventDispatcher->addListener('foo', function () {});
+        $eventDispatcher->addListener('foo', static function () {});
         $eventDispatcher->dispatch(new Event(), 'foo');
 
         $this->assertCount(1, $eventDispatcher->getListeners('foo'), 'expected listener1 to be removed');
@@ -331,6 +331,146 @@
         $events = $tdispatcher->getOrphanedEvents();
         $this->assertCount(0, $events);
     }
+
+    public function testCallStackIsNotLeakingOnRepeatedDispatch()
+    {
+        $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $tdispatcher->addListener('foo', static function () {}, 5);
+
+        for ($i = 0; $i < 5; ++$i) {
+            $tdispatcher->dispatch(new Event(), 'foo');
+        }
+
+        $this->assertCount(1, $tdispatcher->getCalledListeners());
+    }
+
+    public function testCallStackIsNotLeakingWithMultipleListeners()
+    {
+        $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $tdispatcher->addListener('foo', static function () {}, 10);
+        $tdispatcher->addListener('foo', static function () {}, 5);
+
+        for ($i = 0; $i < 5; ++$i) {
+            $tdispatcher->dispatch(new Event(), 'foo');
+        }
+
+        $this->assertCount(2, $tdispatcher->getCalledListeners());
+    }
+
+    public function testCallStackCleanupDoesNotAffectOtherEvents()
+    {
+        $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $tdispatcher->addListener('foo', static function () {});
+        $tdispatcher->addListener('bar', static function () {});
+
+        $tdispatcher->dispatch(new Event(), 'foo');
+        $tdispatcher->dispatch(new Event(), 'bar');
+        $tdispatcher->dispatch(new Event(), 'foo');
+
+        $this->assertCount(2, $tdispatcher->getCalledListeners());
+    }
+
+    public function testCallStackIsNotLeakingWithStoppedPropagation()
+    {
+        $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $tdispatcher->addListener('foo', static function (Event $event) { $event->stopPropagation(); }, 10);
+        $tdispatcher->addListener('foo', static function () {}, 5);
+
+        for ($i = 0; $i < 5; ++$i) {
+            $tdispatcher->dispatch(new Event(), 'foo');
+        }
+
+        $this->assertCount(1, $tdispatcher->getCalledListeners());
+        $this->assertCount(1, $tdispatcher->getNotCalledListeners());
+    }
+
+    public function testPreviouslyCalledListenerStaysCalledAfterLaterStopPropagation()
+    {
+        $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $tdispatcher->addListener('foo', static function () {}, 5);
+
+        $tdispatcher->dispatch(new Event(), 'foo');
+        $this->assertCount(1, $tdispatcher->getCalledListeners());
+
+        $tdispatcher->addListener('foo', static function (Event $event) { $event->stopPropagation(); }, 10);
+        $tdispatcher->dispatch(new Event(), 'foo');
+
+        $this->assertCount(2, $tdispatcher->getCalledListeners());
+        $this->assertCount(0, $tdispatcher->getNotCalledListeners());
+    }
+
+    public function testCallStackCleanupWhenEventBecomesOrphaned()
+    {
+        $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $listener = static function () {};
+        $tdispatcher->addListener('foo', $listener);
+
+        $tdispatcher->dispatch(new Event(), 'foo');
+        $this->assertCount(1, $tdispatcher->getCalledListeners());
+
+        $tdispatcher->removeListener('foo', $listener);
+        $tdispatcher->dispatch(new Event(), 'foo');
+
+        $this->assertCount(1, $tdispatcher->getCalledListeners());
+        $this->assertCount(1, $tdispatcher->getOrphanedEvents());
+    }
+
+    public function testCallStackIsNotLeakingWithNestedSameEventDispatch()
+    {
+        $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $iteration = 0;
+        $tdispatcher->addListener('foo', static function () use ($tdispatcher, &$iteration) {
+            if ($iteration++ < 1) {
+                $tdispatcher->dispatch(new Event(), 'foo');
+            }
+        });
+
+        $tdispatcher->dispatch(new Event(), 'foo');
+        $this->assertCount(1, $tdispatcher->getCalledListeners());
+    }
+
+    public function testCallStackIsNotLeakingWhenListenerIsAddedBetweenDispatches()
+    {
+        $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $tdispatcher->addListener('foo', static function () {}, 10);
+
+        $tdispatcher->dispatch(new Event(), 'foo');
+        $this->assertCount(1, $tdispatcher->getCalledListeners());
+
+        $tdispatcher->addListener('foo', static function () {}, 5);
+        $tdispatcher->dispatch(new Event(), 'foo');
+
+        $this->assertCount(2, $tdispatcher->getCalledListeners());
+    }
+
+    public function testResetDuringDispatch()
+    {
+        $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $tdispatcher->addListener('foo', static function () use ($tdispatcher) {
+            $tdispatcher->reset();
+        });
+
+        $tdispatcher->dispatch(new Event(), 'foo');
+
+        $this->assertSame([], $tdispatcher->getCalledListeners());
+    }
+
+    public function testCallStackIsNotLeakingWhenListenerIsRemovedBetweenDispatches()
+    {
+        $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $listenerA = static function () {};
+        $listenerB = static function () {};
+        $tdispatcher->addListener('foo', $listenerA, 10);
+        $tdispatcher->addListener('foo', $listenerB, 5);
+
+        $tdispatcher->dispatch(new Event(), 'foo');
+        $this->assertCount(2, $tdispatcher->getCalledListeners());
+
+        $tdispatcher->removeListener('foo', $listenerB);
+        $tdispatcher->dispatch(new Event(), 'foo');
+
+        $this->assertCount(2, $tdispatcher->getCalledListeners());
+    }
 }
 
 class EventSubscriber implements EventSubscriberInterface
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Tests/Debug/WrappedListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Tests/Debug/WrappedListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Tests/Debug/WrappedListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Tests/Debug/WrappedListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\EventDispatcher\Debug\WrappedListener;
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\Stopwatch\Stopwatch;
 use Symfony\Component\Stopwatch\StopwatchEvent;
@@ -24,7 +25,7 @@
      */
     public function testListenerDescription($listener, $expected)
     {
-        $wrappedListener = new WrappedListener($listener, null, $this->createMock(Stopwatch::class), $this->createMock(EventDispatcherInterface::class));
+        $wrappedListener = new WrappedListener($listener, null, new Stopwatch(), new EventDispatcher());
 
         $this->assertStringMatchesFormat($expected, $wrappedListener->getPretty());
     }
@@ -37,10 +38,10 @@
             [['Symfony\Component\EventDispatcher\Tests\Debug\FooListener', 'listenStatic'], 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listenStatic'],
             [['Symfony\Component\EventDispatcher\Tests\Debug\FooListener', 'invalidMethod'], 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::invalidMethod'],
             ['var_dump', 'var_dump'],
-            [function () {}, 'closure'],
+            [static function () {}, 'closure'],
             [\Closure::fromCallable([new FooListener(), 'listen']), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listen'],
             [\Closure::fromCallable(['Symfony\Component\EventDispatcher\Tests\Debug\FooListener', 'listenStatic']), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listenStatic'],
-            [\Closure::fromCallable(function () {}), 'closure'],
+            [\Closure::fromCallable(static function () {}), 'closure'],
             [[#[\Closure(name: FooListener::class)] static fn () => new FooListener(), 'listen'], 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listen'],
         ];
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -202,14 +202,14 @@
         $container = new ContainerBuilder();
         $container->setParameter('event_dispatcher.event_aliases', [AliasedEvent::class => 'aliased_event']);
 
-        $container->register('foo', \get_class(new class() {
+        $container->register('foo', \get_class(new class {
             public function onFooBar()
             {
             }
         }))->addTag('kernel.event_listener', ['event' => 'foo.bar']);
         $container->register('bar', InvokableListenerService::class)->addTag('kernel.event_listener', ['event' => 'foo.bar']);
         $container->register('baz', InvokableListenerService::class)->addTag('kernel.event_listener', ['event' => 'event']);
-        $container->register('zar', \get_class(new class() {
+        $container->register('zar', \get_class(new class {
             public function onFooBarZar()
             {
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -117,7 +117,7 @@
         $this->assertSame(-10, $this->dispatcher->getListenerPriority('pre.foo', $listener1));
         $this->assertSame(0, $this->dispatcher->getListenerPriority('pre.foo', $listener2));
         $this->assertNull($this->dispatcher->getListenerPriority('pre.bar', $listener2));
-        $this->assertNull($this->dispatcher->getListenerPriority('pre.foo', function () {}));
+        $this->assertNull($this->dispatcher->getListenerPriority('pre.foo', static function () {}));
     }
 
     public function testDispatch()
@@ -137,7 +137,7 @@
     public function testDispatchForClosure()
     {
         $invoked = 0;
-        $listener = function () use (&$invoked) {
+        $listener = static function () use (&$invoked) {
             ++$invoked;
         };
         $this->dispatcher->addListener('pre.foo', $listener);
@@ -163,13 +163,13 @@
     public function testDispatchByPriority()
     {
         $invoked = [];
-        $listener1 = function () use (&$invoked) {
+        $listener1 = static function () use (&$invoked) {
             $invoked[] = '1';
         };
-        $listener2 = function () use (&$invoked) {
+        $listener2 = static function () use (&$invoked) {
             $invoked[] = '2';
         };
-        $listener3 = function () use (&$invoked) {
+        $listener3 = static function () use (&$invoked) {
             $invoked[] = '3';
         };
         $this->dispatcher->addListener('pre.foo', $listener1, -10);
@@ -274,13 +274,13 @@
     {
         $dispatcher = $this->createEventDispatcher();
         $dispatcher->addListener('bug.62976', new CallableClass());
-        $dispatcher->removeListener('bug.62976', function () {});
+        $dispatcher->removeListener('bug.62976', static function () {});
         $this->assertTrue($dispatcher->hasListeners('bug.62976'));
     }
 
     public function testHasListenersWhenAddedCallbackListenerIsRemoved()
     {
-        $listener = function () {};
+        $listener = static function () {};
         $this->dispatcher->addListener('foo', $listener);
         $this->dispatcher->removeListener('foo', $listener);
         $this->assertFalse($this->dispatcher->hasListeners());
@@ -288,7 +288,7 @@
 
     public function testGetListenersWhenAddedCallbackListenerIsRemoved()
     {
-        $listener = function () {};
+        $listener = static function () {};
         $this->dispatcher->addListener('foo', $listener);
         $this->dispatcher->removeListener('foo', $listener);
         $this->assertSame([], $this->dispatcher->getListeners());
@@ -303,7 +303,7 @@
     public function testHasListenersIsLazy()
     {
         $called = 0;
-        $listener = [function () use (&$called) { ++$called; }, 'onFoo'];
+        $listener = [static function () use (&$called) { ++$called; }, 'onFoo'];
         $this->dispatcher->addListener('foo', $listener);
         $this->assertTrue($this->dispatcher->hasListeners());
         $this->assertTrue($this->dispatcher->hasListeners('foo'));
@@ -314,7 +314,7 @@
     {
         $dispatcher = new TestWithDispatcher();
         $called = 0;
-        $factory = function () use (&$called, $dispatcher) {
+        $factory = static function () use (&$called, $dispatcher) {
             ++$called;
 
             return $dispatcher;
@@ -337,7 +337,7 @@
     public function testRemoveFindsLazyListeners()
     {
         $test = new TestWithDispatcher();
-        $factory = fn () => $test;
+        $factory = static fn () => $test;
 
         $this->dispatcher->addListener('foo', [$factory, 'foo']);
         $this->assertTrue($this->dispatcher->hasListeners('foo'));
@@ -353,7 +353,7 @@
     public function testPriorityFindsLazyListeners()
     {
         $test = new TestWithDispatcher();
-        $factory = fn () => $test;
+        $factory = static fn () => $test;
 
         $this->dispatcher->addListener('foo', [$factory, 'foo'], 3);
         $this->assertSame(3, $this->dispatcher->getListenerPriority('foo', [$test, 'foo']));
@@ -366,7 +366,7 @@
     public function testGetLazyListeners()
     {
         $test = new TestWithDispatcher();
-        $factory = fn () => $test;
+        $factory = static fn () => $test;
 
         $this->dispatcher->addListener('foo', [$factory, 'foo'], 3);
         $this->assertSame([[$test, 'foo']], $this->dispatcher->getListeners('foo'));
@@ -381,7 +381,7 @@
         $testLoaded = false;
         $test = new TestEventListener();
         $this->dispatcher->addListener('foo', $test->postFoo(...));
-        $this->dispatcher->addListener('foo', [function () use ($test, &$testLoaded) {
+        $this->dispatcher->addListener('foo', [static function () use ($test, &$testLoaded) {
             $testLoaded = true;
 
             return $test;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,8 +11,8 @@
 
 namespace Symfony\Component\EventDispatcher\Tests;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 use Symfony\Component\EventDispatcher\ImmutableEventDispatcher;
@@ -23,73 +23,81 @@
  */
 class ImmutableEventDispatcherTest extends TestCase
 {
-    private MockObject&EventDispatcherInterface $innerDispatcher;
-    private ImmutableEventDispatcher $dispatcher;
-
-    protected function setUp(): void
-    {
-        $this->innerDispatcher = $this->createMock(EventDispatcherInterface::class);
-        $this->dispatcher = new ImmutableEventDispatcher($this->innerDispatcher);
-    }
-
     public function testDispatchDelegates()
     {
+        $innerDispatcher = $this->createMock(EventDispatcherInterface::class);
+        $dispatcher = new ImmutableEventDispatcher($innerDispatcher);
+
         $event = new Event();
         $resultEvent = new Event();
 
-        $this->innerDispatcher->expects($this->once())
+        $innerDispatcher->expects($this->once())
             ->method('dispatch')
             ->with($event, 'event')
             ->willReturn($resultEvent);
 
-        $this->assertSame($resultEvent, $this->dispatcher->dispatch($event, 'event'));
+        $this->assertSame($resultEvent, $dispatcher->dispatch($event, 'event'));
     }
 
     public function testGetListenersDelegates()
     {
-        $this->innerDispatcher->expects($this->once())
+        $innerDispatcher = $this->createMock(EventDispatcherInterface::class);
+        $dispatcher = new ImmutableEventDispatcher($innerDispatcher);
+
+        $innerDispatcher->expects($this->once())
             ->method('getListeners')
             ->with('event')
             ->willReturn(['result']);
 
-        $this->assertSame(['result'], $this->dispatcher->getListeners('event'));
+        $this->assertSame(['result'], $dispatcher->getListeners('event'));
     }
 
     public function testHasListenersDelegates()
     {
-        $this->innerDispatcher->expects($this->once())
+        $innerDispatcher = $this->createMock(EventDispatcherInterface::class);
+        $dispatcher = new ImmutableEventDispatcher($innerDispatcher);
+
+        $innerDispatcher->expects($this->once())
             ->method('hasListeners')
             ->with('event')
             ->willReturn(true);
 
-        $this->assertTrue($this->dispatcher->hasListeners('event'));
+        $this->assertTrue($dispatcher->hasListeners('event'));
     }
 
     public function testAddListenerDisallowed()
     {
+        $dispatcher = new ImmutableEventDispatcher(new EventDispatcher());
+
         $this->expectException(\BadMethodCallException::class);
-        $this->dispatcher->addListener('event', fn () => 'foo');
+        $dispatcher->addListener('event', static fn () => 'foo');
     }
 
     public function testAddSubscriberDisallowed()
     {
+        $dispatcher = new ImmutableEventDispatcher(new EventDispatcher());
+
         $this->expectException(\BadMethodCallException::class);
-        $subscriber = $this->createMock(EventSubscriberInterface::class);
+        $subscriber = $this->createStub(EventSubscriberInterface::class);
 
-        $this->dispatcher->addSubscriber($subscriber);
+        $dispatcher->addSubscriber($subscriber);
     }
 
     public function testRemoveListenerDisallowed()
     {
+        $dispatcher = new ImmutableEventDispatcher(new EventDispatcher());
+
         $this->expectException(\BadMethodCallException::class);
-        $this->dispatcher->removeListener('event', fn () => 'foo');
+        $dispatcher->removeListener('event', static fn () => 'foo');
     }
 
     public function testRemoveSubscriberDisallowed()
     {
+        $dispatcher = new ImmutableEventDispatcher(new EventDispatcher());
+
         $this->expectException(\BadMethodCallException::class);
-        $subscriber = $this->createMock(EventSubscriberInterface::class);
+        $subscriber = $this->createStub(EventSubscriberInterface::class);
 
-        $this->dispatcher->removeSubscriber($subscriber);
+        $dispatcher->removeSubscriber($subscriber);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Compiler.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Compiler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Compiler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Compiler.php	2026-05-20 10:56:49.000000000 +0200
@@ -101,7 +101,7 @@
      */
     public function string(string $value): static
     {
-        $this->source .= sprintf('"%s"', addcslashes($value, "\0\t\"\$\\"));
+        $this->source .= \sprintf('"%s"', addcslashes($value, "\0\t\"\$\\"));
 
         return $this;
     }
@@ -114,15 +114,7 @@
     public function repr(mixed $value): static
     {
         if (\is_int($value) || \is_float($value)) {
-            if (false !== $locale = setlocale(\LC_NUMERIC, 0)) {
-                setlocale(\LC_NUMERIC, 'C');
-            }
-
-            $this->raw($value);
-
-            if (false !== $locale) {
-                setlocale(\LC_NUMERIC, $locale);
-            }
+            $this->raw(var_export($value, true));
         } elseif (null === $value) {
             $this->raw('null');
         } elseif (\is_bool($value)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/ExpressionFunction.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/ExpressionFunction.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/ExpressionFunction.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/ExpressionFunction.php	2026-05-20 10:56:49.000000000 +0200
@@ -74,17 +74,17 @@
     {
         $phpFunctionName = ltrim($phpFunctionName, '\\');
         if (!\function_exists($phpFunctionName)) {
-            throw new \InvalidArgumentException(sprintf('PHP function "%s" does not exist.', $phpFunctionName));
+            throw new \InvalidArgumentException(\sprintf('PHP function "%s" does not exist.', $phpFunctionName));
         }
 
         $parts = explode('\\', $phpFunctionName);
         if (!$expressionFunctionName && \count($parts) > 1) {
-            throw new \InvalidArgumentException(sprintf('An expression function name must be defined when PHP function "%s" is namespaced.', $phpFunctionName));
+            throw new \InvalidArgumentException(\sprintf('An expression function name must be defined when PHP function "%s" is namespaced.', $phpFunctionName));
         }
 
-        $compiler = fn (...$args) => sprintf('\%s(%s)', $phpFunctionName, implode(', ', $args));
+        $compiler = static fn (...$args) => \sprintf('\%s(%s)', $phpFunctionName, implode(', ', $args));
 
-        $evaluator = fn ($p, ...$args) => $phpFunctionName(...$args);
+        $evaluator = static fn ($p, ...$args) => $phpFunctionName(...$args);
 
         return new self($expressionFunctionName ?: end($parts), $compiler, $evaluator);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php	2026-05-20 10:56:49.000000000 +0200
@@ -151,12 +151,12 @@
         $this->addFunction(ExpressionFunction::fromPhp('constant'));
 
         $this->addFunction(new ExpressionFunction('enum',
-            static fn ($str): string => sprintf("(\constant(\$v = (%s))) instanceof \UnitEnum ? \constant(\$v) : throw new \TypeError(\sprintf('The string \"%%s\" is not the name of a valid enum case.', \$v))", $str),
+            static fn ($str): string => \sprintf("(\constant(\$v = (%s))) instanceof \UnitEnum ? \constant(\$v) : throw new \TypeError(\sprintf('The string \"%%s\" is not the name of a valid enum case.', \$v))", $str),
             static function ($arguments, $str): \UnitEnum {
                 $value = \constant($str);
 
                 if (!$value instanceof \UnitEnum) {
-                    throw new \TypeError(sprintf('The string "%s" is not the name of a valid enum case.', $str));
+                    throw new \TypeError(\sprintf('The string "%s" is not the name of a valid enum case.', $str));
                 }
 
                 return $value;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Lexer.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Lexer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Lexer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Lexer.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,12 +55,12 @@
             } elseif (str_contains(')]}', $expression[$cursor])) {
                 // closing bracket
                 if (!$brackets) {
-                    throw new SyntaxError(sprintf('Unexpected "%s".', $expression[$cursor]), $cursor, $expression);
+                    throw new SyntaxError(\sprintf('Unexpected "%s".', $expression[$cursor]), $cursor, $expression);
                 }
 
                 [$expect, $cur] = array_pop($brackets);
                 if ($expression[$cursor] != strtr($expect, '([{', ')]}')) {
-                    throw new SyntaxError(sprintf('Unclosed "%s".', $expect), $cur, $expression);
+                    throw new SyntaxError(\sprintf('Unclosed "%s".', $expect), $cur, $expression);
                 }
 
                 $tokens[] = new Token(Token::PUNCTUATION_TYPE, $expression[$cursor], $cursor + 1);
@@ -91,7 +91,7 @@
                 $cursor += \strlen($match[0]);
             } else {
                 // unlexable
-                throw new SyntaxError(sprintf('Unexpected character "%s".', $expression[$cursor]), $cursor, $expression);
+                throw new SyntaxError(\sprintf('Unexpected character "%s".', $expression[$cursor]), $cursor, $expression);
             }
         }
 
@@ -99,7 +99,7 @@
 
         if ($brackets) {
             [$expect, $cur] = array_pop($brackets);
-            throw new SyntaxError(sprintf('Unclosed "%s".', $expect), $cur, $expression);
+            throw new SyntaxError(\sprintf('Unclosed "%s".', $expect), $cur, $expression);
         }
 
         return new TokenStream($tokens, $expression);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Node/BinaryNode.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Node/BinaryNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Node/BinaryNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Node/BinaryNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
 
         if (isset(self::FUNCTIONS[$operator])) {
             $compiler
-                ->raw(sprintf('%s(', self::FUNCTIONS[$operator]))
+                ->raw(\sprintf('%s(', self::FUNCTIONS[$operator]))
                 ->compile($this->nodes['left'])
                 ->raw(', ')
                 ->compile($this->nodes['right'])
@@ -194,7 +194,7 @@
 
     private function evaluateMatches(string $regexp, ?string $str): int
     {
-        set_error_handler(static fn ($t, $m) => throw new SyntaxError(sprintf('Regexp "%s" passed to "matches" is not valid', $regexp).substr($m, 12)));
+        set_error_handler(static fn ($t, $m) => throw new SyntaxError(\sprintf('Regexp "%s" passed to "matches" is not valid', $regexp).substr($m, 12)));
         try {
             return preg_match($regexp, (string) $str);
         } finally {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Node/GetAttrNode.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Node/GetAttrNode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Node/GetAttrNode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Node/GetAttrNode.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
                 }
 
                 if (!\is_object($obj)) {
-                    throw new \RuntimeException(sprintf('Unable to get property "%s" of non-object "%s".', $this->nodes['attribute']->dump(), $this->nodes['node']->dump()));
+                    throw new \RuntimeException(\sprintf('Unable to get property "%s" of non-object "%s".', $this->nodes['attribute']->dump(), $this->nodes['node']->dump()));
                 }
 
                 $property = $this->nodes['attribute']->attributes['value'];
@@ -107,10 +107,10 @@
                 }
 
                 if (!\is_object($obj)) {
-                    throw new \RuntimeException(sprintf('Unable to call method "%s" of non-object "%s".', $this->nodes['attribute']->dump(), $this->nodes['node']->dump()));
+                    throw new \RuntimeException(\sprintf('Unable to call method "%s" of non-object "%s".', $this->nodes['attribute']->dump(), $this->nodes['node']->dump()));
                 }
                 if (!\is_callable($toCall = [$obj, $this->nodes['attribute']->attributes['value']])) {
-                    throw new \RuntimeException(sprintf('Unable to call method "%s" of object "%s".', $this->nodes['attribute']->attributes['value'], get_debug_type($obj)));
+                    throw new \RuntimeException(\sprintf('Unable to call method "%s" of object "%s".', $this->nodes['attribute']->attributes['value'], get_debug_type($obj)));
                 }
 
                 return $toCall(...array_values($this->nodes['arguments']->evaluate($functions, $values)));
@@ -123,7 +123,7 @@
                 }
 
                 if (!\is_array($array) && !$array instanceof \ArrayAccess && !(null === $array && $this->attributes['is_null_coalesce'])) {
-                    throw new \RuntimeException(sprintf('Unable to get an item of non-array "%s".', $this->nodes['node']->dump()));
+                    throw new \RuntimeException(\sprintf('Unable to get an item of non-array "%s".', $this->nodes['node']->dump()));
                 }
 
                 if ($this->attributes['is_null_coalesce']) {
@@ -141,12 +141,13 @@
 
     public function toArray(): array
     {
+        $nullSafe = $this->nodes['attribute'] instanceof ConstantNode && $this->nodes['attribute']->isNullSafe;
         switch ($this->attributes['type']) {
             case self::PROPERTY_CALL:
-                return [$this->nodes['node'], '.', $this->nodes['attribute']];
+                return [$this->nodes['node'], $nullSafe ? '?.' : '.', $this->nodes['attribute']];
 
             case self::METHOD_CALL:
-                return [$this->nodes['node'], '.', $this->nodes['attribute'], '(', $this->nodes['arguments'], ')'];
+                return [$this->nodes['node'], $nullSafe ? '?.' : '.', $this->nodes['attribute'], '(', $this->nodes['arguments'], ')'];
 
             case self::ARRAY_CALL:
                 return [$this->nodes['node'], '[', $this->nodes['attribute'], ']'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Node/Node.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Node/Node.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Node/Node.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Node/Node.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
     {
         $attributes = [];
         foreach ($this->attributes as $name => $value) {
-            $attributes[] = sprintf('%s: %s', $name, str_replace("\n", '', var_export($value, true)));
+            $attributes[] = \sprintf('%s: %s', $name, str_replace("\n", '', var_export($value, true)));
         }
 
         $repr = [str_replace('Symfony\Component\ExpressionLanguage\Node\\', '', static::class).'('.implode(', ', $attributes)];
@@ -87,7 +87,7 @@
      */
     public function toArray()
     {
-        throw new \BadMethodCallException(sprintf('Dumping a "%s" instance is not supported yet.', static::class));
+        throw new \BadMethodCallException(\sprintf('Dumping a "%s" instance is not supported yet.', static::class));
     }
 
     /**
@@ -109,7 +109,7 @@
      */
     protected function dumpString(string $value)
     {
-        return sprintf('"%s"', addcslashes($value, "\0\t\"\\"));
+        return \sprintf('"%s"', addcslashes($value, "\0\t\"\\"));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Parser.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Parser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Parser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Parser.php	2026-05-20 10:56:49.000000000 +0200
@@ -122,7 +122,7 @@
 
         $node = $this->parseExpression();
         if (!$stream->isEOF()) {
-            throw new SyntaxError(sprintf('Unexpected token "%s" of value "%s".', $stream->current->type, $stream->current->value), $stream->current->cursor, $stream->getExpression());
+            throw new SyntaxError(\sprintf('Unexpected token "%s" of value "%s".', $stream->current->type, $stream->current->value), $stream->current->cursor, $stream->getExpression());
         }
 
         unset($this->stream, $this->names);
@@ -239,14 +239,14 @@
                     default:
                         if ('(' === $this->stream->current->value) {
                             if (false === isset($this->functions[$token->value])) {
-                                throw new SyntaxError(sprintf('The function "%s" does not exist.', $token->value), $token->cursor, $this->stream->getExpression(), $token->value, array_keys($this->functions));
+                                throw new SyntaxError(\sprintf('The function "%s" does not exist.', $token->value), $token->cursor, $this->stream->getExpression(), $token->value, array_keys($this->functions));
                             }
 
                             $node = new Node\FunctionNode($token->value, $this->parseArguments());
                         } else {
                             if (!$this->lint || \is_array($this->names)) {
                                 if (!\in_array($token->value, $this->names, true)) {
-                                    throw new SyntaxError(sprintf('Variable "%s" is not valid.', $token->value), $token->cursor, $this->stream->getExpression(), $token->value, $this->names);
+                                    throw new SyntaxError(\sprintf('Variable "%s" is not valid.', $token->value), $token->cursor, $this->stream->getExpression(), $token->value, $this->names);
                                 }
 
                                 // is the name used in the compiled code different
@@ -275,7 +275,7 @@
                 } elseif ($token->test(Token::PUNCTUATION_TYPE, '{')) {
                     $node = $this->parseHashExpression();
                 } else {
-                    throw new SyntaxError(sprintf('Unexpected token "%s" of value "%s".', $token->type, $token->value), $token->cursor, $this->stream->getExpression());
+                    throw new SyntaxError(\sprintf('Unexpected token "%s" of value "%s".', $token->type, $token->value), $token->cursor, $this->stream->getExpression());
                 }
         }
 
@@ -343,7 +343,7 @@
             } else {
                 $current = $this->stream->current;
 
-                throw new SyntaxError(sprintf('A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "%s" of value "%s".', $current->type, $current->value), $current->cursor, $this->stream->getExpression());
+                throw new SyntaxError(\sprintf('A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "%s" of value "%s".', $current->type, $current->value), $current->cursor, $this->stream->getExpression());
             }
 
             $this->stream->expect(Token::PUNCTUATION_TYPE, ':', 'A hash key must be followed by a colon (:)');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/SyntaxError.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/SyntaxError.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/SyntaxError.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/SyntaxError.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,9 +15,9 @@
 {
     public function __construct(string $message, int $cursor = 0, string $expression = '', ?string $subject = null, ?array $proposals = null)
     {
-        $message = sprintf('%s around position %d', rtrim($message, '.'), $cursor);
+        $message = \sprintf('%s around position %d', rtrim($message, '.'), $cursor);
         if ($expression) {
-            $message = sprintf('%s for expression `%s`', $message, $expression);
+            $message = \sprintf('%s for expression `%s`', $message, $expression);
         }
         $message .= '.';
 
@@ -32,7 +32,7 @@
             }
 
             if (isset($guess) && $minScore < 3) {
-                $message .= sprintf(' Did you mean "%s"?', $guess);
+                $message .= \sprintf(' Did you mean "%s"?', $guess);
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/ExpressionLanguageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/ExpressionLanguageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/ExpressionLanguageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/ExpressionLanguageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
         $cacheItemMock
             ->expects($this->exactly(2))
             ->method('get')
-            ->willReturnCallback(function () use (&$savedParsedExpression) {
+            ->willReturnCallback(static function () use (&$savedParsedExpression) {
                 return $savedParsedExpression;
             })
         ;
@@ -50,7 +50,7 @@
             ->expects($this->exactly(1))
             ->method('set')
             ->with($this->isInstanceOf(ParsedExpression::class))
-            ->willReturnCallback(function ($parsedExpression) use (&$savedParsedExpression, $cacheItemMock) {
+            ->willReturnCallback(static function ($parsedExpression) use (&$savedParsedExpression, $cacheItemMock) {
                 $savedParsedExpression = $parsedExpression;
 
                 return $cacheItemMock;
@@ -106,7 +106,7 @@
     {
         $result = null;
         $expressionLanguage = new ExpressionLanguage();
-        eval(sprintf('$result = %s;', $expressionLanguage->compile('enum("Symfony\\\\Component\\\\ExpressionLanguage\\\\Tests\\\\Fixtures\\\\FooEnum::Foo")')));
+        eval(\sprintf('$result = %s;', $expressionLanguage->compile('enum("Symfony\\\\Component\\\\ExpressionLanguage\\\\Tests\\\\Fixtures\\\\FooEnum::Foo")')));
 
         $this->assertSame(FooEnum::Foo, $result);
     }
@@ -122,7 +122,7 @@
     {
         $result = null;
         $expressionLanguage = new ExpressionLanguage();
-        eval(sprintf('$result = %s;', $expressionLanguage->compile('enum("Symfony\\\\Component\\\\ExpressionLanguage\\\\Tests\\\\Fixtures\\\\FooBackedEnum::Bar")')));
+        eval(\sprintf('$result = %s;', $expressionLanguage->compile('enum("Symfony\\\\Component\\\\ExpressionLanguage\\\\Tests\\\\Fixtures\\\\FooBackedEnum::Bar")')));
 
         $this->assertSame(FooBackedEnum::Bar, $result);
     }
@@ -156,7 +156,7 @@
     {
         $result = null;
         $expressionLanguage = new ExpressionLanguage();
-        eval(sprintf('$result = %s;', $expressionLanguage->compile($expression, $names)));
+        eval(\sprintf('$result = %s;', $expressionLanguage->compile($expression, $names)));
         $this->assertSame($expected, $result);
     }
 
@@ -236,7 +236,7 @@
         $cacheItemMock
             ->expects($this->exactly(2))
             ->method('get')
-            ->willReturnCallback(function () use (&$savedParsedExpression) {
+            ->willReturnCallback(static function () use (&$savedParsedExpression) {
                 return $savedParsedExpression;
             })
         ;
@@ -245,7 +245,7 @@
             ->expects($this->exactly(1))
             ->method('set')
             ->with($this->isInstanceOf(ParsedExpression::class))
-            ->willReturnCallback(function ($parsedExpression) use (&$savedParsedExpression, $cacheItemMock) {
+            ->willReturnCallback(static function ($parsedExpression) use (&$savedParsedExpression, $cacheItemMock) {
                 $savedParsedExpression = $parsedExpression;
 
                 return $cacheItemMock;
@@ -312,12 +312,12 @@
     public function testNullSafeCompile($expression, $foo)
     {
         $expressionLanguage = new ExpressionLanguage();
-        $this->assertNull(eval(sprintf('return %s;', $expressionLanguage->compile($expression, ['foo' => 'foo']))));
+        $this->assertNull(eval(\sprintf('return %s;', $expressionLanguage->compile($expression, ['foo' => 'foo']))));
     }
 
     public static function provideNullSafe()
     {
-        $foo = new class() extends \stdClass {
+        $foo = new class extends \stdClass {
             public function bar()
             {
                 return null;
@@ -375,7 +375,7 @@
         });
 
         try {
-            eval(sprintf('return %s;', $expressionLanguage->compile($expression, ['foo' => 'foo'])));
+            eval(\sprintf('return %s;', $expressionLanguage->compile($expression, ['foo' => 'foo'])));
         } finally {
             restore_error_handler();
         }
@@ -383,9 +383,9 @@
 
     public static function provideInvalidNullSafe()
     {
-        yield ['foo?.bar.baz', (object) ['bar' => null], 'Unable to get property "baz" of non-object "foo.bar".'];
-        yield ['foo?.bar["baz"]', (object) ['bar' => null], 'Unable to get an item of non-array "foo.bar".'];
-        yield ['foo?.bar["baz"].qux.quux', (object) ['bar' => ['baz' => null]], 'Unable to get property "qux" of non-object "foo.bar["baz"]".'];
+        yield ['foo?.bar.baz', (object) ['bar' => null], 'Unable to get property "baz" of non-object "foo?.bar".'];
+        yield ['foo?.bar["baz"]', (object) ['bar' => null], 'Unable to get an item of non-array "foo?.bar".'];
+        yield ['foo?.bar["baz"].qux.quux', (object) ['bar' => ['baz' => null]], 'Unable to get property "qux" of non-object "foo?.bar["baz"]".'];
     }
 
     /**
@@ -403,12 +403,12 @@
     public function testNullCoalescingCompile($expression, $foo)
     {
         $expressionLanguage = new ExpressionLanguage();
-        $this->assertSame(eval(sprintf('return %s;', $expressionLanguage->compile($expression, ['foo' => 'foo']))), 'default');
+        $this->assertSame(eval(\sprintf('return %s;', $expressionLanguage->compile($expression, ['foo' => 'foo']))), 'default');
     }
 
     public static function provideNullCoalescing()
     {
-        $foo = new class() extends \stdClass {
+        $foo = new class extends \stdClass {
             public function bar()
             {
                 return null;
@@ -444,17 +444,17 @@
     {
         return [
             [
-                function (ExpressionLanguage $el) {
-                    $el->register('fn', function () {}, function () {});
+                static function (ExpressionLanguage $el) {
+                    $el->register('fn', static function () {}, static function () {});
                 },
             ],
             [
-                function (ExpressionLanguage $el) {
-                    $el->addFunction(new ExpressionFunction('fn', function () {}, function () {}));
+                static function (ExpressionLanguage $el) {
+                    $el->addFunction(new ExpressionFunction('fn', static function () {}, static function () {}));
                 },
             ],
             [
-                function (ExpressionLanguage $el) {
+                static function (ExpressionLanguage $el) {
                     $el->registerProvider(new TestProvider());
                 },
             ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/ConstantNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/ConstantNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/ConstantNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/ConstantNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,13 +31,40 @@
     public static function getCompileData(): array
     {
         return [
+            // Booleans
             ['false', new ConstantNode(false)],
             ['true', new ConstantNode(true)],
+
+            // Null
             ['null', new ConstantNode(null)],
+
+            // Integers
             ['3', new ConstantNode(3)],
+            ['-10', new ConstantNode(-10)],
+            ['0', new ConstantNode(0)],
+
+            // Floats
             ['3.3', new ConstantNode(3.3)],
+            ['42.0', new ConstantNode(42.0)],
+            ['-1.23', new ConstantNode(-1.23)],
+            ['0.1', new ConstantNode(0.1)],
+            ['1.0', new ConstantNode(1.0)],
+            ['1.0E-6', new ConstantNode(1.0e-6)],
+            ['1.23456789E+20', new ConstantNode(1.23456789e+20)],
+            ['3.3', new ConstantNode(3.2999999999999998)],
+            ['0.30000000000000004', new ConstantNode(0.1 + 0.2)],
+            ['INF', new ConstantNode(\INF)],
+            ['-INF', new ConstantNode(-\INF)],
+            ['NAN', new ConstantNode(\NAN)],
+
+            // Strings
             ['"foo"', new ConstantNode('foo')],
+            ['""', new ConstantNode('')],
+            ['"a\\"b"', new ConstantNode('a"b')],
+
+            // Arrays
             ['[0 => 1, "b" => "a"]', new ConstantNode([1, 'b' => 'a'])],
+            ['[]', new ConstantNode([])],
         ];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/FunctionNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/FunctionNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/FunctionNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/FunctionNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,15 +34,15 @@
     public static function getDumpData(): array
     {
         return [
-            ['foo("bar")', new FunctionNode('foo', new Node([new ConstantNode('bar')])), ['foo' => static::getCallables()]],
+            ['foo("bar")', new FunctionNode('foo', new Node([new ConstantNode('bar')]))],
         ];
     }
 
     protected static function getCallables(): array
     {
         return [
-            'compiler' => fn ($arg) => sprintf('foo(%s)', $arg),
-            'evaluator' => fn ($variables, $arg) => $arg,
+            'compiler' => static fn ($arg) => \sprintf('foo(%s)', $arg),
+            'evaluator' => static fn ($variables, $arg) => $arg,
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/GetAttrNodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/GetAttrNodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/GetAttrNodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/GetAttrNodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\ExpressionLanguage\Tests\Node;
 
+use Symfony\Component\ExpressionLanguage\Node\ArgumentsNode;
 use Symfony\Component\ExpressionLanguage\Node\ArrayNode;
 use Symfony\Component\ExpressionLanguage\Node\ConstantNode;
 use Symfony\Component\ExpressionLanguage\Node\GetAttrNode;
@@ -50,10 +51,12 @@
             ['foo[0]', new GetAttrNode(new NameNode('foo'), new ConstantNode(0), self::getArrayNode(), GetAttrNode::ARRAY_CALL)],
             ['foo["b"]', new GetAttrNode(new NameNode('foo'), new ConstantNode('b'), self::getArrayNode(), GetAttrNode::ARRAY_CALL)],
 
-            ['foo.foo', new GetAttrNode(new NameNode('foo'), new NameNode('foo'), self::getArrayNode(), GetAttrNode::PROPERTY_CALL), ['foo' => new Obj()]],
+            ['foo.foo', new GetAttrNode(new NameNode('foo'), new NameNode('foo'), self::getArrayNode(), GetAttrNode::PROPERTY_CALL)],
 
-            ['foo.foo({"b": "a", 0: "b"})', new GetAttrNode(new NameNode('foo'), new NameNode('foo'), self::getArrayNode(), GetAttrNode::METHOD_CALL), ['foo' => new Obj()]],
+            ['foo.foo({"b": "a", 0: "b"})', new GetAttrNode(new NameNode('foo'), new NameNode('foo'), self::getArrayNode(), GetAttrNode::METHOD_CALL)],
             ['foo[index]', new GetAttrNode(new NameNode('foo'), new NameNode('index'), self::getArrayNode(), GetAttrNode::ARRAY_CALL)],
+
+            ['foo?.foo()', new GetAttrNode(new NameNode('foo'), new ConstantNode('foo', true, true), new ArgumentsNode(), GetAttrNode::METHOD_CALL)],
         ];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/NodeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/NodeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/NodeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Tests/Node/NodeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,11 +23,12 @@
         $node = new Node([new ConstantNode('foo')]);
 
         $this->assertEquals(<<<'EOF'
-Node(
-    ConstantNode(value: 'foo')
-)
-EOF
-            , (string) $node);
+            Node(
+                ConstantNode(value: 'foo')
+            )
+            EOF,
+            (string) $node
+        );
     }
 
     public function testSerialization()
@@ -51,7 +52,7 @@
         }
 
         $node = new Node($nodes);
-        $node->compile($this->createMock(Compiler::class));
+        $node->compile(new Compiler([]));
     }
 
     public function testEvaluateActuallyEvaluatesAllNodes()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Token.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Token.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/Token.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/Token.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
      */
     public function __toString(): string
     {
-        return sprintf('%3d %-11s %s', $this->cursor, strtoupper($this->type), $this->value);
+        return \sprintf('%3d %-11s %s', $this->cursor, strtoupper($this->type), $this->value);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/TokenStream.php symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/TokenStream.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/ExpressionLanguage/TokenStream.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/ExpressionLanguage/TokenStream.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
     {
         $token = $this->current;
         if (!$token->test($type, $value)) {
-            throw new SyntaxError(sprintf('%sUnexpected token "%s" of value "%s" ("%s" expected%s).', $message ? $message.'. ' : '', $token->type, $token->value, $type, $value ? sprintf(' with value "%s"', $value) : ''), $token->cursor, $this->expression);
+            throw new SyntaxError(\sprintf('%sUnexpected token "%s" of value "%s" ("%s" expected%s).', $message ? $message.'. ' : '', $token->type, $token->value, $type, $value ? \sprintf(' with value "%s"', $value) : ''), $token->cursor, $this->expression);
         }
         $this->next();
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Exception/FileNotFoundException.php symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Exception/FileNotFoundException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Exception/FileNotFoundException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Exception/FileNotFoundException.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
             if (null === $path) {
                 $message = 'File could not be found.';
             } else {
-                $message = sprintf('File "%s" could not be found.', $path);
+                $message = \sprintf('File "%s" could not be found.', $path);
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Filesystem.php symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Filesystem.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Filesystem.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Filesystem.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
     {
         $originIsLocal = stream_is_local($originFile) || 0 === stripos($originFile, 'file://');
         if ($originIsLocal && !is_file($originFile)) {
-            throw new FileNotFoundException(sprintf('Failed to copy "%s" because file does not exist.', $originFile), 0, null, $originFile);
+            throw new FileNotFoundException(\sprintf('Failed to copy "%s" because file does not exist.', $originFile), 0, null, $originFile);
         }
 
         $this->mkdir(\dirname($targetFile));
@@ -53,12 +53,12 @@
         if ($doCopy) {
             // https://bugs.php.net/64634
             if (!$source = self::box('fopen', $originFile, 'r')) {
-                throw new IOException(sprintf('Failed to copy "%s" to "%s" because source file could not be opened for reading: ', $originFile, $targetFile).self::$lastError, 0, null, $originFile);
+                throw new IOException(\sprintf('Failed to copy "%s" to "%s" because source file could not be opened for reading: ', $originFile, $targetFile).self::$lastError, 0, null, $originFile);
             }
 
             // Stream context created to allow files overwrite when using FTP stream wrapper - disabled by default
             if (!$target = self::box('fopen', $targetFile, 'w', false, stream_context_create(['ftp' => ['overwrite' => true]]))) {
-                throw new IOException(sprintf('Failed to copy "%s" to "%s" because target file could not be opened for writing: ', $originFile, $targetFile).self::$lastError, 0, null, $originFile);
+                throw new IOException(\sprintf('Failed to copy "%s" to "%s" because target file could not be opened for writing: ', $originFile, $targetFile).self::$lastError, 0, null, $originFile);
             }
 
             $bytesCopied = stream_copy_to_stream($source, $target);
@@ -67,18 +67,18 @@
             unset($source, $target);
 
             if (!is_file($targetFile)) {
-                throw new IOException(sprintf('Failed to copy "%s" to "%s".', $originFile, $targetFile), 0, null, $originFile);
+                throw new IOException(\sprintf('Failed to copy "%s" to "%s".', $originFile, $targetFile), 0, null, $originFile);
             }
 
             if ($originIsLocal) {
-                // Like `cp`, preserve executable permission bits
-                self::box('chmod', $targetFile, fileperms($targetFile) | (fileperms($originFile) & 0111));
+                // Like `cp`, preserve the source mode masked by the umask
+                self::box('chmod', $targetFile, fileperms($originFile) & 0o777 & ~umask());
 
                 // Like `cp`, preserve the file modification time
                 self::box('touch', $targetFile, filemtime($originFile));
 
                 if ($bytesCopied !== $bytesOrigin = filesize($originFile)) {
-                    throw new IOException(sprintf('Failed to copy the whole content of "%s" to "%s" (%g of %g bytes copied).', $originFile, $targetFile, $bytesCopied, $bytesOrigin), 0, null, $originFile);
+                    throw new IOException(\sprintf('Failed to copy the whole content of "%s" to "%s" (%g of %g bytes copied).', $originFile, $targetFile, $bytesCopied, $bytesOrigin), 0, null, $originFile);
                 }
             }
         }
@@ -91,7 +91,7 @@
      *
      * @throws IOException On any directory creation failure
      */
-    public function mkdir(string|iterable $dirs, int $mode = 0777)
+    public function mkdir(string|iterable $dirs, int $mode = 0o777)
     {
         foreach ($this->toIterable($dirs) as $dir) {
             if (is_dir($dir)) {
@@ -99,7 +99,7 @@
             }
 
             if (!self::box('mkdir', $dir, $mode, true) && !is_dir($dir)) {
-                throw new IOException(sprintf('Failed to create "%s": ', $dir).self::$lastError, 0, null, $dir);
+                throw new IOException(\sprintf('Failed to create "%s": ', $dir).self::$lastError, 0, null, $dir);
             }
         }
     }
@@ -113,7 +113,7 @@
 
         foreach ($this->toIterable($files) as $file) {
             if (\strlen($file) > $maxPathLength) {
-                throw new IOException(sprintf('Could not check if file exist because path length exceeds %d characters.', $maxPathLength), 0, null, $file);
+                throw new IOException(\sprintf('Could not check if file exist because path length exceeds %d characters.', $maxPathLength), 0, null, $file);
             }
 
             if (!file_exists($file)) {
@@ -138,7 +138,7 @@
     {
         foreach ($this->toIterable($files) as $file) {
             if (!($time ? self::box('touch', $file, $time, $atime) : self::box('touch', $file))) {
-                throw new IOException(sprintf('Failed to touch "%s": ', $file).self::$lastError, 0, null, $file);
+                throw new IOException(\sprintf('Failed to touch "%s": ', $file).self::$lastError, 0, null, $file);
             }
         }
     }
@@ -168,7 +168,7 @@
             if (is_link($file)) {
                 // See https://bugs.php.net/52176
                 if (!(self::box('unlink', $file) || '\\' !== \DIRECTORY_SEPARATOR || self::box('rmdir', $file)) && file_exists($file)) {
-                    throw new IOException(sprintf('Failed to remove symlink "%s": ', $file).self::$lastError);
+                    throw new IOException(\sprintf('Failed to remove symlink "%s": ', $file).self::$lastError);
                 }
             } elseif (is_dir($file)) {
                 if (!$isRecursive) {
@@ -199,10 +199,10 @@
                         $file = $origFile;
                     }
 
-                    throw new IOException(sprintf('Failed to remove directory "%s": ', $file).$lastError);
+                    throw new IOException(\sprintf('Failed to remove directory "%s": ', $file).$lastError);
                 }
             } elseif (!self::box('unlink', $file) && ((self::$lastError && str_contains(self::$lastError, 'Permission denied')) || file_exists($file))) {
-                throw new IOException(sprintf('Failed to remove file "%s": ', $file).self::$lastError);
+                throw new IOException(\sprintf('Failed to remove file "%s": ', $file).self::$lastError);
             }
         }
     }
@@ -218,11 +218,11 @@
      *
      * @throws IOException When the change fails
      */
-    public function chmod(string|iterable $files, int $mode, int $umask = 0000, bool $recursive = false)
+    public function chmod(string|iterable $files, int $mode, int $umask = 0o000, bool $recursive = false)
     {
         foreach ($this->toIterable($files) as $file) {
             if (!self::box('chmod', $file, $mode & ~$umask)) {
-                throw new IOException(sprintf('Failed to chmod file "%s": ', $file).self::$lastError, 0, null, $file);
+                throw new IOException(\sprintf('Failed to chmod file "%s": ', $file).self::$lastError, 0, null, $file);
             }
             if ($recursive && is_dir($file) && !is_link($file)) {
                 $this->chmod(new \FilesystemIterator($file), $mode, $umask, true);
@@ -235,7 +235,7 @@
      *
      * This method always throws on Windows, as the underlying PHP function is not supported.
      *
-     * @see https://www.php.net/chown
+     * @see https://php.net/chown
      *
      * @param string|int $user      A user name or number
      * @param bool       $recursive Whether change the owner recursively or not
@@ -252,11 +252,11 @@
             }
             if (is_link($file) && \function_exists('lchown')) {
                 if (!self::box('lchown', $file, $user)) {
-                    throw new IOException(sprintf('Failed to chown file "%s": ', $file).self::$lastError, 0, null, $file);
+                    throw new IOException(\sprintf('Failed to chown file "%s": ', $file).self::$lastError, 0, null, $file);
                 }
             } else {
                 if (!self::box('chown', $file, $user)) {
-                    throw new IOException(sprintf('Failed to chown file "%s": ', $file).self::$lastError, 0, null, $file);
+                    throw new IOException(\sprintf('Failed to chown file "%s": ', $file).self::$lastError, 0, null, $file);
                 }
             }
         }
@@ -267,7 +267,7 @@
      *
      * This method always throws on Windows, as the underlying PHP function is not supported.
      *
-     * @see https://www.php.net/chgrp
+     * @see https://php.net/chgrp
      *
      * @param string|int $group     A group name or number
      * @param bool       $recursive Whether change the group recursively or not
@@ -284,11 +284,11 @@
             }
             if (is_link($file) && \function_exists('lchgrp')) {
                 if (!self::box('lchgrp', $file, $group)) {
-                    throw new IOException(sprintf('Failed to chgrp file "%s": ', $file).self::$lastError, 0, null, $file);
+                    throw new IOException(\sprintf('Failed to chgrp file "%s": ', $file).self::$lastError, 0, null, $file);
                 }
             } else {
                 if (!self::box('chgrp', $file, $group)) {
-                    throw new IOException(sprintf('Failed to chgrp file "%s": ', $file).self::$lastError, 0, null, $file);
+                    throw new IOException(\sprintf('Failed to chgrp file "%s": ', $file).self::$lastError, 0, null, $file);
                 }
             }
         }
@@ -306,7 +306,7 @@
     {
         // we check that target does not exist
         if (!$overwrite && $this->isReadable($target)) {
-            throw new IOException(sprintf('Cannot rename because the target "%s" already exists.', $target), 0, null, $target);
+            throw new IOException(\sprintf('Cannot rename because the target "%s" already exists.', $target), 0, null, $target);
         }
 
         if (!self::box('rename', $origin, $target)) {
@@ -317,7 +317,7 @@
 
                 return;
             }
-            throw new IOException(sprintf('Cannot rename "%s" to "%s": ', $origin, $target).self::$lastError, 0, null, $target);
+            throw new IOException(\sprintf('Cannot rename "%s" to "%s": ', $origin, $target).self::$lastError, 0, null, $target);
         }
     }
 
@@ -331,7 +331,7 @@
         $maxPathLength = \PHP_MAXPATHLEN - 2;
 
         if (\strlen($filename) > $maxPathLength) {
-            throw new IOException(sprintf('Could not check if file is readable because path length exceeds %d characters.', $maxPathLength), 0, null, $filename);
+            throw new IOException(\sprintf('Could not check if file is readable because path length exceeds %d characters.', $maxPathLength), 0, null, $filename);
         }
 
         return is_readable($filename);
@@ -392,7 +392,7 @@
         }
 
         if (!is_file($originFile)) {
-            throw new FileNotFoundException(sprintf('Origin file "%s" is not a file.', $originFile));
+            throw new FileNotFoundException(\sprintf('Origin file "%s" is not a file.', $originFile));
         }
 
         foreach ($this->toIterable($targetFiles) as $targetFile) {
@@ -416,10 +416,10 @@
     {
         if (self::$lastError) {
             if ('\\' === \DIRECTORY_SEPARATOR && str_contains(self::$lastError, 'error code(1314)')) {
-                throw new IOException(sprintf('Unable to create "%s" link due to error code 1314: \'A required privilege is not held by the client\'. Do you have the required Administrator-rights?', $linkType), 0, null, $target);
+                throw new IOException(\sprintf('Unable to create "%s" link due to error code 1314: \'A required privilege is not held by the client\'. Do you have the required Administrator-rights?', $linkType), 0, null, $target);
             }
         }
-        throw new IOException(sprintf('Failed to create "%s" link from "%s" to "%s": ', $linkType, $origin, $target).self::$lastError, 0, null, $target);
+        throw new IOException(\sprintf('Failed to create "%s" link from "%s" to "%s": ', $linkType, $origin, $target).self::$lastError, 0, null, $target);
     }
 
     /**
@@ -456,24 +456,26 @@
     public function makePathRelative(string $endPath, string $startPath): string
     {
         if (!$this->isAbsolutePath($startPath)) {
-            throw new InvalidArgumentException(sprintf('The start path "%s" is not absolute.', $startPath));
+            throw new InvalidArgumentException(\sprintf('The start path "%s" is not absolute.', $startPath));
         }
 
         if (!$this->isAbsolutePath($endPath)) {
-            throw new InvalidArgumentException(sprintf('The end path "%s" is not absolute.', $endPath));
+            throw new InvalidArgumentException(\sprintf('The end path "%s" is not absolute.', $endPath));
         }
 
+        $originalEndPath = $endPath;
+
         // Normalize separators on Windows
         if ('\\' === \DIRECTORY_SEPARATOR) {
             $endPath = str_replace('\\', '/', $endPath);
             $startPath = str_replace('\\', '/', $startPath);
         }
 
-        $splitDriveLetter = fn ($path) => (\strlen($path) > 2 && ':' === $path[1] && '/' === $path[2] && ctype_alpha($path[0]))
+        $splitDriveLetter = static fn ($path) => (\strlen($path) > 2 && ':' === $path[1] && '/' === $path[2] && ctype_alpha($path[0]))
             ? [substr($path, 2), strtoupper($path[0])]
             : [$path, null];
 
-        $splitPath = function ($path) {
+        $splitPath = static function ($path) {
             $result = [];
 
             foreach (explode('/', trim($path, '/')) as $segment) {
@@ -519,6 +521,11 @@
         // Construct $endPath from traversing to the common path, then to the remaining $endPath
         $relativePath = $traverser.('' !== $endPathRemainder ? $endPathRemainder.'/' : '');
 
+        // Remove ending "/" if $endPath points to an existing file
+        if (str_ends_with($relativePath, '/') && is_file($originalEndPath)) {
+            $relativePath = substr($relativePath, 0, -1);
+        }
+
         return '' === $relativePath ? './' : $relativePath;
     }
 
@@ -548,7 +555,7 @@
         $originDirLen = \strlen($originDir);
 
         if (!$this->exists($originDir)) {
-            throw new IOException(sprintf('The origin directory specified "%s" was not found.', $originDir), 0, null, $originDir);
+            throw new IOException(\sprintf('The origin directory specified "%s" was not found.', $originDir), 0, null, $originDir);
         }
 
         // Iterate in destination folder to remove obsolete entries
@@ -592,7 +599,7 @@
             } elseif (is_file($file)) {
                 $this->copy($file, $target, $options['override'] ?? false);
             } else {
-                throw new IOException(sprintf('Unable to guess "%s" file type.', $file), 0, null, $file);
+                throw new IOException(\sprintf('Unable to guess "%s" file type.', $file), 0, null, $file);
             }
         }
     }
@@ -670,7 +677,7 @@
     public function dumpFile(string $filename, $content)
     {
         if (\is_array($content)) {
-            throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__));
+            throw new \TypeError(\sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__));
         }
 
         $dir = \dirname($filename);
@@ -691,16 +698,16 @@
 
         try {
             if (false === self::box('file_put_contents', $tmpFile, $content)) {
-                throw new IOException(sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename);
+                throw new IOException(\sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename);
             }
 
-            self::box('chmod', $tmpFile, self::box('fileperms', $filename) ?: 0666 & ~umask());
+            self::box('chmod', $tmpFile, self::box('fileperms', $filename) ?: 0o666 & ~umask());
 
             $this->rename($tmpFile, $filename, true);
         } finally {
             if (file_exists($tmpFile)) {
                 if ('\\' === \DIRECTORY_SEPARATOR && !is_writable($tmpFile)) {
-                    self::box('chmod', $tmpFile, self::box('fileperms', $tmpFile) | 0200);
+                    self::box('chmod', $tmpFile, self::box('fileperms', $tmpFile) | 0o200);
                 }
 
                 self::box('unlink', $tmpFile);
@@ -721,7 +728,7 @@
     public function appendToFile(string $filename, $content/* , bool $lock = false */)
     {
         if (\is_array($content)) {
-            throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__));
+            throw new \TypeError(\sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__));
         }
 
         $dir = \dirname($filename);
@@ -733,7 +740,7 @@
         $lock = \func_num_args() > 2 && func_get_arg(2);
 
         if (false === self::box('file_put_contents', $filename, $content, \FILE_APPEND | ($lock ? \LOCK_EX : 0))) {
-            throw new IOException(sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename);
+            throw new IOException(\sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename);
         }
     }
 
@@ -755,7 +762,7 @@
     private static function assertFunctionExists(string $func): void
     {
         if (!\function_exists($func)) {
-            throw new IOException(sprintf('Unable to perform filesystem operation because the "%s()" function has been disabled.', $func));
+            throw new IOException(\sprintf('Unable to perform filesystem operation because the "%s()" function has been disabled.', $func));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Path.php symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Path.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Path.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Path.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,9 +17,10 @@
 /**
  * Contains utility methods for handling path strings.
  *
- * The methods in this class are able to deal with both UNIX and Windows paths
- * with both forward and backward slashes. All methods return normalized parts
- * containing only forward slashes and no excess "." and ".." segments.
+ * The methods in this class are able to deal with both UNIX and Windows paths.
+ * On Windows, backward slashes are normalized to forward slashes. On UNIX,
+ * backward slashes are treated as valid filename characters and are not replaced.
+ * All methods return normalized parts with no excess "." and ".." segments.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  * @author Thomas Schulz <mail@king2500.net>
@@ -49,14 +50,11 @@
     /**
      * Canonicalizes the given path.
      *
-     * During normalization, all slashes are replaced by forward slashes ("/").
-     * Furthermore, all "." and ".." segments are removed as far as possible.
-     * ".." segments at the beginning of relative paths are not removed.
+     * During normalization, all "." and ".." segments are removed as far as
+     * possible. ".." segments at the beginning of relative paths are not removed.
+     * On Windows, backward slashes are replaced by forward slashes ("/").
      *
      * ```php
-     * echo Path::canonicalize("\symfony\puli\..\css\style.css");
-     * // => /symfony/css/style.css
-     *
      * echo Path::canonicalize("../css/./style.css");
      * // => ../css/style.css
      * ```
@@ -103,17 +101,16 @@
     /**
      * Normalizes the given path.
      *
-     * During normalization, all slashes are replaced by forward slashes ("/").
+     * On Windows, backward slashes are replaced by forward slashes ("/").
+     * On UNIX, backward slashes are preserved as they are valid filename characters.
      * Contrary to {@link canonicalize()}, this method does not remove invalid
      * or dot path segments. Consequently, it is much more efficient and should
      * be used whenever the given path is known to be a valid, absolute system
      * path.
-     *
-     * This method is able to deal with both UNIX and Windows paths.
      */
     public static function normalize(string $path): string
     {
-        return str_replace('\\', '/', $path);
+        return '\\' === \DIRECTORY_SEPARATOR ? str_replace('\\', '/', $path) : $path;
     }
 
     /**
@@ -225,8 +222,15 @@
 
         $firstCharacter = $path[0];
 
-        // UNIX root "/" or "\" (Windows style)
-        if ('/' === $firstCharacter || '\\' === $firstCharacter) {
+        if ('/' === $firstCharacter) {
+            return $scheme.'/';
+        }
+
+        if ('\\' !== \DIRECTORY_SEPARATOR) {
+            return '';
+        }
+
+        if ('\\' === $firstCharacter) {
             return $scheme.'/';
         }
 
@@ -239,7 +243,7 @@
                 return $scheme.$path.'/';
             }
 
-            // Normal case: "C:/ or "C:\"
+            // Normal case: "C:/" or "C:\"
             if ('/' === $path[2] || '\\' === $path[2]) {
                 return $scheme.$firstCharacter.$path[1].'/';
             }
@@ -346,44 +350,52 @@
         $extension = ltrim($extension, '.');
 
         // No extension for paths
-        if ('/' === substr($path, -1)) {
+        if (str_ends_with($path, '/')) {
             return $path;
         }
 
         // No actual extension in path
-        if (empty($actualExtension)) {
-            return $path.('.' === substr($path, -1) ? '' : '.').$extension;
+        if (!$actualExtension) {
+            return $path.(str_ends_with($path, '.') ? '' : '.').$extension;
         }
 
         return substr($path, 0, -\strlen($actualExtension)).$extension;
     }
 
+    /**
+     * Returns whether the given path is absolute.
+     */
     public static function isAbsolute(string $path): bool
     {
         if ('' === $path) {
             return false;
         }
 
-        // Strip scheme
-        if (false !== ($schemeSeparatorPosition = strpos($path, '://')) && 1 !== $schemeSeparatorPosition) {
-            $path = substr($path, $schemeSeparatorPosition + 3);
+        // URLs and stream wrappers are considered absolute
+        if (str_contains($path, '://') && null !== parse_url($path, \PHP_URL_SCHEME)) {
+            return true;
         }
 
-        $firstCharacter = $path[0];
+        if ('/' === $path[0]) {
+            return true;
+        }
+
+        if ('\\' !== \DIRECTORY_SEPARATOR) {
+            return false;
+        }
 
-        // UNIX root "/" or "\" (Windows style)
-        if ('/' === $firstCharacter || '\\' === $firstCharacter) {
+        if ('\\' === $path[0]) {
             return true;
         }
 
         // Windows root
-        if (\strlen($path) > 1 && ctype_alpha($firstCharacter) && ':' === $path[1]) {
+        if (\strlen($path) > 1 && ctype_alpha($path[0]) && ':' === $path[1]) {
             // Special case: "C:"
             if (2 === \strlen($path)) {
                 return true;
             }
 
-            // Normal case: "C:/ or "C:\"
+            // Normal case: "C:/" or "C:\"
             if ('/' === $path[2] || '\\' === $path[2]) {
                 return true;
             }
@@ -437,11 +449,11 @@
     public static function makeAbsolute(string $path, string $basePath): string
     {
         if ('' === $basePath) {
-            throw new InvalidArgumentException(sprintf('The base path must be a non-empty string. Got: "%s".', $basePath));
+            throw new InvalidArgumentException(\sprintf('The base path must be a non-empty string. Got: "%s".', $basePath));
         }
 
         if (!self::isAbsolute($basePath)) {
-            throw new InvalidArgumentException(sprintf('The base path "%s" is not an absolute path.', $basePath));
+            throw new InvalidArgumentException(\sprintf('The base path "%s" is not an absolute path.', $basePath));
         }
 
         if (self::isAbsolute($path)) {
@@ -455,7 +467,7 @@
             $scheme = '';
         }
 
-        return $scheme.self::canonicalize(rtrim($basePath, '/\\').'/'.$path);
+        return $scheme.self::canonicalize(rtrim($basePath, '/'.\DIRECTORY_SEPARATOR).'/'.$path);
     }
 
     /**
@@ -522,7 +534,7 @@
         if ('' === $root && '' !== $baseRoot) {
             // If base path is already in its root
             if ('' === $relativeBasePath) {
-                $relativePath = ltrim($relativePath, './\\');
+                $relativePath = ltrim($relativePath, './'.\DIRECTORY_SEPARATOR);
             }
 
             return $relativePath;
@@ -531,12 +543,12 @@
         // If the passed path is absolute, but the base path is not, we
         // cannot generate a relative path
         if ('' !== $root && '' === $baseRoot) {
-            throw new InvalidArgumentException(sprintf('The absolute path "%s" cannot be made relative to the relative path "%s". You should provide an absolute base path instead.', $path, $basePath));
+            throw new InvalidArgumentException(\sprintf('The absolute path "%s" cannot be made relative to the relative path "%s". You should provide an absolute base path instead.', $path, $basePath));
         }
 
         // Fail if the roots of the two paths are different
         if ($baseRoot && $root !== $baseRoot) {
-            throw new InvalidArgumentException(sprintf('The path "%s" cannot be made relative to "%s", because they have different roots ("%s" and "%s").', $path, $basePath, $root, $baseRoot));
+            throw new InvalidArgumentException(\sprintf('The path "%s" cannot be made relative to "%s", because they have different roots ("%s" and "%s").', $path, $basePath, $root, $baseRoot));
         }
 
         if ('' === $relativeBasePath) {
@@ -667,8 +679,8 @@
                 continue;
             }
 
-            // Only add slash if previous part didn't end with '/' or '\'
-            if (!\in_array(substr($finalPath, -1), ['/', '\\'])) {
+            // Only add slash if previous part didn't end with '/' or '\' (Windows)
+            if ('/' !== substr($finalPath, -1) && \DIRECTORY_SEPARATOR !== substr($finalPath, -1)) {
                 $finalPath .= '/';
             }
 
@@ -786,7 +798,7 @@
         if (str_starts_with($path, '/')) {
             $root .= '/';
             $path = $length > 1 ? substr($path, 1) : '';
-        } elseif ($length > 1 && ctype_alpha($path[0]) && ':' === $path[1]) {
+        } elseif ('\\' === \DIRECTORY_SEPARATOR && $length > 1 && ctype_alpha($path[0]) && ':' === $path[1]) {
             if (2 === $length) {
                 // Windows special case: "C:"
                 $root .= $path.'/';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Tests/FilesystemTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Tests/FilesystemTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Tests/FilesystemTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Tests/FilesystemTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
         $this->umask = umask(0);
         $this->filesystem = new Filesystem();
         $this->workspace = sys_get_temp_dir().'/'.microtime(true).'.'.mt_rand();
-        mkdir($this->workspace, 0777, true);
+        mkdir($this->workspace, 0o777, true);
         $this->workspace = realpath($this->workspace);
     }
 
@@ -82,11 +82,11 @@
      */
     protected function assertFilePermissions($expectedFilePerms, $filePath)
     {
-        $actualFilePerms = (int) substr(sprintf('%o', fileperms($filePath)), -3);
+        $actualFilePerms = (int) substr(\sprintf('%o', fileperms($filePath)), -3);
         $this->assertEquals(
             $expectedFilePerms,
             $actualFilePerms,
-            sprintf('File permissions for %s must be %s. Actual %s', $filePath, $expectedFilePerms, $actualFilePerms)
+            \sprintf('File permissions for %s must be %s. Actual %s', $filePath, $expectedFilePerms, $actualFilePerms)
         );
     }
 
@@ -144,7 +144,7 @@
         }
 
         // https://bugs.php.net/69473
-        if ($relative && '\\' === \DIRECTORY_SEPARATOR && 1 === \PHP_ZTS) {
+        if ($relative && '\\' === \DIRECTORY_SEPARATOR && \PHP_ZTS) {
             $this->markTestSkipped('symlink does not support relative paths on thread safe Windows PHP versions');
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
         file_put_contents($sourceFilePath, 'SOURCE FILE');
 
         // make sure target cannot be read
-        $this->filesystem->chmod($sourceFilePath, 0222);
+        $this->filesystem->chmod($sourceFilePath, 0o222);
 
         $this->filesystem->copy($sourceFilePath, $targetFilePath);
     }
@@ -144,7 +144,7 @@
         touch($targetFilePath, $modificationTime);
 
         // make sure target is read-only
-        $this->filesystem->chmod($targetFilePath, 0444);
+        $this->filesystem->chmod($targetFilePath, 0o444);
 
         $this->filesystem->copy($sourceFilePath, $targetFilePath, true);
     }
@@ -357,7 +357,7 @@
         mkdir($basePath);
         $file = $basePath.\DIRECTORY_SEPARATOR.'file';
         touch($file);
-        chmod($basePath, 0400);
+        chmod($basePath, 0o400);
 
         try {
             $this->filesystem->remove($file);
@@ -367,7 +367,7 @@
             $this->assertStringContainsString('Permission denied', $e->getMessage());
         } finally {
             // Make sure we can clean up this file
-            chmod($basePath, 0777);
+            chmod($basePath, 0o777);
         }
     }
 
@@ -474,8 +474,8 @@
         $file = $dir.\DIRECTORY_SEPARATOR.'file';
         touch($file);
 
-        $this->filesystem->chmod($file, 0400);
-        $this->filesystem->chmod($dir, 0753);
+        $this->filesystem->chmod($file, 0o400);
+        $this->filesystem->chmod($dir, 0o753);
 
         $this->assertFilePermissions(753, $dir);
         $this->assertFilePermissions(400, $file);
@@ -490,8 +490,8 @@
         $file = $dir.\DIRECTORY_SEPARATOR.'file';
         touch($file);
 
-        $this->filesystem->chmod($file, 0400, 0000, true);
-        $this->filesystem->chmod($dir, 0753, 0000, true);
+        $this->filesystem->chmod($file, 0o400, 0o000, true);
+        $this->filesystem->chmod($dir, 0o753, 0o000, true);
 
         $this->assertFilePermissions(753, $dir);
         $this->assertFilePermissions(753, $file);
@@ -504,7 +504,7 @@
         $file = $this->workspace.\DIRECTORY_SEPARATOR.'file';
         touch($file);
 
-        $this->filesystem->chmod($file, 0770, 0022);
+        $this->filesystem->chmod($file, 0o770, 0o022);
         $this->assertFilePermissions(750, $file);
     }
 
@@ -519,7 +519,7 @@
         mkdir($directory);
         touch($file);
 
-        $this->filesystem->chmod($files, 0753);
+        $this->filesystem->chmod($files, 0o753);
 
         $this->assertFilePermissions(753, $file);
         $this->assertFilePermissions(753, $directory);
@@ -536,7 +536,7 @@
         mkdir($directory);
         touch($file);
 
-        $this->filesystem->chmod($files, 0753);
+        $this->filesystem->chmod($files, 0o753);
 
         $this->assertFilePermissions(753, $file);
         $this->assertFilePermissions(753, $directory);
@@ -551,9 +551,9 @@
 
         mkdir($directory);
         mkdir($subdirectory);
-        chmod($subdirectory, 0000);
+        chmod($subdirectory, 0o000);
 
-        $this->filesystem->chmod($directory, 0753, 0000, true);
+        $this->filesystem->chmod($directory, 0o753, 0o000, true);
 
         $this->assertFilePermissions(753, $subdirectory);
     }
@@ -660,7 +660,7 @@
 
         $this->filesystem->symlink($file, $link);
 
-        $this->filesystem->chown($link, 'user'.time().mt_rand(1000, 9999));
+        $this->filesystem->chown($link, 'user'.time().random_int(1000, 9999));
     }
 
     public function testChownLinkFails()
@@ -675,7 +675,7 @@
 
         $this->filesystem->hardlink($file, $link);
 
-        $this->filesystem->chown($link, 'user'.time().mt_rand(1000, 9999));
+        $this->filesystem->chown($link, 'user'.time().random_int(1000, 9999));
     }
 
     public function testChownFail()
@@ -686,7 +686,7 @@
         $dir = $this->workspace.\DIRECTORY_SEPARATOR.'dir';
         mkdir($dir);
 
-        $this->filesystem->chown($dir, 'user'.time().mt_rand(1000, 9999));
+        $this->filesystem->chown($dir, 'user'.time().random_int(1000, 9999));
     }
 
     public function testChgrpByName()
@@ -793,7 +793,7 @@
 
         $this->filesystem->symlink($file, $link);
 
-        $this->filesystem->chgrp($link, 'user'.time().mt_rand(1000, 9999));
+        $this->filesystem->chgrp($link, 'user'.time().random_int(1000, 9999));
     }
 
     public function testChgrpLinkFails()
@@ -808,7 +808,7 @@
 
         $this->filesystem->hardlink($file, $link);
 
-        $this->filesystem->chgrp($link, 'user'.time().mt_rand(1000, 9999));
+        $this->filesystem->chgrp($link, 'user'.time().random_int(1000, 9999));
     }
 
     public function testChgrpFail()
@@ -819,7 +819,7 @@
         $dir = $this->workspace.\DIRECTORY_SEPARATOR.'dir';
         mkdir($dir);
 
-        $this->filesystem->chgrp($dir, 'user'.time().mt_rand(1000, 9999));
+        $this->filesystem->chgrp($dir, 'user'.time().random_int(1000, 9999));
     }
 
     public function testRename()
@@ -1218,6 +1218,19 @@
         $this->assertSame('../../../', $this->filesystem->makePathRelative('var/lib/symfony/', '/var/lib/symfony/src/Symfony/Component'));
     }
 
+    public function testMakePathRelativeWithExistingFile()
+    {
+        $dir = $this->workspace.\DIRECTORY_SEPARATOR.'foo'.\DIRECTORY_SEPARATOR.'bar';
+        mkdir($dir, 0o777, true);
+        $file = $dir.\DIRECTORY_SEPARATOR.'test.txt';
+        touch($file);
+
+        // File path must not get a trailing slash
+        $this->assertSame('foo/bar/test.txt', $this->filesystem->makePathRelative($file, $this->workspace));
+        // Directory path must still get a trailing slash
+        $this->assertSame('foo/bar/', $this->filesystem->makePathRelative($dir, $this->workspace));
+    }
+
     public function testMirrorCopiesFilesAndDirectoriesRecursively()
     {
         $sourcePath = $this->workspace.\DIRECTORY_SEPARATOR.'source'.\DIRECTORY_SEPARATOR;
@@ -1298,7 +1311,7 @@
 
         $sourcePath = $this->workspace.\DIRECTORY_SEPARATOR.'source'.\DIRECTORY_SEPARATOR;
 
-        mkdir($sourcePath.'nested/', 0777, true);
+        mkdir($sourcePath.'nested/', 0o777, true);
         file_put_contents($sourcePath.'/nested/file1.txt', 'FILE1');
         // Note: We symlink directory, not file
         symlink($sourcePath.'nested', $sourcePath.'link1');
@@ -1319,7 +1332,7 @@
         $sourcePath = $this->workspace.\DIRECTORY_SEPARATOR.'source'.\DIRECTORY_SEPARATOR;
         $oldPath = getcwd();
 
-        mkdir($sourcePath.'nested/', 0777, true);
+        mkdir($sourcePath.'nested/', 0o777, true);
         file_put_contents($sourcePath.'/nested/file1.txt', 'FILE1');
         // Note: Create relative symlink
         chdir($sourcePath);
@@ -1571,7 +1584,7 @@
 
         // skip mode check on Windows
         if ('\\' !== \DIRECTORY_SEPARATOR) {
-            $oldMask = umask(0002);
+            $oldMask = umask(0o002);
         }
 
         $this->filesystem->dumpFile($filename, 'bar');
@@ -1667,7 +1680,7 @@
 
         // skip mode check on Windows
         if ('\\' !== \DIRECTORY_SEPARATOR) {
-            $oldMask = umask(0002);
+            $oldMask = umask(0o002);
         }
 
         $this->filesystem->dumpFile($filename, 'foo');
@@ -1690,7 +1703,7 @@
 
         // skip mode check on Windows
         if ('\\' !== \DIRECTORY_SEPARATOR) {
-            $oldMask = umask(0002);
+            $oldMask = umask(0o002);
         }
 
         $this->filesystem->dumpFile($filename, 'foo');
@@ -1773,7 +1786,7 @@
 
         // skip mode check on Windows
         if ('\\' !== \DIRECTORY_SEPARATOR) {
-            $oldMask = umask(0002);
+            $oldMask = umask(0o002);
         }
 
         $this->filesystem->appendToFile($filename, 'bar');
@@ -1806,7 +1819,7 @@
 
         $filename = $this->workspace.\DIRECTORY_SEPARATOR.'foo.txt';
         file_put_contents($filename, 'FOO BAR');
-        chmod($filename, 0745);
+        chmod($filename, 0o745);
 
         $this->filesystem->dumpFile($filename, 'bar');
 
@@ -1817,13 +1830,13 @@
     {
         $targetFile = $this->workspace.'/dump-file';
         $this->filesystem->touch($targetFile);
-        $this->filesystem->chmod($targetFile, 0444);
+        $this->filesystem->chmod($targetFile, 0o444);
 
         try {
             $this->filesystem->dumpFile($targetFile, 'any content');
         } catch (IOException $e) {
         } finally {
-            $this->filesystem->chmod($targetFile, 0666);
+            $this->filesystem->chmod($targetFile, 0o666);
         }
 
         $this->assertSame([$targetFile], glob($this->workspace.'/*'));
@@ -1837,11 +1850,26 @@
         $targetFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_target_file';
 
         file_put_contents($sourceFilePath, 'SOURCE FILE');
-        chmod($sourceFilePath, 0745);
+        chmod($sourceFilePath, 0o745);
+
+        $this->filesystem->copy($sourceFilePath, $targetFilePath);
+
+        $this->assertFilePermissions(745, $targetFilePath);
+    }
+
+    public function testCopyShouldKeepRestrictivePermissions()
+    {
+        $this->markAsSkippedIfChmodIsMissing();
+
+        $sourceFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_source_file';
+        $targetFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_target_file';
+
+        file_put_contents($sourceFilePath, 'SOURCE FILE');
+        chmod($sourceFilePath, 0o600);
 
         $this->filesystem->copy($sourceFilePath, $targetFilePath);
 
-        $this->assertFilePermissions(767, $targetFilePath);
+        $this->assertFilePermissions(600, $targetFilePath);
     }
 
     public function testDumpToProtectedDirectory()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Tests/PathTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Tests/PathTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Filesystem/Tests/PathTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Filesystem/Tests/PathTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,18 +61,6 @@
         yield ['../.', '..'];
         yield ['../..', '../..'];
 
-        // relative paths (backslash)
-        yield ['css\\.\\style.css', 'css/style.css'];
-        yield ['css\\..\\style.css', 'style.css'];
-        yield ['css\\.\\..\\style.css', 'style.css'];
-        yield ['css\\..\\.\\style.css', 'style.css'];
-        yield ['css\\..\\..\\style.css', '../style.css'];
-        yield ['.\\css\\style.css', 'css/style.css'];
-        yield ['..\\css\\style.css', '../css/style.css'];
-        yield ['.\\..\\css\\style.css', '../css/style.css'];
-        yield ['..\\.\\css\\style.css', '../css/style.css'];
-        yield ['..\\..\\css\\style.css', '../../css/style.css'];
-
         // absolute paths (forward slash, UNIX)
         yield ['/css/style.css', '/css/style.css'];
         yield ['/css/./style.css', '/css/style.css'];
@@ -85,48 +73,6 @@
         yield ['/.././css/style.css', '/css/style.css'];
         yield ['/../../css/style.css', '/css/style.css'];
 
-        // absolute paths (backslash, UNIX)
-        yield ['\\css\\style.css', '/css/style.css'];
-        yield ['\\css\\.\\style.css', '/css/style.css'];
-        yield ['\\css\\..\\style.css', '/style.css'];
-        yield ['\\css\\.\\..\\style.css', '/style.css'];
-        yield ['\\css\\..\\.\\style.css', '/style.css'];
-        yield ['\\.\\css\\style.css', '/css/style.css'];
-        yield ['\\..\\css\\style.css', '/css/style.css'];
-        yield ['\\.\\..\\css\\style.css', '/css/style.css'];
-        yield ['\\..\\.\\css\\style.css', '/css/style.css'];
-        yield ['\\..\\..\\css\\style.css', '/css/style.css'];
-
-        // absolute paths (forward slash, Windows)
-        yield ['C:/css/style.css', 'C:/css/style.css'];
-        yield ['C:/css/./style.css', 'C:/css/style.css'];
-        yield ['C:/css/../style.css', 'C:/style.css'];
-        yield ['C:/css/./../style.css', 'C:/style.css'];
-        yield ['C:/css/.././style.css', 'C:/style.css'];
-        yield ['C:/./css/style.css', 'C:/css/style.css'];
-        yield ['C:/../css/style.css', 'C:/css/style.css'];
-        yield ['C:/./../css/style.css', 'C:/css/style.css'];
-        yield ['C:/.././css/style.css', 'C:/css/style.css'];
-        yield ['C:/../../css/style.css', 'C:/css/style.css'];
-
-        // absolute paths (backslash, Windows)
-        yield ['C:\\css\\style.css', 'C:/css/style.css'];
-        yield ['C:\\css\\.\\style.css', 'C:/css/style.css'];
-        yield ['C:\\css\\..\\style.css', 'C:/style.css'];
-        yield ['C:\\css\\.\\..\\style.css', 'C:/style.css'];
-        yield ['C:\\css\\..\\.\\style.css', 'C:/style.css'];
-        yield ['C:\\.\\css\\style.css', 'C:/css/style.css'];
-        yield ['C:\\..\\css\\style.css', 'C:/css/style.css'];
-        yield ['C:\\.\\..\\css\\style.css', 'C:/css/style.css'];
-        yield ['C:\\..\\.\\css\\style.css', 'C:/css/style.css'];
-        yield ['C:\\..\\..\\css\\style.css', 'C:/css/style.css'];
-
-        // Windows special case
-        yield ['C:', 'C:/'];
-
-        // Don't change malformed path
-        yield ['C:css/style.css', 'C:css/style.css'];
-
         // absolute paths (stream, UNIX)
         yield ['phar:///css/style.css', 'phar:///css/style.css'];
         yield ['phar:///css/./style.css', 'phar:///css/style.css'];
@@ -139,17 +85,73 @@
         yield ['phar:///.././css/style.css', 'phar:///css/style.css'];
         yield ['phar:///../../css/style.css', 'phar:///css/style.css'];
 
-        // absolute paths (stream, Windows)
-        yield ['phar://C:/css/style.css', 'phar://C:/css/style.css'];
-        yield ['phar://C:/css/./style.css', 'phar://C:/css/style.css'];
-        yield ['phar://C:/css/../style.css', 'phar://C:/style.css'];
-        yield ['phar://C:/css/./../style.css', 'phar://C:/style.css'];
-        yield ['phar://C:/css/.././style.css', 'phar://C:/style.css'];
-        yield ['phar://C:/./css/style.css', 'phar://C:/css/style.css'];
-        yield ['phar://C:/../css/style.css', 'phar://C:/css/style.css'];
-        yield ['phar://C:/./../css/style.css', 'phar://C:/css/style.css'];
-        yield ['phar://C:/.././css/style.css', 'phar://C:/css/style.css'];
-        yield ['phar://C:/../../css/style.css', 'phar://C:/css/style.css'];
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            // relative paths (backslash, Windows only)
+            yield ['css\\.\\style.css', 'css/style.css'];
+            yield ['css\\..\\style.css', 'style.css'];
+            yield ['css\\.\\..\\style.css', 'style.css'];
+            yield ['css\\..\\.\\style.css', 'style.css'];
+            yield ['css\\..\\..\\style.css', '../style.css'];
+            yield ['.\\css\\style.css', 'css/style.css'];
+            yield ['..\\css\\style.css', '../css/style.css'];
+            yield ['.\\..\\css\\style.css', '../css/style.css'];
+            yield ['..\\.\\css\\style.css', '../css/style.css'];
+            yield ['..\\..\\css\\style.css', '../../css/style.css'];
+
+            // absolute paths (backslash, Windows only)
+            yield ['\\css\\style.css', '/css/style.css'];
+            yield ['\\css\\.\\style.css', '/css/style.css'];
+            yield ['\\css\\..\\style.css', '/style.css'];
+            yield ['\\css\\.\\..\\style.css', '/style.css'];
+            yield ['\\css\\..\\.\\style.css', '/style.css'];
+            yield ['\\.\\css\\style.css', '/css/style.css'];
+            yield ['\\..\\css\\style.css', '/css/style.css'];
+            yield ['\\.\\..\\css\\style.css', '/css/style.css'];
+            yield ['\\..\\.\\css\\style.css', '/css/style.css'];
+            yield ['\\..\\..\\css\\style.css', '/css/style.css'];
+
+            // absolute paths (forward slash, Windows)
+            yield ['C:/css/style.css', 'C:/css/style.css'];
+            yield ['C:/css/./style.css', 'C:/css/style.css'];
+            yield ['C:/css/../style.css', 'C:/style.css'];
+            yield ['C:/css/./../style.css', 'C:/style.css'];
+            yield ['C:/css/.././style.css', 'C:/style.css'];
+            yield ['C:/./css/style.css', 'C:/css/style.css'];
+            yield ['C:/../css/style.css', 'C:/css/style.css'];
+            yield ['C:/./../css/style.css', 'C:/css/style.css'];
+            yield ['C:/.././css/style.css', 'C:/css/style.css'];
+            yield ['C:/../../css/style.css', 'C:/css/style.css'];
+
+            // absolute paths (backslash, Windows)
+            yield ['C:\\css\\style.css', 'C:/css/style.css'];
+            yield ['C:\\css\\.\\style.css', 'C:/css/style.css'];
+            yield ['C:\\css\\..\\style.css', 'C:/style.css'];
+            yield ['C:\\css\\.\\..\\style.css', 'C:/style.css'];
+            yield ['C:\\css\\..\\.\\style.css', 'C:/style.css'];
+            yield ['C:\\.\\css\\style.css', 'C:/css/style.css'];
+            yield ['C:\\..\\css\\style.css', 'C:/css/style.css'];
+            yield ['C:\\.\\..\\css\\style.css', 'C:/css/style.css'];
+            yield ['C:\\..\\.\\css\\style.css', 'C:/css/style.css'];
+            yield ['C:\\..\\..\\css\\style.css', 'C:/css/style.css'];
+
+            // Windows special case
+            yield ['C:', 'C:/'];
+
+            // Don't change malformed path
+            yield ['C:css/style.css', 'C:css/style.css'];
+
+            // absolute paths (stream, Windows)
+            yield ['phar://C:/css/style.css', 'phar://C:/css/style.css'];
+            yield ['phar://C:/css/./style.css', 'phar://C:/css/style.css'];
+            yield ['phar://C:/css/../style.css', 'phar://C:/style.css'];
+            yield ['phar://C:/css/./../style.css', 'phar://C:/style.css'];
+            yield ['phar://C:/css/.././style.css', 'phar://C:/style.css'];
+            yield ['phar://C:/./css/style.css', 'phar://C:/css/style.css'];
+            yield ['phar://C:/../css/style.css', 'phar://C:/css/style.css'];
+            yield ['phar://C:/./../css/style.css', 'phar://C:/css/style.css'];
+            yield ['phar://C:/.././css/style.css', 'phar://C:/css/style.css'];
+            yield ['phar://C:/../../css/style.css', 'phar://C:/css/style.css'];
+        }
 
         // paths with "~" UNIX
         yield ['~/css/style.css', '/home/webmozart/css/style.css'];
@@ -180,40 +182,15 @@
         yield ['/', '/'];
         yield ['', ''];
 
-        yield ['\\webmozart\\symfony\\style.css', '/webmozart/symfony'];
-        yield ['\\webmozart\\symfony', '/webmozart'];
-        yield ['\\webmozart', '/'];
-        yield ['\\', '/'];
-
-        yield ['C:/webmozart/symfony/style.css', 'C:/webmozart/symfony'];
-        yield ['C:/webmozart/symfony', 'C:/webmozart'];
-        yield ['C:/webmozart', 'C:/'];
-        yield ['C:/', 'C:/'];
-        yield ['C:', 'C:/'];
-
-        yield ['C:\\webmozart\\symfony\\style.css', 'C:/webmozart/symfony'];
-        yield ['C:\\webmozart\\symfony', 'C:/webmozart'];
-        yield ['C:\\webmozart', 'C:/'];
-        yield ['C:\\', 'C:/'];
-
         yield ['phar:///webmozart/symfony/style.css', 'phar:///webmozart/symfony'];
         yield ['phar:///webmozart/symfony', 'phar:///webmozart'];
         yield ['phar:///webmozart', 'phar:///'];
         yield ['phar:///', 'phar:///'];
 
-        yield ['phar://C:/webmozart/symfony/style.css', 'phar://C:/webmozart/symfony'];
-        yield ['phar://C:/webmozart/symfony', 'phar://C:/webmozart'];
-        yield ['phar://C:/webmozart', 'phar://C:/'];
-        yield ['phar://C:/', 'phar://C:/'];
-
         yield ['webmozart/symfony/style.css', 'webmozart/symfony'];
         yield ['webmozart/symfony', 'webmozart'];
         yield ['webmozart', ''];
 
-        yield ['webmozart\\symfony\\style.css', 'webmozart/symfony'];
-        yield ['webmozart\\symfony', 'webmozart'];
-        yield ['webmozart', ''];
-
         yield ['/webmozart/./symfony/style.css', '/webmozart/symfony'];
         yield ['/webmozart/../symfony/style.css', '/symfony'];
         yield ['/webmozart/./../symfony/style.css', '/symfony'];
@@ -222,9 +199,35 @@
         yield ['/.', '/'];
         yield ['/..', '/'];
 
-        yield ['C:webmozart', ''];
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            yield ['\\webmozart\\symfony\\style.css', '/webmozart/symfony'];
+            yield ['\\webmozart\\symfony', '/webmozart'];
+            yield ['\\webmozart', '/'];
+            yield ['\\', '/'];
+
+            yield ['C:/webmozart/symfony/style.css', 'C:/webmozart/symfony'];
+            yield ['C:/webmozart/symfony', 'C:/webmozart'];
+            yield ['C:/webmozart', 'C:/'];
+            yield ['C:/', 'C:/'];
+            yield ['C:', 'C:/'];
+
+            yield ['C:\\webmozart\\symfony\\style.css', 'C:/webmozart/symfony'];
+            yield ['C:\\webmozart\\symfony', 'C:/webmozart'];
+            yield ['C:\\webmozart', 'C:/'];
+            yield ['C:\\', 'C:/'];
+
+            yield ['phar://C:/webmozart/symfony/style.css', 'phar://C:/webmozart/symfony'];
+            yield ['phar://C:/webmozart/symfony', 'phar://C:/webmozart'];
+            yield ['phar://C:/webmozart', 'phar://C:/'];
+            yield ['phar://C:/', 'phar://C:/'];
+
+            yield ['webmozart\\symfony\\style.css', 'webmozart/symfony'];
+            yield ['webmozart\\symfony', 'webmozart'];
 
-        yield ['D:/Folder/Aééé/Subfolder', 'D:/Folder/Aééé'];
+            yield ['C:webmozart', ''];
+
+            yield ['D:/Folder/Aééé/Subfolder', 'D:/Folder/Aééé'];
+        }
     }
 
     /**
@@ -364,31 +367,43 @@
 
     public static function provideIsAbsolutePathTests(): \Generator
     {
+        // UNIX-style absolute paths
         yield ['/css/style.css', true];
         yield ['/', true];
+        yield ['/var/lib', true];
         yield ['css/style.css', false];
+        yield ['var/lib', false];
+        yield ['../var/lib', false];
         yield ['', false];
 
-        yield ['\\css\\style.css', true];
-        yield ['\\', true];
-        yield ['css\\style.css', false];
-
-        yield ['C:/css/style.css', true];
-        yield ['D:/', true];
-        yield ['C:///windows', true];
-        yield ['C://test', true];
-
-        yield ['E:\\css\\style.css', true];
-        yield ['F:\\', true];
-
+        // URLs and stream wrappers are considered absolute
         yield ['phar:///css/style.css', true];
         yield ['phar:///', true];
+        yield ['http://example.com', true];
+        yield ['ftp://user@server/path', true];
+        yield ['vfs://root/file.txt', true];
+
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            yield ['\\css\\style.css', true];
+            yield ['\\', true];
+            yield ['\\var\\lib', true];
+            yield ['css\\style.css', false];
+
+            yield ['C:/css/style.css', true];
+            yield ['D:/', true];
+            yield ['C:///windows', true];
+            yield ['C://test', true];
+
+            yield ['E:\\css\\style.css', true];
+            yield ['F:\\', true];
+            yield ['c:\\\\var\\lib', true]; // c:\\var\lib
 
-        // Windows special case
-        yield ['C:', true];
+            // Windows special case
+            yield ['C:', true];
 
-        // Not considered absolute
-        yield ['C:css/style.css', false];
+            // Not considered absolute
+            yield ['C:css/style.css', false];
+        }
     }
 
     /**
@@ -414,23 +429,25 @@
         yield ['css/style.css', ''];
         yield ['', ''];
 
-        yield ['\\css\\style.css', '/'];
-        yield ['\\', '/'];
-        yield ['css\\style.css', ''];
-
-        yield ['C:/css/style.css', 'C:/'];
-        yield ['C:/', 'C:/'];
-        yield ['C:', 'C:/'];
-
-        yield ['D:\\css\\style.css', 'D:/'];
-        yield ['D:\\', 'D:/'];
-
         yield ['phar:///css/style.css', 'phar:///'];
         yield ['phar:///', 'phar:///'];
 
-        yield ['phar://C:/css/style.css', 'phar://C:/'];
-        yield ['phar://C:/', 'phar://C:/'];
-        yield ['phar://C:', 'phar://C:/'];
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            yield ['\\css\\style.css', '/'];
+            yield ['\\', '/'];
+            yield ['css\\style.css', ''];
+
+            yield ['C:/css/style.css', 'C:/'];
+            yield ['C:/', 'C:/'];
+            yield ['C:', 'C:/'];
+
+            yield ['D:\\css\\style.css', 'D:/'];
+            yield ['D:\\', 'D:/'];
+
+            yield ['phar://C:/css/style.css', 'phar://C:/'];
+            yield ['phar://C:/', 'phar://C:/'];
+            yield ['phar://C:', 'phar://C:/'];
+        }
     }
 
     /**
@@ -451,8 +468,6 @@
 
             // relative to root
             ['css/style.css', '/', '/css/style.css'],
-            ['css/style.css', 'C:', 'C:/css/style.css'],
-            ['css/style.css', 'C:/', 'C:/css/style.css'],
 
             // same sub directories in different base directories
             ['../../symfony/css/style.css', '/webmozart/css', '/symfony/css/style.css'],
@@ -460,6 +475,13 @@
             ['', '/webmozart/symfony', '/webmozart/symfony'],
             ['..', '/webmozart/symfony', '/webmozart'],
         ];
+
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            yield from [
+                ['css/style.css', 'C:', 'C:/css/style.css'],
+                ['css/style.css', 'C:/', 'C:/css/style.css'],
+            ];
+        }
     }
 
     public static function provideMakeAbsoluteTests(): \Generator
@@ -473,12 +495,6 @@
         yield ['css/.././style.css', '/webmozart/symfony', '/webmozart/symfony/style.css'];
         yield ['./css/style.css', '/webmozart/symfony', '/webmozart/symfony/css/style.css'];
 
-        yield ['css\\.\\style.css', '\\webmozart\\symfony', '/webmozart/symfony/css/style.css'];
-        yield ['css\\..\\style.css', '\\webmozart\\symfony', '/webmozart/symfony/style.css'];
-        yield ['css\\.\\..\\style.css', '\\webmozart\\symfony', '/webmozart/symfony/style.css'];
-        yield ['css\\..\\.\\style.css', '\\webmozart\\symfony', '/webmozart/symfony/style.css'];
-        yield ['.\\css\\style.css', '\\webmozart\\symfony', '/webmozart/symfony/css/style.css'];
-
         // collapse dots on root
         yield ['./css/style.css', '/', '/css/style.css'];
         yield ['../css/style.css', '/', '/css/style.css'];
@@ -487,27 +503,6 @@
         yield ['../css/./../style.css', '/', '/style.css'];
         yield ['../css/.././style.css', '/', '/style.css'];
 
-        yield ['.\\css\\style.css', '\\', '/css/style.css'];
-        yield ['..\\css\\style.css', '\\', '/css/style.css'];
-        yield ['..\\css\\.\\style.css', '\\', '/css/style.css'];
-        yield ['..\\css\\..\\style.css', '\\', '/style.css'];
-        yield ['..\\css\\.\\..\\style.css', '\\', '/style.css'];
-        yield ['..\\css\\..\\.\\style.css', '\\', '/style.css'];
-
-        yield ['./css/style.css', 'C:/', 'C:/css/style.css'];
-        yield ['../css/style.css', 'C:/', 'C:/css/style.css'];
-        yield ['../css/./style.css', 'C:/', 'C:/css/style.css'];
-        yield ['../css/../style.css', 'C:/', 'C:/style.css'];
-        yield ['../css/./../style.css', 'C:/', 'C:/style.css'];
-        yield ['../css/.././style.css', 'C:/', 'C:/style.css'];
-
-        yield ['.\\css\\style.css', 'C:\\', 'C:/css/style.css'];
-        yield ['..\\css\\style.css', 'C:\\', 'C:/css/style.css'];
-        yield ['..\\css\\.\\style.css', 'C:\\', 'C:/css/style.css'];
-        yield ['..\\css\\..\\style.css', 'C:\\', 'C:/style.css'];
-        yield ['..\\css\\.\\..\\style.css', 'C:\\', 'C:/style.css'];
-        yield ['..\\css\\..\\.\\style.css', 'C:\\', 'C:/style.css'];
-
         yield ['./css/style.css', 'phar:///', 'phar:///css/style.css'];
         yield ['../css/style.css', 'phar:///', 'phar:///css/style.css'];
         yield ['../css/./style.css', 'phar:///', 'phar:///css/style.css'];
@@ -515,18 +510,48 @@
         yield ['../css/./../style.css', 'phar:///', 'phar:///style.css'];
         yield ['../css/.././style.css', 'phar:///', 'phar:///style.css'];
 
-        yield ['./css/style.css', 'phar://C:/', 'phar://C:/css/style.css'];
-        yield ['../css/style.css', 'phar://C:/', 'phar://C:/css/style.css'];
-        yield ['../css/./style.css', 'phar://C:/', 'phar://C:/css/style.css'];
-        yield ['../css/../style.css', 'phar://C:/', 'phar://C:/style.css'];
-        yield ['../css/./../style.css', 'phar://C:/', 'phar://C:/style.css'];
-        yield ['../css/.././style.css', 'phar://C:/', 'phar://C:/style.css'];
-
         // absolute paths
         yield ['/css/style.css', '/webmozart/symfony', '/css/style.css'];
-        yield ['\\css\\style.css', '/webmozart/symfony', '/css/style.css'];
-        yield ['C:/css/style.css', 'C:/webmozart/symfony', 'C:/css/style.css'];
-        yield ['D:\\css\\style.css', 'D:/webmozart/symfony', 'D:/css/style.css'];
+
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            yield ['css\\.\\style.css', '\\webmozart\\symfony', '/webmozart/symfony/css/style.css'];
+            yield ['css\\..\\style.css', '\\webmozart\\symfony', '/webmozart/symfony/style.css'];
+            yield ['css\\.\\..\\style.css', '\\webmozart\\symfony', '/webmozart/symfony/style.css'];
+            yield ['css\\..\\.\\style.css', '\\webmozart\\symfony', '/webmozart/symfony/style.css'];
+            yield ['.\\css\\style.css', '\\webmozart\\symfony', '/webmozart/symfony/css/style.css'];
+
+            yield ['.\\css\\style.css', '\\', '/css/style.css'];
+            yield ['..\\css\\style.css', '\\', '/css/style.css'];
+            yield ['..\\css\\.\\style.css', '\\', '/css/style.css'];
+            yield ['..\\css\\..\\style.css', '\\', '/style.css'];
+            yield ['..\\css\\.\\..\\style.css', '\\', '/style.css'];
+            yield ['..\\css\\..\\.\\style.css', '\\', '/style.css'];
+
+            yield ['./css/style.css', 'C:/', 'C:/css/style.css'];
+            yield ['../css/style.css', 'C:/', 'C:/css/style.css'];
+            yield ['../css/./style.css', 'C:/', 'C:/css/style.css'];
+            yield ['../css/../style.css', 'C:/', 'C:/style.css'];
+            yield ['../css/./../style.css', 'C:/', 'C:/style.css'];
+            yield ['../css/.././style.css', 'C:/', 'C:/style.css'];
+
+            yield ['.\\css\\style.css', 'C:\\', 'C:/css/style.css'];
+            yield ['..\\css\\style.css', 'C:\\', 'C:/css/style.css'];
+            yield ['..\\css\\.\\style.css', 'C:\\', 'C:/css/style.css'];
+            yield ['..\\css\\..\\style.css', 'C:\\', 'C:/style.css'];
+            yield ['..\\css\\.\\..\\style.css', 'C:\\', 'C:/style.css'];
+            yield ['..\\css\\..\\.\\style.css', 'C:\\', 'C:/style.css'];
+
+            yield ['./css/style.css', 'phar://C:/', 'phar://C:/css/style.css'];
+            yield ['../css/style.css', 'phar://C:/', 'phar://C:/css/style.css'];
+            yield ['../css/./style.css', 'phar://C:/', 'phar://C:/css/style.css'];
+            yield ['../css/../style.css', 'phar://C:/', 'phar://C:/style.css'];
+            yield ['../css/./../style.css', 'phar://C:/', 'phar://C:/style.css'];
+            yield ['../css/.././style.css', 'phar://C:/', 'phar://C:/style.css'];
+
+            yield ['\\css\\style.css', '/webmozart/symfony', '/css/style.css'];
+            yield ['C:/css/style.css', 'C:/webmozart/symfony', 'C:/css/style.css'];
+            yield ['D:\\css\\style.css', 'D:/webmozart/symfony', 'D:/css/style.css'];
+        }
     }
 
     /**
@@ -555,28 +580,30 @@
 
     public static function provideAbsolutePathsWithDifferentRoots(): \Generator
     {
-        yield ['C:/css/style.css', '/webmozart/symfony'];
-        yield ['C:/css/style.css', '\\webmozart\\symfony'];
-        yield ['C:\\css\\style.css', '/webmozart/symfony'];
-        yield ['C:\\css\\style.css', '\\webmozart\\symfony'];
-
-        yield ['/css/style.css', 'C:/webmozart/symfony'];
-        yield ['/css/style.css', 'C:\\webmozart\\symfony'];
-        yield ['\\css\\style.css', 'C:/webmozart/symfony'];
-        yield ['\\css\\style.css', 'C:\\webmozart\\symfony'];
-
-        yield ['D:/css/style.css', 'C:/webmozart/symfony'];
-        yield ['D:/css/style.css', 'C:\\webmozart\\symfony'];
-        yield ['D:\\css\\style.css', 'C:/webmozart/symfony'];
-        yield ['D:\\css\\style.css', 'C:\\webmozart\\symfony'];
-
         yield ['phar:///css/style.css', '/webmozart/symfony'];
         yield ['/css/style.css', 'phar:///webmozart/symfony'];
 
-        yield ['phar://C:/css/style.css', 'C:/webmozart/symfony'];
-        yield ['phar://C:/css/style.css', 'C:\\webmozart\\symfony'];
-        yield ['phar://C:\\css\\style.css', 'C:/webmozart/symfony'];
-        yield ['phar://C:\\css\\style.css', 'C:\\webmozart\\symfony'];
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            yield ['C:/css/style.css', '/webmozart/symfony'];
+            yield ['C:/css/style.css', '\\webmozart\\symfony'];
+            yield ['C:\\css\\style.css', '/webmozart/symfony'];
+            yield ['C:\\css\\style.css', '\\webmozart\\symfony'];
+
+            yield ['/css/style.css', 'C:/webmozart/symfony'];
+            yield ['/css/style.css', 'C:\\webmozart\\symfony'];
+            yield ['\\css\\style.css', 'C:/webmozart/symfony'];
+            yield ['\\css\\style.css', 'C:\\webmozart\\symfony'];
+
+            yield ['D:/css/style.css', 'C:/webmozart/symfony'];
+            yield ['D:/css/style.css', 'C:\\webmozart\\symfony'];
+            yield ['D:\\css\\style.css', 'C:/webmozart/symfony'];
+            yield ['D:\\css\\style.css', 'C:\\webmozart\\symfony'];
+
+            yield ['phar://C:/css/style.css', 'C:/webmozart/symfony'];
+            yield ['phar://C:/css/style.css', 'C:\\webmozart\\symfony'];
+            yield ['phar://C:\\css\\style.css', 'C:/webmozart/symfony'];
+            yield ['phar://C:\\css\\style.css', 'C:\\webmozart\\symfony'];
+        }
     }
 
     /**
@@ -612,74 +639,81 @@
         // second argument shorter than first
         yield ['/webmozart/symfony', '/css', '../webmozart/symfony'];
 
-        yield ['\\webmozart\\symfony\\css\\style.css', '\\webmozart\\symfony', 'css/style.css'];
-        yield ['\\webmozart\\css\\style.css', '\\webmozart\\symfony', '../css/style.css'];
-        yield ['\\css\\style.css', '\\webmozart\\symfony', '../../css/style.css'];
-
-        yield ['C:/webmozart/symfony/css/style.css', 'C:/webmozart/symfony', 'css/style.css'];
-        yield ['C:/webmozart/css/style.css', 'C:/webmozart/symfony', '../css/style.css'];
-        yield ['C:/css/style.css', 'C:/webmozart/symfony', '../../css/style.css'];
-
-        yield ['C:\\webmozart\\symfony\\css\\style.css', 'C:\\webmozart\\symfony', 'css/style.css'];
-        yield ['C:\\webmozart\\css\\style.css', 'C:\\webmozart\\symfony', '../css/style.css'];
-        yield ['C:\\css\\style.css', 'C:\\webmozart\\symfony', '../../css/style.css'];
-
         yield ['phar:///webmozart/symfony/css/style.css', 'phar:///webmozart/symfony', 'css/style.css'];
         yield ['phar:///webmozart/css/style.css', 'phar:///webmozart/symfony', '../css/style.css'];
         yield ['phar:///css/style.css', 'phar:///webmozart/symfony', '../../css/style.css'];
 
-        yield ['phar://C:/webmozart/symfony/css/style.css', 'phar://C:/webmozart/symfony', 'css/style.css'];
-        yield ['phar://C:/webmozart/css/style.css', 'phar://C:/webmozart/symfony', '../css/style.css'];
-        yield ['phar://C:/css/style.css', 'phar://C:/webmozart/symfony', '../../css/style.css'];
-
         // already relative + already in root basepath
         yield ['../style.css', '/', 'style.css'];
         yield ['./style.css', '/', 'style.css'];
         yield ['../../style.css', '/', 'style.css'];
-        yield ['..\\style.css', 'C:\\', 'style.css'];
-        yield ['.\\style.css', 'C:\\', 'style.css'];
-        yield ['..\\..\\style.css', 'C:\\', 'style.css'];
-        yield ['../style.css', 'C:/', 'style.css'];
-        yield ['./style.css', 'C:/', 'style.css'];
-        yield ['../../style.css', 'C:/', 'style.css'];
-        yield ['..\\style.css', '\\', 'style.css'];
-        yield ['.\\style.css', '\\', 'style.css'];
-        yield ['..\\..\\style.css', '\\', 'style.css'];
         yield ['../style.css', 'phar:///', 'style.css'];
         yield ['./style.css', 'phar:///', 'style.css'];
         yield ['../../style.css', 'phar:///', 'style.css'];
-        yield ['..\\style.css', 'phar://C:\\', 'style.css'];
-        yield ['.\\style.css', 'phar://C:\\', 'style.css'];
-        yield ['..\\..\\style.css', 'phar://C:\\', 'style.css'];
 
         yield ['css/../style.css', '/', 'style.css'];
         yield ['css/./style.css', '/', 'css/style.css'];
-        yield ['css\\..\\style.css', 'C:\\', 'style.css'];
-        yield ['css\\.\\style.css', 'C:\\', 'css/style.css'];
-        yield ['css/../style.css', 'C:/', 'style.css'];
-        yield ['css/./style.css', 'C:/', 'css/style.css'];
-        yield ['css\\..\\style.css', '\\', 'style.css'];
-        yield ['css\\.\\style.css', '\\', 'css/style.css'];
         yield ['css/../style.css', 'phar:///', 'style.css'];
         yield ['css/./style.css', 'phar:///', 'css/style.css'];
-        yield ['css\\..\\style.css', 'phar://C:\\', 'style.css'];
-        yield ['css\\.\\style.css', 'phar://C:\\', 'css/style.css'];
 
         // already relative
         yield ['css/style.css', '/webmozart/symfony', 'css/style.css'];
-        yield ['css\\style.css', '\\webmozart\\symfony', 'css/style.css'];
 
         // both relative
         yield ['css/style.css', 'webmozart/symfony', '../../css/style.css'];
-        yield ['css\\style.css', 'webmozart\\symfony', '../../css/style.css'];
 
         // relative to empty
         yield ['css/style.css', '', 'css/style.css'];
-        yield ['css\\style.css', '', 'css/style.css'];
 
-        // different slashes in path and base path
-        yield ['/webmozart/symfony/css/style.css', '\\webmozart\\symfony', 'css/style.css'];
-        yield ['\\webmozart\\symfony\\css\\style.css', '/webmozart/symfony', 'css/style.css'];
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            yield ['\\webmozart\\symfony\\css\\style.css', '\\webmozart\\symfony', 'css/style.css'];
+            yield ['\\webmozart\\css\\style.css', '\\webmozart\\symfony', '../css/style.css'];
+            yield ['\\css\\style.css', '\\webmozart\\symfony', '../../css/style.css'];
+
+            yield ['C:/webmozart/symfony/css/style.css', 'C:/webmozart/symfony', 'css/style.css'];
+            yield ['C:/webmozart/css/style.css', 'C:/webmozart/symfony', '../css/style.css'];
+            yield ['C:/css/style.css', 'C:/webmozart/symfony', '../../css/style.css'];
+
+            yield ['C:\\webmozart\\symfony\\css\\style.css', 'C:\\webmozart\\symfony', 'css/style.css'];
+            yield ['C:\\webmozart\\css\\style.css', 'C:\\webmozart\\symfony', '../css/style.css'];
+            yield ['C:\\css\\style.css', 'C:\\webmozart\\symfony', '../../css/style.css'];
+
+            yield ['phar://C:/webmozart/symfony/css/style.css', 'phar://C:/webmozart/symfony', 'css/style.css'];
+            yield ['phar://C:/webmozart/css/style.css', 'phar://C:/webmozart/symfony', '../css/style.css'];
+            yield ['phar://C:/css/style.css', 'phar://C:/webmozart/symfony', '../../css/style.css'];
+
+            yield ['..\\style.css', 'C:\\', 'style.css'];
+            yield ['.\\style.css', 'C:\\', 'style.css'];
+            yield ['..\\..\\style.css', 'C:\\', 'style.css'];
+            yield ['../style.css', 'C:/', 'style.css'];
+            yield ['./style.css', 'C:/', 'style.css'];
+            yield ['../../style.css', 'C:/', 'style.css'];
+            yield ['..\\style.css', '\\', 'style.css'];
+            yield ['.\\style.css', '\\', 'style.css'];
+            yield ['..\\..\\style.css', '\\', 'style.css'];
+            yield ['..\\style.css', 'phar://C:\\', 'style.css'];
+            yield ['.\\style.css', 'phar://C:\\', 'style.css'];
+            yield ['..\\..\\style.css', 'phar://C:\\', 'style.css'];
+
+            yield ['css\\..\\style.css', 'C:\\', 'style.css'];
+            yield ['css\\.\\style.css', 'C:\\', 'css/style.css'];
+            yield ['css/../style.css', 'C:/', 'style.css'];
+            yield ['css/./style.css', 'C:/', 'css/style.css'];
+            yield ['css\\..\\style.css', '\\', 'style.css'];
+            yield ['css\\.\\style.css', '\\', 'css/style.css'];
+            yield ['css\\..\\style.css', 'phar://C:\\', 'style.css'];
+            yield ['css\\.\\style.css', 'phar://C:\\', 'css/style.css'];
+
+            yield ['css\\style.css', '\\webmozart\\symfony', 'css/style.css'];
+
+            yield ['css\\style.css', 'webmozart\\symfony', '../../css/style.css'];
+
+            yield ['css\\style.css', '', 'css/style.css'];
+
+            // different slashes in path and base path
+            yield ['/webmozart/symfony/css/style.css', '\\webmozart\\symfony', 'css/style.css'];
+            yield ['\\webmozart\\symfony\\css\\style.css', '/webmozart/symfony', 'css/style.css'];
+        }
     }
 
     /**
@@ -736,110 +770,133 @@
     {
         // same paths
         yield [['/base/path', '/base/path'], '/base/path'];
-        yield [['C:/base/path', 'C:/base/path'], 'C:/base/path'];
-        yield [['C:\\base\\path', 'C:\\base\\path'], 'C:/base/path'];
-        yield [['C:/base/path', 'C:\\base\\path'], 'C:/base/path'];
         yield [['phar:///base/path', 'phar:///base/path'], 'phar:///base/path'];
-        yield [['phar://C:/base/path', 'phar://C:/base/path'], 'phar://C:/base/path'];
 
         // trailing slash
         yield [['/base/path/', '/base/path'], '/base/path'];
-        yield [['C:/base/path/', 'C:/base/path'], 'C:/base/path'];
-        yield [['C:\\base\\path\\', 'C:\\base\\path'], 'C:/base/path'];
-        yield [['C:/base/path/', 'C:\\base\\path'], 'C:/base/path'];
         yield [['phar:///base/path/', 'phar:///base/path'], 'phar:///base/path'];
-        yield [['phar://C:/base/path/', 'phar://C:/base/path'], 'phar://C:/base/path'];
 
         yield [['/base/path', '/base/path/'], '/base/path'];
-        yield [['C:/base/path', 'C:/base/path/'], 'C:/base/path'];
-        yield [['C:\\base\\path', 'C:\\base\\path\\'], 'C:/base/path'];
-        yield [['C:/base/path', 'C:\\base\\path\\'], 'C:/base/path'];
         yield [['phar:///base/path', 'phar:///base/path/'], 'phar:///base/path'];
-        yield [['phar://C:/base/path', 'phar://C:/base/path/'], 'phar://C:/base/path'];
 
         // first in second
         yield [['/base/path/sub', '/base/path'], '/base/path'];
-        yield [['C:/base/path/sub', 'C:/base/path'], 'C:/base/path'];
-        yield [['C:\\base\\path\\sub', 'C:\\base\\path'], 'C:/base/path'];
-        yield [['C:/base/path/sub', 'C:\\base\\path'], 'C:/base/path'];
         yield [['phar:///base/path/sub', 'phar:///base/path'], 'phar:///base/path'];
-        yield [['phar://C:/base/path/sub', 'phar://C:/base/path'], 'phar://C:/base/path'];
 
         // second in first
         yield [['/base/path', '/base/path/sub'], '/base/path'];
-        yield [['C:/base/path', 'C:/base/path/sub'], 'C:/base/path'];
-        yield [['C:\\base\\path', 'C:\\base\\path\\sub'], 'C:/base/path'];
-        yield [['C:/base/path', 'C:\\base\\path\\sub'], 'C:/base/path'];
         yield [['phar:///base/path', 'phar:///base/path/sub'], 'phar:///base/path'];
-        yield [['phar://C:/base/path', 'phar://C:/base/path/sub'], 'phar://C:/base/path'];
 
         // first is prefix
         yield [['/base/path/di', '/base/path/dir'], '/base/path'];
-        yield [['C:/base/path/di', 'C:/base/path/dir'], 'C:/base/path'];
-        yield [['C:\\base\\path\\di', 'C:\\base\\path\\dir'], 'C:/base/path'];
-        yield [['C:/base/path/di', 'C:\\base\\path\\dir'], 'C:/base/path'];
         yield [['phar:///base/path/di', 'phar:///base/path/dir'], 'phar:///base/path'];
-        yield [['phar://C:/base/path/di', 'phar://C:/base/path/dir'], 'phar://C:/base/path'];
 
         // second is prefix
         yield [['/base/path/dir', '/base/path/di'], '/base/path'];
-        yield [['C:/base/path/dir', 'C:/base/path/di'], 'C:/base/path'];
-        yield [['C:\\base\\path\\dir', 'C:\\base\\path\\di'], 'C:/base/path'];
-        yield [['C:/base/path/dir', 'C:\\base\\path\\di'], 'C:/base/path'];
         yield [['phar:///base/path/dir', 'phar:///base/path/di'], 'phar:///base/path'];
-        yield [['phar://C:/base/path/dir', 'phar://C:/base/path/di'], 'phar://C:/base/path'];
 
         // root is common base path
         yield [['/first', '/second'], '/'];
-        yield [['C:/first', 'C:/second'], 'C:/'];
-        yield [['C:\\first', 'C:\\second'], 'C:/'];
-        yield [['C:/first', 'C:\\second'], 'C:/'];
         yield [['phar:///first', 'phar:///second'], 'phar:///'];
-        yield [['phar://C:/first', 'phar://C:/second'], 'phar://C:/'];
-
-        // windows vs unix
-        yield [['/base/path', 'C:/base/path'], null];
-        yield [['C:/base/path', '/base/path'], null];
-        yield [['/base/path', 'C:\\base\\path'], null];
-        yield [['phar:///base/path', 'phar://C:/base/path'], null];
-
-        // different partitions
-        yield [['C:/base/path', 'D:/base/path'], null];
-        yield [['C:/base/path', 'D:\\base\\path'], null];
-        yield [['C:\\base\\path', 'D:\\base\\path'], null];
-        yield [['phar://C:/base/path', 'phar://D:/base/path'], null];
 
         // three paths
         yield [['/base/path/foo', '/base/path', '/base/path/bar'], '/base/path'];
-        yield [['C:/base/path/foo', 'C:/base/path', 'C:/base/path/bar'], 'C:/base/path'];
-        yield [['C:\\base\\path\\foo', 'C:\\base\\path', 'C:\\base\\path\\bar'], 'C:/base/path'];
-        yield [['C:/base/path//foo', 'C:/base/path', 'C:\\base\\path\\bar'], 'C:/base/path'];
         yield [['phar:///base/path/foo', 'phar:///base/path', 'phar:///base/path/bar'], 'phar:///base/path'];
-        yield [['phar://C:/base/path/foo', 'phar://C:/base/path', 'phar://C:/base/path/bar'], 'phar://C:/base/path'];
 
         // three paths with root
         yield [['/base/path/foo', '/', '/base/path/bar'], '/'];
-        yield [['C:/base/path/foo', 'C:/', 'C:/base/path/bar'], 'C:/'];
-        yield [['C:\\base\\path\\foo', 'C:\\', 'C:\\base\\path\\bar'], 'C:/'];
-        yield [['C:/base/path//foo', 'C:/', 'C:\\base\\path\\bar'], 'C:/'];
         yield [['phar:///base/path/foo', 'phar:///', 'phar:///base/path/bar'], 'phar:///'];
-        yield [['phar://C:/base/path/foo', 'phar://C:/', 'phar://C:/base/path/bar'], 'phar://C:/'];
-
-        // three paths, different roots
-        yield [['/base/path/foo', 'C:/base/path', '/base/path/bar'], null];
-        yield [['/base/path/foo', 'C:\\base\\path', '/base/path/bar'], null];
-        yield [['C:/base/path/foo', 'D:/base/path', 'C:/base/path/bar'], null];
-        yield [['C:\\base\\path\\foo', 'D:\\base\\path', 'C:\\base\\path\\bar'], null];
-        yield [['C:/base/path//foo', 'D:/base/path', 'C:\\base\\path\\bar'], null];
-        yield [['phar:///base/path/foo', 'phar://C:/base/path', 'phar:///base/path/bar'], null];
-        yield [['phar://C:/base/path/foo', 'phar://D:/base/path', 'phar://C:/base/path/bar'], null];
 
         // only one path
         yield [['/base/path'], '/base/path'];
-        yield [['C:/base/path'], 'C:/base/path'];
-        yield [['C:\\base\\path'], 'C:/base/path'];
         yield [['phar:///base/path'], 'phar:///base/path'];
-        yield [['phar://C:/base/path'], 'phar://C:/base/path'];
+
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            // same paths
+            yield [['C:/base/path', 'C:/base/path'], 'C:/base/path'];
+            yield [['C:\\base\\path', 'C:\\base\\path'], 'C:/base/path'];
+            yield [['C:/base/path', 'C:\\base\\path'], 'C:/base/path'];
+            yield [['phar://C:/base/path', 'phar://C:/base/path'], 'phar://C:/base/path'];
+
+            // trailing slash
+            yield [['C:/base/path/', 'C:/base/path'], 'C:/base/path'];
+            yield [['C:\\base\\path\\', 'C:\\base\\path'], 'C:/base/path'];
+            yield [['C:/base/path/', 'C:\\base\\path'], 'C:/base/path'];
+            yield [['phar://C:/base/path/', 'phar://C:/base/path'], 'phar://C:/base/path'];
+
+            yield [['C:/base/path', 'C:/base/path/'], 'C:/base/path'];
+            yield [['C:\\base\\path', 'C:\\base\\path\\'], 'C:/base/path'];
+            yield [['C:/base/path', 'C:\\base\\path\\'], 'C:/base/path'];
+            yield [['phar://C:/base/path', 'phar://C:/base/path/'], 'phar://C:/base/path'];
+
+            // first in second
+            yield [['C:/base/path/sub', 'C:/base/path'], 'C:/base/path'];
+            yield [['C:\\base\\path\\sub', 'C:\\base\\path'], 'C:/base/path'];
+            yield [['C:/base/path/sub', 'C:\\base\\path'], 'C:/base/path'];
+            yield [['phar://C:/base/path/sub', 'phar://C:/base/path'], 'phar://C:/base/path'];
+
+            // second in first
+            yield [['C:/base/path', 'C:/base/path/sub'], 'C:/base/path'];
+            yield [['C:\\base\\path', 'C:\\base\\path\\sub'], 'C:/base/path'];
+            yield [['C:/base/path', 'C:\\base\\path\\sub'], 'C:/base/path'];
+            yield [['phar://C:/base/path', 'phar://C:/base/path/sub'], 'phar://C:/base/path'];
+
+            // first is prefix
+            yield [['C:/base/path/di', 'C:/base/path/dir'], 'C:/base/path'];
+            yield [['C:\\base\\path\\di', 'C:\\base\\path\\dir'], 'C:/base/path'];
+            yield [['C:/base/path/di', 'C:\\base\\path\\dir'], 'C:/base/path'];
+            yield [['phar://C:/base/path/di', 'phar://C:/base/path/dir'], 'phar://C:/base/path'];
+
+            // second is prefix
+            yield [['C:/base/path/dir', 'C:/base/path/di'], 'C:/base/path'];
+            yield [['C:\\base\\path\\dir', 'C:\\base\\path\\di'], 'C:/base/path'];
+            yield [['C:/base/path/dir', 'C:\\base\\path\\di'], 'C:/base/path'];
+            yield [['phar://C:/base/path/dir', 'phar://C:/base/path/di'], 'phar://C:/base/path'];
+
+            // root is common base path
+            yield [['C:/first', 'C:/second'], 'C:/'];
+            yield [['C:\\first', 'C:\\second'], 'C:/'];
+            yield [['C:/first', 'C:\\second'], 'C:/'];
+            yield [['phar://C:/first', 'phar://C:/second'], 'phar://C:/'];
+
+            // windows vs unix
+            yield [['/base/path', 'C:/base/path'], null];
+            yield [['C:/base/path', '/base/path'], null];
+            yield [['/base/path', 'C:\\base\\path'], null];
+            yield [['phar:///base/path', 'phar://C:/base/path'], null];
+
+            // different partitions
+            yield [['C:/base/path', 'D:/base/path'], null];
+            yield [['C:/base/path', 'D:\\base\\path'], null];
+            yield [['C:\\base\\path', 'D:\\base\\path'], null];
+            yield [['phar://C:/base/path', 'phar://D:/base/path'], null];
+
+            // three paths
+            yield [['C:/base/path/foo', 'C:/base/path', 'C:/base/path/bar'], 'C:/base/path'];
+            yield [['C:\\base\\path\\foo', 'C:\\base\\path', 'C:\\base\\path\\bar'], 'C:/base/path'];
+            yield [['C:/base/path//foo', 'C:/base/path', 'C:\\base\\path\\bar'], 'C:/base/path'];
+            yield [['phar://C:/base/path/foo', 'phar://C:/base/path', 'phar://C:/base/path/bar'], 'phar://C:/base/path'];
+
+            // three paths with root
+            yield [['C:/base/path/foo', 'C:/', 'C:/base/path/bar'], 'C:/'];
+            yield [['C:\\base\\path\\foo', 'C:\\', 'C:\\base\\path\\bar'], 'C:/'];
+            yield [['C:/base/path//foo', 'C:/', 'C:\\base\\path\\bar'], 'C:/'];
+            yield [['phar://C:/base/path/foo', 'phar://C:/', 'phar://C:/base/path/bar'], 'phar://C:/'];
+
+            // three paths, different roots
+            yield [['/base/path/foo', 'C:/base/path', '/base/path/bar'], null];
+            yield [['/base/path/foo', 'C:\\base\\path', '/base/path/bar'], null];
+            yield [['C:/base/path/foo', 'D:/base/path', 'C:/base/path/bar'], null];
+            yield [['C:\\base\\path\\foo', 'D:\\base\\path', 'C:\\base\\path\\bar'], null];
+            yield [['C:/base/path//foo', 'D:/base/path', 'C:\\base\\path\\bar'], null];
+            yield [['phar:///base/path/foo', 'phar://C:/base/path', 'phar:///base/path/bar'], null];
+            yield [['phar://C:/base/path/foo', 'phar://D:/base/path', 'phar://C:/base/path/bar'], null];
+
+            // only one path
+            yield [['C:/base/path'], 'C:/base/path'];
+            yield [['C:\\base\\path'], 'C:/base/path'];
+            yield [['phar://C:/base/path'], 'phar://C:/base/path'];
+        }
     }
 
     /**
@@ -856,81 +913,100 @@
     {
         // same paths
         yield ['/base/path', '/base/path', true];
-        yield ['C:/base/path', 'C:/base/path', true];
-        yield ['C:\\base\\path', 'C:\\base\\path', true];
-        yield ['C:/base/path', 'C:\\base\\path', true];
         yield ['phar:///base/path', 'phar:///base/path', true];
-        yield ['phar://C:/base/path', 'phar://C:/base/path', true];
 
         // trailing slash
         yield ['/base/path/', '/base/path', true];
-        yield ['C:/base/path/', 'C:/base/path', true];
-        yield ['C:\\base\\path\\', 'C:\\base\\path', true];
-        yield ['C:/base/path/', 'C:\\base\\path', true];
         yield ['phar:///base/path/', 'phar:///base/path', true];
-        yield ['phar://C:/base/path/', 'phar://C:/base/path', true];
 
         yield ['/base/path', '/base/path/', true];
-        yield ['C:/base/path', 'C:/base/path/', true];
-        yield ['C:\\base\\path', 'C:\\base\\path\\', true];
-        yield ['C:/base/path', 'C:\\base\\path\\', true];
         yield ['phar:///base/path', 'phar:///base/path/', true];
-        yield ['phar://C:/base/path', 'phar://C:/base/path/', true];
 
         // first in second
         yield ['/base/path/sub', '/base/path', false];
-        yield ['C:/base/path/sub', 'C:/base/path', false];
-        yield ['C:\\base\\path\\sub', 'C:\\base\\path', false];
-        yield ['C:/base/path/sub', 'C:\\base\\path', false];
         yield ['phar:///base/path/sub', 'phar:///base/path', false];
-        yield ['phar://C:/base/path/sub', 'phar://C:/base/path', false];
 
         // second in first
         yield ['/base/path', '/base/path/sub', true];
-        yield ['C:/base/path', 'C:/base/path/sub', true];
-        yield ['C:\\base\\path', 'C:\\base\\path\\sub', true];
-        yield ['C:/base/path', 'C:\\base\\path\\sub', true];
         yield ['phar:///base/path', 'phar:///base/path/sub', true];
-        yield ['phar://C:/base/path', 'phar://C:/base/path/sub', true];
 
         // first is prefix
         yield ['/base/path/di', '/base/path/dir', false];
-        yield ['C:/base/path/di', 'C:/base/path/dir', false];
-        yield ['C:\\base\\path\\di', 'C:\\base\\path\\dir', false];
-        yield ['C:/base/path/di', 'C:\\base\\path\\dir', false];
         yield ['phar:///base/path/di', 'phar:///base/path/dir', false];
-        yield ['phar://C:/base/path/di', 'phar://C:/base/path/dir', false];
 
         // second is prefix
         yield ['/base/path/dir', '/base/path/di', false];
-        yield ['C:/base/path/dir', 'C:/base/path/di', false];
-        yield ['C:\\base\\path\\dir', 'C:\\base\\path\\di', false];
-        yield ['C:/base/path/dir', 'C:\\base\\path\\di', false];
         yield ['phar:///base/path/dir', 'phar:///base/path/di', false];
-        yield ['phar://C:/base/path/dir', 'phar://C:/base/path/di', false];
 
         // root
         yield ['/', '/second', true];
-        yield ['C:/', 'C:/second', true];
-        yield ['C:', 'C:/second', true];
-        yield ['C:\\', 'C:\\second', true];
-        yield ['C:/', 'C:\\second', true];
         yield ['phar:///', 'phar:///second', true];
-        yield ['phar://C:/', 'phar://C:/second', true];
 
-        // windows vs unix
-        yield ['/base/path', 'C:/base/path', false];
-        yield ['C:/base/path', '/base/path', false];
-        yield ['/base/path', 'C:\\base\\path', false];
+        // different schemes
         yield ['/base/path', 'phar:///base/path', false];
-        yield ['phar:///base/path', 'phar://C:/base/path', false];
 
-        // different partitions
-        yield ['C:/base/path', 'D:/base/path', false];
-        yield ['C:/base/path', 'D:\\base\\path', false];
-        yield ['C:\\base\\path', 'D:\\base\\path', false];
-        yield ['C:/base/path', 'phar://C:/base/path', false];
-        yield ['phar://C:/base/path', 'phar://D:/base/path', false];
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            // same paths
+            yield ['C:/base/path', 'C:/base/path', true];
+            yield ['C:\\base\\path', 'C:\\base\\path', true];
+            yield ['C:/base/path', 'C:\\base\\path', true];
+            yield ['phar://C:/base/path', 'phar://C:/base/path', true];
+
+            // trailing slash
+            yield ['C:/base/path/', 'C:/base/path', true];
+            yield ['C:\\base\\path\\', 'C:\\base\\path', true];
+            yield ['C:/base/path/', 'C:\\base\\path', true];
+            yield ['phar://C:/base/path/', 'phar://C:/base/path', true];
+
+            yield ['C:/base/path', 'C:/base/path/', true];
+            yield ['C:\\base\\path', 'C:\\base\\path\\', true];
+            yield ['C:/base/path', 'C:\\base\\path\\', true];
+            yield ['phar://C:/base/path', 'phar://C:/base/path/', true];
+
+            // first in second
+            yield ['C:/base/path/sub', 'C:/base/path', false];
+            yield ['C:\\base\\path\\sub', 'C:\\base\\path', false];
+            yield ['C:/base/path/sub', 'C:\\base\\path', false];
+            yield ['phar://C:/base/path/sub', 'phar://C:/base/path', false];
+
+            // second in first
+            yield ['C:/base/path', 'C:/base/path/sub', true];
+            yield ['C:\\base\\path', 'C:\\base\\path\\sub', true];
+            yield ['C:/base/path', 'C:\\base\\path\\sub', true];
+            yield ['phar://C:/base/path', 'phar://C:/base/path/sub', true];
+
+            // first is prefix
+            yield ['C:/base/path/di', 'C:/base/path/dir', false];
+            yield ['C:\\base\\path\\di', 'C:\\base\\path\\dir', false];
+            yield ['C:/base/path/di', 'C:\\base\\path\\dir', false];
+            yield ['phar://C:/base/path/di', 'phar://C:/base/path/dir', false];
+
+            // second is prefix
+            yield ['C:/base/path/dir', 'C:/base/path/di', false];
+            yield ['C:\\base\\path\\dir', 'C:\\base\\path\\di', false];
+            yield ['C:/base/path/dir', 'C:\\base\\path\\di', false];
+            yield ['phar://C:/base/path/dir', 'phar://C:/base/path/di', false];
+
+            // root
+            yield ['C:/', 'C:/second', true];
+            yield ['C:', 'C:/second', true];
+            yield ['C:\\', 'C:\\second', true];
+            yield ['C:/', 'C:\\second', true];
+            yield ['phar://C:/', 'phar://C:/second', true];
+
+            // windows vs unix
+            yield ['/base/path', 'C:/base/path', false];
+            yield ['C:/base/path', '/base/path', false];
+            yield ['/base/path', 'C:\\base\\path', false];
+            yield ['phar:///base/path', 'phar://C:/base/path', false];
+
+            // different partitions
+            yield ['C:/base/path', 'D:/base/path', false];
+            yield ['C:/base/path', 'D:\\base\\path', false];
+            yield ['C:\\base\\path', 'D:\\base\\path', false];
+            yield ['C:/base/path', 'phar://C:/base/path', false];
+            yield ['phar://C:/base/path', 'phar://D:/base/path', false];
+        }
     }
 
     /**
@@ -977,19 +1053,8 @@
 
         yield [['base/path', 'to/test'], 'base/path/to/test'];
 
-        yield [['C:\\path\\to\\test', 'subdir'], 'C:/path/to/test/subdir'];
-        yield [['C:\\path\\to\\test\\', 'subdir'], 'C:/path/to/test/subdir'];
-        yield [['C:\\path\\to\\test', '/subdir'], 'C:/path/to/test/subdir'];
-        yield [['C:\\path\\to\\test\\', '/subdir'], 'C:/path/to/test/subdir'];
-
         yield [['/', 'subdir'], '/subdir'];
         yield [['/', '/subdir'], '/subdir'];
-        yield [['C:/', 'subdir'], 'C:/subdir'];
-        yield [['C:/', '/subdir'], 'C:/subdir'];
-        yield [['C:\\', 'subdir'], 'C:/subdir'];
-        yield [['C:\\', '/subdir'], 'C:/subdir'];
-        yield [['C:', 'subdir'], 'C:/subdir'];
-        yield [['C:', '/subdir'], 'C:/subdir'];
 
         yield [['phar://', '/path/to/test'], 'phar:///path/to/test'];
         yield [['phar:///', '/path/to/test'], 'phar:///path/to/test'];
@@ -999,17 +1064,31 @@
         yield [['phar:///path/to/test/', 'subdir'], 'phar:///path/to/test/subdir'];
         yield [['phar:///path/to/test/', '/subdir'], 'phar:///path/to/test/subdir'];
 
-        yield [['phar://', 'C:/path/to/test'], 'phar://C:/path/to/test'];
-        yield [['phar://', 'C:\\path\\to\\test'], 'phar://C:/path/to/test'];
-        yield [['phar://C:/path/to/test', 'subdir'], 'phar://C:/path/to/test/subdir'];
-        yield [['phar://C:/path/to/test', 'subdir/'], 'phar://C:/path/to/test/subdir'];
-        yield [['phar://C:/path/to/test', '/subdir'], 'phar://C:/path/to/test/subdir'];
-        yield [['phar://C:/path/to/test/', 'subdir'], 'phar://C:/path/to/test/subdir'];
-        yield [['phar://C:/path/to/test/', '/subdir'], 'phar://C:/path/to/test/subdir'];
-        yield [['phar://C:', 'path/to/test'], 'phar://C:/path/to/test'];
-        yield [['phar://C:', '/path/to/test'], 'phar://C:/path/to/test'];
-        yield [['phar://C:/', 'path/to/test'], 'phar://C:/path/to/test'];
-        yield [['phar://C:/', '/path/to/test'], 'phar://C:/path/to/test'];
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            yield [['C:\\path\\to\\test', 'subdir'], 'C:/path/to/test/subdir'];
+            yield [['C:\\path\\to\\test\\', 'subdir'], 'C:/path/to/test/subdir'];
+            yield [['C:\\path\\to\\test', '/subdir'], 'C:/path/to/test/subdir'];
+            yield [['C:\\path\\to\\test\\', '/subdir'], 'C:/path/to/test/subdir'];
+
+            yield [['C:/', 'subdir'], 'C:/subdir'];
+            yield [['C:/', '/subdir'], 'C:/subdir'];
+            yield [['C:\\', 'subdir'], 'C:/subdir'];
+            yield [['C:\\', '/subdir'], 'C:/subdir'];
+            yield [['C:', 'subdir'], 'C:/subdir'];
+            yield [['C:', '/subdir'], 'C:/subdir'];
+
+            yield [['phar://', 'C:/path/to/test'], 'phar://C:/path/to/test'];
+            yield [['phar://', 'C:\\path\\to\\test'], 'phar://C:/path/to/test'];
+            yield [['phar://C:/path/to/test', 'subdir'], 'phar://C:/path/to/test/subdir'];
+            yield [['phar://C:/path/to/test', 'subdir/'], 'phar://C:/path/to/test/subdir'];
+            yield [['phar://C:/path/to/test', '/subdir'], 'phar://C:/path/to/test/subdir'];
+            yield [['phar://C:/path/to/test/', 'subdir'], 'phar://C:/path/to/test/subdir'];
+            yield [['phar://C:/path/to/test/', '/subdir'], 'phar://C:/path/to/test/subdir'];
+            yield [['phar://C:', 'path/to/test'], 'phar://C:/path/to/test'];
+            yield [['phar://C:', '/path/to/test'], 'phar://C:/path/to/test'];
+            yield [['phar://C:/', 'path/to/test'], 'phar://C:/path/to/test'];
+            yield [['phar://C:/', '/path/to/test'], 'phar://C:/path/to/test'];
+        }
     }
 
     /**
@@ -1054,6 +1133,10 @@
 
     public function testNormalize()
     {
-        $this->assertSame('C:/Foo/Bar/test', Path::normalize('C:\\Foo\\Bar/test'));
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            $this->assertSame('C:/Foo/Bar/test', Path::normalize('C:\\Foo\\Bar/test'));
+        } else {
+            $this->assertSame('C:\\Foo\\Bar/test', Path::normalize('C:\\Foo\\Bar/test'));
+        }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Comparator/Comparator.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Comparator/Comparator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Comparator/Comparator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Comparator/Comparator.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
     public function __construct(string $target, string $operator = '==')
     {
         if (!\in_array($operator, ['>', '<', '>=', '<=', '==', '!='])) {
-            throw new \InvalidArgumentException(sprintf('Invalid operator "%s".', $operator));
+            throw new \InvalidArgumentException(\sprintf('Invalid operator "%s".', $operator));
         }
 
         $this->target = $target;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Comparator/DateComparator.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Comparator/DateComparator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Comparator/DateComparator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Comparator/DateComparator.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,14 +26,14 @@
     public function __construct(string $test)
     {
         if (!preg_match('#^\s*(==|!=|[<>]=?|after|since|before|until)?\s*(.+?)\s*$#i', $test, $matches)) {
-            throw new \InvalidArgumentException(sprintf('Don\'t understand "%s" as a date test.', $test));
+            throw new \InvalidArgumentException(\sprintf('Don\'t understand "%s" as a date test.', $test));
         }
 
         try {
             $date = new \DateTimeImmutable($matches[2]);
             $target = $date->format('U');
         } catch (\Exception) {
-            throw new \InvalidArgumentException(sprintf('"%s" is not a valid date.', $matches[2]));
+            throw new \InvalidArgumentException(\sprintf('"%s" is not a valid date.', $matches[2]));
         }
 
         $operator = $matches[1] ?: '==';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Comparator/NumberComparator.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Comparator/NumberComparator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Comparator/NumberComparator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Comparator/NumberComparator.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,12 +42,12 @@
     public function __construct(?string $test)
     {
         if (null === $test || !preg_match('#^\s*(==|!=|[<>]=?)?\s*([0-9\.]+)\s*([kmg]i?)?\s*$#i', $test, $matches)) {
-            throw new \InvalidArgumentException(sprintf('Don\'t understand "%s" as a number test.', $test ?? 'null'));
+            throw new \InvalidArgumentException(\sprintf('Don\'t understand "%s" as a number test.', $test ?? 'null'));
         }
 
         $target = $matches[2];
         if (!is_numeric($target)) {
-            throw new \InvalidArgumentException(sprintf('Invalid number "%s".', $target));
+            throw new \InvalidArgumentException(\sprintf('Invalid number "%s".', $target));
         }
         if (isset($matches[3])) {
             // magnitude
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Finder.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Finder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Finder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Finder.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,8 +57,10 @@
     private bool $reverseSorting = false;
     private \Closure|int|false $sort = false;
     private int $ignore = 0;
+    /** @var list<string> */
     private array $dirs = [];
     private array $dates = [];
+    /** @var list<iterable<SplFileInfo|\SplFileInfo|string>> */
     private array $iterators = [];
     private array $contains = [];
     private array $notContains = [];
@@ -124,7 +126,7 @@
     public function depth(string|int|array $levels): static
     {
         foreach ((array) $levels as $level) {
-            $this->depths[] = new Comparator\NumberComparator($level);
+            $this->depths[] = new NumberComparator($level);
         }
 
         return $this;
@@ -152,7 +154,7 @@
     public function date(string|array $dates): static
     {
         foreach ((array) $dates as $date) {
-            $this->dates[] = new Comparator\DateComparator($date);
+            $this->dates[] = new DateComparator($date);
         }
 
         return $this;
@@ -307,7 +309,7 @@
     public function size(string|int|array $sizes): static
     {
         foreach ((array) $sizes as $size) {
-            $this->sizes[] = new Comparator\NumberComparator($size);
+            $this->sizes[] = new NumberComparator($size);
         }
 
         return $this;
@@ -438,7 +440,7 @@
      */
     public function sortByExtension(): static
     {
-        $this->sort = Iterator\SortableIterator::SORT_BY_EXTENSION;
+        $this->sort = SortableIterator::SORT_BY_EXTENSION;
 
         return $this;
     }
@@ -454,7 +456,7 @@
      */
     public function sortByName(bool $useNaturalSort = false): static
     {
-        $this->sort = $useNaturalSort ? Iterator\SortableIterator::SORT_BY_NAME_NATURAL : Iterator\SortableIterator::SORT_BY_NAME;
+        $this->sort = $useNaturalSort ? SortableIterator::SORT_BY_NAME_NATURAL : SortableIterator::SORT_BY_NAME;
 
         return $this;
     }
@@ -470,7 +472,7 @@
      */
     public function sortByCaseInsensitiveName(bool $useNaturalSort = false): static
     {
-        $this->sort = $useNaturalSort ? Iterator\SortableIterator::SORT_BY_NAME_NATURAL_CASE_INSENSITIVE : Iterator\SortableIterator::SORT_BY_NAME_CASE_INSENSITIVE;
+        $this->sort = $useNaturalSort ? SortableIterator::SORT_BY_NAME_NATURAL_CASE_INSENSITIVE : SortableIterator::SORT_BY_NAME_CASE_INSENSITIVE;
 
         return $this;
     }
@@ -486,7 +488,7 @@
      */
     public function sortBySize(): static
     {
-        $this->sort = Iterator\SortableIterator::SORT_BY_SIZE;
+        $this->sort = SortableIterator::SORT_BY_SIZE;
 
         return $this;
     }
@@ -502,7 +504,7 @@
      */
     public function sortByType(): static
     {
-        $this->sort = Iterator\SortableIterator::SORT_BY_TYPE;
+        $this->sort = SortableIterator::SORT_BY_TYPE;
 
         return $this;
     }
@@ -520,7 +522,7 @@
      */
     public function sortByAccessedTime(): static
     {
-        $this->sort = Iterator\SortableIterator::SORT_BY_ACCESSED_TIME;
+        $this->sort = SortableIterator::SORT_BY_ACCESSED_TIME;
 
         return $this;
     }
@@ -552,7 +554,7 @@
      */
     public function sortByChangedTime(): static
     {
-        $this->sort = Iterator\SortableIterator::SORT_BY_CHANGED_TIME;
+        $this->sort = SortableIterator::SORT_BY_CHANGED_TIME;
 
         return $this;
     }
@@ -570,7 +572,7 @@
      */
     public function sortByModifiedTime(): static
     {
-        $this->sort = Iterator\SortableIterator::SORT_BY_MODIFIED_TIME;
+        $this->sort = SortableIterator::SORT_BY_MODIFIED_TIME;
 
         return $this;
     }
@@ -646,7 +648,7 @@
                 sort($glob);
                 $resolvedDirs[] = array_map($this->normalizeDir(...), $glob);
             } else {
-                throw new DirectoryNotFoundException(sprintf('The "%s" directory does not exist.', $dir));
+                throw new DirectoryNotFoundException(\sprintf('The "%s" directory does not exist.', $dir));
             }
         }
 
@@ -666,31 +668,37 @@
      */
     public function getIterator(): \Iterator
     {
-        if (0 === \count($this->dirs) && 0 === \count($this->iterators)) {
+        if (!$this->dirs && !$this->iterators) {
             throw new \LogicException('You must call one of in() or append() methods before iterating over a Finder.');
         }
 
-        if (1 === \count($this->dirs) && 0 === \count($this->iterators)) {
+        if (1 === \count($this->dirs) && !$this->iterators) {
             $iterator = $this->searchInDirectory($this->dirs[0]);
-
-            if ($this->sort || $this->reverseSorting) {
-                $iterator = (new Iterator\SortableIterator($iterator, $this->sort, $this->reverseSorting))->getIterator();
+        } else {
+            $iterator = new \AppendIterator();
+            foreach ($this->dirs as $dir) {
+                $iterator->append(new \IteratorIterator(new LazyIterator(fn () => $this->searchInDirectory($dir))));
             }
 
-            return $iterator;
-        }
-
-        $iterator = new \AppendIterator();
-        foreach ($this->dirs as $dir) {
-            $iterator->append(new \IteratorIterator(new LazyIterator(fn () => $this->searchInDirectory($dir))));
-        }
-
-        foreach ($this->iterators as $it) {
-            $iterator->append($it);
+            foreach ($this->iterators as $it) {
+                $iterator->append(new \IteratorIterator(new LazyIterator(static function () use ($it) {
+                    foreach ($it as $file) {
+                        if (!$file instanceof \SplFileInfo) {
+                            $file = new \SplFileInfo($file);
+                        }
+                        $key = $file->getPathname();
+                        if (!$file instanceof SplFileInfo) {
+                            $file = new SplFileInfo($key, $file->getPath(), $key);
+                        }
+
+                        yield $key => $file;
+                    }
+                })));
+            }
         }
 
         if ($this->sort || $this->reverseSorting) {
-            $iterator = (new Iterator\SortableIterator($iterator, $this->sort, $this->reverseSorting))->getIterator();
+            $iterator = (new SortableIterator($iterator, $this->sort, $this->reverseSorting))->getIterator();
         }
 
         return $iterator;
@@ -701,26 +709,13 @@
      *
      * The set can be another Finder, an Iterator, an IteratorAggregate, or even a plain array.
      *
-     * @return $this
+     * @param iterable<SplFileInfo|\SplFileInfo|string> $iterator
      *
-     * @throws \InvalidArgumentException when the given argument is not iterable
+     * @return $this
      */
     public function append(iterable $iterator): static
     {
-        if ($iterator instanceof \IteratorAggregate) {
-            $this->iterators[] = $iterator->getIterator();
-        } elseif ($iterator instanceof \Iterator) {
-            $this->iterators[] = $iterator;
-        } elseif (is_iterable($iterator)) {
-            $it = new \ArrayIterator();
-            foreach ($iterator as $file) {
-                $file = $file instanceof \SplFileInfo ? $file : new \SplFileInfo($file);
-                $it[$file->getPathname()] = $file;
-            }
-            $this->iterators[] = $it;
-        } else {
-            throw new \InvalidArgumentException('Finder::append() method wrong argument type.');
-        }
+        $this->iterators[] = $iterator;
 
         return $this;
     }
@@ -793,13 +788,13 @@
         $iterator = new Iterator\RecursiveDirectoryIterator($dir, $flags, $this->ignoreUnreadableDirs);
 
         if ($exclude) {
-            $iterator = new Iterator\ExcludeDirectoryFilterIterator($iterator, $exclude);
+            $iterator = new ExcludeDirectoryFilterIterator($iterator, $exclude);
         }
 
         $iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::SELF_FIRST);
 
         if ($minDepth > 0 || $maxDepth < \PHP_INT_MAX) {
-            $iterator = new Iterator\DepthRangeFilterIterator($iterator, $minDepth, $maxDepth);
+            $iterator = new DepthRangeFilterIterator($iterator, $minDepth, $maxDepth);
         }
 
         if ($this->mode) {
@@ -807,23 +802,23 @@
         }
 
         if ($this->names || $this->notNames) {
-            $iterator = new Iterator\FilenameFilterIterator($iterator, $this->names, $this->notNames);
+            $iterator = new FilenameFilterIterator($iterator, $this->names, $this->notNames);
         }
 
         if ($this->contains || $this->notContains) {
-            $iterator = new Iterator\FilecontentFilterIterator($iterator, $this->contains, $this->notContains);
+            $iterator = new FilecontentFilterIterator($iterator, $this->contains, $this->notContains);
         }
 
         if ($this->sizes) {
-            $iterator = new Iterator\SizeRangeFilterIterator($iterator, $this->sizes);
+            $iterator = new SizeRangeFilterIterator($iterator, $this->sizes);
         }
 
         if ($this->dates) {
-            $iterator = new Iterator\DateRangeFilterIterator($iterator, $this->dates);
+            $iterator = new DateRangeFilterIterator($iterator, $this->dates);
         }
 
         if ($this->filters) {
-            $iterator = new Iterator\CustomFilterIterator($iterator, $this->filters);
+            $iterator = new CustomFilterIterator($iterator, $this->filters);
         }
 
         if ($this->paths || $notPaths) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Gitignore.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Gitignore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Gitignore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Gitignore.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,7 +79,7 @@
         }
 
         $regex = preg_quote(str_replace('\\', '', $gitignoreLine), '~');
-        $regex = preg_replace_callback('~\\\\\[((?:\\\\!)?)([^\[\]]*)\\\\\]~', fn (array $matches): string => '['.('' !== $matches[1] ? '^' : '').str_replace('\\-', '-', $matches[2]).']', $regex);
+        $regex = preg_replace_callback('~\\\\\[((?:\\\\!)?)([^\[\]]*)\\\\\]~', static fn (array $matches): string => '['.('' !== $matches[1] ? '^' : '').str_replace('\\-', '-', $matches[2]).']', $regex);
         $regex = preg_replace('~(?:(?:\\\\\*){2,}(/?))+~', '(?:(?:(?!//).(?<!//))+$1)?', $regex);
         $regex = preg_replace('~\\\\\*~', '[^/]*', $regex);
         $regex = preg_replace('~\\\\\?~', '[^/]', $regex);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Glob.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Glob.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Glob.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Glob.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,6 +44,9 @@
         $escaping = false;
         $inCurlies = 0;
         $regex = '';
+        if ($unanchored = str_starts_with($glob, '**/')) {
+            $glob = '/'.$glob;
+        }
         $sizeGlob = \strlen($glob);
         for ($i = 0; $i < $sizeGlob; ++$i) {
             $car = $glob[$i];
@@ -104,6 +107,10 @@
             $escaping = false;
         }
 
+        if ($unanchored) {
+            $regex = substr_replace($regex, '?', 1 + ('/' === $delimiter) + ($strictLeadingDot ? \strlen('(?=[^\.])') : 0), 0);
+        }
+
         return $delimiter.'^'.$regex.'$'.$delimiter;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Iterator/SortableIterator.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Iterator/SortableIterator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Iterator/SortableIterator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Iterator/SortableIterator.php	2026-05-20 10:56:49.000000000 +0200
@@ -87,17 +87,29 @@
     public function getIterator(): \Traversable
     {
         if (1 === $this->sort) {
-            return $this->iterator;
+            yield from $this->iterator;
+
+            return;
         }
 
-        $array = iterator_to_array($this->iterator, true);
+        $keys = $values = [];
+        foreach ($this->iterator as $key => $value) {
+            $keys[] = $key;
+            $values[] = $value;
+        }
 
         if (-1 === $this->sort) {
-            $array = array_reverse($array);
-        } else {
-            uasort($array, $this->sort);
+            for ($i = \count($values) - 1; $i >= 0; --$i) {
+                yield $keys[$i] => $values[$i];
+            }
+
+            return;
         }
 
-        return new \ArrayIterator($array);
+        uasort($values, $this->sort);
+
+        foreach ($values as $i => $v) {
+            yield $keys[$i] => $v;
+        }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/SplFileInfo.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/SplFileInfo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/SplFileInfo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/SplFileInfo.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
      */
     public function getContents(): string
     {
-        set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
+        set_error_handler(static function ($type, $msg) use (&$error) { $error = $msg; });
         try {
             $content = file_get_contents($this->getPathname());
         } finally {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/FinderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/FinderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/FinderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/FinderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Symfony\Component\Finder\Exception\DirectoryNotFoundException;
 use Symfony\Component\Finder\Finder;
+use Symfony\Component\Finder\SplFileInfo;
 
 class FinderTest extends Iterator\RealIteratorTestCase
 {
@@ -931,7 +932,7 @@
     public function testSort()
     {
         $finder = $this->buildFinder();
-        $this->assertSame($finder, $finder->sort(fn (\SplFileInfo $a, \SplFileInfo $b) => strcmp($a->getRealPath(), $b->getRealPath())));
+        $this->assertSame($finder, $finder->sort(static fn (\SplFileInfo $a, \SplFileInfo $b) => strcmp($a->getRealPath(), $b->getRealPath())));
         $this->assertOrderedIterator($this->toAbsolute([
             'Zephire.php',
             'foo',
@@ -987,7 +988,7 @@
     public function testFilter()
     {
         $finder = $this->buildFinder();
-        $this->assertSame($finder, $finder->filter(fn (\SplFileInfo $f) => str_contains($f, 'test')));
+        $this->assertSame($finder, $finder->filter(static fn (\SplFileInfo $f) => str_contains($f, 'test')));
         $this->assertIterator($this->toAbsolute(['test.php', 'test.py']), $finder->in(self::$tmpDir)->getIterator());
     }
 
@@ -1014,7 +1015,7 @@
         $finder = $this->buildFinder();
         $finder
             ->in($this->vfsScheme.'://x')
-            ->filter(fn (): bool => true, true) // does nothing
+            ->filter(static fn (): bool => true, true) // does nothing
             ->filter(function (\SplFileInfo $file): bool {
                 $path = $this->stripSchemeFromVfsPath($file->getPathname());
 
@@ -1024,7 +1025,7 @@
 
                 return $res;
             }, true)
-            ->filter(fn (): bool => true, true); // does nothing
+            ->filter(static fn (): bool => true, true); // does nothing
 
         $this->assertSameVfsIterator([
             'x/a.php',
@@ -1296,11 +1297,219 @@
         $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'toto']), $finder->getIterator());
     }
 
+    public function testAppendStandardizesItemsToBeSymfonySplFileInfo()
+    {
+        $finder1 = $this->buildFinder();
+        $finder1->files()->in(self::$tmpDir.\DIRECTORY_SEPARATOR.'foo');
+
+        $finder2 = $this->buildFinder();
+        $finder2->directories()->in(self::$tmpDir);
+
+        $finder1->append($finder2);
+        $finder1->append($this->toAbsolute(['foo']));
+        $finder1->append(array_map(static fn ($item) => new \SplFileInfo($item), $this->toAbsolute(['toto'])));
+
+        foreach ($finder1 as $item) {
+            $this->assertInstanceOf(SplFileInfo::class, $item);
+        }
+    }
+
+    public function testRelativePathWithoutAppend()
+    {
+        $this->setupVfsProvider([
+            'a' => [
+                'a1' => '',
+                'a2' => '',
+                'b' => [
+                    'b1' => '',
+                    'b2' => '',
+                    'c' => [
+                        'c1' => '',
+                        'c2' => '',
+                    ],
+                ],
+            ],
+        ]);
+
+        $dir = $this->vfsScheme.'://';
+
+        $finder = Finder::create()->sortByName()->in($dir.'a/b');
+        $this->assertSame(
+            [
+                ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'b1', 'relativePathname' => 'b1'],
+                ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'b2', 'relativePathname' => 'b2'],
+                ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c', 'relativePathname' => 'c'],
+                ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c1', 'relativePathname' => 'c'.\DIRECTORY_SEPARATOR.'c1'],
+                ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c2', 'relativePathname' => 'c'.\DIRECTORY_SEPARATOR.'c2'],
+            ],
+            self::formatForAssert($finder),
+        );
+    }
+
+    public function testRelativePathWithAppendedFinderForParentDirectory()
+    {
+        $this->setupVfsProvider([
+            'a' => [
+                'a1' => '',
+                'a2' => '',
+                'b' => [
+                    'b1' => '',
+                    'b2' => '',
+                    'c' => [
+                        'c1' => '',
+                        'c2' => '',
+                    ],
+                ],
+            ],
+        ]);
+
+        $dir = $this->vfsScheme.'://';
+
+        $finder = Finder::create()->sortByName(true)->in($dir.'a/b');
+        $finder->append(Finder::create()->in($dir.'a'));
+
+        $expected = [
+            ['key' => $dir.'a'.\DIRECTORY_SEPARATOR.'a1', 'relativePathname' => 'a1'],
+            ['key' => $dir.'a'.\DIRECTORY_SEPARATOR.'a2', 'relativePathname' => 'a2'],
+            ['key' => $dir.'a'.\DIRECTORY_SEPARATOR.'b', 'relativePathname' => 'b'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'b1', 'relativePathname' => 'b1'],
+            ['key' => $dir.'a'.\DIRECTORY_SEPARATOR.'b'.\DIRECTORY_SEPARATOR.'b1', 'relativePathname' => 'b'.\DIRECTORY_SEPARATOR.'b1'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'b2', 'relativePathname' => 'b2'],
+            ['key' => $dir.'a'.\DIRECTORY_SEPARATOR.'b'.\DIRECTORY_SEPARATOR.'b2', 'relativePathname' => 'b'.\DIRECTORY_SEPARATOR.'b2'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c', 'relativePathname' => 'c'],
+            ['key' => $dir.'a'.\DIRECTORY_SEPARATOR.'b'.\DIRECTORY_SEPARATOR.'c', 'relativePathname' => 'b'.\DIRECTORY_SEPARATOR.'c'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c1', 'relativePathname' => 'c'.\DIRECTORY_SEPARATOR.'c1'],
+            ['key' => $dir.'a'.\DIRECTORY_SEPARATOR.'b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c1', 'relativePathname' => 'b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c1'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c2', 'relativePathname' => 'c'.\DIRECTORY_SEPARATOR.'c2'],
+            ['key' => $dir.'a'.\DIRECTORY_SEPARATOR.'b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c2', 'relativePathname' => 'b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c2'],
+        ];
+
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            usort($expected, static fn ($a, $b) => $a['key'] <=> $b['key']);
+        }
+
+        $this->assertSame($expected, self::formatForAssert($finder));
+    }
+
+    public function testRelativePathWithAppendedFinderForChildDirectory()
+    {
+        $this->setupVfsProvider([
+            'a' => [
+                'a1' => '',
+                'a2' => '',
+                'b' => [
+                    'b1' => '',
+                    'b2' => '',
+                    'c' => [
+                        'c1' => '',
+                        'c2' => '',
+                    ],
+                ],
+            ],
+        ]);
+
+        $dir = $this->vfsScheme.'://';
+
+        $finder = Finder::create()->sortByName(true)->in($dir.'a/b');
+        $finder->append(Finder::create()->in($dir.'a/b/c'));
+
+        $expected = [
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'b1', 'relativePathname' => 'b1'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'b2', 'relativePathname' => 'b2'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c', 'relativePathname' => 'c'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c1', 'relativePathname' => 'c'.\DIRECTORY_SEPARATOR.'c1'],
+            ['key' => $dir.'a/b/c'.\DIRECTORY_SEPARATOR.'c1', 'relativePathname' => 'c1'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c2', 'relativePathname' => 'c'.\DIRECTORY_SEPARATOR.'c2'],
+            ['key' => $dir.'a/b/c'.\DIRECTORY_SEPARATOR.'c2', 'relativePathname' => 'c2'],
+        ];
+
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            usort($expected, static fn ($a, $b) => $a['key'] <=> $b['key']);
+        }
+
+        $this->assertSame($expected, self::formatForAssert($finder));
+    }
+
+    public function testRelativePathWithAppendedPaths()
+    {
+        $this->setupVfsProvider([
+            'a' => [
+                'a1' => '',
+                'a2' => '',
+                'b' => [
+                    'b1' => '',
+                    'b2' => '',
+                    'c' => [
+                        'c1' => '',
+                        'c2' => '',
+                    ],
+                ],
+            ],
+        ]);
+
+        $dir = $this->vfsScheme.'://';
+
+        $finder = Finder::create()->sortByName(true)->in($dir.'a/b');
+        $finder->append([$dir.'a/a1', $dir.'a/b/c/c1']);
+
+        $expected = [
+            ['key' => $dir.'a/a1', 'relativePathname' => $dir.'a/a1'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'b1', 'relativePathname' => 'b1'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'b2', 'relativePathname' => 'b2'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c', 'relativePathname' => 'c'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c1', 'relativePathname' => 'c'.\DIRECTORY_SEPARATOR.'c1'],
+            ['key' => $dir.'a/b/c/c1', 'relativePathname' => $dir.'a/b/c/c1'],
+            ['key' => $dir.'a/b'.\DIRECTORY_SEPARATOR.'c'.\DIRECTORY_SEPARATOR.'c2', 'relativePathname' => 'c'.\DIRECTORY_SEPARATOR.'c2'],
+        ];
+
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            usort($expected, static fn ($a, $b) => $a['key'] <=> $b['key']);
+        }
+
+        $this->assertSame($expected, self::formatForAssert($finder));
+    }
+
+    public function testRelativePathWithAppendedOnEmptyFinder()
+    {
+        $this->setupVfsProvider([
+            'a' => [
+                'a1' => '',
+                'a2' => '',
+                'b' => [
+                    'b1' => '',
+                    'b2' => '',
+                    'c' => [
+                        'c1' => '',
+                        'c2' => '',
+                    ],
+                ],
+            ],
+        ]);
+
+        $dir = $this->vfsScheme.'://';
+
+        $finder = Finder::create()->sortByName();
+        $finder->append([$dir.'a/a1']);
+        $this->assertSame(
+            [
+                ['key' => $dir.'a/a1', 'relativePathname' => $dir.'a/a1'],
+            ],
+            self::formatForAssert($finder),
+        );
+    }
+
     public function testAppendReturnsAFinder()
     {
         $this->assertInstanceOf(Finder::class, Finder::create()->append([]));
     }
 
+    public function testAppendEmptyIterableAllowsIteration()
+    {
+        $finder = Finder::create()->files()->name('*.php')->append([]);
+
+        $this->assertSame([], iterator_to_array($finder->getIterator()));
+    }
+
     public function testAppendDoesNotRequireIn()
     {
         $finder = $this->buildFinder();
@@ -1594,7 +1803,7 @@
 
         // make 'foo' directory non-readable
         $testDir = self::$tmpDir.\DIRECTORY_SEPARATOR.'foo';
-        chmod($testDir, 0333);
+        chmod($testDir, 0o333);
 
         if (false === $couldRead = is_readable($testDir)) {
             try {
@@ -1603,7 +1812,7 @@
             } catch (\Exception $e) {
                 $expectedExceptionClass = 'Symfony\\Component\\Finder\\Exception\\AccessDeniedException';
                 if ($e instanceof \PHPUnit\Framework\ExpectationFailedException) {
-                    $this->fail(sprintf("Expected exception:\n%s\nGot:\n%s\nWith comparison failure:\n%s", $expectedExceptionClass, 'PHPUnit\Framework\ExpectationFailedException', $e->getComparisonFailure()->getExpectedAsString()));
+                    $this->fail(\sprintf("Expected exception:\n%s\nGot:\n%s\nWith comparison failure:\n%s", $expectedExceptionClass, 'PHPUnit\Framework\ExpectationFailedException', $e->getComparisonFailure()->getExpectedAsString()));
                 }
 
                 $this->assertInstanceOf($expectedExceptionClass, $e);
@@ -1611,7 +1820,7 @@
         }
 
         // restore original permissions
-        chmod($testDir, 0777);
+        chmod($testDir, 0o777);
         clearstatcache(true, $testDir);
 
         if ($couldRead) {
@@ -1630,7 +1839,7 @@
 
         // make 'foo' directory non-readable
         $testDir = self::$tmpDir.\DIRECTORY_SEPARATOR.'foo';
-        chmod($testDir, 0333);
+        chmod($testDir, 0o333);
 
         if (false === ($couldRead = is_readable($testDir))) {
             $this->assertIterator($this->toAbsolute([
@@ -1647,12 +1856,12 @@
                 'qux_10_2.php',
                 'qux_12_0.php',
                 'qux_2_0.php',
-                ]
+            ]
             ), $finder->getIterator());
         }
 
         // restore original permissions
-        chmod($testDir, 0777);
+        chmod($testDir, 0o777);
         clearstatcache(true, $testDir);
 
         if ($couldRead) {
@@ -1664,4 +1873,14 @@
     {
         return Finder::create()->exclude('gitignore');
     }
+
+    private static function formatForAssert(Finder $finder): array
+    {
+        $data = [];
+        foreach ($finder as $key => $value) {
+            $data[] = ['key' => $key, 'relativePathname' => $value->getRelativePathname()];
+        }
+
+        return $data;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/GitignoreTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/GitignoreTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/GitignoreTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/GitignoreTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
             $this->assertMatchesRegularExpression(
                 $regex,
                 $matchingCase,
-                sprintf(
+                \sprintf(
                     "Failed asserting path:\n%s\nmatches gitignore patterns:\n%s",
                     preg_replace('~^~m', '    ', $matchingCase),
                     preg_replace('~^~m', '    ', $patterns)
@@ -47,7 +47,7 @@
             $this->assertDoesNotMatchRegularExpression(
                 $regex,
                 $nonMatchingCase,
-                sprintf("Failed asserting path:\n%s\nNOT matching gitignore patterns:\n%s",
+                \sprintf("Failed asserting path:\n%s\nNOT matching gitignore patterns:\n%s",
                     preg_replace('~^~m', '    ', $nonMatchingCase),
                     preg_replace('~^~m', '    ', $patterns)
                 )
@@ -459,7 +459,7 @@
             $this->assertMatchesRegularExpression(
                 $regex,
                 $matchingCase,
-                sprintf(
+                \sprintf(
                     "Failed asserting path:\n%s\nmatches gitignore negated patterns:\n%s",
                     preg_replace('~^~m', '    ', $matchingCase),
                     preg_replace('~^~m', '    ', $patterns)
@@ -471,7 +471,7 @@
             $this->assertDoesNotMatchRegularExpression(
                 $regex,
                 $nonMatchingCase,
-                sprintf("Failed asserting path:\n%s\nNOT matching gitignore negated patterns:\n%s",
+                \sprintf("Failed asserting path:\n%s\nNOT matching gitignore negated patterns:\n%s",
                     preg_replace('~^~m', '    ', $nonMatchingCase),
                     preg_replace('~^~m', '    ', $patterns)
                 )
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/GlobTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/GlobTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/GlobTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/GlobTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -92,4 +92,24 @@
 
         $this->assertSame(['one/.dot', 'one/a', 'one/b', 'one/b/c.neon', 'one/b/d.neon'], $match);
     }
+
+    public function testGlobToRegexDoubleStarMatchesRootFiles()
+    {
+        $regex = Glob::toRegex('**/*.txt');
+
+        $this->assertSame(1, preg_match($regex, 'file.txt'));
+        $this->assertSame(1, preg_match($regex, 'foo/file.txt'));
+        $this->assertSame(1, preg_match($regex, 'foo/bar/baz.txt'));
+        $this->assertSame(1, preg_match($regex, '/foo/bar.txt'));
+        $this->assertSame(0, preg_match($regex, './foo/bar.txt'));
+        $this->assertSame(0, preg_match($regex, 'foo/.bar/bar.txt'));
+        $this->assertSame(0, preg_match($regex, '.file.txt'));
+        $this->assertSame(0, preg_match($regex, 'foo/bar/baz.php'));
+
+        $regex = Glob::toRegex('**/*.txt', false);
+
+        $this->assertSame(1, preg_match($regex, './foo/bar.txt'));
+        $this->assertSame(1, preg_match($regex, 'foo/.bar/bar.txt'));
+        $this->assertSame(1, preg_match($regex, '.file.txt'));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/CustomFilterIteratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/CustomFilterIteratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/CustomFilterIteratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/CustomFilterIteratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,8 +36,8 @@
     public static function getAcceptData()
     {
         return [
-            [[fn (\SplFileInfo $fileinfo) => false], []],
-            [[fn (\SplFileInfo $fileinfo) => str_starts_with($fileinfo, 'test')], ['test.php', 'test.py']],
+            [[static fn (\SplFileInfo $fileinfo) => false], []],
+            [[static fn (\SplFileInfo $fileinfo) => str_starts_with($fileinfo, 'test')], ['test.php', 'test.py']],
             [['is_dir'], []],
         ];
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/FilecontentFilterIteratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/FilecontentFilterIteratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/FilecontentFilterIteratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/FilecontentFilterIteratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,7 +72,7 @@
 
         $inner[] = new MockSplFileInfo([
             'name' => 'unreadable-file.txt',
-            'contents' => false,
+            'contents' => '',
             'type' => 'file',
             'mode' => 'r+', ]
         );
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/IteratorTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/IteratorTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/IteratorTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/IteratorTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,9 +19,9 @@
     {
         // set iterator_to_array $use_key to false to avoid values merge
         // this made FinderTest::testAppendWithAnArray() fail with GnuFinderAdapter
-        $values = array_map(fn (\SplFileInfo $fileinfo) => str_replace('/', \DIRECTORY_SEPARATOR, $fileinfo->getPathname()), iterator_to_array($iterator, false));
+        $values = array_map(static fn (\SplFileInfo $fileinfo) => str_replace('/', \DIRECTORY_SEPARATOR, $fileinfo->getPathname()), iterator_to_array($iterator, false));
 
-        $expected = array_map(fn ($path) => str_replace('/', \DIRECTORY_SEPARATOR, $path), $expected);
+        $expected = array_map(static fn ($path) => str_replace('/', \DIRECTORY_SEPARATOR, $path), $expected);
 
         sort($values);
         sort($expected);
@@ -31,8 +31,8 @@
 
     protected function assertOrderedIterator($expected, \Traversable $iterator)
     {
-        $values = array_map(fn (\SplFileInfo $fileinfo) => str_replace('/', \DIRECTORY_SEPARATOR, $fileinfo->getPathname()), iterator_to_array($iterator));
-        $expected = array_map(fn ($path) => str_replace('/', \DIRECTORY_SEPARATOR, $path), $expected);
+        $values = array_map(static fn (\SplFileInfo $fileinfo) => str_replace('/', \DIRECTORY_SEPARATOR, $fileinfo->getPathname()), iterator_to_array($iterator));
+        $expected = array_map(static fn ($path) => str_replace('/', \DIRECTORY_SEPARATOR, $path), $expected);
 
         $this->assertEquals($expected, array_values($values));
     }
@@ -41,14 +41,14 @@
      *  Same as assertOrderedIterator, but checks the order of groups of
      *  array elements.
      *
-     *  @param array $expected - an array of arrays. For any two subarrays
-     *      $a and $b such that $a goes before $b in $expected, the method
-     *      asserts that any element of $a goes before any element of $b
-     *      in the sequence generated by $iterator
+     * @param array $expected - an array of arrays. For any two subarrays
+     *                        $a and $b such that $a goes before $b in $expected, the method
+     *                        asserts that any element of $a goes before any element of $b
+     *                        in the sequence generated by $iterator
      */
     protected function assertOrderedIteratorForGroups(array $expected, \Traversable $iterator)
     {
-        $values = array_values(array_map(fn (\SplFileInfo $fileinfo) => $fileinfo->getPathname(), iterator_to_array($iterator)));
+        $values = array_values(array_map(static fn (\SplFileInfo $fileinfo) => $fileinfo->getPathname(), iterator_to_array($iterator)));
 
         foreach ($expected as $subarray) {
             $temp = [];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/LazyIteratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/LazyIteratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/LazyIteratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/LazyIteratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
 
     public function testDelegate()
     {
-        $iterator = new LazyIterator(fn () => new Iterator(['foo', 'bar']));
+        $iterator = new LazyIterator(static fn () => new Iterator(['foo', 'bar']));
 
         $this->assertCount(2, iterator_to_array($iterator));
     }
@@ -35,7 +35,7 @@
     public function testInnerDestructedAtTheEnd()
     {
         $count = 0;
-        $iterator = new LazyIterator(function () use (&$count) {
+        $iterator = new LazyIterator(static function () use (&$count) {
             ++$count;
 
             return new Iterator(['foo', 'bar']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/MockFileListIterator.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/MockFileListIterator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/MockFileListIterator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/MockFileListIterator.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,7 @@
 {
     public function __construct(array $filesArray = [])
     {
-        $files = array_map(fn ($file) => new MockSplFileInfo($file), $filesArray);
+        $files = array_map(static fn ($file) => new MockSplFileInfo($file), $filesArray);
         parent::__construct($files);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/MockSplFileInfo.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/MockSplFileInfo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/MockSplFileInfo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/MockSplFileInfo.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
             $this->setRelativePath($defaults['relativePath']);
             $this->setRelativePathname($defaults['relativePathname']);
         } else {
-            throw new \RuntimeException(sprintf('Incorrect parameter "%s"', $param));
+            throw new \RuntimeException(\sprintf('Incorrect parameter "%s"', $param));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,9 +57,8 @@
 
         if (is_dir(self::$tmpDir)) {
             self::tearDownAfterClass();
-        } else {
-            mkdir(self::$tmpDir);
         }
+        mkdir(self::$tmpDir);
 
         foreach (self::$files as $file) {
             if (\DIRECTORY_SEPARATOR === $file[\strlen($file) - 1]) {
@@ -72,8 +71,9 @@
         file_put_contents(self::toAbsolute('test.php'), str_repeat(' ', 800));
         file_put_contents(self::toAbsolute('test.py'), str_repeat(' ', 2000));
 
-        touch(self::toAbsolute('foo/bar.tmp'), strtotime('2005-10-15'));
-        touch(self::toAbsolute('test.php'), strtotime('2005-10-15'));
+        $oneYearAgo = strtotime('-1 year');
+        touch(self::toAbsolute('foo/bar.tmp'), $oneYearAgo);
+        touch(self::toAbsolute('test.php'), $oneYearAgo);
 
         if (FinderTest::class === static::class) {
             $fs = new Filesystem();
@@ -98,27 +98,7 @@
 
     public static function tearDownAfterClass(): void
     {
-        try {
-            $paths = new \RecursiveIteratorIterator(
-                new \RecursiveDirectoryIterator(self::$tmpDir, \RecursiveDirectoryIterator::SKIP_DOTS),
-                \RecursiveIteratorIterator::CHILD_FIRST
-            );
-        } catch (\UnexpectedValueException $exception) {
-            // open_basedir restriction in effect
-            return;
-        }
-
-        foreach ($paths as $path) {
-            if ($path->isDir()) {
-                if ($path->isLink()) {
-                    @unlink($path);
-                } else {
-                    @rmdir($path);
-                }
-            } else {
-                @unlink($path);
-            }
-        }
+        (new Filesystem())->remove(self::$tmpDir);
     }
 
     protected static function toAbsolute($files = null)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
 
     public function testTrailingDirectorySeparatorIsStripped()
     {
-        $fixturesDirectory = __DIR__ . '/../Fixtures/';
+        $fixturesDirectory = __DIR__.'/../Fixtures/';
         $actual = [];
 
         foreach (new RecursiveDirectoryIterator($fixturesDirectory, RecursiveDirectoryIterator::SKIP_DOTS) as $file) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/SortableIteratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/SortableIteratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/SortableIteratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/SortableIteratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -267,7 +267,7 @@
             [SortableIterator::SORT_BY_CHANGED_TIME, self::toAbsolute($sortByChangedTime)],
             [SortableIterator::SORT_BY_MODIFIED_TIME, self::toAbsolute($sortByModifiedTime)],
             [SortableIterator::SORT_BY_NAME_NATURAL, self::toAbsolute($sortByNameNatural)],
-            [fn (\SplFileInfo $a, \SplFileInfo $b) => strcmp($a->getRealPath(), $b->getRealPath()), self::toAbsolute($customComparison)],
+            [static fn (\SplFileInfo $a, \SplFileInfo $b) => strcmp($a->getRealPath(), $b->getRealPath()), self::toAbsolute($customComparison)],
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/VfsIteratorTestTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/VfsIteratorTestTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Finder/Tests/Iterator/VfsIteratorTestTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Finder/Tests/Iterator/VfsIteratorTestTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
 
         $this->vfsScheme = 'symfony-finder-vfs-test-'.++self::$vfsNextSchemeIndex;
 
-        $vfsWrapperClass = \get_class(new class() {
+        $vfsWrapperClass = \get_class(new class {
             /** @var array<string, \Closure(string, 'list_dir_open'|'list_dir_rewind'|'is_dir'): (list<string>|bool)> */
             public static array $vfsProviders = [];
 
@@ -108,7 +108,7 @@
                 $isDir = $providerFx($path, 'is_dir');
                 \assert(\is_bool($isDir));
 
-                return ['mode' => $isDir ? 0040755 : 0100644];
+                return ['mode' => $isDir ? 0o040755 : 0o100644];
             }
         });
         self::$vfsProviders = &$vfsWrapperClass::$vfsProviders;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/AbstractExtension.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/AbstractExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/AbstractExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/AbstractExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
         }
 
         if (!isset($this->types[$name])) {
-            throw new InvalidArgumentException(sprintf('The type "%s" cannot be loaded by this extension.', $name));
+            throw new InvalidArgumentException(\sprintf('The type "%s" cannot be loaded by this extension.', $name));
         }
 
         return $this->types[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/AbstractRendererEngine.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/AbstractRendererEngine.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/AbstractRendererEngine.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/AbstractRendererEngine.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,6 +51,11 @@
     private array $resourceHierarchyLevels = [];
 
     /**
+     * @var array<string, array<string, bool>>
+     */
+    private array $resourceInheritability = [];
+
+    /**
      * Creates a new renderer engine.
      *
      * @param array $defaultThemes The default themes. The type of these
@@ -75,7 +80,17 @@
         // Unset instead of resetting to an empty array, in order to allow
         // implementations (like TwigRendererEngine) to check whether $cacheKey
         // is set at all.
-        unset($this->resources[$cacheKey], $this->resourceHierarchyLevels[$cacheKey]);
+        unset($this->resources[$cacheKey], $this->resourceHierarchyLevels[$cacheKey], $this->resourceInheritability[$cacheKey]);
+    }
+
+    protected function setResourceInheritability(string $cacheKey, string $blockName, bool $inheritable): void
+    {
+        $this->resourceInheritability[$cacheKey][$blockName] = $inheritable;
+    }
+
+    protected function isResourceInheritable(string $cacheKey, string $blockName): bool
+    {
+        return $this->resourceInheritability[$cacheKey][$blockName] ?? false;
     }
 
     public function getResourceForBlockName(FormView $view, string $blockName): mixed
@@ -144,6 +159,7 @@
             // cache. The only missing thing is to set the hierarchy level at which
             // the template was found.
             $this->resourceHierarchyLevels[$cacheKey][$blockName] = $hierarchyLevel;
+            $this->setResourceInheritability($cacheKey, $blockName, true);
 
             return true;
         }
@@ -167,6 +183,7 @@
                 // Cache the shortcuts for further accesses
                 $this->resources[$cacheKey][$blockName] = $this->resources[$cacheKey][$parentBlockName];
                 $this->resourceHierarchyLevels[$cacheKey][$blockName] = $this->resourceHierarchyLevels[$cacheKey][$parentBlockName];
+                $this->setResourceInheritability($cacheKey, $blockName, false);
 
                 return true;
             }
@@ -175,6 +192,7 @@
                 // Cache the shortcuts for further accesses
                 $this->resources[$cacheKey][$blockName] = $this->resources[$cacheKey][$parentBlockName];
                 $this->resourceHierarchyLevels[$cacheKey][$blockName] = $this->resourceHierarchyLevels[$cacheKey][$parentBlockName];
+                $this->setResourceInheritability($cacheKey, $blockName, false);
 
                 return true;
             }
@@ -183,6 +201,7 @@
         // Cache the result for further accesses
         $this->resources[$cacheKey][$blockName] = false;
         $this->resourceHierarchyLevels[$cacheKey][$blockName] = false;
+        $this->setResourceInheritability($cacheKey, $blockName, true);
 
         return false;
     }
@@ -193,5 +212,6 @@
         $this->useDefaultThemes = [];
         $this->resources = [];
         $this->resourceHierarchyLevels = [];
+        $this->resourceInheritability = [];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Button.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Button.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Button.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Button.php	2026-05-20 10:56:49.000000000 +0200
@@ -315,7 +315,7 @@
      *
      * @return $this
      *
-     * @throws Exception\AlreadySubmittedException if the button has already been submitted
+     * @throws AlreadySubmittedException if the button has already been submitted
      */
     public function submit(array|string|null $submittedData, bool $clearMissing = true): static
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php	2026-05-20 10:56:49.000000000 +0200
@@ -114,7 +114,7 @@
         $choices = [];
 
         foreach ($values as $i => $givenValue) {
-            if (\array_key_exists($givenValue, $this->choices)) {
+            if (\array_key_exists($givenValue ?? '', $this->choices)) {
                 $choices[$i] = $this->choices[$givenValue];
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/ChoiceList/Loader/AbstractChoiceLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/ChoiceList/Loader/AbstractChoiceLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/ChoiceList/Loader/AbstractChoiceLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/ChoiceList/Loader/AbstractChoiceLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
 
         if ($value) {
             // if a value callback exists, use it
-            return array_map(fn ($item) => (string) $value($item), $choices);
+            return array_map(static fn ($item) => (string) $value($item), $choices);
         }
 
         return $this->doLoadValuesForChoices($choices);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Command/DebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Command/DebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Command/DebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Command/DebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,36 +65,36 @@
                 new InputArgument('class', InputArgument::OPTIONAL, 'The form type class'),
                 new InputArgument('option', InputArgument::OPTIONAL, 'The form type option'),
                 new InputOption('show-deprecated', null, InputOption::VALUE_NONE, 'Display deprecated options in form types'),
-                new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command displays information about form types.
+                The <info>%command.name%</info> command displays information about form types.
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-The command lists all built-in types, services types, type extensions and
-guessers currently available.
+                The command lists all built-in types, services types, type extensions and
+                guessers currently available.
 
-  <info>php %command.full_name% Symfony\Component\Form\Extension\Core\Type\ChoiceType</info>
-  <info>php %command.full_name% ChoiceType</info>
+                  <info>php %command.full_name% Symfony\Component\Form\Extension\Core\Type\ChoiceType</info>
+                  <info>php %command.full_name% ChoiceType</info>
 
-The command lists all defined options that contains the given form type,
-as well as their parents and type extensions.
+                The command lists all defined options that contains the given form type,
+                as well as their parents and type extensions.
 
-  <info>php %command.full_name% ChoiceType choice_value</info>
+                  <info>php %command.full_name% ChoiceType choice_value</info>
 
-Use the <info>--show-deprecated</info> option to display form types with
-deprecated options or the deprecated options of the given form type:
+                Use the <info>--show-deprecated</info> option to display form types with
+                deprecated options or the deprecated options of the given form type:
 
-  <info>php %command.full_name% --show-deprecated</info>
-  <info>php %command.full_name% ChoiceType --show-deprecated</info>
+                  <info>php %command.full_name% --show-deprecated</info>
+                  <info>php %command.full_name% ChoiceType --show-deprecated</info>
 
-The command displays the definition of the given option name.
+                The command displays the definition of the given option name.
 
-  <info>php %command.full_name% --format=json</info>
+                  <info>php %command.full_name% --format=json</info>
 
-The command lists everything in a machine readable json format.
-EOF
+                The command lists everything in a machine readable json format.
+                EOF
             )
         ;
     }
@@ -126,7 +126,7 @@
                 $object = $resolvedType->getOptionsResolver();
 
                 if (!$object->isDefined($option)) {
-                    $message = sprintf('Option "%s" is not defined in "%s".', $option, $resolvedType->getInnerType()::class);
+                    $message = \sprintf('Option "%s" is not defined in "%s".', $option, $resolvedType->getInnerType()::class);
 
                     if ($alternatives = $this->findAlternatives($option, $object->getDefinedOptions())) {
                         if (1 === \count($alternatives)) {
@@ -160,7 +160,7 @@
         $classes = $this->getFqcnTypeClasses($shortClassName);
 
         if (0 === $count = \count($classes)) {
-            $message = sprintf("Could not find type \"%s\" into the following namespaces:\n    %s", $shortClassName, implode("\n    ", $this->namespaces));
+            $message = \sprintf("Could not find type \"%s\" into the following namespaces:\n    %s", $shortClassName, implode("\n    ", $this->namespaces));
 
             $allTypes = array_merge($this->getCoreTypes(), $this->types);
             if ($alternatives = $this->findAlternatives($shortClassName, $allTypes)) {
@@ -178,10 +178,10 @@
             return $classes[0];
         }
         if (!$input->isInteractive()) {
-            throw new InvalidArgumentException(sprintf("The type \"%s\" is ambiguous.\n\nDid you mean one of these?\n    %s.", $shortClassName, implode("\n    ", $classes)));
+            throw new InvalidArgumentException(\sprintf("The type \"%s\" is ambiguous.\n\nDid you mean one of these?\n    %s.", $shortClassName, implode("\n    ", $classes)));
         }
 
-        return $io->choice(sprintf("The type \"%s\" is ambiguous.\n\nSelect one of the following form types to display its information:", $shortClassName), $classes, $classes[0]);
+        return $io->choice(\sprintf("The type \"%s\" is ambiguous.\n\nSelect one of the following form types to display its information:", $shortClassName), $classes, $classes[0]);
     }
 
     private function getFqcnTypeClasses(string $shortClassName): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Console/Descriptor/Descriptor.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Console/Descriptor/Descriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Console/Descriptor/Descriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Console/Descriptor/Descriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
             null === $object => $this->describeDefaults($options),
             $object instanceof ResolvedFormTypeInterface => $this->describeResolvedFormType($object, $options),
             $object instanceof OptionsResolver => $this->describeOption($object, $options),
-            default => throw new \InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_debug_type($object))),
+            default => throw new \InvalidArgumentException(\sprintf('Object of type "%s" is not describable.', get_debug_type($object))),
         };
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Console/Descriptor/TextDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Console/Descriptor/TextDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Console/Descriptor/TextDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Console/Descriptor/TextDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
             'extension' => 'Extension options',
         ], $formOptions);
 
-        $this->output->title(sprintf('%s (Block prefix: "%s")', $resolvedFormType->getInnerType()::class, $resolvedFormType->getInnerType()->getBlockPrefix()));
+        $this->output->title(\sprintf('%s (Block prefix: "%s")', $resolvedFormType->getInnerType()::class, $resolvedFormType->getInnerType()->getBlockPrefix()));
 
         if ($formOptions) {
             $this->output->table($tableHeaders, $this->buildTableRows($tableHeaders, $formOptions));
@@ -134,7 +134,7 @@
         }
         array_pop($rows);
 
-        $this->output->title(sprintf('%s (%s)', $options['type']::class, $options['option']));
+        $this->output->title(\sprintf('%s (%s)', $options['type']::class, $options['option']));
         $this->output->table([], $rows);
     }
 
@@ -175,7 +175,7 @@
                 } else {
                     $options[$group][] = null;
                 }
-                $options[$group][] = sprintf('<info>%s</info>', (new \ReflectionClass($class))->getShortName());
+                $options[$group][] = \sprintf('<info>%s</info>', (new \ReflectionClass($class))->getShortName());
                 $options[$group][] = new TableSeparator();
 
                 sort($opt);
@@ -199,7 +199,7 @@
             return $text;
         }
 
-        return sprintf('<href=%s>%s</>', $fileLink, $text);
+        return \sprintf('<href=%s>%s</>', $fileLink, $text);
     }
 
     private function getFileLink(string $class): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/DependencyInjection/FormPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/DependencyInjection/FormPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/DependencyInjection/FormPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/DependencyInjection/FormPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,13 +86,14 @@
                 $extendsTypes = false;
 
                 $typeExtensionsClasses[] = $typeExtensionClass;
+                $container->getReflectionClass($typeExtensionClass);
                 foreach ($typeExtensionClass::getExtendedTypes() as $extendedType) {
                     $typeExtensions[$extendedType][] = new Reference($serviceId);
                     $extendsTypes = true;
                 }
 
                 if (!$extendsTypes) {
-                    throw new InvalidArgumentException(sprintf('The getExtendedTypes() method for service "%s" does not return any extended types.', $serviceId));
+                    throw new InvalidArgumentException(\sprintf('The getExtendedTypes() method for service "%s" does not return any extended types.', $serviceId));
                 }
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Exception/UnexpectedTypeException.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Exception/UnexpectedTypeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Exception/UnexpectedTypeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Exception/UnexpectedTypeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,6 @@
 {
     public function __construct(mixed $value, string $expectedType)
     {
-        parent::__construct(sprintf('Expected argument of type "%s", "%s" given', $expectedType, get_debug_type($value)));
+        parent::__construct(\sprintf('Expected argument of type "%s", "%s" given', $expectedType, get_debug_type($value)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToPartsTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToPartsTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToPartsTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToPartsTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -74,7 +74,7 @@
                 return null;
             }
 
-            throw new TransformationFailedException(sprintf('The keys "%s" should not be empty.', implode('", "', $emptyKeys)));
+            throw new TransformationFailedException(\sprintf('The keys "%s" should not be empty.', implode('", "', $emptyKeys)));
         }
 
         return $result;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/BaseDateTimeTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/BaseDateTimeTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/BaseDateTimeTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/BaseDateTimeTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,13 +48,13 @@
         try {
             new \DateTimeZone($this->inputTimezone);
         } catch (\Exception $e) {
-            throw new InvalidArgumentException(sprintf('Input timezone is invalid: "%s".', $this->inputTimezone), $e->getCode(), $e);
+            throw new InvalidArgumentException(\sprintf('Input timezone is invalid: "%s".', $this->inputTimezone), $e->getCode(), $e);
         }
 
         try {
             new \DateTimeZone($this->outputTimezone);
         } catch (\Exception $e) {
-            throw new InvalidArgumentException(sprintf('Output timezone is invalid: "%s".', $this->outputTimezone), $e->getCode(), $e);
+            throw new InvalidArgumentException(\sprintf('Output timezone is invalid: "%s".', $this->outputTimezone), $e->getCode(), $e);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToValueTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToValueTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToValueTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToValueTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
                 return null;
             }
 
-            throw new TransformationFailedException(sprintf('The choice "%s" does not exist or is not unique.', $value));
+            throw new TransformationFailedException(\sprintf('The choice "%s" does not exist or is not unique.', $value));
         }
 
         return current($choices);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToArrayTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToArrayTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToArrayTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToArrayTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -124,19 +124,19 @@
             }
         }
         if (\count($emptyFields) > 0) {
-            throw new TransformationFailedException(sprintf('The fields "%s" should not be empty.', implode('", "', $emptyFields)));
+            throw new TransformationFailedException(\sprintf('The fields "%s" should not be empty.', implode('", "', $emptyFields)));
         }
         if (isset($value['invert']) && !\is_bool($value['invert'])) {
             throw new TransformationFailedException('The value of "invert" must be boolean.');
         }
         foreach (self::AVAILABLE_FIELDS as $field => $char) {
             if ('invert' !== $field && isset($value[$field]) && !ctype_digit((string) $value[$field])) {
-                throw new TransformationFailedException(sprintf('This amount of "%s" is invalid.', $field));
+                throw new TransformationFailedException(\sprintf('This amount of "%s" is invalid.', $field));
             }
         }
         try {
             if (!empty($value['weeks'])) {
-                $interval = sprintf(
+                $interval = \sprintf(
                     'P%sY%sM%sWT%sH%sM%sS',
                     empty($value['years']) ? '0' : $value['years'],
                     empty($value['months']) ? '0' : $value['months'],
@@ -146,7 +146,7 @@
                     empty($value['seconds']) ? '0' : $value['seconds']
                 );
             } else {
-                $interval = sprintf(
+                $interval = \sprintf(
                     'P%sY%sM%sDT%sH%sM%sS',
                     empty($value['years']) ? '0' : $value['years'],
                     empty($value['months']) ? '0' : $value['months'],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToStringTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToStringTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToStringTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToStringTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -81,7 +81,7 @@
         }
         $valuePattern = '/^'.preg_replace('/%([yYmMdDhHiIsSwW])(\w)/', '(?P<$1>\d+)$2', $this->format).'$/';
         if (!preg_match($valuePattern, $value)) {
-            throw new TransformationFailedException(sprintf('Value "%s" contains intervals not accepted by format "%s".', $value, $this->format));
+            throw new TransformationFailedException(\sprintf('Value "%s" contains intervals not accepted by format "%s".', $value, $this->format));
         }
         try {
             $dateInterval = new \DateInterval($value);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -123,7 +123,7 @@
         }
 
         if (\count($emptyFields) > 0) {
-            throw new TransformationFailedException(sprintf('The fields "%s" should not be empty.', implode('", "', $emptyFields)));
+            throw new TransformationFailedException(\sprintf('The fields "%s" should not be empty.', implode('", "', $emptyFields)));
         }
 
         if (isset($value['month']) && !ctype_digit((string) $value['month'])) {
@@ -155,7 +155,7 @@
         }
 
         try {
-            $dateTime = new \DateTime(sprintf(
+            $dateTime = new \DateTime(\sprintf(
                 '%s-%s-%s %s:%s:%s',
                 empty($value['year']) ? $this->referenceDate->format('Y') : $value['year'],
                 empty($value['month']) ? $this->referenceDate->format('m') : $value['month'],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToHtml5LocalDateTimeTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToHtml5LocalDateTimeTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToHtml5LocalDateTimeTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToHtml5LocalDateTimeTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -85,7 +85,7 @@
         // to maintain backwards compatibility we do not strictly validate the submitted date
         // see https://github.com/symfony/symfony/issues/28699
         if (!preg_match('/^(\d{4})-(\d{2})-(\d{2})[T ]\d{2}:\d{2}(?::\d{2})?/', $dateTimeLocal, $matches)) {
-            throw new TransformationFailedException(sprintf('The date "%s" is not a valid date.', $dateTimeLocal));
+            throw new TransformationFailedException(\sprintf('The date "%s" is not a valid date.', $dateTimeLocal));
         }
 
         try {
@@ -99,7 +99,7 @@
         }
 
         if (!checkdate($matches[2], $matches[3], $matches[1])) {
-            throw new TransformationFailedException(sprintf('The date "%s-%s-%s" is not a valid date.', $matches[1], $matches[2], $matches[3]));
+            throw new TransformationFailedException(\sprintf('The date "%s-%s-%s" is not a valid date.', $matches[1], $matches[2], $matches[3]));
         }
 
         return $dateTime;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,6 +24,15 @@
  */
 class DateTimeToLocalizedStringTransformer extends BaseDateTimeTransformer
 {
+    /**
+     * Unicode whitespace characters used by ICU in formatted date strings.
+     *
+     * @see https://unicode-org.atlassian.net/browse/CLDR-14032
+     */
+    private const NO_BREAK_SPACE = "\u{00A0}";
+    private const NARROW_NO_BREAK_SPACE = "\u{202F}"; // Used by ICU 72+ before AM/PM
+    private const THIN_SPACE = "\u{2009}";
+
     private int $dateFormat;
     private int $timeFormat;
     private ?string $pattern;
@@ -86,7 +95,7 @@
             throw new TransformationFailedException(intl_get_error_message());
         }
 
-        return $value;
+        return self::normalizeWhitespace($value);
     }
 
     /**
@@ -112,11 +121,7 @@
         $dateOnly = $this->isPatternDateOnly();
         $dateFormatter = $this->getIntlDateFormatter($dateOnly);
 
-        try {
-            $timestamp = @$dateFormatter->parse($value);
-        } catch (\IntlException $e) {
-            throw new TransformationFailedException($e->getMessage(), $e->getCode(), $e);
-        }
+        $timestamp = $this->parse($dateFormatter, $value);
 
         if (0 != intl_get_error_code()) {
             throw new TransformationFailedException(intl_get_error_message(), intl_get_error_code());
@@ -126,7 +131,7 @@
         } elseif (false === $timestamp) {
             // the value couldn't be parsed but the Intl extension didn't report an error code, this
             // could be the case when the Intl polyfill is used which always returns 0 as the error code
-            throw new TransformationFailedException(sprintf('"%s" could not be parsed as a date.', $value));
+            throw new TransformationFailedException(\sprintf('"%s" could not be parsed as a date.', $value));
         }
 
         try {
@@ -135,7 +140,7 @@
                 $dateTime = new \DateTime(gmdate('Y-m-d', $timestamp), new \DateTimeZone($this->outputTimezone));
             } else {
                 // read timestamp into DateTime object - the formatter delivers a timestamp
-                $dateTime = new \DateTime(sprintf('@%s', $timestamp));
+                $dateTime = new \DateTime(\sprintf('@%s', $timestamp));
             }
             // set timezone separately, as it would be ignored if set via the constructor,
             // see https://php.net/datetime.construct
@@ -194,4 +199,47 @@
         // check for the absence of time-related placeholders
         return 0 === preg_match('#[ahHkKmsSAzZOvVxX]#', $pattern);
     }
+
+    /**
+     * Normalizes various Unicode whitespace characters to regular ASCII spaces.
+     *
+     * ICU 72+ uses special Unicode whitespace characters (such as narrow no-break space U+202F)
+     * in formatted date strings. This method ensures consistent handling regardless of ICU version
+     * by normalizing these characters to regular ASCII spaces (U+0020).
+     */
+    private static function normalizeWhitespace(string $string): string
+    {
+        return str_replace([self::NO_BREAK_SPACE, self::NARROW_NO_BREAK_SPACE, self::THIN_SPACE], ' ', $string);
+    }
+
+    /**
+     * Parses a localized date string, handling ICU version differences in whitespace.
+     *
+     * ICU 72+ uses special Unicode whitespace characters (such as narrow no-break space U+202F)
+     * that users typically don't type. This method first tries parsing the input as-is, then
+     * tries with whitespace normalization to ensure compatibility across ICU versions.
+     *
+     * @throws TransformationFailedException When the input cannot be parsed
+     */
+    private function parse(\IntlDateFormatter $dateFormatter, string $value): int|float|false
+    {
+        try {
+            $timestamp = @$dateFormatter->parse($value);
+        } catch (\IntlException $e) {
+            throw new TransformationFailedException($e->getMessage(), $e->getCode(), $e);
+        }
+
+        // If parsing failed and the value contains regular spaces, try with ICU 72+ whitespace
+        if ((false === $timestamp || 0 !== intl_get_error_code()) && str_contains($value, ' ')) {
+            $icuValue = str_replace(' ', self::NARROW_NO_BREAK_SPACE, $value);
+
+            try {
+                $timestamp = @$dateFormatter->parse($icuValue);
+            } catch (\IntlException) {
+                // Ignore, we'll use the original error below
+            }
+        }
+
+        return $timestamp;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToRfc3339Transformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToRfc3339Transformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToRfc3339Transformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToRfc3339Transformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
         }
 
         if (!preg_match('/^(\d{4})-(\d{2})-(\d{2})T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))$/', $rfc3339, $matches)) {
-            throw new TransformationFailedException(sprintf('The date "%s" is not a valid date.', $rfc3339));
+            throw new TransformationFailedException(\sprintf('The date "%s" is not a valid date.', $rfc3339));
         }
 
         try {
@@ -78,7 +78,7 @@
         }
 
         if (!checkdate($matches[2], $matches[3], $matches[1])) {
-            throw new TransformationFailedException(sprintf('The date "%s-%s-%s" is not a valid date.', $matches[1], $matches[2], $matches[3]));
+            throw new TransformationFailedException(\sprintf('The date "%s-%s-%s" is not a valid date.', $matches[1], $matches[2], $matches[3]));
         }
 
         return $dateTime;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
         $decimalSeparator = $this->getNumberFormatter()->getSymbol(\NumberFormatter::DECIMAL_SEPARATOR_SYMBOL);
 
         if (\is_string($value) && str_contains($value, $decimalSeparator)) {
-            throw new TransformationFailedException(sprintf('The value "%s" is not a valid integer.', $value));
+            throw new TransformationFailedException(\sprintf('The value "%s" is not a valid integer.', $value));
         }
 
         $result = parent::reverseTransform($value);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntlTimeZoneToStringTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntlTimeZoneToStringTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntlTimeZoneToStringTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntlTimeZoneToStringTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,7 +72,7 @@
         $intlTimeZone = \IntlTimeZone::createTimeZone($value);
 
         if ('Etc/Unknown' === $intlTimeZone->getID()) {
-            throw new TransformationFailedException(sprintf('Unknown timezone identifier "%s".', $value));
+            throw new TransformationFailedException(\sprintf('Unknown timezone identifier "%s".', $value));
         }
 
         return $intlTimeZone;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,14 +33,14 @@
     /**
      * Transforms a normalized format into a localized money string.
      *
-     * @param int|float|null $value Normalized number
+     * @param int|float|string|null $value Normalized number
      *
      * @throws TransformationFailedException if the given value is not numeric or
      *                                       if the value cannot be transformed
      */
     public function transform(mixed $value): string
     {
-        if (null !== $value && 1 !== $this->divisor) {
+        if (null !== $value && '' !== $value && 1 !== $this->divisor) {
             if (!is_numeric($value)) {
                 throw new TransformationFailedException('Expected a numeric.');
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,14 +43,14 @@
     /**
      * Transforms a number type into localized number.
      *
-     * @param int|float|null $value Number value
+     * @param int|float|string|null $value Number value
      *
      * @throws TransformationFailedException if the given value is not numeric
      *                                       or if the value cannot be transformed
      */
     public function transform(mixed $value): string
     {
-        if (null === $value) {
+        if (null === $value || '' === $value) {
             return '';
         }
 
@@ -147,7 +147,7 @@
             $remainder = trim($remainder, " \t\n\r\0\x0b\xc2\xa0");
 
             if ('' !== $remainder) {
-                throw new TransformationFailedException(sprintf('The number contains unrecognized characters: "%s".', $remainder));
+                throw new TransformationFailedException(\sprintf('The number contains unrecognized characters: "%s".', $remainder));
             }
         }
 
@@ -177,7 +177,7 @@
      */
     protected function castParsedValue(int|float $value): int|float
     {
-        if (\is_int($value) && $value === (int) $float = (float) $value) {
+        if (\is_int($value) && (($float = (float) $value) < \PHP_INT_MAX) && $value === (int) $float) {
             return $float;
         }
 
@@ -189,6 +189,10 @@
      */
     private function round(int|float $number): int|float
     {
+        if (\is_int($number)) {
+            return $number;
+        }
+
         if (null !== $this->scale && null !== $this->roundingMode) {
             // shift number to maintain the correct scale during rounding
             $roundingCoef = 10 ** $this->scale;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/PercentToLocalizedStringTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/PercentToLocalizedStringTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/PercentToLocalizedStringTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/PercentToLocalizedStringTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -162,7 +162,7 @@
             $remainder = trim($remainder, " \t\n\r\0\x0b\xc2\xa0");
 
             if ('' !== $remainder) {
-                throw new TransformationFailedException(sprintf('The number contains unrecognized characters: "%s".', $remainder));
+                throw new TransformationFailedException(\sprintf('The number contains unrecognized characters: "%s".', $remainder));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/UlidToStringTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/UlidToStringTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/UlidToStringTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/UlidToStringTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,7 +65,7 @@
         try {
             $ulid = new Ulid($value);
         } catch (\InvalidArgumentException $e) {
-            throw new TransformationFailedException(sprintf('The value "%s" is not a valid ULID.', $value), $e->getCode(), $e);
+            throw new TransformationFailedException(\sprintf('The value "%s" is not a valid ULID.', $value), $e->getCode(), $e);
         }
 
         return $ulid;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,13 +63,13 @@
         }
 
         if (!Uuid::isValid($value)) {
-            throw new TransformationFailedException(sprintf('The value "%s" is not a valid UUID.', $value));
+            throw new TransformationFailedException(\sprintf('The value "%s" is not a valid UUID.', $value));
         }
 
         try {
             return Uuid::fromString($value);
         } catch (\InvalidArgumentException $e) {
-            throw new TransformationFailedException(sprintf('The value "%s" is not a valid UUID.', $value), $e->getCode(), $e);
+            throw new TransformationFailedException(\sprintf('The value "%s" is not a valid UUID.', $value), $e->getCode(), $e);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ValueToDuplicatesTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ValueToDuplicatesTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ValueToDuplicatesTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/ValueToDuplicatesTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
                 return null;
             }
 
-            throw new TransformationFailedException(sprintf('The keys "%s" should not be empty.', implode('", "', $emptyKeys)));
+            throw new TransformationFailedException(\sprintf('The keys "%s" should not be empty.', implode('", "', $emptyKeys)));
         }
 
         return $result;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/WeekToArrayTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/WeekToArrayTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/WeekToArrayTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/DataTransformer/WeekToArrayTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
         }
 
         if (!\is_string($value)) {
-            throw new TransformationFailedException(sprintf('Value is expected to be a string but was "%s".', get_debug_type($value)));
+            throw new TransformationFailedException(\sprintf('Value is expected to be a string but was "%s".', get_debug_type($value)));
         }
 
         if (0 === preg_match('/^(?P<year>\d{4})-W(?P<week>\d{2})$/', $value, $matches)) {
@@ -70,7 +70,7 @@
         }
 
         if (!\is_array($value)) {
-            throw new TransformationFailedException(sprintf('Value is expected to be an array, but was "%s".', get_debug_type($value)));
+            throw new TransformationFailedException(\sprintf('Value is expected to be an array, but was "%s".', get_debug_type($value)));
         }
 
         if (!\array_key_exists('year', $value)) {
@@ -82,7 +82,7 @@
         }
 
         if ($additionalKeys = array_diff(array_keys($value), ['year', 'week'])) {
-            throw new TransformationFailedException(sprintf('Expected only keys "year" and "week" to be present, but also got ["%s"].', implode('", "', $additionalKeys)));
+            throw new TransformationFailedException(\sprintf('Expected only keys "year" and "week" to be present, but also got ["%s"].', implode('", "', $additionalKeys)));
         }
 
         if (null === $value['year'] && null === $value['week']) {
@@ -90,18 +90,18 @@
         }
 
         if (!\is_int($value['year'])) {
-            throw new TransformationFailedException(sprintf('Year is expected to be an integer, but was "%s".', get_debug_type($value['year'])));
+            throw new TransformationFailedException(\sprintf('Year is expected to be an integer, but was "%s".', get_debug_type($value['year'])));
         }
 
         if (!\is_int($value['week'])) {
-            throw new TransformationFailedException(sprintf('Week is expected to be an integer, but was "%s".', get_debug_type($value['week'])));
+            throw new TransformationFailedException(\sprintf('Week is expected to be an integer, but was "%s".', get_debug_type($value['week'])));
         }
 
         // The 28th December is always in the last week of the year
         if (date('W', strtotime('28th December '.$value['year'])) < $value['week']) {
-            throw new TransformationFailedException(sprintf('Week "%d" does not exist for year "%d".', $value['week'], $value['year']));
+            throw new TransformationFailedException(\sprintf('Week "%d" does not exist for year "%d".', $value['week'], $value['year']));
         }
 
-        return sprintf('%d-W%02d', $value['year'], $value['week']);
+        return \sprintf('%d-W%02d', $value['year'], $value['week']);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/BaseType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/BaseType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/BaseType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/BaseType.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,9 +52,9 @@
 
         if ($view->parent) {
             if ('' !== ($parentFullName = $view->parent->vars['full_name'])) {
-                $id = sprintf('%s_%s', $view->parent->vars['id'], $name);
-                $fullName = sprintf('%s[%s]', $parentFullName, $name);
-                $uniqueBlockPrefix = sprintf('%s_%s', $view->parent->vars['unique_block_prefix'], $blockName);
+                $id = \sprintf('%s_%s', $view->parent->vars['id'], $name);
+                $fullName = \sprintf('%s[%s]', $parentFullName, $name);
+                $uniqueBlockPrefix = \sprintf('%s_%s', $view->parent->vars['unique_block_prefix'], $blockName);
             } else {
                 $id = $name;
                 $fullName = $name;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php	2026-05-20 10:56:49.000000000 +0200
@@ -144,9 +144,8 @@
                             $knownValues[$child->getName()] = $value;
                             unset($unknownValues[$value]);
                             continue;
-                        } else {
-                            $knownValues[$child->getName()] = null;
                         }
+                        $knownValues[$child->getName()] = null;
                     }
                 } else {
                     foreach ($choiceList->getChoicesForValues($data) as $key => $choice) {
@@ -161,7 +160,7 @@
 
                 // Throw exception if unknown values were submitted (multiple choices will be handled in a different event listener below)
                 if (\count($unknownValues) > 0 && !$options['multiple']) {
-                    throw new TransformationFailedException(sprintf('The choices "%s" do not exist in the choice list.', implode('", "', array_keys($unknownValues))));
+                    throw new TransformationFailedException(\sprintf('The choices "%s" do not exist in the choice list.', implode('", "', array_keys($unknownValues))));
                 }
 
                 $event->setData($knownValues);
@@ -185,7 +184,7 @@
                         $message = strtr($messageTemplate, ['{{ value }}' => $clientDataAsString]);
                     }
 
-                    $form->addError(new FormError($message, $messageTemplate, ['{{ value }}' => $clientDataAsString], null, new TransformationFailedException(sprintf('The choices "%s" do not exist in the choice list.', $clientDataAsString))));
+                    $form->addError(new FormError($message, $messageTemplate, ['{{ value }}' => $clientDataAsString], null, new TransformationFailedException(\sprintf('The choices "%s" do not exist in the choice list.', $clientDataAsString))));
                 }
             });
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/CountryType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/CountryType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/CountryType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/CountryType.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         $resolver->setDefaults([
             'choice_loader' => function (Options $options) {
                 if (!class_exists(Intl::class)) {
-                    throw new LogicException(sprintf('The "symfony/intl" component is required to use "%s". Try running "composer require symfony/intl".', static::class));
+                    throw new LogicException(\sprintf('The "symfony/intl" component is required to use "%s". Try running "composer require symfony/intl".', static::class));
                 }
 
                 $choiceTranslationLocale = $options['choice_translation_locale'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/CurrencyType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/CurrencyType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/CurrencyType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/CurrencyType.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         $resolver->setDefaults([
             'choice_loader' => function (Options $options) {
                 if (!class_exists(Intl::class)) {
-                    throw new LogicException(sprintf('The "symfony/intl" component is required to use "%s". Try running "composer require symfony/intl".', static::class));
+                    throw new LogicException(\sprintf('The "symfony/intl" component is required to use "%s". Try running "composer require symfony/intl".', static::class));
                 }
 
                 $choiceTranslationLocale = $options['choice_translation_locale'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php	2026-05-20 10:56:49.000000000 +0200
@@ -206,7 +206,7 @@
                 }
 
                 if ($date->getTimezone()->getName() !== $options['model_timezone']) {
-                    trigger_deprecation('symfony/form', '6.4', sprintf('Using a "%s" instance with a timezone ("%s") not matching the configured model timezone "%s" is deprecated.', $date::class, $date->getTimezone()->getName(), $options['model_timezone']));
+                    trigger_deprecation('symfony/form', '6.4', \sprintf('Using a "%s" instance with a timezone ("%s") not matching the configured model timezone "%s" is deprecated.', $date::class, $date->getTimezone()->getName(), $options['model_timezone']));
                     // throw new LogicException(sprintf('Using a "%s" instance with a timezone ("%s") not matching the configured model timezone "%s" is not supported.', $date::class, $date->getTimezone()->getName(), $options['model_timezone']));
                 }
             });
@@ -321,7 +321,7 @@
 
         $resolver->setNormalizer('date_format', static function (Options $options, $dateFormat) {
             if (null !== $dateFormat && 'single_text' === $options['widget'] && self::HTML5_FORMAT === $options['format']) {
-                throw new LogicException(sprintf('Cannot use the "date_format" option of the "%s" with an HTML5 date.', self::class));
+                throw new LogicException(\sprintf('Cannot use the "date_format" option of the "%s" with an HTML5 date.', self::class));
             }
 
             return $dateFormat;
@@ -329,10 +329,10 @@
         $resolver->setNormalizer('widget', static function (Options $options, $widget) {
             if ('single_text' === $widget) {
                 if (null !== $options['date_widget']) {
-                    throw new LogicException(sprintf('Cannot use the "date_widget" option of the "%s" when the "widget" option is set to "single_text".', self::class));
+                    throw new LogicException(\sprintf('Cannot use the "date_widget" option of the "%s" when the "widget" option is set to "single_text".', self::class));
                 }
                 if (null !== $options['time_widget']) {
-                    throw new LogicException(sprintf('Cannot use the "time_widget" option of the "%s" when the "widget" option is set to "single_text".', self::class));
+                    throw new LogicException(\sprintf('Cannot use the "time_widget" option of the "%s" when the "widget" option is set to "single_text".', self::class));
                 }
             } elseif (null === $widget && null === $options['date_widget'] && null === $options['time_widget']) {
                 trigger_deprecation('symfony/form', '6.3', 'Not configuring the "widget" option of form type "datetime" is deprecated. It will default to "single_text" in Symfony 7.0.');
@@ -343,7 +343,7 @@
         });
         $resolver->setNormalizer('html5', static function (Options $options, $html5) {
             if ($html5 && self::HTML5_FORMAT !== $options['format']) {
-                throw new LogicException(sprintf('Cannot use the "format" option of "%s" when the "html5" option is enabled.', self::class));
+                throw new LogicException(\sprintf('Cannot use the "format" option of "%s" when the "html5" option is enabled.', self::class));
             }
 
             return $html5;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/DateType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/DateType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/DateType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/DateType.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,7 +61,7 @@
 
         if ('single_text' === $options['widget']) {
             if ('' !== $pattern && !str_contains($pattern, 'y') && !str_contains($pattern, 'M') && !str_contains($pattern, 'd')) {
-                throw new InvalidOptionsException(sprintf('The "format" option should contain the letters "y", "M" or "d". Its current value is "%s".', $pattern));
+                throw new InvalidOptionsException(\sprintf('The "format" option should contain the letters "y", "M" or "d". Its current value is "%s".', $pattern));
             }
 
             $builder->addViewTransformer(new DateTimeToLocalizedStringTransformer(
@@ -74,7 +74,7 @@
             ));
         } else {
             if ('' !== $pattern && (!str_contains($pattern, 'y') || !str_contains($pattern, 'M') || !str_contains($pattern, 'd'))) {
-                throw new InvalidOptionsException(sprintf('The "format" option should contain the letters "y", "M" and "d". Its current value is "%s".', $pattern));
+                throw new InvalidOptionsException(\sprintf('The "format" option should contain the letters "y", "M" and "d". Its current value is "%s".', $pattern));
             }
 
             $yearOptions = $monthOptions = $dayOptions = [
@@ -190,7 +190,7 @@
                 }
 
                 if ($date->getTimezone()->getName() !== $options['model_timezone']) {
-                    trigger_deprecation('symfony/form', '6.4', sprintf('Using a "%s" instance with a timezone ("%s") not matching the configured model timezone "%s" is deprecated.', $date::class, $date->getTimezone()->getName(), $options['model_timezone']));
+                    trigger_deprecation('symfony/form', '6.4', \sprintf('Using a "%s" instance with a timezone ("%s") not matching the configured model timezone "%s" is deprecated.', $date::class, $date->getTimezone()->getName(), $options['model_timezone']));
                     // throw new LogicException(sprintf('Using a "%s" instance with a timezone ("%s") not matching the configured model timezone "%s" is not supported.', $date::class, $date->getTimezone()->getName(), $options['model_timezone']));
                 }
             });
@@ -337,7 +337,7 @@
 
         $resolver->setNormalizer('html5', static function (Options $options, $html5) {
             if ($html5 && 'single_text' === $options['widget'] && self::HTML5_FORMAT !== $options['format']) {
-                throw new LogicException(sprintf('Cannot use the "format" option of "%s" when the "html5" option is enabled.', self::class));
+                throw new LogicException(\sprintf('Cannot use the "format" option of "%s" when the "html5" option is enabled.', self::class));
             }
 
             return $html5;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/EnumType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/EnumType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/EnumType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/EnumType.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,17 @@
             ->setAllowedTypes('class', 'string')
             ->setAllowedValues('class', enum_exists(...))
             ->setDefault('choices', static fn (Options $options): array => $options['class']::cases())
-            ->setDefault('choice_label', static fn (\UnitEnum $choice) => $choice instanceof TranslatableInterface ? $choice : $choice->name)
+            ->setDefault('choice_label', static function (Options $options) {
+                return static function (\UnitEnum $choice, int|string $key): string|TranslatableInterface {
+                    if (\is_int($key)) {
+                        // Key is an integer, use the enum's name (or translatable)
+                        return $choice instanceof TranslatableInterface ? $choice : $choice->name;
+                    }
+
+                    // Key is a string, use it as the label
+                    return $key;
+                };
+            })
             ->setDefault('choice_value', static function (Options $options): ?\Closure {
                 if (!is_a($options['class'], \BackedEnum::class, true)) {
                     return null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
         $resolver->setDefaults([
             'choice_loader' => function (Options $options) {
                 if (!class_exists(Intl::class)) {
-                    throw new LogicException(sprintf('The "symfony/intl" component is required to use "%s". Try running "composer require symfony/intl".', static::class));
+                    throw new LogicException(\sprintf('The "symfony/intl" component is required to use "%s". Try running "composer require symfony/intl".', static::class));
                 }
                 $choiceTranslationLocale = $options['choice_translation_locale'];
                 $useAlpha3Codes = $options['alpha3'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         $resolver->setDefaults([
             'choice_loader' => function (Options $options) {
                 if (!class_exists(Intl::class)) {
-                    throw new LogicException(sprintf('The "symfony/intl" component is required to use "%s". Try running "composer require symfony/intl".', static::class));
+                    throw new LogicException(\sprintf('The "symfony/intl" component is required to use "%s". Try running "composer require symfony/intl".', static::class));
                 }
 
                 $choiceTranslationLocale = $options['choice_translation_locale'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,6 +51,12 @@
 
         if ($options['html5']) {
             $view->vars['type'] = 'number';
+
+            if (!isset($view->vars['attr']['step'])) {
+                $view->vars['attr']['step'] = 'any';
+            }
+        } else {
+            $view->vars['attr']['inputmode'] = 0 === $options['scale'] ? 'numeric' : 'decimal';
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,14 +12,25 @@
 namespace Symfony\Component\Form\Extension\Core\Type;
 
 use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\DataTransformerInterface;
+use Symfony\Component\Form\FormBuilderInterface;
 use Symfony\Component\Form\FormInterface;
 use Symfony\Component\Form\FormView;
+use Symfony\Component\Form\Util\StringUtil;
 
-class TextareaType extends AbstractType
+class TextareaType extends AbstractType implements DataTransformerInterface
 {
     /**
      * @return void
      */
+    public function buildForm(FormBuilderInterface $builder, array $options)
+    {
+        $builder->addViewTransformer($this);
+    }
+
+    /**
+     * @return void
+     */
     public function buildView(FormView $view, FormInterface $form, array $options)
     {
         $view->vars['pattern'] = null;
@@ -35,4 +46,26 @@
     {
         return 'textarea';
     }
+
+    public function transform(mixed $value): mixed
+    {
+        if (null === $value) {
+            return '';
+        }
+
+        return $value;
+    }
+
+    public function reverseTransform(mixed $value): mixed
+    {
+        if (!\is_string($value)) {
+            return $value;
+        }
+
+        if ('' === $value) {
+            return null;
+        }
+
+        return StringUtil::normalizeNewlines($value);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
         }
 
         if (null !== $options['reference_date'] && $options['reference_date']->getTimezone()->getName() !== $options['model_timezone']) {
-            throw new InvalidConfigurationException(sprintf('The configured "model_timezone" (%s) must match the timezone of the "reference_date" (%s).', $options['model_timezone'], $options['reference_date']->getTimezone()->getName()));
+            throw new InvalidConfigurationException(\sprintf('The configured "model_timezone" (%s) must match the timezone of the "reference_date" (%s).', $options['model_timezone'], $options['reference_date']->getTimezone()->getName()));
         }
 
         if ($options['with_minutes']) {
@@ -69,9 +69,9 @@
                     if ($options['with_seconds']) {
                         // handle seconds ignored by user's browser when with_seconds enabled
                         // https://codereview.chromium.org/450533009/
-                        $e->setData(sprintf('%s:%s:%s', $matches['hours'], $matches['minutes'], $matches['seconds'] ?? '00'));
+                        $e->setData(\sprintf('%s:%s:%s', $matches['hours'], $matches['minutes'], $matches['seconds'] ?? '00'));
                     } else {
-                        $e->setData(sprintf('%s:%s', $matches['hours'], $matches['minutes']));
+                        $e->setData(\sprintf('%s:%s', $matches['hours'], $matches['minutes']));
                     }
                 }
             });
@@ -220,7 +220,7 @@
                 }
 
                 if ($date->getTimezone()->getName() !== $options['model_timezone']) {
-                    trigger_deprecation('symfony/form', '6.4', sprintf('Using a "%s" instance with a timezone ("%s") not matching the configured model timezone "%s" is deprecated.', $date::class, $date->getTimezone()->getName(), $options['model_timezone']));
+                    trigger_deprecation('symfony/form', '6.4', \sprintf('Using a "%s" instance with a timezone ("%s") not matching the configured model timezone "%s" is deprecated.', $date::class, $date->getTimezone()->getName(), $options['model_timezone']));
                     // throw new LogicException(sprintf('Using a "%s" instance with a timezone ("%s") not matching the configured model timezone "%s" is not supported.', $date::class, $date->getTimezone()->getName(), $options['model_timezone']));
                 }
             });
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
 
                 if ($options['intl']) {
                     if (!class_exists(Intl::class)) {
-                        throw new LogicException(sprintf('The "symfony/intl" component is required to use "%s" with option "intl=true". Try running "composer require symfony/intl".', static::class));
+                        throw new LogicException(\sprintf('The "symfony/intl" component is required to use "%s" with option "intl=true". Try running "composer require symfony/intl".', static::class));
                     }
 
                     $choiceTranslationLocale = $options['choice_translation_locale'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/WeekType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/WeekType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Core/Type/WeekType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Core/Type/WeekType.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,6 @@
         } else {
             $yearOptions = $weekOptions = [
                 'error_bubbling' => true,
-                'empty_data' => '',
             ];
             // when the form is compound the entries of the array are ignored in favor of children data
             // so we need to handle the cascade setting here
@@ -154,7 +153,7 @@
         $resolver->setNormalizer('choice_translation_domain', $choiceTranslationDomainNormalizer);
         $resolver->setNormalizer('html5', static function (Options $options, $html5) {
             if ($html5 && 'single_text' !== $options['widget']) {
-                throw new LogicException(sprintf('The "widget" option of "%s" must be set to "single_text" when the "html5" option is enabled.', self::class));
+                throw new LogicException(\sprintf('The "widget" option of "%s" must be set to "single_text" when the "html5" option is enabled.', self::class));
             }
 
             return $html5;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/DataCollector/FormDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/DataCollector/FormDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/DataCollector/FormDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/DataCollector/FormDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,7 +65,7 @@
     public function __construct(FormDataExtractorInterface $dataExtractor)
     {
         if (!class_exists(ClassStub::class)) {
-            throw new \LogicException(sprintf('The VarDumper component is needed for using the "%s" class. Install symfony/var-dumper version 3.4 or above.', __CLASS__));
+            throw new \LogicException(\sprintf('The VarDumper component is needed for using the "%s" class. Install symfony/var-dumper version 3.4 or above.', __CLASS__));
         }
 
         $this->dataExtractor = $dataExtractor;
@@ -200,10 +200,7 @@
         return $this->data;
     }
 
-    /**
-     * @internal
-     */
-    public function __sleep(): array
+    public function __serialize(): array
     {
         foreach ($this->data['forms_by_hash'] as &$form) {
             if (isset($form['type_class']) && !$form['type_class'] instanceof ClassStub) {
@@ -211,9 +208,7 @@
             }
         }
 
-        $this->data = $this->cloneVar($this->data);
-
-        return parent::__sleep();
+        return ['data' => $this->data = $this->cloneVar($this->data)];
     }
 
     protected function getCasters(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/DependencyInjection/DependencyInjectionExtension.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/DependencyInjection/DependencyInjectionExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/DependencyInjection/DependencyInjectionExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/DependencyInjection/DependencyInjectionExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
     public function getType(string $name): FormTypeInterface
     {
         if (!$this->typeContainer->has($name)) {
-            throw new InvalidArgumentException(sprintf('The field type "%s" is not registered in the service container.', $name));
+            throw new InvalidArgumentException(\sprintf('The field type "%s" is not registered in the service container.', $name));
         }
 
         return $this->typeContainer->get($name);
@@ -66,7 +66,7 @@
 
                 // validate the result of getExtendedTypes() to ensure it is consistent with the service definition
                 if (!\in_array($name, $extendedTypes, true)) {
-                    throw new InvalidArgumentException(sprintf('The extended type "%s" specified for the type extension class "%s" does not match any of the actual extended types (["%s"]).', $name, $extension::class, implode('", "', $extendedTypes)));
+                    throw new InvalidArgumentException(\sprintf('The extended type "%s" specified for the type extension class "%s" does not match any of the actual extended types (["%s"]).', $name, $extension::class, implode('", "', $extendedTypes)));
                 }
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/PasswordHasher/EventListener/PasswordHasherListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/PasswordHasher/EventListener/PasswordHasherListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/PasswordHasher/EventListener/PasswordHasherListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/PasswordHasher/EventListener/PasswordHasherListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -101,7 +101,7 @@
         $parent = $this->getTargetForm($form)->getParent();
 
         if (!($user = $parent?->getData()) || !$user instanceof PasswordAuthenticatedUserInterface) {
-            throw new InvalidConfigurationException(sprintf('The "hash_property_path" option only supports "%s" objects, "%s" given.', PasswordAuthenticatedUserInterface::class, get_debug_type($user)));
+            throw new InvalidConfigurationException(\sprintf('The "hash_property_path" option only supports "%s" objects, "%s" given.', PasswordAuthenticatedUserInterface::class, get_debug_type($user)));
         }
 
         return $user;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
             return;
         }
 
-        /* @var FormInterface $form */
+        /** @var FormInterface $form */
         $config = $form->getConfig();
 
         $validator = $this->context->getValidator()->inContext($this->context);
@@ -95,7 +95,7 @@
                             $fieldFormConstraint = new Form();
                             $fieldFormConstraint->groups = $group;
                             $this->context->setNode($this->context->getValue(), $field, $this->context->getMetadata(), $this->context->getPropertyPath());
-                            $validator->atPath(sprintf('children[%s]', $field->getName()))->validate($field, $fieldFormConstraint, $group);
+                            $validator->atPath(\sprintf('children[%s]', $field->getName()))->validate($field, $fieldFormConstraint, $group);
                         }
                     }
 
@@ -142,7 +142,7 @@
                     if ($field->isSubmitted()) {
                         $this->resolvedGroups[$field] = $groups;
                         $this->context->setNode($this->context->getValue(), $field, $this->context->getMetadata(), $this->context->getPropertyPath());
-                        $validator->atPath(sprintf('children[%s]', $field->getName()))->validate($field, $formConstraint);
+                        $validator->atPath(\sprintf('children[%s]', $field->getName()))->validate($field, $formConstraint);
                     }
                 }
             }
@@ -159,7 +159,7 @@
                 if (!$child->isSynchronized()) {
                     $childrenSynchronized = false;
                     $this->context->setNode($this->context->getValue(), $child, $this->context->getMetadata(), $this->context->getPropertyPath());
-                    $validator->atPath(sprintf('children[%s]', $child->getName()))->validate($child, $formConstraint);
+                    $validator->atPath(\sprintf('children[%s]', $child->getName()))->validate($child, $formConstraint);
                 }
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/ValidatorExtension.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/ValidatorExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/ValidatorExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/ValidatorExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,20 +36,26 @@
     {
         $this->legacyErrorMessages = $legacyErrorMessages;
 
+        /** @var ClassMetadata $metadata */
         $metadata = $validator->getMetadataFor(\Symfony\Component\Form\Form::class);
 
+        $this->validator = $validator;
+        $this->formRenderer = $formRenderer;
+        $this->translator = $translator;
+
         // Register the form constraints in the validator programmatically.
         // This functionality is required when using the Form component without
         // the DIC, where the XML file is loaded automatically. Thus the following
         // code must be kept synchronized with validation.xml
 
-        /* @var $metadata ClassMetadata */
+        foreach ($metadata->getConstraints() as $constraint) {
+            if ($constraint instanceof Form) {
+                return;
+            }
+        }
+
         $metadata->addConstraint(new Form());
         $metadata->addConstraint(new Traverse(false));
-
-        $this->validator = $validator;
-        $this->formRenderer = $formRenderer;
-        $this->translator = $translator;
     }
 
     public function loadTypeGuesser(): ?FormTypeGuesserInterface
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/ValidatorTypeGuesser.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/ValidatorTypeGuesser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/ValidatorTypeGuesser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/ValidatorTypeGuesser.php	2026-05-20 10:56:49.000000000 +0200
@@ -232,7 +232,7 @@
         switch ($constraint::class) {
             case Length::class:
                 if (is_numeric($constraint->min)) {
-                    return new ValueGuess(sprintf('.{%s,}', (string) $constraint->min), Guess::LOW_CONFIDENCE);
+                    return new ValueGuess(\sprintf('.{%s,}', (string) $constraint->min), Guess::LOW_CONFIDENCE);
                 }
                 break;
 
@@ -246,7 +246,7 @@
 
             case Range::class:
                 if (is_numeric($constraint->min)) {
-                    return new ValueGuess(sprintf('.{%s,}', \strlen((string) $constraint->min)), Guess::LOW_CONFIDENCE);
+                    return new ValueGuess(\sprintf('.{%s,}', \strlen((string) $constraint->min)), Guess::LOW_CONFIDENCE);
                 }
                 break;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/MappingRule.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/MappingRule.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/MappingRule.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/MappingRule.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,7 +68,7 @@
 
         foreach ($childNames as $childName) {
             if (!$target->has($childName)) {
-                throw new ErrorMappingException(sprintf('The child "%s" of "%s" mapped by the rule "%s" in "%s" does not exist.', $childName, $target->getName(), $this->targetPath, $this->origin->getName()));
+                throw new ErrorMappingException(\sprintf('The child "%s" of "%s" mapped by the rule "%s" in "%s" does not exist.', $childName, $target->getName(), $this->targetPath, $this->origin->getName()));
             }
             $target = $target->get($childName);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/ViolationMapper.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/ViolationMapper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/ViolationMapper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/ViolationMapper.php	2026-05-20 10:56:49.000000000 +0200
@@ -253,7 +253,7 @@
 
             // Test mapping rules as long as we have any
             foreach ($rules as $key => $rule) {
-                /* @var MappingRule $rule */
+                /** @var MappingRule $rule */
 
                 // Mapping rule matches completely, terminate.
                 if (null !== ($form = $rule->match($chunk))) {
@@ -317,7 +317,7 @@
                 // Cut the piece out of the property path and proceed
                 $propertyPathBuilder->remove($i);
             } else {
-                /* @var \Symfony\Component\PropertyAccess\PropertyPathInterface $propertyPath */
+                /** @var \Symfony\Component\PropertyAccess\PropertyPathInterface $propertyPath */
                 $propertyPath = $scope->getPropertyPath();
 
                 if (null === $propertyPath) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/ViolationPath.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/ViolationPath.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/ViolationPath.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Extension/Validator/ViolationMapper/ViolationPath.php	2026-05-20 10:56:49.000000000 +0200
@@ -132,7 +132,7 @@
     public function getElement(int $index): string
     {
         if (!isset($this->elements[$index])) {
-            throw new OutOfBoundsException(sprintf('The index "%s" is not within the violation path.', $index));
+            throw new OutOfBoundsException(\sprintf('The index "%s" is not within the violation path.', $index));
         }
 
         return $this->elements[$index];
@@ -141,7 +141,7 @@
     public function isProperty(int $index): bool
     {
         if (!isset($this->isIndex[$index])) {
-            throw new OutOfBoundsException(sprintf('The index "%s" is not within the violation path.', $index));
+            throw new OutOfBoundsException(\sprintf('The index "%s" is not within the violation path.', $index));
         }
 
         return !$this->isIndex[$index];
@@ -150,7 +150,7 @@
     public function isIndex(int $index): bool
     {
         if (!isset($this->isIndex[$index])) {
-            throw new OutOfBoundsException(sprintf('The index "%s" is not within the violation path.', $index));
+            throw new OutOfBoundsException(\sprintf('The index "%s" is not within the violation path.', $index));
         }
 
         return $this->isIndex[$index];
@@ -176,7 +176,7 @@
     public function mapsForm(int $index): bool
     {
         if (!isset($this->mapsForm[$index])) {
-            throw new OutOfBoundsException(sprintf('The index "%s" is not within the violation path.', $index));
+            throw new OutOfBoundsException(\sprintf('The index "%s" is not within the violation path.', $index));
         }
 
         return $this->mapsForm[$index];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/FormBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/FormBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/FormBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/FormBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -102,7 +102,7 @@
             return $this->children[$name];
         }
 
-        throw new InvalidArgumentException(sprintf('The child with the name "%s" does not exist.', $name));
+        throw new InvalidArgumentException(\sprintf('The child with the name "%s" does not exist.', $name));
     }
 
     public function remove(string $name): static
@@ -147,7 +147,7 @@
 
     public function getFormConfig(): FormConfigInterface
     {
-        /** @var $config self */
+        /** @var self $config */
         $config = parent::getFormConfig();
 
         $config->children = [];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/FormConfigBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/FormConfigBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/FormConfigBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/FormConfigBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
         self::validateName($name);
 
         if (null !== $dataClass && !class_exists($dataClass) && !interface_exists($dataClass, false)) {
-            throw new InvalidArgumentException(sprintf('Class "%s" not found. Is the "data_class" form option set correctly?', $dataClass));
+            throw new InvalidArgumentException(\sprintf('Class "%s" not found. Is the "data_class" form option set correctly?', $dataClass));
         }
 
         $this->name = (string) $name;
@@ -636,7 +636,7 @@
     final public static function validateName(?string $name): void
     {
         if (!self::isValidName($name)) {
-            throw new InvalidArgumentException(sprintf('The name "%s" contains illegal characters. Names should start with a letter, digit or underscore and only contain letters, digits, numbers, underscores ("_"), hyphens ("-") and colons (":").', $name));
+            throw new InvalidArgumentException(\sprintf('The name "%s" contains illegal characters. Names should start with a letter, digit or underscore and only contain letters, digits, numbers, underscores ("_"), hyphens ("-") and colons (":").', $name));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/FormErrorIterator.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/FormErrorIterator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/FormErrorIterator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/FormErrorIterator.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,7 @@
     {
         foreach ($errors as $error) {
             if (!($error instanceof FormError || $error instanceof self)) {
-                throw new InvalidArgumentException(sprintf('The errors must be instances of "Symfony\Component\Form\FormError" or "%s". Got: "%s".', __CLASS__, get_debug_type($error)));
+                throw new InvalidArgumentException(\sprintf('The errors must be instances of "Symfony\Component\Form\FormError" or "%s". Got: "%s".', __CLASS__, get_debug_type($error)));
             }
         }
 
@@ -77,7 +77,7 @@
             if ($error instanceof FormError) {
                 $string .= 'ERROR: '.$error->getMessage()."\n";
             } else {
-                /* @var self $error */
+                /** @var self $error */
                 $string .= $error->getForm()->getName().":\n";
                 $string .= self::indent((string) $error);
             }
@@ -199,7 +199,7 @@
     public function getChildren(): self
     {
         if (!$this->hasChildren()) {
-            throw new LogicException(sprintf('The current element is not iterable. Use "%s" to get the current element.', self::class.'::current()'));
+            throw new LogicException(\sprintf('The current element is not iterable. Use "%s" to get the current element.', self::class.'::current()'));
         }
 
         /** @var self $children */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Form.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Form.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Form.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Form.php	2026-05-20 10:56:49.000000000 +0200
@@ -619,7 +619,7 @@
         return null === $this->transformationFailure;
     }
 
-    public function getTransformationFailure(): ?Exception\TransformationFailedException
+    public function getTransformationFailure(): ?TransformationFailedException
     {
         return $this->transformationFailure;
     }
@@ -750,7 +750,7 @@
                 $child = $this->config->getFormFactory()->createNamed($child, $type, null, $options);
             }
         } elseif ($child->getConfig()->getAutoInitialize()) {
-            throw new RuntimeException(sprintf('Automatic initialization is only supported on root forms. You should set the "auto_initialize" option to false on the field "%s".', $child->getName()));
+            throw new RuntimeException(\sprintf('Automatic initialization is only supported on root forms. You should set the "auto_initialize" option to false on the field "%s".', $child->getName()));
         }
 
         $this->children[$child->getName()] = $child;
@@ -812,7 +812,7 @@
             return $this->children[$name];
         }
 
-        throw new OutOfBoundsException(sprintf('Child "%s" does not exist.', $name));
+        throw new OutOfBoundsException(\sprintf('Child "%s" does not exist.', $name));
     }
 
     /**
@@ -945,7 +945,7 @@
                 $value = $transformer->transform($value);
             }
         } catch (TransformationFailedException $exception) {
-            throw new TransformationFailedException(sprintf('Unable to transform data for property path "%s": ', $this->getPropertyPath()).$exception->getMessage(), $exception->getCode(), $exception, $exception->getInvalidMessage(), $exception->getInvalidMessageParameters());
+            throw new TransformationFailedException(\sprintf('Unable to transform data for property path "%s": ', $this->getPropertyPath()).$exception->getMessage(), $exception->getCode(), $exception, $exception->getInvalidMessage(), $exception->getInvalidMessageParameters());
         }
 
         return $value;
@@ -965,7 +965,7 @@
                 $value = $transformers[$i]->reverseTransform($value);
             }
         } catch (TransformationFailedException $exception) {
-            throw new TransformationFailedException(sprintf('Unable to reverse value for property path "%s": ', $this->getPropertyPath()).$exception->getMessage(), $exception->getCode(), $exception, $exception->getInvalidMessage(), $exception->getInvalidMessageParameters());
+            throw new TransformationFailedException(\sprintf('Unable to reverse value for property path "%s": ', $this->getPropertyPath()).$exception->getMessage(), $exception->getCode(), $exception, $exception->getInvalidMessage(), $exception->getInvalidMessageParameters());
         }
 
         return $value;
@@ -992,7 +992,7 @@
                 $value = $transformer->transform($value);
             }
         } catch (TransformationFailedException $exception) {
-            throw new TransformationFailedException(sprintf('Unable to transform value for property path "%s": ', $this->getPropertyPath()).$exception->getMessage(), $exception->getCode(), $exception, $exception->getInvalidMessage(), $exception->getInvalidMessageParameters());
+            throw new TransformationFailedException(\sprintf('Unable to transform value for property path "%s": ', $this->getPropertyPath()).$exception->getMessage(), $exception->getCode(), $exception, $exception->getInvalidMessage(), $exception->getInvalidMessageParameters());
         }
 
         return $value;
@@ -1014,7 +1014,7 @@
                 $value = $transformers[$i]->reverseTransform($value);
             }
         } catch (TransformationFailedException $exception) {
-            throw new TransformationFailedException(sprintf('Unable to reverse value for property path "%s": ', $this->getPropertyPath()).$exception->getMessage(), $exception->getCode(), $exception, $exception->getInvalidMessage(), $exception->getInvalidMessageParameters());
+            throw new TransformationFailedException(\sprintf('Unable to reverse value for property path "%s": ', $this->getPropertyPath()).$exception->getMessage(), $exception->getCode(), $exception, $exception->getInvalidMessage(), $exception->getInvalidMessageParameters());
         }
 
         return $value;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/FormRegistry.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/FormRegistry.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/FormRegistry.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/FormRegistry.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
      */
     private array $types = [];
 
-    private FormTypeGuesserInterface|null|false $guesser = false;
+    private FormTypeGuesserInterface|false|null $guesser = false;
     private ResolvedFormTypeFactoryInterface $resolvedTypeFactory;
     private array $checkedTypes = [];
 
@@ -69,10 +69,10 @@
             if (!$type) {
                 // Support fully-qualified class names
                 if (!class_exists($name)) {
-                    throw new InvalidArgumentException(sprintf('Could not load type "%s": class does not exist.', $name));
+                    throw new InvalidArgumentException(\sprintf('Could not load type "%s": class does not exist.', $name));
                 }
                 if (!is_subclass_of($name, FormTypeInterface::class)) {
-                    throw new InvalidArgumentException(sprintf('Could not load type "%s": class does not implement "Symfony\Component\Form\FormTypeInterface".', $name));
+                    throw new InvalidArgumentException(\sprintf('Could not load type "%s": class does not implement "Symfony\Component\Form\FormTypeInterface".', $name));
                 }
 
                 $type = new $name();
@@ -94,7 +94,7 @@
 
         if (isset($this->checkedTypes[$fqcn])) {
             $types = implode(' > ', array_merge(array_keys($this->checkedTypes), [$fqcn]));
-            throw new LogicException(sprintf('Circular reference detected for form type "%s" (%s).', $fqcn, $types));
+            throw new LogicException(\sprintf('Circular reference detected for form type "%s" (%s).', $fqcn, $types));
         }
 
         $this->checkedTypes[$fqcn] = true;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/FormRenderer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/FormRenderer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/FormRenderer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/FormRenderer.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
         $resource = $this->engine->getResourceForBlockName($view, $blockName);
 
         if (!$resource) {
-            throw new LogicException(sprintf('No block "%s" found while rendering the form.', $blockName));
+            throw new LogicException(\sprintf('No block "%s" found while rendering the form.', $blockName));
         }
 
         $viewCacheKey = $view->vars[self::CACHE_KEY_VAR];
@@ -121,7 +121,7 @@
 
         if ($renderOnlyOnce && $view->isRendered()) {
             // This is not allowed, because it would result in rendering same IDs multiple times, which is not valid.
-            throw new BadMethodCallException(sprintf('Field "%s" has already been rendered, save the result of previous render call to a variable and output that instead.', $view->vars['name']));
+            throw new BadMethodCallException(\sprintf('Field "%s" has already been rendered, save the result of previous render call to a variable and output that instead.', $view->vars['name']));
         }
 
         // The cache key for storing the variables and types
@@ -208,10 +208,10 @@
         // Escape if no resource exists for this block
         if (!$resource) {
             if (\count($blockNameHierarchy) !== \count(array_unique($blockNameHierarchy))) {
-                throw new LogicException(sprintf('Unable to render the form because the block names array contains duplicates: "%s".', implode('", "', array_reverse($blockNameHierarchy))));
+                throw new LogicException(\sprintf('Unable to render the form because the block names array contains duplicates: "%s".', implode('", "', array_reverse($blockNameHierarchy))));
             }
 
-            throw new LogicException(sprintf('Unable to render the form as none of the following blocks exist: "%s".', implode('", "', array_reverse($blockNameHierarchy))));
+            throw new LogicException(\sprintf('Unable to render the form as none of the following blocks exist: "%s".', implode('", "', array_reverse($blockNameHierarchy))));
         }
 
         // Merge the passed with the existing attributes
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Guess/Guess.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Guess/Guess.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Guess/Guess.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Guess/Guess.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,7 +14,7 @@
 use Symfony\Component\Form\Exception\InvalidArgumentException;
 
 /**
- * Base class for guesses made by TypeGuesserInterface implementation.
+ * Base class for guesses made by FormTypeGuesserInterface implementation.
  *
  * Each instance contains a confidence value about the correctness of the guess.
  * Thus an instance with confidence HIGH_CONFIDENCE is more likely to be
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/NativeRequestHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/NativeRequestHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/NativeRequestHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/NativeRequestHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
     /**
      * @return void
      *
-     * @throws Exception\UnexpectedTypeException If the $request is not null
+     * @throws UnexpectedTypeException If the $request is not null
      */
     public function handleRequest(FormInterface $form, mixed $request = null)
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/PreloadedExtension.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/PreloadedExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/PreloadedExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/PreloadedExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
     public function getType(string $name): FormTypeInterface
     {
         if (!isset($this->types[$name])) {
-            throw new InvalidArgumentException(sprintf('The type "%s" cannot be loaded by this extension.', $name));
+            throw new InvalidArgumentException(\sprintf('The type "%s" cannot be loaded by this extension.', $name));
         }
 
         return $this->types[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/ResolvedFormType.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/ResolvedFormType.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/ResolvedFormType.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/ResolvedFormType.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
         try {
             $options = $this->getOptionsResolver()->resolve($options);
         } catch (ExceptionInterface $e) {
-            throw new $e(sprintf('An error has occurred resolving the options of the form "%s": ', get_debug_type($this->getInnerType())).$e->getMessage(), $e->getCode(), $e);
+            throw new $e(\sprintf('An error has occurred resolving the options of the form "%s": ', get_debug_type($this->getInnerType())).$e->getMessage(), $e->getCode(), $e);
         }
 
         // Should be decoupled from the specific option at some point
@@ -129,8 +129,8 @@
 
         $this->innerType->finishView($view, $form, $options);
 
+        /** @var FormTypeExtensionInterface $extension */
         foreach ($this->typeExtensions as $extension) {
-            /* @var FormTypeExtensionInterface $extension */
             $extension->finishView($view, $form, $options);
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Resources/translations/validators.ca.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Form/Resources/translations/validators.ca.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Resources/translations/validators.ca.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Resources/translations/validators.ca.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -8,87 +8,87 @@
             </trans-unit>
             <trans-unit id="29">
                 <source>The uploaded file was too large. Please try to upload a smaller file.</source>
-                <target>L'arxiu pujat és massa gran. Per favor, pugi un arxiu més petit.</target>
+                <target>El fitxer pujat és massa gran. Pujeu un fitxer més petit.</target>
             </trans-unit>
             <trans-unit id="30">
                 <source>The CSRF token is invalid. Please try to resubmit the form.</source>
-                <target>El token CSRF no és vàlid. Per favor, provi d'enviar novament el formulari.</target>
+                <target>El token CSRF no és vàlid. Torneu a enviar el formulari.</target>
             </trans-unit>
             <trans-unit id="99">
                 <source>This value is not a valid HTML5 color.</source>
-                <target>Aquest valor no és un color HTML5 valid.</target>
+                <target>Aquest valor no és un color HTML5 vàlid.</target>
             </trans-unit>
             <trans-unit id="100">
                 <source>Please enter a valid birthdate.</source>
-                <target>Per favor introdueix una data d'aniversari valida.</target>
+                <target>Introduïu una data d'aniversari vàlida.</target>
             </trans-unit>
             <trans-unit id="101">
                 <source>The selected choice is invalid.</source>
-                <target>L'opció escollida és invalida.</target>
+                <target>L'opció escollida no és vàlida.</target>
             </trans-unit>
             <trans-unit id="102">
                 <source>The collection is invalid.</source>
-                <target>La col·lecció és invalida.</target>
+                <target>La col·lecció no és vàlida.</target>
             </trans-unit>
             <trans-unit id="103">
                 <source>Please select a valid color.</source>
-                <target>Per favor selecciona un color vàlid.</target>
+                <target>Seleccioneu un color vàlid.</target>
             </trans-unit>
             <trans-unit id="104">
                 <source>Please select a valid country.</source>
-                <target>Per favor selecciona una ciutat vàlida.</target>
+                <target>Seleccioneu una ciutat vàlida.</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>Please select a valid currency.</source>
-                <target>Per favor selecciona una moneda vàlida.</target>
+                <target>Seleccioneu una moneda vàlida.</target>
             </trans-unit>
             <trans-unit id="106">
                 <source>Please choose a valid date interval.</source>
-                <target>Per favor escull un interval de dates vàlides.</target>
+                <target>Escolliu un interval de dates vàlides.</target>
             </trans-unit>
             <trans-unit id="107">
                 <source>Please enter a valid date and time.</source>
-                <target>Per favor introdueix una data i temps vàlid.</target>
+                <target>Introduïu una data i hora vàlides.</target>
             </trans-unit>
             <trans-unit id="108">
                 <source>Please enter a valid date.</source>
-                <target>Per favor introdueix una data vàlida.</target>
+                <target>Introduïu una data vàlida.</target>
             </trans-unit>
             <trans-unit id="109">
                 <source>Please select a valid file.</source>
-                <target>Per favor selecciona un arxiu vàlid.</target>
+                <target>Seleccioneu un fitxer vàlid.</target>
             </trans-unit>
             <trans-unit id="110">
                 <source>The hidden field is invalid.</source>
-                <target>El camp ocult és invàlid.</target>
+                <target>El camp ocult no és vàlid.</target>
             </trans-unit>
             <trans-unit id="111">
                 <source>Please enter an integer.</source>
-                <target>Per favor introdueix un enter.</target>
+                <target>Introduïu un enter.</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>Please select a valid language.</source>
-                <target>Per favor selecciona un idioma vàlid.</target>
+                <target>Seleccioneu un idioma vàlid.</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>Please select a valid locale.</source>
-                <target>Per favor seleccioneu una configuració regional vàlida</target>
+                <target>Seleccioneu una configuració regional vàlida</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>Please enter a valid money amount.</source>
-                <target>Per favor introdueix una quantitat de diners vàlids.</target>
+                <target>Introduïu una quantitat de diners vàlida.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>Please enter a number.</source>
-                <target>Per favor introdueix un número.</target>
+                <target>Introduïu un número.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>The password is invalid.</source>
-                <target>La contrasenya es invàlida.</target>
+                <target>La contrasenya no és vàlida.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>Please enter a percentage value.</source>
-                <target>Per favor introdueix un valor percentual.</target>
+                <target>Introduïu un valor percentual.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>The values do not match.</source>
@@ -96,43 +96,43 @@
             </trans-unit>
             <trans-unit id="119">
                 <source>Please enter a valid time.</source>
-                <target>Per favor introdueix un temps vàlid.</target>
+                <target>Introduïu una hora vàlida.</target>
             </trans-unit>
             <trans-unit id="120">
                 <source>Please select a valid timezone.</source>
-                <target>Per favor selecciona una zona horària vàlida.</target>
+                <target>Seleccioneu una zona horària vàlida.</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>Please enter a valid URL.</source>
-                <target>Per favor introdueix una URL vàlida.</target>
+                <target>Introduïu una URL vàlida.</target>
             </trans-unit>
             <trans-unit id="122">
                 <source>Please enter a valid search term.</source>
-                <target>Per favor introdueix un concepte de cerca vàlid.</target>
+                <target>Introduïu un terme de cerca vàlid.</target>
             </trans-unit>
             <trans-unit id="123">
                 <source>Please provide a valid phone number.</source>
-                <target>Per favor introdueix un número de telèfon vàlid.</target>
+                <target>Introduïu un número de telèfon vàlid.</target>
             </trans-unit>
             <trans-unit id="124">
                 <source>The checkbox has an invalid value.</source>
-                <target>La casella de selecció te un valor invàlid.</target>
+                <target>La casella de selecció te un valor no vàlid.</target>
             </trans-unit>
             <trans-unit id="125">
                 <source>Please enter a valid email address.</source>
-                <target>Per favor introdueix un correu electrònic vàlid.</target>
+                <target>Introduïu un correu electrònic vàlid.</target>
             </trans-unit>
             <trans-unit id="126">
                 <source>Please select a valid option.</source>
-                <target>Per favor selecciona una opció vàlida.</target>
+                <target>Seleccioneu una opció vàlida.</target>
             </trans-unit>
             <trans-unit id="127">
                 <source>Please select a valid range.</source>
-                <target>Per favor selecciona un rang vàlid.</target>
+                <target>Seleccioneu un rang vàlid.</target>
             </trans-unit>
             <trans-unit id="128">
                 <source>Please enter a valid week.</source>
-                <target>Per favor introdueix una setmana vàlida.</target>
+                <target>Introduïu una setmana vàlida.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Resources/translations/validators.nb.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Form/Resources/translations/validators.nb.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Resources/translations/validators.nb.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Resources/translations/validators.nb.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
             </trans-unit>
             <trans-unit id="30">
                 <source>The CSRF token is invalid. Please try to resubmit the form.</source>
-                <target state="needs-review-translation">CSRF-tokenen er ugyldig. Vennligst prøv å sende inn skjemaet på nytt.</target>
+                <target>CSRF-tokenen er ugyldig. Vennligst prøv å sende inn skjemaet på nytt.</target>
             </trans-unit>
             <trans-unit id="99">
                 <source>This value is not a valid HTML5 color.</source>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Resources/translations/validators.no.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Form/Resources/translations/validators.no.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Resources/translations/validators.no.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Resources/translations/validators.no.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
             </trans-unit>
             <trans-unit id="30">
                 <source>The CSRF token is invalid. Please try to resubmit the form.</source>
-                <target state="needs-review-translation">CSRF-tokenen er ugyldig. Vennligst prøv å sende inn skjemaet på nytt.</target>
+                <target>CSRF-tokenen er ugyldig. Vennligst prøv å sende inn skjemaet på nytt.</target>
             </trans-unit>
             <trans-unit id="99">
                 <source>This value is not a valid HTML5 color.</source>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
         $time = microtime(true) - $s;
 
         if (0 != $this->maxRunningTime && $time > $this->maxRunningTime) {
-            $this->fail(sprintf('expected running time: <= %s but was: %s', $this->maxRunningTime, $time));
+            $this->fail(\sprintf('expected running time: <= %s but was: %s', $this->maxRunningTime, $time));
         }
 
         $this->expectNotToPerformAssertions();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Test/Traits/ValidatorExtensionTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Test/Traits/ValidatorExtensionTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Test/Traits/ValidatorExtensionTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Test/Traits/ValidatorExtensionTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
         }
 
         if (!$this instanceof TypeTestCase) {
-            throw new \Exception(sprintf('The trait "ValidatorExtensionTrait" can only be added to a class that extends "%s".', TypeTestCase::class));
+            throw new \Exception(\sprintf('The trait "ValidatorExtensionTrait" can only be added to a class that extends "%s".', TypeTestCase::class));
         }
 
         $this->validator = $this->createMock(ValidatorInterface::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Test/TypeTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Test/TypeTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Test/TypeTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Test/TypeTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,9 @@
     {
         parent::setUp();
 
-        $this->dispatcher = $this->createMock(EventDispatcherInterface::class);
+        if (!isset($this->dispatcher)) {
+            $this->dispatcher = $this->createMock(EventDispatcherInterface::class);
+        }
         $this->builder = new FormBuilder('', null, $this->dispatcher, $this->factory);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/AbstractRequestHandlerTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/AbstractRequestHandlerTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/AbstractRequestHandlerTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/AbstractRequestHandlerTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
 
     protected function setUp(): void
     {
-        $this->serverParams = new class() extends ServerParams {
+        $this->serverParams = new class extends ServerParams {
             public ?int $contentLength = null;
             public string $postMaxSize = '';
 
@@ -343,7 +343,56 @@
         $this->assertFalse($itemsForm->has('1'));
 
         $this->assertEquals('test', $itemsForm->get('0')->get('item')->getData());
-        $this->assertNotNull($itemsForm->get('0')->get('file'));
+        $this->assertNotNull($itemsForm->get('0')->get('file')->getData());
+    }
+
+    public function testMergePartialDataFromCollection()
+    {
+        $form = $this->createForm('root', 'POST', true);
+        $form->add('items', CollectionType::class, [
+            'entry_type' => ItemFileType::class,
+            'allow_add' => true,
+        ]);
+
+        $file = $this->getUploadedFile();
+        $file2 = $this->getUploadedFile();
+
+        $this->setRequestData('POST', [
+            'root' => [
+                'items' => [
+                    1 => [
+                        'item' => 'test',
+                    ],
+                ],
+            ],
+        ], [
+            'root' => [
+                'items' => [
+                    0 => [
+                        'file' => $file,
+                    ],
+                    1 => [
+                        'file' => $file2,
+                    ],
+                ],
+            ],
+        ]);
+
+        $this->requestHandler->handleRequest($form, $this->request);
+
+        $itemsForm = $form->get('items');
+        $data = $itemsForm->getData();
+        $this->assertTrue($form->isSubmitted());
+        $this->assertTrue($form->isValid());
+
+        $this->assertCount(2, $data);
+        $this->assertArrayHasKey(0, $data);
+        $this->assertArrayHasKey(1, $data);
+
+        $this->assertNull($itemsForm->get('0')->get('item')->getData());
+        $this->assertNotNull($itemsForm->get('0')->get('file')->getData());
+        $this->assertEquals('test', $itemsForm->get('1')->get('item')->getData());
+        $this->assertNotNull($itemsForm->get('1')->get('file')->getData());
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/CallbackTransformerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/CallbackTransformerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/CallbackTransformerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/CallbackTransformerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,8 +19,8 @@
     public function testTransform()
     {
         $transformer = new CallbackTransformer(
-            fn ($value) => $value.' has been transformed',
-            fn ($value) => $value.' has reversely been transformed'
+            static fn ($value) => $value.' has been transformed',
+            static fn ($value) => $value.' has reversely been transformed'
         );
 
         $this->assertEquals('foo has been transformed', $transformer->transform('foo'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/ArrayChoiceListTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/ArrayChoiceListTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/ArrayChoiceListTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/ArrayChoiceListTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
 
     public function testCreateChoiceListWithValueCallback()
     {
-        $callback = fn ($choice) => ':'.$choice;
+        $callback = static fn ($choice) => ':'.$choice;
 
         $choiceList = new ArrayChoiceList([2 => 'foo', 7 => 'bar', 10 => 'baz'], $callback);
 
@@ -110,7 +110,7 @@
 
     public function testCompareChoicesByIdentityByDefault()
     {
-        $callback = fn ($choice) => $choice->value;
+        $callback = static fn ($choice) => $choice->value;
 
         $obj1 = (object) ['value' => 'value1'];
         $obj2 = (object) ['value' => 'value2'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Factory/CachingFactoryDecoratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Factory/CachingFactoryDecoratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Factory/CachingFactoryDecoratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Factory/CachingFactoryDecoratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -100,7 +100,7 @@
     public function testCreateFromChoicesSameValueClosure()
     {
         $choices = [1];
-        $closure = function () {};
+        $closure = static function () {};
 
         $list1 = $this->factory->createListFromChoices($choices, $closure);
         $list2 = $this->factory->createListFromChoices($choices, $closure);
@@ -114,21 +114,21 @@
     {
         $choices = [1];
         $formType = new FormType();
-        $valueCallback = function () {};
+        $valueCallback = static function () {};
 
         $list1 = $this->factory->createListFromChoices($choices, ChoiceList::value($formType, $valueCallback));
-        $list2 = $this->factory->createListFromChoices($choices, ChoiceList::value($formType, function () {}));
+        $list2 = $this->factory->createListFromChoices($choices, ChoiceList::value($formType, static function () {}));
 
         $this->assertSame($list1, $list2);
         $this->assertEquals(new ArrayChoiceList($choices, $valueCallback), $list1);
-        $this->assertEquals(new ArrayChoiceList($choices, function () {}), $list2);
+        $this->assertEquals(new ArrayChoiceList($choices, static function () {}), $list2);
     }
 
     public function testCreateFromChoicesDifferentValueClosure()
     {
         $choices = [1];
-        $closure1 = function () {};
-        $closure2 = function () {};
+        $closure1 = static function () {};
+        $closure2 = static function () {};
         $list1 = $this->factory->createListFromChoices($choices, $closure1);
         $list2 = $this->factory->createListFromChoices($choices, $closure2);
 
@@ -140,7 +140,7 @@
     public function testCreateFromChoicesSameFilterClosure()
     {
         $choices = [1];
-        $filter = function () {};
+        $filter = static function () {};
         $list1 = $this->factory->createListFromChoices($choices, null, $filter);
         $list2 = $this->factory->createListFromChoices($choices, null, $filter);
         $lazyChoiceList = new LazyChoiceList(new FilterChoiceLoaderDecorator(new CallbackChoiceLoader(static fn () => $choices), $filter), null);
@@ -154,10 +154,10 @@
     {
         $choices = [1];
         $formType = new FormType();
-        $filterCallback = function () {};
+        $filterCallback = static function () {};
         $list1 = $this->factory->createListFromChoices($choices, null, ChoiceList::filter($formType, $filterCallback));
-        $list2 = $this->factory->createListFromChoices($choices, null, ChoiceList::filter($formType, function () {}));
-        $lazyChoiceList = new LazyChoiceList(new FilterChoiceLoaderDecorator(new CallbackChoiceLoader(static fn () => $choices), function () {}), null);
+        $list2 = $this->factory->createListFromChoices($choices, null, ChoiceList::filter($formType, static function () {}));
+        $lazyChoiceList = new LazyChoiceList(new FilterChoiceLoaderDecorator(new CallbackChoiceLoader(static fn () => $choices), static function () {}), null);
 
         $this->assertSame($list1, $list2);
         $this->assertEquals($lazyChoiceList, $list1);
@@ -167,11 +167,11 @@
     public function testCreateFromChoicesDifferentFilterClosure()
     {
         $choices = [1];
-        $closure1 = function () {};
-        $closure2 = function () {};
+        $closure1 = static function () {};
+        $closure2 = static function () {};
         $list1 = $this->factory->createListFromChoices($choices, null, $closure1);
         $list2 = $this->factory->createListFromChoices($choices, null, $closure2);
-        $lazyChoiceList = new LazyChoiceList(new FilterChoiceLoaderDecorator(new CallbackChoiceLoader(static fn () => $choices), function () {}), null);
+        $lazyChoiceList = new LazyChoiceList(new FilterChoiceLoaderDecorator(new CallbackChoiceLoader(static fn () => $choices), static function () {}), null);
 
         $this->assertNotSame($list1, $list2);
         $this->assertEquals($lazyChoiceList, $list1);
@@ -208,7 +208,7 @@
     public function testCreateFromLoaderSameValueClosure()
     {
         $loader = new ArrayChoiceLoader();
-        $closure = function () {};
+        $closure = static function () {};
         $list1 = $this->factory->createListFromLoader($loader, $closure);
         $list2 = $this->factory->createListFromLoader($loader, $closure);
 
@@ -221,20 +221,20 @@
     {
         $type = new FormType();
         $loader = new ArrayChoiceLoader();
-        $closure = function () {};
+        $closure = static function () {};
         $list1 = $this->factory->createListFromLoader(ChoiceList::loader($type, $loader), ChoiceList::value($type, $closure));
-        $list2 = $this->factory->createListFromLoader(ChoiceList::loader($type, new ArrayChoiceLoader()), ChoiceList::value($type, function () {}));
+        $list2 = $this->factory->createListFromLoader(ChoiceList::loader($type, new ArrayChoiceLoader()), ChoiceList::value($type, static function () {}));
 
         $this->assertSame($list1, $list2);
         $this->assertEquals(new LazyChoiceList($loader, $closure), $list1);
-        $this->assertEquals(new LazyChoiceList(new ArrayChoiceLoader(), function () {}), $list2);
+        $this->assertEquals(new LazyChoiceList(new ArrayChoiceLoader(), static function () {}), $list2);
     }
 
     public function testCreateFromLoaderDifferentValueClosure()
     {
         $loader = new ArrayChoiceLoader();
-        $closure1 = function () {};
-        $closure2 = function () {};
+        $closure1 = static function () {};
+        $closure2 = static function () {};
 
         $this->assertNotSame($this->factory->createListFromLoader($loader, $closure1), $this->factory->createListFromLoader($loader, $closure2));
     }
@@ -243,7 +243,7 @@
     {
         $loader = new ArrayChoiceLoader();
         $type = new FormType();
-        $closure = function () {};
+        $closure = static function () {};
 
         $list1 = $this->factory->createListFromLoader(ChoiceList::loader($type, $loader), null, $closure);
         $list2 = $this->factory->createListFromLoader(ChoiceList::loader($type, new ArrayChoiceLoader()), null, $closure);
@@ -256,20 +256,20 @@
     public function testCreateFromLoaderSameFilterClosureUseCache()
     {
         $type = new FormType();
-        $choiceFilter = ChoiceList::filter($type, function () {});
+        $choiceFilter = ChoiceList::filter($type, static function () {});
         $list1 = $this->factory->createListFromLoader(ChoiceList::loader($type, new ArrayChoiceLoader()), null, $choiceFilter);
         $list2 = $this->factory->createListFromLoader(ChoiceList::loader($type, new ArrayChoiceLoader()), null, $choiceFilter);
 
         $this->assertSame($list1, $list2);
-        $this->assertEquals(new LazyChoiceList(new FilterChoiceLoaderDecorator(new ArrayChoiceLoader(), function () {})), $list1);
-        $this->assertEquals(new LazyChoiceList(new FilterChoiceLoaderDecorator(new ArrayChoiceLoader(), function () {})), $list2);
+        $this->assertEquals(new LazyChoiceList(new FilterChoiceLoaderDecorator(new ArrayChoiceLoader(), static function () {})), $list1);
+        $this->assertEquals(new LazyChoiceList(new FilterChoiceLoaderDecorator(new ArrayChoiceLoader(), static function () {})), $list2);
     }
 
     public function testCreateFromLoaderDifferentFilterClosure()
     {
         $type = new FormType();
-        $closure1 = function () {};
-        $closure2 = function () {};
+        $closure1 = static function () {};
+        $closure2 = static function () {};
         $list1 = $this->factory->createListFromLoader(ChoiceList::loader($type, new ArrayChoiceLoader()), null, $closure1);
         $list2 = $this->factory->createListFromLoader(ChoiceList::loader($type, new ArrayChoiceLoader()), null, $closure2);
 
@@ -318,7 +318,7 @@
 
     public function testCreateViewSamePreferredChoicesClosure()
     {
-        $preferred = function () {};
+        $preferred = static function () {};
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, $preferred);
         $view2 = $this->factory->createView($list, $preferred);
@@ -330,11 +330,11 @@
 
     public function testCreateViewSamePreferredChoicesClosureUseCache()
     {
-        $preferredCallback = function () {};
+        $preferredCallback = static function () {};
         $type = new FormType();
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, ChoiceList::preferred($type, $preferredCallback));
-        $view2 = $this->factory->createView($list, ChoiceList::preferred($type, function () {}));
+        $view2 = $this->factory->createView($list, ChoiceList::preferred($type, static function () {}));
 
         $this->assertSame($view1, $view2);
         $this->assertEquals(new ChoiceListView(), $view1);
@@ -343,8 +343,8 @@
 
     public function testCreateViewDifferentPreferredChoicesClosure()
     {
-        $preferred1 = function () {};
-        $preferred2 = function () {};
+        $preferred1 = static function () {};
+        $preferred2 = static function () {};
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, $preferred1);
         $view2 = $this->factory->createView($list, $preferred2);
@@ -356,7 +356,7 @@
 
     public function testCreateViewSameLabelClosure()
     {
-        $labels = function () {};
+        $labels = static function () {};
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, $labels);
         $view2 = $this->factory->createView($list, null, $labels);
@@ -368,11 +368,11 @@
 
     public function testCreateViewSameLabelClosureUseCache()
     {
-        $labelsCallback = function () {};
+        $labelsCallback = static function () {};
         $type = new FormType();
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, ChoiceList::label($type, $labelsCallback));
-        $view2 = $this->factory->createView($list, null, ChoiceList::label($type, function () {}));
+        $view2 = $this->factory->createView($list, null, ChoiceList::label($type, static function () {}));
 
         $this->assertSame($view1, $view2);
         $this->assertEquals(new ChoiceListView(), $view1);
@@ -381,8 +381,8 @@
 
     public function testCreateViewDifferentLabelClosure()
     {
-        $labels1 = function () {};
-        $labels2 = function () {};
+        $labels1 = static function () {};
+        $labels2 = static function () {};
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, $labels1);
         $view2 = $this->factory->createView($list, null, $labels2);
@@ -394,7 +394,7 @@
 
     public function testCreateViewSameIndexClosure()
     {
-        $index = function () {};
+        $index = static function () {};
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, null, $index);
         $view2 = $this->factory->createView($list, null, null, $index);
@@ -406,11 +406,11 @@
 
     public function testCreateViewSameIndexClosureUseCache()
     {
-        $indexCallback = function () {};
+        $indexCallback = static function () {};
         $type = new FormType();
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, null, ChoiceList::fieldName($type, $indexCallback));
-        $view2 = $this->factory->createView($list, null, null, ChoiceList::fieldName($type, function () {}));
+        $view2 = $this->factory->createView($list, null, null, ChoiceList::fieldName($type, static function () {}));
 
         $this->assertSame($view1, $view2);
         $this->assertEquals(new ChoiceListView(), $view1);
@@ -419,8 +419,8 @@
 
     public function testCreateViewDifferentIndexClosure()
     {
-        $index1 = function () {};
-        $index2 = function () {};
+        $index1 = static function () {};
+        $index2 = static function () {};
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, null, $index1);
         $view2 = $this->factory->createView($list, null, null, $index2);
@@ -432,7 +432,7 @@
 
     public function testCreateViewSameGroupByClosure()
     {
-        $groupBy = function () {};
+        $groupBy = static function () {};
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, null, null, $groupBy);
         $view2 = $this->factory->createView($list, null, null, null, $groupBy);
@@ -444,11 +444,11 @@
 
     public function testCreateViewSameGroupByClosureUseCache()
     {
-        $groupByCallback = function () {};
+        $groupByCallback = static function () {};
         $type = new FormType();
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, null, null, ChoiceList::groupBy($type, $groupByCallback));
-        $view2 = $this->factory->createView($list, null, null, null, ChoiceList::groupBy($type, function () {}));
+        $view2 = $this->factory->createView($list, null, null, null, ChoiceList::groupBy($type, static function () {}));
 
         $this->assertSame($view1, $view2);
         $this->assertEquals(new ChoiceListView(), $view1);
@@ -457,8 +457,8 @@
 
     public function testCreateViewDifferentGroupByClosure()
     {
-        $groupBy1 = function () {};
-        $groupBy2 = function () {};
+        $groupBy1 = static function () {};
+        $groupBy2 = static function () {};
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, null, null, $groupBy1);
         $view2 = $this->factory->createView($list, null, null, null, $groupBy2);
@@ -509,7 +509,7 @@
 
     public function testCreateViewSameAttributesClosure()
     {
-        $attr = function () {};
+        $attr = static function () {};
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, null, null, null, $attr);
         $view2 = $this->factory->createView($list, null, null, null, null, $attr);
@@ -521,11 +521,11 @@
 
     public function testCreateViewSameAttributesClosureUseCache()
     {
-        $attrCallback = function () {};
+        $attrCallback = static function () {};
         $type = new FormType();
         $list = new ArrayChoiceList([]);
         $view1 = $this->factory->createView($list, null, null, null, null, ChoiceList::attr($type, $attrCallback));
-        $view2 = $this->factory->createView($list, null, null, null, null, ChoiceList::attr($type, function () {}));
+        $view2 = $this->factory->createView($list, null, null, null, null, ChoiceList::attr($type, static function () {}));
 
         $this->assertSame($view1, $view2);
         $this->assertEquals(new ChoiceListView(), $view1);
@@ -534,8 +534,8 @@
 
     public function testCreateViewDifferentAttributesClosure()
     {
-        $attr1 = function () {};
-        $attr2 = function () {};
+        $attr1 = static function () {};
+        $attr2 = static function () {};
         $list = new ArrayChoiceList([]);
 
         $view1 = $this->factory->createView($list, null, null, null, null, $attr1);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Factory/DefaultChoiceListFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Factory/DefaultChoiceListFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Factory/DefaultChoiceListFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Factory/DefaultChoiceListFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -139,7 +139,7 @@
     {
         $list = $this->factory->createListFromChoices(
             ['A' => $this->obj1, 'B' => $this->obj2, 'C' => $this->obj3, 'D' => $this->obj4],
-            fn ($object) => $object->value
+            static fn ($object) => $object->value
         );
 
         $this->assertObjectListWithCustomValues($list);
@@ -159,9 +159,9 @@
     {
         $list = $this->factory->createListFromChoices(
             new \ArrayIterator([
-                    'Group 1' => ['A' => $this->obj1, 'B' => $this->obj2],
-                    'Group 2' => ['C' => $this->obj3, 'D' => $this->obj4],
-                ])
+                'Group 1' => ['A' => $this->obj1, 'B' => $this->obj2],
+                'Group 2' => ['C' => $this->obj3, 'D' => $this->obj4],
+            ])
         );
 
         $this->assertObjectListWithGeneratedValues($list);
@@ -187,7 +187,7 @@
                 'Group 1' => ['A' => $this->obj1, 'B' => $this->obj2],
                 'Group 2' => ['C' => $this->obj3, 'D' => $this->obj4],
             ],
-            fn ($object) => $object->value
+            static fn ($object) => $object->value
         );
 
         $this->assertObjectListWithCustomValues($list);
@@ -198,7 +198,7 @@
         $list = $this->factory->createListFromChoices(
             ['A' => $this->obj1, 'B' => $this->obj2, 'C' => $this->obj3, 'D' => $this->obj4, 'E' => null, 'F' => null],
             null,
-            fn ($choice) => null !== $choice
+            static fn ($choice) => null !== $choice
         );
 
         $this->assertObjectListWithGeneratedValues($list);
@@ -214,7 +214,7 @@
                 'Group 4' => [/* empty group should be filtered */],
             ],
             null,
-            fn ($choice) => null !== $choice
+            static fn ($choice) => null !== $choice
         );
 
         $this->assertObjectListWithGeneratedValues($list);
@@ -230,7 +230,7 @@
                 'Group 4' => [/* empty group should be filtered */],
             ]),
             null,
-            fn ($choice) => null !== $choice
+            static fn ($choice) => null !== $choice
         );
 
         $this->assertObjectListWithGeneratedValues($list);
@@ -249,7 +249,7 @@
     {
         $loader = new ArrayChoiceLoader();
 
-        $value = function () {};
+        $value = static function () {};
         $list = $this->factory->createListFromLoader($loader, $value);
 
         $this->assertEquals(new LazyChoiceList($loader, $value), $list);
@@ -257,7 +257,7 @@
 
     public function testCreateFromLoaderWithFilter()
     {
-        $filter = function () {};
+        $filter = static function () {};
 
         $list = $this->factory->createListFromLoader(new ArrayChoiceLoader(), null, $filter);
 
@@ -369,7 +369,7 @@
 
         $view = $this->factory->createView(
             $this->list,
-            fn ($object) => $obj2 === $object || $obj3 === $object
+            static fn ($object) => $obj2 === $object || $obj3 === $object
         );
 
         $this->assertFlatView($view);
@@ -379,7 +379,7 @@
     {
         $view = $this->factory->createView(
             $this->list,
-            fn ($object, $key) => 'B' === $key || 'C' === $key
+            static fn ($object, $key) => 'B' === $key || 'C' === $key
         );
 
         $this->assertFlatView($view);
@@ -389,7 +389,7 @@
     {
         $view = $this->factory->createView(
             $this->list,
-            fn ($object, $key, $value) => '1' === $value || '2' === $value
+            static fn ($object, $key, $value) => '1' === $value || '2' === $value
         );
 
         $this->assertFlatView($view);
@@ -411,7 +411,7 @@
         $view = $this->factory->createView(
             $this->list,
             [$this->obj2, $this->obj3],
-            fn ($object) => $object->label
+            static fn ($object) => $object->label
         );
 
         $this->assertFlatView($view);
@@ -422,7 +422,7 @@
         $view = $this->factory->createView(
             $this->list,
             [$this->obj2, $this->obj3],
-            fn ($object, $key) => $key
+            static fn ($object, $key) => $key
         );
 
         $this->assertFlatView($view);
@@ -433,7 +433,7 @@
         $view = $this->factory->createView(
             $this->list,
             [$this->obj2, $this->obj3],
-            function ($object, $key, $value) {
+            static function ($object, $key, $value) {
                 switch ($value) {
                     case '0': return 'A';
                     case '1': return 'B';
@@ -464,7 +464,7 @@
             $this->list,
             [$this->obj2, $this->obj3],
             null, // label
-            fn ($object) => $object->index
+            static fn ($object) => $object->index
         );
 
         $this->assertFlatViewWithCustomIndices($view);
@@ -476,7 +476,7 @@
             $this->list,
             [$this->obj2, $this->obj3],
             null, // label
-            function ($object, $key) {
+            static function ($object, $key) {
                 switch ($key) {
                     case 'A': return 'w';
                     case 'B': return 'x';
@@ -495,7 +495,7 @@
             $this->list,
             [$this->obj2, $this->obj3],
             null, // label
-            function ($object, $key, $value) {
+            static function ($object, $key, $value) {
                 switch ($value) {
                     case '0': return 'w';
                     case '1': return 'x';
@@ -586,7 +586,7 @@
             [$this->obj2, $this->obj3],
             null, // label
             null, // index
-            fn ($object) => $obj1 === $object || $obj2 === $object ? 'Group 1' : 'Group 2'
+            static fn ($object) => $obj1 === $object || $obj2 === $object ? 'Group 1' : 'Group 2'
         );
 
         $this->assertGroupedView($view);
@@ -599,7 +599,7 @@
             [$this->obj2, $this->obj3],
             null, // label
             null, // index
-            fn ($object, $key) => 'A' === $key || 'B' === $key ? 'Group 1' : 'Group 2'
+            static fn ($object, $key) => 'A' === $key || 'B' === $key ? 'Group 1' : 'Group 2'
         );
 
         $this->assertGroupedView($view);
@@ -612,7 +612,7 @@
             [$this->obj2, $this->obj3],
             null, // label
             null, // index
-            fn ($object, $key, $value) => '0' === $value || '1' === $value ? 'Group 1' : 'Group 2'
+            static fn ($object, $key, $value) => '0' === $value || '1' === $value ? 'Group 1' : 'Group 2'
         );
 
         $this->assertGroupedView($view);
@@ -671,7 +671,7 @@
             null, // label
             null, // index
             null, // group
-            fn ($object) => $object->attr
+            static fn ($object) => $object->attr
         );
 
         $this->assertFlatViewWithAttr($view);
@@ -685,7 +685,7 @@
             null, // label
             null, // index
             null, // group
-            fn ($object, $key) => match ($key) {
+            static fn ($object, $key) => match ($key) {
                 'B' => ['attr1' => 'value1'],
                 'C' => ['attr2' => 'value2'],
                 default => [],
@@ -703,7 +703,7 @@
             null, // label
             null, // index
             null, // group
-            fn ($object, $key, $value) => match ($value) {
+            static fn ($object, $key, $value) => match ($value) {
                 '1' => ['attr1' => 'value1'],
                 '2' => ['attr2' => 'value2'],
                 default => [],
@@ -728,7 +728,7 @@
 
     public function testPassTranslatableInterfaceAsLabelDoesntCastItToString()
     {
-        $message = new class() implements TranslatableInterface {
+        $message = new class implements TranslatableInterface {
             public function trans(TranslatorInterface $translator, ?string $locale = null): string
             {
                 return 'my_message';
@@ -800,7 +800,7 @@
             null, // index
             null, // group
             null, // attr
-            fn ($object) => $object->labelTranslationParameters
+            static fn ($object) => $object->labelTranslationParameters
         );
 
         $this->assertFlatViewWithlabelTranslationParameters($view);
@@ -815,7 +815,7 @@
             null, // index
             null, // group
             null, // attr
-            fn ($object, $key) => match ($key) {
+            static fn ($object, $key) => match ($key) {
                 'D' => ['%placeholder1%' => 'value1'],
                 default => [],
             }
@@ -833,7 +833,7 @@
             null, // index
             null, // group
             null, // attr
-            fn ($object, $key, $value) => match ($value) {
+            static fn ($object, $key, $value) => match ($value) {
                 '3' => ['%placeholder1%' => 'value1'],
                 default => [],
             }
@@ -941,7 +941,7 @@
                     'C',
                     ['attr2' => 'value2']
                 ),
-                ]
+            ]
         ), $view);
     }
 
@@ -987,7 +987,7 @@
                     'Group 2',
                     [2 => new ChoiceView($this->obj3, '2', 'C')]
                 ),
-                ]
+            ]
         ), $view);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/LazyChoiceListTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/LazyChoiceListTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/LazyChoiceListTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/LazyChoiceListTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
     {
         $choices = ['RESULT'];
         $calls = 0;
-        $list = new LazyChoiceList(new ArrayChoiceLoader($choices), function ($choice) use ($choices, &$calls) {
+        $list = new LazyChoiceList(new ArrayChoiceLoader($choices), static function ($choice) use ($choices, &$calls) {
             ++$calls;
 
             return array_search($choice, $choices);
@@ -38,7 +38,7 @@
     public function testGetValuesLoadsLoadedListOnFirstCall()
     {
         $calls = 0;
-        $list = new LazyChoiceList(new ArrayChoiceLoader(['RESULT']), function ($choice) use (&$calls) {
+        $list = new LazyChoiceList(new ArrayChoiceLoader(['RESULT']), static function ($choice) use (&$calls) {
             ++$calls;
 
             return $choice;
@@ -52,7 +52,7 @@
     public function testGetStructuredValuesLoadsLoadedListOnFirstCall()
     {
         $calls = 0;
-        $list = new LazyChoiceList(new ArrayChoiceLoader(['RESULT']), function ($choice) use (&$calls) {
+        $list = new LazyChoiceList(new ArrayChoiceLoader(['RESULT']), static function ($choice) use (&$calls) {
             ++$calls;
 
             return $choice;
@@ -71,7 +71,7 @@
             'b' => 'bar',
             'c' => 'baz',
         ];
-        $list = new LazyChoiceList(new ArrayChoiceLoader($choices), function ($choice) use (&$calls) {
+        $list = new LazyChoiceList(new ArrayChoiceLoader($choices), static function ($choice) use (&$calls) {
             ++$calls;
 
             return $choice;
@@ -90,7 +90,7 @@
             'b' => 'bar',
             'c' => 'baz',
         ];
-        $list = new LazyChoiceList(new ArrayChoiceLoader($choices), function ($choice) use ($choices, &$calls) {
+        $list = new LazyChoiceList(new ArrayChoiceLoader($choices), static function ($choice) use ($choices, &$calls) {
             ++$calls;
 
             return array_search($choice, $choices);
@@ -108,7 +108,7 @@
             'b' => 'bar',
             'c' => 'baz',
         ];
-        $list = new LazyChoiceList(new ArrayChoiceLoader($choices), fn ($choice) => array_search($choice, $choices));
+        $list = new LazyChoiceList(new ArrayChoiceLoader($choices), static fn ($choice) => array_search($choice, $choices));
 
         // load choice list
         $list->getChoices();
@@ -124,7 +124,7 @@
             'b' => 'bar',
             'c' => 'baz',
         ];
-        $list = new LazyChoiceList(new ArrayChoiceLoader($choices), fn ($choice) => array_search($choice, $choices));
+        $list = new LazyChoiceList(new ArrayChoiceLoader($choices), static fn ($choice) => array_search($choice, $choices));
 
         // load choice list
         $list->getChoices();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/CallbackChoiceLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/CallbackChoiceLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/CallbackChoiceLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/CallbackChoiceLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,8 +29,8 @@
 
     public static function setUpBeforeClass(): void
     {
-        self::$loader = new CallbackChoiceLoader(fn () => self::$choices);
-        self::$value = fn ($choice) => $choice->value ?? null;
+        self::$loader = new CallbackChoiceLoader(static fn () => self::$choices);
+        self::$value = static fn ($choice) => $choice->value ?? null;
         self::$choices = [
             (object) ['value' => 'choice_one'],
             (object) ['value' => 'choice_two'],
@@ -46,7 +46,7 @@
     public function testLoadChoicesOnlyOnce()
     {
         $calls = 0;
-        $loader = new CallbackChoiceLoader(function () use (&$calls) {
+        $loader = new CallbackChoiceLoader(static function () use (&$calls) {
             ++$calls;
 
             return [1];
@@ -69,11 +69,11 @@
     public function testLoadValuesForChoicesCastsCallbackItemsToString()
     {
         $choices = [
-           (object) ['id' => 2],
-           (object) ['id' => 3],
+            (object) ['id' => 2],
+            (object) ['id' => 3],
         ];
 
-        $value = fn ($item) => $item->id;
+        $value = static fn ($item) => $item->id;
 
         $this->assertSame(['2', '3'], self::$loader->loadValuesForChoices($choices, $value));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/FilterChoiceLoaderDecoratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/FilterChoiceLoaderDecoratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/FilterChoiceLoaderDecoratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/FilterChoiceLoaderDecoratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 {
     public function testLoadChoiceList()
     {
-        $filter = fn ($choice) => 0 === $choice % 2;
+        $filter = static fn ($choice) => 0 === $choice % 2;
 
         $loader = new FilterChoiceLoaderDecorator(new ArrayChoiceLoader(range(1, 4)), $filter);
 
@@ -29,7 +29,7 @@
 
     public function testLoadChoiceListWithGroupedChoices()
     {
-        $filter = fn ($choice) => $choice < 9 && 0 === $choice % 2;
+        $filter = static fn ($choice) => $choice < 9 && 0 === $choice % 2;
 
         $loader = new FilterChoiceLoaderDecorator(new ArrayChoiceLoader(['units' => range(1, 9), 'tens' => range(10, 90, 10)]), $filter);
 
@@ -45,7 +45,7 @@
 
     public function testLoadChoiceListMixedWithGroupedAndNonGroupedChoices()
     {
-        $filter = fn ($choice) => 0 === $choice % 2;
+        $filter = static fn ($choice) => 0 === $choice % 2;
 
         $choices = array_merge(range(1, 9), ['grouped' => range(10, 40, 5)]);
         $loader = new FilterChoiceLoaderDecorator(new ArrayChoiceLoader($choices), $filter);
@@ -68,7 +68,7 @@
     {
         $evenValues = [1 => '2', 3 => '4'];
 
-        $filter = fn ($choice) => 0 === $choice % 2;
+        $filter = static fn ($choice) => 0 === $choice % 2;
 
         $loader = new FilterChoiceLoaderDecorator(new ArrayChoiceLoader([range(1, 4)]), $filter);
 
@@ -80,7 +80,7 @@
         $evenChoices = [1 => 2, 3 => 4];
         $values = array_map('strval', range(1, 4));
 
-        $filter = fn ($choice) => 0 === $choice % 2;
+        $filter = static fn ($choice) => 0 === $choice % 2;
 
         $loader = new FilterChoiceLoaderDecorator(new ArrayChoiceLoader(range(1, 4)), $filter);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/IntlCallbackChoiceLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/IntlCallbackChoiceLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/IntlCallbackChoiceLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ChoiceList/Loader/IntlCallbackChoiceLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,8 +30,8 @@
 
     public static function setUpBeforeClass(): void
     {
-        self::$loader = new IntlCallbackChoiceLoader(fn () => self::$choices);
-        self::$value = fn ($choice) => $choice->value ?? null;
+        self::$loader = new IntlCallbackChoiceLoader(static fn () => self::$choices);
+        self::$value = static fn ($choice) => $choice->value ?? null;
         self::$choices = [
             (object) ['value' => 'choice_one'],
             (object) ['value' => 'choice_two'],
@@ -47,7 +47,7 @@
     public function testLoadChoicesOnlyOnce()
     {
         $calls = 0;
-        $loader = new IntlCallbackChoiceLoader(function () use (&$calls) {
+        $loader = new IntlCallbackChoiceLoader(static function () use (&$calls) {
             ++$calls;
 
             return self::$choices;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Command/DebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Command/DebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Command/DebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Command/DebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,14 +45,15 @@
         $this->assertEquals(0, $ret, 'Returns 0 in case of success');
         $this->assertSame(<<<TXT
 
-Service form types
-------------------
+            Service form types
+            ------------------
 
- * Symfony\Component\Form\Tests\Command\FooType
+             * Symfony\Component\Form\Tests\Command\FooType
 
 
-TXT
-            , $tester->getDisplay(true));
+            TXT,
+            $tester->getDisplay(true)
+        );
     }
 
     public function testDebugSingleFormType()
@@ -93,12 +94,12 @@
     public function testDebugAmbiguousFormType()
     {
         $expectedMessage = <<<TXT
-The type "AmbiguousType" is ambiguous.
+            The type "AmbiguousType" is ambiguous.
 
-Did you mean one of these?
-    Symfony\Component\Form\Tests\Fixtures\Debug\A\AmbiguousType
-    Symfony\Component\Form\Tests\Fixtures\Debug\B\AmbiguousType
-TXT;
+            Did you mean one of these?
+                Symfony\Component\Form\Tests\Fixtures\Debug\A\AmbiguousType
+                Symfony\Component\Form\Tests\Fixtures\Debug\B\AmbiguousType
+            TXT;
 
         $this->expectException(InvalidArgumentException::class);
         $this->expectExceptionMessage($expectedMessage);
@@ -125,16 +126,17 @@
         $output = $tester->getDisplay(true);
         $this->assertStringMatchesFormat(<<<TXT
 
- The type "AmbiguousType" is ambiguous.
+             The type "AmbiguousType" is ambiguous.
 
-Select one of the following form types to display its information: [%A\A\AmbiguousType]:
-  [0] %A\A\AmbiguousType
-  [1] %A\B\AmbiguousType
-%A
-%A\A\AmbiguousType (Block prefix: "ambiguous")
-%A
-TXT
-            , $output);
+            Select one of the following form types to display its information: [%A\A\AmbiguousType]:
+              [0] %A\A\AmbiguousType
+              [1] %A\B\AmbiguousType
+            %A
+            %A\A\AmbiguousType (Block prefix: "ambiguous")
+            %A
+            TXT,
+            $output
+        );
     }
 
     public function testDebugInvalidFormType()
@@ -151,37 +153,37 @@
         $this->assertEquals(0, $ret, 'Returns 0 in case of success');
         $this->assertStringMatchesFormat(<<<'TXT'
 
-Symfony\Component\Form\Tests\Command\FooType (foo)
-==================================================
+            Symfony\Component\Form\Tests\Command\FooType (foo)
+            ==================================================
 
- ---------------- -----------%s
-  Info             "Info"    %s
- ---------------- -----------%s
-  Required         true      %s
- ---------------- -----------%s
-  Default          -         %s
- ---------------- -----------%s
-  Allowed types    [         %s
-                     "string"%s
-                   ]         %s
- ---------------- -----------%s
-  Allowed values   [         %s
-                     "bar",  %s
-                     "baz"   %s
-                   ]         %s
- ---------------- -----------%s
-  Normalizers      [         %s
-                     Closure(%s
-                       class:%s
-                       this: %s
-                       file: %s
-                       line: %s
-                     }       %s
-                   ]         %s
- ---------------- -----------%s
-
-TXT
-            , $tester->getDisplay(true));
+             ---------------- -----------%s
+              Info             "Info"    %s
+             ---------------- -----------%s
+              Required         true      %s
+             ---------------- -----------%s
+              Default          -         %s
+             ---------------- -----------%s
+              Allowed types    [         %s
+                                 "string"%s
+                               ]         %s
+             ---------------- -----------%s
+              Allowed values   [         %s
+                                 "bar",  %s
+                                 "baz"   %s
+                               ]         %s
+             ---------------- -----------%s
+              Normalizers      [         %s
+                                 Closure(%s
+                                   class:%s
+                                   file: %s
+                                   line: %s
+                                 }       %s
+                               ]         %s
+             ---------------- -----------%s
+
+            TXT,
+            $tester->getDisplay(true)
+        );
     }
 
     /**
@@ -265,7 +267,7 @@
         $coreExtension = new CoreExtension();
         $loadTypesRefMethod = (new \ReflectionObject($coreExtension))->getMethod('loadTypes');
         $coreTypes = $loadTypesRefMethod->invoke($coreExtension);
-        $coreTypes = array_map(fn (FormTypeInterface $type) => $type::class, $coreTypes);
+        $coreTypes = array_map(static fn (FormTypeInterface $type) => $type::class, $coreTypes);
         sort($coreTypes);
 
         return $coreTypes;
@@ -289,14 +291,14 @@
         $resolver->setRequired('foo');
         $resolver->setDefined('bar');
         $resolver->setDeprecated('bar', 'vendor/package', '1.1');
-        $resolver->setDefault('empty_data', function (Options $options) {
+        $resolver->setDefault('empty_data', static function (Options $options) {
             $foo = $options['foo'];
 
-            return fn (FormInterface $form) => $form->getConfig()->getCompound() ? [$foo] : $foo;
+            return static fn (FormInterface $form) => $form->getConfig()->getCompound() ? [$foo] : $foo;
         });
         $resolver->setAllowedTypes('foo', 'string');
         $resolver->setAllowedValues('foo', ['bar', 'baz']);
-        $resolver->setNormalizer('foo', fn (Options $options, $value) => (string) $value);
+        $resolver->setNormalizer('foo', static fn (Options $options, $value) => (string) $value);
         $resolver->setInfo('foo', 'Info');
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/CompoundFormTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/CompoundFormTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/CompoundFormTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/CompoundFormTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -406,7 +406,7 @@
         $child = $this->getBuilder('child')
             ->setCompound(true)
             ->setDataMapper(new DataMapper())
-            ->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($form, $childToBeAdded) {
+            ->addEventListener(FormEvents::PRE_SET_DATA, static function (FormEvent $event) use ($form, $childToBeAdded) {
                 $form->remove('removed');
                 $form->add($childToBeAdded);
             })
@@ -476,7 +476,7 @@
         $childToBeRemoved = $this->createForm('removed');
         $childToBeAdded = $this->createForm('added');
         $child = $this->getBuilder('child')
-            ->addEventListener(FormEvents::PRE_SUBMIT, function () use ($form, $childToBeAdded) {
+            ->addEventListener(FormEvents::PRE_SUBMIT, static function () use ($form, $childToBeAdded) {
                 $form->remove('removed');
                 $form->add($childToBeAdded);
             })
@@ -920,8 +920,8 @@
     public function testCreateViewWithChildren()
     {
         $type = $this->createMock(ResolvedFormTypeInterface::class);
-        $type1 = $this->createMock(ResolvedFormTypeInterface::class);
-        $type2 = $this->createMock(ResolvedFormTypeInterface::class);
+        $type1 = $this->createStub(ResolvedFormTypeInterface::class);
+        $type2 = $this->createStub(ResolvedFormTypeInterface::class);
         $options = ['a' => 'Foo', 'b' => 'Bar'];
         $field1 = $this->getBuilder('foo')
             ->setType($type1)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Console/Descriptor/AbstractDescriptorTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Console/Descriptor/AbstractDescriptorTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Console/Descriptor/AbstractDescriptorTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Console/Descriptor/AbstractDescriptorTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -153,7 +153,7 @@
 
     private function getFixtureFilename($name)
     {
-        return sprintf('%s/../../Fixtures/Descriptor/%s.%s', __DIR__, $name, $this->getFormat());
+        return \sprintf('%s/../../Fixtures/Descriptor/%s.%s', __DIR__, $name, $this->getFormat());
     }
 }
 
@@ -164,13 +164,13 @@
         $resolver->setRequired('foo');
         $resolver->setDefined('bar');
         $resolver->setDeprecated('bar', 'vendor/package', '1.1');
-        $resolver->setDefault('empty_data', function (Options $options, $value) {
+        $resolver->setDefault('empty_data', static function (Options $options, $value) {
             $foo = $options['foo'];
 
-            return fn (FormInterface $form) => $form->getConfig()->getCompound() ? [$foo] : $foo;
+            return static fn (FormInterface $form) => $form->getConfig()->getCompound() ? [$foo] : $foo;
         });
         $resolver->setAllowedTypes('foo', 'string');
         $resolver->setAllowedValues('foo', ['bar', 'baz']);
-        $resolver->setNormalizer('foo', fn (Options $options, $value) => (string) $value);
+        $resolver->setNormalizer('foo', static fn (Options $options, $value) => (string) $value);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/DependencyInjection/FormPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/DependencyInjection/FormPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/DependencyInjection/FormPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/DependencyInjection/FormPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -260,6 +260,20 @@
         );
     }
 
+    public function testTypeExtensionClassIsTrackedAsResource()
+    {
+        $container = $this->createContainerBuilder();
+
+        $container->setDefinition('form.extension', $this->createExtensionDefinition());
+        $container->register('my.type_extension', Type1TypeExtension::class)
+            ->addTag('form.type_extension');
+
+        $container->compile();
+
+        $resources = array_map('strval', $container->getResources());
+        $this->assertContains('reflection.'.Type1TypeExtension::class, $resources);
+    }
+
     /**
      * @dataProvider privateTaggedServicesProvider
      */
@@ -282,7 +296,7 @@
                 'my.type',
                 'stdClass',
                 'form.type',
-                function (ContainerBuilder $container) {
+                static function (ContainerBuilder $container) {
                     $formTypes = $container->getDefinition('form.extension')->getArgument(0);
 
                     self::assertInstanceOf(Reference::class, $formTypes);
@@ -300,7 +314,7 @@
                 'my.type_extension',
                 Type1TypeExtension::class,
                 'form.type_extension',
-                function (ContainerBuilder $container) {
+                static function (ContainerBuilder $container) {
                     self::assertEquals(
                         ['Symfony\Component\Form\Extension\Core\Type\FormType' => new IteratorArgument([new Reference('my.type_extension')])],
                         $container->getDefinition('form.extension')->getArgument(1)
@@ -308,7 +322,7 @@
                 },
                 ['extended_type' => 'Symfony\Component\Form\Extension\Core\Type\FormType'],
             ],
-            ['my.guesser', 'stdClass', 'form.type_guesser', function (ContainerBuilder $container) {
+            ['my.guesser', 'stdClass', 'form.type_guesser', static function (ContainerBuilder $container) {
                 self::assertEquals(new IteratorArgument([new Reference('my.guesser')]), $container->getDefinition('form.extension')->getArgument(2));
             }],
         ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataMapper/DataMapperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataMapper/DataMapperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataMapper/DataMapperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataMapper/DataMapperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -413,9 +413,7 @@
             ->getFormFactory()
             ->createBuilder(FormType::class, $person)
             ->add('name', TextType::class, [
-                'getter' => function (DummyPerson $person) {
-                    return $person->myName();
-                },
+                'getter' => static fn (DummyPerson $person) => $person->myName(),
             ])
             ->getForm();
         $form->submit([
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,6 @@
 use Symfony\Component\Form\Extension\Core\DataTransformer\BaseDateTimeTransformer;
 use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer;
 use Symfony\Component\Form\Tests\Extension\Core\DataTransformer\Traits\DateTimeEqualsTrait;
-use Symfony\Component\Intl\Intl;
 use Symfony\Component\Intl\Util\IntlTestHelper;
 
 class DateTimeToLocalizedStringTransformerTest extends BaseDateTimeTransformerTestCase
@@ -36,7 +35,6 @@
         // Normalize intl. configuration settings.
         if (\extension_loaded('intl')) {
             $this->initialTestCaseUseException = ini_set('intl.use_exceptions', 0);
-            $this->initialTestCaseErrorLevel = ini_set('intl.error_level', 0);
         }
 
         // Since we test against "de_AT", we need the full implementation
@@ -55,7 +53,6 @@
 
         if (\extension_loaded('intl')) {
             ini_set('intl.use_exceptions', $this->initialTestCaseUseException);
-            ini_set('intl.error_level', $this->initialTestCaseErrorLevel);
         }
     }
 
@@ -131,7 +128,7 @@
 
         $transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC');
 
-        $this->assertMatchesRegularExpression('/^Feb 3, 2010, 4:05\s+AM$/u', $transformer->transform($this->dateTime));
+        $this->assertSame('Feb 3, 2010, 4:05 AM', $transformer->transform($this->dateTime));
     }
 
     public function testTransformEmpty()
@@ -237,10 +234,6 @@
 
     public function testReverseTransformFromDifferentLocale()
     {
-        if (version_compare(Intl::getIcuVersion(), '71.1', '>')) {
-            $this->markTestSkipped('ICU version 71.1 or lower is required.');
-        }
-
         \Locale::setDefault('en_US');
 
         $transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC');
@@ -346,6 +339,7 @@
 
     /**
      * @requires extension intl
+     * @requires PHP < 8.5
      */
     public function testReverseTransformWrapsIntlErrorsWithErrorLevel()
     {
@@ -378,6 +372,7 @@
 
     /**
      * @requires extension intl
+     * @requires PHP < 8.5
      */
     public function testReverseTransformWrapsIntlErrorsWithExceptionsAndErrorLevel()
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -95,7 +95,7 @@
     public function testReverseTransform()
     {
         // Since we test against "de_AT", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -115,7 +115,7 @@
     public function testReverseTransformWithGrouping()
     {
         // Since we test against "de_DE", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_DE');
 
@@ -210,7 +210,7 @@
     public function testReverseTransformExpectsInteger($number, $locale)
     {
         $this->expectException(TransformationFailedException::class);
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault($locale);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     public function testTransform()
     {
         // Since we test against "de_AT", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -54,6 +54,13 @@
         $transformer->transform('abcd');
     }
 
+    public function testTransformEmptyString()
+    {
+        $transformer = new MoneyToLocalizedStringTransformer(null, null, null, 100);
+
+        $this->assertSame('', $transformer->transform(''));
+    }
+
     public function testTransformEmpty()
     {
         $transformer = new MoneyToLocalizedStringTransformer();
@@ -64,7 +71,7 @@
     public function testReverseTransform()
     {
         // Since we test against "de_AT", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -92,7 +99,7 @@
     public function testFloatToIntConversionMismatchOnReverseTransform()
     {
         $transformer = new MoneyToLocalizedStringTransformer(null, null, null, 100);
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
         \Locale::setDefault('de_AT');
 
         $this->assertSame(3655, (int) $transformer->reverseTransform('36,55'));
@@ -101,7 +108,7 @@
     public function testFloatToIntConversionMismatchOnTransform()
     {
         $transformer = new MoneyToLocalizedStringTransformer(null, null, \NumberFormatter::ROUND_DOWN, 100);
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
         \Locale::setDefault('de_AT');
 
         $this->assertSame('10,20', $transformer->transform(1020));
@@ -113,7 +120,7 @@
         setlocale(\LC_ALL, 'de_AT.UTF-8');
 
         $transformer = new MoneyToLocalizedStringTransformer(4, null, null, 100);
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
         \Locale::setDefault('de_AT');
 
         $this->assertSame('0,0035', $transformer->transform(12 / 34));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,14 +21,12 @@
     private string $defaultLocale;
 
     private $initialTestCaseUseException;
-    private $initialTestCaseErrorLevel;
 
     protected function setUp(): void
     {
         // Normalize intl. configuration settings.
         if (\extension_loaded('intl')) {
             $this->initialTestCaseUseException = ini_set('intl.use_exceptions', 0);
-            $this->initialTestCaseErrorLevel = ini_set('intl.error_level', 0);
         }
 
         $this->defaultLocale = \Locale::getDefault();
@@ -41,7 +39,6 @@
 
         if (\extension_loaded('intl')) {
             ini_set('intl.use_exceptions', $this->initialTestCaseUseException);
-            ini_set('intl.error_level', $this->initialTestCaseErrorLevel);
         }
     }
 
@@ -49,6 +46,7 @@
     {
         return [
             [null, '', 'de_AT'],
+            ['', '', 'de_AT'],
             [1, '1', 'de_AT'],
             [1.5, '1,5', 'de_AT'],
             [1234.5, '1234,5', 'de_AT'],
@@ -64,7 +62,7 @@
     public function testTransform($from, $to, $locale)
     {
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault($locale);
 
@@ -90,7 +88,7 @@
     public function testTransformWithGrouping($from, $to, $locale)
     {
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault($locale);
 
@@ -102,7 +100,7 @@
     public function testTransformWithScale()
     {
         // Since we test against "de_AT", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -207,7 +205,7 @@
     public function testTransformWithRounding($scale, $input, $output, $roundingMode)
     {
         // Since we test against "de_AT", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -219,7 +217,7 @@
     public function testTransformDoesNotRoundIfNoScale()
     {
         // Since we test against "de_AT", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -234,7 +232,7 @@
     public function testReverseTransform($to, $from, $locale)
     {
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault($locale);
 
@@ -264,7 +262,7 @@
     public function testReverseTransformWithGroupingAndFixedSpaces()
     {
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('ru');
 
@@ -276,7 +274,7 @@
     public function testReverseTransformWithGroupingButWithoutGroupSeparator()
     {
         // Since we test against "de_AT", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -441,7 +439,7 @@
     public function testDecimalSeparatorMayBeDotIfGroupingSeparatorIsDotButNoGroupingUsed()
     {
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('fr');
         $transformer = new NumberToLocalizedStringTransformer();
@@ -587,7 +585,7 @@
         $this->expectException(TransformationFailedException::class);
         $this->expectExceptionMessage('The number contains unrecognized characters: "foo8"');
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('ru');
 
@@ -601,7 +599,7 @@
         $this->expectException(TransformationFailedException::class);
         $this->expectExceptionMessage('The number contains unrecognized characters: "foo8"');
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('ru');
 
@@ -624,7 +622,7 @@
         $this->expectException(TransformationFailedException::class);
         $this->expectExceptionMessage('The number contains unrecognized characters: "foo"');
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('ru');
 
@@ -663,6 +661,7 @@
 
     /**
      * @requires extension intl
+     * @requires PHP < 8.5
      */
     public function testReverseTransformWrapsIntlErrorsWithErrorLevel()
     {
@@ -695,6 +694,7 @@
 
     /**
      * @requires extension intl
+     * @requires PHP < 8.5
      */
     public function testReverseTransformWrapsIntlErrorsWithExceptionsAndErrorLevel()
     {
@@ -725,4 +725,20 @@
             [1232.0, '1.232e3'],
         ];
     }
+
+    public function testReverseTransformDoesNotCauseIntegerPrecisionLoss()
+    {
+        if (\PHP_INT_SIZE === 4) {
+            $this->markTestSkipped('Test is not applicable on 32-bit systems where no integer loses precision when cast to float.');
+        }
+
+        $transformer = new NumberToLocalizedStringTransformer(2);
+
+        // Test a large integer that causes actual precision loss when cast to float
+        $largeInt = \PHP_INT_MAX - 1; // This value loses precision when cast to float
+        $result = $transformer->reverseTransform((string) $largeInt);
+
+        $this->assertSame($largeInt, $result);
+        $this->assertIsInt($result);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/PercentToLocalizedStringTransformerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/PercentToLocalizedStringTransformerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/PercentToLocalizedStringTransformerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/PercentToLocalizedStringTransformerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,14 +21,12 @@
     private string $defaultLocale;
 
     private $initialTestCaseUseException;
-    private $initialTestCaseErrorLevel;
 
     protected function setUp(): void
     {
         // Normalize intl. configuration settings.
         if (\extension_loaded('intl')) {
             $this->initialTestCaseUseException = ini_set('intl.use_exceptions', 0);
-            $this->initialTestCaseErrorLevel = ini_set('intl.error_level', 0);
         }
 
         $this->defaultLocale = \Locale::getDefault();
@@ -41,7 +39,6 @@
 
         if (\extension_loaded('intl')) {
             ini_set('intl.use_exceptions', $this->initialTestCaseUseException);
-            ini_set('intl.error_level', $this->initialTestCaseErrorLevel);
         }
     }
 
@@ -75,7 +72,7 @@
     public function testTransformWithScale()
     {
         // Since we test against "de_AT", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -224,7 +221,7 @@
     public function testReverseTransformWithScale()
     {
         // Since we test against "de_AT", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -296,7 +293,7 @@
     public function testDecimalSeparatorMayBeDotIfGroupingSeparatorIsDotButNoGroupingUsed()
     {
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('fr');
         $transformer = new PercentToLocalizedStringTransformer(1, 'integer', \NumberFormatter::ROUND_HALFUP);
@@ -375,7 +372,7 @@
         $this->expectException(TransformationFailedException::class);
         $this->expectExceptionMessage('The number contains unrecognized characters: "foo8"');
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('ru');
 
@@ -401,7 +398,7 @@
         $this->expectException(TransformationFailedException::class);
         $this->expectExceptionMessage('The number contains unrecognized characters: "foo"');
         // Since we test against other locales, we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('ru');
 
@@ -415,7 +412,7 @@
         $transformer = new PercentToLocalizedStringTransformer(null, null, \NumberFormatter::ROUND_HALFUP, true);
 
         // Since we test against "de_CH", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_CH');
 
@@ -429,7 +426,7 @@
         $transformer = new PercentToLocalizedStringTransformer(null, 'integer', \NumberFormatter::ROUND_HALFUP, true);
 
         // Since we test against "de_CH", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_CH');
 
@@ -440,7 +437,7 @@
     public function testTransformForHtml5FormatWithScale()
     {
         // Since we test against "de_CH", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_CH');
 
@@ -452,7 +449,7 @@
     public function testReverseTransformForHtml5Format()
     {
         // Since we test against "de_CH", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_CH');
 
@@ -466,7 +463,7 @@
     public function testReverseTransformForHtml5FormatWithInteger()
     {
         // Since we test against "de_CH", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_CH');
 
@@ -481,7 +478,7 @@
     public function testReverseTransformForHtml5FormatWithScale()
     {
         // Since we test against "de_CH", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_CH');
 
@@ -492,6 +489,7 @@
 
     /**
      * @requires extension intl
+     * @requires PHP < 8.5
      */
     public function testReverseTransformWrapsIntlErrorsWithErrorLevel()
     {
@@ -524,6 +522,7 @@
 
     /**
      * @requires extension intl
+     * @requires PHP < 8.5
      */
     public function testReverseTransformWrapsIntlErrorsWithExceptionsAndErrorLevel()
     {
@@ -546,7 +545,7 @@
     protected function getNumberFormatter(): \NumberFormatter
     {
         $formatter = new \NumberFormatter(\Locale::getDefault(), \NumberFormatter::DECIMAL);
-        $formatter->setAttribute(\NumberFormatter::GROUPING_USED, false);
+        $formatter->setAttribute(\NumberFormatter::GROUPING_USED, 0);
 
         return $formatter;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -281,7 +281,7 @@
             $this->form->get($child)->submit($dat);
         }
         $event = new FormEvent($this->form, $data);
-        $callback = fn ($data) => null === $data['name'];
+        $callback = static fn ($data) => null === $data['name'];
         $listener = new ResizeFormListener('text', [], false, true, $callback);
         $listener->onSubmit($event);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/BaseTypeTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/BaseTypeTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/BaseTypeTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/BaseTypeTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Form\Tests\Extension\Core\Type;
 
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Form\Test\TypeTestCase;
 
 /**
@@ -20,6 +21,13 @@
 {
     public const TESTED_TYPE = '';
 
+    protected function setUp(): void
+    {
+        $this->dispatcher = new EventDispatcher();
+
+        parent::setUp();
+    }
+
     public function testPassDisabledAsOption()
     {
         $form = $this->factory->create($this->getTestedType(), null, array_merge($this->getTestOptions(), ['disabled' => true]));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CheckboxTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CheckboxTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CheckboxTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CheckboxTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -146,8 +146,8 @@
     {
         // present a binary status field as a checkbox
         $transformer = new CallbackTransformer(
-            fn ($value) => 'checked' == $value,
-            fn ($value) => $value ? 'checked' : 'unchecked'
+            static fn ($value) => 'checked' == $value,
+            static fn ($value) => $value ? 'checked' : 'unchecked'
         );
 
         $form = $this->factory->createBuilder(static::TESTED_TYPE)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypePerformanceTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypePerformanceTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypePerformanceTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypePerformanceTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         $choices = range(1, 300);
 
         for ($i = 0; $i < 100; ++$i) {
-            $this->factory->create('Symfony\Component\Form\Extension\Core\Type\ChoiceType', mt_rand(1, 400), [
+            $this->factory->create('Symfony\Component\Form\Extension\Core\Type\ChoiceType', random_int(1, 400), [
                 'choices' => $choices,
             ]);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -536,7 +536,7 @@
             'choices' => [
                 'Empty' => 'EMPTY_CHOICE',
             ],
-            'choice_value' => fn () => '',
+            'choice_value' => static fn () => '',
         ]);
 
         $form->submit('');
@@ -1895,8 +1895,8 @@
     {
         $this->assertInstanceOf(
             FormInterface::class, $this->factory->createNamed('name', static::TESTED_TYPE, null, [
-            'choices' => [],
-        ]));
+                'choices' => [],
+            ]));
     }
 
     public function testInitializeWithDefaultObjectChoice()
@@ -2215,7 +2215,7 @@
     {
         $form = $this->factory->create(static::TESTED_TYPE, null, [
             'choices' => $this->choices,
-            'choice_filter' => fn ($choice) => \in_array($choice, range('a', 'c'), true),
+            'choice_filter' => static fn ($choice) => \in_array($choice, range('a', 'c'), true),
         ]);
 
         $this->assertEquals([
@@ -2229,7 +2229,7 @@
     {
         $form = $this->factory->create(static::TESTED_TYPE, null, [
             'choices' => $this->groupedChoices,
-            'choice_filter' => fn ($choice) => \in_array($choice, range('a', 'c'), true),
+            'choice_filter' => static fn ($choice) => \in_array($choice, range('a', 'c'), true),
         ]);
 
         $this->assertEquals(['Symfony' => new ChoiceGroupView('Symfony', [
@@ -2243,7 +2243,7 @@
     {
         $form = $this->factory->create(static::TESTED_TYPE, null, [
             'choice_loader' => new CallbackChoiceLoader(fn () => $this->choices),
-            'choice_filter' => fn ($choice) => \in_array($choice, range('a', 'c'), true),
+            'choice_filter' => static fn ($choice) => \in_array($choice, range('a', 'c'), true),
         ]);
 
         $this->assertEquals([
@@ -2255,7 +2255,7 @@
 
     public function testWithSameLoaderAndDifferentChoiceValueCallbacks()
     {
-        $choiceLoader = new CallbackChoiceLoader(fn () => [1, 2, 3]);
+        $choiceLoader = new CallbackChoiceLoader(static fn () => [1, 2, 3]);
 
         $view = $this->factory->create(FormTypeTest::TESTED_TYPE)
             ->add('choice_one', self::TESTED_TYPE, [
@@ -2263,7 +2263,7 @@
             ])
             ->add('choice_two', self::TESTED_TYPE, [
                 'choice_loader' => $choiceLoader,
-                'choice_value' => fn ($choice) => $choice ? (string) $choice * 10 : '',
+                'choice_value' => static fn ($choice) => $choice ? (string) $choice * 10 : '',
             ])
             ->createView()
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypeTranslationTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypeTranslationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypeTranslationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypeTranslationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Form\Tests\Extension\Core\Type;
 
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Form\Extension\Core\CoreExtension;
 use Symfony\Component\Form\Test\TypeTestCase;
 use Symfony\Contracts\Translation\TranslatorInterface;
@@ -27,11 +28,18 @@
         'Roman' => 'e',
     ];
 
+    protected function setUp(): void
+    {
+        $this->dispatcher = new EventDispatcher();
+
+        parent::setUp();
+    }
+
     protected function getExtensions()
     {
-        $translator = $this->createMock(TranslatorInterface::class);
-        $translator->expects($this->any())->method('trans')
-            ->willReturnCallback(fn ($key, $params) => strtr(sprintf('Translation of: %s', $key), $params)
+        $translator = $this->createStub(TranslatorInterface::class);
+        $translator->method('trans')
+            ->willReturnCallback(static fn ($key, $params) => strtr(\sprintf('Translation of: %s', $key), $params)
             );
 
         return array_merge(parent::getExtensions(), [new CoreExtension(null, null, $translator)]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CollectionTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CollectionTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CollectionTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CollectionTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -120,7 +120,7 @@
         $form = $this->factory->create(static::TESTED_TYPE, null, [
             'entry_type' => AuthorType::class,
             'allow_delete' => true,
-            'delete_empty' => fn (?Author $obj = null) => null === $obj || empty($obj->firstName),
+            'delete_empty' => static fn (?Author $obj = null) => null === $obj || empty($obj->firstName),
         ]);
 
         $form->setData([new Author('Bob'), new Author('Alice')]);
@@ -141,7 +141,7 @@
             'entry_options' => ['data_class' => null],
             'allow_add' => true,
             'allow_delete' => true,
-            'delete_empty' => fn ($author) => empty($author['firstName']),
+            'delete_empty' => static fn ($author) => empty($author['firstName']),
         ]);
         $form->setData([['firstName' => 'first', 'lastName' => 'last']]);
         $form->submit([
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CountryTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CountryTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CountryTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CountryTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 
     protected function setUp(): void
     {
-        IntlTestHelper::requireIntl($this, false);
+        IntlTestHelper::requireIntl($this);
 
         parent::setUp();
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CurrencyTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CurrencyTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CurrencyTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/CurrencyTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 
     protected function setUp(): void
     {
-        IntlTestHelper::requireIntl($this, false);
+        IntlTestHelper::requireIntl($this);
 
         parent::setUp();
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -93,7 +93,7 @@
     public function testSubmitFromSingleTextDateTime()
     {
         // we test against "de_DE", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         if (\in_array(Intl::getIcuVersion(), ['71.1', '72.1'], true)) {
             $this->markTestSkipped('Skipping test due to a bug in ICU 71.1/72.1.');
@@ -119,7 +119,7 @@
     public function testSubmitFromSingleTextDateTimeImmutable()
     {
         // we test against "de_DE", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         if (\in_array(Intl::getIcuVersion(), ['71.1', '72.1'], true)) {
             $this->markTestSkipped('Skipping test due to a bug in ICU 71.1/72.1.');
@@ -146,7 +146,7 @@
     public function testSubmitFromSingleTextString()
     {
         // we test against "de_DE", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         if (\in_array(Intl::getIcuVersion(), ['71.1', '72.1'], true)) {
             $this->markTestSkipped('Skipping test due to a bug in ICU 71.1/72.1.');
@@ -172,7 +172,7 @@
     public function testSubmitFromSingleTextTimestamp()
     {
         // we test against "de_DE", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         if (\in_array(Intl::getIcuVersion(), ['71.1', '72.1'], true)) {
             $this->markTestSkipped('Skipping test due to a bug in ICU 71.1/72.1.');
@@ -200,7 +200,7 @@
     public function testSubmitFromSingleTextRaw()
     {
         // we test against "de_DE", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         if (\in_array(Intl::getIcuVersion(), ['71.1', '72.1'], true)) {
             $this->markTestSkipped('Skipping test due to a bug in ICU 71.1/72.1.');
@@ -232,7 +232,7 @@
     public function testArrayDateWithReferenceDoesUseReferenceTimeOnZero()
     {
         // we test against "de_DE", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_DE');
 
@@ -505,7 +505,7 @@
     public function testSetDataWithNegativeTimezoneOffsetStringInput()
     {
         // we test against "de_DE", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_DE');
 
@@ -528,7 +528,7 @@
     public function testSetDataWithNegativeTimezoneOffsetDateTimeInput()
     {
         // we test against "de_DE", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_DE');
 
@@ -607,7 +607,7 @@
     public function testMonthsOptionLongFormat()
     {
         // we test against "de_AT", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -627,7 +627,7 @@
     public function testMonthsOptionLongFormatWithDifferentTimezone()
     {
         // we test against "de_AT", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -713,7 +713,7 @@
     public function testPassDatePatternToView()
     {
         // we test against "de_AT", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -726,7 +726,7 @@
     public function testPassDatePatternToViewDifferentFormat()
     {
         // we test against "de_AT", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_AT');
 
@@ -774,7 +774,7 @@
     public function testDatePatternFormatWithQuotedStrings()
     {
         // we test against "es_ES", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('es_ES');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/EnumTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/EnumTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/EnumTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/EnumTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,8 @@
 
 namespace Extension\Core\Type;
 
+use Symfony\Component\Form\ChoiceList\View\ChoiceGroupView;
+use Symfony\Component\Form\ChoiceList\View\ChoiceView;
 use Symfony\Component\Form\Extension\Core\Type\EnumType;
 use Symfony\Component\Form\Tests\Extension\Core\Type\BaseTypeTestCase;
 use Symfony\Component\Form\Tests\Fixtures\Answer;
@@ -274,6 +276,152 @@
         $this->assertEquals('Left', $view->children[0]->vars['label']->trans(new IdentityTranslator()));
     }
 
+    public function testChoices()
+    {
+        $form = $this->factory->create($this->getTestedType(), null, [
+            'multiple' => false,
+            'expanded' => true,
+            'class' => Answer::class,
+            'choices' => [
+                Answer::Yes,
+                Answer::No,
+            ],
+        ]);
+
+        $view = $form->createView();
+
+        $this->assertCount(2, $view->children);
+        $this->assertSame('Yes', $view->children[0]->vars['label']);
+        $this->assertSame('No', $view->children[1]->vars['label']);
+    }
+
+    public function testChoicesWithLabels()
+    {
+        $form = $this->factory->create($this->getTestedType(), null, [
+            'multiple' => false,
+            'expanded' => true,
+            'class' => Answer::class,
+            'choices' => [
+                'yes' => Answer::Yes,
+                'no' => Answer::No,
+            ],
+        ]);
+
+        $view = $form->createView();
+
+        $this->assertSame('yes', $view->children[0]->vars['label']);
+        $this->assertSame('no', $view->children[1]->vars['label']);
+    }
+
+    public function testGroupedEnumChoices()
+    {
+        $form = $this->factory->create($this->getTestedType(), null, [
+            'multiple' => false,
+            'expanded' => true,
+            'class' => Answer::class,
+            'choices' => [
+                'Group 1' => [Answer::Yes, Answer::No],
+                'Group 2' => [Answer::FourtyTwo],
+            ],
+        ]);
+        $view = $form->createView();
+        $this->assertCount(2, $view->vars['choices']['Group 1']->choices);
+        $this->assertSame('Yes', $view->vars['choices']['Group 1']->choices[0]->label);
+        $this->assertSame('No', $view->vars['choices']['Group 1']->choices[1]->label);
+        $this->assertCount(1, $view->vars['choices']['Group 2']->choices);
+        $this->assertSame('FourtyTwo', $view->vars['choices']['Group 2']->choices[2]->label);
+    }
+
+    public function testGroupedEnumChoicesWithCustomLabels()
+    {
+        $form = $this->factory->create($this->getTestedType(), null, [
+            'multiple' => false,
+            'expanded' => true,
+            'class' => Answer::class,
+            'choices' => [
+                'Group 1' => [
+                    'Custom Yes' => Answer::Yes,
+                    'Custom No' => Answer::No,
+                ],
+                'Group 2' => [
+                    'Custom 42' => Answer::FourtyTwo,
+                ],
+            ],
+        ]);
+        $view = $form->createView();
+
+        // Test Group 1
+        $this->assertCount(2, $view->vars['choices']['Group 1']->choices);
+        $this->assertSame('Custom Yes', $view->vars['choices']['Group 1']->choices[0]->label);
+        $this->assertSame('Custom No', $view->vars['choices']['Group 1']->choices[1]->label);
+
+        // Test Group 2
+        $this->assertCount(1, $view->vars['choices']['Group 2']->choices);
+        $this->assertSame('Custom 42', $view->vars['choices']['Group 2']->choices[2]->label);
+    }
+
+    public function testMixedGroupedAndSingleChoices()
+    {
+        $form = $this->factory->create($this->getTestedType(), null, [
+            'multiple' => false,
+            'expanded' => true,
+            'class' => Answer::class,
+            'choices' => [
+                'Group 1' => [Answer::Yes, Answer::No],
+                'Custom 42' => Answer::FourtyTwo,
+            ],
+        ]);
+        $view = $form->createView();
+
+        // Group 1 (simple list) → enum names
+        $this->assertInstanceOf(ChoiceGroupView::class, $view->vars['choices']['Group 1']);
+        $this->assertCount(2, $view->vars['choices']['Group 1']->choices);
+        $this->assertSame('Yes', $view->vars['choices']['Group 1']->choices[0]->label);
+        $this->assertSame('No', $view->vars['choices']['Group 1']->choices[1]->label);
+
+        // Single custom → custom label (treated as flat choice)
+        $customChoice = $view->vars['choices'][2];
+        $this->assertInstanceOf(ChoiceView::class, $customChoice);
+        $this->assertSame('Custom 42', $customChoice->label);
+    }
+
+    public function testMixedLabeledAndUnlabeledChoices()
+    {
+        $form = $this->factory->create($this->getTestedType(), null, [
+            'multiple' => false,
+            'expanded' => true,
+            'class' => Answer::class,
+            'choices' => [
+                Answer::Yes,
+                Answer::No,
+                'Custom 42' => Answer::FourtyTwo,
+            ],
+        ]);
+        $view = $form->createView();
+        // Assertions: names for unlabeled, custom for labeled
+        $children = array_values($view->children); // Numeric access
+        $this->assertSame('Yes', $children[0]->vars['label']);
+        $this->assertSame('No', $children[1]->vars['label']);
+        $this->assertSame('Custom 42', $children[2]->vars['label']);
+    }
+
+    public function testEnumChoicesWithNumericCustomLabels()
+    {
+        $form = $this->factory->create($this->getTestedType(), null, [
+            'multiple' => false,
+            'expanded' => true,
+            'class' => Answer::class,
+            'choice_label' => null, // Explicitly override to use keys as labels for numeric customs
+            'choices' => [
+                '34' => Answer::Yes,
+                '2' => Answer::No,
+            ],
+        ]);
+        $view = $form->createView();
+        $this->assertSame('34', $view->children[0]->vars['label']);
+        $this->assertSame('2', $view->children[1]->vars['label']);
+    }
+
     protected function getTestOptions(): array
     {
         return ['class' => Suit::class];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -156,24 +156,24 @@
     {
         $this->assertInstanceOf(
             FormBuilderInterface::class, $this->factory->createBuilder(static::TESTED_TYPE, null, [
-            'data_class' => null,
-        ]));
+                'data_class' => null,
+            ]));
     }
 
     public function testDataClassMayBeAbstractClass()
     {
         $this->assertInstanceOf(
             FormBuilderInterface::class, $this->factory->createBuilder(static::TESTED_TYPE, null, [
-            'data_class' => 'Symfony\Component\Form\Tests\Fixtures\AbstractAuthor',
-        ]));
+                'data_class' => 'Symfony\Component\Form\Tests\Fixtures\AbstractAuthor',
+            ]));
     }
 
     public function testDataClassMayBeInterface()
     {
         $this->assertInstanceOf(
             FormBuilderInterface::class, $this->factory->createBuilder(static::TESTED_TYPE, null, [
-            'data_class' => 'Symfony\Component\Form\Tests\Fixtures\AuthorInterface',
-        ]));
+                'data_class' => 'Symfony\Component\Form\Tests\Fixtures\AuthorInterface',
+            ]));
     }
 
     public function testDataClassMustBeValidClassOrInterface()
@@ -402,7 +402,7 @@
             // referenceCopy has a getter that returns a copy
             'referenceCopy' => [
                 'firstName' => 'Foo',
-        ],
+            ],
         ]);
 
         $this->assertEquals('Foo', $author->getReferenceCopy()->firstName);
@@ -438,8 +438,8 @@
         $builder = $this->factory->createBuilder(static::TESTED_TYPE, $author);
         $builder->add('referenceCopy', static::TESTED_TYPE);
         $builder->get('referenceCopy')->addViewTransformer(new CallbackTransformer(
-            function () {},
-            fn ($value) => // reverseTransform
+            static function () {},
+            static fn ($value) => // reverseTransform
 'foobar'
         ));
         $form = $builder->getForm();
@@ -462,8 +462,8 @@
         $builder->setData($author);
         $builder->add('referenceCopy', static::TESTED_TYPE);
         $builder->get('referenceCopy')->addViewTransformer(new CallbackTransformer(
-            function () {},
-            fn ($value) => // reverseTransform
+            static function () {},
+            static fn ($value) => // reverseTransform
 $ref2
         ));
         $form = $builder->getForm();
@@ -680,8 +680,8 @@
     public function testPassZeroLabelToView()
     {
         $view = $this->factory->create(static::TESTED_TYPE, null, [
-                'label' => '0',
-            ])
+            'label' => '0',
+        ])
             ->createView();
 
         $this->assertSame('0', $view->vars['label']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/IntegerTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/IntegerTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/IntegerTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/IntegerTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
 
     protected function setUp(): void
     {
-        IntlTestHelper::requireIntl($this, false);
+        IntlTestHelper::requireIntl($this);
         $this->previousLocale = \Locale::getDefault();
         parent::setUp();
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/LanguageTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/LanguageTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/LanguageTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/LanguageTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
 
     protected function setUp(): void
     {
-        IntlTestHelper::requireIntl($this, false);
+        IntlTestHelper::requireIntl($this);
 
         parent::setUp();
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/LocaleTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/LocaleTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/LocaleTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/LocaleTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 
     protected function setUp(): void
     {
-        IntlTestHelper::requireIntl($this, false);
+        IntlTestHelper::requireIntl($this);
 
         parent::setUp();
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/MoneyTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/MoneyTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/MoneyTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/MoneyTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,7 @@
     {
         // we test against different locales, so we need the full
         // implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         parent::setUp();
 
@@ -113,7 +113,7 @@
     public function testHtml5EnablesSpecificFormatting()
     {
         // Since we test against "de_CH", we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('de_CH');
 
@@ -123,4 +123,44 @@
         $this->assertSame('12345.60', $form->createView()->vars['value']);
         $this->assertSame('number', $form->createView()->vars['type']);
     }
+
+    public function testHtml5AddsStepAttributeIfNotSet()
+    {
+        $form = $this->factory->create(static::TESTED_TYPE, null, [
+            'html5' => true,
+        ]);
+        $view = $form->createView();
+        $this->assertSame('any', $view->vars['attr']['step']);
+
+        $form = $this->factory->create(static::TESTED_TYPE, null, [
+            'html5' => false,
+            'scale' => 2,
+        ]);
+        $view = $form->createView();
+        $this->assertSame('decimal', $view->vars['attr']['inputmode']);
+
+        $form = $this->factory->create(static::TESTED_TYPE, null, [
+            'html5' => false,
+            'scale' => 0,
+        ]);
+        $view = $form->createView();
+        $this->assertSame('numeric', $view->vars['attr']['inputmode']);
+    }
+
+    public function testHtml5DoesNotOverrideUserProvidedStep()
+    {
+        $form = $this->factory->create(static::TESTED_TYPE, null, [
+            'html5' => true,
+            'attr' => ['step' => '0.01'],
+        ]);
+        $view = $form->createView();
+        $this->assertSame('0.01', $view->vars['attr']['step']);
+
+        $form = $this->factory->create(static::TESTED_TYPE, null, [
+            'html5' => false,
+            'scale' => 2,
+        ]);
+        $view = $form->createView();
+        $this->assertSame('decimal', $view->vars['attr']['inputmode']);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/NumberTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/NumberTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/NumberTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/NumberTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
         parent::setUp();
 
         // we test against "de_DE", so we need the full implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         $this->defaultLocale = \Locale::getDefault();
         \Locale::setDefault('de_DE');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/PercentTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/PercentTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/PercentTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/PercentTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Form\Tests\Extension\Core\Type;
 
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Form\Extension\Core\Type\PercentType;
 use Symfony\Component\Form\Test\TypeTestCase;
 use Symfony\Component\Intl\Util\IntlTestHelper;
@@ -23,9 +24,11 @@
 
     protected function setUp(): void
     {
+        $this->dispatcher = new EventDispatcher();
+
         // we test against different locales, so we need the full
         // implementation
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         parent::setUp();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/RepeatedTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/RepeatedTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/RepeatedTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/RepeatedTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -198,7 +198,7 @@
             'type' => TextType::class,
             'options' => [
                 'empty_data' => $emptyData,
-            ]
+            ],
         ]);
         $form->submit($submittedData);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/TextareaTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/TextareaTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/TextareaTypeTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/TextareaTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,119 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Form\Tests\Extension\Core\Type;
+
+use Symfony\Component\Form\CallbackTransformer;
+use Symfony\Component\Form\Extension\Core\Type\TextareaType;
+
+class TextareaTypeTest extends BaseTypeTestCase
+{
+    public const TESTED_TYPE = TextareaType::class;
+
+    public function testSubmitNull($expected = null, $norm = null, $view = null)
+    {
+        parent::testSubmitNull($expected, $norm, '');
+    }
+
+    public function testSubmitNormalizeCrlf()
+    {
+        $form = $this->factory->create(static::TESTED_TYPE);
+        $form->submit("Line 1\r\nLine 2\r\nLine 3");
+
+        $this->assertSame("Line 1\nLine 2\nLine 3", $form->getData());
+    }
+
+    public function testSubmitNormalizeCr()
+    {
+        $form = $this->factory->create(static::TESTED_TYPE);
+        $form->submit("Line 1\rLine 2\rLine 3");
+
+        $this->assertSame("Line 1\nLine 2\nLine 3", $form->getData());
+    }
+
+    public function testSubmitNormalizeMixedNewlines()
+    {
+        $form = $this->factory->create(static::TESTED_TYPE);
+        $form->submit("Line 1\r\nLine 2\rLine 3\nLine 4");
+
+        $this->assertSame("Line 1\nLine 2\nLine 3\nLine 4", $form->getData());
+    }
+
+    public function testSubmitPreserveLf()
+    {
+        $form = $this->factory->create(static::TESTED_TYPE);
+        $form->submit("Line 1\nLine 2\nLine 3");
+
+        $this->assertSame("Line 1\nLine 2\nLine 3", $form->getData());
+    }
+
+    public function testSubmitSingleLine()
+    {
+        $form = $this->factory->create(static::TESTED_TYPE);
+        $form->submit('Single line text');
+
+        $this->assertSame('Single line text', $form->getData());
+    }
+
+    public function testBuildViewDoesNotHavePattern()
+    {
+        $form = $this->factory->create(static::TESTED_TYPE);
+        $view = $form->createView();
+
+        $this->assertNull($view->vars['pattern']);
+        $this->assertArrayNotHasKey('pattern', $view->vars['attr']);
+    }
+
+    public function testWithTrimDisabled()
+    {
+        $form = $this->factory->create(static::TESTED_TYPE, null, ['trim' => false]);
+        $form->submit("  Line 1\r\nLine 2  ");
+
+        $this->assertSame("  Line 1\nLine 2  ", $form->getData());
+    }
+
+    public function testWithTrimEnabled()
+    {
+        $form = $this->factory->create(static::TESTED_TYPE, null, ['trim' => true]);
+        $form->submit("  Line 1\r\nLine 2  ");
+
+        $this->assertSame("Line 1\nLine 2", $form->getData());
+    }
+
+    public function testCustomViewTransformerTakesPrecedence()
+    {
+        $form = $this->factory->createBuilder(static::TESTED_TYPE)
+            ->addViewTransformer(new CallbackTransformer(
+                static function (?string $value) {
+                    if (null === $value) {
+                        return null;
+                    }
+
+                    return str_replace(';', "\r\n", $value);
+                },
+                static function (?string $value) {
+                    if (null === $value) {
+                        return null;
+                    }
+
+                    return str_replace("\r\n", ';', $value);
+                }
+            ))
+            ->getForm();
+        $form->setData('foo;bar');
+
+        $this->assertSame("foo\r\nbar", $form->getViewData());
+
+        $form->submit("bar\r\nbaz");
+
+        $this->assertSame('bar;baz', $form->getData());
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/TimezoneTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/TimezoneTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/TimezoneTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Core/Type/TimezoneTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -143,7 +143,7 @@
 
     public function testTimezonesAreSelectableWithIntl()
     {
-        IntlTestHelper::requireIntl($this, false);
+        IntlTestHelper::requireIntl($this);
 
         $choices = $this->factory->create(static::TESTED_TYPE, null, ['intl' => true])
             ->createView()->vars['choices'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Csrf/Type/FormTypeCsrfExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Csrf/Type/FormTypeCsrfExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Csrf/Type/FormTypeCsrfExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Csrf/Type/FormTypeCsrfExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Form\Tests\Extension\Csrf\Type;
 
 use PHPUnit\Framework\MockObject\MockObject;
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Form\AbstractType;
 use Symfony\Component\Form\Extension\Csrf\CsrfExtension;
 use Symfony\Component\Form\FormBuilderInterface;
@@ -38,6 +39,7 @@
     protected function setUp(): void
     {
         $this->tokenManager = $this->createMock(CsrfTokenManagerInterface::class);
+        $this->dispatcher = new EventDispatcher();
 
         parent::setUp();
     }
@@ -51,6 +53,11 @@
 
     public function testCsrfProtectionByDefaultIfRootAndCompound()
     {
+        $this->tokenManager->expects($this->once())
+            ->method('getToken')
+            ->with('form')
+            ->willReturn(new CsrfToken('TOKEN_ID', 'token'));
+
         $view = $this->factory
             ->create('Symfony\Component\Form\Extension\Core\Type\FormType', null, [
                 'csrf_field_name' => 'csrf',
@@ -59,15 +66,23 @@
             ->createView();
 
         $this->assertArrayHasKey('csrf', $view);
+        $this->assertSame('token', $view['csrf']->vars['value']);
     }
 
     public function testNoCsrfProtectionByDefaultIfCompoundButNotRoot()
     {
+        $this->tokenManager->expects($this->once())
+            ->method('getToken')
+            ->with('root_token_id');
+
         $view = $this->factory
-            ->createNamedBuilder('root', 'Symfony\Component\Form\Extension\Core\Type\FormType')
+            ->createNamedBuilder('root', 'Symfony\Component\Form\Extension\Core\Type\FormType', null, [
+                'csrf_token_id' => 'root_token_id',
+            ])
             ->add($this->factory
                 ->createNamedBuilder('form', 'Symfony\Component\Form\Extension\Core\Type\FormType', null, [
                     'csrf_field_name' => 'csrf',
+                    'csrf_token_id' => 'child_token_id',
                     'compound' => true,
                 ])
             )
@@ -80,6 +95,10 @@
 
     public function testNoCsrfProtectionByDefaultIfRootButNotCompound()
     {
+        $this->tokenManager
+            ->expects($this->never())
+            ->method('getToken');
+
         $view = $this->factory
             ->create('Symfony\Component\Form\Extension\Core\Type\FormType', null, [
                 'csrf_field_name' => 'csrf',
@@ -92,6 +111,10 @@
 
     public function testCsrfProtectionCanBeDisabled()
     {
+        $this->tokenManager
+            ->expects($this->never())
+            ->method('getToken');
+
         $view = $this->factory
             ->create('Symfony\Component\Form\Extension\Core\Type\FormType', null, [
                 'csrf_field_name' => 'csrf',
@@ -331,6 +354,11 @@
 
     public function testNoCsrfProtectionOnPrototype()
     {
+        $this->tokenManager
+            ->expects($this->once())
+            ->method('getToken')
+            ->with('collection');
+
         $prototypeView = $this->factory
             ->create('Symfony\Component\Form\Extension\Core\Type\CollectionType', null, [
                 'entry_type' => __CLASS__.'_ChildType',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/DataCollector/FormDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/DataCollector/FormDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/DataCollector/FormDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/DataCollector/FormDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -71,7 +71,7 @@
             ],
             'errors' => [],
             'children' => [],
-         ];
+        ];
 
         $formData = [
             'id' => 'name',
@@ -87,11 +87,11 @@
                 'norm' => null,
             ],
             'errors' => [],
-             'has_children_error' => false,
-             'children' => [
-                 'child' => $childFormData,
-             ],
-         ];
+            'has_children_error' => false,
+            'children' => [
+                'child' => $childFormData,
+            ],
+        ];
 
         $this->assertEquals([
             'forms' => [
@@ -102,7 +102,7 @@
                 spl_object_hash($this->childForm) => $childFormData,
             ],
             'nb_errors' => 0,
-         ], $this->dataCollector->getData());
+        ], $this->dataCollector->getData());
     }
 
     public function testBuildMultiplePreliminaryFormTrees()
@@ -312,7 +312,7 @@
         $form1View = new FormView();
         $form2View = new FormView();
         $child1View = new FormView();
-        $child1View->vars['is_selected'] = fn ($choice, array $values) => \in_array($choice, $values, true);
+        $child1View->vars['is_selected'] = static fn ($choice, array $values) => \in_array($choice, $values, true);
 
         $form1->add($child1);
         $form2->add($child1);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/DataCollector/FormDataExtractorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/DataCollector/FormDataExtractorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/DataCollector/FormDataExtractorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/DataCollector/FormDataExtractorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -362,8 +362,7 @@
                 ]
                 EODUMP;
         }
-        $this->assertDumpMatchesFormat($expectedFormat
-            ,
+        $this->assertDumpMatchesFormat($expectedFormat,
             $this->dataExtractor->extractSubmittedData($form)
         );
     }
@@ -372,8 +371,8 @@
     {
         $form = $this->createBuilder('name')
             ->addModelTransformer(new CallbackTransformer(
-                function () {},
-                function () {
+                static function () {},
+                static function () {
                     throw new TransformationFailedException('Fail!');
                 }
             ))
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/DependencyInjection/DependencyInjectionExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/DependencyInjection/DependencyInjectionExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/DependencyInjection/DependencyInjectionExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/DependencyInjection/DependencyInjectionExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
     public function testThrowExceptionForInvalidExtendedType()
     {
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The extended type "unmatched" specified for the type extension class "%s" does not match any of the actual extended types (["test"]).', TestTypeExtension::class));
+        $this->expectExceptionMessage(\sprintf('The extended type "unmatched" specified for the type extension class "%s" does not match any of the actual extended types (["test"]).', TestTypeExtension::class));
 
         $extensions = [
             'unmatched' => new \ArrayIterator([new TestTypeExtension()]),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/HtmlSanitizer/Type/TextTypeHtmlSanitizerExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/HtmlSanitizer/Type/TextTypeHtmlSanitizerExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/HtmlSanitizer/Type/TextTypeHtmlSanitizerExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/HtmlSanitizer/Type/TextTypeHtmlSanitizerExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -9,9 +9,10 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\Form\Tests\Extension\Csrf\Type;
+namespace Symfony\Component\Form\Tests\Extension\HtmlSanitizer\Type;
 
 use Symfony\Component\DependencyInjection\ServiceLocator;
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Form\Extension\Core\Type\FormType;
 use Symfony\Component\Form\Extension\Core\Type\TextType;
 use Symfony\Component\Form\Extension\HtmlSanitizer\HtmlSanitizerExtension;
@@ -20,6 +21,13 @@
 
 class TextTypeHtmlSanitizerExtensionTest extends TypeTestCase
 {
+    protected function setUp(): void
+    {
+        $this->dispatcher = new EventDispatcher();
+
+        parent::setUp();
+    }
+
     protected function getExtensions()
     {
         $fooSanitizer = $this->createMock(HtmlSanitizerInterface::class);
@@ -36,8 +44,8 @@
 
         return array_merge(parent::getExtensions(), [
             new HtmlSanitizerExtension(new ServiceLocator([
-                'foo' => fn () => $fooSanitizer,
-                'bar' => fn () => $barSanitizer,
+                'foo' => static fn () => $fooSanitizer,
+                'bar' => static fn () => $barSanitizer,
             ]), 'foo'),
         ]);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/HttpFoundation/HttpFoundationRequestHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/HttpFoundation/HttpFoundationRequestHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/HttpFoundation/HttpFoundationRequestHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/HttpFoundation/HttpFoundationRequestHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,8 +11,13 @@
 
 namespace Symfony\Component\Form\Tests\Extension\HttpFoundation;
 
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Form\Exception\UnexpectedTypeException;
+use Symfony\Component\Form\Extension\Core\DataMapper\DataMapper;
 use Symfony\Component\Form\Extension\HttpFoundation\HttpFoundationRequestHandler;
+use Symfony\Component\Form\Extension\HttpFoundation\Type\FormTypeHttpFoundationExtension;
+use Symfony\Component\Form\FormBuilder;
+use Symfony\Component\Form\Forms;
 use Symfony\Component\Form\Tests\AbstractRequestHandlerTestCase;
 use Symfony\Component\HttpFoundation\File\UploadedFile;
 use Symfony\Component\HttpFoundation\Request;
@@ -46,7 +51,7 @@
 
     protected function getUploadedFile($suffix = '')
     {
-        return new UploadedFile(__DIR__.'/../../Fixtures/foo'.$suffix, 'foo'.$suffix);
+        return new UploadedFile(__DIR__.'/../../Fixtures/foo'.$suffix, 'foo'.$suffix, null, null, true);
     }
 
     protected function getInvalidFile()
@@ -64,4 +69,20 @@
 
         return new UploadedFile(__DIR__.'/../../Fixtures/foo', 'foo', null, null, $errorCode, true);
     }
+
+    protected function createBuilder($name, $compound = false, array $options = [])
+    {
+        $factory = Forms::createFormFactoryBuilder()
+            ->addTypeExtension(new FormTypeHttpFoundationExtension($this->requestHandler))
+            ->getFormFactory();
+
+        $builder = new FormBuilder($name, null, new EventDispatcher(), $factory, $options);
+        $builder->setCompound($compound);
+
+        if ($compound) {
+            $builder->setDataMapper(new DataMapper());
+        }
+
+        return $builder;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/PasswordHasher/Type/PasswordTypePasswordHasherExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/PasswordHasher/Type/PasswordTypePasswordHasherExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/PasswordHasher/Type/PasswordTypePasswordHasherExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/PasswordHasher/Type/PasswordTypePasswordHasherExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
 
 namespace Symfony\Component\Form\Tests\Extension\PasswordHasher\Type;
 
-use PHPUnit\Framework\MockObject\MockObject;
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Form\Exception\InvalidConfigurationException;
 use Symfony\Component\Form\Extension\Core\Type\FormType;
 use Symfony\Component\Form\Extension\Core\Type\PasswordType;
@@ -21,13 +21,15 @@
 use Symfony\Component\Form\Test\TypeTestCase;
 use Symfony\Component\Form\Tests\Fixtures\RepeatedPasswordField;
 use Symfony\Component\Form\Tests\Fixtures\User;
+use Symfony\Component\PasswordHasher\Hasher\MessageDigestPasswordHasher;
+use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory;
 use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasher;
 use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
 use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
 
 class PasswordTypePasswordHasherExtensionTest extends TypeTestCase
 {
-    protected MockObject&UserPasswordHasherInterface $passwordHasher;
+    protected UserPasswordHasherInterface $passwordHasher;
 
     protected function setUp(): void
     {
@@ -35,7 +37,10 @@
             $this->markTestSkipped('PasswordAuthenticatedUserInterface not available.');
         }
 
-        $this->passwordHasher = $this->createMock(UserPasswordHasher::class);
+        $this->passwordHasher = new UserPasswordHasher(new PasswordHasherFactory([
+            User::class => new MessageDigestPasswordHasher('md5', false),
+        ]));
+        $this->dispatcher = new EventDispatcher();
 
         parent::setUp();
     }
@@ -52,14 +57,7 @@
         $user = new User();
 
         $plainPassword = 'PlainPassword';
-        $hashedPassword = 'HashedPassword';
-
-        $this->passwordHasher
-            ->expects($this->once())
-            ->method('hashPassword')
-            ->with($user, $plainPassword)
-            ->willReturn($hashedPassword)
-        ;
+        $hashedPassword = 'ec2d1846a8e988d344750b904739e19b';
 
         $this->assertNull($user->getPassword());
 
@@ -85,11 +83,6 @@
         $user = new User();
         $user->setPassword($oldHashedPassword);
 
-        $this->passwordHasher
-            ->expects($this->never())
-            ->method('hashPassword')
-        ;
-
         $this->assertEquals($user->getPassword(), $oldHashedPassword);
 
         $form = $this->factory
@@ -113,23 +106,14 @@
         $user = new User();
 
         $plainPassword = 'PlainPassword';
-        $hashedPassword = 'HashedPassword';
-
-        $this->passwordHasher
-            ->expects($this->once())
-            ->method('hashPassword')
-            ->with($user, $plainPassword)
-            ->willReturn($hashedPassword)
-        ;
+        $hashedPassword = 'ec2d1846a8e988d344750b904739e19b';
 
         $this->assertNull($user->getPassword());
 
         $form = $this->factory
             ->createBuilder('Symfony\Component\Form\Extension\Core\Type\FormType', null, [
                 'data_class' => User::class,
-                'empty_data' => function () use ($user) {
-                    return $user;
-                },
+                'empty_data' => static fn () => $user,
             ])
             ->add('plainPassword', 'Symfony\Component\Form\Extension\Core\Type\PasswordType', [
                 'hash_property_path' => 'password',
@@ -152,14 +136,7 @@
         $user = new User();
 
         $plainPassword = 'PlainPassword';
-        $hashedPassword = 'HashedPassword';
-
-        $this->passwordHasher
-            ->expects($this->once())
-            ->method('hashPassword')
-            ->with($user, $plainPassword)
-            ->willReturn($hashedPassword)
-        ;
+        $hashedPassword = 'ec2d1846a8e988d344750b904739e19b';
 
         $this->assertNull($user->getPassword());
 
@@ -195,11 +172,6 @@
     {
         $user = new User();
 
-        $this->passwordHasher
-            ->expects($this->never())
-            ->method('hashPassword')
-        ;
-
         $this->assertNull($user->getPassword());
 
         $form = $this->factory
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorFunctionalTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorFunctionalTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorFunctionalTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorFunctionalTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -88,9 +88,9 @@
     public function testNonCompositeConstraintValidatedOnce()
     {
         $form = $this->formFactory->create(TextType::class, null, [
-                'constraints' => [new NotBlank(['groups' => ['foo', 'bar']])],
-                'validation_groups' => ['foo', 'bar'],
-            ]);
+            'constraints' => [new NotBlank(['groups' => ['foo', 'bar']])],
+            'validation_groups' => ['foo', 'bar'],
+        ]);
         $form->submit('');
 
         $violations = $this->validator->validate($form);
@@ -453,16 +453,16 @@
             ->add('field1')
             ->add('field2')
             ->addModelTransformer(new CallbackTransformer(
-                function () {
+                static function () {
                 },
-                function () {
+                static function () {
                     throw new TransformationFailedException('This value is invalid.');
                 }
             ));
         $formBuilder->get('field2')->addModelTransformer(new CallbackTransformer(
-            function () {
+            static function () {
             },
-            function () {
+            static function () {
                 throw new TransformationFailedException('This value is invalid.');
             }
         ));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -184,8 +184,8 @@
         $object = new \stdClass();
 
         $form = $this->getBuilder('name', '\stdClass', [
-                'validation_groups' => [],
-            ])
+            'validation_groups' => [],
+        ])
             ->setData($object)
             ->setCompound(true)
             ->setDataMapper(new DataMapper())
@@ -256,12 +256,12 @@
         $object = new \stdClass();
 
         $form = $this->getBuilder('name', '\stdClass', [
-                'invalid_message' => 'invalid_message_key',
-                // Invalid message parameters must be supported, because the
-                // invalid message can be a translation key
-                // see https://github.com/symfony/symfony/issues/5144
-                'invalid_message_parameters' => ['{{ foo }}' => 'bar'],
-            ])
+            'invalid_message' => 'invalid_message_key',
+            // Invalid message parameters must be supported, because the
+            // invalid message can be a translation key
+            // see https://github.com/symfony/symfony/issues/5144
+            'invalid_message_parameters' => ['{{ foo }}' => 'bar'],
+        ])
             ->setData($object)
             ->addViewTransformer(new CallbackTransformer(
                 static fn ($data) => $data,
@@ -292,13 +292,13 @@
         $object = new \stdClass();
 
         $form = $this->getBuilder('name', '\stdClass', [
-                'invalid_message' => 'invalid_message_key',
-                // Invalid message parameters must be supported, because the
-                // invalid message can be a translation key
-                // see https://github.com/symfony/symfony/issues/5144
-                'invalid_message_parameters' => ['{{ foo }}' => 'bar'],
-                'validation_groups' => [],
-            ])
+            'invalid_message' => 'invalid_message_key',
+            // Invalid message parameters must be supported, because the
+            // invalid message can be a translation key
+            // see https://github.com/symfony/symfony/issues/5144
+            'invalid_message_parameters' => ['{{ foo }}' => 'bar'],
+            'validation_groups' => [],
+        ])
             ->setData($object)
             ->addViewTransformer(new CallbackTransformer(
                 static fn ($data) => $data,
@@ -443,7 +443,7 @@
     public function testHandleClosureValidationGroups()
     {
         $object = new \stdClass();
-        $options = ['validation_groups' => fn (FormInterface $form) => ['group1', 'group2']];
+        $options = ['validation_groups' => static fn (FormInterface $form) => ['group1', 'group2']];
         $form = $this->getCompoundForm($object, $options);
         $form->submit([]);
 
@@ -555,7 +555,7 @@
         $object = new \stdClass();
 
         $parentOptions = [
-            'validation_groups' => fn () => ['group1', 'group2'],
+            'validation_groups' => static fn () => ['group1', 'group2'],
         ];
         $parent = $this->getBuilder('parent', null, $parentOptions)
             ->setCompound(true)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BaseValidatorExtensionTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BaseValidatorExtensionTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BaseValidatorExtensionTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BaseValidatorExtensionTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,15 +11,25 @@
 
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
+use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\Form\Extension\Validator\ValidatorExtension;
 use Symfony\Component\Form\Test\FormInterface;
 use Symfony\Component\Form\Test\TypeTestCase;
 use Symfony\Component\Validator\Constraints\GroupSequence;
+use Symfony\Component\Validator\ValidatorBuilder;
 
 /**
  * @author Bernhard Schussek <bschussek@gmail.com>
  */
 abstract class BaseValidatorExtensionTestCase extends TypeTestCase
 {
+    protected function setUp(): void
+    {
+        $this->dispatcher = new EventDispatcher();
+
+        parent::setUp();
+    }
+
     public function testValidationGroupNullByDefault()
     {
         $form = $this->createForm();
@@ -66,7 +76,7 @@
     public function testValidationGroupsCanBeSetToClosure()
     {
         $form = $this->createForm([
-            'validation_groups' => function (FormInterface $form) { },
+            'validation_groups' => static function (FormInterface $form) { },
         ]);
 
         $this->assertIsCallable($form->getConfig()->getOption('validation_groups'));
@@ -82,4 +92,11 @@
     }
 
     abstract protected function createForm(array $options = []);
+
+    protected function getExtensions()
+    {
+        return [
+            new ValidatorExtension((new ValidatorBuilder())->getValidator()),
+        ];
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BirthdayTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BirthdayTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BirthdayTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BirthdayTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class BirthdayTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(BirthdayType::class, null, $options + ['widget' => 'choice']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CheckboxTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CheckboxTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CheckboxTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CheckboxTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class CheckboxTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(CheckboxType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/ChoiceTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/ChoiceTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/ChoiceTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/ChoiceTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class ChoiceTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(ChoiceType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CollectionTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CollectionTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CollectionTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CollectionTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\CollectionType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class CollectionTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(CollectionType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/ColorTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/ColorTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/ColorTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/ColorTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\ColorType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class ColorTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(ColorType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CountryTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CountryTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CountryTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CountryTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\CountryType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class CountryTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(CountryType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CurrencyTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CurrencyTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CurrencyTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/CurrencyTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\CurrencyType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class CurrencyTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(CurrencyType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateIntervalTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateIntervalTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateIntervalTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateIntervalTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\DateIntervalType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class DateIntervalTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(DateIntervalType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateTimeTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateTimeTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateTimeTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateTimeTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class DateTimeTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(DateTimeType::class, null, $options + ['widget' => 'choice']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/DateTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\DateType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class DateTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(DateType::class, null, $options + ['widget' => 'choice']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/EmailTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/EmailTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/EmailTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/EmailTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\EmailType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class EmailTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(EmailType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FileTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FileTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FileTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FileTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\FileType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class FileTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(FileType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FormTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FormTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FormTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FormTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,10 +11,10 @@
 
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
+use Symfony\Component\Form\Extension\Core\Type\TextType;
 use Symfony\Component\Form\Extension\Validator\ValidatorExtension;
 use Symfony\Component\Form\Form;
 use Symfony\Component\Form\Forms;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 use Symfony\Component\Form\Tests\Extension\Core\Type\FormTypeTest;
 use Symfony\Component\Form\Tests\Extension\Core\Type\TextTypeTest;
 use Symfony\Component\Form\Tests\Fixtures\Author;
@@ -22,16 +22,14 @@
 use Symfony\Component\Validator\Constraints\GroupSequence;
 use Symfony\Component\Validator\Constraints\Length;
 use Symfony\Component\Validator\Constraints\NotBlank;
+use Symfony\Component\Validator\Constraints\NotNull;
 use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\ConstraintViolationList;
 use Symfony\Component\Validator\Mapping\ClassMetadata;
 use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface;
 use Symfony\Component\Validator\Validation;
 
 class FormTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     public function testSubmitValidatesData()
     {
         $builder = $this->factory->createBuilder(
@@ -41,16 +39,17 @@
                 'validation_groups' => 'group',
             ]
         );
-        $builder->add('firstName', FormTypeTest::TESTED_TYPE);
+        $builder->add('firstName', TextType::class, [
+            'constraints' => new NotNull(groups: ['group']),
+        ]);
         $form = $builder->getForm();
 
-        $this->validator->expects($this->once())
-            ->method('validate')
-            ->with($this->equalTo($form))
-            ->willReturn(new ConstraintViolationList());
-
         // specific data is irrelevant
         $form->submit([]);
+
+        $this->assertTrue($form->isSubmitted());
+        $this->assertFalse($form->isValid());
+        $this->assertFalse($form->get('firstName')->isValid());
     }
 
     public function testValidConstraint()
@@ -101,8 +100,8 @@
         $authorMetadata = (new ClassMetadata(Author::class))
             ->addPropertyConstraint('firstName', new NotBlank(['groups' => 'Second']))
         ;
-        $metadataFactory = $this->createMock(MetadataFactoryInterface::class);
-        $metadataFactory->expects($this->any())
+        $metadataFactory = $this->createStub(MetadataFactoryInterface::class);
+        $metadataFactory
             ->method('getMetadataFor')
             ->willReturnCallback(static function ($classOrObject) use ($formMetadata, $authorMetadata) {
                 if (Author::class === $classOrObject || $classOrObject instanceof Author) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/HiddenTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/HiddenTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/HiddenTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/HiddenTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\HiddenType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class HiddenTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(HiddenType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/IntegerTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/IntegerTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/IntegerTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/IntegerTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\IntegerType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class IntegerTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(IntegerType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/LanguageTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/LanguageTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/LanguageTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/LanguageTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\LanguageType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class LanguageTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(LanguageType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/LocaleTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/LocaleTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/LocaleTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/LocaleTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\LocaleType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class LocaleTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(LocaleType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/MoneyTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/MoneyTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/MoneyTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/MoneyTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\MoneyType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class MoneyTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(MoneyType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/NumberTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/NumberTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/NumberTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/NumberTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\NumberType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class NumberTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(NumberType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/PasswordTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/PasswordTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/PasswordTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/PasswordTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\PasswordType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class PasswordTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(PasswordType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/PercentTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/PercentTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/PercentTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/PercentTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\PercentType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class PercentTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(PercentType::class, null, $options + ['rounding_mode' => \NumberFormatter::ROUND_CEILING]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RadioTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RadioTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RadioTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RadioTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\RadioType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class RadioTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(RadioType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RangeTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RangeTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RangeTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RangeTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\RangeType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class RangeTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(RangeType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RepeatedTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RepeatedTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RepeatedTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/RepeatedTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class RepeatedTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(RepeatedType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SearchTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SearchTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SearchTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SearchTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\SearchType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class SearchTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(SearchType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SubmitTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SubmitTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SubmitTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SubmitTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,12 +11,8 @@
 
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
-
 class SubmitTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create('Symfony\Component\Form\Extension\Core\Type\SubmitType', null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TelTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TelTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TelTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TelTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\TelType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class TelTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(TelType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TimeTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TimeTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TimeTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TimeTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\TimeType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class TimeTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(TimeType::class, null, $options + ['widget' => 'choice']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TimezoneTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TimezoneTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TimezoneTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/TimezoneTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\TimezoneType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class TimezoneTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(TimezoneType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/UploadValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/UploadValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/UploadValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/UploadValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Form\Extension\Validator\Type\UploadValidatorExtension;
 use Symfony\Component\Form\Test\TypeTestCase;
 use Symfony\Component\OptionsResolver\Options;
@@ -20,13 +21,20 @@
 
 class UploadValidatorExtensionTest extends TypeTestCase
 {
+    protected function setUp(): void
+    {
+        $this->dispatcher = new EventDispatcher();
+
+        parent::setUp();
+    }
+
     public function testPostMaxSizeTranslation()
     {
         $extension = new UploadValidatorExtension(new DummyTranslator());
 
         $resolver = new OptionsResolver();
         $resolver->setDefault('post_max_size_message', 'old max {{ max }}!');
-        $resolver->setDefault('upload_max_size_message', fn (Options $options) => fn () => $options['post_max_size_message']);
+        $resolver->setDefault('upload_max_size_message', static fn (Options $options) => static fn () => $options['post_max_size_message']);
 
         $extension->configureOptions($resolver);
         $options = $resolver->resolve();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/UrlTypeValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/UrlTypeValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/UrlTypeValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/Type/UrlTypeValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,9 @@
 namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\UrlType;
-use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
 
 class UrlTypeValidatorExtensionTest extends BaseValidatorExtensionTestCase
 {
-    use ValidatorExtensionTrait;
-
     protected function createForm(array $options = [])
     {
         return $this->factory->create(UrlType::class, null, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ValidatorExtensionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ValidatorExtensionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ValidatorExtensionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ValidatorExtensionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,8 +42,45 @@
         $this->assertCount(1, $metadata->getConstraints());
         $this->assertInstanceOf(FormConstraint::class, $metadata->getConstraints()[0]);
 
-        $this->assertSame(CascadingStrategy::NONE, $metadata->cascadingStrategy);
-        $this->assertSame(TraversalStrategy::NONE, $metadata->traversalStrategy);
+        $this->assertSame(CascadingStrategy::NONE, $metadata->getCascadingStrategy());
+        $this->assertSame(TraversalStrategy::NONE, $metadata->getTraversalStrategy());
         $this->assertCount(0, $metadata->getPropertyMetadata('children'));
     }
+
+    public function testNoDoubleConstraintWhenInstantiatedTwice()
+    {
+        $metadata = new ClassMetadata(Form::class);
+
+        $metadataFactory = new FakeMetadataFactory();
+        $metadataFactory->addMetadata($metadata);
+
+        $validator = Validation::createValidatorBuilder()
+            ->setMetadataFactory($metadataFactory)
+            ->getValidator();
+
+        new ValidatorExtension($validator, false);
+        new ValidatorExtension($validator, false);
+
+        $this->assertCount(1, $metadata->getConstraints());
+        $this->assertInstanceOf(FormConstraint::class, $metadata->getConstraints()[0]);
+    }
+
+    public function testPropertiesInitializedWithEarlyReturn()
+    {
+        $metadata = new ClassMetadata(Form::class);
+        $metadata->addConstraint(new FormConstraint());
+
+        $metadataFactory = new FakeMetadataFactory();
+        $metadataFactory->addMetadata($metadata);
+
+        $validator = Validation::createValidatorBuilder()
+            ->setMetadataFactory($metadataFactory)
+            ->getValidator();
+
+        // create with an early return condition
+        $extension = new ValidatorExtension($validator, false);
+
+        // verify the extension is functional after an early return
+        $this->assertInstanceOf(ValidatorTypeGuesser::class, $extension->loadTypeGuesser());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ValidatorTypeGuesserTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ValidatorTypeGuesserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ValidatorTypeGuesserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ValidatorTypeGuesserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
     /**
      * @var MetadataFactoryInterface
      */
-    private \Symfony\Component\Validator\Tests\Fixtures\FakeMetadataFactory $metadataFactory;
+    private FakeMetadataFactory $metadataFactory;
 
     protected function setUp(): void
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ViolationMapper/ViolationMapperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ViolationMapper/ViolationMapperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ViolationMapper/ViolationMapperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Extension/Validator/ViolationMapper/ViolationMapperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -1722,13 +1722,9 @@
 
     public function testLabelPlaceholderTranslatedWithTranslationDomainDefinedByParentType()
     {
-        $translator = $this->createMock(TranslatorInterface::class);
-        $translator->expects($this->any())
-            ->method('trans')
-            ->with('foo', [], 'domain')
-            ->willReturn('translated foo label')
-        ;
-        $this->mapper = new ViolationMapper(null, $translator);
+        $this->mapper = new ViolationMapper(null, new FixedTranslator([
+            'foo' => 'translated foo label',
+        ]));
 
         $form = $this->getForm('', null, null, [], false, true, [
             'translation_domain' => 'domain',
@@ -1749,17 +1745,9 @@
 
     public function testLabelPlaceholderTranslatedWithTranslationParametersMergedFromParentForm()
     {
-        $translator = $this->createMock(TranslatorInterface::class);
-        $translator->expects($this->any())
-            ->method('trans')
-            ->with('foo', [
-                '{{ param_defined_in_parent }}' => 'param defined in parent value',
-                '{{ param_defined_in_child }}' => 'param defined in child value',
-                '{{ param_defined_in_parent_overridden_in_child }}' => 'param defined in parent overridden in child child value',
-            ])
-            ->willReturn('translated foo label')
-        ;
-        $this->mapper = new ViolationMapper(null, $translator);
+        $this->mapper = new ViolationMapper(null, new FixedTranslator([
+            'foo' => 'translated foo label',
+        ]));
 
         $form = $this->getForm('', null, null, [], false, true, [
             'label_translation_parameters' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Fixtures/Descriptor/required_option_with_allowed_values.txt symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Fixtures/Descriptor/required_option_with_allowed_values.txt
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Fixtures/Descriptor/required_option_with_allowed_values.txt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Fixtures/Descriptor/required_option_with_allowed_values.txt	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,6 @@
   Normalizers      [         %s
                      Closure(%s
                        class:%s
-                       this: %s
                        file: %s
                        line: %s
                      }       %s
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Fixtures/FixedDataTransformer.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Fixtures/FixedDataTransformer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Fixtures/FixedDataTransformer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Fixtures/FixedDataTransformer.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,6 +25,7 @@
 
     public function transform($value): mixed
     {
+        $value ??= '';
         if (!\array_key_exists($value, $this->mapping)) {
             throw new TransformationFailedException(sprintf('No mapping for value "%s"', $value));
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Fixtures/FixedFilterListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Fixtures/FixedFilterListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Fixtures/FixedFilterListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Fixtures/FixedFilterListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,8 +50,8 @@
     {
         $data = $event->getData();
 
-        if (isset($this->mapping['preSetData'][$data])) {
-            $event->setData($this->mapping['preSetData'][$data]);
+        if (isset($this->mapping['preSetData'][$data ?? ''])) {
+            $event->setData($this->mapping['preSetData'][$data ?? '']);
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Fixtures/TestExtension.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Fixtures/TestExtension.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Fixtures/TestExtension.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Fixtures/TestExtension.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
 
     public function getType($name): FormTypeInterface
     {
-        return $this->types[$name] ?? null;
+        return $this->types[$name];
     }
 
     public function hasType($name): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/FormFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/FormFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/FormFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/FormFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -173,10 +173,10 @@
 
 class ConfigurableFormTypeGuesser implements FormTypeGuesserInterface
 {
-    private ?\Symfony\Component\Form\Guess\TypeGuess $typeGuess = null;
-    private ?\Symfony\Component\Form\Guess\ValueGuess $requiredGuess = null;
-    private ?\Symfony\Component\Form\Guess\ValueGuess $maxLengthGuess = null;
-    private ?\Symfony\Component\Form\Guess\ValueGuess $patternGuess = null;
+    private ?TypeGuess $typeGuess = null;
+    private ?ValueGuess $requiredGuess = null;
+    private ?ValueGuess $maxLengthGuess = null;
+    private ?ValueGuess $patternGuess = null;
 
     public function guessType($class, $property): ?TypeGuess
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/NativeRequestHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/NativeRequestHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/NativeRequestHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/NativeRequestHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -168,8 +168,8 @@
         $form = $this->createForm('param1', 'POST');
 
         $this->setRequestData('GET', [
-                'param1' => 'DATA',
-            ]);
+            'param1' => 'DATA',
+        ]);
 
         $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] = 'PUT';
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ResolvedFormTypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ResolvedFormTypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/ResolvedFormTypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/ResolvedFormTypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -100,7 +100,7 @@
     public function testFailsCreateBuilderOnInvalidFormOptionsResolution()
     {
         $this->expectException(MissingOptionsException::class);
-        $this->expectExceptionMessage(sprintf('An error has occurred resolving the options of the form "%s": The required option "foo" is missing.', UsageTrackingFormType::class));
+        $this->expectExceptionMessage(\sprintf('An error has occurred resolving the options of the form "%s": The required option "foo" is missing.', UsageTrackingFormType::class));
 
         $this->resolvedType->createBuilder($this->formFactory, 'name');
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Resources/TranslationFilesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Resources/TranslationFilesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Resources/TranslationFilesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Resources/TranslationFilesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
 
         $errors = XliffUtils::validateSchema($document);
 
-        $this->assertCount(0, $errors, sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
+        $this->assertCount(0, $errors, \sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
     }
 
     /**
@@ -39,13 +39,13 @@
 
         $errors = XliffUtils::validateSchema($document);
 
-        $this->assertCount(0, $errors, sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
+        $this->assertCount(0, $errors, \sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
     }
 
     public static function provideTranslationFiles()
     {
         return array_map(
-            fn ($filePath) => (array) $filePath,
+            static fn ($filePath) => (array) $filePath,
             glob(\dirname(__DIR__, 2).'/Resources/translations/*.xlf')
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/SimpleFormTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/SimpleFormTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/SimpleFormTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/SimpleFormTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -503,9 +503,9 @@
     {
         $form = $this->getBuilder()
             ->addModelTransformer(new FixedDataTransformer([
-            '' => '',
-            1 => 23,
-        ]))
+                '' => '',
+                1 => 23,
+            ]))
             ->getForm();
 
         $form->setData(1);
@@ -548,7 +548,7 @@
         $config
             ->setData('default')
             ->setDataLocked(true)
-            ->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
+            ->addEventListener(FormEvents::PRE_SET_DATA, static function (FormEvent $event) {
                 $event->setData('foobar');
             });
         $form = new Form($config);
@@ -912,7 +912,7 @@
         $this->expectExceptionMessage('A cycle was detected. Listeners to the PRE_SET_DATA event must not call setData(). You should call setData() on the FormEvent object instead.');
         // Cycle detection to prevent endless loops
         $config = new FormConfigBuilder('name', 'stdClass', new EventDispatcher());
-        $config->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
+        $config->addEventListener(FormEvents::PRE_SET_DATA, static function (FormEvent $event) {
             $event->getForm()->setData('bar');
         });
         $form = new Form($config);
@@ -925,7 +925,7 @@
         $called = 0;
 
         $child = $this->getBuilder('child');
-        $child->addEventListener(FormEvents::PRE_SUBMIT, function () use (&$called) {
+        $child->addEventListener(FormEvents::PRE_SUBMIT, static function () use (&$called) {
             ++$called;
         });
 
@@ -1036,7 +1036,7 @@
     {
         $called = 0;
         $form = $this->getBuilder()
-            ->addEventListener(FormEvents::SUBMIT, function () use (&$called) {
+            ->addEventListener(FormEvents::SUBMIT, static function () use (&$called) {
                 ++$called;
             })
             ->setInheritData(true)
@@ -1052,7 +1052,7 @@
         $config = $this->getBuilder()->setData('DEFAULT')->getFormConfig();
         $form = new Form($config);
 
-        /* @var Form $form */
+        /** @var Form $form */
         $form->initialize();
 
         $this->assertSame('DEFAULT', $form->getData());
@@ -1074,7 +1074,7 @@
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage('A cycle was detected. Listeners to the PRE_SET_DATA event must not call getData() if the form data has not already been set. You should call getData() on the FormEvent object instead.');
         $config = new FormConfigBuilder('name', 'stdClass', new EventDispatcher());
-        $config->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
+        $config->addEventListener(FormEvents::PRE_SET_DATA, static function (FormEvent $event) {
             $event->getForm()->getData();
         });
         $form = new Form($config);
@@ -1087,7 +1087,7 @@
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage('A cycle was detected. Listeners to the PRE_SET_DATA event must not call getNormData() if the form data has not already been set.');
         $config = new FormConfigBuilder('name', 'stdClass', new EventDispatcher());
-        $config->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
+        $config->addEventListener(FormEvents::PRE_SET_DATA, static function (FormEvent $event) {
             $event->getForm()->getNormData();
         });
         $form = new Form($config);
@@ -1100,7 +1100,7 @@
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage('A cycle was detected. Listeners to the PRE_SET_DATA event must not call getViewData() if the form data has not already been set.');
         $config = new FormConfigBuilder('name', 'stdClass', new EventDispatcher());
-        $config->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
+        $config->addEventListener(FormEvents::PRE_SET_DATA, static function (FormEvent $event) {
             $event->getForm()->getViewData();
         });
         $form = new Form($config);
@@ -1112,12 +1112,12 @@
     {
         $config = new FormConfigBuilder('foo', null, new EventDispatcher());
 
-        $config->setIsEmptyCallback(fn ($modelData): bool => 'ccc' === $modelData);
+        $config->setIsEmptyCallback(static fn ($modelData): bool => 'ccc' === $modelData);
         $form = new Form($config);
         $form->setData('ccc');
         $this->assertTrue($form->isEmpty());
 
-        $config->setIsEmptyCallback(fn (): bool => false);
+        $config->setIsEmptyCallback(static fn (): bool => false);
         $form = new Form($config);
         $form->setData(null);
         $this->assertFalse($form->isEmpty());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Util/OrderedHashMapTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Util/OrderedHashMapTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Util/OrderedHashMapTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Util/OrderedHashMapTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -524,4 +524,36 @@
 
         $this->assertCount(2, $map);
     }
+
+    public function testAppendDoesNotOverwriteExistingNumericKeysWhenStringKeysExist()
+    {
+        $map = new OrderedHashMap();
+        $map[0] = 'zero';
+        $map[1] = 'one';
+        $map['foo'] = 'bar';
+        $map[] = 'new';
+
+        $this->assertSame('one', $map[1]);
+        $this->assertSame('new', $map[2]);
+    }
+
+    public function testUpdateNullValueDoesNotChangeElementPosition()
+    {
+        $map = new OrderedHashMap();
+        $map['first'] = null;
+        $map['second'] = 2;
+        $map['first'] = null;
+
+        $this->assertSame(['first' => null, 'second' => 2], iterator_to_array($map));
+    }
+
+    public function testUpdateFromNullValueDoesNotChangeElementPosition()
+    {
+        $map = new OrderedHashMap();
+        $map['first'] = null;
+        $map['second'] = 2;
+        $map['first'] = 1;
+
+        $this->assertSame(['first' => 1, 'second' => 2], iterator_to_array($map));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Util/StringUtilTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Util/StringUtilTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/Util/StringUtilTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/Util/StringUtilTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
             ['0020'],
             ['00A0'],
             ['1680'],
-//            ['180E'],
+            // ['180E'],
             ['2000'],
             ['2001'],
             ['2002'],
@@ -87,6 +87,27 @@
         ];
     }
 
+    public static function normalizeNewlinesProvider(): array
+    {
+        return [
+            ["Line 1\r\nLine 2", "Line 1\nLine 2"],
+            ["Line 1\rLine 2", "Line 1\nLine 2"],
+            ["Line 1\r\nLine 2\rLine 3\nLine 4", "Line 1\nLine 2\nLine 3\nLine 4"],
+            ["Line 1\nLine 2", "Line 1\nLine 2"],
+            ['', ''],
+            ['Single line', 'Single line'],
+            ["Line 1\r\n\r\n\r\nLine 2", "Line 1\n\n\nLine 2"],
+        ];
+    }
+
+    /**
+     * @dataProvider normalizeNewlinesProvider
+     */
+    public function testNormalizeNewlines($data, $expectedData)
+    {
+        $this->assertSame($expectedData, StringUtil::normalizeNewlines($data));
+    }
+
     /**
      * @dataProvider fqcnToBlockPrefixProvider
      */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/VersionAwareTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/VersionAwareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Tests/VersionAwareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Tests/VersionAwareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
     protected function requiresFeatureSet(int $requiredFeatureSetVersion)
     {
         if ($requiredFeatureSetVersion > static::$supportedFeatureSetVersion) {
-            $this->markTestSkipped(sprintf('Test requires features from symfony/form %.2f but only version %.2f is supported.', $requiredFeatureSetVersion / 100, static::$supportedFeatureSetVersion / 100));
+            $this->markTestSkipped(\sprintf('Test requires features from symfony/form %.2f but only version %.2f is supported.', $requiredFeatureSetVersion / 100, static::$supportedFeatureSetVersion / 100));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Util/FormUtil.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Util/FormUtil.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Util/FormUtil.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Util/FormUtil.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\Form\Util;
 
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+
 /**
  * @author Bernhard Schussek <bschussek@gmail.com>
  */
@@ -39,30 +41,84 @@
     }
 
     /**
-     * Recursively replaces or appends elements of the first array with elements
-     * of second array. If the key is an integer, the values will be appended to
-     * the new array; otherwise, the value from the second array will replace
-     * the one from the first array.
+     * Merges query string or post parameters with uploaded files.
      */
     public static function mergeParamsAndFiles(array $params, array $files): array
     {
-        $isFilesList = array_is_list($files);
+        return self::merge($params, $files);
+    }
+
+    private static function merge(mixed $params, mixed $files): mixed
+    {
+        if (null === $params) {
+            return $files;
+        }
+
+        if (\is_array($params) && self::isFileUpload($files)) {
+            return $files; // if the array is a file upload field, it has the precedence
+        }
 
-        foreach ($params as $key => $value) {
-            if (\is_array($value) && \is_array($files[$key] ?? null)) {
-                $params[$key] = self::mergeParamsAndFiles($value, $files[$key]);
-                unset($files[$key]);
+        if (\is_array($params) && \is_array($files)) {
+            // if both are lists and both do not contain arrays, then merge them and return
+            if (array_is_list($params) && self::doesNotContainNonFileUploadArray($params) && array_is_list($files) && self::doesNotContainNonFileUploadArray($files)) {
+                return array_merge($params, $files);
             }
+
+            // heuristics to preserve order, the bigger array wins
+            if (\count($files) > \count($params)) {
+                $keys = array_unique(array_merge(array_keys($files), array_keys($params)));
+            } else {
+                $keys = array_unique(array_merge(array_keys($params), array_keys($files)));
+            }
+
+            $result = [];
+
+            foreach ($keys as $key) {
+                $result[$key] = self::merge($params[$key] ?? null, $files[$key] ?? null);
+            }
+
+            return $result;
         }
 
-        if (!$isFilesList) {
-            return array_replace($params, $files);
+        if (\is_array($params)) {
+            return $params; // params has the precedence
         }
 
-        foreach ($files as $value) {
-            $params[] = $value;
+        if (self::isFileUpload($files)) {
+            return $files; // if the array is a file upload field, it has the precedence
         }
 
         return $params;
     }
+
+    private static function isFileUpload(mixed $value): bool
+    {
+        if ($value instanceof UploadedFile) {
+            return true;
+        }
+
+        if (!\is_array($value) || !\in_array(\count($value), [5, 6], true)) {
+            return false;
+        }
+
+        if (\array_key_exists('full_path', $value)) {
+            unset($value['full_path']);
+        }
+
+        $keys = array_keys($value);
+        sort($keys);
+
+        return ['error', 'name', 'size', 'tmp_name', 'type'] === $keys;
+    }
+
+    private static function doesNotContainNonFileUploadArray(array $array): bool
+    {
+        foreach ($array as $value) {
+            if (\is_array($value) && !self::isFileUpload($value)) {
+                return false;
+            }
+        }
+
+        return true;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Util/OrderedHashMapIterator.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Util/OrderedHashMapIterator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Util/OrderedHashMapIterator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Util/OrderedHashMapIterator.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,15 +57,12 @@
         $this->managedCursors[$this->cursorId] = &$this->cursor;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Util/OrderedHashMap.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Util/OrderedHashMap.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Util/OrderedHashMap.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Util/OrderedHashMap.php	2026-05-20 10:56:49.000000000 +0200
@@ -112,7 +112,7 @@
     public function offsetGet(mixed $key): mixed
     {
         if (!isset($this->elements[$key])) {
-            throw new \OutOfBoundsException(sprintf('The offset "%s" does not exist.', $key));
+            throw new \OutOfBoundsException(\sprintf('The offset "%s" does not exist.', $key));
         }
 
         return $this->elements[$key];
@@ -120,16 +120,11 @@
 
     public function offsetSet(mixed $key, mixed $value): void
     {
-        if (null === $key || !isset($this->elements[$key])) {
-            if (null === $key) {
-                $key = [] === $this->orderedKeys
-                    // If the array is empty, use 0 as key
-                    ? 0
-                    // Imitate PHP behavior of generating a key that equals
-                    // the highest existing integer key + 1
-                    : 1 + (int) max($this->orderedKeys);
-            }
-
+        if (null === $key) {
+            $this->elements[] = $value;
+            $key = array_key_last($this->elements);
+            $this->orderedKeys[] = (string) $key;
+        } elseif (!\array_key_exists($key, $this->elements)) {
             $this->orderedKeys[] = (string) $key;
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Form/Util/StringUtil.php symfony-6.4.40+dfsg/src/Symfony/Component/Form/Util/StringUtil.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Form/Util/StringUtil.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Form/Util/StringUtil.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,6 +37,14 @@
     }
 
     /**
+     * Converts both CRLF and CR to LF.
+     */
+    public static function normalizeNewlines(string $string): string
+    {
+        return str_replace(["\r\n", "\r"], "\n", $string);
+    }
+
+    /**
      * Converts a fully-qualified class name to a block prefix.
      *
      * @param string $fqcn The fully-qualified class name
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/HtmlSanitizerConfig.php symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/HtmlSanitizerConfig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/HtmlSanitizerConfig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/HtmlSanitizerConfig.php	2026-05-20 10:56:49.000000000 +0200
@@ -412,7 +412,7 @@
     public function withMaxInputLength(int $maxInputLength): static
     {
         if ($maxInputLength < -1) {
-            throw new \InvalidArgumentException(sprintf('The maximum input length must be greater than -1, "%d" given.', $maxInputLength));
+            throw new \InvalidArgumentException(\sprintf('The maximum input length must be greater than -1, "%d" given.', $maxInputLength));
         }
 
         $clone = clone $this;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Reference/W3CReference.php symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Reference/W3CReference.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Reference/W3CReference.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Reference/W3CReference.php	2026-05-20 10:56:49.000000000 +0200
@@ -368,7 +368,7 @@
         'span' => true,
         'spellcheck' => true,
         'src' => true,
-        'srcdoc' => true,
+        // 'srcdoc' => false, // XSS vector if not properly sandboxed, should be enabled explicitly with ->allowAttribute('srcdoc', 'iframe')->forceAttribute('iframe', 'sandbox', '')
         'srclang' => true,
         'srcset' => true,
         'standby' => true,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/Fixtures/baseline-attribute-allow-list.json symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/Fixtures/baseline-attribute-allow-list.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/Fixtures/baseline-attribute-allow-list.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/Fixtures/baseline-attribute-allow-list.json	2026-05-20 10:56:49.000000000 +0200
@@ -182,7 +182,6 @@
   "span",
   "spellcheck",
   "src",
-  "srcdoc",
   "srclang",
   "srcset",
   "standby",
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerAllTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerAllTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerAllTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerAllTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -149,7 +149,7 @@
             ],
             [
                 '<a href= onmouseover="alert(\\\'XSS\\\');">Lorem ipsum</a>',
-                '<a href="onmouseover&#61;&#34;alert(\&#039;XSS\&#039;);&#34;">Lorem ipsum</a>',
+                '<a>Lorem ipsum</a>',
             ],
             [
                 '<a href="http://trusted.com" onclick="alert(\'ok\')">Test</a>',
@@ -568,6 +568,23 @@
         }
     }
 
+    public function testIFrameDefaultsAreSafe()
+    {
+        $sanitizer = new HtmlSanitizer((new HtmlSanitizerConfig())
+            ->allowElement('iframe', '*')
+        );
+        $input = '<iframe src="javascript:alert()" onload="alert()" srcdoc="<script>alert()</script>">XSS</iframe>';
+        $this->assertSame('<iframe>XSS</iframe>', $sanitizer->sanitize($input));
+
+        $sanitizer = new HtmlSanitizer((new HtmlSanitizerConfig())
+            ->allowElement('iframe', '*')
+            ->allowAttribute('srcdoc', 'iframe')
+            ->forceAttribute('iframe', 'sandbox', '')
+        );
+        $input = '<iframe src="javascript:alert()" onload="alert()" srcdoc="<script>alert()</script>">XSS-prevented by sandbox</iframe>';
+        $this->assertSame('<iframe srcdoc="&lt;script&gt;alert()&lt;/script&gt;" sandbox>XSS-prevented by sandbox</iframe>', $sanitizer->sanitize($input));
+    }
+
     public function testUnlimitedLength()
     {
         $sanitizer = new HtmlSanitizer((new HtmlSanitizerConfig())->withMaxInputLength(-1));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerConfigTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerConfigTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerConfigTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerConfigTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -109,7 +109,7 @@
         $config = new HtmlSanitizerConfig();
         $config = $config->allowElement('div', '*');
         $this->assertSame(['div'], array_keys($config->getAllowedElements()));
-        $this->assertCount(211, $config->getAllowedElements()['div']);
+        $this->assertCount(210, $config->getAllowedElements()['div']);
         $this->assertSame([], $config->getBlockedElements());
     }
 
@@ -269,7 +269,7 @@
     {
         $config = new HtmlSanitizerConfig();
 
-        $sanitizer = new class() implements AttributeSanitizerInterface {
+        $sanitizer = new class implements AttributeSanitizerInterface {
             public function getSupportedElements(): ?array
             {
                 return null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerCustomTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerCustomTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerCustomTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerCustomTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -232,11 +232,18 @@
     {
         $config = (new HtmlSanitizerConfig())
             ->allowElement('div')
+            ->allowElement('img', '*')
             ->allowElement('a', ['href'])
             ->forceAttribute('a', 'rel', 'noopener noreferrer')
+            ->forceAttribute('img', 'loading', 'lazy')
         ;
 
         $this->assertSame(
+            '<img title="My image" src="https://example.com/image.png" loading="lazy" />',
+            $this->sanitize($config, '<img title="My image" src="https://example.com/image.png" loading="eager" onerror="alert(\'1234\')" />')
+        );
+
+        $this->assertSame(
             '<a rel="noopener noreferrer">Hello</a> world',
             $this->sanitize($config, '<a>Hello</a> world')
         );
@@ -250,6 +257,11 @@
             '<div>Hello</div> world',
             $this->sanitize($config, '<div style="width: 100px">Hello</div> world')
         );
+
+        $this->assertSame(
+            '<a href="https://symfony.com" rel="noopener noreferrer">Hello</a> world',
+            $this->sanitize($config, '<a href="https://symfony.com" rel="noopener">Hello</a> world')
+        );
     }
 
     public function testForceHttps()
@@ -311,6 +323,24 @@
         );
     }
 
+    public function testAreaUsesLinkPolicy()
+    {
+        $config = (new HtmlSanitizerConfig())
+            ->allowElement('area', ['href'])
+            ->allowLinkHosts(['trusted.com'])
+        ;
+
+        $this->assertSame(
+            '<area href="https://trusted.com" />',
+            $this->sanitize($config, '<area href="https://trusted.com">')
+        );
+
+        $this->assertSame(
+            '<area />',
+            $this->sanitize($config, '<area href="https://untrusted.com">')
+        );
+    }
+
     public function testAllowLinksRelative()
     {
         $config = (new HtmlSanitizerConfig())
@@ -393,11 +423,91 @@
         );
     }
 
+    public function testActionAttributeIsSanitized()
+    {
+        $config = (new HtmlSanitizerConfig())
+            ->allowElement('form', ['action'])
+        ;
+
+        $this->assertSame(
+            '<form>Hello world</form>',
+            $this->sanitize($config, '<form action="javascript:alert(1)">Hello world</form>')
+        );
+
+        $this->assertSame(
+            '<form>Hello world</form>',
+            $this->sanitize($config, '<form action="data:text/html,foo">Hello world</form>')
+        );
+
+        $this->assertSame(
+            '<form action="https://symfony.com">Hello world</form>',
+            $this->sanitize($config, '<form action="https://symfony.com">Hello world</form>')
+        );
+    }
+
+    public function testFormactionAttributeIsSanitized()
+    {
+        $config = (new HtmlSanitizerConfig())
+            ->allowElement('button', ['formaction'])
+            ->allowElement('input', ['type', 'formaction'])
+        ;
+
+        $this->assertSame(
+            '<button>Submit</button>',
+            $this->sanitize($config, '<button formaction="javascript:alert(1)">Submit</button>')
+        );
+
+        $this->assertSame(
+            '<input type="image" />',
+            $this->sanitize($config, '<input type="image" formaction="javascript:alert(1)">')
+        );
+
+        $this->assertSame(
+            '<button formaction="https://symfony.com">Submit</button>',
+            $this->sanitize($config, '<button formaction="https://symfony.com">Submit</button>')
+        );
+    }
+
+    public function testPosterAttributeIsSanitized()
+    {
+        $config = (new HtmlSanitizerConfig())
+            ->allowElement('video', ['poster'])
+        ;
+
+        $this->assertSame(
+            '<video>Hello world</video>',
+            $this->sanitize($config, '<video poster="javascript:alert(1)">Hello world</video>')
+        );
+
+        $this->assertSame(
+            '<video poster="https://symfony.com/poster.jpg">Hello world</video>',
+            $this->sanitize($config, '<video poster="https://symfony.com/poster.jpg">Hello world</video>')
+        );
+    }
+
+    public function testCiteAttributeIsSanitized()
+    {
+        $config = (new HtmlSanitizerConfig())
+            ->allowElement('blockquote', ['cite'])
+            ->allowElement('q', ['cite'])
+        ;
+
+        $this->assertSame(
+            '<blockquote>Hello world</blockquote>',
+            $this->sanitize($config, '<blockquote cite="javascript:alert(1)">Hello world</blockquote>')
+        );
+
+        $this->assertSame(
+            '<q cite="https://symfony.com">Hello world</q>',
+            $this->sanitize($config, '<q cite="https://symfony.com">Hello world</q>')
+        );
+    }
+
     public function testCustomAttributeSanitizer()
     {
         $config = (new HtmlSanitizerConfig())
             ->allowElement('div', ['data-attr'])
-            ->withAttributeSanitizer(new class() implements AttributeSanitizerInterface {
+            ->withAttributeSanitizer(new class implements AttributeSanitizerInterface {
                 public function getSupportedElements(): ?array
                 {
                     return ['div'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/TextSanitizer/UrlSanitizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/TextSanitizer/UrlSanitizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/TextSanitizer/UrlSanitizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Tests/TextSanitizer/UrlSanitizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -283,6 +283,42 @@
             'expected' => 'https://trusted.com/link.php',
         ];
 
+        yield [
+            'input' => 'https://evil\\@trusted.com/',
+            'allowedSchemes' => ['https'],
+            'allowedHosts' => ['trusted.com'],
+            'forceHttps' => false,
+            'allowRelative' => false,
+            'expected' => null,
+        ];
+
+        yield [
+            'input' => 'https:/evil.com/',
+            'allowedSchemes' => ['https'],
+            'allowedHosts' => ['trusted.com'],
+            'forceHttps' => false,
+            'allowRelative' => true,
+            'expected' => null,
+        ];
+
+        yield [
+            'input' => 'https:///evil.com/',
+            'allowedSchemes' => ['https'],
+            'allowedHosts' => ['trusted.com'],
+            'forceHttps' => false,
+            'allowRelative' => true,
+            'expected' => null,
+        ];
+
+        yield [
+            'input' => 'https:\\evil.com',
+            'allowedSchemes' => ['https'],
+            'allowedHosts' => ['trusted.com'],
+            'forceHttps' => false,
+            'allowRelative' => true,
+            'expected' => null,
+        ];
+
         // Allow relative
         yield [
             'input' => '/link.php',
@@ -369,7 +405,7 @@
             "	   :foo.com   \n" => null,
             ' foo.com  ' => null,
             'a:	 foo.com' => null,
-            'http://f:21/ b ? d # e ' => null,
+            'http://f:21/ b ? d # e ' => ['scheme' => 'http', 'host' => 'f'],
             'lolscheme:x x#x x' => null,
             'http://f:/c' => ['scheme' => 'http', 'host' => 'f'],
             'http://f:0/c' => ['scheme' => 'http', 'host' => 'f'],
@@ -443,7 +479,7 @@
             'javascript:example.com/' => ['scheme' => 'javascript', 'host' => null],
             'mailto:example.com/' => ['scheme' => 'mailto', 'host' => null],
             '/a/b/c' => ['scheme' => null, 'host' => null],
-            '/a/ /c' => null,
+            '/a/ /c' => ['scheme' => null, 'host' => null],
             '/a%2fc' => ['scheme' => null, 'host' => null],
             '/a/%2f/c' => ['scheme' => null, 'host' => null],
             '#β' => ['scheme' => null, 'host' => null],
@@ -506,7 +542,7 @@
             "http://example.com/\u{feff}/foo" => ['scheme' => 'http', 'host' => 'example.com'],
             "http://example.com\u{002f}\u{202e}\u{002f}\u{0066}\u{006f}\u{006f}\u{002f}\u{202d}\u{002f}\u{0062}\u{0061}\u{0072}\u{0027}\u{0020}" => null,
             'http://www.google.com/foo?bar=baz#' => ['scheme' => 'http', 'host' => 'www.google.com'],
-            'http://www.google.com/foo?bar=baz# »' => null,
+            'http://www.google.com/foo?bar=baz# »' => ['scheme' => 'http', 'host' => 'www.google.com'],
             'data:test# »' => null,
             'http://www.google.com' => ['scheme' => 'http', 'host' => 'www.google.com'],
             'http://192.0x00A80001' => ['scheme' => 'http', 'host' => '192.0x00A80001'],
@@ -810,6 +846,22 @@
             'a\\/\\/' => ['scheme' => null, 'host' => null],
             'test-a-colon.html' => ['scheme' => null, 'host' => null],
             'test-a-colon-b.html' => ['scheme' => null, 'host' => null],
+            'https://example.com/path with space' => ['scheme' => 'https', 'host' => 'example.com'],
+            'https://example.com:80/path with space' => ['scheme' => 'https', 'host' => 'example.com'],
+            'example.com/path with space' => ['scheme' => null, 'host' => null],
+            'https://user@example.com/path with space' => ['scheme' => 'https', 'host' => 'example.com'],
+            'https://user with space@www.example.com/path with space' => null,
+            'https://example.com?query=with space' => ['scheme' => 'https', 'host' => 'example.com'],
+            '//example.com/path with space' => ['scheme' => null, 'host' => 'example.com'],
+            '/file with space.html' => ['scheme' => null, 'host' => null],
+            'file with space.html' => ['scheme' => null, 'host' => null],
+            'mailto:foo bar@example.com' => null,
+            'https://[::1]/path with space' => ['scheme' => 'https', 'host' => '[::1]'],
+            "http://example.com/foo\u{202E}bar" => null,
+            "http://example.com/foo\u{202D}bar with space" => null,
+            "http://example.com/\u{2066}bar with space" => null,
+            "http://example.com/\u{2069}bar" => null,
+            "http://example.com\u{202E}/foo" => null,
         ];
 
         foreach ($urls as $url => $expected) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/TextSanitizer/UrlSanitizer.php symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/TextSanitizer/UrlSanitizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/TextSanitizer/UrlSanitizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/TextSanitizer/UrlSanitizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,6 +35,10 @@
             return null;
         }
 
+        if (false !== strpbrk($input, '\\') || preg_match('~^(?:https?|ftp|wss?):(/[^/]|///)~i', $input)) {
+            return null;
+        }
+
         $url = self::parse($input);
 
         // Malformed URL
@@ -76,7 +80,7 @@
     /**
      * Parses a given URL and returns an array of its components.
      *
-     * @return null|array{
+     * @return array{
      *     scheme:?string,
      *     user:?string,
      *     pass:?string,
@@ -85,7 +89,7 @@
      *     path:string,
      *     query:?string,
      *     fragment:?string
-     * }
+     * }|null
      */
     public static function parse(string $url): ?array
     {
@@ -94,12 +98,43 @@
         }
 
         try {
-            $parsedUrl = UriString::parse($url);
+            // Reject explicit-direction BiDi formatting characters: they have no
+            // legitimate place in a URL and enable visual spoofing of the rendered
+            // href when the URL is later embedded in HTML.
+            if (preg_match('/[\x{202A}-\x{202E}\x{2066}-\x{2069}]/u', $url)) {
+                return null;
+            }
+
+            // Browsers tolerate spaces inside path/query/fragment by transparently
+            // percent-encoding them. Mirror that behavior, but never inside the
+            // scheme or authority (where spaces are illegal); the whitespace check
+            // below rejects any space that didn't fit in the encoded slice.
+            if (str_contains($url, ' ')) {
+                if (str_starts_with($url, ' ')) {
+                    return null;
+                }
+
+                if (false !== $i = strpos($url, '://')) {
+                    $i += 3 + strcspn($url, '/?#', $i + 3);
+                } elseif (str_starts_with($url, '//')) {
+                    $i = 2 + strcspn($url, '/?#', 2);
+                } elseif (preg_match('#^[a-z][a-z0-9+.\-]*:#i', $url)) {
+                    // Hostless scheme (data:, mailto:, …): leave the URL untouched
+                    // and let the whitespace check reject it.
+                    $i = \strlen($url);
+                } else {
+                    $i = 0;
+                }
+
+                $url = substr($url, 0, $i).str_replace(' ', '%20', substr($url, $i));
+            }
 
             if (preg_match('/\s/', $url)) {
                 return null;
             }
 
+            $parsedUrl = UriString::parse($url);
+
             if (isset($parsedUrl['host']) && self::decodeUnreservedCharacters($parsedUrl['host']) !== $parsedUrl['host']) {
                 return null;
             }
@@ -112,7 +147,7 @@
 
     private static function isHostlessScheme(?string $scheme): bool
     {
-        return \in_array($scheme, ['blob', 'chrome', 'data', 'file', 'geo', 'mailto', 'maps', 'tel', 'view-source'], true);
+        return \in_array($scheme, ['blob', 'chrome', 'data', 'file', 'geo', 'mailto', 'maps', 'tel', 'sms', 'view-source'], true);
     }
 
     private static function isAllowedHost(?string $host, array $allowedHosts): bool
@@ -136,7 +171,7 @@
     {
         // Check each chunk of the domain is valid
         foreach ($trustedParts as $key => $trustedPart) {
-            if (!array_key_exists($key, $uriParts) || $uriParts[$key] !== $trustedPart) {
+            if (!\array_key_exists($key, $uriParts) || $uriParts[$key] !== $trustedPart) {
                 return false;
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/AttributeSanitizer/UrlAttributeSanitizer.php symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/AttributeSanitizer/UrlAttributeSanitizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/AttributeSanitizer/UrlAttributeSanitizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/AttributeSanitizer/UrlAttributeSanitizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,12 +27,12 @@
 
     public function getSupportedAttributes(): ?array
     {
-        return ['src', 'href', 'lowsrc', 'background', 'ping'];
+        return ['src', 'href', 'lowsrc', 'background', 'ping', 'action', 'formaction', 'poster', 'cite'];
     }
 
     public function sanitizeAttribute(string $element, string $attribute, string $value, HtmlSanitizerConfig $config): ?string
     {
-        if ('a' === $element) {
+        if (\in_array($element, ['a', 'area'], true) || \in_array($attribute, ['action', 'formaction', 'cite'], true)) {
             return UrlSanitizer::sanitize(
                 $value,
                 $config->getAllowedLinkSchemes(),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/DomVisitor.php symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/DomVisitor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/DomVisitor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/DomVisitor.php	2026-05-20 10:56:49.000000000 +0200
@@ -120,7 +120,7 @@
 
         // Force configured attributes
         foreach ($this->forcedAttributes[$domNodeName] ?? [] as $attribute => $value) {
-            $node->setAttribute($attribute, $value);
+            $node->setAttribute($attribute, $value, true);
         }
 
         $cursor->node->addChild($node);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/Node/Node.php symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/Node/Node.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/Node/Node.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HtmlSanitizer/Visitor/Node/Node.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,10 +58,10 @@
         return $this->attributes[$name] ?? null;
     }
 
-    public function setAttribute(string $name, ?string $value): void
+    public function setAttribute(string $name, ?string $value, bool $override = false): void
     {
         // Always use only the first declaration (ease sanitization)
-        if (!\array_key_exists($name, $this->attributes)) {
+        if ($override || !\array_key_exists($name, $this->attributes)) {
             $this->attributes[$name] = $value;
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/AmpHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/AmpHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/AmpHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/AmpHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -133,9 +133,9 @@
             $request->addHeader($h[0], $h[1]);
         }
 
-        $request->setTcpConnectTimeout(1000 * $options['timeout']);
-        $request->setTlsHandshakeTimeout(1000 * $options['timeout']);
-        $request->setTransferTimeout(1000 * $options['max_duration']);
+        $request->setTcpConnectTimeout(ceil(1000 * $options['timeout']));
+        $request->setTlsHandshakeTimeout(ceil(1000 * $options['timeout']));
+        $request->setTransferTimeout(ceil(1000 * $options['max_duration']));
         if (method_exists($request, 'setInactivityTimeout')) {
             $request->setInactivityTimeout(0);
         }
@@ -166,7 +166,7 @@
             foreach ($pushedResponses as [$pushedUrl, $pushDeferred]) {
                 $pushDeferred->fail(new CancelledException());
 
-                $this->logger?->debug(sprintf('Unused pushed response: "%s"', $pushedUrl));
+                $this->logger?->debug(\sprintf('Unused pushed response: "%s"', $pushedUrl));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/CachingHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/CachingHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/CachingHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/CachingHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
     public function __construct(HttpClientInterface $client, StoreInterface $store, array $defaultOptions = [])
     {
         if (!class_exists(HttpClientKernel::class)) {
-            throw new \LogicException(sprintf('Using "%s" requires the HttpKernel component, try running "composer require symfony/http-kernel".', __CLASS__));
+            throw new \LogicException(\sprintf('Using "%s" requires the HttpKernel component, try running "composer require symfony/http-kernel".', __CLASS__));
         }
 
         $this->client = $client;
@@ -79,10 +79,14 @@
 
         foreach ($options['normalized_headers'] as $name => $values) {
             if ('cookie' !== $name) {
+                $headerValues = [];
+
                 foreach ($values as $value) {
-                    $request->headers->set($name, substr($value, 2 + \strlen($name)), false);
+                    $headerValues[] = substr($value, 2 + \strlen($name));
                 }
 
+                $request->headers->set($name, $headerValues);
+
                 continue;
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Chunk/ErrorChunk.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Chunk/ErrorChunk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Chunk/ErrorChunk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Chunk/ErrorChunk.php	2026-05-20 10:56:49.000000000 +0200
@@ -93,15 +93,12 @@
         return $this->didThrow;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Chunk/ServerSentEvent.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Chunk/ServerSentEvent.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Chunk/ServerSentEvent.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Chunk/ServerSentEvent.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,15 +45,22 @@
             $i += 1 + (' ' === ($line[1 + $i] ?? ''));
 
             switch ($field) {
-                case 'id': $this->id = substr($line, $i); break;
-                case 'event': $this->type = substr($line, $i); break;
-                case 'data': $this->data .= ('' === $this->data ? '' : "\n").substr($line, $i); break;
+                case 'id':
+                    $this->id = substr($line, $i);
+                    break;
+                case 'event':
+                    $this->type = substr($line, $i);
+                    break;
+                case 'data':
+                    $this->data .= ('' === $this->data ? '' : "\n").substr($line, $i);
+                    break;
                 case 'retry':
                     $retry = substr($line, $i);
 
                     if ('' !== $retry && \strlen($retry) === strspn($retry, '0123456789')) {
                         $this->retry = $retry / 1000.0;
                     }
+
                     break;
             }
         }
@@ -89,17 +96,17 @@
         }
 
         if ('' === $this->data) {
-            throw new JsonException(sprintf('Server-Sent Event%s data is empty.', '' !== $this->id ? sprintf(' "%s"', $this->id) : ''));
+            throw new JsonException(\sprintf('Server-Sent Event%s data is empty.', '' !== $this->id ? \sprintf(' "%s"', $this->id) : ''));
         }
 
         try {
             $jsonData = json_decode($this->data, true, 512, \JSON_BIGINT_AS_STRING | \JSON_THROW_ON_ERROR);
         } catch (\JsonException $e) {
-            throw new JsonException(sprintf('Decoding Server-Sent Event%s failed: ', '' !== $this->id ? sprintf(' "%s"', $this->id) : '').$e->getMessage(), $e->getCode());
+            throw new JsonException(\sprintf('Decoding Server-Sent Event%s failed: ', '' !== $this->id ? \sprintf(' "%s"', $this->id) : '').$e->getMessage(), $e->getCode());
         }
 
         if (!\is_array($jsonData)) {
-            throw new JsonException(sprintf('JSON content was expected to decode to an array, "%s" returned in Server-Sent Event%s.', get_debug_type($jsonData), '' !== $this->id ? sprintf(' "%s"', $this->id) : ''));
+            throw new JsonException(\sprintf('JSON content was expected to decode to an array, "%s" returned in Server-Sent Event%s.', get_debug_type($jsonData), '' !== $this->id ? \sprintf(' "%s"', $this->id) : ''));
         }
 
         return $this->jsonData = $jsonData;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -26,6 +26,7 @@
         "psr/log": "^1|^2|^3",
         "symfony/deprecation-contracts": "^2.5|^3",
         "symfony/http-client-contracts": "~3.4.4|^3.5.2",
+        "symfony/polyfill-php83": "^1.29",
         "symfony/service-contracts": "^2.5|^3"
     },
     "require-dev": {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/CurlHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/CurlHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/CurlHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/CurlHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,9 +51,6 @@
 
     private ?LoggerInterface $logger = null;
 
-    private int $maxHostConnections;
-    private int $maxPendingPushes;
-
     /**
      * An internal object to share state between the client and its responses.
      */
@@ -72,22 +69,18 @@
             throw new \LogicException('You cannot use the "Symfony\Component\HttpClient\CurlHttpClient" as the "curl" extension is not installed.');
         }
 
-        $this->maxHostConnections = $maxHostConnections;
-        $this->maxPendingPushes = $maxPendingPushes;
-
         $this->defaultOptions['buffer'] ??= self::shouldBuffer(...);
 
         if ($defaultOptions) {
             [, $this->defaultOptions] = self::prepareRequest(null, null, $defaultOptions, $this->defaultOptions);
         }
+
+        $this->multi = new CurlClientState($maxHostConnections, $maxPendingPushes);
     }
 
     public function setLogger(LoggerInterface $logger): void
     {
-        $this->logger = $logger;
-        if (isset($this->multi)) {
-            $this->multi->logger = $logger;
-        }
+        $this->logger = $this->multi->logger = $logger;
     }
 
     /**
@@ -95,8 +88,6 @@
      */
     public function request(string $method, string $url, array $options = []): ResponseInterface
     {
-        $multi = $this->ensureState();
-
         [$url, $options] = self::prepareRequest($method, $url, $options, $this->defaultOptions);
         $scheme = $url['scheme'];
         $authority = $url['authority'];
@@ -152,14 +143,14 @@
             if (\is_array($options['auth_ntlm'])) {
                 $count = \count($options['auth_ntlm']);
                 if ($count <= 0 || $count > 2) {
-                    throw new InvalidArgumentException(sprintf('Option "auth_ntlm" must contain 1 or 2 elements, %d given.', $count));
+                    throw new InvalidArgumentException(\sprintf('Option "auth_ntlm" must contain 1 or 2 elements, %d given.', $count));
                 }
 
                 $options['auth_ntlm'] = implode(':', $options['auth_ntlm']);
             }
 
             if (!\is_string($options['auth_ntlm'])) {
-                throw new InvalidArgumentException(sprintf('Option "auth_ntlm" must be a string or an array, "%s" given.', get_debug_type($options['auth_ntlm'])));
+                throw new InvalidArgumentException(\sprintf('Option "auth_ntlm" must be a string or an array, "%s" given.', get_debug_type($options['auth_ntlm'])));
             }
 
             $curlopts[\CURLOPT_USERPWD] = $options['auth_ntlm'];
@@ -174,24 +165,24 @@
         }
 
         // curl's resolve feature varies by host:port but ours varies by host only, let's handle this with our own DNS map
-        if (isset($multi->dnsCache->hostnames[$host])) {
-            $options['resolve'] += [$host => $multi->dnsCache->hostnames[$host]];
+        if (isset($this->multi->dnsCache->hostnames[$host])) {
+            $options['resolve'] += [$host => $this->multi->dnsCache->hostnames[$host]];
         }
 
-        if ($options['resolve'] || $multi->dnsCache->evictions) {
+        if ($options['resolve'] || $this->multi->dnsCache->evictions) {
             // First reset any old DNS cache entries then add the new ones
-            $resolve = $multi->dnsCache->evictions;
-            $multi->dnsCache->evictions = [];
+            $resolve = $this->multi->dnsCache->evictions;
+            $this->multi->dnsCache->evictions = [];
 
             if ($resolve && 0x072A00 > CurlClientState::$curlVersion['version_number']) {
                 // DNS cache removals require curl 7.42 or higher
-                $multi->reset();
+                $this->multi->reset();
             }
 
             foreach ($options['resolve'] as $resolveHost => $ip) {
                 $resolve[] = null === $ip ? "-$resolveHost:$port" : "$resolveHost:$port:$ip";
-                $multi->dnsCache->hostnames[$resolveHost] = $ip;
-                $multi->dnsCache->removals["-$resolveHost:$port"] = "-$resolveHost:$port";
+                $this->multi->dnsCache->hostnames[$resolveHost] = $ip;
+                $this->multi->dnsCache->removals["-$resolveHost:$port"] = "-$resolveHost:$port";
             }
 
             $curlopts[\CURLOPT_RESOLVE] = $resolve;
@@ -293,26 +284,26 @@
             $curlopts += $options['extra']['curl'];
         }
 
-        if ($pushedResponse = $multi->pushedResponses[$url] ?? null) {
-            unset($multi->pushedResponses[$url]);
+        if ($pushedResponse = $this->multi->pushedResponses[$url] ?? null) {
+            unset($this->multi->pushedResponses[$url]);
 
             if (self::acceptPushForRequest($method, $options, $pushedResponse)) {
-                $this->logger?->debug(sprintf('Accepting pushed response: "%s %s"', $method, $url));
+                $this->logger?->debug(\sprintf('Accepting pushed response: "%s %s"', $method, $url));
 
                 // Reinitialize the pushed response with request's options
                 $ch = $pushedResponse->handle;
                 $pushedResponse = $pushedResponse->response;
-                $pushedResponse->__construct($multi, $url, $options, $this->logger);
+                $pushedResponse->__construct($this->multi, $url, $options, $this->logger);
             } else {
-                $this->logger?->debug(sprintf('Rejecting pushed response: "%s"', $url));
+                $this->logger?->debug(\sprintf('Rejecting pushed response: "%s"', $url));
                 $pushedResponse = null;
             }
         }
 
         if (!$pushedResponse) {
             $ch = curl_init();
-            $this->logger?->info(sprintf('Request: "%s %s"', $method, $url));
-            $curlopts += [\CURLOPT_SHARE => $multi->share];
+            $this->logger?->info(\sprintf('Request: "%s %s"', $method, $url));
+            $curlopts += [\CURLOPT_SHARE => $this->multi->share];
         }
 
         foreach ($curlopts as $opt => $value) {
@@ -321,11 +312,11 @@
             }
             if (null !== $value && !curl_setopt($ch, $opt, $value) && \CURLOPT_CERTINFO !== $opt && (!\defined('CURLOPT_HEADEROPT') || \CURLOPT_HEADEROPT !== $opt)) {
                 $constantName = $this->findConstantName($opt);
-                throw new TransportException(sprintf('Curl option "%s" is not supported.', $constantName ?? $opt));
+                throw new TransportException(\sprintf('Curl option "%s" is not supported.', $constantName ?? $opt));
             }
         }
 
-        return $pushedResponse ?? new CurlResponse($multi, $ch, $options, $this->logger, $method, self::createRedirectResolver($options, $authority), CurlClientState::$curlVersion['version_number'], $url);
+        return $pushedResponse ?? new CurlResponse($this->multi, $ch, $options, $this->logger, $method, self::createRedirectResolver($options, $authority), CurlClientState::$curlVersion['version_number'], $url);
     }
 
     public function stream(ResponseInterface|iterable $responses, ?float $timeout = null): ResponseStreamInterface
@@ -334,11 +325,9 @@
             $responses = [$responses];
         }
 
-        $multi = $this->ensureState();
-
-        if ($multi->handle instanceof \CurlMultiHandle) {
+        if ($this->multi->handle instanceof \CurlMultiHandle) {
             $active = 0;
-            while (\CURLM_CALL_MULTI_PERFORM === curl_multi_exec($multi->handle, $active)) {
+            while (\CURLM_CALL_MULTI_PERFORM === curl_multi_exec($this->multi->handle, $active)) {
             }
         }
 
@@ -347,9 +336,7 @@
 
     public function reset(): void
     {
-        if (isset($this->multi)) {
-            $this->multi->reset();
-        }
+        $this->multi->reset();
     }
 
     /**
@@ -378,7 +365,9 @@
             }
         }
 
-        return true;
+        $statusCode = $pushedResponse->response->getInfo('http_code') ?: 200;
+
+        return $statusCode < 300 || 400 <= $statusCode;
     }
 
     /**
@@ -388,7 +377,7 @@
     {
         if (!$eof && \strlen($buffer) < $length) {
             if (!\is_string($data = $body($length))) {
-                throw new TransportException(sprintf('The return value of the "body" option callback must be a string, "%s" returned.', get_debug_type($data)));
+                throw new TransportException(\sprintf('The return value of the "body" option callback must be a string, "%s" returned.', get_debug_type($data)));
             }
 
             $buffer .= $data;
@@ -446,16 +435,6 @@
         };
     }
 
-    private function ensureState(): CurlClientState
-    {
-        if (!isset($this->multi)) {
-            $this->multi = new CurlClientState($this->maxHostConnections, $this->maxPendingPushes);
-            $this->multi->logger = $this->logger;
-        }
-
-        return $this->multi;
-    }
-
     private function findConstantName(int $opt): ?string
     {
         $constants = array_filter(get_defined_constants(), static fn ($v, $k) => $v === $opt && 'C' === $k[0] && (str_starts_with($k, 'CURLOPT_') || str_starts_with($k, 'CURLINFO_')), \ARRAY_FILTER_USE_BOTH);
@@ -551,7 +530,7 @@
         foreach ($options as $opt => $optValue) {
             if (isset($curloptsToConfig[$opt])) {
                 $constName = $this->findConstantName($opt) ?? $opt;
-                throw new InvalidArgumentException(sprintf('Cannot set "%s" with "extra.curl", use option "%s" instead.', $constName, $curloptsToConfig[$opt]));
+                throw new InvalidArgumentException(\sprintf('Cannot set "%s" with "extra.curl", use option "%s" instead.', $constName, $curloptsToConfig[$opt]));
             }
 
             if (\in_array($opt, $methodOpts)) {
@@ -560,7 +539,7 @@
 
             if (\in_array($opt, $curloptsToCheck)) {
                 $constName = $this->findConstantName($opt) ?? $opt;
-                throw new InvalidArgumentException(sprintf('Cannot set "%s" with "extra.curl".', $constName));
+                throw new InvalidArgumentException(\sprintf('Cannot set "%s" with "extra.curl".', $constName));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,8 +45,8 @@
 
     public function lateCollect(): void
     {
-        $this->data['request_count'] = $this->data['request_count'] ?? 0;
-        $this->data['error_count'] = $this->data['error_count'] ?? 0;
+        $this->data['request_count'] ??= 0;
+        $this->data['error_count'] ??= 0;
         $this->data += ['clients' => []];
 
         foreach ($this->clients as $name => $client) {
@@ -64,7 +64,9 @@
             $this->data['error_count'] += $errorCount;
             $this->data['clients'][$name]['error_count'] += $errorCount;
 
-            $client->reset();
+            if ($traces) {
+                $client->reset();
+            }
         }
     }
 
@@ -201,11 +203,14 @@
                 $dataArg[] = '--data-raw '.$this->escapePayload($body);
             } elseif (\is_array($body)) {
                 try {
-                    $body = explode('&', self::normalizeBody($body));
+                    $body = self::normalizeBody($body);
                 } catch (TransportException) {
                     return null;
                 }
-                foreach ($body as $value) {
+                if (!\is_string($body)) {
+                    return null;
+                }
+                foreach (explode('&', $body) as $value) {
                     $dataArg[] = '--data-raw '.$this->escapePayload(urldecode($value));
                 }
             } else {
@@ -233,8 +238,8 @@
             }
 
             if (preg_match('/^> ([A-Z]+)/', $line, $match)) {
-                $command[] = sprintf('--request %s', $match[1]);
-                $command[] = sprintf('--url %s', escapeshellarg($url));
+                $command[] = \sprintf('--request %s', $match[1]);
+                $command[] = \sprintf('--url %s', escapeshellarg($url));
                 continue;
             }
 
@@ -252,7 +257,7 @@
     {
         static $useProcess;
 
-        if ($useProcess ??= function_exists('proc_open') && class_exists(Process::class)) {
+        if ($useProcess ??= \function_exists('proc_open') && class_exists(Process::class)) {
             return substr((new Process(['', $payload]))->getCommandLine(), 3);
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/EventSourceHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/EventSourceHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/EventSourceHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/EventSourceHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
 
     public function request(string $method, string $url, array $options = []): ResponseInterface
     {
-        $state = new class() {
+        $state = new class {
             public ?string $buffer = null;
             public ?string $lastEventId = null;
             public float $reconnectionTime;
@@ -110,14 +110,12 @@
                 if (preg_match('/^text\/event-stream(;|$)/i', $context->getHeaders()['content-type'][0] ?? '')) {
                     $state->buffer = '';
                 } elseif (null !== $lastError || (null !== $state->buffer && 200 === $context->getStatusCode())) {
-                    throw new EventSourceException(sprintf('Response content-type is "%s" while "text/event-stream" was expected for "%s".', $context->getHeaders()['content-type'][0] ?? '', $context->getInfo('url')));
+                    throw new EventSourceException(\sprintf('Response content-type is "%s" while "text/event-stream" was expected for "%s".', $context->getHeaders()['content-type'][0] ?? '', $context->getInfo('url')));
                 } else {
                     $context->passthru();
                 }
 
-                if (null === $lastError) {
-                    yield $chunk;
-                }
+                yield $chunk;
 
                 return;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Exception/HttpExceptionTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Exception/HttpExceptionTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Exception/HttpExceptionTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Exception/HttpExceptionTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
         $this->response = $response;
         $code = $response->getInfo('http_code');
         $url = $response->getInfo('url');
-        $message = sprintf('HTTP %d returned for "%s".', $code, $url);
+        $message = \sprintf('HTTP %d returned for "%s".', $code, $url);
 
         $httpCodeFound = false;
         $isJson = false;
@@ -37,7 +37,7 @@
                     break;
                 }
 
-                $message = sprintf('%s returned for "%s".', $h, $url);
+                $message = \sprintf('%s returned for "%s".', $h, $url);
                 $httpCodeFound = true;
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/HttpClientTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/HttpClientTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/HttpClientTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/HttpClientTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
     {
         if (null !== $method) {
             if (\strlen($method) !== strspn($method, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')) {
-                throw new InvalidArgumentException(sprintf('Invalid HTTP method "%s", only uppercase letters are accepted.', $method));
+                throw new InvalidArgumentException(\sprintf('Invalid HTTP method "%s", only uppercase letters are accepted.', $method));
             }
             if (!$method) {
                 throw new InvalidArgumentException('The HTTP method cannot be empty.');
@@ -61,11 +61,11 @@
             $options['buffer'] = static function (array $headers) use ($buffer) {
                 if (!\is_bool($buffer = $buffer($headers))) {
                     if (!\is_array($bufferInfo = @stream_get_meta_data($buffer))) {
-                        throw new \LogicException(sprintf('The closure passed as option "buffer" must return bool or stream resource, got "%s".', get_debug_type($buffer)));
+                        throw new \LogicException(\sprintf('The closure passed as option "buffer" must return bool or stream resource, got "%s".', get_debug_type($buffer)));
                     }
 
                     if (false === strpbrk($bufferInfo['mode'], 'acew+')) {
-                        throw new \LogicException(sprintf('The stream returned by the closure passed as option "buffer" must be writeable, got mode "%s".', $bufferInfo['mode']));
+                        throw new \LogicException(\sprintf('The stream returned by the closure passed as option "buffer" must be writeable, got mode "%s".', $bufferInfo['mode']));
                     }
                 }
 
@@ -73,11 +73,11 @@
             };
         } elseif (!\is_bool($buffer)) {
             if (!\is_array($bufferInfo = @stream_get_meta_data($buffer))) {
-                throw new InvalidArgumentException(sprintf('Option "buffer" must be bool, stream resource or Closure, "%s" given.', get_debug_type($buffer)));
+                throw new InvalidArgumentException(\sprintf('Option "buffer" must be bool, stream resource or Closure, "%s" given.', get_debug_type($buffer)));
             }
 
             if (false === strpbrk($bufferInfo['mode'], 'acew+')) {
-                throw new InvalidArgumentException(sprintf('The stream in option "buffer" must be writeable, mode "%s" given.', $bufferInfo['mode']));
+                throw new InvalidArgumentException(\sprintf('The stream in option "buffer" must be writeable, mode "%s" given.', $bufferInfo['mode']));
             }
         }
 
@@ -128,25 +128,25 @@
 
         // Validate on_progress
         if (isset($options['on_progress']) && !\is_callable($onProgress = $options['on_progress'])) {
-            throw new InvalidArgumentException(sprintf('Option "on_progress" must be callable, "%s" given.', get_debug_type($onProgress)));
+            throw new InvalidArgumentException(\sprintf('Option "on_progress" must be callable, "%s" given.', get_debug_type($onProgress)));
         }
 
         if (\is_array($options['auth_basic'] ?? null)) {
             $count = \count($options['auth_basic']);
             if ($count <= 0 || $count > 2) {
-                throw new InvalidArgumentException(sprintf('Option "auth_basic" must contain 1 or 2 elements, "%s" given.', $count));
+                throw new InvalidArgumentException(\sprintf('Option "auth_basic" must contain 1 or 2 elements, "%s" given.', $count));
             }
 
             $options['auth_basic'] = implode(':', $options['auth_basic']);
         }
 
         if (!\is_string($options['auth_basic'] ?? '')) {
-            throw new InvalidArgumentException(sprintf('Option "auth_basic" must be string or an array, "%s" given.', get_debug_type($options['auth_basic'])));
+            throw new InvalidArgumentException(\sprintf('Option "auth_basic" must be string or an array, "%s" given.', get_debug_type($options['auth_basic'])));
         }
 
         if (isset($options['auth_bearer'])) {
             if (!\is_string($options['auth_bearer'])) {
-                throw new InvalidArgumentException(sprintf('Option "auth_bearer" must be a string, "%s" given.', get_debug_type($options['auth_bearer'])));
+                throw new InvalidArgumentException(\sprintf('Option "auth_bearer" must be a string, "%s" given.', get_debug_type($options['auth_bearer'])));
             }
             if (preg_match('{[^\x21-\x7E]}', $options['auth_bearer'])) {
                 throw new InvalidArgumentException('Invalid character found in option "auth_bearer": '.json_encode($options['auth_bearer']).'.');
@@ -170,13 +170,14 @@
             unset($options['auth_basic'], $options['auth_bearer']);
 
             // Parse base URI
-            if (\is_string($options['base_uri'])) {
-                $options['base_uri'] = self::parseUrl($options['base_uri']);
+            if (\is_string($baseUri = $options['base_uri'] ?? null)) {
+                $baseUri = self::parseUrl($baseUri);
             }
+            unset($options['base_uri']);
 
             // Validate and resolve URL
             $url = self::parseUrl($url, $options['query']);
-            $url = self::resolveUrl($url, $options['base_uri'], $defaultOptions['query'] ?? []);
+            $url = self::resolveUrl($url, $baseUri, $defaultOptions['query'] ?? []);
         }
 
         // Finalize normalization of options
@@ -263,11 +264,11 @@
                     $msg = 'try using "%s" instead.';
                 }
 
-                throw new InvalidArgumentException(sprintf('Option "auth_ntlm" is not supported by "%s", '.$msg, __CLASS__, CurlHttpClient::class));
+                throw new InvalidArgumentException(\sprintf('Option "auth_ntlm" is not supported by "%s", '.$msg, __CLASS__, CurlHttpClient::class));
             }
 
             if ('vars' === $name) {
-                throw new InvalidArgumentException(sprintf('Option "vars" is not supported by "%s", try using "%s" instead.', __CLASS__, UriTemplateHttpClient::class));
+                throw new InvalidArgumentException(\sprintf('Option "vars" is not supported by "%s", try using "%s" instead.', __CLASS__, UriTemplateHttpClient::class));
             }
 
             $alternatives = [];
@@ -278,7 +279,7 @@
                 }
             }
 
-            throw new InvalidArgumentException(sprintf('Unsupported option "%s" passed to "%s", did you mean "%s"?', $name, __CLASS__, implode('", "', $alternatives ?: array_keys($defaultOptions))));
+            throw new InvalidArgumentException(\sprintf('Unsupported option "%s" passed to "%s", did you mean "%s"?', $name, __CLASS__, implode('", "', $alternatives ?: array_keys($defaultOptions))));
         }
 
         return $options;
@@ -300,13 +301,13 @@
 
             if (\is_int($name)) {
                 if (!\is_string($values)) {
-                    throw new InvalidArgumentException(sprintf('Invalid value for header "%s": expected string, "%s" given.', $name, get_debug_type($values)));
+                    throw new InvalidArgumentException(\sprintf('Invalid value for header "%s": expected string, "%s" given.', $name, get_debug_type($values)));
                 }
                 [$name, $values] = explode(':', $values, 2);
                 $values = [ltrim($values)];
             } elseif (!is_iterable($values)) {
                 if (\is_object($values)) {
-                    throw new InvalidArgumentException(sprintf('Invalid value for header "%s": expected string, "%s" given.', $name, get_debug_type($values)));
+                    throw new InvalidArgumentException(\sprintf('Invalid value for header "%s": expected string, "%s" given.', $name, get_debug_type($values)));
                 }
 
                 $values = (array) $values;
@@ -319,7 +320,7 @@
                 $normalizedHeaders[$lcName][] = $value = $name.': '.$value;
 
                 if (\strlen($value) !== strcspn($value, "\r\n\0")) {
-                    throw new InvalidArgumentException(sprintf('Invalid header: CR/LF/NUL found in "%s".', $value));
+                    throw new InvalidArgumentException(\sprintf('Invalid header: CR/LF/NUL found in "%s".', $value));
                 }
             }
         }
@@ -355,6 +356,7 @@
                     }
                 }
             });
+            $caster = null;
 
             if ('' === $body = http_build_query($body, '', '&')) {
                 return '';
@@ -392,10 +394,10 @@
                 $v = $streams[$v];
 
                 if (!\is_array($m = @stream_get_meta_data($v))) {
-                    throw new TransportException(sprintf('Invalid "%s" resource found in body part "%s".', get_resource_type($v), $k));
+                    throw new TransportException(\sprintf('Invalid "%s" resource found in body part "%s".', get_resource_type($v), $k));
                 }
                 if (feof($v)) {
-                    throw new TransportException(sprintf('Uploaded stream ended for body part "%s".', $k));
+                    throw new TransportException(\sprintf('Uploaded stream ended for body part "%s".', $k));
                 }
 
                 $m += stream_context_get_options($v)['http'] ?? [];
@@ -451,7 +453,7 @@
 
                     while (null !== $h && !feof($h)) {
                         if (false === $part = fread($h, $size)) {
-                            throw new TransportException(sprintf('Error while reading uploaded stream for body part "%s".', $k));
+                            throw new TransportException(\sprintf('Error while reading uploaded stream for body part "%s".', $k));
                         }
 
                         yield $part;
@@ -500,7 +502,7 @@
         }
 
         if (!\is_array(@stream_get_meta_data($body))) {
-            throw new InvalidArgumentException(sprintf('Option "body" must be string, stream resource, iterable or callable, "%s" given.', get_debug_type($body)));
+            throw new InvalidArgumentException(\sprintf('Option "body" must be string, stream resource, iterable or callable, "%s" given.', get_debug_type($body)));
         }
 
         return $body;
@@ -533,14 +535,14 @@
                 40 => ['sha1' => $fingerprint],
                 44 => ['pin-sha256' => [$fingerprint]],
                 64 => ['sha256' => $fingerprint],
-                default => throw new InvalidArgumentException(sprintf('Cannot auto-detect fingerprint algorithm for "%s".', $fingerprint)),
+                default => throw new InvalidArgumentException(\sprintf('Cannot auto-detect fingerprint algorithm for "%s".', $fingerprint)),
             };
         } elseif (\is_array($fingerprint)) {
             foreach ($fingerprint as $algo => $hash) {
                 $fingerprint[$algo] = 'pin-sha256' === $algo ? (array) $hash : str_replace(':', '', $hash);
             }
         } else {
-            throw new InvalidArgumentException(sprintf('Option "peer_fingerprint" must be string or array, "%s" given.', get_debug_type($fingerprint)));
+            throw new InvalidArgumentException(\sprintf('Option "peer_fingerprint" must be string or array, "%s" given.', get_debug_type($fingerprint)));
         }
 
         return $fingerprint;
@@ -574,15 +576,15 @@
         $givenUrl = $url;
 
         if (null !== $base && '' === ($base['scheme'] ?? '').($base['authority'] ?? '')) {
-            throw new InvalidArgumentException(sprintf('Invalid "base_uri" option: host or scheme is missing in "%s".', implode('', $base)));
+            throw new InvalidArgumentException(\sprintf('Invalid "base_uri" option: host or scheme is missing in "%s".', implode('', $base)));
         }
 
         if (null === $url['scheme'] && (null === $base || null === $base['scheme'])) {
-            throw new InvalidArgumentException(sprintf('Invalid URL: scheme is missing in "%s". Did you forget to add "http(s)://"?', implode('', $base ?? $url)));
+            throw new InvalidArgumentException(\sprintf('Invalid URL: scheme is missing in "%s". Did you forget to add "http(s)://"?', implode('', $base ?? $url)));
         }
 
         if (null === $base && '' === $url['scheme'].$url['authority']) {
-            throw new InvalidArgumentException(sprintf('Invalid URL: no "base_uri" option was provided and host or scheme is missing in "%s".', implode('', $url)));
+            throw new InvalidArgumentException(\sprintf('Invalid URL: no "base_uri" option was provided and host or scheme is missing in "%s".', implode('', $url)));
         }
 
         if (null !== $url['scheme']) {
@@ -643,7 +645,7 @@
         $tail = '';
 
         if (false === $parts = parse_url(\strlen($url) !== strcspn($url, '?#') ? $url : $url.$tail = '#')) {
-            throw new InvalidArgumentException(sprintf('Malformed URL "%s".', $url));
+            throw new InvalidArgumentException(\sprintf('Malformed URL "%s".', $url));
         }
 
         if ($query) {
@@ -663,7 +665,7 @@
 
         if (null !== $scheme) {
             if (!isset($allowedSchemes[$scheme = strtolower($scheme)])) {
-                throw new InvalidArgumentException(sprintf('Unsupported scheme in "%s": "%s" expected.', $url, implode('" or "', array_keys($allowedSchemes))));
+                throw new InvalidArgumentException(\sprintf('Unsupported scheme in "%s": "%s" expected.', $url, implode('" or "', array_keys($allowedSchemes))));
             }
 
             $port = $allowedSchemes[$scheme] === $port ? 0 : $port;
@@ -672,7 +674,7 @@
 
         if (null !== $host) {
             if (!\defined('INTL_IDNA_VARIANT_UTS46') && preg_match('/[\x80-\xFF]/', $host)) {
-                throw new InvalidArgumentException(sprintf('Unsupported IDN "%s", try enabling the "intl" PHP extension or running "composer require symfony/polyfill-intl-idn".', $host));
+                throw new InvalidArgumentException(\sprintf('Unsupported IDN "%s", try enabling the "intl" PHP extension or running "composer require symfony/polyfill-intl-idn".', $host));
             }
 
             $host = \defined('INTL_IDNA_VARIANT_UTS46') ? idn_to_ascii($host, \IDNA_DEFAULT | \IDNA_USE_STD3_RULES | \IDNA_CHECK_BIDI | \IDNA_CHECK_CONTEXTJ | \IDNA_NONTRANSITIONAL_TO_ASCII, \INTL_IDNA_VARIANT_UTS46) ?: strtolower($host) : strtolower($host);
@@ -686,11 +688,11 @@
 
             if (str_contains($parts[$part], '%')) {
                 // https://tools.ietf.org/html/rfc3986#section-2.3
-                $parts[$part] = preg_replace_callback('/%(?:2[DE]|3[0-9]|[46][1-9A-F]|5F|[57][0-9A]|7E)++/i', fn ($m) => rawurldecode($m[0]), $parts[$part]);
+                $parts[$part] = preg_replace_callback('/%(?:2[DE]|3[0-9]|[46][1-9A-F]|5F|[57][0-9A]|7E)++/i', static fn ($m) => rawurldecode($m[0]), $parts[$part]);
             }
 
             // https://tools.ietf.org/html/rfc3986#section-3.3
-            $parts[$part] = preg_replace_callback("#[^-A-Za-z0-9._~!$&/'()[\]*+,;=:@{}%]++#", fn ($m) => rawurlencode($m[0]), $parts[$part]);
+            $parts[$part] = preg_replace_callback("#[^-A-Za-z0-9._~!$&/'()[\]*+,;=:@{}%]++#", static fn ($m) => rawurlencode($m[0]), $parts[$part]);
         }
 
         return [
@@ -811,7 +813,7 @@
         } elseif ('https' === $proxy['scheme']) {
             $proxyUrl = 'ssl://'.$proxy['host'].':'.($proxy['port'] ?? '443');
         } else {
-            throw new TransportException(sprintf('Unsupported proxy scheme "%s": "http" or "https" expected.', $proxy['scheme']));
+            throw new TransportException(\sprintf('Unsupported proxy scheme "%s": "http" or "https" expected.', $proxy['scheme']));
         }
 
         $noProxy ??= $_SERVER['no_proxy'] ?? $_SERVER['NO_PROXY'] ?? '';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/HttplugClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/HttplugClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/HttplugClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/HttplugClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -114,7 +114,7 @@
     public function sendAsyncRequest(RequestInterface $request): HttplugPromise
     {
         if (!$promisePool = $this->promisePool) {
-            throw new \LogicException(sprintf('You cannot use "%s()" as the "guzzlehttp/promises" package is not installed. Try running "composer require guzzlehttp/promises".', __METHOD__));
+            throw new \LogicException(\sprintf('You cannot use "%s()" as the "guzzlehttp/promises" package is not installed. Try running "composer require guzzlehttp/promises".', __METHOD__));
         }
 
         try {
@@ -165,7 +165,7 @@
         } elseif (class_exists(Request::class)) {
             $request = new Request($method, $uri);
         } else {
-            throw new \LogicException(sprintf('You cannot use "%s()" as no PSR-17 factories have been found. Try running "composer require php-http/discovery psr/http-factory-implementation:*".', __METHOD__));
+            throw new \LogicException(\sprintf('You cannot use "%s()" as no PSR-17 factories have been found. Try running "composer require php-http/discovery psr/http-factory-implementation:*".', __METHOD__));
         }
 
         $request = $request
@@ -198,7 +198,7 @@
         } elseif (\is_resource($content)) {
             $stream = $this->streamFactory->createStreamFromResource($content);
         } else {
-            throw new \InvalidArgumentException(sprintf('"%s()" expects string, resource or StreamInterface, "%s" given.', __METHOD__, get_debug_type($content)));
+            throw new \InvalidArgumentException(\sprintf('"%s()" expects string, resource or StreamInterface, "%s" given.', __METHOD__, get_debug_type($content)));
         }
 
         if ($stream->isSeekable()) {
@@ -247,15 +247,15 @@
             return new Uri($uri);
         }
 
-        throw new \LogicException(sprintf('You cannot use "%s()" as no PSR-17 factories have been found. Try running "composer require php-http/discovery psr/http-factory-implementation:*".', __METHOD__));
+        throw new \LogicException(\sprintf('You cannot use "%s()" as no PSR-17 factories have been found. Try running "composer require php-http/discovery psr/http-factory-implementation:*".', __METHOD__));
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Internal/AmpBody.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Internal/AmpBody.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Internal/AmpBody.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Internal/AmpBody.php	2026-05-20 10:56:49.000000000 +0200
@@ -139,7 +139,7 @@
         }
 
         if (!\is_string($data)) {
-            throw new TransportException(sprintf('Return value of the "body" option callback must be string, "%s" returned.', get_debug_type($data)));
+            throw new TransportException(\sprintf('Return value of the "body" option callback must be string, "%s" returned.', get_debug_type($data)));
         }
 
         return new Success($data);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Internal/AmpClientState.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Internal/AmpClientState.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Internal/AmpClientState.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Internal/AmpClientState.php	2026-05-20 10:56:49.000000000 +0200
@@ -144,7 +144,7 @@
         $options['capture_peer_cert_chain'] && $context = $context->withPeerCapturing();
         $options['crypto_method'] && $context = $context->withMinimumVersion($options['crypto_method']);
 
-        $connector = $handleConnector = new class() implements Connector {
+        $connector = $handleConnector = new class implements Connector {
             public DnsConnector $connector;
             public string $uri;
             /** @var resource|null */
@@ -201,11 +201,11 @@
         if ($this->maxPendingPushes <= \count($this->pushedResponses[$authority] ?? [])) {
             $fifoUrl = key($this->pushedResponses[$authority]);
             unset($this->pushedResponses[$authority][$fifoUrl]);
-            $this->logger?->debug(sprintf('Evicting oldest pushed response: "%s"', $fifoUrl));
+            $this->logger?->debug(\sprintf('Evicting oldest pushed response: "%s"', $fifoUrl));
         }
 
         $url = (string) $request->getUri();
-        $this->logger?->debug(sprintf('Queueing pushed response: "%s"', $url));
+        $this->logger?->debug(\sprintf('Queueing pushed response: "%s"', $url));
         $this->pushedResponses[$authority][] = [$url, $deferred, $request, $response, [
             'proxy' => $options['proxy'],
             'bindto' => $options['bindto'],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Internal/AmpListener.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Internal/AmpListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Internal/AmpListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Internal/AmpListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -89,7 +89,7 @@
 
         $this->info['primary_port'] = $stream->getRemoteAddress()->getPort();
         $this->info['pretransfer_time'] = microtime(true) - $this->info['start_time'];
-        $this->info['debug'] .= sprintf("* Connected to %s (%s) port %d\n", $request->getUri()->getHost(), $host, $this->info['primary_port']);
+        $this->info['debug'] .= \sprintf("* Connected to %s (%s) port %d\n", $request->getUri()->getHost(), $host, $this->info['primary_port']);
 
         if ((isset($this->info['peer_certificate_chain']) || $this->pinSha256) && null !== $tlsInfo = $stream->getTlsInfo()) {
             foreach ($tlsInfo->getPeerCertificates() as $cert) {
@@ -104,7 +104,7 @@
                 $pin = base64_encode(hash('sha256', $pin, true));
 
                 if (!\in_array($pin, $this->pinSha256, true)) {
-                    throw new TransportException(sprintf('SSL public key does not match pinned public key for "%s".', $this->info['url']));
+                    throw new TransportException(\sprintf('SSL public key does not match pinned public key for "%s".', $this->info['url']));
                 }
             }
         }
@@ -121,7 +121,7 @@
             $requestUri = $uri->getHost().': '.($uri->getPort() ?? ('https' === $uri->getScheme() ? 443 : 80));
         }
 
-        $this->info['debug'] .= sprintf("> %s %s HTTP/%s \r\n", $method, $requestUri, $request->getProtocolVersions()[0]);
+        $this->info['debug'] .= \sprintf("> %s %s HTTP/%s \r\n", $method, $requestUri, $request->getProtocolVersions()[0]);
 
         foreach ($request->getRawHeaders() as [$name, $value]) {
             $this->info['debug'] .= $name.': '.$value."\r\n";
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Internal/CurlClientState.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Internal/CurlClientState.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Internal/CurlClientState.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Internal/CurlClientState.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,70 +37,84 @@
 
     public static array $curlVersion;
 
-    public function __construct(int $maxHostConnections, int $maxPendingPushes)
-    {
+    public function __construct(
+        private int $maxHostConnections,
+        private int $maxPendingPushes,
+    ) {
         self::$curlVersion ??= curl_version();
-
-        $this->handle = curl_multi_init();
         $this->dnsCache = new DnsCache();
-        $this->reset();
 
-        // Don't enable HTTP/1.1 pipelining: it forces responses to be sent in order
-        if (\defined('CURLPIPE_MULTIPLEX')) {
-            curl_multi_setopt($this->handle, \CURLMOPT_PIPELINING, \CURLPIPE_MULTIPLEX);
-        }
-        if (\defined('CURLMOPT_MAX_HOST_CONNECTIONS') && 0 < $maxHostConnections) {
-            $maxHostConnections = curl_multi_setopt($this->handle, \CURLMOPT_MAX_HOST_CONNECTIONS, $maxHostConnections) ? 4294967295 : $maxHostConnections;
-        }
-        if (\defined('CURLMOPT_MAXCONNECTS') && 0 < $maxHostConnections) {
-            curl_multi_setopt($this->handle, \CURLMOPT_MAXCONNECTS, $maxHostConnections);
-        }
-
-        // Skip configuring HTTP/2 push when it's unsupported or buggy, see https://bugs.php.net/77535
-        if (0 >= $maxPendingPushes) {
-            return;
-        }
-
-        // HTTP/2 push crashes before curl 7.61
-        if (!\defined('CURLMOPT_PUSHFUNCTION') || 0x073D00 > self::$curlVersion['version_number'] || !(\CURL_VERSION_HTTP2 & self::$curlVersion['features'])) {
-            return;
-        }
-
-        // Clone to prevent a circular reference
-        $multi = clone $this;
-        $multi->handle = null;
-        $multi->share = null;
-        $multi->pushedResponses = &$this->pushedResponses;
-        $multi->logger = &$this->logger;
-        $multi->handlesActivity = &$this->handlesActivity;
-        $multi->openHandles = &$this->openHandles;
-
-        curl_multi_setopt($this->handle, \CURLMOPT_PUSHFUNCTION, static fn ($parent, $pushed, array $requestHeaders) => $multi->handlePush($parent, $pushed, $requestHeaders, $maxPendingPushes));
+        // handle and share are initialized lazily in __get()
+        unset($this->handle, $this->share);
     }
 
     public function reset(): void
     {
         foreach ($this->pushedResponses as $url => $response) {
-            $this->logger?->debug(sprintf('Unused pushed response: "%s"', $url));
+            $this->logger?->debug(\sprintf('Unused pushed response: "%s"', $url));
             curl_multi_remove_handle($this->handle, $response->handle);
-            curl_close($response->handle);
+            unset($this->handlesActivity[(int) $response->handle]);
         }
 
         $this->pushedResponses = [];
         $this->dnsCache->evictions = $this->dnsCache->evictions ?: $this->dnsCache->removals;
         $this->dnsCache->removals = $this->dnsCache->hostnames = [];
 
-        $this->share = curl_share_init();
+        unset($this->share);
+    }
+
+    public function __get(string $name): mixed
+    {
+        if ('share' === $name) {
+            $this->share = curl_share_init();
+
+            curl_share_setopt($this->share, \CURLSHOPT_SHARE, \CURL_LOCK_DATA_DNS);
+            curl_share_setopt($this->share, \CURLSHOPT_SHARE, \CURL_LOCK_DATA_SSL_SESSION);
 
-        curl_share_setopt($this->share, \CURLSHOPT_SHARE, \CURL_LOCK_DATA_DNS);
-        curl_share_setopt($this->share, \CURLSHOPT_SHARE, \CURL_LOCK_DATA_SSL_SESSION);
+            // Don't share CURL_LOCK_DATA_CONNECT: easy handles attached to the same multi handle
+            // already share the connection cache, and adding it here creates a second pool that
+            // bypasses CURLMOPT_MAX_HOST_CONNECTIONS.
+            // See https://curl.se/libcurl/c/CURLSHOPT_SHARE.html#CURLLOCKDATACONNECT
 
-        if (\defined('CURL_LOCK_DATA_CONNECT')) {
-            curl_share_setopt($this->share, \CURLSHOPT_SHARE, \CURL_LOCK_DATA_CONNECT);
+            return $this->share;
         }
+
+        if ('handle' === $name) {
+            $this->handle = curl_multi_init();
+
+            // Don't enable HTTP/1.1 pipelining: it forces responses to be sent in order
+            if (\defined('CURLPIPE_MULTIPLEX')) {
+                curl_multi_setopt($this->handle, \CURLMOPT_PIPELINING, \CURLPIPE_MULTIPLEX);
+            }
+            $maxHostConnections = $this->maxHostConnections;
+            if (\defined('CURLMOPT_MAX_HOST_CONNECTIONS') && 0 < $maxHostConnections) {
+                $maxHostConnections = curl_multi_setopt($this->handle, \CURLMOPT_MAX_HOST_CONNECTIONS, $maxHostConnections) ? min(50 * $maxHostConnections, 4294967295) : $maxHostConnections;
+            }
+            if (\defined('CURLMOPT_MAXCONNECTS') && 0 < $maxHostConnections) {
+                curl_multi_setopt($this->handle, \CURLMOPT_MAXCONNECTS, $maxHostConnections);
+            }
+
+            // Skip configuring HTTP/2 push when it's unsupported or buggy, see https://bugs.php.net/77535
+            if (0 < $this->maxPendingPushes && (\defined('CURLMOPT_PUSHFUNCTION') && 0x073D00 <= self::$curlVersion['version_number'] && (\CURL_VERSION_HTTP2 & self::$curlVersion['features']))) {
+                // Clone to prevent a circular reference
+                $multi = clone $this;
+                $multi->handle = null;
+                $multi->share = null;
+                $multi->pushedResponses = &$this->pushedResponses;
+                $multi->logger = &$this->logger;
+                $multi->handlesActivity = &$this->handlesActivity;
+                $multi->openHandles = &$this->openHandles;
+
+                curl_multi_setopt($this->handle, \CURLMOPT_PUSHFUNCTION, $multi->handlePush(...));
+            }
+
+            return $this->handle;
+        }
+
+        throw new \LogicException(\sprintf('Unknown property "%s" on "%s".', $name, self::class));
     }
 
-    private function handlePush($parent, $pushed, array $requestHeaders, int $maxPendingPushes): int
+    private function handlePush($parent, $pushed, array $requestHeaders): int
     {
         $headers = [];
         $origin = curl_getinfo($parent, \CURLINFO_EFFECTIVE_URL);
@@ -112,7 +126,7 @@
         }
 
         if (!isset($headers[':method']) || !isset($headers[':scheme']) || !isset($headers[':authority']) || !isset($headers[':path'])) {
-            $this->logger?->debug(sprintf('Rejecting pushed response from "%s": pushed headers are invalid', $origin));
+            $this->logger?->debug(\sprintf('Rejecting pushed response from "%s": pushed headers are invalid', $origin));
 
             return \CURL_PUSH_DENY;
         }
@@ -123,19 +137,19 @@
         // but this is a MUST in the HTTP/2 RFC; let's restrict pushes to the original host,
         // ignoring domains mentioned as alt-name in the certificate for now (same as curl).
         if (!str_starts_with($origin, $url.'/')) {
-            $this->logger?->debug(sprintf('Rejecting pushed response from "%s": server is not authoritative for "%s"', $origin, $url));
+            $this->logger?->debug(\sprintf('Rejecting pushed response from "%s": server is not authoritative for "%s"', $origin, $url));
 
             return \CURL_PUSH_DENY;
         }
 
-        if ($maxPendingPushes <= \count($this->pushedResponses)) {
+        if ($this->maxPendingPushes <= \count($this->pushedResponses)) {
             $fifoUrl = key($this->pushedResponses);
             unset($this->pushedResponses[$fifoUrl]);
-            $this->logger?->debug(sprintf('Evicting oldest pushed response: "%s"', $fifoUrl));
+            $this->logger?->debug(\sprintf('Evicting oldest pushed response: "%s"', $fifoUrl));
         }
 
         $url .= $headers[':path'][0];
-        $this->logger?->debug(sprintf('Queueing pushed response: "%s"', $url));
+        $this->logger?->debug(\sprintf('Queueing pushed response: "%s"', $url));
 
         $this->pushedResponses[$url] = new PushedResponse(new CurlResponse($this, $pushed), $headers, $this->openHandles[(int) $parent][1] ?? [], $pushed);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/MockHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/MockHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/MockHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/MockHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,7 +78,7 @@
         ++$this->requestsCount;
 
         if (!$response instanceof ResponseInterface) {
-            throw new TransportException(sprintf('The response factory passed to MockHttpClient must return/yield an instance of ResponseInterface, "%s" given.', get_debug_type($response)));
+            throw new TransportException(\sprintf('The response factory passed to MockHttpClient must return/yield an instance of ResponseInterface, "%s" given.', get_debug_type($response)));
         }
 
         return MockResponse::fromRequest($method, $url, $options, $response);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/NativeHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/NativeHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/NativeHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/NativeHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -142,7 +142,7 @@
             $maxDuration = 0 < $options['max_duration'] ? $options['max_duration'] : \INF;
             $onProgress = static function (...$progress) use ($onProgress, &$info, $maxDuration) {
                 if ($info['total_time'] >= $maxDuration) {
-                    throw new TransportException(sprintf('Max duration was reached for "%s".', implode('', $info['url'])));
+                    throw new TransportException(\sprintf('Max duration was reached for "%s".', implode('', $info['url'])));
                 }
 
                 $progressInfo = $info;
@@ -165,7 +165,7 @@
             $maxDuration = $options['max_duration'];
             $onProgress = static function () use (&$info, $maxDuration): void {
                 if ($info['total_time'] >= $maxDuration) {
-                    throw new TransportException(sprintf('Max duration was reached for "%s".', implode('', $info['url'])));
+                    throw new TransportException(\sprintf('Max duration was reached for "%s".', implode('', $info['url'])));
                 }
             };
         }
@@ -195,7 +195,7 @@
             $this->multi->dnsCache = $options['resolve'] + $this->multi->dnsCache;
         }
 
-        $this->logger?->info(sprintf('Request: "%s %s"', $method, implode('', $url)));
+        $this->logger?->info(\sprintf('Request: "%s %s"', $method, implode('', $url)));
 
         if (!isset($options['normalized_headers']['user-agent'])) {
             $options['headers'][] = 'User-Agent: Symfony HttpClient (Native)';
@@ -301,7 +301,7 @@
 
         while ('' !== $data = $body(self::$CHUNK_SIZE)) {
             if (!\is_string($data)) {
-                throw new TransportException(sprintf('Return value of the "body" option callback must be string, "%s" returned.', get_debug_type($data)));
+                throw new TransportException(\sprintf('Return value of the "body" option callback must be string, "%s" returned.', get_debug_type($data)));
             }
 
             $result .= $data;
@@ -340,7 +340,7 @@
             $now = microtime(true);
 
             if (!$ip = gethostbynamel($host)) {
-                throw new TransportException(sprintf('Could not resolve host "%s".', $host));
+                throw new TransportException(\sprintf('Could not resolve host "%s".', $host));
             }
 
             $multi->dnsCache[$host] = $ip = $ip[0];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/NoPrivateNetworkHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/NoPrivateNetworkHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/NoPrivateNetworkHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/NoPrivateNetworkHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,12 +30,12 @@
  */
 final class NoPrivateNetworkHttpClient implements HttpClientInterface, LoggerAwareInterface, ResetInterface
 {
-    use HttpClientTrait;
     use AsyncDecoratorTrait;
+    use HttpClientTrait;
 
     private array $defaultOptions = self::OPTIONS_DEFAULTS;
     private HttpClientInterface $client;
-    private array|null $subnets;
+    private ?array $subnets;
     private int $ipFlags;
     private \ArrayObject $dnsCache;
 
@@ -46,7 +46,7 @@
     public function __construct(HttpClientInterface $client, string|array|null $subnets = null)
     {
         if (!class_exists(IpUtils::class)) {
-            throw new \LogicException(sprintf('You cannot use "%s" if the HttpFoundation component is not installed. Try running "composer require symfony/http-foundation".', __CLASS__));
+            throw new \LogicException(\sprintf('You cannot use "%s" if the HttpFoundation component is not installed. Try running "composer require symfony/http-foundation".', __CLASS__));
         }
 
         if (null === $subnets) {
@@ -103,9 +103,7 @@
         $redirectHeaders['with_auth'] = $redirectHeaders['no_auth'] = $options['headers'];
 
         if (isset($options['normalized_headers']['host']) || isset($options['normalized_headers']['authorization']) || isset($options['normalized_headers']['cookie'])) {
-            $redirectHeaders['no_auth'] = array_filter($redirectHeaders['no_auth'], static function ($h) {
-                return 0 !== stripos($h, 'Host:') && 0 !== stripos($h, 'Authorization:') && 0 !== stripos($h, 'Cookie:');
-            });
+            $redirectHeaders['no_auth'] = array_filter($redirectHeaders['no_auth'], static fn ($h) => 0 !== stripos($h, 'Host:') && 0 !== stripos($h, 'Authorization:') && 0 !== stripos($h, 'Cookie:'));
         }
 
         return new AsyncResponse($this->client, $method, $url, $options, static function (ChunkInterface $chunk, AsyncContext $context) use (&$method, &$options, $maxRedirects, &$redirectHeaders, $subnets, $ipFlags, $dnsCache): \Generator {
@@ -135,9 +133,7 @@
                 unset($options['body'], $options['json']);
 
                 if (isset($options['normalized_headers']['content-length']) || isset($options['normalized_headers']['content-type']) || isset($options['normalized_headers']['transfer-encoding'])) {
-                    $filterContentHeaders = static function ($h) {
-                        return 0 !== stripos($h, 'Content-Length:') && 0 !== stripos($h, 'Content-Type:') && 0 !== stripos($h, 'Transfer-Encoding:');
-                    };
+                    $filterContentHeaders = static fn ($h) => 0 !== stripos($h, 'Content-Length:') && 0 !== stripos($h, 'Content-Type:') && 0 !== stripos($h, 'Transfer-Encoding:');
                     $options['headers'] = array_filter($options['headers'], $filterContentHeaders);
                     $redirectHeaders['no_auth'] = array_filter($redirectHeaders['no_auth'], $filterContentHeaders);
                     $redirectHeaders['with_auth'] = array_filter($redirectHeaders['with_auth'], $filterContentHeaders);
@@ -204,7 +200,7 @@
 
         if ($ip = dns_get_record($host, \DNS_AAAA)) {
             $ip = $ip[0]['ipv6'];
-        } elseif (extension_loaded('sockets')) {
+        } elseif (\extension_loaded('sockets')) {
             if (!$info = socket_addrinfo_lookup($host, 0, ['ai_socktype' => \SOCK_STREAM, 'ai_family' => \AF_INET6])) {
                 return $host;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Psr18Client.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Psr18Client.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Psr18Client.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Psr18Client.php	2026-05-20 10:56:49.000000000 +0200
@@ -132,7 +132,7 @@
             return new Request($method, $uri);
         }
 
-        throw new \LogicException(sprintf('You cannot use "%s()" as no PSR-17 factories have been found. Try running "composer require php-http/discovery psr/http-factory-implementation:*".', __METHOD__));
+        throw new \LogicException(\sprintf('You cannot use "%s()" as no PSR-17 factories have been found. Try running "composer require php-http/discovery psr/http-factory-implementation:*".', __METHOD__));
     }
 
     public function createStream(string $content = ''): StreamInterface
@@ -174,7 +174,7 @@
             return new Uri($uri);
         }
 
-        throw new \LogicException(sprintf('You cannot use "%s()" as no PSR-17 factories have been found. Try running "composer require php-http/discovery psr/http-factory-implementation:*".', __METHOD__));
+        throw new \LogicException(\sprintf('You cannot use "%s()" as no PSR-17 factories have been found. Try running "composer require php-http/discovery psr/http-factory-implementation:*".', __METHOD__));
     }
 
     public function reset(): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/AmpResponse.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/AmpResponse.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/AmpResponse.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/AmpResponse.php	2026-05-20 10:56:49.000000000 +0200
@@ -99,7 +99,8 @@
 
         $throttleWatcher = null;
 
-        $this->id = $id = self::$nextId++;
+        $this->id = $id = self::$nextId;
+        self::$nextId = str_increment(self::$nextId);
         Loop::defer(static function () use ($request, $multi, $id, &$info, &$headers, $canceller, &$options, $onProgress, &$handle, $logger, &$pause) {
             return new Coroutine(self::generateResponse($request, $multi, $id, $info, $headers, $canceller, $options, $onProgress, $handle, $logger, $pause));
         });
@@ -139,12 +140,12 @@
         return null !== $type ? $this->info[$type] ?? null : $this->info;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -222,9 +223,9 @@
         });
 
         try {
-            /* @var Response $response */
+            /** @var Response $response */
             if (null === $response = yield from self::getPushedResponse($request, $multi, $info, $headers, $options, $logger)) {
-                $logger?->info(sprintf('Request: "%s %s"', $info['http_method'], $info['url']));
+                $logger?->info(\sprintf('Request: "%s %s"', $info['http_method'], $info['url']));
 
                 $response = yield from self::followRedirects($request, $multi, $info, $headers, $canceller, $options, $onProgress, $handle, $logger, $pause);
             }
@@ -288,7 +289,7 @@
                 return $response;
             }
 
-            $urlResolver = new class() {
+            $urlResolver = new class {
                 use HttpClientTrait {
                     parseUrl as public;
                     resolveUrl as public;
@@ -308,7 +309,7 @@
                 return $response;
             }
 
-            $logger?->info(sprintf('Redirecting: "%s %s"', $status, $info['url']));
+            $logger?->info(\sprintf('Redirecting: "%s %s"', $status, $info['url']));
 
             try {
                 // Discard body of redirects
@@ -328,6 +329,10 @@
             $request->setTcpConnectTimeout($originRequest->getTcpConnectTimeout());
             $request->setTlsHandshakeTimeout($originRequest->getTlsHandshakeTimeout());
             $request->setTransferTimeout($originRequest->getTransferTimeout());
+            $request->setBodySizeLimit(0);
+            if (method_exists($request, 'setInactivityTimeout')) {
+                $request->setInactivityTimeout(0);
+            }
 
             if (303 === $status || \in_array($status, [301, 302], true) && 'POST' === $response->getRequest()->getMethod()) {
                 // Do like curl and browsers: turn POST to GET on 301, 302 and 303
@@ -367,7 +372,7 @@
             $headers = [];
         }
 
-        $h = sprintf('HTTP/%s %s %s', $response->getProtocolVersion(), $response->getStatus(), $response->getReason());
+        $h = \sprintf('HTTP/%s %s %s', $response->getProtocolVersion(), $response->getStatus(), $response->getReason());
         $info['debug'] .= "< {$h}\r\n";
         $info['response_headers'][] = $h;
 
@@ -414,14 +419,14 @@
             foreach ($response->getHeaderArray('vary') as $vary) {
                 foreach (preg_split('/\s*+,\s*+/', $vary) as $v) {
                     if ('*' === $v || ($pushedRequest->getHeaderArray($v) !== $request->getHeaderArray($v) && 'accept-encoding' !== strtolower($v))) {
-                        $logger?->debug(sprintf('Skipping pushed response: "%s"', $info['url']));
+                        $logger?->debug(\sprintf('Skipping pushed response: "%s"', $info['url']));
                         continue 3;
                     }
                 }
             }
 
             $pushDeferred->resolve();
-            $logger?->debug(sprintf('Accepting pushed response: "%s %s"', $info['http_method'], $info['url']));
+            $logger?->debug(\sprintf('Accepting pushed response: "%s %s"', $info['http_method'], $info['url']));
             self::addResponseHeaders($response, $info, $headers);
             unset($multi->pushedResponses[$authority][$i]);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/AsyncContext.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/AsyncContext.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/AsyncContext.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/AsyncContext.php	2026-05-20 10:56:49.000000000 +0200
@@ -167,7 +167,7 @@
         }
         if (0 < ($info['max_duration'] ?? 0) && 0 < ($info['total_time'] ?? 0)) {
             if (0 >= $options['max_duration'] = $info['max_duration'] - $info['total_time']) {
-                throw new TransportException(sprintf('Max duration was reached for "%s".', $info['url']));
+                throw new TransportException(\sprintf('Max duration was reached for "%s".', $info['url']));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/AsyncResponse.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/AsyncResponse.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/AsyncResponse.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/AsyncResponse.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,6 +40,7 @@
     private $passthru;
     private ?\Iterator $stream = null;
     private ?int $yieldedState = null;
+    private bool $hasThrown = false;
 
     /**
      * @param ?callable(ChunkInterface, AsyncContext): ?\Iterator $passthru
@@ -64,7 +65,7 @@
 
             while (true) {
                 foreach (self::stream([$response], $timeout) as $chunk) {
-                    if ($chunk->isTimeout() && $response->passthru) {
+                    if ($chunk->isTimeout() && ($response->passthru || $response = self::findInnerPassthru($response))) {
                         // Timeouts thrown during initialization are transport errors
                         foreach (self::passthru($response->client, $response, new ErrorChunk($response->offset, new TransportException($chunk->getError()))) as $chunk) {
                             if ($chunk->isFirst()) {
@@ -187,7 +188,7 @@
     {
         $httpException = null;
 
-        if ($this->initializer && null === $this->getInfo('error')) {
+        if ($this->initializer && null === $this->getInfo('error') && !$this->hasThrown) {
             try {
                 self::initialize($this, -0.0);
                 $this->getHeaders(true);
@@ -225,7 +226,7 @@
 
             foreach ($responses as $r) {
                 if (!$r instanceof self) {
-                    throw new \TypeError(sprintf('"%s::stream()" expects parameter 1 to be an iterable of AsyncResponse objects, "%s" given.', $class ?? static::class, get_debug_type($r)));
+                    throw new \TypeError(\sprintf('"%s::stream()" expects parameter 1 to be an iterable of AsyncResponse objects, "%s" given.', $class ?? static::class, get_debug_type($r)));
                 }
 
                 if (null !== $e = $r->info['error'] ?? null) {
@@ -274,7 +275,8 @@
                     }
                 }
 
-                if (!$r->passthru) {
+                $innerR = null;
+                if (!$r->passthru && !$innerR = null !== $chunk->getError() ? self::findInnerPassthru($r) : null) {
                     $r->stream = (static fn () => yield $chunk)();
                     yield from self::passthruStream($response, $r, $asyncMap);
 
@@ -286,14 +288,15 @@
                 } elseif ($chunk->isFirst()) {
                     $r->yieldedState = self::FIRST_CHUNK_YIELDED;
                 } elseif (self::FIRST_CHUNK_YIELDED !== $r->yieldedState && null === $chunk->getInformationalStatus()) {
-                    throw new \LogicException(sprintf('Instance of "%s" is already consumed and cannot be managed by "%s". A decorated client should not call any of the response\'s methods in its "request()" method.', get_debug_type($response), $class ?? static::class));
+                    throw new \LogicException(\sprintf('Instance of "%s" is already consumed and cannot be managed by "%s". A decorated client should not call any of the response\'s methods in its "request()" method.', get_debug_type($response), $class ?? static::class));
                 }
 
-                foreach (self::passthru($r->client, $r, $chunk, $asyncMap) as $chunk) {
+                $innerR ??= $r;
+                foreach (self::passthru($innerR->client, $innerR, $chunk, $asyncMap) as $chunk) {
                     yield $r => $chunk;
                 }
 
-                if ($r->response !== $response && isset($asyncMap[$response])) {
+                if ($innerR->response !== $response && isset($asyncMap[$response])) {
                     break;
                 }
             }
@@ -313,7 +316,7 @@
                 $r = $asyncMap[$response];
 
                 if (null !== $r->client) {
-                    $responses[] = $asyncMap[$response];
+                    $responses[] = $r;
                 }
             }
         }
@@ -336,13 +339,28 @@
         }
 
         if (!$stream instanceof \Iterator) {
-            throw new \LogicException(sprintf('A chunk passthru must return an "Iterator", "%s" returned.', get_debug_type($stream)));
+            throw new \LogicException(\sprintf('A chunk passthru must return an "Iterator", "%s" returned.', get_debug_type($stream)));
         }
         $r->stream = $stream;
 
         yield from self::passthruStream($response, $r, $asyncMap);
     }
 
+    private static function findInnerPassthru(self $response): ?self
+    {
+        $innerResponse = $response->response ?? null;
+
+        while ($innerResponse instanceof self) {
+            if ($innerResponse->passthru) {
+                return $innerResponse;
+            }
+
+            $innerResponse = $innerResponse->response ?? null;
+        }
+
+        return null;
+    }
+
     /**
      * @param \SplObjectStorage<ResponseInterface, AsyncResponse>|null $asyncMap
      */
@@ -372,7 +390,7 @@
             $chunk = $r->stream->current();
 
             if (!$chunk instanceof ChunkInterface) {
-                throw new \LogicException(sprintf('A chunk passthru must yield instances of "%s", "%s" yielded.', ChunkInterface::class, get_debug_type($chunk)));
+                throw new \LogicException(\sprintf('A chunk passthru must yield instances of "%s", "%s" yielded.', ChunkInterface::class, get_debug_type($chunk)));
             }
 
             if (null !== $chunk->getError()) {
@@ -399,7 +417,7 @@
                 }
 
                 if (null !== $r->content && \strlen($content) !== fwrite($r->content, $content)) {
-                    $chunk = new ErrorChunk($r->offset, new TransportException(sprintf('Failed writing %d bytes to the response buffer.', \strlen($content))));
+                    $chunk = new ErrorChunk($r->offset, new TransportException(\sprintf('Failed writing %d bytes to the response buffer.', \strlen($content))));
                     $r->info['error'] = $chunk->getError();
                     $r->response->cancel();
                 }
@@ -438,6 +456,8 @@
                     }
                 }
 
+                $r->hasThrown = true;
+
                 yield $r => $chunk;
                 $chunk->didThrow() ?: $chunk->getContent();
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/CommonResponseTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/CommonResponseTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/CommonResponseTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/CommonResponseTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -87,11 +87,11 @@
         try {
             $content = json_decode($content, true, 512, \JSON_BIGINT_AS_STRING | \JSON_THROW_ON_ERROR);
         } catch (\JsonException $e) {
-            throw new JsonException($e->getMessage().sprintf(' for "%s".', $this->getInfo('url')), $e->getCode());
+            throw new JsonException($e->getMessage().\sprintf(' for "%s".', $this->getInfo('url')), $e->getCode());
         }
 
         if (!\is_array($content)) {
-            throw new JsonException(sprintf('JSON content was expected to decode to an array, "%s" returned for "%s".', get_debug_type($content), $this->getInfo('url')));
+            throw new JsonException(\sprintf('JSON content was expected to decode to an array, "%s" returned for "%s".', get_debug_type($content), $this->getInfo('url')));
         }
 
         if (null !== $this->content) {
@@ -119,15 +119,12 @@
         return $stream;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/CurlResponse.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/CurlResponse.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/CurlResponse.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/CurlResponse.php	2026-05-20 10:56:49.000000000 +0200
@@ -139,7 +139,7 @@
         curl_setopt($ch, \CURLOPT_WRITEFUNCTION, static function ($ch, string $data) use ($multi, $id): int {
             if ('H' === (curl_getinfo($ch, \CURLINFO_PRIVATE)[0] ?? null)) {
                 $multi->handlesActivity[$id][] = null;
-                $multi->handlesActivity[$id][] = new TransportException(sprintf('Unsupported protocol for "%s"', curl_getinfo($ch, \CURLINFO_EFFECTIVE_URL)));
+                $multi->handlesActivity[$id][] = new TransportException(\sprintf('Unsupported protocol for "%s"', curl_getinfo($ch, \CURLINFO_EFFECTIVE_URL)));
 
                 return 0;
             }
@@ -271,7 +271,7 @@
             if ($responses) {
                 $response = $responses[array_key_first($responses)];
                 $multi->handlesActivity[(int) $response->handle][] = null;
-                $multi->handlesActivity[(int) $response->handle][] = new TransportException(sprintf('Userland callback cannot use the client nor the response while processing "%s".', curl_getinfo($response->handle, \CURLINFO_EFFECTIVE_URL)));
+                $multi->handlesActivity[(int) $response->handle][] = new TransportException(\sprintf('Userland callback cannot use the client nor the response while processing "%s".', curl_getinfo($response->handle, \CURLINFO_EFFECTIVE_URL)));
             }
 
             return;
@@ -309,6 +309,7 @@
 
                 if (\CURLE_RECV_ERROR === $result && 'H' === $waitFor[0] && 400 <= ($responses[(int) $ch]->info['http_code'] ?? 0)) {
                     $multi->handlesActivity[$id][] = new FirstChunk();
+                    curl_setopt($ch, \CURLOPT_PRIVATE, 'C'.$waitFor[1]);
                 }
 
                 $multi->handlesActivity[$id][] = null;
@@ -396,7 +397,7 @@
                 $info['peer_certificate_chain'] = array_map('openssl_x509_read', array_column($certinfo, 'Cert'));
             }
 
-            if (300 <= $info['http_code'] && $info['http_code'] < 400) {
+            if (300 <= $info['http_code'] && $info['http_code'] < 400 && null !== $options) {
                 if (curl_getinfo($ch, \CURLINFO_REDIRECT_COUNT) === $options['max_redirects']) {
                     curl_setopt($ch, \CURLOPT_FOLLOWLOCATION, false);
                 } elseif (303 === $info['http_code'] || ('POST' === $info['http_method'] && \in_array($info['http_code'], [301, 302], true))) {
@@ -418,7 +419,7 @@
 
         $info['redirect_url'] = null;
 
-        if (300 <= $statusCode && $statusCode < 400 && null !== $location) {
+        if (300 <= $statusCode && $statusCode < 400 && null !== $location && null !== $options) {
             if ($noContent = 303 === $statusCode || ('POST' === $info['http_method'] && \in_array($statusCode, [301, 302], true))) {
                 $info['http_method'] = 'HEAD' === $info['http_method'] ? 'HEAD' : 'GET';
                 curl_setopt($ch, \CURLOPT_CUSTOMREQUEST, $info['http_method']);
@@ -433,7 +434,7 @@
 
         if (401 === $statusCode && isset($options['auth_ntlm']) && 0 === strncasecmp($headers['www-authenticate'][0] ?? '', 'NTLM ', 5)) {
             // Continue with NTLM auth
-        } elseif ($statusCode < 300 || 400 <= $statusCode || null === $location || curl_getinfo($ch, \CURLINFO_REDIRECT_COUNT) === $options['max_redirects']) {
+        } elseif ($statusCode < 300 || 400 <= $statusCode || null === $location || null === $options || curl_getinfo($ch, \CURLINFO_REDIRECT_COUNT) === $options['max_redirects']) {
             // Headers and redirects completed, time to get the response's content
             $multi->handlesActivity[$id][] = new FirstChunk();
 
@@ -447,7 +448,7 @@
 
             curl_setopt($ch, \CURLOPT_PRIVATE, $waitFor);
         } elseif (null !== $info['redirect_url'] && $logger) {
-            $logger->info(sprintf('Redirecting: "%s %s"', $info['http_code'], $info['redirect_url']));
+            $logger->info(\sprintf('Redirecting: "%s %s"', $info['http_code'], $info['redirect_url']));
         }
 
         $location = null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/MockResponse.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/MockResponse.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/MockResponse.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/MockResponse.php	2026-05-20 10:56:49.000000000 +0200
@@ -240,7 +240,7 @@
         } elseif ($body instanceof \Closure) {
             while ('' !== $data = $body(16372)) {
                 if (!\is_string($data)) {
-                    throw new TransportException(sprintf('Return value of the "body" option callback must be string, "%s" returned.', get_debug_type($data)));
+                    throw new TransportException(\sprintf('Return value of the "body" option callback must be string, "%s" returned.', get_debug_type($data)));
                 }
 
                 // "notify" upload progress
@@ -296,7 +296,7 @@
 
                     if ('' === $chunk = (string) $chunk) {
                         // simulate an idle timeout
-                        $response->body[] = new ErrorChunk($offset, sprintf('Idle timeout reached for "%s".', $response->info['url']));
+                        $response->body[] = new ErrorChunk($offset, \sprintf('Idle timeout reached for "%s".', $response->info['url']));
                     } else {
                         $response->body[] = $chunk;
                         $offset += \strlen($chunk);
@@ -320,7 +320,7 @@
         $onProgress($offset, $dlSize, $response->info);
 
         if ($dlSize && $offset !== $dlSize) {
-            throw new TransportException(sprintf('Transfer closed with %d bytes remaining to read.', $dlSize - $offset));
+            throw new TransportException(\sprintf('Transfer closed with %d bytes remaining to read.', $dlSize - $offset));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/StreamWrapper.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/StreamWrapper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/StreamWrapper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/StreamWrapper.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     private ResponseInterface $response;
 
     /** @var resource|string|null */
-    private $content = null;
+    private $content;
 
     /** @var resource|callable|null */
     private $handle;
@@ -56,7 +56,7 @@
         }
 
         if (null === $client && !method_exists($response, 'stream')) {
-            throw new \InvalidArgumentException(sprintf('Providing a client to "%s()" is required when the response doesn\'t have any "stream()" method.', __CLASS__));
+            throw new \InvalidArgumentException(\sprintf('Providing a client to "%s()" is required when the response doesn\'t have any "stream()" method.', __CLASS__));
         }
 
         static $registered = false;
@@ -94,7 +94,7 @@
     {
         if ('r' !== $mode) {
             if ($options & \STREAM_REPORT_ERRORS) {
-                trigger_error(sprintf('Invalid mode "%s": only "r" is supported.', $mode), \E_USER_WARNING);
+                trigger_error(\sprintf('Invalid mode "%s": only "r" is supported.', $mode), \E_USER_WARNING);
             }
 
             return false;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/TraceableResponse.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/TraceableResponse.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/TraceableResponse.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/TraceableResponse.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,12 +44,12 @@
         $this->event = $event;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -173,7 +173,7 @@
 
         foreach ($responses as $r) {
             if (!$r instanceof self) {
-                throw new \TypeError(sprintf('"%s::stream()" expects parameter 1 to be an iterable of TraceableResponse objects, "%s" given.', TraceableHttpClient::class, get_debug_type($r)));
+                throw new \TypeError(\sprintf('"%s::stream()" expects parameter 1 to be an iterable of TraceableResponse objects, "%s" given.', TraceableHttpClient::class, get_debug_type($r)));
             }
 
             $traceableMap[$r->response] = $r;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/TransportResponseTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/TransportResponseTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Response/TransportResponseTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Response/TransportResponseTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,6 +45,7 @@
     private \InflateContext|bool|null $inflate = null;
     private ?array $finalInfo = null;
     private ?LoggerInterface $logger = null;
+    private bool $didTimeout = false;
 
     public function getStatusCode(): int
     {
@@ -126,7 +127,7 @@
     {
         $this->shouldBuffer = true;
 
-        if ($this->initializer && null === $this->info['error']) {
+        if ($this->initializer && null === $this->info['error'] && !$this->didTimeout) {
             self::initialize($this);
             $this->checkStatusCode();
         }
@@ -183,7 +184,8 @@
                         unset($responses[$j]);
                         continue;
                     } elseif ($elapsedTimeout >= $timeoutMax) {
-                        $multi->handlesActivity[$j] = [new ErrorChunk($response->offset, sprintf('Idle timeout reached for "%s".', $response->getInfo('url')))];
+                        $response->didTimeout = true;
+                        $multi->handlesActivity[$j] = [new ErrorChunk($response->offset, \sprintf('Idle timeout reached for "%s".', $response->getInfo('url')))];
                         $multi->lastTimeout ??= $lastActivity;
                         $elapsedTimeout = $timeoutMax;
                     } else {
@@ -196,12 +198,12 @@
                     while ($multi->handlesActivity[$j] ?? false) {
                         if (\is_string($chunk = array_shift($multi->handlesActivity[$j]))) {
                             if (null !== $response->inflate && false === $chunk = @inflate_add($response->inflate, $chunk)) {
-                                $multi->handlesActivity[$j] = [null, new TransportException(sprintf('Error while processing content unencoding for "%s".', $response->getInfo('url')))];
+                                $multi->handlesActivity[$j] = [null, new TransportException(\sprintf('Error while processing content unencoding for "%s".', $response->getInfo('url')))];
                                 continue;
                             }
 
                             if ('' !== $chunk && null !== $response->content && \strlen($chunk) !== fwrite($response->content, $chunk)) {
-                                $multi->handlesActivity[$j] = [null, new TransportException(sprintf('Failed writing %d bytes to the response buffer.', \strlen($chunk)))];
+                                $multi->handlesActivity[$j] = [null, new TransportException(\sprintf('Failed writing %d bytes to the response buffer.', \strlen($chunk)))];
                                 continue;
                             }
 
@@ -233,7 +235,7 @@
                         } elseif ($chunk instanceof FirstChunk) {
                             if ($response->logger) {
                                 $info = $response->getInfo();
-                                $response->logger->info(sprintf('Response: "%s %s"', $info['http_code'], $info['url']));
+                                $response->logger->info(\sprintf('Response: "%s %s"', $info['http_code'], $info['url']));
                             }
 
                             $response->inflate = \extension_loaded('zlib') && $response->inflate && 'gzip' === ($response->headers['content-encoding'][0] ?? null) ? inflate_init(\ZLIB_ENCODING_GZIP) : null;
@@ -299,7 +301,7 @@
                 continue;
             }
 
-            if (-1 === self::select($multi, min($timeoutMin, $timeoutMax - $elapsedTimeout))) {
+            if (-1 === self::select($multi, min($timeoutMin, max(0, $timeoutMax - $elapsedTimeout)))) {
                 usleep((int) min(500, 1E6 * $timeoutMin));
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Retry/GenericRetryStrategy.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Retry/GenericRetryStrategy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Retry/GenericRetryStrategy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Retry/GenericRetryStrategy.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,22 +54,22 @@
         $this->statusCodes = $statusCodes;
 
         if ($delayMs < 0) {
-            throw new InvalidArgumentException(sprintf('Delay must be greater than or equal to zero: "%s" given.', $delayMs));
+            throw new InvalidArgumentException(\sprintf('Delay must be greater than or equal to zero: "%s" given.', $delayMs));
         }
         $this->delayMs = $delayMs;
 
         if ($multiplier < 1) {
-            throw new InvalidArgumentException(sprintf('Multiplier must be greater than or equal to one: "%s" given.', $multiplier));
+            throw new InvalidArgumentException(\sprintf('Multiplier must be greater than or equal to one: "%s" given.', $multiplier));
         }
         $this->multiplier = $multiplier;
 
         if ($maxDelayMs < 0) {
-            throw new InvalidArgumentException(sprintf('Max delay must be greater than or equal to zero: "%s" given.', $maxDelayMs));
+            throw new InvalidArgumentException(\sprintf('Max delay must be greater than or equal to zero: "%s" given.', $maxDelayMs));
         }
         $this->maxDelayMs = $maxDelayMs;
 
         if ($jitter < 0 || $jitter > 1) {
-            throw new InvalidArgumentException(sprintf('Jitter must be between 0 and 1: "%s" given.', $jitter));
+            throw new InvalidArgumentException(\sprintf('Jitter must be between 0 and 1: "%s" given.', $jitter));
         }
         $this->jitter = $jitter;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/RetryableHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/RetryableHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/RetryableHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/RetryableHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -100,7 +100,7 @@
                 if ('' !== $context->getInfo('primary_ip')) {
                     $shouldRetry = $this->strategy->shouldRetry($context, null, $exception);
                     if (null === $shouldRetry) {
-                        throw new \LogicException(sprintf('The "%s::shouldRetry()" method must not return null when called with an exception.', $this->strategy::class));
+                        throw new \LogicException(\sprintf('The "%s::shouldRetry()" method must not return null when called with an exception.', $this->strategy::class));
                     }
 
                     if (false === $shouldRetry) {
@@ -131,7 +131,7 @@
                 }
 
                 if (null === $shouldRetry = $this->strategy->shouldRetry($context, $content, null)) {
-                    throw new \LogicException(sprintf('The "%s::shouldRetry()" method must not return null when called with a body.', $this->strategy::class));
+                    throw new \LogicException(\sprintf('The "%s::shouldRetry()" method must not return null when called with a body.', $this->strategy::class));
                 }
 
                 if (false === $shouldRetry) {
@@ -201,6 +201,8 @@
         if ($baseUris) {
             $baseUri = 1 < \count($baseUris) ? array_shift($baseUris) : current($baseUris);
             $options['base_uri'] = \is_array($baseUri) ? $baseUri[array_rand($baseUri)] : $baseUri;
+        } elseif (\is_array($options['base_uri'] ?? null)) {
+            unset($options['base_uri']);
         }
 
         return $options;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/ScopingHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/ScopingHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/ScopingHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/ScopingHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
         $this->defaultRegexp = $defaultRegexp;
 
         if (null !== $defaultRegexp && !isset($defaultOptionsByRegexp[$defaultRegexp])) {
-            throw new InvalidArgumentException(sprintf('No options are mapped to the provided "%s" default regexp.', $defaultRegexp));
+            throw new InvalidArgumentException(\sprintf('No options are mapped to the provided "%s" default regexp.', $defaultRegexp));
         }
     }
 
@@ -56,9 +56,11 @@
     {
         $e = null;
         $url = self::parseUrl($url, $options['query'] ?? []);
+        $resolved = false;
 
         if (\is_string($options['base_uri'] ?? null)) {
             $options['base_uri'] = self::parseUrl($options['base_uri']);
+            $resolved = true;
         }
 
         try {
@@ -72,10 +74,15 @@
             $options = self::mergeDefaultOptions($options, $defaultOptions, true);
             if (\is_string($options['base_uri'] ?? null)) {
                 $options['base_uri'] = self::parseUrl($options['base_uri']);
+                $resolved = true;
             }
             $url = implode('', self::resolveUrl($url, $options['base_uri'] ?? null, $defaultOptions['query'] ?? []));
         }
 
+        if ($resolved) {
+            unset($options['base_uri']);
+        }
+
         foreach ($this->defaultOptionsByRegexp as $regexp => $defaultOptions) {
             if (preg_match("{{$regexp}}A", $url)) {
                 if (null === $e || $regexp !== $this->defaultRegexp) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Test/HarFileResponseFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Test/HarFileResponseFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Test/HarFileResponseFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Test/HarFileResponseFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
     public function __invoke(string $method, string $url, array $options): ResponseInterface
     {
         if (!is_file($this->archiveFile)) {
-            throw new \InvalidArgumentException(sprintf('Invalid file path provided: "%s".', $this->archiveFile));
+            throw new \InvalidArgumentException(\sprintf('Invalid file path provided: "%s".', $this->archiveFile));
         }
 
         $json = json_decode(json: file_get_contents($this->archiveFile), associative: true, flags: \JSON_THROW_ON_ERROR);
@@ -77,7 +77,7 @@
             return new MockResponse($body, $info);
         }
 
-        throw new TransportException(sprintf('File "%s" does not contain a response for HTTP request "%s" "%s".', $this->archiveFile, $method, $url));
+        throw new TransportException(\sprintf('File "%s" does not contain a response for HTTP request "%s" "%s".', $this->archiveFile, $method, $url));
     }
 
     /**
@@ -91,7 +91,7 @@
         return match ($encoding) {
             'base64' => base64_decode($text),
             null => $text,
-            default => throw new \InvalidArgumentException(sprintf('Unsupported encoding "%s", currently only base64 is supported.', $encoding)),
+            default => throw new \InvalidArgumentException(\sprintf('Unsupported encoding "%s", currently only base64 is supported.', $encoding)),
         };
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/AmpHttpClientTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/AmpHttpClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/AmpHttpClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/AmpHttpClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,6 +19,14 @@
  */
 class AmpHttpClientTest extends HttpClientTestCase
 {
+    /**
+     * @group transient
+     */
+    public function testNonBlockingStream()
+    {
+        parent::testNonBlockingStream();
+    }
+
     protected function getHttpClient(string $testCase): HttpClientInterface
     {
         return new AmpHttpClient(['verify_peer' => false, 'verify_host' => false, 'timeout' => 5]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/AsyncDecoratorTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/AsyncDecoratorTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/AsyncDecoratorTraitTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/AsyncDecoratorTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -182,7 +182,7 @@
     public function testProcessingHappensOnce()
     {
         $lastChunks = 0;
-        $client = $this->getHttpClient(__FUNCTION__, function (ChunkInterface $chunk, AsyncContext $context) use (&$lastChunks) {
+        $client = $this->getHttpClient(__FUNCTION__, static function (ChunkInterface $chunk, AsyncContext $context) use (&$lastChunks) {
             $lastChunks += $chunk->isLast();
 
             yield $chunk;
@@ -205,7 +205,7 @@
     public function testLastChunkIsYieldOnHttpExceptionAtDestructTime()
     {
         $lastChunk = null;
-        $client = $this->getHttpClient(__FUNCTION__, function (ChunkInterface $chunk, AsyncContext $context) use (&$lastChunk) {
+        $client = $this->getHttpClient(__FUNCTION__, static function (ChunkInterface $chunk, AsyncContext $context) use (&$lastChunk) {
             $lastChunk = $chunk;
 
             yield $chunk;
@@ -222,7 +222,7 @@
 
     public function testBufferPurePassthru()
     {
-        $client = $this->getHttpClient(__FUNCTION__, function (ChunkInterface $chunk, AsyncContext $context) {
+        $client = $this->getHttpClient(__FUNCTION__, static function (ChunkInterface $chunk, AsyncContext $context) {
             $context->passthru();
 
             yield $chunk;
@@ -298,10 +298,10 @@
     public function testInfoPassToDecorator()
     {
         $lastInfo = null;
-        $options = ['on_progress' => function (int $dlNow, int $dlSize, array $info) use (&$lastInfo) {
+        $options = ['on_progress' => static function (int $dlNow, int $dlSize, array $info) use (&$lastInfo) {
             $lastInfo = $info;
         }];
-        $client = $this->getHttpClient(__FUNCTION__, function (ChunkInterface $chunk, AsyncContext $context) use ($options) {
+        $client = $this->getHttpClient(__FUNCTION__, static function (ChunkInterface $chunk, AsyncContext $context) use ($options) {
             $context->setInfo('foo', 'test');
             $context->getResponse()->cancel();
             $context->replaceRequest('GET', 'http://localhost:8057/', $options);
@@ -316,7 +316,7 @@
 
     public function testMultipleYieldInInitializer()
     {
-        $client = $this->getHttpClient(__FUNCTION__, function (ChunkInterface $chunk, AsyncContext $context) {
+        $client = $this->getHttpClient(__FUNCTION__, static function (ChunkInterface $chunk, AsyncContext $context) {
             static $first;
             if ($chunk->isFirst()) {
                 $first = $chunk;
@@ -358,7 +358,7 @@
 
     public function testMaxDuration()
     {
-        $client = $this->getHttpClient(__FUNCTION__, function (ChunkInterface $chunk, AsyncContext $context) {
+        $client = $this->getHttpClient(__FUNCTION__, static function (ChunkInterface $chunk, AsyncContext $context) {
             static $sawFirst = false;
             try {
                 if (!$chunk->isFirst() || !$sawFirst) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/CachingHttpClientTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/CachingHttpClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/CachingHttpClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/CachingHttpClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,6 +41,37 @@
         self::assertSame($response->getRequestOptions()['normalized_headers']['test-name-header'][0], 'Test-Name-Header: test12345');
     }
 
+    public function testOverridesDefaultsAndKeepsMultipleHeaderValues()
+    {
+        $capturedHeaders = null;
+
+        $mockClient = new MockHttpClient(static function (string $method, string $url, array $options) use (&$capturedHeaders) {
+            $capturedHeaders = $options['normalized_headers'];
+
+            return new MockResponse();
+        });
+
+        $cacheDir = sys_get_temp_dir().'/sf_http_cache_'.uniqid('', true);
+        $store = new Store($cacheDir);
+        $client = new CachingHttpClient($mockClient, $store);
+
+        try {
+            $client->request('GET', 'https://example.com/foo', [
+                'headers' => [
+                    'Accept-Language' => ['de', 'fr'],
+                ],
+            ]);
+        } finally {
+            $this->removeDir($cacheDir);
+        }
+
+        self::assertNotNull($capturedHeaders);
+        self::assertSame([
+            'accept-language: de',
+            'accept-language: fr',
+        ], $capturedHeaders['accept-language']);
+    }
+
     public function testDoesNotEvaluateResponseBody()
     {
         $body = file_get_contents(__DIR__.'/Fixtures/assertion_failure.php');
@@ -87,10 +118,10 @@
     {
         $response = $this->runRequest(new MockResponse(
             'test', [
-            'response_headers' => [
-                'X-Content-Digest' => 'some-hash',
-            ],
-        ]));
+                'response_headers' => [
+                    'X-Content-Digest' => 'some-hash',
+                ],
+            ]));
         $headers = $response->getHeaders();
 
         $this->assertArrayNotHasKey('x-content-digest', $headers);
@@ -107,4 +138,26 @@
 
         return $response;
     }
+
+    private function removeDir(string $directory): void
+    {
+        if (!is_dir($directory)) {
+            return;
+        }
+
+        $iterator = new \RecursiveIteratorIterator(
+            new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS),
+            \RecursiveIteratorIterator::CHILD_FIRST
+        );
+
+        foreach ($iterator as $fileInfo) {
+            if ($fileInfo->isDir()) {
+                rmdir($fileInfo->getPathname());
+            } else {
+                unlink($fileInfo->getPathname());
+            }
+        }
+
+        rmdir($directory);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/Chunk/ServerSentEventTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/Chunk/ServerSentEventTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/Chunk/ServerSentEventTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/Chunk/ServerSentEventTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,12 +23,12 @@
     public function testParse()
     {
         $rawData = <<<STR
-data: test
-data:test
-id: 12
-event: testEvent
+            data: test
+            data:test
+            id: 12
+            event: testEvent
 
-STR;
+            STR;
 
         $sse = new ServerSentEvent($rawData);
         $this->assertSame("test\ntest", $sse->getData());
@@ -39,10 +39,10 @@
     public function testParseValid()
     {
         $rawData = <<<STR
-event: testEvent
-data
+            event: testEvent
+            data
 
-STR;
+            STR;
 
         $sse = new ServerSentEvent($rawData);
         $this->assertSame('', $sse->getData());
@@ -53,8 +53,8 @@
     public function testParseRetry()
     {
         $rawData = <<<STR
-retry: 12
-STR;
+            retry: 12
+            STR;
         $sse = new ServerSentEvent($rawData);
         $this->assertSame('', $sse->getData());
         $this->assertSame('', $sse->getId());
@@ -67,13 +67,13 @@
         $rawData = <<<STR
 
 
-data: <tag>
-data
-data:   <foo />
-data:
-data: 
-data: </tag>
-STR;
+            data: <tag>
+            data
+            data:   <foo />
+            data:
+            data: 
+            data: </tag>
+            STR;
         $sse = new ServerSentEvent($rawData);
         $this->assertSame("<tag>\n\n  <foo />\n\n\n</tag>", $sse->getData());
     }
@@ -81,9 +81,9 @@
     public function testGetArrayData()
     {
         $this->assertSame(['foo' => 'bar'], (new ServerSentEvent(<<<STR
-id: 33
-data: {"foo": "bar"}
-STR
+            id: 33
+            data: {"foo": "bar"}
+            STR
         ))->getArrayData());
     }
 
@@ -101,9 +101,9 @@
         $this->expectExceptionMessage('Decoding Server-Sent Event "33" failed: Syntax error');
 
         (new ServerSentEvent(<<<STR
-id: 33
-data: foobarccc
-STR
+            id: 33
+            data: foobarccc
+            STR
         ))->getArrayData();
     }
 
@@ -113,9 +113,9 @@
         $this->expectExceptionMessage('JSON content was expected to decode to an array, "string" returned in Server-Sent Event "33".');
 
         (new ServerSentEvent(<<<STR
-id: 33
-data: "ccc"
-STR
+            id: 33
+            data: "ccc"
+            STR
         ))->getArrayData();
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,15 +13,15 @@
 
 use Symfony\Component\HttpClient\CurlHttpClient;
 use Symfony\Component\HttpClient\Exception\InvalidArgumentException;
-use Symfony\Contracts\HttpClient\HttpClientInterface;
 
 /**
  * @requires extension curl
+ *
  * @group dns-sensitive
  */
 class CurlHttpClientTest extends HttpClientTestCase
 {
-    protected function getHttpClient(string $testCase): HttpClientInterface
+    protected function getHttpClient(string $testCase): CurlHttpClient
     {
         if (!str_contains($testCase, 'Push')) {
             return new CurlHttpClient(['verify_peer' => false, 'verify_host' => false]);
@@ -47,13 +47,42 @@
     {
         $httpClient = $this->getHttpClient(__FUNCTION__);
 
-        $r = new \ReflectionMethod($httpClient, 'ensureState');
-        $clientState = $r->invoke($httpClient);
+        $r = new \ReflectionProperty($httpClient, 'multi');
+        $clientState = $r->getValue($httpClient);
         $initialShareId = $clientState->share;
         $httpClient->reset();
         self::assertNotSame($initialShareId, $clientState->share);
     }
 
+    public function testCurlClientStateIsSharedBetweenClones()
+    {
+        $client = $this->getHttpClient(__FUNCTION__);
+        $cloneA = $client->withOptions(['headers' => ['Foo: bar']]);
+        $cloneB = $client->withOptions(['headers' => ['Foo: baz']]);
+
+        $r = new \ReflectionProperty($client, 'multi');
+        $state = $r->getValue($client);
+
+        self::assertSame($state, $r->getValue($cloneA));
+        self::assertSame($state, $r->getValue($cloneB));
+    }
+
+    public function testCurlClientStateInitializesHandlesLazily()
+    {
+        $client = $this->getHttpClient(__FUNCTION__);
+
+        $r = new \ReflectionProperty($client, 'multi');
+        $state = $r->getValue($client);
+
+        self::assertFalse(isset($state->handle));
+        self::assertFalse(isset($state->share));
+
+        $client->request('GET', 'http://127.0.0.1:8057/json')->getStatusCode();
+
+        self::assertInstanceOf(\CurlMultiHandle::class, $state->handle);
+        self::assertInstanceOf(\CurlShareHandle::class, $state->share);
+    }
+
     public function testProcessAfterReset()
     {
         $client = $this->getHttpClient(__FUNCTION__);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,10 @@
 namespace Symfony\Component\HttpClient\Tests\DataCollector;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\HttpClient\CurlHttpClient;
 use Symfony\Component\HttpClient\DataCollector\HttpClientDataCollector;
+use Symfony\Component\HttpClient\Exception\TransportException;
+use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\HttpClient\NativeHttpClient;
 use Symfony\Component\HttpClient\TraceableHttpClient;
 use Symfony\Contracts\HttpClient\Test\TestHttpServer;
@@ -47,9 +50,9 @@
         $sut->registerClient('http_client1', $httpClient1);
         $sut->registerClient('http_client2', $httpClient2);
         $sut->registerClient('http_client3', $httpClient3);
-        $this->assertEquals(0, $sut->getRequestCount());
+        $this->assertSame(0, $sut->getRequestCount());
         $sut->lateCollect();
-        $this->assertEquals(3, $sut->getRequestCount());
+        $this->assertSame(3, $sut->getRequestCount());
     }
 
     public function testItCollectsErrorCount()
@@ -76,9 +79,9 @@
         $sut->registerClient('http_client1', $httpClient1);
         $sut->registerClient('http_client2', $httpClient2);
         $sut->registerClient('http_client3', $httpClient3);
-        $this->assertEquals(0, $sut->getErrorCount());
+        $this->assertSame(0, $sut->getErrorCount());
         $sut->lateCollect();
-        $this->assertEquals(1, $sut->getErrorCount());
+        $this->assertSame(1, $sut->getErrorCount());
     }
 
     public function testItCollectsErrorCountByClient()
@@ -105,12 +108,12 @@
         $sut->registerClient('http_client1', $httpClient1);
         $sut->registerClient('http_client2', $httpClient2);
         $sut->registerClient('http_client3', $httpClient3);
-        $this->assertEquals([], $sut->getClients());
+        $this->assertSame([], $sut->getClients());
         $sut->lateCollect();
         $collectedData = $sut->getClients();
-        $this->assertEquals(0, $collectedData['http_client1']['error_count']);
-        $this->assertEquals(1, $collectedData['http_client2']['error_count']);
-        $this->assertEquals(0, $collectedData['http_client3']['error_count']);
+        $this->assertSame(0, $collectedData['http_client1']['error_count']);
+        $this->assertSame(1, $collectedData['http_client2']['error_count']);
+        $this->assertSame(0, $collectedData['http_client3']['error_count']);
     }
 
     public function testItCollectsTracesByClient()
@@ -137,7 +140,7 @@
         $sut->registerClient('http_client1', $httpClient1);
         $sut->registerClient('http_client2', $httpClient2);
         $sut->registerClient('http_client3', $httpClient3);
-        $this->assertEquals([], $sut->getClients());
+        $this->assertSame([], $sut->getClients());
         $sut->lateCollect();
         $collectedData = $sut->getClients();
         $this->assertCount(2, $collectedData['http_client1']['traces']);
@@ -159,9 +162,9 @@
         $collectedData = $sut->getClients();
         $this->assertCount(1, $collectedData['http_client1']['traces']);
         $sut->reset();
-        $this->assertEquals([], $sut->getClients());
-        $this->assertEquals(0, $sut->getErrorCount());
-        $this->assertEquals(0, $sut->getRequestCount());
+        $this->assertSame([], $sut->getClients());
+        $this->assertSame(0, $sut->getErrorCount());
+        $this->assertSame(0, $sut->getRequestCount());
     }
 
     /**
@@ -176,8 +179,7 @@
         self::assertCount(1, $collectedData['http_client']['traces']);
         $curlCommand = $collectedData['http_client']['traces'][0]['curlCommand'];
 
-        $isWindows = '\\' === \DIRECTORY_SEPARATOR;
-        self::assertEquals(sprintf($expectedCurlCommand, $isWindows ? '"' : "'", $isWindows ? '' : "'"), $curlCommand);
+        self::assertSame(str_replace(['"', "'"], '', $expectedCurlCommand), str_replace(['"', "'"], '', $curlCommand));
     }
 
     public static function provideCurlRequests(): iterable
@@ -190,10 +192,10 @@
             'curl \\
   --compressed \\
   --request GET \\
-  --url %1$shttp://localhost:8057/json%1$s \\
-  --header %1$sAccept: */*%1$s \\
-  --header %1$sAccept-Encoding: gzip%1$s \\
-  --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s',
+  --url http://localhost:8057/json \\
+  --header Accept: */* \\
+  --header Accept-Encoding: gzip \\
+  --header User-Agent: Symfony HttpClient (Native)',
         ];
         yield 'GET with base uri' => [
             [
@@ -206,10 +208,10 @@
             'curl \\
   --compressed \\
   --request GET \\
-  --url %1$shttp://localhost:8057/json/1%1$s \\
-  --header %1$sAccept: */*%1$s \\
-  --header %1$sAccept-Encoding: gzip%1$s \\
-  --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s',
+  --url http://localhost:8057/json/1 \\
+  --header Accept: */* \\
+  --header Accept-Encoding: gzip \\
+  --header User-Agent: Symfony HttpClient (Native)',
         ];
         yield 'GET with resolve' => [
             [
@@ -224,12 +226,12 @@
             ],
             'curl \\
   --compressed \\
-  --resolve %1$slocalhost:8057:127.0.0.1%1$s \\
+  --resolve localhost:8057:127.0.0.1 \\
   --request GET \\
-  --url %1$shttp://localhost:8057/json%1$s \\
-  --header %1$sAccept: */*%1$s \\
-  --header %1$sAccept-Encoding: gzip%1$s \\
-  --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s',
+  --url http://localhost:8057/json \\
+  --header Accept: */* \\
+  --header Accept-Encoding: gzip \\
+  --header User-Agent: Symfony HttpClient (Native)',
         ];
         yield 'POST with string body' => [
             [
@@ -242,13 +244,13 @@
             'curl \\
   --compressed \\
   --request POST \\
-  --url %1$shttp://localhost:8057/json%1$s \\
-  --header %1$sAccept: */*%1$s \\
-  --header %1$sContent-Length: 11%1$s \\
-  --header %1$sContent-Type: application/x-www-form-urlencoded%1$s \\
-  --header %1$sAccept-Encoding: gzip%1$s \\
-  --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s \\
-  --data-raw %1$sfoo bar baz%1$s',
+  --url http://localhost:8057/json \\
+  --header Accept: */* \\
+  --header Content-Length: 11 \\
+  --header Content-Type: application/x-www-form-urlencoded \\
+  --header Accept-Encoding: gzip \\
+  --header User-Agent: Symfony HttpClient (Native) \\
+  --data-raw foo bar baz',
         ];
         yield 'POST with array body' => [
             [
@@ -268,7 +270,7 @@
                             'fooprop' => 'foopropval',
                             'barprop' => 'barpropval',
                         ],
-                        'tostring' => new class() {
+                        'tostring' => new class {
                             public function __toString(): string
                             {
                                 return 'tostringval';
@@ -280,13 +282,13 @@
             'curl \\
   --compressed \\
   --request POST \\
-  --url %1$shttp://localhost:8057/json%1$s \\
-  --header %1$sAccept: */*%1$s \\
-  --header %1$sContent-Type: application/x-www-form-urlencoded%1$s \\
-  --header %1$sContent-Length: 211%1$s \\
-  --header %1$sAccept-Encoding: gzip%1$s \\
-  --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s \\
-  --data-raw %2$sfoo=fooval%2$s --data-raw %2$sbar=barval%2$s --data-raw %2$sbaz=bazval%2$s --data-raw %2$sfoobar[baz]=bazval%2$s --data-raw %2$sfoobar[qux]=quxval%2$s --data-raw %2$sbazqux[0]=bazquxval1%2$s --data-raw %2$sbazqux[1]=bazquxval2%2$s --data-raw %2$sobject[fooprop]=foopropval%2$s --data-raw %2$sobject[barprop]=barpropval%2$s --data-raw %2$stostring=tostringval%2$s',
+  --url http://localhost:8057/json \\
+  --header Accept: */* \\
+  --header Content-Type: application/x-www-form-urlencoded \\
+  --header Content-Length: 211 \\
+  --header Accept-Encoding: gzip \\
+  --header User-Agent: Symfony HttpClient (Native) \\
+  --data-raw foo=fooval --data-raw bar=barval --data-raw baz=bazval --data-raw foobar[baz]=bazval --data-raw foobar[qux]=quxval --data-raw bazqux[0]=bazquxval1 --data-raw bazqux[1]=bazquxval2 --data-raw object[fooprop]=foopropval --data-raw object[barprop]=barpropval --data-raw tostring=tostringval',
         ];
 
         // escapeshellarg on Windows replaces double quotes & percent signs with spaces
@@ -309,10 +311,10 @@
                 'curl \\
   --compressed \\
   --request GET \\
-  --url %1$shttp://localhost:8057/?foo=fooval&bar=newbarval&foobar[baz]=bazval&foobar[qux]=quxval&bazqux[0]=bazquxval1&bazqux[1]=bazquxval2%1$s \\
-  --header %1$sAccept: */*%1$s \\
-  --header %1$sAccept-Encoding: gzip%1$s \\
-  --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s',
+  --url http://localhost:8057/?foo=fooval&bar=newbarval&foobar[baz]=bazval&foobar[qux]=quxval&bazqux[0]=bazquxval1&bazqux[1]=bazquxval2 \\
+  --header Accept: */* \\
+  --header Accept-Encoding: gzip \\
+  --header User-Agent: Symfony HttpClient (Native)',
             ];
             yield 'POST with json' => [
                 [
@@ -331,13 +333,13 @@
                 'curl \\
   --compressed \\
   --request POST \\
-  --url %1$shttp://localhost:8057/json%1$s \\
-  --header %1$sContent-Type: application/json%1$s \\
-  --header %1$sAccept: */*%1$s \\
-  --header %1$sContent-Length: 120%1$s \\
-  --header %1$sAccept-Encoding: gzip%1$s \\
-  --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s \\
-  --data-raw %1$s{"foo":{"bar":"baz","qux":[1.1,1.0],"fred":["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026"]}}%1$s',
+  --url http://localhost:8057/json \\
+  --header Content-Type: application/json \\
+  --header Accept: */* \\
+  --header Content-Length: 120 \\
+  --header Accept-Encoding: gzip \\
+  --header User-Agent: Symfony HttpClient (Native) \\
+  --data-raw {"foo":{"bar":"baz","qux":[1.1,1.0],"fred":["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026"]}}',
             ];
         }
     }
@@ -358,14 +360,14 @@
         $collectedData = $sut->getClients();
         self::assertCount(1, $collectedData['http_client']['traces']);
         $curlCommand = $collectedData['http_client']['traces'][0]['curlCommand'];
-        self::assertEquals(sprintf('curl \\
+        self::assertSame('curl \\
   --compressed \\
   --request GET \\
-  --url %1$shttp://localhost:8057/301%1$s \\
-  --header %1$sAccept: */*%1$s \\
-  --header %1$sAuthorization: Basic Zm9vOmJhcg==%1$s \\
-  --header %1$sAccept-Encoding: gzip%1$s \\
-  --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s', '\\' === \DIRECTORY_SEPARATOR ? '"' : "'"), $curlCommand
+  --url http://localhost:8057/301 \\
+  --header Accept: */* \\
+  --header Authorization: Basic Zm9vOmJhcg== \\
+  --header Accept-Encoding: gzip \\
+  --header User-Agent: Symfony HttpClient (Native)', str_replace(['"', "'"], '', $curlCommand)
         );
     }
 
@@ -426,6 +428,27 @@
         self::assertNull($curlCommand);
     }
 
+    /**
+     * @requires extension curl
+     */
+    public function testGeneratingCurlCommandForArraysWithResourcesAndUnreachableHost()
+    {
+        $httpClient = new TraceableHttpClient(new CurlHttpClient());
+        try {
+            $httpClient->request('POST', 'http://localhast:8057/', [
+                'body' => ['file' => fopen('data://text/plain,', 'r')],
+            ]);
+        } catch (TransportException) {
+        }
+        $sut = new HttpClientDataCollector();
+        $sut->registerClient('http_client', $httpClient);
+        $sut->lateCollect();
+        $collectedData = $sut->getClients();
+        self::assertCount(1, $collectedData['http_client']['traces']);
+        $curlCommand = $collectedData['http_client']['traces'][0]['curlCommand'];
+        self::assertNull($curlCommand);
+    }
+
     private function httpClientThatHasTracedRequests($tracedRequests): TraceableHttpClient
     {
         $httpClient = new TraceableHttpClient(new NativeHttpClient());
@@ -437,4 +460,44 @@
 
         return $httpClient;
     }
+
+    /**
+     * @dataProvider provideClientIsResetWhenExpectedCases
+     */
+    public function testClientIsResetWhenExpected(\Closure $request, bool $wasReset)
+    {
+        $mockHttpClient = new class extends MockHttpClient {
+            public bool $wasReset = false;
+
+            public function reset(): void
+            {
+                parent::reset();
+
+                $this->wasReset = true;
+            }
+        };
+
+        $sut = new HttpClientDataCollector();
+        $sut->registerClient('http_client', $traceableHttpClient = new TraceableHttpClient($mockHttpClient));
+        $request($traceableHttpClient);
+        $sut->lateCollect();
+
+        $this->assertSame($wasReset, $mockHttpClient->wasReset);
+    }
+
+    public static function provideClientIsResetWhenExpectedCases(): iterable
+    {
+        yield [
+            static function (TraceableHttpClient $traceableHttpClient) {
+                $response = $traceableHttpClient->request('GET', 'http://localhost/');
+                $response->getContent();
+            },
+            true,
+        ];
+
+        yield [
+            static fn () => null,
+            false,
+        ];
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/EventSourceHttpClientTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/EventSourceHttpClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/EventSourceHttpClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/EventSourceHttpClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,45 +41,45 @@
 
             return new MockResponse([
                 str_replace("\n", $sep, <<<TXT
-event: builderror
-id: 46
-data: {"foo": "bar"}
+                    event: builderror
+                    id: 46
+                    data: {"foo": "bar"}
 
-event: reload
-id: 47
-data: {}
+                    event: reload
+                    id: 47
+                    data: {}
 
-: this is a oneline comment
+                    : this is a oneline comment
 
-: this is a
-: multiline comment
+                    : this is a
+                    : multiline comment
 
-: comments are ignored
-event: reload
+                    : comments are ignored
+                    event: reload
 
-TXT
+                    TXT
                 ),
                 str_replace("\n", $sep, <<<TXT
-: anywhere
-id: 48
-data: {}
-
-data: test
-data:test
-id: 49
-event: testEvent
-
-
-id: 50
-data: <tag>
-data
-data:   <foo />
-data
-data: </tag>
-
-id: 60
-data
-TXT
+                    : anywhere
+                    id: 48
+                    data: {}
+
+                    data: test
+                    data:test
+                    id: 49
+                    event: testEvent
+
+
+                    id: 50
+                    data: <tag>
+                    data
+                    data:   <foo />
+                    data
+                    data: </tag>
+
+                    id: 60
+                    data
+                    TXT
                 ),
             ], [
                 'canceled' => false,
@@ -112,7 +112,7 @@
     {
         $chunk = new DataChunk(0, '');
         $response = new MockResponse('', ['canceled' => false, 'http_method' => 'POST', 'url' => 'http://localhost:8080/events', 'response_headers' => ['content-type: text/event-stream']]);
-        $responseStream = new ResponseStream((function () use ($response, $chunk) {
+        $responseStream = new ResponseStream((static function () use ($response, $chunk) {
             yield $response => new FirstChunk();
             yield $response => $chunk;
             yield $response => new ErrorChunk(0, 'timeout');
@@ -125,9 +125,16 @@
             return true;
         };
 
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = $this->createStub(HttpClientInterface::class);
 
-        $httpClient->method('request')->with('POST', 'http://localhost:8080/events', $this->callback($hasCorrectHeaders))->willReturn($response);
+        $httpClient->method('request')
+            ->willReturnCallback(function (string $method, string $url, array $options = []) use ($hasCorrectHeaders, $response) {
+                $this->assertSame('POST', $method);
+                $this->assertSame('http://localhost:8080/events', $url);
+                $this->assertTrue($hasCorrectHeaders($options));
+
+                return $response;
+            });
 
         $httpClient->method('stream')->willReturn($responseStream);
 
@@ -142,7 +149,7 @@
     {
         $chunk = new DataChunk(0, '');
         $response = new MockResponse('', ['canceled' => false, 'http_method' => 'GET', 'url' => 'http://localhost:8080/events', 'response_headers' => ['content-type: '.$contentType]]);
-        $responseStream = new ResponseStream((function () use ($response, $chunk) {
+        $responseStream = new ResponseStream((static function () use ($response, $chunk) {
             yield $response => new FirstChunk();
             yield $response => $chunk;
             yield $response => new ErrorChunk(0, 'timeout');
@@ -154,8 +161,15 @@
             return true;
         };
 
-        $httpClient = $this->createMock(HttpClientInterface::class);
-        $httpClient->method('request')->with('GET', 'http://localhost:8080/events', $this->callback($hasCorrectHeaders))->willReturn($response);
+        $httpClient = $this->createStub(HttpClientInterface::class);
+        $httpClient->method('request')
+            ->willReturnCallback(function (string $method, string $url, array $options = []) use ($hasCorrectHeaders, $response) {
+                $this->assertSame('GET', $method);
+                $this->assertSame('http://localhost:8080/events', $url);
+                $this->assertTrue($hasCorrectHeaders($options));
+
+                return $response;
+            });
 
         $httpClient->method('stream')->willReturn($responseStream);
 
@@ -177,6 +191,34 @@
         }
     }
 
+    public function testFirstChunkIsYieldedAfterTimeout()
+    {
+        $es = new EventSourceHttpClient(new MockHttpClient([
+            // Throws TransportException before any chunks are sent, emulating a stream timeout
+            new MockResponse('', [
+                'response_headers' => ['content-type: text/event-stream'],
+                'error' => 'timeout',
+            ]),
+            new MockResponse("data: hello\n\n", [
+                'response_headers' => ['content-type: text/event-stream'],
+            ]),
+        ]), reconnectionTime: 0.0);
+
+        $res = $es->connect('http://localhost:8080/events');
+
+        $expected = [
+            new FirstChunk(),
+            new ServerSentEvent("data: hello\n\n"),
+            new LastChunk(13),
+        ];
+
+        foreach ($es->stream($res) as $chunk) {
+            $this->assertEquals(array_shift($expected), $chunk);
+        }
+
+        $this->assertSame([], $expected);
+    }
+
     public static function contentTypeProvider()
     {
         return [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/Exception/HttpExceptionTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/Exception/HttpExceptionTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/Exception/HttpExceptionTraitTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/Exception/HttpExceptionTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,10 +25,10 @@
         $errorWithoutMessage = 'HTTP/1.1 400 Bad Request returned for "http://example.com".';
 
         $errorWithMessage = <<<ERROR
-An error occurred
+            An error occurred
 
-Some details
-ERROR;
+            Some details
+            ERROR;
 
         yield ['application/ld+json', '{"hydra:title": "An error occurred", "hydra:description": "Some details"}', $errorWithMessage];
         yield ['application/problem+json', '{"title": "An error occurred", "detail": "Some details"}', $errorWithMessage];
@@ -41,7 +41,7 @@
      */
     public function testParseError(string $mimeType, string $json, string $expectedMessage)
     {
-        $response = $this->createMock(ResponseInterface::class);
+        $response = $this->createStub(ResponseInterface::class);
         $response
             ->method('getInfo')
             ->willReturnMap([
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,6 +18,7 @@
 use Symfony\Component\HttpClient\Internal\ClientState;
 use Symfony\Component\HttpClient\NoPrivateNetworkHttpClient;
 use Symfony\Component\HttpClient\Response\StreamWrapper;
+use Symfony\Component\HttpClient\RetryableHttpClient;
 use Symfony\Component\Process\Exception\ProcessFailedException;
 use Symfony\Component\Process\Process;
 use Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface;
@@ -377,7 +378,7 @@
         $client = $this->getHttpClient(__FUNCTION__);
 
         $traceInfo = [];
-        $client->request('GET', 'http://localhost:8057', ['on_progress' => function (int $dlNow, int $dlSize, array $info) use (&$traceInfo) {
+        $client->request('GET', 'http://localhost:8057', ['on_progress' => static function (int $dlNow, int $dlSize, array $info) use (&$traceInfo) {
             $traceInfo = $info;
         }]);
 
@@ -652,6 +653,55 @@
         $this->assertSame(['abc' => 'def', 'content-type' => 'application/json', 'REQUEST_METHOD' => 'POST'], $response->toArray());
     }
 
+    public function testDoesNotThrowOnDestructIfExceptionCaughtEarlierWithGetStatusCode()
+    {
+        $client = new RetryableHttpClient($this->getHttpClient(__FUNCTION__));
+        $client = $client->withOptions([
+            'max_duration' => 0.1,
+            'timeout' => 0.1,
+        ]);
+
+        $response = $client->request('GET', 'https://127.0.0.1:8000/api/cheeses');
+
+        try {
+            $response->getStatusCode();
+            $this->fail('TransportException expected');
+        } catch (TransportException) {
+        }
+
+        try {
+            unset($response);
+        } catch (TransportException $e) {
+            $this->fail('Caught '.$e::class.'('.$e->getMessage().') but destruct should not throw');
+        }
+        $this->expectNotToPerformAssertions();
+    }
+
+    public function testDoesNotThrowOnDestructIfExceptionCaughtEarlierEvenWithoutGetStatusCode()
+    {
+        $client = new RetryableHttpClient($this->getHttpClient(__FUNCTION__));
+        $client = $client->withOptions([
+            'max_duration' => 0.1,
+            'timeout' => 0.1,
+        ]);
+
+        $response = $client->request('GET', 'https://127.0.0.1:8000/api/cheeses');
+
+        try {
+            foreach ($client->stream($response) as $chunk) {
+            }
+            $this->fail('TransportException expected');
+        } catch (TransportException) {
+        }
+
+        try {
+            unset($response);
+        } catch (TransportException $e) {
+            $this->fail('Caught '.$e::class.'('.$e->getMessage().') but destruct should not throw');
+        }
+        $this->expectNotToPerformAssertions();
+    }
+
     public function testHeadRequestWithClosureBody()
     {
         $p = TestHttpServer::start(8067);
@@ -660,7 +710,7 @@
             $client = $this->getHttpClient(__FUNCTION__);
 
             $response = $client->request('HEAD', 'http://localhost:8057/head', [
-                'body' => fn () => '',
+                'body' => static fn () => '',
             ]);
             $headers = $response->getHeaders();
         } finally {
@@ -686,7 +736,7 @@
         try {
             $client = $this->getHttpClient(__FUNCTION__);
 
-            $response = $client->request('POST', 'http://localhost:8057/custom?status=' . $status . '&headers[]=Location%3A%20%2F');
+            $response = $client->request('POST', 'http://localhost:8057/custom?status='.$status.'&headers[]=Location%3A%20%2F');
             $body = $response->toArray();
         } finally {
             $p->stop();
@@ -708,4 +758,14 @@
 
         $this->addToAssertionCount(1);
     }
+
+    public function testMaxConnectDurationInfo()
+    {
+        $this->markTestSkipped('The "max_connect_duration" option is not supported in this version of the HttpClient component.');
+    }
+
+    public function testMaxConnectDuration()
+    {
+        $this->markTestSkipped('The "max_connect_duration" option is not supported in this version of the HttpClient component.');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/HttplugClientTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/HttplugClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/HttplugClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/HttplugClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,11 +59,11 @@
         $promise = $client->sendAsyncRequest($client->createRequest('GET', 'http://localhost:8057'));
         $successCallableCalled = false;
         $failureCallableCalled = false;
-        $promise->then(function (ResponseInterface $response) use (&$successCallableCalled) {
+        $promise->then(static function (ResponseInterface $response) use (&$successCallableCalled) {
             $successCallableCalled = true;
 
             return $response;
-        }, function (\Exception $exception) use (&$failureCallableCalled) {
+        }, static function (\Exception $exception) use (&$failureCallableCalled) {
             $failureCallableCalled = true;
 
             throw $exception;
@@ -91,11 +91,11 @@
         $successCallableCalled = false;
         $failureCallableCalled = false;
         $client->sendAsyncRequest($client->createRequest('GET', 'http://localhost:8057/timeout-body'))
-            ->then(function (ResponseInterface $response) use (&$successCallableCalled) {
+            ->then(static function (ResponseInterface $response) use (&$successCallableCalled) {
                 $successCallableCalled = true;
 
                 return $response;
-            }, function (\Exception $exception) use (&$failureCallableCalled) {
+            }, static function (\Exception $exception) use (&$failureCallableCalled) {
                 $failureCallableCalled = true;
 
                 throw $exception;
@@ -137,11 +137,11 @@
         $promise = $client->sendAsyncRequest($client->createRequest('GET', 'http://localhost:8058'));
         $successCallableCalled = false;
         $failureCallableCalled = false;
-        $promise->then(function (ResponseInterface $response) use (&$successCallableCalled) {
+        $promise->then(static function (ResponseInterface $response) use (&$successCallableCalled) {
             $successCallableCalled = true;
 
             return $response;
-        }, function (\Exception $exception) use (&$failureCallableCalled) {
+        }, static function (\Exception $exception) use (&$failureCallableCalled) {
             $failureCallableCalled = true;
 
             throw $exception;
@@ -180,7 +180,7 @@
 
                     return $client->sendAsyncRequest($client->createRequest('GET', 'http://localhost:8057'));
                 },
-                function (\Exception $exception) use (&$failureCallableCalled) {
+                static function (\Exception $exception) use (&$failureCallableCalled) {
                     $failureCallableCalled = true;
 
                     throw $exception;
@@ -204,7 +204,7 @@
 
         $promise = $client
             ->sendAsyncRequest($client->createRequest('GET', 'http://localhost:8057/chunked-broken'))
-            ->then(function (ResponseInterface $response) use (&$successCallableCalled) {
+            ->then(static function (ResponseInterface $response) use (&$successCallableCalled) {
                 $successCallableCalled = true;
 
                 return $response;
@@ -229,7 +229,7 @@
         $isFirstRequest = true;
         $errorMessage = 'Error occurred before making the actual request.';
 
-        $client = new HttplugClient(new MockHttpClient(function () use (&$isFirstRequest, $errorMessage) {
+        $client = new HttplugClient(new MockHttpClient(static function () use (&$isFirstRequest, $errorMessage) {
             if ($isFirstRequest) {
                 $isFirstRequest = false;
                 throw new TransportException($errorMessage);
@@ -246,7 +246,7 @@
         $promise = $client
             ->sendAsyncRequest($request)
             ->then(
-                function (ResponseInterface $response) use (&$successCallableCalled) {
+                static function (ResponseInterface $response) use (&$successCallableCalled) {
                     $successCallableCalled = true;
 
                     return $response;
@@ -257,7 +257,7 @@
                     $failureCallableCalled = true;
 
                     // Ensure arbitrary levels of promises work.
-                    return (new FulfilledPromise(null))->then(fn () => (new GuzzleFulfilledPromise(null))->then(fn () => $client->sendAsyncRequest($request)));
+                    return (new FulfilledPromise(null))->then(static fn () => (new GuzzleFulfilledPromise(null))->then(static fn () => $client->sendAsyncRequest($request)));
                 }
             )
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -313,8 +313,8 @@
         $responses = [];
 
         $headers = [
-          'Host: localhost:8057',
-          'Content-Type: application/json',
+            'Host: localhost:8057',
+            'Content-Type: application/json',
         ];
 
         $body = '{
@@ -390,9 +390,9 @@
                 $responses[] = new MockResponse($body, ['response_headers' => $headers]);
 
                 $headers = [
-                  'Host: localhost:8057',
-                  'Content-Length: 1000',
-                  'Content-Type: application/json',
+                    'Host: localhost:8057',
+                    'Content-Length: 1000',
+                    'Content-Type: application/json',
                 ];
 
                 $responses[] = new MockResponse($body, ['response_headers' => $headers]);
@@ -427,7 +427,7 @@
             case 'testResolve':
                 $responses[] = new MockResponse($body, ['response_headers' => $headers]);
                 $responses[] = new MockResponse($body, ['response_headers' => $headers]);
-                $responses[] = new MockResponse((function () { yield ''; })(), ['response_headers' => $headers]);
+                $responses[] = new MockResponse((static function () { yield ''; })(), ['response_headers' => $headers]);
                 break;
 
             case 'testTimeoutOnStream':
@@ -438,7 +438,7 @@
                 break;
 
             case 'testInformationalResponseStream':
-                $client = $this->createMock(HttpClientInterface::class);
+                $client = $this->createStub(HttpClientInterface::class);
                 $response = new MockResponse('Here the body', ['response_headers' => [
                     'HTTP/1.1 103 ',
                     'Link: </style.css>; rel=preload; as=style',
@@ -448,23 +448,23 @@
                 ]]);
                 $client->method('request')->willReturn($response);
                 $client->method('stream')->willReturn(new ResponseStream((function () use ($response) {
-                    $chunk = $this->createMock(ChunkInterface::class);
+                    $chunk = $this->createStub(ChunkInterface::class);
                     $chunk->method('getInformationalStatus')
                         ->willReturn([103, ['link' => ['</style.css>; rel=preload; as=style', '</script.js>; rel=preload; as=script']]]);
 
                     yield $response => $chunk;
 
-                    $chunk = $this->createMock(ChunkInterface::class);
+                    $chunk = $this->createStub(ChunkInterface::class);
                     $chunk->method('isFirst')->willReturn(true);
 
                     yield $response => $chunk;
 
-                    $chunk = $this->createMock(ChunkInterface::class);
+                    $chunk = $this->createStub(ChunkInterface::class);
                     $chunk->method('getContent')->willReturn('Here the body');
 
                     yield $response => $chunk;
 
-                    $chunk = $this->createMock(ChunkInterface::class);
+                    $chunk = $this->createStub(ChunkInterface::class);
                     $chunk->method('isLast')->willReturn(true);
 
                     yield $response => $chunk;
@@ -474,7 +474,11 @@
 
             case 'testNonBlockingStream':
             case 'testSeekAsyncStream':
-                $responses[] = new MockResponse((function () { yield '<1>'; yield ''; yield '<2>'; })(), ['response_headers' => $headers]);
+                $responses[] = new MockResponse((static function () {
+                    yield '<1>';
+                    yield '';
+                    yield '<2>';
+                })(), ['response_headers' => $headers]);
                 break;
 
             case 'testMaxDuration':
@@ -497,7 +501,7 @@
 
     public function testChangeResponseFactory()
     {
-        /* @var MockHttpClient $client */
+        /** @var MockHttpClient $client */
         $client = $this->getHttpClient(__METHOD__);
         $expectedBody = '{"foo": "bar"}';
         $client->setResponseFactory(new MockResponse($expectedBody));
@@ -511,7 +515,7 @@
     {
         $client = new MockHttpClient();
 
-        $param = new class() {
+        $param = new class {
             public function __toString()
             {
                 return 'bar';
@@ -576,4 +580,14 @@
         $client->request('GET', 'https://example.com');
         $client->request('GET', 'https://example.com');
     }
+
+    public function testDoesNotThrowOnDestructIfExceptionCaughtEarlierWithGetStatusCode()
+    {
+        $this->markTestSkipped('Not supported');
+    }
+
+    public function testDoesNotThrowOnDestructIfExceptionCaughtEarlierEvenWithoutGetStatusCode()
+    {
+        $this->markTestSkipped('Not supported');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/NoPrivateNetworkHttpClientTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/NoPrivateNetworkHttpClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/NoPrivateNetworkHttpClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/NoPrivateNetworkHttpClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,6 +68,7 @@
 
     /**
      * @dataProvider getExcludeIpData
+     *
      * @group dns-sensitive
      */
     public function testExcludeByIp(string $ipAddr, $subnets, bool $mustThrow)
@@ -105,6 +106,7 @@
 
     /**
      * @dataProvider getExcludeHostData
+     *
      * @group dns-sensitive
      */
     public function testExcludeByHost(string $ipAddr, $subnets, bool $mustThrow)
@@ -143,11 +145,11 @@
     public function testCustomOnProgressCallback()
     {
         $ipAddr = '104.26.14.6';
-        $url = sprintf('http://%s/', $ipAddr);
+        $url = \sprintf('http://%s/', $ipAddr);
         $content = 'foo';
 
         $executionCount = 0;
-        $customCallback = function (int $dlNow, int $dlSize, array $info) use (&$executionCount): void {
+        $customCallback = static function (int $dlNow, int $dlSize, array $info) use (&$executionCount): void {
             ++$executionCount;
         };
 
@@ -163,8 +165,8 @@
     public function testNonCallableOnProgressCallback()
     {
         $ipAddr = '104.26.14.6';
-        $url = sprintf('http://%s/', $ipAddr);
-        $customCallback = sprintf('cb_%s', microtime(true));
+        $url = \sprintf('http://%s/', $ipAddr);
+        $customCallback = \sprintf('cb_%s', microtime(true));
 
         $this->expectException(InvalidArgumentException::class);
         $this->expectExceptionMessage('Option "on_progress" must be callable, "string" given.');
@@ -176,13 +178,14 @@
     public function testHeadersArePassedOnRedirect()
     {
         $ipAddr = '104.26.14.6';
-        $url = sprintf('http://%s/', $ipAddr);
+        $url = \sprintf('http://%s/', $ipAddr);
         $content = 'foo';
 
         $callback = function ($method, $url, $options) use ($content): MockResponse {
             $this->assertArrayHasKey('headers', $options);
             $this->assertNotContains('content-type: application/json', $options['headers']);
             $this->assertContains('foo: bar', $options['headers']);
+
             return new MockResponse($content);
         };
         $responses = [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/Response/HttplugPromiseTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/Response/HttplugPromiseTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/Response/HttplugPromiseTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/Response/HttplugPromiseTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,8 +19,8 @@
 {
     public function testComplexNesting()
     {
-        $mkPromise = function ($result): HttplugPromise {
-            $guzzlePromise = new Promise(function () use (&$guzzlePromise, $result) {
+        $mkPromise = static function ($result): HttplugPromise {
+            $guzzlePromise = new Promise(static function () use (&$guzzlePromise, $result) {
                 $guzzlePromise->resolve($result);
             });
 
@@ -29,7 +29,7 @@
 
         $promise1 = $mkPromise('result');
         $promise2 = $promise1->then($mkPromise);
-        $promise3 = $promise2->then(fn ($result) => $result);
+        $promise3 = $promise2->then(static fn ($result) => $result);
 
         $this->assertSame('result', $promise3->wait());
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,13 +86,13 @@
         yield [
             'content' => 'not json',
             'responseHeaders' => [],
-            'message' => 'Syntax error for "https://example.com/file.json".',
+            'message' => \PHP_VERSION_ID < 80600 ? 'Syntax error for "https://example.com/file.json".' : 'Syntax error near location 1:1 for "https://example.com/file.json".',
         ];
 
         yield [
             'content' => '[1,2}',
             'responseHeaders' => [],
-            'message' => 'State mismatch (invalid or malformed JSON) for "https://example.com/file.json".',
+            'message' => \PHP_VERSION_ID < 80600 ? 'State mismatch (invalid or malformed JSON) for "https://example.com/file.json".' : 'State mismatch (invalid or malformed JSON) near location 1:5 for "https://example.com/file.json".',
         ];
 
         yield [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/RetryableHttpClientTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/RetryableHttpClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/RetryableHttpClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/RetryableHttpClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,11 +18,14 @@
 use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\HttpClient\NativeHttpClient;
 use Symfony\Component\HttpClient\Response\AsyncContext;
+use Symfony\Component\HttpClient\Response\AsyncResponse;
 use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\HttpClient\Retry\GenericRetryStrategy;
 use Symfony\Component\HttpClient\Retry\RetryStrategyInterface;
 use Symfony\Component\HttpClient\RetryableHttpClient;
 use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
+use Symfony\Contracts\HttpClient\HttpClientInterface;
+use Symfony\Contracts\HttpClient\ResponseInterface;
 use Symfony\Contracts\HttpClient\Test\TestHttpServer;
 
 class RetryableHttpClientTest extends TestCase
@@ -210,7 +213,7 @@
             ]),
             new GenericRetryStrategy(),
             1,
-            $logger = new class() extends TestLogger {
+            $logger = new class extends TestLogger {
                 public array $context = [];
 
                 public function log($level, $message, array $context = []): void
@@ -234,8 +237,8 @@
     {
         $client = new RetryableHttpClient(
             new MockHttpClient([
-               new MockResponse('', ['http_code' => 500]),
-               new MockResponse('Test out content', ['http_code' => 200]),
+                new MockResponse('', ['http_code' => 500]),
+                new MockResponse('Test out content', ['http_code' => 200]),
             ]),
             new GenericRetryStrategy([500], 0),
             1
@@ -254,7 +257,7 @@
 
         TestHttpServer::start();
 
-        $strategy = new class() implements RetryStrategyInterface {
+        $strategy = new class implements RetryStrategyInterface {
             public $isCalled = false;
 
             public function shouldRetry(AsyncContext $context, ?string $responseContent, ?TransportExceptionInterface $exception): ?bool
@@ -421,4 +424,174 @@
 
         self::assertSame(504, $response->getStatusCode());
     }
+
+    public function testRetryOnTimeoutWithAsyncDecorator()
+    {
+        $client = HttpClient::create();
+
+        TestHttpServer::start();
+
+        $strategy = new class implements RetryStrategyInterface {
+            public bool $isCalled = false;
+
+            public function shouldRetry(AsyncContext $context, ?string $responseContent, ?TransportExceptionInterface $exception): ?bool
+            {
+                $this->isCalled = true;
+
+                return false;
+            }
+
+            public function getDelay(AsyncContext $context, ?string $responseContent, ?TransportExceptionInterface $exception): int
+            {
+                return 0;
+            }
+        };
+        $client = new RetryableHttpClient($client, $strategy);
+
+        $client = new class($client) implements HttpClientInterface {
+            use \Symfony\Component\HttpClient\AsyncDecoratorTrait;
+
+            public function request(string $method, string $url, array $options = []): ResponseInterface
+            {
+                return new AsyncResponse($this->client, $method, $url, $options);
+            }
+        };
+
+        $response = $client->request('GET', 'http://localhost:8057/timeout-header', ['timeout' => 0.1]);
+
+        try {
+            $response->getStatusCode();
+            $this->fail(TransportException::class.' expected');
+        } catch (TransportException $e) {
+        }
+
+        $this->assertTrue($strategy->isCalled, 'The HTTP retry strategy should be called');
+    }
+
+    public function testRetryOnErrorWithAsyncDecorator()
+    {
+        $client = new MockHttpClient([
+            new MockResponse('', ['http_code' => 500]),
+            new MockResponse('OK', ['http_code' => 200]),
+        ]);
+
+        $client = new RetryableHttpClient($client, new GenericRetryStrategy([500], 0), 1);
+
+        $client = new class($client) implements HttpClientInterface {
+            use \Symfony\Component\HttpClient\AsyncDecoratorTrait;
+
+            public function request(string $method, string $url, array $options = []): ResponseInterface
+            {
+                return new AsyncResponse($this->client, $method, $url, $options);
+            }
+        };
+
+        $response = $client->request('GET', 'http://example.com/foo-bar');
+
+        self::assertSame(200, $response->getStatusCode());
+        self::assertSame('OK', $response->getContent());
+    }
+
+    public function testRetryOnTimeoutWithMultipleAsyncDecorators()
+    {
+        $client = HttpClient::create();
+
+        TestHttpServer::start();
+
+        $strategy = new class implements RetryStrategyInterface {
+            public bool $isCalled = false;
+
+            public function shouldRetry(AsyncContext $context, ?string $responseContent, ?TransportExceptionInterface $exception): ?bool
+            {
+                $this->isCalled = true;
+
+                return false;
+            }
+
+            public function getDelay(AsyncContext $context, ?string $responseContent, ?TransportExceptionInterface $exception): int
+            {
+                return 0;
+            }
+        };
+
+        $client = new RetryableHttpClient($client, $strategy);
+
+        // Two nested async decorators without passthru around the RetryableHttpClient
+        $client = new class($client) implements HttpClientInterface {
+            use \Symfony\Component\HttpClient\AsyncDecoratorTrait;
+
+            public function request(string $method, string $url, array $options = []): ResponseInterface
+            {
+                return new AsyncResponse($this->client, $method, $url, $options);
+            }
+        };
+        $client = new class($client) implements HttpClientInterface {
+            use \Symfony\Component\HttpClient\AsyncDecoratorTrait;
+
+            public function request(string $method, string $url, array $options = []): ResponseInterface
+            {
+                return new AsyncResponse($this->client, $method, $url, $options);
+            }
+        };
+
+        $response = $client->request('GET', 'http://localhost:8057/timeout-header', ['timeout' => 0.1]);
+
+        try {
+            $response->getStatusCode();
+            $this->fail(TransportException::class.' expected');
+        } catch (TransportException $e) {
+        }
+
+        $this->assertTrue($strategy->isCalled, 'The HTTP retry strategy should be called with multiple decorators');
+    }
+
+    public function testRetryActuallyRetriesWithAsyncDecorator()
+    {
+        $client = HttpClient::create();
+
+        TestHttpServer::start();
+
+        $retryCount = 0;
+        $strategy = new class($retryCount) implements RetryStrategyInterface {
+            private int $retryCount;
+
+            public function __construct(int &$retryCount)
+            {
+                $this->retryCount = &$retryCount;
+            }
+
+            public function shouldRetry(AsyncContext $context, ?string $responseContent, ?TransportExceptionInterface $exception): ?bool
+            {
+                ++$this->retryCount;
+
+                return $this->retryCount < 2;
+            }
+
+            public function getDelay(AsyncContext $context, ?string $responseContent, ?TransportExceptionInterface $exception): int
+            {
+                return 0;
+            }
+        };
+
+        $client = new RetryableHttpClient($client, $strategy, 2);
+
+        $client = new class($client) implements HttpClientInterface {
+            use \Symfony\Component\HttpClient\AsyncDecoratorTrait;
+
+            public function request(string $method, string $url, array $options = []): ResponseInterface
+            {
+                return new AsyncResponse($this->client, $method, $url, $options);
+            }
+        };
+
+        $response = $client->request('GET', 'http://localhost:8057/timeout-header', ['timeout' => 0.1]);
+
+        try {
+            $response->getStatusCode();
+            $this->fail(TransportException::class.' expected');
+        } catch (TransportException $e) {
+        }
+
+        $this->assertSame(2, $retryCount, 'The request should have been retried once');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/ScopingHttpClientTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/ScopingHttpClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/ScopingHttpClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/ScopingHttpClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,9 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpClient\Exception\InvalidArgumentException;
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
+use Symfony\Component\HttpClient\Retry\GenericRetryStrategy;
+use Symfony\Component\HttpClient\RetryableHttpClient;
 use Symfony\Component\HttpClient\ScopingHttpClient;
 
 class ScopingHttpClientTest extends TestCase
@@ -94,10 +97,31 @@
         $client = ScopingHttpClient::forBaseUri(new MockHttpClient(null, null), 'http://example.com/foo');
 
         $response = $client->request('GET', '/bar');
-        $this->assertSame('http://example.com/foo', implode('', $response->getRequestOptions()['base_uri']));
         $this->assertSame('http://example.com/bar', $response->getInfo('url'));
 
         $response = $client->request('GET', 'http://foo.bar/');
-        $this->assertNull($response->getRequestOptions()['base_uri']);
+        $this->assertSame('http://foo.bar/', $response->getInfo('url'));
+    }
+
+    public function testRetryableHttpClientIntegration()
+    {
+        $responses = [
+            new MockResponse(info: ['http_code' => 503]),
+            new MockResponse(info: ['http_code' => 503]),
+            new MockResponse(info: ['http_code' => 503]),
+            new MockResponse(),
+        ];
+
+        $client = ScopingHttpClient::forBaseUri(
+            new RetryableHttpClient(
+                new MockHttpClient($responses),
+                new GenericRetryStrategy(delayMs: 0)
+            ),
+            'https://foo.example.com/app/',
+        );
+
+        $response = $client->request('GET', 'santysisi');
+        $this->assertSame(200, $response->getStatusCode());
+        $this->assertSame('https://foo.example.com/app/santysisi', $response->getInfo('url'));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/Test/HarFileResponseFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/Test/HarFileResponseFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/Test/HarFileResponseFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/Test/HarFileResponseFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,18 +46,18 @@
         $factory = new HarFileResponseFactory("{$this->fixtureDir}/graphql.github.io_archive.har");
         $client = new MockHttpClient($factory, 'https://swapi-graphql.netlify.app');
         $query = <<<'GRAPHQL'
-{
-  allFilms(first: 5) {
-    edges {
-      node {
-        title
-        director
-      }
-    }
-    totalCount
-  }
-}
-GRAPHQL;
+            {
+              allFilms(first: 5) {
+                edges {
+                  node {
+                    title
+                    director
+                  }
+                }
+                totalCount
+              }
+            }
+            GRAPHQL;
 
         $response = $client->request('POST', '/graphql', [
             'json' => ['query' => $query],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/TraceableHttpClientTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/TraceableHttpClientTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/Tests/TraceableHttpClientTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/Tests/TraceableHttpClientTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,22 +31,17 @@
 
     public function testItTracesRequest()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = $this->createStub(HttpClientInterface::class);
         $httpClient
-            ->expects($this->any())
             ->method('request')
-            ->with(
-                'GET',
-                '/foo/bar',
-                $this->callback(function ($subject) {
-                    $onprogress = $subject['on_progress'];
-                    unset($subject['on_progress'], $subject['extra']);
-                    $this->assertEquals(['options1' => 'foo'], $subject);
-
-                    return true;
-                })
-            )
-            ->willReturn(MockResponse::fromRequest('GET', '/foo/bar', ['options1' => 'foo'], new MockResponse('hello')))
+            ->willReturnCallback(function (string $method, string $url, array $options = []) {
+                $this->assertSame('GET', $method);
+                $this->assertSame('/foo/bar', $url);
+                unset($options['on_progress'], $options['extra']);
+                $this->assertEquals(['options1' => 'foo'], $options);
+
+                return MockResponse::fromRequest('GET', '/foo/bar', ['options1' => 'foo'], new MockResponse('hello'));
+            })
         ;
 
         $sut = new TraceableHttpClient($httpClient);
@@ -90,7 +85,7 @@
     {
         $sut = new TraceableHttpClient(new MockHttpClient());
         $foo = 0;
-        $sut->request('GET', 'http://localhost:8057', ['on_progress' => function (int $dlNow, int $dlSize, array $info) use (&$foo) {
+        $sut->request('GET', 'http://localhost:8057', ['on_progress' => static function (int $dlNow, int $dlSize, array $info) use (&$foo) {
             ++$foo;
         }]);
         $this->assertCount(1, $tracedRequests = $sut->getTracedRequests());
@@ -123,7 +118,7 @@
     {
         $this->expectException(ClientExceptionInterface::class);
 
-        $sut = new TraceableHttpClient(new MockHttpClient($responseFactory = fn (): MockResponse => new MockResponse('Errored.', ['http_code' => 400])));
+        $sut = new TraceableHttpClient(new MockHttpClient($responseFactory = static fn (): MockResponse => new MockResponse('Errored.', ['http_code' => 400])));
 
         $response = $sut->request('GET', 'https://example.com/foo/bar');
         $response->toArray();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/TraceableHttpClient.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/TraceableHttpClient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpClient/TraceableHttpClient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpClient/TraceableHttpClient.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
             $content = false;
         }
 
-        $options['on_progress'] = function (int $dlNow, int $dlSize, array $info) use (&$traceInfo, $onProgress) {
+        $options['on_progress'] = static function (int $dlNow, int $dlSize, array $info) use (&$traceInfo, $onProgress) {
             $traceInfo = $info;
 
             if (null !== $onProgress) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/AcceptHeader.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/AcceptHeader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/AcceptHeader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/AcceptHeader.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
 class AcceptHeader
 {
     /**
-     * @var AcceptHeaderItem[]
+     * @var array<string, AcceptHeaderItem>
      */
     private array $items = [];
 
@@ -46,18 +46,15 @@
      */
     public static function fromString(?string $headerValue): self
     {
-        $parts = HeaderUtils::split($headerValue ?? '', ',;=');
+        $items = [];
+        foreach (HeaderUtils::split($headerValue ?? '', ',;=') as $i => $parts) {
+            $part = array_shift($parts);
+            $item = new AcceptHeaderItem($part[0], HeaderUtils::combine($parts));
 
-        return new self(array_map(function ($subParts) {
-            static $index = 0;
-            $part = array_shift($subParts);
-            $attributes = HeaderUtils::combine($subParts);
-
-            $item = new AcceptHeaderItem($part[0], $attributes);
-            $item->setIndex($index++);
+            $items[] = $item->setIndex($i);
+        }
 
-            return $item;
-        }, $parts));
+        return new self($items);
     }
 
     /**
@@ -73,7 +70,9 @@
      */
     public function has(string $value): bool
     {
-        return isset($this->items[$value]);
+        $canonicalKey = $this->getCanonicalKey(AcceptHeaderItem::fromString($value));
+
+        return isset($this->items[$canonicalKey]);
     }
 
     /**
@@ -81,7 +80,26 @@
      */
     public function get(string $value): ?AcceptHeaderItem
     {
-        return $this->items[$value] ?? $this->items[explode('/', $value)[0].'/*'] ?? $this->items['*/*'] ?? $this->items['*'] ?? null;
+        $queryItem = AcceptHeaderItem::fromString($value.';q=1');
+        $canonicalKey = $this->getCanonicalKey($queryItem);
+
+        if (isset($this->items[$canonicalKey])) {
+            return $this->items[$canonicalKey];
+        }
+
+        // Collect and filter matching candidates
+        if (!$candidates = array_filter($this->items, fn (AcceptHeaderItem $item) => $this->matches($item, $queryItem))) {
+            return null;
+        }
+
+        usort(
+            $candidates,
+            fn ($a, $b) => $this->getSpecificity($b, $queryItem) <=> $this->getSpecificity($a, $queryItem) // Descending specificity
+                ?: $b->getQuality() <=> $a->getQuality() // Descending quality
+                ?: $a->getIndex() <=> $b->getIndex() // Ascending index (stability)
+        );
+
+        return reset($candidates);
     }
 
     /**
@@ -91,7 +109,7 @@
      */
     public function add(AcceptHeaderItem $item): static
     {
-        $this->items[$item->getValue()] = $item;
+        $this->items[$this->getCanonicalKey($item)] = $item;
         $this->sorted = false;
 
         return $this;
@@ -114,7 +132,7 @@
      */
     public function filter(string $pattern): self
     {
-        return new self(array_filter($this->items, fn (AcceptHeaderItem $item) => preg_match($pattern, $item->getValue())));
+        return new self(array_filter($this->items, static fn ($item) => preg_match($pattern, $item->getValue())));
     }
 
     /**
@@ -133,18 +151,154 @@
     private function sort(): void
     {
         if (!$this->sorted) {
-            uasort($this->items, function (AcceptHeaderItem $a, AcceptHeaderItem $b) {
-                $qA = $a->getQuality();
-                $qB = $b->getQuality();
-
-                if ($qA === $qB) {
-                    return $a->getIndex() > $b->getIndex() ? 1 : -1;
-                }
-
-                return $qA > $qB ? -1 : 1;
-            });
+            uasort($this->items, static fn ($a, $b) => $b->getQuality() <=> $a->getQuality() ?: $a->getIndex() <=> $b->getIndex());
 
             $this->sorted = true;
         }
     }
+
+    /**
+     * Generates the canonical key for storing/retrieving an item.
+     */
+    private function getCanonicalKey(AcceptHeaderItem $item): string
+    {
+        $parts = [];
+
+        // Normalize and sort attributes for consistent key generation
+        $attributes = $this->getMediaParams($item);
+        ksort($attributes);
+
+        foreach ($attributes as $name => $value) {
+            if (null === $value) {
+                $parts[] = $name; // Flag parameter (e.g., "flowed")
+                continue;
+            }
+
+            // Quote values containing spaces, commas, semicolons, or equals per RFC 9110
+            // This handles cases like 'format="value with space"' or similar.
+            $quotedValue = \is_string($value) && preg_match('/[\s;,=]/', $value) ? '"'.addcslashes($value, '"\\').'"' : $value;
+
+            $parts[] = $name.'='.$quotedValue;
+        }
+
+        return $item->getValue().($parts ? ';'.implode(';', $parts) : '');
+    }
+
+    /**
+     * Checks if a given header item (range) matches a queried item (value).
+     *
+     * @param AcceptHeaderItem $rangeItem The item from the Accept header (e.g., text/*;format=flowed)
+     * @param AcceptHeaderItem $queryItem The item being queried (e.g., text/plain;format=flowed;charset=utf-8)
+     */
+    private function matches(AcceptHeaderItem $rangeItem, AcceptHeaderItem $queryItem): bool
+    {
+        $rangeValue = strtolower($rangeItem->getValue());
+        $queryValue = strtolower($queryItem->getValue());
+
+        // Handle universal wildcard ranges
+        if ('*' === $rangeValue || '*/*' === $rangeValue) {
+            return $this->rangeParametersMatch($rangeItem, $queryItem);
+        }
+
+        // Queries for '*' only match wildcard ranges (handled above)
+        if ('*' === $queryValue) {
+            return false;
+        }
+
+        // Ensure media vs. non-media consistency
+        $isQueryMedia = str_contains($queryValue, '/');
+        $isRangeMedia = str_contains($rangeValue, '/');
+
+        if ($isQueryMedia !== $isRangeMedia) {
+            return false;
+        }
+
+        // Non-media: exact match only (wildcards handled above)
+        if (!$isQueryMedia) {
+            return $rangeValue === $queryValue && $this->rangeParametersMatch($rangeItem, $queryItem);
+        }
+
+        // Media type: type/subtype with wildcards
+        [$queryType, $querySubtype] = explode('/', $queryValue, 2);
+        [$rangeType, $rangeSubtype] = explode('/', $rangeValue, 2) + [1 => '*'];
+
+        if ('*' !== $rangeType && $rangeType !== $queryType) {
+            return false;
+        }
+
+        if ('*' !== $rangeSubtype && $rangeSubtype !== $querySubtype) {
+            return false;
+        }
+
+        // Parameters must match
+        return $this->rangeParametersMatch($rangeItem, $queryItem);
+    }
+
+    /**
+     * Checks if the parameters of a range item are satisfied by the query item.
+     *
+     * Parameters are case-insensitive; range params must be a subset of query params.
+     */
+    private function rangeParametersMatch(AcceptHeaderItem $rangeItem, AcceptHeaderItem $queryItem): bool
+    {
+        $queryAttributes = $this->getMediaParams($queryItem);
+        $rangeAttributes = $this->getMediaParams($rangeItem);
+
+        foreach ($rangeAttributes as $name => $rangeValue) {
+            if (!\array_key_exists($name, $queryAttributes)) {
+                return false; // Missing required param
+            }
+
+            $queryValue = $queryAttributes[$name];
+
+            if (null === $rangeValue) {
+                return null === $queryValue; // Both flags or neither
+            }
+
+            if (null === $queryValue || strtolower($queryValue) !== strtolower($rangeValue)) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Calculates a specificity score for sorting: media precision + param count.
+     */
+    private function getSpecificity(AcceptHeaderItem $item, AcceptHeaderItem $queryItem): int
+    {
+        $rangeValue = strtolower($item->getValue());
+        $queryValue = strtolower($queryItem->getValue());
+
+        $paramCount = \count($this->getMediaParams($item));
+
+        $isQueryMedia = str_contains($queryValue, '/');
+        $isRangeMedia = str_contains($rangeValue, '/');
+
+        if (!$isQueryMedia && !$isRangeMedia) {
+            return ('*' !== $rangeValue ? 2000 : 1000) + $paramCount;
+        }
+
+        [$rangeType, $rangeSubtype] = explode('/', $rangeValue, 2) + [1 => '*'];
+
+        $specificity = match (true) {
+            '*' !== $rangeSubtype => 3000, // Exact subtype (text/plain)
+            '*' !== $rangeType => 2000,    // Type wildcard (text/*)
+            default => 1000,               // Full wildcard (*/* or *)
+        };
+
+        return $specificity + $paramCount;
+    }
+
+    /**
+     * Returns normalized attributes: keys lowercased, excluding 'q'.
+     */
+    private function getMediaParams(AcceptHeaderItem $item): array
+    {
+        $attributes = array_change_key_case($item->getAttributes(), \CASE_LOWER);
+        unset($attributes['q']);
+
+        return $attributes;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/BinaryFileResponse.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/BinaryFileResponse.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/BinaryFileResponse.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/BinaryFileResponse.php	2026-05-20 10:56:49.000000000 +0200
@@ -163,7 +163,7 @@
             for ($i = 0, $filenameLength = mb_strlen($filename, $encoding); $i < $filenameLength; ++$i) {
                 $char = mb_substr($filename, $i, 1, $encoding);
 
-                if ('%' === $char || \ord($char) < 32 || \ord($char) > 126) {
+                if ('%' === $char || \ord($char[0]) < 32 || \ord($char[0]) > 126) {
                     $filenameFallback .= '_';
                 } else {
                     $filenameFallback .= $char;
@@ -229,7 +229,7 @@
                         $path = $location.substr($path, \strlen($pathPrefix));
                         // Only set X-Accel-Redirect header if a valid URI can be produced
                         // as nginx does not serve arbitrary file paths.
-                        $this->headers->set($type, $path);
+                        $this->headers->set($type, rawurlencode($path));
                         $this->maxlen = 0;
                         break;
                     }
@@ -259,13 +259,13 @@
                         $end = min($end, $fileSize - 1);
                         if ($start < 0 || $start > $end) {
                             $this->setStatusCode(416);
-                            $this->headers->set('Content-Range', sprintf('bytes */%s', $fileSize));
-                        } elseif ($end - $start < $fileSize - 1) {
+                            $this->headers->set('Content-Range', \sprintf('bytes */%s', $fileSize));
+                        } else {
                             $this->maxlen = $end < $fileSize ? $end - $start + 1 : -1;
                             $this->offset = $start;
 
                             $this->setStatusCode(206);
-                            $this->headers->set('Content-Range', sprintf('bytes %s-%s/%s', $start, $end, $fileSize));
+                            $this->headers->set('Content-Range', \sprintf('bytes %s-%s/%s', $start, $end, $fileSize));
                             $this->headers->set('Content-Length', $end - $start + 1);
                         }
                     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Cookie.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Cookie.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Cookie.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Cookie.php	2026-05-20 10:56:49.000000000 +0200
@@ -101,7 +101,7 @@
     {
         // from PHP source code
         if ($raw && false !== strpbrk($name, self::RESERVED_CHARS_LIST)) {
-            throw new \InvalidArgumentException(sprintf('The cookie name "%s" contains invalid characters.', $name));
+            throw new \InvalidArgumentException(\sprintf('The cookie name "%s" contains invalid characters.', $name));
         }
 
         if (empty($name)) {
@@ -211,7 +211,7 @@
     public function withRaw(bool $raw = true): static
     {
         if ($raw && false !== strpbrk($this->name, self::RESERVED_CHARS_LIST)) {
-            throw new \InvalidArgumentException(sprintf('The cookie name "%s" contains invalid characters.', $this->name));
+            throw new \InvalidArgumentException(\sprintf('The cookie name "%s" contains invalid characters.', $this->name));
         }
 
         $cookie = clone $this;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/AccessDeniedException.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/AccessDeniedException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/AccessDeniedException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/AccessDeniedException.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,6 @@
 {
     public function __construct(string $path)
     {
-        parent::__construct(sprintf('The file %s could not be accessed', $path));
+        parent::__construct(\sprintf('The file %s could not be accessed', $path));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,6 @@
 {
     public function __construct(string $path)
     {
-        parent::__construct(sprintf('The file "%s" does not exist', $path));
+        parent::__construct(\sprintf('The file "%s" does not exist', $path));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/UnexpectedTypeException.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/UnexpectedTypeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/UnexpectedTypeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/File/Exception/UnexpectedTypeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,6 @@
 {
     public function __construct(mixed $value, string $expectedType)
     {
-        parent::__construct(sprintf('Expected argument of type %s, %s given', $expectedType, get_debug_type($value)));
+        parent::__construct(\sprintf('Expected argument of type %s, %s given', $expectedType, get_debug_type($value)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/File/File.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/File/File.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/File/File.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/File/File.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,17 +86,17 @@
     {
         $target = $this->getTargetFile($directory, $name);
 
-        set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
+        set_error_handler(static function ($type, $msg) use (&$error) { $error = $msg; });
         try {
             $renamed = rename($this->getPathname(), $target);
         } finally {
             restore_error_handler();
         }
         if (!$renamed) {
-            throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, strip_tags($error)));
+            throw new FileException(\sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, strip_tags($error)));
         }
 
-        @chmod($target, 0666 & ~umask());
+        @chmod($target, 0o666 & ~umask());
 
         return $target;
     }
@@ -106,7 +106,7 @@
         $content = file_get_contents($this->getPathname());
 
         if (false === $content) {
-            throw new FileException(sprintf('Could not get the content of the file "%s".', $this->getPathname()));
+            throw new FileException(\sprintf('Could not get the content of the file "%s".', $this->getPathname()));
         }
 
         return $content;
@@ -115,11 +115,11 @@
     protected function getTargetFile(string $directory, ?string $name = null): self
     {
         if (!is_dir($directory)) {
-            if (false === @mkdir($directory, 0777, true) && !is_dir($directory)) {
-                throw new FileException(sprintf('Unable to create the "%s" directory.', $directory));
+            if (false === @mkdir($directory, 0o777, true) && !is_dir($directory)) {
+                throw new FileException(\sprintf('Unable to create the "%s" directory.', $directory));
             }
         } elseif (!is_writable($directory)) {
-            throw new FileException(sprintf('Unable to write in the "%s" directory.', $directory));
+            throw new FileException(\sprintf('Unable to write in the "%s" directory.', $directory));
         }
 
         $target = rtrim($directory, '/\\').\DIRECTORY_SEPARATOR.(null === $name ? $this->getBasename() : $this->getName($name));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/File/UploadedFile.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/File/UploadedFile.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/File/UploadedFile.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/File/UploadedFile.php	2026-05-20 10:56:49.000000000 +0200
@@ -167,39 +167,47 @@
 
             $target = $this->getTargetFile($directory, $name);
 
-            set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
+            set_error_handler(static function ($type, $msg) use (&$error) { $error = $msg; });
             try {
                 $moved = move_uploaded_file($this->getPathname(), $target);
             } finally {
                 restore_error_handler();
             }
             if (!$moved) {
-                throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, strip_tags($error)));
+                throw new FileException(\sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, strip_tags($error)));
             }
 
-            @chmod($target, 0666 & ~umask());
+            @chmod($target, 0o666 & ~umask());
 
             return $target;
         }
 
         switch ($this->error) {
             case \UPLOAD_ERR_INI_SIZE:
-                throw new IniSizeFileException($this->getErrorMessage());
+                throw new IniSizeFileException($this->getExceptionMessage());
             case \UPLOAD_ERR_FORM_SIZE:
-                throw new FormSizeFileException($this->getErrorMessage());
+                throw new FormSizeFileException($this->getExceptionMessage());
             case \UPLOAD_ERR_PARTIAL:
-                throw new PartialFileException($this->getErrorMessage());
+                throw new PartialFileException($this->getExceptionMessage());
             case \UPLOAD_ERR_NO_FILE:
-                throw new NoFileException($this->getErrorMessage());
+                throw new NoFileException($this->getExceptionMessage());
             case \UPLOAD_ERR_CANT_WRITE:
-                throw new CannotWriteFileException($this->getErrorMessage());
+                throw new CannotWriteFileException($this->getExceptionMessage());
             case \UPLOAD_ERR_NO_TMP_DIR:
-                throw new NoTmpDirFileException($this->getErrorMessage());
+                throw new NoTmpDirFileException($this->getExceptionMessage());
             case \UPLOAD_ERR_EXTENSION:
-                throw new ExtensionFileException($this->getErrorMessage());
+                throw new ExtensionFileException($this->getExceptionMessage());
         }
 
-        throw new FileException($this->getErrorMessage());
+        throw new FileException($this->getExceptionMessage());
+    }
+
+    /**
+     * Retrieves a user-friendly error message for file upload issues, if any.
+     */
+    public function getErrorMessage(): string
+    {
+        return \UPLOAD_ERR_OK !== $this->error ? $this->getExceptionMessage() : '';
     }
 
     /**
@@ -248,7 +256,7 @@
     /**
      * Returns an informative upload error message.
      */
-    public function getErrorMessage(): string
+    private function getExceptionMessage(): string
     {
         static $errors = [
             \UPLOAD_ERR_INI_SIZE => 'The file "%s" exceeds your upload_max_filesize ini directive (limit is %d KiB).',
@@ -264,6 +272,6 @@
         $maxFilesize = \UPLOAD_ERR_INI_SIZE === $errorCode ? self::getMaxFilesize() / 1024 : 0;
         $message = $errors[$errorCode] ?? 'The file "%s" was not uploaded due to an unknown error.';
 
-        return sprintf($message, $this->getClientOriginalName(), $maxFilesize);
+        return \sprintf($message, $this->getClientOriginalName(), $maxFilesize);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/HeaderBag.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/HeaderBag.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/HeaderBag.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/HeaderBag.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
         foreach ($headers as $name => $values) {
             $name = ucwords($name, '-');
             foreach ($values as $value) {
-                $content .= sprintf("%-{$max}s %s\r\n", $name.':', $value);
+                $content .= \sprintf("%-{$max}s %s\r\n", $name.':', $value);
             }
         }
 
@@ -204,7 +204,7 @@
         }
 
         if (false === $date = \DateTimeImmutable::createFromFormat(\DATE_RFC2822, $value)) {
-            throw new \RuntimeException(sprintf('The "%s" HTTP header is not parseable (%s).', $key, $value));
+            throw new \RuntimeException(\sprintf('The "%s" HTTP header is not parseable (%s).', $key, $value));
         }
 
         return $date;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/HeaderUtils.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/HeaderUtils.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/HeaderUtils.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/HeaderUtils.php	2026-05-20 10:56:49.000000000 +0200
@@ -165,7 +165,7 @@
     public static function makeDisposition(string $disposition, string $filename, string $filenameFallback = ''): string
     {
         if (!\in_array($disposition, [self::DISPOSITION_ATTACHMENT, self::DISPOSITION_INLINE])) {
-            throw new \InvalidArgumentException(sprintf('The disposition must be either "%s" or "%s".', self::DISPOSITION_ATTACHMENT, self::DISPOSITION_INLINE));
+            throw new \InvalidArgumentException(\sprintf('The disposition must be either "%s" or "%s".', self::DISPOSITION_ATTACHMENT, self::DISPOSITION_INLINE));
         }
 
         if ('' === $filenameFallback) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/InputBag.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/InputBag.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/InputBag.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/InputBag.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,13 +29,13 @@
     public function get(string $key, mixed $default = null): string|int|float|bool|null
     {
         if (null !== $default && !\is_scalar($default) && !$default instanceof \Stringable) {
-            throw new \InvalidArgumentException(sprintf('Expected a scalar value as a 2nd argument to "%s()", "%s" given.', __METHOD__, get_debug_type($default)));
+            throw new \InvalidArgumentException(\sprintf('Expected a scalar value as a 2nd argument to "%s()", "%s" given.', __METHOD__, get_debug_type($default)));
         }
 
         $value = parent::get($key, $this);
 
         if (null !== $value && $this !== $value && !\is_scalar($value) && !$value instanceof \Stringable) {
-            throw new BadRequestException(sprintf('Input value "%s" contains a non-scalar value.', $key));
+            throw new BadRequestException(\sprintf('Input value "%s" contains a non-scalar value.', $key));
         }
 
         return $this === $value ? $default : $value;
@@ -68,7 +68,7 @@
     public function set(string $key, mixed $value): void
     {
         if (null !== $value && !\is_scalar($value) && !\is_array($value) && !$value instanceof \Stringable) {
-            throw new \InvalidArgumentException(sprintf('Expected a scalar, or an array as a 2nd argument to "%s()", "%s" given.', __METHOD__, get_debug_type($value)));
+            throw new \InvalidArgumentException(\sprintf('Expected a scalar, or an array as a 2nd argument to "%s()", "%s" given.', __METHOD__, get_debug_type($value)));
         }
 
         $this->parameters[$key] = $value;
@@ -112,11 +112,11 @@
         }
 
         if (\is_array($value) && !(($options['flags'] ?? 0) & (\FILTER_REQUIRE_ARRAY | \FILTER_FORCE_ARRAY))) {
-            throw new BadRequestException(sprintf('Input value "%s" contains an array, but "FILTER_REQUIRE_ARRAY" or "FILTER_FORCE_ARRAY" flags were not set.', $key));
+            throw new BadRequestException(\sprintf('Input value "%s" contains an array, but "FILTER_REQUIRE_ARRAY" or "FILTER_FORCE_ARRAY" flags were not set.', $key));
         }
 
         if ((\FILTER_CALLBACK & $filter) && !(($options['options'] ?? null) instanceof \Closure)) {
-            throw new \InvalidArgumentException(sprintf('A Closure must be passed to "%s()" when FILTER_CALLBACK is used, "%s" given.', __METHOD__, get_debug_type($options['options'] ?? null)));
+            throw new \InvalidArgumentException(\sprintf('A Closure must be passed to "%s()" when FILTER_CALLBACK is used, "%s" given.', __METHOD__, get_debug_type($options['options'] ?? null)));
         }
 
         $options['flags'] ??= 0;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/IpUtils.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/IpUtils.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/IpUtils.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/IpUtils.php	2026-05-20 10:56:49.000000000 +0200
@@ -102,7 +102,7 @@
             return self::setCacheResult($cacheKey, false);
         }
 
-        return self::setCacheResult($cacheKey, 0 === substr_compare(sprintf('%032b', ip2long($requestIp)), sprintf('%032b', ip2long($address)), 0, $netmask));
+        return self::setCacheResult($cacheKey, 0 === substr_compare(\sprintf('%032b', ip2long($requestIp)), \sprintf('%032b', ip2long($address)), 0, $netmask));
     }
 
     /**
@@ -182,7 +182,7 @@
      */
     public static function anonymize(string $ip): string
     {
-        /**
+        /*
          * If the IP contains a % symbol, then it is a local-link address with scoping according to RFC 4007
          * In that case, we only care about the part before the % symbol, as the following functions, can only work with
          * the IP address itself. As the scope can leak information (containing interface name), we do not want to
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/JsonResponse.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/JsonResponse.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/JsonResponse.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/JsonResponse.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
         parent::__construct('', $status, $headers);
 
         if ($json && !\is_string($data) && !is_numeric($data) && !\is_callable([$data, '__toString'])) {
-            throw new \TypeError(sprintf('"%s": If $json is set to true, argument $data must be a string or object implementing __toString(), "%s" given.', __METHOD__, get_debug_type($data)));
+            throw new \TypeError(\sprintf('"%s": If $json is set to true, argument $data must be a string or object implementing __toString(), "%s" given.', __METHOD__, get_debug_type($data)));
         }
 
         $data ??= new \ArrayObject();
@@ -176,7 +176,7 @@
             // Not using application/javascript for compatibility reasons with older browsers.
             $this->headers->set('Content-Type', 'text/javascript');
 
-            return $this->setContent(sprintf('/**/%s(%s);', $this->callback, $this->data));
+            return $this->setContent(\sprintf('/**/%s(%s);', $this->callback, $this->data));
         }
 
         // Only set the header when there is none or when it equals 'text/javascript' (from a previous update with callback)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/ParameterBag.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/ParameterBag.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/ParameterBag.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/ParameterBag.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
         }
 
         if (!\is_array($value = $this->parameters[$key] ?? [])) {
-            throw new BadRequestException(sprintf('Unexpected value for parameter "%s": expecting "array", got "%s".', $key, get_debug_type($value)));
+            throw new BadRequestException(\sprintf('Unexpected value for parameter "%s": expecting "array", got "%s".', $key, get_debug_type($value)));
         }
 
         return $value;
@@ -141,7 +141,7 @@
     {
         $value = $this->get($key, $default);
         if (!\is_scalar($value) && !$value instanceof \Stringable) {
-            throw new UnexpectedValueException(sprintf('Parameter value "%s" cannot be converted to "string".', $key));
+            throw new UnexpectedValueException(\sprintf('Parameter value "%s" cannot be converted to "string".', $key));
         }
 
         return (string) $value;
@@ -185,7 +185,7 @@
         try {
             return $class::from($value);
         } catch (\ValueError|\TypeError $e) {
-            throw new UnexpectedValueException(sprintf('Parameter "%s" cannot be converted to enum: %s.', $key, $e->getMessage()), $e->getCode(), $e);
+            throw new UnexpectedValueException(\sprintf('Parameter "%s" cannot be converted to enum: %s.', $key, $e->getMessage()), $e->getCode(), $e);
         }
     }
 
@@ -212,11 +212,11 @@
         }
 
         if (\is_object($value) && !$value instanceof \Stringable) {
-            throw new UnexpectedValueException(sprintf('Parameter value "%s" cannot be filtered.', $key));
+            throw new UnexpectedValueException(\sprintf('Parameter value "%s" cannot be filtered.', $key));
         }
 
         if ((\FILTER_CALLBACK & $filter) && !(($options['options'] ?? null) instanceof \Closure)) {
-            throw new \InvalidArgumentException(sprintf('A Closure must be passed to "%s()" when FILTER_CALLBACK is used, "%s" given.', __METHOD__, get_debug_type($options['options'] ?? null)));
+            throw new \InvalidArgumentException(\sprintf('A Closure must be passed to "%s()" when FILTER_CALLBACK is used, "%s" given.', __METHOD__, get_debug_type($options['options'] ?? null)));
         }
 
         $options['flags'] ??= 0;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/RedirectResponse.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/RedirectResponse.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/RedirectResponse.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/RedirectResponse.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
         $this->setTargetUrl($url);
 
         if (!$this->isRedirect()) {
-            throw new \InvalidArgumentException(sprintf('The HTTP status code is not a redirect ("%s" given).', $status));
+            throw new \InvalidArgumentException(\sprintf('The HTTP status code is not a redirect ("%s" given).', $status));
         }
 
         if (301 == $status && !\array_key_exists('cache-control', array_change_key_case($headers, \CASE_LOWER))) {
@@ -71,7 +71,7 @@
         $this->targetUrl = $url;
 
         $this->setContent(
-            sprintf('<!DOCTYPE html>
+            \sprintf('<!DOCTYPE html>
 <html>
     <head>
         <meta charset="UTF-8" />
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Request.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Request.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Request.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Request.php	2026-05-20 10:56:49.000000000 +0200
@@ -351,10 +351,21 @@
         $server['PATH_INFO'] = '';
         $server['REQUEST_METHOD'] = strtoupper($method);
 
+        if (($i = strcspn($uri, ':/?#')) && ':' === ($uri[$i] ?? null) && (strspn($uri, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.') !== $i || strcspn($uri, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'))) {
+            throw new BadRequestException('Invalid URI: Scheme is malformed.');
+        }
         if (false === $components = parse_url(\strlen($uri) !== strcspn($uri, '?#') ? $uri : $uri.'#')) {
             throw new BadRequestException('Invalid URI.');
         }
 
+        $part = ($components['user'] ?? '').':'.($components['pass'] ?? '');
+
+        if (':' !== $part && \strlen($part) !== strcspn($part, '[]')) {
+            throw new BadRequestException('Invalid URI: Userinfo is malformed.');
+        }
+        if (($part = $components['host'] ?? '') && !self::isHostValid($part)) {
+            throw new BadRequestException('Invalid URI: Host is malformed.');
+        }
         if (false !== ($i = strpos($uri, '\\')) && $i < strcspn($uri, '?#')) {
             throw new BadRequestException('Invalid URI: A URI cannot contain a backslash.');
         }
@@ -393,8 +404,16 @@
             $server['PHP_AUTH_PW'] = $components['pass'];
         }
 
-        if (!isset($components['path'])) {
+        if ('' === $path = $components['path'] ?? '') {
             $components['path'] = '/';
+        } elseif (!isset($components['scheme']) && !isset($components['host']) && '/' !== $path[0]) {
+            if (false !== $pos = strpos($path, '/')) {
+                $path = substr($path, 0, $pos);
+            }
+
+            if (str_contains($path, ':')) {
+                throw new BadRequestException('Invalid URI: Path is malformed.');
+            }
         }
 
         switch (strtoupper($method)) {
@@ -537,7 +556,7 @@
         }
 
         return
-            sprintf('%s %s %s', $this->getMethod(), $this->getRequestUri(), $this->server->get('SERVER_PROTOCOL'))."\r\n".
+            \sprintf('%s %s %s', $this->getMethod(), $this->getRequestUri(), $this->server->get('SERVER_PROTOCOL'))."\r\n".
             $this->headers.
             $cookieHeader."\r\n".
             $content;
@@ -595,7 +614,7 @@
      */
     public static function setTrustedProxies(array $proxies, int $trustedHeaderSet)
     {
-        self::$trustedProxies = array_reduce($proxies, function ($proxies, $proxy) {
+        self::$trustedProxies = array_reduce($proxies, static function ($proxies, $proxy) {
             if ('REMOTE_ADDR' !== $proxy) {
                 $proxies[] = $proxy;
             } elseif (isset($_SERVER['REMOTE_ADDR'])) {
@@ -638,7 +657,7 @@
      */
     public static function setTrustedHosts(array $hostPatterns)
     {
-        self::$trustedHostPatterns = array_map(fn ($hostPattern) => sprintf('{%s}i', $hostPattern), $hostPatterns);
+        self::$trustedHostPatterns = array_map(static fn ($hostPattern) => \sprintf('{%s}i', $hostPattern), $hostPatterns);
         // we need to reset trusted hosts on trusted host patterns change
         self::$trustedHosts = [];
     }
@@ -817,10 +836,6 @@
      * being the original client, and each successive proxy that passed the request
      * adding the IP address where it received the request from.
      *
-     * If your reverse proxy uses a different header name than "X-Forwarded-For",
-     * ("Client-Ip" for instance), configure it via the $trustedHeaderSet
-     * argument of the Request::setTrustedProxies() method instead.
-     *
      * @see getClientIps()
      * @see https://wikipedia.org/wiki/X-Forwarded-For
      */
@@ -846,7 +861,7 @@
      *
      * Suppose this request is instantiated from /mysite on localhost:
      *
-     *  * http://localhost/mysite              returns an empty string
+     *  * http://localhost/mysite              returns '/'
      *  * http://localhost/mysite/about        returns '/about'
      *  * http://localhost/mysite/enco%20ded   returns '/enco%20ded'
      *  * http://localhost/mysite/about?var=1  returns '/about'
@@ -1151,16 +1166,14 @@
         // host is lowercase as per RFC 952/2181
         $host = strtolower(preg_replace('/:\d+$/', '', trim($host)));
 
-        // as the host can come from the user (HTTP_HOST and depending on the configuration, SERVER_NAME too can come from the user)
-        // check that it does not contain forbidden characters (see RFC 952 and RFC 2181)
-        // use preg_replace() instead of preg_match() to prevent DoS attacks with long host names
-        if ($host && '' !== preg_replace('/(?:^\[)?[a-zA-Z0-9-:\]_]+\.?/', '', $host)) {
+        // the host can come from the user (HTTP_HOST and depending on the configuration, SERVER_NAME too can come from the user)
+        if ($host && !self::isHostValid($host)) {
             if (!$this->isHostValid) {
                 return '';
             }
             $this->isHostValid = false;
 
-            throw new SuspiciousOperationException(sprintf('Invalid Host "%s".', $host));
+            throw new SuspiciousOperationException(\sprintf('Invalid Host "%s".', $host));
         }
 
         if (\count(self::$trustedHostPatterns) > 0) {
@@ -1183,7 +1196,7 @@
             }
             $this->isHostValid = false;
 
-            throw new SuspiciousOperationException(sprintf('Untrusted Host "%s".', $host));
+            throw new SuspiciousOperationException(\sprintf('Untrusted Host "%s".', $host));
         }
 
         return $host;
@@ -1298,15 +1311,22 @@
             static::initializeFormats();
         }
 
+        $exactFormat = null;
+        $canonicalFormat = null;
+
         foreach (static::$formats as $format => $mimeTypes) {
-            if (\in_array($mimeType, (array) $mimeTypes)) {
-                return $format;
+            if (\in_array($mimeType, $mimeTypes, true)) {
+                $exactFormat = $format;
             }
-            if (null !== $canonicalMimeType && \in_array($canonicalMimeType, (array) $mimeTypes)) {
-                return $format;
+            if (null !== $canonicalMimeType && \in_array($canonicalMimeType, $mimeTypes, true)) {
+                $canonicalFormat = $format;
             }
         }
 
+        if ($format = $exactFormat ?? $canonicalFormat) {
+            return $format;
+        }
+
         return null;
     }
 
@@ -1323,7 +1343,7 @@
             static::initializeFormats();
         }
 
-        static::$formats[$format] = \is_array($mimeTypes) ? $mimeTypes : [$mimeTypes];
+        static::$formats[$format ?? ''] = (array) $mimeTypes;
     }
 
     /**
@@ -1466,7 +1486,7 @@
     public function getProtocolVersion(): ?string
     {
         if ($this->isFromTrustedProxy()) {
-            preg_match('~^(HTTP/)?([1-9]\.[0-9]) ~', $this->headers->get('Via') ?? '', $matches);
+            preg_match('~^(HTTP/)?([1-9]\.[0-9])\b~', $this->headers->get('Via') ?? '', $matches);
 
             if ($matches) {
                 return 'HTTP/'.$matches[2];
@@ -1545,7 +1565,7 @@
         }
 
         if (!\is_array($content)) {
-            throw new JsonException(sprintf('JSON content was expected to decode to an array, "%s" returned.', get_debug_type($content)));
+            throw new JsonException(\sprintf('JSON content was expected to decode to an array, "%s" returned.', get_debug_type($content)));
         }
 
         return new InputBag($content);
@@ -1571,7 +1591,7 @@
         }
 
         if (!\is_array($content)) {
-            throw new JsonException(sprintf('JSON content was expected to decode to an array, "%s" returned.', get_debug_type($content)));
+            throw new JsonException(\sprintf('JSON content was expected to decode to an array, "%s" returned.', get_debug_type($content)));
         }
 
         return $content;
@@ -1917,9 +1937,8 @@
         }
 
         $pathInfo = substr($requestUri, \strlen($baseUrl));
-        if (false === $pathInfo || '' === $pathInfo) {
-            // If substr() returns false then PATH_INFO is set to an empty string
-            return '/';
+        if (false === $pathInfo || '' === $pathInfo || '/' !== $pathInfo[0]) {
+            return '/'.$pathInfo;
         }
 
         return $pathInfo;
@@ -1978,7 +1997,7 @@
 
         $len = \strlen($prefix);
 
-        if (preg_match(sprintf('#^(%%[[:xdigit:]]{2}|.){%d}#', $len), $string, $match)) {
+        if (preg_match(\sprintf('#^(%%[[:xdigit:]]{2}|.){%d}#', $len), $string, $match)) {
             return $match[0];
         }
 
@@ -2070,7 +2089,7 @@
         }
         $this->isForwardedValid = false;
 
-        throw new ConflictingHeadersException(sprintf('The request has both a trusted "%s" header and a trusted "%s" header, conflicting with each other. You should either configure your proxy to remove one of them, or configure your project to distrust the offending one.', self::TRUSTED_HEADERS[self::HEADER_FORWARDED], self::TRUSTED_HEADERS[$type]));
+        throw new ConflictingHeadersException(\sprintf('The request has both a trusted "%s" header and a trusted "%s" header, conflicting with each other. You should either configure your proxy to remove one of them, or configure your project to distrust the offending one.', self::TRUSTED_HEADERS[self::HEADER_FORWARDED], self::TRUSTED_HEADERS[$type]));
     }
 
     private function normalizeAndFilterClientIps(array $clientIps, string $ip): array
@@ -2128,4 +2147,21 @@
 
         return $this->isIisRewrite;
     }
+
+    /**
+     * See https://url.spec.whatwg.org/.
+     */
+    private static function isHostValid(string $host): bool
+    {
+        if ('[' === $host[0]) {
+            return ']' === $host[-1] && filter_var(substr($host, 1, -1), \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV6);
+        }
+
+        if (preg_match('/\.[0-9]++\.?$/D', $host)) {
+            return null !== filter_var($host, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV4 | \FILTER_NULL_ON_FAILURE);
+        }
+
+        // use preg_replace() instead of preg_match() to prevent DoS attacks with long host names
+        return '' === preg_replace('/[-a-zA-Z0-9_]++\.?/', '', $host);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php	2026-05-20 10:56:49.000000000 +0200
@@ -174,7 +174,7 @@
      */
     public function setCookie(Cookie $cookie)
     {
-        $this->cookies[$cookie->getDomain()][$cookie->getPath()][$cookie->getName()] = $cookie;
+        $this->cookies[$cookie->getDomain() ?? ''][$cookie->getPath()][$cookie->getName()] = $cookie;
         $this->headerNames['set-cookie'] = 'Set-Cookie';
     }
 
@@ -187,13 +187,13 @@
     {
         $path ??= '/';
 
-        unset($this->cookies[$domain][$path][$name]);
+        unset($this->cookies[$domain ?? ''][$path][$name]);
 
-        if (empty($this->cookies[$domain][$path])) {
-            unset($this->cookies[$domain][$path]);
+        if (empty($this->cookies[$domain ?? ''][$path])) {
+            unset($this->cookies[$domain ?? ''][$path]);
 
-            if (empty($this->cookies[$domain])) {
-                unset($this->cookies[$domain]);
+            if (empty($this->cookies[$domain ?? ''])) {
+                unset($this->cookies[$domain ?? '']);
             }
         }
 
@@ -212,7 +212,7 @@
     public function getCookies(string $format = self::COOKIES_FLAT): array
     {
         if (!\in_array($format, [self::COOKIES_FLAT, self::COOKIES_ARRAY])) {
-            throw new \InvalidArgumentException(sprintf('Format "%s" invalid (%s).', $format, implode(', ', [self::COOKIES_FLAT, self::COOKIES_ARRAY])));
+            throw new \InvalidArgumentException(\sprintf('Format "%s" invalid (%s).', $format, implode(', ', [self::COOKIES_FLAT, self::COOKIES_ARRAY])));
         }
 
         if (self::COOKIES_ARRAY === $format) {
@@ -240,7 +240,7 @@
      */
     public function clearCookie(string $name, ?string $path = '/', ?string $domain = null, bool $secure = false, bool $httpOnly = true, ?string $sameSite = null /* , bool $partitioned = false */)
     {
-        $partitioned = 6 < \func_num_args() ? \func_get_arg(6) : false;
+        $partitioned = 6 < \func_num_args() ? func_get_arg(6) : false;
 
         $this->setCookie(new Cookie($name, null, 1, $path, $domain, $secure, $httpOnly, false, $sameSite, $partitioned));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Response.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Response.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Response.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Response.php	2026-05-20 10:56:49.000000000 +0200
@@ -241,7 +241,7 @@
     public function __toString(): string
     {
         return
-            sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText)."\r\n".
+            \sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText)."\r\n".
             $this->headers."\r\n".
             $this->getContent();
     }
@@ -393,7 +393,7 @@
         $statusCode ??= $this->statusCode;
 
         // status
-        header(sprintf('HTTP/%s %s %s', $this->version, $statusCode, $this->statusText), true, $statusCode);
+        header(\sprintf('HTTP/%s %s %s', $this->version, $statusCode, $this->statusText), true, $statusCode);
 
         return $this;
     }
@@ -499,7 +499,7 @@
     {
         $this->statusCode = $code;
         if ($this->isInvalid()) {
-            throw new \InvalidArgumentException(sprintf('The HTTP status code "%s" is not valid.', $code));
+            throw new \InvalidArgumentException(\sprintf('The HTTP status code "%s" is not valid.', $code));
         }
 
         if (null === $text) {
@@ -1011,7 +1011,7 @@
     public function setCache(array $options): static
     {
         if ($diff = array_diff(array_keys($options), array_keys(self::HTTP_RESPONSE_CACHE_CONTROL_DIRECTIVES))) {
-            throw new \InvalidArgumentException(sprintf('Response does not support the following options: "%s".', implode('", "', $diff)));
+            throw new \InvalidArgumentException(\sprintf('Response does not support the following options: "%s".', implode('", "', $diff)));
         }
 
         if (isset($options['etag'])) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/SessionUtils.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/SessionUtils.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/SessionUtils.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/SessionUtils.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,8 +28,8 @@
     public static function popSessionCookie(string $sessionName, #[\SensitiveParameter] string $sessionId): ?string
     {
         $sessionCookie = null;
-        $sessionCookiePrefix = sprintf(' %s=', urlencode($sessionName));
-        $sessionCookieWithId = sprintf('%s%s;', $sessionCookiePrefix, urlencode($sessionId));
+        $sessionCookiePrefix = \sprintf(' %s=', urlencode($sessionName));
+        $sessionCookieWithId = \sprintf('%s%s;', $sessionCookiePrefix, urlencode($sessionId));
         $otherCookies = [];
         foreach (headers_list() as $h) {
             if (0 !== stripos($h, 'Set-Cookie:')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/AbstractSessionHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/AbstractSessionHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/AbstractSessionHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/AbstractSessionHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
     {
         $this->sessionName = $sessionName;
         if (!headers_sent() && !\ini_get('session.cache_limiter') && '0' !== \ini_get('session.cache_limiter')) {
-            header(sprintf('Cache-Control: max-age=%d, private, must-revalidate', 60 * (int) \ini_get('session.cache_expire')));
+            header(\sprintf('Cache-Control: max-age=%d, private, must-revalidate', 60 * (int) \ini_get('session.cache_expire')));
         }
 
         return true;
@@ -72,6 +72,16 @@
         return $data;
     }
 
+    public function updateTimestamp(#[\SensitiveParameter] string $sessionId, string $data): bool
+    {
+        $this->igbinaryEmptyData ??= \function_exists('igbinary_serialize') ? igbinary_serialize([]) : '';
+        if ('' === $data || $this->igbinaryEmptyData === $data) {
+            return $this->destroy($sessionId);
+        }
+
+        return true;
+    }
+
     public function write(#[\SensitiveParameter] string $sessionId, string $data): bool
     {
         // see https://github.com/igbinary/igbinary/issues/146
@@ -88,7 +98,7 @@
     {
         if (!headers_sent() && filter_var(\ini_get('session.use_cookies'), \FILTER_VALIDATE_BOOL)) {
             if (!isset($this->sessionName)) {
-                throw new \LogicException(sprintf('Session name cannot be empty, did you forget to call "parent::open()" in "%s"?.', static::class));
+                throw new \LogicException(\sprintf('Session name cannot be empty, did you forget to call "parent::open()" in "%s"?.', static::class));
             }
             $cookie = SessionUtils::popSessionCookie($this->sessionName, $sessionId);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/IdentityMarshaller.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/IdentityMarshaller.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/IdentityMarshaller.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/IdentityMarshaller.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
     {
         foreach ($values as $key => $value) {
             if (!\is_string($value)) {
-                throw new \LogicException(sprintf('%s accepts only string as data.', __METHOD__));
+                throw new \LogicException(\sprintf('%s accepts only string as data.', __METHOD__));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
         $this->memcached = $memcached;
 
         if ($diff = array_diff(array_keys($options), ['prefix', 'expiretime', 'ttl'])) {
-            throw new \InvalidArgumentException(sprintf('The following options are not supported "%s".', implode(', ', $diff)));
+            throw new \InvalidArgumentException(\sprintf('The following options are not supported "%s".', implode(', ', $diff)));
         }
 
         $this->ttl = $options['expiretime'] ?? $options['ttl'] ?? null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,15 +34,15 @@
 
         if ($count = substr_count($savePath, ';')) {
             if ($count > 2) {
-                throw new \InvalidArgumentException(sprintf('Invalid argument $savePath \'%s\'.', $savePath));
+                throw new \InvalidArgumentException(\sprintf('Invalid argument $savePath \'%s\'.', $savePath));
             }
 
             // characters after last ';' are the path
             $baseDir = ltrim(strrchr($savePath, ';'), ';');
         }
 
-        if ($baseDir && !is_dir($baseDir) && !@mkdir($baseDir, 0777, true) && !is_dir($baseDir)) {
-            throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s".', $baseDir));
+        if ($baseDir && !is_dir($baseDir) && !@mkdir($baseDir, 0o777, true) && !is_dir($baseDir)) {
+            throw new \RuntimeException(\sprintf('Session Storage was not able to create directory "%s".', $baseDir));
         }
 
         if ($savePath !== \ini_get('session.save_path')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -155,7 +155,7 @@
     {
         if ($pdoOrDsn instanceof \PDO) {
             if (\PDO::ERRMODE_EXCEPTION !== $pdoOrDsn->getAttribute(\PDO::ATTR_ERRMODE)) {
-                throw new \InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __CLASS__));
+                throw new \InvalidArgumentException(\sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __CLASS__));
             }
 
             $this->pdo = $pdoOrDsn;
@@ -194,7 +194,6 @@
                 $table->addColumn($this->dataCol, Types::BLOB)->setNotnull(true);
                 $table->addColumn($this->lifetimeCol, Types::INTEGER)->setUnsigned(true)->setNotnull(true);
                 $table->addColumn($this->timeCol, Types::INTEGER)->setUnsigned(true)->setNotnull(true);
-                $table->addOption('collate', 'utf8mb4_bin');
                 $table->addOption('engine', 'InnoDB');
                 break;
             case 'sqlite':
@@ -216,13 +215,13 @@
                 $table->addColumn($this->timeCol, Types::INTEGER)->setNotnull(true);
                 break;
             case 'sqlsrv':
-                $table->addColumn($this->idCol, Types::TEXT)->setLength(128)->setNotnull(true);
+                $table->addColumn($this->idCol, Types::STRING)->setLength(128)->setNotnull(true);
                 $table->addColumn($this->dataCol, Types::BLOB)->setNotnull(true);
                 $table->addColumn($this->lifetimeCol, Types::INTEGER)->setUnsigned(true)->setNotnull(true);
                 $table->addColumn($this->timeCol, Types::INTEGER)->setUnsigned(true)->setNotnull(true);
                 break;
             default:
-                throw new \DomainException(sprintf('Creating the session table is currently not implemented for PDO driver "%s".', $this->driver));
+                throw new \DomainException(\sprintf('Creating the session table is currently not implemented for PDO driver "%s".', $this->driver));
         }
         $table->setPrimaryKey([$this->idCol]);
         $table->addIndex([$this->lifetimeCol], $this->lifetimeCol.'_idx');
@@ -252,12 +251,12 @@
             // - trailing space removal
             // - case-insensitivity
             // - language processing like é == e
-            'mysql' => "CREATE TABLE $this->table ($this->idCol VARBINARY(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED NOT NULL, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8mb4_bin, ENGINE = InnoDB",
+            'mysql' => "CREATE TABLE $this->table ($this->idCol VARBINARY(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED NOT NULL, $this->timeCol INTEGER UNSIGNED NOT NULL) ENGINE = InnoDB",
             'sqlite' => "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)",
             'pgsql' => "CREATE TABLE $this->table ($this->idCol VARCHAR(128) NOT NULL PRIMARY KEY, $this->dataCol BYTEA NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)",
             'oci' => "CREATE TABLE $this->table ($this->idCol VARCHAR2(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)",
             'sqlsrv' => "CREATE TABLE $this->table ($this->idCol VARCHAR(128) NOT NULL PRIMARY KEY, $this->dataCol VARBINARY(MAX) NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)",
-            default => throw new \DomainException(sprintf('Creating the session table is currently not implemented for PDO driver "%s".', $this->driver)),
+            default => throw new \DomainException(\sprintf('Creating the session table is currently not implemented for PDO driver "%s".', $this->driver)),
         };
 
         try {
@@ -538,7 +537,7 @@
                 return $dsn;
 
             default:
-                throw new \InvalidArgumentException(sprintf('The scheme "%s" is not supported by the PdoSessionHandler URL configuration. Pass a PDO DSN directly.', $params['scheme']));
+                throw new \InvalidArgumentException(\sprintf('The scheme "%s" is not supported by the PdoSessionHandler URL configuration. Pass a PDO DSN directly.', $params['scheme']));
         }
     }
 
@@ -734,7 +733,7 @@
             case 'sqlite':
                 throw new \DomainException('SQLite does not support advisory locks.');
             default:
-                throw new \DomainException(sprintf('Advisory locks are currently not implemented for PDO driver "%s".', $this->driver));
+                throw new \DomainException(\sprintf('Advisory locks are currently not implemented for PDO driver "%s".', $this->driver));
         }
     }
 
@@ -776,7 +775,7 @@
                     // we already locked when starting transaction
                     break;
                 default:
-                    throw new \DomainException(sprintf('Transactional locks are currently not implemented for PDO driver "%s".', $this->driver));
+                    throw new \DomainException(\sprintf('Transactional locks are currently not implemented for PDO driver "%s".', $this->driver));
             }
         }
 
@@ -795,6 +794,12 @@
                 rewind($data);
                 $sql = "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, EMPTY_BLOB(), :expiry, :time) RETURNING $this->dataCol into :data";
                 break;
+            case 'sqlsrv':
+                $data = fopen('php://memory', 'r+');
+                fwrite($data, $sessionData);
+                rewind($data);
+                $sql = "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :expiry, :time)";
+                break;
             default:
                 $data = $sessionData;
                 $sql = "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :expiry, :time)";
@@ -822,6 +827,12 @@
                 rewind($data);
                 $sql = "UPDATE $this->table SET $this->dataCol = EMPTY_BLOB(), $this->lifetimeCol = :expiry, $this->timeCol = :time WHERE $this->idCol = :id RETURNING $this->dataCol into :data";
                 break;
+            case 'sqlsrv':
+                $data = fopen('php://memory', 'r+');
+                fwrite($data, $sessionData);
+                rewind($data);
+                $sql = "UPDATE $this->table SET $this->dataCol = :data, $this->lifetimeCol = :expiry, $this->timeCol = :time WHERE $this->idCol = :id";
+                break;
             default:
                 $data = $sessionData;
                 $sql = "UPDATE $this->table SET $this->dataCol = :data, $this->lifetimeCol = :expiry, $this->timeCol = :time WHERE $this->idCol = :id";
@@ -869,12 +880,16 @@
         $mergeStmt = $this->pdo->prepare($mergeSql);
 
         if ('sqlsrv' === $this->driver) {
+            $dataStream = fopen('php://memory', 'r+');
+            fwrite($dataStream, $data);
+            rewind($dataStream);
+
             $mergeStmt->bindParam(1, $sessionId, \PDO::PARAM_STR);
             $mergeStmt->bindParam(2, $sessionId, \PDO::PARAM_STR);
-            $mergeStmt->bindParam(3, $data, \PDO::PARAM_LOB);
+            $mergeStmt->bindParam(3, $dataStream, \PDO::PARAM_LOB);
             $mergeStmt->bindValue(4, time() + $maxlifetime, \PDO::PARAM_INT);
             $mergeStmt->bindValue(5, time(), \PDO::PARAM_INT);
-            $mergeStmt->bindParam(6, $data, \PDO::PARAM_LOB);
+            $mergeStmt->bindParam(6, $dataStream, \PDO::PARAM_LOB);
             $mergeStmt->bindValue(7, time() + $maxlifetime, \PDO::PARAM_INT);
             $mergeStmt->bindValue(8, time(), \PDO::PARAM_INT);
         } else {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/RedisSessionHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/RedisSessionHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/RedisSessionHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/RedisSessionHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
         array $options = [],
     ) {
         if ($diff = array_diff(array_keys($options), ['prefix', 'ttl'])) {
-            throw new \InvalidArgumentException(sprintf('The following options are not supported "%s".', implode(', ', $diff)));
+            throw new \InvalidArgumentException(\sprintf('The following options are not supported "%s".', implode(', ', $diff)));
         }
 
         $this->prefix = $options['prefix'] ?? 'sf_s';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/SessionHandlerFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/SessionHandlerFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/SessionHandlerFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/SessionHandlerFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
                 return new PdoSessionHandler($connection);
 
             case !\is_string($connection):
-                throw new \InvalidArgumentException(sprintf('Unsupported Connection: "%s".', get_debug_type($connection)));
+                throw new \InvalidArgumentException(\sprintf('Unsupported Connection: "%s".', get_debug_type($connection)));
             case str_starts_with($connection, 'file://'):
                 $savePath = substr($connection, 7);
 
@@ -62,6 +62,7 @@
                     throw new \InvalidArgumentException('Unsupported Redis or Memcached DSN. Try running "composer require symfony/cache".');
                 }
                 $handlerClass = str_starts_with($connection, 'memcached:') ? MemcachedSessionHandler::class : RedisSessionHandler::class;
+                $connection = preg_replace('/([?&])prefix=[^&]*+&?/', '\1', $connection);
                 $connection = AbstractAdapter::createConnection($connection, ['lazy' => true]);
 
                 return new $handlerClass($connection, array_intersect_key($options, ['prefix' => 1, 'ttl' => 1]));
@@ -94,6 +95,6 @@
                 return new PdoSessionHandler($connection, $options);
         }
 
-        throw new \InvalidArgumentException(sprintf('Unsupported Connection: "%s".', $connection));
+        throw new \InvalidArgumentException(\sprintf('Unsupported Connection: "%s".', $connection));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/StrictSessionHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/StrictSessionHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/StrictSessionHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/StrictSessionHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
     public function __construct(\SessionHandlerInterface $handler)
     {
         if ($handler instanceof \SessionUpdateTimestampHandlerInterface) {
-            throw new \LogicException(sprintf('"%s" is already an instance of "SessionUpdateTimestampHandlerInterface", you cannot wrap it with "%s".', get_debug_type($handler), self::class));
+            throw new \LogicException(\sprintf('"%s" is already an instance of "SessionUpdateTimestampHandlerInterface", you cannot wrap it with "%s".', get_debug_type($handler), self::class));
         }
 
         $this->handler = $handler;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,14 +41,18 @@
 
     private int $updateThreshold;
 
+    private ?int $cookieLifetime;
+
     /**
-     * @param string $storageKey      The key used to store bag in the session
-     * @param int    $updateThreshold The time to wait between two UPDATED updates
+     * @param string   $storageKey      The key used to store bag in the session
+     * @param int      $updateThreshold The time to wait between two UPDATED updates
+     * @param int|null $cookieLifetime  The configured cookie lifetime; null to read from php.ini
      */
-    public function __construct(string $storageKey = '_sf2_meta', int $updateThreshold = 0)
+    public function __construct(string $storageKey = '_sf2_meta', int $updateThreshold = 0, ?int $cookieLifetime = null)
     {
         $this->storageKey = $storageKey;
         $this->updateThreshold = $updateThreshold;
+        $this->cookieLifetime = $cookieLifetime;
     }
 
     /**
@@ -143,6 +147,6 @@
     {
         $timeStamp = time();
         $this->meta[self::CREATED] = $this->meta[self::UPDATED] = $this->lastUsed = $timeStamp;
-        $this->meta[self::LIFETIME] = $lifetime ?? (int) \ini_get('session.cookie_lifetime');
+        $this->meta[self::LIFETIME] = $lifetime ?? $this->cookieLifetime ?? (int) \ini_get('session.cookie_lifetime');
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php	2026-05-20 10:56:49.000000000 +0200
@@ -174,7 +174,7 @@
     public function getBag(string $name): SessionBagInterface
     {
         if (!isset($this->bags[$name])) {
-            throw new \InvalidArgumentException(sprintf('The SessionBagInterface "%s" is not registered.', $name));
+            throw new \InvalidArgumentException(\sprintf('The SessionBagInterface "%s" is not registered.', $name));
         }
 
         if (!$this->started) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,8 +34,8 @@
     {
         $savePath ??= sys_get_temp_dir();
 
-        if (!is_dir($savePath) && !@mkdir($savePath, 0777, true) && !is_dir($savePath)) {
-            throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s".', $savePath));
+        if (!is_dir($savePath) && !@mkdir($savePath, 0o777, true) && !is_dir($savePath)) {
+            throw new \RuntimeException(\sprintf('Session Storage was not able to create directory "%s".', $savePath));
         }
 
         $this->savePath = $savePath;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php	2026-05-20 10:56:49.000000000 +0200
@@ -129,7 +129,7 @@
         }
 
         if (filter_var(\ini_get('session.use_cookies'), \FILTER_VALIDATE_BOOL) && headers_sent($file, $line)) {
-            throw new \RuntimeException(sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line));
+            throw new \RuntimeException(\sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line));
         }
 
         $sessionId = $_COOKIE[session_name()] ?? null;
@@ -139,7 +139,7 @@
          * ---------- Part 1
          *
          * The part `[a-zA-Z0-9,-]` is related to the PHP ini directive `session.sid_bits_per_character` defined as 6.
-         * See https://www.php.net/manual/en/session.configuration.php#ini.session.sid-bits-per-character.
+         * See https://php.net/session.configuration#ini.session.sid-bits-per-character
          * Allowed values are integers such as:
          * - 4 for range `a-f0-9`
          * - 5 for range `a-v0-9`
@@ -148,7 +148,7 @@
          * ---------- Part 2
          *
          * The part `{22,250}` is related to the PHP ini directive `session.sid_length`.
-         * See https://www.php.net/manual/en/session.configuration.php#ini.session.sid-length.
+         * See https://php.net/session.configuration#ini.session.sid-length
          * Allowed values are integers between 22 and 256, but we use 250 for the max.
          *
          * Where does the 250 come from?
@@ -249,7 +249,7 @@
         $previousHandler = set_error_handler(function ($type, $msg, $file, $line) use (&$previousHandler) {
             if (\E_WARNING === $type && str_starts_with($msg, 'session_write_close():')) {
                 $handler = $this->saveHandler instanceof SessionHandlerProxy ? $this->saveHandler->getHandler() : $this->saveHandler;
-                $msg = sprintf('session_write_close(): Failed to write session data with "%s" handler', $handler::class);
+                $msg = \sprintf('session_write_close(): Failed to write session data with "%s" handler', $handler::class);
             }
 
             return $previousHandler ? $previousHandler($type, $msg, $file, $line) : false;
@@ -302,7 +302,7 @@
     public function getBag(string $name): SessionBagInterface
     {
         if (!isset($this->bags[$name])) {
-            throw new \InvalidArgumentException(sprintf('The SessionBagInterface "%s" is not registered.', $name));
+            throw new \InvalidArgumentException(\sprintf('The SessionBagInterface "%s" is not registered.', $name));
         }
 
         if (!$this->started && $this->saveHandler->isActive()) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/StreamedJsonResponse.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/StreamedJsonResponse.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/StreamedJsonResponse.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/StreamedJsonResponse.php	2026-05-20 10:56:49.000000000 +0200
@@ -94,7 +94,7 @@
     {
         $generators = [];
 
-        array_walk_recursive($data, function (&$item, $key) use (&$generators) {
+        array_walk_recursive($data, static function (&$item, $key) use (&$generators) {
             if (self::PLACEHOLDER === $key) {
                 // if the placeholder is already in the structure it should be replaced with a new one that explode
                 // works like expected for the structure
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/RequestAttributeValueSame.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/RequestAttributeValueSame.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/RequestAttributeValueSame.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/RequestAttributeValueSame.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
 
     public function toString(): string
     {
-        return sprintf('has attribute "%s" with value "%s"', $this->name, $this->value);
+        return \sprintf('has attribute "%s" with value "%s"', $this->name, $this->value);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseCookieValueSame.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseCookieValueSame.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseCookieValueSame.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseCookieValueSame.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,14 +32,14 @@
 
     public function toString(): string
     {
-        $str = sprintf('has cookie "%s"', $this->name);
+        $str = \sprintf('has cookie "%s"', $this->name);
         if ('/' !== $this->path) {
-            $str .= sprintf(' with path "%s"', $this->path);
+            $str .= \sprintf(' with path "%s"', $this->path);
         }
         if ($this->domain) {
-            $str .= sprintf(' for domain "%s"', $this->domain);
+            $str .= \sprintf(' for domain "%s"', $this->domain);
         }
-        $str .= sprintf(' with value "%s"', $this->value);
+        $str .= \sprintf(' with value "%s"', $this->value);
 
         return $str;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHasCookie.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHasCookie.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHasCookie.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHasCookie.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,12 +30,12 @@
 
     public function toString(): string
     {
-        $str = sprintf('has cookie "%s"', $this->name);
+        $str = \sprintf('has cookie "%s"', $this->name);
         if ('/' !== $this->path) {
-            $str .= sprintf(' with path "%s"', $this->path);
+            $str .= \sprintf(' with path "%s"', $this->path);
         }
         if ($this->domain) {
-            $str .= sprintf(' for domain "%s"', $this->domain);
+            $str .= \sprintf(' for domain "%s"', $this->domain);
         }
 
         return $str;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHasHeader.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHasHeader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHasHeader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHasHeader.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
 
     public function toString(): string
     {
-        return sprintf('has header "%s"', $this->headerName);
+        return \sprintf('has header "%s"', $this->headerName);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHeaderLocationSame.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHeaderLocationSame.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHeaderLocationSame.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHeaderLocationSame.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,7 @@
 
     public function toString(): string
     {
-        return sprintf('has header "Location" matching "%s"', $this->expectedValue);
+        return \sprintf('has header "Location" matching "%s"', $this->expectedValue);
     }
 
     protected function matches($other): bool
@@ -53,7 +53,7 @@
         }
 
         if (str_starts_with($url, '//')) {
-            return sprintf('%s:%s', $this->request->getScheme(), $url);
+            return \sprintf('%s:%s', $this->request->getScheme(), $url);
         }
 
         if (str_starts_with($url, '/')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHeaderSame.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHeaderSame.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHeaderSame.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Test/Constraint/ResponseHeaderSame.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
 
     public function toString(): string
     {
-        return sprintf('has header "%s" with value "%s"', $this->headerName, $this->expectedValue);
+        return \sprintf('has header "%s" with value "%s"', $this->headerName, $this->expectedValue);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/AcceptHeaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/AcceptHeaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/AcceptHeaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/AcceptHeaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -100,6 +100,8 @@
             'quality has priority' => ['*;q=0.3,ISO-8859-1,utf-8;q=0.7', ['ISO-8859-1', 'utf-8', '*']],
             'order matters when q is equal' => ['*;q=0.3,ISO-8859-1;q=0.7,utf-8;q=0.7', ['ISO-8859-1', 'utf-8', '*']],
             'order matters when q is equal2' => ['*;q=0.3,utf-8;q=0.7,ISO-8859-1;q=0.7', ['utf-8', 'ISO-8859-1', '*']],
+            'additional attributes like "format" should be handled according RFC 9110' => ['text/*;q=0.3, text/plain;q=0.7, text/plain;format=flowed, text/plain;format=fixed;q=0.4, */*;q=0.5', ['text/plain;format=flowed', 'text/plain', '*/*', 'text/plain;format=fixed', 'text/*']],
+            'additional attributes like "format" should be handled according obsoleted RFC 7231 as well' => ['text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5', ['text/html;level=1', 'text/html', '*/*', 'text/html;level=2', 'text/*']],
         ];
     }
 
@@ -109,7 +111,7 @@
     public function testDefaultValue($acceptHeader, $value, $expectedQuality)
     {
         $header = AcceptHeader::fromString($acceptHeader);
-        $this->assertSame($expectedQuality, $header->get($value)->getQuality());
+        $this->assertSame($expectedQuality, $header->get($value)?->getQuality());
     }
 
     public static function provideDefaultValueData()
@@ -128,5 +130,50 @@
         yield ['*;q=0.3, ISO-8859-1;q=0.7, utf-8;q=0.7', '*', 0.3];
         yield ['*;q=0.3, ISO-8859-1;q=0.7, utf-8;q=0.7', 'utf-8', 0.7];
         yield ['*;q=0.3, ISO-8859-1;q=0.7, utf-8;q=0.7', 'SHIFT_JIS', 0.3];
+        yield 'additional attributes like "format" should be handled according RFC 9110' => ['text/*;q=0.3, text/plain;q=0.7, text/plain;format=flowed, text/plain;format=fixed;q=0.4, */*;q=0.5', 'text/plain;format=flowed', 1.0];
+        yield 'additional attributes like "format" should be handled according obsoleted RFC 7231 as well' => ['text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5', 'text/html;level=1', 1.0];
+
+        // Edge cases for case-insensitivity
+        yield 'case-insensitive param names' => ['text/plain;format=flowed;q=0.8, text/plain;Format=fixed', 'text/plain;format=fixed', 1.0];
+        yield 'case-insensitive charset' => ['text/plain;Charset=utf-8', 'text/plain;charset=utf-8', 1.0];
+
+        // Quoted values and specials
+        yield 'quoted value with space' => ['text/plain;param="value with space"', 'text/plain;param="value with space"', 1.0];
+        yield 'quoted value with backslash' => ['text/plain;param="value\\with\\backslash"', 'text/plain;param="value\\with\\backslash"', 1.0];
+        yield 'mismatched quoted' => ['text/plain;param="value with space"', 'text/plain;param=value with space', 1.0];
+
+        // Flag params or empty
+        yield 'flag param' => ['text/plain;flowed;q=0.9', 'text/plain;flowed', 0.9];
+        yield 'empty param value' => ['text/plain;param=', 'text/plain;param=""', 1.0];
+        yield 'missing required flag' => ['text/plain;flowed', 'text/plain', null];
+
+        // Extra params in query
+        yield 'extra param in query' => ['text/plain;format=flowed', 'text/plain;format=flowed;charset=utf-8', 1.0];
+        yield 'missing required param in query' => ['text/plain;format=flowed', 'text/plain;charset=utf-8', null];
+        yield 'wildcard with param' => ['text/*;format=flowed', 'text/plain;format=flowed', 1.0];
+        yield 'wildcard missing param' => ['text/*;format=flowed', 'text/plain', null];
+
+        // Wildcards and specificity
+        yield 'specificity priority' => ['*/*;q=0.1, text/*;format=flowed;q=0.5, text/plain;q=0.8', 'text/plain;format=flowed', 0.8];
+        yield 'wildcard with param match' => ['*/*;param=test', 'text/plain;param=test', 1.0];
+        yield 'wildcard with param no match' => ['*/*;param=test', 'text/plain', null];
+
+        // Non-media types
+        yield 'charset wildcard' => ['utf-8;q=0.9, *;q=0.5', 'iso-8859-1', 0.5];
+        yield 'language star' => ['*;q=0.5', 'en-US', 0.5];
+        yield 'non-media */*' => ['*/*;q=0.5', 'utf-8', 0.5];
+
+        // Ties and duplicates
+        yield 'duplicate params tie on index' => ['text/plain;format=flowed;q=0.8, text/plain;format=flowed;q=0.8', 'text/plain;format=flowed', 0.8];
+        yield 'param count tie' => ['text/plain;q=0.5, text/plain;format=flowed;q=0.5', 'text/plain;format=flowed;extra=foo', 0.5];
+
+        // Invalid/malformed
+        yield 'non-media invalid' => ['text', 'text', 1.0];
+        yield 'invalid subtype' => ['text/', 'text/plain', null];
+        yield 'empty header' => ['', 'text/plain', null];
+
+        // Mixed case types
+        yield 'mixed case type' => ['Text/Plain;Format=flowed', 'text/plain;format=flowed', 1.0];
+        yield 'mixed case charset' => ['UTF-8;q=0.9', 'utf-8', 0.9];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -145,6 +145,9 @@
     public static function provideRanges()
     {
         return [
+            ['bytes=0-', 0, 35, 'bytes 0-34/35'],
+            ['bytes=0-34', 0, 35, 'bytes 0-34/35'],
+            ['bytes=-35', 0, 35, 'bytes 0-34/35'],
             ['bytes=1-4', 1, 4, 'bytes 1-4/35'],
             ['bytes=-5', 30, 5, 'bytes 30-34/35'],
             ['bytes=30-', 30, 5, 'bytes 30-34/35'],
@@ -199,9 +202,6 @@
     public static function provideFullFileRanges()
     {
         return [
-            ['bytes=0-'],
-            ['bytes=0-34'],
-            ['bytes=-35'],
             // Syntactical invalid range-request should also return the full resource
             ['bytes=20-10'],
             ['bytes=50-40'],
@@ -314,7 +314,15 @@
         $property->setValue($response, $file);
 
         $response->prepare($request);
-        $this->assertEquals($virtual, $response->headers->get('X-Accel-Redirect'));
+        $header = $response->headers->get('X-Accel-Redirect');
+
+        if ($virtual) {
+            // Making sure the path doesn't contain characters unsupported by nginx
+            $this->assertMatchesRegularExpression('/^([^?%]|%[0-9A-F]{2})*$/', $header);
+            $header = rawurldecode($header);
+        }
+
+        $this->assertEquals($virtual, $header);
     }
 
     public function testDeleteFileAfterSend()
@@ -361,6 +369,7 @@
             ['/home/Foo/bar.txt', '/var/www/=/files/,/home/Foo/=/baz/', '/baz/bar.txt'],
             ['/home/Foo/bar.txt', '"/var/www/"="/files/", "/home/Foo/"="/baz/"', '/baz/bar.txt'],
             ['/tmp/bar.txt', '"/var/www/"="/files/", "/home/Foo/"="/baz/"', null],
+            ['/var/www/var/www/files/foo%.txt', '/var/www/=/files/', '/files/var/www/files/foo%.txt'],
         ];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -119,6 +119,32 @@
         $this->assertEquals(\UPLOAD_ERR_OK, $file->getError());
     }
 
+    public function testInvalidFile()
+    {
+        $file = new UploadedFile(
+            __DIR__.'/Fixtures/test.gif',
+            'original.gif',
+            'image/gif',
+        );
+
+        $this->expectException(FileException::class);
+        $this->expectExceptionMessage('The file "original.gif" was not uploaded due to an unknown error.');
+
+        $file->move(__DIR__.'/Fixtures/directory');
+    }
+
+    public function testNoErrorMessageIfErrorIsUploadErrOk()
+    {
+        $file = new UploadedFile(
+            __DIR__.'/Fixtures/test.gif',
+            'original.gif',
+            'image/gif',
+            null
+        );
+
+        $this->assertSame('', $file->getErrorMessage());
+    }
+
     public function testGetClientOriginalName()
     {
         $file = new UploadedFile(
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -179,7 +179,7 @@
 
     protected function setUp(): void
     {
-        mkdir(sys_get_temp_dir().'/form_test', 0777, true);
+        mkdir(sys_get_temp_dir().'/form_test', 0o777, true);
     }
 
     protected function tearDown(): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/invalid_cookie_name.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/invalid_cookie_name.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/invalid_cookie_name.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/invalid_cookie_name.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,6 +6,6 @@
 
 try {
     $r->headers->setCookie(new Cookie('Hello + world', 'hodor', 0, null, null, null, false, true));
-} catch (\InvalidArgumentException $e) {
+} catch (InvalidArgumentException $e) {
     echo $e->getMessage();
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/InputBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/InputBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/InputBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/InputBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,7 @@
 
     public function testGet()
     {
-        $bag = new InputBag(['foo' => 'bar', 'null' => null, 'int' => 1, 'float' => 1.0, 'bool' => false, 'stringable' => new class() implements \Stringable {
+        $bag = new InputBag(['foo' => 'bar', 'null' => null, 'int' => 1, 'float' => 1.0, 'bool' => false, 'stringable' => new class implements \Stringable {
             public function __toString(): string
             {
                 return 'strval';
@@ -65,7 +65,7 @@
 
     public function testGetString()
     {
-        $bag = new InputBag(['integer' => 123, 'bool_true' => true, 'bool_false' => false, 'string' => 'abc', 'stringable' => new class() implements \Stringable {
+        $bag = new InputBag(['integer' => 123, 'bool_true' => true, 'bool_false' => false, 'string' => 'abc', 'stringable' => new class implements \Stringable {
             public function __toString(): string
             {
                 return 'strval';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -171,7 +171,7 @@
 
     public function testConstructorWithObjectWithToStringMethod()
     {
-        $class = new class() {
+        $class = new class {
             public function __toString(): string
             {
                 return '{}';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -192,7 +192,7 @@
      */
     public function testGetIntExceptionWithArray()
     {
-        $this->expectDeprecation(sprintf('Since symfony/http-foundation 6.3: Ignoring invalid values when using "%s::getInt(\'digits\')" is deprecated and will throw an "%s" in 7.0; use method "filter()" with flag "FILTER_NULL_ON_FAILURE" to keep ignoring them.', ParameterBag::class, UnexpectedValueException::class));
+        $this->expectDeprecation(\sprintf('Since symfony/http-foundation 6.3: Ignoring invalid values when using "%s::getInt(\'digits\')" is deprecated and will throw an "%s" in 7.0; use method "filter()" with flag "FILTER_NULL_ON_FAILURE" to keep ignoring them.', ParameterBag::class, UnexpectedValueException::class));
 
         $bag = new ParameterBag(['digits' => ['123']]);
         $result = $bag->getInt('digits', 0);
@@ -204,7 +204,7 @@
      */
     public function testGetIntExceptionWithInvalid()
     {
-        $this->expectDeprecation(sprintf('Since symfony/http-foundation 6.3: Ignoring invalid values when using "%s::getInt(\'word\')" is deprecated and will throw an "%s" in 7.0; use method "filter()" with flag "FILTER_NULL_ON_FAILURE" to keep ignoring them.', ParameterBag::class, UnexpectedValueException::class));
+        $this->expectDeprecation(\sprintf('Since symfony/http-foundation 6.3: Ignoring invalid values when using "%s::getInt(\'word\')" is deprecated and will throw an "%s" in 7.0; use method "filter()" with flag "FILTER_NULL_ON_FAILURE" to keep ignoring them.', ParameterBag::class, UnexpectedValueException::class));
 
         $bag = new ParameterBag(['word' => 'foo_BAR_012']);
         $result = $bag->getInt('word', 0);
@@ -213,7 +213,7 @@
 
     public function testGetString()
     {
-        $bag = new ParameterBag(['integer' => 123, 'bool_true' => true, 'bool_false' => false, 'string' => 'abc', 'stringable' => new class() implements \Stringable {
+        $bag = new ParameterBag(['integer' => 123, 'bool_true' => true, 'bool_false' => false, 'string' => 'abc', 'stringable' => new class implements \Stringable {
             public function __toString(): string
             {
                 return 'strval';
@@ -258,7 +258,7 @@
             'dec' => '256',
             'hex' => '0x100',
             'array' => ['bang'],
-            ]);
+        ]);
 
         $this->assertEmpty($bag->filter('nokey'), '->filter() should return empty by default if no key is found');
 
@@ -339,7 +339,7 @@
      */
     public function testGetBooleanExceptionWithInvalid()
     {
-        $this->expectDeprecation(sprintf('Since symfony/http-foundation 6.3: Ignoring invalid values when using "%s::getBoolean(\'invalid\')" is deprecated and will throw an "%s" in 7.0; use method "filter()" with flag "FILTER_NULL_ON_FAILURE" to keep ignoring them.', ParameterBag::class, UnexpectedValueException::class));
+        $this->expectDeprecation(\sprintf('Since symfony/http-foundation 6.3: Ignoring invalid values when using "%s::getBoolean(\'invalid\')" is deprecated and will throw an "%s" in 7.0; use method "filter()" with flag "FILTER_NULL_ON_FAILURE" to keep ignoring them.', ParameterBag::class, UnexpectedValueException::class));
 
         $bag = new ParameterBag(['invalid' => 'foo']);
         $result = $bag->getBoolean('invalid', 0);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestMatcher/AttributesRequestMatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestMatcher/AttributesRequestMatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestMatcher/AttributesRequestMatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestMatcher/AttributesRequestMatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
         $matcher = new AttributesRequestMatcher([$key => $regexp]);
         $request = Request::create('/admin/foo');
         $request->attributes->set('foo', 'foo_bar');
-        $request->attributes->set('_controller', fn () => new Response('foo'));
+        $request->attributes->set('_controller', static fn () => new Response('foo'));
         $this->assertSame($expected, $matcher->matches($request));
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestMatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestMatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestMatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestMatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -173,7 +173,7 @@
         $matcher = new RequestMatcher();
 
         $request = Request::create('/admin/foo');
-        $request->attributes->set('_controller', fn () => new Response('foo'));
+        $request->attributes->set('_controller', static fn () => new Response('foo'));
 
         $matcher->matchAttribute('_controller', 'babar');
         $this->assertFalse($matcher->matches($request));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,6 +31,8 @@
     {
         Request::setTrustedProxies([], -1);
         Request::setTrustedHosts([]);
+        Request::setFactory(null);
+        \Closure::bind(static fn () => self::$formats = null, null, Request::class)();
     }
 
     public function testInitialize()
@@ -604,7 +606,6 @@
 
         $server['REDIRECT_QUERY_STRING'] = 'query=string';
         $server['REDIRECT_URL'] = '/path/info';
-        $server['SCRIPT_NAME'] = '/index.php';
         $server['QUERY_STRING'] = 'query=string';
         $server['REQUEST_URI'] = '/path/info?toto=test&1=1';
         $server['SCRIPT_NAME'] = '/index.php';
@@ -731,7 +732,6 @@
 
         $server['REDIRECT_QUERY_STRING'] = 'query=string';
         $server['REDIRECT_URL'] = '/path/info';
-        $server['SCRIPT_NAME'] = '/index.php';
         $server['QUERY_STRING'] = 'query=string';
         $server['REQUEST_URI'] = '/path/info?toto=test&1=1';
         $server['SCRIPT_NAME'] = '/index.php';
@@ -1711,7 +1711,7 @@
         $this->assertFalse($request->hasSession());
         $this->assertFalse($request->hasSession(true));
 
-        $request->setSessionFactory(function () {});
+        $request->setSessionFactory(static function () {});
         $this->assertTrue($request->hasSession());
         $this->assertFalse($request->hasSession(true));
 
@@ -1906,6 +1906,16 @@
                 '',
                 '/foo/api/bar',
             ],
+            [
+                '/api/index.phpfoo',
+                [
+                    'SCRIPT_FILENAME' => '/var/www/api/index.php',
+                    'SCRIPT_NAME' => '/api/index.php',
+                    'PHP_SELF' => '/api/index.php',
+                ],
+                '/api/index.php',
+                '/foo',
+            ],
         ];
     }
 
@@ -2232,18 +2242,16 @@
 
     public function testFactory()
     {
-        Request::setFactory(fn (array $query = [], array $request = [], array $attributes = [], array $cookies = [], array $files = [], array $server = [], $content = null) => new NewRequest());
+        Request::setFactory(static fn (array $query = [], array $request = [], array $attributes = [], array $cookies = [], array $files = [], array $server = [], $content = null) => new NewRequest());
 
         $this->assertEquals('foo', Request::create('/')->getFoo());
 
         Request::setFactory(null);
     }
 
-    /**
-     * @dataProvider getLongHostNames
-     */
-    public function testVeryLongHosts($host)
+    public function testVeryLongHosts()
     {
+        $host = 'a'.str_repeat('.a', 40000);
         $start = microtime(true);
 
         $request = Request::create('/');
@@ -2286,14 +2294,6 @@
         ];
     }
 
-    public static function getLongHostNames()
-    {
-        return [
-            ['a'.str_repeat('.a', 40000)],
-            [str_repeat(':', 101)],
-        ];
-    }
-
     /**
      * @dataProvider methodIdempotentProvider
      */
@@ -2404,6 +2404,8 @@
             'trusted with via and protocol name' => ['HTTP/2.0', true, 'HTTP/1.0 fred, HTTP/1.1 nowhere.com (Apache/1.1)', 'HTTP/1.0'],
             'trusted with broken via' => ['HTTP/2.0', true, 'HTTP/1^0 foo', 'HTTP/2.0'],
             'trusted with partially-broken via' => ['HTTP/2.0', true, '1.0 fred, foo', 'HTTP/1.0'],
+            'trusted with simple via' => ['HTTP/2.0', true, 'HTTP/1.0', 'HTTP/1.0'],
+            'trusted with only version via' => ['HTTP/2.0', true, '1.0', 'HTTP/1.0'],
         ];
     }
 
@@ -2664,9 +2666,335 @@
     public function testReservedFlags()
     {
         foreach ((new \ReflectionClass(Request::class))->getConstants() as $constant => $value) {
-            $this->assertNotSame(0b10000000, $value, sprintf('The constant "%s" should not use the reserved value "0b10000000".', $constant));
+            $this->assertNotSame(0b10000000, $value, \sprintf('The constant "%s" should not use the reserved value "0b10000000".', $constant));
         }
     }
+
+    /**
+     * @dataProvider provideMalformedUrls
+     */
+    public function testMalformedUrls(string $url, string $expectedException)
+    {
+        $this->expectException(BadRequestException::class);
+        $this->expectExceptionMessage($expectedException);
+
+        Request::create($url);
+    }
+
+    public static function provideMalformedUrls(): array
+    {
+        return [
+            ['http://normal.com[@vulndetector.com/', 'Invalid URI: Userinfo is malformed.'],
+            ['http://[normal.com@vulndetector.com/', 'Invalid URI: Userinfo is malformed.'],
+            ['http://normal.com@[vulndetector.com/', 'Invalid URI: Host is malformed.'],
+            ['http://[[normal.com@][vulndetector.com/', 'Invalid URI: Userinfo is malformed.'],
+            ['http://[vulndetector.com]', 'Invalid URI: Host is malformed.'],
+            ['http://[0:0::vulndetector.com]:80', 'Invalid URI: Host is malformed.'],
+            ['http://[2001:db8::vulndetector.com]', 'Invalid URI: Host is malformed.'],
+            ['http://[malicious.com]', 'Invalid URI: Host is malformed.'],
+            ['http://[evil.org]', 'Invalid URI: Host is malformed.'],
+            ['http://[internal.server]', 'Invalid URI: Host is malformed.'],
+            ['http://[192.168.1.1]', 'Invalid URI: Host is malformed.'],
+            ['http://192.abc.1.1', 'Invalid URI: Host is malformed.'],
+            ['http://[localhost]', 'Invalid URI: Host is malformed.'],
+            ["\x80https://example.com", 'Invalid URI: Scheme is malformed.'],
+            ['>https://example.com', 'Invalid URI: Scheme is malformed.'],
+            ["http\x0b://example.com", 'Invalid URI: Scheme is malformed.'],
+            ["https\x80://example.com", 'Invalid URI: Scheme is malformed.'],
+            ['http>://example.com', 'Invalid URI: Scheme is malformed.'],
+            ['0http://example.com', 'Invalid URI: Scheme is malformed.'],
+            [':path', 'Invalid URI: Path is malformed.'],
+        ];
+    }
+
+    /**
+     * @dataProvider provideLegitimateUrls
+     */
+    public function testLegitimateUrls(string $url)
+    {
+        $request = Request::create($url);
+
+        $this->assertInstanceOf(Request::class, $request);
+    }
+
+    public static function provideLegitimateUrls(): array
+    {
+        return [
+            ['http://example.com'],
+            ['https://example.com'],
+            ['http://example.com:8080'],
+            ['https://example.com:8443'],
+            ['http://user:pass@example.com'],
+            ['http://user:pass@example.com:8080'],
+            ['http://user:pass@example.com/path'],
+            ['http://[2001:db8::1]'],
+            ['http://[2001:db8::1]:8080'],
+            ['http://[2001:db8::1]/path'],
+            ['http://[::1]'],
+            ['http://example.com/path'],
+        ];
+    }
+
+    /**
+     * @dataProvider provideAcceptableContentTypesRfc9110
+     */
+    public function testGetAcceptableContentTypesRfc9110(string $acceptHeader, array $expectedContentTypes)
+    {
+        $request = new Request();
+        $request->headers->set('Accept', $acceptHeader);
+        $this->assertSame($expectedContentTypes, $request->getAcceptableContentTypes());
+    }
+
+    public static function provideAcceptableContentTypesRfc9110(): iterable
+    {
+        // Basic sorting by quality
+        yield 'quality sorting' => [
+            'text/html;q=0.9, application/json;q=0.8, text/plain;q=1.0',
+            ['text/plain', 'text/html', 'application/json'],
+        ];
+
+        // Parameters with RFC9110 canonical key generation (parameters normalized to lowercase)
+        yield 'parameters with canonical keys' => [
+            'text/plain, text/plain;format=flowed',
+            ['text/plain', 'text/plain;format=flowed'],
+        ];
+
+        yield 'parameters with quality and order' => [
+            'text/*;q=0.3, text/plain;q=0.7, text/plain;format=flowed, text/plain;format=fixed;q=0.4, */*;q=0.5',
+            ['text/plain;format=flowed', 'text/plain', '*/*', 'text/plain;format=fixed', 'text/*'],
+        ];
+
+        yield 'multiple parameters with order' => [
+            'text/html;level=1, text/html;level=2;q=0.4, text/html;q=0.7, text/*;q=0.3',
+            ['text/html;level=1', 'text/html', 'text/html;level=2', 'text/*'],
+        ];
+
+        // Case insensitivity for parameters - parameter names normalized to lowercase in canonical keys
+        yield 'case-insensitive param names normalized' => [
+            'text/plain;format=flowed;q=0.8, text/plain;Format=fixed',
+            ['text/plain;format=fixed', 'text/plain;format=flowed'],
+        ];
+
+        yield 'case-insensitive charset normalized' => [
+            'text/plain;Charset=utf-8, text/plain;charset=iso-8859-1;q=0.8',
+            ['text/plain;charset=utf-8', 'text/plain;charset=iso-8859-1'],
+        ];
+
+        // Quoted values with spaces
+        yield 'quoted value with space' => [
+            'text/plain;param="value with space"',
+            ['text/plain;param="value with space"'],
+        ];
+
+        yield 'quoted value with special chars' => [
+            'text/plain;param="value;with=special,chars"',
+            ['text/plain;param="value;with=special,chars"'],
+        ];
+
+        // Wildcards with parameters
+        yield 'wildcard type with parameter' => [
+            'text/*;format=flowed, text/plain',
+            ['text/*;format=flowed', 'text/plain'],
+        ];
+
+        yield 'wildcard all with parameter' => [
+            '*/*;q=0.5, text/html;q=0.9',
+            ['text/html', '*/*'],
+        ];
+
+        // Stability - original order when quality is equal
+        yield 'order preserved for equal quality' => [
+            'application/json, application/xml, text/html',
+            ['application/json', 'application/xml', 'text/html'],
+        ];
+
+        yield 'order preserved for equal quality with params' => [
+            'text/plain;format=flowed;q=0.8, text/plain;format=fixed;q=0.8',
+            ['text/plain;format=flowed', 'text/plain;format=fixed'],
+        ];
+
+        // Complex scenarios
+        yield 'complex with wildcards and params' => [
+            'text/html, application/xhtml+xml, application/xml;q=0.9, text/*;q=0.8, */*;q=0.7',
+            ['text/html', 'application/xhtml+xml', 'application/xml', 'text/*', '*/*'],
+        ];
+
+        yield 'charset parameter order' => [
+            'text/plain, text/plain;charset=utf-8',
+            ['text/plain', 'text/plain;charset=utf-8'],
+        ];
+
+        yield 'multiple params on same type' => [
+            'text/plain;charset=utf-8;format=flowed, text/plain;charset=utf-8, text/plain',
+            ['text/plain;charset=utf-8;format=flowed', 'text/plain;charset=utf-8', 'text/plain'],
+        ];
+
+        // Edge cases
+        yield 'single wildcard' => [
+            '*/*',
+            ['*/*'],
+        ];
+
+        yield 'type wildcard only' => [
+            'text/*',
+            ['text/*'],
+        ];
+
+        yield 'mixed case media types' => [
+            'Text/HTML, Application/JSON',
+            ['Text/HTML', 'Application/JSON'],
+        ];
+    }
+
+    /**
+     * @dataProvider providePreferredFormatRfc9110
+     */
+    public function testGetPreferredFormatRfc9110(string $acceptHeader, ?string $expectedFormat, ?string $default = 'html')
+    {
+        $request = new Request();
+        $request->headers->set('Accept', $acceptHeader);
+        $this->assertSame($expectedFormat, $request->getPreferredFormat($default));
+    }
+
+    public static function providePreferredFormatRfc9110(): iterable
+    {
+        // Basic format detection with parameters
+        yield 'json with charset parameter' => [
+            'application/json;charset=utf-8',
+            'json',
+            'html',
+        ];
+
+        yield 'xml with version parameter' => [
+            'application/xml;version=1.0',
+            'xml',
+            'html',
+        ];
+
+        // Quality-based preference
+        yield 'json preferred over xml by quality' => [
+            'application/json;q=0.9, application/xml;q=0.8',
+            'json',
+            'html',
+        ];
+
+        yield 'xml preferred over json by quality' => [
+            'application/xml;q=0.9, application/json;q=0.8',
+            'xml',
+            'html',
+        ];
+
+        // Specificity affects format selection
+        yield 'more specific parameter wins with equal quality' => [
+            'application/json, application/json;charset=utf-8',
+            'json',
+            'html',
+        ];
+
+        yield 'text/html with level parameter' => [
+            'text/html;level=1, application/json',
+            'html',
+            null,
+        ];
+
+        // Wildcards
+        yield 'wildcard type matches first known format' => [
+            'text/*',
+            'html',
+            'html',
+        ];
+
+        yield 'wildcard all matches default' => [
+            '*/*',
+            'html',
+            'html',
+        ];
+
+        yield 'wildcard with quality lower than specific' => [
+            'application/json;q=0.9, */*;q=0.5',
+            'json',
+            'html',
+        ];
+
+        // Multiple content types with RFC9110 parameter handling
+        yield 'complex accept with parameters' => [
+            'text/html;q=0.9, application/xhtml+xml, application/xml;q=0.8, text/*;q=0.7',
+            'html',
+            'html',
+        ];
+
+        yield 'json with multiple parameters' => [
+            'application/json;charset=utf-8;profile=strict, text/html',
+            'json',
+            'html',
+        ];
+
+        // Case sensitivity - media type case is preserved, must use lowercase for proper format matching
+        yield 'lowercase content type for format matching' => [
+            'application/json',
+            'json',
+            'html',
+        ];
+
+        yield 'lowercase with parameters for format matching' => [
+            'application/json;charset=utf-8',
+            'json',
+            'html',
+        ];
+
+        // Quoted parameter values
+        yield 'quoted parameter value' => [
+            'application/json;profile="http://example.com/schema"',
+            'json',
+            'html',
+        ];
+
+        // Order preservation with equal quality and specificity
+        yield 'first match wins with equal priority' => [
+            'application/json;q=0.9, application/xml;q=0.9',
+            'json',
+            'html',
+        ];
+
+        // No match scenarios
+        yield 'unknown content type returns default' => [
+            'application/vnd.custom+unknown',
+            'html',
+            'html',
+        ];
+
+        yield 'unknown with null default' => [
+            'application/vnd.custom+unknown',
+            null,
+            null,
+        ];
+
+        // Empty or malformed
+        yield 'empty accept header' => [
+            '',
+            'html',
+            'html',
+        ];
+
+        // Real-world examples
+        yield 'browser-like accept header' => [
+            'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
+            'html',
+            'html',
+        ];
+
+        yield 'api client prefer json' => [
+            'application/json, text/plain, */*',
+            'json',
+            'html',
+        ];
+
+        yield 'rss/atom feeds' => [
+            'application/atom+xml;q=0.9, application/rss+xml;q=0.8',
+            'atom',
+            'html',
+        ];
+    }
 }
 
 class RequestContentProxy extends Request
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/ResponseFunctionalTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/ResponseFunctionalTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/ResponseFunctionalTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/ResponseFunctionalTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,9 +45,9 @@
      */
     public function testCookie($fixture)
     {
-        $result = file_get_contents(sprintf('http://localhost:8054/%s.php', $fixture));
-        $result = preg_replace_callback('/expires=[^;]++/', fn ($m) => str_replace('-', ' ', $m[0]), $result);
-        $this->assertStringMatchesFormatFile(__DIR__.sprintf('/Fixtures/response-functional/%s.expected', $fixture), $result);
+        $result = file_get_contents(\sprintf('http://localhost:8054/%s.php', $fixture));
+        $result = preg_replace_callback('/expires=[^;]++/', static fn ($m) => str_replace('-', ' ', $m[0]), $result);
+        $this->assertStringMatchesFormatFile(__DIR__.\sprintf('/Fixtures/response-functional/%s.expected', $fixture), $result);
     }
 
     public static function provideCookie()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -181,7 +181,7 @@
         $etagTwo = 'randomly_generated_etag_2';
 
         $request = new Request();
-        $request->headers->set('If-None-Match', sprintf('%s, %s, %s', $etagOne, $etagTwo, 'etagThree'));
+        $request->headers->set('If-None-Match', \sprintf('%s, %s, %s', $etagOne, $etagTwo, 'etagThree'));
 
         $response = new Response();
 
@@ -235,7 +235,7 @@
         $etag = 'randomly_generated_etag';
 
         $request = new Request();
-        $request->headers->set('If-None-Match', sprintf('%s, %s', $etag, 'etagThree'));
+        $request->headers->set('If-None-Match', \sprintf('%s, %s', $etag, 'etagThree'));
         $request->headers->set('If-Modified-Since', $modified);
 
         $response = new Response();
@@ -259,7 +259,7 @@
         $etag = 'randomly_generated_etag';
 
         $request = new Request();
-        $request->headers->set('If-None-Match', sprintf('%s, %s', $etag, 'etagThree'));
+        $request->headers->set('If-None-Match', \sprintf('%s, %s', $etag, 'etagThree'));
         $request->headers->set('If-Modified-Since', $modified);
 
         $response = new Response();
@@ -1040,7 +1040,7 @@
     public function testNoDeprecationsAreTriggered()
     {
         new DefaultResponse();
-        $this->createMock(Response::class);
+        new Response();
 
         // we just need to ensure that subclasses of Response can be created without any deprecations
         // being triggered if the subclass does not override any final methods
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,9 +46,9 @@
         $bag->initialize($array);
         $this->assertEquals(['A previous flash message'], $bag->peek('notice'));
         $array = ['new' => [
-                'notice' => ['Something else'],
-                'error' => ['a'],
-            ]];
+            'notice' => ['Something else'],
+            'error' => ['a'],
+        ]];
         $bag->initialize($array);
         $this->assertEquals(['Something else'], $bag->peek('notice'));
         $this->assertEquals(['a'], $bag->peek('error'));
@@ -106,13 +106,13 @@
         $this->assertEquals([
             'notice' => 'Foo',
             'error' => 'Bar',
-            ], $this->bag->peekAll()
+        ], $this->bag->peekAll()
         );
 
         $this->assertEquals([
             'notice' => 'Foo',
             'error' => 'Bar',
-            ], $this->bag->peekAll()
+        ], $this->bag->peekAll()
         );
     }
 
@@ -137,7 +137,7 @@
         $this->bag->set('error', 'Bar');
         $this->assertEquals([
             'notice' => ['A previous flash message'],
-            ], $this->bag->all()
+        ], $this->bag->all()
         );
 
         $this->assertEquals([], $this->bag->all());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -141,14 +141,14 @@
         $this->assertEquals([
             'notice' => ['Foo'],
             'error' => ['Bar'],
-            ], $this->bag->peekAll()
+        ], $this->bag->peekAll()
         );
         $this->assertTrue($this->bag->has('notice'));
         $this->assertTrue($this->bag->has('error'));
         $this->assertEquals([
             'notice' => ['Foo'],
             'error' => ['Bar'],
-            ], $this->bag->peekAll()
+        ], $this->bag->peekAll()
         );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractRedisSessionHandlerTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractRedisSessionHandlerTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractRedisSessionHandlerTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractRedisSessionHandlerTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -155,7 +155,7 @@
 
         $options = [
             'prefix' => self::PREFIX,
-            'ttl' => fn () => $ttl,
+            'ttl' => static fn () => $ttl,
         ];
 
         $handler = new RedisSessionHandler($this->redisClient, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractSessionHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractSessionHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractSessionHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/AbstractSessionHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,10 +45,14 @@
     {
         $context = ['http' => ['header' => "Cookie: sid=123abc\r\n"]];
         $context = stream_context_create($context);
-        $result = file_get_contents(sprintf('http://localhost:8053/%s.php', $fixture), false, $context);
-        $result = preg_replace_callback('/expires=[^;]++/', fn ($m) => str_replace('-', ' ', $m[0]), $result);
+        $result = file_get_contents(\sprintf('http://localhost:8053/%s.php', $fixture), false, $context);
+        $result = preg_replace_callback('/expires=[^;]++/', static fn ($m) => str_replace('-', ' ', $m[0]), $result);
 
-        $this->assertStringEqualsFile(__DIR__.sprintf('/Fixtures/%s.expected', $fixture), $result);
+        if (\PHP_VERSION_ID < 80600) {
+            $result = str_replace("write\ndestroy\nclose\n", "updateTimestamp\ndestroy\nclose\n", $result);
+        }
+
+        $this->assertStringEqualsFile(__DIR__.\sprintf('/Fixtures/%s.expected', $fixture), $result);
     }
 
     public static function provideSession()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/Fixtures/common.inc symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/Fixtures/common.inc
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/Fixtures/common.inc	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/Fixtures/common.inc	2026-05-20 10:56:49.000000000 +0200
@@ -87,7 +87,7 @@
     {
         echo __FUNCTION__, "\n";
 
-        return true;
+        return parent::updateTimestamp($sessionId, $data);
     }
 
     public function write(string $sessionId, string $data): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/Fixtures/storage.expected symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/Fixtures/storage.expected
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/Fixtures/storage.expected	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/Fixtures/storage.expected	2026-05-20 10:56:49.000000000 +0200
@@ -8,7 +8,7 @@
     [0] => bar
 )
 $_SESSION is not empty
-write
+updateTimestamp
 destroy
 close
 $_SESSION is empty
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/IdentityMarshallerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/IdentityMarshallerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/IdentityMarshallerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/IdentityMarshallerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,7 @@
 /**
  * @author Ahmed TAILOULOUTE <ahmed.tailouloute@gmail.com>
  */
-class IdentityMarshallerTest extends Testcase
+class IdentityMarshallerTest extends TestCase
 {
     public function testMarshall()
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MarshallingSessionHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MarshallingSessionHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MarshallingSessionHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MarshallingSessionHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,17 +23,15 @@
 class MarshallingSessionHandlerTest extends TestCase
 {
     protected MockObject&\SessionHandlerInterface $handler;
-    protected MockObject&MarshallerInterface $marshaller;
 
     protected function setUp(): void
     {
-        $this->marshaller = $this->createMock(MarshallerInterface::class);
         $this->handler = $this->createMock(AbstractSessionHandler::class);
     }
 
     public function testOpen()
     {
-        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->marshaller);
+        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->createStub(MarshallerInterface::class));
 
         $this->handler->expects($this->once())->method('open')
             ->with('path', 'name')->willReturn(true);
@@ -43,7 +41,7 @@
 
     public function testClose()
     {
-        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->marshaller);
+        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->createStub(MarshallerInterface::class));
 
         $this->handler->expects($this->once())->method('close')->willReturn(true);
 
@@ -52,7 +50,7 @@
 
     public function testDestroy()
     {
-        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->marshaller);
+        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->createStub(MarshallerInterface::class));
 
         $this->handler->expects($this->once())->method('destroy')
             ->with('session_id')->willReturn(true);
@@ -62,7 +60,7 @@
 
     public function testGc()
     {
-        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->marshaller);
+        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->createStub(MarshallerInterface::class));
 
         $this->handler->expects($this->once())->method('gc')
             ->with(4711)->willReturn(1);
@@ -72,11 +70,12 @@
 
     public function testRead()
     {
-        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->marshaller);
+        $marshaller = $this->createMock(MarshallerInterface::class);
+        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $marshaller);
 
         $this->handler->expects($this->once())->method('read')->with('session_id')
             ->willReturn('data');
-        $this->marshaller->expects($this->once())->method('unmarshall')->with('data')
+        $marshaller->expects($this->once())->method('unmarshall')->with('data')
             ->willReturn('unmarshalled_data')
         ;
 
@@ -86,9 +85,10 @@
 
     public function testWrite()
     {
-        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->marshaller);
+        $marshaller = $this->createMock(MarshallerInterface::class);
+        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $marshaller);
 
-        $this->marshaller->expects($this->once())->method('marshall')
+        $marshaller->expects($this->once())->method('marshall')
             ->with(['data' => 'data'], [])
             ->willReturn(['data' => 'marshalled_data']);
 
@@ -101,7 +101,7 @@
 
     public function testValidateId()
     {
-        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->marshaller);
+        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->createStub(MarshallerInterface::class));
 
         $this->handler->expects($this->once())->method('validateId')
             ->with('session_id')->willReturn(true);
@@ -111,7 +111,7 @@
 
     public function testUpdateTimestamp()
     {
-        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->marshaller);
+        $marshallingSessionHandler = new MarshallingSessionHandler($this->handler, $this->createStub(MarshallerInterface::class));
 
         $this->handler->expects($this->once())->method('updateTimestamp')
             ->with('session_id', 'data')->willReturn(true);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,9 +25,6 @@
     private const PREFIX = 'prefix_';
     private const TTL = 1000;
 
-    protected MemcachedSessionHandler $storage;
-    protected MockObject&\Memcached $memcached;
-
     protected function setUp(): void
     {
         parent::setUp();
@@ -35,94 +32,86 @@
         if (version_compare(phpversion('memcached'), '2.2.0', '>=') && version_compare(phpversion('memcached'), '3.0.0b1', '<')) {
             $this->markTestSkipped('Tests can only be run with memcached extension 2.1.0 or lower, or 3.0.0b1 or higher');
         }
-
-        $r = new \ReflectionClass(\Memcached::class);
-        $methodsToMock = array_map(fn ($m) => $m->name, $r->getMethods(\ReflectionMethod::IS_PUBLIC));
-        $methodsToMock = array_diff($methodsToMock, ['getDelayed', 'getDelayedByKey']);
-
-        $this->memcached = $this->getMockBuilder(\Memcached::class)
-            ->disableOriginalConstructor()
-            ->onlyMethods($methodsToMock)
-            ->getMock();
-
-        $this->storage = new MemcachedSessionHandler(
-            $this->memcached,
-            ['prefix' => self::PREFIX, 'expiretime' => self::TTL]
-        );
     }
 
     public function testOpenSession()
     {
-        $this->assertTrue($this->storage->open('', ''));
+        $this->assertTrue($this->getSessionHandler()->open('', ''));
     }
 
     public function testCloseSession()
     {
-        $this->memcached
+        $memcached = $this->getMemcachedMock();
+        $memcached
             ->expects($this->once())
             ->method('quit')
             ->willReturn(true)
         ;
 
-        $this->assertTrue($this->storage->close());
+        $this->assertTrue($this->getSessionHandler($memcached)->close());
     }
 
     public function testReadSession()
     {
-        $this->memcached
+        $memcached = $this->getMemcachedMock();
+        $memcached
             ->expects($this->once())
             ->method('get')
             ->with(self::PREFIX.'id')
         ;
 
-        $this->assertEquals('', $this->storage->read('id'));
+        $this->assertEquals('', $this->getSessionHandler($memcached)->read('id'));
     }
 
     public function testWriteSession()
     {
-        $this->memcached
+        $memcached = $this->getMemcachedMock();
+        $memcached
             ->expects($this->once())
             ->method('set')
             ->with(self::PREFIX.'id', 'data', $this->equalTo(self::TTL, 2))
             ->willReturn(true)
         ;
 
-        $this->assertTrue($this->storage->write('id', 'data'));
+        $this->assertTrue($this->getSessionHandler($memcached)->write('id', 'data'));
     }
 
     public function testWriteSessionWithLargeTTL()
     {
-        $this->memcached
+        $memcached = $this->getMemcachedMock();
+        $memcached
             ->expects($this->once())
             ->method('set')
             ->with(self::PREFIX.'id', 'data', $this->equalTo(time() + self::TTL + 60 * 60 * 24 * 30, 2))
             ->willReturn(true)
         ;
 
-        $storage = new MemcachedSessionHandler(
-            $this->memcached,
+        $sessionHandler = new MemcachedSessionHandler(
+            $memcached,
             ['prefix' => self::PREFIX, 'expiretime' => self::TTL + 60 * 60 * 24 * 30]
         );
 
-        $this->assertTrue($storage->write('id', 'data'));
+        $this->assertTrue($sessionHandler->write('id', 'data'));
     }
 
     public function testDestroySession()
     {
-        $this->storage->open('', 'sid');
-        $this->memcached
+        $memcached = $this->getMemcachedMock();
+        $sessionHandler = $this->getSessionHandler($memcached);
+        $sessionHandler->open('', 'sid');
+        $memcached
             ->expects($this->once())
             ->method('delete')
             ->with(self::PREFIX.'id')
             ->willReturn(true)
         ;
 
-        $this->assertTrue($this->storage->destroy('id'));
+        $this->assertTrue($sessionHandler->destroy('id'));
     }
 
     public function testGcSession()
     {
-        $this->assertIsInt($this->storage->gc(123));
+        $this->assertIsInt($this->getSessionHandler()->gc(123));
     }
 
     /**
@@ -130,8 +119,9 @@
      */
     public function testSupportedOptions($options, $supported)
     {
+        $memcached = $this->createStub(\Memcached::class);
         try {
-            new MemcachedSessionHandler($this->memcached, $options);
+            new MemcachedSessionHandler($memcached, $options);
             $this->assertTrue($supported);
         } catch (\InvalidArgumentException $e) {
             $this->assertFalse($supported);
@@ -150,8 +140,27 @@
 
     public function testGetConnection()
     {
-        $method = new \ReflectionMethod($this->storage, 'getMemcached');
+        $memcached = $this->createStub(\Memcached::class);
+        $sessionHandler = $this->getSessionHandler($memcached);
+        $method = new \ReflectionMethod($sessionHandler, 'getMemcached');
+
+        $this->assertSame($memcached, $method->invoke($sessionHandler));
+    }
+
+    private function getMemcachedMock(): MockObject&\Memcached
+    {
+        $r = new \ReflectionClass(\Memcached::class);
+        $methodsToMock = array_map(static fn ($m) => $m->name, $r->getMethods(\ReflectionMethod::IS_PUBLIC));
+        $methodsToMock = array_diff($methodsToMock, ['getDelayed', 'getDelayedByKey']);
 
-        $this->assertInstanceOf(\Memcached::class, $method->invoke($this->storage));
+        return $this->getMockBuilder(\Memcached::class)
+            ->disableOriginalConstructor()
+            ->onlyMethods($methodsToMock)
+            ->getMock();
+    }
+
+    private function getSessionHandler(?\Memcached $memcached = null, ?array $options = null): MemcachedSessionHandler
+    {
+        return new MemcachedSessionHandler($memcached ?? $this->createStub(\Memcached::class), $options ?? ['prefix' => self::PREFIX, 'expiretime' => self::TTL]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MigratingSessionHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MigratingSessionHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MigratingSessionHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MigratingSessionHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,62 +11,57 @@
 
 namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Session\Storage\Handler\MigratingSessionHandler;
 
 class MigratingSessionHandlerTest extends TestCase
 {
-    private MigratingSessionHandler $dualHandler;
-    private MockObject&\SessionHandlerInterface $currentHandler;
-    private MockObject&\SessionHandlerInterface $writeOnlyHandler;
-
-    protected function setUp(): void
-    {
-        $this->currentHandler = $this->createMock(\SessionHandlerInterface::class);
-        $this->writeOnlyHandler = $this->createMock(\SessionHandlerInterface::class);
-
-        $this->dualHandler = new MigratingSessionHandler($this->currentHandler, $this->writeOnlyHandler);
-    }
-
     public function testInstanceOf()
     {
-        $this->assertInstanceOf(\SessionHandlerInterface::class, $this->dualHandler);
-        $this->assertInstanceOf(\SessionUpdateTimestampHandlerInterface::class, $this->dualHandler);
+        $dualHandler = new MigratingSessionHandler($this->createStub(\SessionHandlerInterface::class), $this->createStub(\SessionHandlerInterface::class));
+
+        $this->assertInstanceOf(\SessionHandlerInterface::class, $dualHandler);
+        $this->assertInstanceOf(\SessionUpdateTimestampHandlerInterface::class, $dualHandler);
     }
 
     public function testClose()
     {
-        $this->currentHandler->expects($this->once())
+        $currentHandler = $this->createMock(\SessionHandlerInterface::class);
+        $currentHandler->expects($this->once())
             ->method('close')
             ->willReturn(true);
 
-        $this->writeOnlyHandler->expects($this->once())
+        $writeOnlyHandler = $this->createMock(\SessionHandlerInterface::class);
+        $writeOnlyHandler->expects($this->once())
             ->method('close')
             ->willReturn(false);
 
-        $result = $this->dualHandler->close();
+        $dualHandler = new MigratingSessionHandler($currentHandler, $writeOnlyHandler);
+        $result = $dualHandler->close();
 
         $this->assertTrue($result);
     }
 
     public function testDestroy()
     {
-        $this->dualHandler->open('/path/to/save/location', 'xyz');
+        $currentHandler = $this->createMock(\SessionHandlerInterface::class);
+        $writeOnlyHandler = $this->createMock(\SessionHandlerInterface::class);
+        $dualHandler = new MigratingSessionHandler($currentHandler, $writeOnlyHandler);
+        $dualHandler->open('/path/to/save/location', 'xyz');
 
         $sessionId = 'xyz';
 
-        $this->currentHandler->expects($this->once())
+        $currentHandler->expects($this->once())
             ->method('destroy')
             ->with($sessionId)
             ->willReturn(true);
 
-        $this->writeOnlyHandler->expects($this->once())
+        $writeOnlyHandler->expects($this->once())
             ->method('destroy')
             ->with($sessionId)
             ->willReturn(false);
 
-        $result = $this->dualHandler->destroy($sessionId);
+        $result = $dualHandler->destroy($sessionId);
 
         $this->assertTrue($result);
     }
@@ -75,17 +70,20 @@
     {
         $maxlifetime = 357;
 
-        $this->currentHandler->expects($this->once())
+        $currentHandler = $this->createMock(\SessionHandlerInterface::class);
+        $currentHandler->expects($this->once())
             ->method('gc')
             ->with($maxlifetime)
             ->willReturn(1);
 
-        $this->writeOnlyHandler->expects($this->once())
+        $writeOnlyHandler = $this->createMock(\SessionHandlerInterface::class);
+        $writeOnlyHandler->expects($this->once())
             ->method('gc')
             ->with($maxlifetime)
             ->willReturn(false);
 
-        $this->assertSame(1, $this->dualHandler->gc($maxlifetime));
+        $dualHandler = new MigratingSessionHandler($currentHandler, $writeOnlyHandler);
+        $this->assertSame(1, $dualHandler->gc($maxlifetime));
     }
 
     public function testOpen()
@@ -93,17 +91,20 @@
         $savePath = '/path/to/save/location';
         $sessionName = 'xyz';
 
-        $this->currentHandler->expects($this->once())
+        $currentHandler = $this->createMock(\SessionHandlerInterface::class);
+        $currentHandler->expects($this->once())
             ->method('open')
             ->with($savePath, $sessionName)
             ->willReturn(true);
 
-        $this->writeOnlyHandler->expects($this->once())
+        $writeOnlyHandler = $this->createMock(\SessionHandlerInterface::class);
+        $writeOnlyHandler->expects($this->once())
             ->method('open')
             ->with($savePath, $sessionName)
             ->willReturn(false);
 
-        $result = $this->dualHandler->open($savePath, $sessionName);
+        $dualHandler = new MigratingSessionHandler($currentHandler, $writeOnlyHandler);
+        $result = $dualHandler->open($savePath, $sessionName);
 
         $this->assertTrue($result);
     }
@@ -113,16 +114,18 @@
         $sessionId = 'xyz';
         $readValue = 'something';
 
-        $this->currentHandler->expects($this->once())
+        $currentHandler = $this->createMock(\SessionHandlerInterface::class);
+        $currentHandler->expects($this->once())
             ->method('read')
             ->with($sessionId)
             ->willReturn($readValue);
 
-        $this->writeOnlyHandler->expects($this->never())
-            ->method('read')
-            ->with($this->any());
+        $writeOnlyHandler = $this->createMock(\SessionHandlerInterface::class);
+        $writeOnlyHandler->expects($this->never())
+            ->method('read');
 
-        $result = $this->dualHandler->read($sessionId);
+        $dualHandler = new MigratingSessionHandler($currentHandler, $writeOnlyHandler);
+        $result = $dualHandler->read($sessionId);
 
         $this->assertSame($readValue, $result);
     }
@@ -132,17 +135,20 @@
         $sessionId = 'xyz';
         $data = 'my-serialized-data';
 
-        $this->currentHandler->expects($this->once())
+        $currentHandler = $this->createMock(\SessionHandlerInterface::class);
+        $currentHandler->expects($this->once())
             ->method('write')
             ->with($sessionId, $data)
             ->willReturn(true);
 
-        $this->writeOnlyHandler->expects($this->once())
+        $writeOnlyHandler = $this->createMock(\SessionHandlerInterface::class);
+        $writeOnlyHandler->expects($this->once())
             ->method('write')
             ->with($sessionId, $data)
             ->willReturn(false);
 
-        $result = $this->dualHandler->write($sessionId, $data);
+        $dualHandler = new MigratingSessionHandler($currentHandler, $writeOnlyHandler);
+        $result = $dualHandler->write($sessionId, $data);
 
         $this->assertTrue($result);
     }
@@ -152,16 +158,18 @@
         $sessionId = 'xyz';
         $readValue = 'something';
 
-        $this->currentHandler->expects($this->once())
+        $currentHandler = $this->createMock(\SessionHandlerInterface::class);
+        $currentHandler->expects($this->once())
             ->method('read')
             ->with($sessionId)
             ->willReturn($readValue);
 
-        $this->writeOnlyHandler->expects($this->never())
-            ->method('read')
-            ->with($this->any());
+        $writeOnlyHandler = $this->createMock(\SessionHandlerInterface::class);
+        $writeOnlyHandler->expects($this->never())
+            ->method('read');
 
-        $result = $this->dualHandler->validateId($sessionId);
+        $dualHandler = new MigratingSessionHandler($currentHandler, $writeOnlyHandler);
+        $result = $dualHandler->validateId($sessionId);
 
         $this->assertTrue($result);
     }
@@ -171,17 +179,20 @@
         $sessionId = 'xyz';
         $data = 'my-serialized-data';
 
-        $this->currentHandler->expects($this->once())
+        $currentHandler = $this->createMock(\SessionHandlerInterface::class);
+        $currentHandler->expects($this->once())
             ->method('write')
             ->with($sessionId, $data)
             ->willReturn(true);
 
-        $this->writeOnlyHandler->expects($this->once())
+        $writeOnlyHandler = $this->createMock(\SessionHandlerInterface::class);
+        $writeOnlyHandler->expects($this->once())
             ->method('write')
             ->with($sessionId, $data)
             ->willReturn(false);
 
-        $result = $this->dualHandler->updateTimestamp($sessionId, $data);
+        $dualHandler = new MigratingSessionHandler($currentHandler, $writeOnlyHandler);
+        $result = $dualHandler->updateTimestamp($sessionId, $data);
 
         $this->assertTrue($result);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
         try {
             $this->manager->executeCommand(self::DABASE_NAME, new Command(['ping' => 1]));
         } catch (ConnectionException $e) {
-            $this->markTestSkipped(sprintf('MongoDB Server "%s" not running: %s', getenv('MONGODB_HOST'), $e->getMessage()));
+            $this->markTestSkipped(\sprintf('MongoDB Server "%s" not running: %s', getenv('MONGODB_HOST'), $e->getMessage()));
         }
 
         $this->options = [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -157,19 +157,19 @@
         $selectStmt = $this->createMock(\PDOStatement::class);
         $insertStmt = $this->createMock(\PDOStatement::class);
 
-        $pdo->prepareResult = fn ($statement) => str_starts_with($statement, 'INSERT') ? $insertStmt : $selectStmt;
+        $pdo->prepareResult = static fn ($statement) => str_starts_with($statement, 'INSERT') ? $insertStmt : $selectStmt;
 
         $content = 'foobar';
         $stream = $this->createStream($content);
         $exception = null;
 
         $selectStmt->expects($this->atLeast(2))->method('fetchAll')
-            ->willReturnCallback(function () use (&$exception, $stream) {
+            ->willReturnCallback(static function () use (&$exception, $stream) {
                 return $exception ? [[$stream, time() + 42]] : [];
             });
 
         $insertStmt->expects($this->once())->method('execute')
-            ->willReturnCallback(function () use (&$exception) {
+            ->willReturnCallback(static function () use (&$exception) {
                 throw $exception = new \PDOException('', '23');
             });
 
@@ -332,7 +332,7 @@
         $schema = new Schema();
 
         $pdoSessionHandler = new PdoSessionHandler($this->getMemorySqlitePdo());
-        $pdoSessionHandler->configureSchema($schema, fn () => false);
+        $pdoSessionHandler->configureSchema($schema, static fn () => false);
         $this->assertFalse($schema->hasTable('sessions'));
     }
 
@@ -341,7 +341,7 @@
         $schema = new Schema();
 
         $pdoSessionHandler = new PdoSessionHandler($this->getMemorySqlitePdo());
-        $pdoSessionHandler->configureSchema($schema, fn () => true);
+        $pdoSessionHandler->configureSchema($schema, static fn () => true);
         $this->assertTrue($schema->hasTable('sessions'));
     }
 
@@ -351,7 +351,7 @@
         $schema->createTable('sessions');
 
         $pdoSessionHandler = new PdoSessionHandler($this->getMemorySqlitePdo());
-        $pdoSessionHandler->configureSchema($schema, fn () => true);
+        $pdoSessionHandler->configureSchema($schema, static fn () => true);
         $table = $schema->getTable('sessions');
         $this->assertEmpty($table->getColumns(), 'The table was not overwritten');
     }
@@ -377,7 +377,7 @@
 
     public function testTtl()
     {
-        foreach ([60, fn () => 60] as $ttl) {
+        foreach ([60, static fn () => 60] as $ttl) {
             $pdo = $this->getMemorySqlitePdo();
             $storage = new PdoSessionHandler($pdo, ['ttl' => $ttl]);
 
@@ -390,6 +390,46 @@
         }
     }
 
+    public function testSqlsrvDataBindingUsesStream()
+    {
+        $pdo = new MockPdo('sqlsrv', null, '10');
+        $boundData = [];
+
+        $mergeStmt = $this->createStub(\PDOStatement::class);
+        $selectStmt = $this->createStub(\PDOStatement::class);
+        $selectStmt->method('fetchAll')->willReturn([]);
+
+        $mergeStmt->method('bindParam')
+            ->willReturnCallback(static function ($param, $data, $type = null) use (&$boundData) {
+                $boundData[$param] = ['data' => $data, 'type' => $type];
+
+                return true;
+            });
+
+        $mergeStmt->method('bindValue')->willReturn(true);
+        $mergeStmt->method('execute')->willReturn(true);
+
+        $pdo->prepareResult = static fn ($statement) => str_starts_with($statement, 'MERGE') ? $mergeStmt : $selectStmt;
+
+        $storage = new PdoSessionHandler($pdo, ['lock_mode' => PdoSessionHandler::LOCK_NONE]);
+        $storage->open('', 'sid');
+        $storage->read('id');
+        $storage->write('id', 'test_data');
+        $storage->close();
+
+        $this->assertArrayHasKey(3, $boundData);
+        $this->assertIsResource($boundData[3]['data']);
+        $this->assertSame(\PDO::PARAM_LOB, $boundData[3]['type']);
+        rewind($boundData[3]['data']);
+        $this->assertSame('test_data', stream_get_contents($boundData[3]['data']));
+
+        $this->assertArrayHasKey(6, $boundData);
+        $this->assertIsResource($boundData[6]['data']);
+        $this->assertSame(\PDO::PARAM_LOB, $boundData[6]['type']);
+        rewind($boundData[6]['data']);
+        $this->assertSame('test_data', stream_get_contents($boundData[6]['data']));
+    }
+
     /**
      * @return resource
      */
@@ -408,11 +448,13 @@
     public \Closure|\PDOStatement|false $prepareResult;
     private ?string $driverName;
     private bool|int $errorMode;
+    private ?string $serverVersion;
 
-    public function __construct(?string $driverName = null, ?int $errorMode = null)
+    public function __construct(?string $driverName = null, ?int $errorMode = null, ?string $serverVersion = null)
     {
         $this->driverName = $driverName;
         $this->errorMode = null !== $errorMode ?: \PDO::ERRMODE_EXCEPTION;
+        $this->serverVersion = $serverVersion;
     }
 
     public function getAttribute($attribute): mixed
@@ -425,6 +467,10 @@
             return $this->driverName;
         }
 
+        if (\PDO::ATTR_SERVER_VERSION === $attribute) {
+            return $this->serverVersion;
+        }
+
         return parent::getAttribute($attribute);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PredisSessionHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PredisSessionHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PredisSessionHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PredisSessionHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,8 @@
 namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
 
 use Predis\Client;
+use Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler;
+use Symfony\Component\HttpFoundation\Session\Storage\Handler\SessionHandlerFactory;
 
 /**
  * @group integration
@@ -22,4 +24,23 @@
     {
         return new Client(array_combine(['host', 'port'], explode(':', getenv('REDIS_HOST')) + [1 => 6379]));
     }
+
+    public function testNoDuplicatePrefixWhenUsingDsn()
+    {
+        $host = getenv('REDIS_HOST') ?: 'localhost';
+        $dsn = 'redis://'.$host.'?prefix=my_session_prefix_&class='.urlencode(Client::class);
+
+        $handler = SessionHandlerFactory::createHandler($dsn);
+        $this->assertInstanceOf(RedisSessionHandler::class, $handler);
+
+        $handler->write('test_id', 'test_data');
+        $rawClient = new Client(array_combine(['host', 'port'], explode(':', $host) + [1 => 6379]));
+
+        try {
+            $this->assertSame(0, $rawClient->exists('my_session_prefix_my_session_prefix_test_id'));
+            $this->assertEquals('test_data', $rawClient->get('my_session_prefix_test_id'));
+        } finally {
+            $rawClient->flushdb();
+        }
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/SessionHandlerFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/SessionHandlerFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/SessionHandlerFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/SessionHandlerFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
      */
     public function testCreateRedisHandlerFromConnectionObject()
     {
-        $handler = SessionHandlerFactory::createHandler($this->createMock(\Redis::class));
+        $handler = SessionHandlerFactory::createHandler($this->createStub(\Redis::class));
         $this->assertInstanceOf(RedisSessionHandler::class, $handler);
     }
 
@@ -73,7 +73,7 @@
         $ttlProperty = $reflection->getProperty('ttl');
         $this->assertSame(3600, $ttlProperty->getValue($handler));
 
-        $handler = SessionHandlerFactory::createHandler('redis://localhost?prefix=foo&ttl=3600&ignored=bar', ['ttl' => fn () => 123]);
+        $handler = SessionHandlerFactory::createHandler('redis://localhost?prefix=foo&ttl=3600&ignored=bar', ['ttl' => static fn () => 123]);
 
         $this->assertInstanceOf(\Closure::class, $reflection->getProperty('ttl')->getValue($handler));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -135,4 +135,13 @@
 
         $this->assertIsInt($bag->getLifetime());
     }
+
+    public function testCookieLifetimeFromConstructor()
+    {
+        $bag = new MetadataBag('_sf2_meta', 0, 60);
+        $sessionMetadata = [];
+        $bag->initialize($sessionMetadata);
+
+        $this->assertSame(60, $bag->getLifetime());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -192,6 +192,10 @@
             'cookie_samesite' => 'lax',
         ];
 
+        if (\PHP_VERSION_ID >= 80500) {
+            $options['cookie_partitioned'] = false;
+        }
+
         $this->getStorage($options);
         $temp = session_get_cookie_params();
         $gco = [];
@@ -219,7 +223,7 @@
      */
     public function testTransSidTagsOption()
     {
-        $previousErrorHandler = set_error_handler(function ($errno, $errstr) use (&$previousErrorHandler) {
+        $previousErrorHandler = set_error_handler(static function ($errno, $errstr) use (&$previousErrorHandler) {
             if ('ini_set(): Usage of session.trans_sid_tags INI setting is deprecated' !== $errstr) {
                 return $previousErrorHandler ? $previousErrorHandler(...\func_get_args()) : false;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
 
     protected function setUp(): void
     {
-        $this->proxy = new class() extends AbstractProxy {};
+        $this->proxy = new class extends AbstractProxy {};
     }
 
     public function testGetSaveHandlerName()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Proxy;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Session\Storage\Handler\StrictSessionHandler;
 use Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage;
@@ -28,128 +27,159 @@
  */
 class SessionHandlerProxyTest extends TestCase
 {
-    private MockObject&\SessionHandlerInterface $mock;
-
-    private SessionHandlerProxy $proxy;
-
-    protected function setUp(): void
-    {
-        $this->mock = $this->createMock(\SessionHandlerInterface::class);
-        $this->proxy = new SessionHandlerProxy($this->mock);
-    }
-
     public function testOpenTrue()
     {
-        $this->mock->expects($this->once())
+        $handler = $this->createMock(\SessionHandlerInterface::class);
+        $proxy = new SessionHandlerProxy($handler);
+        $handler->expects($this->once())
             ->method('open')
             ->willReturn(true);
 
-        $this->assertFalse($this->proxy->isActive());
-        $this->proxy->open('name', 'id');
-        $this->assertFalse($this->proxy->isActive());
+        $this->assertFalse($proxy->isActive());
+        $proxy->open('name', 'id');
+        $this->assertFalse($proxy->isActive());
     }
 
     public function testOpenFalse()
     {
-        $this->mock->expects($this->once())
+        $handler = $this->createMock(\SessionHandlerInterface::class);
+        $proxy = new SessionHandlerProxy($handler);
+        $handler->expects($this->once())
             ->method('open')
             ->willReturn(false);
 
-        $this->assertFalse($this->proxy->isActive());
-        $this->proxy->open('name', 'id');
-        $this->assertFalse($this->proxy->isActive());
+        $this->assertFalse($proxy->isActive());
+        $proxy->open('name', 'id');
+        $this->assertFalse($proxy->isActive());
     }
 
     public function testClose()
     {
-        $this->mock->expects($this->once())
+        $handler = $this->createMock(\SessionHandlerInterface::class);
+        $proxy = new SessionHandlerProxy($handler);
+        $handler->expects($this->once())
             ->method('close')
             ->willReturn(true);
 
-        $this->assertFalse($this->proxy->isActive());
-        $this->proxy->close();
-        $this->assertFalse($this->proxy->isActive());
+        $this->assertFalse($proxy->isActive());
+        $proxy->close();
+        $this->assertFalse($proxy->isActive());
     }
 
     public function testCloseFalse()
     {
-        $this->mock->expects($this->once())
+        $handler = $this->createMock(\SessionHandlerInterface::class);
+        $proxy = new SessionHandlerProxy($handler);
+        $handler->expects($this->once())
             ->method('close')
             ->willReturn(false);
 
-        $this->assertFalse($this->proxy->isActive());
-        $this->proxy->close();
-        $this->assertFalse($this->proxy->isActive());
+        $this->assertFalse($proxy->isActive());
+        $proxy->close();
+        $this->assertFalse($proxy->isActive());
     }
 
     public function testRead()
     {
-        $this->mock->expects($this->once())
+        $handler = $this->createMock(\SessionHandlerInterface::class);
+        $proxy = new SessionHandlerProxy($handler);
+        $handler->expects($this->once())
             ->method('read')
             ->willReturn('foo')
         ;
 
-        $this->proxy->read('id');
+        $proxy->read('id');
     }
 
     public function testWrite()
     {
-        $this->mock->expects($this->once())
+        $handler = $this->createMock(\SessionHandlerInterface::class);
+        $proxy = new SessionHandlerProxy($handler);
+        $handler->expects($this->once())
             ->method('write')
             ->willReturn(true)
         ;
 
-        $this->assertTrue($this->proxy->write('id', 'data'));
+        $this->assertTrue($proxy->write('id', 'data'));
     }
 
     public function testDestroy()
     {
-        $this->mock->expects($this->once())
+        $handler = $this->createMock(\SessionHandlerInterface::class);
+        $proxy = new SessionHandlerProxy($handler);
+        $handler->expects($this->once())
             ->method('destroy')
             ->willReturn(true)
         ;
 
-        $this->assertTrue($this->proxy->destroy('id'));
+        $this->assertTrue($proxy->destroy('id'));
     }
 
     public function testGc()
     {
-        $this->mock->expects($this->once())
+        $handler = $this->createMock(\SessionHandlerInterface::class);
+        $proxy = new SessionHandlerProxy($handler);
+        $handler->expects($this->once())
             ->method('gc')
             ->willReturn(1)
         ;
 
-        $this->proxy->gc(86400);
+        $proxy->gc(86400);
+    }
+
+    public function testValidateIdWithoutUpdateTimestampHandler()
+    {
+        $proxy = new SessionHandlerProxy($this->createStub(\SessionHandlerInterface::class));
+
+        $this->assertTrue($proxy->validateId('id'));
     }
 
-    public function testValidateId()
+    public function testValidateIdWithUpdateTimestampHandlerAndValidId()
     {
-        $mock = $this->createMock(TestSessionHandler::class);
-        $mock->expects($this->once())
-            ->method('validateId');
+        $handler = $this->createMock(TestSessionHandler::class);
+        $handler->expects($this->once())
+            ->method('validateId')
+            ->willReturn(true);
 
-        $proxy = new SessionHandlerProxy($mock);
-        $proxy->validateId('id');
+        $proxy = new SessionHandlerProxy($handler);
 
-        $this->assertTrue($this->proxy->validateId('id'));
+        $this->assertTrue($proxy->validateId('id'));
     }
 
-    public function testUpdateTimestamp()
+    public function testValidateIdWithUpdateTimestampHandlerAndInvalidId()
     {
-        $mock = $this->createMock(TestSessionHandler::class);
-        $mock->expects($this->once())
+        $handler = $this->createMock(TestSessionHandler::class);
+        $handler->expects($this->once())
+            ->method('validateId')
+            ->willReturn(false);
+
+        $proxy = new SessionHandlerProxy($handler);
+
+        $this->assertFalse($proxy->validateId('id'));
+    }
+
+    public function testUpdateTimestampWithUpdateTimestampHandler()
+    {
+        $handler = $this->createMock(TestSessionHandler::class);
+        $handler->expects($this->once())
             ->method('updateTimestamp')
             ->willReturn(false);
 
-        $proxy = new SessionHandlerProxy($mock);
+        $proxy = new SessionHandlerProxy($handler);
+
         $proxy->updateTimestamp('id', 'data');
+    }
 
-        $this->mock->expects($this->once())
+    public function testUpdateTimestampWithoutUpdateTimestampHandler()
+    {
+        $handler = $this->createMock(\SessionHandlerInterface::class);
+        $handler->expects($this->once())
             ->method('write')
-            ->willReturn(true)
-        ;
+            ->willReturn(true);
+
+        $proxy = new SessionHandlerProxy($handler);
 
-        $this->proxy->updateTimestamp('id', 'data');
+        $this->assertTrue($proxy->updateTimestamp('id', 'data'));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/StreamedJsonResponseTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/StreamedJsonResponseTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/StreamedJsonResponseTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/StreamedJsonResponseTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -109,15 +109,15 @@
         $content = $this->createSendResponse(
             [
                 '_embedded' => [
-                    'list' => (function (): \Generator {
+                    'list' => (static function (): \Generator {
                         yield 0 => 'test';
                         yield 'key' => 'value';
                     })(),
-                    'map' => (function (): \Generator {
+                    'map' => (static function (): \Generator {
                         yield 'key' => 'value';
                         yield 0 => 'test';
                     })(),
-                    'integer' => (function (): \Generator {
+                    'integer' => (static function (): \Generator {
                         yield 1 => 'one';
                         yield 3 => 'three';
                     })(),
@@ -132,14 +132,14 @@
     {
         $arrayObject = new \ArrayObject(['__symfony_json__' => '__symfony_json__']);
 
-        $iteratorAggregate = new class() implements \IteratorAggregate {
+        $iteratorAggregate = new class implements \IteratorAggregate {
             public function getIterator(): \Traversable
             {
                 return new \ArrayIterator(['__symfony_json__']);
             }
         };
 
-        $jsonSerializable = new class() implements \IteratorAggregate, \JsonSerializable {
+        $jsonSerializable = new class implements \IteratorAggregate, \JsonSerializable {
             public function getIterator(): \Traversable
             {
                 return new \ArrayIterator(['This should be ignored']);
@@ -187,7 +187,7 @@
 
     public function testPlaceholderAsObjectStructure()
     {
-        $object = new class() {
+        $object = new class {
             public $__symfony_json__ = 'foo';
             public $bar = '__symfony_json__';
         };
@@ -222,7 +222,7 @@
         $response = new StreamedJsonResponse([
             '_embedded' => [
                 'count' => '2', // options are applied to the initial json encode
-                'values' => (function (): \Generator {
+                'values' => (static function (): \Generator {
                     yield 'with/unescaped/slash' => 'With/a/slash'; // options are applied to key and values
                     yield '3' => '3'; // numeric check for value, but not for the key
                 })(),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
 {
     public function testConstructor()
     {
-        $response = new StreamedResponse(function () { echo 'foo'; }, 404, ['Content-Type' => 'text/plain']);
+        $response = new StreamedResponse(static function () { echo 'foo'; }, 404, ['Content-Type' => 'text/plain']);
 
         $this->assertEquals(404, $response->getStatusCode());
         $this->assertEquals('text/plain', $response->headers->get('Content-Type'));
@@ -27,7 +27,7 @@
 
     public function testPrepareWith11Protocol()
     {
-        $response = new StreamedResponse(function () { echo 'foo'; });
+        $response = new StreamedResponse(static function () { echo 'foo'; });
         $request = Request::create('/');
         $request->server->set('SERVER_PROTOCOL', 'HTTP/1.1');
 
@@ -39,7 +39,7 @@
 
     public function testPrepareWith10Protocol()
     {
-        $response = new StreamedResponse(function () { echo 'foo'; });
+        $response = new StreamedResponse(static function () { echo 'foo'; });
         $request = Request::create('/');
         $request->server->set('SERVER_PROTOCOL', 'HTTP/1.0');
 
@@ -51,7 +51,7 @@
 
     public function testPrepareWithHeadRequest()
     {
-        $response = new StreamedResponse(function () { echo 'foo'; }, 200, ['Content-Length' => '123']);
+        $response = new StreamedResponse(static function () { echo 'foo'; }, 200, ['Content-Length' => '123']);
         $request = Request::create('/', 'HEAD');
 
         $response->prepare($request);
@@ -61,7 +61,7 @@
 
     public function testPrepareWithCacheHeaders()
     {
-        $response = new StreamedResponse(function () { echo 'foo'; }, 200, ['Cache-Control' => 'max-age=600, public']);
+        $response = new StreamedResponse(static function () { echo 'foo'; }, 200, ['Cache-Control' => 'max-age=600, public']);
         $request = Request::create('/', 'GET');
 
         $response->prepare($request);
@@ -72,7 +72,7 @@
     {
         $called = 0;
 
-        $response = new StreamedResponse(function () use (&$called) { ++$called; });
+        $response = new StreamedResponse(static function () use (&$called) { ++$called; });
 
         $response->sendContent();
         $this->assertEquals(1, $called);
@@ -91,30 +91,30 @@
     public function testSetContent()
     {
         $this->expectException(\LogicException::class);
-        $response = new StreamedResponse(function () { echo 'foo'; });
+        $response = new StreamedResponse(static function () { echo 'foo'; });
         $response->setContent('foo');
     }
 
     public function testGetContent()
     {
-        $response = new StreamedResponse(function () { echo 'foo'; });
+        $response = new StreamedResponse(static function () { echo 'foo'; });
         $this->assertFalse($response->getContent());
     }
 
     public function testReturnThis()
     {
-        $response = new StreamedResponse(function () {});
+        $response = new StreamedResponse(static function () {});
         $this->assertInstanceOf(StreamedResponse::class, $response->sendContent());
         $this->assertInstanceOf(StreamedResponse::class, $response->sendContent());
 
-        $response = new StreamedResponse(function () {});
+        $response = new StreamedResponse(static function () {});
         $this->assertInstanceOf(StreamedResponse::class, $response->sendHeaders());
         $this->assertInstanceOf(StreamedResponse::class, $response->sendHeaders());
     }
 
     public function testSetNotModified()
     {
-        $response = new StreamedResponse(function () { echo 'foo'; });
+        $response = new StreamedResponse(static function () { echo 'foo'; });
         $modified = $response->setNotModified();
         $this->assertSame($response, $modified);
         $this->assertEquals(304, $modified->getStatusCode());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Test/Constraint/ResponseFormatSameTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Test/Constraint/ResponseFormatSameTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpFoundation/Tests/Test/Constraint/ResponseFormatSameTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpFoundation/Tests/Test/Constraint/ResponseFormatSameTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,4 +58,14 @@
 
         $this->fail();
     }
+
+    public function testOverriddenFormat()
+    {
+        $request = new Request();
+        $request->setFormat('jsonapi', ['application/vnd.api+json']);
+        $request->setFormat('apijson', ['application/vnd.api+json']);
+
+        $constraint = new ResponseFormatSame($request, 'apijson');
+        $this->assertTrue($constraint->evaluate(new Response('', 200, ['Content-Type' => 'application/vnd.api+json']), '', true));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Attribute/WithLogLevel.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Attribute/WithLogLevel.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Attribute/WithLogLevel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Attribute/WithLogLevel.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
     public function __construct(public readonly string $level)
     {
         if (!\defined('Psr\Log\LogLevel::'.strtoupper($this->level))) {
-            throw new \InvalidArgumentException(sprintf('Invalid log level "%s".', $this->level));
+            throw new \InvalidArgumentException(\sprintf('Invalid log level "%s".', $this->level));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Bundle/Bundle.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Bundle/Bundle.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Bundle/Bundle.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Bundle/Bundle.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
 
             if (null !== $extension) {
                 if (!$extension instanceof ExtensionInterface) {
-                    throw new \LogicException(sprintf('Extension "%s" must implement Symfony\Component\DependencyInjection\Extension\ExtensionInterface.', get_debug_type($extension)));
+                    throw new \LogicException(\sprintf('Extension "%s" must implement Symfony\Component\DependencyInjection\Extension\ExtensionInterface.', get_debug_type($extension)));
                 }
 
                 // check naming convention
@@ -78,7 +78,7 @@
                 $expectedAlias = Container::underscore($basename);
 
                 if ($expectedAlias != $extension->getAlias()) {
-                    throw new \LogicException(sprintf('Users will expect the alias of the default extension of a bundle to be the underscored version of the bundle name ("%s"). You can override "Bundle::getContainerExtension()" if you want to use "%s" or another alias.', $expectedAlias, $extension->getAlias()));
+                    throw new \LogicException(\sprintf('Users will expect the alias of the default extension of a bundle to be the underscored version of the bundle name ("%s"). You can override "Bundle::getContainerExtension()" if you want to use "%s" or another alias.', $expectedAlias, $extension->getAlias()));
                 }
 
                 $this->extension = $extension;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/CacheClearer/Psr6CacheClearer.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/CacheClearer/Psr6CacheClearer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/CacheClearer/Psr6CacheClearer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/CacheClearer/Psr6CacheClearer.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
     public function getPool(string $name): CacheItemPoolInterface
     {
         if (!$this->hasPool($name)) {
-            throw new \InvalidArgumentException(sprintf('Cache pool not found: "%s".', $name));
+            throw new \InvalidArgumentException(\sprintf('Cache pool not found: "%s".', $name));
         }
 
         return $this->pools[$name];
@@ -51,7 +51,7 @@
     public function clearPool(string $name): bool
     {
         if (!isset($this->pools[$name])) {
-            throw new \InvalidArgumentException(sprintf('Cache pool not found: "%s".', $name));
+            throw new \InvalidArgumentException(\sprintf('Cache pool not found: "%s".', $name));
         }
 
         return $this->pools[$name]->clear();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,7 +61,7 @@
 
         if ($collectDeprecations = $this->debug && !\defined('PHPUNIT_COMPOSER_INSTALL')) {
             $collectedLogs = [];
-            $previousHandler = set_error_handler(function ($type, $message, $file, $line) use (&$collectedLogs, &$previousHandler) {
+            $previousHandler = set_error_handler(static function ($type, $message, $file, $line) use (&$collectedLogs, &$previousHandler) {
                 if (\E_USER_DEPRECATED !== $type && \E_DEPRECATED !== $type) {
                     return $previousHandler ? $previousHandler($type, $message, $file, $line) : false;
                 }
@@ -107,13 +107,13 @@
                 $start = microtime(true);
                 foreach ((array) $warmer->warmUp($cacheDir, $buildDir) as $item) {
                     if (is_dir($item) || (str_starts_with($item, \dirname($cacheDir)) && !is_file($item)) || ($buildDir && str_starts_with($item, \dirname($buildDir)) && !is_file($item))) {
-                        throw new \LogicException(sprintf('"%s::warmUp()" should return a list of files or classes but "%s" is none of them.', $warmer::class, $item));
+                        throw new \LogicException(\sprintf('"%s::warmUp()" should return a list of files or classes but "%s" is none of them.', $warmer::class, $item));
                     }
                     $preload[] = $item;
                 }
 
                 if ($io?->isDebug()) {
-                    $io->info(sprintf('"%s" completed in %0.2fms.', $warmer::class, 1000 * (microtime(true) - $start)));
+                    $io->info(\sprintf('"%s" completed in %0.2fms.', $warmer::class, 1000 * (microtime(true) - $start)));
                 }
             }
         } finally {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,11 +25,11 @@
     {
         $tmpFile = @tempnam(\dirname($file), basename($file));
         if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $file)) {
-            @chmod($file, 0666 & ~umask());
+            @chmod($file, 0o666 & ~umask());
 
             return;
         }
 
-        throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $file));
+        throw new \RuntimeException(\sprintf('Failed to write cache file "%s".', $file));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         "symfony/config": "^6.1|^7.0",
         "symfony/console": "^5.4|^6.0|^7.0",
         "symfony/css-selector": "^5.4|^6.0|^7.0",
-        "symfony/dependency-injection": "^6.4|^7.0",
+        "symfony/dependency-injection": "^6.4.1|^7.0.1",
         "symfony/dom-crawler": "^5.4|^6.0|^7.0",
         "symfony/expression-language": "^5.4|^6.0|^7.0",
         "symfony/finder": "^5.4|^6.0|^7.0",
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/BackedEnumValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/BackedEnumValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/BackedEnumValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/BackedEnumValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,7 +78,7 @@
         }
 
         if (!\is_int($value) && !\is_string($value)) {
-            throw new \LogicException(sprintf('Could not resolve the "%s $%s" controller argument: expecting an int or string, got "%s".', $argument->getType(), $argument->getName(), get_debug_type($value)));
+            throw new \LogicException(\sprintf('Could not resolve the "%s $%s" controller argument: expecting an int or string, got "%s".', $argument->getType(), $argument->getName(), get_debug_type($value)));
         }
 
         /** @var class-string<\BackedEnum> $enumType */
@@ -87,7 +87,7 @@
         try {
             return [$enumType::from($value)];
         } catch (\ValueError|\TypeError $e) {
-            throw new NotFoundHttpException(sprintf('Could not resolve the "%s $%s" controller argument: ', $argument->getType(), $argument->getName()).$e->getMessage(), $e);
+            throw new NotFoundHttpException(\sprintf('Could not resolve the "%s $%s" controller argument: ', $argument->getType(), $argument->getName()).$e->getMessage(), $e);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/DateTimeValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/DateTimeValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/DateTimeValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/DateTimeValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -90,7 +90,7 @@
         }
 
         if (!$date) {
-            throw new NotFoundHttpException(sprintf('Invalid date given for parameter "%s".', $argument->getName()));
+            throw new NotFoundHttpException(\sprintf('Invalid date given for parameter "%s".', $argument->getName()));
         }
 
         return [$date];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -82,8 +82,8 @@
             return [];
         }
 
-        $what = sprintf('argument $%s of "%s()"', $argument->getName(), $controller);
-        $message = sprintf('Could not resolve %s, maybe you forgot to register the controller as a service or missed tagging it with the "controller.service_arguments"?', $what);
+        $what = \sprintf('argument $%s of "%s()"', $argument->getName(), $controller);
+        $message = \sprintf('Could not resolve %s, maybe you forgot to register the controller as a service or missed tagging it with the "controller.service_arguments"?', $what);
 
         throw new RuntimeException($message);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/QueryParameterValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/QueryParameterValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/QueryParameterValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/QueryParameterValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
                 return [];
             }
 
-            throw new NotFoundHttpException(sprintf('Missing query parameter "%s".', $name));
+            throw new NotFoundHttpException(\sprintf('Missing query parameter "%s".', $name));
         }
 
         $value = $request->query->all()[$name];
@@ -52,7 +52,7 @@
             $filtered = array_values(array_filter((array) $value, \is_array(...)));
 
             if ($filtered !== $value && !($attribute->flags & \FILTER_NULL_ON_FAILURE)) {
-                throw new NotFoundHttpException(sprintf('Invalid query parameter "%s".', $name));
+                throw new NotFoundHttpException(\sprintf('Invalid query parameter "%s".', $name));
             }
 
             return $filtered;
@@ -80,8 +80,8 @@
             default => match ($enumType = is_subclass_of($type, \BackedEnum::class) ? (new \ReflectionEnum($type))->getBackingType()->getName() : null) {
                 'int' => \FILTER_VALIDATE_INT,
                 'string' => \FILTER_DEFAULT,
-                default => throw new \LogicException(sprintf('#[MapQueryParameter] cannot be used on controller argument "%s$%s" of type "%s"; one of array, string, int, float, bool or \BackedEnum should be used.', $argument->isVariadic() ? '...' : '', $argument->getName(), $type ?? 'mixed')),
-            }
+                default => throw new \LogicException(\sprintf('#[MapQueryParameter] cannot be used on controller argument "%s$%s" of type "%s"; one of array, string, int, float, bool or \BackedEnum should be used.', $argument->isVariadic() ? '...' : '', $argument->getName(), $type ?? 'mixed')),
+            },
         };
 
         $value = filter_var($value, $attribute->filter ?? $filter, $options);
@@ -103,7 +103,7 @@
         }
 
         if (null === $value && !($attribute->flags & \FILTER_NULL_ON_FAILURE)) {
-            throw new NotFoundHttpException(sprintf('Invalid query parameter "%s".', $name));
+            throw new NotFoundHttpException(\sprintf('Invalid query parameter "%s".', $name));
         }
 
         if (!\is_array($value)) {
@@ -117,7 +117,7 @@
         }
 
         if ($filtered !== $value && !($attribute->flags & \FILTER_NULL_ON_FAILURE)) {
-            throw new NotFoundHttpException(sprintf('Invalid query parameter "%s".', $name));
+            throw new NotFoundHttpException(\sprintf('Invalid query parameter "%s".', $name));
         }
 
         return $argument->isVariadic() ? $filtered : [$filtered];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,7 @@
 use Symfony\Component\HttpKernel\Event\ControllerArgumentsEvent;
 use Symfony\Component\HttpKernel\Exception\HttpException;
 use Symfony\Component\HttpKernel\KernelEvents;
+use Symfony\Component\Serializer\Exception\InvalidArgumentException as SerializerInvalidArgumentException;
 use Symfony\Component\Serializer\Exception\NotEncodableValueException;
 use Symfony\Component\Serializer\Exception\PartialDenormalizationException;
 use Symfony\Component\Serializer\Exception\UnsupportedFormatException;
@@ -71,7 +72,7 @@
         }
 
         if ($argument->isVariadic()) {
-            throw new \LogicException(sprintf('Mapping variadic argument "$%s" is not supported.', $argument->getName()));
+            throw new \LogicException(\sprintf('Mapping variadic argument "$%s" is not supported.', $argument->getName()));
         }
 
         $attribute->metadata = $argument;
@@ -96,7 +97,7 @@
             $request = $event->getRequest();
 
             if (!$type = $argument->metadata->getType()) {
-                throw new \LogicException(sprintf('Could not resolve the "$%s" controller argument: argument should be typed.', $argument->metadata->getName()));
+                throw new \LogicException(\sprintf('Could not resolve the "$%s" controller argument: argument should be typed.', $argument->metadata->getName()));
             }
 
             if ($this->validator) {
@@ -104,7 +105,7 @@
                 try {
                     $payload = $this->$payloadMapper($request, $type, $argument);
                 } catch (PartialDenormalizationException $e) {
-                    $trans = $this->translator ? $this->translator->trans(...) : fn ($m, $p) => strtr($m, $p);
+                    $trans = $this->translator ? $this->translator->trans(...) : static fn ($m, $p) => strtr($m, $p);
                     foreach ($e->getErrors() as $error) {
                         $parameters = [];
                         $template = 'This value was of an unexpected type.';
@@ -119,6 +120,9 @@
                         $violations->add(new ConstraintViolation($message, $template, $parameters, null, $error->getPath(), null));
                     }
                     $payload = $e->getData();
+                } catch (SerializerInvalidArgumentException $e) {
+                    $violations->add(new ConstraintViolation($e->getMessage(), $e->getMessage(), [], null, '', null));
+                    $payload = null;
                 }
 
                 if (null !== $payload && !\count($violations)) {
@@ -133,6 +137,8 @@
                     $payload = $this->$payloadMapper($request, $type, $argument);
                 } catch (PartialDenormalizationException $e) {
                     throw new HttpException($validationFailedCode, implode("\n", array_map(static fn ($e) => $e->getMessage(), $e->getErrors())), $e);
+                } catch (SerializerInvalidArgumentException $e) {
+                    throw new HttpException($validationFailedCode, $e->getMessage(), $e);
                 }
             }
 
@@ -140,7 +146,7 @@
                 $payload = match (true) {
                     $argument->metadata->hasDefaultValue() => $argument->metadata->getDefaultValue(),
                     $argument->metadata->isNullable() => null,
-                    default => throw new HttpException($validationFailedCode)
+                    default => throw new HttpException($validationFailedCode),
                 };
             }
 
@@ -168,20 +174,20 @@
 
     private function mapRequestPayload(Request $request, string $type, MapRequestPayload $attribute): ?object
     {
+        if ('' === $data = $request->request->all() ?: $request->getContent()) {
+            return null;
+        }
+
         if (null === $format = $request->getContentTypeFormat()) {
             throw new HttpException(Response::HTTP_UNSUPPORTED_MEDIA_TYPE, 'Unsupported format.');
         }
 
         if ($attribute->acceptFormat && !\in_array($format, (array) $attribute->acceptFormat, true)) {
-            throw new HttpException(Response::HTTP_UNSUPPORTED_MEDIA_TYPE, sprintf('Unsupported format, expects "%s", but "%s" given.', implode('", "', (array) $attribute->acceptFormat), $format));
+            throw new HttpException(Response::HTTP_UNSUPPORTED_MEDIA_TYPE, \sprintf('Unsupported format, expects "%s", but "%s" given.', implode('", "', (array) $attribute->acceptFormat), $format));
         }
 
-        if ($data = $request->request->all()) {
-            return $this->serializer->denormalize($data, $type, 'csv', $attribute->serializationContext + self::CONTEXT_DENORMALIZE);
-        }
-
-        if ('' === $data = $request->getContent()) {
-            return null;
+        if (\is_array($data)) {
+            return $this->serializer->denormalize($data, $type, self::hasNonStringScalar($data) ? $format : 'csv', $attribute->serializationContext + self::CONTEXT_DENORMALIZE);
         }
 
         if ('form' === $format) {
@@ -191,9 +197,26 @@
         try {
             return $this->serializer->deserialize($data, $type, $format, self::CONTEXT_DESERIALIZE + $attribute->serializationContext);
         } catch (UnsupportedFormatException $e) {
-            throw new HttpException(Response::HTTP_UNSUPPORTED_MEDIA_TYPE, sprintf('Unsupported format: "%s".', $format), $e);
+            throw new HttpException(Response::HTTP_UNSUPPORTED_MEDIA_TYPE, \sprintf('Unsupported format: "%s".', $format), $e);
         } catch (NotEncodableValueException $e) {
-            throw new HttpException(Response::HTTP_BAD_REQUEST, sprintf('Request payload contains invalid "%s" data.', $format), $e);
+            throw new HttpException(Response::HTTP_BAD_REQUEST, \sprintf('Request payload contains invalid "%s" data.', $format), $e);
+        }
+    }
+
+    private static function hasNonStringScalar(array $data): bool
+    {
+        $stack = [$data];
+
+        while ($stack) {
+            foreach (array_pop($stack) as $v) {
+                if (\is_array($v)) {
+                    $stack[] = $v;
+                } elseif (!\is_string($v)) {
+                    return true;
+                }
+            }
         }
+
+        return false;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/RequestValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/RequestValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/RequestValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/RequestValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,6 +35,15 @@
 
     public function resolve(Request $request, ArgumentMetadata $argument): array
     {
-        return Request::class === $argument->getType() || is_subclass_of($argument->getType(), Request::class) ? [$request] : [];
+        $type = $argument->getType();
+        if (Request::class !== $type && !is_subclass_of($type, Request::class)) {
+            return [];
+        }
+
+        if ($request->attributes->has($argument->getName())) {
+            return [];
+        }
+
+        return [$request];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/ServiceValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/ServiceValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/ServiceValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/ServiceValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,11 +83,11 @@
         try {
             return [$this->container->get($controller)->get($argument->getName())];
         } catch (RuntimeException $e) {
-            $what = sprintf('argument $%s of "%s()"', $argument->getName(), $controller);
+            $what = \sprintf('argument $%s of "%s()"', $argument->getName(), $controller);
             $message = preg_replace('/service "\.service_locator\.[^"]++"/', $what, $e->getMessage());
 
             if ($e->getMessage() === $message) {
-                $message = sprintf('Cannot resolve %s: %s', $what, $message);
+                $message = \sprintf('Cannot resolve %s: %s', $what, $message);
             }
 
             $r = new \ReflectionProperty($e, 'message');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/SessionValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/SessionValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/SessionValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/SessionValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,6 +54,10 @@
             return [];
         }
 
+        if ($request->attributes->has($argument->getName())) {
+            return [];
+        }
+
         return $request->getSession() instanceof $type ? [$request->getSession()] : [];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/UidValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/UidValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/UidValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/UidValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
         try {
             return [$uidClass::fromString($value)];
         } catch (\InvalidArgumentException $e) {
-            throw new NotFoundHttpException(sprintf('The uid for the "%s" parameter is invalid.', $argument->getName()), $e);
+            throw new NotFoundHttpException(\sprintf('The uid for the "%s" parameter is invalid.', $argument->getName()), $e);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/VariadicValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/VariadicValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/VariadicValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/VariadicValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
         $values = $request->attributes->get($argument->getName());
 
         if (!\is_array($values)) {
-            throw new \InvalidArgumentException(sprintf('The action argument "...$%1$s" is required to be an array, the request attribute "%1$s" contains a type of "%2$s" instead.', $argument->getName(), get_debug_type($values)));
+            throw new \InvalidArgumentException(\sprintf('The action argument "...$%1$s" is required to be an array, the request attribute "%1$s" contains a type of "%2$s" instead.', $argument->getName(), get_debug_type($values)));
         }
 
         return $values;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,7 +60,7 @@
                     if ($attribute->disabled) {
                         $disabledResolvers[$attribute->resolver] = true;
                     } elseif ($resolverName) {
-                        throw new \LogicException(sprintf('You can only pin one resolver per argument, but argument "$%s" of "%s()" has more.', $metadata->getName(), $this->getPrettyName($controller)));
+                        throw new \LogicException(\sprintf('You can only pin one resolver per argument, but argument "$%s" of "%s()" has more.', $metadata->getName(), $this->getPrettyName($controller)));
                     } else {
                         $resolverName = $attribute->resolver;
                     }
@@ -94,7 +94,7 @@
                 }
 
                 if (1 < $count && !$metadata->isVariadic()) {
-                    throw new \InvalidArgumentException(sprintf('"%s::resolve()" must yield at most one value for non-variadic arguments.', get_debug_type($resolver)));
+                    throw new \InvalidArgumentException(\sprintf('"%s::resolve()" must yield at most one value for non-variadic arguments.', get_debug_type($resolver)));
                 }
 
                 if ($count) {
@@ -103,11 +103,11 @@
                 }
 
                 if (!$resolver instanceof ValueResolverInterface) {
-                    throw new \InvalidArgumentException(sprintf('"%s::resolve()" must yield at least one value.', get_debug_type($resolver)));
+                    throw new \InvalidArgumentException(\sprintf('"%s::resolve()" must yield at least one value.', get_debug_type($resolver)));
                 }
             }
 
-            throw new \RuntimeException(sprintf('Controller "%s" requires that you provide a value for the "$%s" argument. Either the argument is nullable and no null value has been provided, no default value has been provided or there is a non-optional argument after this one.', $this->getPrettyName($controller), $metadata->getName()));
+            throw new \RuntimeException(\sprintf('Controller "%s" requires that you provide a value for the "$%s" argument. Either the argument is nullable and no null value has been provided, no default value has been provided or there is a non-optional argument after this one.', $this->getPrettyName($controller), $metadata->getName()));
         }
 
         return $arguments;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ContainerControllerResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ContainerControllerResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ContainerControllerResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ContainerControllerResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,16 +48,16 @@
         $this->throwExceptionIfControllerWasRemoved($class, $e);
 
         if ($e instanceof \ArgumentCountError) {
-            throw new \InvalidArgumentException(sprintf('Controller "%s" has required constructor arguments and does not exist in the container. Did you forget to define the controller as a service?', $class), 0, $e);
+            throw new \InvalidArgumentException(\sprintf('Controller "%s" has required constructor arguments and does not exist in the container. Did you forget to define the controller as a service?', $class), 0, $e);
         }
 
-        throw new \InvalidArgumentException(sprintf('Controller "%s" does neither exist as service nor as class.', $class), 0, $e);
+        throw new \InvalidArgumentException(\sprintf('Controller "%s" does neither exist as service nor as class.', $class), 0, $e);
     }
 
     private function throwExceptionIfControllerWasRemoved(string $controller, \Throwable $previous): void
     {
         if ($this->container instanceof Container && isset($this->container->getRemovedIds()[$controller])) {
-            throw new \InvalidArgumentException(sprintf('Controller "%s" cannot be fetched from the container because it is private. Did you forget to tag the service with "controller.service_arguments"?', $controller), 0, $previous);
+            throw new \InvalidArgumentException(\sprintf('Controller "%s" cannot be fetched from the container because it is private. Did you forget to tag the service with "controller.service_arguments"?', $controller), 0, $previous);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -74,7 +74,7 @@
             }
 
             if (!\is_callable($controller)) {
-                throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: ', $request->getPathInfo()).$this->getControllerError($controller));
+                throw new \InvalidArgumentException(\sprintf('The controller for URI "%s" is not callable: ', $request->getPathInfo()).$this->getControllerError($controller));
             }
 
             return $this->checkController($request, $controller);
@@ -82,7 +82,7 @@
 
         if (\is_object($controller)) {
             if (!\is_callable($controller)) {
-                throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: ', $request->getPathInfo()).$this->getControllerError($controller));
+                throw new \InvalidArgumentException(\sprintf('The controller for URI "%s" is not callable: ', $request->getPathInfo()).$this->getControllerError($controller));
             }
 
             return $this->checkController($request, $controller);
@@ -95,11 +95,11 @@
         try {
             $callable = $this->createController($controller);
         } catch (\InvalidArgumentException $e) {
-            throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: ', $request->getPathInfo()).$e->getMessage(), 0, $e);
+            throw new \InvalidArgumentException(\sprintf('The controller for URI "%s" is not callable: ', $request->getPathInfo()).$e->getMessage(), 0, $e);
         }
 
         if (!\is_callable($callable)) {
-            throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: ', $request->getPathInfo()).$this->getControllerError($callable));
+            throw new \InvalidArgumentException(\sprintf('The controller for URI "%s" is not callable: ', $request->getPathInfo()).$this->getControllerError($callable));
         }
 
         return $this->checkController($request, $callable);
@@ -159,19 +159,19 @@
             if (str_contains($callable, '::')) {
                 $callable = explode('::', $callable, 2);
             } else {
-                return sprintf('Function "%s" does not exist.', $callable);
+                return \sprintf('Function "%s" does not exist.', $callable);
             }
         }
 
         if (\is_object($callable)) {
             $availableMethods = $this->getClassMethodsWithoutMagicMethods($callable);
-            $alternativeMsg = $availableMethods ? sprintf(' or use one of the available methods: "%s"', implode('", "', $availableMethods)) : '';
+            $alternativeMsg = $availableMethods ? \sprintf(' or use one of the available methods: "%s"', implode('", "', $availableMethods)) : '';
 
-            return sprintf('Controller class "%s" cannot be called without a method name. You need to implement "__invoke"%s.', get_debug_type($callable), $alternativeMsg);
+            return \sprintf('Controller class "%s" cannot be called without a method name. You need to implement "__invoke"%s.', get_debug_type($callable), $alternativeMsg);
         }
 
         if (!\is_array($callable)) {
-            return sprintf('Invalid type for controller given, expected string, array or object, got "%s".', get_debug_type($callable));
+            return \sprintf('Invalid type for controller given, expected string, array or object, got "%s".', get_debug_type($callable));
         }
 
         if (!isset($callable[0]) || !isset($callable[1]) || 2 !== \count($callable)) {
@@ -181,13 +181,13 @@
         [$controller, $method] = $callable;
 
         if (\is_string($controller) && !class_exists($controller)) {
-            return sprintf('Class "%s" does not exist.', $controller);
+            return \sprintf('Class "%s" does not exist.', $controller);
         }
 
         $className = \is_object($controller) ? get_debug_type($controller) : $controller;
 
         if (method_exists($controller, $method)) {
-            return sprintf('Method "%s" on class "%s" should be public and non-abstract.', $method, $className);
+            return \sprintf('Method "%s" on class "%s" should be public and non-abstract.', $method, $className);
         }
 
         $collection = $this->getClassMethodsWithoutMagicMethods($controller);
@@ -204,12 +204,12 @@
 
         asort($alternatives);
 
-        $message = sprintf('Expected method "%s" on class "%s"', $method, $className);
+        $message = \sprintf('Expected method "%s" on class "%s"', $method, $className);
 
         if (\count($alternatives) > 0) {
-            $message .= sprintf(', did you mean "%s"?', implode('", "', $alternatives));
+            $message .= \sprintf(', did you mean "%s"?', implode('", "', $alternatives));
         } else {
-            $message .= sprintf('. Available methods: "%s".', implode('", "', $collection));
+            $message .= \sprintf('. Available methods: "%s".', implode('", "', $collection));
         }
 
         return $message;
@@ -219,7 +219,7 @@
     {
         $methods = get_class_methods($classOrObject);
 
-        return array_filter($methods, fn (string $method) => 0 !== strncmp($method, '__', 2));
+        return array_filter($methods, static fn (string $method) => 0 !== strncmp($method, '__', 2));
     }
 
     private function checkController(Request $request, callable $controller): callable
@@ -265,7 +265,7 @@
         }
 
         if (str_contains($name, '@anonymous')) {
-            $name = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $name);
+            $name = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', static fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $name);
         }
 
         if (-1 === $request->attributes->get('_check_controller_is_allowed')) {
@@ -274,6 +274,6 @@
             return $controller;
         }
 
-        throw new BadRequestException(sprintf('Callable "%s()" is not allowed as a controller. Did you miss tagging it with "#[AsController]" or registering its type with "%s::allowControllers()"?', $name, self::class));
+        throw new BadRequestException(\sprintf('Callable "%s()" is not allowed as a controller. Did you miss tagging it with "#[AsController]" or registering its type with "%s::allowControllers()"?', $name, self::class));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadata.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadata.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadata.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadata.php	2026-05-20 10:56:49.000000000 +0200
@@ -94,7 +94,7 @@
     public function getDefaultValue(): mixed
     {
         if (!$this->hasDefaultValue) {
-            throw new \LogicException(sprintf('Argument $%s does not have a default value. Use "%s::hasDefaultValue()" to avoid this exception.', $this->name, __CLASS__));
+            throw new \LogicException(\sprintf('Argument $%s does not have a default value. Use "%s::hasDefaultValue()" to avoid this exception.', $this->name, __CLASS__));
         }
 
         return $this->defaultValue;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
         $this->data = [
             'token' => $response->headers->get('X-Debug-Token'),
             'symfony_version' => Kernel::VERSION,
-            'symfony_minor_version' => sprintf('%s.%s', Kernel::MAJOR_VERSION, Kernel::MINOR_VERSION),
+            'symfony_minor_version' => \sprintf('%s.%s', Kernel::MAJOR_VERSION, Kernel::MINOR_VERSION),
             'symfony_lts' => 4 === Kernel::MINOR_VERSION,
             'symfony_state' => $this->determineSymfonyState(),
             'symfony_eom' => $eom->format('F Y'),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,7 +61,7 @@
     protected function getCasters()
     {
         $casters = [
-            '*' => function ($v, array $a, Stub $s, $isNested) {
+            '*' => static function ($v, array $a, Stub $s, $isNested) {
                 if (!$v instanceof Stub) {
                     $b = $a;
                     foreach ($a as $k => $v) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -143,10 +143,7 @@
         $this->clonesIndex = 0;
     }
 
-    /**
-     * @internal
-     */
-    public function __sleep(): array
+    public function __serialize(): array
     {
         if (!$this->dataCount) {
             $this->data = [];
@@ -161,16 +158,12 @@
         $this->dataCount = 0;
         $this->isCollected = true;
 
-        return parent::__sleep();
+        return ['data' => $this->data];
     }
 
-    /**
-     * @internal
-     */
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
-        parent::__wakeup();
-
+        $this->data = array_pop($data) ?? [];
         $charset = array_pop($this->data);
         $fileLinkFormat = array_pop($this->data);
         $this->dataCount = \count($this->data);
@@ -180,7 +173,7 @@
             }
         }
 
-        self::__construct($this->stopwatch, \is_string($fileLinkFormat) || $fileLinkFormat instanceof FileLinkFormatter ? $fileLinkFormat : null, \is_string($charset) ? $charset : null);
+        self::__construct($this->stopwatch ?? null, \is_string($fileLinkFormat) || $fileLinkFormat instanceof FileLinkFormatter ? $fileLinkFormat : null, \is_string($charset) ? $charset : null);
     }
 
     public function getDumpsCount(): int
@@ -196,7 +189,7 @@
             $dumper = new HtmlDumper($data, $this->charset);
             $dumper->setDisplayOptions(['fileLinkFormat' => $this->fileLinkFormat]);
         } else {
-            throw new \InvalidArgumentException(sprintf('Invalid dump format: "%s".', $format));
+            throw new \InvalidArgumentException(\sprintf('Invalid dump format: "%s".', $format));
         }
         $dumps = [];
 
@@ -263,9 +256,9 @@
                         $f = strip_tags($this->style('', $file));
                         $name = strip_tags($this->style('', $name));
                         if ($fmt && $link = \is_string($fmt) ? strtr($fmt, ['%f' => $file, '%l' => $line]) : $fmt->format($file, $line)) {
-                            $name = sprintf('<a href="%s" title="%s">'.$s.'</a>', strip_tags($this->style('', $link)), $f, $name);
+                            $name = \sprintf('<a href="%s" title="%s">'.$s.'</a>', strip_tags($this->style('', $link)), $f, $name);
                         } else {
-                            $name = sprintf('<abbr title="%s">'.$s.'</abbr>', $f, $name);
+                            $name = \sprintf('<abbr title="%s">'.$s.'</abbr>', $f, $name);
                         }
                     } else {
                         $name = $this->style('meta', $name);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
         return $this->data['exception']->getMessage();
     }
 
-    public function getCode(): int
+    public function getCode(): int|string
     {
         return $this->data['exception']->getCode();
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
                 continue;
             }
             if ('request_headers' === $key || 'response_headers' === $key) {
-                $this->data[$key] = array_map(fn ($v) => isset($v[0]) && !isset($v[1]) ? $v[0] : $v, $value);
+                $this->data[$key] = array_map(static fn ($v) => isset($v[0]) && !isset($v[1]) ? $v[0] : $v, $value);
             }
         }
 
@@ -452,7 +452,7 @@
         array_splice($trace, 0, $traceEndIndex);
 
         // Merge identical backtraces generated by internal call reports
-        $name = sprintf('%s:%s', $trace[1]['class'] ?? $trace[0]['file'], $trace[0]['line']);
+        $name = \sprintf('%s:%s', $trace[1]['class'] ?? $trace[0]['file'], $trace[0]['line']);
         if (!\array_key_exists($name, $this->sessionUsages)) {
             $this->sessionUsages[$name] = [
                 'name' => $name,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/RouterDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/RouterDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DataCollector/RouterDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DataCollector/RouterDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
             $this->data['redirect'] = true;
             $this->data['url'] = $response->getTargetUrl();
 
-            if ($this->controllers->contains($request)) {
+            if ($this->controllers->offsetExists($request)) {
                 $this->data['route'] = $this->guessRoute($request, $this->controllers[$request]);
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/FragmentRendererPass.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/FragmentRendererPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/FragmentRendererPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/FragmentRendererPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,10 +41,10 @@
             $class = $container->getParameterBag()->resolveValue($def->getClass());
 
             if (!$r = $container->getReflectionClass($class)) {
-                throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
+                throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
             }
             if (!$r->isSubclassOf(FragmentRendererInterface::class)) {
-                throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $id, FragmentRendererInterface::class));
+                throw new InvalidArgumentException(\sprintf('Service "%s" must implement interface "%s".', $id, FragmentRendererInterface::class));
             }
 
             foreach ($tags as $tag) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
             $class = $parameterBag->resolveValue($class);
 
             if (!$r = $container->getReflectionClass($class)) {
-                throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
+                throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
             }
 
             $controllerClasses[] = $class;
@@ -98,11 +98,11 @@
                 }
                 foreach (['action', 'argument', 'id'] as $k) {
                     if (!isset($attributes[$k][0])) {
-                        throw new InvalidArgumentException(sprintf('Missing "%s" attribute on tag "controller.service_arguments" %s for service "%s".', $k, json_encode($attributes, \JSON_UNESCAPED_UNICODE), $id));
+                        throw new InvalidArgumentException(\sprintf('Missing "%s" attribute on tag "controller.service_arguments" %s for service "%s".', $k, json_encode($attributes, \JSON_UNESCAPED_UNICODE), $id));
                     }
                 }
                 if (!isset($methods[$action = strtolower($attributes['action'])])) {
-                    throw new InvalidArgumentException(sprintf('Invalid "action" attribute on tag "controller.service_arguments" for service "%s": no public "%s()" method found on class "%s".', $id, $attributes['action'], $class));
+                    throw new InvalidArgumentException(\sprintf('Invalid "action" attribute on tag "controller.service_arguments" for service "%s": no public "%s()" method found on class "%s".', $id, $attributes['action'], $class));
                 }
                 [$r, $parameters] = $methods[$action];
                 $found = false;
@@ -118,7 +118,7 @@
                 }
 
                 if (!$found) {
-                    throw new InvalidArgumentException(sprintf('Invalid "controller.service_arguments" tag for service "%s": method "%s()" has no "%s" argument on class "%s".', $id, $r->name, $attributes['argument'], $class));
+                    throw new InvalidArgumentException(\sprintf('Invalid "controller.service_arguments" tag for service "%s": method "%s()" has no "%s" argument on class "%s".', $id, $r->name, $attributes['argument'], $class));
                 }
             }
 
@@ -140,7 +140,7 @@
                         if ('?' !== $target[0]) {
                             $invalidBehavior = ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE;
                         } elseif ('' === $target = (string) substr($target, 1)) {
-                            throw new InvalidArgumentException(sprintf('A "controller.service_arguments" tag must have non-empty "id" attributes for service "%s".', $id));
+                            throw new InvalidArgumentException(\sprintf('A "controller.service_arguments" tag must have non-empty "id" attributes for service "%s".', $id));
                         } elseif ($p->allowsNull() && !$p->isOptional()) {
                             $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE;
                         }
@@ -171,6 +171,7 @@
                     }
 
                     if ($autowireAttributes) {
+                        $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
                         $attribute = $autowireAttributes[0]->newInstance();
                         $value = $parameterBag->resolveValue($attribute->value);
 
@@ -191,7 +192,7 @@
                     }
 
                     if ($type && !$p->isOptional() && !$p->allowsNull() && !class_exists($type) && !interface_exists($type, false)) {
-                        $message = sprintf('Cannot determine controller argument for "%s::%s()": the $%s argument is type-hinted with the non-existent class or interface: "%s".', $class, $r->name, $p->name, $type);
+                        $message = \sprintf('Cannot determine controller argument for "%s::%s()": the $%s argument is type-hinted with the non-existent class or interface: "%s".', $class, $r->name, $p->name, $type);
 
                         // see if the type-hint lives in the same namespace as the controller
                         if (0 === strncmp($type, $class, strrpos($class, '\\'))) {
@@ -203,8 +204,10 @@
 
                         $args[$p->name] = new Reference($erroredId, ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE);
                     } else {
-                        $target = preg_replace('/(^|[(|&])\\\\/', '\1', $target);
-                        $args[$p->name] = $type ? new TypedReference($target, $type, $invalidBehavior, Target::parseName($p)) : new Reference($target, $invalidBehavior);
+                        $targetAttribute = null;
+                        $name = Target::parseName($p, $targetAttribute);
+                        $target = preg_replace('/(^|[(|&])\\\\/', '\\1', $target);
+                        $args[$p->name] = $type ? new TypedReference($target, $type, $invalidBehavior, $name, $targetAttribute ? [$targetAttribute] : []) : new Reference($target, $invalidBehavior);
                     }
                 }
                 // register the maps as a per-method service-locators
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
 
             if (!$argumentLocator->getArgument(0)) {
                 // remove empty argument locators
-                $reason = sprintf('Removing service-argument resolver for controller "%s": no corresponding services exist for the referenced types.', $controller);
+                $reason = \sprintf('Removing service-argument resolver for controller "%s": no corresponding services exist for the referenced types.', $controller);
             } else {
                 // any methods listed for call-at-instantiation cannot be actions
                 $reason = false;
@@ -47,7 +47,7 @@
                 $controllerDef = $container->getDefinition($id);
                 foreach ($controllerDef->getMethodCalls() as [$method]) {
                     if (0 === strcasecmp($action, $method)) {
-                        $reason = sprintf('Removing method "%s" of service "%s" from controller candidates: the method is called at instantiation, thus cannot be an action.', $action, $id);
+                        $reason = \sprintf('Removing method "%s" of service "%s" from controller candidates: the method is called at instantiation, thus cannot be an action.', $action, $id);
                         break;
                     }
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/ResettableServicePass.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/ResettableServicePass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/ResettableServicePass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/DependencyInjection/ResettableServicePass.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
 
             foreach ($tags as $attributes) {
                 if (!isset($attributes['method'])) {
-                    throw new RuntimeException(sprintf('Tag "kernel.reset" requires the "method" attribute to be set on service "%s".', $id));
+                    throw new RuntimeException(\sprintf('Tag "kernel.reset" requires the "method" attribute to be set on service "%s".', $id));
                 }
 
                 if (!isset($methods[$id])) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/EventListener/CacheAttributeListener.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/EventListener/CacheAttributeListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/EventListener/CacheAttributeListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/EventListener/CacheAttributeListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
+use Symfony\Component\HttpFoundation\HeaderBag;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Attribute\Cache;
@@ -123,10 +124,23 @@
 
         unset($this->lastModified[$request]);
         unset($this->etags[$request]);
-        $hasVary = $response->headers->has('Vary');
+        // Check if the response has a Vary header that should be considered, ignoring cases where
+        // it's only 'Accept-Language' and the request has the '_vary_by_language' attribute
+        $hasVary = ['Accept-Language'] === $response->getVary() ? !$request->attributes->get('_vary_by_language') : $response->hasVary();
+        // Check if cache-control directive was set manually in cacheControl (not auto computed)
+        $hasCacheControlDirective = new class($response->headers) extends HeaderBag {
+            public function __construct(private parent $headerBag)
+            {
+            }
+
+            public function __invoke(string $key): bool
+            {
+                return \array_key_exists($key, $this->headerBag->cacheControl);
+            }
+        };
 
         foreach (array_reverse($attributes) as $cache) {
-            if (null !== $cache->smaxage && !$response->headers->hasCacheControlDirective('s-maxage')) {
+            if (null !== $cache->smaxage && !$hasCacheControlDirective('s-maxage')) {
                 $response->setSharedMaxAge($this->toSeconds($cache->smaxage));
             }
 
@@ -134,19 +148,19 @@
                 $response->headers->addCacheControlDirective('must-revalidate');
             }
 
-            if (null !== $cache->maxage && !$response->headers->hasCacheControlDirective('max-age')) {
+            if (null !== $cache->maxage && !$hasCacheControlDirective('max-age')) {
                 $response->setMaxAge($this->toSeconds($cache->maxage));
             }
 
-            if (null !== $cache->maxStale && !$response->headers->hasCacheControlDirective('max-stale')) {
+            if (null !== $cache->maxStale && !$hasCacheControlDirective('max-stale')) {
                 $response->headers->addCacheControlDirective('max-stale', $this->toSeconds($cache->maxStale));
             }
 
-            if (null !== $cache->staleWhileRevalidate && !$response->headers->hasCacheControlDirective('stale-while-revalidate')) {
+            if (null !== $cache->staleWhileRevalidate && !$hasCacheControlDirective('stale-while-revalidate')) {
                 $response->headers->addCacheControlDirective('stale-while-revalidate', $this->toSeconds($cache->staleWhileRevalidate));
             }
 
-            if (null !== $cache->staleIfError && !$response->headers->hasCacheControlDirective('stale-if-error')) {
+            if (null !== $cache->staleIfError && !$hasCacheControlDirective('stale-if-error')) {
                 $response->headers->addCacheControlDirective('stale-if-error', $this->toSeconds($cache->staleIfError));
             }
 
@@ -159,12 +173,14 @@
             }
         }
 
+        $hasPublicOrPrivateCacheControlDirective = $hasCacheControlDirective('public') || $hasCacheControlDirective('private');
+
         foreach ($attributes as $cache) {
-            if (true === $cache->public) {
+            if (true === $cache->public && !$hasPublicOrPrivateCacheControlDirective) {
                 $response->setPublic();
             }
 
-            if (false === $cache->public) {
+            if (false === $cache->public && !$hasPublicOrPrivateCacheControlDirective) {
                 $response->setPrivate();
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/EventListener/ErrorListener.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/EventListener/ErrorListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/EventListener/ErrorListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/EventListener/ErrorListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -90,7 +90,7 @@
 
         $e = FlattenException::createFromThrowable($throwable);
 
-        $this->logException($throwable, sprintf('Uncaught PHP Exception %s: "%s" at %s line %s', $e->getClass(), $e->getMessage(), basename($e->getFile()), $e->getLine()), $logLevel);
+        $this->logException($throwable, \sprintf('Uncaught PHP Exception %s: "%s" at %s line %s', $e->getClass(), $e->getMessage(), basename($e->getFile()), $e->getLine()), $logLevel);
     }
 
     /**
@@ -118,7 +118,7 @@
         } catch (\Exception $e) {
             $f = FlattenException::createFromThrowable($e);
 
-            $this->logException($e, sprintf('Exception thrown when handling an exception (%s: %s at %s line %s)', $f->getClass(), $f->getMessage(), basename($e->getFile()), $e->getLine()));
+            $this->logException($e, \sprintf('Exception thrown when handling an exception (%s: %s at %s line %s)', $f->getClass(), $f->getMessage(), basename($e->getFile()), $e->getLine()));
 
             $prev = $e;
             do {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,12 +41,13 @@
         $this->requestStack = $requestStack;
         $this->router = $router;
         $this->useAcceptLanguageHeader = $useAcceptLanguageHeader;
-        $this->enabledLocales = $enabledLocales;
+        $this->enabledLocales = $enabledLocales ? array_values(array_unique(array_merge([$defaultLocale], $enabledLocales))) : [];
     }
 
     public function setDefaultLocale(KernelEvent $event): void
     {
         $event->getRequest()->setDefaultLocale($this->defaultLocale);
+        $this->setRouterLocale($this->defaultLocale);
     }
 
     public function onKernelRequest(RequestEvent $event): void
@@ -54,14 +55,12 @@
         $request = $event->getRequest();
 
         $this->setLocale($request);
-        $this->setRouterContext($request);
+        $this->setRouterLocale($request->getLocale());
     }
 
     public function onKernelFinishRequest(FinishRequestEvent $event): void
     {
-        if (null !== $parentRequest = $this->requestStack->getParentRequest()) {
-            $this->setRouterContext($parentRequest);
-        }
+        $this->setRouterLocale($this->requestStack->getParentRequest()?->getLocale() ?? $this->defaultLocale);
     }
 
     private function setLocale(Request $request): void
@@ -76,9 +75,9 @@
         }
     }
 
-    private function setRouterContext(Request $request): void
+    private function setRouterLocale(string $locale): void
     {
-        $this->router?->getContext()->setParameter('_locale', $request->getLocale());
+        $this->router?->getContext()->setParameter('_locale', $locale);
     }
 
     public static function getSubscribedEvents(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -118,15 +118,15 @@
             unset($parameters['_route'], $parameters['_controller']);
             $request->attributes->set('_route_params', $parameters);
         } catch (ResourceNotFoundException $e) {
-            $message = sprintf('No route found for "%s %s"', $request->getMethod(), $request->getUriForPath($request->getPathInfo()));
+            $message = \sprintf('No route found for "%s %s"', $request->getMethod(), $request->getUriForPath($request->getPathInfo()));
 
             if ($referer = $request->headers->get('referer')) {
-                $message .= sprintf(' (from "%s")', $referer);
+                $message .= \sprintf(' (from "%s")', $referer);
             }
 
             throw new NotFoundHttpException($message, $e);
         } catch (MethodNotAllowedException $e) {
-            $message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getUriForPath($request->getPathInfo()), implode(', ', $e->getAllowedMethods()));
+            $message = \sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getUriForPath($request->getPathInfo()), implode(', ', $e->getAllowedMethods()));
 
             throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Exception/ResolverNotFoundException.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Exception/ResolverNotFoundException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Exception/ResolverNotFoundException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Exception/ResolverNotFoundException.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
      */
     public function __construct(string $name, array $alternatives = [])
     {
-        $msg = sprintf('You have requested a non-existent resolver "%s".', $name);
+        $msg = \sprintf('You have requested a non-existent resolver "%s".', $name);
         if ($alternatives) {
             if (1 === \count($alternatives)) {
                 $msg .= ' Did you mean this: "';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
         }
 
         if (!isset($this->renderers[$renderer])) {
-            throw new \InvalidArgumentException(sprintf('The "%s" renderer does not exist.', $renderer));
+            throw new \InvalidArgumentException(\sprintf('The "%s" renderer does not exist.', $renderer));
         }
 
         if (!$request = $this->requestStack->getCurrentRequest()) {
@@ -97,7 +97,7 @@
     {
         if (!$response->isSuccessful()) {
             $responseStatusCode = $response->getStatusCode();
-            throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %d).', $this->requestStack->getCurrentRequest()->getUri(), $responseStatusCode), 0, new HttpException($responseStatusCode));
+            throw new \RuntimeException(\sprintf('Error when rendering "%s" (Status code is %d).', $this->requestStack->getCurrentRequest()->getUri(), $responseStatusCode), 0, new HttpException($responseStatusCode));
         }
 
         if (!$response instanceof StreamedResponse) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Fragment/FragmentUriGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Fragment/FragmentUriGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Fragment/FragmentUriGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Fragment/FragmentUriGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
             if (\is_array($value)) {
                 $this->checkNonScalar($value);
             } elseif (!\is_scalar($value) && null !== $value) {
-                throw new \LogicException(sprintf('Controller attributes cannot contain non-scalar/non-null values (value for key "%s" is not a scalar or null).', $key));
+                throw new \LogicException(\sprintf('Controller attributes cannot contain non-scalar/non-null values (value for key "%s" is not a scalar or null).', $key));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,7 +79,7 @@
         if (\count($attributes) > 0) {
             $flags = \ENT_QUOTES | \ENT_SUBSTITUTE;
             foreach ($attributes as $attribute => $value) {
-                $renderedAttributes .= sprintf(
+                $renderedAttributes .= \sprintf(
                     ' %s="%s"',
                     htmlspecialchars($attribute, $flags, $this->charset, false),
                     htmlspecialchars($value, $flags, $this->charset, false)
@@ -87,7 +87,7 @@
             }
         }
 
-        return new Response(sprintf('<hx:include src="%s"%s>%s</hx:include>', $uri, $renderedAttributes, $content));
+        return new Response(\sprintf('<hx:include src="%s"%s>%s</hx:include>', $uri, $renderedAttributes, $content));
     }
 
     public function getName(): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/AbstractSurrogate.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/AbstractSurrogate.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/AbstractSurrogate.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/AbstractSurrogate.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
             return false;
         }
 
-        return str_contains($value, sprintf('%s/1.0', strtoupper($this->getName())));
+        return str_contains($value, \sprintf('%s/1.0', strtoupper($this->getName())));
     }
 
     /**
@@ -65,7 +65,7 @@
     public function addSurrogateCapability(Request $request)
     {
         $current = $request->headers->get('Surrogate-Capability');
-        $new = sprintf('symfony="%s/1.0"', strtoupper($this->getName()));
+        $new = \sprintf('symfony="%s/1.0"', strtoupper($this->getName()));
 
         $request->headers->set('Surrogate-Capability', $current ? $current.', '.$new : $new);
     }
@@ -76,7 +76,7 @@
             return false;
         }
 
-        $pattern = sprintf('#content="[^"]*%s/1.0[^"]*"#', strtoupper($this->getName()));
+        $pattern = \sprintf('#content="[^"]*%s/1.0[^"]*"#', strtoupper($this->getName()));
 
         return (bool) preg_match($pattern, $control);
     }
@@ -89,7 +89,7 @@
             $response = $cache->handle($subRequest, HttpKernelInterface::SUB_REQUEST, true);
 
             if (!$response->isSuccessful() && Response::HTTP_NOT_MODIFIED !== $response->getStatusCode()) {
-                throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %d).', $subRequest->getUri(), $response->getStatusCode()));
+                throw new \RuntimeException(\sprintf('Error when rendering "%s" (Status code is %d).', $subRequest->getUri(), $response->getStatusCode()));
             }
 
             return $response->getContent();
@@ -120,12 +120,12 @@
         $value = $response->headers->get('Surrogate-Control');
         $upperName = strtoupper($this->getName());
 
-        if (sprintf('content="%s/1.0"', $upperName) == $value) {
+        if (\sprintf('content="%s/1.0"', $upperName) == $value) {
             $response->headers->remove('Surrogate-Control');
-        } elseif (preg_match(sprintf('#,\s*content="%s/1.0"#', $upperName), $value)) {
-            $response->headers->set('Surrogate-Control', preg_replace(sprintf('#,\s*content="%s/1.0"#', $upperName), '', $value));
-        } elseif (preg_match(sprintf('#content="%s/1.0",\s*#', $upperName), $value)) {
-            $response->headers->set('Surrogate-Control', preg_replace(sprintf('#content="%s/1.0",\s*#', $upperName), '', $value));
+        } elseif (preg_match(\sprintf('#,\s*content="%s/1.0"#', $upperName), $value)) {
+            $response->headers->set('Surrogate-Control', preg_replace(\sprintf('#,\s*content="%s/1.0"#', $upperName), '', $value));
+        } elseif (preg_match(\sprintf('#content="%s/1.0",\s*#', $upperName), $value)) {
+            $response->headers->set('Surrogate-Control', preg_replace(\sprintf('#content="%s/1.0",\s*#', $upperName), '', $value));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/CacheWasLockedException.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/CacheWasLockedException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/CacheWasLockedException.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/CacheWasLockedException.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,19 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpKernel\HttpCache;
+
+/**
+ * @internal
+ */
+class CacheWasLockedException extends \Exception
+{
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Esi.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Esi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Esi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Esi.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,14 +44,14 @@
 
     public function renderIncludeTag(string $uri, ?string $alt = null, bool $ignoreErrors = true, string $comment = ''): string
     {
-        $html = sprintf('<esi:include src="%s"%s%s />',
+        $html = \sprintf('<esi:include src="%s"%s%s />',
             $uri,
             $ignoreErrors ? ' onerror="continue"' : '',
-            $alt ? sprintf(' alt="%s"', $alt) : ''
+            $alt ? \sprintf(' alt="%s"', $alt) : ''
         );
 
         if (!empty($comment)) {
-            return sprintf("<esi:comment text=\"%s\" />\n%s", $comment, $html);
+            return \sprintf("<esi:comment text=\"%s\" />\n%s", $comment, $html);
         }
 
         return $html;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,6 +39,8 @@
     private ?ResponseCacheStrategyInterface $surrogateCacheStrategy = null;
     private array $options = [];
     private array $traces = [];
+    private ?Request $forwardedRequest = null;
+    private ?Request $backendRequest = null;
 
     /**
      * Constructor.
@@ -158,7 +160,7 @@
     {
         $log = [];
         foreach ($this->traces as $request => $traces) {
-            $log[] = sprintf('%s: %s', $request, implode(', ', $traces));
+            $log[] = \sprintf('%s: %s', $request, implode(', ', $traces));
         }
 
         return implode('; ', $log);
@@ -195,6 +197,8 @@
         // FIXME: catch exceptions and implement a 500 error page here? -> in Varnish, there is a built-in error page mechanism
         if (HttpKernelInterface::MAIN_REQUEST === $type) {
             $this->traces = [];
+            $this->forwardedRequest = null;
+            $this->backendRequest = null;
             // Keep a clone of the original request for surrogates so they can access it.
             // We must clone here to get a separate instance because the application will modify the request during
             // the application flow (we know it always does because we do ourselves by setting REMOTE_ADDR to 127.0.0.1
@@ -219,7 +223,19 @@
             $this->record($request, 'reload');
             $response = $this->fetch($request, $catch);
         } else {
-            $response = $this->lookup($request, $catch);
+            $response = null;
+            do {
+                try {
+                    $response = $this->lookup($request, $catch);
+                } catch (CacheWasLockedException) {
+                }
+            } while (null === $response);
+        }
+
+        if (HttpKernelInterface::MAIN_REQUEST === $type) {
+            // Expose the request actually handled by the backend (a sub-request on a cache miss)
+            // to kernel.terminate listeners, as would happen behind a real reverse proxy.
+            $this->backendRequest = $this->forwardedRequest ?? $request;
         }
 
         $this->restoreResponseBody($request, $response);
@@ -260,7 +276,7 @@
         }
 
         if ($this->getKernel() instanceof TerminableInterface) {
-            $this->getKernel()->terminate($request, $response);
+            $this->getKernel()->terminate($this->backendRequest ?? $request, $response);
         }
     }
 
@@ -474,6 +490,7 @@
 
         // always a "master" request (as the real master request can be in cache)
         $response = SubRequestHandler::handle($this->kernel, $request, HttpKernelInterface::MAIN_REQUEST, $catch);
+        $this->forwardedRequest = $request;
 
         /*
          * Support stale-if-error given on Responses or as a config option.
@@ -576,21 +593,12 @@
 
         // wait for the lock to be released
         if ($this->waitForLock($request)) {
-            // replace the current entry with the fresh one
-            $new = $this->lookup($request);
-            $entry->headers = $new->headers;
-            $entry->setContent($new->getContent());
-            $entry->setStatusCode($new->getStatusCode());
-            $entry->setProtocolVersion($new->getProtocolVersion());
-            foreach ($new->headers->getCookies() as $cookie) {
-                $entry->headers->setCookie($cookie);
-            }
-        } else {
-            // backend is slow as hell, send a 503 response (to avoid the dog pile effect)
-            $entry->setStatusCode(503);
-            $entry->setContent('503 Service Unavailable');
-            $entry->headers->set('Retry-After', 10);
+            throw new CacheWasLockedException(); // unwind back to handle(), try again
         }
+        // backend is slow as hell, send a 503 response (to avoid the dog pile effect)
+        $entry->setStatusCode(503);
+        $entry->setContent('503 Service Unavailable');
+        $entry->headers->set('Retry-After', 10);
 
         return true;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/ResponseCacheStrategy.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/ResponseCacheStrategy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/ResponseCacheStrategy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/ResponseCacheStrategy.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
     private int $embeddedResponses = 0;
     private bool $isNotCacheableResponseEmbedded = false;
     private int $age = 0;
-    private \DateTimeInterface|null|false $lastModified = null;
+    private \DateTimeInterface|false|null $lastModified = null;
     private array $flagDirectives = [
         'no-cache' => null,
         'no-store' => null,
@@ -228,7 +228,7 @@
         }
 
         if (false !== $this->ageDirectives[$directive]) {
-            $value = min($value ?? PHP_INT_MAX, $expires ?? PHP_INT_MAX);
+            $value = min($value ?? \PHP_INT_MAX, $expires ?? \PHP_INT_MAX);
             $value -= $age;
             $this->ageDirectives[$directive] = null !== $this->ageDirectives[$directive] ? min($this->ageDirectives[$directive], $value) : $value;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Ssi.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Ssi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Ssi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Ssi.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
 
     public function renderIncludeTag(string $uri, ?string $alt = null, bool $ignoreErrors = true, string $comment = ''): string
     {
-        return sprintf('<!--#include virtual="%s" -->', $uri);
+        return \sprintf('<!--#include virtual="%s" -->', $uri);
     }
 
     public function process(Request $request, Response $response): Response
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Store.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Store.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Store.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/Store.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,8 +44,8 @@
     public function __construct(string $root, array $options = [])
     {
         $this->root = $root;
-        if (!is_dir($this->root) && !@mkdir($this->root, 0777, true) && !is_dir($this->root)) {
-            throw new \RuntimeException(sprintf('Unable to create the store directory (%s).', $this->root));
+        if (!is_dir($this->root) && !@mkdir($this->root, 0o777, true) && !is_dir($this->root)) {
+            throw new \RuntimeException(\sprintf('Unable to create the store directory (%s).', $this->root));
         }
         $this->keyCache = new \SplObjectStorage();
         $this->options = array_merge([
@@ -80,7 +80,7 @@
 
         if (!isset($this->locks[$key])) {
             $path = $this->getPath($key);
-            if (!is_dir(\dirname($path)) && false === @mkdir(\dirname($path), 0777, true) && !is_dir(\dirname($path))) {
+            if (!is_dir(\dirname($path)) && false === @mkdir(\dirname($path), 0o777, true) && !is_dir(\dirname($path))) {
                 return $path;
             }
             $h = fopen($path, 'c');
@@ -211,13 +211,9 @@
 
         // read existing cache entries, remove non-varying, and add this one to the list
         $entries = [];
-        $vary = $response->headers->get('vary');
+        $vary = implode(', ', $response->headers->all('vary'));
         foreach ($this->getMetadata($key) as $entry) {
-            if (!isset($entry[1]['vary'][0])) {
-                $entry[1]['vary'] = [''];
-            }
-
-            if ($entry[1]['vary'][0] != $vary || !$this->requestsMatch($vary ?? '', $entry[0], $storedEnv)) {
+            if (!$this->requestsMatch($vary ?? '', $entry[0], $storedEnv)) {
                 $entries[] = $entry;
             }
         }
@@ -285,7 +281,7 @@
      */
     private function requestsMatch(?string $vary, array $env1, array $env2): bool
     {
-        if (empty($vary)) {
+        if ('' === ($vary ?? '')) {
             return true;
         }
 
@@ -386,7 +382,7 @@
                 return false;
             }
         } else {
-            if (!is_dir(\dirname($path)) && false === @mkdir(\dirname($path), 0777, true) && !is_dir(\dirname($path))) {
+            if (!is_dir(\dirname($path)) && false === @mkdir(\dirname($path), 0o777, true) && !is_dir(\dirname($path))) {
                 return false;
             }
 
@@ -412,7 +408,7 @@
             }
         }
 
-        @chmod($path, 0666 & ~umask());
+        @chmod($path, 0o666 & ~umask());
 
         return true;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/SubRequestHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/SubRequestHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpCache/SubRequestHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpCache/SubRequestHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,16 +51,16 @@
         $trustedValues = [];
         foreach (array_reverse($request->getClientIps()) as $ip) {
             $trustedIps[] = $ip;
-            $trustedValues[] = sprintf('for="%s"', $ip);
+            $trustedValues[] = \sprintf('for="%s"', $ip);
         }
         if ($ip !== $remoteAddr) {
             $trustedIps[] = $remoteAddr;
-            $trustedValues[] = sprintf('for="%s"', $remoteAddr);
+            $trustedValues[] = \sprintf('for="%s"', $remoteAddr);
         }
 
         // set trusted values, reusing as much as possible the global trusted settings
         if (Request::HEADER_FORWARDED & $trustedHeaderSet) {
-            $trustedValues[0] .= sprintf(';host="%s";proto=%s', $request->getHttpHost(), $request->getScheme());
+            $trustedValues[0] .= \sprintf(';host="%s";proto=%s', $request->getHttpHost(), $request->getScheme());
             $request->headers->set('Forwarded', $v = implode(', ', $trustedValues));
             $request->server->set('HTTP_FORWARDED', $v);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpClientKernel.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpClientKernel.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpClientKernel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpClientKernel.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     public function __construct(?HttpClientInterface $client = null)
     {
         if (null === $client && !class_exists(HttpClient::class)) {
-            throw new \LogicException(sprintf('You cannot use "%s" as the HttpClient component is not installed. Try running "composer require symfony/http-client".', __CLASS__));
+            throw new \LogicException(\sprintf('You cannot use "%s" as the HttpClient component is not installed. Try running "composer require symfony/http-client".', __CLASS__));
         }
 
         $this->client = $client ?? HttpClient::create();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpKernelBrowser.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpKernelBrowser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpKernelBrowser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpKernelBrowser.php	2026-05-20 10:56:49.000000000 +0200
@@ -99,15 +99,15 @@
         }
 
         $code = <<<EOF
-<?php
+            <?php
 
-error_reporting($errorReporting);
+            error_reporting($errorReporting);
 
-$requires
+            $requires
 
-\$kernel = unserialize($kernel);
-\$request = unserialize($request);
-EOF;
+            \$kernel = unserialize($kernel);
+            \$request = unserialize($request);
+            EOF;
 
         return $code.$this->getHandleScript();
     }
@@ -118,14 +118,14 @@
     protected function getHandleScript()
     {
         return <<<'EOF'
-$response = $kernel->handle($request);
+            $response = $kernel->handle($request);
 
-if ($kernel instanceof Symfony\Component\HttpKernel\TerminableInterface) {
-    $kernel->terminate($request, $response);
-}
+            if ($kernel instanceof Symfony\Component\HttpKernel\TerminableInterface) {
+                $kernel->terminate($request, $response);
+            }
 
-echo serialize($response);
-EOF;
+            echo serialize($response);
+            EOF;
     }
 
     protected function filterRequest(DomRequest $request): Request
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpKernel.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpKernel.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/HttpKernel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/HttpKernel.php	2026-05-20 10:56:49.000000000 +0200
@@ -162,7 +162,7 @@
 
         // load controller
         if (false === $controller = $this->resolver->getController($request)) {
-            throw new NotFoundHttpException(sprintf('Unable to find the controller for path "%s". The route is wrongly configured.', $request->getPathInfo()));
+            throw new NotFoundHttpException(\sprintf('Unable to find the controller for path "%s". The route is wrongly configured.', $request->getPathInfo()));
         }
 
         $event = new ControllerEvent($this, $controller, $request, $type);
@@ -188,7 +188,7 @@
             if ($event->hasResponse()) {
                 $response = $event->getResponse();
             } else {
-                $msg = sprintf('The controller must return a "Symfony\Component\HttpFoundation\Response" object but it returned %s.', $this->varToString($response));
+                $msg = \sprintf('The controller must return a "Symfony\Component\HttpFoundation\Response" object but it returned %s.', $this->varToString($response));
 
                 // the user may have forgotten to return something
                 if (null === $response) {
@@ -278,20 +278,20 @@
     private function varToString(mixed $var): string
     {
         if (\is_object($var)) {
-            return sprintf('an object of type %s', $var::class);
+            return \sprintf('an object of type %s', $var::class);
         }
 
         if (\is_array($var)) {
             $a = [];
             foreach ($var as $k => $v) {
-                $a[] = sprintf('%s => ...', $k);
+                $a[] = \sprintf('%s => ...', $k);
             }
 
-            return sprintf('an array ([%s])', mb_substr(implode(', ', $a), 0, 255));
+            return \sprintf('an array ([%s])', mb_substr(implode(', ', $a), 0, 255));
         }
 
         if (\is_resource($var)) {
-            return sprintf('a resource (%s)', get_resource_type($var));
+            return \sprintf('a resource (%s)', get_resource_type($var));
         }
 
         if (null === $var) {
@@ -307,11 +307,11 @@
         }
 
         if (\is_string($var)) {
-            return sprintf('a string ("%s%s")', mb_substr($var, 0, 255), mb_strlen($var) > 255 ? '...' : '');
+            return \sprintf('a string ("%s%s")', mb_substr($var, 0, 255), mb_strlen($var) > 255 ? '...' : '');
         }
 
         if (is_numeric($var)) {
-            return sprintf('a number (%s)', (string) $var);
+            return \sprintf('a number (%s)', (string) $var);
         }
 
         return (string) $var;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Kernel.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Kernel.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Kernel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Kernel.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,17 +70,18 @@
     private ?string $warmupDir = null;
     private int $requestStackSize = 0;
     private bool $resetServices = false;
+    private bool $handlingHttpCache = false;
 
     /**
      * @var array<string, bool>
      */
     private static array $freshCache = [];
 
-    public const VERSION = '6.4.21';
-    public const VERSION_ID = 60421;
+    public const VERSION = '6.4.40';
+    public const VERSION_ID = 60440;
     public const MAJOR_VERSION = 6;
     public const MINOR_VERSION = 4;
-    public const RELEASE_VERSION = 21;
+    public const RELEASE_VERSION = 40;
     public const EXTRA_VERSION = '';
 
     public const END_OF_MAINTENANCE = '11/2026';
@@ -89,7 +90,7 @@
     public function __construct(string $environment, bool $debug)
     {
         if (!$this->environment = $environment) {
-            throw new \InvalidArgumentException(sprintf('Invalid environment provided to "%s": the environment cannot be empty.', get_debug_type($this)));
+            throw new \InvalidArgumentException(\sprintf('Invalid environment provided to "%s": the environment cannot be empty.', get_debug_type($this)));
         }
 
         $this->debug = $debug;
@@ -101,6 +102,7 @@
         $this->container = null;
         $this->requestStackSize = 0;
         $this->resetServices = false;
+        $this->handlingHttpCache = false;
     }
 
     /**
@@ -108,7 +110,7 @@
      */
     public function boot()
     {
-        if (true === $this->booted) {
+        if ($this->booted) {
             if (!$this->requestStackSize && $this->resetServices) {
                 if ($this->container->has('services_resetter')) {
                     $this->container->get('services_resetter')->reset();
@@ -122,7 +124,7 @@
             return;
         }
 
-        if (null === $this->container) {
+        if (!$this->container) {
             $this->preBoot();
         }
 
@@ -149,7 +151,7 @@
      */
     public function terminate(Request $request, Response $response)
     {
-        if (false === $this->booted) {
+        if (!$this->booted) {
             return;
         }
 
@@ -163,7 +165,7 @@
      */
     public function shutdown()
     {
-        if (false === $this->booted) {
+        if (!$this->booted) {
             return;
         }
 
@@ -181,17 +183,26 @@
 
     public function handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response
     {
-        if (!$this->booted) {
-            $container = $this->container ?? $this->preBoot();
+        if (!$this->container) {
+            $this->preBoot();
+        }
 
-            if ($container->has('http_cache')) {
-                return $container->get('http_cache')->handle($request, $type, $catch);
+        if (HttpKernelInterface::MAIN_REQUEST === $type && !$this->handlingHttpCache && $this->container->has('http_cache')) {
+            $this->handlingHttpCache = true;
+
+            try {
+                return $this->container->get('http_cache')->handle($request, $type, $catch);
+            } finally {
+                $this->handlingHttpCache = false;
+                $this->resetServices = true;
             }
         }
 
         $this->boot();
         ++$this->requestStackSize;
-        $this->resetServices = true;
+        if (!$this->handlingHttpCache) {
+            $this->resetServices = true;
+        }
 
         try {
             return $this->getHttpKernel()->handle($request, $type, $catch);
@@ -216,7 +227,7 @@
     public function getBundle(string $name): BundleInterface
     {
         if (!isset($this->bundles[$name])) {
-            throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the "registerBundles()" method of your "%s.php" file?', $name, get_debug_type($this)));
+            throw new \InvalidArgumentException(\sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the "registerBundles()" method of your "%s.php" file?', $name, get_debug_type($this)));
         }
 
         return $this->bundles[$name];
@@ -225,11 +236,11 @@
     public function locateResource(string $name): string
     {
         if ('@' !== $name[0]) {
-            throw new \InvalidArgumentException(sprintf('A resource name must start with @ ("%s" given).', $name));
+            throw new \InvalidArgumentException(\sprintf('A resource name must start with @ ("%s" given).', $name));
         }
 
         if (str_contains($name, '..')) {
-            throw new \RuntimeException(sprintf('File name "%s" contains invalid characters (..).', $name));
+            throw new \RuntimeException(\sprintf('File name "%s" contains invalid characters (..).', $name));
         }
 
         $bundleName = substr($name, 1);
@@ -243,7 +254,7 @@
             return $file;
         }
 
-        throw new \InvalidArgumentException(sprintf('Unable to find file "%s".', $name));
+        throw new \InvalidArgumentException(\sprintf('Unable to find file "%s".', $name));
     }
 
     public function getEnvironment(): string
@@ -265,7 +276,7 @@
             $r = new \ReflectionObject($this);
 
             if (!is_file($dir = $r->getFileName())) {
-                throw new \LogicException(sprintf('Cannot auto-detect project dir for kernel of class "%s".', $r->name));
+                throw new \LogicException(\sprintf('Cannot auto-detect project dir for kernel of class "%s".', $r->name));
             }
 
             $dir = $rootDir = \dirname($dir);
@@ -295,7 +306,7 @@
      */
     public function setAnnotatedClassCache(array $annotatedClasses): void
     {
-        file_put_contents(($this->warmupDir ?: $this->getBuildDir()).'/annotations.map', sprintf('<?php return %s;', var_export($annotatedClasses, true)));
+        file_put_contents(($this->warmupDir ?: $this->getBuildDir()).'/annotations.map', \sprintf('<?php return %s;', var_export($annotatedClasses, true)));
     }
 
     public function getStartTime(): float
@@ -346,7 +357,7 @@
         foreach ($this->registerBundles() as $bundle) {
             $name = $bundle->getName();
             if (isset($this->bundles[$name])) {
-                throw new \LogicException(sprintf('Trying to register two bundles with the same name "%s".', $name));
+                throw new \LogicException(\sprintf('Trying to register two bundles with the same name "%s".', $name));
             }
             $this->bundles[$name] = $bundle;
         }
@@ -375,7 +386,7 @@
         $class = str_replace('\\', '_', $class).ucfirst($this->environment).($this->debug ? 'Debug' : '').'Container';
 
         if (!preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $class)) {
-            throw new \InvalidArgumentException(sprintf('The environment "%s" contains invalid characters, it can only contain characters allowed in PHP class names.', $this->environment));
+            throw new \InvalidArgumentException(\sprintf('The environment "%s" contains invalid characters, it can only contain characters allowed in PHP class names.', $this->environment));
         }
 
         return $class;
@@ -426,7 +437,7 @@
         $oldContainer = \is_object($this->container) ? new \ReflectionClass($this->container) : $this->container = null;
 
         try {
-            is_dir($buildDir) ?: mkdir($buildDir, 0777, true);
+            is_dir($buildDir) ?: mkdir($buildDir, 0o777, true);
 
             if ($lock = fopen($cachePath.'.lock', 'w+')) {
                 if (!flock($lock, \LOCK_EX | \LOCK_NB, $wouldBlock) && !flock($lock, $wouldBlock ? \LOCK_SH : \LOCK_EX)) {
@@ -449,7 +460,7 @@
 
         if ($collectDeprecations = $this->debug && !\defined('PHPUNIT_COMPOSER_INSTALL')) {
             $collectedLogs = [];
-            $previousHandler = set_error_handler(function ($type, $message, $file, $line) use (&$collectedLogs, &$previousHandler) {
+            $previousHandler = set_error_handler(static function ($type, $message, $file, $line) use (&$collectedLogs, &$previousHandler) {
                 if (\E_USER_DEPRECATED !== $type && \E_DEPRECATED !== $type) {
                     return $previousHandler ? $previousHandler($type, $message, $file, $line) : false;
                 }
@@ -603,11 +614,11 @@
     {
         foreach (['cache' => $this->getCacheDir(), 'build' => $this->warmupDir ?: $this->getBuildDir(), 'logs' => $this->getLogDir()] as $name => $dir) {
             if (!is_dir($dir)) {
-                if (false === @mkdir($dir, 0777, true) && !is_dir($dir)) {
-                    throw new \RuntimeException(sprintf('Unable to create the "%s" directory (%s).', $name, $dir));
+                if (!@mkdir($dir, 0o777, true) && !is_dir($dir)) {
+                    throw new \RuntimeException(\sprintf('Unable to create the "%s" directory (%s).', $name, $dir));
                 }
             } elseif (!is_writable($dir)) {
-                throw new \RuntimeException(sprintf('Unable to write in the "%s" directory (%s).', $name, $dir));
+                throw new \RuntimeException(\sprintf('Unable to write in the "%s" directory (%s).', $name, $dir));
             }
         }
 
@@ -725,7 +736,7 @@
 
         foreach ($content as $file => $code) {
             $fs->dumpFile($dir.$file, $code);
-            @chmod($dir.$file, 0666 & ~umask());
+            @chmod($dir.$file, 0o666 & ~umask());
         }
         $legacyFile = \dirname($dir.key($content)).'.legacy';
         if (is_file($legacyFile)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Log/Logger.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Log/Logger.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Log/Logger.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Log/Logger.php	2026-05-20 10:56:49.000000000 +0200
@@ -74,13 +74,13 @@
         }
 
         if (!isset(self::LEVELS[$minLevel])) {
-            throw new InvalidArgumentException(sprintf('The log level "%s" does not exist.', $minLevel));
+            throw new InvalidArgumentException(\sprintf('The log level "%s" does not exist.', $minLevel));
         }
 
         $this->minLevelIndex = self::LEVELS[$minLevel];
         $this->formatter = null !== $formatter ? $formatter(...) : $this->format(...);
         if ($output && false === $this->handle = \is_string($output) ? @fopen($output, 'a') : $output) {
-            throw new InvalidArgumentException(sprintf('Unable to open "%s".', $output));
+            throw new InvalidArgumentException(\sprintf('Unable to open "%s".', $output));
         }
         $this->debug = $debug;
     }
@@ -93,7 +93,7 @@
     public function log($level, $message, array $context = []): void
     {
         if (!isset(self::LEVELS[$level])) {
-            throw new InvalidArgumentException(sprintf('The log level "%s" does not exist.', $level));
+            throw new InvalidArgumentException(\sprintf('The log level "%s" does not exist.', $level));
         }
 
         if (self::LEVELS[$level] < $this->minLevelIndex) {
@@ -155,7 +155,7 @@
             $message = strtr($message, $replacements);
         }
 
-        $log = sprintf('[%s] %s', $level, $message);
+        $log = \sprintf('[%s] %s', $level, $message);
         if ($prefixDate) {
             $log = date(\DateTimeInterface::RFC3339).' '.$log;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,12 +33,12 @@
     public function __construct(string $dsn)
     {
         if (!str_starts_with($dsn, 'file:')) {
-            throw new \RuntimeException(sprintf('Please check your configuration. You are trying to use FileStorage with an invalid dsn "%s". The expected format is "file:/path/to/the/storage/folder".', $dsn));
+            throw new \RuntimeException(\sprintf('Please check your configuration. You are trying to use FileStorage with an invalid dsn "%s". The expected format is "file:/path/to/the/storage/folder".', $dsn));
         }
         $this->folder = substr($dsn, 5);
 
-        if (!is_dir($this->folder) && false === @mkdir($this->folder, 0777, true) && !is_dir($this->folder)) {
-            throw new \RuntimeException(sprintf('Unable to create the storage directory (%s).', $this->folder));
+        if (!is_dir($this->folder) && false === @mkdir($this->folder, 0o777, true) && !is_dir($this->folder)) {
+            throw new \RuntimeException(\sprintf('Unable to create the storage directory (%s).', $this->folder));
         }
     }
 
@@ -143,8 +143,8 @@
         if (!$profileIndexed) {
             // Create directory
             $dir = \dirname($file);
-            if (!is_dir($dir) && false === @mkdir($dir, 0777, true) && !is_dir($dir)) {
-                throw new \RuntimeException(sprintf('Unable to create the storage directory (%s).', $dir));
+            if (!is_dir($dir) && false === @mkdir($dir, 0o777, true) && !is_dir($dir)) {
+                throw new \RuntimeException(\sprintf('Unable to create the storage directory (%s).', $dir));
             }
         }
 
@@ -152,7 +152,7 @@
         // when there are errors in sub-requests, the parent and/or children tokens
         // may equal the profile token, resulting in infinite loops
         $parentToken = $profile->getParentToken() !== $profileToken ? $profile->getParentToken() : null;
-        $childrenToken = array_filter(array_map(fn (Profile $p) => $profileToken !== $p->getToken() ? $p->getToken() : null, $profile->getChildren()));
+        $childrenToken = array_filter(array_map(static fn (Profile $p) => $profileToken !== $p->getToken() ? $p->getToken() : null, $profile->getChildren()));
 
         // Store profile
         $data = [
@@ -196,7 +196,7 @@
             ], ',', '"', '\\');
             fclose($file);
 
-            if (1 === mt_rand(1, 10)) {
+            if (1 === random_int(1, 10)) {
                 $this->removeExpiredProfiles();
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Profiler/Profile.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Profiler/Profile.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Profiler/Profile.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Profiler/Profile.php	2026-05-20 10:56:49.000000000 +0200
@@ -232,7 +232,7 @@
     public function getCollector(string $name): DataCollectorInterface
     {
         if (!isset($this->collectors[$name])) {
-            throw new \InvalidArgumentException(sprintf('Collector "%s" does not exist.', $name));
+            throw new \InvalidArgumentException(\sprintf('Collector "%s" does not exist.', $name));
         }
 
         return $this->collectors[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Profiler/Profiler.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Profiler/Profiler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Profiler/Profiler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Profiler/Profiler.php	2026-05-20 10:56:49.000000000 +0200
@@ -239,7 +239,7 @@
     public function get(string $name): DataCollectorInterface
     {
         if (!isset($this->collectors[$name])) {
-            throw new \InvalidArgumentException(sprintf('Collector "%s" does not exist.', $name));
+            throw new \InvalidArgumentException(\sprintf('Collector "%s" does not exist.', $name));
         }
 
         return $this->collectors[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/NotTaggedControllerValueResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/NotTaggedControllerValueResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/NotTaggedControllerValueResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/NotTaggedControllerValueResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,8 +40,8 @@
     public function testDoNotSupportWhenControllerExists()
     {
         $resolver = new NotTaggedControllerValueResolver(new ServiceLocator([
-            'App\\Controller\\Mine::method' => fn () => new ServiceLocator([
-                'dummy' => fn () => new \stdClass(),
+            'App\\Controller\\Mine::method' => static fn () => new ServiceLocator([
+                'dummy' => static fn () => new \stdClass(),
             ]),
         ]));
         $argument = new ArgumentMetadata('dummy', \stdClass::class, false, false, null);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/QueryParameterValueResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/QueryParameterValueResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/QueryParameterValueResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/QueryParameterValueResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,8 +47,8 @@
      *   Request,
      *   ArgumentMetadata,
      *   array<mixed>,
-     *   null|class-string<\Exception>,
-     *   null|string
+     *   class-string<\Exception>|null,
+     *   string|null
      * }>
      */
     public static function provideTestResolve(): iterable
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/RequestPayloadValueResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/RequestPayloadValueResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/RequestPayloadValueResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/RequestPayloadValueResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,6 +27,7 @@
 use Symfony\Component\Serializer\Encoder\XmlEncoder;
 use Symfony\Component\Serializer\Exception\NotNormalizableValueException;
 use Symfony\Component\Serializer\Exception\PartialDenormalizationException;
+use Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer;
 use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
 use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
 use Symfony\Component\Serializer\Serializer;
@@ -44,7 +45,7 @@
     {
         $resolver = new RequestPayloadValueResolver(
             new Serializer(),
-            $this->createMock(ValidatorInterface::class),
+            (new ValidatorBuilder())->getValidator(),
         );
 
         $argument = new ArgumentMetadata('notTyped', null, false, false, null, false, [
@@ -52,9 +53,9 @@
         ]);
         $request = Request::create('/', 'POST', server: ['HTTP_CONTENT_TYPE' => 'application/json']);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $this->expectException(\LogicException::class);
         $this->expectExceptionMessage('Could not resolve the "$notTyped" controller argument: argument should be typed.');
@@ -77,9 +78,9 @@
         ]);
         $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json']);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $resolver->onKernelControllerArguments($event);
 
@@ -101,9 +102,9 @@
         ]);
         $request = Request::create('/', 'GET');
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $resolver->onKernelControllerArguments($event);
 
@@ -123,9 +124,9 @@
         ]);
         $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json']);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $resolver->onKernelControllerArguments($event);
 
@@ -145,9 +146,9 @@
         ]);
         $request = Request::create('/', 'GET');
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $resolver->onKernelControllerArguments($event);
 
@@ -167,18 +168,40 @@
         ]);
         $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json']);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $this->assertSame(422, $e->getStatusCode());
         }
     }
 
+    public function testRequestPayloadWithoutContentTypeOnNullableArgumentReturnsNull()
+    {
+        $validator = $this->createMock(ValidatorInterface::class);
+        $validator->expects($this->never())
+            ->method('validate');
+
+        $resolver = new RequestPayloadValueResolver(new Serializer(), $validator);
+
+        $argument = new ArgumentMetadata('valid', RequestPayload::class, false, false, null, true, [
+            MapRequestPayload::class => new MapRequestPayload(),
+        ]);
+        $request = Request::create('/', 'POST');
+
+        $kernel = $this->createStub(HttpKernelInterface::class);
+        $arguments = $resolver->resolve($request, $argument);
+        $event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+
+        $resolver->onKernelControllerArguments($event);
+
+        $this->assertSame([null], $event->getArguments());
+    }
+
     public function testQueryNullPayloadAndNotDefaultOrNullableArgument()
     {
         $validator = $this->createMock(ValidatorInterface::class);
@@ -192,13 +215,13 @@
         ]);
         $request = Request::create('/', 'GET');
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $this->assertSame(404, $e->getStatusCode());
         }
@@ -216,13 +239,13 @@
         ]);
         $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json'], content: $content);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $this->assertInstanceOf(PartialDenormalizationException::class, $e->getPrevious());
         }
@@ -244,18 +267,52 @@
         ]);
         $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json'], content: $content);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
+        $arguments = $resolver->resolve($request, $argument);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+
+        try {
+            $resolver->onKernelControllerArguments($event);
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
+        } catch (HttpException $e) {
+            $validationFailedException = $e->getPrevious();
+            $this->assertSame(422, $e->getStatusCode());
+            $this->assertInstanceOf(ValidationFailedException::class, $validationFailedException);
+            $this->assertSame(\sprintf('This value should be of type %s.', class_exists(InvalidTypeException::class) ? 'string' : 'unknown'), $validationFailedException->getViolations()[0]->getMessage());
+        }
+    }
+
+    public function testValidationFailedOnInvalidBackedEnum()
+    {
+        $content = '{"method": "INVALID"}';
+        $serializer = new Serializer([new BackedEnumNormalizer(), new ObjectNormalizer()], ['json' => new JsonEncoder()]);
+
+        $validator = $this->createMock(ValidatorInterface::class);
+        $validator->expects($this->never())
+            ->method('validate');
+
+        $resolver = new RequestPayloadValueResolver($serializer, $validator);
+
+        $argument = new ArgumentMetadata('invalid', RequestPayloadWithBackedEnum::class, false, false, null, false, [
+            MapRequestPayload::class => new MapRequestPayload(),
+        ]);
+        $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json'], content: $content);
+
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $validationFailedException = $e->getPrevious();
             $this->assertSame(422, $e->getStatusCode());
             $this->assertInstanceOf(ValidationFailedException::class, $validationFailedException);
-            $this->assertSame(sprintf('This value should be of type %s.', class_exists(InvalidTypeException::class) ? 'string' : 'unknown'), $validationFailedException->getViolations()[0]->getMessage());
+            $this->assertContains($validationFailedException->getViolations()[0]->getMessage(), [
+                'This value should be of type int|string.',
+                'The data must belong to a backed enumeration of type Symfony\\Component\\HttpKernel\\Tests\\Controller\\ArgumentResolver\\RequestMethod',
+            ]);
         }
     }
 
@@ -275,13 +332,13 @@
         ]);
         $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json'], content: $content);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $validationFailedException = $e->getPrevious();
             $this->assertInstanceOf(ValidationFailedException::class, $validationFailedException);
@@ -300,13 +357,13 @@
         ]);
         $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'foo/bar'], content: 'foo-bar');
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $this->assertSame(415, $e->getStatusCode());
         }
@@ -330,9 +387,9 @@
         ]);
         $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json'], content: $content);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $resolver->onKernelControllerArguments($event);
 
@@ -347,7 +404,7 @@
     {
         $this->expectException(HttpException::class);
         $this->expectExceptionMessage('This value was of an unexpected type.');
-        $serializer = $this->createMock(SerializerDenormalizer::class);
+        $serializer = $this->createStub(SerializerDenormalizer::class);
 
         if (null === $types) {
             $exception = new NotNormalizableValueException('Error with no types');
@@ -356,13 +413,13 @@
         }
         $serializer->method('deserialize')->willThrowException(new PartialDenormalizationException([], [$exception]));
 
-        $resolver = new RequestPayloadValueResolver($serializer, $this->createMock(ValidatorInterface::class));
+        $resolver = new RequestPayloadValueResolver($serializer, (new ValidatorBuilder())->getValidator());
         $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json'], content: '{"price": 50}');
 
         $arguments = $resolver->resolve($request, new ArgumentMetadata('valid', RequestPayload::class, false, false, null, false, [
             MapRequestPayload::class => new MapRequestPayload(),
         ]));
-        $event = new ControllerArgumentsEvent($this->createMock(HttpKernelInterface::class), function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($this->createStub(HttpKernelInterface::class), static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $resolver->onKernelControllerArguments($event);
     }
@@ -386,9 +443,9 @@
         ]);
         $request = Request::create('/', 'GET', $query);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $resolver->onKernelControllerArguments($event);
 
@@ -413,13 +470,13 @@
 
         $request = Request::create('/', 'GET', $query);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $validationFailedException = $e->getPrevious();
             $this->assertInstanceOf(ValidationFailedException::class, $validationFailedException);
@@ -446,9 +503,9 @@
         ]);
         $request = Request::create('/', 'POST', $input);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $resolver->onKernelControllerArguments($event);
 
@@ -473,13 +530,13 @@
 
         $request = Request::create('/', 'POST', $input);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $validationFailedException = $e->getPrevious();
             $this->assertInstanceOf(ValidationFailedException::class, $validationFailedException);
@@ -490,7 +547,7 @@
     public function testItThrowsOnVariadicArgument()
     {
         $serializer = new Serializer();
-        $validator = $this->createMock(ValidatorInterface::class);
+        $validator = (new ValidatorBuilder())->getValidator();
         $resolver = new RequestPayloadValueResolver($serializer, $validator);
 
         $argument = new ArgumentMetadata('variadic', RequestPayload::class, true, false, null, false, [
@@ -519,9 +576,9 @@
             MapRequestPayload::class => new MapRequestPayload(acceptFormat: $acceptFormat),
         ]);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $resolver->onKernelControllerArguments($event);
 
@@ -582,13 +639,13 @@
             MapRequestPayload::class => new MapRequestPayload(acceptFormat: $acceptFormat),
         ]);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $this->assertSame(415, $e->getStatusCode());
             $this->assertSame($expectedExceptionMessage, $e->getMessage());
@@ -653,9 +710,9 @@
             $attribute::class => $attribute,
         ]);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         $resolver->onKernelControllerArguments($event);
 
@@ -678,13 +735,13 @@
         ]);
         $request = Request::create('/', $method, $input);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $validationFailedException = $e->getPrevious();
             $this->assertInstanceOf(ValidationFailedException::class, $validationFailedException);
@@ -743,13 +800,13 @@
         ]);
         $request = Request::create('/?page=123');
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $validationFailedException = $e->getPrevious();
             $this->assertSame(400, $e->getStatusCode());
@@ -774,20 +831,98 @@
         ]);
         $request = Request::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json'], content: $content);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $arguments = $resolver->resolve($request, $argument);
-        $event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
 
         try {
             $resolver->onKernelControllerArguments($event);
-            $this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
+            $this->fail(\sprintf('Expected "%s" to be thrown.', HttpException::class));
         } catch (HttpException $e) {
             $validationFailedException = $e->getPrevious();
             $this->assertSame(400, $e->getStatusCode());
             $this->assertInstanceOf(ValidationFailedException::class, $validationFailedException);
-            $this->assertSame(sprintf('This value should be of type %s.', class_exists(InvalidTypeException::class) ? 'string' : 'unknown'), $validationFailedException->getViolations()[0]->getMessage());
+            $this->assertSame(\sprintf('This value should be of type %s.', class_exists(InvalidTypeException::class) ? 'string' : 'unknown'), $validationFailedException->getViolations()[0]->getMessage());
         }
     }
+
+    public function testMapRequestPayloadWithPreParsedJsonIntCoercesToFloat()
+    {
+        $serializer = new Serializer(
+            [new ObjectNormalizer(null, null, null, new ReflectionExtractor())],
+            ['json' => new JsonEncoder()]
+        );
+
+        $resolver = new RequestPayloadValueResolver($serializer);
+
+        $argument = new ArgumentMetadata('payload', RequestPayload::class, false, false, null, false, [
+            MapRequestPayload::class => new MapRequestPayload(),
+        ]);
+        $request = new Request([], ['price' => 0], [], [], [], ['CONTENT_TYPE' => 'application/json']);
+
+        $kernel = $this->createStub(HttpKernelInterface::class);
+        $arguments = $resolver->resolve($request, $argument);
+        $event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+
+        $resolver->onKernelControllerArguments($event);
+
+        /** @var RequestPayload $payload */
+        [$payload] = $event->getArguments();
+        $this->assertInstanceOf(RequestPayload::class, $payload);
+        $this->assertSame(0.0, $payload->price);
+    }
+
+    public function testMapRequestPayloadWithFormDataCoercesStringToBool()
+    {
+        $serializer = new Serializer(
+            [new ObjectNormalizer(null, null, null, new ReflectionExtractor())],
+            []
+        );
+
+        $resolver = new RequestPayloadValueResolver($serializer);
+
+        $argument = new ArgumentMetadata('payload', FormPayloadWithBool::class, false, false, null, false, [
+            MapRequestPayload::class => new MapRequestPayload(),
+        ]);
+        $request = new Request([], ['active' => '0'], [], [], [], ['CONTENT_TYPE' => 'application/x-www-form-urlencoded']);
+
+        $kernel = $this->createStub(HttpKernelInterface::class);
+        $arguments = $resolver->resolve($request, $argument);
+        $event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+
+        $resolver->onKernelControllerArguments($event);
+
+        /** @var FormPayloadWithBool $payload */
+        [$payload] = $event->getArguments();
+        $this->assertInstanceOf(FormPayloadWithBool::class, $payload);
+        $this->assertFalse($payload->active);
+    }
+
+    public function testMapRequestPayloadWithJsonContentTypeStringValuesCoercesToBool()
+    {
+        $serializer = new Serializer(
+            [new ObjectNormalizer(null, null, null, new ReflectionExtractor())],
+            []
+        );
+
+        $resolver = new RequestPayloadValueResolver($serializer);
+
+        $argument = new ArgumentMetadata('payload', FormPayloadWithBool::class, false, false, null, false, [
+            MapRequestPayload::class => new MapRequestPayload(),
+        ]);
+        $request = new Request([], ['active' => '0'], [], [], [], ['CONTENT_TYPE' => 'application/json']);
+
+        $kernel = $this->createStub(HttpKernelInterface::class);
+        $arguments = $resolver->resolve($request, $argument);
+        $event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
+
+        $resolver->onKernelControllerArguments($event);
+
+        /** @var FormPayloadWithBool $payload */
+        [$payload] = $event->getArguments();
+        $this->assertInstanceOf(FormPayloadWithBool::class, $payload);
+        $this->assertFalse($payload->active);
+    }
 }
 
 class RequestPayload
@@ -831,3 +966,23 @@
         return $this->password;
     }
 }
+
+class RequestPayloadWithBackedEnum
+{
+    public function __construct(public readonly RequestMethod $method)
+    {
+    }
+}
+
+enum RequestMethod: string
+{
+    case GET = 'GET';
+    case POST = 'POST';
+}
+
+class FormPayloadWithBool
+{
+    public function __construct(public readonly bool $active)
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/RequestValueResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/RequestValueResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/RequestValueResolverTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/RequestValueResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,70 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpKernel\Tests\Controller\ArgumentResolver;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver;
+use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
+use Symfony\Component\HttpKernel\Tests\Fixtures\Controller\ExtendingRequest;
+
+class RequestValueResolverTest extends TestCase
+{
+    public function testResolveReturnsMainRequest()
+    {
+        $resolver = new RequestValueResolver();
+        $request = Request::create('/');
+        $metadata = new ArgumentMetadata('request', Request::class, false, false, null);
+
+        $this->assertSame([$request], $resolver->resolve($request, $metadata));
+    }
+
+    public function testResolveSkipsUnrelatedTypes()
+    {
+        $resolver = new RequestValueResolver();
+        $request = Request::create('/');
+        $metadata = new ArgumentMetadata('foo', \stdClass::class, false, false, null);
+
+        $this->assertSame([], $resolver->resolve($request, $metadata));
+    }
+
+    public function testResolveSupportsExtendingRequest()
+    {
+        $resolver = new RequestValueResolver();
+        $request = new ExtendingRequest();
+        $metadata = new ArgumentMetadata('request', ExtendingRequest::class, false, false, null);
+
+        $this->assertSame([$request], $resolver->resolve($request, $metadata));
+    }
+
+    public function testResolveDefersWhenMatchingNamedAttributeExists()
+    {
+        $resolver = new RequestValueResolver();
+        $request = Request::create('/');
+        $request->attributes->set('request', Request::create('/other'));
+
+        $metadata = new ArgumentMetadata('request', Request::class, false, false, null);
+
+        $this->assertSame([], $resolver->resolve($request, $metadata));
+    }
+
+    public function testResolveIgnoresUnrelatedAttributeName()
+    {
+        $resolver = new RequestValueResolver();
+        $request = Request::create('/');
+        $request->attributes->set('foo', Request::create('/other'));
+
+        $metadata = new ArgumentMetadata('request', Request::class, false, false, null);
+
+        $this->assertSame([$request], $resolver->resolve($request, $metadata));
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/ServiceValueResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/ServiceValueResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/ServiceValueResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/ServiceValueResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,8 +40,8 @@
     public function testExistingController()
     {
         $resolver = new ServiceValueResolver(new ServiceLocator([
-            'App\\Controller\\Mine::method' => fn () => new ServiceLocator([
-                'dummy' => fn () => new DummyService(),
+            'App\\Controller\\Mine::method' => static fn () => new ServiceLocator([
+                'dummy' => static fn () => new DummyService(),
             ]),
         ]));
 
@@ -54,8 +54,8 @@
     public function testExistingControllerWithATrailingBackSlash()
     {
         $resolver = new ServiceValueResolver(new ServiceLocator([
-            'App\\Controller\\Mine::method' => fn () => new ServiceLocator([
-                'dummy' => fn () => new DummyService(),
+            'App\\Controller\\Mine::method' => static fn () => new ServiceLocator([
+                'dummy' => static fn () => new DummyService(),
             ]),
         ]));
 
@@ -68,8 +68,8 @@
     public function testExistingControllerWithMethodNameStartUppercase()
     {
         $resolver = new ServiceValueResolver(new ServiceLocator([
-            'App\\Controller\\Mine::method' => fn () => new ServiceLocator([
-                'dummy' => fn () => new DummyService(),
+            'App\\Controller\\Mine::method' => static fn () => new ServiceLocator([
+                'dummy' => static fn () => new DummyService(),
             ]),
         ]));
         $request = $this->requestWithAttributes(['_controller' => 'App\\Controller\\Mine::Method']);
@@ -81,8 +81,8 @@
     public function testControllerNameIsAnArray()
     {
         $resolver = new ServiceValueResolver(new ServiceLocator([
-            'App\\Controller\\Mine::method' => fn () => new ServiceLocator([
-                'dummy' => fn () => new DummyService(),
+            'App\\Controller\\Mine::method' => static fn () => new ServiceLocator([
+                'dummy' => static fn () => new DummyService(),
             ]),
         ]));
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/SessionValueResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/SessionValueResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/SessionValueResolverTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/SessionValueResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,70 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpKernel\Tests\Controller\ArgumentResolver;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Session\Session;
+use Symfony\Component\HttpFoundation\Session\SessionInterface;
+use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
+use Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver;
+use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
+
+class SessionValueResolverTest extends TestCase
+{
+    public function testResolveReturnsSession()
+    {
+        $resolver = new SessionValueResolver();
+        $session = new Session(new MockArraySessionStorage());
+        $request = Request::create('/');
+        $request->setSession($session);
+
+        $metadata = new ArgumentMetadata('session', SessionInterface::class, false, false, null);
+
+        $this->assertSame([$session], $resolver->resolve($request, $metadata));
+    }
+
+    public function testResolveSkipsWhenNoSession()
+    {
+        $resolver = new SessionValueResolver();
+        $request = Request::create('/');
+
+        $metadata = new ArgumentMetadata('session', SessionInterface::class, false, false, null);
+
+        $this->assertSame([], $resolver->resolve($request, $metadata));
+    }
+
+    public function testResolveSkipsUnrelatedTypes()
+    {
+        $resolver = new SessionValueResolver();
+        $session = new Session(new MockArraySessionStorage());
+        $request = Request::create('/');
+        $request->setSession($session);
+
+        $metadata = new ArgumentMetadata('foo', \stdClass::class, false, false, null);
+
+        $this->assertSame([], $resolver->resolve($request, $metadata));
+    }
+
+    public function testResolveDefersWhenMatchingNamedAttributeExists()
+    {
+        $resolver = new SessionValueResolver();
+        $session = new Session(new MockArraySessionStorage());
+        $request = Request::create('/');
+        $request->setSession($session);
+        $request->attributes->set('session', new Session(new MockArraySessionStorage()));
+
+        $metadata = new ArgumentMetadata('session', SessionInterface::class, false, false, null);
+
+        $this->assertSame([], $resolver->resolve($request, $metadata));
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     public static function getResolver(array $chainableResolvers = [], ?array $namedResolvers = null): ArgumentResolver
     {
         if (null !== $namedResolvers) {
-            $namedResolvers = new ServiceLocator(array_map(fn ($resolver) => fn () => $resolver, $namedResolvers));
+            $namedResolvers = new ServiceLocator(array_map(static fn ($resolver) => static fn () => $resolver, $namedResolvers));
         }
 
         return new ArgumentResolver(new ArgumentMetadataFactory(), $chainableResolvers, $namedResolvers);
@@ -88,7 +88,7 @@
     {
         $request = Request::create('/');
         $request->attributes->set('foo', 'foo');
-        $controller = function ($foo) {};
+        $controller = static function ($foo) {};
 
         $this->assertEquals(['foo'], self::getResolver()->getArguments($request, $controller));
     }
@@ -97,7 +97,7 @@
     {
         $request = Request::create('/');
         $request->attributes->set('foo', 'foo');
-        $controller = function ($foo, $bar = 'bar') {};
+        $controller = static function ($foo, $bar = 'bar') {};
 
         $this->assertEquals(['foo', 'bar'], self::getResolver()->getArguments($request, $controller));
     }
@@ -248,7 +248,7 @@
 
     public function testGetSessionArgumentsWithInterface()
     {
-        $session = $this->createMock(SessionInterface::class);
+        $session = new Session(new MockArraySessionStorage());
         $request = Request::create('/');
         $request->setSession($session);
         $controller = (new ArgumentResolverTestController())->controllerWithSessionInterface(...);
@@ -259,7 +259,7 @@
     public function testGetSessionMissMatchWithInterface()
     {
         $this->expectException(\RuntimeException::class);
-        $session = $this->createMock(SessionInterface::class);
+        $session = new Session(new MockArraySessionStorage());
         $request = Request::create('/');
         $request->setSession($session);
         $controller = (new ArgumentResolverTestController())->controllerWithExtendingSession(...);
@@ -432,13 +432,13 @@
     public function controllerTargetingManyResolvers(
         #[ValueResolver(RequestAttributeValueResolver::class)]
         #[ValueResolver(DefaultValueResolver::class)]
-        int $foo
+        int $foo,
     ) {
     }
 
     public function controllerTargetingUnknownResolver(
         #[ValueResolver('foo')]
-        int $bar
+        int $bar,
     ) {
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
         $resolver = $this->createControllerResolver();
 
         $request = Request::create('/');
-        $request->attributes->set('_controller', $lambda = function () {});
+        $request->attributes->set('_controller', $lambda = static function () {});
         $controller = $resolver->getController($request);
         $this->assertSame($lambda, $controller);
     }
@@ -118,7 +118,7 @@
     {
         $resolver = $this->createControllerResolver();
 
-        $closure = fn () => 'test';
+        $closure = static fn () => 'test';
 
         $request = Request::create('/');
         $request->attributes->set('_controller', $closure);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ErrorControllerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ErrorControllerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ErrorControllerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/ErrorControllerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
      */
     public function testInvokeController(Request $request, \Exception $exception, int $statusCode, string $content)
     {
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $errorRenderer = new HtmlErrorRenderer();
         $controller = new ErrorController($kernel, null, $errorRenderer);
         $response = $controller($exception);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/TraceableArgumentResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/TraceableArgumentResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/TraceableArgumentResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/TraceableArgumentResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
         $stopwatch = $this->createStub(Stopwatch::class);
         $stopwatch->method('start')->willReturn($stopwatchEvent);
 
-        $resolver = new class() implements ArgumentResolverInterface {
+        $resolver = new class implements ArgumentResolverInterface {
             public function getArguments(Request $request, callable $controller): array
             {
                 throw new \Exception();
@@ -38,7 +38,7 @@
         $traceableResolver = new TraceableArgumentResolver($resolver, $stopwatch);
 
         try {
-            $traceableResolver->getArguments(new Request(), function () {});
+            $traceableResolver->getArguments(new Request(), static function () {});
         } catch (\Exception $ex) {
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/TraceableControllerResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/TraceableControllerResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/TraceableControllerResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Controller/TraceableControllerResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
         $stopwatch = $this->createStub(Stopwatch::class);
         $stopwatch->method('start')->willReturn($stopwatchEvent);
 
-        $resolver = new class() implements ControllerResolverInterface {
+        $resolver = new class implements ControllerResolverInterface {
             public function getController(Request $request): callable|false
             {
                 throw new \Exception();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
         $this->assertSame(\extension_loaded('xdebug'), $c->hasXDebug());
         $this->assertSame(\extension_loaded('Zend OPcache') && filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOL), $c->hasZendOpcache());
         $this->assertSame(\extension_loaded('apcu') && filter_var(\ini_get('apc.enabled'), \FILTER_VALIDATE_BOOL), $c->hasApcu());
-        $this->assertSame(sprintf('%s.%s', Kernel::MAJOR_VERSION, Kernel::MINOR_VERSION), $c->getSymfonyMinorVersion());
+        $this->assertSame(\sprintf('%s.%s', Kernel::MAJOR_VERSION, Kernel::MINOR_VERSION), $c->getSymfonyMinorVersion());
         $this->assertContains($c->getSymfonyState(), ['eol', 'eom', 'dev', 'stable']);
 
         $eom = \DateTimeImmutable::createFromFormat('d/m/Y', '01/'.Kernel::END_OF_MAINTENANCE)->format('F Y');
@@ -69,7 +69,7 @@
         $this->assertSame(\extension_loaded('xdebug'), $c->hasXDebug());
         $this->assertSame(\extension_loaded('Zend OPcache') && filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOL), $c->hasZendOpcache());
         $this->assertSame(\extension_loaded('apcu') && filter_var(\ini_get('apc.enabled'), \FILTER_VALIDATE_BOOL), $c->hasApcu());
-        $this->assertSame(sprintf('%s.%s', Kernel::MAJOR_VERSION, Kernel::MINOR_VERSION), $c->getSymfonyMinorVersion());
+        $this->assertSame(\sprintf('%s.%s', Kernel::MAJOR_VERSION, Kernel::MINOR_VERSION), $c->getSymfonyMinorVersion());
         $this->assertContains($c->getSymfonyState(), ['eol', 'eom', 'dev', 'stable']);
 
         $eom = \DateTimeImmutable::createFromFormat('d/m/Y', '01/'.Kernel::END_OF_MAINTENANCE)->format('F Y');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/DumpDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/DumpDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/DumpDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/DumpDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,7 +60,7 @@
         $this->assertSame(0, $collector->getDumpsCount());
 
         $serialized = serialize($collector);
-        $this->assertSame("O:60:\"Symfony\Component\HttpKernel\DataCollector\DumpDataCollector\":1:{s:7:\"\0*\0data\";a:2:{i:0;b:0;i:1;s:5:\"UTF-8\";}}", $serialized);
+        $this->assertSame("O:60:\"Symfony\Component\HttpKernel\DataCollector\DumpDataCollector\":1:{s:4:\"data\";a:2:{i:0;b:0;i:1;s:5:\"UTF-8\";}}", $serialized);
 
         $this->assertInstanceOf(DumpDataCollector::class, unserialize($serialized));
     }
@@ -111,10 +111,10 @@
         $line = __LINE__ - 1;
         $file = __FILE__;
         $xOutput = <<<EOTXT
-<pre class=sf-dump id=sf-dump data-indent-pad="  "><a href="test://{$file}:{$line}" title="{$file}"><span class=sf-dump-meta>DumpDataCollectorTest.php</span></a> on line <span class=sf-dump-meta>{$line}</span>:
-<span class=sf-dump-num>123</span>
-</pre>
-EOTXT;
+            <pre class=sf-dump id=sf-dump data-indent-pad="  "><a href="test://{$file}:{$line}" title="{$file}"><span class=sf-dump-meta>DumpDataCollectorTest.php</span></a> on line <span class=sf-dump-meta>{$line}</span>:
+            <span class=sf-dump-num>123</span>
+            </pre>
+            EOTXT;
 
         ob_start();
         $response = new Response();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,6 +36,12 @@
         $this->assertSame(500, $c->getCode());
         $this->assertSame('exception', $c->getName());
         $this->assertSame($trace, $c->getTrace());
+
+        $c->collect(new Request(), new Response(), new class extends \Exception {
+            protected $code = 'non-integer-code';
+        });
+
+        $this->assertSame('non-integer-code', $c->getCode());
     }
 
     public function testCollectWithoutException()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
 
         $c = new LoggerDataCollector($logger, __DIR__.'/');
         $c->lateCollect();
-        $compilerLogs = $c->getCompilerLogs()->getValue('message');
+        $compilerLogs = $c->getCompilerLogs()->getValue(true);
 
         $this->assertSame([
             ['message' => 'Removed service "Psr\Container\ContainerInterface"; reason: private alias.'],
@@ -150,7 +150,7 @@
         $this->assertEquals('logger', $c->getName());
         $this->assertEquals($nb, $c->countErrors());
 
-        $logs = array_map(function ($v) {
+        $logs = array_map(static function ($v) {
             if (isset($v['context']['exception'])) {
                 $e = &$v['context']['exception'];
                 $e = isset($e["\0*\0message"]) ? [$e["\0*\0message"], $e["\0*\0severity"]] : [$e["\0Symfony\Component\ErrorHandler\Exception\SilencedErrorContext\0severity"]];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -89,7 +89,7 @@
         $c->collect($request, $response);
         $c->lateCollect();
 
-        $this->assertSame($expected, $c->getController()->getValue(true), sprintf('Testing: %s', $name));
+        $this->assertSame($expected, $c->getController()->getValue(true), \sprintf('Testing: %s', $name));
     }
 
     public static function provideControllerCallables(): array
@@ -116,9 +116,9 @@
 
             [
                 'Closure',
-                fn () => 'foo',
+                static fn () => 'foo',
                 [
-                    'class' => \PHP_VERSION_ID >= 80400 ? sprintf('{closure:%s():%d}', __METHOD__, __LINE__ - 2) : __NAMESPACE__.'\{closure}',
+                    'class' => \PHP_VERSION_ID >= 80400 ? \sprintf('{closure:%s():%d}', __METHOD__, __LINE__ - 2) : __NAMESPACE__.'\{closure}',
                     'method' => null,
                     'file' => __FILE__,
                     'line' => __LINE__ - 5,
@@ -222,7 +222,7 @@
             'sf_redirect' => '{}',
         ]);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $c = new RequestDataCollector();
         $c->onKernelResponse(new ResponseEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST, $this->createResponse()));
@@ -280,7 +280,7 @@
 
         $collector->reset();
 
-        $session = $this->createMock(SessionInterface::class);
+        $session = $this->createStub(SessionInterface::class);
         $session->method('getMetadataBag')->willReturnCallback(static function () use ($collector) {
             $collector->collectSessionUsage();
 
@@ -301,7 +301,7 @@
         $this->assertSame('getMetadataBag', $trace[0]['function']);
         $this->assertSame(self::class, $class = $trace[1]['class']);
 
-        $this->assertSame(sprintf('%s:%s', $class, $line), $usages[0]['name']);
+        $this->assertSame(\sprintf('%s:%s', $class, $line), $usages[0]['name']);
     }
 
     public function testStatelessCheck()
@@ -398,8 +398,8 @@
      */
     protected function injectController($collector, $controller, $request)
     {
-        $resolver = $this->createMock(ControllerResolverInterface::class);
-        $httpKernel = new HttpKernel(new EventDispatcher(), $resolver, null, $this->createMock(ArgumentResolverInterface::class));
+        $resolver = $this->createStub(ControllerResolverInterface::class);
+        $httpKernel = new HttpKernel(new EventDispatcher(), $resolver, null, $this->createStub(ArgumentResolverInterface::class));
         $event = new ControllerEvent($httpKernel, $controller, $request, HttpKernelInterface::MAIN_REQUEST);
         $collector->onKernelController($event);
     }
@@ -412,7 +412,7 @@
             }
         }
 
-        throw new \InvalidArgumentException(sprintf('Cookie named "%s" is not in response', $name));
+        throw new \InvalidArgumentException(\sprintf('Cookie named "%s" is not in response', $name));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/RouterDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/RouterDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/RouterDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DataCollector/RouterDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,7 @@
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\DataCollector\RouterDataCollector;
 use Symfony\Component\HttpKernel\Event\ControllerEvent;
-use Symfony\Component\HttpKernel\KernelInterface;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
 
 class RouterDataCollectorTest extends TestCase
 {
@@ -82,8 +82,8 @@
 
     protected function createControllerEvent(Request $request): ControllerEvent
     {
-        $kernel = $this->createMock(KernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
-        return new ControllerEvent($kernel, function () {}, $request, null);
+        return new ControllerEvent($kernel, static function () {}, $request, null);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Debug/ErrorHandlerConfiguratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Debug/ErrorHandlerConfiguratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Debug/ErrorHandlerConfiguratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Debug/ErrorHandlerConfiguratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,8 +12,8 @@
 namespace Symfony\Component\HttpKernel\Tests\Debug;
 
 use PHPUnit\Framework\TestCase;
-use Psr\Log\LoggerInterface;
 use Psr\Log\LogLevel;
+use Psr\Log\NullLogger;
 use Symfony\Component\ErrorHandler\ErrorHandler;
 use Symfony\Component\HttpKernel\Debug\ErrorHandlerConfigurator;
 
@@ -21,7 +21,7 @@
 {
     public function testConfigure()
     {
-        $logger = $this->createMock(LoggerInterface::class);
+        $logger = new NullLogger();
         $configurator = new ErrorHandlerConfigurator($logger);
         $handler = new ErrorHandler();
 
@@ -45,14 +45,14 @@
         $deprecationLogger = null;
 
         if ($hasDeprecationLogger) {
-            $deprecationLogger = $this->createMock(LoggerInterface::class);
+            $deprecationLogger = new NullLogger();
             if (null !== $expectedDeprecationLoggerLevels) {
                 $expectedCalls[] = [$deprecationLogger, $expectedDeprecationLoggerLevels, false];
             }
         }
 
         if ($hasLogger) {
-            $logger = $this->createMock(LoggerInterface::class);
+            $logger = new NullLogger();
             if (null !== $expectedLoggerLevels) {
                 $expectedCalls[] = [$logger, $expectedLoggerLevels, false];
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -84,9 +84,9 @@
         $called1 = false;
         $called2 = false;
         $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $dispatcher->addListener('my-event', function () use ($dispatcher, &$called1, &$called2) {
+        $dispatcher->addListener('my-event', static function () use ($dispatcher, &$called1, &$called2) {
             $called1 = true;
-            $dispatcher->addListener('my-event', function () use (&$called2) {
+            $dispatcher->addListener('my-event', static function () use (&$called2) {
                 $called2 = true;
             });
         });
@@ -100,11 +100,11 @@
     public function testListenerCanRemoveItselfWhenExecuted()
     {
         $eventDispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $listener1 = function () use ($eventDispatcher, &$listener1) {
+        $listener1 = static function () use ($eventDispatcher, &$listener1) {
             $eventDispatcher->removeListener('foo', $listener1);
         };
         $eventDispatcher->addListener('foo', $listener1);
-        $eventDispatcher->addListener('foo', function () {});
+        $eventDispatcher->addListener('foo', static function () {});
         $eventDispatcher->dispatch(new Event(), 'foo');
 
         $this->assertCount(1, $eventDispatcher->getListeners('foo'), 'expected listener1 to be removed');
@@ -113,7 +113,7 @@
     protected function getHttpKernel($dispatcher)
     {
         $controllerResolver = $this->createMock(ControllerResolverInterface::class);
-        $controllerResolver->expects($this->once())->method('getController')->willReturn(fn () => new Response());
+        $controllerResolver->expects($this->once())->method('getController')->willReturn(static fn () => new Response());
         $argumentResolver = $this->createMock(ArgumentResolverInterface::class);
         $argumentResolver->expects($this->once())->method('getArguments')->willReturn([]);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
     {
         $renderer = $this->createMock(FragmentRendererInterface::class);
         $renderer->expects($this->once())->method('getName')->willReturn('foo');
-        $renderer->expects($this->any())->method('render')->willReturn(new Response());
+        $renderer->method('render')->willReturn(new Response());
 
         $requestStack = $this->createMock(RequestStack::class);
         $requestStack->expects($this->any())->method('getCurrentRequest')->willReturn(Request::create('/'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/RegisterControllerArgumentLocatorsPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/RegisterControllerArgumentLocatorsPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/RegisterControllerArgumentLocatorsPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/RegisterControllerArgumentLocatorsPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,6 +26,7 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
 use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\DependencyInjection\ServiceLocator;
 use Symfony\Component\DependencyInjection\TypedReference;
@@ -458,12 +459,35 @@
 
         $expected = [
             'apiKey' => new ServiceClosureArgument(new Reference('the_api_key')),
-            'service1' => new ServiceClosureArgument(new TypedReference(ControllerDummy::class, ControllerDummy::class, ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE, 'imageStorage')),
+            'service1' => new ServiceClosureArgument(new TypedReference(ControllerDummy::class, ControllerDummy::class, ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE, 'imageStorage', [new Target('image.storage')])),
             'service2' => new ServiceClosureArgument(new TypedReference(ControllerDummy::class, ControllerDummy::class, ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE, 'service2')),
         ];
         $this->assertEquals($expected, $locator->getArgument(0));
     }
 
+    public function testTargetAttributeUsesShortNameForControllerArguments()
+    {
+        $container = new ContainerBuilder();
+        $resolver = $container->register('argument_resolver.service')->addArgument([]);
+
+        $container->register('limiter.anonymous_action', DummyRateLimiterFactory::class);
+        $container->registerAliasForArgument('limiter.anonymous_action', DummyLimiterFactoryInterface::class, 'anonymous_action.limiter', 'anonymous_action');
+
+        $container->register('foo', WithTargetShortName::class)
+            ->addTag('controller.service_arguments');
+
+        (new RegisterControllerArgumentLocatorsPass())->process($container);
+
+        $locator = $container->getDefinition((string) $resolver->getArgument(0))->getArgument(0);
+        $locator = $container->getDefinition((string) $locator['foo::fooAction']->getValues()[0]);
+
+        $argument = $locator->getArgument(0)['limiterFactory']->getValues()[0];
+        $this->assertInstanceOf(TypedReference::class, $argument);
+        $this->assertSame(DummyLimiterFactoryInterface::class, $argument->getType());
+        $this->assertSame('anonymous_action', $argument->getName());
+        $this->assertEquals([new Target('anonymous_action')], $argument->getAttributes());
+    }
+
     public function testResponseArgumentIsIgnored()
     {
         $container = new ContainerBuilder();
@@ -505,7 +529,7 @@
         $this->assertInstanceOf(\stdClass::class, $locator->get('serviceAsValue'));
         $this->assertInstanceOf(\stdClass::class, $locator->get('expressionAsValue'));
         $this->assertSame('bar', $locator->get('rawValue'));
-        $this->stringContains('Symfony_Component_HttpKernel_Tests_Fixtures_Suit_APP_SUIT', $locator->get('suit'));
+        $this->assertStringContainsString('Symfony_Component_HttpKernel_Tests_Fixtures_Suit_APP_SUIT', $locator->get('suit'));
         $this->assertSame('@bar', $locator->get('escapedRawValue'));
         $this->assertSame('foo', $locator->get('customAutowire'));
         $this->assertInstanceOf(FooInterface::class, $autowireCallable = $locator->get('autowireCallable'));
@@ -514,6 +538,23 @@
         $this->assertFalse($locator->has('service2'));
     }
 
+    public function testAutowireAttributeInvalidReference()
+    {
+        $container = new ContainerBuilder();
+        $resolver = $container->register('argument_resolver.service', 'stdClass')->addArgument([]);
+
+        $container->register('foo', WithAutowireAttributeInvalidReference::class)
+            ->addTag('controller.service_arguments');
+
+        (new RegisterControllerArgumentLocatorsPass())->process($container);
+
+        $locatorId = (string) $resolver->getArgument(0);
+        $container->getDefinition($locatorId)->setPublic(true);
+
+        $this->expectException(ServiceNotFoundException::class);
+        $container->compile();
+    }
+
     public function testTaggedIteratorAndTaggedLocatorAttributes()
     {
         $container = new ContainerBuilder();
@@ -679,11 +720,33 @@
         string $apiKey,
         #[Target('image.storage')]
         ControllerDummy $service1,
-        ControllerDummy $service2
+        ControllerDummy $service2,
+    ) {
+    }
+}
+
+class WithTargetShortName
+{
+    public function fooAction(
+        #[Target('anonymous_action')]
+        DummyLimiterFactoryInterface $limiterFactory,
     ) {
     }
 }
 
+interface DummyLimiterFactoryInterface
+{
+    public function create(mixed $key = null): object;
+}
+
+class DummyRateLimiterFactory implements DummyLimiterFactoryInterface
+{
+    public function create(mixed $key = null): object
+    {
+        throw new \BadMethodCallException('Not used in tests.');
+    }
+}
+
 class WithResponseArgument
 {
     public function fooAction(Response $response, ?Response $nullableResponse)
@@ -728,6 +791,13 @@
         string $customAutowire,
         #[AutowireCallable(service: 'some.id', method: 'bar')]
         FooInterface $autowireCallable,
+    ) {
+    }
+}
+
+class WithAutowireAttributeInvalidReference
+{
+    public function invalidReference(
         #[Autowire(service: 'invalid.id')]
         ?\stdClass $service2 = null,
     ) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/ServicesResetterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/ServicesResetterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/ServicesResetterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/ServicesResetterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
         $proxyCode = ProxyHelper::generateLazyProxy(new \ReflectionClass(LazyResettableService::class));
         eval('class LazyResettableServiceProxy'.$proxyCode);
 
-        $lazyService = \LazyResettableServiceProxy::createLazyProxy(fn (): LazyResettableService => new LazyResettableService());
+        $lazyService = \LazyResettableServiceProxy::createLazyProxy(static fn (): LazyResettableService => new LazyResettableService());
 
         $resetter = new ServicesResetter(new \ArrayIterator([
             'lazy' => $lazyService,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Event/ControllerArgumentsEventTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Event/ControllerArgumentsEventTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Event/ControllerArgumentsEventTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Event/ControllerArgumentsEventTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,13 +25,13 @@
 {
     public function testControllerArgumentsEvent()
     {
-        $event = new ControllerArgumentsEvent(new TestHttpKernel(), function () {}, ['test'], new Request(), HttpKernelInterface::MAIN_REQUEST);
+        $event = new ControllerArgumentsEvent(new TestHttpKernel(), static function () {}, ['test'], new Request(), HttpKernelInterface::MAIN_REQUEST);
         $this->assertEquals($event->getArguments(), ['test']);
     }
 
     public function testSetAttributes()
     {
-        $controller = function () {};
+        $controller = static function () {};
         $event = new ControllerArgumentsEvent(new TestHttpKernel(), $controller, ['test'], new Request(), HttpKernelInterface::MAIN_REQUEST);
         $event->setController($controller, []);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/AddRequestFormatsListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/AddRequestFormatsListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/AddRequestFormatsListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/AddRequestFormatsListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
     public function testSetAdditionalFormats()
     {
         $request = $this->createMock(Request::class);
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         $request->expects($this->once())
             ->method('setFormat')
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/CacheAttributeListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/CacheAttributeListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/CacheAttributeListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/CacheAttributeListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\HttpKernel\Tests\EventListener;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
@@ -183,7 +182,7 @@
         $request->headers->add(['If-Modified-Since' => 'Fri, 23 Aug 2013 00:00:00 GMT']);
 
         $listener = new CacheAttributeListener();
-        $controllerArgumentsEvent = new ControllerArgumentsEvent($this->getKernel(), fn (TestEntity $test) => new Response(), [$entity], $request, null);
+        $controllerArgumentsEvent = new ControllerArgumentsEvent($this->getKernel(), static fn (TestEntity $test) => new Response(), [$entity], $request, null);
 
         $listener->onKernelControllerArguments($controllerArgumentsEvent);
         $response = $controllerArgumentsEvent->getController()($entity);
@@ -203,7 +202,7 @@
         $request->attributes->set('date', new \DateTimeImmutable('Fri, 23 Aug 2013 00:00:00 GMT'));
 
         $listener = new CacheAttributeListener();
-        $controllerArgumentsEvent = new ControllerArgumentsEvent($this->getKernel(), fn (TestEntity $test) => new Response(), [$entity], $request, null);
+        $controllerArgumentsEvent = new ControllerArgumentsEvent($this->getKernel(), static fn (TestEntity $test) => new Response(), [$entity], $request, null);
         $listener->onKernelControllerArguments($controllerArgumentsEvent);
 
         $controllerResponse = $controllerArgumentsEvent->getController()($entity);
@@ -227,10 +226,10 @@
 
         $request = $this->createRequest(new Cache(etag: $expression));
         $request->attributes->set('id', '12345');
-        $request->headers->add(['If-None-Match' => sprintf('"%s"', hash('sha256', $entity->getId()))]);
+        $request->headers->add(['If-None-Match' => \sprintf('"%s"', hash('sha256', $entity->getId()))]);
 
         $listener = new CacheAttributeListener();
-        $controllerArgumentsEvent = new ControllerArgumentsEvent($this->getKernel(), fn (TestEntity $test) => new Response(), [$entity], $request, null);
+        $controllerArgumentsEvent = new ControllerArgumentsEvent($this->getKernel(), static fn (TestEntity $test) => new Response(), [$entity], $request, null);
 
         $listener->onKernelControllerArguments($controllerArgumentsEvent);
         $response = $controllerArgumentsEvent->getController()($entity);
@@ -250,7 +249,7 @@
         $request->attributes->set('id', '12345');
 
         $listener = new CacheAttributeListener();
-        $controllerArgumentsEvent = new ControllerArgumentsEvent($this->getKernel(), fn (TestEntity $test) => new Response(), [$entity], $request, null);
+        $controllerArgumentsEvent = new ControllerArgumentsEvent($this->getKernel(), static fn (TestEntity $test) => new Response(), [$entity], $request, null);
         $listener->onKernelControllerArguments($controllerArgumentsEvent);
 
         $controllerResponse = $controllerArgumentsEvent->getController()($entity);
@@ -318,6 +317,94 @@
         $this->assertSame(CacheAttributeController::CLASS_SMAXAGE, $response->getMaxAge());
     }
 
+    /**
+     * @dataProvider provideVaryHeaderScenarios
+     */
+    public function testHasRelevantVaryHeaderBehavior(array $responseVary, array $cacheVary, bool $varyByLanguage, array $expectedVary)
+    {
+        $request = $this->createRequest(new Cache(vary: $cacheVary));
+        $request->attributes->set('_vary_by_language', $varyByLanguage);
+
+        $response = new Response();
+        $response->setVary($responseVary);
+
+        $listener = new CacheAttributeListener();
+        $event = new ResponseEvent($this->getKernel(), $request, HttpKernelInterface::MAIN_REQUEST, $response);
+        $listener->onKernelResponse($event);
+
+        $this->assertSame($expectedVary, $response->getVary());
+    }
+
+    public function testAttributeRespectsExplicitPrivateFromController()
+    {
+        $request = $this->createRequest(new Cache(public: true));
+        $response = new Response();
+        $response->setPrivate();
+
+        $this->listener->onKernelResponse($this->createEventMock($request, $response));
+
+        $this->assertTrue($response->headers->hasCacheControlDirective('private'));
+        $this->assertFalse($response->headers->hasCacheControlDirective('public'));
+    }
+
+    public function testAttributeRespectsExplicitPublicFromController()
+    {
+        $request = $this->createRequest(new Cache(public: false));
+        $response = new Response();
+        $response->setPublic();
+
+        $this->listener->onKernelResponse($this->createEventMock($request, $response));
+
+        $this->assertTrue($response->headers->hasCacheControlDirective('public'));
+        $this->assertFalse($response->headers->hasCacheControlDirective('private'));
+    }
+
+    public static function provideVaryHeaderScenarios(): \Traversable
+    {
+        yield 'no vary headers at all' => [
+            'responseVary' => [],
+            'cacheVary' => ['X-Foo'],
+            'varyByLanguage' => false,
+            'expectedVary' => ['X-Foo'],
+        ];
+        yield 'response vary accept-language only, vary_by_language true (append new)' => [
+            'responseVary' => ['Accept-Language'],
+            'cacheVary' => ['X-Bar'],
+            'varyByLanguage' => true,
+            'expectedVary' => ['Accept-Language', 'X-Bar'], // X-Bar is added
+        ];
+        yield 'response vary accept-language only, vary_by_language false (no append)' => [
+            'responseVary' => ['Accept-Language'],
+            'cacheVary' => ['X-Bar'],
+            'varyByLanguage' => false,
+            'expectedVary' => ['Accept-Language'], // no append
+        ];
+        yield 'response vary multiple including accept-language, vary_by_language true (no append)' => [
+            'responseVary' => ['Accept-Language', 'User-Agent'],
+            'cacheVary' => ['X-Baz'],
+            'varyByLanguage' => true,
+            'expectedVary' => ['Accept-Language', 'User-Agent'], // no append
+        ];
+        yield 'cache vary is empty' => [
+            'responseVary' => ['X-Existing'],
+            'cacheVary' => [],
+            'varyByLanguage' => true,
+            'expectedVary' => ['X-Existing'], // nothing to add
+        ];
+        yield 'vary * (no append) — vary_by_language=true' => [
+            'responseVary' => ['*'],
+            'cacheVary' => ['X-Foo'],
+            'varyByLanguage' => true,
+            'expectedVary' => ['*'],
+        ];
+        yield 'vary * (no append) — vary_by_language=false' => [
+            'responseVary' => ['*'],
+            'cacheVary' => ['X-Foo'],
+            'varyByLanguage' => false,
+            'expectedVary' => ['*'],
+        ];
+    }
+
     private function createRequest(Cache $cache): Request
     {
         return new Request([], [], ['_cache' => [$cache]]);
@@ -328,9 +415,9 @@
         return new ResponseEvent($this->getKernel(), $request, HttpKernelInterface::MAIN_REQUEST, $response);
     }
 
-    private function getKernel(): MockObject&HttpKernelInterface
+    private function getKernel(): HttpKernelInterface
     {
-        return $this->getMockBuilder(HttpKernelInterface::class)->getMock();
+        return $this->createStub(HttpKernelInterface::class);
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/DebugHandlersListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/DebugHandlersListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/DebugHandlersListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/DebugHandlersListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,7 +61,7 @@
         $listener = new DebugHandlersListener(null);
         $eHandler = new ErrorHandler();
         $event = new KernelEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             Request::create('/'),
             HttpKernelInterface::MAIN_REQUEST
         );
@@ -126,7 +126,7 @@
 
     public function testReplaceExistingExceptionHandler()
     {
-        $userHandler = function () {};
+        $userHandler = static function () {};
         $listener = new DebugHandlersListener($userHandler);
         $eHandler = new ErrorHandler();
         $eHandler->setExceptionHandler('var_dump');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/DisallowRobotsIndexingListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/DisallowRobotsIndexingListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/DisallowRobotsIndexingListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/DisallowRobotsIndexingListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
         $response = new Response(...$responseArgs);
         $listener = new DisallowRobotsIndexingListener();
 
-        $event = new ResponseEvent($this->createMock(HttpKernelInterface::class), new Request(), KernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(HttpKernelInterface::class), new Request(), KernelInterface::MAIN_REQUEST, $response);
 
         $listener->onResponse($event);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ErrorListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ErrorListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ErrorListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ErrorListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,8 +12,8 @@
 namespace Symfony\Component\HttpKernel\Tests\EventListener;
 
 use PHPUnit\Framework\TestCase;
-use Psr\Log\LoggerInterface;
 use Psr\Log\LogLevel;
+use Psr\Log\NullLogger;
 use Symfony\Component\ErrorHandler\Exception\FlattenException;
 use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\HttpFoundation\Request;
@@ -210,10 +210,10 @@
 
     public function testSubRequestFormat()
     {
-        $listener = new ErrorListener('foo', $this->createMock(LoggerInterface::class));
+        $listener = new ErrorListener('foo', new NullLogger());
 
         $kernel = $this->createMock(HttpKernelInterface::class);
-        $kernel->expects($this->once())->method('handle')->willReturnCallback(fn (Request $request) => new Response($request->getRequestFormat()));
+        $kernel->expects($this->once())->method('handle')->willReturnCallback(static fn (Request $request) => new Response($request->getRequestFormat()));
 
         $request = Request::create('/');
         $request->setRequestFormat('xml');
@@ -229,9 +229,9 @@
     {
         $dispatcher = new EventDispatcher();
         $kernel = $this->createMock(HttpKernelInterface::class);
-        $kernel->expects($this->once())->method('handle')->willReturnCallback(fn (Request $request) => new Response($request->getRequestFormat()));
+        $kernel->expects($this->once())->method('handle')->willReturnCallback(static fn (Request $request) => new Response($request->getRequestFormat()));
 
-        $listener = new ErrorListener('foo', $this->createMock(LoggerInterface::class), true);
+        $listener = new ErrorListener('foo', new NullLogger(), true);
 
         $dispatcher->addSubscriber($listener);
 
@@ -253,9 +253,9 @@
      */
     public function testOnControllerArguments(callable $controller)
     {
-        $listener = new ErrorListener($controller, $this->createMock(LoggerInterface::class), true);
+        $listener = new ErrorListener($controller, new NullLogger(), true);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $kernel->method('handle')->willReturnCallback(function (Request $request) use ($listener, $controller, $kernel) {
             $this->assertSame($controller, $request->attributes->get('_controller'));
             $arguments = (new ArgumentResolver())->getArguments($request, $controller);
@@ -273,15 +273,15 @@
 
     public static function controllerProvider()
     {
-        yield [fn (FlattenException $exception) => new Response('OK: '.$exception->getMessage())];
+        yield [static fn (FlattenException $exception) => new Response('OK: '.$exception->getMessage())];
 
-        yield [function ($exception) {
+        yield [static function ($exception) {
             static::assertInstanceOf(FlattenException::class, $exception);
 
             return new Response('OK: '.$exception->getMessage());
         }];
 
-        yield [fn (\Throwable $exception) => new Response('OK: '.$exception->getMessage())];
+        yield [static fn (\Throwable $exception) => new Response('OK: '.$exception->getMessage())];
     }
 
     public static function exceptionWithAttributeProvider()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/FragmentListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/FragmentListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/FragmentListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/FragmentListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -114,6 +114,6 @@
 
     private function createRequestEvent(Request $request, int $requestType = HttpKernelInterface::MAIN_REQUEST): RequestEvent
     {
-        return new RequestEvent($this->createMock(HttpKernelInterface::class), $request, $requestType);
+        return new RequestEvent($this->createStub(HttpKernelInterface::class), $request, $requestType);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleAwareListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleAwareListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleAwareListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleAwareListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
             ->method('setLocale')
             ->with($this->equalTo('fr'));
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $this->createRequest('fr'), HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $this->createRequest('fr'), HttpKernelInterface::MAIN_REQUEST);
         $this->listener->onKernelRequest($event);
     }
 
@@ -61,7 +61,7 @@
             })
         ;
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $this->createRequest('fr'), HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $this->createRequest('fr'), HttpKernelInterface::MAIN_REQUEST);
         $this->listener->onKernelRequest($event);
     }
 
@@ -75,7 +75,7 @@
         $this->requestStack->push($this->createRequest('fr'));
         $this->requestStack->push($subRequest = $this->createRequest('de'));
 
-        $event = new FinishRequestEvent($this->createMock(HttpKernelInterface::class), $subRequest, HttpKernelInterface::SUB_REQUEST);
+        $event = new FinishRequestEvent($this->createStub(HttpKernelInterface::class), $subRequest, HttpKernelInterface::SUB_REQUEST);
         $this->listener->onKernelFinishRequest($event);
     }
 
@@ -88,7 +88,7 @@
 
         $this->requestStack->push($subRequest = $this->createRequest('de'));
 
-        $event = new FinishRequestEvent($this->createMock(HttpKernelInterface::class), $subRequest, HttpKernelInterface::SUB_REQUEST);
+        $event = new FinishRequestEvent($this->createStub(HttpKernelInterface::class), $subRequest, HttpKernelInterface::SUB_REQUEST);
         $this->listener->onKernelFinishRequest($event);
     }
 
@@ -111,7 +111,7 @@
         $this->requestStack->push($this->createRequest('fr'));
         $this->requestStack->push($subRequest = $this->createRequest('de'));
 
-        $event = new FinishRequestEvent($this->createMock(HttpKernelInterface::class), $subRequest, HttpKernelInterface::SUB_REQUEST);
+        $event = new FinishRequestEvent($this->createStub(HttpKernelInterface::class), $subRequest, HttpKernelInterface::SUB_REQUEST);
         $this->listener->onKernelFinishRequest($event);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,6 +22,7 @@
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\Routing\RequestContext;
+use Symfony\Component\Routing\RequestContextAwareInterface;
 use Symfony\Component\Routing\Router;
 
 class LocaleListenerTest extends TestCase
@@ -101,7 +102,7 @@
 
         $this->requestStack->expects($this->once())->method('getParentRequest')->willReturn($parentRequest);
 
-        $event = new FinishRequestEvent($this->createMock(HttpKernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST);
+        $event = new FinishRequestEvent($this->createStub(HttpKernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST);
 
         $listener = new LocaleListener($this->requestStack, 'fr', $router);
         $listener->onKernelFinishRequest($event);
@@ -192,6 +193,20 @@
         $this->assertEquals('de', $request->getLocale());
     }
 
+    public function testDefaultLocaleReturnedWhenNoAcceptLanguageMatchAndDefaultLocaleIsNotFirstEnabledLocale()
+    {
+        $request = Request::create('/');
+        $request->headers->set('Accept-Language', 'es;q=0.9,ja;q=0.8');
+
+        // 'de' is the default locale but is NOT first in enabled_locales
+        $listener = new LocaleListener($this->requestStack, 'de', null, true, ['it', 'fr', 'de']);
+        $event = $this->getEvent($request);
+
+        $listener->setDefaultLocale($event);
+        $listener->onKernelRequest($event);
+        $this->assertEquals('de', $request->getLocale());
+    }
+
     public function testRequestNoLocaleFromAcceptLanguageHeader()
     {
         $request = Request::create('/');
@@ -219,8 +234,43 @@
         $this->assertEquals('it', $request->getLocale());
     }
 
+    public function testFinishRequestWithNoParentResetsRouterContextToDefault()
+    {
+        $context = new RequestContext();
+        $router = $this->createStub(RequestContextAwareInterface::class);
+        $router->method('getContext')->willReturn($context);
+
+        $request = Request::create('/');
+        $request->attributes->set('_locale', 'en');
+
+        $listener = new LocaleListener($this->requestStack, 'fr', $router);
+        $listener->onKernelRequest($this->getEvent($request));
+
+        $this->assertSame('en', $context->getParameter('_locale'));
+
+        $this->requestStack->method('getParentRequest')->willReturn(null);
+        $event = new FinishRequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $listener->onKernelFinishRequest($event);
+
+        $this->assertSame('fr', $context->getParameter('_locale'));
+    }
+
+    public function testSetDefaultLocaleSetsRouterContext()
+    {
+        $context = new RequestContext();
+        $router = $this->createStub(RequestContextAwareInterface::class);
+        $router->method('getContext')->willReturn($context);
+
+        $listener = new LocaleListener($this->requestStack, 'fr', $router);
+        $request = Request::create('/');
+        $event = $this->getEvent($request);
+        $listener->setDefaultLocale($event);
+
+        $this->assertSame('fr', $context->getParameter('_locale'));
+    }
+
     private function getEvent(Request $request): RequestEvent
     {
-        return new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        return new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,10 +39,10 @@
             ->method('collect')
             ->willReturn($profile);
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $mainRequest = new Request();
         $subRequest = new Request();
-        $response = $this->createMock(Response::class);
+        $response = new Response();
 
         $requestStack = new RequestStack();
         $requestStack->push($mainRequest);
@@ -76,7 +76,7 @@
             ->expects(null === $enable ? $this->never() : $this->once())
             ->method($enable ? 'enable' : 'disable');
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $response = new Response();
 
         $requestStack = new RequestStack();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\HttpKernel\Tests\EventListener;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\HttpFoundation\Request;
@@ -24,7 +23,7 @@
 class ResponseListenerTest extends TestCase
 {
     private EventDispatcher $dispatcher;
-    private MockObject&HttpKernelInterface $kernel;
+    private HttpKernelInterface $kernel;
 
     protected function setUp(): void
     {
@@ -32,7 +31,7 @@
         $listener = new ResponseListener('UTF-8');
         $this->dispatcher->addListener(KernelEvents::RESPONSE, $listener->onKernelResponse(...));
 
-        $this->kernel = $this->createMock(HttpKernelInterface::class);
+        $this->kernel = $this->createStub(HttpKernelInterface::class);
     }
 
     public function testFilterDoesNothingForSubRequests()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use PHPUnit\Framework\TestCase;
 use Psr\Log\LoggerInterface;
 use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\HttpFoundation\Exception\BadRequestException;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpFoundation\Response;
@@ -49,12 +50,12 @@
      */
     public function testPort($defaultHttpPort, $defaultHttpsPort, $uri, $expectedHttpPort, $expectedHttpsPort)
     {
-        $urlMatcher = $this->createMock(UrlMatcherInterface::class);
+        $urlMatcher = $this->createStub(UrlMatcherInterface::class);
 
         $context = new RequestContext();
         $context->setHttpPort($defaultHttpPort);
         $context->setHttpsPort($defaultHttpsPort);
-        $urlMatcher->expects($this->any())
+        $urlMatcher
             ->method('getContext')
             ->willReturn($context);
 
@@ -79,7 +80,7 @@
 
     private function createRequestEventForUri(string $uri): RequestEvent
     {
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $request = Request::create($uri);
         $request->attributes->set('_controller', null); // Prevents going in to routing process
 
@@ -88,7 +89,7 @@
 
     public function testRequestMatcher()
     {
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $request = Request::create('http://localhost/');
         $event = new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST);
 
@@ -104,12 +105,12 @@
 
     public function testSubRequestWithDifferentMethod()
     {
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $request = Request::create('http://localhost/', 'post');
         $event = new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST);
 
-        $requestMatcher = $this->createMock(RequestMatcherInterface::class);
-        $requestMatcher->expects($this->any())
+        $requestMatcher = $this->createStub(RequestMatcherInterface::class);
+        $requestMatcher
                        ->method('matchRequest')
                        ->with($this->isInstanceOf(Request::class))
                        ->willReturn([]);
@@ -120,7 +121,7 @@
         $listener->onKernelRequest($event);
 
         // sub-request with another HTTP method
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $request = Request::create('http://localhost/', 'get');
         $event = new RequestEvent($kernel, $request, HttpKernelInterface::SUB_REQUEST);
 
@@ -144,7 +145,7 @@
             ->method('info')
             ->with($this->equalTo($log), $this->equalTo($parameters));
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $request = Request::create('http://localhost/');
 
         $listener = new RouterListener($requestMatcher, $this->requestStack, new RequestContext(), $logger);
@@ -169,7 +170,7 @@
         $dispatcher = new EventDispatcher();
         $dispatcher->addSubscriber(new ValidateRequestListener());
         $dispatcher->addSubscriber(new RouterListener($requestMatcher, $requestStack, new RequestContext()));
-        $dispatcher->addSubscriber(new ErrorListener(fn () => new Response('Exception handled', 400)));
+        $dispatcher->addSubscriber(new ErrorListener(static fn () => new Response('Exception handled', 400)));
 
         $kernel = new HttpKernel($dispatcher, new ControllerResolver(), $requestStack, new ArgumentResolver());
 
@@ -203,15 +204,20 @@
 
     public function testRequestWithBadHost()
     {
-        $this->expectException(BadRequestHttpException::class);
-        $kernel = $this->createMock(HttpKernelInterface::class);
-        $request = Request::create('http://bad host %22/');
+        $kernel = $this->createStub(HttpKernelInterface::class);
+        $request = Request::create('/');
+        $request->headers->set('host', 'bad host %22');
         $event = new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST);
 
-        $requestMatcher = $this->createMock(RequestMatcherInterface::class);
+        $requestMatcher = $this->createStub(RequestMatcherInterface::class);
 
         $listener = new RouterListener($requestMatcher, $this->requestStack, new RequestContext());
-        $listener->onKernelRequest($event);
+        try {
+            $listener->onKernelRequest($event);
+            self::fail(\sprintf('Expected "%s" or "%s" to be thrown.', BadRequestHttpException::class, BadRequestException::class));
+        } catch (\Throwable $e) {
+            $this->assertTrue($e instanceof BadRequestHttpException || $e instanceof BadRequestException);
+        }
     }
 
     public function testResourceNotFoundException()
@@ -221,17 +227,17 @@
 
         $context = new RequestContext();
 
-        $urlMatcher = $this->createMock(UrlMatcherInterface::class);
+        $urlMatcher = $this->createStub(UrlMatcherInterface::class);
 
-        $urlMatcher->expects($this->any())
+        $urlMatcher
             ->method('getContext')
             ->willReturn($context);
 
-        $urlMatcher->expects($this->any())
+        $urlMatcher
             ->method('match')
             ->willThrowException(new ResourceNotFoundException());
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $request = Request::create('https://www.symfony.com/path');
         $request->headers->set('referer', 'https://www.google.com');
 
@@ -248,17 +254,17 @@
 
         $context = new RequestContext();
 
-        $urlMatcher = $this->createMock(UrlMatcherInterface::class);
+        $urlMatcher = $this->createStub(UrlMatcherInterface::class);
 
-        $urlMatcher->expects($this->any())
+        $urlMatcher
             ->method('getContext')
             ->willReturn($context);
 
-        $urlMatcher->expects($this->any())
+        $urlMatcher
             ->method('match')
             ->willThrowException(new MethodNotAllowedException(['POST']));
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $request = Request::create('https://www.symfony.com/path');
 
         $event = new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
      */
     public function testSessionCookieOptions(array $phpSessionOptions, array $sessionOptions, array $expectedSessionOptions)
     {
-        $session = $this->createMock(Session::class);
+        $session = $this->createStub(Session::class);
         $session->method('getUsageIndex')->willReturn(0, 1);
         $session->method('getId')->willReturn('123456');
         $session->method('getName')->willReturn('PHPSESSID');
@@ -57,7 +57,7 @@
         session_set_cookie_params(0, $phpSessionOptions['path'] ?? null, $phpSessionOptions['domain'] ?? null, $phpSessionOptions['secure'] ?? null, $phpSessionOptions['httponly'] ?? null);
 
         $listener = new SessionListener(new Container(), false, $sessionOptions);
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $listener->onKernelRequest(new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST));
@@ -104,13 +104,13 @@
 
         yield 'set_cookiesecure_auto_by_symfony_false_by_php' => [
             'phpSessionOptions' => ['secure' => false],
-            'sessionOptions' => ['cookie_path' => '/test/', 'cookie_httponly' => 'auto', 'cookie_secure' => 'auto', 'cookie_samesite' => Cookie::SAMESITE_LAX],
+            'sessionOptions' => ['cookie_path' => '/test/', 'cookie_httponly' => true, 'cookie_secure' => 'auto', 'cookie_samesite' => Cookie::SAMESITE_LAX],
             'expectedSessionOptions' => ['cookie_path' => '/test/', 'cookie_domain' => '', 'cookie_secure' => false, 'cookie_httponly' => true, 'cookie_samesite' => Cookie::SAMESITE_LAX],
         ];
 
         yield 'set_cookiesecure_auto_by_symfony_true_by_php' => [
             'phpSessionOptions' => ['secure' => true],
-            'sessionOptions' => ['cookie_path' => '/test/', 'cookie_httponly' => 'auto', 'cookie_secure' => 'auto', 'cookie_samesite' => Cookie::SAMESITE_LAX],
+            'sessionOptions' => ['cookie_path' => '/test/', 'cookie_httponly' => true, 'cookie_secure' => 'auto', 'cookie_samesite' => Cookie::SAMESITE_LAX],
             'expectedSessionOptions' => ['cookie_path' => '/test/', 'cookie_domain' => '', 'cookie_secure' => true, 'cookie_httponly' => true, 'cookie_samesite' => Cookie::SAMESITE_LAX],
         ];
 
@@ -150,7 +150,7 @@
         $request = new Request();
         $listener = $this->createListener($request, new PhpBridgeSessionStorageFactory());
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         $listener->onKernelRequest($event);
 
@@ -166,7 +166,7 @@
         $request = new Request();
         $listener = $this->createListener($request, new NativeSessionStorageFactory());
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $listener->onKernelRequest(new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST));
         $session = $request->getSession();
@@ -198,7 +198,7 @@
 
         $listener = $this->createListener($request, new NativeSessionStorageFactory());
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $listener->onKernelRequest(new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST));
 
         $session = $request->getSession();
@@ -227,7 +227,7 @@
 
         $listener = $this->createListener($request, new NativeSessionStorageFactory());
 
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $listener->onKernelRequest(new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST));
 
         $session = $request->getSession();
@@ -256,7 +256,7 @@
         $request = new Request();
         $request->cookies->set('PHPSESSID', $sessionId);
         $listener = $this->createListener($request, new NativeSessionStorageFactory());
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $listener->onKernelRequest(new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST));
 
@@ -288,7 +288,7 @@
         $request = new Request();
         $request->cookies->set('PHPSESSID', $sessionId);
         $listener = $this->createListener($request, new NativeSessionStorageFactory());
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $listener->onKernelRequest(new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST));
 
@@ -312,7 +312,7 @@
     {
         $request = new Request();
         $listener = $this->createListener($request, new NativeSessionStorageFactory());
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $listener->onKernelRequest(new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST));
 
@@ -336,7 +336,7 @@
 
     public function testOnlyTriggeredOnMainRequest()
     {
-        $listener = new class() extends AbstractSessionListener {
+        $listener = new class extends AbstractSessionListener {
             protected function getSession(): ?SessionInterface
             {
                 return null;
@@ -370,7 +370,7 @@
         $request = new Request();
         $listener = new SessionListener($container);
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         $listener->onKernelRequest($event);
 
@@ -391,7 +391,7 @@
         $request = new Request();
         $listener = new SessionListener($container);
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         $listener->onKernelRequest($event);
 
@@ -412,12 +412,12 @@
         $request = new Request();
         $listener = new SessionListener($container);
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
         $listener->onKernelRequest($event);
 
         $request->getSession();
 
-        $event = new ResponseEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, new Response());
+        $event = new ResponseEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, new Response());
         $listener->onKernelResponse($event);
     }
 
@@ -432,10 +432,10 @@
         $request = new Request();
         $listener = new SessionListener($container);
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
         $listener->onKernelRequest($event);
 
-        $event = new ResponseEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, new Response());
+        $event = new ResponseEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, new Response());
         $listener->onKernelResponse($event);
     }
 
@@ -451,7 +451,7 @@
         $container->set('session_factory', $sessionFactory);
 
         $listener = new SessionListener($container);
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $listener->onKernelRequest(new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST));
@@ -477,7 +477,7 @@
         $container = new Container();
 
         $listener = new SessionListener($container);
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $request->setSession($session);
@@ -509,7 +509,7 @@
         $container = new Container();
 
         $listener = new SessionListener($container);
-        $kernel = $this->getMockBuilder(HttpKernelInterface::class)->disableOriginalConstructor()->getMock();
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $request->setSession($session);
@@ -526,7 +526,7 @@
 
     public function testUninitializedSessionUsingSessionFromRequest()
     {
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $response = new Response();
         $response->setSharedMaxAge(60);
         $response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true');
@@ -546,7 +546,7 @@
 
     public function testUninitializedSessionWithoutInitializedSession()
     {
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $response = new Response();
         $response->setSharedMaxAge(60);
         $response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true');
@@ -574,7 +574,7 @@
         $container->set('session_factory', $sessionFactory);
 
         $listener = new SessionListener($container);
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $listener->onKernelRequest(new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST));
@@ -605,7 +605,7 @@
         $container = new Container();
 
         $listener = new SessionListener($container);
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $request->setSession($session);
@@ -627,7 +627,7 @@
 
     public function testPrivateResponseMaxAgeIsRespectedIfSessionStarted()
     {
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $session = $this->createMock(Session::class);
         $session->expects($this->once())->method('getUsageIndex')->willReturn(1);
@@ -661,7 +661,7 @@
         $container->set('session_factory', $sessionFactory);
 
         $listener = new SessionListener($container);
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $response = new Response();
@@ -695,7 +695,7 @@
         $session->expects($this->exactly(1))->method('getName')->willReturn('PHPSESSID');
         $sessionFactory = $this->createMock(SessionFactory::class);
         $sessionFactory->expects($this->once())->method('createSession')->willReturn($session);
-        $kernel = $this->createMock(KernelInterface::class);
+        $kernel = $this->createStub(KernelInterface::class);
 
         $requestStack = new RequestStack();
         $requestStack->push($mainRequest = new Request([], [], [], [], [], ['HTTPS' => 'on']));
@@ -724,14 +724,14 @@
         $mainRequest = new Request();
         $listener = $this->createListener($mainRequest, new NativeSessionStorageFactory());
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $mainRequest, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $mainRequest, HttpKernelInterface::MAIN_REQUEST);
         $listener->onKernelRequest($event);
 
         $this->assertFalse($mainRequest->hasSession(true));
 
         $subRequest = $mainRequest->duplicate();
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $subRequest, HttpKernelInterface::SUB_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $subRequest, HttpKernelInterface::SUB_REQUEST);
         $listener->onKernelRequest($event);
 
         $session = $subRequest->getSession();
@@ -752,7 +752,7 @@
         $container->set('session_factory', $sessionFactory);
 
         $listener = new SessionListener($container, true);
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $request->attributes->set('_stateless', true);
@@ -779,7 +779,7 @@
         $container->set('logger', $logger);
 
         $listener = new SessionListener($container, false);
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $request->attributes->set('_stateless', true);
@@ -804,7 +804,7 @@
         $container->set('session_factory', $sessionFactory);
 
         $listener = new SessionListener($container, true);
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $request->attributes->set('_stateless', true);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/SurrogateListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/SurrogateListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/SurrogateListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/SurrogateListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public function testFilterDoesNothingForSubRequests()
     {
         $dispatcher = new EventDispatcher();
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $response = new Response('foo <esi:include src="" />');
         $listener = new SurrogateListener(new Esi());
 
@@ -40,7 +40,7 @@
     public function testFilterWhenThereIsSomeEsiIncludes()
     {
         $dispatcher = new EventDispatcher();
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $response = new Response('foo <esi:include src="" />');
         $listener = new SurrogateListener(new Esi());
 
@@ -54,7 +54,7 @@
     public function testFilterWhenThereIsNoEsiIncludes()
     {
         $dispatcher = new EventDispatcher();
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $response = new Response('foo');
         $listener = new SurrogateListener(new Esi());
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ValidateRequestListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ValidateRequestListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ValidateRequestListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/EventListener/ValidateRequestListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
     {
         $this->expectException(ConflictingHeadersException::class);
         $dispatcher = new EventDispatcher();
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
 
         $request = new Request();
         $request->setTrustedProxies(['1.1.1.1'], Request::HEADER_X_FORWARDED_FOR | Request::HEADER_FORWARDED);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,8 +17,12 @@
 
 class KernelForTest extends Kernel
 {
-    public function __construct(string $environment, bool $debug, private readonly bool $fakeContainer = true)
-    {
+    public function __construct(
+        string $environment,
+        bool $debug,
+        private readonly bool $fakeContainer = true,
+        private array $bundlesToRegister = [],
+    ) {
         parent::__construct($environment, $debug);
     }
 
@@ -29,7 +33,7 @@
 
     public function registerBundles(): iterable
     {
-        return [];
+        return $this->bundlesToRegister;
     }
 
     public function registerContainerConfiguration(LoaderInterface $loader): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/EsiFragmentRendererTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/EsiFragmentRendererTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/EsiFragmentRendererTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/EsiFragmentRendererTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -110,12 +110,13 @@
 
     private function getInlineStrategy($called = false)
     {
-        $inline = $this->createMock(InlineFragmentRenderer::class);
-
-        if ($called) {
-            $inline->expects($this->once())->method('render');
+        if (!$called) {
+            return $this->createStub(InlineFragmentRenderer::class);
         }
 
+        $inline = $this->createMock(InlineFragmentRenderer::class);
+        $inline->expects($this->once())->method('render');
+
         return $inline;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
             new Response('foo'),
             [
                 '/',
-                $this->callback(function (Request $request) use ($expectedRequest) {
+                $this->callback(static function (Request $request) use ($expectedRequest) {
                     $expectedRequest->server->remove('REQUEST_TIME_FLOAT');
                     $request->server->remove('REQUEST_TIME_FLOAT');
 
@@ -88,14 +88,12 @@
 
     protected function getHandler($returnValue, $arguments = [])
     {
-        $renderer = $this->createMock(FragmentRendererInterface::class);
+        $renderer = $this->createStub(FragmentRendererInterface::class);
         $renderer
-            ->expects($this->any())
             ->method('getName')
             ->willReturn('foo')
         ;
         $e = $renderer
-            ->expects($this->any())
             ->method('render')
             ->willReturn($returnValue)
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -102,7 +102,7 @@
 
     public function testRenderExceptionIgnoreErrorsWithAlt()
     {
-        $strategy = new InlineFragmentRenderer($this->getKernel(function () {
+        $strategy = new InlineFragmentRenderer($this->getKernel(static function () {
             static $firstCall = true;
 
             if ($firstCall) {
@@ -119,9 +119,8 @@
 
     private function getKernel($returnValue)
     {
-        $kernel = $this->createMock(HttpKernelInterface::class);
+        $kernel = $this->createStub(HttpKernelInterface::class);
         $mocker = $kernel
-            ->expects($this->any())
             ->method('handle')
         ;
 
@@ -142,7 +141,7 @@
         $controllerResolver
             ->expects($this->once())
             ->method('getController')
-            ->willReturn(function () {
+            ->willReturn(static function () {
                 ob_start();
                 echo 'bar';
                 throw new \RuntimeException();
@@ -311,7 +310,7 @@
         $kernel
             ->expects($this->once())
             ->method('handle')
-            ->with($this->callback(function (Request $request) use ($expectedRequest) {
+            ->with($this->callback(static function (Request $request) use ($expectedRequest) {
                 $expectedRequest->server->remove('REQUEST_TIME_FLOAT');
                 $request->server->remove('REQUEST_TIME_FLOAT');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/SsiFragmentRendererTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/SsiFragmentRendererTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/SsiFragmentRendererTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Fragment/SsiFragmentRendererTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -101,12 +101,13 @@
 
     private function getInlineStrategy($called = false)
     {
-        $inline = $this->createMock(InlineFragmentRenderer::class);
-
-        if ($called) {
-            $inline->expects($this->once())->method('render');
+        if (!$called) {
+            return $this->createStub(InlineFragmentRenderer::class);
         }
 
+        $inline = $this->createMock(InlineFragmentRenderer::class);
+        $inline->expects($this->once())->method('render');
+
         return $inline;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -238,17 +238,17 @@
     protected function getCache($request, $response)
     {
         $cache = $this->getMockBuilder(HttpCache::class)->onlyMethods(['getRequest', 'handle'])->disableOriginalConstructor()->getMock();
-        $cache->expects($this->any())
+        $cache->expects($this->atLeastOnce())
               ->method('getRequest')
               ->willReturn($request)
         ;
         if (\is_array($response)) {
-            $cache->expects($this->any())
+            $cache
                   ->method('handle')
                   ->willReturn(...$response)
             ;
         } else {
-            $cache->expects($this->any())
+            $cache
                   ->method('handle')
                   ->willReturn($response)
             ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     protected $responses;
     protected $catch;
     protected $esi;
-    protected Store $store;
+    protected ?Store $store = null;
 
     protected function setUp(): void
     {
@@ -115,7 +115,9 @@
 
         $this->kernel->reset();
 
-        $this->store = new Store(sys_get_temp_dir().'/http_cache');
+        if (!$this->store) {
+            $this->store = $this->createStore();
+        }
 
         if (!isset($this->cacheConfig['debug'])) {
             $this->cacheConfig['debug'] = true;
@@ -183,4 +185,9 @@
 
         closedir($fp);
     }
+
+    protected function createStore(): Store
+    {
+        return new Store(sys_get_temp_dir().'/http_cache');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,6 +18,7 @@
 use Symfony\Component\HttpKernel\Event\TerminateEvent;
 use Symfony\Component\HttpKernel\HttpCache\Esi;
 use Symfony\Component\HttpKernel\HttpCache\HttpCache;
+use Symfony\Component\HttpKernel\HttpCache\Store;
 use Symfony\Component\HttpKernel\HttpCache\StoreInterface;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\Kernel;
@@ -31,9 +32,7 @@
 
     public function testTerminateDelegatesTerminationOnlyForTerminableInterface()
     {
-        $storeMock = $this->getMockBuilder(StoreInterface::class)
-            ->disableOriginalConstructor()
-            ->getMock();
+        $storeMock = $this->createStub(StoreInterface::class);
 
         // does not implement TerminableInterface
         $kernel = new TestKernel();
@@ -59,11 +58,10 @@
     {
         $terminateEvents = [];
 
-        $eventDispatcher = $this->createMock(EventDispatcher::class);
+        $eventDispatcher = $this->createStub(EventDispatcher::class);
         $eventDispatcher
-            ->expects($this->any())
             ->method('dispatch')
-            ->with($this->callback(function ($event) use (&$terminateEvents) {
+            ->with($this->callback(static function ($event) use (&$terminateEvents) {
                 if ($event instanceof TerminateEvent) {
                     $terminateEvents[] = $event;
                 }
@@ -102,6 +100,49 @@
     }
 
     /**
+     * @dataProvider provideTerminateBackendRequestCases
+     */
+    public function testTerminateUsesBackendRequestOnCacheMiss(string $method, string $expectedMethod)
+    {
+        $terminateEvents = [];
+
+        $eventDispatcher = $this->createStub(EventDispatcher::class);
+        $eventDispatcher
+            ->method('dispatch')
+            ->with($this->callback(static function ($event) use (&$terminateEvents) {
+                if ($event instanceof TerminateEvent) {
+                    $terminateEvents[] = $event;
+                }
+
+                return true;
+            }));
+
+        $this->setNextResponse(
+            200,
+            ['Cache-Control' => 'public, s-maxage=60'],
+            'Hello World',
+            static function (Request $request): void {
+                $request->attributes->set('terminate_attribute', 'present');
+            },
+            $eventDispatcher
+        );
+
+        $this->request($method, '/');
+        $this->cache->terminate($this->request, $this->response);
+
+        $this->assertCount(1, $terminateEvents);
+        $this->assertSame($expectedMethod, $terminateEvents[0]->getRequest()->getMethod());
+        $this->assertSame('present', $terminateEvents[0]->getRequest()->attributes->get('terminate_attribute'));
+    }
+
+    public static function provideTerminateBackendRequestCases(): iterable
+    {
+        yield 'GET is forwarded as-is' => ['GET', 'GET'];
+        // HEAD requests are forwarded to the backend as GET sub-requests
+        yield 'HEAD is forwarded as GET' => ['HEAD', 'GET'];
+    }
+
+    /**
      * @group legacy
      */
     public function testDoesCallTerminateOnFreshResponseIfConfigured()
@@ -114,7 +155,7 @@
         $eventDispatcher
             ->expects($this->any())
             ->method('dispatch')
-            ->with($this->callback(function ($event) use (&$terminateEvents) {
+            ->with($this->callback(static function ($event) use (&$terminateEvents) {
                 if ($event instanceof TerminateEvent) {
                     $terminateEvents[] = $event;
                 }
@@ -273,7 +314,7 @@
     {
         $time = \DateTimeImmutable::createFromFormat('U', time());
 
-        $this->setNextResponse(200, [], '', function ($request, $response) use ($time) {
+        $this->setNextResponse(200, [], '', static function ($request, $response) use ($time) {
             $response->setStatusCode(200);
             $response->headers->set('ETag', '12345');
             $response->headers->set('Last-Modified', $time->format(\DATE_RFC2822));
@@ -325,7 +366,7 @@
 
     public function testValidatesPrivateResponsesCachedOnTheClient()
     {
-        $this->setNextResponse(200, [], '', function (Request $request, $response) {
+        $this->setNextResponse(200, [], '', static function (Request $request, $response) {
             $etags = preg_split('/\s*,\s*/', $request->headers->get('IF_NONE_MATCH', ''));
             if ($request->cookies->has('authenticated')) {
                 $response->headers->set('Cache-Control', 'private, no-store');
@@ -384,7 +425,7 @@
     {
         $count = 0;
 
-        $this->setNextResponse(200, ['Cache-Control' => 'public, max-age=10000'], '', function ($request, $response) use (&$count) {
+        $this->setNextResponse(200, ['Cache-Control' => 'public, max-age=10000'], '', static function ($request, $response) use (&$count) {
             ++$count;
             $response->setContent(1 == $count ? 'Hello World' : 'Goodbye World');
         });
@@ -411,7 +452,7 @@
     {
         $count = 0;
 
-        $this->setNextResponse(200, ['Cache-Control' => 'public, max-age=10000'], '', function ($request, $response) use (&$count) {
+        $this->setNextResponse(200, ['Cache-Control' => 'public, max-age=10000'], '', static function ($request, $response) use (&$count) {
             ++$count;
             $response->setContent(1 == $count ? 'Hello World' : 'Goodbye World');
         });
@@ -442,7 +483,7 @@
     {
         $count = 0;
 
-        $this->setNextResponse(200, [], '', function ($request, $response) use (&$count) {
+        $this->setNextResponse(200, [], '', static function ($request, $response) use (&$count) {
             ++$count;
             $response->headers->set('Cache-Control', 'public, max-age=10000');
             $response->setETag($count);
@@ -472,7 +513,7 @@
     {
         $count = 0;
 
-        $this->setNextResponse(200, [], '', function ($request, $response) use (&$count) {
+        $this->setNextResponse(200, [], '', static function ($request, $response) use (&$count) {
             ++$count;
             $response->headers->set('Cache-Control', 'public, max-age=10000');
             $response->setETag($count);
@@ -717,6 +758,7 @@
          */
         sleep(10);
 
+        $this->store = $this->createStore(); // create another store instance that does not hold the current lock
         $this->request('GET', '/');
         $this->assertHttpKernelIsNotCalled();
         $this->assertEquals(200, $this->response->getStatusCode());
@@ -735,6 +777,64 @@
         $this->assertEquals('Old response', $this->response->getContent());
     }
 
+    public function testHitBackendOnlyOnceWhenCacheWasLocked()
+    {
+        // Disable stale-while-revalidate, it circumvents waiting for the lock
+        $this->cacheConfig['stale_while_revalidate'] = 0;
+
+        $this->setNextResponses([
+            [
+                'status' => 200,
+                'body' => 'initial response',
+                'headers' => [
+                    'Cache-Control' => 'public, no-cache',
+                    'Last-Modified' => 'some while ago',
+                ],
+            ],
+            [
+                'status' => 304,
+                'body' => '',
+                'headers' => [
+                    'Cache-Control' => 'public, no-cache',
+                    'Last-Modified' => 'some while ago',
+                ],
+            ],
+            [
+                'status' => 500,
+                'body' => 'The backend should not be called twice during revalidation',
+                'headers' => [],
+            ],
+        ]);
+
+        $this->request('GET', '/'); // warm the cache
+
+        // Use a store that simulates a cache entry being locked upon first attempt
+        $this->store = new class(sys_get_temp_dir().'/http_cache') extends Store {
+            private bool $hasLock = false;
+
+            public function lock(Request $request): bool
+            {
+                $hasLock = $this->hasLock;
+                $this->hasLock = true;
+
+                return $hasLock;
+            }
+
+            public function isLocked(Request $request): bool
+            {
+                return false;
+            }
+        };
+
+        $this->request('GET', '/'); // hit the cache with simulated lock/concurrency block
+
+        $this->assertEquals(200, $this->response->getStatusCode());
+        $this->assertEquals('initial response', $this->response->getContent());
+
+        $traces = $this->cache->getTraces();
+        $this->assertSame(['stale', 'valid', 'store'], current($traces));
+    }
+
     public function testHitsCachedResponseWithSMaxAgeDirective()
     {
         $time = \DateTimeImmutable::createFromFormat('U', time() - 5);
@@ -935,7 +1035,7 @@
     public function testValidatesCachedResponsesWithLastModifiedAndNoFreshnessInformation()
     {
         $time = \DateTimeImmutable::createFromFormat('U', time());
-        $this->setNextResponse(200, [], 'Hello World', function ($request, $response) use ($time) {
+        $this->setNextResponse(200, [], 'Hello World', static function ($request, $response) use ($time) {
             $response->headers->set('Cache-Control', 'public');
             $response->headers->set('Last-Modified', $time->format(\DATE_RFC2822));
             if ($time->format(\DATE_RFC2822) == $request->headers->get('IF_MODIFIED_SINCE')) {
@@ -1022,7 +1122,7 @@
     {
         $time = \DateTimeImmutable::createFromFormat('U', time());
 
-        $this->setNextResponse(200, [], 'Hello World', function (Request $request, Response $response) use ($time) {
+        $this->setNextResponse(200, [], 'Hello World', static function (Request $request, Response $response) use ($time) {
             $response->setSharedMaxAge(10);
             $response->headers->set('Last-Modified', $time->format(\DATE_RFC2822));
         });
@@ -1056,7 +1156,7 @@
     {
         $time = \DateTimeImmutable::createFromFormat('U', time());
         $count = 0;
-        $this->setNextResponse(200, [], 'Hello World', function ($request, $response) use ($time, &$count) {
+        $this->setNextResponse(200, [], 'Hello World', static function ($request, $response) use ($time, &$count) {
             $response->headers->set('Last-Modified', $time->format(\DATE_RFC2822));
             $response->headers->set('Cache-Control', 'public');
             switch (++$count) {
@@ -1127,7 +1227,7 @@
     public function testSendsNoContentWhenFresh()
     {
         $time = \DateTimeImmutable::createFromFormat('U', time());
-        $this->setNextResponse(200, [], 'Hello World', function ($request, $response) use ($time) {
+        $this->setNextResponse(200, [], 'Hello World', static function ($request, $response) use ($time) {
             $response->headers->set('Cache-Control', 'public, max-age=10');
             $response->headers->set('Last-Modified', $time->format(\DATE_RFC2822));
         });
@@ -1144,7 +1244,7 @@
 
     public function testInvalidatesCachedResponsesOnPost()
     {
-        $this->setNextResponse(200, [], 'Hello World', function ($request, $response) {
+        $this->setNextResponse(200, [], 'Hello World', static function ($request, $response) {
             if ('GET' == $request->getMethod()) {
                 $response->setStatusCode(200);
                 $response->headers->set('Cache-Control', 'public, max-age=500');
@@ -1193,7 +1293,7 @@
     public function testServesFromCacheWhenHeadersMatch()
     {
         $count = 0;
-        $this->setNextResponse(200, ['Cache-Control' => 'max-age=10000'], '', function ($request, $response) use (&$count) {
+        $this->setNextResponse(200, ['Cache-Control' => 'max-age=10000'], '', static function ($request, $response) use (&$count) {
             $response->headers->set('Vary', 'Accept User-Agent Foo');
             $response->headers->set('Cache-Control', 'public, max-age=10');
             $response->headers->set('X-Response-Count', ++$count);
@@ -1217,7 +1317,7 @@
     public function testStoresMultipleResponsesWhenHeadersDiffer()
     {
         $count = 0;
-        $this->setNextResponse(200, ['Cache-Control' => 'max-age=10000'], '', function ($request, $response) use (&$count) {
+        $this->setNextResponse(200, ['Cache-Control' => 'max-age=10000'], '', static function ($request, $response) use (&$count) {
             $response->headers->set('Vary', 'Accept User-Agent Foo');
             $response->headers->set('Cache-Control', 'public, max-age=10');
             $response->headers->set('X-Response-Count', ++$count);
@@ -1358,7 +1458,7 @@
                 'headers' => [
                     'Cache-Control' => 's-maxage=10', // stays fresh
                     'Last-Modified' => 'Mon, 12 Aug 2024 10:05:00 +0000',
-                ]
+                ],
             ],
         ]);
 
@@ -1415,7 +1515,7 @@
                 'headers' => [
                     'Cache-Control' => 's-maxage=0', // goes stale immediately
                     'Last-Modified' => 'Mon, 12 Aug 2024 10:05:00 +0000',
-                ]
+                ],
             ],
         ]);
 
@@ -1480,7 +1580,7 @@
                 'headers' => [
                     'Cache-Control' => 's-maxage=10',
                     'Last-Modified' => 'Mon, 12 Aug 2024 10:00:00 +0000',
-                ]
+                ],
             ],
         ]);
 
@@ -1770,7 +1870,7 @@
     public function testUsesOriginalRequestForSurrogate()
     {
         $kernel = $this->createMock(HttpKernelInterface::class);
-        $store = $this->createMock(StoreInterface::class);
+        $store = $this->createStub(StoreInterface::class);
 
         $kernel
             ->expects($this->exactly(2))
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/ResponseCacheStrategyTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/ResponseCacheStrategyTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/ResponseCacheStrategyTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/ResponseCacheStrategyTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -348,7 +348,7 @@
     public function testCacheControlMerging(array $expects, array $main, array $surrogates)
     {
         $cacheStrategy = new ResponseCacheStrategy();
-        $buildResponse = function ($config) {
+        $buildResponse = static function ($config) {
             $response = new Response();
 
             foreach ($config as $key => $value) {
@@ -400,14 +400,14 @@
             } elseif ('age' === $key) {
                 $this->assertSame($value, $response->getAge());
             } elseif (true === $value) {
-                $this->assertTrue($response->headers->hasCacheControlDirective($key), sprintf('Cache-Control header must have "%s" flag', $key));
+                $this->assertTrue($response->headers->hasCacheControlDirective($key), \sprintf('Cache-Control header must have "%s" flag', $key));
             } elseif (false === $value) {
                 $this->assertFalse(
                     $response->headers->hasCacheControlDirective($key),
-                    sprintf('Cache-Control header must NOT have "%s" flag', $key)
+                    \sprintf('Cache-Control header must NOT have "%s" flag', $key)
                 );
             } else {
-                $this->assertSame($value, $response->headers->getCacheControlDirective($key), sprintf('Cache-Control flag "%s" should be "%s"', $key, $value));
+                $this->assertSame($value, $response->headers->getCacheControlDirective($key), \sprintf('Cache-Control flag "%s" should be "%s"', $key, $value));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/SsiTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/SsiTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/SsiTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/SsiTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -194,17 +194,17 @@
     protected function getCache($request, $response)
     {
         $cache = $this->getMockBuilder(HttpCache::class)->onlyMethods(['getRequest', 'handle'])->disableOriginalConstructor()->getMock();
-        $cache->expects($this->any())
+        $cache->expects($this->atLeastOnce())
               ->method('getRequest')
               ->willReturn($request)
         ;
         if (\is_array($response)) {
-            $cache->expects($this->any())
+            $cache
                   ->method('handle')
                   ->willReturn(...$response)
             ;
         } else {
-            $cache->expects($this->any())
+            $cache
                   ->method('handle')
                   ->willReturn($response)
             ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -349,6 +349,127 @@
         $this->assertSame($content, $response->getContent());
     }
 
+    /**
+     * Basic case when the second header has a different value.
+     * Both responses should be cached.
+     */
+    public function testWriteWithMultipleVaryAndCachedAllResponse()
+    {
+        $req1 = Request::create('/foo', 'get', [], [], [], ['HTTP_FOO' => 'foo', 'HTTP_BAR' => 'bar']);
+        $content = str_repeat('a', 24).'b'.str_repeat('a', 24);
+        $res1 = new Response($content, 200, ['vary' => ['Foo', 'Bar'], 'X-Body-Eval' => 'SSI']);
+        $this->store->write($req1, $res1);
+
+        $responseLook = $this->store->lookup($req1);
+        $this->assertSame($content, $responseLook->getContent());
+
+        $req2 = Request::create('/foo', 'get', [], [], [], ['HTTP_FOO' => 'foo', 'HTTP_BAR' => 'foobar']);
+        $content2 = str_repeat('b', 24).'a'.str_repeat('b', 24);
+        $res2 = new Response($content2, 200, ['vary' => ['Foo', 'Bar'], 'X-Body-Eval' => 'SSI']);
+        $this->store->write($req2, $res2);
+
+        $responseLook = $this->store->lookup($req2);
+        $this->assertSame($content2, $responseLook->getContent());
+
+        $responseLook = $this->store->lookup($req1);
+        $this->assertSame($content, $responseLook->getContent());
+    }
+
+    /**
+     * Basic case when the second header has the same value on both requests.
+     * The last response should be cached.
+     */
+    public function testWriteWithMultipleVaryAndCachedLastResponse()
+    {
+        $req1 = Request::create('/foo', 'get', [], [], [], ['HTTP_FOO' => 'foo', 'HTTP_BAR' => 'bar']);
+        $content = str_repeat('a', 24).'b'.str_repeat('a', 24);
+        $res1 = new Response($content, 200, ['vary' => ['Foo', 'Bar'], 'X-Body-Eval' => 'SSI']);
+        $this->store->write($req1, $res1);
+
+        $responseLook = $this->store->lookup($req1);
+        $this->assertSame($content, $responseLook->getContent());
+
+        $req2 = Request::create('/foo', 'get', [], [], [], ['HTTP_FOO' => 'foo', 'HTTP_BAR' => 'bar']);
+        $content2 = str_repeat('b', 24).'a'.str_repeat('b', 24);
+        $res2 = new Response($content2, 200, ['vary' => ['Foo', 'Bar'], 'X-Body-Eval' => 'SSI']);
+        $this->store->write($req2, $res2);
+
+        $responseLook = $this->store->lookup($req2);
+        $this->assertSame($content2, $responseLook->getContent());
+
+        $responseLook = $this->store->lookup($req1);
+        $this->assertSame($content2, $responseLook->getContent());
+    }
+
+    /**
+     * Case when a vary value has been removed.
+     * Both responses should be cached.
+     */
+    public function testWriteWithChangingVary()
+    {
+        $req1 = Request::create('/foo', 'get', [], [], [], ['HTTP_FOO' => 'foo', 'HTTP_BAR' => 'bar']);
+        $content = str_repeat('a', 24).'b'.str_repeat('a', 24);
+        $res1 = new Response($content, 200, ['vary' => ['Foo', 'bar', 'foobar'], 'X-Body-Eval' => 'SSI']);
+        $this->store->write($req1, $res1);
+
+        $req2 = Request::create('/foo', 'get', [], [], [], ['HTTP_FOO' => 'foo', 'HTTP_FOOBAR' => 'bar']);
+        $content2 = str_repeat('b', 24).'a'.str_repeat('b', 24);
+        $res2 = new Response($content2, 200, ['vary' => ['Foo', 'foobar'], 'X-Body-Eval' => 'SSI']);
+        $this->store->write($req2, $res2);
+
+        $responseLook = $this->store->lookup($req2);
+        $this->assertSame($content2, $responseLook->getContent());
+
+        $responseLook = $this->store->lookup($req1);
+        $this->assertSame($content, $responseLook->getContent());
+    }
+
+    /**
+     * Case when a vary value has been removed and headers of the new vary list are the same.
+     * The last response should be cached.
+     */
+    public function testWriteWithRemoveVaryAndAllHeadersOnTheList()
+    {
+        $req1 = Request::create('/foo', 'get', [], [], [], ['HTTP_FOO' => 'foo', 'HTTP_FOOBAR' => 'bar']);
+        $content = str_repeat('a', 24).'b'.str_repeat('a', 24);
+        $res1 = new Response($content, 200, ['vary' => ['Foo', 'bar', 'foobar'], 'X-Body-Eval' => 'SSI']);
+        $this->store->write($req1, $res1);
+
+        $req2 = Request::create('/foo', 'get', [], [], [], ['HTTP_FOO' => 'foo', 'HTTP_FOOBAR' => 'bar']);
+        $content2 = str_repeat('b', 24).'a'.str_repeat('b', 24);
+        $res2 = new Response($content2, 200, ['vary' => ['Foo', 'foobar'], 'X-Body-Eval' => 'SSI']);
+        $this->store->write($req2, $res2);
+
+        $responseLook = $this->store->lookup($req2);
+        $this->assertSame($content2, $responseLook->getContent());
+
+        $responseLook = $this->store->lookup($req1);
+        $this->assertSame($content2, $responseLook->getContent());
+    }
+
+    /**
+     * Case when a vary value has been added and headers of the new vary list are the same.
+     * The last response should be cached.
+     */
+    public function testWriteWithAddingVaryAndAllHeadersOnTheList()
+    {
+        $req1 = Request::create('/foo', 'get', [], [], [], ['HTTP_FOO' => 'foo', 'HTTP_FOOBAR' => 'bar']);
+        $content = str_repeat('a', 24).'b'.str_repeat('a', 24);
+        $res1 = new Response($content, 200, ['vary' => ['Foo', 'foobar'], 'X-Body-Eval' => 'SSI']);
+        $this->store->write($req1, $res1);
+
+        $req2 = Request::create('/foo', 'get', [], [], [], ['HTTP_FOO' => 'foo', 'HTTP_BAR' => 'foobar', 'HTTP_FOOBAR' => 'bar']);
+        $content2 = str_repeat('b', 24).'a'.str_repeat('b', 24);
+        $res2 = new Response($content2, 200, ['vary' => ['Foo', 'bar', 'foobar'], 'X-Body-Eval' => 'SSI']);
+        $this->store->write($req2, $res2);
+
+        $responseLook = $this->store->lookup($req2);
+        $this->assertSame($content2, $responseLook->getContent());
+
+        $responseLook = $this->store->lookup($req1);
+        $this->assertSame($content, $responseLook->getContent());
+    }
+
     protected function storeSimpleEntry($path = null, $headers = [])
     {
         $path ??= '/test';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpKernelBrowserTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpKernelBrowserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpKernelBrowserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpKernelBrowserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -81,7 +81,7 @@
         $r = new \ReflectionObject($client);
         $m = $r->getMethod('filterResponse');
 
-        $response = new StreamedResponse(function () {
+        $response = new StreamedResponse(static function () {
             echo 'foo';
         });
 
@@ -158,11 +158,11 @@
             ->getMock()
         ;
         /* should be modified when the getClientSize will be removed */
-        $file->expects($this->any())
+        $file->expects($this->atLeastOnce())
             ->method('getSize')
             ->willReturn(\PHP_INT_MAX)
         ;
-        $file->expects($this->any())
+        $file
             ->method('getClientSize')
             ->willReturn(\PHP_INT_MAX)
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,7 +106,7 @@
     public function testHandleWhenControllerThrowsAnExceptionAndCatchIsTrueWithAHandlingListener()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
+        $dispatcher->addListener(KernelEvents::EXCEPTION, static function ($event) {
             $event->setResponse(new Response($event->getThrowable()->getMessage()));
         });
 
@@ -125,7 +125,7 @@
     public function testHandleWhenControllerThrowsAThrowableAndCatchIsTrueWithAHandlingListener()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
+        $dispatcher->addListener(KernelEvents::EXCEPTION, static function ($event) {
             $event->setResponse(new Response($event->getThrowable()->getMessage()));
         });
 
@@ -144,7 +144,7 @@
     public function testHandleWhenControllerThrowsAThrowableAndCatchIsFalseWithAHandlingListener()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
+        $dispatcher->addListener(KernelEvents::EXCEPTION, static function ($event) {
             $event->setResponse(new Response($event->getThrowable()->getMessage()));
         });
 
@@ -161,19 +161,17 @@
     public function testHandleWhenControllerThrowsAThrowableAndCatchIsTrueNotHandlingThrowables()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
+        $dispatcher->addListener(KernelEvents::EXCEPTION, static function ($event) {
             $event->setResponse(new Response($event->getThrowable()->getMessage()));
         });
 
-        $controllerResolver = $this->createMock(ControllerResolverInterface::class);
+        $controllerResolver = $this->createStub(ControllerResolverInterface::class);
         $controllerResolver
-            ->expects($this->any())
             ->method('getController')
             ->willReturn(static fn () => throw new \TypeError('foo'));
 
-        $argumentResolver = $this->createMock(ArgumentResolverInterface::class);
+        $argumentResolver = $this->createStub(ArgumentResolverInterface::class);
         $argumentResolver
-            ->expects($this->any())
             ->method('getArguments')
             ->willReturn([]);
 
@@ -193,7 +191,7 @@
         $exception = new \RuntimeException();
 
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
+        $dispatcher->addListener(KernelEvents::EXCEPTION, static function ($event) {
             // should set a response, but does not
         });
 
@@ -210,7 +208,7 @@
     public function testHandleExceptionWithARedirectionResponse()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
+        $dispatcher->addListener(KernelEvents::EXCEPTION, static function ($event) {
             $event->setResponse(new RedirectResponse('/login', 301));
         });
 
@@ -224,7 +222,7 @@
     public function testHandleHttpException()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
+        $dispatcher->addListener(KernelEvents::EXCEPTION, static function ($event) {
             $event->setResponse(new Response($event->getThrowable()->getMessage()));
         });
 
@@ -251,7 +249,7 @@
     public function testHandleWhenAnExceptionIsHandledWithASpecificStatusCode($expectedStatusCode)
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function (ExceptionEvent $event) use ($expectedStatusCode) {
+        $dispatcher->addListener(KernelEvents::EXCEPTION, static function (ExceptionEvent $event) use ($expectedStatusCode) {
             $event->allowCustomResponseCode();
             $event->setResponse(new Response('', $expectedStatusCode));
         });
@@ -274,7 +272,7 @@
     public function testHandleWhenAListenerReturnsAResponse()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::REQUEST, function ($event) {
+        $dispatcher->addListener(KernelEvents::REQUEST, static function ($event) {
             $event->setResponse(new Response('hello'));
         });
 
@@ -296,7 +294,7 @@
     {
         $response = new Response('foo');
         $dispatcher = new EventDispatcher();
-        $kernel = $this->getHttpKernel($dispatcher, fn () => $response);
+        $kernel = $this->getHttpKernel($dispatcher, static fn () => $response);
 
         $this->assertSame($response, $kernel->handle(new Request()));
     }
@@ -354,11 +352,11 @@
     public function testHandleWhenTheControllerDoesNotReturnAResponseButAViewIsRegistered()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::VIEW, function ($event) {
+        $dispatcher->addListener(KernelEvents::VIEW, static function ($event) {
             $event->setResponse(new Response($event->getControllerResult()));
         });
 
-        $kernel = $this->getHttpKernel($dispatcher, fn () => 'foo');
+        $kernel = $this->getHttpKernel($dispatcher, static fn () => 'foo');
 
         $this->assertEquals('foo', $kernel->handle(new Request())->getContent());
     }
@@ -366,7 +364,7 @@
     public function testHandleWithAResponseListener()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::RESPONSE, function ($event) {
+        $dispatcher->addListener(KernelEvents::RESPONSE, static function ($event) {
             $event->setResponse(new Response('foo'));
         });
         $kernel = $this->getHttpKernel($dispatcher);
@@ -377,11 +375,11 @@
     public function testHandleAllowChangingControllerArguments()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::CONTROLLER_ARGUMENTS, function ($event) {
+        $dispatcher->addListener(KernelEvents::CONTROLLER_ARGUMENTS, static function ($event) {
             $event->setArguments(['foo']);
         });
 
-        $kernel = $this->getHttpKernel($dispatcher, fn ($content) => new Response($content));
+        $kernel = $this->getHttpKernel($dispatcher, static fn ($content) => new Response($content));
 
         $this->assertResponseEquals(new Response('foo'), $kernel->handle(new Request()));
     }
@@ -389,11 +387,11 @@
     public function testHandleAllowChangingControllerAndArguments()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::CONTROLLER_ARGUMENTS, function ($event) {
+        $dispatcher->addListener(KernelEvents::CONTROLLER_ARGUMENTS, static function ($event) {
             $oldController = $event->getController();
             $oldArguments = $event->getArguments();
 
-            $newController = function ($id) use ($oldController, $oldArguments) {
+            $newController = static function ($id) use ($oldController, $oldArguments) {
                 $response = $oldController(...$oldArguments);
 
                 $response->headers->set('X-Id', $id);
@@ -405,7 +403,7 @@
             $event->setArguments(['bar']);
         });
 
-        $kernel = $this->getHttpKernel($dispatcher, fn ($content) => new Response($content), null, ['foo']);
+        $kernel = $this->getHttpKernel($dispatcher, static fn ($content) => new Response($content), null, ['foo']);
 
         $this->assertResponseEquals(new Response('foo', 200, ['X-Id' => 'bar']), $kernel->handle(new Request()));
     }
@@ -414,7 +412,7 @@
     {
         $dispatcher = new EventDispatcher();
         $kernel = $this->getHttpKernel($dispatcher);
-        $dispatcher->addListener(KernelEvents::TERMINATE, function ($event) use (&$called, &$capturedKernel, &$capturedRequest, &$capturedResponse) {
+        $dispatcher->addListener(KernelEvents::TERMINATE, static function ($event) use (&$called, &$capturedKernel, &$capturedRequest, &$capturedResponse) {
             $called = true;
             $capturedKernel = $event->getKernel();
             $capturedRequest = $event->getRequest();
@@ -434,7 +432,7 @@
         $requestStack = new RequestStack();
         $kernel = $this->getHttpKernel($dispatcher, null, $requestStack);
 
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function (ExceptionEvent $event) use (&$capturedRequest, $requestStack) {
+        $dispatcher->addListener(KernelEvents::EXCEPTION, static function (ExceptionEvent $event) use (&$capturedRequest, $requestStack) {
             $capturedRequest = $requestStack->getCurrentRequest();
             $event->setResponse(new Response());
         });
@@ -463,7 +461,7 @@
         $request = new Request();
         $stack = new RequestStack();
         $dispatcher = new EventDispatcher();
-        $kernel = $this->getHttpKernel($dispatcher, fn () => new StreamedResponse(function () use ($stack) {
+        $kernel = $this->getHttpKernel($dispatcher, static fn () => new StreamedResponse(static function () use ($stack) {
             echo $stack->getMainRequest()::class;
         }), $stack);
 
@@ -485,7 +483,7 @@
         $request->headers->set('X_FORWARDED_FOR', '3.3.3.3');
 
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::REQUEST, function ($event) {
+        $dispatcher->addListener(KernelEvents::REQUEST, static function ($event) {
             $event->getRequest()->getClientIp();
         });
 
@@ -497,17 +495,15 @@
 
     private function getHttpKernel(EventDispatcherInterface $eventDispatcher, $controller = null, ?RequestStack $requestStack = null, array $arguments = [], bool $handleAllThrowables = false)
     {
-        $controller ??= fn () => new Response('Hello');
+        $controller ??= static fn () => new Response('Hello');
 
-        $controllerResolver = $this->createMock(ControllerResolverInterface::class);
+        $controllerResolver = $this->createStub(ControllerResolverInterface::class);
         $controllerResolver
-            ->expects($this->any())
             ->method('getController')
             ->willReturn($controller);
 
-        $argumentResolver = $this->createMock(ArgumentResolverInterface::class);
+        $argumentResolver = $this->createStub(ArgumentResolverInterface::class);
         $argumentResolver
-            ->expects($this->any())
             ->method('getArguments')
             ->willReturn($arguments);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/KernelTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/KernelTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/KernelTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/KernelTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
 use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
+use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\Filesystem\Exception\IOException;
 use Symfony\Component\Filesystem\Filesystem;
 use Symfony\Component\HttpFoundation\Request;
@@ -33,6 +34,7 @@
 use Symfony\Component\HttpKernel\HttpKernel;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\Kernel;
+use Symfony\Component\HttpKernel\KernelInterface;
 use Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest;
 use Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTestWithLoadClassCache;
 use Symfony\Component\HttpKernel\Tests\Fixtures\KernelWithoutBundles;
@@ -65,7 +67,7 @@
     public function testEmptyEnv()
     {
         $this->expectException(\InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('Invalid environment provided to "%s": the environment cannot be empty.', KernelForTest::class));
+        $this->expectExceptionMessage(\sprintf('Invalid environment provided to "%s": the environment cannot be empty.', KernelForTest::class));
 
         new KernelForTest('', false);
     }
@@ -111,7 +113,7 @@
         $this->assertFileExists($containerDir);
         $this->assertFileDoesNotExist($containerDir.'.legacy');
 
-        $kernel = new CustomProjectDirKernel(function ($container) { $container->register('foo', 'stdClass')->setPublic(true); });
+        $kernel = new CustomProjectDirKernel(static function ($container) { $container->register('foo', 'stdClass')->setPublic(true); });
         $kernel->boot();
 
         $this->assertFileExists($containerDir);
@@ -147,7 +149,7 @@
     public function testBootSetsTheBootedFlagToTrue()
     {
         // use test kernel to access isBooted()
-        $kernel = $this->getKernel(['initializeBundles']);
+        $kernel = new KernelForTest('test', false);
         $kernel->boot();
 
         $this->assertTrue($kernel->isBooted());
@@ -178,7 +180,7 @@
         $bundle->expects($this->once())
             ->method('shutdown');
 
-        $kernel = $this->getKernel([], [$bundle]);
+        $kernel = new KernelForTest('test', false, true, [$bundle]);
 
         $kernel->boot();
         $kernel->shutdown();
@@ -196,10 +198,7 @@
             })
         ;
 
-        $kernel = $this->getKernel(['getBundles']);
-        $kernel->expects($this->any())
-            ->method('getBundles')
-            ->willReturn([$bundle]);
+        $kernel = new KernelForTest('test', false, true, [$bundle]);
 
         $kernel->boot();
         $kernel->shutdown();
@@ -233,9 +232,7 @@
         $catch = true;
         $request = new Request();
 
-        $httpKernelMock = $this->getMockBuilder(HttpKernel::class)
-            ->disableOriginalConstructor()
-            ->getMock();
+        $httpKernelMock = $this->createStub(HttpKernelInterface::class);
 
         $kernel = $this->getKernel(['getHttpKernel', 'boot']);
         $kernel->expects($this->once())
@@ -280,75 +277,76 @@
             ['<?php echo/**/\foo();', '<?php echo \foo();'],
             ['<?php echo/** bar */\foo();', '<?php echo \foo();'],
             ['<?php /**/echo \foo();', '<?php echo \foo();'],
-            [<<<'EOF'
-<?php
-include_once \dirname(__DIR__).'/foo.php';
+            [
+                <<<'EOF'
+                    <?php
+                    include_once \dirname(__DIR__).'/foo.php';
 
-$string = 'string should not be   modified';
+                    $string = 'string should not be   modified';
 
-$string = 'string should not be
+                    $string = 'string should not be
 
-modified';
+                    modified';
 
 
-$heredoc = <<<HD
+                    $heredoc = <<<HD
 
 
-Heredoc should not be   modified {$a[1+$b]}
+                    Heredoc should not be   modified {$a[1+$b]}
 
 
-HD;
+                    HD;
 
-$nowdoc = <<<'ND'
+                    $nowdoc = <<<'ND'
 
 
-Nowdoc should not be   modified
+                    Nowdoc should not be   modified
 
 
-ND;
+                    ND;
 
-/**
- * some class comments to strip
- */
-class TestClass
-{
-    /**
-     * some method comments to strip
-     */
-    public function doStuff()
-    {
-        // inline comment
-    }
-}
-EOF
-, <<<'EOF'
-<?php
-include_once \dirname(__DIR__).'/foo.php';
-$string = 'string should not be   modified';
-$string = 'string should not be
+                    /**
+                     * some class comments to strip
+                     */
+                    class TestClass
+                    {
+                        /**
+                         * some method comments to strip
+                         */
+                        public function doStuff()
+                        {
+                            // inline comment
+                        }
+                    }
+                    EOF,
+                <<<'EOF'
+                    <?php
+                    include_once \dirname(__DIR__).'/foo.php';
+                    $string = 'string should not be   modified';
+                    $string = 'string should not be
 
-modified';
-$heredoc = <<<HD
+                    modified';
+                    $heredoc = <<<HD
 
 
-Heredoc should not be   modified {$a[1+$b]}
+                    Heredoc should not be   modified {$a[1+$b]}
 
 
-HD;
-$nowdoc = <<<'ND'
+                    HD;
+                    $nowdoc = <<<'ND'
 
 
-Nowdoc should not be   modified
+                    Nowdoc should not be   modified
 
 
-ND;
-class TestClass
-{
-    public function doStuff()
-    {
-        }
-}
-EOF
+                    ND;
+                    class TestClass
+                    {
+                        public function doStuff()
+                        {
+                            }
+                    }
+                    EOF,
             ],
         ];
     }
@@ -365,29 +363,31 @@
     public function testLocateResourceThrowsExceptionWhenNameIsNotValid()
     {
         $this->expectException(\InvalidArgumentException::class);
-        $this->getKernel()->locateResource('Foo');
+        (new KernelForTest('test', false))->locateResource('Foo');
     }
 
     public function testLocateResourceThrowsExceptionWhenNameIsUnsafe()
     {
         $this->expectException(\RuntimeException::class);
-        $this->getKernel()->locateResource('@FooBundle/../bar');
+        (new KernelForTest('test', false))->locateResource('@FooBundle/../bar');
     }
 
     public function testLocateResourceThrowsExceptionWhenBundleDoesNotExist()
     {
         $this->expectException(\InvalidArgumentException::class);
-        $this->getKernel()->locateResource('@FooBundle/config/routing.xml');
+        (new KernelForTest('test', false))->locateResource('@FooBundle/config/routing.xml');
     }
 
     public function testLocateResourceThrowsExceptionWhenResourceDoesNotExist()
     {
+        $bundle = $this->createStub(BundleInterface::class);
+        $bundle->method('getPath')->willReturn(__DIR__.'/Fixtures/Bundle1Bundle');
         $this->expectException(\InvalidArgumentException::class);
         $kernel = $this->getKernel(['getBundle']);
         $kernel
             ->expects($this->once())
             ->method('getBundle')
-            ->willReturn($this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle'))
+            ->willReturn($bundle)
         ;
 
         $kernel->locateResource('@Bundle1Bundle/config/routing.xml');
@@ -395,11 +395,13 @@
 
     public function testLocateResourceReturnsTheFirstThatMatches()
     {
+        $bundle = $this->createStub(BundleInterface::class);
+        $bundle->method('getPath')->willReturn(__DIR__.'/Fixtures/Bundle1Bundle');
         $kernel = $this->getKernel(['getBundle']);
         $kernel
             ->expects($this->once())
             ->method('getBundle')
-            ->willReturn($this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle'))
+            ->willReturn($bundle)
         ;
 
         $this->assertEquals(__DIR__.'/Fixtures/Bundle1Bundle/foo.txt', $kernel->locateResource('@Bundle1Bundle/foo.txt'));
@@ -407,11 +409,14 @@
 
     public function testLocateResourceOnDirectories()
     {
+        $bundle = $this->createStub(BundleInterface::class);
+        $bundle->method('getName')->willReturn('Bundle1Bundle');
+        $bundle->method('getPath')->willReturn(__DIR__.'/Fixtures/Bundle1Bundle');
         $kernel = $this->getKernel(['getBundle']);
         $kernel
             ->expects($this->exactly(2))
             ->method('getBundle')
-            ->willReturn($this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle', null, 'Bundle1Bundle'))
+            ->willReturn($bundle)
         ;
 
         $this->assertEquals(
@@ -428,10 +433,12 @@
     {
         $this->expectException(\LogicException::class);
         $this->expectExceptionMessage('Trying to register two bundles with the same name "DuplicateName"');
-        $fooBundle = $this->getBundle(__DIR__.'/Fixtures/FooBundle', 'FooBundle', 'DuplicateName');
-        $barBundle = $this->getBundle(__DIR__.'/Fixtures/BarBundle', 'BarBundle', 'DuplicateName');
+        $fooBundle = $this->createStub(BundleInterface::class);
+        $fooBundle->method('getName')->willReturn('DuplicateName');
+        $barBundle = $this->createStub(BundleInterface::class);
+        $barBundle->method('getName')->willReturn('DuplicateName');
 
-        $kernel = $this->getKernel([], [$fooBundle, $barBundle]);
+        $kernel = new KernelForTest('test', false, true, [$fooBundle, $barBundle]);
         $kernel->boot();
     }
 
@@ -513,7 +520,7 @@
         $this->assertFileExists($containerFile);
         unlink(__DIR__.'/Fixtures/var/cache/custom/Symfony_Component_HttpKernel_Tests_CustomProjectDirKernelCustomDebugContainer.php.meta');
 
-        $kernel = new CustomProjectDirKernel(function ($container) { $container->register('foo', 'stdClass')->setPublic(true); });
+        $kernel = new CustomProjectDirKernel(static function ($container) { $container->register('foo', 'stdClass')->setPublic(true); });
         $kernel->boot();
 
         $this->assertNotInstanceOf($containerClass, $kernel->getContainer());
@@ -523,7 +530,7 @@
 
     public function testKernelExtension()
     {
-        $kernel = new class() extends CustomProjectDirKernel implements ExtensionInterface {
+        $kernel = new class extends CustomProjectDirKernel implements ExtensionInterface {
             public function load(array $configs, ContainerBuilder $container): void
             {
                 $container->setParameter('test.extension-registered', true);
@@ -575,7 +582,7 @@
             ->expects($this->exactly(2))
             ->method('handle');
 
-        $kernel = new CustomProjectDirKernel(function ($container) {
+        $kernel = new CustomProjectDirKernel(static function ($container) {
             $container->addCompilerPass(new ResettableServicePass());
             $container->register('one', ResettableService::class)
                 ->setPublic(true)
@@ -598,12 +605,68 @@
         $this->assertEquals(1, ResettableService::$counter);
     }
 
+    public function testServicesAreNotResetBetweenHttpCacheFragments()
+    {
+        ResettableService::$counter = 0;
+        $fragmentKernel = new FragmentHandlingKernel();
+
+        $kernel = new CustomProjectDirKernel(static function (ContainerBuilder $container) {
+            $container->addCompilerPass(new ResettableServicePass());
+            $container->register('kernel', CustomProjectDirKernel::class)
+                ->setSynthetic(true)
+                ->setPublic(true);
+            $container->register('one', ResettableService::class)
+                ->setPublic(true)
+                ->addTag('kernel.reset', ['method' => 'reset']);
+            $container->register('services_resetter', ServicesResetter::class)->setPublic(true);
+            $container->register('http_cache', FragmentRenderingHttpCache::class)
+                ->setPublic(true)
+                ->addArgument(new Reference('kernel'));
+        }, $fragmentKernel, 'http_cache_fragments');
+
+        $kernel->handle(new Request());
+
+        $this->assertSame([
+            ['/first-fragment', HttpKernelInterface::MAIN_REQUEST],
+            ['/second-fragment', HttpKernelInterface::MAIN_REQUEST],
+        ], $fragmentKernel->handledPaths);
+        $this->assertSame([0, 0], $fragmentKernel->resetCounters);
+        $this->assertSame(0, ResettableService::$counter);
+
+        $kernel->boot();
+
+        $this->assertSame(1, ResettableService::$counter);
+    }
+
+    public function testHttpCacheHandlesRequestsAfterKernelBoot()
+    {
+        $kernel = new CustomProjectDirKernel(static function (ContainerBuilder $container) {
+            $container->register('http_cache', RecordingHttpCache::class)
+                ->setPublic(true);
+        }, new ThrowingHttpKernel(), 'http_cache_worker');
+
+        $kernel->boot();
+
+        $firstResponse = $kernel->handle(Request::create('/worker-first'));
+        $secondResponse = $kernel->handle(Request::create('/worker-second'));
+
+        /** @var RecordingHttpCache $httpCache */
+        $httpCache = $kernel->getContainer()->get('http_cache');
+
+        $this->assertSame([
+            ['/worker-first', HttpKernelInterface::MAIN_REQUEST],
+            ['/worker-second', HttpKernelInterface::MAIN_REQUEST],
+        ], $httpCache->handledPaths);
+        $this->assertSame('cached: /worker-first', $firstResponse->getContent());
+        $this->assertSame('cached: /worker-second', $secondResponse->getContent());
+    }
+
     /**
      * @group time-sensitive
      */
     public function testKernelStartTimeIsResetWhileBootingAlreadyBootedKernel()
     {
-        $kernel = $this->getKernel(['initializeBundles'], [], true);
+        $kernel = new KernelForTest('test', true);
         $kernel->boot();
         $preReBoot = $kernel->getStartTime();
 
@@ -674,37 +737,6 @@
     }
 
     /**
-     * Returns a mock for the BundleInterface.
-     */
-    protected function getBundle($dir = null, $className = null, $bundleName = null): BundleInterface
-    {
-        $bundle = $this
-            ->getMockBuilder(BundleInterface::class)
-            ->disableOriginalConstructor()
-        ;
-
-        if ($className) {
-            $bundle->setMockClassName($className);
-        }
-
-        $bundle = $bundle->getMock();
-
-        $bundle
-            ->expects($this->any())
-            ->method('getName')
-            ->willReturn($bundleName ?? $bundle::class)
-        ;
-
-        $bundle
-            ->expects($this->any())
-            ->method('getPath')
-            ->willReturn($dir)
-        ;
-
-        return $bundle;
-    }
-
-    /**
      * Returns a mock for the abstract kernel.
      *
      * @param array $methods Additional methods to mock (besides the abstract ones)
@@ -721,7 +753,7 @@
         ;
 
         $kernel = $kernelMockBuilder->getMock();
-        $kernel->expects($this->any())
+        $kernel
             ->method('registerBundles')
             ->willReturn($bundles)
         ;
@@ -811,3 +843,59 @@
         $container->setParameter('test.processed', true);
     }
 }
+
+class FragmentHandlingKernel implements HttpKernelInterface
+{
+    public array $handledPaths = [];
+    public array $resetCounters = [];
+
+    public function handle(Request $request, int $type = self::MAIN_REQUEST, bool $catch = true): Response
+    {
+        $this->handledPaths[] = [$request->getPathInfo(), $type];
+        $this->resetCounters[] = ResettableService::$counter;
+
+        return new Response($request->getPathInfo());
+    }
+}
+
+class FragmentRenderingHttpCache implements HttpKernelInterface
+{
+    public function __construct(
+        private KernelInterface $kernel,
+        private string $trackedServiceId = 'one',
+    ) {
+    }
+
+    public function handle(Request $request, int $type = self::MAIN_REQUEST, bool $catch = true): Response
+    {
+        $this->kernel->boot();
+        $this->kernel->getContainer()->get($this->trackedServiceId);
+
+        $responses = [];
+        foreach (['/first-fragment', '/second-fragment'] as $path) {
+            $responses[] = $this->kernel->handle(Request::create($path), self::MAIN_REQUEST, $catch);
+        }
+
+        return new Response(implode('', array_map(static fn (Response $response) => $response->getContent(), $responses)));
+    }
+}
+
+class RecordingHttpCache implements HttpKernelInterface
+{
+    public array $handledPaths = [];
+
+    public function handle(Request $request, int $type = self::MAIN_REQUEST, bool $catch = true): Response
+    {
+        $this->handledPaths[] = [$request->getPathInfo(), $type];
+
+        return new Response('cached: '.$request->getPathInfo());
+    }
+}
+
+class ThrowingHttpKernel implements HttpKernelInterface
+{
+    public function handle(Request $request, int $type = self::MAIN_REQUEST, bool $catch = true): Response
+    {
+        throw new \LogicException('The worker HTTP kernel should not be reached when the http_cache service handles the request.');
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Log/LoggerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Log/LoggerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Log/LoggerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Log/LoggerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -178,7 +178,7 @@
 
     public function testFormatter()
     {
-        $this->logger = new Logger(LogLevel::DEBUG, $this->tmpFile, fn ($level, $message, $context) => json_encode(['level' => $level, 'message' => $message, 'context' => $context]));
+        $this->logger = new Logger(LogLevel::DEBUG, $this->tmpFile, static fn ($level, $message, $context) => json_encode(['level' => $level, 'message' => $message, 'context' => $context]));
 
         $this->logger->error('An error', ['foo' => 'bar']);
         $this->logger->warning('A warning', ['baz' => 'bar']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Profiler/FileProfilerStorageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Profiler/FileProfilerStorageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Profiler/FileProfilerStorageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Profiler/FileProfilerStorageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -371,17 +371,17 @@
 
         yield 'One unexpired profile' => [
             <<<CSV
-            token0,127.0.0.0,,http://foo.bar/0,{$oneHourAgo->getTimestamp()},,
+                token0,127.0.0.0,,http://foo.bar/0,{$oneHourAgo->getTimestamp()},,
 
-            CSV,
+                CSV,
             '0',
         ];
 
         yield 'One unexpired profile with virtual type' => [
             <<<CSV
-            token0,127.0.0.0,,http://foo.bar/0,{$oneHourAgo->getTimestamp()},,virtual
+                token0,127.0.0.0,,http://foo.bar/0,{$oneHourAgo->getTimestamp()},,virtual
 
-            CSV,
+                CSV,
             '0',
         ];
 
@@ -389,17 +389,17 @@
 
         yield 'One expired profile' => [
             <<<CSV
-            token0,127.0.0.0,,http://foo.bar/0,{$threeDaysAgo->getTimestamp()},,
+                token0,127.0.0.0,,http://foo.bar/0,{$threeDaysAgo->getTimestamp()},,
 
-            CSV,
+                CSV,
             '48',
         ];
 
         yield 'One expired profile with virtual type' => [
             <<<CSV
-            token0,127.0.0.0,,http://foo.bar/0,{$threeDaysAgo->getTimestamp()},,virtual
+                token0,127.0.0.0,,http://foo.bar/0,{$threeDaysAgo->getTimestamp()},,virtual
 
-            CSV,
+                CSV,
             '55',
         ];
 
@@ -409,21 +409,21 @@
 
         yield 'Multiple expired profiles' => [
             <<<CSV
-            token0,127.0.0.0,,http://foo.bar/0,{$fourDaysAgo->getTimestamp()},,
-            token1,127.0.0.1,,http://foo.bar/1,{$threeDaysAgo->getTimestamp()},,
-            token2,127.0.0.2,,http://foo.bar/2,{$oneHourAgo->getTimestamp()},,
+                token0,127.0.0.0,,http://foo.bar/0,{$fourDaysAgo->getTimestamp()},,
+                token1,127.0.0.1,,http://foo.bar/1,{$threeDaysAgo->getTimestamp()},,
+                token2,127.0.0.2,,http://foo.bar/2,{$oneHourAgo->getTimestamp()},,
 
-            CSV,
+                CSV,
             '96',
         ];
 
         yield 'Multiple expired profiles with virtual type' => [
             <<<CSV
-            token0,127.0.0.0,,http://foo.bar/0,{$fourDaysAgo->getTimestamp()},,virtual
-            token1,127.0.0.1,,http://foo.bar/1,{$threeDaysAgo->getTimestamp()},,virtual
-            token2,127.0.0.2,,http://foo.bar/2,{$oneHourAgo->getTimestamp()},,virtual
+                token0,127.0.0.0,,http://foo.bar/0,{$fourDaysAgo->getTimestamp()},,virtual
+                token1,127.0.0.1,,http://foo.bar/1,{$threeDaysAgo->getTimestamp()},,virtual
+                token2,127.0.0.2,,http://foo.bar/2,{$oneHourAgo->getTimestamp()},,virtual
 
-            CSV,
+                CSV,
             '110',
         ];
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
         $collector = $this->getMockBuilder(DataCollectorInterface::class)
             ->onlyMethods(['collect', 'getName', 'reset'])
             ->getMock();
-        $collector->expects($this->any())->method('getName')->willReturn('mock');
+        $collector->method('getName')->willReturn('mock');
         $collector->expects($this->once())->method('reset');
 
         $profiler = new Profiler($this->storage);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Currencies.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Currencies.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Currencies.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Currencies.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,7 +72,7 @@
             $names = iterator_to_array($names);
         }
 
-        array_walk($names, function (&$value) {
+        array_walk($names, static function (&$value) {
             $value = $value[self::INDEX_NAME];
         });
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Compiler/BundleCompilerInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Compiler/BundleCompilerInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Compiler/BundleCompilerInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Compiler/BundleCompilerInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,8 +23,6 @@
     /**
      * Compiles a resource bundle at the given source to the given target
      * directory.
-     *
-     * @return void
      */
-    public function compile(string $sourcePath, string $targetDir);
+    public function compile(string $sourcePath, string $targetDir): void;
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Compiler/GenrbCompiler.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Compiler/GenrbCompiler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Compiler/GenrbCompiler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Compiler/GenrbCompiler.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
         exec('which '.$genrb, $output, $status);
 
         if (0 !== $status) {
-            throw new RuntimeException(sprintf('The command "%s" is not installed.', $genrb));
+            throw new RuntimeException(\sprintf('The command "%s" is not installed.', $genrb));
         }
 
         $this->genrb = ($envVars ? $envVars.' ' : '').$genrb;
@@ -52,7 +52,7 @@
         exec($this->genrb.' --quiet -e UTF-8 -d '.$targetDir.' '.$sourcePath, $output, $status);
 
         if (0 !== $status) {
-            throw new RuntimeException(sprintf('genrb failed with status %d while compiling "%s" to "%s".', $status, $sourcePath, $targetDir));
+            throw new RuntimeException(\sprintf('genrb failed with status %d while compiling "%s" to "%s".', $status, $sourcePath, $targetDir));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/BufferedBundleReader.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/BufferedBundleReader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/BufferedBundleReader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/BufferedBundleReader.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,13 +20,13 @@
  */
 class BufferedBundleReader implements BundleReaderInterface
 {
-    private BundleReaderInterface $reader;
     /** @var RingBuffer<string, mixed> */
     private RingBuffer $buffer;
 
-    public function __construct(BundleReaderInterface $reader, int $bufferSize)
-    {
-        $this->reader = $reader;
+    public function __construct(
+        private BundleReaderInterface $reader,
+        int $bufferSize,
+    ) {
         $this->buffer = new RingBuffer($bufferSize);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/BundleEntryReader.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/BundleEntryReader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/BundleEntryReader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/BundleEntryReader.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,8 +28,6 @@
  */
 class BundleEntryReader implements BundleEntryReaderInterface
 {
-    private BundleReaderInterface $reader;
-
     /**
      * A mapping of locale aliases to locales.
      */
@@ -38,9 +36,9 @@
     /**
      * Creates an entry reader based on the given resource bundle reader.
      */
-    public function __construct(BundleReaderInterface $reader)
-    {
-        $this->reader = $reader;
+    public function __construct(
+        private BundleReaderInterface $reader,
+    ) {
     }
 
     /**
@@ -148,7 +146,7 @@
 
         // Entry is still NULL, read error occurred. Throw an exception
         // containing the detailed path and locale
-        $errorMessage = sprintf(
+        $errorMessage = \sprintf(
             'Couldn\'t read the indices [%s] for the locale "%s" in "%s".',
             implode('][', $indices),
             $locale,
@@ -160,7 +158,7 @@
             // Remove original locale
             array_shift($testedLocales);
 
-            $errorMessage .= sprintf(
+            $errorMessage .= \sprintf(
                 ' The indices also couldn\'t be found for the fallback locale(s) "%s".',
                 implode('", "', $testedLocales)
             );
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/IntlBundleReader.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/IntlBundleReader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/IntlBundleReader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/IntlBundleReader.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
         // The bundle is NULL if the path does not look like a resource bundle
         // (i.e. contain a bunch of *.res files)
         if (null === $bundle) {
-            throw new ResourceBundleNotFoundException(sprintf('The resource bundle "%s/%s.res" could not be found.', $path, $locale));
+            throw new ResourceBundleNotFoundException(\sprintf('The resource bundle "%s/%s.res" could not be found.', $path, $locale));
         }
 
         // Other possible errors are U_USING_FALLBACK_WARNING and U_ZERO_ERROR,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/JsonBundleReader.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/JsonBundleReader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/JsonBundleReader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/JsonBundleReader.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,17 +29,17 @@
 
         // prevent directory traversal attacks
         if (\dirname($fileName) !== $path) {
-            throw new ResourceBundleNotFoundException(sprintf('The resource bundle "%s" does not exist.', $fileName));
+            throw new ResourceBundleNotFoundException(\sprintf('The resource bundle "%s" does not exist.', $fileName));
         }
 
         if (!is_file($fileName)) {
-            throw new ResourceBundleNotFoundException(sprintf('The resource bundle "%s" does not exist.', $fileName));
+            throw new ResourceBundleNotFoundException(\sprintf('The resource bundle "%s" does not exist.', $fileName));
         }
 
         $data = json_decode(file_get_contents($fileName), true);
 
         if (null === $data) {
-            throw new RuntimeException(sprintf('The resource bundle "%s" contains invalid JSON: ', $fileName).json_last_error_msg());
+            throw new RuntimeException(\sprintf('The resource bundle "%s" contains invalid JSON: ', $fileName).json_last_error_msg());
         }
 
         return $data;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/PhpBundleReader.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/PhpBundleReader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/PhpBundleReader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Reader/PhpBundleReader.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
 
         // prevent directory traversal attacks
         if (\dirname($fileName) !== $path) {
-            throw new ResourceBundleNotFoundException(sprintf('The resource bundle "%s" does not exist.', $fileName));
+            throw new ResourceBundleNotFoundException(\sprintf('The resource bundle "%s" does not exist.', $fileName));
         }
 
         if (is_file($fileName.'.gz')) {
@@ -37,7 +37,7 @@
         }
 
         if (!is_file($fileName)) {
-            throw new ResourceBundleNotFoundException(sprintf('The resource bundle "%s" does not exist.', $fileName));
+            throw new ResourceBundleNotFoundException(\sprintf('The resource bundle "%s" does not exist.', $fileName));
         }
 
         return include $fileName;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/BundleWriterInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/BundleWriterInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/BundleWriterInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/BundleWriterInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,8 +20,5 @@
  */
 interface BundleWriterInterface
 {
-    /**
-     * @return void
-     */
-    public function write(string $path, string $locale, mixed $data);
+    public function write(string $path, string $locale, mixed $data): void;
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/JsonBundleWriter.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/JsonBundleWriter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/JsonBundleWriter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/JsonBundleWriter.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
             $data = iterator_to_array($data);
         }
 
-        array_walk_recursive($data, function (&$value) {
+        array_walk_recursive($data, static function (&$value) {
             if ($value instanceof \Traversable) {
                 $value = iterator_to_array($value);
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/PhpBundleWriter.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/PhpBundleWriter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/PhpBundleWriter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Bundle/Writer/PhpBundleWriter.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,22 +25,22 @@
     public function write(string $path, string $locale, mixed $data): void
     {
         $template = <<<'TEMPLATE'
-<?php
+            <?php
 
-return %s;
+            return %s;
 
-TEMPLATE;
+            TEMPLATE;
 
         if ($data instanceof \Traversable) {
             $data = iterator_to_array($data);
         }
 
-        array_walk_recursive($data, function (&$value) {
+        array_walk_recursive($data, static function (&$value) {
             if ($value instanceof \Traversable) {
                 $value = iterator_to_array($value);
             }
         });
 
-        file_put_contents($path.'/'.$locale.'.php', sprintf($template, VarExporter::export($data)));
+        file_put_contents($path.'/'.$locale.'.php', \sprintf($template, VarExporter::export($data)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/AbstractDataGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/AbstractDataGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/AbstractDataGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/AbstractDataGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,13 +27,10 @@
  */
 abstract class AbstractDataGenerator
 {
-    private BundleCompilerInterface $compiler;
-    private string $dirName;
-
-    public function __construct(BundleCompilerInterface $compiler, string $dirName)
-    {
-        $this->compiler = $compiler;
-        $this->dirName = $dirName;
+    public function __construct(
+        private BundleCompilerInterface $compiler,
+        private string $dirName,
+    ) {
     }
 
     public function generateData(GeneratorConfig $config): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/CurrencyDataGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/CurrencyDataGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/CurrencyDataGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/CurrencyDataGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -102,6 +102,7 @@
         $data = [
             'Currencies' => $this->currencyCodes,
             'Meta' => $this->generateCurrencyMeta($supplementalDataBundle),
+            'Map' => $this->generateCurrencyMap($supplementalDataBundle),
             'Alpha3ToNumeric' => $this->generateAlpha3ToNumericMapping($numericCodesBundle, $this->currencyCodes),
         ];
 
@@ -112,7 +113,7 @@
 
     private function generateSymbolNamePairs(ArrayAccessibleResourceBundle $rootBundle): array
     {
-        $symbolNamePairs = array_map(fn ($pair) => \array_slice(iterator_to_array($pair), 0, 2), iterator_to_array($rootBundle['Currencies']));
+        $symbolNamePairs = array_map(static fn ($pair) => \array_slice(iterator_to_array($pair), 0, 2), iterator_to_array($rootBundle['Currencies']));
 
         // Remove unwanted currencies
         $symbolNamePairs = array_diff_key($symbolNamePairs, self::DENYLIST);
@@ -127,6 +128,70 @@
         return iterator_to_array($supplementalDataBundle['CurrencyMeta']);
     }
 
+    /**
+     * @return array<string, array>
+     */
+    private function generateCurrencyMap(mixed $supplementalDataBundle): array
+    {
+        /**
+         * @var list<string, list<string, array{from?: string, to?: string, tender?: false}>> $regionsData
+         */
+        $regionsData = [];
+
+        foreach ($supplementalDataBundle['CurrencyMap'] as $regionId => $region) {
+            foreach ($region as $metadata) {
+                /**
+                 * Note 1: The "to" property (if present) is always greater than "from".
+                 * Note 2: The "to" property may be missing if the currency is still in use.
+                 * Note 3: The "tender" property indicates whether the country legally recognizes the currency within
+                 *         its borders. This property is explicitly set to `false` only if that is not the case;
+                 *         otherwise, it is `true` by default.
+                 * Note 4: The "from" and "to" dates are not stored as strings; they are stored as a pair of integers.
+                 * Note 5: The "to" property may be missing if "tender" is set to `false`.
+                 *
+                 * @var array{
+                 *        from?: array{0: int, 1: int},
+                 *        to?: array{0: int, 2: int},
+                 *        tender?: bool,
+                 *        id: string
+                 *      } $metadata
+                 */
+                $metadata = iterator_to_array($metadata);
+
+                $id = $metadata['id'];
+
+                unset($metadata['id']);
+
+                if (\array_key_exists($id, self::DENYLIST)) {
+                    continue;
+                }
+
+                if (\array_key_exists('from', $metadata)) {
+                    $metadata['from'] = self::icuPairToDatetimeString($metadata['from']);
+                }
+
+                if (\array_key_exists('to', $metadata)) {
+                    $metadata['to'] = self::icuPairToDatetimeString($metadata['to']);
+                }
+
+                if (\array_key_exists('tender', $metadata)) {
+                    $metadata['tender'] = filter_var($metadata['tender'], \FILTER_VALIDATE_BOOLEAN, \FILTER_NULL_ON_FAILURE);
+
+                    if (null === $metadata['tender']) {
+                        throw new \RuntimeException('Unexpected boolean value for tender attribute.');
+                    }
+                }
+
+                $regionsData[$regionId][$id] = $metadata;
+            }
+
+            // Do not exclude countries with no currencies or excluded currencies (e.g. Antartica)
+            $regionsData[$regionId] ??= [];
+        }
+
+        return $regionsData;
+    }
+
     private function generateAlpha3ToNumericMapping(ArrayAccessibleResourceBundle $numericCodesBundle, array $currencyCodes): array
     {
         $alpha3ToNumericMapping = iterator_to_array($numericCodesBundle['codeMap']);
@@ -156,4 +221,37 @@
 
         return $numericToAlpha3Mapping;
     }
+
+    /**
+     * Decodes ICU "date pair" into a DateTimeImmutable (UTC).
+     *
+     * ICU stores UDate = milliseconds since 1970-01-01T00:00:00Z in a signed 64-bit.
+     *
+     * @param array{0: int, 1: int} $pair
+     */
+    private static function icuPairToDatetimeString(array $pair): string
+    {
+        [$highBits32, $lowBits32] = $pair;
+
+        // Recompose a 64-bit unsigned integer from two 32-bit chunks.
+        $unsigned64 = ((($highBits32 & 0xFFFFFFFF) << 32) | ($lowBits32 & 0xFFFFFFFF));
+
+        // Split into seconds and milliseconds.
+        $seconds = intdiv($unsigned64, 1000);
+        $millisecondsRemainder = $unsigned64 - $seconds * 1000;
+
+        // Normalize negative millisecond remainders (e.g., for pre-1970 values)
+        if (0 > $millisecondsRemainder) {
+            --$seconds;
+        }
+
+        // Note: Unlike the XML files, the date pair is already in UTC.
+        $datetime = \DateTimeImmutable::createFromFormat('U', (string) $seconds, new \DateTimeZone('Etc/UTC'));
+
+        if (false === $datetime) {
+            throw new \RuntimeException('Unable to parse ICU milliseconds pair.');
+        }
+
+        return $datetime->format('Y-m-d\TH:i:s');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/GeneratorConfig.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/GeneratorConfig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/GeneratorConfig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/GeneratorConfig.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,18 +22,15 @@
  */
 class GeneratorConfig
 {
-    private string $sourceDir;
-    private string $icuVersion;
-
     /**
      * @var BundleWriterInterface[]
      */
     private array $bundleWriters = [];
 
-    public function __construct(string $sourceDir, string $icuVersion)
-    {
-        $this->sourceDir = $sourceDir;
-        $this->icuVersion = $icuVersion;
+    public function __construct(
+        private string $sourceDir,
+        private string $icuVersion,
+    ) {
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/LocaleDataGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/LocaleDataGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/LocaleDataGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/LocaleDataGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -147,7 +147,7 @@
         // i.e. in de_AT, "AT" is the region
         if ($region = \Locale::getRegion($locale)) {
             if (ctype_alpha($region) && !RegionDataGenerator::isValidCountryCode($region)) {
-                throw new MissingResourceException(sprintf('Skipping "%s" due an invalid country.', $locale));
+                throw new MissingResourceException(\sprintf('Skipping "%s" due an invalid country.', $locale));
             }
 
             $extras[] = str_replace(['(', ')'], ['[', ']'], $reader->readEntry($tempDir.'/region', $displayLocale, ['Countries', $region]));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/RegionDataGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/RegionDataGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/RegionDataGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/RegionDataGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,11 +56,14 @@
         'QO' => true, // Outlying Oceania
         'XA' => true, // Pseudo-Accents
         'XB' => true, // Pseudo-Bidi
-        'XK' => true, // Kosovo
         // Misc
         'ZZ' => true, // Unknown Region
     ];
 
+    private const USER_ASSIGNED = [
+        'XK' => true, // Kosovo
+    ];
+
     // @see https://en.wikipedia.org/wiki/ISO_3166-1_numeric#Withdrawn_codes
     private const WITHDRAWN_CODES = [
         128, //	Canton and Enderbury Islands
@@ -97,7 +100,7 @@
 
     public static function isValidCountryCode(int|string|null $region): bool
     {
-        if (isset(self::DENYLIST[$region])) {
+        if (isset(self::DENYLIST[$region]) || isset(self::USER_ASSIGNED[$region])) {
             return false;
         }
 
@@ -109,6 +112,11 @@
         return true;
     }
 
+    public static function isUserAssignedCountryCode(int|string|null $region): bool
+    {
+        return isset(self::USER_ASSIGNED[$region]);
+    }
+
     protected function scanLocales(LocaleScanner $scanner, string $sourceDir): array
     {
         return $scanner->scanLocales($sourceDir.'/region');
@@ -131,9 +139,7 @@
 
         // isset() on \ResourceBundle returns true even if the value is null
         if (isset($localeBundle['Countries']) && null !== $localeBundle['Countries']) {
-            $data = [
-                'Names' => $this->generateRegionNames($localeBundle),
-            ];
+            $data = $this->generateRegionNames($localeBundle);
 
             $this->regionCodes = array_merge($this->regionCodes, array_keys($data['Names']));
 
@@ -153,23 +159,39 @@
         $metadataBundle = $reader->read($tempDir, 'metadata');
 
         $this->regionCodes = array_unique($this->regionCodes);
-
         sort($this->regionCodes);
 
         $alpha2ToAlpha3 = $this->generateAlpha2ToAlpha3Mapping(array_flip($this->regionCodes), $metadataBundle);
+        $userAssignedAlpha2ToAlpha3 = $this->generateAlpha2ToAlpha3Mapping(self::USER_ASSIGNED, $metadataBundle);
+
         $alpha3ToAlpha2 = array_flip($alpha2ToAlpha3);
         asort($alpha3ToAlpha2);
+        $userAssignedAlpha3toAlpha2 = array_flip($userAssignedAlpha2ToAlpha3);
+        asort($userAssignedAlpha3toAlpha2);
+
+        $alpha2ToNumeric = $this->generateAlpha2ToNumericMapping(array_flip($this->regionCodes), $metadataBundle);
+        $userAssignedAlpha2ToNumeric = $this->generateAlpha2ToNumericMapping(self::USER_ASSIGNED, $metadataBundle);
 
-        $alpha2ToNumeric = $this->generateAlpha2ToNumericMapping($metadataBundle);
         $numericToAlpha2 = [];
         foreach ($alpha2ToNumeric as $alpha2 => $numeric) {
             // Add underscore prefix to force keys with leading zeros to remain as string keys.
             $numericToAlpha2['_'.$numeric] = $alpha2;
         }
+        $userAssignedNumericToAlpha2 = [];
+        foreach ($userAssignedAlpha2ToNumeric as $alpha2 => $numeric) {
+            // Add underscore prefix to force keys with leading zeros to remain as string keys.
+            $userAssignedNumericToAlpha2['_'.$numeric] = $alpha2;
+        }
 
         asort($numericToAlpha2);
+        asort($userAssignedNumericToAlpha2);
 
         return [
+            'UserAssignedRegions' => array_keys(self::USER_ASSIGNED),
+            'UserAssignedAlpha2ToAlpha3' => $userAssignedAlpha2ToAlpha3,
+            'UserAssignedAlpha3ToAlpha2' => $userAssignedAlpha3toAlpha2,
+            'UserAssignedAlpha2ToNumeric' => $userAssignedAlpha2ToNumeric,
+            'UserAssignedNumericToAlpha2' => $userAssignedNumericToAlpha2,
             'Regions' => $this->regionCodes,
             'Alpha2ToAlpha3' => $alpha2ToAlpha3,
             'Alpha3ToAlpha2' => $alpha3ToAlpha2,
@@ -181,14 +203,19 @@
     protected function generateRegionNames(ArrayAccessibleResourceBundle $localeBundle): array
     {
         $unfilteredRegionNames = iterator_to_array($localeBundle['Countries']);
-        $regionNames = [];
+        $regionNames = ['UserAssignedNames' => [], 'Names' => []];
 
         foreach ($unfilteredRegionNames as $region => $regionName) {
-            if (!self::isValidCountryCode($region)) {
+            if (!self::isValidCountryCode($region) && !self::isUserAssignedCountryCode($region)) {
+                continue;
+            }
+
+            if (self::isUserAssignedCountryCode($region)) {
+                $regionNames['UserAssignedNames'][$region] = $regionName;
                 continue;
             }
 
-            $regionNames[$region] = $regionName;
+            $regionNames['Names'][$region] = $regionName;
         }
 
         return $regionNames;
@@ -204,7 +231,9 @@
             $country = $data['replacement'];
 
             if (2 === \strlen($country) && 3 === \strlen($alias) && 'overlong' === $data['reason']) {
-                if (isset(self::PREFERRED_ALPHA2_TO_ALPHA3_MAPPING[$country])) {
+                if (isset($countries[$country]) && self::isUserAssignedCountryCode($country)) {
+                    $alpha2ToAlpha3[$country] = $alias;
+                } elseif (isset($countries[$country]) && !self::isUserAssignedCountryCode($country) && isset(self::PREFERRED_ALPHA2_TO_ALPHA3_MAPPING[$country])) {
                     // Validate to prevent typos
                     if (!isset($aliases[self::PREFERRED_ALPHA2_TO_ALPHA3_MAPPING[$country]])) {
                         throw new RuntimeException('The statically set three-letter mapping '.self::PREFERRED_ALPHA2_TO_ALPHA3_MAPPING[$country].' for the country code '.$country.' seems to be invalid. Typo?');
@@ -231,7 +260,7 @@
         return $alpha2ToAlpha3;
     }
 
-    private function generateAlpha2ToNumericMapping(ArrayAccessibleResourceBundle $metadataBundle): array
+    private function generateAlpha2ToNumericMapping(array $countries, ArrayAccessibleResourceBundle $metadataBundle): array
     {
         $aliases = iterator_to_array($metadataBundle['alias']['territory']);
 
@@ -242,7 +271,7 @@
                 continue;
             }
 
-            if (\in_array($alias, self::WITHDRAWN_CODES)) {
+            if (\in_array($alias, self::WITHDRAWN_CODES, true)) {
                 continue;
             }
 
@@ -250,6 +279,10 @@
                 continue;
             }
 
+            if (!isset($countries[$data['replacement']])) {
+                continue;
+            }
+
             if ('deprecated' === $data['reason']) {
                 continue;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/TimezoneDataGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/TimezoneDataGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Generator/TimezoneDataGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Generator/TimezoneDataGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,6 @@
 use Symfony\Component\Intl\Data\Util\ArrayAccessibleResourceBundle;
 use Symfony\Component\Intl\Data\Util\LocaleScanner;
 use Symfony\Component\Intl\Exception\MissingResourceException;
-use Symfony\Component\Intl\Locale;
 
 /**
  * The rule for compiling the zone bundle.
@@ -38,6 +37,7 @@
     private array $zoneIds = [];
     private array $zoneToCountryMapping = [];
     private array $localeAliases = [];
+    private array $ianaMap = [];
 
     protected function scanLocales(LocaleScanner $scanner, string $sourceDir): array
     {
@@ -65,8 +65,14 @@
 
     protected function generateDataForLocale(BundleEntryReaderInterface $reader, string $tempDir, string $displayLocale): ?array
     {
+        if (!$this->ianaMap) {
+            foreach ($reader->readEntry($tempDir, 'timezoneTypes', ['ianaMap', 'timezone']) as $cldr => $iana) {
+                $this->ianaMap[str_replace(':', '/', $cldr)] = $iana;
+            }
+        }
+
         if (!$this->zoneToCountryMapping) {
-            $this->zoneToCountryMapping = self::generateZoneToCountryMapping($reader->read($tempDir, 'windowsZones'));
+            $this->zoneToCountryMapping = $this->generateZoneToCountryMapping($reader->read($tempDir, 'windowsZones'));
         }
 
         // Don't generate aliases, as they are resolved during runtime
@@ -77,7 +83,7 @@
 
         $localeBundle = $reader->read($tempDir, $displayLocale);
 
-        if (!isset($localeBundle['zoneStrings']) || null === $localeBundle['zoneStrings']) {
+        if (!isset($localeBundle['zoneStrings'])) {
             return null;
         }
 
@@ -121,20 +127,16 @@
 
     protected function generateDataForMeta(BundleEntryReaderInterface $reader, string $tempDir): ?array
     {
-        $rootBundle = $reader->read($tempDir, 'root');
-
         $this->zoneIds = array_unique($this->zoneIds);
 
         sort($this->zoneIds);
         ksort($this->zoneToCountryMapping);
 
-        $data = [
+        return [
             'Zones' => $this->zoneIds,
             'ZoneToCountry' => $this->zoneToCountryMapping,
             'CountryToZone' => self::generateCountryToZoneMapping($this->zoneToCountryMapping),
         ];
-
-        return $data;
     }
 
     private function generateZones(BundleEntryReaderInterface $reader, string $tempDir, string $locale): array
@@ -222,6 +224,10 @@
             }
 
             $zones[$id] = $name;
+
+            if (isset($this->ianaMap[$id])) {
+                $zones[$this->ianaMap[$id]] = $name;
+            }
         }
 
         return $zones;
@@ -242,14 +248,20 @@
         return $metadata;
     }
 
-    private static function generateZoneToCountryMapping(ArrayAccessibleResourceBundle $windowsZoneBundle): array
+    private function generateZoneToCountryMapping(ArrayAccessibleResourceBundle $windowsZoneBundle): array
     {
         $mapping = [];
 
         foreach ($windowsZoneBundle['mapTimezones'] as $zoneInfo) {
             foreach ($zoneInfo as $region => $zones) {
                 if (RegionDataGenerator::isValidCountryCode($region)) {
-                    $mapping += array_fill_keys(explode(' ', $zones), $region);
+                    foreach (explode(' ', $zones) as $zone) {
+                        $mapping[$zone] = $region;
+
+                        if (isset($this->ianaMap[$zone])) {
+                            $mapping[$this->ianaMap[$zone]] = $region;
+                        }
+                    }
                 }
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Util/ArrayAccessibleResourceBundle.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Util/ArrayAccessibleResourceBundle.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Util/ArrayAccessibleResourceBundle.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Util/ArrayAccessibleResourceBundle.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,11 +25,9 @@
  */
 class ArrayAccessibleResourceBundle implements \ArrayAccess, \IteratorAggregate, \Countable
 {
-    private \ResourceBundle $bundleImpl;
-
-    public function __construct(\ResourceBundle $bundleImpl)
-    {
-        $this->bundleImpl = $bundleImpl;
+    public function __construct(
+        private \ResourceBundle $bundleImpl,
+    ) {
     }
 
     public function get(int|string $offset): mixed
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Util/LocaleScanner.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Util/LocaleScanner.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Util/LocaleScanner.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Util/LocaleScanner.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,10 +43,10 @@
         $locales = glob($sourceDir.'/*.txt', \GLOB_NOSORT);
 
         // Remove file extension and sort
-        array_walk($locales, function (&$locale) { $locale = basename($locale, '.txt'); });
+        array_walk($locales, static function (&$locale) { $locale = basename($locale, '.txt'); });
 
         // Remove non-locales
-        $locales = array_filter($locales, fn ($locale) => preg_match('/^[a-z]{2}(_.+)?$/', $locale));
+        $locales = array_filter($locales, static fn ($locale) => preg_match('/^[a-z]{2}(_.+)?$/', $locale));
 
         sort($locales);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Util/RecursiveArrayAccess.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Util/RecursiveArrayAccess.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Util/RecursiveArrayAccess.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Util/RecursiveArrayAccess.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
                 }
             }
 
-            throw new OutOfBoundsException(sprintf('The index "%s" does not exist.', $index));
+            throw new OutOfBoundsException(\sprintf('The index "%s" does not exist.', $index));
         }
 
         return $array;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Util/RingBuffer.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Util/RingBuffer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Data/Util/RingBuffer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Data/Util/RingBuffer.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,11 +36,10 @@
     /** @var array<TKey, int> */
     private array $indices = [];
     private int $cursor = 0;
-    private int $size;
 
-    public function __construct(int $size)
-    {
-        $this->size = $size;
+    public function __construct(
+        private int $size,
+    ) {
     }
 
     public function offsetExists(mixed $key): bool
@@ -51,7 +50,7 @@
     public function offsetGet(mixed $key): mixed
     {
         if (!isset($this->indices[$key])) {
-            throw new OutOfBoundsException(sprintf('The index "%s" does not exist.', $key));
+            throw new OutOfBoundsException(\sprintf('The index "%s" does not exist.', $key));
         }
 
         return $this->values[$this->indices[$key]];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Exception/UnexpectedTypeException.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Exception/UnexpectedTypeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Exception/UnexpectedTypeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Exception/UnexpectedTypeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,6 @@
 {
     public function __construct(mixed $value, string $expectedType)
     {
-        parent::__construct(sprintf('Expected argument of type "%s", "%s" given', $expectedType, get_debug_type($value)));
+        parent::__construct(\sprintf('Expected argument of type "%s", "%s" given', $expectedType, get_debug_type($value)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Intl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Intl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Intl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Intl.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,7 +106,7 @@
      */
     public static function getIcuStubVersion(): string
     {
-        return '76.1';
+        return '78.3';
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Locale.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Locale.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Locale.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Locale.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Intl;
 
 if (!class_exists(\Locale::class)) {
-    throw new \LogicException(sprintf('You cannot use the "%s\Locale" class as the "intl" extension is not installed. See https://php.net/intl.', __NAMESPACE__));
+    throw new \LogicException(\sprintf('You cannot use the "%s\Locale" class as the "intl" extension is not installed. See https://php.net/intl.', __NAMESPACE__));
 }
 
 /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/bin/common.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/bin/common.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/bin/common.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/bin/common.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,11 +83,11 @@
 
 error_reporting(\E_ALL);
 
-set_error_handler(function (int $type, string $msg, string $file, int $line) {
-    throw new \ErrorException($msg, 0, $type, $file, $line);
+set_error_handler(static function (int $type, string $msg, string $file, int $line) {
+    throw new ErrorException($msg, 0, $type, $file, $line);
 });
 
-set_exception_handler(function (Throwable $exception) {
+set_exception_handler(static function (Throwable $exception) {
     echo "\n";
 
     $cause = $exception;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/bin/compile symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/bin/compile
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/bin/compile	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/bin/compile	2026-05-20 10:56:49.000000000 +0200
@@ -8,5 +8,5 @@
     -v /tmp/symfony/icu:/tmp \
     -v $(pwd):/symfony \
     -w /symfony \
-    jakzal/php-intl:8.3-74.1 \
+    jakzal/php-intl:8.4-77.1 \
     php src/Symfony/Component/Intl/Resources/bin/update-data.php
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/bin/update-data.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/bin/update-data.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/bin/update-data.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/bin/update-data.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,23 +35,23 @@
 
 if ($argc > 3 || 2 === $argc && '-h' === $argv[1]) {
     bailout(<<<'MESSAGE'
-Usage: php update-data.php <path/to/icu/source> <path/to/icu/build>
+        Usage: php update-data.php <path/to/icu/source> <path/to/icu/build>
 
-Updates the ICU data for Symfony to the latest version of ICU.
+        Updates the ICU data for Symfony to the latest version of ICU.
 
-If you downloaded the git repository before, you can pass the path to the
-repository source in the first optional argument.
+        If you downloaded the git repository before, you can pass the path to the
+        repository source in the first optional argument.
 
-If you also built the repository before, you can pass the directory where that
-build is stored in the second parameter. The build directory needs to contain
-the subdirectories bin/ and lib/.
+        If you also built the repository before, you can pass the directory where that
+        build is stored in the second parameter. The build directory needs to contain
+        the subdirectories bin/ and lib/.
 
-For running this script, the intl extension must be loaded and all vendors
-must have been installed through composer:
+        For running this script, the intl extension must be loaded and all vendors
+        must have been installed through composer:
 
-composer install
+        composer install
 
-MESSAGE
+        MESSAGE
     );
 }
 
@@ -77,8 +77,8 @@
     echo "Git clone to {$repoDir} complete.\n";
 }
 
-$gitTag = $git->getLastTag(fn ($tag) => preg_match('#^release-[0-9]{1,}-[0-9]{1}$#', $tag));
-$shortIcuVersion = strip_minor_versions(preg_replace('#release-([0-9]{1,})-([0-9]{1,})#', '$1.$2', $gitTag));
+$gitTag = $git->getLastTag(static fn ($tag) => preg_match('#^release-[0-9]{1,}[.-][0-9]{1}$#', $tag));
+$shortIcuVersion = strip_minor_versions(preg_replace('#release-([0-9]{1,})[.-]([0-9]{1,})#', '$1.$2', $gitTag));
 
 echo "Checking out `{$gitTag}` for version `{$shortIcuVersion}`...\n";
 $git->checkout('tags/'.$gitTag);
@@ -214,15 +214,15 @@
 echo "Resource bundle compilation complete.\n";
 
 $gitInfo = <<<GIT_INFO
-Git information
-===============
+    Git information
+    ===============
 
-URL: {$git->getUrl()}
-Revision: {$git->getLastCommitHash()}
-Author: {$git->getLastAuthor()}
-Date: {$git->getLastAuthoredDate()->format('c')}
+    URL: {$git->getUrl()}
+    Revision: {$git->getLastCommitHash()}
+    Author: {$git->getLastAuthor()}
+    Date: {$git->getLastAuthoredDate()->format('c')}
 
-GIT_INFO;
+    GIT_INFO;
 
 $gitInfoFile = $dataDir.'/git-info.txt';
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/af.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/af.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/af.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/af.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,7 +96,7 @@
         ],
         'BYN' => [
             'BYN',
-            'Belarusiese roebel',
+            'Belarussiese roebel',
         ],
         'BYR' => [
             'BYR',
@@ -184,7 +184,7 @@
         ],
         'EUR' => [
             '€',
-            'Euro',
+            'euro',
         ],
         'FJD' => [
             'FJD',
@@ -348,7 +348,7 @@
         ],
         'LSL' => [
             'LSL',
-            'Lesotho loti',
+            'Lesotho-loti',
         ],
         'LTL' => [
             'LTL',
@@ -540,7 +540,7 @@
         ],
         'SLL' => [
             'SLL',
-            'Sierra Leoniese leone (1964—2022)',
+            'Sierra Leoniese leone (1964–2022)',
         ],
         'SOS' => [
             'SOS',
@@ -658,6 +658,10 @@
             'EC$',
             'Oos-Karibiese dollar',
         ],
+        'XCG' => [
+            'Cg.',
+            'Karibiese gulde',
+        ],
         'XOF' => [
             'F CFA',
             'Wes-Afrikaanse CFA-frank',
@@ -686,5 +690,9 @@
             'ZWD',
             'Zimbabwiese dollar',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwiese goud',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ak.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ak.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ak.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ak.php	2026-05-20 10:56:49.000000000 +0200
@@ -124,7 +124,7 @@
         ],
         'CNY' => [
             'CN¥',
-            'kyaena yuan',
+            'Kyaena yuan',
         ],
         'COP' => [
             'COP',
@@ -180,7 +180,7 @@
         ],
         'EUR' => [
             '€',
-            'Iro',
+            'yuro',
         ],
         'FJD' => [
             'FJD',
@@ -552,7 +552,7 @@
         ],
         'SZL' => [
             'SZL',
-            'Lilangeni',
+            'Swazi lilangeni',
         ],
         'THB' => [
             'THB',
@@ -634,6 +634,10 @@
             'EC$',
             'Karibine Apueeɛ dɔla',
         ],
+        'XCG' => [
+            'Cg.',
+            'Karibiafoᴐ giida',
+        ],
         'XOF' => [
             'AAS',
             'Afrika Atɔeɛ Sefa',
@@ -662,5 +666,9 @@
             'ZWD',
             'Zimbabwe Dɔla',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwe sika kᴐkᴐᴐ',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/am.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/am.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/am.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/am.php	2026-05-20 10:56:49.000000000 +0200
@@ -642,6 +642,10 @@
             'EC$',
             'የምዕራብ ካሪብያን ዶላር',
         ],
+        'XCG' => [
+            'Cg.',
+            'የካሪቢያን ጊልደር',
+        ],
         'XOF' => [
             'F CFA',
             'የምዕራብ አፍሪካ ሴፋ ፍራንክ',
@@ -670,5 +674,9 @@
             'ZWD',
             'የዚምቧቡዌ ዶላር',
         ],
+        'ZWG' => [
+            'ZWG',
+            'የዚምባብዌ ወርቅ',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ar.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ar.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ar.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ar.php	2026-05-20 10:56:49.000000000 +0200
@@ -930,6 +930,10 @@
             'EC$',
             'دولار شرق الكاريبي',
         ],
+        'XCG' => [
+            'Cg.',
+            'غيلدر كاريبي',
+        ],
         'XEU' => [
             'XEU',
             'وحدة النقد الأوروبية',
@@ -994,6 +998,10 @@
             'ZWD',
             'دولار زمبابوي',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ذهب زيمبابوي',
+        ],
         'ZWL' => [
             'ZWL',
             'دولار زمبابوي 2009',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/as.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/as.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/as.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/as.php	2026-05-20 10:56:49.000000000 +0200
@@ -626,6 +626,10 @@
             'EC$',
             'ইষ্ট কেৰিবিয়ান ডলাৰ',
         ],
+        'XCG' => [
+            'Cg.',
+            'কেৰিবীয়ান গিল্ডাৰ',
+        ],
         'XOF' => [
             'F CFA',
             'পশ্চিম আফ্ৰিকান CFA ফ্ৰেংক',
@@ -646,5 +650,9 @@
             'ZMW',
             'জাম্বিয়ান কোৱাচা',
         ],
+        'ZWG' => [
+            'ZWG',
+            'জিম্বাৱীয় সোণ',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/az.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/az.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/az.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/az.php	2026-05-20 10:56:49.000000000 +0200
@@ -990,6 +990,10 @@
             'EC$',
             'Şərqi Karib Dolları',
         ],
+        'XCG' => [
+            'Cg.',
+            'Karib gilderi',
+        ],
         'XFO' => [
             'XFO',
             'Fransız Gızıl Frankı',
@@ -1054,6 +1058,10 @@
             'ZWD',
             'Zimbabve Dolları (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabve Qızılı',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabve Dolları (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ba.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ba.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ba.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ba.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,1182 @@
+<?php
+
+return [
+    'Names' => [
+        'ADP' => [
+            'ADP',
+            'Андорра песетаһы',
+        ],
+        'AED' => [
+            'AED',
+            'Берләшкән Ғәрәп Әмирлектәре дирһәме',
+        ],
+        'AFA' => [
+            'AFA',
+            'Афған афғаниһы (1927–2002)',
+        ],
+        'AFN' => [
+            'AFN',
+            'Афған афғаниһы',
+        ],
+        'ALK' => [
+            'ALK',
+            'Албания лекы (1946–1965)',
+        ],
+        'ALL' => [
+            'ALL',
+            'Албания лекы',
+        ],
+        'AMD' => [
+            'AMD',
+            'Әрмән драмы',
+        ],
+        'ANG' => [
+            'ANG',
+            'Нидерланд Антил гульдены',
+        ],
+        'AOA' => [
+            'AOA',
+            'Ангола кванзаһы',
+        ],
+        'AOK' => [
+            'AOK',
+            'Ангола кванзаһы (1977–1991)',
+        ],
+        'AON' => [
+            'AON',
+            'Ангола яңы кванзаһы (1990–2000)',
+        ],
+        'AOR' => [
+            'AOR',
+            'Ангола көйләнгән кванзаһы (1995–1999)',
+        ],
+        'ARA' => [
+            'ARA',
+            'Аргентина аустралы',
+        ],
+        'ARL' => [
+            'ARL',
+            'Аргентина песоһы (1970–1983)',
+        ],
+        'ARM' => [
+            'ARM',
+            'Аргентина песоһы (1881–1970)',
+        ],
+        'ARP' => [
+            'ARP',
+            'Аргентина песоһы (1983–1985)',
+        ],
+        'ARS' => [
+            'ARS',
+            'Аргентина песоһы',
+        ],
+        'ATS' => [
+            'ATS',
+            'Австрия шиллингы',
+        ],
+        'AUD' => [
+            'A$',
+            'Австралия доллары',
+        ],
+        'AWG' => [
+            'AWG',
+            'Аруба флорины',
+        ],
+        'AZM' => [
+            'AZM',
+            'Әзербайжан манаты (1993–2006)',
+        ],
+        'AZN' => [
+            'AZN',
+            'Әзербайжан манаты',
+        ],
+        'BAD' => [
+            'BAD',
+            'Босния һәм Герцеговина динары (1992–1994)',
+        ],
+        'BAM' => [
+            'BAM',
+            'Босния һәм Герцеговина алмашынмалы маркаһы',
+        ],
+        'BAN' => [
+            'BAN',
+            'Босния һәм Герцеговина яңы динары (1994–1997)',
+        ],
+        'BBD' => [
+            'BBD',
+            'Барбадос доллары',
+        ],
+        'BDT' => [
+            'BDT',
+            'Бангладеш такаһы',
+        ],
+        'BEC' => [
+            'BEC',
+            'Бельгия франкы (алмашынмалы)',
+        ],
+        'BEF' => [
+            'BEF',
+            'Бельгия франкы',
+        ],
+        'BEL' => [
+            'BEL',
+            'Бельгия франкы (финанс)',
+        ],
+        'BGL' => [
+            'BGL',
+            'Болгар ҡаты левы',
+        ],
+        'BGM' => [
+            'BGM',
+            'Болгар социалистик левы',
+        ],
+        'BGN' => [
+            'BGN',
+            'Болгария левы',
+        ],
+        'BGO' => [
+            'BGO',
+            'Болгар левы (1879–1952)',
+        ],
+        'BHD' => [
+            'BHD',
+            'Бәхрәйн динары',
+        ],
+        'BIF' => [
+            'BIF',
+            'Бурунди франкы',
+        ],
+        'BMD' => [
+            'BMD',
+            'Бермуд доллары',
+        ],
+        'BND' => [
+            'BND',
+            'Бруней доллары',
+        ],
+        'BOB' => [
+            'BOB',
+            'Боливия боливианоһы',
+        ],
+        'BOL' => [
+            'BOL',
+            'Боливия боливианоһы (1863–1963)',
+        ],
+        'BOP' => [
+            'BOP',
+            'Боливия песоһы',
+        ],
+        'BOV' => [
+            'BOV',
+            'Боливия мвдолы',
+        ],
+        'BRB' => [
+            'BRB',
+            'Бразилия яңы крузейроһы (1967–1986)',
+        ],
+        'BRC' => [
+            'BRC',
+            'Бразилия крузадоһы (1986–1989)',
+        ],
+        'BRE' => [
+            'BRE',
+            'Бразилия крузейроһы (1990–1993)',
+        ],
+        'BRL' => [
+            'R$',
+            'Бразилия реалы',
+        ],
+        'BRN' => [
+            'BRN',
+            'Бразилия яңы крузадоһы (1989–1990)',
+        ],
+        'BRR' => [
+            'BRR',
+            'Бразилия крузейроһы (1993–1994)',
+        ],
+        'BRZ' => [
+            'BRZ',
+            'Бразилия крузейроһы (1942–1967)',
+        ],
+        'BSD' => [
+            'BSD',
+            'Багам доллары',
+        ],
+        'BTN' => [
+            'BTN',
+            'Бутан нгултрумы',
+        ],
+        'BUK' => [
+            'BUK',
+            'Бирма кьяты',
+        ],
+        'BWP' => [
+            'BWP',
+            'Ботсвана пулаһы',
+        ],
+        'BYB' => [
+            'BYB',
+            'Беларусь рубле (1994–1999)',
+        ],
+        'BYN' => [
+            'BYN',
+            'Беларусь рубле',
+        ],
+        'BYR' => [
+            'BYR',
+            'Беларусь рубле (2000–2016)',
+        ],
+        'BZD' => [
+            'BZD',
+            'Белиз доллары',
+        ],
+        'CAD' => [
+            'CA$',
+            'Канада доллары',
+        ],
+        'CDF' => [
+            'CDF',
+            'Конго франкы',
+        ],
+        'CHE' => [
+            'CHE',
+            'WIR евроһы',
+        ],
+        'CHF' => [
+            'CHF',
+            'Швейцария франкы',
+        ],
+        'CHW' => [
+            'CHW',
+            'WIR франкы',
+        ],
+        'CLE' => [
+            'CLE',
+            'Чили эскудоһы',
+        ],
+        'CLF' => [
+            'CLF',
+            'Чили иҫәп берәмеге (UF)',
+        ],
+        'CLP' => [
+            'CLP',
+            'Чили песоһы',
+        ],
+        'CNH' => [
+            'CNH',
+            'Ҡытай юане (офшор)',
+        ],
+        'CNX' => [
+            'CNX',
+            'Ҡытай Халыҡ Банкы доллары',
+        ],
+        'CNY' => [
+            'CN¥',
+            'Ҡытай юане',
+        ],
+        'COP' => [
+            'COP',
+            'Колумбия песоһы',
+        ],
+        'COU' => [
+            'COU',
+            'Колумбия реаль хаҡ берәмеге',
+        ],
+        'CRC' => [
+            'CRC',
+            'Коста-Рика колоны',
+        ],
+        'CSD' => [
+            'CSD',
+            'Сербия динары (2002–2006)',
+        ],
+        'CSK' => [
+            'CSK',
+            'Чехословакия ҡаты кронаһы',
+        ],
+        'CUC' => [
+            'CUC',
+            'Куба алмашынмалы песоһы',
+        ],
+        'CUP' => [
+            'CUP',
+            'Куба песоһы',
+        ],
+        'CVE' => [
+            'CVE',
+            'Кабо-Верде эскудоһы',
+        ],
+        'CYP' => [
+            'CYP',
+            'Кипр фунты',
+        ],
+        'CZK' => [
+            'CZK',
+            'Чехия кронаһы',
+        ],
+        'DDM' => [
+            'DDM',
+            'Көнсығыш Германия маркаһы',
+        ],
+        'DEM' => [
+            'DEM',
+            'Германия маркаһы',
+        ],
+        'DJF' => [
+            'DJF',
+            'Джибути франкы',
+        ],
+        'DKK' => [
+            'DKK',
+            'Дания кронаһы',
+        ],
+        'DOP' => [
+            'DOP',
+            'Доминикан песоһы',
+        ],
+        'DZD' => [
+            'DZD',
+            'Алжир динары',
+        ],
+        'ECS' => [
+            'ECS',
+            'Эквадор сукреһы',
+        ],
+        'ECV' => [
+            'ECV',
+            'Эквадор даими хаҡ берәмеге',
+        ],
+        'EEK' => [
+            'EEK',
+            'Эстония кронаһы',
+        ],
+        'EGP' => [
+            'EGP',
+            'Мысыр фунты',
+        ],
+        'ERN' => [
+            'ERN',
+            'Эритрея накфаһы',
+        ],
+        'ESA' => [
+            'ESA',
+            'Испания песетаһы (A иҫәбе)',
+        ],
+        'ESB' => [
+            'ESB',
+            'Испания песетаһы (алмашынмалы иҫәп)',
+        ],
+        'ESP' => [
+            'ESP',
+            'Испания песетаһы',
+        ],
+        'ETB' => [
+            'ETB',
+            'Эфиопия быры',
+        ],
+        'EUR' => [
+            '€',
+            'Евро',
+        ],
+        'FIM' => [
+            'FIM',
+            'Финляндия маркаһы',
+        ],
+        'FJD' => [
+            'FJD',
+            'Фиджи доллары',
+        ],
+        'FKP' => [
+            'FKP',
+            'Фолкленд утрауҙары фунты',
+        ],
+        'FRF' => [
+            'FRF',
+            'Франция франкы',
+        ],
+        'GBP' => [
+            '£',
+            'Британия фунт стерлингы',
+        ],
+        'GEK' => [
+            'GEK',
+            'Грузия купон лариты',
+        ],
+        'GEL' => [
+            'GEL',
+            'Грузия лариһы',
+        ],
+        'GHC' => [
+            'GHC',
+            'Гана седиһы (1979–2007)',
+        ],
+        'GHS' => [
+            'GHS',
+            'Гана седиһы',
+        ],
+        'GIP' => [
+            'GIP',
+            'Гибралтар фунты',
+        ],
+        'GMD' => [
+            'GMD',
+            'Гамбия даласиһы',
+        ],
+        'GNF' => [
+            'GNF',
+            'Гвинея франкы',
+        ],
+        'GNS' => [
+            'GNS',
+            'Гвинея силиһы',
+        ],
+        'GQE' => [
+            'GQE',
+            'Экваториаль Гвинея эквелеһы',
+        ],
+        'GRD' => [
+            'GRD',
+            'Греция драхмаһы',
+        ],
+        'GTQ' => [
+            'GTQ',
+            'Гватемала кетсале',
+        ],
+        'GWE' => [
+            'GWE',
+            'Португал Гвинея эскудоһы',
+        ],
+        'GWP' => [
+            'GWP',
+            'Гвинея-Бисау песоһы',
+        ],
+        'GYD' => [
+            'GYD',
+            'Гайана доллары',
+        ],
+        'HKD' => [
+            'HK$',
+            'Гонконг доллары',
+        ],
+        'HNL' => [
+            'HNL',
+            'Гондурас лемпираһы',
+        ],
+        'HRD' => [
+            'HRD',
+            'Хорватия динары',
+        ],
+        'HRK' => [
+            'HRK',
+            'Хорватия кунаһы',
+        ],
+        'HTG' => [
+            'HTG',
+            'Гаити гурды',
+        ],
+        'HUF' => [
+            'HUF',
+            'Венгрия форинты',
+        ],
+        'IDR' => [
+            'IDR',
+            'Индонезия рупияһы',
+        ],
+        'IEP' => [
+            'IEP',
+            'Ирландия фунты',
+        ],
+        'ILP' => [
+            'ILP',
+            'Израиль фунты',
+        ],
+        'ILR' => [
+            'ILR',
+            'Израиль шекеле (1980–1985)',
+        ],
+        'ILS' => [
+            '₪',
+            'Израиль яңы шекеле',
+        ],
+        'INR' => [
+            '₹',
+            'Һиндостан рупияһы',
+        ],
+        'IQD' => [
+            'IQD',
+            'Ираҡ динары',
+        ],
+        'IRR' => [
+            'IRR',
+            'Иран риалы',
+        ],
+        'ISJ' => [
+            'ISJ',
+            'Исландия кронаһы (1918–1981)',
+        ],
+        'ISK' => [
+            'ISK',
+            'Исландия кронаһы',
+        ],
+        'ITL' => [
+            'ITL',
+            'Италия лираһы',
+        ],
+        'JMD' => [
+            'JMD',
+            'Ямайка доллары',
+        ],
+        'JOD' => [
+            'JOD',
+            'Иордания динары',
+        ],
+        'JPY' => [
+            'JP¥',
+            'Япон иенаһы',
+        ],
+        'KES' => [
+            'KES',
+            'Кения шиллингы',
+        ],
+        'KGS' => [
+            'KGS',
+            'Ҡырғыҙстан һумы',
+        ],
+        'KHR' => [
+            'KHR',
+            'Камбоджа риеле',
+        ],
+        'KMF' => [
+            'KMF',
+            'Комор франкы',
+        ],
+        'KPW' => [
+            'KPW',
+            'Төньяҡ Корея воны',
+        ],
+        'KRH' => [
+            'KRH',
+            'Көньяҡ Корея хваны (1953–1962)',
+        ],
+        'KRO' => [
+            'KRO',
+            'Көньяҡ Корея воны (1945–1953)',
+        ],
+        'KRW' => [
+            '₩',
+            'Көньяҡ Корея воны',
+        ],
+        'KWD' => [
+            'KWD',
+            'Кувейт динары',
+        ],
+        'KYD' => [
+            'KYD',
+            'Кайман утрауҙары доллары',
+        ],
+        'KZT' => [
+            'KZT',
+            'Ҡаҙағстан тәңкәһе',
+        ],
+        'LAK' => [
+            'LAK',
+            'Лаос кипы',
+        ],
+        'LBP' => [
+            'LBP',
+            'Ливан фунты',
+        ],
+        'LKR' => [
+            'LKR',
+            'Шри-Ланка рупияһы',
+        ],
+        'LRD' => [
+            'LRD',
+            'Либерия доллары',
+        ],
+        'LSL' => [
+            'LSL',
+            'Лесото лотиһы',
+        ],
+        'LTL' => [
+            'LTL',
+            'Латвия литы',
+        ],
+        'LTT' => [
+            'LTT',
+            'Литва талоны',
+        ],
+        'LUC' => [
+            'LUC',
+            'Люксембург алмашынмалы франкы',
+        ],
+        'LUF' => [
+            'LUF',
+            'Люксембург франкы',
+        ],
+        'LUL' => [
+            'LUL',
+            'Люксембург финанс франкы',
+        ],
+        'LVL' => [
+            'LVL',
+            'Латвия латы',
+        ],
+        'LVR' => [
+            'LVR',
+            'Латвия рубле',
+        ],
+        'LYD' => [
+            'LYD',
+            'Ливия динары',
+        ],
+        'MAD' => [
+            'MAD',
+            'Марокко дирһәме',
+        ],
+        'MAF' => [
+            'MAF',
+            'Марокко франкы',
+        ],
+        'MCF' => [
+            'MCF',
+            'Монако франкы',
+        ],
+        'MDC' => [
+            'MDC',
+            'Молдова купоны',
+        ],
+        'MDL' => [
+            'MDL',
+            'Молдова лейе',
+        ],
+        'MGA' => [
+            'MGA',
+            'Мадагаскар ариариһы',
+        ],
+        'MGF' => [
+            'MGF',
+            'Мадагаскар франкы',
+        ],
+        'MKD' => [
+            'MKD',
+            'Македония денары',
+        ],
+        'MKN' => [
+            'MKN',
+            'Македония денары (1992–1993)',
+        ],
+        'MLF' => [
+            'MLF',
+            'Мали франкы',
+        ],
+        'MMK' => [
+            'MMK',
+            'Мьянма кьяты',
+        ],
+        'MNT' => [
+            'MNT',
+            'Монголия тугригы',
+        ],
+        'MOP' => [
+            'MOP',
+            'Макао патакаһы',
+        ],
+        'MRO' => [
+            'MRO',
+            'Мавритания угияһы (1973–2017)',
+        ],
+        'MRU' => [
+            'MRU',
+            'Мавритания угияһы',
+        ],
+        'MTL' => [
+            'MTL',
+            'Мальта лираһы',
+        ],
+        'MTP' => [
+            'MTP',
+            'Мальта фунты',
+        ],
+        'MUR' => [
+            'MUR',
+            'Маврикий рупияһы',
+        ],
+        'MVP' => [
+            'MVP',
+            'Мальдив рупияһы (1947–1981)',
+        ],
+        'MVR' => [
+            'MVR',
+            'Мальдив руфияһы',
+        ],
+        'MWK' => [
+            'MWK',
+            'Малави квачаһы',
+        ],
+        'MXN' => [
+            'MX$',
+            'Мексика песоһы',
+        ],
+        'MXP' => [
+            'MXP',
+            'Мексика көмөш песоһы (1861–1992)',
+        ],
+        'MXV' => [
+            'MXV',
+            'Мексика инвестиция берәмеге',
+        ],
+        'MYR' => [
+            'MYR',
+            'Малайзия ринггиты',
+        ],
+        'MZE' => [
+            'MZE',
+            'Мозамбик эскудоһы',
+        ],
+        'MZM' => [
+            'MZM',
+            'Мозамбик метикалы (1980–2006)',
+        ],
+        'MZN' => [
+            'MZN',
+            'Мозамбик метикалы',
+        ],
+        'NAD' => [
+            'NAD',
+            'Намибия доллары',
+        ],
+        'NGN' => [
+            'NGN',
+            'Нигерия найраһы',
+        ],
+        'NIC' => [
+            'NIC',
+            'Никарагуа кордобаһы (1988–1991)',
+        ],
+        'NIO' => [
+            'NIO',
+            'Никарагуа кордобаһы',
+        ],
+        'NLG' => [
+            'NLG',
+            'Нидерланд гульдены',
+        ],
+        'NOK' => [
+            'NOK',
+            'Норвегия кронаһы',
+        ],
+        'NPR' => [
+            'NPR',
+            'Непал рупияһы',
+        ],
+        'NZD' => [
+            'NZ$',
+            'Яңы Зеландия доллары',
+        ],
+        'OMR' => [
+            'OMR',
+            'Оман риалы',
+        ],
+        'PAB' => [
+            'PAB',
+            'Панама бальбоаһы',
+        ],
+        'PEI' => [
+            'PEI',
+            'Перу интиһы',
+        ],
+        'PEN' => [
+            'PEN',
+            'Перу соле',
+        ],
+        'PES' => [
+            'PES',
+            'Перу солеһы (1863–1965)',
+        ],
+        'PGK' => [
+            'PGK',
+            'Папуа - Яңы Гвинея кинаһы',
+        ],
+        'PHP' => [
+            '₱',
+            'Филиппин песоһы',
+        ],
+        'PKR' => [
+            'PKR',
+            'Пакистан рупияһы',
+        ],
+        'PLN' => [
+            'PLN',
+            'Польша злотыйы',
+        ],
+        'PLZ' => [
+            'PLZ',
+            'Польша злотыйы (1950–1995)',
+        ],
+        'PTE' => [
+            'PTE',
+            'Португалия эскудоһы',
+        ],
+        'PYG' => [
+            'PYG',
+            'Парагвай гуараниһы',
+        ],
+        'QAR' => [
+            'QAR',
+            'Катар риалы',
+        ],
+        'RHD' => [
+            'RHD',
+            'Родезия доллары',
+        ],
+        'ROL' => [
+            'ROL',
+            'Румын лейе (1952–2006)',
+        ],
+        'RON' => [
+            'RON',
+            'Румын лейе',
+        ],
+        'RSD' => [
+            'RSD',
+            'Сербия динары',
+        ],
+        'RUB' => [
+            'RUB',
+            'Рәсәй рубле',
+        ],
+        'RUR' => [
+            'р.',
+            'Рәсәй рубле (1991–1998)',
+        ],
+        'RWF' => [
+            'RWF',
+            'Руанда франкы',
+        ],
+        'SAR' => [
+            'SAR',
+            'Сәғүд риалы',
+        ],
+        'SBD' => [
+            'SBD',
+            'Соломон утрауҙары доллары',
+        ],
+        'SCR' => [
+            'SCR',
+            'Сейшел рупияһы',
+        ],
+        'SDD' => [
+            'SDD',
+            'Судан динары (1992–2007)',
+        ],
+        'SDG' => [
+            'SDG',
+            'Судан фунты',
+        ],
+        'SDP' => [
+            'SDP',
+            'Судан фунты (1957–1998)',
+        ],
+        'SEK' => [
+            'SEK',
+            'Швеция кронаһы',
+        ],
+        'SGD' => [
+            'SGD',
+            'Сингапур доллары',
+        ],
+        'SHP' => [
+            'SHP',
+            'Изге Елена утрауы фунты',
+        ],
+        'SIT' => [
+            'SIT',
+            'Словения толары',
+        ],
+        'SKK' => [
+            'SKK',
+            'Словакия кронаһы',
+        ],
+        'SLE' => [
+            'SLE',
+            'Сьерра-Леоне леонеһы',
+        ],
+        'SLL' => [
+            'SLL',
+            'Сьерра-Леоне леонеһы (1964–2022)',
+        ],
+        'SOS' => [
+            'SOS',
+            'Сомали шиллингы',
+        ],
+        'SRD' => [
+            'SRD',
+            'Суринам доллары',
+        ],
+        'SRG' => [
+            'SRG',
+            'Суринам гульдены',
+        ],
+        'SSP' => [
+            'SSP',
+            'Көньяҡ Судан фунты',
+        ],
+        'STD' => [
+            'STD',
+            'Сан-Томе һәм Принсипи добраһы (1977–2017)',
+        ],
+        'STN' => [
+            'STN',
+            'Сан-Томе һәм Принсипи добраһы',
+        ],
+        'SUR' => [
+            'SUR',
+            'СССР рубле',
+        ],
+        'SVC' => [
+            'SVC',
+            'Сальвадор колоны',
+        ],
+        'SYP' => [
+            'SYP',
+            'Сүриә фунты',
+        ],
+        'SZL' => [
+            'SZL',
+            'Свазиленд лилангениһы',
+        ],
+        'THB' => [
+            'THB',
+            'Таиланд баты',
+        ],
+        'TJR' => [
+            'TJR',
+            'Тажикстан рубле',
+        ],
+        'TJS' => [
+            'TJS',
+            'Тажикстан сомониһы',
+        ],
+        'TMM' => [
+            'TMM',
+            'Төркмәнстан манаты (1993–2009)',
+        ],
+        'TMT' => [
+            'TMT',
+            'Төркмәнстан манаты',
+        ],
+        'TND' => [
+            'TND',
+            'Тунис динары',
+        ],
+        'TOP' => [
+            'TOP',
+            'Тонга паангаһы',
+        ],
+        'TPE' => [
+            'TPE',
+            'Тимор эскудоһы',
+        ],
+        'TRL' => [
+            'TRL',
+            'Төрөк лираһы (1922–2005)',
+        ],
+        'TRY' => [
+            'TRY',
+            'Төрөк лираһы',
+        ],
+        'TTD' => [
+            'TTD',
+            'Тринидад һәм Тобаго доллары',
+        ],
+        'TWD' => [
+            'NT$',
+            'Яңы Тайвань доллары',
+        ],
+        'TZS' => [
+            'TZS',
+            'Танзания шиллингы',
+        ],
+        'UAH' => [
+            'UAH',
+            'Украина гривнаһы',
+        ],
+        'UAK' => [
+            'UAK',
+            'Украина карбованецы',
+        ],
+        'UGS' => [
+            'UGS',
+            'Уганда шиллингы (1966–1987)',
+        ],
+        'UGX' => [
+            'UGX',
+            'Уганда шиллингы',
+        ],
+        'USD' => [
+            '$',
+            'АҠШ доллары',
+        ],
+        'USN' => [
+            'USN',
+            'АҠШ доллары (киләһе көн)',
+        ],
+        'USS' => [
+            'USS',
+            'АҠШ доллары (шул уҡ көн)',
+        ],
+        'UYI' => [
+            'UYI',
+            'Уругвай песоһы (индексланған берәмектәр)',
+        ],
+        'UYP' => [
+            'UYP',
+            'Уругвай песоһы (1975–1993)',
+        ],
+        'UYU' => [
+            'UYU',
+            'Уругвай песоһы',
+        ],
+        'UYW' => [
+            'UYW',
+            'Уругвай номиналь эш хаҡы индексы берәмеге',
+        ],
+        'UZS' => [
+            'UZS',
+            'Үзбәкстан һумы',
+        ],
+        'VEB' => [
+            'VEB',
+            'Венесуэла боливары (1871–2008)',
+        ],
+        'VED' => [
+            'VED',
+            'суверенлы боливар',
+        ],
+        'VEF' => [
+            'VEF',
+            'Венесуэла боливары (2008–2018)',
+        ],
+        'VES' => [
+            'VES',
+            'Венесуэла боливары',
+        ],
+        'VND' => [
+            '₫',
+            'Вьетнам донгы',
+        ],
+        'VNN' => [
+            'VNN',
+            'Вьетнам донгы (1978–1985)',
+        ],
+        'VUV' => [
+            'VUV',
+            'Вануату ватуһы',
+        ],
+        'WST' => [
+            'WST',
+            'Самоа талаһы',
+        ],
+        'XAF' => [
+            'FCFA',
+            'Үҙәк Африка КФА франкы',
+        ],
+        'XCD' => [
+            'EC$',
+            'Көнсығыш Кариб доллары',
+        ],
+        'XCG' => [
+            'Cg.',
+            'Кариб гульдены',
+        ],
+        'XEU' => [
+            'XEU',
+            'Европа валюта берәмеге',
+        ],
+        'XFO' => [
+            'XFO',
+            'Франция алтын франкы',
+        ],
+        'XFU' => [
+            'XFU',
+            'Франция UIC-франкы',
+        ],
+        'XOF' => [
+            'F CFA',
+            'Көнбайыш Африка КФА франкы',
+        ],
+        'XPF' => [
+            'CFPF',
+            'Француз Тымыҡ океан франкы',
+        ],
+        'XRE' => [
+            'XRE',
+            'RINET фондтары',
+        ],
+        'YDD' => [
+            'YDD',
+            'Йәмән динары',
+        ],
+        'YER' => [
+            'YER',
+            'Йәмән риалы',
+        ],
+        'YUD' => [
+            'YUD',
+            'Югославия ҡаты динары (1966–1990)',
+        ],
+        'YUM' => [
+            'YUM',
+            'Югославия яңы динары (1994–2002)',
+        ],
+        'YUN' => [
+            'YUN',
+            'Югославия алмашынмалы динары (1990–1992)',
+        ],
+        'YUR' => [
+            'YUR',
+            'Югославия реформаланған динары (1992–1993)',
+        ],
+        'ZAL' => [
+            'ZAL',
+            'Көньяҡ Африка рэнды (финанс)',
+        ],
+        'ZAR' => [
+            'ZAR',
+            'Көньяҡ Африка рэнды',
+        ],
+        'ZMK' => [
+            'ZMK',
+            'Замбия квачаһы (1968–2012)',
+        ],
+        'ZMW' => [
+            'ZMW',
+            'Замбия квачаһы',
+        ],
+        'ZRN' => [
+            'ZRN',
+            'Заир яңы заиры (1993–1998)',
+        ],
+        'ZRZ' => [
+            'ZRZ',
+            'Заир заиры (1971–1993)',
+        ],
+        'ZWD' => [
+            'ZWD',
+            'Зимбабве доллары (1980–2008)',
+        ],
+        'ZWG' => [
+            'ZWG',
+            'Зимбабве алтыны',
+        ],
+        'ZWL' => [
+            'ZWL',
+            'Зимбабве доллары (2009–2024)',
+        ],
+        'ZWR' => [
+            'ZWR',
+            'Зимбабве доллары (2008)',
+        ],
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/be.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/be.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/be.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/be.php	2026-05-20 10:56:49.000000000 +0200
@@ -626,6 +626,10 @@
             'EC$',
             'усходнекарыбскі долар',
         ],
+        'XCG' => [
+            'Cg.',
+            'карыбскі гульдэн',
+        ],
         'XOF' => [
             'F CFA',
             'заходнеафрыканскі франк КФА',
@@ -646,5 +650,9 @@
             'ZMW',
             'замбійская квача',
         ],
+        'ZWG' => [
+            'ZWG',
+            'зімбабвійскі залаты',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bg.php	2026-05-20 10:56:49.000000000 +0200
@@ -970,6 +970,10 @@
             'XCD',
             'Източнокарибски долар',
         ],
+        'XCG' => [
+            'Cg.',
+            'Карибски гулден',
+        ],
         'XEU' => [
             'XEU',
             'Еку на ЕИО',
@@ -1034,6 +1038,10 @@
             'ZWD',
             'Зимбабвийски долар',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Зимбабвийско злато',
+        ],
         'ZWL' => [
             'ZWL',
             'Зимбабвийски долар (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1002,6 +1002,10 @@
             'EC$',
             'পূর্ব ক্যারাবিয়ান ডলার',
         ],
+        'XCG' => [
+            'Cg.',
+            'ক্যারিবিয়ান গিল্ডার',
+        ],
         'XEU' => [
             'XEU',
             'ইউরোপীয় মুদ্রা একক',
@@ -1070,6 +1074,10 @@
             'ZWD',
             'জিম্বাবুয়ে ডলার (১৯৮০–২০০৮)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'জিম্বাবায়েন গোল্ড',
+        ],
         'ZWL' => [
             'ZWL',
             'জিম্বাবুয়ে ডলার (২০০৯)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/bs.php	2026-05-20 10:56:49.000000000 +0200
@@ -888,11 +888,11 @@
         ],
         'SLE' => [
             'SLE',
-            'Sijeraleonski leone',
+            'sijeraleonski leone',
         ],
         'SLL' => [
             'SLL',
-            'Sijeraleonski leone (1964—2022)',
+            'sijeraleonski leone (1964—2022)',
         ],
         'SOS' => [
             'SOS',
@@ -1066,6 +1066,10 @@
             'XCD',
             'Istočnokaripski dolar',
         ],
+        'XCG' => [
+            'Cg.',
+            'karipski gulden',
+        ],
         'XEU' => [
             'XEU',
             'Evropska valutna jedinica',
@@ -1142,6 +1146,10 @@
             'ZWD',
             'Zimbabvejski dolar (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabveansko zlato',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabvejski dolar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ca.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ca.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ca.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ca.php	2026-05-20 10:56:49.000000000 +0200
@@ -1070,6 +1070,10 @@
             'XCD',
             'dòlar del Carib Oriental',
         ],
+        'XCG' => [
+            'XCG',
+            'florí de les Antilles',
+        ],
         'XEU' => [
             'XEU',
             'unitat de moneda europea',
@@ -1146,6 +1150,10 @@
             'ZWD',
             'dòlar zimbabuès (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'or de Zimbàbue',
+        ],
         'ZWL' => [
             'ZWL',
             'dòlar zimbabuès (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cs.php	2026-05-20 10:56:49.000000000 +0200
@@ -1078,6 +1078,10 @@
             'EC$',
             'východokaribský dolar',
         ],
+        'XCG' => [
+            'Cg.',
+            'karibský gulden',
+        ],
         'XEU' => [
             'ECU',
             'evropská měnová jednotka',
@@ -1154,6 +1158,10 @@
             'ZWD',
             'zimbabwský dolar (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabwský zlatý',
+        ],
         'ZWL' => [
             'ZWL',
             'zimbabwský dolar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cv.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,13 +2,25 @@
 
 return [
     'Names' => [
+        'ADP' => [
+            'ADP',
+            'Андорра песи',
+        ],
         'AED' => [
             'AED',
-            'АПЭ дирхамӗ',
+            'Пӗрлешнӗ Араб Эмирачӗсен дирхамӗ',
+        ],
+        'AFA' => [
+            'AFA',
+            'Афганистан афганийӗ (1927–2002)',
         ],
         'AFN' => [
             'AFN',
-            'афганийӗ',
+            'Афганистан афганийӗ',
+        ],
+        'ALK' => [
+            'ALK',
+            'Албани лекӗ (1946–1965)',
         ],
         'ALL' => [
             'ALL',
@@ -16,19 +28,51 @@
         ],
         'AMD' => [
             'AMD',
-            'Армяни драмӗ',
+            'Армени драмӗ',
         ],
         'ANG' => [
             'ANG',
-            'Нидерланд Антиллиан гульденӗ',
+            'Нидерланд Антилӗн гульденӗ',
         ],
         'AOA' => [
             'AOA',
-            'Ангола кванзӗ',
+            'Ангола кванзи',
+        ],
+        'AOK' => [
+            'AOK',
+            'Ангола кванзи (1977–1991)',
+        ],
+        'AON' => [
+            'AON',
+            'Ангола ҫӗнӗ кванзи (1990–2000)',
+        ],
+        'AOR' => [
+            'AOR',
+            'Ангола реюстадо кванзӗ (1995–1999)',
+        ],
+        'ARA' => [
+            'ARA',
+            'Аргентина аустралӗ',
+        ],
+        'ARL' => [
+            'ARL',
+            'Аргентина песо-лейӗ (1970–1983)',
+        ],
+        'ARM' => [
+            'ARM',
+            'Аргентина песи (1881–1970)',
+        ],
+        'ARP' => [
+            'ARP',
+            'Аргентина песи (1983–1985)',
         ],
         'ARS' => [
             'ARS',
-            'Аргентина песийӗ',
+            'Аргентина песи',
+        ],
+        'ATS' => [
+            'ATS',
+            'Австри шиллингӗ',
         ],
         'AUD' => [
             'A$',
@@ -38,13 +82,25 @@
             'AWG',
             'Аруба флоринӗ',
         ],
+        'AZM' => [
+            'AZM',
+            'Азербайджан маначӗ (1993–2006)',
+        ],
         'AZN' => [
             'AZN',
             'Азербайджан маначӗ',
         ],
+        'BAD' => [
+            'BAD',
+            'Боснипе Герцеговина динарӗ (1992–1994)',
+        ],
         'BAM' => [
             'BAM',
-            'Боснипе Герцеговина конвертланакан марки',
+            'Боснипе Герцеговина конверсиленекен марки',
+        ],
+        'BAN' => [
+            'BAN',
+            'Боснипе Герцеговина ҫӗнӗ динарӗ (1994–1997)',
         ],
         'BBD' => [
             'BBD',
@@ -54,10 +110,34 @@
             'BDT',
             'Бангладеш таки',
         ],
+        'BEC' => [
+            'BEC',
+            'Бельги конверсиленекен франкӗ',
+        ],
+        'BEF' => [
+            'BEF',
+            'Бельги франкӗ',
+        ],
+        'BEL' => [
+            'BEL',
+            'Бельги франкӗ (финанс)',
+        ],
+        'BGL' => [
+            'BGL',
+            'Болгари хытӑ левӗ',
+        ],
+        'BGM' => [
+            'BGM',
+            'Болгари социалистсен левӗ',
+        ],
         'BGN' => [
             'BGN',
             'Болгари левӗ',
         ],
+        'BGO' => [
+            'BGO',
+            'Болгари левӗ (1879–1952)',
+        ],
         'BHD' => [
             'BHD',
             'Бахрейн динарӗ',
@@ -78,25 +158,73 @@
             'BOB',
             'Боливи боливианӗ',
         ],
+        'BOL' => [
+            'BOL',
+            'Боливи боливианӗ (1863–1963)',
+        ],
+        'BOP' => [
+            'BOP',
+            'Боливи песи',
+        ],
+        'BOV' => [
+            'BOV',
+            'Боливи мвдолӗ',
+        ],
+        'BRB' => [
+            'BRB',
+            'Бразили ҫӗнӗ крузейри (1967–1986)',
+        ],
+        'BRC' => [
+            'BRC',
+            'Бразили крузади (1986–1989)',
+        ],
+        'BRE' => [
+            'BRE',
+            'Бразили крузейри (1990–1993)',
+        ],
         'BRL' => [
             'R$',
             'Бразили реалӗ',
         ],
+        'BRN' => [
+            'BRN',
+            'Бразили ҫӗнӗ крузади (1989–1990)',
+        ],
+        'BRR' => [
+            'BRR',
+            'Бразили крузейри (1993–1994)',
+        ],
+        'BRZ' => [
+            'BRZ',
+            'Бразили крузейри (1942–1967)',
+        ],
         'BSD' => [
             'BSD',
-            'Багам долларӗ',
+            'Багама долларӗ',
         ],
         'BTN' => [
             'BTN',
             'Бутан нгултрумӗ',
         ],
+        'BUK' => [
+            'BUK',
+            'Бирман кьячӗ',
+        ],
         'BWP' => [
             'BWP',
             'Ботсвана пули',
         ],
+        'BYB' => [
+            'BYB',
+            'Беларусь рублӗ (1994–1999)',
+        ],
         'BYN' => [
             'BYN',
-            'Беларуҫ тенкӗ',
+            'Беларусь рублӗ',
+        ],
+        'BYR' => [
+            'BYR',
+            'Беларусь рублӗ (2000–2016)',
         ],
         'BZD' => [
             'BZD',
@@ -108,19 +236,39 @@
         ],
         'CDF' => [
             'CDF',
-            'Конголези франкӗ',
+            'Конго франкӗ',
+        ],
+        'CHE' => [
+            'CHE',
+            'WIR еври',
         ],
         'CHF' => [
             'CHF',
             'Швейцари франкӗ',
         ],
+        'CHW' => [
+            'CHW',
+            'WIR франкӗ',
+        ],
+        'CLE' => [
+            'CLE',
+            'Чили эскуди',
+        ],
+        'CLF' => [
+            'CLF',
+            'Чили татӑлу единици (UF)',
+        ],
         'CLP' => [
             'CLP',
-            'Чили песийӗ',
+            'Чили песи',
         ],
         'CNH' => [
             'CNH',
-            'Китай офшор юанӗ',
+            'Китай юанӗ (офшор)',
+        ],
+        'CNX' => [
+            'CNX',
+            'Китай халӑх банкӗн долларӗ',
         ],
         'CNY' => [
             'CN¥',
@@ -128,27 +276,51 @@
         ],
         'COP' => [
             'COP',
-            'Колумби песийӗ',
+            'Колумби песи',
+        ],
+        'COU' => [
+            'COU',
+            'Колумби чӑн хаклӑх единици',
         ],
         'CRC' => [
             'CRC',
             'Коста-Рика колонӗ',
         ],
+        'CSD' => [
+            'CSD',
+            'Серби динарӗ (2002–2006)',
+        ],
+        'CSK' => [
+            'CSK',
+            'Чехословаки хытӑ кронӗ',
+        ],
         'CUC' => [
             'CUC',
-            'Куба конвертланакан песийӗ',
+            'Куба конверсиленекен песи',
         ],
         'CUP' => [
             'CUP',
-            'Куба песийӗ',
+            'Куба песи',
         ],
         'CVE' => [
             'CVE',
-            'Кабо-Верде эскудӗ',
+            'Кабо-Верде эскуди',
+        ],
+        'CYP' => [
+            'CYP',
+            'Кипр фунчӗ',
         ],
         'CZK' => [
             'CZK',
-            'Чехи кронӗ',
+            'Чехи крони',
+        ],
+        'DDM' => [
+            'DDM',
+            'Тухӑҫ Германи марки',
+        ],
+        'DEM' => [
+            'DEM',
+            'Германи марки',
         ],
         'DJF' => [
             'DJF',
@@ -156,23 +328,47 @@
         ],
         'DKK' => [
             'DKK',
-            'Дани кронӗ',
+            'Дани крони',
         ],
         'DOP' => [
             'DOP',
-            'Доминикан песийӗ',
+            'Доминика песи',
         ],
         'DZD' => [
             'DZD',
             'Алжир динарӗ',
         ],
+        'ECS' => [
+            'ECS',
+            'Эквадор сукри',
+        ],
+        'ECV' => [
+            'ECV',
+            'Эквадор яланхи хаклӑх единици',
+        ],
+        'EEK' => [
+            'EEK',
+            'Эстон крони',
+        ],
         'EGP' => [
             'EGP',
             'Египет фунчӗ',
         ],
         'ERN' => [
             'ERN',
-            'Эритрей накфӗ',
+            'Эритрей накфи',
+        ],
+        'ESA' => [
+            'ESA',
+            'Испани песети (А)',
+        ],
+        'ESB' => [
+            'ESB',
+            'Испани конверсиленекен песети',
+        ],
+        'ESP' => [
+            'ESP',
+            'Испани песети',
         ],
         'ETB' => [
             'ETB',
@@ -182,22 +378,38 @@
             '€',
             'евро',
         ],
+        'FIM' => [
+            'FIM',
+            'Финлянди марки',
+        ],
         'FJD' => [
             'FJD',
             'Фиджи долларӗ',
         ],
         'FKP' => [
             'FKP',
-            'Факланд утравӗсен фунчӗ',
+            'Фолкленд утравӗсен фунчӗ',
+        ],
+        'FRF' => [
+            'FRF',
+            'Франци франкӗ',
         ],
         'GBP' => [
             '£',
             'Британи фунчӗ',
         ],
+        'GEK' => [
+            'GEK',
+            'Грузи купонӗ',
+        ],
         'GEL' => [
             'GEL',
             'Грузи ларийӗ',
         ],
+        'GHC' => [
+            'GHC',
+            'Гана седийӗ (1979–2007)',
+        ],
         'GHS' => [
             'GHS',
             'Гана седийӗ',
@@ -214,9 +426,29 @@
             'GNF',
             'Гвиней франкӗ',
         ],
+        'GNS' => [
+            'GNS',
+            'Гвиней силийӗ',
+        ],
+        'GQE' => [
+            'GQE',
+            'Экваторти Гвиней эквелӗ',
+        ],
+        'GRD' => [
+            'GRD',
+            'Греци драхми',
+        ],
         'GTQ' => [
             'GTQ',
-            'Гватемала кетсалӗ',
+            'Гватемала кетцалӗ',
+        ],
+        'GWE' => [
+            'GWE',
+            'Гвиней-Бисау эскуди',
+        ],
+        'GWP' => [
+            'GWP',
+            'Гвиней-Бисау песи',
         ],
         'GYD' => [
             'GYD',
@@ -228,7 +460,11 @@
         ],
         'HNL' => [
             'HNL',
-            'Гондурас лемпирӗ',
+            'Гондурас лемпири',
+        ],
+        'HRD' => [
+            'HRD',
+            'Хорвати динарӗ',
         ],
         'HRK' => [
             'HRK',
@@ -246,9 +482,21 @@
             'IDR',
             'Индонези рупийӗ',
         ],
+        'IEP' => [
+            'IEP',
+            'Ирланди фунчӗ',
+        ],
+        'ILP' => [
+            'ILP',
+            'Израиль фунчӗ',
+        ],
+        'ILR' => [
+            'ILR',
+            'Израиль шекелӗ (1980–1985)',
+        ],
         'ILS' => [
             '₪',
-            'Ҫӗнӗ Израиль шекелӗ',
+            'Израиль ҫӗнӗ шекелӗ',
         ],
         'INR' => [
             '₹',
@@ -262,9 +510,17 @@
             'IRR',
             'Иран риалӗ',
         ],
+        'ISJ' => [
+            'ISJ',
+            'Исланди крони (1918–1981)',
+        ],
         'ISK' => [
             'ISK',
-            'Исланди кронӗ',
+            'Исланди крони',
+        ],
+        'ITL' => [
+            'ITL',
+            'Итали лири',
         ],
         'JMD' => [
             'JMD',
@@ -284,7 +540,7 @@
         ],
         'KGS' => [
             'KGS',
-            'Киргиз сомӗ',
+            'Кӑркӑсстан сомӗ',
         ],
         'KHR' => [
             'KHR',
@@ -292,15 +548,23 @@
         ],
         'KMF' => [
             'KMF',
-            'Комора франкӗ',
+            'Комор франкӗ',
         ],
         'KPW' => [
             'KPW',
-            'КХДР вони',
+            'Ҫур ҫӗр Корей вони',
+        ],
+        'KRH' => [
+            'KRH',
+            'Кӑнтӑр Корея хванӗ (1953–1962)',
+        ],
+        'KRO' => [
+            'KRO',
+            'Кӑнтӑр Корей вони (1945–1953)',
         ],
         'KRW' => [
             '₩',
-            'Корей вони',
+            'Кӑнтӑр Корей вони',
         ],
         'KWD' => [
             'KWD',
@@ -312,7 +576,7 @@
         ],
         'KZT' => [
             'KZT',
-            'Казах тенгейӗ',
+            'Казахстан тенги',
         ],
         'LAK' => [
             'LAK',
@@ -324,7 +588,7 @@
         ],
         'LKR' => [
             'LKR',
-            'Шри-ланка рупийӗ',
+            'Шри-Ланка рупийӗ',
         ],
         'LRD' => [
             'LRD',
@@ -334,6 +598,34 @@
             'LSL',
             'Лесото лотийӗ',
         ],
+        'LTL' => [
+            'LTL',
+            'Литва личӗ',
+        ],
+        'LTT' => [
+            'LTT',
+            'Литва талонӗ',
+        ],
+        'LUC' => [
+            'LUC',
+            'Люксембург конверсиленекен франкӗ',
+        ],
+        'LUF' => [
+            'LUF',
+            'Люксембург франкӗ',
+        ],
+        'LUL' => [
+            'LUL',
+            'Люксембург финанс франкӗ',
+        ],
+        'LVL' => [
+            'LVL',
+            'Латви лачӗ',
+        ],
+        'LVR' => [
+            'LVR',
+            'Латви рублӗ',
+        ],
         'LYD' => [
             'LYD',
             'Ливи динарӗ',
@@ -342,21 +634,45 @@
             'MAD',
             'Марокко дирхамӗ',
         ],
+        'MAF' => [
+            'MAF',
+            'Марокко франкӗ',
+        ],
+        'MCF' => [
+            'MCF',
+            'Монако франкӗ',
+        ],
+        'MDC' => [
+            'MDC',
+            'Молдова купонӗ',
+        ],
         'MDL' => [
             'MDL',
             'Молдова лайӗ',
         ],
         'MGA' => [
             'MGA',
-            'Малагаси ариарийӗ',
+            'Мадагаскар ариарийӗ',
+        ],
+        'MGF' => [
+            'MGF',
+            'Мадагаскар франкӗ',
         ],
         'MKD' => [
             'MKD',
             'Македони денарӗ',
         ],
+        'MKN' => [
+            'MKN',
+            'Македони денарӗ (1992–1993)',
+        ],
+        'MLF' => [
+            'MLF',
+            'Мали франкӗ',
+        ],
         'MMK' => [
             'MMK',
-            'Мьянман кьятӗ',
+            'Мьянма кьячӗ',
         ],
         'MNT' => [
             'MNT',
@@ -366,30 +682,62 @@
             'MOP',
             'Макао патаки',
         ],
+        'MRO' => [
+            'MRO',
+            'Мавритани угийӗ (1973–2017)',
+        ],
         'MRU' => [
             'MRU',
             'Мавритани угийӗ',
         ],
+        'MTL' => [
+            'MTL',
+            'Мальта лири',
+        ],
+        'MTP' => [
+            'MTP',
+            'Мальта фунчӗ',
+        ],
         'MUR' => [
             'MUR',
             'Маврики рупийӗ',
         ],
+        'MVP' => [
+            'MVP',
+            'Мальдив рупийӗ (1947–1981)',
+        ],
         'MVR' => [
             'MVR',
-            'Мальдивсен руфийӗ',
+            'Мальдив руфийӗ',
         ],
         'MWK' => [
             'MWK',
-            'Малави квачӗ',
+            'Малави квачи',
         ],
         'MXN' => [
             'MX$',
-            'Мексика песийӗ',
+            'Мексика песи',
+        ],
+        'MXP' => [
+            'MXP',
+            'Мексика кӗмӗл песи (1861–1992)',
+        ],
+        'MXV' => [
+            'MXV',
+            'Мексика инвестици единици',
         ],
         'MYR' => [
             'MYR',
             'Малайзи ринггичӗ',
         ],
+        'MZE' => [
+            'MZE',
+            'Мозамбик эскуди',
+        ],
+        'MZM' => [
+            'MZM',
+            'Мозамбик метикалӗ (1980–2006)',
+        ],
         'MZN' => [
             'MZN',
             'Мозамбик метикалӗ',
@@ -400,15 +748,23 @@
         ],
         'NGN' => [
             'NGN',
-            'Нигери найрӗ',
+            'Нигери найри',
+        ],
+        'NIC' => [
+            'NIC',
+            'Никарагуа кордоби (1988–1991)',
         ],
         'NIO' => [
             'NIO',
-            'Никарагуа кордобӗ',
+            'Никарагуа кордоби',
+        ],
+        'NLG' => [
+            'NLG',
+            'Нидерланд гульденӗ',
         ],
         'NOK' => [
             'NOK',
-            'Норвеги кронӗ',
+            'Норвеги крони',
         ],
         'NPR' => [
             'NPR',
@@ -424,27 +780,43 @@
         ],
         'PAB' => [
             'PAB',
-            'Панама бальбоа',
+            'Панама бальбойи',
+        ],
+        'PEI' => [
+            'PEI',
+            'Перу интийӗ',
         ],
         'PEN' => [
             'PEN',
             'Перу солӗ',
         ],
+        'PES' => [
+            'PES',
+            'Перу солӗ (1863–1965)',
+        ],
         'PGK' => [
             'PGK',
-            'Папуа – Ҫӗнӗ Гвиней кини',
+            'Папуа – Ҫӗнӗ Гвинея кини',
         ],
         'PHP' => [
             '₱',
-            'Филиппин песийӗ',
+            'Филиппин песи',
         ],
         'PKR' => [
             'PKR',
-            'пакистан рупийӗ',
+            'Пакистан рупийӗ',
         ],
         'PLN' => [
             'PLN',
-            'Польша злотыйӗ',
+            'Польша злотӑйӗ',
+        ],
+        'PLZ' => [
+            'PLZ',
+            'Польша злотӑйӗ (1950–1995)',
+        ],
+        'PTE' => [
+            'PTE',
+            'Португали эскуди',
         ],
         'PYG' => [
             'PYG',
@@ -454,6 +826,14 @@
             'QAR',
             'Катар риалӗ',
         ],
+        'RHD' => [
+            'RHD',
+            'Родези долларӗ',
+        ],
+        'ROL' => [
+            'ROL',
+            'Румыни лейӗ (1952–2006)',
+        ],
         'RON' => [
             'RON',
             'Румыни лейӗ',
@@ -464,7 +844,11 @@
         ],
         'RUB' => [
             '₽',
-            'Раҫҫей тенкӗ',
+            'Раҫҫей рублӗ',
+        ],
+        'RUR' => [
+            'RUR',
+            'Раҫҫей рублӗ (1991–1998)',
         ],
         'RWF' => [
             'RWF',
@@ -472,7 +856,7 @@
         ],
         'SAR' => [
             'SAR',
-            'Сауд риялӗ',
+            'Сауд Аравийӗ риялӗ',
         ],
         'SBD' => [
             'SBD',
@@ -482,13 +866,21 @@
             'SCR',
             'Сейшел рупийӗ',
         ],
+        'SDD' => [
+            'SDD',
+            'Судан динарӗ (1992–2007)',
+        ],
         'SDG' => [
             'SDG',
             'Судан фунчӗ',
         ],
+        'SDP' => [
+            'SDP',
+            'Судан фунчӗ (1957–1998)',
+        ],
         'SEK' => [
             'SEK',
-            'Швеци кронӗ',
+            'Швеци крони',
         ],
         'SGD' => [
             'SGD',
@@ -498,13 +890,21 @@
             'SHP',
             'Сӑваплӑ Елена утравӗн фунчӗ',
         ],
+        'SIT' => [
+            'SIT',
+            'Словени толарӗ',
+        ],
+        'SKK' => [
+            'SKK',
+            'Словаки крони',
+        ],
         'SLE' => [
             'SLE',
-            'леонӗ',
+            'Сьерра-Леоне леони',
         ],
         'SLL' => [
             'SLL',
-            'леонӗ (1964—2022)',
+            'Сьерра-Леоне леони (1964–2022)',
         ],
         'SOS' => [
             'SOS',
@@ -514,13 +914,29 @@
             'SRD',
             'Суринам долларӗ',
         ],
+        'SRG' => [
+            'SRG',
+            'Суринам гульденӗ',
+        ],
         'SSP' => [
             'SSP',
             'Кӑнтӑр Судан фунчӗ',
         ],
+        'STD' => [
+            'STD',
+            'Сан-Томепе Принсипи добри (1977–2017)',
+        ],
         'STN' => [
             'STN',
-            'Сан-Томе тата Принсипи добрӗ',
+            'Сан-Томепе Принсипи добри',
+        ],
+        'SUR' => [
+            'SUR',
+            'ССРП рублӗ',
+        ],
+        'SVC' => [
+            'SVC',
+            'Сальвадор колонӗ',
         ],
         'SYP' => [
             'SYP',
@@ -528,27 +944,43 @@
         ],
         'SZL' => [
             'SZL',
-            'Свази лилангенийӗ',
+            'Эсватини лилангенийӗ',
         ],
         'THB' => [
             'THB',
-            'Таиланд барӗ',
+            'Таиланд бачӗ',
+        ],
+        'TJR' => [
+            'TJR',
+            'Таджикистан рублӗ',
         ],
         'TJS' => [
             'TJS',
-            'Таджик сомонийӗ',
+            'Таджикистан сомонийӗ',
+        ],
+        'TMM' => [
+            'TMM',
+            'Туркменистан маначӗ (1993–2009)',
         ],
         'TMT' => [
             'TMT',
-            'Туркмен маначӗ',
+            'Туркменистан маначӗ',
         ],
         'TND' => [
             'TND',
-            'Тунези динарӗ',
+            'Тунис динарӗ',
         ],
         'TOP' => [
             'TOP',
-            'Тонган паанги',
+            'Тонга паанги',
+        ],
+        'TPE' => [
+            'TPE',
+            'Тимор эскуди',
+        ],
+        'TRL' => [
+            'TRL',
+            'Турци лири (1922–2005)',
         ],
         'TRY' => [
             'TRY',
@@ -556,11 +988,11 @@
         ],
         'TTD' => [
             'TTD',
-            'Тринидад тата Тобаго долларӗ',
+            'Тринидадпа Тобаго долларӗ',
         ],
         'TWD' => [
             'NT$',
-            'Ҫӗнӗ Тайван долларӗ',
+            'Тайвань ҫӗнӗ долларӗ',
         ],
         'TZS' => [
             'TZS',
@@ -570,6 +1002,14 @@
             'UAH',
             'Украина гривни',
         ],
+        'UAK' => [
+            'UAK',
+            'Украина карбованецӗ',
+        ],
+        'UGS' => [
+            'UGS',
+            'Уганда шиллингӗ (1966–1987)',
+        ],
         'UGX' => [
             'UGX',
             'Уганда шиллингӗ',
@@ -578,13 +1018,45 @@
             '$',
             'АПШ долларӗ',
         ],
+        'USN' => [
+            'USN',
+            'АПШ долларӗ (ҫитес кун)',
+        ],
+        'USS' => [
+            'USS',
+            'АПШ долларӗ (ҫак кун)',
+        ],
+        'UYI' => [
+            'UYI',
+            'Уругвай песи (индексациленӗ единица)',
+        ],
+        'UYP' => [
+            'UYP',
+            'Уругвай песи (1975–1993)',
+        ],
         'UYU' => [
             'UYU',
-            'Уругвай песийӗ',
+            'Уругвай песи',
+        ],
+        'UYW' => [
+            'UYW',
+            'Уругвай номинал ӗҫ хакӗн индексӗн единици',
         ],
         'UZS' => [
             'UZS',
-            'Узбек сумӗ',
+            'Узбекистан сумӗ',
+        ],
+        'VEB' => [
+            'VEB',
+            'Венесуэла боливарӗ (1871–2008)',
+        ],
+        'VED' => [
+            'VED',
+            'Венесуэла суверенлӑ боливарӗ',
+        ],
+        'VEF' => [
+            'VEF',
+            'Венесуэла боливарӗ (2008–2018)',
         ],
         'VES' => [
             'VES',
@@ -594,9 +1066,13 @@
             '₫',
             'Вьетнам донгӗ',
         ],
+        'VNN' => [
+            'VNN',
+            'Вьетнам донгӗ (1978–1985)',
+        ],
         'VUV' => [
             'VUV',
-            'Вануату ватуйӗ',
+            'Вануату ватувӗ',
         ],
         'WST' => [
             'WST',
@@ -604,31 +1080,103 @@
         ],
         'XAF' => [
             'FCFA',
-            'Тӗп Африка КФА франкӗ',
+            'Вӑта Африка КФА франкӗ',
         ],
         'XCD' => [
             'EC$',
-            'Хӗвелтухӑҫ Карибсем долларӗ',
+            'Тухӑҫ Кариб долларӗ',
+        ],
+        'XCG' => [
+            'Cg.',
+            'Кариб гульденӗ',
+        ],
+        'XEU' => [
+            'XEU',
+            'Европа валюта единици',
+        ],
+        'XFO' => [
+            'XFO',
+            'Франци ылтӑн франкӗ',
+        ],
+        'XFU' => [
+            'XFU',
+            'Франци UIC франкӗ',
         ],
         'XOF' => [
             'F CFA',
-            'КФА ВСЕАО франкӗ',
+            'Анӑҫ Африка КФА франкӗ',
         ],
         'XPF' => [
             'CFPF',
-            'Франци Лӑпкӑ океан франкӗ',
+            'КФП франкӗ',
+        ],
+        'XRE' => [
+            'XRE',
+            'RINET фонд единици',
+        ],
+        'YDD' => [
+            'YDD',
+            'Йемен динарӗ',
         ],
         'YER' => [
             'YER',
             'Йемен риалӗ',
         ],
+        'YUD' => [
+            'YUD',
+            'Югослави хытӑ динарӗ (1966–1990)',
+        ],
+        'YUM' => [
+            'YUM',
+            'Югослави ҫӗнӗ динарӗ (1994–2002)',
+        ],
+        'YUN' => [
+            'YUN',
+            'Югослави конверсиленекен динарӗ (1990–1992)',
+        ],
+        'YUR' => [
+            'YUR',
+            'Югослави реформӑланӑ динарӗ (1992–1993)',
+        ],
+        'ZAL' => [
+            'ZAL',
+            'Кӑнтӑр Африка рэнчӗ (финанс)',
+        ],
         'ZAR' => [
             'ZAR',
-            'Кӑнтӑр Африка рэндӗ',
+            'Кӑнтӑр Африка рэнчӗ',
+        ],
+        'ZMK' => [
+            'ZMK',
+            'Замби квачи (1968–2012)',
         ],
         'ZMW' => [
             'ZMW',
             'Замби квачи',
         ],
+        'ZRN' => [
+            'ZRN',
+            'Заир ҫӗнӗ заирӗ (1993–1998)',
+        ],
+        'ZRZ' => [
+            'ZRZ',
+            'Заир заирӗ (1971–1993)',
+        ],
+        'ZWD' => [
+            'ZWD',
+            'Зимбабве долларӗ (1980–2008)',
+        ],
+        'ZWG' => [
+            'ZWG',
+            'Зимбабве ылтӑнӗ',
+        ],
+        'ZWL' => [
+            'ZWL',
+            'Зимбабве долларӗ (2009–2024)',
+        ],
+        'ZWR' => [
+            'ZWR',
+            'Зимбабве долларӗ (2008)',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/cy.php	2026-05-20 10:56:49.000000000 +0200
@@ -958,6 +958,10 @@
             'EC$',
             'Doler Dwyrain y Caribî',
         ],
+        'XCG' => [
+            'Cg.',
+            'guilder Caribïaidd',
+        ],
         'XEU' => [
             'XEU',
             'Uned Arian Cyfred Ewropeaidd',
@@ -1006,6 +1010,10 @@
             'ZWD',
             'Doler Zimbabwe (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwean Gold',
+        ],
         'ZWL' => [
             'ZWL',
             'Doler Zimbabwe (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/da.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/da.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/da.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/da.php	2026-05-20 10:56:49.000000000 +0200
@@ -978,6 +978,10 @@
             'EC$',
             'østkaribisk dollar',
         ],
+        'XCG' => [
+            'Cg.',
+            'caribiske gylden',
+        ],
         'XEU' => [
             'XEU',
             'ECU',
@@ -1050,6 +1054,10 @@
             'ZWD',
             'Zimbabwisk dollar (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwe Gold',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabwisk dollar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/de.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/de.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/de.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/de.php	2026-05-20 10:56:49.000000000 +0200
@@ -1078,6 +1078,10 @@
             'EC$',
             'Ostkaribischer Dollar',
         ],
+        'XCG' => [
+            'Cg.',
+            'Karibischer Gulden',
+        ],
         'XEU' => [
             'XEU',
             'Europäische Währungseinheit (XEU)',
@@ -1154,6 +1158,10 @@
             'ZWD',
             'Simbabwe-Dollar (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Simbabwe-Gold',
+        ],
         'ZWL' => [
             'ZWL',
             'Simbabwe-Dollar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/el.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/el.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/el.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/el.php	2026-05-20 10:56:49.000000000 +0200
@@ -990,6 +990,10 @@
             'EC$',
             'Δολάριο Ανατολικής Καραϊβικής',
         ],
+        'XCG' => [
+            'Cg.',
+            'γκίλντα Καραϊβικής',
+        ],
         'XEU' => [
             'XEU',
             'Ευρωπαϊκή Συναλλαγματική Μονάδα',
@@ -1058,6 +1062,10 @@
             'ZWD',
             'Δολάριο Ζιμπάμπουε',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Χρυσός της Ζιμπάμπουε',
+        ],
         'ZWL' => [
             'ZWL',
             'Δολάριο Ζιμπάμπουε (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_CA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_CA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_CA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_CA.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,5 +50,9 @@
             'US$',
             'US Dollar',
         ],
+        'XCG' => [
+            'Cg',
+            'Caribbean guilder',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_GE.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_GE.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_GE.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_GE.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,10 @@
+<?php
+
+return [
+    'Names' => [
+        'GEL' => [
+            '₾',
+            'Georgian Lari',
+        ],
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_IN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_IN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_IN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_IN.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,9 +14,9 @@
             'VEF',
             'Venezuelan Bolívar',
         ],
-        'VES' => [
-            'VES',
-            'VEF',
+        'XCG' => [
+            'Cg.',
+            'Caribbean Guilder',
         ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_NO.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_NO.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_NO.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en_NO.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,10 @@
+<?php
+
+return [
+    'Names' => [
+        'NOK' => [
+            'kr',
+            'Norwegian Krone',
+        ],
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/en.php	2026-05-20 10:56:49.000000000 +0200
@@ -540,7 +540,7 @@
         ],
         'KGS' => [
             'KGS',
-            'Kyrgystani Som',
+            'Kyrgyz Som',
         ],
         'KHR' => [
             'KHR',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/eo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/eo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/eo.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/eo.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,642 @@
+<?php
+
+return [
+    'Names' => [
+        'AED' => [
+            'AED',
+            'dirhamo de Unuiĝintaj Arabaj Emirlandoj',
+        ],
+        'AFN' => [
+            'AFN',
+            'afgana afganio',
+        ],
+        'ALL' => [
+            'ALL',
+            'albana leko',
+        ],
+        'AMD' => [
+            'AMD',
+            'armena dramo',
+        ],
+        'ANG' => [
+            'ANG',
+            'nederlandantila guldeno',
+        ],
+        'AOA' => [
+            'AOA',
+            'angola kvanzo',
+        ],
+        'ARS' => [
+            'ARS',
+            'argentina peso',
+        ],
+        'AUD' => [
+            'AUD',
+            'aŭstralia dolaro',
+        ],
+        'AWG' => [
+            'AWG',
+            'aruba floreno',
+        ],
+        'AZN' => [
+            'AZN',
+            'azerbajĝana manato',
+        ],
+        'BAM' => [
+            'BAM',
+            'konvertebla marko de Bosnujo kaj Hercegovino',
+        ],
+        'BBD' => [
+            'BBD',
+            'barbada dolaro',
+        ],
+        'BDT' => [
+            'BDT',
+            'bangladeŝa tako',
+        ],
+        'BGN' => [
+            'BGN',
+            'bulgara levo',
+        ],
+        'BHD' => [
+            'BHD',
+            'barejna dinaro',
+        ],
+        'BIF' => [
+            'BIF',
+            'burunda franko',
+        ],
+        'BMD' => [
+            'BMD',
+            'bermuda dolaro',
+        ],
+        'BND' => [
+            'BND',
+            'bruneja dolaro',
+        ],
+        'BOB' => [
+            'BOB',
+            'bolivia bolivjano',
+        ],
+        'BRL' => [
+            'BRL',
+            'brazila realo',
+        ],
+        'BSD' => [
+            'BSD',
+            'bahama dolaro',
+        ],
+        'BTN' => [
+            'BTN',
+            'butana ngultrumo',
+        ],
+        'BWP' => [
+            'BWP',
+            'bocvana pulao',
+        ],
+        'BYN' => [
+            'BYN',
+            'belorusa rublo',
+        ],
+        'BZD' => [
+            'BZD',
+            'beliza dolaro',
+        ],
+        'CAD' => [
+            'CAD',
+            'kanada dolaro',
+        ],
+        'CDF' => [
+            'CDF',
+            'konga franko',
+        ],
+        'CHF' => [
+            'CHF',
+            'svisa franko',
+        ],
+        'CLP' => [
+            'CLP',
+            'ĉilia peso',
+        ],
+        'CNH' => [
+            'CNH',
+            'ĉina juano (eksterlanda uzo)',
+        ],
+        'CNY' => [
+            'CNY',
+            'ĉinaj juanoj',
+        ],
+        'COP' => [
+            'COP',
+            'kolombia peso',
+        ],
+        'CRC' => [
+            'CRC',
+            'kostarika kolumbo',
+        ],
+        'CUC' => [
+            'CUC',
+            'konvertebla kuba peso',
+        ],
+        'CUP' => [
+            'CUP',
+            'kuba peso',
+        ],
+        'CVE' => [
+            'CVE',
+            'kaboverda eskudo',
+        ],
+        'CZK' => [
+            'CZK',
+            'ĉeĥa krono',
+        ],
+        'DJF' => [
+            'DJF',
+            'ĝibutia franko',
+        ],
+        'DKK' => [
+            'DKK',
+            'dana krono',
+        ],
+        'DOP' => [
+            'DOP',
+            'dominika peso',
+        ],
+        'DZD' => [
+            'DZD',
+            'alĝeria dinaro',
+        ],
+        'EGP' => [
+            'EGP',
+            'egipta pundo',
+        ],
+        'ERN' => [
+            'ERN',
+            'eritrea nakfo',
+        ],
+        'ETB' => [
+            'ETB',
+            'etiopa birro',
+        ],
+        'EUR' => [
+            '€',
+            'eŭro',
+        ],
+        'FJD' => [
+            'FJD',
+            'fiĝia dolaro',
+        ],
+        'FKP' => [
+            'FKP',
+            'falklanda pundo',
+        ],
+        'GBP' => [
+            'GBP',
+            'brita pundo',
+        ],
+        'GEL' => [
+            'GEL',
+            'kartvela lario',
+        ],
+        'GHS' => [
+            'GHS',
+            'ganaa cedio',
+        ],
+        'GIP' => [
+            'GIP',
+            'ĝibraltara pundo',
+        ],
+        'GMD' => [
+            'GMD',
+            'gambia dalasio',
+        ],
+        'GNF' => [
+            'GNF',
+            'gvinea franko',
+        ],
+        'GTQ' => [
+            'GTQ',
+            'gvatemala kecalo',
+        ],
+        'GYD' => [
+            'GYD',
+            'gujana dolaro',
+        ],
+        'HKD' => [
+            'HKD',
+            'honkonga dolaro',
+        ],
+        'HNL' => [
+            'HNL',
+            'hondura lempiro',
+        ],
+        'HRK' => [
+            'HRK',
+            'kroata kunao',
+        ],
+        'HTG' => [
+            'HTG',
+            'haitia gurdo',
+        ],
+        'HUF' => [
+            'HUF',
+            'hungara forinto',
+        ],
+        'IDR' => [
+            'IDR',
+            'indonezia rupio',
+        ],
+        'ILS' => [
+            'ILS',
+            'israela nova siklo',
+        ],
+        'INR' => [
+            'INR',
+            'hinda rupio',
+        ],
+        'IQD' => [
+            'IQD',
+            'iraka dinaro',
+        ],
+        'IRR' => [
+            'IRR',
+            'irana rialo',
+        ],
+        'ISK' => [
+            'ISK',
+            'islanda krono',
+        ],
+        'JMD' => [
+            'JMD',
+            'jamajka dolaro',
+        ],
+        'JOD' => [
+            'JOD',
+            'jordania dinaro',
+        ],
+        'JPY' => [
+            'JPY',
+            'japana eno',
+        ],
+        'KES' => [
+            'KES',
+            'kenja ŝilingo',
+        ],
+        'KGS' => [
+            'KGS',
+            'kirgiza somo',
+        ],
+        'KHR' => [
+            'KHR',
+            'kamboĝa rielo',
+        ],
+        'KMF' => [
+            'KMF',
+            'komora franko',
+        ],
+        'KPW' => [
+            'KPW',
+            'nordkorea vono',
+        ],
+        'KRW' => [
+            'KRW',
+            'sudkorea vono',
+        ],
+        'KWD' => [
+            'KWD',
+            'kuvajta dinaro',
+        ],
+        'KYD' => [
+            'KYD',
+            'kajmana dolaro',
+        ],
+        'KZT' => [
+            'KZT',
+            'kazaĥa tengo',
+        ],
+        'LAK' => [
+            'LAK',
+            'laosa kipo',
+        ],
+        'LBP' => [
+            'LBP',
+            'libana liro',
+        ],
+        'LKR' => [
+            'LKR',
+            'srilanka rupio',
+        ],
+        'LRD' => [
+            'LRD',
+            'liberia dolaro',
+        ],
+        'LSL' => [
+            'LSL',
+            'lesota lotio',
+        ],
+        'LYD' => [
+            'LYD',
+            'libia dinaro',
+        ],
+        'MAD' => [
+            'MAD',
+            'maroka dirhamo',
+        ],
+        'MDL' => [
+            'MDL',
+            'moldava leo',
+        ],
+        'MGA' => [
+            'MGA',
+            'madagaskara ariaro',
+        ],
+        'MKD' => [
+            'MKD',
+            'makedona denaro',
+        ],
+        'MMK' => [
+            'MMK',
+            'birma kjato',
+        ],
+        'MNT' => [
+            'MNT',
+            'mongola tugriko',
+        ],
+        'MOP' => [
+            'MOP',
+            'makaa patako',
+        ],
+        'MRU' => [
+            'MRU',
+            'maŭritania uguijao',
+        ],
+        'MUR' => [
+            'MUR',
+            'maŭricia rupio',
+        ],
+        'MVR' => [
+            'MVR',
+            'maldiva rufijao',
+        ],
+        'MWK' => [
+            'MWK',
+            'malavia kvaĉo',
+        ],
+        'MXN' => [
+            'MXN',
+            'meksika peso',
+        ],
+        'MYR' => [
+            'MYR',
+            'malajzia ringito',
+        ],
+        'MZN' => [
+            'MZN',
+            'mozambika metikalo',
+        ],
+        'NAD' => [
+            'NAD',
+            'namibia dolaro',
+        ],
+        'NGN' => [
+            'NGN',
+            'niĝeria najro',
+        ],
+        'NIO' => [
+            'NIO',
+            'nikaragva kordovo',
+        ],
+        'NOK' => [
+            'NOK',
+            'norvega krono',
+        ],
+        'NPR' => [
+            'NPR',
+            'nepala rupio',
+        ],
+        'NZD' => [
+            'NZD',
+            'novzelanda dolaro',
+        ],
+        'OMR' => [
+            'OMR',
+            'omana rialo',
+        ],
+        'PAB' => [
+            'PAB',
+            'panama balboo',
+        ],
+        'PEN' => [
+            'PEN',
+            'perua suno',
+        ],
+        'PGK' => [
+            'PGK',
+            'papuonovgvinea kinao',
+        ],
+        'PHP' => [
+            'PHP',
+            'filipina peso',
+        ],
+        'PKR' => [
+            'PKR',
+            'pakistana rupio',
+        ],
+        'PLN' => [
+            'PLN',
+            'pola zloto',
+        ],
+        'PYG' => [
+            'PYG',
+            'paragvaja gvaranio',
+        ],
+        'QAR' => [
+            'QAR',
+            'katara rialo',
+        ],
+        'RON' => [
+            'RON',
+            'rumana leo',
+        ],
+        'RSD' => [
+            'RSD',
+            'serba dinaro',
+        ],
+        'RUB' => [
+            'RUB',
+            'rusa rublo',
+        ],
+        'RWF' => [
+            'RWF',
+            'ruanda franko',
+        ],
+        'SAR' => [
+            'SAR',
+            'sauda rialo',
+        ],
+        'SBD' => [
+            'SBD',
+            'salomona dolaro',
+        ],
+        'SCR' => [
+            'SCR',
+            'sejŝela rupio',
+        ],
+        'SDG' => [
+            'SDG',
+            'sudana pundo',
+        ],
+        'SEK' => [
+            'SEK',
+            'sveda krono',
+        ],
+        'SGD' => [
+            'SGD',
+            'singapura dolaro',
+        ],
+        'SHP' => [
+            'SHP',
+            'sankthelena pundo',
+        ],
+        'SLE' => [
+            'SLE',
+            'sieraleona leono',
+        ],
+        'SLL' => [
+            'SLL',
+            'sieraleona leono (1964–2022)',
+        ],
+        'SOS' => [
+            'SOS',
+            'somala ŝilingo',
+        ],
+        'SRD' => [
+            'SRD',
+            'surinama dolaro',
+        ],
+        'SSP' => [
+            'SSP',
+            'sudsudana pundo',
+        ],
+        'STN' => [
+            'STN',
+            'santomea dobro',
+        ],
+        'SYP' => [
+            'SYP',
+            'siria pundo',
+        ],
+        'SZL' => [
+            'SZL',
+            'svazilanda liliagenio',
+        ],
+        'THB' => [
+            'THB',
+            'taja bahto',
+        ],
+        'TJS' => [
+            'TJS',
+            'taĝika somonio',
+        ],
+        'TMT' => [
+            'TMT',
+            'turkmena manato',
+        ],
+        'TND' => [
+            'TND',
+            'tunizia dinaro',
+        ],
+        'TOP' => [
+            'TOP',
+            'tonga paangao',
+        ],
+        'TRY' => [
+            'TRY',
+            'turka liro',
+        ],
+        'TTD' => [
+            'TTD',
+            'trinidada dolaro',
+        ],
+        'TWD' => [
+            'TWD',
+            'tajvana nova dolaro',
+        ],
+        'TZS' => [
+            'TZS',
+            'tanzania ŝilingo',
+        ],
+        'UAH' => [
+            'UAH',
+            'ukraina hrivno',
+        ],
+        'UGX' => [
+            'UGX',
+            'uganda ŝilingo',
+        ],
+        'USD' => [
+            'USD',
+            'usona dolaro',
+        ],
+        'UYU' => [
+            'UYU',
+            'urugvaja peso',
+        ],
+        'UZS' => [
+            'UZS',
+            'uzbeka somo',
+        ],
+        'VES' => [
+            'VES',
+            'venezuela bolivaro',
+        ],
+        'VND' => [
+            'VND',
+            'vjetnama dongo',
+        ],
+        'VUV' => [
+            'VUV',
+            'vanuatua vatuo',
+        ],
+        'WST' => [
+            'WST',
+            'samoa talao',
+        ],
+        'XAF' => [
+            'XAF',
+            'ekvatorafrika franko',
+        ],
+        'XCD' => [
+            'XCD',
+            'orientkariba dolaro',
+        ],
+        'XCG' => [
+            'XCG',
+            'kariba guldeno',
+        ],
+        'XOF' => [
+            'XOF',
+            'okcidentafrika franko',
+        ],
+        'XPF' => [
+            'XPF',
+            'pacifika franko',
+        ],
+        'YER' => [
+            'YER',
+            'jemena rialo',
+        ],
+        'ZAR' => [
+            'ZAR',
+            'sudafrika rando',
+        ],
+        'ZMW' => [
+            'ZMW',
+            'zambia kvaĉo',
+        ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabva oro',
+        ],
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/es.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/es.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/es.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/es.php	2026-05-20 10:56:49.000000000 +0200
@@ -1082,6 +1082,10 @@
             'ZWD',
             'dólar de Zimbabue',
         ],
+        'ZWG' => [
+            'ZWG',
+            'oro zimbabuense',
+        ],
         'ZWL' => [
             'ZWL',
             'dólar zimbabuense',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/es_US.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/es_US.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/es_US.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/es_US.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,5 +34,9 @@
             'ZMW',
             'kwacha zambiano',
         ],
+        'ZWG' => [
+            'ZWG',
+            'oro de Zimbabue',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/et.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/et.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/et.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/et.php	2026-05-20 10:56:49.000000000 +0200
@@ -998,6 +998,10 @@
             'EC$',
             'Ida-Kariibi dollar',
         ],
+        'XCG' => [
+            'Cg.',
+            'Kariibi kulden',
+        ],
         'XEU' => [
             'XEU',
             'eküü',
@@ -1062,6 +1066,10 @@
             'ZWD',
             'Zimbabwe dollar (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwe kuld',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabwe dollar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/eu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/eu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/eu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/eu.php	2026-05-20 10:56:49.000000000 +0200
@@ -1086,6 +1086,10 @@
             'EC$',
             'dolar ekikaribearra',
         ],
+        'XCG' => [
+            'Cg.',
+            'florin karibetarra',
+        ],
         'XEU' => [
             'XEU',
             'Europako dibisa-unitatea',
@@ -1162,6 +1166,10 @@
             'ZWD',
             'dolar zimbabwetarra (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'urre zimbabwetarra',
+        ],
         'ZWL' => [
             'ZWL',
             'dolar zimbabwetarra (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fa.php	2026-05-20 10:56:49.000000000 +0200
@@ -874,6 +874,10 @@
             '$EC',
             'دلار شرق کارائیب',
         ],
+        'XCG' => [
+            'Cg.',
+            'گیلدر کارائیب',
+        ],
         'XFO' => [
             'XFO',
             'فرانک طلای فرانسه',
@@ -910,6 +914,10 @@
             'ZWD',
             'دلار زیمبابوه (۱۹۸۰ تا ۲۰۰۸)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'طلای زیمبابوه',
+        ],
         'ZWL' => [
             'ZWL',
             'دلار زیمبابوه (۲۰۰۹)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fi.php	2026-05-20 10:56:49.000000000 +0200
@@ -1082,6 +1082,10 @@
             'XCD',
             'Itä-Karibian dollari',
         ],
+        'XCG' => [
+            'Cg.',
+            'Karibian guldeni',
+        ],
         'XEU' => [
             'XEU',
             'Euroopan valuuttayksikkö (ECU)',
@@ -1158,6 +1162,10 @@
             'ZWD',
             'Zimbabwen dollari (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwen kulta',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabwen dollari (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fo.php	2026-05-20 10:56:49.000000000 +0200
@@ -626,6 +626,10 @@
             'EC$',
             'Eystur Karibia dollari',
         ],
+        'XCG' => [
+            'Cg.',
+            'Karibia gyllin',
+        ],
         'XOF' => [
             'F CFA',
             'Vesturafrika CFA frankur',
@@ -646,5 +650,9 @@
             'ZMW',
             'Sambia kwacha',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Simbabvi gull',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/fr.php	2026-05-20 10:56:49.000000000 +0200
@@ -1082,6 +1082,10 @@
             'ZWD',
             'dollar zimbabwéen',
         ],
+        'ZWG' => [
+            'ZWG',
+            'or du Zimbabwe',
+        ],
         'ZWL' => [
             'ZWL',
             'dollar zimbabwéen (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ga.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ga.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ga.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ga.php	2026-05-20 10:56:49.000000000 +0200
@@ -1010,6 +1010,10 @@
             'EC$',
             'Dollar na Cairibe Thoir',
         ],
+        'XCG' => [
+            'Cg.',
+            'gildear Chairib',
+        ],
         'XEU' => [
             'XEU',
             'Aonad Airgeadra Eorpach',
@@ -1082,6 +1086,10 @@
             'ZWD',
             'Dollar Siombábach (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ór na Siombáibe',
+        ],
         'ZWL' => [
             'ZWL',
             'Dollar na Siombáibe (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gd.php	2026-05-20 10:56:49.000000000 +0200
@@ -1166,6 +1166,10 @@
             'ZWD',
             'Dolar Sìombabuthach (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Òr Sìombabuthach',
+        ],
         'ZWL' => [
             'ZWL',
             'Dolar Sìombabuthach (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gl.php	2026-05-20 10:56:49.000000000 +0200
@@ -802,6 +802,10 @@
             'XCD',
             'dólar do Caribe Oriental',
         ],
+        'XCG' => [
+            'ƒ',
+            'florín caribeño',
+        ],
         'XOF' => [
             'F CFA',
             'franco CFA (BCEAO)',
@@ -826,5 +830,9 @@
             'ZMW',
             'kwacha zambiano',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ouro de Zimbabwe',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/gu.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
         ],
         'BBD' => [
             'BBD',
-            'બાર્બાડિયન ડોલર',
+            'બાર્બાડિયન ડૉલર',
         ],
         'BDT' => [
             'BDT',
@@ -68,11 +68,11 @@
         ],
         'BMD' => [
             'BMD',
-            'બર્મુડન ડોલર',
+            'બર્મુડન ડૉલર',
         ],
         'BND' => [
             'BND',
-            'બ્રુનેઇ ડોલર',
+            'બ્રુનેઇ ડૉલર',
         ],
         'BOB' => [
             'BOB',
@@ -84,7 +84,7 @@
         ],
         'BSD' => [
             'BSD',
-            'બહામિયન ડોલર',
+            'બહામિયન ડૉલર',
         ],
         'BTN' => [
             'BTN',
@@ -104,7 +104,7 @@
         ],
         'BZD' => [
             'BZD',
-            'બેલિઝ ડોલર',
+            'બેલિઝ ડૉલર',
         ],
         'CAD' => [
             'CA$',
@@ -188,7 +188,7 @@
         ],
         'FJD' => [
             'FJD',
-            'ફિજિઅન ડોલર',
+            'ફિજિઅન ડૉલર',
         ],
         'FKP' => [
             'FKP',
@@ -224,7 +224,7 @@
         ],
         'GYD' => [
             'GYD',
-            'ગયાનિઝ ડોલર',
+            'ગયાનિઝ ડૉલર',
         ],
         'HKD' => [
             'HK$',
@@ -272,7 +272,7 @@
         ],
         'JMD' => [
             'JMD',
-            'જમૈકિયન ડોલર',
+            'જમૈકિયન ડૉલર',
         ],
         'JOD' => [
             'JOD',
@@ -332,7 +332,7 @@
         ],
         'LRD' => [
             'LRD',
-            'લિબેરિયન ડોલર',
+            'લિબેરિયન ડૉલર',
         ],
         'LSL' => [
             'LSL',
@@ -492,7 +492,7 @@
         ],
         'SBD' => [
             'SBD',
-            'સોલોમન આઇલેંડ્સ ડોલર',
+            'સોલોમન આઇલૅન્ડ્સ ડૉલર',
         ],
         'SCR' => [
             'SCR',
@@ -528,7 +528,7 @@
         ],
         'SRD' => [
             'SRD',
-            'સૂરીનામિઝ ડોલર',
+            'સૂરીનામિઝ ડૉલર',
         ],
         'SSP' => [
             'SSP',
@@ -576,7 +576,7 @@
         ],
         'TTD' => [
             'TTD',
-            'ત્રિનિદાદ અને ટોબેગો ડોલર',
+            'ત્રિનિદાદ અને ટોબેગો ડૉલર',
         ],
         'TWD' => [
             'NT$',
@@ -596,7 +596,7 @@
         ],
         'USD' => [
             'US$',
-            'યુઍસ ડોલર',
+            'યુઍસ ડૉલર',
         ],
         'UYU' => [
             'UYU',
@@ -632,7 +632,11 @@
         ],
         'XCD' => [
             'EC$',
-            'ઇસ્ટ કેરિબિયન ડોલર',
+            'ઇસ્ટ કેરિબિયન ડૉલર',
+        ],
+        'XCG' => [
+            'Cg.',
+            'કૅરિબિયન ગિલ્ડર',
         ],
         'XOF' => [
             'F CFA',
@@ -658,5 +662,9 @@
             'ZMW',
             'ઝામ્બિયન ક્વાચા',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ઝીંબાબિયન ગોલ્ડ',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ha.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ha.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ha.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ha.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,7 +4,7 @@
     'Names' => [
         'AED' => [
             'AED',
-            'Kuɗin Haɗaɗɗiyar Daular Larabawa',
+            'Dirham na Haɗaɗɗiyar Daular Larabawa',
         ],
         'AFN' => [
             'AFN',
@@ -12,11 +12,11 @@
         ],
         'ALL' => [
             'ALL',
-            'Kuɗin Albania',
+            'Lek na Albania',
         ],
         'AMD' => [
             'AMD',
-            'Kuɗin Armenia',
+            'Dram na Armeniya',
         ],
         'ANG' => [
             'ANG',
@@ -24,7 +24,7 @@
         ],
         'AOA' => [
             'AOA',
-            'Kuɗin Angola',
+            'Kwanza na Angola',
         ],
         'ARS' => [
             'ARS',
@@ -40,7 +40,7 @@
         ],
         'AZN' => [
             'AZN',
-            'Kuɗin Azerbaijani',
+            'Manat na Azebaijan',
         ],
         'BAM' => [
             'BAM',
@@ -56,15 +56,15 @@
         ],
         'BGN' => [
             'BGN',
-            'Kuɗin Bulgeria',
+            'Lev na Bulgeria',
         ],
         'BHD' => [
             'BHD',
-            'Kuɗin Baharan',
+            'Zinaren Bahrain',
         ],
         'BIF' => [
             'BIF',
-            'Kuɗin Burundi',
+            'Franc na Burundi',
         ],
         'BMD' => [
             'BMD',
@@ -92,11 +92,11 @@
         ],
         'BWP' => [
             'BWP',
-            'Kuɗin Baswana',
+            'Pula na Batsuwana',
         ],
         'BYN' => [
             'BYN',
-            'Kuɗin Belarus',
+            'Ruble na Belarus',
         ],
         'BZD' => [
             'BZD',
@@ -108,11 +108,11 @@
         ],
         'CDF' => [
             'CDF',
-            'Kuɗin Kongo',
+            'Franc na Kongo',
         ],
         'CHF' => [
             'CHF',
-            'Kuɗin Suwizalan',
+            'Franc na Suwizilan',
         ],
         'CLP' => [
             'CLP',
@@ -144,15 +144,15 @@
         ],
         'CVE' => [
             'CVE',
-            'Kuɗin Tsibiran Kap Barde',
+            'Escudo na Cape Verde',
         ],
         'CZK' => [
             'CZK',
-            'Kuɗin Czech',
+            'Koruna na Czech',
         ],
         'DJF' => [
             'DJF',
-            'Kuɗin Jibuti',
+            'Franc na Djibouti',
         ],
         'DKK' => [
             'DKK',
@@ -164,11 +164,11 @@
         ],
         'DZD' => [
             'DZD',
-            'Kuɗin Aljeriya',
+            'Dinarin Aljeriya',
         ],
         'EGP' => [
             'EGP',
-            'Fam kin Masar',
+            'Fam na Masar',
         ],
         'ERN' => [
             'ERN',
@@ -176,7 +176,7 @@
         ],
         'ETB' => [
             'ETB',
-            'Kuɗin Habasha',
+            'Birr na Habasha',
         ],
         'EUR' => [
             '€',
@@ -196,7 +196,7 @@
         ],
         'GEL' => [
             'GEL',
-            'Kuɗin Georgia',
+            'Lari na Georgia',
         ],
         'GHC' => [
             'GHC',
@@ -208,15 +208,15 @@
         ],
         'GIP' => [
             'GIP',
-            'Kuɗin Gibraltal',
+            'Fam na Gibraltar',
         ],
         'GMD' => [
             'GMD',
-            'Kuɗin Gambiya',
+            'Dalasi na Gambiya',
         ],
         'GNF' => [
             'GNF',
-            'Kuɗin Guinea',
+            'Franc na Guinea',
         ],
         'GNS' => [
             'GNS',
@@ -240,7 +240,7 @@
         ],
         'HRK' => [
             'HRK',
-            'Kuɗin Croatia',
+            'Kuna na Croatia',
         ],
         'HTG' => [
             'HTG',
@@ -248,7 +248,7 @@
         ],
         'HUF' => [
             'HUF',
-            'Kuɗin Hungary',
+            'Forint na Hungary',
         ],
         'IDR' => [
             'IDR',
@@ -256,11 +256,11 @@
         ],
         'ILS' => [
             '₪',
-            'Sabbin Kuɗin Israʼila',
+            'Sabon shekel na Israʼila',
         ],
         'INR' => [
             '₹',
-            'Kuɗin Indiya',
+            'Rupee na ƙasar Indiya',
         ],
         'IQD' => [
             'IQD',
@@ -300,7 +300,7 @@
         ],
         'KMF' => [
             'KMF',
-            'Kuɗin Kwamoras',
+            'Franc na Kwamoras',
         ],
         'KPW' => [
             'KPW',
@@ -324,11 +324,11 @@
         ],
         'LAK' => [
             'LAK',
-            'Kuɗin Laos',
+            'Kip na ƙasar Laos',
         ],
         'LBP' => [
             'LBP',
-            'Kuɗin Lebanon',
+            'Fam na Lebanon',
         ],
         'LKR' => [
             'LKR',
@@ -340,23 +340,23 @@
         ],
         'LSL' => [
             'LSL',
-            'Kuɗin Lesoto',
+            'Loti na Lesoto',
         ],
         'LYD' => [
             'LYD',
-            'Kuɗin Libiya',
+            'Dinarin Libya',
         ],
         'MAD' => [
             'MAD',
-            'Kuɗin Maroko',
+            'Dirhamin Moroko',
         ],
         'MDL' => [
             'MDL',
-            'Kuɗaɗen Moldova',
+            'Leu na Moldova',
         ],
         'MGA' => [
             'MGA',
-            'Kuɗin Madagaskar',
+            'Ariary na Malagasy',
         ],
         'MKD' => [
             'MKD',
@@ -364,7 +364,7 @@
         ],
         'MMK' => [
             'MMK',
-            'Kuɗin Myanmar',
+            'Kyat na ƙasar Myanmar',
         ],
         'MNT' => [
             'MNT',
@@ -380,19 +380,19 @@
         ],
         'MRU' => [
             'MRU',
-            'Kuɗin Moritaniya',
+            'Ouguiya na Moritaniya',
         ],
         'MUR' => [
             'MUR',
-            'Kuɗin Moritus',
+            'Rupee na Moritus',
         ],
         'MVR' => [
             'MVR',
-            'Rufiyaa na ɓasar Maldives',
+            'Rufiyaa na ƙasar Maldives',
         ],
         'MWK' => [
             'MWK',
-            'Kuɗin Malawi',
+            'Kwacha na Malawi',
         ],
         'MXN' => [
             'MX$',
@@ -400,7 +400,7 @@
         ],
         'MYR' => [
             'MYR',
-            'Kuɗin Malaysia',
+            'Ringgit na ƙasar Malaysia',
         ],
         'MZM' => [
             'MZM',
@@ -448,11 +448,11 @@
         ],
         'PGK' => [
             'PGK',
-            'Kina na ƙasar Papua Sabon Guinea',
+            'Kina na ƙasar Papua New Guinea',
         ],
         'PHP' => [
             '₱',
-            'Kuɗin Philippine',
+            'Peso na ƙasar Philippine',
         ],
         'PKR' => [
             'PKR',
@@ -460,7 +460,7 @@
         ],
         'PLN' => [
             'PLN',
-            'Kuɗin Polan',
+            'Zloty na Polan',
         ],
         'PYG' => [
             'PYG',
@@ -472,7 +472,7 @@
         ],
         'RON' => [
             'RON',
-            'Kuɗin Romania',
+            'Leu na Romania',
         ],
         'RSD' => [
             'RSD',
@@ -484,19 +484,19 @@
         ],
         'RWF' => [
             'RWF',
-            'Kuɗin Ruwanda',
+            'Franc na Ruwanda',
         ],
         'SAR' => [
             'SAR',
-            'Riyal',
+            'Riyal ɗin Saudiyya',
         ],
         'SBD' => [
             'SBD',
-            'Dalar Tsibirai na Solomon',
+            'Dalar Tsibiran Solomon',
         ],
         'SCR' => [
             'SCR',
-            'Kuɗin Saishal',
+            'Rupee na Seychellois',
         ],
         'SDG' => [
             'SDG',
@@ -512,15 +512,15 @@
         ],
         'SHP' => [
             'SHP',
-            'Fam kin San Helena',
+            'Fam na San Helena',
         ],
         'SLE' => [
             'SLE',
-            'Kuɗin Salewo',
+            'Leone na Saliyo',
         ],
         'SLL' => [
             'SLL',
-            'Kuɗin Salewo (1964—2022)',
+            'Leone na Saliyo (1964—2022)',
         ],
         'SOS' => [
             'SOS',
@@ -540,15 +540,15 @@
         ],
         'STN' => [
             'STN',
-            'Kuɗin Sawo Tome da Paransip',
+            'Dobra na Sawo Tome',
         ],
         'SYP' => [
             'SYP',
-            'Kuɗin Siriya',
+            'Fam ɗin Siriya',
         ],
         'SZL' => [
             'SZL',
-            'Kuɗin Lilangeni',
+            'Emalangeni na Swazi',
         ],
         'THB' => [
             'THB',
@@ -564,7 +564,7 @@
         ],
         'TND' => [
             'TND',
-            'Kuɗin Tunisiya',
+            'Dinarin Tunusiya',
         ],
         'TOP' => [
             'TOP',
@@ -572,7 +572,7 @@
         ],
         'TRY' => [
             'TRY',
-            'Kuɗin Turkiyya',
+            'Lira na Turkiyya',
         ],
         'TTD' => [
             'TTD',
@@ -588,11 +588,11 @@
         ],
         'UAH' => [
             'UAH',
-            'Kudin Ukrainian',
+            'Hryvnia na Ukrain',
         ],
         'UGX' => [
             'UGX',
-            'Sule Yuganda',
+            'Sulen Yuganda',
         ],
         'USD' => [
             '$',
@@ -612,7 +612,7 @@
         ],
         'VND' => [
             '₫',
-            'Kuɗin Vietnam',
+            'Dong na ƙasar Vietnam',
         ],
         'VUV' => [
             'VUV',
@@ -630,6 +630,10 @@
             'EC$',
             'Dalar Gabashin Karebiyan',
         ],
+        'XCG' => [
+            'Cg.',
+            'Guilder na Caribbean',
+        ],
         'XOF' => [
             'F CFA',
             'Kuɗin Sefa na Afirka Ta Yamma',
@@ -644,7 +648,7 @@
         ],
         'ZAR' => [
             'ZAR',
-            'Kuɗin Afirka Ta Kudu',
+            'Rand na Afirka ta Kudu',
         ],
         'ZMK' => [
             'ZMK',
@@ -652,11 +656,15 @@
         ],
         'ZMW' => [
             'ZMW',
-            'Kuɗin Zambiya',
+            'Kwacha na Zambiya',
         ],
         'ZWD' => [
             'ZWD',
             'Dalar zimbabuwe',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zinaren Zimbabwe',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/he.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/he.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/he.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/he.php	2026-05-20 10:56:49.000000000 +0200
@@ -850,6 +850,10 @@
             'EC$',
             'דולר מזרח קריבי',
         ],
+        'XCG' => [
+            'Cg.',
+            'גילדר של הקריביים',
+        ],
         'XFO' => [
             'XFO',
             'פרנק זהב',
@@ -894,5 +898,9 @@
             'ZWD',
             'דולר זימבבואי',
         ],
+        'ZWG' => [
+            'ZWG',
+            'זהב של זימבבואה',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hi.php	2026-05-20 10:56:49.000000000 +0200
@@ -730,6 +730,10 @@
             'EC$',
             'पूर्वी कैरिबियाई डॉलर',
         ],
+        'XCG' => [
+            'Cg.',
+            'कैरीबियन गिल्डर',
+        ],
         'XEU' => [
             'XEU',
             'यूरोपीय मुद्रा इकाई',
@@ -758,5 +762,9 @@
             'ZMW',
             'ज़ाम्बियन क्वाचा',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ज़िंबाब्वियन गोल्ड',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hr.php	2026-05-20 10:56:49.000000000 +0200
@@ -1070,6 +1070,10 @@
             'XCD',
             'istočnokaripski dolar',
         ],
+        'XCG' => [
+            'Cg.',
+            'karipski gulden',
+        ],
         'XEU' => [
             'XEU',
             'europska monetarna jedinica (ECU)',
@@ -1146,6 +1150,10 @@
             'ZWD',
             'zimbabveanski dolar (1980.–2008.)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabveansko zlato',
+        ],
         'ZWL' => [
             'ZWL',
             'zimbabveanski dolar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hu.php	2026-05-20 10:56:49.000000000 +0200
@@ -1030,6 +1030,10 @@
             'XCD',
             'kelet-karibi dollár',
         ],
+        'XCG' => [
+            'Cg.',
+            'karibi forint',
+        ],
         'XEU' => [
             'XEU',
             'európai pénznemegység',
@@ -1106,6 +1110,10 @@
             'ZWD',
             'Zimbabwei dollár (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabwei arany',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabwei dollár (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/hy.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'արևելակարիբյան դոլար',
         ],
+        'XCG' => [
+            'Cg.',
+            'կարիբյան գուլդեն',
+        ],
         'XOF' => [
             'F CFA',
             'Արևմտյան Աֆրիկայի ԿՖԱ ֆրանկ',
@@ -658,5 +662,9 @@
             'ZMW',
             'զամբիական կվաչա',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Զիմբաբվեի ոսկի',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ia.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ia.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ia.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ia.php	2026-05-20 10:56:49.000000000 +0200
@@ -642,6 +642,10 @@
             'EC$',
             'dollar del Caribes Oriental',
         ],
+        'XCG' => [
+            'Cg.',
+            'florino caribe',
+        ],
         'XOF' => [
             'F CFA',
             'franco CFA de Africa Occidental',
@@ -662,5 +666,9 @@
             'ZMW',
             'kwacha zambian',
         ],
+        'ZWG' => [
+            'ZWG',
+            'auro de Zimbwabwe',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/id.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/id.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/id.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/id.php	2026-05-20 10:56:49.000000000 +0200
@@ -1070,6 +1070,10 @@
             'EC$',
             'Dolar Karibia Timur',
         ],
+        'XCG' => [
+            'Cg.',
+            'Guilder Karibia',
+        ],
         'XEU' => [
             'XEU',
             'Satuan Mata Uang Eropa',
@@ -1146,6 +1150,10 @@
             'ZWD',
             'Dolar Zimbabwe (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Emas Zimbabwe',
+        ],
         'ZWL' => [
             'ZWL',
             'Dolar Zimbabwe (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ig.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ig.php	2026-05-20 10:56:49.000000000 +0200
@@ -610,6 +610,10 @@
             'EC$',
             'Ego Dollar obodo East Carribbean',
         ],
+        'XCG' => [
+            'Cg.',
+            'Ego Guilder Caribbean',
+        ],
         'XOF' => [
             'F CFA',
             'Ego CFA Franc obodo West Africa',
@@ -630,5 +634,9 @@
             'ZMW',
             'Ego Kwacha Obodo Zambia',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Ego Ọlaọcha Zimbabwe',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/in.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/in.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/in.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/in.php	2026-05-20 10:56:49.000000000 +0200
@@ -1070,6 +1070,10 @@
             'EC$',
             'Dolar Karibia Timur',
         ],
+        'XCG' => [
+            'Cg.',
+            'Guilder Karibia',
+        ],
         'XEU' => [
             'XEU',
             'Satuan Mata Uang Eropa',
@@ -1146,6 +1150,10 @@
             'ZWD',
             'Dolar Zimbabwe (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Emas Zimbabwe',
+        ],
         'ZWL' => [
             'ZWL',
             'Dolar Zimbabwe (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/is.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/is.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/is.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/is.php	2026-05-20 10:56:49.000000000 +0200
@@ -858,6 +858,10 @@
             'EC$',
             'austurkarabískur dalur',
         ],
+        'XCG' => [
+            'XCG',
+            'Karíbahafsgyllini',
+        ],
         'XFO' => [
             'XFO',
             'Franskur gullfranki',
@@ -906,5 +910,9 @@
             'ZWD',
             'Simbabveskur dalur',
         ],
+        'ZWG' => [
+            'ZWG',
+            'simbabveskt gold',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/it.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/it.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/it.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/it.php	2026-05-20 10:56:49.000000000 +0200
@@ -986,6 +986,10 @@
             'EC$',
             'dollaro dei Caraibi orientali',
         ],
+        'XCG' => [
+            'Cf',
+            'fiorino caraibico',
+        ],
         'XFO' => [
             'XFO',
             'franco oro francese',
@@ -1054,6 +1058,10 @@
             'ZWD',
             'dollaro dello Zimbabwe',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwe Gold',
+        ],
         'ZWL' => [
             'ZWL',
             'dollaro zimbabwiano (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/iw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/iw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/iw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/iw.php	2026-05-20 10:56:49.000000000 +0200
@@ -850,6 +850,10 @@
             'EC$',
             'דולר מזרח קריבי',
         ],
+        'XCG' => [
+            'Cg.',
+            'גילדר של הקריביים',
+        ],
         'XFO' => [
             'XFO',
             'פרנק זהב',
@@ -894,5 +898,9 @@
             'ZWD',
             'דולר זימבבואי',
         ],
+        'ZWG' => [
+            'ZWG',
+            'זהב של זימבבואה',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ja.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ja.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ja.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ja.php	2026-05-20 10:56:49.000000000 +0200
@@ -1078,6 +1078,10 @@
             'EC$',
             '東カリブ ドル',
         ],
+        'XCG' => [
+            'Cg',
+            'カリブ ギルダー',
+        ],
         'XEU' => [
             'XEU',
             'ヨーロッパ通貨単位',
@@ -1154,6 +1158,10 @@
             'ZWD',
             'ジンバブエ ドル (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ジンバブエ ゴールド',
+        ],
         'ZWL' => [
             'ZWL',
             'ジンバブエ ドル (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/jv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/jv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/jv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/jv.php	2026-05-20 10:56:49.000000000 +0200
@@ -618,6 +618,10 @@
             'EC$',
             'Dolar Karibia Wetan',
         ],
+        'XCG' => [
+            'Cg.',
+            'Guilder Karibia',
+        ],
         'XOF' => [
             'F CFA',
             'CFA Franc Afrika Kulon',
@@ -638,5 +642,9 @@
             'ZMW',
             'Kwacha Sambia',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Emas Zimbabwe',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ka.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ka.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ka.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ka.php	2026-05-20 10:56:49.000000000 +0200
@@ -918,6 +918,10 @@
             'EC$',
             'აღმოსავლეთ კარიბიული დოლარი',
         ],
+        'XCG' => [
+            'Cg.',
+            'კარიბის გულდენი',
+        ],
         'XEU' => [
             'XEU',
             'ევროპული სავალუტო ერთეული',
@@ -978,5 +982,9 @@
             'ZWD',
             'ზიმბაბვეს დოლარი',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ზიმბაბვეს გოლდი',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kk_Arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kk_Arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kk_Arab.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kk_Arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,642 @@
+<?php
+
+return [
+    'Names' => [
+        'AED' => [
+            'AED',
+            'بىرىككەن اراب امىرلىكتەرىنىڭ ديرحامى',
+        ],
+        'AFN' => [
+            'AFN',
+            'اۋعانستان افگانيى',
+        ],
+        'ALL' => [
+            'ALL',
+            'البانيا لەگى',
+        ],
+        'AMD' => [
+            'AMD',
+            'ارمەنيا درامى',
+        ],
+        'ANG' => [
+            'ANG',
+            'نيدەرلاند انتيل گۋلدەنى',
+        ],
+        'AOA' => [
+            'AOA',
+            'انگولا كۆانزاسى',
+        ],
+        'ARS' => [
+            'ARS',
+            'ارگەنتينا پەسوسى',
+        ],
+        'AUD' => [
+            'A$',
+            'اۋستراليا دوللارى',
+        ],
+        'AWG' => [
+            'AWG',
+            'ارۋبا فلورينى',
+        ],
+        'AZN' => [
+            'AZN',
+            'ءازىربايجان ماناتى',
+        ],
+        'BAM' => [
+            'BAM',
+            'بوسنيا جانە گەرتسەگوۆينا ايىرباستالمالى ماركاسى',
+        ],
+        'BBD' => [
+            'BBD',
+            'باربادوس دوللارى',
+        ],
+        'BDT' => [
+            'BDT',
+            'بانگلادەش تاكاسى',
+        ],
+        'BGN' => [
+            'BGN',
+            'ڭولگاريا لەۆى',
+        ],
+        'BHD' => [
+            'BHD',
+            'باحرەين دينارى',
+        ],
+        'BIF' => [
+            'BIF',
+            'بۋرۋندي فرانكى',
+        ],
+        'BMD' => [
+            'BMD',
+            'بەرمۋد دوللارى',
+        ],
+        'BND' => [
+            'BND',
+            'برۋنەي دوللارى',
+        ],
+        'BOB' => [
+            'BOB',
+            'بوليۆيا بوليۆيانوسى',
+        ],
+        'BRL' => [
+            'R$',
+            'برازيليا رەالى',
+        ],
+        'BSD' => [
+            'BSD',
+            'باگام دوللارى',
+        ],
+        'BTN' => [
+            'BTN',
+            'بۋتان نگۋلترۋمى',
+        ],
+        'BWP' => [
+            'BWP',
+            'بوتسۆانا پۋلاسى',
+        ],
+        'BYN' => [
+            'BYN',
+            'بەلارۋس رۋبىلى',
+        ],
+        'BZD' => [
+            'BZD',
+            'بەليز دوللارى',
+        ],
+        'CAD' => [
+            'CA$',
+            'كانادا دوللارى',
+        ],
+        'CDF' => [
+            'CDF',
+            'كونگو فرانكى',
+        ],
+        'CHF' => [
+            'CHF',
+            'شۆەيساريا فرانكى',
+        ],
+        'CLP' => [
+            'CLP',
+            'چيلي پەسوسى',
+        ],
+        'CNH' => [
+            'CNH',
+            'قىتاي يۋانى (وفشور)',
+        ],
+        'CNY' => [
+            'CN¥',
+            'قىتاي يۋانى',
+        ],
+        'COP' => [
+            'COP',
+            'كولۋمبيا پەسوسى',
+        ],
+        'CRC' => [
+            'CRC',
+            'كوستا-ريكا كولونى',
+        ],
+        'CUC' => [
+            'CUC',
+            'كۋبا ايىرباستالمالى پەسوسى',
+        ],
+        'CUP' => [
+            'CUP',
+            'كۋبا پەسوسى',
+        ],
+        'CVE' => [
+            'CVE',
+            'كابو-ۆەردە ەسكۋدوسى',
+        ],
+        'CZK' => [
+            'CZK',
+            'چەح كرونى',
+        ],
+        'DJF' => [
+            'DJF',
+            'جيبۋتي فرانكى',
+        ],
+        'DKK' => [
+            'DKK',
+            'دار كرونى',
+        ],
+        'DOP' => [
+            'DOP',
+            'دومينيكان پەسوسى',
+        ],
+        'DZD' => [
+            'DZD',
+            'الجير دينارى',
+        ],
+        'EGP' => [
+            'EGP',
+            'مىسىر فۋنتى',
+        ],
+        'ERN' => [
+            'ERN',
+            'ەريترەيا ناكفاس',
+        ],
+        'ETB' => [
+            'ETB',
+            'ەفيوپيا بىرى',
+        ],
+        'EUR' => [
+            '€',
+            'ەۋرو',
+        ],
+        'FJD' => [
+            'FJD',
+            'فيجي دوللارى',
+        ],
+        'FKP' => [
+            'FKP',
+            'فولكلەند ارالدارىنىڭ فۋنتى',
+        ],
+        'GBP' => [
+            '£',
+            'بريتاندىق فۋنت',
+        ],
+        'GEL' => [
+            'GEL',
+            'گرۋزيا لاريى',
+        ],
+        'GHS' => [
+            'GHS',
+            'گانا سەديى',
+        ],
+        'GIP' => [
+            'GIP',
+            'گيبراتال فۋنتى',
+        ],
+        'GMD' => [
+            'GMD',
+            'گامبيا دالاسيى',
+        ],
+        'GNF' => [
+            'GNF',
+            'گۆينەيا فرانكى',
+        ],
+        'GTQ' => [
+            'GTQ',
+            'گۆاتەمالا كەتسالى',
+        ],
+        'GYD' => [
+            'GYD',
+            'گايانا دوللارى',
+        ],
+        'HKD' => [
+            'HK$',
+            'حوڭكوڭ دوللارى',
+        ],
+        'HNL' => [
+            'HNL',
+            'گوندۋراس ليمپيراسى',
+        ],
+        'HRK' => [
+            'HRK',
+            'حورۆاتيا كۋناسى',
+        ],
+        'HTG' => [
+            'HTG',
+            'گايتي گۋردى',
+        ],
+        'HUF' => [
+            'HUF',
+            'ماجار فورينتى',
+        ],
+        'IDR' => [
+            'IDR',
+            'يندونەزيا رۋپياسى',
+        ],
+        'ILS' => [
+            '₪',
+            'يزرايل جاڭا شەكەلى',
+        ],
+        'INR' => [
+            '₹',
+            'ءۇندىستان رۋپياسى',
+        ],
+        'IQD' => [
+            'IQD',
+            'يراك دينارى',
+        ],
+        'IRR' => [
+            'IRR',
+            'يران ريالى',
+        ],
+        'ISK' => [
+            'ISK',
+            'يسلانديا كروناسى',
+        ],
+        'JMD' => [
+            'JMD',
+            'يامايكا دوللارى',
+        ],
+        'JOD' => [
+            'JOD',
+            'يوردانيا دينارى',
+        ],
+        'JPY' => [
+            'JP¥',
+            'جاپون يەناسى',
+        ],
+        'KES' => [
+            'KES',
+            'كەنيا شيللينگى',
+        ],
+        'KGS' => [
+            'KGS',
+            'قىرعىس سومى',
+        ],
+        'KHR' => [
+            'KHR',
+            'كامبودجا ريەلى',
+        ],
+        'KMF' => [
+            'KMF',
+            'كومور ارالدارى فرانكى',
+        ],
+        'KPW' => [
+            'KPW',
+            'سولتۇستىك كورەيا ۆونى',
+        ],
+        'KRW' => [
+            '₩',
+            'وڭتۇستىك كورەيا ۆونى',
+        ],
+        'KWD' => [
+            'KWD',
+            'كۋۆەيت دينارى',
+        ],
+        'KYD' => [
+            'KYD',
+            'كايمان ارالدارى دوللارى',
+        ],
+        'KZT' => [
+            '₸',
+            'قازاق تەڭگەسى',
+        ],
+        'LAK' => [
+            'LAK',
+            'لاوس كيپى',
+        ],
+        'LBP' => [
+            'LBP',
+            'ليۆان فۋنتى',
+        ],
+        'LKR' => [
+            'LKR',
+            'شري-لانكا رۋپياسى',
+        ],
+        'LRD' => [
+            'LRD',
+            'ليبەريا دوللارى',
+        ],
+        'LSL' => [
+            'LSL',
+            'لەسوتو ءلوتيى',
+        ],
+        'LYD' => [
+            'LYD',
+            'ليۆيا دينارى',
+        ],
+        'MAD' => [
+            'MAD',
+            'ماروككو دينارى',
+        ],
+        'MDL' => [
+            'MDL',
+            'مولدوۆا لەيى',
+        ],
+        'MGA' => [
+            'MGA',
+            'مالاگاسي ءارياريى',
+        ],
+        'MKD' => [
+            'MKD',
+            'ماكەدونيا دينارى',
+        ],
+        'MMK' => [
+            'MMK',
+            'ميانما كياتى',
+        ],
+        'MNT' => [
+            'MNT',
+            'موڭعوليا تۋگريكى',
+        ],
+        'MOP' => [
+            'MOP',
+            'ماكاو پاتاكاسى',
+        ],
+        'MRU' => [
+            'MRU',
+            'ماۆريتانيا ۋگياسى',
+        ],
+        'MUR' => [
+            'MUR',
+            'ماۆريكيي رۋپياسى',
+        ],
+        'MVR' => [
+            'MVR',
+            'مالديۆ رۋفياسى',
+        ],
+        'MWK' => [
+            'MWK',
+            'مالاۆي كۆاچاسى',
+        ],
+        'MXN' => [
+            'MX$',
+            'مەكسيكا پەسوسى',
+        ],
+        'MYR' => [
+            'MYR',
+            'مالايزيا رينگگيتى',
+        ],
+        'MZN' => [
+            'MZN',
+            'موزامبيك مەتيكالى',
+        ],
+        'NAD' => [
+            'NAD',
+            'ناميبيا دوللارى',
+        ],
+        'NGN' => [
+            'NGN',
+            'نيگەريا نايراسى',
+        ],
+        'NIO' => [
+            'NIO',
+            'نيكاراگۋا كوردوباسى',
+        ],
+        'NOK' => [
+            'NOK',
+            'نورۆەگيا كرونى',
+        ],
+        'NPR' => [
+            'NPR',
+            'نەپال رۋپياسى',
+        ],
+        'NZD' => [
+            'NZ$',
+            'جاڭا زەلانديا دوللارى',
+        ],
+        'OMR' => [
+            'OMR',
+            'ومان ريالى',
+        ],
+        'PAB' => [
+            'PAB',
+            'پاناما بالبواسى',
+        ],
+        'PEN' => [
+            'PEN',
+            'پەرۋ سولى',
+        ],
+        'PGK' => [
+            'PGK',
+            'پاپۋا - جاڭا گۆينەيا كيناسى',
+        ],
+        'PHP' => [
+            '₱',
+            'فيليپپين پەسوسى',
+        ],
+        'PKR' => [
+            'PKR',
+            'پاكىستان رۋپياسى',
+        ],
+        'PLN' => [
+            'PLN',
+            'پولشا زلوتىسى',
+        ],
+        'PYG' => [
+            'PYG',
+            'پاراگۆاي گۋارانيى',
+        ],
+        'QAR' => [
+            'QAR',
+            'كاتار ريالى',
+        ],
+        'RON' => [
+            'RON',
+            'رۋمىنيا لەيى',
+        ],
+        'RSD' => [
+            'RSD',
+            'سەربيا دينارى',
+        ],
+        'RUB' => [
+            'RUB',
+            'رەسەي رۋبىلى',
+        ],
+        'RWF' => [
+            'RWF',
+            'رۋاندا فرانكى',
+        ],
+        'SAR' => [
+            'SAR',
+            'ساۋد ارابياسىنىڭ ريالى',
+        ],
+        'SBD' => [
+            'SBD',
+            'سولومون ارالدارى دوللارى',
+        ],
+        'SCR' => [
+            'SCR',
+            'سەيشەل رۋپياسى',
+        ],
+        'SDG' => [
+            'SDG',
+            'سۋدان فۋنتى',
+        ],
+        'SEK' => [
+            'SEK',
+            'شۆەسيا كرونى',
+        ],
+        'SGD' => [
+            'SGD',
+            'سينگاپۋر دوللارى',
+        ],
+        'SHP' => [
+            'SHP',
+            'اۋليە ەلەنا ارالى فۋنتى',
+        ],
+        'SLE' => [
+            'SLE',
+            'سەررا-لەونە لەونەسى',
+        ],
+        'SLL' => [
+            'SLL',
+            'سەررا-لەونە لەونەسى (1964—2022)',
+        ],
+        'SOS' => [
+            'SOS',
+            'سومالي شيللينگى',
+        ],
+        'SRD' => [
+            'SRD',
+            'سۋرينام دوللارى',
+        ],
+        'SSP' => [
+            'SSP',
+            'وڭتۇستىك سۋدان فۋنتى',
+        ],
+        'STN' => [
+            'STN',
+            'سانت-تومە مەن پرينسيپي دوبراسى',
+        ],
+        'SYP' => [
+            'SYP',
+            'سيريا فۋنتى',
+        ],
+        'SZL' => [
+            'SZL',
+            'سۆازيلەند ليلانگەنيى',
+        ],
+        'THB' => [
+            'THB',
+            'تاي باتى',
+        ],
+        'TJS' => [
+            'TJS',
+            'تاجىك سومونيى',
+        ],
+        'TMT' => [
+            'TMT',
+            'تۇىكمەن ماناتى',
+        ],
+        'TND' => [
+            'TND',
+            'تۋنيس دينارى',
+        ],
+        'TOP' => [
+            'TOP',
+            'تونگا پاانگاسى',
+        ],
+        'TRY' => [
+            'TRY',
+            'تۇرىك ليراسى',
+        ],
+        'TTD' => [
+            'TTD',
+            'ترينيداد جانە توباگو دوللارى',
+        ],
+        'TWD' => [
+            'NT$',
+            'جاڭا تايبەي دوللارى',
+        ],
+        'TZS' => [
+            'TZS',
+            'تانزانيا شيللينگى',
+        ],
+        'UAH' => [
+            'UAH',
+            'ۋكراينا گريۆناسى',
+        ],
+        'UGX' => [
+            'UGX',
+            'ۋگاندا شيللينگى',
+        ],
+        'USD' => [
+            'US$',
+            'ا ق ش دوللارى',
+        ],
+        'UYU' => [
+            'UYU',
+            'ۋرۋگۆاي پەسوسى',
+        ],
+        'UZS' => [
+            'UZS',
+            'وزبەك سومى',
+        ],
+        'VES' => [
+            'VES',
+            'ۆەنەسۋەلا بوليۆارى',
+        ],
+        'VND' => [
+            '₫',
+            'ۆەتنام دونگى',
+        ],
+        'VUV' => [
+            'VUV',
+            'ۆانۋاتۋ ۆاتۋى',
+        ],
+        'WST' => [
+            'WST',
+            'ساموا تالاسى',
+        ],
+        'XAF' => [
+            'FCFA',
+            'ورتالىق افريكانىڭ فرانكى',
+        ],
+        'XCD' => [
+            'EC$',
+            'شىعىس كاريب دوللارى',
+        ],
+        'XCG' => [
+            'Cg.',
+            'كاريب گۋلدەرى',
+        ],
+        'XOF' => [
+            'F CFA',
+            'باتىس افريكانىڭ فرانكى',
+        ],
+        'XPF' => [
+            'CFPF',
+            'فرانسۋز پولينەزيا فرانكى',
+        ],
+        'YER' => [
+            'YER',
+            'يەمەن ريالى',
+        ],
+        'ZAR' => [
+            'ZAR',
+            'وڭتۇستىك افريكا ءرەندى',
+        ],
+        'ZMW' => [
+            'ZMW',
+            'زامبيا كۆاچاسى',
+        ],
+        'ZWG' => [
+            'ZWG',
+            'زيمباب التىنى',
+        ],
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kk.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'Шығыс Кариб доллары',
         ],
+        'XCG' => [
+            'Cg.',
+            'Кариб гульдені',
+        ],
         'XOF' => [
             'F CFA',
             'Батыс Африканың КФА франкі',
@@ -654,5 +658,9 @@
             'ZMW',
             'Замбия квачасы',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Зимбабве алтыны',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/km.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/km.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/km.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/km.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
         ],
         'ANG' => [
             'ANG',
-            'ហ្គីឌិន​ហុល្លង់​អង់ទីលៀន',
+            'ហ្គីលឌ័រអាំងទីលហូឡង់',
         ],
         'AOA' => [
             'AOA',
@@ -634,6 +634,10 @@
             'EC$',
             'ដុល្លារ​ការ៉ាប៊ីន​ខាង​កើត',
         ],
+        'XCG' => [
+            'Cg.',
+            'ហ្គីលឌ័រការីបៀន',
+        ],
         'XOF' => [
             'F CFA',
             'ហ្វ្រង់ CFA អាហ្វ្រិកខាងលិច',
@@ -658,5 +662,9 @@
             'ZMW',
             'ក្វាចាហ្សំប៊ី',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ហ្កូលស៊ីមបាវ៉េ',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/kn.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'ಪೂರ್ವ ಕೆರೀಬಿಯನ್ ಡಾಲರ್',
         ],
+        'XCG' => [
+            'Cg.',
+            'ಕೆರೆಬಿಯನ್ ಗಿಲ್ಡರ್',
+        ],
         'XOF' => [
             'F CFA',
             'ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾದ CFA ಫ್ರಾಂಕ್',
@@ -658,5 +662,9 @@
             'ZMW',
             'ಜಾಂಬಿಯಾ ಕ್ವಾಚ',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ಜಿಂಬಾಬ್ವಿಯನ್ ಗೋಲ್ಡ್',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ko.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ko.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ko.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ko.php	2026-05-20 10:56:49.000000000 +0200
@@ -348,7 +348,7 @@
         ],
         'ERN' => [
             'ERN',
-            '에리트리아 나크파',
+            '에리트레아 낙파',
         ],
         'ESA' => [
             'ESA',
@@ -1050,6 +1050,10 @@
             'EC$',
             '동카리브 달러',
         ],
+        'XCG' => [
+            'Cg.',
+            '카리브 길더',
+        ],
         'XEU' => [
             'XEU',
             '유럽 환율 단위',
@@ -1122,6 +1126,10 @@
             'ZWD',
             '짐바브웨 달러',
         ],
+        'ZWG' => [
+            'ZWG',
+            '짐바브웨 골드',
+        ],
         'ZWL' => [
             'ZWL',
             '짐바브웨 달러 (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ku.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ku.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ku.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ku.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,14 +2,26 @@
 
 return [
     'Names' => [
+        'ADP' => [
+            'ADP',
+            'pezetayê andorrayî',
+        ],
         'AED' => [
             'AED',
             'dîrhemê mîrgehên erebî yên yekbûyî',
         ],
+        'AFA' => [
+            'AFA',
+            'efxanîyê efxanistanî (1927–2002)',
+        ],
         'AFN' => [
             'AFN',
             'efxanîyê efxanistanî',
         ],
+        'ALK' => [
+            'ALK',
+            'lekê arnawidî (1946–1965)',
+        ],
         'ALL' => [
             'ALL',
             'lekê arnawidî',
@@ -26,10 +38,42 @@
             'AOA',
             'kwanzayê angolayî',
         ],
+        'AOK' => [
+            'AOK',
+            'kwanzayê angolayî (1977–1991)',
+        ],
+        'AON' => [
+            'AON',
+            'kwanzayê nû ya angolayî (1990–2000)',
+        ],
+        'AOR' => [
+            'AOR',
+            'kwanza reajustadoyê angolayî (1995–1999)',
+        ],
+        'ARA' => [
+            'ARA',
+            'australê arjantînî',
+        ],
+        'ARL' => [
+            'ARL',
+            'peso leyê arjantînî (1970–1983)',
+        ],
+        'ARM' => [
+            'ARM',
+            'pesoyê arjantînî (1881–1970)',
+        ],
+        'ARP' => [
+            'ARP',
+            'pesoyê arjantînî (1983–1985)',
+        ],
         'ARS' => [
             'ARS',
             'pesoyê arjantînî',
         ],
+        'ATS' => [
+            'ATS',
+            'şîllîngê awistiryayî',
+        ],
         'AUD' => [
             'A$',
             'dolarê awistralyayî',
@@ -38,14 +82,26 @@
             'AWG',
             'florînê arubayî',
         ],
+        'AZM' => [
+            'AZM',
+            'manatê azerbeycanî (1993–2006)',
+        ],
         'AZN' => [
             'AZN',
             'manatê azerbeycanî',
         ],
+        'BAD' => [
+            'BAD',
+            'dînarê bosna hersekî (1992–1994)',
+        ],
         'BAM' => [
             'BAM',
             'markê konvertibl ê bosna hersekî',
         ],
+        'BAN' => [
+            'BAN',
+            'dînarê nû yê bosna hersekî (1994–1997)',
+        ],
         'BBD' => [
             'BBD',
             'dolarê barbadosî',
@@ -54,10 +110,34 @@
             'BDT',
             'takayê bengladeşî',
         ],
+        'BEC' => [
+            'BEC',
+            'frankê belçîkayî (konvertibl)',
+        ],
+        'BEF' => [
+            'BEF',
+            'frankê belçîkayî',
+        ],
+        'BEL' => [
+            'BEL',
+            'frankê belçîkayî (fînansî)',
+        ],
+        'BGL' => [
+            'BGL',
+            'levê bulgarî (hard)',
+        ],
+        'BGM' => [
+            'BGM',
+            'levê bulgarî (1952–1962)',
+        ],
         'BGN' => [
             'BGN',
             'levê bulgarî',
         ],
+        'BGO' => [
+            'BGO',
+            'levê bulgarî (1879–1952)',
+        ],
         'BHD' => [
             'BHD',
             'dînarê behreynê',
@@ -78,10 +158,46 @@
             'BOB',
             'bolîvyanoyê bolîvyayî',
         ],
+        'BOL' => [
+            'BOL',
+            'bolîvyanoyê bolîvyayî (1863–1963)',
+        ],
+        'BOP' => [
+            'BOP',
+            'pesoyê bolîvyayî',
+        ],
+        'BOV' => [
+            'BOV',
+            'mvodolê bolîvyayî',
+        ],
+        'BRB' => [
+            'BRB',
+            'kruzeîroyê nû ya brezîlyayî (1967–1986)',
+        ],
+        'BRC' => [
+            'BRC',
+            'kruzadoyê brezîlyayî (1986–1989)',
+        ],
+        'BRE' => [
+            'BRE',
+            'kruzeîroyê brezîlyayî (1990–1993)',
+        ],
         'BRL' => [
             'R$',
             'realê brezîlyayî',
         ],
+        'BRN' => [
+            'BRN',
+            'kruzadoyê nû yê brezîlyayî (1989–1990)',
+        ],
+        'BRR' => [
+            'BRR',
+            'kruzeîroyê brezîlyayî (1993–1994)',
+        ],
+        'BRZ' => [
+            'BRZ',
+            'kruzeîroyê brezîlyayî (1942–1967)',
+        ],
         'BSD' => [
             'BSD',
             'dolarê bahamayî',
@@ -90,13 +206,25 @@
             'BTN',
             'ngultrumê bûtanî',
         ],
+        'BUK' => [
+            'BUK',
+            'kyatê burmayî',
+        ],
         'BWP' => [
             'BWP',
             'pulayê botswanayî',
         ],
+        'BYB' => [
+            'BYB',
+            'rubleyê belarûsî (1994–1999)',
+        ],
         'BYN' => [
             'BYN',
-            'rûbleyê belarûsî',
+            'rubleyê belarûsî',
+        ],
+        'BYR' => [
+            'BYR',
+            'rubleyê belarûsî (2000–2016)',
         ],
         'BZD' => [
             'BZD',
@@ -110,18 +238,38 @@
             'CDF',
             'frankê kongoyî',
         ],
+        'CHE' => [
+            'CHE',
+            'ewroyê WIRê',
+        ],
         'CHF' => [
             'CHF',
             'frankê swîsrî',
         ],
+        'CHW' => [
+            'CHW',
+            'frankê WIRê',
+        ],
+        'CLE' => [
+            'CLE',
+            'eskodoyê şîlîyî',
+        ],
+        'CLF' => [
+            'CLF',
+            'unidades de fomentoyê şîlîyî',
+        ],
         'CLP' => [
             'CLP',
-            'pesoyê şîlîyê',
+            'pesoyê şîlîyî',
         ],
         'CNH' => [
             'CNH',
             'yûanê çînî (offshore)',
         ],
+        'CNX' => [
+            'CNX',
+            'dolarê Banka Xelkî ya çînî',
+        ],
         'CNY' => [
             'CN¥',
             'yûanê çînî',
@@ -130,10 +278,22 @@
             'COP',
             'pesoyê kolombîyayî',
         ],
+        'COU' => [
+            'COU',
+            'unidad de valor realê kolombîyayî',
+        ],
         'CRC' => [
             'CRC',
             'kolonê kosta rîkayî',
         ],
+        'CSD' => [
+            'CSD',
+            'poundê maltayî (2002–2006)',
+        ],
+        'CSK' => [
+            'CSK',
+            'kronê çekoslovakî (hard)',
+        ],
         'CUC' => [
             'CUC',
             'pesoyên konvertibl ê kubayî',
@@ -146,10 +306,22 @@
             'CVE',
             'eskudoyê kape verdeyî',
         ],
+        'CYP' => [
+            'CYP',
+            'lîreyê qibrisî',
+        ],
         'CZK' => [
             'CZK',
             'kronê çekî',
         ],
+        'DDM' => [
+            'DDM',
+            'markê almanyaya rojhilatî',
+        ],
+        'DEM' => [
+            'DEM',
+            'markê almanî',
+        ],
         'DJF' => [
             'DJF',
             'frankê cîbûtîyî',
@@ -166,6 +338,18 @@
             'DZD',
             'dînarê cezayîrî',
         ],
+        'ECS' => [
+            'ECS',
+            'sukreyê ekwadorî',
+        ],
+        'ECV' => [
+            'ECV',
+            'unidad de valor constanteyê ekwadorî (UVC)',
+        ],
+        'EEK' => [
+            'EEK',
+            'krûnê estonî',
+        ],
         'EGP' => [
             'EGP',
             'lîreyê misirî',
@@ -174,6 +358,18 @@
             'ERN',
             'nakfayê erîtreyî',
         ],
+        'ESA' => [
+            'ESA',
+            'pezetayê spanî (hesabê Ayê)',
+        ],
+        'ESB' => [
+            'ESB',
+            'pezetayê spanî (hesabê konvertibl)',
+        ],
+        'ESP' => [
+            'ESP',
+            'pezetayê spanî',
+        ],
         'ETB' => [
             'ETB',
             'bîrê etyopyayî',
@@ -182,29 +378,45 @@
             '€',
             'ewro',
         ],
+        'FIM' => [
+            'FIM',
+            'markkayê fînî',
+        ],
         'FJD' => [
             'FJD',
             'dolarê fîjîyî',
         ],
         'FKP' => [
             'FKP',
-            'paundê giravên falklandê',
+            'paundê giravên falklandî',
+        ],
+        'FRF' => [
+            'FRF',
+            'markê fransî',
         ],
         'GBP' => [
             '£',
             'sterlînê brîtanî',
         ],
+        'GEK' => [
+            'GEK',
+            'kupon larîtê gurcistanî',
+        ],
         'GEL' => [
             'GEL',
             'larîyê gurcistanî',
         ],
+        'GHC' => [
+            'GHC',
+            'cedîyê ganayî (1979–2007)',
+        ],
         'GHS' => [
             'GHS',
             'cedîyê ganayî',
         ],
         'GIP' => [
             'GIP',
-            'poundê gîbraltarê',
+            'lîreyê cebelîtariqî',
         ],
         'GMD' => [
             'GMD',
@@ -214,10 +426,30 @@
             'GNF',
             'frankê gîneyî',
         ],
+        'GNS' => [
+            'GNS',
+            'sylîyê gîneyî',
+        ],
+        'GQE' => [
+            'GQE',
+            'ekweleyê gîneya ekvatorî',
+        ],
+        'GRD' => [
+            'GRD',
+            'draxmayê yûnanî',
+        ],
         'GTQ' => [
             'GTQ',
             'quertzalê guatemalayî',
         ],
+        'GWE' => [
+            'GWE',
+            'eskudoyê gîneya portugalî',
+        ],
+        'GWP' => [
+            'GWP',
+            'pezoyê gîne-bissauyî',
+        ],
         'GYD' => [
             'GYD',
             'dolarê guayanayî',
@@ -230,9 +462,13 @@
             'HNL',
             'lempîrayê hondurasî',
         ],
+        'HRD' => [
+            'HRD',
+            'dînarê xirwatî',
+        ],
         'HRK' => [
             'HRK',
-            'kûnayê xirwatî',
+            'kunayê xirwatî',
         ],
         'HTG' => [
             'HTG',
@@ -246,6 +482,18 @@
             'IDR',
             'rûpîyê endonezî',
         ],
+        'IEP' => [
+            'IEP',
+            'lîreyê îrlandî',
+        ],
+        'ILP' => [
+            'ILP',
+            'lîreyê îsraîlî',
+        ],
+        'ILR' => [
+            'ILR',
+            'şekelê îsraîlî (1980–1985)',
+        ],
         'ILS' => [
             '₪',
             'şekelê nû yê îsraîlî',
@@ -262,10 +510,18 @@
             'IRR',
             'rîyalê îranî',
         ],
+        'ISJ' => [
+            'ISJ',
+            'kronê îslandayî (1918–1981)',
+        ],
         'ISK' => [
             'ISK',
             'kronê îslandayî',
         ],
+        'ITL' => [
+            'ITL',
+            'lîrayê îtalî',
+        ],
         'JMD' => [
             'JMD',
             'dolarê jamaîkayî',
@@ -298,6 +554,14 @@
             'KPW',
             'wonê koreya bakurî',
         ],
+        'KRH' => [
+            'KRH',
+            'hwanê koreya başûrî (1953–1962)',
+        ],
+        'KRO' => [
+            'KRO',
+            'wonê koreya başûrî (1945–1953)',
+        ],
         'KRW' => [
             '₩',
             'wonê koreya başûrî',
@@ -334,6 +598,34 @@
             'LSL',
             'lotîyê lesothoyî',
         ],
+        'LTL' => [
+            'LTL',
+            'lîtayê lîtvanyayî',
+        ],
+        'LTT' => [
+            'LTT',
+            'talonasê lîtvanyayî',
+        ],
+        'LUC' => [
+            'LUC',
+            'frankê konvertibl ya luksembûrgî',
+        ],
+        'LUF' => [
+            'LUF',
+            'frankê luksembûrgî',
+        ],
+        'LUL' => [
+            'LUL',
+            'frankê fînansî yê luksembûrgî',
+        ],
+        'LVL' => [
+            'LVL',
+            'latê letonyayî',
+        ],
+        'LVR' => [
+            'LVR',
+            'rubleyê letonyayî',
+        ],
         'LYD' => [
             'LYD',
             'dînarê lîbyayî',
@@ -342,18 +634,42 @@
             'MAD',
             'dîrhemê fasî',
         ],
+        'MAF' => [
+            'MAF',
+            'franka fasî',
+        ],
+        'MCF' => [
+            'MCF',
+            'frankê monakoyî',
+        ],
+        'MDC' => [
+            'MDC',
+            'kuponê moldovayî',
+        ],
         'MDL' => [
             'MDL',
             'leyê moldovayî',
         ],
         'MGA' => [
             'MGA',
+            'arîarîyê madagaskarî',
+        ],
+        'MGF' => [
+            'MGF',
             'frankê madagaskarî',
         ],
         'MKD' => [
             'MKD',
             'dînarê makedonî',
         ],
+        'MKN' => [
+            'MKN',
+            'dînarê makedonî (1992–1993)',
+        ],
+        'MLF' => [
+            'MLF',
+            'franka malîyî',
+        ],
         'MMK' => [
             'MMK',
             'kyatê myanmarî',
@@ -366,14 +682,30 @@
             'MOP',
             'patakayê makaoyî',
         ],
+        'MRO' => [
+            'MRO',
+            'ouguîayê morîtanyayî (1973–2017)',
+        ],
         'MRU' => [
             'MRU',
             'ouguîayê morîtanyayî',
         ],
+        'MTL' => [
+            'MTL',
+            'lîreyê maltayî',
+        ],
+        'MTP' => [
+            'MTP',
+            'poundê maltayî',
+        ],
         'MUR' => [
             'MUR',
             'rûpîyê maûrîtîûsê',
         ],
+        'MVP' => [
+            'MVP',
+            'rûpîyê maldîvayî (1947–1981)',
+        ],
         'MVR' => [
             'MVR',
             'rûfîyaayê maldîvayî',
@@ -386,13 +718,29 @@
             'MX$',
             'pesoyê meksîkayî',
         ],
+        'MXP' => [
+            'MXP',
+            'pesoyê zîvî yê meksîkayî (1861–1992)',
+        ],
+        'MXV' => [
+            'MXV',
+            'unidad de inversionê meksîkayî (UDI)',
+        ],
         'MYR' => [
             'MYR',
             'ringgitê malezyayî',
         ],
+        'MZE' => [
+            'MZE',
+            'eskudoyê mozambîkî',
+        ],
+        'MZM' => [
+            'MZM',
+            'metîkalê mozambîkî (1980–2006)',
+        ],
         'MZN' => [
             'MZN',
-            'meticalê mozambîkî',
+            'metîkalê mozambîkî',
         ],
         'NAD' => [
             'NAD',
@@ -402,10 +750,18 @@
             'NGN',
             'naîrayê nîjeryayî',
         ],
+        'NIC' => [
+            'NIC',
+            'kordobayê nîkaraguayî (1988–1991)',
+        ],
         'NIO' => [
             'NIO',
             'kordobayê nîkaraguayî',
         ],
+        'NLG' => [
+            'NLG',
+            'florînê holendî',
+        ],
         'NOK' => [
             'NOK',
             'kronê norweçî',
@@ -426,10 +782,18 @@
             'PAB',
             'balboayê panamayî',
         ],
+        'PEI' => [
+            'PEI',
+            'întîyê perûyî',
+        ],
         'PEN' => [
             'PEN',
             'solê perûyî',
         ],
+        'PES' => [
+            'PES',
+            'solê perûyî (1863–1965)',
+        ],
         'PGK' => [
             'PGK',
             'kînayê gîneya nû ya papûayî',
@@ -446,6 +810,14 @@
             'PLN',
             'zlotîyê polonyayî',
         ],
+        'PLZ' => [
+            'PLZ',
+            'zlotîyê polonyayî (1950–1995)',
+        ],
+        'PTE' => [
+            'PTE',
+            'eskudoyê portugalî',
+        ],
         'PYG' => [
             'PYG',
             'gûaranîyê paragûayî',
@@ -454,6 +826,14 @@
             'QAR',
             'rîyalê qeterî',
         ],
+        'RHD' => [
+            'RHD',
+            'dolarê rodezyayî',
+        ],
+        'ROL' => [
+            'ROL',
+            'leyê romanyayî (1952–2006)',
+        ],
         'RON' => [
             'RON',
             'leyê romanyayî',
@@ -466,6 +846,10 @@
             'RUB',
             'rubleyê rûsî',
         ],
+        'RUR' => [
+            'RUR',
+            'rubleyê belarûsî (1991–1998)',
+        ],
         'RWF' => [
             'RWF',
             'frankê rwandayî',
@@ -482,10 +866,18 @@
             'SCR',
             'rûpîyê seyşelerî',
         ],
+        'SDD' => [
+            'SDD',
+            'dînarê sûdanî (1992–2007)',
+        ],
         'SDG' => [
             'SDG',
             'lîreyê sûdanî',
         ],
+        'SDP' => [
+            'SDP',
+            'lîreyê sûdanî (1957–1998)',
+        ],
         'SEK' => [
             'SEK',
             'kronê swêdî',
@@ -498,6 +890,14 @@
             'SHP',
             'lîreyê saînt helenayî',
         ],
+        'SIT' => [
+            'SIT',
+            'tolarê slovenî',
+        ],
+        'SKK' => [
+            'SKK',
+            'korunayê slovakî',
+        ],
         'SLE' => [
             'SLE',
             'leoneyê sîera leoneyî',
@@ -514,14 +914,30 @@
             'SRD',
             'dolarê surînamî',
         ],
+        'SRG' => [
+            'SRG',
+            'guldenê surînamî',
+        ],
         'SSP' => [
             'SSP',
             'lîreyê sûdana başûrî',
         ],
+        'STD' => [
+            'STD',
+            'dobrayê sao tome û principeyî (1977–2017)',
+        ],
         'STN' => [
             'STN',
             'dobrayê sao tome û principeyî',
         ],
+        'SUR' => [
+            'SUR',
+            'rubleyê sovyetî',
+        ],
+        'SVC' => [
+            'SVC',
+            'kolonê el salvadorî',
+        ],
         'SYP' => [
             'SYP',
             'lîreyê sûrî',
@@ -534,10 +950,18 @@
             'THB',
             'bahtê taylandî',
         ],
+        'TJR' => [
+            'TJR',
+            'rubleyê tacikistanî',
+        ],
         'TJS' => [
             'TJS',
             'somonê tacikistanî',
         ],
+        'TMM' => [
+            'TMM',
+            'manatê tirkmenî (1993–2009)',
+        ],
         'TMT' => [
             'TMT',
             'manatê tirkmenî',
@@ -550,6 +974,14 @@
             'TOP',
             'paʻangayê tonganî',
         ],
+        'TPE' => [
+            'TPE',
+            'ekudoyê tîmorî',
+        ],
+        'TRL' => [
+            'TRL',
+            'lîreyê tirkî (1922–2005)',
+        ],
         'TRY' => [
             '₺',
             'lîreyê tirkî',
@@ -570,6 +1002,14 @@
             'UAH',
             'grîvnayê ûkraynî',
         ],
+        'UAK' => [
+            'UAK',
+            'karbovanetzê ûkraynî',
+        ],
+        'UGS' => [
+            'UGS',
+            'şîlîngê ûgandayî (1966–1987)',
+        ],
         'UGX' => [
             'UGX',
             'şîlîngê ûgandayî',
@@ -578,14 +1018,46 @@
             '$',
             'dolarê amerîkî',
         ],
+        'USN' => [
+            'USN',
+            'dolarê amerîkî (roja din)',
+        ],
+        'USS' => [
+            'USS',
+            'dolarê amerîkî (eynî roj)',
+        ],
+        'UYI' => [
+            'UYI',
+            'peso en unidades indexadasê ûrûguayî',
+        ],
+        'UYP' => [
+            'UYP',
+            'pesoyê ûrûgûayî (1975–1993)',
+        ],
         'UYU' => [
             'UYU',
             'pesoyê ûrûgûayî',
         ],
+        'UYW' => [
+            'UYW',
+            'yekeya îndeksa heqdestê nomînal yê ûrûguayî',
+        ],
         'UZS' => [
             'UZS',
             'somê ozbekî',
         ],
+        'VEB' => [
+            'VEB',
+            'bolîvarê venezuelayî (1871–2008)',
+        ],
+        'VED' => [
+            'VED',
+            'bolivar soberano (VED)',
+        ],
+        'VEF' => [
+            'VEF',
+            'bolîvarê venezuelayî (2008–2018)',
+        ],
         'VES' => [
             'VES',
             'bolîvarê venezuelayî',
@@ -594,6 +1066,10 @@
             '₫',
             'dongê vîetnamî',
         ],
+        'VNN' => [
+            'VNN',
+            'dongê vîetnamî (1978–1985)',
+        ],
         'VUV' => [
             'VUV',
             'vatûyê vanûatûyî',
@@ -610,6 +1086,22 @@
             'EC$',
             'dolarê karayîba rojhilatî',
         ],
+        'XCG' => [
+            'Cg.',
+            'guldenê karayîbî',
+        ],
+        'XEU' => [
+            'XEU',
+            'Yekeya Pereyê ya Ewropayê',
+        ],
+        'XFO' => [
+            'XFO',
+            'Franka Fransî ya Zêrê',
+        ],
+        'XFU' => [
+            'XFU',
+            'Franka Fransî ya UICê',
+        ],
         'XOF' => [
             'F CFA',
             'frankê CFA yê afrîkaya başûrî',
@@ -618,17 +1110,73 @@
             'CFPF',
             'frankê CFPî',
         ],
+        'XRE' => [
+            'XRE',
+            'Fonên RINETê',
+        ],
+        'YDD' => [
+            'YDD',
+            'dînarê yemenî',
+        ],
         'YER' => [
             'YER',
             'rîyalê yemenî',
         ],
+        'YUD' => [
+            'YUD',
+            'hard dînarê yûgoslavî (1966–1990)',
+        ],
+        'YUM' => [
+            'YUM',
+            'dînarê nû ya yûgoslavî (1994–2002)',
+        ],
+        'YUN' => [
+            'YUN',
+            'dînarê konvertibl ya yûgoslavî (1990–1992)',
+        ],
+        'YUR' => [
+            'YUR',
+            'dînarê reformkirî ya yûgoslavî (1992–1993)',
+        ],
+        'ZAL' => [
+            'ZAL',
+            'randê afrîkaya başûrî (fînansî)',
+        ],
         'ZAR' => [
             'ZAR',
             'randê afrîkaya başûrî',
         ],
+        'ZMK' => [
+            'ZMK',
+            'kwaçayê zambîyayî (1968–2012)',
+        ],
         'ZMW' => [
             'ZMW',
             'kwaçayê zambîyayî',
         ],
+        'ZRN' => [
+            'ZRN',
+            'zaîreyê nû ya zaîreyî (1993–1998)',
+        ],
+        'ZRZ' => [
+            'ZRZ',
+            'zaîreyê zaîreyî (1971–1993)',
+        ],
+        'ZWD' => [
+            'ZWD',
+            'dolarê zîmbabweyî (1980–2008)',
+        ],
+        'ZWG' => [
+            'ZWG',
+            'zêrê zîmbabweyî',
+        ],
+        'ZWL' => [
+            'ZWL',
+            'dolarê zîmbabweyî (2009–2024)',
+        ],
+        'ZWR' => [
+            'ZWR',
+            'dolarê zîmbabweyî (2008)',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ky.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ky.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ky.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ky.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'XCD',
             'чыгыш кариб доллары',
         ],
+        'XCG' => [
+            'Cg.',
+            'Кариб гулдени',
+        ],
         'XOF' => [
             'F CFA',
             'КФА франкы',
@@ -654,5 +658,9 @@
             'ZMW',
             'Замбия квачасы',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Зимбабве алтыны',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lo.php	2026-05-20 10:56:49.000000000 +0200
@@ -1058,6 +1058,10 @@
             'EC$',
             'ອີ​ສ ຄາ​ຣິ​ບຽນ ໂດ​ລ່າ',
         ],
+        'XCG' => [
+            'Cg.',
+            'ຄາຣິບຽນ ກິວເດີ',
+        ],
         'XEU' => [
             'XEU',
             'ຫົວໜ່ວຍສະກຸນເງິນ ເອີຣົບ',
@@ -1134,6 +1138,10 @@
             'ZWD',
             'ດອນລາ ຊິມບັບເວ (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ຊິມບັບວຽນ ໂກລ',
+        ],
         'ZWL' => [
             'ZWL',
             'ດອນລາ ຊິມບັບເວ (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lt.php	2026-05-20 10:56:49.000000000 +0200
@@ -1078,6 +1078,10 @@
             'XCD',
             'Rytų Karibų doleris',
         ],
+        'XCG' => [
+            'Cg.',
+            'Karibų guldenas',
+        ],
         'XEU' => [
             'XEU',
             'Europos piniginis vienetas (1993–1999)',
@@ -1154,6 +1158,10 @@
             'ZWD',
             'Zimbabvės doleris (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabvės auksas',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabvės doleris (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/lv.php	2026-05-20 10:56:49.000000000 +0200
@@ -754,6 +754,10 @@
             'EC$',
             'Austrumkarību dolārs',
         ],
+        'XCG' => [
+            'Cg.',
+            'Karību guldenis',
+        ],
         'XEU' => [
             'XEU',
             'Eiropas norēķinu vienība',
@@ -794,6 +798,10 @@
             'ZWD',
             'Zimbabves dolārs',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabves zelts',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabves dolārs (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/meta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/meta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/meta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/meta.php	2026-05-20 10:56:49.000000000 +0200
@@ -371,7 +371,7 @@
             0,
         ],
         'COP' => [
-            2,
+            0,
             0,
             0,
             0,
@@ -425,13 +425,13 @@
             0,
         ],
         'HUF' => [
-            2,
             0,
             0,
             0,
+            5,
         ],
         'IDR' => [
-            2,
+            0,
             0,
             0,
             0,
@@ -569,7 +569,7 @@
             0,
         ],
         'PKR' => [
-            2,
+            0,
             0,
             0,
             0,
@@ -581,7 +581,7 @@
             0,
         ],
         'RSD' => [
-            0,
+            2,
             0,
             0,
             0,
@@ -700,12 +700,24 @@
             0,
             0,
         ],
+        'XAD' => [
+            2,
+            0,
+            2,
+            0,
+        ],
         'XAF' => [
             0,
             0,
             0,
             0,
         ],
+        'XAU' => [
+            2,
+            0,
+            2,
+            0,
+        ],
         'XOF' => [
             0,
             0,
@@ -737,6 +749,2239 @@
             0,
         ],
     ],
+    'Map' => [
+        'AC' => [
+            'SHP' => [
+                'from' => '1976-01-01T00:00:00',
+            ],
+        ],
+        'AD' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'ESP' => [
+                'from' => '1873-01-01T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+            'FRF' => [
+                'from' => '1960-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+            'ADP' => [
+                'from' => '1936-01-01T00:00:00',
+                'to' => '2001-12-31T23:59:59',
+            ],
+        ],
+        'AE' => [
+            'AED' => [
+                'from' => '1973-05-19T00:00:00',
+            ],
+        ],
+        'AF' => [
+            'AFN' => [
+                'from' => '2002-10-07T00:00:00',
+            ],
+            'AFA' => [
+                'from' => '1927-03-14T00:00:00',
+                'to' => '2002-12-31T23:59:59',
+            ],
+        ],
+        'AG' => [
+            'XCD' => [
+                'from' => '1965-10-06T00:00:00',
+            ],
+        ],
+        'AI' => [
+            'XCD' => [
+                'from' => '1965-10-06T00:00:00',
+            ],
+        ],
+        'AL' => [
+            'ALL' => [
+                'from' => '1965-08-16T00:00:00',
+            ],
+            'ALK' => [
+                'from' => '1946-11-01T00:00:00',
+                'to' => '1965-08-16T23:59:59',
+            ],
+        ],
+        'AM' => [
+            'AMD' => [
+                'from' => '1993-11-22T00:00:00',
+            ],
+            'RUR' => [
+                'from' => '1991-12-25T00:00:00',
+                'to' => '1993-11-22T23:59:59',
+            ],
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1991-12-25T23:59:59',
+            ],
+        ],
+        'AO' => [
+            'AOA' => [
+                'from' => '1999-12-13T00:00:00',
+            ],
+            'AOR' => [
+                'from' => '1995-07-01T00:00:00',
+                'to' => '2000-02-01T23:59:59',
+            ],
+            'AON' => [
+                'from' => '1990-09-25T00:00:00',
+                'to' => '2000-02-01T23:59:59',
+            ],
+            'AOK' => [
+                'from' => '1977-01-08T00:00:00',
+                'to' => '1991-03-01T23:59:59',
+            ],
+        ],
+        'AQ' => [],
+        'AR' => [
+            'ARS' => [
+                'from' => '1992-01-01T00:00:00',
+            ],
+            'ARA' => [
+                'from' => '1985-06-14T00:00:00',
+                'to' => '1992-01-01T23:59:59',
+            ],
+            'ARP' => [
+                'from' => '1983-06-01T00:00:00',
+                'to' => '1985-06-14T23:59:59',
+            ],
+            'ARL' => [
+                'from' => '1970-01-01T00:00:00',
+                'to' => '1983-06-01T23:59:59',
+            ],
+            'ARM' => [
+                'from' => '1881-11-05T00:00:00',
+                'to' => '1970-01-01T23:59:59',
+            ],
+        ],
+        'AS' => [
+            'USD' => [
+                'from' => '1904-07-16T00:00:00',
+            ],
+        ],
+        'AT' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'ATS' => [
+                'from' => '1947-12-04T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+        ],
+        'AU' => [
+            'AUD' => [
+                'from' => '1966-02-14T00:00:00',
+            ],
+        ],
+        'AW' => [
+            'AWG' => [
+                'from' => '1986-01-01T00:00:00',
+            ],
+            'ANG' => [
+                'from' => '1940-05-10T00:00:00',
+                'to' => '1986-01-01T23:59:59',
+            ],
+        ],
+        'AX' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+        ],
+        'AZ' => [
+            'AZN' => [
+                'from' => '2006-01-01T00:00:00',
+            ],
+            'AZM' => [
+                'from' => '1993-11-22T00:00:00',
+                'to' => '2006-12-31T23:59:59',
+            ],
+            'RUR' => [
+                'from' => '1991-12-25T00:00:00',
+                'to' => '1994-01-01T23:59:59',
+            ],
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1991-12-25T23:59:59',
+            ],
+        ],
+        'BA' => [
+            'BAM' => [
+                'from' => '1995-01-01T00:00:00',
+            ],
+            'BAN' => [
+                'from' => '1994-08-15T00:00:00',
+                'to' => '1997-07-01T23:59:59',
+            ],
+            'BAD' => [
+                'from' => '1992-07-01T00:00:00',
+                'to' => '1994-08-15T23:59:59',
+            ],
+            'YUR' => [
+                'from' => '1992-07-01T00:00:00',
+                'to' => '1993-10-01T23:59:59',
+            ],
+            'YUN' => [
+                'from' => '1990-01-01T00:00:00',
+                'to' => '1992-07-01T23:59:59',
+            ],
+            'YUD' => [
+                'from' => '1966-01-01T00:00:00',
+                'to' => '1990-01-01T23:59:59',
+            ],
+        ],
+        'BB' => [
+            'BBD' => [
+                'from' => '1973-12-03T00:00:00',
+            ],
+            'XCD' => [
+                'from' => '1965-10-06T00:00:00',
+                'to' => '1973-12-03T23:59:59',
+            ],
+        ],
+        'BD' => [
+            'BDT' => [
+                'from' => '1972-01-01T00:00:00',
+            ],
+            'PKR' => [
+                'from' => '1948-04-01T00:00:00',
+                'to' => '1972-01-01T23:59:59',
+            ],
+            'INR' => [
+                'from' => '1835-08-17T00:00:00',
+                'to' => '1948-04-01T23:59:59',
+            ],
+        ],
+        'BE' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'BEF' => [
+                'from' => '1831-02-07T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+            'NLG' => [
+                'from' => '1816-12-15T00:00:00',
+                'to' => '1831-02-07T23:59:59',
+            ],
+            'BEL' => [
+                'from' => '1970-01-01T00:00:00',
+                'tender' => false,
+                'to' => '1990-03-05T23:59:59',
+            ],
+            'BEC' => [
+                'from' => '1970-01-01T00:00:00',
+                'tender' => false,
+                'to' => '1990-03-05T23:59:59',
+            ],
+        ],
+        'BF' => [
+            'XOF' => [
+                'from' => '1984-08-04T00:00:00',
+            ],
+        ],
+        'BG' => [
+            'EUR' => [
+                'from' => '2026-01-01T00:00:00',
+            ],
+            'BGN' => [
+                'from' => '1999-07-05T00:00:00',
+                'to' => '2026-01-31T23:59:59',
+            ],
+            'BGL' => [
+                'from' => '1962-01-01T00:00:00',
+                'to' => '1999-07-05T23:59:59',
+            ],
+            'BGM' => [
+                'from' => '1952-05-12T00:00:00',
+                'to' => '1962-01-01T23:59:59',
+            ],
+            'BGO' => [
+                'from' => '1879-07-08T00:00:00',
+                'to' => '1952-05-12T23:59:59',
+            ],
+        ],
+        'BH' => [
+            'BHD' => [
+                'from' => '1965-10-16T00:00:00',
+            ],
+        ],
+        'BI' => [
+            'BIF' => [
+                'from' => '1964-05-19T00:00:00',
+            ],
+        ],
+        'BJ' => [
+            'XOF' => [
+                'from' => '1975-11-30T00:00:00',
+            ],
+        ],
+        'BL' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1960-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+        ],
+        'BM' => [
+            'BMD' => [
+                'from' => '1970-02-06T00:00:00',
+            ],
+        ],
+        'BN' => [
+            'BND' => [
+                'from' => '1967-06-12T00:00:00',
+            ],
+            'MYR' => [
+                'from' => '1963-09-16T00:00:00',
+                'to' => '1967-06-12T23:59:59',
+            ],
+        ],
+        'BO' => [
+            'BOB' => [
+                'from' => '1987-01-01T00:00:00',
+            ],
+            'BOP' => [
+                'from' => '1963-01-01T00:00:00',
+                'to' => '1986-12-31T23:59:59',
+            ],
+            'BOL' => [
+                'from' => '1863-06-23T00:00:00',
+                'to' => '1963-01-01T23:59:59',
+            ],
+            'BOV' => [
+                'tender' => false,
+            ],
+        ],
+        'BQ' => [
+            'USD' => [
+                'from' => '2011-01-01T00:00:00',
+            ],
+            'ANG' => [
+                'from' => '2010-10-10T00:00:00',
+                'to' => '2011-01-01T23:59:59',
+            ],
+        ],
+        'BR' => [
+            'BRL' => [
+                'from' => '1994-07-01T00:00:00',
+            ],
+            'BRR' => [
+                'from' => '1993-08-01T00:00:00',
+                'to' => '1994-07-01T23:59:59',
+            ],
+            'BRE' => [
+                'from' => '1990-03-16T00:00:00',
+                'to' => '1993-08-01T23:59:59',
+            ],
+            'BRN' => [
+                'from' => '1989-01-15T00:00:00',
+                'to' => '1990-03-16T23:59:59',
+            ],
+            'BRC' => [
+                'from' => '1986-02-28T00:00:00',
+                'to' => '1989-01-15T23:59:59',
+            ],
+            'BRB' => [
+                'from' => '1967-02-13T00:00:00',
+                'to' => '1986-02-28T23:59:59',
+            ],
+            'BRZ' => [
+                'from' => '1942-11-01T00:00:00',
+                'to' => '1967-02-13T23:59:59',
+            ],
+        ],
+        'BS' => [
+            'BSD' => [
+                'from' => '1966-05-25T00:00:00',
+            ],
+        ],
+        'BT' => [
+            'BTN' => [
+                'from' => '1974-04-16T00:00:00',
+            ],
+            'INR' => [
+                'from' => '1907-01-01T00:00:00',
+            ],
+        ],
+        'BU' => [
+            'BUK' => [
+                'from' => '1952-07-01T00:00:00',
+                'to' => '1989-06-18T23:59:59',
+            ],
+        ],
+        'BV' => [
+            'NOK' => [
+                'from' => '1905-06-07T00:00:00',
+            ],
+        ],
+        'BW' => [
+            'BWP' => [
+                'from' => '1976-08-23T00:00:00',
+            ],
+            'ZAR' => [
+                'from' => '1961-02-14T00:00:00',
+                'to' => '1976-08-23T23:59:59',
+            ],
+        ],
+        'BY' => [
+            'BYN' => [
+                'from' => '2016-07-01T00:00:00',
+            ],
+            'BYR' => [
+                'from' => '2000-01-01T00:00:00',
+                'to' => '2017-01-01T23:59:59',
+            ],
+            'BYB' => [
+                'from' => '1994-08-01T00:00:00',
+                'to' => '2000-12-31T23:59:59',
+            ],
+            'RUR' => [
+                'from' => '1991-12-25T00:00:00',
+                'to' => '1994-11-08T23:59:59',
+            ],
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1991-12-25T23:59:59',
+            ],
+        ],
+        'BZ' => [
+            'BZD' => [
+                'from' => '1974-01-01T00:00:00',
+            ],
+        ],
+        'CA' => [
+            'CAD' => [
+                'from' => '1858-01-01T00:00:00',
+            ],
+        ],
+        'CC' => [
+            'AUD' => [
+                'from' => '1966-02-14T00:00:00',
+            ],
+        ],
+        'CD' => [
+            'CDF' => [
+                'from' => '1998-07-01T00:00:00',
+            ],
+            'ZRN' => [
+                'from' => '1993-11-01T00:00:00',
+                'to' => '1998-07-01T23:59:59',
+            ],
+            'ZRZ' => [
+                'from' => '1971-10-27T00:00:00',
+                'to' => '1993-11-01T23:59:59',
+            ],
+        ],
+        'CF' => [
+            'XAF' => [
+                'from' => '1993-01-01T00:00:00',
+            ],
+        ],
+        'CG' => [
+            'XAF' => [
+                'from' => '1993-01-01T00:00:00',
+            ],
+        ],
+        'CH' => [
+            'CHF' => [
+                'from' => '1799-03-17T00:00:00',
+            ],
+            'CHE' => [
+                'tender' => false,
+            ],
+            'CHW' => [
+                'tender' => false,
+            ],
+        ],
+        'CI' => [
+            'XOF' => [
+                'from' => '1958-12-04T00:00:00',
+            ],
+        ],
+        'CK' => [
+            'NZD' => [
+                'from' => '1967-07-10T00:00:00',
+            ],
+        ],
+        'CL' => [
+            'CLP' => [
+                'from' => '1975-09-29T00:00:00',
+            ],
+            'CLE' => [
+                'from' => '1960-01-01T00:00:00',
+                'to' => '1975-09-29T23:59:59',
+            ],
+            'CLF' => [
+                'tender' => false,
+            ],
+        ],
+        'CM' => [
+            'XAF' => [
+                'from' => '1973-04-01T00:00:00',
+            ],
+        ],
+        'CN' => [
+            'CNY' => [
+                'from' => '1953-03-01T00:00:00',
+            ],
+            'CNX' => [
+                'from' => '1979-01-01T00:00:00',
+                'tender' => false,
+                'to' => '1998-12-31T23:59:59',
+            ],
+            'CNH' => [
+                'from' => '2010-07-19T00:00:00',
+                'tender' => false,
+            ],
+        ],
+        'CO' => [
+            'COP' => [
+                'from' => '1905-01-01T00:00:00',
+            ],
+            'COU' => [
+                'tender' => false,
+            ],
+        ],
+        'CP' => [],
+        'CR' => [
+            'CRC' => [
+                'from' => '1896-10-26T00:00:00',
+            ],
+        ],
+        'CS' => [
+            'CSD' => [
+                'from' => '2002-05-15T00:00:00',
+                'to' => '2006-06-03T23:59:59',
+            ],
+            'EUR' => [
+                'from' => '2003-02-04T00:00:00',
+                'to' => '2006-06-03T23:59:59',
+            ],
+            'YUM' => [
+                'from' => '1994-01-24T00:00:00',
+                'to' => '2002-05-15T23:59:59',
+            ],
+        ],
+        'CU' => [
+            'CUP' => [
+                'from' => '1859-01-01T00:00:00',
+            ],
+            'CUC' => [
+                'from' => '1994-01-01T00:00:00',
+                'to' => '2021-06-01T23:59:59',
+            ],
+            'USD' => [
+                'from' => '1899-01-01T00:00:00',
+                'to' => '1959-01-01T23:59:59',
+            ],
+        ],
+        'CV' => [
+            'CVE' => [
+                'from' => '1914-01-01T00:00:00',
+            ],
+            'PTE' => [
+                'from' => '1911-05-22T00:00:00',
+                'to' => '1975-07-05T23:59:59',
+            ],
+        ],
+        'CW' => [
+            'XCG' => [
+                'from' => '2025-03-31T04:00:00',
+            ],
+            'ANG' => [
+                'from' => '2010-10-10T00:00:00',
+                'to' => '2025-07-01T03:59:59',
+            ],
+        ],
+        'CX' => [
+            'AUD' => [
+                'from' => '1966-02-14T00:00:00',
+            ],
+        ],
+        'CY' => [
+            'EUR' => [
+                'from' => '2008-01-01T00:00:00',
+            ],
+            'CYP' => [
+                'from' => '1914-09-10T00:00:00',
+                'to' => '2008-01-31T23:59:59',
+            ],
+        ],
+        'CZ' => [
+            'CZK' => [
+                'from' => '1993-01-01T00:00:00',
+            ],
+            'CSK' => [
+                'from' => '1953-06-01T00:00:00',
+                'to' => '1993-03-01T23:59:59',
+            ],
+        ],
+        'DD' => [
+            'DDM' => [
+                'from' => '1948-07-20T00:00:00',
+                'to' => '1990-10-02T23:59:59',
+            ],
+        ],
+        'DE' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'DEM' => [
+                'from' => '1948-06-20T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+        ],
+        'DG' => [
+            'USD' => [
+                'from' => '1965-11-08T00:00:00',
+            ],
+        ],
+        'DJ' => [
+            'DJF' => [
+                'from' => '1977-06-27T00:00:00',
+            ],
+        ],
+        'DK' => [
+            'DKK' => [
+                'from' => '1873-05-27T00:00:00',
+            ],
+        ],
+        'DM' => [
+            'XCD' => [
+                'from' => '1965-10-06T00:00:00',
+            ],
+        ],
+        'DO' => [
+            'DOP' => [
+                'from' => '1947-10-01T00:00:00',
+            ],
+            'USD' => [
+                'from' => '1905-06-21T00:00:00',
+                'to' => '1947-10-01T23:59:59',
+            ],
+        ],
+        'DZ' => [
+            'DZD' => [
+                'from' => '1964-04-01T00:00:00',
+            ],
+        ],
+        'EA' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+        ],
+        'EC' => [
+            'USD' => [
+                'from' => '2000-10-02T00:00:00',
+            ],
+            'ECS' => [
+                'from' => '1884-04-01T00:00:00',
+                'to' => '2000-10-02T23:59:59',
+            ],
+            'ECV' => [
+                'from' => '1993-05-23T00:00:00',
+                'tender' => false,
+                'to' => '2000-01-09T23:59:59',
+            ],
+        ],
+        'EE' => [
+            'EUR' => [
+                'from' => '2011-01-01T00:00:00',
+            ],
+            'EEK' => [
+                'from' => '1992-06-21T00:00:00',
+                'to' => '2010-12-31T23:59:59',
+            ],
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1992-06-20T23:59:59',
+            ],
+        ],
+        'EG' => [
+            'EGP' => [
+                'from' => '1885-11-14T00:00:00',
+            ],
+        ],
+        'EH' => [
+            'MAD' => [
+                'from' => '1976-02-26T00:00:00',
+            ],
+        ],
+        'ER' => [
+            'ERN' => [
+                'from' => '1997-11-08T00:00:00',
+            ],
+            'ETB' => [
+                'from' => '1993-05-24T00:00:00',
+                'to' => '1997-11-08T23:59:59',
+            ],
+        ],
+        'ES' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'ESP' => [
+                'from' => '1868-10-19T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+            'ESA' => [
+                'from' => '1978-01-01T00:00:00',
+                'tender' => false,
+                'to' => '1981-12-31T23:59:59',
+            ],
+            'ESB' => [
+                'from' => '1975-01-01T00:00:00',
+                'tender' => false,
+                'to' => '1994-12-31T23:59:59',
+            ],
+        ],
+        'ET' => [
+            'ETB' => [
+                'from' => '1976-09-15T00:00:00',
+            ],
+        ],
+        'EU' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'XEU' => [
+                'from' => '1979-01-01T00:00:00',
+                'tender' => false,
+                'to' => '1998-12-31T23:59:59',
+            ],
+        ],
+        'FI' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FIM' => [
+                'from' => '1963-01-01T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+        ],
+        'FJ' => [
+            'FJD' => [
+                'from' => '1969-01-13T00:00:00',
+            ],
+        ],
+        'FK' => [
+            'FKP' => [
+                'from' => '1901-01-01T00:00:00',
+            ],
+        ],
+        'FM' => [
+            'USD' => [
+                'from' => '1944-01-01T00:00:00',
+            ],
+            'JPY' => [
+                'from' => '1914-10-03T00:00:00',
+                'to' => '1944-01-01T23:59:59',
+            ],
+        ],
+        'FO' => [
+            'DKK' => [
+                'from' => '1948-01-01T00:00:00',
+            ],
+        ],
+        'FR' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1960-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+        ],
+        'GA' => [
+            'XAF' => [
+                'from' => '1993-01-01T00:00:00',
+            ],
+        ],
+        'GB' => [
+            'GBP' => [
+                'from' => '1694-07-27T00:00:00',
+            ],
+        ],
+        'GD' => [
+            'XCD' => [
+                'from' => '1967-02-27T00:00:00',
+            ],
+        ],
+        'GE' => [
+            'GEL' => [
+                'from' => '1995-09-23T00:00:00',
+            ],
+            'GEK' => [
+                'from' => '1993-04-05T00:00:00',
+                'to' => '1995-09-25T23:59:59',
+            ],
+            'RUR' => [
+                'from' => '1991-12-25T00:00:00',
+                'to' => '1993-06-11T23:59:59',
+            ],
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1991-12-25T23:59:59',
+            ],
+        ],
+        'GF' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1960-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+        ],
+        'GG' => [
+            'GBP' => [
+                'from' => '1830-01-01T00:00:00',
+            ],
+        ],
+        'GH' => [
+            'GHS' => [
+                'from' => '2007-07-03T00:00:00',
+            ],
+            'GHC' => [
+                'from' => '1979-03-09T00:00:00',
+                'to' => '2007-12-31T23:59:59',
+            ],
+        ],
+        'GI' => [
+            'GIP' => [
+                'from' => '1713-01-01T00:00:00',
+            ],
+        ],
+        'GL' => [
+            'DKK' => [
+                'from' => '1873-05-27T00:00:00',
+            ],
+        ],
+        'GM' => [
+            'GMD' => [
+                'from' => '1971-07-01T00:00:00',
+            ],
+        ],
+        'GN' => [
+            'GNF' => [
+                'from' => '1986-01-06T00:00:00',
+            ],
+            'GNS' => [
+                'from' => '1972-10-02T00:00:00',
+                'to' => '1986-01-06T23:59:59',
+            ],
+        ],
+        'GP' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1960-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+        ],
+        'GQ' => [
+            'XAF' => [
+                'from' => '1993-01-01T00:00:00',
+            ],
+            'GQE' => [
+                'from' => '1975-07-07T00:00:00',
+                'to' => '1986-06-01T23:59:59',
+            ],
+        ],
+        'GR' => [
+            'EUR' => [
+                'from' => '2001-01-01T00:00:00',
+            ],
+            'GRD' => [
+                'from' => '1954-05-01T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+        ],
+        'GS' => [
+            'GBP' => [
+                'from' => '1908-01-01T00:00:00',
+            ],
+        ],
+        'GT' => [
+            'GTQ' => [
+                'from' => '1925-05-27T00:00:00',
+            ],
+        ],
+        'GU' => [
+            'USD' => [
+                'from' => '1944-08-21T00:00:00',
+            ],
+        ],
+        'GW' => [
+            'XOF' => [
+                'from' => '1997-03-31T00:00:00',
+            ],
+            'GWP' => [
+                'from' => '1976-02-28T00:00:00',
+                'to' => '1997-03-31T23:59:59',
+            ],
+            'GWE' => [
+                'from' => '1914-01-01T00:00:00',
+                'to' => '1976-02-28T23:59:59',
+            ],
+        ],
+        'GY' => [
+            'GYD' => [
+                'from' => '1966-05-26T00:00:00',
+            ],
+        ],
+        'HK' => [
+            'HKD' => [
+                'from' => '1895-02-02T00:00:00',
+            ],
+        ],
+        'HM' => [
+            'AUD' => [
+                'from' => '1967-02-16T00:00:00',
+            ],
+        ],
+        'HN' => [
+            'HNL' => [
+                'from' => '1926-04-03T00:00:00',
+            ],
+        ],
+        'HR' => [
+            'EUR' => [
+                'from' => '2022-12-31T23:00:00',
+            ],
+            'HRK' => [
+                'from' => '1994-05-30T00:00:00',
+                'to' => '2023-01-14T22:59:59',
+            ],
+            'HRD' => [
+                'from' => '1991-12-23T00:00:00',
+                'to' => '1995-01-01T23:59:59',
+            ],
+            'YUN' => [
+                'from' => '1990-01-01T00:00:00',
+                'to' => '1991-12-23T23:59:59',
+            ],
+            'YUD' => [
+                'from' => '1966-01-01T00:00:00',
+                'to' => '1990-01-01T23:59:59',
+            ],
+        ],
+        'HT' => [
+            'HTG' => [
+                'from' => '1872-08-26T00:00:00',
+            ],
+            'USD' => [
+                'from' => '1915-01-01T00:00:00',
+            ],
+        ],
+        'HU' => [
+            'HUF' => [
+                'from' => '1946-07-23T00:00:00',
+            ],
+        ],
+        'IC' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+        ],
+        'ID' => [
+            'IDR' => [
+                'from' => '1965-12-13T00:00:00',
+            ],
+        ],
+        'IE' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'IEP' => [
+                'from' => '1922-01-01T00:00:00',
+                'to' => '2002-02-09T23:59:59',
+            ],
+            'GBP' => [
+                'from' => '1800-01-01T00:00:00',
+                'to' => '1922-01-01T23:59:59',
+            ],
+        ],
+        'IL' => [
+            'ILS' => [
+                'from' => '1985-09-04T00:00:00',
+            ],
+            'ILR' => [
+                'from' => '1980-02-22T00:00:00',
+                'to' => '1985-09-04T23:59:59',
+            ],
+            'ILP' => [
+                'from' => '1948-08-16T00:00:00',
+                'to' => '1980-02-22T23:59:59',
+            ],
+        ],
+        'IM' => [
+            'GBP' => [
+                'from' => '1840-01-03T00:00:00',
+            ],
+        ],
+        'IN' => [
+            'INR' => [
+                'from' => '1835-08-17T00:00:00',
+            ],
+        ],
+        'IO' => [
+            'USD' => [
+                'from' => '1965-11-08T00:00:00',
+            ],
+        ],
+        'IQ' => [
+            'IQD' => [
+                'from' => '1931-04-19T00:00:00',
+            ],
+            'EGP' => [
+                'from' => '1920-11-11T00:00:00',
+                'to' => '1931-04-19T23:59:59',
+            ],
+            'INR' => [
+                'from' => '1920-11-11T00:00:00',
+                'to' => '1931-04-19T23:59:59',
+            ],
+        ],
+        'IR' => [
+            'IRR' => [
+                'from' => '1932-05-13T00:00:00',
+            ],
+        ],
+        'IS' => [
+            'ISK' => [
+                'from' => '1981-01-01T00:00:00',
+            ],
+            'ISJ' => [
+                'from' => '1918-12-01T00:00:00',
+                'to' => '1981-01-01T23:59:59',
+            ],
+            'DKK' => [
+                'from' => '1873-05-27T00:00:00',
+                'to' => '1918-12-01T23:59:59',
+            ],
+        ],
+        'IT' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'ITL' => [
+                'from' => '1862-08-24T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+        ],
+        'JE' => [
+            'GBP' => [
+                'from' => '1837-01-01T00:00:00',
+            ],
+        ],
+        'JM' => [
+            'JMD' => [
+                'from' => '1969-09-08T00:00:00',
+            ],
+        ],
+        'JO' => [
+            'JOD' => [
+                'from' => '1950-07-01T00:00:00',
+            ],
+        ],
+        'JP' => [
+            'JPY' => [
+                'from' => '1871-06-01T00:00:00',
+            ],
+        ],
+        'KE' => [
+            'KES' => [
+                'from' => '1966-09-14T00:00:00',
+            ],
+        ],
+        'KG' => [
+            'KGS' => [
+                'from' => '1993-05-10T00:00:00',
+            ],
+            'RUR' => [
+                'from' => '1991-12-25T00:00:00',
+                'to' => '1993-05-10T23:59:59',
+            ],
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1991-12-25T23:59:59',
+            ],
+        ],
+        'KH' => [
+            'KHR' => [
+                'from' => '1980-03-20T00:00:00',
+            ],
+        ],
+        'KI' => [
+            'AUD' => [
+                'from' => '1966-02-14T00:00:00',
+            ],
+        ],
+        'KM' => [
+            'KMF' => [
+                'from' => '1975-07-06T00:00:00',
+            ],
+        ],
+        'KN' => [
+            'XCD' => [
+                'from' => '1965-10-06T00:00:00',
+            ],
+        ],
+        'KP' => [
+            'KPW' => [
+                'from' => '1959-04-17T00:00:00',
+            ],
+        ],
+        'KR' => [
+            'KRW' => [
+                'from' => '1962-06-10T00:00:00',
+            ],
+            'KRH' => [
+                'from' => '1953-02-15T00:00:00',
+                'to' => '1962-06-10T23:59:59',
+            ],
+            'KRO' => [
+                'from' => '1945-08-15T00:00:00',
+                'to' => '1953-02-15T23:59:59',
+            ],
+        ],
+        'KW' => [
+            'KWD' => [
+                'from' => '1961-04-01T00:00:00',
+            ],
+        ],
+        'KY' => [
+            'KYD' => [
+                'from' => '1971-01-01T00:00:00',
+            ],
+            'JMD' => [
+                'from' => '1969-09-08T00:00:00',
+                'to' => '1971-01-01T23:59:59',
+            ],
+        ],
+        'KZ' => [
+            'KZT' => [
+                'from' => '1993-11-05T00:00:00',
+            ],
+        ],
+        'LA' => [
+            'LAK' => [
+                'from' => '1979-12-10T00:00:00',
+            ],
+        ],
+        'LB' => [
+            'LBP' => [
+                'from' => '1948-02-02T00:00:00',
+            ],
+        ],
+        'LC' => [
+            'XCD' => [
+                'from' => '1965-10-06T00:00:00',
+            ],
+        ],
+        'LI' => [
+            'CHF' => [
+                'from' => '1921-02-01T00:00:00',
+            ],
+        ],
+        'LK' => [
+            'LKR' => [
+                'from' => '1978-05-22T00:00:00',
+            ],
+        ],
+        'LR' => [
+            'LRD' => [
+                'from' => '1944-01-01T00:00:00',
+            ],
+        ],
+        'LS' => [
+            'ZAR' => [
+                'from' => '1961-02-14T00:00:00',
+            ],
+            'LSL' => [
+                'from' => '1980-01-22T00:00:00',
+            ],
+        ],
+        'LT' => [
+            'EUR' => [
+                'from' => '2015-01-01T00:00:00',
+            ],
+            'LTL' => [
+                'from' => '1993-06-25T00:00:00',
+                'to' => '2014-12-31T23:59:59',
+            ],
+            'LTT' => [
+                'from' => '1992-10-01T00:00:00',
+                'to' => '1993-06-25T23:59:59',
+            ],
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1992-10-01T23:59:59',
+            ],
+        ],
+        'LU' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'LUF' => [
+                'from' => '1944-09-04T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+            'LUC' => [
+                'from' => '1970-01-01T00:00:00',
+                'tender' => false,
+                'to' => '1990-03-05T23:59:59',
+            ],
+            'LUL' => [
+                'from' => '1970-01-01T00:00:00',
+                'tender' => false,
+                'to' => '1990-03-05T23:59:59',
+            ],
+        ],
+        'LV' => [
+            'EUR' => [
+                'from' => '2014-01-01T00:00:00',
+            ],
+            'LVL' => [
+                'from' => '1993-06-28T00:00:00',
+                'to' => '2013-12-31T23:59:59',
+            ],
+            'LVR' => [
+                'from' => '1992-05-07T00:00:00',
+                'to' => '1993-10-17T23:59:59',
+            ],
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1992-07-20T23:59:59',
+            ],
+        ],
+        'LY' => [
+            'LYD' => [
+                'from' => '1971-09-01T00:00:00',
+            ],
+        ],
+        'MA' => [
+            'MAD' => [
+                'from' => '1959-10-17T00:00:00',
+            ],
+            'MAF' => [
+                'from' => '1881-01-01T00:00:00',
+                'to' => '1959-10-17T23:59:59',
+            ],
+        ],
+        'MC' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1960-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+            'MCF' => [
+                'from' => '1960-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+        ],
+        'MD' => [
+            'MDL' => [
+                'from' => '1993-11-29T00:00:00',
+            ],
+            'MDC' => [
+                'from' => '1992-06-01T00:00:00',
+                'to' => '1993-11-29T23:59:59',
+            ],
+        ],
+        'ME' => [
+            'EUR' => [
+                'from' => '2002-01-01T00:00:00',
+            ],
+            'DEM' => [
+                'from' => '1999-10-02T00:00:00',
+                'to' => '2002-05-15T23:59:59',
+            ],
+            'YUM' => [
+                'from' => '1994-01-24T00:00:00',
+                'to' => '2002-05-15T23:59:59',
+            ],
+        ],
+        'MF' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1960-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+        ],
+        'MG' => [
+            'MGA' => [
+                'from' => '1983-11-01T00:00:00',
+            ],
+            'MGF' => [
+                'from' => '1963-07-01T00:00:00',
+                'to' => '2004-12-31T23:59:59',
+            ],
+        ],
+        'MH' => [
+            'USD' => [
+                'from' => '1944-01-01T00:00:00',
+            ],
+        ],
+        'MK' => [
+            'MKD' => [
+                'from' => '1993-05-20T00:00:00',
+            ],
+            'MKN' => [
+                'from' => '1992-04-26T00:00:00',
+                'to' => '1993-05-20T23:59:59',
+            ],
+        ],
+        'ML' => [
+            'XOF' => [
+                'from' => '1958-11-24T00:00:00',
+                'to' => '1962-07-02T23:59:59',
+            ],
+            'MLF' => [
+                'from' => '1962-07-02T00:00:00',
+                'to' => '1984-08-31T23:59:59',
+            ],
+        ],
+        'MM' => [
+            'MMK' => [
+                'from' => '1989-06-18T00:00:00',
+            ],
+            'BUK' => [
+                'from' => '1952-07-01T00:00:00',
+                'to' => '1989-06-18T23:59:59',
+            ],
+        ],
+        'MN' => [
+            'MNT' => [
+                'from' => '1915-03-01T00:00:00',
+            ],
+        ],
+        'MO' => [
+            'MOP' => [
+                'from' => '1901-01-01T00:00:00',
+            ],
+        ],
+        'MP' => [
+            'USD' => [
+                'from' => '1944-01-01T00:00:00',
+            ],
+        ],
+        'MQ' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1960-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+        ],
+        'MR' => [
+            'MRU' => [
+                'from' => '2018-01-01T00:00:00',
+            ],
+            'MRO' => [
+                'from' => '1973-06-29T00:00:00',
+                'to' => '2018-06-30T23:59:59',
+            ],
+            'XOF' => [
+                'from' => '1958-11-28T00:00:00',
+                'to' => '1973-06-29T23:59:59',
+            ],
+        ],
+        'MS' => [
+            'XCD' => [
+                'from' => '1967-02-27T00:00:00',
+            ],
+        ],
+        'MT' => [
+            'EUR' => [
+                'from' => '2008-01-01T00:00:00',
+            ],
+            'MTL' => [
+                'from' => '1968-06-07T00:00:00',
+                'to' => '2008-01-31T23:59:59',
+            ],
+            'MTP' => [
+                'from' => '1914-08-13T00:00:00',
+                'to' => '1968-06-07T23:59:59',
+            ],
+        ],
+        'MU' => [
+            'MUR' => [
+                'from' => '1934-04-01T00:00:00',
+            ],
+        ],
+        'MV' => [
+            'MVR' => [
+                'from' => '1981-07-01T00:00:00',
+            ],
+            'MVP' => [
+                'from' => '1947-01-01T00:00:00',
+                'to' => '1981-07-01T23:59:59',
+            ],
+        ],
+        'MW' => [
+            'MWK' => [
+                'from' => '1971-02-15T00:00:00',
+            ],
+        ],
+        'MX' => [
+            'MXN' => [
+                'from' => '1993-01-01T00:00:00',
+            ],
+            'MXP' => [
+                'from' => '1822-01-01T00:00:00',
+                'to' => '1992-12-31T23:59:59',
+            ],
+            'MXV' => [
+                'tender' => false,
+            ],
+        ],
+        'MY' => [
+            'MYR' => [
+                'from' => '1963-09-16T00:00:00',
+            ],
+        ],
+        'MZ' => [
+            'MZN' => [
+                'from' => '2006-07-01T00:00:00',
+            ],
+            'MZM' => [
+                'from' => '1980-06-16T00:00:00',
+                'to' => '2006-12-31T23:59:59',
+            ],
+            'MZE' => [
+                'from' => '1975-06-25T00:00:00',
+                'to' => '1980-06-16T23:59:59',
+            ],
+        ],
+        'NA' => [
+            'NAD' => [
+                'from' => '1993-01-01T00:00:00',
+            ],
+            'ZAR' => [
+                'from' => '1961-02-14T00:00:00',
+            ],
+        ],
+        'NC' => [
+            'XPF' => [
+                'from' => '1985-01-01T00:00:00',
+            ],
+        ],
+        'NE' => [
+            'XOF' => [
+                'from' => '1958-12-19T00:00:00',
+            ],
+        ],
+        'NF' => [
+            'AUD' => [
+                'from' => '1966-02-14T00:00:00',
+            ],
+        ],
+        'NG' => [
+            'NGN' => [
+                'from' => '1973-01-01T00:00:00',
+            ],
+        ],
+        'NI' => [
+            'NIO' => [
+                'from' => '1991-04-30T00:00:00',
+            ],
+            'NIC' => [
+                'from' => '1988-02-15T00:00:00',
+                'to' => '1991-04-30T23:59:59',
+            ],
+        ],
+        'NL' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'NLG' => [
+                'from' => '1813-01-01T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+        ],
+        'NO' => [
+            'NOK' => [
+                'from' => '1905-06-07T00:00:00',
+            ],
+            'SEK' => [
+                'from' => '1873-05-27T00:00:00',
+                'to' => '1905-06-07T23:59:59',
+            ],
+        ],
+        'NP' => [
+            'NPR' => [
+                'from' => '1933-01-01T00:00:00',
+            ],
+            'INR' => [
+                'from' => '1870-01-01T00:00:00',
+                'to' => '1966-10-17T23:59:59',
+            ],
+        ],
+        'NR' => [
+            'AUD' => [
+                'from' => '1966-02-14T00:00:00',
+            ],
+        ],
+        'NU' => [
+            'NZD' => [
+                'from' => '1967-07-10T00:00:00',
+            ],
+        ],
+        'NZ' => [
+            'NZD' => [
+                'from' => '1967-07-10T00:00:00',
+            ],
+        ],
+        'OM' => [
+            'OMR' => [
+                'from' => '1972-11-11T00:00:00',
+            ],
+        ],
+        'PA' => [
+            'PAB' => [
+                'from' => '1903-11-04T00:00:00',
+            ],
+            'USD' => [
+                'from' => '1903-11-18T00:00:00',
+            ],
+        ],
+        'PE' => [
+            'PEN' => [
+                'from' => '1991-07-01T00:00:00',
+            ],
+            'PEI' => [
+                'from' => '1985-02-01T00:00:00',
+                'to' => '1991-07-01T23:59:59',
+            ],
+            'PES' => [
+                'from' => '1863-02-14T00:00:00',
+                'to' => '1985-02-01T23:59:59',
+            ],
+        ],
+        'PF' => [
+            'XPF' => [
+                'from' => '1945-12-26T00:00:00',
+            ],
+        ],
+        'PG' => [
+            'PGK' => [
+                'from' => '1975-09-16T00:00:00',
+            ],
+            'AUD' => [
+                'from' => '1966-02-14T00:00:00',
+                'to' => '1975-09-16T23:59:59',
+            ],
+        ],
+        'PH' => [
+            'PHP' => [
+                'from' => '1946-07-04T00:00:00',
+            ],
+        ],
+        'PK' => [
+            'PKR' => [
+                'from' => '1948-04-01T00:00:00',
+            ],
+            'INR' => [
+                'from' => '1835-08-17T00:00:00',
+                'to' => '1947-08-15T23:59:59',
+            ],
+        ],
+        'PL' => [
+            'PLN' => [
+                'from' => '1995-01-01T00:00:00',
+            ],
+            'PLZ' => [
+                'from' => '1950-10-28T00:00:00',
+                'to' => '1994-12-31T23:59:59',
+            ],
+        ],
+        'PM' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1972-12-21T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+        ],
+        'PN' => [
+            'NZD' => [
+                'from' => '1969-01-13T00:00:00',
+            ],
+        ],
+        'PR' => [
+            'USD' => [
+                'from' => '1898-12-10T00:00:00',
+            ],
+            'ESP' => [
+                'from' => '1800-01-01T00:00:00',
+                'to' => '1898-12-10T23:59:59',
+            ],
+        ],
+        'PS' => [
+            'ILS' => [
+                'from' => '1985-09-04T00:00:00',
+            ],
+            'JOD' => [
+                'from' => '1950-07-01T00:00:00',
+                'to' => '1967-06-01T23:59:59',
+            ],
+            'ILP' => [
+                'from' => '1967-06-01T00:00:00',
+                'to' => '1980-02-22T23:59:59',
+            ],
+        ],
+        'PT' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'PTE' => [
+                'from' => '1911-05-22T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+        ],
+        'PW' => [
+            'USD' => [
+                'from' => '1944-01-01T00:00:00',
+            ],
+        ],
+        'PY' => [
+            'PYG' => [
+                'from' => '1943-11-01T00:00:00',
+            ],
+        ],
+        'QA' => [
+            'QAR' => [
+                'from' => '1973-05-19T00:00:00',
+            ],
+        ],
+        'RE' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1975-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+        ],
+        'RO' => [
+            'RON' => [
+                'from' => '2005-07-01T00:00:00',
+            ],
+            'ROL' => [
+                'from' => '1952-01-28T00:00:00',
+                'to' => '2006-12-31T23:59:59',
+            ],
+        ],
+        'RS' => [
+            'RSD' => [
+                'from' => '2006-10-25T00:00:00',
+            ],
+            'CSD' => [
+                'from' => '2002-05-15T00:00:00',
+                'to' => '2006-10-25T23:59:59',
+            ],
+            'YUM' => [
+                'from' => '1994-01-24T00:00:00',
+                'to' => '2002-05-15T23:59:59',
+            ],
+        ],
+        'RU' => [
+            'RUB' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'RUR' => [
+                'from' => '1991-12-25T00:00:00',
+                'to' => '1998-12-31T23:59:59',
+            ],
+        ],
+        'RW' => [
+            'RWF' => [
+                'from' => '1964-05-19T00:00:00',
+            ],
+        ],
+        'SA' => [
+            'SAR' => [
+                'from' => '1952-10-22T00:00:00',
+            ],
+        ],
+        'SB' => [
+            'SBD' => [
+                'from' => '1977-10-24T00:00:00',
+            ],
+            'AUD' => [
+                'from' => '1966-02-14T00:00:00',
+                'to' => '1978-06-30T23:59:59',
+            ],
+        ],
+        'SC' => [
+            'SCR' => [
+                'from' => '1903-11-01T00:00:00',
+            ],
+        ],
+        'SD' => [
+            'SDG' => [
+                'from' => '2007-01-10T00:00:00',
+            ],
+            'SDD' => [
+                'from' => '1992-06-08T00:00:00',
+                'to' => '2007-06-30T23:59:59',
+            ],
+            'SDP' => [
+                'from' => '1957-04-08T00:00:00',
+                'to' => '1998-06-01T23:59:59',
+            ],
+            'EGP' => [
+                'from' => '1889-01-19T00:00:00',
+                'to' => '1958-01-01T23:59:59',
+            ],
+            'GBP' => [
+                'from' => '1889-01-19T00:00:00',
+                'to' => '1958-01-01T23:59:59',
+            ],
+        ],
+        'SE' => [
+            'SEK' => [
+                'from' => '1873-05-27T00:00:00',
+            ],
+        ],
+        'SG' => [
+            'SGD' => [
+                'from' => '1967-06-12T00:00:00',
+            ],
+            'MYR' => [
+                'from' => '1963-09-16T00:00:00',
+                'to' => '1967-06-12T23:59:59',
+            ],
+        ],
+        'SH' => [
+            'SHP' => [
+                'from' => '1917-02-15T00:00:00',
+            ],
+        ],
+        'SI' => [
+            'EUR' => [
+                'from' => '2007-01-01T00:00:00',
+            ],
+            'SIT' => [
+                'from' => '1992-10-07T00:00:00',
+                'to' => '2007-01-14T23:59:59',
+            ],
+        ],
+        'SJ' => [
+            'NOK' => [
+                'from' => '1905-06-07T00:00:00',
+            ],
+        ],
+        'SK' => [
+            'EUR' => [
+                'from' => '2009-01-01T00:00:00',
+            ],
+            'SKK' => [
+                'from' => '1992-12-31T00:00:00',
+                'to' => '2009-01-01T23:59:59',
+            ],
+            'CSK' => [
+                'from' => '1953-06-01T00:00:00',
+                'to' => '1992-12-31T23:59:59',
+            ],
+        ],
+        'SL' => [
+            'SLE' => [
+                'from' => '2022-07-01T00:00:00',
+            ],
+            'SLL' => [
+                'from' => '1964-08-04T00:00:00',
+                'to' => '2023-12-31T23:59:59',
+            ],
+            'GBP' => [
+                'from' => '1808-11-30T00:00:00',
+                'to' => '1966-02-04T23:59:59',
+            ],
+        ],
+        'SM' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'ITL' => [
+                'from' => '1865-12-23T00:00:00',
+                'to' => '2001-02-28T23:59:59',
+            ],
+        ],
+        'SN' => [
+            'XOF' => [
+                'from' => '1959-04-04T00:00:00',
+            ],
+        ],
+        'SO' => [
+            'SOS' => [
+                'from' => '1960-07-01T00:00:00',
+            ],
+        ],
+        'SR' => [
+            'SRD' => [
+                'from' => '2004-01-01T00:00:00',
+            ],
+            'SRG' => [
+                'from' => '1940-05-10T00:00:00',
+                'to' => '2003-12-31T23:59:59',
+            ],
+            'NLG' => [
+                'from' => '1815-11-20T00:00:00',
+                'to' => '1940-05-10T23:59:59',
+            ],
+        ],
+        'SS' => [
+            'SSP' => [
+                'from' => '2011-07-18T00:00:00',
+            ],
+            'SDG' => [
+                'from' => '2007-01-10T00:00:00',
+                'to' => '2011-09-01T23:59:59',
+            ],
+        ],
+        'ST' => [
+            'STN' => [
+                'from' => '2018-01-01T00:00:00',
+            ],
+            'STD' => [
+                'from' => '1977-09-08T00:00:00',
+                'to' => '2017-12-31T23:59:59',
+            ],
+        ],
+        'SU' => [
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1991-12-25T23:59:59',
+            ],
+        ],
+        'SV' => [
+            'USD' => [
+                'from' => '2001-01-01T00:00:00',
+            ],
+            'SVC' => [
+                'from' => '1919-11-11T00:00:00',
+                'to' => '2001-01-01T23:59:59',
+            ],
+        ],
+        'SX' => [
+            'XCG' => [
+                'from' => '2025-03-31T04:00:00',
+            ],
+            'ANG' => [
+                'from' => '2010-10-10T00:00:00',
+                'to' => '2025-07-01T03:59:59',
+            ],
+        ],
+        'SY' => [
+            'SYP' => [
+                'from' => '1948-01-01T00:00:00',
+            ],
+        ],
+        'SZ' => [
+            'SZL' => [
+                'from' => '1974-09-06T00:00:00',
+            ],
+        ],
+        'TA' => [
+            'GBP' => [
+                'from' => '1938-01-12T00:00:00',
+            ],
+        ],
+        'TC' => [
+            'USD' => [
+                'from' => '1969-09-08T00:00:00',
+            ],
+        ],
+        'TD' => [
+            'XAF' => [
+                'from' => '1993-01-01T00:00:00',
+            ],
+        ],
+        'TF' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1959-01-01T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+        ],
+        'TG' => [
+            'XOF' => [
+                'from' => '1958-11-28T00:00:00',
+            ],
+        ],
+        'TH' => [
+            'THB' => [
+                'from' => '1928-04-15T00:00:00',
+            ],
+        ],
+        'TJ' => [
+            'TJS' => [
+                'from' => '2000-10-26T00:00:00',
+            ],
+            'TJR' => [
+                'from' => '1995-05-10T00:00:00',
+                'to' => '2000-10-25T23:59:59',
+            ],
+            'RUR' => [
+                'from' => '1991-12-25T00:00:00',
+                'to' => '1995-05-10T23:59:59',
+            ],
+        ],
+        'TK' => [
+            'NZD' => [
+                'from' => '1967-07-10T00:00:00',
+            ],
+        ],
+        'TL' => [
+            'USD' => [
+                'from' => '1999-10-20T00:00:00',
+            ],
+            'TPE' => [
+                'from' => '1959-01-02T00:00:00',
+                'to' => '2002-05-20T23:59:59',
+            ],
+            'IDR' => [
+                'from' => '1975-12-07T00:00:00',
+                'to' => '2002-05-20T23:59:59',
+            ],
+        ],
+        'TM' => [
+            'TMT' => [
+                'from' => '2009-01-01T00:00:00',
+            ],
+            'TMM' => [
+                'from' => '1993-11-01T00:00:00',
+                'to' => '2009-01-01T23:59:59',
+            ],
+            'RUR' => [
+                'from' => '1991-12-25T00:00:00',
+                'to' => '1993-11-01T23:59:59',
+            ],
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1991-12-25T23:59:59',
+            ],
+        ],
+        'TN' => [
+            'TND' => [
+                'from' => '1958-11-01T00:00:00',
+            ],
+        ],
+        'TO' => [
+            'TOP' => [
+                'from' => '1966-02-14T00:00:00',
+            ],
+        ],
+        'TP' => [
+            'TPE' => [
+                'from' => '1959-01-02T00:00:00',
+                'to' => '2002-05-20T23:59:59',
+            ],
+            'IDR' => [
+                'from' => '1975-12-07T00:00:00',
+                'to' => '2002-05-20T23:59:59',
+            ],
+        ],
+        'TR' => [
+            'TRY' => [
+                'from' => '2005-01-01T00:00:00',
+            ],
+            'TRL' => [
+                'from' => '1922-11-01T00:00:00',
+                'to' => '2005-12-31T23:59:59',
+            ],
+        ],
+        'TT' => [
+            'TTD' => [
+                'from' => '1964-01-01T00:00:00',
+            ],
+        ],
+        'TV' => [
+            'AUD' => [
+                'from' => '1966-02-14T00:00:00',
+            ],
+        ],
+        'TW' => [
+            'TWD' => [
+                'from' => '1949-06-15T00:00:00',
+            ],
+        ],
+        'TZ' => [
+            'TZS' => [
+                'from' => '1966-06-14T00:00:00',
+            ],
+        ],
+        'UA' => [
+            'UAH' => [
+                'from' => '1996-09-02T00:00:00',
+            ],
+            'UAK' => [
+                'from' => '1992-11-13T00:00:00',
+                'to' => '1993-10-17T23:59:59',
+            ],
+            'RUR' => [
+                'from' => '1991-12-25T00:00:00',
+                'to' => '1992-11-13T23:59:59',
+            ],
+            'SUR' => [
+                'from' => '1961-01-01T00:00:00',
+                'to' => '1991-12-25T23:59:59',
+            ],
+        ],
+        'UG' => [
+            'UGX' => [
+                'from' => '1987-05-15T00:00:00',
+            ],
+            'UGS' => [
+                'from' => '1966-08-15T00:00:00',
+                'to' => '1987-05-15T23:59:59',
+            ],
+        ],
+        'UM' => [
+            'USD' => [
+                'from' => '1944-01-01T00:00:00',
+            ],
+        ],
+        'US' => [
+            'USD' => [
+                'from' => '1792-01-01T00:00:00',
+            ],
+            'USN' => [
+                'tender' => false,
+            ],
+            'USS' => [
+                'tender' => false,
+                'to' => '2014-03-01T23:59:59',
+            ],
+        ],
+        'UY' => [
+            'UYU' => [
+                'from' => '1993-03-01T00:00:00',
+            ],
+            'UYP' => [
+                'from' => '1975-07-01T00:00:00',
+                'to' => '1993-03-01T23:59:59',
+            ],
+            'UYI' => [
+                'tender' => false,
+            ],
+            'UYW' => [
+                'tender' => false,
+            ],
+        ],
+        'UZ' => [
+            'UZS' => [
+                'from' => '1994-07-01T00:00:00',
+            ],
+        ],
+        'VA' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'ITL' => [
+                'from' => '1870-10-19T00:00:00',
+                'to' => '2002-02-28T23:59:59',
+            ],
+        ],
+        'VC' => [
+            'XCD' => [
+                'from' => '1965-10-06T00:00:00',
+            ],
+        ],
+        'VE' => [
+            'VES' => [
+                'from' => '2018-08-20T00:00:00',
+            ],
+            'VEF' => [
+                'from' => '2008-01-01T00:00:00',
+                'to' => '2018-08-20T23:59:59',
+            ],
+            'VEB' => [
+                'from' => '1871-05-11T00:00:00',
+                'to' => '2008-06-30T23:59:59',
+            ],
+            'VED' => [
+                'tender' => false,
+            ],
+        ],
+        'VG' => [
+            'USD' => [
+                'from' => '1833-01-01T00:00:00',
+            ],
+            'GBP' => [
+                'from' => '1833-01-01T00:00:00',
+                'to' => '1959-01-01T23:59:59',
+            ],
+        ],
+        'VI' => [
+            'USD' => [
+                'from' => '1837-01-01T00:00:00',
+            ],
+        ],
+        'VN' => [
+            'VND' => [
+                'from' => '1985-09-14T00:00:00',
+            ],
+            'VNN' => [
+                'from' => '1978-05-03T00:00:00',
+                'to' => '1985-09-14T23:59:59',
+            ],
+        ],
+        'VU' => [
+            'VUV' => [
+                'from' => '1981-01-01T00:00:00',
+            ],
+        ],
+        'WF' => [
+            'XPF' => [
+                'from' => '1961-07-30T00:00:00',
+            ],
+        ],
+        'WS' => [
+            'WST' => [
+                'from' => '1967-07-10T00:00:00',
+            ],
+        ],
+        'XK' => [
+            'EUR' => [
+                'from' => '2002-01-01T00:00:00',
+            ],
+            'DEM' => [
+                'from' => '1999-09-01T00:00:00',
+                'to' => '2002-03-09T23:59:59',
+            ],
+            'YUM' => [
+                'from' => '1994-01-24T00:00:00',
+                'to' => '1999-09-30T23:59:59',
+            ],
+        ],
+        'YD' => [
+            'YDD' => [
+                'from' => '1965-04-01T00:00:00',
+                'to' => '1996-01-01T23:59:59',
+            ],
+        ],
+        'YE' => [
+            'YER' => [
+                'from' => '1990-05-22T00:00:00',
+            ],
+        ],
+        'YT' => [
+            'EUR' => [
+                'from' => '1999-01-01T00:00:00',
+            ],
+            'FRF' => [
+                'from' => '1976-02-23T00:00:00',
+                'to' => '2002-02-17T23:59:59',
+            ],
+            'KMF' => [
+                'from' => '1975-01-01T00:00:00',
+                'to' => '1976-02-23T23:59:59',
+            ],
+        ],
+        'YU' => [
+            'YUM' => [
+                'from' => '1994-01-24T00:00:00',
+                'to' => '2002-05-15T23:59:59',
+            ],
+            'YUN' => [
+                'from' => '1990-01-01T00:00:00',
+                'to' => '1992-07-24T23:59:59',
+            ],
+            'YUD' => [
+                'from' => '1966-01-01T00:00:00',
+                'to' => '1990-01-01T23:59:59',
+            ],
+        ],
+        'ZA' => [
+            'ZAR' => [
+                'from' => '1961-02-14T00:00:00',
+            ],
+            'ZAL' => [
+                'from' => '1985-09-01T00:00:00',
+                'tender' => false,
+                'to' => '1995-03-13T23:59:59',
+            ],
+        ],
+        'ZM' => [
+            'ZMW' => [
+                'from' => '2013-01-01T00:00:00',
+            ],
+            'ZMK' => [
+                'from' => '1968-01-16T00:00:00',
+                'to' => '2013-01-01T23:59:59',
+            ],
+        ],
+        'ZR' => [
+            'ZRN' => [
+                'from' => '1993-11-01T00:00:00',
+                'to' => '1998-07-31T23:59:59',
+            ],
+            'ZRZ' => [
+                'from' => '1971-10-27T00:00:00',
+                'to' => '1993-11-01T23:59:59',
+            ],
+        ],
+        'ZW' => [
+            'ZWG' => [
+                'from' => '2024-06-25T00:00:00',
+            ],
+            'USD' => [
+                'from' => '2009-04-12T00:00:00',
+            ],
+            'ZWL' => [
+                'from' => '2009-02-02T00:00:00',
+                'to' => '2024-08-31T23:59:59',
+            ],
+            'ZWR' => [
+                'from' => '2008-08-01T00:00:00',
+                'to' => '2009-02-02T23:59:59',
+            ],
+            'ZWD' => [
+                'from' => '1980-04-18T00:00:00',
+                'to' => '2008-08-01T23:59:59',
+            ],
+            'RHD' => [
+                'from' => '1970-02-17T00:00:00',
+                'to' => '1980-04-18T23:59:59',
+            ],
+        ],
+        'ZZ' => [
+            'XAD' => [
+                'from' => '2025-05-12T00:00:00',
+                'tender' => false,
+            ],
+            'XFO' => [
+                'from' => '1930-01-01T00:00:00',
+                'tender' => false,
+                'to' => '2003-04-01T23:59:59',
+            ],
+            'XFU' => [
+                'tender' => false,
+                'to' => '2013-11-30T23:59:59',
+            ],
+            'XRE' => [
+                'tender' => false,
+                'to' => '1999-11-30T23:59:59',
+            ],
+        ],
+    ],
     'Alpha3ToNumeric' => [
         'AFA' => 4,
         'ALK' => 8,
@@ -873,6 +3118,7 @@
         'NPR' => 524,
         'NLG' => 528,
         'ANG' => 532,
+        'XCG' => 532,
         'AWG' => 533,
         'VUV' => 548,
         'NZD' => 554,
@@ -1375,6 +3621,7 @@
         ],
         532 => [
             'ANG',
+            'XCG',
         ],
         [
             'AWG',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mi.php	2026-05-20 10:56:49.000000000 +0200
@@ -610,6 +610,10 @@
             'EC$',
             'Tāra Karapīana Rāwhiti',
         ],
+        'XCG' => [
+            'Cg.',
+            'Guilder Karapīana',
+        ],
         'XOF' => [
             'F CFA',
             'Franc CFA Āwherika ki te Uru',
@@ -630,5 +634,9 @@
             'ZMW',
             'Kwacha Tāmipia',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Kōura Timuwawe',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mk.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,7 @@
         ],
         'AFN' => [
             'AFN',
-            'Авганистански авгани',
+            'Авганистански авган',
         ],
         'ALL' => [
             'ALL',
@@ -28,7 +28,7 @@
         ],
         'ANG' => [
             'ANG',
-            'Холандски антилски гилдер',
+            'Холандски антилски гулден',
         ],
         'AOA' => [
             'AOA',
@@ -360,7 +360,7 @@
         ],
         'IRR' => [
             'IRR',
-            'Ирански риал',
+            'Ирански ријал',
         ],
         'ISK' => [
             'ISK',
@@ -488,7 +488,7 @@
         ],
         'MMK' => [
             'MMK',
-            'Мјанмарски киат',
+            'Мјанмарски кјат',
         ],
         'MNT' => [
             'MNT',
@@ -584,7 +584,7 @@
         ],
         'OMR' => [
             'OMR',
-            'Омански риал',
+            'Омански ријал',
         ],
         'PAB' => [
             'PAB',
@@ -600,7 +600,7 @@
         ],
         'PGK' => [
             'PGK',
-            'Папуа новогвинејска кина',
+            'Папуанска кина',
         ],
         'PHP' => [
             'PHP',
@@ -628,7 +628,7 @@
         ],
         'QAR' => [
             'QAR',
-            'Катарски риал',
+            'Катарски ријал',
         ],
         'ROL' => [
             'ROL',
@@ -852,7 +852,7 @@
         ],
         'VUV' => [
             'VUV',
-            'Ванатски вату',
+            'Вануатски вату',
         ],
         'WST' => [
             'WST',
@@ -866,6 +866,10 @@
             'EC$',
             'Источнокарипски долар',
         ],
+        'XCG' => [
+            'Cg.',
+            'Карипски гулден',
+        ],
         'XOF' => [
             'F CFA',
             'Западноафрикански франк',
@@ -880,7 +884,7 @@
         ],
         'YER' => [
             'YER',
-            'Јеменски риал',
+            'Јеменски ријал',
         ],
         'YUD' => [
             'YUD',
@@ -918,5 +922,9 @@
             'ZWD',
             'Зимбабвиски долар',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Зимбабвеско злато',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ml.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ml.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ml.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ml.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
         ],
         'ARS' => [
             'ARS',
-            'അർജൻറീൻ പെസോ',
+            'അർജന്റീൻ പെസോ',
         ],
         'ATS' => [
             'ATS',
@@ -1002,6 +1002,10 @@
             'EC$',
             'കിഴക്കൻ കരീബിയൻ ഡോളർ',
         ],
+        'XCG' => [
+            'Cg.',
+            'കരീബിയൻ ഗിൽഡർ',
+        ],
         'XEU' => [
             'XEU',
             'യൂറോപ്യൻ നാണയ യൂണിറ്റ്',
@@ -1074,5 +1078,9 @@
             'ZWD',
             'സിംബാബ്‌വെ ഡോളർ',
         ],
+        'ZWG' => [
+            'ZWG',
+            'സിംബാബ്‌വെയൻ ഗോൾഡ്',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mn.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'Зүүн Карибийн доллар',
         ],
+        'XCG' => [
+            'Cg.',
+            'Карибын гулдер',
+        ],
         'XOF' => [
             'F CFA',
             'Баруун Африкийн франк',
@@ -658,5 +662,9 @@
             'ZMW',
             'Замбийн квача',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Зимбабвегийн гоулд',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mo.php	2026-05-20 10:56:49.000000000 +0200
@@ -894,6 +894,10 @@
             'XCD',
             'dolar est-caraib',
         ],
+        'XCG' => [
+            'Cg.',
+            'gulden caraib',
+        ],
         'XEU' => [
             'XEU',
             'unitate de monedă europeană',
@@ -958,6 +962,10 @@
             'ZWD',
             'dolar Zimbabwe (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwe Gold',
+        ],
         'ZWL' => [
             'ZWL',
             'dolar Zimbabwe (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/mr.php	2026-05-20 10:56:49.000000000 +0200
@@ -312,7 +312,7 @@
         ],
         'KYD' => [
             'KYD',
-            'केमेन आयलॅंड डॉलर',
+            'केमन आयलंड डॉलर',
         ],
         'KZT' => [
             'KZT',
@@ -634,6 +634,10 @@
             'EC$',
             'पूर्व कॅरीबियन डॉलर',
         ],
+        'XCG' => [
+            'Cg.',
+            'कॅरेबियब गिल्डर',
+        ],
         'XOF' => [
             'F CFA',
             'पश्चिम आफ्रिकन [CFA] फ्रँक',
@@ -658,5 +662,9 @@
             'ZMW',
             'झांबियन क्वाचा',
         ],
+        'ZWG' => [
+            'ZWG',
+            'झिंबाब्वेयन गोल्ड',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ms.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ms.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ms.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ms.php	2026-05-20 10:56:49.000000000 +0200
@@ -372,7 +372,7 @@
         ],
         'MMK' => [
             'MMK',
-            'Kyat Myanma',
+            'Kyat Myanmar',
         ],
         'MNT' => [
             'MNT',
@@ -654,6 +654,10 @@
             'EC$',
             'Dolar Caribbean Timur',
         ],
+        'XCG' => [
+            'Cg.',
+            'Guilder Caribbean',
+        ],
         'XOF' => [
             'F CFA',
             'Franc CFA BCEAO',
@@ -682,6 +686,10 @@
             'ZWD',
             'Dolar Zimbabwe (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Emas Zimbabwe',
+        ],
         'ZWL' => [
             'ZWL',
             'Dolar Zimbabwe (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/my.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/my.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/my.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/my.php	2026-05-20 10:56:49.000000000 +0200
@@ -698,6 +698,10 @@
             'EC$',
             'အရှေ့ကာရစ်ဘီယံ ဒေါ်လာ',
         ],
+        'XCG' => [
+            'Cg.',
+            'ကာရစ်ဘီယံ ဂင်းဒါး',
+        ],
         'XOF' => [
             'F CFA',
             'အနောက် အာဖရိက [CFA ]ဖရန့်',
@@ -722,5 +726,9 @@
             'ZWD',
             'ဇင်ဘာဘွေ ဒေါ်လာ',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ဇင်ဘာဘွေ ရွှေ',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ne.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ne.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ne.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ne.php	2026-05-20 10:56:49.000000000 +0200
@@ -638,6 +638,10 @@
             'EC$',
             'पूर्वी क्यारिबियन डलर',
         ],
+        'XCG' => [
+            'Cg.',
+            'क्यारिबियन गिल्डर',
+        ],
         'XOF' => [
             'F CFA',
             'सीएफ्‌ए फ्रान्क बीसीइएओ',
@@ -662,5 +666,9 @@
             'ZMW',
             'जाम्बियाली क्वाचा',
         ],
+        'ZWG' => [
+            'ZWG',
+            'जिम्बाबेली सुन',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/nl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/nl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/nl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/nl.php	2026-05-20 10:56:49.000000000 +0200
@@ -1166,6 +1166,10 @@
             'ZWD',
             'Zimbabwaanse dollar',
         ],
+        'ZWG' => [
+            'ZiG',
+            'Zimbabwe Gold',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabwaanse dollar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/no_NO.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/no_NO.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/no_NO.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/no_NO.php	2026-05-20 10:56:49.000000000 +0200
@@ -1078,6 +1078,10 @@
             'XCD',
             'østkaribiske dollar',
         ],
+        'XCG' => [
+            'Cg.',
+            'karibiske gylden',
+        ],
         'XEU' => [
             'XEU',
             'europeisk valutaenhet',
@@ -1154,6 +1158,10 @@
             'ZWD',
             'zimbabwiske dollar (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabwiske gull',
+        ],
         'ZWL' => [
             'ZWL',
             'zimbabwisk dollar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/no.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/no.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/no.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/no.php	2026-05-20 10:56:49.000000000 +0200
@@ -1078,6 +1078,10 @@
             'XCD',
             'østkaribiske dollar',
         ],
+        'XCG' => [
+            'Cg.',
+            'karibiske gylden',
+        ],
         'XEU' => [
             'XEU',
             'europeisk valutaenhet',
@@ -1154,6 +1158,10 @@
             'ZWD',
             'zimbabwiske dollar (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabwiske gull',
+        ],
         'ZWL' => [
             'ZWL',
             'zimbabwisk dollar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/or.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/or.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/or.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/or.php	2026-05-20 10:56:49.000000000 +0200
@@ -622,6 +622,10 @@
             'EC$',
             'ପୂର୍ବ କାରିବୀୟ ଡଲାର୍',
         ],
+        'XCG' => [
+            'Cg.',
+            'କ‍୍ୟାରବିଅନ୍‌ ଗିଲ୍ଡର୍‌',
+        ],
         'XOF' => [
             'F CFA',
             'ପଶ୍ଚିମ ଆଫ୍ରିକିୟ CFA ଫ୍ରାଙ୍କ୍',
@@ -642,5 +646,9 @@
             'ZMW',
             'ଜାମ୍ବୀୟ କ୍ୱାଚା',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ଜିମ୍ବାୱିଅନ୍‌ ଗୋଲ୍ଡ୍‌',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pa.php	2026-05-20 10:56:49.000000000 +0200
@@ -714,6 +714,10 @@
             'EC$',
             'ਪੂਰਬੀ ਕੈਰੇਬੀਅਨ ਡਾਲਰ',
         ],
+        'XCG' => [
+            'Cg.',
+            'ਕੈਰੇਬੀਅਨ ਗਿਲਡਰ',
+        ],
         'XEU' => [
             'XEU',
             'ਯੂਰਪੀ ਮੁਦਰਾ ਇਕਾਈ',
@@ -738,5 +742,9 @@
             'ZMW',
             'ਜ਼ਾਮਬੀਆਈ ਕਵਾਚਾ',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ਜ਼ਿੰਬਾਬਵੀ ਗੋਲਡ',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pl.php	2026-05-20 10:56:49.000000000 +0200
@@ -808,7 +808,7 @@
         ],
         'SLL' => [
             'SLL',
-            'leone sierraleoński (1964—2022)',
+            'leone sierraleoński (1964–2022)',
         ],
         'SOS' => [
             'SOS',
@@ -966,6 +966,10 @@
             'EC$',
             'dolar wschodniokaraibski',
         ],
+        'XCG' => [
+            'XCG',
+            'gulden karaibski',
+        ],
         'XEU' => [
             'XEU',
             'ECU',
@@ -1030,6 +1034,10 @@
             'ZWD',
             'dolar Zimbabwe (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'złoto Zimbabwe',
+        ],
         'ZWL' => [
             'ZWL',
             'dolar Zimbabwe (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ps.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ps.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ps.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ps.php	2026-05-20 10:56:49.000000000 +0200
@@ -614,6 +614,10 @@
             'EC$',
             'ختيځ کربين ډالر',
         ],
+        'XCG' => [
+            'Cg.',
+            'د کارابین ګیلډر',
+        ],
         'XOF' => [
             'F CFA',
             'ختيځ افريقايي CFA فرانک',
@@ -634,5 +638,9 @@
             'ZMW',
             'زيمبي کواچا',
         ],
+        'ZWG' => [
+            'ZWG',
+            'د زمبابوې سره زر',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pt.php	2026-05-20 10:56:49.000000000 +0200
@@ -1074,6 +1074,10 @@
             'EC$',
             'Dólar do Caribe Oriental',
         ],
+        'XCG' => [
+            'Cg.',
+            'Florim do Caribe',
+        ],
         'XEU' => [
             'XEU',
             'Unidade de Moeda Europeia',
@@ -1150,6 +1154,10 @@
             'ZWD',
             'Dólar do Zimbábue (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Ouro zimbabueano',
+        ],
         'ZWL' => [
             'ZWL',
             'Dólar do Zimbábue (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pt_PT.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pt_PT.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pt_PT.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/pt_PT.php	2026-05-20 10:56:49.000000000 +0200
@@ -666,6 +666,10 @@
             'EC$',
             'dólar das Caraíbas Orientais',
         ],
+        'XCG' => [
+            'Cg.',
+            'florim caribenho',
+        ],
         'XOF' => [
             'F CFA',
             'franco CFA (BCEAO)',
@@ -690,5 +694,9 @@
             'ZMW',
             'kwacha zambiano',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ouro zimbabuense',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/qu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/qu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/qu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/qu.php	2026-05-20 10:56:49.000000000 +0200
@@ -610,6 +610,10 @@
             'EC$',
             'Dólar del Caribe Oriental',
         ],
+        'XCG' => [
+            'Cg.',
+            'Caribe guilderkuna',
+        ],
         'XOF' => [
             'F CFA',
             'Franco CFA de África Occidental',
@@ -630,5 +634,9 @@
             'ZMW',
             'Kwacha Zambiano',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabuemanta quri',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/rm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/rm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/rm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/rm.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
         ],
         'AMD' => [
             'AMD',
-            'dram armen',
+            'dram da l’Armenia',
         ],
         'ANG' => [
             'ANG',
@@ -108,7 +108,7 @@
         ],
         'BDT' => [
             'BDT',
-            'taka bangladais',
+            'taka dal Bangladesch',
         ],
         'BEC' => [
             'BEC',
@@ -204,7 +204,7 @@
         ],
         'BTN' => [
             'BTN',
-            'ngultrum butanais',
+            'ngultrum dal Butan',
         ],
         'BUK' => [
             'BUK',
@@ -212,7 +212,7 @@
         ],
         'BWP' => [
             'BWP',
-            'pula da la Botswana',
+            'pula da la Botsuana',
         ],
         'BYB' => [
             'BYB',
@@ -280,7 +280,7 @@
         ],
         'CRC' => [
             'CRC',
-            'colon da la Costa Rica',
+            'colón da la Costa Rica',
         ],
         'CSD' => [
             'CSD',
@@ -308,7 +308,7 @@
         ],
         'CZK' => [
             'CZK',
-            'cruna tscheca',
+            'curuna tscheca',
         ],
         'DDM' => [
             'DDM',
@@ -324,7 +324,7 @@
         ],
         'DKK' => [
             'DKK',
-            'cruna danaisa',
+            'curuna danaisa',
         ],
         'DOP' => [
             'DOP',
@@ -352,7 +352,7 @@
         ],
         'ERN' => [
             'ERN',
-            'nakfa eritreic',
+            'nakfa da l’Eritrea',
         ],
         'ESA' => [
             'ESA',
@@ -392,7 +392,7 @@
         ],
         'GBP' => [
             '£',
-            'glivra britannica',
+            'glivra sterlina',
         ],
         'GEK' => [
             'GEK',
@@ -416,7 +416,7 @@
         ],
         'GMD' => [
             'GMD',
-            'dalasi gambic',
+            'dalasi da la Gambia',
         ],
         'GNF' => [
             'GNF',
@@ -456,7 +456,7 @@
         ],
         'HNL' => [
             'HNL',
-            'lempira hondurian',
+            'lempira honduriana',
         ],
         'HRD' => [
             'HRD',
@@ -492,7 +492,7 @@
         ],
         'ILS' => [
             '₪',
-            'nov schekel israelian',
+            'nov shekel israelian',
         ],
         'INR' => [
             '₹',
@@ -512,7 +512,7 @@
         ],
         'ISK' => [
             'ISK',
-            'cruna islandaisa',
+            'curuna islandaisa',
         ],
         'ITL' => [
             'ITL',
@@ -536,7 +536,7 @@
         ],
         'KGS' => [
             'KGS',
-            'som kirgis',
+            'som kirghis',
         ],
         'KHR' => [
             'KHR',
@@ -544,7 +544,7 @@
         ],
         'KMF' => [
             'KMF',
-            'franc comorian',
+            'franc da las Comoras',
         ],
         'KPW' => [
             'KPW',
@@ -676,7 +676,7 @@
         ],
         'MOP' => [
             'MOP',
-            'pataca dal Macao',
+            'pataca da Macao',
         ],
         'MRO' => [
             'MRO',
@@ -740,7 +740,7 @@
         ],
         'NAD' => [
             'NAD',
-            'dollar namibian',
+            'dollar da la Namibia',
         ],
         'NGN' => [
             'NGN',
@@ -760,7 +760,7 @@
         ],
         'NOK' => [
             'NOK',
-            'cruna norvegiaisa',
+            'curuna norvegiaisa',
         ],
         'NPR' => [
             'NPR',
@@ -804,7 +804,7 @@
         ],
         'PLN' => [
             'PLN',
-            'zloty polac',
+            'zloti polac',
         ],
         'PLZ' => [
             'PLZ',
@@ -820,7 +820,7 @@
         ],
         'QAR' => [
             'QAR',
-            'rial da Katar',
+            'riyal dal Qatar',
         ],
         'RHD' => [
             'RHD',
@@ -876,11 +876,11 @@
         ],
         'SEK' => [
             'SEK',
-            'cruna svedaisa',
+            'curuna svedaisa',
         ],
         'SGD' => [
             'SGD',
-            'dollar dal Singapur',
+            'dollar da Singapur',
         ],
         'SHP' => [
             'SHP',
@@ -900,7 +900,7 @@
         ],
         'SLL' => [
             'SLL',
-            'leone da la Sierra Leone (1964—2022)',
+            'leone da la Sierra Leone (1964–2022)',
         ],
         'SOS' => [
             'SOS',
@@ -908,7 +908,7 @@
         ],
         'SRD' => [
             'SRD',
-            'dollar surinam',
+            'dollar dal Surinam',
         ],
         'SRG' => [
             'SRG',
@@ -924,7 +924,7 @@
         ],
         'STN' => [
             'STN',
-            'dobra da São Tomé e Principe',
+            'dobra da São Tomé e Príncipe',
         ],
         'SUR' => [
             'SUR',
@@ -940,7 +940,7 @@
         ],
         'SZL' => [
             'SZL',
-            'lilangeni dal Swaziland',
+            'lilangeni dal Swasiland',
         ],
         'THB' => [
             'THB',
@@ -968,7 +968,7 @@
         ],
         'TOP' => [
             'TOP',
-            'paʻanga da Tonga',
+            'paʻanga dal Tonga',
         ],
         'TPE' => [
             'TPE',
@@ -992,7 +992,7 @@
         ],
         'TZS' => [
             'TZS',
-            'schilling tansanian',
+            'schilling da la Tansania',
         ],
         'UAH' => [
             'UAH',
@@ -1032,7 +1032,7 @@
         ],
         'UYU' => [
             'UYU',
-            'peso da l’Uruguay',
+            'peso uruguaian',
         ],
         'UZS' => [
             'UZS',
@@ -1048,7 +1048,7 @@
         ],
         'VES' => [
             'VES',
-            'bolívar venezuelan',
+            'bolívar venezolan',
         ],
         'VND' => [
             '₫',
@@ -1074,6 +1074,10 @@
             'EC$',
             'dollar da la Caribica Orientala',
         ],
+        'XCG' => [
+            'Cg.',
+            'flurin caribic',
+        ],
         'XFO' => [
             'XFO',
             'franc d’aur franzos',
@@ -1132,7 +1136,7 @@
         ],
         'ZMW' => [
             'ZMW',
-            'kwacha da la sambia',
+            'kwacha da la Sambia',
         ],
         'ZRN' => [
             'ZRN',
@@ -1146,6 +1150,10 @@
             'ZWD',
             'dollar dal Simbabwe (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'aur dal Simbabwe',
+        ],
         'ZWL' => [
             'ZWL',
             'dollar dal Simbabwe (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ro.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ro.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ro.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ro.php	2026-05-20 10:56:49.000000000 +0200
@@ -894,6 +894,10 @@
             'XCD',
             'dolar est-caraib',
         ],
+        'XCG' => [
+            'Cg.',
+            'gulden caraib',
+        ],
         'XEU' => [
             'XEU',
             'unitate de monedă europeană',
@@ -958,6 +962,10 @@
             'ZWD',
             'dolar Zimbabwe (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwe Gold',
+        ],
         'ZWL' => [
             'ZWL',
             'dolar Zimbabwe (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ru.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ru.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ru.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ru.php	2026-05-20 10:56:49.000000000 +0200
@@ -1002,6 +1002,10 @@
             'EC$',
             'восточно-карибский доллар',
         ],
+        'XCG' => [
+            'Cg',
+            'карибский гульден',
+        ],
         'XEU' => [
             'XEU',
             'ЭКЮ (единица европейской валюты)',
@@ -1074,6 +1078,10 @@
             'ZWD',
             'Доллар Зимбабве',
         ],
+        'ZWG' => [
+            'ZWG',
+            'зимбабвийский золотой',
+        ],
         'ZWL' => [
             'ZWL',
             'Доллар Зимбабве (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sc.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sc.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sc.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sc.php	2026-05-20 10:56:49.000000000 +0200
@@ -1086,6 +1086,10 @@
             'EC$',
             'dòllaru de sos Caràibes orientales',
         ],
+        'XCG' => [
+            'Cg.',
+            'fiorinu caraìbicu',
+        ],
         'XEU' => [
             'XEU',
             'unidade de contu europea',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sd.php	2026-05-20 10:56:49.000000000 +0200
@@ -532,7 +532,7 @@
         ],
         'SYP' => [
             'SYP',
-            'سيريائي پائونڊ',
+            'شامي پائونڊ',
         ],
         'SZL' => [
             'SZL',
@@ -622,6 +622,10 @@
             'EC$',
             'اوڀر ڪيريبين ڊالر',
         ],
+        'XCG' => [
+            'Cg.',
+            'ڪريبيئن گلڊر',
+        ],
         'XOF' => [
             'F CFA',
             'اولهه آفريڪا فرينڪ',
@@ -642,5 +646,9 @@
             'ZMW',
             'زمبائي ڪواچا',
         ],
+        'ZWG' => [
+            'ZWG',
+            'زمبابوي سون',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sh.php	2026-05-20 10:56:49.000000000 +0200
@@ -1014,6 +1014,10 @@
             'EC$',
             'istočnokaripski dolar',
         ],
+        'XCG' => [
+            'Cg.',
+            'karipski gulden',
+        ],
         'XEU' => [
             'XEU',
             'Evropska valutna jedinica',
@@ -1086,6 +1090,10 @@
             'ZWD',
             'Zimbabveanski dolar (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabveansko zlato',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabveanski dolar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/si.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/si.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/si.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/si.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'නැගෙනහිර කැරිබියානු ඩොලර්',
         ],
+        'XCG' => [
+            'Cg.',
+            'කැරිබියානු ගිල්ඩර්',
+        ],
         'XOF' => [
             'සිෆ්එ',
             'සිෆ්එ ෆ්රෑන්ක් බිසීඊඑඔ',
@@ -658,5 +662,9 @@
             'ZMW',
             'සැම්බියානු ක්වාචා',
         ],
+        'ZWG' => [
+            'ZWG',
+            'සිම්බාබ්වේ රත්තරන්',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sk.php	2026-05-20 10:56:49.000000000 +0200
@@ -1078,6 +1078,10 @@
             'EC$',
             'východokaribský dolár',
         ],
+        'XCG' => [
+            'Cg',
+            'karibský gulden',
+        ],
         'XEU' => [
             'XEU',
             'európska menová jednotka',
@@ -1154,6 +1158,10 @@
             'ZWD',
             'zimbabwiansky dolár (1980 – 2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabwiansky zlatý',
+        ],
         'ZWL' => [
             'ZWL',
             'zimbabwiansky dolár (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sl.php	2026-05-20 10:56:49.000000000 +0200
@@ -980,7 +980,7 @@
         ],
         'VND' => [
             '₫',
-            'vientnamski dong',
+            'vietnamski dong',
         ],
         'VUV' => [
             'VUV',
@@ -998,6 +998,10 @@
             'XCD',
             'vzhodnokaribski dolar',
         ],
+        'XCG' => [
+            'Cg.',
+            'karibski gulden',
+        ],
         'XEU' => [
             'XEU',
             'evropska denarna enota',
@@ -1066,6 +1070,10 @@
             'ZWD',
             'zimbabvejski dolar',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabvejsko zlato',
+        ],
         'ZWL' => [
             'ZWL',
             'zimbabvejski dolar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/so.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/so.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/so.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/so.php	2026-05-20 10:56:49.000000000 +0200
@@ -658,6 +658,10 @@
             'EC$',
             'Doolarka Iist Kaaribyan',
         ],
+        'XCG' => [
+            'Cg.',
+            'Caribbean guilder',
+        ],
         'XOF' => [
             'F CFA',
             'Faranka CFA Galbeedka Afrika',
@@ -678,5 +682,9 @@
             'ZMW',
             'Kawajada Sambiya',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Dahabka Zimbabwe',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sq.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sq.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sq.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sq.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'Dollari i Karaibeve Lindore',
         ],
+        'XCG' => [
+            'ANG',
+            'gilder karaibian',
+        ],
         'XOF' => [
             'F CFA',
             'Franga e Bregut të Fildishtë',
@@ -652,7 +656,11 @@
         ],
         'ZMW' => [
             'ZMW',
-            'Kuaça e Zambikut',
+            'Kuaça e Zambisë',
+        ],
+        'ZWG' => [
+            'ZWG',
+            'Ari i Zimbabves',
         ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sr_Latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sr_Latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sr_Latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sr_Latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1014,6 +1014,10 @@
             'EC$',
             'istočnokaripski dolar',
         ],
+        'XCG' => [
+            'Cg.',
+            'karipski gulden',
+        ],
         'XEU' => [
             'XEU',
             'Evropska valutna jedinica',
@@ -1086,6 +1090,10 @@
             'ZWD',
             'Zimbabveanski dolar (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabveansko zlato',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabveanski dolar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sr.php	2026-05-20 10:56:49.000000000 +0200
@@ -1014,6 +1014,10 @@
             'EC$',
             'источнокарипски долар',
         ],
+        'XCG' => [
+            'Cg.',
+            'карипски гулден',
+        ],
         'XEU' => [
             'XEU',
             'Европска валутна јединица',
@@ -1086,6 +1090,10 @@
             'ZWD',
             'Зимбабвеански долар (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'зимбабвеанско злато',
+        ],
         'ZWL' => [
             'ZWL',
             'Зимбабвеански долар (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sv.php	2026-05-20 10:56:49.000000000 +0200
@@ -1082,6 +1082,10 @@
             'EC$',
             'östkaribisk dollar',
         ],
+        'XCG' => [
+            'XCG',
+            'karibisk gulden',
+        ],
         'XEU' => [
             'XEU',
             'europeisk valutaenhet',
@@ -1158,6 +1162,10 @@
             'ZWD',
             'Zimbabwe-dollar',
         ],
+        'ZWG' => [
+            'ZWG',
+            'zimbabwiskt guld',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabwe-dollar (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/sw.php	2026-05-20 10:56:49.000000000 +0200
@@ -650,6 +650,10 @@
             'EC$',
             'Dola ya Karibi Mashariki',
         ],
+        'XCG' => [
+            'Cg.',
+            'Guilder ya Karibe',
+        ],
         'XOF' => [
             'F CFA',
             'Faranga ya Afrika Magharibi CFA',
@@ -678,5 +682,9 @@
             'ZWD',
             'Dola ya Zimbabwe',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Dhahabu ya Zimbabwe',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ta.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'கிழக்கு கரீபியன் டாலர்',
         ],
+        'XCG' => [
+            'Cg.',
+            'கரீபியன் கில்டர்',
+        ],
         'XOF' => [
             'F CFA',
             'மேற்கு ஆப்பிரிக்க CFA ஃப்ராங்க்',
@@ -658,5 +662,9 @@
             'ZMW',
             'ஸாம்பியன் குவாச்சா',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ஜிம்பாப்வே தங்கம்',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/te.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/te.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/te.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/te.php	2026-05-20 10:56:49.000000000 +0200
@@ -112,7 +112,7 @@
         ],
         'CDF' => [
             'CDF',
-            'కొంగోలిస్ ఫ్రాంక్',
+            'కాంగోలీస్ ఫ్రాంక్',
         ],
         'CHF' => [
             'CHF',
@@ -128,7 +128,7 @@
         ],
         'CNY' => [
             'CN¥',
-            'చైనా దేశ యువాన్',
+            'చైనీస్ యువాన్',
         ],
         'COP' => [
             'COP',
@@ -184,7 +184,7 @@
         ],
         'EUR' => [
             '€',
-            'యురొ',
+            'యూరో',
         ],
         'FJD' => [
             'FJD',
@@ -232,7 +232,7 @@
         ],
         'HNL' => [
             'HNL',
-            'హోండురన్ లెమిపిరా',
+            'హోండురన్ లెంపిరా',
         ],
         'HRK' => [
             'HRK',
@@ -280,7 +280,7 @@
         ],
         'JPY' => [
             'JP¥',
-            'జపాను దేశ యెన్',
+            'జపనీస్ యెన్',
         ],
         'KES' => [
             'KES',
@@ -320,7 +320,7 @@
         ],
         'LAK' => [
             'LAK',
-            'లాటియన్ కిప్',
+            'లావోషన్ కిప్',
         ],
         'LBP' => [
             'LBP',
@@ -424,7 +424,7 @@
         ],
         'NOK' => [
             'NOK',
-            'నార్వేజీయన్ క్రోన్',
+            'నార్వేజియన్ క్రోన్',
         ],
         'NPR' => [
             'NPR',
@@ -468,11 +468,11 @@
         ],
         'QAR' => [
             'QAR',
-            'క్వాటరి రీయల్',
+            'ఖతారి రియాల్',
         ],
         'RON' => [
             'RON',
-            'రోమానియాన్ లెయు',
+            'రొమేనియన్ లెయు',
         ],
         'RSD' => [
             'RSD',
@@ -544,7 +544,7 @@
         ],
         'SYP' => [
             'SYP',
-            'సిరీయన్ పౌండ్',
+            'సిరియన్ పౌండ్',
         ],
         'SZL' => [
             'SZL',
@@ -572,7 +572,7 @@
         ],
         'TRY' => [
             'TRY',
-            'టర్కిస్ లీరా',
+            'టర్కిష్ లీరా',
         ],
         'TTD' => [
             'TTD',
@@ -588,7 +588,7 @@
         ],
         'UAH' => [
             'UAH',
-            'ఉక్రయినియన్ హ్రివ్‌నియా',
+            'ఉక్రేనియన్ హ్రివ్నియా',
         ],
         'UGX' => [
             'UGX',
@@ -634,6 +634,10 @@
             'EC$',
             'తూర్పు కరీబియన్ డాలర్',
         ],
+        'XCG' => [
+            'Cg.',
+            'కరీబియన్ గిల్‌డర్',
+        ],
         'XOF' => [
             'F CFA',
             'పశ్చిమ ఆఫ్రికన్ సిఏఫ్ఏ ఫ్రాంక్',
@@ -658,5 +662,9 @@
             'ZMW',
             'జాంబియన్ క్వాచా',
         ],
+        'ZWG' => [
+            'ZWG',
+            'జింబాబ్వేయన్ గోల్డ్',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tg.php	2026-05-20 10:56:49.000000000 +0200
@@ -610,6 +610,10 @@
             'EC$',
             'Доллари Кариби Шарқӣ',
         ],
+        'XCG' => [
+            'Cg.',
+            'гулдени Кариб',
+        ],
         'XOF' => [
             'F CFA',
             'Франки Африқои Ғарбӣ',
@@ -630,5 +634,9 @@
             'ZMW',
             'Квачаи Замбия',
         ],
+        'ZWG' => [
+            'ZWG',
+            'тиллоии Зимбабве',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/th.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/th.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/th.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/th.php	2026-05-20 10:56:49.000000000 +0200
@@ -1058,6 +1058,10 @@
             'EC$',
             'ดอลลาร์แคริบเบียนตะวันออก',
         ],
+        'XCG' => [
+            'Cg.',
+            'กิลเดอร์แคริบเบียน',
+        ],
         'XEU' => [
             'XEU',
             'หน่วยสกุลเงินยุโรป',
@@ -1134,6 +1138,10 @@
             'ZWD',
             'ดอลลาร์ซิมบับเว',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ทองซิมบับเว',
+        ],
         'ZWL' => [
             'ZWL',
             'ดอลลาร์ซิมบับเว (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ti.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ti.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ti.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ti.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'ምብራቕ ካሪብያን ዶላር',
         ],
+        'XCG' => [
+            'Cg.',
+            'ካሪብያን ጊልደር',
+        ],
         'XOF' => [
             'F CFA',
             'ምዕራብ ኣፍሪቃ CFA ፍራንክ',
@@ -654,5 +658,9 @@
             'ZMW',
             'ዛምብያዊ ኳቻ',
         ],
+        'ZWG' => [
+            'ZWG',
+            'ዚምባብወ ወርቂ',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tk.php	2026-05-20 10:56:49.000000000 +0200
@@ -626,6 +626,10 @@
             'EC$',
             'Gündogar karib dollary',
         ],
+        'XCG' => [
+            'Kg.',
+            'karib guldeni',
+        ],
         'XOF' => [
             'F CFA',
             'KFA BCEAO franky',
@@ -646,5 +650,9 @@
             'ZMW',
             'Zambiýa kwaçasy',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwe altyny',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tl.php	2026-05-20 10:56:49.000000000 +0200
@@ -658,6 +658,10 @@
             'EC$',
             'Dolyar ng Silangang Caribbean',
         ],
+        'XCG' => [
+            'Cg.',
+            'Caribbean guilder',
+        ],
         'XOF' => [
             'F CFA',
             'CFA Franc ng Kanlurang Africa',
@@ -682,5 +686,9 @@
             'ZMW',
             'Zambian Kwacha',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwean Gold',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tr.php	2026-05-20 10:56:49.000000000 +0200
@@ -1078,6 +1078,10 @@
             'EC$',
             'Doğu Karayip doları',
         ],
+        'XCG' => [
+            'Cg.',
+            'Karayip guldeni',
+        ],
         'XEU' => [
             'XEU',
             'Avrupa Para Birimi',
@@ -1154,6 +1158,10 @@
             'ZWD',
             'Zimbabve Doları',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabve altını',
+        ],
         'ZWL' => [
             'ZWL',
             'Zimbabve Doları (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/tt.php	2026-05-20 10:56:49.000000000 +0200
@@ -610,6 +610,10 @@
             'EC$',
             'Көнчыгыш Кариб доллары',
         ],
+        'XCG' => [
+            'Cg.',
+            'кариб гульдены',
+        ],
         'XOF' => [
             'F CFA',
             'Көнбатыш Африка КФА франкы',
@@ -630,5 +634,9 @@
             'ZMW',
             'Замбия квачасы',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Зимбабве алтыны',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/uk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/uk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/uk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/uk.php	2026-05-20 10:56:49.000000000 +0200
@@ -1002,6 +1002,10 @@
             'XCD',
             'східнокарибський долар',
         ],
+        'XCG' => [
+            'Cg.',
+            'карибський гульден',
+        ],
         'XEU' => [
             'XEU',
             'європейська валютна одиниця',
@@ -1074,6 +1078,10 @@
             'ZWD',
             'зімбабвійський долар',
         ],
+        'ZWG' => [
+            'ZWG',
+            'зімбабвійський золотий',
+        ],
         'ZWL' => [
             'ZWL',
             'зімбабвійський долар (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ur.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ur.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ur.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/ur.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
         ],
         'ARS' => [
             'ARS',
-            'ارجنٹائن پیسہ',
+            'ارجنٹائن پیسو',
         ],
         'AUD' => [
             'A$',
@@ -120,7 +120,7 @@
         ],
         'CLP' => [
             'CLP',
-            'چلّین پیسہ',
+            'چلین پیسو',
         ],
         'CNH' => [
             'CNH',
@@ -132,7 +132,7 @@
         ],
         'COP' => [
             'COP',
-            'کولمبین پیسہ',
+            'کولمبین پیسو',
         ],
         'CRC' => [
             'CRC',
@@ -408,7 +408,7 @@
         ],
         'MXN' => [
             'MX$',
-            'میکسیکی پیسہ',
+            'میکسیکی پیسو',
         ],
         'MYR' => [
             'MYR',
@@ -460,7 +460,7 @@
         ],
         'PHP' => [
             'PHP',
-            'فلپائینی پیسہ',
+            'فلپائنی پیسو',
         ],
         'PKR' => [
             'Rs',
@@ -654,6 +654,10 @@
             'EC$',
             'مشرقی کریبیا کا ڈالر',
         ],
+        'XCG' => [
+            'Cg.',
+            'کیریبین گلڈر',
+        ],
         'XOF' => [
             'F CFA',
             'مغربی افریقی [CFA] فرانک',
@@ -678,5 +682,9 @@
             'ZMW',
             'زامبیائی کواچا',
         ],
+        'ZWG' => [
+            'ZWG',
+            'زمبابوے گولڈ',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/uz.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/uz.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/uz.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/uz.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'Sharqiy Karib dollari',
         ],
+        'XCG' => [
+            'Cg.',
+            'Karib guldeni',
+        ],
         'XOF' => [
             'F CFA',
             'G‘arbiy Afrika CFA franki',
@@ -654,5 +658,9 @@
             'ZMW',
             'Zambiya kvachasi',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabve oltini',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/vi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/vi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/vi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/vi.php	2026-05-20 10:56:49.000000000 +0200
@@ -1062,6 +1062,10 @@
             'EC$',
             'Đô la Đông Caribê',
         ],
+        'XCG' => [
+            'Cg.',
+            'Guilder Caribe',
+        ],
         'XEU' => [
             'XEU',
             'Đơn vị Tiền Châu Âu',
@@ -1138,6 +1142,10 @@
             'ZWD',
             'Đồng Đô la Zimbabwe (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwean Gold',
+        ],
         'ZWL' => [
             'ZWL',
             'Đồng Đô la Zimbabwe (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/wo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/wo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/wo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/wo.php	2026-05-20 10:56:49.000000000 +0200
@@ -610,6 +610,10 @@
             'EC$',
             'East Caribbean Dollar',
         ],
+        'XCG' => [
+            'Cg.',
+            'Gildiye Karayib',
+        ],
         'XOF' => [
             'F CFA',
             'Franc CFA bu Afrik Sowwu-jant',
@@ -630,5 +634,9 @@
             'ZMW',
             'Zambian Kwacha',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwean ZiG',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/xh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/xh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/xh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/xh.php	2026-05-20 10:56:49.000000000 +0200
@@ -610,6 +610,10 @@
             'EC$',
             'East Caribbean Dollar',
         ],
+        'XCG' => [
+            'ICg.',
+            'ICaribbean guilder',
+        ],
         'XOF' => [
             'F CFA',
             'ICFA Franc yaseWest Africa',
@@ -630,5 +634,9 @@
             'ZMW',
             'I-Kwacha yaseZambi',
         ],
+        'ZWG' => [
+            'IZWG',
+            'IZimbabwean Gold',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/yo_BJ.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/yo_BJ.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/yo_BJ.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/yo_BJ.php	2026-05-20 10:56:49.000000000 +0200
@@ -390,6 +390,10 @@
             'EC$',
             'Dɔ́là Ilà Oòrùn Karíbíà',
         ],
+        'XCG' => [
+            'Cg.',
+            'Owó ìlú Kùrásɔ̀ àti Saint Mátìnì',
+        ],
         'XOF' => [
             'F CFA',
             'Faransì ìwɔ̀-oorùn Afíríkà',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/yo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/yo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/yo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/yo.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'Dọ́là Ilà Oòrùn Karíbíà',
         ],
+        'XCG' => [
+            'Cg.',
+            'Owó ìlú Kùrásọ̀ àti Saint Mátìnì',
+        ],
         'XOF' => [
             'F CFA',
             'Faransì ìwọ̀-oorùn Afíríkà',
@@ -662,5 +666,9 @@
             'ZWD',
             'Dọla ti Orílẹ́ède Siibabuwe',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Owó ìlú Sìnbábúwè',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hans_MY.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hans_MY.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hans_MY.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hans_MY.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,10 @@
+<?php
+
+return [
+    'Names' => [
+        'MYR' => [
+            'MYR',
+            '马来西亚令吉',
+        ],
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant_HK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant_HK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant_HK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant_HK.php	2026-05-20 10:56:49.000000000 +0200
@@ -130,10 +130,6 @@
             'LRD',
             '利比利亞元',
         ],
-        'MDL' => [
-            'MDL',
-            '摩爾多瓦列伊',
-        ],
         'MRO' => [
             'MRO',
             '毛里塔尼亞烏吉亞 (1973–2017)',
@@ -250,10 +246,6 @@
             'VUV',
             '瓦努阿圖瓦圖',
         ],
-        'XAF' => [
-            'FCFA',
-            '中非法郎',
-        ],
         'XCD' => [
             'EC$',
             '東加勒比元',
@@ -262,10 +254,6 @@
             'F CFA',
             '多哥非洲共同體法郎',
         ],
-        'XPF' => [
-            'CFPF',
-            '太平洋法郎',
-        ],
         'YER' => [
             'YER',
             '也門里雅',
@@ -274,5 +262,9 @@
             'ZMW',
             '贊比亞克瓦查',
         ],
+        'ZWG' => [
+            'ZWG',
+            '津布巴韋金',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant.php	2026-05-20 10:56:49.000000000 +0200
@@ -352,7 +352,7 @@
         ],
         'ERN' => [
             'ERN',
-            '厄立特里亞納克法',
+            '厄利垂亞納可法',
         ],
         'ESA' => [
             'ESA',
@@ -644,7 +644,7 @@
         ],
         'MDL' => [
             'MDL',
-            '摩杜雲列伊',
+            '摩爾多瓦列伊',
         ],
         'MGA' => [
             'MGA',
@@ -752,7 +752,7 @@
         ],
         'NIO' => [
             'NIO',
-            '尼加拉瓜金科多巴',
+            '尼加拉瓜科多巴',
         ],
         'NLG' => [
             'NLG',
@@ -1068,12 +1068,16 @@
         ],
         'XAF' => [
             'FCFA',
-            '法郎 (CFA–BEAC)',
+            '中非法郎',
         ],
         'XCD' => [
             'EC$',
             '格瑞那達元',
         ],
+        'XCG' => [
+            'Cg.',
+            '加勒比盾',
+        ],
         'XEU' => [
             'XEU',
             '歐洲貨幣單位 (XEU)',
@@ -1088,11 +1092,11 @@
         ],
         'XOF' => [
             'F CFA',
-            '法郎 (CFA–BCEAO)',
+            '西非法郎',
         ],
         'XPF' => [
             'CFPF',
-            '法郎 (CFP)',
+            '太平洋法郎',
         ],
         'XRE' => [
             'XRE',
@@ -1150,6 +1154,10 @@
             'ZWD',
             '辛巴威元 (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            '辛巴威金',
+        ],
         'ZWL' => [
             'ZWL',
             '辛巴威元 (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_HK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_HK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_HK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh_HK.php	2026-05-20 10:56:49.000000000 +0200
@@ -130,10 +130,6 @@
             'LRD',
             '利比利亞元',
         ],
-        'MDL' => [
-            'MDL',
-            '摩爾多瓦列伊',
-        ],
         'MRO' => [
             'MRO',
             '毛里塔尼亞烏吉亞 (1973–2017)',
@@ -250,10 +246,6 @@
             'VUV',
             '瓦努阿圖瓦圖',
         ],
-        'XAF' => [
-            'FCFA',
-            '中非法郎',
-        ],
         'XCD' => [
             'EC$',
             '東加勒比元',
@@ -262,10 +254,6 @@
             'F CFA',
             '多哥非洲共同體法郎',
         ],
-        'XPF' => [
-            'CFPF',
-            '太平洋法郎',
-        ],
         'YER' => [
             'YER',
             '也門里雅',
@@ -274,5 +262,9 @@
             'ZMW',
             '贊比亞克瓦查',
         ],
+        'ZWG' => [
+            'ZWG',
+            '津布巴韋金',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zh.php	2026-05-20 10:56:49.000000000 +0200
@@ -1086,6 +1086,10 @@
             'EC$',
             '东加勒比元',
         ],
+        'XCG' => [
+            'Cg.',
+            '加勒比盾',
+        ],
         'XEU' => [
             'XEU',
             '欧洲货币单位',
@@ -1162,6 +1166,10 @@
             'ZWD',
             '津巴布韦元 (1980–2008)',
         ],
+        'ZWG' => [
+            'ZWG',
+            '津巴布韦金元',
+        ],
         'ZWL' => [
             'ZWL',
             '津巴布韦元 (2009)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/currencies/zu.php	2026-05-20 10:56:49.000000000 +0200
@@ -634,6 +634,10 @@
             'EC$',
             'i-East Caribbean Dollar',
         ],
+        'XCG' => [
+            'Cg.',
+            'Caribbean guilder',
+        ],
         'XOF' => [
             'F CFA',
             'i-West African CFA Franc',
@@ -658,5 +662,9 @@
             'ZMW',
             'i-Zambian Kwacha',
         ],
+        'ZWG' => [
+            'ZWG',
+            'Zimbabwean Gold',
+        ],
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/git-info.txt symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/git-info.txt
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/git-info.txt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/git-info.txt	2026-05-20 10:56:49.000000000 +0200
@@ -2,6 +2,6 @@
 ===============
 
 URL: https://github.com/unicode-org/icu.git
-Revision: 457157a92aa053e632cc7fcfd0e12f8a943b2d11
-Author: Mihai Nita
-Date: 2025-03-10T19:11:46+00:00
+Revision: 21d1eb0f306e1141c10931e914dfc038c06121da
+Author: Peter Edberg
+Date: 2026-03-16T15:41:53-07:00
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/af.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/af.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/af.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/af.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,6 +32,7 @@
         'ay' => 'Aymara',
         'az' => 'Azerbeidjans',
         'ba' => 'Baskir',
+        'bal' => 'Baloetsji',
         'ban' => 'Balinees',
         'bas' => 'Basaa',
         'be' => 'Belarussies',
@@ -306,7 +307,7 @@
         'ojw' => 'Wes-Ojibwa',
         'oka' => 'Okanagan',
         'om' => 'Oromo',
-        'or' => 'Oriya',
+        'or' => 'Odia',
         'os' => 'Osseties',
         'pa' => 'Pandjabi',
         'pag' => 'Pangasinan',
@@ -450,8 +451,6 @@
     ],
     'LocalizedNames' => [
         'ar_001' => 'Moderne Standaardarabies',
-        'en_GB' => 'Engels (VK)',
-        'en_US' => 'Engels (VSA)',
         'fa_AF' => 'Dari',
         'nds_NL' => 'Nedersaksies',
         'nl_BE' => 'Vlaams',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ak.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ak.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ak.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ak.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,11 +4,12 @@
     'Names' => [
         'af' => 'Afrikaans',
         'ak' => 'Akan',
-        'am' => 'Amarik',
+        'am' => 'Amariki',
         'ar' => 'Arabeke',
         'as' => 'Asamese',
         'ast' => 'Asturiani',
         'az' => 'Asabegyanni',
+        'bal' => 'Balukyi',
         'be' => 'Belarus kasa',
         'bg' => 'Bɔlgeria kasa',
         'bgc' => 'Harianvi',
@@ -29,6 +30,7 @@
         'de' => 'Gyaaman',
         'doi' => 'Dɔgri',
         'dsb' => 'Sɔɔbia a ɛwɔ fam',
+        'ee' => 'Ayigbe',
         'el' => 'Greek kasa',
         'en' => 'Borɔfo',
         'eo' => 'Esperanto',
@@ -157,7 +159,6 @@
         'de_CH' => 'Swisalande Gyaaman',
         'en_GB' => 'Ngresi Borɔfo',
         'en_US' => 'Amɛrika Borɔfo',
-        'es_419' => 'Spain kasa (Laaten Amɛrika)',
         'fr_CA' => 'Kanada Frɛnkye',
         'fr_CH' => 'Swisalande Frɛnkye',
         'hi_Latn' => 'Laatenfoɔ Hindi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/am.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/am.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/am.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/am.php	2026-05-20 10:56:49.000000000 +0200
@@ -508,7 +508,6 @@
         'fa_AF' => 'ዳሪ',
         'fr_CA' => 'የካናዳ ፈረንሳይኛ',
         'fr_CH' => 'የስዊዝ ፈረንሳይኛ',
-        'hi_Latn' => 'ሕንድኛ (ላቲን)',
         'nds_NL' => 'የታችኛው ሳክሰን',
         'nl_BE' => 'ፍሌሚሽ',
         'pt_BR' => 'የብራዚል ፖርቹጋልኛ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ar.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ar.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ar.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ar.php	2026-05-20 10:56:49.000000000 +0200
@@ -445,7 +445,7 @@
         'slh' => 'لوشوتسيد الجنوبية',
         'sm' => 'الساموائية',
         'sma' => 'السامي الجنوبي',
-        'smj' => 'اللول سامي',
+        'smj' => 'السامي لولي',
         'smn' => 'الإيناري سامي',
         'sms' => 'السكولت سامي',
         'sn' => 'الشونا',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/as.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/as.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/as.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/as.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,6 +30,7 @@
         'ay' => 'আয়মাৰা',
         'az' => 'আজেৰবাইজানী',
         'ba' => 'বাছখিৰ',
+        'bal' => 'বালুচী',
         'ban' => 'বালিনীজ',
         'bas' => 'বাছা',
         'be' => 'বেলাৰুছীয়',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/az.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/az.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/az.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/az.php	2026-05-20 10:56:49.000000000 +0200
@@ -225,10 +225,10 @@
         'kbd' => 'kabarda-çərkəz',
         'kcg' => 'tiyap',
         'kde' => 'makond',
-        'kea' => 'kabuverdian',
+        'kea' => 'kabuverdianu',
         'kfo' => 'koro',
         'kg' => 'konqo',
-        'kgp' => 'kaiqanq',
+        'kgp' => 'kaynqanq',
         'kha' => 'xazi',
         'kho' => 'xotan',
         'khq' => 'koyra çiini',
@@ -541,7 +541,6 @@
         'ar_001' => 'müasir standart ərəb',
         'az_Arab' => 'cənubi azərbaycan',
         'de_AT' => 'Avstriya almancası',
-        'de_CH' => 'İsveçrə yüksək almancası',
         'en_AU' => 'Avstraliya ingiliscəsi',
         'en_CA' => 'Kanada ingiliscəsi',
         'en_GB' => 'Britaniya ingiliscəsi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ba.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ba.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ba.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ba.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,355 @@
+<?php
+
+return [
+    'Names' => [
+        'aa' => 'афар',
+        'ab' => 'абхаз',
+        'af' => 'африкаанс',
+        'agq' => 'агем',
+        'ak' => 'акан',
+        'am' => 'амхар',
+        'an' => 'арагон',
+        'ann' => 'оболо',
+        'apc' => 'левант ғәрәп',
+        'ar' => 'ғәрәп',
+        'arn' => 'мапуче',
+        'as' => 'ассам',
+        'asa' => 'асу',
+        'ast' => 'астурий',
+        'az' => 'әзербайжан',
+        'ba' => 'башҡорт',
+        'bal' => 'балудж',
+        'bas' => 'басаа',
+        'be' => 'белорус',
+        'bem' => 'бемба',
+        'bew' => 'бетави',
+        'bez' => 'бена',
+        'bg' => 'болгар',
+        'bgc' => 'харьянви',
+        'bgn' => 'көнбайыш белудж',
+        'bho' => 'бходжпури',
+        'blo' => 'ании',
+        'blt' => 'тай дам',
+        'bm' => 'бамбара',
+        'bn' => 'бенгал',
+        'bo' => 'тибет',
+        'bqi' => 'бәхтиәр',
+        'br' => 'бретон',
+        'brx' => 'бодо',
+        'bs' => 'босний',
+        'bss' => 'акоосе',
+        'bua' => 'бүрәт',
+        'byn' => 'блин',
+        'ca' => 'каталан',
+        'cad' => 'каддо',
+        'cch' => 'атсам',
+        'ccp' => 'чакма',
+        'ce' => 'чечен',
+        'ceb' => 'себуано',
+        'cgg' => 'чига',
+        'cho' => 'чоктав',
+        'chr' => 'чероки',
+        'cic' => 'чикасо',
+        'ckb' => 'үҙәк курд',
+        'co' => 'корсика',
+        'cop' => 'копт',
+        'cs' => 'чех',
+        'csw' => 'һаҙлыҡлы кри',
+        'cu' => 'сиркәү славян',
+        'cv' => 'сыуаш',
+        'cy' => 'валлий',
+        'da' => 'дат',
+        'dav' => 'таита',
+        'de' => 'немец',
+        'dje' => 'зарма',
+        'doi' => 'догри',
+        'dsb' => 'түбәнге лужиц',
+        'dua' => 'дуала',
+        'dv' => 'дивехи',
+        'dyo' => 'джола фоньи',
+        'dz' => 'дзонг-кэ',
+        'ebu' => 'эмбу',
+        'ee' => 'эве',
+        'el' => 'грек',
+        'en' => 'инглиз',
+        'eo' => 'эсперанто',
+        'es' => 'испан',
+        'et' => 'эстон',
+        'eu' => 'баск',
+        'ewo' => 'эвондо',
+        'fa' => 'фарсы',
+        'ff' => 'фула',
+        'fi' => 'фин',
+        'fil' => 'филиппин',
+        'fo' => 'фарер',
+        'fr' => 'француз',
+        'frc' => 'каджун француз',
+        'frr' => 'төньяҡ фриз',
+        'fur' => 'фриул',
+        'fy' => 'көнбайыш фриз',
+        'ga' => 'ирланд',
+        'gaa' => 'га',
+        'gd' => 'шотланд гэл',
+        'gez' => 'геэз',
+        'gl' => 'галисий',
+        'gn' => 'гуарани',
+        'gsw' => 'швейцария немец',
+        'gu' => 'гуджарати',
+        'guz' => 'гусии',
+        'gv' => 'мэн',
+        'ha' => 'хауса',
+        'haw' => 'гавай',
+        'he' => 'иврит',
+        'hi' => 'һинди',
+        'hnj' => 'хмонг нджуа',
+        'hr' => 'хорват',
+        'hsb' => 'үрге лужи',
+        'ht' => 'гаити креол',
+        'hu' => 'венгр',
+        'hy' => 'әрмән',
+        'ia' => 'интерлингва',
+        'id' => 'индонез',
+        'ie' => 'интерлингве',
+        'ig' => 'игбо',
+        'ii' => 'сычуань и',
+        'io' => 'идо',
+        'is' => 'исланд',
+        'it' => 'итальян',
+        'iu' => 'инуктитут',
+        'ja' => 'япон',
+        'jbo' => 'ложбан',
+        'jgo' => 'нгомба',
+        'jmc' => 'мачаме',
+        'jv' => 'ява',
+        'ka' => 'грузин',
+        'kaa' => 'ҡарағалпаҡ',
+        'kab' => 'кабил',
+        'kaj' => 'джу',
+        'kam' => 'камба',
+        'kcg' => 'тьяп',
+        'kde' => 'маконде',
+        'kea' => 'кабувердьяну',
+        'kek' => 'кекчи',
+        'ken' => 'кеньянг',
+        'kgp' => 'каинганг',
+        'khq' => 'койра Чиини',
+        'ki' => 'кикуйю',
+        'kk' => 'ҡаҙаҡ',
+        'kkj' => 'како',
+        'kl' => 'калааллисут',
+        'kln' => 'календжин',
+        'km' => 'кхмер',
+        'kn' => 'каннада',
+        'ko' => 'корей',
+        'kok' => 'конкани',
+        'kpe' => 'кпелле',
+        'ks' => 'кашмири',
+        'ksb' => 'шамбала',
+        'ksf' => 'бафия',
+        'ksh' => 'кёльн',
+        'ku' => 'курд',
+        'kw' => 'корн',
+        'kxv' => 'куви',
+        'ky' => 'ҡырғыҙ',
+        'la' => 'латин',
+        'lag' => 'ланги',
+        'lb' => 'люксембург',
+        'lg' => 'ганда',
+        'lij' => 'лигур',
+        'lkt' => 'лакота',
+        'lld' => 'ладин',
+        'lmo' => 'ломбард',
+        'ln' => 'лингала',
+        'lo' => 'лаос',
+        'lou' => 'луизиана креол',
+        'lrc' => 'төньяҡ лури',
+        'lt' => 'литва',
+        'ltg' => 'латгал',
+        'lu' => 'луба-катанга',
+        'luo' => 'луо',
+        'luy' => 'лухья',
+        'lv' => 'латыш',
+        'lzz' => 'лаз',
+        'mai' => 'майтхили',
+        'mas' => 'масаи',
+        'mdf' => 'мокша',
+        'mer' => 'меру',
+        'mfe' => 'морисьен',
+        'mg' => 'малагаси',
+        'mgh' => 'макуа-меетто',
+        'mgo' => 'мета',
+        'mhn' => 'мокено',
+        'mi' => 'маори',
+        'mic' => 'микмау',
+        'mk' => 'македон',
+        'ml' => 'малаялам',
+        'mn' => 'монгол',
+        'mni' => 'манипури',
+        'moh' => 'мохаук',
+        'mr' => 'маратхи',
+        'ms' => 'малай',
+        'mt' => 'мальта',
+        'mua' => 'мунданг',
+        'mus' => 'мускоги',
+        'mww' => 'хмонг дав',
+        'my' => 'бирма',
+        'myv' => 'эрзә',
+        'mzn' => 'мазандеран',
+        'nan' => 'мин нан ҡытай',
+        'naq' => 'нама',
+        'nb' => 'норвег букмол',
+        'nd' => 'төньяҡ ндебеле',
+        'nds' => 'түбәнге немец',
+        'ne' => 'непал',
+        'nl' => 'нидерланд',
+        'nmg' => 'квасио',
+        'nn' => 'норвег нюнорск',
+        'nnh' => 'нгиембун',
+        'no' => 'норвег',
+        'nqo' => 'н’ко',
+        'nr' => 'көньяҡ ндебеле',
+        'nso' => 'төньяҡ сото',
+        'nus' => 'нуэр',
+        'nv' => 'навахо',
+        'ny' => 'ньянджа',
+        'nyn' => 'ньянколе',
+        'oc' => 'окситан',
+        'oka' => 'оканаган',
+        'om' => 'оромо',
+        'or' => 'одия',
+        'os' => 'осетин',
+        'osa' => 'осейдж',
+        'pa' => 'панджаби',
+        'pap' => 'папьяменто',
+        'pcm' => 'нигерия пиджины',
+        'pi' => 'пали',
+        'pis' => 'пиджин',
+        'pl' => 'поляк',
+        'pms' => 'пьемонт',
+        'prg' => 'прус',
+        'ps' => 'пушту',
+        'pt' => 'португал',
+        'qu' => 'кечуа',
+        'quc' => 'киче',
+        'raj' => 'раджастхани',
+        'rhg' => 'рохинджа',
+        'rif' => 'риф',
+        'rm' => 'романш',
+        'rn' => 'рунди',
+        'ro' => 'румын',
+        'rof' => 'ромбо',
+        'ru' => 'урыҫ',
+        'rw' => 'киньяруанда',
+        'rwk' => 'руа',
+        'sa' => 'санскрит',
+        'sah' => 'саха',
+        'saq' => 'самбуру',
+        'sat' => 'сантали',
+        'sbp' => 'сангу',
+        'sc' => 'сардин',
+        'scn' => 'сицилия',
+        'sd' => 'синдхи',
+        'sdh' => 'көньяҡ курд',
+        'se' => 'төньяҡ саам',
+        'seh' => 'сена',
+        'ses' => 'койраборо Сенни',
+        'sg' => 'санго',
+        'sgs' => 'самогит',
+        'shi' => 'ташельхит',
+        'shn' => 'шан',
+        'si' => 'сингал',
+        'sid' => 'сидамо',
+        'sk' => 'словак',
+        'skr' => 'сараиики',
+        'sl' => 'словен',
+        'sma' => 'көньяҡ саам',
+        'smj' => 'луле саам',
+        'smn' => 'инари саам',
+        'sms' => 'сколт саам',
+        'sn' => 'шона',
+        'so' => 'сомали',
+        'sq' => 'албан',
+        'sr' => 'серб',
+        'ss' => 'свати',
+        'ssy' => 'сахо',
+        'st' => 'көньяҡ сото',
+        'su' => 'сундан',
+        'suz' => 'сунвар',
+        'sv' => 'швед',
+        'sw' => 'суахили',
+        'syr' => 'сүриә',
+        'szl' => 'силез',
+        'ta' => 'тамил',
+        'te' => 'телугу',
+        'teo' => 'тесо',
+        'tg' => 'тажик',
+        'th' => 'тай',
+        'ti' => 'тигринья',
+        'tig' => 'тигре',
+        'tk' => 'төркмән',
+        'tn' => 'тсвана',
+        'to' => 'тонга',
+        'tok' => 'токи пона',
+        'tpi' => 'ток писин',
+        'tr' => 'төрөк',
+        'trv' => 'тароко',
+        'trw' => 'торвали',
+        'ts' => 'тсонга',
+        'tt' => 'татар',
+        'twq' => 'тасавак',
+        'tyv' => 'тува',
+        'tzm' => 'үҙәк атлас тамазигхт',
+        'ug' => 'уйғыр',
+        'uk' => 'украин',
+        'ur' => 'урду',
+        'uz' => 'үзбәк',
+        'vai' => 'ваи',
+        've' => 'венда',
+        'vec' => 'венет',
+        'vi' => 'вьетнам',
+        'vmw' => 'макуа',
+        'vo' => 'волапюк',
+        'vun' => 'вунджо',
+        'wa' => 'валлон',
+        'wae' => 'вальзер',
+        'wal' => 'волайтта',
+        'wbp' => 'вальпири',
+        'wo' => 'волоф',
+        'xh' => 'коса',
+        'xnr' => 'кангри',
+        'xog' => 'сога',
+        'yav' => 'янгбен',
+        'yi' => 'идиш',
+        'yo' => 'йоруба',
+        'yrl' => 'ньенгату',
+        'yue' => 'кантональ',
+        'za' => 'чжуан',
+        'zgh' => 'стандарт марокко тамазигхт',
+        'zh' => 'ҡытай',
+        'zu' => 'зулу',
+    ],
+    'LocalizedNames' => [
+        'ar_001' => 'әҙәби ғәрәп',
+        'de_AT' => 'немец (Австрия)',
+        'de_CH' => 'немец (Швейцария)',
+        'en_AU' => 'инглиз (Австралия)',
+        'en_CA' => 'инглиз (Канада)',
+        'en_GB' => 'инглиз (Британия)',
+        'en_US' => 'инглиз (АҠШ)',
+        'es_419' => 'испан (Латин Америкаһы)',
+        'es_ES' => 'испан (Европа)',
+        'es_MX' => 'испан (Мексика)',
+        'fa_AF' => 'дари',
+        'fr_CA' => 'француз (Канада)',
+        'fr_CH' => 'француз (Швейцария)',
+        'hi_Latn' => 'һинди (латиница)',
+        'nds_NL' => 'түбәнге саксон',
+        'nl_BE' => 'фламанд',
+        'pt_BR' => 'португал (Бразилия)',
+        'pt_PT' => 'португал (Европа)',
+        'ro_MD' => 'молдов',
+        'sw_CD' => 'конго суахили',
+        'zh_Hans' => 'ҡытай (ябайлаштырылған)',
+        'zh_Hant' => 'ҡытай (традицион)',
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/be.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/be.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/be.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/be.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,6 +33,7 @@
         'ay' => 'аймара',
         'az' => 'азербайджанская',
         'ba' => 'башкірская',
+        'bal' => 'белуджская',
         'ban' => 'балійская',
         'bas' => 'басаа',
         'be' => 'беларуская',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/bn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/bn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/bn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/bn.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
         'bal' => 'বেলুচী',
         'ban' => 'বালিনীয়',
         'bas' => 'বাসা',
-        'be' => 'বেলারুশিয়',
+        'be' => 'বেলারুশীয়',
         'bej' => 'বেজা',
         'bem' => 'বেম্বা',
         'bez' => 'বেনা',
@@ -80,7 +80,7 @@
         'chn' => 'চিনুক জার্গন',
         'cho' => 'চকটাও',
         'chp' => 'চিপেওয়ান',
-        'chr' => 'চেরোকী',
+        'chr' => 'চেরোকি',
         'chy' => 'চেইয়েন',
         'ckb' => 'মধ্য কুর্দিশ',
         'clc' => 'চিলকোটিন',
@@ -112,7 +112,7 @@
         'din' => 'ডিংকা',
         'dje' => 'জার্মা',
         'doi' => 'ডোগরি',
-        'dsb' => 'নিম্নতর সোর্বিয়ান',
+        'dsb' => 'সোর্বিয়ান (নিম্নতর)',
         'dua' => 'দুয়ালা',
         'dum' => 'মধ্য ডাচ',
         'dv' => 'দিবেহি',
@@ -137,7 +137,7 @@
         'fa' => 'ফার্সি',
         'fan' => 'ফ্যাঙ্গ',
         'fat' => 'ফান্তি',
-        'ff' => 'ফুলাহ্',
+        'ff' => 'ফুলা',
         'fi' => 'ফিনিশ',
         'fil' => 'ফিলিপিনো',
         'fj' => 'ফিজিয়ান',
@@ -160,7 +160,7 @@
         'gd' => 'স্কটিশ-গ্যেলিক',
         'gez' => 'গীজ',
         'gil' => 'গিলবার্টিজ',
-        'gl' => 'গ্যালিশিয়',
+        'gl' => 'গ্যালিশীয়',
         'gmh' => 'মধ্য-উচ্চ জার্মানি',
         'gn' => 'গুয়ারানি',
         'goh' => 'প্রাচীন উচ্চ জার্মানি',
@@ -185,7 +185,7 @@
         'hmn' => 'হ্‌মোঙ',
         'ho' => 'হিরি মোতু',
         'hr' => 'ক্রোয়েশীয়',
-        'hsb' => 'উচ্চ সোর্বিয়ান',
+        'hsb' => 'সোর্বিয়ান (উচ্চ)',
         'hsn' => 'Xiang চীনা',
         'ht' => 'হাইতিয়ান ক্রেওল',
         'hu' => 'হাঙ্গেরীয়',
@@ -198,7 +198,7 @@
         'ibb' => 'ইবিবিও',
         'id' => 'ইন্দোনেশীয়',
         'ie' => 'ইন্টারলিঙ্গ',
-        'ig' => 'ইগ্‌বো',
+        'ig' => 'ইগবো',
         'ii' => 'সিচুয়ান য়ি',
         'ik' => 'ইনুপিয়াক',
         'ikt' => 'পশ্চিম কানাডিয় ইনুক্টিটুট',
@@ -206,7 +206,7 @@
         'inh' => 'ইঙ্গুশ',
         'io' => 'ইডো',
         'is' => 'আইসল্যান্ডীয়',
-        'it' => 'ইতালিয়',
+        'it' => 'ইতালীয়',
         'iu' => 'ইনুক্টিটুট',
         'ja' => 'জাপানি',
         'jbo' => 'লোজবান',
@@ -243,7 +243,7 @@
         'kn' => 'কন্নড়',
         'ko' => 'কোরিয়ান',
         'koi' => 'কমি-পারমিআক',
-        'kok' => 'কোঙ্কানি',
+        'kok' => 'কোঙ্কণী',
         'kos' => 'কোস্রাইন',
         'kpe' => 'ক্‌পেল্লে',
         'kr' => 'কানুরি',
@@ -261,7 +261,7 @@
         'kw' => 'কর্ণিশ',
         'kwk' => 'কোয়াক’ওয়ালা',
         'kxv' => 'কুভি',
-        'ky' => 'কির্গিজ',
+        'ky' => 'কিরগিজ',
         'la' => 'লাতিন',
         'lad' => 'লাদিনো',
         'lag' => 'লাঙ্গি',
@@ -282,7 +282,7 @@
         'loz' => 'লোজি',
         'lrc' => 'উত্তরাঞ্চলীয় লুরি',
         'lsm' => 'সামিয়া',
-        'lt' => 'লিথুয়েনীয়',
+        'lt' => 'লিথুয়ানীয়',
         'lu' => 'লুবা-কাটাঙ্গা',
         'lua' => 'লুবা-লুলুয়া',
         'lui' => 'লুইসেনো',
@@ -290,7 +290,7 @@
         'luo' => 'লুয়ো',
         'lus' => 'মিজো',
         'luy' => 'লুইয়া',
-        'lv' => 'লাত্‌ভীয়',
+        'lv' => 'লাটভিয়',
         'mad' => 'মাদুরেজ',
         'mag' => 'মাগাহি',
         'mai' => 'মৈথিলি',
@@ -310,9 +310,9 @@
         'mi' => 'মাওরি',
         'mic' => 'মিকম্যাক',
         'min' => 'মিনাংকাবাউ',
-        'mk' => 'ম্যাসিডোনীয়',
-        'ml' => 'মালায়ালাম',
-        'mn' => 'মঙ্গোলিয়',
+        'mk' => 'ম্যাসেডোনিয়া',
+        'ml' => 'মালয়ালম',
+        'mn' => 'মোঙ্গোলীয়',
         'mnc' => 'মাঞ্চু',
         'mni' => 'মণিপুরী',
         'moe' => 'ইন্নু-এমুন',
@@ -320,7 +320,7 @@
         'mos' => 'মসি',
         'mr' => 'মারাঠি',
         'ms' => 'মালয়',
-        'mt' => 'মল্টিয়',
+        'mt' => 'মল্টীয়',
         'mua' => 'মুদাঙ্গ',
         'mus' => 'মুস্কোগী',
         'mwl' => 'মিরান্ডিজ',
@@ -333,8 +333,8 @@
         'naq' => 'নামা',
         'nb' => 'নরওয়েজিয়ান বোকমাল',
         'nd' => 'উত্তর এন্দেবেলে',
-        'nds' => 'নিম্ন জার্মানি',
-        'ne' => 'নেপালী',
+        'nds' => 'জার্মান (নিম্ন)',
+        'ne' => 'নেপালি',
         'new' => 'নেওয়ারি',
         'ng' => 'এন্দোঙ্গা',
         'nia' => 'নিয়াস',
@@ -364,18 +364,18 @@
         'ojs' => 'ওজি-ক্রী',
         'ojw' => 'পশ্চিম ওজিবোয়া',
         'oka' => 'ওকানাগান',
-        'om' => 'অরোমো',
+        'om' => 'ওরোমো',
         'or' => 'ওড়িয়া',
         'os' => 'ওসেটিক',
         'osa' => 'ওসেজ',
         'ota' => 'অটোমান তুর্কি',
-        'pa' => 'পাঞ্জাবী',
+        'pa' => 'পাঞ্জাবি',
         'pag' => 'পাঙ্গাসিনান',
         'pal' => 'পাহ্লাভি',
         'pam' => 'পাম্পাঙ্গা',
         'pap' => 'পাপিয়ামেন্টো',
         'pau' => 'পালায়ুয়ান',
-        'pcm' => 'নাইজেরিয় পিজিন',
+        'pcm' => 'নাইজেরীয় পিজিন',
         'peo' => 'প্রাচীন ফার্সি',
         'phn' => 'ফোনিশীয়ান',
         'pi' => 'পালি',
@@ -386,7 +386,7 @@
         'prg' => 'প্রুশিয়ান',
         'pro' => 'প্রাচীন প্রোভেনসাল',
         'ps' => 'পাশতু',
-        'pt' => 'পর্তুগীজ',
+        'pt' => 'পর্তুগিজ',
         'qu' => 'কেচুয়া',
         'quc' => 'কি‘চে',
         'raj' => 'রাজস্থানী',
@@ -404,7 +404,7 @@
         'rwk' => 'রাওয়া',
         'sa' => 'সংস্কৃত',
         'sad' => 'সান্দাওয়ে',
-        'sah' => 'শাখা',
+        'sah' => 'ইয়াকুট',
         'sam' => 'সামারিটান আরামিক',
         'saq' => 'সামবুরু',
         'sas' => 'সাসাক',
@@ -425,7 +425,7 @@
         'sh' => 'সার্বো-ক্রোয়েশিয়',
         'shi' => 'তাচেলহিত',
         'shn' => 'শান',
-        'si' => 'সিংহলী',
+        'si' => 'সিংহলি',
         'sid' => 'সিডামো',
         'sk' => 'স্লোভাক',
         'sl' => 'স্লোভেনীয়',
@@ -482,7 +482,7 @@
         'tog' => 'নায়াসা টোঙ্গা',
         'tok' => 'টোকি পোনা',
         'tpi' => 'টোক পিসিন',
-        'tr' => 'তুর্কী',
+        'tr' => 'তুর্কি',
         'trv' => 'তারোকো',
         'ts' => 'সঙ্গা',
         'tsi' => 'সিমশিয়ান',
@@ -519,7 +519,7 @@
         'wo' => 'ওলোফ',
         'wuu' => 'উ চীনা',
         'xal' => 'কাল্মাইক',
-        'xh' => 'জোসা',
+        'xh' => 'খোসা',
         'xnr' => 'কাংরি',
         'xog' => 'সোগা',
         'yao' => 'ইয়াও',
@@ -530,7 +530,7 @@
         'yo' => 'ইওরুবা',
         'yrl' => 'নহিংগাটু',
         'yue' => 'ক্যান্টোনিজ',
-        'za' => 'ঝু্য়াঙ',
+        'za' => 'ঝুয়াং',
         'zap' => 'জাপোটেক',
         'zbl' => 'চিত্র ভাষা',
         'zen' => 'জেনাগা',
@@ -542,12 +542,12 @@
     ],
     'LocalizedNames' => [
         'ar_001' => 'আধুনিক আদর্শ আরবি',
-        'en_US' => 'ইংরেজি (আমেরিকা)',
         'es_ES' => 'স্প্যানিশ (ইউরোপ)',
         'fa_AF' => 'দারি',
         'nds_NL' => 'লো স্যাক্সন',
         'nl_BE' => 'ফ্লেমিশ',
-        'pt_PT' => 'পর্তুগীজ (ইউরোপ)',
+        'pt_BR' => 'পর্তুগিজ (ব্রাজিল)',
+        'pt_PT' => 'পর্তুগিজ (ইউরোপ)',
         'ro_MD' => 'মলদাভিয়',
         'sw_CD' => 'কঙ্গো সোয়াহিলি',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/br.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/br.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/br.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/br.php	2026-05-20 10:56:49.000000000 +0200
@@ -10,11 +10,11 @@
         'ady' => 'adygeieg',
         'ae' => 'avesteg',
         'aeb' => 'arabeg Tunizia',
-        'af' => 'afrikaans',
+        'af' => 'afrikaaneg',
         'afh' => 'afrihili',
         'agq' => 'aghem',
         'ain' => 'ainoueg',
-        'ak' => 'akan',
+        'ak' => 'akaneg',
         'akk' => 'akadeg',
         'akz' => 'alabamaeg',
         'ale' => 'aleouteg',
@@ -45,7 +45,7 @@
         'ay' => 'aymara',
         'az' => 'azerbaidjaneg',
         'ba' => 'bachkir',
-        'bal' => 'baloutchi',
+        'bal' => 'baloutcheg',
         'ban' => 'balineg',
         'bar' => 'bavarieg',
         'bas' => 'basaa',
@@ -55,13 +55,14 @@
         'bez' => 'bena',
         'bg' => 'bulgareg',
         'bgn' => 'baloutchi ar Cʼhornôg',
-        'bho' => 'bhojpuri',
+        'bho' => 'bhojpureg',
         'bi' => 'bislama',
         'bik' => 'bikol',
         'bin' => 'bini',
         'bla' => 'siksika',
+        'blo' => 'aniieg',
         'bm' => 'bambara',
-        'bn' => 'bengali',
+        'bn' => 'bengaleg',
         'bo' => 'tibetaneg',
         'br' => 'brezhoneg',
         'bra' => 'braj',
@@ -79,7 +80,7 @@
         'cch' => 'atsam',
         'ccp' => 'chakmaeg',
         'ce' => 'tchetcheneg',
-        'ceb' => 'cebuano',
+        'ceb' => 'cebuanoeg',
         'cgg' => 'chigaeg',
         'ch' => 'chamorru',
         'chb' => 'chibcha',
@@ -87,7 +88,7 @@
         'chm' => 'marieg',
         'cho' => 'choktaw',
         'chp' => 'chipewyan',
-        'chr' => 'cherokee',
+        'chr' => 'cherokieg',
         'chy' => 'cheyenne',
         'ckb' => 'kurdeg sorani',
         'clc' => 'chilkotineg',
@@ -106,7 +107,7 @@
         'csb' => 'kachoubeg',
         'csw' => 'krieg ar gwernioù',
         'cu' => 'slavoneg iliz',
-        'cv' => 'tchouvatch',
+        'cv' => 'tchouvatcheg',
         'cy' => 'kembraeg',
         'da' => 'daneg',
         'dak' => 'dakota',
@@ -143,7 +144,7 @@
         'fa' => 'perseg',
         'fan' => 'fang',
         'fat' => 'fanti',
-        'ff' => 'fula',
+        'ff' => 'fulaeg',
         'fi' => 'finneg',
         'fil' => 'filipineg',
         'fit' => 'finneg traoñienn an Torne',
@@ -160,7 +161,7 @@
         'fur' => 'frioulaneg',
         'fy' => 'frizeg ar Cʼhornôg',
         'ga' => 'iwerzhoneg',
-        'gaa' => 'ga',
+        'gaa' => 'gaeg',
         'gag' => 'gagaouzeg',
         'gan' => 'sinaeg Gan',
         'gay' => 'gayo',
@@ -177,17 +178,17 @@
         'grb' => 'grebo',
         'grc' => 'hencʼhresianeg',
         'gsw' => 'alamaneg Suis',
-        'gu' => 'gujarati',
+        'gu' => 'gujarateg',
         'guz' => 'gusiieg',
         'gv' => 'manaveg',
         'gwi' => 'gwich’in',
-        'ha' => 'haousa',
+        'ha' => 'haousaeg',
         'hai' => 'haideg',
         'hak' => 'sinaeg Hakka',
         'haw' => 'hawaieg',
         'hax' => 'haideg ar Su',
         'he' => 'hebraeg',
-        'hi' => 'hindi',
+        'hi' => 'hindieg',
         'hil' => 'hiligaynon',
         'hmn' => 'hmong',
         'ho' => 'hiri motu',
@@ -200,12 +201,12 @@
         'hur' => 'halkomelemeg',
         'hy' => 'armenianeg',
         'hz' => 'herero',
-        'ia' => 'interlingua',
+        'ia' => 'interlinguaeg',
         'iba' => 'iban',
         'ibb' => 'ibibio',
         'id' => 'indonezeg',
         'ie' => 'interlingue',
-        'ig' => 'igbo',
+        'ig' => 'igboeg',
         'ii' => 'yieg Sichuan',
         'ik' => 'inupiaq',
         'ikt' => 'inuktitut Kanada ar Cʼhornôg',
@@ -241,11 +242,11 @@
         'khq' => 'koyra chiini',
         'ki' => 'kikuyu',
         'kj' => 'kwanyama',
-        'kk' => 'kazak',
+        'kk' => 'kazakeg',
         'kkj' => 'kakoeg',
         'kl' => 'greunlandeg',
         'kln' => 'kalendjineg',
-        'km' => 'khmer',
+        'km' => 'khmereg',
         'kmb' => 'kimbundu',
         'kn' => 'kanareg',
         'ko' => 'koreaneg',
@@ -257,7 +258,7 @@
         'kri' => 'krio',
         'krl' => 'karelieg',
         'kru' => 'kurukh',
-        'ks' => 'kashmiri',
+        'ks' => 'kashmireg',
         'ksb' => 'shambala',
         'ksf' => 'bafiaeg',
         'ksh' => 'koluneg',
@@ -267,7 +268,7 @@
         'kv' => 'komieg',
         'kw' => 'kerneveureg',
         'kwk' => 'kwakwaleg',
-        'ky' => 'kirgiz',
+        'ky' => 'kirgizeg',
         'la' => 'latin',
         'lad' => 'ladino',
         'lag' => 'langi',
@@ -316,14 +317,14 @@
         'mic' => 'mikmakeg',
         'min' => 'minangkabau',
         'mk' => 'makedoneg',
-        'ml' => 'malayalam',
+        'ml' => 'malayalameg',
         'mn' => 'mongoleg',
         'mnc' => 'manchou',
         'mni' => 'manipuri',
         'moe' => 'montagneg',
         'moh' => 'mohawk',
         'mos' => 'more',
-        'mr' => 'marathi',
+        'mr' => 'maratheg',
         'mrj' => 'marieg ar Cʼhornôg',
         'ms' => 'malayseg',
         'mt' => 'malteg',
@@ -356,7 +357,7 @@
         'nov' => 'novial',
         'nqo' => 'nkoeg',
         'nr' => 'ndebele ar Su',
-        'nso' => 'sotho an Norzh',
+        'nso' => 'sothoeg an Norzh',
         'nus' => 'nouereg',
         'nv' => 'navacʼho',
         'nwc' => 'newari klasel',
@@ -372,11 +373,11 @@
         'ojw' => 'ojibweg ar Cʼhornôg',
         'oka' => 'okanaganeg',
         'om' => 'oromoeg',
-        'or' => 'oriya',
+        'or' => 'oriyaeg',
         'os' => 'oseteg',
         'osa' => 'osage',
         'ota' => 'turkeg otoman',
-        'pa' => 'punjabi',
+        'pa' => 'punjabeg',
         'pag' => 'pangasinan',
         'pal' => 'pahlavi',
         'pam' => 'pampanga',
@@ -396,12 +397,12 @@
         'pqm' => 'malisiteg-pasamawkodieg',
         'prg' => 'henbruseg',
         'pro' => 'henbrovañseg',
-        'ps' => 'pachto',
+        'ps' => 'pachtoeg',
         'pt' => 'portugaleg',
         'qu' => 'kechuaeg',
         'quc' => 'kʼicheʼ',
         'qug' => 'kichuaeg Chimborazo',
-        'raj' => 'rajasthani',
+        'raj' => 'rajasthaneg',
         'rap' => 'rapanui',
         'rar' => 'rarotonga',
         'rgn' => 'romagnoleg',
@@ -450,7 +451,7 @@
         'sms' => 'sámi Skolt',
         'sn' => 'shona',
         'snk' => 'soninke',
-        'so' => 'somali',
+        'so' => 'somalieg',
         'sog' => 'sogdieg',
         'sq' => 'albaneg',
         'sr' => 'serbeg',
@@ -458,12 +459,12 @@
         'srr' => 'serer',
         'ss' => 'swati',
         'ssy' => 'sahoeg',
-        'st' => 'sotho ar Su',
+        'st' => 'sothoeg ar Su',
         'su' => 'sundaneg',
         'suk' => 'sukuma',
         'sux' => 'sumereg',
         'sv' => 'svedeg',
-        'sw' => 'swahili',
+        'sw' => 'swahilieg',
         'swb' => 'komoreg',
         'syc' => 'sirieg klasel',
         'syr' => 'sirieg',
@@ -476,9 +477,9 @@
         'teo' => 'tesoeg',
         'ter' => 'tereno',
         'tet' => 'tetum',
-        'tg' => 'tadjik',
-        'th' => 'thai',
-        'ti' => 'tigrigna',
+        'tg' => 'tadjikeg',
+        'th' => 'thaieg',
+        'ti' => 'tigrignaeg',
         'tig' => 'tigreaneg',
         'tiv' => 'tiv',
         'tk' => 'turkmeneg',
@@ -487,8 +488,8 @@
         'tlh' => 'klingon',
         'tli' => 'tinglit',
         'tmh' => 'tamacheg',
-        'tn' => 'tswana',
-        'to' => 'tonga',
+        'tn' => 'tswanaeg',
+        'to' => 'tongaeg',
         'tog' => 'nyasa tonga',
         'tok' => 'toki pona',
         'tpi' => 'tok pisin',
@@ -497,7 +498,7 @@
         'trv' => 'taroko',
         'ts' => 'tsonga',
         'tsi' => 'tsimshian',
-        'tt' => 'tatar',
+        'tt' => 'tatareg',
         'ttm' => 'tutchoneg an Norzh',
         'tum' => 'tumbuka',
         'tvl' => 'tuvalu',
@@ -511,7 +512,7 @@
         'uga' => 'ougariteg',
         'uk' => 'ukraineg',
         'umb' => 'umbundu',
-        'ur' => 'ourdou',
+        'ur' => 'ourdoueg',
         'uz' => 'ouzbekeg',
         'vai' => 'vai',
         've' => 'venda',
@@ -528,10 +529,10 @@
         'wal' => 'walamo',
         'war' => 'waray',
         'was' => 'washo',
-        'wo' => 'wolof',
+        'wo' => 'wolofeg',
         'wuu' => 'sinaeg Wu',
         'xal' => 'kalmouk',
-        'xh' => 'xhosa',
+        'xh' => 'xhosaeg',
         'xmf' => 'megreleg',
         'xog' => 'sogaeg',
         'yao' => 'yao',
@@ -539,7 +540,7 @@
         'yav' => 'yangben',
         'ybb' => 'yemba',
         'yi' => 'yiddish',
-        'yo' => 'yorouba',
+        'yo' => 'yoroubaeg',
         'yrl' => 'nengatoueg',
         'yue' => 'kantoneg',
         'za' => 'zhuang',
@@ -567,6 +568,7 @@
         'fa_AF' => 'dareg',
         'fr_CA' => 'galleg Kanada',
         'fr_CH' => 'galleg Suis',
+        'hi_Latn' => 'hindieg (latin)',
         'nds_NL' => 'saksoneg izel',
         'nl_BE' => 'flandrezeg',
         'pt_BR' => 'portugaleg Brazil',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/cs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/cs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/cs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/cs.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,6 +106,7 @@
         'chp' => 'čipevajština',
         'chr' => 'čerokézština',
         'chy' => 'čejenština',
+        'cic' => 'čikasavština',
         'ckb' => 'kurdština (sorání)',
         'clc' => 'čilkotinština',
         'co' => 'korsičtina',
@@ -322,6 +323,7 @@
         'lil' => 'lillooetština',
         'liv' => 'livonština',
         'lkt' => 'lakotština',
+        'lld' => 'ladinština',
         'lmo' => 'lombardština',
         'ln' => 'lingalština',
         'lo' => 'laoština',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/cv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/cv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/cv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/cv.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,43 +2,354 @@
 
 return [
     'Names' => [
-        'ar' => 'арап',
-        'bn' => 'бенгал',
-        'cv' => 'чӑваш',
-        'de' => 'нимӗҫ',
-        'en' => 'акӑлчан',
-        'es' => 'испани',
-        'fr' => 'франци',
-        'hi' => 'хинди',
-        'id' => 'индонези',
-        'it' => 'итали',
-        'ja' => 'япони',
-        'ko' => 'корей',
-        'nl' => 'голланди',
-        'pl' => 'поляк',
-        'pt' => 'португали',
-        'ru' => 'вырӑс',
-        'th' => 'тай',
-        'tr' => 'турккӑ',
-        'zh' => 'китай',
+        'aa' => 'афар чӗлхи',
+        'ab' => 'абхаз чӗлхи',
+        'af' => 'африкаанс чӗлхи',
+        'agq' => 'агем чӗлхи',
+        'ak' => 'акан чӗлхи',
+        'am' => 'амхар чӗлхи',
+        'an' => 'арагон чӗлхи',
+        'ann' => 'оболо чӗлхи',
+        'apc' => 'левант арап чӗлхи',
+        'ar' => 'араб чӗлхи',
+        'arn' => 'мапуче чӗлхи',
+        'as' => 'ассам чӗлхи',
+        'asa' => 'асу чӗлхи',
+        'ast' => 'астури чӗлхи',
+        'az' => 'азербайджан чӗлхи',
+        'ba' => 'пушкӑрт чӗлхи',
+        'bal' => 'белудж чӗлхи',
+        'bas' => 'баса чӗлхи',
+        'be' => 'беларус чӗлхи',
+        'bem' => 'бемба чӗлхи',
+        'bew' => 'батав чӗлхи',
+        'bez' => 'бена чӗлхи',
+        'bg' => 'болгар чӗлхи',
+        'bgc' => 'харианви чӗлхи',
+        'bgn' => 'анӑҫ белудж чӗлхи',
+        'bho' => 'бходжпури чӗлхи',
+        'blo' => 'ании чӗлхи',
+        'blt' => 'тай-дам чӗлхи',
+        'bm' => 'бамбара чӗлхи',
+        'bn' => 'бенгал чӗлхи',
+        'bo' => 'тибет чӗлхи',
+        'bqi' => 'бахтияр чӗлхи',
+        'br' => 'бретон чӗлхи',
+        'brx' => 'бодо чӗлхи',
+        'bs' => 'босни чӗлхи',
+        'bss' => 'акоосе чӗлхи',
+        'bua' => 'бурят чӗлхи',
+        'byn' => 'билин чӗлхи',
+        'ca' => 'каталан чӗлхи',
+        'cad' => 'каддо чӗлхи',
+        'cch' => 'атсам чӗлхи',
+        'ccp' => 'чакма чӗлхи',
+        'ce' => 'чечен чӗлхи',
+        'ceb' => 'себуано чӗлхи',
+        'cgg' => 'кига чӗлхи',
+        'cho' => 'чоктав чӗлхи',
+        'chr' => 'чероки чӗлхи',
+        'cic' => 'чикасав чӗлхи',
+        'ckb' => 'вӑта курд чӗлхи',
+        'co' => 'корсикан чӗлхи',
+        'cop' => 'копт чӗлхи',
+        'cs' => 'чех чӗлхи',
+        'csw' => 'шурти кри чӗлхи',
+        'cu' => 'чиркӳ славян чӗлхи',
+        'cv' => 'чӑваш чӗлхи',
+        'cy' => 'валли чӗлхи',
+        'da' => 'датчан чӗлхи',
+        'dav' => 'таита чӗлхи',
+        'de' => 'нимӗҫ чӗлхи',
+        'dje' => 'джерма чӗлхи',
+        'doi' => 'догри чӗлхи',
+        'dsb' => 'анатри лужица чӗлхи',
+        'dua' => 'дуала чӗлхи',
+        'dv' => 'мальдив чӗлхи',
+        'dyo' => 'диола-фоньи чӗлхи',
+        'dz' => 'дзонг-кэ чӗлхи',
+        'ebu' => 'эмбу чӗлхи',
+        'ee' => 'эве чӗлхи',
+        'el' => 'грек чӗлхи',
+        'en' => 'акӑлчан чӗлхи',
+        'eo' => 'эсперанто чӗлхи',
+        'es' => 'испан чӗлхи',
+        'et' => 'эстон чӗлхи',
+        'eu' => 'баск чӗлхи',
+        'ewo' => 'эвондо чӗлхи',
+        'fa' => 'перс чӗлхи',
+        'ff' => 'фула чӗлхи',
+        'fi' => 'финн чӗлхи',
+        'fil' => 'филиппин чӗлхи',
+        'fo' => 'фарер чӗлхи',
+        'fr' => 'француз чӗлхи',
+        'frc' => 'каджун француз чӗлхи',
+        'frr' => 'ҫур ҫӗр фриз чӗлхи',
+        'fur' => 'фриу чӗлхи',
+        'fy' => 'анӑҫ фриз чӗлхи',
+        'ga' => 'ирланд чӗлхи',
+        'gaa' => 'га чӗлхи',
+        'gd' => 'гэл чӗлхи',
+        'gez' => 'геэз чӗлхи',
+        'gl' => 'галиси чӗлхи',
+        'gn' => 'гуарани чӗлхи',
+        'gsw' => 'швейцари нимӗҫ чӗлхи',
+        'gu' => 'гуджарати чӗлхи',
+        'guz' => 'гуси чӗлхи',
+        'gv' => 'мэн чӗлхи',
+        'ha' => 'хауса чӗлхи',
+        'haw' => 'гавай чӗлхи',
+        'he' => 'иврит чӗлхи',
+        'hi' => 'хинди чӗлхи',
+        'hnj' => 'хмонг-ну чӗлхи',
+        'hr' => 'хорват чӗлхи',
+        'hsb' => 'тури лужица чӗлхи',
+        'ht' => 'гаитян чӗлхи',
+        'hu' => 'венгер чӗлхи',
+        'hy' => 'эрмен чӗлхи',
+        'ia' => 'интерлингва чӗлхи',
+        'id' => 'индонези чӗлхи',
+        'ie' => 'интерлингве чӗлхи',
+        'ig' => 'игбо чӗлхи',
+        'ii' => 'носу чӗлхи',
+        'io' => 'идо чӗлхи',
+        'is' => 'исланд чӗлхи',
+        'it' => 'итальян чӗлхи',
+        'iu' => 'инуктитут чӗлхи',
+        'ja' => 'япон чӗлхи',
+        'jbo' => 'ложбан чӗлхи',
+        'jgo' => 'нгомба чӗлхи',
+        'jmc' => 'мачаме чӗлхи',
+        'jv' => 'яван чӗлхи',
+        'ka' => 'грузин чӗлхи',
+        'kaa' => 'каракалпак чӗлхи',
+        'kab' => 'кабил чӗлхи',
+        'kaj' => 'каджи чӗлхи',
+        'kam' => 'камба чӗлхи',
+        'kcg' => 'тьяп чӗлхи',
+        'kde' => 'маконде чӗлхи',
+        'kea' => 'кабувердьяну чӗлхи',
+        'kek' => 'кекчи чӗлхи',
+        'ken' => 'ньянг чӗлхи',
+        'kgp' => 'каинганг чӗлхи',
+        'khq' => 'койра-чиини чӗлхи',
+        'ki' => 'кикуйю чӗлхи',
+        'kk' => 'казах чӗлхи',
+        'kkj' => 'како чӗлхи',
+        'kl' => 'гренланд чӗлхи',
+        'kln' => 'календжин чӗлхи',
+        'km' => 'кхмер чӗлхи',
+        'kn' => 'каннада чӗлхи',
+        'ko' => 'корей чӗлхи',
+        'kok' => 'конкани чӗлхи',
+        'kpe' => 'кпелле чӗлхи',
+        'ks' => 'кашмири чӗлхи',
+        'ksb' => 'шамбала чӗлхи',
+        'ksf' => 'бафи чӗлхи',
+        'ksh' => 'кёльн чӗлхи',
+        'ku' => 'курд чӗлхи',
+        'kw' => 'корн чӗлхи',
+        'kxv' => 'куви чӗлхи',
+        'ky' => 'кӑркӑс чӗлхи',
+        'la' => 'латин чӗлхи',
+        'lag' => 'ланго чӗлхи',
+        'lb' => 'люксембург чӗлхи',
+        'lg' => 'ганда чӗлхи',
+        'lij' => 'лигур чӗлхи',
+        'lkt' => 'лакота чӗлхи',
+        'lld' => 'ладин чӗлхи',
+        'lmo' => 'ломбард чӗлхи',
+        'ln' => 'лингала чӗлхи',
+        'lo' => 'лаос чӗлхи',
+        'lou' => 'луизиан креол чӗлхи',
+        'lrc' => 'ҫур ҫӗр лур чӗлхи',
+        'lt' => 'литва чӗлхи',
+        'ltg' => 'латгал чӗлхи',
+        'lu' => 'луба-катанга чӗлхи',
+        'luo' => 'луо чӗлхи',
+        'luy' => 'лухья чӗлхи',
+        'lv' => 'латыш чӗлхи',
+        'lzz' => 'лаз чӗлхи',
+        'mai' => 'майтхили чӗлхи',
+        'mas' => 'масаи чӗлхи',
+        'mdf' => 'мӑкшӑ чӗлхи',
+        'mer' => 'меру чӗлхи',
+        'mfe' => 'маврики креол чӗлхи',
+        'mg' => 'малагас чӗлхи',
+        'mgh' => 'макуа-меетто чӗлхи',
+        'mgo' => 'мета чӗлхи',
+        'mhn' => 'мокен чӗлхи',
+        'mi' => 'маори чӗлхи',
+        'mic' => 'микмак чӗлхи',
+        'mk' => 'македон чӗлхи',
+        'ml' => 'малаялам чӗлхи',
+        'mn' => 'монгол чӗлхи',
+        'mni' => 'манипур чӗлхи',
+        'moh' => 'мохаук чӗлхи',
+        'mr' => 'маратхи чӗлхи',
+        'ms' => 'малай чӗлхи',
+        'mt' => 'мальта чӗлхи',
+        'mua' => 'мунданг чӗлхи',
+        'mus' => 'крик чӗлхи',
+        'mww' => 'хмонг-доу чӗлхи',
+        'my' => 'бирман чӗлхи',
+        'myv' => 'ирҫе чӗлхи',
+        'mzn' => 'мазандеран чӗлхи',
+        'nan' => 'миньнань чӗлхи',
+        'naq' => 'нама чӗлхи',
+        'nb' => 'букмол норвег чӗлхи',
+        'nd' => 'ҫур ҫӗр ндебеле чӗлхи',
+        'nds' => 'анатри нимӗҫ чӗлхи',
+        'ne' => 'непал чӗлхи',
+        'nl' => 'нидерланд чӗлхи',
+        'nmg' => 'квасио чӗлхи',
+        'nn' => 'нюнорск норвег чӗлхи',
+        'nnh' => 'нгиембунд чӗлхи',
+        'no' => 'норвег чӗлхи',
+        'nqo' => 'нко чӗлхи',
+        'nr' => 'кӑнтӑр ндебеле чӗлхи',
+        'nso' => 'ҫур ҫӗр сото чӗлхи',
+        'nus' => 'нуэр чӗлхи',
+        'nv' => 'навахо чӗлхи',
+        'ny' => 'ньянджа чӗлхи',
+        'nyn' => 'ньянколе чӗлхи',
+        'oc' => 'окситан чӗлхи',
+        'oka' => 'оканаган чӗлхи',
+        'om' => 'оромо чӗлхи',
+        'or' => 'ори чӗлхи',
+        'os' => 'осетин чӗлхи',
+        'osa' => 'оседжи чӗлхи',
+        'pa' => 'панджаби чӗлхи',
+        'pap' => 'папьяменто чӗлхи',
+        'pcm' => 'нигери креол чӗлхи',
+        'pi' => 'пали чӗлхи',
+        'pis' => 'соломон пиджин чӗлхи',
+        'pl' => 'поляк чӗлхи',
+        'pms' => 'пьемонт чӗлхи',
+        'prg' => 'прусс чӗлхи',
+        'ps' => 'пушту чӗлхи',
+        'pt' => 'португал чӗлхи',
+        'qu' => 'кечуа чӗлхи',
+        'quc' => 'киче чӗлхи',
+        'raj' => 'раджастхани чӗлхи',
+        'rhg' => 'рохинджа чӗлхи',
+        'rif' => 'риф чӗлхи',
+        'rm' => 'романш чӗлхи',
+        'rn' => 'рунди чӗлхи',
+        'ro' => 'румын чӗлхи',
+        'rof' => 'ромбо чӗлхи',
+        'ru' => 'вырӑс чӗлхи',
+        'rw' => 'киньяруанда чӗлхи',
+        'rwk' => 'руанда чӗлхи',
+        'sa' => 'санскрит чӗлхи',
+        'sah' => 'саха чӗлхи',
+        'saq' => 'самбуру чӗлхи',
+        'sat' => 'сантали чӗлхи',
+        'sbp' => 'сангу чӗлхи',
+        'sc' => 'сардин чӗлхи',
+        'scn' => 'сицил чӗлхи',
+        'sd' => 'синдхи чӗлхи',
+        'sdh' => 'кӑнтӑр алтай чӗлхи',
+        'se' => 'ҫур ҫӗр саам чӗлхи',
+        'seh' => 'сена чӗлхи',
+        'ses' => 'койраборо-сенни чӗлхи',
+        'sg' => 'санго чӗлхи',
+        'sgs' => 'жемайт чӗлхи',
+        'shi' => 'ташельхит чӗлхи',
+        'shn' => 'шан чӗлхи',
+        'si' => 'сингал чӗлхи',
+        'sid' => 'сидама чӗлхи',
+        'sk' => 'словак чӗлхи',
+        'skr' => 'сирайки чӗлхи',
+        'sl' => 'словен чӗлхи',
+        'sma' => 'кӑнтӑр саам чӗлхи',
+        'smj' => 'луле-саам чӗлхи',
+        'smn' => 'инари саам чӗлхи',
+        'sms' => 'колтта-саам чӗлхи',
+        'sn' => 'шона чӗлхи',
+        'so' => 'сомали чӗлхи',
+        'sq' => 'албан чӗлхи',
+        'sr' => 'серб чӗлхи',
+        'ss' => 'свази чӗлхи',
+        'ssy' => 'сахо чӗлхи',
+        'st' => 'кӑнтӑр сото чӗлхи',
+        'su' => 'сундан чӗлхи',
+        'suz' => 'сунвар чӗлхи',
+        'sv' => 'швед чӗлхи',
+        'sw' => 'суахили чӗлхи',
+        'syr' => 'сири чӗлхи',
+        'szl' => 'силез чӗлхи',
+        'ta' => 'тамил чӗлхи',
+        'te' => 'телугу чӗлхи',
+        'teo' => 'тесо чӗлхи',
+        'tg' => 'таджик чӗлхи',
+        'th' => 'тай чӗлхи',
+        'ti' => 'тигринья чӗлхи',
+        'tig' => 'тигре чӗлхи',
+        'tk' => 'туркмен чӗлхи',
+        'tn' => 'тсвана чӗлхи',
+        'to' => 'тонган чӗлхи',
+        'tok' => 'токипона чӗлхи',
+        'tpi' => 'ток-писин чӗлхи',
+        'tr' => 'турккӑ чӗлхи',
+        'trv' => 'седек чӗлхи',
+        'trw' => 'торвали чӗлхи',
+        'ts' => 'тсонга чӗлхи',
+        'tt' => 'тутар чӗлхи',
+        'twq' => 'тасавак чӗлхи',
+        'tyv' => 'тува чӗлхи',
+        'tzm' => 'вӑта атлас тамазигхт чӗлхи',
+        'ug' => 'уйгур чӗлхи',
+        'uk' => 'украин чӗлхи',
+        'ur' => 'урду чӗлхи',
+        'uz' => 'узбек чӗлхи',
+        'vai' => 'ваи чӗлхи',
+        've' => 'венда чӗлхи',
+        'vec' => 'венет чӗлхи',
+        'vi' => 'вьетнам чӗлхи',
+        'vmw' => 'макуа чӗлхи',
+        'vo' => 'волапюк чӗлхи',
+        'vun' => 'вунджо чӗлхи',
+        'wa' => 'валлон чӗлхи',
+        'wae' => 'валлис чӗлхи',
+        'wal' => 'воламо чӗлхи',
+        'wbp' => 'вальбири чӗлхи',
+        'wo' => 'волоф чӗлхи',
+        'xh' => 'коса чӗлхи',
+        'xnr' => 'кангри чӗлхи',
+        'xog' => 'сога чӗлхи',
+        'yav' => 'янгбен чӗлхи',
+        'yi' => 'идиш чӗлхи',
+        'yo' => 'йоруба чӗлхи',
+        'yrl' => 'ньенгату чӗлхи',
+        'yue' => 'кантон чӗлхи',
+        'za' => 'чжуань чӗлхи',
+        'zgh' => 'тамазигхт чӗлхи',
+        'zh' => 'китай чӗлхи',
+        'zu' => 'зулу чӗлхи',
     ],
     'LocalizedNames' => [
-        'ar_001' => 'арап литератури',
-        'de_AT' => 'австрин нимӗҫ',
-        'de_CH' => 'швейцарин нимӗҫ',
-        'en_AU' => 'австралин акӑлчан',
-        'en_CA' => 'канадӑн акӑлчан',
-        'en_GB' => 'британин акӑлчан',
-        'en_US' => 'америкӑн акӑлчан',
-        'es_419' => 'латинла америкӑн испани',
-        'es_ES' => 'европӑн испани',
-        'es_MX' => 'мексикӑн испани',
-        'fr_CA' => 'канадӑн франци',
-        'fr_CH' => 'швейцарӗн франци',
-        'nl_BE' => 'фламанди',
-        'pt_BR' => 'бразилин португали',
-        'pt_PT' => 'европӑн португали',
-        'zh_Hans' => 'китай, ҫӑмӑллатнӑ ҫыру',
-        'zh_Hant' => 'китай, традициллӗ ҫыру',
+        'ar_001' => 'хальхи стандартлӑ араб чӗлхи',
+        'de_AT' => 'австри нимӗҫ чӗлхи',
+        'de_CH' => 'швейцари тури нимӗҫ чӗлхи',
+        'en_AU' => 'австрали акӑлчан чӗлхи',
+        'en_CA' => 'канада акӑлчан чӗлхи',
+        'en_GB' => 'британи акӑлчан чӗлхи',
+        'en_US' => 'америка акӑлчан чӗлхи',
+        'es_419' => 'латинла америка испан чӗлхи',
+        'es_ES' => 'европа испан чӗлхи',
+        'es_MX' => 'мексика испан чӗлхи',
+        'fa_AF' => 'дари чӗлхи',
+        'fr_CA' => 'канада француз чӗлхи',
+        'fr_CH' => 'швейцари француз чӗлхи',
+        'hi_Latn' => 'хинди чӗлхи (латин ҫырулӑхӗ)',
+        'nds_NL' => 'анатри саксон чӗлхи',
+        'nl_BE' => 'фламанд чӗлхи',
+        'pt_BR' => 'бразили португал чӗлхи',
+        'pt_PT' => 'португали португал чӗлхи',
+        'ro_MD' => 'молдаван чӗлхи',
+        'sw_CD' => 'конго суахили чӗлхи',
+        'zh_Hans' => 'ҫӑмӑллатнӑ китай чӗлхи',
+        'zh_Hant' => 'йӑлана кӗнӗ китай чӗлхи',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/el.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/el.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/el.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/el.php	2026-05-20 10:56:49.000000000 +0200
@@ -338,6 +338,7 @@
         'myv' => 'Έρζια',
         'mzn' => 'Μαζαντεράνι',
         'na' => 'Ναούρου',
+        'nan' => 'Μιν Ναν',
         'nap' => 'Ναπολιτανικά',
         'naq' => 'Νάμα',
         'nb' => 'Νορβηγικά Μποκμάλ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/en_IN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/en_IN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/en_IN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/en_IN.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-<?php
-
-return [
-    'Names' => [
-        'bn' => 'Bengali',
-    ],
-    'LocalizedNames' => [],
-];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/en.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/en.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/en.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/en.php	2026-05-20 10:56:49.000000000 +0200
@@ -270,6 +270,7 @@
         'kcg' => 'Tyap',
         'kde' => 'Makonde',
         'kea' => 'Kabuverdianu',
+        'kek' => 'Qʼeqchiʼ',
         'ken' => 'Kenyang',
         'kfo' => 'Koro',
         'kg' => 'Kongo',
@@ -483,7 +484,7 @@
         'saq' => 'Samburu',
         'sas' => 'Sasak',
         'sat' => 'Santali',
-        'saz' => 'Saurashtra',
+        'saz' => 'Sourashtra',
         'sba' => 'Ngambay',
         'sbp' => 'Sangu',
         'sc' => 'Sardinian',
@@ -556,7 +557,7 @@
         'tig' => 'Tigre',
         'tiv' => 'Tiv',
         'tk' => 'Turkmen',
-        'tkl' => 'Tokelau',
+        'tkl' => 'Tokelauan',
         'tkr' => 'Tsakhur',
         'tl' => 'Tagalog',
         'tlh' => 'Klingon',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/eo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/eo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/eo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/eo.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,155 +4,445 @@
     'Names' => [
         'aa' => 'afara',
         'ab' => 'abĥaza',
+        'ace' => 'aĉea',
+        'ada' => 'dangba',
+        'ady' => 'adigea',
         'af' => 'afrikansa',
+        'ain' => 'ajnua',
+        'ak' => 'akana',
+        'ale' => 'aleuta',
+        'alt' => 'sud-altaja',
         'am' => 'amhara',
+        'an' => 'aragona',
+        'anp' => 'angika',
+        'apc' => 'araba levantenia',
         'ar' => 'araba',
+        'arn' => 'mapuĉa',
+        'arp' => 'arapaha',
+        'ars' => 'araba naĝda',
         'as' => 'asama',
+        'ast' => 'astura',
+        'atj' => 'atikameka',
+        'av' => 'avara',
+        'awa' => 'avadhia',
         'ay' => 'ajmara',
         'az' => 'azerbajĝana',
         'ba' => 'baŝkira',
+        'bal' => 'baluĉa',
+        'ban' => 'balia',
+        'bas' => 'basaa',
         'be' => 'belorusa',
+        'bem' => 'bemba',
+        'bew' => 'batavia',
+        'bez' => 'benaa',
         'bg' => 'bulgara',
-        'bi' => 'bislamo',
+        'bgc' => 'harjana',
+        'bho' => 'boĝpura',
+        'bi' => 'Bislamo',
+        'bin' => 'edoa',
+        'bla' => 'nigrapieda',
+        'blo' => 'aniia',
+        'bm' => 'bambara',
         'bn' => 'bengala',
         'bo' => 'tibeta',
+        'bqi' => 'baĥtiara',
         'br' => 'bretona',
+        'brx' => 'bodoa',
         'bs' => 'bosna',
+        'bua' => 'burjata',
+        'bug' => 'buĝia',
+        'byn' => 'bilena',
         'ca' => 'kataluna',
+        'cay' => 'kajuga',
+        'ccp' => 'ĉakma',
+        'ce' => 'ĉeĉena',
+        'ceb' => 'cebua',
+        'cgg' => 'kigaa',
+        'ch' => 'ĉamora',
+        'chk' => 'ĉuuka',
+        'chm' => 'maria',
+        'cho' => 'ĉaktaa',
+        'chp' => 'ĉipevajana',
+        'chr' => 'ĉeroka',
+        'chy' => 'ĉejena',
+        'ckb' => 'kurda centra',
+        'clc' => 'ĉilkotina',
         'co' => 'korsika',
+        'cop' => 'kopta',
+        'crg' => 'miĉifa',
+        'crj' => 'kria jakob-golfa suda',
+        'crk' => 'kria preria',
+        'crl' => 'kria jakob-golfa norda',
+        'crm' => 'kria alka',
+        'crr' => 'algonkena (Norda Karolino)',
         'cs' => 'ĉeĥa',
+        'csw' => 'kria marĉa',
+        'cu' => 'malnovslava',
+        'cv' => 'ĉuvaŝa',
         'cy' => 'kimra',
         'da' => 'dana',
+        'dak' => 'dakota',
+        'dar' => 'dargva',
+        'dav' => 'taitaa',
         'de' => 'germana',
+        'dgr' => 'dogriba',
+        'dje' => 'zarmaa',
+        'doi' => 'dogra',
+        'dsb' => 'malsuprasoraba',
+        'dua' => 'dualaa',
         'dv' => 'maldiva',
-        'dz' => 'dzonko',
-        'efi' => 'ibibioefika',
+        'dyo' => 'djola',
+        'dz' => 'Dzonko',
+        'dzg' => 'dazaa',
+        'ebu' => 'embua',
+        'ee' => 'evea',
+        'efi' => 'efika',
+        'eka' => 'ekaĝuka',
         'el' => 'greka',
         'en' => 'angla',
         'eo' => 'Esperanto',
         'es' => 'hispana',
         'et' => 'estona',
         'eu' => 'eŭska',
+        'ewo' => 'eunda',
         'fa' => 'persa',
+        'ff' => 'fula',
         'fi' => 'finna',
         'fil' => 'filipina',
         'fj' => 'fiĝia',
         'fo' => 'feroa',
+        'fon' => 'fonua',
         'fr' => 'franca',
+        'frc' => 'kaĵun-franca',
+        'frr' => 'nord-frisa',
+        'fur' => 'friula',
         'fy' => 'okcident-frisa',
         'ga' => 'irlanda',
-        'gaa' => 'gaa',
         'gd' => 'skot-gaela',
+        'gez' => 'geeza',
+        'gil' => 'kiribata',
         'gl' => 'galega',
         'gn' => 'gvarania',
+        'gor' => 'gorontala',
+        'gsw' => 'svisgermana',
         'gu' => 'guĝarata',
+        'guz' => 'gusia',
+        'gv' => 'manksa',
+        'gwi' => 'gviĉina',
         'ha' => 'haŭsa',
+        'hai' => 'haida',
         'haw' => 'havaja',
+        'hax' => 'sud-haida',
         'he' => 'hebrea',
-        'hi' => 'hinda',
+        'hi' => 'hindia',
+        'hil' => 'hiligajnona',
+        'hmn' => 'hmonga',
+        'hnj' => 'verd-hmonga',
         'hr' => 'kroata',
+        'hsb' => 'suprasoraba',
         'ht' => 'haitia kreola',
         'hu' => 'hungara',
+        'hup' => 'hupa',
+        'hur' => 'halkomelema',
         'hy' => 'armena',
+        'hz' => 'herera',
         'ia' => 'Interlingvao',
+        'iba' => 'ibana',
+        'ibb' => 'ibibia',
         'id' => 'indonezia',
         'ie' => 'Interlingveo',
-        'ik' => 'eskima',
+        'ig' => 'igba',
+        'ii' => 'jia',
+        'ik' => 'injupiaka',
+        'ikt' => 'inuvialuktuna',
+        'ilo' => 'iloka',
+        'inh' => 'inguŝa',
+        'io' => 'Ido',
         'is' => 'islanda',
         'it' => 'itala',
-        'iu' => 'inuita',
+        'iu' => 'inuktituta',
         'ja' => 'japana',
+        'jbo' => 'Loĵbano',
+        'jmc' => 'ĉaga (Kimaĉame)',
         'jv' => 'java',
         'ka' => 'kartvela',
+        'kaa' => 'karakalpaka',
+        'kab' => 'kabila',
+        'kac' => 'kaĉina',
+        'kam' => 'kambaa',
+        'kbd' => 'kabarda',
+        'kde' => 'makonda',
+        'kea' => 'kaboverda kreola',
+        'kek' => 'kekĉia',
+        'kfo' => 'malinka (Koro)',
+        'kgp' => 'kainganga',
+        'ki' => 'kikuja',
+        'kj' => 'kuanjama',
         'kk' => 'kazaĥa',
         'kl' => 'gronlanda',
+        'kln' => 'kalenĝina',
         'km' => 'kmera',
+        'kmb' => 'kimbunda',
         'kn' => 'kanara',
         'ko' => 'korea',
+        'kok' => 'konkana',
+        'kpe' => 'kpelea',
+        'kr' => 'kanura',
+        'krc' => 'karaĉaj-balkara',
+        'krl' => 'karela',
+        'kru' => 'kuruksa',
         'ks' => 'kaŝmira',
+        'ksb' => 'ŝambaa',
+        'ksh' => 'kolonja',
         'ku' => 'kurda',
+        'kum' => 'kumika',
+        'kv' => 'komia',
+        'kw' => 'kornvala',
         'ky' => 'kirgiza',
-        'la' => 'latino',
+        'la' => 'Latino',
+        'lad' => 'judhispana',
+        'lag' => 'rangia',
         'lb' => 'luksemburga',
+        'lez' => 'lezga',
+        'lg' => 'ganda',
+        'li' => 'limburga',
+        'lij' => 'ligura',
+        'lil' => 'lilueta',
+        'lkt' => 'lakota',
+        'lld' => 'ladina',
+        'lmo' => 'lombarda',
         'ln' => 'lingala',
         'lo' => 'laŭa',
+        'lou' => 'luiziana kreola',
+        'loz' => 'lozia',
+        'lrc' => 'nord-lura',
         'lt' => 'litova',
+        'ltg' => 'latgala',
+        'lu' => 'katanga-luba',
+        'lua' => 'kasaja-luba',
+        'lun' => 'lundaa',
+        'luo' => 'lua',
+        'luy' => 'luhia',
         'lv' => 'latva',
+        'lzz' => 'laza',
+        'mad' => 'madura',
+        'mag' => 'magaha',
+        'mai' => 'majtila',
+        'mak' => 'makasara',
+        'mas' => 'masaja',
+        'mdf' => 'mokŝa',
+        'men' => 'mendea',
+        'mer' => 'merua',
+        'mfe' => 'maŭricia kreola',
         'mg' => 'malagasa',
+        'mgh' => 'makua (Meetto)',
+        'mh' => 'marŝala',
         'mi' => 'maoria',
+        'mic' => 'mikmaka',
+        'min' => 'minankabaŭa',
         'mk' => 'makedona',
         'ml' => 'malajalama',
         'mn' => 'mongola',
+        'mni' => 'manipura',
+        'moe' => 'inua',
+        'moh' => 'mohoka',
+        'mos' => 'mosia',
         'mr' => 'marata',
         'ms' => 'malaja',
         'mt' => 'malta',
+        'mua' => 'mundanga',
+        'mus' => 'krika',
+        'mwl' => 'miranda',
+        'mww' => 'blank-hmonga',
         'my' => 'birma',
+        'myv' => 'erzja',
+        'mzn' => 'mazandarana',
         'na' => 'naura',
+        'nap' => 'napola',
+        'naq' => 'nama',
         'nb' => 'dannorvega',
+        'nd' => 'nord-matabela',
+        'nds' => 'platgermana',
         'ne' => 'nepala',
+        'new' => 'nevara',
+        'ng' => 'ndonga',
+        'nia' => 'niasa',
+        'niu' => 'niua',
         'nl' => 'nederlanda',
         'nn' => 'novnorvega',
         'no' => 'norvega',
+        'nog' => 'nogaja',
+        'nqo' => 'N’Ko',
+        'nr' => 'sud-matabela',
+        'nso' => 'nord-sota',
+        'nus' => 'nuera',
+        'nv' => 'navaha',
+        'ny' => 'njanĝa',
+        'nyn' => 'njankora',
         'oc' => 'okcitana',
+        'ojb' => 'oĝibva nordokcidenta',
+        'ojc' => 'oĝibva centra',
+        'ojw' => 'oĝibva okcidenta',
+        'oka' => 'okanagana',
         'om' => 'oroma',
-        'or' => 'orijo',
+        'or' => 'Orijo',
+        'os' => 'oseta',
         'pa' => 'panĝaba',
+        'pag' => 'pangasina',
+        'pam' => 'pampanga',
+        'pap' => 'Papiamento',
+        'pau' => 'palaŭa',
+        'pcm' => 'niĝeria piĝino',
+        'pi' => 'palia',
+        'pis' => 'Piĵino',
         'pl' => 'pola',
+        'pms' => 'piemonta',
+        'prg' => 'prusa',
         'ps' => 'paŝtua',
         'pt' => 'portugala',
         'qu' => 'keĉua',
+        'quc' => 'kiĉea',
+        'raj' => 'raĝastana',
+        'rap' => 'rapanuia',
+        'rar' => 'maoria kukinsula',
+        'rhg' => 'rohinĝa',
+        'rif' => 'rifa',
         'rm' => 'romanĉa',
         'rn' => 'burunda',
         'ro' => 'rumana',
+        'rof' => 'ĉaga (Kirombo)',
         'ru' => 'rusa',
+        'rup' => 'arumana',
         'rw' => 'ruanda',
-        'sa' => 'sanskrito',
+        'rwk' => 'ĉaga (Rwa)',
+        'sa' => 'Sanskrito',
+        'sad' => 'sandavea',
+        'sah' => 'jakuta',
+        'saq' => 'samburua',
+        'sat' => 'santala',
+        'sba' => 'gambaja',
+        'sbp' => 'sangua',
+        'sc' => 'sarda',
+        'scn' => 'sicilia',
+        'sco' => 'skota',
         'sd' => 'sinda',
+        'sdh' => 'sud-kurda',
+        'se' => 'nord-samea',
         'sg' => 'sangoa',
-        'sh' => 'serbo-Kroata',
+        'sgs' => 'ĵemajtia',
+        'sh' => 'serbokroata',
+        'shi' => 'ŝelha',
+        'shn' => 'ŝana',
         'si' => 'sinhala',
+        'sid' => 'sidama',
         'sk' => 'slovaka',
+        'skr' => 'saraika',
         'sl' => 'slovena',
+        'slh' => 'sud-laŝucida',
         'sm' => 'samoa',
+        'sma' => 'sud-samea',
+        'smj' => 'lule-samea',
+        'smn' => 'anar-samea',
+        'sms' => 'skolt-samea',
         'sn' => 'ŝona',
+        'snk' => 'soninka',
         'so' => 'somala',
         'sq' => 'albana',
         'sr' => 'serba',
+        'srn' => 'surinama',
         'ss' => 'svazia',
+        'ssy' => 'saha',
         'st' => 'sota',
+        'str' => 'saliŝa nord-markola',
         'su' => 'sunda',
+        'suk' => 'sukuma',
         'sv' => 'sveda',
         'sw' => 'svahila',
+        'swb' => 'komora',
+        'syr' => 'siria',
+        'szl' => 'silezi-pola',
         'ta' => 'tamila',
+        'tce' => 'sud-tuĉona',
         'te' => 'telugua',
+        'tem' => 'temna',
+        'teo' => 'tesa',
+        'tet' => 'tetuna',
         'tg' => 'taĝika',
+        'tgx' => 'tagiŝa',
         'th' => 'taja',
+        'tht' => 'taltana',
         'ti' => 'tigraja',
+        'tig' => 'tigrea',
         'tk' => 'turkmena',
         'tl' => 'tagaloga',
         'tlh' => 'klingona',
+        'tli' => 'tlingita',
         'tn' => 'cvana',
-        'to' => 'tongana',
+        'to' => 'tonga',
+        'tok' => 'Tokipono',
+        'tpi' => 'Tokpisino',
         'tr' => 'turka',
+        'trv' => 'sedeka',
+        'trw' => 'torvalia',
         'ts' => 'conga',
         'tt' => 'tatara',
+        'ttm' => 'nord-tuĉona',
+        'tum' => 'tumbuka',
+        'tvl' => 'tuvala',
+        'ty' => 'tahitia',
+        'tyv' => 'tuva',
+        'tzm' => 'tamaziĥta mez-atlasa',
+        'udm' => 'udmurta',
         'ug' => 'ujgura',
         'uk' => 'ukraina',
-        'ur' => 'urduo',
+        'umb' => 'ovimbunda',
+        'ur' => 'Urduo',
         'uz' => 'uzbeka',
+        'vai' => 'vaja',
+        've' => 'vendaa',
+        'vec' => 'venecia',
         'vi' => 'vjetnama',
+        'vmw' => 'makua',
         'vo' => 'Volapuko',
+        'vun' => 'ĉaga (Kivunjo)',
+        'wa' => 'valona',
+        'wae' => 'germana valza',
+        'wal' => 'velajtaa',
+        'war' => 'varaja',
         'wo' => 'volofa',
+        'wuu' => 'vua',
+        'xal' => 'kalmuka',
         'xh' => 'ksosa',
-        'yi' => 'jida',
+        'xnr' => 'kangra',
+        'yi' => 'judgermana',
         'yo' => 'joruba',
+        'yrl' => 'nengatua',
+        'yue' => 'kantona',
         'za' => 'ĝuanga',
+        'zgh' => 'tamaziĥta maroka norma',
         'zh' => 'ĉina',
         'zu' => 'zulua',
+        'zun' => 'zunjia',
+        'zza' => 'zazaa',
     ],
     'LocalizedNames' => [
+        'ar_001' => 'araba moderna norma',
+        'de_AT' => 'germana aŭstra',
+        'de_CH' => 'germana svisa',
+        'en_AU' => 'angla aŭstralia',
+        'en_CA' => 'angla kanada',
+        'en_GB' => 'angla brita',
+        'en_US' => 'angla usona',
+        'es_419' => 'hispana amerika',
+        'es_ES' => 'hispana eŭropa',
+        'es_MX' => 'hispana meksika',
+        'fr_CA' => 'franca kanada',
+        'fr_CH' => 'franca svisa',
+        'hi_Latn' => 'hindia (latina)',
+        'nl_BE' => 'flandra',
         'pt_BR' => 'portugala brazila',
         'pt_PT' => 'portugala eŭropa',
+        'ro_MD' => 'moldava',
         'zh_Hans' => 'ĉina simpligita',
         'zh_Hant' => 'ĉina tradicia',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_419.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_419.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_419.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_419.php	2026-05-20 10:56:49.000000000 +0200
@@ -10,24 +10,20 @@
         'eu' => 'vasco',
         'goh' => 'alemán de la alta edad antigua',
         'grc' => 'griego clásico',
-        'gu' => 'gujarati',
         'ht' => 'haitiano',
         'kbd' => 'cabardiano',
         'krc' => 'karachái-bálkaro',
-        'ks' => 'cachemiro',
         'lij' => 'genovés',
         'ml' => 'malabar',
         'mni' => 'manipuri',
         'nr' => 'ndebele del sur',
         'nso' => 'sesotho del norte',
-        'pa' => 'panyabí',
         'prg' => 'prusiano antiguo',
         'rm' => 'retorrománico',
         'sd' => 'sindhi',
         'shu' => 'árabe (Chad)',
         'sma' => 'sami del sur',
         'st' => 'sesotho del sur',
-        'sw' => 'swahili',
         'syr' => 'siríaco',
         'tet' => 'tetun',
         'tyv' => 'tuvano',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_AR.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_AR.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_AR.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_AR.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_BO.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_BO.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_BO.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_BO.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CL.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CL.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CL.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CL.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CO.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CO.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CO.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CO.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CR.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CR.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CR.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_CR.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_DO.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_DO.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_DO.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_DO.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_EC.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_EC.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_EC.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_EC.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_GT.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_GT.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_GT.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_GT.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_HN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_HN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_HN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_HN.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_MX.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_MX.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_MX.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_MX.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,11 +38,9 @@
         'nso' => 'sotho septentrional',
         'ojb' => 'ojibwa del noroeste',
         'ojw' => 'ojibwa del oeste',
-        'pa' => 'punyabí',
         'shu' => 'árabe chadiano',
         'slh' => 'lushootseed del sur',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'syr' => 'siriaco',
         'tce' => 'tutchone del sur',
         'wuu' => 'chino wu',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_NI.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_NI.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_NI.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_NI.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PA.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PE.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PE.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PE.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PE.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PY.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PY.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PY.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_PY.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_VE.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_VE.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_VE.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/es_VE.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,9 +8,7 @@
         'eu' => 'euskera',
         'grc' => 'griego antiguo',
         'nso' => 'sotho septentrional',
-        'pa' => 'punyabí',
         'ss' => 'siswati',
-        'sw' => 'suajili',
         'tn' => 'setswana',
         'wo' => 'wolof',
         'zgh' => 'tamazight marroquí estándar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/et.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/et.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/et.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/et.php	2026-05-20 10:56:49.000000000 +0200
@@ -272,7 +272,7 @@
         'kgp' => 'kaingangi',
         'kha' => 'khasi',
         'kho' => 'saka',
-        'khq' => 'koyra chiini',
+        'khq' => 'koiratšiini',
         'khw' => 'khovari',
         'ki' => 'kikuju',
         'kiu' => 'kõrmandžki',
@@ -438,7 +438,7 @@
         'pdc' => 'Pennsylvania saksa',
         'pdt' => 'mennoniidisaksa',
         'peo' => 'vanapärsia',
-        'pfl' => 'Pfalzi',
+        'pfl' => 'pfaltsi',
         'phn' => 'foiniikia',
         'pi' => 'paali',
         'pis' => 'pijini',
@@ -491,7 +491,7 @@
         'seh' => 'sena',
         'sei' => 'seri',
         'sel' => 'sölkupi',
-        'ses' => 'koyraboro senni',
+        'ses' => 'koiraborosenni',
         'sg' => 'sango',
         'sga' => 'vanaiiri',
         'sgs' => 'žemaidi',
@@ -529,6 +529,7 @@
         'suk' => 'sukuma',
         'sus' => 'susu',
         'sux' => 'sumeri',
+        'suz' => 'sunvari',
         'sv' => 'rootsi',
         'sw' => 'suahiili',
         'swb' => 'komoori',
@@ -576,7 +577,7 @@
         'tum' => 'tumbuka',
         'tvl' => 'tuvalu',
         'tw' => 'tvii',
-        'twq' => 'taswaqi',
+        'twq' => 'tasavaki',
         'ty' => 'tahiti',
         'tyv' => 'tõva',
         'tzm' => 'tamasikti',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/eu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/eu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/eu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/eu.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,6 +31,7 @@
         'ay' => 'aimara',
         'az' => 'azerbaijanera',
         'ba' => 'baxkirera',
+        'bal' => 'balutxera',
         'ban' => 'baliera',
         'bas' => 'basaa',
         'be' => 'bielorrusiera',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/fi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/fi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/fi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/fi.php	2026-05-20 10:56:49.000000000 +0200
@@ -271,6 +271,7 @@
         'kcg' => 'tyap',
         'kde' => 'makonde',
         'kea' => 'kapverdenkreoli',
+        'kek' => 'qʼeqchiʼ',
         'ken' => 'kenyang',
         'kfo' => 'norsunluurannikonkoro',
         'kg' => 'kongo',
@@ -364,6 +365,7 @@
         'mgh' => 'makua-meetto',
         'mgo' => 'meta’',
         'mh' => 'marshall',
+        'mhn' => 'mócheno',
         'mi' => 'maori',
         'mic' => 'micmac',
         'min' => 'minangkabau',
@@ -536,6 +538,7 @@
         'suk' => 'sukuma',
         'sus' => 'susu',
         'sux' => 'sumeri',
+        'suz' => 'sunwar',
         'sv' => 'ruotsi',
         'sw' => 'swahili',
         'swb' => 'komori',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ga.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ga.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ga.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ga.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,6 +34,7 @@
         'ay' => 'Aidhmiris',
         'az' => 'Asarbaiseáinis',
         'ba' => 'Baiscíris',
+        'bal' => 'Balúitsis',
         'ban' => 'Bailís',
         'bar' => 'Baváiris',
         'bas' => 'Basáis',
@@ -83,7 +84,7 @@
         'crs' => 'Criól Fraincise Seselwa',
         'cs' => 'Seicis',
         'csb' => 'Caisiúibis',
-        'csw' => 'Swampy Cree',
+        'csw' => 'Craís na gCorcach',
         'cu' => 'Slavais na hEaglaise',
         'cv' => 'Suvaisis',
         'cy' => 'Breatnais',
@@ -174,7 +175,7 @@
         'id' => 'Indinéisis',
         'ie' => 'Interlingue',
         'ig' => 'Íogbóis',
-        'ii' => 'Ís Shichuan',
+        'ii' => 'Ís Sichuan',
         'ik' => 'Iniúipiaicis',
         'ikt' => 'Ionúitis Iarthar Cheanada',
         'ilo' => 'Ileacáinis',
@@ -327,14 +328,14 @@
         'ojw' => 'Óisibis an Iarthar',
         'oka' => 'Okanagan',
         'om' => 'Oraimis',
-        'or' => 'Odia',
+        'or' => 'Oirísis',
         'os' => 'Oiséitis',
         'pa' => 'Puinseáibis',
         'pag' => 'Pangasaíneánais',
         'pam' => 'Pampaingis',
         'pap' => 'Paipeamaintis',
         'pau' => 'Palabhais',
-        'pcm' => 'pidsean na Nigéire',
+        'pcm' => 'Pidsean na Nigéire',
         'peo' => 'Sean-Pheirsis',
         'pi' => 'Páilis',
         'pis' => 'Pijin',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/gd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/gd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/gd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/gd.php	2026-05-20 10:56:49.000000000 +0200
@@ -267,6 +267,7 @@
         'kcg' => 'Tyap',
         'kde' => 'Makonde',
         'kea' => 'Kabuverdianu',
+        'kek' => 'Qʼeqchiʼ',
         'ken' => 'Kenyang',
         'kfo' => 'Koro',
         'kg' => 'Kongo',
@@ -494,6 +495,7 @@
         'ses' => 'Koyraboro Senni',
         'sg' => 'Sango',
         'sga' => 'Seann-Ghaeilge',
+        'sgs' => 'Samogitis',
         'sh' => 'Sèirb-Chròthaisis',
         'shi' => 'Tachelhit',
         'shn' => 'Shan',
@@ -525,6 +527,7 @@
         'suk' => 'Sukuma',
         'sus' => 'Susu',
         'sux' => 'Cànan Sumer',
+        'suz' => 'Sunwar',
         'sv' => 'Suainis',
         'sw' => 'Kiswahili',
         'swb' => 'Comorais',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/gl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/gl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/gl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/gl.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,6 +32,7 @@
         'ay' => 'aimará',
         'az' => 'acerbaixano',
         'ba' => 'baxkir',
+        'bal' => 'baluchi',
         'ban' => 'balinés',
         'bas' => 'basaa',
         'be' => 'belaruso',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ha.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ha.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ha.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ha.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,7 +6,7 @@
         'ace' => 'Achinese',
         'ada' => 'Adangme',
         'ady' => 'Adyghe',
-        'af' => 'Afirkanci',
+        'af' => 'Afrikaans',
         'agq' => 'Aghem',
         'ain' => 'Ainu',
         'ak' => 'Akan',
@@ -29,6 +29,7 @@
         'ay' => 'Aymaranci',
         'az' => 'Azerbaijanci',
         'ba' => 'Bashkir',
+        'bal' => 'Baluchi',
         'ban' => 'Balenesanci',
         'bas' => 'Basaa',
         'be' => 'Belarusanci',
@@ -300,7 +301,7 @@
         'pis' => 'Pijin',
         'pl' => 'Harshen Polan',
         'pqm' => 'Maliseet-Passamaquoddy',
-        'prg' => 'Ferusawa',
+        'prg' => 'Yaren Prussia',
         'ps' => 'Pashtanci',
         'pt' => 'Harshen Potugis',
         'qu' => 'Quechua',
@@ -348,7 +349,7 @@
         'sr' => 'Sabiyan',
         'srn' => 'Sranan Tongo',
         'ss' => 'Swati',
-        'st' => 'Sesotanci',
+        'st' => 'Kudancin Sotho',
         'str' => 'Straits Salish',
         'su' => 'Harshen Sundanese',
         'suk' => 'Sukuma',
@@ -435,6 +436,7 @@
         'fa_AF' => 'Farisanci na Afaganistan',
         'fr_CA' => 'Farasanci Kanada',
         'fr_CH' => 'Farasanci Suwizalan',
+        'nl_BE' => 'Flemish',
         'pt_BR' => 'Harshen Potugis na Birazil',
         'pt_PT' => 'Potugis Ƙasashen Turai',
         'zh_Hans' => 'Sauƙaƙaƙƙen Sinanci',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hi_Latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hi_Latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hi_Latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hi_Latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,7 +4,6 @@
     'Names' => [
         'af' => 'Afreeki',
         'bgc' => 'Hariyaanvi',
-        'bn' => 'Bangla',
         'bo' => 'Tibbati',
         'ckb' => 'Kurdish, Sorani',
         'crh' => 'Crimean Turkish',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hi.php	2026-05-20 10:56:49.000000000 +0200
@@ -199,7 +199,7 @@
         'iba' => 'इबान',
         'ibb' => 'इबिबियो',
         'id' => 'इंडोनेशियाई',
-        'ie' => 'ईन्टरलिंगुइ',
+        'ie' => 'इंटरलिंग',
         'ig' => 'ईग्बो',
         'ii' => 'सिचुआन यी',
         'ik' => 'इनुपियाक्',
@@ -276,7 +276,7 @@
         'lij' => 'लिगुरियन',
         'lil' => 'लिलोएट',
         'lkt' => 'लैकोटा',
-        'lmo' => 'लॉमबर्ड',
+        'lmo' => 'लोम्बार्ड',
         'ln' => 'लिंगाला',
         'lo' => 'लाओ',
         'lol' => 'मोंगो',
@@ -499,7 +499,7 @@
         'tyv' => 'तुवीनियन',
         'tzm' => 'मध्य एटलस तमाज़ित',
         'udm' => 'उदमुर्त',
-        'ug' => 'उइगर',
+        'ug' => 'उईग़ूर',
         'uga' => 'युगैरिटिक',
         'uk' => 'यूक्रेनियाई',
         'umb' => 'उम्बुन्डु',
@@ -507,7 +507,7 @@
         'uz' => 'उज़्बेक',
         'vai' => 'वाई',
         've' => 'वेन्दा',
-        'vec' => 'वनीशन',
+        'vec' => 'वेनीशियन',
         'vi' => 'वियतनामी',
         'vmw' => 'मखुवा',
         'vo' => 'वोलापुक',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/hy.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,6 +38,7 @@
         'ay' => 'այմարա',
         'az' => 'ադրբեջաներեն',
         'ba' => 'բաշկիրերեն',
+        'bal' => 'բելուջերեն',
         'ban' => 'բալիերեն',
         'bas' => 'բասաա',
         'be' => 'բելառուսերեն',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ia.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ia.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ia.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ia.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,10 +50,12 @@
         'bm' => 'bambara',
         'bn' => 'bengalese',
         'bo' => 'tibetano',
+        'bqi' => 'bakhtiari',
         'br' => 'breton',
         'brx' => 'bodo',
         'bs' => 'bosniaco',
         'bss' => 'akoose',
+        'bua' => 'buriato',
         'bug' => 'buginese',
         'byn' => 'blin',
         'ca' => 'catalano',
@@ -75,6 +77,7 @@
         'ckb' => 'kurdo central',
         'clc' => 'chilcotin',
         'co' => 'corso',
+        'cop' => 'copto',
         'crg' => 'mitchif',
         'crj' => 'cree del sud-est',
         'crk' => 'cree del planas',
@@ -145,6 +148,7 @@
         'hi' => 'hindi',
         'hil' => 'hiligaynon',
         'hmn' => 'hmong',
+        'hnj' => 'hmong njua',
         'hr' => 'croato',
         'hsb' => 'alte sorabo',
         'ht' => 'creolo haitian',
@@ -182,6 +186,7 @@
         'kcg' => 'tyap',
         'kde' => 'makonde',
         'kea' => 'capoverdiano',
+        'kek' => 'kekchi',
         'ken' => 'kenyang',
         'kfo' => 'koro',
         'kgp' => 'kaingang',
@@ -240,6 +245,7 @@
         'lus' => 'mizo',
         'luy' => 'luyia',
         'lv' => 'letton',
+        'lzz' => 'laz',
         'mad' => 'madurese',
         'mag' => 'magahi',
         'mai' => 'maithili',
@@ -270,10 +276,12 @@
         'mua' => 'mundang',
         'mus' => 'creek',
         'mwl' => 'mirandese',
+        'mww' => 'hmong daw',
         'my' => 'birmano',
         'myv' => 'erzya',
         'mzn' => 'mazanderani',
         'na' => 'nauru',
+        'nan' => 'min nan',
         'nap' => 'napolitano',
         'naq' => 'nama',
         'nb' => 'norvegiano bokmål',
@@ -313,8 +321,10 @@
         'pap' => 'papiamento',
         'pau' => 'palauano',
         'pcm' => 'pidgin nigerian',
+        'pi' => 'pali',
         'pis' => 'pijin',
         'pl' => 'polonese',
+        'pms' => 'pedemontese',
         'pqm' => 'malecite-passamaquoddy',
         'prg' => 'prussiano',
         'ps' => 'pashto',
@@ -350,6 +360,7 @@
         'seh' => 'sena',
         'ses' => 'koyraboro senni',
         'sg' => 'sango',
+        'sgs' => 'samogitiano',
         'sh' => 'serbocroato',
         'shi' => 'tachelhit',
         'shn' => 'shan',
@@ -376,6 +387,7 @@
         'str' => 'salish del strictos',
         'su' => 'sundanese',
         'suk' => 'sukuma',
+        'suz' => 'sunuwar',
         'sv' => 'svedese',
         'sw' => 'swahili',
         'swb' => 'comoriano',
@@ -451,22 +463,9 @@
     ],
     'LocalizedNames' => [
         'ar_001' => 'arabe standard moderne',
-        'de_AT' => 'germano austriac',
-        'de_CH' => 'alte germano suisse',
-        'en_AU' => 'anglese australian',
-        'en_CA' => 'anglese canadian',
-        'en_GB' => 'anglese britannic',
-        'en_US' => 'anglese american',
-        'es_419' => 'espaniol latinoamerican',
-        'es_ES' => 'espaniol europee',
-        'es_MX' => 'espaniol mexican',
         'fa_AF' => 'dari',
-        'fr_CA' => 'francese canadian',
-        'fr_CH' => 'francese suisse',
         'nds_NL' => 'basse saxone',
         'nl_BE' => 'flamingo',
-        'pt_BR' => 'portugese de Brasil',
-        'pt_PT' => 'portugese de Portugal',
         'ro_MD' => 'moldavo',
         'sw_CD' => 'swahili del Congo',
         'zh_Hans' => 'chinese simplificate',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ie.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ie.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ie.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ie.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,15 +8,27 @@
         'de' => 'german',
         'el' => 'grec',
         'en' => 'anglesi',
+        'eo' => 'Esperanto',
         'es' => 'hispan',
         'et' => 'estonian',
         'fa' => 'persian',
+        'fi' => 'finn',
+        'fil' => 'filipinesi',
         'fr' => 'francesi',
+        'ga' => 'irlandesi',
+        'gl' => 'galician',
+        'ha' => 'hausa',
+        'he' => 'hebreic',
+        'hi' => 'hindi',
         'hu' => 'hungarian',
+        'ia' => 'Interlingua',
         'id' => 'indonesian',
         'ie' => 'Interlingue',
+        'is' => 'islandesi',
         'it' => 'italian',
         'ja' => 'japanesi',
+        'jv' => 'javan',
+        'ka' => 'georgian',
         'ko' => 'korean',
         'lij' => 'ligurian',
         'lv' => 'lettonian',
@@ -30,18 +42,26 @@
         'sl' => 'slovenian',
         'sv' => 'sved',
         'sw' => 'swahili',
+        'th' => 'thai',
         'tr' => 'turc',
         'zh' => 'chinesi',
     ],
     'LocalizedNames' => [
         'de_AT' => 'austrian german',
         'de_CH' => 'sviss alt-german',
+        'en_AU' => 'australian anglesi',
+        'en_CA' => 'canadian anglesi',
+        'en_GB' => 'britannic anglesi',
+        'en_US' => 'american anglesi',
         'es_419' => 'hispan del latin America',
         'es_ES' => 'europan hispan',
         'es_MX' => 'mexican hispan',
+        'fr_CA' => 'canadian francesi',
         'fr_CH' => 'sviss francesi',
         'nl_BE' => 'flandrian',
         'pt_BR' => 'brasilian portugalesi',
         'pt_PT' => 'europan portugalesi',
+        'zh_Hans' => 'chinesi simplificat',
+        'zh_Hant' => 'chinesi traditional',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ig.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ig.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,18 +13,18 @@
         'ak' => 'Akan',
         'ale' => 'Aleut',
         'alt' => 'Southern Altai',
-        'am' => 'Amariikị',
+        'am' => 'Asụsụ Amariikị',
         'an' => 'Aragonisị',
         'ann' => 'Obolo',
         'anp' => 'Angika',
         'apc' => 'apcc',
-        'ar' => 'Arabiikị',
+        'ar' => 'Asụsụ Arabiikị',
         'arn' => 'Mapuche',
         'arp' => 'Arapaho',
         'ars' => 'Najdi Arabikị',
-        'as' => 'Asamisị',
+        'as' => 'Asụsụ Asamisị',
         'asa' => 'Asụ',
-        'ast' => 'Asturianị',
+        'ast' => 'Asụsụ Asturianị',
         'atj' => 'Atikamekw',
         'av' => 'Avarịk',
         'awa' => 'Awadhi',
@@ -151,7 +151,7 @@
         'hu' => 'Hungarian',
         'hup' => 'Hupa',
         'hur' => 'Halkomelem',
-        'hy' => 'Armenianị',
+        'hy' => 'Asụsụ Armenianị',
         'hz' => 'Herero',
         'ia' => 'Interlingua',
         'iba' => 'Iban',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ii.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ii.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ii.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ii.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,5 @@
         'sw' => 'ꌖꑟꆺꉙ',
         'zh' => 'ꍏꇩꉙ',
     ],
-    'LocalizedNames' => [
-        'ar_001' => 'ꀊꇁꀨꉙ（ꋧꃅ）',
-    ],
+    'LocalizedNames' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ja.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ja.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ja.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ja.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
         'bjn' => 'バンジャル語',
         'bkm' => 'コム語',
         'bla' => 'シクシカ語',
-        'blo' => 'アニ語 (blo)',
+        'blo' => 'アニ語 (ベナン)',
         'bm' => 'バンバラ語',
         'bn' => 'ベンガル語',
         'bo' => 'チベット語',
@@ -366,7 +366,7 @@
         'mk' => 'マケドニア語',
         'ml' => 'マラヤーラム語',
         'mn' => 'モンゴル語',
-        'mnc' => '満州語',
+        'mnc' => '満洲語',
         'mni' => 'マニプリ語',
         'moe' => 'イヌー＝アイムン語',
         'moh' => 'モーホーク語',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/jv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/jv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/jv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/jv.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,7 +6,7 @@
         'ace' => 'Achinese',
         'ada' => 'Adangme',
         'ady' => 'Adyghe',
-        'af' => 'Afrika',
+        'af' => 'Afrikaans',
         'agq' => 'Aghem',
         'ain' => 'Ainu',
         'ak' => 'Akan',
@@ -29,6 +29,7 @@
         'ay' => 'Aymara',
         'az' => 'Azerbaijan',
         'ba' => 'Bashkir',
+        'bal' => 'Baluchi',
         'ban' => 'Bali',
         'bas' => 'Basaa',
         'be' => 'Belarus',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/kk_Arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/kk_Arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/kk_Arab.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/kk_Arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,340 @@
+<?php
+
+return [
+    'Names' => [
+        'aa' => 'افار ءتىلى',
+        'ab' => 'ابحاز ءتىلى',
+        'af' => 'افريكاانس ءتىلى',
+        'agq' => 'اگەم ءتىلى',
+        'ak' => 'اكان ءتىلى',
+        'am' => 'امحار ءتىلى',
+        'an' => 'اراگون ءتىلى',
+        'ann' => 'وبولو ءتىلى',
+        'apc' => 'شامي ءتىلى',
+        'ar' => 'اراب ءتىلى',
+        'arn' => 'ماپۋچە ءتىلى',
+        'as' => 'اسسام ءتىلى',
+        'asa' => 'اسۋ ءتىلى',
+        'ast' => 'استرۋيا ءتىلى',
+        'az' => 'ءازىربايجان ءتىلى',
+        'ba' => 'باشقۇرت ءتىلى',
+        'bal' => 'بالۋچي ءتىلى',
+        'bas' => 'باسا ءتىلى',
+        'be' => 'بەلارۋس ءتىلى',
+        'bem' => 'بەمبا ءتىلى',
+        'bew' => 'بەياۋي ءتىلى',
+        'bez' => 'بەنا ءتىلى',
+        'bg' => 'بولگار ءتىلى',
+        'bgc' => 'حارياني ءتىلى',
+        'bgn' => 'باتىس بالۋچي ءتىلى',
+        'bho' => 'بحودجپۋري ءتىلى',
+        'blo' => 'اني ءتىلى',
+        'blt' => 'تاي دام ءتىلى',
+        'bm' => 'بامبارا ءتىلى',
+        'bn' => 'بەنگال ءتىلى',
+        'bo' => 'تيبەت ءتىلى',
+        'bqi' => 'باحتيار ءتىلى',
+        'br' => 'برەتون ءتىلى',
+        'brx' => 'بودو ءتىلى',
+        'bs' => 'بوسنيا ءتىلى',
+        'bss' => 'اكوسە ءتىلى',
+        'bua' => 'بۋريات ءتىلى',
+        'byn' => 'بلين ءتىلى',
+        'ca' => 'كاتالان ءتىلى',
+        'cad' => 'كاددو ءتىلى',
+        'cch' => 'اتسام ءتىلى',
+        'ccp' => 'چاكما ءتىلى',
+        'ce' => 'شەشەن ءتىلى',
+        'ceb' => 'سەبۋانو ءتىلى',
+        'cgg' => 'كيگا ءتىلى',
+        'cho' => 'چوكتو ءتىلى',
+        'chr' => 'چەروكي ءتىلى',
+        'cic' => 'چيكاساۋ ءتىلى',
+        'ckb' => 'سوراني ءتىلى',
+        'co' => 'كورسيكا ءتىلى',
+        'cop' => 'كوپىت ءتىلى',
+        'cs' => 'چەح ءتىلى',
+        'csw' => 'باتپاقتى جەردىڭ كري ءتىلى',
+        'cu' => 'شىركەۋلىك سلاۆيان ءتىلى',
+        'cv' => 'چۋۆاش ءتىلى',
+        'cy' => 'ۆاللي ءتىلى',
+        'da' => 'دات ءتىلى',
+        'dav' => 'تايتا ءتىلى',
+        'de' => 'نەمىس ءتىلى',
+        'dje' => 'زارما ءتىلى',
+        'doi' => 'دوگري ءتىلى',
+        'dsb' => 'تومەنگى سوربيان ءتىلى',
+        'dua' => 'دۋالا ءتىلى',
+        'dv' => 'ديۆەحي ءتىلى',
+        'dyo' => 'ديولا ءتىلى',
+        'dz' => 'جوڭكا ءتىلى',
+        'ebu' => 'ەمبۋ ءتىلى',
+        'ee' => 'ەۆە ءتىلى',
+        'el' => 'گرەك ءتىلى',
+        'en' => 'اعىلشىن ءتىلى',
+        'eo' => 'ەسپەرانتو ءتىلى',
+        'es' => 'يسپان ءتىلى',
+        'et' => 'ەستون ءتىلى',
+        'eu' => 'باسك ءتىلى',
+        'ewo' => 'ەۆوندو ءتىلى',
+        'fa' => 'پارسى ءتىلى',
+        'ff' => 'فۋلا ءتىلى',
+        'fi' => 'فين ءتىلى',
+        'fil' => 'فيليپين ءتىلى',
+        'fo' => 'فارەر ءتىلى',
+        'fr' => 'فرانسۋز ءتىلى',
+        'frc' => 'كاجۋن ءتىلى',
+        'frr' => 'سولتۇستىك-شىعىس كري ءتىلى',
+        'fur' => 'فريۋل ءتىلى',
+        'fy' => 'باتىس فريز ءتىلى',
+        'ga' => 'يرلاند ءتىلى',
+        'gaa' => 'گا ءتىلى',
+        'gd' => 'شوتلانديالىق گەل ءتىلى',
+        'gez' => 'گەەز ءتىلى',
+        'gl' => 'گاليسيا ءتىلى',
+        'gn' => 'گۋاريني ءتىلى',
+        'gsw' => 'شۆەيساريالىق نەمىس ءتىلى',
+        'gu' => 'گۋجاراتي ءتىلى',
+        'guz' => 'گۋسي ءتىلى',
+        'gv' => 'مەن ءتىلى',
+        'ha' => 'حاۋسا ءتىلى',
+        'haw' => 'حاۋاي ءتىلى',
+        'he' => 'يۆريت ءتىلى',
+        'hi' => 'حيندي ءتىلى',
+        'hnj' => 'حموڭ نيۋا ءتىلى',
+        'hr' => 'حورۆات ءتىلى',
+        'hsb' => 'جوعارعى سوربيان ءتىلى',
+        'ht' => 'گايتيان كىرەول ءتىلى',
+        'hu' => 'ماجار ءتىلى',
+        'hy' => 'ارميان ءتىلى',
+        'ia' => 'ينتەرلينگۆا ءتىلى',
+        'id' => 'يندونەزيا ءتىلى',
+        'ie' => 'ينتەرلينگۆە ءتىلى',
+        'ig' => 'يگبو ءتىلى',
+        'ii' => 'سىچۋان ي ءتىلى',
+        'io' => 'يدو ءتىلى',
+        'is' => 'يسلاند ءتىلى',
+        'it' => 'يتاليان ءتىلى',
+        'iu' => 'ينۋكتيتۋت ءتىلى',
+        'ja' => 'جاپون ءتىلى',
+        'jbo' => 'لاجبان ءتىلى',
+        'jgo' => 'نگومبا ءتىلى',
+        'jmc' => 'ماچامە ءتىلى',
+        'jv' => 'ياۆا ءتىلى',
+        'ka' => 'گرۋزين ءتىلى',
+        'kaa' => 'قاراقالپاق ءتىلى',
+        'kab' => 'كابيل ءتىلى',
+        'kaj' => 'كاجي ءتىلى',
+        'kam' => 'كامبا ءتىلى',
+        'kcg' => 'تياپ ءتىلى',
+        'kde' => 'ماكوندە ءتىلى',
+        'kea' => 'كابۋۆەرديانۋ ءتىلى',
+        'kek' => 'كەكچي ءتىلى',
+        'ken' => 'كەنياڭ ءتىلى',
+        'kgp' => 'كاينگاڭ ءتىلى',
+        'khq' => 'كويرا چيني ءتىلى',
+        'ki' => 'كيكۋيۋ ءتىلى',
+        'kk' => 'قازاق ءتىلى',
+        'kkj' => 'كاكو ءتىلى',
+        'kl' => 'كالاليسۋت ءتىلى',
+        'kln' => 'كالەنجين ءتىلى',
+        'km' => 'كحمەر ءتىلى',
+        'kn' => 'كاننادا ءتىلى',
+        'ko' => 'كورەي ءتىلى',
+        'kok' => 'كونكاني ءتىلى',
+        'kpe' => 'كپەلە ءتىلى',
+        'ks' => 'كاشمير ءتىلى',
+        'ksb' => 'شامبالا ءتىلى',
+        'ksf' => 'بافيا ءتىلى',
+        'ksh' => 'كولونيان ءتىلى',
+        'ku' => 'كۇرد ءتىلى',
+        'kw' => 'كورن ءتىلى',
+        'kxv' => 'كۋۆي ءتىلى',
+        'ky' => 'قىرعىز ءتىلى',
+        'la' => 'لاتىن ءتىلى',
+        'lag' => 'لانگي ءتىلى',
+        'lb' => 'ليۋكسەمبۋرگ ءتىلى',
+        'lg' => 'گاندا ءتىلى',
+        'lij' => 'ليگۋر ءتىلى',
+        'lkt' => 'لاكوتا ءتىلى',
+        'lld' => 'لادينو ءتىلى',
+        'lmo' => 'لومبارد ءتىلى',
+        'ln' => 'لينگالا ءتىلى',
+        'lo' => 'لاوس ءتىلى',
+        'lou' => 'كىرەول ءتىلى',
+        'lrc' => 'سولتۇستىك فريز ءتىلى',
+        'lt' => 'ليتۆا ءتىلى',
+        'ltg' => 'لاتگاليان ءتىلى',
+        'lu' => 'لۋبا-كاتاڭا ءتىلى',
+        'luo' => 'لۋو ءتىلى',
+        'luy' => 'لۋحيا ءتىلى',
+        'lv' => 'لاتىش ءتىلى',
+        'lzz' => 'لاز ءتىلى',
+        'mai' => 'مايتحيلي ءتىلى',
+        'mas' => 'ماساي ءتىلى',
+        'mdf' => 'موكشا ءتىلى',
+        'mer' => 'مەرۋ ءتىلى',
+        'mfe' => 'موريسيەن ءتىلى',
+        'mg' => 'مالاگاسي ءتىلى',
+        'mgh' => 'ماكۋا-مەتتو ءتىلى',
+        'mgo' => 'مەتا ءتىلى',
+        'mhn' => 'موكەنو ءتىلى',
+        'mi' => 'ماوري ءتىلى',
+        'mic' => 'ميكماۋ ءتىلى',
+        'mk' => 'ماكەدون ءتىلى',
+        'ml' => 'مالايالام ءتىلى',
+        'mn' => 'موڭعول ءتىلى',
+        'mni' => 'مانيپۋري ءتىلى',
+        'moh' => 'موحاۋك ءتىلى',
+        'mr' => 'ماراتحي ءتىلى',
+        'ms' => 'مالاي ءتىلى',
+        'mt' => 'مالتا ءتىلى',
+        'mua' => 'مۋنداڭ ءتىلى',
+        'mus' => 'كريك ءتىلى',
+        'my' => 'بيرما ءتىلى',
+        'myv' => 'ەرزيا ءتىلى',
+        'mzn' => 'مازاندەران ءتىلى',
+        'naq' => 'ناما ءتىلى',
+        'nb' => 'نورۆەگيالىق بۋكمول ءتىلى',
+        'nd' => 'سولتۇستىك ندەبەلە ءتىلى',
+        'nds' => 'تومەنگى نەمىس ءتىلى',
+        'ne' => 'نەپال ءتىلى',
+        'nl' => 'نيدەرلاند ءتىلى',
+        'nmg' => 'كۋاسيو ءتىلى',
+        'nn' => 'نورۆەگيالىق نيۋنورسك ءتىلى',
+        'nnh' => 'نگيەمبۋن ءتىلى',
+        'no' => 'نورۆەگ ءتىلى',
+        'nqo' => 'نكو ءتىلى',
+        'nr' => 'وڭتۇستىك ندەبەلە ءتىلى',
+        'nso' => 'سولتۇستىك سوتو ءتىلى',
+        'nus' => 'نۋەر ءتىلى',
+        'nv' => 'ناۆاحو ءتىلى',
+        'ny' => 'نيانجا ءتىلى',
+        'nyn' => 'نيانكولە ءتىلى',
+        'oc' => 'وكسيتان ءتىلى',
+        'om' => 'ورومو ءتىلى',
+        'or' => 'وريا ءتىلى',
+        'os' => 'وسەتين ءتىلى',
+        'osa' => 'وسەيج ءتىلى',
+        'pa' => 'پەنجاب ءتىلى',
+        'pap' => 'پاپيامەنتو ءتىلى',
+        'pcm' => 'نيگەريالىق پيدجين ءتىلى',
+        'pi' => 'پالي ءتىلى',
+        'pis' => 'پيجين ءتىلى',
+        'pl' => 'پولياك ءتىلى',
+        'pms' => 'پيەمونت ءتىلى',
+        'prg' => 'پرۋسسيا ءتىلى',
+        'ps' => 'پۋشتۋ ءتىلى',
+        'pt' => 'پورتۋگال ءتىلى',
+        'qu' => 'كەچۋا ءتىلى',
+        'quc' => 'كيچە ءتىلى',
+        'raj' => 'راجاستاني ءتىلى',
+        'rhg' => 'روحينجا ءتىلى',
+        'rif' => 'ريفيان ءتىلى',
+        'rm' => 'رومانش ءتىلى',
+        'rn' => 'رۋندي ءتىلى',
+        'ro' => 'رۋمىن ءتىلى',
+        'rof' => 'رومبو ءتىلى',
+        'ru' => 'ورىس ءتىلى',
+        'rw' => 'كينيارۋاندا ءتىلى',
+        'rwk' => 'رۋا ءتىلى',
+        'sa' => 'سانسكريت ءتىلى',
+        'sah' => 'ساحا ءتىلى',
+        'saq' => 'سامبۋرۋ ءتىلى',
+        'sat' => 'سانتالي ءتىلى',
+        'sbp' => 'ساڭۋ ءتىلى',
+        'sc' => 'ساردين ءتىلى',
+        'scn' => 'سيسيليا ءتىلى',
+        'sd' => 'سيندحي ءتىلى',
+        'sdh' => 'وڭتۇستىك كۇرد ءتىلى',
+        'se' => 'سولتۇستىك سامي ءتىلى',
+        'seh' => 'سەنا ءتىلى',
+        'ses' => 'كويرابورو سەنني ءتىلى',
+        'sg' => 'ساڭو ءتىلى',
+        'sgs' => 'ساموگيتيان ءتىلى',
+        'shi' => 'تاشەلحيت ءتىلى',
+        'shn' => 'شان ءتىلى',
+        'si' => 'سينگال ءتىلى',
+        'sid' => 'سيدامو ءتىلى',
+        'sk' => 'سلوۆاك ءتىلى',
+        'skr' => 'سارايكي ءتىلى',
+        'sl' => 'سلوۆەن ءتىلى',
+        'sma' => 'وڭتۇستىك سامي ءتىلى',
+        'smj' => 'لۋلە-سامي ءتىلى',
+        'smn' => 'يناري سامي ءتىلى',
+        'sms' => 'كولتا سامي ءتىلى',
+        'sn' => 'شونا ءتىلى',
+        'so' => 'سومالي ءتىلى',
+        'sq' => 'البان ءتىلى',
+        'sr' => 'سەرب ءتىلى',
+        'ss' => 'سۋاتي ءتىلى',
+        'ssy' => 'ساحو ءتىلى',
+        'st' => 'وڭتۇستىك سوتو ءتىلى',
+        'su' => 'سۋدان ءتىلى',
+        'sv' => 'شۆەد ءتىلى',
+        'sw' => 'سۋاحيلي ءتىلى',
+        'syr' => 'سيريا ءتىلى',
+        'szl' => 'سيلەز ءتىلى',
+        'ta' => 'تاميل ءتىلى',
+        'te' => 'تەلۋگۋ ءتىلى',
+        'teo' => 'تەسو ءتىلى',
+        'tg' => 'تاجىك ءتىلى',
+        'th' => 'تاي ءتىلى',
+        'ti' => 'تيگرينيا ءتىلى',
+        'tig' => 'تيگرە ءتىلى',
+        'tk' => 'تۇرىكمەن ءتىلى',
+        'tn' => 'سۋانا ءتىلى',
+        'to' => 'تونگان ءتىلى',
+        'tok' => 'توكي-پونا ءتىلى',
+        'tpi' => 'توك-پيسين ءتىلى',
+        'tr' => 'تۇرىك ءتىلى',
+        'trv' => 'تاروكو ءتىلى',
+        'trw' => 'توۋالي ءتىلى',
+        'ts' => 'سونگا ءتىلى',
+        'tt' => 'تاتار ءتىلى',
+        'twq' => 'تاساۋاك ءتىلى',
+        'tyv' => 'تۋۆين ءتىلى',
+        'tzm' => 'ورتالىق اتلاس تامازيگحت ءتىلى',
+        'ug' => 'ۇيعىر ءتىلى',
+        'uk' => 'ۋكراين ءتىلى',
+        'ur' => 'ۋردۋ ءتىلى',
+        'uz' => 'وزبەك ءتىلى',
+        'vai' => 'ۆاي ءتىلى',
+        've' => 'ۆەندا ءتىلى',
+        'vec' => 'ۆەنەسيا ءتىلى',
+        'vi' => 'ۆيەتنام ءتىلى',
+        'vmw' => 'ماكۋا ءتىلى',
+        'vo' => 'ۆولاپيۋك ءتىلى',
+        'vun' => 'ۆۋنجو ءتىلى',
+        'wa' => 'ۋالون ءتىلى',
+        'wae' => 'ۋالسەر ءتىلى',
+        'wal' => 'ۋولايتا ءتىلى',
+        'wbp' => 'ۋالبيري ءتىلى',
+        'wo' => 'ۆولوف ءتىلى',
+        'xh' => 'كحوسا ءتىلى',
+        'xnr' => 'كاڭري ءتىلى',
+        'xog' => 'سوگا ءتىلى',
+        'yav' => 'ياڭبەن ءتىلى',
+        'yi' => 'يديش ءتىلى',
+        'yo' => 'يورۋبا ءتىلى',
+        'yrl' => 'نەنگاتۋ ءتىلى',
+        'yue' => 'گۋاڭدۇڭ ءتىلى',
+        'za' => 'جۋاڭ ءتىلى',
+        'zgh' => 'ماروككولىق ستاندارتتى تامازيگحت ءتىلى',
+        'zh' => 'قىتاي ءتىلى',
+        'zu' => 'زۋلۋ ءتىلى',
+    ],
+    'LocalizedNames' => [
+        'ar_001' => 'قازىرگى ستاندارتتى اراب ءتىلى',
+        'fa_AF' => 'داري ءتىلى',
+        'kk_Arab' => 'قازاق ءتىلى (توتە)',
+        'nds_NL' => 'تومەنگى ساكسون ءتىلى',
+        'nl_BE' => 'فلاماند ءتىلى',
+        'pt_BR' => 'برازيليالىق پورتۋگال ءتىلى',
+        'pt_PT' => 'ەۋروپالىق پورتۋگال ءتىلى',
+        'ro_MD' => 'مولدوۆان ءتىلى',
+        'sw_CD' => 'كونگو سۋاحيلي ءتىلى',
+        'zh_Hans' => 'جەڭىلدەتىلگەن قىتاي ءتىلى',
+        'zh_Hant' => 'ءداستۇرلى قىتاي ءتىلى',
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/kk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/kk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/kk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/kk.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,7 @@
         'an' => 'арагон тілі',
         'ann' => 'оболо тілі',
         'anp' => 'ангика тілі',
+        'apc' => 'араб тілі (леватин)',
         'ar' => 'араб тілі',
         'arn' => 'мапуче тілі',
         'arp' => 'арапахо тілі',
@@ -30,10 +31,12 @@
         'ay' => 'аймара тілі',
         'az' => 'әзірбайжан тілі',
         'ba' => 'башқұрт тілі',
+        'bal' => 'балучи тілі',
         'ban' => 'бали тілі',
         'bas' => 'баса тілі',
         'be' => 'беларусь тілі',
         'bem' => 'бемба тілі',
+        'bew' => 'бетауи тілі',
         'bez' => 'бена тілі',
         'bg' => 'болгар тілі',
         'bgc' => 'хариани тілі',
@@ -43,16 +46,22 @@
         'bin' => 'бини тілі',
         'bla' => 'сиксика тілі',
         'blo' => 'ании тілі',
+        'blt' => 'тай дам тілі',
         'bm' => 'бамбара тілі',
         'bn' => 'бенгал тілі',
         'bo' => 'тибет тілі',
+        'bqi' => 'бахтияр тілі',
         'br' => 'бретон тілі',
         'brx' => 'бодо тілі',
         'bs' => 'босния тілі',
+        'bss' => 'акусе тілі',
+        'bua' => 'бурят тілі',
         'bug' => 'бугис тілі',
         'byn' => 'блин тілі',
         'ca' => 'каталан тілі',
+        'cad' => 'каддо тілі',
         'cay' => 'кайюга тілі',
+        'cch' => 'атсам тілі',
         'ccp' => 'чакма тілі',
         'ce' => 'шешен тілі',
         'ceb' => 'себуано тілі',
@@ -64,9 +73,11 @@
         'chp' => 'чипевайан тілі',
         'chr' => 'чероки тілі',
         'chy' => 'шайен тілі',
+        'cic' => 'чикасау тілі',
         'ckb' => 'сорани тілі',
         'clc' => 'чилкотин тілі',
         'co' => 'корсика тілі',
+        'cop' => 'копт тілі',
         'crg' => 'мичиф тілі',
         'crj' => 'оңтүстік-шығыс кри тілі',
         'crk' => 'жазықтағы кри тілі',
@@ -138,6 +149,7 @@
         'hi' => 'хинди тілі',
         'hil' => 'хилигайнон тілі',
         'hmn' => 'хмонг тілі',
+        'hnj' => 'хмоң ниуа тілі',
         'hr' => 'хорват тілі',
         'hsb' => 'жоғарғы лужица тілі',
         'ht' => 'гаити тілі',
@@ -166,6 +178,7 @@
         'jmc' => 'мачаме тілі',
         'jv' => 'ява тілі',
         'ka' => 'грузин тілі',
+        'kaa' => 'қарақалпақ тілі',
         'kab' => 'кабил тілі',
         'kac' => 'качин тілі',
         'kaj' => 'каджи тілі',
@@ -174,6 +187,8 @@
         'kcg' => 'тьяп тілі',
         'kde' => 'маконде тілі',
         'kea' => 'кабувердьяну тілі',
+        'kek' => 'кекчи тілі',
+        'ken' => 'кеняң тілі',
         'kfo' => 'коро тілі',
         'kgp' => 'кайнганг тілі',
         'kha' => 'кхаси тілі',
@@ -216,6 +231,7 @@
         'lij' => 'лигур тілі',
         'lil' => 'лиллуэт тілі',
         'lkt' => 'лакота тілі',
+        'lld' => 'ладин тілі',
         'lmo' => 'ломбард тілі',
         'ln' => 'лингала тілі',
         'lo' => 'лаос тілі',
@@ -224,6 +240,7 @@
         'lrc' => 'солтүстік люри тілі',
         'lsm' => 'самия тілі',
         'lt' => 'литва тілі',
+        'ltg' => 'латгалиан тілі',
         'lu' => 'луба-катанга тілі',
         'lua' => 'луба-лулуа тілі',
         'lun' => 'лунда тілі',
@@ -231,6 +248,7 @@
         'lus' => 'мизо тілі',
         'luy' => 'лухиа тілі',
         'lv' => 'латыш тілі',
+        'lzz' => 'Лаз тілі',
         'mad' => 'мадур тілі',
         'mag' => 'магахи тілі',
         'mai' => 'майтхили тілі',
@@ -244,6 +262,7 @@
         'mgh' => 'макуа-меетто тілі',
         'mgo' => 'мета тілі',
         'mh' => 'маршалл тілі',
+        'mhn' => 'мокено тілі',
         'mi' => 'маори тілі',
         'mic' => 'микмак тілі',
         'min' => 'минангкабау тілі',
@@ -303,8 +322,10 @@
         'pap' => 'папьяменто тілі',
         'pau' => 'палау тілі',
         'pcm' => 'нигериялық пиджин тілі',
+        'pi' => 'пали тілі',
         'pis' => 'пиджин тілі',
         'pl' => 'поляк тілі',
+        'pms' => 'пьемонт тілі',
         'pqm' => 'малесит-пассамакводди тілі',
         'prg' => 'пруссия тілі',
         'ps' => 'пушту тілі',
@@ -315,6 +336,7 @@
         'rap' => 'рапануй тілі',
         'rar' => 'раротонган тілі',
         'rhg' => 'рохинджа',
+        'rif' => 'риффиан тілі',
         'rm' => 'романш тілі',
         'rn' => 'рунди тілі',
         'ro' => 'румын тілі',
@@ -339,11 +361,14 @@
         'seh' => 'сена тілі',
         'ses' => 'койраборо сенни тілі',
         'sg' => 'санго тілі',
+        'sgs' => 'самогития тілі',
         'sh' => 'серб-хорват тілі',
         'shi' => 'ташелхит тілі',
         'shn' => 'шан тілі',
         'si' => 'сингал тілі',
+        'sid' => 'сидамо тілі',
         'sk' => 'словак тілі',
+        'skr' => 'сарайки тілі',
         'sl' => 'словен тілі',
         'slh' => 'оңтүстік лушуцид тілі',
         'sm' => 'самоа тілі',
@@ -389,6 +414,7 @@
         'tpi' => 'ток-писин тілі',
         'tr' => 'түрік тілі',
         'trv' => 'тароко тілі',
+        'trw' => 'торуали тілі',
         'ts' => 'тсонга тілі',
         'tt' => 'татар тілі',
         'ttm' => 'солтүстік тутчоне тілі',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/km.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/km.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/km.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/km.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,6 +31,7 @@
         'ay' => 'អីម៉ារ៉ា',
         'az' => 'អាស៊ែបៃហ្សង់',
         'ba' => 'បាស្គៀ',
+        'bal' => 'បាលូឈី',
         'ban' => 'បាលី',
         'bas' => 'បាសា',
         'be' => 'បេឡារុស',
@@ -45,7 +46,7 @@
         'bla' => 'ស៊ីកស៊ីកា',
         'blo' => 'អានី',
         'bm' => 'បាម្បារា',
-        'bn' => 'បង់ក្លាដែស',
+        'bn' => 'បង់ក្លា',
         'bo' => 'ទីបេ',
         'br' => 'ប្រ៊ីស្តុន',
         'brx' => 'បូដូ',
@@ -139,7 +140,7 @@
         'hi' => 'ហិណ្ឌី',
         'hil' => 'ហ៊ីលីហ្គេណុន',
         'hmn' => 'ម៉ុង',
-        'hr' => 'ក្រូអាត',
+        'hr' => 'ក្រូអាស៊ី',
         'hsb' => 'សូប៊ីលើ',
         'ht' => 'ហៃទី',
         'hu' => 'ហុងគ្រី',
@@ -428,7 +429,7 @@
         'yi' => 'យ៉ីឌីស',
         'yo' => 'យរូបា',
         'yrl' => 'ញីនហ្កាទូ',
-        'yue' => 'កន្តាំង',
+        'yue' => 'កាតាំង',
         'za' => 'ហ្សួង',
         'zgh' => 'តាម៉ាហ្សៃម៉ារ៉ុកស្តង់ដា',
         'zh' => 'ចិន',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ko.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ko.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ko.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ko.php	2026-05-20 10:56:49.000000000 +0200
@@ -393,7 +393,7 @@
         'os' => '오세트어',
         'osa' => '오세이지어',
         'ota' => '오스만 터키어',
-        'pa' => '펀잡어',
+        'pa' => '펀자브어',
         'pag' => '판가시난어',
         'pal' => '팔레비어',
         'pam' => '팜팡가어',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ku.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ku.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ku.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ku.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,7 @@
         'an' => 'aragonî',
         'ann' => 'obolo',
         'anp' => 'angîkayî',
-        'apc' => 'erebîya bakurê şamê',
+        'apc' => 'erebîya bakurê Şamê',
         'ar' => 'erebî',
         'arn' => 'mapuçî',
         'arp' => 'arapahoyî',
@@ -29,7 +29,7 @@
         'av' => 'avarî',
         'awa' => 'awadhî',
         'ay' => 'aymarayî',
-        'az' => 'azerî',
+        'az' => 'azerbaycanî',
         'ba' => 'başkîrî',
         'bal' => 'belûcî',
         'ban' => 'balînî',
@@ -40,7 +40,7 @@
         'bez' => 'benayî',
         'bg' => 'bulgarî',
         'bgc' => 'haryanvîyî',
-        'bgn' => 'belucîya rojavayî',
+        'bgn' => 'belûcîya rojavayî',
         'bho' => 'bojpûrî',
         'bi' => 'bîslamayî',
         'bin' => 'bînîyî',
@@ -50,10 +50,12 @@
         'bm' => 'bambarayî',
         'bn' => 'bengalî',
         'bo' => 'tîbetî',
+        'bqi' => 'bextiyarî',
         'br' => 'bretonî',
         'brx' => 'bodoyî',
         'bs' => 'bosnî',
         'bss' => 'akooseyî',
+        'bua' => 'buriat',
         'bug' => 'bugî',
         'byn' => 'blînî',
         'ca' => 'katalanî',
@@ -75,9 +77,10 @@
         'ckb' => 'kurdî (soranî)',
         'clc' => 'çilkotînî',
         'co' => 'korsîkayî',
+        'cop' => 'qiptî',
         'crg' => 'mîçîfî',
         'crj' => 'krîya rojhilat ya başûrî',
-        'crk' => 'kriya bejayî',
+        'crk' => 'krîya bejayî',
         'crl' => 'krîya rojhilat ya bakurî',
         'crm' => 'krîya mûsî',
         'crr' => 'zimanê karolina algonquianî',
@@ -86,7 +89,7 @@
         'cu' => 'slavîya kenîseyî',
         'cv' => 'çuvaşî',
         'cy' => 'weylsî',
-        'da' => 'danmarkî',
+        'da' => 'danîmarkî',
         'dak' => 'dakotayî',
         'dar' => 'dargînî',
         'dav' => 'tayîtayî',
@@ -114,7 +117,7 @@
         'fa' => 'farisî',
         'ff' => 'fulahî',
         'fi' => 'fînî',
-        'fil' => 'fîlîpînoyî',
+        'fil' => 'fîlîpînî',
         'fj' => 'fîjî',
         'fo' => 'ferî',
         'fon' => 'fonî',
@@ -122,7 +125,7 @@
         'frc' => 'fransizîya kajûnê',
         'frr' => 'frîsîya bakur',
         'fur' => 'frîyolî',
-        'fy' => 'frîsî',
+        'fy' => 'frîsîya rojavayî',
         'ga' => 'îrlendî',
         'gaa' => 'gayî',
         'gd' => 'gaelîka skotî',
@@ -148,7 +151,7 @@
         'hr' => 'xirwatî',
         'hsb' => 'sorbîya jorîn',
         'ht' => 'haîtî',
-        'hu' => 'mecarî',
+        'hu' => 'macarî',
         'hup' => 'hupayî',
         'hur' => 'halkomelemî',
         'hy' => 'ermenî',
@@ -175,13 +178,14 @@
         'ka' => 'gurcî',
         'kaa' => 'kara-kalpakî',
         'kab' => 'kabîlî',
-        'kac' => 'cingphoyî',
+        'kac' => 'kaçînî',
         'kaj' => 'jju',
         'kam' => 'kambayî',
         'kbd' => 'kabardî',
         'kcg' => 'tyap',
         'kde' => 'makondeyî',
         'kea' => 'kapverdî',
+        'kek' => 'qeqçîyî',
         'ken' => 'kenyangî',
         'kfo' => 'koro',
         'kgp' => 'kayingangî',
@@ -193,7 +197,7 @@
         'kkj' => 'kako',
         'kl' => 'kalalîsûtî',
         'kln' => 'kalencînî',
-        'km' => 'ximêrî',
+        'km' => 'khmerî',
         'kmb' => 'kîmbunduyî',
         'kn' => 'kannadayî',
         'ko' => 'koreyî',
@@ -213,7 +217,7 @@
         'kw' => 'kornî',
         'kwk' => 'kwak’walayî',
         'kxv' => 'kuvî',
-        'ky' => 'kirgizî',
+        'ky' => 'qirgizî',
         'la' => 'latînî',
         'lad' => 'ladînoyî',
         'lag' => 'langî',
@@ -224,9 +228,10 @@
         'lij' => 'lîgûrî',
         'lil' => 'lillooet',
         'lkt' => 'lakotayî',
+        'lld' => 'ladînî',
         'lmo' => 'lombardî',
         'ln' => 'lingalayî',
-        'lo' => 'lawsî',
+        'lo' => 'lao',
         'lou' => 'kreyolîya louisianayê',
         'loz' => 'lozî',
         'lrc' => 'lurîya bakur',
@@ -240,6 +245,7 @@
         'lus' => 'mizoyî',
         'luy' => 'luhyayî',
         'lv' => 'latvîyayî',
+        'lzz' => 'lazî',
         'mad' => 'madurayî',
         'mag' => 'magahî',
         'mai' => 'maithili',
@@ -253,6 +259,7 @@
         'mgh' => 'makhuwa-meetto',
         'mgo' => 'meta’',
         'mh' => 'marşalî',
+        'mhn' => 'moçenoyî',
         'mi' => 'maorî',
         'mic' => 'mîkmakî',
         'min' => 'mînangkabawî',
@@ -269,10 +276,12 @@
         'mua' => 'mundangî',
         'mus' => 'krîkî',
         'mwl' => 'mîrandî',
+        'mww' => 'hmongîya dawî',
         'my' => 'burmayî',
         'myv' => 'erzayî',
         'mzn' => 'mazenderanî',
         'na' => 'nawrûyî',
+        'nan' => 'çînîya mîn nanî',
         'nap' => 'napolîtanî',
         'naq' => 'namayî',
         'nb' => 'norwecî (bokmål)',
@@ -312,8 +321,10 @@
         'pap' => 'papyamentoyî',
         'pau' => 'palawî',
         'pcm' => 'pîdgînîya nîjeryayî',
+        'pi' => 'palî',
         'pis' => 'pijînî',
         'pl' => 'polonî',
+        'pms' => 'piedmontîsî',
         'pqm' => 'malecite-passamaquoddy',
         'prg' => 'prûsyayî',
         'ps' => 'peştûyî',
@@ -344,11 +355,12 @@
         'scn' => 'sicîlî',
         'sco' => 'skotî',
         'sd' => 'sindhî',
-        'sdh' => 'kurdîya başûrî',
+        'sdh' => 'kurdî (xwarîn)',
         'se' => 'samîya bakur',
         'seh' => 'sena',
-        'ses' => 'sonxayî',
+        'ses' => 'sennîya koyraboro',
         'sg' => 'sangoyî',
+        'sgs' => 'samogîtî',
         'shi' => 'taşelhîtî',
         'shn' => 'şanî',
         'si' => 'kîngalî',
@@ -359,7 +371,7 @@
         'slh' => 'lushootseeda başûrî',
         'sm' => 'samoayî',
         'sma' => 'samîya başûr',
-        'smj' => 'samiya lule',
+        'smj' => 'samîya lule',
         'smn' => 'samîya înarî',
         'sms' => 'samîya skoltî',
         'sn' => 'şonayî',
@@ -374,6 +386,7 @@
         'str' => 'saanîçî',
         'su' => 'sundanî',
         'suk' => 'sukuma',
+        'suz' => 'sunwarî',
         'sv' => 'swêdî',
         'sw' => 'swahîlî',
         'swb' => 'komorî',
@@ -411,11 +424,13 @@
         'tyv' => 'tuvanî',
         'tzm' => 'temazîxtî',
         'udm' => 'udmurtî',
-        'ug' => 'oygurî',
+        'ug' => 'uyxurî',
         'uk' => 'ukraynî',
         'umb' => 'umbunduyî',
         'ur' => 'urdûyî',
         'uz' => 'ozbekî',
+        'vai' => 'vaî',
+        've' => 'venda',
         'vec' => 'venîsî',
         'vi' => 'vîetnamî',
         'vmw' => 'makhuwayî',
@@ -443,19 +458,19 @@
         'zh' => 'çînî',
         'zu' => 'zuluyî',
         'zun' => 'zunîyî',
-        'zza' => 'zazakî (kirdkî, kirmanckî)',
+        'zza' => 'zazakî',
     ],
     'LocalizedNames' => [
         'ar_001' => 'erebîya modern a standard',
-        'en_GB' => 'îngilîzî (Qiralîyeta Yekbûyî)',
+        'de_CH' => 'almanîya bilind a swîsreyî',
+        'en_GB' => 'îngilîzî (brîtanî)',
+        'en_US' => 'îngilîzî (amerîkî)',
         'es_ES' => 'spanî (Ewropa)',
-        'fa_AF' => 'derî',
-        'fr_CA' => 'fransizî (Kanada)',
-        'fr_CH' => 'fransizî (Swîsre)',
+        'fa_AF' => 'darî',
         'nl_BE' => 'flamî',
         'pt_PT' => 'portugalî (Ewropa)',
         'sw_CD' => 'swahîlîya kongoyî',
         'zh_Hans' => 'çînîya sadekirî',
-        'zh_Hant' => 'çînîya kevneşopî',
+        'zh_Hant' => 'çînîya edetî',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ky.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ky.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ky.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ky.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,6 +30,7 @@
         'ay' => 'аймарача',
         'az' => 'азербайжанча',
         'ba' => 'башкырча',
+        'bal' => 'белужиче',
         'ban' => 'баличе',
         'bas' => 'басаача',
         'be' => 'беларусча',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/meta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/meta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/meta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/meta.php	2026-05-20 10:56:49.000000000 +0200
@@ -271,6 +271,7 @@
         'kcg',
         'kde',
         'kea',
+        'kek',
         'ken',
         'kfo',
         'kg',
@@ -386,6 +387,7 @@
         'mwl',
         'mwr',
         'mwv',
+        'mww',
         'my',
         'mye',
         'myv',
@@ -538,6 +540,7 @@
         'suk',
         'sus',
         'sux',
+        'suz',
         'sv',
         'sw',
         'swb',
@@ -917,6 +920,7 @@
         'kcg',
         'kde',
         'kea',
+        'kek',
         'ken',
         'kfo',
         'kgp',
@@ -1028,6 +1032,7 @@
         'mwl',
         'mwr',
         'mwv',
+        'mww',
         'mya',
         'mye',
         'myv',
@@ -1180,6 +1185,7 @@
         'sun',
         'sus',
         'sux',
+        'suz',
         'swa',
         'swb',
         'swc',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mi.php	2026-05-20 10:56:49.000000000 +0200
@@ -417,7 +417,7 @@
         'en_CA' => 'Ingarihi Kānata',
         'en_GB' => 'Ingarihi Piritene',
         'en_US' => 'Ingarihi Amerikana',
-        'es_419' => 'Pāniora Amerikana ki te Tonga',
+        'es_419' => 'Pāniora o Amerika Rātini',
         'es_ES' => 'Pāniora Ūropi',
         'es_MX' => 'Pāniora Mehikana',
         'fa_AF' => 'Tāri',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mn.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,6 +30,7 @@
         'ay' => 'аймара',
         'az' => 'азербайжан',
         'ba' => 'башкир',
+        'bal' => 'балучи',
         'ban' => 'бали',
         'bas' => 'басаа',
         'be' => 'беларусь',
@@ -434,7 +435,6 @@
     ],
     'LocalizedNames' => [
         'ar_001' => 'стандарт араб',
-        'de_CH' => 'герман (Швейцар)',
         'en_AU' => 'австрали-англи',
         'en_CA' => 'канад-англи',
         'en_GB' => 'британи-англи',
@@ -442,7 +442,6 @@
         'es_419' => 'испани хэл (Латин Америк)',
         'es_ES' => 'испани хэл (Европ)',
         'es_MX' => 'испани хэл (Мексик)',
-        'fr_CH' => 'франц (Швейцар)',
         'nl_BE' => 'фламанд',
         'pt_BR' => 'португал хэл (Бразил)',
         'pt_PT' => 'португал хэл (Европ)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/mr.php	2026-05-20 10:56:49.000000000 +0200
@@ -251,7 +251,7 @@
         'krc' => 'कराचय-बाल्कर',
         'krl' => 'करेलियन',
         'kru' => 'कुरूख',
-        'ks' => 'काश्मीरी',
+        'ks' => 'काश्मिरी',
         'ksb' => 'शांबाला',
         'ksf' => 'बाफिया',
         'ksh' => 'कोलोग्नियन',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ms.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ms.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ms.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ms.php	2026-05-20 10:56:49.000000000 +0200
@@ -331,6 +331,7 @@
         'om' => 'Oromo',
         'or' => 'Odia',
         'os' => 'Ossete',
+        'osa' => 'Osage',
         'pa' => 'Punjabi',
         'pag' => 'Pangasinan',
         'pam' => 'Pampanga',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/my.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/my.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/my.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/my.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,6 +31,7 @@
         'ay' => 'အိုင်မာရ',
         'az' => 'အဇာဘိုင်ဂျန်',
         'ba' => 'ဘက်ရှ်ကာ',
+        'bal' => 'ဘယ်လူချီ',
         'ban' => 'ဘာလီ',
         'bas' => 'ဘာဆာ',
         'be' => 'ဘီလာရုစ်',
@@ -464,7 +465,6 @@
         'fa_AF' => 'ဒါရီ',
         'fr_CA' => 'ကနေဒါ ပြင်သစ်',
         'fr_CH' => 'ဆွစ် ပြင်သစ်',
-        'hi_Latn' => 'ဟိန္ဒီ (လက်တင်)',
         'nds_NL' => 'ဂျာမန် (နယ်သာလန်)',
         'nl_BE' => 'ဖလီမစ်ရှ်',
         'pt_BR' => 'ဘရာဇီး ပေါ်တူဂီ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/nl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/nl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/nl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/nl.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,6 +72,7 @@
         'bkm' => 'Kom',
         'bla' => 'Siksika',
         'blo' => 'Anii',
+        'blt' => 'Tai Dam',
         'bm' => 'Bambara',
         'bn' => 'Bengaals',
         'bo' => 'Tibetaans',
@@ -107,6 +108,7 @@
         'chp' => 'Chipewyan',
         'chr' => 'Cherokee',
         'chy' => 'Cheyenne',
+        'cic' => 'Chickasaw',
         'ckb' => 'Soranî',
         'clc' => 'Chilcotin',
         'co' => 'Corsicaans',
@@ -221,6 +223,7 @@
         'hil' => 'Hiligaynon',
         'hit' => 'Hettitisch',
         'hmn' => 'Hmong',
+        'hnj' => 'Hmong Njua',
         'ho' => 'Hiri Motu',
         'hr' => 'Kroatisch',
         'hsb' => 'Oppersorbisch',
@@ -268,6 +271,7 @@
         'kcg' => 'Tyap',
         'kde' => 'Makonde',
         'kea' => 'Kaapverdisch Creools',
+        'kek' => 'Qʼeqchiʼ',
         'ken' => 'Kenyang',
         'kfo' => 'Koro',
         'kg' => 'Kongo',
@@ -569,6 +573,7 @@
         'tr' => 'Turks',
         'tru' => 'Turoyo',
         'trv' => 'Taroko',
+        'trw' => 'Torwali',
         'ts' => 'Tsonga',
         'tsd' => 'Tsakonisch',
         'tsi' => 'Tsimshian',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/nn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/nn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/nn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/nn.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,6 @@
         'tce' => 'sørleg tutchone',
         'tiv' => 'tivi',
         'tkl' => 'tokelau',
-        'tn' => 'tswana',
         'tog' => 'tonga (Nyasa)',
         'ttm' => 'nordleg tutchone',
         'tvl' => 'tuvalu',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/no_NO.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/no_NO.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/no_NO.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/no_NO.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,6 +106,7 @@
         'chp' => 'chipewiansk',
         'chr' => 'cherokesisk',
         'chy' => 'cheyenne',
+        'cic' => 'chickasaw',
         'ckb' => 'sentralkurdisk',
         'clc' => 'chilcotin',
         'co' => 'korsikansk',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/no.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/no.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/no.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/no.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,6 +106,7 @@
         'chp' => 'chipewiansk',
         'chr' => 'cherokesisk',
         'chy' => 'cheyenne',
+        'cic' => 'chickasaw',
         'ckb' => 'sentralkurdisk',
         'clc' => 'chilcotin',
         'co' => 'korsikansk',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pa.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,6 +32,7 @@
         'ay' => 'ਅਈਮਾਰਾ',
         'az' => 'ਅਜ਼ਰਬਾਈਜਾਨੀ',
         'ba' => 'ਬਸ਼ਕੀਰ',
+        'bal' => 'ਬਲੋਚੀ',
         'ban' => 'ਬਾਲੀਨੀਜ਼',
         'bas' => 'ਬਾਸਾ',
         'be' => 'ਬੇਲਾਰੂਸੀ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pt.php	2026-05-20 10:56:49.000000000 +0200
@@ -187,7 +187,7 @@
         'haw' => 'havaiano',
         'hax' => 'haida do sul',
         'he' => 'hebraico',
-        'hi' => 'híndi',
+        'hi' => 'hindi',
         'hil' => 'hiligaynon',
         'hit' => 'hitita',
         'hmn' => 'hmong',
@@ -558,6 +558,7 @@
         'az_Arab' => 'azeri sul',
         'de_CH' => 'alto alemão (Suíça)',
         'fa_AF' => 'dari',
+        'hi_Latn' => 'hindi (latim)',
         'nds_NL' => 'baixo saxão',
         'nl_BE' => 'flamengo',
         'ro_MD' => 'moldávio',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pt_PT.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pt_PT.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pt_PT.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/pt_PT.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,6 @@
         'grc' => 'grego clássico',
         'gsw' => 'alemão suíço',
         'ha' => 'haúça',
-        'hi' => 'hindi',
         'hy' => 'arménio',
         'ikt' => 'inuktitut canadiano ocidental',
         'kbd' => 'cabardiano',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/qu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/qu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/qu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/qu.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,6 +29,7 @@
         'ay' => 'Aymara Simi',
         'az' => 'Azerbaiyano Simi',
         'ba' => 'Baskir Simi',
+        'bal' => 'Baluchi Simi',
         'ban' => 'Balines Simi',
         'bas' => 'Basaa Simi',
         'be' => 'Bielorruso Simi',
@@ -36,10 +37,11 @@
         'bez' => 'Bena Simi',
         'bg' => 'Bulgaro Simi',
         'bgc' => 'Haryanvi',
-        'bho' => 'Bhojpuri',
+        'bho' => 'Bhojpuri Simi',
         'bi' => 'Bislama',
         'bin' => 'Bini',
         'bla' => 'Siksiká Simi',
+        'blo' => 'Anii Simi',
         'bm' => 'Bambara Simi',
         'bn' => 'Bangla Simi',
         'bo' => 'Tibetano Simi',
@@ -145,6 +147,7 @@
         'iba' => 'Iban Simi',
         'ibb' => 'Ibibio Simi',
         'id' => 'Indonesio Simi',
+        'ie' => 'Interlingue Simi',
         'ig' => 'Igbo Simi',
         'ii' => 'Yi Simi',
         'ikt' => 'Inuktitut Simi (Canadá occidental)',
@@ -197,6 +200,7 @@
         'kv' => 'Komi Simi',
         'kw' => 'Córnico Simi',
         'kwk' => 'Kwakʼwala Simi',
+        'kxv' => 'Kuvi Simi',
         'ky' => 'Kirghiz Simi',
         'la' => 'Latín Simi',
         'lad' => 'Ladino Simi',
@@ -205,8 +209,10 @@
         'lez' => 'Lezghian Simi',
         'lg' => 'Luganda Simi',
         'li' => 'Limburgues Simi',
+        'lij' => 'Liguria Simi',
         'lil' => 'Lillooet Simi',
         'lkt' => 'Lakota Simi',
+        'lmo' => 'Lombardo Simi',
         'ln' => 'Lingala Simi',
         'lo' => 'Lao Simi',
         'lou' => 'Luisiana Criollo',
@@ -353,6 +359,7 @@
         'sw' => 'Suajili Simi',
         'swb' => 'Comorian Simi',
         'syr' => 'Siriaco Simi',
+        'szl' => 'Silesiano',
         'ta' => 'Tamil Simi',
         'tce' => 'Tutchone Meridional',
         'te' => 'Telugu Simi',
@@ -391,7 +398,9 @@
         'uz' => 'Uzbeko Simi',
         'vai' => 'Vai Simi',
         've' => 'Venda Simi',
+        'vec' => 'Veneciamanta',
         'vi' => 'Vietnamita Simi',
+        'vmw' => 'Makhuwa Simi',
         'vo' => 'Volapük Simi',
         'vun' => 'Vunjo Simi',
         'wa' => 'Valona Simi',
@@ -402,6 +411,7 @@
         'wuu' => 'Wu Chino',
         'xal' => 'Kalmyk Simi',
         'xh' => 'Isixhosa Simi',
+        'xnr' => 'Kangri Simi',
         'xog' => 'Soga Simi',
         'yav' => 'Yangben Simi',
         'ybb' => 'Yemba Simi',
@@ -409,6 +419,7 @@
         'yo' => 'Yoruba Simi',
         'yrl' => 'Nheengatu Simi',
         'yue' => 'Cantonés Simi',
+        'za' => 'Zhuang',
         'zgh' => 'Bereber Marroquí Estándar Simi',
         'zh' => 'Chino Simi',
         'zu' => 'Isizulu Simi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/rm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/rm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/rm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/rm.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,23 +32,25 @@
         'av' => 'avaric',
         'awa' => 'awadhi',
         'ay' => 'aymara',
-        'az' => 'aserbeidschanic',
+        'az' => 'lingua aserbaidschana',
         'ba' => 'baschkir',
         'bal' => 'belutschi',
         'ban' => 'balinais',
         'bas' => 'basaa',
-        'be' => 'bieloruss',
+        'be' => 'lingua bielorussa',
         'bej' => 'bedscha',
         'bem' => 'bemba',
         'bez' => 'bena',
         'bg' => 'bulgar',
+        'bgc' => 'haryanvi',
         'bho' => 'bhojpuri',
         'bi' => 'bislama',
         'bik' => 'bikol',
         'bin' => 'bini',
         'bla' => 'siksika',
+        'blo' => 'anii',
         'bm' => 'bambara',
-        'bn' => 'bengal',
+        'bn' => 'lingua bengala',
         'bo' => 'tibetan',
         'br' => 'breton',
         'bra' => 'braj',
@@ -82,9 +84,10 @@
         'crh' => 'tirc crimean',
         'cs' => 'tschec',
         'csb' => 'kaschubic',
+        'csw' => 'swampy cree',
         'cu' => 'slav da baselgia',
         'cv' => 'tschuvasch',
-        'cy' => 'kimric',
+        'cy' => 'valisic',
         'da' => 'danais',
         'dak' => 'dakota',
         'dar' => 'dargwa',
@@ -132,7 +135,7 @@
         'frr' => 'fris dal nord',
         'frs' => 'fris da l’ost',
         'fur' => 'friulan',
-        'fy' => 'fris',
+        'fy' => 'fris occidental',
         'ga' => 'irlandais',
         'gaa' => 'ga',
         'gay' => 'gayo',
@@ -140,7 +143,7 @@
         'gd' => 'gaelic scot',
         'gez' => 'geez',
         'gil' => 'gilbertais',
-        'gl' => 'galician',
+        'gl' => 'galizian',
         'gmh' => 'tudestg mesaun',
         'gn' => 'guarani',
         'goh' => 'vegl tudestg da scrittira',
@@ -154,7 +157,7 @@
         'guz' => 'gusii',
         'gv' => 'manx',
         'gwi' => 'gwichʼin',
-        'ha' => 'haussa',
+        'ha' => 'hausa',
         'hai' => 'haida',
         'haw' => 'hawaian',
         'he' => 'ebraic',
@@ -200,19 +203,20 @@
         'kbd' => 'kabardic',
         'kcg' => 'tyap',
         'kde' => 'makonde',
-        'kea' => 'cabverdian',
+        'kea' => 'creol dal Cap Verd',
         'kfo' => 'koro',
         'kg' => 'kongo',
+        'kgp' => 'kaingang',
         'kha' => 'khasi',
         'kho' => 'khotanais',
         'khq' => 'koyra chiini',
         'ki' => 'kikuyu',
         'kj' => 'kuanyama',
-        'kk' => 'casac',
+        'kk' => 'kasac',
         'kkj' => 'kako',
         'kl' => 'grönlandais',
         'kln' => 'kalenjin',
-        'km' => 'cambodschan',
+        'km' => 'khmer',
         'kmb' => 'kimbundu',
         'kn' => 'kannada',
         'ko' => 'corean',
@@ -232,6 +236,7 @@
         'kut' => 'kutenai',
         'kv' => 'komi',
         'kw' => 'cornic',
+        'kxv' => 'kuvi',
         'ky' => 'kirghis',
         'la' => 'latin',
         'lad' => 'ladino',
@@ -242,7 +247,9 @@
         'lez' => 'lezghian',
         'lg' => 'ganda',
         'li' => 'limburgais',
+        'lij' => 'ligur',
         'lkt' => 'lakota',
+        'lmo' => 'lumbard',
         'ln' => 'lingala',
         'lo' => 'laot',
         'lol' => 'lomongo',
@@ -273,14 +280,14 @@
         'mgh' => 'makhuwa-meetto',
         'mgo' => 'meta’',
         'mh' => 'marschallais',
-        'mi' => 'maori',
+        'mi' => 'māori',
         'mic' => 'micmac',
         'min' => 'minangkabau',
         'mk' => 'macedon',
         'ml' => 'malayalam',
-        'mn' => 'mongolic',
+        'mn' => 'mongol',
         'mnc' => 'manchu',
-        'mni' => 'manipuri',
+        'mni' => 'meitei',
         'moh' => 'mohawk',
         'mos' => 'mossi',
         'mr' => 'marathi',
@@ -304,7 +311,7 @@
         'ng' => 'ndonga',
         'nia' => 'nias',
         'niu' => 'niue',
-        'nl' => 'ollandais',
+        'nl' => 'neerlandais',
         'nmg' => 'kwasio',
         'nn' => 'norvegiais nynorsk',
         'nnh' => 'ngienboon',
@@ -403,16 +410,17 @@
         'sus' => 'susu',
         'sux' => 'sumeric',
         'sv' => 'svedais',
-        'sw' => 'suahili',
+        'sw' => 'suaheli',
         'syc' => 'siric classic',
-        'syr' => 'siric',
+        'syr' => 'sirian',
+        'szl' => 'silesian',
         'ta' => 'tamil',
         'te' => 'telugu',
         'tem' => 'temne',
         'teo' => 'teso',
         'ter' => 'tereno',
         'tet' => 'tetum',
-        'tg' => 'tadjik',
+        'tg' => 'tadschic',
         'th' => 'tailandais',
         'ti' => 'tigrinya',
         'tig' => 'tigre',
@@ -447,7 +455,9 @@
         'uz' => 'usbec',
         'vai' => 'vai',
         've' => 'venda',
+        'vec' => 'venetic',
         'vi' => 'vietnamais',
+        'vmw' => 'makhuwa',
         'vo' => 'volapuk',
         'vot' => 'votic',
         'vun' => 'vunjo',
@@ -459,12 +469,14 @@
         'wo' => 'wolof',
         'xal' => 'kalmuk',
         'xh' => 'xhosa',
+        'xnr' => 'kangri',
         'xog' => 'soga',
         'yao' => 'yao',
         'yap' => 'yapais',
         'yav' => 'yangben',
         'yi' => 'jiddic',
         'yo' => 'yoruba',
+        'yrl' => 'nheengatu',
         'yue' => 'cantonais',
         'za' => 'zhuang',
         'zap' => 'zapotec',
@@ -477,7 +489,7 @@
         'zza' => 'zaza',
     ],
     'LocalizedNames' => [
-        'ar_001' => 'arab modern standardisà',
+        'ar_001' => 'arab standardisà modern',
         'de_AT' => 'tudestg austriac',
         'de_CH' => 'tudestg da scrittira svizzer',
         'en_AU' => 'englais australian',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sc.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sc.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sc.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sc.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,6 +2,7 @@
 
 return [
     'Names' => [
+        'aa' => 'afar',
         'ab' => 'abcasu',
         'ace' => 'acehnesu',
         'ada' => 'adangme',
@@ -30,28 +31,37 @@
         'ay' => 'aimara',
         'az' => 'azerbaigianu',
         'ba' => 'baschiru',
+        'bal' => 'baluci',
         'ban' => 'balinesu',
         'bas' => 'basaa',
         'be' => 'bielorussu',
         'bem' => 'bemba',
+        'bew' => 'betawi',
         'bez' => 'bena',
         'bg' => 'bùlgaru',
         'bgc' => 'haryanvi',
+        'bgn' => 'baluci otzidentale',
         'bho' => 'bhojpuri',
         'bi' => 'bislama',
         'bin' => 'bini',
         'bla' => 'pees nieddos',
         'blo' => 'anii',
+        'blt' => 'tai dam',
         'bm' => 'bambara',
         'bn' => 'bengalesu',
         'bo' => 'tibetanu',
+        'bqi' => 'bakhtiari',
         'br' => 'brètone',
         'brx' => 'bodo',
         'bs' => 'bosnìacu',
+        'bss' => 'akoose',
+        'bua' => 'buriat',
         'bug' => 'buginesu',
         'byn' => 'blin',
         'ca' => 'catalanu',
+        'cad' => 'caddo',
         'cay' => 'cayuga',
+        'cch' => 'atsam',
         'ccp' => 'chakma',
         'ce' => 'cecenu',
         'ceb' => 'cebuanu',
@@ -63,9 +73,11 @@
         'chp' => 'chipewyan',
         'chr' => 'cherokee',
         'chy' => 'cheyenne',
+        'cic' => 'chickasaw',
         'ckb' => 'curdu tzentrale',
         'clc' => 'chilcotin',
         'co' => 'corsicanu',
+        'cop' => 'coptu',
         'crg' => 'michif',
         'crj' => 'cree sud-orientale',
         'crk' => 'cree de sas campuras',
@@ -131,10 +143,11 @@
         'hai' => 'haida',
         'haw' => 'hawaianu',
         'hax' => 'haida meridionale',
-        'he' => 'ebreu',
+        'he' => 'ebràicu',
         'hi' => 'hindi',
         'hil' => 'ilongu',
         'hmn' => 'hmong',
+        'hnj' => 'hmong njua',
         'hr' => 'croatu',
         'hsb' => 'sòrabu artu',
         'ht' => 'crèolu haitianu',
@@ -163,6 +176,7 @@
         'jmc' => 'machame',
         'jv' => 'giavanesu',
         'ka' => 'georgianu',
+        'kaa' => 'kara-kalpak',
         'kab' => 'cabilu',
         'kac' => 'kachin',
         'kaj' => 'jju',
@@ -171,6 +185,8 @@
         'kcg' => 'tyap',
         'kde' => 'makonde',
         'kea' => 'cabubirdianu',
+        'kek' => 'qʼeqchiʼ',
+        'ken' => 'kenyang',
         'kfo' => 'koro',
         'kgp' => 'kaingang',
         'kha' => 'khasi',
@@ -212,6 +228,7 @@
         'lij' => 'lìgure',
         'lil' => 'lillooet',
         'lkt' => 'lakota',
+        'lld' => 'ladinu',
         'lmo' => 'lombardu',
         'ln' => 'lingala',
         'lo' => 'laotianu',
@@ -220,12 +237,14 @@
         'lrc' => 'luri setentrionale',
         'lsm' => 'sàmia',
         'lt' => 'lituanu',
+        'ltg' => 'latgalianu',
         'lu' => 'luba-katanga',
         'lua' => 'tshiluba',
         'lun' => 'lunda',
         'lus' => 'mizo',
         'luy' => 'luyia',
         'lv' => 'lètone',
+        'lzz' => 'laz',
         'mad' => 'maduresu',
         'mag' => 'magahi',
         'mai' => 'maithili',
@@ -239,6 +258,7 @@
         'mgh' => 'makhuwa-meetto',
         'mgo' => 'meta’',
         'mh' => 'marshallesu',
+        'mhn' => 'mòchenu',
         'mi' => 'maori',
         'mic' => 'micmac',
         'min' => 'minangkabau',
@@ -255,10 +275,12 @@
         'mua' => 'mundang',
         'mus' => 'muscogee',
         'mwl' => 'mirandesu',
+        'mww' => 'hmong daw',
         'my' => 'burmesu',
         'myv' => 'erzya',
         'mzn' => 'mazandarani',
         'na' => 'nauru',
+        'nan' => 'min nan',
         'nap' => 'napoletanu',
         'naq' => 'nama',
         'nb' => 'norvegesu bokmål',
@@ -291,19 +313,23 @@
         'om' => 'oromo',
         'or' => 'odia',
         'os' => 'ossèticu',
+        'osa' => 'osage',
         'pa' => 'punjabi',
         'pag' => 'pangasinan',
         'pam' => 'pampanga',
         'pap' => 'papiamentu',
         'pau' => 'palauanu',
         'pcm' => 'pidgin nigerianu',
+        'pi' => 'pali',
         'pis' => 'pijin',
         'pl' => 'polacu',
+        'pms' => 'piemontesu',
         'pqm' => 'malecite-passamaquoddy',
         'prg' => 'prussianu',
         'ps' => 'pashto',
         'pt' => 'portoghesu',
         'qu' => 'quechua',
+        'quc' => 'k’iche’',
         'raj' => 'rajasthani',
         'rap' => 'rapanui',
         'rar' => 'rarotonganu',
@@ -328,17 +354,23 @@
         'scn' => 'sitzilianu',
         'sco' => 'scots',
         'sd' => 'sindhi',
+        'sdh' => 'curdu meridionale',
         'se' => 'sami setentrionale',
         'seh' => 'sena',
         'ses' => 'koyraboro senni',
         'sg' => 'sango',
+        'sgs' => 'samogitianu',
         'shi' => 'tashelhit',
         'shn' => 'shan',
         'si' => 'singalesu',
+        'sid' => 'sidamo',
         'sk' => 'islovacu',
+        'skr' => 'saraiki',
         'sl' => 'islovenu',
         'slh' => 'lushootseed meridionale',
         'sm' => 'samoanu',
+        'sma' => 'sami meridionale',
+        'smj' => 'sami de Lule',
         'smn' => 'sami de sos inari',
         'sms' => 'sami skolt',
         'sn' => 'shona',
@@ -348,10 +380,12 @@
         'sr' => 'serbu',
         'srn' => 'sranan tongo',
         'ss' => 'swati',
+        'ssy' => 'saho',
         'st' => 'sotho meridionale',
         'str' => 'salish de sas astrinturas',
         'su' => 'sundanesu',
         'suk' => 'sukuma',
+        'suz' => 'sunwar',
         'sv' => 'isvedesu',
         'sw' => 'swahili',
         'swb' => 'comorianu',
@@ -378,6 +412,7 @@
         'tpi' => 'tok pisin',
         'tr' => 'turcu',
         'trv' => 'taroko',
+        'trw' => 'torwali',
         'ts' => 'tsonga',
         'tt' => 'tàtaru',
         'ttm' => 'tutchone setentrionale',
@@ -403,6 +438,7 @@
         'wae' => 'walser',
         'wal' => 'wolaita',
         'war' => 'waray',
+        'wbp' => 'warlpiri',
         'wo' => 'wolof',
         'wuu' => 'wu',
         'xal' => 'calmucu',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sd.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,6 +30,7 @@
         'ay' => 'ایمارا',
         'az' => 'آزربائيجاني',
         'ba' => 'ڪينيڊا',
+        'bal' => 'بلوچي',
         'ban' => 'بالينيس',
         'bas' => 'باسا',
         'be' => 'بيلاروسي',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sh.php	2026-05-20 10:56:49.000000000 +0200
@@ -549,11 +549,16 @@
         'de_CH' => 'švajcarski visoki nemački',
         'en_GB' => 'engleski (Velika Britanija)',
         'en_US' => 'engleski (Sjedinjene Američke Države)',
-        'es_ES' => 'španski (Evropa)',
+        'es_419' => 'latinoamerički španski',
+        'es_ES' => 'evropski španski',
+        'es_MX' => 'meksički španski',
         'fa_AF' => 'dari',
+        'fr_CA' => 'kanadski francuski',
+        'fr_CH' => 'švajcarski francuski',
         'nds_NL' => 'niskosaksonski',
         'nl_BE' => 'flamanski',
-        'pt_PT' => 'portugalski (Portugal)',
+        'pt_BR' => 'brazilski portugalski',
+        'pt_PT' => 'evropski portugalski',
         'ro_MD' => 'moldavski',
         'sw_CD' => 'kisvahili',
         'zh_Hans' => 'pojednostavljeni kineski',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/si.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/si.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/si.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/si.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,6 +31,7 @@
         'ay' => 'අයිමරා',
         'az' => 'අසර්බයිජාන්',
         'ba' => 'බාෂ්කිර්',
+        'bal' => 'බලුචි',
         'ban' => 'බැලිනීස්',
         'bas' => 'බසා',
         'be' => 'බෙලරුසියානු',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/so.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/so.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/so.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/so.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,6 +29,7 @@
         'ay' => 'U dhashay Aymar',
         'az' => 'Asarbayjan',
         'ba' => 'Bashkir',
+        'bal' => 'Baluchi',
         'ban' => 'U dhashay Baline',
         'bas' => 'Basaa',
         'be' => 'Beleruusiyaan',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sq.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sq.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sq.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sq.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,6 +30,7 @@
         'ay' => 'ajmarisht',
         'az' => 'azerbajxhanisht',
         'ba' => 'bashkirisht',
+        'bal' => 'balukisht',
         'ban' => 'balinezisht',
         'bas' => 'basaisht',
         'be' => 'bjellorusisht',
@@ -213,7 +214,7 @@
         'lez' => 'lezgianisht',
         'lg' => 'gandaisht',
         'li' => 'limburgisht',
-        'lij' => 'ligurianisht',
+        'lij' => 'ligurisht',
         'lil' => 'lilluetisht',
         'lkt' => 'lakotisht',
         'lmo' => 'lombardisht',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sr_Latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sr_Latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sr_Latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sr_Latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -549,11 +549,16 @@
         'de_CH' => 'švajcarski visoki nemački',
         'en_GB' => 'engleski (Velika Britanija)',
         'en_US' => 'engleski (Sjedinjene Američke Države)',
-        'es_ES' => 'španski (Evropa)',
+        'es_419' => 'latinoamerički španski',
+        'es_ES' => 'evropski španski',
+        'es_MX' => 'meksički španski',
         'fa_AF' => 'dari',
+        'fr_CA' => 'kanadski francuski',
+        'fr_CH' => 'švajcarski francuski',
         'nds_NL' => 'niskosaksonski',
         'nl_BE' => 'flamanski',
-        'pt_PT' => 'portugalski (Portugal)',
+        'pt_BR' => 'brazilski portugalski',
+        'pt_PT' => 'evropski portugalski',
         'ro_MD' => 'moldavski',
         'sw_CD' => 'kisvahili',
         'zh_Hans' => 'pojednostavljeni kineski',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sr.php	2026-05-20 10:56:49.000000000 +0200
@@ -549,11 +549,16 @@
         'de_CH' => 'швајцарски високи немачки',
         'en_GB' => 'енглески (Велика Британија)',
         'en_US' => 'енглески (Сједињене Америчке Државе)',
-        'es_ES' => 'шпански (Европа)',
+        'es_419' => 'латиноамерички шпански',
+        'es_ES' => 'европски шпански',
+        'es_MX' => 'мексички шпански',
         'fa_AF' => 'дари',
+        'fr_CA' => 'канадски француски',
+        'fr_CH' => 'швајцарски француски',
         'nds_NL' => 'нискосаксонски',
         'nl_BE' => 'фламански',
-        'pt_PT' => 'португалски (Португал)',
+        'pt_BR' => 'бразилски португалски',
+        'pt_PT' => 'европски португалски',
         'ro_MD' => 'молдавски',
         'sw_CD' => 'кисвахили',
         'zh_Hans' => 'поједностављени кинески',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/st.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/st.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/st.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/st.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,6 +2,7 @@
 
 return [
     'Names' => [
+        'cy' => 'Sewelsh',
         'en' => 'Senyesemane',
         'st' => 'Sesotho',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/sw.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,6 +35,7 @@
         'ay' => 'Kiaymara',
         'az' => 'Kiazerbaijani',
         'ba' => 'Kibashkiri',
+        'bal' => 'Kibaluchi',
         'ban' => 'Kibali',
         'bas' => 'Kibasaa',
         'bax' => 'Kibamun',
@@ -472,12 +473,10 @@
     ],
     'LocalizedNames' => [
         'ar_001' => 'Kiarabu sanifu',
-        'en_CA' => 'Kiingereza (Canada)',
         'en_GB' => 'Kiingereza (Uingereza)',
         'es_419' => 'Kihispania (Amerika ya Latini)',
         'es_ES' => 'Kihispania (Ulaya)',
         'fa_AF' => 'Kiajemi (Afganistani)',
-        'fr_CA' => 'Kifaransa (Canada)',
         'nl_BE' => 'Kiflemi',
         'pt_BR' => 'Kireno (Brazili)',
         'pt_PT' => 'Kireno (Ulaya)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ta.php	2026-05-20 10:56:49.000000000 +0200
@@ -213,7 +213,7 @@
         'is' => 'ஐஸ்லேண்டிக்',
         'it' => 'இத்தாலியன்',
         'iu' => 'இனுகிடூட்',
-        'ja' => 'ஜப்பானியம்',
+        'ja' => 'ஜாப்பனீஸ்',
         'jbo' => 'லோஜ்பன்',
         'jgo' => 'நகொம்பா',
         'jmc' => 'மாசெம்',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/te.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/te.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/te.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/te.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
         'ay' => 'ఐమారా',
         'az' => 'అజర్బైజాని',
         'ba' => 'బాష్కిర్',
-        'bal' => 'బాలుచి',
+        'bal' => 'బలూచి',
         'ban' => 'బాలినీస్',
         'bas' => 'బసా',
         'be' => 'బెలారుషియన్',
@@ -140,7 +140,7 @@
         'fa' => 'పర్షియన్',
         'fan' => 'ఫాంగ్',
         'fat' => 'ఫాంటి',
-        'ff' => 'ఫ్యుల',
+        'ff' => 'ఫూలా',
         'fi' => 'ఫిన్నిష్',
         'fil' => 'ఫిలిపినో',
         'fj' => 'ఫిజియన్',
@@ -182,7 +182,7 @@
         'hak' => 'హక్కా చైనీస్',
         'haw' => 'హవాయియన్',
         'hax' => 'దక్షిణ హైదా',
-        'he' => 'హిబ్రూ',
+        'he' => 'హీబ్రూ',
         'hi' => 'హిందీ',
         'hil' => 'హిలిగెనాన్',
         'hit' => 'హిట్టిటే',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ti_ER.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ti_ER.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ti_ER.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ti_ER.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-<?php
-
-return [
-    'Names' => [
-        'sr' => 'ሰርብኛ',
-    ],
-    'LocalizedNames' => [],
-];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ti.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ti.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ti.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ti.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,7 +2,7 @@
 
 return [
     'Names' => [
-        'aa' => 'አፋር',
+        'aa' => 'ዓፋር',
         'ab' => 'ኣብካዝኛ',
         'ace' => 'ኣቸኒዝኛ',
         'ada' => 'ኣዳንግሜ',
@@ -24,7 +24,7 @@
         'ars' => 'ናጅዲ ዓረብኛ',
         'as' => 'ኣሳሜዝኛ',
         'asa' => 'ኣሱ',
-        'ast' => 'ኣስቱርያን',
+        'ast' => 'ኣስቱርኛ',
         'atj' => 'ኣቲካመክ',
         'av' => 'ኣቫርኛ',
         'awa' => 'ኣዋዲ',
@@ -50,14 +50,16 @@
         'bm' => 'ባምባራ',
         'bn' => 'በንጋሊ',
         'bo' => 'ቲበታንኛ',
+        'bqi' => 'ባኽትያሪ',
         'br' => 'ብረቶንኛ',
         'brx' => 'ቦዶ',
         'bs' => 'ቦዝንኛ',
         'bss' => 'ኣኮስ',
+        'bua' => 'ቡርያትኛ',
         'bug' => 'ቡጊንኛ',
         'byn' => 'ብሊን',
         'ca' => 'ካታላን',
-        'cad' => 'ካድዶ',
+        'cad' => 'ካዶ',
         'cay' => 'ካዩጋ',
         'cch' => 'ኣትሳም',
         'ccp' => 'ቻክማ',
@@ -72,15 +74,16 @@
         'chr' => 'ቸሮኪ',
         'chy' => 'ሻያን',
         'cic' => 'ቺካሳው',
-        'ckb' => 'ማእከላይ ኩርዲሽ',
+        'ckb' => 'ኩርዲሽ ሶራኒ',
         'clc' => 'ቺልኮቲን',
         'co' => 'ኮርስኛ',
+        'cop' => 'ቁብጥኛ',
         'crg' => 'ሚቺፍ',
         'crj' => 'ደቡባዊ ምብራቕ ክሪ',
-        'crk' => 'ክሪ ፕሌንስ',
+        'crk' => 'ክሪ ቆላታት',
         'crl' => 'ሰሜናዊ ምብራቕ ክሪ',
         'crm' => 'ሙስ ክሪ',
-        'crr' => 'ካሮሊና አልጎንጉያኛ',
+        'crr' => 'ኣልጎንክኛ ካሮሊና',
         'cs' => 'ቸክኛ',
         'csw' => 'ክሪ ረግረግ',
         'cu' => 'ቤተ-ክርስትያን ስላቭኛ',
@@ -119,7 +122,7 @@
         'fo' => 'ፋሮእይና',
         'fon' => 'ፎን',
         'fr' => 'ፈረንሳይኛ',
-        'frc' => 'ካጁን ፈረንሳይ',
+        'frc' => 'ካጁን ፈረንሳይኛ',
         'frr' => 'ሰሜናዊ ፍሪስኛ',
         'fur' => 'ፍርዩልኛ',
         'fy' => 'ምዕራባዊ ፍሪስኛ',
@@ -182,6 +185,7 @@
         'kcg' => 'ታያፕ',
         'kde' => 'ማኮንደ',
         'kea' => 'ክርዮል ኬፕ ቨርድኛ',
+        'kek' => 'ቄቅቺ',
         'ken' => 'ኬንያንግ',
         'kfo' => 'ኮሮ',
         'kgp' => 'ካይንጋንግ',
@@ -206,7 +210,7 @@
         'ks' => 'ካሽሚሪ',
         'ksb' => 'ሻምባላ',
         'ksf' => 'ባፍያ',
-        'ksh' => 'ኮሎግኒያን',
+        'ksh' => 'ኮልሽ',
         'ku' => 'ኩርዲሽ',
         'kum' => 'ኩሚይክ',
         'kv' => 'ኮሚ',
@@ -232,7 +236,7 @@
         'lrc' => 'ሰሜናዊ ሉሪ',
         'lsm' => 'ሳምያ',
         'lt' => 'ሊትዌንኛ',
-        'ltg' => 'ላትጋላዊ',
+        'ltg' => 'ላትጋልኛ',
         'lu' => 'ሉባ-ካታንጋ',
         'lua' => 'ሉባ-ሉልዋ',
         'lun' => 'ሉንዳ',
@@ -273,7 +277,7 @@
         'myv' => 'ኤርዝያ',
         'mzn' => 'ማዛንደራኒ',
         'na' => 'ናውርዋንኛ',
-        'nap' => 'ኒያፖሊታንኛ',
+        'nap' => 'ናፖሊታንኛ',
         'naq' => 'ናማ',
         'nb' => 'ኖርወያዊ ቦክማል',
         'nd' => 'ሰሜን ኤንደበለ',
@@ -312,8 +316,10 @@
         'pap' => 'ፓፕያመንቶ',
         'pau' => 'ፓላውኛ',
         'pcm' => 'ፒጂን ናይጀርያ',
+        'pi' => 'ፓሊ',
         'pis' => 'ፒጂን',
         'pl' => 'ፖሊሽ',
+        'pms' => 'ፒድሞንትኛ',
         'pqm' => 'ማሊሲት-ፓሳማኳዲ',
         'prg' => 'ፕሩስኛ',
         'ps' => 'ፓሽቶ',
@@ -349,11 +355,12 @@
         'seh' => 'ሰና',
         'ses' => 'ኮይራቦሮ ሰኒ',
         'sg' => 'ሳንጎ',
+        'sgs' => 'ሳሞጂትኛ',
         'sh' => 'ሰርቦ-ክሮኤሽያኛ',
         'shi' => 'ታቸልሂት',
         'shn' => 'ሻን',
         'si' => 'ሲንሃላ',
-        'sid' => 'ሲዳመኛ',
+        'sid' => 'ሲዳሞ',
         'sk' => 'ስሎቫክኛ',
         'sl' => 'ስሎቬንኛ',
         'slh' => 'ደቡባዊ ሉሹትሲድ',
@@ -366,7 +373,7 @@
         'snk' => 'ሶኒንከ',
         'so' => 'ሶማሊ',
         'sq' => 'ኣልባንኛ',
-        'sr' => 'ሰርቢያኛ',
+        'sr' => 'ሰርብኛ',
         'srn' => 'ስራናን ቶንጎ',
         'ss' => 'ስዋዚ',
         'ssy' => 'ሳሆ',
@@ -377,8 +384,8 @@
         'sv' => 'ስዊድንኛ',
         'sw' => 'ስዋሂሊ',
         'swb' => 'ኮሞርኛ',
-        'syr' => 'ሶርያኛ',
-        'szl' => 'ሲሌሲያን',
+        'syr' => 'ሶርይኛ',
+        'szl' => 'ሲለዝኛ',
         'ta' => 'ታሚል',
         'tce' => 'ደቡባዊ ታትቾን',
         'te' => 'ተሉጉ',
@@ -400,7 +407,7 @@
         'tpi' => 'ቶክ ፒሲን',
         'tr' => 'ቱርክኛ',
         'trv' => 'ታሮኮ',
-        'trw' => 'ቶርዋሊኛ',
+        'trw' => 'ቶርዋሊ',
         'ts' => 'ሶንጋ',
         'tt' => 'ታታር',
         'ttm' => 'ሰሜናዊ ታትቾን',
@@ -419,21 +426,21 @@
         'uz' => 'ኡዝበክኛ',
         'vai' => 'ቫይ',
         've' => 'ቨንዳ',
-        'vec' => 'ቬንቲያንኛ',
+        'vec' => 'ቬነትኛ',
         'vi' => 'ቬትናምኛ',
         'vmw' => 'ማክሁዋ',
         'vo' => 'ቮላፑክ',
         'vun' => 'ቩንጆ',
         'wa' => 'ዋሎን',
         'wae' => 'ዋልሰር',
-        'wal' => 'ዎላይታኛ',
+        'wal' => 'ወላይታ',
         'war' => 'ዋራይ',
         'wbp' => 'ዋርልፒሪ',
         'wo' => 'ዎሎፍ',
         'wuu' => 'ቻይናዊ ዉ',
         'xal' => 'ካልምይክ',
         'xh' => 'ኮሳ',
-        'xnr' => 'ካንጋሪኛ',
+        'xnr' => 'ካንግሪ',
         'xog' => 'ሶጋ',
         'yav' => 'ያንግበን',
         'ybb' => 'የምባ',
@@ -450,12 +457,24 @@
     ],
     'LocalizedNames' => [
         'ar_001' => 'ዘመናዊ ምዱብ ዓረብኛ',
+        'de_AT' => 'ኦስትርያዊ ጀርመን',
+        'de_CH' => 'ስዊዘርላንዳዊ ላዕለዋይ ጀርመን',
+        'en_AU' => 'ኣውስትራልያዊ እንግሊዝኛ',
+        'en_CA' => 'ካናዳዊ እንግሊዝኛ',
+        'en_GB' => 'ብሪጣንያዊ እንግሊዝኛ',
+        'en_US' => 'ኣመሪካዊ እንግሊዝኛ',
+        'es_419' => 'ላቲን ኣመሪካዊ ስጳንኛ',
         'es_ES' => 'ስጳንኛ (ኤውሮጳዊ)',
+        'es_MX' => 'ስጳንኛ ሜክሲኮ',
         'fa_AF' => 'ዳሪ',
+        'fr_CA' => 'ካናዳዊ ፈረንሳይኛ',
+        'fr_CH' => 'ስዊዘርላንዳዊ ፈረንሳይኛ',
         'nds_NL' => 'ትሑት ሳክሰን',
         'nl_BE' => 'ፍላሚሽ',
+        'pt_BR' => 'ፖርቱጊዝኛ ብራዚል',
+        'pt_PT' => 'ፖርቱጊዝኛ ፖርቱጋል',
         'ro_MD' => 'ሞልዶቨኛ',
-        'sw_CD' => 'ስዋሂሊ (ኮንጎ)',
+        'sw_CD' => 'ስዋሂሊ ኮንጎ',
         'zh_Hans' => 'ቀሊል ቻይንኛ',
         'zh_Hant' => 'ባህላዊ ቻይንኛ',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tk.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,6 +30,7 @@
         'ay' => 'aýmara dili',
         'az' => 'azerbaýjan dili',
         'ba' => 'başgyrt dili',
+        'bal' => 'buluç dili',
         'ban' => 'baliý dili',
         'bas' => 'basaa dili',
         'be' => 'belarus dili',
@@ -302,8 +303,8 @@
         'pis' => 'pijin dili',
         'pl' => 'polýak dili',
         'pqm' => 'malisit-passamakwodi dili',
-        'prg' => 'prussiýa dili',
-        'ps' => 'peştun dili',
+        'prg' => 'prus dili',
+        'ps' => 'puştu dili',
         'pt' => 'portugal dili',
         'qu' => 'keçua dili',
         'quc' => 'kiçe dili',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tl.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,6 +31,7 @@
         'ay' => 'Aymara',
         'az' => 'Azerbaijani',
         'ba' => 'Bashkir',
+        'bal' => 'Baluchi',
         'ban' => 'Balinese',
         'bas' => 'Basaa',
         'be' => 'Belarusian',
@@ -76,7 +77,7 @@
         'crr' => 'Carolina Algonquian',
         'crs' => 'Seselwa Creole French',
         'cs' => 'Czech',
-        'csw' => 'Latian na Cree',
+        'csw' => 'Swampy Cree',
         'cu' => 'Church Slavic',
         'cv' => 'Chuvash',
         'cy' => 'Welsh',
@@ -207,7 +208,7 @@
         'kw' => 'Cornish',
         'kwk' => 'Kwakʼwala',
         'kxv' => 'Kuvi',
-        'ky' => 'Kirghiz',
+        'ky' => 'Kyrgyz',
         'la' => 'Latin',
         'lad' => 'Ladino',
         'lag' => 'Langi',
@@ -403,7 +404,7 @@
         'tzm' => 'Central Atlas Tamazight',
         'udm' => 'Udmurt',
         'ug' => 'Uyghur',
-        'uk' => 'Ukranian',
+        'uk' => 'Ukrainian',
         'umb' => 'Umbundu',
         'ur' => 'Urdu',
         'uz' => 'Uzbek',
@@ -439,18 +440,14 @@
         'zza' => 'Zaza',
     ],
     'LocalizedNames' => [
-        'ar_001' => 'Modernong Karaniwang Arabic',
-        'de_AT' => 'Austrian German',
-        'de_CH' => 'Swiss High German',
+        'ar_001' => 'Modern Standard Arabic',
         'en_US' => 'Ingles (American)',
         'es_419' => 'Latin American na Espanyol',
         'es_ES' => 'European Spanish',
         'es_MX' => 'Mexican na Espanyol',
         'fa_AF' => 'Dari',
-        'fr_CH' => 'Swiss na French',
         'nds_NL' => 'Low Saxon',
         'nl_BE' => 'Flemish',
-        'pt_BR' => 'Portuges ng Brasil',
         'pt_PT' => 'European Portuguese',
         'ro_MD' => 'Moldavian',
         'sw_CD' => 'Congo Swahili',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/tt.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,7 +4,7 @@
     'Names' => [
         'af' => 'африкаанс',
         'am' => 'амхар',
-        'ar' => 'гарәп',
+        'ar' => 'гарәпчә',
         'arn' => 'мапуче',
         'as' => 'ассам',
         'az' => 'әзәрбайҗан',
@@ -13,7 +13,7 @@
         'be' => 'белорус',
         'bem' => 'бемба',
         'bg' => 'болгар',
-        'bn' => 'бенгали',
+        'bn' => 'бенгалча',
         'bo' => 'тибет',
         'br' => 'бретон',
         'bs' => 'босния',
@@ -147,10 +147,10 @@
         'wo' => 'волоф',
         'yi' => 'идиш',
         'yo' => 'йоруба',
-        'zh' => 'кытай',
+        'zh' => 'кытайча',
     ],
     'LocalizedNames' => [
-        'ar_001' => 'Заманча стандарт гарәп',
+        'ar_001' => 'заманча стандарт гарәпчә',
         'de_CH' => 'югары алман (Швейцария)',
         'en_GB' => 'Британия инглизчәсе',
         'en_US' => 'Америка инглизчәсе',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/uk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/uk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/uk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/uk.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
         'arq' => 'алжирська арабська',
         'ars' => 'надждійська арабська',
         'arw' => 'аравакська',
-        'as' => 'асамська',
+        'as' => 'ассамська',
         'asa' => 'асу',
         'ase' => 'американська мова рухів',
         'ast' => 'астурійська',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ur.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ur.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ur.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/ur.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,6 +31,7 @@
         'ay' => 'ایمارا',
         'az' => 'آذربائیجانی',
         'ba' => 'باشکیر',
+        'bal' => 'بلوچی',
         'ban' => 'بالینیز',
         'bas' => 'باسا',
         'be' => 'بیلاروسی',
@@ -202,7 +203,7 @@
         'ksb' => 'شامبالا',
         'ksf' => 'بافيا',
         'ksh' => 'کولوگنیائی',
-        'ku' => 'کردش',
+        'ku' => 'کردی',
         'kum' => 'کومیک',
         'kv' => 'کومی',
         'kw' => 'کورنش',
@@ -251,7 +252,7 @@
         'mic' => 'مکمیک',
         'min' => 'منانگکباؤ',
         'mk' => 'مقدونیائی',
-        'ml' => 'مالایالم',
+        'ml' => 'ملیالم',
         'mn' => 'منگولین',
         'mni' => 'منی پوری',
         'moe' => 'انو ایمن',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/uz.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/uz.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/uz.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/uz.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,6 +30,7 @@
         'ay' => 'aymara',
         'az' => 'ozarbayjon',
         'ba' => 'boshqird',
+        'bal' => 'baluj',
         'ban' => 'bali',
         'bas' => 'basa',
         'be' => 'belarus',
@@ -452,7 +453,6 @@
         'pt_PT' => 'portugal (Yevropa)',
         'ro_MD' => 'moldovan',
         'sw_CD' => 'suaxili (Kongo)',
-        'zh_Hans' => 'xitoy (soddalashgan)',
         'zh_Hant' => 'xitoy (an’anaviy)',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/vi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/vi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/vi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/vi.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
         'ay' => 'Tiếng Aymara',
         'az' => 'Tiếng Azerbaijan',
         'ba' => 'Tiếng Bashkir',
-        'bal' => 'Tiếng Baluchi',
+        'bal' => 'Tiếng Baloch',
         'ban' => 'Tiếng Bali',
         'bar' => 'Tiếng Bavaria',
         'bas' => 'Tiếng Basaa',
@@ -388,7 +388,7 @@
         'non' => 'Tiếng Na Uy cổ',
         'nqo' => 'Tiếng N’Ko',
         'nr' => 'Tiếng Ndebele Miền Nam',
-        'nso' => 'Tiếng Sotho Miền Bắc',
+        'nso' => 'Tiếng Bắc Sotho',
         'nus' => 'Tiếng Nuer',
         'nv' => 'Tiếng Navajo',
         'nwc' => 'Tiếng Newari cổ',
@@ -488,7 +488,7 @@
         'srr' => 'Tiếng Serer',
         'ss' => 'Tiếng Swati',
         'ssy' => 'Tiếng Saho',
-        'st' => 'Tiếng Sotho Miền Nam',
+        'st' => 'Tiếng Nam Sotho',
         'str' => 'Tiếng Straits Salish',
         'su' => 'Tiếng Sunda',
         'suk' => 'Tiếng Sukuma',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/wo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/wo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/wo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/wo.php	2026-05-20 10:56:49.000000000 +0200
@@ -150,7 +150,6 @@
         'zh' => 'Sinuwaa',
     ],
     'LocalizedNames' => [
-        'ar_001' => 'Araab',
         'de_AT' => 'Almaa bu Ótiriis',
         'de_CH' => 'Almaa bu Kawe bu Swis',
         'en_AU' => 'Àngale bu Óstraali',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/xh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/xh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/xh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/xh.php	2026-05-20 10:56:49.000000000 +0200
@@ -5,26 +5,99 @@
         'af' => 'IsiBhulu',
         'am' => 'IsiAmharic',
         'ar' => 'Isi-Arabhu',
+        'as' => 'IsiAssamese',
+        'az' => 'Isi-Azerbaijani',
+        'be' => 'Isi-Belarusian',
+        'bg' => 'Isi-Bulgaria',
         'bn' => 'IsiBangla',
+        'br' => 'IsiBreton',
+        'bs' => 'Isi-Bosnia',
+        'ca' => 'Isi-Calatan',
+        'cs' => 'Isi-Czech',
+        'cy' => 'Isi-Welsh',
+        'da' => 'Isi-Danish',
         'de' => 'IsiJamani',
+        'el' => 'Isi-Greek',
         'en' => 'IsiNgesi',
+        'eo' => 'Isi-Esperanto',
         'es' => 'Isi-Spanish',
+        'et' => 'Isi-Estonian',
+        'eu' => 'Isi-Basque',
+        'fa' => 'Isi-Persia',
+        'fi' => 'Isi-Finnish',
+        'fil' => 'Isi-Taglog',
+        'fo' => 'Isi-Faroese',
         'fr' => 'IsiFrentshi',
+        'fy' => 'Isi-Frisian',
+        'ga' => 'Isi-Irish',
+        'gd' => 'Scots Gaelic',
+        'gl' => 'Isi-Galician',
+        'gu' => 'Isi-Gujarati',
+        'he' => 'Isi-Hebrew',
         'hi' => 'IsiHindi',
+        'hr' => 'Isi-Croatia',
+        'hu' => 'Isi-Hungarian',
+        'hy' => 'IsiArmenia',
+        'ia' => 'Isi-Interlingua',
         'id' => 'Isi-Indonesia',
+        'ie' => 'Isi-Interlingue',
+        'is' => 'Isi-Icelandic',
         'it' => 'IsiTaliyane',
         'ja' => 'IsiJapan',
+        'jv' => 'Isi-Javanese',
+        'ka' => 'Isi-Georgia',
+        'km' => 'IsiCambodia',
+        'kn' => 'Isi-Kannada',
         'ko' => 'Isi-Korean',
+        'ku' => 'IsiKurdish',
+        'ky' => 'IsiKyrgz',
+        'lo' => 'IsiLoathian',
+        'lt' => 'Isi-Lithuanian',
+        'lv' => 'Isi-Latvian',
+        'mk' => 'Isi-Macedonian',
+        'ml' => 'Isi-Malayalam',
+        'mn' => 'IsiMongolian',
+        'mr' => 'Isi-Marathi',
+        'ms' => 'Isi-Malay',
+        'mt' => 'Isi-Maltese',
+        'ne' => 'Isi-Nepali',
         'nl' => 'IsiDatshi',
+        'nn' => 'Isi-Norwegia (Nynorsk)',
+        'no' => 'Isi-Norwegian',
+        'oc' => 'Iso-Occitan',
+        'or' => 'Oriya',
+        'pa' => 'Isi-Punjabi',
         'pl' => 'Isi-Polish',
+        'ps' => 'IsiPashto',
         'pt' => 'IsiPhuthukezi',
+        'ro' => 'Isi-Romanian',
         'ru' => 'Isi-Russian',
+        'sa' => 'IsiSanskrit',
+        'sd' => 'IsiSindhi',
+        'si' => 'Isi-Sinhalese',
+        'sk' => 'Isi-Slovak',
+        'sl' => 'Isi-Slovenian',
+        'so' => 'IsiSomaliya',
         'sq' => 'IsiAlbania',
+        'sr' => 'Isi-Serbia',
+        'st' => 'Sesotho',
+        'su' => 'Isi-Sudanese',
+        'sv' => 'Isi-Swedish',
+        'sw' => 'Isi-Swahili',
+        'ta' => 'Isi-Tamil',
+        'te' => 'Isi-Telegu',
         'th' => 'Isi-Thai',
+        'ti' => 'Isi-Tigrinya',
+        'tk' => 'IsiTurkmen',
         'tr' => 'Isi-Turkish',
+        'ug' => 'Isi Uighur',
+        'uk' => 'Isi-Ukranian',
+        'ur' => 'IsiUrdu',
+        'uz' => 'Isi-Uzbek',
+        'vi' => 'Isi-Vietnamese',
         'xh' => 'IsiXhosa',
         'zh' => 'IsiMandarin',
-        'zu' => 'isiZulu',
+        'zu' => 'IsiZulu',
     ],
     'LocalizedNames' => [
         'ar_001' => 'Isi-Arabhu (Sale mihla)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/yo_BJ.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/yo_BJ.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/yo_BJ.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/yo_BJ.php	2026-05-20 10:56:49.000000000 +0200
@@ -3,6 +3,7 @@
 return [
     'Names' => [
         'agq' => 'Èdè Ágɛ̀ɛ̀mù',
+        'bal' => 'Èdè Belúshì',
         'bez' => 'Èdè Bɛ́nà',
         'chr' => 'Èdè Shɛ́rókiì',
         'cu' => 'Èdè Síláfííkì Ilé Ìjɔ́sìn',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/yo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/yo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/yo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/yo.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,6 +29,7 @@
         'ay' => 'Èdè Amara',
         'az' => 'Èdè Asabaijani',
         'ba' => 'Èdè Bashiri',
+        'bal' => 'Èdè Belúṣì',
         'ban' => 'Èdè Balini',
         'bas' => 'Èdè Basaa',
         'be' => 'Èdè Belarusi',
@@ -422,7 +423,6 @@
         'zza' => 'Èdè Sasa',
     ],
     'LocalizedNames' => [
-        'ar_001' => 'Èdè Lárúbáwá (Agbáyé)',
         'de_AT' => 'Èdè Jámánì (Ọ́síríà )',
         'de_CH' => 'Èdè Ilẹ̀ Jámánì (Orílẹ́ède swítsàlandì)',
         'en_AU' => 'Èdè Gẹ̀ẹ́sì (órílẹ̀-èdè Ọsirélíà)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zh_Hant.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zh_Hant.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zh_Hant.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zh_Hant.php	2026-05-20 10:56:49.000000000 +0200
@@ -71,6 +71,7 @@
         'bkm' => '康姆文',
         'bla' => '錫克錫卡文',
         'blo' => '阿尼文',
+        'blt' => '黑傣語',
         'bm' => '班巴拉文',
         'bn' => '孟加拉文',
         'bo' => '藏文',
@@ -377,7 +378,7 @@
         'ms' => '馬來文',
         'mt' => '馬爾他文',
         'mua' => '蒙當文',
-        'mus' => '克里克文',
+        'mus' => '馬斯科吉文',
         'mwl' => '米蘭德斯文',
         'mwr' => '馬瓦里文',
         'mwv' => '明打威文',
@@ -556,7 +557,7 @@
         'tk' => '土庫曼文',
         'tkl' => '托克勞文',
         'tkr' => '查庫爾文',
-        'tl' => '塔加路族文',
+        'tl' => '他加祿文',
         'tlh' => '克林貢文',
         'tli' => '特林基特文',
         'tly' => '塔里什文',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zh.php	2026-05-20 10:56:49.000000000 +0200
@@ -270,7 +270,7 @@
         'kw' => '康沃尔语',
         'kwk' => '夸夸瓦拉语',
         'kxv' => '库维语',
-        'ky' => '柯尔克孜语',
+        'ky' => '吉尔吉斯语',
         'la' => '拉丁语',
         'lad' => '拉迪诺语',
         'lag' => '朗吉语',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/languages/zu.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,6 +31,7 @@
         'ay' => 'isi-Aymara',
         'az' => 'isi-Azerbaijani',
         'ba' => 'isi-Bashkir',
+        'bal' => 'IsiBaluchi',
         'ban' => 'isi-Balinese',
         'bas' => 'isi-Basaa',
         'be' => 'isi-Belarusian',
@@ -76,7 +77,7 @@
         'crr' => 'isi-Carolina Algonquian',
         'crs' => 'i-Seselwa Creole French',
         'cs' => 'isi-Czech',
-        'csw' => 'Swampy Cree',
+        'csw' => 'isi-Swampy Cree',
         'cu' => 'isi-Church Slavic',
         'cv' => 'isi-Chuvash',
         'cy' => 'isi-Welsh',
@@ -209,7 +210,7 @@
         'kv' => 'isi-Komi',
         'kw' => 'isi-Cornish',
         'kwk' => 'Kwakʼwala',
-        'kxv' => 'Kuvi',
+        'kxv' => 'isiKuvi',
         'ky' => 'isi-Kyrgyz',
         'la' => 'isi-Latin',
         'lad' => 'isi-Ladino',
@@ -412,9 +413,9 @@
         'uz' => 'isi-Uzbek',
         'vai' => 'isi-Vai',
         've' => 'isi-Venda',
-        'vec' => 'IsiVenetian',
+        'vec' => 'isiVenetian',
         'vi' => 'isi-Vietnamese',
-        'vmw' => 'Makhuwa',
+        'vmw' => 'isiMakhuwa',
         'vo' => 'isi-Volapük',
         'vun' => 'isiVunjo',
         'wa' => 'isi-Walloon',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/af.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/af.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/af.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/af.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Azerbeidjans (Cyrillies, Azerbeidjan)',
         'az_Latn' => 'Azerbeidjans (Latyn)',
         'az_Latn_AZ' => 'Azerbeidjans (Latyn, Azerbeidjan)',
+        'ba' => 'Baskir',
+        'ba_RU' => 'Baskir (Rusland)',
         'be' => 'Belarussies',
         'be_BY' => 'Belarussies (Belarus)',
         'bg' => 'Bulgaars',
@@ -125,6 +127,7 @@
         'en_DE' => 'Engels (Duitsland)',
         'en_DK' => 'Engels (Denemarke)',
         'en_DM' => 'Engels (Dominica)',
+        'en_EE' => 'Engels (Estland)',
         'en_ER' => 'Engels (Eritrea)',
         'en_ES' => 'Engels (Spanje)',
         'en_FI' => 'Engels (Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Engels (Frankryk)',
         'en_GB' => 'Engels (Verenigde Koninkryk)',
         'en_GD' => 'Engels (Grenada)',
+        'en_GE' => 'Engels (Georgië)',
         'en_GG' => 'Engels (Guernsey)',
         'en_GH' => 'Engels (Ghana)',
         'en_GI' => 'Engels (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Engels (Italië)',
         'en_JE' => 'Engels (Jersey)',
         'en_JM' => 'Engels (Jamaika)',
+        'en_JP' => 'Engels (Japan)',
         'en_KE' => 'Engels (Kenia)',
         'en_KI' => 'Engels (Kiribati)',
         'en_KN' => 'Engels (Sint Kitts en Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Engels (Sint Lucia)',
         'en_LR' => 'Engels (Liberië)',
         'en_LS' => 'Engels (Lesotho)',
+        'en_LT' => 'Engels (Litaue)',
+        'en_LV' => 'Engels (Letland)',
         'en_MG' => 'Engels (Madagaskar)',
         'en_MH' => 'Engels (Marshalleilande)',
         'en_MO' => 'Engels (Macau SAS China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Engels (Trinidad en Tobago)',
         'en_TV' => 'Engels (Tuvalu)',
         'en_TZ' => 'Engels (Tanzanië)',
+        'en_UA' => 'Engels (Oekraïne)',
         'en_UG' => 'Engels (Uganda)',
         'en_UM' => 'Engels (Klein afgeleë eilande van die VSA)',
         'en_US' => 'Engels (Verenigde State van Amerika)',
@@ -391,6 +399,8 @@
         'ki' => 'Kikuyu',
         'ki_KE' => 'Kikuyu (Kenia)',
         'kk' => 'Kazaks',
+        'kk_Arab' => 'Kazaks (Arabies)',
+        'kk_Arab_CN' => 'Kazaks (Arabies, China)',
         'kk_Cyrl' => 'Kazaks (Cyrillies)',
         'kk_Cyrl_KZ' => 'Kazaks (Cyrillies, Kazakstan)',
         'kk_KZ' => 'Kazaks (Kazakstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Kasjmiri (Devanagari, Indië)',
         'ks_IN' => 'Kasjmiri (Indië)',
         'ku' => 'Koerdies',
+        'ku_Latn' => 'Koerdies (Latyn)',
+        'ku_Latn_IQ' => 'Koerdies (Latyn, Irak)',
+        'ku_Latn_SY' => 'Koerdies (Latyn, Sirië)',
+        'ku_Latn_TR' => 'Koerdies (Latyn, Turkye)',
+        'ku_SY' => 'Koerdies (Sirië)',
         'ku_TR' => 'Koerdies (Turkye)',
         'kw' => 'Kornies',
         'kw_GB' => 'Kornies (Verenigde Koninkryk)',
@@ -480,8 +495,8 @@
         'om' => 'Oromo',
         'om_ET' => 'Oromo (Ethiopië)',
         'om_KE' => 'Oromo (Kenia)',
-        'or' => 'Oriya',
-        'or_IN' => 'Oriya (Indië)',
+        'or' => 'Odia',
+        'or_IN' => 'Odia (Indië)',
         'os' => 'Osseties',
         'os_GE' => 'Osseties (Georgië)',
         'os_RU' => 'Osseties (Rusland)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ak.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ak.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ak.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ak.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,8 +7,8 @@
         'af_ZA' => 'Afrikaans (Abibirem Anaafoɔ)',
         'ak' => 'Akan',
         'ak_GH' => 'Akan (Gaana)',
-        'am' => 'Amarik',
-        'am_ET' => 'Amarik (Ithiopia)',
+        'am' => 'Amariki',
+        'am_ET' => 'Amariki (Yitiopia)',
         'ar' => 'Arabeke',
         'ar_001' => 'Arabeke (wiase)',
         'ar_AE' => 'Arabeke (United Arab Emirates)',
@@ -83,6 +83,9 @@
         'de_IT' => 'Gyaaman (Itali)',
         'de_LI' => 'Gyaaman (Lektenstaen)',
         'de_LU' => 'Gyaaman (Lusimbɛg)',
+        'ee' => 'Ayigbe',
+        'ee_GH' => 'Ayigbe (Gaana)',
+        'ee_TG' => 'Ayigbe (Togo)',
         'el' => 'Greek kasa',
         'el_CY' => 'Greek kasa (Saeprɔso)',
         'el_GR' => 'Greek kasa (Greekman)',
@@ -99,7 +102,7 @@
         'en_BE' => 'Borɔfo (Bɛlgyium)',
         'en_BI' => 'Borɔfo (Burundi)',
         'en_BM' => 'Borɔfo (Bɛmuda)',
-        'en_BS' => 'Borɔfo (Bahama)',
+        'en_BS' => 'Borɔfo (Bahamase)',
         'en_BW' => 'Borɔfo (Bɔtswana)',
         'en_BZ' => 'Borɔfo (Beliz)',
         'en_CA' => 'Borɔfo (Kanada)',
@@ -113,6 +116,7 @@
         'en_DE' => 'Borɔfo (Gyaaman)',
         'en_DK' => 'Borɔfo (Dɛnmak)',
         'en_DM' => 'Borɔfo (Dɔmeneka)',
+        'en_EE' => 'Borɔfo (Ɛstonia)',
         'en_ER' => 'Borɔfo (Ɛritrea)',
         'en_ES' => 'Borɔfo (Spain)',
         'en_FI' => 'Borɔfo (Finland)',
@@ -122,6 +126,7 @@
         'en_FR' => 'Borɔfo (Franse)',
         'en_GB' => 'Borɔfo (UK)',
         'en_GD' => 'Borɔfo (Grenada)',
+        'en_GE' => 'Borɔfo (Gyɔgyea)',
         'en_GG' => 'Borɔfo (Guɛnse)',
         'en_GH' => 'Borɔfo (Gaana)',
         'en_GI' => 'Borɔfo (Gyebralta)',
@@ -131,7 +136,7 @@
         'en_GY' => 'Borɔfo (Gayana)',
         'en_HK' => 'Borɔfo (Hɔnkɔn Kyaena)',
         'en_HU' => 'Borɔfo (Hangari)',
-        'en_ID' => 'Borɔfo (Indɔnehyia)',
+        'en_ID' => 'Borɔfo (Ndoniihyia)',
         'en_IE' => 'Borɔfo (Aereland)',
         'en_IL' => 'Borɔfo (Israe)',
         'en_IM' => 'Borɔfo (Isle of Man)',
@@ -140,13 +145,16 @@
         'en_IT' => 'Borɔfo (Itali)',
         'en_JE' => 'Borɔfo (Gyɛsi)',
         'en_JM' => 'Borɔfo (Gyameka)',
+        'en_JP' => 'Borɔfo (Gyapan)',
         'en_KE' => 'Borɔfo (Kenya)',
         'en_KI' => 'Borɔfo (Kiribati)',
-        'en_KN' => 'Borɔfo (Saint Kitts ne Nɛves)',
+        'en_KN' => 'Borɔfo (Saint Kitts ne Nevis)',
         'en_KY' => 'Borɔfo (Kemanfo Islands)',
         'en_LC' => 'Borɔfo (Saint Lucia)',
         'en_LR' => 'Borɔfo (Laeberia)',
         'en_LS' => 'Borɔfo (Lesoto)',
+        'en_LT' => 'Borɔfo (Lituwenia)',
+        'en_LV' => 'Borɔfo (Latvia)',
         'en_MG' => 'Borɔfo (Madagaska)',
         'en_MH' => 'Borɔfo (Mahyaa Aeland)',
         'en_MO' => 'Borɔfo (Makaw Kyaena)',
@@ -181,7 +189,7 @@
         'en_SE' => 'Borɔfo (Sweden)',
         'en_SG' => 'Borɔfo (Singapɔ)',
         'en_SH' => 'Borɔfo (Saint Helena)',
-        'en_SI' => 'Borɔfo (Slovinia)',
+        'en_SI' => 'Borɔfo (Slovenia)',
         'en_SK' => 'Borɔfo (Slovakia)',
         'en_SL' => 'Borɔfo (Sɛra Liɔn)',
         'en_SS' => 'Borɔfo (Sudan Anaafoɔ)',
@@ -193,6 +201,7 @@
         'en_TT' => 'Borɔfo (Trinidad ne Tobago)',
         'en_TV' => 'Borɔfo (Tuvalu)',
         'en_TZ' => 'Borɔfo (Tansania)',
+        'en_UA' => 'Borɔfo (Ukren)',
         'en_UG' => 'Borɔfo (Yuganda)',
         'en_UM' => 'Borɔfo (U.S. Nkyɛnnkyɛn Supɔ Ahodoɔ)',
         'en_US' => 'Borɔfo (Amɛrika)',
@@ -215,7 +224,7 @@
         'es_CL' => 'Spain kasa (Kyili)',
         'es_CO' => 'Spain kasa (Kolombia)',
         'es_CR' => 'Spain kasa (Kɔsta Rika)',
-        'es_CU' => 'Spain kasa (Kuba)',
+        'es_CU' => 'Spain kasa (Kiuba)',
         'es_DO' => 'Spain kasa (Dɔmeneka Man)',
         'es_EC' => 'Spain kasa (Yikuwedɔ)',
         'es_ES' => 'Spain kasa (Spain)',
@@ -239,7 +248,7 @@
         'eu_ES' => 'Baske (Spain)',
         'fa' => 'Pɛɛhyia kasa',
         'fa_AF' => 'Pɛɛhyia kasa (Afganistan)',
-        'fa_IR' => 'Pɛɛhyia kasa (Iran)',
+        'fa_IR' => 'Pɛɛhyia kasa (Yiran)',
         'ff' => 'Fula kasa',
         'ff_Adlm' => 'Fula kasa (Adlam kasa)',
         'ff_Adlm_BF' => 'Fula kasa (Adlam kasa, Bɔkina Faso)',
@@ -354,7 +363,7 @@
         'ia' => 'Kasa ntam',
         'ia_001' => 'Kasa ntam (wiase)',
         'id' => 'Indonihyia kasa',
-        'id_ID' => 'Indonihyia kasa (Indɔnehyia)',
+        'id_ID' => 'Indonihyia kasa (Ndoniihyia)',
         'ie' => 'Kasa afrafra',
         'ie_EE' => 'Kasa afrafra (Ɛstonia)',
         'ig' => 'Igbo kasa',
@@ -369,10 +378,12 @@
         'ja' => 'Gyapan kasa',
         'ja_JP' => 'Gyapan kasa (Gyapan)',
         'jv' => 'Gyabanis kasa',
-        'jv_ID' => 'Gyabanis kasa (Indɔnehyia)',
+        'jv_ID' => 'Gyabanis kasa (Ndoniihyia)',
         'ka' => 'Gyɔɔgyia kasa',
         'ka_GE' => 'Gyɔɔgyia kasa (Gyɔgyea)',
         'kk' => 'kasaki kasa',
+        'kk_Arab' => 'kasaki kasa (Arabeke)',
+        'kk_Arab_CN' => 'kasaki kasa (Arabeke, Kyaena)',
         'kk_Cyrl' => 'kasaki kasa (Kreleke)',
         'kk_Cyrl_KZ' => 'kasaki kasa (Kreleke, Kazakstan)',
         'kk_KZ' => 'kasaki kasa (Kazakstan)',
@@ -391,6 +402,11 @@
         'ks_Deva_IN' => 'Kahyimiɛ (Dɛvanagari kasa, India)',
         'ks_IN' => 'Kahyimiɛ (India)',
         'ku' => 'Kɛɛde kasa',
+        'ku_Latn' => 'Kɛɛde kasa (Laatin)',
+        'ku_Latn_IQ' => 'Kɛɛde kasa (Laatin, Irak)',
+        'ku_Latn_SY' => 'Kɛɛde kasa (Laatin, Siria)',
+        'ku_Latn_TR' => 'Kɛɛde kasa (Laatin, Tɛɛki)',
+        'ku_SY' => 'Kɛɛde kasa (Siria)',
         'ku_TR' => 'Kɛɛde kasa (Tɛɛki)',
         'ky' => 'Kɛgyese kasa',
         'ky_KG' => 'Kɛgyese kasa (Kɛɛgestan)',
@@ -414,7 +430,7 @@
         'mr_IN' => 'Marati (India)',
         'ms' => 'Malay kasa',
         'ms_BN' => 'Malay kasa (Brunae)',
-        'ms_ID' => 'Malay kasa (Indɔnehyia)',
+        'ms_ID' => 'Malay kasa (Ndoniihyia)',
         'ms_MY' => 'Malay kasa (Malehyia)',
         'ms_SG' => 'Malay kasa (Singapɔ)',
         'mt' => 'Malta kasa',
@@ -500,10 +516,10 @@
         'sk' => 'Slovak Kasa',
         'sk_SK' => 'Slovak Kasa (Slovakia)',
         'sl' => 'Slovɛniafoɔ Kasa',
-        'sl_SI' => 'Slovɛniafoɔ Kasa (Slovinia)',
+        'sl_SI' => 'Slovɛniafoɔ Kasa (Slovenia)',
         'so' => 'Somalia kasa',
         'so_DJ' => 'Somalia kasa (Gyibuti)',
-        'so_ET' => 'Somalia kasa (Ithiopia)',
+        'so_ET' => 'Somalia kasa (Yitiopia)',
         'so_KE' => 'Somalia kasa (Kenya)',
         'so_SO' => 'Somalia kasa (Somalia)',
         'sq' => 'Aabeniani',
@@ -522,9 +538,9 @@
         'sr_ME' => 'Sɛbia Kasa (Mɔntenegro)',
         'sr_RS' => 'Sɛbia Kasa (Sɛbia)',
         'su' => 'Sunda Kasa',
-        'su_ID' => 'Sunda Kasa (Indɔnehyia)',
+        'su_ID' => 'Sunda Kasa (Ndoniihyia)',
         'su_Latn' => 'Sunda Kasa (Laatin)',
-        'su_Latn_ID' => 'Sunda Kasa (Laatin, Indɔnehyia)',
+        'su_Latn_ID' => 'Sunda Kasa (Laatin, Ndoniihyia)',
         'sv' => 'Sweden kasa',
         'sv_AX' => 'Sweden kasa (Aland Aeland)',
         'sv_FI' => 'Sweden kasa (Finland)',
@@ -547,7 +563,7 @@
         'th_TH' => 'Taeland kasa (Taeland)',
         'ti' => 'Tigrinya kasa',
         'ti_ER' => 'Tigrinya kasa (Ɛritrea)',
-        'ti_ET' => 'Tigrinya kasa (Ithiopia)',
+        'ti_ET' => 'Tigrinya kasa (Yitiopia)',
         'tk' => 'Tɛkmɛnistan Kasa',
         'tk_TM' => 'Tɛkmɛnistan Kasa (Tɛkmɛnistan)',
         'to' => 'Tonga kasa',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/am.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/am.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/am.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/am.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'አዘርባጃንኛ (ሲይሪልክ፣ አዘርባጃን)',
         'az_Latn' => 'አዘርባጃንኛ (ላቲን)',
         'az_Latn_AZ' => 'አዘርባጃንኛ (ላቲን፣ አዘርባጃን)',
+        'ba' => 'ባስኪርኛ',
+        'ba_RU' => 'ባስኪርኛ (ሩስያ)',
         'be' => 'ቤላራሻኛ',
         'be_BY' => 'ቤላራሻኛ (ቤላሩስ)',
         'bg' => 'ቡልጋሪኛ',
@@ -125,6 +127,7 @@
         'en_DE' => 'እንግሊዝኛ (ጀርመን)',
         'en_DK' => 'እንግሊዝኛ (ዴንማርክ)',
         'en_DM' => 'እንግሊዝኛ (ዶሚኒካ)',
+        'en_EE' => 'እንግሊዝኛ (ኤስቶኒያ)',
         'en_ER' => 'እንግሊዝኛ (ኤርትራ)',
         'en_ES' => 'እንግሊዝኛ (ስፔን)',
         'en_FI' => 'እንግሊዝኛ (ፊንላንድ)',
@@ -134,6 +137,7 @@
         'en_FR' => 'እንግሊዝኛ (ፈረንሳይ)',
         'en_GB' => 'እንግሊዝኛ (ዩናይትድ ኪንግደም)',
         'en_GD' => 'እንግሊዝኛ (ግሬናዳ)',
+        'en_GE' => 'እንግሊዝኛ (ጆርጂያ)',
         'en_GG' => 'እንግሊዝኛ (ጉርነሲ)',
         'en_GH' => 'እንግሊዝኛ (ጋና)',
         'en_GI' => 'እንግሊዝኛ (ጂብራልተር)',
@@ -152,6 +156,7 @@
         'en_IT' => 'እንግሊዝኛ (ጣሊያን)',
         'en_JE' => 'እንግሊዝኛ (ጀርዚ)',
         'en_JM' => 'እንግሊዝኛ (ጃማይካ)',
+        'en_JP' => 'እንግሊዝኛ (ጃፓን)',
         'en_KE' => 'እንግሊዝኛ (ኬንያ)',
         'en_KI' => 'እንግሊዝኛ (ኪሪባቲ)',
         'en_KN' => 'እንግሊዝኛ (ቅዱስ ኪትስ እና ኔቪስ)',
@@ -159,6 +164,8 @@
         'en_LC' => 'እንግሊዝኛ (ሴንት ሉቺያ)',
         'en_LR' => 'እንግሊዝኛ (ላይቤሪያ)',
         'en_LS' => 'እንግሊዝኛ (ሌሶቶ)',
+        'en_LT' => 'እንግሊዝኛ (ሊቱዌኒያ)',
+        'en_LV' => 'እንግሊዝኛ (ላትቪያ)',
         'en_MG' => 'እንግሊዝኛ (ማዳጋስካር)',
         'en_MH' => 'እንግሊዝኛ (ማርሻል ደሴቶች)',
         'en_MO' => 'እንግሊዝኛ (ማካኦ ልዩ የአስተዳደር ክልል ቻይና)',
@@ -205,6 +212,7 @@
         'en_TT' => 'እንግሊዝኛ (ትሪናዳድ እና ቶቤጎ)',
         'en_TV' => 'እንግሊዝኛ (ቱቫሉ)',
         'en_TZ' => 'እንግሊዝኛ (ታንዛኒያ)',
+        'en_UA' => 'እንግሊዝኛ (ዩክሬን)',
         'en_UG' => 'እንግሊዝኛ (ዩጋንዳ)',
         'en_UM' => 'እንግሊዝኛ (የዩ ኤስ ጠረፍ ላይ ያሉ ደሴቶች)',
         'en_US' => 'እንግሊዝኛ (ዩናይትድ ስቴትስ)',
@@ -391,6 +399,8 @@
         'ki' => 'ኪኩዩ',
         'ki_KE' => 'ኪኩዩ (ኬንያ)',
         'kk' => 'ካዛክኛ',
+        'kk_Arab' => 'ካዛክኛ (ዓረብኛ)',
+        'kk_Arab_CN' => 'ካዛክኛ (ዓረብኛ፣ ቻይና)',
         'kk_Cyrl' => 'ካዛክኛ (ሲይሪልክ)',
         'kk_Cyrl_KZ' => 'ካዛክኛ (ሲይሪልክ፣ ካዛኪስታን)',
         'kk_KZ' => 'ካዛክኛ (ካዛኪስታን)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'ካሽሚርኛ (ደቫንጋሪ፣ ህንድ)',
         'ks_IN' => 'ካሽሚርኛ (ህንድ)',
         'ku' => 'ኩርድሽ',
+        'ku_Latn' => 'ኩርድሽ (ላቲን)',
+        'ku_Latn_IQ' => 'ኩርድሽ (ላቲን፣ ኢራቅ)',
+        'ku_Latn_SY' => 'ኩርድሽ (ላቲን፣ ሶሪያ)',
+        'ku_Latn_TR' => 'ኩርድሽ (ላቲን፣ ቱርክ)',
+        'ku_SY' => 'ኩርድሽ (ሶሪያ)',
         'ku_TR' => 'ኩርድሽ (ቱርክ)',
         'kw' => 'ኮርኒሽ',
         'kw_GB' => 'ኮርኒሽ (ዩናይትድ ኪንግደም)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ar.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ar.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ar.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ar.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'الأذربيجانية (السيريلية، أذربيجان)',
         'az_Latn' => 'الأذربيجانية (اللاتينية)',
         'az_Latn_AZ' => 'الأذربيجانية (اللاتينية، أذربيجان)',
+        'ba' => 'الباشكيرية',
+        'ba_RU' => 'الباشكيرية (روسيا)',
         'be' => 'البيلاروسية',
         'be_BY' => 'البيلاروسية (بيلاروس)',
         'bg' => 'البلغارية',
@@ -125,6 +127,7 @@
         'en_DE' => 'الإنجليزية (ألمانيا)',
         'en_DK' => 'الإنجليزية (الدانمرك)',
         'en_DM' => 'الإنجليزية (دومينيكا)',
+        'en_EE' => 'الإنجليزية (إستونيا)',
         'en_ER' => 'الإنجليزية (إريتريا)',
         'en_ES' => 'الإنجليزية (إسبانيا)',
         'en_FI' => 'الإنجليزية (فنلندا)',
@@ -134,6 +137,7 @@
         'en_FR' => 'الإنجليزية (فرنسا)',
         'en_GB' => 'الإنجليزية (المملكة المتحدة)',
         'en_GD' => 'الإنجليزية (غرينادا)',
+        'en_GE' => 'الإنجليزية (جورجيا)',
         'en_GG' => 'الإنجليزية (غيرنزي)',
         'en_GH' => 'الإنجليزية (غانا)',
         'en_GI' => 'الإنجليزية (جبل طارق)',
@@ -152,6 +156,7 @@
         'en_IT' => 'الإنجليزية (إيطاليا)',
         'en_JE' => 'الإنجليزية (جيرسي)',
         'en_JM' => 'الإنجليزية (جامايكا)',
+        'en_JP' => 'الإنجليزية (اليابان)',
         'en_KE' => 'الإنجليزية (كينيا)',
         'en_KI' => 'الإنجليزية (كيريباتي)',
         'en_KN' => 'الإنجليزية (سانت كيتس ونيفيس)',
@@ -159,6 +164,8 @@
         'en_LC' => 'الإنجليزية (سانت لوسيا)',
         'en_LR' => 'الإنجليزية (ليبيريا)',
         'en_LS' => 'الإنجليزية (ليسوتو)',
+        'en_LT' => 'الإنجليزية (ليتوانيا)',
+        'en_LV' => 'الإنجليزية (لاتفيا)',
         'en_MG' => 'الإنجليزية (مدغشقر)',
         'en_MH' => 'الإنجليزية (جزر مارشال)',
         'en_MO' => 'الإنجليزية (منطقة ماكاو الإدارية الخاصة)',
@@ -205,6 +212,7 @@
         'en_TT' => 'الإنجليزية (ترينيداد وتوباغو)',
         'en_TV' => 'الإنجليزية (توفالو)',
         'en_TZ' => 'الإنجليزية (تنزانيا)',
+        'en_UA' => 'الإنجليزية (أوكرانيا)',
         'en_UG' => 'الإنجليزية (أوغندا)',
         'en_UM' => 'الإنجليزية (جزر الولايات المتحدة النائية)',
         'en_US' => 'الإنجليزية (الولايات المتحدة)',
@@ -391,6 +399,8 @@
         'ki' => 'الكيكيو',
         'ki_KE' => 'الكيكيو (كينيا)',
         'kk' => 'الكازاخستانية',
+        'kk_Arab' => 'الكازاخستانية (العربية)',
+        'kk_Arab_CN' => 'الكازاخستانية (العربية، الصين)',
         'kk_Cyrl' => 'الكازاخستانية (السيريلية)',
         'kk_Cyrl_KZ' => 'الكازاخستانية (السيريلية، كازاخستان)',
         'kk_KZ' => 'الكازاخستانية (كازاخستان)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'الكشميرية (الديفاناجاري، الهند)',
         'ks_IN' => 'الكشميرية (الهند)',
         'ku' => 'الكردية',
+        'ku_Latn' => 'الكردية (اللاتينية)',
+        'ku_Latn_IQ' => 'الكردية (اللاتينية، العراق)',
+        'ku_Latn_SY' => 'الكردية (اللاتينية، سوريا)',
+        'ku_Latn_TR' => 'الكردية (اللاتينية، تركيا)',
+        'ku_SY' => 'الكردية (سوريا)',
         'ku_TR' => 'الكردية (تركيا)',
         'kw' => 'الكورنية',
         'kw_GB' => 'الكورنية (المملكة المتحدة)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/as.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/as.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/as.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/as.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'আজেৰবাইজানী (চিৰিলিক, আজাৰবেইজান)',
         'az_Latn' => 'আজেৰবাইজানী (লেটিন)',
         'az_Latn_AZ' => 'আজেৰবাইজানী (লেটিন, আজাৰবেইজান)',
+        'ba' => 'বাছখিৰ',
+        'ba_RU' => 'বাছখিৰ (ৰাছিয়া)',
         'be' => 'বেলাৰুছীয়',
         'be_BY' => 'বেলাৰুছীয় (বেলাৰুছ)',
         'bg' => 'বুলগেৰীয়',
@@ -125,6 +127,7 @@
         'en_DE' => 'ইংৰাজী (জাৰ্মানী)',
         'en_DK' => 'ইংৰাজী (ডেনমাৰ্ক)',
         'en_DM' => 'ইংৰাজী (ড’মিনিকা)',
+        'en_EE' => 'ইংৰাজী (ইষ্টোনিয়া)',
         'en_ER' => 'ইংৰাজী (এৰিত্ৰিয়া)',
         'en_ES' => 'ইংৰাজী (স্পেইন)',
         'en_FI' => 'ইংৰাজী (ফিনলেণ্ড)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ইংৰাজী (ফ্ৰান্স)',
         'en_GB' => 'ইংৰাজী (সংযুক্ত ৰাজ্য)',
         'en_GD' => 'ইংৰাজী (গ্ৰেনাডা)',
+        'en_GE' => 'ইংৰাজী (জৰ্জিয়া)',
         'en_GG' => 'ইংৰাজী (গোৰেনচি)',
         'en_GH' => 'ইংৰাজী (ঘানা)',
         'en_GI' => 'ইংৰাজী (জিব্ৰাল্টৰ)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ইংৰাজী (ইটালি)',
         'en_JE' => 'ইংৰাজী (জাৰ্চি)',
         'en_JM' => 'ইংৰাজী (জামাইকা)',
+        'en_JP' => 'ইংৰাজী (জাপান)',
         'en_KE' => 'ইংৰাজী (কেনিয়া)',
         'en_KI' => 'ইংৰাজী (কিৰিবাটি)',
         'en_KN' => 'ইংৰাজী (ছেইণ্ট কিটছ আৰু নেভিছ)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ইংৰাজী (ছেইণ্ট লুচিয়া)',
         'en_LR' => 'ইংৰাজী (লিবেৰিয়া)',
         'en_LS' => 'ইংৰাজী (লেছ’থ’)',
+        'en_LT' => 'ইংৰাজী (লিথুৱানিয়া)',
+        'en_LV' => 'ইংৰাজী (লাটভিয়া)',
         'en_MG' => 'ইংৰাজী (মাদাগাস্কাৰ)',
         'en_MH' => 'ইংৰাজী (মাৰ্শ্বাল দ্বীপপুঞ্জ)',
         'en_MO' => 'ইংৰাজী (মাকাও এছ. এ. আৰ. চীন)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ইংৰাজী (ট্ৰিনিডাড আৰু টোবাগো)',
         'en_TV' => 'ইংৰাজী (টুভালু)',
         'en_TZ' => 'ইংৰাজী (তাঞ্জানিয়া)',
+        'en_UA' => 'ইংৰাজী (ইউক্ৰেইন)',
         'en_UG' => 'ইংৰাজী (উগাণ্ডা)',
         'en_UM' => 'ইংৰাজী (ইউ. এছ. আউটলায়িং দ্বীপপুঞ্জ)',
         'en_US' => 'ইংৰাজী (মাৰ্কিন যুক্তৰাষ্ট্ৰ)',
@@ -391,6 +399,8 @@
         'ki' => 'কিকুয়ু',
         'ki_KE' => 'কিকুয়ু (কেনিয়া)',
         'kk' => 'কাজাখ',
+        'kk_Arab' => 'কাজাখ (আৰবী)',
+        'kk_Arab_CN' => 'কাজাখ (আৰবী, চীন)',
         'kk_Cyrl' => 'কাজাখ (চিৰিলিক)',
         'kk_Cyrl_KZ' => 'কাজাখ (চিৰিলিক, কাজাখাস্তান)',
         'kk_KZ' => 'কাজাখ (কাজাখাস্তান)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'কাশ্মিৰী (দেৱনাগৰী, ভাৰত)',
         'ks_IN' => 'কাশ্মিৰী (ভাৰত)',
         'ku' => 'কুৰ্ডিচ',
+        'ku_Latn' => 'কুৰ্ডিচ (লেটিন)',
+        'ku_Latn_IQ' => 'কুৰ্ডিচ (লেটিন, ইৰাক)',
+        'ku_Latn_SY' => 'কুৰ্ডিচ (লেটিন, চিৰিয়া)',
+        'ku_Latn_TR' => 'কুৰ্ডিচ (লেটিন, তুৰ্কিয়ে)',
+        'ku_SY' => 'কুৰ্ডিচ (চিৰিয়া)',
         'ku_TR' => 'কুৰ্ডিচ (তুৰ্কিয়ে)',
         'kw' => 'কোৰ্নিচ',
         'kw_GB' => 'কোৰ্নিচ (সংযুক্ত ৰাজ্য)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/az_Cyrl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/az_Cyrl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/az_Cyrl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/az_Cyrl.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'азәрбајҹан (Кирил, Азәрбајҹан)',
         'az_Latn' => 'азәрбајҹан (latın)',
         'az_Latn_AZ' => 'азәрбајҹан (latın, Азәрбајҹан)',
+        'ba' => 'башгырд',
+        'ba_RU' => 'башгырд (Русија)',
         'be' => 'беларус',
         'be_BY' => 'беларус (Беларус)',
         'bg' => 'булгар',
@@ -125,6 +127,7 @@
         'en_DE' => 'инҝилис (Алманија)',
         'en_DK' => 'инҝилис (Данимарка)',
         'en_DM' => 'инҝилис (Доминика)',
+        'en_EE' => 'инҝилис (Естонија)',
         'en_ER' => 'инҝилис (Еритреја)',
         'en_ES' => 'инҝилис (Испанија)',
         'en_FI' => 'инҝилис (Финландија)',
@@ -134,6 +137,7 @@
         'en_FR' => 'инҝилис (Франса)',
         'en_GB' => 'инҝилис (Бирләшмиш Краллыг)',
         'en_GD' => 'инҝилис (Гренада)',
+        'en_GE' => 'инҝилис (Ҝүрҹүстан)',
         'en_GG' => 'инҝилис (Ҝернси)',
         'en_GH' => 'инҝилис (Гана)',
         'en_GI' => 'инҝилис (Ҹәбәллүтариг)',
@@ -152,6 +156,7 @@
         'en_IT' => 'инҝилис (Италија)',
         'en_JE' => 'инҝилис (Ҹерси)',
         'en_JM' => 'инҝилис (Јамајка)',
+        'en_JP' => 'инҝилис (Јапонија)',
         'en_KE' => 'инҝилис (Кенија)',
         'en_KI' => 'инҝилис (Кирибати)',
         'en_KN' => 'инҝилис (Сент-Китс вә Невис)',
@@ -159,6 +164,8 @@
         'en_LC' => 'инҝилис (Сент-Лусија)',
         'en_LR' => 'инҝилис (Либерија)',
         'en_LS' => 'инҝилис (Лесото)',
+        'en_LT' => 'инҝилис (Литва)',
+        'en_LV' => 'инҝилис (Латвија)',
         'en_MG' => 'инҝилис (Мадагаскар)',
         'en_MH' => 'инҝилис (Маршал адалары)',
         'en_MO' => 'инҝилис (Макао Хүсуси Инзибати Әрази Чин)',
@@ -205,6 +212,7 @@
         'en_TT' => 'инҝилис (Тринидад вә Тобаго)',
         'en_TV' => 'инҝилис (Тувалу)',
         'en_TZ' => 'инҝилис (Танзанија)',
+        'en_UA' => 'инҝилис (Украјна)',
         'en_UG' => 'инҝилис (Уганда)',
         'en_UM' => 'инҝилис (АБШ-а бағлы кичик адаҹыглар)',
         'en_US' => 'инҝилис (Америка Бирләшмиш Штатлары)',
@@ -389,6 +397,8 @@
         'ki' => 'кикују',
         'ki_KE' => 'кикују (Кенија)',
         'kk' => 'газах',
+        'kk_Arab' => 'газах (ərəb)',
+        'kk_Arab_CN' => 'газах (ərəb, Чин)',
         'kk_Cyrl' => 'газах (Кирил)',
         'kk_Cyrl_KZ' => 'газах (Кирил, Газахыстан)',
         'kk_KZ' => 'газах (Газахыстан)',
@@ -409,6 +419,11 @@
         'ks_Deva_IN' => 'кәшмир (devanaqari, Һиндистан)',
         'ks_IN' => 'кәшмир (Һиндистан)',
         'ku' => 'күрд',
+        'ku_Latn' => 'күрд (latın)',
+        'ku_Latn_IQ' => 'күрд (latın, Ираг)',
+        'ku_Latn_SY' => 'күрд (latın, Сурија)',
+        'ku_Latn_TR' => 'күрд (latın, Түркијә)',
+        'ku_SY' => 'күрд (Сурија)',
         'ku_TR' => 'күрд (Түркијә)',
         'kw' => 'корн',
         'kw_GB' => 'корн (Бирләшмиш Краллыг)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/az.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/az.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/az.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/az.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azərbaycan (kiril, Azərbaycan)',
         'az_Latn' => 'azərbaycan (latın)',
         'az_Latn_AZ' => 'azərbaycan (latın, Azərbaycan)',
+        'ba' => 'başqırd',
+        'ba_RU' => 'başqırd (Rusiya)',
         'be' => 'belarus',
         'be_BY' => 'belarus (Belarus)',
         'bg' => 'bolqar',
@@ -125,6 +127,7 @@
         'en_DE' => 'ingilis (Almaniya)',
         'en_DK' => 'ingilis (Danimarka)',
         'en_DM' => 'ingilis (Dominika)',
+        'en_EE' => 'ingilis (Estoniya)',
         'en_ER' => 'ingilis (Eritreya)',
         'en_ES' => 'ingilis (İspaniya)',
         'en_FI' => 'ingilis (Finlandiya)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ingilis (Fransa)',
         'en_GB' => 'ingilis (Birləşmiş Krallıq)',
         'en_GD' => 'ingilis (Qrenada)',
+        'en_GE' => 'ingilis (Gürcüstan)',
         'en_GG' => 'ingilis (Gernsi)',
         'en_GH' => 'ingilis (Qana)',
         'en_GI' => 'ingilis (Cəbəllütariq)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ingilis (İtaliya)',
         'en_JE' => 'ingilis (Cersi)',
         'en_JM' => 'ingilis (Yamayka)',
+        'en_JP' => 'ingilis (Yaponiya)',
         'en_KE' => 'ingilis (Keniya)',
         'en_KI' => 'ingilis (Kiribati)',
         'en_KN' => 'ingilis (Sent-Kits və Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ingilis (Sent-Lusiya)',
         'en_LR' => 'ingilis (Liberiya)',
         'en_LS' => 'ingilis (Lesoto)',
+        'en_LT' => 'ingilis (Litva)',
+        'en_LV' => 'ingilis (Latviya)',
         'en_MG' => 'ingilis (Madaqaskar)',
         'en_MH' => 'ingilis (Marşal adaları)',
         'en_MO' => 'ingilis (Makao XİR Çin)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ingilis (Trinidad və Tobaqo)',
         'en_TV' => 'ingilis (Tuvalu)',
         'en_TZ' => 'ingilis (Tanzaniya)',
+        'en_UA' => 'ingilis (Ukrayna)',
         'en_UG' => 'ingilis (Uqanda)',
         'en_UM' => 'ingilis (ABŞ-a bağlı kiçik adacıqlar)',
         'en_US' => 'ingilis (Amerika Birləşmiş Ştatları)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Keniya)',
         'kk' => 'qazax',
+        'kk_Arab' => 'qazax (ərəb)',
+        'kk_Arab_CN' => 'qazax (ərəb, Çin)',
         'kk_Cyrl' => 'qazax (kiril)',
         'kk_Cyrl_KZ' => 'qazax (kiril, Qazaxıstan)',
         'kk_KZ' => 'qazax (Qazaxıstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kəşmir (devanaqari, Hindistan)',
         'ks_IN' => 'kəşmir (Hindistan)',
         'ku' => 'kürd',
+        'ku_Latn' => 'kürd (latın)',
+        'ku_Latn_IQ' => 'kürd (latın, İraq)',
+        'ku_Latn_SY' => 'kürd (latın, Suriya)',
+        'ku_Latn_TR' => 'kürd (latın, Türkiyə)',
+        'ku_SY' => 'kürd (Suriya)',
         'ku_TR' => 'kürd (Türkiyə)',
         'kw' => 'korn',
         'kw_GB' => 'korn (Birləşmiş Krallıq)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ba.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ba.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ba.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ba.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,684 @@
+<?php
+
+return [
+    'Names' => [
+        'af' => 'африкаанс',
+        'af_NA' => 'африкаанс (Намибия)',
+        'af_ZA' => 'африкаанс (Көньяҡ Африка Республикаһы)',
+        'ak' => 'акан',
+        'ak_GH' => 'акан (Гана)',
+        'am' => 'амхар',
+        'am_ET' => 'амхар (Эфиопия)',
+        'ar' => 'ғәрәп',
+        'ar_001' => 'ғәрәп (донъя)',
+        'ar_AE' => 'ғәрәп (Берләшкән Ғәрәп Әмирлектәре)',
+        'ar_BH' => 'ғәрәп (Бәхрәйн)',
+        'ar_DJ' => 'ғәрәп (Джибути)',
+        'ar_DZ' => 'ғәрәп (Алжир)',
+        'ar_EG' => 'ғәрәп (Мысыр)',
+        'ar_EH' => 'ғәрәп (Көнбайыш Сахара)',
+        'ar_ER' => 'ғәрәп (Эритрея)',
+        'ar_IL' => 'ғәрәп (Израиль)',
+        'ar_IQ' => 'ғәрәп (Ираҡ)',
+        'ar_JO' => 'ғәрәп (Иордания)',
+        'ar_KM' => 'ғәрәп (Комор утрауҙары)',
+        'ar_KW' => 'ғәрәп (Кувейт)',
+        'ar_LB' => 'ғәрәп (Ливан)',
+        'ar_LY' => 'ғәрәп (Ливия)',
+        'ar_MA' => 'ғәрәп (Марокко)',
+        'ar_MR' => 'ғәрәп (Мавритания)',
+        'ar_OM' => 'ғәрәп (Оман)',
+        'ar_PS' => 'ғәрәп (Фәләстин территориялары)',
+        'ar_QA' => 'ғәрәп (Катар)',
+        'ar_SA' => 'ғәрәп (Сәғүд Ғәрәбстаны)',
+        'ar_SD' => 'ғәрәп (Судан)',
+        'ar_SO' => 'ғәрәп (Сомали)',
+        'ar_SS' => 'ғәрәп (Көньяҡ Судан)',
+        'ar_SY' => 'ғәрәп (Сүриә)',
+        'ar_TD' => 'ғәрәп (Чад)',
+        'ar_TN' => 'ғәрәп (Тунис)',
+        'ar_YE' => 'ғәрәп (Йәмән)',
+        'as' => 'ассам',
+        'as_IN' => 'ассам (Һиндостан)',
+        'az' => 'әзербайжан',
+        'az_AZ' => 'әзербайжан (Әзербайжан)',
+        'az_Cyrl' => 'әзербайжан (кириллица)',
+        'az_Cyrl_AZ' => 'әзербайжан (кириллица, Әзербайжан)',
+        'az_Latn' => 'әзербайжан (латиница)',
+        'az_Latn_AZ' => 'әзербайжан (латиница, Әзербайжан)',
+        'ba' => 'башҡорт',
+        'ba_RU' => 'башҡорт (Рәсәй)',
+        'be' => 'белорус',
+        'be_BY' => 'белорус (Беларусь)',
+        'bg' => 'болгар',
+        'bg_BG' => 'болгар (Болгария)',
+        'bm' => 'бамбара',
+        'bm_ML' => 'бамбара (Мали)',
+        'bn' => 'бенгал',
+        'bn_BD' => 'бенгал (Бангладеш)',
+        'bn_IN' => 'бенгал (Һиндостан)',
+        'bo' => 'тибет',
+        'bo_CN' => 'тибет (Ҡытай)',
+        'bo_IN' => 'тибет (Һиндостан)',
+        'br' => 'бретон',
+        'br_FR' => 'бретон (Франция)',
+        'bs' => 'босний',
+        'bs_BA' => 'босний (Босния һәм Герцеговина)',
+        'bs_Cyrl' => 'босний (кириллица)',
+        'bs_Cyrl_BA' => 'босний (кириллица, Босния һәм Герцеговина)',
+        'bs_Latn' => 'босний (латиница)',
+        'bs_Latn_BA' => 'босний (латиница, Босния һәм Герцеговина)',
+        'ca' => 'каталан',
+        'ca_AD' => 'каталан (Андорра)',
+        'ca_ES' => 'каталан (Испания)',
+        'ca_FR' => 'каталан (Франция)',
+        'ca_IT' => 'каталан (Италия)',
+        'ce' => 'чечен',
+        'ce_RU' => 'чечен (Рәсәй)',
+        'cs' => 'чех',
+        'cs_CZ' => 'чех (Чехия)',
+        'cv' => 'сыуаш',
+        'cv_RU' => 'сыуаш (Рәсәй)',
+        'cy' => 'валлий',
+        'cy_GB' => 'валлий (Бөйөк Британия)',
+        'da' => 'дат',
+        'da_DK' => 'дат (Дания)',
+        'da_GL' => 'дат (Гренландия)',
+        'de' => 'немец',
+        'de_AT' => 'немец (Австрия)',
+        'de_BE' => 'немец (Бельгия)',
+        'de_CH' => 'немец (Швейцария)',
+        'de_DE' => 'немец (Германия)',
+        'de_IT' => 'немец (Италия)',
+        'de_LI' => 'немец (Лихтенштейн)',
+        'de_LU' => 'немец (Люксембург)',
+        'dz' => 'дзонг-кэ',
+        'dz_BT' => 'дзонг-кэ (Бутан)',
+        'ee' => 'эве',
+        'ee_GH' => 'эве (Гана)',
+        'ee_TG' => 'эве (Того)',
+        'el' => 'грек',
+        'el_CY' => 'грек (Кипр)',
+        'el_GR' => 'грек (Греция)',
+        'en' => 'инглиз',
+        'en_001' => 'инглиз (донъя)',
+        'en_150' => 'инглиз (Европа)',
+        'en_AE' => 'инглиз (Берләшкән Ғәрәп Әмирлектәре)',
+        'en_AG' => 'инглиз (Антигуа һәм Барбуда)',
+        'en_AI' => 'инглиз (Ангилья)',
+        'en_AS' => 'инглиз (Америка Самоаһы)',
+        'en_AT' => 'инглиз (Австрия)',
+        'en_AU' => 'инглиз (Австралия)',
+        'en_BB' => 'инглиз (Барбадос)',
+        'en_BE' => 'инглиз (Бельгия)',
+        'en_BI' => 'инглиз (Бурунди)',
+        'en_BM' => 'инглиз (Бермуд утрауҙары)',
+        'en_BS' => 'инглиз (Багам утрауҙары)',
+        'en_BW' => 'инглиз (Ботсвана)',
+        'en_BZ' => 'инглиз (Белиз)',
+        'en_CA' => 'инглиз (Канада)',
+        'en_CC' => 'инглиз (Кокос утрауҙары)',
+        'en_CH' => 'инглиз (Швейцария)',
+        'en_CK' => 'инглиз (Кук утрауҙары)',
+        'en_CM' => 'инглиз (Камерун)',
+        'en_CX' => 'инглиз (Раштыуа Утрауы)',
+        'en_CY' => 'инглиз (Кипр)',
+        'en_CZ' => 'инглиз (Чехия)',
+        'en_DE' => 'инглиз (Германия)',
+        'en_DK' => 'инглиз (Дания)',
+        'en_DM' => 'инглиз (Доминика)',
+        'en_EE' => 'инглиз (Эстония)',
+        'en_ER' => 'инглиз (Эритрея)',
+        'en_ES' => 'инглиз (Испания)',
+        'en_FI' => 'инглиз (Финляндия)',
+        'en_FJ' => 'инглиз (Фиджи)',
+        'en_FK' => 'инглиз (Фолкленд утрауҙары)',
+        'en_FM' => 'инглиз (Микронезия)',
+        'en_FR' => 'инглиз (Франция)',
+        'en_GB' => 'инглиз (Бөйөк Британия)',
+        'en_GD' => 'инглиз (Гренада)',
+        'en_GE' => 'инглиз (Грузия)',
+        'en_GG' => 'инглиз (Гернси)',
+        'en_GH' => 'инглиз (Гана)',
+        'en_GI' => 'инглиз (Гибралтар)',
+        'en_GM' => 'инглиз (Гамбия)',
+        'en_GS' => 'инглиз (Көньяҡ Георгия һәм Көньяҡ Сандвич утрауҙары)',
+        'en_GU' => 'инглиз (Гуам)',
+        'en_GY' => 'инглиз (Гайана)',
+        'en_HK' => 'инглиз (Гонконг, Ҡытай МАР-ы)',
+        'en_HU' => 'инглиз (Венгрия)',
+        'en_ID' => 'инглиз (Индонезия)',
+        'en_IE' => 'инглиз (Ирландия)',
+        'en_IL' => 'инглиз (Израиль)',
+        'en_IM' => 'инглиз (Мэн утрауы)',
+        'en_IN' => 'инглиз (Һиндостан)',
+        'en_IO' => 'инглиз (Британияның Һинд океанындағы биләмәһе)',
+        'en_IT' => 'инглиз (Италия)',
+        'en_JE' => 'инглиз (Джерси)',
+        'en_JM' => 'инглиз (Ямайка)',
+        'en_JP' => 'инглиз (Япония)',
+        'en_KE' => 'инглиз (Кения)',
+        'en_KI' => 'инглиз (Кирибати)',
+        'en_KN' => 'инглиз (Сент-Китс һәм Невис)',
+        'en_KY' => 'инглиз (Кайман утрауҙары)',
+        'en_LC' => 'инглиз (Сент-Люсия)',
+        'en_LR' => 'инглиз (Либерия)',
+        'en_LS' => 'инглиз (Лесото)',
+        'en_LT' => 'инглиз (Литва)',
+        'en_LV' => 'инглиз (Латвия)',
+        'en_MG' => 'инглиз (Мадагаскар)',
+        'en_MH' => 'инглиз (Маршалл утрауҙары)',
+        'en_MO' => 'инглиз (Макао, Ҡытай МАР-ы)',
+        'en_MP' => 'инглиз (Төньяҡ Мариан утрауҙары)',
+        'en_MS' => 'инглиз (Монтсеррат)',
+        'en_MT' => 'инглиз (Мальта)',
+        'en_MU' => 'инглиз (Маврикий)',
+        'en_MV' => 'инглиз (Мальдив утрауҙары)',
+        'en_MW' => 'инглиз (Малави)',
+        'en_MY' => 'инглиз (Малайзия)',
+        'en_NA' => 'инглиз (Намибия)',
+        'en_NF' => 'инглиз (Норфолк утрауы)',
+        'en_NG' => 'инглиз (Нигерия)',
+        'en_NL' => 'инглиз (Нидерланд)',
+        'en_NO' => 'инглиз (Норвегия)',
+        'en_NR' => 'инглиз (Науру)',
+        'en_NU' => 'инглиз (Ниуэ)',
+        'en_NZ' => 'инглиз (Яңы Зеландия)',
+        'en_PG' => 'инглиз (Папуа – Яңы Гвинея)',
+        'en_PH' => 'инглиз (Филиппин)',
+        'en_PK' => 'инглиз (Пакистан)',
+        'en_PL' => 'инглиз (Польша)',
+        'en_PN' => 'инглиз (Питкэрн утрауҙары)',
+        'en_PR' => 'инглиз (Пуэрто-Рико)',
+        'en_PT' => 'инглиз (Португалия)',
+        'en_PW' => 'инглиз (Палау)',
+        'en_RO' => 'инглиз (Румыния)',
+        'en_RW' => 'инглиз (Руанда)',
+        'en_SB' => 'инглиз (Соломон утрауҙары)',
+        'en_SC' => 'инглиз (Сейшель утрауҙары)',
+        'en_SD' => 'инглиз (Судан)',
+        'en_SE' => 'инглиз (Швеция)',
+        'en_SG' => 'инглиз (Сингапур)',
+        'en_SH' => 'инглиз (Изге Елена утрауы)',
+        'en_SI' => 'инглиз (Словения)',
+        'en_SK' => 'инглиз (Словакия)',
+        'en_SL' => 'инглиз (Сьерра-Леоне)',
+        'en_SS' => 'инглиз (Көньяҡ Судан)',
+        'en_SX' => 'инглиз (Синт-Мартен)',
+        'en_SZ' => 'инглиз (Эсватини)',
+        'en_TC' => 'инглиз (Төркс һәм Кайкос утрауҙары)',
+        'en_TK' => 'инглиз (Токелау)',
+        'en_TO' => 'инглиз (Тонга)',
+        'en_TT' => 'инглиз (Тринидад һәм Тобаго)',
+        'en_TV' => 'инглиз (Тувалу)',
+        'en_TZ' => 'инглиз (Танзания)',
+        'en_UA' => 'инглиз (Украина)',
+        'en_UG' => 'инглиз (Уганда)',
+        'en_UM' => 'инглиз (АҠШ-ның ситтәге утрауҙары)',
+        'en_US' => 'инглиз (Америка Ҡушма Штаттары)',
+        'en_VC' => 'инглиз (Сент-Винсент һәм Гренадиндар)',
+        'en_VG' => 'инглиз (Британия Виргин утрауҙары)',
+        'en_VI' => 'инглиз (АҠШ Виргин утрауҙары)',
+        'en_VU' => 'инглиз (Вануату)',
+        'en_WS' => 'инглиз (Самоа)',
+        'en_ZA' => 'инглиз (Көньяҡ Африка Республикаһы)',
+        'en_ZM' => 'инглиз (Замбия)',
+        'en_ZW' => 'инглиз (Зимбабве)',
+        'eo' => 'эсперанто',
+        'eo_001' => 'эсперанто (донъя)',
+        'es' => 'испан',
+        'es_419' => 'испан (Латин Америка)',
+        'es_AR' => 'испан (Аргентина)',
+        'es_BO' => 'испан (Боливия)',
+        'es_BR' => 'испан (Бразилия)',
+        'es_BZ' => 'испан (Белиз)',
+        'es_CL' => 'испан (Чили)',
+        'es_CO' => 'испан (Колумбия)',
+        'es_CR' => 'испан (Коста-Рика)',
+        'es_CU' => 'испан (Куба)',
+        'es_DO' => 'испан (Доминикан Республикаһы)',
+        'es_EC' => 'испан (Эквадор)',
+        'es_ES' => 'испан (Испания)',
+        'es_GQ' => 'испан (Экваториаль Гвинея)',
+        'es_GT' => 'испан (Гватемала)',
+        'es_HN' => 'испан (Гондурас)',
+        'es_MX' => 'испан (Мексика)',
+        'es_NI' => 'испан (Никарагуа)',
+        'es_PA' => 'испан (Панама)',
+        'es_PE' => 'испан (Перу)',
+        'es_PH' => 'испан (Филиппин)',
+        'es_PR' => 'испан (Пуэрто-Рико)',
+        'es_PY' => 'испан (Парагвай)',
+        'es_SV' => 'испан (Сальвадор)',
+        'es_US' => 'испан (Америка Ҡушма Штаттары)',
+        'es_UY' => 'испан (Уругвай)',
+        'es_VE' => 'испан (Венесуэла)',
+        'et' => 'эстон',
+        'et_EE' => 'эстон (Эстония)',
+        'eu' => 'баск',
+        'eu_ES' => 'баск (Испания)',
+        'fa' => 'фарсы',
+        'fa_AF' => 'фарсы (Афғанстан)',
+        'fa_IR' => 'фарсы (Иран)',
+        'ff' => 'фула',
+        'ff_Adlm' => 'фула (адлам)',
+        'ff_Adlm_BF' => 'фула (адлам, Буркина-Фасо)',
+        'ff_Adlm_CM' => 'фула (адлам, Камерун)',
+        'ff_Adlm_GH' => 'фула (адлам, Гана)',
+        'ff_Adlm_GM' => 'фула (адлам, Гамбия)',
+        'ff_Adlm_GN' => 'фула (адлам, Гвинея)',
+        'ff_Adlm_GW' => 'фула (адлам, Гвинея-Бисау)',
+        'ff_Adlm_LR' => 'фула (адлам, Либерия)',
+        'ff_Adlm_MR' => 'фула (адлам, Мавритания)',
+        'ff_Adlm_NE' => 'фула (адлам, Нигер)',
+        'ff_Adlm_NG' => 'фула (адлам, Нигерия)',
+        'ff_Adlm_SL' => 'фула (адлам, Сьерра-Леоне)',
+        'ff_Adlm_SN' => 'фула (адлам, Сенегал)',
+        'ff_CM' => 'фула (Камерун)',
+        'ff_GN' => 'фула (Гвинея)',
+        'ff_Latn' => 'фула (латиница)',
+        'ff_Latn_BF' => 'фула (латиница, Буркина-Фасо)',
+        'ff_Latn_CM' => 'фула (латиница, Камерун)',
+        'ff_Latn_GH' => 'фула (латиница, Гана)',
+        'ff_Latn_GM' => 'фула (латиница, Гамбия)',
+        'ff_Latn_GN' => 'фула (латиница, Гвинея)',
+        'ff_Latn_GW' => 'фула (латиница, Гвинея-Бисау)',
+        'ff_Latn_LR' => 'фула (латиница, Либерия)',
+        'ff_Latn_MR' => 'фула (латиница, Мавритания)',
+        'ff_Latn_NE' => 'фула (латиница, Нигер)',
+        'ff_Latn_NG' => 'фула (латиница, Нигерия)',
+        'ff_Latn_SL' => 'фула (латиница, Сьерра-Леоне)',
+        'ff_Latn_SN' => 'фула (латиница, Сенегал)',
+        'ff_MR' => 'фула (Мавритания)',
+        'ff_SN' => 'фула (Сенегал)',
+        'fi' => 'фин',
+        'fi_FI' => 'фин (Финляндия)',
+        'fo' => 'фарер',
+        'fo_DK' => 'фарер (Дания)',
+        'fo_FO' => 'фарер (Фарер утрауҙары)',
+        'fr' => 'француз',
+        'fr_BE' => 'француз (Бельгия)',
+        'fr_BF' => 'француз (Буркина-Фасо)',
+        'fr_BI' => 'француз (Бурунди)',
+        'fr_BJ' => 'француз (Бенин)',
+        'fr_BL' => 'француз (Сен-Бартелеми)',
+        'fr_CA' => 'француз (Канада)',
+        'fr_CD' => 'француз (Конго - Киншаса)',
+        'fr_CF' => 'француз (Үҙәк Африка Республикаһы)',
+        'fr_CG' => 'француз (Конго - Браззавиль)',
+        'fr_CH' => 'француз (Швейцария)',
+        'fr_CI' => 'француз (Кот-д’Ивуар)',
+        'fr_CM' => 'француз (Камерун)',
+        'fr_DJ' => 'француз (Джибути)',
+        'fr_DZ' => 'француз (Алжир)',
+        'fr_FR' => 'француз (Франция)',
+        'fr_GA' => 'француз (Габон)',
+        'fr_GF' => 'француз (Француз Гвианаһы)',
+        'fr_GN' => 'француз (Гвинея)',
+        'fr_GP' => 'француз (Гваделупа)',
+        'fr_GQ' => 'француз (Экваториаль Гвинея)',
+        'fr_HT' => 'француз (Гаити)',
+        'fr_KM' => 'француз (Комор утрауҙары)',
+        'fr_LU' => 'француз (Люксембург)',
+        'fr_MA' => 'француз (Марокко)',
+        'fr_MC' => 'француз (Монако)',
+        'fr_MF' => 'француз (Сен-Мартен)',
+        'fr_MG' => 'француз (Мадагаскар)',
+        'fr_ML' => 'француз (Мали)',
+        'fr_MQ' => 'француз (Мартиника)',
+        'fr_MR' => 'француз (Мавритания)',
+        'fr_MU' => 'француз (Маврикий)',
+        'fr_NC' => 'француз (Яңы Каледония)',
+        'fr_NE' => 'француз (Нигер)',
+        'fr_PF' => 'француз (Француз Полинезияһы)',
+        'fr_PM' => 'француз (Сен-Пьер һәм Микелон)',
+        'fr_RE' => 'француз (Реюньон)',
+        'fr_RW' => 'француз (Руанда)',
+        'fr_SC' => 'француз (Сейшель утрауҙары)',
+        'fr_SN' => 'француз (Сенегал)',
+        'fr_SY' => 'француз (Сүриә)',
+        'fr_TD' => 'француз (Чад)',
+        'fr_TG' => 'француз (Того)',
+        'fr_TN' => 'француз (Тунис)',
+        'fr_VU' => 'француз (Вануату)',
+        'fr_WF' => 'француз (Уоллис һәм Футуна)',
+        'fr_YT' => 'француз (Майотта)',
+        'fy' => 'көнбайыш фриз',
+        'fy_NL' => 'көнбайыш фриз (Нидерланд)',
+        'ga' => 'ирланд',
+        'ga_GB' => 'ирланд (Бөйөк Британия)',
+        'ga_IE' => 'ирланд (Ирландия)',
+        'gd' => 'шотланд гэл',
+        'gd_GB' => 'шотланд гэл (Бөйөк Британия)',
+        'gl' => 'галисий',
+        'gl_ES' => 'галисий (Испания)',
+        'gu' => 'гуджарати',
+        'gu_IN' => 'гуджарати (Һиндостан)',
+        'gv' => 'мэн',
+        'gv_IM' => 'мэн (Мэн утрауы)',
+        'ha' => 'хауса',
+        'ha_GH' => 'хауса (Гана)',
+        'ha_NE' => 'хауса (Нигер)',
+        'ha_NG' => 'хауса (Нигерия)',
+        'he' => 'иврит',
+        'he_IL' => 'иврит (Израиль)',
+        'hi' => 'һинди',
+        'hi_IN' => 'һинди (Һиндостан)',
+        'hi_Latn' => 'һинди (латиница)',
+        'hi_Latn_IN' => 'һинди (латиница, Һиндостан)',
+        'hr' => 'хорват',
+        'hr_BA' => 'хорват (Босния һәм Герцеговина)',
+        'hr_HR' => 'хорват (Хорватия)',
+        'hu' => 'венгр',
+        'hu_HU' => 'венгр (Венгрия)',
+        'hy' => 'әрмән',
+        'hy_AM' => 'әрмән (Әрмәнстан)',
+        'ia' => 'интерлингва',
+        'ia_001' => 'интерлингва (донъя)',
+        'id' => 'индонез',
+        'id_ID' => 'индонез (Индонезия)',
+        'ie' => 'интерлингве',
+        'ie_EE' => 'интерлингве (Эстония)',
+        'ig' => 'игбо',
+        'ig_NG' => 'игбо (Нигерия)',
+        'ii' => 'сычуань и',
+        'ii_CN' => 'сычуань и (Ҡытай)',
+        'is' => 'исланд',
+        'is_IS' => 'исланд (Исландия)',
+        'it' => 'итальян',
+        'it_CH' => 'итальян (Швейцария)',
+        'it_IT' => 'итальян (Италия)',
+        'it_SM' => 'итальян (Сан-Марино)',
+        'it_VA' => 'итальян (Ватикан)',
+        'ja' => 'япон',
+        'ja_JP' => 'япон (Япония)',
+        'jv' => 'ява',
+        'jv_ID' => 'ява (Индонезия)',
+        'ka' => 'грузин',
+        'ka_GE' => 'грузин (Грузия)',
+        'ki' => 'кикуйю',
+        'ki_KE' => 'кикуйю (Кения)',
+        'kk' => 'ҡаҙаҡ',
+        'kk_Arab' => 'ҡаҙаҡ (ғәрәп)',
+        'kk_Arab_CN' => 'ҡаҙаҡ (ғәрәп, Ҡытай)',
+        'kk_Cyrl' => 'ҡаҙаҡ (кириллица)',
+        'kk_Cyrl_KZ' => 'ҡаҙаҡ (кириллица, Ҡаҙағстан)',
+        'kk_KZ' => 'ҡаҙаҡ (Ҡаҙағстан)',
+        'kl' => 'калааллисут',
+        'kl_GL' => 'калааллисут (Гренландия)',
+        'km' => 'кхмер',
+        'km_KH' => 'кхмер (Камбоджа)',
+        'kn' => 'каннада',
+        'kn_IN' => 'каннада (Һиндостан)',
+        'ko' => 'корей',
+        'ko_CN' => 'корей (Ҡытай)',
+        'ko_KP' => 'корей (Төньяҡ Корея)',
+        'ko_KR' => 'корей (Көньяҡ Корея)',
+        'ks' => 'кашмири',
+        'ks_Arab' => 'кашмири (ғәрәп)',
+        'ks_Arab_IN' => 'кашмири (ғәрәп, Һиндостан)',
+        'ks_Deva' => 'кашмири (деванагари)',
+        'ks_Deva_IN' => 'кашмири (деванагари, Һиндостан)',
+        'ks_IN' => 'кашмири (Һиндостан)',
+        'ku' => 'курд',
+        'ku_Latn' => 'курд (латиница)',
+        'ku_Latn_IQ' => 'курд (латиница, Ираҡ)',
+        'ku_Latn_SY' => 'курд (латиница, Сүриә)',
+        'ku_Latn_TR' => 'курд (латиница, Төркиә)',
+        'ku_SY' => 'курд (Сүриә)',
+        'ku_TR' => 'курд (Төркиә)',
+        'kw' => 'корн',
+        'kw_GB' => 'корн (Бөйөк Британия)',
+        'ky' => 'ҡырғыҙ',
+        'ky_KG' => 'ҡырғыҙ (Ҡырғыҙстан)',
+        'lb' => 'люксембург',
+        'lb_LU' => 'люксембург (Люксембург)',
+        'lg' => 'ганда',
+        'lg_UG' => 'ганда (Уганда)',
+        'ln' => 'лингала',
+        'ln_AO' => 'лингала (Ангола)',
+        'ln_CD' => 'лингала (Конго - Киншаса)',
+        'ln_CF' => 'лингала (Үҙәк Африка Республикаһы)',
+        'ln_CG' => 'лингала (Конго - Браззавиль)',
+        'lo' => 'лаос',
+        'lo_LA' => 'лаос (Лаос)',
+        'lt' => 'литва',
+        'lt_LT' => 'литва (Литва)',
+        'lu' => 'луба-катанга',
+        'lu_CD' => 'луба-катанга (Конго - Киншаса)',
+        'lv' => 'латыш',
+        'lv_LV' => 'латыш (Латвия)',
+        'mg' => 'малагаси',
+        'mg_MG' => 'малагаси (Мадагаскар)',
+        'mi' => 'маори',
+        'mi_NZ' => 'маори (Яңы Зеландия)',
+        'mk' => 'македон',
+        'mk_MK' => 'македон (Төньяҡ Македония)',
+        'ml' => 'малаялам',
+        'ml_IN' => 'малаялам (Һиндостан)',
+        'mn' => 'монгол',
+        'mn_MN' => 'монгол (Монголия)',
+        'mr' => 'маратхи',
+        'mr_IN' => 'маратхи (Һиндостан)',
+        'ms' => 'малай',
+        'ms_BN' => 'малай (Бруней)',
+        'ms_ID' => 'малай (Индонезия)',
+        'ms_MY' => 'малай (Малайзия)',
+        'ms_SG' => 'малай (Сингапур)',
+        'mt' => 'мальта',
+        'mt_MT' => 'мальта (Мальта)',
+        'my' => 'бирма',
+        'my_MM' => 'бирма (Мьянма [Бирма])',
+        'nb' => 'норвег букмол',
+        'nb_NO' => 'норвег букмол (Норвегия)',
+        'nb_SJ' => 'норвег букмол (Шпицберген һәм Ян-Майен)',
+        'nd' => 'төньяҡ ндебеле',
+        'nd_ZW' => 'төньяҡ ндебеле (Зимбабве)',
+        'ne' => 'непал',
+        'ne_IN' => 'непал (Һиндостан)',
+        'ne_NP' => 'непал (Непал)',
+        'nl' => 'нидерланд',
+        'nl_AW' => 'нидерланд (Аруба)',
+        'nl_BE' => 'нидерланд (Бельгия)',
+        'nl_BQ' => 'нидерланд (Карибтағы Нидерланд)',
+        'nl_CW' => 'нидерланд (Кюрасао)',
+        'nl_NL' => 'нидерланд (Нидерланд)',
+        'nl_SR' => 'нидерланд (Суринам)',
+        'nl_SX' => 'нидерланд (Синт-Мартен)',
+        'nn' => 'норвег нюнорск',
+        'nn_NO' => 'норвег нюнорск (Норвегия)',
+        'no' => 'норвег',
+        'no_NO' => 'норвег (Норвегия)',
+        'oc' => 'окситан',
+        'oc_ES' => 'окситан (Испания)',
+        'oc_FR' => 'окситан (Франция)',
+        'om' => 'оромо',
+        'om_ET' => 'оромо (Эфиопия)',
+        'om_KE' => 'оромо (Кения)',
+        'or' => 'одия',
+        'or_IN' => 'одия (Һиндостан)',
+        'os' => 'осетин',
+        'os_GE' => 'осетин (Грузия)',
+        'os_RU' => 'осетин (Рәсәй)',
+        'pa' => 'панджаби',
+        'pa_Arab' => 'панджаби (ғәрәп)',
+        'pa_Arab_PK' => 'панджаби (ғәрәп, Пакистан)',
+        'pa_Guru' => 'панджаби (гурмукхи)',
+        'pa_Guru_IN' => 'панджаби (гурмукхи, Һиндостан)',
+        'pa_IN' => 'панджаби (Һиндостан)',
+        'pa_PK' => 'панджаби (Пакистан)',
+        'pl' => 'поляк',
+        'pl_PL' => 'поляк (Польша)',
+        'ps' => 'пушту',
+        'ps_AF' => 'пушту (Афғанстан)',
+        'ps_PK' => 'пушту (Пакистан)',
+        'pt' => 'португал',
+        'pt_AO' => 'португал (Ангола)',
+        'pt_BR' => 'португал (Бразилия)',
+        'pt_CH' => 'португал (Швейцария)',
+        'pt_CV' => 'португал (Кабо-Верде)',
+        'pt_GQ' => 'португал (Экваториаль Гвинея)',
+        'pt_GW' => 'португал (Гвинея-Бисау)',
+        'pt_LU' => 'португал (Люксембург)',
+        'pt_MO' => 'португал (Макао, Ҡытай МАР-ы)',
+        'pt_MZ' => 'португал (Мозамбик)',
+        'pt_PT' => 'португал (Португалия)',
+        'pt_ST' => 'португал (Сан-Томе һәм Принсипи)',
+        'pt_TL' => 'португал (Тимор-Лесте)',
+        'qu' => 'кечуа',
+        'qu_BO' => 'кечуа (Боливия)',
+        'qu_EC' => 'кечуа (Эквадор)',
+        'qu_PE' => 'кечуа (Перу)',
+        'rm' => 'романш',
+        'rm_CH' => 'романш (Швейцария)',
+        'rn' => 'рунди',
+        'rn_BI' => 'рунди (Бурунди)',
+        'ro' => 'румын',
+        'ro_MD' => 'румын (Молдова)',
+        'ro_RO' => 'румын (Румыния)',
+        'ru' => 'урыҫ',
+        'ru_BY' => 'урыҫ (Беларусь)',
+        'ru_KG' => 'урыҫ (Ҡырғыҙстан)',
+        'ru_KZ' => 'урыҫ (Ҡаҙағстан)',
+        'ru_MD' => 'урыҫ (Молдова)',
+        'ru_RU' => 'урыҫ (Рәсәй)',
+        'ru_UA' => 'урыҫ (Украина)',
+        'rw' => 'киньяруанда',
+        'rw_RW' => 'киньяруанда (Руанда)',
+        'sa' => 'санскрит',
+        'sa_IN' => 'санскрит (Һиндостан)',
+        'sc' => 'сардин',
+        'sc_IT' => 'сардин (Италия)',
+        'sd' => 'синдхи',
+        'sd_Arab' => 'синдхи (ғәрәп)',
+        'sd_Arab_PK' => 'синдхи (ғәрәп, Пакистан)',
+        'sd_Deva' => 'синдхи (деванагари)',
+        'sd_Deva_IN' => 'синдхи (деванагари, Һиндостан)',
+        'sd_IN' => 'синдхи (Һиндостан)',
+        'sd_PK' => 'синдхи (Пакистан)',
+        'se' => 'төньяҡ саам',
+        'se_FI' => 'төньяҡ саам (Финляндия)',
+        'se_NO' => 'төньяҡ саам (Норвегия)',
+        'se_SE' => 'төньяҡ саам (Швеция)',
+        'sg' => 'санго',
+        'sg_CF' => 'санго (Үҙәк Африка Республикаһы)',
+        'si' => 'сингал',
+        'si_LK' => 'сингал (Шри-Ланка)',
+        'sk' => 'словак',
+        'sk_SK' => 'словак (Словакия)',
+        'sl' => 'словен',
+        'sl_SI' => 'словен (Словения)',
+        'sn' => 'шона',
+        'sn_ZW' => 'шона (Зимбабве)',
+        'so' => 'сомали',
+        'so_DJ' => 'сомали (Джибути)',
+        'so_ET' => 'сомали (Эфиопия)',
+        'so_KE' => 'сомали (Кения)',
+        'so_SO' => 'сомали (Сомали)',
+        'sq' => 'албан',
+        'sq_AL' => 'албан (Албания)',
+        'sq_MK' => 'албан (Төньяҡ Македония)',
+        'sr' => 'серб',
+        'sr_BA' => 'серб (Босния һәм Герцеговина)',
+        'sr_Cyrl' => 'серб (кириллица)',
+        'sr_Cyrl_BA' => 'серб (кириллица, Босния һәм Герцеговина)',
+        'sr_Cyrl_ME' => 'серб (кириллица, Черногория)',
+        'sr_Cyrl_RS' => 'серб (кириллица, Сербия)',
+        'sr_Latn' => 'серб (латиница)',
+        'sr_Latn_BA' => 'серб (латиница, Босния һәм Герцеговина)',
+        'sr_Latn_ME' => 'серб (латиница, Черногория)',
+        'sr_Latn_RS' => 'серб (латиница, Сербия)',
+        'sr_ME' => 'серб (Черногория)',
+        'sr_RS' => 'серб (Сербия)',
+        'st' => 'көньяҡ сото',
+        'st_LS' => 'көньяҡ сото (Лесото)',
+        'st_ZA' => 'көньяҡ сото (Көньяҡ Африка Республикаһы)',
+        'su' => 'сундан',
+        'su_ID' => 'сундан (Индонезия)',
+        'su_Latn' => 'сундан (латиница)',
+        'su_Latn_ID' => 'сундан (латиница, Индонезия)',
+        'sv' => 'швед',
+        'sv_AX' => 'швед (Аланд утрауҙары)',
+        'sv_FI' => 'швед (Финляндия)',
+        'sv_SE' => 'швед (Швеция)',
+        'sw' => 'суахили',
+        'sw_CD' => 'суахили (Конго - Киншаса)',
+        'sw_KE' => 'суахили (Кения)',
+        'sw_TZ' => 'суахили (Танзания)',
+        'sw_UG' => 'суахили (Уганда)',
+        'ta' => 'тамил',
+        'ta_IN' => 'тамил (Һиндостан)',
+        'ta_LK' => 'тамил (Шри-Ланка)',
+        'ta_MY' => 'тамил (Малайзия)',
+        'ta_SG' => 'тамил (Сингапур)',
+        'te' => 'телугу',
+        'te_IN' => 'телугу (Һиндостан)',
+        'tg' => 'тажик',
+        'tg_TJ' => 'тажик (Тажикстан)',
+        'th' => 'тай',
+        'th_TH' => 'тай (Тайланд)',
+        'ti' => 'тигринья',
+        'ti_ER' => 'тигринья (Эритрея)',
+        'ti_ET' => 'тигринья (Эфиопия)',
+        'tk' => 'төркмән',
+        'tk_TM' => 'төркмән (Төркмәнстан)',
+        'tn' => 'тсвана',
+        'tn_BW' => 'тсвана (Ботсвана)',
+        'tn_ZA' => 'тсвана (Көньяҡ Африка Республикаһы)',
+        'to' => 'тонга',
+        'to_TO' => 'тонга (Тонга)',
+        'tr' => 'төрөк',
+        'tr_CY' => 'төрөк (Кипр)',
+        'tr_TR' => 'төрөк (Төркиә)',
+        'tt' => 'татар',
+        'tt_RU' => 'татар (Рәсәй)',
+        'ug' => 'уйғыр',
+        'ug_CN' => 'уйғыр (Ҡытай)',
+        'uk' => 'украин',
+        'uk_UA' => 'украин (Украина)',
+        'ur' => 'урду',
+        'ur_IN' => 'урду (Һиндостан)',
+        'ur_PK' => 'урду (Пакистан)',
+        'uz' => 'үзбәк',
+        'uz_AF' => 'үзбәк (Афғанстан)',
+        'uz_Arab' => 'үзбәк (ғәрәп)',
+        'uz_Arab_AF' => 'үзбәк (ғәрәп, Афғанстан)',
+        'uz_Cyrl' => 'үзбәк (кириллица)',
+        'uz_Cyrl_UZ' => 'үзбәк (кириллица, Үзбәкстан)',
+        'uz_Latn' => 'үзбәк (латиница)',
+        'uz_Latn_UZ' => 'үзбәк (латиница, Үзбәкстан)',
+        'uz_UZ' => 'үзбәк (Үзбәкстан)',
+        'vi' => 'вьетнам',
+        'vi_VN' => 'вьетнам (Вьетнам)',
+        'wo' => 'волоф',
+        'wo_SN' => 'волоф (Сенегал)',
+        'xh' => 'коса',
+        'xh_ZA' => 'коса (Көньяҡ Африка Республикаһы)',
+        'yi' => 'идиш',
+        'yi_UA' => 'идиш (Украина)',
+        'yo' => 'йоруба',
+        'yo_BJ' => 'йоруба (Бенин)',
+        'yo_NG' => 'йоруба (Нигерия)',
+        'za' => 'чжуан',
+        'za_CN' => 'чжуан (Ҡытай)',
+        'zh' => 'ҡытай',
+        'zh_CN' => 'ҡытай (Ҡытай)',
+        'zh_HK' => 'ҡытай (Гонконг, Ҡытай МАР-ы)',
+        'zh_Hans' => 'ҡытай (ябайлаштырылған)',
+        'zh_Hans_CN' => 'ҡытай (ябайлаштырылған, Ҡытай)',
+        'zh_Hans_HK' => 'ҡытай (ябайлаштырылған, Гонконг, Ҡытай МАР-ы)',
+        'zh_Hans_MO' => 'ҡытай (ябайлаштырылған, Макао, Ҡытай МАР-ы)',
+        'zh_Hans_MY' => 'ҡытай (ябайлаштырылған, Малайзия)',
+        'zh_Hans_SG' => 'ҡытай (ябайлаштырылған, Сингапур)',
+        'zh_Hant' => 'ҡытай (традицион)',
+        'zh_Hant_HK' => 'ҡытай (традицион, Гонконг, Ҡытай МАР-ы)',
+        'zh_Hant_MO' => 'ҡытай (традицион, Макао, Ҡытай МАР-ы)',
+        'zh_Hant_MY' => 'ҡытай (традицион, Малайзия)',
+        'zh_Hant_TW' => 'ҡытай (традицион, Тайвань)',
+        'zh_MO' => 'ҡытай (Макао, Ҡытай МАР-ы)',
+        'zh_SG' => 'ҡытай (Сингапур)',
+        'zh_TW' => 'ҡытай (Тайвань)',
+        'zu' => 'зулу',
+        'zu_ZA' => 'зулу (Көньяҡ Африка Республикаһы)',
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/be.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/be.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/be.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/be.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'азербайджанская (кірыліца, Азербайджан)',
         'az_Latn' => 'азербайджанская (лацініца)',
         'az_Latn_AZ' => 'азербайджанская (лацініца, Азербайджан)',
+        'ba' => 'башкірская',
+        'ba_RU' => 'башкірская (Расія)',
         'be' => 'беларуская',
         'be_BY' => 'беларуская (Беларусь)',
         'bg' => 'балгарская',
@@ -125,6 +127,7 @@
         'en_DE' => 'англійская (Германія)',
         'en_DK' => 'англійская (Данія)',
         'en_DM' => 'англійская (Дамініка)',
+        'en_EE' => 'англійская (Эстонія)',
         'en_ER' => 'англійская (Эрытрэя)',
         'en_ES' => 'англійская (Іспанія)',
         'en_FI' => 'англійская (Фінляндыя)',
@@ -134,6 +137,7 @@
         'en_FR' => 'англійская (Францыя)',
         'en_GB' => 'англійская (Вялікабрытанія)',
         'en_GD' => 'англійская (Грэнада)',
+        'en_GE' => 'англійская (Грузія)',
         'en_GG' => 'англійская (Гернсі)',
         'en_GH' => 'англійская (Гана)',
         'en_GI' => 'англійская (Гібралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'англійская (Італія)',
         'en_JE' => 'англійская (Джэрсі)',
         'en_JM' => 'англійская (Ямайка)',
+        'en_JP' => 'англійская (Японія)',
         'en_KE' => 'англійская (Кенія)',
         'en_KI' => 'англійская (Кірыбаці)',
         'en_KN' => 'англійская (Сент-Кітс і Невіс)',
@@ -159,6 +164,8 @@
         'en_LC' => 'англійская (Сент-Люсія)',
         'en_LR' => 'англійская (Ліберыя)',
         'en_LS' => 'англійская (Лесота)',
+        'en_LT' => 'англійская (Літва)',
+        'en_LV' => 'англійская (Латвія)',
         'en_MG' => 'англійская (Мадагаскар)',
         'en_MH' => 'англійская (Маршалавы астравы)',
         'en_MO' => 'англійская (Макаа, САР [Кітай])',
@@ -205,6 +212,7 @@
         'en_TT' => 'англійская (Трынідад і Табага)',
         'en_TV' => 'англійская (Тувалу)',
         'en_TZ' => 'англійская (Танзанія)',
+        'en_UA' => 'англійская (Украіна)',
         'en_UG' => 'англійская (Уганда)',
         'en_UM' => 'англійская (Малыя Аддаленыя астравы ЗША)',
         'en_US' => 'англійская (Злучаныя Штаты Амерыкі)',
@@ -391,6 +399,8 @@
         'ki' => 'кікуйю',
         'ki_KE' => 'кікуйю (Кенія)',
         'kk' => 'казахская',
+        'kk_Arab' => 'казахская (арабскае)',
+        'kk_Arab_CN' => 'казахская (арабскае, Кітай)',
         'kk_Cyrl' => 'казахская (кірыліца)',
         'kk_Cyrl_KZ' => 'казахская (кірыліца, Казахстан)',
         'kk_KZ' => 'казахская (Казахстан)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'кашмірская (дэванагары, Індыя)',
         'ks_IN' => 'кашмірская (Індыя)',
         'ku' => 'курдская',
+        'ku_Latn' => 'курдская (лацініца)',
+        'ku_Latn_IQ' => 'курдская (лацініца, Ірак)',
+        'ku_Latn_SY' => 'курдская (лацініца, Сірыя)',
+        'ku_Latn_TR' => 'курдская (лацініца, Турцыя)',
+        'ku_SY' => 'курдская (Сірыя)',
         'ku_TR' => 'курдская (Турцыя)',
         'kw' => 'корнская',
         'kw_GB' => 'корнская (Вялікабрытанія)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bg.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'азербайджански (кирилица, Азербайджан)',
         'az_Latn' => 'азербайджански (латиница)',
         'az_Latn_AZ' => 'азербайджански (латиница, Азербайджан)',
+        'ba' => 'башкирски',
+        'ba_RU' => 'башкирски (Русия)',
         'be' => 'беларуски',
         'be_BY' => 'беларуски (Беларус)',
         'bg' => 'български',
@@ -125,6 +127,7 @@
         'en_DE' => 'английски (Германия)',
         'en_DK' => 'английски (Дания)',
         'en_DM' => 'английски (Доминика)',
+        'en_EE' => 'английски (Естония)',
         'en_ER' => 'английски (Еритрея)',
         'en_ES' => 'английски (Испания)',
         'en_FI' => 'английски (Финландия)',
@@ -134,6 +137,7 @@
         'en_FR' => 'английски (Франция)',
         'en_GB' => 'английски (Обединеното кралство)',
         'en_GD' => 'английски (Гренада)',
+        'en_GE' => 'английски (Грузия)',
         'en_GG' => 'английски (Гърнзи)',
         'en_GH' => 'английски (Гана)',
         'en_GI' => 'английски (Гибралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'английски (Италия)',
         'en_JE' => 'английски (Джърси)',
         'en_JM' => 'английски (Ямайка)',
+        'en_JP' => 'английски (Япония)',
         'en_KE' => 'английски (Кения)',
         'en_KI' => 'английски (Кирибати)',
         'en_KN' => 'английски (Сейнт Китс и Невис)',
@@ -159,6 +164,8 @@
         'en_LC' => 'английски (Сейнт Лусия)',
         'en_LR' => 'английски (Либерия)',
         'en_LS' => 'английски (Лесото)',
+        'en_LT' => 'английски (Литва)',
+        'en_LV' => 'английски (Латвия)',
         'en_MG' => 'английски (Мадагаскар)',
         'en_MH' => 'английски (Маршалови острови)',
         'en_MO' => 'английски (Макао, САР на Китай)',
@@ -205,6 +212,7 @@
         'en_TT' => 'английски (Тринидад и Тобаго)',
         'en_TV' => 'английски (Тувалу)',
         'en_TZ' => 'английски (Танзания)',
+        'en_UA' => 'английски (Украйна)',
         'en_UG' => 'английски (Уганда)',
         'en_UM' => 'английски (Отдалечени острови на САЩ)',
         'en_US' => 'английски (Съединени щати)',
@@ -391,6 +399,8 @@
         'ki' => 'кикую',
         'ki_KE' => 'кикую (Кения)',
         'kk' => 'казахски',
+        'kk_Arab' => 'казахски (арабска)',
+        'kk_Arab_CN' => 'казахски (арабска, Китай)',
         'kk_Cyrl' => 'казахски (кирилица)',
         'kk_Cyrl_KZ' => 'казахски (кирилица, Казахстан)',
         'kk_KZ' => 'казахски (Казахстан)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'кашмирски (деванагари, Индия)',
         'ks_IN' => 'кашмирски (Индия)',
         'ku' => 'кюрдски',
+        'ku_Latn' => 'кюрдски (латиница)',
+        'ku_Latn_IQ' => 'кюрдски (латиница, Ирак)',
+        'ku_Latn_SY' => 'кюрдски (латиница, Сирия)',
+        'ku_Latn_TR' => 'кюрдски (латиница, Турция)',
+        'ku_SY' => 'кюрдски (Сирия)',
         'ku_TR' => 'кюрдски (Турция)',
         'kw' => 'корнуолски',
         'kw_GB' => 'корнуолски (Обединеното кралство)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bm.php	2026-05-20 10:56:49.000000000 +0200
@@ -77,6 +77,7 @@
         'en_DE' => 'angilɛkan (Alimaɲi)',
         'en_DK' => 'angilɛkan (Danemarki)',
         'en_DM' => 'angilɛkan (Dɔminiki)',
+        'en_EE' => 'angilɛkan (Esetoni)',
         'en_ER' => 'angilɛkan (Eritere)',
         'en_ES' => 'angilɛkan (Esipaɲi)',
         'en_FI' => 'angilɛkan (Finilandi)',
@@ -86,6 +87,7 @@
         'en_FR' => 'angilɛkan (Faransi)',
         'en_GB' => 'angilɛkan (Angilɛtɛri)',
         'en_GD' => 'angilɛkan (Granadi)',
+        'en_GE' => 'angilɛkan (Zeyɔrzi)',
         'en_GH' => 'angilɛkan (Gana)',
         'en_GI' => 'angilɛkan (Zibralitari)',
         'en_GM' => 'angilɛkan (Ganbi)',
@@ -98,6 +100,7 @@
         'en_IN' => 'angilɛkan (Ɛndujamana)',
         'en_IT' => 'angilɛkan (Itali)',
         'en_JM' => 'angilɛkan (Zamayiki)',
+        'en_JP' => 'angilɛkan (Zapɔn)',
         'en_KE' => 'angilɛkan (Keniya)',
         'en_KI' => 'angilɛkan (Kiribati)',
         'en_KN' => 'angilɛkan (Kristɔfo-Senu-ni-Ɲevɛs)',
@@ -105,6 +108,8 @@
         'en_LC' => 'angilɛkan (Lusi-Senu)',
         'en_LR' => 'angilɛkan (Liberiya)',
         'en_LS' => 'angilɛkan (Lesoto)',
+        'en_LT' => 'angilɛkan (Lituyani)',
+        'en_LV' => 'angilɛkan (Letoni)',
         'en_MG' => 'angilɛkan (Madagasikari)',
         'en_MH' => 'angilɛkan (Marisali Gun)',
         'en_MP' => 'angilɛkan (Kɛɲɛka Mariyani Gun)',
@@ -148,6 +153,7 @@
         'en_TT' => 'angilɛkan (Trinite-ni-Tobago)',
         'en_TV' => 'angilɛkan (Tuvalu)',
         'en_TZ' => 'angilɛkan (Tanzani)',
+        'en_UA' => 'angilɛkan (Ukɛrɛni)',
         'en_UG' => 'angilɛkan (Uganda)',
         'en_US' => 'angilɛkan (Ameriki)',
         'en_VC' => 'angilɛkan (Vinisɛn-Senu-ni-Grenadini)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bn.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
         'ar_KW' => 'আরবি (কুয়েত)',
         'ar_LB' => 'আরবি (লেবানন)',
         'ar_LY' => 'আরবি (লিবিয়া)',
-        'ar_MA' => 'আরবি (মোরক্কো)',
+        'ar_MA' => 'আরবি (মরক্কো)',
         'ar_MR' => 'আরবি (মরিতানিয়া)',
         'ar_OM' => 'আরবি (ওমান)',
         'ar_PS' => 'আরবি (প্যালেস্টাইন ভূখণ্ড)',
@@ -46,8 +46,10 @@
         'az_Cyrl_AZ' => 'আজারবাইজানী (সিরিলিক, আজারবাইজান)',
         'az_Latn' => 'আজারবাইজানী (ল্যাটিন)',
         'az_Latn_AZ' => 'আজারবাইজানী (ল্যাটিন, আজারবাইজান)',
-        'be' => 'বেলারুশিয়',
-        'be_BY' => 'বেলারুশিয় (বেলারুশ)',
+        'ba' => 'বাশকির',
+        'ba_RU' => 'বাশকির (রাশিয়া)',
+        'be' => 'বেলারুশীয়',
+        'be_BY' => 'বেলারুশীয় (বেলারুশ)',
         'bg' => 'বুলগেরিয়',
         'bg_BG' => 'বুলগেরিয় (বুলগেরিয়া)',
         'bm' => 'বামবারা',
@@ -125,6 +127,7 @@
         'en_DE' => 'ইংরেজি (জার্মানি)',
         'en_DK' => 'ইংরেজি (ডেনমার্ক)',
         'en_DM' => 'ইংরেজি (ডোমিনিকা)',
+        'en_EE' => 'ইংরেজি (এস্তোনিয়া)',
         'en_ER' => 'ইংরেজি (ইরিত্রিয়া)',
         'en_ES' => 'ইংরেজি (স্পেন)',
         'en_FI' => 'ইংরেজি (ফিনল্যান্ড)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ইংরেজি (ফ্রান্স)',
         'en_GB' => 'ইংরেজি (যুক্তরাজ্য)',
         'en_GD' => 'ইংরেজি (গ্রেনাডা)',
+        'en_GE' => 'ইংরেজি (জর্জিয়া)',
         'en_GG' => 'ইংরেজি (গার্নসি)',
         'en_GH' => 'ইংরেজি (ঘানা)',
         'en_GI' => 'ইংরেজি (জিব্রাল্টার)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ইংরেজি (ইতালি)',
         'en_JE' => 'ইংরেজি (জার্সি)',
         'en_JM' => 'ইংরেজি (জামাইকা)',
+        'en_JP' => 'ইংরেজি (জাপান)',
         'en_KE' => 'ইংরেজি (কেনিয়া)',
         'en_KI' => 'ইংরেজি (কিরিবাতি)',
         'en_KN' => 'ইংরেজি (সেন্ট কিটস ও নেভিস)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ইংরেজি (সেন্ট লুসিয়া)',
         'en_LR' => 'ইংরেজি (লাইবেরিয়া)',
         'en_LS' => 'ইংরেজি (লেসোথো)',
+        'en_LT' => 'ইংরেজি (লিথুয়ানিয়া)',
+        'en_LV' => 'ইংরেজি (লাটভিয়া)',
         'en_MG' => 'ইংরেজি (মাদাগাস্কার)',
         'en_MH' => 'ইংরেজি (মার্শাল দ্বীপপুঞ্জ)',
         'en_MO' => 'ইংরেজি (ম্যাকাও এসএআর চীন)',
@@ -202,9 +209,10 @@
         'en_TC' => 'ইংরেজি (তুর্কস ও কাইকোস দ্বীপপুঞ্জ)',
         'en_TK' => 'ইংরেজি (টোকেলাউ)',
         'en_TO' => 'ইংরেজি (টোঙ্গা)',
-        'en_TT' => 'ইংরেজি (ত্রিনিনাদ ও টোব্যাগো)',
+        'en_TT' => 'ইংরেজি (ত্রিনিদাদ ও টোবাগো)',
         'en_TV' => 'ইংরেজি (টুভালু)',
         'en_TZ' => 'ইংরেজি (তাঞ্জানিয়া)',
+        'en_UA' => 'ইংরেজি (ইউক্রেন)',
         'en_UG' => 'ইংরেজি (উগান্ডা)',
         'en_UM' => 'ইংরেজি (যুক্তরাষ্ট্রের পার্শ্ববর্তী দ্বীপপুঞ্জ)',
         'en_US' => 'ইংরেজি (মার্কিন যুক্তরাষ্ট্র)',
@@ -252,37 +260,37 @@
         'fa' => 'ফার্সি',
         'fa_AF' => 'ফার্সি (আফগানিস্তান)',
         'fa_IR' => 'ফার্সি (ইরান)',
-        'ff' => 'ফুলাহ্',
-        'ff_Adlm' => 'ফুলাহ্ (আদলাম)',
-        'ff_Adlm_BF' => 'ফুলাহ্ (আদলাম, বুরকিনা ফাসো)',
-        'ff_Adlm_CM' => 'ফুলাহ্ (আদলাম, ক্যামেরুন)',
-        'ff_Adlm_GH' => 'ফুলাহ্ (আদলাম, ঘানা)',
-        'ff_Adlm_GM' => 'ফুলাহ্ (আদলাম, গাম্বিয়া)',
-        'ff_Adlm_GN' => 'ফুলাহ্ (আদলাম, গিনি)',
-        'ff_Adlm_GW' => 'ফুলাহ্ (আদলাম, গিনি-বিসাউ)',
-        'ff_Adlm_LR' => 'ফুলাহ্ (আদলাম, লাইবেরিয়া)',
-        'ff_Adlm_MR' => 'ফুলাহ্ (আদলাম, মরিতানিয়া)',
-        'ff_Adlm_NE' => 'ফুলাহ্ (আদলাম, নাইজার)',
-        'ff_Adlm_NG' => 'ফুলাহ্ (আদলাম, নাইজেরিয়া)',
-        'ff_Adlm_SL' => 'ফুলাহ্ (আদলাম, সিয়েরা লিওন)',
-        'ff_Adlm_SN' => 'ফুলাহ্ (আদলাম, সেনেগাল)',
-        'ff_CM' => 'ফুলাহ্ (ক্যামেরুন)',
-        'ff_GN' => 'ফুলাহ্ (গিনি)',
-        'ff_Latn' => 'ফুলাহ্ (ল্যাটিন)',
-        'ff_Latn_BF' => 'ফুলাহ্ (ল্যাটিন, বুরকিনা ফাসো)',
-        'ff_Latn_CM' => 'ফুলাহ্ (ল্যাটিন, ক্যামেরুন)',
-        'ff_Latn_GH' => 'ফুলাহ্ (ল্যাটিন, ঘানা)',
-        'ff_Latn_GM' => 'ফুলাহ্ (ল্যাটিন, গাম্বিয়া)',
-        'ff_Latn_GN' => 'ফুলাহ্ (ল্যাটিন, গিনি)',
-        'ff_Latn_GW' => 'ফুলাহ্ (ল্যাটিন, গিনি-বিসাউ)',
-        'ff_Latn_LR' => 'ফুলাহ্ (ল্যাটিন, লাইবেরিয়া)',
-        'ff_Latn_MR' => 'ফুলাহ্ (ল্যাটিন, মরিতানিয়া)',
-        'ff_Latn_NE' => 'ফুলাহ্ (ল্যাটিন, নাইজার)',
-        'ff_Latn_NG' => 'ফুলাহ্ (ল্যাটিন, নাইজেরিয়া)',
-        'ff_Latn_SL' => 'ফুলাহ্ (ল্যাটিন, সিয়েরা লিওন)',
-        'ff_Latn_SN' => 'ফুলাহ্ (ল্যাটিন, সেনেগাল)',
-        'ff_MR' => 'ফুলাহ্ (মরিতানিয়া)',
-        'ff_SN' => 'ফুলাহ্ (সেনেগাল)',
+        'ff' => 'ফুলা',
+        'ff_Adlm' => 'ফুলা (আদলাম)',
+        'ff_Adlm_BF' => 'ফুলা (আদলাম, বুরকিনা ফাসো)',
+        'ff_Adlm_CM' => 'ফুলা (আদলাম, ক্যামেরুন)',
+        'ff_Adlm_GH' => 'ফুলা (আদলাম, ঘানা)',
+        'ff_Adlm_GM' => 'ফুলা (আদলাম, গাম্বিয়া)',
+        'ff_Adlm_GN' => 'ফুলা (আদলাম, গিনি)',
+        'ff_Adlm_GW' => 'ফুলা (আদলাম, গিনি-বিসাউ)',
+        'ff_Adlm_LR' => 'ফুলা (আদলাম, লাইবেরিয়া)',
+        'ff_Adlm_MR' => 'ফুলা (আদলাম, মরিতানিয়া)',
+        'ff_Adlm_NE' => 'ফুলা (আদলাম, নাইজার)',
+        'ff_Adlm_NG' => 'ফুলা (আদলাম, নাইজেরিয়া)',
+        'ff_Adlm_SL' => 'ফুলা (আদলাম, সিয়েরা লিওন)',
+        'ff_Adlm_SN' => 'ফুলা (আদলাম, সেনেগাল)',
+        'ff_CM' => 'ফুলা (ক্যামেরুন)',
+        'ff_GN' => 'ফুলা (গিনি)',
+        'ff_Latn' => 'ফুলা (ল্যাটিন)',
+        'ff_Latn_BF' => 'ফুলা (ল্যাটিন, বুরকিনা ফাসো)',
+        'ff_Latn_CM' => 'ফুলা (ল্যাটিন, ক্যামেরুন)',
+        'ff_Latn_GH' => 'ফুলা (ল্যাটিন, ঘানা)',
+        'ff_Latn_GM' => 'ফুলা (ল্যাটিন, গাম্বিয়া)',
+        'ff_Latn_GN' => 'ফুলা (ল্যাটিন, গিনি)',
+        'ff_Latn_GW' => 'ফুলা (ল্যাটিন, গিনি-বিসাউ)',
+        'ff_Latn_LR' => 'ফুলা (ল্যাটিন, লাইবেরিয়া)',
+        'ff_Latn_MR' => 'ফুলা (ল্যাটিন, মরিতানিয়া)',
+        'ff_Latn_NE' => 'ফুলা (ল্যাটিন, নাইজার)',
+        'ff_Latn_NG' => 'ফুলা (ল্যাটিন, নাইজেরিয়া)',
+        'ff_Latn_SL' => 'ফুলা (ল্যাটিন, সিয়েরা লিওন)',
+        'ff_Latn_SN' => 'ফুলা (ল্যাটিন, সেনেগাল)',
+        'ff_MR' => 'ফুলা (মরিতানিয়া)',
+        'ff_SN' => 'ফুলা (সেনেগাল)',
         'fi' => 'ফিনিশ',
         'fi_FI' => 'ফিনিশ (ফিনল্যান্ড)',
         'fo' => 'ফেরোইস',
@@ -296,7 +304,7 @@
         'fr_BL' => 'ফরাসি (সেন্ট বার্থেলেমি)',
         'fr_CA' => 'ফরাসি (কানাডা)',
         'fr_CD' => 'ফরাসি (কঙ্গো-কিনশাসা)',
-        'fr_CF' => 'ফরাসি (মধ্য আফ্রিকার প্রজাতন্ত্র)',
+        'fr_CF' => 'ফরাসি (মধ্য আফ্রিকান প্রজাতন্ত্র)',
         'fr_CG' => 'ফরাসি (কঙ্গো - ব্রাজাভিল)',
         'fr_CH' => 'ফরাসি (সুইজারল্যান্ড)',
         'fr_CI' => 'ফরাসি (কোট ডি‘আইভোর)',
@@ -312,7 +320,7 @@
         'fr_HT' => 'ফরাসি (হাইতি)',
         'fr_KM' => 'ফরাসি (কমোরোস)',
         'fr_LU' => 'ফরাসি (লাক্সেমবার্গ)',
-        'fr_MA' => 'ফরাসি (মোরক্কো)',
+        'fr_MA' => 'ফরাসি (মরক্কো)',
         'fr_MC' => 'ফরাসি (মোনাকো)',
         'fr_MF' => 'ফরাসি (সেন্ট মার্টিন)',
         'fr_MG' => 'ফরাসি (মাদাগাস্কার)',
@@ -342,8 +350,8 @@
         'ga_IE' => 'আইরিশ (আয়ারল্যান্ড)',
         'gd' => 'স্কটিশ-গ্যেলিক',
         'gd_GB' => 'স্কটিশ-গ্যেলিক (যুক্তরাজ্য)',
-        'gl' => 'গ্যালিশিয়',
-        'gl_ES' => 'গ্যালিশিয় (স্পেন)',
+        'gl' => 'গ্যালিশীয়',
+        'gl_ES' => 'গ্যালিশীয় (স্পেন)',
         'gu' => 'গুজরাটি',
         'gu_IN' => 'গুজরাটি (ভারত)',
         'gv' => 'ম্যাঙ্কস',
@@ -371,17 +379,17 @@
         'id_ID' => 'ইন্দোনেশীয় (ইন্দোনেশিয়া)',
         'ie' => 'ইন্টারলিঙ্গ',
         'ie_EE' => 'ইন্টারলিঙ্গ (এস্তোনিয়া)',
-        'ig' => 'ইগ্‌বো',
-        'ig_NG' => 'ইগ্‌বো (নাইজেরিয়া)',
+        'ig' => 'ইগবো',
+        'ig_NG' => 'ইগবো (নাইজেরিয়া)',
         'ii' => 'সিচুয়ান য়ি',
         'ii_CN' => 'সিচুয়ান য়ি (চীন)',
         'is' => 'আইসল্যান্ডীয়',
         'is_IS' => 'আইসল্যান্ডীয় (আইসল্যান্ড)',
-        'it' => 'ইতালিয়',
-        'it_CH' => 'ইতালিয় (সুইজারল্যান্ড)',
-        'it_IT' => 'ইতালিয় (ইতালি)',
-        'it_SM' => 'ইতালিয় (সান মারিনো)',
-        'it_VA' => 'ইতালিয় (ভ্যাটিকান সিটি)',
+        'it' => 'ইতালীয়',
+        'it_CH' => 'ইতালীয় (সুইজারল্যান্ড)',
+        'it_IT' => 'ইতালীয় (ইতালি)',
+        'it_SM' => 'ইতালীয় (সান মারিনো)',
+        'it_VA' => 'ইতালীয় (ভ্যাটিকান সিটি)',
         'ja' => 'জাপানি',
         'ja_JP' => 'জাপানি (জাপান)',
         'jv' => 'জাভানিজ',
@@ -391,6 +399,8 @@
         'ki' => 'কিকুয়ু',
         'ki_KE' => 'কিকুয়ু (কেনিয়া)',
         'kk' => 'কাজাখ',
+        'kk_Arab' => 'কাজাখ (আরবি)',
+        'kk_Arab_CN' => 'কাজাখ (আরবি, চীন)',
         'kk_Cyrl' => 'কাজাখ (সিরিলিক)',
         'kk_Cyrl_KZ' => 'কাজাখ (সিরিলিক, কাজাখস্তান)',
         'kk_KZ' => 'কাজাখ (কাজাখস্তান)',
@@ -407,15 +417,20 @@
         'ks' => 'কাশ্মীরি',
         'ks_Arab' => 'কাশ্মীরি (আরবি)',
         'ks_Arab_IN' => 'কাশ্মীরি (আরবি, ভারত)',
-        'ks_Deva' => 'কাশ্মীরি (দেবনগরি)',
-        'ks_Deva_IN' => 'কাশ্মীরি (দেবনগরি, ভারত)',
+        'ks_Deva' => 'কাশ্মীরি (দেবনাগরী)',
+        'ks_Deva_IN' => 'কাশ্মীরি (দেবনাগরী, ভারত)',
         'ks_IN' => 'কাশ্মীরি (ভারত)',
         'ku' => 'কুর্দিশ',
+        'ku_Latn' => 'কুর্দিশ (ল্যাটিন)',
+        'ku_Latn_IQ' => 'কুর্দিশ (ল্যাটিন, ইরাক)',
+        'ku_Latn_SY' => 'কুর্দিশ (ল্যাটিন, সিরিয়া)',
+        'ku_Latn_TR' => 'কুর্দিশ (ল্যাটিন, তুরস্ক)',
+        'ku_SY' => 'কুর্দিশ (সিরিয়া)',
         'ku_TR' => 'কুর্দিশ (তুরস্ক)',
         'kw' => 'কর্ণিশ',
         'kw_GB' => 'কর্ণিশ (যুক্তরাজ্য)',
-        'ky' => 'কির্গিজ',
-        'ky_KG' => 'কির্গিজ (কিরগিজিস্তান)',
+        'ky' => 'কিরগিজ',
+        'ky_KG' => 'কিরগিজ (কিরগিজিস্তান)',
         'lb' => 'লুক্সেমবার্গীয়',
         'lb_LU' => 'লুক্সেমবার্গীয় (লাক্সেমবার্গ)',
         'lg' => 'গান্ডা',
@@ -423,26 +438,26 @@
         'ln' => 'লিঙ্গালা',
         'ln_AO' => 'লিঙ্গালা (অ্যাঙ্গোলা)',
         'ln_CD' => 'লিঙ্গালা (কঙ্গো-কিনশাসা)',
-        'ln_CF' => 'লিঙ্গালা (মধ্য আফ্রিকার প্রজাতন্ত্র)',
+        'ln_CF' => 'লিঙ্গালা (মধ্য আফ্রিকান প্রজাতন্ত্র)',
         'ln_CG' => 'লিঙ্গালা (কঙ্গো - ব্রাজাভিল)',
         'lo' => 'লাও',
         'lo_LA' => 'লাও (লাওস)',
-        'lt' => 'লিথুয়েনীয়',
-        'lt_LT' => 'লিথুয়েনীয় (লিথুয়ানিয়া)',
+        'lt' => 'লিথুয়ানীয়',
+        'lt_LT' => 'লিথুয়ানীয় (লিথুয়ানিয়া)',
         'lu' => 'লুবা-কাটাঙ্গা',
         'lu_CD' => 'লুবা-কাটাঙ্গা (কঙ্গো-কিনশাসা)',
-        'lv' => 'লাত্‌ভীয়',
-        'lv_LV' => 'লাত্‌ভীয় (লাটভিয়া)',
+        'lv' => 'লাটভিয়',
+        'lv_LV' => 'লাটভিয় (লাটভিয়া)',
         'mg' => 'মালাগাসি',
         'mg_MG' => 'মালাগাসি (মাদাগাস্কার)',
         'mi' => 'মাওরি',
         'mi_NZ' => 'মাওরি (নিউজিল্যান্ড)',
-        'mk' => 'ম্যাসিডোনীয়',
-        'mk_MK' => 'ম্যাসিডোনীয় (উত্তর ম্যাসেডোনিয়া)',
-        'ml' => 'মালায়ালাম',
-        'ml_IN' => 'মালায়ালাম (ভারত)',
-        'mn' => 'মঙ্গোলিয়',
-        'mn_MN' => 'মঙ্গোলিয় (মঙ্গোলিয়া)',
+        'mk' => 'ম্যাসেডোনিয়া',
+        'mk_MK' => 'ম্যাসেডোনিয়া (উত্তর ম্যাসেডোনিয়া)',
+        'ml' => 'মালয়ালম',
+        'ml_IN' => 'মালয়ালম (ভারত)',
+        'mn' => 'মোঙ্গোলীয়',
+        'mn_MN' => 'মোঙ্গোলীয় (মঙ্গোলিয়া)',
         'mr' => 'মারাঠি',
         'mr_IN' => 'মারাঠি (ভারত)',
         'ms' => 'মালয়',
@@ -450,8 +465,8 @@
         'ms_ID' => 'মালয় (ইন্দোনেশিয়া)',
         'ms_MY' => 'মালয় (মালয়েশিয়া)',
         'ms_SG' => 'মালয় (সিঙ্গাপুর)',
-        'mt' => 'মল্টিয়',
-        'mt_MT' => 'মল্টিয় (মাল্টা)',
+        'mt' => 'মল্টীয়',
+        'mt_MT' => 'মল্টীয় (মাল্টা)',
         'my' => 'বর্মি',
         'my_MM' => 'বর্মি (মায়ানমার [বার্মা])',
         'nb' => 'নরওয়েজিয়ান বোকমাল',
@@ -459,9 +474,9 @@
         'nb_SJ' => 'নরওয়েজিয়ান বোকমাল (স্বালবার্ড ও জান মেয়েন)',
         'nd' => 'উত্তর এন্দেবেলে',
         'nd_ZW' => 'উত্তর এন্দেবেলে (জিম্বাবোয়ে)',
-        'ne' => 'নেপালী',
-        'ne_IN' => 'নেপালী (ভারত)',
-        'ne_NP' => 'নেপালী (নেপাল)',
+        'ne' => 'নেপালি',
+        'ne_IN' => 'নেপালি (ভারত)',
+        'ne_NP' => 'নেপালি (নেপাল)',
         'nl' => 'ওলন্দাজ',
         'nl_AW' => 'ওলন্দাজ (আরুবা)',
         'nl_BE' => 'ওলন্দাজ (বেলজিয়াম)',
@@ -477,39 +492,39 @@
         'oc' => 'অক্সিটান',
         'oc_ES' => 'অক্সিটান (স্পেন)',
         'oc_FR' => 'অক্সিটান (ফ্রান্স)',
-        'om' => 'অরোমো',
-        'om_ET' => 'অরোমো (ইথিওপিয়া)',
-        'om_KE' => 'অরোমো (কেনিয়া)',
+        'om' => 'ওরোমো',
+        'om_ET' => 'ওরোমো (ইথিওপিয়া)',
+        'om_KE' => 'ওরোমো (কেনিয়া)',
         'or' => 'ওড়িয়া',
         'or_IN' => 'ওড়িয়া (ভারত)',
         'os' => 'ওসেটিক',
         'os_GE' => 'ওসেটিক (জর্জিয়া)',
         'os_RU' => 'ওসেটিক (রাশিয়া)',
-        'pa' => 'পাঞ্জাবী',
-        'pa_Arab' => 'পাঞ্জাবী (আরবি)',
-        'pa_Arab_PK' => 'পাঞ্জাবী (আরবি, পাকিস্তান)',
-        'pa_Guru' => 'পাঞ্জাবী (গুরুমুখি)',
-        'pa_Guru_IN' => 'পাঞ্জাবী (গুরুমুখি, ভারত)',
-        'pa_IN' => 'পাঞ্জাবী (ভারত)',
-        'pa_PK' => 'পাঞ্জাবী (পাকিস্তান)',
+        'pa' => 'পাঞ্জাবি',
+        'pa_Arab' => 'পাঞ্জাবি (আরবি)',
+        'pa_Arab_PK' => 'পাঞ্জাবি (আরবি, পাকিস্তান)',
+        'pa_Guru' => 'পাঞ্জাবি (গুরুমুখি)',
+        'pa_Guru_IN' => 'পাঞ্জাবি (গুরুমুখি, ভারত)',
+        'pa_IN' => 'পাঞ্জাবি (ভারত)',
+        'pa_PK' => 'পাঞ্জাবি (পাকিস্তান)',
         'pl' => 'পোলিশ',
         'pl_PL' => 'পোলিশ (পোল্যান্ড)',
         'ps' => 'পাশতু',
         'ps_AF' => 'পাশতু (আফগানিস্তান)',
         'ps_PK' => 'পাশতু (পাকিস্তান)',
-        'pt' => 'পর্তুগীজ',
-        'pt_AO' => 'পর্তুগীজ (অ্যাঙ্গোলা)',
-        'pt_BR' => 'পর্তুগীজ (ব্রাজিল)',
-        'pt_CH' => 'পর্তুগীজ (সুইজারল্যান্ড)',
-        'pt_CV' => 'পর্তুগীজ (কেপ ভার্দে)',
-        'pt_GQ' => 'পর্তুগীজ (নিরক্ষীয় গিনি)',
-        'pt_GW' => 'পর্তুগীজ (গিনি-বিসাউ)',
-        'pt_LU' => 'পর্তুগীজ (লাক্সেমবার্গ)',
-        'pt_MO' => 'পর্তুগীজ (ম্যাকাও এসএআর চীন)',
-        'pt_MZ' => 'পর্তুগীজ (মোজাম্বিক)',
-        'pt_PT' => 'পর্তুগীজ (পর্তুগাল)',
-        'pt_ST' => 'পর্তুগীজ (সাওটোমা ও প্রিন্সিপি)',
-        'pt_TL' => 'পর্তুগীজ (তিমুর-লেস্তে)',
+        'pt' => 'পর্তুগিজ',
+        'pt_AO' => 'পর্তুগিজ (অ্যাঙ্গোলা)',
+        'pt_BR' => 'পর্তুগিজ (ব্রাজিল)',
+        'pt_CH' => 'পর্তুগিজ (সুইজারল্যান্ড)',
+        'pt_CV' => 'পর্তুগিজ (কেপ ভার্দে)',
+        'pt_GQ' => 'পর্তুগিজ (নিরক্ষীয় গিনি)',
+        'pt_GW' => 'পর্তুগিজ (গিনি-বিসাউ)',
+        'pt_LU' => 'পর্তুগিজ (লাক্সেমবার্গ)',
+        'pt_MO' => 'পর্তুগিজ (ম্যাকাও এসএআর চীন)',
+        'pt_MZ' => 'পর্তুগিজ (মোজাম্বিক)',
+        'pt_PT' => 'পর্তুগিজ (পর্তুগাল)',
+        'pt_ST' => 'পর্তুগিজ (সাওটোমা ও প্রিন্সিপি)',
+        'pt_TL' => 'পর্তুগিজ (তিমুর-লেস্তে)',
         'qu' => 'কেচুয়া',
         'qu_BO' => 'কেচুয়া (বলিভিয়া)',
         'qu_EC' => 'কেচুয়া (ইকুয়েডর)',
@@ -537,8 +552,8 @@
         'sd' => 'সিন্ধি',
         'sd_Arab' => 'সিন্ধি (আরবি)',
         'sd_Arab_PK' => 'সিন্ধি (আরবি, পাকিস্তান)',
-        'sd_Deva' => 'সিন্ধি (দেবনগরি)',
-        'sd_Deva_IN' => 'সিন্ধি (দেবনগরি, ভারত)',
+        'sd_Deva' => 'সিন্ধি (দেবনাগরী)',
+        'sd_Deva_IN' => 'সিন্ধি (দেবনাগরী, ভারত)',
         'sd_IN' => 'সিন্ধি (ভারত)',
         'sd_PK' => 'সিন্ধি (পাকিস্তান)',
         'se' => 'উত্তরাঞ্চলীয় সামি',
@@ -546,11 +561,11 @@
         'se_NO' => 'উত্তরাঞ্চলীয় সামি (নরওয়ে)',
         'se_SE' => 'উত্তরাঞ্চলীয় সামি (সুইডেন)',
         'sg' => 'সাঙ্গো',
-        'sg_CF' => 'সাঙ্গো (মধ্য আফ্রিকার প্রজাতন্ত্র)',
+        'sg_CF' => 'সাঙ্গো (মধ্য আফ্রিকান প্রজাতন্ত্র)',
         'sh' => 'সার্বো-ক্রোয়েশিয়',
         'sh_BA' => 'সার্বো-ক্রোয়েশিয় (বসনিয়া ও হার্জেগোভিনা)',
-        'si' => 'সিংহলী',
-        'si_LK' => 'সিংহলী (শ্রীলঙ্কা)',
+        'si' => 'সিংহলি',
+        'si_LK' => 'সিংহলি (শ্রীলঙ্কা)',
         'sk' => 'স্লোভাক',
         'sk_SK' => 'স্লোভাক (স্লোভাকিয়া)',
         'sl' => 'স্লোভেনীয়',
@@ -616,9 +631,9 @@
         'tn_ZA' => 'সোয়ানা (দক্ষিণ আফ্রিকা)',
         'to' => 'টোঙ্গান',
         'to_TO' => 'টোঙ্গান (টোঙ্গা)',
-        'tr' => 'তুর্কী',
-        'tr_CY' => 'তুর্কী (সাইপ্রাস)',
-        'tr_TR' => 'তুর্কী (তুরস্ক)',
+        'tr' => 'তুর্কি',
+        'tr_CY' => 'তুর্কি (সাইপ্রাস)',
+        'tr_TR' => 'তুর্কি (তুরস্ক)',
         'tt' => 'তাতার',
         'tt_RU' => 'তাতার (রাশিয়া)',
         'ug' => 'উইঘুর',
@@ -641,15 +656,15 @@
         'vi_VN' => 'ভিয়েতনামী (ভিয়েতনাম)',
         'wo' => 'ওলোফ',
         'wo_SN' => 'ওলোফ (সেনেগাল)',
-        'xh' => 'জোসা',
-        'xh_ZA' => 'জোসা (দক্ষিণ আফ্রিকা)',
+        'xh' => 'খোসা',
+        'xh_ZA' => 'খোসা (দক্ষিণ আফ্রিকা)',
         'yi' => 'ইদ্দিশ',
         'yi_UA' => 'ইদ্দিশ (ইউক্রেন)',
         'yo' => 'ইওরুবা',
         'yo_BJ' => 'ইওরুবা (বেনিন)',
         'yo_NG' => 'ইওরুবা (নাইজেরিয়া)',
-        'za' => 'ঝু্য়াঙ',
-        'za_CN' => 'ঝু্য়াঙ (চীন)',
+        'za' => 'ঝুয়াং',
+        'za_CN' => 'ঝুয়াং (চীন)',
         'zh' => 'চীনা',
         'zh_CN' => 'চীনা (চীন)',
         'zh_HK' => 'চীনা (হংকং এসএআর চীনা)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bo.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
         'en_GB' => 'དབྱིན་ཇིའི་སྐད། (དབྱིན་ཇི་)',
         'en_IN' => 'དབྱིན་ཇིའི་སྐད། (རྒྱ་གར་)',
         'en_IT' => 'དབྱིན་ཇིའི་སྐད། (ཨི་ཀྲར་ལི་)',
+        'en_JP' => 'དབྱིན་ཇིའི་སྐད། (ཉི་ཧོང་)',
         'en_US' => 'དབྱིན་ཇིའི་སྐད། (ཨ་མེ་རི་ཀ།)',
         'hi' => 'ཧིན་དི',
         'hi_IN' => 'ཧིན་དི (རྒྱ་གར་)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/br.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/br.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/br.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/br.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,16 +2,16 @@
 
 return [
     'Names' => [
-        'af' => 'afrikaans',
-        'af_NA' => 'afrikaans (Namibia)',
-        'af_ZA' => 'afrikaans (Suafrika)',
-        'ak' => 'akan',
-        'ak_GH' => 'akan (Ghana)',
+        'af' => 'afrikaaneg',
+        'af_NA' => 'afrikaaneg (Namibia)',
+        'af_ZA' => 'afrikaaneg (Suafrika)',
+        'ak' => 'akaneg',
+        'ak_GH' => 'akaneg (Ghana)',
         'am' => 'amhareg',
         'am_ET' => 'amhareg (Etiopia)',
         'ar' => 'arabeg',
-        'ar_001' => 'arabeg (Bed)',
-        'ar_AE' => 'arabeg (Emirelezhioù Arab Unanet)',
+        'ar_001' => 'arabeg (bed)',
+        'ar_AE' => 'arabeg (Emirelezhioù-Arab-Unanet)',
         'ar_BH' => 'arabeg (Bahrein)',
         'ar_DJ' => 'arabeg (Djibouti)',
         'ar_DZ' => 'arabeg (Aljeria)',
@@ -33,7 +33,7 @@
         'ar_SA' => 'arabeg (Arabia Saoudat)',
         'ar_SD' => 'arabeg (Soudan)',
         'ar_SO' => 'arabeg (Somalia)',
-        'ar_SS' => 'arabeg (Susoudan)',
+        'ar_SS' => 'arabeg (Soudan ar Su)',
         'ar_SY' => 'arabeg (Siria)',
         'ar_TD' => 'arabeg (Tchad)',
         'ar_TN' => 'arabeg (Tunizia)',
@@ -46,26 +46,28 @@
         'az_Cyrl_AZ' => 'azerbaidjaneg (kirillek, Azerbaidjan)',
         'az_Latn' => 'azerbaidjaneg (latin)',
         'az_Latn_AZ' => 'azerbaidjaneg (latin, Azerbaidjan)',
+        'ba' => 'bachkir',
+        'ba_RU' => 'bachkir (Rusia)',
         'be' => 'belaruseg',
         'be_BY' => 'belaruseg (Belarus)',
         'bg' => 'bulgareg',
         'bg_BG' => 'bulgareg (Bulgaria)',
         'bm' => 'bambara',
         'bm_ML' => 'bambara (Mali)',
-        'bn' => 'bengali',
-        'bn_BD' => 'bengali (Bangladesh)',
-        'bn_IN' => 'bengali (India)',
+        'bn' => 'bengaleg',
+        'bn_BD' => 'bengaleg (Bangladesh)',
+        'bn_IN' => 'bengaleg (India)',
         'bo' => 'tibetaneg',
         'bo_CN' => 'tibetaneg (Sina)',
         'bo_IN' => 'tibetaneg (India)',
         'br' => 'brezhoneg',
         'br_FR' => 'brezhoneg (Frañs)',
         'bs' => 'bosneg',
-        'bs_BA' => 'bosneg (Bosnia ha Herzegovina)',
+        'bs_BA' => 'bosneg (Bosnia-ha-Herzegovina)',
         'bs_Cyrl' => 'bosneg (kirillek)',
-        'bs_Cyrl_BA' => 'bosneg (kirillek, Bosnia ha Herzegovina)',
+        'bs_Cyrl_BA' => 'bosneg (kirillek, Bosnia-ha-Herzegovina)',
         'bs_Latn' => 'bosneg (latin)',
-        'bs_Latn_BA' => 'bosneg (latin, Bosnia ha Herzegovina)',
+        'bs_Latn_BA' => 'bosneg (latin, Bosnia-ha-Herzegovina)',
         'ca' => 'katalaneg',
         'ca_AD' => 'katalaneg (Andorra)',
         'ca_ES' => 'katalaneg (Spagn)',
@@ -75,8 +77,8 @@
         'ce_RU' => 'tchetcheneg (Rusia)',
         'cs' => 'tchekeg',
         'cs_CZ' => 'tchekeg (Tchekia)',
-        'cv' => 'tchouvatch',
-        'cv_RU' => 'tchouvatch (Rusia)',
+        'cv' => 'tchouvatcheg',
+        'cv_RU' => 'tchouvatcheg (Rusia)',
         'cy' => 'kembraeg',
         'cy_GB' => 'kembraeg (Rouantelezh-Unanet)',
         'da' => 'daneg',
@@ -99,10 +101,10 @@
         'el_CY' => 'gresianeg (Kiprenez)',
         'el_GR' => 'gresianeg (Gres)',
         'en' => 'saozneg',
-        'en_001' => 'saozneg (Bed)',
+        'en_001' => 'saozneg (bed)',
         'en_150' => 'saozneg (Europa)',
-        'en_AE' => 'saozneg (Emirelezhioù Arab Unanet)',
-        'en_AG' => 'saozneg (Antigua ha Barbuda)',
+        'en_AE' => 'saozneg (Emirelezhioù-Arab-Unanet)',
+        'en_AG' => 'saozneg (Antigua-ha-Barbuda)',
         'en_AI' => 'saozneg (Anguilla)',
         'en_AS' => 'saozneg (Samoa Amerikan)',
         'en_AT' => 'saozneg (Aostria)',
@@ -110,7 +112,7 @@
         'en_BB' => 'saozneg (Barbados)',
         'en_BE' => 'saozneg (Belgia)',
         'en_BI' => 'saozneg (Burundi)',
-        'en_BM' => 'saozneg (Bermuda)',
+        'en_BM' => 'saozneg (Bermudez)',
         'en_BS' => 'saozneg (Bahamas)',
         'en_BW' => 'saozneg (Botswana)',
         'en_BZ' => 'saozneg (Belize)',
@@ -125,6 +127,7 @@
         'en_DE' => 'saozneg (Alamagn)',
         'en_DK' => 'saozneg (Danmark)',
         'en_DM' => 'saozneg (Dominica)',
+        'en_EE' => 'saozneg (Estonia)',
         'en_ER' => 'saozneg (Eritrea)',
         'en_ES' => 'saozneg (Spagn)',
         'en_FI' => 'saozneg (Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'saozneg (Frañs)',
         'en_GB' => 'saozneg (Rouantelezh-Unanet)',
         'en_GD' => 'saozneg (Grenada)',
+        'en_GE' => 'saozneg (Jorjia)',
         'en_GG' => 'saozneg (Gwernenez)',
         'en_GH' => 'saozneg (Ghana)',
         'en_GI' => 'saozneg (Jibraltar)',
@@ -146,21 +150,25 @@
         'en_ID' => 'saozneg (Indonezia)',
         'en_IE' => 'saozneg (Iwerzhon)',
         'en_IL' => 'saozneg (Israel)',
-        'en_IM' => 'saozneg (Enez Vanav)',
+        'en_IM' => 'saozneg (Enez-Vanav)',
         'en_IN' => 'saozneg (India)',
+        'en_IO' => 'saozneg (Tiriad breizhveurat Meurvor Indez)',
         'en_IT' => 'saozneg (Italia)',
         'en_JE' => 'saozneg (Jerzenez)',
         'en_JM' => 'saozneg (Jamaika)',
+        'en_JP' => 'saozneg (Japan)',
         'en_KE' => 'saozneg (Kenya)',
         'en_KI' => 'saozneg (Kiribati)',
-        'en_KN' => 'saozneg (Saint Kitts ha Nevis)',
+        'en_KN' => 'saozneg (Saint Kitts-ha-Nevis)',
         'en_KY' => 'saozneg (Inizi Cayman)',
         'en_LC' => 'saozneg (Saint Lucia)',
         'en_LR' => 'saozneg (Liberia)',
         'en_LS' => 'saozneg (Lesotho)',
+        'en_LT' => 'saozneg (Lituania)',
+        'en_LV' => 'saozneg (Latvia)',
         'en_MG' => 'saozneg (Madagaskar)',
         'en_MH' => 'saozneg (Inizi Marshall)',
-        'en_MO' => 'saozneg (Macau RMD Sina)',
+        'en_MO' => 'saozneg (Makao RMD Sina)',
         'en_MP' => 'saozneg (Inizi Mariana an Norzh)',
         'en_MS' => 'saozneg (Montserrat)',
         'en_MT' => 'saozneg (Malta)',
@@ -190,24 +198,25 @@
         'en_SC' => 'saozneg (Sechelez)',
         'en_SD' => 'saozneg (Soudan)',
         'en_SE' => 'saozneg (Sveden)',
-        'en_SG' => 'saozneg (Singapour)',
+        'en_SG' => 'saozneg (Singapoura)',
         'en_SH' => 'saozneg (Saint-Helena)',
         'en_SI' => 'saozneg (Slovenia)',
         'en_SK' => 'saozneg (Slovakia)',
         'en_SL' => 'saozneg (Sierra Leone)',
-        'en_SS' => 'saozneg (Susoudan)',
+        'en_SS' => 'saozneg (Soudan ar Su)',
         'en_SX' => 'saozneg (Sint Maarten)',
         'en_SZ' => 'saozneg (Eswatini)',
-        'en_TC' => 'saozneg (Inizi Turks ha Caicos)',
+        'en_TC' => 'saozneg (Inizi Turks-ha-Caicos)',
         'en_TK' => 'saozneg (Tokelau)',
         'en_TO' => 'saozneg (Tonga)',
-        'en_TT' => 'saozneg (Trinidad ha Tobago)',
+        'en_TT' => 'saozneg (Trinidad-ha-Tobago)',
         'en_TV' => 'saozneg (Tuvalu)',
         'en_TZ' => 'saozneg (Tanzania)',
+        'en_UA' => 'saozneg (Ukraina)',
         'en_UG' => 'saozneg (Ouganda)',
         'en_UM' => 'saozneg (Inizi diabell ar Stadoù-Unanet)',
         'en_US' => 'saozneg (Stadoù-Unanet)',
-        'en_VC' => 'saozneg (Sant Visant hag ar Grenadinez)',
+        'en_VC' => 'saozneg (Sant-Visant hag ar Grenadinez)',
         'en_VG' => 'saozneg (Inizi Gwercʼh Breizh-Veur)',
         'en_VI' => 'saozneg (Inizi Gwercʼh ar Stadoù-Unanet)',
         'en_VU' => 'saozneg (Vanuatu)',
@@ -216,7 +225,7 @@
         'en_ZM' => 'saozneg (Zambia)',
         'en_ZW' => 'saozneg (Zimbabwe)',
         'eo' => 'esperanteg',
-        'eo_001' => 'esperanteg (Bed)',
+        'eo_001' => 'esperanteg (bed)',
         'es' => 'spagnoleg',
         'es_419' => 'spagnoleg (Amerika Latin)',
         'es_AR' => 'spagnoleg (Arcʼhantina)',
@@ -230,7 +239,7 @@
         'es_DO' => 'spagnoleg (Republik Dominikan)',
         'es_EC' => 'spagnoleg (Ecuador)',
         'es_ES' => 'spagnoleg (Spagn)',
-        'es_GQ' => 'spagnoleg (Ginea ar Cʼheheder)',
+        'es_GQ' => 'spagnoleg (Ginea-ar-Cʼheheder)',
         'es_GT' => 'spagnoleg (Guatemala)',
         'es_HN' => 'spagnoleg (Honduras)',
         'es_MX' => 'spagnoleg (Mecʼhiko)',
@@ -251,37 +260,37 @@
         'fa' => 'perseg',
         'fa_AF' => 'perseg (Afghanistan)',
         'fa_IR' => 'perseg (Iran)',
-        'ff' => 'fula',
-        'ff_Adlm' => 'fula (adlam)',
-        'ff_Adlm_BF' => 'fula (adlam, Burkina Faso)',
-        'ff_Adlm_CM' => 'fula (adlam, Kameroun)',
-        'ff_Adlm_GH' => 'fula (adlam, Ghana)',
-        'ff_Adlm_GM' => 'fula (adlam, Gambia)',
-        'ff_Adlm_GN' => 'fula (adlam, Ginea)',
-        'ff_Adlm_GW' => 'fula (adlam, Ginea-Bissau)',
-        'ff_Adlm_LR' => 'fula (adlam, Liberia)',
-        'ff_Adlm_MR' => 'fula (adlam, Maouritania)',
-        'ff_Adlm_NE' => 'fula (adlam, Niger)',
-        'ff_Adlm_NG' => 'fula (adlam, Nigeria)',
-        'ff_Adlm_SL' => 'fula (adlam, Sierra Leone)',
-        'ff_Adlm_SN' => 'fula (adlam, Senegal)',
-        'ff_CM' => 'fula (Kameroun)',
-        'ff_GN' => 'fula (Ginea)',
-        'ff_Latn' => 'fula (latin)',
-        'ff_Latn_BF' => 'fula (latin, Burkina Faso)',
-        'ff_Latn_CM' => 'fula (latin, Kameroun)',
-        'ff_Latn_GH' => 'fula (latin, Ghana)',
-        'ff_Latn_GM' => 'fula (latin, Gambia)',
-        'ff_Latn_GN' => 'fula (latin, Ginea)',
-        'ff_Latn_GW' => 'fula (latin, Ginea-Bissau)',
-        'ff_Latn_LR' => 'fula (latin, Liberia)',
-        'ff_Latn_MR' => 'fula (latin, Maouritania)',
-        'ff_Latn_NE' => 'fula (latin, Niger)',
-        'ff_Latn_NG' => 'fula (latin, Nigeria)',
-        'ff_Latn_SL' => 'fula (latin, Sierra Leone)',
-        'ff_Latn_SN' => 'fula (latin, Senegal)',
-        'ff_MR' => 'fula (Maouritania)',
-        'ff_SN' => 'fula (Senegal)',
+        'ff' => 'fulaeg',
+        'ff_Adlm' => 'fulaeg (adlam)',
+        'ff_Adlm_BF' => 'fulaeg (adlam, Burkina Faso)',
+        'ff_Adlm_CM' => 'fulaeg (adlam, Kameroun)',
+        'ff_Adlm_GH' => 'fulaeg (adlam, Ghana)',
+        'ff_Adlm_GM' => 'fulaeg (adlam, Gambia)',
+        'ff_Adlm_GN' => 'fulaeg (adlam, Ginea)',
+        'ff_Adlm_GW' => 'fulaeg (adlam, Ginea-Bissau)',
+        'ff_Adlm_LR' => 'fulaeg (adlam, Liberia)',
+        'ff_Adlm_MR' => 'fulaeg (adlam, Maouritania)',
+        'ff_Adlm_NE' => 'fulaeg (adlam, Niger)',
+        'ff_Adlm_NG' => 'fulaeg (adlam, Nigeria)',
+        'ff_Adlm_SL' => 'fulaeg (adlam, Sierra Leone)',
+        'ff_Adlm_SN' => 'fulaeg (adlam, Senegal)',
+        'ff_CM' => 'fulaeg (Kameroun)',
+        'ff_GN' => 'fulaeg (Ginea)',
+        'ff_Latn' => 'fulaeg (latin)',
+        'ff_Latn_BF' => 'fulaeg (latin, Burkina Faso)',
+        'ff_Latn_CM' => 'fulaeg (latin, Kameroun)',
+        'ff_Latn_GH' => 'fulaeg (latin, Ghana)',
+        'ff_Latn_GM' => 'fulaeg (latin, Gambia)',
+        'ff_Latn_GN' => 'fulaeg (latin, Ginea)',
+        'ff_Latn_GW' => 'fulaeg (latin, Ginea-Bissau)',
+        'ff_Latn_LR' => 'fulaeg (latin, Liberia)',
+        'ff_Latn_MR' => 'fulaeg (latin, Maouritania)',
+        'ff_Latn_NE' => 'fulaeg (latin, Niger)',
+        'ff_Latn_NG' => 'fulaeg (latin, Nigeria)',
+        'ff_Latn_SL' => 'fulaeg (latin, Sierra Leone)',
+        'ff_Latn_SN' => 'fulaeg (latin, Senegal)',
+        'ff_MR' => 'fulaeg (Maouritania)',
+        'ff_SN' => 'fulaeg (Senegal)',
         'fi' => 'finneg',
         'fi_FI' => 'finneg (Finland)',
         'fo' => 'faeroeg',
@@ -292,13 +301,13 @@
         'fr_BF' => 'galleg (Burkina Faso)',
         'fr_BI' => 'galleg (Burundi)',
         'fr_BJ' => 'galleg (Benin)',
-        'fr_BL' => 'galleg (Saint Barthélemy)',
+        'fr_BL' => 'galleg (Sant-Bertele)',
         'fr_CA' => 'galleg (Kanada)',
         'fr_CD' => 'galleg (Kongo - Kinshasa)',
         'fr_CF' => 'galleg (Republik Kreizafrikan)',
         'fr_CG' => 'galleg (Kongo - Brazzaville)',
         'fr_CH' => 'galleg (Suis)',
-        'fr_CI' => 'galleg (Aod an Olifant)',
+        'fr_CI' => 'galleg (Aod-an-Olifant)',
         'fr_CM' => 'galleg (Kameroun)',
         'fr_DJ' => 'galleg (Djibouti)',
         'fr_DZ' => 'galleg (Aljeria)',
@@ -307,19 +316,19 @@
         'fr_GF' => 'galleg (Gwiana cʼhall)',
         'fr_GN' => 'galleg (Ginea)',
         'fr_GP' => 'galleg (Gwadeloup)',
-        'fr_GQ' => 'galleg (Ginea ar Cʼheheder)',
+        'fr_GQ' => 'galleg (Ginea-ar-Cʼheheder)',
         'fr_HT' => 'galleg (Haiti)',
         'fr_KM' => 'galleg (Komorez)',
         'fr_LU' => 'galleg (Luksembourg)',
         'fr_MA' => 'galleg (Maroko)',
         'fr_MC' => 'galleg (Monaco)',
-        'fr_MF' => 'galleg (Saint Martin)',
+        'fr_MF' => 'galleg (Sant-Martin)',
         'fr_MG' => 'galleg (Madagaskar)',
         'fr_ML' => 'galleg (Mali)',
         'fr_MQ' => 'galleg (Martinik)',
         'fr_MR' => 'galleg (Maouritania)',
         'fr_MU' => 'galleg (Moris)',
-        'fr_NC' => 'galleg (Kaledonia Nevez)',
+        'fr_NC' => 'galleg (Kaledonia-Nevez)',
         'fr_NE' => 'galleg (Niger)',
         'fr_PF' => 'galleg (Polinezia Cʼhall)',
         'fr_PM' => 'galleg (Sant-Pêr-ha-Mikelon)',
@@ -332,7 +341,7 @@
         'fr_TG' => 'galleg (Togo)',
         'fr_TN' => 'galleg (Tunizia)',
         'fr_VU' => 'galleg (Vanuatu)',
-        'fr_WF' => 'galleg (Wallis ha Futuna)',
+        'fr_WF' => 'galleg (Wallis-ha-Futuna)',
         'fr_YT' => 'galleg (Mayotte)',
         'fy' => 'frizeg ar Cʼhornôg',
         'fy_NL' => 'frizeg ar Cʼhornôg (Izelvroioù)',
@@ -343,35 +352,35 @@
         'gd_GB' => 'skoseg (Rouantelezh-Unanet)',
         'gl' => 'galizeg',
         'gl_ES' => 'galizeg (Spagn)',
-        'gu' => 'gujarati',
-        'gu_IN' => 'gujarati (India)',
+        'gu' => 'gujarateg',
+        'gu_IN' => 'gujarateg (India)',
         'gv' => 'manaveg',
-        'gv_IM' => 'manaveg (Enez Vanav)',
-        'ha' => 'haousa',
-        'ha_GH' => 'haousa (Ghana)',
-        'ha_NE' => 'haousa (Niger)',
-        'ha_NG' => 'haousa (Nigeria)',
+        'gv_IM' => 'manaveg (Enez-Vanav)',
+        'ha' => 'haousaeg',
+        'ha_GH' => 'haousaeg (Ghana)',
+        'ha_NE' => 'haousaeg (Niger)',
+        'ha_NG' => 'haousaeg (Nigeria)',
         'he' => 'hebraeg',
         'he_IL' => 'hebraeg (Israel)',
-        'hi' => 'hindi',
-        'hi_IN' => 'hindi (India)',
-        'hi_Latn' => 'hindi (latin)',
-        'hi_Latn_IN' => 'hindi (latin, India)',
+        'hi' => 'hindieg',
+        'hi_IN' => 'hindieg (India)',
+        'hi_Latn' => 'hindieg (latin)',
+        'hi_Latn_IN' => 'hindieg (latin, India)',
         'hr' => 'kroateg',
-        'hr_BA' => 'kroateg (Bosnia ha Herzegovina)',
+        'hr_BA' => 'kroateg (Bosnia-ha-Herzegovina)',
         'hr_HR' => 'kroateg (Kroatia)',
         'hu' => 'hungareg',
         'hu_HU' => 'hungareg (Hungaria)',
         'hy' => 'armenianeg',
         'hy_AM' => 'armenianeg (Armenia)',
-        'ia' => 'interlingua',
-        'ia_001' => 'interlingua (Bed)',
+        'ia' => 'interlinguaeg',
+        'ia_001' => 'interlinguaeg (bed)',
         'id' => 'indonezeg',
         'id_ID' => 'indonezeg (Indonezia)',
         'ie' => 'interlingue',
         'ie_EE' => 'interlingue (Estonia)',
-        'ig' => 'igbo',
-        'ig_NG' => 'igbo (Nigeria)',
+        'ig' => 'igboeg',
+        'ig_NG' => 'igboeg (Nigeria)',
         'ii' => 'yieg Sichuan',
         'ii_CN' => 'yieg Sichuan (Sina)',
         'is' => 'islandeg',
@@ -389,32 +398,39 @@
         'ka_GE' => 'jorjianeg (Jorjia)',
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenya)',
-        'kk' => 'kazak',
-        'kk_Cyrl' => 'kazak (kirillek)',
-        'kk_Cyrl_KZ' => 'kazak (kirillek, Kazakstan)',
-        'kk_KZ' => 'kazak (Kazakstan)',
+        'kk' => 'kazakeg',
+        'kk_Arab' => 'kazakeg (arabek)',
+        'kk_Arab_CN' => 'kazakeg (arabek, Sina)',
+        'kk_Cyrl' => 'kazakeg (kirillek)',
+        'kk_Cyrl_KZ' => 'kazakeg (kirillek, Kazakstan)',
+        'kk_KZ' => 'kazakeg (Kazakstan)',
         'kl' => 'greunlandeg',
         'kl_GL' => 'greunlandeg (Greunland)',
-        'km' => 'khmer',
-        'km_KH' => 'khmer (Kambodja)',
+        'km' => 'khmereg',
+        'km_KH' => 'khmereg (Kambodja)',
         'kn' => 'kanareg',
         'kn_IN' => 'kanareg (India)',
         'ko' => 'koreaneg',
         'ko_CN' => 'koreaneg (Sina)',
-        'ko_KP' => 'koreaneg (Korea an Norzh)',
-        'ko_KR' => 'koreaneg (Korea ar Su)',
-        'ks' => 'kashmiri',
-        'ks_Arab' => 'kashmiri (arabek)',
-        'ks_Arab_IN' => 'kashmiri (arabek, India)',
-        'ks_Deva' => 'kashmiri (devanagari)',
-        'ks_Deva_IN' => 'kashmiri (devanagari, India)',
-        'ks_IN' => 'kashmiri (India)',
+        'ko_KP' => 'koreaneg (Norzhkorea)',
+        'ko_KR' => 'koreaneg (Sukorea)',
+        'ks' => 'kashmireg',
+        'ks_Arab' => 'kashmireg (arabek)',
+        'ks_Arab_IN' => 'kashmireg (arabek, India)',
+        'ks_Deva' => 'kashmireg (devanagari)',
+        'ks_Deva_IN' => 'kashmireg (devanagari, India)',
+        'ks_IN' => 'kashmireg (India)',
         'ku' => 'kurdeg',
+        'ku_Latn' => 'kurdeg (latin)',
+        'ku_Latn_IQ' => 'kurdeg (latin, Iraq)',
+        'ku_Latn_SY' => 'kurdeg (latin, Siria)',
+        'ku_Latn_TR' => 'kurdeg (latin, Turkia)',
+        'ku_SY' => 'kurdeg (Siria)',
         'ku_TR' => 'kurdeg (Turkia)',
         'kw' => 'kerneveureg',
         'kw_GB' => 'kerneveureg (Rouantelezh-Unanet)',
-        'ky' => 'kirgiz',
-        'ky_KG' => 'kirgiz (Kyrgyzstan)',
+        'ky' => 'kirgizeg',
+        'ky_KG' => 'kirgizeg (Kyrgyzstan)',
         'lb' => 'luksembourgeg',
         'lb_LU' => 'luksembourgeg (Luksembourg)',
         'lg' => 'ganda',
@@ -438,17 +454,17 @@
         'mi_NZ' => 'maori (Zeland-Nevez)',
         'mk' => 'makedoneg',
         'mk_MK' => 'makedoneg (Makedonia an Norzh)',
-        'ml' => 'malayalam',
-        'ml_IN' => 'malayalam (India)',
+        'ml' => 'malayalameg',
+        'ml_IN' => 'malayalameg (India)',
         'mn' => 'mongoleg',
         'mn_MN' => 'mongoleg (Mongolia)',
-        'mr' => 'marathi',
-        'mr_IN' => 'marathi (India)',
+        'mr' => 'maratheg',
+        'mr_IN' => 'maratheg (India)',
         'ms' => 'malayseg',
         'ms_BN' => 'malayseg (Brunei)',
         'ms_ID' => 'malayseg (Indonezia)',
         'ms_MY' => 'malayseg (Malaysia)',
-        'ms_SG' => 'malayseg (Singapour)',
+        'ms_SG' => 'malayseg (Singapoura)',
         'mt' => 'malteg',
         'mt_MT' => 'malteg (Malta)',
         'my' => 'birmaneg',
@@ -479,35 +495,35 @@
         'om' => 'oromoeg',
         'om_ET' => 'oromoeg (Etiopia)',
         'om_KE' => 'oromoeg (Kenya)',
-        'or' => 'oriya',
-        'or_IN' => 'oriya (India)',
+        'or' => 'oriyaeg',
+        'or_IN' => 'oriyaeg (India)',
         'os' => 'oseteg',
         'os_GE' => 'oseteg (Jorjia)',
         'os_RU' => 'oseteg (Rusia)',
-        'pa' => 'punjabi',
-        'pa_Arab' => 'punjabi (arabek)',
-        'pa_Arab_PK' => 'punjabi (arabek, Pakistan)',
-        'pa_Guru' => 'punjabi (gurmukhi)',
-        'pa_Guru_IN' => 'punjabi (gurmukhi, India)',
-        'pa_IN' => 'punjabi (India)',
-        'pa_PK' => 'punjabi (Pakistan)',
+        'pa' => 'punjabeg',
+        'pa_Arab' => 'punjabeg (arabek)',
+        'pa_Arab_PK' => 'punjabeg (arabek, Pakistan)',
+        'pa_Guru' => 'punjabeg (gurmukhi)',
+        'pa_Guru_IN' => 'punjabeg (gurmukhi, India)',
+        'pa_IN' => 'punjabeg (India)',
+        'pa_PK' => 'punjabeg (Pakistan)',
         'pl' => 'poloneg',
         'pl_PL' => 'poloneg (Polonia)',
-        'ps' => 'pachto',
-        'ps_AF' => 'pachto (Afghanistan)',
-        'ps_PK' => 'pachto (Pakistan)',
+        'ps' => 'pachtoeg',
+        'ps_AF' => 'pachtoeg (Afghanistan)',
+        'ps_PK' => 'pachtoeg (Pakistan)',
         'pt' => 'portugaleg',
         'pt_AO' => 'portugaleg (Angola)',
         'pt_BR' => 'portugaleg (Brazil)',
         'pt_CH' => 'portugaleg (Suis)',
         'pt_CV' => 'portugaleg (Kab-Glas)',
-        'pt_GQ' => 'portugaleg (Ginea ar Cʼheheder)',
+        'pt_GQ' => 'portugaleg (Ginea-ar-Cʼheheder)',
         'pt_GW' => 'portugaleg (Ginea-Bissau)',
         'pt_LU' => 'portugaleg (Luksembourg)',
-        'pt_MO' => 'portugaleg (Macau RMD Sina)',
+        'pt_MO' => 'portugaleg (Makao RMD Sina)',
         'pt_MZ' => 'portugaleg (Mozambik)',
         'pt_PT' => 'portugaleg (Portugal)',
-        'pt_ST' => 'portugaleg (São Tomé ha Príncipe)',
+        'pt_ST' => 'portugaleg (São-Tomé-ha-Príncipe)',
         'pt_TL' => 'portugaleg (Timor-Leste)',
         'qu' => 'kechuaeg',
         'qu_BO' => 'kechuaeg (Bolivia)',
@@ -547,7 +563,7 @@
         'sg' => 'sango',
         'sg_CF' => 'sango (Republik Kreizafrikan)',
         'sh' => 'serb-kroateg',
-        'sh_BA' => 'serb-kroateg (Bosnia ha Herzegovina)',
+        'sh_BA' => 'serb-kroateg (Bosnia-ha-Herzegovina)',
         'si' => 'singhaleg',
         'si_LK' => 'singhaleg (Sri Lanka)',
         'sk' => 'slovakeg',
@@ -556,29 +572,29 @@
         'sl_SI' => 'sloveneg (Slovenia)',
         'sn' => 'shona',
         'sn_ZW' => 'shona (Zimbabwe)',
-        'so' => 'somali',
-        'so_DJ' => 'somali (Djibouti)',
-        'so_ET' => 'somali (Etiopia)',
-        'so_KE' => 'somali (Kenya)',
-        'so_SO' => 'somali (Somalia)',
+        'so' => 'somalieg',
+        'so_DJ' => 'somalieg (Djibouti)',
+        'so_ET' => 'somalieg (Etiopia)',
+        'so_KE' => 'somalieg (Kenya)',
+        'so_SO' => 'somalieg (Somalia)',
         'sq' => 'albaneg',
         'sq_AL' => 'albaneg (Albania)',
         'sq_MK' => 'albaneg (Makedonia an Norzh)',
         'sr' => 'serbeg',
-        'sr_BA' => 'serbeg (Bosnia ha Herzegovina)',
+        'sr_BA' => 'serbeg (Bosnia-ha-Herzegovina)',
         'sr_Cyrl' => 'serbeg (kirillek)',
-        'sr_Cyrl_BA' => 'serbeg (kirillek, Bosnia ha Herzegovina)',
+        'sr_Cyrl_BA' => 'serbeg (kirillek, Bosnia-ha-Herzegovina)',
         'sr_Cyrl_ME' => 'serbeg (kirillek, Montenegro)',
         'sr_Cyrl_RS' => 'serbeg (kirillek, Serbia)',
         'sr_Latn' => 'serbeg (latin)',
-        'sr_Latn_BA' => 'serbeg (latin, Bosnia ha Herzegovina)',
+        'sr_Latn_BA' => 'serbeg (latin, Bosnia-ha-Herzegovina)',
         'sr_Latn_ME' => 'serbeg (latin, Montenegro)',
         'sr_Latn_RS' => 'serbeg (latin, Serbia)',
         'sr_ME' => 'serbeg (Montenegro)',
         'sr_RS' => 'serbeg (Serbia)',
-        'st' => 'sotho ar Su',
-        'st_LS' => 'sotho ar Su (Lesotho)',
-        'st_ZA' => 'sotho ar Su (Suafrika)',
+        'st' => 'sothoeg ar Su',
+        'st_LS' => 'sothoeg ar Su (Lesotho)',
+        'st_ZA' => 'sothoeg ar Su (Suafrika)',
         'su' => 'sundaneg',
         'su_ID' => 'sundaneg (Indonezia)',
         'su_Latn' => 'sundaneg (latin)',
@@ -587,46 +603,46 @@
         'sv_AX' => 'svedeg (Inizi Åland)',
         'sv_FI' => 'svedeg (Finland)',
         'sv_SE' => 'svedeg (Sveden)',
-        'sw' => 'swahili',
-        'sw_CD' => 'swahili (Kongo - Kinshasa)',
-        'sw_KE' => 'swahili (Kenya)',
-        'sw_TZ' => 'swahili (Tanzania)',
-        'sw_UG' => 'swahili (Ouganda)',
+        'sw' => 'swahilieg',
+        'sw_CD' => 'swahilieg (Kongo - Kinshasa)',
+        'sw_KE' => 'swahilieg (Kenya)',
+        'sw_TZ' => 'swahilieg (Tanzania)',
+        'sw_UG' => 'swahilieg (Ouganda)',
         'ta' => 'tamileg',
         'ta_IN' => 'tamileg (India)',
         'ta_LK' => 'tamileg (Sri Lanka)',
         'ta_MY' => 'tamileg (Malaysia)',
-        'ta_SG' => 'tamileg (Singapour)',
+        'ta_SG' => 'tamileg (Singapoura)',
         'te' => 'telougou',
         'te_IN' => 'telougou (India)',
-        'tg' => 'tadjik',
-        'tg_TJ' => 'tadjik (Tadjikistan)',
-        'th' => 'thai',
-        'th_TH' => 'thai (Thailand)',
-        'ti' => 'tigrigna',
-        'ti_ER' => 'tigrigna (Eritrea)',
-        'ti_ET' => 'tigrigna (Etiopia)',
+        'tg' => 'tadjikeg',
+        'tg_TJ' => 'tadjikeg (Tadjikistan)',
+        'th' => 'thaieg',
+        'th_TH' => 'thaieg (Thailand)',
+        'ti' => 'tigrignaeg',
+        'ti_ER' => 'tigrignaeg (Eritrea)',
+        'ti_ET' => 'tigrignaeg (Etiopia)',
         'tk' => 'turkmeneg',
         'tk_TM' => 'turkmeneg (Turkmenistan)',
         'tl' => 'tagalog',
         'tl_PH' => 'tagalog (Filipinez)',
-        'tn' => 'tswana',
-        'tn_BW' => 'tswana (Botswana)',
-        'tn_ZA' => 'tswana (Suafrika)',
-        'to' => 'tonga',
-        'to_TO' => 'tonga (Tonga)',
+        'tn' => 'tswanaeg',
+        'tn_BW' => 'tswanaeg (Botswana)',
+        'tn_ZA' => 'tswanaeg (Suafrika)',
+        'to' => 'tongaeg',
+        'to_TO' => 'tongaeg (Tonga)',
         'tr' => 'turkeg',
         'tr_CY' => 'turkeg (Kiprenez)',
         'tr_TR' => 'turkeg (Turkia)',
-        'tt' => 'tatar',
-        'tt_RU' => 'tatar (Rusia)',
+        'tt' => 'tatareg',
+        'tt_RU' => 'tatareg (Rusia)',
         'ug' => 'ouigoureg',
         'ug_CN' => 'ouigoureg (Sina)',
         'uk' => 'ukraineg',
         'uk_UA' => 'ukraineg (Ukraina)',
-        'ur' => 'ourdou',
-        'ur_IN' => 'ourdou (India)',
-        'ur_PK' => 'ourdou (Pakistan)',
+        'ur' => 'ourdoueg',
+        'ur_IN' => 'ourdoueg (India)',
+        'ur_PK' => 'ourdoueg (Pakistan)',
         'uz' => 'ouzbekeg',
         'uz_AF' => 'ouzbekeg (Afghanistan)',
         'uz_Arab' => 'ouzbekeg (arabek)',
@@ -638,15 +654,15 @@
         'uz_UZ' => 'ouzbekeg (Ouzbekistan)',
         'vi' => 'vietnameg',
         'vi_VN' => 'vietnameg (Viêt Nam)',
-        'wo' => 'wolof',
-        'wo_SN' => 'wolof (Senegal)',
-        'xh' => 'xhosa',
-        'xh_ZA' => 'xhosa (Suafrika)',
+        'wo' => 'wolofeg',
+        'wo_SN' => 'wolofeg (Senegal)',
+        'xh' => 'xhosaeg',
+        'xh_ZA' => 'xhosaeg (Suafrika)',
         'yi' => 'yiddish',
         'yi_UA' => 'yiddish (Ukraina)',
-        'yo' => 'yorouba',
-        'yo_BJ' => 'yorouba (Benin)',
-        'yo_NG' => 'yorouba (Nigeria)',
+        'yo' => 'yoroubaeg',
+        'yo_BJ' => 'yoroubaeg (Benin)',
+        'yo_NG' => 'yoroubaeg (Nigeria)',
         'za' => 'zhuang',
         'za_CN' => 'zhuang (Sina)',
         'zh' => 'sinaeg',
@@ -655,16 +671,16 @@
         'zh_Hans' => 'sinaeg (eeunaet)',
         'zh_Hans_CN' => 'sinaeg (eeunaet, Sina)',
         'zh_Hans_HK' => 'sinaeg (eeunaet, Hong Kong RMD Sina)',
-        'zh_Hans_MO' => 'sinaeg (eeunaet, Macau RMD Sina)',
+        'zh_Hans_MO' => 'sinaeg (eeunaet, Makao RMD Sina)',
         'zh_Hans_MY' => 'sinaeg (eeunaet, Malaysia)',
-        'zh_Hans_SG' => 'sinaeg (eeunaet, Singapour)',
+        'zh_Hans_SG' => 'sinaeg (eeunaet, Singapoura)',
         'zh_Hant' => 'sinaeg (hengounel)',
         'zh_Hant_HK' => 'sinaeg (hengounel, Hong Kong RMD Sina)',
-        'zh_Hant_MO' => 'sinaeg (hengounel, Macau RMD Sina)',
+        'zh_Hant_MO' => 'sinaeg (hengounel, Makao RMD Sina)',
         'zh_Hant_MY' => 'sinaeg (hengounel, Malaysia)',
         'zh_Hant_TW' => 'sinaeg (hengounel, Taiwan)',
-        'zh_MO' => 'sinaeg (Macau RMD Sina)',
-        'zh_SG' => 'sinaeg (Singapour)',
+        'zh_MO' => 'sinaeg (Makao RMD Sina)',
+        'zh_SG' => 'sinaeg (Singapoura)',
         'zh_TW' => 'sinaeg (Taiwan)',
         'zu' => 'zouloueg',
         'zu_ZA' => 'zouloueg (Suafrika)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bs_Cyrl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bs_Cyrl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bs_Cyrl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bs_Cyrl.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'азербејџански (ћирилица, Азербејџан)',
         'az_Latn' => 'азербејџански (латиница)',
         'az_Latn_AZ' => 'азербејџански (латиница, Азербејџан)',
+        'ba' => 'башкир',
+        'ba_RU' => 'башкир (Русија)',
         'be' => 'бјелоруски',
         'be_BY' => 'бјелоруски (Бјелорусија)',
         'bg' => 'бугарски',
@@ -125,6 +127,7 @@
         'en_DE' => 'енглески (Њемачка)',
         'en_DK' => 'енглески (Данска)',
         'en_DM' => 'енглески (Доминика)',
+        'en_EE' => 'енглески (Естонија)',
         'en_ER' => 'енглески (Еритреја)',
         'en_ES' => 'енглески (Шпанија)',
         'en_FI' => 'енглески (Финска)',
@@ -134,6 +137,7 @@
         'en_FR' => 'енглески (Француска)',
         'en_GB' => 'енглески (Уједињено Краљевство)',
         'en_GD' => 'енглески (Гренада)',
+        'en_GE' => 'енглески (Грузија)',
         'en_GG' => 'енглески (Гернзи)',
         'en_GH' => 'енглески (Гана)',
         'en_GI' => 'енглески (Гибралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'енглески (Италија)',
         'en_JE' => 'енглески (Џерзи)',
         'en_JM' => 'енглески (Јамајка)',
+        'en_JP' => 'енглески (Јапан)',
         'en_KE' => 'енглески (Кенија)',
         'en_KI' => 'енглески (Кирибати)',
         'en_KN' => 'енглески (Свети Китс и Невис)',
@@ -159,6 +164,8 @@
         'en_LC' => 'енглески (Света Луција)',
         'en_LR' => 'енглески (Либерија)',
         'en_LS' => 'енглески (Лесото)',
+        'en_LT' => 'енглески (Литванија)',
+        'en_LV' => 'енглески (Латвија)',
         'en_MG' => 'енглески (Мадагаскар)',
         'en_MH' => 'енглески (Маршалска Острва)',
         'en_MO' => 'енглески (Макао С. А. Р.)',
@@ -205,6 +212,7 @@
         'en_TT' => 'енглески (Тринидад и Тобаго)',
         'en_TV' => 'енглески (Тувалу)',
         'en_TZ' => 'енглески (Танзанија)',
+        'en_UA' => 'енглески (Украјина)',
         'en_UG' => 'енглески (Уганда)',
         'en_UM' => 'енглески (Мања удаљена острва САД)',
         'en_US' => 'енглески (Сједињене Америчке Државе)',
@@ -391,6 +399,8 @@
         'ki' => 'кикују',
         'ki_KE' => 'кикују (Кенија)',
         'kk' => 'казашки',
+        'kk_Arab' => 'казашки (арапско писмо)',
+        'kk_Arab_CN' => 'казашки (арапско писмо, Кина)',
         'kk_Cyrl' => 'казашки (ћирилица)',
         'kk_Cyrl_KZ' => 'казашки (ћирилица, Казахстан)',
         'kk_KZ' => 'казашки (Казахстан)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'кашмирски (деванагари, Индија)',
         'ks_IN' => 'кашмирски (Индија)',
         'ku' => 'курдски',
+        'ku_Latn' => 'курдски (латиница)',
+        'ku_Latn_IQ' => 'курдски (латиница, Ирак)',
+        'ku_Latn_SY' => 'курдски (латиница, Сирија)',
+        'ku_Latn_TR' => 'курдски (латиница, Турска)',
+        'ku_SY' => 'курдски (Сирија)',
         'ku_TR' => 'курдски (Турска)',
         'kw' => 'корнишки',
         'kw_GB' => 'корнишки (Уједињено Краљевство)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/bs.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbejdžanski (ćirilica, Azerbejdžan)',
         'az_Latn' => 'azerbejdžanski (latinica)',
         'az_Latn_AZ' => 'azerbejdžanski (latinica, Azerbejdžan)',
+        'ba' => 'baškirski',
+        'ba_RU' => 'baškirski (Rusija)',
         'be' => 'bjeloruski',
         'be_BY' => 'bjeloruski (Bjelorusija)',
         'bg' => 'bugarski',
@@ -125,6 +127,7 @@
         'en_DE' => 'engleski (Njemačka)',
         'en_DK' => 'engleski (Danska)',
         'en_DM' => 'engleski (Dominika)',
+        'en_EE' => 'engleski (Estonija)',
         'en_ER' => 'engleski (Eritreja)',
         'en_ES' => 'engleski (Španija)',
         'en_FI' => 'engleski (Finska)',
@@ -134,6 +137,7 @@
         'en_FR' => 'engleski (Francuska)',
         'en_GB' => 'engleski (Ujedinjeno Kraljevstvo)',
         'en_GD' => 'engleski (Grenada)',
+        'en_GE' => 'engleski (Gruzija)',
         'en_GG' => 'engleski (Guernsey)',
         'en_GH' => 'engleski (Gana)',
         'en_GI' => 'engleski (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'engleski (Italija)',
         'en_JE' => 'engleski (Jersey)',
         'en_JM' => 'engleski (Jamajka)',
+        'en_JP' => 'engleski (Japan)',
         'en_KE' => 'engleski (Kenija)',
         'en_KI' => 'engleski (Kiribati)',
         'en_KN' => 'engleski (Sveti Kits i Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'engleski (Sveta Lucija)',
         'en_LR' => 'engleski (Liberija)',
         'en_LS' => 'engleski (Lesoto)',
+        'en_LT' => 'engleski (Litvanija)',
+        'en_LV' => 'engleski (Latvija)',
         'en_MG' => 'engleski (Madagaskar)',
         'en_MH' => 'engleski (Maršalova ostrva)',
         'en_MO' => 'engleski (Makao [SAR Kina])',
@@ -205,6 +212,7 @@
         'en_TT' => 'engleski (Trinidad i Tobago)',
         'en_TV' => 'engleski (Tuvalu)',
         'en_TZ' => 'engleski (Tanzanija)',
+        'en_UA' => 'engleski (Ukrajina)',
         'en_UG' => 'engleski (Uganda)',
         'en_UM' => 'engleski (Američka Vanjska Ostrva)',
         'en_US' => 'engleski (Sjedinjene Države)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuju',
         'ki_KE' => 'kikuju (Kenija)',
         'kk' => 'kazaški',
+        'kk_Arab' => 'kazaški (arapsko pismo)',
+        'kk_Arab_CN' => 'kazaški (arapsko pismo, Kina)',
         'kk_Cyrl' => 'kazaški (ćirilica)',
         'kk_Cyrl_KZ' => 'kazaški (ćirilica, Kazahstan)',
         'kk_KZ' => 'kazaški (Kazahstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kašmirski (pismo devanagari, Indija)',
         'ks_IN' => 'kašmirski (Indija)',
         'ku' => 'kurdski',
+        'ku_Latn' => 'kurdski (latinica)',
+        'ku_Latn_IQ' => 'kurdski (latinica, Irak)',
+        'ku_Latn_SY' => 'kurdski (latinica, Sirija)',
+        'ku_Latn_TR' => 'kurdski (latinica, Turska)',
+        'ku_SY' => 'kurdski (Sirija)',
         'ku_TR' => 'kurdski (Turska)',
         'kw' => 'kornski',
         'kw_GB' => 'kornski (Ujedinjeno Kraljevstvo)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ca.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ca.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ca.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ca.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaidjanès (ciríl·lic, Azerbaidjan)',
         'az_Latn' => 'azerbaidjanès (llatí)',
         'az_Latn_AZ' => 'azerbaidjanès (llatí, Azerbaidjan)',
+        'ba' => 'baixkir',
+        'ba_RU' => 'baixkir (Rússia)',
         'be' => 'belarús',
         'be_BY' => 'belarús (Belarús)',
         'bg' => 'búlgar',
@@ -125,6 +127,7 @@
         'en_DE' => 'anglès (Alemanya)',
         'en_DK' => 'anglès (Dinamarca)',
         'en_DM' => 'anglès (Dominica)',
+        'en_EE' => 'anglès (Estònia)',
         'en_ER' => 'anglès (Eritrea)',
         'en_ES' => 'anglès (Espanya)',
         'en_FI' => 'anglès (Finlàndia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'anglès (França)',
         'en_GB' => 'anglès (Regne Unit)',
         'en_GD' => 'anglès (Grenada)',
+        'en_GE' => 'anglès (Geòrgia)',
         'en_GG' => 'anglès (Guernsey)',
         'en_GH' => 'anglès (Ghana)',
         'en_GI' => 'anglès (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'anglès (Itàlia)',
         'en_JE' => 'anglès (Jersey)',
         'en_JM' => 'anglès (Jamaica)',
+        'en_JP' => 'anglès (Japó)',
         'en_KE' => 'anglès (Kenya)',
         'en_KI' => 'anglès (Kiribati)',
         'en_KN' => 'anglès (Saint Kitts i Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'anglès (Saint Lucia)',
         'en_LR' => 'anglès (Libèria)',
         'en_LS' => 'anglès (Lesotho)',
+        'en_LT' => 'anglès (Lituània)',
+        'en_LV' => 'anglès (Letònia)',
         'en_MG' => 'anglès (Madagascar)',
         'en_MH' => 'anglès (Illes Marshall)',
         'en_MO' => 'anglès (Macau [RAE Xina])',
@@ -205,6 +212,7 @@
         'en_TT' => 'anglès (Trinidad i Tobago)',
         'en_TV' => 'anglès (Tuvalu)',
         'en_TZ' => 'anglès (Tanzània)',
+        'en_UA' => 'anglès (Ucraïna)',
         'en_UG' => 'anglès (Uganda)',
         'en_UM' => 'anglès (Illes Menors Allunyades dels Estats Units)',
         'en_US' => 'anglès (Estats Units)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuiu',
         'ki_KE' => 'kikuiu (Kenya)',
         'kk' => 'kazakh',
+        'kk_Arab' => 'kazakh (àrab)',
+        'kk_Arab_CN' => 'kazakh (àrab, Xina)',
         'kk_Cyrl' => 'kazakh (ciríl·lic)',
         'kk_Cyrl_KZ' => 'kazakh (ciríl·lic, Kazakhstan)',
         'kk_KZ' => 'kazakh (Kazakhstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'caixmiri (devanagari, Índia)',
         'ks_IN' => 'caixmiri (Índia)',
         'ku' => 'kurd',
+        'ku_Latn' => 'kurd (llatí)',
+        'ku_Latn_IQ' => 'kurd (llatí, Iraq)',
+        'ku_Latn_SY' => 'kurd (llatí, Síria)',
+        'ku_Latn_TR' => 'kurd (llatí, Turquia)',
+        'ku_SY' => 'kurd (Síria)',
         'ku_TR' => 'kurd (Turquia)',
         'kw' => 'còrnic',
         'kw_GB' => 'còrnic (Regne Unit)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ce.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ce.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ce.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ce.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'азербайджанийн (кириллица, Азербайджан)',
         'az_Latn' => 'азербайджанийн (латинан)',
         'az_Latn_AZ' => 'азербайджанийн (латинан, Азербайджан)',
+        'ba' => 'башкирийн',
+        'ba_RU' => 'башкирийн (Росси)',
         'be' => 'белорусийн',
         'be_BY' => 'белорусийн (Белорусси)',
         'bg' => 'болгарийн',
@@ -125,6 +127,7 @@
         'en_DE' => 'ингалсан (Германи)',
         'en_DK' => 'ингалсан (Дани)',
         'en_DM' => 'ингалсан (Доминика)',
+        'en_EE' => 'ингалсан (Эстони)',
         'en_ER' => 'ингалсан (Эритрей)',
         'en_ES' => 'ингалсан (Испани)',
         'en_FI' => 'ингалсан (Финлянди)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ингалсан (Франци)',
         'en_GB' => 'ингалсан (Йоккха Британи)',
         'en_GD' => 'ингалсан (Гренада)',
+        'en_GE' => 'ингалсан (Гуьржийчоь)',
         'en_GG' => 'ингалсан (Гернси)',
         'en_GH' => 'ингалсан (Гана)',
         'en_GI' => 'ингалсан (Гибралтар)',
@@ -151,6 +155,7 @@
         'en_IT' => 'ингалсан (Итали)',
         'en_JE' => 'ингалсан (Джерси)',
         'en_JM' => 'ингалсан (Ямайка)',
+        'en_JP' => 'ингалсан (Япони)',
         'en_KE' => 'ингалсан (Кени)',
         'en_KI' => 'ингалсан (Кирибати)',
         'en_KN' => 'ингалсан (Сент-Китс а, Невис а)',
@@ -158,6 +163,8 @@
         'en_LC' => 'ингалсан (Сент-Люси)',
         'en_LR' => 'ингалсан (Либери)',
         'en_LS' => 'ингалсан (Лесото)',
+        'en_LT' => 'ингалсан (Литва)',
+        'en_LV' => 'ингалсан (Латви)',
         'en_MG' => 'ингалсан (Мадагаскар)',
         'en_MH' => 'ингалсан (Маршаллан гӀайренаш)',
         'en_MO' => 'ингалсан (Макао [ша-къаьстина кӀошт])',
@@ -204,6 +211,7 @@
         'en_TT' => 'ингалсан (Тринидад а, Тобаго а)',
         'en_TV' => 'ингалсан (Тувалу)',
         'en_TZ' => 'ингалсан (Танзани)',
+        'en_UA' => 'ингалсан (Украина)',
         'en_UG' => 'ингалсан (Уганда)',
         'en_UM' => 'ингалсан (АЦШн арахьара кегийн гӀайренаш)',
         'en_US' => 'ингалсан (Цхьанатоьхна Штаташ)',
@@ -375,6 +383,8 @@
         'ki' => 'кикуйю',
         'ki_KE' => 'кикуйю (Кени)',
         'kk' => 'кхазакхийн',
+        'kk_Arab' => 'кхазакхийн (Ӏаьрбийн)',
+        'kk_Arab_CN' => 'кхазакхийн (Ӏаьрбийн, Цийчоь)',
         'kk_Cyrl' => 'кхазакхийн (кириллица)',
         'kk_Cyrl_KZ' => 'кхазакхийн (кириллица, Кхазакхстан)',
         'kk_KZ' => 'кхазакхийн (Кхазакхстан)',
@@ -395,6 +405,11 @@
         'ks_Deva_IN' => 'кашмири (деванагари, ХӀинди)',
         'ks_IN' => 'кашмири (ХӀинди)',
         'ku' => 'курдийн',
+        'ku_Latn' => 'курдийн (латинан)',
+        'ku_Latn_IQ' => 'курдийн (латинан, Ӏиракъ)',
+        'ku_Latn_SY' => 'курдийн (латинан, Шема)',
+        'ku_Latn_TR' => 'курдийн (латинан, Туркойчоь)',
+        'ku_SY' => 'курдийн (Шема)',
         'ku_TR' => 'курдийн (Туркойчоь)',
         'kw' => 'корнуоллийн',
         'kw_GB' => 'корнуоллийн (Йоккха Британи)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cs.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'ázerbájdžánština (cyrilice, Ázerbájdžán)',
         'az_Latn' => 'ázerbájdžánština (latinka)',
         'az_Latn_AZ' => 'ázerbájdžánština (latinka, Ázerbájdžán)',
+        'ba' => 'baškirština',
+        'ba_RU' => 'baškirština (Rusko)',
         'be' => 'běloruština',
         'be_BY' => 'běloruština (Bělorusko)',
         'bg' => 'bulharština',
@@ -125,6 +127,7 @@
         'en_DE' => 'angličtina (Německo)',
         'en_DK' => 'angličtina (Dánsko)',
         'en_DM' => 'angličtina (Dominika)',
+        'en_EE' => 'angličtina (Estonsko)',
         'en_ER' => 'angličtina (Eritrea)',
         'en_ES' => 'angličtina (Španělsko)',
         'en_FI' => 'angličtina (Finsko)',
@@ -134,6 +137,7 @@
         'en_FR' => 'angličtina (Francie)',
         'en_GB' => 'angličtina (Spojené království)',
         'en_GD' => 'angličtina (Grenada)',
+        'en_GE' => 'angličtina (Gruzie)',
         'en_GG' => 'angličtina (Guernsey)',
         'en_GH' => 'angličtina (Ghana)',
         'en_GI' => 'angličtina (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'angličtina (Itálie)',
         'en_JE' => 'angličtina (Jersey)',
         'en_JM' => 'angličtina (Jamajka)',
+        'en_JP' => 'angličtina (Japonsko)',
         'en_KE' => 'angličtina (Keňa)',
         'en_KI' => 'angličtina (Kiribati)',
         'en_KN' => 'angličtina (Svatý Kryštof a Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'angličtina (Svatá Lucie)',
         'en_LR' => 'angličtina (Libérie)',
         'en_LS' => 'angličtina (Lesotho)',
+        'en_LT' => 'angličtina (Litva)',
+        'en_LV' => 'angličtina (Lotyšsko)',
         'en_MG' => 'angličtina (Madagaskar)',
         'en_MH' => 'angličtina (Marshallovy ostrovy)',
         'en_MO' => 'angličtina (Macao – ZAO Číny)',
@@ -205,6 +212,7 @@
         'en_TT' => 'angličtina (Trinidad a Tobago)',
         'en_TV' => 'angličtina (Tuvalu)',
         'en_TZ' => 'angličtina (Tanzanie)',
+        'en_UA' => 'angličtina (Ukrajina)',
         'en_UG' => 'angličtina (Uganda)',
         'en_UM' => 'angličtina (Menší odlehlé ostrovy USA)',
         'en_US' => 'angličtina (Spojené státy)',
@@ -391,6 +399,8 @@
         'ki' => 'kikujština',
         'ki_KE' => 'kikujština (Keňa)',
         'kk' => 'kazaština',
+        'kk_Arab' => 'kazaština (arabské)',
+        'kk_Arab_CN' => 'kazaština (arabské, Čína)',
         'kk_Cyrl' => 'kazaština (cyrilice)',
         'kk_Cyrl_KZ' => 'kazaština (cyrilice, Kazachstán)',
         'kk_KZ' => 'kazaština (Kazachstán)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kašmírština (dévanágarí, Indie)',
         'ks_IN' => 'kašmírština (Indie)',
         'ku' => 'kurdština',
+        'ku_Latn' => 'kurdština (latinka)',
+        'ku_Latn_IQ' => 'kurdština (latinka, Irák)',
+        'ku_Latn_SY' => 'kurdština (latinka, Sýrie)',
+        'ku_Latn_TR' => 'kurdština (latinka, Turecko)',
+        'ku_SY' => 'kurdština (Sýrie)',
         'ku_TR' => 'kurdština (Turecko)',
         'kw' => 'kornština',
         'kw_GB' => 'kornština (Spojené království)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cv.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,307 +2,683 @@
 
 return [
     'Names' => [
-        'ar' => 'арап',
-        'ar_001' => 'арап (тӗнче)',
-        'ar_AE' => 'арап (Арапсен Пӗрлешӳллӗ Эмирачӗ)',
-        'ar_BH' => 'арап (Бахрейн)',
-        'ar_DJ' => 'арап (Джибути)',
-        'ar_DZ' => 'арап (Алжир)',
-        'ar_EG' => 'арап (Египет)',
-        'ar_EH' => 'арап (Анӑҫ Сахара)',
-        'ar_ER' => 'арап (Эритрей)',
-        'ar_IL' => 'арап (Израиль)',
-        'ar_IQ' => 'арап (Ирак)',
-        'ar_JO' => 'арап (Иордани)',
-        'ar_KM' => 'арап (Комор утравӗсем)',
-        'ar_KW' => 'арап (Кувейт)',
-        'ar_LB' => 'арап (Ливан)',
-        'ar_LY' => 'арап (Ливи)',
-        'ar_MA' => 'арап (Марокко)',
-        'ar_MR' => 'арап (Мавритани)',
-        'ar_OM' => 'арап (Оман)',
-        'ar_PS' => 'арап (Палестинӑн территорийӗсем)',
-        'ar_QA' => 'арап (Катар)',
-        'ar_SA' => 'арап (Сауд Аравийӗ)',
-        'ar_SD' => 'арап (Судан)',
-        'ar_SO' => 'арап (Сомали)',
-        'ar_SS' => 'арап (Кӑнтӑр Судан)',
-        'ar_SY' => 'арап (Сири)',
-        'ar_TD' => 'арап (Чад)',
-        'ar_TN' => 'арап (Тунис)',
-        'ar_YE' => 'арап (Йемен)',
-        'bn' => 'бенгал',
-        'bn_BD' => 'бенгал (Бангладеш)',
-        'bn_IN' => 'бенгал (Инди)',
-        'cv' => 'чӑваш',
-        'cv_RU' => 'чӑваш (Раҫҫей)',
-        'de' => 'нимӗҫ',
-        'de_AT' => 'нимӗҫ (Австри)',
-        'de_BE' => 'нимӗҫ (Бельги)',
-        'de_CH' => 'нимӗҫ (Швейцари)',
-        'de_DE' => 'нимӗҫ (Германи)',
-        'de_IT' => 'нимӗҫ (Итали)',
-        'de_LI' => 'нимӗҫ (Лихтенштейн)',
-        'de_LU' => 'нимӗҫ (Люксембург)',
-        'en' => 'акӑлчан',
-        'en_001' => 'акӑлчан (тӗнче)',
-        'en_150' => 'акӑлчан (Европа)',
-        'en_AE' => 'акӑлчан (Арапсен Пӗрлешӳллӗ Эмирачӗ)',
-        'en_AG' => 'акӑлчан (Антигуа тата Барбуда)',
-        'en_AI' => 'акӑлчан (Ангилья)',
-        'en_AS' => 'акӑлчан (Америка Самоа)',
-        'en_AT' => 'акӑлчан (Австри)',
-        'en_AU' => 'акӑлчан (Австрали)',
-        'en_BB' => 'акӑлчан (Барбадос)',
-        'en_BE' => 'акӑлчан (Бельги)',
-        'en_BI' => 'акӑлчан (Бурунди)',
-        'en_BM' => 'акӑлчан (Бермуд утравӗсем)',
-        'en_BS' => 'акӑлчан (Пахам утравӗсем)',
-        'en_BW' => 'акӑлчан (Ботсвана)',
-        'en_BZ' => 'акӑлчан (Белиз)',
-        'en_CA' => 'акӑлчан (Канада)',
-        'en_CC' => 'акӑлчан (Кокос утравӗсем)',
-        'en_CH' => 'акӑлчан (Швейцари)',
-        'en_CK' => 'акӑлчан (Кук утравӗсем)',
-        'en_CM' => 'акӑлчан (Камерун)',
-        'en_CX' => 'акӑлчан (Раштав утравӗ)',
-        'en_CY' => 'акӑлчан (Кипр)',
-        'en_CZ' => 'акӑлчан (Чехи)',
-        'en_DE' => 'акӑлчан (Германи)',
-        'en_DK' => 'акӑлчан (Дани)',
-        'en_DM' => 'акӑлчан (Доминика)',
-        'en_ER' => 'акӑлчан (Эритрей)',
-        'en_ES' => 'акӑлчан (Испани)',
-        'en_FI' => 'акӑлчан (Финлянди)',
-        'en_FJ' => 'акӑлчан (Фиджи)',
-        'en_FK' => 'акӑлчан (Фолкленд утравӗсем)',
-        'en_FM' => 'акӑлчан (Микронези)',
-        'en_FR' => 'акӑлчан (Франци)',
-        'en_GB' => 'акӑлчан (Аслӑ Британи)',
-        'en_GD' => 'акӑлчан (Гренада)',
-        'en_GG' => 'акӑлчан (Гернси)',
-        'en_GH' => 'акӑлчан (Гана)',
-        'en_GI' => 'акӑлчан (Гибралтар)',
-        'en_GM' => 'акӑлчан (Гамби)',
-        'en_GS' => 'акӑлчан (Кӑнтӑр Георги тата Сандвичев утравӗсем)',
-        'en_GU' => 'акӑлчан (Гуам)',
-        'en_GY' => 'акӑлчан (Гайана)',
-        'en_HK' => 'акӑлчан (Гонконг [САР])',
-        'en_HU' => 'акӑлчан (Венгри)',
-        'en_ID' => 'акӑлчан (Индонези)',
-        'en_IE' => 'акӑлчан (Ирланди)',
-        'en_IL' => 'акӑлчан (Израиль)',
-        'en_IM' => 'акӑлчан (Мэн утравӗ)',
-        'en_IN' => 'акӑлчан (Инди)',
-        'en_IT' => 'акӑлчан (Итали)',
-        'en_JE' => 'акӑлчан (Джерси)',
-        'en_JM' => 'акӑлчан (Ямайка)',
-        'en_KE' => 'акӑлчан (Кени)',
-        'en_KI' => 'акӑлчан (Кирибати)',
-        'en_KN' => 'акӑлчан (Сент-Китс тата Невис)',
-        'en_KY' => 'акӑлчан (Кайман утравӗсем)',
-        'en_LC' => 'акӑлчан (Сент-Люсия)',
-        'en_LR' => 'акӑлчан (Либери)',
-        'en_LS' => 'акӑлчан (Лесото)',
-        'en_MG' => 'акӑлчан (Мадагаскар)',
-        'en_MH' => 'акӑлчан (Маршаллов утравӗсем)',
-        'en_MO' => 'акӑлчан (Макао [САР])',
-        'en_MP' => 'акӑлчан (Ҫурҫӗр Мариан утравӗсем)',
-        'en_MS' => 'акӑлчан (Монтсеррат)',
-        'en_MT' => 'акӑлчан (Мальта)',
-        'en_MU' => 'акӑлчан (Маврики)',
-        'en_MV' => 'акӑлчан (Мальдивсем)',
-        'en_MW' => 'акӑлчан (Малави)',
-        'en_MY' => 'акӑлчан (Малайзи)',
-        'en_NA' => 'акӑлчан (Намиби)',
-        'en_NF' => 'акӑлчан (Норфолк утравӗ)',
-        'en_NG' => 'акӑлчан (Нигери)',
-        'en_NL' => 'акӑлчан (Нидерланд)',
-        'en_NO' => 'акӑлчан (Норвеги)',
-        'en_NR' => 'акӑлчан (Науру)',
-        'en_NU' => 'акӑлчан (Ниуэ)',
-        'en_NZ' => 'акӑлчан (Ҫӗнӗ Зеланди)',
-        'en_PG' => 'акӑлчан (Папуа — Ҫӗнӗ Гвиней)',
-        'en_PH' => 'акӑлчан (Филиппинсем)',
-        'en_PK' => 'акӑлчан (Пакистан)',
-        'en_PL' => 'акӑлчан (Польша)',
-        'en_PN' => 'акӑлчан (Питкэрн утравӗсем)',
-        'en_PR' => 'акӑлчан (Пуэрто-Рико)',
-        'en_PT' => 'акӑлчан (Португали)',
-        'en_PW' => 'акӑлчан (Палау)',
-        'en_RO' => 'акӑлчан (Румыни)',
-        'en_RW' => 'акӑлчан (Руанда)',
-        'en_SB' => 'акӑлчан (Соломон утравӗсем)',
-        'en_SC' => 'акӑлчан (Сейшел утравӗсем)',
-        'en_SD' => 'акӑлчан (Судан)',
-        'en_SE' => 'акӑлчан (Швеци)',
-        'en_SG' => 'акӑлчан (Сингапур)',
-        'en_SH' => 'акӑлчан (Сӑваплӑ Елена утравӗ)',
-        'en_SI' => 'акӑлчан (Словени)',
-        'en_SK' => 'акӑлчан (Словаки)',
-        'en_SL' => 'акӑлчан (Сьерра-Леоне)',
-        'en_SS' => 'акӑлчан (Кӑнтӑр Судан)',
-        'en_SX' => 'акӑлчан (Синт-Мартен)',
-        'en_SZ' => 'акӑлчан (Эсватини)',
-        'en_TC' => 'акӑлчан (Тёркс тата Кайкос утравӗсем)',
-        'en_TK' => 'акӑлчан (Токелау)',
-        'en_TO' => 'акӑлчан (Тонга)',
-        'en_TT' => 'акӑлчан (Тринидад тата Тобаго)',
-        'en_TV' => 'акӑлчан (Тувалу)',
-        'en_TZ' => 'акӑлчан (Танзани)',
-        'en_UG' => 'акӑлчан (Уганда)',
-        'en_UM' => 'акӑлчан (Тулашӗнчи утравӗсем [АПШ])',
-        'en_US' => 'акӑлчан (Пӗрлешӗннӗ Штатсем)',
-        'en_VC' => 'акӑлчан (Сент-Винсент тата Гренадины)',
-        'en_VG' => 'акӑлчан (Британин Виргини утравӗсем)',
-        'en_VI' => 'акӑлчан (Виргини утравӗсем [АПШ])',
-        'en_VU' => 'акӑлчан (Вануату)',
-        'en_WS' => 'акӑлчан (Самоа)',
-        'en_ZA' => 'акӑлчан (Кӑнтӑр Африка Республики)',
-        'en_ZM' => 'акӑлчан (Замби)',
-        'en_ZW' => 'акӑлчан (Зимбабве)',
-        'es' => 'испани',
-        'es_419' => 'испани (Латинла Америка)',
-        'es_AR' => 'испани (Аргентина)',
-        'es_BO' => 'испани (Боливи)',
-        'es_BR' => 'испани (Бразили)',
-        'es_BZ' => 'испани (Белиз)',
-        'es_CL' => 'испани (Чили)',
-        'es_CO' => 'испани (Колумби)',
-        'es_CR' => 'испани (Коста-Рика)',
-        'es_CU' => 'испани (Куба)',
-        'es_DO' => 'испани (Доминикан Республики)',
-        'es_EC' => 'испани (Эквадор)',
-        'es_ES' => 'испани (Испани)',
-        'es_GQ' => 'испани (Экваториаллӑ Гвиней)',
-        'es_GT' => 'испани (Гватемала)',
-        'es_HN' => 'испани (Гондурас)',
-        'es_MX' => 'испани (Мексика)',
-        'es_NI' => 'испани (Никарагуа)',
-        'es_PA' => 'испани (Панама)',
-        'es_PE' => 'испани (Перу)',
-        'es_PH' => 'испани (Филиппинсем)',
-        'es_PR' => 'испани (Пуэрто-Рико)',
-        'es_PY' => 'испани (Парагвай)',
-        'es_SV' => 'испани (Сальвадор)',
-        'es_US' => 'испани (Пӗрлешӗннӗ Штатсем)',
-        'es_UY' => 'испани (Уругвай)',
-        'es_VE' => 'испани (Венесуэла)',
-        'fr' => 'франци',
-        'fr_BE' => 'франци (Бельги)',
-        'fr_BF' => 'франци (Буркина-Фасо)',
-        'fr_BI' => 'франци (Бурунди)',
-        'fr_BJ' => 'франци (Бенин)',
-        'fr_BL' => 'франци (Сен-Бартелеми)',
-        'fr_CA' => 'франци (Канада)',
-        'fr_CD' => 'франци (Конго - Киншаса)',
-        'fr_CF' => 'франци (Тӗп Африка Республики)',
-        'fr_CG' => 'франци (Конго - Браззавиль)',
-        'fr_CH' => 'франци (Швейцари)',
-        'fr_CI' => 'франци (Кот-д’Ивуар)',
-        'fr_CM' => 'франци (Камерун)',
-        'fr_DJ' => 'франци (Джибути)',
-        'fr_DZ' => 'франци (Алжир)',
-        'fr_FR' => 'франци (Франци)',
-        'fr_GA' => 'франци (Габон)',
-        'fr_GF' => 'франци (Франци Гвиана)',
-        'fr_GN' => 'франци (Гвиней)',
-        'fr_GP' => 'франци (Гваделупа)',
-        'fr_GQ' => 'франци (Экваториаллӑ Гвиней)',
-        'fr_HT' => 'франци (Гаити)',
-        'fr_KM' => 'франци (Комор утравӗсем)',
-        'fr_LU' => 'франци (Люксембург)',
-        'fr_MA' => 'франци (Марокко)',
-        'fr_MC' => 'франци (Монако)',
-        'fr_MF' => 'франци (Сен-Мартен)',
-        'fr_MG' => 'франци (Мадагаскар)',
-        'fr_ML' => 'франци (Мали)',
-        'fr_MQ' => 'франци (Мартиника)',
-        'fr_MR' => 'франци (Мавритани)',
-        'fr_MU' => 'франци (Маврики)',
-        'fr_NC' => 'франци (Ҫӗнӗ Каледони)',
-        'fr_NE' => 'франци (Нигер)',
-        'fr_PF' => 'франци (Франци Полинези)',
-        'fr_PM' => 'франци (Сен-Пьер & Микелон)',
-        'fr_RE' => 'франци (Реюньон)',
-        'fr_RW' => 'франци (Руанда)',
-        'fr_SC' => 'франци (Сейшел утравӗсем)',
-        'fr_SN' => 'франци (Сенегал)',
-        'fr_SY' => 'франци (Сири)',
-        'fr_TD' => 'франци (Чад)',
-        'fr_TG' => 'франци (Того)',
-        'fr_TN' => 'франци (Тунис)',
-        'fr_VU' => 'франци (Вануату)',
-        'fr_WF' => 'франци (Уоллис тата Футуна)',
-        'fr_YT' => 'франци (Майотта)',
-        'hi' => 'хинди',
-        'hi_IN' => 'хинди (Инди)',
-        'hi_Latn' => 'хинди (латин)',
-        'hi_Latn_IN' => 'хинди (латин, Инди)',
-        'id' => 'индонези',
-        'id_ID' => 'индонези (Индонези)',
-        'it' => 'итали',
-        'it_CH' => 'итали (Швейцари)',
-        'it_IT' => 'итали (Итали)',
-        'it_SM' => 'итали (Сан-Марино)',
-        'it_VA' => 'итали (Ватикан)',
-        'ja' => 'япони',
-        'ja_JP' => 'япони (Япони)',
-        'ko' => 'корей',
-        'ko_CN' => 'корей (Китай)',
-        'ko_KP' => 'корей (КХДР)',
-        'ko_KR' => 'корей (Корей Республики)',
-        'nl' => 'голланди',
-        'nl_AW' => 'голланди (Аруба)',
-        'nl_BE' => 'голланди (Бельги)',
-        'nl_BQ' => 'голланди (Бонэйр, Синт-Эстатиус тата Саба)',
-        'nl_CW' => 'голланди (Кюрасао)',
-        'nl_NL' => 'голланди (Нидерланд)',
-        'nl_SR' => 'голланди (Суринам)',
-        'nl_SX' => 'голланди (Синт-Мартен)',
-        'pl' => 'поляк',
-        'pl_PL' => 'поляк (Польша)',
-        'pt' => 'португали',
-        'pt_AO' => 'португали (Ангола)',
-        'pt_BR' => 'португали (Бразили)',
-        'pt_CH' => 'португали (Швейцари)',
-        'pt_CV' => 'португали (Кабо-Верде)',
-        'pt_GQ' => 'португали (Экваториаллӑ Гвиней)',
-        'pt_GW' => 'португали (Гвиней-Бисау)',
-        'pt_LU' => 'португали (Люксембург)',
-        'pt_MO' => 'португали (Макао [САР])',
-        'pt_MZ' => 'португали (Мозамбик)',
-        'pt_PT' => 'португали (Португали)',
-        'pt_ST' => 'португали (Сан-Томе тата Принсипи)',
-        'pt_TL' => 'португали (Хӗвелтухӑҫ Тимор)',
-        'ru' => 'вырӑс',
-        'ru_BY' => 'вырӑс (Беларуҫ)',
-        'ru_KG' => 'вырӑс (Киргизи)',
-        'ru_KZ' => 'вырӑс (Казахстан)',
-        'ru_MD' => 'вырӑс (Молдова)',
-        'ru_RU' => 'вырӑс (Раҫҫей)',
-        'ru_UA' => 'вырӑс (Украина)',
-        'th' => 'тай',
-        'th_TH' => 'тай (Таиланд)',
-        'tr' => 'турккӑ',
-        'tr_CY' => 'турккӑ (Кипр)',
-        'tr_TR' => 'турккӑ (Турци)',
-        'zh' => 'китай',
-        'zh_CN' => 'китай (Китай)',
-        'zh_HK' => 'китай (Гонконг [САР])',
-        'zh_Hans' => 'китай (ҫӑмӑллатнӑн китай)',
-        'zh_Hans_CN' => 'китай (ҫӑмӑллатнӑн китай, Китай)',
-        'zh_Hans_HK' => 'китай (ҫӑмӑллатнӑн китай, Гонконг [САР])',
-        'zh_Hans_MO' => 'китай (ҫӑмӑллатнӑн китай, Макао [САР])',
-        'zh_Hans_MY' => 'китай (ҫӑмӑллатнӑн китай, Малайзи)',
-        'zh_Hans_SG' => 'китай (ҫӑмӑллатнӑн китай, Сингапур)',
-        'zh_Hant' => 'китай (традициллӗн китай)',
-        'zh_Hant_HK' => 'китай (традициллӗн китай, Гонконг [САР])',
-        'zh_Hant_MO' => 'китай (традициллӗн китай, Макао [САР])',
-        'zh_Hant_MY' => 'китай (традициллӗн китай, Малайзи)',
-        'zh_Hant_TW' => 'китай (традициллӗн китай, Тайвань)',
-        'zh_MO' => 'китай (Макао [САР])',
-        'zh_SG' => 'китай (Сингапур)',
-        'zh_TW' => 'китай (Тайвань)',
+        'af' => 'африкаанс чӗлхи',
+        'af_NA' => 'африкаанс чӗлхи (Намиби)',
+        'af_ZA' => 'африкаанс чӗлхи (Кӑнтӑр Африка Республики)',
+        'ak' => 'акан чӗлхи',
+        'ak_GH' => 'акан чӗлхи (Гана)',
+        'am' => 'амхар чӗлхи',
+        'am_ET' => 'амхар чӗлхи (Эфиопи)',
+        'ar' => 'араб чӗлхи',
+        'ar_001' => 'араб чӗлхи (тӗнче)',
+        'ar_AE' => 'араб чӗлхи (Пӗрлешнӗ Араб Эмирачӗсем)',
+        'ar_BH' => 'араб чӗлхи (Бахрейн)',
+        'ar_DJ' => 'араб чӗлхи (Джибути)',
+        'ar_DZ' => 'араб чӗлхи (Алжир)',
+        'ar_EG' => 'араб чӗлхи (Египет)',
+        'ar_EH' => 'араб чӗлхи (Анӑҫ Сахара)',
+        'ar_ER' => 'араб чӗлхи (Эритрей)',
+        'ar_IL' => 'араб чӗлхи (Израиль)',
+        'ar_IQ' => 'араб чӗлхи (Ирак)',
+        'ar_JO' => 'араб чӗлхи (Иордани)',
+        'ar_KM' => 'араб чӗлхи (Комор утравӗсем)',
+        'ar_KW' => 'араб чӗлхи (Кувейт)',
+        'ar_LB' => 'араб чӗлхи (Ливан)',
+        'ar_LY' => 'араб чӗлхи (Ливи)',
+        'ar_MA' => 'араб чӗлхи (Марокко)',
+        'ar_MR' => 'араб чӗлхи (Мавритани)',
+        'ar_OM' => 'араб чӗлхи (Оман)',
+        'ar_PS' => 'араб чӗлхи (Палестина территорийӗсем)',
+        'ar_QA' => 'араб чӗлхи (Катар)',
+        'ar_SA' => 'араб чӗлхи (Сауд Аравийӗ)',
+        'ar_SD' => 'араб чӗлхи (Судан)',
+        'ar_SO' => 'араб чӗлхи (Сомали)',
+        'ar_SS' => 'араб чӗлхи (Кӑнтӑр Судан)',
+        'ar_SY' => 'араб чӗлхи (Сири)',
+        'ar_TD' => 'араб чӗлхи (Чад)',
+        'ar_TN' => 'араб чӗлхи (Тунис)',
+        'ar_YE' => 'араб чӗлхи (Йемен)',
+        'as' => 'ассам чӗлхи',
+        'as_IN' => 'ассам чӗлхи (Инди)',
+        'az' => 'азербайджан чӗлхи',
+        'az_AZ' => 'азербайджан чӗлхи (Азербайджан)',
+        'az_Cyrl' => 'азербайджан чӗлхи (кирилл ҫырулӑхӗ)',
+        'az_Cyrl_AZ' => 'азербайджан чӗлхи (кирилл ҫырулӑхӗ, Азербайджан)',
+        'az_Latn' => 'азербайджан чӗлхи (латин ҫырулӑхӗ)',
+        'az_Latn_AZ' => 'азербайджан чӗлхи (латин ҫырулӑхӗ, Азербайджан)',
+        'ba' => 'пушкӑрт чӗлхи',
+        'ba_RU' => 'пушкӑрт чӗлхи (Раҫҫей)',
+        'be' => 'беларус чӗлхи',
+        'be_BY' => 'беларус чӗлхи (Беларусь)',
+        'bg' => 'болгар чӗлхи',
+        'bg_BG' => 'болгар чӗлхи (Болгари)',
+        'bm' => 'бамбара чӗлхи',
+        'bm_ML' => 'бамбара чӗлхи (Мали)',
+        'bn' => 'бенгал чӗлхи',
+        'bn_BD' => 'бенгал чӗлхи (Бангладеш)',
+        'bn_IN' => 'бенгал чӗлхи (Инди)',
+        'bo' => 'тибет чӗлхи',
+        'bo_CN' => 'тибет чӗлхи (Китай)',
+        'bo_IN' => 'тибет чӗлхи (Инди)',
+        'br' => 'бретон чӗлхи',
+        'br_FR' => 'бретон чӗлхи (Франци)',
+        'bs' => 'босни чӗлхи',
+        'bs_BA' => 'босни чӗлхи (Боснипе Герцеговина)',
+        'bs_Cyrl' => 'босни чӗлхи (кирилл ҫырулӑхӗ)',
+        'bs_Cyrl_BA' => 'босни чӗлхи (кирилл ҫырулӑхӗ, Боснипе Герцеговина)',
+        'bs_Latn' => 'босни чӗлхи (латин ҫырулӑхӗ)',
+        'bs_Latn_BA' => 'босни чӗлхи (латин ҫырулӑхӗ, Боснипе Герцеговина)',
+        'ca' => 'каталан чӗлхи',
+        'ca_AD' => 'каталан чӗлхи (Андорра)',
+        'ca_ES' => 'каталан чӗлхи (Испани)',
+        'ca_FR' => 'каталан чӗлхи (Франци)',
+        'ca_IT' => 'каталан чӗлхи (Итали)',
+        'ce' => 'чечен чӗлхи',
+        'ce_RU' => 'чечен чӗлхи (Раҫҫей)',
+        'cs' => 'чех чӗлхи',
+        'cs_CZ' => 'чех чӗлхи (Чехи)',
+        'cv' => 'чӑваш чӗлхи',
+        'cv_RU' => 'чӑваш чӗлхи (Раҫҫей)',
+        'cy' => 'валли чӗлхи',
+        'cy_GB' => 'валли чӗлхи (Аслӑ Британи)',
+        'da' => 'датчан чӗлхи',
+        'da_DK' => 'датчан чӗлхи (Дани)',
+        'da_GL' => 'датчан чӗлхи (Гренланди)',
+        'de' => 'нимӗҫ чӗлхи',
+        'de_AT' => 'нимӗҫ чӗлхи (Австри)',
+        'de_BE' => 'нимӗҫ чӗлхи (Бельги)',
+        'de_CH' => 'нимӗҫ чӗлхи (Швейцари)',
+        'de_DE' => 'нимӗҫ чӗлхи (Германи)',
+        'de_IT' => 'нимӗҫ чӗлхи (Итали)',
+        'de_LI' => 'нимӗҫ чӗлхи (Лихтенштейн)',
+        'de_LU' => 'нимӗҫ чӗлхи (Люксембург)',
+        'dz' => 'дзонг-кэ чӗлхи',
+        'dz_BT' => 'дзонг-кэ чӗлхи (Бутан)',
+        'ee' => 'эве чӗлхи',
+        'ee_GH' => 'эве чӗлхи (Гана)',
+        'ee_TG' => 'эве чӗлхи (Того)',
+        'el' => 'грек чӗлхи',
+        'el_CY' => 'грек чӗлхи (Кипр)',
+        'el_GR' => 'грек чӗлхи (Греци)',
+        'en' => 'акӑлчан чӗлхи',
+        'en_001' => 'акӑлчан чӗлхи (тӗнче)',
+        'en_150' => 'акӑлчан чӗлхи (Европа)',
+        'en_AE' => 'акӑлчан чӗлхи (Пӗрлешнӗ Араб Эмирачӗсем)',
+        'en_AG' => 'акӑлчан чӗлхи (Антигуапа Барбуда)',
+        'en_AI' => 'акӑлчан чӗлхи (Ангилья)',
+        'en_AS' => 'акӑлчан чӗлхи (Америка Самойи)',
+        'en_AT' => 'акӑлчан чӗлхи (Австри)',
+        'en_AU' => 'акӑлчан чӗлхи (Австрали)',
+        'en_BB' => 'акӑлчан чӗлхи (Барбадос)',
+        'en_BE' => 'акӑлчан чӗлхи (Бельги)',
+        'en_BI' => 'акӑлчан чӗлхи (Бурунди)',
+        'en_BM' => 'акӑлчан чӗлхи (Бермуд утравӗсем)',
+        'en_BS' => 'акӑлчан чӗлхи (Багама утравӗсем)',
+        'en_BW' => 'акӑлчан чӗлхи (Ботсвана)',
+        'en_BZ' => 'акӑлчан чӗлхи (Белиз)',
+        'en_CA' => 'акӑлчан чӗлхи (Канада)',
+        'en_CC' => 'акӑлчан чӗлхи (Кокос утравӗсем)',
+        'en_CH' => 'акӑлчан чӗлхи (Швейцари)',
+        'en_CK' => 'акӑлчан чӗлхи (Кук утравӗсем)',
+        'en_CM' => 'акӑлчан чӗлхи (Камерун)',
+        'en_CX' => 'акӑлчан чӗлхи (Раштав утравӗ)',
+        'en_CY' => 'акӑлчан чӗлхи (Кипр)',
+        'en_CZ' => 'акӑлчан чӗлхи (Чехи)',
+        'en_DE' => 'акӑлчан чӗлхи (Германи)',
+        'en_DK' => 'акӑлчан чӗлхи (Дани)',
+        'en_DM' => 'акӑлчан чӗлхи (Доминика)',
+        'en_EE' => 'акӑлчан чӗлхи (Эстони)',
+        'en_ER' => 'акӑлчан чӗлхи (Эритрей)',
+        'en_ES' => 'акӑлчан чӗлхи (Испани)',
+        'en_FI' => 'акӑлчан чӗлхи (Финлянди)',
+        'en_FJ' => 'акӑлчан чӗлхи (Фиджи)',
+        'en_FK' => 'акӑлчан чӗлхи (Фолкленд утравӗсем)',
+        'en_FM' => 'акӑлчан чӗлхи (Микронези)',
+        'en_FR' => 'акӑлчан чӗлхи (Франци)',
+        'en_GB' => 'акӑлчан чӗлхи (Аслӑ Британи)',
+        'en_GD' => 'акӑлчан чӗлхи (Гренада)',
+        'en_GE' => 'акӑлчан чӗлхи (Грузи)',
+        'en_GG' => 'акӑлчан чӗлхи (Гернси)',
+        'en_GH' => 'акӑлчан чӗлхи (Гана)',
+        'en_GI' => 'акӑлчан чӗлхи (Гибралтар)',
+        'en_GM' => 'акӑлчан чӗлхи (Гамби)',
+        'en_GS' => 'акӑлчан чӗлхи (Кӑнтӑр Георгипе Кӑнтӑр Сандвич утравӗсем)',
+        'en_GU' => 'акӑлчан чӗлхи (Гуам)',
+        'en_GY' => 'акӑлчан чӗлхи (Гайана)',
+        'en_HK' => 'акӑлчан чӗлхи (Гонконг [ЯАР])',
+        'en_HU' => 'акӑлчан чӗлхи (Венгри)',
+        'en_ID' => 'акӑлчан чӗлхи (Индонези)',
+        'en_IE' => 'акӑлчан чӗлхи (Ирланди)',
+        'en_IL' => 'акӑлчан чӗлхи (Израиль)',
+        'en_IM' => 'акӑлчан чӗлхи (Мэн утравӗ)',
+        'en_IN' => 'акӑлчан чӗлхи (Инди)',
+        'en_IO' => 'акӑлчан чӗлхи (Инди океанӗнчи Британи территорийӗ)',
+        'en_IT' => 'акӑлчан чӗлхи (Итали)',
+        'en_JE' => 'акӑлчан чӗлхи (Джерси)',
+        'en_JM' => 'акӑлчан чӗлхи (Ямайка)',
+        'en_JP' => 'акӑлчан чӗлхи (Япони)',
+        'en_KE' => 'акӑлчан чӗлхи (Кени)',
+        'en_KI' => 'акӑлчан чӗлхи (Кирибати)',
+        'en_KN' => 'акӑлчан чӗлхи (Сент-Китспа Невис)',
+        'en_KY' => 'акӑлчан чӗлхи (Кайман утравӗсем)',
+        'en_LC' => 'акӑлчан чӗлхи (Сент-Люси)',
+        'en_LR' => 'акӑлчан чӗлхи (Либери)',
+        'en_LS' => 'акӑлчан чӗлхи (Лесото)',
+        'en_LT' => 'акӑлчан чӗлхи (Литва)',
+        'en_LV' => 'акӑлчан чӗлхи (Латви)',
+        'en_MG' => 'акӑлчан чӗлхи (Мадагаскар)',
+        'en_MH' => 'акӑлчан чӗлхи (Маршалл утравӗсем)',
+        'en_MO' => 'акӑлчан чӗлхи (Макао [ЯАР])',
+        'en_MP' => 'акӑлчан чӗлхи (Ҫур ҫӗр Мариан утравӗсем)',
+        'en_MS' => 'акӑлчан чӗлхи (Монтсеррат)',
+        'en_MT' => 'акӑлчан чӗлхи (Мальта)',
+        'en_MU' => 'акӑлчан чӗлхи (Маврики)',
+        'en_MV' => 'акӑлчан чӗлхи (Мальдив)',
+        'en_MW' => 'акӑлчан чӗлхи (Малави)',
+        'en_MY' => 'акӑлчан чӗлхи (Малайзи)',
+        'en_NA' => 'акӑлчан чӗлхи (Намиби)',
+        'en_NF' => 'акӑлчан чӗлхи (Норфолк утравӗ)',
+        'en_NG' => 'акӑлчан чӗлхи (Нигери)',
+        'en_NL' => 'акӑлчан чӗлхи (Нидерланд)',
+        'en_NO' => 'акӑлчан чӗлхи (Норвеги)',
+        'en_NR' => 'акӑлчан чӗлхи (Науру)',
+        'en_NU' => 'акӑлчан чӗлхи (Ниуэ)',
+        'en_NZ' => 'акӑлчан чӗлхи (Ҫӗнӗ Зеланди)',
+        'en_PG' => 'акӑлчан чӗлхи (Папуа — Ҫӗнӗ Гвинея)',
+        'en_PH' => 'акӑлчан чӗлхи (Филиппин)',
+        'en_PK' => 'акӑлчан чӗлхи (Пакистан)',
+        'en_PL' => 'акӑлчан чӗлхи (Польша)',
+        'en_PN' => 'акӑлчан чӗлхи (Питкэрн утравӗсем)',
+        'en_PR' => 'акӑлчан чӗлхи (Пуэрто-Рико)',
+        'en_PT' => 'акӑлчан чӗлхи (Португали)',
+        'en_PW' => 'акӑлчан чӗлхи (Палау)',
+        'en_RO' => 'акӑлчан чӗлхи (Румыни)',
+        'en_RW' => 'акӑлчан чӗлхи (Руанда)',
+        'en_SB' => 'акӑлчан чӗлхи (Соломон утравӗсем)',
+        'en_SC' => 'акӑлчан чӗлхи (Сейшел утравӗсем)',
+        'en_SD' => 'акӑлчан чӗлхи (Судан)',
+        'en_SE' => 'акӑлчан чӗлхи (Швеци)',
+        'en_SG' => 'акӑлчан чӗлхи (Сингапур)',
+        'en_SH' => 'акӑлчан чӗлхи (Сӑваплӑ Елена утравӗ)',
+        'en_SI' => 'акӑлчан чӗлхи (Словени)',
+        'en_SK' => 'акӑлчан чӗлхи (Словаки)',
+        'en_SL' => 'акӑлчан чӗлхи (Сьерра-Леоне)',
+        'en_SS' => 'акӑлчан чӗлхи (Кӑнтӑр Судан)',
+        'en_SX' => 'акӑлчан чӗлхи (Синт-Мартен)',
+        'en_SZ' => 'акӑлчан чӗлхи (Эсватини)',
+        'en_TC' => 'акӑлчан чӗлхи (Тёркспа Кайкос утравӗсем)',
+        'en_TK' => 'акӑлчан чӗлхи (Токелау)',
+        'en_TO' => 'акӑлчан чӗлхи (Тонга)',
+        'en_TT' => 'акӑлчан чӗлхи (Тринидадпа Тобаго)',
+        'en_TV' => 'акӑлчан чӗлхи (Тувалу)',
+        'en_TZ' => 'акӑлчан чӗлхи (Танзани)',
+        'en_UA' => 'акӑлчан чӗлхи (Украина)',
+        'en_UG' => 'акӑлчан чӗлхи (Уганда)',
+        'en_UM' => 'акӑлчан чӗлхи (АПШ-н тулаш пӗчӗк утравӗсем)',
+        'en_US' => 'акӑлчан чӗлхи (Пӗрлешнӗ Штатсем)',
+        'en_VC' => 'акӑлчан чӗлхи (Сент-Винсентпа Гренада)',
+        'en_VG' => 'акӑлчан чӗлхи (Виргин утравӗсем [Британи])',
+        'en_VI' => 'акӑлчан чӗлхи (Виргин утравӗсем [АПШ])',
+        'en_VU' => 'акӑлчан чӗлхи (Вануату)',
+        'en_WS' => 'акӑлчан чӗлхи (Самоа)',
+        'en_ZA' => 'акӑлчан чӗлхи (Кӑнтӑр Африка Республики)',
+        'en_ZM' => 'акӑлчан чӗлхи (Замби)',
+        'en_ZW' => 'акӑлчан чӗлхи (Зимбабве)',
+        'eo' => 'эсперанто чӗлхи',
+        'eo_001' => 'эсперанто чӗлхи (тӗнче)',
+        'es' => 'испан чӗлхи',
+        'es_419' => 'испан чӗлхи (Латинла Америка)',
+        'es_AR' => 'испан чӗлхи (Аргентина)',
+        'es_BO' => 'испан чӗлхи (Боливи)',
+        'es_BR' => 'испан чӗлхи (Бразили)',
+        'es_BZ' => 'испан чӗлхи (Белиз)',
+        'es_CL' => 'испан чӗлхи (Чили)',
+        'es_CO' => 'испан чӗлхи (Колумби)',
+        'es_CR' => 'испан чӗлхи (Коста-Рика)',
+        'es_CU' => 'испан чӗлхи (Куба)',
+        'es_DO' => 'испан чӗлхи (Доминика Республики)',
+        'es_EC' => 'испан чӗлхи (Эквадор)',
+        'es_ES' => 'испан чӗлхи (Испани)',
+        'es_GQ' => 'испан чӗлхи (Экваторти Гвинея)',
+        'es_GT' => 'испан чӗлхи (Гватемала)',
+        'es_HN' => 'испан чӗлхи (Гондурас)',
+        'es_MX' => 'испан чӗлхи (Мексика)',
+        'es_NI' => 'испан чӗлхи (Никарагуа)',
+        'es_PA' => 'испан чӗлхи (Панама)',
+        'es_PE' => 'испан чӗлхи (Перу)',
+        'es_PH' => 'испан чӗлхи (Филиппин)',
+        'es_PR' => 'испан чӗлхи (Пуэрто-Рико)',
+        'es_PY' => 'испан чӗлхи (Парагвай)',
+        'es_SV' => 'испан чӗлхи (Сальвадор)',
+        'es_US' => 'испан чӗлхи (Пӗрлешнӗ Штатсем)',
+        'es_UY' => 'испан чӗлхи (Уругвай)',
+        'es_VE' => 'испан чӗлхи (Венесуэла)',
+        'et' => 'эстон чӗлхи',
+        'et_EE' => 'эстон чӗлхи (Эстони)',
+        'eu' => 'баск чӗлхи',
+        'eu_ES' => 'баск чӗлхи (Испани)',
+        'fa' => 'перс чӗлхи',
+        'fa_AF' => 'перс чӗлхи (Афганистан)',
+        'fa_IR' => 'перс чӗлхи (Иран)',
+        'ff' => 'фула чӗлхи',
+        'ff_Adlm' => 'фула чӗлхи (адлам ҫырулӑхӗ)',
+        'ff_Adlm_BF' => 'фула чӗлхи (адлам ҫырулӑхӗ, Буркина-Фасо)',
+        'ff_Adlm_CM' => 'фула чӗлхи (адлам ҫырулӑхӗ, Камерун)',
+        'ff_Adlm_GH' => 'фула чӗлхи (адлам ҫырулӑхӗ, Гана)',
+        'ff_Adlm_GM' => 'фула чӗлхи (адлам ҫырулӑхӗ, Гамби)',
+        'ff_Adlm_GN' => 'фула чӗлхи (адлам ҫырулӑхӗ, Гвиней)',
+        'ff_Adlm_GW' => 'фула чӗлхи (адлам ҫырулӑхӗ, Гвиней-Бисау)',
+        'ff_Adlm_LR' => 'фула чӗлхи (адлам ҫырулӑхӗ, Либери)',
+        'ff_Adlm_MR' => 'фула чӗлхи (адлам ҫырулӑхӗ, Мавритани)',
+        'ff_Adlm_NE' => 'фула чӗлхи (адлам ҫырулӑхӗ, Нигер)',
+        'ff_Adlm_NG' => 'фула чӗлхи (адлам ҫырулӑхӗ, Нигери)',
+        'ff_Adlm_SL' => 'фула чӗлхи (адлам ҫырулӑхӗ, Сьерра-Леоне)',
+        'ff_Adlm_SN' => 'фула чӗлхи (адлам ҫырулӑхӗ, Сенегал)',
+        'ff_CM' => 'фула чӗлхи (Камерун)',
+        'ff_GN' => 'фула чӗлхи (Гвиней)',
+        'ff_Latn' => 'фула чӗлхи (латин ҫырулӑхӗ)',
+        'ff_Latn_BF' => 'фула чӗлхи (латин ҫырулӑхӗ, Буркина-Фасо)',
+        'ff_Latn_CM' => 'фула чӗлхи (латин ҫырулӑхӗ, Камерун)',
+        'ff_Latn_GH' => 'фула чӗлхи (латин ҫырулӑхӗ, Гана)',
+        'ff_Latn_GM' => 'фула чӗлхи (латин ҫырулӑхӗ, Гамби)',
+        'ff_Latn_GN' => 'фула чӗлхи (латин ҫырулӑхӗ, Гвиней)',
+        'ff_Latn_GW' => 'фула чӗлхи (латин ҫырулӑхӗ, Гвиней-Бисау)',
+        'ff_Latn_LR' => 'фула чӗлхи (латин ҫырулӑхӗ, Либери)',
+        'ff_Latn_MR' => 'фула чӗлхи (латин ҫырулӑхӗ, Мавритани)',
+        'ff_Latn_NE' => 'фула чӗлхи (латин ҫырулӑхӗ, Нигер)',
+        'ff_Latn_NG' => 'фула чӗлхи (латин ҫырулӑхӗ, Нигери)',
+        'ff_Latn_SL' => 'фула чӗлхи (латин ҫырулӑхӗ, Сьерра-Леоне)',
+        'ff_Latn_SN' => 'фула чӗлхи (латин ҫырулӑхӗ, Сенегал)',
+        'ff_MR' => 'фула чӗлхи (Мавритани)',
+        'ff_SN' => 'фула чӗлхи (Сенегал)',
+        'fi' => 'финн чӗлхи',
+        'fi_FI' => 'финн чӗлхи (Финлянди)',
+        'fo' => 'фарер чӗлхи',
+        'fo_DK' => 'фарер чӗлхи (Дани)',
+        'fo_FO' => 'фарер чӗлхи (Фарер утравӗсем)',
+        'fr' => 'француз чӗлхи',
+        'fr_BE' => 'француз чӗлхи (Бельги)',
+        'fr_BF' => 'француз чӗлхи (Буркина-Фасо)',
+        'fr_BI' => 'француз чӗлхи (Бурунди)',
+        'fr_BJ' => 'француз чӗлхи (Бенин)',
+        'fr_BL' => 'француз чӗлхи (Сен-Бартелеми)',
+        'fr_CA' => 'француз чӗлхи (Канада)',
+        'fr_CD' => 'француз чӗлхи (Конго)',
+        'fr_CF' => 'француз чӗлхи (Вӑта Африка Республики)',
+        'fr_CG' => 'француз чӗлхи (Конго-Браззавиль)',
+        'fr_CH' => 'француз чӗлхи (Швейцари)',
+        'fr_CI' => 'француз чӗлхи (Кот-д’Ивуар)',
+        'fr_CM' => 'француз чӗлхи (Камерун)',
+        'fr_DJ' => 'француз чӗлхи (Джибути)',
+        'fr_DZ' => 'француз чӗлхи (Алжир)',
+        'fr_FR' => 'француз чӗлхи (Франци)',
+        'fr_GA' => 'француз чӗлхи (Габон)',
+        'fr_GF' => 'француз чӗлхи (Франци Гвиани)',
+        'fr_GN' => 'француз чӗлхи (Гвиней)',
+        'fr_GP' => 'француз чӗлхи (Гваделупа)',
+        'fr_GQ' => 'француз чӗлхи (Экваторти Гвинея)',
+        'fr_HT' => 'француз чӗлхи (Гаити)',
+        'fr_KM' => 'француз чӗлхи (Комор утравӗсем)',
+        'fr_LU' => 'француз чӗлхи (Люксембург)',
+        'fr_MA' => 'француз чӗлхи (Марокко)',
+        'fr_MC' => 'француз чӗлхи (Монако)',
+        'fr_MF' => 'француз чӗлхи (Сен-Мартен)',
+        'fr_MG' => 'француз чӗлхи (Мадагаскар)',
+        'fr_ML' => 'француз чӗлхи (Мали)',
+        'fr_MQ' => 'француз чӗлхи (Мартиника)',
+        'fr_MR' => 'француз чӗлхи (Мавритани)',
+        'fr_MU' => 'француз чӗлхи (Маврики)',
+        'fr_NC' => 'француз чӗлхи (Ҫӗнӗ Каледони)',
+        'fr_NE' => 'француз чӗлхи (Нигер)',
+        'fr_PF' => 'француз чӗлхи (Франци Полинезийӗ)',
+        'fr_PM' => 'француз чӗлхи (Сен-Пьерпа Микелон)',
+        'fr_RE' => 'француз чӗлхи (Реюньон)',
+        'fr_RW' => 'француз чӗлхи (Руанда)',
+        'fr_SC' => 'француз чӗлхи (Сейшел утравӗсем)',
+        'fr_SN' => 'француз чӗлхи (Сенегал)',
+        'fr_SY' => 'француз чӗлхи (Сири)',
+        'fr_TD' => 'француз чӗлхи (Чад)',
+        'fr_TG' => 'француз чӗлхи (Того)',
+        'fr_TN' => 'француз чӗлхи (Тунис)',
+        'fr_VU' => 'француз чӗлхи (Вануату)',
+        'fr_WF' => 'француз чӗлхи (Уоллиспа Футуна)',
+        'fr_YT' => 'француз чӗлхи (Майотта)',
+        'fy' => 'анӑҫ фриз чӗлхи',
+        'fy_NL' => 'анӑҫ фриз чӗлхи (Нидерланд)',
+        'ga' => 'ирланд чӗлхи',
+        'ga_GB' => 'ирланд чӗлхи (Аслӑ Британи)',
+        'ga_IE' => 'ирланд чӗлхи (Ирланди)',
+        'gd' => 'гэл чӗлхи',
+        'gd_GB' => 'гэл чӗлхи (Аслӑ Британи)',
+        'gl' => 'галиси чӗлхи',
+        'gl_ES' => 'галиси чӗлхи (Испани)',
+        'gu' => 'гуджарати чӗлхи',
+        'gu_IN' => 'гуджарати чӗлхи (Инди)',
+        'gv' => 'мэн чӗлхи',
+        'gv_IM' => 'мэн чӗлхи (Мэн утравӗ)',
+        'ha' => 'хауса чӗлхи',
+        'ha_GH' => 'хауса чӗлхи (Гана)',
+        'ha_NE' => 'хауса чӗлхи (Нигер)',
+        'ha_NG' => 'хауса чӗлхи (Нигери)',
+        'he' => 'иврит чӗлхи',
+        'he_IL' => 'иврит чӗлхи (Израиль)',
+        'hi' => 'хинди чӗлхи',
+        'hi_IN' => 'хинди чӗлхи (Инди)',
+        'hi_Latn' => 'хинди чӗлхи (латин ҫырулӑхӗ)',
+        'hi_Latn_IN' => 'хинди чӗлхи (латин ҫырулӑхӗ, Инди)',
+        'hr' => 'хорват чӗлхи',
+        'hr_BA' => 'хорват чӗлхи (Боснипе Герцеговина)',
+        'hr_HR' => 'хорват чӗлхи (Хорвати)',
+        'hu' => 'венгер чӗлхи',
+        'hu_HU' => 'венгер чӗлхи (Венгри)',
+        'hy' => 'эрмен чӗлхи',
+        'hy_AM' => 'эрмен чӗлхи (Армени)',
+        'ia' => 'интерлингва чӗлхи',
+        'ia_001' => 'интерлингва чӗлхи (тӗнче)',
+        'id' => 'индонези чӗлхи',
+        'id_ID' => 'индонези чӗлхи (Индонези)',
+        'ie' => 'интерлингве чӗлхи',
+        'ie_EE' => 'интерлингве чӗлхи (Эстони)',
+        'ig' => 'игбо чӗлхи',
+        'ig_NG' => 'игбо чӗлхи (Нигери)',
+        'ii' => 'носу чӗлхи',
+        'ii_CN' => 'носу чӗлхи (Китай)',
+        'is' => 'исланд чӗлхи',
+        'is_IS' => 'исланд чӗлхи (Исланди)',
+        'it' => 'итальян чӗлхи',
+        'it_CH' => 'итальян чӗлхи (Швейцари)',
+        'it_IT' => 'итальян чӗлхи (Итали)',
+        'it_SM' => 'итальян чӗлхи (Сан-Марино)',
+        'it_VA' => 'итальян чӗлхи (Ватикан)',
+        'ja' => 'япон чӗлхи',
+        'ja_JP' => 'япон чӗлхи (Япони)',
+        'jv' => 'яван чӗлхи',
+        'jv_ID' => 'яван чӗлхи (Индонези)',
+        'ka' => 'грузин чӗлхи',
+        'ka_GE' => 'грузин чӗлхи (Грузи)',
+        'ki' => 'кикуйю чӗлхи',
+        'ki_KE' => 'кикуйю чӗлхи (Кени)',
+        'kk' => 'казах чӗлхи',
+        'kk_Arab' => 'казах чӗлхи (араб ҫырулӑхӗ)',
+        'kk_Arab_CN' => 'казах чӗлхи (араб ҫырулӑхӗ, Китай)',
+        'kk_Cyrl' => 'казах чӗлхи (кирилл ҫырулӑхӗ)',
+        'kk_Cyrl_KZ' => 'казах чӗлхи (кирилл ҫырулӑхӗ, Казахстан)',
+        'kk_KZ' => 'казах чӗлхи (Казахстан)',
+        'kl' => 'гренланд чӗлхи',
+        'kl_GL' => 'гренланд чӗлхи (Гренланди)',
+        'km' => 'кхмер чӗлхи',
+        'km_KH' => 'кхмер чӗлхи (Камбоджа)',
+        'kn' => 'каннада чӗлхи',
+        'kn_IN' => 'каннада чӗлхи (Инди)',
+        'ko' => 'корей чӗлхи',
+        'ko_CN' => 'корей чӗлхи (Китай)',
+        'ko_KP' => 'корей чӗлхи (Ҫур ҫӗр Корея)',
+        'ko_KR' => 'корей чӗлхи (Кӑнтӑр Корея)',
+        'ks' => 'кашмири чӗлхи',
+        'ks_Arab' => 'кашмири чӗлхи (араб ҫырулӑхӗ)',
+        'ks_Arab_IN' => 'кашмири чӗлхи (араб ҫырулӑхӗ, Инди)',
+        'ks_Deva' => 'кашмири чӗлхи (деванагари ҫырулӑхӗ)',
+        'ks_Deva_IN' => 'кашмири чӗлхи (деванагари ҫырулӑхӗ, Инди)',
+        'ks_IN' => 'кашмири чӗлхи (Инди)',
+        'ku' => 'курд чӗлхи',
+        'ku_Latn' => 'курд чӗлхи (латин ҫырулӑхӗ)',
+        'ku_Latn_IQ' => 'курд чӗлхи (латин ҫырулӑхӗ, Ирак)',
+        'ku_Latn_SY' => 'курд чӗлхи (латин ҫырулӑхӗ, Сири)',
+        'ku_Latn_TR' => 'курд чӗлхи (латин ҫырулӑхӗ, Турци)',
+        'ku_SY' => 'курд чӗлхи (Сири)',
+        'ku_TR' => 'курд чӗлхи (Турци)',
+        'kw' => 'корн чӗлхи',
+        'kw_GB' => 'корн чӗлхи (Аслӑ Британи)',
+        'ky' => 'кӑркӑс чӗлхи',
+        'ky_KG' => 'кӑркӑс чӗлхи (Кӑркӑсстан)',
+        'lb' => 'люксембург чӗлхи',
+        'lb_LU' => 'люксембург чӗлхи (Люксембург)',
+        'lg' => 'ганда чӗлхи',
+        'lg_UG' => 'ганда чӗлхи (Уганда)',
+        'ln' => 'лингала чӗлхи',
+        'ln_AO' => 'лингала чӗлхи (Ангола)',
+        'ln_CD' => 'лингала чӗлхи (Конго)',
+        'ln_CF' => 'лингала чӗлхи (Вӑта Африка Республики)',
+        'ln_CG' => 'лингала чӗлхи (Конго-Браззавиль)',
+        'lo' => 'лаос чӗлхи',
+        'lo_LA' => 'лаос чӗлхи (Лаос)',
+        'lt' => 'литва чӗлхи',
+        'lt_LT' => 'литва чӗлхи (Литва)',
+        'lu' => 'луба-катанга чӗлхи',
+        'lu_CD' => 'луба-катанга чӗлхи (Конго)',
+        'lv' => 'латыш чӗлхи',
+        'lv_LV' => 'латыш чӗлхи (Латви)',
+        'mg' => 'малагас чӗлхи',
+        'mg_MG' => 'малагас чӗлхи (Мадагаскар)',
+        'mi' => 'маори чӗлхи',
+        'mi_NZ' => 'маори чӗлхи (Ҫӗнӗ Зеланди)',
+        'mk' => 'македон чӗлхи',
+        'mk_MK' => 'македон чӗлхи (Ҫур ҫӗр Македони)',
+        'ml' => 'малаялам чӗлхи',
+        'ml_IN' => 'малаялам чӗлхи (Инди)',
+        'mn' => 'монгол чӗлхи',
+        'mn_MN' => 'монгол чӗлхи (Монголи)',
+        'mr' => 'маратхи чӗлхи',
+        'mr_IN' => 'маратхи чӗлхи (Инди)',
+        'ms' => 'малай чӗлхи',
+        'ms_BN' => 'малай чӗлхи (Бруней)',
+        'ms_ID' => 'малай чӗлхи (Индонези)',
+        'ms_MY' => 'малай чӗлхи (Малайзи)',
+        'ms_SG' => 'малай чӗлхи (Сингапур)',
+        'mt' => 'мальта чӗлхи',
+        'mt_MT' => 'мальта чӗлхи (Мальта)',
+        'my' => 'бирман чӗлхи',
+        'my_MM' => 'бирман чӗлхи (Мьянма [Бирма])',
+        'nb' => 'букмол норвег чӗлхи',
+        'nb_NO' => 'букмол норвег чӗлхи (Норвеги)',
+        'nb_SJ' => 'букмол норвег чӗлхи (Шпицбергенпа Ян-Майен)',
+        'nd' => 'ҫур ҫӗр ндебеле чӗлхи',
+        'nd_ZW' => 'ҫур ҫӗр ндебеле чӗлхи (Зимбабве)',
+        'ne' => 'непал чӗлхи',
+        'ne_IN' => 'непал чӗлхи (Инди)',
+        'ne_NP' => 'непал чӗлхи (Непал)',
+        'nl' => 'нидерланд чӗлхи',
+        'nl_AW' => 'нидерланд чӗлхи (Аруба)',
+        'nl_BE' => 'нидерланд чӗлхи (Бельги)',
+        'nl_BQ' => 'нидерланд чӗлхи (Бонэйр, Синт-Эстатиуспа Саба)',
+        'nl_CW' => 'нидерланд чӗлхи (Кюрасао)',
+        'nl_NL' => 'нидерланд чӗлхи (Нидерланд)',
+        'nl_SR' => 'нидерланд чӗлхи (Суринам)',
+        'nl_SX' => 'нидерланд чӗлхи (Синт-Мартен)',
+        'nn' => 'нюнорск норвег чӗлхи',
+        'nn_NO' => 'нюнорск норвег чӗлхи (Норвеги)',
+        'no' => 'норвег чӗлхи',
+        'no_NO' => 'норвег чӗлхи (Норвеги)',
+        'oc' => 'окситан чӗлхи',
+        'oc_ES' => 'окситан чӗлхи (Испани)',
+        'oc_FR' => 'окситан чӗлхи (Франци)',
+        'om' => 'оромо чӗлхи',
+        'om_ET' => 'оромо чӗлхи (Эфиопи)',
+        'om_KE' => 'оромо чӗлхи (Кени)',
+        'or' => 'ори чӗлхи',
+        'or_IN' => 'ори чӗлхи (Инди)',
+        'os' => 'осетин чӗлхи',
+        'os_GE' => 'осетин чӗлхи (Грузи)',
+        'os_RU' => 'осетин чӗлхи (Раҫҫей)',
+        'pa' => 'панджаби чӗлхи',
+        'pa_Arab' => 'панджаби чӗлхи (араб ҫырулӑхӗ)',
+        'pa_Arab_PK' => 'панджаби чӗлхи (араб ҫырулӑхӗ, Пакистан)',
+        'pa_Guru' => 'панджаби чӗлхи (гурмукхи ҫырулӑхӗ)',
+        'pa_Guru_IN' => 'панджаби чӗлхи (гурмукхи ҫырулӑхӗ, Инди)',
+        'pa_IN' => 'панджаби чӗлхи (Инди)',
+        'pa_PK' => 'панджаби чӗлхи (Пакистан)',
+        'pl' => 'поляк чӗлхи',
+        'pl_PL' => 'поляк чӗлхи (Польша)',
+        'ps' => 'пушту чӗлхи',
+        'ps_AF' => 'пушту чӗлхи (Афганистан)',
+        'ps_PK' => 'пушту чӗлхи (Пакистан)',
+        'pt' => 'португал чӗлхи',
+        'pt_AO' => 'португал чӗлхи (Ангола)',
+        'pt_BR' => 'португал чӗлхи (Бразили)',
+        'pt_CH' => 'португал чӗлхи (Швейцари)',
+        'pt_CV' => 'португал чӗлхи (Кабо-Верде)',
+        'pt_GQ' => 'португал чӗлхи (Экваторти Гвинея)',
+        'pt_GW' => 'португал чӗлхи (Гвиней-Бисау)',
+        'pt_LU' => 'португал чӗлхи (Люксембург)',
+        'pt_MO' => 'португал чӗлхи (Макао [ЯАР])',
+        'pt_MZ' => 'португал чӗлхи (Мозамбик)',
+        'pt_PT' => 'португал чӗлхи (Португали)',
+        'pt_ST' => 'португал чӗлхи (Сан-Томепе Принсипи)',
+        'pt_TL' => 'португал чӗлхи (Тухӑҫ Тимор)',
+        'qu' => 'кечуа чӗлхи',
+        'qu_BO' => 'кечуа чӗлхи (Боливи)',
+        'qu_EC' => 'кечуа чӗлхи (Эквадор)',
+        'qu_PE' => 'кечуа чӗлхи (Перу)',
+        'rm' => 'романш чӗлхи',
+        'rm_CH' => 'романш чӗлхи (Швейцари)',
+        'rn' => 'рунди чӗлхи',
+        'rn_BI' => 'рунди чӗлхи (Бурунди)',
+        'ro' => 'румын чӗлхи',
+        'ro_MD' => 'румын чӗлхи (Молдова)',
+        'ro_RO' => 'румын чӗлхи (Румыни)',
+        'ru' => 'вырӑс чӗлхи',
+        'ru_BY' => 'вырӑс чӗлхи (Беларусь)',
+        'ru_KG' => 'вырӑс чӗлхи (Кӑркӑсстан)',
+        'ru_KZ' => 'вырӑс чӗлхи (Казахстан)',
+        'ru_MD' => 'вырӑс чӗлхи (Молдова)',
+        'ru_RU' => 'вырӑс чӗлхи (Раҫҫей)',
+        'ru_UA' => 'вырӑс чӗлхи (Украина)',
+        'rw' => 'киньяруанда чӗлхи',
+        'rw_RW' => 'киньяруанда чӗлхи (Руанда)',
+        'sa' => 'санскрит чӗлхи',
+        'sa_IN' => 'санскрит чӗлхи (Инди)',
+        'sc' => 'сардин чӗлхи',
+        'sc_IT' => 'сардин чӗлхи (Итали)',
+        'sd' => 'синдхи чӗлхи',
+        'sd_Arab' => 'синдхи чӗлхи (араб ҫырулӑхӗ)',
+        'sd_Arab_PK' => 'синдхи чӗлхи (араб ҫырулӑхӗ, Пакистан)',
+        'sd_Deva' => 'синдхи чӗлхи (деванагари ҫырулӑхӗ)',
+        'sd_Deva_IN' => 'синдхи чӗлхи (деванагари ҫырулӑхӗ, Инди)',
+        'sd_IN' => 'синдхи чӗлхи (Инди)',
+        'sd_PK' => 'синдхи чӗлхи (Пакистан)',
+        'se' => 'ҫур ҫӗр саам чӗлхи',
+        'se_FI' => 'ҫур ҫӗр саам чӗлхи (Финлянди)',
+        'se_NO' => 'ҫур ҫӗр саам чӗлхи (Норвеги)',
+        'se_SE' => 'ҫур ҫӗр саам чӗлхи (Швеци)',
+        'sg' => 'санго чӗлхи',
+        'sg_CF' => 'санго чӗлхи (Вӑта Африка Республики)',
+        'si' => 'сингал чӗлхи',
+        'si_LK' => 'сингал чӗлхи (Шри-Ланка)',
+        'sk' => 'словак чӗлхи',
+        'sk_SK' => 'словак чӗлхи (Словаки)',
+        'sl' => 'словен чӗлхи',
+        'sl_SI' => 'словен чӗлхи (Словени)',
+        'sn' => 'шона чӗлхи',
+        'sn_ZW' => 'шона чӗлхи (Зимбабве)',
+        'so' => 'сомали чӗлхи',
+        'so_DJ' => 'сомали чӗлхи (Джибути)',
+        'so_ET' => 'сомали чӗлхи (Эфиопи)',
+        'so_KE' => 'сомали чӗлхи (Кени)',
+        'so_SO' => 'сомали чӗлхи (Сомали)',
+        'sq' => 'албан чӗлхи',
+        'sq_AL' => 'албан чӗлхи (Албани)',
+        'sq_MK' => 'албан чӗлхи (Ҫур ҫӗр Македони)',
+        'sr' => 'серб чӗлхи',
+        'sr_BA' => 'серб чӗлхи (Боснипе Герцеговина)',
+        'sr_Cyrl' => 'серб чӗлхи (кирилл ҫырулӑхӗ)',
+        'sr_Cyrl_BA' => 'серб чӗлхи (кирилл ҫырулӑхӗ, Боснипе Герцеговина)',
+        'sr_Cyrl_ME' => 'серб чӗлхи (кирилл ҫырулӑхӗ, Черногори)',
+        'sr_Cyrl_RS' => 'серб чӗлхи (кирилл ҫырулӑхӗ, Серби)',
+        'sr_Latn' => 'серб чӗлхи (латин ҫырулӑхӗ)',
+        'sr_Latn_BA' => 'серб чӗлхи (латин ҫырулӑхӗ, Боснипе Герцеговина)',
+        'sr_Latn_ME' => 'серб чӗлхи (латин ҫырулӑхӗ, Черногори)',
+        'sr_Latn_RS' => 'серб чӗлхи (латин ҫырулӑхӗ, Серби)',
+        'sr_ME' => 'серб чӗлхи (Черногори)',
+        'sr_RS' => 'серб чӗлхи (Серби)',
+        'st' => 'кӑнтӑр сото чӗлхи',
+        'st_LS' => 'кӑнтӑр сото чӗлхи (Лесото)',
+        'st_ZA' => 'кӑнтӑр сото чӗлхи (Кӑнтӑр Африка Республики)',
+        'su' => 'сундан чӗлхи',
+        'su_ID' => 'сундан чӗлхи (Индонези)',
+        'su_Latn' => 'сундан чӗлхи (латин ҫырулӑхӗ)',
+        'su_Latn_ID' => 'сундан чӗлхи (латин ҫырулӑхӗ, Индонези)',
+        'sv' => 'швед чӗлхи',
+        'sv_AX' => 'швед чӗлхи (Аланд утравӗсем)',
+        'sv_FI' => 'швед чӗлхи (Финлянди)',
+        'sv_SE' => 'швед чӗлхи (Швеци)',
+        'sw' => 'суахили чӗлхи',
+        'sw_CD' => 'суахили чӗлхи (Конго)',
+        'sw_KE' => 'суахили чӗлхи (Кени)',
+        'sw_TZ' => 'суахили чӗлхи (Танзани)',
+        'sw_UG' => 'суахили чӗлхи (Уганда)',
+        'ta' => 'тамил чӗлхи',
+        'ta_IN' => 'тамил чӗлхи (Инди)',
+        'ta_LK' => 'тамил чӗлхи (Шри-Ланка)',
+        'ta_MY' => 'тамил чӗлхи (Малайзи)',
+        'ta_SG' => 'тамил чӗлхи (Сингапур)',
+        'te' => 'телугу чӗлхи',
+        'te_IN' => 'телугу чӗлхи (Инди)',
+        'tg' => 'таджик чӗлхи',
+        'tg_TJ' => 'таджик чӗлхи (Таджикистан)',
+        'th' => 'тай чӗлхи',
+        'th_TH' => 'тай чӗлхи (Таиланд)',
+        'ti' => 'тигринья чӗлхи',
+        'ti_ER' => 'тигринья чӗлхи (Эритрей)',
+        'ti_ET' => 'тигринья чӗлхи (Эфиопи)',
+        'tk' => 'туркмен чӗлхи',
+        'tk_TM' => 'туркмен чӗлхи (Туркменистан)',
+        'tn' => 'тсвана чӗлхи',
+        'tn_BW' => 'тсвана чӗлхи (Ботсвана)',
+        'tn_ZA' => 'тсвана чӗлхи (Кӑнтӑр Африка Республики)',
+        'to' => 'тонган чӗлхи',
+        'to_TO' => 'тонган чӗлхи (Тонга)',
+        'tr' => 'турккӑ чӗлхи',
+        'tr_CY' => 'турккӑ чӗлхи (Кипр)',
+        'tr_TR' => 'турккӑ чӗлхи (Турци)',
+        'tt' => 'тутар чӗлхи',
+        'tt_RU' => 'тутар чӗлхи (Раҫҫей)',
+        'ug' => 'уйгур чӗлхи',
+        'ug_CN' => 'уйгур чӗлхи (Китай)',
+        'uk' => 'украин чӗлхи',
+        'uk_UA' => 'украин чӗлхи (Украина)',
+        'ur' => 'урду чӗлхи',
+        'ur_IN' => 'урду чӗлхи (Инди)',
+        'ur_PK' => 'урду чӗлхи (Пакистан)',
+        'uz' => 'узбек чӗлхи',
+        'uz_AF' => 'узбек чӗлхи (Афганистан)',
+        'uz_Arab' => 'узбек чӗлхи (араб ҫырулӑхӗ)',
+        'uz_Arab_AF' => 'узбек чӗлхи (араб ҫырулӑхӗ, Афганистан)',
+        'uz_Cyrl' => 'узбек чӗлхи (кирилл ҫырулӑхӗ)',
+        'uz_Cyrl_UZ' => 'узбек чӗлхи (кирилл ҫырулӑхӗ, Узбекистан)',
+        'uz_Latn' => 'узбек чӗлхи (латин ҫырулӑхӗ)',
+        'uz_Latn_UZ' => 'узбек чӗлхи (латин ҫырулӑхӗ, Узбекистан)',
+        'uz_UZ' => 'узбек чӗлхи (Узбекистан)',
+        'vi' => 'вьетнам чӗлхи',
+        'vi_VN' => 'вьетнам чӗлхи (Вьетнам)',
+        'wo' => 'волоф чӗлхи',
+        'wo_SN' => 'волоф чӗлхи (Сенегал)',
+        'xh' => 'коса чӗлхи',
+        'xh_ZA' => 'коса чӗлхи (Кӑнтӑр Африка Республики)',
+        'yi' => 'идиш чӗлхи',
+        'yi_UA' => 'идиш чӗлхи (Украина)',
+        'yo' => 'йоруба чӗлхи',
+        'yo_BJ' => 'йоруба чӗлхи (Бенин)',
+        'yo_NG' => 'йоруба чӗлхи (Нигери)',
+        'za' => 'чжуань чӗлхи',
+        'za_CN' => 'чжуань чӗлхи (Китай)',
+        'zh' => 'китай чӗлхи',
+        'zh_CN' => 'китай чӗлхи (Китай)',
+        'zh_HK' => 'китай чӗлхи (Гонконг [ЯАР])',
+        'zh_Hans' => 'китай чӗлхи (ҫӑмӑллатнӑ китай ҫырулӑхӗ)',
+        'zh_Hans_CN' => 'китай чӗлхи (ҫӑмӑллатнӑ китай ҫырулӑхӗ, Китай)',
+        'zh_Hans_HK' => 'китай чӗлхи (ҫӑмӑллатнӑ китай ҫырулӑхӗ, Гонконг [ЯАР])',
+        'zh_Hans_MO' => 'китай чӗлхи (ҫӑмӑллатнӑ китай ҫырулӑхӗ, Макао [ЯАР])',
+        'zh_Hans_MY' => 'китай чӗлхи (ҫӑмӑллатнӑ китай ҫырулӑхӗ, Малайзи)',
+        'zh_Hans_SG' => 'китай чӗлхи (ҫӑмӑллатнӑ китай ҫырулӑхӗ, Сингапур)',
+        'zh_Hant' => 'китай чӗлхи (йӑлана кӗнӗ китай ҫырулӑхӗ)',
+        'zh_Hant_HK' => 'китай чӗлхи (йӑлана кӗнӗ китай ҫырулӑхӗ, Гонконг [ЯАР])',
+        'zh_Hant_MO' => 'китай чӗлхи (йӑлана кӗнӗ китай ҫырулӑхӗ, Макао [ЯАР])',
+        'zh_Hant_MY' => 'китай чӗлхи (йӑлана кӗнӗ китай ҫырулӑхӗ, Малайзи)',
+        'zh_Hant_TW' => 'китай чӗлхи (йӑлана кӗнӗ китай ҫырулӑхӗ, Тайвань)',
+        'zh_MO' => 'китай чӗлхи (Макао [ЯАР])',
+        'zh_SG' => 'китай чӗлхи (Сингапур)',
+        'zh_TW' => 'китай чӗлхи (Тайвань)',
+        'zu' => 'зулу чӗлхи',
+        'zu_ZA' => 'зулу чӗлхи (Кӑнтӑр Африка Республики)',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/cy.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Aserbaijaneg (Cyrilig, Aserbaijan)',
         'az_Latn' => 'Aserbaijaneg (Lladin)',
         'az_Latn_AZ' => 'Aserbaijaneg (Lladin, Aserbaijan)',
+        'ba' => 'Bashcorteg',
+        'ba_RU' => 'Bashcorteg (Rwsia)',
         'be' => 'Belarwseg',
         'be_BY' => 'Belarwseg (Belarws)',
         'bg' => 'Bwlgareg',
@@ -125,6 +127,7 @@
         'en_DE' => 'Saesneg (Yr Almaen)',
         'en_DK' => 'Saesneg (Denmarc)',
         'en_DM' => 'Saesneg (Dominica)',
+        'en_EE' => 'Saesneg (Estonia)',
         'en_ER' => 'Saesneg (Eritrea)',
         'en_ES' => 'Saesneg (Sbaen)',
         'en_FI' => 'Saesneg (Y Ffindir)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Saesneg (Ffrainc)',
         'en_GB' => 'Saesneg (Y Deyrnas Unedig)',
         'en_GD' => 'Saesneg (Grenada)',
+        'en_GE' => 'Saesneg (Georgia)',
         'en_GG' => 'Saesneg (Ynys y Garn)',
         'en_GH' => 'Saesneg (Ghana)',
         'en_GI' => 'Saesneg (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Saesneg (Yr Eidal)',
         'en_JE' => 'Saesneg (Jersey)',
         'en_JM' => 'Saesneg (Jamaica)',
+        'en_JP' => 'Saesneg (Japan)',
         'en_KE' => 'Saesneg (Kenya)',
         'en_KI' => 'Saesneg (Kiribati)',
         'en_KN' => 'Saesneg (Saint Kitts a Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Saesneg (Saint Lucia)',
         'en_LR' => 'Saesneg (Liberia)',
         'en_LS' => 'Saesneg (Lesotho)',
+        'en_LT' => 'Saesneg (Lithwania)',
+        'en_LV' => 'Saesneg (Latfia)',
         'en_MG' => 'Saesneg (Madagascar)',
         'en_MH' => 'Saesneg (Ynysoedd Marshall)',
         'en_MO' => 'Saesneg (Macau SAR Tsieina)',
@@ -179,7 +186,7 @@
         'en_NZ' => 'Saesneg (Seland Newydd)',
         'en_PG' => 'Saesneg (Papua Guinea Newydd)',
         'en_PH' => 'Saesneg (Y Philipinau)',
-        'en_PK' => 'Saesneg (Pakistan)',
+        'en_PK' => 'Saesneg (Pacistan)',
         'en_PL' => 'Saesneg (Gwlad Pwyl)',
         'en_PN' => 'Saesneg (Ynysoedd Pitcairn)',
         'en_PR' => 'Saesneg (Puerto Rico)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Saesneg (Trinidad a Tobago)',
         'en_TV' => 'Saesneg (Tuvalu)',
         'en_TZ' => 'Saesneg (Tanzania)',
+        'en_UA' => 'Saesneg (Wcráin)',
         'en_UG' => 'Saesneg (Uganda)',
         'en_UM' => 'Saesneg (Ynysoedd Pellennig UDA)',
         'en_US' => 'Saesneg (Yr Unol Daleithiau)',
@@ -391,6 +399,8 @@
         'ki' => 'Kikuyu',
         'ki_KE' => 'Kikuyu (Kenya)',
         'kk' => 'Casacheg',
+        'kk_Arab' => 'Casacheg (Arabaidd)',
+        'kk_Arab_CN' => 'Casacheg (Arabaidd, Tsieina)',
         'kk_Cyrl' => 'Casacheg (Cyrilig)',
         'kk_Cyrl_KZ' => 'Casacheg (Cyrilig, Kazakhstan)',
         'kk_KZ' => 'Casacheg (Kazakhstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Cashmireg (Devanagari, India)',
         'ks_IN' => 'Cashmireg (India)',
         'ku' => 'Cwrdeg',
+        'ku_Latn' => 'Cwrdeg (Lladin)',
+        'ku_Latn_IQ' => 'Cwrdeg (Lladin, Irac)',
+        'ku_Latn_SY' => 'Cwrdeg (Lladin, Syria)',
+        'ku_Latn_TR' => 'Cwrdeg (Lladin, Twrci)',
+        'ku_SY' => 'Cwrdeg (Syria)',
         'ku_TR' => 'Cwrdeg (Twrci)',
         'kw' => 'Cernyweg',
         'kw_GB' => 'Cernyweg (Y Deyrnas Unedig)',
@@ -487,16 +502,16 @@
         'os_RU' => 'Oseteg (Rwsia)',
         'pa' => 'Pwnjabeg',
         'pa_Arab' => 'Pwnjabeg (Arabaidd)',
-        'pa_Arab_PK' => 'Pwnjabeg (Arabaidd, Pakistan)',
+        'pa_Arab_PK' => 'Pwnjabeg (Arabaidd, Pacistan)',
         'pa_Guru' => 'Pwnjabeg (Gwrmwci)',
         'pa_Guru_IN' => 'Pwnjabeg (Gwrmwci, India)',
         'pa_IN' => 'Pwnjabeg (India)',
-        'pa_PK' => 'Pwnjabeg (Pakistan)',
+        'pa_PK' => 'Pwnjabeg (Pacistan)',
         'pl' => 'Pwyleg',
         'pl_PL' => 'Pwyleg (Gwlad Pwyl)',
         'ps' => 'Pashto',
         'ps_AF' => 'Pashto (Afghanistan)',
-        'ps_PK' => 'Pashto (Pakistan)',
+        'ps_PK' => 'Pashto (Pacistan)',
         'pt' => 'Portiwgaleg',
         'pt_AO' => 'Portiwgaleg (Angola)',
         'pt_BR' => 'Portiwgaleg (Brasil)',
@@ -536,11 +551,11 @@
         'sc_IT' => 'Sardeg (Yr Eidal)',
         'sd' => 'Sindhi',
         'sd_Arab' => 'Sindhi (Arabaidd)',
-        'sd_Arab_PK' => 'Sindhi (Arabaidd, Pakistan)',
+        'sd_Arab_PK' => 'Sindhi (Arabaidd, Pacistan)',
         'sd_Deva' => 'Sindhi (Devanagari)',
         'sd_Deva_IN' => 'Sindhi (Devanagari, India)',
         'sd_IN' => 'Sindhi (India)',
-        'sd_PK' => 'Sindhi (Pakistan)',
+        'sd_PK' => 'Sindhi (Pacistan)',
         'se' => 'Sami Gogleddol',
         'se_FI' => 'Sami Gogleddol (Y Ffindir)',
         'se_NO' => 'Sami Gogleddol (Norwy)',
@@ -627,7 +642,7 @@
         'uk_UA' => 'Wcreineg (Wcráin)',
         'ur' => 'Wrdw',
         'ur_IN' => 'Wrdw (India)',
-        'ur_PK' => 'Wrdw (Pakistan)',
+        'ur_PK' => 'Wrdw (Pacistan)',
         'uz' => 'Wsbeceg',
         'uz_AF' => 'Wsbeceg (Afghanistan)',
         'uz_Arab' => 'Wsbeceg (Arabaidd)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/da.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/da.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/da.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/da.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'aserbajdsjansk (kyrillisk, Aserbajdsjan)',
         'az_Latn' => 'aserbajdsjansk (latinsk)',
         'az_Latn_AZ' => 'aserbajdsjansk (latinsk, Aserbajdsjan)',
+        'ba' => 'bashkir',
+        'ba_RU' => 'bashkir (Rusland)',
         'be' => 'belarusisk',
         'be_BY' => 'belarusisk (Belarus)',
         'bg' => 'bulgarsk',
@@ -125,6 +127,7 @@
         'en_DE' => 'engelsk (Tyskland)',
         'en_DK' => 'engelsk (Danmark)',
         'en_DM' => 'engelsk (Dominica)',
+        'en_EE' => 'engelsk (Estland)',
         'en_ER' => 'engelsk (Eritrea)',
         'en_ES' => 'engelsk (Spanien)',
         'en_FI' => 'engelsk (Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'engelsk (Frankrig)',
         'en_GB' => 'engelsk (Storbritannien)',
         'en_GD' => 'engelsk (Grenada)',
+        'en_GE' => 'engelsk (Georgien)',
         'en_GG' => 'engelsk (Guernsey)',
         'en_GH' => 'engelsk (Ghana)',
         'en_GI' => 'engelsk (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'engelsk (Italien)',
         'en_JE' => 'engelsk (Jersey)',
         'en_JM' => 'engelsk (Jamaica)',
+        'en_JP' => 'engelsk (Japan)',
         'en_KE' => 'engelsk (Kenya)',
         'en_KI' => 'engelsk (Kiribati)',
         'en_KN' => 'engelsk (Saint Kitts og Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'engelsk (Saint Lucia)',
         'en_LR' => 'engelsk (Liberia)',
         'en_LS' => 'engelsk (Lesotho)',
+        'en_LT' => 'engelsk (Litauen)',
+        'en_LV' => 'engelsk (Letland)',
         'en_MG' => 'engelsk (Madagaskar)',
         'en_MH' => 'engelsk (Marshalløerne)',
         'en_MO' => 'engelsk (SAR Macao)',
@@ -205,6 +212,7 @@
         'en_TT' => 'engelsk (Trinidad og Tobago)',
         'en_TV' => 'engelsk (Tuvalu)',
         'en_TZ' => 'engelsk (Tanzania)',
+        'en_UA' => 'engelsk (Ukraine)',
         'en_UG' => 'engelsk (Uganda)',
         'en_UM' => 'engelsk (Amerikanske oversøiske øer)',
         'en_US' => 'engelsk (USA)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenya)',
         'kk' => 'kasakhisk',
+        'kk_Arab' => 'kasakhisk (arabisk)',
+        'kk_Arab_CN' => 'kasakhisk (arabisk, Kina)',
         'kk_Cyrl' => 'kasakhisk (kyrillisk)',
         'kk_Cyrl_KZ' => 'kasakhisk (kyrillisk, Kasakhstan)',
         'kk_KZ' => 'kasakhisk (Kasakhstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kashmiri (devanagari, Indien)',
         'ks_IN' => 'kashmiri (Indien)',
         'ku' => 'kurdisk',
+        'ku_Latn' => 'kurdisk (latinsk)',
+        'ku_Latn_IQ' => 'kurdisk (latinsk, Irak)',
+        'ku_Latn_SY' => 'kurdisk (latinsk, Syrien)',
+        'ku_Latn_TR' => 'kurdisk (latinsk, Tyrkiet)',
+        'ku_SY' => 'kurdisk (Syrien)',
         'ku_TR' => 'kurdisk (Tyrkiet)',
         'kw' => 'cornisk',
         'kw_GB' => 'cornisk (Storbritannien)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/de.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/de.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/de.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/de.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Aserbaidschanisch (Kyrillisch, Aserbaidschan)',
         'az_Latn' => 'Aserbaidschanisch (Lateinisch)',
         'az_Latn_AZ' => 'Aserbaidschanisch (Lateinisch, Aserbaidschan)',
+        'ba' => 'Baschkirisch',
+        'ba_RU' => 'Baschkirisch (Russland)',
         'be' => 'Belarussisch',
         'be_BY' => 'Belarussisch (Belarus)',
         'bg' => 'Bulgarisch',
@@ -125,6 +127,7 @@
         'en_DE' => 'Englisch (Deutschland)',
         'en_DK' => 'Englisch (Dänemark)',
         'en_DM' => 'Englisch (Dominica)',
+        'en_EE' => 'Englisch (Estland)',
         'en_ER' => 'Englisch (Eritrea)',
         'en_ES' => 'Englisch (Spanien)',
         'en_FI' => 'Englisch (Finnland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Englisch (Frankreich)',
         'en_GB' => 'Englisch (Vereinigtes Königreich)',
         'en_GD' => 'Englisch (Grenada)',
+        'en_GE' => 'Englisch (Georgien)',
         'en_GG' => 'Englisch (Guernsey)',
         'en_GH' => 'Englisch (Ghana)',
         'en_GI' => 'Englisch (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Englisch (Italien)',
         'en_JE' => 'Englisch (Jersey)',
         'en_JM' => 'Englisch (Jamaika)',
+        'en_JP' => 'Englisch (Japan)',
         'en_KE' => 'Englisch (Kenia)',
         'en_KI' => 'Englisch (Kiribati)',
         'en_KN' => 'Englisch (St. Kitts und Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Englisch (St. Lucia)',
         'en_LR' => 'Englisch (Liberia)',
         'en_LS' => 'Englisch (Lesotho)',
+        'en_LT' => 'Englisch (Litauen)',
+        'en_LV' => 'Englisch (Lettland)',
         'en_MG' => 'Englisch (Madagaskar)',
         'en_MH' => 'Englisch (Marshallinseln)',
         'en_MO' => 'Englisch (Sonderverwaltungsregion Macau)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Englisch (Trinidad und Tobago)',
         'en_TV' => 'Englisch (Tuvalu)',
         'en_TZ' => 'Englisch (Tansania)',
+        'en_UA' => 'Englisch (Ukraine)',
         'en_UG' => 'Englisch (Uganda)',
         'en_UM' => 'Englisch (Amerikanische Überseeinseln)',
         'en_US' => 'Englisch (Vereinigte Staaten)',
@@ -391,6 +399,8 @@
         'ki' => 'Kikuyu',
         'ki_KE' => 'Kikuyu (Kenia)',
         'kk' => 'Kasachisch',
+        'kk_Arab' => 'Kasachisch (Arabisch)',
+        'kk_Arab_CN' => 'Kasachisch (Arabisch, China)',
         'kk_Cyrl' => 'Kasachisch (Kyrillisch)',
         'kk_Cyrl_KZ' => 'Kasachisch (Kyrillisch, Kasachstan)',
         'kk_KZ' => 'Kasachisch (Kasachstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Kaschmiri (Devanagari, Indien)',
         'ks_IN' => 'Kaschmiri (Indien)',
         'ku' => 'Kurdisch',
+        'ku_Latn' => 'Kurdisch (Lateinisch)',
+        'ku_Latn_IQ' => 'Kurdisch (Lateinisch, Irak)',
+        'ku_Latn_SY' => 'Kurdisch (Lateinisch, Syrien)',
+        'ku_Latn_TR' => 'Kurdisch (Lateinisch, Türkei)',
+        'ku_SY' => 'Kurdisch (Syrien)',
         'ku_TR' => 'Kurdisch (Türkei)',
         'kw' => 'Kornisch',
         'kw_GB' => 'Kornisch (Vereinigtes Königreich)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/dz.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/dz.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/dz.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/dz.php	2026-05-20 10:56:49.000000000 +0200
@@ -112,6 +112,7 @@
         'en_DE' => 'ཨིང་ལིཤ་ཁ། (ཇཱར་མ་ནི།)',
         'en_DK' => 'ཨིང་ལིཤ་ཁ། (ཌེན་མཱཀ།)',
         'en_DM' => 'ཨིང་ལིཤ་ཁ། (ཌོ་མི་ནི་ཀ།)',
+        'en_EE' => 'ཨིང་ལིཤ་ཁ། (ཨེས་ཊོ་ནི་ཡ།)',
         'en_ER' => 'ཨིང་ལིཤ་ཁ། (ཨེ་རི་ཊྲེ་ཡ།)',
         'en_ES' => 'ཨིང་ལིཤ་ཁ། (ཨིས་པེན།)',
         'en_FI' => 'ཨིང་ལིཤ་ཁ། (ཕིན་ལེནཌ།)',
@@ -121,6 +122,7 @@
         'en_FR' => 'ཨིང་ལིཤ་ཁ། (ཕྲཱནས།)',
         'en_GB' => 'ཨིང་ལིཤ་ཁ། (ཡུ་ནཱའི་ཊེཌ་ ཀིང་ཌམ།)',
         'en_GD' => 'ཨིང་ལིཤ་ཁ། (གྲྀ་ན་ཌ།)',
+        'en_GE' => 'ཨིང་ལིཤ་ཁ། (ཇཽར་ཇཱ།)',
         'en_GG' => 'ཨིང་ལིཤ་ཁ། (གུ་ཨེརྣ་སི།)',
         'en_GH' => 'ཨིང་ལིཤ་ཁ། (གྷ་ན།)',
         'en_GI' => 'ཨིང་ལིཤ་ཁ། (ཇིབ་རཱལ་ཊར།)',
@@ -138,6 +140,7 @@
         'en_IT' => 'ཨིང་ལིཤ་ཁ། (ཨི་ཊ་ལི།)',
         'en_JE' => 'ཨིང་ལིཤ་ཁ། (ཇེར་སི།)',
         'en_JM' => 'ཨིང་ལིཤ་ཁ། (ཇཱ་མཻ་ཀ།)',
+        'en_JP' => 'ཨིང་ལིཤ་ཁ། (ཇ་པཱན།)',
         'en_KE' => 'ཨིང་ལིཤ་ཁ། (ཀེན་ཡ།)',
         'en_KI' => 'ཨིང་ལིཤ་ཁ། (ཀི་རི་བ་ཏི་མཚོ་གླིང།)',
         'en_KN' => 'ཨིང་ལིཤ་ཁ། (སེནཊ་ ཀིཊས་ དང་ ནེ་བིས།)',
@@ -145,6 +148,8 @@
         'en_LC' => 'ཨིང་ལིཤ་ཁ། (སེནཊ་ ལུ་སི་ཡ།)',
         'en_LR' => 'ཨིང་ལིཤ་ཁ། (ལཱའི་བེ་རི་ཡ།)',
         'en_LS' => 'ཨིང་ལིཤ་ཁ། (ལཻ་སོ་ཐོ།)',
+        'en_LT' => 'ཨིང་ལིཤ་ཁ། (ལི་ཐུ་ཝེ་ནི་ཡ།)',
+        'en_LV' => 'ཨིང་ལིཤ་ཁ། (ལཊ་བི་ཡ།)',
         'en_MG' => 'ཨིང་ལིཤ་ཁ། (མ་དཱ་གེས་ཀར།)',
         'en_MH' => 'ཨིང་ལིཤ་ཁ། (མར་ཤེལ་གླིང་ཚོམ།)',
         'en_MO' => 'ཨིང་ལིཤ་ཁ། (མཀ་ཨའུ་ཅཱའི་ན།)',
@@ -191,6 +196,7 @@
         'en_TT' => 'ཨིང་ལིཤ་ཁ། (ཊི་ནི་ཌཱཌ་ ཨེནཌ་ ཊོ་བྷེ་གྷོ།)',
         'en_TV' => 'ཨིང་ལིཤ་ཁ། (ཏུ་ཝ་ལུ།)',
         'en_TZ' => 'ཨིང་ལིཤ་ཁ། (ཊཱན་ཛཱ་ནི་ཡ།)',
+        'en_UA' => 'ཨིང་ལིཤ་ཁ། (ཡུ་ཀརེན།)',
         'en_UG' => 'ཨིང་ལིཤ་ཁ། (ཡུ་གྷན་ཌ།)',
         'en_UM' => 'ཨིང་ལིཤ་ཁ། (ཡུ་ཨེས་གྱི་མཐའ་མཚམས་མཚོ་གླིང་།)',
         'en_US' => 'ཨིང་ལིཤ་ཁ། (ཡུ་ཨེས་ཨེ།)',
@@ -334,6 +340,8 @@
         'ka' => 'ཇཽ་ཇི་ཡཱན་ཁ',
         'ka_GE' => 'ཇཽ་ཇི་ཡཱན་ཁ། (ཇཽར་ཇཱ།)',
         'kk' => 'ཀ་ཛགས་ཁ',
+        'kk_Arab' => 'ཀ་ཛགས་ཁ། (ཨེ་ར་བིཀ་ཡིག་གུ།)',
+        'kk_Arab_CN' => 'ཀ་ཛགས་ཁ། (ཨེ་ར་བིཀ་ཡིག་གུ་, རྒྱ་ནག།)',
         'kk_Cyrl' => 'ཀ་ཛགས་ཁ། (སིརིལ་ལིཀ་ཡིག་གུ།)',
         'kk_Cyrl_KZ' => 'ཀ་ཛགས་ཁ། (སིརིལ་ལིཀ་ཡིག་གུ་, ཀ་ཛགས་སཏཱན།)',
         'kk_KZ' => 'ཀ་ཛགས་ཁ། (ཀ་ཛགས་སཏཱན།)',
@@ -352,6 +360,11 @@
         'ks_Deva_IN' => 'ཀཱཤ་མི་རི་ཁ། (དེ་ཝ་ན་ག་རི་ཡིག་གུ་, རྒྱ་གར།)',
         'ks_IN' => 'ཀཱཤ་མི་རི་ཁ། (རྒྱ་གར།)',
         'ku' => 'ཀར་ཌིཤ་ཁ',
+        'ku_Latn' => 'ཀར་ཌིཤ་ཁ། (ལེ་ཊིན་ཡིག་གུ།)',
+        'ku_Latn_IQ' => 'ཀར་ཌིཤ་ཁ། (ལེ་ཊིན་ཡིག་གུ་, ཨི་རཱཀ།)',
+        'ku_Latn_SY' => 'ཀར་ཌིཤ་ཁ། (ལེ་ཊིན་ཡིག་གུ་, སི་རི་ཡ།)',
+        'ku_Latn_TR' => 'ཀར་ཌིཤ་ཁ། (ལེ་ཊིན་ཡིག་གུ་, ཊཱར་ཀི།)',
+        'ku_SY' => 'ཀར་ཌིཤ་ཁ། (སི་རི་ཡ།)',
         'ku_TR' => 'ཀར་ཌིཤ་ཁ། (ཊཱར་ཀི།)',
         'ky' => 'ཀིར་གིས་ཁ',
         'ky_KG' => 'ཀིར་གིས་ཁ། (ཀིར་གིས་སཏཱན།)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ee.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ee.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ee.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ee.php	2026-05-20 10:56:49.000000000 +0200
@@ -120,6 +120,7 @@
         'en_DE' => 'iŋlisigbe (Germania nutome)',
         'en_DK' => 'iŋlisigbe (Denmark nutome)',
         'en_DM' => 'iŋlisigbe (Dominika nutome)',
+        'en_EE' => 'iŋlisigbe (Estonia nutome)',
         'en_ER' => 'iŋlisigbe (Eritrea nutome)',
         'en_ES' => 'iŋlisigbe (Spain nutome)',
         'en_FI' => 'iŋlisigbe (Finland nutome)',
@@ -129,6 +130,7 @@
         'en_FR' => 'iŋlisigbe (France nutome)',
         'en_GB' => 'iŋlisigbe (United Kingdom nutome)',
         'en_GD' => 'iŋlisigbe (Grenada nutome)',
+        'en_GE' => 'iŋlisigbe (Georgia nutome)',
         'en_GG' => 'iŋlisigbe (Guernse nutome)',
         'en_GH' => 'iŋlisigbe (Ghana nutome)',
         'en_GI' => 'iŋlisigbe (Gibraltar nutome)',
@@ -146,6 +148,7 @@
         'en_IT' => 'iŋlisigbe (Italia nutome)',
         'en_JE' => 'iŋlisigbe (Dzɛse nutome)',
         'en_JM' => 'iŋlisigbe (Dzamaika nutome)',
+        'en_JP' => 'iŋlisigbe (Dzapan nutome)',
         'en_KE' => 'iŋlisigbe (Kenya nutome)',
         'en_KI' => 'iŋlisigbe (Kiribati nutome)',
         'en_KN' => 'iŋlisigbe (Saint Kitis kple Nevis nutome)',
@@ -153,6 +156,8 @@
         'en_LC' => 'iŋlisigbe (Saint Lusia nutome)',
         'en_LR' => 'iŋlisigbe (Liberia nutome)',
         'en_LS' => 'iŋlisigbe (Lɛsoto nutome)',
+        'en_LT' => 'iŋlisigbe (Lituania nutome)',
+        'en_LV' => 'iŋlisigbe (Latvia nutome)',
         'en_MG' => 'iŋlisigbe (Madagaska nutome)',
         'en_MH' => 'iŋlisigbe (Marshal ƒudomekpowo nutome)',
         'en_MO' => 'iŋlisigbe (Macau SAR Tsaina nutome)',
@@ -197,6 +202,7 @@
         'en_TT' => 'iŋlisigbe (Trinidad kple Tobago nutome)',
         'en_TV' => 'iŋlisigbe (Tuvalu nutome)',
         'en_TZ' => 'iŋlisigbe (Tanzania nutome)',
+        'en_UA' => 'iŋlisigbe (Ukraine nutome)',
         'en_UG' => 'iŋlisigbe (Uganda nutome)',
         'en_UM' => 'iŋlisigbe (U.S. Minor Outlaying ƒudomekpowo nutome)',
         'en_US' => 'iŋlisigbe (USA nutome)',
@@ -335,6 +341,8 @@
         'ka' => 'gɔgiagbe',
         'ka_GE' => 'gɔgiagbe (Georgia nutome)',
         'kk' => 'kazakhstangbe',
+        'kk_Arab' => 'kazakhstangbe (Arabiagbeŋɔŋlɔ)',
+        'kk_Arab_CN' => 'kazakhstangbe (Arabiagbeŋɔŋlɔ, Tsaina nutome)',
         'kk_Cyrl' => 'kazakhstangbe (Cyrillicgbeŋɔŋlɔ)',
         'kk_Cyrl_KZ' => 'kazakhstangbe (Cyrillicgbeŋɔŋlɔ, Kazakstan nutome)',
         'kk_KZ' => 'kazakhstangbe (Kazakstan nutome)',
@@ -353,6 +361,11 @@
         'ks_Deva_IN' => 'kashmirgbe (devanagarigbeŋɔŋlɔ, India nutome)',
         'ks_IN' => 'kashmirgbe (India nutome)',
         'ku' => 'kurdiagbe',
+        'ku_Latn' => 'kurdiagbe (latingbeŋɔŋlɔ)',
+        'ku_Latn_IQ' => 'kurdiagbe (latingbeŋɔŋlɔ, iraqdukɔ)',
+        'ku_Latn_SY' => 'kurdiagbe (latingbeŋɔŋlɔ, Siria nutome)',
+        'ku_Latn_TR' => 'kurdiagbe (latingbeŋɔŋlɔ, Tɛki nutome)',
+        'ku_SY' => 'kurdiagbe (Siria nutome)',
         'ku_TR' => 'kurdiagbe (Tɛki nutome)',
         'ky' => 'kirghistangbe',
         'ky_KG' => 'kirghistangbe (Kirgizstan nutome)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/el.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/el.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/el.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/el.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Αζερμπαϊτζανικά (Κυριλλικό, Αζερμπαϊτζάν)',
         'az_Latn' => 'Αζερμπαϊτζανικά (Λατινικό)',
         'az_Latn_AZ' => 'Αζερμπαϊτζανικά (Λατινικό, Αζερμπαϊτζάν)',
+        'ba' => 'Μπασκίρ',
+        'ba_RU' => 'Μπασκίρ (Ρωσία)',
         'be' => 'Λευκορωσικά',
         'be_BY' => 'Λευκορωσικά (Λευκορωσία)',
         'bg' => 'Βουλγαρικά',
@@ -125,6 +127,7 @@
         'en_DE' => 'Αγγλικά (Γερμανία)',
         'en_DK' => 'Αγγλικά (Δανία)',
         'en_DM' => 'Αγγλικά (Ντομίνικα)',
+        'en_EE' => 'Αγγλικά (Εσθονία)',
         'en_ER' => 'Αγγλικά (Ερυθραία)',
         'en_ES' => 'Αγγλικά (Ισπανία)',
         'en_FI' => 'Αγγλικά (Φινλανδία)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Αγγλικά (Γαλλία)',
         'en_GB' => 'Αγγλικά (Ηνωμένο Βασίλειο)',
         'en_GD' => 'Αγγλικά (Γρενάδα)',
+        'en_GE' => 'Αγγλικά (Γεωργία)',
         'en_GG' => 'Αγγλικά (Γκέρνζι)',
         'en_GH' => 'Αγγλικά (Γκάνα)',
         'en_GI' => 'Αγγλικά (Γιβραλτάρ)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Αγγλικά (Ιταλία)',
         'en_JE' => 'Αγγλικά (Τζέρζι)',
         'en_JM' => 'Αγγλικά (Τζαμάικα)',
+        'en_JP' => 'Αγγλικά (Ιαπωνία)',
         'en_KE' => 'Αγγλικά (Κένυα)',
         'en_KI' => 'Αγγλικά (Κιριμπάτι)',
         'en_KN' => 'Αγγλικά (Σεν Κιτς και Νέβις)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Αγγλικά (Αγία Λουκία)',
         'en_LR' => 'Αγγλικά (Λιβερία)',
         'en_LS' => 'Αγγλικά (Λεσότο)',
+        'en_LT' => 'Αγγλικά (Λιθουανία)',
+        'en_LV' => 'Αγγλικά (Λετονία)',
         'en_MG' => 'Αγγλικά (Μαδαγασκάρη)',
         'en_MH' => 'Αγγλικά (Νήσοι Μάρσαλ)',
         'en_MO' => 'Αγγλικά (Μακάο ΕΔΠ Κίνας)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Αγγλικά (Τρινιντάντ και Τομπάγκο)',
         'en_TV' => 'Αγγλικά (Τουβαλού)',
         'en_TZ' => 'Αγγλικά (Τανζανία)',
+        'en_UA' => 'Αγγλικά (Ουκρανία)',
         'en_UG' => 'Αγγλικά (Ουγκάντα)',
         'en_UM' => 'Αγγλικά (Απομακρυσμένες Νησίδες ΗΠΑ)',
         'en_US' => 'Αγγλικά (Ηνωμένες Πολιτείες)',
@@ -391,6 +399,8 @@
         'ki' => 'Κικούγιου',
         'ki_KE' => 'Κικούγιου (Κένυα)',
         'kk' => 'Καζακικά',
+        'kk_Arab' => 'Καζακικά (Αραβικό)',
+        'kk_Arab_CN' => 'Καζακικά (Αραβικό, Κίνα)',
         'kk_Cyrl' => 'Καζακικά (Κυριλλικό)',
         'kk_Cyrl_KZ' => 'Καζακικά (Κυριλλικό, Καζακστάν)',
         'kk_KZ' => 'Καζακικά (Καζακστάν)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Κασμιρικά (Ντεβαναγκάρι, Ινδία)',
         'ks_IN' => 'Κασμιρικά (Ινδία)',
         'ku' => 'Κουρδικά',
+        'ku_Latn' => 'Κουρδικά (Λατινικό)',
+        'ku_Latn_IQ' => 'Κουρδικά (Λατινικό, Ιράκ)',
+        'ku_Latn_SY' => 'Κουρδικά (Λατινικό, Συρία)',
+        'ku_Latn_TR' => 'Κουρδικά (Λατινικό, Τουρκία)',
+        'ku_SY' => 'Κουρδικά (Συρία)',
         'ku_TR' => 'Κουρδικά (Τουρκία)',
         'kw' => 'Κορνουαλικά',
         'kw_GB' => 'Κορνουαλικά (Ηνωμένο Βασίλειο)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en_AU.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en_AU.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en_AU.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en_AU.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,8 +6,26 @@
         'bn' => 'Bengali',
         'bn_BD' => 'Bengali (Bangladesh)',
         'bn_IN' => 'Bengali (India)',
+        'bs_BA' => 'Bosnian (Bosnia and Herzegovina)',
+        'bs_Cyrl_BA' => 'Bosnian (Cyrillic, Bosnia and Herzegovina)',
+        'bs_Latn_BA' => 'Bosnian (Latin, Bosnia and Herzegovina)',
         'en_001' => 'English (World)',
+        'en_AG' => 'English (Antigua and Barbuda)',
+        'en_GS' => 'English (South Georgia and South Sandwich Islands)',
+        'en_KN' => 'English (St Kitts and Nevis)',
+        'en_TC' => 'English (Turks and Caicos Islands)',
+        'en_TT' => 'English (Trinidad and Tobago)',
+        'en_VC' => 'English (St Vincent and the Grenadines)',
         'eo_001' => 'Esperanto (World)',
+        'fr_PM' => 'French (St Pierre and Miquelon)',
+        'fr_WF' => 'French (Wallis and Futuna)',
+        'hr_BA' => 'Croatian (Bosnia and Herzegovina)',
         'ia_001' => 'Interlingua (World)',
+        'nb_SJ' => 'Norwegian Bokmål (Svalbard and Jan Mayen)',
+        'pt_ST' => 'Portuguese (São Tomé and Príncipe)',
+        'sh_BA' => 'Serbo-Croatian (Bosnia and Herzegovina)',
+        'sr_BA' => 'Serbian (Bosnia and Herzegovina)',
+        'sr_Cyrl_BA' => 'Serbian (Cyrillic, Bosnia and Herzegovina)',
+        'sr_Latn_BA' => 'Serbian (Latin, Bosnia and Herzegovina)',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en_IN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en_IN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en_IN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en_IN.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-<?php
-
-return [
-    'Names' => [
-        'bn' => 'Bengali',
-        'bn_BD' => 'Bengali (Bangladesh)',
-        'bn_IN' => 'Bengali (India)',
-    ],
-];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/en.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Azerbaijani (Cyrillic, Azerbaijan)',
         'az_Latn' => 'Azerbaijani (Latin)',
         'az_Latn_AZ' => 'Azerbaijani (Latin, Azerbaijan)',
+        'ba' => 'Bashkir',
+        'ba_RU' => 'Bashkir (Russia)',
         'be' => 'Belarusian',
         'be_BY' => 'Belarusian (Belarus)',
         'bg' => 'Bulgarian',
@@ -125,6 +127,7 @@
         'en_DE' => 'English (Germany)',
         'en_DK' => 'English (Denmark)',
         'en_DM' => 'English (Dominica)',
+        'en_EE' => 'English (Estonia)',
         'en_ER' => 'English (Eritrea)',
         'en_ES' => 'English (Spain)',
         'en_FI' => 'English (Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'English (France)',
         'en_GB' => 'English (United Kingdom)',
         'en_GD' => 'English (Grenada)',
+        'en_GE' => 'English (Georgia)',
         'en_GG' => 'English (Guernsey)',
         'en_GH' => 'English (Ghana)',
         'en_GI' => 'English (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'English (Italy)',
         'en_JE' => 'English (Jersey)',
         'en_JM' => 'English (Jamaica)',
+        'en_JP' => 'English (Japan)',
         'en_KE' => 'English (Kenya)',
         'en_KI' => 'English (Kiribati)',
         'en_KN' => 'English (St. Kitts & Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'English (St. Lucia)',
         'en_LR' => 'English (Liberia)',
         'en_LS' => 'English (Lesotho)',
+        'en_LT' => 'English (Lithuania)',
+        'en_LV' => 'English (Latvia)',
         'en_MG' => 'English (Madagascar)',
         'en_MH' => 'English (Marshall Islands)',
         'en_MO' => 'English (Macao SAR China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'English (Trinidad & Tobago)',
         'en_TV' => 'English (Tuvalu)',
         'en_TZ' => 'English (Tanzania)',
+        'en_UA' => 'English (Ukraine)',
         'en_UG' => 'English (Uganda)',
         'en_UM' => 'English (U.S. Outlying Islands)',
         'en_US' => 'English (United States)',
@@ -391,6 +399,8 @@
         'ki' => 'Kikuyu',
         'ki_KE' => 'Kikuyu (Kenya)',
         'kk' => 'Kazakh',
+        'kk_Arab' => 'Kazakh (Arabic)',
+        'kk_Arab_CN' => 'Kazakh (Arabic, China)',
         'kk_Cyrl' => 'Kazakh (Cyrillic)',
         'kk_Cyrl_KZ' => 'Kazakh (Cyrillic, Kazakhstan)',
         'kk_KZ' => 'Kazakh (Kazakhstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Kashmiri (Devanagari, India)',
         'ks_IN' => 'Kashmiri (India)',
         'ku' => 'Kurdish',
+        'ku_Latn' => 'Kurdish (Latin)',
+        'ku_Latn_IQ' => 'Kurdish (Latin, Iraq)',
+        'ku_Latn_SY' => 'Kurdish (Latin, Syria)',
+        'ku_Latn_TR' => 'Kurdish (Latin, Türkiye)',
+        'ku_SY' => 'Kurdish (Syria)',
         'ku_TR' => 'Kurdish (Türkiye)',
         'kw' => 'Cornish',
         'kw_GB' => 'Cornish (United Kingdom)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/eo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/eo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/eo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/eo.php	2026-05-20 10:56:49.000000000 +0200
@@ -5,6 +5,8 @@
         'af' => 'afrikansa',
         'af_NA' => 'afrikansa (Namibio)',
         'af_ZA' => 'afrikansa (Sud-Afriko)',
+        'ak' => 'akana',
+        'ak_GH' => 'akana (Ganao)',
         'am' => 'amhara',
         'am_ET' => 'amhara (Etiopujo)',
         'ar' => 'araba',
@@ -24,12 +26,14 @@
         'ar_LB' => 'araba (Libano)',
         'ar_LY' => 'araba (Libio)',
         'ar_MA' => 'araba (Maroko)',
-        'ar_MR' => 'araba (Maŭritanujo)',
+        'ar_MR' => 'araba (Maŭritanio)',
         'ar_OM' => 'araba (Omano)',
+        'ar_PS' => 'araba (Palestinaj teritorioj)',
         'ar_QA' => 'araba (Kataro)',
         'ar_SA' => 'araba (Sauda Arabujo)',
         'ar_SD' => 'araba (Sudano)',
         'ar_SO' => 'araba (Somalujo)',
+        'ar_SS' => 'araba (Sud-Sudano)',
         'ar_SY' => 'araba (Sirio)',
         'ar_TD' => 'araba (Ĉado)',
         'ar_TN' => 'araba (Tunizio)',
@@ -38,12 +42,18 @@
         'as_IN' => 'asama (Hindujo)',
         'az' => 'azerbajĝana',
         'az_AZ' => 'azerbajĝana (Azerbajĝano)',
+        'az_Cyrl' => 'azerbajĝana (cirila)',
+        'az_Cyrl_AZ' => 'azerbajĝana (cirila, Azerbajĝano)',
         'az_Latn' => 'azerbajĝana (latina)',
         'az_Latn_AZ' => 'azerbajĝana (latina, Azerbajĝano)',
+        'ba' => 'baŝkira',
+        'ba_RU' => 'baŝkira (Rusujo)',
         'be' => 'belorusa',
         'be_BY' => 'belorusa (Belorusujo)',
         'bg' => 'bulgara',
         'bg_BG' => 'bulgara (Bulgarujo)',
+        'bm' => 'bambara',
+        'bm_ML' => 'bambara (Malio)',
         'bn' => 'bengala',
         'bn_BD' => 'bengala (Bangladeŝo)',
         'bn_IN' => 'bengala (Hindujo)',
@@ -54,6 +64,8 @@
         'br_FR' => 'bretona (Francujo)',
         'bs' => 'bosna',
         'bs_BA' => 'bosna (Bosnujo kaj Hercegovino)',
+        'bs_Cyrl' => 'bosna (cirila)',
+        'bs_Cyrl_BA' => 'bosna (cirila, Bosnujo kaj Hercegovino)',
         'bs_Latn' => 'bosna (latina)',
         'bs_Latn_BA' => 'bosna (latina, Bosnujo kaj Hercegovino)',
         'ca' => 'kataluna',
@@ -61,8 +73,12 @@
         'ca_ES' => 'kataluna (Hispanujo)',
         'ca_FR' => 'kataluna (Francujo)',
         'ca_IT' => 'kataluna (Italujo)',
+        'ce' => 'ĉeĉena',
+        'ce_RU' => 'ĉeĉena (Rusujo)',
         'cs' => 'ĉeĥa',
         'cs_CZ' => 'ĉeĥa (Ĉeĥujo)',
+        'cv' => 'ĉuvaŝa',
+        'cv_RU' => 'ĉuvaŝa (Rusujo)',
         'cy' => 'kimra',
         'cy_GB' => 'kimra (Unuiĝinta Reĝlando)',
         'da' => 'dana',
@@ -76,16 +92,21 @@
         'de_IT' => 'germana (Italujo)',
         'de_LI' => 'germana (Liĥtenŝtejno)',
         'de_LU' => 'germana (Luksemburgo)',
-        'dz' => 'dzonko',
-        'dz_BT' => 'dzonko (Butano)',
+        'dz' => 'Dzonko',
+        'dz_BT' => 'Dzonko (Butano)',
+        'ee' => 'evea',
+        'ee_GH' => 'evea (Ganao)',
+        'ee_TG' => 'evea (Togolando)',
         'el' => 'greka',
         'el_CY' => 'greka (Kipro)',
         'el_GR' => 'greka (Grekujo)',
         'en' => 'angla',
         'en_001' => 'angla (mondo)',
+        'en_150' => 'angla (Eŭropo)',
         'en_AE' => 'angla (Unuiĝintaj Arabaj Emirlandoj)',
         'en_AG' => 'angla (Antigvo kaj Barbudo)',
         'en_AI' => 'angla (Angvilo)',
+        'en_AS' => 'angla (Usona Samoo)',
         'en_AT' => 'angla (Aŭstrujo)',
         'en_AU' => 'angla (Aŭstralio)',
         'en_BB' => 'angla (Barbado)',
@@ -96,45 +117,60 @@
         'en_BW' => 'angla (Bocvano)',
         'en_BZ' => 'angla (Belizo)',
         'en_CA' => 'angla (Kanado)',
+        'en_CC' => 'angla (Kokosinsuloj)',
         'en_CH' => 'angla (Svisujo)',
         'en_CK' => 'angla (Kukinsuloj)',
         'en_CM' => 'angla (Kameruno)',
+        'en_CX' => 'angla (Kristnaskinsulo)',
         'en_CY' => 'angla (Kipro)',
         'en_CZ' => 'angla (Ĉeĥujo)',
         'en_DE' => 'angla (Germanujo)',
         'en_DK' => 'angla (Danujo)',
         'en_DM' => 'angla (Dominiko)',
+        'en_EE' => 'angla (Estonujo)',
         'en_ER' => 'angla (Eritreo)',
         'en_ES' => 'angla (Hispanujo)',
         'en_FI' => 'angla (Finnlando)',
-        'en_FJ' => 'angla (Fiĝoj)',
+        'en_FJ' => 'angla (Fiĝio)',
+        'en_FK' => 'angla (Falklandoj)',
         'en_FM' => 'angla (Mikronezio)',
         'en_FR' => 'angla (Francujo)',
         'en_GB' => 'angla (Unuiĝinta Reĝlando)',
         'en_GD' => 'angla (Grenado)',
+        'en_GE' => 'angla (Kartvelujo)',
+        'en_GG' => 'angla (Gernezejo)',
         'en_GH' => 'angla (Ganao)',
         'en_GI' => 'angla (Ĝibraltaro)',
         'en_GM' => 'angla (Gambio)',
         'en_GS' => 'angla (Sud-Georgio kaj Sud-Sandviĉinsuloj)',
         'en_GU' => 'angla (Gvamo)',
         'en_GY' => 'angla (Gujano)',
+        'en_HK' => 'angla (Honkongo [SAR de Ĉinujo])',
         'en_HU' => 'angla (Hungarujo)',
         'en_ID' => 'angla (Indonezio)',
         'en_IE' => 'angla (Irlando)',
         'en_IL' => 'angla (Israelo)',
+        'en_IM' => 'angla (Manksinsulo)',
         'en_IN' => 'angla (Hindujo)',
+        'en_IO' => 'angla (Brita Hindoceana Teritorio)',
         'en_IT' => 'angla (Italujo)',
+        'en_JE' => 'angla (Ĵerzejo)',
         'en_JM' => 'angla (Jamajko)',
+        'en_JP' => 'angla (Japanujo)',
         'en_KE' => 'angla (Kenjo)',
         'en_KI' => 'angla (Kiribato)',
         'en_KN' => 'angla (Sankta Kristoforo kaj Neviso)',
-        'en_KY' => 'angla (Kejmanoj)',
+        'en_KY' => 'angla (Kajmana Insularo)',
         'en_LC' => 'angla (Sankta Lucio)',
         'en_LR' => 'angla (Liberio)',
         'en_LS' => 'angla (Lesoto)',
+        'en_LT' => 'angla (Litovujo)',
+        'en_LV' => 'angla (Latvujo)',
         'en_MG' => 'angla (Madagaskaro)',
         'en_MH' => 'angla (Marŝaloj)',
+        'en_MO' => 'angla (Makao [SAR de Ĉinujo])',
         'en_MP' => 'angla (Nord-Marianoj)',
+        'en_MS' => 'angla (Moncerato)',
         'en_MT' => 'angla (Malto)',
         'en_MU' => 'angla (Maŭricio)',
         'en_MV' => 'angla (Maldivoj)',
@@ -167,11 +203,16 @@
         'en_SI' => 'angla (Slovenujo)',
         'en_SK' => 'angla (Slovakujo)',
         'en_SL' => 'angla (Sieraleono)',
+        'en_SS' => 'angla (Sud-Sudano)',
+        'en_SX' => 'angla (Sint-Maarten)',
         'en_SZ' => 'angla (Svazilando)',
+        'en_TC' => 'angla (Turkoj kaj Kajkoj)',
+        'en_TK' => 'angla (Tokelao)',
         'en_TO' => 'angla (Tongo)',
         'en_TT' => 'angla (Trinidado kaj Tobago)',
         'en_TV' => 'angla (Tuvalo)',
         'en_TZ' => 'angla (Tanzanio)',
+        'en_UA' => 'angla (Ukrainujo)',
         'en_UG' => 'angla (Ugando)',
         'en_UM' => 'angla (Usonaj malgrandaj insuloj)',
         'en_US' => 'angla (Usono)',
@@ -186,6 +227,7 @@
         'eo' => 'Esperanto',
         'eo_001' => 'Esperanto (mondo)',
         'es' => 'hispana',
+        'es_419' => 'hispana (Latinameriko)',
         'es_AR' => 'hispana (Argentino)',
         'es_BO' => 'hispana (Bolivio)',
         'es_BR' => 'hispana (Brazilo)',
@@ -194,7 +236,7 @@
         'es_CO' => 'hispana (Kolombio)',
         'es_CR' => 'hispana (Kostariko)',
         'es_CU' => 'hispana (Kubo)',
-        'es_DO' => 'hispana (Domingo)',
+        'es_DO' => 'hispana (Dominika Respubliko)',
         'es_EC' => 'hispana (Ekvadoro)',
         'es_ES' => 'hispana (Hispanujo)',
         'es_GQ' => 'hispana (Ekvatora Gvineo)',
@@ -218,6 +260,37 @@
         'fa' => 'persa',
         'fa_AF' => 'persa (Afganujo)',
         'fa_IR' => 'persa (Irano)',
+        'ff' => 'fula',
+        'ff_Adlm' => 'fula (adlam)',
+        'ff_Adlm_BF' => 'fula (adlam, Burkino)',
+        'ff_Adlm_CM' => 'fula (adlam, Kameruno)',
+        'ff_Adlm_GH' => 'fula (adlam, Ganao)',
+        'ff_Adlm_GM' => 'fula (adlam, Gambio)',
+        'ff_Adlm_GN' => 'fula (adlam, Gvineo)',
+        'ff_Adlm_GW' => 'fula (adlam, Gvineo-Bisaŭo)',
+        'ff_Adlm_LR' => 'fula (adlam, Liberio)',
+        'ff_Adlm_MR' => 'fula (adlam, Maŭritanio)',
+        'ff_Adlm_NE' => 'fula (adlam, Niĝero)',
+        'ff_Adlm_NG' => 'fula (adlam, Niĝerio)',
+        'ff_Adlm_SL' => 'fula (adlam, Sieraleono)',
+        'ff_Adlm_SN' => 'fula (adlam, Senegalo)',
+        'ff_CM' => 'fula (Kameruno)',
+        'ff_GN' => 'fula (Gvineo)',
+        'ff_Latn' => 'fula (latina)',
+        'ff_Latn_BF' => 'fula (latina, Burkino)',
+        'ff_Latn_CM' => 'fula (latina, Kameruno)',
+        'ff_Latn_GH' => 'fula (latina, Ganao)',
+        'ff_Latn_GM' => 'fula (latina, Gambio)',
+        'ff_Latn_GN' => 'fula (latina, Gvineo)',
+        'ff_Latn_GW' => 'fula (latina, Gvineo-Bisaŭo)',
+        'ff_Latn_LR' => 'fula (latina, Liberio)',
+        'ff_Latn_MR' => 'fula (latina, Maŭritanio)',
+        'ff_Latn_NE' => 'fula (latina, Niĝero)',
+        'ff_Latn_NG' => 'fula (latina, Niĝerio)',
+        'ff_Latn_SL' => 'fula (latina, Sieraleono)',
+        'ff_Latn_SN' => 'fula (latina, Senegalo)',
+        'ff_MR' => 'fula (Maŭritanio)',
+        'ff_SN' => 'fula (Senegalo)',
         'fi' => 'finna',
         'fi_FI' => 'finna (Finnlando)',
         'fo' => 'feroa',
@@ -228,8 +301,10 @@
         'fr_BF' => 'franca (Burkino)',
         'fr_BI' => 'franca (Burundo)',
         'fr_BJ' => 'franca (Benino)',
+        'fr_BL' => 'franca (Sankta Bartolomeo)',
         'fr_CA' => 'franca (Kanado)',
-        'fr_CF' => 'franca (Centr-Afrika Respubliko)',
+        'fr_CD' => 'franca (Kongo Kinŝasa)',
+        'fr_CF' => 'franca (Centr-Afriko)',
         'fr_CG' => 'franca (Kongo Brazavila)',
         'fr_CH' => 'franca (Svisujo)',
         'fr_CI' => 'franca (Ebur-Bordo)',
@@ -238,7 +313,7 @@
         'fr_DZ' => 'franca (Alĝerio)',
         'fr_FR' => 'franca (Francujo)',
         'fr_GA' => 'franca (Gabono)',
-        'fr_GF' => 'franca (Franca Gviano)',
+        'fr_GF' => 'franca (Franca Gujano)',
         'fr_GN' => 'franca (Gvineo)',
         'fr_GP' => 'franca (Gvadelupo)',
         'fr_GQ' => 'franca (Ekvatora Gvineo)',
@@ -247,10 +322,11 @@
         'fr_LU' => 'franca (Luksemburgo)',
         'fr_MA' => 'franca (Maroko)',
         'fr_MC' => 'franca (Monako)',
+        'fr_MF' => 'franca (Saint-Martin)',
         'fr_MG' => 'franca (Madagaskaro)',
         'fr_ML' => 'franca (Malio)',
         'fr_MQ' => 'franca (Martiniko)',
-        'fr_MR' => 'franca (Maŭritanujo)',
+        'fr_MR' => 'franca (Maŭritanio)',
         'fr_MU' => 'franca (Maŭricio)',
         'fr_NC' => 'franca (Nov-Kaledonio)',
         'fr_NE' => 'franca (Niĝero)',
@@ -278,16 +354,18 @@
         'gl_ES' => 'galega (Hispanujo)',
         'gu' => 'guĝarata',
         'gu_IN' => 'guĝarata (Hindujo)',
+        'gv' => 'manksa',
+        'gv_IM' => 'manksa (Manksinsulo)',
         'ha' => 'haŭsa',
         'ha_GH' => 'haŭsa (Ganao)',
         'ha_NE' => 'haŭsa (Niĝero)',
         'ha_NG' => 'haŭsa (Niĝerio)',
         'he' => 'hebrea',
         'he_IL' => 'hebrea (Israelo)',
-        'hi' => 'hinda',
-        'hi_IN' => 'hinda (Hindujo)',
-        'hi_Latn' => 'hinda (latina)',
-        'hi_Latn_IN' => 'hinda (latina, Hindujo)',
+        'hi' => 'hindia',
+        'hi_IN' => 'hindia (Hindujo)',
+        'hi_Latn' => 'hindia (latina)',
+        'hi_Latn_IN' => 'hindia (latina, Hindujo)',
         'hr' => 'kroata',
         'hr_BA' => 'kroata (Bosnujo kaj Hercegovino)',
         'hr_HR' => 'kroata (Kroatujo)',
@@ -301,6 +379,10 @@
         'id_ID' => 'indonezia (Indonezio)',
         'ie' => 'Interlingveo',
         'ie_EE' => 'Interlingveo (Estonujo)',
+        'ig' => 'igba',
+        'ig_NG' => 'igba (Niĝerio)',
+        'ii' => 'jia',
+        'ii_CN' => 'jia (Ĉinujo)',
         'is' => 'islanda',
         'is_IS' => 'islanda (Islando)',
         'it' => 'itala',
@@ -314,7 +396,13 @@
         'jv_ID' => 'java (Indonezio)',
         'ka' => 'kartvela',
         'ka_GE' => 'kartvela (Kartvelujo)',
+        'ki' => 'kikuja',
+        'ki_KE' => 'kikuja (Kenjo)',
         'kk' => 'kazaĥa',
+        'kk_Arab' => 'kazaĥa (araba)',
+        'kk_Arab_CN' => 'kazaĥa (araba, Ĉinujo)',
+        'kk_Cyrl' => 'kazaĥa (cirila)',
+        'kk_Cyrl_KZ' => 'kazaĥa (cirila, Kazaĥujo)',
         'kk_KZ' => 'kazaĥa (Kazaĥujo)',
         'kl' => 'gronlanda',
         'kl_GL' => 'gronlanda (Gronlando)',
@@ -324,24 +412,40 @@
         'kn_IN' => 'kanara (Hindujo)',
         'ko' => 'korea',
         'ko_CN' => 'korea (Ĉinujo)',
-        'ko_KP' => 'korea (Nord-Koreo)',
-        'ko_KR' => 'korea (Sud-Koreo)',
+        'ko_KP' => 'korea (Nord-Koreujo)',
+        'ko_KR' => 'korea (Sud-Koreujo)',
         'ks' => 'kaŝmira',
+        'ks_Arab' => 'kaŝmira (araba)',
+        'ks_Arab_IN' => 'kaŝmira (araba, Hindujo)',
+        'ks_Deva' => 'kaŝmira (devanagara)',
+        'ks_Deva_IN' => 'kaŝmira (devanagara, Hindujo)',
         'ks_IN' => 'kaŝmira (Hindujo)',
         'ku' => 'kurda',
+        'ku_Latn' => 'kurda (latina)',
+        'ku_Latn_IQ' => 'kurda (latina, Irako)',
+        'ku_Latn_SY' => 'kurda (latina, Sirio)',
+        'ku_Latn_TR' => 'kurda (latina, Turkujo)',
+        'ku_SY' => 'kurda (Sirio)',
         'ku_TR' => 'kurda (Turkujo)',
+        'kw' => 'kornvala',
+        'kw_GB' => 'kornvala (Unuiĝinta Reĝlando)',
         'ky' => 'kirgiza',
         'ky_KG' => 'kirgiza (Kirgizujo)',
         'lb' => 'luksemburga',
         'lb_LU' => 'luksemburga (Luksemburgo)',
+        'lg' => 'ganda',
+        'lg_UG' => 'ganda (Ugando)',
         'ln' => 'lingala',
         'ln_AO' => 'lingala (Angolo)',
-        'ln_CF' => 'lingala (Centr-Afrika Respubliko)',
+        'ln_CD' => 'lingala (Kongo Kinŝasa)',
+        'ln_CF' => 'lingala (Centr-Afriko)',
         'ln_CG' => 'lingala (Kongo Brazavila)',
         'lo' => 'laŭa',
         'lo_LA' => 'laŭa (Laoso)',
         'lt' => 'litova',
         'lt_LT' => 'litova (Litovujo)',
+        'lu' => 'katanga-luba',
+        'lu_CD' => 'katanga-luba (Kongo Kinŝasa)',
         'lv' => 'latva',
         'lv_LV' => 'latva (Latvujo)',
         'mg' => 'malagasa',
@@ -349,6 +453,7 @@
         'mi' => 'maoria',
         'mi_NZ' => 'maoria (Nov-Zelando)',
         'mk' => 'makedona',
+        'mk_MK' => 'makedona (Nord-Makedonujo)',
         'ml' => 'malajalama',
         'ml_IN' => 'malajalama (Hindujo)',
         'mn' => 'mongola',
@@ -367,14 +472,19 @@
         'nb' => 'dannorvega',
         'nb_NO' => 'dannorvega (Norvegujo)',
         'nb_SJ' => 'dannorvega (Svalbardo kaj Janmajeno)',
+        'nd' => 'nord-matabela',
+        'nd_ZW' => 'nord-matabela (Zimbabvo)',
         'ne' => 'nepala',
         'ne_IN' => 'nepala (Hindujo)',
         'ne_NP' => 'nepala (Nepalo)',
         'nl' => 'nederlanda',
         'nl_AW' => 'nederlanda (Arubo)',
         'nl_BE' => 'nederlanda (Belgujo)',
+        'nl_BQ' => 'nederlanda (Kariba Nederlando)',
+        'nl_CW' => 'nederlanda (Kuracao)',
         'nl_NL' => 'nederlanda (Nederlando)',
         'nl_SR' => 'nederlanda (Surinamo)',
+        'nl_SX' => 'nederlanda (Sint-Maarten)',
         'nn' => 'novnorvega',
         'nn_NO' => 'novnorvega (Norvegujo)',
         'no' => 'norvega',
@@ -385,9 +495,16 @@
         'om' => 'oroma',
         'om_ET' => 'oroma (Etiopujo)',
         'om_KE' => 'oroma (Kenjo)',
-        'or' => 'orijo',
-        'or_IN' => 'orijo (Hindujo)',
+        'or' => 'Orijo',
+        'or_IN' => 'Orijo (Hindujo)',
+        'os' => 'oseta',
+        'os_GE' => 'oseta (Kartvelujo)',
+        'os_RU' => 'oseta (Rusujo)',
         'pa' => 'panĝaba',
+        'pa_Arab' => 'panĝaba (araba)',
+        'pa_Arab_PK' => 'panĝaba (araba, Pakistano)',
+        'pa_Guru' => 'panĝaba (gurmuka)',
+        'pa_Guru_IN' => 'panĝaba (gurmuka, Hindujo)',
         'pa_IN' => 'panĝaba (Hindujo)',
         'pa_PK' => 'panĝaba (Pakistano)',
         'pl' => 'pola',
@@ -403,9 +520,11 @@
         'pt_GQ' => 'portugala (Ekvatora Gvineo)',
         'pt_GW' => 'portugala (Gvineo-Bisaŭo)',
         'pt_LU' => 'portugala (Luksemburgo)',
+        'pt_MO' => 'portugala (Makao [SAR de Ĉinujo])',
         'pt_MZ' => 'portugala (Mozambiko)',
         'pt_PT' => 'portugala (Portugalujo)',
         'pt_ST' => 'portugala (Santomeo kaj Principeo)',
+        'pt_TL' => 'portugala (Orienta Timoro)',
         'qu' => 'keĉua',
         'qu_BO' => 'keĉua (Bolivio)',
         'qu_EC' => 'keĉua (Ekvadoro)',
@@ -426,15 +545,25 @@
         'ru_UA' => 'rusa (Ukrainujo)',
         'rw' => 'ruanda',
         'rw_RW' => 'ruanda (Ruando)',
-        'sa' => 'sanskrito',
-        'sa_IN' => 'sanskrito (Hindujo)',
+        'sa' => 'Sanskrito',
+        'sa_IN' => 'Sanskrito (Hindujo)',
+        'sc' => 'sarda',
+        'sc_IT' => 'sarda (Italujo)',
         'sd' => 'sinda',
+        'sd_Arab' => 'sinda (araba)',
+        'sd_Arab_PK' => 'sinda (araba, Pakistano)',
+        'sd_Deva' => 'sinda (devanagara)',
+        'sd_Deva_IN' => 'sinda (devanagara, Hindujo)',
         'sd_IN' => 'sinda (Hindujo)',
         'sd_PK' => 'sinda (Pakistano)',
+        'se' => 'nord-samea',
+        'se_FI' => 'nord-samea (Finnlando)',
+        'se_NO' => 'nord-samea (Norvegujo)',
+        'se_SE' => 'nord-samea (Svedujo)',
         'sg' => 'sangoa',
-        'sg_CF' => 'sangoa (Centr-Afrika Respubliko)',
-        'sh' => 'serbo-Kroata',
-        'sh_BA' => 'serbo-Kroata (Bosnujo kaj Hercegovino)',
+        'sg_CF' => 'sangoa (Centr-Afriko)',
+        'sh' => 'serbokroata',
+        'sh_BA' => 'serbokroata (Bosnujo kaj Hercegovino)',
         'si' => 'sinhala',
         'si_LK' => 'sinhala (Srilanko)',
         'sk' => 'slovaka',
@@ -450,10 +579,19 @@
         'so_SO' => 'somala (Somalujo)',
         'sq' => 'albana',
         'sq_AL' => 'albana (Albanujo)',
+        'sq_MK' => 'albana (Nord-Makedonujo)',
         'sr' => 'serba',
         'sr_BA' => 'serba (Bosnujo kaj Hercegovino)',
+        'sr_Cyrl' => 'serba (cirila)',
+        'sr_Cyrl_BA' => 'serba (cirila, Bosnujo kaj Hercegovino)',
+        'sr_Cyrl_ME' => 'serba (cirila, Montenegro)',
+        'sr_Cyrl_RS' => 'serba (cirila, Serbujo)',
         'sr_Latn' => 'serba (latina)',
         'sr_Latn_BA' => 'serba (latina, Bosnujo kaj Hercegovino)',
+        'sr_Latn_ME' => 'serba (latina, Montenegro)',
+        'sr_Latn_RS' => 'serba (latina, Serbujo)',
+        'sr_ME' => 'serba (Montenegro)',
+        'sr_RS' => 'serba (Serbujo)',
         'st' => 'sota',
         'st_LS' => 'sota (Lesoto)',
         'st_ZA' => 'sota (Sud-Afriko)',
@@ -462,9 +600,11 @@
         'su_Latn' => 'sunda (latina)',
         'su_Latn_ID' => 'sunda (latina, Indonezio)',
         'sv' => 'sveda',
+        'sv_AX' => 'sveda (Alando)',
         'sv_FI' => 'sveda (Finnlando)',
         'sv_SE' => 'sveda (Svedujo)',
         'sw' => 'svahila',
+        'sw_CD' => 'svahila (Kongo Kinŝasa)',
         'sw_KE' => 'svahila (Kenjo)',
         'sw_TZ' => 'svahila (Tanzanio)',
         'sw_UG' => 'svahila (Ugando)',
@@ -489,8 +629,8 @@
         'tn' => 'cvana',
         'tn_BW' => 'cvana (Bocvano)',
         'tn_ZA' => 'cvana (Sud-Afriko)',
-        'to' => 'tongana',
-        'to_TO' => 'tongana (Tongo)',
+        'to' => 'tonga',
+        'to_TO' => 'tonga (Tongo)',
         'tr' => 'turka',
         'tr_CY' => 'turka (Kipro)',
         'tr_TR' => 'turka (Turkujo)',
@@ -500,22 +640,26 @@
         'ug_CN' => 'ujgura (Ĉinujo)',
         'uk' => 'ukraina',
         'uk_UA' => 'ukraina (Ukrainujo)',
-        'ur' => 'urduo',
-        'ur_IN' => 'urduo (Hindujo)',
-        'ur_PK' => 'urduo (Pakistano)',
+        'ur' => 'Urduo',
+        'ur_IN' => 'Urduo (Hindujo)',
+        'ur_PK' => 'Urduo (Pakistano)',
         'uz' => 'uzbeka',
         'uz_AF' => 'uzbeka (Afganujo)',
+        'uz_Arab' => 'uzbeka (araba)',
+        'uz_Arab_AF' => 'uzbeka (araba, Afganujo)',
+        'uz_Cyrl' => 'uzbeka (cirila)',
+        'uz_Cyrl_UZ' => 'uzbeka (cirila, Uzbekujo)',
         'uz_Latn' => 'uzbeka (latina)',
         'uz_Latn_UZ' => 'uzbeka (latina, Uzbekujo)',
         'uz_UZ' => 'uzbeka (Uzbekujo)',
         'vi' => 'vjetnama',
-        'vi_VN' => 'vjetnama (Vjetnamo)',
+        'vi_VN' => 'vjetnama (Vjetnamujo)',
         'wo' => 'volofa',
         'wo_SN' => 'volofa (Senegalo)',
         'xh' => 'ksosa',
         'xh_ZA' => 'ksosa (Sud-Afriko)',
-        'yi' => 'jida',
-        'yi_UA' => 'jida (Ukrainujo)',
+        'yi' => 'judgermana',
+        'yi_UA' => 'judgermana (Ukrainujo)',
         'yo' => 'joruba',
         'yo_BJ' => 'joruba (Benino)',
         'yo_NG' => 'joruba (Niĝerio)',
@@ -523,6 +667,19 @@
         'za_CN' => 'ĝuanga (Ĉinujo)',
         'zh' => 'ĉina',
         'zh_CN' => 'ĉina (Ĉinujo)',
+        'zh_HK' => 'ĉina (Honkongo [SAR de Ĉinujo])',
+        'zh_Hans' => 'ĉina (simpligita)',
+        'zh_Hans_CN' => 'ĉina (simpligita, Ĉinujo)',
+        'zh_Hans_HK' => 'ĉina (simpligita, Honkongo [SAR de Ĉinujo])',
+        'zh_Hans_MO' => 'ĉina (simpligita, Makao [SAR de Ĉinujo])',
+        'zh_Hans_MY' => 'ĉina (simpligita, Malajzio)',
+        'zh_Hans_SG' => 'ĉina (simpligita, Singapuro)',
+        'zh_Hant' => 'ĉina (tradicia)',
+        'zh_Hant_HK' => 'ĉina (tradicia, Honkongo [SAR de Ĉinujo])',
+        'zh_Hant_MO' => 'ĉina (tradicia, Makao [SAR de Ĉinujo])',
+        'zh_Hant_MY' => 'ĉina (tradicia, Malajzio)',
+        'zh_Hant_TW' => 'ĉina (tradicia, Tajvano)',
+        'zh_MO' => 'ĉina (Makao [SAR de Ĉinujo])',
         'zh_SG' => 'ĉina (Singapuro)',
         'zh_TW' => 'ĉina (Tajvano)',
         'zu' => 'zulua',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/es_419.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/es_419.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/es_419.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/es_419.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,28 +32,17 @@
         'ff_Latn_SN' => 'fula (latín, Senegal)',
         'fr_CG' => 'francés (República del Congo)',
         'fr_CI' => 'francés (Costa de Marfil)',
-        'gu' => 'gujarati',
-        'gu_IN' => 'gujarati (India)',
         'hi_Latn' => 'hindi (latín)',
         'hi_Latn_IN' => 'hindi (latín, India)',
         'hr_BA' => 'croata (Bosnia-Herzegovina)',
         'ia_001' => 'interlingua (mundo)',
-        'ks' => 'cachemiro',
-        'ks_Arab' => 'cachemiro (árabe)',
-        'ks_Arab_IN' => 'cachemiro (árabe, India)',
-        'ks_Deva' => 'cachemiro (devanagari)',
-        'ks_Deva_IN' => 'cachemiro (devanagari, India)',
-        'ks_IN' => 'cachemiro (India)',
+        'ku_Latn' => 'kurdo (latín)',
+        'ku_Latn_IQ' => 'kurdo (latín, Irak)',
+        'ku_Latn_SY' => 'kurdo (latín, Siria)',
+        'ku_Latn_TR' => 'kurdo (latín, Turquía)',
         'ln_CG' => 'lingala (República del Congo)',
         'ml' => 'malabar',
         'ml_IN' => 'malabar (India)',
-        'pa' => 'panyabí',
-        'pa_Arab' => 'panyabí (árabe)',
-        'pa_Arab_PK' => 'panyabí (árabe, Pakistán)',
-        'pa_Guru' => 'panyabí (gurmuji)',
-        'pa_Guru_IN' => 'panyabí (gurmuji, India)',
-        'pa_IN' => 'panyabí (India)',
-        'pa_PK' => 'panyabí (Pakistán)',
         'pt_TL' => 'portugués (Timor Oriental)',
         'rm' => 'retorrománico',
         'rm_CH' => 'retorrománico (Suiza)',
@@ -78,11 +67,6 @@
         'su_Latn' => 'sundanés (latín)',
         'su_Latn_ID' => 'sundanés (latín, Indonesia)',
         'sv_AX' => 'sueco (Islas Åland)',
-        'sw' => 'swahili',
-        'sw_CD' => 'swahili (República Democrática del Congo)',
-        'sw_KE' => 'swahili (Kenia)',
-        'sw_TZ' => 'swahili (Tanzania)',
-        'sw_UG' => 'swahili (Uganda)',
         'uz_Latn' => 'uzbeko (latín)',
         'uz_Latn_UZ' => 'uzbeko (latín, Uzbekistán)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/es.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/es.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/es.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/es.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaiyano (cirílico, Azerbaiyán)',
         'az_Latn' => 'azerbaiyano (latino)',
         'az_Latn_AZ' => 'azerbaiyano (latino, Azerbaiyán)',
+        'ba' => 'baskir',
+        'ba_RU' => 'baskir (Rusia)',
         'be' => 'bielorruso',
         'be_BY' => 'bielorruso (Bielorrusia)',
         'bg' => 'búlgaro',
@@ -125,6 +127,7 @@
         'en_DE' => 'inglés (Alemania)',
         'en_DK' => 'inglés (Dinamarca)',
         'en_DM' => 'inglés (Dominica)',
+        'en_EE' => 'inglés (Estonia)',
         'en_ER' => 'inglés (Eritrea)',
         'en_ES' => 'inglés (España)',
         'en_FI' => 'inglés (Finlandia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'inglés (Francia)',
         'en_GB' => 'inglés (Reino Unido)',
         'en_GD' => 'inglés (Granada)',
+        'en_GE' => 'inglés (Georgia)',
         'en_GG' => 'inglés (Guernesey)',
         'en_GH' => 'inglés (Ghana)',
         'en_GI' => 'inglés (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'inglés (Italia)',
         'en_JE' => 'inglés (Jersey)',
         'en_JM' => 'inglés (Jamaica)',
+        'en_JP' => 'inglés (Japón)',
         'en_KE' => 'inglés (Kenia)',
         'en_KI' => 'inglés (Kiribati)',
         'en_KN' => 'inglés (San Cristóbal y Nieves)',
@@ -159,6 +164,8 @@
         'en_LC' => 'inglés (Santa Lucía)',
         'en_LR' => 'inglés (Liberia)',
         'en_LS' => 'inglés (Lesoto)',
+        'en_LT' => 'inglés (Lituania)',
+        'en_LV' => 'inglés (Letonia)',
         'en_MG' => 'inglés (Madagascar)',
         'en_MH' => 'inglés (Islas Marshall)',
         'en_MO' => 'inglés (RAE de Macao [China])',
@@ -205,6 +212,7 @@
         'en_TT' => 'inglés (Trinidad y Tobago)',
         'en_TV' => 'inglés (Tuvalu)',
         'en_TZ' => 'inglés (Tanzania)',
+        'en_UA' => 'inglés (Ucrania)',
         'en_UG' => 'inglés (Uganda)',
         'en_UM' => 'inglés (Islas menores alejadas de EE. UU.)',
         'en_US' => 'inglés (Estados Unidos)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenia)',
         'kk' => 'kazajo',
+        'kk_Arab' => 'kazajo (árabe)',
+        'kk_Arab_CN' => 'kazajo (árabe, China)',
         'kk_Cyrl' => 'kazajo (cirílico)',
         'kk_Cyrl_KZ' => 'kazajo (cirílico, Kazajistán)',
         'kk_KZ' => 'kazajo (Kazajistán)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'cachemir (devanagari, India)',
         'ks_IN' => 'cachemir (India)',
         'ku' => 'kurdo',
+        'ku_Latn' => 'kurdo (latino)',
+        'ku_Latn_IQ' => 'kurdo (latino, Irak)',
+        'ku_Latn_SY' => 'kurdo (latino, Siria)',
+        'ku_Latn_TR' => 'kurdo (latino, Turquía)',
+        'ku_SY' => 'kurdo (Siria)',
         'ku_TR' => 'kurdo (Turquía)',
         'kw' => 'córnico',
         'kw_GB' => 'córnico (Reino Unido)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/et.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/et.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/et.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/et.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'aserbaidžaani (kirillitsa, Aserbaidžaan)',
         'az_Latn' => 'aserbaidžaani (ladina)',
         'az_Latn_AZ' => 'aserbaidžaani (ladina, Aserbaidžaan)',
+        'ba' => 'baškiiri',
+        'ba_RU' => 'baškiiri (Venemaa)',
         'be' => 'valgevene',
         'be_BY' => 'valgevene (Valgevene)',
         'bg' => 'bulgaaria',
@@ -125,6 +127,7 @@
         'en_DE' => 'inglise (Saksamaa)',
         'en_DK' => 'inglise (Taani)',
         'en_DM' => 'inglise (Dominica)',
+        'en_EE' => 'inglise (Eesti)',
         'en_ER' => 'inglise (Eritrea)',
         'en_ES' => 'inglise (Hispaania)',
         'en_FI' => 'inglise (Soome)',
@@ -134,6 +137,7 @@
         'en_FR' => 'inglise (Prantsusmaa)',
         'en_GB' => 'inglise (Ühendkuningriik)',
         'en_GD' => 'inglise (Grenada)',
+        'en_GE' => 'inglise (Gruusia)',
         'en_GG' => 'inglise (Guernsey)',
         'en_GH' => 'inglise (Ghana)',
         'en_GI' => 'inglise (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'inglise (Itaalia)',
         'en_JE' => 'inglise (Jersey)',
         'en_JM' => 'inglise (Jamaica)',
+        'en_JP' => 'inglise (Jaapan)',
         'en_KE' => 'inglise (Keenia)',
         'en_KI' => 'inglise (Kiribati)',
         'en_KN' => 'inglise (Saint Kitts ja Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'inglise (Saint Lucia)',
         'en_LR' => 'inglise (Libeeria)',
         'en_LS' => 'inglise (Lesotho)',
+        'en_LT' => 'inglise (Leedu)',
+        'en_LV' => 'inglise (Läti)',
         'en_MG' => 'inglise (Madagaskar)',
         'en_MH' => 'inglise (Marshalli Saared)',
         'en_MO' => 'inglise (Macau erihalduspiirkond)',
@@ -205,6 +212,7 @@
         'en_TT' => 'inglise (Trinidad ja Tobago)',
         'en_TV' => 'inglise (Tuvalu)',
         'en_TZ' => 'inglise (Tansaania)',
+        'en_UA' => 'inglise (Ukraina)',
         'en_UG' => 'inglise (Uganda)',
         'en_UM' => 'inglise (Ühendriikide hajasaared)',
         'en_US' => 'inglise (Ameerika Ühendriigid)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuju',
         'ki_KE' => 'kikuju (Keenia)',
         'kk' => 'kasahhi',
+        'kk_Arab' => 'kasahhi (araabia)',
+        'kk_Arab_CN' => 'kasahhi (araabia, Hiina)',
         'kk_Cyrl' => 'kasahhi (kirillitsa)',
         'kk_Cyrl_KZ' => 'kasahhi (kirillitsa, Kasahstan)',
         'kk_KZ' => 'kasahhi (Kasahstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kašmiiri (devanaagari, India)',
         'ks_IN' => 'kašmiiri (India)',
         'ku' => 'kurdi',
+        'ku_Latn' => 'kurdi (ladina)',
+        'ku_Latn_IQ' => 'kurdi (ladina, Iraak)',
+        'ku_Latn_SY' => 'kurdi (ladina, Süüria)',
+        'ku_Latn_TR' => 'kurdi (ladina, Türgi)',
+        'ku_SY' => 'kurdi (Süüria)',
         'ku_TR' => 'kurdi (Türgi)',
         'kw' => 'korni',
         'kw_GB' => 'korni (Ühendkuningriik)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/eu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/eu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/eu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/eu.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaijanera (zirilikoa, Azerbaijan)',
         'az_Latn' => 'azerbaijanera (latinoa)',
         'az_Latn_AZ' => 'azerbaijanera (latinoa, Azerbaijan)',
+        'ba' => 'baxkirera',
+        'ba_RU' => 'baxkirera (Errusia)',
         'be' => 'bielorrusiera',
         'be_BY' => 'bielorrusiera (Bielorrusia)',
         'bg' => 'bulgariera',
@@ -125,6 +127,7 @@
         'en_DE' => 'ingelesa (Alemania)',
         'en_DK' => 'ingelesa (Danimarka)',
         'en_DM' => 'ingelesa (Dominika)',
+        'en_EE' => 'ingelesa (Estonia)',
         'en_ER' => 'ingelesa (Eritrea)',
         'en_ES' => 'ingelesa (Espainia)',
         'en_FI' => 'ingelesa (Finlandia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ingelesa (Frantzia)',
         'en_GB' => 'ingelesa (Erresuma Batua)',
         'en_GD' => 'ingelesa (Grenada)',
+        'en_GE' => 'ingelesa (Georgia)',
         'en_GG' => 'ingelesa (Guernesey)',
         'en_GH' => 'ingelesa (Ghana)',
         'en_GI' => 'ingelesa (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ingelesa (Italia)',
         'en_JE' => 'ingelesa (Jersey)',
         'en_JM' => 'ingelesa (Jamaika)',
+        'en_JP' => 'ingelesa (Japonia)',
         'en_KE' => 'ingelesa (Kenya)',
         'en_KI' => 'ingelesa (Kiribati)',
         'en_KN' => 'ingelesa (Saint Kitts eta Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ingelesa (Santa Luzia)',
         'en_LR' => 'ingelesa (Liberia)',
         'en_LS' => 'ingelesa (Lesotho)',
+        'en_LT' => 'ingelesa (Lituania)',
+        'en_LV' => 'ingelesa (Letonia)',
         'en_MG' => 'ingelesa (Madagaskar)',
         'en_MH' => 'ingelesa (Marshall Uharteak)',
         'en_MO' => 'ingelesa (Macau Txinako AEB)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ingelesa (Trinidad eta Tobago)',
         'en_TV' => 'ingelesa (Tuvalu)',
         'en_TZ' => 'ingelesa (Tanzania)',
+        'en_UA' => 'ingelesa (Ukraina)',
         'en_UG' => 'ingelesa (Uganda)',
         'en_UM' => 'ingelesa (Ameriketako Estatu Batuetako Kanpoaldeko Uharte Txikiak)',
         'en_US' => 'ingelesa (Ameriketako Estatu Batuak)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyuera',
         'ki_KE' => 'kikuyuera (Kenya)',
         'kk' => 'kazakhera',
+        'kk_Arab' => 'kazakhera (arabiarra)',
+        'kk_Arab_CN' => 'kazakhera (arabiarra, Txina)',
         'kk_Cyrl' => 'kazakhera (zirilikoa)',
         'kk_Cyrl_KZ' => 'kazakhera (zirilikoa, Kazakhstan)',
         'kk_KZ' => 'kazakhera (Kazakhstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kaxmirera (devanagaria, India)',
         'ks_IN' => 'kaxmirera (India)',
         'ku' => 'kurduera',
+        'ku_Latn' => 'kurduera (latinoa)',
+        'ku_Latn_IQ' => 'kurduera (latinoa, Irak)',
+        'ku_Latn_SY' => 'kurduera (latinoa, Siria)',
+        'ku_Latn_TR' => 'kurduera (latinoa, Turkia)',
+        'ku_SY' => 'kurduera (Siria)',
         'ku_TR' => 'kurduera (Turkia)',
         'kw' => 'kornubiera',
         'kw_GB' => 'kornubiera (Erresuma Batua)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fa_AF.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fa_AF.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fa_AF.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fa_AF.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,6 +32,7 @@
         'en_BS' => 'انگلیسی (بهاماس)',
         'en_CH' => 'انگلیسی (سویس)',
         'en_DK' => 'انگلیسی (دنمارک)',
+        'en_EE' => 'انگلیسی (استونیا)',
         'en_ER' => 'انگلیسی (اریتریا)',
         'en_ES' => 'انگلیسی (هسپانیه)',
         'en_FI' => 'انگلیسی (فنلند)',
@@ -42,8 +43,11 @@
         'en_HK' => 'انگلیسی (هانگ کانگ، ناحیهٔ ویژهٔ حکومتی چین)',
         'en_ID' => 'انگلیسی (اندونیزیا)',
         'en_IE' => 'انگلیسی (آیرلند)',
+        'en_JP' => 'انگلیسی (جاپان)',
         'en_KE' => 'انگلیسی (کینیا)',
         'en_LS' => 'انگلیسی (لیسوتو)',
+        'en_LT' => 'انگلیسی (لتوانیا)',
+        'en_LV' => 'انگلیسی (لاتویا)',
         'en_MG' => 'انگلیسی (مادغاسکر)',
         'en_MT' => 'انگلیسی (مالتا)',
         'en_MY' => 'انگلیسی (مالیزیا)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fa.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'ترکی آذربایجانی (سیریلی، جمهوری آذربایجان)',
         'az_Latn' => 'ترکی آذربایجانی (لاتین)',
         'az_Latn_AZ' => 'ترکی آذربایجانی (لاتین، جمهوری آذربایجان)',
+        'ba' => 'باشقیری',
+        'ba_RU' => 'باشقیری (روسیه)',
         'be' => 'بلاروسی',
         'be_BY' => 'بلاروسی (بلاروس)',
         'bg' => 'بلغاری',
@@ -125,6 +127,7 @@
         'en_DE' => 'انگلیسی (آلمان)',
         'en_DK' => 'انگلیسی (دانمارک)',
         'en_DM' => 'انگلیسی (دومینیکا)',
+        'en_EE' => 'انگلیسی (استونی)',
         'en_ER' => 'انگلیسی (اریتره)',
         'en_ES' => 'انگلیسی (اسپانیا)',
         'en_FI' => 'انگلیسی (فنلاند)',
@@ -134,6 +137,7 @@
         'en_FR' => 'انگلیسی (فرانسه)',
         'en_GB' => 'انگلیسی (بریتانیا)',
         'en_GD' => 'انگلیسی (گرنادا)',
+        'en_GE' => 'انگلیسی (گرجستان)',
         'en_GG' => 'انگلیسی (گرنزی)',
         'en_GH' => 'انگلیسی (غنا)',
         'en_GI' => 'انگلیسی (جبل‌الطارق)',
@@ -152,6 +156,7 @@
         'en_IT' => 'انگلیسی (ایتالیا)',
         'en_JE' => 'انگلیسی (جرزی)',
         'en_JM' => 'انگلیسی (جامائیکا)',
+        'en_JP' => 'انگلیسی (ژاپن)',
         'en_KE' => 'انگلیسی (کنیا)',
         'en_KI' => 'انگلیسی (کیریباتی)',
         'en_KN' => 'انگلیسی (سنت کیتس و نویس)',
@@ -159,6 +164,8 @@
         'en_LC' => 'انگلیسی (سنت لوسیا)',
         'en_LR' => 'انگلیسی (لیبریا)',
         'en_LS' => 'انگلیسی (لسوتو)',
+        'en_LT' => 'انگلیسی (لیتوانی)',
+        'en_LV' => 'انگلیسی (لتونی)',
         'en_MG' => 'انگلیسی (ماداگاسکار)',
         'en_MH' => 'انگلیسی (جزایر مارشال)',
         'en_MO' => 'انگلیسی (ماکائو، منطقهٔ ویژهٔ اداری چین)',
@@ -205,6 +212,7 @@
         'en_TT' => 'انگلیسی (ترینیداد و توباگو)',
         'en_TV' => 'انگلیسی (تووالو)',
         'en_TZ' => 'انگلیسی (تانزانیا)',
+        'en_UA' => 'انگلیسی (اوکراین)',
         'en_UG' => 'انگلیسی (اوگاندا)',
         'en_UM' => 'انگلیسی (جزایر دورافتادهٔ ایالات متحده)',
         'en_US' => 'انگلیسی (ایالات متحده)',
@@ -391,6 +399,8 @@
         'ki' => 'کیکویویی',
         'ki_KE' => 'کیکویویی (کنیا)',
         'kk' => 'قزاقی',
+        'kk_Arab' => 'قزاقی (عربی)',
+        'kk_Arab_CN' => 'قزاقی (عربی، چین)',
         'kk_Cyrl' => 'قزاقی (سیریلی)',
         'kk_Cyrl_KZ' => 'قزاقی (سیریلی، قزاقستان)',
         'kk_KZ' => 'قزاقی (قزاقستان)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'کشمیری (دوناگری، هند)',
         'ks_IN' => 'کشمیری (هند)',
         'ku' => 'کردی',
+        'ku_Latn' => 'کردی (لاتین)',
+        'ku_Latn_IQ' => 'کردی (لاتین، عراق)',
+        'ku_Latn_SY' => 'کردی (لاتین، سوریه)',
+        'ku_Latn_TR' => 'کردی (لاتین، ترکیه)',
+        'ku_SY' => 'کردی (سوریه)',
         'ku_TR' => 'کردی (ترکیه)',
         'kw' => 'کورنی',
         'kw_GB' => 'کورنی (بریتانیا)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ff_Adlm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ff_Adlm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ff_Adlm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ff_Adlm.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => '𞤀𞤶𞤢𞤪𞤦𞤢𞤴𞤭𞤶𞤢𞤲𞤭𞥅𞤪𞤫 (𞤅𞤭𞤪𞤤𞤭𞤳⹁ 𞤀𞥁𞤫𞤪𞤦𞤢𞤭𞤶𞤢𞥄𞤲)',
         'az_Latn' => '𞤀𞤶𞤢𞤪𞤦𞤢𞤴𞤭𞤶𞤢𞤲𞤭𞥅𞤪𞤫 (𞤂𞤢𞤼𞤫𞤲)',
         'az_Latn_AZ' => '𞤀𞤶𞤢𞤪𞤦𞤢𞤴𞤭𞤶𞤢𞤲𞤭𞥅𞤪𞤫 (𞤂𞤢𞤼𞤫𞤲⹁ 𞤀𞥁𞤫𞤪𞤦𞤢𞤭𞤶𞤢𞥄𞤲)',
+        'ba' => '𞤄𞤢𞤧𞤳𞤭𞥅𞤪𞤫',
+        'ba_RU' => '𞤄𞤢𞤧𞤳𞤭𞥅𞤪𞤫 (𞤈𞤮𞥅𞤧𞤭𞤴𞤢)',
         'be' => '𞤄𞤫𞤤𞤢𞤪𞤭𞥅𞤧𞤭𞥅𞤪𞤫',
         'be_BY' => '𞤄𞤫𞤤𞤢𞤪𞤭𞥅𞤧𞤭𞥅𞤪𞤫 (𞤄𞤫𞤤𞤢𞤪𞤵𞥅𞤧)',
         'bg' => '𞤄𞤭𞤤𞤺𞤢𞥄𞤪𞤫',
@@ -125,6 +127,7 @@
         'en_DE' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤔𞤫𞤪𞤥𞤢𞤲𞤭𞥅)',
         'en_DK' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤁𞤢𞤲𞤵𞤥𞤢𞤪𞤳)',
         'en_DM' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤁𞤮𞤥𞤭𞤲𞤭𞤳𞤢𞥄)',
+        'en_EE' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤉𞤧𞤼𞤮𞤲𞤭𞤴𞤢𞥄)',
         'en_ER' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤉𞤪𞤭𞥅𞤼𞤫𞤪𞤫)',
         'en_ES' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤉𞤧𞤨𞤢𞤻𞤢𞥄)',
         'en_FI' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤊𞤭𞤲𞤤𞤢𞤲𞤣)',
@@ -134,6 +137,7 @@
         'en_FR' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤊𞤢𞤪𞤢𞤲𞤧𞤭)',
         'en_GB' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤁𞤫𞤲𞤼𞤢𞤤 𞤐𞤺𞤫𞤯𞤵𞥅𞤪𞤭)',
         'en_GD' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤘𞤢𞤪𞤲𞤢𞤣𞤢𞥄)',
+        'en_GE' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤔𞤮𞤪𞤶𞤭𞤴𞤢𞥄)',
         'en_GG' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤘𞤢𞤪𞤲𞤫𞤧𞤭𞥅)',
         'en_GH' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤘𞤢𞤲𞤢)',
         'en_GI' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤔𞤭𞤦𞤪𞤢𞤤𞤼𞤢𞥄)',
@@ -151,6 +155,7 @@
         'en_IT' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤋𞤼𞤢𞤤𞤭𞥅)',
         'en_JE' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤔𞤫𞤪𞤧𞤭𞥅)',
         'en_JM' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤔𞤢𞤥𞤢𞤴𞤳𞤢𞥄)',
+        'en_JP' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤐𞤭𞤨𞥆𞤮𞤲)',
         'en_KE' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤑𞤫𞤲𞤭𞤴𞤢𞥄)',
         'en_KI' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤑𞤭𞤪𞤦𞤢𞤼𞤭𞥅)',
         'en_KN' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤅𞤼. 𞤑𞤪𞤭𞤧𞤼𞤮𞤦𞤢𞤤 & 𞤐𞤫𞥅𞤾𞤭𞤧)',
@@ -158,6 +163,8 @@
         'en_LC' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤅𞤼. 𞤂𞤵𞥅𞤧𞤭𞤴𞤢)',
         'en_LR' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤂𞤢𞤦𞤭𞤪𞤭𞤴𞤢𞥄)',
         'en_LS' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤂𞤫𞤧𞤮𞤼𞤮𞥅)',
+        'en_LT' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤂𞤭𞤼𞤵𞤾𞤢)',
+        'en_LV' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤂𞤢𞤼𞤾𞤭𞤴𞤢)',
         'en_MG' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤃𞤢𞤣𞤢𞤺𞤢𞤧𞤳𞤢𞥄𞤪)',
         'en_MH' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤅𞤵𞤪𞤭𞥅𞤪𞤫 𞤃𞤢𞤪𞥃𞤢𞤤)',
         'en_MO' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤖𞤂𞤀 𞤕𞤢𞤴𞤲𞤢 𞤫 𞤃𞤢𞤳𞤢𞤱𞤮𞥅)',
@@ -204,6 +211,7 @@
         'en_TT' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤚𞤭𞤪𞤲𞤭𞤣𞤢𞥄𞤣 & 𞤚𞤮𞤦𞤢𞤺𞤮𞥅)',
         'en_TV' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤚𞤵𞥅𞤾𞤢𞤤𞤵)',
         'en_TZ' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤚𞤢𞤲𞤧𞤢𞤲𞤭𞥅)',
+        'en_UA' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤓𞤳𞤪𞤫𞥅𞤲𞤭𞤴𞤢)',
         'en_UG' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤓𞤺𞤢𞤲𞤣𞤢𞥄)',
         'en_UM' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤕𞤵𞤪𞤭𞥅𞤶𞤫 𞤁𞤢𞥄𞤴𞤭𞥅𞤯𞤫 𞤁𞤂𞤀)',
         'en_US' => '𞤉𞤲𞤺𞤭𞤤𞤫𞥅𞤪𞤫 (𞤁𞤫𞤲𞤼𞤢𞤤 𞤂𞤢𞤪𞤫)',
@@ -388,6 +396,8 @@
         'ki' => '𞤑𞤭𞤳𞤵𞤴𞤵𞥅𞤪𞤫',
         'ki_KE' => '𞤑𞤭𞤳𞤵𞤴𞤵𞥅𞤪𞤫 (𞤑𞤫𞤲𞤭𞤴𞤢𞥄)',
         'kk' => '𞤑𞤢𞥁𞤢𞤳𞤪𞤫',
+        'kk_Arab' => '𞤑𞤢𞥁𞤢𞤳𞤪𞤫 (𞤀𞥄𞤪𞤢𞤦𞤵)',
+        'kk_Arab_CN' => '𞤑𞤢𞥁𞤢𞤳𞤪𞤫 (𞤀𞥄𞤪𞤢𞤦𞤵⹁ 𞤕𞤢𞤴𞤲𞤢)',
         'kk_Cyrl' => '𞤑𞤢𞥁𞤢𞤳𞤪𞤫 (𞤅𞤭𞤪𞤤𞤭𞤳)',
         'kk_Cyrl_KZ' => '𞤑𞤢𞥁𞤢𞤳𞤪𞤫 (𞤅𞤭𞤪𞤤𞤭𞤳⹁ 𞤑𞤢𞥁𞤢𞤧𞤼𞤢𞥄𞤲)',
         'kk_KZ' => '𞤑𞤢𞥁𞤢𞤳𞤪𞤫 (𞤑𞤢𞥁𞤢𞤧𞤼𞤢𞥄𞤲)',
@@ -408,6 +418,11 @@
         'ks_Deva_IN' => '𞤑𞤢𞥃𞤥𞤭𞥅𞤪𞤫 (𞤁𞤫𞤾𞤢𞤲𞤢𞤺𞤢𞤪𞤭⹁ 𞤋𞤲𞤣𞤭𞤴𞤢)',
         'ks_IN' => '𞤑𞤢𞥃𞤥𞤭𞥅𞤪𞤫 (𞤋𞤲𞤣𞤭𞤴𞤢)',
         'ku' => '𞤑𞤵𞤪𞤣𞤭𞤧𞤭𞥅𞤪𞤫',
+        'ku_Latn' => '𞤑𞤵𞤪𞤣𞤭𞤧𞤭𞥅𞤪𞤫 (𞤂𞤢𞤼𞤫𞤲)',
+        'ku_Latn_IQ' => '𞤑𞤵𞤪𞤣𞤭𞤧𞤭𞥅𞤪𞤫 (𞤂𞤢𞤼𞤫𞤲⹁ 𞤋𞤪𞤢𞥄𞤳)',
+        'ku_Latn_SY' => '𞤑𞤵𞤪𞤣𞤭𞤧𞤭𞥅𞤪𞤫 (𞤂𞤢𞤼𞤫𞤲⹁ 𞤅𞤵𞥅𞤪𞤭𞤴𞤢𞥄)',
+        'ku_Latn_TR' => '𞤑𞤵𞤪𞤣𞤭𞤧𞤭𞥅𞤪𞤫 (𞤂𞤢𞤼𞤫𞤲⹁ 𞤚𞤵𞤪𞤳𞤭𞤴𞤢𞥄)',
+        'ku_SY' => '𞤑𞤵𞤪𞤣𞤭𞤧𞤭𞥅𞤪𞤫 (𞤅𞤵𞥅𞤪𞤭𞤴𞤢𞥄)',
         'ku_TR' => '𞤑𞤵𞤪𞤣𞤭𞤧𞤭𞥅𞤪𞤫 (𞤚𞤵𞤪𞤳𞤭𞤴𞤢𞥄)',
         'kw' => '𞤑𞤮𞤪𞤲𞤭𞥅𞤪𞤫',
         'kw_GB' => '𞤑𞤮𞤪𞤲𞤭𞥅𞤪𞤫 (𞤁𞤫𞤲𞤼𞤢𞤤 𞤐𞤺𞤫𞤯𞤵𞥅𞤪𞤭)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ff.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ff.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ff.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ff.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,6 +75,7 @@
         'en_DE' => 'Engeleere (Almaañ)',
         'en_DK' => 'Engeleere (Danmark)',
         'en_DM' => 'Engeleere (Dominika)',
+        'en_EE' => 'Engeleere (Estoni)',
         'en_ER' => 'Engeleere (Eriteree)',
         'en_ES' => 'Engeleere (Espaañ)',
         'en_FI' => 'Engeleere (Fenland)',
@@ -84,6 +85,7 @@
         'en_FR' => 'Engeleere (Farayse)',
         'en_GB' => 'Engeleere (Laamateeri Rentundi)',
         'en_GD' => 'Engeleere (Garnaad)',
+        'en_GE' => 'Engeleere (Jeorgii)',
         'en_GH' => 'Engeleere (Ganaa)',
         'en_GI' => 'Engeleere (Jibraltaar)',
         'en_GM' => 'Engeleere (Gammbi)',
@@ -96,6 +98,7 @@
         'en_IN' => 'Engeleere (Enndo)',
         'en_IT' => 'Engeleere (Itali)',
         'en_JM' => 'Engeleere (Jamayka)',
+        'en_JP' => 'Engeleere (Sapoo)',
         'en_KE' => 'Engeleere (Keñaa)',
         'en_KI' => 'Engeleere (Kiribari)',
         'en_KN' => 'Engeleere (Sent Kits e Newis)',
@@ -103,6 +106,8 @@
         'en_LC' => 'Engeleere (Sent Lusiyaa)',
         'en_LR' => 'Engeleere (Liberiyaa)',
         'en_LS' => 'Engeleere (Lesoto)',
+        'en_LT' => 'Engeleere (Lituaanii)',
+        'en_LV' => 'Engeleere (Letonii)',
         'en_MG' => 'Engeleere (Madagaskaar)',
         'en_MH' => 'Engeleere (Duuɗe Marsaal)',
         'en_MP' => 'Engeleere (Duuɗe Mariyaana Rewo)',
@@ -146,6 +151,7 @@
         'en_TT' => 'Engeleere (Tirnidaad e Tobaago)',
         'en_TV' => 'Engeleere (Tuwaluu)',
         'en_TZ' => 'Engeleere (Tansanii)',
+        'en_UA' => 'Engeleere (Ukereen)',
         'en_UG' => 'Engeleere (Unganndaa)',
         'en_US' => 'Engeleere (Dowlaaji Dentuɗi Amerik)',
         'en_VC' => 'Engeleere (See Weesaa e Garnadiin)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fi.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azeri (kyrillinen, Azerbaidžan)',
         'az_Latn' => 'azeri (latinalainen)',
         'az_Latn_AZ' => 'azeri (latinalainen, Azerbaidžan)',
+        'ba' => 'baškiiri',
+        'ba_RU' => 'baškiiri (Venäjä)',
         'be' => 'valkovenäjä',
         'be_BY' => 'valkovenäjä (Valko-Venäjä)',
         'bg' => 'bulgaria',
@@ -125,6 +127,7 @@
         'en_DE' => 'englanti (Saksa)',
         'en_DK' => 'englanti (Tanska)',
         'en_DM' => 'englanti (Dominica)',
+        'en_EE' => 'englanti (Viro)',
         'en_ER' => 'englanti (Eritrea)',
         'en_ES' => 'englanti (Espanja)',
         'en_FI' => 'englanti (Suomi)',
@@ -134,6 +137,7 @@
         'en_FR' => 'englanti (Ranska)',
         'en_GB' => 'englanti (Iso-Britannia)',
         'en_GD' => 'englanti (Grenada)',
+        'en_GE' => 'englanti (Georgia)',
         'en_GG' => 'englanti (Guernsey)',
         'en_GH' => 'englanti (Ghana)',
         'en_GI' => 'englanti (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'englanti (Italia)',
         'en_JE' => 'englanti (Jersey)',
         'en_JM' => 'englanti (Jamaika)',
+        'en_JP' => 'englanti (Japani)',
         'en_KE' => 'englanti (Kenia)',
         'en_KI' => 'englanti (Kiribati)',
         'en_KN' => 'englanti (Saint Kitts ja Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'englanti (Saint Lucia)',
         'en_LR' => 'englanti (Liberia)',
         'en_LS' => 'englanti (Lesotho)',
+        'en_LT' => 'englanti (Liettua)',
+        'en_LV' => 'englanti (Latvia)',
         'en_MG' => 'englanti (Madagaskar)',
         'en_MH' => 'englanti (Marshallinsaaret)',
         'en_MO' => 'englanti (Macao – Kiinan erityishallintoalue)',
@@ -205,6 +212,7 @@
         'en_TT' => 'englanti (Trinidad ja Tobago)',
         'en_TV' => 'englanti (Tuvalu)',
         'en_TZ' => 'englanti (Tansania)',
+        'en_UA' => 'englanti (Ukraina)',
         'en_UG' => 'englanti (Uganda)',
         'en_UM' => 'englanti (Yhdysvaltain erillissaaret)',
         'en_US' => 'englanti (Yhdysvallat)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuju',
         'ki_KE' => 'kikuju (Kenia)',
         'kk' => 'kazakki',
+        'kk_Arab' => 'kazakki (arabialainen)',
+        'kk_Arab_CN' => 'kazakki (arabialainen, Kiina)',
         'kk_Cyrl' => 'kazakki (kyrillinen)',
         'kk_Cyrl_KZ' => 'kazakki (kyrillinen, Kazakstan)',
         'kk_KZ' => 'kazakki (Kazakstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kašmiri (devanagari, Intia)',
         'ks_IN' => 'kašmiri (Intia)',
         'ku' => 'kurdi',
+        'ku_Latn' => 'kurdi (latinalainen)',
+        'ku_Latn_IQ' => 'kurdi (latinalainen, Irak)',
+        'ku_Latn_SY' => 'kurdi (latinalainen, Syyria)',
+        'ku_Latn_TR' => 'kurdi (latinalainen, Turkki)',
+        'ku_SY' => 'kurdi (Syyria)',
         'ku_TR' => 'kurdi (Turkki)',
         'kw' => 'korni',
         'kw_GB' => 'korni (Iso-Britannia)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fo.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'aserbajdsjanskt (kyrilliskt, Aserbadjan)',
         'az_Latn' => 'aserbajdsjanskt (latínskt)',
         'az_Latn_AZ' => 'aserbajdsjanskt (latínskt, Aserbadjan)',
+        'ba' => 'bashkir',
+        'ba_RU' => 'bashkir (Russland)',
         'be' => 'hvitarussiskt',
         'be_BY' => 'hvitarussiskt (Hvítarussland)',
         'bg' => 'bulgarskt',
@@ -125,6 +127,7 @@
         'en_DE' => 'enskt (Týskland)',
         'en_DK' => 'enskt (Danmark)',
         'en_DM' => 'enskt (Dominika)',
+        'en_EE' => 'enskt (Estland)',
         'en_ER' => 'enskt (Eritrea)',
         'en_ES' => 'enskt (Spania)',
         'en_FI' => 'enskt (Finnland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'enskt (Frakland)',
         'en_GB' => 'enskt (Stórabretland)',
         'en_GD' => 'enskt (Grenada)',
+        'en_GE' => 'enskt (Georgia)',
         'en_GG' => 'enskt (Guernsey)',
         'en_GH' => 'enskt (Gana)',
         'en_GI' => 'enskt (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'enskt (Italia)',
         'en_JE' => 'enskt (Jersey)',
         'en_JM' => 'enskt (Jamaika)',
+        'en_JP' => 'enskt (Japan)',
         'en_KE' => 'enskt (Kenja)',
         'en_KI' => 'enskt (Kiribati)',
         'en_KN' => 'enskt (St. Kitts & Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'enskt (St. Lusia)',
         'en_LR' => 'enskt (Liberia)',
         'en_LS' => 'enskt (Lesoto)',
+        'en_LT' => 'enskt (Litava)',
+        'en_LV' => 'enskt (Lettland)',
         'en_MG' => 'enskt (Madagaskar)',
         'en_MH' => 'enskt (Marshalloyggjar)',
         'en_MO' => 'enskt (Makao SAR Kina)',
@@ -205,6 +212,7 @@
         'en_TT' => 'enskt (Trinidad & Tobago)',
         'en_TV' => 'enskt (Tuvalu)',
         'en_TZ' => 'enskt (Tansania)',
+        'en_UA' => 'enskt (Ukraina)',
         'en_UG' => 'enskt (Uganda)',
         'en_UM' => 'enskt (Sambandsríki Amerikas fjarskotnu oyggjar)',
         'en_US' => 'enskt (Sambandsríki Amerika)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenja)',
         'kk' => 'kazakh',
+        'kk_Arab' => 'kazakh (arabisk)',
+        'kk_Arab_CN' => 'kazakh (arabisk, Kina)',
         'kk_Cyrl' => 'kazakh (kyrilliskt)',
         'kk_Cyrl_KZ' => 'kazakh (kyrilliskt, Kasakstan)',
         'kk_KZ' => 'kazakh (Kasakstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kashmiri (devanagari, India)',
         'ks_IN' => 'kashmiri (India)',
         'ku' => 'kurdiskt',
+        'ku_Latn' => 'kurdiskt (latínskt)',
+        'ku_Latn_IQ' => 'kurdiskt (latínskt, Irak)',
+        'ku_Latn_SY' => 'kurdiskt (latínskt, Sýria)',
+        'ku_Latn_TR' => 'kurdiskt (latínskt, Turkaland)',
+        'ku_SY' => 'kurdiskt (Sýria)',
         'ku_TR' => 'kurdiskt (Turkaland)',
         'kw' => 'corniskt',
         'kw_GB' => 'corniskt (Stórabretland)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fr.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaïdjanais (cyrillique, Azerbaïdjan)',
         'az_Latn' => 'azerbaïdjanais (latin)',
         'az_Latn_AZ' => 'azerbaïdjanais (latin, Azerbaïdjan)',
+        'ba' => 'bachkir',
+        'ba_RU' => 'bachkir (Russie)',
         'be' => 'biélorusse',
         'be_BY' => 'biélorusse (Biélorussie)',
         'bg' => 'bulgare',
@@ -125,6 +127,7 @@
         'en_DE' => 'anglais (Allemagne)',
         'en_DK' => 'anglais (Danemark)',
         'en_DM' => 'anglais (Dominique)',
+        'en_EE' => 'anglais (Estonie)',
         'en_ER' => 'anglais (Érythrée)',
         'en_ES' => 'anglais (Espagne)',
         'en_FI' => 'anglais (Finlande)',
@@ -134,6 +137,7 @@
         'en_FR' => 'anglais (France)',
         'en_GB' => 'anglais (Royaume-Uni)',
         'en_GD' => 'anglais (Grenade)',
+        'en_GE' => 'anglais (Géorgie)',
         'en_GG' => 'anglais (Guernesey)',
         'en_GH' => 'anglais (Ghana)',
         'en_GI' => 'anglais (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'anglais (Italie)',
         'en_JE' => 'anglais (Jersey)',
         'en_JM' => 'anglais (Jamaïque)',
+        'en_JP' => 'anglais (Japon)',
         'en_KE' => 'anglais (Kenya)',
         'en_KI' => 'anglais (Kiribati)',
         'en_KN' => 'anglais (Saint-Christophe-et-Niévès)',
@@ -159,6 +164,8 @@
         'en_LC' => 'anglais (Sainte-Lucie)',
         'en_LR' => 'anglais (Liberia)',
         'en_LS' => 'anglais (Lesotho)',
+        'en_LT' => 'anglais (Lituanie)',
+        'en_LV' => 'anglais (Lettonie)',
         'en_MG' => 'anglais (Madagascar)',
         'en_MH' => 'anglais (Îles Marshall)',
         'en_MO' => 'anglais (R.A.S. chinoise de Macao)',
@@ -205,6 +212,7 @@
         'en_TT' => 'anglais (Trinité-et-Tobago)',
         'en_TV' => 'anglais (Tuvalu)',
         'en_TZ' => 'anglais (Tanzanie)',
+        'en_UA' => 'anglais (Ukraine)',
         'en_UG' => 'anglais (Ouganda)',
         'en_UM' => 'anglais (Îles mineures éloignées des États-Unis)',
         'en_US' => 'anglais (États-Unis)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenya)',
         'kk' => 'kazakh',
+        'kk_Arab' => 'kazakh (arabe)',
+        'kk_Arab_CN' => 'kazakh (arabe, Chine)',
         'kk_Cyrl' => 'kazakh (cyrillique)',
         'kk_Cyrl_KZ' => 'kazakh (cyrillique, Kazakhstan)',
         'kk_KZ' => 'kazakh (Kazakhstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'cachemiri (dévanagari, Inde)',
         'ks_IN' => 'cachemiri (Inde)',
         'ku' => 'kurde',
+        'ku_Latn' => 'kurde (latin)',
+        'ku_Latn_IQ' => 'kurde (latin, Irak)',
+        'ku_Latn_SY' => 'kurde (latin, Syrie)',
+        'ku_Latn_TR' => 'kurde (latin, Turquie)',
+        'ku_SY' => 'kurde (Syrie)',
         'ku_TR' => 'kurde (Turquie)',
         'kw' => 'cornique',
         'kw_GB' => 'cornique (Royaume-Uni)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/fy.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Azerbeidzjaansk (Syrillysk, Azerbeidzjan)',
         'az_Latn' => 'Azerbeidzjaansk (Latyn)',
         'az_Latn_AZ' => 'Azerbeidzjaansk (Latyn, Azerbeidzjan)',
+        'ba' => 'Basjkiersk',
+        'ba_RU' => 'Basjkiersk (Ruslân)',
         'be' => 'Wyt-Russysk',
         'be_BY' => 'Wyt-Russysk (Wit-Ruslân)',
         'bg' => 'Bulgaarsk',
@@ -125,6 +127,7 @@
         'en_DE' => 'Ingelsk (Dútslân)',
         'en_DK' => 'Ingelsk (Denemarken)',
         'en_DM' => 'Ingelsk (Dominika)',
+        'en_EE' => 'Ingelsk (Estlân)',
         'en_ER' => 'Ingelsk (Eritrea)',
         'en_ES' => 'Ingelsk (Spanje)',
         'en_FI' => 'Ingelsk (Finlân)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Ingelsk (Frankrijk)',
         'en_GB' => 'Ingelsk (Verenigd Koninkrijk)',
         'en_GD' => 'Ingelsk (Grenada)',
+        'en_GE' => 'Ingelsk (Georgië)',
         'en_GG' => 'Ingelsk (Guernsey)',
         'en_GH' => 'Ingelsk (Ghana)',
         'en_GI' => 'Ingelsk (Gibraltar)',
@@ -151,6 +155,7 @@
         'en_IT' => 'Ingelsk (Italië)',
         'en_JE' => 'Ingelsk (Jersey)',
         'en_JM' => 'Ingelsk (Jamaica)',
+        'en_JP' => 'Ingelsk (Japan)',
         'en_KE' => 'Ingelsk (Kenia)',
         'en_KI' => 'Ingelsk (Kiribati)',
         'en_KN' => 'Ingelsk (Saint Kitts en Nevis)',
@@ -158,6 +163,8 @@
         'en_LC' => 'Ingelsk (Saint Lucia)',
         'en_LR' => 'Ingelsk (Liberia)',
         'en_LS' => 'Ingelsk (Lesotho)',
+        'en_LT' => 'Ingelsk (Litouwen)',
+        'en_LV' => 'Ingelsk (Letlân)',
         'en_MG' => 'Ingelsk (Madeiaskar)',
         'en_MH' => 'Ingelsk (Marshalleilannen)',
         'en_MO' => 'Ingelsk (Macao SAR van Sina)',
@@ -204,6 +211,7 @@
         'en_TT' => 'Ingelsk (Trinidad en Tobago)',
         'en_TV' => 'Ingelsk (Tuvalu)',
         'en_TZ' => 'Ingelsk (Tanzania)',
+        'en_UA' => 'Ingelsk (Oekraïne)',
         'en_UG' => 'Ingelsk (Oeganda)',
         'en_UM' => 'Ingelsk (Lyts ôflizzen eilannen fan de Ferienigde Staten)',
         'en_US' => 'Ingelsk (Ferienigde Staten)',
@@ -377,6 +385,8 @@
         'ki' => 'Kikuyu',
         'ki_KE' => 'Kikuyu (Kenia)',
         'kk' => 'Kazachs',
+        'kk_Arab' => 'Kazachs (Arabysk)',
+        'kk_Arab_CN' => 'Kazachs (Arabysk, Sina)',
         'kk_Cyrl' => 'Kazachs (Syrillysk)',
         'kk_Cyrl_KZ' => 'Kazachs (Syrillysk, Kazachstan)',
         'kk_KZ' => 'Kazachs (Kazachstan)',
@@ -397,6 +407,11 @@
         'ks_Deva_IN' => 'Kasjmiri (Devanagari, India)',
         'ks_IN' => 'Kasjmiri (India)',
         'ku' => 'Koerdysk',
+        'ku_Latn' => 'Koerdysk (Latyn)',
+        'ku_Latn_IQ' => 'Koerdysk (Latyn, Irak)',
+        'ku_Latn_SY' => 'Koerdysk (Latyn, Syrië)',
+        'ku_Latn_TR' => 'Koerdysk (Latyn, Turkije)',
+        'ku_SY' => 'Koerdysk (Syrië)',
         'ku_TR' => 'Koerdysk (Turkije)',
         'kw' => 'Cornish',
         'kw_GB' => 'Cornish (Verenigd Koninkrijk)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ga.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ga.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ga.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ga.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,9 +14,9 @@
         'ar_AE' => 'Araibis (Aontas na nÉimíríochtaí Arabacha)',
         'ar_BH' => 'Araibis (Bairéin)',
         'ar_DJ' => 'Araibis (Djibouti)',
-        'ar_DZ' => 'Araibis (An Ailgéir)',
-        'ar_EG' => 'Araibis (An Éigipt)',
-        'ar_EH' => 'Araibis (An Sahára Thiar)',
+        'ar_DZ' => 'Araibis (an Ailgéir)',
+        'ar_EG' => 'Araibis (an Éigipt)',
+        'ar_EH' => 'Araibis (an Sahára Thiar)',
         'ar_ER' => 'Araibis (an Eiritré)',
         'ar_IL' => 'Araibis (Iosrael)',
         'ar_IQ' => 'Araibis (an Iaráic)',
@@ -24,19 +24,19 @@
         'ar_KM' => 'Araibis (Oileáin Chomóra)',
         'ar_KW' => 'Araibis (Cuáit)',
         'ar_LB' => 'Araibis (an Liobáin)',
-        'ar_LY' => 'Araibis (An Libia)',
+        'ar_LY' => 'Araibis (an Libia)',
         'ar_MA' => 'Araibis (Maracó)',
-        'ar_MR' => 'Araibis (An Mháratái)',
+        'ar_MR' => 'Araibis (an Mháratáin)',
         'ar_OM' => 'Araibis (Óman)',
         'ar_PS' => 'Araibis (na Críocha Palaistíneacha)',
         'ar_QA' => 'Araibis (Catar)',
         'ar_SA' => 'Araibis (an Araib Shádach)',
-        'ar_SD' => 'Araibis (An tSúdáin)',
+        'ar_SD' => 'Araibis (an tSúdáin)',
         'ar_SO' => 'Araibis (an tSomáil)',
         'ar_SS' => 'Araibis (an tSúdáin Theas)',
         'ar_SY' => 'Araibis (an tSiria)',
         'ar_TD' => 'Araibis (Sead)',
-        'ar_TN' => 'Araibis (An Tuinéis)',
+        'ar_TN' => 'Araibis (an Tuinéis)',
         'ar_YE' => 'Araibis (Éimin)',
         'as' => 'Asaimis',
         'as_IN' => 'Asaimis (an India)',
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Asarbaiseáinis (Coireallach, an Asarbaiseáin)',
         'az_Latn' => 'Asarbaiseáinis (Laidineach)',
         'az_Latn_AZ' => 'Asarbaiseáinis (Laidineach, an Asarbaiseáin)',
+        'ba' => 'Baiscíris',
+        'ba_RU' => 'Baiscíris (an Rúis)',
         'be' => 'Bealarúisis',
         'be_BY' => 'Bealarúisis (an Bhealarúis)',
         'bg' => 'Bulgáiris',
@@ -125,6 +127,7 @@
         'en_DE' => 'Béarla (an Ghearmáin)',
         'en_DK' => 'Béarla (an Danmhairg)',
         'en_DM' => 'Béarla (Doiminice)',
+        'en_EE' => 'Béarla (an Eastóin)',
         'en_ER' => 'Béarla (an Eiritré)',
         'en_ES' => 'Béarla (an Spáinn)',
         'en_FI' => 'Béarla (an Fhionlainn)',
@@ -134,10 +137,11 @@
         'en_FR' => 'Béarla (an Fhrainc)',
         'en_GB' => 'Béarla (an Ríocht Aontaithe)',
         'en_GD' => 'Béarla (Greanáda)',
+        'en_GE' => 'Béarla (an tSeoirsia)',
         'en_GG' => 'Béarla (Geansaí)',
         'en_GH' => 'Béarla (Gána)',
         'en_GI' => 'Béarla (Giobráltar)',
-        'en_GM' => 'Béarla (An Ghaimbia)',
+        'en_GM' => 'Béarla (an Ghaimbia)',
         'en_GS' => 'Béarla (An tSeoirsia Theas agus Oileáin Sandwich Theas)',
         'en_GU' => 'Béarla (Guam)',
         'en_GY' => 'Béarla (An Ghuáin)',
@@ -152,13 +156,16 @@
         'en_IT' => 'Béarla (an Iodáil)',
         'en_JE' => 'Béarla (Geirsí)',
         'en_JM' => 'Béarla (Iamáice)',
+        'en_JP' => 'Béarla (an tSeapáin)',
         'en_KE' => 'Béarla (an Chéinia)',
         'en_KI' => 'Béarla (Ciribeas)',
         'en_KN' => 'Béarla (San Críostóir-Nimheas)',
         'en_KY' => 'Béarla (Oileáin Cayman)',
         'en_LC' => 'Béarla (Saint Lucia)',
-        'en_LR' => 'Béarla (An Libéir)',
+        'en_LR' => 'Béarla (an Libéir)',
         'en_LS' => 'Béarla (Leosóta)',
+        'en_LT' => 'Béarla (an Liotuáin)',
+        'en_LV' => 'Béarla (an Laitvia)',
         'en_MG' => 'Béarla (Madagascar)',
         'en_MH' => 'Béarla (Oileáin Marshall)',
         'en_MO' => 'Béarla (Sainréigiún Riaracháin Macao, Daonphoblacht na Síne)',
@@ -171,7 +178,7 @@
         'en_MY' => 'Béarla (an Mhalaeisia)',
         'en_NA' => 'Béarla (an Namaib)',
         'en_NF' => 'Béarla (Oileán Norfolk)',
-        'en_NG' => 'Béarla (An Nigéir)',
+        'en_NG' => 'Béarla (an Nigéir)',
         'en_NL' => 'Béarla (an Ísiltír)',
         'en_NO' => 'Béarla (an Iorua)',
         'en_NR' => 'Béarla (Nárú)',
@@ -189,7 +196,7 @@
         'en_RW' => 'Béarla (Ruanda)',
         'en_SB' => 'Béarla (Oileáin Sholaimh)',
         'en_SC' => 'Béarla (na Séiséil)',
-        'en_SD' => 'Béarla (An tSúdáin)',
+        'en_SD' => 'Béarla (an tSúdáin)',
         'en_SE' => 'Béarla (an tSualainn)',
         'en_SG' => 'Béarla (Singeapór)',
         'en_SH' => 'Béarla (San Héilin)',
@@ -198,13 +205,14 @@
         'en_SL' => 'Béarla (Siarra Leon)',
         'en_SS' => 'Béarla (an tSúdáin Theas)',
         'en_SX' => 'Béarla (Sint Maarten)',
-        'en_SZ' => 'Béarla (eSuaitíní)',
+        'en_SZ' => 'Béarla (Esuaitíní)',
         'en_TC' => 'Béarla (Oileáin na dTurcach agus Caicos)',
         'en_TK' => 'Béarla (Tócalá)',
         'en_TO' => 'Béarla (Tonga)',
         'en_TT' => 'Béarla (Oileán na Tríonóide agus Tobága)',
         'en_TV' => 'Béarla (Túvalú)',
         'en_TZ' => 'Béarla (an Tansáin)',
+        'en_UA' => 'Béarla (an Úcráin)',
         'en_UG' => 'Béarla (Uganda)',
         'en_UM' => 'Béarla (Oileáin Imeallacha S.A.M.)',
         'en_US' => 'Béarla (Stáit Aontaithe Mheiriceá)',
@@ -257,32 +265,32 @@
         'ff_Adlm_BF' => 'Fuláinis (Adlam, Buircíne Fasó)',
         'ff_Adlm_CM' => 'Fuláinis (Adlam, Camarún)',
         'ff_Adlm_GH' => 'Fuláinis (Adlam, Gána)',
-        'ff_Adlm_GM' => 'Fuláinis (Adlam, An Ghaimbia)',
-        'ff_Adlm_GN' => 'Fuláinis (Adlam, An Ghuine)',
+        'ff_Adlm_GM' => 'Fuláinis (Adlam, an Ghaimbia)',
+        'ff_Adlm_GN' => 'Fuláinis (Adlam, an Ghuine)',
         'ff_Adlm_GW' => 'Fuláinis (Adlam, Guine Bissau)',
-        'ff_Adlm_LR' => 'Fuláinis (Adlam, An Libéir)',
-        'ff_Adlm_MR' => 'Fuláinis (Adlam, An Mháratái)',
-        'ff_Adlm_NE' => 'Fuláinis (Adlam, An Nígir)',
-        'ff_Adlm_NG' => 'Fuláinis (Adlam, An Nigéir)',
+        'ff_Adlm_LR' => 'Fuláinis (Adlam, an Libéir)',
+        'ff_Adlm_MR' => 'Fuláinis (Adlam, an Mháratáin)',
+        'ff_Adlm_NE' => 'Fuláinis (Adlam, an Nígir)',
+        'ff_Adlm_NG' => 'Fuláinis (Adlam, an Nigéir)',
         'ff_Adlm_SL' => 'Fuláinis (Adlam, Siarra Leon)',
-        'ff_Adlm_SN' => 'Fuláinis (Adlam, An tSeineagáil)',
+        'ff_Adlm_SN' => 'Fuláinis (Adlam, an tSeineagáil)',
         'ff_CM' => 'Fuláinis (Camarún)',
-        'ff_GN' => 'Fuláinis (An Ghuine)',
+        'ff_GN' => 'Fuláinis (an Ghuine)',
         'ff_Latn' => 'Fuláinis (Laidineach)',
         'ff_Latn_BF' => 'Fuláinis (Laidineach, Buircíne Fasó)',
         'ff_Latn_CM' => 'Fuláinis (Laidineach, Camarún)',
         'ff_Latn_GH' => 'Fuláinis (Laidineach, Gána)',
-        'ff_Latn_GM' => 'Fuláinis (Laidineach, An Ghaimbia)',
-        'ff_Latn_GN' => 'Fuláinis (Laidineach, An Ghuine)',
+        'ff_Latn_GM' => 'Fuláinis (Laidineach, an Ghaimbia)',
+        'ff_Latn_GN' => 'Fuláinis (Laidineach, an Ghuine)',
         'ff_Latn_GW' => 'Fuláinis (Laidineach, Guine Bissau)',
-        'ff_Latn_LR' => 'Fuláinis (Laidineach, An Libéir)',
-        'ff_Latn_MR' => 'Fuláinis (Laidineach, An Mháratái)',
-        'ff_Latn_NE' => 'Fuláinis (Laidineach, An Nígir)',
-        'ff_Latn_NG' => 'Fuláinis (Laidineach, An Nigéir)',
+        'ff_Latn_LR' => 'Fuláinis (Laidineach, an Libéir)',
+        'ff_Latn_MR' => 'Fuláinis (Laidineach, an Mháratáin)',
+        'ff_Latn_NE' => 'Fuláinis (Laidineach, an Nígir)',
+        'ff_Latn_NG' => 'Fuláinis (Laidineach, an Nigéir)',
         'ff_Latn_SL' => 'Fuláinis (Laidineach, Siarra Leon)',
-        'ff_Latn_SN' => 'Fuláinis (Laidineach, An tSeineagáil)',
-        'ff_MR' => 'Fuláinis (An Mháratái)',
-        'ff_SN' => 'Fuláinis (An tSeineagáil)',
+        'ff_Latn_SN' => 'Fuláinis (Laidineach, an tSeineagáil)',
+        'ff_MR' => 'Fuláinis (an Mháratáin)',
+        'ff_SN' => 'Fuláinis (an tSeineagáil)',
         'fi' => 'Fionlainnis',
         'fi_FI' => 'Fionlainnis (an Fhionlainn)',
         'fo' => 'Faróis',
@@ -299,14 +307,14 @@
         'fr_CF' => 'Fraincis (Poblacht na hAfraice Láir)',
         'fr_CG' => 'Fraincis (Congó-Brazzaville)',
         'fr_CH' => 'Fraincis (an Eilvéis)',
-        'fr_CI' => 'Fraincis (An Cósta Eabhair)',
+        'fr_CI' => 'Fraincis (Côte d’Ivoire)',
         'fr_CM' => 'Fraincis (Camarún)',
         'fr_DJ' => 'Fraincis (Djibouti)',
-        'fr_DZ' => 'Fraincis (An Ailgéir)',
+        'fr_DZ' => 'Fraincis (an Ailgéir)',
         'fr_FR' => 'Fraincis (an Fhrainc)',
         'fr_GA' => 'Fraincis (an Ghabúin)',
         'fr_GF' => 'Fraincis (Guáin na Fraince)',
-        'fr_GN' => 'Fraincis (An Ghuine)',
+        'fr_GN' => 'Fraincis (an Ghuine)',
         'fr_GP' => 'Fraincis (Guadalúip)',
         'fr_GQ' => 'Fraincis (an Ghuine Mheánchiorclach)',
         'fr_HT' => 'Fraincis (Háítí)',
@@ -318,20 +326,20 @@
         'fr_MG' => 'Fraincis (Madagascar)',
         'fr_ML' => 'Fraincis (Mailí)',
         'fr_MQ' => 'Fraincis (Martinique)',
-        'fr_MR' => 'Fraincis (An Mháratái)',
+        'fr_MR' => 'Fraincis (an Mháratáin)',
         'fr_MU' => 'Fraincis (Oileán Mhuirís)',
         'fr_NC' => 'Fraincis (an Nua-Chaladóin)',
-        'fr_NE' => 'Fraincis (An Nígir)',
+        'fr_NE' => 'Fraincis (an Nígir)',
         'fr_PF' => 'Fraincis (Polainéis na Fraince)',
         'fr_PM' => 'Fraincis (San Pierre agus Miquelon)',
         'fr_RE' => 'Fraincis (La Réunion)',
         'fr_RW' => 'Fraincis (Ruanda)',
         'fr_SC' => 'Fraincis (na Séiséil)',
-        'fr_SN' => 'Fraincis (An tSeineagáil)',
+        'fr_SN' => 'Fraincis (an tSeineagáil)',
         'fr_SY' => 'Fraincis (an tSiria)',
         'fr_TD' => 'Fraincis (Sead)',
         'fr_TG' => 'Fraincis (Tóga)',
-        'fr_TN' => 'Fraincis (An Tuinéis)',
+        'fr_TN' => 'Fraincis (an Tuinéis)',
         'fr_VU' => 'Fraincis (Vanuatú)',
         'fr_WF' => 'Fraincis (Vailís agus Futúna)',
         'fr_YT' => 'Fraincis (Mayotte)',
@@ -350,8 +358,8 @@
         'gv_IM' => 'Manainnis (Oileán Mhanann)',
         'ha' => 'Hásais',
         'ha_GH' => 'Hásais (Gána)',
-        'ha_NE' => 'Hásais (An Nígir)',
-        'ha_NG' => 'Hásais (An Nigéir)',
+        'ha_NE' => 'Hásais (an Nígir)',
+        'ha_NG' => 'Hásais (an Nigéir)',
         'he' => 'Eabhrais',
         'he_IL' => 'Eabhrais (Iosrael)',
         'hi' => 'Hiondúis',
@@ -372,9 +380,9 @@
         'ie' => 'Interlingue',
         'ie_EE' => 'Interlingue (an Eastóin)',
         'ig' => 'Íogbóis',
-        'ig_NG' => 'Íogbóis (An Nigéir)',
-        'ii' => 'Ís Shichuan',
-        'ii_CN' => 'Ís Shichuan (an tSín)',
+        'ig_NG' => 'Íogbóis (an Nigéir)',
+        'ii' => 'Ís Sichuan',
+        'ii_CN' => 'Ís Sichuan (an tSín)',
         'is' => 'Íoslainnis',
         'is_IS' => 'Íoslainnis (an Íoslainn)',
         'it' => 'Iodáilis',
@@ -391,6 +399,8 @@
         'ki' => 'Ciocúis',
         'ki_KE' => 'Ciocúis (an Chéinia)',
         'kk' => 'Casaicis',
+        'kk_Arab' => 'Casaicis (Arabach)',
+        'kk_Arab_CN' => 'Casaicis (Arabach, an tSín)',
         'kk_Cyrl' => 'Casaicis (Coireallach)',
         'kk_Cyrl_KZ' => 'Casaicis (Coireallach, an Chasacstáin)',
         'kk_KZ' => 'Casaicis (an Chasacstáin)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Caismíris (Déiveanágrach, an India)',
         'ks_IN' => 'Caismíris (an India)',
         'ku' => 'Coirdis',
+        'ku_Latn' => 'Coirdis (Laidineach)',
+        'ku_Latn_IQ' => 'Coirdis (Laidineach, an Iaráic)',
+        'ku_Latn_SY' => 'Coirdis (Laidineach, an tSiria)',
+        'ku_Latn_TR' => 'Coirdis (Laidineach, an Tuirc)',
+        'ku_SY' => 'Coirdis (an tSiria)',
         'ku_TR' => 'Coirdis (an Tuirc)',
         'kw' => 'Coirnis',
         'kw_GB' => 'Coirnis (an Ríocht Aontaithe)',
@@ -480,8 +495,8 @@
         'om' => 'Oraimis',
         'om_ET' => 'Oraimis (an Aetóip)',
         'om_KE' => 'Oraimis (an Chéinia)',
-        'or' => 'Odia',
-        'or_IN' => 'Odia (an India)',
+        'or' => 'Oirísis',
+        'or_IN' => 'Oirísis (an India)',
         'os' => 'Oiséitis',
         'os_GE' => 'Oiséitis (an tSeoirsia)',
         'os_RU' => 'Oiséitis (an Rúis)',
@@ -501,7 +516,7 @@
         'pt_AO' => 'Portaingéilis (Angóla)',
         'pt_BR' => 'Portaingéilis (an Bhrasaíl)',
         'pt_CH' => 'Portaingéilis (an Eilvéis)',
-        'pt_CV' => 'Portaingéilis (Rinn Verde)',
+        'pt_CV' => 'Portaingéilis (Poblacht Cabo Verde)',
         'pt_GQ' => 'Portaingéilis (an Ghuine Mheánchiorclach)',
         'pt_GW' => 'Portaingéilis (Guine Bissau)',
         'pt_LU' => 'Portaingéilis (Lucsamburg)',
@@ -640,14 +655,14 @@
         'vi' => 'Vítneaimis',
         'vi_VN' => 'Vítneaimis (Vítneam)',
         'wo' => 'Volaifis',
-        'wo_SN' => 'Volaifis (An tSeineagáil)',
+        'wo_SN' => 'Volaifis (an tSeineagáil)',
         'xh' => 'Cóisis',
         'xh_ZA' => 'Cóisis (an Afraic Theas)',
         'yi' => 'Giúdais',
         'yi_UA' => 'Giúdais (an Úcráin)',
         'yo' => 'Iarúibis',
         'yo_BJ' => 'Iarúibis (Beinin)',
-        'yo_NG' => 'Iarúibis (An Nigéir)',
+        'yo_NG' => 'Iarúibis (an Nigéir)',
         'za' => 'Siuáingis',
         'za_CN' => 'Siuáingis (an tSín)',
         'zh' => 'Sínis',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gd.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Asarbaideànais (Cirilis, Asarbaideàn)',
         'az_Latn' => 'Asarbaideànais (Laideann)',
         'az_Latn_AZ' => 'Asarbaideànais (Laideann, Asarbaideàn)',
+        'ba' => 'Bashkir',
+        'ba_RU' => 'Bashkir (An Ruis)',
         'be' => 'Bealaruisis',
         'be_BY' => 'Bealaruisis (A’ Bhealaruis)',
         'bg' => 'Bulgarais',
@@ -125,6 +127,7 @@
         'en_DE' => 'Beurla (A’ Ghearmailt)',
         'en_DK' => 'Beurla (An Danmhairg)',
         'en_DM' => 'Beurla (Doiminicea)',
+        'en_EE' => 'Beurla (An Eastoin)',
         'en_ER' => 'Beurla (Eartra)',
         'en_ES' => 'Beurla (An Spàinnt)',
         'en_FI' => 'Beurla (An Fhionnlann)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Beurla (An Fhraing)',
         'en_GB' => 'Beurla (An Rìoghachd Aonaichte)',
         'en_GD' => 'Beurla (Greanàda)',
+        'en_GE' => 'Beurla (A’ Chairtbheil)',
         'en_GG' => 'Beurla (Geàrnsaidh)',
         'en_GH' => 'Beurla (Gàna)',
         'en_GI' => 'Beurla (Diobraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Beurla (An Eadailt)',
         'en_JE' => 'Beurla (Deàrsaidh)',
         'en_JM' => 'Beurla (Diameuga)',
+        'en_JP' => 'Beurla (An t-Seapan)',
         'en_KE' => 'Beurla (Ceinia)',
         'en_KI' => 'Beurla (Ciribeas)',
         'en_KN' => 'Beurla (Naomh Crìstean is Nibheis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Beurla (Naomh Lùisea)',
         'en_LR' => 'Beurla (Libèir)',
         'en_LS' => 'Beurla (Leasoto)',
+        'en_LT' => 'Beurla (An Liotuain)',
+        'en_LV' => 'Beurla (An Laitbhe)',
         'en_MG' => 'Beurla (Madagasgar)',
         'en_MH' => 'Beurla (Eileanan Mharshall)',
         'en_MO' => 'Beurla (Macàthu SAR na Sìne)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Beurla (Trianaid agus Tobago)',
         'en_TV' => 'Beurla (Tubhalu)',
         'en_TZ' => 'Beurla (An Tansan)',
+        'en_UA' => 'Beurla (An Ucràin)',
         'en_UG' => 'Beurla (Uganda)',
         'en_UM' => 'Beurla (Meanbh-Eileanan Iomallach nan SA)',
         'en_US' => 'Beurla (Na Stàitean Aonaichte)',
@@ -391,6 +399,8 @@
         'ki' => 'Kikuyu',
         'ki_KE' => 'Kikuyu (Ceinia)',
         'kk' => 'Casachais',
+        'kk_Arab' => 'Casachais (Arabais)',
+        'kk_Arab_CN' => 'Casachais (Arabais, An t-Sìn)',
         'kk_Cyrl' => 'Casachais (Cirilis)',
         'kk_Cyrl_KZ' => 'Casachais (Cirilis, Casachstàn)',
         'kk_KZ' => 'Casachais (Casachstàn)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Caismiris (Devanagari, Na h-Innseachan)',
         'ks_IN' => 'Caismiris (Na h-Innseachan)',
         'ku' => 'Cùrdais',
+        'ku_Latn' => 'Cùrdais (Laideann)',
+        'ku_Latn_IQ' => 'Cùrdais (Laideann, Ioràc)',
+        'ku_Latn_SY' => 'Cùrdais (Laideann, Siridhea)',
+        'ku_Latn_TR' => 'Cùrdais (Laideann, An Tuirc)',
+        'ku_SY' => 'Cùrdais (Siridhea)',
         'ku_TR' => 'Cùrdais (An Tuirc)',
         'kw' => 'Còrnais',
         'kw_GB' => 'Còrnais (An Rìoghachd Aonaichte)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gl.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'acerbaixano (cirílico, Acerbaixán)',
         'az_Latn' => 'acerbaixano (latino)',
         'az_Latn_AZ' => 'acerbaixano (latino, Acerbaixán)',
+        'ba' => 'baxkir',
+        'ba_RU' => 'baxkir (Rusia)',
         'be' => 'belaruso',
         'be_BY' => 'belaruso (Belarús)',
         'bg' => 'búlgaro',
@@ -125,6 +127,7 @@
         'en_DE' => 'inglés (Alemaña)',
         'en_DK' => 'inglés (Dinamarca)',
         'en_DM' => 'inglés (Dominica)',
+        'en_EE' => 'inglés (Estonia)',
         'en_ER' => 'inglés (Eritrea)',
         'en_ES' => 'inglés (España)',
         'en_FI' => 'inglés (Finlandia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'inglés (Francia)',
         'en_GB' => 'inglés (Reino Unido)',
         'en_GD' => 'inglés (Granada)',
+        'en_GE' => 'inglés (Xeorxia)',
         'en_GG' => 'inglés (Guernsey)',
         'en_GH' => 'inglés (Ghana)',
         'en_GI' => 'inglés (Xibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'inglés (Italia)',
         'en_JE' => 'inglés (Jersey)',
         'en_JM' => 'inglés (Xamaica)',
+        'en_JP' => 'inglés (Xapón)',
         'en_KE' => 'inglés (Kenya)',
         'en_KI' => 'inglés (Kiribati)',
         'en_KN' => 'inglés (Saint Kitts e Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'inglés (Santa Lucía)',
         'en_LR' => 'inglés (Liberia)',
         'en_LS' => 'inglés (Lesotho)',
+        'en_LT' => 'inglés (Lituania)',
+        'en_LV' => 'inglés (Letonia)',
         'en_MG' => 'inglés (Madagascar)',
         'en_MH' => 'inglés (Illas Marshall)',
         'en_MO' => 'inglés (Macau RAE da China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'inglés (Trinidad e Tobago)',
         'en_TV' => 'inglés (Tuvalu)',
         'en_TZ' => 'inglés (Tanzania)',
+        'en_UA' => 'inglés (Ucraína)',
         'en_UG' => 'inglés (Uganda)',
         'en_UM' => 'inglés (Illas Menores Distantes dos Estados Unidos)',
         'en_US' => 'inglés (Estados Unidos)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenya)',
         'kk' => 'kazako',
+        'kk_Arab' => 'kazako (árabe)',
+        'kk_Arab_CN' => 'kazako (árabe, China)',
         'kk_Cyrl' => 'kazako (cirílico)',
         'kk_Cyrl_KZ' => 'kazako (cirílico, Kazakistán)',
         'kk_KZ' => 'kazako (Kazakistán)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'caxemirés (devanágari, India)',
         'ks_IN' => 'caxemirés (India)',
         'ku' => 'kurdo',
+        'ku_Latn' => 'kurdo (latino)',
+        'ku_Latn_IQ' => 'kurdo (latino, Iraq)',
+        'ku_Latn_SY' => 'kurdo (latino, Siria)',
+        'ku_Latn_TR' => 'kurdo (latino, Turquía)',
+        'ku_SY' => 'kurdo (Siria)',
         'ku_TR' => 'kurdo (Turquía)',
         'kw' => 'córnico',
         'kw_GB' => 'córnico (Reino Unido)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/gu.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'અઝરબૈજાની (સિરિલિક, અઝરબૈજાન)',
         'az_Latn' => 'અઝરબૈજાની (લેટિન)',
         'az_Latn_AZ' => 'અઝરબૈજાની (લેટિન, અઝરબૈજાન)',
+        'ba' => 'બશ્કીર',
+        'ba_RU' => 'બશ્કીર (રશિયા)',
         'be' => 'બેલારુશિયન',
         'be_BY' => 'બેલારુશિયન (બેલારુસ)',
         'bg' => 'બલ્ગેરિયન',
@@ -67,7 +69,7 @@
         'bs_Latn' => 'બોસ્નિયન (લેટિન)',
         'bs_Latn_BA' => 'બોસ્નિયન (લેટિન, બોસ્નિયા અને હર્ઝેગોવિના)',
         'ca' => 'કતલાન',
-        'ca_AD' => 'કતલાન (ઍંડોરા)',
+        'ca_AD' => 'કતલાન (એન્ડોરા)',
         'ca_ES' => 'કતલાન (સ્પેન)',
         'ca_FR' => 'કતલાન (ફ્રાંસ)',
         'ca_IT' => 'કતલાન (ઇટાલી)',
@@ -115,25 +117,27 @@
         'en_BW' => 'અંગ્રેજી (બોત્સ્વાના)',
         'en_BZ' => 'અંગ્રેજી (બેલીઝ)',
         'en_CA' => 'અંગ્રેજી (કેનેડા)',
-        'en_CC' => 'અંગ્રેજી (કોકોઝ [કીલીંગ] આઇલેન્ડ્સ)',
+        'en_CC' => 'અંગ્રેજી (કોકોઝ [કીલીંગ] આઇલૅન્ડ્સ)',
         'en_CH' => 'અંગ્રેજી (સ્વિટ્ઝર્લૅન્ડ)',
         'en_CK' => 'અંગ્રેજી (કુક આઇલેન્ડ્સ)',
         'en_CM' => 'અંગ્રેજી (કૅમરૂન)',
-        'en_CX' => 'અંગ્રેજી (ક્રિસમસ આઇલેન્ડ)',
+        'en_CX' => 'અંગ્રેજી (ક્રિસમસ આઇલૅન્ડ)',
         'en_CY' => 'અંગ્રેજી (સાયપ્રસ)',
         'en_CZ' => 'અંગ્રેજી (ચેકીયા)',
         'en_DE' => 'અંગ્રેજી (જર્મની)',
         'en_DK' => 'અંગ્રેજી (ડેનમાર્ક)',
         'en_DM' => 'અંગ્રેજી (ડોમિનિકા)',
+        'en_EE' => 'અંગ્રેજી (એસ્ટોનિયા)',
         'en_ER' => 'અંગ્રેજી (એરિટ્રિયા)',
         'en_ES' => 'અંગ્રેજી (સ્પેન)',
         'en_FI' => 'અંગ્રેજી (ફિનલેન્ડ)',
         'en_FJ' => 'અંગ્રેજી (ફીજી)',
-        'en_FK' => 'અંગ્રેજી (ફૉકલેન્ડ આઇલેન્ડ્સ)',
+        'en_FK' => 'અંગ્રેજી (ફૉકલૅન્ડ આઇલૅન્ડ્સ)',
         'en_FM' => 'અંગ્રેજી (માઇક્રોનેશિયા)',
         'en_FR' => 'અંગ્રેજી (ફ્રાંસ)',
         'en_GB' => 'અંગ્રેજી (યુનાઇટેડ કિંગડમ)',
         'en_GD' => 'અંગ્રેજી (ગ્રેનેડા)',
+        'en_GE' => 'અંગ્રેજી (જ્યોર્જિયા)',
         'en_GG' => 'અંગ્રેજી (ગ્વેર્નસે)',
         'en_GH' => 'અંગ્રેજી (ઘાના)',
         'en_GI' => 'અંગ્રેજી (જીબ્રાલ્ટર)',
@@ -144,7 +148,7 @@
         'en_HK' => 'અંગ્રેજી (હોંગકોંગ SAR ચીન)',
         'en_HU' => 'અંગ્રેજી (હંગેરી)',
         'en_ID' => 'અંગ્રેજી (ઇન્ડોનેશિયા)',
-        'en_IE' => 'અંગ્રેજી (આયર્લેન્ડ)',
+        'en_IE' => 'અંગ્રેજી (આયરલૅન્ડ)',
         'en_IL' => 'અંગ્રેજી (ઇઝરાઇલ)',
         'en_IM' => 'અંગ્રેજી (આઇલ ઑફ મેન)',
         'en_IN' => 'અંગ્રેજી (ભારત)',
@@ -152,6 +156,7 @@
         'en_IT' => 'અંગ્રેજી (ઇટાલી)',
         'en_JE' => 'અંગ્રેજી (જર્સી)',
         'en_JM' => 'અંગ્રેજી (જમૈકા)',
+        'en_JP' => 'અંગ્રેજી (જાપાન)',
         'en_KE' => 'અંગ્રેજી (કેન્યા)',
         'en_KI' => 'અંગ્રેજી (કિરિબાટી)',
         'en_KN' => 'અંગ્રેજી (સેંટ કિટ્સ અને નેવિસ)',
@@ -159,6 +164,8 @@
         'en_LC' => 'અંગ્રેજી (સેંટ લુસિયા)',
         'en_LR' => 'અંગ્રેજી (લાઇબેરિયા)',
         'en_LS' => 'અંગ્રેજી (લેસોથો)',
+        'en_LT' => 'અંગ્રેજી (લિથુઆનિયા)',
+        'en_LV' => 'અંગ્રેજી (લાત્વિયા)',
         'en_MG' => 'અંગ્રેજી (મેડાગાસ્કર)',
         'en_MH' => 'અંગ્રેજી (માર્શલ આઇલેન્ડ્સ)',
         'en_MO' => 'અંગ્રેજી (મકાઉ SAR ચીન)',
@@ -176,7 +183,7 @@
         'en_NO' => 'અંગ્રેજી (નૉર્વે)',
         'en_NR' => 'અંગ્રેજી (નૌરુ)',
         'en_NU' => 'અંગ્રેજી (નીયુ)',
-        'en_NZ' => 'અંગ્રેજી (ન્યુઝીલેન્ડ)',
+        'en_NZ' => 'અંગ્રેજી (ન્યુઝીલૅન્ડ)',
         'en_PG' => 'અંગ્રેજી (પાપુઆ ન્યૂ ગિની)',
         'en_PH' => 'અંગ્રેજી (ફિલિપિન્સ)',
         'en_PK' => 'અંગ્રેજી (પાકિસ્તાન)',
@@ -205,6 +212,7 @@
         'en_TT' => 'અંગ્રેજી (ટ્રિનીદાદ અને ટોબેગો)',
         'en_TV' => 'અંગ્રેજી (તુવાલુ)',
         'en_TZ' => 'અંગ્રેજી (તાંઝાનિયા)',
+        'en_UA' => 'અંગ્રેજી (યુક્રેન)',
         'en_UG' => 'અંગ્રેજી (યુગાંડા)',
         'en_UM' => 'અંગ્રેજી (યુ.એસ. આઉટલાઇનિંગ આઇલેન્ડ્સ)',
         'en_US' => 'અંગ્રેજી (યુનાઇટેડ સ્ટેટ્સ)',
@@ -225,7 +233,7 @@
         'es_BR' => 'સ્પેનિશ (બ્રાઝિલ)',
         'es_BZ' => 'સ્પેનિશ (બેલીઝ)',
         'es_CL' => 'સ્પેનિશ (ચિલી)',
-        'es_CO' => 'સ્પેનિશ (કોલમ્બિયા)',
+        'es_CO' => 'સ્પેનિશ (કોલંબિયા)',
         'es_CR' => 'સ્પેનિશ (કોસ્ટા રિકા)',
         'es_CU' => 'સ્પેનિશ (ક્યુબા)',
         'es_DO' => 'સ્પેનિશ (ડોમિનિકન રિપબ્લિક)',
@@ -287,7 +295,7 @@
         'fi_FI' => 'ફિનિશ (ફિનલેન્ડ)',
         'fo' => 'ફોરિસ્ત',
         'fo_DK' => 'ફોરિસ્ત (ડેનમાર્ક)',
-        'fo_FO' => 'ફોરિસ્ત (ફેરો આઇલેન્ડ્સ)',
+        'fo_FO' => 'ફોરિસ્ત (ફેરો આઇલૅન્ડ્સ)',
         'fr' => 'ફ્રેન્ચ',
         'fr_BE' => 'ફ્રેન્ચ (બેલ્જીયમ)',
         'fr_BF' => 'ફ્રેન્ચ (બુર્કિના ફાસો)',
@@ -339,7 +347,7 @@
         'fy_NL' => 'પશ્ચિમિ ફ્રિશિયન (નેધરલેન્ડ્સ)',
         'ga' => 'આઇરિશ',
         'ga_GB' => 'આઇરિશ (યુનાઇટેડ કિંગડમ)',
-        'ga_IE' => 'આઇરિશ (આયર્લેન્ડ)',
+        'ga_IE' => 'આઇરિશ (આયરલૅન્ડ)',
         'gd' => 'સ્કોટીસ ગેલિક',
         'gd_GB' => 'સ્કોટીસ ગેલિક (યુનાઇટેડ કિંગડમ)',
         'gl' => 'ગેલિશિયન',
@@ -376,7 +384,7 @@
         'ii' => 'સિચુઆન યી',
         'ii_CN' => 'સિચુઆન યી (ચીન)',
         'is' => 'આઇસલેન્ડિક',
-        'is_IS' => 'આઇસલેન્ડિક (આઇસલેન્ડ)',
+        'is_IS' => 'આઇસલેન્ડિક (આઇસલૅન્ડ)',
         'it' => 'ઇટાલિયન',
         'it_CH' => 'ઇટાલિયન (સ્વિટ્ઝર્લૅન્ડ)',
         'it_IT' => 'ઇટાલિયન (ઇટાલી)',
@@ -391,6 +399,8 @@
         'ki' => 'કિકુયૂ',
         'ki_KE' => 'કિકુયૂ (કેન્યા)',
         'kk' => 'કઝાખ',
+        'kk_Arab' => 'કઝાખ (અરબી)',
+        'kk_Arab_CN' => 'કઝાખ (અરબી, ચીન)',
         'kk_Cyrl' => 'કઝાખ (સિરિલિક)',
         'kk_Cyrl_KZ' => 'કઝાખ (સિરિલિક, કઝાકિસ્તાન)',
         'kk_KZ' => 'કઝાખ (કઝાકિસ્તાન)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'કાશ્મીરી (દેવનાગરી, ભારત)',
         'ks_IN' => 'કાશ્મીરી (ભારત)',
         'ku' => 'કુર્દિશ',
+        'ku_Latn' => 'કુર્દિશ (લેટિન)',
+        'ku_Latn_IQ' => 'કુર્દિશ (લેટિન, ઇરાક)',
+        'ku_Latn_SY' => 'કુર્દિશ (લેટિન, સીરિયા)',
+        'ku_Latn_TR' => 'કુર્દિશ (લેટિન, તુર્કિયે)',
+        'ku_SY' => 'કુર્દિશ (સીરિયા)',
         'ku_TR' => 'કુર્દિશ (તુર્કિયે)',
         'kw' => 'કોર્નિશ',
         'kw_GB' => 'કોર્નિશ (યુનાઇટેડ કિંગડમ)',
@@ -436,7 +451,7 @@
         'mg' => 'મલાગસી',
         'mg_MG' => 'મલાગસી (મેડાગાસ્કર)',
         'mi' => 'માઓરી',
-        'mi_NZ' => 'માઓરી (ન્યુઝીલેન્ડ)',
+        'mi_NZ' => 'માઓરી (ન્યુઝીલૅન્ડ)',
         'mk' => 'મેસેડોનિયન',
         'mk_MK' => 'મેસેડોનિયન (ઉત્તર મેસેડોનિયા)',
         'ml' => 'મલયાલમ',
@@ -585,7 +600,7 @@
         'su_Latn' => 'સંડેનીઝ (લેટિન)',
         'su_Latn_ID' => 'સંડેનીઝ (લેટિન, ઇન્ડોનેશિયા)',
         'sv' => 'સ્વીડિશ',
-        'sv_AX' => 'સ્વીડિશ (ઑલેન્ડ આઇલેન્ડ્સ)',
+        'sv_AX' => 'સ્વીડિશ (ઑલૅન્ડ આઇલૅન્ડ્સ)',
         'sv_FI' => 'સ્વીડિશ (ફિનલેન્ડ)',
         'sv_SE' => 'સ્વીડિશ (સ્વીડન)',
         'sw' => 'સ્વાહિલી',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ha.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ha.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ha.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ha.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,9 +2,9 @@
 
 return [
     'Names' => [
-        'af' => 'Afirkanci',
-        'af_NA' => 'Afirkanci (Namibiya)',
-        'af_ZA' => 'Afirkanci (Afirka Ta Kudu)',
+        'af' => 'Afrikaans',
+        'af_NA' => 'Afrikaans (Namibiya)',
+        'af_ZA' => 'Afrikaans (Afirka Ta Kudu)',
         'ak' => 'Akan',
         'ak_GH' => 'Akan (Gana)',
         'am' => 'Amharik',
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Azerbaijanci (Cyrillic, Azarbaijan)',
         'az_Latn' => 'Azerbaijanci (Latin)',
         'az_Latn_AZ' => 'Azerbaijanci (Latin, Azarbaijan)',
+        'ba' => 'Bashkir',
+        'ba_RU' => 'Bashkir (Rasha)',
         'be' => 'Belarusanci',
         'be_BY' => 'Belarusanci (Belarus)',
         'bg' => 'Bulgariyanci',
@@ -125,6 +127,7 @@
         'en_DE' => 'Turanci (Jamus)',
         'en_DK' => 'Turanci (Danmark)',
         'en_DM' => 'Turanci (Dominika)',
+        'en_EE' => 'Turanci (Estoniya)',
         'en_ER' => 'Turanci (Eritireya)',
         'en_ES' => 'Turanci (Sipen)',
         'en_FI' => 'Turanci (Finlan)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Turanci (Faransa)',
         'en_GB' => 'Turanci (Biritaniya)',
         'en_GD' => 'Turanci (Girnada)',
+        'en_GE' => 'Turanci (Jojiya)',
         'en_GG' => 'Turanci (Yankin Guernsey)',
         'en_GH' => 'Turanci (Gana)',
         'en_GI' => 'Turanci (Jibaraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Turanci (Italiya)',
         'en_JE' => 'Turanci (Kasar Jersey)',
         'en_JM' => 'Turanci (Jamaika)',
+        'en_JP' => 'Turanci (Japan)',
         'en_KE' => 'Turanci (Kenya)',
         'en_KI' => 'Turanci (Kiribati)',
         'en_KN' => 'Turanci (San Kiti Da Nebis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Turanci (San Lusiya)',
         'en_LR' => 'Turanci (Laberiya)',
         'en_LS' => 'Turanci (Lesoto)',
+        'en_LT' => 'Turanci (Lituweniya)',
+        'en_LV' => 'Turanci (Litibiya)',
         'en_MG' => 'Turanci (Madagaskar)',
         'en_MH' => 'Turanci (Tsibiran Marshal)',
         'en_MO' => 'Turanci (Babban Yankin Mulkin Macao na Ƙasar Sin)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Turanci (Tirinidad Da Tobago)',
         'en_TV' => 'Turanci (Tubalu)',
         'en_TZ' => 'Turanci (Tanzaniya)',
+        'en_UA' => 'Turanci (Yukaran)',
         'en_UG' => 'Turanci (Yuganda)',
         'en_UM' => 'Turanci (Rukunin Tsibirin U.S)',
         'en_US' => 'Turanci (Amurka)',
@@ -391,6 +399,8 @@
         'ki' => 'Kikuyu',
         'ki_KE' => 'Kikuyu (Kenya)',
         'kk' => 'Kazakh',
+        'kk_Arab' => 'Kazakh (Larabci)',
+        'kk_Arab_CN' => 'Kazakh (Larabci, Sin)',
         'kk_Cyrl' => 'Kazakh (Cyrillic)',
         'kk_Cyrl_KZ' => 'Kazakh (Cyrillic, Kazakistan)',
         'kk_KZ' => 'Kazakh (Kazakistan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Kashmiri (Devanagari, Indiya)',
         'ks_IN' => 'Kashmiri (Indiya)',
         'ku' => 'Kurdanci',
+        'ku_Latn' => 'Kurdanci (Latin)',
+        'ku_Latn_IQ' => 'Kurdanci (Latin, Iraƙi)',
+        'ku_Latn_SY' => 'Kurdanci (Latin, Sham, Siriya)',
+        'ku_Latn_TR' => 'Kurdanci (Latin, Turkiyya)',
+        'ku_SY' => 'Kurdanci (Sham, Siriya)',
         'ku_TR' => 'Kurdanci (Turkiyya)',
         'kw' => 'Cornish',
         'kw_GB' => 'Cornish (Biritaniya)',
@@ -577,9 +592,9 @@
         'sr_Latn_RS' => 'Sabiyan (Latin, Sabiya)',
         'sr_ME' => 'Sabiyan (Manteneguro)',
         'sr_RS' => 'Sabiyan (Sabiya)',
-        'st' => 'Sesotanci',
-        'st_LS' => 'Sesotanci (Lesoto)',
-        'st_ZA' => 'Sesotanci (Afirka Ta Kudu)',
+        'st' => 'Kudancin Sotho',
+        'st_LS' => 'Kudancin Sotho (Lesoto)',
+        'st_ZA' => 'Kudancin Sotho (Afirka Ta Kudu)',
         'su' => 'Harshen Sundanese',
         'su_ID' => 'Harshen Sundanese (Indunusiya)',
         'su_Latn' => 'Harshen Sundanese (Latin)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/he.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/he.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/he.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/he.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'אזרית (קירילי, אזרבייג׳ן)',
         'az_Latn' => 'אזרית (לטיני)',
         'az_Latn_AZ' => 'אזרית (לטיני, אזרבייג׳ן)',
+        'ba' => 'בשקירית',
+        'ba_RU' => 'בשקירית (רוסיה)',
         'be' => 'בלארוסית',
         'be_BY' => 'בלארוסית (בלארוס)',
         'bg' => 'בולגרית',
@@ -125,6 +127,7 @@
         'en_DE' => 'אנגלית (גרמניה)',
         'en_DK' => 'אנגלית (דנמרק)',
         'en_DM' => 'אנגלית (דומיניקה)',
+        'en_EE' => 'אנגלית (אסטוניה)',
         'en_ER' => 'אנגלית (אריתריאה)',
         'en_ES' => 'אנגלית (ספרד)',
         'en_FI' => 'אנגלית (פינלנד)',
@@ -134,6 +137,7 @@
         'en_FR' => 'אנגלית (צרפת)',
         'en_GB' => 'אנגלית (בריטניה)',
         'en_GD' => 'אנגלית (גרנדה)',
+        'en_GE' => 'אנגלית (גאורגיה)',
         'en_GG' => 'אנגלית (גרנזי)',
         'en_GH' => 'אנגלית (גאנה)',
         'en_GI' => 'אנגלית (גיברלטר)',
@@ -152,6 +156,7 @@
         'en_IT' => 'אנגלית (איטליה)',
         'en_JE' => 'אנגלית (ג׳רזי)',
         'en_JM' => 'אנגלית (ג׳מייקה)',
+        'en_JP' => 'אנגלית (יפן)',
         'en_KE' => 'אנגלית (קניה)',
         'en_KI' => 'אנגלית (קיריבאטי)',
         'en_KN' => 'אנגלית (סנט קיטס ונוויס)',
@@ -159,6 +164,8 @@
         'en_LC' => 'אנגלית (סנט לוסיה)',
         'en_LR' => 'אנגלית (ליבריה)',
         'en_LS' => 'אנגלית (לסוטו)',
+        'en_LT' => 'אנגלית (ליטא)',
+        'en_LV' => 'אנגלית (לטביה)',
         'en_MG' => 'אנגלית (מדגסקר)',
         'en_MH' => 'אנגלית (איי מרשל)',
         'en_MO' => 'אנגלית (מקאו [אזור מנהלי מיוחד של סין])',
@@ -205,6 +212,7 @@
         'en_TT' => 'אנגלית (טרינידד וטובגו)',
         'en_TV' => 'אנגלית (טובאלו)',
         'en_TZ' => 'אנגלית (טנזניה)',
+        'en_UA' => 'אנגלית (אוקראינה)',
         'en_UG' => 'אנגלית (אוגנדה)',
         'en_UM' => 'אנגלית (האיים המרוחקים הקטנים של ארה״ב)',
         'en_US' => 'אנגלית (ארצות הברית)',
@@ -391,6 +399,8 @@
         'ki' => 'קיקויו',
         'ki_KE' => 'קיקויו (קניה)',
         'kk' => 'קזחית',
+        'kk_Arab' => 'קזחית (ערבי)',
+        'kk_Arab_CN' => 'קזחית (ערבי, סין)',
         'kk_Cyrl' => 'קזחית (קירילי)',
         'kk_Cyrl_KZ' => 'קזחית (קירילי, קזחסטן)',
         'kk_KZ' => 'קזחית (קזחסטן)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'קשמירית (דוואנגרי, הודו)',
         'ks_IN' => 'קשמירית (הודו)',
         'ku' => 'כורדית',
+        'ku_Latn' => 'כורדית (לטיני)',
+        'ku_Latn_IQ' => 'כורדית (לטיני, עיראק)',
+        'ku_Latn_SY' => 'כורדית (לטיני, סוריה)',
+        'ku_Latn_TR' => 'כורדית (לטיני, טורקיה)',
+        'ku_SY' => 'כורדית (סוריה)',
         'ku_TR' => 'כורדית (טורקיה)',
         'kw' => 'קורנית',
         'kw_GB' => 'קורנית (בריטניה)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hi_Latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hi_Latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hi_Latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hi_Latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,9 +6,7 @@
         'af_NA' => 'Afreeki (नामीबिया)',
         'af_ZA' => 'Afreeki (दक्षिण अफ़्रीका)',
         'as_IN' => 'असमिया (Bharat)',
-        'bn' => 'Bangla',
-        'bn_BD' => 'Bangla (बांग्लादेश)',
-        'bn_IN' => 'Bangla (Bharat)',
+        'bn_IN' => 'बंगाली (Bharat)',
         'bo' => 'Tibbati',
         'bo_CN' => 'Tibbati (चीन)',
         'bo_IN' => 'Tibbati (Bharat)',
@@ -65,6 +63,7 @@
         'ks_Arab_IN' => 'कश्मीरी (अरबी, Bharat)',
         'ks_Deva_IN' => 'कश्मीरी (देवनागरी, Bharat)',
         'ks_IN' => 'कश्मीरी (Bharat)',
+        'ku_Latn_TR' => 'कुर्दिश (लैटिन, Turkiye)',
         'ku_TR' => 'कुर्दिश (Turkiye)',
         'ml_IN' => 'मलयालम (Bharat)',
         'mr_IN' => 'मराठी (Bharat)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hi.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'अज़रबैजानी (सिरिलिक, अज़रबैजान)',
         'az_Latn' => 'अज़रबैजानी (लैटिन)',
         'az_Latn_AZ' => 'अज़रबैजानी (लैटिन, अज़रबैजान)',
+        'ba' => 'बशख़िर',
+        'ba_RU' => 'बशख़िर (रूस)',
         'be' => 'बेलारूसी',
         'be_BY' => 'बेलारूसी (बेलारूस)',
         'bg' => 'बुल्गारियाई',
@@ -125,6 +127,7 @@
         'en_DE' => 'अंग्रेज़ी (जर्मनी)',
         'en_DK' => 'अंग्रेज़ी (डेनमार्क)',
         'en_DM' => 'अंग्रेज़ी (डोमिनिका)',
+        'en_EE' => 'अंग्रेज़ी (एस्टोनिया)',
         'en_ER' => 'अंग्रेज़ी (इरिट्रिया)',
         'en_ES' => 'अंग्रेज़ी (स्पेन)',
         'en_FI' => 'अंग्रेज़ी (फ़िनलैंड)',
@@ -134,6 +137,7 @@
         'en_FR' => 'अंग्रेज़ी (फ़्रांस)',
         'en_GB' => 'अंग्रेज़ी (यूनाइटेड किंगडम)',
         'en_GD' => 'अंग्रेज़ी (ग्रेनाडा)',
+        'en_GE' => 'अंग्रेज़ी (जॉर्जिया)',
         'en_GG' => 'अंग्रेज़ी (गर्नसी)',
         'en_GH' => 'अंग्रेज़ी (घाना)',
         'en_GI' => 'अंग्रेज़ी (जिब्राल्टर)',
@@ -152,6 +156,7 @@
         'en_IT' => 'अंग्रेज़ी (इटली)',
         'en_JE' => 'अंग्रेज़ी (जर्सी)',
         'en_JM' => 'अंग्रेज़ी (जमैका)',
+        'en_JP' => 'अंग्रेज़ी (जापान)',
         'en_KE' => 'अंग्रेज़ी (केन्या)',
         'en_KI' => 'अंग्रेज़ी (किरिबाती)',
         'en_KN' => 'अंग्रेज़ी (सेंट किट्स और नेविस)',
@@ -159,6 +164,8 @@
         'en_LC' => 'अंग्रेज़ी (सेंट लूसिया)',
         'en_LR' => 'अंग्रेज़ी (लाइबेरिया)',
         'en_LS' => 'अंग्रेज़ी (लेसोथो)',
+        'en_LT' => 'अंग्रेज़ी (लिथुआनिया)',
+        'en_LV' => 'अंग्रेज़ी (लातविया)',
         'en_MG' => 'अंग्रेज़ी (मेडागास्कर)',
         'en_MH' => 'अंग्रेज़ी (मार्शल द्वीपसमूह)',
         'en_MO' => 'अंग्रेज़ी (मकाऊ [विशेष प्रशासनिक क्षेत्र चीन])',
@@ -205,6 +212,7 @@
         'en_TT' => 'अंग्रेज़ी (त्रिनिदाद और टोबैगो)',
         'en_TV' => 'अंग्रेज़ी (तुवालू)',
         'en_TZ' => 'अंग्रेज़ी (तंज़ानिया)',
+        'en_UA' => 'अंग्रेज़ी (यूक्रेन)',
         'en_UG' => 'अंग्रेज़ी (युगांडा)',
         'en_UM' => 'अंग्रेज़ी (यू॰एस॰ आउटलाइंग द्वीपसमूह)',
         'en_US' => 'अंग्रेज़ी (संयुक्त राज्य)',
@@ -369,8 +377,8 @@
         'ia_001' => 'इंटरलिंगुआ (विश्व)',
         'id' => 'इंडोनेशियाई',
         'id_ID' => 'इंडोनेशियाई (इंडोनेशिया)',
-        'ie' => 'ईन्टरलिंगुइ',
-        'ie_EE' => 'ईन्टरलिंगुइ (एस्टोनिया)',
+        'ie' => 'इंटरलिंग',
+        'ie_EE' => 'इंटरलिंग (एस्टोनिया)',
         'ig' => 'ईग्बो',
         'ig_NG' => 'ईग्बो (नाइजीरिया)',
         'ii' => 'सिचुआन यी',
@@ -391,6 +399,8 @@
         'ki' => 'किकुयू',
         'ki_KE' => 'किकुयू (केन्या)',
         'kk' => 'कज़ाख़',
+        'kk_Arab' => 'कज़ाख़ (अरबी)',
+        'kk_Arab_CN' => 'कज़ाख़ (अरबी, चीन)',
         'kk_Cyrl' => 'कज़ाख़ (सिरिलिक)',
         'kk_Cyrl_KZ' => 'कज़ाख़ (सिरिलिक, कज़ाखस्तान)',
         'kk_KZ' => 'कज़ाख़ (कज़ाखस्तान)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'कश्मीरी (देवनागरी, भारत)',
         'ks_IN' => 'कश्मीरी (भारत)',
         'ku' => 'कुर्दिश',
+        'ku_Latn' => 'कुर्दिश (लैटिन)',
+        'ku_Latn_IQ' => 'कुर्दिश (लैटिन, इराक)',
+        'ku_Latn_SY' => 'कुर्दिश (लैटिन, सीरिया)',
+        'ku_Latn_TR' => 'कुर्दिश (लैटिन, तुर्किये)',
+        'ku_SY' => 'कुर्दिश (सीरिया)',
         'ku_TR' => 'कुर्दिश (तुर्किये)',
         'kw' => 'कोर्निश',
         'kw_GB' => 'कोर्निश (यूनाइटेड किंगडम)',
@@ -621,8 +636,8 @@
         'tr_TR' => 'तुर्की (तुर्किये)',
         'tt' => 'तातार',
         'tt_RU' => 'तातार (रूस)',
-        'ug' => 'उइगर',
-        'ug_CN' => 'उइगर (चीन)',
+        'ug' => 'उईग़ूर',
+        'ug_CN' => 'उईग़ूर (चीन)',
         'uk' => 'यूक्रेनियाई',
         'uk_UA' => 'यूक्रेनियाई (यूक्रेन)',
         'ur' => 'उर्दू',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hr.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbajdžanski (ćirilica, Azerbajdžan)',
         'az_Latn' => 'azerbajdžanski (latinica)',
         'az_Latn_AZ' => 'azerbajdžanski (latinica, Azerbajdžan)',
+        'ba' => 'baškirski',
+        'ba_RU' => 'baškirski (Rusija)',
         'be' => 'bjeloruski',
         'be_BY' => 'bjeloruski (Bjelorusija)',
         'bg' => 'bugarski',
@@ -125,6 +127,7 @@
         'en_DE' => 'engleski (Njemačka)',
         'en_DK' => 'engleski (Danska)',
         'en_DM' => 'engleski (Dominika)',
+        'en_EE' => 'engleski (Estonija)',
         'en_ER' => 'engleski (Eritreja)',
         'en_ES' => 'engleski (Španjolska)',
         'en_FI' => 'engleski (Finska)',
@@ -134,6 +137,7 @@
         'en_FR' => 'engleski (Francuska)',
         'en_GB' => 'engleski (Ujedinjeno Kraljevstvo)',
         'en_GD' => 'engleski (Grenada)',
+        'en_GE' => 'engleski (Gruzija)',
         'en_GG' => 'engleski (Guernsey)',
         'en_GH' => 'engleski (Gana)',
         'en_GI' => 'engleski (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'engleski (Italija)',
         'en_JE' => 'engleski (Jersey)',
         'en_JM' => 'engleski (Jamajka)',
+        'en_JP' => 'engleski (Japan)',
         'en_KE' => 'engleski (Kenija)',
         'en_KI' => 'engleski (Kiribati)',
         'en_KN' => 'engleski (Sveti Kristofor i Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'engleski (Sveta Lucija)',
         'en_LR' => 'engleski (Liberija)',
         'en_LS' => 'engleski (Lesoto)',
+        'en_LT' => 'engleski (Litva)',
+        'en_LV' => 'engleski (Latvija)',
         'en_MG' => 'engleski (Madagaskar)',
         'en_MH' => 'engleski (Maršalovi Otoci)',
         'en_MO' => 'engleski (PUP Makao Kina)',
@@ -205,6 +212,7 @@
         'en_TT' => 'engleski (Trinidad i Tobago)',
         'en_TV' => 'engleski (Tuvalu)',
         'en_TZ' => 'engleski (Tanzanija)',
+        'en_UA' => 'engleski (Ukrajina)',
         'en_UG' => 'engleski (Uganda)',
         'en_UM' => 'engleski (Mali udaljeni otoci SAD-a)',
         'en_US' => 'engleski (Sjedinjene Američke Države)',
@@ -287,7 +295,7 @@
         'fi_FI' => 'finski (Finska)',
         'fo' => 'ferojski',
         'fo_DK' => 'ferojski (Danska)',
-        'fo_FO' => 'ferojski (Ovčji Otoci)',
+        'fo_FO' => 'ferojski (Farski Otoci)',
         'fr' => 'francuski',
         'fr_BE' => 'francuski (Belgija)',
         'fr_BF' => 'francuski (Burkina Faso)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenija)',
         'kk' => 'kazaški',
+        'kk_Arab' => 'kazaški (arapsko pismo)',
+        'kk_Arab_CN' => 'kazaški (arapsko pismo, Kina)',
         'kk_Cyrl' => 'kazaški (ćirilica)',
         'kk_Cyrl_KZ' => 'kazaški (ćirilica, Kazahstan)',
         'kk_KZ' => 'kazaški (Kazahstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kašmirski (devangari pismo, Indija)',
         'ks_IN' => 'kašmirski (Indija)',
         'ku' => 'kurdski',
+        'ku_Latn' => 'kurdski (latinica)',
+        'ku_Latn_IQ' => 'kurdski (latinica, Irak)',
+        'ku_Latn_SY' => 'kurdski (latinica, Sirija)',
+        'ku_Latn_TR' => 'kurdski (latinica, Turska)',
+        'ku_SY' => 'kurdski (Sirija)',
         'ku_TR' => 'kurdski (Turska)',
         'kw' => 'kornski',
         'kw_GB' => 'kornski (Ujedinjeno Kraljevstvo)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hu.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbajdzsáni (Cirill, Azerbajdzsán)',
         'az_Latn' => 'azerbajdzsáni (Latin)',
         'az_Latn_AZ' => 'azerbajdzsáni (Latin, Azerbajdzsán)',
+        'ba' => 'baskír',
+        'ba_RU' => 'baskír (Oroszország)',
         'be' => 'belarusz',
         'be_BY' => 'belarusz (Belarusz)',
         'bg' => 'bolgár',
@@ -125,6 +127,7 @@
         'en_DE' => 'angol (Németország)',
         'en_DK' => 'angol (Dánia)',
         'en_DM' => 'angol (Dominika)',
+        'en_EE' => 'angol (Észtország)',
         'en_ER' => 'angol (Eritrea)',
         'en_ES' => 'angol (Spanyolország)',
         'en_FI' => 'angol (Finnország)',
@@ -134,6 +137,7 @@
         'en_FR' => 'angol (Franciaország)',
         'en_GB' => 'angol (Egyesült Királyság)',
         'en_GD' => 'angol (Grenada)',
+        'en_GE' => 'angol (Grúzia)',
         'en_GG' => 'angol (Guernsey)',
         'en_GH' => 'angol (Ghána)',
         'en_GI' => 'angol (Gibraltár)',
@@ -152,6 +156,7 @@
         'en_IT' => 'angol (Olaszország)',
         'en_JE' => 'angol (Jersey)',
         'en_JM' => 'angol (Jamaica)',
+        'en_JP' => 'angol (Japán)',
         'en_KE' => 'angol (Kenya)',
         'en_KI' => 'angol (Kiribati)',
         'en_KN' => 'angol (Saint Kitts és Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'angol (Saint Lucia)',
         'en_LR' => 'angol (Libéria)',
         'en_LS' => 'angol (Lesotho)',
+        'en_LT' => 'angol (Litvánia)',
+        'en_LV' => 'angol (Lettország)',
         'en_MG' => 'angol (Madagaszkár)',
         'en_MH' => 'angol (Marshall-szigetek)',
         'en_MO' => 'angol (Makaó KKT)',
@@ -205,6 +212,7 @@
         'en_TT' => 'angol (Trinidad és Tobago)',
         'en_TV' => 'angol (Tuvalu)',
         'en_TZ' => 'angol (Tanzánia)',
+        'en_UA' => 'angol (Ukrajna)',
         'en_UG' => 'angol (Uganda)',
         'en_UM' => 'angol (Az USA lakatlan külbirtokai)',
         'en_US' => 'angol (Egyesült Államok)',
@@ -409,6 +417,11 @@
         'ks_Deva_IN' => 'kasmíri (Devanagári, India)',
         'ks_IN' => 'kasmíri (India)',
         'ku' => 'kurd',
+        'ku_Latn' => 'kurd (Latin)',
+        'ku_Latn_IQ' => 'kurd (Latin, Irak)',
+        'ku_Latn_SY' => 'kurd (Latin, Szíria)',
+        'ku_Latn_TR' => 'kurd (Latin, Törökország)',
+        'ku_SY' => 'kurd (Szíria)',
         'ku_TR' => 'kurd (Törökország)',
         'kw' => 'korni',
         'kw_GB' => 'korni (Egyesült Királyság)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/hy.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'ադրբեջաներեն (կյուրեղագիր, Ադրբեջան)',
         'az_Latn' => 'ադրբեջաներեն (լատինական)',
         'az_Latn_AZ' => 'ադրբեջաներեն (լատինական, Ադրբեջան)',
+        'ba' => 'բաշկիրերեն',
+        'ba_RU' => 'բաշկիրերեն (Ռուսաստան)',
         'be' => 'բելառուսերեն',
         'be_BY' => 'բելառուսերեն (Բելառուս)',
         'bg' => 'բուլղարերեն',
@@ -125,6 +127,7 @@
         'en_DE' => 'անգլերեն (Գերմանիա)',
         'en_DK' => 'անգլերեն (Դանիա)',
         'en_DM' => 'անգլերեն (Դոմինիկա)',
+        'en_EE' => 'անգլերեն (Էստոնիա)',
         'en_ER' => 'անգլերեն (Էրիթրեա)',
         'en_ES' => 'անգլերեն (Իսպանիա)',
         'en_FI' => 'անգլերեն (Ֆինլանդիա)',
@@ -134,6 +137,7 @@
         'en_FR' => 'անգլերեն (Ֆրանսիա)',
         'en_GB' => 'անգլերեն (Միացյալ Թագավորություն)',
         'en_GD' => 'անգլերեն (Գրենադա)',
+        'en_GE' => 'անգլերեն (Վրաստան)',
         'en_GG' => 'անգլերեն (Գերնսի)',
         'en_GH' => 'անգլերեն (Գանա)',
         'en_GI' => 'անգլերեն (Ջիբրալթար)',
@@ -152,6 +156,7 @@
         'en_IT' => 'անգլերեն (Իտալիա)',
         'en_JE' => 'անգլերեն (Ջերսի)',
         'en_JM' => 'անգլերեն (Ճամայկա)',
+        'en_JP' => 'անգլերեն (Ճապոնիա)',
         'en_KE' => 'անգլերեն (Քենիա)',
         'en_KI' => 'անգլերեն (Կիրիբատի)',
         'en_KN' => 'անգլերեն (Սենթ Քիտս և Նևիս)',
@@ -159,6 +164,8 @@
         'en_LC' => 'անգլերեն (Սենթ Լյուսիա)',
         'en_LR' => 'անգլերեն (Լիբերիա)',
         'en_LS' => 'անգլերեն (Լեսոտո)',
+        'en_LT' => 'անգլերեն (Լիտվա)',
+        'en_LV' => 'անգլերեն (Լատվիա)',
         'en_MG' => 'անգլերեն (Մադագասկար)',
         'en_MH' => 'անգլերեն (Մարշալյան կղզիներ)',
         'en_MO' => 'անգլերեն (Չինաստանի Մակաո ՀՎՇ)',
@@ -205,6 +212,7 @@
         'en_TT' => 'անգլերեն (Տրինիդադ և Տոբագո)',
         'en_TV' => 'անգլերեն (Տուվալու)',
         'en_TZ' => 'անգլերեն (Տանզանիա)',
+        'en_UA' => 'անգլերեն (Ուկրաինա)',
         'en_UG' => 'անգլերեն (Ուգանդա)',
         'en_UM' => 'անգլերեն (Արտաքին կղզիներ [ԱՄՆ])',
         'en_US' => 'անգլերեն (Միացյալ Նահանգներ)',
@@ -391,6 +399,8 @@
         'ki' => 'կիկույու',
         'ki_KE' => 'կիկույու (Քենիա)',
         'kk' => 'ղազախերեն',
+        'kk_Arab' => 'ղազախերեն (արաբական)',
+        'kk_Arab_CN' => 'ղազախերեն (արաբական, Չինաստան)',
         'kk_Cyrl' => 'ղազախերեն (կյուրեղագիր)',
         'kk_Cyrl_KZ' => 'ղազախերեն (կյուրեղագիր, Ղազախստան)',
         'kk_KZ' => 'ղազախերեն (Ղազախստան)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'քաշմիրերեն (դեւանագարի, Հնդկաստան)',
         'ks_IN' => 'քաշմիրերեն (Հնդկաստան)',
         'ku' => 'քրդերեն',
+        'ku_Latn' => 'քրդերեն (լատինական)',
+        'ku_Latn_IQ' => 'քրդերեն (լատինական, Իրաք)',
+        'ku_Latn_SY' => 'քրդերեն (լատինական, Սիրիա)',
+        'ku_Latn_TR' => 'քրդերեն (լատինական, Թուրքիա)',
+        'ku_SY' => 'քրդերեն (Սիրիա)',
         'ku_TR' => 'քրդերեն (Թուրքիա)',
         'kw' => 'կոռներեն',
         'kw_GB' => 'կոռներեն (Միացյալ Թագավորություն)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ia.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ia.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ia.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ia.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaidzhano (cyrillic, Azerbaidzhan)',
         'az_Latn' => 'azerbaidzhano (latin)',
         'az_Latn_AZ' => 'azerbaidzhano (latin, Azerbaidzhan)',
+        'ba' => 'bashkir',
+        'ba_RU' => 'bashkir (Russia)',
         'be' => 'bielorusso',
         'be_BY' => 'bielorusso (Bielorussia)',
         'bg' => 'bulgaro',
@@ -125,6 +127,7 @@
         'en_DE' => 'anglese (Germania)',
         'en_DK' => 'anglese (Danmark)',
         'en_DM' => 'anglese (Dominica)',
+        'en_EE' => 'anglese (Estonia)',
         'en_ER' => 'anglese (Eritrea)',
         'en_ES' => 'anglese (Espania)',
         'en_FI' => 'anglese (Finlandia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'anglese (Francia)',
         'en_GB' => 'anglese (Regno Unite)',
         'en_GD' => 'anglese (Grenada)',
+        'en_GE' => 'anglese (Georgia)',
         'en_GG' => 'anglese (Guernsey)',
         'en_GH' => 'anglese (Ghana)',
         'en_GI' => 'anglese (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'anglese (Italia)',
         'en_JE' => 'anglese (Jersey)',
         'en_JM' => 'anglese (Jamaica)',
+        'en_JP' => 'anglese (Japon)',
         'en_KE' => 'anglese (Kenya)',
         'en_KI' => 'anglese (Kiribati)',
         'en_KN' => 'anglese (Sancte Christophoro e Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'anglese (Sancte Lucia)',
         'en_LR' => 'anglese (Liberia)',
         'en_LS' => 'anglese (Lesotho)',
+        'en_LT' => 'anglese (Lituania)',
+        'en_LV' => 'anglese (Lettonia)',
         'en_MG' => 'anglese (Madagascar)',
         'en_MH' => 'anglese (Insulas Marshall)',
         'en_MO' => 'anglese (Macao, R.A.S. de China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'anglese (Trinidad e Tobago)',
         'en_TV' => 'anglese (Tuvalu)',
         'en_TZ' => 'anglese (Tanzania)',
+        'en_UA' => 'anglese (Ukraina)',
         'en_UG' => 'anglese (Uganda)',
         'en_UM' => 'anglese (Insulas peripheric del SUA)',
         'en_US' => 'anglese (Statos Unite)',
@@ -378,6 +386,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenya)',
         'kk' => 'kazakh',
+        'kk_Arab' => 'kazakh (arabe)',
+        'kk_Arab_CN' => 'kazakh (arabe, China)',
         'kk_Cyrl' => 'kazakh (cyrillic)',
         'kk_Cyrl_KZ' => 'kazakh (cyrillic, Kazakhstan)',
         'kk_KZ' => 'kazakh (Kazakhstan)',
@@ -398,6 +408,11 @@
         'ks_Deva_IN' => 'kashmiri (devanagari, India)',
         'ks_IN' => 'kashmiri (India)',
         'ku' => 'kurdo',
+        'ku_Latn' => 'kurdo (latin)',
+        'ku_Latn_IQ' => 'kurdo (latin, Irak)',
+        'ku_Latn_SY' => 'kurdo (latin, Syria)',
+        'ku_Latn_TR' => 'kurdo (latin, Turchia)',
+        'ku_SY' => 'kurdo (Syria)',
         'ku_TR' => 'kurdo (Turchia)',
         'kw' => 'cornico',
         'kw_GB' => 'cornico (Regno Unite)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/id.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/id.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/id.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/id.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Azerbaijani (Sirilik, Azerbaijan)',
         'az_Latn' => 'Azerbaijani (Latin)',
         'az_Latn_AZ' => 'Azerbaijani (Latin, Azerbaijan)',
+        'ba' => 'Bashkir',
+        'ba_RU' => 'Bashkir (Rusia)',
         'be' => 'Belarusia',
         'be_BY' => 'Belarusia (Belarus)',
         'bg' => 'Bulgaria',
@@ -125,6 +127,7 @@
         'en_DE' => 'Inggris (Jerman)',
         'en_DK' => 'Inggris (Denmark)',
         'en_DM' => 'Inggris (Dominika)',
+        'en_EE' => 'Inggris (Estonia)',
         'en_ER' => 'Inggris (Eritrea)',
         'en_ES' => 'Inggris (Spanyol)',
         'en_FI' => 'Inggris (Finlandia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Inggris (Prancis)',
         'en_GB' => 'Inggris (Inggris Raya)',
         'en_GD' => 'Inggris (Grenada)',
+        'en_GE' => 'Inggris (Georgia)',
         'en_GG' => 'Inggris (Guernsey)',
         'en_GH' => 'Inggris (Ghana)',
         'en_GI' => 'Inggris (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Inggris (Italia)',
         'en_JE' => 'Inggris (Jersey)',
         'en_JM' => 'Inggris (Jamaika)',
+        'en_JP' => 'Inggris (Jepang)',
         'en_KE' => 'Inggris (Kenya)',
         'en_KI' => 'Inggris (Kiribati)',
         'en_KN' => 'Inggris (Saint Kitts dan Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Inggris (Saint Lucia)',
         'en_LR' => 'Inggris (Liberia)',
         'en_LS' => 'Inggris (Lesotho)',
+        'en_LT' => 'Inggris (Lituania)',
+        'en_LV' => 'Inggris (Latvia)',
         'en_MG' => 'Inggris (Madagaskar)',
         'en_MH' => 'Inggris (Kepulauan Marshall)',
         'en_MO' => 'Inggris (Makau DAK Tiongkok)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Inggris (Trinidad dan Tobago)',
         'en_TV' => 'Inggris (Tuvalu)',
         'en_TZ' => 'Inggris (Tanzania)',
+        'en_UA' => 'Inggris (Ukraina)',
         'en_UG' => 'Inggris (Uganda)',
         'en_UM' => 'Inggris (Kepulauan Terluar AS)',
         'en_US' => 'Inggris (Amerika Serikat)',
@@ -409,6 +417,11 @@
         'ks_Deva_IN' => 'Kashmir (Dewanagari, India)',
         'ks_IN' => 'Kashmir (India)',
         'ku' => 'Kurdi',
+        'ku_Latn' => 'Kurdi (Latin)',
+        'ku_Latn_IQ' => 'Kurdi (Latin, Irak)',
+        'ku_Latn_SY' => 'Kurdi (Latin, Suriah)',
+        'ku_Latn_TR' => 'Kurdi (Latin, Turki)',
+        'ku_SY' => 'Kurdi (Suriah)',
         'ku_TR' => 'Kurdi (Turki)',
         'kw' => 'Kornish',
         'kw_GB' => 'Kornish (Inggris Raya)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ie.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ie.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ie.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ie.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
         'de_CH' => 'german (Svissia)',
         'de_DE' => 'german (Germania)',
         'de_IT' => 'german (Italia)',
+        'de_LI' => 'german (Liechtenstein)',
         'de_LU' => 'german (Luxemburg)',
         'el' => 'grec',
         'el_GR' => 'grec (Grecia)',
@@ -28,22 +29,31 @@
         'en_CZ' => 'anglesi (Tchekia)',
         'en_DE' => 'anglesi (Germania)',
         'en_DK' => 'anglesi (Dania)',
+        'en_EE' => 'anglesi (Estonia)',
         'en_ER' => 'anglesi (Eritrea)',
         'en_ES' => 'anglesi (Hispania)',
         'en_FI' => 'anglesi (Finland)',
         'en_FJ' => 'anglesi (Fidji)',
         'en_FR' => 'anglesi (Francia)',
         'en_GB' => 'anglesi (Unit Reyia)',
+        'en_GG' => 'anglesi (Guernsey)',
+        'en_GI' => 'anglesi (Gibraltar)',
         'en_GY' => 'anglesi (Guyana)',
         'en_HU' => 'anglesi (Hungaria)',
         'en_ID' => 'anglesi (Indonesia)',
         'en_IE' => 'anglesi (Irland)',
+        'en_IM' => 'anglesi (Insul de Man)',
         'en_IN' => 'anglesi (India)',
         'en_IT' => 'anglesi (Italia)',
+        'en_JE' => 'anglesi (Jersey)',
+        'en_LT' => 'anglesi (Lituania)',
+        'en_LV' => 'anglesi (Lettonia)',
         'en_MT' => 'anglesi (Malta)',
         'en_MU' => 'anglesi (Mauricio)',
         'en_MV' => 'anglesi (Maldivas)',
         'en_NF' => 'anglesi (Insul Norfolk)',
+        'en_NL' => 'anglesi (Nederland)',
+        'en_NO' => 'anglesi (Norvegia)',
         'en_NR' => 'anglesi (Nauru)',
         'en_NZ' => 'anglesi (Nov-Zeland)',
         'en_PH' => 'anglesi (Filipines)',
@@ -61,8 +71,11 @@
         'en_TK' => 'anglesi (Tokelau)',
         'en_TT' => 'anglesi (Trinidad e Tobago)',
         'en_TV' => 'anglesi (Tuvalu)',
+        'en_UA' => 'anglesi (Ukraina)',
         'en_VU' => 'anglesi (Vanuatu)',
         'en_WS' => 'anglesi (Samoa)',
+        'eo' => 'Esperanto',
+        'eo_001' => 'Esperanto (munde)',
         'es' => 'hispan',
         'es_419' => 'hispan (latin America)',
         'es_ES' => 'hispan (Hispania)',
@@ -73,6 +86,8 @@
         'et_EE' => 'estonian (Estonia)',
         'fa' => 'persian',
         'fa_IR' => 'persian (Iran)',
+        'fi' => 'finn',
+        'fi_FI' => 'finn (Finland)',
         'fr' => 'francesi',
         'fr_BE' => 'francesi (Belgia)',
         'fr_CH' => 'francesi (Svissia)',
@@ -83,23 +98,44 @@
         'fr_MU' => 'francesi (Mauricio)',
         'fr_TD' => 'francesi (Tchad)',
         'fr_VU' => 'francesi (Vanuatu)',
+        'ga' => 'irlandesi',
+        'ga_GB' => 'irlandesi (Unit Reyia)',
+        'ga_IE' => 'irlandesi (Irland)',
+        'gl' => 'galician',
+        'gl_ES' => 'galician (Hispania)',
+        'ha' => 'hausa',
+        'he' => 'hebreic',
+        'hi' => 'hindi',
+        'hi_IN' => 'hindi (India)',
+        'hi_Latn' => 'hindi (latin)',
+        'hi_Latn_IN' => 'hindi (latin, India)',
         'hu' => 'hungarian',
         'hu_HU' => 'hungarian (Hungaria)',
+        'ia' => 'Interlingua',
+        'ia_001' => 'Interlingua (munde)',
         'id' => 'indonesian',
         'id_ID' => 'indonesian (Indonesia)',
         'ie' => 'Interlingue',
         'ie_EE' => 'Interlingue (Estonia)',
+        'is' => 'islandesi',
+        'is_IS' => 'islandesi (Island)',
         'it' => 'italian',
         'it_CH' => 'italian (Svissia)',
         'it_IT' => 'italian (Italia)',
         'it_SM' => 'italian (San-Marino)',
+        'it_VA' => 'italian (Cité de Vatican)',
         'ja' => 'japanesi',
+        'jv' => 'javan',
+        'jv_ID' => 'javan (Indonesia)',
+        'ka' => 'georgian',
         'ko' => 'korean',
         'lv' => 'lettonian',
+        'lv_LV' => 'lettonian (Lettonia)',
         'mt' => 'maltesi',
         'mt_MT' => 'maltesi (Malta)',
         'nl' => 'hollandesi',
         'nl_BE' => 'hollandesi (Belgia)',
+        'nl_NL' => 'hollandesi (Nederland)',
         'nl_SX' => 'hollandesi (Sint-Maarten)',
         'pl' => 'polonesi',
         'pl_PL' => 'polonesi (Polonia)',
@@ -109,6 +145,8 @@
         'pt_PT' => 'portugalesi (Portugal)',
         'pt_TL' => 'portugalesi (Ost-Timor)',
         'ru' => 'russ',
+        'ru_BY' => 'russ (Bielorussia)',
+        'ru_MD' => 'russ (Moldova)',
         'ru_RU' => 'russ (Russia)',
         'ru_UA' => 'russ (Ukraina)',
         'sk' => 'slovac',
@@ -116,9 +154,11 @@
         'sl' => 'slovenian',
         'sl_SI' => 'slovenian (Slovenia)',
         'sv' => 'sved',
+        'sv_AX' => 'sved (Insules Åland)',
         'sv_FI' => 'sved (Finland)',
         'sv_SE' => 'sved (Svedia)',
         'sw' => 'swahili',
+        'th' => 'thai',
         'tr' => 'turc',
         'zh' => 'chinesi',
         'zh_Hans' => 'chinesi (simplificat)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ig.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ig.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,45 +7,47 @@
         'af_ZA' => 'Afrikaans (South Africa)',
         'ak' => 'Akan',
         'ak_GH' => 'Akan (Ghana)',
-        'am' => 'Amariikị',
-        'am_ET' => 'Amariikị (Ethiopia)',
-        'ar' => 'Arabiikị',
-        'ar_001' => 'Arabiikị (Uwa)',
-        'ar_AE' => 'Arabiikị (United Arab Emirates)',
-        'ar_BH' => 'Arabiikị (Bahrain)',
-        'ar_DJ' => 'Arabiikị (Djibouti)',
-        'ar_DZ' => 'Arabiikị (Algeria)',
-        'ar_EG' => 'Arabiikị (Egypt)',
-        'ar_EH' => 'Arabiikị (Ọdịda Anyanwụ Sahara)',
-        'ar_ER' => 'Arabiikị (Eritrea)',
-        'ar_IL' => 'Arabiikị (Israel)',
-        'ar_IQ' => 'Arabiikị (Iraq)',
-        'ar_JO' => 'Arabiikị (Jordan)',
-        'ar_KM' => 'Arabiikị (Comoros)',
-        'ar_KW' => 'Arabiikị (Kuwait)',
-        'ar_LB' => 'Arabiikị (Lebanon)',
-        'ar_LY' => 'Arabiikị (Libia)',
-        'ar_MA' => 'Arabiikị (Morocco)',
-        'ar_MR' => 'Arabiikị (Mauritania)',
-        'ar_OM' => 'Arabiikị (Oman)',
-        'ar_PS' => 'Arabiikị (Mpaghara ndị Palestine)',
-        'ar_QA' => 'Arabiikị (Qatar)',
-        'ar_SA' => 'Arabiikị (Saudi Arabia)',
-        'ar_SD' => 'Arabiikị (Sudan)',
-        'ar_SO' => 'Arabiikị (Somalia)',
-        'ar_SS' => 'Arabiikị (South Sudan)',
-        'ar_SY' => 'Arabiikị (Syria)',
-        'ar_TD' => 'Arabiikị (Chad)',
-        'ar_TN' => 'Arabiikị (Tunisia)',
-        'ar_YE' => 'Arabiikị (Yemen)',
-        'as' => 'Asamisị',
-        'as_IN' => 'Asamisị (India)',
+        'am' => 'Asụsụ Amariikị',
+        'am_ET' => 'Asụsụ Amariikị (Ethiopia)',
+        'ar' => 'Asụsụ Arabiikị',
+        'ar_001' => 'Asụsụ Arabiikị (Uwa)',
+        'ar_AE' => 'Asụsụ Arabiikị (United Arab Emirates)',
+        'ar_BH' => 'Asụsụ Arabiikị (Bahrain)',
+        'ar_DJ' => 'Asụsụ Arabiikị (Djibouti)',
+        'ar_DZ' => 'Asụsụ Arabiikị (Algeria)',
+        'ar_EG' => 'Asụsụ Arabiikị (Egypt)',
+        'ar_EH' => 'Asụsụ Arabiikị (Ọdịda Anyanwụ Sahara)',
+        'ar_ER' => 'Asụsụ Arabiikị (Eritrea)',
+        'ar_IL' => 'Asụsụ Arabiikị (Israel)',
+        'ar_IQ' => 'Asụsụ Arabiikị (Iraq)',
+        'ar_JO' => 'Asụsụ Arabiikị (Jordan)',
+        'ar_KM' => 'Asụsụ Arabiikị (Comoros)',
+        'ar_KW' => 'Asụsụ Arabiikị (Kuwait)',
+        'ar_LB' => 'Asụsụ Arabiikị (Lebanon)',
+        'ar_LY' => 'Asụsụ Arabiikị (Libia)',
+        'ar_MA' => 'Asụsụ Arabiikị (Morocco)',
+        'ar_MR' => 'Asụsụ Arabiikị (Mauritania)',
+        'ar_OM' => 'Asụsụ Arabiikị (Oman)',
+        'ar_PS' => 'Asụsụ Arabiikị (Mpaghara ndị Palestine)',
+        'ar_QA' => 'Asụsụ Arabiikị (Qatar)',
+        'ar_SA' => 'Asụsụ Arabiikị (Saudi Arabia)',
+        'ar_SD' => 'Asụsụ Arabiikị (Sudan)',
+        'ar_SO' => 'Asụsụ Arabiikị (Somalia)',
+        'ar_SS' => 'Asụsụ Arabiikị (South Sudan)',
+        'ar_SY' => 'Asụsụ Arabiikị (Syria)',
+        'ar_TD' => 'Asụsụ Arabiikị (Chad)',
+        'ar_TN' => 'Asụsụ Arabiikị (Tunisia)',
+        'ar_YE' => 'Asụsụ Arabiikị (Yemen)',
+        'as' => 'Asụsụ Asamisị',
+        'as_IN' => 'Asụsụ Asamisị (India)',
         'az' => 'Azerbaijani',
         'az_AZ' => 'Azerbaijani (Azerbaijan)',
         'az_Cyrl' => 'Azerbaijani (Cyrillic)',
         'az_Cyrl_AZ' => 'Azerbaijani (Cyrillic, Azerbaijan)',
         'az_Latn' => 'Azerbaijani (Latin)',
         'az_Latn_AZ' => 'Azerbaijani (Latin, Azerbaijan)',
+        'ba' => 'Bashkir',
+        'ba_RU' => 'Bashkir (Russia)',
         'be' => 'Belarusian',
         'be_BY' => 'Belarusian (Belarus)',
         'bg' => 'Bulgarian',
@@ -125,6 +127,7 @@
         'en_DE' => 'Bekee (Germany)',
         'en_DK' => 'Bekee (Denmark)',
         'en_DM' => 'Bekee (Dominica)',
+        'en_EE' => 'Bekee (Estonia)',
         'en_ER' => 'Bekee (Eritrea)',
         'en_ES' => 'Bekee (Spain)',
         'en_FI' => 'Bekee (Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Bekee (France)',
         'en_GB' => 'Bekee (United Kingdom)',
         'en_GD' => 'Bekee (Grenada)',
+        'en_GE' => 'Bekee (Georgia)',
         'en_GG' => 'Bekee (Guernsey)',
         'en_GH' => 'Bekee (Ghana)',
         'en_GI' => 'Bekee (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Bekee (Italy)',
         'en_JE' => 'Bekee (Jersey)',
         'en_JM' => 'Bekee (Jamaika)',
+        'en_JP' => 'Bekee (Japan)',
         'en_KE' => 'Bekee (Kenya)',
         'en_KI' => 'Bekee (Kiribati)',
         'en_KN' => 'Bekee (St. Kitts & Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Bekee (St. Lucia)',
         'en_LR' => 'Bekee (Liberia)',
         'en_LS' => 'Bekee (Lesotho)',
+        'en_LT' => 'Bekee (Lithuania)',
+        'en_LV' => 'Bekee (Latvia)',
         'en_MG' => 'Bekee (Madagascar)',
         'en_MH' => 'Bekee (Agwaetiti Marshall)',
         'en_MO' => 'Bekee (Macao SAR China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Bekee (Trinidad na Tobago)',
         'en_TV' => 'Bekee (Tuvalu)',
         'en_TZ' => 'Bekee (Tanzania)',
+        'en_UA' => 'Bekee (Ukraine)',
         'en_UG' => 'Bekee (Uganda)',
         'en_UM' => 'Bekee (Obere Agwaetiti Dị Na Mpụga U.S)',
         'en_US' => 'Bekee (United States)',
@@ -363,8 +371,8 @@
         'hr_HR' => 'Croatian (Croatia)',
         'hu' => 'Hungarian',
         'hu_HU' => 'Hungarian (Hungary)',
-        'hy' => 'Armenianị',
-        'hy_AM' => 'Armenianị (Armenia)',
+        'hy' => 'Asụsụ Armenianị',
+        'hy_AM' => 'Asụsụ Armenianị (Armenia)',
         'ia' => 'Interlingua',
         'ia_001' => 'Interlingua (Uwa)',
         'id' => 'Indonesian',
@@ -391,6 +399,8 @@
         'ki' => 'Kikuyu',
         'ki_KE' => 'Kikuyu (Kenya)',
         'kk' => 'Kazakh',
+        'kk_Arab' => 'Kazakh (Mkpụrụ Okwu Arabic)',
+        'kk_Arab_CN' => 'Kazakh (Mkpụrụ Okwu Arabic, China)',
         'kk_Cyrl' => 'Kazakh (Cyrillic)',
         'kk_Cyrl_KZ' => 'Kazakh (Cyrillic, Kazakhstan)',
         'kk_KZ' => 'Kazakh (Kazakhstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Kashmiri (Mkpụrụ ọkwụ Devangarị, India)',
         'ks_IN' => 'Kashmiri (India)',
         'ku' => 'Kurdish',
+        'ku_Latn' => 'Kurdish (Latin)',
+        'ku_Latn_IQ' => 'Kurdish (Latin, Iraq)',
+        'ku_Latn_SY' => 'Kurdish (Latin, Syria)',
+        'ku_Latn_TR' => 'Kurdish (Latin, Türkiye)',
+        'ku_SY' => 'Kurdish (Syria)',
         'ku_TR' => 'Kurdish (Türkiye)',
         'kw' => 'Cornish',
         'kw_GB' => 'Cornish (United Kingdom)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ii.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ii.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ii.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ii.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,7 @@
         'en_GB' => 'ꑱꇩꉙ（ꑱꇩ）',
         'en_IN' => 'ꑱꇩꉙ（ꑴꄗ）',
         'en_IT' => 'ꑱꇩꉙ（ꑴꄊꆺ）',
+        'en_JP' => 'ꑱꇩꉙ（ꏝꀪ）',
         'en_US' => 'ꑱꇩꉙ（ꂰꇩ）',
         'es' => 'ꑭꀠꑸꉙ',
         'es_BR' => 'ꑭꀠꑸꉙ（ꀠꑭ）',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/is.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/is.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/is.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/is.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'aserska (kyrillískt, Aserbaídsjan)',
         'az_Latn' => 'aserska (latneskt)',
         'az_Latn_AZ' => 'aserska (latneskt, Aserbaídsjan)',
+        'ba' => 'baskír',
+        'ba_RU' => 'baskír (Rússland)',
         'be' => 'hvítrússneska',
         'be_BY' => 'hvítrússneska (Hvíta-Rússland)',
         'bg' => 'búlgarska',
@@ -125,6 +127,7 @@
         'en_DE' => 'enska (Þýskaland)',
         'en_DK' => 'enska (Danmörk)',
         'en_DM' => 'enska (Dóminíka)',
+        'en_EE' => 'enska (Eistland)',
         'en_ER' => 'enska (Erítrea)',
         'en_ES' => 'enska (Spánn)',
         'en_FI' => 'enska (Finnland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'enska (Frakkland)',
         'en_GB' => 'enska (Bretland)',
         'en_GD' => 'enska (Grenada)',
+        'en_GE' => 'enska (Georgía)',
         'en_GG' => 'enska (Guernsey)',
         'en_GH' => 'enska (Gana)',
         'en_GI' => 'enska (Gíbraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'enska (Ítalía)',
         'en_JE' => 'enska (Jersey)',
         'en_JM' => 'enska (Jamaíka)',
+        'en_JP' => 'enska (Japan)',
         'en_KE' => 'enska (Kenía)',
         'en_KI' => 'enska (Kíribatí)',
         'en_KN' => 'enska (Sankti Kitts og Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'enska (Sankti Lúsía)',
         'en_LR' => 'enska (Líbería)',
         'en_LS' => 'enska (Lesótó)',
+        'en_LT' => 'enska (Litháen)',
+        'en_LV' => 'enska (Lettland)',
         'en_MG' => 'enska (Madagaskar)',
         'en_MH' => 'enska (Marshalleyjar)',
         'en_MO' => 'enska (sérstjórnarsvæðið Makaó)',
@@ -205,6 +212,7 @@
         'en_TT' => 'enska (Trínidad og Tóbagó)',
         'en_TV' => 'enska (Túvalú)',
         'en_TZ' => 'enska (Tansanía)',
+        'en_UA' => 'enska (Úkraína)',
         'en_UG' => 'enska (Úganda)',
         'en_UM' => 'enska (Smáeyjar Bandaríkjanna)',
         'en_US' => 'enska (Bandaríkin)',
@@ -391,6 +399,8 @@
         'ki' => 'kíkújú',
         'ki_KE' => 'kíkújú (Kenía)',
         'kk' => 'kasakska',
+        'kk_Arab' => 'kasakska (arabískt)',
+        'kk_Arab_CN' => 'kasakska (arabískt, Kína)',
         'kk_Cyrl' => 'kasakska (kyrillískt)',
         'kk_Cyrl_KZ' => 'kasakska (kyrillískt, Kasakstan)',
         'kk_KZ' => 'kasakska (Kasakstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kasmírska (devanagari, Indland)',
         'ks_IN' => 'kasmírska (Indland)',
         'ku' => 'kúrdíska',
+        'ku_Latn' => 'kúrdíska (latneskt)',
+        'ku_Latn_IQ' => 'kúrdíska (latneskt, Írak)',
+        'ku_Latn_SY' => 'kúrdíska (latneskt, Sýrland)',
+        'ku_Latn_TR' => 'kúrdíska (latneskt, Tyrkland)',
+        'ku_SY' => 'kúrdíska (Sýrland)',
         'ku_TR' => 'kúrdíska (Tyrkland)',
         'kw' => 'kornbreska',
         'kw_GB' => 'kornbreska (Bretland)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/it.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/it.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/it.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/it.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaigiano (cirillico, Azerbaigian)',
         'az_Latn' => 'azerbaigiano (latino)',
         'az_Latn_AZ' => 'azerbaigiano (latino, Azerbaigian)',
+        'ba' => 'baschiro',
+        'ba_RU' => 'baschiro (Russia)',
         'be' => 'bielorusso',
         'be_BY' => 'bielorusso (Bielorussia)',
         'bg' => 'bulgaro',
@@ -125,6 +127,7 @@
         'en_DE' => 'inglese (Germania)',
         'en_DK' => 'inglese (Danimarca)',
         'en_DM' => 'inglese (Dominica)',
+        'en_EE' => 'inglese (Estonia)',
         'en_ER' => 'inglese (Eritrea)',
         'en_ES' => 'inglese (Spagna)',
         'en_FI' => 'inglese (Finlandia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'inglese (Francia)',
         'en_GB' => 'inglese (Regno Unito)',
         'en_GD' => 'inglese (Grenada)',
+        'en_GE' => 'inglese (Georgia)',
         'en_GG' => 'inglese (Guernsey)',
         'en_GH' => 'inglese (Ghana)',
         'en_GI' => 'inglese (Gibilterra)',
@@ -152,6 +156,7 @@
         'en_IT' => 'inglese (Italia)',
         'en_JE' => 'inglese (Jersey)',
         'en_JM' => 'inglese (Giamaica)',
+        'en_JP' => 'inglese (Giappone)',
         'en_KE' => 'inglese (Kenya)',
         'en_KI' => 'inglese (Kiribati)',
         'en_KN' => 'inglese (Saint Kitts e Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'inglese (Saint Lucia)',
         'en_LR' => 'inglese (Liberia)',
         'en_LS' => 'inglese (Lesotho)',
+        'en_LT' => 'inglese (Lituania)',
+        'en_LV' => 'inglese (Lettonia)',
         'en_MG' => 'inglese (Madagascar)',
         'en_MH' => 'inglese (Isole Marshall)',
         'en_MO' => 'inglese (RAS di Macao)',
@@ -205,6 +212,7 @@
         'en_TT' => 'inglese (Trinidad e Tobago)',
         'en_TV' => 'inglese (Tuvalu)',
         'en_TZ' => 'inglese (Tanzania)',
+        'en_UA' => 'inglese (Ucraina)',
         'en_UG' => 'inglese (Uganda)',
         'en_UM' => 'inglese (Isole Minori Esterne degli Stati Uniti)',
         'en_US' => 'inglese (Stati Uniti)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenya)',
         'kk' => 'kazako',
+        'kk_Arab' => 'kazako (arabo)',
+        'kk_Arab_CN' => 'kazako (arabo, Cina)',
         'kk_Cyrl' => 'kazako (cirillico)',
         'kk_Cyrl_KZ' => 'kazako (cirillico, Kazakistan)',
         'kk_KZ' => 'kazako (Kazakistan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kashmiri (devanagari, India)',
         'ks_IN' => 'kashmiri (India)',
         'ku' => 'curdo',
+        'ku_Latn' => 'curdo (latino)',
+        'ku_Latn_IQ' => 'curdo (latino, Iraq)',
+        'ku_Latn_SY' => 'curdo (latino, Siria)',
+        'ku_Latn_TR' => 'curdo (latino, Turchia)',
+        'ku_SY' => 'curdo (Siria)',
         'ku_TR' => 'curdo (Turchia)',
         'kw' => 'cornico',
         'kw_GB' => 'cornico (Regno Unito)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ja.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ja.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ja.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ja.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'アゼルバイジャン語 (キリル文字、アゼルバイジャン)',
         'az_Latn' => 'アゼルバイジャン語 (ラテン文字)',
         'az_Latn_AZ' => 'アゼルバイジャン語 (ラテン文字、アゼルバイジャン)',
+        'ba' => 'バシキール語',
+        'ba_RU' => 'バシキール語 (ロシア)',
         'be' => 'ベラルーシ語',
         'be_BY' => 'ベラルーシ語 (ベラルーシ)',
         'bg' => 'ブルガリア語',
@@ -125,6 +127,7 @@
         'en_DE' => '英語 (ドイツ)',
         'en_DK' => '英語 (デンマーク)',
         'en_DM' => '英語 (ドミニカ国)',
+        'en_EE' => '英語 (エストニア)',
         'en_ER' => '英語 (エリトリア)',
         'en_ES' => '英語 (スペイン)',
         'en_FI' => '英語 (フィンランド)',
@@ -134,6 +137,7 @@
         'en_FR' => '英語 (フランス)',
         'en_GB' => '英語 (イギリス)',
         'en_GD' => '英語 (グレナダ)',
+        'en_GE' => '英語 (ジョージア)',
         'en_GG' => '英語 (ガーンジー)',
         'en_GH' => '英語 (ガーナ)',
         'en_GI' => '英語 (ジブラルタル)',
@@ -152,6 +156,7 @@
         'en_IT' => '英語 (イタリア)',
         'en_JE' => '英語 (ジャージー)',
         'en_JM' => '英語 (ジャマイカ)',
+        'en_JP' => '英語 (日本)',
         'en_KE' => '英語 (ケニア)',
         'en_KI' => '英語 (キリバス)',
         'en_KN' => '英語 (セントクリストファー・ネーヴィス)',
@@ -159,6 +164,8 @@
         'en_LC' => '英語 (セントルシア)',
         'en_LR' => '英語 (リベリア)',
         'en_LS' => '英語 (レソト)',
+        'en_LT' => '英語 (リトアニア)',
+        'en_LV' => '英語 (ラトビア)',
         'en_MG' => '英語 (マダガスカル)',
         'en_MH' => '英語 (マーシャル諸島)',
         'en_MO' => '英語 (中華人民共和国マカオ特別行政区)',
@@ -205,6 +212,7 @@
         'en_TT' => '英語 (トリニダード・トバゴ)',
         'en_TV' => '英語 (ツバル)',
         'en_TZ' => '英語 (タンザニア)',
+        'en_UA' => '英語 (ウクライナ)',
         'en_UG' => '英語 (ウガンダ)',
         'en_UM' => '英語 (合衆国領有小離島)',
         'en_US' => '英語 (アメリカ合衆国)',
@@ -391,6 +399,8 @@
         'ki' => 'キクユ語',
         'ki_KE' => 'キクユ語 (ケニア)',
         'kk' => 'カザフ語',
+        'kk_Arab' => 'カザフ語 (アラビア文字)',
+        'kk_Arab_CN' => 'カザフ語 (アラビア文字、中国)',
         'kk_Cyrl' => 'カザフ語 (キリル文字)',
         'kk_Cyrl_KZ' => 'カザフ語 (キリル文字、カザフスタン)',
         'kk_KZ' => 'カザフ語 (カザフスタン)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'カシミール語 (デーバナーガリー文字、インド)',
         'ks_IN' => 'カシミール語 (インド)',
         'ku' => 'クルド語',
+        'ku_Latn' => 'クルド語 (ラテン文字)',
+        'ku_Latn_IQ' => 'クルド語 (ラテン文字、イラク)',
+        'ku_Latn_SY' => 'クルド語 (ラテン文字、シリア)',
+        'ku_Latn_TR' => 'クルド語 (ラテン文字、トルコ)',
+        'ku_SY' => 'クルド語 (シリア)',
         'ku_TR' => 'クルド語 (トルコ)',
         'kw' => 'コーンウォール語',
         'kw_GB' => 'コーンウォール語 (イギリス)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/jv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/jv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/jv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/jv.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,9 +2,9 @@
 
 return [
     'Names' => [
-        'af' => 'Afrika',
-        'af_NA' => 'Afrika (Namibia)',
-        'af_ZA' => 'Afrika (Afrika Kidul)',
+        'af' => 'Afrikaans',
+        'af_NA' => 'Afrikaans (Namibia)',
+        'af_ZA' => 'Afrikaans (Afrika Kidul)',
         'ak' => 'Akan',
         'ak_GH' => 'Akan (Ghana)',
         'am' => 'Amharik',
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Azerbaijan (Sirilik, Azerbaijan)',
         'az_Latn' => 'Azerbaijan (Latin)',
         'az_Latn_AZ' => 'Azerbaijan (Latin, Azerbaijan)',
+        'ba' => 'Bashkir',
+        'ba_RU' => 'Bashkir (Rusia)',
         'be' => 'Belarus',
         'be_BY' => 'Belarus (Bélarus)',
         'bg' => 'Bulgaria',
@@ -125,6 +127,7 @@
         'en_DE' => 'Inggris (Jérman)',
         'en_DK' => 'Inggris (Dhènemarken)',
         'en_DM' => 'Inggris (Dominika)',
+        'en_EE' => 'Inggris (Éstonia)',
         'en_ER' => 'Inggris (Éritréa)',
         'en_ES' => 'Inggris (Sepanyol)',
         'en_FI' => 'Inggris (Finlan)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Inggris (Prancis)',
         'en_GB' => 'Inggris (Karajan Manunggal)',
         'en_GD' => 'Inggris (Grénada)',
+        'en_GE' => 'Inggris (Géorgia)',
         'en_GG' => 'Inggris (Guernsei)',
         'en_GH' => 'Inggris (Ghana)',
         'en_GI' => 'Inggris (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Inggris (Itali)',
         'en_JE' => 'Inggris (Jersey)',
         'en_JM' => 'Inggris (Jamaika)',
+        'en_JP' => 'Inggris (Jepang)',
         'en_KE' => 'Inggris (Kénya)',
         'en_KI' => 'Inggris (Kiribati)',
         'en_KN' => 'Inggris (Saint Kits lan Nèvis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Inggris (Santa Lusia)',
         'en_LR' => 'Inggris (Libèria)',
         'en_LS' => 'Inggris (Lésotho)',
+        'en_LT' => 'Inggris (Litowen)',
+        'en_LV' => 'Inggris (Latvia)',
         'en_MG' => 'Inggris (Madagaskar)',
         'en_MH' => 'Inggris (Kapuloan Marshall)',
         'en_MO' => 'Inggris (Laladan Administratif Astamiwa Makau)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Inggris (Trinidad lan Tobago)',
         'en_TV' => 'Inggris (Tuvalu)',
         'en_TZ' => 'Inggris (Tansania)',
+        'en_UA' => 'Inggris (Ukrania)',
         'en_UG' => 'Inggris (Uganda)',
         'en_UM' => 'Inggris (Kapuloan AS Paling Njaba)',
         'en_US' => 'Inggris (Amérika Sarékat)',
@@ -391,6 +399,8 @@
         'ki' => 'Kikuyu',
         'ki_KE' => 'Kikuyu (Kénya)',
         'kk' => 'Kazakh',
+        'kk_Arab' => 'Kazakh (hija’iyah)',
+        'kk_Arab_CN' => 'Kazakh (hija’iyah, Tyongkok)',
         'kk_Cyrl' => 'Kazakh (Sirilik)',
         'kk_Cyrl_KZ' => 'Kazakh (Sirilik, Kasakstan)',
         'kk_KZ' => 'Kazakh (Kasakstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Kashmiri (Devanagari, Indhia)',
         'ks_IN' => 'Kashmiri (Indhia)',
         'ku' => 'Kurdis',
+        'ku_Latn' => 'Kurdis (Latin)',
+        'ku_Latn_IQ' => 'Kurdis (Latin, Irak)',
+        'ku_Latn_SY' => 'Kurdis (Latin, Suriah)',
+        'ku_Latn_TR' => 'Kurdis (Latin, Turki)',
+        'ku_SY' => 'Kurdis (Suriah)',
         'ku_TR' => 'Kurdis (Turki)',
         'kw' => 'Kernowek',
         'kw_GB' => 'Kernowek (Karajan Manunggal)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ka.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ka.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ka.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ka.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'აზერბაიჯანული (კირილიცა, აზერბაიჯანი)',
         'az_Latn' => 'აზერბაიჯანული (ლათინური)',
         'az_Latn_AZ' => 'აზერბაიჯანული (ლათინური, აზერბაიჯანი)',
+        'ba' => 'ბაშკირული',
+        'ba_RU' => 'ბაშკირული (რუსეთი)',
         'be' => 'ბელარუსული',
         'be_BY' => 'ბელარუსული (ბელარუსი)',
         'bg' => 'ბულგარული',
@@ -125,6 +127,7 @@
         'en_DE' => 'ინგლისური (გერმანია)',
         'en_DK' => 'ინგლისური (დანია)',
         'en_DM' => 'ინგლისური (დომინიკა)',
+        'en_EE' => 'ინგლისური (ესტონეთი)',
         'en_ER' => 'ინგლისური (ერიტრეა)',
         'en_ES' => 'ინგლისური (ესპანეთი)',
         'en_FI' => 'ინგლისური (ფინეთი)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ინგლისური (საფრანგეთი)',
         'en_GB' => 'ინგლისური (გაერთიანებული სამეფო)',
         'en_GD' => 'ინგლისური (გრენადა)',
+        'en_GE' => 'ინგლისური (საქართველო)',
         'en_GG' => 'ინგლისური (გერნსი)',
         'en_GH' => 'ინგლისური (განა)',
         'en_GI' => 'ინგლისური (გიბრალტარი)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ინგლისური (იტალია)',
         'en_JE' => 'ინგლისური (ჯერსი)',
         'en_JM' => 'ინგლისური (იამაიკა)',
+        'en_JP' => 'ინგლისური (იაპონია)',
         'en_KE' => 'ინგლისური (კენია)',
         'en_KI' => 'ინგლისური (კირიბატი)',
         'en_KN' => 'ინგლისური (სენტ-კიტსი და ნევისი)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ინგლისური (სენტ-ლუსია)',
         'en_LR' => 'ინგლისური (ლიბერია)',
         'en_LS' => 'ინგლისური (ლესოთო)',
+        'en_LT' => 'ინგლისური (ლიეტუვა)',
+        'en_LV' => 'ინგლისური (ლატვია)',
         'en_MG' => 'ინგლისური (მადაგასკარი)',
         'en_MH' => 'ინგლისური (მარშალის კუნძულები)',
         'en_MO' => 'ინგლისური (მაკაოს სპეციალური ადმინისტრაციული რეგიონი, ჩინეთი)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ინგლისური (ტრინიდადი და ტობაგო)',
         'en_TV' => 'ინგლისური (ტუვალუ)',
         'en_TZ' => 'ინგლისური (ტანზანია)',
+        'en_UA' => 'ინგლისური (უკრაინა)',
         'en_UG' => 'ინგლისური (უგანდა)',
         'en_UM' => 'ინგლისური (აშშ-ის შორეული კუნძულები)',
         'en_US' => 'ინგლისური (ამერიკის შეერთებული შტატები)',
@@ -391,6 +399,8 @@
         'ki' => 'კიკუიუ',
         'ki_KE' => 'კიკუიუ (კენია)',
         'kk' => 'ყაზახური',
+        'kk_Arab' => 'ყაზახური (არაბული)',
+        'kk_Arab_CN' => 'ყაზახური (არაბული, ჩინეთი)',
         'kk_Cyrl' => 'ყაზახური (კირილიცა)',
         'kk_Cyrl_KZ' => 'ყაზახური (კირილიცა, ყაზახეთი)',
         'kk_KZ' => 'ყაზახური (ყაზახეთი)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'ქაშმირული (დევანაგარი, ინდოეთი)',
         'ks_IN' => 'ქაშმირული (ინდოეთი)',
         'ku' => 'ქურთული',
+        'ku_Latn' => 'ქურთული (ლათინური)',
+        'ku_Latn_IQ' => 'ქურთული (ლათინური, ერაყი)',
+        'ku_Latn_SY' => 'ქურთული (ლათინური, სირია)',
+        'ku_Latn_TR' => 'ქურთული (ლათინური, თურქეთი)',
+        'ku_SY' => 'ქურთული (სირია)',
         'ku_TR' => 'ქურთული (თურქეთი)',
         'kw' => 'კორნული',
         'kw_GB' => 'კორნული (გაერთიანებული სამეფო)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ki.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ki.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ki.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ki.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,6 +75,7 @@
         'en_DE' => 'Gĩthungũ (Njeremani)',
         'en_DK' => 'Gĩthungũ (Denmaki)',
         'en_DM' => 'Gĩthungũ (Dominika)',
+        'en_EE' => 'Gĩthungũ (Estonia)',
         'en_ER' => 'Gĩthungũ (Eritrea)',
         'en_ES' => 'Gĩthungũ (Hispania)',
         'en_FI' => 'Gĩthungũ (Ufini)',
@@ -84,6 +85,7 @@
         'en_FR' => 'Gĩthungũ (Ubaranja)',
         'en_GB' => 'Gĩthungũ (Ngeretha)',
         'en_GD' => 'Gĩthungũ (Grenada)',
+        'en_GE' => 'Gĩthungũ (Jojia)',
         'en_GH' => 'Gĩthungũ (Ngana)',
         'en_GI' => 'Gĩthungũ (Jibralta)',
         'en_GM' => 'Gĩthungũ (Gambia)',
@@ -96,6 +98,7 @@
         'en_IN' => 'Gĩthungũ (India)',
         'en_IT' => 'Gĩthungũ (Italia)',
         'en_JM' => 'Gĩthungũ (Jamaika)',
+        'en_JP' => 'Gĩthungũ (Njabani)',
         'en_KE' => 'Gĩthungũ (Kenya)',
         'en_KI' => 'Gĩthungũ (Kiribati)',
         'en_KN' => 'Gĩthungũ (Santakitzi na Nevis)',
@@ -103,6 +106,8 @@
         'en_LC' => 'Gĩthungũ (Santalusia)',
         'en_LR' => 'Gĩthungũ (Liberia)',
         'en_LS' => 'Gĩthungũ (Lesoto)',
+        'en_LT' => 'Gĩthungũ (Litwania)',
+        'en_LV' => 'Gĩthungũ (Lativia)',
         'en_MG' => 'Gĩthungũ (Bukini)',
         'en_MH' => 'Gĩthungũ (Visiwa vya Marshal)',
         'en_MP' => 'Gĩthungũ (Visiwa vya Mariana vya Kaskazini)',
@@ -146,6 +151,7 @@
         'en_TT' => 'Gĩthungũ (Trinidad na Tobago)',
         'en_TV' => 'Gĩthungũ (Tuvalu)',
         'en_TZ' => 'Gĩthungũ (Tanzania)',
+        'en_UA' => 'Gĩthungũ (Ukraini)',
         'en_UG' => 'Gĩthungũ (Uganda)',
         'en_US' => 'Gĩthungũ (Amerika)',
         'en_VC' => 'Gĩthungũ (Santavisenti na Grenadini)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kk_Arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kk_Arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kk_Arab.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kk_Arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,685 @@
+<?php
+
+return [
+    'Names' => [
+        'af' => 'افريكاانس ءتىلى',
+        'af_NA' => 'افريكاانس ءتىلى (ناميبيا)',
+        'af_ZA' => 'افريكاانس ءتىلى (وڭتۇستىك افريكا)',
+        'ak' => 'اكان ءتىلى',
+        'ak_GH' => 'اكان ءتىلى (گانا)',
+        'am' => 'امحار ءتىلى',
+        'am_ET' => 'امحار ءتىلى (ەفيوپيا)',
+        'ar' => 'اراب ءتىلى',
+        'ar_001' => 'اراب ءتىلى (الەم)',
+        'ar_AE' => 'اراب ءتىلى (بىرىككەن اراب امىرلىكتەرى)',
+        'ar_BH' => 'اراب ءتىلى (باحرەين)',
+        'ar_DJ' => 'اراب ءتىلى (دجيبۋتي)',
+        'ar_DZ' => 'اراب ءتىلى (الجىر)',
+        'ar_EG' => 'اراب ءتىلى (مىسىر)',
+        'ar_EH' => 'اراب ءتىلى (باتىس ساحارا)',
+        'ar_ER' => 'اراب ءتىلى (ەريترەيا)',
+        'ar_IL' => 'اراب ءتىلى (يزرايل)',
+        'ar_IQ' => 'اراب ءتىلى (يراك)',
+        'ar_JO' => 'اراب ءتىلى (يوردانيا)',
+        'ar_KM' => 'اراب ءتىلى (كومور ارالدارى)',
+        'ar_KW' => 'اراب ءتىلى (كۋۆەيت)',
+        'ar_LB' => 'اراب ءتىلى (ليۆان)',
+        'ar_LY' => 'اراب ءتىلى (ليۆيا)',
+        'ar_MA' => 'اراب ءتىلى (ماروككو)',
+        'ar_MR' => 'اراب ءتىلى (ماۆريتانيا)',
+        'ar_OM' => 'اراب ءتىلى (ومان)',
+        'ar_PS' => 'اراب ءتىلى (پالەستينا ايماقتارى)',
+        'ar_QA' => 'اراب ءتىلى (كاتار)',
+        'ar_SA' => 'اراب ءتىلى (ساۋد ارابياسى)',
+        'ar_SD' => 'اراب ءتىلى (سۋدان)',
+        'ar_SO' => 'اراب ءتىلى (سومالي)',
+        'ar_SS' => 'اراب ءتىلى (وڭتۇستىك سۋدان)',
+        'ar_SY' => 'اراب ءتىلى (سيريا)',
+        'ar_TD' => 'اراب ءتىلى (چاد)',
+        'ar_TN' => 'اراب ءتىلى (تۋنيس)',
+        'ar_YE' => 'اراب ءتىلى (يەمەن)',
+        'as' => 'اسسام ءتىلى',
+        'as_IN' => 'اسسام ءتىلى (ءۇندىستان)',
+        'az' => 'ءازىربايجان ءتىلى',
+        'az_AZ' => 'ءازىربايجان ءتىلى (ءازىربايجان)',
+        'az_Cyrl' => 'ءازىربايجان ءتىلى (كيريل جازۋى)',
+        'az_Cyrl_AZ' => 'ءازىربايجان ءتىلى (كيريل جازۋى، ءازىربايجان)',
+        'az_Latn' => 'ءازىربايجان ءتىلى (لاتىن جازۋى)',
+        'az_Latn_AZ' => 'ءازىربايجان ءتىلى (لاتىن جازۋى، ءازىربايجان)',
+        'ba' => 'باشقۇرت ءتىلى',
+        'ba_RU' => 'باشقۇرت ءتىلى (حەسەي)',
+        'be' => 'بەلارۋس ءتىلى',
+        'be_BY' => 'بەلارۋس ءتىلى (بەلارۋس)',
+        'bg' => 'بولگار ءتىلى',
+        'bg_BG' => 'بولگار ءتىلى (بولگاريا)',
+        'bm' => 'بامبارا ءتىلى',
+        'bm_ML' => 'بامبارا ءتىلى (مالي)',
+        'bn' => 'بەنگال ءتىلى',
+        'bn_BD' => 'بەنگال ءتىلى (بانگلادەش)',
+        'bn_IN' => 'بەنگال ءتىلى (ءۇندىستان)',
+        'bo' => 'تيبەت ءتىلى',
+        'bo_CN' => 'تيبەت ءتىلى (قىتاي)',
+        'bo_IN' => 'تيبەت ءتىلى (ءۇندىستان)',
+        'br' => 'برەتون ءتىلى',
+        'br_FR' => 'برەتون ءتىلى (فرانسيا)',
+        'bs' => 'بوسنيا ءتىلى',
+        'bs_BA' => 'بوسنيا ءتىلى (بوسنيا جانە گەرتسەگوۆينا)',
+        'bs_Cyrl' => 'بوسنيا ءتىلى (كيريل جازۋى)',
+        'bs_Cyrl_BA' => 'بوسنيا ءتىلى (كيريل جازۋى، بوسنيا جانە گەرتسەگوۆينا)',
+        'bs_Latn' => 'بوسنيا ءتىلى (لاتىن جازۋى)',
+        'bs_Latn_BA' => 'بوسنيا ءتىلى (لاتىن جازۋى، بوسنيا جانە گەرتسەگوۆينا)',
+        'ca' => 'كاتالان ءتىلى',
+        'ca_AD' => 'كاتالان ءتىلى (اندوررا)',
+        'ca_ES' => 'كاتالان ءتىلى (يسپانيا)',
+        'ca_FR' => 'كاتالان ءتىلى (فرانسيا)',
+        'ca_IT' => 'كاتالان ءتىلى (يتاليا)',
+        'ce' => 'شەشەن ءتىلى',
+        'ce_RU' => 'شەشەن ءتىلى (حەسەي)',
+        'cs' => 'چەح ءتىلى',
+        'cs_CZ' => 'چەح ءتىلى (چەحيا)',
+        'cv' => 'چۋۆاش ءتىلى',
+        'cv_RU' => 'چۋۆاش ءتىلى (حەسەي)',
+        'cy' => 'ۆاللي ءتىلى',
+        'cy_GB' => 'ۆاللي ءتىلى (ۇلىبريتانيا)',
+        'da' => 'دات ءتىلى',
+        'da_DK' => 'دات ءتىلى (دانيا)',
+        'da_GL' => 'دات ءتىلى (گرەنلانديا)',
+        'de' => 'نەمىس ءتىلى',
+        'de_AT' => 'نەمىس ءتىلى (اۋستريا)',
+        'de_BE' => 'نەمىس ءتىلى (بەلگيا)',
+        'de_CH' => 'نەمىس ءتىلى (شۆەيساريا)',
+        'de_DE' => 'نەمىس ءتىلى (گەرمانيا)',
+        'de_IT' => 'نەمىس ءتىلى (يتاليا)',
+        'de_LI' => 'نەمىس ءتىلى (ليحتەنشتەين)',
+        'de_LU' => 'نەمىس ءتىلى (ليۋكسەمبۋرگ)',
+        'dz' => 'جوڭكا ءتىلى',
+        'dz_BT' => 'جوڭكا ءتىلى (بۋتان)',
+        'ee' => 'ەۆە ءتىلى',
+        'ee_GH' => 'ەۆە ءتىلى (گانا)',
+        'ee_TG' => 'ەۆە ءتىلى (توگو)',
+        'el' => 'گرەك ءتىلى',
+        'el_CY' => 'گرەك ءتىلى (كيپر)',
+        'el_GR' => 'گرەك ءتىلى (گرەكيا)',
+        'en' => 'اعىلشىن ءتىلى',
+        'en_001' => 'اعىلشىن ءتىلى (الەم)',
+        'en_150' => 'اعىلشىن ءتىلى (ەۋروپا)',
+        'en_AE' => 'اعىلشىن ءتىلى (بىرىككەن اراب امىرلىكتەرى)',
+        'en_AG' => 'اعىلشىن ءتىلى (انتيگۋا جانە باربۋدا)',
+        'en_AI' => 'اعىلشىن ءتىلى (انگيليا)',
+        'en_AS' => 'اعىلشىن ءتىلى (امەريكالىق ساموا)',
+        'en_AT' => 'اعىلشىن ءتىلى (اۋستريا)',
+        'en_AU' => 'اعىلشىن ءتىلى (اۋستراليا)',
+        'en_BB' => 'اعىلشىن ءتىلى (باربادوس)',
+        'en_BE' => 'اعىلشىن ءتىلى (بەلگيا)',
+        'en_BI' => 'اعىلشىن ءتىلى (بۋرۋندي)',
+        'en_BM' => 'اعىلشىن ءتىلى (بەرمۋد ارالدارى)',
+        'en_BS' => 'اعىلشىن ءتىلى (باگام ارالدارى)',
+        'en_BW' => 'اعىلشىن ءتىلى (بوتسۆانا)',
+        'en_BZ' => 'اعىلشىن ءتىلى (بەليز)',
+        'en_CA' => 'اعىلشىن ءتىلى (كانادا)',
+        'en_CC' => 'اعىلشىن ءتىلى (كوكوس [كيليڭ] ارالدارى)',
+        'en_CH' => 'اعىلشىن ءتىلى (شۆەيساريا)',
+        'en_CK' => 'اعىلشىن ءتىلى (كۋك ارالدارى)',
+        'en_CM' => 'اعىلشىن ءتىلى (كامەرۋن)',
+        'en_CX' => 'اعىلشىن ءتىلى (حريستماس ارالى)',
+        'en_CY' => 'اعىلشىن ءتىلى (كيپر)',
+        'en_CZ' => 'اعىلشىن ءتىلى (چەحيا)',
+        'en_DE' => 'اعىلشىن ءتىلى (گەرمانيا)',
+        'en_DK' => 'اعىلشىن ءتىلى (دانيا)',
+        'en_DM' => 'اعىلشىن ءتىلى (دومينيكا)',
+        'en_EE' => 'اعىلشىن ءتىلى (ەستونيا)',
+        'en_ER' => 'اعىلشىن ءتىلى (ەريترەيا)',
+        'en_ES' => 'اعىلشىن ءتىلى (يسپانيا)',
+        'en_FI' => 'اعىلشىن ءتىلى (فينليانديا)',
+        'en_FJ' => 'اعىلشىن ءتىلى (فيجي)',
+        'en_FK' => 'اعىلشىن ءتىلى (فولكلەند ارالدارى)',
+        'en_FM' => 'اعىلشىن ءتىلى (ميكرونەزيا)',
+        'en_FR' => 'اعىلشىن ءتىلى (فرانسيا)',
+        'en_GB' => 'اعىلشىن ءتىلى (ۇلىبريتانيا)',
+        'en_GD' => 'اعىلشىن ءتىلى (گرەنادا)',
+        'en_GE' => 'اعىلشىن ءتىلى (گرۋزيا)',
+        'en_GG' => 'اعىلشىن ءتىلى (گەرنسي)',
+        'en_GH' => 'اعىلشىن ءتىلى (گانا)',
+        'en_GI' => 'اعىلشىن ءتىلى (گيبرالتار)',
+        'en_GM' => 'اعىلشىن ءتىلى (گامبيا)',
+        'en_GS' => 'اعىلشىن ءتىلى (وڭتۇستىك گەورگيا جانە وڭتۇستىك ساندۆيچ ارالدارى)',
+        'en_GU' => 'اعىلشىن ءتىلى (گۋان)',
+        'en_GY' => 'اعىلشىن ءتىلى (گايانا)',
+        'en_HK' => 'اعىلشىن ءتىلى (حوڭكوڭ)',
+        'en_HU' => 'اعىلشىن ءتىلى (ماجارستان)',
+        'en_ID' => 'اعىلشىن ءتىلى (يندونەزيا)',
+        'en_IE' => 'اعىلشىن ءتىلى (يرلانديا)',
+        'en_IL' => 'اعىلشىن ءتىلى (يزرايل)',
+        'en_IM' => 'اعىلشىن ءتىلى (مەن ارالى)',
+        'en_IN' => 'اعىلشىن ءتىلى (ءۇندىستان)',
+        'en_IO' => 'اعىلشىن ءتىلى (ءۇندى مۇحيتىنداعى بريتان ايماعى)',
+        'en_IT' => 'اعىلشىن ءتىلى (يتاليا)',
+        'en_JE' => 'اعىلشىن ءتىلى (جەرسي)',
+        'en_JM' => 'اعىلشىن ءتىلى (يامايكا)',
+        'en_JP' => 'اعىلشىن ءتىلى (جاپونيا)',
+        'en_KE' => 'اعىلشىن ءتىلى (كەنيا)',
+        'en_KI' => 'اعىلشىن ءتىلى (كيريباتي)',
+        'en_KN' => 'اعىلشىن ءتىلى (سەنت-كيتس جانە نەۆيس)',
+        'en_KY' => 'اعىلشىن ءتىلى (كايمان ارالدارى)',
+        'en_LC' => 'اعىلشىن ءتىلى (سەنت-ليۋسيا)',
+        'en_LR' => 'اعىلشىن ءتىلى (ليبەريا)',
+        'en_LS' => 'اعىلشىن ءتىلى (لەسوتو)',
+        'en_LT' => 'اعىلشىن ءتىلى (ليتۆا)',
+        'en_LV' => 'اعىلشىن ءتىلى (لاتۆيا)',
+        'en_MG' => 'اعىلشىن ءتىلى (ماداگاسكار)',
+        'en_MH' => 'اعىلشىن ءتىلى (مارشال ارالدارى)',
+        'en_MO' => 'اعىلشىن ءتىلى (ماكاو)',
+        'en_MP' => 'اعىلشىن ءتىلى (سولتۇستىك ماريانا ارالدارى)',
+        'en_MS' => 'اعىلشىن ءتىلى (مونتسەررات)',
+        'en_MT' => 'اعىلشىن ءتىلى (مالتا)',
+        'en_MU' => 'اعىلشىن ءتىلى (ماۆريكي)',
+        'en_MV' => 'اعىلشىن ءتىلى (مالديۆ ارالدارى)',
+        'en_MW' => 'اعىلشىن ءتىلى (مالاۆي)',
+        'en_MY' => 'اعىلشىن ءتىلى (مالايزيا)',
+        'en_NA' => 'اعىلشىن ءتىلى (ناميبيا)',
+        'en_NF' => 'اعىلشىن ءتىلى (نورفولك ارالى)',
+        'en_NG' => 'اعىلشىن ءتىلى (نيگەريا)',
+        'en_NL' => 'اعىلشىن ءتىلى (نيدەرلاند)',
+        'en_NO' => 'اعىلشىن ءتىلى (نورۆەگيا)',
+        'en_NR' => 'اعىلشىن ءتىلى (ناۋرۋ)',
+        'en_NU' => 'اعىلشىن ءتىلى (نيۋە)',
+        'en_NZ' => 'اعىلشىن ءتىلى (جاڭا زەلانديا)',
+        'en_PG' => 'اعىلشىن ءتىلى (پاپۋا — جاڭا گۆينەيا)',
+        'en_PH' => 'اعىلشىن ءتىلى (فيليپين ارالدارى)',
+        'en_PK' => 'اعىلشىن ءتىلى (پاكىستان)',
+        'en_PL' => 'اعىلشىن ءتىلى (پولشا)',
+        'en_PN' => 'اعىلشىن ءتىلى (پيتكەرن ارالدارى)',
+        'en_PR' => 'اعىلشىن ءتىلى (پۋەرتو-ريكو)',
+        'en_PT' => 'اعىلشىن ءتىلى (پورتۋگاليا)',
+        'en_PW' => 'اعىلشىن ءتىلى (پالاۋ)',
+        'en_RO' => 'اعىلشىن ءتىلى (رۋمىنيا)',
+        'en_RW' => 'اعىلشىن ءتىلى (رۋاندا)',
+        'en_SB' => 'اعىلشىن ءتىلى (سولومون ارالدارى)',
+        'en_SC' => 'اعىلشىن ءتىلى (سەيشەل ارالدارى)',
+        'en_SD' => 'اعىلشىن ءتىلى (سۋدان)',
+        'en_SE' => 'اعىلشىن ءتىلى (شۆەسيا)',
+        'en_SG' => 'اعىلشىن ءتىلى (سينگاپۋر)',
+        'en_SH' => 'اعىلشىن ءتىلى (اۋليە ەلەنا ارالى)',
+        'en_SI' => 'اعىلشىن ءتىلى (سلوۆەنيا)',
+        'en_SK' => 'اعىلشىن ءتىلى (سلوۆاكيا)',
+        'en_SL' => 'اعىلشىن ءتىلى (سەررا-لەونە)',
+        'en_SS' => 'اعىلشىن ءتىلى (وڭتۇستىك سۋدان)',
+        'en_SX' => 'اعىلشىن ءتىلى (سينت-مارتەن)',
+        'en_SZ' => 'اعىلشىن ءتىلى (ەسۆاتيني)',
+        'en_TC' => 'اعىلشىن ءتىلى (تەركس جانە كايكوس ارالدارى)',
+        'en_TK' => 'اعىلشىن ءتىلى (توكەلاۋ)',
+        'en_TO' => 'اعىلشىن ءتىلى (تونگا)',
+        'en_TT' => 'اعىلشىن ءتىلى (ترينيداد جانە توباگو)',
+        'en_TV' => 'اعىلشىن ءتىلى (تۋۆالۋ)',
+        'en_TZ' => 'اعىلشىن ءتىلى (تانزانيا)',
+        'en_UA' => 'اعىلشىن ءتىلى (ۋكراينا)',
+        'en_UG' => 'اعىلشىن ءتىلى (ۋگاندا)',
+        'en_UM' => 'اعىلشىن ءتىلى (ا ق ش-تىڭ سىرتقى كىشى ارالدارى)',
+        'en_US' => 'اعىلشىن ءتىلى (امەريكا قۇراما شتاتتارى)',
+        'en_VC' => 'اعىلشىن ءتىلى (سەنت-ۆينسەنت جانە گرەنادين ارالدارى)',
+        'en_VG' => 'اعىلشىن ءتىلى (بريتاندىق ۆيرگين ارالدارى)',
+        'en_VI' => 'اعىلشىن ءتىلى (ا ق ش-تىڭ ۆيرگين ارالدارى)',
+        'en_VU' => 'اعىلشىن ءتىلى (ۆانۋاتۋ)',
+        'en_WS' => 'اعىلشىن ءتىلى (ساموا)',
+        'en_ZA' => 'اعىلشىن ءتىلى (وڭتۇستىك افريكا)',
+        'en_ZM' => 'اعىلشىن ءتىلى (زامبيا)',
+        'en_ZW' => 'اعىلشىن ءتىلى (زيمبابۆە)',
+        'eo' => 'ەسپەرانتو ءتىلى',
+        'eo_001' => 'ەسپەرانتو ءتىلى (الەم)',
+        'es' => 'يسپان ءتىلى',
+        'es_419' => 'يسپان ءتىلى (لاتىن امەريكا)',
+        'es_AR' => 'يسپان ءتىلى (ارگەنتينا)',
+        'es_BO' => 'يسپان ءتىلى (بوليۆيا)',
+        'es_BR' => 'يسپان ءتىلى (برازيليا)',
+        'es_BZ' => 'يسپان ءتىلى (بەليز)',
+        'es_CL' => 'يسپان ءتىلى (چيلي)',
+        'es_CO' => 'يسپان ءتىلى (كولۋمبيا)',
+        'es_CR' => 'يسپان ءتىلى (كوستا-ريكا)',
+        'es_CU' => 'يسپان ءتىلى (كۋبا)',
+        'es_DO' => 'يسپان ءتىلى (دومينيكان رەسپۋبليكاسى)',
+        'es_EC' => 'يسپان ءتىلى (ەكۆادور)',
+        'es_ES' => 'يسپان ءتىلى (يسپانيا)',
+        'es_GQ' => 'يسپان ءتىلى (ەكۆاتورلىق گۆينەيا)',
+        'es_GT' => 'يسپان ءتىلى (گۆاتەمالا)',
+        'es_HN' => 'يسپان ءتىلى (گوندۋراس)',
+        'es_MX' => 'يسپان ءتىلى (مەكسيكا)',
+        'es_NI' => 'يسپان ءتىلى (نيكاراگۋا)',
+        'es_PA' => 'يسپان ءتىلى (پاناما)',
+        'es_PE' => 'يسپان ءتىلى (پەرۋ)',
+        'es_PH' => 'يسپان ءتىلى (فيليپين ارالدارى)',
+        'es_PR' => 'يسپان ءتىلى (پۋەرتو-ريكو)',
+        'es_PY' => 'يسپان ءتىلى (پاراگۆاي)',
+        'es_SV' => 'يسپان ءتىلى (سالۆادور)',
+        'es_US' => 'يسپان ءتىلى (امەريكا قۇراما شتاتتارى)',
+        'es_UY' => 'يسپان ءتىلى (ۋرۋگۆاي)',
+        'es_VE' => 'يسپان ءتىلى (ۆەنەسۋەلا)',
+        'et' => 'ەستون ءتىلى',
+        'et_EE' => 'ەستون ءتىلى (ەستونيا)',
+        'eu' => 'باسك ءتىلى',
+        'eu_ES' => 'باسك ءتىلى (يسپانيا)',
+        'fa' => 'پارسى ءتىلى',
+        'fa_AF' => 'پارسى ءتىلى (اۋعانستان)',
+        'fa_IR' => 'پارسى ءتىلى (يران)',
+        'ff' => 'فۋلا ءتىلى',
+        'ff_Adlm' => 'فۋلا ءتىلى (ادلام جازۋى)',
+        'ff_Adlm_BF' => 'فۋلا ءتىلى (ادلام جازۋى، بۋركينا-فاسو)',
+        'ff_Adlm_CM' => 'فۋلا ءتىلى (ادلام جازۋى، كامەرۋن)',
+        'ff_Adlm_GH' => 'فۋلا ءتىلى (ادلام جازۋى، گانا)',
+        'ff_Adlm_GM' => 'فۋلا ءتىلى (ادلام جازۋى، گامبيا)',
+        'ff_Adlm_GN' => 'فۋلا ءتىلى (ادلام جازۋى، گۆەنيا)',
+        'ff_Adlm_GW' => 'فۋلا ءتىلى (ادلام جازۋى، گۆەنيا-بيساۋ)',
+        'ff_Adlm_LR' => 'فۋلا ءتىلى (ادلام جازۋى، ليبەريا)',
+        'ff_Adlm_MR' => 'فۋلا ءتىلى (ادلام جازۋى، ماۆريتانيا)',
+        'ff_Adlm_NE' => 'فۋلا ءتىلى (ادلام جازۋى، نيگەر)',
+        'ff_Adlm_NG' => 'فۋلا ءتىلى (ادلام جازۋى، نيگەريا)',
+        'ff_Adlm_SL' => 'فۋلا ءتىلى (ادلام جازۋى، سەررا-لەونە)',
+        'ff_Adlm_SN' => 'فۋلا ءتىلى (ادلام جازۋى، سەنەگال)',
+        'ff_CM' => 'فۋلا ءتىلى (كامەرۋن)',
+        'ff_GN' => 'فۋلا ءتىلى (گۆەنيا)',
+        'ff_Latn' => 'فۋلا ءتىلى (لاتىن جازۋى)',
+        'ff_Latn_BF' => 'فۋلا ءتىلى (لاتىن جازۋى، بۋركينا-فاسو)',
+        'ff_Latn_CM' => 'فۋلا ءتىلى (لاتىن جازۋى، كامەرۋن)',
+        'ff_Latn_GH' => 'فۋلا ءتىلى (لاتىن جازۋى، گانا)',
+        'ff_Latn_GM' => 'فۋلا ءتىلى (لاتىن جازۋى، گامبيا)',
+        'ff_Latn_GN' => 'فۋلا ءتىلى (لاتىن جازۋى، گۆەنيا)',
+        'ff_Latn_GW' => 'فۋلا ءتىلى (لاتىن جازۋى، گۆەنيا-بيساۋ)',
+        'ff_Latn_LR' => 'فۋلا ءتىلى (لاتىن جازۋى، ليبەريا)',
+        'ff_Latn_MR' => 'فۋلا ءتىلى (لاتىن جازۋى، ماۆريتانيا)',
+        'ff_Latn_NE' => 'فۋلا ءتىلى (لاتىن جازۋى، نيگەر)',
+        'ff_Latn_NG' => 'فۋلا ءتىلى (لاتىن جازۋى، نيگەريا)',
+        'ff_Latn_SL' => 'فۋلا ءتىلى (لاتىن جازۋى، سەررا-لەونە)',
+        'ff_Latn_SN' => 'فۋلا ءتىلى (لاتىن جازۋى، سەنەگال)',
+        'ff_MR' => 'فۋلا ءتىلى (ماۆريتانيا)',
+        'ff_SN' => 'فۋلا ءتىلى (سەنەگال)',
+        'fi' => 'فين ءتىلى',
+        'fi_FI' => 'فين ءتىلى (فينليانديا)',
+        'fo' => 'فارەر ءتىلى',
+        'fo_DK' => 'فارەر ءتىلى (دانيا)',
+        'fo_FO' => 'فارەر ءتىلى (فارەر ارالدارى)',
+        'fr' => 'فرانسۋز ءتىلى',
+        'fr_BE' => 'فرانسۋز ءتىلى (بەلگيا)',
+        'fr_BF' => 'فرانسۋز ءتىلى (بۋركينا-فاسو)',
+        'fr_BI' => 'فرانسۋز ءتىلى (بۋرۋندي)',
+        'fr_BJ' => 'فرانسۋز ءتىلى (بەنين)',
+        'fr_BL' => 'فرانسۋز ءتىلى (سان-بارتەمەلي)',
+        'fr_CA' => 'فرانسۋز ءتىلى (كانادا)',
+        'fr_CD' => 'فرانسۋز ءتىلى (كونگو)',
+        'fr_CF' => 'فرانسۋز ءتىلى (ورتالىق افريكا رەسپۋبليكاسى)',
+        'fr_CG' => 'فرانسۋز ءتىلى (كونگو-براززاۆيل رەسپۋبليكاسى)',
+        'fr_CH' => 'فرانسۋز ءتىلى (شۆەيساريا)',
+        'fr_CI' => 'فرانسۋز ءتىلى (كوت-ديۆۋار)',
+        'fr_CM' => 'فرانسۋز ءتىلى (كامەرۋن)',
+        'fr_DJ' => 'فرانسۋز ءتىلى (دجيبۋتي)',
+        'fr_DZ' => 'فرانسۋز ءتىلى (الجىر)',
+        'fr_FR' => 'فرانسۋز ءتىلى (فرانسيا)',
+        'fr_GA' => 'فرانسۋز ءتىلى (گابون)',
+        'fr_GF' => 'فرانسۋز ءتىلى (فرانسۋز گۆياناسى)',
+        'fr_GN' => 'فرانسۋز ءتىلى (گۆەنيا)',
+        'fr_GP' => 'فرانسۋز ءتىلى (گۆادەلۋپا)',
+        'fr_GQ' => 'فرانسۋز ءتىلى (ەكۆاتورلىق گۆينەيا)',
+        'fr_HT' => 'فرانسۋز ءتىلى (گايتي)',
+        'fr_KM' => 'فرانسۋز ءتىلى (كومور ارالدارى)',
+        'fr_LU' => 'فرانسۋز ءتىلى (ليۋكسەمبۋرگ)',
+        'fr_MA' => 'فرانسۋز ءتىلى (ماروككو)',
+        'fr_MC' => 'فرانسۋز ءتىلى (موناكو)',
+        'fr_MF' => 'فرانسۋز ءتىلى (سەن-مارتەن)',
+        'fr_MG' => 'فرانسۋز ءتىلى (ماداگاسكار)',
+        'fr_ML' => 'فرانسۋز ءتىلى (مالي)',
+        'fr_MQ' => 'فرانسۋز ءتىلى (مارتينيكا)',
+        'fr_MR' => 'فرانسۋز ءتىلى (ماۆريتانيا)',
+        'fr_MU' => 'فرانسۋز ءتىلى (ماۆريكي)',
+        'fr_NC' => 'فرانسۋز ءتىلى (جاڭا كالەدونيا)',
+        'fr_NE' => 'فرانسۋز ءتىلى (نيگەر)',
+        'fr_PF' => 'فرانسۋز ءتىلى (فرانتسۋز پولينەزياسى)',
+        'fr_PM' => 'فرانسۋز ءتىلى (سەن-پەر جانە ميكەلون)',
+        'fr_RE' => 'فرانسۋز ءتىلى (رەيۋنيون)',
+        'fr_RW' => 'فرانسۋز ءتىلى (رۋاندا)',
+        'fr_SC' => 'فرانسۋز ءتىلى (سەيشەل ارالدارى)',
+        'fr_SN' => 'فرانسۋز ءتىلى (سەنەگال)',
+        'fr_SY' => 'فرانسۋز ءتىلى (سيريا)',
+        'fr_TD' => 'فرانسۋز ءتىلى (چاد)',
+        'fr_TG' => 'فرانسۋز ءتىلى (توگو)',
+        'fr_TN' => 'فرانسۋز ءتىلى (تۋنيس)',
+        'fr_VU' => 'فرانسۋز ءتىلى (ۆانۋاتۋ)',
+        'fr_WF' => 'فرانسۋز ءتىلى (ۋولليس جانە فۋتۋنا)',
+        'fr_YT' => 'فرانسۋز ءتىلى (مايوتتا)',
+        'fy' => 'باتىس فريز ءتىلى',
+        'fy_NL' => 'باتىس فريز ءتىلى (نيدەرلاند)',
+        'ga' => 'يرلاند ءتىلى',
+        'ga_GB' => 'يرلاند ءتىلى (ۇلىبريتانيا)',
+        'ga_IE' => 'يرلاند ءتىلى (يرلانديا)',
+        'gd' => 'شوتلانديالىق گەل ءتىلى',
+        'gd_GB' => 'شوتلانديالىق گەل ءتىلى (ۇلىبريتانيا)',
+        'gl' => 'گاليسيا ءتىلى',
+        'gl_ES' => 'گاليسيا ءتىلى (يسپانيا)',
+        'gu' => 'گۋجاراتي ءتىلى',
+        'gu_IN' => 'گۋجاراتي ءتىلى (ءۇندىستان)',
+        'gv' => 'مەن ءتىلى',
+        'gv_IM' => 'مەن ءتىلى (مەن ارالى)',
+        'ha' => 'حاۋسا ءتىلى',
+        'ha_GH' => 'حاۋسا ءتىلى (گانا)',
+        'ha_NE' => 'حاۋسا ءتىلى (نيگەر)',
+        'ha_NG' => 'حاۋسا ءتىلى (نيگەريا)',
+        'he' => 'يۆريت ءتىلى',
+        'he_IL' => 'يۆريت ءتىلى (يزرايل)',
+        'hi' => 'حيندي ءتىلى',
+        'hi_IN' => 'حيندي ءتىلى (ءۇندىستان)',
+        'hi_Latn' => 'حيندي ءتىلى (لاتىن جازۋى)',
+        'hi_Latn_IN' => 'حيندي ءتىلى (لاتىن جازۋى، ءۇندىستان)',
+        'hr' => 'حورۆات ءتىلى',
+        'hr_BA' => 'حورۆات ءتىلى (بوسنيا جانە گەرتسەگوۆينا)',
+        'hr_HR' => 'حورۆات ءتىلى (حورۆاتيا)',
+        'hu' => 'ماجار ءتىلى',
+        'hu_HU' => 'ماجار ءتىلى (ماجارستان)',
+        'hy' => 'ارميان ءتىلى',
+        'hy_AM' => 'ارميان ءتىلى (ارمەنيا)',
+        'ia' => 'ينتەرلينگۆا ءتىلى',
+        'ia_001' => 'ينتەرلينگۆا ءتىلى (الەم)',
+        'id' => 'يندونەزيا ءتىلى',
+        'id_ID' => 'يندونەزيا ءتىلى (يندونەزيا)',
+        'ie' => 'ينتەرلينگۆە ءتىلى',
+        'ie_EE' => 'ينتەرلينگۆە ءتىلى (ەستونيا)',
+        'ig' => 'يگبو ءتىلى',
+        'ig_NG' => 'يگبو ءتىلى (نيگەريا)',
+        'ii' => 'سىچۋان ي ءتىلى',
+        'ii_CN' => 'سىچۋان ي ءتىلى (قىتاي)',
+        'is' => 'يسلاند ءتىلى',
+        'is_IS' => 'يسلاند ءتىلى (يسلانديا)',
+        'it' => 'يتاليان ءتىلى',
+        'it_CH' => 'يتاليان ءتىلى (شۆەيساريا)',
+        'it_IT' => 'يتاليان ءتىلى (يتاليا)',
+        'it_SM' => 'يتاليان ءتىلى (سان-مارينو)',
+        'it_VA' => 'يتاليان ءتىلى (ۆاتيكان)',
+        'ja' => 'جاپون ءتىلى',
+        'ja_JP' => 'جاپون ءتىلى (جاپونيا)',
+        'jv' => 'ياۆا ءتىلى',
+        'jv_ID' => 'ياۆا ءتىلى (يندونەزيا)',
+        'ka' => 'گرۋزين ءتىلى',
+        'ka_GE' => 'گرۋزين ءتىلى (گرۋزيا)',
+        'ki' => 'كيكۋيۋ ءتىلى',
+        'ki_KE' => 'كيكۋيۋ ءتىلى (كەنيا)',
+        'kk' => 'قازاق ءتىلى',
+        'kk_Arab' => 'قازاق ءتىلى (اراب جازۋى)',
+        'kk_Arab_CN' => 'قازاق ءتىلى (اراب جازۋى، قىتاي)',
+        'kk_Cyrl' => 'قازاق ءتىلى (كيريل جازۋى)',
+        'kk_Cyrl_KZ' => 'قازاق ءتىلى (كيريل جازۋى، قازاق ەلى)',
+        'kk_KZ' => 'قازاق ءتىلى (قازاق ەلى)',
+        'kl' => 'كالاليسۋت ءتىلى',
+        'kl_GL' => 'كالاليسۋت ءتىلى (گرەنلانديا)',
+        'km' => 'كحمەر ءتىلى',
+        'km_KH' => 'كحمەر ءتىلى (كامباجا)',
+        'kn' => 'كاننادا ءتىلى',
+        'kn_IN' => 'كاننادا ءتىلى (ءۇندىستان)',
+        'ko' => 'كورەي ءتىلى',
+        'ko_CN' => 'كورەي ءتىلى (قىتاي)',
+        'ko_KP' => 'كورەي ءتىلى (سولتۇستىك كورەيا)',
+        'ko_KR' => 'كورەي ءتىلى (وڭتۇستىك كورەيا)',
+        'ks' => 'كاشمير ءتىلى',
+        'ks_Arab' => 'كاشمير ءتىلى (اراب جازۋى)',
+        'ks_Arab_IN' => 'كاشمير ءتىلى (اراب جازۋى، ءۇندىستان)',
+        'ks_Deva' => 'كاشمير ءتىلى (دەۆاناگاري جازۋى)',
+        'ks_Deva_IN' => 'كاشمير ءتىلى (دەۆاناگاري جازۋى، ءۇندىستان)',
+        'ks_IN' => 'كاشمير ءتىلى (ءۇندىستان)',
+        'ku' => 'كۇرد ءتىلى',
+        'ku_Latn' => 'كۇرد ءتىلى (لاتىن جازۋى)',
+        'ku_Latn_IQ' => 'كۇرد ءتىلى (لاتىن جازۋى، يراك)',
+        'ku_Latn_SY' => 'كۇرد ءتىلى (لاتىن جازۋى، سيريا)',
+        'ku_Latn_TR' => 'كۇرد ءتىلى (لاتىن جازۋى، تۇركيا)',
+        'ku_SY' => 'كۇرد ءتىلى (سيريا)',
+        'ku_TR' => 'كۇرد ءتىلى (تۇركيا)',
+        'kw' => 'كورن ءتىلى',
+        'kw_GB' => 'كورن ءتىلى (ۇلىبريتانيا)',
+        'ky' => 'قىرعىز ءتىلى',
+        'ky_KG' => 'قىرعىز ءتىلى (قىرعىزستان)',
+        'lb' => 'ليۋكسەمبۋرگ ءتىلى',
+        'lb_LU' => 'ليۋكسەمبۋرگ ءتىلى (ليۋكسەمبۋرگ)',
+        'lg' => 'گاندا ءتىلى',
+        'lg_UG' => 'گاندا ءتىلى (ۋگاندا)',
+        'ln' => 'لينگالا ءتىلى',
+        'ln_AO' => 'لينگالا ءتىلى (انگولا)',
+        'ln_CD' => 'لينگالا ءتىلى (كونگو)',
+        'ln_CF' => 'لينگالا ءتىلى (ورتالىق افريكا رەسپۋبليكاسى)',
+        'ln_CG' => 'لينگالا ءتىلى (كونگو-براززاۆيل رەسپۋبليكاسى)',
+        'lo' => 'لاوس ءتىلى',
+        'lo_LA' => 'لاوس ءتىلى (لاوس)',
+        'lt' => 'ليتۆا ءتىلى',
+        'lt_LT' => 'ليتۆا ءتىلى (ليتۆا)',
+        'lu' => 'لۋبا-كاتاڭا ءتىلى',
+        'lu_CD' => 'لۋبا-كاتاڭا ءتىلى (كونگو)',
+        'lv' => 'لاتىش ءتىلى',
+        'lv_LV' => 'لاتىش ءتىلى (لاتۆيا)',
+        'mg' => 'مالاگاسي ءتىلى',
+        'mg_MG' => 'مالاگاسي ءتىلى (ماداگاسكار)',
+        'mi' => 'ماوري ءتىلى',
+        'mi_NZ' => 'ماوري ءتىلى (جاڭا زەلانديا)',
+        'mk' => 'ماكەدون ءتىلى',
+        'mk_MK' => 'ماكەدون ءتىلى (سولتۇستىك ماكەدونيا)',
+        'ml' => 'مالايالام ءتىلى',
+        'ml_IN' => 'مالايالام ءتىلى (ءۇندىستان)',
+        'mn' => 'موڭعول ءتىلى',
+        'mn_MN' => 'موڭعول ءتىلى (موڭعوليا)',
+        'mr' => 'ماراتحي ءتىلى',
+        'mr_IN' => 'ماراتحي ءتىلى (ءۇندىستان)',
+        'ms' => 'مالاي ءتىلى',
+        'ms_BN' => 'مالاي ءتىلى (برۋنەي)',
+        'ms_ID' => 'مالاي ءتىلى (يندونەزيا)',
+        'ms_MY' => 'مالاي ءتىلى (مالايزيا)',
+        'ms_SG' => 'مالاي ءتىلى (سينگاپۋر)',
+        'mt' => 'مالتا ءتىلى',
+        'mt_MT' => 'مالتا ءتىلى (مالتا)',
+        'my' => 'بيرما ءتىلى',
+        'my_MM' => 'بيرما ءتىلى (ميانما [بيرما])',
+        'nb' => 'نورۆەگيالىق بۋكمول ءتىلى',
+        'nb_NO' => 'نورۆەگيالىق بۋكمول ءتىلى (نورۆەگيا)',
+        'nb_SJ' => 'نورۆەگيالىق بۋكمول ءتىلى (شپيتسبەرگەن جانە يان-مايەن)',
+        'nd' => 'سولتۇستىك ندەبەلە ءتىلى',
+        'nd_ZW' => 'سولتۇستىك ندەبەلە ءتىلى (زيمبابۆە)',
+        'ne' => 'نەپال ءتىلى',
+        'ne_IN' => 'نەپال ءتىلى (ءۇندىستان)',
+        'ne_NP' => 'نەپال ءتىلى (نەپال)',
+        'nl' => 'نيدەرلاند ءتىلى',
+        'nl_AW' => 'نيدەرلاند ءتىلى (ارۋبا)',
+        'nl_BE' => 'نيدەرلاند ءتىلى (بەلگيا)',
+        'nl_BQ' => 'نيدەرلاند ءتىلى (بونەير، سينت-ەستاتيۋس جانە سابا)',
+        'nl_CW' => 'نيدەرلاند ءتىلى (كيۋراساو)',
+        'nl_NL' => 'نيدەرلاند ءتىلى (نيدەرلاند)',
+        'nl_SR' => 'نيدەرلاند ءتىلى (سۋرينام)',
+        'nl_SX' => 'نيدەرلاند ءتىلى (سينت-مارتەن)',
+        'nn' => 'نورۆەگيالىق نيۋنورسك ءتىلى',
+        'nn_NO' => 'نورۆەگيالىق نيۋنورسك ءتىلى (نورۆەگيا)',
+        'no' => 'نورۆەگ ءتىلى',
+        'no_NO' => 'نورۆەگ ءتىلى (نورۆەگيا)',
+        'oc' => 'وكسيتان ءتىلى',
+        'oc_ES' => 'وكسيتان ءتىلى (يسپانيا)',
+        'oc_FR' => 'وكسيتان ءتىلى (فرانسيا)',
+        'om' => 'ورومو ءتىلى',
+        'om_ET' => 'ورومو ءتىلى (ەفيوپيا)',
+        'om_KE' => 'ورومو ءتىلى (كەنيا)',
+        'or' => 'وريا ءتىلى',
+        'or_IN' => 'وريا ءتىلى (ءۇندىستان)',
+        'os' => 'وسەتين ءتىلى',
+        'os_GE' => 'وسەتين ءتىلى (گرۋزيا)',
+        'os_RU' => 'وسەتين ءتىلى (حەسەي)',
+        'pa' => 'پەنجاب ءتىلى',
+        'pa_Arab' => 'پەنجاب ءتىلى (اراب جازۋى)',
+        'pa_Arab_PK' => 'پەنجاب ءتىلى (اراب جازۋى، پاكىستان)',
+        'pa_Guru' => 'پەنجاب ءتىلى (گۋرمۋكحي جازۋى)',
+        'pa_Guru_IN' => 'پەنجاب ءتىلى (گۋرمۋكحي جازۋى، ءۇندىستان)',
+        'pa_IN' => 'پەنجاب ءتىلى (ءۇندىستان)',
+        'pa_PK' => 'پەنجاب ءتىلى (پاكىستان)',
+        'pl' => 'پولياك ءتىلى',
+        'pl_PL' => 'پولياك ءتىلى (پولشا)',
+        'ps' => 'پۋشتۋ ءتىلى',
+        'ps_AF' => 'پۋشتۋ ءتىلى (اۋعانستان)',
+        'ps_PK' => 'پۋشتۋ ءتىلى (پاكىستان)',
+        'pt' => 'پورتۋگال ءتىلى',
+        'pt_AO' => 'پورتۋگال ءتىلى (انگولا)',
+        'pt_BR' => 'پورتۋگال ءتىلى (برازيليا)',
+        'pt_CH' => 'پورتۋگال ءتىلى (شۆەيساريا)',
+        'pt_CV' => 'پورتۋگال ءتىلى (كابو-ۆەردە)',
+        'pt_GQ' => 'پورتۋگال ءتىلى (ەكۆاتورلىق گۆينەيا)',
+        'pt_GW' => 'پورتۋگال ءتىلى (گۆەنيا-بيساۋ)',
+        'pt_LU' => 'پورتۋگال ءتىلى (ليۋكسەمبۋرگ)',
+        'pt_MO' => 'پورتۋگال ءتىلى (ماكاو)',
+        'pt_MZ' => 'پورتۋگال ءتىلى (موزامبيك)',
+        'pt_PT' => 'پورتۋگال ءتىلى (پورتۋگاليا)',
+        'pt_ST' => 'پورتۋگال ءتىلى (سان-تومە جانە پرينسيپي)',
+        'pt_TL' => 'پورتۋگال ءتىلى (تيمور-لەستە)',
+        'qu' => 'كەچۋا ءتىلى',
+        'qu_BO' => 'كەچۋا ءتىلى (بوليۆيا)',
+        'qu_EC' => 'كەچۋا ءتىلى (ەكۆادور)',
+        'qu_PE' => 'كەچۋا ءتىلى (پەرۋ)',
+        'rm' => 'رومانش ءتىلى',
+        'rm_CH' => 'رومانش ءتىلى (شۆەيساريا)',
+        'rn' => 'رۋندي ءتىلى',
+        'rn_BI' => 'رۋندي ءتىلى (بۋرۋندي)',
+        'ro' => 'رۋمىن ءتىلى',
+        'ro_MD' => 'رۋمىن ءتىلى (مولدوۆا)',
+        'ro_RO' => 'رۋمىن ءتىلى (رۋمىنيا)',
+        'ru' => 'ورىس ءتىلى',
+        'ru_BY' => 'ورىس ءتىلى (بەلارۋس)',
+        'ru_KG' => 'ورىس ءتىلى (قىرعىزستان)',
+        'ru_KZ' => 'ورىس ءتىلى (قازاق ەلى)',
+        'ru_MD' => 'ورىس ءتىلى (مولدوۆا)',
+        'ru_RU' => 'ورىس ءتىلى (حەسەي)',
+        'ru_UA' => 'ورىس ءتىلى (ۋكراينا)',
+        'rw' => 'كينيارۋاندا ءتىلى',
+        'rw_RW' => 'كينيارۋاندا ءتىلى (رۋاندا)',
+        'sa' => 'سانسكريت ءتىلى',
+        'sa_IN' => 'سانسكريت ءتىلى (ءۇندىستان)',
+        'sc' => 'ساردين ءتىلى',
+        'sc_IT' => 'ساردين ءتىلى (يتاليا)',
+        'sd' => 'سيندحي ءتىلى',
+        'sd_Arab' => 'سيندحي ءتىلى (اراب جازۋى)',
+        'sd_Arab_PK' => 'سيندحي ءتىلى (اراب جازۋى، پاكىستان)',
+        'sd_Deva' => 'سيندحي ءتىلى (دەۆاناگاري جازۋى)',
+        'sd_Deva_IN' => 'سيندحي ءتىلى (دەۆاناگاري جازۋى، ءۇندىستان)',
+        'sd_IN' => 'سيندحي ءتىلى (ءۇندىستان)',
+        'sd_PK' => 'سيندحي ءتىلى (پاكىستان)',
+        'se' => 'سولتۇستىك سامي ءتىلى',
+        'se_FI' => 'سولتۇستىك سامي ءتىلى (فينليانديا)',
+        'se_NO' => 'سولتۇستىك سامي ءتىلى (نورۆەگيا)',
+        'se_SE' => 'سولتۇستىك سامي ءتىلى (شۆەسيا)',
+        'sg' => 'ساڭو ءتىلى',
+        'sg_CF' => 'ساڭو ءتىلى (ورتالىق افريكا رەسپۋبليكاسى)',
+        'sh_BA' => 'серб-хорват тілі (بوسنيا جانە گەرتسەگوۆينا)',
+        'si' => 'سينگال ءتىلى',
+        'si_LK' => 'سينگال ءتىلى (شري-لانكا)',
+        'sk' => 'سلوۆاك ءتىلى',
+        'sk_SK' => 'سلوۆاك ءتىلى (سلوۆاكيا)',
+        'sl' => 'سلوۆەن ءتىلى',
+        'sl_SI' => 'سلوۆەن ءتىلى (سلوۆەنيا)',
+        'sn' => 'شونا ءتىلى',
+        'sn_ZW' => 'شونا ءتىلى (زيمبابۆە)',
+        'so' => 'سومالي ءتىلى',
+        'so_DJ' => 'سومالي ءتىلى (دجيبۋتي)',
+        'so_ET' => 'سومالي ءتىلى (ەفيوپيا)',
+        'so_KE' => 'سومالي ءتىلى (كەنيا)',
+        'so_SO' => 'سومالي ءتىلى (سومالي)',
+        'sq' => 'البان ءتىلى',
+        'sq_AL' => 'البان ءتىلى (البانيا)',
+        'sq_MK' => 'البان ءتىلى (سولتۇستىك ماكەدونيا)',
+        'sr' => 'سەرب ءتىلى',
+        'sr_BA' => 'سەرب ءتىلى (بوسنيا جانە گەرتسەگوۆينا)',
+        'sr_Cyrl' => 'سەرب ءتىلى (كيريل جازۋى)',
+        'sr_Cyrl_BA' => 'سەرب ءتىلى (كيريل جازۋى، بوسنيا جانە گەرتسەگوۆينا)',
+        'sr_Cyrl_ME' => 'سەرب ءتىلى (كيريل جازۋى، چەرنوگوريا)',
+        'sr_Cyrl_RS' => 'سەرب ءتىلى (كيريل جازۋى، سەربيا)',
+        'sr_Latn' => 'سەرب ءتىلى (لاتىن جازۋى)',
+        'sr_Latn_BA' => 'سەرب ءتىلى (لاتىن جازۋى، بوسنيا جانە گەرتسەگوۆينا)',
+        'sr_Latn_ME' => 'سەرب ءتىلى (لاتىن جازۋى، چەرنوگوريا)',
+        'sr_Latn_RS' => 'سەرب ءتىلى (لاتىن جازۋى، سەربيا)',
+        'sr_ME' => 'سەرب ءتىلى (چەرنوگوريا)',
+        'sr_RS' => 'سەرب ءتىلى (سەربيا)',
+        'st' => 'وڭتۇستىك سوتو ءتىلى',
+        'st_LS' => 'وڭتۇستىك سوتو ءتىلى (لەسوتو)',
+        'st_ZA' => 'وڭتۇستىك سوتو ءتىلى (وڭتۇستىك افريكا)',
+        'su' => 'سۋدان ءتىلى',
+        'su_ID' => 'سۋدان ءتىلى (يندونەزيا)',
+        'su_Latn' => 'سۋدان ءتىلى (لاتىن جازۋى)',
+        'su_Latn_ID' => 'سۋدان ءتىلى (لاتىن جازۋى، يندونەزيا)',
+        'sv' => 'شۆەد ءتىلى',
+        'sv_AX' => 'شۆەد ءتىلى (الاند ارالدارى)',
+        'sv_FI' => 'شۆەد ءتىلى (فينليانديا)',
+        'sv_SE' => 'شۆەد ءتىلى (شۆەسيا)',
+        'sw' => 'سۋاحيلي ءتىلى',
+        'sw_CD' => 'سۋاحيلي ءتىلى (كونگو)',
+        'sw_KE' => 'سۋاحيلي ءتىلى (كەنيا)',
+        'sw_TZ' => 'سۋاحيلي ءتىلى (تانزانيا)',
+        'sw_UG' => 'سۋاحيلي ءتىلى (ۋگاندا)',
+        'ta' => 'تاميل ءتىلى',
+        'ta_IN' => 'تاميل ءتىلى (ءۇندىستان)',
+        'ta_LK' => 'تاميل ءتىلى (شري-لانكا)',
+        'ta_MY' => 'تاميل ءتىلى (مالايزيا)',
+        'ta_SG' => 'تاميل ءتىلى (سينگاپۋر)',
+        'te' => 'تەلۋگۋ ءتىلى',
+        'te_IN' => 'تەلۋگۋ ءتىلى (ءۇندىستان)',
+        'tg' => 'تاجىك ءتىلى',
+        'tg_TJ' => 'تاجىك ءتىلى (تاجىكستان)',
+        'th' => 'تاي ءتىلى',
+        'th_TH' => 'تاي ءتىلى (تايلاند)',
+        'ti' => 'تيگرينيا ءتىلى',
+        'ti_ER' => 'تيگرينيا ءتىلى (ەريترەيا)',
+        'ti_ET' => 'تيگرينيا ءتىلى (ەفيوپيا)',
+        'tk' => 'تۇرىكمەن ءتىلى',
+        'tk_TM' => 'تۇرىكمەن ءتىلى (تۇرىكمەنستان)',
+        'tn' => 'سۋانا ءتىلى',
+        'tn_BW' => 'سۋانا ءتىلى (بوتسۆانا)',
+        'tn_ZA' => 'سۋانا ءتىلى (وڭتۇستىك افريكا)',
+        'to' => 'تونگان ءتىلى',
+        'to_TO' => 'تونگان ءتىلى (تونگا)',
+        'tr' => 'تۇرىك ءتىلى',
+        'tr_CY' => 'تۇرىك ءتىلى (كيپر)',
+        'tr_TR' => 'تۇرىك ءتىلى (تۇركيا)',
+        'tt' => 'تاتار ءتىلى',
+        'tt_RU' => 'تاتار ءتىلى (حەسەي)',
+        'ug' => 'ۇيعىر ءتىلى',
+        'ug_CN' => 'ۇيعىر ءتىلى (قىتاي)',
+        'uk' => 'ۋكراين ءتىلى',
+        'uk_UA' => 'ۋكراين ءتىلى (ۋكراينا)',
+        'ur' => 'ۋردۋ ءتىلى',
+        'ur_IN' => 'ۋردۋ ءتىلى (ءۇندىستان)',
+        'ur_PK' => 'ۋردۋ ءتىلى (پاكىستان)',
+        'uz' => 'وزبەك ءتىلى',
+        'uz_AF' => 'وزبەك ءتىلى (اۋعانستان)',
+        'uz_Arab' => 'وزبەك ءتىلى (اراب جازۋى)',
+        'uz_Arab_AF' => 'وزبەك ءتىلى (اراب جازۋى، اۋعانستان)',
+        'uz_Cyrl' => 'وزبەك ءتىلى (كيريل جازۋى)',
+        'uz_Cyrl_UZ' => 'وزبەك ءتىلى (كيريل جازۋى، وزبەكستان)',
+        'uz_Latn' => 'وزبەك ءتىلى (لاتىن جازۋى)',
+        'uz_Latn_UZ' => 'وزبەك ءتىلى (لاتىن جازۋى، وزبەكستان)',
+        'uz_UZ' => 'وزبەك ءتىلى (وزبەكستان)',
+        'vi' => 'ۆيەتنام ءتىلى',
+        'vi_VN' => 'ۆيەتنام ءتىلى (ۆيەتنام)',
+        'wo' => 'ۆولوف ءتىلى',
+        'wo_SN' => 'ۆولوف ءتىلى (سەنەگال)',
+        'xh' => 'كحوسا ءتىلى',
+        'xh_ZA' => 'كحوسا ءتىلى (وڭتۇستىك افريكا)',
+        'yi' => 'يديش ءتىلى',
+        'yi_UA' => 'يديش ءتىلى (ۋكراينا)',
+        'yo' => 'يورۋبا ءتىلى',
+        'yo_BJ' => 'يورۋبا ءتىلى (بەنين)',
+        'yo_NG' => 'يورۋبا ءتىلى (نيگەريا)',
+        'za' => 'جۋاڭ ءتىلى',
+        'za_CN' => 'جۋاڭ ءتىلى (قىتاي)',
+        'zh' => 'قىتاي ءتىلى',
+        'zh_CN' => 'قىتاي ءتىلى (قىتاي)',
+        'zh_HK' => 'قىتاي ءتىلى (حوڭكوڭ)',
+        'zh_Hans' => 'قىتاي ءتىلى (جەڭىلدەتىلگەن جازۋ)',
+        'zh_Hans_CN' => 'قىتاي ءتىلى (جەڭىلدەتىلگەن جازۋ، قىتاي)',
+        'zh_Hans_HK' => 'قىتاي ءتىلى (جەڭىلدەتىلگەن جازۋ، حوڭكوڭ)',
+        'zh_Hans_MO' => 'قىتاي ءتىلى (جەڭىلدەتىلگەن جازۋ، ماكاو)',
+        'zh_Hans_MY' => 'قىتاي ءتىلى (جەڭىلدەتىلگەن جازۋ، مالايزيا)',
+        'zh_Hans_SG' => 'قىتاي ءتىلى (جەڭىلدەتىلگەن جازۋ، سينگاپۋر)',
+        'zh_Hant' => 'قىتاي ءتىلى (ءداستۇرلى جازۋ)',
+        'zh_Hant_HK' => 'قىتاي ءتىلى (ءداستۇرلى جازۋ، حوڭكوڭ)',
+        'zh_Hant_MO' => 'قىتاي ءتىلى (ءداستۇرلى جازۋ، ماكاو)',
+        'zh_Hant_MY' => 'قىتاي ءتىلى (ءداستۇرلى جازۋ، مالايزيا)',
+        'zh_Hant_TW' => 'قىتاي ءتىلى (ءداستۇرلى جازۋ، تايۋان)',
+        'zh_MO' => 'قىتاي ءتىلى (ماكاو)',
+        'zh_SG' => 'قىتاي ءتىلى (سينگاپۋر)',
+        'zh_TW' => 'قىتاي ءتىلى (تايۋان)',
+        'zu' => 'زۋلۋ ءتىلى',
+        'zu_ZA' => 'زۋلۋ ءتىلى (وڭتۇستىك افريكا)',
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kk.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'әзірбайжан тілі (кирилл жазуы, Әзірбайжан)',
         'az_Latn' => 'әзірбайжан тілі (латын жазуы)',
         'az_Latn_AZ' => 'әзірбайжан тілі (латын жазуы, Әзірбайжан)',
+        'ba' => 'башқұрт тілі',
+        'ba_RU' => 'башқұрт тілі (Ресей)',
         'be' => 'беларусь тілі',
         'be_BY' => 'беларусь тілі (Беларусь)',
         'bg' => 'болгар тілі',
@@ -125,6 +127,7 @@
         'en_DE' => 'ағылшын тілі (Германия)',
         'en_DK' => 'ағылшын тілі (Дания)',
         'en_DM' => 'ағылшын тілі (Доминика)',
+        'en_EE' => 'ағылшын тілі (Эстония)',
         'en_ER' => 'ағылшын тілі (Эритрея)',
         'en_ES' => 'ағылшын тілі (Испания)',
         'en_FI' => 'ағылшын тілі (Финляндия)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ағылшын тілі (Франция)',
         'en_GB' => 'ағылшын тілі (Ұлыбритания)',
         'en_GD' => 'ағылшын тілі (Гренада)',
+        'en_GE' => 'ағылшын тілі (Грузия)',
         'en_GG' => 'ағылшын тілі (Гернси)',
         'en_GH' => 'ағылшын тілі (Гана)',
         'en_GI' => 'ағылшын тілі (Гибралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ағылшын тілі (Италия)',
         'en_JE' => 'ағылшын тілі (Джерси)',
         'en_JM' => 'ағылшын тілі (Ямайка)',
+        'en_JP' => 'ағылшын тілі (Жапония)',
         'en_KE' => 'ағылшын тілі (Кения)',
         'en_KI' => 'ағылшын тілі (Кирибати)',
         'en_KN' => 'ағылшын тілі (Сент-Китс және Невис)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ағылшын тілі (Сент-Люсия)',
         'en_LR' => 'ағылшын тілі (Либерия)',
         'en_LS' => 'ағылшын тілі (Лесото)',
+        'en_LT' => 'ағылшын тілі (Литва)',
+        'en_LV' => 'ағылшын тілі (Латвия)',
         'en_MG' => 'ағылшын тілі (Мадагаскар)',
         'en_MH' => 'ағылшын тілі (Маршалл аралдары)',
         'en_MO' => 'ағылшын тілі (Макао АӘА)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ағылшын тілі (Тринидад және Тобаго)',
         'en_TV' => 'ағылшын тілі (Тувалу)',
         'en_TZ' => 'ағылшын тілі (Танзания)',
+        'en_UA' => 'ағылшын тілі (Украина)',
         'en_UG' => 'ағылшын тілі (Уганда)',
         'en_UM' => 'ағылшын тілі (АҚШ-тың сыртқы кіші аралдары)',
         'en_US' => 'ағылшын тілі (Америка Құрама Штаттары)',
@@ -391,6 +399,8 @@
         'ki' => 'кикуйю тілі',
         'ki_KE' => 'кикуйю тілі (Кения)',
         'kk' => 'қазақ тілі',
+        'kk_Arab' => 'қазақ тілі (араб жазуы)',
+        'kk_Arab_CN' => 'қазақ тілі (араб жазуы, Қытай)',
         'kk_Cyrl' => 'қазақ тілі (кирилл жазуы)',
         'kk_Cyrl_KZ' => 'қазақ тілі (кирилл жазуы, Қазақстан)',
         'kk_KZ' => 'қазақ тілі (Қазақстан)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'кашмир тілі (деванагари жазуы, Үндістан)',
         'ks_IN' => 'кашмир тілі (Үндістан)',
         'ku' => 'күрд тілі',
+        'ku_Latn' => 'күрд тілі (латын жазуы)',
+        'ku_Latn_IQ' => 'күрд тілі (латын жазуы, Ирак)',
+        'ku_Latn_SY' => 'күрд тілі (латын жазуы, Сирия)',
+        'ku_Latn_TR' => 'күрд тілі (латын жазуы, Түркия)',
+        'ku_SY' => 'күрд тілі (Сирия)',
         'ku_TR' => 'күрд тілі (Түркия)',
         'kw' => 'корн тілі',
         'kw_GB' => 'корн тілі (Ұлыбритания)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/km.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/km.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/km.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/km.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,15 +46,17 @@
         'az_Cyrl_AZ' => 'អាស៊ែបៃហ្សង់ (ស៊ីរីលីក, អាស៊ែបៃហ្សង់)',
         'az_Latn' => 'អាស៊ែបៃហ្សង់ (ឡាតាំង)',
         'az_Latn_AZ' => 'អាស៊ែបៃហ្សង់ (ឡាតាំង, អាស៊ែបៃហ្សង់)',
+        'ba' => 'បាស្គៀ',
+        'ba_RU' => 'បាស្គៀ (រុស្ស៊ី)',
         'be' => 'បេឡារុស',
         'be_BY' => 'បេឡារុស (បេឡារុស)',
         'bg' => 'ប៊ុលហ្ការី',
         'bg_BG' => 'ប៊ុលហ្ការី (ប៊ុលហ្ការី)',
         'bm' => 'បាម្បារា',
         'bm_ML' => 'បាម្បារា (ម៉ាលី)',
-        'bn' => 'បង់ក្លាដែស',
-        'bn_BD' => 'បង់ក្លាដែស (បង់ក្លាដែស)',
-        'bn_IN' => 'បង់ក្លាដែស (ឥណ្ឌា)',
+        'bn' => 'បង់ក្លា',
+        'bn_BD' => 'បង់ក្លា (បង់ក្លាដែស)',
+        'bn_IN' => 'បង់ក្លា (ឥណ្ឌា)',
         'bo' => 'ទីបេ',
         'bo_CN' => 'ទីបេ (ចិន)',
         'bo_IN' => 'ទីបេ (ឥណ្ឌា)',
@@ -125,6 +127,7 @@
         'en_DE' => 'អង់គ្លេស (អាល្លឺម៉ង់)',
         'en_DK' => 'អង់គ្លេស (ដាណឺម៉ាក)',
         'en_DM' => 'អង់គ្លេស (ដូមីនីក)',
+        'en_EE' => 'អង់គ្លេស (អេស្តូនី)',
         'en_ER' => 'អង់គ្លេស (អេរីត្រេ)',
         'en_ES' => 'អង់គ្លេស (អេស្ប៉ាញ)',
         'en_FI' => 'អង់គ្លេស (ហ្វាំងឡង់)',
@@ -134,6 +137,7 @@
         'en_FR' => 'អង់គ្លេស (បារាំង)',
         'en_GB' => 'អង់គ្លេស (ចក្រភព​អង់គ្លេស)',
         'en_GD' => 'អង់គ្លេស (ហ្គ្រើណាដ)',
+        'en_GE' => 'អង់គ្លេស (ហ្សកហ្ស៊ី)',
         'en_GG' => 'អង់គ្លេស (ហ្គេនស៊ី)',
         'en_GH' => 'អង់គ្លេស (ហ្គាណា)',
         'en_GI' => 'អង់គ្លេស (ហ្ស៊ីប្រាល់តា)',
@@ -152,6 +156,7 @@
         'en_IT' => 'អង់គ្លេស (អ៊ីតាលី)',
         'en_JE' => 'អង់គ្លេស (ជើស៊ី)',
         'en_JM' => 'អង់គ្លេស (ហ្សាម៉ាអ៊ីក)',
+        'en_JP' => 'អង់គ្លេស (ជប៉ុន)',
         'en_KE' => 'អង់គ្លេស (កេនយ៉ា)',
         'en_KI' => 'អង់គ្លេស (គិរីបាទី)',
         'en_KN' => 'អង់គ្លេស (សាំង​គីត និង ណេវីស)',
@@ -159,6 +164,8 @@
         'en_LC' => 'អង់គ្លេស (សាំងលូស៊ី)',
         'en_LR' => 'អង់គ្លេស (លីបេរីយ៉ា)',
         'en_LS' => 'អង់គ្លេស (ឡេសូតូ)',
+        'en_LT' => 'អង់គ្លេស (លីទុយអានី)',
+        'en_LV' => 'អង់គ្លេស (ឡេតូនី)',
         'en_MG' => 'អង់គ្លេស (ម៉ាដាហ្គាស្កា)',
         'en_MH' => 'អង់គ្លេស (កោះ​ម៉ាស់សល)',
         'en_MO' => 'អង់គ្លេស (ម៉ាកាវ តំបន់រដ្ឋបាលពិសេសចិន)',
@@ -205,6 +212,7 @@
         'en_TT' => 'អង់គ្លេស (ទ្រីនីដាត និង​តូបាហ្គោ)',
         'en_TV' => 'អង់គ្លេស (ទូវ៉ាលូ)',
         'en_TZ' => 'អង់គ្លេស (តង់សានី)',
+        'en_UA' => 'អង់គ្លេស (អ៊ុយក្រែន)',
         'en_UG' => 'អង់គ្លេស (អ៊ូហ្គង់ដា)',
         'en_UM' => 'អង់គ្លេស (កោះ​អៅឡាយីង​អាមេរិក)',
         'en_US' => 'អង់គ្លេស (សហរដ្ឋអាមេរិក)',
@@ -358,9 +366,9 @@
         'hi_IN' => 'ហិណ្ឌី (ឥណ្ឌា)',
         'hi_Latn' => 'ហិណ្ឌី (ឡាតាំង)',
         'hi_Latn_IN' => 'ហិណ្ឌី (ឡាតាំង, ឥណ្ឌា)',
-        'hr' => 'ក្រូអាត',
-        'hr_BA' => 'ក្រូអាត (បូស្ន៊ី និងហឺហ្ស៊ីហ្គូវីណា)',
-        'hr_HR' => 'ក្រូអាត (ក្រូអាស៊ី)',
+        'hr' => 'ក្រូអាស៊ី',
+        'hr_BA' => 'ក្រូអាស៊ី (បូស្ន៊ី និងហឺហ្ស៊ីហ្គូវីណា)',
+        'hr_HR' => 'ក្រូអាស៊ី (ក្រូអាស៊ី)',
         'hu' => 'ហុងគ្រី',
         'hu_HU' => 'ហុងគ្រី (ហុងគ្រី)',
         'hy' => 'អាមេនី',
@@ -391,6 +399,8 @@
         'ki' => 'គីគូយូ',
         'ki_KE' => 'គីគូយូ (កេនយ៉ា)',
         'kk' => 'កាហ្សាក់',
+        'kk_Arab' => 'កាហ្សាក់ (អារ៉ាប់)',
+        'kk_Arab_CN' => 'កាហ្សាក់ (អារ៉ាប់, ចិន)',
         'kk_Cyrl' => 'កាហ្សាក់ (ស៊ីរីលីក)',
         'kk_Cyrl_KZ' => 'កាហ្សាក់ (ស៊ីរីលីក, កាហ្សាក់ស្ថាន)',
         'kk_KZ' => 'កាហ្សាក់ (កាហ្សាក់ស្ថាន)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'កាស្មៀរ (ដាវ៉ាន់ណាការិ, ឥណ្ឌា)',
         'ks_IN' => 'កាស្មៀរ (ឥណ្ឌា)',
         'ku' => 'ឃឺដ',
+        'ku_Latn' => 'ឃឺដ (ឡាតាំង)',
+        'ku_Latn_IQ' => 'ឃឺដ (ឡាតាំង, អ៊ីរ៉ាក់)',
+        'ku_Latn_SY' => 'ឃឺដ (ឡាតាំង, ស៊ីរី)',
+        'ku_Latn_TR' => 'ឃឺដ (ឡាតាំង, តួកគី)',
+        'ku_SY' => 'ឃឺដ (ស៊ីរី)',
         'ku_TR' => 'ឃឺដ (តួកគី)',
         'kw' => 'កូនីស',
         'kw_GB' => 'កូនីស (ចក្រភព​អង់គ្លេស)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/kn.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'ಅಜೆರ್ಬೈಜಾನಿ (ಸಿರಿಲಿಕ್, ಅಜರ್ಬೈಜಾನ್)',
         'az_Latn' => 'ಅಜೆರ್ಬೈಜಾನಿ (ಲ್ಯಾಟಿನ್)',
         'az_Latn_AZ' => 'ಅಜೆರ್ಬೈಜಾನಿ (ಲ್ಯಾಟಿನ್, ಅಜರ್ಬೈಜಾನ್)',
+        'ba' => 'ಬಶ್ಕಿರ್',
+        'ba_RU' => 'ಬಶ್ಕಿರ್ (ರಷ್ಯಾ)',
         'be' => 'ಬೆಲರೂಸಿಯನ್',
         'be_BY' => 'ಬೆಲರೂಸಿಯನ್ (ಬೆಲಾರಸ್)',
         'bg' => 'ಬಲ್ಗೇರಿಯನ್',
@@ -125,6 +127,7 @@
         'en_DE' => 'ಇಂಗ್ಲಿಷ್ (ಜರ್ಮನಿ)',
         'en_DK' => 'ಇಂಗ್ಲಿಷ್ (ಡೆನ್ಮಾರ್ಕ್)',
         'en_DM' => 'ಇಂಗ್ಲಿಷ್ (ಡೊಮಿನಿಕಾ)',
+        'en_EE' => 'ಇಂಗ್ಲಿಷ್ (ಎಸ್ಟೋನಿಯಾ)',
         'en_ER' => 'ಇಂಗ್ಲಿಷ್ (ಎರಿಟ್ರಿಯಾ)',
         'en_ES' => 'ಇಂಗ್ಲಿಷ್ (ಸ್ಪೇನ್)',
         'en_FI' => 'ಇಂಗ್ಲಿಷ್ (ಫಿನ್‌ಲ್ಯಾಂಡ್)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ಇಂಗ್ಲಿಷ್ (ಫ್ರಾನ್ಸ್)',
         'en_GB' => 'ಇಂಗ್ಲಿಷ್ (ಯುನೈಟೆಡ್ ಕಿಂಗ್‌ಡಮ್)',
         'en_GD' => 'ಇಂಗ್ಲಿಷ್ (ಗ್ರೆನೆಡಾ)',
+        'en_GE' => 'ಇಂಗ್ಲಿಷ್ (ಜಾರ್ಜಿಯಾ)',
         'en_GG' => 'ಇಂಗ್ಲಿಷ್ (ಗುರ್ನ್‌ಸೆ)',
         'en_GH' => 'ಇಂಗ್ಲಿಷ್ (ಘಾನಾ)',
         'en_GI' => 'ಇಂಗ್ಲಿಷ್ (ಗಿಬ್ರಾಲ್ಟರ್)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ಇಂಗ್ಲಿಷ್ (ಇಟಲಿ)',
         'en_JE' => 'ಇಂಗ್ಲಿಷ್ (ಜೆರ್ಸಿ)',
         'en_JM' => 'ಇಂಗ್ಲಿಷ್ (ಜಮೈಕಾ)',
+        'en_JP' => 'ಇಂಗ್ಲಿಷ್ (ಜಪಾನ್)',
         'en_KE' => 'ಇಂಗ್ಲಿಷ್ (ಕೀನ್ಯಾ)',
         'en_KI' => 'ಇಂಗ್ಲಿಷ್ (ಕಿರಿಬಾಟಿ)',
         'en_KN' => 'ಇಂಗ್ಲಿಷ್ (ಸೇಂಟ್ ಕಿಟ್ಸ್ ಮತ್ತು ನೆವಿಸ್)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ಇಂಗ್ಲಿಷ್ (ಸೇಂಟ್ ಲೂಸಿಯಾ)',
         'en_LR' => 'ಇಂಗ್ಲಿಷ್ (ಲಿಬೇರಿಯಾ)',
         'en_LS' => 'ಇಂಗ್ಲಿಷ್ (ಲೆಸೊಥೊ)',
+        'en_LT' => 'ಇಂಗ್ಲಿಷ್ (ಲಿಥುವೇನಿಯಾ)',
+        'en_LV' => 'ಇಂಗ್ಲಿಷ್ (ಲಾಟ್ವಿಯಾ)',
         'en_MG' => 'ಇಂಗ್ಲಿಷ್ (ಮಡಗಾಸ್ಕರ್)',
         'en_MH' => 'ಇಂಗ್ಲಿಷ್ (ಮಾರ್ಷಲ್ ದ್ವೀಪಗಳು)',
         'en_MO' => 'ಇಂಗ್ಲಿಷ್ (ಮಕಾವು ಎಸ್ಎಆರ್ ಚೈನಾ)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ಇಂಗ್ಲಿಷ್ (ಟ್ರಿನಿಡಾಡ್ ಮತ್ತು ಟೊಬಾಗೊ)',
         'en_TV' => 'ಇಂಗ್ಲಿಷ್ (ಟುವಾಲು)',
         'en_TZ' => 'ಇಂಗ್ಲಿಷ್ (ತಾಂಜೇನಿಯಾ)',
+        'en_UA' => 'ಇಂಗ್ಲಿಷ್ (ಉಕ್ರೈನ್)',
         'en_UG' => 'ಇಂಗ್ಲಿಷ್ (ಉಗಾಂಡಾ)',
         'en_UM' => 'ಇಂಗ್ಲಿಷ್ (ಯುಎಸ್‌ ಔಟ್‌ಲೇಯಿಂಗ್ ದ್ವೀಪಗಳು)',
         'en_US' => 'ಇಂಗ್ಲಿಷ್ (ಯುನೈಟೆಡ್ ಸ್ಟೇಟ್ಸ್)',
@@ -391,6 +399,8 @@
         'ki' => 'ಕಿಕುಯು',
         'ki_KE' => 'ಕಿಕುಯು (ಕೀನ್ಯಾ)',
         'kk' => 'ಕಝಕ್',
+        'kk_Arab' => 'ಕಝಕ್ (ಅರೇಬಿಕ್)',
+        'kk_Arab_CN' => 'ಕಝಕ್ (ಅರೇಬಿಕ್, ಚೀನಾ)',
         'kk_Cyrl' => 'ಕಝಕ್ (ಸಿರಿಲಿಕ್)',
         'kk_Cyrl_KZ' => 'ಕಝಕ್ (ಸಿರಿಲಿಕ್, ಕಝಾಕಿಸ್ಥಾನ್)',
         'kk_KZ' => 'ಕಝಕ್ (ಕಝಾಕಿಸ್ಥಾನ್)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'ಕಾಶ್ಮೀರಿ (ದೇವನಾಗರಿ, ಭಾರತ)',
         'ks_IN' => 'ಕಾಶ್ಮೀರಿ (ಭಾರತ)',
         'ku' => 'ಕುರ್ದಿಷ್',
+        'ku_Latn' => 'ಕುರ್ದಿಷ್ (ಲ್ಯಾಟಿನ್)',
+        'ku_Latn_IQ' => 'ಕುರ್ದಿಷ್ (ಲ್ಯಾಟಿನ್, ಇರಾಕ್)',
+        'ku_Latn_SY' => 'ಕುರ್ದಿಷ್ (ಲ್ಯಾಟಿನ್, ಸಿರಿಯಾ)',
+        'ku_Latn_TR' => 'ಕುರ್ದಿಷ್ (ಲ್ಯಾಟಿನ್, ತುರ್ಕಿಯೆ)',
+        'ku_SY' => 'ಕುರ್ದಿಷ್ (ಸಿರಿಯಾ)',
         'ku_TR' => 'ಕುರ್ದಿಷ್ (ತುರ್ಕಿಯೆ)',
         'kw' => 'ಕಾರ್ನಿಷ್',
         'kw_GB' => 'ಕಾರ್ನಿಷ್ (ಯುನೈಟೆಡ್ ಕಿಂಗ್‌ಡಮ್)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ko.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ko.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ko.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ko.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => '아제르바이잔어(키릴 문자, 아제르바이잔)',
         'az_Latn' => '아제르바이잔어(로마자)',
         'az_Latn_AZ' => '아제르바이잔어(로마자, 아제르바이잔)',
+        'ba' => '바슈키르어',
+        'ba_RU' => '바슈키르어(러시아)',
         'be' => '벨라루스어',
         'be_BY' => '벨라루스어(벨라루스)',
         'bg' => '불가리아어',
@@ -125,6 +127,7 @@
         'en_DE' => '영어(독일)',
         'en_DK' => '영어(덴마크)',
         'en_DM' => '영어(도미니카)',
+        'en_EE' => '영어(에스토니아)',
         'en_ER' => '영어(에리트리아)',
         'en_ES' => '영어(스페인)',
         'en_FI' => '영어(핀란드)',
@@ -134,6 +137,7 @@
         'en_FR' => '영어(프랑스)',
         'en_GB' => '영어(영국)',
         'en_GD' => '영어(그레나다)',
+        'en_GE' => '영어(조지아)',
         'en_GG' => '영어(건지)',
         'en_GH' => '영어(가나)',
         'en_GI' => '영어(지브롤터)',
@@ -152,6 +156,7 @@
         'en_IT' => '영어(이탈리아)',
         'en_JE' => '영어(저지)',
         'en_JM' => '영어(자메이카)',
+        'en_JP' => '영어(일본)',
         'en_KE' => '영어(케냐)',
         'en_KI' => '영어(키리바시)',
         'en_KN' => '영어(세인트키츠 네비스)',
@@ -159,6 +164,8 @@
         'en_LC' => '영어(세인트루시아)',
         'en_LR' => '영어(라이베리아)',
         'en_LS' => '영어(레소토)',
+        'en_LT' => '영어(리투아니아)',
+        'en_LV' => '영어(라트비아)',
         'en_MG' => '영어(마다가스카르)',
         'en_MH' => '영어(마셜 제도)',
         'en_MO' => '영어(마카오[중국 특별행정구])',
@@ -205,6 +212,7 @@
         'en_TT' => '영어(트리니다드 토바고)',
         'en_TV' => '영어(투발루)',
         'en_TZ' => '영어(탄자니아)',
+        'en_UA' => '영어(우크라이나)',
         'en_UG' => '영어(우간다)',
         'en_UM' => '영어(미국령 해외 제도)',
         'en_US' => '영어(미국)',
@@ -391,6 +399,8 @@
         'ki' => '키쿠유어',
         'ki_KE' => '키쿠유어(케냐)',
         'kk' => '카자흐어',
+        'kk_Arab' => '카자흐어(아랍 문자)',
+        'kk_Arab_CN' => '카자흐어(아랍 문자, 중국)',
         'kk_Cyrl' => '카자흐어(키릴 문자)',
         'kk_Cyrl_KZ' => '카자흐어(키릴 문자, 카자흐스탄)',
         'kk_KZ' => '카자흐어(카자흐스탄)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => '카슈미르어(데바나가리 문자, 인도)',
         'ks_IN' => '카슈미르어(인도)',
         'ku' => '쿠르드어',
+        'ku_Latn' => '쿠르드어(로마자)',
+        'ku_Latn_IQ' => '쿠르드어(로마자, 이라크)',
+        'ku_Latn_SY' => '쿠르드어(로마자, 시리아)',
+        'ku_Latn_TR' => '쿠르드어(로마자, 튀르키예)',
+        'ku_SY' => '쿠르드어(시리아)',
         'ku_TR' => '쿠르드어(튀르키예)',
         'kw' => '콘월어',
         'kw_GB' => '콘월어(영국)',
@@ -485,13 +500,13 @@
         'os' => '오세트어',
         'os_GE' => '오세트어(조지아)',
         'os_RU' => '오세트어(러시아)',
-        'pa' => '펀잡어',
-        'pa_Arab' => '펀잡어(아랍 문자)',
-        'pa_Arab_PK' => '펀잡어(아랍 문자, 파키스탄)',
-        'pa_Guru' => '펀잡어(구르무키 문자)',
-        'pa_Guru_IN' => '펀잡어(구르무키 문자, 인도)',
-        'pa_IN' => '펀잡어(인도)',
-        'pa_PK' => '펀잡어(파키스탄)',
+        'pa' => '펀자브어',
+        'pa_Arab' => '펀자브어(아랍 문자)',
+        'pa_Arab_PK' => '펀자브어(아랍 문자, 파키스탄)',
+        'pa_Guru' => '펀자브어(구르무키 문자)',
+        'pa_Guru_IN' => '펀자브어(구르무키 문자, 인도)',
+        'pa_IN' => '펀자브어(인도)',
+        'pa_PK' => '펀자브어(파키스탄)',
         'pl' => '폴란드어',
         'pl_PL' => '폴란드어(폴란드)',
         'ps' => '파슈토어',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ks_Deva.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ks_Deva.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ks_Deva.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ks_Deva.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'az_Cyrl_AZ' => 'اَزَربیجانی (सिरिलिक, آذربائیجان)',
         'az_Latn' => 'اَزَربیجانی (लातिनी)',
         'az_Latn_AZ' => 'اَزَربیجانی (लातिनी, آذربائیجان)',
+        'ba_RU' => 'بَشکیٖر (रूस)',
         'bn_IN' => 'بَنگٲلؠ (हिंदोस्तान)',
         'bo_CN' => 'تِبتی (चीन)',
         'bo_IN' => 'تِبتی (हिंदोस्तान)',
@@ -55,6 +56,7 @@
         'en_DE' => 'अंगरिज़ी (जर्मन)',
         'en_DK' => 'अंगरिज़ी (ڈینمارٕک)',
         'en_DM' => 'अंगरिज़ी (ڈومِنِکا)',
+        'en_EE' => 'अंगरिज़ी (ایسٹونِیا)',
         'en_ER' => 'अंगरिज़ी (اِرٕٹِیا)',
         'en_ES' => 'अंगरिज़ी (سٕپین)',
         'en_FI' => 'अंगरिज़ी (فِن لینڈ)',
@@ -64,6 +66,7 @@
         'en_FR' => 'अंगरिज़ी (फ्रांस)',
         'en_GB' => 'अंगरिज़ी (मुतहीद बादशाहत)',
         'en_GD' => 'अंगरिज़ी (گرینیڈا)',
+        'en_GE' => 'अंगरिज़ी (جارجِیا)',
         'en_GG' => 'अंगरिज़ी (گورنسے)',
         'en_GH' => 'अंगरिज़ी (گانا)',
         'en_GI' => 'अंगरिज़ी (جِبرالٹَر)',
@@ -81,6 +84,7 @@
         'en_IT' => 'अंगरिज़ी (इटली)',
         'en_JE' => 'अंगरिज़ी (جٔرسی)',
         'en_JM' => 'अंगरिज़ी (جَمایکا)',
+        'en_JP' => 'अंगरिज़ी (जापान)',
         'en_KE' => 'अंगरिज़ी (کِنیا)',
         'en_KI' => 'अंगरिज़ी (کِرٕباتی)',
         'en_KN' => 'अंगरिज़ी (سینٹ کِٹَس تہٕ نیوِس)',
@@ -88,6 +92,8 @@
         'en_LC' => 'अंगरिज़ी (سینٹ لوٗسِیا)',
         'en_LR' => 'अंगरिज़ी (لایبیرِیا)',
         'en_LS' => 'अंगरिज़ी (لیسوتھو)',
+        'en_LT' => 'अंगरिज़ी (لِتھُوانِیا)',
+        'en_LV' => 'अंगरिज़ी (لیٹوِیا)',
         'en_MG' => 'अंगरिज़ी (میڈاگاسکار)',
         'en_MH' => 'अंगरिज़ी (مارشَل جٔزیٖرٕ)',
         'en_MO' => 'अंगरिज़ी (مَکاوو ایس اے آر چیٖن)',
@@ -134,6 +140,7 @@
         'en_TT' => 'अंगरिज़ी (ٹرنِنداد تہٕ ٹوبیگو)',
         'en_TV' => 'अंगरिज़ी (توٗوالوٗ)',
         'en_TZ' => 'अंगरिज़ी (تَنجانِیا)',
+        'en_UA' => 'अंगरिज़ी (یوٗرِکین)',
         'en_UG' => 'अंगरिज़ी (یوٗگانڑا)',
         'en_UM' => 'अंगरिज़ी (یوٗنایٹِڑ سِٹیٹِس ماینَر آوُٹلییِنگ جٔزیٖرٕ)',
         'en_US' => 'अंगरिज़ी (मूतहीद रियासत)',
@@ -246,6 +253,8 @@
         'it_VA' => 'इतालवी (ویٹِکَن سِٹی)',
         'ja' => 'जापानी',
         'ja_JP' => 'जापानी (जापान)',
+        'kk_Arab' => 'کازَخ (अरबी)',
+        'kk_Arab_CN' => 'کازَخ (अरबी, चीन)',
         'kk_Cyrl' => 'کازَخ (सिरिलिक)',
         'kk_Cyrl_KZ' => 'کازَخ (सिरिलिक, قازقستان)',
         'kn_IN' => 'کَنَڑ (हिंदोस्तान)',
@@ -256,6 +265,10 @@
         'ks_Deva' => 'कॉशुर (देवनागरी)',
         'ks_Deva_IN' => 'कॉशुर (देवनागरी, हिंदोस्तान)',
         'ks_IN' => 'कॉशुर (हिंदोस्तान)',
+        'ku_Latn' => 'کُردِش (लातिनी)',
+        'ku_Latn_IQ' => 'کُردِش (लातिनी, ایٖراق)',
+        'ku_Latn_SY' => 'کُردِش (लातिनी, شام)',
+        'ku_Latn_TR' => 'کُردِش (लातिनी, تُرکی)',
         'kw_GB' => 'کورنِش (मुतहीद बादशाहत)',
         'ml_IN' => 'مٔلیالَم (हिंदोस्तान)',
         'mr_IN' => 'مَرٲٹھؠ (हिंदोस्तान)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ks.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ks.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ks.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ks.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'اَزَربیجانی (سَیرِلِک, آذربائیجان)',
         'az_Latn' => 'اَزَربیجانی (لاطیٖنی)',
         'az_Latn_AZ' => 'اَزَربیجانی (لاطیٖنی, آذربائیجان)',
+        'ba' => 'بَشکیٖر',
+        'ba_RU' => 'بَشکیٖر (روٗس)',
         'be' => 'بیلَروٗشیَن',
         'be_BY' => 'بیلَروٗشیَن (بیلاروٗس)',
         'bg' => 'بینا',
@@ -125,6 +127,7 @@
         'en_DE' => 'اَنگیٖزؠ (جرمٔنی)',
         'en_DK' => 'اَنگیٖزؠ (ڈینمارٕک)',
         'en_DM' => 'اَنگیٖزؠ (ڈومِنِکا)',
+        'en_EE' => 'اَنگیٖزؠ (ایسٹونِیا)',
         'en_ER' => 'اَنگیٖزؠ (اِرٕٹِیا)',
         'en_ES' => 'اَنگیٖزؠ (سٕپین)',
         'en_FI' => 'اَنگیٖزؠ (فِن لینڈ)',
@@ -134,6 +137,7 @@
         'en_FR' => 'اَنگیٖزؠ (فرانس)',
         'en_GB' => 'اَنگیٖزؠ (متحدہ مملِکت)',
         'en_GD' => 'اَنگیٖزؠ (گرینیڈا)',
+        'en_GE' => 'اَنگیٖزؠ (جارجِیا)',
         'en_GG' => 'اَنگیٖزؠ (گورنسے)',
         'en_GH' => 'اَنگیٖزؠ (گانا)',
         'en_GI' => 'اَنگیٖزؠ (جِبرالٹَر)',
@@ -151,6 +155,7 @@
         'en_IT' => 'اَنگیٖزؠ (اِٹلی)',
         'en_JE' => 'اَنگیٖزؠ (جٔرسی)',
         'en_JM' => 'اَنگیٖزؠ (جَمایکا)',
+        'en_JP' => 'اَنگیٖزؠ (جاپان)',
         'en_KE' => 'اَنگیٖزؠ (کِنیا)',
         'en_KI' => 'اَنگیٖزؠ (کِرٕباتی)',
         'en_KN' => 'اَنگیٖزؠ (سینٹ کِٹَس تہٕ نیوِس)',
@@ -158,6 +163,8 @@
         'en_LC' => 'اَنگیٖزؠ (سینٹ لوٗسِیا)',
         'en_LR' => 'اَنگیٖزؠ (لایبیرِیا)',
         'en_LS' => 'اَنگیٖزؠ (لیسوتھو)',
+        'en_LT' => 'اَنگیٖزؠ (لِتھُوانِیا)',
+        'en_LV' => 'اَنگیٖزؠ (لیٹوِیا)',
         'en_MG' => 'اَنگیٖزؠ (میڈاگاسکار)',
         'en_MH' => 'اَنگیٖزؠ (مارشَل جٔزیٖرٕ)',
         'en_MO' => 'اَنگیٖزؠ (مَکاوو ایس اے آر چیٖن)',
@@ -204,6 +211,7 @@
         'en_TT' => 'اَنگیٖزؠ (ٹرنِنداد تہٕ ٹوبیگو)',
         'en_TV' => 'اَنگیٖزؠ (توٗوالوٗ)',
         'en_TZ' => 'اَنگیٖزؠ (تَنجانِیا)',
+        'en_UA' => 'اَنگیٖزؠ (یوٗرِکین)',
         'en_UG' => 'اَنگیٖزؠ (یوٗگانڑا)',
         'en_UM' => 'اَنگیٖزؠ (یوٗنایٹِڑ سِٹیٹِس ماینَر آوُٹلییِنگ جٔزیٖرٕ)',
         'en_US' => 'اَنگیٖزؠ (یوٗنایٹِڑ سِٹیٹِس)',
@@ -377,6 +385,8 @@
         'ki' => 'کِکُیوٗ',
         'ki_KE' => 'کِکُیوٗ (کِنیا)',
         'kk' => 'کازَخ',
+        'kk_Arab' => 'کازَخ (عربی)',
+        'kk_Arab_CN' => 'کازَخ (عربی, چیٖن)',
         'kk_Cyrl' => 'کازَخ (سَیرِلِک)',
         'kk_Cyrl_KZ' => 'کازَخ (سَیرِلِک, قازقستان)',
         'kk_KZ' => 'کازَخ (قازقستان)',
@@ -397,6 +407,11 @@
         'ks_Deva_IN' => 'کٲشُر (دیوناگری, ہِندوستان)',
         'ks_IN' => 'کٲشُر (ہِندوستان)',
         'ku' => 'کُردِش',
+        'ku_Latn' => 'کُردِش (لاطیٖنی)',
+        'ku_Latn_IQ' => 'کُردِش (لاطیٖنی, ایٖراق)',
+        'ku_Latn_SY' => 'کُردِش (لاطیٖنی, شام)',
+        'ku_Latn_TR' => 'کُردِش (لاطیٖنی, تُرکی)',
+        'ku_SY' => 'کُردِش (شام)',
         'ku_TR' => 'کُردِش (تُرکی)',
         'kw' => 'کورنِش',
         'kw_GB' => 'کورنِش (متحدہ مملِکت)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ku.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ku.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ku.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ku.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,8 +27,8 @@
         'ar_LY' => 'erebî (Lîbya)',
         'ar_MA' => 'erebî (Fas)',
         'ar_MR' => 'erebî (Morîtanya)',
-        'ar_OM' => 'erebî (Oman)',
-        'ar_PS' => 'erebî (Herêmên Filîstînî)',
+        'ar_OM' => 'erebî (Uman)',
+        'ar_PS' => 'erebî (Herêmên Filistînî)',
         'ar_QA' => 'erebî (Qeter)',
         'ar_SA' => 'erebî (Erebistana Siûdî)',
         'ar_SD' => 'erebî (Sûdan)',
@@ -40,12 +40,14 @@
         'ar_YE' => 'erebî (Yemen)',
         'as' => 'asamî',
         'as_IN' => 'asamî (Hindistan)',
-        'az' => 'azerî',
-        'az_AZ' => 'azerî (Azerbeycan)',
-        'az_Cyrl' => 'azerî (kirîlî)',
-        'az_Cyrl_AZ' => 'azerî (kirîlî, Azerbeycan)',
-        'az_Latn' => 'azerî (latînî)',
-        'az_Latn_AZ' => 'azerî (latînî, Azerbeycan)',
+        'az' => 'azerbaycanî',
+        'az_AZ' => 'azerbaycanî (Azerbeycan)',
+        'az_Cyrl' => 'azerbaycanî (kirîlî)',
+        'az_Cyrl_AZ' => 'azerbaycanî (kirîlî, Azerbeycan)',
+        'az_Latn' => 'azerbaycanî (latînî)',
+        'az_Latn_AZ' => 'azerbaycanî (latînî, Azerbeycan)',
+        'ba' => 'başkîrî',
+        'ba_RU' => 'başkîrî (Rûsya)',
         'be' => 'belarûsî',
         'be_BY' => 'belarûsî (Belarûs)',
         'bg' => 'bulgarî',
@@ -79,9 +81,9 @@
         'cv_RU' => 'çuvaşî (Rûsya)',
         'cy' => 'weylsî',
         'cy_GB' => 'weylsî (Qiralîyeta Yekbûyî)',
-        'da' => 'danmarkî',
-        'da_DK' => 'danmarkî (Danîmarka)',
-        'da_GL' => 'danmarkî (Grînlanda)',
+        'da' => 'danîmarkî',
+        'da_DK' => 'danîmarkî (Danîmarka)',
+        'da_GL' => 'danîmarkî (Grînlanda)',
         'de' => 'almanî',
         'de_AT' => 'almanî (Awistirya)',
         'de_BE' => 'almanî (Belçîka)',
@@ -125,6 +127,7 @@
         'en_DE' => 'îngilîzî (Almanya)',
         'en_DK' => 'îngilîzî (Danîmarka)',
         'en_DM' => 'îngilîzî (Domînîka)',
+        'en_EE' => 'îngilîzî (Estonya)',
         'en_ER' => 'îngilîzî (Erître)',
         'en_ES' => 'îngilîzî (Spanya)',
         'en_FI' => 'îngilîzî (Fînlenda)',
@@ -134,6 +137,7 @@
         'en_FR' => 'îngilîzî (Fransa)',
         'en_GB' => 'îngilîzî (Qiralîyeta Yekbûyî)',
         'en_GD' => 'îngilîzî (Grenada)',
+        'en_GE' => 'îngilîzî (Gurcistan)',
         'en_GG' => 'îngilîzî (Guernsey)',
         'en_GH' => 'îngilîzî (Gana)',
         'en_GI' => 'îngilîzî (Cebelîtariq)',
@@ -152,6 +156,7 @@
         'en_IT' => 'îngilîzî (Îtalya)',
         'en_JE' => 'îngilîzî (Jersey)',
         'en_JM' => 'îngilîzî (Jamaîka)',
+        'en_JP' => 'îngilîzî (Japonya)',
         'en_KE' => 'îngilîzî (Kenya)',
         'en_KI' => 'îngilîzî (Kirîbatî)',
         'en_KN' => 'îngilîzî (Saint Kitts û Nevîs)',
@@ -159,6 +164,8 @@
         'en_LC' => 'îngilîzî (Saint Lucia)',
         'en_LR' => 'îngilîzî (Lîberya)',
         'en_LS' => 'îngilîzî (Lesoto)',
+        'en_LT' => 'îngilîzî (Lîtvanya)',
+        'en_LV' => 'îngilîzî (Letonya)',
         'en_MG' => 'îngilîzî (Madagaskar)',
         'en_MH' => 'îngilîzî (Giravên Marşalê)',
         'en_MO' => 'îngilîzî (Makaoya Hît ya Çînê)',
@@ -166,14 +173,14 @@
         'en_MS' => 'îngilîzî (Montserat)',
         'en_MT' => 'îngilîzî (Malta)',
         'en_MU' => 'îngilîzî (Mauritius)',
-        'en_MV' => 'îngilîzî (Maldîva)',
+        'en_MV' => 'îngilîzî (Maldîv)',
         'en_MW' => 'îngilîzî (Malawî)',
         'en_MY' => 'îngilîzî (Malezya)',
         'en_NA' => 'îngilîzî (Namîbya)',
         'en_NF' => 'îngilîzî (Girava Norfolkê)',
         'en_NG' => 'îngilîzî (Nîjerya)',
         'en_NL' => 'îngilîzî (Holanda)',
-        'en_NO' => 'îngilîzî (Norwêc)',
+        'en_NO' => 'îngilîzî (Norwec)',
         'en_NR' => 'îngilîzî (Naûrû)',
         'en_NU' => 'îngilîzî (Niûe)',
         'en_NZ' => 'îngilîzî (Zelandaya Nû)',
@@ -183,7 +190,7 @@
         'en_PL' => 'îngilîzî (Polonya)',
         'en_PN' => 'îngilîzî (Giravên Pitcairnê)',
         'en_PR' => 'îngilîzî (Porto Rîko)',
-        'en_PT' => 'îngilîzî (Portûgal)',
+        'en_PT' => 'îngilîzî (Portugal)',
         'en_PW' => 'îngilîzî (Palau)',
         'en_RO' => 'îngilîzî (Romanya)',
         'en_RW' => 'îngilîzî (Rwanda)',
@@ -205,9 +212,10 @@
         'en_TT' => 'îngilîzî (Trînîdad û Tobago)',
         'en_TV' => 'îngilîzî (Tûvalû)',
         'en_TZ' => 'îngilîzî (Tanzanya)',
+        'en_UA' => 'îngilîzî (Ûkrayna)',
         'en_UG' => 'îngilîzî (Ûganda)',
-        'en_UM' => 'îngilîzî (Giravên Biçûk ên Derveyî DYAyê)',
-        'en_US' => 'îngilîzî (Dewletên Yekbûyî yên Amerîkayê)',
+        'en_UM' => 'îngilîzî (Giravên Biçûk ên Derveyî DAYê)',
+        'en_US' => 'îngilîzî (Dewletên Amerîkayê yên Yekbûyî)',
         'en_VC' => 'îngilîzî (Saint Vincent û Giravên Grenadînê)',
         'en_VG' => 'îngilîzî (Giravên Vîrjînê yên Brîtanyayê)',
         'en_VI' => 'îngilîzî (Giravên Vîrjînê yên Amerîkayê)',
@@ -224,11 +232,11 @@
         'es_BO' => 'spanî (Bolîvya)',
         'es_BR' => 'spanî (Brezîlya)',
         'es_BZ' => 'spanî (Belîze)',
-        'es_CL' => 'spanî (Şîle)',
+        'es_CL' => 'spanî (Şîlî)',
         'es_CO' => 'spanî (Kolombîya)',
         'es_CR' => 'spanî (Kosta Rîka)',
         'es_CU' => 'spanî (Kuba)',
-        'es_DO' => 'spanî (Komara Domînîkê)',
+        'es_DO' => 'spanî (Cimhûrîyeta Domînîkê)',
         'es_EC' => 'spanî (Ekwador)',
         'es_ES' => 'spanî (Spanya)',
         'es_GQ' => 'spanî (Gîneya Ekwadorê)',
@@ -242,7 +250,7 @@
         'es_PR' => 'spanî (Porto Rîko)',
         'es_PY' => 'spanî (Paragûay)',
         'es_SV' => 'spanî (El Salvador)',
-        'es_US' => 'spanî (Dewletên Yekbûyî yên Amerîkayê)',
+        'es_US' => 'spanî (Dewletên Amerîkayê yên Yekbûyî)',
         'es_UY' => 'spanî (Ûrûguay)',
         'es_VE' => 'spanî (Venezuela)',
         'et' => 'estonî',
@@ -253,6 +261,19 @@
         'fa_AF' => 'farisî (Efxanistan)',
         'fa_IR' => 'farisî (Îran)',
         'ff' => 'fulahî',
+        'ff_Adlm' => 'fulahî (adlamî)',
+        'ff_Adlm_BF' => 'fulahî (adlamî, Burkîna Faso)',
+        'ff_Adlm_CM' => 'fulahî (adlamî, Kamerûn)',
+        'ff_Adlm_GH' => 'fulahî (adlamî, Gana)',
+        'ff_Adlm_GM' => 'fulahî (adlamî, Gambîya)',
+        'ff_Adlm_GN' => 'fulahî (adlamî, Gîne)',
+        'ff_Adlm_GW' => 'fulahî (adlamî, Gîne-Bissau)',
+        'ff_Adlm_LR' => 'fulahî (adlamî, Lîberya)',
+        'ff_Adlm_MR' => 'fulahî (adlamî, Morîtanya)',
+        'ff_Adlm_NE' => 'fulahî (adlamî, Nîjer)',
+        'ff_Adlm_NG' => 'fulahî (adlamî, Nîjerya)',
+        'ff_Adlm_SL' => 'fulahî (adlamî, Sierra Leone)',
+        'ff_Adlm_SN' => 'fulahî (adlamî, Senegal)',
         'ff_CM' => 'fulahî (Kamerûn)',
         'ff_GN' => 'fulahî (Gîne)',
         'ff_Latn' => 'fulahî (latînî)',
@@ -283,7 +304,7 @@
         'fr_BL' => 'fransizî (Saint Barthelemy)',
         'fr_CA' => 'fransizî (Kanada)',
         'fr_CD' => 'fransizî (Kongo - Kînşasa)',
-        'fr_CF' => 'fransizî (Komara Afrîkaya Navîn)',
+        'fr_CF' => 'fransizî (Cimhûrîyeta Afrîkaya Navîn)',
         'fr_CG' => 'fransizî (Kongo - Brazzaville)',
         'fr_CH' => 'fransizî (Swîsre)',
         'fr_CI' => 'fransizî (Côte d’Ivoire)',
@@ -322,8 +343,8 @@
         'fr_VU' => 'fransizî (Vanûatû)',
         'fr_WF' => 'fransizî (Wallis û Futuna)',
         'fr_YT' => 'fransizî (Mayotte)',
-        'fy' => 'frîsî',
-        'fy_NL' => 'frîsî (Holanda)',
+        'fy' => 'frîsîya rojavayî',
+        'fy_NL' => 'frîsîya rojavayî (Holanda)',
         'ga' => 'îrlendî',
         'ga_GB' => 'îrlendî (Qiralîyeta Yekbûyî)',
         'ga_IE' => 'îrlendî (Îrlanda)',
@@ -348,8 +369,8 @@
         'hr' => 'xirwatî',
         'hr_BA' => 'xirwatî (Bosna û Hersek)',
         'hr_HR' => 'xirwatî (Xirwatistan)',
-        'hu' => 'mecarî',
-        'hu_HU' => 'mecarî (Macaristan)',
+        'hu' => 'macarî',
+        'hu_HU' => 'macarî (Macaristan)',
         'hy' => 'ermenî',
         'hy_AM' => 'ermenî (Ermenistan)',
         'ia' => 'înterlîngua',
@@ -378,13 +399,15 @@
         'ki' => 'kîkûyûyî',
         'ki_KE' => 'kîkûyûyî (Kenya)',
         'kk' => 'qazaxî',
+        'kk_Arab' => 'qazaxî (erebî)',
+        'kk_Arab_CN' => 'qazaxî (erebî, Çîn)',
         'kk_Cyrl' => 'qazaxî (kirîlî)',
         'kk_Cyrl_KZ' => 'qazaxî (kirîlî, Qazaxistan)',
         'kk_KZ' => 'qazaxî (Qazaxistan)',
         'kl' => 'kalalîsûtî',
         'kl_GL' => 'kalalîsûtî (Grînlanda)',
-        'km' => 'ximêrî',
-        'km_KH' => 'ximêrî (Kamboçya)',
+        'km' => 'khmerî',
+        'km_KH' => 'khmerî (Kamboçya)',
         'kn' => 'kannadayî',
         'kn_IN' => 'kannadayî (Hindistan)',
         'ko' => 'koreyî',
@@ -398,11 +421,16 @@
         'ks_Deva_IN' => 'keşmîrî (devanagarî, Hindistan)',
         'ks_IN' => 'keşmîrî (Hindistan)',
         'ku' => 'kurdî [kurmancî]',
-        'ku_TR' => 'kurdî [kurmancî] (Tirkîye)',
+        'ku_Latn' => 'kurdî [kurmancî] (latînî)',
+        'ku_Latn_IQ' => 'kurdî [kurmancî] (latînî, Îraq)',
+        'ku_Latn_SY' => 'kurdî [kurmancî] (latînî, Sûrîye)',
+        'ku_Latn_TR' => 'kurdî [kurmancî] (latînî, Türkiye)',
+        'ku_SY' => 'kurdî [kurmancî] (Sûrîye)',
+        'ku_TR' => 'kurdî [kurmancî] (Türkiye)',
         'kw' => 'kornî',
         'kw_GB' => 'kornî (Qiralîyeta Yekbûyî)',
-        'ky' => 'kirgizî',
-        'ky_KG' => 'kirgizî (Qirgizistan)',
+        'ky' => 'qirgizî',
+        'ky_KG' => 'qirgizî (Qirgizistan)',
         'lb' => 'luksembûrgî',
         'lb_LU' => 'luksembûrgî (Luksembûrg)',
         'lg' => 'lugandayî',
@@ -410,10 +438,10 @@
         'ln' => 'lingalayî',
         'ln_AO' => 'lingalayî (Angola)',
         'ln_CD' => 'lingalayî (Kongo - Kînşasa)',
-        'ln_CF' => 'lingalayî (Komara Afrîkaya Navîn)',
+        'ln_CF' => 'lingalayî (Cimhûrîyeta Afrîkaya Navîn)',
         'ln_CG' => 'lingalayî (Kongo - Brazzaville)',
-        'lo' => 'lawsî',
-        'lo_LA' => 'lawsî (Laos)',
+        'lo' => 'lao',
+        'lo_LA' => 'lao (Laos)',
         'lt' => 'lîtwanî',
         'lt_LT' => 'lîtwanî (Lîtvanya)',
         'lu' => 'luba-katangayî',
@@ -425,7 +453,7 @@
         'mi' => 'maorî',
         'mi_NZ' => 'maorî (Zelandaya Nû)',
         'mk' => 'makedonî',
-        'mk_MK' => 'makedonî (Makendonyaya Bakur)',
+        'mk_MK' => 'makedonî (Makedonyaya Bakur)',
         'ml' => 'malayalamî',
         'ml_IN' => 'malayalamî (Hindistan)',
         'mn' => 'moxolî',
@@ -442,7 +470,7 @@
         'my' => 'burmayî',
         'my_MM' => 'burmayî (Myanmar [Bûrma])',
         'nb' => 'norwecî [bokmål]',
-        'nb_NO' => 'norwecî [bokmål] (Norwêc)',
+        'nb_NO' => 'norwecî [bokmål] (Norwec)',
         'nb_SJ' => 'norwecî [bokmål] (Svalbard û Jan Mayen)',
         'nd' => 'ndebelîya bakurî',
         'nd_ZW' => 'ndebelîya bakurî (Zîmbabwe)',
@@ -458,9 +486,9 @@
         'nl_SR' => 'holendî (Surînam)',
         'nl_SX' => 'holendî (Sint Marteen)',
         'nn' => 'norwecî [nynorsk]',
-        'nn_NO' => 'norwecî [nynorsk] (Norwêc)',
+        'nn_NO' => 'norwecî [nynorsk] (Norwec)',
         'no' => 'norwecî',
-        'no_NO' => 'norwecî (Norwêc)',
+        'no_NO' => 'norwecî (Norwec)',
         'oc' => 'oksîtanî',
         'oc_ES' => 'oksîtanî (Spanya)',
         'oc_FR' => 'oksîtanî (Fransa)',
@@ -475,6 +503,8 @@
         'pa' => 'puncabî',
         'pa_Arab' => 'puncabî (erebî)',
         'pa_Arab_PK' => 'puncabî (erebî, Pakistan)',
+        'pa_Guru' => 'puncabî (gurmuxî)',
+        'pa_Guru_IN' => 'puncabî (gurmuxî, Hindistan)',
         'pa_IN' => 'puncabî (Hindistan)',
         'pa_PK' => 'puncabî (Pakistan)',
         'pl' => 'polonî',
@@ -492,7 +522,7 @@
         'pt_LU' => 'portugalî (Luksembûrg)',
         'pt_MO' => 'portugalî (Makaoya Hît ya Çînê)',
         'pt_MZ' => 'portugalî (Mozambîk)',
-        'pt_PT' => 'portugalî (Portûgal)',
+        'pt_PT' => 'portugalî (Portugal)',
         'pt_ST' => 'portugalî (Sao Tome û Prînsîpe)',
         'pt_TL' => 'portugalî (Tîmor-Leste)',
         'qu' => 'keçwayî',
@@ -528,10 +558,10 @@
         'sd_PK' => 'sindhî (Pakistan)',
         'se' => 'samîya bakur',
         'se_FI' => 'samîya bakur (Fînlenda)',
-        'se_NO' => 'samîya bakur (Norwêc)',
+        'se_NO' => 'samîya bakur (Norwec)',
         'se_SE' => 'samîya bakur (Swêd)',
         'sg' => 'sangoyî',
-        'sg_CF' => 'sangoyî (Komara Afrîkaya Navîn)',
+        'sg_CF' => 'sangoyî (Cimhûrîyeta Afrîkaya Navîn)',
         'si' => 'kîngalî',
         'si_LK' => 'kîngalî (Srî Lanka)',
         'sk' => 'slovakî',
@@ -547,18 +577,18 @@
         'so_SO' => 'somalî (Somalya)',
         'sq' => 'arnawidî',
         'sq_AL' => 'arnawidî (Albanya)',
-        'sq_MK' => 'arnawidî (Makendonyaya Bakur)',
+        'sq_MK' => 'arnawidî (Makedonyaya Bakur)',
         'sr' => 'sirbî',
         'sr_BA' => 'sirbî (Bosna û Hersek)',
         'sr_Cyrl' => 'sirbî (kirîlî)',
         'sr_Cyrl_BA' => 'sirbî (kirîlî, Bosna û Hersek)',
-        'sr_Cyrl_ME' => 'sirbî (kirîlî, Montenegro)',
+        'sr_Cyrl_ME' => 'sirbî (kirîlî, Qeredax)',
         'sr_Cyrl_RS' => 'sirbî (kirîlî, Sirbistan)',
         'sr_Latn' => 'sirbî (latînî)',
         'sr_Latn_BA' => 'sirbî (latînî, Bosna û Hersek)',
-        'sr_Latn_ME' => 'sirbî (latînî, Montenegro)',
+        'sr_Latn_ME' => 'sirbî (latînî, Qeredax)',
         'sr_Latn_RS' => 'sirbî (latînî, Sirbistan)',
-        'sr_ME' => 'sirbî (Montenegro)',
+        'sr_ME' => 'sirbî (Qeredax)',
         'sr_RS' => 'sirbî (Sirbistan)',
         'st' => 'sotoyîya başûr',
         'st_LS' => 'sotoyîya başûr (Lesoto)',
@@ -584,7 +614,7 @@
         'te' => 'telûgûyî',
         'te_IN' => 'telûgûyî (Hindistan)',
         'tg' => 'tacikî',
-        'tg_TJ' => 'tacikî (Tacîkistan)',
+        'tg_TJ' => 'tacikî (Tacikistan)',
         'th' => 'tayî',
         'th_TH' => 'tayî (Tayland)',
         'ti' => 'tigrînî',
@@ -599,11 +629,11 @@
         'to_TO' => 'tongî (Tonga)',
         'tr' => 'tirkî',
         'tr_CY' => 'tirkî (Qibris)',
-        'tr_TR' => 'tirkî (Tirkîye)',
+        'tr_TR' => 'tirkî (Türkiye)',
         'tt' => 'teterî',
         'tt_RU' => 'teterî (Rûsya)',
-        'ug' => 'oygurî',
-        'ug_CN' => 'oygurî (Çîn)',
+        'ug' => 'uyxurî',
+        'ug_CN' => 'uyxurî (Çîn)',
         'uk' => 'ukraynî',
         'uk_UA' => 'ukraynî (Ûkrayna)',
         'ur' => 'urdûyî',
@@ -640,11 +670,11 @@
         'zh_Hans_MO' => 'çînî (sadekirî, Makaoya Hît ya Çînê)',
         'zh_Hans_MY' => 'çînî (sadekirî, Malezya)',
         'zh_Hans_SG' => 'çînî (sadekirî, Sîngapûr)',
-        'zh_Hant' => 'çînî (kevneşopî)',
-        'zh_Hant_HK' => 'çînî (kevneşopî, Hong Konga HîT ya Çînê)',
-        'zh_Hant_MO' => 'çînî (kevneşopî, Makaoya Hît ya Çînê)',
-        'zh_Hant_MY' => 'çînî (kevneşopî, Malezya)',
-        'zh_Hant_TW' => 'çînî (kevneşopî, Taywan)',
+        'zh_Hant' => 'çînî (edetî)',
+        'zh_Hant_HK' => 'çînî (edetî, Hong Konga HîT ya Çînê)',
+        'zh_Hant_MO' => 'çînî (edetî, Makaoya Hît ya Çînê)',
+        'zh_Hant_MY' => 'çînî (edetî, Malezya)',
+        'zh_Hant_TW' => 'çînî (edetî, Taywan)',
         'zh_MO' => 'çînî (Makaoya Hît ya Çînê)',
         'zh_SG' => 'çînî (Sîngapûr)',
         'zh_TW' => 'çînî (Taywan)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ky.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ky.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ky.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ky.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'азербайжанча (Кирилл, Азербайжан)',
         'az_Latn' => 'азербайжанча (Латын)',
         'az_Latn_AZ' => 'азербайжанча (Латын, Азербайжан)',
+        'ba' => 'башкырча',
+        'ba_RU' => 'башкырча (Россия)',
         'be' => 'беларусча',
         'be_BY' => 'беларусча (Беларусь)',
         'bg' => 'болгарча',
@@ -125,6 +127,7 @@
         'en_DE' => 'англисче (Германия)',
         'en_DK' => 'англисче (Дания)',
         'en_DM' => 'англисче (Доминика)',
+        'en_EE' => 'англисче (Эстония)',
         'en_ER' => 'англисче (Эритрея)',
         'en_ES' => 'англисче (Испания)',
         'en_FI' => 'англисче (Финляндия)',
@@ -134,6 +137,7 @@
         'en_FR' => 'англисче (Франция)',
         'en_GB' => 'англисче (Улуу Британия)',
         'en_GD' => 'англисче (Гренада)',
+        'en_GE' => 'англисче (Грузия)',
         'en_GG' => 'англисче (Гернси)',
         'en_GH' => 'англисче (Гана)',
         'en_GI' => 'англисче (Гибралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'англисче (Италия)',
         'en_JE' => 'англисче (Жерси)',
         'en_JM' => 'англисче (Ямайка)',
+        'en_JP' => 'англисче (Жапония)',
         'en_KE' => 'англисче (Кения)',
         'en_KI' => 'англисче (Кирибати)',
         'en_KN' => 'англисче (Сент-Китс жана Невис)',
@@ -159,6 +164,8 @@
         'en_LC' => 'англисче (Сент-Люсия)',
         'en_LR' => 'англисче (Либерия)',
         'en_LS' => 'англисче (Лесото)',
+        'en_LT' => 'англисче (Литва)',
+        'en_LV' => 'англисче (Латвия)',
         'en_MG' => 'англисче (Мадагаскар)',
         'en_MH' => 'англисче (Маршалл аралдары)',
         'en_MO' => 'англисче (Макао Кытай ААА)',
@@ -205,6 +212,7 @@
         'en_TT' => 'англисче (Тринидад жана Тобаго)',
         'en_TV' => 'англисче (Тувалу)',
         'en_TZ' => 'англисче (Танзания)',
+        'en_UA' => 'англисче (Украина)',
         'en_UG' => 'англисче (Уганда)',
         'en_UM' => 'англисче (АКШнын сырткы аралдары)',
         'en_US' => 'англисче (Кошмо Штаттар)',
@@ -391,6 +399,8 @@
         'ki' => 'кикуйиче',
         'ki_KE' => 'кикуйиче (Кения)',
         'kk' => 'казакча',
+        'kk_Arab' => 'казакча (Араб)',
+        'kk_Arab_CN' => 'казакча (Араб, Кытай)',
         'kk_Cyrl' => 'казакча (Кирилл)',
         'kk_Cyrl_KZ' => 'казакча (Кирилл, Казакстан)',
         'kk_KZ' => 'казакча (Казакстан)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'кашмирче (Деванагари, Индия)',
         'ks_IN' => 'кашмирче (Индия)',
         'ku' => 'курдча',
+        'ku_Latn' => 'курдча (Латын)',
+        'ku_Latn_IQ' => 'курдча (Латын, Ирак)',
+        'ku_Latn_SY' => 'курдча (Латын, Сирия)',
+        'ku_Latn_TR' => 'курдча (Латын, Түркия)',
+        'ku_SY' => 'курдча (Сирия)',
         'ku_TR' => 'курдча (Түркия)',
         'kw' => 'корнишче',
         'kw_GB' => 'корнишче (Улуу Британия)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lb.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lb.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lb.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lb.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Aserbaidschanesch (Kyrillesch, Aserbaidschan)',
         'az_Latn' => 'Aserbaidschanesch (Laténgesch)',
         'az_Latn_AZ' => 'Aserbaidschanesch (Laténgesch, Aserbaidschan)',
+        'ba' => 'Baschkiresch',
+        'ba_RU' => 'Baschkiresch (Russland)',
         'be' => 'Wäissrussesch',
         'be_BY' => 'Wäissrussesch (Wäissrussland)',
         'bg' => 'Bulgaresch',
@@ -125,6 +127,7 @@
         'en_DE' => 'Englesch (Däitschland)',
         'en_DK' => 'Englesch (Dänemark)',
         'en_DM' => 'Englesch (Dominica)',
+        'en_EE' => 'Englesch (Estland)',
         'en_ER' => 'Englesch (Eritrea)',
         'en_ES' => 'Englesch (Spanien)',
         'en_FI' => 'Englesch (Finnland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Englesch (Frankräich)',
         'en_GB' => 'Englesch (Groussbritannien)',
         'en_GD' => 'Englesch (Grenada)',
+        'en_GE' => 'Englesch (Georgien)',
         'en_GG' => 'Englesch (Guernsey)',
         'en_GH' => 'Englesch (Ghana)',
         'en_GI' => 'Englesch (Gibraltar)',
@@ -151,6 +155,7 @@
         'en_IT' => 'Englesch (Italien)',
         'en_JE' => 'Englesch (Jersey)',
         'en_JM' => 'Englesch (Jamaika)',
+        'en_JP' => 'Englesch (Japan)',
         'en_KE' => 'Englesch (Kenia)',
         'en_KI' => 'Englesch (Kiribati)',
         'en_KN' => 'Englesch (St. Kitts an Nevis)',
@@ -158,6 +163,8 @@
         'en_LC' => 'Englesch (St. Lucia)',
         'en_LR' => 'Englesch (Liberia)',
         'en_LS' => 'Englesch (Lesotho)',
+        'en_LT' => 'Englesch (Litauen)',
+        'en_LV' => 'Englesch (Lettland)',
         'en_MG' => 'Englesch (Madagaskar)',
         'en_MH' => 'Englesch (Marshallinselen)',
         'en_MO' => 'Englesch (Spezialverwaltungszon Macau)',
@@ -204,6 +211,7 @@
         'en_TT' => 'Englesch (Trinidad an Tobago)',
         'en_TV' => 'Englesch (Tuvalu)',
         'en_TZ' => 'Englesch (Tansania)',
+        'en_UA' => 'Englesch (Ukrain)',
         'en_UG' => 'Englesch (Uganda)',
         'en_UM' => 'Englesch (Amerikanesch-Ozeanien)',
         'en_US' => 'Englesch (Vereenegt Staaten)',
@@ -377,6 +385,8 @@
         'ki' => 'Kikuyu-Sprooch',
         'ki_KE' => 'Kikuyu-Sprooch (Kenia)',
         'kk' => 'Kasachesch',
+        'kk_Arab' => 'Kasachesch (Arabesch)',
+        'kk_Arab_CN' => 'Kasachesch (Arabesch, China)',
         'kk_Cyrl' => 'Kasachesch (Kyrillesch)',
         'kk_Cyrl_KZ' => 'Kasachesch (Kyrillesch, Kasachstan)',
         'kk_KZ' => 'Kasachesch (Kasachstan)',
@@ -397,6 +407,11 @@
         'ks_Deva_IN' => 'Kaschmiresch (Devanagari, Indien)',
         'ks_IN' => 'Kaschmiresch (Indien)',
         'ku' => 'Kurdesch',
+        'ku_Latn' => 'Kurdesch (Laténgesch)',
+        'ku_Latn_IQ' => 'Kurdesch (Laténgesch, Irak)',
+        'ku_Latn_SY' => 'Kurdesch (Laténgesch, Syrien)',
+        'ku_Latn_TR' => 'Kurdesch (Laténgesch, Tierkei)',
+        'ku_SY' => 'Kurdesch (Syrien)',
         'ku_TR' => 'Kurdesch (Tierkei)',
         'kw' => 'Kornesch',
         'kw_GB' => 'Kornesch (Groussbritannien)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lg.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,6 +75,7 @@
         'en_DE' => 'Lungereza (Budaaki)',
         'en_DK' => 'Lungereza (Denimaaka)',
         'en_DM' => 'Lungereza (Dominika)',
+        'en_EE' => 'Lungereza (Esitoniya)',
         'en_ER' => 'Lungereza (Eritureya)',
         'en_ES' => 'Lungereza (Sipeyini)',
         'en_FI' => 'Lungereza (Finilandi)',
@@ -84,6 +85,7 @@
         'en_FR' => 'Lungereza (Bufalansa)',
         'en_GB' => 'Lungereza (Bungereza)',
         'en_GD' => 'Lungereza (Gurenada)',
+        'en_GE' => 'Lungereza (Gyogya)',
         'en_GH' => 'Lungereza (Gana)',
         'en_GI' => 'Lungereza (Giburalita)',
         'en_GM' => 'Lungereza (Gambya)',
@@ -96,6 +98,7 @@
         'en_IN' => 'Lungereza (Buyindi)',
         'en_IT' => 'Lungereza (Yitale)',
         'en_JM' => 'Lungereza (Jamayika)',
+        'en_JP' => 'Lungereza (Japani)',
         'en_KE' => 'Lungereza (Kenya)',
         'en_KI' => 'Lungereza (Kiribati)',
         'en_KN' => 'Lungereza (Senti Kitisi ne Nevisi)',
@@ -103,6 +106,8 @@
         'en_LC' => 'Lungereza (Senti Luciya)',
         'en_LR' => 'Lungereza (Liberya)',
         'en_LS' => 'Lungereza (Lesoso)',
+        'en_LT' => 'Lungereza (Lisuwenya)',
+        'en_LV' => 'Lungereza (Lativya)',
         'en_MG' => 'Lungereza (Madagasika)',
         'en_MH' => 'Lungereza (Bizinga bya Mariso)',
         'en_MP' => 'Lungereza (Bizinga bya Mariyana eby’omumambuka)',
@@ -146,6 +151,7 @@
         'en_TT' => 'Lungereza (Turindaadi ne Tobago)',
         'en_TV' => 'Lungereza (Tuvalu)',
         'en_TZ' => 'Lungereza (Tanzaniya)',
+        'en_UA' => 'Lungereza (Yukurayine)',
         'en_UG' => 'Lungereza (Yuganda)',
         'en_US' => 'Lungereza (Amerika)',
         'en_VC' => 'Lungereza (Senti Vinsenti ne Gurendadiini)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ln.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ln.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ln.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ln.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,6 +75,7 @@
         'en_DE' => 'lingɛlɛ́sa (Alemani)',
         'en_DK' => 'lingɛlɛ́sa (Danɛmarike)',
         'en_DM' => 'lingɛlɛ́sa (Domínike)',
+        'en_EE' => 'lingɛlɛ́sa (Esitoni)',
         'en_ER' => 'lingɛlɛ́sa (Elitelɛ)',
         'en_ES' => 'lingɛlɛ́sa (Esipanye)',
         'en_FI' => 'lingɛlɛ́sa (Filandɛ)',
@@ -84,6 +85,7 @@
         'en_FR' => 'lingɛlɛ́sa (Falánsɛ)',
         'en_GB' => 'lingɛlɛ́sa (Angɛlɛtɛ́lɛ)',
         'en_GD' => 'lingɛlɛ́sa (Gelenadɛ)',
+        'en_GE' => 'lingɛlɛ́sa (Zorzi)',
         'en_GG' => 'lingɛlɛ́sa (Guernesey)',
         'en_GH' => 'lingɛlɛ́sa (Gana)',
         'en_GI' => 'lingɛlɛ́sa (Zibatalɛ)',
@@ -98,6 +100,7 @@
         'en_IN' => 'lingɛlɛ́sa (Índɛ)',
         'en_IT' => 'lingɛlɛ́sa (Itali)',
         'en_JM' => 'lingɛlɛ́sa (Zamaiki)',
+        'en_JP' => 'lingɛlɛ́sa (Zapɔ)',
         'en_KE' => 'lingɛlɛ́sa (Kenya)',
         'en_KI' => 'lingɛlɛ́sa (Kiribati)',
         'en_KN' => 'lingɛlɛ́sa (Sántu krístofe mpé Nevɛ̀s)',
@@ -105,6 +108,8 @@
         'en_LC' => 'lingɛlɛ́sa (Sántu lisi)',
         'en_LR' => 'lingɛlɛ́sa (Libériya)',
         'en_LS' => 'lingɛlɛ́sa (Lesoto)',
+        'en_LT' => 'lingɛlɛ́sa (Litwani)',
+        'en_LV' => 'lingɛlɛ́sa (Letoni)',
         'en_MG' => 'lingɛlɛ́sa (Madagasikari)',
         'en_MH' => 'lingɛlɛ́sa (Bisanga bya Marishalɛ)',
         'en_MP' => 'lingɛlɛ́sa (Bisanga bya Marianɛ ya nɔ́rdi)',
@@ -148,6 +153,7 @@
         'en_TT' => 'lingɛlɛ́sa (Tinidadɛ mpé Tobago)',
         'en_TV' => 'lingɛlɛ́sa (Tuvalu)',
         'en_TZ' => 'lingɛlɛ́sa (Tanzani)',
+        'en_UA' => 'lingɛlɛ́sa (Ikrɛni)',
         'en_UG' => 'lingɛlɛ́sa (Uganda)',
         'en_US' => 'lingɛlɛ́sa (Ameriki)',
         'en_VC' => 'lingɛlɛ́sa (Sántu vesá mpé Gelenadinɛ)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lo.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'ອາເຊີໄບຈານິ (ຊີຣິວລິກ, ອາເຊີໄບຈານ)',
         'az_Latn' => 'ອາເຊີໄບຈານິ (ລາຕິນ)',
         'az_Latn_AZ' => 'ອາເຊີໄບຈານິ (ລາຕິນ, ອາເຊີໄບຈານ)',
+        'ba' => 'ບາຣກີ',
+        'ba_RU' => 'ບາຣກີ (ຣັດເຊຍ)',
         'be' => 'ເບລາຣັສຊຽນ',
         'be_BY' => 'ເບລາຣັສຊຽນ (ເບລາຣຸສ)',
         'bg' => 'ບັງກາຣຽນ',
@@ -125,6 +127,7 @@
         'en_DE' => 'ອັງກິດ (ເຢຍລະມັນ)',
         'en_DK' => 'ອັງກິດ (ເດນມາກ)',
         'en_DM' => 'ອັງກິດ (ໂດມີນິຄາ)',
+        'en_EE' => 'ອັງກິດ (ເອສໂຕເນຍ)',
         'en_ER' => 'ອັງກິດ (ເອຣິເທຣຍ)',
         'en_ES' => 'ອັງກິດ (ສະເປນ)',
         'en_FI' => 'ອັງກິດ (ຟິນແລນ)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ອັງກິດ (ຝຣັ່ງ)',
         'en_GB' => 'ອັງກິດ (ສະຫະລາດຊະອະນາຈັກ)',
         'en_GD' => 'ອັງກິດ (ເກຣເນດາ)',
+        'en_GE' => 'ອັງກິດ (ຈໍເຈຍ)',
         'en_GG' => 'ອັງກິດ (ເກີນຊີ)',
         'en_GH' => 'ອັງກິດ (ການາ)',
         'en_GI' => 'ອັງກິດ (ຈິບບຣອນທາ)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ອັງກິດ (ອິຕາລີ)',
         'en_JE' => 'ອັງກິດ (ເຈີຊີ)',
         'en_JM' => 'ອັງກິດ (ຈາໄມຄາ)',
+        'en_JP' => 'ອັງກິດ (ຍີ່ປຸ່ນ)',
         'en_KE' => 'ອັງກິດ (ເຄນຢາ)',
         'en_KI' => 'ອັງກິດ (ຄິຣິບາທິ)',
         'en_KN' => 'ອັງກິດ (ເຊນ ຄິດ ແລະ ເນວິສ)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ອັງກິດ (ເຊນ ລູເຊຍ)',
         'en_LR' => 'ອັງກິດ (ລິເບີເຣຍ)',
         'en_LS' => 'ອັງກິດ (ເລໂຊໂທ)',
+        'en_LT' => 'ອັງກິດ (ລິທົວເນຍ)',
+        'en_LV' => 'ອັງກິດ (ລັດເວຍ)',
         'en_MG' => 'ອັງກິດ (ມາດາກາສະກາ)',
         'en_MH' => 'ອັງກິດ (ຫມູ່ເກາະມາແຊວ)',
         'en_MO' => 'ອັງກິດ (ມາກາວ ເຂດປົກຄອງພິເສດ ຈີນ)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ອັງກິດ (ທຣິນິແດດ ແລະ ໂທແບໂກ)',
         'en_TV' => 'ອັງກິດ (ຕູວາລູ)',
         'en_TZ' => 'ອັງກິດ (ທານຊາເນຍ)',
+        'en_UA' => 'ອັງກິດ (ຢູເຄຣນ)',
         'en_UG' => 'ອັງກິດ (ອູການດາ)',
         'en_UM' => 'ອັງກິດ (ໝູ່ເກາະຮອບນອກຂອງສະຫະລັດຯ)',
         'en_US' => 'ອັງກິດ (ສະຫະລັດ)',
@@ -391,6 +399,8 @@
         'ki' => 'ຄິຄູຢຸ',
         'ki_KE' => 'ຄິຄູຢຸ (ເຄນຢາ)',
         'kk' => 'ຄາຊັກ',
+        'kk_Arab' => 'ຄາຊັກ (ອາຣາບິກ)',
+        'kk_Arab_CN' => 'ຄາຊັກ (ອາຣາບິກ, ຈີນ)',
         'kk_Cyrl' => 'ຄາຊັກ (ຊີຣິວລິກ)',
         'kk_Cyrl_KZ' => 'ຄາຊັກ (ຊີຣິວລິກ, ຄາຊັກສະຖານ)',
         'kk_KZ' => 'ຄາຊັກ (ຄາຊັກສະຖານ)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'ຄາສເມຍຣິ (ດີວານາກາຣີ, ອິນເດຍ)',
         'ks_IN' => 'ຄາສເມຍຣິ (ອິນເດຍ)',
         'ku' => 'ເຄີດິສ',
+        'ku_Latn' => 'ເຄີດິສ (ລາຕິນ)',
+        'ku_Latn_IQ' => 'ເຄີດິສ (ລາຕິນ, ອີຣັກ)',
+        'ku_Latn_SY' => 'ເຄີດິສ (ລາຕິນ, ຊີເຣຍ)',
+        'ku_Latn_TR' => 'ເຄີດິສ (ລາຕິນ, ເທີຄີ)',
+        'ku_SY' => 'ເຄີດິສ (ຊີເຣຍ)',
         'ku_TR' => 'ເຄີດິສ (ເທີຄີ)',
         'kw' => 'ຄໍນິຊ',
         'kw_GB' => 'ຄໍນິຊ (ສະຫະລາດຊະອະນາຈັກ)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lt.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaidžaniečių (kirilica, Azerbaidžanas)',
         'az_Latn' => 'azerbaidžaniečių (lotynų)',
         'az_Latn_AZ' => 'azerbaidžaniečių (lotynų, Azerbaidžanas)',
+        'ba' => 'baškirų',
+        'ba_RU' => 'baškirų (Rusija)',
         'be' => 'baltarusių',
         'be_BY' => 'baltarusių (Baltarusija)',
         'bg' => 'bulgarų',
@@ -125,15 +127,17 @@
         'en_DE' => 'anglų (Vokietija)',
         'en_DK' => 'anglų (Danija)',
         'en_DM' => 'anglų (Dominika)',
+        'en_EE' => 'anglų (Estija)',
         'en_ER' => 'anglų (Eritrėja)',
         'en_ES' => 'anglų (Ispanija)',
         'en_FI' => 'anglų (Suomija)',
         'en_FJ' => 'anglų (Fidžis)',
-        'en_FK' => 'anglų (Folklando Salos)',
+        'en_FK' => 'anglų (Folklando salos)',
         'en_FM' => 'anglų (Mikronezija)',
         'en_FR' => 'anglų (Prancūzija)',
         'en_GB' => 'anglų (Jungtinė Karalystė)',
         'en_GD' => 'anglų (Grenada)',
+        'en_GE' => 'anglų (Gruzija)',
         'en_GG' => 'anglų (Gernsis)',
         'en_GH' => 'anglų (Gana)',
         'en_GI' => 'anglų (Gibraltaras)',
@@ -152,6 +156,7 @@
         'en_IT' => 'anglų (Italija)',
         'en_JE' => 'anglų (Džersis)',
         'en_JM' => 'anglų (Jamaika)',
+        'en_JP' => 'anglų (Japonija)',
         'en_KE' => 'anglų (Kenija)',
         'en_KI' => 'anglų (Kiribatis)',
         'en_KN' => 'anglų (Sent Kitsas ir Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'anglų (Sent Lusija)',
         'en_LR' => 'anglų (Liberija)',
         'en_LS' => 'anglų (Lesotas)',
+        'en_LT' => 'anglų (Lietuva)',
+        'en_LV' => 'anglų (Latvija)',
         'en_MG' => 'anglų (Madagaskaras)',
         'en_MH' => 'anglų (Maršalo Salos)',
         'en_MO' => 'anglų (Ypatingasis Administracinis Kinijos Regionas Makao)',
@@ -205,6 +212,7 @@
         'en_TT' => 'anglų (Trinidadas ir Tobagas)',
         'en_TV' => 'anglų (Tuvalu)',
         'en_TZ' => 'anglų (Tanzanija)',
+        'en_UA' => 'anglų (Ukraina)',
         'en_UG' => 'anglų (Uganda)',
         'en_UM' => 'anglų (Jungtinių Valstijų Mažosios Tolimosios Salos)',
         'en_US' => 'anglų (Jungtinės Valstijos)',
@@ -391,6 +399,8 @@
         'ki' => 'kikujų',
         'ki_KE' => 'kikujų (Kenija)',
         'kk' => 'kazachų',
+        'kk_Arab' => 'kazachų (arabų)',
+        'kk_Arab_CN' => 'kazachų (arabų, Kinija)',
         'kk_Cyrl' => 'kazachų (kirilica)',
         'kk_Cyrl_KZ' => 'kazachų (kirilica, Kazachstanas)',
         'kk_KZ' => 'kazachų (Kazachstanas)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kašmyrų (devanagari, Indija)',
         'ks_IN' => 'kašmyrų (Indija)',
         'ku' => 'kurdų',
+        'ku_Latn' => 'kurdų (lotynų)',
+        'ku_Latn_IQ' => 'kurdų (lotynų, Irakas)',
+        'ku_Latn_SY' => 'kurdų (lotynų, Sirija)',
+        'ku_Latn_TR' => 'kurdų (lotynų, Turkija)',
+        'ku_SY' => 'kurdų (Sirija)',
         'ku_TR' => 'kurdų (Turkija)',
         'kw' => 'kornų',
         'kw_GB' => 'kornų (Jungtinė Karalystė)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lu.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,6 +75,7 @@
         'en_DE' => 'Lingelesa (Alemanu)',
         'en_DK' => 'Lingelesa (Danemalaku)',
         'en_DM' => 'Lingelesa (Duminiku)',
+        'en_EE' => 'Lingelesa (Esitoni)',
         'en_ER' => 'Lingelesa (Elitele)',
         'en_ES' => 'Lingelesa (Nsipani)',
         'en_FI' => 'Lingelesa (Filande)',
@@ -84,6 +85,7 @@
         'en_FR' => 'Lingelesa (Nfalanse)',
         'en_GB' => 'Lingelesa (Angeletele)',
         'en_GD' => 'Lingelesa (Ngelenade)',
+        'en_GE' => 'Lingelesa (Joriji)',
         'en_GH' => 'Lingelesa (Ngana)',
         'en_GI' => 'Lingelesa (Jibeletale)',
         'en_GM' => 'Lingelesa (Gambi)',
@@ -96,6 +98,7 @@
         'en_IN' => 'Lingelesa (Inde)',
         'en_IT' => 'Lingelesa (Itali)',
         'en_JM' => 'Lingelesa (Jamaiki)',
+        'en_JP' => 'Lingelesa (Japu)',
         'en_KE' => 'Lingelesa (Kenya)',
         'en_KI' => 'Lingelesa (Kiribati)',
         'en_KN' => 'Lingelesa (Santu krístofe ne Neves)',
@@ -103,6 +106,8 @@
         'en_LC' => 'Lingelesa (Santu lisi)',
         'en_LR' => 'Lingelesa (Liberiya)',
         'en_LS' => 'Lingelesa (Lesoto)',
+        'en_LT' => 'Lingelesa (Litwani)',
+        'en_LV' => 'Lingelesa (Letoni)',
         'en_MG' => 'Lingelesa (Madagasikari)',
         'en_MH' => 'Lingelesa (Lutanda lua Marishale)',
         'en_MP' => 'Lingelesa (Lutanda lua Mariane wa muulu)',
@@ -146,6 +151,7 @@
         'en_TT' => 'Lingelesa (Tinidade ne Tobago)',
         'en_TV' => 'Lingelesa (Tuvalu)',
         'en_TZ' => 'Lingelesa (Tanzani)',
+        'en_UA' => 'Lingelesa (Ukreni)',
         'en_UG' => 'Lingelesa (Uganda)',
         'en_US' => 'Lingelesa (Ameriki)',
         'en_VC' => 'Lingelesa (Santu vesa ne Ngelenadine)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/lv.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaidžāņu (kirilica, Azerbaidžāna)',
         'az_Latn' => 'azerbaidžāņu (latīņu)',
         'az_Latn_AZ' => 'azerbaidžāņu (latīņu, Azerbaidžāna)',
+        'ba' => 'baškīru',
+        'ba_RU' => 'baškīru (Krievija)',
         'be' => 'baltkrievu',
         'be_BY' => 'baltkrievu (Baltkrievija)',
         'bg' => 'bulgāru',
@@ -125,6 +127,7 @@
         'en_DE' => 'angļu (Vācija)',
         'en_DK' => 'angļu (Dānija)',
         'en_DM' => 'angļu (Dominika)',
+        'en_EE' => 'angļu (Igaunija)',
         'en_ER' => 'angļu (Eritreja)',
         'en_ES' => 'angļu (Spānija)',
         'en_FI' => 'angļu (Somija)',
@@ -134,6 +137,7 @@
         'en_FR' => 'angļu (Francija)',
         'en_GB' => 'angļu (Apvienotā Karaliste)',
         'en_GD' => 'angļu (Grenāda)',
+        'en_GE' => 'angļu (Gruzija)',
         'en_GG' => 'angļu (Gērnsija)',
         'en_GH' => 'angļu (Gana)',
         'en_GI' => 'angļu (Gibraltārs)',
@@ -152,6 +156,7 @@
         'en_IT' => 'angļu (Itālija)',
         'en_JE' => 'angļu (Džērsija)',
         'en_JM' => 'angļu (Jamaika)',
+        'en_JP' => 'angļu (Japāna)',
         'en_KE' => 'angļu (Kenija)',
         'en_KI' => 'angļu (Kiribati)',
         'en_KN' => 'angļu (Sentkitsa un Nevisa)',
@@ -159,6 +164,8 @@
         'en_LC' => 'angļu (Sentlūsija)',
         'en_LR' => 'angļu (Libērija)',
         'en_LS' => 'angļu (Lesoto)',
+        'en_LT' => 'angļu (Lietuva)',
+        'en_LV' => 'angļu (Latvija)',
         'en_MG' => 'angļu (Madagaskara)',
         'en_MH' => 'angļu (Māršala salas)',
         'en_MO' => 'angļu (ĶTR īpašais administratīvais reģions Makao)',
@@ -205,6 +212,7 @@
         'en_TT' => 'angļu (Trinidāda un Tobāgo)',
         'en_TV' => 'angļu (Tuvalu)',
         'en_TZ' => 'angļu (Tanzānija)',
+        'en_UA' => 'angļu (Ukraina)',
         'en_UG' => 'angļu (Uganda)',
         'en_UM' => 'angļu (ASV Mazās Aizjūras salas)',
         'en_US' => 'angļu (Amerikas Savienotās Valstis)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuju',
         'ki_KE' => 'kikuju (Kenija)',
         'kk' => 'kazahu',
+        'kk_Arab' => 'kazahu (arābu)',
+        'kk_Arab_CN' => 'kazahu (arābu, Ķīna)',
         'kk_Cyrl' => 'kazahu (kirilica)',
         'kk_Cyrl_KZ' => 'kazahu (kirilica, Kazahstāna)',
         'kk_KZ' => 'kazahu (Kazahstāna)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kašmiriešu (dēvanāgari, Indija)',
         'ks_IN' => 'kašmiriešu (Indija)',
         'ku' => 'kurdu',
+        'ku_Latn' => 'kurdu (latīņu)',
+        'ku_Latn_IQ' => 'kurdu (latīņu, Irāka)',
+        'ku_Latn_SY' => 'kurdu (latīņu, Sīrija)',
+        'ku_Latn_TR' => 'kurdu (latīņu, Turcija)',
+        'ku_SY' => 'kurdu (Sīrija)',
         'ku_TR' => 'kurdu (Turcija)',
         'kw' => 'korniešu',
         'kw_GB' => 'korniešu (Apvienotā Karaliste)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/meta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/meta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/meta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/meta.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ',
         'az_Latn',
         'az_Latn_AZ',
+        'ba',
+        'ba_RU',
         'be',
         'be_BY',
         'bg',
@@ -126,6 +128,7 @@
         'en_DG',
         'en_DK',
         'en_DM',
+        'en_EE',
         'en_ER',
         'en_ES',
         'en_FI',
@@ -135,6 +138,7 @@
         'en_FR',
         'en_GB',
         'en_GD',
+        'en_GE',
         'en_GG',
         'en_GH',
         'en_GI',
@@ -153,6 +157,7 @@
         'en_IT',
         'en_JE',
         'en_JM',
+        'en_JP',
         'en_KE',
         'en_KI',
         'en_KN',
@@ -160,6 +165,8 @@
         'en_LC',
         'en_LR',
         'en_LS',
+        'en_LT',
+        'en_LV',
         'en_MG',
         'en_MH',
         'en_MO',
@@ -208,6 +215,7 @@
         'en_TT',
         'en_TV',
         'en_TZ',
+        'en_UA',
         'en_UG',
         'en_UM',
         'en_US',
@@ -402,6 +410,8 @@
         'ki',
         'ki_KE',
         'kk',
+        'kk_Arab',
+        'kk_Arab_CN',
         'kk_Cyrl',
         'kk_Cyrl_KZ',
         'kk_KZ',
@@ -422,6 +432,11 @@
         'ks_Deva_IN',
         'ks_IN',
         'ku',
+        'ku_Latn',
+        'ku_Latn_IQ',
+        'ku_Latn_SY',
+        'ku_Latn_TR',
+        'ku_SY',
         'ku_TR',
         'kw',
         'kw_GB',
@@ -710,6 +725,7 @@
         'iw' => 'he',
         'iw_IL' => 'he_IL',
         'ks_IN' => 'ks_Arab_IN',
+        'ku_SY' => 'ku_Latn_SY',
         'mo' => 'ro',
         'no_NO' => 'no',
         'no_NO_NY' => 'nn_NO',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mg.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,6 +75,7 @@
         'en_DE' => 'Anglisy (Alemaina)',
         'en_DK' => 'Anglisy (Danmarka)',
         'en_DM' => 'Anglisy (Dominika)',
+        'en_EE' => 'Anglisy (Estonia)',
         'en_ER' => 'Anglisy (Eritrea)',
         'en_ES' => 'Anglisy (Espaina)',
         'en_FI' => 'Anglisy (Finlandy)',
@@ -84,6 +85,7 @@
         'en_FR' => 'Anglisy (Frantsa)',
         'en_GB' => 'Anglisy (Angletera)',
         'en_GD' => 'Anglisy (Grenady)',
+        'en_GE' => 'Anglisy (Zeorzia)',
         'en_GH' => 'Anglisy (Ghana)',
         'en_GI' => 'Anglisy (Zibraltara)',
         'en_GM' => 'Anglisy (Gambia)',
@@ -96,6 +98,7 @@
         'en_IN' => 'Anglisy (Indy)',
         'en_IT' => 'Anglisy (Italia)',
         'en_JM' => 'Anglisy (Jamaïka)',
+        'en_JP' => 'Anglisy (Japana)',
         'en_KE' => 'Anglisy (Kenya)',
         'en_KI' => 'Anglisy (Kiribati)',
         'en_KN' => 'Anglisy (Saint-Christophe-et-Niévès)',
@@ -103,6 +106,8 @@
         'en_LC' => 'Anglisy (Sainte-Lucie)',
         'en_LR' => 'Anglisy (Liberia)',
         'en_LS' => 'Anglisy (Lesotho)',
+        'en_LT' => 'Anglisy (Litoania)',
+        'en_LV' => 'Anglisy (Letonia)',
         'en_MG' => 'Anglisy (Madagasikara)',
         'en_MH' => 'Anglisy (Nosy Marshall)',
         'en_MP' => 'Anglisy (Nosy Mariana Atsinanana)',
@@ -146,6 +151,7 @@
         'en_TT' => 'Anglisy (Trinidad sy Tobagô)',
         'en_TV' => 'Anglisy (Tovalò)',
         'en_TZ' => 'Anglisy (Tanzania)',
+        'en_UA' => 'Anglisy (Okraina)',
         'en_UG' => 'Anglisy (Oganda)',
         'en_US' => 'Anglisy (Etazonia)',
         'en_VC' => 'Anglisy (Saint-Vincent-et-les Grenadines)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mi.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Atepaihānia (Hīririki, Atepaihānia)',
         'az_Latn' => 'Atepaihānia (Rātini)',
         'az_Latn_AZ' => 'Atepaihānia (Rātini, Atepaihānia)',
+        'ba' => 'Pākīra',
+        'ba_RU' => 'Pākīra (Rūhia)',
         'be' => 'Perarūhiana',
         'be_BY' => 'Perarūhiana (Pērara)',
         'bg' => 'Purukāriana',
@@ -61,11 +63,11 @@
         'br' => 'Peretana',
         'br_FR' => 'Peretana (Wīwī)',
         'bs' => 'Pōngiana',
-        'bs_BA' => 'Pōngiana (Pōngia-Herekōwini)',
+        'bs_BA' => 'Pōngiana (Pōngia & Herekōwini)',
         'bs_Cyrl' => 'Pōngiana (Hīririki)',
-        'bs_Cyrl_BA' => 'Pōngiana (Hīririki, Pōngia-Herekōwini)',
+        'bs_Cyrl_BA' => 'Pōngiana (Hīririki, Pōngia & Herekōwini)',
         'bs_Latn' => 'Pōngiana (Rātini)',
-        'bs_Latn_BA' => 'Pōngiana (Rātini, Pōngia-Herekōwini)',
+        'bs_Latn_BA' => 'Pōngiana (Rātini, Pōngia & Herekōwini)',
         'ca' => 'Katarana',
         'ca_AD' => 'Katarana (Anatōra)',
         'ca_ES' => 'Katarana (Peina)',
@@ -125,6 +127,7 @@
         'en_DE' => 'Ingarihi (Tiamana)',
         'en_DK' => 'Ingarihi (Tenemāka)',
         'en_DM' => 'Ingarihi (Tominika)',
+        'en_EE' => 'Ingarihi (Etōnia)',
         'en_ER' => 'Ingarihi (Eritēria)',
         'en_ES' => 'Ingarihi (Peina)',
         'en_FI' => 'Ingarihi (Whinarana)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Ingarihi (Wīwī)',
         'en_GB' => 'Ingarihi (Te Hononga o Piritene)',
         'en_GD' => 'Ingarihi (Kerenāta)',
+        'en_GE' => 'Ingarihi (Hōria)',
         'en_GG' => 'Ingarihi (Kōnihi)',
         'en_GH' => 'Ingarihi (Kāna)',
         'en_GI' => 'Ingarihi (Kāmaka)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Ingarihi (Itāria)',
         'en_JE' => 'Ingarihi (Tōrehe)',
         'en_JM' => 'Ingarihi (Hemeika)',
+        'en_JP' => 'Ingarihi (Hapani)',
         'en_KE' => 'Ingarihi (Kenia)',
         'en_KI' => 'Ingarihi (Kiripati)',
         'en_KN' => 'Ingarihi (Hato Kiti me Newhi)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Ingarihi (Hato Ruhia)',
         'en_LR' => 'Ingarihi (Raipiria)',
         'en_LS' => 'Ingarihi (Teroto)',
+        'en_LT' => 'Ingarihi (Rituānia)',
+        'en_LV' => 'Ingarihi (Rāwhia)',
         'en_MG' => 'Ingarihi (Matakāhika)',
         'en_MH' => 'Ingarihi (Ngā Motu Māhara)',
         'en_MO' => 'Ingarihi (Makau Haina)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Ingarihi (Tirinaki Tōpako)',
         'en_TV' => 'Ingarihi (Tūwaru)',
         'en_TZ' => 'Ingarihi (Tānahia)',
+        'en_UA' => 'Ingarihi (Ukareinga)',
         'en_UG' => 'Ingarihi (Ukānga)',
         'en_UM' => 'Ingarihi (Ngā Moutere Amerika o Waho)',
         'en_US' => 'Ingarihi (Hononga o Amerika)',
@@ -359,7 +367,7 @@
         'hi_Latn' => 'Hīni (Rātini)',
         'hi_Latn_IN' => 'Hīni (Rātini, Inia)',
         'hr' => 'Koroātiana',
-        'hr_BA' => 'Koroātiana (Pōngia-Herekōwini)',
+        'hr_BA' => 'Koroātiana (Pōngia & Herekōwini)',
         'hr_HR' => 'Koroātiana (Koroātia)',
         'hu' => 'Hanekari',
         'hu_HU' => 'Hanekari (Hanekari)',
@@ -389,6 +397,8 @@
         'ki' => 'Kikūiu',
         'ki_KE' => 'Kikūiu (Kenia)',
         'kk' => 'Kahāka',
+        'kk_Arab' => 'Kahāka (Arapika)',
+        'kk_Arab_CN' => 'Kahāka (Arapika, Haina)',
         'kk_Cyrl' => 'Kahāka (Hīririki)',
         'kk_Cyrl_KZ' => 'Kahāka (Hīririki, Katatānga)',
         'kk_KZ' => 'Kahāka (Katatānga)',
@@ -409,6 +419,11 @@
         'ks_Deva_IN' => 'Kahimiri (Tewhangāngari, Inia)',
         'ks_IN' => 'Kahimiri (Inia)',
         'ku' => 'Kūrihi',
+        'ku_Latn' => 'Kūrihi (Rātini)',
+        'ku_Latn_IQ' => 'Kūrihi (Rātini, Irāka)',
+        'ku_Latn_SY' => 'Kūrihi (Rātini, Hiria)',
+        'ku_Latn_TR' => 'Kūrihi (Rātini, Tākei)',
+        'ku_SY' => 'Kūrihi (Hiria)',
         'ku_TR' => 'Kūrihi (Tākei)',
         'kw' => 'Kōnihi',
         'kw_GB' => 'Kōnihi (Te Hononga o Piritene)',
@@ -562,13 +577,13 @@
         'sq_AL' => 'Arapeiniana (Arapeinia)',
         'sq_MK' => 'Arapeiniana (Makerōnia ki te Raki)',
         'sr' => 'Hirupia',
-        'sr_BA' => 'Hirupia (Pōngia-Herekōwini)',
+        'sr_BA' => 'Hirupia (Pōngia & Herekōwini)',
         'sr_Cyrl' => 'Hirupia (Hīririki)',
-        'sr_Cyrl_BA' => 'Hirupia (Hīririki, Pōngia-Herekōwini)',
+        'sr_Cyrl_BA' => 'Hirupia (Hīririki, Pōngia & Herekōwini)',
         'sr_Cyrl_ME' => 'Hirupia (Hīririki, Maungakororiko)',
         'sr_Cyrl_RS' => 'Hirupia (Hīririki, Hirupia)',
         'sr_Latn' => 'Hirupia (Rātini)',
-        'sr_Latn_BA' => 'Hirupia (Rātini, Pōngia-Herekōwini)',
+        'sr_Latn_BA' => 'Hirupia (Rātini, Pōngia & Herekōwini)',
         'sr_Latn_ME' => 'Hirupia (Rātini, Maungakororiko)',
         'sr_Latn_RS' => 'Hirupia (Rātini, Hirupia)',
         'sr_ME' => 'Hirupia (Maungakororiko)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mk.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'азербејџански (кирилско писмо, Азербејџан)',
         'az_Latn' => 'азербејџански (латинично писмо)',
         'az_Latn_AZ' => 'азербејџански (латинично писмо, Азербејџан)',
+        'ba' => 'башкирски',
+        'ba_RU' => 'башкирски (Русија)',
         'be' => 'белоруски',
         'be_BY' => 'белоруски (Белорусија)',
         'bg' => 'бугарски',
@@ -125,6 +127,7 @@
         'en_DE' => 'англиски (Германија)',
         'en_DK' => 'англиски (Данска)',
         'en_DM' => 'англиски (Доминика)',
+        'en_EE' => 'англиски (Естонија)',
         'en_ER' => 'англиски (Еритреја)',
         'en_ES' => 'англиски (Шпанија)',
         'en_FI' => 'англиски (Финска)',
@@ -134,6 +137,7 @@
         'en_FR' => 'англиски (Франција)',
         'en_GB' => 'англиски (Обединето Кралство)',
         'en_GD' => 'англиски (Гренада)',
+        'en_GE' => 'англиски (Грузија)',
         'en_GG' => 'англиски (Гернзи)',
         'en_GH' => 'англиски (Гана)',
         'en_GI' => 'англиски (Гибралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'англиски (Италија)',
         'en_JE' => 'англиски (Џерси)',
         'en_JM' => 'англиски (Јамајка)',
+        'en_JP' => 'англиски (Јапонија)',
         'en_KE' => 'англиски (Кенија)',
         'en_KI' => 'англиски (Кирибати)',
         'en_KN' => 'англиски (Свети Китс и Невис)',
@@ -159,6 +164,8 @@
         'en_LC' => 'англиски (Сент Лусија)',
         'en_LR' => 'англиски (Либерија)',
         'en_LS' => 'англиски (Лесото)',
+        'en_LT' => 'англиски (Литванија)',
+        'en_LV' => 'англиски (Латвија)',
         'en_MG' => 'англиски (Мадагаскар)',
         'en_MH' => 'англиски (Маршалски Острови)',
         'en_MO' => 'англиски (Макао САР)',
@@ -198,13 +205,14 @@
         'en_SL' => 'англиски (Сиера Леоне)',
         'en_SS' => 'англиски (Јужен Судан)',
         'en_SX' => 'англиски (Свети Мартин)',
-        'en_SZ' => 'англиски (Свазиленд)',
+        'en_SZ' => 'англиски (Есватини)',
         'en_TC' => 'англиски (Острови Туркс и Каикос)',
         'en_TK' => 'англиски (Токелау)',
         'en_TO' => 'англиски (Тонга)',
         'en_TT' => 'англиски (Тринидад и Тобаго)',
         'en_TV' => 'англиски (Тувалу)',
         'en_TZ' => 'англиски (Танзанија)',
+        'en_UA' => 'англиски (Украина)',
         'en_UG' => 'англиски (Уганда)',
         'en_UM' => 'англиски (Американски територии во Пацификот)',
         'en_US' => 'англиски (Соединети Американски Држави)',
@@ -391,6 +399,8 @@
         'ki' => 'кикују',
         'ki_KE' => 'кикују (Кенија)',
         'kk' => 'казашки',
+        'kk_Arab' => 'казашки (арапско писмо)',
+        'kk_Arab_CN' => 'казашки (арапско писмо, Кина)',
         'kk_Cyrl' => 'казашки (кирилско писмо)',
         'kk_Cyrl_KZ' => 'казашки (кирилско писмо, Казахстан)',
         'kk_KZ' => 'казашки (Казахстан)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'кашмирски (деванагари, Индија)',
         'ks_IN' => 'кашмирски (Индија)',
         'ku' => 'курдски',
+        'ku_Latn' => 'курдски (латинично писмо)',
+        'ku_Latn_IQ' => 'курдски (латинично писмо, Ирак)',
+        'ku_Latn_SY' => 'курдски (латинично писмо, Сирија)',
+        'ku_Latn_TR' => 'курдски (латинично писмо, Турција)',
+        'ku_SY' => 'курдски (Сирија)',
         'ku_TR' => 'курдски (Турција)',
         'kw' => 'корнски',
         'kw_GB' => 'корнски (Обединето Кралство)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ml.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ml.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ml.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ml.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'അസർബൈജാനി (സിറിലിക്, അസർബൈജാൻ)',
         'az_Latn' => 'അസർബൈജാനി (ലാറ്റിൻ)',
         'az_Latn_AZ' => 'അസർബൈജാനി (ലാറ്റിൻ, അസർബൈജാൻ)',
+        'ba' => 'ബഷ്ഖിർ',
+        'ba_RU' => 'ബഷ്ഖിർ (റഷ്യ)',
         'be' => 'ബെലാറുഷ്യൻ',
         'be_BY' => 'ബെലാറുഷ്യൻ (ബെലറൂസ്)',
         'bg' => 'ബൾഗേറിയൻ',
@@ -125,6 +127,7 @@
         'en_DE' => 'ഇംഗ്ലീഷ് (ജർമ്മനി)',
         'en_DK' => 'ഇംഗ്ലീഷ് (ഡെൻമാർക്ക്)',
         'en_DM' => 'ഇംഗ്ലീഷ് (ഡൊമിനിക്ക)',
+        'en_EE' => 'ഇംഗ്ലീഷ് (എസ്റ്റോണിയ‍)',
         'en_ER' => 'ഇംഗ്ലീഷ് (എറിത്രിയ)',
         'en_ES' => 'ഇംഗ്ലീഷ് (സ്‌പെയിൻ)',
         'en_FI' => 'ഇംഗ്ലീഷ് (ഫിൻലാൻഡ്)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ഇംഗ്ലീഷ് (ഫ്രാൻസ്)',
         'en_GB' => 'ഇംഗ്ലീഷ് (യുണൈറ്റഡ് കിംഗ്ഡം)',
         'en_GD' => 'ഇംഗ്ലീഷ് (ഗ്രനേഡ)',
+        'en_GE' => 'ഇംഗ്ലീഷ് (ജോർജ്ജിയ)',
         'en_GG' => 'ഇംഗ്ലീഷ് (ഗേൺസി)',
         'en_GH' => 'ഇംഗ്ലീഷ് (ഘാന)',
         'en_GI' => 'ഇംഗ്ലീഷ് (ജിബ്രാൾട്ടർ)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ഇംഗ്ലീഷ് (ഇറ്റലി)',
         'en_JE' => 'ഇംഗ്ലീഷ് (ജേഴ്സി)',
         'en_JM' => 'ഇംഗ്ലീഷ് (ജമൈക്ക)',
+        'en_JP' => 'ഇംഗ്ലീഷ് (ജപ്പാൻ)',
         'en_KE' => 'ഇംഗ്ലീഷ് (കെനിയ)',
         'en_KI' => 'ഇംഗ്ലീഷ് (കിരിബാട്ടി)',
         'en_KN' => 'ഇംഗ്ലീഷ് (സെന്റ് കിറ്റ്‌സും നെവിസും)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ഇംഗ്ലീഷ് (സെന്റ് ലൂസിയ)',
         'en_LR' => 'ഇംഗ്ലീഷ് (ലൈബീരിയ)',
         'en_LS' => 'ഇംഗ്ലീഷ് (ലെസോതോ)',
+        'en_LT' => 'ഇംഗ്ലീഷ് (ലിത്വാനിയ)',
+        'en_LV' => 'ഇംഗ്ലീഷ് (ലാറ്റ്വിയ)',
         'en_MG' => 'ഇംഗ്ലീഷ് (മഡഗാസ്കർ)',
         'en_MH' => 'ഇംഗ്ലീഷ് (മാർഷൽ ദ്വീപുകൾ)',
         'en_MO' => 'ഇംഗ്ലീഷ് (മക്കാവു എസ്.എ.ആർ. ചൈന)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ഇംഗ്ലീഷ് (ട്രിനിഡാഡും ടുബാഗോയും)',
         'en_TV' => 'ഇംഗ്ലീഷ് (ടുവാലു)',
         'en_TZ' => 'ഇംഗ്ലീഷ് (ടാൻസാനിയ)',
+        'en_UA' => 'ഇംഗ്ലീഷ് (ഉക്രെയ്‌ൻ)',
         'en_UG' => 'ഇംഗ്ലീഷ് (ഉഗാണ്ട)',
         'en_UM' => 'ഇംഗ്ലീഷ് (യു.എസ്. ദ്വീപസമൂഹങ്ങൾ)',
         'en_US' => 'ഇംഗ്ലീഷ് (അമേരിക്കൻ ഐക്യനാടുകൾ)',
@@ -391,6 +399,8 @@
         'ki' => 'കികൂയു',
         'ki_KE' => 'കികൂയു (കെനിയ)',
         'kk' => 'കസാഖ്',
+        'kk_Arab' => 'കസാഖ് (അറബിക്)',
+        'kk_Arab_CN' => 'കസാഖ് (അറബിക്, ചൈന)',
         'kk_Cyrl' => 'കസാഖ് (സിറിലിക്)',
         'kk_Cyrl_KZ' => 'കസാഖ് (സിറിലിക്, കസാഖിസ്ഥാൻ)',
         'kk_KZ' => 'കസാഖ് (കസാഖിസ്ഥാൻ)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'കശ്‌മീരി (ദേവനാഗരി, ഇന്ത്യ)',
         'ks_IN' => 'കശ്‌മീരി (ഇന്ത്യ)',
         'ku' => 'കുർദ്ദിഷ്',
+        'ku_Latn' => 'കുർദ്ദിഷ് (ലാറ്റിൻ)',
+        'ku_Latn_IQ' => 'കുർദ്ദിഷ് (ലാറ്റിൻ, ഇറാഖ്)',
+        'ku_Latn_SY' => 'കുർദ്ദിഷ് (ലാറ്റിൻ, സിറിയ)',
+        'ku_Latn_TR' => 'കുർദ്ദിഷ് (ലാറ്റിൻ, തുർക്കിയെ)',
+        'ku_SY' => 'കുർദ്ദിഷ് (സിറിയ)',
         'ku_TR' => 'കുർദ്ദിഷ് (തുർക്കിയെ)',
         'kw' => 'കോർണിഷ്',
         'kw_GB' => 'കോർണിഷ് (യുണൈറ്റഡ് കിംഗ്ഡം)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mn.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'азербайжан (кирилл, Азербайжан)',
         'az_Latn' => 'азербайжан (латин)',
         'az_Latn_AZ' => 'азербайжан (латин, Азербайжан)',
+        'ba' => 'башкир',
+        'ba_RU' => 'башкир (Орос)',
         'be' => 'беларусь',
         'be_BY' => 'беларусь (Беларусь)',
         'bg' => 'болгар',
@@ -125,6 +127,7 @@
         'en_DE' => 'англи (Герман)',
         'en_DK' => 'англи (Дани)',
         'en_DM' => 'англи (Доминика)',
+        'en_EE' => 'англи (Эстони)',
         'en_ER' => 'англи (Эритрей)',
         'en_ES' => 'англи (Испани)',
         'en_FI' => 'англи (Финланд)',
@@ -134,6 +137,7 @@
         'en_FR' => 'англи (Франц)',
         'en_GB' => 'англи (Их Британи)',
         'en_GD' => 'англи (Гренада)',
+        'en_GE' => 'англи (Гүрж)',
         'en_GG' => 'англи (Гернси)',
         'en_GH' => 'англи (Гана)',
         'en_GI' => 'англи (Гибралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'англи (Итали)',
         'en_JE' => 'англи (Жерси)',
         'en_JM' => 'англи (Ямайка)',
+        'en_JP' => 'англи (Япон)',
         'en_KE' => 'англи (Кени)',
         'en_KI' => 'англи (Кирибати)',
         'en_KN' => 'англи (Сент-Киттс ба Невис)',
@@ -159,6 +164,8 @@
         'en_LC' => 'англи (Сент Люсиа)',
         'en_LR' => 'англи (Либери)',
         'en_LS' => 'англи (Лесото)',
+        'en_LT' => 'англи (Литва)',
+        'en_LV' => 'англи (Латви)',
         'en_MG' => 'англи (Мадагаскар)',
         'en_MH' => 'англи (Маршаллын арлууд)',
         'en_MO' => 'англи (БНХАУ-ын Тусгай захиргааны бүс Макао)',
@@ -205,6 +212,7 @@
         'en_TT' => 'англи (Тринидад ба Тобаго)',
         'en_TV' => 'англи (Тувалу)',
         'en_TZ' => 'англи (Танзани)',
+        'en_UA' => 'англи (Украин)',
         'en_UG' => 'англи (Уганда)',
         'en_UM' => 'англи (Америкийн Нэгдсэн Улсын бага арлууд)',
         'en_US' => 'англи (Америкийн Нэгдсэн Улс)',
@@ -391,6 +399,8 @@
         'ki' => 'кикуюү',
         'ki_KE' => 'кикуюү (Кени)',
         'kk' => 'казах',
+        'kk_Arab' => 'казах (араб)',
+        'kk_Arab_CN' => 'казах (араб, Хятад)',
         'kk_Cyrl' => 'казах (кирилл)',
         'kk_Cyrl_KZ' => 'казах (кирилл, Казахстан)',
         'kk_KZ' => 'казах (Казахстан)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'кашмир (деванагари, Энэтхэг)',
         'ks_IN' => 'кашмир (Энэтхэг)',
         'ku' => 'курд',
+        'ku_Latn' => 'курд (латин)',
+        'ku_Latn_IQ' => 'курд (латин, Ирак)',
+        'ku_Latn_SY' => 'курд (латин, Сири)',
+        'ku_Latn_TR' => 'курд (латин, Турк)',
+        'ku_SY' => 'курд (Сири)',
         'ku_TR' => 'курд (Турк)',
         'kw' => 'корн',
         'kw_GB' => 'корн (Их Британи)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mr.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
         'am_ET' => 'अम्हारिक (इथिओपिया)',
         'ar' => 'अरबी',
         'ar_001' => 'अरबी (जग)',
-        'ar_AE' => 'अरबी (संयुक्त अरब अमीरात)',
+        'ar_AE' => 'अरबी (संयुक्त अरब अमिराती)',
         'ar_BH' => 'अरबी (बहारीन)',
         'ar_DJ' => 'अरबी (जिबौटी)',
         'ar_DZ' => 'अरबी (अल्जीरिया)',
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'अझरबैजानी (सीरिलिक, अझरबैजान)',
         'az_Latn' => 'अझरबैजानी (लॅटिन)',
         'az_Latn_AZ' => 'अझरबैजानी (लॅटिन, अझरबैजान)',
+        'ba' => 'बष्किर',
+        'ba_RU' => 'बष्किर (रशिया)',
         'be' => 'बेलारुशियन',
         'be_BY' => 'बेलारुशियन (बेलारूस)',
         'bg' => 'बल्गेरियन',
@@ -101,7 +103,7 @@
         'en' => 'इंग्रजी',
         'en_001' => 'इंग्रजी (जग)',
         'en_150' => 'इंग्रजी (युरोप)',
-        'en_AE' => 'इंग्रजी (संयुक्त अरब अमीरात)',
+        'en_AE' => 'इंग्रजी (संयुक्त अरब अमिराती)',
         'en_AG' => 'इंग्रजी (अँटिग्वा आणि बर्बुडा)',
         'en_AI' => 'इंग्रजी (अँग्विला)',
         'en_AS' => 'इंग्रजी (अमेरिकन सामोआ)',
@@ -125,6 +127,7 @@
         'en_DE' => 'इंग्रजी (जर्मनी)',
         'en_DK' => 'इंग्रजी (डेन्मार्क)',
         'en_DM' => 'इंग्रजी (डोमिनिका)',
+        'en_EE' => 'इंग्रजी (एस्टोनिया)',
         'en_ER' => 'इंग्रजी (एरिट्रिया)',
         'en_ES' => 'इंग्रजी (स्पेन)',
         'en_FI' => 'इंग्रजी (फिनलंड)',
@@ -134,6 +137,7 @@
         'en_FR' => 'इंग्रजी (फ्रान्स)',
         'en_GB' => 'इंग्रजी (युनायटेड किंगडम)',
         'en_GD' => 'इंग्रजी (ग्रेनेडा)',
+        'en_GE' => 'इंग्रजी (जॉर्जिया)',
         'en_GG' => 'इंग्रजी (ग्वेर्नसे)',
         'en_GH' => 'इंग्रजी (घाना)',
         'en_GI' => 'इंग्रजी (जिब्राल्टर)',
@@ -152,6 +156,7 @@
         'en_IT' => 'इंग्रजी (इटली)',
         'en_JE' => 'इंग्रजी (जर्सी)',
         'en_JM' => 'इंग्रजी (जमैका)',
+        'en_JP' => 'इंग्रजी (जपान)',
         'en_KE' => 'इंग्रजी (केनिया)',
         'en_KI' => 'इंग्रजी (किरीबाटी)',
         'en_KN' => 'इंग्रजी (सेंट किट्स आणि नेव्हिस)',
@@ -159,6 +164,8 @@
         'en_LC' => 'इंग्रजी (सेंट ल्यूसिया)',
         'en_LR' => 'इंग्रजी (लायबेरिया)',
         'en_LS' => 'इंग्रजी (लेसोथो)',
+        'en_LT' => 'इंग्रजी (लिथुआनिया)',
+        'en_LV' => 'इंग्रजी (लाटव्हिया)',
         'en_MG' => 'इंग्रजी (मादागास्कर)',
         'en_MH' => 'इंग्रजी (मार्शल बेटे)',
         'en_MO' => 'इंग्रजी (मकाओ एसएआर चीन)',
@@ -205,6 +212,7 @@
         'en_TT' => 'इंग्रजी (त्रिनिदाद आणि टोबॅगो)',
         'en_TV' => 'इंग्रजी (टुवालु)',
         'en_TZ' => 'इंग्रजी (टांझानिया)',
+        'en_UA' => 'इंग्रजी (युक्रेन)',
         'en_UG' => 'इंग्रजी (युगांडा)',
         'en_UM' => 'इंग्रजी (यू.एस. आउटलाइंग बेटे)',
         'en_US' => 'इंग्रजी (युनायटेड स्टेट्स)',
@@ -391,6 +399,8 @@
         'ki' => 'किकुयू',
         'ki_KE' => 'किकुयू (केनिया)',
         'kk' => 'कझाक',
+        'kk_Arab' => 'कझाक (अरबी)',
+        'kk_Arab_CN' => 'कझाक (अरबी, चीन)',
         'kk_Cyrl' => 'कझाक (सीरिलिक)',
         'kk_Cyrl_KZ' => 'कझाक (सीरिलिक, कझाकस्तान)',
         'kk_KZ' => 'कझाक (कझाकस्तान)',
@@ -404,13 +414,18 @@
         'ko_CN' => 'कोरियन (चीन)',
         'ko_KP' => 'कोरियन (उत्तर कोरिया)',
         'ko_KR' => 'कोरियन (दक्षिण कोरिया)',
-        'ks' => 'काश्मीरी',
-        'ks_Arab' => 'काश्मीरी (अरबी)',
-        'ks_Arab_IN' => 'काश्मीरी (अरबी, भारत)',
-        'ks_Deva' => 'काश्मीरी (देवनागरी)',
-        'ks_Deva_IN' => 'काश्मीरी (देवनागरी, भारत)',
-        'ks_IN' => 'काश्मीरी (भारत)',
+        'ks' => 'काश्मिरी',
+        'ks_Arab' => 'काश्मिरी (अरबी)',
+        'ks_Arab_IN' => 'काश्मिरी (अरबी, भारत)',
+        'ks_Deva' => 'काश्मिरी (देवनागरी)',
+        'ks_Deva_IN' => 'काश्मिरी (देवनागरी, भारत)',
+        'ks_IN' => 'काश्मिरी (भारत)',
         'ku' => 'कुर्दिश',
+        'ku_Latn' => 'कुर्दिश (लॅटिन)',
+        'ku_Latn_IQ' => 'कुर्दिश (लॅटिन, इराक)',
+        'ku_Latn_SY' => 'कुर्दिश (लॅटिन, सीरिया)',
+        'ku_Latn_TR' => 'कुर्दिश (लॅटिन, तुर्किये)',
+        'ku_SY' => 'कुर्दिश (सीरिया)',
         'ku_TR' => 'कुर्दिश (तुर्किये)',
         'kw' => 'कोर्निश',
         'kw_GB' => 'कोर्निश (युनायटेड किंगडम)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ms.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ms.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ms.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ms.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Azerbaijan (Cyril, Azerbaijan)',
         'az_Latn' => 'Azerbaijan (Latin)',
         'az_Latn_AZ' => 'Azerbaijan (Latin, Azerbaijan)',
+        'ba' => 'Bashkir',
+        'ba_RU' => 'Bashkir (Rusia)',
         'be' => 'Belarus',
         'be_BY' => 'Belarus (Belarus)',
         'bg' => 'Bulgaria',
@@ -125,6 +127,7 @@
         'en_DE' => 'Inggeris (Jerman)',
         'en_DK' => 'Inggeris (Denmark)',
         'en_DM' => 'Inggeris (Dominica)',
+        'en_EE' => 'Inggeris (Estonia)',
         'en_ER' => 'Inggeris (Eritrea)',
         'en_ES' => 'Inggeris (Sepanyol)',
         'en_FI' => 'Inggeris (Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Inggeris (Perancis)',
         'en_GB' => 'Inggeris (United Kingdom)',
         'en_GD' => 'Inggeris (Grenada)',
+        'en_GE' => 'Inggeris (Georgia)',
         'en_GG' => 'Inggeris (Guernsey)',
         'en_GH' => 'Inggeris (Ghana)',
         'en_GI' => 'Inggeris (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Inggeris (Itali)',
         'en_JE' => 'Inggeris (Jersey)',
         'en_JM' => 'Inggeris (Jamaica)',
+        'en_JP' => 'Inggeris (Jepun)',
         'en_KE' => 'Inggeris (Kenya)',
         'en_KI' => 'Inggeris (Kiribati)',
         'en_KN' => 'Inggeris (Saint Kitts dan Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Inggeris (Saint Lucia)',
         'en_LR' => 'Inggeris (Liberia)',
         'en_LS' => 'Inggeris (Lesotho)',
+        'en_LT' => 'Inggeris (Lithuania)',
+        'en_LV' => 'Inggeris (Latvia)',
         'en_MG' => 'Inggeris (Madagaskar)',
         'en_MH' => 'Inggeris (Kepulauan Marshall)',
         'en_MO' => 'Inggeris (Macau SAR China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Inggeris (Trinidad dan Tobago)',
         'en_TV' => 'Inggeris (Tuvalu)',
         'en_TZ' => 'Inggeris (Tanzania)',
+        'en_UA' => 'Inggeris (Ukraine)',
         'en_UG' => 'Inggeris (Uganda)',
         'en_UM' => 'Inggeris (Kepulauan Terpencil A.S.)',
         'en_US' => 'Inggeris (Amerika Syarikat)',
@@ -409,6 +417,11 @@
         'ks_Deva_IN' => 'Kashmir (Devanagari, India)',
         'ks_IN' => 'Kashmir (India)',
         'ku' => 'Kurdish',
+        'ku_Latn' => 'Kurdish (Latin)',
+        'ku_Latn_IQ' => 'Kurdish (Latin, Iraq)',
+        'ku_Latn_SY' => 'Kurdish (Latin, Syria)',
+        'ku_Latn_TR' => 'Kurdish (Latin, Turkiye)',
+        'ku_SY' => 'Kurdish (Syria)',
         'ku_TR' => 'Kurdish (Turkiye)',
         'kw' => 'Cornish',
         'kw_GB' => 'Cornish (United Kingdom)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/mt.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Ażerbajġani (Ċirilliku, l-Ażerbajġan)',
         'az_Latn' => 'Ażerbajġani (Latin)',
         'az_Latn_AZ' => 'Ażerbajġani (Latin, l-Ażerbajġan)',
+        'ba' => 'Bashkir',
+        'ba_RU' => 'Bashkir (ir-Russja)',
         'be' => 'Belarussu',
         'be_BY' => 'Belarussu (il-Belarussja)',
         'bg' => 'Bulgaru',
@@ -125,6 +127,7 @@
         'en_DE' => 'Ingliż (il-Ġermanja)',
         'en_DK' => 'Ingliż (id-Danimarka)',
         'en_DM' => 'Ingliż (Dominica)',
+        'en_EE' => 'Ingliż (l-Estonja)',
         'en_ER' => 'Ingliż (l-Eritrea)',
         'en_ES' => 'Ingliż (Spanja)',
         'en_FI' => 'Ingliż (il-Finlandja)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Ingliż (Franza)',
         'en_GB' => 'Ingliż (ir-Renju Unit)',
         'en_GD' => 'Ingliż (Grenada)',
+        'en_GE' => 'Ingliż (il-Georgia)',
         'en_GG' => 'Ingliż (Guernsey)',
         'en_GH' => 'Ingliż (il-Ghana)',
         'en_GI' => 'Ingliż (Ġibiltà)',
@@ -151,6 +155,7 @@
         'en_IT' => 'Ingliż (l-Italja)',
         'en_JE' => 'Ingliż (Jersey)',
         'en_JM' => 'Ingliż (il-Ġamajka)',
+        'en_JP' => 'Ingliż (il-Ġappun)',
         'en_KE' => 'Ingliż (il-Kenja)',
         'en_KI' => 'Ingliż (Kiribati)',
         'en_KN' => 'Ingliż (Saint Kitts u Nevis)',
@@ -158,6 +163,8 @@
         'en_LC' => 'Ingliż (Saint Lucia)',
         'en_LR' => 'Ingliż (il-Liberja)',
         'en_LS' => 'Ingliż (il-Lesoto)',
+        'en_LT' => 'Ingliż (il-Litwanja)',
+        'en_LV' => 'Ingliż (il-Latvja)',
         'en_MG' => 'Ingliż (Madagascar)',
         'en_MH' => 'Ingliż (Gżejjer Marshall)',
         'en_MO' => 'Ingliż (ir-Reġjun Amministrattiv Speċjali tal-Macao tar-Repubblika tal-Poplu taċ-Ċina)',
@@ -204,6 +211,7 @@
         'en_TT' => 'Ingliż (Trinidad u Tobago)',
         'en_TV' => 'Ingliż (Tuvalu)',
         'en_TZ' => 'Ingliż (it-Tanzanija)',
+        'en_UA' => 'Ingliż (l-Ukrajna)',
         'en_UG' => 'Ingliż (l-Uganda)',
         'en_UM' => 'Ingliż (Il-Gżejjer Minuri Mbiegħda tal-Istati Uniti)',
         'en_US' => 'Ingliż (l-Istati Uniti)',
@@ -377,6 +385,8 @@
         'ki' => 'Kikuju',
         'ki_KE' => 'Kikuju (il-Kenja)',
         'kk' => 'Każak',
+        'kk_Arab' => 'Każak (Għarbi)',
+        'kk_Arab_CN' => 'Każak (Għarbi, iċ-Ċina)',
         'kk_Cyrl' => 'Każak (Ċirilliku)',
         'kk_Cyrl_KZ' => 'Każak (Ċirilliku, il-Każakistan)',
         'kk_KZ' => 'Każak (il-Każakistan)',
@@ -395,6 +405,11 @@
         'ks_Arab_IN' => 'Kashmiri (Għarbi, l-Indja)',
         'ks_IN' => 'Kashmiri (l-Indja)',
         'ku' => 'Kurd',
+        'ku_Latn' => 'Kurd (Latin)',
+        'ku_Latn_IQ' => 'Kurd (Latin, l-Iraq)',
+        'ku_Latn_SY' => 'Kurd (Latin, is-Sirja)',
+        'ku_Latn_TR' => 'Kurd (Latin, it-Turkija)',
+        'ku_SY' => 'Kurd (is-Sirja)',
         'ku_TR' => 'Kurd (it-Turkija)',
         'kw' => 'Korniku',
         'kw_GB' => 'Korniku (ir-Renju Unit)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/my.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/my.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/my.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/my.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'အဇာဘိုင်ဂျန် (စစ်ရိလစ်/ အဇာဘိုင်ဂျန်)',
         'az_Latn' => 'အဇာဘိုင်ဂျန် (လက်တင်)',
         'az_Latn_AZ' => 'အဇာဘိုင်ဂျန် (လက်တင်/ အဇာဘိုင်ဂျန်)',
+        'ba' => 'ဘက်ရှ်ကာ',
+        'ba_RU' => 'ဘက်ရှ်ကာ (ရုရှား)',
         'be' => 'ဘီလာရုစ်',
         'be_BY' => 'ဘီလာရုစ် (ဘီလာရုစ်)',
         'bg' => 'ဘူလ်ဂေးရီးယား',
@@ -125,6 +127,7 @@
         'en_DE' => 'အင်္ဂလိပ် (ဂျာမနီ)',
         'en_DK' => 'အင်္ဂလိပ် (ဒိန်းမတ်)',
         'en_DM' => 'အင်္ဂလိပ် (ဒိုမီနီကာ)',
+        'en_EE' => 'အင်္ဂလိပ် (အက်စတိုးနီးယား)',
         'en_ER' => 'အင်္ဂလိပ် (အီရီထရီးယား)',
         'en_ES' => 'အင်္ဂလိပ် (စပိန်)',
         'en_FI' => 'အင်္ဂလိပ် (ဖင်လန်)',
@@ -134,6 +137,7 @@
         'en_FR' => 'အင်္ဂလိပ် (ပြင်သစ်)',
         'en_GB' => 'အင်္ဂလိပ် (ယူနိုက်တက်ကင်းဒမ်း)',
         'en_GD' => 'အင်္ဂလိပ် (ဂရီနေဒါ)',
+        'en_GE' => 'အင်္ဂလိပ် (ဂျော်ဂျီယာ)',
         'en_GG' => 'အင်္ဂလိပ် (ဂွန်းဇီ)',
         'en_GH' => 'အင်္ဂလိပ် (ဂါနာ)',
         'en_GI' => 'အင်္ဂလိပ် (ဂျီဘရော်လ်တာ)',
@@ -152,6 +156,7 @@
         'en_IT' => 'အင်္ဂလိပ် (အီတလီ)',
         'en_JE' => 'အင်္ဂလိပ် (ဂျာစီ)',
         'en_JM' => 'အင်္ဂလိပ် (ဂျမေကာ)',
+        'en_JP' => 'အင်္ဂလိပ် (ဂျပန်)',
         'en_KE' => 'အင်္ဂလိပ် (ကင်ညာ)',
         'en_KI' => 'အင်္ဂလိပ် (ခီရီဘာတီ)',
         'en_KN' => 'အင်္ဂလိပ် (စိန့်ကစ်နှင့်နီဗီစ်)',
@@ -159,6 +164,8 @@
         'en_LC' => 'အင်္ဂလိပ် (စိန့်လူစီယာ)',
         'en_LR' => 'အင်္ဂလိပ် (လိုက်ဘေးရီးယား)',
         'en_LS' => 'အင်္ဂလိပ် (လီဆိုသို)',
+        'en_LT' => 'အင်္ဂလိပ် (လစ်သူဝေးနီးယား)',
+        'en_LV' => 'အင်္ဂလိပ် (လတ်ဗီးယား)',
         'en_MG' => 'အင်္ဂလိပ် (မဒါဂတ်စကား)',
         'en_MH' => 'အင်္ဂလိပ် (မာရှယ် ကျွန်းစု)',
         'en_MO' => 'အင်္ဂလိပ် (မကာအို [တရုတ်ပြည်])',
@@ -205,6 +212,7 @@
         'en_TT' => 'အင်္ဂလိပ် (ထရီနီဒတ်နှင့် တိုဘက်ဂို)',
         'en_TV' => 'အင်္ဂလိပ် (တူဗားလူ)',
         'en_TZ' => 'အင်္ဂလိပ် (တန်ဇန်းနီးယား)',
+        'en_UA' => 'အင်္ဂလိပ် (ယူကရိန်း)',
         'en_UG' => 'အင်္ဂလိပ် (ယူဂန်းဒါး)',
         'en_UM' => 'အင်္ဂလိပ် (ယူနိုက်တက်စတိတ် ကျွန်းနိုင်ငံများ)',
         'en_US' => 'အင်္ဂလိပ် (အမေရိကန် ပြည်ထောင်စု)',
@@ -391,6 +399,8 @@
         'ki' => 'ကီကူယူ',
         'ki_KE' => 'ကီကူယူ (ကင်ညာ)',
         'kk' => 'ကာဇာချ',
+        'kk_Arab' => 'ကာဇာချ (အာရေဗျ)',
+        'kk_Arab_CN' => 'ကာဇာချ (အာရေဗျ/ တရုတ်)',
         'kk_Cyrl' => 'ကာဇာချ (စစ်ရိလစ်)',
         'kk_Cyrl_KZ' => 'ကာဇာချ (စစ်ရိလစ်/ ကာဇက်စတန်)',
         'kk_KZ' => 'ကာဇာချ (ကာဇက်စတန်)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'ကက်ရှ်မီးယား (ဒီဗနာဂရီ/ အိန္ဒိယ)',
         'ks_IN' => 'ကက်ရှ်မီးယား (အိန္ဒိယ)',
         'ku' => 'ကဒ်',
+        'ku_Latn' => 'ကဒ် (လက်တင်)',
+        'ku_Latn_IQ' => 'ကဒ် (လက်တင်/ အီရတ်)',
+        'ku_Latn_SY' => 'ကဒ် (လက်တင်/ ဆီးရီးယား)',
+        'ku_Latn_TR' => 'ကဒ် (လက်တင်/ တူရကီ)',
+        'ku_SY' => 'ကဒ် (ဆီးရီးယား)',
         'ku_TR' => 'ကဒ် (တူရကီ)',
         'kw' => 'ခိုနီရှ်',
         'kw_GB' => 'ခိုနီရှ် (ယူနိုက်တက်ကင်းဒမ်း)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nd.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,6 +75,7 @@
         'en_DE' => 'isi-Ngisi (Germany)',
         'en_DK' => 'isi-Ngisi (Denmakhi)',
         'en_DM' => 'isi-Ngisi (Dominikha)',
+        'en_EE' => 'isi-Ngisi (Estonia)',
         'en_ER' => 'isi-Ngisi (Eritrea)',
         'en_ES' => 'isi-Ngisi (Spain)',
         'en_FI' => 'isi-Ngisi (Finland)',
@@ -84,6 +85,7 @@
         'en_FR' => 'isi-Ngisi (Furansi)',
         'en_GB' => 'isi-Ngisi (United Kingdom)',
         'en_GD' => 'isi-Ngisi (Grenada)',
+        'en_GE' => 'isi-Ngisi (Georgia)',
         'en_GH' => 'isi-Ngisi (Ghana)',
         'en_GI' => 'isi-Ngisi (Gibraltar)',
         'en_GM' => 'isi-Ngisi (Gambiya)',
@@ -96,6 +98,7 @@
         'en_IN' => 'isi-Ngisi (Indiya)',
         'en_IT' => 'isi-Ngisi (Itali)',
         'en_JM' => 'isi-Ngisi (Jamaica)',
+        'en_JP' => 'isi-Ngisi (Japan)',
         'en_KE' => 'isi-Ngisi (Khenya)',
         'en_KI' => 'isi-Ngisi (Khiribati)',
         'en_KN' => 'isi-Ngisi (Saint Kitts and Nevis)',
@@ -103,6 +106,8 @@
         'en_LC' => 'isi-Ngisi (Saint Lucia)',
         'en_LR' => 'isi-Ngisi (Libheriya)',
         'en_LS' => 'isi-Ngisi (Lesotho)',
+        'en_LT' => 'isi-Ngisi (Lithuania)',
+        'en_LV' => 'isi-Ngisi (Latvia)',
         'en_MG' => 'isi-Ngisi (Madagaska)',
         'en_MH' => 'isi-Ngisi (Marshall Islands)',
         'en_MP' => 'isi-Ngisi (Northern Mariana Islands)',
@@ -146,6 +151,7 @@
         'en_TT' => 'isi-Ngisi (Trinidad le Tobago)',
         'en_TV' => 'isi-Ngisi (Thuvalu)',
         'en_TZ' => 'isi-Ngisi (Tanzaniya)',
+        'en_UA' => 'isi-Ngisi (Yukreini)',
         'en_UG' => 'isi-Ngisi (Uganda)',
         'en_US' => 'isi-Ngisi (Amelika)',
         'en_VC' => 'isi-Ngisi (Saint Vincent and the Grenadines)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ne.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ne.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ne.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ne.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'अजरबैजानी (सिरिलिक, अजरबैजान)',
         'az_Latn' => 'अजरबैजानी (ल्याटिन)',
         'az_Latn_AZ' => 'अजरबैजानी (ल्याटिन, अजरबैजान)',
+        'ba' => 'बास्किर',
+        'ba_RU' => 'बास्किर (रूस)',
         'be' => 'बेलारुसी',
         'be_BY' => 'बेलारुसी (बेलारूस)',
         'bg' => 'बुल्गेरियाली',
@@ -125,6 +127,7 @@
         'en_DE' => 'अङ्ग्रेजी (जर्मनी)',
         'en_DK' => 'अङ्ग्रेजी (डेनमार्क)',
         'en_DM' => 'अङ्ग्रेजी (डोमिनिका)',
+        'en_EE' => 'अङ्ग्रेजी (इस्टोनिया)',
         'en_ER' => 'अङ्ग्रेजी (एरिट्रीया)',
         'en_ES' => 'अङ्ग्रेजी (स्पेन)',
         'en_FI' => 'अङ्ग्रेजी (फिनल्याण्ड)',
@@ -134,6 +137,7 @@
         'en_FR' => 'अङ्ग्रेजी (फ्रान्स)',
         'en_GB' => 'अङ्ग्रेजी (संयुक्त अधिराज्य)',
         'en_GD' => 'अङ्ग्रेजी (ग्रेनाडा)',
+        'en_GE' => 'अङ्ग्रेजी (जर्जिया)',
         'en_GG' => 'अङ्ग्रेजी (ग्यूर्न्सी)',
         'en_GH' => 'अङ्ग्रेजी (घाना)',
         'en_GI' => 'अङ्ग्रेजी (जिब्राल्टार)',
@@ -152,6 +156,7 @@
         'en_IT' => 'अङ्ग्रेजी (इटली)',
         'en_JE' => 'अङ्ग्रेजी (जर्सी)',
         'en_JM' => 'अङ्ग्रेजी (जमैका)',
+        'en_JP' => 'अङ्ग्रेजी (जापान)',
         'en_KE' => 'अङ्ग्रेजी (केन्या)',
         'en_KI' => 'अङ्ग्रेजी (किरिबाटी)',
         'en_KN' => 'अङ्ग्रेजी (सेन्ट किट्स र नेभिस)',
@@ -159,6 +164,8 @@
         'en_LC' => 'अङ्ग्रेजी (सेन्ट लुसिया)',
         'en_LR' => 'अङ्ग्रेजी (लाइबेरिया)',
         'en_LS' => 'अङ्ग्रेजी (लेसोथो)',
+        'en_LT' => 'अङ्ग्रेजी (लिथुएनिया)',
+        'en_LV' => 'अङ्ग्रेजी (लाट्भिया)',
         'en_MG' => 'अङ्ग्रेजी (माडागास्कर)',
         'en_MH' => 'अङ्ग्रेजी (मार्शल टापुहरु)',
         'en_MO' => 'अङ्ग्रेजी (मकाउ चिनियाँ विशेष प्रशासनिक क्षेत्र)',
@@ -205,6 +212,7 @@
         'en_TT' => 'अङ्ग्रेजी (त्रिनिडाड एण्ड टोबागो)',
         'en_TV' => 'अङ्ग्रेजी (तुभालु)',
         'en_TZ' => 'अङ्ग्रेजी (तान्जानिया)',
+        'en_UA' => 'अङ्ग्रेजी (युक्रेन)',
         'en_UG' => 'अङ्ग्रेजी (युगाण्डा)',
         'en_UM' => 'अङ्ग्रेजी (संयुक्त राज्यका बाह्य टापुहरु)',
         'en_US' => 'अङ्ग्रेजी (संयुक्त राज्य)',
@@ -391,6 +399,8 @@
         'ki' => 'किकुयु',
         'ki_KE' => 'किकुयु (केन्या)',
         'kk' => 'काजाख',
+        'kk_Arab' => 'काजाख (अरबी)',
+        'kk_Arab_CN' => 'काजाख (अरबी, चीन)',
         'kk_Cyrl' => 'काजाख (सिरिलिक)',
         'kk_Cyrl_KZ' => 'काजाख (सिरिलिक, काजाकस्तान)',
         'kk_KZ' => 'काजाख (काजाकस्तान)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'कास्मिरी (देवानागरी, भारत)',
         'ks_IN' => 'कास्मिरी (भारत)',
         'ku' => 'कुर्दी',
+        'ku_Latn' => 'कुर्दी (ल्याटिन)',
+        'ku_Latn_IQ' => 'कुर्दी (ल्याटिन, इराक)',
+        'ku_Latn_SY' => 'कुर्दी (ल्याटिन, सिरिया)',
+        'ku_Latn_TR' => 'कुर्दी (ल्याटिन, तुर्किये)',
+        'ku_SY' => 'कुर्दी (सिरिया)',
         'ku_TR' => 'कुर्दी (तुर्किये)',
         'kw' => 'कोर्निस',
         'kw_GB' => 'कोर्निस (संयुक्त अधिराज्य)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nl.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Azerbeidzjaans (Cyrillisch, Azerbeidzjan)',
         'az_Latn' => 'Azerbeidzjaans (Latijns)',
         'az_Latn_AZ' => 'Azerbeidzjaans (Latijns, Azerbeidzjan)',
+        'ba' => 'Basjkiers',
+        'ba_RU' => 'Basjkiers (Rusland)',
         'be' => 'Belarussisch',
         'be_BY' => 'Belarussisch (Belarus)',
         'bg' => 'Bulgaars',
@@ -125,6 +127,7 @@
         'en_DE' => 'Engels (Duitsland)',
         'en_DK' => 'Engels (Denemarken)',
         'en_DM' => 'Engels (Dominica)',
+        'en_EE' => 'Engels (Estland)',
         'en_ER' => 'Engels (Eritrea)',
         'en_ES' => 'Engels (Spanje)',
         'en_FI' => 'Engels (Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Engels (Frankrijk)',
         'en_GB' => 'Engels (Verenigd Koninkrijk)',
         'en_GD' => 'Engels (Grenada)',
+        'en_GE' => 'Engels (Georgië)',
         'en_GG' => 'Engels (Guernsey)',
         'en_GH' => 'Engels (Ghana)',
         'en_GI' => 'Engels (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Engels (Italië)',
         'en_JE' => 'Engels (Jersey)',
         'en_JM' => 'Engels (Jamaica)',
+        'en_JP' => 'Engels (Japan)',
         'en_KE' => 'Engels (Kenia)',
         'en_KI' => 'Engels (Kiribati)',
         'en_KN' => 'Engels (Saint Kitts en Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Engels (Saint Lucia)',
         'en_LR' => 'Engels (Liberia)',
         'en_LS' => 'Engels (Lesotho)',
+        'en_LT' => 'Engels (Litouwen)',
+        'en_LV' => 'Engels (Letland)',
         'en_MG' => 'Engels (Madagaskar)',
         'en_MH' => 'Engels (Marshalleilanden)',
         'en_MO' => 'Engels (Macau SAR van China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Engels (Trinidad en Tobago)',
         'en_TV' => 'Engels (Tuvalu)',
         'en_TZ' => 'Engels (Tanzania)',
+        'en_UA' => 'Engels (Oekraïne)',
         'en_UG' => 'Engels (Oeganda)',
         'en_UM' => 'Engels (Kleine afgelegen eilanden van de Verenigde Staten)',
         'en_US' => 'Engels (Verenigde Staten)',
@@ -391,6 +399,8 @@
         'ki' => 'Gikuyu',
         'ki_KE' => 'Gikuyu (Kenia)',
         'kk' => 'Kazachs',
+        'kk_Arab' => 'Kazachs (Arabisch)',
+        'kk_Arab_CN' => 'Kazachs (Arabisch, China)',
         'kk_Cyrl' => 'Kazachs (Cyrillisch)',
         'kk_Cyrl_KZ' => 'Kazachs (Cyrillisch, Kazachstan)',
         'kk_KZ' => 'Kazachs (Kazachstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Kasjmiri (Devanagari, India)',
         'ks_IN' => 'Kasjmiri (India)',
         'ku' => 'Koerdisch',
+        'ku_Latn' => 'Koerdisch (Latijns)',
+        'ku_Latn_IQ' => 'Koerdisch (Latijns, Irak)',
+        'ku_Latn_SY' => 'Koerdisch (Latijns, Syrië)',
+        'ku_Latn_TR' => 'Koerdisch (Latijns, Turkije)',
+        'ku_SY' => 'Koerdisch (Syrië)',
         'ku_TR' => 'Koerdisch (Turkije)',
         'kw' => 'Cornish',
         'kw_GB' => 'Cornish (Verenigd Koninkrijk)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/nn.php	2026-05-20 10:56:49.000000000 +0200
@@ -9,6 +9,5 @@
         'ne' => 'nepalsk',
         'sc' => 'sardinsk',
         'st' => 'sørsotho',
-        'tn' => 'tswana',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/no.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/no.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/no.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/no.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'aserbajdsjansk (kyrillisk, Aserbajdsjan)',
         'az_Latn' => 'aserbajdsjansk (latinsk)',
         'az_Latn_AZ' => 'aserbajdsjansk (latinsk, Aserbajdsjan)',
+        'ba' => 'basjkirsk',
+        'ba_RU' => 'basjkirsk (Russland)',
         'be' => 'belarusisk',
         'be_BY' => 'belarusisk (Belarus)',
         'bg' => 'bulgarsk',
@@ -125,6 +127,7 @@
         'en_DE' => 'engelsk (Tyskland)',
         'en_DK' => 'engelsk (Danmark)',
         'en_DM' => 'engelsk (Dominica)',
+        'en_EE' => 'engelsk (Estland)',
         'en_ER' => 'engelsk (Eritrea)',
         'en_ES' => 'engelsk (Spania)',
         'en_FI' => 'engelsk (Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'engelsk (Frankrike)',
         'en_GB' => 'engelsk (Storbritannia)',
         'en_GD' => 'engelsk (Grenada)',
+        'en_GE' => 'engelsk (Georgia)',
         'en_GG' => 'engelsk (Guernsey)',
         'en_GH' => 'engelsk (Ghana)',
         'en_GI' => 'engelsk (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'engelsk (Italia)',
         'en_JE' => 'engelsk (Jersey)',
         'en_JM' => 'engelsk (Jamaica)',
+        'en_JP' => 'engelsk (Japan)',
         'en_KE' => 'engelsk (Kenya)',
         'en_KI' => 'engelsk (Kiribati)',
         'en_KN' => 'engelsk (Saint Kitts og Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'engelsk (St. Lucia)',
         'en_LR' => 'engelsk (Liberia)',
         'en_LS' => 'engelsk (Lesotho)',
+        'en_LT' => 'engelsk (Litauen)',
+        'en_LV' => 'engelsk (Latvia)',
         'en_MG' => 'engelsk (Madagaskar)',
         'en_MH' => 'engelsk (Marshalløyene)',
         'en_MO' => 'engelsk (Macao SAR Kina)',
@@ -205,6 +212,7 @@
         'en_TT' => 'engelsk (Trinidad og Tobago)',
         'en_TV' => 'engelsk (Tuvalu)',
         'en_TZ' => 'engelsk (Tanzania)',
+        'en_UA' => 'engelsk (Ukraina)',
         'en_UG' => 'engelsk (Uganda)',
         'en_UM' => 'engelsk (USAs ytre øyer)',
         'en_US' => 'engelsk (USA)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenya)',
         'kk' => 'kasakhisk',
+        'kk_Arab' => 'kasakhisk (arabisk)',
+        'kk_Arab_CN' => 'kasakhisk (arabisk, Kina)',
         'kk_Cyrl' => 'kasakhisk (kyrillisk)',
         'kk_Cyrl_KZ' => 'kasakhisk (kyrillisk, Kasakhstan)',
         'kk_KZ' => 'kasakhisk (Kasakhstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kasjmiri (devanagari, India)',
         'ks_IN' => 'kasjmiri (India)',
         'ku' => 'kurdisk',
+        'ku_Latn' => 'kurdisk (latinsk)',
+        'ku_Latn_IQ' => 'kurdisk (latinsk, Irak)',
+        'ku_Latn_SY' => 'kurdisk (latinsk, Syria)',
+        'ku_Latn_TR' => 'kurdisk (latinsk, Tyrkia)',
+        'ku_SY' => 'kurdisk (Syria)',
         'ku_TR' => 'kurdisk (Tyrkia)',
         'kw' => 'kornisk',
         'kw_GB' => 'kornisk (Storbritannia)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/om.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/om.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/om.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/om.php	2026-05-20 10:56:49.000000000 +0200
@@ -111,6 +111,7 @@
         'en_DE' => 'Afaan Ingilizii (Jarmanii)',
         'en_DK' => 'Afaan Ingilizii (Deenmaark)',
         'en_DM' => 'Afaan Ingilizii (Dominiikaa)',
+        'en_EE' => 'Afaan Ingilizii (Istooniyaa)',
         'en_ER' => 'Afaan Ingilizii (Eertiraa)',
         'en_ES' => 'Afaan Ingilizii (Ispeen)',
         'en_FI' => 'Afaan Ingilizii (Fiinlaand)',
@@ -120,6 +121,7 @@
         'en_FR' => 'Afaan Ingilizii (Faransaay)',
         'en_GB' => 'Afaan Ingilizii (United Kingdom)',
         'en_GD' => 'Afaan Ingilizii (Girinaada)',
+        'en_GE' => 'Afaan Ingilizii (Joorjiyaa)',
         'en_GG' => 'Afaan Ingilizii (Guwernisey)',
         'en_GH' => 'Afaan Ingilizii (Gaanaa)',
         'en_GI' => 'Afaan Ingilizii (Gibraaltar)',
@@ -138,6 +140,7 @@
         'en_IT' => 'Afaan Ingilizii (Xaaliyaan)',
         'en_JE' => 'Afaan Ingilizii (Jeersii)',
         'en_JM' => 'Afaan Ingilizii (Jamaayikaa)',
+        'en_JP' => 'Afaan Ingilizii (Jaappaan)',
         'en_KE' => 'Afaan Ingilizii (Keeniyaa)',
         'en_KI' => 'Afaan Ingilizii (Kiribaatii)',
         'en_KN' => 'Afaan Ingilizii (St. Kiitis fi Neevis)',
@@ -145,6 +148,8 @@
         'en_LC' => 'Afaan Ingilizii (St. Suusiyaa)',
         'en_LR' => 'Afaan Ingilizii (Laayibeeriyaa)',
         'en_LS' => 'Afaan Ingilizii (Leseettoo)',
+        'en_LT' => 'Afaan Ingilizii (Lutaaniyaa)',
+        'en_LV' => 'Afaan Ingilizii (Lativiyaa)',
         'en_MG' => 'Afaan Ingilizii (Madagaaskaar)',
         'en_MH' => 'Afaan Ingilizii (Odoloota Maarshaal)',
         'en_MO' => 'Afaan Ingilizii (Maka’oo SAR Chaayinaa)',
@@ -191,6 +196,7 @@
         'en_TT' => 'Afaan Ingilizii (Tirinidan fi Tobaagoo)',
         'en_TV' => 'Afaan Ingilizii (Tuvalu)',
         'en_TZ' => 'Afaan Ingilizii (Taanzaaniyaa)',
+        'en_UA' => 'Afaan Ingilizii (Yuukireen)',
         'en_UG' => 'Afaan Ingilizii (Ugaandaa)',
         'en_UM' => 'Afaan Ingilizii (U.S. Odoloota Alaa)',
         'en_US' => 'Afaan Ingilizii (Yiinaayitid Isteet)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/or.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/or.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/or.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/or.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'ଆଜେରବାଇଜାନି (ସିରିଲିକ୍, ଆଜେରବାଇଜାନ୍)',
         'az_Latn' => 'ଆଜେରବାଇଜାନି (ଲାଟିନ୍)',
         'az_Latn_AZ' => 'ଆଜେରବାଇଜାନି (ଲାଟିନ୍, ଆଜେରବାଇଜାନ୍)',
+        'ba' => 'ବାଶକିର୍',
+        'ba_RU' => 'ବାଶକିର୍ (ରୁଷିଆ)',
         'be' => 'ବେଲାରୁଷିଆନ୍',
         'be_BY' => 'ବେଲାରୁଷିଆନ୍ (ବେଲାରୁଷ୍)',
         'bg' => 'ବୁଲଗେରିଆନ୍',
@@ -125,6 +127,7 @@
         'en_DE' => 'ଇଂରାଜୀ (ଜର୍ମାନୀ)',
         'en_DK' => 'ଇଂରାଜୀ (ଡେନମାର୍କ)',
         'en_DM' => 'ଇଂରାଜୀ (ଡୋମିନିକା)',
+        'en_EE' => 'ଇଂରାଜୀ (ଏସ୍ତୋନିଆ)',
         'en_ER' => 'ଇଂରାଜୀ (ଇରିଟ୍ରିୟା)',
         'en_ES' => 'ଇଂରାଜୀ (ସ୍ପେନ୍)',
         'en_FI' => 'ଇଂରାଜୀ (ଫିନଲ୍ୟାଣ୍ଡ)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ଇଂରାଜୀ (ଫ୍ରାନ୍ସ)',
         'en_GB' => 'ଇଂରାଜୀ (ଯୁକ୍ତରାଜ୍ୟ)',
         'en_GD' => 'ଇଂରାଜୀ (ଗ୍ରେନାଡା)',
+        'en_GE' => 'ଇଂରାଜୀ (ଜର୍ଜିଆ)',
         'en_GG' => 'ଇଂରାଜୀ (ଗୁଏରନେସି)',
         'en_GH' => 'ଇଂରାଜୀ (ଘାନା)',
         'en_GI' => 'ଇଂରାଜୀ (ଜିବ୍ରାଲ୍ଟର୍)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ଇଂରାଜୀ (ଇଟାଲୀ)',
         'en_JE' => 'ଇଂରାଜୀ (ଜର୍ସି)',
         'en_JM' => 'ଇଂରାଜୀ (ଜାମାଇକା)',
+        'en_JP' => 'ଇଂରାଜୀ (ଜାପାନ)',
         'en_KE' => 'ଇଂରାଜୀ (କେନିୟା)',
         'en_KI' => 'ଇଂରାଜୀ (କିରିବାଟି)',
         'en_KN' => 'ଇଂରାଜୀ (ସେଣ୍ଟ କିଟସ୍‌ ଏବଂ ନେଭିସ୍‌)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ଇଂରାଜୀ (ସେଣ୍ଟ ଲୁସିଆ)',
         'en_LR' => 'ଇଂରାଜୀ (ଲାଇବେରିଆ)',
         'en_LS' => 'ଇଂରାଜୀ (ଲେସୋଥୋ)',
+        'en_LT' => 'ଇଂରାଜୀ (ଲିଥୁଆନିଆ)',
+        'en_LV' => 'ଇଂରାଜୀ (ଲାଟଭିଆ)',
         'en_MG' => 'ଇଂରାଜୀ (ମାଡାଗାସ୍କର୍)',
         'en_MH' => 'ଇଂରାଜୀ (ମାର୍ଶାଲ୍ ଦ୍ୱୀପପୁଞ୍ଜ)',
         'en_MO' => 'ଇଂରାଜୀ (ମାକାଉ ଏସଏଆର୍‌ ଚାଇନା)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ଇଂରାଜୀ (ତ୍ରିନିଦାଦ୍ ଏବଂ ଟୋବାଗୋ)',
         'en_TV' => 'ଇଂରାଜୀ (ତୁଭାଲୁ)',
         'en_TZ' => 'ଇଂରାଜୀ (ତାଞ୍ଜାନିଆ)',
+        'en_UA' => 'ଇଂରାଜୀ (ୟୁକ୍ରେନ୍)',
         'en_UG' => 'ଇଂରାଜୀ (ଉଗାଣ୍ଡା)',
         'en_UM' => 'ଇଂରାଜୀ (ଯୁକ୍ତରାଷ୍ଟ୍ର ଆଉଟ୍‌ଲାଇଙ୍ଗ ଦ୍ଵୀପପୁଞ୍ଜ)',
         'en_US' => 'ଇଂରାଜୀ (ଯୁକ୍ତ ରାଷ୍ଟ୍ର)',
@@ -391,6 +399,8 @@
         'ki' => 'କୀକୁୟୁ',
         'ki_KE' => 'କୀକୁୟୁ (କେନିୟା)',
         'kk' => 'କାଜାଖ୍‌',
+        'kk_Arab' => 'କାଜାଖ୍‌ (ଆରବିକ୍)',
+        'kk_Arab_CN' => 'କାଜାଖ୍‌ (ଆରବିକ୍, ଚୀନ୍‌)',
         'kk_Cyrl' => 'କାଜାଖ୍‌ (ସିରିଲିକ୍)',
         'kk_Cyrl_KZ' => 'କାଜାଖ୍‌ (ସିରିଲିକ୍, କାଜାଖସ୍ତାନ୍‌)',
         'kk_KZ' => 'କାଜାଖ୍‌ (କାଜାଖସ୍ତାନ୍‌)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'କାଶ୍ମିରୀ (ଦେବନାଗରୀ, ଭାରତ)',
         'ks_IN' => 'କାଶ୍ମିରୀ (ଭାରତ)',
         'ku' => 'କୁର୍ଦ୍ଦିଶ୍',
+        'ku_Latn' => 'କୁର୍ଦ୍ଦିଶ୍ (ଲାଟିନ୍)',
+        'ku_Latn_IQ' => 'କୁର୍ଦ୍ଦିଶ୍ (ଲାଟିନ୍, ଇରାକ୍)',
+        'ku_Latn_SY' => 'କୁର୍ଦ୍ଦିଶ୍ (ଲାଟିନ୍, ସିରିଆ)',
+        'ku_Latn_TR' => 'କୁର୍ଦ୍ଦିଶ୍ (ଲାଟିନ୍, ତୁର୍କୀ)',
+        'ku_SY' => 'କୁର୍ଦ୍ଦିଶ୍ (ସିରିଆ)',
         'ku_TR' => 'କୁର୍ଦ୍ଦିଶ୍ (ତୁର୍କୀ)',
         'kw' => 'କୋର୍ନିସ୍',
         'kw_GB' => 'କୋର୍ନିସ୍ (ଯୁକ୍ତରାଜ୍ୟ)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/os.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/os.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/os.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/os.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,8 @@
         'az' => 'тӕтӕйраг',
         'az_Cyrl' => 'тӕтӕйраг (Киррилицӕ)',
         'az_Latn' => 'тӕтӕйраг (Латинаг)',
+        'ba' => 'башкираг',
+        'ba_RU' => 'башкираг (Уӕрӕсе)',
         'bg' => 'болгайраг',
         'bs' => 'босниаг',
         'bs_Cyrl' => 'босниаг (Киррилицӕ)',
@@ -31,8 +33,10 @@
         'en_DE' => 'англисаг (Герман)',
         'en_FR' => 'англисаг (Франц)',
         'en_GB' => 'англисаг (Стыр Британи)',
+        'en_GE' => 'англисаг (Гуырдзыстон)',
         'en_IN' => 'англисаг (Инди)',
         'en_IT' => 'англисаг (Итали)',
+        'en_JP' => 'англисаг (Япон)',
         'en_US' => 'англисаг (АИШ)',
         'eo' => 'есперанто',
         'eo_001' => 'есперанто (Дуне)',
@@ -59,6 +63,7 @@
         'ka' => 'гуырдзиаг',
         'ka_GE' => 'гуырдзиаг (Гуырдзыстон)',
         'ku' => 'курдаг',
+        'ku_Latn' => 'курдаг (Латинаг)',
         'mk' => 'мӕчъидон',
         'os' => 'ирон',
         'os_GE' => 'ирон (Гуырдзыстон)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pa_Arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pa_Arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pa_Arab.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pa_Arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -3,6 +3,8 @@
 return [
     'Names' => [
         'en_PK' => 'ਅੰਗਰੇਜ਼ੀ (پاکستان)',
+        'kk_Arab' => 'ਕਜ਼ਾਖ਼ (عربی)',
+        'kk_Arab_CN' => 'ਕਜ਼ਾਖ਼ (عربی, ਚੀਨ)',
         'ks_Arab' => 'ਕਸ਼ਮੀਰੀ (عربی)',
         'ks_Arab_IN' => 'ਕਸ਼ਮੀਰੀ (عربی, ਭਾਰਤ)',
         'pa' => 'پنجابی',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pa.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,15 +20,15 @@
         'ar_ER' => 'ਅਰਬੀ (ਇਰੀਟ੍ਰਿਆ)',
         'ar_IL' => 'ਅਰਬੀ (ਇਜ਼ਰਾਈਲ)',
         'ar_IQ' => 'ਅਰਬੀ (ਇਰਾਕ)',
-        'ar_JO' => 'ਅਰਬੀ (ਜਾਰਡਨ)',
+        'ar_JO' => 'ਅਰਬੀ (ਜੌਰਡਨ)',
         'ar_KM' => 'ਅਰਬੀ (ਕੋਮੋਰੋਸ)',
         'ar_KW' => 'ਅਰਬੀ (ਕੁਵੈਤ)',
-        'ar_LB' => 'ਅਰਬੀ (ਲੈਬਨਾਨ)',
+        'ar_LB' => 'ਅਰਬੀ (ਲਿਬਨਾਨ)',
         'ar_LY' => 'ਅਰਬੀ (ਲੀਬੀਆ)',
         'ar_MA' => 'ਅਰਬੀ (ਮੋਰੱਕੋ)',
         'ar_MR' => 'ਅਰਬੀ (ਮੋਰਿਟਾਨੀਆ)',
         'ar_OM' => 'ਅਰਬੀ (ਓਮਾਨ)',
-        'ar_PS' => 'ਅਰਬੀ (ਫਿਲੀਸਤੀਨੀ ਇਲਾਕਾ)',
+        'ar_PS' => 'ਅਰਬੀ (ਫਿਲਸਤੀਨੀ ਖਿੱਤੇ)',
         'ar_QA' => 'ਅਰਬੀ (ਕਤਰ)',
         'ar_SA' => 'ਅਰਬੀ (ਸਾਊਦੀ ਅਰਬ)',
         'ar_SD' => 'ਅਰਬੀ (ਸੂਡਾਨ)',
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'ਅਜ਼ਰਬਾਈਜਾਨੀ (ਸਿਰਿਲਿਕ, ਅਜ਼ਰਬਾਈਜਾਨ)',
         'az_Latn' => 'ਅਜ਼ਰਬਾਈਜਾਨੀ (ਲਾਤੀਨੀ)',
         'az_Latn_AZ' => 'ਅਜ਼ਰਬਾਈਜਾਨੀ (ਲਾਤੀਨੀ, ਅਜ਼ਰਬਾਈਜਾਨ)',
+        'ba' => 'ਬਸ਼ਕੀਰ',
+        'ba_RU' => 'ਬਸ਼ਕੀਰ (ਰੂਸ)',
         'be' => 'ਬੇਲਾਰੂਸੀ',
         'be_BY' => 'ਬੇਲਾਰੂਸੀ (ਬੇਲਾਰੂਸ)',
         'bg' => 'ਬੁਲਗਾਰੀਆਈ',
@@ -125,6 +127,7 @@
         'en_DE' => 'ਅੰਗਰੇਜ਼ੀ (ਜਰਮਨੀ)',
         'en_DK' => 'ਅੰਗਰੇਜ਼ੀ (ਡੈਨਮਾਰਕ)',
         'en_DM' => 'ਅੰਗਰੇਜ਼ੀ (ਡੋਮੀਨਿਕਾ)',
+        'en_EE' => 'ਅੰਗਰੇਜ਼ੀ (ਇਸਟੋਨੀਆ)',
         'en_ER' => 'ਅੰਗਰੇਜ਼ੀ (ਇਰੀਟ੍ਰਿਆ)',
         'en_ES' => 'ਅੰਗਰੇਜ਼ੀ (ਸਪੇਨ)',
         'en_FI' => 'ਅੰਗਰੇਜ਼ੀ (ਫਿਨਲੈਂਡ)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ਅੰਗਰੇਜ਼ੀ (ਫ਼ਰਾਂਸ)',
         'en_GB' => 'ਅੰਗਰੇਜ਼ੀ (ਯੂਨਾਈਟਡ ਕਿੰਗਡਮ)',
         'en_GD' => 'ਅੰਗਰੇਜ਼ੀ (ਗ੍ਰੇਨਾਡਾ)',
+        'en_GE' => 'ਅੰਗਰੇਜ਼ੀ (ਜਾਰਜੀਆ)',
         'en_GG' => 'ਅੰਗਰੇਜ਼ੀ (ਗਰਨਜੀ)',
         'en_GH' => 'ਅੰਗਰੇਜ਼ੀ (ਘਾਨਾ)',
         'en_GI' => 'ਅੰਗਰੇਜ਼ੀ (ਜਿਬਰਾਲਟਰ)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ਅੰਗਰੇਜ਼ੀ (ਇਟਲੀ)',
         'en_JE' => 'ਅੰਗਰੇਜ਼ੀ (ਜਰਸੀ)',
         'en_JM' => 'ਅੰਗਰੇਜ਼ੀ (ਜਮਾਇਕਾ)',
+        'en_JP' => 'ਅੰਗਰੇਜ਼ੀ (ਜਪਾਨ)',
         'en_KE' => 'ਅੰਗਰੇਜ਼ੀ (ਕੀਨੀਆ)',
         'en_KI' => 'ਅੰਗਰੇਜ਼ੀ (ਕਿਰਬਾਤੀ)',
         'en_KN' => 'ਅੰਗਰੇਜ਼ੀ (ਸੇਂਟ ਕਿਟਸ ਐਂਡ ਨੇਵਿਸ)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ਅੰਗਰੇਜ਼ੀ (ਸੇਂਟ ਲੂਸੀਆ)',
         'en_LR' => 'ਅੰਗਰੇਜ਼ੀ (ਲਾਈਬੀਰੀਆ)',
         'en_LS' => 'ਅੰਗਰੇਜ਼ੀ (ਲੇਸੋਥੋ)',
+        'en_LT' => 'ਅੰਗਰੇਜ਼ੀ (ਲਿਥੁਆਨੀਆ)',
+        'en_LV' => 'ਅੰਗਰੇਜ਼ੀ (ਲਾਤਵੀਆ)',
         'en_MG' => 'ਅੰਗਰੇਜ਼ੀ (ਮੈਡਾਗਾਸਕਰ)',
         'en_MH' => 'ਅੰਗਰੇਜ਼ੀ (ਮਾਰਸ਼ਲ ਟਾਪੂ)',
         'en_MO' => 'ਅੰਗਰੇਜ਼ੀ (ਮਕਾਉ ਐਸਏਆਰ ਚੀਨ)',
@@ -205,9 +212,10 @@
         'en_TT' => 'ਅੰਗਰੇਜ਼ੀ (ਟ੍ਰਿਨੀਡਾਡ ਅਤੇ ਟੋਬਾਗੋ)',
         'en_TV' => 'ਅੰਗਰੇਜ਼ੀ (ਟੁਵਾਲੂ)',
         'en_TZ' => 'ਅੰਗਰੇਜ਼ੀ (ਤਨਜ਼ਾਨੀਆ)',
+        'en_UA' => 'ਅੰਗਰੇਜ਼ੀ (ਯੂਕਰੇਨ)',
         'en_UG' => 'ਅੰਗਰੇਜ਼ੀ (ਯੂਗਾਂਡਾ)',
         'en_UM' => 'ਅੰਗਰੇਜ਼ੀ (ਯੂ.ਐੱਸ. ਦੂਰ-ਦੁਰਾਡੇ ਟਾਪੂ)',
-        'en_US' => 'ਅੰਗਰੇਜ਼ੀ (ਸੰਯੁਕਤ ਰਾਜ)',
+        'en_US' => 'ਅੰਗਰੇਜ਼ੀ (ਸੰਯੁਕਤ ਰਾਜ [ਅਮਰੀਕਾ])',
         'en_VC' => 'ਅੰਗਰੇਜ਼ੀ (ਸੇਂਟ ਵਿਨਸੈਂਟ ਐਂਡ ਗ੍ਰੇਨਾਡੀਨਸ)',
         'en_VG' => 'ਅੰਗਰੇਜ਼ੀ (ਬ੍ਰਿਟਿਸ਼ ਵਰਜਿਨ ਟਾਪੂ)',
         'en_VI' => 'ਅੰਗਰੇਜ਼ੀ (ਯੂ ਐੱਸ ਵਰਜਿਨ ਟਾਪੂ)',
@@ -242,7 +250,7 @@
         'es_PR' => 'ਸਪੇਨੀ (ਪਿਊਰਟੋ ਰਿਕੋ)',
         'es_PY' => 'ਸਪੇਨੀ (ਪੈਰਾਗਵੇ)',
         'es_SV' => 'ਸਪੇਨੀ (ਅਲ ਸਲਵਾਡੋਰ)',
-        'es_US' => 'ਸਪੇਨੀ (ਸੰਯੁਕਤ ਰਾਜ)',
+        'es_US' => 'ਸਪੇਨੀ (ਸੰਯੁਕਤ ਰਾਜ [ਅਮਰੀਕਾ])',
         'es_UY' => 'ਸਪੇਨੀ (ਉਰੂਗਵੇ)',
         'es_VE' => 'ਸਪੇਨੀ (ਵੇਨੇਜ਼ੂਏਲਾ)',
         'et' => 'ਇਸਟੋਨੀਆਈ',
@@ -391,6 +399,8 @@
         'ki' => 'ਕਿਕੂਯੂ',
         'ki_KE' => 'ਕਿਕੂਯੂ (ਕੀਨੀਆ)',
         'kk' => 'ਕਜ਼ਾਖ਼',
+        'kk_Arab' => 'ਕਜ਼ਾਖ਼ (ਅਰਬੀ)',
+        'kk_Arab_CN' => 'ਕਜ਼ਾਖ਼ (ਅਰਬੀ, ਚੀਨ)',
         'kk_Cyrl' => 'ਕਜ਼ਾਖ਼ (ਸਿਰਿਲਿਕ)',
         'kk_Cyrl_KZ' => 'ਕਜ਼ਾਖ਼ (ਸਿਰਿਲਿਕ, ਕਜ਼ਾਖਸਤਾਨ)',
         'kk_KZ' => 'ਕਜ਼ਾਖ਼ (ਕਜ਼ਾਖਸਤਾਨ)',
@@ -402,8 +412,8 @@
         'kn_IN' => 'ਕੰਨੜ (ਭਾਰਤ)',
         'ko' => 'ਕੋਰੀਆਈ',
         'ko_CN' => 'ਕੋਰੀਆਈ (ਚੀਨ)',
-        'ko_KP' => 'ਕੋਰੀਆਈ (ਉੱਤਰ ਕੋਰੀਆ)',
-        'ko_KR' => 'ਕੋਰੀਆਈ (ਦੱਖਣ ਕੋਰੀਆ)',
+        'ko_KP' => 'ਕੋਰੀਆਈ (ਉੱਤਰੀ ਕੋਰੀਆ)',
+        'ko_KR' => 'ਕੋਰੀਆਈ (ਦੱਖਣੀ ਕੋਰੀਆ)',
         'ks' => 'ਕਸ਼ਮੀਰੀ',
         'ks_Arab' => 'ਕਸ਼ਮੀਰੀ (ਅਰਬੀ)',
         'ks_Arab_IN' => 'ਕਸ਼ਮੀਰੀ (ਅਰਬੀ, ਭਾਰਤ)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'ਕਸ਼ਮੀਰੀ (ਦੇਵਨਾਗਰੀ, ਭਾਰਤ)',
         'ks_IN' => 'ਕਸ਼ਮੀਰੀ (ਭਾਰਤ)',
         'ku' => 'ਕੁਰਦਿਸ਼',
+        'ku_Latn' => 'ਕੁਰਦਿਸ਼ (ਲਾਤੀਨੀ)',
+        'ku_Latn_IQ' => 'ਕੁਰਦਿਸ਼ (ਲਾਤੀਨੀ, ਇਰਾਕ)',
+        'ku_Latn_SY' => 'ਕੁਰਦਿਸ਼ (ਲਾਤੀਨੀ, ਸੀਰੀਆ)',
+        'ku_Latn_TR' => 'ਕੁਰਦਿਸ਼ (ਲਾਤੀਨੀ, ਤੁਰਕੀ)',
+        'ku_SY' => 'ਕੁਰਦਿਸ਼ (ਸੀਰੀਆ)',
         'ku_TR' => 'ਕੁਰਦਿਸ਼ (ਤੁਰਕੀ)',
         'kw' => 'ਕੋਰਨਿਸ਼',
         'kw_GB' => 'ਕੋਰਨਿਸ਼ (ਯੂਨਾਈਟਡ ਕਿੰਗਡਮ)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pl.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbejdżański (cyrylica, Azerbejdżan)',
         'az_Latn' => 'azerbejdżański (łacińskie)',
         'az_Latn_AZ' => 'azerbejdżański (łacińskie, Azerbejdżan)',
+        'ba' => 'baszkirski',
+        'ba_RU' => 'baszkirski (Rosja)',
         'be' => 'białoruski',
         'be_BY' => 'białoruski (Białoruś)',
         'bg' => 'bułgarski',
@@ -125,6 +127,7 @@
         'en_DE' => 'angielski (Niemcy)',
         'en_DK' => 'angielski (Dania)',
         'en_DM' => 'angielski (Dominika)',
+        'en_EE' => 'angielski (Estonia)',
         'en_ER' => 'angielski (Erytrea)',
         'en_ES' => 'angielski (Hiszpania)',
         'en_FI' => 'angielski (Finlandia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'angielski (Francja)',
         'en_GB' => 'angielski (Wielka Brytania)',
         'en_GD' => 'angielski (Grenada)',
+        'en_GE' => 'angielski (Gruzja)',
         'en_GG' => 'angielski (Guernsey)',
         'en_GH' => 'angielski (Ghana)',
         'en_GI' => 'angielski (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'angielski (Włochy)',
         'en_JE' => 'angielski (Jersey)',
         'en_JM' => 'angielski (Jamajka)',
+        'en_JP' => 'angielski (Japonia)',
         'en_KE' => 'angielski (Kenia)',
         'en_KI' => 'angielski (Kiribati)',
         'en_KN' => 'angielski (Saint Kitts i Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'angielski (Saint Lucia)',
         'en_LR' => 'angielski (Liberia)',
         'en_LS' => 'angielski (Lesotho)',
+        'en_LT' => 'angielski (Litwa)',
+        'en_LV' => 'angielski (Łotwa)',
         'en_MG' => 'angielski (Madagaskar)',
         'en_MH' => 'angielski (Wyspy Marshalla)',
         'en_MO' => 'angielski (SRA Makau [Chiny])',
@@ -205,6 +212,7 @@
         'en_TT' => 'angielski (Trynidad i Tobago)',
         'en_TV' => 'angielski (Tuvalu)',
         'en_TZ' => 'angielski (Tanzania)',
+        'en_UA' => 'angielski (Ukraina)',
         'en_UG' => 'angielski (Uganda)',
         'en_UM' => 'angielski (Dalekie Wyspy Mniejsze Stanów Zjednoczonych)',
         'en_US' => 'angielski (Stany Zjednoczone)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuju',
         'ki_KE' => 'kikuju (Kenia)',
         'kk' => 'kazachski',
+        'kk_Arab' => 'kazachski (arabskie)',
+        'kk_Arab_CN' => 'kazachski (arabskie, Chiny)',
         'kk_Cyrl' => 'kazachski (cyrylica)',
         'kk_Cyrl_KZ' => 'kazachski (cyrylica, Kazachstan)',
         'kk_KZ' => 'kazachski (Kazachstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kaszmirski (dewanagari, Indie)',
         'ks_IN' => 'kaszmirski (Indie)',
         'ku' => 'kurdyjski',
+        'ku_Latn' => 'kurdyjski (łacińskie)',
+        'ku_Latn_IQ' => 'kurdyjski (łacińskie, Irak)',
+        'ku_Latn_SY' => 'kurdyjski (łacińskie, Syria)',
+        'ku_Latn_TR' => 'kurdyjski (łacińskie, Turcja)',
+        'ku_SY' => 'kurdyjski (Syria)',
         'ku_TR' => 'kurdyjski (Turcja)',
         'kw' => 'kornijski',
         'kw_GB' => 'kornijski (Wielka Brytania)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ps.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ps.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ps.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ps.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'اذربایجاني (سیریلیک, اذربايجان)',
         'az_Latn' => 'اذربایجاني (لاتين/لاتيني)',
         'az_Latn_AZ' => 'اذربایجاني (لاتين/لاتيني, اذربايجان)',
+        'ba' => 'باشکير',
+        'ba_RU' => 'باشکير (روسیه)',
         'be' => 'بېلاروسي',
         'be_BY' => 'بېلاروسي (بیلاروس)',
         'bg' => 'بلغاري',
@@ -125,6 +127,7 @@
         'en_DE' => 'انګليسي (المان)',
         'en_DK' => 'انګليسي (ډنمارک)',
         'en_DM' => 'انګليسي (دومینیکا)',
+        'en_EE' => 'انګليسي (استونیا)',
         'en_ER' => 'انګليسي (اریتره)',
         'en_ES' => 'انګليسي (هسپانیه)',
         'en_FI' => 'انګليسي (فنلینډ)',
@@ -134,6 +137,7 @@
         'en_FR' => 'انګليسي (فرانسه)',
         'en_GB' => 'انګليسي (برتانیه)',
         'en_GD' => 'انګليسي (ګرنادا)',
+        'en_GE' => 'انګليسي (گورجستان)',
         'en_GG' => 'انګليسي (ګرنسي)',
         'en_GH' => 'انګليسي (ګانا)',
         'en_GI' => 'انګليسي (جبل الطارق)',
@@ -152,6 +156,7 @@
         'en_IT' => 'انګليسي (ایټالیه)',
         'en_JE' => 'انګليسي (جرسی)',
         'en_JM' => 'انګليسي (جمیکا)',
+        'en_JP' => 'انګليسي (جاپان)',
         'en_KE' => 'انګليسي (کینیا)',
         'en_KI' => 'انګليسي (کیري باتي)',
         'en_KN' => 'انګليسي (سینټ کټس او نیویس)',
@@ -159,6 +164,8 @@
         'en_LC' => 'انګليسي (سینټ لوسیا)',
         'en_LR' => 'انګليسي (لايبيريا)',
         'en_LS' => 'انګليسي (لسوتو)',
+        'en_LT' => 'انګليسي (لیتوانیا)',
+        'en_LV' => 'انګليسي (ليتهويا)',
         'en_MG' => 'انګليسي (مدغاسکر)',
         'en_MH' => 'انګليسي (مارشل ټاپوګان)',
         'en_MO' => 'انګليسي (مکاو SAR چین)',
@@ -205,6 +212,7 @@
         'en_TT' => 'انګليسي (ټرينيډاډ او ټوباګو)',
         'en_TV' => 'انګليسي (توالیو)',
         'en_TZ' => 'انګليسي (تنزانیا)',
+        'en_UA' => 'انګليسي (اوکراین)',
         'en_UG' => 'انګليسي (یوګانډا)',
         'en_UM' => 'انګليسي (د متحده ایالاتو ټاپوګان)',
         'en_US' => 'انګليسي (متحده آيالات)',
@@ -391,6 +399,8 @@
         'ki' => 'ککوؤو',
         'ki_KE' => 'ککوؤو (کینیا)',
         'kk' => 'قازق',
+        'kk_Arab' => 'قازق (عربي)',
+        'kk_Arab_CN' => 'قازق (عربي, چین)',
         'kk_Cyrl' => 'قازق (سیریلیک)',
         'kk_Cyrl_KZ' => 'قازق (سیریلیک, قزاقستان)',
         'kk_KZ' => 'قازق (قزاقستان)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'کشمیري (دیواناګري, هند)',
         'ks_IN' => 'کشمیري (هند)',
         'ku' => 'کردي',
+        'ku_Latn' => 'کردي (لاتين/لاتيني)',
+        'ku_Latn_IQ' => 'کردي (لاتين/لاتيني, عراق)',
+        'ku_Latn_SY' => 'کردي (لاتين/لاتيني, سوریه)',
+        'ku_Latn_TR' => 'کردي (لاتين/لاتيني, ترکي)',
+        'ku_SY' => 'کردي (سوریه)',
         'ku_TR' => 'کردي (ترکي)',
         'kw' => 'کورنيشي',
         'kw_GB' => 'کورنيشي (برتانیه)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pt.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaijano (cirílico, Azerbaijão)',
         'az_Latn' => 'azerbaijano (latim)',
         'az_Latn_AZ' => 'azerbaijano (latim, Azerbaijão)',
+        'ba' => 'bashkir',
+        'ba_RU' => 'bashkir (Rússia)',
         'be' => 'bielorrusso',
         'be_BY' => 'bielorrusso (Bielorrússia)',
         'bg' => 'búlgaro',
@@ -125,6 +127,7 @@
         'en_DE' => 'inglês (Alemanha)',
         'en_DK' => 'inglês (Dinamarca)',
         'en_DM' => 'inglês (Dominica)',
+        'en_EE' => 'inglês (Estônia)',
         'en_ER' => 'inglês (Eritreia)',
         'en_ES' => 'inglês (Espanha)',
         'en_FI' => 'inglês (Finlândia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'inglês (França)',
         'en_GB' => 'inglês (Reino Unido)',
         'en_GD' => 'inglês (Granada)',
+        'en_GE' => 'inglês (Geórgia)',
         'en_GG' => 'inglês (Guernsey)',
         'en_GH' => 'inglês (Gana)',
         'en_GI' => 'inglês (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'inglês (Itália)',
         'en_JE' => 'inglês (Jersey)',
         'en_JM' => 'inglês (Jamaica)',
+        'en_JP' => 'inglês (Japão)',
         'en_KE' => 'inglês (Quênia)',
         'en_KI' => 'inglês (Quiribati)',
         'en_KN' => 'inglês (São Cristóvão e Névis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'inglês (Santa Lúcia)',
         'en_LR' => 'inglês (Libéria)',
         'en_LS' => 'inglês (Lesoto)',
+        'en_LT' => 'inglês (Lituânia)',
+        'en_LV' => 'inglês (Letônia)',
         'en_MG' => 'inglês (Madagascar)',
         'en_MH' => 'inglês (Ilhas Marshall)',
         'en_MO' => 'inglês (Macau, RAE da China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'inglês (Trinidad e Tobago)',
         'en_TV' => 'inglês (Tuvalu)',
         'en_TZ' => 'inglês (Tanzânia)',
+        'en_UA' => 'inglês (Ucrânia)',
         'en_UG' => 'inglês (Uganda)',
         'en_UM' => 'inglês (Ilhas Menores Distantes dos EUA)',
         'en_US' => 'inglês (Estados Unidos)',
@@ -354,10 +362,10 @@
         'ha_NG' => 'hauçá (Nigéria)',
         'he' => 'hebraico',
         'he_IL' => 'hebraico (Israel)',
-        'hi' => 'híndi',
-        'hi_IN' => 'híndi (Índia)',
-        'hi_Latn' => 'híndi (latim)',
-        'hi_Latn_IN' => 'híndi (latim, Índia)',
+        'hi' => 'hindi',
+        'hi_IN' => 'hindi (Índia)',
+        'hi_Latn' => 'hindi (latim)',
+        'hi_Latn_IN' => 'hindi (latim, Índia)',
         'hr' => 'croata',
         'hr_BA' => 'croata (Bósnia e Herzegovina)',
         'hr_HR' => 'croata (Croácia)',
@@ -391,6 +399,8 @@
         'ki' => 'quicuio',
         'ki_KE' => 'quicuio (Quênia)',
         'kk' => 'cazaque',
+        'kk_Arab' => 'cazaque (árabe)',
+        'kk_Arab_CN' => 'cazaque (árabe, China)',
         'kk_Cyrl' => 'cazaque (cirílico)',
         'kk_Cyrl_KZ' => 'cazaque (cirílico, Cazaquistão)',
         'kk_KZ' => 'cazaque (Cazaquistão)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'caxemira (devanágari, Índia)',
         'ks_IN' => 'caxemira (Índia)',
         'ku' => 'curdo',
+        'ku_Latn' => 'curdo (latim)',
+        'ku_Latn_IQ' => 'curdo (latim, Iraque)',
+        'ku_Latn_SY' => 'curdo (latim, Síria)',
+        'ku_Latn_TR' => 'curdo (latim, Turquia)',
+        'ku_SY' => 'curdo (Síria)',
         'ku_TR' => 'curdo (Turquia)',
         'kw' => 'córnico',
         'kw_GB' => 'córnico (Reino Unido)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pt_PT.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pt_PT.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pt_PT.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/pt_PT.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,6 +25,7 @@
         'en_CX' => 'inglês (Ilha do Natal)',
         'en_CZ' => 'inglês (Chéquia)',
         'en_DM' => 'inglês (Domínica)',
+        'en_EE' => 'inglês (Estónia)',
         'en_FK' => 'inglês (Ilhas Falkland)',
         'en_GG' => 'inglês (Guernesey)',
         'en_GU' => 'inglês (Guame)',
@@ -32,6 +33,7 @@
         'en_KI' => 'inglês (Quiribáti)',
         'en_KN' => 'inglês (São Cristóvão e Neves)',
         'en_KY' => 'inglês (Ilhas Caimão)',
+        'en_LV' => 'inglês (Letónia)',
         'en_MG' => 'inglês (Madagáscar)',
         'en_MS' => 'inglês (Monserrate)',
         'en_MU' => 'inglês (Maurícia)',
@@ -67,10 +69,6 @@
         'ha_GH' => 'haúça (Gana)',
         'ha_NE' => 'haúça (Níger)',
         'ha_NG' => 'haúça (Nigéria)',
-        'hi' => 'hindi',
-        'hi_IN' => 'hindi (Índia)',
-        'hi_Latn' => 'hindi (latim)',
-        'hi_Latn_IN' => 'hindi (latim, Índia)',
         'hy' => 'arménio',
         'hy_AM' => 'arménio (Arménia)',
         'ie_EE' => 'interlingue (Estónia)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/qu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/qu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/qu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/qu.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Azerbaiyano Simi (Cirilico, Azerbaiyán)',
         'az_Latn' => 'Azerbaiyano Simi (Latin Simi)',
         'az_Latn_AZ' => 'Azerbaiyano Simi (Latin Simi, Azerbaiyán)',
+        'ba' => 'Baskir Simi',
+        'ba_RU' => 'Baskir Simi (Rusia)',
         'be' => 'Bielorruso Simi',
         'be_BY' => 'Bielorruso Simi (Belarús)',
         'bg' => 'Bulgaro Simi',
@@ -125,6 +127,7 @@
         'en_DE' => 'Ingles Simi (Alemania)',
         'en_DK' => 'Ingles Simi (Dinamarca)',
         'en_DM' => 'Ingles Simi (Dominica)',
+        'en_EE' => 'Ingles Simi (Estonia)',
         'en_ER' => 'Ingles Simi (Eritrea)',
         'en_ES' => 'Ingles Simi (España)',
         'en_FI' => 'Ingles Simi (Finlandia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Ingles Simi (Francia)',
         'en_GB' => 'Ingles Simi (Reino Unido)',
         'en_GD' => 'Ingles Simi (Granada)',
+        'en_GE' => 'Ingles Simi (Georgia)',
         'en_GG' => 'Ingles Simi (Guernesey)',
         'en_GH' => 'Ingles Simi (Ghana)',
         'en_GI' => 'Ingles Simi (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Ingles Simi (Italia)',
         'en_JE' => 'Ingles Simi (Jersey)',
         'en_JM' => 'Ingles Simi (Jamaica)',
+        'en_JP' => 'Ingles Simi (Japón)',
         'en_KE' => 'Ingles Simi (Kenia)',
         'en_KI' => 'Ingles Simi (Kiribati)',
         'en_KN' => 'Ingles Simi (San Cristóbal y Nieves)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Ingles Simi (Santa Lucia)',
         'en_LR' => 'Ingles Simi (Liberia)',
         'en_LS' => 'Ingles Simi (Lesoto)',
+        'en_LT' => 'Ingles Simi (Lituania)',
+        'en_LV' => 'Ingles Simi (Letonia)',
         'en_MG' => 'Ingles Simi (Madagascar)',
         'en_MH' => 'Ingles Simi (Islas Marshall)',
         'en_MO' => 'Ingles Simi (Macao RAE China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Ingles Simi (Trinidad y Tobago)',
         'en_TV' => 'Ingles Simi (Tuvalu)',
         'en_TZ' => 'Ingles Simi (Tanzania)',
+        'en_UA' => 'Ingles Simi (Ucrania)',
         'en_UG' => 'Ingles Simi (Uganda)',
         'en_UM' => 'Ingles Simi (Islas menores alejadas de los EE.UU.)',
         'en_US' => 'Ingles Simi (Estados Unidos)',
@@ -369,6 +377,8 @@
         'ia_001' => 'Interlingua Simi (Pacha)',
         'id' => 'Indonesio Simi',
         'id_ID' => 'Indonesio Simi (Indonesia)',
+        'ie' => 'Interlingue Simi',
+        'ie_EE' => 'Interlingue Simi (Estonia)',
         'ig' => 'Igbo Simi',
         'ig_NG' => 'Igbo Simi (Nigeria)',
         'ii' => 'Yi Simi',
@@ -389,6 +399,8 @@
         'ki' => 'Kikuyu Simi',
         'ki_KE' => 'Kikuyu Simi (Kenia)',
         'kk' => 'Kazajo Simi',
+        'kk_Arab' => 'Kazajo Simi (Arabe Simi)',
+        'kk_Arab_CN' => 'Kazajo Simi (Arabe Simi, China)',
         'kk_Cyrl' => 'Kazajo Simi (Cirilico)',
         'kk_Cyrl_KZ' => 'Kazajo Simi (Cirilico, Kazajistán)',
         'kk_KZ' => 'Kazajo Simi (Kazajistán)',
@@ -409,6 +421,11 @@
         'ks_Deva_IN' => 'Cachemir Simi (Devanagari, India)',
         'ks_IN' => 'Cachemir Simi (India)',
         'ku' => 'Kurdo Simi',
+        'ku_Latn' => 'Kurdo Simi (Latin Simi)',
+        'ku_Latn_IQ' => 'Kurdo Simi (Latin Simi, Irak)',
+        'ku_Latn_SY' => 'Kurdo Simi (Latin Simi, Siria)',
+        'ku_Latn_TR' => 'Kurdo Simi (Latin Simi, Turquía)',
+        'ku_SY' => 'Kurdo Simi (Siria)',
         'ku_TR' => 'Kurdo Simi (Turquía)',
         'kw' => 'Córnico Simi',
         'kw_GB' => 'Córnico Simi (Reino Unido)',
@@ -642,6 +659,8 @@
         'yo' => 'Yoruba Simi',
         'yo_BJ' => 'Yoruba Simi (Benín)',
         'yo_NG' => 'Yoruba Simi (Nigeria)',
+        'za' => 'Zhuang',
+        'za_CN' => 'Zhuang (China)',
         'zh' => 'Chino Simi',
         'zh_CN' => 'Chino Simi (China)',
         'zh_HK' => 'Chino Simi (Hong Kong RAE China)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rm.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
         'ar_MR' => 'arab (Mauretania)',
         'ar_OM' => 'arab (Oman)',
         'ar_PS' => 'arab (Territori Palestinais)',
-        'ar_QA' => 'arab (Katar)',
+        'ar_QA' => 'arab (Qatar)',
         'ar_SA' => 'arab (Arabia Saudita)',
         'ar_SD' => 'arab (Sudan)',
         'ar_SO' => 'arab (Somalia)',
@@ -40,21 +40,23 @@
         'ar_YE' => 'arab (Jemen)',
         'as' => 'assami',
         'as_IN' => 'assami (India)',
-        'az' => 'aserbeidschanic',
-        'az_AZ' => 'aserbeidschanic (Aserbaidschan)',
-        'az_Cyrl' => 'aserbeidschanic (cirillic)',
-        'az_Cyrl_AZ' => 'aserbeidschanic (cirillic, Aserbaidschan)',
-        'az_Latn' => 'aserbeidschanic (latin)',
-        'az_Latn_AZ' => 'aserbeidschanic (latin, Aserbaidschan)',
-        'be' => 'bieloruss',
-        'be_BY' => 'bieloruss (Bielorussia)',
+        'az' => 'lingua aserbaidschana',
+        'az_AZ' => 'lingua aserbaidschana (Aserbaidschan)',
+        'az_Cyrl' => 'lingua aserbaidschana (cirillic)',
+        'az_Cyrl_AZ' => 'lingua aserbaidschana (cirillic, Aserbaidschan)',
+        'az_Latn' => 'lingua aserbaidschana (latin)',
+        'az_Latn_AZ' => 'lingua aserbaidschana (latin, Aserbaidschan)',
+        'ba' => 'baschkir',
+        'ba_RU' => 'baschkir (Russia)',
+        'be' => 'lingua bielorussa',
+        'be_BY' => 'lingua bielorussa (Belarus)',
         'bg' => 'bulgar',
         'bg_BG' => 'bulgar (Bulgaria)',
         'bm' => 'bambara',
         'bm_ML' => 'bambara (Mali)',
-        'bn' => 'bengal',
-        'bn_BD' => 'bengal (Bangladesch)',
-        'bn_IN' => 'bengal (India)',
+        'bn' => 'lingua bengala',
+        'bn_BD' => 'lingua bengala (Bangladesch)',
+        'bn_IN' => 'lingua bengala (India)',
         'bo' => 'tibetan',
         'bo_CN' => 'tibetan (China)',
         'bo_IN' => 'tibetan (India)',
@@ -77,8 +79,8 @@
         'cs_CZ' => 'tschec (Tschechia)',
         'cv' => 'tschuvasch',
         'cv_RU' => 'tschuvasch (Russia)',
-        'cy' => 'kimric',
-        'cy_GB' => 'kimric (Reginavel Unì)',
+        'cy' => 'valisic',
+        'cy_GB' => 'valisic (Reginavel Unì)',
         'da' => 'danais',
         'da_DK' => 'danais (Danemarc)',
         'da_GL' => 'danais (Grönlanda)',
@@ -91,7 +93,7 @@
         'de_LI' => 'tudestg (Liechtenstein)',
         'de_LU' => 'tudestg (Luxemburg)',
         'dz' => 'dzongkha',
-        'dz_BT' => 'dzongkha (Bhutan)',
+        'dz_BT' => 'dzongkha (Butan)',
         'ee' => 'ewe',
         'ee_GH' => 'ewe (Ghana)',
         'ee_TG' => 'ewe (Togo)',
@@ -112,7 +114,7 @@
         'en_BI' => 'englais (Burundi)',
         'en_BM' => 'englais (Bermudas)',
         'en_BS' => 'englais (Bahamas)',
-        'en_BW' => 'englais (Botswana)',
+        'en_BW' => 'englais (Botsuana)',
         'en_BZ' => 'englais (Belize)',
         'en_CA' => 'englais (Canada)',
         'en_CC' => 'englais (Inslas Cocos)',
@@ -125,15 +127,17 @@
         'en_DE' => 'englais (Germania)',
         'en_DK' => 'englais (Danemarc)',
         'en_DM' => 'englais (Dominica)',
+        'en_EE' => 'englais (Estonia)',
         'en_ER' => 'englais (Eritrea)',
         'en_ES' => 'englais (Spagna)',
         'en_FI' => 'englais (Finlanda)',
         'en_FJ' => 'englais (Fidschi)',
-        'en_FK' => 'englais (Inslas dal Falkland)',
+        'en_FK' => 'englais (Inslas Falkland)',
         'en_FM' => 'englais (Micronesia)',
         'en_FR' => 'englais (Frantscha)',
         'en_GB' => 'englais (Reginavel Unì)',
         'en_GD' => 'englais (Grenada)',
+        'en_GE' => 'englais (Georgia)',
         'en_GG' => 'englais (Guernsey)',
         'en_GH' => 'englais (Ghana)',
         'en_GI' => 'englais (Gibraltar)',
@@ -141,23 +145,27 @@
         'en_GS' => 'englais (Georgia dal Sid e las Inslas Sandwich dal Sid)',
         'en_GU' => 'englais (Guam)',
         'en_GY' => 'englais (Guyana)',
-        'en_HK' => 'englais (Regiun d’administraziun speziala da Hongkong, China)',
+        'en_HK' => 'englais (Regiun d’administraziun speziala Hongkong, China)',
         'en_HU' => 'englais (Ungaria)',
         'en_ID' => 'englais (Indonesia)',
         'en_IE' => 'englais (Irlanda)',
         'en_IL' => 'englais (Israel)',
         'en_IM' => 'englais (Insla da Man)',
         'en_IN' => 'englais (India)',
+        'en_IO' => 'englais (Territori Britannic da l’Ocean Indic)',
         'en_IT' => 'englais (Italia)',
         'en_JE' => 'englais (Jersey)',
         'en_JM' => 'englais (Giamaica)',
+        'en_JP' => 'englais (Giapun)',
         'en_KE' => 'englais (Kenia)',
         'en_KI' => 'englais (Kiribati)',
-        'en_KN' => 'englais (Saint Kitts e Nevis)',
+        'en_KN' => 'englais (Son Cristof e Nevis)',
         'en_KY' => 'englais (Inslas Cayman)',
-        'en_LC' => 'englais (Saint Lucia)',
+        'en_LC' => 'englais (Sontga Lucia)',
         'en_LR' => 'englais (Liberia)',
         'en_LS' => 'englais (Lesotho)',
+        'en_LT' => 'englais (Lituania)',
+        'en_LV' => 'englais (Lettonia)',
         'en_MG' => 'englais (Madagascar)',
         'en_MH' => 'englais (Inslas da Marshall)',
         'en_MO' => 'englais (Regiun d’administraziun speziala Macao, China)',
@@ -165,7 +173,7 @@
         'en_MS' => 'englais (Montserrat)',
         'en_MT' => 'englais (Malta)',
         'en_MU' => 'englais (Mauritius)',
-        'en_MV' => 'englais (Maldivas)',
+        'en_MV' => 'englais (Maledivas)',
         'en_MW' => 'englais (Malawi)',
         'en_MY' => 'englais (Malaisia)',
         'en_NA' => 'englais (Namibia)',
@@ -186,7 +194,7 @@
         'en_PW' => 'englais (Palau)',
         'en_RO' => 'englais (Rumenia)',
         'en_RW' => 'englais (Ruanda)',
-        'en_SB' => 'englais (Inslas Salomonas)',
+        'en_SB' => 'englais (Inslas da Salomon)',
         'en_SC' => 'englais (Seychellas)',
         'en_SD' => 'englais (Sudan)',
         'en_SE' => 'englais (Svezia)',
@@ -204,10 +212,11 @@
         'en_TT' => 'englais (Trinidad e Tobago)',
         'en_TV' => 'englais (Tuvalu)',
         'en_TZ' => 'englais (Tansania)',
+        'en_UA' => 'englais (Ucraina)',
         'en_UG' => 'englais (Uganda)',
         'en_UM' => 'englais (Inslas Pitschnas Perifericas dals Stadis Unids da l’America)',
         'en_US' => 'englais (Stadis Unids da l’America)',
-        'en_VC' => 'englais (Saint Vincent e las Grenadinas)',
+        'en_VC' => 'englais (Son Vincenz e las Grenadinas)',
         'en_VG' => 'englais (Inslas Virginas Britannicas)',
         'en_VI' => 'englais (Inslas Virginas Americanas)',
         'en_VU' => 'englais (Vanuatu)',
@@ -218,8 +227,8 @@
         'eo' => 'esperanto',
         'eo_001' => 'esperanto (mund)',
         'es' => 'spagnol',
-        'es_419' => 'spagnol (America Latina)',
-        'es_AR' => 'spagnol (Argentinia)',
+        'es_419' => 'spagnol (America latina)',
+        'es_AR' => 'spagnol (Argentina)',
         'es_BO' => 'spagnol (Bolivia)',
         'es_BR' => 'spagnol (Brasilia)',
         'es_BZ' => 'spagnol (Belize)',
@@ -242,16 +251,29 @@
         'es_PY' => 'spagnol (Paraguai)',
         'es_SV' => 'spagnol (El Salvador)',
         'es_US' => 'spagnol (Stadis Unids da l’America)',
-        'es_UY' => 'spagnol (Uruguay)',
+        'es_UY' => 'spagnol (Uruguai)',
         'es_VE' => 'spagnol (Venezuela)',
         'et' => 'eston',
         'et_EE' => 'eston (Estonia)',
         'eu' => 'basc',
         'eu_ES' => 'basc (Spagna)',
         'fa' => 'persian',
-        'fa_AF' => 'persian (Afghanistan)',
+        'fa_AF' => 'persian (Afganistan)',
         'fa_IR' => 'persian (Iran)',
         'ff' => 'fulah',
+        'ff_Adlm' => 'fulah (adlam)',
+        'ff_Adlm_BF' => 'fulah (adlam, Burkina Faso)',
+        'ff_Adlm_CM' => 'fulah (adlam, Camerun)',
+        'ff_Adlm_GH' => 'fulah (adlam, Ghana)',
+        'ff_Adlm_GM' => 'fulah (adlam, Gambia)',
+        'ff_Adlm_GN' => 'fulah (adlam, Guinea)',
+        'ff_Adlm_GW' => 'fulah (adlam, Guinea-Bissau)',
+        'ff_Adlm_LR' => 'fulah (adlam, Liberia)',
+        'ff_Adlm_MR' => 'fulah (adlam, Mauretania)',
+        'ff_Adlm_NE' => 'fulah (adlam, Niger)',
+        'ff_Adlm_NG' => 'fulah (adlam, Nigeria)',
+        'ff_Adlm_SL' => 'fulah (adlam, Sierra Leone)',
+        'ff_Adlm_SN' => 'fulah (adlam, Senegal)',
         'ff_CM' => 'fulah (Camerun)',
         'ff_GN' => 'fulah (Guinea)',
         'ff_Latn' => 'fulah (latin)',
@@ -281,9 +303,9 @@
         'fr_BJ' => 'franzos (Benin)',
         'fr_BL' => 'franzos (Son Barthélemy)',
         'fr_CA' => 'franzos (Canada)',
-        'fr_CD' => 'franzos (Congo - Kinshasa)',
+        'fr_CD' => 'franzos (Congo-Kinshasa)',
         'fr_CF' => 'franzos (Republica Centralafricana)',
-        'fr_CG' => 'franzos (Congo)',
+        'fr_CG' => 'franzos (Congo-Brazzaville)',
         'fr_CH' => 'franzos (Svizra)',
         'fr_CI' => 'franzos (Costa d’Ivur)',
         'fr_CM' => 'franzos (Camerun)',
@@ -293,7 +315,7 @@
         'fr_GA' => 'franzos (Gabun)',
         'fr_GF' => 'franzos (Guyana Franzosa)',
         'fr_GN' => 'franzos (Guinea)',
-        'fr_GP' => 'franzos (Guadeloupe)',
+        'fr_GP' => 'franzos (Guadalupa)',
         'fr_GQ' => 'franzos (Guinea Equatoriala)',
         'fr_HT' => 'franzos (Haiti)',
         'fr_KM' => 'franzos (Comoras)',
@@ -303,7 +325,7 @@
         'fr_MF' => 'franzos (Saint Martin)',
         'fr_MG' => 'franzos (Madagascar)',
         'fr_ML' => 'franzos (Mali)',
-        'fr_MQ' => 'franzos (Martinique)',
+        'fr_MQ' => 'franzos (Martinica)',
         'fr_MR' => 'franzos (Mauretania)',
         'fr_MU' => 'franzos (Mauritius)',
         'fr_NC' => 'franzos (Nova Caledonia)',
@@ -319,25 +341,25 @@
         'fr_TG' => 'franzos (Togo)',
         'fr_TN' => 'franzos (Tunesia)',
         'fr_VU' => 'franzos (Vanuatu)',
-        'fr_WF' => 'franzos (Wallis & Futuna)',
+        'fr_WF' => 'franzos (Wallis e Futuna)',
         'fr_YT' => 'franzos (Mayotte)',
-        'fy' => 'fris',
-        'fy_NL' => 'fris (Pajais Bass)',
+        'fy' => 'fris occidental',
+        'fy_NL' => 'fris occidental (Pajais Bass)',
         'ga' => 'irlandais',
         'ga_GB' => 'irlandais (Reginavel Unì)',
         'ga_IE' => 'irlandais (Irlanda)',
         'gd' => 'gaelic scot',
         'gd_GB' => 'gaelic scot (Reginavel Unì)',
-        'gl' => 'galician',
-        'gl_ES' => 'galician (Spagna)',
+        'gl' => 'galizian',
+        'gl_ES' => 'galizian (Spagna)',
         'gu' => 'gujarati',
         'gu_IN' => 'gujarati (India)',
         'gv' => 'manx',
         'gv_IM' => 'manx (Insla da Man)',
-        'ha' => 'haussa',
-        'ha_GH' => 'haussa (Ghana)',
-        'ha_NE' => 'haussa (Niger)',
-        'ha_NG' => 'haussa (Nigeria)',
+        'ha' => 'hausa',
+        'ha_GH' => 'hausa (Ghana)',
+        'ha_NE' => 'hausa (Niger)',
+        'ha_NG' => 'hausa (Nigeria)',
         'he' => 'ebraic',
         'he_IL' => 'ebraic (Israel)',
         'hi' => 'hindi',
@@ -366,7 +388,7 @@
         'it' => 'talian',
         'it_CH' => 'talian (Svizra)',
         'it_IT' => 'talian (Italia)',
-        'it_SM' => 'talian (San Marino)',
+        'it_SM' => 'talian (Son Marin)',
         'it_VA' => 'talian (Citad dal Vatican)',
         'ja' => 'giapunais',
         'ja_JP' => 'giapunais (Giapun)',
@@ -376,14 +398,16 @@
         'ka_GE' => 'georgian (Georgia)',
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenia)',
-        'kk' => 'casac',
-        'kk_Cyrl' => 'casac (cirillic)',
-        'kk_Cyrl_KZ' => 'casac (cirillic, Kasachstan)',
-        'kk_KZ' => 'casac (Kasachstan)',
+        'kk' => 'kasac',
+        'kk_Arab' => 'kasac (arab)',
+        'kk_Arab_CN' => 'kasac (arab, China)',
+        'kk_Cyrl' => 'kasac (cirillic)',
+        'kk_Cyrl_KZ' => 'kasac (cirillic, Kasachstan)',
+        'kk_KZ' => 'kasac (Kasachstan)',
         'kl' => 'grönlandais',
         'kl_GL' => 'grönlandais (Grönlanda)',
-        'km' => 'cambodschan',
-        'km_KH' => 'cambodschan (Cambodscha)',
+        'km' => 'khmer',
+        'km_KH' => 'khmer (Cambodscha)',
         'kn' => 'kannada',
         'kn_IN' => 'kannada (India)',
         'ko' => 'corean',
@@ -397,38 +421,43 @@
         'ks_Deva_IN' => 'kashmiri (devanagari, India)',
         'ks_IN' => 'kashmiri (India)',
         'ku' => 'curd',
+        'ku_Latn' => 'curd (latin)',
+        'ku_Latn_IQ' => 'curd (latin, Irac)',
+        'ku_Latn_SY' => 'curd (latin, Siria)',
+        'ku_Latn_TR' => 'curd (latin, Tirchia)',
+        'ku_SY' => 'curd (Siria)',
         'ku_TR' => 'curd (Tirchia)',
         'kw' => 'cornic',
         'kw_GB' => 'cornic (Reginavel Unì)',
         'ky' => 'kirghis',
-        'ky_KG' => 'kirghis (Kirgisistan)',
+        'ky_KG' => 'kirghis (Kirghistan)',
         'lb' => 'luxemburgais',
         'lb_LU' => 'luxemburgais (Luxemburg)',
         'lg' => 'ganda',
         'lg_UG' => 'ganda (Uganda)',
         'ln' => 'lingala',
         'ln_AO' => 'lingala (Angola)',
-        'ln_CD' => 'lingala (Congo - Kinshasa)',
+        'ln_CD' => 'lingala (Congo-Kinshasa)',
         'ln_CF' => 'lingala (Republica Centralafricana)',
-        'ln_CG' => 'lingala (Congo)',
+        'ln_CG' => 'lingala (Congo-Brazzaville)',
         'lo' => 'laot',
         'lo_LA' => 'laot (Laos)',
         'lt' => 'lituan',
         'lt_LT' => 'lituan (Lituania)',
         'lu' => 'luba-katanga',
-        'lu_CD' => 'luba-katanga (Congo - Kinshasa)',
+        'lu_CD' => 'luba-katanga (Congo-Kinshasa)',
         'lv' => 'letton',
         'lv_LV' => 'letton (Lettonia)',
         'mg' => 'malagassi',
         'mg_MG' => 'malagassi (Madagascar)',
-        'mi' => 'maori',
-        'mi_NZ' => 'maori (Nova Zelanda)',
+        'mi' => 'māori',
+        'mi_NZ' => 'māori (Nova Zelanda)',
         'mk' => 'macedon',
         'mk_MK' => 'macedon (Macedonia dal Nord)',
         'ml' => 'malayalam',
         'ml_IN' => 'malayalam (India)',
-        'mn' => 'mongolic',
-        'mn_MN' => 'mongolic (Mongolia)',
+        'mn' => 'mongol',
+        'mn_MN' => 'mongol (Mongolia)',
         'mr' => 'marathi',
         'mr_IN' => 'marathi (India)',
         'ms' => 'malaic',
@@ -448,14 +477,14 @@
         'ne' => 'nepalais',
         'ne_IN' => 'nepalais (India)',
         'ne_NP' => 'nepalais (Nepal)',
-        'nl' => 'ollandais',
-        'nl_AW' => 'ollandais (Aruba)',
-        'nl_BE' => 'ollandais (Belgia)',
-        'nl_BQ' => 'ollandais (Antillas Ollandaisas)',
-        'nl_CW' => 'ollandais (Curaçao)',
-        'nl_NL' => 'ollandais (Pajais Bass)',
-        'nl_SR' => 'ollandais (Surinam)',
-        'nl_SX' => 'ollandais (Sint Maarten)',
+        'nl' => 'neerlandais',
+        'nl_AW' => 'neerlandais (Aruba)',
+        'nl_BE' => 'neerlandais (Belgia)',
+        'nl_BQ' => 'neerlandais (Pajais Bass caribics)',
+        'nl_CW' => 'neerlandais (Curaçao)',
+        'nl_NL' => 'neerlandais (Pajais Bass)',
+        'nl_SR' => 'neerlandais (Surinam)',
+        'nl_SX' => 'neerlandais (Sint Maarten)',
         'nn' => 'norvegiais nynorsk',
         'nn_NO' => 'norvegiais nynorsk (Norvegia)',
         'no' => 'norvegiais',
@@ -481,7 +510,7 @@
         'pl' => 'polac',
         'pl_PL' => 'polac (Pologna)',
         'ps' => 'paschto',
-        'ps_AF' => 'paschto (Afghanistan)',
+        'ps_AF' => 'paschto (Afganistan)',
         'ps_PK' => 'paschto (Pakistan)',
         'pt' => 'portugais',
         'pt_AO' => 'portugais (Angola)',
@@ -494,7 +523,7 @@
         'pt_MO' => 'portugais (Regiun d’administraziun speziala Macao, China)',
         'pt_MZ' => 'portugais (Mosambic)',
         'pt_PT' => 'portugais (Portugal)',
-        'pt_ST' => 'portugais (São Tomé & Príncipe)',
+        'pt_ST' => 'portugais (São Tomé e Príncipe)',
         'pt_TL' => 'portugais (Timor da l’Ost)',
         'qu' => 'quechua',
         'qu_BO' => 'quechua (Bolivia)',
@@ -508,8 +537,8 @@
         'ro_MD' => 'rumen (Moldavia)',
         'ro_RO' => 'rumen (Rumenia)',
         'ru' => 'russ',
-        'ru_BY' => 'russ (Bielorussia)',
-        'ru_KG' => 'russ (Kirgisistan)',
+        'ru_BY' => 'russ (Belarus)',
+        'ru_KG' => 'russ (Kirghistan)',
         'ru_KZ' => 'russ (Kasachstan)',
         'ru_MD' => 'russ (Moldavia)',
         'ru_RU' => 'russ (Russia)',
@@ -574,11 +603,11 @@
         'sv_AX' => 'svedais (Inslas Aland)',
         'sv_FI' => 'svedais (Finlanda)',
         'sv_SE' => 'svedais (Svezia)',
-        'sw' => 'suahili',
-        'sw_CD' => 'suahili (Congo - Kinshasa)',
-        'sw_KE' => 'suahili (Kenia)',
-        'sw_TZ' => 'suahili (Tansania)',
-        'sw_UG' => 'suahili (Uganda)',
+        'sw' => 'suaheli',
+        'sw_CD' => 'suaheli (Congo-Kinshasa)',
+        'sw_KE' => 'suaheli (Kenia)',
+        'sw_TZ' => 'suaheli (Tansania)',
+        'sw_UG' => 'suaheli (Uganda)',
         'ta' => 'tamil',
         'ta_IN' => 'tamil (India)',
         'ta_LK' => 'tamil (Sri Lanka)',
@@ -586,8 +615,8 @@
         'ta_SG' => 'tamil (Singapur)',
         'te' => 'telugu',
         'te_IN' => 'telugu (India)',
-        'tg' => 'tadjik',
-        'tg_TJ' => 'tadjik (Tadschikistan)',
+        'tg' => 'tadschic',
+        'tg_TJ' => 'tadschic (Tadschikistan)',
         'th' => 'tailandais',
         'th_TH' => 'tailandais (Tailanda)',
         'ti' => 'tigrinya',
@@ -598,7 +627,7 @@
         'tl' => 'tagalog',
         'tl_PH' => 'tagalog (Filippinas)',
         'tn' => 'tswana',
-        'tn_BW' => 'tswana (Botswana)',
+        'tn_BW' => 'tswana (Botsuana)',
         'tn_ZA' => 'tswana (Africa dal Sid)',
         'to' => 'tonga',
         'to_TO' => 'tonga (Tonga)',
@@ -615,9 +644,9 @@
         'ur_IN' => 'urdu (India)',
         'ur_PK' => 'urdu (Pakistan)',
         'uz' => 'usbec',
-        'uz_AF' => 'usbec (Afghanistan)',
+        'uz_AF' => 'usbec (Afganistan)',
         'uz_Arab' => 'usbec (arab)',
-        'uz_Arab_AF' => 'usbec (arab, Afghanistan)',
+        'uz_Arab_AF' => 'usbec (arab, Afganistan)',
         'uz_Cyrl' => 'usbec (cirillic)',
         'uz_Cyrl_UZ' => 'usbec (cirillic, Usbekistan)',
         'uz_Latn' => 'usbec (latin)',
@@ -638,15 +667,15 @@
         'za_CN' => 'zhuang (China)',
         'zh' => 'chinais',
         'zh_CN' => 'chinais (China)',
-        'zh_HK' => 'chinais (Regiun d’administraziun speziala da Hongkong, China)',
+        'zh_HK' => 'chinais (Regiun d’administraziun speziala Hongkong, China)',
         'zh_Hans' => 'chinais (simplifitgà)',
         'zh_Hans_CN' => 'chinais (simplifitgà, China)',
-        'zh_Hans_HK' => 'chinais (simplifitgà, Regiun d’administraziun speziala da Hongkong, China)',
+        'zh_Hans_HK' => 'chinais (simplifitgà, Regiun d’administraziun speziala Hongkong, China)',
         'zh_Hans_MO' => 'chinais (simplifitgà, Regiun d’administraziun speziala Macao, China)',
         'zh_Hans_MY' => 'chinais (simplifitgà, Malaisia)',
         'zh_Hans_SG' => 'chinais (simplifitgà, Singapur)',
         'zh_Hant' => 'chinais (tradiziunal)',
-        'zh_Hant_HK' => 'chinais (tradiziunal, Regiun d’administraziun speziala da Hongkong, China)',
+        'zh_Hant_HK' => 'chinais (tradiziunal, Regiun d’administraziun speziala Hongkong, China)',
         'zh_Hant_MO' => 'chinais (tradiziunal, Regiun d’administraziun speziala Macao, China)',
         'zh_Hant_MY' => 'chinais (tradiziunal, Malaisia)',
         'zh_Hant_TW' => 'chinais (tradiziunal, Taiwan)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rn.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,6 +75,7 @@
         'en_DE' => 'Icongereza (Ubudage)',
         'en_DK' => 'Icongereza (Danimariki)',
         'en_DM' => 'Icongereza (Dominika)',
+        'en_EE' => 'Icongereza (Esitoniya)',
         'en_ER' => 'Icongereza (Elitereya)',
         'en_ES' => 'Icongereza (Hisipaniya)',
         'en_FI' => 'Icongereza (Finilandi)',
@@ -84,6 +85,7 @@
         'en_FR' => 'Icongereza (Ubufaransa)',
         'en_GB' => 'Icongereza (Ubwongereza)',
         'en_GD' => 'Icongereza (Gerenada)',
+        'en_GE' => 'Icongereza (Jeworujiya)',
         'en_GH' => 'Icongereza (Gana)',
         'en_GI' => 'Icongereza (Juburalitari)',
         'en_GM' => 'Icongereza (Gambiya)',
@@ -96,6 +98,7 @@
         'en_IN' => 'Icongereza (Ubuhindi)',
         'en_IT' => 'Icongereza (Ubutaliyani)',
         'en_JM' => 'Icongereza (Jamayika)',
+        'en_JP' => 'Icongereza (Ubuyapani)',
         'en_KE' => 'Icongereza (Kenya)',
         'en_KI' => 'Icongereza (Kiribati)',
         'en_KN' => 'Icongereza (Sekitsi na Nevisi)',
@@ -103,6 +106,8 @@
         'en_LC' => 'Icongereza (Selusiya)',
         'en_LR' => 'Icongereza (Liberiya)',
         'en_LS' => 'Icongereza (Lesoto)',
+        'en_LT' => 'Icongereza (Lituwaniya)',
+        'en_LV' => 'Icongereza (Lativa)',
         'en_MG' => 'Icongereza (Madagasikari)',
         'en_MH' => 'Icongereza (Izinga rya Marishari)',
         'en_MP' => 'Icongereza (Amazinga ya Mariyana ryo mu majaruguru)',
@@ -146,6 +151,7 @@
         'en_TT' => 'Icongereza (Tirinidadi na Tobago)',
         'en_TV' => 'Icongereza (Tuvalu)',
         'en_TZ' => 'Icongereza (Tanzaniya)',
+        'en_UA' => 'Icongereza (Ikerene)',
         'en_UG' => 'Icongereza (Ubugande)',
         'en_US' => 'Icongereza (Leta Zunze Ubumwe za Amerika)',
         'en_VC' => 'Icongereza (Sevensa na Gerenadine)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ro.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ro.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ro.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ro.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azeră (chirilică, Azerbaidjan)',
         'az_Latn' => 'azeră (latină)',
         'az_Latn_AZ' => 'azeră (latină, Azerbaidjan)',
+        'ba' => 'bașkiră',
+        'ba_RU' => 'bașkiră (Rusia)',
         'be' => 'belarusă',
         'be_BY' => 'belarusă (Belarus)',
         'bg' => 'bulgară',
@@ -125,6 +127,7 @@
         'en_DE' => 'engleză (Germania)',
         'en_DK' => 'engleză (Danemarca)',
         'en_DM' => 'engleză (Dominica)',
+        'en_EE' => 'engleză (Estonia)',
         'en_ER' => 'engleză (Eritreea)',
         'en_ES' => 'engleză (Spania)',
         'en_FI' => 'engleză (Finlanda)',
@@ -134,6 +137,7 @@
         'en_FR' => 'engleză (Franța)',
         'en_GB' => 'engleză (Regatul Unit)',
         'en_GD' => 'engleză (Grenada)',
+        'en_GE' => 'engleză (Georgia)',
         'en_GG' => 'engleză (Guernsey)',
         'en_GH' => 'engleză (Ghana)',
         'en_GI' => 'engleză (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'engleză (Italia)',
         'en_JE' => 'engleză (Jersey)',
         'en_JM' => 'engleză (Jamaica)',
+        'en_JP' => 'engleză (Japonia)',
         'en_KE' => 'engleză (Kenya)',
         'en_KI' => 'engleză (Kiribati)',
         'en_KN' => 'engleză (Saint Kitts și Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'engleză (Sfânta Lucia)',
         'en_LR' => 'engleză (Liberia)',
         'en_LS' => 'engleză (Lesotho)',
+        'en_LT' => 'engleză (Lituania)',
+        'en_LV' => 'engleză (Letonia)',
         'en_MG' => 'engleză (Madagascar)',
         'en_MH' => 'engleză (Insulele Marshall)',
         'en_MO' => 'engleză (R.A.S. Macao, China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'engleză (Trinidad și Tobago)',
         'en_TV' => 'engleză (Tuvalu)',
         'en_TZ' => 'engleză (Tanzania)',
+        'en_UA' => 'engleză (Ucraina)',
         'en_UG' => 'engleză (Uganda)',
         'en_UM' => 'engleză (Insulele Îndepărtate ale S.U.A.)',
         'en_US' => 'engleză (Statele Unite ale Americii)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenya)',
         'kk' => 'kazahă',
+        'kk_Arab' => 'kazahă (arabă)',
+        'kk_Arab_CN' => 'kazahă (arabă, China)',
         'kk_Cyrl' => 'kazahă (chirilică)',
         'kk_Cyrl_KZ' => 'kazahă (chirilică, Kazahstan)',
         'kk_KZ' => 'kazahă (Kazahstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'cașmiră (devanagari, India)',
         'ks_IN' => 'cașmiră (India)',
         'ku' => 'kurdă',
+        'ku_Latn' => 'kurdă (latină)',
+        'ku_Latn_IQ' => 'kurdă (latină, Irak)',
+        'ku_Latn_SY' => 'kurdă (latină, Siria)',
+        'ku_Latn_TR' => 'kurdă (latină, Turcia)',
+        'ku_SY' => 'kurdă (Siria)',
         'ku_TR' => 'kurdă (Turcia)',
         'kw' => 'cornică',
         'kw_GB' => 'cornică (Regatul Unit)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ru.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ru.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ru.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ru.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'азербайджанский (кириллица, Азербайджан)',
         'az_Latn' => 'азербайджанский (латиница)',
         'az_Latn_AZ' => 'азербайджанский (латиница, Азербайджан)',
+        'ba' => 'башкирский',
+        'ba_RU' => 'башкирский (Россия)',
         'be' => 'белорусский',
         'be_BY' => 'белорусский (Беларусь)',
         'bg' => 'болгарский',
@@ -125,6 +127,7 @@
         'en_DE' => 'английский (Германия)',
         'en_DK' => 'английский (Дания)',
         'en_DM' => 'английский (Доминика)',
+        'en_EE' => 'английский (Эстония)',
         'en_ER' => 'английский (Эритрея)',
         'en_ES' => 'английский (Испания)',
         'en_FI' => 'английский (Финляндия)',
@@ -134,6 +137,7 @@
         'en_FR' => 'английский (Франция)',
         'en_GB' => 'английский (Великобритания)',
         'en_GD' => 'английский (Гренада)',
+        'en_GE' => 'английский (Грузия)',
         'en_GG' => 'английский (Гернси)',
         'en_GH' => 'английский (Гана)',
         'en_GI' => 'английский (Гибралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'английский (Италия)',
         'en_JE' => 'английский (Джерси)',
         'en_JM' => 'английский (Ямайка)',
+        'en_JP' => 'английский (Япония)',
         'en_KE' => 'английский (Кения)',
         'en_KI' => 'английский (Кирибати)',
         'en_KN' => 'английский (Сент-Китс и Невис)',
@@ -159,6 +164,8 @@
         'en_LC' => 'английский (Сент-Люсия)',
         'en_LR' => 'английский (Либерия)',
         'en_LS' => 'английский (Лесото)',
+        'en_LT' => 'английский (Литва)',
+        'en_LV' => 'английский (Латвия)',
         'en_MG' => 'английский (Мадагаскар)',
         'en_MH' => 'английский (Маршалловы о-ва)',
         'en_MO' => 'английский (Макао [САР])',
@@ -205,6 +212,7 @@
         'en_TT' => 'английский (Тринидад и Тобаго)',
         'en_TV' => 'английский (Тувалу)',
         'en_TZ' => 'английский (Танзания)',
+        'en_UA' => 'английский (Украина)',
         'en_UG' => 'английский (Уганда)',
         'en_UM' => 'английский (Внешние малые о-ва [США])',
         'en_US' => 'английский (Соединенные Штаты)',
@@ -391,6 +399,8 @@
         'ki' => 'кикуйю',
         'ki_KE' => 'кикуйю (Кения)',
         'kk' => 'казахский',
+        'kk_Arab' => 'казахский (арабица)',
+        'kk_Arab_CN' => 'казахский (арабица, Китай)',
         'kk_Cyrl' => 'казахский (кириллица)',
         'kk_Cyrl_KZ' => 'казахский (кириллица, Казахстан)',
         'kk_KZ' => 'казахский (Казахстан)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'кашмири (деванагари, Индия)',
         'ks_IN' => 'кашмири (Индия)',
         'ku' => 'курдский',
+        'ku_Latn' => 'курдский (латиница)',
+        'ku_Latn_IQ' => 'курдский (латиница, Ирак)',
+        'ku_Latn_SY' => 'курдский (латиница, Сирия)',
+        'ku_Latn_TR' => 'курдский (латиница, Турция)',
+        'ku_SY' => 'курдский (Сирия)',
         'ku_TR' => 'курдский (Турция)',
         'kw' => 'корнский',
         'kw_GB' => 'корнский (Великобритания)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/rw.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,6 +55,7 @@
         'kn' => 'Igikanada',
         'ko' => 'Igikoreya',
         'ku' => 'Inyekuridishi',
+        'ku_Latn' => 'Inyekuridishi (Latin)',
         'ky' => 'Inkerigizi',
         'ln' => 'Ilingala',
         'lo' => 'Ikilawotiyani',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sa.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
         'en_GB' => 'आङ्ग्लभाषा (संयुक्त राष्ट्र:)',
         'en_IN' => 'आङ्ग्लभाषा (भारतः)',
         'en_IT' => 'आङ्ग्लभाषा (इटली:)',
+        'en_JP' => 'आङ्ग्लभाषा (जापन:)',
         'en_US' => 'आङ्ग्लभाषा (संयुक्त राज्य:)',
         'es' => 'स्पेनीय भाषा:',
         'es_BR' => 'स्पेनीय भाषा: (ब्राजील)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sc.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sc.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sc.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sc.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
         'ar_MR' => 'àrabu (Mauritània)',
         'ar_OM' => 'àrabu (Omàn)',
         'ar_PS' => 'àrabu (Territòrios palestinesos)',
-        'ar_QA' => 'àrabu (Catar)',
+        'ar_QA' => 'àrabu (Catàr)',
         'ar_SA' => 'àrabu (Aràbia Saudita)',
         'ar_SD' => 'àrabu (Sudàn)',
         'ar_SO' => 'àrabu (Somàlia)',
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaigianu (tzirìllicu, Azerbaigiàn)',
         'az_Latn' => 'azerbaigianu (latinu)',
         'az_Latn_AZ' => 'azerbaigianu (latinu, Azerbaigiàn)',
+        'ba' => 'baschiru',
+        'ba_RU' => 'baschiru (Rùssia)',
         'be' => 'bielorussu',
         'be_BY' => 'bielorussu (Bielorùssia)',
         'bg' => 'bùlgaru',
@@ -125,6 +127,7 @@
         'en_DE' => 'inglesu (Germània)',
         'en_DK' => 'inglesu (Danimarca)',
         'en_DM' => 'inglesu (Dominica)',
+        'en_EE' => 'inglesu (Estònia)',
         'en_ER' => 'inglesu (Eritrea)',
         'en_ES' => 'inglesu (Ispagna)',
         'en_FI' => 'inglesu (Finlàndia)',
@@ -134,6 +137,7 @@
         'en_FR' => 'inglesu (Frantza)',
         'en_GB' => 'inglesu (Regnu Unidu)',
         'en_GD' => 'inglesu (Grenada)',
+        'en_GE' => 'inglesu (Geòrgia)',
         'en_GG' => 'inglesu (Guernsey)',
         'en_GH' => 'inglesu (Ghana)',
         'en_GI' => 'inglesu (Gibilterra)',
@@ -152,6 +156,7 @@
         'en_IT' => 'inglesu (Itàlia)',
         'en_JE' => 'inglesu (Jersey)',
         'en_JM' => 'inglesu (Giamàica)',
+        'en_JP' => 'inglesu (Giapone)',
         'en_KE' => 'inglesu (Kènya)',
         'en_KI' => 'inglesu (Kiribati)',
         'en_KN' => 'inglesu (Santu Cristolu e Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'inglesu (Santa Lughia)',
         'en_LR' => 'inglesu (Libèria)',
         'en_LS' => 'inglesu (Lesotho)',
+        'en_LT' => 'inglesu (Lituània)',
+        'en_LV' => 'inglesu (Letònia)',
         'en_MG' => 'inglesu (Madagascàr)',
         'en_MH' => 'inglesu (Ìsulas Marshall)',
         'en_MO' => 'inglesu (RAS tzinesa de Macao)',
@@ -205,6 +212,7 @@
         'en_TT' => 'inglesu (Trinidad e Tobago)',
         'en_TV' => 'inglesu (Tuvalu)',
         'en_TZ' => 'inglesu (Tanzània)',
+        'en_UA' => 'inglesu (Ucraina)',
         'en_UG' => 'inglesu (Uganda)',
         'en_UM' => 'inglesu (Ìsulas perifèricas de sos Istados Unidos)',
         'en_US' => 'inglesu (Istados Unidos)',
@@ -352,8 +360,8 @@
         'ha_GH' => 'hausa (Ghana)',
         'ha_NE' => 'hausa (Niger)',
         'ha_NG' => 'hausa (Nigèria)',
-        'he' => 'ebreu',
-        'he_IL' => 'ebreu (Israele)',
+        'he' => 'ebràicu',
+        'he_IL' => 'ebràicu (Israele)',
         'hi' => 'hindi',
         'hi_IN' => 'hindi (Ìndia)',
         'hi_Latn' => 'hindi (latinu)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kènya)',
         'kk' => 'kazacu',
+        'kk_Arab' => 'kazacu (àrabu)',
+        'kk_Arab_CN' => 'kazacu (àrabu, Tzina)',
         'kk_Cyrl' => 'kazacu (tzirìllicu)',
         'kk_Cyrl_KZ' => 'kazacu (tzirìllicu, Kazàkistan)',
         'kk_KZ' => 'kazacu (Kazàkistan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kashmiri (devanagari, Ìndia)',
         'ks_IN' => 'kashmiri (Ìndia)',
         'ku' => 'curdu',
+        'ku_Latn' => 'curdu (latinu)',
+        'ku_Latn_IQ' => 'curdu (latinu, Iraq)',
+        'ku_Latn_SY' => 'curdu (latinu, Sìria)',
+        'ku_Latn_TR' => 'curdu (latinu, Turchia)',
+        'ku_SY' => 'curdu (Sìria)',
         'ku_TR' => 'curdu (Turchia)',
         'kw' => 'còrnicu',
         'kw_GB' => 'còrnicu (Regnu Unidu)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sd_Deva.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sd_Deva.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sd_Deva.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sd_Deva.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,14 +7,15 @@
         'az_Cyrl_AZ' => 'آزربائيجاني (सिरिलिक, آذربائيجان)',
         'az_Latn' => 'آزربائيجاني (लैटिन)',
         'az_Latn_AZ' => 'آزربائيجاني (लैटिन, آذربائيجان)',
+        'ba_RU' => 'ڪينيڊا (रशिया)',
         'bn_IN' => 'بنگلا (भारत)',
         'bo_CN' => 'تبيتائي (चीन)',
         'bo_IN' => 'تبيتائي (भारत)',
         'br_FR' => 'بريٽن (फ़्रांस)',
         'bs_Cyrl' => 'بوسنيائي (सिरिलिक)',
-        'bs_Cyrl_BA' => 'بوسنيائي (सिरिलिक, بوسنيا ۽ هرزوگووينا)',
+        'bs_Cyrl_BA' => 'بوسنيائي (सिरिलिक, بوسنيا ۽ هرزيگووينا)',
         'bs_Latn' => 'بوسنيائي (लैटिन)',
-        'bs_Latn_BA' => 'بوسنيائي (लैटिन, بوسنيا ۽ هرزوگووينا)',
+        'bs_Latn_BA' => 'بوسنيائي (लैटिन, بوسنيا ۽ هرزيگووينا)',
         'ca_FR' => 'ڪيٽالان (फ़्रांस)',
         'ca_IT' => 'ڪيٽالان (इटली)',
         'ce_RU' => 'چیچن (रशिया)',
@@ -32,7 +33,7 @@
         'en_001' => 'अंगरेज़ी (دنيا)',
         'en_150' => 'अंगरेज़ी (يورپ)',
         'en_AE' => 'अंगरेज़ी (متحده عرب امارات)',
-        'en_AG' => 'अंगरेज़ी (انٽيگا ۽ باربد)',
+        'en_AG' => 'अंगरेज़ी (اينٽيگا ۽ باربوڊا)',
         'en_AI' => 'अंगरेज़ी (انگويلا)',
         'en_AS' => 'अंगरेज़ी (آمريڪي ساموا)',
         'en_AT' => 'अंगरेज़ी (آسٽريا)',
@@ -55,6 +56,7 @@
         'en_DE' => 'अंगरेज़ी (जर्मनी)',
         'en_DK' => 'अंगरेज़ी (ڊينمارڪ)',
         'en_DM' => 'अंगरेज़ी (ڊومينيڪا)',
+        'en_EE' => 'अंगरेज़ी (ايسٽونيا)',
         'en_ER' => 'अंगरेज़ी (ايريٽيريا)',
         'en_ES' => 'अंगरेज़ी (اسپين)',
         'en_FI' => 'अंगरेज़ी (فن لينڊ)',
@@ -64,6 +66,7 @@
         'en_FR' => 'अंगरेज़ी (फ़्रांस)',
         'en_GB' => 'अंगरेज़ी (बरतानी)',
         'en_GD' => 'अंगरेज़ी (گريناڊا)',
+        'en_GE' => 'अंगरेज़ी (جارجيا)',
         'en_GG' => 'अंगरेज़ी (گورنسي)',
         'en_GH' => 'अंगरेज़ी (گهانا)',
         'en_GI' => 'अंगरेज़ी (جبرالٽر)',
@@ -71,7 +74,7 @@
         'en_GS' => 'अंगरेज़ी (ڏکڻ جارجيا ۽ ڏکڻ سينڊوچ ٻيٽ)',
         'en_GU' => 'अंगरेज़ी (گوام)',
         'en_GY' => 'अंगरेज़ी (گيانا)',
-        'en_HK' => 'अंगरेज़ी (هانگ ڪانگ SAR)',
+        'en_HK' => 'अंगरेज़ी (هانگ ڪانگ SAR چين)',
         'en_HU' => 'अंगरेज़ी (هنگري)',
         'en_ID' => 'अंगरेज़ी (انڊونيشيا)',
         'en_IE' => 'अंगरेज़ी (آئرلينڊ)',
@@ -82,6 +85,7 @@
         'en_IT' => 'अंगरेज़ी (इटली)',
         'en_JE' => 'अंगरेज़ी (جرسي)',
         'en_JM' => 'अंगरेज़ी (جميڪا)',
+        'en_JP' => 'अंगरेज़ी (जापान)',
         'en_KE' => 'अंगरेज़ी (ڪينيا)',
         'en_KI' => 'अंगरेज़ी (ڪرباتي)',
         'en_KN' => 'अंगरेज़ी (سينٽ ڪٽس و نيوس)',
@@ -89,6 +93,8 @@
         'en_LC' => 'अंगरेज़ी (سينٽ لوسيا)',
         'en_LR' => 'अंगरेज़ी (لائبیریا)',
         'en_LS' => 'अंगरेज़ी (ليسوٿو)',
+        'en_LT' => 'अंगरेज़ी (لٿونيا)',
+        'en_LV' => 'अंगरेज़ी (لاتويا)',
         'en_MG' => 'अंगरेज़ी (مدگاسڪر)',
         'en_MH' => 'अंगरेज़ी (مارشل ٻيٽ)',
         'en_MO' => 'अंगरेज़ी (مڪائو SAR چين)',
@@ -132,9 +138,10 @@
         'en_TC' => 'अंगरेज़ी (ترڪ ۽ ڪيڪوس ٻيٽ)',
         'en_TK' => 'अंगरेज़ी (ٽوڪلائو)',
         'en_TO' => 'अंगरेज़ी (ٽونگا)',
-        'en_TT' => 'अंगरेज़ी (ٽريني ڊيڊ ۽ ٽوباگو ٻيٽ)',
+        'en_TT' => 'अंगरेज़ी (ٽرينيڊاڊ ۽ ٽوباگو)',
         'en_TV' => 'अंगरेज़ी (توالو)',
         'en_TZ' => 'अंगरेज़ी (تنزانيا)',
+        'en_UA' => 'अंगरेज़ी (يوڪرين)',
         'en_UG' => 'अंगरेज़ी (يوگنڊا)',
         'en_UM' => 'अंगरेज़ी (آمريڪي خارجي ٻيٽ)',
         'en_US' => 'अंगरेज़ी (अमेरिका)',
@@ -221,7 +228,7 @@
         'fr_NC' => 'फ्रेंच (نیو ڪالیڊونیا)',
         'fr_NE' => 'फ्रेंच (نائيجر)',
         'fr_PF' => 'फ्रेंच (فرانسيسي پولينيشيا)',
-        'fr_PM' => 'फ्रेंच (سینٽ پیئر و میڪوئیلون)',
+        'fr_PM' => 'फ्रेंच (سينٽ پيئر ۽ ميڪيلون)',
         'fr_RE' => 'फ्रेंच (ري يونين)',
         'fr_RW' => 'फ्रेंच (روانڊا)',
         'fr_SC' => 'फ्रेंच (شي شلز)',
@@ -243,10 +250,12 @@
         'it' => 'इटालियनु',
         'it_CH' => 'इटालियनु (سوئزرلينڊ)',
         'it_IT' => 'इटालियनु (इटली)',
-        'it_SM' => 'इटालियनु (سین مرینو)',
+        'it_SM' => 'इटालियनु (سان مرینو)',
         'it_VA' => 'इटालियनु (ويٽڪين سٽي)',
         'ja' => 'जापानी',
         'ja_JP' => 'जापानी (जापान)',
+        'kk_Arab' => 'قازق (अरबी)',
+        'kk_Arab_CN' => 'قازق (अरबी, चीन)',
         'kk_Cyrl' => 'قازق (सिरिलिक)',
         'kk_Cyrl_KZ' => 'قازق (सिरिलिक, قازقستان)',
         'kn_IN' => 'ڪناڊا (भारत)',
@@ -256,6 +265,10 @@
         'ks_Deva' => 'ڪشميري (देवनागिरी)',
         'ks_Deva_IN' => 'ڪشميري (देवनागिरी, भारत)',
         'ks_IN' => 'ڪشميري (भारत)',
+        'ku_Latn' => 'ڪردي (लैटिन)',
+        'ku_Latn_IQ' => 'ڪردي (लैटिन, عراق)',
+        'ku_Latn_SY' => 'ڪردي (लैटिन, شام)',
+        'ku_Latn_TR' => 'ڪردي (लैटिन, ترڪييي)',
         'kw_GB' => 'ڪورنش (बरतानी)',
         'ml_IN' => 'مليالم (भारत)',
         'mr_IN' => 'مراٺي (भारत)',
@@ -280,10 +293,10 @@
         'pt_MO' => 'पुर्तगाली (مڪائو SAR چين)',
         'pt_MZ' => 'पुर्तगाली (موزمبیق)',
         'pt_PT' => 'पुर्तगाली (پرتگال)',
-        'pt_ST' => 'पुर्तगाली (سائو ٽوم ۽ پرنسپیي)',
+        'pt_ST' => 'पुर्तगाली (سائو ٽومي ۽ پرنسپیي)',
         'pt_TL' => 'पुर्तगाली (تيمور ليستي)',
         'ru' => 'रशियनु',
-        'ru_BY' => 'रशियनु (بیلارس)',
+        'ru_BY' => 'रशियनु (بيلاروس)',
         'ru_KG' => 'रशियनु (ڪرغستان)',
         'ru_KZ' => 'रशियनु (قازقستان)',
         'ru_MD' => 'रशियनु (مالدووا)',
@@ -299,11 +312,11 @@
         'sd_IN' => 'सिन्धी (भारत)',
         'sd_PK' => 'सिन्धी (पाकिस्तान)',
         'sr_Cyrl' => 'سربيائي (सिरिलिक)',
-        'sr_Cyrl_BA' => 'سربيائي (सिरिलिक, بوسنيا ۽ هرزوگووينا)',
+        'sr_Cyrl_BA' => 'سربيائي (सिरिलिक, بوسنيا ۽ هرزيگووينا)',
         'sr_Cyrl_ME' => 'سربيائي (सिरिलिक, مونٽي نيگرو)',
         'sr_Cyrl_RS' => 'سربيائي (सिरिलिक, سربيا)',
         'sr_Latn' => 'سربيائي (लैटिन)',
-        'sr_Latn_BA' => 'سربيائي (लैटिन, بوسنيا ۽ هرزوگووينا)',
+        'sr_Latn_BA' => 'سربيائي (लैटिन, بوسنيا ۽ هرزيگووينا)',
         'sr_Latn_ME' => 'سربيائي (लैटिन, مونٽي نيگرو)',
         'sr_Latn_RS' => 'سربيائي (लैटिन, سربيا)',
         'su_Latn' => 'سوڊاني (लैटिन)',
@@ -323,15 +336,15 @@
         'za_CN' => 'جوئنگ (चीन)',
         'zh' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी]',
         'zh_CN' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (चीन)',
-        'zh_HK' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (هانگ ڪانگ SAR)',
+        'zh_HK' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (هانگ ڪانگ SAR چين)',
         'zh_Hans' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (सादी थियल [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे])',
         'zh_Hans_CN' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (सादी थियल [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], चीन)',
-        'zh_Hans_HK' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (सादी थियल [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], هانگ ڪانگ SAR)',
+        'zh_Hans_HK' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (सादी थियल [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], هانگ ڪانگ SAR چين)',
         'zh_Hans_MO' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (सादी थियल [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], مڪائو SAR چين)',
         'zh_Hans_MY' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (सादी थियल [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], ملائيشيا)',
         'zh_Hans_SG' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (सादी थियल [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], سنگاپور)',
         'zh_Hant' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (रवायती [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे])',
-        'zh_Hant_HK' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (रवायती [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], هانگ ڪانگ SAR)',
+        'zh_Hant_HK' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (रवायती [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], هانگ ڪانگ SAR چين)',
         'zh_Hant_MO' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (रवायती [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], مڪائو SAR چين)',
         'zh_Hant_MY' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (रवायती [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], ملائيشيا)',
         'zh_Hant_TW' => 'चीनी [तर्जुमे जो द॒स :खास करे, मैन्डरिन चीनी] (रवायती [तरजुमे जो द॒स : लिखत जे नाले जे हिन बयानु खे चीनीअ लाए भाषा जे नाले सां गद॒ मिलाए करे इस्तेमाल कयो वेंदो आहे], تائیوان)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sd.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,8 +46,10 @@
         'az_Cyrl_AZ' => 'آزربائيجاني (سيريلي, آذربائيجان)',
         'az_Latn' => 'آزربائيجاني (لاطيني)',
         'az_Latn_AZ' => 'آزربائيجاني (لاطيني, آذربائيجان)',
+        'ba' => 'ڪينيڊا',
+        'ba_RU' => 'ڪينيڊا (روس)',
         'be' => 'بيلاروسي',
-        'be_BY' => 'بيلاروسي (بیلارس)',
+        'be_BY' => 'بيلاروسي (بيلاروس)',
         'bg' => 'بلغاريائي',
         'bg_BG' => 'بلغاريائي (بلغاريا)',
         'bm' => 'بمبارا',
@@ -61,11 +63,11 @@
         'br' => 'بريٽن',
         'br_FR' => 'بريٽن (فرانس)',
         'bs' => 'بوسنيائي',
-        'bs_BA' => 'بوسنيائي (بوسنيا ۽ هرزوگووينا)',
+        'bs_BA' => 'بوسنيائي (بوسنيا ۽ هرزيگووينا)',
         'bs_Cyrl' => 'بوسنيائي (سيريلي)',
-        'bs_Cyrl_BA' => 'بوسنيائي (سيريلي, بوسنيا ۽ هرزوگووينا)',
+        'bs_Cyrl_BA' => 'بوسنيائي (سيريلي, بوسنيا ۽ هرزيگووينا)',
         'bs_Latn' => 'بوسنيائي (لاطيني)',
-        'bs_Latn_BA' => 'بوسنيائي (لاطيني, بوسنيا ۽ هرزوگووينا)',
+        'bs_Latn_BA' => 'بوسنيائي (لاطيني, بوسنيا ۽ هرزيگووينا)',
         'ca' => 'ڪيٽالان',
         'ca_AD' => 'ڪيٽالان (اندورا)',
         'ca_ES' => 'ڪيٽالان (اسپين)',
@@ -102,7 +104,7 @@
         'en_001' => 'انگريزي (دنيا)',
         'en_150' => 'انگريزي (يورپ)',
         'en_AE' => 'انگريزي (متحده عرب امارات)',
-        'en_AG' => 'انگريزي (انٽيگا ۽ باربد)',
+        'en_AG' => 'انگريزي (اينٽيگا ۽ باربوڊا)',
         'en_AI' => 'انگريزي (انگويلا)',
         'en_AS' => 'انگريزي (آمريڪي ساموا)',
         'en_AT' => 'انگريزي (آسٽريا)',
@@ -125,6 +127,7 @@
         'en_DE' => 'انگريزي (جرمني)',
         'en_DK' => 'انگريزي (ڊينمارڪ)',
         'en_DM' => 'انگريزي (ڊومينيڪا)',
+        'en_EE' => 'انگريزي (ايسٽونيا)',
         'en_ER' => 'انگريزي (ايريٽيريا)',
         'en_ES' => 'انگريزي (اسپين)',
         'en_FI' => 'انگريزي (فن لينڊ)',
@@ -134,6 +137,7 @@
         'en_FR' => 'انگريزي (فرانس)',
         'en_GB' => 'انگريزي (برطانيہ)',
         'en_GD' => 'انگريزي (گريناڊا)',
+        'en_GE' => 'انگريزي (جارجيا)',
         'en_GG' => 'انگريزي (گورنسي)',
         'en_GH' => 'انگريزي (گهانا)',
         'en_GI' => 'انگريزي (جبرالٽر)',
@@ -141,7 +145,7 @@
         'en_GS' => 'انگريزي (ڏکڻ جارجيا ۽ ڏکڻ سينڊوچ ٻيٽ)',
         'en_GU' => 'انگريزي (گوام)',
         'en_GY' => 'انگريزي (گيانا)',
-        'en_HK' => 'انگريزي (هانگ ڪانگ SAR)',
+        'en_HK' => 'انگريزي (هانگ ڪانگ SAR چين)',
         'en_HU' => 'انگريزي (هنگري)',
         'en_ID' => 'انگريزي (انڊونيشيا)',
         'en_IE' => 'انگريزي (آئرلينڊ)',
@@ -152,6 +156,7 @@
         'en_IT' => 'انگريزي (اٽلي)',
         'en_JE' => 'انگريزي (جرسي)',
         'en_JM' => 'انگريزي (جميڪا)',
+        'en_JP' => 'انگريزي (جاپان)',
         'en_KE' => 'انگريزي (ڪينيا)',
         'en_KI' => 'انگريزي (ڪرباتي)',
         'en_KN' => 'انگريزي (سينٽ ڪٽس و نيوس)',
@@ -159,6 +164,8 @@
         'en_LC' => 'انگريزي (سينٽ لوسيا)',
         'en_LR' => 'انگريزي (لائبیریا)',
         'en_LS' => 'انگريزي (ليسوٿو)',
+        'en_LT' => 'انگريزي (لٿونيا)',
+        'en_LV' => 'انگريزي (لاتويا)',
         'en_MG' => 'انگريزي (مدگاسڪر)',
         'en_MH' => 'انگريزي (مارشل ٻيٽ)',
         'en_MO' => 'انگريزي (مڪائو SAR چين)',
@@ -202,9 +209,10 @@
         'en_TC' => 'انگريزي (ترڪ ۽ ڪيڪوس ٻيٽ)',
         'en_TK' => 'انگريزي (ٽوڪلائو)',
         'en_TO' => 'انگريزي (ٽونگا)',
-        'en_TT' => 'انگريزي (ٽريني ڊيڊ ۽ ٽوباگو ٻيٽ)',
+        'en_TT' => 'انگريزي (ٽرينيڊاڊ ۽ ٽوباگو)',
         'en_TV' => 'انگريزي (توالو)',
         'en_TZ' => 'انگريزي (تنزانيا)',
+        'en_UA' => 'انگريزي (يوڪرين)',
         'en_UG' => 'انگريزي (يوگنڊا)',
         'en_UM' => 'انگريزي (آمريڪي خارجي ٻيٽ)',
         'en_US' => 'انگريزي (آمريڪا جون گڏيل رياستون)',
@@ -323,7 +331,7 @@
         'fr_NC' => 'فرانسيسي (نیو ڪالیڊونیا)',
         'fr_NE' => 'فرانسيسي (نائيجر)',
         'fr_PF' => 'فرانسيسي (فرانسيسي پولينيشيا)',
-        'fr_PM' => 'فرانسيسي (سینٽ پیئر و میڪوئیلون)',
+        'fr_PM' => 'فرانسيسي (سينٽ پيئر ۽ ميڪيلون)',
         'fr_RE' => 'فرانسيسي (ري يونين)',
         'fr_RW' => 'فرانسيسي (روانڊا)',
         'fr_SC' => 'فرانسيسي (شي شلز)',
@@ -359,12 +367,12 @@
         'hi_Latn' => 'هندي (لاطيني)',
         'hi_Latn_IN' => 'هندي (لاطيني, ڀارت)',
         'hr' => 'ڪروشيائي',
-        'hr_BA' => 'ڪروشيائي (بوسنيا ۽ هرزوگووينا)',
+        'hr_BA' => 'ڪروشيائي (بوسنيا ۽ هرزيگووينا)',
         'hr_HR' => 'ڪروشيائي (ڪروئيشيا)',
         'hu' => 'هنگري',
         'hu_HU' => 'هنگري (هنگري)',
         'hy' => 'ارماني',
-        'hy_AM' => 'ارماني (ارمینیا)',
+        'hy_AM' => 'ارماني (آرمينيا)',
         'ia' => 'انٽرلنگئا',
         'ia_001' => 'انٽرلنگئا (دنيا)',
         'id' => 'انڊونيشي',
@@ -380,7 +388,7 @@
         'it' => 'اطالوي',
         'it_CH' => 'اطالوي (سوئزرلينڊ)',
         'it_IT' => 'اطالوي (اٽلي)',
-        'it_SM' => 'اطالوي (سین مرینو)',
+        'it_SM' => 'اطالوي (سان مرینو)',
         'it_VA' => 'اطالوي (ويٽڪين سٽي)',
         'ja' => 'جاپاني',
         'ja_JP' => 'جاپاني (جاپان)',
@@ -391,6 +399,8 @@
         'ki' => 'اڪويو',
         'ki_KE' => 'اڪويو (ڪينيا)',
         'kk' => 'قازق',
+        'kk_Arab' => 'قازق (عربي)',
+        'kk_Arab_CN' => 'قازق (عربي, چين)',
         'kk_Cyrl' => 'قازق (سيريلي)',
         'kk_Cyrl_KZ' => 'قازق (سيريلي, قازقستان)',
         'kk_KZ' => 'قازق (قازقستان)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'ڪشميري (ديوناگري, ڀارت)',
         'ks_IN' => 'ڪشميري (ڀارت)',
         'ku' => 'ڪردي',
+        'ku_Latn' => 'ڪردي (لاطيني)',
+        'ku_Latn_IQ' => 'ڪردي (لاطيني, عراق)',
+        'ku_Latn_SY' => 'ڪردي (لاطيني, شام)',
+        'ku_Latn_TR' => 'ڪردي (لاطيني, ترڪييي)',
+        'ku_SY' => 'ڪردي (شام)',
         'ku_TR' => 'ڪردي (ترڪييي)',
         'kw' => 'ڪورنش',
         'kw_GB' => 'ڪورنش (برطانيہ)',
@@ -456,7 +471,7 @@
         'my_MM' => 'برمي (ميانمار [برما])',
         'nb' => 'نارويائي بوڪمال',
         'nb_NO' => 'نارويائي بوڪمال (ناروي)',
-        'nb_SJ' => 'نارويائي بوڪمال (سوالبارڊ ۽ جان ماین)',
+        'nb_SJ' => 'نارويائي بوڪمال (سوالبارڊ ۽ يان ماین)',
         'nd' => 'اتر دبيلي',
         'nd_ZW' => 'اتر دبيلي (زمبابوي)',
         'ne' => 'نيپالي',
@@ -508,7 +523,7 @@
         'pt_MO' => 'پورٽگليز (مڪائو SAR چين)',
         'pt_MZ' => 'پورٽگليز (موزمبیق)',
         'pt_PT' => 'پورٽگليز (پرتگال)',
-        'pt_ST' => 'پورٽگليز (سائو ٽوم ۽ پرنسپیي)',
+        'pt_ST' => 'پورٽگليز (سائو ٽومي ۽ پرنسپیي)',
         'pt_TL' => 'پورٽگليز (تيمور ليستي)',
         'qu' => 'ڪيچوا',
         'qu_BO' => 'ڪيچوا (بوليويا)',
@@ -522,7 +537,7 @@
         'ro_MD' => 'روماني (مالدووا)',
         'ro_RO' => 'روماني (رومانيا)',
         'ru' => 'روسي',
-        'ru_BY' => 'روسي (بیلارس)',
+        'ru_BY' => 'روسي (بيلاروس)',
         'ru_KG' => 'روسي (ڪرغستان)',
         'ru_KZ' => 'روسي (قازقستان)',
         'ru_MD' => 'روسي (مالدووا)',
@@ -564,13 +579,13 @@
         'sq_AL' => 'الباني (البانيا)',
         'sq_MK' => 'الباني (اتر مقدونيا)',
         'sr' => 'سربيائي',
-        'sr_BA' => 'سربيائي (بوسنيا ۽ هرزوگووينا)',
+        'sr_BA' => 'سربيائي (بوسنيا ۽ هرزيگووينا)',
         'sr_Cyrl' => 'سربيائي (سيريلي)',
-        'sr_Cyrl_BA' => 'سربيائي (سيريلي, بوسنيا ۽ هرزوگووينا)',
+        'sr_Cyrl_BA' => 'سربيائي (سيريلي, بوسنيا ۽ هرزيگووينا)',
         'sr_Cyrl_ME' => 'سربيائي (سيريلي, مونٽي نيگرو)',
         'sr_Cyrl_RS' => 'سربيائي (سيريلي, سربيا)',
         'sr_Latn' => 'سربيائي (لاطيني)',
-        'sr_Latn_BA' => 'سربيائي (لاطيني, بوسنيا ۽ هرزوگووينا)',
+        'sr_Latn_BA' => 'سربيائي (لاطيني, بوسنيا ۽ هرزيگووينا)',
         'sr_Latn_ME' => 'سربيائي (لاطيني, مونٽي نيگرو)',
         'sr_Latn_RS' => 'سربيائي (لاطيني, سربيا)',
         'sr_ME' => 'سربيائي (مونٽي نيگرو)',
@@ -648,15 +663,15 @@
         'za_CN' => 'جوئنگ (چين)',
         'zh' => 'چيني',
         'zh_CN' => 'چيني (چين)',
-        'zh_HK' => 'چيني (هانگ ڪانگ SAR)',
+        'zh_HK' => 'چيني (هانگ ڪانگ SAR چين)',
         'zh_Hans' => 'چيني (سادي)',
         'zh_Hans_CN' => 'چيني (سادي, چين)',
-        'zh_Hans_HK' => 'چيني (سادي, هانگ ڪانگ SAR)',
+        'zh_Hans_HK' => 'چيني (سادي, هانگ ڪانگ SAR چين)',
         'zh_Hans_MO' => 'چيني (سادي, مڪائو SAR چين)',
         'zh_Hans_MY' => 'چيني (سادي, ملائيشيا)',
         'zh_Hans_SG' => 'چيني (سادي, سنگاپور)',
         'zh_Hant' => 'چيني (روايتي)',
-        'zh_Hant_HK' => 'چيني (روايتي, هانگ ڪانگ SAR)',
+        'zh_Hant_HK' => 'چيني (روايتي, هانگ ڪانگ SAR چين)',
         'zh_Hant_MO' => 'چيني (روايتي, مڪائو SAR چين)',
         'zh_Hant_MY' => 'چيني (روايتي, ملائيشيا)',
         'zh_Hant_TW' => 'چيني (روايتي, تائیوان)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/se_FI.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/se_FI.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/se_FI.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/se_FI.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,8 @@
         'hy' => 'armenagiella',
         'hy_AM' => 'armenagiella (Armenia)',
         'kk' => 'kazakhgiella',
+        'kk_Arab' => 'kazakhgiella (arábalaš)',
+        'kk_Arab_CN' => 'kazakhgiella (arábalaš, Kiinná)',
         'kk_Cyrl' => 'kazakhgiella (kyrillalaš)',
         'kk_Cyrl_KZ' => 'kazakhgiella (kyrillalaš, Kasakstan)',
         'kk_KZ' => 'kazakhgiella (Kasakstan)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/se.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/se.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/se.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/se.php	2026-05-20 10:56:49.000000000 +0200
@@ -104,6 +104,7 @@
         'en_DE' => 'eaŋgalsgiella (Duiska)',
         'en_DK' => 'eaŋgalsgiella (Dánmárku)',
         'en_DM' => 'eaŋgalsgiella (Dominica)',
+        'en_EE' => 'eaŋgalsgiella (Estlánda)',
         'en_ER' => 'eaŋgalsgiella (Eritrea)',
         'en_ES' => 'eaŋgalsgiella (Spánia)',
         'en_FI' => 'eaŋgalsgiella (Suopma)',
@@ -113,6 +114,7 @@
         'en_FR' => 'eaŋgalsgiella (Frankriika)',
         'en_GB' => 'eaŋgalsgiella (Stuorra-Británnia)',
         'en_GD' => 'eaŋgalsgiella (Grenada)',
+        'en_GE' => 'eaŋgalsgiella (Georgia)',
         'en_GG' => 'eaŋgalsgiella (Guernsey)',
         'en_GH' => 'eaŋgalsgiella (Ghana)',
         'en_GI' => 'eaŋgalsgiella (Gibraltar)',
@@ -130,6 +132,7 @@
         'en_IT' => 'eaŋgalsgiella (Itália)',
         'en_JE' => 'eaŋgalsgiella (Jersey)',
         'en_JM' => 'eaŋgalsgiella (Jamaica)',
+        'en_JP' => 'eaŋgalsgiella (Japána)',
         'en_KE' => 'eaŋgalsgiella (Kenia)',
         'en_KI' => 'eaŋgalsgiella (Kiribati)',
         'en_KN' => 'eaŋgalsgiella (Saint Kitts ja Nevis)',
@@ -137,6 +140,8 @@
         'en_LC' => 'eaŋgalsgiella (Saint Lucia)',
         'en_LR' => 'eaŋgalsgiella (Liberia)',
         'en_LS' => 'eaŋgalsgiella (Lesotho)',
+        'en_LT' => 'eaŋgalsgiella (Lietuva)',
+        'en_LV' => 'eaŋgalsgiella (Látvia)',
         'en_MG' => 'eaŋgalsgiella (Madagaskar)',
         'en_MH' => 'eaŋgalsgiella (Marshallsullot)',
         'en_MO' => 'eaŋgalsgiella (Makáo)',
@@ -183,6 +188,7 @@
         'en_TT' => 'eaŋgalsgiella (Trinidad ja Tobago)',
         'en_TV' => 'eaŋgalsgiella (Tuvalu)',
         'en_TZ' => 'eaŋgalsgiella (Tanzánia)',
+        'en_UA' => 'eaŋgalsgiella (Ukraina)',
         'en_UG' => 'eaŋgalsgiella (Uganda)',
         'en_US' => 'eaŋgalsgiella (Amerihká ovttastuvvan stáhtat)',
         'en_VC' => 'eaŋgalsgiella (Saint Vincent ja Grenadine)',
@@ -317,6 +323,8 @@
         'ka' => 'georgiagiella',
         'ka_GE' => 'georgiagiella (Georgia)',
         'kk' => 'kazakgiella',
+        'kk_Arab' => 'kazakgiella (arába)',
+        'kk_Arab_CN' => 'kazakgiella (arába, Kiinná)',
         'kk_Cyrl' => 'kazakgiella (kyrillalaš)',
         'kk_Cyrl_KZ' => 'kazakgiella (kyrillalaš, Kasakstan)',
         'kk_KZ' => 'kazakgiella (Kasakstan)',
@@ -327,6 +335,11 @@
         'ko_KP' => 'koreagiella (Davvi-Korea)',
         'ko_KR' => 'koreagiella (Mátta-Korea)',
         'ku' => 'kurdigiella',
+        'ku_Latn' => 'kurdigiella (láhtenaš)',
+        'ku_Latn_IQ' => 'kurdigiella (láhtenaš, Irak)',
+        'ku_Latn_SY' => 'kurdigiella (láhtenaš, Syria)',
+        'ku_Latn_TR' => 'kurdigiella (láhtenaš, Durka)',
+        'ku_SY' => 'kurdigiella (Syria)',
         'ku_TR' => 'kurdigiella (Durka)',
         'kw' => 'kornagiella',
         'kw_GB' => 'kornagiella (Stuorra-Británnia)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sg.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,6 +75,7 @@
         'en_DE' => 'Anglëe (Zâmani)',
         'en_DK' => 'Anglëe (Danemêrke)',
         'en_DM' => 'Anglëe (Dömïnîka)',
+        'en_EE' => 'Anglëe (Estonïi)',
         'en_ER' => 'Anglëe (Eritrëe)',
         'en_ES' => 'Anglëe (Espânye)',
         'en_FI' => 'Anglëe (Fëlânde)',
@@ -84,6 +85,7 @@
         'en_FR' => 'Anglëe (Farânzi)',
         'en_GB' => 'Anglëe (Ködörögbïä--Ôko)',
         'en_GD' => 'Anglëe (Grenâda)',
+        'en_GE' => 'Anglëe (Zorzïi)',
         'en_GH' => 'Anglëe (Ganäa)',
         'en_GI' => 'Anglëe (Zibraltära, Zibaratära)',
         'en_GM' => 'Anglëe (Gambïi)',
@@ -96,6 +98,7 @@
         'en_IN' => 'Anglëe (Ênnde)',
         'en_IT' => 'Anglëe (Italùii)',
         'en_JM' => 'Anglëe (Zamaîka)',
+        'en_JP' => 'Anglëe (Zapöon)',
         'en_KE' => 'Anglëe (Kenyäa)',
         'en_KI' => 'Anglëe (Kiribati)',
         'en_KN' => 'Anglëe (Sên-Krïstôfo-na-Nevîsi)',
@@ -103,6 +106,8 @@
         'en_LC' => 'Anglëe (Sênt-Lisïi)',
         'en_LR' => 'Anglëe (Liberïa)',
         'en_LS' => 'Anglëe (Lesôtho)',
+        'en_LT' => 'Anglëe (Lituanïi)',
+        'en_LV' => 'Anglëe (Letonùii)',
         'en_MG' => 'Anglëe (Madagaskära)',
         'en_MH' => 'Anglëe (Âzûâ Märshâl)',
         'en_MP' => 'Anglëe (Âzûâ Märïâni tî Banga)',
@@ -146,6 +151,7 @@
         'en_TT' => 'Anglëe (Trinitùee na Tobagö)',
         'en_TV' => 'Anglëe (Tüvalü)',
         'en_TZ' => 'Anglëe (Tanzanïi)',
+        'en_UA' => 'Anglëe (Ukrêni)',
         'en_UG' => 'Anglëe (Ugandäa)',
         'en_US' => 'Anglëe (ÂLeaa-Ôko tî Amerika)',
         'en_VC' => 'Anglëe (Sên-Vensäan na âGrenadîni)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/si.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/si.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/si.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/si.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'අසර්බයිජාන් (සිරිලික්, අසර්බයිජානය)',
         'az_Latn' => 'අසර්බයිජාන් (ලතින්)',
         'az_Latn_AZ' => 'අසර්බයිජාන් (ලතින්, අසර්බයිජානය)',
+        'ba' => 'බාෂ්කිර්',
+        'ba_RU' => 'බාෂ්කිර් (රුසියාව)',
         'be' => 'බෙලරුසියානු',
         'be_BY' => 'බෙලරුසියානු (බෙලරුස්)',
         'bg' => 'බල්ගේරියානු',
@@ -125,6 +127,7 @@
         'en_DE' => 'ඉංග්‍රීසි (ජර්මනිය)',
         'en_DK' => 'ඉංග්‍රීසි (ඩෙන්මාර්කය)',
         'en_DM' => 'ඉංග්‍රීසි (ඩොමිනිකාව)',
+        'en_EE' => 'ඉංග්‍රීසි (එස්තෝනියාව)',
         'en_ER' => 'ඉංග්‍රීසි (එරිත්‍රියාව)',
         'en_ES' => 'ඉංග්‍රීසි (ස්පාඤ්ඤය)',
         'en_FI' => 'ඉංග්‍රීසි (ෆින්ලන්තය)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ඉංග්‍රීසි (ප්‍රංශය)',
         'en_GB' => 'ඉංග්‍රීසි (එක්සත් රාජධානිය)',
         'en_GD' => 'ඉංග්‍රීසි (ග්‍රැනඩාව)',
+        'en_GE' => 'ඉංග්‍රීසි (ජෝර්ජියාව)',
         'en_GG' => 'ඉංග්‍රීසි (ගර්න්සිය)',
         'en_GH' => 'ඉංග්‍රීසි (ඝානාව)',
         'en_GI' => 'ඉංග්‍රීසි (ජිබ්‍රෝල්ටාව)',
@@ -152,6 +156,7 @@
         'en_IT' => 'ඉංග්‍රීසි (ඉතාලිය)',
         'en_JE' => 'ඉංග්‍රීසි (ජර්සි)',
         'en_JM' => 'ඉංග්‍රීසි (ජැමෙයිකාව)',
+        'en_JP' => 'ඉංග්‍රීසි (ජපානය)',
         'en_KE' => 'ඉංග්‍රීසි (කෙන්යාව)',
         'en_KI' => 'ඉංග්‍රීසි (කිරිබති)',
         'en_KN' => 'ඉංග්‍රීසි (ශාන්ත කිට්ස් සහ නේවිස්)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ඉංග්‍රීසි (ශාන්ත ලුසියා)',
         'en_LR' => 'ඉංග්‍රීසි (ලයිබීරියාව)',
         'en_LS' => 'ඉංග්‍රීසි (ලෙසතෝ)',
+        'en_LT' => 'ඉංග්‍රීසි (ලිතුවේනියාව)',
+        'en_LV' => 'ඉංග්‍රීසි (ලැට්වියාව)',
         'en_MG' => 'ඉංග්‍රීසි (මැඩගස්කරය)',
         'en_MH' => 'ඉංග්‍රීසි (මාෂල් දූපත්)',
         'en_MO' => 'ඉංග්‍රීසි (මැකාවු විශේෂ පරිපාලන කලාපය චීනය)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ඉංග්‍රීසි (ට්‍රිනිඩෑඩ් සහ ටොබැගෝ)',
         'en_TV' => 'ඉංග්‍රීසි (ටුවාලූ)',
         'en_TZ' => 'ඉංග්‍රීසි (ටැන්සානියාව)',
+        'en_UA' => 'ඉංග්‍රීසි (යුක්රේනය)',
         'en_UG' => 'ඉංග්‍රීසි (උගන්ඩාව)',
         'en_UM' => 'ඉංග්‍රීසි (එක්සත් ජනපද ඈත දූපත්)',
         'en_US' => 'ඉංග්‍රීසි (එක්සත් ජනපදය)',
@@ -391,6 +399,8 @@
         'ki' => 'කිකුයු',
         'ki_KE' => 'කිකුයු (කෙන්යාව)',
         'kk' => 'කසාඛ්',
+        'kk_Arab' => 'කසාඛ් (අරාබි)',
+        'kk_Arab_CN' => 'කසාඛ් (අරාබි, චීනය)',
         'kk_Cyrl' => 'කසාඛ් (සිරිලික්)',
         'kk_Cyrl_KZ' => 'කසාඛ් (සිරිලික්, කසකස්තානය)',
         'kk_KZ' => 'කසාඛ් (කසකස්තානය)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'කාෂ්මීර් (දේවනාගරී, ඉන්දියාව)',
         'ks_IN' => 'කාෂ්මීර් (ඉන්දියාව)',
         'ku' => 'කුර්දි',
+        'ku_Latn' => 'කුර්දි (ලතින්)',
+        'ku_Latn_IQ' => 'කුර්දි (ලතින්, ඉරාකය)',
+        'ku_Latn_SY' => 'කුර්දි (ලතින්, සිරියාව)',
+        'ku_Latn_TR' => 'කුර්දි (ලතින්, තුර්කිය)',
+        'ku_SY' => 'කුර්දි (සිරියාව)',
         'ku_TR' => 'කුර්දි (තුර්කිය)',
         'kw' => 'කෝනීසියානු',
         'kw_GB' => 'කෝනීසියානු (එක්සත් රාජධානිය)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sk.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbajdžančina (cyrilika, Azerbajdžan)',
         'az_Latn' => 'azerbajdžančina (latinka)',
         'az_Latn_AZ' => 'azerbajdžančina (latinka, Azerbajdžan)',
+        'ba' => 'baškirčina',
+        'ba_RU' => 'baškirčina (Rusko)',
         'be' => 'bieloruština',
         'be_BY' => 'bieloruština (Bielorusko)',
         'bg' => 'bulharčina',
@@ -125,6 +127,7 @@
         'en_DE' => 'angličtina (Nemecko)',
         'en_DK' => 'angličtina (Dánsko)',
         'en_DM' => 'angličtina (Dominika)',
+        'en_EE' => 'angličtina (Estónsko)',
         'en_ER' => 'angličtina (Eritrea)',
         'en_ES' => 'angličtina (Španielsko)',
         'en_FI' => 'angličtina (Fínsko)',
@@ -134,6 +137,7 @@
         'en_FR' => 'angličtina (Francúzsko)',
         'en_GB' => 'angličtina (Spojené kráľovstvo)',
         'en_GD' => 'angličtina (Grenada)',
+        'en_GE' => 'angličtina (Gruzínsko)',
         'en_GG' => 'angličtina (Guernsey)',
         'en_GH' => 'angličtina (Ghana)',
         'en_GI' => 'angličtina (Gibraltár)',
@@ -152,6 +156,7 @@
         'en_IT' => 'angličtina (Taliansko)',
         'en_JE' => 'angličtina (Jersey)',
         'en_JM' => 'angličtina (Jamajka)',
+        'en_JP' => 'angličtina (Japonsko)',
         'en_KE' => 'angličtina (Keňa)',
         'en_KI' => 'angličtina (Kiribati)',
         'en_KN' => 'angličtina (Svätý Krištof a Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'angličtina (Svätá Lucia)',
         'en_LR' => 'angličtina (Libéria)',
         'en_LS' => 'angličtina (Lesotho)',
+        'en_LT' => 'angličtina (Litva)',
+        'en_LV' => 'angličtina (Lotyšsko)',
         'en_MG' => 'angličtina (Madagaskar)',
         'en_MH' => 'angličtina (Marshallove ostrovy)',
         'en_MO' => 'angličtina (Macao – OAO Číny)',
@@ -205,6 +212,7 @@
         'en_TT' => 'angličtina (Trinidad a Tobago)',
         'en_TV' => 'angličtina (Tuvalu)',
         'en_TZ' => 'angličtina (Tanzánia)',
+        'en_UA' => 'angličtina (Ukrajina)',
         'en_UG' => 'angličtina (Uganda)',
         'en_UM' => 'angličtina (Menšie odľahlé ostrovy USA)',
         'en_US' => 'angličtina (Spojené štáty)',
@@ -391,6 +399,8 @@
         'ki' => 'kikujčina',
         'ki_KE' => 'kikujčina (Keňa)',
         'kk' => 'kazaština',
+        'kk_Arab' => 'kazaština (arabské)',
+        'kk_Arab_CN' => 'kazaština (arabské, Čína)',
         'kk_Cyrl' => 'kazaština (cyrilika)',
         'kk_Cyrl_KZ' => 'kazaština (cyrilika, Kazachstan)',
         'kk_KZ' => 'kazaština (Kazachstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kašmírčina (dévanágarí, India)',
         'ks_IN' => 'kašmírčina (India)',
         'ku' => 'kurdčina',
+        'ku_Latn' => 'kurdčina (latinka)',
+        'ku_Latn_IQ' => 'kurdčina (latinka, Irak)',
+        'ku_Latn_SY' => 'kurdčina (latinka, Sýria)',
+        'ku_Latn_TR' => 'kurdčina (latinka, Turecko)',
+        'ku_SY' => 'kurdčina (Sýria)',
         'ku_TR' => 'kurdčina (Turecko)',
         'kw' => 'kornčina',
         'kw_GB' => 'kornčina (Spojené kráľovstvo)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sl.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbajdžanščina (cirilica, Azerbajdžan)',
         'az_Latn' => 'azerbajdžanščina (latinica)',
         'az_Latn_AZ' => 'azerbajdžanščina (latinica, Azerbajdžan)',
+        'ba' => 'baškirščina',
+        'ba_RU' => 'baškirščina (Rusija)',
         'be' => 'beloruščina',
         'be_BY' => 'beloruščina (Belorusija)',
         'bg' => 'bolgarščina',
@@ -125,6 +127,7 @@
         'en_DE' => 'angleščina (Nemčija)',
         'en_DK' => 'angleščina (Danska)',
         'en_DM' => 'angleščina (Dominika)',
+        'en_EE' => 'angleščina (Estonija)',
         'en_ER' => 'angleščina (Eritreja)',
         'en_ES' => 'angleščina (Španija)',
         'en_FI' => 'angleščina (Finska)',
@@ -134,12 +137,13 @@
         'en_FR' => 'angleščina (Francija)',
         'en_GB' => 'angleščina (Združeno kraljestvo)',
         'en_GD' => 'angleščina (Grenada)',
+        'en_GE' => 'angleščina (Gruzija)',
         'en_GG' => 'angleščina (Guernsey)',
         'en_GH' => 'angleščina (Gana)',
         'en_GI' => 'angleščina (Gibraltar)',
         'en_GM' => 'angleščina (Gambija)',
         'en_GS' => 'angleščina (Južna Georgia in Južni Sandwichevi otoki)',
-        'en_GU' => 'angleščina (Guam)',
+        'en_GU' => 'angleščina (Gvam)',
         'en_GY' => 'angleščina (Gvajana)',
         'en_HK' => 'angleščina (Posebno upravno območje Ljudske republike Kitajske Hongkong)',
         'en_HU' => 'angleščina (Madžarska)',
@@ -152,20 +156,23 @@
         'en_IT' => 'angleščina (Italija)',
         'en_JE' => 'angleščina (Jersey)',
         'en_JM' => 'angleščina (Jamajka)',
+        'en_JP' => 'angleščina (Japonska)',
         'en_KE' => 'angleščina (Kenija)',
         'en_KI' => 'angleščina (Kiribati)',
-        'en_KN' => 'angleščina (Saint Kitts in Nevis)',
-        'en_KY' => 'angleščina (Kajmanski otoki)',
-        'en_LC' => 'angleščina (Saint Lucia)',
+        'en_KN' => 'angleščina (Sveti Krištof in Nevis)',
+        'en_KY' => 'angleščina (Kajmanji otoki)',
+        'en_LC' => 'angleščina (Sveta Lucija)',
         'en_LR' => 'angleščina (Liberija)',
         'en_LS' => 'angleščina (Lesoto)',
+        'en_LT' => 'angleščina (Litva)',
+        'en_LV' => 'angleščina (Latvija)',
         'en_MG' => 'angleščina (Madagaskar)',
         'en_MH' => 'angleščina (Marshallovi otoki)',
-        'en_MO' => 'angleščina (Posebno upravno območje Ljudske republike Kitajske Macao)',
+        'en_MO' => 'angleščina (Posebno upravno območje Kitajske Makav)',
         'en_MP' => 'angleščina (Severni Marianski otoki)',
         'en_MS' => 'angleščina (Montserrat)',
         'en_MT' => 'angleščina (Malta)',
-        'en_MU' => 'angleščina (Mauritius)',
+        'en_MU' => 'angleščina (Mavricij)',
         'en_MV' => 'angleščina (Maldivi)',
         'en_MW' => 'angleščina (Malavi)',
         'en_MY' => 'angleščina (Malezija)',
@@ -184,7 +191,7 @@
         'en_PN' => 'angleščina (Pitcairn)',
         'en_PR' => 'angleščina (Portoriko)',
         'en_PT' => 'angleščina (Portugalska)',
-        'en_PW' => 'angleščina (Palau)',
+        'en_PW' => 'angleščina (Palav)',
         'en_RO' => 'angleščina (Romunija)',
         'en_RW' => 'angleščina (Ruanda)',
         'en_SB' => 'angleščina (Salomonovi otoki)',
@@ -197,18 +204,19 @@
         'en_SK' => 'angleščina (Slovaška)',
         'en_SL' => 'angleščina (Sierra Leone)',
         'en_SS' => 'angleščina (Južni Sudan)',
-        'en_SX' => 'angleščina (Sint Maarten)',
+        'en_SX' => 'angleščina (Nizozemski Sveti Martin)',
         'en_SZ' => 'angleščina (Esvatini)',
         'en_TC' => 'angleščina (Otoki Turks in Caicos)',
-        'en_TK' => 'angleščina (Tokelau)',
+        'en_TK' => 'angleščina (Tokelav)',
         'en_TO' => 'angleščina (Tonga)',
         'en_TT' => 'angleščina (Trinidad in Tobago)',
         'en_TV' => 'angleščina (Tuvalu)',
         'en_TZ' => 'angleščina (Tanzanija)',
+        'en_UA' => 'angleščina (Ukrajina)',
         'en_UG' => 'angleščina (Uganda)',
         'en_UM' => 'angleščina (Stranski zunanji otoki Združenih držav)',
         'en_US' => 'angleščina (Združene države Amerike)',
-        'en_VC' => 'angleščina (Saint Vincent in Grenadine)',
+        'en_VC' => 'angleščina (Sveti Vincencij in Grenadine)',
         'en_VG' => 'angleščina (Britanski Deviški otoki)',
         'en_VI' => 'angleščina (Ameriški Deviški otoki)',
         'en_VU' => 'angleščina (Vanuatu)',
@@ -293,7 +301,7 @@
         'fr_BF' => 'francoščina (Burkina Faso)',
         'fr_BI' => 'francoščina (Burundi)',
         'fr_BJ' => 'francoščina (Benin)',
-        'fr_BL' => 'francoščina (Saint Barthélemy)',
+        'fr_BL' => 'francoščina (Sveti Bartolomej)',
         'fr_CA' => 'francoščina (Kanada)',
         'fr_CD' => 'francoščina (Demokratična republika Kongo)',
         'fr_CF' => 'francoščina (Srednjeafriška republika)',
@@ -307,23 +315,23 @@
         'fr_GA' => 'francoščina (Gabon)',
         'fr_GF' => 'francoščina (Francoska Gvajana)',
         'fr_GN' => 'francoščina (Gvineja)',
-        'fr_GP' => 'francoščina (Guadeloupe)',
+        'fr_GP' => 'francoščina (Gvadelup)',
         'fr_GQ' => 'francoščina (Ekvatorialna Gvineja)',
         'fr_HT' => 'francoščina (Haiti)',
         'fr_KM' => 'francoščina (Komori)',
         'fr_LU' => 'francoščina (Luksemburg)',
         'fr_MA' => 'francoščina (Maroko)',
         'fr_MC' => 'francoščina (Monako)',
-        'fr_MF' => 'francoščina (Saint Martin)',
+        'fr_MF' => 'francoščina (Francoski Sveti Martin)',
         'fr_MG' => 'francoščina (Madagaskar)',
         'fr_ML' => 'francoščina (Mali)',
         'fr_MQ' => 'francoščina (Martinik)',
         'fr_MR' => 'francoščina (Mavretanija)',
-        'fr_MU' => 'francoščina (Mauritius)',
+        'fr_MU' => 'francoščina (Mavricij)',
         'fr_NC' => 'francoščina (Nova Kaledonija)',
         'fr_NE' => 'francoščina (Niger)',
         'fr_PF' => 'francoščina (Francoska Polinezija)',
-        'fr_PM' => 'francoščina (Saint Pierre in Miquelon)',
+        'fr_PM' => 'francoščina (Sveta Peter in Mihael)',
         'fr_RE' => 'francoščina (Reunion)',
         'fr_RW' => 'francoščina (Ruanda)',
         'fr_SC' => 'francoščina (Sejšeli)',
@@ -391,6 +399,8 @@
         'ki' => 'kikujščina',
         'ki_KE' => 'kikujščina (Kenija)',
         'kk' => 'kazaščina',
+        'kk_Arab' => 'kazaščina (arabski)',
+        'kk_Arab_CN' => 'kazaščina (arabski, Kitajska)',
         'kk_Cyrl' => 'kazaščina (cirilica)',
         'kk_Cyrl_KZ' => 'kazaščina (cirilica, Kazahstan)',
         'kk_KZ' => 'kazaščina (Kazahstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kašmirščina (devanagarščica, Indija)',
         'ks_IN' => 'kašmirščina (Indija)',
         'ku' => 'kurdščina',
+        'ku_Latn' => 'kurdščina (latinica)',
+        'ku_Latn_IQ' => 'kurdščina (latinica, Irak)',
+        'ku_Latn_SY' => 'kurdščina (latinica, Sirija)',
+        'ku_Latn_TR' => 'kurdščina (latinica, Turčija)',
+        'ku_SY' => 'kurdščina (Sirija)',
         'ku_TR' => 'kurdščina (Turčija)',
         'kw' => 'kornijščina',
         'kw_GB' => 'kornijščina (Združeno kraljestvo)',
@@ -469,7 +484,7 @@
         'nl_CW' => 'nizozemščina (Curaçao)',
         'nl_NL' => 'nizozemščina (Nizozemska)',
         'nl_SR' => 'nizozemščina (Surinam)',
-        'nl_SX' => 'nizozemščina (Sint Maarten)',
+        'nl_SX' => 'nizozemščina (Nizozemski Sveti Martin)',
         'nn' => 'novonorveščina',
         'nn_NO' => 'novonorveščina (Norveška)',
         'no' => 'norveščina',
@@ -505,10 +520,10 @@
         'pt_GQ' => 'portugalščina (Ekvatorialna Gvineja)',
         'pt_GW' => 'portugalščina (Gvineja Bissau)',
         'pt_LU' => 'portugalščina (Luksemburg)',
-        'pt_MO' => 'portugalščina (Posebno upravno območje Ljudske republike Kitajske Macao)',
+        'pt_MO' => 'portugalščina (Posebno upravno območje Kitajske Makav)',
         'pt_MZ' => 'portugalščina (Mozambik)',
         'pt_PT' => 'portugalščina (Portugalska)',
-        'pt_ST' => 'portugalščina (Sao Tome in Principe)',
+        'pt_ST' => 'portugalščina (Sveti Tomaž in Princ)',
         'pt_TL' => 'portugalščina (Timor-Leste)',
         'qu' => 'kečuanščina',
         'qu_BO' => 'kečuanščina (Bolivija)',
@@ -585,7 +600,7 @@
         'su_Latn' => 'sundanščina (latinica)',
         'su_Latn_ID' => 'sundanščina (latinica, Indonezija)',
         'sv' => 'švedščina',
-        'sv_AX' => 'švedščina (Ålandski otoki)',
+        'sv_AX' => 'švedščina (Alandski otoki)',
         'sv_FI' => 'švedščina (Finska)',
         'sv_SE' => 'švedščina (Švedska)',
         'sw' => 'svahili',
@@ -656,15 +671,15 @@
         'zh_Hans' => 'kitajščina (poenostavljena pisava)',
         'zh_Hans_CN' => 'kitajščina (poenostavljena pisava, Kitajska)',
         'zh_Hans_HK' => 'kitajščina (poenostavljena pisava, Posebno upravno območje Ljudske republike Kitajske Hongkong)',
-        'zh_Hans_MO' => 'kitajščina (poenostavljena pisava, Posebno upravno območje Ljudske republike Kitajske Macao)',
+        'zh_Hans_MO' => 'kitajščina (poenostavljena pisava, Posebno upravno območje Kitajske Makav)',
         'zh_Hans_MY' => 'kitajščina (poenostavljena pisava, Malezija)',
         'zh_Hans_SG' => 'kitajščina (poenostavljena pisava, Singapur)',
         'zh_Hant' => 'kitajščina (tradicionalna pisava)',
         'zh_Hant_HK' => 'kitajščina (tradicionalna pisava, Posebno upravno območje Ljudske republike Kitajske Hongkong)',
-        'zh_Hant_MO' => 'kitajščina (tradicionalna pisava, Posebno upravno območje Ljudske republike Kitajske Macao)',
+        'zh_Hant_MO' => 'kitajščina (tradicionalna pisava, Posebno upravno območje Kitajske Makav)',
         'zh_Hant_MY' => 'kitajščina (tradicionalna pisava, Malezija)',
         'zh_Hant_TW' => 'kitajščina (tradicionalna pisava, Tajvan)',
-        'zh_MO' => 'kitajščina (Posebno upravno območje Ljudske republike Kitajske Macao)',
+        'zh_MO' => 'kitajščina (Posebno upravno območje Kitajske Makav)',
         'zh_SG' => 'kitajščina (Singapur)',
         'zh_TW' => 'kitajščina (Tajvan)',
         'zu' => 'zulujščina',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sn.php	2026-05-20 10:56:49.000000000 +0200
@@ -74,6 +74,7 @@
         'en_DE' => 'Chirungu (Germany)',
         'en_DK' => 'Chirungu (Denmark)',
         'en_DM' => 'Chirungu (Dominica)',
+        'en_EE' => 'Chirungu (Estonia)',
         'en_ER' => 'Chirungu (Eritrea)',
         'en_ES' => 'Chirungu (Spain)',
         'en_FI' => 'Chirungu (Finland)',
@@ -83,6 +84,7 @@
         'en_FR' => 'Chirungu (France)',
         'en_GB' => 'Chirungu (United Kingdom)',
         'en_GD' => 'Chirungu (Grenada)',
+        'en_GE' => 'Chirungu (Georgia)',
         'en_GH' => 'Chirungu (Ghana)',
         'en_GI' => 'Chirungu (Gibraltar)',
         'en_GM' => 'Chirungu (Gambia)',
@@ -95,6 +97,7 @@
         'en_IN' => 'Chirungu (India)',
         'en_IT' => 'Chirungu (Italy)',
         'en_JM' => 'Chirungu (Jamaica)',
+        'en_JP' => 'Chirungu (Japan)',
         'en_KE' => 'Chirungu (Kenya)',
         'en_KI' => 'Chirungu (Kiribati)',
         'en_KN' => 'Chirungu (Saint Kitts and Nevis)',
@@ -102,6 +105,8 @@
         'en_LC' => 'Chirungu (Saint Lucia)',
         'en_LR' => 'Chirungu (Liberia)',
         'en_LS' => 'Chirungu (Lesotho)',
+        'en_LT' => 'Chirungu (Lithuania)',
+        'en_LV' => 'Chirungu (Latvia)',
         'en_MG' => 'Chirungu (Madagascar)',
         'en_MH' => 'Chirungu (Zvitsuwa zveMarshall)',
         'en_MP' => 'Chirungu (Zvitsuwa zvekumaodzanyemba eMariana)',
@@ -145,6 +150,7 @@
         'en_TT' => 'Chirungu (Trinidad and Tobago)',
         'en_TV' => 'Chirungu (Tuvalu)',
         'en_TZ' => 'Chirungu (Tanzania)',
+        'en_UA' => 'Chirungu (Ukraine)',
         'en_UG' => 'Chirungu (Uganda)',
         'en_US' => 'Chirungu (Amerika)',
         'en_VC' => 'Chirungu (Saint Vincent and the Grenadines)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/so.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/so.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/so.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/so.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Asarbayjan (Siriylik, Asarbajan)',
         'az_Latn' => 'Asarbayjan (Laatiin)',
         'az_Latn_AZ' => 'Asarbayjan (Laatiin, Asarbajan)',
+        'ba' => 'Bashkir',
+        'ba_RU' => 'Bashkir (Ruush)',
         'be' => 'Beleruusiyaan',
         'be_BY' => 'Beleruusiyaan (Belarus)',
         'bg' => 'Bulgeeriyaan',
@@ -125,6 +127,7 @@
         'en_DE' => 'Ingiriisi (Jarmal)',
         'en_DK' => 'Ingiriisi (Denmark)',
         'en_DM' => 'Ingiriisi (Dominika)',
+        'en_EE' => 'Ingiriisi (Estooniya)',
         'en_ER' => 'Ingiriisi (Eritreeya)',
         'en_ES' => 'Ingiriisi (Isbeyn)',
         'en_FI' => 'Ingiriisi (Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Ingiriisi (Faransiis)',
         'en_GB' => 'Ingiriisi (Boqortooyada Midowday)',
         'en_GD' => 'Ingiriisi (Giriinaada)',
+        'en_GE' => 'Ingiriisi (Joorjiya)',
         'en_GG' => 'Ingiriisi (Guurnsey)',
         'en_GH' => 'Ingiriisi (Gaana)',
         'en_GI' => 'Ingiriisi (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Ingiriisi (Talyaani)',
         'en_JE' => 'Ingiriisi (Jaarsey)',
         'en_JM' => 'Ingiriisi (Jamaaika)',
+        'en_JP' => 'Ingiriisi (Jabaan)',
         'en_KE' => 'Ingiriisi (Kenya)',
         'en_KI' => 'Ingiriisi (Kiribati)',
         'en_KN' => 'Ingiriisi (St. Kitts iyo Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Ingiriisi (St. Lusia)',
         'en_LR' => 'Ingiriisi (Laybeeriya)',
         'en_LS' => 'Ingiriisi (Losooto)',
+        'en_LT' => 'Ingiriisi (Lituweeniya)',
+        'en_LV' => 'Ingiriisi (Latfiya)',
         'en_MG' => 'Ingiriisi (Madagaskar)',
         'en_MH' => 'Ingiriisi (Jasiiradda Maarshal)',
         'en_MO' => 'Ingiriisi (Makaaw)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Ingiriisi (Tirinidaad & Tobago)',
         'en_TV' => 'Ingiriisi (Tufaalu)',
         'en_TZ' => 'Ingiriisi (Tansaaniya)',
+        'en_UA' => 'Ingiriisi (Yukrayn)',
         'en_UG' => 'Ingiriisi (Ugaanda)',
         'en_UM' => 'Ingiriisi (Jasiiradaha ka baxsan Maraykanka)',
         'en_US' => 'Ingiriisi (Maraykanka)',
@@ -391,6 +399,8 @@
         'ki' => 'Kikuuyu',
         'ki_KE' => 'Kikuuyu (Kenya)',
         'kk' => 'Kasaaq',
+        'kk_Arab' => 'Kasaaq (Carabi)',
+        'kk_Arab_CN' => 'Kasaaq (Carabi, Shiinaha)',
         'kk_Cyrl' => 'Kasaaq (Siriylik)',
         'kk_Cyrl_KZ' => 'Kasaaq (Siriylik, Kasaakhistaan)',
         'kk_KZ' => 'Kasaaq (Kasaakhistaan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Kaashmiir (Dhefangaari, Hindiya)',
         'ks_IN' => 'Kaashmiir (Hindiya)',
         'ku' => 'Kurdishka',
+        'ku_Latn' => 'Kurdishka (Laatiin)',
+        'ku_Latn_IQ' => 'Kurdishka (Laatiin, Ciraaq)',
+        'ku_Latn_SY' => 'Kurdishka (Laatiin, Suuriya)',
+        'ku_Latn_TR' => 'Kurdishka (Laatiin, Turki)',
+        'ku_SY' => 'Kurdishka (Suuriya)',
         'ku_TR' => 'Kurdishka (Turki)',
         'kw' => 'Kornish',
         'kw_GB' => 'Kornish (Boqortooyada Midowday)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sq.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sq.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sq.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sq.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbajxhanisht (cirilik, Azerbajxhan)',
         'az_Latn' => 'azerbajxhanisht (latin)',
         'az_Latn_AZ' => 'azerbajxhanisht (latin, Azerbajxhan)',
+        'ba' => 'bashkirisht',
+        'ba_RU' => 'bashkirisht (Rusi)',
         'be' => 'bjellorusisht',
         'be_BY' => 'bjellorusisht (Bjellorusi)',
         'bg' => 'bullgarisht',
@@ -125,6 +127,7 @@
         'en_DE' => 'anglisht (Gjermani)',
         'en_DK' => 'anglisht (Danimarkë)',
         'en_DM' => 'anglisht (Dominikë)',
+        'en_EE' => 'anglisht (Estoni)',
         'en_ER' => 'anglisht (Eritre)',
         'en_ES' => 'anglisht (Spanjë)',
         'en_FI' => 'anglisht (Finlandë)',
@@ -134,6 +137,7 @@
         'en_FR' => 'anglisht (Francë)',
         'en_GB' => 'anglisht (Mbretëria e Bashkuar)',
         'en_GD' => 'anglisht (Granadë)',
+        'en_GE' => 'anglisht (Gjeorgji)',
         'en_GG' => 'anglisht (Gernsej)',
         'en_GH' => 'anglisht (Ganë)',
         'en_GI' => 'anglisht (Gjibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'anglisht (Itali)',
         'en_JE' => 'anglisht (Xhersej)',
         'en_JM' => 'anglisht (Xhamajkë)',
+        'en_JP' => 'anglisht (Japoni)',
         'en_KE' => 'anglisht (Kenia)',
         'en_KI' => 'anglisht (Kiribati)',
         'en_KN' => 'anglisht (Shën-Kits dhe Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'anglisht (Shën-Luçia)',
         'en_LR' => 'anglisht (Liberi)',
         'en_LS' => 'anglisht (Lesoto)',
+        'en_LT' => 'anglisht (Lituani)',
+        'en_LV' => 'anglisht (Letoni)',
         'en_MG' => 'anglisht (Madagaskar)',
         'en_MH' => 'anglisht (Ishujt Marshall)',
         'en_MO' => 'anglisht (RPA i Makaos)',
@@ -205,6 +212,7 @@
         'en_TT' => 'anglisht (Trinidad e Tobago)',
         'en_TV' => 'anglisht (Tuvalu)',
         'en_TZ' => 'anglisht (Tanzani)',
+        'en_UA' => 'anglisht (Ukrainë)',
         'en_UG' => 'anglisht (Ugandë)',
         'en_UM' => 'anglisht (Ishujt Periferikë të SHBA-së)',
         'en_US' => 'anglisht (SHBA)',
@@ -391,6 +399,8 @@
         'ki' => 'kikujuisht',
         'ki_KE' => 'kikujuisht (Kenia)',
         'kk' => 'kazakisht',
+        'kk_Arab' => 'kazakisht (arabik)',
+        'kk_Arab_CN' => 'kazakisht (arabik, Kinë)',
         'kk_Cyrl' => 'kazakisht (cirilik)',
         'kk_Cyrl_KZ' => 'kazakisht (cirilik, Kazakistan)',
         'kk_KZ' => 'kazakisht (Kazakistan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kashmirisht (devanagar, Indi)',
         'ks_IN' => 'kashmirisht (Indi)',
         'ku' => 'kurdisht',
+        'ku_Latn' => 'kurdisht (latin)',
+        'ku_Latn_IQ' => 'kurdisht (latin, Irak)',
+        'ku_Latn_SY' => 'kurdisht (latin, Siri)',
+        'ku_Latn_TR' => 'kurdisht (latin, Turqi)',
+        'ku_SY' => 'kurdisht (Siri)',
         'ku_TR' => 'kurdisht (Turqi)',
         'kw' => 'kornisht',
         'kw_GB' => 'kornisht (Mbretëria e Bashkuar)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sr_Latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sr_Latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sr_Latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sr_Latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbejdžanski (ćirilica, Azerbejdžan)',
         'az_Latn' => 'azerbejdžanski (latinica)',
         'az_Latn_AZ' => 'azerbejdžanski (latinica, Azerbejdžan)',
+        'ba' => 'baškirski',
+        'ba_RU' => 'baškirski (Rusija)',
         'be' => 'beloruski',
         'be_BY' => 'beloruski (Belorusija)',
         'bg' => 'bugarski',
@@ -125,6 +127,7 @@
         'en_DE' => 'engleski (Nemačka)',
         'en_DK' => 'engleski (Danska)',
         'en_DM' => 'engleski (Dominika)',
+        'en_EE' => 'engleski (Estonija)',
         'en_ER' => 'engleski (Eritreja)',
         'en_ES' => 'engleski (Španija)',
         'en_FI' => 'engleski (Finska)',
@@ -134,6 +137,7 @@
         'en_FR' => 'engleski (Francuska)',
         'en_GB' => 'engleski (Ujedinjeno Kraljevstvo)',
         'en_GD' => 'engleski (Grenada)',
+        'en_GE' => 'engleski (Gruzija)',
         'en_GG' => 'engleski (Gernzi)',
         'en_GH' => 'engleski (Gana)',
         'en_GI' => 'engleski (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'engleski (Italija)',
         'en_JE' => 'engleski (Džerzi)',
         'en_JM' => 'engleski (Jamajka)',
+        'en_JP' => 'engleski (Japan)',
         'en_KE' => 'engleski (Kenija)',
         'en_KI' => 'engleski (Kiribati)',
         'en_KN' => 'engleski (Sent Kits i Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'engleski (Sveta Lucija)',
         'en_LR' => 'engleski (Liberija)',
         'en_LS' => 'engleski (Lesoto)',
+        'en_LT' => 'engleski (Litvanija)',
+        'en_LV' => 'engleski (Letonija)',
         'en_MG' => 'engleski (Madagaskar)',
         'en_MH' => 'engleski (Maršalska Ostrva)',
         'en_MO' => 'engleski (SAR Makao [Kina])',
@@ -205,6 +212,7 @@
         'en_TT' => 'engleski (Trinidad i Tobago)',
         'en_TV' => 'engleski (Tuvalu)',
         'en_TZ' => 'engleski (Tanzanija)',
+        'en_UA' => 'engleski (Ukrajina)',
         'en_UG' => 'engleski (Uganda)',
         'en_UM' => 'engleski (Udaljena ostrva SAD)',
         'en_US' => 'engleski (Sjedinjene Države)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuju',
         'ki_KE' => 'kikuju (Kenija)',
         'kk' => 'kazaški',
+        'kk_Arab' => 'kazaški (arapsko pismo)',
+        'kk_Arab_CN' => 'kazaški (arapsko pismo, Kina)',
         'kk_Cyrl' => 'kazaški (ćirilica)',
         'kk_Cyrl_KZ' => 'kazaški (ćirilica, Kazahstan)',
         'kk_KZ' => 'kazaški (Kazahstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kašmirski (devanagari, Indija)',
         'ks_IN' => 'kašmirski (Indija)',
         'ku' => 'kurdski',
+        'ku_Latn' => 'kurdski (latinica)',
+        'ku_Latn_IQ' => 'kurdski (latinica, Irak)',
+        'ku_Latn_SY' => 'kurdski (latinica, Sirija)',
+        'ku_Latn_TR' => 'kurdski (latinica, Turska)',
+        'ku_SY' => 'kurdski (Sirija)',
         'ku_TR' => 'kurdski (Turska)',
         'kw' => 'kornvolski',
         'kw_GB' => 'kornvolski (Ujedinjeno Kraljevstvo)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sr.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'азербејџански (ћирилица, Азербејџан)',
         'az_Latn' => 'азербејџански (латиница)',
         'az_Latn_AZ' => 'азербејџански (латиница, Азербејџан)',
+        'ba' => 'башкирски',
+        'ba_RU' => 'башкирски (Русија)',
         'be' => 'белоруски',
         'be_BY' => 'белоруски (Белорусија)',
         'bg' => 'бугарски',
@@ -125,6 +127,7 @@
         'en_DE' => 'енглески (Немачка)',
         'en_DK' => 'енглески (Данска)',
         'en_DM' => 'енглески (Доминика)',
+        'en_EE' => 'енглески (Естонија)',
         'en_ER' => 'енглески (Еритреја)',
         'en_ES' => 'енглески (Шпанија)',
         'en_FI' => 'енглески (Финска)',
@@ -134,6 +137,7 @@
         'en_FR' => 'енглески (Француска)',
         'en_GB' => 'енглески (Уједињено Краљевство)',
         'en_GD' => 'енглески (Гренада)',
+        'en_GE' => 'енглески (Грузија)',
         'en_GG' => 'енглески (Гернзи)',
         'en_GH' => 'енглески (Гана)',
         'en_GI' => 'енглески (Гибралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'енглески (Италија)',
         'en_JE' => 'енглески (Џерзи)',
         'en_JM' => 'енглески (Јамајка)',
+        'en_JP' => 'енглески (Јапан)',
         'en_KE' => 'енглески (Кенија)',
         'en_KI' => 'енглески (Кирибати)',
         'en_KN' => 'енглески (Сент Китс и Невис)',
@@ -159,6 +164,8 @@
         'en_LC' => 'енглески (Света Луција)',
         'en_LR' => 'енглески (Либерија)',
         'en_LS' => 'енглески (Лесото)',
+        'en_LT' => 'енглески (Литванија)',
+        'en_LV' => 'енглески (Летонија)',
         'en_MG' => 'енглески (Мадагаскар)',
         'en_MH' => 'енглески (Маршалска Острва)',
         'en_MO' => 'енглески (САР Макао [Кина])',
@@ -205,6 +212,7 @@
         'en_TT' => 'енглески (Тринидад и Тобаго)',
         'en_TV' => 'енглески (Тувалу)',
         'en_TZ' => 'енглески (Танзанија)',
+        'en_UA' => 'енглески (Украјина)',
         'en_UG' => 'енглески (Уганда)',
         'en_UM' => 'енглески (Удаљена острва САД)',
         'en_US' => 'енглески (Сједињене Државе)',
@@ -391,6 +399,8 @@
         'ki' => 'кикују',
         'ki_KE' => 'кикују (Кенија)',
         'kk' => 'казашки',
+        'kk_Arab' => 'казашки (арапско писмо)',
+        'kk_Arab_CN' => 'казашки (арапско писмо, Кина)',
         'kk_Cyrl' => 'казашки (ћирилица)',
         'kk_Cyrl_KZ' => 'казашки (ћирилица, Казахстан)',
         'kk_KZ' => 'казашки (Казахстан)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'кашмирски (деванагари, Индија)',
         'ks_IN' => 'кашмирски (Индија)',
         'ku' => 'курдски',
+        'ku_Latn' => 'курдски (латиница)',
+        'ku_Latn_IQ' => 'курдски (латиница, Ирак)',
+        'ku_Latn_SY' => 'курдски (латиница, Сирија)',
+        'ku_Latn_TR' => 'курдски (латиница, Турска)',
+        'ku_SY' => 'курдски (Сирија)',
         'ku_TR' => 'курдски (Турска)',
         'kw' => 'корнволски',
         'kw_GB' => 'корнволски (Уједињено Краљевство)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/st.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/st.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/st.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/st.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,6 +2,7 @@
 
 return [
     'Names' => [
+        'cy' => 'Sewelsh',
         'en' => 'Senyesemane',
         'en_LS' => 'Senyesemane (Lesotho)',
         'en_ZA' => 'Senyesemane (Afrika Borwa)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/su.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/su.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/su.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/su.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
         'en_ID' => 'Inggris (Indonesia)',
         'en_IN' => 'Inggris (India)',
         'en_IT' => 'Inggris (Italia)',
+        'en_JP' => 'Inggris (Jepang)',
         'en_US' => 'Inggris (Amérika Sarikat)',
         'es' => 'Spanyol',
         'es_BR' => 'Spanyol (Brasil)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sv.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbajdzjanska (kyrilliska, Azerbajdzjan)',
         'az_Latn' => 'azerbajdzjanska (latinska)',
         'az_Latn_AZ' => 'azerbajdzjanska (latinska, Azerbajdzjan)',
+        'ba' => 'basjkiriska',
+        'ba_RU' => 'basjkiriska (Ryssland)',
         'be' => 'belarusiska',
         'be_BY' => 'belarusiska (Belarus)',
         'bg' => 'bulgariska',
@@ -125,6 +127,7 @@
         'en_DE' => 'engelska (Tyskland)',
         'en_DK' => 'engelska (Danmark)',
         'en_DM' => 'engelska (Dominica)',
+        'en_EE' => 'engelska (Estland)',
         'en_ER' => 'engelska (Eritrea)',
         'en_ES' => 'engelska (Spanien)',
         'en_FI' => 'engelska (Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'engelska (Frankrike)',
         'en_GB' => 'engelska (Storbritannien)',
         'en_GD' => 'engelska (Grenada)',
+        'en_GE' => 'engelska (Georgien)',
         'en_GG' => 'engelska (Guernsey)',
         'en_GH' => 'engelska (Ghana)',
         'en_GI' => 'engelska (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'engelska (Italien)',
         'en_JE' => 'engelska (Jersey)',
         'en_JM' => 'engelska (Jamaica)',
+        'en_JP' => 'engelska (Japan)',
         'en_KE' => 'engelska (Kenya)',
         'en_KI' => 'engelska (Kiribati)',
         'en_KN' => 'engelska (S:t Kitts och Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'engelska (S:t Lucia)',
         'en_LR' => 'engelska (Liberia)',
         'en_LS' => 'engelska (Lesotho)',
+        'en_LT' => 'engelska (Litauen)',
+        'en_LV' => 'engelska (Lettland)',
         'en_MG' => 'engelska (Madagaskar)',
         'en_MH' => 'engelska (Marshallöarna)',
         'en_MO' => 'engelska (Macao SAR)',
@@ -205,6 +212,7 @@
         'en_TT' => 'engelska (Trinidad och Tobago)',
         'en_TV' => 'engelska (Tuvalu)',
         'en_TZ' => 'engelska (Tanzania)',
+        'en_UA' => 'engelska (Ukraina)',
         'en_UG' => 'engelska (Uganda)',
         'en_UM' => 'engelska (USA:s yttre öar)',
         'en_US' => 'engelska (USA)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Kenya)',
         'kk' => 'kazakiska',
+        'kk_Arab' => 'kazakiska (arabiska)',
+        'kk_Arab_CN' => 'kazakiska (arabiska, Kina)',
         'kk_Cyrl' => 'kazakiska (kyrilliska)',
         'kk_Cyrl_KZ' => 'kazakiska (kyrilliska, Kazakstan)',
         'kk_KZ' => 'kazakiska (Kazakstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kashmiriska (devanagari, Indien)',
         'ks_IN' => 'kashmiriska (Indien)',
         'ku' => 'kurdiska',
+        'ku_Latn' => 'kurdiska (latinska)',
+        'ku_Latn_IQ' => 'kurdiska (latinska, Irak)',
+        'ku_Latn_SY' => 'kurdiska (latinska, Syrien)',
+        'ku_Latn_TR' => 'kurdiska (latinska, Turkiet)',
+        'ku_SY' => 'kurdiska (Syrien)',
         'ku_TR' => 'kurdiska (Turkiet)',
         'kw' => 'korniska',
         'kw_GB' => 'korniska (Storbritannien)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw_CD.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw_CD.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw_CD.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw_CD.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,7 @@
         'de_LI' => 'Kijerumani (Lishenteni)',
         'de_LU' => 'Kijerumani (Lasembagi)',
         'en_CX' => 'Kiingereza (Kisiwa cha Christmas)',
+        'en_LV' => 'Kiingereza (Lativia)',
         'en_NG' => 'Kiingereza (Nijeria)',
         'en_NO' => 'Kiingereza (Norwe)',
         'en_PR' => 'Kiingereza (Puetoriko)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw_KE.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw_KE.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw_KE.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw_KE.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,12 +39,14 @@
         'en_GS' => 'Kiingereza (Visiwa vya Jojia Kusini na Sandwich Kusini)',
         'en_GU' => 'Kiingereza (Guami)',
         'en_LS' => 'Kiingereza (Lesotho)',
+        'en_LV' => 'Kiingereza (Lativia)',
         'en_MS' => 'Kiingereza (Montserati)',
         'en_NO' => 'Kiingereza (Norwe)',
         'en_PG' => 'Kiingereza (Papua Guinea Mpya)',
         'en_PL' => 'Kiingereza (Polandi)',
         'en_PR' => 'Kiingereza (Pwetoriko)',
         'en_SG' => 'Kiingereza (Singapuri)',
+        'en_UA' => 'Kiingereza (Ukreni)',
         'en_VG' => 'Kiingereza (Visiwa vya Virgin vya Uingereza)',
         'en_VI' => 'Kiingereza (Visiwa vya Virgin vya Marekani)',
         'eo_001' => 'Kiesperanto (dunia)',
@@ -90,7 +92,6 @@
         'fo_DK' => 'Kifaro (Denmaki)',
         'fo_FO' => 'Kifaro (Visiwa vya Faroe)',
         'fr_BJ' => 'Kifaransa (Benini)',
-        'fr_CD' => 'Kifaransa (Kongo - Kinshasa)',
         'fr_GA' => 'Kifaransa (Gaboni)',
         'fr_GP' => 'Kifaransa (Gwadelupe)',
         'fr_LU' => 'Kifaransa (Lasembagi)',
@@ -121,19 +122,21 @@
         'is_IS' => 'Kiaisilandi (Aisilandi)',
         'it_VA' => 'Kiitaliano (Mji wa Vatikani)',
         'kk' => 'Kikazaki',
+        'kk_Arab' => 'Kikazaki (Kiarabu)',
+        'kk_Arab_CN' => 'Kikazaki (Kiarabu, Uchina)',
         'kk_Cyrl' => 'Kikazaki (Kikrili)',
         'kk_Cyrl_KZ' => 'Kikazaki (Kikrili, Kazakistani)',
         'kk_KZ' => 'Kikazaki (Kazakistani)',
         'km' => 'Kikhema',
         'km_KH' => 'Kikhema (Kambodia)',
+        'ku_Latn_SY' => 'Kikurdi (Kilatini, Shamu)',
+        'ku_SY' => 'Kikurdi (Shamu)',
         'kw' => 'Kikoni',
         'kw_GB' => 'Kikoni (Ufalme wa Muungano)',
         'ky' => 'Kikirigizi',
         'ky_KG' => 'Kikirigizi (Kirigizistani)',
         'lb_LU' => 'Kilasembagi (Lasembagi)',
-        'ln_CD' => 'Kilingala (Kongo - Kinshasa)',
         'lo_LA' => 'Kilaosi (Laosi)',
-        'lu_CD' => 'Kiluba-Katanga (Kongo - Kinshasa)',
         'lv_LV' => 'Kilatvia (Lativia)',
         'mk' => 'Kimasedonia',
         'mk_MK' => 'Kimasedonia (Masedonia)',
@@ -177,7 +180,6 @@
         'su_ID' => 'Kisundani (Indonesia)',
         'su_Latn' => 'Kisundani (Kilatini)',
         'su_Latn_ID' => 'Kisundani (Kilatini, Indonesia)',
-        'sw_CD' => 'Kiswahili (Kongo - Kinshasa)',
         'ta_SG' => 'Kitamili (Singapuri)',
         'th_TH' => 'Kithai (Thailandi)',
         'tk_TM' => 'Kiturukimeni (Turukimenstani)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/sw.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Kiazerbaijani (Kisiriliki, Azerbaijani)',
         'az_Latn' => 'Kiazerbaijani (Kilatini)',
         'az_Latn_AZ' => 'Kiazerbaijani (Kilatini, Azerbaijani)',
+        'ba' => 'Kibashkiri',
+        'ba_RU' => 'Kibashkiri (Urusi)',
         'be' => 'Kibelarusi',
         'be_BY' => 'Kibelarusi (Belarus)',
         'bg' => 'Kibulgaria',
@@ -125,6 +127,7 @@
         'en_DE' => 'Kiingereza (Ujerumani)',
         'en_DK' => 'Kiingereza (Denmaki)',
         'en_DM' => 'Kiingereza (Dominika)',
+        'en_EE' => 'Kiingereza (Estonia)',
         'en_ER' => 'Kiingereza (Eritrea)',
         'en_ES' => 'Kiingereza (Uhispania)',
         'en_FI' => 'Kiingereza (Ufini)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Kiingereza (Ufaransa)',
         'en_GB' => 'Kiingereza (Ufalme wa Muungano)',
         'en_GD' => 'Kiingereza (Grenada)',
+        'en_GE' => 'Kiingereza (Jojia)',
         'en_GG' => 'Kiingereza (Guernsey)',
         'en_GH' => 'Kiingereza (Ghana)',
         'en_GI' => 'Kiingereza (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Kiingereza (Italia)',
         'en_JE' => 'Kiingereza (Jersey)',
         'en_JM' => 'Kiingereza (Jamaika)',
+        'en_JP' => 'Kiingereza (Japani)',
         'en_KE' => 'Kiingereza (Kenya)',
         'en_KI' => 'Kiingereza (Kiribati)',
         'en_KN' => 'Kiingereza (St. Kitts na Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Kiingereza (St. Lucia)',
         'en_LR' => 'Kiingereza (Liberia)',
         'en_LS' => 'Kiingereza (Lesoto)',
+        'en_LT' => 'Kiingereza (Lithuania)',
+        'en_LV' => 'Kiingereza (Latvia)',
         'en_MG' => 'Kiingereza (Madagaska)',
         'en_MH' => 'Kiingereza (Visiwa vya Marshall)',
         'en_MO' => 'Kiingereza (Makau SAR China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Kiingereza (Trinidad na Tobago)',
         'en_TV' => 'Kiingereza (Tuvalu)',
         'en_TZ' => 'Kiingereza (Tanzania)',
+        'en_UA' => 'Kiingereza (Ukraine)',
         'en_UG' => 'Kiingereza (Uganda)',
         'en_UM' => 'Kiingereza (Visiwa Vidogo vya Nje vya Marekani)',
         'en_US' => 'Kiingereza (Marekani)',
@@ -295,7 +303,7 @@
         'fr_BJ' => 'Kifaransa (Benin)',
         'fr_BL' => 'Kifaransa (St. Barthelemy)',
         'fr_CA' => 'Kifaransa (Kanada)',
-        'fr_CD' => 'Kifaransa (Jamhuri ya Kidemokrasia ya Kongo)',
+        'fr_CD' => 'Kifaransa (Kongo - Kinshasa)',
         'fr_CF' => 'Kifaransa (Jamhuri ya Afrika ya Kati)',
         'fr_CG' => 'Kifaransa (Kongo - Brazzaville)',
         'fr_CH' => 'Kifaransa (Uswisi)',
@@ -391,6 +399,8 @@
         'ki' => 'Kikikuyu',
         'ki_KE' => 'Kikikuyu (Kenya)',
         'kk' => 'Kikazakh',
+        'kk_Arab' => 'Kikazakh (Kiarabu)',
+        'kk_Arab_CN' => 'Kikazakh (Kiarabu, Uchina)',
         'kk_Cyrl' => 'Kikazakh (Kisiriliki)',
         'kk_Cyrl_KZ' => 'Kikazakh (Kisiriliki, Kazakistani)',
         'kk_KZ' => 'Kikazakh (Kazakistani)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Kikashmiri (Kidevanagari, India)',
         'ks_IN' => 'Kikashmiri (India)',
         'ku' => 'Kikurdi',
+        'ku_Latn' => 'Kikurdi (Kilatini)',
+        'ku_Latn_IQ' => 'Kikurdi (Kilatini, Iraki)',
+        'ku_Latn_SY' => 'Kikurdi (Kilatini, Syria)',
+        'ku_Latn_TR' => 'Kikurdi (Kilatini, Uturuki)',
+        'ku_SY' => 'Kikurdi (Syria)',
         'ku_TR' => 'Kikurdi (Uturuki)',
         'kw' => 'Kikorni',
         'kw_GB' => 'Kikorni (Ufalme wa Muungano)',
@@ -422,7 +437,7 @@
         'lg_UG' => 'Kiganda (Uganda)',
         'ln' => 'Kilingala',
         'ln_AO' => 'Kilingala (Angola)',
-        'ln_CD' => 'Kilingala (Jamhuri ya Kidemokrasia ya Kongo)',
+        'ln_CD' => 'Kilingala (Kongo - Kinshasa)',
         'ln_CF' => 'Kilingala (Jamhuri ya Afrika ya Kati)',
         'ln_CG' => 'Kilingala (Kongo - Brazzaville)',
         'lo' => 'Kilaosi',
@@ -430,7 +445,7 @@
         'lt' => 'Kilithuania',
         'lt_LT' => 'Kilithuania (Lithuania)',
         'lu' => 'Kiluba-Katanga',
-        'lu_CD' => 'Kiluba-Katanga (Jamhuri ya Kidemokrasia ya Kongo)',
+        'lu_CD' => 'Kiluba-Katanga (Kongo - Kinshasa)',
         'lv' => 'Kilatvia',
         'lv_LV' => 'Kilatvia (Latvia)',
         'mg' => 'Kimalagasi',
@@ -589,7 +604,7 @@
         'sv_FI' => 'Kiswidi (Ufini)',
         'sv_SE' => 'Kiswidi (Uswidi)',
         'sw' => 'Kiswahili',
-        'sw_CD' => 'Kiswahili (Jamhuri ya Kidemokrasia ya Kongo)',
+        'sw_CD' => 'Kiswahili (Kongo - Kinshasa)',
         'sw_KE' => 'Kiswahili (Kenya)',
         'sw_TZ' => 'Kiswahili (Tanzania)',
         'sw_UG' => 'Kiswahili (Uganda)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ta.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
         'am_ET' => 'அம்ஹாரிக் (எத்தியோப்பியா)',
         'ar' => 'அரபிக்',
         'ar_001' => 'அரபிக் (உலகம்)',
-        'ar_AE' => 'அரபிக் (ஐக்கிய அரபு எமிரேட்ஸ்)',
+        'ar_AE' => 'அரபிக் (ஐக்கிய அரபு அமீரகம்)',
         'ar_BH' => 'அரபிக் (பஹ்ரைன்)',
         'ar_DJ' => 'அரபிக் (ஜிபௌட்டி)',
         'ar_DZ' => 'அரபிக் (அல்ஜீரியா)',
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'அசர்பைஜானி (சிரிலிக், அசர்பைஜான்)',
         'az_Latn' => 'அசர்பைஜானி (லத்தின்)',
         'az_Latn_AZ' => 'அசர்பைஜானி (லத்தின், அசர்பைஜான்)',
+        'ba' => 'பஷ்கிர்',
+        'ba_RU' => 'பஷ்கிர் (ரஷ்யா)',
         'be' => 'பெலாருஷியன்',
         'be_BY' => 'பெலாருஷியன் (பெலாரஸ்)',
         'bg' => 'பல்கேரியன்',
@@ -101,7 +103,7 @@
         'en' => 'ஆங்கிலம்',
         'en_001' => 'ஆங்கிலம் (உலகம்)',
         'en_150' => 'ஆங்கிலம் (ஐரோப்பா)',
-        'en_AE' => 'ஆங்கிலம் (ஐக்கிய அரபு எமிரேட்ஸ்)',
+        'en_AE' => 'ஆங்கிலம் (ஐக்கிய அரபு அமீரகம்)',
         'en_AG' => 'ஆங்கிலம் (ஆண்டிகுவா மற்றும் பார்புடா)',
         'en_AI' => 'ஆங்கிலம் (அங்கியுலா)',
         'en_AS' => 'ஆங்கிலம் (அமெரிக்க சமோவா)',
@@ -125,6 +127,7 @@
         'en_DE' => 'ஆங்கிலம் (ஜெர்மனி)',
         'en_DK' => 'ஆங்கிலம் (டென்மார்க்)',
         'en_DM' => 'ஆங்கிலம் (டொமினிகா)',
+        'en_EE' => 'ஆங்கிலம் (எஸ்டோனியா)',
         'en_ER' => 'ஆங்கிலம் (எரிட்ரியா)',
         'en_ES' => 'ஆங்கிலம் (ஸ்பெயின்)',
         'en_FI' => 'ஆங்கிலம் (பின்லாந்து)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ஆங்கிலம் (பிரான்ஸ்)',
         'en_GB' => 'ஆங்கிலம் (யுனைடெட் கிங்டம்)',
         'en_GD' => 'ஆங்கிலம் (கிரனெடா)',
+        'en_GE' => 'ஆங்கிலம் (ஜார்ஜியா)',
         'en_GG' => 'ஆங்கிலம் (கெர்ன்சி)',
         'en_GH' => 'ஆங்கிலம் (கானா)',
         'en_GI' => 'ஆங்கிலம் (ஜிப்ரால்டர்)',
@@ -151,7 +155,8 @@
         'en_IO' => 'ஆங்கிலம் (பிரிட்டிஷ் இந்தியப் பெருங்கடல் பிரதேசம்)',
         'en_IT' => 'ஆங்கிலம் (இத்தாலி)',
         'en_JE' => 'ஆங்கிலம் (ஜெர்சி)',
-        'en_JM' => 'ஆங்கிலம் (ஜமைகா)',
+        'en_JM' => 'ஆங்கிலம் (ஜமைக்கா)',
+        'en_JP' => 'ஆங்கிலம் (ஜப்பான்)',
         'en_KE' => 'ஆங்கிலம் (கென்யா)',
         'en_KI' => 'ஆங்கிலம் (கிரிபாட்டி)',
         'en_KN' => 'ஆங்கிலம் (செயின்ட் கிட்ஸ் & நெவிஸ்)',
@@ -159,6 +164,8 @@
         'en_LC' => 'ஆங்கிலம் (செயின்ட் லூசியா)',
         'en_LR' => 'ஆங்கிலம் (லைபீரியா)',
         'en_LS' => 'ஆங்கிலம் (லெசோதோ)',
+        'en_LT' => 'ஆங்கிலம் (லிதுவேனியா)',
+        'en_LV' => 'ஆங்கிலம் (லாட்வியா)',
         'en_MG' => 'ஆங்கிலம் (மடகாஸ்கர்)',
         'en_MH' => 'ஆங்கிலம் (மார்ஷல் தீவுகள்)',
         'en_MO' => 'ஆங்கிலம் (மகாவ் எஸ்ஏஆர் சீனா)',
@@ -205,6 +212,7 @@
         'en_TT' => 'ஆங்கிலம் (டிரினிடாட் & டொபாகோ)',
         'en_TV' => 'ஆங்கிலம் (துவாலு)',
         'en_TZ' => 'ஆங்கிலம் (தான்சானியா)',
+        'en_UA' => 'ஆங்கிலம் (உக்ரைன்)',
         'en_UG' => 'ஆங்கிலம் (உகாண்டா)',
         'en_UM' => 'ஆங்கிலம் (யூ.எஸ். வெளிப்புறத் தீவுகள்)',
         'en_US' => 'ஆங்கிலம் (அமெரிக்கா)',
@@ -382,8 +390,8 @@
         'it_IT' => 'இத்தாலியன் (இத்தாலி)',
         'it_SM' => 'இத்தாலியன் (சான் மரினோ)',
         'it_VA' => 'இத்தாலியன் (வாடிகன் நகரம்)',
-        'ja' => 'ஜப்பானியம்',
-        'ja_JP' => 'ஜப்பானியம் (ஜப்பான்)',
+        'ja' => 'ஜாப்பனீஸ்',
+        'ja_JP' => 'ஜாப்பனீஸ் (ஜப்பான்)',
         'jv' => 'ஜாவனீஸ்',
         'jv_ID' => 'ஜாவனீஸ் (இந்தோனேசியா)',
         'ka' => 'ஜார்ஜியன்',
@@ -391,6 +399,8 @@
         'ki' => 'கிகுயூ',
         'ki_KE' => 'கிகுயூ (கென்யா)',
         'kk' => 'கசாக்',
+        'kk_Arab' => 'கசாக் (அரபிக்)',
+        'kk_Arab_CN' => 'கசாக் (அரபிக், சீனா)',
         'kk_Cyrl' => 'கசாக் (சிரிலிக்)',
         'kk_Cyrl_KZ' => 'கசாக் (சிரிலிக், கஸகஸ்தான்)',
         'kk_KZ' => 'கசாக் (கஸகஸ்தான்)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'காஷ்மிரி (தேவநாகரி, இந்தியா)',
         'ks_IN' => 'காஷ்மிரி (இந்தியா)',
         'ku' => 'குர்திஷ்',
+        'ku_Latn' => 'குர்திஷ் (லத்தின்)',
+        'ku_Latn_IQ' => 'குர்திஷ் (லத்தின், ஈராக்)',
+        'ku_Latn_SY' => 'குர்திஷ் (லத்தின், சிரியா)',
+        'ku_Latn_TR' => 'குர்திஷ் (லத்தின், துருக்கியே)',
+        'ku_SY' => 'குர்திஷ் (சிரியா)',
         'ku_TR' => 'குர்திஷ் (துருக்கியே)',
         'kw' => 'கார்னிஷ்',
         'kw_GB' => 'கார்னிஷ் (யுனைடெட் கிங்டம்)',
@@ -453,7 +468,7 @@
         'mt' => 'மால்டிஸ்',
         'mt_MT' => 'மால்டிஸ் (மால்டா)',
         'my' => 'பர்மீஸ்',
-        'my_MM' => 'பர்மீஸ் (மியான்மார் [பர்மா])',
+        'my_MM' => 'பர்மீஸ் (மியான்மர் [பர்மா])',
         'nb' => 'நார்வேஜியன் பொக்மால்',
         'nb_NO' => 'நார்வேஜியன் பொக்மால் (நார்வே)',
         'nb_SJ' => 'நார்வேஜியன் பொக்மால் (ஸ்வல்பார்டு & ஜான் மேயன்)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/te.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/te.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/te.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/te.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'అజర్బైజాని (సిరిలిక్, అజర్బైజాన్)',
         'az_Latn' => 'అజర్బైజాని (లాటిన్)',
         'az_Latn_AZ' => 'అజర్బైజాని (లాటిన్, అజర్బైజాన్)',
+        'ba' => 'బాష్కిర్',
+        'ba_RU' => 'బాష్కిర్ (రష్యా)',
         'be' => 'బెలారుషియన్',
         'be_BY' => 'బెలారుషియన్ (బెలారస్)',
         'bg' => 'బల్గేరియన్',
@@ -61,11 +63,11 @@
         'br' => 'బ్రెటన్',
         'br_FR' => 'బ్రెటన్ (ఫ్రాన్స్‌)',
         'bs' => 'బోస్నియన్',
-        'bs_BA' => 'బోస్నియన్ (బోస్నియా మరియు హెర్జిగోవినా)',
+        'bs_BA' => 'బోస్నియన్ (బోస్నియా & హెర్జిగోవినా)',
         'bs_Cyrl' => 'బోస్నియన్ (సిరిలిక్)',
-        'bs_Cyrl_BA' => 'బోస్నియన్ (సిరిలిక్, బోస్నియా మరియు హెర్జిగోవినా)',
+        'bs_Cyrl_BA' => 'బోస్నియన్ (సిరిలిక్, బోస్నియా & హెర్జిగోవినా)',
         'bs_Latn' => 'బోస్నియన్ (లాటిన్)',
-        'bs_Latn_BA' => 'బోస్నియన్ (లాటిన్, బోస్నియా మరియు హెర్జిగోవినా)',
+        'bs_Latn_BA' => 'బోస్నియన్ (లాటిన్, బోస్నియా & హెర్జిగోవినా)',
         'ca' => 'కాటలాన్',
         'ca_AD' => 'కాటలాన్ (ఆండోరా)',
         'ca_ES' => 'కాటలాన్ (స్పెయిన్)',
@@ -102,7 +104,7 @@
         'en_001' => 'ఇంగ్లీష్ (ప్రపంచం)',
         'en_150' => 'ఇంగ్లీష్ (యూరప్)',
         'en_AE' => 'ఇంగ్లీష్ (యునైటెడ్ అరబ్ ఎమిరేట్స్)',
-        'en_AG' => 'ఇంగ్లీష్ (ఆంటిగ్వా మరియు బార్బుడా)',
+        'en_AG' => 'ఇంగ్లీష్ (ఆంటిగ్వా & బార్బుడా)',
         'en_AI' => 'ఇంగ్లీష్ (ఆంగ్విల్లా)',
         'en_AS' => 'ఇంగ్లీష్ (అమెరికన్ సమోవా)',
         'en_AT' => 'ఇంగ్లీష్ (ఆస్ట్రియా)',
@@ -125,6 +127,7 @@
         'en_DE' => 'ఇంగ్లీష్ (జర్మనీ)',
         'en_DK' => 'ఇంగ్లీష్ (డెన్మార్క్)',
         'en_DM' => 'ఇంగ్లీష్ (డొమినికా)',
+        'en_EE' => 'ఇంగ్లీష్ (ఎస్టోనియా)',
         'en_ER' => 'ఇంగ్లీష్ (ఎరిట్రియా)',
         'en_ES' => 'ఇంగ్లీష్ (స్పెయిన్)',
         'en_FI' => 'ఇంగ్లీష్ (ఫిన్లాండ్)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ఇంగ్లీష్ (ఫ్రాన్స్‌)',
         'en_GB' => 'ఇంగ్లీష్ (యునైటెడ్ కింగ్‌డమ్)',
         'en_GD' => 'ఇంగ్లీష్ (గ్రెనడా)',
+        'en_GE' => 'ఇంగ్లీష్ (జార్జియా)',
         'en_GG' => 'ఇంగ్లీష్ (గర్న్‌సీ)',
         'en_GH' => 'ఇంగ్లీష్ (ఘనా)',
         'en_GI' => 'ఇంగ్లీష్ (జిబ్రాల్టర్)',
@@ -141,7 +145,7 @@
         'en_GS' => 'ఇంగ్లీష్ (దక్షిణ జార్జియా మరియు దక్షిణ శాండ్విచ్ దీవులు)',
         'en_GU' => 'ఇంగ్లీష్ (గ్వామ్)',
         'en_GY' => 'ఇంగ్లీష్ (గయానా)',
-        'en_HK' => 'ఇంగ్లీష్ (హాంకాంగ్ ఎస్ఏఆర్ చైనా)',
+        'en_HK' => 'ఇంగ్లీష్ (హాంకాంగ్ SAR చైనా)',
         'en_HU' => 'ఇంగ్లీష్ (హంగేరీ)',
         'en_ID' => 'ఇంగ్లీష్ (ఇండోనేషియా)',
         'en_IE' => 'ఇంగ్లీష్ (ఐర్లాండ్)',
@@ -152,16 +156,19 @@
         'en_IT' => 'ఇంగ్లీష్ (ఇటలీ)',
         'en_JE' => 'ఇంగ్లీష్ (జెర్సీ)',
         'en_JM' => 'ఇంగ్లీష్ (జమైకా)',
+        'en_JP' => 'ఇంగ్లీష్ (జపాన్)',
         'en_KE' => 'ఇంగ్లీష్ (కెన్యా)',
         'en_KI' => 'ఇంగ్లీష్ (కిరిబాటి)',
-        'en_KN' => 'ఇంగ్లీష్ (సెయింట్ కిట్స్ మరియు నెవిస్)',
+        'en_KN' => 'ఇంగ్లీష్ (సెయింట్ కిట్స్ & నెవిస్)',
         'en_KY' => 'ఇంగ్లీష్ (కేమాన్ దీవులు)',
         'en_LC' => 'ఇంగ్లీష్ (సెయింట్ లూసియా)',
         'en_LR' => 'ఇంగ్లీష్ (లైబీరియా)',
         'en_LS' => 'ఇంగ్లీష్ (లెసోతో)',
+        'en_LT' => 'ఇంగ్లీష్ (లిథువేనియా)',
+        'en_LV' => 'ఇంగ్లీష్ (లాత్వియా)',
         'en_MG' => 'ఇంగ్లీష్ (మడగాస్కర్)',
         'en_MH' => 'ఇంగ్లీష్ (మార్షల్ దీవులు)',
-        'en_MO' => 'ఇంగ్లీష్ (మకావ్ ఎస్ఏఆర్ చైనా)',
+        'en_MO' => 'ఇంగ్లీష్ (మకావ్ SAR చైనా)',
         'en_MP' => 'ఇంగ్లీష్ (ఉత్తర మరియానా దీవులు)',
         'en_MS' => 'ఇంగ్లీష్ (మాంట్సెరాట్)',
         'en_MT' => 'ఇంగ్లీష్ (మాల్టా)',
@@ -199,14 +206,15 @@
         'en_SS' => 'ఇంగ్లీష్ (దక్షిణ సూడాన్)',
         'en_SX' => 'ఇంగ్లీష్ (సింట్ మార్టెన్)',
         'en_SZ' => 'ఇంగ్లీష్ (ఈస్వాటిని)',
-        'en_TC' => 'ఇంగ్లీష్ (టర్క్స్ మరియు కైకోస్ దీవులు)',
+        'en_TC' => 'ఇంగ్లీష్ (టర్క్స్ & కైకోస్ దీవులు)',
         'en_TK' => 'ఇంగ్లీష్ (టోకెలావ్)',
         'en_TO' => 'ఇంగ్లీష్ (టోంగా)',
         'en_TT' => 'ఇంగ్లీష్ (ట్రినిడాడ్ మరియు టొబాగో)',
         'en_TV' => 'ఇంగ్లీష్ (టువాలు)',
         'en_TZ' => 'ఇంగ్లీష్ (టాంజానియా)',
+        'en_UA' => 'ఇంగ్లీష్ (ఉక్రెయిన్)',
         'en_UG' => 'ఇంగ్లీష్ (ఉగాండా)',
-        'en_UM' => 'ఇంగ్లీష్ (సంయుక్త రాజ్య అమెరికా బయట ఉన్న దీవులు)',
+        'en_UM' => 'ఇంగ్లీష్ (U.S. బయట ఉన్న దీవులు)',
         'en_US' => 'ఇంగ్లీష్ (యునైటెడ్ స్టేట్స్)',
         'en_VC' => 'ఇంగ్లీష్ (సెయింట్ విన్సెంట్ మరియు గ్రెనడీన్స్)',
         'en_VG' => 'ఇంగ్లీష్ (బ్రిటిష్ వర్జిన్ దీవులు)',
@@ -252,37 +260,37 @@
         'fa' => 'పర్షియన్',
         'fa_AF' => 'పర్షియన్ (ఆఫ్ఘనిస్తాన్)',
         'fa_IR' => 'పర్షియన్ (ఇరాన్)',
-        'ff' => 'ఫ్యుల',
-        'ff_Adlm' => 'ఫ్యుల (అద్లామ్)',
-        'ff_Adlm_BF' => 'ఫ్యుల (అద్లామ్, బుర్కినా ఫాసో)',
-        'ff_Adlm_CM' => 'ఫ్యుల (అద్లామ్, కామెరూన్)',
-        'ff_Adlm_GH' => 'ఫ్యుల (అద్లామ్, ఘనా)',
-        'ff_Adlm_GM' => 'ఫ్యుల (అద్లామ్, గాంబియా)',
-        'ff_Adlm_GN' => 'ఫ్యుల (అద్లామ్, గినియా)',
-        'ff_Adlm_GW' => 'ఫ్యుల (అద్లామ్, గినియా-బిస్సావ్)',
-        'ff_Adlm_LR' => 'ఫ్యుల (అద్లామ్, లైబీరియా)',
-        'ff_Adlm_MR' => 'ఫ్యుల (అద్లామ్, మారిటేనియా)',
-        'ff_Adlm_NE' => 'ఫ్యుల (అద్లామ్, నైజర్)',
-        'ff_Adlm_NG' => 'ఫ్యుల (అద్లామ్, నైజీరియా)',
-        'ff_Adlm_SL' => 'ఫ్యుల (అద్లామ్, సియెర్రా లియాన్)',
-        'ff_Adlm_SN' => 'ఫ్యుల (అద్లామ్, సెనెగల్)',
-        'ff_CM' => 'ఫ్యుల (కామెరూన్)',
-        'ff_GN' => 'ఫ్యుల (గినియా)',
-        'ff_Latn' => 'ఫ్యుల (లాటిన్)',
-        'ff_Latn_BF' => 'ఫ్యుల (లాటిన్, బుర్కినా ఫాసో)',
-        'ff_Latn_CM' => 'ఫ్యుల (లాటిన్, కామెరూన్)',
-        'ff_Latn_GH' => 'ఫ్యుల (లాటిన్, ఘనా)',
-        'ff_Latn_GM' => 'ఫ్యుల (లాటిన్, గాంబియా)',
-        'ff_Latn_GN' => 'ఫ్యుల (లాటిన్, గినియా)',
-        'ff_Latn_GW' => 'ఫ్యుల (లాటిన్, గినియా-బిస్సావ్)',
-        'ff_Latn_LR' => 'ఫ్యుల (లాటిన్, లైబీరియా)',
-        'ff_Latn_MR' => 'ఫ్యుల (లాటిన్, మారిటేనియా)',
-        'ff_Latn_NE' => 'ఫ్యుల (లాటిన్, నైజర్)',
-        'ff_Latn_NG' => 'ఫ్యుల (లాటిన్, నైజీరియా)',
-        'ff_Latn_SL' => 'ఫ్యుల (లాటిన్, సియెర్రా లియాన్)',
-        'ff_Latn_SN' => 'ఫ్యుల (లాటిన్, సెనెగల్)',
-        'ff_MR' => 'ఫ్యుల (మారిటేనియా)',
-        'ff_SN' => 'ఫ్యుల (సెనెగల్)',
+        'ff' => 'ఫూలా',
+        'ff_Adlm' => 'ఫూలా (అద్లామ్)',
+        'ff_Adlm_BF' => 'ఫూలా (అద్లామ్, బుర్కినా ఫాసో)',
+        'ff_Adlm_CM' => 'ఫూలా (అద్లామ్, కామెరూన్)',
+        'ff_Adlm_GH' => 'ఫూలా (అద్లామ్, ఘనా)',
+        'ff_Adlm_GM' => 'ఫూలా (అద్లామ్, గాంబియా)',
+        'ff_Adlm_GN' => 'ఫూలా (అద్లామ్, గినియా)',
+        'ff_Adlm_GW' => 'ఫూలా (అద్లామ్, గినియా-బిస్సావ్)',
+        'ff_Adlm_LR' => 'ఫూలా (అద్లామ్, లైబీరియా)',
+        'ff_Adlm_MR' => 'ఫూలా (అద్లామ్, మారిటేనియా)',
+        'ff_Adlm_NE' => 'ఫూలా (అద్లామ్, నైజర్)',
+        'ff_Adlm_NG' => 'ఫూలా (అద్లామ్, నైజీరియా)',
+        'ff_Adlm_SL' => 'ఫూలా (అద్లామ్, సియెర్రా లియాన్)',
+        'ff_Adlm_SN' => 'ఫూలా (అద్లామ్, సెనెగల్)',
+        'ff_CM' => 'ఫూలా (కామెరూన్)',
+        'ff_GN' => 'ఫూలా (గినియా)',
+        'ff_Latn' => 'ఫూలా (లాటిన్)',
+        'ff_Latn_BF' => 'ఫూలా (లాటిన్, బుర్కినా ఫాసో)',
+        'ff_Latn_CM' => 'ఫూలా (లాటిన్, కామెరూన్)',
+        'ff_Latn_GH' => 'ఫూలా (లాటిన్, ఘనా)',
+        'ff_Latn_GM' => 'ఫూలా (లాటిన్, గాంబియా)',
+        'ff_Latn_GN' => 'ఫూలా (లాటిన్, గినియా)',
+        'ff_Latn_GW' => 'ఫూలా (లాటిన్, గినియా-బిస్సావ్)',
+        'ff_Latn_LR' => 'ఫూలా (లాటిన్, లైబీరియా)',
+        'ff_Latn_MR' => 'ఫూలా (లాటిన్, మారిటేనియా)',
+        'ff_Latn_NE' => 'ఫూలా (లాటిన్, నైజర్)',
+        'ff_Latn_NG' => 'ఫూలా (లాటిన్, నైజీరియా)',
+        'ff_Latn_SL' => 'ఫూలా (లాటిన్, సియెర్రా లియాన్)',
+        'ff_Latn_SN' => 'ఫూలా (లాటిన్, సెనెగల్)',
+        'ff_MR' => 'ఫూలా (మారిటేనియా)',
+        'ff_SN' => 'ఫూలా (సెనెగల్)',
         'fi' => 'ఫిన్నిష్',
         'fi_FI' => 'ఫిన్నిష్ (ఫిన్లాండ్)',
         'fo' => 'ఫారోస్',
@@ -320,7 +328,7 @@
         'fr_MQ' => 'ఫ్రెంచ్ (మార్టినీక్)',
         'fr_MR' => 'ఫ్రెంచ్ (మారిటేనియా)',
         'fr_MU' => 'ఫ్రెంచ్ (మారిషస్)',
-        'fr_NC' => 'ఫ్రెంచ్ (క్రొత్త కాలెడోనియా)',
+        'fr_NC' => 'ఫ్రెంచ్ (కొత్త కాలెడోనియా)',
         'fr_NE' => 'ఫ్రెంచ్ (నైజర్)',
         'fr_PF' => 'ఫ్రెంచ్ (ఫ్రెంచ్ పోలినీషియా)',
         'fr_PM' => 'ఫ్రెంచ్ (సెయింట్ పియెర్ మరియు మికెలాన్)',
@@ -352,14 +360,14 @@
         'ha_GH' => 'హౌసా (ఘనా)',
         'ha_NE' => 'హౌసా (నైజర్)',
         'ha_NG' => 'హౌసా (నైజీరియా)',
-        'he' => 'హిబ్రూ',
-        'he_IL' => 'హిబ్రూ (ఇజ్రాయెల్)',
+        'he' => 'హీబ్రూ',
+        'he_IL' => 'హీబ్రూ (ఇజ్రాయెల్)',
         'hi' => 'హిందీ',
         'hi_IN' => 'హిందీ (భారతదేశం)',
         'hi_Latn' => 'హిందీ (లాటిన్)',
         'hi_Latn_IN' => 'హిందీ (లాటిన్, భారతదేశం)',
         'hr' => 'క్రొయేషియన్',
-        'hr_BA' => 'క్రొయేషియన్ (బోస్నియా మరియు హెర్జిగోవినా)',
+        'hr_BA' => 'క్రొయేషియన్ (బోస్నియా & హెర్జిగోవినా)',
         'hr_HR' => 'క్రొయేషియన్ (క్రొయేషియా)',
         'hu' => 'హంగేరియన్',
         'hu_HU' => 'హంగేరియన్ (హంగేరీ)',
@@ -391,6 +399,8 @@
         'ki' => 'కికుయు',
         'ki_KE' => 'కికుయు (కెన్యా)',
         'kk' => 'కజఖ్',
+        'kk_Arab' => 'కజఖ్ (అరబిక్)',
+        'kk_Arab_CN' => 'కజఖ్ (అరబిక్, చైనా)',
         'kk_Cyrl' => 'కజఖ్ (సిరిలిక్)',
         'kk_Cyrl_KZ' => 'కజఖ్ (సిరిలిక్, కజకిస్తాన్)',
         'kk_KZ' => 'కజఖ్ (కజకిస్తాన్)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'కాశ్మీరి (దేవనాగరి, భారతదేశం)',
         'ks_IN' => 'కాశ్మీరి (భారతదేశం)',
         'ku' => 'కుర్దిష్',
+        'ku_Latn' => 'కుర్దిష్ (లాటిన్)',
+        'ku_Latn_IQ' => 'కుర్దిష్ (లాటిన్, ఇరాక్)',
+        'ku_Latn_SY' => 'కుర్దిష్ (లాటిన్, సిరియా)',
+        'ku_Latn_TR' => 'కుర్దిష్ (లాటిన్, తుర్కియె)',
+        'ku_SY' => 'కుర్దిష్ (సిరియా)',
         'ku_TR' => 'కుర్దిష్ (తుర్కియె)',
         'kw' => 'కోర్నిష్',
         'kw_GB' => 'కోర్నిష్ (యునైటెడ్ కింగ్‌డమ్)',
@@ -505,7 +520,7 @@
         'pt_GQ' => 'పోర్చుగీస్ (ఈక్వటోరియల్ గినియా)',
         'pt_GW' => 'పోర్చుగీస్ (గినియా-బిస్సావ్)',
         'pt_LU' => 'పోర్చుగీస్ (లక్సెంబర్గ్)',
-        'pt_MO' => 'పోర్చుగీస్ (మకావ్ ఎస్ఏఆర్ చైనా)',
+        'pt_MO' => 'పోర్చుగీస్ (మకావ్ SAR చైనా)',
         'pt_MZ' => 'పోర్చుగీస్ (మొజాంబిక్)',
         'pt_PT' => 'పోర్చుగీస్ (పోర్చుగల్)',
         'pt_ST' => 'పోర్చుగీస్ (సావో టోమ్ మరియు ప్రిన్సిపి)',
@@ -548,7 +563,7 @@
         'sg' => 'సాంగో',
         'sg_CF' => 'సాంగో (సెంట్రల్ ఆఫ్రికన్ రిపబ్లిక్)',
         'sh' => 'సేర్బో-క్రొయేషియన్',
-        'sh_BA' => 'సేర్బో-క్రొయేషియన్ (బోస్నియా మరియు హెర్జిగోవినా)',
+        'sh_BA' => 'సేర్బో-క్రొయేషియన్ (బోస్నియా & హెర్జిగోవినా)',
         'si' => 'సింహళం',
         'si_LK' => 'సింహళం (శ్రీలంక)',
         'sk' => 'స్లోవక్',
@@ -566,13 +581,13 @@
         'sq_AL' => 'అల్బేనియన్ (అల్బేనియా)',
         'sq_MK' => 'అల్బేనియన్ (ఉత్తర మాసిడోనియా)',
         'sr' => 'సెర్బియన్',
-        'sr_BA' => 'సెర్బియన్ (బోస్నియా మరియు హెర్జిగోవినా)',
+        'sr_BA' => 'సెర్బియన్ (బోస్నియా & హెర్జిగోవినా)',
         'sr_Cyrl' => 'సెర్బియన్ (సిరిలిక్)',
-        'sr_Cyrl_BA' => 'సెర్బియన్ (సిరిలిక్, బోస్నియా మరియు హెర్జిగోవినా)',
+        'sr_Cyrl_BA' => 'సెర్బియన్ (సిరిలిక్, బోస్నియా & హెర్జిగోవినా)',
         'sr_Cyrl_ME' => 'సెర్బియన్ (సిరిలిక్, మాంటెనెగ్రో)',
         'sr_Cyrl_RS' => 'సెర్బియన్ (సిరిలిక్, సెర్బియా)',
         'sr_Latn' => 'సెర్బియన్ (లాటిన్)',
-        'sr_Latn_BA' => 'సెర్బియన్ (లాటిన్, బోస్నియా మరియు హెర్జిగోవినా)',
+        'sr_Latn_BA' => 'సెర్బియన్ (లాటిన్, బోస్నియా & హెర్జిగోవినా)',
         'sr_Latn_ME' => 'సెర్బియన్ (లాటిన్, మాంటెనెగ్రో)',
         'sr_Latn_RS' => 'సెర్బియన్ (లాటిన్, సెర్బియా)',
         'sr_ME' => 'సెర్బియన్ (మాంటెనెగ్రో)',
@@ -652,19 +667,19 @@
         'za_CN' => 'జువాన్ (చైనా)',
         'zh' => 'చైనీస్',
         'zh_CN' => 'చైనీస్ (చైనా)',
-        'zh_HK' => 'చైనీస్ (హాంకాంగ్ ఎస్ఏఆర్ చైనా)',
+        'zh_HK' => 'చైనీస్ (హాంకాంగ్ SAR చైనా)',
         'zh_Hans' => 'చైనీస్ (సరళీకృతం)',
         'zh_Hans_CN' => 'చైనీస్ (సరళీకృతం, చైనా)',
-        'zh_Hans_HK' => 'చైనీస్ (సరళీకృతం, హాంకాంగ్ ఎస్ఏఆర్ చైనా)',
-        'zh_Hans_MO' => 'చైనీస్ (సరళీకృతం, మకావ్ ఎస్ఏఆర్ చైనా)',
+        'zh_Hans_HK' => 'చైనీస్ (సరళీకృతం, హాంకాంగ్ SAR చైనా)',
+        'zh_Hans_MO' => 'చైనీస్ (సరళీకృతం, మకావ్ SAR చైనా)',
         'zh_Hans_MY' => 'చైనీస్ (సరళీకృతం, మలేషియా)',
         'zh_Hans_SG' => 'చైనీస్ (సరళీకృతం, సింగపూర్)',
         'zh_Hant' => 'చైనీస్ (సాంప్రదాయక)',
-        'zh_Hant_HK' => 'చైనీస్ (సాంప్రదాయక, హాంకాంగ్ ఎస్ఏఆర్ చైనా)',
-        'zh_Hant_MO' => 'చైనీస్ (సాంప్రదాయక, మకావ్ ఎస్ఏఆర్ చైనా)',
+        'zh_Hant_HK' => 'చైనీస్ (సాంప్రదాయక, హాంకాంగ్ SAR చైనా)',
+        'zh_Hant_MO' => 'చైనీస్ (సాంప్రదాయక, మకావ్ SAR చైనా)',
         'zh_Hant_MY' => 'చైనీస్ (సాంప్రదాయక, మలేషియా)',
         'zh_Hant_TW' => 'చైనీస్ (సాంప్రదాయక, తైవాన్)',
-        'zh_MO' => 'చైనీస్ (మకావ్ ఎస్ఏఆర్ చైనా)',
+        'zh_MO' => 'చైనీస్ (మకావ్ SAR చైనా)',
         'zh_SG' => 'చైనీస్ (సింగపూర్)',
         'zh_TW' => 'చైనీస్ (తైవాన్)',
         'zu' => 'జూలూ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tg.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,6 +44,8 @@
         'az_Cyrl_AZ' => 'озарбойҷонӣ (Кириллӣ, Озарбойҷон)',
         'az_Latn' => 'озарбойҷонӣ (Лотинӣ)',
         'az_Latn_AZ' => 'озарбойҷонӣ (Лотинӣ, Озарбойҷон)',
+        'ba' => 'бошқирдӣ',
+        'ba_RU' => 'бошқирдӣ (Русия)',
         'be' => 'белорусӣ',
         'be_BY' => 'белорусӣ (Белорус)',
         'bg' => 'булғорӣ',
@@ -114,6 +116,7 @@
         'en_DE' => 'англисӣ (Германия)',
         'en_DK' => 'англисӣ (Дания)',
         'en_DM' => 'англисӣ (Доминика)',
+        'en_EE' => 'англисӣ (Эстония)',
         'en_ER' => 'англисӣ (Эритрея)',
         'en_ES' => 'англисӣ (Испания)',
         'en_FI' => 'англисӣ (Финляндия)',
@@ -123,6 +126,7 @@
         'en_FR' => 'англисӣ (Фаронса)',
         'en_GB' => 'англисӣ (Шоҳигарии Муттаҳида)',
         'en_GD' => 'англисӣ (Гренада)',
+        'en_GE' => 'англисӣ (Гурҷистон)',
         'en_GG' => 'англисӣ (Гернси)',
         'en_GH' => 'англисӣ (Гана)',
         'en_GI' => 'англисӣ (Гибралтар)',
@@ -141,6 +145,7 @@
         'en_IT' => 'англисӣ (Италия)',
         'en_JE' => 'англисӣ (Ҷерси)',
         'en_JM' => 'англисӣ (Ямайка)',
+        'en_JP' => 'англисӣ (Япония)',
         'en_KE' => 'англисӣ (Кения)',
         'en_KI' => 'англисӣ (Кирибати)',
         'en_KN' => 'англисӣ (Сент-Китс ва Невис)',
@@ -148,6 +153,8 @@
         'en_LC' => 'англисӣ (Сент-Люсия)',
         'en_LR' => 'англисӣ (Либерия)',
         'en_LS' => 'англисӣ (Лесото)',
+        'en_LT' => 'англисӣ (Литва)',
+        'en_LV' => 'англисӣ (Латвия)',
         'en_MG' => 'англисӣ (Мадагаскар)',
         'en_MH' => 'англисӣ (Ҷазираҳои Маршалл)',
         'en_MO' => 'англисӣ (Макао [МММ])',
@@ -194,6 +201,7 @@
         'en_TT' => 'англисӣ (Тринидад ва Тобаго)',
         'en_TV' => 'англисӣ (Тувалу)',
         'en_TZ' => 'англисӣ (Танзания)',
+        'en_UA' => 'англисӣ (Украина)',
         'en_UG' => 'англисӣ (Уганда)',
         'en_UM' => 'англисӣ (Ҷазираҳои Хурди Дурдасти ИМА)',
         'en_US' => 'англисӣ (Иёлоти Муттаҳида)',
@@ -368,6 +376,8 @@
         'ka' => 'гурҷӣ',
         'ka_GE' => 'гурҷӣ (Гурҷистон)',
         'kk' => 'қазоқӣ',
+        'kk_Arab' => 'қазоқӣ (Арабӣ)',
+        'kk_Arab_CN' => 'қазоқӣ (Арабӣ, Хитой)',
         'kk_Cyrl' => 'қазоқӣ (Кириллӣ)',
         'kk_Cyrl_KZ' => 'қазоқӣ (Кириллӣ, Қазоқистон)',
         'kk_KZ' => 'қазоқӣ (Қазоқистон)',
@@ -386,6 +396,11 @@
         'ks_Deva_IN' => 'кашмирӣ (Деванагарӣ, Ҳиндустон)',
         'ks_IN' => 'кашмирӣ (Ҳиндустон)',
         'ku' => 'курдӣ',
+        'ku_Latn' => 'курдӣ (Лотинӣ)',
+        'ku_Latn_IQ' => 'курдӣ (Лотинӣ, Ироқ)',
+        'ku_Latn_SY' => 'курдӣ (Лотинӣ, Сурия)',
+        'ku_Latn_TR' => 'курдӣ (Лотинӣ, Туркия)',
+        'ku_SY' => 'курдӣ (Сурия)',
         'ku_TR' => 'курдӣ (Туркия)',
         'ky' => 'қирғизӣ',
         'ky_KG' => 'қирғизӣ (Қирғизистон)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/th.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/th.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/th.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/th.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'อาเซอร์ไบจาน (ซีริลลิก, อาเซอร์ไบจาน)',
         'az_Latn' => 'อาเซอร์ไบจาน (ละติน)',
         'az_Latn_AZ' => 'อาเซอร์ไบจาน (ละติน, อาเซอร์ไบจาน)',
+        'ba' => 'บัชคีร์',
+        'ba_RU' => 'บัชคีร์ (รัสเซีย)',
         'be' => 'เบลารุส',
         'be_BY' => 'เบลารุส (เบลารุส)',
         'bg' => 'บัลแกเรีย',
@@ -125,6 +127,7 @@
         'en_DE' => 'อังกฤษ (เยอรมนี)',
         'en_DK' => 'อังกฤษ (เดนมาร์ก)',
         'en_DM' => 'อังกฤษ (โดมินิกา)',
+        'en_EE' => 'อังกฤษ (เอสโตเนีย)',
         'en_ER' => 'อังกฤษ (เอริเทรีย)',
         'en_ES' => 'อังกฤษ (สเปน)',
         'en_FI' => 'อังกฤษ (ฟินแลนด์)',
@@ -134,6 +137,7 @@
         'en_FR' => 'อังกฤษ (ฝรั่งเศส)',
         'en_GB' => 'อังกฤษ (สหราชอาณาจักร)',
         'en_GD' => 'อังกฤษ (เกรเนดา)',
+        'en_GE' => 'อังกฤษ (จอร์เจีย)',
         'en_GG' => 'อังกฤษ (เกิร์นซีย์)',
         'en_GH' => 'อังกฤษ (กานา)',
         'en_GI' => 'อังกฤษ (ยิบรอลตาร์)',
@@ -152,6 +156,7 @@
         'en_IT' => 'อังกฤษ (อิตาลี)',
         'en_JE' => 'อังกฤษ (เจอร์ซีย์)',
         'en_JM' => 'อังกฤษ (จาเมกา)',
+        'en_JP' => 'อังกฤษ (ญี่ปุ่น)',
         'en_KE' => 'อังกฤษ (เคนยา)',
         'en_KI' => 'อังกฤษ (คิริบาส)',
         'en_KN' => 'อังกฤษ (เซนต์คิตส์และเนวิส)',
@@ -159,6 +164,8 @@
         'en_LC' => 'อังกฤษ (เซนต์ลูเซีย)',
         'en_LR' => 'อังกฤษ (ไลบีเรีย)',
         'en_LS' => 'อังกฤษ (เลโซโท)',
+        'en_LT' => 'อังกฤษ (ลิทัวเนีย)',
+        'en_LV' => 'อังกฤษ (ลัตเวีย)',
         'en_MG' => 'อังกฤษ (มาดากัสการ์)',
         'en_MH' => 'อังกฤษ (หมู่เกาะมาร์แชลล์)',
         'en_MO' => 'อังกฤษ (เขตปกครองพิเศษมาเก๊าแห่งสาธารณรัฐประชาชนจีน)',
@@ -205,6 +212,7 @@
         'en_TT' => 'อังกฤษ (ตรินิแดดและโตเบโก)',
         'en_TV' => 'อังกฤษ (ตูวาลู)',
         'en_TZ' => 'อังกฤษ (แทนซาเนีย)',
+        'en_UA' => 'อังกฤษ (ยูเครน)',
         'en_UG' => 'อังกฤษ (ยูกันดา)',
         'en_UM' => 'อังกฤษ (หมู่เกาะรอบนอกของสหรัฐอเมริกา)',
         'en_US' => 'อังกฤษ (สหรัฐอเมริกา)',
@@ -391,6 +399,8 @@
         'ki' => 'กีกูยู',
         'ki_KE' => 'กีกูยู (เคนยา)',
         'kk' => 'คาซัค',
+        'kk_Arab' => 'คาซัค (อาหรับ)',
+        'kk_Arab_CN' => 'คาซัค (อาหรับ, จีน)',
         'kk_Cyrl' => 'คาซัค (ซีริลลิก)',
         'kk_Cyrl_KZ' => 'คาซัค (ซีริลลิก, คาซัคสถาน)',
         'kk_KZ' => 'คาซัค (คาซัคสถาน)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'แคชเมียร์ (เทวนาครี, อินเดีย)',
         'ks_IN' => 'แคชเมียร์ (อินเดีย)',
         'ku' => 'เคิร์ด',
+        'ku_Latn' => 'เคิร์ด (ละติน)',
+        'ku_Latn_IQ' => 'เคิร์ด (ละติน, อิรัก)',
+        'ku_Latn_SY' => 'เคิร์ด (ละติน, ซีเรีย)',
+        'ku_Latn_TR' => 'เคิร์ด (ละติน, ตุรกี)',
+        'ku_SY' => 'เคิร์ด (ซีเรีย)',
         'ku_TR' => 'เคิร์ด (ตุรกี)',
         'kw' => 'คอร์นิช',
         'kw_GB' => 'คอร์นิช (สหราชอาณาจักร)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ti_ER.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ti_ER.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ti_ER.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ti_ER.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
-<?php
-
-return [
-    'Names' => [
-        'sr' => 'ሰርብኛ',
-        'sr_BA' => 'ሰርብኛ (ቦዝንያን ሄርዘጎቪናን)',
-        'sr_Cyrl' => 'ሰርብኛ (ቋንቋ ሲሪል)',
-        'sr_Cyrl_BA' => 'ሰርብኛ (ቋንቋ ሲሪል፣ ቦዝንያን ሄርዘጎቪናን)',
-        'sr_Cyrl_ME' => 'ሰርብኛ (ቋንቋ ሲሪል፣ ሞንተኔግሮ)',
-        'sr_Cyrl_RS' => 'ሰርብኛ (ቋንቋ ሲሪል፣ ሰርብያ)',
-        'sr_Latn' => 'ሰርብኛ (ላቲን)',
-        'sr_Latn_BA' => 'ሰርብኛ (ላቲን፣ ቦዝንያን ሄርዘጎቪናን)',
-        'sr_Latn_ME' => 'ሰርብኛ (ላቲን፣ ሞንተኔግሮ)',
-        'sr_Latn_RS' => 'ሰርብኛ (ላቲን፣ ሰርብያ)',
-        'sr_ME' => 'ሰርብኛ (ሞንተኔግሮ)',
-        'sr_RS' => 'ሰርብኛ (ሰርብያ)',
-    ],
-];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ti.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ti.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ti.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ti.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'ኣዘርባጃንኛ (ቋንቋ ሲሪል፣ ኣዘርባጃን)',
         'az_Latn' => 'ኣዘርባጃንኛ (ላቲን)',
         'az_Latn_AZ' => 'ኣዘርባጃንኛ (ላቲን፣ ኣዘርባጃን)',
+        'ba' => 'ባሽኪር',
+        'ba_RU' => 'ባሽኪር (ሩስያ)',
         'be' => 'ቤላሩስኛ',
         'be_BY' => 'ቤላሩስኛ (ቤላሩስ)',
         'bg' => 'ቡልጋርኛ',
@@ -125,6 +127,7 @@
         'en_DE' => 'እንግሊዝኛ (ጀርመን)',
         'en_DK' => 'እንግሊዝኛ (ደንማርክ)',
         'en_DM' => 'እንግሊዝኛ (ዶሚኒካ)',
+        'en_EE' => 'እንግሊዝኛ (ኤስቶንያ)',
         'en_ER' => 'እንግሊዝኛ (ኤርትራ)',
         'en_ES' => 'እንግሊዝኛ (ስጳኛ)',
         'en_FI' => 'እንግሊዝኛ (ፊንላንድ)',
@@ -134,6 +137,7 @@
         'en_FR' => 'እንግሊዝኛ (ፈረንሳ)',
         'en_GB' => 'እንግሊዝኛ (ብሪጣንያ)',
         'en_GD' => 'እንግሊዝኛ (ግረናዳ)',
+        'en_GE' => 'እንግሊዝኛ (ጆርጅያ)',
         'en_GG' => 'እንግሊዝኛ (ገርንዚ)',
         'en_GH' => 'እንግሊዝኛ (ጋና)',
         'en_GI' => 'እንግሊዝኛ (ጂብራልታር)',
@@ -152,6 +156,7 @@
         'en_IT' => 'እንግሊዝኛ (ኢጣልያ)',
         'en_JE' => 'እንግሊዝኛ (ጀርዚ)',
         'en_JM' => 'እንግሊዝኛ (ጃማይካ)',
+        'en_JP' => 'እንግሊዝኛ (ጃፓን)',
         'en_KE' => 'እንግሊዝኛ (ኬንያ)',
         'en_KI' => 'እንግሊዝኛ (ኪሪባቲ)',
         'en_KN' => 'እንግሊዝኛ (ቅዱስ ኪትስን ኔቪስን)',
@@ -159,6 +164,8 @@
         'en_LC' => 'እንግሊዝኛ (ቅድስቲ ሉስያ)',
         'en_LR' => 'እንግሊዝኛ (ላይበርያ)',
         'en_LS' => 'እንግሊዝኛ (ሌሶቶ)',
+        'en_LT' => 'እንግሊዝኛ (ሊትዌንያ)',
+        'en_LV' => 'እንግሊዝኛ (ላትቭያ)',
         'en_MG' => 'እንግሊዝኛ (ማዳጋስካር)',
         'en_MH' => 'እንግሊዝኛ (ደሴታት ማርሻል)',
         'en_MO' => 'እንግሊዝኛ (ፍሉይ ምምሕዳራዊ ዞባ ማካው [ቻይና])',
@@ -205,6 +212,7 @@
         'en_TT' => 'እንግሊዝኛ (ትሪኒዳድን ቶባጎን)',
         'en_TV' => 'እንግሊዝኛ (ቱቫሉ)',
         'en_TZ' => 'እንግሊዝኛ (ታንዛንያ)',
+        'en_UA' => 'እንግሊዝኛ (ዩክሬን)',
         'en_UG' => 'እንግሊዝኛ (ኡጋንዳ)',
         'en_UM' => 'እንግሊዝኛ (ካብ ኣመሪካ ርሒቐን ንኣሽቱ ደሴታት)',
         'en_US' => 'እንግሊዝኛ (ኣመሪካ)',
@@ -391,6 +399,8 @@
         'ki' => 'ኪኩዩ',
         'ki_KE' => 'ኪኩዩ (ኬንያ)',
         'kk' => 'ካዛክ',
+        'kk_Arab' => 'ካዛክ (ዓረብኛ)',
+        'kk_Arab_CN' => 'ካዛክ (ዓረብኛ፣ ቻይና)',
         'kk_Cyrl' => 'ካዛክ (ቋንቋ ሲሪል)',
         'kk_Cyrl_KZ' => 'ካዛክ (ቋንቋ ሲሪል፣ ካዛኪስታን)',
         'kk_KZ' => 'ካዛክ (ካዛኪስታን)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'ካሽሚሪ (ዴቫንጋሪ፣ ህንዲ)',
         'ks_IN' => 'ካሽሚሪ (ህንዲ)',
         'ku' => 'ኩርዲሽ',
+        'ku_Latn' => 'ኩርዲሽ (ላቲን)',
+        'ku_Latn_IQ' => 'ኩርዲሽ (ላቲን፣ ዒራቕ)',
+        'ku_Latn_SY' => 'ኩርዲሽ (ላቲን፣ ሶርያ)',
+        'ku_Latn_TR' => 'ኩርዲሽ (ላቲን፣ ቱርኪ)',
+        'ku_SY' => 'ኩርዲሽ (ሶርያ)',
         'ku_TR' => 'ኩርዲሽ (ቱርኪ)',
         'kw' => 'ኮርንኛ',
         'kw_GB' => 'ኮርንኛ (ብሪጣንያ)',
@@ -565,18 +580,18 @@
         'sq' => 'ኣልባንኛ',
         'sq_AL' => 'ኣልባንኛ (ኣልባንያ)',
         'sq_MK' => 'ኣልባንኛ (ሰሜን መቄዶንያ)',
-        'sr' => 'ሰርቢያኛ',
-        'sr_BA' => 'ሰርቢያኛ (ቦዝንያን ሄርዘጎቪናን)',
-        'sr_Cyrl' => 'ሰርቢያኛ (ቋንቋ ሲሪል)',
-        'sr_Cyrl_BA' => 'ሰርቢያኛ (ቋንቋ ሲሪል፣ ቦዝንያን ሄርዘጎቪናን)',
-        'sr_Cyrl_ME' => 'ሰርቢያኛ (ቋንቋ ሲሪል፣ ሞንተኔግሮ)',
-        'sr_Cyrl_RS' => 'ሰርቢያኛ (ቋንቋ ሲሪል፣ ሰርብያ)',
-        'sr_Latn' => 'ሰርቢያኛ (ላቲን)',
-        'sr_Latn_BA' => 'ሰርቢያኛ (ላቲን፣ ቦዝንያን ሄርዘጎቪናን)',
-        'sr_Latn_ME' => 'ሰርቢያኛ (ላቲን፣ ሞንተኔግሮ)',
-        'sr_Latn_RS' => 'ሰርቢያኛ (ላቲን፣ ሰርብያ)',
-        'sr_ME' => 'ሰርቢያኛ (ሞንተኔግሮ)',
-        'sr_RS' => 'ሰርቢያኛ (ሰርብያ)',
+        'sr' => 'ሰርብኛ',
+        'sr_BA' => 'ሰርብኛ (ቦዝንያን ሄርዘጎቪናን)',
+        'sr_Cyrl' => 'ሰርብኛ (ቋንቋ ሲሪል)',
+        'sr_Cyrl_BA' => 'ሰርብኛ (ቋንቋ ሲሪል፣ ቦዝንያን ሄርዘጎቪናን)',
+        'sr_Cyrl_ME' => 'ሰርብኛ (ቋንቋ ሲሪል፣ ሞንተኔግሮ)',
+        'sr_Cyrl_RS' => 'ሰርብኛ (ቋንቋ ሲሪል፣ ሰርብያ)',
+        'sr_Latn' => 'ሰርብኛ (ላቲን)',
+        'sr_Latn_BA' => 'ሰርብኛ (ላቲን፣ ቦዝንያን ሄርዘጎቪናን)',
+        'sr_Latn_ME' => 'ሰርብኛ (ላቲን፣ ሞንተኔግሮ)',
+        'sr_Latn_RS' => 'ሰርብኛ (ላቲን፣ ሰርብያ)',
+        'sr_ME' => 'ሰርብኛ (ሞንተኔግሮ)',
+        'sr_RS' => 'ሰርብኛ (ሰርብያ)',
         'st' => 'ደቡባዊ ሶቶ',
         'st_LS' => 'ደቡባዊ ሶቶ (ሌሶቶ)',
         'st_ZA' => 'ደቡባዊ ሶቶ (ደቡብ ኣፍሪቃ)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tk.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'azerbaýjan dili (Kiril elipbiýi, Azerbaýjan)',
         'az_Latn' => 'azerbaýjan dili (Latyn elipbiýi)',
         'az_Latn_AZ' => 'azerbaýjan dili (Latyn elipbiýi, Azerbaýjan)',
+        'ba' => 'başgyrt dili',
+        'ba_RU' => 'başgyrt dili (Russiýa)',
         'be' => 'belarus dili',
         'be_BY' => 'belarus dili (Belarus)',
         'bg' => 'bolgar dili',
@@ -125,6 +127,7 @@
         'en_DE' => 'iňlis dili (Germaniýa)',
         'en_DK' => 'iňlis dili (Daniýa)',
         'en_DM' => 'iňlis dili (Dominika)',
+        'en_EE' => 'iňlis dili (Estoniýa)',
         'en_ER' => 'iňlis dili (Eritreýa)',
         'en_ES' => 'iňlis dili (Ispaniýa)',
         'en_FI' => 'iňlis dili (Finlýandiýa)',
@@ -134,6 +137,7 @@
         'en_FR' => 'iňlis dili (Fransiýa)',
         'en_GB' => 'iňlis dili (Birleşen Patyşalyk)',
         'en_GD' => 'iňlis dili (Grenada)',
+        'en_GE' => 'iňlis dili (Gruziýa)',
         'en_GG' => 'iňlis dili (Gernsi)',
         'en_GH' => 'iňlis dili (Gana)',
         'en_GI' => 'iňlis dili (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'iňlis dili (Italiýa)',
         'en_JE' => 'iňlis dili (Jersi)',
         'en_JM' => 'iňlis dili (Ýamaýka)',
+        'en_JP' => 'iňlis dili (Ýaponiýa)',
         'en_KE' => 'iňlis dili (Keniýa)',
         'en_KI' => 'iňlis dili (Kiribati)',
         'en_KN' => 'iňlis dili (Sent-Kits we Newis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'iňlis dili (Sent-Lýusiýa)',
         'en_LR' => 'iňlis dili (Liberiýa)',
         'en_LS' => 'iňlis dili (Lesoto)',
+        'en_LT' => 'iňlis dili (Litwa)',
+        'en_LV' => 'iňlis dili (Latwiýa)',
         'en_MG' => 'iňlis dili (Madagaskar)',
         'en_MH' => 'iňlis dili (Marşall adalary)',
         'en_MO' => 'iňlis dili (Makao AAS Hytaý)',
@@ -205,6 +212,7 @@
         'en_TT' => 'iňlis dili (Trinidad we Tobago)',
         'en_TV' => 'iňlis dili (Tuwalu)',
         'en_TZ' => 'iňlis dili (Tanzaniýa)',
+        'en_UA' => 'iňlis dili (Ukraina)',
         'en_UG' => 'iňlis dili (Uganda)',
         'en_UM' => 'iňlis dili (ABŞ-nyň daşarky adalary)',
         'en_US' => 'iňlis dili (Amerikanyň Birleşen Ştatlary)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuýu dili',
         'ki_KE' => 'kikuýu dili (Keniýa)',
         'kk' => 'gazak dili',
+        'kk_Arab' => 'gazak dili (Arap elipbiýi)',
+        'kk_Arab_CN' => 'gazak dili (Arap elipbiýi, Hytaý)',
         'kk_Cyrl' => 'gazak dili (Kiril elipbiýi)',
         'kk_Cyrl_KZ' => 'gazak dili (Kiril elipbiýi, Gazagystan)',
         'kk_KZ' => 'gazak dili (Gazagystan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kaşmiri dili (Dewanagari elipbiýi, Hindistan)',
         'ks_IN' => 'kaşmiri dili (Hindistan)',
         'ku' => 'kürt dili',
+        'ku_Latn' => 'kürt dili (Latyn elipbiýi)',
+        'ku_Latn_IQ' => 'kürt dili (Latyn elipbiýi, Yrak)',
+        'ku_Latn_SY' => 'kürt dili (Latyn elipbiýi, Siriýa)',
+        'ku_Latn_TR' => 'kürt dili (Latyn elipbiýi, Türkiýe)',
+        'ku_SY' => 'kürt dili (Siriýa)',
         'ku_TR' => 'kürt dili (Türkiýe)',
         'kw' => 'korn dili',
         'kw_GB' => 'korn dili (Birleşen Patyşalyk)',
@@ -494,9 +509,9 @@
         'pa_PK' => 'penjab dili (Pakistan)',
         'pl' => 'polýak dili',
         'pl_PL' => 'polýak dili (Polşa)',
-        'ps' => 'peştun dili',
-        'ps_AF' => 'peştun dili (Owganystan)',
-        'ps_PK' => 'peştun dili (Pakistan)',
+        'ps' => 'puştu dili',
+        'ps_AF' => 'puştu dili (Owganystan)',
+        'ps_PK' => 'puştu dili (Pakistan)',
         'pt' => 'portugal dili',
         'pt_AO' => 'portugal dili (Angola)',
         'pt_BR' => 'portugal dili (Braziliýa)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/to.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/to.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/to.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/to.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'lea fakaʻasepaisani (tohinima fakalūsia, ʻAsapaisani)',
         'az_Latn' => 'lea fakaʻasepaisani (tohinima fakalatina)',
         'az_Latn_AZ' => 'lea fakaʻasepaisani (tohinima fakalatina, ʻAsapaisani)',
+        'ba' => 'lea fakapasikili',
+        'ba_RU' => 'lea fakapasikili (Lūsia)',
         'be' => 'lea fakapelalusi',
         'be_BY' => 'lea fakapelalusi (Pelalusi)',
         'bg' => 'lea fakapulukalia',
@@ -125,6 +127,7 @@
         'en_DE' => 'lea fakapālangi (Siamane)',
         'en_DK' => 'lea fakapālangi (Tenimaʻake)',
         'en_DM' => 'lea fakapālangi (Tominika)',
+        'en_EE' => 'lea fakapālangi (ʻEsitōnia)',
         'en_ER' => 'lea fakapālangi (ʻElitulia)',
         'en_ES' => 'lea fakapālangi (Sipeini)',
         'en_FI' => 'lea fakapālangi (Finilani)',
@@ -134,6 +137,7 @@
         'en_FR' => 'lea fakapālangi (Falanisē)',
         'en_GB' => 'lea fakapālangi (Pilitānia)',
         'en_GD' => 'lea fakapālangi (Kelenatā)',
+        'en_GE' => 'lea fakapālangi (Seōsia)',
         'en_GG' => 'lea fakapālangi (Kuenisī)',
         'en_GH' => 'lea fakapālangi (Kana)',
         'en_GI' => 'lea fakapālangi (Sipalālitā)',
@@ -152,6 +156,7 @@
         'en_IT' => 'lea fakapālangi (ʻĪtali)',
         'en_JE' => 'lea fakapālangi (Selusī)',
         'en_JM' => 'lea fakapālangi (Samaika)',
+        'en_JP' => 'lea fakapālangi (Siapani)',
         'en_KE' => 'lea fakapālangi (Keniā)',
         'en_KI' => 'lea fakapālangi (Kilipasi)',
         'en_KN' => 'lea fakapālangi (Sā Kitisi mo Nevisi)',
@@ -159,6 +164,8 @@
         'en_LC' => 'lea fakapālangi (Sā Lūsia)',
         'en_LR' => 'lea fakapālangi (Laipelia)',
         'en_LS' => 'lea fakapālangi (Lesoto)',
+        'en_LT' => 'lea fakapālangi (Lituania)',
+        'en_LV' => 'lea fakapālangi (Lativia)',
         'en_MG' => 'lea fakapālangi (Matakasika)',
         'en_MH' => 'lea fakapālangi (ʻOtumotu Māsolo)',
         'en_MO' => 'lea fakapālangi (Makau SAR Siaina)',
@@ -205,6 +212,7 @@
         'en_TT' => 'lea fakapālangi (Tilinitati mo Topako)',
         'en_TV' => 'lea fakapālangi (Tūvalu)',
         'en_TZ' => 'lea fakapālangi (Tenisānia)',
+        'en_UA' => 'lea fakapālangi (ʻŪkalaʻine)',
         'en_UG' => 'lea fakapālangi (ʻIukanitā)',
         'en_UM' => 'lea fakapālangi (ʻOtumotu siʻi ʻo ʻAmelika)',
         'en_US' => 'lea fakapālangi (Puleʻanga fakatahataha ʻAmelika)',
@@ -391,6 +399,8 @@
         'ki' => 'lea fakakikuiu',
         'ki_KE' => 'lea fakakikuiu (Keniā)',
         'kk' => 'lea fakakasaki',
+        'kk_Arab' => 'lea fakakasaki (tohinima fakaʻalepea)',
+        'kk_Arab_CN' => 'lea fakakasaki (tohinima fakaʻalepea, Siaina)',
         'kk_Cyrl' => 'lea fakakasaki (tohinima fakalūsia)',
         'kk_Cyrl_KZ' => 'lea fakakasaki (tohinima fakalūsia, Kasakitani)',
         'kk_KZ' => 'lea fakakasaki (Kasakitani)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'lea fakakāsimila (tohinima fakaʻinitia-tevanākalī, ʻInitia)',
         'ks_IN' => 'lea fakakāsimila (ʻInitia)',
         'ku' => 'lea fakakulitī',
+        'ku_Latn' => 'lea fakakulitī (tohinima fakalatina)',
+        'ku_Latn_IQ' => 'lea fakakulitī (tohinima fakalatina, ʻIlaaki)',
+        'ku_Latn_SY' => 'lea fakakulitī (tohinima fakalatina, Sīlia)',
+        'ku_Latn_TR' => 'lea fakakulitī (tohinima fakalatina, Toake)',
+        'ku_SY' => 'lea fakakulitī (Sīlia)',
         'ku_TR' => 'lea fakakulitī (Toake)',
         'kw' => 'lea fakakoniuali',
         'kw_GB' => 'lea fakakoniuali (Pilitānia)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tr.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Azerbaycan dili (Kiril, Azerbaycan)',
         'az_Latn' => 'Azerbaycan dili (Latin)',
         'az_Latn_AZ' => 'Azerbaycan dili (Latin, Azerbaycan)',
+        'ba' => 'Başkırtça',
+        'ba_RU' => 'Başkırtça (Rusya)',
         'be' => 'Belarusça',
         'be_BY' => 'Belarusça (Belarus)',
         'bg' => 'Bulgarca',
@@ -125,6 +127,7 @@
         'en_DE' => 'İngilizce (Almanya)',
         'en_DK' => 'İngilizce (Danimarka)',
         'en_DM' => 'İngilizce (Dominika)',
+        'en_EE' => 'İngilizce (Estonya)',
         'en_ER' => 'İngilizce (Eritre)',
         'en_ES' => 'İngilizce (İspanya)',
         'en_FI' => 'İngilizce (Finlandiya)',
@@ -134,6 +137,7 @@
         'en_FR' => 'İngilizce (Fransa)',
         'en_GB' => 'İngilizce (Birleşik Krallık)',
         'en_GD' => 'İngilizce (Grenada)',
+        'en_GE' => 'İngilizce (Gürcistan)',
         'en_GG' => 'İngilizce (Guernsey)',
         'en_GH' => 'İngilizce (Gana)',
         'en_GI' => 'İngilizce (Cebelitarık)',
@@ -152,6 +156,7 @@
         'en_IT' => 'İngilizce (İtalya)',
         'en_JE' => 'İngilizce (Jersey)',
         'en_JM' => 'İngilizce (Jamaika)',
+        'en_JP' => 'İngilizce (Japonya)',
         'en_KE' => 'İngilizce (Kenya)',
         'en_KI' => 'İngilizce (Kiribati)',
         'en_KN' => 'İngilizce (Saint Kitts ve Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'İngilizce (Saint Lucia)',
         'en_LR' => 'İngilizce (Liberya)',
         'en_LS' => 'İngilizce (Lesotho)',
+        'en_LT' => 'İngilizce (Litvanya)',
+        'en_LV' => 'İngilizce (Letonya)',
         'en_MG' => 'İngilizce (Madagaskar)',
         'en_MH' => 'İngilizce (Marshall Adaları)',
         'en_MO' => 'İngilizce (Çin Makao ÖİB)',
@@ -205,6 +212,7 @@
         'en_TT' => 'İngilizce (Trinidad ve Tobago)',
         'en_TV' => 'İngilizce (Tuvalu)',
         'en_TZ' => 'İngilizce (Tanzanya)',
+        'en_UA' => 'İngilizce (Ukrayna)',
         'en_UG' => 'İngilizce (Uganda)',
         'en_UM' => 'İngilizce (ABD Küçük Harici Adaları)',
         'en_US' => 'İngilizce (Amerika Birleşik Devletleri)',
@@ -391,6 +399,8 @@
         'ki' => 'Kikuyu',
         'ki_KE' => 'Kikuyu (Kenya)',
         'kk' => 'Kazakça',
+        'kk_Arab' => 'Kazakça (Arap)',
+        'kk_Arab_CN' => 'Kazakça (Arap, Çin)',
         'kk_Cyrl' => 'Kazakça (Kiril)',
         'kk_Cyrl_KZ' => 'Kazakça (Kiril, Kazakistan)',
         'kk_KZ' => 'Kazakça (Kazakistan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Keşmir dili (Devanagari, Hindistan)',
         'ks_IN' => 'Keşmir dili (Hindistan)',
         'ku' => 'Kürtçe',
+        'ku_Latn' => 'Kürtçe (Latin)',
+        'ku_Latn_IQ' => 'Kürtçe (Latin, Irak)',
+        'ku_Latn_SY' => 'Kürtçe (Latin, Suriye)',
+        'ku_Latn_TR' => 'Kürtçe (Latin, Türkiye)',
+        'ku_SY' => 'Kürtçe (Suriye)',
         'ku_TR' => 'Kürtçe (Türkiye)',
         'kw' => 'Kernevekçe',
         'kw_GB' => 'Kernevekçe (Birleşik Krallık)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/tt.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,35 +7,35 @@
         'af_ZA' => 'африкаанс (Көньяк Африка)',
         'am' => 'амхар',
         'am_ET' => 'амхар (Эфиопия)',
-        'ar' => 'гарәп',
-        'ar_001' => 'гарәп (дөнья)',
-        'ar_AE' => 'гарәп (Берләшкән Гарәп Әмирлекләре)',
-        'ar_BH' => 'гарәп (Бәхрәйн)',
-        'ar_DJ' => 'гарәп (Җибүти)',
-        'ar_DZ' => 'гарәп (Алжир)',
-        'ar_EG' => 'гарәп (Мисыр)',
-        'ar_EH' => 'гарәп (Көнбатыш Сахара)',
-        'ar_ER' => 'гарәп (Эритрея)',
-        'ar_IL' => 'гарәп (Израиль)',
-        'ar_IQ' => 'гарәп (Гыйрак)',
-        'ar_JO' => 'гарәп (Иордания)',
-        'ar_KM' => 'гарәп (Комор утраулары)',
-        'ar_KW' => 'гарәп (Күвәйт)',
-        'ar_LB' => 'гарәп (Ливан)',
-        'ar_LY' => 'гарәп (Ливия)',
-        'ar_MA' => 'гарәп (Марокко)',
-        'ar_MR' => 'гарәп (Мавритания)',
-        'ar_OM' => 'гарәп (Оман)',
-        'ar_PS' => 'гарәп (Фәләстин территорияләре)',
-        'ar_QA' => 'гарәп (Катар)',
-        'ar_SA' => 'гарәп (Согуд Гарәбстаны)',
-        'ar_SD' => 'гарәп (Судан)',
-        'ar_SO' => 'гарәп (Сомали)',
-        'ar_SS' => 'гарәп (Көньяк Судан)',
-        'ar_SY' => 'гарәп (Сүрия)',
-        'ar_TD' => 'гарәп (Чад)',
-        'ar_TN' => 'гарәп (Тунис)',
-        'ar_YE' => 'гарәп (Йәмән)',
+        'ar' => 'гарәпчә',
+        'ar_001' => 'гарәпчә (дөнья)',
+        'ar_AE' => 'гарәпчә (Берләшкән Гарәп Әмирлекләре)',
+        'ar_BH' => 'гарәпчә (Бәхрәйн)',
+        'ar_DJ' => 'гарәпчә (Җибүти)',
+        'ar_DZ' => 'гарәпчә (Алжир)',
+        'ar_EG' => 'гарәпчә (Мисыр)',
+        'ar_EH' => 'гарәпчә (Көнбатыш Сахара)',
+        'ar_ER' => 'гарәпчә (Эритрея)',
+        'ar_IL' => 'гарәпчә (Израиль)',
+        'ar_IQ' => 'гарәпчә (Гыйрак)',
+        'ar_JO' => 'гарәпчә (Иордания)',
+        'ar_KM' => 'гарәпчә (Комор утраулары)',
+        'ar_KW' => 'гарәпчә (Күвәйт)',
+        'ar_LB' => 'гарәпчә (Ливан)',
+        'ar_LY' => 'гарәпчә (Ливия)',
+        'ar_MA' => 'гарәпчә (Марокко)',
+        'ar_MR' => 'гарәпчә (Мавритания)',
+        'ar_OM' => 'гарәпчә (Оман)',
+        'ar_PS' => 'гарәпчә (Фәләстин территорияләре)',
+        'ar_QA' => 'гарәпчә (Катар)',
+        'ar_SA' => 'гарәпчә (Согуд Гарәбстаны)',
+        'ar_SD' => 'гарәпчә (Судан)',
+        'ar_SO' => 'гарәпчә (Сомали)',
+        'ar_SS' => 'гарәпчә (Көньяк Судан)',
+        'ar_SY' => 'гарәпчә (Сүрия)',
+        'ar_TD' => 'гарәпчә (Чад)',
+        'ar_TN' => 'гарәпчә (Тунис)',
+        'ar_YE' => 'гарәпчә (Йәмән)',
         'as' => 'ассам',
         'as_IN' => 'ассам (Индия)',
         'az' => 'әзәрбайҗан',
@@ -44,13 +44,15 @@
         'az_Cyrl_AZ' => 'әзәрбайҗан (кирилл, Әзәрбайҗан)',
         'az_Latn' => 'әзәрбайҗан (латин)',
         'az_Latn_AZ' => 'әзәрбайҗан (латин, Әзәрбайҗан)',
+        'ba' => 'башкорт',
+        'ba_RU' => 'башкорт (Россия)',
         'be' => 'белорус',
         'be_BY' => 'белорус (Беларусь)',
         'bg' => 'болгар',
         'bg_BG' => 'болгар (Болгария)',
-        'bn' => 'бенгали',
-        'bn_BD' => 'бенгали (Бангладеш)',
-        'bn_IN' => 'бенгали (Индия)',
+        'bn' => 'бенгалча',
+        'bn_BD' => 'бенгалча (Бангладеш)',
+        'bn_IN' => 'бенгалча (Индия)',
         'bo' => 'тибет',
         'bo_CN' => 'тибет (Кытай)',
         'bo_IN' => 'тибет (Индия)',
@@ -114,6 +116,7 @@
         'en_DE' => 'инглиз (Германия)',
         'en_DK' => 'инглиз (Дания)',
         'en_DM' => 'инглиз (Доминика)',
+        'en_EE' => 'инглиз (Эстония)',
         'en_ER' => 'инглиз (Эритрея)',
         'en_ES' => 'инглиз (Испания)',
         'en_FI' => 'инглиз (Финляндия)',
@@ -123,6 +126,7 @@
         'en_FR' => 'инглиз (Франция)',
         'en_GB' => 'инглиз (Берләшкән Корольлек)',
         'en_GD' => 'инглиз (Гренада)',
+        'en_GE' => 'инглиз (Грузия)',
         'en_GG' => 'инглиз (Гернси)',
         'en_GH' => 'инглиз (Гана)',
         'en_GI' => 'инглиз (Гибралтар)',
@@ -141,6 +145,7 @@
         'en_IT' => 'инглиз (Италия)',
         'en_JE' => 'инглиз (Джерси)',
         'en_JM' => 'инглиз (Ямайка)',
+        'en_JP' => 'инглиз (Япония)',
         'en_KE' => 'инглиз (Кения)',
         'en_KI' => 'инглиз (Кирибати)',
         'en_KN' => 'инглиз (Сент-Китс һәм Невис)',
@@ -148,6 +153,8 @@
         'en_LC' => 'инглиз (Сент-Люсия)',
         'en_LR' => 'инглиз (Либерия)',
         'en_LS' => 'инглиз (Лесото)',
+        'en_LT' => 'инглиз (Литва)',
+        'en_LV' => 'инглиз (Латвия)',
         'en_MG' => 'инглиз (Мадагаскар)',
         'en_MH' => 'инглиз (Маршалл утраулары)',
         'en_MO' => 'инглиз (Макао Махсус Идарәле Төбәге)',
@@ -194,6 +201,7 @@
         'en_TT' => 'инглиз (Тринидад һәм Тобаго)',
         'en_TV' => 'инглиз (Тувалу)',
         'en_TZ' => 'инглиз (Танзания)',
+        'en_UA' => 'инглиз (Украина)',
         'en_UG' => 'инглиз (Уганда)',
         'en_UM' => 'инглиз (АКШ Кече Читтәге утраулары)',
         'en_US' => 'инглиз (АКШ)',
@@ -353,6 +361,8 @@
         'ka' => 'грузин',
         'ka_GE' => 'грузин (Грузия)',
         'kk' => 'казакъ',
+        'kk_Arab' => 'казакъ (гарәп)',
+        'kk_Arab_CN' => 'казакъ (гарәп, Кытай)',
         'kk_Cyrl' => 'казакъ (кирилл)',
         'kk_Cyrl_KZ' => 'казакъ (кирилл, Казахстан)',
         'kk_KZ' => 'казакъ (Казахстан)',
@@ -369,6 +379,11 @@
         'ks_Arab_IN' => 'кашмири (гарәп, Индия)',
         'ks_IN' => 'кашмири (Индия)',
         'ku' => 'көрд',
+        'ku_Latn' => 'көрд (латин)',
+        'ku_Latn_IQ' => 'көрд (латин, Гыйрак)',
+        'ku_Latn_SY' => 'көрд (латин, Сүрия)',
+        'ku_Latn_TR' => 'көрд (латин, Төркия)',
+        'ku_SY' => 'көрд (Сүрия)',
         'ku_TR' => 'көрд (Төркия)',
         'ky' => 'кыргыз',
         'ky_KG' => 'кыргыз (Кыргызстан)',
@@ -550,22 +565,22 @@
         'yo' => 'йоруба',
         'yo_BJ' => 'йоруба (Бенин)',
         'yo_NG' => 'йоруба (Нигерия)',
-        'zh' => 'кытай',
-        'zh_CN' => 'кытай (Кытай)',
-        'zh_HK' => 'кытай (Гонконг Махсус Идарәле Төбәге)',
-        'zh_Hans' => 'кытай (гадиләштерелгән)',
-        'zh_Hans_CN' => 'кытай (гадиләштерелгән, Кытай)',
-        'zh_Hans_HK' => 'кытай (гадиләштерелгән, Гонконг Махсус Идарәле Төбәге)',
-        'zh_Hans_MO' => 'кытай (гадиләштерелгән, Макао Махсус Идарәле Төбәге)',
-        'zh_Hans_MY' => 'кытай (гадиләштерелгән, Малайзия)',
-        'zh_Hans_SG' => 'кытай (гадиләштерелгән, Сингапур)',
-        'zh_Hant' => 'кытай (традицион)',
-        'zh_Hant_HK' => 'кытай (традицион, Гонконг Махсус Идарәле Төбәге)',
-        'zh_Hant_MO' => 'кытай (традицион, Макао Махсус Идарәле Төбәге)',
-        'zh_Hant_MY' => 'кытай (традицион, Малайзия)',
-        'zh_Hant_TW' => 'кытай (традицион, Тайвань)',
-        'zh_MO' => 'кытай (Макао Махсус Идарәле Төбәге)',
-        'zh_SG' => 'кытай (Сингапур)',
-        'zh_TW' => 'кытай (Тайвань)',
+        'zh' => 'кытайча',
+        'zh_CN' => 'кытайча (Кытай)',
+        'zh_HK' => 'кытайча (Гонконг Махсус Идарәле Төбәге)',
+        'zh_Hans' => 'кытайча (гадиләштерелгән)',
+        'zh_Hans_CN' => 'кытайча (гадиләштерелгән, Кытай)',
+        'zh_Hans_HK' => 'кытайча (гадиләштерелгән, Гонконг Махсус Идарәле Төбәге)',
+        'zh_Hans_MO' => 'кытайча (гадиләштерелгән, Макао Махсус Идарәле Төбәге)',
+        'zh_Hans_MY' => 'кытайча (гадиләштерелгән, Малайзия)',
+        'zh_Hans_SG' => 'кытайча (гадиләштерелгән, Сингапур)',
+        'zh_Hant' => 'кытайча (традицион)',
+        'zh_Hant_HK' => 'кытайча (традицион, Гонконг Махсус Идарәле Төбәге)',
+        'zh_Hant_MO' => 'кытайча (традицион, Макао Махсус Идарәле Төбәге)',
+        'zh_Hant_MY' => 'кытайча (традицион, Малайзия)',
+        'zh_Hant_TW' => 'кытайча (традицион, Тайвань)',
+        'zh_MO' => 'кытайча (Макао Махсус Идарәле Төбәге)',
+        'zh_SG' => 'кытайча (Сингапур)',
+        'zh_TW' => 'кытайча (Тайвань)',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ug.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ug.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ug.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ug.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'ئەزەربەيجانچە (كىرىل، ئەزەربەيجان)',
         'az_Latn' => 'ئەزەربەيجانچە (لاتىنچە)',
         'az_Latn_AZ' => 'ئەزەربەيجانچە (لاتىنچە، ئەزەربەيجان)',
+        'ba' => 'باشقىرتچە',
+        'ba_RU' => 'باشقىرتچە (رۇسىيە)',
         'be' => 'بېلارۇسچە',
         'be_BY' => 'بېلارۇسچە (بېلارۇسىيە)',
         'bg' => 'بۇلغارچە',
@@ -125,6 +127,7 @@
         'en_DE' => 'ئىنگلىزچە (گېرمانىيە)',
         'en_DK' => 'ئىنگلىزچە (دانىيە)',
         'en_DM' => 'ئىنگلىزچە (دومىنىكا)',
+        'en_EE' => 'ئىنگلىزچە (ئېستونىيە)',
         'en_ER' => 'ئىنگلىزچە (ئېرىترىيە)',
         'en_ES' => 'ئىنگلىزچە (ئىسپانىيە)',
         'en_FI' => 'ئىنگلىزچە (فىنلاندىيە)',
@@ -134,6 +137,7 @@
         'en_FR' => 'ئىنگلىزچە (فىرانسىيە)',
         'en_GB' => 'ئىنگلىزچە (بىرلەشمە پادىشاھلىق)',
         'en_GD' => 'ئىنگلىزچە (گىرېنادا)',
+        'en_GE' => 'ئىنگلىزچە (گىرۇزىيە)',
         'en_GG' => 'ئىنگلىزچە (گۇرنسېي)',
         'en_GH' => 'ئىنگلىزچە (گانا)',
         'en_GI' => 'ئىنگلىزچە (جەبىلتارىق)',
@@ -151,6 +155,7 @@
         'en_IT' => 'ئىنگلىزچە (ئىتالىيە)',
         'en_JE' => 'ئىنگلىزچە (جېرسېي)',
         'en_JM' => 'ئىنگلىزچە (يامايكا)',
+        'en_JP' => 'ئىنگلىزچە (ياپونىيە)',
         'en_KE' => 'ئىنگلىزچە (كېنىيە)',
         'en_KI' => 'ئىنگلىزچە (كىرىباتى)',
         'en_KN' => 'ئىنگلىزچە (ساينت كىتىس ۋە نېۋىس)',
@@ -158,6 +163,8 @@
         'en_LC' => 'ئىنگلىزچە (ساينت لۇسىيە)',
         'en_LR' => 'ئىنگلىزچە (لىبېرىيە)',
         'en_LS' => 'ئىنگلىزچە (لېسوتو)',
+        'en_LT' => 'ئىنگلىزچە (لىتۋانىيە)',
+        'en_LV' => 'ئىنگلىزچە (لاتۋىيە)',
         'en_MG' => 'ئىنگلىزچە (ماداغاسقار)',
         'en_MH' => 'ئىنگلىزچە (مارشال ئاراللىرى)',
         'en_MO' => 'ئىنگلىزچە (ئاۋمېن ئالاھىدە مەمۇرىي رايونى)',
@@ -204,6 +211,7 @@
         'en_TT' => 'ئىنگلىزچە (تىرىنىداد ۋە توباگو)',
         'en_TV' => 'ئىنگلىزچە (تۇۋالۇ)',
         'en_TZ' => 'ئىنگلىزچە (تانزانىيە)',
+        'en_UA' => 'ئىنگلىزچە (ئۇكرائىنا)',
         'en_UG' => 'ئىنگلىزچە (ئۇگاندا)',
         'en_UM' => 'ئىنگلىزچە (ئا ق ش تاشقى ئاراللىرى)',
         'en_US' => 'ئىنگلىزچە (ئامېرىكا قوشما ئىشتاتلىرى)',
@@ -377,6 +385,8 @@
         'ki' => 'كىكۇيۇچە',
         'ki_KE' => 'كىكۇيۇچە (كېنىيە)',
         'kk' => 'قازاقچە',
+        'kk_Arab' => 'قازاقچە (ئەرەب)',
+        'kk_Arab_CN' => 'قازاقچە (ئەرەب، جۇڭگو)',
         'kk_Cyrl' => 'قازاقچە (كىرىل)',
         'kk_Cyrl_KZ' => 'قازاقچە (كىرىل، قازاقىستان)',
         'kk_KZ' => 'قازاقچە (قازاقىستان)',
@@ -397,6 +407,11 @@
         'ks_Deva_IN' => 'كەشمىرچە (دېۋاناگارى، ھىندىستان)',
         'ks_IN' => 'كەشمىرچە (ھىندىستان)',
         'ku' => 'كۇردچە',
+        'ku_Latn' => 'كۇردچە (لاتىنچە)',
+        'ku_Latn_IQ' => 'كۇردچە (لاتىنچە، ئىراق)',
+        'ku_Latn_SY' => 'كۇردچە (لاتىنچە، سۇرىيە)',
+        'ku_Latn_TR' => 'كۇردچە (لاتىنچە، تۈركىيە)',
+        'ku_SY' => 'كۇردچە (سۇرىيە)',
         'ku_TR' => 'كۇردچە (تۈركىيە)',
         'kw' => 'كورنىشچە',
         'kw_GB' => 'كورنىشچە (بىرلەشمە پادىشاھلىق)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uk.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,14 +38,16 @@
         'ar_TD' => 'арабська (Чад)',
         'ar_TN' => 'арабська (Туніс)',
         'ar_YE' => 'арабська (Ємен)',
-        'as' => 'асамська',
-        'as_IN' => 'асамська (Індія)',
+        'as' => 'ассамська',
+        'as_IN' => 'ассамська (Індія)',
         'az' => 'азербайджанська',
         'az_AZ' => 'азербайджанська (Азербайджан)',
         'az_Cyrl' => 'азербайджанська (кирилиця)',
         'az_Cyrl_AZ' => 'азербайджанська (кирилиця, Азербайджан)',
         'az_Latn' => 'азербайджанська (латиниця)',
         'az_Latn_AZ' => 'азербайджанська (латиниця, Азербайджан)',
+        'ba' => 'башкирська',
+        'ba_RU' => 'башкирська (Росія)',
         'be' => 'білоруська',
         'be_BY' => 'білоруська (Білорусь)',
         'bg' => 'болгарська',
@@ -125,6 +127,7 @@
         'en_DE' => 'англійська (Німеччина)',
         'en_DK' => 'англійська (Данія)',
         'en_DM' => 'англійська (Домініка)',
+        'en_EE' => 'англійська (Естонія)',
         'en_ER' => 'англійська (Еритрея)',
         'en_ES' => 'англійська (Іспанія)',
         'en_FI' => 'англійська (Фінляндія)',
@@ -134,6 +137,7 @@
         'en_FR' => 'англійська (Франція)',
         'en_GB' => 'англійська (Велика Британія)',
         'en_GD' => 'англійська (Гренада)',
+        'en_GE' => 'англійська (Грузія)',
         'en_GG' => 'англійська (Гернсі)',
         'en_GH' => 'англійська (Гана)',
         'en_GI' => 'англійська (Гібралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'англійська (Італія)',
         'en_JE' => 'англійська (Джерсі)',
         'en_JM' => 'англійська (Ямайка)',
+        'en_JP' => 'англійська (Японія)',
         'en_KE' => 'англійська (Кенія)',
         'en_KI' => 'англійська (Кірибаті)',
         'en_KN' => 'англійська (Сент-Кітс і Невіс)',
@@ -159,6 +164,8 @@
         'en_LC' => 'англійська (Сент-Люсія)',
         'en_LR' => 'англійська (Ліберія)',
         'en_LS' => 'англійська (Лесото)',
+        'en_LT' => 'англійська (Литва)',
+        'en_LV' => 'англійська (Латвія)',
         'en_MG' => 'англійська (Мадагаскар)',
         'en_MH' => 'англійська (Маршаллові Острови)',
         'en_MO' => 'англійська (Макао, ОАР Китаю)',
@@ -205,6 +212,7 @@
         'en_TT' => 'англійська (Тринідад і Тобаго)',
         'en_TV' => 'англійська (Тувалу)',
         'en_TZ' => 'англійська (Танзанія)',
+        'en_UA' => 'англійська (Україна)',
         'en_UG' => 'англійська (Уганда)',
         'en_UM' => 'англійська (Віддалені острови США)',
         'en_US' => 'англійська (Сполучені Штати)',
@@ -391,6 +399,8 @@
         'ki' => 'кікуйю',
         'ki_KE' => 'кікуйю (Кенія)',
         'kk' => 'казахська',
+        'kk_Arab' => 'казахська (арабиця)',
+        'kk_Arab_CN' => 'казахська (арабиця, Китай)',
         'kk_Cyrl' => 'казахська (кирилиця)',
         'kk_Cyrl_KZ' => 'казахська (кирилиця, Казахстан)',
         'kk_KZ' => 'казахська (Казахстан)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'кашмірська (деванагарі, Індія)',
         'ks_IN' => 'кашмірська (Індія)',
         'ku' => 'курдська',
+        'ku_Latn' => 'курдська (латиниця)',
+        'ku_Latn_IQ' => 'курдська (латиниця, Ірак)',
+        'ku_Latn_SY' => 'курдська (латиниця, Сирія)',
+        'ku_Latn_TR' => 'курдська (латиниця, Туреччина)',
+        'ku_SY' => 'курдська (Сирія)',
         'ku_TR' => 'курдська (Туреччина)',
         'kw' => 'корнська',
         'kw_GB' => 'корнська (Велика Британія)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ur_IN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ur_IN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ur_IN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ur_IN.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,6 +28,11 @@
         'kn' => 'کنڑ',
         'kn_IN' => 'کنڑ (بھارت)',
         'ku' => 'کرد',
+        'ku_Latn' => 'کرد (لاطینی)',
+        'ku_Latn_IQ' => 'کرد (لاطینی،عراق)',
+        'ku_Latn_SY' => 'کرد (لاطینی،شام)',
+        'ku_Latn_TR' => 'کرد (لاطینی،ترکیہ)',
+        'ku_SY' => 'کرد (شام)',
         'ku_TR' => 'کرد (ترکیہ)',
         'sv_AX' => 'سویڈش (جزائر آلینڈ)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ur.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ur.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ur.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/ur.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'آذربائیجانی (سیریلک،آذربائیجان)',
         'az_Latn' => 'آذربائیجانی (لاطینی)',
         'az_Latn_AZ' => 'آذربائیجانی (لاطینی،آذربائیجان)',
+        'ba' => 'باشکیر',
+        'ba_RU' => 'باشکیر (روس)',
         'be' => 'بیلاروسی',
         'be_BY' => 'بیلاروسی (بیلاروس)',
         'bg' => 'بلغاری',
@@ -125,6 +127,7 @@
         'en_DE' => 'انگریزی (جرمنی)',
         'en_DK' => 'انگریزی (ڈنمارک)',
         'en_DM' => 'انگریزی (ڈومنیکا)',
+        'en_EE' => 'انگریزی (اسٹونیا)',
         'en_ER' => 'انگریزی (اریٹیریا)',
         'en_ES' => 'انگریزی (ہسپانیہ)',
         'en_FI' => 'انگریزی (فن لینڈ)',
@@ -134,6 +137,7 @@
         'en_FR' => 'انگریزی (فرانس)',
         'en_GB' => 'انگریزی (سلطنت متحدہ)',
         'en_GD' => 'انگریزی (گریناڈا)',
+        'en_GE' => 'انگریزی (جارجیا)',
         'en_GG' => 'انگریزی (گوئرنسی)',
         'en_GH' => 'انگریزی (گھانا)',
         'en_GI' => 'انگریزی (جبل الطارق)',
@@ -152,6 +156,7 @@
         'en_IT' => 'انگریزی (اٹلی)',
         'en_JE' => 'انگریزی (جرسی)',
         'en_JM' => 'انگریزی (جمائیکا)',
+        'en_JP' => 'انگریزی (جاپان)',
         'en_KE' => 'انگریزی (کینیا)',
         'en_KI' => 'انگریزی (کریباتی)',
         'en_KN' => 'انگریزی (سینٹ کٹس اور نیویس)',
@@ -159,6 +164,8 @@
         'en_LC' => 'انگریزی (سینٹ لوسیا)',
         'en_LR' => 'انگریزی (لائبیریا)',
         'en_LS' => 'انگریزی (لیسوتھو)',
+        'en_LT' => 'انگریزی (لیتھونیا)',
+        'en_LV' => 'انگریزی (لٹویا)',
         'en_MG' => 'انگریزی (مڈغاسکر)',
         'en_MH' => 'انگریزی (مارشل آئلینڈز)',
         'en_MO' => 'انگریزی (مکاؤ SAR چین)',
@@ -205,6 +212,7 @@
         'en_TT' => 'انگریزی (ترینیداد اور ٹوباگو)',
         'en_TV' => 'انگریزی (ٹووالو)',
         'en_TZ' => 'انگریزی (تنزانیہ)',
+        'en_UA' => 'انگریزی (یوکرین)',
         'en_UG' => 'انگریزی (یوگنڈا)',
         'en_UM' => 'انگریزی (امریکہ سے باہر کے چھوٹے جزائز)',
         'en_US' => 'انگریزی (ریاست ہائے متحدہ امریکہ)',
@@ -391,6 +399,8 @@
         'ki' => 'کیکویو',
         'ki_KE' => 'کیکویو (کینیا)',
         'kk' => 'قزاخ',
+        'kk_Arab' => 'قزاخ (عربی)',
+        'kk_Arab_CN' => 'قزاخ (عربی،چین)',
         'kk_Cyrl' => 'قزاخ (سیریلک)',
         'kk_Cyrl_KZ' => 'قزاخ (سیریلک،قزاخستان)',
         'kk_KZ' => 'قزاخ (قزاخستان)',
@@ -410,8 +420,13 @@
         'ks_Deva' => 'کشمیری (دیوناگری)',
         'ks_Deva_IN' => 'کشمیری (دیوناگری،بھارت)',
         'ks_IN' => 'کشمیری (بھارت)',
-        'ku' => 'کردش',
-        'ku_TR' => 'کردش (ترکیہ)',
+        'ku' => 'کردی',
+        'ku_Latn' => 'کردی (لاطینی)',
+        'ku_Latn_IQ' => 'کردی (لاطینی،عراق)',
+        'ku_Latn_SY' => 'کردی (لاطینی،شام)',
+        'ku_Latn_TR' => 'کردی (لاطینی،ترکیہ)',
+        'ku_SY' => 'کردی (شام)',
+        'ku_TR' => 'کردی (ترکیہ)',
         'kw' => 'کورنش',
         'kw_GB' => 'کورنش (سلطنت متحدہ)',
         'ky' => 'کرغیزی',
@@ -439,8 +454,8 @@
         'mi_NZ' => 'ماؤری (نیوزی لینڈ)',
         'mk' => 'مقدونیائی',
         'mk_MK' => 'مقدونیائی (شمالی مقدونیہ)',
-        'ml' => 'مالایالم',
-        'ml_IN' => 'مالایالم (بھارت)',
+        'ml' => 'ملیالم',
+        'ml_IN' => 'ملیالم (بھارت)',
         'mn' => 'منگولین',
         'mn_MN' => 'منگولین (منگولیا)',
         'mr' => 'مراٹھی',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz_Arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz_Arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz_Arab.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz_Arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -5,6 +5,8 @@
         'fa' => 'دری',
         'fa_AF' => 'دری (افغانستان)',
         'fa_IR' => 'دری (Eron)',
+        'kk_Arab' => 'qozoqcha (عربی)',
+        'kk_Arab_CN' => 'qozoqcha (عربی, Xitoy)',
         'ks_Arab' => 'kashmircha (عربی)',
         'ks_Arab_IN' => 'kashmircha (عربی, Hindiston)',
         'pa_Arab' => 'panjobcha (عربی)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz_Cyrl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz_Cyrl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz_Cyrl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz_Cyrl.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'озарбайжонча (Кирил, Озарбайжон)',
         'az_Latn' => 'озарбайжонча (Лотин)',
         'az_Latn_AZ' => 'озарбайжонча (Лотин, Озарбайжон)',
+        'ba' => 'бошқирдча',
+        'ba_RU' => 'бошқирдча (Россия)',
         'be' => 'беларусча',
         'be_BY' => 'беларусча (Беларус)',
         'bg' => 'болгарча',
@@ -125,6 +127,7 @@
         'en_DE' => 'инглизча (Германия)',
         'en_DK' => 'инглизча (Дания)',
         'en_DM' => 'инглизча (Доминика)',
+        'en_EE' => 'инглизча (Эстония)',
         'en_ER' => 'инглизча (Эритрея)',
         'en_ES' => 'инглизча (Испания)',
         'en_FI' => 'инглизча (Финляндия)',
@@ -134,6 +137,7 @@
         'en_FR' => 'инглизча (Франция)',
         'en_GB' => 'инглизча (Буюк Британия)',
         'en_GD' => 'инглизча (Гренада)',
+        'en_GE' => 'инглизча (Грузия)',
         'en_GG' => 'инглизча (Гернси)',
         'en_GH' => 'инглизча (Гана)',
         'en_GI' => 'инглизча (Гибралтар)',
@@ -152,6 +156,7 @@
         'en_IT' => 'инглизча (Италия)',
         'en_JE' => 'инглизча (Жерси)',
         'en_JM' => 'инглизча (Ямайка)',
+        'en_JP' => 'инглизча (Япония)',
         'en_KE' => 'инглизча (Кения)',
         'en_KI' => 'инглизча (Кирибати)',
         'en_KN' => 'инглизча (Сент-Китс ва Невис)',
@@ -159,6 +164,8 @@
         'en_LC' => 'инглизча (Сент-Люсия)',
         'en_LR' => 'инглизча (Либерия)',
         'en_LS' => 'инглизча (Лесото)',
+        'en_LT' => 'инглизча (Литва)',
+        'en_LV' => 'инглизча (Латвия)',
         'en_MG' => 'инглизча (Мадагаскар)',
         'en_MH' => 'инглизча (Маршал ороллари)',
         'en_MO' => 'инглизча (Макао [Хитой ММҲ])',
@@ -205,6 +212,7 @@
         'en_TT' => 'инглизча (Тринидад ва Тобаго)',
         'en_TV' => 'инглизча (Тувалу)',
         'en_TZ' => 'инглизча (Танзания)',
+        'en_UA' => 'инглизча (Украина)',
         'en_UG' => 'инглизча (Уганда)',
         'en_UM' => 'инглизча (АҚШ ёндош ороллари)',
         'en_US' => 'инглизча (Америка Қўшма Штатлари)',
@@ -389,6 +397,8 @@
         'ki' => 'кикую',
         'ki_KE' => 'кикую (Кения)',
         'kk' => 'қозоқча',
+        'kk_Arab' => 'қозоқча (Араб)',
+        'kk_Arab_CN' => 'қозоқча (Араб, Хитой)',
         'kk_Cyrl' => 'қозоқча (Кирил)',
         'kk_Cyrl_KZ' => 'қозоқча (Кирил, Қозоғистон)',
         'kk_KZ' => 'қозоқча (Қозоғистон)',
@@ -409,6 +419,11 @@
         'ks_Deva_IN' => 'кашмирча (Девангари, Ҳиндистон)',
         'ks_IN' => 'кашмирча (Ҳиндистон)',
         'ku' => 'курдча',
+        'ku_Latn' => 'курдча (Лотин)',
+        'ku_Latn_IQ' => 'курдча (Лотин, Ироқ)',
+        'ku_Latn_SY' => 'курдча (Лотин, Сурия)',
+        'ku_Latn_TR' => 'курдча (Лотин, Туркия)',
+        'ku_SY' => 'курдча (Сурия)',
         'ku_TR' => 'курдча (Туркия)',
         'kw' => 'корнча',
         'kw_GB' => 'корнча (Буюк Британия)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/uz.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'ozarbayjon (kirill, Ozarbayjon)',
         'az_Latn' => 'ozarbayjon (lotin)',
         'az_Latn_AZ' => 'ozarbayjon (lotin, Ozarbayjon)',
+        'ba' => 'boshqird',
+        'ba_RU' => 'boshqird (Rossiya)',
         'be' => 'belarus',
         'be_BY' => 'belarus (Belarus)',
         'bg' => 'bolgar',
@@ -125,6 +127,7 @@
         'en_DE' => 'inglizcha (Germaniya)',
         'en_DK' => 'inglizcha (Daniya)',
         'en_DM' => 'inglizcha (Dominika)',
+        'en_EE' => 'inglizcha (Estoniya)',
         'en_ER' => 'inglizcha (Eritreya)',
         'en_ES' => 'inglizcha (Ispaniya)',
         'en_FI' => 'inglizcha (Finlandiya)',
@@ -134,6 +137,7 @@
         'en_FR' => 'inglizcha (Fransiya)',
         'en_GB' => 'inglizcha (Buyuk Britaniya)',
         'en_GD' => 'inglizcha (Grenada)',
+        'en_GE' => 'inglizcha (Gruziya)',
         'en_GG' => 'inglizcha (Gernsi)',
         'en_GH' => 'inglizcha (Gana)',
         'en_GI' => 'inglizcha (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'inglizcha (Italiya)',
         'en_JE' => 'inglizcha (Jersi)',
         'en_JM' => 'inglizcha (Yamayka)',
+        'en_JP' => 'inglizcha (Yaponiya)',
         'en_KE' => 'inglizcha (Keniya)',
         'en_KI' => 'inglizcha (Kiribati)',
         'en_KN' => 'inglizcha (Sent-Kits va Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'inglizcha (Sent-Lyusiya)',
         'en_LR' => 'inglizcha (Liberiya)',
         'en_LS' => 'inglizcha (Lesoto)',
+        'en_LT' => 'inglizcha (Litva)',
+        'en_LV' => 'inglizcha (Latviya)',
         'en_MG' => 'inglizcha (Madagaskar)',
         'en_MH' => 'inglizcha (Marshall orollari)',
         'en_MO' => 'inglizcha (Makao [Xitoy MMH])',
@@ -205,6 +212,7 @@
         'en_TT' => 'inglizcha (Trinidad va Tobago)',
         'en_TV' => 'inglizcha (Tuvalu)',
         'en_TZ' => 'inglizcha (Tanzaniya)',
+        'en_UA' => 'inglizcha (Ukraina)',
         'en_UG' => 'inglizcha (Uganda)',
         'en_UM' => 'inglizcha (AQSH yondosh orollari)',
         'en_US' => 'inglizcha (Amerika Qo‘shma Shtatlari)',
@@ -391,6 +399,8 @@
         'ki' => 'kikuyu',
         'ki_KE' => 'kikuyu (Keniya)',
         'kk' => 'qozoqcha',
+        'kk_Arab' => 'qozoqcha (arab)',
+        'kk_Arab_CN' => 'qozoqcha (arab, Xitoy)',
         'kk_Cyrl' => 'qozoqcha (kirill)',
         'kk_Cyrl_KZ' => 'qozoqcha (kirill, Qozogʻiston)',
         'kk_KZ' => 'qozoqcha (Qozogʻiston)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'kashmircha (devanagari, Hindiston)',
         'ks_IN' => 'kashmircha (Hindiston)',
         'ku' => 'kurdcha',
+        'ku_Latn' => 'kurdcha (lotin)',
+        'ku_Latn_IQ' => 'kurdcha (lotin, Iroq)',
+        'ku_Latn_SY' => 'kurdcha (lotin, Suriya)',
+        'ku_Latn_TR' => 'kurdcha (lotin, Turkiya)',
+        'ku_SY' => 'kurdcha (Suriya)',
         'ku_TR' => 'kurdcha (Turkiya)',
         'kw' => 'korn',
         'kw_GB' => 'korn (Buyuk Britaniya)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/vi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/vi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/vi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/vi.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Tiếng Azerbaijan (Chữ Kirin, Azerbaijan)',
         'az_Latn' => 'Tiếng Azerbaijan (Chữ La tinh)',
         'az_Latn_AZ' => 'Tiếng Azerbaijan (Chữ La tinh, Azerbaijan)',
+        'ba' => 'Tiếng Bashkir',
+        'ba_RU' => 'Tiếng Bashkir (Nga)',
         'be' => 'Tiếng Belarus',
         'be_BY' => 'Tiếng Belarus (Belarus)',
         'bg' => 'Tiếng Bulgaria',
@@ -106,7 +108,7 @@
         'en_AI' => 'Tiếng Anh (Anguilla)',
         'en_AS' => 'Tiếng Anh (Samoa thuộc Mỹ)',
         'en_AT' => 'Tiếng Anh (Áo)',
-        'en_AU' => 'Tiếng Anh (Australia)',
+        'en_AU' => 'Tiếng Anh (Úc)',
         'en_BB' => 'Tiếng Anh (Barbados)',
         'en_BE' => 'Tiếng Anh (Bỉ)',
         'en_BI' => 'Tiếng Anh (Burundi)',
@@ -125,6 +127,7 @@
         'en_DE' => 'Tiếng Anh (Đức)',
         'en_DK' => 'Tiếng Anh (Đan Mạch)',
         'en_DM' => 'Tiếng Anh (Dominica)',
+        'en_EE' => 'Tiếng Anh (Estonia)',
         'en_ER' => 'Tiếng Anh (Eritrea)',
         'en_ES' => 'Tiếng Anh (Tây Ban Nha)',
         'en_FI' => 'Tiếng Anh (Phần Lan)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Tiếng Anh (Pháp)',
         'en_GB' => 'Tiếng Anh (Vương quốc Anh)',
         'en_GD' => 'Tiếng Anh (Grenada)',
+        'en_GE' => 'Tiếng Anh (Georgia)',
         'en_GG' => 'Tiếng Anh (Guernsey)',
         'en_GH' => 'Tiếng Anh (Ghana)',
         'en_GI' => 'Tiếng Anh (Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Tiếng Anh (Italy)',
         'en_JE' => 'Tiếng Anh (Jersey)',
         'en_JM' => 'Tiếng Anh (Jamaica)',
+        'en_JP' => 'Tiếng Anh (Nhật Bản)',
         'en_KE' => 'Tiếng Anh (Kenya)',
         'en_KI' => 'Tiếng Anh (Kiribati)',
         'en_KN' => 'Tiếng Anh (St. Kitts và Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Tiếng Anh (St. Lucia)',
         'en_LR' => 'Tiếng Anh (Liberia)',
         'en_LS' => 'Tiếng Anh (Lesotho)',
+        'en_LT' => 'Tiếng Anh (Litva)',
+        'en_LV' => 'Tiếng Anh (Latvia)',
         'en_MG' => 'Tiếng Anh (Madagascar)',
         'en_MH' => 'Tiếng Anh (Quần đảo Marshall)',
         'en_MO' => 'Tiếng Anh (Đặc khu Hành chính Macao, Trung Quốc)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Tiếng Anh (Trinidad và Tobago)',
         'en_TV' => 'Tiếng Anh (Tuvalu)',
         'en_TZ' => 'Tiếng Anh (Tanzania)',
+        'en_UA' => 'Tiếng Anh (Ukraina)',
         'en_UG' => 'Tiếng Anh (Uganda)',
         'en_UM' => 'Tiếng Anh (Các tiểu đảo xa của Hoa Kỳ)',
         'en_US' => 'Tiếng Anh (Hoa Kỳ)',
@@ -391,6 +399,8 @@
         'ki' => 'Tiếng Kikuyu',
         'ki_KE' => 'Tiếng Kikuyu (Kenya)',
         'kk' => 'Tiếng Kazakh',
+        'kk_Arab' => 'Tiếng Kazakh (Chữ Ả Rập)',
+        'kk_Arab_CN' => 'Tiếng Kazakh (Chữ Ả Rập, Trung Quốc)',
         'kk_Cyrl' => 'Tiếng Kazakh (Chữ Kirin)',
         'kk_Cyrl_KZ' => 'Tiếng Kazakh (Chữ Kirin, Kazakhstan)',
         'kk_KZ' => 'Tiếng Kazakh (Kazakhstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Tiếng Kashmir (Chữ Devanagari, Ấn Độ)',
         'ks_IN' => 'Tiếng Kashmir (Ấn Độ)',
         'ku' => 'Tiếng Kurd',
+        'ku_Latn' => 'Tiếng Kurd (Chữ La tinh)',
+        'ku_Latn_IQ' => 'Tiếng Kurd (Chữ La tinh, Iraq)',
+        'ku_Latn_SY' => 'Tiếng Kurd (Chữ La tinh, Syria)',
+        'ku_Latn_TR' => 'Tiếng Kurd (Chữ La tinh, Thổ Nhĩ Kỳ)',
+        'ku_SY' => 'Tiếng Kurd (Syria)',
         'ku_TR' => 'Tiếng Kurd (Thổ Nhĩ Kỳ)',
         'kw' => 'Tiếng Cornwall',
         'kw_GB' => 'Tiếng Cornwall (Vương quốc Anh)',
@@ -577,9 +592,9 @@
         'sr_Latn_RS' => 'Tiếng Serbia (Chữ La tinh, Serbia)',
         'sr_ME' => 'Tiếng Serbia (Montenegro)',
         'sr_RS' => 'Tiếng Serbia (Serbia)',
-        'st' => 'Tiếng Sotho Miền Nam',
-        'st_LS' => 'Tiếng Sotho Miền Nam (Lesotho)',
-        'st_ZA' => 'Tiếng Sotho Miền Nam (Nam Phi)',
+        'st' => 'Tiếng Nam Sotho',
+        'st_LS' => 'Tiếng Nam Sotho (Lesotho)',
+        'st_ZA' => 'Tiếng Nam Sotho (Nam Phi)',
         'su' => 'Tiếng Sunda',
         'su_ID' => 'Tiếng Sunda (Indonesia)',
         'su_Latn' => 'Tiếng Sunda (Chữ La tinh)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/wo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/wo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/wo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/wo.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,6 +44,8 @@
         'az_Cyrl_AZ' => 'Aserbayjane (Sirilik, Aserbayjaŋ)',
         'az_Latn' => 'Aserbayjane (Latin)',
         'az_Latn_AZ' => 'Aserbayjane (Latin, Aserbayjaŋ)',
+        'ba' => 'Baskir',
+        'ba_RU' => 'Baskir (Risi)',
         'be' => 'Belaris',
         'be_BY' => 'Belaris (Belaris)',
         'bg' => 'Bilgaar',
@@ -114,6 +116,7 @@
         'en_DE' => 'Àngale (Almaañ)',
         'en_DK' => 'Àngale (Danmàrk)',
         'en_DM' => 'Àngale (Dominik)',
+        'en_EE' => 'Àngale (Estoni)',
         'en_ER' => 'Àngale (Eritere)',
         'en_ES' => 'Àngale (Españ)',
         'en_FI' => 'Àngale (Finlànd)',
@@ -123,6 +126,7 @@
         'en_FR' => 'Àngale (Faraans)',
         'en_GB' => 'Àngale (Ruwaayom Ini)',
         'en_GD' => 'Àngale (Garanad)',
+        'en_GE' => 'Àngale (Seworsi)',
         'en_GG' => 'Àngale (Gernase)',
         'en_GH' => 'Àngale (Gana)',
         'en_GI' => 'Àngale (Sibraltaar)',
@@ -141,6 +145,7 @@
         'en_IT' => 'Àngale (Itali)',
         'en_JE' => 'Àngale (Serse)',
         'en_JM' => 'Àngale (Samayig)',
+        'en_JP' => 'Àngale (Sàppoŋ)',
         'en_KE' => 'Àngale (Keeña)',
         'en_KI' => 'Àngale (Kiribati)',
         'en_KN' => 'Àngale (Saŋ Kits ak Newis)',
@@ -148,6 +153,8 @@
         'en_LC' => 'Àngale (Saŋ Lusi)',
         'en_LR' => 'Àngale (Liberiya)',
         'en_LS' => 'Àngale (Lesoto)',
+        'en_LT' => 'Àngale (Litiyani)',
+        'en_LV' => 'Àngale (Letoni)',
         'en_MG' => 'Àngale (Madagaskaar)',
         'en_MH' => 'Àngale (Duni Marsaal)',
         'en_MO' => 'Àngale (Makaawo)',
@@ -194,6 +201,7 @@
         'en_TT' => 'Àngale (Tirinite ak Tobago)',
         'en_TV' => 'Àngale (Tuwalo)',
         'en_TZ' => 'Àngale (Taŋsani)',
+        'en_UA' => 'Àngale (Ikeren)',
         'en_UG' => 'Àngale (Ugànda)',
         'en_UM' => 'Àngale (Duni Amerig Utar meer)',
         'en_US' => 'Àngale (Etaa Sini)',
@@ -353,6 +361,8 @@
         'ka' => 'Sorsiye',
         'ka_GE' => 'Sorsiye (Seworsi)',
         'kk' => 'Kasax',
+        'kk_Arab' => 'Kasax (Araab)',
+        'kk_Arab_CN' => 'Kasax (Araab, Siin)',
         'kk_Cyrl' => 'Kasax (Sirilik)',
         'kk_Cyrl_KZ' => 'Kasax (Sirilik, Kasaxstaŋ)',
         'kk_KZ' => 'Kasax (Kasaxstaŋ)',
@@ -369,6 +379,11 @@
         'ks_Arab_IN' => 'Kashmiri (Araab, End)',
         'ks_IN' => 'Kashmiri (End)',
         'ku' => 'Kurdi',
+        'ku_Latn' => 'Kurdi (Latin)',
+        'ku_Latn_IQ' => 'Kurdi (Latin, Irag)',
+        'ku_Latn_SY' => 'Kurdi (Latin, Siri)',
+        'ku_Latn_TR' => 'Kurdi (Latin, Tirki)',
+        'ku_SY' => 'Kurdi (Siri)',
         'ku_TR' => 'Kurdi (Tirki)',
         'ky' => 'Kirgiis',
         'ky_KG' => 'Kirgiis (Kirgistaŋ)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/xh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/xh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/xh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/xh.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,9 +36,41 @@
         'ar_TD' => 'Isi-Arabhu (EChad)',
         'ar_TN' => 'Isi-Arabhu (ETunisia)',
         'ar_YE' => 'Isi-Arabhu (EYemen)',
+        'as' => 'IsiAssamese',
+        'as_IN' => 'IsiAssamese (E-Indiya)',
+        'az' => 'Isi-Azerbaijani',
+        'az_AZ' => 'Isi-Azerbaijani (E-Azerbaijan)',
+        'az_Cyrl' => 'Isi-Azerbaijani (IsiCyrillic)',
+        'az_Cyrl_AZ' => 'Isi-Azerbaijani (IsiCyrillic, E-Azerbaijan)',
+        'az_Latn' => 'Isi-Azerbaijani (IsiLatin)',
+        'az_Latn_AZ' => 'Isi-Azerbaijani (IsiLatin, E-Azerbaijan)',
+        'be' => 'Isi-Belarusian',
+        'be_BY' => 'Isi-Belarusian (EBelarus)',
+        'bg' => 'Isi-Bulgaria',
+        'bg_BG' => 'Isi-Bulgaria (EBulgaria)',
         'bn' => 'IsiBangla',
         'bn_BD' => 'IsiBangla (EBangladesh)',
         'bn_IN' => 'IsiBangla (E-Indiya)',
+        'br' => 'IsiBreton',
+        'br_FR' => 'IsiBreton (EFrance)',
+        'bs' => 'Isi-Bosnia',
+        'bs_BA' => 'Isi-Bosnia (EBosnia & Herzegovina)',
+        'bs_Cyrl' => 'Isi-Bosnia (IsiCyrillic)',
+        'bs_Cyrl_BA' => 'Isi-Bosnia (IsiCyrillic, EBosnia & Herzegovina)',
+        'bs_Latn' => 'Isi-Bosnia (IsiLatin)',
+        'bs_Latn_BA' => 'Isi-Bosnia (IsiLatin, EBosnia & Herzegovina)',
+        'ca' => 'Isi-Calatan',
+        'ca_AD' => 'Isi-Calatan (E-Andorra)',
+        'ca_ES' => 'Isi-Calatan (ESpain)',
+        'ca_FR' => 'Isi-Calatan (EFrance)',
+        'ca_IT' => 'Isi-Calatan (E-Italy)',
+        'cs' => 'Isi-Czech',
+        'cs_CZ' => 'Isi-Czech (ECzechia)',
+        'cy' => 'Isi-Welsh',
+        'cy_GB' => 'Isi-Welsh (E-United Kingdom)',
+        'da' => 'Isi-Danish',
+        'da_DK' => 'Isi-Danish (EDenmark)',
+        'da_GL' => 'Isi-Danish (EGreenland)',
         'de' => 'IsiJamani',
         'de_AT' => 'IsiJamani (E-Austria)',
         'de_BE' => 'IsiJamani (EBelgium)',
@@ -47,6 +79,9 @@
         'de_IT' => 'IsiJamani (E-Italy)',
         'de_LI' => 'IsiJamani (ELiechtenstein)',
         'de_LU' => 'IsiJamani (ELuxembourg)',
+        'el' => 'Isi-Greek',
+        'el_CY' => 'Isi-Greek (ECyprus)',
+        'el_GR' => 'Isi-Greek (EGreece)',
         'en' => 'IsiNgesi',
         'en_001' => 'IsiNgesi (ihlabathi)',
         'en_150' => 'IsiNgesi (EYurophu)',
@@ -74,6 +109,7 @@
         'en_DE' => 'IsiNgesi (EJamani)',
         'en_DK' => 'IsiNgesi (EDenmark)',
         'en_DM' => 'IsiNgesi (EDominica)',
+        'en_EE' => 'IsiNgesi (E-Estonia)',
         'en_ER' => 'IsiNgesi (E-Eritrea)',
         'en_ES' => 'IsiNgesi (ESpain)',
         'en_FI' => 'IsiNgesi (EFinland)',
@@ -83,6 +119,7 @@
         'en_FR' => 'IsiNgesi (EFrance)',
         'en_GB' => 'IsiNgesi (E-United Kingdom)',
         'en_GD' => 'IsiNgesi (EGrenada)',
+        'en_GE' => 'IsiNgesi (EGeorgia)',
         'en_GG' => 'IsiNgesi (EGuernsey)',
         'en_GH' => 'IsiNgesi (EGhana)',
         'en_GI' => 'IsiNgesi (EGibraltar)',
@@ -101,6 +138,7 @@
         'en_IT' => 'IsiNgesi (E-Italy)',
         'en_JE' => 'IsiNgesi (EJersey)',
         'en_JM' => 'IsiNgesi (EJamaica)',
+        'en_JP' => 'IsiNgesi (EJapan)',
         'en_KE' => 'IsiNgesi (EKenya)',
         'en_KI' => 'IsiNgesi (EKiribati)',
         'en_KN' => 'IsiNgesi (ESt. Kitts & Nevis)',
@@ -108,6 +146,8 @@
         'en_LC' => 'IsiNgesi (ESt. Lucia)',
         'en_LR' => 'IsiNgesi (ELiberia)',
         'en_LS' => 'IsiNgesi (ELesotho)',
+        'en_LT' => 'IsiNgesi (ELithuania)',
+        'en_LV' => 'IsiNgesi (ELatvia)',
         'en_MG' => 'IsiNgesi (EMadagascar)',
         'en_MH' => 'IsiNgesi (EMarshall Islands)',
         'en_MO' => 'IsiNgesi (EMacao SAR China)',
@@ -154,6 +194,7 @@
         'en_TT' => 'IsiNgesi (ETrinidad & Tobago)',
         'en_TV' => 'IsiNgesi (ETuvalu)',
         'en_TZ' => 'IsiNgesi (ETanzania)',
+        'en_UA' => 'IsiNgesi (E-Ukraine)',
         'en_UG' => 'IsiNgesi (E-Uganda)',
         'en_UM' => 'IsiNgesi (I-U.S. Outlying Islands)',
         'en_US' => 'IsiNgesi (EMelika)',
@@ -165,6 +206,8 @@
         'en_ZA' => 'IsiNgesi (EMzantsi Afrika)',
         'en_ZM' => 'IsiNgesi (EZambia)',
         'en_ZW' => 'IsiNgesi (EZimbabwe)',
+        'eo' => 'Isi-Esperanto',
+        'eo_001' => 'Isi-Esperanto (ihlabathi)',
         'es' => 'Isi-Spanish',
         'es_419' => 'Isi-Spanish (ILatin America)',
         'es_AR' => 'Isi-Spanish (E-Argentina)',
@@ -192,6 +235,18 @@
         'es_US' => 'Isi-Spanish (EMelika)',
         'es_UY' => 'Isi-Spanish (E-Uruguay)',
         'es_VE' => 'Isi-Spanish (EVenezuela)',
+        'et' => 'Isi-Estonian',
+        'et_EE' => 'Isi-Estonian (E-Estonia)',
+        'eu' => 'Isi-Basque',
+        'eu_ES' => 'Isi-Basque (ESpain)',
+        'fa' => 'Isi-Persia',
+        'fa_AF' => 'Isi-Persia (E-Afghanistan)',
+        'fa_IR' => 'Isi-Persia (E-Iran)',
+        'fi' => 'Isi-Finnish',
+        'fi_FI' => 'Isi-Finnish (EFinland)',
+        'fo' => 'Isi-Faroese',
+        'fo_DK' => 'Isi-Faroese (EDenmark)',
+        'fo_FO' => 'Isi-Faroese (EFaroe Islands)',
         'fr' => 'IsiFrentshi',
         'fr_BE' => 'IsiFrentshi (EBelgium)',
         'fr_BF' => 'IsiFrentshi (EBurkina Faso)',
@@ -239,12 +294,38 @@
         'fr_VU' => 'IsiFrentshi (EVanuatu)',
         'fr_WF' => 'IsiFrentshi (EWallis & Futuna)',
         'fr_YT' => 'IsiFrentshi (EMayotte)',
+        'fy' => 'Isi-Frisian',
+        'fy_NL' => 'Isi-Frisian (ENetherlands)',
+        'ga' => 'Isi-Irish',
+        'ga_GB' => 'Isi-Irish (E-United Kingdom)',
+        'ga_IE' => 'Isi-Irish (E-Ireland)',
+        'gd' => 'Scots Gaelic',
+        'gd_GB' => 'Scots Gaelic (E-United Kingdom)',
+        'gl' => 'Isi-Galician',
+        'gl_ES' => 'Isi-Galician (ESpain)',
+        'gu' => 'Isi-Gujarati',
+        'gu_IN' => 'Isi-Gujarati (E-Indiya)',
+        'he' => 'Isi-Hebrew',
+        'he_IL' => 'Isi-Hebrew (E-Israel)',
         'hi' => 'IsiHindi',
         'hi_IN' => 'IsiHindi (E-Indiya)',
         'hi_Latn' => 'IsiHindi (IsiLatin)',
         'hi_Latn_IN' => 'IsiHindi (IsiLatin, E-Indiya)',
+        'hr' => 'Isi-Croatia',
+        'hr_BA' => 'Isi-Croatia (EBosnia & Herzegovina)',
+        'hr_HR' => 'Isi-Croatia (ECroatia)',
+        'hu' => 'Isi-Hungarian',
+        'hu_HU' => 'Isi-Hungarian (EHungary)',
+        'hy' => 'IsiArmenia',
+        'hy_AM' => 'IsiArmenia (E-Armenia)',
+        'ia' => 'Isi-Interlingua',
+        'ia_001' => 'Isi-Interlingua (ihlabathi)',
         'id' => 'Isi-Indonesia',
         'id_ID' => 'Isi-Indonesia (E-Indonesia)',
+        'ie' => 'Isi-Interlingue',
+        'ie_EE' => 'Isi-Interlingue (E-Estonia)',
+        'is' => 'Isi-Icelandic',
+        'is_IS' => 'Isi-Icelandic (E-Iceland)',
         'it' => 'IsiTaliyane',
         'it_CH' => 'IsiTaliyane (ESwitzerland)',
         'it_IT' => 'IsiTaliyane (E-Italy)',
@@ -252,10 +333,51 @@
         'it_VA' => 'IsiTaliyane (EVatican City)',
         'ja' => 'IsiJapan',
         'ja_JP' => 'IsiJapan (EJapan)',
+        'jv' => 'Isi-Javanese',
+        'jv_ID' => 'Isi-Javanese (E-Indonesia)',
+        'ka' => 'Isi-Georgia',
+        'ka_GE' => 'Isi-Georgia (EGeorgia)',
+        'km' => 'IsiCambodia',
+        'km_KH' => 'IsiCambodia (ECambodia)',
+        'kn' => 'Isi-Kannada',
+        'kn_IN' => 'Isi-Kannada (E-Indiya)',
         'ko' => 'Isi-Korean',
         'ko_CN' => 'Isi-Korean (ETshayina)',
         'ko_KP' => 'Isi-Korean (EMntla Korea)',
         'ko_KR' => 'Isi-Korean (EMzantsi Korea)',
+        'ku' => 'IsiKurdish',
+        'ku_Latn' => 'IsiKurdish (IsiLatin)',
+        'ku_Latn_IQ' => 'IsiKurdish (IsiLatin, E-Iraq)',
+        'ku_Latn_SY' => 'IsiKurdish (IsiLatin, ESiriya)',
+        'ku_Latn_TR' => 'IsiKurdish (IsiLatin, ETurkey)',
+        'ku_SY' => 'IsiKurdish (ESiriya)',
+        'ku_TR' => 'IsiKurdish (ETurkey)',
+        'ky' => 'IsiKyrgz',
+        'ky_KG' => 'IsiKyrgz (EKyrgyzstan)',
+        'lo' => 'IsiLoathian',
+        'lo_LA' => 'IsiLoathian (ELaos)',
+        'lt' => 'Isi-Lithuanian',
+        'lt_LT' => 'Isi-Lithuanian (ELithuania)',
+        'lv' => 'Isi-Latvian',
+        'lv_LV' => 'Isi-Latvian (ELatvia)',
+        'mk' => 'Isi-Macedonian',
+        'mk_MK' => 'Isi-Macedonian (EMntla Macedonia)',
+        'ml' => 'Isi-Malayalam',
+        'ml_IN' => 'Isi-Malayalam (E-Indiya)',
+        'mn' => 'IsiMongolian',
+        'mn_MN' => 'IsiMongolian (EMongolia)',
+        'mr' => 'Isi-Marathi',
+        'mr_IN' => 'Isi-Marathi (E-Indiya)',
+        'ms' => 'Isi-Malay',
+        'ms_BN' => 'Isi-Malay (eBrunei)',
+        'ms_ID' => 'Isi-Malay (E-Indonesia)',
+        'ms_MY' => 'Isi-Malay (EMalaysia)',
+        'ms_SG' => 'Isi-Malay (ESingapore)',
+        'mt' => 'Isi-Maltese',
+        'mt_MT' => 'Isi-Maltese (EMalta)',
+        'ne' => 'Isi-Nepali',
+        'ne_IN' => 'Isi-Nepali (E-Indiya)',
+        'ne_NP' => 'Isi-Nepali (ENepal)',
         'nl' => 'IsiDatshi',
         'nl_AW' => 'IsiDatshi (E-Aruba)',
         'nl_BE' => 'IsiDatshi (EBelgium)',
@@ -264,8 +386,25 @@
         'nl_NL' => 'IsiDatshi (ENetherlands)',
         'nl_SR' => 'IsiDatshi (ESuriname)',
         'nl_SX' => 'IsiDatshi (ESint Maarten)',
+        'nn' => 'Isi-Norwegia [Nynorsk]',
+        'nn_NO' => 'Isi-Norwegia [Nynorsk] (ENorway)',
+        'no' => 'Isi-Norwegian',
+        'no_NO' => 'Isi-Norwegian (ENorway)',
+        'oc' => 'Iso-Occitan',
+        'oc_ES' => 'Iso-Occitan (ESpain)',
+        'oc_FR' => 'Iso-Occitan (EFrance)',
+        'or' => 'Oriya',
+        'or_IN' => 'Oriya (E-Indiya)',
+        'pa' => 'Isi-Punjabi',
+        'pa_Arab' => 'Isi-Punjabi (Isi-Arabhu)',
+        'pa_Arab_PK' => 'Isi-Punjabi (Isi-Arabhu, EPakistan)',
+        'pa_IN' => 'Isi-Punjabi (E-Indiya)',
+        'pa_PK' => 'Isi-Punjabi (EPakistan)',
         'pl' => 'Isi-Polish',
         'pl_PL' => 'Isi-Polish (EPoland)',
+        'ps' => 'IsiPashto',
+        'ps_AF' => 'IsiPashto (E-Afghanistan)',
+        'ps_PK' => 'IsiPashto (EPakistan)',
         'pt' => 'IsiPhuthukezi',
         'pt_AO' => 'IsiPhuthukezi (E-Angola)',
         'pt_BR' => 'IsiPhuthukezi (EBrazil)',
@@ -279,6 +418,9 @@
         'pt_PT' => 'IsiPhuthukezi (EPortugal)',
         'pt_ST' => 'IsiPhuthukezi (ESão Tomé & Príncipe)',
         'pt_TL' => 'IsiPhuthukezi (ETimor-Leste)',
+        'ro' => 'Isi-Romanian',
+        'ro_MD' => 'Isi-Romanian (EMoldova)',
+        'ro_RO' => 'Isi-Romanian (ERomania)',
         'ru' => 'Isi-Russian',
         'ru_BY' => 'Isi-Russian (EBelarus)',
         'ru_KG' => 'Isi-Russian (EKyrgyzstan)',
@@ -286,14 +428,90 @@
         'ru_MD' => 'Isi-Russian (EMoldova)',
         'ru_RU' => 'Isi-Russian (ERashiya)',
         'ru_UA' => 'Isi-Russian (E-Ukraine)',
+        'sa' => 'IsiSanskrit',
+        'sa_IN' => 'IsiSanskrit (E-Indiya)',
+        'sd' => 'IsiSindhi',
+        'sd_Arab' => 'IsiSindhi (Isi-Arabhu)',
+        'sd_Arab_PK' => 'IsiSindhi (Isi-Arabhu, EPakistan)',
+        'sd_IN' => 'IsiSindhi (E-Indiya)',
+        'sd_PK' => 'IsiSindhi (EPakistan)',
+        'si' => 'Isi-Sinhalese',
+        'si_LK' => 'Isi-Sinhalese (ESri Lanka)',
+        'sk' => 'Isi-Slovak',
+        'sk_SK' => 'Isi-Slovak (ESlovakia)',
+        'sl' => 'Isi-Slovenian',
+        'sl_SI' => 'Isi-Slovenian (ESlovenia)',
+        'so' => 'IsiSomaliya',
+        'so_DJ' => 'IsiSomaliya (EDjibouti)',
+        'so_ET' => 'IsiSomaliya (E-Ethiopia)',
+        'so_KE' => 'IsiSomaliya (EKenya)',
+        'so_SO' => 'IsiSomaliya (ESomalia)',
         'sq' => 'IsiAlbania',
         'sq_AL' => 'IsiAlbania (E-Albania)',
         'sq_MK' => 'IsiAlbania (EMntla Macedonia)',
+        'sr' => 'Isi-Serbia',
+        'sr_BA' => 'Isi-Serbia (EBosnia & Herzegovina)',
+        'sr_Cyrl' => 'Isi-Serbia (IsiCyrillic)',
+        'sr_Cyrl_BA' => 'Isi-Serbia (IsiCyrillic, EBosnia & Herzegovina)',
+        'sr_Cyrl_ME' => 'Isi-Serbia (IsiCyrillic, EMontenegro)',
+        'sr_Cyrl_RS' => 'Isi-Serbia (IsiCyrillic, ESerbia)',
+        'sr_Latn' => 'Isi-Serbia (IsiLatin)',
+        'sr_Latn_BA' => 'Isi-Serbia (IsiLatin, EBosnia & Herzegovina)',
+        'sr_Latn_ME' => 'Isi-Serbia (IsiLatin, EMontenegro)',
+        'sr_Latn_RS' => 'Isi-Serbia (IsiLatin, ESerbia)',
+        'sr_ME' => 'Isi-Serbia (EMontenegro)',
+        'sr_RS' => 'Isi-Serbia (ESerbia)',
+        'st' => 'Sesotho',
+        'st_LS' => 'Sesotho (ELesotho)',
+        'st_ZA' => 'Sesotho (EMzantsi Afrika)',
+        'su' => 'Isi-Sudanese',
+        'su_ID' => 'Isi-Sudanese (E-Indonesia)',
+        'su_Latn' => 'Isi-Sudanese (IsiLatin)',
+        'su_Latn_ID' => 'Isi-Sudanese (IsiLatin, E-Indonesia)',
+        'sv' => 'Isi-Swedish',
+        'sv_AX' => 'Isi-Swedish (E-Åland Islands)',
+        'sv_FI' => 'Isi-Swedish (EFinland)',
+        'sv_SE' => 'Isi-Swedish (ESweden)',
+        'sw' => 'Isi-Swahili',
+        'sw_CD' => 'Isi-Swahili (ECongo -Kinshasa)',
+        'sw_KE' => 'Isi-Swahili (EKenya)',
+        'sw_TZ' => 'Isi-Swahili (ETanzania)',
+        'sw_UG' => 'Isi-Swahili (E-Uganda)',
+        'ta' => 'Isi-Tamil',
+        'ta_IN' => 'Isi-Tamil (E-Indiya)',
+        'ta_LK' => 'Isi-Tamil (ESri Lanka)',
+        'ta_MY' => 'Isi-Tamil (EMalaysia)',
+        'ta_SG' => 'Isi-Tamil (ESingapore)',
+        'te' => 'Isi-Telegu',
+        'te_IN' => 'Isi-Telegu (E-Indiya)',
         'th' => 'Isi-Thai',
         'th_TH' => 'Isi-Thai (EThailand)',
+        'ti' => 'Isi-Tigrinya',
+        'ti_ER' => 'Isi-Tigrinya (E-Eritrea)',
+        'ti_ET' => 'Isi-Tigrinya (E-Ethiopia)',
+        'tk' => 'IsiTurkmen',
+        'tk_TM' => 'IsiTurkmen (ETurkmenistan)',
         'tr' => 'Isi-Turkish',
         'tr_CY' => 'Isi-Turkish (ECyprus)',
         'tr_TR' => 'Isi-Turkish (ETurkey)',
+        'ug' => 'Isi Uighur',
+        'ug_CN' => 'Isi Uighur (ETshayina)',
+        'uk' => 'Isi-Ukranian',
+        'uk_UA' => 'Isi-Ukranian (E-Ukraine)',
+        'ur' => 'IsiUrdu',
+        'ur_IN' => 'IsiUrdu (E-Indiya)',
+        'ur_PK' => 'IsiUrdu (EPakistan)',
+        'uz' => 'Isi-Uzbek',
+        'uz_AF' => 'Isi-Uzbek (E-Afghanistan)',
+        'uz_Arab' => 'Isi-Uzbek (Isi-Arabhu)',
+        'uz_Arab_AF' => 'Isi-Uzbek (Isi-Arabhu, E-Afghanistan)',
+        'uz_Cyrl' => 'Isi-Uzbek (IsiCyrillic)',
+        'uz_Cyrl_UZ' => 'Isi-Uzbek (IsiCyrillic, E-Uzbekistan)',
+        'uz_Latn' => 'Isi-Uzbek (IsiLatin)',
+        'uz_Latn_UZ' => 'Isi-Uzbek (IsiLatin, E-Uzbekistan)',
+        'uz_UZ' => 'Isi-Uzbek (E-Uzbekistan)',
+        'vi' => 'Isi-Vietnamese',
+        'vi_VN' => 'Isi-Vietnamese (EVietnam)',
         'xh' => 'IsiXhosa',
         'xh_ZA' => 'IsiXhosa (EMzantsi Afrika)',
         'zh' => 'IsiMandarin',
@@ -313,7 +531,7 @@
         'zh_MO' => 'IsiMandarin (EMacao SAR China)',
         'zh_SG' => 'IsiMandarin (ESingapore)',
         'zh_TW' => 'IsiMandarin (ETaiwan)',
-        'zu' => 'isiZulu',
-        'zu_ZA' => 'isiZulu (EMzantsi Afrika)',
+        'zu' => 'IsiZulu',
+        'zu_ZA' => 'IsiZulu (EMzantsi Afrika)',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yi.php	2026-05-20 10:56:49.000000000 +0200
@@ -92,6 +92,7 @@
         'en_DE' => 'ענגליש (דייטשלאַנד)',
         'en_DK' => 'ענגליש (דענמאַרק)',
         'en_DM' => 'ענגליש (דאמיניקע)',
+        'en_EE' => 'ענגליש (עסטלאַנד)',
         'en_ER' => 'ענגליש (עריטרעע)',
         'en_ES' => 'ענגליש (שפּאַניע)',
         'en_FI' => 'ענגליש (פֿינלאַנד)',
@@ -101,6 +102,7 @@
         'en_FR' => 'ענגליש (פֿראַנקרייך)',
         'en_GB' => 'ענגליש (פֿאַראייניגטע קעניגרייך)',
         'en_GD' => 'ענגליש (גרענאַדאַ)',
+        'en_GE' => 'ענגליש (גרוזיע)',
         'en_GG' => 'ענגליש (גערנזי)',
         'en_GH' => 'ענגליש (גהאַנע)',
         'en_GI' => 'ענגליש (גיבראַלטאַר)',
@@ -115,11 +117,14 @@
         'en_IT' => 'ענגליש (איטאַליע)',
         'en_JE' => 'ענגליש (דזשערזי)',
         'en_JM' => 'ענגליש (דזשאַמייקע)',
+        'en_JP' => 'ענגליש (יאַפּאַן)',
         'en_KE' => 'ענגליש (קעניע)',
         'en_KI' => 'ענגליש (קיריבאַטי)',
         'en_KY' => 'ענגליש (קיימאַן אינזלען)',
         'en_LR' => 'ענגליש (ליבעריע)',
         'en_LS' => 'ענגליש (לעסאטא)',
+        'en_LT' => 'ענגליש (ליטע)',
+        'en_LV' => 'ענגליש (לעטלאַנד)',
         'en_MG' => 'ענגליש (מאַדאַגאַסקאַר)',
         'en_MH' => 'ענגליש (מאַרשאַל אינזלען)',
         'en_MS' => 'ענגליש (מאנטסעראַט)',
@@ -158,6 +163,7 @@
         'en_TT' => 'ענגליש (טרינידאַד און טאבאַגא)',
         'en_TV' => 'ענגליש (טואוואַלו)',
         'en_TZ' => 'ענגליש (טאַנזאַניע)',
+        'en_UA' => 'ענגליש (אוקראַינע)',
         'en_UG' => 'ענגליש (אוגאַנדע)',
         'en_US' => 'ענגליש (פֿאַראייניגטע שטאַטן)',
         'en_VU' => 'ענגליש (וואַנואַטו)',
@@ -290,6 +296,8 @@
         'ka' => 'גרוזיניש',
         'ka_GE' => 'גרוזיניש (גרוזיע)',
         'kk' => 'קאַזאַכיש',
+        'kk_Arab' => 'קאַזאַכיש (אַראַביש)',
+        'kk_Arab_CN' => 'קאַזאַכיש (אַראַביש, כינע)',
         'kk_Cyrl' => 'קאַזאַכיש (ציריליש)',
         'km' => 'כמער',
         'km_KH' => 'כמער (קאַמבאדיע)',
@@ -298,6 +306,10 @@
         'ko' => 'קארעאיש',
         'ko_CN' => 'קארעאיש (כינע)',
         'ku' => 'קורדיש',
+        'ku_Latn' => 'קורדיש (גַלחיש)',
+        'ku_Latn_SY' => 'קורדיש (גַלחיש, סיריע)',
+        'ku_Latn_TR' => 'קורדיש (גַלחיש, טערקיי)',
+        'ku_SY' => 'קורדיש (סיריע)',
         'ku_TR' => 'קורדיש (טערקיי)',
         'kw' => 'קארניש',
         'kw_GB' => 'קארניש (פֿאַראייניגטע קעניגרייך)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yo_BJ.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yo_BJ.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yo_BJ.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yo_BJ.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
         'az_Cyrl' => 'Èdè Asabaijani (èdè ilɛ̀ Rɔ́shíà)',
         'az_Cyrl_AZ' => 'Èdè Asabaijani (èdè ilɛ̀ Rɔ́shíà, Asɛ́bájánì)',
         'az_Latn_AZ' => 'Èdè Asabaijani (Èdè Látìn, Asɛ́bájánì)',
+        'ba_RU' => 'Èdè Bashiri (Rɔshia)',
         'bo_CN' => 'Tibetán (Sháínà)',
         'bs_BA' => 'Èdè Bosnia (Bɔ̀síníà àti Ɛtisɛgófínà)',
         'bs_Cyrl' => 'Èdè Bosnia (èdè ilɛ̀ Rɔ́shíà)',
@@ -28,7 +29,6 @@
         'cy_GB' => 'Èdè Welshi (Gɛ̀ɛ́sì)',
         'da_DK' => 'Èdè Denmaki (Dɛ́mákì)',
         'de_BE' => 'Èdè Jámánì (Bégíɔ́mù)',
-        'de_CH' => 'Èdè Jámánì (switishilandi)',
         'de_LI' => 'Èdè Jámánì (Lɛshitɛnisiteni)',
         'en' => 'Èdè Gɛ̀ɛ́sì',
         'en_001' => 'Èdè Gɛ̀ɛ́sì (Agbáyé)',
@@ -48,7 +48,7 @@
         'en_BZ' => 'Èdè Gɛ̀ɛ́sì (Bèlísɛ̀)',
         'en_CA' => 'Èdè Gɛ̀ɛ́sì (Kánádà)',
         'en_CC' => 'Èdè Gɛ̀ɛ́sì (Erékùsù Cocos [Keeling])',
-        'en_CH' => 'Èdè Gɛ̀ɛ́sì (switishilandi)',
+        'en_CH' => 'Èdè Gɛ̀ɛ́sì (Súwísìlanìdì)',
         'en_CK' => 'Èdè Gɛ̀ɛ́sì (Etíokun Kùúkù)',
         'en_CM' => 'Èdè Gɛ̀ɛ́sì (Kamerúúnì)',
         'en_CX' => 'Èdè Gɛ̀ɛ́sì (Erékùsù Christmas)',
@@ -57,6 +57,7 @@
         'en_DE' => 'Èdè Gɛ̀ɛ́sì (Jámánì)',
         'en_DK' => 'Èdè Gɛ̀ɛ́sì (Dɛ́mákì)',
         'en_DM' => 'Èdè Gɛ̀ɛ́sì (Dòmíníkà)',
+        'en_EE' => 'Èdè Gɛ̀ɛ́sì (Esitonia)',
         'en_ER' => 'Èdè Gɛ̀ɛ́sì (Eritira)',
         'en_ES' => 'Èdè Gɛ̀ɛ́sì (Sípéìnì)',
         'en_FI' => 'Èdè Gɛ̀ɛ́sì (Filandi)',
@@ -66,6 +67,7 @@
         'en_FR' => 'Èdè Gɛ̀ɛ́sì (Faranse)',
         'en_GB' => 'Èdè Gɛ̀ɛ́sì (Gɛ̀ɛ́sì)',
         'en_GD' => 'Èdè Gɛ̀ɛ́sì (Genada)',
+        'en_GE' => 'Èdè Gɛ̀ɛ́sì (Gɔgia)',
         'en_GG' => 'Èdè Gɛ̀ɛ́sì (Guernsey)',
         'en_GH' => 'Èdè Gɛ̀ɛ́sì (Gana)',
         'en_GI' => 'Èdè Gɛ̀ɛ́sì (Gibaratara)',
@@ -84,6 +86,7 @@
         'en_IT' => 'Èdè Gɛ̀ɛ́sì (Itáli)',
         'en_JE' => 'Èdè Gɛ̀ɛ́sì (Jɛsì)',
         'en_JM' => 'Èdè Gɛ̀ɛ́sì (Jamaika)',
+        'en_JP' => 'Èdè Gɛ̀ɛ́sì (Japani)',
         'en_KE' => 'Èdè Gɛ̀ɛ́sì (Kenya)',
         'en_KI' => 'Èdè Gɛ̀ɛ́sì (Kiribati)',
         'en_KN' => 'Èdè Gɛ̀ɛ́sì (Kiiti ati Neefi)',
@@ -91,6 +94,8 @@
         'en_LC' => 'Èdè Gɛ̀ɛ́sì (Lushia)',
         'en_LR' => 'Èdè Gɛ̀ɛ́sì (Laberia)',
         'en_LS' => 'Èdè Gɛ̀ɛ́sì (Lesoto)',
+        'en_LT' => 'Èdè Gɛ̀ɛ́sì (Lituania)',
+        'en_LV' => 'Èdè Gɛ̀ɛ́sì (Latifia)',
         'en_MG' => 'Èdè Gɛ̀ɛ́sì (Madasika)',
         'en_MH' => 'Èdè Gɛ̀ɛ́sì (Etikun Máshali)',
         'en_MO' => 'Èdè Gɛ̀ɛ́sì (Agbègbè Ìshàkóso Pàtàkì Macao)',
@@ -137,6 +142,7 @@
         'en_TT' => 'Èdè Gɛ̀ɛ́sì (Tirinida ati Tobaga)',
         'en_TV' => 'Èdè Gɛ̀ɛ́sì (Tufalu)',
         'en_TZ' => 'Èdè Gɛ̀ɛ́sì (Tàǹsáníà)',
+        'en_UA' => 'Èdè Gɛ̀ɛ́sì (Ukarini)',
         'en_UG' => 'Èdè Gɛ̀ɛ́sì (Uganda)',
         'en_UM' => 'Èdè Gɛ̀ɛ́sì (Àwɔn Erékùsù Kékèké Agbègbè US)',
         'en_US' => 'Èdè Gɛ̀ɛ́sì (Amɛrikà)',
@@ -183,7 +189,6 @@
         'fr_BE' => 'Èdè Faransé (Bégíɔ́mù)',
         'fr_BJ' => 'Èdè Faransé (Bɛ̀nɛ̀)',
         'fr_BL' => 'Èdè Faransé (Ìlú Bátílɛ́mì)',
-        'fr_CH' => 'Èdè Faransé (switishilandi)',
         'fr_DJ' => 'Èdè Faransé (Díbɔ́ótì)',
         'fr_GF' => 'Èdè Faransé (Firenshi Guana)',
         'fr_PF' => 'Èdè Faransé (Firenshi Polinesia)',
@@ -204,10 +209,11 @@
         'ii' => 'Shíkuán Yì',
         'ii_CN' => 'Shíkuán Yì (Sháínà)',
         'is_IS' => 'Èdè Icelandic (Ashilandi)',
-        'it_CH' => 'Èdè Ítálì (switishilandi)',
         'jv_ID' => 'Èdè Javanasi (Indonéshíà)',
         'ka_GE' => 'Èdè Georgia (Gɔgia)',
         'kk' => 'Kashakì',
+        'kk_Arab' => 'Kashakì (èdè Lárúbáwá)',
+        'kk_Arab_CN' => 'Kashakì (èdè Lárúbáwá, Sháínà)',
         'kk_Cyrl' => 'Kashakì (èdè ilɛ̀ Rɔ́shíà)',
         'kk_Cyrl_KZ' => 'Kashakì (èdè ilɛ̀ Rɔ́shíà, Kashashatani)',
         'kk_KZ' => 'Kashakì (Kashashatani)',
@@ -221,6 +227,11 @@
         'ks_Deva_IN' => 'Kashímirì (Dɛfanagárì, Íńdíà)',
         'ks_IN' => 'Kashímirì (Íńdíà)',
         'ku' => 'Kɔdishì',
+        'ku_Latn' => 'Kɔdishì (Èdè Látìn)',
+        'ku_Latn_IQ' => 'Kɔdishì (Èdè Látìn, Iraki)',
+        'ku_Latn_SY' => 'Kɔdishì (Èdè Látìn, Siria)',
+        'ku_Latn_TR' => 'Kɔdishì (Èdè Látìn, Tɔɔki)',
+        'ku_SY' => 'Kɔdishì (Siria)',
         'ku_TR' => 'Kɔdishì (Tɔɔki)',
         'kw' => 'Èdè Kɔ́nììshì',
         'kw_GB' => 'Èdè Kɔ́nììshì (Gɛ̀ɛ́sì)',
@@ -257,7 +268,7 @@
         'pt' => 'Èdè Pɔtogí',
         'pt_AO' => 'Èdè Pɔtogí (Ààngólà)',
         'pt_BR' => 'Èdè Pɔtogí (Bàràsílì)',
-        'pt_CH' => 'Èdè Pɔtogí (switishilandi)',
+        'pt_CH' => 'Èdè Pɔtogí (Súwísìlanìdì)',
         'pt_CV' => 'Èdè Pɔtogí (Etíokun Kápé féndè)',
         'pt_GQ' => 'Èdè Pɔtogí (Ekutoria Gini)',
         'pt_GW' => 'Èdè Pɔtogí (Gene-Busau)',
@@ -272,7 +283,7 @@
         'qu_EC' => 'Kúɛ́ńjùà (Ekuádò)',
         'qu_PE' => 'Kúɛ́ńjùà (Pèérù)',
         'rm' => 'Rómáǹshì',
-        'rm_CH' => 'Rómáǹshì (switishilandi)',
+        'rm_CH' => 'Rómáǹshì (Súwísìlanìdì)',
         'ru' => 'Èdè Rɔ́shíà',
         'ru_BY' => 'Èdè Rɔ́shíà (Bélárúsì)',
         'ru_KG' => 'Èdè Rɔ́shíà (Kurishisitani)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/yo.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
         'ar_QA' => 'Èdè Lárúbáwá (Kota)',
         'ar_SA' => 'Èdè Lárúbáwá (Saudi Arabia)',
         'ar_SD' => 'Èdè Lárúbáwá (Sudani)',
-        'ar_SO' => 'Èdè Lárúbáwá (Somalia)',
+        'ar_SO' => 'Èdè Lárúbáwá (Sòmálíà)',
         'ar_SS' => 'Èdè Lárúbáwá (Gúúsù Sudan)',
         'ar_SY' => 'Èdè Lárúbáwá (Siria)',
         'ar_TD' => 'Èdè Lárúbáwá (Ṣààdì)',
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'Èdè Asabaijani (èdè ilẹ̀ Rọ́ṣíà, Asẹ́bájánì)',
         'az_Latn' => 'Èdè Asabaijani (Èdè Látìn)',
         'az_Latn_AZ' => 'Èdè Asabaijani (Èdè Látìn, Asẹ́bájánì)',
+        'ba' => 'Èdè Bashiri',
+        'ba_RU' => 'Èdè Bashiri (Rọṣia)',
         'be' => 'Èdè Belarusi',
         'be_BY' => 'Èdè Belarusi (Bélárúsì)',
         'bg' => 'Èdè Bugaria',
@@ -85,7 +87,7 @@
         'de' => 'Èdè Jámánì',
         'de_AT' => 'Èdè Jámánì (Asítíríà)',
         'de_BE' => 'Èdè Jámánì (Bégíọ́mù)',
-        'de_CH' => 'Èdè Jámánì (switiṣilandi)',
+        'de_CH' => 'Èdè Jámánì (Súwísìlanìdì)',
         'de_DE' => 'Èdè Jámánì (Jámánì)',
         'de_IT' => 'Èdè Jámánì (Itáli)',
         'de_LI' => 'Èdè Jámánì (Lẹṣitẹnisiteni)',
@@ -116,7 +118,7 @@
         'en_BZ' => 'Èdè Gẹ̀ẹ́sì (Bèlísẹ̀)',
         'en_CA' => 'Èdè Gẹ̀ẹ́sì (Kánádà)',
         'en_CC' => 'Èdè Gẹ̀ẹ́sì (Erékùsù Cocos [Keeling])',
-        'en_CH' => 'Èdè Gẹ̀ẹ́sì (switiṣilandi)',
+        'en_CH' => 'Èdè Gẹ̀ẹ́sì (Súwísìlanìdì)',
         'en_CK' => 'Èdè Gẹ̀ẹ́sì (Etíokun Kùúkù)',
         'en_CM' => 'Èdè Gẹ̀ẹ́sì (Kamerúúnì)',
         'en_CX' => 'Èdè Gẹ̀ẹ́sì (Erékùsù Christmas)',
@@ -125,6 +127,7 @@
         'en_DE' => 'Èdè Gẹ̀ẹ́sì (Jámánì)',
         'en_DK' => 'Èdè Gẹ̀ẹ́sì (Dẹ́mákì)',
         'en_DM' => 'Èdè Gẹ̀ẹ́sì (Dòmíníkà)',
+        'en_EE' => 'Èdè Gẹ̀ẹ́sì (Esitonia)',
         'en_ER' => 'Èdè Gẹ̀ẹ́sì (Eritira)',
         'en_ES' => 'Èdè Gẹ̀ẹ́sì (Sípéìnì)',
         'en_FI' => 'Èdè Gẹ̀ẹ́sì (Filandi)',
@@ -134,6 +137,7 @@
         'en_FR' => 'Èdè Gẹ̀ẹ́sì (Faranse)',
         'en_GB' => 'Èdè Gẹ̀ẹ́sì (Gẹ̀ẹ́sì)',
         'en_GD' => 'Èdè Gẹ̀ẹ́sì (Genada)',
+        'en_GE' => 'Èdè Gẹ̀ẹ́sì (Gọgia)',
         'en_GG' => 'Èdè Gẹ̀ẹ́sì (Guernsey)',
         'en_GH' => 'Èdè Gẹ̀ẹ́sì (Gana)',
         'en_GI' => 'Èdè Gẹ̀ẹ́sì (Gibaratara)',
@@ -152,6 +156,7 @@
         'en_IT' => 'Èdè Gẹ̀ẹ́sì (Itáli)',
         'en_JE' => 'Èdè Gẹ̀ẹ́sì (Jẹsì)',
         'en_JM' => 'Èdè Gẹ̀ẹ́sì (Jamaika)',
+        'en_JP' => 'Èdè Gẹ̀ẹ́sì (Japani)',
         'en_KE' => 'Èdè Gẹ̀ẹ́sì (Kenya)',
         'en_KI' => 'Èdè Gẹ̀ẹ́sì (Kiribati)',
         'en_KN' => 'Èdè Gẹ̀ẹ́sì (Kiiti ati Neefi)',
@@ -159,6 +164,8 @@
         'en_LC' => 'Èdè Gẹ̀ẹ́sì (Luṣia)',
         'en_LR' => 'Èdè Gẹ̀ẹ́sì (Laberia)',
         'en_LS' => 'Èdè Gẹ̀ẹ́sì (Lesoto)',
+        'en_LT' => 'Èdè Gẹ̀ẹ́sì (Lituania)',
+        'en_LV' => 'Èdè Gẹ̀ẹ́sì (Latifia)',
         'en_MG' => 'Èdè Gẹ̀ẹ́sì (Madasika)',
         'en_MH' => 'Èdè Gẹ̀ẹ́sì (Etikun Máṣali)',
         'en_MO' => 'Èdè Gẹ̀ẹ́sì (Agbègbè Ìṣàkóso Pàtàkì Macao)',
@@ -205,6 +212,7 @@
         'en_TT' => 'Èdè Gẹ̀ẹ́sì (Tirinida ati Tobaga)',
         'en_TV' => 'Èdè Gẹ̀ẹ́sì (Tufalu)',
         'en_TZ' => 'Èdè Gẹ̀ẹ́sì (Tàǹsáníà)',
+        'en_UA' => 'Èdè Gẹ̀ẹ́sì (Ukarini)',
         'en_UG' => 'Èdè Gẹ̀ẹ́sì (Uganda)',
         'en_UM' => 'Èdè Gẹ̀ẹ́sì (Àwọn Erékùsù Kékèké Agbègbè US)',
         'en_US' => 'Èdè Gẹ̀ẹ́sì (Amẹrikà)',
@@ -298,7 +306,7 @@
         'fr_CD' => 'Èdè Faransé (Kóńgò – Kinshasa)',
         'fr_CF' => 'Èdè Faransé (Àrin gùngun Áfíríkà)',
         'fr_CG' => 'Èdè Faransé (Kóńgò – Brazaville)',
-        'fr_CH' => 'Èdè Faransé (switiṣilandi)',
+        'fr_CH' => 'Èdè Faransé (Súwísìlanìdì)',
         'fr_CI' => 'Èdè Faransé (Kóútè forà)',
         'fr_CM' => 'Èdè Faransé (Kamerúúnì)',
         'fr_DJ' => 'Èdè Faransé (Díbọ́ótì)',
@@ -378,7 +386,7 @@
         'is' => 'Èdè Icelandic',
         'is_IS' => 'Èdè Icelandic (Aṣilandi)',
         'it' => 'Èdè Ítálì',
-        'it_CH' => 'Èdè Ítálì (switiṣilandi)',
+        'it_CH' => 'Èdè Ítálì (Súwísìlanìdì)',
         'it_IT' => 'Èdè Ítálì (Itáli)',
         'it_SM' => 'Èdè Ítálì (Sani Marino)',
         'it_VA' => 'Èdè Ítálì (Ìlú Vatican)',
@@ -391,6 +399,8 @@
         'ki' => 'Kíkúyù',
         'ki_KE' => 'Kíkúyù (Kenya)',
         'kk' => 'Kaṣakì',
+        'kk_Arab' => 'Kaṣakì (èdè Lárúbáwá)',
+        'kk_Arab_CN' => 'Kaṣakì (èdè Lárúbáwá, Ṣáínà)',
         'kk_Cyrl' => 'Kaṣakì (èdè ilẹ̀ Rọ́ṣíà)',
         'kk_Cyrl_KZ' => 'Kaṣakì (èdè ilẹ̀ Rọ́ṣíà, Kaṣaṣatani)',
         'kk_KZ' => 'Kaṣakì (Kaṣaṣatani)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'Kaṣímirì (Dẹfanagárì, Íńdíà)',
         'ks_IN' => 'Kaṣímirì (Íńdíà)',
         'ku' => 'Kọdiṣì',
+        'ku_Latn' => 'Kọdiṣì (Èdè Látìn)',
+        'ku_Latn_IQ' => 'Kọdiṣì (Èdè Látìn, Iraki)',
+        'ku_Latn_SY' => 'Kọdiṣì (Èdè Látìn, Siria)',
+        'ku_Latn_TR' => 'Kọdiṣì (Èdè Látìn, Tọọki)',
+        'ku_SY' => 'Kọdiṣì (Siria)',
         'ku_TR' => 'Kọdiṣì (Tọọki)',
         'kw' => 'Èdè Kọ́nììṣì',
         'kw_GB' => 'Èdè Kọ́nììṣì (Gẹ̀ẹ́sì)',
@@ -500,7 +515,7 @@
         'pt' => 'Èdè Pọtogí',
         'pt_AO' => 'Èdè Pọtogí (Ààngólà)',
         'pt_BR' => 'Èdè Pọtogí (Bàràsílì)',
-        'pt_CH' => 'Èdè Pọtogí (switiṣilandi)',
+        'pt_CH' => 'Èdè Pọtogí (Súwísìlanìdì)',
         'pt_CV' => 'Èdè Pọtogí (Etíokun Kápé féndè)',
         'pt_GQ' => 'Èdè Pọtogí (Ekutoria Gini)',
         'pt_GW' => 'Èdè Pọtogí (Gene-Busau)',
@@ -515,7 +530,7 @@
         'qu_EC' => 'Kúẹ́ńjùà (Ekuádò)',
         'qu_PE' => 'Kúẹ́ńjùà (Pèérù)',
         'rm' => 'Rómáǹṣì',
-        'rm_CH' => 'Rómáǹṣì (switiṣilandi)',
+        'rm_CH' => 'Rómáǹṣì (Súwísìlanìdì)',
         'rn' => 'Rúńdì',
         'rn_BI' => 'Rúńdì (Bùùrúndì)',
         'ro' => 'Èdè Romania',
@@ -561,7 +576,7 @@
         'so_DJ' => 'Èdè ara Somalia (Díbọ́ótì)',
         'so_ET' => 'Èdè ara Somalia (Etopia)',
         'so_KE' => 'Èdè ara Somalia (Kenya)',
-        'so_SO' => 'Èdè ara Somalia (Somalia)',
+        'so_SO' => 'Èdè ara Somalia (Sòmálíà)',
         'sq' => 'Èdè Albania',
         'sq_AL' => 'Èdè Albania (Àlùbàníánì)',
         'sq_MK' => 'Èdè Albania (Àríwá Macedonia)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh_Hant_HK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh_Hant_HK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh_Hant_HK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh_Hant_HK.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,6 +22,8 @@
         'az_Cyrl_AZ' => '阿塞拜疆文（西里爾文字，亞塞拜疆）',
         'az_Latn' => '阿塞拜疆文（拉丁字母）',
         'az_Latn_AZ' => '阿塞拜疆文（拉丁字母，亞塞拜疆）',
+        'ba' => '巴什基爾文',
+        'ba_RU' => '巴什基爾文（俄羅斯）',
         'bm_ML' => '班巴拉文（馬里）',
         'br' => '布里多尼文',
         'br_FR' => '布里多尼文（法國）',
@@ -50,6 +52,7 @@
         'en_CY' => '英文（塞浦路斯）',
         'en_ER' => '英文（厄立特里亞）',
         'en_GD' => '英文（格林納達）',
+        'en_GE' => '英文（格魯吉亞）',
         'en_GH' => '英文（加納）',
         'en_GM' => '英文（岡比亞）',
         'en_GS' => '英文（南佐治亞島與南桑威奇群島）',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh_Hant.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh_Hant.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh_Hant.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh_Hant.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => '亞塞拜然文（西里爾文字，亞塞拜然）',
         'az_Latn' => '亞塞拜然文（拉丁字母）',
         'az_Latn_AZ' => '亞塞拜然文（拉丁字母，亞塞拜然）',
+        'ba' => '巴什喀爾文',
+        'ba_RU' => '巴什喀爾文（俄羅斯）',
         'be' => '白俄羅斯文',
         'be_BY' => '白俄羅斯文（白俄羅斯）',
         'bg' => '保加利亞文',
@@ -125,6 +127,7 @@
         'en_DE' => '英文（德國）',
         'en_DK' => '英文（丹麥）',
         'en_DM' => '英文（多米尼克）',
+        'en_EE' => '英文（愛沙尼亞）',
         'en_ER' => '英文（厄利垂亞）',
         'en_ES' => '英文（西班牙）',
         'en_FI' => '英文（芬蘭）',
@@ -134,6 +137,7 @@
         'en_FR' => '英文（法國）',
         'en_GB' => '英文（英國）',
         'en_GD' => '英文（格瑞那達）',
+        'en_GE' => '英文（喬治亞）',
         'en_GG' => '英文（根息）',
         'en_GH' => '英文（迦納）',
         'en_GI' => '英文（直布羅陀）',
@@ -152,6 +156,7 @@
         'en_IT' => '英文（義大利）',
         'en_JE' => '英文（澤西島）',
         'en_JM' => '英文（牙買加）',
+        'en_JP' => '英文（日本）',
         'en_KE' => '英文（肯亞）',
         'en_KI' => '英文（吉里巴斯）',
         'en_KN' => '英文（聖克里斯多福及尼維斯）',
@@ -159,6 +164,8 @@
         'en_LC' => '英文（聖露西亞）',
         'en_LR' => '英文（賴比瑞亞）',
         'en_LS' => '英文（賴索托）',
+        'en_LT' => '英文（立陶宛）',
+        'en_LV' => '英文（拉脫維亞）',
         'en_MG' => '英文（馬達加斯加）',
         'en_MH' => '英文（馬紹爾群島）',
         'en_MO' => '英文（中國澳門特別行政區）',
@@ -205,6 +212,7 @@
         'en_TT' => '英文（千里達及托巴哥）',
         'en_TV' => '英文（吐瓦魯）',
         'en_TZ' => '英文（坦尚尼亞）',
+        'en_UA' => '英文（烏克蘭）',
         'en_UG' => '英文（烏干達）',
         'en_UM' => '英文（美國本土外小島嶼）',
         'en_US' => '英文（美國）',
@@ -391,6 +399,8 @@
         'ki' => '吉庫尤文',
         'ki_KE' => '吉庫尤文（肯亞）',
         'kk' => '哈薩克文',
+        'kk_Arab' => '哈薩克文（阿拉伯字母）',
+        'kk_Arab_CN' => '哈薩克文（阿拉伯字母，中國）',
         'kk_Cyrl' => '哈薩克文（西里爾文字）',
         'kk_Cyrl_KZ' => '哈薩克文（西里爾文字，哈薩克）',
         'kk_KZ' => '哈薩克文（哈薩克）',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => '喀什米爾文（天城文，印度）',
         'ks_IN' => '喀什米爾文（印度）',
         'ku' => '庫德文',
+        'ku_Latn' => '庫德文（拉丁字母）',
+        'ku_Latn_IQ' => '庫德文（拉丁字母，伊拉克）',
+        'ku_Latn_SY' => '庫德文（拉丁字母，敘利亞）',
+        'ku_Latn_TR' => '庫德文（拉丁字母，土耳其）',
+        'ku_SY' => '庫德文（敘利亞）',
         'ku_TR' => '庫德文（土耳其）',
         'kw' => '康瓦耳文',
         'kw_GB' => '康瓦耳文（英國）',
@@ -609,8 +624,8 @@
         'ti_ET' => '提格利尼亞文（衣索比亞）',
         'tk' => '土庫曼文',
         'tk_TM' => '土庫曼文（土庫曼）',
-        'tl' => '塔加路族文',
-        'tl_PH' => '塔加路族文（菲律賓）',
+        'tl' => '他加祿文',
+        'tl_PH' => '他加祿文（菲律賓）',
         'tn' => '塞茲瓦納文',
         'tn_BW' => '塞茲瓦納文（波札那）',
         'tn_ZA' => '塞茲瓦納文（南非）',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zh.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => '阿塞拜疆语（西里尔文，阿塞拜疆）',
         'az_Latn' => '阿塞拜疆语（拉丁文）',
         'az_Latn_AZ' => '阿塞拜疆语（拉丁文，阿塞拜疆）',
+        'ba' => '巴什基尔语',
+        'ba_RU' => '巴什基尔语（俄罗斯）',
         'be' => '白俄罗斯语',
         'be_BY' => '白俄罗斯语（白俄罗斯）',
         'bg' => '保加利亚语',
@@ -125,6 +127,7 @@
         'en_DE' => '英语（德国）',
         'en_DK' => '英语（丹麦）',
         'en_DM' => '英语（多米尼克）',
+        'en_EE' => '英语（爱沙尼亚）',
         'en_ER' => '英语（厄立特里亚）',
         'en_ES' => '英语（西班牙）',
         'en_FI' => '英语（芬兰）',
@@ -134,6 +137,7 @@
         'en_FR' => '英语（法国）',
         'en_GB' => '英语（英国）',
         'en_GD' => '英语（格林纳达）',
+        'en_GE' => '英语（格鲁吉亚）',
         'en_GG' => '英语（根西岛）',
         'en_GH' => '英语（加纳）',
         'en_GI' => '英语（直布罗陀）',
@@ -152,6 +156,7 @@
         'en_IT' => '英语（意大利）',
         'en_JE' => '英语（泽西岛）',
         'en_JM' => '英语（牙买加）',
+        'en_JP' => '英语（日本）',
         'en_KE' => '英语（肯尼亚）',
         'en_KI' => '英语（基里巴斯）',
         'en_KN' => '英语（圣基茨和尼维斯）',
@@ -159,6 +164,8 @@
         'en_LC' => '英语（圣卢西亚）',
         'en_LR' => '英语（利比里亚）',
         'en_LS' => '英语（莱索托）',
+        'en_LT' => '英语（立陶宛）',
+        'en_LV' => '英语（拉脱维亚）',
         'en_MG' => '英语（马达加斯加）',
         'en_MH' => '英语（马绍尔群岛）',
         'en_MO' => '英语（中国澳门特别行政区）',
@@ -205,6 +212,7 @@
         'en_TT' => '英语（特立尼达和多巴哥）',
         'en_TV' => '英语（图瓦卢）',
         'en_TZ' => '英语（坦桑尼亚）',
+        'en_UA' => '英语（乌克兰）',
         'en_UG' => '英语（乌干达）',
         'en_UM' => '英语（美国本土外小岛屿）',
         'en_US' => '英语（美国）',
@@ -391,6 +399,8 @@
         'ki' => '吉库尤语',
         'ki_KE' => '吉库尤语（肯尼亚）',
         'kk' => '哈萨克语',
+        'kk_Arab' => '哈萨克语（阿拉伯文）',
+        'kk_Arab_CN' => '哈萨克语（阿拉伯文，中国）',
         'kk_Cyrl' => '哈萨克语（西里尔文）',
         'kk_Cyrl_KZ' => '哈萨克语（西里尔文，哈萨克斯坦）',
         'kk_KZ' => '哈萨克语（哈萨克斯坦）',
@@ -411,11 +421,16 @@
         'ks_Deva_IN' => '克什米尔语（天城文，印度）',
         'ks_IN' => '克什米尔语（印度）',
         'ku' => '库尔德语',
+        'ku_Latn' => '库尔德语（拉丁文）',
+        'ku_Latn_IQ' => '库尔德语（拉丁文，伊拉克）',
+        'ku_Latn_SY' => '库尔德语（拉丁文，叙利亚）',
+        'ku_Latn_TR' => '库尔德语（拉丁文，土耳其）',
+        'ku_SY' => '库尔德语（叙利亚）',
         'ku_TR' => '库尔德语（土耳其）',
         'kw' => '康沃尔语',
         'kw_GB' => '康沃尔语（英国）',
-        'ky' => '柯尔克孜语',
-        'ky_KG' => '柯尔克孜语（吉尔吉斯斯坦）',
+        'ky' => '吉尔吉斯语',
+        'ky_KG' => '吉尔吉斯语（吉尔吉斯斯坦）',
         'lb' => '卢森堡语',
         'lb_LU' => '卢森堡语（卢森堡）',
         'lg' => '卢干达语',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/locales/zu.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,6 +46,8 @@
         'az_Cyrl_AZ' => 'isi-Azerbaijani (isi-Cyrillic, i-Azerbaijan)',
         'az_Latn' => 'isi-Azerbaijani (isi-Latin)',
         'az_Latn_AZ' => 'isi-Azerbaijani (isi-Latin, i-Azerbaijan)',
+        'ba' => 'isi-Bashkir',
+        'ba_RU' => 'isi-Bashkir (i-Russia)',
         'be' => 'isi-Belarusian',
         'be_BY' => 'isi-Belarusian (i-Belarus)',
         'bg' => 'isi-Bulgari',
@@ -125,6 +127,7 @@
         'en_DE' => 'i-English (i-Germany)',
         'en_DK' => 'i-English (i-Denmark)',
         'en_DM' => 'i-English (i-Dominica)',
+        'en_EE' => 'i-English (i-Estonia)',
         'en_ER' => 'i-English (i-Eritrea)',
         'en_ES' => 'i-English (i-Spain)',
         'en_FI' => 'i-English (i-Finland)',
@@ -134,6 +137,7 @@
         'en_FR' => 'i-English (i-France)',
         'en_GB' => 'i-English (i-United Kingdom)',
         'en_GD' => 'i-English (i-Grenada)',
+        'en_GE' => 'i-English (i-Georgia)',
         'en_GG' => 'i-English (i-Guernsey)',
         'en_GH' => 'i-English (i-Ghana)',
         'en_GI' => 'i-English (i-Gibraltar)',
@@ -152,6 +156,7 @@
         'en_IT' => 'i-English (i-Italy)',
         'en_JE' => 'i-English (i-Jersey)',
         'en_JM' => 'i-English (i-Jamaica)',
+        'en_JP' => 'i-English (i-Japan)',
         'en_KE' => 'i-English (i-Kenya)',
         'en_KI' => 'i-English (i-Kiribati)',
         'en_KN' => 'i-English (i-Saint Kitts ne-Nevis)',
@@ -159,6 +164,8 @@
         'en_LC' => 'i-English (i-Saint Lucia)',
         'en_LR' => 'i-English (i-Liberia)',
         'en_LS' => 'i-English (iLesotho)',
+        'en_LT' => 'i-English (i-Lithuania)',
+        'en_LV' => 'i-English (i-Latvia)',
         'en_MG' => 'i-English (i-Madagascar)',
         'en_MH' => 'i-English (i-Marshall Islands)',
         'en_MO' => 'i-English (i-Macau SAR China)',
@@ -205,6 +212,7 @@
         'en_TT' => 'i-English (i-Trinidad ne-Tobago)',
         'en_TV' => 'i-English (i-Tuvalu)',
         'en_TZ' => 'i-English (i-Tanzania)',
+        'en_UA' => 'i-English (i-Ukraine)',
         'en_UG' => 'i-English (i-Uganda)',
         'en_UM' => 'i-English (I-U.S. Outlying Islands)',
         'en_US' => 'i-English (i-United States)',
@@ -391,6 +399,8 @@
         'ki' => 'isi-Kikuyu',
         'ki_KE' => 'isi-Kikuyu (i-Kenya)',
         'kk' => 'isi-Kazakh',
+        'kk_Arab' => 'isi-Kazakh (isi-Arabic)',
+        'kk_Arab_CN' => 'isi-Kazakh (isi-Arabic, i-China)',
         'kk_Cyrl' => 'isi-Kazakh (isi-Cyrillic)',
         'kk_Cyrl_KZ' => 'isi-Kazakh (isi-Cyrillic, i-Kazakhstan)',
         'kk_KZ' => 'isi-Kazakh (i-Kazakhstan)',
@@ -411,6 +421,11 @@
         'ks_Deva_IN' => 'isi-Kashmiri (isi-Devanagari, i-India)',
         'ks_IN' => 'isi-Kashmiri (i-India)',
         'ku' => 'isi-Kurdish',
+        'ku_Latn' => 'isi-Kurdish (isi-Latin)',
+        'ku_Latn_IQ' => 'isi-Kurdish (isi-Latin, i-Iraq)',
+        'ku_Latn_SY' => 'isi-Kurdish (isi-Latin, i-Syria)',
+        'ku_Latn_TR' => 'isi-Kurdish (isi-Latin, i-Turkey)',
+        'ku_SY' => 'isi-Kurdish (i-Syria)',
         'ku_TR' => 'isi-Kurdish (i-Turkey)',
         'kw' => 'isi-Cornish',
         'kw_GB' => 'isi-Cornish (i-United Kingdom)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/af.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/af.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/af.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/af.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Verenigde Arabiese Emirate',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ak.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ak.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ak.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ak.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'United Arab Emirates',
@@ -33,7 +36,7 @@
         'BO' => 'Bolivia',
         'BQ' => 'Caribbean Netherlands',
         'BR' => 'Brazil',
-        'BS' => 'Bahama',
+        'BS' => 'Bahamase',
         'BT' => 'Butan',
         'BV' => 'Bouvet Island',
         'BW' => 'Bɔtswana',
@@ -52,7 +55,7 @@
         'CN' => 'Kyaena',
         'CO' => 'Kolombia',
         'CR' => 'Kɔsta Rika',
-        'CU' => 'Kuba',
+        'CU' => 'Kiuba',
         'CV' => 'Kepvɛdfo Islands',
         'CW' => 'Kurakaw',
         'CX' => 'Buronya Supɔ',
@@ -70,7 +73,7 @@
         'EH' => 'Sahara Atɔeɛ',
         'ER' => 'Ɛritrea',
         'ES' => 'Spain',
-        'ET' => 'Ithiopia',
+        'ET' => 'Yitiopia',
         'FI' => 'Finland',
         'FJ' => 'Figyi',
         'FK' => 'Fɔkman Aeland',
@@ -102,14 +105,14 @@
         'HR' => 'Krowehyia',
         'HT' => 'Heiti',
         'HU' => 'Hangari',
-        'ID' => 'Indɔnehyia',
+        'ID' => 'Ndoniihyia',
         'IE' => 'Aereland',
         'IL' => 'Israe',
         'IM' => 'Isle of Man',
         'IN' => 'India',
         'IO' => 'Britenfo Man Wɔ India Po No Mu',
         'IQ' => 'Irak',
-        'IR' => 'Iran',
+        'IR' => 'Yiran',
         'IS' => 'Aesland',
         'IT' => 'Itali',
         'JE' => 'Gyɛsi',
@@ -121,7 +124,7 @@
         'KH' => 'Kambodia',
         'KI' => 'Kiribati',
         'KM' => 'Kɔmɔrɔs',
-        'KN' => 'Saint Kitts ne Nɛves',
+        'KN' => 'Saint Kitts ne Nevis',
         'KP' => 'Korea Atifi',
         'KR' => 'Korea Anaafoɔ',
         'KW' => 'Kuweti',
@@ -201,7 +204,7 @@
         'SE' => 'Sweden',
         'SG' => 'Singapɔ',
         'SH' => 'Saint Helena',
-        'SI' => 'Slovinia',
+        'SI' => 'Slovenia',
         'SJ' => 'Svalbard ne Jan Mayen',
         'SK' => 'Slovakia',
         'SL' => 'Sɛra Liɔn',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/am.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/am.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/am.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/am.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'ኮሶቮ',
+    ],
     'Names' => [
         'AD' => 'አንዶራ',
         'AE' => 'የተባበሩት ዓረብ ኤምሬትስ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar_LY.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar_LY.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar_LY.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar_LY.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'MS' => 'مونتيسيرات',
         'UY' => 'أوروغواي',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'كوسوفو',
+    ],
     'Names' => [
         'AD' => 'أندورا',
         'AE' => 'الإمارات العربية المتحدة',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar_SA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar_SA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar_SA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ar_SA.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'MO' => 'ماكاو الصينية (منطقة إدارية خاصة)',
         'MS' => 'مونتيسيرات',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/as.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/as.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/as.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/as.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'কচ’ভ’',
+    ],
     'Names' => [
         'AD' => 'আন্দোৰা',
         'AE' => 'সংযুক্ত আৰব আমিৰাত',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/az_Cyrl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/az_Cyrl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/az_Cyrl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/az_Cyrl.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
         'AE' => 'Бирләшмиш Әрәб Әмирликләри',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/az.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/az.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/az.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/az.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Birləşmiş Ərəb Əmirlikləri',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ba.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ba.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ba.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ba.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,258 @@
+<?php
+
+return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
+    'Names' => [
+        'AD' => 'Андорра',
+        'AE' => 'Берләшкән Ғәрәп Әмирлектәре',
+        'AF' => 'Афғанстан',
+        'AG' => 'Антигуа һәм Барбуда',
+        'AI' => 'Ангилья',
+        'AL' => 'Албания',
+        'AM' => 'Әрмәнстан',
+        'AO' => 'Ангола',
+        'AQ' => 'Антарктида',
+        'AR' => 'Аргентина',
+        'AS' => 'Америка Самоаһы',
+        'AT' => 'Австрия',
+        'AU' => 'Австралия',
+        'AW' => 'Аруба',
+        'AX' => 'Аланд утрауҙары',
+        'AZ' => 'Әзербайжан',
+        'BA' => 'Босния һәм Герцеговина',
+        'BB' => 'Барбадос',
+        'BD' => 'Бангладеш',
+        'BE' => 'Бельгия',
+        'BF' => 'Буркина-Фасо',
+        'BG' => 'Болгария',
+        'BH' => 'Бәхрәйн',
+        'BI' => 'Бурунди',
+        'BJ' => 'Бенин',
+        'BL' => 'Сен-Бартелеми',
+        'BM' => 'Бермуд утрауҙары',
+        'BN' => 'Бруней',
+        'BO' => 'Боливия',
+        'BQ' => 'Карибтағы Нидерланд',
+        'BR' => 'Бразилия',
+        'BS' => 'Багам утрауҙары',
+        'BT' => 'Бутан',
+        'BV' => 'Буве утрауы',
+        'BW' => 'Ботсвана',
+        'BY' => 'Беларусь',
+        'BZ' => 'Белиз',
+        'CA' => 'Канада',
+        'CC' => 'Кокос утрауҙары',
+        'CD' => 'Конго - Киншаса',
+        'CF' => 'Үҙәк Африка Республикаһы',
+        'CG' => 'Конго - Браззавиль',
+        'CH' => 'Швейцария',
+        'CI' => 'Кот-д’Ивуар',
+        'CK' => 'Кук утрауҙары',
+        'CL' => 'Чили',
+        'CM' => 'Камерун',
+        'CN' => 'Ҡытай',
+        'CO' => 'Колумбия',
+        'CR' => 'Коста-Рика',
+        'CU' => 'Куба',
+        'CV' => 'Кабо-Верде',
+        'CW' => 'Кюрасао',
+        'CX' => 'Раштыуа Утрауы',
+        'CY' => 'Кипр',
+        'CZ' => 'Чехия',
+        'DE' => 'Германия',
+        'DJ' => 'Джибути',
+        'DK' => 'Дания',
+        'DM' => 'Доминика',
+        'DO' => 'Доминикан Республикаһы',
+        'DZ' => 'Алжир',
+        'EC' => 'Эквадор',
+        'EE' => 'Эстония',
+        'EG' => 'Мысыр',
+        'EH' => 'Көнбайыш Сахара',
+        'ER' => 'Эритрея',
+        'ES' => 'Испания',
+        'ET' => 'Эфиопия',
+        'FI' => 'Финляндия',
+        'FJ' => 'Фиджи',
+        'FK' => 'Фолкленд утрауҙары',
+        'FM' => 'Микронезия',
+        'FO' => 'Фарер утрауҙары',
+        'FR' => 'Франция',
+        'GA' => 'Габон',
+        'GB' => 'Бөйөк Британия',
+        'GD' => 'Гренада',
+        'GE' => 'Грузия',
+        'GF' => 'Француз Гвианаһы',
+        'GG' => 'Гернси',
+        'GH' => 'Гана',
+        'GI' => 'Гибралтар',
+        'GL' => 'Гренландия',
+        'GM' => 'Гамбия',
+        'GN' => 'Гвинея',
+        'GP' => 'Гваделупа',
+        'GQ' => 'Экваториаль Гвинея',
+        'GR' => 'Греция',
+        'GS' => 'Көньяҡ Георгия һәм Көньяҡ Сандвич утрауҙары',
+        'GT' => 'Гватемала',
+        'GU' => 'Гуам',
+        'GW' => 'Гвинея-Бисау',
+        'GY' => 'Гайана',
+        'HK' => 'Гонконг, Ҡытай МАР-ы',
+        'HM' => 'Херд һәм Макдональд утрауҙары',
+        'HN' => 'Гондурас',
+        'HR' => 'Хорватия',
+        'HT' => 'Гаити',
+        'HU' => 'Венгрия',
+        'ID' => 'Индонезия',
+        'IE' => 'Ирландия',
+        'IL' => 'Израиль',
+        'IM' => 'Мэн утрауы',
+        'IN' => 'Һиндостан',
+        'IO' => 'Британияның Һинд океанындағы биләмәһе',
+        'IQ' => 'Ираҡ',
+        'IR' => 'Иран',
+        'IS' => 'Исландия',
+        'IT' => 'Италия',
+        'JE' => 'Джерси',
+        'JM' => 'Ямайка',
+        'JO' => 'Иордания',
+        'JP' => 'Япония',
+        'KE' => 'Кения',
+        'KG' => 'Ҡырғыҙстан',
+        'KH' => 'Камбоджа',
+        'KI' => 'Кирибати',
+        'KM' => 'Комор утрауҙары',
+        'KN' => 'Сент-Китс һәм Невис',
+        'KP' => 'Төньяҡ Корея',
+        'KR' => 'Көньяҡ Корея',
+        'KW' => 'Кувейт',
+        'KY' => 'Кайман утрауҙары',
+        'KZ' => 'Ҡаҙағстан',
+        'LA' => 'Лаос',
+        'LB' => 'Ливан',
+        'LC' => 'Сент-Люсия',
+        'LI' => 'Лихтенштейн',
+        'LK' => 'Шри-Ланка',
+        'LR' => 'Либерия',
+        'LS' => 'Лесото',
+        'LT' => 'Литва',
+        'LU' => 'Люксембург',
+        'LV' => 'Латвия',
+        'LY' => 'Ливия',
+        'MA' => 'Марокко',
+        'MC' => 'Монако',
+        'MD' => 'Молдова',
+        'ME' => 'Черногория',
+        'MF' => 'Сен-Мартен',
+        'MG' => 'Мадагаскар',
+        'MH' => 'Маршалл утрауҙары',
+        'MK' => 'Төньяҡ Македония',
+        'ML' => 'Мали',
+        'MM' => 'Мьянма (Бирма)',
+        'MN' => 'Монголия',
+        'MO' => 'Макао, Ҡытай МАР-ы',
+        'MP' => 'Төньяҡ Мариан утрауҙары',
+        'MQ' => 'Мартиника',
+        'MR' => 'Мавритания',
+        'MS' => 'Монтсеррат',
+        'MT' => 'Мальта',
+        'MU' => 'Маврикий',
+        'MV' => 'Мальдив утрауҙары',
+        'MW' => 'Малави',
+        'MX' => 'Мексика',
+        'MY' => 'Малайзия',
+        'MZ' => 'Мозамбик',
+        'NA' => 'Намибия',
+        'NC' => 'Яңы Каледония',
+        'NE' => 'Нигер',
+        'NF' => 'Норфолк утрауы',
+        'NG' => 'Нигерия',
+        'NI' => 'Никарагуа',
+        'NL' => 'Нидерланд',
+        'NO' => 'Норвегия',
+        'NP' => 'Непал',
+        'NR' => 'Науру',
+        'NU' => 'Ниуэ',
+        'NZ' => 'Яңы Зеландия',
+        'OM' => 'Оман',
+        'PA' => 'Панама',
+        'PE' => 'Перу',
+        'PF' => 'Француз Полинезияһы',
+        'PG' => 'Папуа – Яңы Гвинея',
+        'PH' => 'Филиппин',
+        'PK' => 'Пакистан',
+        'PL' => 'Польша',
+        'PM' => 'Сен-Пьер һәм Микелон',
+        'PN' => 'Питкэрн утрауҙары',
+        'PR' => 'Пуэрто-Рико',
+        'PS' => 'Фәләстин территориялары',
+        'PT' => 'Португалия',
+        'PW' => 'Палау',
+        'PY' => 'Парагвай',
+        'QA' => 'Катар',
+        'RE' => 'Реюньон',
+        'RO' => 'Румыния',
+        'RS' => 'Сербия',
+        'RU' => 'Рәсәй',
+        'RW' => 'Руанда',
+        'SA' => 'Сәғүд Ғәрәбстаны',
+        'SB' => 'Соломон утрауҙары',
+        'SC' => 'Сейшель утрауҙары',
+        'SD' => 'Судан',
+        'SE' => 'Швеция',
+        'SG' => 'Сингапур',
+        'SH' => 'Изге Елена утрауы',
+        'SI' => 'Словения',
+        'SJ' => 'Шпицберген һәм Ян-Майен',
+        'SK' => 'Словакия',
+        'SL' => 'Сьерра-Леоне',
+        'SM' => 'Сан-Марино',
+        'SN' => 'Сенегал',
+        'SO' => 'Сомали',
+        'SR' => 'Суринам',
+        'SS' => 'Көньяҡ Судан',
+        'ST' => 'Сан-Томе һәм Принсипи',
+        'SV' => 'Сальвадор',
+        'SX' => 'Синт-Мартен',
+        'SY' => 'Сүриә',
+        'SZ' => 'Эсватини',
+        'TC' => 'Төркс һәм Кайкос утрауҙары',
+        'TD' => 'Чад',
+        'TF' => 'Францияның Көньяҡ Биләмәләре',
+        'TG' => 'Того',
+        'TH' => 'Тайланд',
+        'TJ' => 'Тажикстан',
+        'TK' => 'Токелау',
+        'TL' => 'Тимор-Лесте',
+        'TM' => 'Төркмәнстан',
+        'TN' => 'Тунис',
+        'TO' => 'Тонга',
+        'TR' => 'Төркиә',
+        'TT' => 'Тринидад һәм Тобаго',
+        'TV' => 'Тувалу',
+        'TW' => 'Тайвань',
+        'TZ' => 'Танзания',
+        'UA' => 'Украина',
+        'UG' => 'Уганда',
+        'UM' => 'АҠШ-ның ситтәге утрауҙары',
+        'US' => 'Америка Ҡушма Штаттары',
+        'UY' => 'Уругвай',
+        'UZ' => 'Үзбәкстан',
+        'VA' => 'Ватикан',
+        'VC' => 'Сент-Винсент һәм Гренадиндар',
+        'VE' => 'Венесуэла',
+        'VG' => 'Британия Виргин утрауҙары',
+        'VI' => 'АҠШ Виргин утрауҙары',
+        'VN' => 'Вьетнам',
+        'VU' => 'Вануату',
+        'WF' => 'Уоллис һәм Футуна',
+        'WS' => 'Самоа',
+        'YE' => 'Йәмән',
+        'YT' => 'Майотта',
+        'ZA' => 'Көньяҡ Африка Республикаһы',
+        'ZM' => 'Замбия',
+        'ZW' => 'Зимбабве',
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/be.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/be.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/be.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/be.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косава',
+    ],
     'Names' => [
         'AD' => 'Андора',
         'AE' => 'Аб’яднаныя Арабскія Эміраты',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bg.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андора',
         'AE' => 'Обединени арабски емирства',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bm.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andɔr',
         'AE' => 'Arabu mara kafoli',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bn_IN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bn_IN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bn_IN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bn_IN.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'UM' => 'মার্কিন যুক্তরাষ্ট্রের দূরবর্তী দ্বীপপুঞ্জ',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'কসোভো',
+    ],
     'Names' => [
         'AD' => 'আন্ডোরা',
         'AE' => 'সংযুক্ত আরব আমিরাত',
@@ -42,7 +45,7 @@
         'CA' => 'কানাডা',
         'CC' => 'কোকোস (কিলিং) দ্বীপপুঞ্জ',
         'CD' => 'কঙ্গো-কিনশাসা',
-        'CF' => 'মধ্য আফ্রিকার প্রজাতন্ত্র',
+        'CF' => 'মধ্য আফ্রিকান প্রজাতন্ত্র',
         'CG' => 'কঙ্গো - ব্রাজাভিল',
         'CH' => 'সুইজারল্যান্ড',
         'CI' => 'কোট ডি‘আইভোর',
@@ -138,7 +141,7 @@
         'LU' => 'লাক্সেমবার্গ',
         'LV' => 'লাটভিয়া',
         'LY' => 'লিবিয়া',
-        'MA' => 'মোরক্কো',
+        'MA' => 'মরক্কো',
         'MC' => 'মোনাকো',
         'MD' => 'মলডোভা',
         'ME' => 'মন্টিনিগ্রো',
@@ -227,7 +230,7 @@
         'TN' => 'তিউনিসিয়া',
         'TO' => 'টোঙ্গা',
         'TR' => 'তুরস্ক',
-        'TT' => 'ত্রিনিনাদ ও টোব্যাগো',
+        'TT' => 'ত্রিনিদাদ ও টোবাগো',
         'TV' => 'টুভালু',
         'TW' => 'তাইওয়ান',
         'TZ' => 'তাঞ্জানিয়া',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bo_IN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bo_IN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bo_IN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bo_IN.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,6 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bo.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'CN' => 'རྒྱ་ནག',
         'DE' => 'འཇར་མན་',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/br.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/br.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/br.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/br.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,11 +1,14 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
-        'AE' => 'Emirelezhioù Arab Unanet',
+        'AE' => 'Emirelezhioù-Arab-Unanet',
         'AF' => 'Afghanistan',
-        'AG' => 'Antigua ha Barbuda',
+        'AG' => 'Antigua-ha-Barbuda',
         'AI' => 'Anguilla',
         'AL' => 'Albania',
         'AM' => 'Armenia',
@@ -18,7 +21,7 @@
         'AW' => 'Aruba',
         'AX' => 'Inizi Åland',
         'AZ' => 'Azerbaidjan',
-        'BA' => 'Bosnia ha Herzegovina',
+        'BA' => 'Bosnia-ha-Herzegovina',
         'BB' => 'Barbados',
         'BD' => 'Bangladesh',
         'BE' => 'Belgia',
@@ -27,8 +30,8 @@
         'BH' => 'Bahrein',
         'BI' => 'Burundi',
         'BJ' => 'Benin',
-        'BL' => 'Saint Barthélemy',
-        'BM' => 'Bermuda',
+        'BL' => 'Sant-Bertele',
+        'BM' => 'Bermudez',
         'BN' => 'Brunei',
         'BO' => 'Bolivia',
         'BQ' => 'Karib Nederlandat',
@@ -45,7 +48,7 @@
         'CF' => 'Republik Kreizafrikan',
         'CG' => 'Kongo - Brazzaville',
         'CH' => 'Suis',
-        'CI' => 'Aod an Olifant',
+        'CI' => 'Aod-an-Olifant',
         'CK' => 'Inizi Cook',
         'CL' => 'Chile',
         'CM' => 'Kameroun',
@@ -89,7 +92,7 @@
         'GM' => 'Gambia',
         'GN' => 'Ginea',
         'GP' => 'Gwadeloup',
-        'GQ' => 'Ginea ar Cʼheheder',
+        'GQ' => 'Ginea-ar-Cʼheheder',
         'GR' => 'Gres',
         'GS' => 'Inizi Georgia ar Su hag Inizi Sandwich ar Su',
         'GT' => 'Guatemala',
@@ -97,7 +100,7 @@
         'GW' => 'Ginea-Bissau',
         'GY' => 'Guyana',
         'HK' => 'Hong Kong RMD Sina',
-        'HM' => 'Inizi Heard ha McDonald',
+        'HM' => 'Inizi Heard-ha-McDonald',
         'HN' => 'Honduras',
         'HR' => 'Kroatia',
         'HT' => 'Haiti',
@@ -105,8 +108,9 @@
         'ID' => 'Indonezia',
         'IE' => 'Iwerzhon',
         'IL' => 'Israel',
-        'IM' => 'Enez Vanav',
+        'IM' => 'Enez-Vanav',
         'IN' => 'India',
+        'IO' => 'Tiriad breizhveurat Meurvor Indez',
         'IQ' => 'Iraq',
         'IR' => 'Iran',
         'IS' => 'Island',
@@ -120,9 +124,9 @@
         'KH' => 'Kambodja',
         'KI' => 'Kiribati',
         'KM' => 'Komorez',
-        'KN' => 'Saint Kitts ha Nevis',
-        'KP' => 'Korea an Norzh',
-        'KR' => 'Korea ar Su',
+        'KN' => 'Saint Kitts-ha-Nevis',
+        'KP' => 'Norzhkorea',
+        'KR' => 'Sukorea',
         'KW' => 'Koweit',
         'KY' => 'Inizi Cayman',
         'KZ' => 'Kazakstan',
@@ -141,14 +145,14 @@
         'MC' => 'Monaco',
         'MD' => 'Moldova',
         'ME' => 'Montenegro',
-        'MF' => 'Saint Martin',
+        'MF' => 'Sant-Martin',
         'MG' => 'Madagaskar',
         'MH' => 'Inizi Marshall',
         'MK' => 'Makedonia an Norzh',
         'ML' => 'Mali',
         'MM' => 'Myanmar (Birmania)',
         'MN' => 'Mongolia',
-        'MO' => 'Macau RMD Sina',
+        'MO' => 'Makao RMD Sina',
         'MP' => 'Inizi Mariana an Norzh',
         'MQ' => 'Martinik',
         'MR' => 'Maouritania',
@@ -161,7 +165,7 @@
         'MY' => 'Malaysia',
         'MZ' => 'Mozambik',
         'NA' => 'Namibia',
-        'NC' => 'Kaledonia Nevez',
+        'NC' => 'Kaledonia-Nevez',
         'NE' => 'Niger',
         'NF' => 'Enez Norfolk',
         'NG' => 'Nigeria',
@@ -198,7 +202,7 @@
         'SC' => 'Sechelez',
         'SD' => 'Soudan',
         'SE' => 'Sveden',
-        'SG' => 'Singapour',
+        'SG' => 'Singapoura',
         'SH' => 'Saint-Helena',
         'SI' => 'Slovenia',
         'SJ' => 'Svalbard',
@@ -208,13 +212,13 @@
         'SN' => 'Senegal',
         'SO' => 'Somalia',
         'SR' => 'Surinam',
-        'SS' => 'Susoudan',
-        'ST' => 'São Tomé ha Príncipe',
+        'SS' => 'Soudan ar Su',
+        'ST' => 'São-Tomé-ha-Príncipe',
         'SV' => 'Salvador',
         'SX' => 'Sint Maarten',
         'SY' => 'Siria',
         'SZ' => 'Eswatini',
-        'TC' => 'Inizi Turks ha Caicos',
+        'TC' => 'Inizi Turks-ha-Caicos',
         'TD' => 'Tchad',
         'TF' => 'Douaroù aostral Frañs',
         'TG' => 'Togo',
@@ -226,7 +230,7 @@
         'TN' => 'Tunizia',
         'TO' => 'Tonga',
         'TR' => 'Turkia',
-        'TT' => 'Trinidad ha Tobago',
+        'TT' => 'Trinidad-ha-Tobago',
         'TV' => 'Tuvalu',
         'TW' => 'Taiwan',
         'TZ' => 'Tanzania',
@@ -237,13 +241,13 @@
         'UY' => 'Uruguay',
         'UZ' => 'Ouzbekistan',
         'VA' => 'Vatikan',
-        'VC' => 'Sant Visant hag ar Grenadinez',
+        'VC' => 'Sant-Visant hag ar Grenadinez',
         'VE' => 'Venezuela',
         'VG' => 'Inizi Gwercʼh Breizh-Veur',
         'VI' => 'Inizi Gwercʼh ar Stadoù-Unanet',
         'VN' => 'Viêt Nam',
         'VU' => 'Vanuatu',
-        'WF' => 'Wallis ha Futuna',
+        'WF' => 'Wallis-ha-Futuna',
         'WS' => 'Samoa',
         'YE' => 'Yemen',
         'YT' => 'Mayotte',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bs_Cyrl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bs_Cyrl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bs_Cyrl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bs_Cyrl.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андора',
         'AE' => 'Уједињени Арапски Емирати',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/bs.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Ujedinjeni Arapski Emirati',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ca.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ca.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ca.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ca.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emirats Àrabs Units',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ce.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ce.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ce.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ce.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
         'AE' => 'Ӏарбийн Цхьанатоьхна Эмираташ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cs.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Spojené arabské emiráty',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cv.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,22 +1,25 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
-        'AE' => 'Арапсен Пӗрлешӳллӗ Эмирачӗ',
+        'AE' => 'Пӗрлешнӗ Араб Эмирачӗсем',
         'AF' => 'Афганистан',
-        'AG' => 'Антигуа тата Барбуда',
+        'AG' => 'Антигуапа Барбуда',
         'AI' => 'Ангилья',
         'AL' => 'Албани',
         'AM' => 'Армени',
         'AO' => 'Ангола',
         'AQ' => 'Антарктида',
         'AR' => 'Аргентина',
-        'AS' => 'Америка Самоа',
+        'AS' => 'Америка Самойи',
         'AT' => 'Австри',
         'AU' => 'Австрали',
         'AW' => 'Аруба',
-        'AX' => 'Аланди утравӗсем',
+        'AX' => 'Аланд утравӗсем',
         'AZ' => 'Азербайджан',
         'BA' => 'Боснипе Герцеговина',
         'BB' => 'Барбадос',
@@ -29,21 +32,21 @@
         'BJ' => 'Бенин',
         'BL' => 'Сен-Бартелеми',
         'BM' => 'Бермуд утравӗсем',
-        'BN' => 'Бруней-Даруссалам',
+        'BN' => 'Бруней',
         'BO' => 'Боливи',
-        'BQ' => 'Бонэйр, Синт-Эстатиус тата Саба',
+        'BQ' => 'Бонэйр, Синт-Эстатиуспа Саба',
         'BR' => 'Бразили',
-        'BS' => 'Пахам утравӗсем',
+        'BS' => 'Багама утравӗсем',
         'BT' => 'Бутан',
         'BV' => 'Буве утравӗ',
         'BW' => 'Ботсвана',
-        'BY' => 'Беларуҫ',
+        'BY' => 'Беларусь',
         'BZ' => 'Белиз',
         'CA' => 'Канада',
         'CC' => 'Кокос утравӗсем',
-        'CD' => 'Конго - Киншаса',
-        'CF' => 'Тӗп Африка Республики',
-        'CG' => 'Конго - Браззавиль',
+        'CD' => 'Конго',
+        'CF' => 'Вӑта Африка Республики',
+        'CG' => 'Конго-Браззавиль',
         'CH' => 'Швейцари',
         'CI' => 'Кот-д’Ивуар',
         'CK' => 'Кук утравӗсем',
@@ -62,7 +65,7 @@
         'DJ' => 'Джибути',
         'DK' => 'Дани',
         'DM' => 'Доминика',
-        'DO' => 'Доминикан Республики',
+        'DO' => 'Доминика Республики',
         'DZ' => 'Алжир',
         'EC' => 'Эквадор',
         'EE' => 'Эстони',
@@ -81,7 +84,7 @@
         'GB' => 'Аслӑ Британи',
         'GD' => 'Гренада',
         'GE' => 'Грузи',
-        'GF' => 'Франци Гвиана',
+        'GF' => 'Франци Гвиани',
         'GG' => 'Гернси',
         'GH' => 'Гана',
         'GI' => 'Гибралтар',
@@ -89,15 +92,15 @@
         'GM' => 'Гамби',
         'GN' => 'Гвиней',
         'GP' => 'Гваделупа',
-        'GQ' => 'Экваториаллӑ Гвиней',
+        'GQ' => 'Экваторти Гвинея',
         'GR' => 'Греци',
-        'GS' => 'Кӑнтӑр Георги тата Сандвичев утравӗсем',
+        'GS' => 'Кӑнтӑр Георгипе Кӑнтӑр Сандвич утравӗсем',
         'GT' => 'Гватемала',
         'GU' => 'Гуам',
         'GW' => 'Гвиней-Бисау',
         'GY' => 'Гайана',
-        'HK' => 'Гонконг (САР)',
-        'HM' => 'Херд тата Макдональд утравӗ',
+        'HK' => 'Гонконг (ЯАР)',
+        'HM' => 'Хердпа Макдональд утравӗсем',
         'HN' => 'Гондурас',
         'HR' => 'Хорвати',
         'HT' => 'Гаити',
@@ -107,6 +110,7 @@
         'IL' => 'Израиль',
         'IM' => 'Мэн утравӗ',
         'IN' => 'Инди',
+        'IO' => 'Инди океанӗнчи Британи территорийӗ',
         'IQ' => 'Ирак',
         'IR' => 'Иран',
         'IS' => 'Исланди',
@@ -116,19 +120,19 @@
         'JO' => 'Иордани',
         'JP' => 'Япони',
         'KE' => 'Кени',
-        'KG' => 'Киргизи',
+        'KG' => 'Кӑркӑсстан',
         'KH' => 'Камбоджа',
         'KI' => 'Кирибати',
         'KM' => 'Комор утравӗсем',
-        'KN' => 'Сент-Китс тата Невис',
-        'KP' => 'КХДР',
-        'KR' => 'Корей Республики',
+        'KN' => 'Сент-Китспа Невис',
+        'KP' => 'Ҫур ҫӗр Корея',
+        'KR' => 'Кӑнтӑр Корея',
         'KW' => 'Кувейт',
         'KY' => 'Кайман утравӗсем',
         'KZ' => 'Казахстан',
         'LA' => 'Лаос',
         'LB' => 'Ливан',
-        'LC' => 'Сент-Люсия',
+        'LC' => 'Сент-Люси',
         'LI' => 'Лихтенштейн',
         'LK' => 'Шри-Ланка',
         'LR' => 'Либери',
@@ -143,19 +147,19 @@
         'ME' => 'Черногори',
         'MF' => 'Сен-Мартен',
         'MG' => 'Мадагаскар',
-        'MH' => 'Маршаллов утравӗсем',
-        'MK' => 'Ҫурҫӗр Македони',
+        'MH' => 'Маршалл утравӗсем',
+        'MK' => 'Ҫур ҫӗр Македони',
         'ML' => 'Мали',
         'MM' => 'Мьянма (Бирма)',
         'MN' => 'Монголи',
-        'MO' => 'Макао (САР)',
-        'MP' => 'Ҫурҫӗр Мариан утравӗсем',
+        'MO' => 'Макао (ЯАР)',
+        'MP' => 'Ҫур ҫӗр Мариан утравӗсем',
         'MQ' => 'Мартиника',
         'MR' => 'Мавритани',
         'MS' => 'Монтсеррат',
         'MT' => 'Мальта',
         'MU' => 'Маврики',
-        'MV' => 'Мальдивсем',
+        'MV' => 'Мальдив',
         'MW' => 'Малави',
         'MX' => 'Мексика',
         'MY' => 'Малайзи',
@@ -175,15 +179,15 @@
         'OM' => 'Оман',
         'PA' => 'Панама',
         'PE' => 'Перу',
-        'PF' => 'Франци Полинези',
-        'PG' => 'Папуа — Ҫӗнӗ Гвиней',
-        'PH' => 'Филиппинсем',
+        'PF' => 'Франци Полинезийӗ',
+        'PG' => 'Папуа — Ҫӗнӗ Гвинея',
+        'PH' => 'Филиппин',
         'PK' => 'Пакистан',
         'PL' => 'Польша',
-        'PM' => 'Сен-Пьер & Микелон',
+        'PM' => 'Сен-Пьерпа Микелон',
         'PN' => 'Питкэрн утравӗсем',
         'PR' => 'Пуэрто-Рико',
-        'PS' => 'Палестинӑн территорийӗсем',
+        'PS' => 'Палестина территорийӗсем',
         'PT' => 'Португали',
         'PW' => 'Палау',
         'PY' => 'Парагвай',
@@ -201,7 +205,7 @@
         'SG' => 'Сингапур',
         'SH' => 'Сӑваплӑ Елена утравӗ',
         'SI' => 'Словени',
-        'SJ' => 'Шпицберген тата Ян-Майен',
+        'SJ' => 'Шпицбергенпа Ян-Майен',
         'SK' => 'Словаки',
         'SL' => 'Сьерра-Леоне',
         'SM' => 'Сан-Марино',
@@ -209,41 +213,41 @@
         'SO' => 'Сомали',
         'SR' => 'Суринам',
         'SS' => 'Кӑнтӑр Судан',
-        'ST' => 'Сан-Томе тата Принсипи',
+        'ST' => 'Сан-Томепе Принсипи',
         'SV' => 'Сальвадор',
         'SX' => 'Синт-Мартен',
         'SY' => 'Сири',
         'SZ' => 'Эсватини',
-        'TC' => 'Тёркс тата Кайкос утравӗсем',
+        'TC' => 'Тёркспа Кайкос утравӗсем',
         'TD' => 'Чад',
-        'TF' => 'Франци Кӑнтӑр территорийӗсем',
+        'TF' => 'Францин Кӑнтӑр территорийӗсем',
         'TG' => 'Того',
         'TH' => 'Таиланд',
         'TJ' => 'Таджикистан',
         'TK' => 'Токелау',
-        'TL' => 'Хӗвелтухӑҫ Тимор',
+        'TL' => 'Тухӑҫ Тимор',
         'TM' => 'Туркменистан',
         'TN' => 'Тунис',
         'TO' => 'Тонга',
         'TR' => 'Турци',
-        'TT' => 'Тринидад тата Тобаго',
+        'TT' => 'Тринидадпа Тобаго',
         'TV' => 'Тувалу',
         'TW' => 'Тайвань',
         'TZ' => 'Танзани',
         'UA' => 'Украина',
         'UG' => 'Уганда',
-        'UM' => 'Тулашӗнчи утравӗсем (АПШ)',
-        'US' => 'Пӗрлешӗннӗ Штатсем',
+        'UM' => 'АПШ-н тулаш пӗчӗк утравӗсем',
+        'US' => 'Пӗрлешнӗ Штатсем',
         'UY' => 'Уругвай',
         'UZ' => 'Узбекистан',
         'VA' => 'Ватикан',
-        'VC' => 'Сент-Винсент тата Гренадины',
+        'VC' => 'Сент-Винсентпа Гренада',
         'VE' => 'Венесуэла',
-        'VG' => 'Британин Виргини утравӗсем',
-        'VI' => 'Виргини утравӗсем (АПШ)',
+        'VG' => 'Виргин утравӗсем (Британи)',
+        'VI' => 'Виргин утравӗсем (АПШ)',
         'VN' => 'Вьетнам',
         'VU' => 'Вануату',
-        'WF' => 'Уоллис тата Футуна',
+        'WF' => 'Уоллиспа Футуна',
         'WS' => 'Самоа',
         'YE' => 'Йемен',
         'YT' => 'Майотта',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/cy.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emiradau Arabaidd Unedig',
@@ -179,7 +182,7 @@
         'PF' => 'Polynesia Ffrengig',
         'PG' => 'Papua Guinea Newydd',
         'PH' => 'Y Philipinau',
-        'PK' => 'Pakistan',
+        'PK' => 'Pacistan',
         'PL' => 'Gwlad Pwyl',
         'PM' => 'Saint-Pierre-et-Miquelon',
         'PN' => 'Ynysoedd Pitcairn',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/da.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/da.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/da.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/da.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'De Forenede Arabiske Emirater',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de_AT.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de_AT.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de_AT.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de_AT.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'SJ' => 'Svalbard und Jan Mayen',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de_CH.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de_CH.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de_CH.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de_CH.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BN' => 'Brunei',
         'BW' => 'Botswana',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/de.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Vereinigte Arabische Emirate',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/dz.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/dz.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/dz.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/dz.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'ཨཱན་དོ་ར',
         'AE' => 'ཡུ་ནཱའི་ཊེཌ་ ཨ་རབ་ ཨེ་མེ་རེཊས',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ee.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ee.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ee.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ee.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andorra nutome',
         'AE' => 'United Arab Emirates nutome',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/el.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/el.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/el.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/el.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Κοσσυφοπέδιο',
+    ],
     'Names' => [
         'AD' => 'Ανδόρα',
         'AE' => 'Ηνωμένα Αραβικά Εμιράτα',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_001.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_001.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_001.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_001.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BL' => 'St Barthélemy',
         'KN' => 'St Kitts & Nevis',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_AU.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_AU.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_AU.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_AU.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,11 +1,19 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
-        'BL' => 'St. Barthélemy',
-        'KN' => 'St. Kitts & Nevis',
-        'LC' => 'St. Lucia',
-        'MF' => 'St. Martin',
-        'VC' => 'St. Vincent & Grenadines',
+        'AG' => 'Antigua and Barbuda',
+        'BA' => 'Bosnia and Herzegovina',
+        'GS' => 'South Georgia and South Sandwich Islands',
+        'HM' => 'Heard Island and McDonald Islands',
+        'KN' => 'St Kitts and Nevis',
+        'PM' => 'St Pierre and Miquelon',
+        'SJ' => 'Svalbard and Jan Mayen',
+        'ST' => 'São Tomé and Príncipe',
+        'TC' => 'Turks and Caicos Islands',
+        'TT' => 'Trinidad and Tobago',
+        'VC' => 'St Vincent and the Grenadines',
+        'WF' => 'Wallis and Futuna',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_CA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_CA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_CA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en_CA.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AG' => 'Antigua and Barbuda',
         'BA' => 'Bosnia and Herzegovina',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/en.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'United Arab Emirates',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/eo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/eo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/eo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/eo.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andoro',
         'AE' => 'Unuiĝintaj Arabaj Emirlandoj',
@@ -12,9 +15,11 @@
         'AO' => 'Angolo',
         'AQ' => 'Antarkto',
         'AR' => 'Argentino',
+        'AS' => 'Usona Samoo',
         'AT' => 'Aŭstrujo',
         'AU' => 'Aŭstralio',
         'AW' => 'Arubo',
+        'AX' => 'Alando',
         'AZ' => 'Azerbajĝano',
         'BA' => 'Bosnujo kaj Hercegovino',
         'BB' => 'Barbado',
@@ -25,17 +30,22 @@
         'BH' => 'Barejno',
         'BI' => 'Burundo',
         'BJ' => 'Benino',
+        'BL' => 'Sankta Bartolomeo',
         'BM' => 'Bermudoj',
         'BN' => 'Brunejo',
         'BO' => 'Bolivio',
+        'BQ' => 'Kariba Nederlando',
         'BR' => 'Brazilo',
         'BS' => 'Bahamoj',
         'BT' => 'Butano',
+        'BV' => 'Buvetinsulo',
         'BW' => 'Bocvano',
         'BY' => 'Belorusujo',
         'BZ' => 'Belizo',
         'CA' => 'Kanado',
-        'CF' => 'Centr-Afrika Respubliko',
+        'CC' => 'Kokosinsuloj',
+        'CD' => 'Kongo Kinŝasa',
+        'CF' => 'Centr-Afriko',
         'CG' => 'Kongo Brazavila',
         'CH' => 'Svisujo',
         'CI' => 'Ebur-Bordo',
@@ -47,13 +57,15 @@
         'CR' => 'Kostariko',
         'CU' => 'Kubo',
         'CV' => 'Kaboverdo',
+        'CW' => 'Kuracao',
+        'CX' => 'Kristnaskinsulo',
         'CY' => 'Kipro',
         'CZ' => 'Ĉeĥujo',
         'DE' => 'Germanujo',
         'DJ' => 'Ĝibutio',
         'DK' => 'Danujo',
         'DM' => 'Dominiko',
-        'DO' => 'Domingo',
+        'DO' => 'Dominika Respubliko',
         'DZ' => 'Alĝerio',
         'EC' => 'Ekvadoro',
         'EE' => 'Estonujo',
@@ -63,7 +75,8 @@
         'ES' => 'Hispanujo',
         'ET' => 'Etiopujo',
         'FI' => 'Finnlando',
-        'FJ' => 'Fiĝoj',
+        'FJ' => 'Fiĝio',
+        'FK' => 'Falklandoj',
         'FM' => 'Mikronezio',
         'FO' => 'Ferooj',
         'FR' => 'Francujo',
@@ -71,7 +84,8 @@
         'GB' => 'Unuiĝinta Reĝlando',
         'GD' => 'Grenado',
         'GE' => 'Kartvelujo',
-        'GF' => 'Franca Gviano',
+        'GF' => 'Franca Gujano',
+        'GG' => 'Gernezejo',
         'GH' => 'Ganao',
         'GI' => 'Ĝibraltaro',
         'GL' => 'Gronlando',
@@ -85,6 +99,7 @@
         'GU' => 'Gvamo',
         'GW' => 'Gvineo-Bisaŭo',
         'GY' => 'Gujano',
+        'HK' => 'Honkongo (SAR de Ĉinujo)',
         'HM' => 'Herda kaj Makdonaldaj Insuloj',
         'HN' => 'Honduro',
         'HR' => 'Kroatujo',
@@ -93,11 +108,14 @@
         'ID' => 'Indonezio',
         'IE' => 'Irlando',
         'IL' => 'Israelo',
+        'IM' => 'Manksinsulo',
         'IN' => 'Hindujo',
+        'IO' => 'Brita Hindoceana Teritorio',
         'IQ' => 'Irako',
         'IR' => 'Irano',
         'IS' => 'Islando',
         'IT' => 'Italujo',
+        'JE' => 'Ĵerzejo',
         'JM' => 'Jamajko',
         'JO' => 'Jordanio',
         'JP' => 'Japanujo',
@@ -107,10 +125,10 @@
         'KI' => 'Kiribato',
         'KM' => 'Komoroj',
         'KN' => 'Sankta Kristoforo kaj Neviso',
-        'KP' => 'Nord-Koreo',
-        'KR' => 'Sud-Koreo',
+        'KP' => 'Nord-Koreujo',
+        'KR' => 'Sud-Koreujo',
         'KW' => 'Kuvajto',
-        'KY' => 'Kejmanoj',
+        'KY' => 'Kajmana Insularo',
         'KZ' => 'Kazaĥujo',
         'LA' => 'Laoso',
         'LB' => 'Libano',
@@ -126,14 +144,19 @@
         'MA' => 'Maroko',
         'MC' => 'Monako',
         'MD' => 'Moldavujo',
+        'ME' => 'Montenegro',
+        'MF' => 'Saint-Martin',
         'MG' => 'Madagaskaro',
         'MH' => 'Marŝaloj',
+        'MK' => 'Nord-Makedonujo',
         'ML' => 'Malio',
         'MM' => 'Birmo',
         'MN' => 'Mongolujo',
+        'MO' => 'Makao (SAR de Ĉinujo)',
         'MP' => 'Nord-Marianoj',
         'MQ' => 'Martiniko',
-        'MR' => 'Maŭritanujo',
+        'MR' => 'Maŭritanio',
+        'MS' => 'Moncerato',
         'MT' => 'Malto',
         'MU' => 'Maŭricio',
         'MV' => 'Maldivoj',
@@ -164,12 +187,14 @@
         'PM' => 'Sankta Piero kaj Mikelono',
         'PN' => 'Pitkarna Insulo',
         'PR' => 'Puertoriko',
+        'PS' => 'Palestinaj teritorioj',
         'PT' => 'Portugalujo',
         'PW' => 'Palaŭo',
         'PY' => 'Paragvajo',
         'QA' => 'Kataro',
         'RE' => 'Reunio',
         'RO' => 'Rumanujo',
+        'RS' => 'Serbujo',
         'RU' => 'Rusujo',
         'RW' => 'Ruando',
         'SA' => 'Sauda Arabujo',
@@ -187,14 +212,20 @@
         'SN' => 'Senegalo',
         'SO' => 'Somalujo',
         'SR' => 'Surinamo',
+        'SS' => 'Sud-Sudano',
         'ST' => 'Santomeo kaj Principeo',
         'SV' => 'Salvadoro',
+        'SX' => 'Sint-Maarten',
         'SY' => 'Sirio',
         'SZ' => 'Svazilando',
+        'TC' => 'Turkoj kaj Kajkoj',
         'TD' => 'Ĉado',
+        'TF' => 'Francaj Sudaj Teritorioj',
         'TG' => 'Togolando',
         'TH' => 'Tajlando',
         'TJ' => 'Taĝikujo',
+        'TK' => 'Tokelao',
+        'TL' => 'Orienta Timoro',
         'TM' => 'Turkmenujo',
         'TN' => 'Tunizio',
         'TO' => 'Tongo',
@@ -214,7 +245,7 @@
         'VE' => 'Venezuelo',
         'VG' => 'Britaj Virgulininsuloj',
         'VI' => 'Usonaj Virgulininsuloj',
-        'VN' => 'Vjetnamo',
+        'VN' => 'Vjetnamujo',
         'VU' => 'Vanuatuo',
         'WF' => 'Valiso kaj Futuno',
         'WS' => 'Samoo',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_419.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_419.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_419.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_419.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AX' => 'Islas Åland',
         'BA' => 'Bosnia-Herzegovina',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_AR.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_AR.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_AR.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_AR.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_BO.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_BO.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_BO.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_BO.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CL.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CL.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CL.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CL.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'EH' => 'Sahara Occidental',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CO.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CO.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CO.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CO.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CR.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CR.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CR.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_CR.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_DO.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_DO.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_DO.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_DO.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_EC.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_EC.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_EC.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_EC.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_GT.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_GT.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_GT.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_GT.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_HN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_HN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_HN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_HN.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_MX.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_MX.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_MX.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_MX.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'CI' => 'Côte d’Ivoire',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_NI.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_NI.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_NI.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_NI.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PA.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PE.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PE.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PE.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PE.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emiratos Árabes Unidos',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PR.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PR.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PR.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PR.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'UM' => 'Islas menores alejadas de EE. UU.',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PY.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PY.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PY.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_PY.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_SV.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_SV.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_SV.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_SV.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'UM' => 'Islas menores alejadas de EE. UU.',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_US.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_US.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_US.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_US.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'EH' => 'Sahara Occidental',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_VE.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_VE.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_VE.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/es_VE.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia y Herzegovina',
         'TL' => 'Timor-Leste',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/et.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/et.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/et.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/et.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Araabia Ühendemiraadid',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/eu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/eu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/eu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/eu.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Arabiar Emirerri Batuak',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fa_AF.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fa_AF.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fa_AF.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fa_AF.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'کوسوا',
+    ],
     'Names' => [
         'AD' => 'اندورا',
         'AG' => 'انتیگوا و باربودا',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fa.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'کوزوو',
+    ],
     'Names' => [
         'AD' => 'آندورا',
         'AE' => 'امارات متحدهٔ عربی',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ff_Adlm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ff_Adlm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ff_Adlm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ff_Adlm.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => '𞤑𞤮𞥅𞤧𞤮𞤾𞤮𞥅',
+    ],
     'Names' => [
         'AD' => '𞤀𞤲𞤣𞤮𞤪𞤢𞥄',
         'AE' => '𞤁𞤫𞤲𞤼𞤢𞤤 𞤋𞤥𞤪𞤢𞥄𞤼𞤭 𞤀𞥄𞤪𞤢𞤦𞤵',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ff.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ff.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ff.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ff.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Anndoora',
         'AE' => 'Emiraat Araab Denntuɗe',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fi.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Arabiemiirikunnat',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fo.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Sameindu Emirríkini',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr_BE.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr_BE.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr_BE.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr_BE.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'GS' => 'Îles Géorgie du Sud et Sandwich du Sud',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr_CA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr_CA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr_CA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr_CA.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AX' => 'îles d’Åland',
         'BN' => 'Brunéi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fr.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorre',
         'AE' => 'Émirats arabes unis',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/fy.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Verenigde Arabyske Emiraten',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ga.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ga.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ga.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ga.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'an Chosaiv',
+    ],
     'Names' => [
         'AD' => 'Andóra',
         'AE' => 'Aontas na nÉimíríochtaí Arabacha',
@@ -45,7 +48,7 @@
         'CF' => 'Poblacht na hAfraice Láir',
         'CG' => 'Congó-Brazzaville',
         'CH' => 'an Eilvéis',
-        'CI' => 'An Cósta Eabhair',
+        'CI' => 'Côte d’Ivoire',
         'CK' => 'Oileáin Cook',
         'CL' => 'an tSile',
         'CM' => 'Camarún',
@@ -53,7 +56,7 @@
         'CO' => 'an Cholóim',
         'CR' => 'Cósta Ríce',
         'CU' => 'Cúba',
-        'CV' => 'Rinn Verde',
+        'CV' => 'Poblacht Cabo Verde',
         'CW' => 'Cúrasó',
         'CX' => 'Oileán na Nollag',
         'CY' => 'an Chipir',
@@ -63,11 +66,11 @@
         'DK' => 'an Danmhairg',
         'DM' => 'Doiminice',
         'DO' => 'an Phoblacht Dhoiminiceach',
-        'DZ' => 'An Ailgéir',
+        'DZ' => 'an Ailgéir',
         'EC' => 'Eacuadór',
         'EE' => 'an Eastóin',
-        'EG' => 'An Éigipt',
-        'EH' => 'An Sahára Thiar',
+        'EG' => 'an Éigipt',
+        'EH' => 'an Sahára Thiar',
         'ER' => 'an Eiritré',
         'ES' => 'an Spáinn',
         'ET' => 'an Aetóip',
@@ -86,8 +89,8 @@
         'GH' => 'Gána',
         'GI' => 'Giobráltar',
         'GL' => 'an Ghraonlainn',
-        'GM' => 'An Ghaimbia',
-        'GN' => 'An Ghuine',
+        'GM' => 'an Ghaimbia',
+        'GN' => 'an Ghuine',
         'GP' => 'Guadalúip',
         'GQ' => 'an Ghuine Mheánchiorclach',
         'GR' => 'an Ghréig',
@@ -132,12 +135,12 @@
         'LC' => 'Saint Lucia',
         'LI' => 'Lichtinstéin',
         'LK' => 'Srí Lanca',
-        'LR' => 'An Libéir',
+        'LR' => 'an Libéir',
         'LS' => 'Leosóta',
         'LT' => 'an Liotuáin',
         'LU' => 'Lucsamburg',
         'LV' => 'an Laitvia',
-        'LY' => 'An Libia',
+        'LY' => 'an Libia',
         'MA' => 'Maracó',
         'MC' => 'Monacó',
         'MD' => 'an Mholdóiv',
@@ -152,7 +155,7 @@
         'MO' => 'Sainréigiún Riaracháin Macao, Daonphoblacht na Síne',
         'MP' => 'Na hOileáin Mháirianacha Thuaidh',
         'MQ' => 'Martinique',
-        'MR' => 'An Mháratái',
+        'MR' => 'an Mháratáin',
         'MS' => 'Montsarat',
         'MT' => 'Málta',
         'MU' => 'Oileán Mhuirís',
@@ -163,9 +166,9 @@
         'MZ' => 'Mósaimbíc',
         'NA' => 'an Namaib',
         'NC' => 'an Nua-Chaladóin',
-        'NE' => 'An Nígir',
+        'NE' => 'an Nígir',
         'NF' => 'Oileán Norfolk',
-        'NG' => 'An Nigéir',
+        'NG' => 'an Nigéir',
         'NI' => 'Nicearagua',
         'NL' => 'an Ísiltír',
         'NO' => 'an Iorua',
@@ -197,7 +200,7 @@
         'SA' => 'an Araib Shádach',
         'SB' => 'Oileáin Sholaimh',
         'SC' => 'na Séiséil',
-        'SD' => 'An tSúdáin',
+        'SD' => 'an tSúdáin',
         'SE' => 'an tSualainn',
         'SG' => 'Singeapór',
         'SH' => 'San Héilin',
@@ -206,7 +209,7 @@
         'SK' => 'an tSlóvaic',
         'SL' => 'Siarra Leon',
         'SM' => 'San Mairíne',
-        'SN' => 'An tSeineagáil',
+        'SN' => 'an tSeineagáil',
         'SO' => 'an tSomáil',
         'SR' => 'Suranam',
         'SS' => 'an tSúdáin Theas',
@@ -214,7 +217,7 @@
         'SV' => 'An tSalvadóir',
         'SX' => 'Sint Maarten',
         'SY' => 'an tSiria',
-        'SZ' => 'eSuaitíní',
+        'SZ' => 'Esuaitíní',
         'TC' => 'Oileáin na dTurcach agus Caicos',
         'TD' => 'Sead',
         'TF' => 'Críocha Francacha Dheisceart an Domhain',
@@ -224,7 +227,7 @@
         'TK' => 'Tócalá',
         'TL' => 'Tíomór Thoir',
         'TM' => 'an Tuircméanastáin',
-        'TN' => 'An Tuinéis',
+        'TN' => 'an Tuinéis',
         'TO' => 'Tonga',
         'TR' => 'an Tuirc',
         'TT' => 'Oileán na Tríonóide agus Tobága',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gd.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'A’ Chosobho',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Na h-Iomaratan Arabach Aonaichte',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gl.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emiratos Árabes Unidos',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gu.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,8 +1,11 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'કોસોવો',
+    ],
     'Names' => [
-        'AD' => 'ઍંડોરા',
+        'AD' => 'એન્ડોરા',
         'AE' => 'યુનાઇટેડ આરબ અમીરાત',
         'AF' => 'અફઘાનિસ્તાન',
         'AG' => 'ઍન્ટિગુઆ અને બર્મુડા',
@@ -16,7 +19,7 @@
         'AT' => 'ઑસ્ટ્રિયા',
         'AU' => 'ઑસ્ટ્રેલિયા',
         'AW' => 'અરુબા',
-        'AX' => 'ઑલેન્ડ આઇલેન્ડ્સ',
+        'AX' => 'ઑલૅન્ડ આઇલૅન્ડ્સ',
         'AZ' => 'અઝરબૈજાન',
         'BA' => 'બોસ્નિયા અને હર્ઝેગોવિના',
         'BB' => 'બારબાડોસ',
@@ -35,12 +38,12 @@
         'BR' => 'બ્રાઝિલ',
         'BS' => 'બહામાસ',
         'BT' => 'ભૂટાન',
-        'BV' => 'બૌવેત આઇલેન્ડ',
+        'BV' => 'બૌવેત આઇલૅન્ડ',
         'BW' => 'બોત્સ્વાના',
         'BY' => 'બેલારુસ',
         'BZ' => 'બેલીઝ',
         'CA' => 'કેનેડા',
-        'CC' => 'કોકોઝ (કીલીંગ) આઇલેન્ડ્સ',
+        'CC' => 'કોકોઝ (કીલીંગ) આઇલૅન્ડ્સ',
         'CD' => 'કોંગો - કિંશાસા',
         'CF' => 'સેન્ટ્રલ આફ્રિકન રિપબ્લિક',
         'CG' => 'કોંગો - બ્રાઝાવિલે',
@@ -50,12 +53,12 @@
         'CL' => 'ચિલી',
         'CM' => 'કૅમરૂન',
         'CN' => 'ચીન',
-        'CO' => 'કોલમ્બિયા',
+        'CO' => 'કોલંબિયા',
         'CR' => 'કોસ્ટા રિકા',
         'CU' => 'ક્યુબા',
         'CV' => 'કૅપ વર્ડે',
         'CW' => 'ક્યુરાસાઓ',
-        'CX' => 'ક્રિસમસ આઇલેન્ડ',
+        'CX' => 'ક્રિસમસ આઇલૅન્ડ',
         'CY' => 'સાયપ્રસ',
         'CZ' => 'ચેકીયા',
         'DE' => 'જર્મની',
@@ -73,9 +76,9 @@
         'ET' => 'ઇથિઓપિયા',
         'FI' => 'ફિનલેન્ડ',
         'FJ' => 'ફીજી',
-        'FK' => 'ફૉકલેન્ડ આઇલેન્ડ્સ',
+        'FK' => 'ફૉકલૅન્ડ આઇલૅન્ડ્સ',
         'FM' => 'માઇક્રોનેશિયા',
-        'FO' => 'ફેરો આઇલેન્ડ્સ',
+        'FO' => 'ફેરો આઇલૅન્ડ્સ',
         'FR' => 'ફ્રાંસ',
         'GA' => 'ગેબન',
         'GB' => 'યુનાઇટેડ કિંગડમ',
@@ -97,20 +100,20 @@
         'GW' => 'ગિની-બિસાઉ',
         'GY' => 'ગયાના',
         'HK' => 'હોંગકોંગ SAR ચીન',
-        'HM' => 'હર્ડ અને મેકડોનાલ્ડ આઇલેન્ડ્સ',
+        'HM' => 'હર્ડ અને મેકડોનાલ્ડ આઇલૅન્ડ્સ',
         'HN' => 'હોન્ડુરસ',
         'HR' => 'ક્રોએશિયા',
         'HT' => 'હૈતિ',
         'HU' => 'હંગેરી',
         'ID' => 'ઇન્ડોનેશિયા',
-        'IE' => 'આયર્લેન્ડ',
+        'IE' => 'આયરલૅન્ડ',
         'IL' => 'ઇઝરાઇલ',
         'IM' => 'આઇલ ઑફ મેન',
         'IN' => 'ભારત',
         'IO' => 'બ્રિટિશ ઇન્ડિયન ઓશન ટેરિટરી',
         'IQ' => 'ઇરાક',
         'IR' => 'ઈરાન',
-        'IS' => 'આઇસલેન્ડ',
+        'IS' => 'આઇસલૅન્ડ',
         'IT' => 'ઇટાલી',
         'JE' => 'જર્સી',
         'JM' => 'જમૈકા',
@@ -172,7 +175,7 @@
         'NP' => 'નેપાળ',
         'NR' => 'નૌરુ',
         'NU' => 'નીયુ',
-        'NZ' => 'ન્યુઝીલેન્ડ',
+        'NZ' => 'ન્યુઝીલૅન્ડ',
         'OM' => 'ઓમાન',
         'PA' => 'પનામા',
         'PE' => 'પેરુ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/gv.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'GB' => 'Rywvaneth Unys',
         'IM' => 'Ellan Vannin',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ha.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ha.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ha.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ha.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kasar Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Haɗaɗɗiyar Daular Larabawa',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/he.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/he.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/he.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/he.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'קוסובו',
+    ],
     'Names' => [
         'AD' => 'אנדורה',
         'AE' => 'איחוד האמירויות הערביות',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hi_Latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hi_Latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hi_Latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hi_Latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AX' => 'Aland Islands',
         'BL' => 'St. Barthelemy',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hi.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'कोसोवो',
+    ],
     'Names' => [
         'AD' => 'एंडोरा',
         'AE' => 'संयुक्त अरब अमीरात',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hr.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Ujedinjeni Arapski Emirati',
@@ -75,7 +78,7 @@
         'FJ' => 'Fidži',
         'FK' => 'Falklandski Otoci',
         'FM' => 'Mikronezija',
-        'FO' => 'Ovčji Otoci',
+        'FO' => 'Farski Otoci',
         'FR' => 'Francuska',
         'GA' => 'Gabon',
         'GB' => 'Ujedinjeno Kraljevstvo',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hu.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Koszovó',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Egyesült Arab Emírségek',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/hy.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Կոսովո',
+    ],
     'Names' => [
         'AD' => 'Անդորրա',
         'AE' => 'Արաբական Միացյալ Էմիրություններ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ia.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ia.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ia.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ia.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emiratos Arabe Unite',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/id.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/id.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/id.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/id.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Uni Emirat Arab',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ie.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ie.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ie.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ie.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,13 +1,19 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
+        'AD' => 'Andorra',
         'AL' => 'Albania',
         'AQ' => 'Antarctica',
         'AT' => 'Austria',
+        'AX' => 'Insules Åland',
         'BA' => 'Bosnia e Herzegovina',
         'BE' => 'Belgia',
         'BG' => 'Bulgaria',
+        'BY' => 'Bielorussia',
         'CH' => 'Svissia',
         'CZ' => 'Tchekia',
         'DE' => 'Germania',
@@ -20,20 +26,28 @@
         'FJ' => 'Fidji',
         'FR' => 'Francia',
         'GB' => 'Unit Reyia',
+        'GG' => 'Guernsey',
+        'GI' => 'Gibraltar',
         'GR' => 'Grecia',
         'GY' => 'Guyana',
         'HR' => 'Croatia',
         'HU' => 'Hungaria',
         'ID' => 'Indonesia',
         'IE' => 'Irland',
+        'IM' => 'Insul de Man',
         'IN' => 'India',
         'IR' => 'Iran',
         'IS' => 'Island',
         'IT' => 'Italia',
+        'JE' => 'Jersey',
         'KH' => 'Cambodja',
+        'LI' => 'Liechtenstein',
         'LK' => 'Sri-Lanka',
+        'LT' => 'Lituania',
         'LU' => 'Luxemburg',
+        'LV' => 'Lettonia',
         'MC' => 'Mónaco',
+        'MD' => 'Moldova',
         'ME' => 'Montenegro',
         'MK' => 'Nord-Macedonia',
         'MQ' => 'Martinica',
@@ -41,6 +55,8 @@
         'MU' => 'Mauricio',
         'MV' => 'Maldivas',
         'NF' => 'Insul Norfolk',
+        'NL' => 'Nederland',
+        'NO' => 'Norvegia',
         'NR' => 'Nauru',
         'NZ' => 'Nov-Zeland',
         'PE' => 'Perú',
@@ -55,6 +71,7 @@
         'RU' => 'Russia',
         'SE' => 'Svedia',
         'SI' => 'Slovenia',
+        'SJ' => 'Svalbard e Jan Mayen',
         'SK' => 'Slovakia',
         'SM' => 'San-Marino',
         'SX' => 'Sint-Maarten',
@@ -65,6 +82,7 @@
         'TT' => 'Trinidad e Tobago',
         'TV' => 'Tuvalu',
         'UA' => 'Ukraina',
+        'VA' => 'Cité de Vatican',
         'VU' => 'Vanuatu',
         'WS' => 'Samoa',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ig.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ig.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'United Arab Emirates',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ii.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ii.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ii.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ii.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BE' => 'ꀘꆹꏃ',
         'BR' => 'ꀠꑭ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/in.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/in.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/in.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/in.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Uni Emirat Arab',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/is.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/is.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/is.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/is.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kósóvó',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Sameinuðu arabísku furstadæmin',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/it.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/it.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/it.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/it.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emirati Arabi Uniti',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/iw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/iw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/iw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/iw.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'קוסובו',
+    ],
     'Names' => [
         'AD' => 'אנדורה',
         'AE' => 'איחוד האמירויות הערביות',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ja.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ja.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ja.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ja.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'コソボ',
+    ],
     'Names' => [
         'AD' => 'アンドラ',
         'AE' => 'アラブ首長国連邦',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/jv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/jv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/jv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/jv.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Uni Émirat Arab',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ka.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ka.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ka.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ka.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'კოსოვო',
+    ],
     'Names' => [
         'AD' => 'ანდორა',
         'AE' => 'არაბთა გაერთიანებული საამიროები',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ki.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ki.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ki.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ki.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Falme za Kiarabu',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kk_Arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kk_Arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kk_Arab.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kk_Arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,258 @@
+<?php
+
+return [
+    'UserAssignedNames' => [
+        'XK' => 'كوسوۆو',
+    ],
+    'Names' => [
+        'AD' => 'اندوررا',
+        'AE' => 'بىرىككەن اراب امىرلىكتەرى',
+        'AF' => 'اۋعانستان',
+        'AG' => 'انتيگۋا جانە باربۋدا',
+        'AI' => 'انگيليا',
+        'AL' => 'البانيا',
+        'AM' => 'ارمەنيا',
+        'AO' => 'انگولا',
+        'AQ' => 'انتاركتيدا',
+        'AR' => 'ارگەنتينا',
+        'AS' => 'امەريكالىق ساموا',
+        'AT' => 'اۋستريا',
+        'AU' => 'اۋستراليا',
+        'AW' => 'ارۋبا',
+        'AX' => 'الاند ارالدارى',
+        'AZ' => 'ءازىربايجان',
+        'BA' => 'بوسنيا جانە گەرتسەگوۆينا',
+        'BB' => 'باربادوس',
+        'BD' => 'بانگلادەش',
+        'BE' => 'بەلگيا',
+        'BF' => 'بۋركينا-فاسو',
+        'BG' => 'بولگاريا',
+        'BH' => 'باحرەين',
+        'BI' => 'بۋرۋندي',
+        'BJ' => 'بەنين',
+        'BL' => 'سان-بارتەمەلي',
+        'BM' => 'بەرمۋد ارالدارى',
+        'BN' => 'برۋنەي',
+        'BO' => 'بوليۆيا',
+        'BQ' => 'بونەير، سينت-ەستاتيۋس جانە سابا',
+        'BR' => 'برازيليا',
+        'BS' => 'باگام ارالدارى',
+        'BT' => 'بۋتان',
+        'BV' => 'بۋۆە ارالى',
+        'BW' => 'بوتسۆانا',
+        'BY' => 'بەلارۋس',
+        'BZ' => 'بەليز',
+        'CA' => 'كانادا',
+        'CC' => 'كوكوس (كيليڭ) ارالدارى',
+        'CD' => 'كونگو',
+        'CF' => 'ورتالىق افريكا رەسپۋبليكاسى',
+        'CG' => 'كونگو-براززاۆيل رەسپۋبليكاسى',
+        'CH' => 'شۆەيساريا',
+        'CI' => 'كوت-ديۆۋار',
+        'CK' => 'كۋك ارالدارى',
+        'CL' => 'چيلي',
+        'CM' => 'كامەرۋن',
+        'CN' => 'قىتاي',
+        'CO' => 'كولۋمبيا',
+        'CR' => 'كوستا-ريكا',
+        'CU' => 'كۋبا',
+        'CV' => 'كابو-ۆەردە',
+        'CW' => 'كيۋراساو',
+        'CX' => 'حريستماس ارالى',
+        'CY' => 'كيپر',
+        'CZ' => 'چەحيا',
+        'DE' => 'گەرمانيا',
+        'DJ' => 'دجيبۋتي',
+        'DK' => 'دانيا',
+        'DM' => 'دومينيكا',
+        'DO' => 'دومينيكان رەسپۋبليكاسى',
+        'DZ' => 'الجىر',
+        'EC' => 'ەكۆادور',
+        'EE' => 'ەستونيا',
+        'EG' => 'مىسىر',
+        'EH' => 'باتىس ساحارا',
+        'ER' => 'ەريترەيا',
+        'ES' => 'يسپانيا',
+        'ET' => 'ەفيوپيا',
+        'FI' => 'فينليانديا',
+        'FJ' => 'فيجي',
+        'FK' => 'فولكلەند ارالدارى',
+        'FM' => 'ميكرونەزيا',
+        'FO' => 'فارەر ارالدارى',
+        'FR' => 'فرانسيا',
+        'GA' => 'گابون',
+        'GB' => 'ۇلىبريتانيا',
+        'GD' => 'گرەنادا',
+        'GE' => 'گرۋزيا',
+        'GF' => 'فرانسۋز گۆياناسى',
+        'GG' => 'گەرنسي',
+        'GH' => 'گانا',
+        'GI' => 'گيبرالتار',
+        'GL' => 'گرەنلانديا',
+        'GM' => 'گامبيا',
+        'GN' => 'گۆەنيا',
+        'GP' => 'گۆادەلۋپا',
+        'GQ' => 'ەكۆاتورلىق گۆينەيا',
+        'GR' => 'گرەكيا',
+        'GS' => 'وڭتۇستىك گەورگيا جانە وڭتۇستىك ساندۆيچ ارالدارى',
+        'GT' => 'گۆاتەمالا',
+        'GU' => 'گۋان',
+        'GW' => 'گۆەنيا-بيساۋ',
+        'GY' => 'گايانا',
+        'HK' => 'حوڭكوڭ',
+        'HM' => 'حەرد ارالى جانە ماكدونالد ارالدارى',
+        'HN' => 'گوندۋراس',
+        'HR' => 'حورۆاتيا',
+        'HT' => 'گايتي',
+        'HU' => 'ماجارستان',
+        'ID' => 'يندونەزيا',
+        'IE' => 'يرلانديا',
+        'IL' => 'يزرايل',
+        'IM' => 'مەن ارالى',
+        'IN' => 'ءۇندىستان',
+        'IO' => 'ءۇندى مۇحيتىنداعى بريتان ايماعى',
+        'IQ' => 'يراك',
+        'IR' => 'يران',
+        'IS' => 'يسلانديا',
+        'IT' => 'يتاليا',
+        'JE' => 'جەرسي',
+        'JM' => 'يامايكا',
+        'JO' => 'يوردانيا',
+        'JP' => 'جاپونيا',
+        'KE' => 'كەنيا',
+        'KG' => 'قىرعىزستان',
+        'KH' => 'كامباجا',
+        'KI' => 'كيريباتي',
+        'KM' => 'كومور ارالدارى',
+        'KN' => 'سەنت-كيتس جانە نەۆيس',
+        'KP' => 'سولتۇستىك كورەيا',
+        'KR' => 'وڭتۇستىك كورەيا',
+        'KW' => 'كۋۆەيت',
+        'KY' => 'كايمان ارالدارى',
+        'KZ' => 'قازاق ەلى',
+        'LA' => 'لاوس',
+        'LB' => 'ليۆان',
+        'LC' => 'سەنت-ليۋسيا',
+        'LI' => 'ليحتەنشتەين',
+        'LK' => 'شري-لانكا',
+        'LR' => 'ليبەريا',
+        'LS' => 'لەسوتو',
+        'LT' => 'ليتۆا',
+        'LU' => 'ليۋكسەمبۋرگ',
+        'LV' => 'لاتۆيا',
+        'LY' => 'ليۆيا',
+        'MA' => 'ماروككو',
+        'MC' => 'موناكو',
+        'MD' => 'مولدوۆا',
+        'ME' => 'چەرنوگوريا',
+        'MF' => 'سەن-مارتەن',
+        'MG' => 'ماداگاسكار',
+        'MH' => 'مارشال ارالدارى',
+        'MK' => 'سولتۇستىك ماكەدونيا',
+        'ML' => 'مالي',
+        'MM' => 'ميانما (بيرما)',
+        'MN' => 'موڭعوليا',
+        'MO' => 'ماكاو',
+        'MP' => 'سولتۇستىك ماريانا ارالدارى',
+        'MQ' => 'مارتينيكا',
+        'MR' => 'ماۆريتانيا',
+        'MS' => 'مونتسەررات',
+        'MT' => 'مالتا',
+        'MU' => 'ماۆريكي',
+        'MV' => 'مالديۆ ارالدارى',
+        'MW' => 'مالاۆي',
+        'MX' => 'مەكسيكا',
+        'MY' => 'مالايزيا',
+        'MZ' => 'موزامبيك',
+        'NA' => 'ناميبيا',
+        'NC' => 'جاڭا كالەدونيا',
+        'NE' => 'نيگەر',
+        'NF' => 'نورفولك ارالى',
+        'NG' => 'نيگەريا',
+        'NI' => 'نيكاراگۋا',
+        'NL' => 'نيدەرلاند',
+        'NO' => 'نورۆەگيا',
+        'NP' => 'نەپال',
+        'NR' => 'ناۋرۋ',
+        'NU' => 'نيۋە',
+        'NZ' => 'جاڭا زەلانديا',
+        'OM' => 'ومان',
+        'PA' => 'پاناما',
+        'PE' => 'پەرۋ',
+        'PF' => 'فرانتسۋز پولينەزياسى',
+        'PG' => 'پاپۋا — جاڭا گۆينەيا',
+        'PH' => 'فيليپين ارالدارى',
+        'PK' => 'پاكىستان',
+        'PL' => 'پولشا',
+        'PM' => 'سەن-پەر جانە ميكەلون',
+        'PN' => 'پيتكەرن ارالدارى',
+        'PR' => 'پۋەرتو-ريكو',
+        'PS' => 'پالەستينا ايماقتارى',
+        'PT' => 'پورتۋگاليا',
+        'PW' => 'پالاۋ',
+        'PY' => 'پاراگۆاي',
+        'QA' => 'كاتار',
+        'RE' => 'رەيۋنيون',
+        'RO' => 'رۋمىنيا',
+        'RS' => 'سەربيا',
+        'RU' => 'حەسەي',
+        'RW' => 'رۋاندا',
+        'SA' => 'ساۋد ارابياسى',
+        'SB' => 'سولومون ارالدارى',
+        'SC' => 'سەيشەل ارالدارى',
+        'SD' => 'سۋدان',
+        'SE' => 'شۆەسيا',
+        'SG' => 'سينگاپۋر',
+        'SH' => 'اۋليە ەلەنا ارالى',
+        'SI' => 'سلوۆەنيا',
+        'SJ' => 'شپيتسبەرگەن جانە يان-مايەن',
+        'SK' => 'سلوۆاكيا',
+        'SL' => 'سەررا-لەونە',
+        'SM' => 'سان-مارينو',
+        'SN' => 'سەنەگال',
+        'SO' => 'سومالي',
+        'SR' => 'سۋرينام',
+        'SS' => 'وڭتۇستىك سۋدان',
+        'ST' => 'سان-تومە جانە پرينسيپي',
+        'SV' => 'سالۆادور',
+        'SX' => 'سينت-مارتەن',
+        'SY' => 'سيريا',
+        'SZ' => 'ەسۆاتيني',
+        'TC' => 'تەركس جانە كايكوس ارالدارى',
+        'TD' => 'چاد',
+        'TF' => 'فرانتسيانىڭ وڭتۇستىك ايماقتارى',
+        'TG' => 'توگو',
+        'TH' => 'تايلاند',
+        'TJ' => 'تاجىكستان',
+        'TK' => 'توكەلاۋ',
+        'TL' => 'تيمور-لەستە',
+        'TM' => 'تۇرىكمەنستان',
+        'TN' => 'تۋنيس',
+        'TO' => 'تونگا',
+        'TR' => 'تۇركيا',
+        'TT' => 'ترينيداد جانە توباگو',
+        'TV' => 'تۋۆالۋ',
+        'TW' => 'تايۋان',
+        'TZ' => 'تانزانيا',
+        'UA' => 'ۋكراينا',
+        'UG' => 'ۋگاندا',
+        'UM' => 'ا ق ش-تىڭ سىرتقى كىشى ارالدارى',
+        'US' => 'امەريكا قۇراما شتاتتارى',
+        'UY' => 'ۋرۋگۆاي',
+        'UZ' => 'وزبەكستان',
+        'VA' => 'ۆاتيكان',
+        'VC' => 'سەنت-ۆينسەنت جانە گرەنادين ارالدارى',
+        'VE' => 'ۆەنەسۋەلا',
+        'VG' => 'بريتاندىق ۆيرگين ارالدارى',
+        'VI' => 'ا ق ش-تىڭ ۆيرگين ارالدارى',
+        'VN' => 'ۆيەتنام',
+        'VU' => 'ۆانۋاتۋ',
+        'WF' => 'ۋولليس جانە فۋتۋنا',
+        'WS' => 'ساموا',
+        'YE' => 'يەمەن',
+        'YT' => 'مايوتتا',
+        'ZA' => 'وڭتۇستىك افريكا',
+        'ZM' => 'زامبيا',
+        'ZW' => 'زيمبابۆە',
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kk.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
         'AE' => 'Біріккен Араб Әмірліктері',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kl.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'GL' => 'Kalaallit Nunaat',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/km.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/km.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/km.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/km.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'កូសូវ៉ូ',
+    ],
     'Names' => [
         'AD' => 'អង់ដូរ៉ា',
         'AE' => 'អេមីរ៉ាត​អារ៉ាប់​រួម',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'ಕೊಸೊವೊ',
+    ],
     'Names' => [
         'AD' => 'ಅಂಡೋರಾ',
         'AE' => 'ಯುನೈಟೆಡ್ ಅರಬ್ ಎಮಿರೇಟ್ಸ್',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ko_KP.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ko_KP.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ko_KP.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ko_KP.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'KP' => '조선민주주의인민공화국',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ko.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ko.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ko.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ko.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => '코소보',
+    ],
     'Names' => [
         'AD' => '안도라',
         'AE' => '아랍에미리트',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ks_Deva.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ks_Deva.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ks_Deva.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ks_Deva.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BR' => 'ब्राज़ील',
         'CN' => 'चीन',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ks.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ks.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ks.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ks.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'کوسوو',
+    ],
     'Names' => [
         'AD' => 'اینڈورا',
         'AE' => 'مُتحدہ عرَب امارات',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ku.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ku.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ku.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ku.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosova',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Mîrgehên Erebî yên Yekbûyî',
@@ -42,12 +45,12 @@
         'CA' => 'Kanada',
         'CC' => 'Giravên Kokosê (Keeling)',
         'CD' => 'Kongo - Kînşasa',
-        'CF' => 'Komara Afrîkaya Navîn',
+        'CF' => 'Cimhûrîyeta Afrîkaya Navîn',
         'CG' => 'Kongo - Brazzaville',
         'CH' => 'Swîsre',
         'CI' => 'Côte d’Ivoire',
         'CK' => 'Giravên Cookê',
-        'CL' => 'Şîle',
+        'CL' => 'Şîlî',
         'CM' => 'Kamerûn',
         'CN' => 'Çîn',
         'CO' => 'Kolombîya',
@@ -62,7 +65,7 @@
         'DJ' => 'Cîbûtî',
         'DK' => 'Danîmarka',
         'DM' => 'Domînîka',
-        'DO' => 'Komara Domînîkê',
+        'DO' => 'Cimhûrîyeta Domînîkê',
         'DZ' => 'Cezayîr',
         'EC' => 'Ekwador',
         'EE' => 'Estonya',
@@ -141,11 +144,11 @@
         'MA' => 'Fas',
         'MC' => 'Monako',
         'MD' => 'Moldova',
-        'ME' => 'Montenegro',
+        'ME' => 'Qeredax',
         'MF' => 'Saint Martin',
         'MG' => 'Madagaskar',
         'MH' => 'Giravên Marşalê',
-        'MK' => 'Makendonyaya Bakur',
+        'MK' => 'Makedonyaya Bakur',
         'ML' => 'Malî',
         'MM' => 'Myanmar (Bûrma)',
         'MN' => 'Moxolistan',
@@ -156,7 +159,7 @@
         'MS' => 'Montserat',
         'MT' => 'Malta',
         'MU' => 'Mauritius',
-        'MV' => 'Maldîva',
+        'MV' => 'Maldîv',
         'MW' => 'Malawî',
         'MX' => 'Meksîka',
         'MY' => 'Malezya',
@@ -168,12 +171,12 @@
         'NG' => 'Nîjerya',
         'NI' => 'Nîkaragua',
         'NL' => 'Holanda',
-        'NO' => 'Norwêc',
+        'NO' => 'Norwec',
         'NP' => 'Nepal',
         'NR' => 'Naûrû',
         'NU' => 'Niûe',
         'NZ' => 'Zelandaya Nû',
-        'OM' => 'Oman',
+        'OM' => 'Uman',
         'PA' => 'Panama',
         'PE' => 'Perû',
         'PF' => 'Polînezyaya Fransizî',
@@ -184,8 +187,8 @@
         'PM' => 'Saint-Pierre û Miquelon',
         'PN' => 'Giravên Pitcairnê',
         'PR' => 'Porto Rîko',
-        'PS' => 'Herêmên Filîstînî',
-        'PT' => 'Portûgal',
+        'PS' => 'Herêmên Filistînî',
+        'PT' => 'Portugal',
         'PW' => 'Palau',
         'PY' => 'Paragûay',
         'QA' => 'Qeter',
@@ -220,21 +223,21 @@
         'TF' => 'Herêmên Başûr ên Fransayê',
         'TG' => 'Togo',
         'TH' => 'Tayland',
-        'TJ' => 'Tacîkistan',
+        'TJ' => 'Tacikistan',
         'TK' => 'Tokelau',
         'TL' => 'Tîmor-Leste',
         'TM' => 'Tirkmenistan',
         'TN' => 'Tûnis',
         'TO' => 'Tonga',
-        'TR' => 'Tirkîye',
+        'TR' => 'Türkiye',
         'TT' => 'Trînîdad û Tobago',
         'TV' => 'Tûvalû',
         'TW' => 'Taywan',
         'TZ' => 'Tanzanya',
         'UA' => 'Ûkrayna',
         'UG' => 'Ûganda',
-        'UM' => 'Giravên Biçûk ên Derveyî DYAyê',
-        'US' => 'Dewletên Yekbûyî yên Amerîkayê',
+        'UM' => 'Giravên Biçûk ên Derveyî DAYê',
+        'US' => 'Dewletên Amerîkayê yên Yekbûyî',
         'UY' => 'Ûrûguay',
         'UZ' => 'Ozbekistan',
         'VA' => 'Vatîkan',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/kw.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'GB' => 'Rywvaneth Unys',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ky.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ky.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ky.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ky.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
         'AE' => 'Бириккен Араб Эмираттары',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lb.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lb.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lb.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lb.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Vereenegt Arabesch Emirater',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lg.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Emireeti',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ln.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ln.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ln.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ln.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andorɛ',
         'AE' => 'Lɛmila alabo',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lo.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'ໂຄໂຊໂວ',
+    ],
     'Names' => [
         'AD' => 'ອັນດໍຣາ',
         'AE' => 'ສະຫະລັດອາຣັບເອມິເຣດ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lt.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovas',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Jungtiniai Arabų Emyratai',
@@ -73,7 +76,7 @@
         'ET' => 'Etiopija',
         'FI' => 'Suomija',
         'FJ' => 'Fidžis',
-        'FK' => 'Folklando Salos',
+        'FK' => 'Folklando salos',
         'FM' => 'Mikronezija',
         'FO' => 'Farerų Salos',
         'FR' => 'Prancūzija',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lu.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andore',
         'AE' => 'Lemila alabu',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/lv.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosova',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Apvienotie Arābu Emirāti',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/meta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/meta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/meta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/meta.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,21 @@
 <?php
 
 return [
+    'UserAssignedRegions' => [
+        'XK',
+    ],
+    'UserAssignedAlpha2ToAlpha3' => [
+        'XK' => 'XKK',
+    ],
+    'UserAssignedAlpha3ToAlpha2' => [
+        'XKK' => 'XK',
+    ],
+    'UserAssignedAlpha2ToNumeric' => [
+        'XK' => '983',
+    ],
+    'UserAssignedNumericToAlpha2' => [
+        '_983' => 'XK',
+    ],
     'Regions' => [
         'AD',
         'AE',
@@ -755,7 +770,6 @@
         'ZWE' => 'ZW',
     ],
     'Alpha2ToNumeric' => [
-        'AA' => '958',
         'AD' => '020',
         'AE' => '784',
         'AF' => '004',
@@ -943,18 +957,6 @@
         'PW' => '585',
         'PY' => '600',
         'QA' => '634',
-        'QM' => '959',
-        'QN' => '960',
-        'QP' => '962',
-        'QQ' => '963',
-        'QR' => '964',
-        'QS' => '965',
-        'QT' => '966',
-        'QV' => '968',
-        'QW' => '969',
-        'QX' => '970',
-        'QY' => '971',
-        'QZ' => '972',
         'RE' => '638',
         'RO' => '642',
         'RS' => '688',
@@ -1012,29 +1014,6 @@
         'VU' => '548',
         'WF' => '876',
         'WS' => '882',
-        'XC' => '975',
-        'XD' => '976',
-        'XE' => '977',
-        'XF' => '978',
-        'XG' => '979',
-        'XH' => '980',
-        'XI' => '981',
-        'XJ' => '982',
-        'XL' => '984',
-        'XM' => '985',
-        'XN' => '986',
-        'XO' => '987',
-        'XP' => '988',
-        'XQ' => '989',
-        'XR' => '990',
-        'XS' => '991',
-        'XT' => '992',
-        'XU' => '993',
-        'XV' => '994',
-        'XW' => '995',
-        'XX' => '996',
-        'XY' => '997',
-        'XZ' => '998',
         'YE' => '887',
         'YT' => '175',
         'ZA' => '710',
@@ -1042,7 +1021,6 @@
         'ZW' => '716',
     ],
     'NumericToAlpha2' => [
-        '_958' => 'AA',
         '_020' => 'AD',
         '_784' => 'AE',
         '_004' => 'AF',
@@ -1230,18 +1208,6 @@
         '_585' => 'PW',
         '_600' => 'PY',
         '_634' => 'QA',
-        '_959' => 'QM',
-        '_960' => 'QN',
-        '_962' => 'QP',
-        '_963' => 'QQ',
-        '_964' => 'QR',
-        '_965' => 'QS',
-        '_966' => 'QT',
-        '_968' => 'QV',
-        '_969' => 'QW',
-        '_970' => 'QX',
-        '_971' => 'QY',
-        '_972' => 'QZ',
         '_638' => 'RE',
         '_642' => 'RO',
         '_688' => 'RS',
@@ -1299,29 +1265,6 @@
         '_548' => 'VU',
         '_876' => 'WF',
         '_882' => 'WS',
-        '_975' => 'XC',
-        '_976' => 'XD',
-        '_977' => 'XE',
-        '_978' => 'XF',
-        '_979' => 'XG',
-        '_980' => 'XH',
-        '_981' => 'XI',
-        '_982' => 'XJ',
-        '_984' => 'XL',
-        '_985' => 'XM',
-        '_986' => 'XN',
-        '_987' => 'XO',
-        '_988' => 'XP',
-        '_989' => 'XQ',
-        '_990' => 'XR',
-        '_991' => 'XS',
-        '_992' => 'XT',
-        '_993' => 'XU',
-        '_994' => 'XV',
-        '_995' => 'XW',
-        '_996' => 'XX',
-        '_997' => 'XY',
-        '_998' => 'XZ',
         '_887' => 'YE',
         '_175' => 'YT',
         '_710' => 'ZA',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mg.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emirà Arabo mitambatra',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mi.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kōhoro',
+    ],
     'Names' => [
         'AD' => 'Anatōra',
         'AE' => 'Kotahitanga o ngā Whenua o Ārapi',
@@ -18,7 +21,7 @@
         'AW' => 'Arūpa',
         'AX' => 'Motu Ōrana',
         'AZ' => 'Atepaihānia',
-        'BA' => 'Pōngia-Herekōwini',
+        'BA' => 'Pōngia & Herekōwini',
         'BB' => 'Papatohe',
         'BD' => 'Pākaratēhi',
         'BE' => 'Peretiama',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mk.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андора',
         'AE' => 'Обединети Арапски Емирати',
@@ -214,7 +217,7 @@
         'SV' => 'Ел Салвадор',
         'SX' => 'Свети Мартин',
         'SY' => 'Сирија',
-        'SZ' => 'Свазиленд',
+        'SZ' => 'Есватини',
         'TC' => 'Острови Туркс и Каикос',
         'TD' => 'Чад',
         'TF' => 'Француски Јужни Територии',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ml.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ml.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ml.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ml.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'കൊസോവൊ',
+    ],
     'Names' => [
         'AD' => 'അൻഡോറ',
         'AE' => 'യുണൈറ്റഡ് അറബ് എമിറൈറ്റ്‌സ്',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
         'AE' => 'Арабын Нэгдсэн Эмират Улс',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mo.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emiratele Arabe Unite',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mr.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,9 +1,12 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'कोसोव्हो',
+    ],
     'Names' => [
         'AD' => 'अँडोरा',
-        'AE' => 'संयुक्त अरब अमीरात',
+        'AE' => 'संयुक्त अरब अमिराती',
         'AF' => 'अफगाणिस्तान',
         'AG' => 'अँटिग्वा आणि बर्बुडा',
         'AI' => 'अँग्विला',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ms.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ms.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ms.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ms.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emiriah Arab Bersatu',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/mt.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'il-Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'l-Emirati Għarab Magħquda',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/my.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/my.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/my.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/my.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'ကိုဆိုဗို',
+    ],
     'Names' => [
         'AD' => 'အန်ဒိုရာ',
         'AE' => 'ယူအေအီး',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nd.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'United Arab Emirates',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ne.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ne.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ne.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ne.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'कोसोभो',
+    ],
     'Names' => [
         'AD' => 'अन्डोर्रा',
         'AE' => 'संयुक्त अरब इमिराट्स',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nl.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Verenigde Arabische Emiraten',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/nn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AE' => 'Dei sameinte arabiske emirata',
         'AT' => 'Austerrike',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/no_NO.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/no_NO.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/no_NO.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/no_NO.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'De forente arabiske emirater',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/no.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/no.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/no.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/no.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'De forente arabiske emirater',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/oc.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/oc.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/oc.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/oc.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'ES' => 'Espanha',
         'FR' => 'França',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/om.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/om.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/om.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/om.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosoovoo',
+    ],
     'Names' => [
         'AD' => 'Andooraa',
         'AE' => 'Yuunaatid Arab Emereet',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/or.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/or.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/or.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/or.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'କୋସୋଭୋ',
+    ],
     'Names' => [
         'AD' => 'ଆଣ୍ଡୋରା',
         'AE' => 'ସଂଯୁକ୍ତ ଆରବ ଏମିରେଟସ୍',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/os.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/os.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/os.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/os.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BR' => 'Бразили',
         'CN' => 'Китай',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pa_Arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pa_Arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pa_Arab.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pa_Arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'PK' => 'پاکستان',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pa.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'ਕੋਸੋਵੋ',
+    ],
     'Names' => [
         'AD' => 'ਅੰਡੋਰਾ',
         'AE' => 'ਸੰਯੁਕਤ ਅਰਬ ਅਮੀਰਾਤ',
@@ -114,7 +117,7 @@
         'IT' => 'ਇਟਲੀ',
         'JE' => 'ਜਰਸੀ',
         'JM' => 'ਜਮਾਇਕਾ',
-        'JO' => 'ਜਾਰਡਨ',
+        'JO' => 'ਜੌਰਡਨ',
         'JP' => 'ਜਪਾਨ',
         'KE' => 'ਕੀਨੀਆ',
         'KG' => 'ਕਿਰਗਿਜ਼ਸਤਾਨ',
@@ -122,13 +125,13 @@
         'KI' => 'ਕਿਰਬਾਤੀ',
         'KM' => 'ਕੋਮੋਰੋਸ',
         'KN' => 'ਸੇਂਟ ਕਿਟਸ ਐਂਡ ਨੇਵਿਸ',
-        'KP' => 'ਉੱਤਰ ਕੋਰੀਆ',
-        'KR' => 'ਦੱਖਣ ਕੋਰੀਆ',
+        'KP' => 'ਉੱਤਰੀ ਕੋਰੀਆ',
+        'KR' => 'ਦੱਖਣੀ ਕੋਰੀਆ',
         'KW' => 'ਕੁਵੈਤ',
         'KY' => 'ਕੇਮੈਨ ਟਾਪੂ',
         'KZ' => 'ਕਜ਼ਾਖਸਤਾਨ',
         'LA' => 'ਲਾਓਸ',
-        'LB' => 'ਲੈਬਨਾਨ',
+        'LB' => 'ਲਿਬਨਾਨ',
         'LC' => 'ਸੇਂਟ ਲੂਸੀਆ',
         'LI' => 'ਲਿਚੇਂਸਟਾਇਨ',
         'LK' => 'ਸ੍ਰੀ ਲੰਕਾ',
@@ -184,7 +187,7 @@
         'PM' => 'ਸੇਂਟ ਪੀਅਰੇ ਐਂਡ ਮਿਕੇਲਨ',
         'PN' => 'ਪਿਟਕੇਰਨ ਟਾਪੂ',
         'PR' => 'ਪਿਊਰਟੋ ਰਿਕੋ',
-        'PS' => 'ਫਿਲੀਸਤੀਨੀ ਇਲਾਕਾ',
+        'PS' => 'ਫਿਲਸਤੀਨੀ ਖਿੱਤੇ',
         'PT' => 'ਪੁਰਤਗਾਲ',
         'PW' => 'ਪਲਾਉ',
         'PY' => 'ਪੈਰਾਗਵੇ',
@@ -234,7 +237,7 @@
         'UA' => 'ਯੂਕਰੇਨ',
         'UG' => 'ਯੂਗਾਂਡਾ',
         'UM' => 'ਯੂ.ਐੱਸ. ਦੂਰ-ਦੁਰਾਡੇ ਟਾਪੂ',
-        'US' => 'ਸੰਯੁਕਤ ਰਾਜ',
+        'US' => 'ਸੰਯੁਕਤ ਰਾਜ (ਅਮਰੀਕਾ)',
         'UY' => 'ਉਰੂਗਵੇ',
         'UZ' => 'ਉਜ਼ਬੇਕਿਸਤਾਨ',
         'VA' => 'ਵੈਟੀਕਨ ਸਿਟੀ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pl.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosowo',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Zjednoczone Emiraty Arabskie',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ps.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ps.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ps.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ps.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'کوسوو',
+    ],
     'Names' => [
         'AD' => 'اندورا',
         'AE' => 'متحده عرب امارات',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ps_PK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ps_PK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ps_PK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ps_PK.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'PS' => 'فلسطين سيمے',
         'TC' => 'د ترکیے او کیکاسو ټاپو',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pt.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emirados Árabes Unidos',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pt_PT.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pt_PT.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pt_PT.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/pt_PT.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AM' => 'Arménia',
         'AX' => 'Alanda',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/qu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/qu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/qu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/qu.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emiratos Árabes Unidos',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rm.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,17 +1,20 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Cosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emirats Arabs Unids',
-        'AF' => 'Afghanistan',
+        'AF' => 'Afganistan',
         'AG' => 'Antigua e Barbuda',
         'AI' => 'Anguilla',
         'AL' => 'Albania',
         'AM' => 'Armenia',
         'AO' => 'Angola',
         'AQ' => 'Antarctica',
-        'AR' => 'Argentinia',
+        'AR' => 'Argentina',
         'AS' => 'Samoa Americana',
         'AT' => 'Austria',
         'AU' => 'Australia',
@@ -31,19 +34,19 @@
         'BM' => 'Bermudas',
         'BN' => 'Brunei',
         'BO' => 'Bolivia',
-        'BQ' => 'Antillas Ollandaisas',
+        'BQ' => 'Pajais Bass caribics',
         'BR' => 'Brasilia',
         'BS' => 'Bahamas',
-        'BT' => 'Bhutan',
-        'BV' => 'Insla Bouvet',
-        'BW' => 'Botswana',
-        'BY' => 'Bielorussia',
+        'BT' => 'Butan',
+        'BV' => 'Insla da Bouvet',
+        'BW' => 'Botsuana',
+        'BY' => 'Belarus',
         'BZ' => 'Belize',
         'CA' => 'Canada',
         'CC' => 'Inslas Cocos',
-        'CD' => 'Congo - Kinshasa',
+        'CD' => 'Congo-Kinshasa',
         'CF' => 'Republica Centralafricana',
-        'CG' => 'Congo',
+        'CG' => 'Congo-Brazzaville',
         'CH' => 'Svizra',
         'CI' => 'Costa d’Ivur',
         'CK' => 'Inslas Cook',
@@ -73,7 +76,7 @@
         'ET' => 'Etiopia',
         'FI' => 'Finlanda',
         'FJ' => 'Fidschi',
-        'FK' => 'Inslas dal Falkland',
+        'FK' => 'Inslas Falkland',
         'FM' => 'Micronesia',
         'FO' => 'Inslas Feroe',
         'FR' => 'Frantscha',
@@ -88,7 +91,7 @@
         'GL' => 'Grönlanda',
         'GM' => 'Gambia',
         'GN' => 'Guinea',
-        'GP' => 'Guadeloupe',
+        'GP' => 'Guadalupa',
         'GQ' => 'Guinea Equatoriala',
         'GR' => 'Grezia',
         'GS' => 'Georgia dal Sid e las Inslas Sandwich dal Sid',
@@ -96,8 +99,8 @@
         'GU' => 'Guam',
         'GW' => 'Guinea-Bissau',
         'GY' => 'Guyana',
-        'HK' => 'Regiun d’administraziun speziala da Hongkong, China',
-        'HM' => 'Inslas da Heard e da McDonald',
+        'HK' => 'Regiun d’administraziun speziala Hongkong, China',
+        'HM' => 'Inslas da Heard e McDonald',
         'HN' => 'Honduras',
         'HR' => 'Croazia',
         'HT' => 'Haiti',
@@ -107,6 +110,7 @@
         'IL' => 'Israel',
         'IM' => 'Insla da Man',
         'IN' => 'India',
+        'IO' => 'Territori Britannic da l’Ocean Indic',
         'IQ' => 'Irac',
         'IR' => 'Iran',
         'IS' => 'Islanda',
@@ -116,11 +120,11 @@
         'JO' => 'Jordania',
         'JP' => 'Giapun',
         'KE' => 'Kenia',
-        'KG' => 'Kirgisistan',
+        'KG' => 'Kirghistan',
         'KH' => 'Cambodscha',
         'KI' => 'Kiribati',
         'KM' => 'Comoras',
-        'KN' => 'Saint Kitts e Nevis',
+        'KN' => 'Son Cristof e Nevis',
         'KP' => 'Corea dal Nord',
         'KR' => 'Corea dal Sid',
         'KW' => 'Kuwait',
@@ -128,7 +132,7 @@
         'KZ' => 'Kasachstan',
         'LA' => 'Laos',
         'LB' => 'Libanon',
-        'LC' => 'Saint Lucia',
+        'LC' => 'Sontga Lucia',
         'LI' => 'Liechtenstein',
         'LK' => 'Sri Lanka',
         'LR' => 'Liberia',
@@ -150,12 +154,12 @@
         'MN' => 'Mongolia',
         'MO' => 'Regiun d’administraziun speziala Macao, China',
         'MP' => 'Inslas Mariannas dal Nord',
-        'MQ' => 'Martinique',
+        'MQ' => 'Martinica',
         'MR' => 'Mauretania',
         'MS' => 'Montserrat',
         'MT' => 'Malta',
         'MU' => 'Mauritius',
-        'MV' => 'Maldivas',
+        'MV' => 'Maledivas',
         'MW' => 'Malawi',
         'MX' => 'Mexico',
         'MY' => 'Malaisia',
@@ -187,14 +191,14 @@
         'PT' => 'Portugal',
         'PW' => 'Palau',
         'PY' => 'Paraguai',
-        'QA' => 'Katar',
+        'QA' => 'Qatar',
         'RE' => 'Réunion',
         'RO' => 'Rumenia',
         'RS' => 'Serbia',
         'RU' => 'Russia',
         'RW' => 'Ruanda',
         'SA' => 'Arabia Saudita',
-        'SB' => 'Inslas Salomonas',
+        'SB' => 'Inslas da Salomon',
         'SC' => 'Seychellas',
         'SD' => 'Sudan',
         'SE' => 'Svezia',
@@ -204,12 +208,12 @@
         'SJ' => 'Svalbard e Jan Mayen',
         'SK' => 'Slovachia',
         'SL' => 'Sierra Leone',
-        'SM' => 'San Marino',
+        'SM' => 'Son Marin',
         'SN' => 'Senegal',
         'SO' => 'Somalia',
         'SR' => 'Surinam',
         'SS' => 'Sudan dal Sid',
-        'ST' => 'São Tomé & Príncipe',
+        'ST' => 'São Tomé e Príncipe',
         'SV' => 'El Salvador',
         'SX' => 'Sint Maarten',
         'SY' => 'Siria',
@@ -234,16 +238,16 @@
         'UG' => 'Uganda',
         'UM' => 'Inslas Pitschnas Perifericas dals Stadis Unids da l’America',
         'US' => 'Stadis Unids da l’America',
-        'UY' => 'Uruguay',
+        'UY' => 'Uruguai',
         'UZ' => 'Usbekistan',
         'VA' => 'Citad dal Vatican',
-        'VC' => 'Saint Vincent e las Grenadinas',
+        'VC' => 'Son Vincenz e las Grenadinas',
         'VE' => 'Venezuela',
         'VG' => 'Inslas Virginas Britannicas',
         'VI' => 'Inslas Virginas Americanas',
         'VN' => 'Vietnam',
         'VU' => 'Vanuatu',
-        'WF' => 'Wallis & Futuna',
+        'WF' => 'Wallis e Futuna',
         'WS' => 'Samoa',
         'YE' => 'Jemen',
         'YT' => 'Mayotte',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Leta Zunze Ubumwe z’Abarabu',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ro_MD.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ro_MD.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ro_MD.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ro_MD.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'MM' => 'Myanmar',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ro.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ro.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ro.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ro.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emiratele Arabe Unite',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ru.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ru.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ru.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ru.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
         'AE' => 'ОАЭ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ru_UA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ru_UA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ru_UA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ru_UA.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AE' => 'Объединенные Арабские Эмираты',
         'BV' => 'О-в Буве',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/rw.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'MK' => 'Masedoniya y’Amajyaruguru',
         'RW' => 'U Rwanda',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sa.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BR' => 'ब्राजील',
         'CN' => 'चीन:',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sc.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sc.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sc.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sc.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kòssovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Emirados Àrabos Unidos',
@@ -188,7 +191,7 @@
         'PT' => 'Portogallu',
         'PW' => 'Palau',
         'PY' => 'Paraguày',
-        'QA' => 'Catar',
+        'QA' => 'Catàr',
         'RE' => 'Riunione',
         'RO' => 'Romania',
         'RS' => 'Sèrbia',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sd_Deva.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sd_Deva.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sd_Deva.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sd_Deva.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BR' => 'ब्राज़ील',
         'CN' => 'चीन',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sd.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,14 +1,17 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'ڪوسووو',
+    ],
     'Names' => [
         'AD' => 'اندورا',
         'AE' => 'متحده عرب امارات',
         'AF' => 'افغانستان',
-        'AG' => 'انٽيگا ۽ باربد',
+        'AG' => 'اينٽيگا ۽ باربوڊا',
         'AI' => 'انگويلا',
         'AL' => 'البانيا',
-        'AM' => 'ارمینیا',
+        'AM' => 'آرمينيا',
         'AO' => 'انگولا',
         'AQ' => 'انٽارڪٽيڪا',
         'AR' => 'ارجنٽينا',
@@ -18,7 +21,7 @@
         'AW' => 'عروبا',
         'AX' => 'الند ٻيٽ',
         'AZ' => 'آذربائيجان',
-        'BA' => 'بوسنيا ۽ هرزوگووينا',
+        'BA' => 'بوسنيا ۽ هرزيگووينا',
         'BB' => 'باربڊوس',
         'BD' => 'بنگلاديش',
         'BE' => 'بيلجيم',
@@ -37,7 +40,7 @@
         'BT' => 'ڀوٽان',
         'BV' => 'بووٽ ٻيٽ',
         'BW' => 'بوٽسوانا',
-        'BY' => 'بیلارس',
+        'BY' => 'بيلاروس',
         'BZ' => 'بيليز',
         'CA' => 'ڪينيڊا',
         'CC' => 'ڪوڪوس ٻيٽ',
@@ -96,7 +99,7 @@
         'GU' => 'گوام',
         'GW' => 'گني بسائو',
         'GY' => 'گيانا',
-        'HK' => 'هانگ ڪانگ SAR',
+        'HK' => 'هانگ ڪانگ SAR چين',
         'HM' => 'هرڊ ۽ مڪڊونلڊ ٻيٽ',
         'HN' => 'هنڊورس',
         'HR' => 'ڪروئيشيا',
@@ -181,7 +184,7 @@
         'PH' => 'فلپائن',
         'PK' => 'پاڪستان',
         'PL' => 'پولينڊ',
-        'PM' => 'سینٽ پیئر و میڪوئیلون',
+        'PM' => 'سينٽ پيئر ۽ ميڪيلون',
         'PN' => 'پٽڪئرن ٻيٽ',
         'PR' => 'پيوئرٽو ريڪو',
         'PS' => 'فلسطيني علائقا',
@@ -202,15 +205,15 @@
         'SG' => 'سنگاپور',
         'SH' => 'سينٽ ھيلينا',
         'SI' => 'سلوینیا',
-        'SJ' => 'سوالبارڊ ۽ جان ماین',
+        'SJ' => 'سوالبارڊ ۽ يان ماین',
         'SK' => 'سلوواڪيا',
         'SL' => 'سيرا ليون',
-        'SM' => 'سین مرینو',
+        'SM' => 'سان مرینو',
         'SN' => 'سينيگال',
         'SO' => 'سوماليا',
         'SR' => 'سورينام',
         'SS' => 'ڏکڻ سوڊان',
-        'ST' => 'سائو ٽوم ۽ پرنسپیي',
+        'ST' => 'سائو ٽومي ۽ پرنسپیي',
         'SV' => 'ال سلواڊور',
         'SX' => 'سنٽ مارٽن',
         'SY' => 'شام',
@@ -227,7 +230,7 @@
         'TN' => 'تيونيسيا',
         'TO' => 'ٽونگا',
         'TR' => 'ترڪييي',
-        'TT' => 'ٽريني ڊيڊ ۽ ٽوباگو ٻيٽ',
+        'TT' => 'ٽرينيڊاڊ ۽ ٽوباگو',
         'TV' => 'توالو',
         'TW' => 'تائیوان',
         'TZ' => 'تنزانيا',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/se_FI.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/se_FI.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/se_FI.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/se_FI.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BA' => 'Bosnia ja Hercegovina',
         'KH' => 'Kamboža',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/se.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/se.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/se.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/se.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Ovttastuvvan Arábaemiráhtat',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sg.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andôro',
         'AE' => 'Arâbo Emirâti Ôko',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sh_BA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sh_BA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sh_BA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sh_BA.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AX' => 'Olandska ostrva',
         'BL' => 'Sen Bartelemi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sh.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Ujedinjeni Arapski Emirati',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/si.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/si.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/si.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/si.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'කොසෝවෝ',
+    ],
     'Names' => [
         'AD' => 'ඇන්ඩෝරාව',
         'AE' => 'එක්සත් අරාබි එමිර් රාජ්‍යය',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sk.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Spojené arabské emiráty',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sl.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Združeni arabski emirati',
@@ -16,7 +19,7 @@
         'AT' => 'Avstrija',
         'AU' => 'Avstralija',
         'AW' => 'Aruba',
-        'AX' => 'Ålandski otoki',
+        'AX' => 'Alandski otoki',
         'AZ' => 'Azerbajdžan',
         'BA' => 'Bosna in Hercegovina',
         'BB' => 'Barbados',
@@ -27,7 +30,7 @@
         'BH' => 'Bahrajn',
         'BI' => 'Burundi',
         'BJ' => 'Benin',
-        'BL' => 'Saint Barthélemy',
+        'BL' => 'Sveti Bartolomej',
         'BM' => 'Bermudi',
         'BN' => 'Brunej',
         'BO' => 'Bolivija',
@@ -88,12 +91,12 @@
         'GL' => 'Grenlandija',
         'GM' => 'Gambija',
         'GN' => 'Gvineja',
-        'GP' => 'Guadeloupe',
+        'GP' => 'Gvadelup',
         'GQ' => 'Ekvatorialna Gvineja',
         'GR' => 'Grčija',
         'GS' => 'Južna Georgia in Južni Sandwichevi otoki',
         'GT' => 'Gvatemala',
-        'GU' => 'Guam',
+        'GU' => 'Gvam',
         'GW' => 'Gvineja Bissau',
         'GY' => 'Gvajana',
         'HK' => 'Posebno upravno območje Ljudske republike Kitajske Hongkong',
@@ -121,15 +124,15 @@
         'KH' => 'Kambodža',
         'KI' => 'Kiribati',
         'KM' => 'Komori',
-        'KN' => 'Saint Kitts in Nevis',
+        'KN' => 'Sveti Krištof in Nevis',
         'KP' => 'Severna Koreja',
         'KR' => 'Južna Koreja',
         'KW' => 'Kuvajt',
-        'KY' => 'Kajmanski otoki',
+        'KY' => 'Kajmanji otoki',
         'KZ' => 'Kazahstan',
         'LA' => 'Laos',
         'LB' => 'Libanon',
-        'LC' => 'Saint Lucia',
+        'LC' => 'Sveta Lucija',
         'LI' => 'Lihtenštajn',
         'LK' => 'Šrilanka',
         'LR' => 'Liberija',
@@ -142,20 +145,20 @@
         'MC' => 'Monako',
         'MD' => 'Moldavija',
         'ME' => 'Črna gora',
-        'MF' => 'Saint Martin',
+        'MF' => 'Francoski Sveti Martin',
         'MG' => 'Madagaskar',
         'MH' => 'Marshallovi otoki',
         'MK' => 'Severna Makedonija',
         'ML' => 'Mali',
         'MM' => 'Mjanmar (Burma)',
         'MN' => 'Mongolija',
-        'MO' => 'Posebno upravno območje Ljudske republike Kitajske Macao',
+        'MO' => 'Posebno upravno območje Kitajske Makav',
         'MP' => 'Severni Marianski otoki',
         'MQ' => 'Martinik',
         'MR' => 'Mavretanija',
         'MS' => 'Montserrat',
         'MT' => 'Malta',
-        'MU' => 'Mauritius',
+        'MU' => 'Mavricij',
         'MV' => 'Maldivi',
         'MW' => 'Malavi',
         'MX' => 'Mehika',
@@ -181,12 +184,12 @@
         'PH' => 'Filipini',
         'PK' => 'Pakistan',
         'PL' => 'Poljska',
-        'PM' => 'Saint Pierre in Miquelon',
+        'PM' => 'Sveta Peter in Mihael',
         'PN' => 'Pitcairn',
         'PR' => 'Portoriko',
         'PS' => 'Palestinsko ozemlje',
         'PT' => 'Portugalska',
-        'PW' => 'Palau',
+        'PW' => 'Palav',
         'PY' => 'Paragvaj',
         'QA' => 'Katar',
         'RE' => 'Reunion',
@@ -210,9 +213,9 @@
         'SO' => 'Somalija',
         'SR' => 'Surinam',
         'SS' => 'Južni Sudan',
-        'ST' => 'Sao Tome in Principe',
+        'ST' => 'Sveti Tomaž in Princ',
         'SV' => 'Salvador',
-        'SX' => 'Sint Maarten',
+        'SX' => 'Nizozemski Sveti Martin',
         'SY' => 'Sirija',
         'SZ' => 'Esvatini',
         'TC' => 'Otoki Turks in Caicos',
@@ -221,7 +224,7 @@
         'TG' => 'Togo',
         'TH' => 'Tajska',
         'TJ' => 'Tadžikistan',
-        'TK' => 'Tokelau',
+        'TK' => 'Tokelav',
         'TL' => 'Timor-Leste',
         'TM' => 'Turkmenistan',
         'TN' => 'Tunizija',
@@ -238,7 +241,7 @@
         'UY' => 'Urugvaj',
         'UZ' => 'Uzbekistan',
         'VA' => 'Vatikan',
-        'VC' => 'Saint Vincent in Grenadine',
+        'VC' => 'Sveti Vincencij in Grenadine',
         'VE' => 'Venezuela',
         'VG' => 'Britanski Deviški otoki',
         'VI' => 'Ameriški Deviški otoki',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'United Arab Emirates',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/so.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/so.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/so.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/so.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Koosofo',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Midawga Imaaraatka Carabta',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sq.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sq.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sq.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sq.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovë',
+    ],
     'Names' => [
         'AD' => 'Andorrë',
         'AE' => 'Emiratet e Bashkuara Arabe',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_BA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_BA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_BA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_BA.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AX' => 'Оландска острва',
         'BL' => 'Сен Бартелеми',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_BA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_BA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_BA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_BA.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AX' => 'Оландска острва',
         'BL' => 'Сен Бартелеми',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_ME.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_ME.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_ME.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_ME.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BY' => 'Бјелорусија',
         'CG' => 'Конго',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_XK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_XK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_XK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Cyrl_XK.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'CG' => 'Конго',
         'CV' => 'Кабо Верде',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_BA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_BA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_BA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_BA.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AX' => 'Olandska ostrva',
         'BL' => 'Sen Bartelemi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_ME.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_ME.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_ME.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_ME.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BY' => 'Bjelorusija',
         'CG' => 'Kongo',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andora',
         'AE' => 'Ujedinjeni Arapski Emirati',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_XK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_XK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_XK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn_XK.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'CG' => 'Kongo',
         'CV' => 'Kabo Verde',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_ME.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_ME.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_ME.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_ME.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BY' => 'Bjelorusija',
         'CG' => 'Kongo',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андора',
         'AE' => 'Уједињени Арапски Емирати',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_XK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_XK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_XK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sr_XK.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'CG' => 'Конго',
         'CV' => 'Кабо Верде',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/st.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/st.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/st.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/st.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'LS' => 'Lesotho',
         'ZA' => 'Afrika Borwa',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/su.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/su.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/su.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/su.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BR' => 'Brasil',
         'CN' => 'Tiongkok',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sv.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Förenade Arabemiraten',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw_CD.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw_CD.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw_CD.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw_CD.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AF' => 'Afuganistani',
         'AZ' => 'Azabajani',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw_KE.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw_KE.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw_KE.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw_KE.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AF' => 'Afghanistani',
         'AG' => 'Antigua na Babuda',
@@ -13,7 +14,6 @@
         'BT' => 'Bhutani',
         'BY' => 'Belarusi',
         'CC' => 'Visiwa vya Kokos (Keeling)',
-        'CD' => 'Kongo - Kinshasa',
         'CV' => 'Kepuvede',
         'CW' => 'Kurakao',
         'EC' => 'Ekwado',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/sw.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Falme za Kiarabu',
@@ -41,7 +44,7 @@
         'BZ' => 'Belize',
         'CA' => 'Kanada',
         'CC' => 'Visiwa vya Cocos (Keeling)',
-        'CD' => 'Jamhuri ya Kidemokrasia ya Kongo',
+        'CD' => 'Kongo - Kinshasa',
         'CF' => 'Jamhuri ya Afrika ya Kati',
         'CG' => 'Kongo - Brazzaville',
         'CH' => 'Uswisi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ta.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,9 +1,12 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'கொசோவோ',
+    ],
     'Names' => [
         'AD' => 'அன்டோரா',
-        'AE' => 'ஐக்கிய அரபு எமிரேட்ஸ்',
+        'AE' => 'ஐக்கிய அரபு அமீரகம்',
         'AF' => 'ஆஃப்கானிஸ்தான்',
         'AG' => 'ஆண்டிகுவா மற்றும் பார்புடா',
         'AI' => 'அங்கியுலா',
@@ -113,7 +116,7 @@
         'IS' => 'ஐஸ்லாந்து',
         'IT' => 'இத்தாலி',
         'JE' => 'ஜெர்சி',
-        'JM' => 'ஜமைகா',
+        'JM' => 'ஜமைக்கா',
         'JO' => 'ஜோர்டான்',
         'JP' => 'ஜப்பான்',
         'KE' => 'கென்யா',
@@ -147,7 +150,7 @@
         'MH' => 'மார்ஷல் தீவுகள்',
         'MK' => 'வடக்கு மாசிடோனியா',
         'ML' => 'மாலி',
-        'MM' => 'மியான்மார் (பர்மா)',
+        'MM' => 'மியான்மர் (பர்மா)',
         'MN' => 'மங்கோலியா',
         'MO' => 'மகாவ் எஸ்ஏஆர் சீனா',
         'MP' => 'வடக்கு மரியானா தீவுகள்',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/te.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/te.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/te.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/te.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,11 +1,14 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'కొసోవో',
+    ],
     'Names' => [
         'AD' => 'ఆండోరా',
         'AE' => 'యునైటెడ్ అరబ్ ఎమిరేట్స్',
         'AF' => 'ఆఫ్ఘనిస్తాన్',
-        'AG' => 'ఆంటిగ్వా మరియు బార్బుడా',
+        'AG' => 'ఆంటిగ్వా & బార్బుడా',
         'AI' => 'ఆంగ్విల్లా',
         'AL' => 'అల్బేనియా',
         'AM' => 'ఆర్మేనియా',
@@ -18,7 +21,7 @@
         'AW' => 'అరుబా',
         'AX' => 'ఆలాండ్ దీవులు',
         'AZ' => 'అజర్బైజాన్',
-        'BA' => 'బోస్నియా మరియు హెర్జిగోవినా',
+        'BA' => 'బోస్నియా & హెర్జిగోవినా',
         'BB' => 'బార్బడోస్',
         'BD' => 'బంగ్లాదేశ్',
         'BE' => 'బెల్జియం',
@@ -96,7 +99,7 @@
         'GU' => 'గ్వామ్',
         'GW' => 'గినియా-బిస్సావ్',
         'GY' => 'గయానా',
-        'HK' => 'హాంకాంగ్ ఎస్ఏఆర్ చైనా',
+        'HK' => 'హాంకాంగ్ SAR చైనా',
         'HM' => 'హెర్డ్ దీవి మరియు మెక్‌డొనాల్డ్ దీవులు',
         'HN' => 'హోండురాస్',
         'HR' => 'క్రొయేషియా',
@@ -121,7 +124,7 @@
         'KH' => 'కంబోడియా',
         'KI' => 'కిరిబాటి',
         'KM' => 'కొమొరోస్',
-        'KN' => 'సెయింట్ కిట్స్ మరియు నెవిస్',
+        'KN' => 'సెయింట్ కిట్స్ & నెవిస్',
         'KP' => 'ఉత్తర కొరియా',
         'KR' => 'దక్షిణ కొరియా',
         'KW' => 'కువైట్',
@@ -149,7 +152,7 @@
         'ML' => 'మాలి',
         'MM' => 'మయన్మార్',
         'MN' => 'మంగోలియా',
-        'MO' => 'మకావ్ ఎస్ఏఆర్ చైనా',
+        'MO' => 'మకావ్ SAR చైనా',
         'MP' => 'ఉత్తర మరియానా దీవులు',
         'MQ' => 'మార్టినీక్',
         'MR' => 'మారిటేనియా',
@@ -162,7 +165,7 @@
         'MY' => 'మలేషియా',
         'MZ' => 'మొజాంబిక్',
         'NA' => 'నమీబియా',
-        'NC' => 'క్రొత్త కాలెడోనియా',
+        'NC' => 'కొత్త కాలెడోనియా',
         'NE' => 'నైజర్',
         'NF' => 'నార్ఫోక్ దీవి',
         'NG' => 'నైజీరియా',
@@ -215,7 +218,7 @@
         'SX' => 'సింట్ మార్టెన్',
         'SY' => 'సిరియా',
         'SZ' => 'ఈస్వాటిని',
-        'TC' => 'టర్క్స్ మరియు కైకోస్ దీవులు',
+        'TC' => 'టర్క్స్ & కైకోస్ దీవులు',
         'TD' => 'చాద్',
         'TF' => 'ఫ్రెంచ్ దక్షిణ ప్రాంతాలు',
         'TG' => 'టోగో',
@@ -233,7 +236,7 @@
         'TZ' => 'టాంజానియా',
         'UA' => 'ఉక్రెయిన్',
         'UG' => 'ఉగాండా',
-        'UM' => 'సంయుక్త రాజ్య అమెరికా బయట ఉన్న దీవులు',
+        'UM' => 'U.S. బయట ఉన్న దీవులు',
         'US' => 'యునైటెడ్ స్టేట్స్',
         'UY' => 'ఉరుగ్వే',
         'UZ' => 'ఉజ్బెకిస్తాన్',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tg.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
         'AE' => 'Аморатҳои Муттаҳидаи Араб',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/th.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/th.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/th.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/th.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'โคโซโว',
+    ],
     'Names' => [
         'AD' => 'อันดอร์รา',
         'AE' => 'สหรัฐอาหรับเอมิเรตส์',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ti.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ti.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ti.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ti.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'ኮሶቮ',
+    ],
     'Names' => [
         'AD' => 'ኣንዶራ',
         'AE' => 'ሕቡራት ኢማራት ዓረብ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tk.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosowo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Birleşen Arap Emirlikleri',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tl.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'United Arab Emirates',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tn.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'BW' => 'Botswana',
         'ZA' => 'Aforika Borwa',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/to.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/to.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/to.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/to.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kōsovo',
+    ],
     'Names' => [
         'AD' => 'ʻAnitola',
         'AE' => 'ʻAlepea Fakatahataha',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tr.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosova',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Birleşik Arap Emirlikleri',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/tt.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
         'AE' => 'Берләшкән Гарәп Әмирлекләре',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ug.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ug.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ug.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ug.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'كوسوۋو',
+    ],
     'Names' => [
         'AD' => 'ئاندوررا',
         'AE' => 'ئەرەب بىرلەشمە خەلىپىلىكى',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uk.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
         'AE' => 'Обʼєднані Арабські Емірати',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ur_IN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ur_IN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ur_IN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ur_IN.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AX' => 'جزائر آلینڈ',
         'BV' => 'جزیرہ بوویت',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ur.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ur.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ur.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/ur.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'کوسووو',
+    ],
     'Names' => [
         'AD' => 'انڈورا',
         'AE' => 'متحدہ عرب امارات',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz_Arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz_Arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz_Arab.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz_Arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AF' => 'افغانستان',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz_Cyrl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz_Cyrl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz_Cyrl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz_Cyrl.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Косово',
+    ],
     'Names' => [
         'AD' => 'Андорра',
         'AE' => 'Бирлашган Араб Амирликлари',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/uz.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Birlashgan Arab Amirliklari',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/vi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/vi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/vi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/vi.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosovo',
+    ],
     'Names' => [
         'AD' => 'Andorra',
         'AE' => 'Các Tiểu Vương quốc Ả Rập Thống nhất',
@@ -14,7 +17,7 @@
         'AR' => 'Argentina',
         'AS' => 'Samoa thuộc Mỹ',
         'AT' => 'Áo',
-        'AU' => 'Australia',
+        'AU' => 'Úc',
         'AW' => 'Aruba',
         'AX' => 'Quần đảo Åland',
         'AZ' => 'Azerbaijan',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/wo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/wo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/wo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/wo.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kosowo',
+    ],
     'Names' => [
         'AD' => 'Andoor',
         'AE' => 'Emira Arab Ini',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/xh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/xh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/xh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/xh.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'EKosovo',
+    ],
     'Names' => [
         'AD' => 'E-Andorra',
         'AE' => 'E-United Arab Emirates',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yi.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'קאסאווא',
+    ],
     'Names' => [
         'AD' => 'אַנדארע',
         'AF' => 'אַפֿגהאַניסטאַן',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yo_BJ.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yo_BJ.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yo_BJ.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yo_BJ.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AE' => 'Ɛmirate ti Awɔn Arabu',
         'AS' => 'Sámóánì ti Orílɛ́ède Àméríkà',
@@ -15,7 +16,6 @@
         'BQ' => 'Kàríbíánì ti Nɛ́dálándì',
         'BW' => 'Bɔ̀tìsúwánà',
         'BZ' => 'Bèlísɛ̀',
-        'CH' => 'switishilandi',
         'CL' => 'Shílè',
         'CN' => 'Sháínà',
         'CZ' => 'Shɛ́ɛ́kì',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/yo.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'Kòsófò',
+    ],
     'Names' => [
         'AD' => 'Ààndórà',
         'AE' => 'Ẹmirate ti Awọn Arabu',
@@ -44,7 +47,7 @@
         'CD' => 'Kóńgò – Kinshasa',
         'CF' => 'Àrin gùngun Áfíríkà',
         'CG' => 'Kóńgò – Brazaville',
-        'CH' => 'switiṣilandi',
+        'CH' => 'Súwísìlanìdì',
         'CI' => 'Kóútè forà',
         'CK' => 'Etíokun Kùúkù',
         'CL' => 'Ṣílè',
@@ -207,7 +210,7 @@
         'SL' => 'Siria looni',
         'SM' => 'Sani Marino',
         'SN' => 'Sẹnẹga',
-        'SO' => 'Somalia',
+        'SO' => 'Sòmálíà',
         'SR' => 'Surinami',
         'SS' => 'Gúúsù Sudan',
         'ST' => 'Sao tomi ati piriiṣipi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/za.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/za.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/za.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/za.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'CN' => 'Cunghgoz',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant_HK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant_HK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant_HK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant_HK.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AE' => '阿拉伯聯合酋長國',
         'AG' => '安提瓜和巴布達',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => '科索沃',
+    ],
     'Names' => [
         'AD' => '安道爾',
         'AE' => '阿拉伯聯合大公國',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_HK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_HK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_HK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh_HK.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,7 @@
 <?php
 
 return [
+    'UserAssignedNames' => [],
     'Names' => [
         'AE' => '阿拉伯聯合酋長國',
         'AG' => '安提瓜和巴布達',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zh.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => '科索沃',
+    ],
     'Names' => [
         'AD' => '安道尔',
         'AE' => '阿拉伯联合酋长国',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/regions/zu.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,9 @@
 <?php
 
 return [
+    'UserAssignedNames' => [
+        'XK' => 'i-Kosovo',
+    ],
     'Names' => [
         'AD' => 'i-Andorra',
         'AE' => 'i-United Arab Emirates',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/af.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/af.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/af.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/af.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
         'Mymr' => 'Mianmar',
         'Nkoo' => 'N’Ko',
         'Olck' => 'Ol Chiki',
-        'Orya' => 'Oriya',
+        'Orya' => 'Odia',
         'Rohg' => 'Hanifi',
         'Sinh' => 'Sinhala',
         'Sund' => 'Soendanees',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ba.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ba.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ba.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ba.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,199 @@
+<?php
+
+return [
+    'Names' => [
+        'Adlm' => 'адлам',
+        'Aghb' => 'кавказ албан',
+        'Ahom' => 'ахом',
+        'Arab' => 'ғәрәп',
+        'Aran' => 'насталик',
+        'Armi' => 'император арамей',
+        'Armn' => 'әрмән',
+        'Avst' => 'авестий',
+        'Bali' => 'бали',
+        'Bamu' => 'бамум',
+        'Bass' => 'басса Вах',
+        'Batk' => 'батак',
+        'Beng' => 'бенгал',
+        'Berf' => 'берия эрфе',
+        'Bhks' => 'бхаиксуки',
+        'Bopo' => 'бопомофо',
+        'Brah' => 'брахми',
+        'Brai' => 'брайль шрифты',
+        'Bugi' => 'буги',
+        'Buhd' => 'бухид',
+        'Cakm' => 'чакма',
+        'Cans' => 'берҙәм Канада аборигендарҙың ижектәре',
+        'Cari' => 'кари',
+        'Cham' => 'чам',
+        'Cher' => 'чероки',
+        'Chrs' => 'хәрәзм',
+        'Copt' => 'копт',
+        'Cpmn' => 'кипр-миной',
+        'Cprt' => 'кипр',
+        'Cyrl' => 'кириллица',
+        'Cyrs' => 'иҫке сиркәү славян кириллицаһы',
+        'Deva' => 'деванагари',
+        'Diak' => 'дивес акуру',
+        'Dogr' => 'догра',
+        'Dsrt' => 'дезерет',
+        'Dupl' => 'дюплойе ҡыҫҡа',
+        'Egyp' => 'мысыр иероглифтары',
+        'Elba' => 'эльбасан',
+        'Elym' => 'элимай',
+        'Ethi' => 'эфиоп',
+        'Gara' => 'гараи',
+        'Geor' => 'грузин',
+        'Glag' => 'глаголица',
+        'Gong' => 'гуньджала гонди',
+        'Gonm' => 'масарам гонди',
+        'Goth' => 'гот',
+        'Gran' => 'грантха',
+        'Grek' => 'грек',
+        'Gujr' => 'гуджарати',
+        'Gukh' => 'гурунг кхема',
+        'Guru' => 'гурмукхи',
+        'Hanb' => 'бопомофо менән хань',
+        'Hang' => 'хангыль',
+        'Hani' => 'хань (ҡытай иероглифтары)',
+        'Hano' => 'хануну',
+        'Hans' => 'ябайлаштырылған',
+        'Hant' => 'традицион',
+        'Hatr' => 'хатра',
+        'Hebr' => 'йәһүд',
+        'Hira' => 'хирагана',
+        'Hluw' => 'анатолия иероглифтары',
+        'Hmng' => 'пахау хмонг',
+        'Hmnp' => 'ньякенг пуачуэ хмонг',
+        'Hrkt' => 'япон ижектәре',
+        'Hung' => 'иҫке венгр',
+        'Ital' => 'иҫке итал',
+        'Jamo' => 'джамо',
+        'Java' => 'ява',
+        'Jpan' => 'япон',
+        'Kali' => 'кайа Ли',
+        'Kana' => 'катакана',
+        'Kawi' => 'кави',
+        'Khar' => 'кхароштхи',
+        'Khmr' => 'кхмер',
+        'Khoj' => 'ходжки',
+        'Kits' => 'кесе кидань',
+        'Knda' => 'каннада',
+        'Kore' => 'корей',
+        'Krai' => 'кират раи',
+        'Kthi' => 'кайтхи',
+        'Lana' => 'ланна',
+        'Laoo' => 'лаос',
+        'Latf' => 'фрактура латин',
+        'Latg' => 'гэль латин',
+        'Latn' => 'латиница',
+        'Lepc' => 'лепча',
+        'Limb' => 'лимбу',
+        'Lina' => 'һыҙыҡлы А яҙмаһы',
+        'Linb' => 'һыҙыҡлы Б яҙмаһы',
+        'Lisu' => 'лису',
+        'Lyci' => 'лики',
+        'Lydi' => 'лидия',
+        'Mahj' => 'махаджани',
+        'Maka' => 'макасар',
+        'Mand' => 'мандей',
+        'Mani' => 'манихей',
+        'Marc' => 'марсен',
+        'Medf' => 'медефаидрин',
+        'Mend' => 'менде',
+        'Merc' => 'мероит курсивы',
+        'Mero' => 'мероит',
+        'Mlym' => 'малаялам',
+        'Modi' => 'моди',
+        'Mong' => 'монгол',
+        'Mroo' => 'мро',
+        'Mtei' => 'мейтей майек',
+        'Mult' => 'мултани',
+        'Mymr' => 'мьянма',
+        'Nagm' => 'наг мундари',
+        'Nand' => 'нандинагари',
+        'Narb' => 'иҫке төньяҡ ғәрәп',
+        'Nbat' => 'набатей',
+        'Newa' => 'нева',
+        'Nkoo' => 'н’ко',
+        'Nshu' => 'нюй-шу',
+        'Ogam' => 'огам',
+        'Olck' => 'ол чики',
+        'Onao' => 'ол онал',
+        'Orkh' => 'орхон',
+        'Orya' => 'ория',
+        'Osge' => 'осейдж',
+        'Osma' => 'осман',
+        'Ougr' => 'боронғо уйғыр',
+        'Palm' => 'пальмира',
+        'Pauc' => 'пау чин хау',
+        'Perm' => 'боронғо пермь',
+        'Phag' => 'пагспа',
+        'Phli' => 'пәһләүи',
+        'Phlp' => 'псалтирь пәһләүи',
+        'Phnx' => 'финикия',
+        'Plrd' => 'поллард фонетикаһы',
+        'Prti' => 'парфия',
+        'Qaag' => 'завги',
+        'Rjng' => 'реджанг',
+        'Rohg' => 'ханифи',
+        'Runr' => 'рун',
+        'Samr' => 'самаритян',
+        'Sarb' => 'иҫке Көньяҡ ғәрәп',
+        'Saur' => 'саураштра',
+        'Sgnw' => 'ым-ишара яҙыуы',
+        'Shaw' => 'шавиан',
+        'Shrd' => 'шарада',
+        'Sidd' => 'сиддхам',
+        'Sidt' => 'сидет',
+        'Sind' => 'кхудавади',
+        'Sinh' => 'сингал',
+        'Sogd' => 'соғҙи',
+        'Sogo' => 'боронғо соғҙи',
+        'Sora' => 'сора Сомпенг',
+        'Soyo' => 'соёмбо',
+        'Sund' => 'сундан',
+        'Sunu' => 'сунувар',
+        'Sylo' => 'силоти Нагри',
+        'Syrc' => 'сүриә',
+        'Syre' => 'эстрангело сүриә',
+        'Syrj' => 'көнбайыш сүриә',
+        'Syrn' => 'көнсығыш сүриә',
+        'Tagb' => 'тагбанва',
+        'Takr' => 'такри',
+        'Tale' => 'тай Ле',
+        'Talu' => 'яңы тай ле',
+        'Taml' => 'тамил',
+        'Tang' => 'тангут',
+        'Tavt' => 'тай Вьет',
+        'Tayo' => 'тай йо',
+        'Telu' => 'телугу',
+        'Tfng' => 'тифинаг',
+        'Tglg' => 'тагалог',
+        'Thaa' => 'таана',
+        'Thai' => 'тай',
+        'Tibt' => 'тибет',
+        'Tirh' => 'тирхута',
+        'Tnsa' => 'тангса',
+        'Todr' => 'тодри',
+        'Tols' => 'толонг сики',
+        'Toto' => 'тото',
+        'Tutg' => 'тулу-тигалари',
+        'Ugar' => 'угарит',
+        'Vaii' => 'ваи',
+        'Vith' => 'виткучи',
+        'Wara' => 'варанг кшити',
+        'Wcho' => 'ванчо',
+        'Xpeo' => 'иҫке фарсы',
+        'Xsux' => 'шумер-аккад шына',
+        'Yezi' => 'йәзид',
+        'Yiii' => 'и',
+        'Zanb' => 'занабазар',
+        'Zinh' => 'вариҫләнгән',
+        'Zmth' => 'математик билдәләү',
+        'Zsye' => 'эмодзи',
+        'Zsym' => 'символдар',
+        'Zxxx' => 'яҙыуһыҙ',
+        'Zyyy' => 'дөйөм',
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/bn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/bn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/bn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/bn.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,14 +27,14 @@
         'Cprt' => 'সাইপ্রোয়েট',
         'Cyrl' => 'সিরিলিক',
         'Cyrs' => 'প্রাচীন চার্চ স্লাভোনিক সিরিলিক',
-        'Deva' => 'দেবনগরি',
+        'Deva' => 'দেবনাগরী',
         'Dsrt' => 'দেসেরাত',
         'Egyd' => 'মিশরীয় ডেমোটিক',
         'Egyh' => 'মিশরীয় হায়রেটিক',
         'Egyp' => 'মিশরীয় হায়ারোগ্লিপ',
         'Ethi' => 'ইথিওপিয়',
         'Geok' => 'জর্জিয় খুৎসুরি',
-        'Geor' => 'জর্জিয়ান',
+        'Geor' => 'জর্জীয়',
         'Glag' => 'গ্লাগোলিটিক',
         'Goth' => 'গোথিক',
         'Grek' => 'গ্রিক',
@@ -81,11 +81,11 @@
         'Mlym' => 'মালায়ালাম',
         'Mong' => 'মোঙ্গোলীয়',
         'Moon' => 'মুন',
-        'Mtei' => 'মেইটেই মায়েক',
+        'Mtei' => 'মেইতেই মায়েক',
         'Mymr' => 'মায়ানমার',
         'Nkoo' => 'এন’কো',
         'Ogam' => 'ওঘাম',
-        'Olck' => 'ওল চিকি',
+        'Olck' => 'অলচিকি',
         'Orkh' => 'অর্খোন',
         'Orya' => 'ওড়িয়া',
         'Osma' => 'ওসমানিয়',
@@ -109,7 +109,7 @@
         'Sinh' => 'সিংহলি',
         'Sund' => 'সুন্দানিজ',
         'Sylo' => 'সিলেটি নাগরি',
-        'Syrc' => 'সিরিয়াক',
+        'Syrc' => 'সিরীয়',
         'Syre' => 'এস্ট্রেঙ্গেলো সিরিয়াক',
         'Syrj' => 'পশ্চিমাঞ্চলীয় সিরিয়াক',
         'Syrn' => 'পূর্বাঞ্চলীয় সিরিয়াক',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/br.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/br.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/br.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/br.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,6 +61,7 @@
         'Mong' => 'mongolek',
         'Mymr' => 'myanmar',
         'Narb' => 'henarabek an Norzh',
+        'Nkoo' => 'nkoek',
         'Ogam' => 'ogam',
         'Orya' => 'oriya',
         'Phnx' => 'fenikianek',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/cv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/cv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/cv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/cv.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,13 +2,198 @@
 
 return [
     'Names' => [
-        'Arab' => 'арап',
-        'Cyrl' => 'кириллица',
-        'Hans' => 'ҫӑмӑллатнӑн китай',
-        'Hant' => 'традициллӗн китай',
-        'Jpan' => 'япони',
-        'Kore' => 'корей',
-        'Latn' => 'латин',
-        'Zxxx' => 'ҫырусӑр',
+        'Adlm' => 'адлам ҫырулӑхӗ',
+        'Aghb' => 'агван ҫырулӑхӗ',
+        'Ahom' => 'ахом ҫырулӑхӗ',
+        'Arab' => 'араб ҫырулӑхӗ',
+        'Aran' => 'насталик ҫырулӑхӗ',
+        'Armi' => 'арамей ҫырулӑхӗ',
+        'Armn' => 'эрмен ҫырулӑхӗ',
+        'Avst' => 'авести ҫырулӑхӗ',
+        'Bali' => 'бали ҫырулӑхӗ',
+        'Bamu' => 'бамум ҫырулӑхӗ',
+        'Bass' => 'басса (вах) ҫырулӑхӗ',
+        'Batk' => 'батак ҫырулӑхӗ',
+        'Beng' => 'бенгал ҫырулӑхӗ',
+        'Berf' => 'бэри ҫырулӑхӗ',
+        'Bhks' => 'бхайксуки ҫырулӑхӗ',
+        'Bopo' => 'бопомофо ҫырулӑхӗ',
+        'Brah' => 'брахми ҫырулӑхӗ',
+        'Brai' => 'брайль ҫырулӑхӗ',
+        'Bugi' => 'бугинизи ҫырулӑхӗ',
+        'Buhd' => 'бухид ҫырулӑхӗ',
+        'Cakm' => 'чакма ҫырулӑхӗ',
+        'Cans' => 'канада сыпӑклӑ ҫырулӑхӗ',
+        'Cari' => 'кари ҫырулӑхӗ',
+        'Cham' => 'чам ҫырулӑхӗ',
+        'Cher' => 'чероки ҫырулӑхӗ',
+        'Chrs' => 'хорезм ҫырулӑхӗ',
+        'Copt' => 'копт ҫырулӑхӗ',
+        'Cpmn' => 'кипр-миной ҫырулӑхӗ',
+        'Cprt' => 'кипр ҫырулӑхӗ',
+        'Cyrl' => 'кирилл ҫырулӑхӗ',
+        'Cyrs' => 'авалхи славян ҫырулӑхӗ',
+        'Deva' => 'деванагари ҫырулӑхӗ',
+        'Diak' => 'дивехи-акуру ҫырулӑхӗ',
+        'Dogr' => 'догри ҫырулӑхӗ',
+        'Dsrt' => 'дезерет ҫырулӑхӗ',
+        'Dupl' => 'дюплойе ҫырулӑхӗ',
+        'Egyp' => 'египет ҫырулӑхӗ',
+        'Elba' => 'эльбасан ҫырулӑхӗ',
+        'Elym' => 'элам ҫырулӑхӗ',
+        'Ethi' => 'эфиоп ҫырулӑхӗ',
+        'Gara' => 'гарай ҫырулӑхӗ',
+        'Geor' => 'грузин ҫырулӑхӗ',
+        'Glag' => 'глагол ҫырулӑхӗ',
+        'Gong' => 'гунджала-гонди ҫырулӑхӗ',
+        'Gonm' => 'масарам-гонди ҫырулӑхӗ',
+        'Goth' => 'гот ҫырулӑхӗ',
+        'Gran' => 'грантха ҫырулӑхӗ',
+        'Grek' => 'грек ҫырулӑхӗ',
+        'Gujr' => 'гуджарати ҫырулӑхӗ',
+        'Gukh' => 'кхема ҫырулӑхӗ',
+        'Guru' => 'гурмукхи ҫырулӑхӗ',
+        'Hanb' => 'ханьпа бопомофо ҫырулӑхӗ',
+        'Hang' => 'хангыль ҫырулӑхӗ',
+        'Hani' => 'китай ҫырулӑхӗ',
+        'Hano' => 'хануну ҫырулӑхӗ',
+        'Hans' => 'ҫӑмӑллатнӑ китай ҫырулӑхӗ',
+        'Hant' => 'йӑлана кӗнӗ китай ҫырулӑхӗ',
+        'Hatr' => 'хатра ҫырулӑхӗ',
+        'Hebr' => 'еврей ҫырулӑхӗ',
+        'Hira' => 'хирагана ҫырулӑхӗ',
+        'Hluw' => 'луви ҫырулӑхӗ',
+        'Hmng' => 'пахау ҫырулӑхӗ',
+        'Hmnp' => 'ньякенг-пуачуэ ҫырулӑхӗ',
+        'Hrkt' => 'катаканапа хирагана ҫырулӑхӗ',
+        'Hung' => 'авалхи венгр ҫырулӑхӗ',
+        'Ital' => 'авалхи итальян ҫырулӑхӗ',
+        'Jamo' => 'джамо ҫырулӑхӗ',
+        'Java' => 'яван ҫырулӑхӗ',
+        'Jpan' => 'япон ҫырулӑхӗ',
+        'Kali' => 'кая-ли ҫырулӑхӗ',
+        'Kana' => 'катакана ҫырулӑхӗ',
+        'Kawi' => 'кави ҫырулӑхӗ',
+        'Khar' => 'кхароштхи ҫырулӑхӗ',
+        'Khmr' => 'кхмер ҫырулӑхӗ',
+        'Khoj' => 'ходжики ҫырулӑхӗ',
+        'Kits' => 'пӗчӗк кидань ҫырулӑхӗ',
+        'Knda' => 'каннада ҫырулӑхӗ',
+        'Kore' => 'корей ҫырулӑхӗ',
+        'Krai' => 'кират-рай ҫырулӑхӗ',
+        'Kthi' => 'кайтхи ҫырулӑхӗ',
+        'Lana' => 'ланна ҫырулӑхӗ',
+        'Laoo' => 'лаос ҫырулӑхӗ',
+        'Latf' => 'латин фрактура ҫырулӑхӗ',
+        'Latg' => 'гэл латин ҫырулӑхӗ',
+        'Latn' => 'латин ҫырулӑхӗ',
+        'Lepc' => 'лепча ҫырулӑхӗ',
+        'Limb' => 'лимбу ҫырулӑхӗ',
+        'Lina' => 'А йӗрлӗ ҫырулӑх',
+        'Linb' => 'Ӑ йӗрлӗ ҫырулӑх',
+        'Lisu' => 'лису ҫырулӑхӗ',
+        'Lyci' => 'лики ҫырулӑхӗ',
+        'Lydi' => 'лиди ҫырулӑхӗ',
+        'Mahj' => 'махаджани ҫырулӑхӗ',
+        'Maka' => 'макасар ҫырулӑхӗ',
+        'Mand' => 'мандей ҫырулӑхӗ',
+        'Mani' => 'манихей ҫырулӑхӗ',
+        'Marc' => 'марчхен ҫырулӑхӗ',
+        'Medf' => 'обэри-окаимэ ҫырулӑхӗ',
+        'Mend' => 'менде ҫырулӑхӗ',
+        'Merc' => 'чалӑш мероит ҫырулӑхӗ',
+        'Mero' => 'мероит ҫырулӑхӗ',
+        'Mlym' => 'малаялам ҫырулӑхӗ',
+        'Modi' => 'моди ҫырулӑхӗ',
+        'Mong' => 'монгол ҫырулӑхӗ',
+        'Mroo' => 'мро ҫырулӑхӗ',
+        'Mtei' => 'манипури ҫырулӑхӗ',
+        'Mult' => 'мултани ҫырулӑхӗ',
+        'Mymr' => 'мьянма ҫырулӑхӗ',
+        'Nagm' => 'наг-мундари ҫырулӑхӗ',
+        'Nand' => 'нандинагари ҫырулӑхӗ',
+        'Narb' => 'авалхи ҫур ҫӗр араб ҫырулӑхӗ',
+        'Nbat' => 'набатей ҫырулӑхӗ',
+        'Newa' => 'нева ҫырулӑхӗ',
+        'Nkoo' => 'нко ҫырулӑхӗ',
+        'Nshu' => 'нюй-шу ҫырулӑхӗ',
+        'Ogam' => 'огам ҫырулӑхӗ',
+        'Olck' => 'ол-чики ҫырулӑхӗ',
+        'Onao' => 'ол-онал ҫырулӑхӗ',
+        'Orkh' => 'авалхи тӗрӗк ҫырулӑхӗ',
+        'Orya' => 'ори ҫырулӑхӗ',
+        'Osge' => 'осейдж ҫырулӑхӗ',
+        'Osma' => 'осман ҫырулӑхӗ',
+        'Ougr' => 'авалхи уйгур ҫырулӑхӗ',
+        'Palm' => 'пальмир ҫырулӑхӗ',
+        'Pauc' => 'паун-чжин-хаук ҫырулӑхӗ',
+        'Perm' => 'авалхи пермь ҫырулӑхӗ',
+        'Phag' => 'пагспа ҫырулӑхӗ',
+        'Phli' => 'пехлеви ҫырулӑхӗ',
+        'Phlp' => 'пехлеви псалтырь ҫырулӑхӗ',
+        'Phnx' => 'финики ҫырулӑхӗ',
+        'Plrd' => 'мяо ҫырулӑхӗ',
+        'Prti' => 'парфян ҫырулӑхӗ',
+        'Qaag' => 'зоджи ҫырулӑхӗ',
+        'Rjng' => 'реджанг ҫырулӑхӗ',
+        'Rohg' => 'ханифи ҫырулӑхӗ',
+        'Runr' => 'руна ҫырулӑхӗ',
+        'Samr' => 'самаритян ҫырулӑхӗ',
+        'Sarb' => 'авалхи кӑнтӑр араб ҫырулӑхӗ',
+        'Saur' => 'саураштра ҫырулӑхӗ',
+        'Sgnw' => 'паллӑ ҫырулӑхӗ',
+        'Shaw' => 'шоу ҫырулӑхӗ',
+        'Shrd' => 'шарада ҫырулӑхӗ',
+        'Sidd' => 'сиддхам ҫырулӑхӗ',
+        'Sidt' => 'сидет ҫырулӑхӗ',
+        'Sind' => 'кхудавади ҫырулӑхӗ',
+        'Sinh' => 'сингал ҫырулӑхӗ',
+        'Sogd' => 'согди ҫырулӑхӗ',
+        'Sogo' => 'авалхи согди ҫырулӑхӗ',
+        'Sora' => 'сора-сонпенг ҫырулӑхӗ',
+        'Soyo' => 'соёмбо ҫырулӑхӗ',
+        'Sund' => 'сундан ҫырулӑхӗ',
+        'Sunu' => 'сунвар ҫырулӑхӗ',
+        'Sylo' => 'силоти-нагри ҫырулӑхӗ',
+        'Syrc' => 'сири ҫырулӑхӗ',
+        'Syre' => 'сири эстрангело ҫырулӑхӗ',
+        'Syrj' => 'анӑҫ сири ҫырулӑхӗ',
+        'Syrn' => 'тухӑҫ сири ҫырулӑхӗ',
+        'Tagb' => 'тагбанва ҫырулӑхӗ',
+        'Takr' => 'такри ҫырулӑхӗ',
+        'Tale' => 'тай-ныа ҫырулӑхӗ',
+        'Talu' => 'ҫӗнӗ тай-ныа ҫырулӑхӗ',
+        'Taml' => 'тамил ҫырулӑхӗ',
+        'Tang' => 'тангут ҫырулӑхӗ',
+        'Tavt' => 'тай-вьет ҫырулӑхӗ',
+        'Tayo' => 'тай-йо ҫырулӑхӗ',
+        'Telu' => 'телугу ҫырулӑхӗ',
+        'Tfng' => 'тифинаг ҫырулӑхӗ',
+        'Tglg' => 'тагалог ҫырулӑхӗ',
+        'Thaa' => 'таана ҫырулӑхӗ',
+        'Thai' => 'тай ҫырулӑхӗ',
+        'Tibt' => 'тибет ҫырулӑхӗ',
+        'Tirh' => 'тирхута ҫырулӑхӗ',
+        'Tnsa' => 'тангса ҫырулӑхӗ',
+        'Todr' => 'тодри ҫырулӑхӗ',
+        'Tols' => 'толонг-сики ҫырулӑхӗ',
+        'Toto' => 'тото ҫырулӑхӗ',
+        'Tutg' => 'тулу-тигалари ҫырулӑхӗ',
+        'Ugar' => 'угарит ҫырулӑхӗ',
+        'Vaii' => 'вай ҫырулӑхӗ',
+        'Vith' => 'виткути ҫырулӑхӗ',
+        'Wara' => 'варанг-кшити ҫырулӑхӗ',
+        'Wcho' => 'ванчо ҫырулӑхӗ',
+        'Xpeo' => 'авалхи перс ҫырулӑхӗ',
+        'Xsux' => 'шумер-аккад савӑл ҫырулӑхӗ',
+        'Yezi' => 'езид ҫырулӑхӗ',
+        'Yiii' => 'и ҫырулӑхӗ',
+        'Zanb' => 'тӑваткал забазар ҫырулӑхӗ',
+        'Zinh' => 'еткерленӗ ҫырулӑх',
+        'Zmth' => 'математика паллисем',
+        'Zsye' => 'эмодзи',
+        'Zsym' => 'паллӑсем',
+        'Zxxx' => 'ҫырулӑхсӑр',
+        'Zyyy' => 'пӗтӗмӗшле йышӑннӑ ҫырулӑх',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en_GB.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en_GB.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en_GB.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en_GB.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,7 @@
+<?php
+
+return [
+    'Names' => [
+        'Hrkt' => 'Japanese Syllabaries',
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en_IN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en_IN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en_IN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en_IN.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-<?php
-
-return [
-    'Names' => [
-        'Beng' => 'Bengali',
-        'Orya' => 'Oriya',
-    ],
-];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/en.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
         'Bass' => 'Bassa Vah',
         'Batk' => 'Batak',
         'Beng' => 'Bangla',
+        'Berf' => 'Beria Erfe',
         'Bhks' => 'Bhaiksuki',
         'Blis' => 'Blissymbols',
         'Bopo' => 'Bopomofo',
@@ -155,11 +156,12 @@
         'Samr' => 'Samaritan',
         'Sara' => 'Sarati',
         'Sarb' => 'Old South Arabian',
-        'Saur' => 'Saurashtra',
+        'Saur' => 'Sourashtra',
         'Sgnw' => 'SignWriting',
         'Shaw' => 'Shavian',
         'Shrd' => 'Sharada',
         'Sidd' => 'Siddham',
+        'Sidt' => 'Sidetic',
         'Sind' => 'Khudawadi',
         'Sinh' => 'Sinhala',
         'Sogd' => 'Sogdian',
@@ -180,6 +182,7 @@
         'Taml' => 'Tamil',
         'Tang' => 'Tangut',
         'Tavt' => 'Tai Viet',
+        'Tayo' => 'Tai Yo',
         'Telu' => 'Telugu',
         'Teng' => 'Tengwar',
         'Tfng' => 'Tifinagh',
@@ -190,6 +193,7 @@
         'Tirh' => 'Tirhuta',
         'Tnsa' => 'Tangsa',
         'Todr' => 'Todhri',
+        'Tols' => 'Tolong Siki',
         'Toto' => 'Toto',
         'Tutg' => 'Tulu-Tigalari',
         'Ugar' => 'Ugaritic',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/eo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/eo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/eo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/eo.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,6 +2,61 @@
 
 return [
     'Names' => [
+        'Adlm' => 'adlam',
+        'Arab' => 'araba',
+        'Aran' => 'nastalika',
+        'Armn' => 'armena',
+        'Beng' => 'bengala',
+        'Bopo' => 'bopomofo',
+        'Brai' => 'brajlo',
+        'Cakm' => 'ĉakma',
+        'Cans' => 'unuecigita indiĝen-kanadana silabaro',
+        'Cher' => 'ĉeroka',
+        'Cyrl' => 'cirila',
+        'Deva' => 'devanagara',
+        'Ethi' => 'etiopa',
+        'Geor' => 'kartvela',
+        'Grek' => 'greka',
+        'Gujr' => 'guĝarata',
+        'Guru' => 'gurmuka',
+        'Hanb' => 'ĉina kun bopomofo',
+        'Hang' => 'hangulo',
+        'Hani' => 'ĉina',
+        'Hans' => 'simpligita',
+        'Hant' => 'tradicia',
+        'Hebr' => 'hebrea',
+        'Hira' => 'rondaj kanaoj',
+        'Hrkt' => 'japanaj silabaroj',
+        'Jamo' => 'jamo',
+        'Java' => 'java',
+        'Jpan' => 'japana',
+        'Kana' => 'strekaj kanaoj',
+        'Khmr' => 'kmera',
+        'Knda' => 'kanara',
+        'Kore' => 'korea',
+        'Laoo' => 'laŭa',
         'Latn' => 'latina',
+        'Mlym' => 'malajalama',
+        'Mong' => 'mongola',
+        'Mtei' => 'manipura',
+        'Mymr' => 'birma',
+        'Nkoo' => 'N’Ko',
+        'Orya' => 'orija',
+        'Rohg' => 'hanifi',
+        'Sinh' => 'sinhala',
+        'Sund' => 'sunda',
+        'Syrc' => 'siria',
+        'Taml' => 'tamila',
+        'Telu' => 'telugua',
+        'Thaa' => 'maldiva',
+        'Thai' => 'taja',
+        'Tibt' => 'tibeta',
+        'Vaii' => 'vaja',
+        'Yiii' => 'jia',
+        'Zmth' => 'matematika notacio',
+        'Zsye' => 'miensimboloj',
+        'Zsym' => 'simboloj',
+        'Zxxx' => 'neskribata',
+        'Zyyy' => 'nedifinita',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/et.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/et.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/et.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/et.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,8 @@
         'Bass' => 'bassa',
         'Batk' => 'bataki',
         'Beng' => 'bengali',
+        'Berf' => 'zaghava',
+        'Bhks' => 'bhaiksuki',
         'Blis' => 'Blissi sümbolid',
         'Bopo' => 'bopomofo',
         'Brah' => 'braahmi',
@@ -36,6 +38,7 @@
         'Cyrs' => 'kürilliline kirikuslaavi',
         'Deva' => 'devanaagari',
         'Diak' => 'divehi',
+        'Dogr' => 'dogri',
         'Dsrt' => 'desereti',
         'Dupl' => 'Duployé kiirkiri',
         'Egyd' => 'egiptuse demootiline',
@@ -54,6 +57,7 @@
         'Gran' => 'grantha',
         'Grek' => 'kreeka',
         'Gujr' => 'gudžarati',
+        'Gukh' => 'gurungi',
         'Guru' => 'gurmukhi',
         'Hanb' => 'hanbi',
         'Hang' => 'korea',
@@ -66,6 +70,7 @@
         'Hira' => 'hiragana',
         'Hluw' => 'Anatoolia hieroglüüfkiri',
         'Hmng' => 'phahau-hmongi kiri',
+        'Hmnp' => 'Chervangi kiri',
         'Hrkt' => 'jaapani silpkirjad',
         'Hung' => 'vanaungari',
         'Inds' => 'Induse',
@@ -84,6 +89,7 @@
         'Knda' => 'kannada',
         'Kore' => 'korea segakiri',
         'Kpel' => 'kpelle',
+        'Krai' => 'kirat-rai',
         'Kthi' => 'kaithi',
         'Lana' => 'tai-thami',
         'Laoo' => 'lao',
@@ -102,7 +108,9 @@
         'Maka' => 'makassari',
         'Mand' => 'mandea',
         'Mani' => 'mani',
+        'Marc' => 'martšeni',
         'Maya' => 'maaja hieroglüüfkiri',
+        'Medf' => 'medefaidrini',
         'Mend' => 'mende',
         'Merc' => 'meroe kursiivkiri',
         'Mero' => 'meroe',
@@ -115,6 +123,7 @@
         'Mult' => 'Multani',
         'Mymr' => 'birma',
         'Nagm' => 'Nagi mundari',
+        'Nand' => 'nandinaagari',
         'Narb' => 'Põhja-Araabia',
         'Nbat' => 'Nabatea',
         'Newa' => 'nevari',
@@ -123,12 +132,14 @@
         'Nshu' => 'nüšu',
         'Ogam' => 'ogam',
         'Olck' => 'santali',
+        'Onao' => 'bhumidži',
         'Orkh' => 'Orhoni',
         'Orya' => 'oria',
         'Osge' => 'oseidži',
         'Osma' => 'osmani',
         'Ougr' => 'vanauiguuri',
         'Palm' => 'Palmyra',
+        'Pauc' => 'Pau Cin Hau',
         'Perm' => 'vanapermi',
         'Phag' => 'phakpa',
         'Phli' => 'pahlavi raidkiri',
@@ -149,6 +160,7 @@
         'Shaw' => 'Shaw’ kiri',
         'Shrd' => 'šaarada',
         'Sidd' => 'siddhami',
+        'Sidt' => 'side',
         'Sind' => 'hudavadi',
         'Sinh' => 'singali',
         'Sogd' => 'sogdi',
@@ -169,6 +181,7 @@
         'Taml' => 'tamili',
         'Tang' => 'tanguudi',
         'Tavt' => 'tai-vieti',
+        'Tayo' => 'njoo',
         'Telu' => 'telugu',
         'Teng' => 'Tengwari',
         'Tfng' => 'tifinagi',
@@ -178,7 +191,10 @@
         'Tibt' => 'tiibeti',
         'Tirh' => 'tirhuta',
         'Tnsa' => 'tase',
+        'Todr' => 'Todhri',
+        'Tols' => 'tolong-siki',
         'Toto' => 'toto',
+        'Tutg' => 'tulu',
         'Ugar' => 'ugariti',
         'Vaii' => 'vai',
         'Visp' => 'nähtava kõne',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/fi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/fi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/fi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/fi.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
         'Bass' => 'bassa',
         'Batk' => 'batakilainen',
         'Beng' => 'bengalilainen',
+        'Berf' => 'beria-aakkosto',
         'Bhks' => 'sanskritin bhaiksuki-aakkosto',
         'Blis' => 'bliss-symbolit',
         'Bopo' => 'bopomofo',
@@ -46,6 +47,7 @@
         'Elba' => 'elbasanilainen',
         'Elym' => 'elymealainen',
         'Ethi' => 'etiopialainen',
+        'Gara' => 'garay',
         'Geok' => 'muinaisgeorgialainen',
         'Geor' => 'georgialainen',
         'Glag' => 'glagoliittinen',
@@ -55,6 +57,7 @@
         'Gran' => 'grantha',
         'Grek' => 'kreikkalainen',
         'Gujr' => 'gudžaratilainen',
+        'Gukh' => 'gurung khema -aakkosto',
         'Guru' => 'gurmukhi',
         'Hanb' => 'kiinan han ja bopomofo',
         'Hang' => 'hangul',
@@ -86,6 +89,7 @@
         'Knda' => 'kannadalainen',
         'Kore' => 'korealainen',
         'Kpel' => 'kpelle',
+        'Krai' => 'kirat rai',
         'Kthi' => 'kaithi',
         'Lana' => 'lanna',
         'Laoo' => 'laolainen',
@@ -128,6 +132,7 @@
         'Nshu' => 'nüshu',
         'Ogam' => 'ogam',
         'Olck' => 'ol chiki',
+        'Onao' => 'ol onal',
         'Orkh' => 'orkhon',
         'Orya' => 'orijalainen',
         'Osge' => 'osagen aakkosto',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ga.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ga.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ga.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ga.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
         'Egyh' => 'Éigipteach cliarúil',
         'Egyp' => 'Iairiglifí Éigipteacha',
         'Elba' => 'Elbasan',
-        'Ethi' => 'Aetóipic',
+        'Ethi' => 'Aetóipice',
         'Geor' => 'Seoirseach',
         'Glag' => 'Glagalach',
         'Gonm' => 'Masaram Gondi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/gd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/gd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/gd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/gd.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
         'Bass' => 'Bassa Vah',
         'Batk' => 'Batak',
         'Beng' => 'Beangailis',
+        'Berf' => 'Beria Erfe',
         'Bhks' => 'Bhaiksuki',
         'Blis' => 'Comharran Bliss',
         'Bopo' => 'Bopomofo',
@@ -148,6 +149,7 @@
         'Shaw' => 'Sgrìobhadh an t-Seathaich',
         'Shrd' => 'Sharada',
         'Sidd' => 'Siddham',
+        'Sidt' => 'Sideatach',
         'Sind' => 'Khudawadi',
         'Sinh' => 'Sinhala',
         'Sogd' => 'Sogdianais',
@@ -168,6 +170,7 @@
         'Taml' => 'Taimil',
         'Tang' => 'Tangut',
         'Tavt' => 'Tai Viet',
+        'Tayo' => 'Tai Yo',
         'Telu' => 'Telugu',
         'Teng' => 'Tengwar',
         'Tfng' => 'Tifinagh',
@@ -178,6 +181,7 @@
         'Tirh' => 'Tirhuta',
         'Tnsa' => 'Tangsa',
         'Todr' => 'Todhri',
+        'Tols' => 'Tolong Siki',
         'Tutg' => 'Tulu-Tigalari',
         'Ugar' => 'Ugariticeach',
         'Vaii' => 'Vai',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/hi_Latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/hi_Latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/hi_Latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/hi_Latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -3,10 +3,8 @@
 return [
     'Names' => [
         'Bali' => 'Baali',
-        'Beng' => 'Bangla',
         'Inds' => 'Sindhu',
         'Mymr' => 'Burmese',
-        'Orya' => 'Odia',
         'Talu' => 'Naya Tai Lue',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/hi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/hi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/hi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/hi.php	2026-05-20 10:56:49.000000000 +0200
@@ -10,7 +10,7 @@
         'Avst' => 'अवेस्तन',
         'Bali' => 'बाली',
         'Batk' => 'बटकी',
-        'Beng' => 'बंगाली',
+        'Beng' => 'बांग्ला',
         'Blis' => 'ब्लिसिम्बॉल्स',
         'Bopo' => 'बोपोमोफ़ो',
         'Brah' => 'ब्रह्मी',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ie.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ie.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ie.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ie.php	2026-05-20 10:56:49.000000000 +0200
@@ -3,12 +3,19 @@
 return [
     'Names' => [
         'Arab' => 'arabic',
+        'Aran' => 'nastalik',
+        'Brai' => 'Braille',
         'Cyrl' => 'cirillic',
         'Hans' => 'simplificat',
         'Hant' => 'traditional',
+        'Hrkt' => 'japanesi sillabariums',
         'Jpan' => 'japanesi',
         'Kore' => 'korean',
         'Latn' => 'latin',
+        'Mong' => 'mongolian',
+        'Zmth' => 'matematic notation',
+        'Zsye' => 'emoji',
+        'Zsym' => 'simboles',
         'Zxxx' => 'ínscrit',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/kk_Arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/kk_Arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/kk_Arab.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/kk_Arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,199 @@
+<?php
+
+return [
+    'Names' => [
+        'Adlm' => 'ادلام جازۋى',
+        'Aghb' => 'اگۆان جازۋى',
+        'Ahom' => 'احوم جازۋى',
+        'Arab' => 'اراب جازۋى',
+        'Aran' => 'ناستاليك جازۋى',
+        'Armi' => 'ارامەي جازۋى',
+        'Armn' => 'ارميان جازۋى',
+        'Avst' => 'اۆەستا جازۋى',
+        'Bali' => 'بالي جازۋى',
+        'Bamu' => 'بامۋم جازۋى',
+        'Bass' => 'باسسا جازۋى',
+        'Batk' => 'باتاك جازۋى',
+        'Beng' => 'بەنگال جازۋى',
+        'Berf' => 'زاگاۋا جازۋى',
+        'Bhks' => 'بحايسۋكى جازۋى',
+        'Bopo' => 'بوپوموفو جازۋى',
+        'Brah' => 'براحمي جازۋى',
+        'Brai' => 'برايل جازۋى',
+        'Bugi' => 'بۋگي جازۋى',
+        'Buhd' => 'بۋحيد جازۋى',
+        'Cakm' => 'چاكما جازۋى',
+        'Cans' => 'كانادالىق بۋىن جۇيەلى جازۋ',
+        'Cari' => 'كاري جازۋى',
+        'Cham' => 'چام جازۋى',
+        'Cher' => 'چەروكي جازۋى',
+        'Chrs' => 'حورەزم جازۋى',
+        'Copt' => 'كوپت جازۋى',
+        'Cpmn' => 'كيپر-مينوي جازۋى',
+        'Cprt' => 'كيپر جازۋى',
+        'Cyrl' => 'كيريل جازۋى',
+        'Cyrs' => 'كونە ورىس جازۋى',
+        'Deva' => 'دەۆاناگاري جازۋى',
+        'Diak' => 'ديۆەحي اكۋرۋ جازۋى',
+        'Dogr' => 'دوگرا جازۋى',
+        'Dsrt' => 'دەسەرەت جازۋى',
+        'Dupl' => 'دۋپلويە جازۋى',
+        'Egyp' => 'مىسىر جازۋى',
+        'Elba' => 'ەلباسان جازۋى',
+        'Elym' => 'ەليماي جازۋى',
+        'Ethi' => 'ەفيوپيالىق جازۋ',
+        'Gara' => 'گاراي جازۋى',
+        'Geor' => 'گرۋزين جازۋى',
+        'Glag' => 'گلاگول جازۋى',
+        'Gong' => 'گۋنجالا گوندي جازۋى',
+        'Gonm' => 'ماسارام گوندي جازۋى',
+        'Goth' => 'گوت جازۋى',
+        'Gran' => 'گرانتحا جازۋى',
+        'Grek' => 'گرەك جازۋى',
+        'Gujr' => 'گۋجاراتي جازۋى',
+        'Gukh' => 'گۋرۋڭ كحەما جازۋى',
+        'Guru' => 'گۋرمۋكحي جازۋى',
+        'Hanb' => 'حانب جازۋى',
+        'Hang' => 'حانگىل جازۋى',
+        'Hani' => 'قىتاي جازۋى',
+        'Hano' => 'حانۋنۋ جازۋى',
+        'Hans' => 'جەڭىلدەتىلگەن جازۋ',
+        'Hant' => 'ءداستۇرلى جازۋ',
+        'Hatr' => 'حاترا جازۋى',
+        'Hebr' => 'يۆريت جازۋى',
+        'Hira' => 'حيراگانا جازۋى',
+        'Hluw' => 'انادولى جازۋى',
+        'Hmng' => 'پاحاۋ جازۋى',
+        'Hmnp' => 'نياكەڭ پۋاچۋە حموڭ جازۋى',
+        'Hrkt' => 'حيراگانا نەمەسە كاتاكانا',
+        'Hung' => 'ماجار رۋناسى',
+        'Ital' => 'ەسكى يتالياجازۋى',
+        'Jamo' => 'جامو جازۋى',
+        'Java' => 'ياۆا جازۋى',
+        'Jpan' => 'جاپون جازۋى',
+        'Kali' => 'كايا-لي جازۋى',
+        'Kana' => 'كاتاكانا جازۋى',
+        'Kawi' => 'كاۋي جازۋى',
+        'Khar' => 'كحاروشتحي جازۋى',
+        'Khmr' => 'كحمەر جازۋى',
+        'Khoj' => 'حوجيكي جازۋى',
+        'Kits' => 'شاعىن كيدان جازۋى',
+        'Knda' => 'كاننادا جازۋى',
+        'Kore' => 'كورەي جازۋى',
+        'Krai' => 'كيرات راي جازۋى',
+        'Kthi' => 'كايتحي جازۋى',
+        'Lana' => 'لاننا جازۋى',
+        'Laoo' => 'لاوس جازۋى',
+        'Latf' => 'فراكتۋر لاتىن جازۋى',
+        'Latg' => 'گاەل لاتىن جازۋى',
+        'Latn' => 'لاتىن جازۋى',
+        'Lepc' => 'لەپچا جازۋى',
+        'Limb' => 'ليمبۋ جازۋى',
+        'Lina' => 'سىزىقتىق A جازۋى',
+        'Linb' => 'سىزىقتىق B جازۋى',
+        'Lisu' => 'فرايسەر جازۋى',
+        'Lyci' => 'ليكي جازۋى',
+        'Lydi' => 'ليدي جازۋى',
+        'Mahj' => 'ماحاجاني جازۋى',
+        'Maka' => 'ماكاسار جازۋى',
+        'Mand' => 'ماندەي جازۋى',
+        'Mani' => 'مانيحەي جازۋى',
+        'Marc' => 'مارچەن جازۋى',
+        'Medf' => 'مەدەفايدرين جازۋى',
+        'Mend' => 'مەندە جازۋى',
+        'Merc' => 'مەرويت قيعاش جازۋى',
+        'Mero' => 'مەرويت جازۋى',
+        'Mlym' => 'مالايالام جازۋى',
+        'Modi' => 'مودي جازۋى',
+        'Mong' => 'موڭعول جازۋى',
+        'Mroo' => 'مرو جازۋى',
+        'Mtei' => 'مەيتەي جازۋى',
+        'Mult' => 'مۋلتاني جازۋى',
+        'Mymr' => 'ميانما جازۋى',
+        'Nagm' => 'ناگ مۋنداري جازۋى',
+        'Nand' => 'نانديناگاري جازۋى',
+        'Narb' => 'كونە سولتۇستىك اراب جازۋى',
+        'Nbat' => 'ناباتەي جازۋى',
+        'Newa' => 'نيۋا جازۋى',
+        'Nkoo' => 'نكو جازۋى',
+        'Nshu' => 'نيۋ-شۋ جازۋى',
+        'Ogam' => 'وگام جازۋى',
+        'Olck' => 'ول-چيكي جازۋى',
+        'Onao' => 'ول-ونال جازۋى',
+        'Orkh' => 'كونە تۇركى جازۋى',
+        'Orya' => 'وريا جازۋى',
+        'Osge' => 'وسەيج جازۋى',
+        'Osma' => 'يسمانيا جازۋى',
+        'Ougr' => 'كونە ۇيعىر جازۋى',
+        'Palm' => 'پالمير جازۋى',
+        'Pauc' => 'پاۋ سين حاۋ جازۋى',
+        'Perm' => 'كونە پەرم جازۋى',
+        'Phag' => 'تيبەر-موڭعول جازۋى',
+        'Phli' => 'جازبا پاحلاۆي',
+        'Phlp' => 'پاحلاۆي جازۋى',
+        'Phnx' => 'فينيكيا جازۋى',
+        'Plrd' => 'پوللارد فونەتيكالىق جازۋى',
+        'Prti' => 'جازبا پارفيا',
+        'Qaag' => 'زوجي جازۋى',
+        'Rjng' => 'رەجاڭ جازۋى',
+        'Rohg' => 'حانيفي جازۋى',
+        'Runr' => 'رۋنا',
+        'Samr' => 'ساماريا جازۋى',
+        'Sarb' => 'وڭتۇستىك اراب جازۋى',
+        'Saur' => 'ساۋراشترا جازۋى',
+        'Sgnw' => 'جازۋ',
+        'Shaw' => 'شوۋ جازۋى',
+        'Shrd' => 'شارادا جازۋى',
+        'Sidd' => 'سيدحام جازۋى',
+        'Sidt' => 'سيدەت جازۋى',
+        'Sind' => 'كحۋداۋادي جازۋى',
+        'Sinh' => 'سينگال جازۋى',
+        'Sogd' => 'سوعدى جازۋى',
+        'Sogo' => 'كونە سوعدى جازۋى',
+        'Sora' => 'سورا سومپەڭ جازۋى',
+        'Soyo' => 'سويومبو جازۋى',
+        'Sund' => 'سۋند جازۋى',
+        'Sunu' => 'سۋنۋار جازۋى',
+        'Sylo' => 'سيلحەت ناگاري جازۋى',
+        'Syrc' => 'سيريا جازۋى',
+        'Syre' => 'ەسترانگەلو سيري جازۋى',
+        'Syrj' => 'باتىس سيري جازۋى',
+        'Syrn' => 'شىعىس سيري جازۋى',
+        'Tagb' => 'تاگبانۋا جازۋى',
+        'Takr' => 'تاكري جازۋى',
+        'Tale' => 'تاي لى جازۋى',
+        'Talu' => 'جاڭا تاي لى جازۋى',
+        'Taml' => 'تاميل جازۋى',
+        'Tang' => 'تانعۇت جازۋى',
+        'Tavt' => 'تاي ۆيەت جازۋى',
+        'Tayo' => 'لاي تاي جازۋى',
+        'Telu' => 'تەلۋگۋ جازۋى',
+        'Tfng' => 'تيفيناگ جازۋى',
+        'Tglg' => 'بايبايىن جازۋى',
+        'Thaa' => 'تانا جازۋى',
+        'Thai' => 'تاي جازۋى',
+        'Tibt' => 'تيبەت جازۋى',
+        'Tirh' => 'تيرحۋتا جازۋى',
+        'Tnsa' => 'تاڭسا جازۋى',
+        'Todr' => 'تودحري جازۋى',
+        'Tols' => 'تولوڭ سيكي جازۋى',
+        'Toto' => 'توتو جازۋى',
+        'Tutg' => 'تۋلۋ-تيگالاري جازۋى',
+        'Ugar' => 'ۋگاريت جازۋى',
+        'Vaii' => 'ۆاي جازۋى',
+        'Vith' => 'ۆيتكۋتي جازۋى',
+        'Wara' => 'ۆاراڭ كشيتي جازۋى',
+        'Wcho' => 'ۋانچو جازۋى',
+        'Xpeo' => 'كونە پارسى جازۋو',
+        'Xsux' => 'شۋمەر-اككاد سىنا جازۋى',
+        'Yezi' => 'ەزيد جازۋى',
+        'Yiii' => 'ي جازۋى',
+        'Zanb' => 'زانابازار شارشى جازۋى',
+        'Zinh' => 'مۇرا ەتىلگەن',
+        'Zmth' => 'ماتەماتيكالىق جازۋ',
+        'Zsye' => 'ەموجي',
+        'Zsym' => 'تاڭبالار',
+        'Zxxx' => 'جازۋسىز',
+        'Zyyy' => 'جالپى',
+    ],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ku.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ku.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ku.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/ku.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,48 +2,194 @@
 
 return [
     'Names' => [
+        'Adlm' => 'adlamî',
+        'Aghb' => 'albanîya qefqasî',
+        'Ahom' => 'ahomî',
         'Arab' => 'erebî',
         'Aran' => 'nestalîq',
+        'Armi' => 'aramîya împeratorî',
         'Armn' => 'ermenî',
+        'Avst' => 'avestayî',
+        'Bali' => 'balînî',
+        'Bamu' => 'bamumî',
+        'Bass' => 'bassa vah',
+        'Batk' => 'batakî',
         'Beng' => 'bengalî',
+        'Berf' => 'beria erfe',
+        'Bhks' => 'bhaîksukî',
         'Bopo' => 'bopomofo',
+        'Brah' => 'brahmî',
         'Brai' => 'braille',
+        'Bugi' => 'bugî',
+        'Buhd' => 'buhid',
+        'Cakm' => 'çakmayî',
+        'Cans' => 'heceyên aborjînî yên kanadî yên yekgirtî',
+        'Cari' => 'carian',
+        'Cham' => 'çamî',
+        'Cher' => 'çerokî',
+        'Chrs' => 'xwarezmî',
         'Copt' => 'qiptî',
+        'Cpmn' => 'qibris-mînoanî',
         'Cprt' => 'qibrisî',
         'Cyrl' => 'kirîlî',
+        'Cyrs' => 'slavonîka krîlî ya dêrê ya kevn',
         'Deva' => 'devanagarî',
+        'Diak' => 'dives akuruyî',
+        'Dogr' => 'dograyî',
+        'Dsrt' => 'deseret',
+        'Dupl' => 'duployé stenografî',
         'Egyp' => 'hîyeroglîfên misirî',
+        'Elba' => 'elbasan',
+        'Elym' => 'elymaic',
         'Ethi' => 'etîyopîk',
+        'Gara' => 'garayî',
         'Geor' => 'gurcî',
+        'Glag' => 'glagolîtîk',
+        'Gong' => 'gunjala gondî',
+        'Gonm' => 'masaram gondî',
         'Goth' => 'gotîk',
+        'Gran' => 'grantha',
         'Grek' => 'yûnanî',
         'Gujr' => 'gujeratî',
+        'Gukh' => 'gurung khema',
+        'Guru' => 'gurmuxî',
         'Hanb' => 'hanîya bi bopomofoyê',
         'Hang' => 'hangulî',
         'Hani' => 'hanî',
+        'Hano' => 'hanunoo',
         'Hans' => 'sadekirî',
-        'Hant' => 'kevneşopî',
+        'Hant' => 'edetî',
+        'Hatr' => 'hatranî',
         'Hebr' => 'îbranî',
         'Hira' => 'hîraganayî',
+        'Hluw' => 'hîyeroglîfên anadolî',
+        'Hmng' => 'pahawh hmongî',
+        'Hmnp' => 'nyiakeng puachue hmongî',
         'Hrkt' => 'nivîsên heceyî yên japonî',
+        'Hung' => 'macarîya kevn',
+        'Ital' => 'îtalîya kevn',
         'Jamo' => 'jamoyî',
+        'Java' => 'javayî',
         'Jpan' => 'japonî',
+        'Kali' => 'kayah liyî',
         'Kana' => 'katakanayî',
-        'Khmr' => 'ximêrî',
+        'Kawi' => 'kawî',
+        'Khar' => 'kharoshthi',
+        'Khmr' => 'khmerî',
+        'Khoj' => 'khojkî',
+        'Kits' => 'nivîsa biçûk ya xîtanî',
         'Knda' => 'kannadayî',
         'Kore' => 'koreyî',
+        'Krai' => 'kirat rai',
+        'Kthi' => 'haithi',
+        'Lana' => 'lannayî',
         'Laoo' => 'laoyî',
+        'Latf' => 'latînîya frakturî',
+        'Latg' => 'latînîya gaelîk',
         'Latn' => 'latînî',
+        'Lepc' => 'lepçayî',
+        'Limb' => 'lîmbuyî',
+        'Lina' => 'lînear a',
+        'Linb' => 'lînear b',
+        'Lisu' => 'fraser',
+        'Lyci' => 'lîkyayî',
+        'Lydi' => 'lîdyayî',
+        'Mahj' => 'mahajanî',
+        'Maka' => 'makasarî',
+        'Mand' => 'mandaean',
+        'Mani' => 'manîheyî',
+        'Marc' => 'marchen',
+        'Medf' => 'medefaidrin',
+        'Mend' => 'mende',
+        'Merc' => 'destnivîsa meroytîk',
+        'Mero' => 'meroytîk',
         'Mlym' => 'malayamî',
+        'Modi' => 'modî',
         'Mong' => 'moxolî',
+        'Mroo' => 'mro',
+        'Mtei' => 'meitei mayekî',
+        'Mult' => 'multanî',
         'Mymr' => 'myanmarî',
+        'Nagm' => 'nag mundarî',
+        'Nand' => 'nandînagarî',
+        'Narb' => 'erebîya bakurî ya kevn',
+        'Nbat' => 'nebatî',
+        'Newa' => 'newayî',
+        'Nkoo' => 'n’koyî',
+        'Nshu' => 'nüshu',
+        'Ogam' => 'ogham',
+        'Olck' => 'ol chiki',
+        'Onao' => 'ol onal',
+        'Orkh' => 'orxun',
+        'Orya' => 'odiayî',
+        'Osge' => 'osageyî',
+        'Osma' => 'osmanya',
+        'Ougr' => 'oygurîya kevn',
+        'Palm' => 'palmîrayî',
+        'Pauc' => 'pau cin hau',
+        'Perm' => 'permîka kevn',
+        'Phag' => 'phags-pa',
+        'Phli' => 'pehlewîya nivîskî',
+        'Phlp' => 'pehlewîya psalter',
+        'Phnx' => 'fenîkeyî',
+        'Plrd' => 'pollard fonetîk',
+        'Prti' => 'partîya nivîskî',
         'Qaag' => 'zawgyi',
+        'Rjng' => 'rejang',
+        'Rohg' => 'hanîfî',
+        'Runr' => 'runîk',
+        'Samr' => 'samarîtî',
+        'Sarb' => 'erebîya başûrî ya kevn',
+        'Saur' => 'sauraştrayî',
+        'Sgnw' => 'zimanê îşaretê',
+        'Shaw' => 'shavian',
+        'Shrd' => 'sharada',
+        'Sidd' => 'siddham',
+        'Sidt' => 'sidetic',
+        'Sind' => 'khudawadi',
         'Sinh' => 'sînhalayî',
+        'Sogd' => 'sogdî',
+        'Sogo' => 'sogdîya kevn',
+        'Sora' => 'sora sompengî',
+        'Soyo' => 'soyomboyî',
+        'Sund' => 'sundanî',
+        'Sunu' => 'sunuwarî',
+        'Sylo' => 'syloti nagri',
+        'Syrc' => 'siryanî',
+        'Syre' => 'siryanîya estrangelo',
+        'Syrj' => 'siryanîya rojavayî',
+        'Syrn' => 'siryanîya rojhilatî',
+        'Tagb' => 'tagbanwa',
+        'Takr' => 'takrî',
+        'Tale' => 'taî leyî',
+        'Talu' => 'new tai lue',
         'Taml' => 'tamîlî',
+        'Tang' => 'tangut',
+        'Tavt' => 'tai viet',
+        'Tayo' => 'tai yo',
         'Telu' => 'teluguyî',
+        'Tfng' => 'tifinagh',
+        'Tglg' => 'tagalogî',
+        'Thaa' => 'thaanayî',
         'Thai' => 'tayî',
         'Tibt' => 'tîbetî',
+        'Tirh' => 'tirhuta',
+        'Tnsa' => 'tangsayî',
+        'Todr' => 'todhrî',
+        'Tols' => 'tolong sikî',
+        'Toto' => 'totoyî',
+        'Tutg' => 'tulu-tîgalarî',
+        'Ugar' => 'ugarîtîk',
+        'Vaii' => 'vaî',
+        'Vith' => 'vithkuqi',
+        'Wara' => 'varang kshiti',
+        'Wcho' => 'wançoyî',
+        'Xpeo' => 'farisîya kevn',
+        'Xsux' => 'nivîsên bizmarî yên sumero-akadî',
         'Yezi' => 'êzidî',
+        'Yiii' => 'yî',
+        'Zanb' => 'meydana zanabazar',
+        'Zinh' => 'irsî',
         'Zmth' => 'nîşandana matematîkî',
         'Zsye' => 'emojî',
         'Zsym' => 'sembol',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/meta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/meta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/meta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/meta.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
         'Bass',
         'Batk',
         'Beng',
+        'Berf',
         'Bhks',
         'Blis',
         'Bopo',
@@ -160,6 +161,7 @@
         'Shaw',
         'Shrd',
         'Sidd',
+        'Sidt',
         'Sind',
         'Sinh',
         'Sogd',
@@ -180,6 +182,7 @@
         'Taml',
         'Tang',
         'Tavt',
+        'Tayo',
         'Telu',
         'Teng',
         'Tfng',
@@ -190,6 +193,7 @@
         'Tirh',
         'Tnsa',
         'Todr',
+        'Tols',
         'Toto',
         'Tutg',
         'Ugar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/my.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/my.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/my.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/my.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
         'Syrc' => 'ဆီရီရက်ခ်',
         'Tale' => 'တိုင်လီ',
         'Taml' => 'တမီးလ်',
-        'Telu' => 'တီလု',
+        'Telu' => 'တယ်လူဂူ',
         'Tfng' => 'တီဖီနော',
         'Tglg' => 'တဂလော့ဂ်',
         'Thaa' => 'သာအ်',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/nl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/nl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/nl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/nl.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
         'Bass' => 'Bassa Vah',
         'Batk' => 'Batak',
         'Beng' => 'Bengaals',
+        'Berf' => 'Beria Erfe',
         'Bhks' => 'Bhaiksuki',
         'Blis' => 'Blissymbolen',
         'Bopo' => 'Bopomofo',
@@ -44,6 +45,7 @@
         'Elba' => 'Elbasan',
         'Elym' => 'Elymaisch',
         'Ethi' => 'Ethiopisch',
+        'Gara' => 'Garay',
         'Geok' => 'Georgisch Khutsuri',
         'Geor' => 'Georgisch',
         'Glag' => 'Glagolitisch',
@@ -53,6 +55,7 @@
         'Gran' => 'Grantha',
         'Grek' => 'Grieks',
         'Gujr' => 'Gujarati',
+        'Gukh' => 'Gurung Khema',
         'Guru' => 'Gurmukhi',
         'Hanb' => 'Han met Bopomofo',
         'Hang' => 'Hangul',
@@ -83,6 +86,7 @@
         'Knda' => 'Kannada',
         'Kore' => 'Koreaans',
         'Kpel' => 'Kpelle',
+        'Krai' => 'Kirat Rai',
         'Kthi' => 'Kaithi',
         'Lana' => 'Lanna',
         'Laoo' => 'Laotiaans',
@@ -124,6 +128,7 @@
         'Nshu' => 'Nüshu',
         'Ogam' => 'Ogham',
         'Olck' => 'Ol Chiki',
+        'Onao' => 'Ol Onal',
         'Orkh' => 'Orkhon',
         'Orya' => 'Odia',
         'Osge' => 'Osage',
@@ -152,6 +157,7 @@
         'Shaw' => 'Shavian',
         'Shrd' => 'Sharada',
         'Sidd' => 'Siddham',
+        'Sidt' => 'Sidetisch',
         'Sind' => 'Sindhi',
         'Sinh' => 'Singalees',
         'Sogd' => 'Sogdisch',
@@ -159,6 +165,7 @@
         'Sora' => 'Sora Sompeng',
         'Soyo' => 'Soyombo',
         'Sund' => 'Soendanees',
+        'Sunu' => 'Sunuwar',
         'Sylo' => 'Syloti Nagri',
         'Syrc' => 'Syriac',
         'Syre' => 'Estrangelo Aramees',
@@ -171,6 +178,7 @@
         'Taml' => 'Tamil',
         'Tang' => 'Tangut',
         'Tavt' => 'Tai Viet',
+        'Tayo' => 'Tai Yo',
         'Telu' => 'Telugu',
         'Teng' => 'Tengwar',
         'Tfng' => 'Tifinagh',
@@ -179,7 +187,10 @@
         'Tibt' => 'Tibetaans',
         'Tirh' => 'Tirhuta',
         'Tnsa' => 'Tangsa',
+        'Todr' => 'Todhri',
+        'Tols' => 'Tolong Siki',
         'Toto' => 'Totoschrift',
+        'Tutg' => 'Tulu-Tigalari',
         'Ugar' => 'Ugaritisch',
         'Vaii' => 'Vai',
         'Visp' => 'Zichtbare spraak',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/rm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/rm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/rm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/rm.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,9 +2,11 @@
 
 return [
     'Names' => [
+        'Adlm' => 'adlam',
         'Aghb' => 'albanais dal Caucasus',
         'Ahom' => 'ahom',
         'Arab' => 'arab',
+        'Aran' => 'nastaliq',
         'Armi' => 'arameic imperial',
         'Armn' => 'armen',
         'Avst' => 'avestic',
@@ -14,11 +16,11 @@
         'Blis' => 'simbols da Bliss',
         'Bopo' => 'bopomofo',
         'Brah' => 'brahmi',
-        'Brai' => 'scrittira da Braille',
+        'Brai' => 'Braille',
         'Bugi' => 'buginais',
         'Buhd' => 'buhid',
         'Cakm' => 'chakma',
-        'Cans' => 'simbols autoctons canadais unifitgads',
+        'Cans' => 'simbols da silbas unifitgads da la populaziun autoctona canadaisa',
         'Cari' => 'carian',
         'Cham' => 'cham',
         'Cher' => 'cherokee',
@@ -49,7 +51,7 @@
         'Hebr' => 'ebraic',
         'Hira' => 'hiragana',
         'Hmng' => 'pahawn hmong',
-        'Hrkt' => 'scrittira da silbas giapunaisa',
+        'Hrkt' => 'scrittiras da silbas giapunaisas',
         'Hung' => 'ungarais vegl',
         'Inds' => 'indus',
         'Ital' => 'italic vegl',
@@ -59,7 +61,7 @@
         'Kali' => 'kayah li',
         'Kana' => 'katakana',
         'Khar' => 'kharoshthi',
-        'Khmr' => 'khmer/cambodschan',
+        'Khmr' => 'khmer',
         'Knda' => 'kannada',
         'Kore' => 'corean',
         'Kthi' => 'kaithi',
@@ -78,10 +80,10 @@
         'Mani' => 'manicheic',
         'Maya' => 'ieroglifas maya',
         'Mero' => 'meroitic',
-        'Mlym' => 'malaisian',
-        'Mong' => 'mongolic',
+        'Mlym' => 'malayalam',
+        'Mong' => 'mongol',
         'Moon' => 'moon',
-        'Mtei' => 'meetei mayek',
+        'Mtei' => 'meitei mayek',
         'Mymr' => 'burmais',
         'Narb' => 'arab vegl dal nord',
         'Nkoo' => 'n’ko',
@@ -99,6 +101,7 @@
         'Plrd' => 'fonetica da Pollard',
         'Prti' => 'partic dad inscripziuns',
         'Rjng' => 'rejang',
+        'Rohg' => 'hanifi',
         'Roro' => 'rongorongo',
         'Runr' => 'runic',
         'Samr' => 'samaritan',
@@ -128,14 +131,14 @@
         'Thai' => 'tailandais',
         'Tibt' => 'tibetan',
         'Ugar' => 'ugaritic',
-        'Vaii' => 'vaii',
+        'Vaii' => 'vai',
         'Visp' => 'alfabet visibel',
         'Xpeo' => 'persian vegl',
         'Xsux' => 'scrittira a cugn sumeric-accadica',
         'Yiii' => 'yi',
         'Zinh' => 'ertà',
         'Zmth' => 'notaziun matematica',
-        'Zsye' => 'emojis',
+        'Zsye' => 'emoji',
         'Zsym' => 'simbols',
         'Zxxx' => 'betg scrit',
         'Zyyy' => 'betg determinà',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/sq.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/sq.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/sq.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/sq.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
         'Hrkt' => 'alfabet rrokjesor japonez',
         'Hung' => 'hungarishte e vjetër',
         'Ital' => 'italishte e vjetër',
-        'Jamo' => 'jamosisht',
+        'Jamo' => 'xhamosisht',
         'Java' => 'java',
         'Jpan' => 'japonez',
         'Kali' => 'kajali',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/sw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/sw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/sw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/scripts/sw.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,6 @@
         'Hebr' => 'Kiebrania',
         'Hira' => 'Hiragana',
         'Hrkt' => 'Hati za Kijapani',
-        'Jamo' => 'Jamo',
         'Jpan' => 'Kijapani',
         'Kana' => 'Kikatakana',
         'Khmr' => 'Kikambodia',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/af.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/af.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/af.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/af.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Oos-Afrika-tyd (Addis Abeba)',
         'Africa/Algiers' => 'Sentraal-Europese tyd (Algiers)',
         'Africa/Asmera' => 'Oos-Afrika-tyd (Asmara)',
+        'Africa/Asmara' => 'Oos-Afrika-tyd (Asmara)',
         'Africa/Bamako' => 'Greenwich-tyd (Bamako)',
         'Africa/Bangui' => 'Wes-Afrika-tyd (Bangui)',
         'Africa/Banjul' => 'Greenwich-tyd (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Oos-Afrika-tyd (Dar es Salaam)',
         'Africa/Djibouti' => 'Oos-Afrika-tyd (Djiboeti)',
         'Africa/Douala' => 'Wes-Afrika-tyd (Douala)',
-        'Africa/El_Aaiun' => 'Wes-Europese tyd (El Aaiun)',
+        'Africa/El_Aaiun' => 'Wes-Europese tyd (El Aaiún)',
         'Africa/Freetown' => 'Greenwich-tyd (Freetown)',
         'Africa/Gaborone' => 'Sentraal-Afrika-tyd (Gaborone)',
         'Africa/Harare' => 'Sentraal-Afrika-tyd (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Wes-Afrika-tyd (Kinshasa)',
         'Africa/Lagos' => 'Wes-Afrika-tyd (Lagos)',
         'Africa/Libreville' => 'Wes-Afrika-tyd (Libreville)',
-        'Africa/Lome' => 'Greenwich-tyd (Lome)',
+        'Africa/Lome' => 'Greenwich-tyd (Lomé)',
         'Africa/Luanda' => 'Wes-Afrika-tyd (Luanda)',
         'Africa/Lubumbashi' => 'Sentraal-Afrika-tyd (Lubumbashi)',
         'Africa/Lusaka' => 'Sentraal-Afrika-tyd (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Oos-Afrika-tyd (Mogadisjoe)',
         'Africa/Monrovia' => 'Greenwich-tyd (Monrovia)',
         'Africa/Nairobi' => 'Oos-Afrika-tyd (Nairobi)',
-        'Africa/Ndjamena' => 'Wes-Afrika-tyd (Ndjamena)',
+        'Africa/Ndjamena' => 'Wes-Afrika-tyd (N’Djamena)',
         'Africa/Niamey' => 'Wes-Afrika-tyd (Niamey)',
         'Africa/Nouakchott' => 'Greenwich-tyd (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich-tyd (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Alaska-tyd (Anchorage)',
         'America/Anguilla' => 'Atlantiese tyd (Anguilla)',
         'America/Antigua' => 'Atlantiese tyd (Antigua)',
-        'America/Araguaina' => 'Brasilia-tyd (Araguaina)',
+        'America/Araguaina' => 'Brasilia-tyd (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentinië-tyd (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentinië-tyd (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentinië-tyd (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentinië-tyd (Salta)',
         'America/Argentina/San_Juan' => 'Argentinië-tyd (San Juan)',
         'America/Argentina/San_Luis' => 'Argentinië-tyd (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentinië-tyd (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentinië-tyd (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentinië-tyd (Ushuaia)',
         'America/Aruba' => 'Atlantiese tyd (Aruba)',
         'America/Asuncion' => 'Paraguay-tyd (Asunción)',
         'America/Bahia' => 'Brasilia-tyd (Bahia)',
-        'America/Bahia_Banderas' => 'Noord-Amerikaanse sentrale tyd (Bahia Banderas)',
+        'America/Bahia_Banderas' => 'Noord-Amerikaanse sentrale tyd (Bahía de Banderas)',
         'America/Barbados' => 'Atlantiese tyd (Barbados)',
-        'America/Belem' => 'Brasilia-tyd (Belem)',
+        'America/Belem' => 'Brasilia-tyd (Belém)',
         'America/Belize' => 'Noord-Amerikaanse sentrale tyd (Belize)',
         'America/Blanc-Sablon' => 'Atlantiese tyd (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amasone-tyd (Boa Vista)',
-        'America/Bogota' => 'Colombië-tyd (Bogota)',
+        'America/Bogota' => 'Colombië-tyd (Bogotá)',
         'America/Boise' => 'Noord-Amerikaanse bergtyd (Boise)',
         'America/Buenos_Aires' => 'Argentinië-tyd (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentinië-tyd (Buenos Aires)',
         'America/Cambridge_Bay' => 'Noord-Amerikaanse bergtyd (Cambridgebaai)',
         'America/Campo_Grande' => 'Amasone-tyd (Campo Grande)',
         'America/Cancun' => 'Noord-Amerikaanse oostelike tyd (Cancún)',
         'America/Caracas' => 'Venezuela-tyd (Caracas)',
         'America/Catamarca' => 'Argentinië-tyd (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentinië-tyd (Catamarca)',
         'America/Cayenne' => 'Frans-Guiana-tyd (Cayenne)',
         'America/Cayman' => 'Noord-Amerikaanse oostelike tyd (Kaaiman)',
         'America/Chicago' => 'Noord-Amerikaanse sentrale tyd (Chicago)',
         'America/Chihuahua' => 'Noord-Amerikaanse sentrale tyd (Chihuahua)',
         'America/Ciudad_Juarez' => 'Noord-Amerikaanse bergtyd (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Noord-Amerikaanse oostelike tyd (Atikokan)',
-        'America/Cordoba' => 'Argentinië-tyd (Cordoba)',
+        'America/Atikokan' => 'Noord-Amerikaanse oostelike tyd (Atikokan)',
+        'America/Cordoba' => 'Argentinië-tyd (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentinië-tyd (Córdoba)',
         'America/Costa_Rica' => 'Noord-Amerikaanse sentrale tyd (Costa Rica)',
+        'America/Coyhaique' => 'Chili-tyd (Coyhaique)',
         'America/Creston' => 'Noord-Amerikaanse bergtyd (Creston)',
-        'America/Cuiaba' => 'Amasone-tyd (Cuiaba)',
+        'America/Cuiaba' => 'Amasone-tyd (Cuiabá)',
         'America/Curacao' => 'Atlantiese tyd (Curaçao)',
         'America/Danmarkshavn' => 'Greenwich-tyd (Danmarkshavn)',
         'America/Dawson' => 'Yukontyd (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Noord-Amerikaanse oostelike tyd (Detroit)',
         'America/Dominica' => 'Atlantiese tyd (Dominica)',
         'America/Edmonton' => 'Noord-Amerikaanse bergtyd (Edmonton)',
-        'America/Eirunepe' => 'Brasilië-tyd (Eirunepe)',
+        'America/Eirunepe' => 'Brasilië-tyd (Eirunepé)',
         'America/El_Salvador' => 'Noord-Amerikaanse sentrale tyd (El Salvador)',
         'America/Fort_Nelson' => 'Noord-Amerikaanse bergtyd (Fort Nelson)',
         'America/Fortaleza' => 'Brasilia-tyd (Fortaleza)',
         'America/Glace_Bay' => 'Atlantiese tyd (Glacebaai)',
         'America/Godthab' => 'Groenland-tyd (Nuuk)',
+        'America/Nuuk' => 'Groenland-tyd (Nuuk)',
         'America/Goose_Bay' => 'Atlantiese tyd (Goosebaai)',
         'America/Grand_Turk' => 'Noord-Amerikaanse oostelike tyd (Grand Turk)',
         'America/Grenada' => 'Atlantiese tyd (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Noord-Amerikaanse oostelike tyd (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Noord-Amerikaanse oostelike tyd (Winamac, Indiana)',
         'America/Indianapolis' => 'Noord-Amerikaanse oostelike tyd (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Noord-Amerikaanse oostelike tyd (Indianapolis)',
         'America/Inuvik' => 'Noord-Amerikaanse bergtyd (Inuvik)',
         'America/Iqaluit' => 'Noord-Amerikaanse oostelike tyd (Iqaluit)',
         'America/Jamaica' => 'Noord-Amerikaanse oostelike tyd (Jamaika)',
         'America/Jujuy' => 'Argentinië-tyd (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentinië-tyd (Jujuy)',
         'America/Juneau' => 'Alaska-tyd (Juneau)',
         'America/Kentucky/Monticello' => 'Noord-Amerikaanse oostelike tyd (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantiese tyd (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Peru-tyd (Lima)',
         'America/Los_Angeles' => 'Pasifiese tyd (Los Angeles)',
         'America/Louisville' => 'Noord-Amerikaanse oostelike tyd (Louisville)',
+        'America/Kentucky/Louisville' => 'Noord-Amerikaanse oostelike tyd (Louisville)',
         'America/Lower_Princes' => 'Atlantiese tyd (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasilia-tyd (Maceio)',
+        'America/Maceio' => 'Brasilia-tyd (Maceió)',
         'America/Managua' => 'Noord-Amerikaanse sentrale tyd (Managua)',
         'America/Manaus' => 'Amasone-tyd (Manaus)',
         'America/Marigot' => 'Atlantiese tyd (Marigot)',
         'America/Martinique' => 'Atlantiese tyd (Martinique)',
         'America/Matamoros' => 'Noord-Amerikaanse sentrale tyd (Matamoros)',
-        'America/Mazatlan' => 'Meksikaanse Pasifiese tyd (Mazatlan)',
+        'America/Mazatlan' => 'Meksikaanse Pasifiese tyd (Mazatlán)',
         'America/Mendoza' => 'Argentinië-tyd (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentinië-tyd (Mendoza)',
         'America/Menominee' => 'Noord-Amerikaanse sentrale tyd (Menominee)',
         'America/Merida' => 'Noord-Amerikaanse sentrale tyd (Mérida)',
         'America/Metlakatla' => 'Alaska-tyd (Metlakatla)',
         'America/Mexico_City' => 'Noord-Amerikaanse sentrale tyd (Meksikostad)',
-        'America/Miquelon' => 'Sint-Pierre en Miquelon-tyd',
+        'America/Miquelon' => 'Sint-Pierre en Miquelon-tyd (Saint-Pierre)',
         'America/Moncton' => 'Atlantiese tyd (Moncton)',
         'America/Monterrey' => 'Noord-Amerikaanse sentrale tyd (Monterrey)',
         'America/Montevideo' => 'Uruguay-tyd (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Noord-Amerikaanse sentrale tyd (Regina)',
         'America/Resolute' => 'Noord-Amerikaanse sentrale tyd (Resolute)',
         'America/Rio_Branco' => 'Brasilië-tyd (Rio Branco)',
-        'America/Santarem' => 'Brasilia-tyd (Santarem)',
+        'America/Santarem' => 'Brasilia-tyd (Santarém)',
         'America/Santiago' => 'Chili-tyd (Santiago)',
         'America/Santo_Domingo' => 'Atlantiese tyd (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasilia-tyd (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brasilia-tyd (São Paulo)',
         'America/Scoresbysund' => 'Groenland-tyd (Ittoqqortoormiit)',
         'America/Sitka' => 'Alaska-tyd (Sitka)',
         'America/St_Barthelemy' => 'Atlantiese tyd (Sint Bartholomeus)',
@@ -197,35 +208,36 @@
         'America/Whitehorse' => 'Yukontyd (Whitehorse)',
         'America/Winnipeg' => 'Noord-Amerikaanse sentrale tyd (Winnipeg)',
         'America/Yakutat' => 'Alaska-tyd (Yakutat)',
-        'Antarctica/Casey' => 'Westelike Australiese tyd (Casey)',
-        'Antarctica/Davis' => 'Davis-tyd',
-        'Antarctica/DumontDUrville' => 'Dumont-d’Urville-tyd',
+        'Antarctica/Casey' => 'Westelike Australiese tyd (Casey-stasie)',
+        'Antarctica/Davis' => 'Davis-tyd (Davis-stasie)',
+        'Antarctica/DumontDUrville' => 'Dumont d’Urville-tyd (Dumont d’Urville-stasie)',
         'Antarctica/Macquarie' => 'Oostelike Australiese tyd (Macquarie)',
-        'Antarctica/Mawson' => 'Mawson-tyd',
-        'Antarctica/McMurdo' => 'Nieu-Seeland-tyd (McMurdo)',
+        'Antarctica/Mawson' => 'Mawson-tyd (Mawson-stasie)',
+        'Antarctica/McMurdo' => 'Nieu-Seeland-tyd (McMurdo-stasie)',
         'Antarctica/Palmer' => 'Chili-tyd (Palmer)',
-        'Antarctica/Rothera' => 'Rothera-tyd',
-        'Antarctica/Syowa' => 'Syowa-tyd',
-        'Antarctica/Troll' => 'Greenwich-tyd (Troll)',
-        'Antarctica/Vostok' => 'Wostok-tyd',
+        'Antarctica/Rothera' => 'Rothera-tyd (Rothera-navorsingstasie)',
+        'Antarctica/Syowa' => 'Syowa-tyd (Syowa-stasie)',
+        'Antarctica/Troll' => 'Greenwich-tyd (Troll-stasie)',
+        'Antarctica/Vostok' => 'Wostok-tyd (Wostok-stasie)',
         'Arctic/Longyearbyen' => 'Sentraal-Europese tyd (Longyearbyen)',
         'Asia/Aden' => 'Arabiese tyd (Aden)',
         'Asia/Almaty' => 'Kazakstan-tyd (Almaty)',
         'Asia/Amman' => 'Oos-Europese tyd (Amman)',
-        'Asia/Anadyr' => 'Anadyr-tyd',
+        'Asia/Anadyr' => 'Petropavlovsk-Kamchatski-tyd (Anadyr)',
         'Asia/Aqtau' => 'Kazakstan-tyd (Aqtau)',
         'Asia/Aqtobe' => 'Kazakstan-tyd (Aqtobe)',
         'Asia/Ashgabat' => 'Turkmenistan-tyd (Asjchabad)',
         'Asia/Atyrau' => 'Kazakstan-tyd (Atyrau)',
         'Asia/Baghdad' => 'Arabiese tyd (Bagdad)',
         'Asia/Bahrain' => 'Arabiese tyd (Bahrein)',
-        'Asia/Baku' => 'Aserbeidjan-tyd (Bakoe)',
+        'Asia/Baku' => 'Azerbeidjan-tyd (Bakoe)',
         'Asia/Bangkok' => 'Indosjina-tyd (Bangkok)',
-        'Asia/Barnaul' => 'Rusland-tyd (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarsk-tyd (Barnaul)',
         'Asia/Beirut' => 'Oos-Europese tyd (Beiroet)',
         'Asia/Bishkek' => 'Kirgistan-tyd (Bisjkek)',
         'Asia/Brunei' => 'Broenei Darussalam-tyd',
         'Asia/Calcutta' => 'Indië-standaardtyd (Kolkata)',
+        'Asia/Kolkata' => 'Indië-standaardtyd (Kolkata)',
         'Asia/Chita' => 'Jakoetsk-tyd (Chita)',
         'Asia/Colombo' => 'Indië-standaardtyd (Colombo)',
         'Asia/Damascus' => 'Oos-Europese tyd (Damaskus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Oos-Europese tyd (Gaza)',
         'Asia/Hebron' => 'Oos-Europese tyd (Hebron)',
         'Asia/Hong_Kong' => 'Hongkong-tyd',
-        'Asia/Hovd' => 'Hovd-tyd',
+        'Asia/Hovd' => 'Hovd-tyd (Khovd)',
         'Asia/Irkutsk' => 'Irkoetsk-tyd',
         'Asia/Jakarta' => 'Wes-Indonesië-tyd (Djakarta)',
         'Asia/Jayapura' => 'Oos-Indonesië-tyd (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-Kamchatski-tyd (Kamtsjatka)',
         'Asia/Karachi' => 'Pakistan-tyd (Karatsji)',
         'Asia/Katmandu' => 'Nepal-tyd (Katmandoe)',
+        'Asia/Kathmandu' => 'Nepal-tyd (Katmandoe)',
         'Asia/Khandyga' => 'Jakoetsk-tyd (Khandyga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsk-tyd',
         'Asia/Kuala_Lumpur' => 'Maleisië-tyd (Koeala-Loempoer)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Persiese Golf-standaardtyd (Muskat)',
         'Asia/Nicosia' => 'Oos-Europese tyd (Nicosia)',
         'Asia/Novokuznetsk' => 'Krasnojarsk-tyd (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk-tyd',
+        'Asia/Novosibirsk' => 'Krasnojarsk-tyd (Novosibirsk)',
         'Asia/Omsk' => 'Omsk-tyd',
         'Asia/Oral' => 'Kazakstan-tyd (Oral)',
         'Asia/Phnom_Penh' => 'Indosjina-tyd (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazakstan-tyd (Kostanay)',
         'Asia/Qyzylorda' => 'Kazakstan-tyd (Qyzylorda)',
         'Asia/Rangoon' => 'Mianmar-tyd (Yangon)',
+        'Asia/Yangon' => 'Mianmar-tyd (Yangon)',
         'Asia/Riyadh' => 'Arabiese tyd (Riaad)',
         'Asia/Saigon' => 'Indosjina-tyd (Ho Tsji Minhstad)',
-        'Asia/Sakhalin' => 'Sakhalin-tyd',
+        'Asia/Ho_Chi_Minh' => 'Indosjina-tyd (Ho Tsji Minhstad)',
+        'Asia/Sakhalin' => 'Magadan-tyd (Sakhalin)',
         'Asia/Samarkand' => 'Oesbekistan-tyd (Samarkand)',
         'Asia/Seoul' => 'Koreaanse tyd (Seoel)',
         'Asia/Shanghai' => 'China-tyd (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Iran-tyd (Tehran)',
         'Asia/Thimphu' => 'Bhoetan-tyd (Thimphu)',
         'Asia/Tokyo' => 'Japan-tyd (Tokio)',
-        'Asia/Tomsk' => 'Rusland-tyd (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarsk-tyd (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulaanbaatar-tyd',
-        'Asia/Urumqi' => 'China-tyd (Urumqi)',
+        'Asia/Urumqi' => 'China-tyd (Ürümqi)',
         'Asia/Ust-Nera' => 'Wladiwostok-tyd (Ust-Nera)',
         'Asia/Vientiane' => 'Indosjina-tyd (Vientiane)',
         'Asia/Vladivostok' => 'Wladiwostok-tyd',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Wes-Europese tyd (Kanarie)',
         'Atlantic/Cape_Verde' => 'Kaap Verde-tyd',
         'Atlantic/Faeroe' => 'Wes-Europese tyd (Faroe)',
+        'Atlantic/Faroe' => 'Wes-Europese tyd (Faroe)',
         'Atlantic/Madeira' => 'Wes-Europese tyd (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich-tyd (Reykjavik)',
         'Atlantic/South_Georgia' => 'Suid-Georgië-tyd',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Gekoördineerde universele tyd',
         'Europe/Amsterdam' => 'Sentraal-Europese tyd (Amsterdam)',
         'Europe/Andorra' => 'Sentraal-Europese tyd (Andorra)',
-        'Europe/Astrakhan' => 'Moskou-tyd (Astrakhan)',
+        'Europe/Astrakhan' => 'Samara-tyd (Astrakhan)',
         'Europe/Athens' => 'Oos-Europese tyd (Athene)',
         'Europe/Belgrade' => 'Sentraal-Europese tyd (Belgrade)',
         'Europe/Berlin' => 'Sentraal-Europese tyd (Berlyn)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Sentraal-Europese tyd (Brussel)',
         'Europe/Bucharest' => 'Oos-Europese tyd (Boekarest)',
         'Europe/Budapest' => 'Sentraal-Europese tyd (Boedapest)',
-        'Europe/Busingen' => 'Sentraal-Europese tyd (Busingen)',
-        'Europe/Chisinau' => 'Oos-Europese tyd (Chisinau)',
+        'Europe/Busingen' => 'Sentraal-Europese tyd (Büsingen)',
+        'Europe/Chisinau' => 'Oos-Europese tyd (Chișinău)',
         'Europe/Copenhagen' => 'Sentraal-Europese tyd (Kopenhagen)',
         'Europe/Dublin' => 'Greenwich-tyd (Dublin)',
         'Europe/Gibraltar' => 'Sentraal-Europese tyd (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwich-tyd (Jersey)',
         'Europe/Kaliningrad' => 'Oos-Europese tyd (Kaliningrad)',
         'Europe/Kiev' => 'Oos-Europese tyd (Kiëf)',
-        'Europe/Kirov' => 'Rusland-tyd (Kirov)',
+        'Europe/Kyiv' => 'Oos-Europese tyd (Kiëf)',
+        'Europe/Kirov' => 'Moskou-tyd (Kirov)',
         'Europe/Lisbon' => 'Wes-Europese tyd (Lissabon)',
         'Europe/Ljubljana' => 'Sentraal-Europese tyd (Ljubljana)',
         'Europe/London' => 'Greenwich-tyd (Londen)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samara-tyd',
         'Europe/San_Marino' => 'Sentraal-Europese tyd (San Marino)',
         'Europe/Sarajevo' => 'Sentraal-Europese tyd (Sarajevo)',
-        'Europe/Saratov' => 'Moskou-tyd (Saratof)',
+        'Europe/Saratov' => 'Samara-tyd (Saratof)',
         'Europe/Simferopol' => 'Moskou-tyd (Simferopol)',
         'Europe/Skopje' => 'Sentraal-Europese tyd (Skopje)',
         'Europe/Sofia' => 'Oos-Europese tyd (Sofia)',
         'Europe/Stockholm' => 'Sentraal-Europese tyd (Stockholm)',
         'Europe/Tallinn' => 'Oos-Europese tyd (Tallinn)',
-        'Europe/Tirane' => 'Sentraal-Europese tyd (Tirane)',
-        'Europe/Ulyanovsk' => 'Moskou-tyd (Ulyanovsk)',
+        'Europe/Tirane' => 'Sentraal-Europese tyd (Tirana)',
+        'Europe/Ulyanovsk' => 'Samara-tyd (Ulyanovsk)',
         'Europe/Vaduz' => 'Sentraal-Europese tyd (Vaduz)',
         'Europe/Vatican' => 'Sentraal-Europese tyd (Vatikaanstad)',
         'Europe/Vienna' => 'Sentraal-Europese tyd (Wene)',
         'Europe/Vilnius' => 'Oos-Europese tyd (Vilnius)',
-        'Europe/Volgograd' => 'Wolgograd-tyd',
+        'Europe/Volgograd' => 'Moskou-tyd (Wolgograd)',
         'Europe/Warsaw' => 'Sentraal-Europese tyd (Warskou)',
         'Europe/Zagreb' => 'Sentraal-Europese tyd (Zagreb)',
         'Europe/Zurich' => 'Sentraal-Europese tyd (Zürich)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Kokoseilande-tyd',
         'Indian/Comoro' => 'Oos-Afrika-tyd (Comore)',
         'Indian/Kerguelen' => 'Franse Suider- en Antarktiese tyd (Kerguelen)',
-        'Indian/Mahe' => 'Seychelle-tyd (Mahe)',
+        'Indian/Mahe' => 'Seychelle-tyd (Mahé)',
         'Indian/Maldives' => 'Maledive-tyd',
         'Indian/Mauritius' => 'Mauritius-tyd',
         'Indian/Mayotte' => 'Oos-Afrika-tyd (Mayotte)',
@@ -389,20 +406,21 @@
         'Pacific/Chatham' => 'Chatham-tyd',
         'Pacific/Easter' => 'Paaseiland-tyd',
         'Pacific/Efate' => 'Vanuatu-tyd (Efate)',
-        'Pacific/Enderbury' => 'Fenikseilande-tyd (Enderbury)',
+        'Pacific/Enderbury' => 'Fenikseilande-tyd (Kantoneiland)',
+        'Pacific/Kanton' => 'Fenikseilande-tyd (Kantoneiland)',
         'Pacific/Fakaofo' => 'Tokelau-tyd (Fakaofo)',
         'Pacific/Fiji' => 'Fidji-tyd',
         'Pacific/Funafuti' => 'Tuvalu-tyd (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos-tyd',
+        'Pacific/Galapagos' => 'Galapagos-tyd (Galápagos)',
         'Pacific/Gambier' => 'Gambier-tyd',
         'Pacific/Guadalcanal' => 'Salomonseilande-tyd (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro-standaardtyd (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleoete-tyd (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleoete-standaardtyd (Honolulu)',
         'Pacific/Kiritimati' => 'Line-eilande-tyd (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae-tyd',
-        'Pacific/Kwajalein' => 'Marshalleilande-tyd (Kwajalein)',
+        'Pacific/Kwajalein' => 'Marshalleilande-tyd (Kwajalein Atoll)',
         'Pacific/Majuro' => 'Marshalleilande-tyd (Majuro)',
-        'Pacific/Marquesas' => 'Marquesas-tyd',
+        'Pacific/Marquesas' => 'Marquesas-tyd (Marquesas-eilande)',
         'Pacific/Midway' => 'Samoa-tyd (Midway)',
         'Pacific/Nauru' => 'Nauru-tyd',
         'Pacific/Niue' => 'Niue-tyd',
@@ -410,8 +428,9 @@
         'Pacific/Noumea' => 'Nieu-Kaledonië-tyd (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoa-tyd (Pago Pago)',
         'Pacific/Palau' => 'Palau-tyd',
-        'Pacific/Pitcairn' => 'Pitcairn-tyd',
+        'Pacific/Pitcairn' => 'Pitcairn-tyd (Pitcairn-eilande)',
         'Pacific/Ponape' => 'Ponape-tyd (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponape-tyd (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papoea-Nieu-Guinee-tyd (Port Moresby)',
         'Pacific/Rarotonga' => 'Cookeilande-tyd (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro-standaardtyd (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Gilberteilande-tyd (Tarawa)',
         'Pacific/Tongatapu' => 'Tonga-tyd (Tongatapu)',
         'Pacific/Truk' => 'Chuuk-tyd',
+        'Pacific/Chuuk' => 'Chuuk-tyd',
         'Pacific/Wake' => 'Wake-eiland-tyd',
-        'Pacific/Wallis' => 'Wallis en Futuna-tyd (Mata-Utu)',
+        'Pacific/Wallis' => 'Wallis en Futuna-tyd (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ak.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ak.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ak.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ak.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Afrika Apueeɛ Berɛ (Addis Ababa)',
         'Africa/Algiers' => 'Yuropu Mfinimfini Berɛ (Ɔlgyese)',
         'Africa/Asmera' => 'Afrika Apueeɛ Berɛ (Asmara)',
+        'Africa/Asmara' => 'Afrika Apueeɛ Berɛ (Asmara)',
         'Africa/Bamako' => 'Greenwich Mean Berɛ (Bamako)',
         'Africa/Bangui' => 'Afrika Atɔeɛ Berɛ (Bangui)',
         'Africa/Banjul' => 'Greenwich Mean Berɛ (Bandwuu)',
@@ -15,14 +16,14 @@
         'Africa/Brazzaville' => 'Afrika Atɔeɛ Berɛ (Brazzaville)',
         'Africa/Bujumbura' => 'Afrika Finimfin Berɛ (Budwumbura)',
         'Africa/Cairo' => 'Yuropu Apueeɛ Berɛ (Kairo)',
-        'Africa/Casablanca' => 'Yuropu Atɔeeɛ Berɛ (Kasablanka)',
-        'Africa/Ceuta' => 'Yuropu Mfinimfini Berɛ (Kyuta)',
+        'Africa/Casablanca' => 'Yuropu Atɔeeɛ Berɛ (Casablanca)',
+        'Africa/Ceuta' => 'Yuropu Mfinimfini Berɛ (kiweta)',
         'Africa/Conakry' => 'Greenwich Mean Berɛ (Kɔnakri)',
         'Africa/Dakar' => 'Greenwich Mean Berɛ (Dakaa)',
         'Africa/Dar_es_Salaam' => 'Afrika Apueeɛ Berɛ (Dar es Salaam)',
         'Africa/Djibouti' => 'Afrika Apueeɛ Berɛ (Gyibuuti)',
         'Africa/Douala' => 'Afrika Atɔeɛ Berɛ (Douala)',
-        'Africa/El_Aaiun' => 'Yuropu Atɔeeɛ Berɛ (El Aaiun)',
+        'Africa/El_Aaiun' => 'Yuropu Atɔeeɛ Berɛ (El Aaiún)',
         'Africa/Freetown' => 'Greenwich Mean Berɛ (Freetown)',
         'Africa/Gaborone' => 'Afrika Finimfin Berɛ (Gaborone)',
         'Africa/Harare' => 'Afrika Finimfin Berɛ (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Afrika Atɔeɛ Berɛ (Kinhyaahya)',
         'Africa/Lagos' => 'Afrika Atɔeɛ Berɛ (Legɔs)',
         'Africa/Libreville' => 'Afrika Atɔeɛ Berɛ (Libreville)',
-        'Africa/Lome' => 'Greenwich Mean Berɛ (Lome)',
+        'Africa/Lome' => 'Greenwich Mean Berɛ (Lomé)',
         'Africa/Luanda' => 'Afrika Atɔeɛ Berɛ (Luanda)',
         'Africa/Lubumbashi' => 'Afrika Finimfin Berɛ (Lubumbashi)',
         'Africa/Lusaka' => 'Afrika Finimfin Berɛ (Lusaka)',
@@ -58,7 +59,7 @@
         'America/Anchorage' => 'Alaska Berɛ (Ankɔragyi)',
         'America/Anguilla' => 'Atlantik Berɛ (Anguila)',
         'America/Antigua' => 'Atlantik Berɛ (Antigua)',
-        'America/Araguaina' => 'Brasilia Berɛ (Araguaina)',
+        'America/Araguaina' => 'Brasilia Berɛ (Araguaína)',
         'America/Argentina/La_Rioja' => 'Agyɛntina Berɛ (La Riogya)',
         'America/Argentina/Rio_Gallegos' => 'Agyɛntina Berɛ (Rio Gallegɔs)',
         'America/Argentina/Salta' => 'Agyɛntina Berɛ (Salta)',
@@ -75,22 +76,27 @@
         'America/Belize' => 'Mfinimfini Berɛ (Bɛlisi)',
         'America/Blanc-Sablon' => 'Atlantik Berɛ (Blanc-Sablɔn)',
         'America/Boa_Vista' => 'Amazon Berɛ (Boa Vista)',
-        'America/Bogota' => 'Kolombia Berɛ (Bogota)',
+        'America/Bogota' => 'Kolombia Berɛ (Bogotá)',
         'America/Boise' => 'Bepɔ Berɛ (Bɔisi)',
         'America/Buenos_Aires' => 'Agyɛntina Berɛ (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Agyɛntina Berɛ (Buenos Aires)',
         'America/Cambridge_Bay' => 'Bepɔ Berɛ (Kambrigyi Bay)',
         'America/Campo_Grande' => 'Amazon Berɛ (Kampo Grande)',
-        'America/Cancun' => 'Apueeɛ Berɛ (Cancún)',
+        'America/Cancun' => 'Apueeɛ Berɛ (Kankun)',
         'America/Caracas' => 'Venezuela Berɛ (Karakas)',
         'America/Catamarca' => 'Agyɛntina Berɛ (Katamaaka)',
+        'America/Argentina/Catamarca' => 'Agyɛntina Berɛ (Katamaaka)',
         'America/Cayenne' => 'Frɛnkye Gayana Berɛ (Kayiini)',
-        'America/Cayman' => 'Apueeɛ Berɛ (Kemanfo)',
+        'America/Cayman' => 'Apueeɛ Berɛ (Cayman)',
         'America/Chicago' => 'Mfinimfini Berɛ (Kyikago)',
         'America/Chihuahua' => 'Mfinimfini Berɛ (Kyihuahua)',
         'America/Ciudad_Juarez' => 'Bepɔ Berɛ (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Apueeɛ Berɛ (Atikokan)',
+        'America/Atikokan' => 'Apueeɛ Berɛ (Atikokan)',
         'America/Cordoba' => 'Agyɛntina Berɛ (Kɔɔdɔba)',
+        'America/Argentina/Cordoba' => 'Agyɛntina Berɛ (Kɔɔdɔba)',
         'America/Costa_Rica' => 'Mfinimfini Berɛ (Kɔsta Rika)',
+        'America/Coyhaique' => 'Kyili Berɛ (Coyhaique)',
         'America/Creston' => 'Bepɔ Berɛ (Krɛston)',
         'America/Cuiaba' => 'Amazon Berɛ (Kuiaba)',
         'America/Curacao' => 'Atlantik Berɛ (Kurukaw)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Apueeɛ Berɛ (Detrɔit)',
         'America/Dominica' => 'Atlantik Berɛ (Dɔmeneka)',
         'America/Edmonton' => 'Bepɔ Berɛ (Edmɔnton)',
-        'America/Eirunepe' => 'Berɛ Brazil (Eirunepe)',
+        'America/Eirunepe' => 'Berɛ Brazil (Eirunepé)',
         'America/El_Salvador' => 'Mfinimfini Berɛ (El Salvadɔɔ)',
         'America/Fort_Nelson' => 'Bepɔ Berɛ (Fɔt Nɛlson)',
         'America/Fortaleza' => 'Brasilia Berɛ (Fɔɔtalɛsa)',
         'America/Glace_Bay' => 'Atlantik Berɛ (Glace Bay)',
         'America/Godthab' => 'Berɛ Greenman (Nuuk)',
+        'America/Nuuk' => 'Berɛ Greenman (Nuuk)',
         'America/Goose_Bay' => 'Atlantik Berɛ (Guus Bay)',
         'America/Grand_Turk' => 'Apueeɛ Berɛ (Grand Tuk)',
         'America/Grenada' => 'Atlantik Berɛ (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Apueeɛ Berɛ (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Apueeɛ Berɛ (Winamak, Indiana)',
         'America/Indianapolis' => 'Apueeɛ Berɛ (Indianapɔlis)',
+        'America/Indiana/Indianapolis' => 'Apueeɛ Berɛ (Indianapɔlis)',
         'America/Inuvik' => 'Bepɔ Berɛ (Inuvik)',
         'America/Iqaluit' => 'Apueeɛ Berɛ (Ikaluit)',
         'America/Jamaica' => 'Apueeɛ Berɛ (Gyameka)',
         'America/Jujuy' => 'Agyɛntina Berɛ (Dwudwui)',
+        'America/Argentina/Jujuy' => 'Agyɛntina Berɛ (Dwudwui)',
         'America/Juneau' => 'Alaska Berɛ (Juneau)',
         'America/Kentucky/Monticello' => 'Apueeɛ Berɛ (Mɔntisɛlo, Kɛntɛki)',
         'America/Kralendijk' => 'Atlantik Berɛ (Kralɛngyik)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Peru Berɛ (Lima)',
         'America/Los_Angeles' => 'Pasifik Berɛ (Lɔs Angyɛlis)',
         'America/Louisville' => 'Apueeɛ Berɛ (Louisville)',
+        'America/Kentucky/Louisville' => 'Apueeɛ Berɛ (Louisville)',
         'America/Lower_Princes' => 'Atlantik Berɛ (Lowa Prinse Kɔta)',
         'America/Maceio' => 'Brasilia Berɛ (Makeio)',
         'America/Managua' => 'Mfinimfini Berɛ (Managua)',
@@ -145,11 +155,12 @@
         'America/Matamoros' => 'Mfinimfini Berɛ (Matamɔrɔso)',
         'America/Mazatlan' => 'Mɛksiko Pasifik Berɛ (Masatlan)',
         'America/Mendoza' => 'Agyɛntina Berɛ (Mɛndɔsa)',
+        'America/Argentina/Mendoza' => 'Agyɛntina Berɛ (Mɛndɔsa)',
         'America/Menominee' => 'Mfinimfini Berɛ (Mɛnɔminee)',
         'America/Merida' => 'Mfinimfini Berɛ (Mérida)',
         'America/Metlakatla' => 'Alaska Berɛ (Mɛtlakatla)',
         'America/Mexico_City' => 'Mfinimfini Berɛ (Mɛksiko Siti)',
-        'America/Miquelon' => 'St. Pierre & Miquelon Berɛ',
+        'America/Miquelon' => 'St. Pierre & Miquelon Berɛ (Saint-Pierre)',
         'America/Moncton' => 'Atlantik Berɛ (Mɔnktin)',
         'America/Monterrey' => 'Mfinimfini Berɛ (Mɔntirii)',
         'America/Montevideo' => 'Yurugwae Berɛ (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Mfinimfini Berɛ (Rɛgyina)',
         'America/Resolute' => 'Mfinimfini Berɛ (Rɛsɔlut)',
         'America/Rio_Branco' => 'Berɛ Brazil (Rio Branko)',
-        'America/Santarem' => 'Brasilia Berɛ (Santarem)',
+        'America/Santarem' => 'Brasilia Berɛ (Santarém)',
         'America/Santiago' => 'Kyili Berɛ (Santiago)',
         'America/Santo_Domingo' => 'Atlantik Berɛ (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasilia Berɛ (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brasilia Berɛ (São Paulo)',
         'America/Scoresbysund' => 'Berɛ Greenman (Yitokɔtuɔmete)',
         'America/Sitka' => 'Alaska Berɛ (Sitka)',
         'America/St_Barthelemy' => 'Atlantik Berɛ (St. Baatilemi)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Ziland Foforɔ Berɛ (McMurdo)',
         'Antarctica/Palmer' => 'Kyili Berɛ (Paama)',
         'Antarctica/Rothera' => 'Rotera Berɛ',
-        'Antarctica/Syowa' => 'Syowa Berɛ',
+        'Antarctica/Syowa' => 'Syowa Berɛ (Showa)',
         'Antarctica/Troll' => 'Greenwich Mean Berɛ (Trɔɔ)',
         'Antarctica/Vostok' => 'Vostok Berɛ (Vɔstɔk)',
         'Arctic/Longyearbyen' => 'Yuropu Mfinimfini Berɛ (Longyearbyen)',
@@ -214,21 +225,22 @@
         'Asia/Amman' => 'Yuropu Apueeɛ Berɛ (Aman)',
         'Asia/Anadyr' => 'Berɛ Rɔhyea (Anadyr)',
         'Asia/Aqtau' => 'Kazakstan Berɛ (Aktau)',
-        'Asia/Aqtobe' => 'Kazakstan Berɛ (Aktopɛ)',
+        'Asia/Aqtobe' => 'Kazakstan Berɛ (Aatobe)',
         'Asia/Ashgabat' => 'Tɛkmɛnistan Berɛ (Ashgabat)',
         'Asia/Atyrau' => 'Kazakstan Berɛ (Atyrau)',
         'Asia/Baghdad' => 'Arabia Berɛ (Baghdad)',
         'Asia/Bahrain' => 'Arabia Berɛ (Bahrain)',
         'Asia/Baku' => 'Asabegyan Berɛ (Baku)',
         'Asia/Bangkok' => 'Indɔkyina Berɛ (Bankɔk)',
-        'Asia/Barnaul' => 'Berɛ Rɔhyea (Barnaul)',
+        'Asia/Barnaul' => 'Krasnoyarsk Berɛ (Barnaul)',
         'Asia/Beirut' => 'Yuropu Apueeɛ Berɛ (Bɛɛrut)',
         'Asia/Bishkek' => 'Kɛɛgestan Berɛ (Bishkek)',
-        'Asia/Brunei' => 'Brunei Darusalam Berɛ',
-        'Asia/Calcutta' => 'India Susudua Berɛ (Kɔɔkata)',
+        'Asia/Brunei' => 'Brunei Berɛ',
+        'Asia/Calcutta' => 'India Susudua Berɛ (Kolkata)',
+        'Asia/Kolkata' => 'India Susudua Berɛ (Kolkata)',
         'Asia/Chita' => 'Yakutsk Berɛ (Kyita)',
         'Asia/Colombo' => 'India Susudua Berɛ (Kolombo)',
-        'Asia/Damascus' => 'Yuropu Apueeɛ Berɛ (Damaskɔso)',
+        'Asia/Damascus' => 'Yuropu Apueeɛ Berɛ (Damascus)',
         'Asia/Dhaka' => 'Bangladɛhye Berɛ (Daka)',
         'Asia/Dili' => 'Timɔɔ Apueeɛ Berɛ (Dili)',
         'Asia/Dubai' => 'Gɔɔfo Susudua Berɛ (Dubai)',
@@ -237,8 +249,8 @@
         'Asia/Gaza' => 'Yuropu Apueeɛ Berɛ (Gaza)',
         'Asia/Hebron' => 'Yuropu Apueeɛ Berɛ (Hɛbrɔn)',
         'Asia/Hong_Kong' => 'Hɔnkɔn Berɛ (Hong Kong)',
-        'Asia/Hovd' => 'Hovd Berɛ',
-        'Asia/Irkutsk' => 'Irkutsk Berɛ',
+        'Asia/Hovd' => 'Hovd Berɛ (Khovd)',
+        'Asia/Irkutsk' => 'Yiikusk Berɛ',
         'Asia/Jakarta' => 'Indɔnehyia Atɔeeɛ Berɛ (Gyakaata)',
         'Asia/Jayapura' => 'Indɔnehyia Apueeɛ Berɛ (Gyayapura)',
         'Asia/Jerusalem' => 'Israel Berɛ (Yerusalem)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Berɛ Rɔhyea (Kamkyatka)',
         'Asia/Karachi' => 'Pakistan Berɛ (Karakyi)',
         'Asia/Katmandu' => 'Nɛpal Berɛ (Katmandu)',
+        'Asia/Kathmandu' => 'Nɛpal Berɛ (Katmandu)',
         'Asia/Khandyga' => 'Yakutsk Berɛ (Khandyga)',
         'Asia/Krasnoyarsk' => 'Krasnoyarsk Berɛ',
         'Asia/Kuala_Lumpur' => 'Malehyia Berɛ (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Gɔɔfo Susudua Berɛ (Muskat)',
         'Asia/Nicosia' => 'Yuropu Apueeɛ Berɛ (Nikosia)',
         'Asia/Novokuznetsk' => 'Krasnoyarsk Berɛ (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk Berɛ',
+        'Asia/Novosibirsk' => 'Krasnoyarsk Berɛ (Novosibirsk)',
         'Asia/Omsk' => 'Omsk Berɛ',
         'Asia/Oral' => 'Kazakstan Berɛ (Oral)',
         'Asia/Phnom_Penh' => 'Indɔkyina Berɛ (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazakstan Berɛ (Kostanay)',
         'Asia/Qyzylorda' => 'Kazakstan Berɛ (Qyzylorda)',
         'Asia/Rangoon' => 'Mayaama Berɛ (Yangon)',
+        'Asia/Yangon' => 'Mayaama Berɛ (Yangon)',
         'Asia/Riyadh' => 'Arabia Berɛ (Riyadh)',
         'Asia/Saigon' => 'Indɔkyina Berɛ (Ho Kyi Min)',
-        'Asia/Sakhalin' => 'Sakhalin Berɛ',
+        'Asia/Ho_Chi_Minh' => 'Indɔkyina Berɛ (Ho Kyi Min)',
+        'Asia/Sakhalin' => 'Magadan Berɛ (Sakhalin)',
         'Asia/Samarkand' => 'Usbɛkistan Berɛ (Samarkand)',
         'Asia/Seoul' => 'Korean Berɛ (Seoul)',
         'Asia/Shanghai' => 'Kyaena Berɛ (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Iran Berɛ (Tɛɛran)',
         'Asia/Thimphu' => 'Butan Berɛ (Timphu)',
         'Asia/Tokyo' => 'Gyapan Berɛ (Tokyo)',
-        'Asia/Tomsk' => 'Berɛ Rɔhyea (Tomsk)',
+        'Asia/Tomsk' => 'Krasnoyarsk Berɛ (Tomsk)',
         'Asia/Ulaanbaatar' => 'Yulanbata Berɛ',
         'Asia/Urumqi' => 'Berɛ Kyaena (Yurymki)',
         'Asia/Ust-Nera' => 'Vladivostok Berɛ (Ust-Nera)',
@@ -295,7 +310,8 @@
         'Atlantic/Bermuda' => 'Atlantik Berɛ (Bɛmuda)',
         'Atlantic/Canary' => 'Yuropu Atɔeeɛ Berɛ (Kanari)',
         'Atlantic/Cape_Verde' => 'Kepvɛde Berɛ',
-        'Atlantic/Faeroe' => 'Yuropu Atɔeeɛ Berɛ (Faroe)',
+        'Atlantic/Faeroe' => 'Yuropu Atɔeeɛ Berɛ (Farosu)',
+        'Atlantic/Faroe' => 'Yuropu Atɔeeɛ Berɛ (Farosu)',
         'Atlantic/Madeira' => 'Yuropu Atɔeeɛ Berɛ (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich Mean Berɛ (Rɛɛkgyavik)',
         'Atlantic/South_Georgia' => 'Gyɔɔgyia Anaafoɔ Berɛ',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Amansan Kɔdinatɛde Berɛ',
         'Europe/Amsterdam' => 'Yuropu Mfinimfini Berɛ (Amstadam)',
         'Europe/Andorra' => 'Yuropu Mfinimfini Berɛ (Andɔra)',
-        'Europe/Astrakhan' => 'Mɔsko Berɛ (Astrakhan)',
+        'Europe/Astrakhan' => 'Berɛ Rɔhyea (Astrakhan)',
         'Europe/Athens' => 'Yuropu Apueeɛ Berɛ (Atene)',
         'Europe/Belgrade' => 'Yuropu Mfinimfini Berɛ (Bɛlgrade)',
         'Europe/Berlin' => 'Yuropu Mfinimfini Berɛ (Bɛɛlin)',
@@ -326,7 +342,7 @@
         'Europe/Budapest' => 'Yuropu Mfinimfini Berɛ (Budapɛsh)',
         'Europe/Busingen' => 'Yuropu Mfinimfini Berɛ (Busingye)',
         'Europe/Chisinau' => 'Yuropu Apueeɛ Berɛ (Kyisinau)',
-        'Europe/Copenhagen' => 'Yuropu Mfinimfini Berɛ (Kɔpɛhangɛne)',
+        'Europe/Copenhagen' => 'Yuropu Mfinimfini Berɛ (Kopehegan)',
         'Europe/Dublin' => 'Greenwich Mean Berɛ (Dɔblin)',
         'Europe/Gibraltar' => 'Yuropu Mfinimfini Berɛ (Gyebrota)',
         'Europe/Guernsey' => 'Greenwich Mean Berɛ (Guernsey)',
@@ -335,8 +351,9 @@
         'Europe/Istanbul' => 'Berɛ Tɛɛki (Istanbul)',
         'Europe/Jersey' => 'Greenwich Mean Berɛ (Jɛɛsi)',
         'Europe/Kaliningrad' => 'Yuropu Apueeɛ Berɛ (Kaliningrad)',
-        'Europe/Kiev' => 'Yuropu Apueeɛ Berɛ (Kyiv)',
-        'Europe/Kirov' => 'Berɛ Rɔhyea (Kirov)',
+        'Europe/Kiev' => 'Yuropu Apueeɛ Berɛ (Kiivu)',
+        'Europe/Kyiv' => 'Yuropu Apueeɛ Berɛ (Kiivu)',
+        'Europe/Kirov' => 'Mɔsko Berɛ (Kirov)',
         'Europe/Lisbon' => 'Yuropu Atɔeeɛ Berɛ (Lisbɔn)',
         'Europe/Ljubljana' => 'Yuropu Mfinimfini Berɛ (Ldwubdwana)',
         'Europe/London' => 'Greenwich Mean Berɛ (Lɔndɔn)',
@@ -345,30 +362,30 @@
         'Europe/Malta' => 'Yuropu Mfinimfini Berɛ (Mɔɔta)',
         'Europe/Mariehamn' => 'Yuropu Apueeɛ Berɛ (Mariehamn)',
         'Europe/Minsk' => 'Mɔsko Berɛ (Minsk)',
-        'Europe/Monaco' => 'Yuropu Mfinimfini Berɛ (Monako)',
+        'Europe/Monaco' => 'Yuropu Mfinimfini Berɛ (Monaco)',
         'Europe/Moscow' => 'Mɔsko Berɛ',
         'Europe/Oslo' => 'Yuropu Mfinimfini Berɛ (Oslo)',
         'Europe/Paris' => 'Yuropu Mfinimfini Berɛ (Paris)',
         'Europe/Podgorica' => 'Yuropu Mfinimfini Berɛ (Podgorika)',
-        'Europe/Prague' => 'Yuropu Mfinimfini Berɛ (Prague)',
+        'Europe/Prague' => 'Yuropu Mfinimfini Berɛ (Prage)',
         'Europe/Riga' => 'Yuropu Apueeɛ Berɛ (Riga)',
-        'Europe/Rome' => 'Yuropu Mfinimfini Berɛ (Roma)',
+        'Europe/Rome' => 'Yuropu Mfinimfini Berɛ (Rome)',
         'Europe/Samara' => 'Berɛ Rɔhyea (Samara)',
         'Europe/San_Marino' => 'Yuropu Mfinimfini Berɛ (San Marino)',
         'Europe/Sarajevo' => 'Yuropu Mfinimfini Berɛ (Saragyevo)',
-        'Europe/Saratov' => 'Mɔsko Berɛ (Saratov)',
+        'Europe/Saratov' => 'Berɛ Rɔhyea (Saratov)',
         'Europe/Simferopol' => 'Mɔsko Berɛ (Simferopol)',
         'Europe/Skopje' => 'Yuropu Mfinimfini Berɛ (Skɔpgye)',
-        'Europe/Sofia' => 'Yuropu Apueeɛ Berɛ (Sɔfia)',
+        'Europe/Sofia' => 'Yuropu Apueeɛ Berɛ (Sofia)',
         'Europe/Stockholm' => 'Yuropu Mfinimfini Berɛ (Stɔkhɔm)',
         'Europe/Tallinn' => 'Yuropu Apueeɛ Berɛ (Tallinn)',
-        'Europe/Tirane' => 'Yuropu Mfinimfini Berɛ (Tirane)',
-        'Europe/Ulyanovsk' => 'Mɔsko Berɛ (Ulyanovsk)',
+        'Europe/Tirane' => 'Yuropu Mfinimfini Berɛ (Tirana)',
+        'Europe/Ulyanovsk' => 'Berɛ Rɔhyea (Ulyanovsk)',
         'Europe/Vaduz' => 'Yuropu Mfinimfini Berɛ (Vaduz)',
         'Europe/Vatican' => 'Yuropu Mfinimfini Berɛ (Vatikan)',
         'Europe/Vienna' => 'Yuropu Mfinimfini Berɛ (Veɛna)',
         'Europe/Vilnius' => 'Yuropu Apueeɛ Berɛ (Vilnius)',
-        'Europe/Volgograd' => 'Volgograd Berɛ',
+        'Europe/Volgograd' => 'Mɔsko Berɛ (Volgograd)',
         'Europe/Warsaw' => 'Yuropu Mfinimfini Berɛ (Wɔɔsɔɔ)',
         'Europe/Zagreb' => 'Yuropu Mfinimfini Berɛ (Zagreb)',
         'Europe/Zurich' => 'Yuropu Mfinimfini Berɛ (Zurekye)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Kokoso Aeland Berɛ',
         'Indian/Comoro' => 'Afrika Apueeɛ Berɛ (Kɔmɔrɔ)',
         'Indian/Kerguelen' => 'Frɛnkye Anaafoɔ ne Antaatik Berɛ (Kɛguelɛn)',
-        'Indian/Mahe' => 'Seyhyɛl Berɛ (Mahe)',
+        'Indian/Mahe' => 'Seyhyɛl Berɛ (Mahé)',
         'Indian/Maldives' => 'Maldives Berɛ',
         'Indian/Mauritius' => 'Mɔrihyiɔso Berɛ',
         'Indian/Mayotte' => 'Afrika Apueeɛ Berɛ (Mayote)',
@@ -389,29 +406,31 @@
         'Pacific/Chatham' => 'Kyatam Berɛ',
         'Pacific/Easter' => 'Easta Aeland Berɛ',
         'Pacific/Efate' => 'Vanuatu Berɛ (Efate)',
-        'Pacific/Enderbury' => 'Finise Aeland Berɛ (Enderbury)',
+        'Pacific/Enderbury' => 'Finise Aeland Berɛ (Canton)',
+        'Pacific/Kanton' => 'Finise Aeland Berɛ (Canton)',
         'Pacific/Fakaofo' => 'Tokelau Berɛ (Fakaofo)',
         'Pacific/Fiji' => 'Figyi Berɛ',
         'Pacific/Funafuti' => 'Tuvalu Berɛ (Funafuti)',
         'Pacific/Galapagos' => 'Galapagɔs Berɛ',
         'Pacific/Gambier' => 'Gambier Berɛ',
-        'Pacific/Guadalcanal' => 'Solomon Aeland Berɛ (Guadaakanaa)',
+        'Pacific/Guadalcanal' => 'Solomon Aeland Berɛ (Guadalcanal)',
         'Pacific/Guam' => 'Kyamoro Susudua Berɛ (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleutian Berɛ (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleutian Susudua Berɛ (Honolulu)',
         'Pacific/Kiritimati' => 'Lai Aeland Berɛ (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae Berɛ',
         'Pacific/Kwajalein' => 'Mahyaa Aeland Berɛ (Kwagyaleene)',
-        'Pacific/Majuro' => 'Mahyaa Aeland Berɛ (Magyuro)',
-        'Pacific/Marquesas' => 'Makesase Berɛ (Maakesase)',
+        'Pacific/Majuro' => 'Mahyaa Aeland Berɛ (Madwuro)',
+        'Pacific/Marquesas' => 'Makesase Berɛ (Maakesase Supᴐ)',
         'Pacific/Midway' => 'Samoa Berɛ (Midway)',
         'Pacific/Nauru' => 'Nauru Berɛ',
         'Pacific/Niue' => 'Niue Berɛ',
         'Pacific/Norfolk' => 'Nɔɔfɔk Aeland Berɛ',
-        'Pacific/Noumea' => 'Kaledonia Foforɔ Berɛ (Noumea)',
+        'Pacific/Noumea' => 'Kaledonia Foforɔ Berɛ (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoa Berɛ (Pago Pago)',
         'Pacific/Palau' => 'Palau Berɛ',
         'Pacific/Pitcairn' => 'Pitkairn Berɛ (Pitkairne)',
         'Pacific/Ponape' => 'Ponape Berɛ (Pɔnpei)',
+        'Pacific/Pohnpei' => 'Ponape Berɛ (Pɔnpei)',
         'Pacific/Port_Moresby' => 'Papua Gini Foforɔ Berɛ (Pɔt Morɛsbi)',
         'Pacific/Rarotonga' => 'Kuk Aeland Berɛ (Rarotonga)',
         'Pacific/Saipan' => 'Kyamoro Susudua Berɛ (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Geebɛt Aeland Berɛ (Tarawa)',
         'Pacific/Tongatapu' => 'Tonga Berɛ (Tongatapu)',
         'Pacific/Truk' => 'Kyuuk Berɛ',
-        'Pacific/Wake' => 'Wake Aeland Berɛ',
-        'Pacific/Wallis' => 'Wallis ne Futuna Berɛ',
+        'Pacific/Chuuk' => 'Kyuuk Berɛ',
+        'Pacific/Wake' => 'Wake Aeland Berɛ (Wake Supᴐ)',
+        'Pacific/Wallis' => 'Wallis ne Futuna Berɛ (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/am.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/am.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/am.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/am.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'የምስራቅ አፍሪካ ሰዓት (አዲስ አበባ)',
         'Africa/Algiers' => 'የመካከለኛው አውሮፓ ሰዓት (አልጀርስ)',
         'Africa/Asmera' => 'የምስራቅ አፍሪካ ሰዓት (አስመራ)',
+        'Africa/Asmara' => 'የምስራቅ አፍሪካ ሰዓት (አስመራ)',
         'Africa/Bamako' => 'ግሪንዊች ማዕከላዊ ሰዓት (ባማኮ)',
         'Africa/Bangui' => 'የምዕራብ አፍሪካ ሰዓት (ባንጉኢ)',
         'Africa/Banjul' => 'ግሪንዊች ማዕከላዊ ሰዓት (ባንጁል)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'የኮሎምቢያ ሰዓት (ቦጎታ)',
         'America/Boise' => 'የተራራ የሰዓት አቆጣጠር (ቦይዝ)',
         'America/Buenos_Aires' => 'የአርጀንቲና የሰዓት አቆጣጠር (ቦነስ አይረስ)',
+        'America/Argentina/Buenos_Aires' => 'የአርጀንቲና የሰዓት አቆጣጠር (ቦነስ አይረስ)',
         'America/Cambridge_Bay' => 'የተራራ የሰዓት አቆጣጠር (ካምብሪጅ ቤይ)',
         'America/Campo_Grande' => 'የአማዞን ሰዓት አቆጣጠር (ካምፖ ግራንዴ)',
         'America/Cancun' => 'ምስራቃዊ ሰዓት አቆጣጠር (ካንኩን)',
         'America/Caracas' => 'የቬኔዝዌላ ሰዓት (ካራካስ)',
         'America/Catamarca' => 'የአርጀንቲና የሰዓት አቆጣጠር (ካታማርካ)',
+        'America/Argentina/Catamarca' => 'የአርጀንቲና የሰዓት አቆጣጠር (ካታማርካ)',
         'America/Cayenne' => 'የፈረንሳይ ጉያና ሰዓት (ካይንኤ)',
         'America/Cayman' => 'ምስራቃዊ ሰዓት አቆጣጠር (ካይማን)',
         'America/Chicago' => 'የሰሜን አሜሪካ የመካከለኛ ሰዓት አቆጣጠር (ቺካጎ)',
         'America/Chihuahua' => 'የሰሜን አሜሪካ የመካከለኛ ሰዓት አቆጣጠር (ቺሁዋውአ)',
         'America/Ciudad_Juarez' => 'የተራራ የሰዓት አቆጣጠር (ሳዮዳድ ሁዋሬዝ)',
         'America/Coral_Harbour' => 'ምስራቃዊ ሰዓት አቆጣጠር (አቲኮካን)',
+        'America/Atikokan' => 'ምስራቃዊ ሰዓት አቆጣጠር (አቲኮካን)',
         'America/Cordoba' => 'የአርጀንቲና የሰዓት አቆጣጠር (ኮርዶባ)',
+        'America/Argentina/Cordoba' => 'የአርጀንቲና የሰዓት አቆጣጠር (ኮርዶባ)',
         'America/Costa_Rica' => 'የሰሜን አሜሪካ የመካከለኛ ሰዓት አቆጣጠር (ኮስታሪካ)',
+        'America/Coyhaique' => 'የቺሊ ሰዓት (Coyhaique)',
         'America/Creston' => 'የተራራ የሰዓት አቆጣጠር (ክረስተን)',
         'America/Cuiaba' => 'የአማዞን ሰዓት አቆጣጠር (ኩየአባ)',
         'America/Curacao' => 'የአትላንቲክ የሰዓት አቆጣጠር (ኩራሳዎ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'የብራዚላዊ ሰዓት አቆጣጠር (ፎርታሌዛ)',
         'America/Glace_Bay' => 'የአትላንቲክ የሰዓት አቆጣጠር (ግሌስ ቤይ)',
         'America/Godthab' => 'ግሪንላንድ ሰዓት (ጋድታብ)',
+        'America/Nuuk' => 'ግሪንላንድ ሰዓት (ጋድታብ)',
         'America/Goose_Bay' => 'የአትላንቲክ የሰዓት አቆጣጠር (ጉዝ ቤይ)',
         'America/Grand_Turk' => 'ምስራቃዊ ሰዓት አቆጣጠር (ግራንድ ተርክ)',
         'America/Grenada' => 'የአትላንቲክ የሰዓት አቆጣጠር (ግሬናዳ)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ምስራቃዊ ሰዓት አቆጣጠር (ቪንቼንስ, ኢንዲያና)',
         'America/Indiana/Winamac' => 'ምስራቃዊ ሰዓት አቆጣጠር (ዊናማክ, ኢንዲያና)',
         'America/Indianapolis' => 'ምስራቃዊ ሰዓት አቆጣጠር (ኢንዲያናፖሊስ)',
+        'America/Indiana/Indianapolis' => 'ምስራቃዊ ሰዓት አቆጣጠር (ኢንዲያናፖሊስ)',
         'America/Inuvik' => 'የተራራ የሰዓት አቆጣጠር (ኢኑቪክ)',
         'America/Iqaluit' => 'ምስራቃዊ ሰዓት አቆጣጠር (ኢኳሊውት)',
         'America/Jamaica' => 'ምስራቃዊ ሰዓት አቆጣጠር (ጃማይካ)',
         'America/Jujuy' => 'የአርጀንቲና የሰዓት አቆጣጠር (ጁጁይ)',
+        'America/Argentina/Jujuy' => 'የአርጀንቲና የሰዓት አቆጣጠር (ጁጁይ)',
         'America/Juneau' => 'የአላስካ ሰዓት አቆጣጠር (ጁኒዩ)',
         'America/Kentucky/Monticello' => 'ምስራቃዊ ሰዓት አቆጣጠር (ሞንቲሴሎ, ኪንታኪ)',
         'America/Kralendijk' => 'የአትላንቲክ የሰዓት አቆጣጠር (ክራለንዲይክ)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'የፔሩ ሰዓት (ሊማ)',
         'America/Los_Angeles' => 'የፓስፊክ ሰዓት አቆጣጠር (ሎስ አንጀለስ)',
         'America/Louisville' => 'ምስራቃዊ ሰዓት አቆጣጠር (ሊውስቪል)',
+        'America/Kentucky/Louisville' => 'ምስራቃዊ ሰዓት አቆጣጠር (ሊውስቪል)',
         'America/Lower_Princes' => 'የአትላንቲክ የሰዓት አቆጣጠር (የታችኛው ልዑል ሩብ)',
         'America/Maceio' => 'የብራዚላዊ ሰዓት አቆጣጠር (ሜሲኦ)',
         'America/Managua' => 'የሰሜን አሜሪካ የመካከለኛ ሰዓት አቆጣጠር (ማናጉአ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'የሰሜን አሜሪካ የመካከለኛ ሰዓት አቆጣጠር (ማታሞሮስ)',
         'America/Mazatlan' => 'የሜክሲኮ ፓሲፊክ ሰዓት አቆጣጠር (ማዛትላን)',
         'America/Mendoza' => 'የአርጀንቲና የሰዓት አቆጣጠር (ሜንዶዛ)',
+        'America/Argentina/Mendoza' => 'የአርጀንቲና የሰዓት አቆጣጠር (ሜንዶዛ)',
         'America/Menominee' => 'የሰሜን አሜሪካ የመካከለኛ ሰዓት አቆጣጠር (ሜኖሚኒ)',
         'America/Merida' => 'የሰሜን አሜሪካ የመካከለኛ ሰዓት አቆጣጠር (ሜሪዳ)',
         'America/Metlakatla' => 'የአላስካ ሰዓት አቆጣጠር (መትላካትላ)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'የዓረቢያ ሰዓት (ኤደን)',
         'Asia/Almaty' => 'ካዛኪስታን ሰዓት (አልማትይ)',
         'Asia/Amman' => 'የምስራቃዊ አውሮፓ ሰዓት (አማን)',
-        'Asia/Anadyr' => 'የአናድይር ሰዓት አቆጣጠር',
+        'Asia/Anadyr' => 'የካምቻትካ ሰዓት አቆጣጠር (አናድይር)',
         'Asia/Aqtau' => 'ካዛኪስታን ሰዓት (አኩታኡ)',
         'Asia/Aqtobe' => 'ካዛኪስታን ሰዓት (አኩቶቤ)',
         'Asia/Ashgabat' => 'የቱርክመኒስታን ሰዓት (አሽጋባት)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'የዓረቢያ ሰዓት (ባህሬን)',
         'Asia/Baku' => 'የአዘርባጃን ሰዓት (ባኩ)',
         'Asia/Bangkok' => 'የኢንዶቻይና ሰዓት (ባንኮክ)',
-        'Asia/Barnaul' => 'ሩስያ ሰዓት (ባርናኡል)',
+        'Asia/Barnaul' => 'የክራስኖያርስክ ሰዓት አቆጣጠር (ባርናኡል)',
         'Asia/Beirut' => 'የምስራቃዊ አውሮፓ ሰዓት (ቤሩት)',
         'Asia/Bishkek' => 'የኪርጊስታን ሰዓት (ቢሽኬክ)',
         'Asia/Brunei' => 'የብሩኔይ ዳሩሳላም ሰዓት (ብሩናይ)',
         'Asia/Calcutta' => 'የህንድ መደበኛ ሰዓት (ኮልካታ)',
+        'Asia/Kolkata' => 'የህንድ መደበኛ ሰዓት (ኮልካታ)',
         'Asia/Chita' => 'ያኩትስክ የሰዓት አቆጣጠር (ቺታ)',
         'Asia/Colombo' => 'የህንድ መደበኛ ሰዓት (ኮሎምቦ)',
         'Asia/Damascus' => 'የምስራቃዊ አውሮፓ ሰዓት (ደማስቆ)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'የካምቻትካ ሰዓት አቆጣጠር',
         'Asia/Karachi' => 'የፓኪስታን ሰዓት (ካራቺ)',
         'Asia/Katmandu' => 'የኔፓል ሰዓት (ካትማንዱ)',
+        'Asia/Kathmandu' => 'የኔፓል ሰዓት (ካትማንዱ)',
         'Asia/Khandyga' => 'ያኩትስክ የሰዓት አቆጣጠር (ካንዲጋ)',
         'Asia/Krasnoyarsk' => 'የክራስኖያርስክ ሰዓት አቆጣጠር',
         'Asia/Kuala_Lumpur' => 'የማሌይዢያ ሰዓት (ኩዋላ ላምፑር)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'የባህረሰላጤ መደበኛ ሰዓት (ሙስካት)',
         'Asia/Nicosia' => 'የምስራቃዊ አውሮፓ ሰዓት (ኒኮሲአ)',
         'Asia/Novokuznetsk' => 'የክራስኖያርስክ ሰዓት አቆጣጠር (ኖቮኩትዝኔክ)',
-        'Asia/Novosibirsk' => 'የኖቮሲብሪስክ የሰዓት አቆጣጠር (ኖቮሲቢሪስክ)',
+        'Asia/Novosibirsk' => 'የክራስኖያርስክ ሰዓት አቆጣጠር (ኖቮሲቢሪስክ)',
         'Asia/Omsk' => 'የኦምስክ የሰዓት አቆጣጠር',
         'Asia/Oral' => 'ካዛኪስታን ሰዓት (ኦራል)',
         'Asia/Phnom_Penh' => 'የኢንዶቻይና ሰዓት (ፍኖም ፔንህ)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'ካዛኪስታን ሰዓት (ኮስታናይ)',
         'Asia/Qyzylorda' => 'ካዛኪስታን ሰዓት (ኩይዚሎርዳ)',
         'Asia/Rangoon' => 'የሚያንማር ሰዓት (ያንጎን)',
+        'Asia/Yangon' => 'የሚያንማር ሰዓት (ያንጎን)',
         'Asia/Riyadh' => 'የዓረቢያ ሰዓት (ሪያድ)',
         'Asia/Saigon' => 'የኢንዶቻይና ሰዓት (ሆ ቺ ሚንህ ከተማ)',
-        'Asia/Sakhalin' => 'የሳክሃሊን ሰዓት አቆጣጠር',
+        'Asia/Ho_Chi_Minh' => 'የኢንዶቻይና ሰዓት (ሆ ቺ ሚንህ ከተማ)',
+        'Asia/Sakhalin' => 'የማጋዳን የሰዓት አቆጣጠር (ሳክሃሊን)',
         'Asia/Samarkand' => 'የኡዝቤኪስታን ሰዓት (ሳማርካንድ)',
         'Asia/Seoul' => 'የኮሪያ ሰዓት (ሴኦል)',
         'Asia/Shanghai' => 'የቻይና ሰዓት (ሻንጋይ)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'የኢራን ሰዓት (ቴህራን)',
         'Asia/Thimphu' => 'የቡታን ሰዓት (ቲምፉ)',
         'Asia/Tokyo' => 'የጃፓን ሰዓት (ቶኪዮ)',
-        'Asia/Tomsk' => 'ሩስያ ሰዓት (ቶምስክ)',
+        'Asia/Tomsk' => 'የክራስኖያርስክ ሰዓት አቆጣጠር (ቶምስክ)',
         'Asia/Ulaanbaatar' => 'የኡላን ባቶር ጊዜ (ኡላአንባአታር)',
         'Asia/Urumqi' => 'ቻይና ሰዓት (ኡሩምኪ)',
         'Asia/Ust-Nera' => 'የቭላዲቮስቶክ የሰዓት አቆጣጠር (ኡስት-ኔራ)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'የምዕራባዊ አውሮፓ ሰዓት (ካናሪ)',
         'Atlantic/Cape_Verde' => 'የኬፕ ቨርዴ ሰዓት (ኬፕ ቬርደ)',
         'Atlantic/Faeroe' => 'የምዕራባዊ አውሮፓ ሰዓት (ፋሮእ)',
+        'Atlantic/Faroe' => 'የምዕራባዊ አውሮፓ ሰዓት (ፋሮእ)',
         'Atlantic/Madeira' => 'የምዕራባዊ አውሮፓ ሰዓት (ማዴራ)',
         'Atlantic/Reykjavik' => 'ግሪንዊች ማዕከላዊ ሰዓት (ሬይክጃቪክ)',
         'Atlantic/South_Georgia' => 'የደቡብ ጂዮርጂያ ሰዓት (ደቡብ ጆርጂያ)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'የተቀነባበረ ሁለገብ ሰዓት',
         'Europe/Amsterdam' => 'የመካከለኛው አውሮፓ ሰዓት (አምስተርዳም)',
         'Europe/Andorra' => 'የመካከለኛው አውሮፓ ሰዓት (አንዶራ)',
-        'Europe/Astrakhan' => 'የሞስኮ ሰዓት አቆጣጠር (አስትራክሃን)',
+        'Europe/Astrakhan' => 'የሳማራ ሰዓት አቆጣጠር (አስትራክሃን)',
         'Europe/Athens' => 'የምስራቃዊ አውሮፓ ሰዓት (አቴንስ)',
         'Europe/Belgrade' => 'የመካከለኛው አውሮፓ ሰዓት (ቤልግሬድ)',
         'Europe/Berlin' => 'የመካከለኛው አውሮፓ ሰዓት (በርሊን)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ግሪንዊች ማዕከላዊ ሰዓት (ጀርሲ)',
         'Europe/Kaliningrad' => 'የምስራቃዊ አውሮፓ ሰዓት (ካሊኒንግራድ)',
         'Europe/Kiev' => 'የምስራቃዊ አውሮፓ ሰዓት (ኪየቭ)',
-        'Europe/Kirov' => 'ሩስያ ሰዓት (ኪሮቭ)',
+        'Europe/Kyiv' => 'የምስራቃዊ አውሮፓ ሰዓት (ኪየቭ)',
+        'Europe/Kirov' => 'የሞስኮ ሰዓት አቆጣጠር (ኪሮቭ)',
         'Europe/Lisbon' => 'የምዕራባዊ አውሮፓ ሰዓት (ሊዝበን)',
         'Europe/Ljubljana' => 'የመካከለኛው አውሮፓ ሰዓት (ልጁብልጃና)',
         'Europe/London' => 'ግሪንዊች ማዕከላዊ ሰዓት (ለንደን)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'የሳማራ ሰዓት አቆጣጠር',
         'Europe/San_Marino' => 'የመካከለኛው አውሮፓ ሰዓት (ሳን ማሪኖ)',
         'Europe/Sarajevo' => 'የመካከለኛው አውሮፓ ሰዓት (ሳሪየቮ)',
-        'Europe/Saratov' => 'የሞስኮ ሰዓት አቆጣጠር (ሳራቶቭ)',
+        'Europe/Saratov' => 'የሳማራ ሰዓት አቆጣጠር (ሳራቶቭ)',
         'Europe/Simferopol' => 'የሞስኮ ሰዓት አቆጣጠር (ሲምፈሮፖል)',
         'Europe/Skopje' => 'የመካከለኛው አውሮፓ ሰዓት (ስኮፕየ)',
         'Europe/Sofia' => 'የምስራቃዊ አውሮፓ ሰዓት (ሶፊያ)',
         'Europe/Stockholm' => 'የመካከለኛው አውሮፓ ሰዓት (ስቶክሆልም)',
         'Europe/Tallinn' => 'የምስራቃዊ አውሮፓ ሰዓት (ታሊን)',
         'Europe/Tirane' => 'የመካከለኛው አውሮፓ ሰዓት (ቴራን)',
-        'Europe/Ulyanovsk' => 'የሞስኮ ሰዓት አቆጣጠር (ኡልያኖቭስክ)',
+        'Europe/Ulyanovsk' => 'የሳማራ ሰዓት አቆጣጠር (ኡልያኖቭስክ)',
         'Europe/Vaduz' => 'የመካከለኛው አውሮፓ ሰዓት (ቫዱዝ)',
         'Europe/Vatican' => 'የመካከለኛው አውሮፓ ሰዓት (ቫቲካን)',
         'Europe/Vienna' => 'የመካከለኛው አውሮፓ ሰዓት (ቪየና)',
         'Europe/Vilnius' => 'የምስራቃዊ አውሮፓ ሰዓት (ቪሊነስ)',
-        'Europe/Volgograd' => 'የቮልጎራድ የሰዓት አቆጣጠር',
+        'Europe/Volgograd' => 'የሞስኮ ሰዓት አቆጣጠር (ቮልጎራድ)',
         'Europe/Warsaw' => 'የመካከለኛው አውሮፓ ሰዓት (ዋርሶው)',
         'Europe/Zagreb' => 'የመካከለኛው አውሮፓ ሰዓት (ዛግሬብ)',
         'Europe/Zurich' => 'የመካከለኛው አውሮፓ ሰዓት (ዙሪክ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'የቻታም ሰዓት',
         'Pacific/Easter' => 'የኢስተር ደሴት ሰዓት (ፋሲካ)',
         'Pacific/Efate' => 'የቫኗቱ ሰዓት (ኢፋቴ)',
-        'Pacific/Enderbury' => 'የፊኒክስ ደሴቶች ሰዓት (ኢንደርበሪ)',
+        'Pacific/Enderbury' => 'የፊኒክስ ደሴቶች ሰዓት (ካንቶን)',
+        'Pacific/Kanton' => 'የፊኒክስ ደሴቶች ሰዓት (ካንቶን)',
         'Pacific/Fakaofo' => 'የቶኬላው ሰዓት (ፋካኦፎ)',
         'Pacific/Fiji' => 'የፊጂ ሰዓት',
         'Pacific/Funafuti' => 'የቱቫሉ ሰዓት (ፈናፉቲ)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'የጋምቢየር ሰዓት',
         'Pacific/Guadalcanal' => 'የሰለሞን ደሴቶች ሰዓት (ጉዋዳልካናል)',
         'Pacific/Guam' => 'የቻሞሮ መደበኛ ሰዓት (ጉአም)',
-        'Pacific/Honolulu' => 'የሃዋይ አሌኡት ሰዓት አቆጣጠር (ሆኖሉሉ)',
+        'Pacific/Honolulu' => 'የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር (ሆኖሉሉ)',
         'Pacific/Kiritimati' => 'የላይን ደሴቶች ሰዓት (ኪሪቲማቲ)',
         'Pacific/Kosrae' => 'የኮስራኤ ሰዓት (ኮስሬ)',
         'Pacific/Kwajalein' => 'የማርሻል ደሴቶች ሰዓት (ክዋጃሊን)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'የፓላው ሰዓት',
         'Pacific/Pitcairn' => 'የፒትካይርን ሰዓት (ፒትከይርን)',
         'Pacific/Ponape' => 'የፖናፔ ሰዓት (ፖህንፔ)',
+        'Pacific/Pohnpei' => 'የፖናፔ ሰዓት (ፖህንፔ)',
         'Pacific/Port_Moresby' => 'የፓፗ ኒው ጊኒ ሰዓት (ፖርት ሞሬስባይ)',
         'Pacific/Rarotonga' => 'የኩክ ደሴቶች ሰዓት (ራሮቶንጋ)',
         'Pacific/Saipan' => 'የቻሞሮ መደበኛ ሰዓት (ሴይፓን)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'የጂልበርት ደሴቶች ሰዓት (ታራዋ)',
         'Pacific/Tongatapu' => 'የቶንጋ ሰዓት (ቶንጋታፑ)',
         'Pacific/Truk' => 'የቹክ ሰዓት',
+        'Pacific/Chuuk' => 'የቹክ ሰዓት',
         'Pacific/Wake' => 'የዌክ ደሴት ሰዓት (ዋኬ)',
         'Pacific/Wallis' => 'የዋሊስ እና ፉቱና ሰዓት',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ar.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ar.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ar.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ar.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'توقيت شرق أفريقيا (أديس أبابا)',
         'Africa/Algiers' => 'توقيت وسط أوروبا (الجزائر)',
         'Africa/Asmera' => 'توقيت شرق أفريقيا (أسمرة)',
+        'Africa/Asmara' => 'توقيت شرق أفريقيا (أسمرة)',
         'Africa/Bamako' => 'توقيت غرينتش (باماكو)',
         'Africa/Bangui' => 'توقيت غرب أفريقيا (بانغوي)',
         'Africa/Banjul' => 'توقيت غرينتش (بانجول)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'توقيت كولومبيا (بوغوتا)',
         'America/Boise' => 'التوقيت الجبلي لأمريكا الشمالية (بويس)',
         'America/Buenos_Aires' => 'توقيت الأرجنتين (بوينوس أيرس)',
+        'America/Argentina/Buenos_Aires' => 'توقيت الأرجنتين (بوينوس أيرس)',
         'America/Cambridge_Bay' => 'التوقيت الجبلي لأمريكا الشمالية (كامبرديج باي)',
         'America/Campo_Grande' => 'توقيت الأمازون (كومبو جراند)',
         'America/Cancun' => 'التوقيت الشرقي لأمريكا الشمالية (كانكون)',
         'America/Caracas' => 'توقيت فنزويلا (كاراكاس)',
         'America/Catamarca' => 'توقيت الأرجنتين (كاتاماركا)',
+        'America/Argentina/Catamarca' => 'توقيت الأرجنتين (كاتاماركا)',
         'America/Cayenne' => 'توقيت غويانا الفرنسية (كايين)',
         'America/Cayman' => 'التوقيت الشرقي لأمريكا الشمالية (كايمان)',
         'America/Chicago' => 'التوقيت المركزي لأمريكا الشمالية (شيكاغو)',
         'America/Chihuahua' => 'التوقيت المركزي لأمريكا الشمالية (تشيواوا)',
         'America/Ciudad_Juarez' => 'التوقيت الجبلي لأمريكا الشمالية (سيوداد خواريز)',
         'America/Coral_Harbour' => 'التوقيت الشرقي لأمريكا الشمالية (كورال هاربر)',
+        'America/Atikokan' => 'التوقيت الشرقي لأمريكا الشمالية (كورال هاربر)',
         'America/Cordoba' => 'توقيت الأرجنتين (كوردوبا)',
+        'America/Argentina/Cordoba' => 'توقيت الأرجنتين (كوردوبا)',
         'America/Costa_Rica' => 'التوقيت المركزي لأمريكا الشمالية (كوستاريكا)',
+        'America/Coyhaique' => 'توقيت تشيلي (كويهايكيو)',
         'America/Creston' => 'التوقيت الجبلي لأمريكا الشمالية (كريستون)',
         'America/Cuiaba' => 'توقيت الأمازون (كيابا)',
         'America/Curacao' => 'توقيت الأطلسي (كوراساو)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'توقيت برازيليا (فورتاليزا)',
         'America/Glace_Bay' => 'توقيت الأطلسي (جلاس باي)',
         'America/Godthab' => 'توقيت غرينلاند (غودثاب)',
+        'America/Nuuk' => 'توقيت غرينلاند (غودثاب)',
         'America/Goose_Bay' => 'توقيت الأطلسي (جوس باي)',
         'America/Grand_Turk' => 'التوقيت الشرقي لأمريكا الشمالية (غراند ترك)',
         'America/Grenada' => 'توقيت الأطلسي (غرينادا)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'التوقيت الشرقي لأمريكا الشمالية (فينسينس)',
         'America/Indiana/Winamac' => 'التوقيت الشرقي لأمريكا الشمالية (ويناماك)',
         'America/Indianapolis' => 'التوقيت الشرقي لأمريكا الشمالية (إنديانابوليس)',
+        'America/Indiana/Indianapolis' => 'التوقيت الشرقي لأمريكا الشمالية (إنديانابوليس)',
         'America/Inuvik' => 'التوقيت الجبلي لأمريكا الشمالية (اينوفيك)',
         'America/Iqaluit' => 'التوقيت الشرقي لأمريكا الشمالية (اكويلت)',
         'America/Jamaica' => 'التوقيت الشرقي لأمريكا الشمالية (جامايكا)',
         'America/Jujuy' => 'توقيت الأرجنتين (جوجو)',
+        'America/Argentina/Jujuy' => 'توقيت الأرجنتين (جوجو)',
         'America/Juneau' => 'توقيت ألاسكا (جوني)',
         'America/Kentucky/Monticello' => 'التوقيت الشرقي لأمريكا الشمالية (مونتيسيلو)',
         'America/Kralendijk' => 'توقيت الأطلسي (كرالنديك)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'توقيت بيرو (ليما)',
         'America/Los_Angeles' => 'توقيت المحيط الهادي (لوس انجلوس)',
         'America/Louisville' => 'التوقيت الشرقي لأمريكا الشمالية (لويس فيل)',
+        'America/Kentucky/Louisville' => 'التوقيت الشرقي لأمريكا الشمالية (لويس فيل)',
         'America/Lower_Princes' => 'توقيت الأطلسي (حي الأمير السفلي)',
         'America/Maceio' => 'توقيت برازيليا (ماشيو)',
         'America/Managua' => 'التوقيت المركزي لأمريكا الشمالية (ماناغوا)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'التوقيت المركزي لأمريكا الشمالية (ماتاموروس)',
         'America/Mazatlan' => 'توقيت المحيط الهادي للمكسيك (مازاتلان)',
         'America/Mendoza' => 'توقيت الأرجنتين (ميندوزا)',
+        'America/Argentina/Mendoza' => 'توقيت الأرجنتين (ميندوزا)',
         'America/Menominee' => 'التوقيت المركزي لأمريكا الشمالية (مينوميني)',
         'America/Merida' => 'التوقيت المركزي لأمريكا الشمالية (ميريدا)',
         'America/Metlakatla' => 'توقيت ألاسكا (ميتلاكاتلا)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'التوقيت العربي (عدن)',
         'Asia/Almaty' => 'توقيت كازاخستان (ألماتي)',
         'Asia/Amman' => 'توقيت شرق أوروبا (عمّان)',
-        'Asia/Anadyr' => 'توقيت أنادير (أندير)',
+        'Asia/Anadyr' => 'توقيت كامشاتكا (أندير)',
         'Asia/Aqtau' => 'توقيت كازاخستان (أكتاو)',
         'Asia/Aqtobe' => 'توقيت كازاخستان (أكتوب)',
         'Asia/Ashgabat' => 'توقيت تركمانستان (عشق آباد)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'التوقيت العربي (البحرين)',
         'Asia/Baku' => 'توقيت أذربيجان (باكو)',
         'Asia/Bangkok' => 'توقيت الهند الصينية (بانكوك)',
-        'Asia/Barnaul' => 'توقيت روسيا (بارناول)',
+        'Asia/Barnaul' => 'توقيت كراسنويارسك (بارناول)',
         'Asia/Beirut' => 'توقيت شرق أوروبا (بيروت)',
         'Asia/Bishkek' => 'توقيت قيرغيزستان (بشكيك)',
         'Asia/Brunei' => 'توقيت بروناي',
         'Asia/Calcutta' => 'توقيت الهند (كالكتا)',
+        'Asia/Kolkata' => 'توقيت الهند (كالكتا)',
         'Asia/Chita' => 'توقيت ياكوتسك (تشيتا)',
         'Asia/Colombo' => 'توقيت الهند (كولومبو)',
         'Asia/Damascus' => 'توقيت شرق أوروبا (دمشق)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'توقيت كامشاتكا (كامتشاتكا)',
         'Asia/Karachi' => 'توقيت باكستان (كراتشي)',
         'Asia/Katmandu' => 'توقيت نيبال (كاتماندو)',
+        'Asia/Kathmandu' => 'توقيت نيبال (كاتماندو)',
         'Asia/Khandyga' => 'توقيت ياكوتسك (خانديجا)',
         'Asia/Krasnoyarsk' => 'توقيت كراسنويارسك',
         'Asia/Kuala_Lumpur' => 'توقيت ماليزيا (كوالا لامبور)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'توقيت الخليج (مسقط)',
         'Asia/Nicosia' => 'توقيت شرق أوروبا (نيقوسيا)',
         'Asia/Novokuznetsk' => 'توقيت كراسنويارسك (نوفوكوزنتسك)',
-        'Asia/Novosibirsk' => 'توقيت نوفوسيبيرسك (نوفوسبيرسك)',
+        'Asia/Novosibirsk' => 'توقيت كراسنويارسك (نوفوسبيرسك)',
         'Asia/Omsk' => 'توقيت أومسك',
         'Asia/Oral' => 'توقيت كازاخستان (أورال)',
         'Asia/Phnom_Penh' => 'توقيت الهند الصينية (بنوم بنه)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'توقيت كازاخستان (قوستاناي)',
         'Asia/Qyzylorda' => 'توقيت كازاخستان (كيزيلوردا)',
         'Asia/Rangoon' => 'توقيت ميانمار (رانغون)',
+        'Asia/Yangon' => 'توقيت ميانمار (رانغون)',
         'Asia/Riyadh' => 'التوقيت العربي (الرياض)',
         'Asia/Saigon' => 'توقيت الهند الصينية (مدينة هو تشي منة)',
-        'Asia/Sakhalin' => 'توقيت ساخالين (سكالين)',
+        'Asia/Ho_Chi_Minh' => 'توقيت الهند الصينية (مدينة هو تشي منة)',
+        'Asia/Sakhalin' => 'توقيت ماغادان (سكالين)',
         'Asia/Samarkand' => 'توقيت أوزبكستان (سمرقند)',
         'Asia/Seoul' => 'توقيت كوريا (سول)',
         'Asia/Shanghai' => 'توقيت الصين (شنغهاي)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'توقيت إيران (طهران)',
         'Asia/Thimphu' => 'توقيت بوتان (تيمفو)',
         'Asia/Tokyo' => 'توقيت اليابان (طوكيو)',
-        'Asia/Tomsk' => 'توقيت روسيا (تومسك)',
+        'Asia/Tomsk' => 'توقيت كراسنويارسك (تومسك)',
         'Asia/Ulaanbaatar' => 'توقيت أولان باتور (آلانباتار)',
         'Asia/Urumqi' => 'توقيت الصين (أرومكي)',
         'Asia/Ust-Nera' => 'توقيت فلاديفوستوك (أوست نيرا)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'توقيت غرب أوروبا (كناري)',
         'Atlantic/Cape_Verde' => 'توقيت الرأس الأخضر',
         'Atlantic/Faeroe' => 'توقيت غرب أوروبا (فارو)',
+        'Atlantic/Faroe' => 'توقيت غرب أوروبا (فارو)',
         'Atlantic/Madeira' => 'توقيت غرب أوروبا (ماديرا)',
         'Atlantic/Reykjavik' => 'توقيت غرينتش (ريكيافيك)',
         'Atlantic/South_Georgia' => 'توقيت جنوب جورجيا (جورجيا الجنوبية)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'التوقيت العالمي المنسق',
         'Europe/Amsterdam' => 'توقيت وسط أوروبا (أمستردام)',
         'Europe/Andorra' => 'توقيت وسط أوروبا (أندورا)',
-        'Europe/Astrakhan' => 'توقيت موسكو (أستراخان)',
+        'Europe/Astrakhan' => 'توقيت سامارا (أستراخان)',
         'Europe/Athens' => 'توقيت شرق أوروبا (أثينا)',
         'Europe/Belgrade' => 'توقيت وسط أوروبا (بلغراد)',
         'Europe/Berlin' => 'توقيت وسط أوروبا (برلين)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'توقيت غرينتش (جيرسي)',
         'Europe/Kaliningrad' => 'توقيت شرق أوروبا (كالينجراد)',
         'Europe/Kiev' => 'توقيت شرق أوروبا (كييف)',
-        'Europe/Kirov' => 'توقيت روسيا (كيروف)',
+        'Europe/Kyiv' => 'توقيت شرق أوروبا (كييف)',
+        'Europe/Kirov' => 'توقيت موسكو (كيروف)',
         'Europe/Lisbon' => 'توقيت غرب أوروبا (لشبونة)',
         'Europe/Ljubljana' => 'توقيت وسط أوروبا (ليوبليانا)',
         'Europe/London' => 'توقيت غرينتش (لندن)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'توقيت سامارا (سمراء)',
         'Europe/San_Marino' => 'توقيت وسط أوروبا (سان مارينو)',
         'Europe/Sarajevo' => 'توقيت وسط أوروبا (سراييفو)',
-        'Europe/Saratov' => 'توقيت موسكو (ساراتوف)',
+        'Europe/Saratov' => 'توقيت سامارا (ساراتوف)',
         'Europe/Simferopol' => 'توقيت موسكو (سيمفروبول)',
         'Europe/Skopje' => 'توقيت وسط أوروبا (سكوبي)',
         'Europe/Sofia' => 'توقيت شرق أوروبا (صوفيا)',
         'Europe/Stockholm' => 'توقيت وسط أوروبا (ستوكهولم)',
         'Europe/Tallinn' => 'توقيت شرق أوروبا (تالين)',
         'Europe/Tirane' => 'توقيت وسط أوروبا (تيرانا)',
-        'Europe/Ulyanovsk' => 'توقيت موسكو (أوليانوفسك)',
+        'Europe/Ulyanovsk' => 'توقيت سامارا (أوليانوفسك)',
         'Europe/Vaduz' => 'توقيت وسط أوروبا (فادوز)',
         'Europe/Vatican' => 'توقيت وسط أوروبا (الفاتيكان)',
         'Europe/Vienna' => 'توقيت وسط أوروبا (فيينا)',
         'Europe/Vilnius' => 'توقيت شرق أوروبا (فيلنيوس)',
-        'Europe/Volgograd' => 'توقيت فولغوغراد (فولوجراد)',
+        'Europe/Volgograd' => 'توقيت موسكو (فولوجراد)',
         'Europe/Warsaw' => 'توقيت وسط أوروبا (وارسو)',
         'Europe/Zagreb' => 'توقيت وسط أوروبا (زغرب)',
         'Europe/Zurich' => 'توقيت وسط أوروبا (زيورخ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'توقيت تشاتام (تشاثام)',
         'Pacific/Easter' => 'توقيت جزيرة استر',
         'Pacific/Efate' => 'توقيت فانواتو (إيفات)',
-        'Pacific/Enderbury' => 'توقيت جزر فينكس (اندربيرج)',
+        'Pacific/Enderbury' => 'توقيت جزر فينكس (كانتون)',
+        'Pacific/Kanton' => 'توقيت جزر فينكس (كانتون)',
         'Pacific/Fakaofo' => 'توقيت توكيلاو (فاكاوفو)',
         'Pacific/Fiji' => 'توقيت فيجي',
         'Pacific/Funafuti' => 'توقيت توفالو (فونافوتي)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'توقيت جامبير',
         'Pacific/Guadalcanal' => 'توقيت جزر سليمان (غوادالكانال)',
         'Pacific/Guam' => 'توقيت تشامورو (غوام)',
-        'Pacific/Honolulu' => 'توقيت هاواي ألوتيان (هونولولو)',
+        'Pacific/Honolulu' => 'توقيت هاواي ألوتيان الرسمي (هونولولو)',
         'Pacific/Kiritimati' => 'توقيت جزر لاين (كيريتي ماتي)',
         'Pacific/Kosrae' => 'توقيت كوسرا',
         'Pacific/Kwajalein' => 'توقيت جزر مارشال (كواجالين)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'توقيت بالاو',
         'Pacific/Pitcairn' => 'توقيت بيتكيرن',
         'Pacific/Ponape' => 'توقيت بونابي (باناب)',
+        'Pacific/Pohnpei' => 'توقيت بونابي (باناب)',
         'Pacific/Port_Moresby' => 'توقيت بابوا غينيا الجديدة (بور مورسبي)',
         'Pacific/Rarotonga' => 'توقيت جزر كووك (راروتونغا)',
         'Pacific/Saipan' => 'توقيت تشامورو (سايبان)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'توقيت جزر جيلبرت (تاراوا)',
         'Pacific/Tongatapu' => 'توقيت تونغا (تونغاتابو)',
         'Pacific/Truk' => 'توقيت شوك (ترك)',
+        'Pacific/Chuuk' => 'توقيت شوك (ترك)',
         'Pacific/Wake' => 'توقيت جزيرة ويك (واك)',
         'Pacific/Wallis' => 'توقيت واليس و فوتونا',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/as.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/as.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/as.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/as.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'পূব আফ্ৰিকাৰ সময় (আদ্দিছ আবাবা)',
         'Africa/Algiers' => 'মধ্য ইউৰোপীয় সময় (আলজিয়াৰ্ছ)',
         'Africa/Asmera' => 'পূব আফ্ৰিকাৰ সময় (আস্মাৰা)',
+        'Africa/Asmara' => 'পূব আফ্ৰিকাৰ সময় (আস্মাৰা)',
         'Africa/Bamako' => 'গ্ৰীণউইচ মান সময় (বামাকো)',
         'Africa/Bangui' => 'পশ্চিম আফ্ৰিকাৰ সময় (বাংগুই)',
         'Africa/Banjul' => 'গ্ৰীণউইচ মান সময় (বেঞ্জুল)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'কলম্বিয়াৰ সময় (বোগোটা)',
         'America/Boise' => 'উত্তৰ আমেৰিকাৰ পৰ্ব্বতীয় সময় (ব’ইজে)',
         'America/Buenos_Aires' => 'আৰ্জেণ্টিনাৰ সময় (বুনছ আয়াৰ্ছ)',
+        'America/Argentina/Buenos_Aires' => 'আৰ্জেণ্টিনাৰ সময় (বুনছ আয়াৰ্ছ)',
         'America/Cambridge_Bay' => 'উত্তৰ আমেৰিকাৰ পৰ্ব্বতীয় সময় (কেমব্ৰিজ উপসাগৰ)',
         'America/Campo_Grande' => 'আমাজনৰ সময় (কেম্পো গ্ৰেণ্ডে)',
         'America/Cancun' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (কেনকুন)',
         'America/Caracas' => 'ভেনিজুৱেলাৰ সময় (কাৰাকাছ)',
         'America/Catamarca' => 'আৰ্জেণ্টিনাৰ সময় (কাটামাৰ্কা)',
+        'America/Argentina/Catamarca' => 'আৰ্জেণ্টিনাৰ সময় (কাটামাৰ্কা)',
         'America/Cayenne' => 'ফ্ৰান্স গয়ানাৰ সময় (কেয়েন)',
         'America/Cayman' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (কেইমেন)',
         'America/Chicago' => 'উত্তৰ আমেৰিকাৰ কেন্দ্ৰীয় সময় (চিকাগো)',
         'America/Chihuahua' => 'উত্তৰ আমেৰিকাৰ কেন্দ্ৰীয় সময় (চিহুআহুৱা)',
         'America/Ciudad_Juarez' => 'উত্তৰ আমেৰিকাৰ পৰ্ব্বতীয় সময় (চিউডে‘ড জৰেজ)',
         'America/Coral_Harbour' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (আটিকোকান)',
+        'America/Atikokan' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (আটিকোকান)',
         'America/Cordoba' => 'আৰ্জেণ্টিনাৰ সময় (কোৰ্ডোবা)',
+        'America/Argentina/Cordoba' => 'আৰ্জেণ্টিনাৰ সময় (কোৰ্ডোবা)',
         'America/Costa_Rica' => 'উত্তৰ আমেৰিকাৰ কেন্দ্ৰীয় সময় (কোষ্টা ৰিকা)',
+        'America/Coyhaique' => 'চিলিৰ সময় (কোইহাইক)',
         'America/Creston' => 'উত্তৰ আমেৰিকাৰ পৰ্ব্বতীয় সময় (ক্ৰেষ্টন)',
         'America/Cuiaba' => 'আমাজনৰ সময় (কুইআবা)',
         'America/Curacao' => 'আটলাণ্টিক সময় (কুৰাকাও)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ব্ৰাজিলিয়াৰ সময় (ফোৰ্টালেজা)',
         'America/Glace_Bay' => 'আটলাণ্টিক সময় (গ্লেচ উপসাগৰ)',
         'America/Godthab' => 'গ্ৰীণলেণ্ড সময় (নুক)',
+        'America/Nuuk' => 'গ্ৰীণলেণ্ড সময় (নুক)',
         'America/Goose_Bay' => 'আটলাণ্টিক সময় (গুছ উপসাগৰ)',
         'America/Grand_Turk' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (গ্ৰেণ্ড টাৰ্ক)',
         'America/Grenada' => 'আটলাণ্টিক সময় (গ্ৰেনাডা)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (ভিনচেনেছ, ইণ্ডিয়ানা)',
         'America/Indiana/Winamac' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (উইনামেক, ইণ্ডিয়ানা)',
         'America/Indianapolis' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (ইণ্ডিয়ানাপ’লিছ)',
+        'America/Indiana/Indianapolis' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (ইণ্ডিয়ানাপ’লিছ)',
         'America/Inuvik' => 'উত্তৰ আমেৰিকাৰ পৰ্ব্বতীয় সময় (ইনুভিক)',
         'America/Iqaluit' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (ইকালুইট)',
         'America/Jamaica' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (জামাইকা)',
         'America/Jujuy' => 'আৰ্জেণ্টিনাৰ সময় (জুজুই)',
+        'America/Argentina/Jujuy' => 'আৰ্জেণ্টিনাৰ সময় (জুজুই)',
         'America/Juneau' => 'আলাস্কাৰ সময় (জুনেউ)',
         'America/Kentucky/Monticello' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (মণ্টিচেলো, কেণ্টুকী)',
         'America/Kralendijk' => 'আটলাণ্টিক সময় (ক্ৰালেণ্ডিজিক)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'পেৰুৰ সময় (লিমা)',
         'America/Los_Angeles' => 'উত্তৰ আমেৰিকাৰ প্ৰশান্ত সময় (লছ এঞ্জেলছ্)',
         'America/Louisville' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (লুইছভিলে)',
+        'America/Kentucky/Louisville' => 'উত্তৰ আমেৰিকাৰ প্ৰাচ্য সময় (লুইছভিলে)',
         'America/Lower_Princes' => 'আটলাণ্টিক সময় (ল’ৱাৰ প্ৰিন্সেছ কোৱাৰ্টাৰ)',
         'America/Maceio' => 'ব্ৰাজিলিয়াৰ সময় (মেচিও)',
         'America/Managua' => 'উত্তৰ আমেৰিকাৰ কেন্দ্ৰীয় সময় (মানাগুৱা)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'উত্তৰ আমেৰিকাৰ কেন্দ্ৰীয় সময় (মাটামোৰোছ)',
         'America/Mazatlan' => 'মেক্সিকোৰ প্ৰশান্ত সময় (মাজাট্‌লান)',
         'America/Mendoza' => 'আৰ্জেণ্টিনাৰ সময় (মেণ্ডোজা)',
+        'America/Argentina/Mendoza' => 'আৰ্জেণ্টিনাৰ সময় (মেণ্ডোজা)',
         'America/Menominee' => 'উত্তৰ আমেৰিকাৰ কেন্দ্ৰীয় সময় (মেনোমিনী)',
         'America/Merida' => 'উত্তৰ আমেৰিকাৰ কেন্দ্ৰীয় সময় (মেৰিডা)',
         'America/Metlakatla' => 'আলাস্কাৰ সময় (মেটলাকাট্‌লা)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'আৰবীয় সময় (বাহৰেইন)',
         'Asia/Baku' => 'আজেৰবাইজানৰ সময় (বাকু)',
         'Asia/Bangkok' => 'ইণ্ডোচাইনাৰ সময় (বেংকক)',
-        'Asia/Barnaul' => 'ৰাছিয়া সময় (বাৰ্নুল)',
+        'Asia/Barnaul' => 'ক্ৰাছনোয়াৰ্স্কৰ সময় (বাৰ্নুল)',
         'Asia/Beirut' => 'প্ৰাচ্য ইউৰোপীয় সময় (বেইৰুট)',
         'Asia/Bishkek' => 'কিৰ্গিজস্তানৰ সময় (বিশ্ব্‌কেক)',
         'Asia/Brunei' => 'ব্ৰুনেই ডাৰুছালেমৰ সময়',
         'Asia/Calcutta' => 'ভাৰতীয় মান সময় (কলকাতা)',
+        'Asia/Kolkata' => 'ভাৰতীয় মান সময় (কলকাতা)',
         'Asia/Chita' => 'য়াকুত্স্কৰ সময় (চিটা)',
         'Asia/Colombo' => 'ভাৰতীয় মান সময় (কলম্বো)',
         'Asia/Damascus' => 'প্ৰাচ্য ইউৰোপীয় সময় (ডামাস্কাছ)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ৰাছিয়া সময় (কামচত্কা)',
         'Asia/Karachi' => 'পাকিস্তানৰ সময় (কৰাচী)',
         'Asia/Katmandu' => 'নেপালৰ সময় (কাঠমাণ্ডু)',
+        'Asia/Kathmandu' => 'নেপালৰ সময় (কাঠমাণ্ডু)',
         'Asia/Khandyga' => 'য়াকুত্স্কৰ সময় (খাণ্ডিগা)',
         'Asia/Krasnoyarsk' => 'ক্ৰাছনোয়াৰ্স্কৰ সময়',
         'Asia/Kuala_Lumpur' => 'মালয়েচিয়াৰ সময় (কুৱালালুমপুৰ)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'উপসাগৰীয় মান সময় (মুস্কেট)',
         'Asia/Nicosia' => 'প্ৰাচ্য ইউৰোপীয় সময় (নিকোছিয়া)',
         'Asia/Novokuznetsk' => 'ক্ৰাছনোয়াৰ্স্কৰ সময় (নোভোকুজনেত্স্ক)',
-        'Asia/Novosibirsk' => 'নভোছিবিৰ্স্কৰ সময় (নোভোছিবিৰ্স্ক)',
+        'Asia/Novosibirsk' => 'ক্ৰাছনোয়াৰ্স্কৰ সময় (নোভোছিবিৰ্স্ক)',
         'Asia/Omsk' => 'ওমস্কৰ সময়',
         'Asia/Oral' => 'কাজাখস্তানৰ সময় (অ’ৰেল)',
         'Asia/Phnom_Penh' => 'ইণ্ডোচাইনাৰ সময় (নোম পেন্‌হ)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'কাজাখস্তানৰ সময় (ক’ষ্টেনী)',
         'Asia/Qyzylorda' => 'কাজাখস্তানৰ সময় (কেজিলোৰ্ডা)',
         'Asia/Rangoon' => 'ম্যানমাৰৰ সময় (য়াঙোন)',
+        'Asia/Yangon' => 'ম্যানমাৰৰ সময় (য়াঙোন)',
         'Asia/Riyadh' => 'আৰবীয় সময় (ৰিয়াধ)',
         'Asia/Saigon' => 'ইণ্ডোচাইনাৰ সময় (হো চি মিন চিটী)',
-        'Asia/Sakhalin' => 'ছাখালিনৰ সময়',
+        'Asia/Ho_Chi_Minh' => 'ইণ্ডোচাইনাৰ সময় (হো চি মিন চিটী)',
+        'Asia/Sakhalin' => 'মাগাদানৰ সময় (ছাখালিন)',
         'Asia/Samarkand' => 'উজবেকিস্তানৰ সময় (ছামাৰকাণ্ড)',
         'Asia/Seoul' => 'কোৰিয়াৰ সময় (ছিউল)',
         'Asia/Shanghai' => 'চীনৰ সময় (ছাংহাই)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ইৰানৰ সময় (তেহৰান)',
         'Asia/Thimphu' => 'ভুটানৰ সময় (থিম্ফু)',
         'Asia/Tokyo' => 'জাপানৰ সময় (টকিঅ’)',
-        'Asia/Tomsk' => 'ৰাছিয়া সময় (তোম্‌স্ক)',
+        'Asia/Tomsk' => 'ক্ৰাছনোয়াৰ্স্কৰ সময় (তোম্‌স্ক)',
         'Asia/Ulaanbaatar' => 'উলানবাটাৰৰ সময়',
         'Asia/Urumqi' => 'চীন সময় (উৰুম্‌কি)',
         'Asia/Ust-Nera' => 'ভ্লাডিভোষ্টোকৰ সময় (উষ্ট-নেৰা)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'পাশ্চাত্য ইউৰোপীয় সময় (কেনেৰী)',
         'Atlantic/Cape_Verde' => 'কেপ ভাৰ্দেৰ সময়',
         'Atlantic/Faeroe' => 'পাশ্চাত্য ইউৰোপীয় সময় (ফাৰো)',
+        'Atlantic/Faroe' => 'পাশ্চাত্য ইউৰোপীয় সময় (ফাৰো)',
         'Atlantic/Madeira' => 'পাশ্চাত্য ইউৰোপীয় সময় (মাডেৰা)',
         'Atlantic/Reykjavik' => 'গ্ৰীণউইচ মান সময় (ৰেইকজাভিক)',
         'Atlantic/South_Georgia' => 'দক্ষিণ জৰ্জিয়াৰ সময়',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'সমন্বিত সাৰ্বজনীন সময়',
         'Europe/Amsterdam' => 'মধ্য ইউৰোপীয় সময় (আমষ্টাৰডাম)',
         'Europe/Andorra' => 'মধ্য ইউৰোপীয় সময় (আন্দোৰা)',
-        'Europe/Astrakhan' => 'মস্কোৰ সময় (আষ্ট্ৰাখান)',
+        'Europe/Astrakhan' => 'ৰাছিয়া সময় (আষ্ট্ৰাখান)',
         'Europe/Athens' => 'প্ৰাচ্য ইউৰোপীয় সময় (এথেন্স)',
         'Europe/Belgrade' => 'মধ্য ইউৰোপীয় সময় (বেলগ্ৰেড)',
         'Europe/Berlin' => 'মধ্য ইউৰোপীয় সময় (বাৰ্লিন)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'গ্ৰীণউইচ মান সময় (জাৰ্চি)',
         'Europe/Kaliningrad' => 'প্ৰাচ্য ইউৰোপীয় সময় (কালিনিনগ্ৰাড)',
         'Europe/Kiev' => 'প্ৰাচ্য ইউৰোপীয় সময় (কিভ)',
-        'Europe/Kirov' => 'ৰাছিয়া সময় (কিৰোভ)',
+        'Europe/Kyiv' => 'প্ৰাচ্য ইউৰোপীয় সময় (কিভ)',
+        'Europe/Kirov' => 'মস্কোৰ সময় (কিৰোভ)',
         'Europe/Lisbon' => 'পাশ্চাত্য ইউৰোপীয় সময় (লিছবন)',
         'Europe/Ljubljana' => 'মধ্য ইউৰোপীয় সময় (ল্যুবেলজানা)',
         'Europe/London' => 'গ্ৰীণউইচ মান সময় (লণ্ডন)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'ৰাছিয়া সময় (ছামাৰা)',
         'Europe/San_Marino' => 'মধ্য ইউৰোপীয় সময় (চান মাৰিনো)',
         'Europe/Sarajevo' => 'মধ্য ইউৰোপীয় সময় (ছাৰাজেভো)',
-        'Europe/Saratov' => 'মস্কোৰ সময় (ছাৰাটোভ)',
+        'Europe/Saratov' => 'ৰাছিয়া সময় (ছাৰাটোভ)',
         'Europe/Simferopol' => 'মস্কোৰ সময় (ছিম্ফেৰোপোল)',
         'Europe/Skopje' => 'মধ্য ইউৰোপীয় সময় (স্কোপ্জে)',
         'Europe/Sofia' => 'প্ৰাচ্য ইউৰোপীয় সময় (ছোফিয়া)',
         'Europe/Stockholm' => 'মধ্য ইউৰোপীয় সময় (ষ্টকহোম)',
         'Europe/Tallinn' => 'প্ৰাচ্য ইউৰোপীয় সময় (তেলিন)',
         'Europe/Tirane' => 'মধ্য ইউৰোপীয় সময় (টাইৰেন)',
-        'Europe/Ulyanovsk' => 'মস্কোৰ সময় (উল্যানোভ্‌স্ক)',
+        'Europe/Ulyanovsk' => 'ৰাছিয়া সময় (উল্যানোভ্‌স্ক)',
         'Europe/Vaduz' => 'মধ্য ইউৰোপীয় সময় (ভাদুজ)',
         'Europe/Vatican' => 'মধ্য ইউৰোপীয় সময় (ভেটিকান)',
         'Europe/Vienna' => 'মধ্য ইউৰোপীয় সময় (ভিয়েনা)',
         'Europe/Vilnius' => 'প্ৰাচ্য ইউৰোপীয় সময় (ভিলনিয়াছ)',
-        'Europe/Volgograd' => 'ভোল্গোগ্ৰাডৰ সময়',
+        'Europe/Volgograd' => 'মস্কোৰ সময় (ভোল্গোগ্ৰাড)',
         'Europe/Warsaw' => 'মধ্য ইউৰোপীয় সময় (ৱাৰছাও)',
         'Europe/Zagreb' => 'মধ্য ইউৰোপীয় সময় (জাগ্ৰেব)',
         'Europe/Zurich' => 'মধ্য ইউৰোপীয় সময় (জুৰিখ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'চাথামৰ সময়',
         'Pacific/Easter' => 'ইষ্টাৰ দ্বীপৰ সময়',
         'Pacific/Efate' => 'ভানাটুৰ সময় (এফেট)',
-        'Pacific/Enderbury' => 'ফিনিক্স দ্বীপপুঞ্জৰ সময় (এণ্ডৰবাৰী)',
+        'Pacific/Enderbury' => 'ফিনিক্স দ্বীপপুঞ্জৰ সময় (কেণ্টন)',
+        'Pacific/Kanton' => 'ফিনিক্স দ্বীপপুঞ্জৰ সময় (কেণ্টন)',
         'Pacific/Fakaofo' => 'টোকেলাউৰ সময় (ফাকাওফো)',
         'Pacific/Fiji' => 'ফিজিৰ সময়',
         'Pacific/Funafuti' => 'টুভালাউৰ সময় (ফুনাফুটি)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'গেম্বিয়াৰ সময়',
         'Pacific/Guadalcanal' => 'চোলোমোন দ্বীপপুঞ্জৰ সময় (গুৱাডলকানাল)',
         'Pacific/Guam' => 'চামোৰোৰ মান সময় (গুৱাম)',
-        'Pacific/Honolulu' => 'হাৱাই-এলিউশ্বনৰ সময় (Honolulu)',
+        'Pacific/Honolulu' => 'হাৱাই-এলিউশ্বনৰ মান সময় (Honolulu)',
         'Pacific/Kiritimati' => 'লাইন দ্বীপপুঞ্জৰ সময় (কিৰিটিমাটি)',
         'Pacific/Kosrae' => 'কোছৰায়ে সময়',
         'Pacific/Kwajalein' => 'মাৰ্শ্বাল দ্বীপপুঞ্জৰ সময় (কোৱাজালিন)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'পালাউৰ সময়',
         'Pacific/Pitcairn' => 'পিটকেইৰ্ণৰ সময়',
         'Pacific/Ponape' => 'পোনাপেৰ সময় (পোনপেই)',
+        'Pacific/Pohnpei' => 'পোনাপেৰ সময় (পোনপেই)',
         'Pacific/Port_Moresby' => 'পাপুৱা নিউ গিনিৰ সময় (প’ৰ্ট মোৰেছ্‌বি)',
         'Pacific/Rarotonga' => 'কুক দ্বীপপুঞ্জৰ সময় (ৰাৰোটোঙ্গা)',
         'Pacific/Saipan' => 'চামোৰোৰ মান সময় (ছাইপান)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'গিলবাৰ্ট দ্বীপপুঞ্জৰ সময় (তাৰাৱা)',
         'Pacific/Tongatapu' => 'টংগাৰ সময় (টংগাটাপু)',
         'Pacific/Truk' => 'চ্চুকৰ সময়',
+        'Pacific/Chuuk' => 'চ্চুকৰ সময়',
         'Pacific/Wake' => 'ৱেক দ্বীপৰ সময়',
         'Pacific/Wallis' => 'ৱালিছ আৰু ফুটুনাৰ সময়',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/az.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/az.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/az.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/az.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Şərqi Afrika Vaxtı (Əddis Əbəbə)',
         'Africa/Algiers' => 'Mərkəzi Avropa Vaxtı (Əlcəzair)',
         'Africa/Asmera' => 'Şərqi Afrika Vaxtı (Əsmərə)',
+        'Africa/Asmara' => 'Şərqi Afrika Vaxtı (Əsmərə)',
         'Africa/Bamako' => 'Qrinviç Orta Vaxtı (Bamako)',
         'Africa/Bangui' => 'Qərbi Afrika Vaxtı (Banqui)',
         'Africa/Banjul' => 'Qrinviç Orta Vaxtı (Bancul)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Qərbi Afrika Vaxtı (Kinşasa)',
         'Africa/Lagos' => 'Qərbi Afrika Vaxtı (Laqos)',
         'Africa/Libreville' => 'Qərbi Afrika Vaxtı (Librevil)',
-        'Africa/Lome' => 'Qrinviç Orta Vaxtı (Lome)',
+        'Africa/Lome' => 'Qrinviç Orta Vaxtı (Lomé)',
         'Africa/Luanda' => 'Qərbi Afrika Vaxtı (Luanda)',
         'Africa/Lubumbashi' => 'Mərkəzi Afrika Vaxtı (Lubumbaşi)',
         'Africa/Lusaka' => 'Mərkəzi Afrika Vaxtı (Lusaka)',
@@ -56,8 +57,8 @@
         'Africa/Windhoek' => 'Mərkəzi Afrika Vaxtı (Vindhuk)',
         'America/Adak' => 'Havay-Aleut Vaxtı (Adak)',
         'America/Anchorage' => 'Alyaska Vaxtı (Ankorac)',
-        'America/Anguilla' => 'Atlantik Vaxt (Angilya)',
-        'America/Antigua' => 'Atlantik Vaxt (Antiqua)',
+        'America/Anguilla' => 'Atlantik saat qurşağı (Angilya)',
+        'America/Antigua' => 'Atlantik saat qurşağı (Antiqua)',
         'America/Araguaina' => 'Braziliya Vaxtı (Araguayna)',
         'America/Argentina/La_Rioja' => 'Argentina Vaxtı (Rioxa)',
         'America/Argentina/Rio_Gallegos' => 'Argentina Vaxtı (Rio Qalyeqos)',
@@ -66,136 +67,146 @@
         'America/Argentina/San_Luis' => 'Argentina Vaxtı (San Luis)',
         'America/Argentina/Tucuman' => 'Argentina Vaxtı (Tukuman)',
         'America/Argentina/Ushuaia' => 'Argentina Vaxtı (Uşuaya)',
-        'America/Aruba' => 'Atlantik Vaxt (Aruba)',
+        'America/Aruba' => 'Atlantik saat qurşağı (Aruba)',
         'America/Asuncion' => 'Paraqvay Vaxtı (Asunsion)',
         'America/Bahia' => 'Braziliya Vaxtı (Bahiya)',
-        'America/Bahia_Banderas' => 'Şimali Mərkəzi Amerika Vaxtı (Bahia Banderas)',
-        'America/Barbados' => 'Atlantik Vaxt (Barbados)',
-        'America/Belem' => 'Braziliya Vaxtı (Belem)',
-        'America/Belize' => 'Şimali Mərkəzi Amerika Vaxtı (Beliz)',
-        'America/Blanc-Sablon' => 'Atlantik Vaxt (Blank-Sablon)',
+        'America/Bahia_Banderas' => 'Mərkəzi Amerika saat qurşağı (Bahia Banderas)',
+        'America/Barbados' => 'Atlantik saat qurşağı (Barbados)',
+        'America/Belem' => 'Braziliya Vaxtı (Belém)',
+        'America/Belize' => 'Mərkəzi Amerika saat qurşağı (Beliz)',
+        'America/Blanc-Sablon' => 'Atlantik saat qurşağı (Blank-Sablon)',
         'America/Boa_Vista' => 'Amazon Vaxtı (Boa Vista)',
         'America/Bogota' => 'Kolumbiya Vaxtı (Boqota)',
         'America/Boise' => 'Şimali Dağlıq Amerika Vaxtı (Boyse)',
         'America/Buenos_Aires' => 'Argentina Vaxtı (Buenos Ayres)',
+        'America/Argentina/Buenos_Aires' => 'Argentina Vaxtı (Buenos Ayres)',
         'America/Cambridge_Bay' => 'Şimali Dağlıq Amerika Vaxtı (Kembric Körfəzi)',
         'America/Campo_Grande' => 'Amazon Vaxtı (Kampo Qrande)',
         'America/Cancun' => 'Şimali Şərqi Amerika Vaxtı (Kankun)',
         'America/Caracas' => 'Venesuela Vaxtı (Karakas)',
         'America/Catamarca' => 'Argentina Vaxtı (Katamarka)',
+        'America/Argentina/Catamarca' => 'Argentina Vaxtı (Katamarka)',
         'America/Cayenne' => 'Fransız Qvianası Vaxtı (Kayen)',
         'America/Cayman' => 'Şimali Şərqi Amerika Vaxtı (Kayman)',
-        'America/Chicago' => 'Şimali Mərkəzi Amerika Vaxtı (Çikaqo)',
-        'America/Chihuahua' => 'Şimali Mərkəzi Amerika Vaxtı (Çihuahua)',
+        'America/Chicago' => 'Mərkəzi Amerika saat qurşağı (Çikaqo)',
+        'America/Chihuahua' => 'Mərkəzi Amerika saat qurşağı (Çihuahua)',
         'America/Ciudad_Juarez' => 'Şimali Dağlıq Amerika Vaxtı (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Şimali Şərqi Amerika Vaxtı (Atikokan)',
+        'America/Atikokan' => 'Şimali Şərqi Amerika Vaxtı (Atikokan)',
         'America/Cordoba' => 'Argentina Vaxtı (Kordoba)',
-        'America/Costa_Rica' => 'Şimali Mərkəzi Amerika Vaxtı (Kosta Rika)',
+        'America/Argentina/Cordoba' => 'Argentina Vaxtı (Kordoba)',
+        'America/Costa_Rica' => 'Mərkəzi Amerika saat qurşağı (Kosta Rika)',
+        'America/Coyhaique' => 'Çili Vaxtı (Koyayke)',
         'America/Creston' => 'Şimali Dağlıq Amerika Vaxtı (Kreston)',
         'America/Cuiaba' => 'Amazon Vaxtı (Kuyaba)',
-        'America/Curacao' => 'Atlantik Vaxt (Kurasao)',
+        'America/Curacao' => 'Atlantik saat qurşağı (Kurasao)',
         'America/Danmarkshavn' => 'Qrinviç Orta Vaxtı (Danmarkşavn)',
         'America/Dawson' => 'Yukon Vaxtı (Douson)',
         'America/Dawson_Creek' => 'Şimali Dağlıq Amerika Vaxtı (Douson Krik)',
         'America/Denver' => 'Şimali Dağlıq Amerika Vaxtı (Denver)',
         'America/Detroit' => 'Şimali Şərqi Amerika Vaxtı (Detroyt)',
-        'America/Dominica' => 'Atlantik Vaxt (Dominika)',
+        'America/Dominica' => 'Atlantik saat qurşağı (Dominika)',
         'America/Edmonton' => 'Şimali Dağlıq Amerika Vaxtı (Edmondton)',
         'America/Eirunepe' => 'Braziliya Vaxtı (İrunepe)',
-        'America/El_Salvador' => 'Şimali Mərkəzi Amerika Vaxtı (Salvador)',
+        'America/El_Salvador' => 'Mərkəzi Amerika saat qurşağı (Salvador)',
         'America/Fort_Nelson' => 'Şimali Dağlıq Amerika Vaxtı (Fort Nelson)',
         'America/Fortaleza' => 'Braziliya Vaxtı (Fortaleza)',
-        'America/Glace_Bay' => 'Atlantik Vaxt (Qleys Körfəzi)',
+        'America/Glace_Bay' => 'Atlantik saat qurşağı (Qleys Körfəzi)',
         'America/Godthab' => 'Qrenlandiya Vaxtı (Nuuk)',
-        'America/Goose_Bay' => 'Atlantik Vaxt (Quz Körfəzi)',
+        'America/Nuuk' => 'Qrenlandiya Vaxtı (Nuuk)',
+        'America/Goose_Bay' => 'Atlantik saat qurşağı (Quz Körfəzi)',
         'America/Grand_Turk' => 'Şimali Şərqi Amerika Vaxtı (Qrand Turk)',
-        'America/Grenada' => 'Atlantik Vaxt (Qrenada)',
-        'America/Guadeloupe' => 'Atlantik Vaxt (Qvadelupa)',
-        'America/Guatemala' => 'Şimali Mərkəzi Amerika Vaxtı (Qvatemala)',
+        'America/Grenada' => 'Atlantik saat qurşağı (Qrenada)',
+        'America/Guadeloupe' => 'Atlantik saat qurşağı (Qvadelupa)',
+        'America/Guatemala' => 'Mərkəzi Amerika saat qurşağı (Qvatemala)',
         'America/Guayaquil' => 'Ekvador Vaxtı (Quayakil)',
         'America/Guyana' => 'Qayana Vaxtı',
-        'America/Halifax' => 'Atlantik Vaxt (Halifaks)',
+        'America/Halifax' => 'Atlantik saat qurşağı (Halifaks)',
         'America/Havana' => 'Kuba Vaxtı (Havana)',
         'America/Hermosillo' => 'Meksika Sakit Okean Vaxtı (Hermosilo)',
-        'America/Indiana/Knox' => 'Şimali Mərkəzi Amerika Vaxtı (Noks)',
+        'America/Indiana/Knox' => 'Mərkəzi Amerika saat qurşağı (Noks)',
         'America/Indiana/Marengo' => 'Şimali Şərqi Amerika Vaxtı (Marenqo)',
         'America/Indiana/Petersburg' => 'Şimali Şərqi Amerika Vaxtı (Pitersburq)',
-        'America/Indiana/Tell_City' => 'Şimali Mərkəzi Amerika Vaxtı (Tell)',
+        'America/Indiana/Tell_City' => 'Mərkəzi Amerika saat qurşağı (Tell)',
         'America/Indiana/Vevay' => 'Şimali Şərqi Amerika Vaxtı (Vivey)',
         'America/Indiana/Vincennes' => 'Şimali Şərqi Amerika Vaxtı (Vinsen)',
         'America/Indiana/Winamac' => 'Şimali Şərqi Amerika Vaxtı (Vinamak)',
         'America/Indianapolis' => 'Şimali Şərqi Amerika Vaxtı (İndianapolis)',
+        'America/Indiana/Indianapolis' => 'Şimali Şərqi Amerika Vaxtı (İndianapolis)',
         'America/Inuvik' => 'Şimali Dağlıq Amerika Vaxtı (İnuvik)',
         'America/Iqaluit' => 'Şimali Şərqi Amerika Vaxtı (İqaluit)',
         'America/Jamaica' => 'Şimali Şərqi Amerika Vaxtı (Yamayka)',
         'America/Jujuy' => 'Argentina Vaxtı (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentina Vaxtı (Jujuy)',
         'America/Juneau' => 'Alyaska Vaxtı (Cuno)',
         'America/Kentucky/Monticello' => 'Şimali Şərqi Amerika Vaxtı (Montiçello)',
-        'America/Kralendijk' => 'Atlantik Vaxt (Kralendik)',
+        'America/Kralendijk' => 'Atlantik saat qurşağı (Kralendik)',
         'America/La_Paz' => 'Boliviya Vaxtı (La Pas)',
         'America/Lima' => 'Peru Vaxtı (Lima)',
         'America/Los_Angeles' => 'Şimali Amerika Sakit Okean Vaxtı (Los Anceles)',
         'America/Louisville' => 'Şimali Şərqi Amerika Vaxtı (Luisvil)',
-        'America/Lower_Princes' => 'Atlantik Vaxt (Aşağı Prins Kvartalı)',
+        'America/Kentucky/Louisville' => 'Şimali Şərqi Amerika Vaxtı (Luisvil)',
+        'America/Lower_Princes' => 'Atlantik saat qurşağı (Aşağı Prins Kvartalı)',
         'America/Maceio' => 'Braziliya Vaxtı (Maseyo)',
-        'America/Managua' => 'Şimali Mərkəzi Amerika Vaxtı (Manaqua)',
+        'America/Managua' => 'Mərkəzi Amerika saat qurşağı (Manaqua)',
         'America/Manaus' => 'Amazon Vaxtı (Manaus)',
-        'America/Marigot' => 'Atlantik Vaxt (Mariqot)',
-        'America/Martinique' => 'Atlantik Vaxt (Martinik)',
-        'America/Matamoros' => 'Şimali Mərkəzi Amerika Vaxtı (Matamoros)',
+        'America/Marigot' => 'Atlantik saat qurşağı (Mariqot)',
+        'America/Martinique' => 'Atlantik saat qurşağı (Martinik)',
+        'America/Matamoros' => 'Mərkəzi Amerika saat qurşağı (Matamoros)',
         'America/Mazatlan' => 'Meksika Sakit Okean Vaxtı (Mazaltan)',
         'America/Mendoza' => 'Argentina Vaxtı (Mendoza)',
-        'America/Menominee' => 'Şimali Mərkəzi Amerika Vaxtı (Menomini)',
-        'America/Merida' => 'Şimali Mərkəzi Amerika Vaxtı (Merida)',
+        'America/Argentina/Mendoza' => 'Argentina Vaxtı (Mendoza)',
+        'America/Menominee' => 'Mərkəzi Amerika saat qurşağı (Menomini)',
+        'America/Merida' => 'Mərkəzi Amerika saat qurşağı (Merida)',
         'America/Metlakatla' => 'Alyaska Vaxtı (Metlakatla)',
-        'America/Mexico_City' => 'Şimali Mərkəzi Amerika Vaxtı (Mexiko)',
+        'America/Mexico_City' => 'Mərkəzi Amerika saat qurşağı (Mexiko)',
         'America/Miquelon' => 'Müqəddəs Pyer və Mikelon Vaxtı',
-        'America/Moncton' => 'Atlantik Vaxt (Monkton)',
-        'America/Monterrey' => 'Şimali Mərkəzi Amerika Vaxtı (Monterey)',
+        'America/Moncton' => 'Atlantik saat qurşağı (Monkton)',
+        'America/Monterrey' => 'Mərkəzi Amerika saat qurşağı (Monterey)',
         'America/Montevideo' => 'Uruqvay Vaxtı (Montevideo)',
-        'America/Montserrat' => 'Atlantik Vaxt (Monserat)',
+        'America/Montserrat' => 'Atlantik saat qurşağı (Monserat)',
         'America/Nassau' => 'Şimali Şərqi Amerika Vaxtı (Nassau)',
         'America/New_York' => 'Şimali Şərqi Amerika Vaxtı (Nyu York)',
         'America/Nome' => 'Alyaska Vaxtı (Nom)',
         'America/Noronha' => 'Fernando de Noronya Vaxtı',
-        'America/North_Dakota/Beulah' => 'Şimali Mərkəzi Amerika Vaxtı (Beulah, Şimali Dakota)',
-        'America/North_Dakota/Center' => 'Şimali Mərkəzi Amerika Vaxtı (Mərkəz, Şimal Dakota)',
-        'America/North_Dakota/New_Salem' => 'Şimali Mərkəzi Amerika Vaxtı (Nyu Salem)',
-        'America/Ojinaga' => 'Şimali Mərkəzi Amerika Vaxtı (Ocinaqa)',
+        'America/North_Dakota/Beulah' => 'Mərkəzi Amerika saat qurşağı (Beulah, Şimali Dakota)',
+        'America/North_Dakota/Center' => 'Mərkəzi Amerika saat qurşağı (Mərkəz, Şimal Dakota)',
+        'America/North_Dakota/New_Salem' => 'Mərkəzi Amerika saat qurşağı (Nyu Salem)',
+        'America/Ojinaga' => 'Mərkəzi Amerika saat qurşağı (Ocinaqa)',
         'America/Panama' => 'Şimali Şərqi Amerika Vaxtı (Panama)',
         'America/Paramaribo' => 'Surinam Vaxtı (Paramaribo)',
         'America/Phoenix' => 'Şimali Dağlıq Amerika Vaxtı (Feniks)',
         'America/Port-au-Prince' => 'Şimali Şərqi Amerika Vaxtı (Port-o-Prins)',
-        'America/Port_of_Spain' => 'Atlantik Vaxt (İspan Limanı)',
+        'America/Port_of_Spain' => 'Atlantik saat qurşağı (İspan Limanı)',
         'America/Porto_Velho' => 'Amazon Vaxtı (Porto Velyo)',
-        'America/Puerto_Rico' => 'Atlantik Vaxt (Puerto Riko)',
+        'America/Puerto_Rico' => 'Atlantik saat qurşağı (Puerto Riko)',
         'America/Punta_Arenas' => 'Çili Vaxtı (Punta Arenas)',
-        'America/Rankin_Inlet' => 'Şimali Mərkəzi Amerika Vaxtı (Rankin Girişi)',
+        'America/Rankin_Inlet' => 'Mərkəzi Amerika saat qurşağı (Rankin Girişi)',
         'America/Recife' => 'Braziliya Vaxtı (Resif)',
-        'America/Regina' => 'Şimali Mərkəzi Amerika Vaxtı (Recina)',
-        'America/Resolute' => 'Şimali Mərkəzi Amerika Vaxtı (Rezolyut)',
+        'America/Regina' => 'Mərkəzi Amerika saat qurşağı (Recina)',
+        'America/Resolute' => 'Mərkəzi Amerika saat qurşağı (Rezolyut)',
         'America/Rio_Branco' => 'Braziliya Vaxtı (Rio Branko)',
-        'America/Santarem' => 'Braziliya Vaxtı (Santarem)',
+        'America/Santarem' => 'Braziliya Vaxtı (Santarém)',
         'America/Santiago' => 'Çili Vaxtı (Santyaqo)',
-        'America/Santo_Domingo' => 'Atlantik Vaxt (Santo Dominqo)',
+        'America/Santo_Domingo' => 'Atlantik saat qurşağı (Santo Dominqo)',
         'America/Sao_Paulo' => 'Braziliya Vaxtı (San Paulo)',
         'America/Scoresbysund' => 'Qrenlandiya Vaxtı (Skoresbisund)',
         'America/Sitka' => 'Alyaska Vaxtı (Sitka)',
-        'America/St_Barthelemy' => 'Atlantik Vaxt (Sent-Bartelemi)',
+        'America/St_Barthelemy' => 'Atlantik saat qurşağı (Sent-Bartelemi)',
         'America/St_Johns' => 'Nyufaundlend Vaxtı (Sent Cons)',
-        'America/St_Kitts' => 'Atlantik Vaxt (San Kits)',
-        'America/St_Lucia' => 'Atlantik Vaxt (San Lüsiya)',
-        'America/St_Thomas' => 'Atlantik Vaxt (San Tomas)',
-        'America/St_Vincent' => 'Atlantik Vaxt (San Vinsent)',
-        'America/Swift_Current' => 'Şimali Mərkəzi Amerika Vaxtı (Svift Kurent)',
-        'America/Tegucigalpa' => 'Şimali Mərkəzi Amerika Vaxtı (Tequsiqalpa)',
-        'America/Thule' => 'Atlantik Vaxt (Tul)',
+        'America/St_Kitts' => 'Atlantik saat qurşağı (San Kits)',
+        'America/St_Lucia' => 'Atlantik saat qurşağı (San Lüsiya)',
+        'America/St_Thomas' => 'Atlantik saat qurşağı (San Tomas)',
+        'America/St_Vincent' => 'Atlantik saat qurşağı (San Vinsent)',
+        'America/Swift_Current' => 'Mərkəzi Amerika saat qurşağı (Svift Kurent)',
+        'America/Tegucigalpa' => 'Mərkəzi Amerika saat qurşağı (Tequsiqalpa)',
+        'America/Thule' => 'Atlantik saat qurşağı (Tul)',
         'America/Tijuana' => 'Şimali Amerika Sakit Okean Vaxtı (Tixuana)',
         'America/Toronto' => 'Şimali Şərqi Amerika Vaxtı (Toronto)',
-        'America/Tortola' => 'Atlantik Vaxt (Tortola)',
+        'America/Tortola' => 'Atlantik saat qurşağı (Tortola)',
         'America/Vancouver' => 'Şimali Amerika Sakit Okean Vaxtı (Vankuver)',
         'America/Whitehorse' => 'Yukon Vaxtı (Uaythors)',
-        'America/Winnipeg' => 'Şimali Mərkəzi Amerika Vaxtı (Vinnipeq)',
+        'America/Winnipeg' => 'Mərkəzi Amerika saat qurşağı (Vinnipeq)',
         'America/Yakutat' => 'Alyaska Vaxtı (Yakutat)',
         'Antarctica/Casey' => 'Qərbi Avstraliya Vaxtı (Keysi)',
         'Antarctica/Davis' => 'Devis Vaxtı (Deyvis)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Ərəbistan Vaxtı (Bəhreyn)',
         'Asia/Baku' => 'Azərbaycan Vaxtı (Bakı)',
         'Asia/Bangkok' => 'Hindçin Vaxtı (Banqkok)',
-        'Asia/Barnaul' => 'Rusiya Vaxtı (Barnaul)',
+        'Asia/Barnaul' => 'Krasnoyarsk Vaxtı (Barnaul)',
         'Asia/Beirut' => 'Şərqi Avropa Vaxtı (Beyrut)',
         'Asia/Bishkek' => 'Qırğızıstan Vaxtı (Bişkek)',
         'Asia/Brunei' => 'Brunei Darussalam vaxtı (Bruney)',
         'Asia/Calcutta' => 'Hindistan Vaxtı (Kəlkətə)',
+        'Asia/Kolkata' => 'Hindistan Vaxtı (Kəlkətə)',
         'Asia/Chita' => 'Yakutsk Vaxtı (Çita)',
         'Asia/Colombo' => 'Hindistan Vaxtı (Kolombo)',
         'Asia/Damascus' => 'Şərqi Avropa Vaxtı (Dəməşq)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Şərqi Avropa Vaxtı (Qəza)',
         'Asia/Hebron' => 'Şərqi Avropa Vaxtı (Hebron)',
         'Asia/Hong_Kong' => 'Honq Konq Vaxtı',
-        'Asia/Hovd' => 'Hovd Vaxtı',
+        'Asia/Hovd' => 'Hovd Vaxtı (Khovd)',
         'Asia/Irkutsk' => 'İrkutsk Vaxtı',
         'Asia/Jakarta' => 'Qərbi İndoneziya Vaxtı (Cakarta)',
         'Asia/Jayapura' => 'Şərqi İndoneziya Vaxtı (Cayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Rusiya Vaxtı (Kamçatka)',
         'Asia/Karachi' => 'Pakistan Vaxtı (Karaçi)',
         'Asia/Katmandu' => 'Nepal vaxtı (Katmandu)',
+        'Asia/Kathmandu' => 'Nepal vaxtı (Katmandu)',
         'Asia/Khandyga' => 'Yakutsk Vaxtı (Xandıqa)',
         'Asia/Krasnoyarsk' => 'Krasnoyarsk Vaxtı',
         'Asia/Kuala_Lumpur' => 'Malayziya Vaxtı (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Körfəz Vaxtı (Muskat)',
         'Asia/Nicosia' => 'Şərqi Avropa Vaxtı (Nikosiya)',
         'Asia/Novokuznetsk' => 'Krasnoyarsk Vaxtı (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk Vaxtı',
+        'Asia/Novosibirsk' => 'Krasnoyarsk Vaxtı (Novosibirsk)',
         'Asia/Omsk' => 'Omsk Vaxtı',
         'Asia/Oral' => 'Qazaxıstan vaxtı (Oral)',
         'Asia/Phnom_Penh' => 'Hindçin Vaxtı (Pnom Pen)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Qazaxıstan vaxtı (Qostanay)',
         'Asia/Qyzylorda' => 'Qazaxıstan vaxtı (Qızılorda)',
         'Asia/Rangoon' => 'Myanma Vaxtı (Ranqun)',
+        'Asia/Yangon' => 'Myanma Vaxtı (Ranqun)',
         'Asia/Riyadh' => 'Ərəbistan Vaxtı (Riyad)',
         'Asia/Saigon' => 'Hindçin Vaxtı (Ho Şi Min)',
-        'Asia/Sakhalin' => 'Saxalin Vaxtı',
+        'Asia/Ho_Chi_Minh' => 'Hindçin Vaxtı (Ho Şi Min)',
+        'Asia/Sakhalin' => 'Maqadan Vaxtı (Saxalin)',
         'Asia/Samarkand' => 'Özbəkistan Vaxtı (Səmərqənd)',
         'Asia/Seoul' => 'Koreya Vaxtı (Seul)',
         'Asia/Shanghai' => 'Çin Vaxtı (Şanxay)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'İran Vaxtı (Tehran)',
         'Asia/Thimphu' => 'Butan Vaxtı (Thimphu)',
         'Asia/Tokyo' => 'Yaponiya Vaxtı (Tokyo)',
-        'Asia/Tomsk' => 'Rusiya Vaxtı (Tomsk)',
+        'Asia/Tomsk' => 'Krasnoyarsk Vaxtı (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulanbator Vaxtı',
         'Asia/Urumqi' => 'Çin Vaxtı (Urumçi)',
         'Asia/Ust-Nera' => 'Vladivostok Vaxtı (Ust-Nera)',
@@ -292,10 +307,11 @@
         'Asia/Yekaterinburg' => 'Yekaterinburq Vaxtı',
         'Asia/Yerevan' => 'Ermənistan Vaxtı (Yerevan)',
         'Atlantic/Azores' => 'Azor Vaxtı',
-        'Atlantic/Bermuda' => 'Atlantik Vaxt (Bermud adaları)',
+        'Atlantic/Bermuda' => 'Atlantik saat qurşağı (Bermud adaları)',
         'Atlantic/Canary' => 'Qərbi Avropa Vaxtı (Kanar)',
         'Atlantic/Cape_Verde' => 'Kape Verde Vaxtı',
         'Atlantic/Faeroe' => 'Qərbi Avropa Vaxtı (Farer)',
+        'Atlantic/Faroe' => 'Qərbi Avropa Vaxtı (Farer)',
         'Atlantic/Madeira' => 'Qərbi Avropa Vaxtı (Madeyra)',
         'Atlantic/Reykjavik' => 'Qrinviç Orta Vaxtı (Reykyavik)',
         'Atlantic/South_Georgia' => 'Cənubi Corciya Vaxtı',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Koordinasiya edilmiş ümumdünya vaxtı',
         'Europe/Amsterdam' => 'Mərkəzi Avropa Vaxtı (Amsterdam)',
         'Europe/Andorra' => 'Mərkəzi Avropa Vaxtı (Andorra)',
-        'Europe/Astrakhan' => 'Moskva Vaxtı (Həştərxan)',
+        'Europe/Astrakhan' => 'Samara vaxtı (Həştərxan)',
         'Europe/Athens' => 'Şərqi Avropa Vaxtı (Afina)',
         'Europe/Belgrade' => 'Mərkəzi Avropa Vaxtı (Belqrad)',
         'Europe/Berlin' => 'Mərkəzi Avropa Vaxtı (Berlin)',
@@ -324,7 +340,7 @@
         'Europe/Brussels' => 'Mərkəzi Avropa Vaxtı (Brüssel)',
         'Europe/Bucharest' => 'Şərqi Avropa Vaxtı (Buxarest)',
         'Europe/Budapest' => 'Mərkəzi Avropa Vaxtı (Budapeşt)',
-        'Europe/Busingen' => 'Mərkəzi Avropa Vaxtı (Busingen)',
+        'Europe/Busingen' => 'Mərkəzi Avropa Vaxtı (Büsingen)',
         'Europe/Chisinau' => 'Şərqi Avropa Vaxtı (Kişinyov)',
         'Europe/Copenhagen' => 'Mərkəzi Avropa Vaxtı (Kopenhagen)',
         'Europe/Dublin' => 'Qrinviç Orta Vaxtı (Dublin)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Qrinviç Orta Vaxtı (Gernzey)',
         'Europe/Helsinki' => 'Şərqi Avropa Vaxtı (Helsinki)',
         'Europe/Isle_of_Man' => 'Qrinviç Orta Vaxtı (Men Adası)',
-        'Europe/Istanbul' => 'Türkiyə Vaxtı (İstanbul)',
+        'Europe/Istanbul' => 'Türkiya vaxtı (İstanbul)',
         'Europe/Jersey' => 'Qrinviç Orta Vaxtı (Cersi)',
         'Europe/Kaliningrad' => 'Şərqi Avropa Vaxtı (Kalininqrad)',
         'Europe/Kiev' => 'Şərqi Avropa Vaxtı (Kiyev)',
-        'Europe/Kirov' => 'Rusiya Vaxtı (Kirov)',
+        'Europe/Kyiv' => 'Şərqi Avropa Vaxtı (Kiyev)',
+        'Europe/Kirov' => 'Moskva Vaxtı (Kirov)',
         'Europe/Lisbon' => 'Qərbi Avropa Vaxtı (Lissabon)',
         'Europe/Ljubljana' => 'Mərkəzi Avropa Vaxtı (Lyublyana)',
         'Europe/London' => 'Qrinviç Orta Vaxtı (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samara vaxtı',
         'Europe/San_Marino' => 'Mərkəzi Avropa Vaxtı (San Marino)',
         'Europe/Sarajevo' => 'Mərkəzi Avropa Vaxtı (Sarayevo)',
-        'Europe/Saratov' => 'Moskva Vaxtı (Saratov)',
+        'Europe/Saratov' => 'Samara vaxtı (Saratov)',
         'Europe/Simferopol' => 'Moskva Vaxtı (Simferopol)',
         'Europe/Skopje' => 'Mərkəzi Avropa Vaxtı (Skopye)',
         'Europe/Sofia' => 'Şərqi Avropa Vaxtı (Sofiya)',
         'Europe/Stockholm' => 'Mərkəzi Avropa Vaxtı (Stokholm)',
         'Europe/Tallinn' => 'Şərqi Avropa Vaxtı (Tallin)',
         'Europe/Tirane' => 'Mərkəzi Avropa Vaxtı (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskva Vaxtı (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Samara vaxtı (Ulyanovsk)',
         'Europe/Vaduz' => 'Mərkəzi Avropa Vaxtı (Vaduts)',
         'Europe/Vatican' => 'Mərkəzi Avropa Vaxtı (Vatikan)',
         'Europe/Vienna' => 'Mərkəzi Avropa Vaxtı (Vyana)',
         'Europe/Vilnius' => 'Şərqi Avropa Vaxtı (Vilnüs)',
-        'Europe/Volgograd' => 'Volqoqrad Vaxtı',
+        'Europe/Volgograd' => 'Moskva Vaxtı (Volqoqrad)',
         'Europe/Warsaw' => 'Mərkəzi Avropa Vaxtı (Varşava)',
         'Europe/Zagreb' => 'Mərkəzi Avropa Vaxtı (Zaqreb)',
         'Europe/Zurich' => 'Mərkəzi Avropa Vaxtı (Sürix)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Kokos Adaları Vaxtı',
         'Indian/Comoro' => 'Şərqi Afrika Vaxtı (Komoro)',
         'Indian/Kerguelen' => 'Fransız Cənubi və Antarktik Vaxtı (Kergelen)',
-        'Indian/Mahe' => 'Seyşel Adaları Vaxtı (Mahe)',
+        'Indian/Mahe' => 'Seyşel Adaları Vaxtı (Mahé)',
         'Indian/Maldives' => 'Maldiv Vaxtı',
         'Indian/Mauritius' => 'Mavriki Vaxtı',
         'Indian/Mayotte' => 'Şərqi Afrika Vaxtı (Mayot)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Çatham Vaxtı (Çatam)',
         'Pacific/Easter' => 'Pasxa Adası Vaxtı',
         'Pacific/Efate' => 'Vanuatu Vaxtı (Efate)',
-        'Pacific/Enderbury' => 'Feniks Adaları Vaxtı (Enderböri)',
+        'Pacific/Enderbury' => 'Feniks Adaları Vaxtı (Kanton)',
+        'Pacific/Kanton' => 'Feniks Adaları Vaxtı (Kanton)',
         'Pacific/Fakaofo' => 'Tokelau Vaxtı (Fakaofo)',
         'Pacific/Fiji' => 'Fici Vaxtı',
         'Pacific/Funafuti' => 'Tuvalu Vaxtı (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Qambier Vaxtı (Qambiyer)',
         'Pacific/Guadalcanal' => 'Solomon Adaları Vaxtı (Quadalkanal)',
         'Pacific/Guam' => 'Çamorro Vaxtı (Quam)',
-        'Pacific/Honolulu' => 'Havay-Aleut Vaxtı (Honolulu)',
+        'Pacific/Honolulu' => 'Havay-Aleut Standart Vaxtı (Honolulu)',
         'Pacific/Kiritimati' => 'Layn Adaları Vaxtı (Kirimati)',
         'Pacific/Kosrae' => 'Korse Vaxtı (Kosraye)',
         'Pacific/Kwajalein' => 'Marşal Adaları Vaxtı (Kvajaleyn)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Nauru Vaxtı',
         'Pacific/Niue' => 'Niue Vaxtı',
         'Pacific/Norfolk' => 'Norfolk Adası Vaxtı',
-        'Pacific/Noumea' => 'Yeni Kaledoniya Vaxtı (Noumea)',
+        'Pacific/Noumea' => 'Yeni Kaledoniya Vaxtı (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoa Vaxtı (Paqo Paqo)',
         'Pacific/Palau' => 'Palau Vaxtı',
         'Pacific/Pitcairn' => 'Pitkern Vaxtı',
         'Pacific/Ponape' => 'Ponape Vaxtı (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponape Vaxtı (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papua Yeni Qvineya Vaxtı (Port Moresbi)',
         'Pacific/Rarotonga' => 'Kuk Adaları Vaxtı (Rarotonqa)',
         'Pacific/Saipan' => 'Çamorro Vaxtı (Saypan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Gilbert Adaları Vaxtı (Tarava)',
         'Pacific/Tongatapu' => 'Tonqa Vaxtı (Tonqapatu)',
         'Pacific/Truk' => 'Çuuk Vaxtı',
+        'Pacific/Chuuk' => 'Çuuk Vaxtı',
         'Pacific/Wake' => 'Ueyk Vaxtı (Veyk)',
         'Pacific/Wallis' => 'Uollis və Futuna Vaxtı',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ba.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ba.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ba.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ba.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,446 @@
+<?php
+
+return [
+    'Names' => [
+        'Africa/Abidjan' => 'Гринвич буйынса уртаса ваҡыт (Абиджан)',
+        'Africa/Accra' => 'Гринвич буйынса уртаса ваҡыт (Аккра)',
+        'Africa/Addis_Ababa' => 'Көнсығыш Африка ваҡыты (Аддис-Абеба)',
+        'Africa/Algiers' => 'Үҙәк Европа ваҡыты (Алжир)',
+        'Africa/Asmera' => 'Көнсығыш Африка ваҡыты (Асмэра)',
+        'Africa/Asmara' => 'Көнсығыш Африка ваҡыты (Асмэра)',
+        'Africa/Bamako' => 'Гринвич буйынса уртаса ваҡыт (Бамако)',
+        'Africa/Bangui' => 'Көнбайыш Африка ваҡыты (Банги)',
+        'Africa/Banjul' => 'Гринвич буйынса уртаса ваҡыт (Банжул)',
+        'Africa/Bissau' => 'Гринвич буйынса уртаса ваҡыт (Бисау)',
+        'Africa/Blantyre' => 'Үҙәк Африка ваҡыты (Блантайр)',
+        'Africa/Brazzaville' => 'Көнбайыш Африка ваҡыты (Браззавиль)',
+        'Africa/Bujumbura' => 'Үҙәк Африка ваҡыты (Бужумбура)',
+        'Africa/Cairo' => 'Көнсығыш Европа ваҡыты (Ҡаһирә)',
+        'Africa/Casablanca' => 'Көнбайыш Европа ваҡыты (Касабланка)',
+        'Africa/Ceuta' => 'Үҙәк Европа ваҡыты (Сеута)',
+        'Africa/Conakry' => 'Гринвич буйынса уртаса ваҡыт (Конакри)',
+        'Africa/Dakar' => 'Гринвич буйынса уртаса ваҡыт (Дакар)',
+        'Africa/Dar_es_Salaam' => 'Көнсығыш Африка ваҡыты (Дар-эс-Салам)',
+        'Africa/Djibouti' => 'Көнсығыш Африка ваҡыты (Джибути)',
+        'Africa/Douala' => 'Көнбайыш Африка ваҡыты (Дуала)',
+        'Africa/El_Aaiun' => 'Көнбайыш Европа ваҡыты (Эль-Аюн)',
+        'Africa/Freetown' => 'Гринвич буйынса уртаса ваҡыт (Фритаун)',
+        'Africa/Gaborone' => 'Үҙәк Африка ваҡыты (Габороне)',
+        'Africa/Harare' => 'Үҙәк Африка ваҡыты (Хараре)',
+        'Africa/Johannesburg' => 'Көньяҡ Африка стандарт ваҡыты (Йоханнесбург)',
+        'Africa/Juba' => 'Үҙәк Африка ваҡыты (Джуба)',
+        'Africa/Kampala' => 'Көнсығыш Африка ваҡыты (Кампала)',
+        'Africa/Khartoum' => 'Үҙәк Африка ваҡыты (Хартум)',
+        'Africa/Kigali' => 'Үҙәк Африка ваҡыты (Кигали)',
+        'Africa/Kinshasa' => 'Көнбайыш Африка ваҡыты (Киншаса)',
+        'Africa/Lagos' => 'Көнбайыш Африка ваҡыты (Лагос)',
+        'Africa/Libreville' => 'Көнбайыш Африка ваҡыты (Либревиль)',
+        'Africa/Lome' => 'Гринвич буйынса уртаса ваҡыт (Ломе)',
+        'Africa/Luanda' => 'Көнбайыш Африка ваҡыты (Луанда)',
+        'Africa/Lubumbashi' => 'Үҙәк Африка ваҡыты (Лубумбаши)',
+        'Africa/Lusaka' => 'Үҙәк Африка ваҡыты (Лусака)',
+        'Africa/Malabo' => 'Көнбайыш Африка ваҡыты (Малабо)',
+        'Africa/Maputo' => 'Үҙәк Африка ваҡыты (Мапуту)',
+        'Africa/Maseru' => 'Көньяҡ Африка стандарт ваҡыты (Масеру)',
+        'Africa/Mbabane' => 'Көньяҡ Африка стандарт ваҡыты (Мбабане)',
+        'Africa/Mogadishu' => 'Көнсығыш Африка ваҡыты (Могадишо)',
+        'Africa/Monrovia' => 'Гринвич буйынса уртаса ваҡыт (Монровия)',
+        'Africa/Nairobi' => 'Көнсығыш Африка ваҡыты (Найроби)',
+        'Africa/Ndjamena' => 'Көнбайыш Африка ваҡыты (Нджамена)',
+        'Africa/Niamey' => 'Көнбайыш Африка ваҡыты (Ниамей)',
+        'Africa/Nouakchott' => 'Гринвич буйынса уртаса ваҡыт (Нуакшот)',
+        'Africa/Ouagadougou' => 'Гринвич буйынса уртаса ваҡыт (Уагадугу)',
+        'Africa/Porto-Novo' => 'Көнбайыш Африка ваҡыты (Порто-Ново)',
+        'Africa/Sao_Tome' => 'Гринвич буйынса уртаса ваҡыт (Сан-Томе)',
+        'Africa/Tripoli' => 'Көнсығыш Европа ваҡыты (Триполи)',
+        'Africa/Tunis' => 'Үҙәк Европа ваҡыты (Тунис)',
+        'Africa/Windhoek' => 'Үҙәк Африка ваҡыты (Виндхук)',
+        'America/Adak' => 'Гавай-Алеут ваҡыты (Адак)',
+        'America/Anchorage' => 'Аляска ваҡыты (Анкоридж)',
+        'America/Anguilla' => 'Атлантик ваҡыты (Ангилья)',
+        'America/Antigua' => 'Атлантик ваҡыты (Антигуа)',
+        'America/Araguaina' => 'Бразилия ваҡыты (Арагуаина)',
+        'America/Argentina/La_Rioja' => 'Аргентина ваҡыты (Ла-Риоха)',
+        'America/Argentina/Rio_Gallegos' => 'Аргентина ваҡыты (Рио-Гальегос)',
+        'America/Argentina/Salta' => 'Аргентина ваҡыты (Сальта)',
+        'America/Argentina/San_Juan' => 'Аргентина ваҡыты (Сан-Хуан)',
+        'America/Argentina/San_Luis' => 'Аргентина ваҡыты (Сан-Луис)',
+        'America/Argentina/Tucuman' => 'Аргентина ваҡыты (Тукуман)',
+        'America/Argentina/Ushuaia' => 'Аргентина ваҡыты (Ушуая)',
+        'America/Aruba' => 'Атлантик ваҡыты (Аруба)',
+        'America/Asuncion' => 'Парагвай ваҡыты (Асунсьон)',
+        'America/Bahia' => 'Бразилия ваҡыты (Баия)',
+        'America/Bahia_Banderas' => 'Үҙәк Америка ваҡыты (Баия-де-Бандерас)',
+        'America/Barbados' => 'Атлантик ваҡыты (Барбадос)',
+        'America/Belem' => 'Бразилия ваҡыты (Белен)',
+        'America/Belize' => 'Үҙәк Америка ваҡыты (Белиз)',
+        'America/Blanc-Sablon' => 'Атлантик ваҡыты (Блан-Саблон)',
+        'America/Boa_Vista' => 'Амазон ваҡыты (Боа-Виста)',
+        'America/Bogota' => 'Колумбия ваҡыты (Богота)',
+        'America/Boise' => 'Төньяҡ Америка Тау ваҡыты (Бойсе)',
+        'America/Buenos_Aires' => 'Аргентина ваҡыты (Буэнос-Айрес)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина ваҡыты (Буэнос-Айрес)',
+        'America/Cambridge_Bay' => 'Төньяҡ Америка Тау ваҡыты (Кеймбридж-Бей)',
+        'America/Campo_Grande' => 'Амазон ваҡыты (Кампу-Гранди)',
+        'America/Cancun' => 'Көнсығыш Америка ваҡыты (Канкун)',
+        'America/Caracas' => 'Венесуэла ваҡыты (Каракас)',
+        'America/Catamarca' => 'Аргентина ваҡыты (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргентина ваҡыты (Катамарка)',
+        'America/Cayenne' => 'Француз Гвианаһы ваҡыты (Кайенна)',
+        'America/Cayman' => 'Көнсығыш Америка ваҡыты (Кайман утрауҙары)',
+        'America/Chicago' => 'Үҙәк Америка ваҡыты (Чикаго)',
+        'America/Chihuahua' => 'Үҙәк Америка ваҡыты (Чиуауа)',
+        'America/Ciudad_Juarez' => 'Төньяҡ Америка Тау ваҡыты (Сьюдад-Хуарес)',
+        'America/Coral_Harbour' => 'Көнсығыш Америка ваҡыты (Атикокан)',
+        'America/Atikokan' => 'Көнсығыш Америка ваҡыты (Атикокан)',
+        'America/Cordoba' => 'Аргентина ваҡыты (Кордова)',
+        'America/Argentina/Cordoba' => 'Аргентина ваҡыты (Кордова)',
+        'America/Costa_Rica' => 'Үҙәк Америка ваҡыты (Коста-Рика)',
+        'America/Coyhaique' => 'Чили ваҡыты (Койхайке)',
+        'America/Creston' => 'Төньяҡ Америка Тау ваҡыты (Крестон)',
+        'America/Cuiaba' => 'Амазон ваҡыты (Куяба)',
+        'America/Curacao' => 'Атлантик ваҡыты (Кюрасао)',
+        'America/Danmarkshavn' => 'Гринвич буйынса уртаса ваҡыт (Денмарксхавн)',
+        'America/Dawson' => 'Юкон ваҡыты (Доусон)',
+        'America/Dawson_Creek' => 'Төньяҡ Америка Тау ваҡыты (Доусон-Крик)',
+        'America/Denver' => 'Төньяҡ Америка Тау ваҡыты (Денвер)',
+        'America/Detroit' => 'Көнсығыш Америка ваҡыты (Детройт)',
+        'America/Dominica' => 'Атлантик ваҡыты (Доминика)',
+        'America/Edmonton' => 'Төньяҡ Америка Тау ваҡыты (Эдмонтон)',
+        'America/Eirunepe' => 'Акри ваҡыты (Эйрунепе)',
+        'America/El_Salvador' => 'Үҙәк Америка ваҡыты (Сальвадор)',
+        'America/Fort_Nelson' => 'Төньяҡ Америка Тау ваҡыты (Форт Нельсон)',
+        'America/Fortaleza' => 'Бразилия ваҡыты (Форталеза)',
+        'America/Glace_Bay' => 'Атлантик ваҡыты (Глейс-Бей)',
+        'America/Godthab' => 'Гренландия ваҡыты (Нуук)',
+        'America/Nuuk' => 'Гренландия ваҡыты (Нуук)',
+        'America/Goose_Bay' => 'Атлантик ваҡыты (Гус-Бей)',
+        'America/Grand_Turk' => 'Көнсығыш Америка ваҡыты (Гранд-Терк)',
+        'America/Grenada' => 'Атлантик ваҡыты (Гренада)',
+        'America/Guadeloupe' => 'Атлантик ваҡыты (Гваделупа)',
+        'America/Guatemala' => 'Үҙәк Америка ваҡыты (Гватемала)',
+        'America/Guayaquil' => 'Эквадор ваҡыты (Гуаякиль)',
+        'America/Guyana' => 'Гайана ваҡыты',
+        'America/Halifax' => 'Атлантик ваҡыты (Галифакс)',
+        'America/Havana' => 'Куба ваҡыты (Гавана)',
+        'America/Hermosillo' => 'Мексика Тымыҡ океан ваҡыты (Эрмосильо)',
+        'America/Indiana/Knox' => 'Үҙәк Америка ваҡыты (Нокс, Индиана)',
+        'America/Indiana/Marengo' => 'Көнсығыш Америка ваҡыты (Маренго, Индиана)',
+        'America/Indiana/Petersburg' => 'Көнсығыш Америка ваҡыты (Питерсберг, Индиана)',
+        'America/Indiana/Tell_City' => 'Үҙәк Америка ваҡыты (Телл-Сити)',
+        'America/Indiana/Vevay' => 'Көнсығыш Америка ваҡыты (Вевей, Индиана)',
+        'America/Indiana/Vincennes' => 'Көнсығыш Америка ваҡыты (Винсеннес, Индиана)',
+        'America/Indiana/Winamac' => 'Көнсығыш Америка ваҡыты (Уинамак, Индиана)',
+        'America/Indianapolis' => 'Көнсығыш Америка ваҡыты (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Көнсығыш Америка ваҡыты (Индианаполис)',
+        'America/Inuvik' => 'Төньяҡ Америка Тау ваҡыты (Инувик)',
+        'America/Iqaluit' => 'Көнсығыш Америка ваҡыты (Икалуит)',
+        'America/Jamaica' => 'Көнсығыш Америка ваҡыты (Ямайка)',
+        'America/Jujuy' => 'Аргентина ваҡыты (Жужуй)',
+        'America/Argentina/Jujuy' => 'Аргентина ваҡыты (Жужуй)',
+        'America/Juneau' => 'Аляска ваҡыты (Джуно)',
+        'America/Kentucky/Monticello' => 'Көнсығыш Америка ваҡыты (Монтиселло, Кентукки)',
+        'America/Kralendijk' => 'Атлантик ваҡыты (Кралендейк)',
+        'America/La_Paz' => 'Боливия ваҡыты (Ла-Пас)',
+        'America/Lima' => 'Перу ваҡыты (Лима)',
+        'America/Los_Angeles' => 'Тымыҡ океан ваҡыты (Лос-Анджелес)',
+        'America/Louisville' => 'Көнсығыш Америка ваҡыты (Луисвилл)',
+        'America/Kentucky/Louisville' => 'Көнсығыш Америка ваҡыты (Луисвилл)',
+        'America/Lower_Princes' => 'Атлантик ваҡыты (Лоуэр-Принс-Куотер)',
+        'America/Maceio' => 'Бразилия ваҡыты (Масейо)',
+        'America/Managua' => 'Үҙәк Америка ваҡыты (Манагуа)',
+        'America/Manaus' => 'Амазон ваҡыты (Манаус)',
+        'America/Marigot' => 'Атлантик ваҡыты (Мариго)',
+        'America/Martinique' => 'Атлантик ваҡыты (Мартиника)',
+        'America/Matamoros' => 'Үҙәк Америка ваҡыты (Матаморос)',
+        'America/Mazatlan' => 'Мексика Тымыҡ океан ваҡыты (Масатлан)',
+        'America/Mendoza' => 'Аргентина ваҡыты (Мендоса)',
+        'America/Argentina/Mendoza' => 'Аргентина ваҡыты (Мендоса)',
+        'America/Menominee' => 'Үҙәк Америка ваҡыты (Меномини)',
+        'America/Merida' => 'Үҙәк Америка ваҡыты (Мерида)',
+        'America/Metlakatla' => 'Аляска ваҡыты (Метлакатла)',
+        'America/Mexico_City' => 'Үҙәк Америка ваҡыты (Мехико)',
+        'America/Miquelon' => 'Сен-Пьер һәм Микелон ваҡыты',
+        'America/Moncton' => 'Атлантик ваҡыты (Монктон)',
+        'America/Monterrey' => 'Үҙәк Америка ваҡыты (Монтеррей)',
+        'America/Montevideo' => 'Уругвай ваҡыты (Монтевидео)',
+        'America/Montserrat' => 'Атлантик ваҡыты (Монтсеррат)',
+        'America/Nassau' => 'Көнсығыш Америка ваҡыты (Нассау)',
+        'America/New_York' => 'Көнсығыш Америка ваҡыты (Нью-Йорк)',
+        'America/Nome' => 'Аляска ваҡыты (Ном)',
+        'America/Noronha' => 'Фернанду-ди-Норонья ваҡыты',
+        'America/North_Dakota/Beulah' => 'Үҙәк Америка ваҡыты (Бойла, Төньяҡ Дакота)',
+        'America/North_Dakota/Center' => 'Үҙәк Америка ваҡыты (Үҙәк, Төньяҡ Дакота)',
+        'America/North_Dakota/New_Salem' => 'Үҙәк Америка ваҡыты (Нью-Салем, Төньяк Дакота)',
+        'America/Ojinaga' => 'Үҙәк Америка ваҡыты (Охинага)',
+        'America/Panama' => 'Көнсығыш Америка ваҡыты (Панама)',
+        'America/Paramaribo' => 'Суринам ваҡыты (Парамарибо)',
+        'America/Phoenix' => 'Төньяҡ Америка Тау ваҡыты (Финикс)',
+        'America/Port-au-Prince' => 'Көнсығыш Америка ваҡыты (Порт-о-Пренс)',
+        'America/Port_of_Spain' => 'Атлантик ваҡыты (Порт-оф-Спейн)',
+        'America/Porto_Velho' => 'Амазон ваҡыты (Порту-Велью)',
+        'America/Puerto_Rico' => 'Атлантик ваҡыты (Пуэрто-Рико)',
+        'America/Punta_Arenas' => 'Чили ваҡыты (Пунта-Аренас)',
+        'America/Rankin_Inlet' => 'Үҙәк Америка ваҡыты (Ранкин-Инлет)',
+        'America/Recife' => 'Бразилия ваҡыты (Ресифи)',
+        'America/Regina' => 'Үҙәк Америка ваҡыты (Регина)',
+        'America/Resolute' => 'Үҙәк Америка ваҡыты (Резольют)',
+        'America/Rio_Branco' => 'Акри ваҡыты (Риу-Бранку)',
+        'America/Santarem' => 'Бразилия ваҡыты (Сантарен)',
+        'America/Santiago' => 'Чили ваҡыты (Сантьяго)',
+        'America/Santo_Domingo' => 'Атлантик ваҡыты (Санто-Доминго)',
+        'America/Sao_Paulo' => 'Бразилия ваҡыты (Сан-Паулу)',
+        'America/Scoresbysund' => 'Гренландия ваҡыты (Скорсбисунн)',
+        'America/Sitka' => 'Аляска ваҡыты (Ситка)',
+        'America/St_Barthelemy' => 'Атлантик ваҡыты (Сен-Бартелеми)',
+        'America/St_Johns' => 'Ньюфаундленд ваҡыты (Сент-Джонс)',
+        'America/St_Kitts' => 'Атлантик ваҡыты (Сент-Китс)',
+        'America/St_Lucia' => 'Атлантик ваҡыты (Сент-Люсия)',
+        'America/St_Thomas' => 'Атлантик ваҡыты (Сент-Томас)',
+        'America/St_Vincent' => 'Атлантик ваҡыты (Сент-Винсент)',
+        'America/Swift_Current' => 'Үҙәк Америка ваҡыты (Свифт-Керрент)',
+        'America/Tegucigalpa' => 'Үҙәк Америка ваҡыты (Тегусигальпа)',
+        'America/Thule' => 'Атлантик ваҡыты (Туле)',
+        'America/Tijuana' => 'Тымыҡ океан ваҡыты (Тихуана)',
+        'America/Toronto' => 'Көнсығыш Америка ваҡыты (Торонто)',
+        'America/Tortola' => 'Атлантик ваҡыты (Тортола)',
+        'America/Vancouver' => 'Тымыҡ океан ваҡыты (Ванкувер)',
+        'America/Whitehorse' => 'Юкон ваҡыты (Уайтхорс)',
+        'America/Winnipeg' => 'Үҙәк Америка ваҡыты (Виннипег)',
+        'America/Yakutat' => 'Аляска ваҡыты (Якутат)',
+        'Antarctica/Casey' => 'Көнбайыш Австралия ваҡыты (Кейси станцияһы)',
+        'Antarctica/Davis' => 'Дейвис ваҡыты',
+        'Antarctica/DumontDUrville' => 'Дюмон-д’Юрвиль ваҡыты (Дюмон-д’Юрвиль станцияһы)',
+        'Antarctica/Macquarie' => 'Көнсығыш Австралия ваҡыты (Маккуори утрауы)',
+        'Antarctica/Mawson' => 'Моусон ваҡыты (Моусон станцияһы)',
+        'Antarctica/McMurdo' => 'Яңы Зеландия ваҡыты (Мак-Мердо станцияһы)',
+        'Antarctica/Palmer' => 'Чили ваҡыты (Палмер)',
+        'Antarctica/Rothera' => 'Ротера ваҡыты (Ротера станцияһы)',
+        'Antarctica/Syowa' => 'Сёва ваҡыты (Сёва станцияһы)',
+        'Antarctica/Troll' => 'Гринвич буйынса уртаса ваҡыт (Тролль станцияһы)',
+        'Antarctica/Vostok' => 'Восток ваҡыты (Восток станцияһы)',
+        'Arctic/Longyearbyen' => 'Үҙәк Европа ваҡыты (Лонгйир)',
+        'Asia/Aden' => 'Сәғүд Ғәрәбстаны ваҡыты (Аден)',
+        'Asia/Almaty' => 'Ҡаҙағстан ваҡыты (Алматы)',
+        'Asia/Amman' => 'Көнсығыш Европа ваҡыты (Амман)',
+        'Asia/Anadyr' => 'Камчатка ваҡыты (Анадырь)',
+        'Asia/Aqtau' => 'Ҡаҙағстан ваҡыты (Аҡтау)',
+        'Asia/Aqtobe' => 'Ҡаҙағстан ваҡыты (Аҡтүбә)',
+        'Asia/Ashgabat' => 'Төркмәнстан ваҡыты (Ашхабад)',
+        'Asia/Atyrau' => 'Ҡаҙағстан ваҡыты (Атырау)',
+        'Asia/Baghdad' => 'Сәғүд Ғәрәбстаны ваҡыты (Бағдад)',
+        'Asia/Bahrain' => 'Сәғүд Ғәрәбстаны ваҡыты (Бәхрәйн)',
+        'Asia/Baku' => 'Әзербайжан ваҡыты (Баҡы)',
+        'Asia/Bangkok' => 'Һинд-Ҡытай ваҡыты (Бангкок)',
+        'Asia/Barnaul' => 'Красноярск ваҡыты (Барнаул)',
+        'Asia/Beirut' => 'Көнсығыш Европа ваҡыты (Бейрут)',
+        'Asia/Bishkek' => 'Ҡырғыҙстан ваҡыты (Бешкәк)',
+        'Asia/Brunei' => 'Бруней ваҡыты',
+        'Asia/Calcutta' => 'Һиндостан стандарт ваҡыты (Калькутта)',
+        'Asia/Kolkata' => 'Һиндостан стандарт ваҡыты (Калькутта)',
+        'Asia/Chita' => 'Якутск ваҡыты (Чита)',
+        'Asia/Colombo' => 'Һиндостан стандарт ваҡыты (Коломбо)',
+        'Asia/Damascus' => 'Көнсығыш Европа ваҡыты (Дәмәшк)',
+        'Asia/Dhaka' => 'Бангладеш ваҡыты (Дакка)',
+        'Asia/Dili' => 'Көнсығыш Тимор ваҡыты (Дили)',
+        'Asia/Dubai' => 'Фарсы ҡултығы стандарт ваҡыты (Дубай)',
+        'Asia/Dushanbe' => 'Тажикстан ваҡыты (Дүшәнбе)',
+        'Asia/Famagusta' => 'Көнсығыш Европа ваҡыты (Фамагуста)',
+        'Asia/Gaza' => 'Көнсығыш Европа ваҡыты (Газа)',
+        'Asia/Hebron' => 'Көнсығыш Европа ваҡыты (Хеврон)',
+        'Asia/Hong_Kong' => 'Гонконг ваҡыты',
+        'Asia/Hovd' => 'Ховд ваҡыты',
+        'Asia/Irkutsk' => 'Иркутск ваҡыты',
+        'Asia/Jakarta' => 'Көнбайыш Индонезия (Джакарта)',
+        'Asia/Jayapura' => 'Көнсығыш Индонезия (Джаяпура)',
+        'Asia/Jerusalem' => 'Израиль ваҡыты (Иерусалим)',
+        'Asia/Kabul' => 'Афғанстан ваҡыты (Кабул)',
+        'Asia/Kamchatka' => 'Камчатка ваҡыты',
+        'Asia/Karachi' => 'Пакистан ваҡыты (Карачи)',
+        'Asia/Katmandu' => 'Непал ваҡыты (Катманду)',
+        'Asia/Kathmandu' => 'Непал ваҡыты (Катманду)',
+        'Asia/Khandyga' => 'Якутск ваҡыты (Хандыга)',
+        'Asia/Krasnoyarsk' => 'Красноярск ваҡыты',
+        'Asia/Kuala_Lumpur' => 'Малайзия ваҡыты (Куала-Лумпур)',
+        'Asia/Kuching' => 'Малайзия ваҡыты (Кучинг)',
+        'Asia/Kuwait' => 'Сәғүд Ғәрәбстаны ваҡыты (Кувейт)',
+        'Asia/Macau' => 'Ҡытай ваҡыты (Макао)',
+        'Asia/Magadan' => 'Магадан ваҡыты',
+        'Asia/Makassar' => 'Үҙәк Индонезия ваҡыты (Макасар)',
+        'Asia/Manila' => 'Филиппин ваҡыты (Манила)',
+        'Asia/Muscat' => 'Фарсы ҡултығы стандарт ваҡыты (Маскат)',
+        'Asia/Nicosia' => 'Көнсығыш Европа ваҡыты (Никосия)',
+        'Asia/Novokuznetsk' => 'Красноярск ваҡыты (Новокузнецк)',
+        'Asia/Novosibirsk' => 'Красноярск ваҡыты (Новосибирск)',
+        'Asia/Omsk' => 'Омск ваҡыты',
+        'Asia/Oral' => 'Ҡаҙағстан ваҡыты (Уральск)',
+        'Asia/Phnom_Penh' => 'Һинд-Ҡытай ваҡыты (Пномпень)',
+        'Asia/Pontianak' => 'Көнбайыш Индонезия (Понтианак)',
+        'Asia/Pyongyang' => 'Корея ваҡыты (Пхеньян)',
+        'Asia/Qatar' => 'Сәғүд Ғәрәбстаны ваҡыты (Катар)',
+        'Asia/Qostanay' => 'Ҡаҙағстан ваҡыты (Ҡостанай)',
+        'Asia/Qyzylorda' => 'Ҡаҙағстан ваҡыты (Ҡыҙылурҙа)',
+        'Asia/Rangoon' => 'Мьянма ваҡыты (Янгон)',
+        'Asia/Yangon' => 'Мьянма ваҡыты (Янгон)',
+        'Asia/Riyadh' => 'Сәғүд Ғәрәбстаны ваҡыты (Эр-Рияд)',
+        'Asia/Saigon' => 'Һинд-Ҡытай ваҡыты (Хошимин)',
+        'Asia/Ho_Chi_Minh' => 'Һинд-Ҡытай ваҡыты (Хошимин)',
+        'Asia/Sakhalin' => 'Магадан ваҡыты (Сахалин)',
+        'Asia/Samarkand' => 'Үзбәкстан ваҡыты (Сәмәрҡәнд)',
+        'Asia/Seoul' => 'Корея ваҡыты (Сеул)',
+        'Asia/Shanghai' => 'Ҡытай ваҡыты (Шанхай)',
+        'Asia/Singapore' => 'Сингапур стандарт ваҡыты',
+        'Asia/Srednekolymsk' => 'Магадан ваҡыты (Среднеколымск)',
+        'Asia/Taipei' => 'Тайвань ваҡыты (Тайпей)',
+        'Asia/Tashkent' => 'Үзбәкстан ваҡыты (Ташкент)',
+        'Asia/Tbilisi' => 'Грузия ваҡыты (Тбилиси)',
+        'Asia/Tehran' => 'Иран ваҡыты (Тәһран)',
+        'Asia/Thimphu' => 'Бутан ваҡыты (Тхимпху)',
+        'Asia/Tokyo' => 'Япония ваҡыты (Токио)',
+        'Asia/Tomsk' => 'Красноярск ваҡыты (Томск)',
+        'Asia/Ulaanbaatar' => 'Улан-Батор ваҡыты',
+        'Asia/Urumqi' => 'Ҡытай ваҡыты (Өрөмсө)',
+        'Asia/Ust-Nera' => 'Владивосток ваҡыты (Усть-Нера)',
+        'Asia/Vientiane' => 'Һинд-Ҡытай ваҡыты (Вьентьян)',
+        'Asia/Vladivostok' => 'Владивосток ваҡыты',
+        'Asia/Yakutsk' => 'Якутск ваҡыты',
+        'Asia/Yekaterinburg' => 'Екатеринбург ваҡыты',
+        'Asia/Yerevan' => 'Әрмәнстан ваҡыты (Ереван)',
+        'Atlantic/Azores' => 'Азор утрауҙары ваҡыты',
+        'Atlantic/Bermuda' => 'Атлантик ваҡыты (Бермуд)',
+        'Atlantic/Canary' => 'Көнбайыш Европа ваҡыты (Канар утрауҙары)',
+        'Atlantic/Cape_Verde' => 'Кабо-Верде ваҡыты',
+        'Atlantic/Faeroe' => 'Көнбайыш Европа ваҡыты (Фарер утрауҙары)',
+        'Atlantic/Faroe' => 'Көнбайыш Европа ваҡыты (Фарер утрауҙары)',
+        'Atlantic/Madeira' => 'Көнбайыш Европа ваҡыты (Мадейра)',
+        'Atlantic/Reykjavik' => 'Гринвич буйынса уртаса ваҡыт (Рейкьявик)',
+        'Atlantic/South_Georgia' => 'Көньяҡ Георгия ваҡыты',
+        'Atlantic/St_Helena' => 'Гринвич буйынса уртаса ваҡыт (Изге Елена утрауы)',
+        'Atlantic/Stanley' => 'Фолкленд утрауҙары ваҡыты (Стэнли)',
+        'Australia/Adelaide' => 'Үҙәк Австралия ваҡыты (Аделаида)',
+        'Australia/Brisbane' => 'Көнсығыш Австралия ваҡыты (Брисбен)',
+        'Australia/Broken_Hill' => 'Үҙәк Австралия ваҡыты (Брокен-Хилл)',
+        'Australia/Darwin' => 'Үҙәк Австралия ваҡыты (Дарвин)',
+        'Australia/Eucla' => 'Үҙәк Австралия көнбайыш ваҡыты (Юкла)',
+        'Australia/Hobart' => 'Көнсығыш Австралия ваҡыты (Хобарт)',
+        'Australia/Lindeman' => 'Көнсығыш Австралия ваҡыты (Линдеман)',
+        'Australia/Lord_Howe' => 'Лорд-Хау ваҡыты (Лорд-Хау утрауы)',
+        'Australia/Melbourne' => 'Көнсығыш Австралия ваҡыты (Мельбурн)',
+        'Australia/Perth' => 'Көнбайыш Австралия ваҡыты (Перт)',
+        'Australia/Sydney' => 'Көнсығыш Австралия ваҡыты (Сидней)',
+        'Etc/GMT' => 'Гринвич буйынса уртаса ваҡыт',
+        'Etc/UTC' => 'Координацияланған универсаль ваҡыт',
+        'Europe/Amsterdam' => 'Үҙәк Европа ваҡыты (Амстердам)',
+        'Europe/Andorra' => 'Үҙәк Европа ваҡыты (Андорра)',
+        'Europe/Astrakhan' => 'Һамар ваҡыты (Әстерхан)',
+        'Europe/Athens' => 'Көнсығыш Европа ваҡыты (Афина)',
+        'Europe/Belgrade' => 'Үҙәк Европа ваҡыты (Белград)',
+        'Europe/Berlin' => 'Үҙәк Европа ваҡыты (Берлин)',
+        'Europe/Bratislava' => 'Үҙәк Европа ваҡыты (Братислава)',
+        'Europe/Brussels' => 'Үҙәк Европа ваҡыты (Брюссель)',
+        'Europe/Bucharest' => 'Көнсығыш Европа ваҡыты (Бухарест)',
+        'Europe/Budapest' => 'Үҙәк Европа ваҡыты (Будапешт)',
+        'Europe/Busingen' => 'Үҙәк Европа ваҡыты (Бүзинген)',
+        'Europe/Chisinau' => 'Көнсығыш Европа ваҡыты (Кишинев)',
+        'Europe/Copenhagen' => 'Үҙәк Европа ваҡыты (Копенгаген)',
+        'Europe/Dublin' => 'Гринвич буйынса уртаса ваҡыт (Дублин)',
+        'Europe/Gibraltar' => 'Үҙәк Европа ваҡыты (Гибралтар)',
+        'Europe/Guernsey' => 'Гринвич буйынса уртаса ваҡыт (Гернси)',
+        'Europe/Helsinki' => 'Көнсығыш Европа ваҡыты (Хельсинки)',
+        'Europe/Isle_of_Man' => 'Гринвич буйынса уртаса ваҡыт (Мэн утрауы)',
+        'Europe/Istanbul' => 'Төркиә ваҡыты (Истанбул)',
+        'Europe/Jersey' => 'Гринвич буйынса уртаса ваҡыт (Джерси)',
+        'Europe/Kaliningrad' => 'Көнсығыш Европа ваҡыты (Калининград)',
+        'Europe/Kiev' => 'Көнсығыш Европа ваҡыты (Киев)',
+        'Europe/Kyiv' => 'Көнсығыш Европа ваҡыты (Киев)',
+        'Europe/Kirov' => 'Мәскәү ваҡыты (Киров)',
+        'Europe/Lisbon' => 'Көнбайыш Европа ваҡыты (Лиссабон)',
+        'Europe/Ljubljana' => 'Үҙәк Европа ваҡыты (Любляна)',
+        'Europe/London' => 'Гринвич буйынса уртаса ваҡыт (Лондон)',
+        'Europe/Luxembourg' => 'Үҙәк Европа ваҡыты (Люксембург)',
+        'Europe/Madrid' => 'Үҙәк Европа ваҡыты (Мадрид)',
+        'Europe/Malta' => 'Үҙәк Европа ваҡыты (Мальта)',
+        'Europe/Mariehamn' => 'Көнсығыш Европа ваҡыты (Мариехамн)',
+        'Europe/Minsk' => 'Мәскәү ваҡыты (Минск)',
+        'Europe/Monaco' => 'Үҙәк Европа ваҡыты (Монако)',
+        'Europe/Moscow' => 'Мәскәү ваҡыты',
+        'Europe/Oslo' => 'Үҙәк Европа ваҡыты (Осло)',
+        'Europe/Paris' => 'Үҙәк Европа ваҡыты (Париж)',
+        'Europe/Podgorica' => 'Үҙәк Европа ваҡыты (Подгорица)',
+        'Europe/Prague' => 'Үҙәк Европа ваҡыты (Прага)',
+        'Europe/Riga' => 'Көнсығыш Европа ваҡыты (Рига)',
+        'Europe/Rome' => 'Үҙәк Европа ваҡыты (Рим)',
+        'Europe/Samara' => 'Һамар ваҡыты',
+        'Europe/San_Marino' => 'Үҙәк Европа ваҡыты (Сан-Марино)',
+        'Europe/Sarajevo' => 'Үҙәк Европа ваҡыты (Сараево)',
+        'Europe/Saratov' => 'Һамар ваҡыты (Һарытау)',
+        'Europe/Simferopol' => 'Мәскәү ваҡыты (Симферополь)',
+        'Europe/Skopje' => 'Үҙәк Европа ваҡыты (Скопье)',
+        'Europe/Sofia' => 'Көнсығыш Европа ваҡыты (София)',
+        'Europe/Stockholm' => 'Үҙәк Европа ваҡыты (Стокгольм)',
+        'Europe/Tallinn' => 'Көнсығыш Европа ваҡыты (Таллин)',
+        'Europe/Tirane' => 'Үҙәк Европа ваҡыты (Тирана)',
+        'Europe/Ulyanovsk' => 'Һамар ваҡыты (Ульяновск)',
+        'Europe/Vaduz' => 'Үҙәк Европа ваҡыты (Вадуц)',
+        'Europe/Vatican' => 'Үҙәк Европа ваҡыты (Ватикан)',
+        'Europe/Vienna' => 'Үҙәк Европа ваҡыты (Вена)',
+        'Europe/Vilnius' => 'Көнсығыш Европа ваҡыты (Вильнюс)',
+        'Europe/Volgograd' => 'Мәскәү ваҡыты (Волгоград)',
+        'Europe/Warsaw' => 'Үҙәк Европа ваҡыты (Варшава)',
+        'Europe/Zagreb' => 'Үҙәк Европа ваҡыты (Загреб)',
+        'Europe/Zurich' => 'Үҙәк Европа ваҡыты (Цюрих)',
+        'Indian/Antananarivo' => 'Көнсығыш Африка ваҡыты (Антананариву)',
+        'Indian/Chagos' => 'Һинд океаны ваҡыты (Чагос)',
+        'Indian/Christmas' => 'Раштыуа утрауы ваҡыты',
+        'Indian/Cocos' => 'Кокос утрауҙары ваҡыты',
+        'Indian/Comoro' => 'Көнсығыш Африка ваҡыты (Комор утрауҙары)',
+        'Indian/Kerguelen' => 'Француз Көньяҡ һәм Антарктика ваҡыты (Кергулен утрауҙары)',
+        'Indian/Mahe' => 'Сейшел утрауҙары ваҡыты (Маэ)',
+        'Indian/Maldives' => 'Мальдив утрауҙары ваҡыты',
+        'Indian/Mauritius' => 'Маврикий ваҡыты',
+        'Indian/Mayotte' => 'Көнсығыш Африка ваҡыты (Майотта)',
+        'Indian/Reunion' => 'Реюньон ваҡыты',
+        'Pacific/Apia' => 'Самоа ваҡыты (Апиа)',
+        'Pacific/Auckland' => 'Яңы Зеландия ваҡыты (Окленд)',
+        'Pacific/Bougainville' => 'Папуа – Яңы Гвинея (Бугенвиль)',
+        'Pacific/Chatham' => 'Чатем ваҡыты (Чатем утрауҙары)',
+        'Pacific/Easter' => 'Пасха утрауы ваҡыты',
+        'Pacific/Efate' => 'Вануату ваҡыты (Эфате)',
+        'Pacific/Enderbury' => 'Феникс утрауҙары ваҡыты (Кантон утрауы)',
+        'Pacific/Kanton' => 'Феникс утрауҙары ваҡыты (Кантон утрауы)',
+        'Pacific/Fakaofo' => 'Токелау ваҡыты (Факаофо)',
+        'Pacific/Fiji' => 'Фиджи ваҡыты',
+        'Pacific/Funafuti' => 'Тувалу ваҡыты (Фунафути)',
+        'Pacific/Galapagos' => 'Галапагос ваҡыты (Галапагос утрауҙары)',
+        'Pacific/Gambier' => 'Гамбье ваҡыты (Гамбье утрауҙары)',
+        'Pacific/Guadalcanal' => 'Соломон утрауҙары ваҡыты (Гуадалканал)',
+        'Pacific/Guam' => 'Чаморро стандарт ваҡыты (Гуам)',
+        'Pacific/Honolulu' => 'Гавай-Алеут стандарт ваҡыты (Honolulu)',
+        'Pacific/Kiritimati' => 'Лайн утрауҙары ваҡыты (Киритимати)',
+        'Pacific/Kosrae' => 'Косрае ваҡыты',
+        'Pacific/Kwajalein' => 'Маршалл Утрауҙары ваҡыты (Кваджалейн)',
+        'Pacific/Majuro' => 'Маршалл Утрауҙары ваҡыты (Маджуро)',
+        'Pacific/Marquesas' => 'Маркиз утрауҙары ваҡыты',
+        'Pacific/Midway' => 'Америка Самоаһы ваҡыты (Мидуэй атоллы)',
+        'Pacific/Nauru' => 'Науру ваҡыты',
+        'Pacific/Niue' => 'Ниуэ ваҡыты',
+        'Pacific/Norfolk' => 'Норфолк ваҡыты (Норфолк утрауы)',
+        'Pacific/Noumea' => 'Яңы Каледония ваҡыты (Нумеа)',
+        'Pacific/Pago_Pago' => 'Америка Самоаһы ваҡыты (Паго-Паго)',
+        'Pacific/Palau' => 'Палау ваҡыты',
+        'Pacific/Pitcairn' => 'Питкэрн ваҡыты (Питкэрн утрауҙары)',
+        'Pacific/Ponape' => 'Понпеи ваҡыты',
+        'Pacific/Pohnpei' => 'Понпеи ваҡыты',
+        'Pacific/Port_Moresby' => 'Папуа – Яңы Гвинея (Порт-Морсби)',
+        'Pacific/Rarotonga' => 'Кук утрауҙары ваҡыты (Раротонга)',
+        'Pacific/Saipan' => 'Чаморро стандарт ваҡыты (Сайпан)',
+        'Pacific/Tahiti' => 'Таити ваҡыты',
+        'Pacific/Tarawa' => 'Гилберт утрауҙары ваҡыты (Тарава)',
+        'Pacific/Tongatapu' => 'Тонга ваҡыты (Тонгатапу)',
+        'Pacific/Truk' => 'Чуук ваҡыты (Трук)',
+        'Pacific/Chuuk' => 'Чуук ваҡыты (Трук)',
+        'Pacific/Wake' => 'Уэйк утрауы ваҡыты',
+        'Pacific/Wallis' => 'Уоллис һәм Футуна ваҡыты',
+    ],
+    'Meta' => [],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/be.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/be.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/be.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/be.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Усходнеафрыканскі час (Адыс-Абеба)',
         'Africa/Algiers' => 'Цэнтральнаеўрапейскі час (Алжыр)',
         'Africa/Asmera' => 'Усходнеафрыканскі час (Асмара)',
+        'Africa/Asmara' => 'Усходнеафрыканскі час (Асмара)',
         'Africa/Bamako' => 'Час па Грынвічы (Бамако)',
         'Africa/Bangui' => 'Заходнеафрыканскі час (Бангі)',
         'Africa/Banjul' => 'Час па Грынвічы (Банджул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Калумбійскі час (Багата)',
         'America/Boise' => 'Паўночнаамерыканскі горны час (Бойсэ)',
         'America/Buenos_Aires' => 'Аргенцінскі час (Буэнас-Айрэс)',
+        'America/Argentina/Buenos_Aires' => 'Аргенцінскі час (Буэнас-Айрэс)',
         'America/Cambridge_Bay' => 'Паўночнаамерыканскі горны час (Кембрыдж-Бей)',
         'America/Campo_Grande' => 'Амазонскі час (Кампу-Гранды)',
         'America/Cancun' => 'Паўночнаамерыканскі ўсходні час (Канкун)',
         'America/Caracas' => 'Венесуэльскі час (Каракас)',
         'America/Catamarca' => 'Аргенцінскі час (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргенцінскі час (Катамарка)',
         'America/Cayenne' => 'Час Французскай Гвіяны (Каена)',
         'America/Cayman' => 'Паўночнаамерыканскі ўсходні час (Кайманавы астравы)',
         'America/Chicago' => 'Паўночнаамерыканскі цэнтральны час (Чыкага)',
         'America/Chihuahua' => 'Паўночнаамерыканскі цэнтральны час (Чыўаўа)',
         'America/Ciudad_Juarez' => 'Паўночнаамерыканскі горны час (Сьюдад-Хуарэс)',
         'America/Coral_Harbour' => 'Паўночнаамерыканскі ўсходні час (Атыкокан)',
+        'America/Atikokan' => 'Паўночнаамерыканскі ўсходні час (Атыкокан)',
         'America/Cordoba' => 'Аргенцінскі час (Кордава)',
+        'America/Argentina/Cordoba' => 'Аргенцінскі час (Кордава)',
         'America/Costa_Rica' => 'Паўночнаамерыканскі цэнтральны час (Коста-Рыка)',
+        'America/Coyhaique' => 'Чылійскі час (Кайайке)',
         'America/Creston' => 'Паўночнаамерыканскі горны час (Крэстан)',
         'America/Cuiaba' => 'Амазонскі час (Куяба)',
         'America/Curacao' => 'Атлантычны час (Кюрасаа)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразільскі час (Фарталеза)',
         'America/Glace_Bay' => 'Атлантычны час (Глэйс-Бэй)',
         'America/Godthab' => 'Час: Грэнландыя (Нук)',
+        'America/Nuuk' => 'Час: Грэнландыя (Нук)',
         'America/Goose_Bay' => 'Атлантычны час (Гус-Бэй)',
         'America/Grand_Turk' => 'Паўночнаамерыканскі ўсходні час (Гранд-Цёрк)',
         'America/Grenada' => 'Атлантычны час (Грэнада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Паўночнаамерыканскі ўсходні час (Вінсенс, Індыяна)',
         'America/Indiana/Winamac' => 'Паўночнаамерыканскі ўсходні час (Уінамак, Індыяна)',
         'America/Indianapolis' => 'Паўночнаамерыканскі ўсходні час (Індыянапаліс)',
+        'America/Indiana/Indianapolis' => 'Паўночнаамерыканскі ўсходні час (Індыянапаліс)',
         'America/Inuvik' => 'Паўночнаамерыканскі горны час (Інувік)',
         'America/Iqaluit' => 'Паўночнаамерыканскі ўсходні час (Ікалуіт)',
         'America/Jamaica' => 'Паўночнаамерыканскі ўсходні час (Ямайка)',
         'America/Jujuy' => 'Аргенцінскі час (Жужуй)',
+        'America/Argentina/Jujuy' => 'Аргенцінскі час (Жужуй)',
         'America/Juneau' => 'Час Аляскі (Джуна)',
         'America/Kentucky/Monticello' => 'Паўночнаамерыканскі ўсходні час (Мантысела, Кентукі)',
         'America/Kralendijk' => 'Атлантычны час (Кралендэйк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перуанскі час (Ліма)',
         'America/Los_Angeles' => 'Ціхаакіянскі час (Лос-Анджэлес)',
         'America/Louisville' => 'Паўночнаамерыканскі ўсходні час (Луісвіл)',
+        'America/Kentucky/Louisville' => 'Паўночнаамерыканскі ўсходні час (Луісвіл)',
         'America/Lower_Princes' => 'Атлантычны час (Лоўэр Прынсіз Квотэр)',
         'America/Maceio' => 'Бразільскі час (Масеё)',
         'America/Managua' => 'Паўночнаамерыканскі цэнтральны час (Манагуа)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Паўночнаамерыканскі цэнтральны час (Матаморас)',
         'America/Mazatlan' => 'Мексіканскі ціхаакіянскі час (Масатлан)',
         'America/Mendoza' => 'Аргенцінскі час (Мендоса)',
+        'America/Argentina/Mendoza' => 'Аргенцінскі час (Мендоса)',
         'America/Menominee' => 'Паўночнаамерыканскі цэнтральны час (Меноміні)',
         'America/Merida' => 'Паўночнаамерыканскі цэнтральны час (Мерыда)',
         'America/Metlakatla' => 'Час Аляскі (Метлакатла)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Час Саудаўскай Аравіі (Бахрэйн)',
         'Asia/Baku' => 'Час Азербайджана (Баку)',
         'Asia/Bangkok' => 'Індакітайскі час (Бангкок)',
-        'Asia/Barnaul' => 'Час: Расія (Барнаул)',
+        'Asia/Barnaul' => 'Краснаярскі час (Барнаул)',
         'Asia/Beirut' => 'Усходнееўрапейскі час (Бейрут)',
         'Asia/Bishkek' => 'Час Кыргызстана (Бішкек)',
         'Asia/Brunei' => 'Час Брунея (Бруней)',
         'Asia/Calcutta' => 'Час Індыі (Калькута)',
+        'Asia/Kolkata' => 'Час Індыі (Калькута)',
         'Asia/Chita' => 'Якуцкі час (Чыта)',
         'Asia/Colombo' => 'Час Індыі (Каломба)',
         'Asia/Damascus' => 'Усходнееўрапейскі час (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Час: Расія (Камчатка)',
         'Asia/Karachi' => 'Пакістанскі час (Карачы)',
         'Asia/Katmandu' => 'Непальскі час (Катманду)',
+        'Asia/Kathmandu' => 'Непальскі час (Катманду)',
         'Asia/Khandyga' => 'Якуцкі час (Хандыга)',
         'Asia/Krasnoyarsk' => 'Краснаярскі час',
         'Asia/Kuala_Lumpur' => 'Час Малайзіі (Куала-Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Час Персідскага заліва (Маскат)',
         'Asia/Nicosia' => 'Усходнееўрапейскі час (Нікасія)',
         'Asia/Novokuznetsk' => 'Краснаярскі час (Новакузнецк)',
-        'Asia/Novosibirsk' => 'Новасібірскі час',
+        'Asia/Novosibirsk' => 'Краснаярскі час (Новасібірск)',
         'Asia/Omsk' => 'Омскі час',
         'Asia/Oral' => 'Казахстанскі час (Уральск)',
         'Asia/Phnom_Penh' => 'Індакітайскі час (Пнампень)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Казахстанскі час (Кустанай)',
         'Asia/Qyzylorda' => 'Казахстанскі час (Кзыл-Арда)',
         'Asia/Rangoon' => 'Час М’янмы (Рангун)',
+        'Asia/Yangon' => 'Час М’янмы (Рангун)',
         'Asia/Riyadh' => 'Час Саудаўскай Аравіі (Эр-Рыяд)',
         'Asia/Saigon' => 'Індакітайскі час (Хашымін)',
-        'Asia/Sakhalin' => 'Сахалінскі час',
+        'Asia/Ho_Chi_Minh' => 'Індакітайскі час (Хашымін)',
+        'Asia/Sakhalin' => 'Магаданскі час (Сахалін)',
         'Asia/Samarkand' => 'Час Узбекістана (Самарканд)',
         'Asia/Seoul' => 'Час Карэі (Сеул)',
         'Asia/Shanghai' => 'Час Кітая (Шанхай)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Іранскі час (Тэгеран)',
         'Asia/Thimphu' => 'Час Бутана (Тхімпху)',
         'Asia/Tokyo' => 'Час Японіі (Токіа)',
-        'Asia/Tomsk' => 'Час: Расія (Томск)',
+        'Asia/Tomsk' => 'Краснаярскі час (Томск)',
         'Asia/Ulaanbaatar' => 'Час Улан-Батара',
         'Asia/Urumqi' => 'Час: Кітай (Урумчы)',
         'Asia/Ust-Nera' => 'Уладзівастоцкі час (Усць-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Заходнееўрапейскі час (Канарскія астравы)',
         'Atlantic/Cape_Verde' => 'Час Каба-Вердэ',
         'Atlantic/Faeroe' => 'Заходнееўрапейскі час (Фарэрскія астравы)',
+        'Atlantic/Faroe' => 'Заходнееўрапейскі час (Фарэрскія астравы)',
         'Atlantic/Madeira' => 'Заходнееўрапейскі час (Мадэйра)',
         'Atlantic/Reykjavik' => 'Час па Грынвічы (Рэйк’явік)',
         'Atlantic/South_Georgia' => 'Час Паўднёвай Георгіі (Паўднёвая Георгія)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Універсальны каардынаваны час',
         'Europe/Amsterdam' => 'Цэнтральнаеўрапейскі час (Амстэрдам)',
         'Europe/Andorra' => 'Цэнтральнаеўрапейскі час (Андора)',
-        'Europe/Astrakhan' => 'Маскоўскі час (Астрахань)',
+        'Europe/Astrakhan' => 'Час: Расія (Астрахань)',
         'Europe/Athens' => 'Усходнееўрапейскі час (Афіны)',
         'Europe/Belgrade' => 'Цэнтральнаеўрапейскі час (Бялград)',
         'Europe/Berlin' => 'Цэнтральнаеўрапейскі час (Берлін)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Час па Грынвічы (Джэрсі)',
         'Europe/Kaliningrad' => 'Усходнееўрапейскі час (Калінінград)',
         'Europe/Kiev' => 'Усходнееўрапейскі час (Кіеў)',
-        'Europe/Kirov' => 'Час: Расія (Кіраў)',
+        'Europe/Kyiv' => 'Усходнееўрапейскі час (Кіеў)',
+        'Europe/Kirov' => 'Маскоўскі час (Кіраў)',
         'Europe/Lisbon' => 'Заходнееўрапейскі час (Лісабон)',
         'Europe/Ljubljana' => 'Цэнтральнаеўрапейскі час (Любляна)',
         'Europe/London' => 'Час па Грынвічы (Лондан)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Час: Расія (Самара)',
         'Europe/San_Marino' => 'Цэнтральнаеўрапейскі час (Сан-Марына)',
         'Europe/Sarajevo' => 'Цэнтральнаеўрапейскі час (Сараева)',
-        'Europe/Saratov' => 'Маскоўскі час (Саратаў)',
+        'Europe/Saratov' => 'Час: Расія (Саратаў)',
         'Europe/Simferopol' => 'Маскоўскі час (Сімферопаль)',
         'Europe/Skopje' => 'Цэнтральнаеўрапейскі час (Скоп’е)',
         'Europe/Sofia' => 'Усходнееўрапейскі час (Сафія)',
         'Europe/Stockholm' => 'Цэнтральнаеўрапейскі час (Стакгольм)',
         'Europe/Tallinn' => 'Усходнееўрапейскі час (Талін)',
         'Europe/Tirane' => 'Цэнтральнаеўрапейскі час (Тырана)',
-        'Europe/Ulyanovsk' => 'Маскоўскі час (Ульянаўск)',
+        'Europe/Ulyanovsk' => 'Час: Расія (Ульянаўск)',
         'Europe/Vaduz' => 'Цэнтральнаеўрапейскі час (Вадуц)',
         'Europe/Vatican' => 'Цэнтральнаеўрапейскі час (Ватыкан)',
         'Europe/Vienna' => 'Цэнтральнаеўрапейскі час (Вена)',
         'Europe/Vilnius' => 'Усходнееўрапейскі час (Вільнюс)',
-        'Europe/Volgograd' => 'Валгаградскі час',
+        'Europe/Volgograd' => 'Маскоўскі час (Валгаград)',
         'Europe/Warsaw' => 'Цэнтральнаеўрапейскі час (Варшава)',
         'Europe/Zagreb' => 'Цэнтральнаеўрапейскі час (Заграб)',
         'Europe/Zurich' => 'Цэнтральнаеўрапейскі час (Цюрых)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Час Чатэма',
         'Pacific/Easter' => 'Час вострава Вялікадня (Вялікадня востраў)',
         'Pacific/Efate' => 'Час Вануату (Эфатэ)',
-        'Pacific/Enderbury' => 'Час астравоў Фенікс (Эндэрберы)',
+        'Pacific/Enderbury' => 'Час астравоў Фенікс (Кантон)',
+        'Pacific/Kanton' => 'Час астравоў Фенікс (Кантон)',
         'Pacific/Fakaofo' => 'Час Такелау (Факаофа)',
         'Pacific/Fiji' => 'Час Фіджы',
         'Pacific/Funafuti' => 'Час Тувалу (Фунафуці)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Час астравоў Гамб’е (Астравы Гамб’е)',
         'Pacific/Guadalcanal' => 'Час Саламонавых астравоў (Гуадалканал)',
         'Pacific/Guam' => 'Час Чамора (Гуам)',
-        'Pacific/Honolulu' => 'Гавайска-Алеуцкі час (Ганалулу)',
+        'Pacific/Honolulu' => 'Гавайска-Алеуцкі стандартны час (Ганалулу)',
         'Pacific/Kiritimati' => 'Час астравоў Лайн (Кірыцімаці)',
         'Pacific/Kosrae' => 'Час астравоў Кусаіе',
         'Pacific/Kwajalein' => 'Час Маршалавых астравоў (Кваджалейн)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Час Палау',
         'Pacific/Pitcairn' => 'Час вострава Піткэрн',
         'Pacific/Ponape' => 'Час вострава Панпеі',
+        'Pacific/Pohnpei' => 'Час вострава Панпеі',
         'Pacific/Port_Moresby' => 'Час Папуа-Новай Гвінеі (Порт-Морсбі)',
         'Pacific/Rarotonga' => 'Час астравоў Кука (Раратонга)',
         'Pacific/Saipan' => 'Час Чамора (Сайпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Час астравоў Гілберта (Тарава)',
         'Pacific/Tongatapu' => 'Час Тонга (Тангатапу)',
         'Pacific/Truk' => 'Час Трука',
+        'Pacific/Chuuk' => 'Час Трука',
         'Pacific/Wake' => 'Час вострава Уэйк',
         'Pacific/Wallis' => 'Час астравоў Уоліс і Футуна',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bg.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Източноафриканско време (Адис Абеба)',
         'Africa/Algiers' => 'Централноевропейско време (Алжир)',
         'Africa/Asmera' => 'Източноафриканско време (Асмара)',
+        'Africa/Asmara' => 'Източноафриканско време (Асмара)',
         'Africa/Bamako' => 'Средно гринуичко време (Бамако)',
         'Africa/Bangui' => 'Западноафриканско време (Бангуи)',
         'Africa/Banjul' => 'Средно гринуичко време (Банджул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Колумбийско време (Богота)',
         'America/Boise' => 'Северноамериканско планинско време (Бойси)',
         'America/Buenos_Aires' => 'Аржентинско време (Буенос Айрес)',
+        'America/Argentina/Buenos_Aires' => 'Аржентинско време (Буенос Айрес)',
         'America/Cambridge_Bay' => 'Северноамериканско планинско време (Кеймбридж Бей)',
         'America/Campo_Grande' => 'Амазонско време (Кампо Гранде)',
         'America/Cancun' => 'Северноамериканско източно време (Канкун)',
         'America/Caracas' => 'Венецуелско време (Каракас)',
         'America/Catamarca' => 'Аржентинско време (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аржентинско време (Катамарка)',
         'America/Cayenne' => 'Френска Гвиана (Кайен)',
         'America/Cayman' => 'Северноамериканско източно време (Кайманови острови)',
         'America/Chicago' => 'Северноамериканско централно време (Чикаго)',
         'America/Chihuahua' => 'Северноамериканско централно време (Чиуауа)',
         'America/Ciudad_Juarez' => 'Северноамериканско планинско време (Сиудад Хуарес)',
         'America/Coral_Harbour' => 'Северноамериканско източно време (Атикокан)',
+        'America/Atikokan' => 'Северноамериканско източно време (Атикокан)',
         'America/Cordoba' => 'Аржентинско време (Кордоба)',
+        'America/Argentina/Cordoba' => 'Аржентинско време (Кордоба)',
         'America/Costa_Rica' => 'Северноамериканско централно време (Коста Рика)',
+        'America/Coyhaique' => 'Чилийско време (Койайке)',
         'America/Creston' => 'Северноамериканско планинско време (Крестън)',
         'America/Cuiaba' => 'Амазонско време (Чуяба)',
         'America/Curacao' => 'Северноамериканско атлантическо време (Кюрасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразилско време (Форталеза)',
         'America/Glace_Bay' => 'Северноамериканско атлантическо време (Глейс Бей)',
         'America/Godthab' => 'Гренландия (Нуук)',
+        'America/Nuuk' => 'Гренландия (Нуук)',
         'America/Goose_Bay' => 'Северноамериканско атлантическо време (Гус Бей)',
         'America/Grand_Turk' => 'Северноамериканско източно време (Гранд Търк)',
         'America/Grenada' => 'Северноамериканско атлантическо време (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Северноамериканско източно време (Винсенс)',
         'America/Indiana/Winamac' => 'Северноамериканско източно време (Уинамак)',
         'America/Indianapolis' => 'Северноамериканско източно време (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Северноамериканско източно време (Индианаполис)',
         'America/Inuvik' => 'Северноамериканско планинско време (Инувик)',
         'America/Iqaluit' => 'Северноамериканско източно време (Иквалуит)',
         'America/Jamaica' => 'Северноамериканско източно време (Ямайка)',
         'America/Jujuy' => 'Аржентинско време (Хухуй)',
+        'America/Argentina/Jujuy' => 'Аржентинско време (Хухуй)',
         'America/Juneau' => 'Аляска (Джуно)',
         'America/Kentucky/Monticello' => 'Северноамериканско източно време (Монтичело)',
         'America/Kralendijk' => 'Северноамериканско атлантическо време (Кралендейк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перуанско време (Лима)',
         'America/Los_Angeles' => 'Северноамериканско тихоокеанско време (Лос Анджелис)',
         'America/Louisville' => 'Северноамериканско източно време (Луисвил)',
+        'America/Kentucky/Louisville' => 'Северноамериканско източно време (Луисвил)',
         'America/Lower_Princes' => 'Северноамериканско атлантическо време (Лоуър принсес куотър)',
         'America/Maceio' => 'Бразилско време (Масейо)',
         'America/Managua' => 'Северноамериканско централно време (Манагуа)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Северноамериканско централно време (Матаморос)',
         'America/Mazatlan' => 'Мексиканско тихоокеанско време (Масатлан)',
         'America/Mendoza' => 'Аржентинско време (Мендоса)',
+        'America/Argentina/Mendoza' => 'Аржентинско време (Мендоса)',
         'America/Menominee' => 'Северноамериканско централно време (Меномини)',
         'America/Merida' => 'Северноамериканско централно време (Мерида)',
         'America/Metlakatla' => 'Аляска (Метлакатла)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Арабско време (Аден)',
         'Asia/Almaty' => 'Казахстанско време (Алмати)',
         'Asia/Amman' => 'Източноевропейско време (Аман)',
-        'Asia/Anadyr' => 'Анадир време',
+        'Asia/Anadyr' => 'Петропавловск-Камчатски време (Анадир)',
         'Asia/Aqtau' => 'Казахстанско време (Актау)',
         'Asia/Aqtobe' => 'Казахстанско време (Актобе)',
         'Asia/Ashgabat' => 'Туркменистанско време (Ашхабад)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Арабско време (Бахрейн)',
         'Asia/Baku' => 'Азербайджанско време (Баку)',
         'Asia/Bangkok' => 'Индокитайско време (Банкок)',
-        'Asia/Barnaul' => 'Русия (Барнаул)',
+        'Asia/Barnaul' => 'Красноярско време (Барнаул)',
         'Asia/Beirut' => 'Източноевропейско време (Бейрут)',
         'Asia/Bishkek' => 'Киргизстанско време (Бишкек)',
         'Asia/Brunei' => 'Бруней Даруссалам',
         'Asia/Calcutta' => 'Индийско време (Колката)',
+        'Asia/Kolkata' => 'Индийско време (Колката)',
         'Asia/Chita' => 'Якутско време (Чита)',
         'Asia/Colombo' => 'Индийско време (Коломбо)',
         'Asia/Damascus' => 'Източноевропейско време (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Петропавловск-Камчатски време (Камчатка)',
         'Asia/Karachi' => 'Пакистанско време (Карачи)',
         'Asia/Katmandu' => 'Непалско време (Катманду)',
+        'Asia/Kathmandu' => 'Непалско време (Катманду)',
         'Asia/Khandyga' => 'Якутско време (Хандига)',
         'Asia/Krasnoyarsk' => 'Красноярско време',
         'Asia/Kuala_Lumpur' => 'Малайзийско време (Куала Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Персийски залив (Мускат)',
         'Asia/Nicosia' => 'Източноевропейско време (Никозия)',
         'Asia/Novokuznetsk' => 'Красноярско време (Новокузнецк)',
-        'Asia/Novosibirsk' => 'Новосибирско време',
+        'Asia/Novosibirsk' => 'Красноярско време (Новосибирск)',
         'Asia/Omsk' => 'Омско време',
         'Asia/Oral' => 'Казахстанско време (Арал)',
         'Asia/Phnom_Penh' => 'Индокитайско време (Пном Пен)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Казахстанско време (Костанай)',
         'Asia/Qyzylorda' => 'Казахстанско време (Къзълорда)',
         'Asia/Rangoon' => 'Мианмарско време (Рангун)',
+        'Asia/Yangon' => 'Мианмарско време (Рангун)',
         'Asia/Riyadh' => 'Арабско време (Рияд)',
         'Asia/Saigon' => 'Индокитайско време (Хошимин)',
-        'Asia/Sakhalin' => 'Сахалинско време',
+        'Asia/Ho_Chi_Minh' => 'Индокитайско време (Хошимин)',
+        'Asia/Sakhalin' => 'Магаданско време (Сахалин)',
         'Asia/Samarkand' => 'Узбекистанско време (Самарканд)',
         'Asia/Seoul' => 'Корейско време (Сеул)',
         'Asia/Shanghai' => 'Китайско време (Шанхай)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Иранско време (Техеран)',
         'Asia/Thimphu' => 'Бутанско време (Тхимпху)',
         'Asia/Tokyo' => 'Японско време (Токио)',
-        'Asia/Tomsk' => 'Русия (Томск)',
+        'Asia/Tomsk' => 'Красноярско време (Томск)',
         'Asia/Ulaanbaatar' => 'Уланбаторско време (Улан Батор)',
         'Asia/Urumqi' => 'Китай (Урумчи)',
         'Asia/Ust-Nera' => 'Владивостокско време (Уст-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Западноевропейско време (Канарски острови)',
         'Atlantic/Cape_Verde' => 'Кабо Верде',
         'Atlantic/Faeroe' => 'Западноевропейско време (Фарьорски острови)',
+        'Atlantic/Faroe' => 'Западноевропейско време (Фарьорски острови)',
         'Atlantic/Madeira' => 'Западноевропейско време (Мадейра)',
         'Atlantic/Reykjavik' => 'Средно гринуичко време (Рейкявик)',
         'Atlantic/South_Georgia' => 'Южна Джорджия',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Координирано универсално време',
         'Europe/Amsterdam' => 'Централноевропейско време (Амстердам)',
         'Europe/Andorra' => 'Централноевропейско време (Андора)',
-        'Europe/Astrakhan' => 'Московско време (Астрахан)',
+        'Europe/Astrakhan' => 'Самара време (Астрахан)',
         'Europe/Athens' => 'Източноевропейско време (Атина)',
         'Europe/Belgrade' => 'Централноевропейско време (Белград)',
         'Europe/Berlin' => 'Централноевропейско време (Берлин)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Средно гринуичко време (Джърси)',
         'Europe/Kaliningrad' => 'Източноевропейско време (Калининград)',
         'Europe/Kiev' => 'Източноевропейско време (Киев)',
-        'Europe/Kirov' => 'Русия (Киров)',
+        'Europe/Kyiv' => 'Източноевропейско време (Киев)',
+        'Europe/Kirov' => 'Московско време (Киров)',
         'Europe/Lisbon' => 'Западноевропейско време (Лисабон)',
         'Europe/Ljubljana' => 'Централноевропейско време (Любляна)',
         'Europe/London' => 'Средно гринуичко време (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Самара време',
         'Europe/San_Marino' => 'Централноевропейско време (Сан Марино)',
         'Europe/Sarajevo' => 'Централноевропейско време (Сараево)',
-        'Europe/Saratov' => 'Московско време (Саратов)',
+        'Europe/Saratov' => 'Самара време (Саратов)',
         'Europe/Simferopol' => 'Московско време (Симферопол)',
         'Europe/Skopje' => 'Централноевропейско време (Скопие)',
         'Europe/Sofia' => 'Източноевропейско време (София)',
         'Europe/Stockholm' => 'Централноевропейско време (Стокхолм)',
         'Europe/Tallinn' => 'Източноевропейско време (Талин)',
         'Europe/Tirane' => 'Централноевропейско време (Тирана)',
-        'Europe/Ulyanovsk' => 'Московско време (Уляновск)',
+        'Europe/Ulyanovsk' => 'Самара време (Уляновск)',
         'Europe/Vaduz' => 'Централноевропейско време (Вадуц)',
         'Europe/Vatican' => 'Централноевропейско време (Ватикан)',
         'Europe/Vienna' => 'Централноевропейско време (Виена)',
         'Europe/Vilnius' => 'Източноевропейско време (Вилнюс)',
-        'Europe/Volgograd' => 'Волгоградско време',
+        'Europe/Volgograd' => 'Московско време (Волгоград)',
         'Europe/Warsaw' => 'Централноевропейско време (Варшава)',
         'Europe/Zagreb' => 'Централноевропейско време (Загреб)',
         'Europe/Zurich' => 'Централноевропейско време (Цюрих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Чатъмско време (Чатам)',
         'Pacific/Easter' => 'Великденски остров',
         'Pacific/Efate' => 'Вануату (Ефате)',
-        'Pacific/Enderbury' => 'Острови Феникс (Ендърбъри)',
+        'Pacific/Enderbury' => 'Острови Феникс (Кантон)',
+        'Pacific/Kanton' => 'Острови Феникс (Кантон)',
         'Pacific/Fakaofo' => 'Токелау (Факаофо)',
         'Pacific/Fiji' => 'Фиджийско време',
         'Pacific/Funafuti' => 'Тувалу (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Гамбие',
         'Pacific/Guadalcanal' => 'Соломонови острови (Гуадалканал)',
         'Pacific/Guam' => 'Чаморско време (Гуам)',
-        'Pacific/Honolulu' => 'Хавайско-алеутско време (Хонолулу)',
+        'Pacific/Honolulu' => 'Хавайско-алеутско стандартно време (Хонолулу)',
         'Pacific/Kiritimati' => 'Екваториални острови (Киритимати)',
         'Pacific/Kosrae' => 'Кошрай',
         'Pacific/Kwajalein' => 'Маршалови острови (Куаджалин)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Палау',
         'Pacific/Pitcairn' => 'Питкерн',
         'Pacific/Ponape' => 'Понапе (Понпей)',
+        'Pacific/Pohnpei' => 'Понапе (Понпей)',
         'Pacific/Port_Moresby' => 'Папуа Нова Гвинея (Порт Морсби)',
         'Pacific/Rarotonga' => 'Острови Кук (Раротонга)',
         'Pacific/Saipan' => 'Чаморско време (Сайпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Острови Гилбърт (Тарауа)',
         'Pacific/Tongatapu' => 'Тонга (Тонгатапу)',
         'Pacific/Truk' => 'Чуюк',
+        'Pacific/Chuuk' => 'Чуюк',
         'Pacific/Wake' => 'Остров Уейк',
         'Pacific/Wallis' => 'Уолис и Футуна',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bn.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'পূর্ব আফ্রিকা সময় (আদ্দিস আবাবা)',
         'Africa/Algiers' => 'মধ্য ইউরোপীয় সময় (আলজিয়ার্স)',
         'Africa/Asmera' => 'পূর্ব আফ্রিকা সময় (অ্যাসমারাহু)',
+        'Africa/Asmara' => 'পূর্ব আফ্রিকা সময় (অ্যাসমারাহু)',
         'Africa/Bamako' => 'গ্রীনিচ মিন টাইম (বাম্যাকো)',
         'Africa/Bangui' => 'পশ্চিম আফ্রিকা সময় (বাঙ্গুই)',
         'Africa/Banjul' => 'গ্রীনিচ মিন টাইম (বাঞ্জুল)',
@@ -75,22 +76,27 @@
         'America/Belize' => 'কেন্দ্রীয় সময় (বেলিজ)',
         'America/Blanc-Sablon' => 'অতলান্তিকের সময় (ব্লাঙ্ক-সাব্লোন)',
         'America/Boa_Vista' => 'আমাজন সময় (বোয়া ভিস্তা)',
-        'America/Bogota' => 'কোলোম্বিয়া সময় (বোগোটা)',
+        'America/Bogota' => 'কলম্বিয়া সময় (বোগোটা)',
         'America/Boise' => 'পার্বত্য অঞ্চলের সময় (বয়জি)',
         'America/Buenos_Aires' => 'আর্জেন্টিনা সময় (বুয়েনোস আয়েরেস)',
+        'America/Argentina/Buenos_Aires' => 'আর্জেন্টিনা সময় (বুয়েনোস আয়েরেস)',
         'America/Cambridge_Bay' => 'পার্বত্য অঞ্চলের সময় (কেমব্রিজ বে)',
         'America/Campo_Grande' => 'আমাজন সময় (কাম্পো গ্রান্ডে)',
         'America/Cancun' => 'পূর্বাঞ্চলীয় সময় (ক্যানকুন)',
         'America/Caracas' => 'ভেনেজুয়েলা সময় (ক্যারাকাস)',
         'America/Catamarca' => 'আর্জেন্টিনা সময় (ক্যাটামার্কা)',
+        'America/Argentina/Catamarca' => 'আর্জেন্টিনা সময় (ক্যাটামার্কা)',
         'America/Cayenne' => 'ফরাসি গায়ানা সময় (কাহেন)',
         'America/Cayman' => 'পূর্বাঞ্চলীয় সময় (কামেন)',
         'America/Chicago' => 'কেন্দ্রীয় সময় (শিকাগো)',
         'America/Chihuahua' => 'কেন্দ্রীয় সময় (চিহুয়াহুয়া)',
         'America/Ciudad_Juarez' => 'পার্বত্য অঞ্চলের সময় (সিউদাদ জুয়ারেজ)',
         'America/Coral_Harbour' => 'পূর্বাঞ্চলীয় সময় (আটিকোকান)',
+        'America/Atikokan' => 'পূর্বাঞ্চলীয় সময় (আটিকোকান)',
         'America/Cordoba' => 'আর্জেন্টিনা সময় (কর্ডোবা)',
+        'America/Argentina/Cordoba' => 'আর্জেন্টিনা সময় (কর্ডোবা)',
         'America/Costa_Rica' => 'কেন্দ্রীয় সময় (কোস্টারিকা)',
+        'America/Coyhaique' => 'চিলি সময় (কোয়আইকে)',
         'America/Creston' => 'পার্বত্য অঞ্চলের সময় (ক্রিস্টান)',
         'America/Cuiaba' => 'আমাজন সময় (কুইয়াবা)',
         'America/Curacao' => 'অতলান্তিকের সময় (কুরাসাও)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ব্রাসিলিয়া সময় (ফোর্টালেজা)',
         'America/Glace_Bay' => 'অতলান্তিকের সময় (গ্লাস বে)',
         'America/Godthab' => 'গ্রীনল্যান্ড সময় (নুক)',
+        'America/Nuuk' => 'গ্রীনল্যান্ড সময় (নুক)',
         'America/Goose_Bay' => 'অতলান্তিকের সময় (গুস বে)',
         'America/Grand_Turk' => 'পূর্বাঞ্চলীয় সময় (গ্র্যান্ড তুর্ক)',
         'America/Grenada' => 'অতলান্তিকের সময় (গ্রেনাডা)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'পূর্বাঞ্চলীয় সময় (ভিনসেন্নেস, ইন্ডিয়ানা)',
         'America/Indiana/Winamac' => 'পূর্বাঞ্চলীয় সময় (উইনাম্যাক, ইন্ডিয়ানা)',
         'America/Indianapolis' => 'পূর্বাঞ্চলীয় সময় (ইন্ডিয়ানাপোলিস)',
+        'America/Indiana/Indianapolis' => 'পূর্বাঞ্চলীয় সময় (ইন্ডিয়ানাপোলিস)',
         'America/Inuvik' => 'পার্বত্য অঞ্চলের সময় (ইনুভ্যাক)',
         'America/Iqaluit' => 'পূর্বাঞ্চলীয় সময় (ইকুয়ালুইট)',
         'America/Jamaica' => 'পূর্বাঞ্চলীয় সময় (জামাইকা)',
         'America/Jujuy' => 'আর্জেন্টিনা সময় (জুজুই)',
+        'America/Argentina/Jujuy' => 'আর্জেন্টিনা সময় (জুজুই)',
         'America/Juneau' => 'আলাস্কা সময় (জুনো)',
         'America/Kentucky/Monticello' => 'পূর্বাঞ্চলীয় সময় (মন্টিচেলো, কেন্টাকি)',
         'America/Kralendijk' => 'অতলান্তিকের সময় (ক্রেলেন্ডাজিক)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'পেরু সময় (লিমা)',
         'America/Los_Angeles' => 'প্রশান্ত মহাসাগরীয় অঞ্চলের সময় (লস অ্যাঞ্জেলেস)',
         'America/Louisville' => 'পূর্বাঞ্চলীয় সময় (লুইসভিল)',
+        'America/Kentucky/Louisville' => 'পূর্বাঞ্চলীয় সময় (লুইসভিল)',
         'America/Lower_Princes' => 'অতলান্তিকের সময় (লোয়ার প্রিন্সেস কোয়ার্টার)',
         'America/Maceio' => 'ব্রাসিলিয়া সময় (মাসেয়ো)',
         'America/Managua' => 'কেন্দ্রীয় সময় (মানাগুয়া)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'কেন্দ্রীয় সময় (মাতামোরস)',
         'America/Mazatlan' => 'মেক্সিকান প্রশান্ত মহাসাগরীয় সময় (মাজাটলান)',
         'America/Mendoza' => 'আর্জেন্টিনা সময় (মেন্ডোজা)',
+        'America/Argentina/Mendoza' => 'আর্জেন্টিনা সময় (মেন্ডোজা)',
         'America/Menominee' => 'কেন্দ্রীয় সময় (মেনোমিনি)',
         'America/Merida' => 'কেন্দ্রীয় সময় (মেরিডা)',
         'America/Metlakatla' => 'আলাস্কা সময় (মেটলাকাটলা)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'আরবি সময় (আহদেন)',
         'Asia/Almaty' => 'কাজাখাস্তান সময় (আলমাটি)',
         'Asia/Amman' => 'পূর্ব ইউরোপীয় সময় (আম্মান)',
-        'Asia/Anadyr' => 'অনদ্য্র্ সময় (অ্যানাডির)',
+        'Asia/Anadyr' => 'পিত্রেপ্যাভলস্ক- ক্যামচ্যাটস্কি সময় (অ্যানাডির)',
         'Asia/Aqtau' => 'কাজাখাস্তান সময় (আকটাউ)',
         'Asia/Aqtobe' => 'কাজাখাস্তান সময় (আকটোবে)',
         'Asia/Ashgabat' => 'তুর্কমেনিস্তান সময় (আশগাবাত)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'আরবি সময় (বাহারিন)',
         'Asia/Baku' => 'আজারবাইজান সময় (বাকু)',
         'Asia/Bangkok' => 'ইন্দোচীন সময় (ব্যাংকক)',
-        'Asia/Barnaul' => 'রাশিয়া সময় (বার্নৌল)',
+        'Asia/Barnaul' => 'ক্রাসনোয়ার্স্কি সময় (বার্নৌল)',
         'Asia/Beirut' => 'পূর্ব ইউরোপীয় সময় (বেইরুট)',
         'Asia/Bishkek' => 'কিরগিস্তান সময় (বিশকেক)',
         'Asia/Brunei' => 'ব্রুনেই দারুসসালাম সময়',
         'Asia/Calcutta' => 'ভারতীয় মানক সময় (কোলকাতা)',
+        'Asia/Kolkata' => 'ভারতীয় মানক সময় (কোলকাতা)',
         'Asia/Chita' => 'ইয়াকুটাস্ক সময় (চিতা)',
         'Asia/Colombo' => 'ভারতীয় মানক সময় (কলম্বো)',
         'Asia/Damascus' => 'পূর্ব ইউরোপীয় সময় (দামাস্কাস)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'পিত্রেপ্যাভলস্ক- ক্যামচ্যাটস্কি সময় (কামচাটকা)',
         'Asia/Karachi' => 'পাকিস্তান সময় (করাচি)',
         'Asia/Katmandu' => 'নেপাল সময় (কাঠমান্ডু)',
+        'Asia/Kathmandu' => 'নেপাল সময় (কাঠমান্ডু)',
         'Asia/Khandyga' => 'ইয়াকুটাস্ক সময় (খানডিয়াগা)',
         'Asia/Krasnoyarsk' => 'ক্রাসনোয়ার্স্কি সময় (ক্রাসনোইয়ার্স্ক)',
         'Asia/Kuala_Lumpur' => 'মালয়েশিয়া সময় (কুয়ালালামপুর)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'উপসাগরীয় মানক সময় (মাসকট)',
         'Asia/Nicosia' => 'পূর্ব ইউরোপীয় সময় (নিকোসিয়া)',
         'Asia/Novokuznetsk' => 'ক্রাসনোয়ার্স্কি সময় (নভকুয়েতস্নক)',
-        'Asia/Novosibirsk' => 'নোভোসিবির্স্ক সময় (নভোসিবির্স্ক)',
+        'Asia/Novosibirsk' => 'ক্রাসনোয়ার্স্কি সময় (নভোসিবির্স্ক)',
         'Asia/Omsk' => 'ওমস্ক সময় (ওম্স্ক)',
         'Asia/Oral' => 'কাজাখাস্তান সময় (ওরাল)',
         'Asia/Phnom_Penh' => 'ইন্দোচীন সময় (নম পেন)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'কাজাখাস্তান সময় (কোস্টানয়)',
         'Asia/Qyzylorda' => 'কাজাখাস্তান সময় (কিজিলর্ডা)',
         'Asia/Rangoon' => 'মায়ানমার সময় (রেঙ্গুন)',
+        'Asia/Yangon' => 'মায়ানমার সময় (রেঙ্গুন)',
         'Asia/Riyadh' => 'আরবি সময় (রিয়াধ)',
         'Asia/Saigon' => 'ইন্দোচীন সময় (হো চি মিন শহর)',
-        'Asia/Sakhalin' => 'সাখালিন সময়',
+        'Asia/Ho_Chi_Minh' => 'ইন্দোচীন সময় (হো চি মিন শহর)',
+        'Asia/Sakhalin' => 'ম্যাগাডান সময় (সাখালিন)',
         'Asia/Samarkand' => 'উজবেকিস্তান সময় (সমরখন্দ)',
         'Asia/Seoul' => 'কোরিয়ান সময় (সিওল)',
         'Asia/Shanghai' => 'চীন সময় (সাংহাই)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ইরান সময় (তেহেরান)',
         'Asia/Thimphu' => 'ভুটান সময় (থিম্ফু)',
         'Asia/Tokyo' => 'জাপান সময় (টোকিও)',
-        'Asia/Tomsk' => 'রাশিয়া সময় (তোমস্ক)',
+        'Asia/Tomsk' => 'ক্রাসনোয়ার্স্কি সময় (তোমস্ক)',
         'Asia/Ulaanbaatar' => 'উলান বাতোর সময় (উলানবাতার)',
         'Asia/Urumqi' => 'চীন সময় (উরুমকি)',
         'Asia/Ust-Nera' => 'ভ্লাদিভস্তক সময় (উস্ত- নেরা)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'পশ্চিম ইউরোপীয় সময় (কানেরি)',
         'Atlantic/Cape_Verde' => 'কেপ ভার্দ সময়',
         'Atlantic/Faeroe' => 'পশ্চিম ইউরোপীয় সময় (ফ্যারো)',
+        'Atlantic/Faroe' => 'পশ্চিম ইউরোপীয় সময় (ফ্যারো)',
         'Atlantic/Madeira' => 'পশ্চিম ইউরোপীয় সময় (মাডেইরা)',
         'Atlantic/Reykjavik' => 'গ্রীনিচ মিন টাইম (রিকজাভিক)',
         'Atlantic/South_Georgia' => 'দক্ষিণ জর্জিয়া সময়',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'স্থানাংকিত আন্তর্জাতিক সময়',
         'Europe/Amsterdam' => 'মধ্য ইউরোপীয় সময় (আমস্টারডাম)',
         'Europe/Andorra' => 'মধ্য ইউরোপীয় সময় (অ্যান্ডোরা)',
-        'Europe/Astrakhan' => 'মস্কো সময় (আসট্রাখান)',
+        'Europe/Astrakhan' => 'সামারা সময় (আসট্রাখান)',
         'Europe/Athens' => 'পূর্ব ইউরোপীয় সময় (এথেন্স)',
         'Europe/Belgrade' => 'মধ্য ইউরোপীয় সময় (বেলগ্রেড)',
         'Europe/Berlin' => 'মধ্য ইউরোপীয় সময় (বার্লিন)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'গ্রীনিচ মিন টাইম (জার্সি)',
         'Europe/Kaliningrad' => 'পূর্ব ইউরোপীয় সময় (কালিনিঙগ্রাড)',
         'Europe/Kiev' => 'পূর্ব ইউরোপীয় সময় (কিয়েভ)',
-        'Europe/Kirov' => 'রাশিয়া সময় (কিরোভ)',
+        'Europe/Kyiv' => 'পূর্ব ইউরোপীয় সময় (কিয়েভ)',
+        'Europe/Kirov' => 'মস্কো সময় (কিরোভ)',
         'Europe/Lisbon' => 'পশ্চিম ইউরোপীয় সময় (লিসবন)',
         'Europe/Ljubljana' => 'মধ্য ইউরোপীয় সময় (লুবলিয়ানা)',
         'Europe/London' => 'গ্রীনিচ মিন টাইম (লন্ডন)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'সামারা সময়',
         'Europe/San_Marino' => 'মধ্য ইউরোপীয় সময় (সান মেরিনো)',
         'Europe/Sarajevo' => 'মধ্য ইউরোপীয় সময় (সারাজিভো)',
-        'Europe/Saratov' => 'মস্কো সময় (সারাটোভ)',
+        'Europe/Saratov' => 'সামারা সময় (সারাটোভ)',
         'Europe/Simferopol' => 'মস্কো সময় (সিমফেরোপোল)',
         'Europe/Skopje' => 'মধ্য ইউরোপীয় সময় (স্কপয়ে)',
         'Europe/Sofia' => 'পূর্ব ইউরোপীয় সময় (সোফিয়া)',
         'Europe/Stockholm' => 'মধ্য ইউরোপীয় সময় (স্টকহোম)',
         'Europe/Tallinn' => 'পূর্ব ইউরোপীয় সময় (তাহলিন)',
         'Europe/Tirane' => 'মধ্য ইউরোপীয় সময় (তিরানা)',
-        'Europe/Ulyanovsk' => 'মস্কো সময় (উলিয়ানোভস্ক)',
+        'Europe/Ulyanovsk' => 'সামারা সময় (উলিয়ানোভস্ক)',
         'Europe/Vaduz' => 'মধ্য ইউরোপীয় সময় (ভাদুজ)',
         'Europe/Vatican' => 'মধ্য ইউরোপীয় সময় (ভাটিকান)',
         'Europe/Vienna' => 'মধ্য ইউরোপীয় সময় (ভিয়েনা)',
         'Europe/Vilnius' => 'পূর্ব ইউরোপীয় সময় (ভিলনিওস)',
-        'Europe/Volgograd' => 'ভলগোগ্রাড সময় (ভোল্গোগ্রাদ)',
+        'Europe/Volgograd' => 'মস্কো সময় (ভোল্গোগ্রাদ)',
         'Europe/Warsaw' => 'মধ্য ইউরোপীয় সময় (ওয়ারশ)',
         'Europe/Zagreb' => 'মধ্য ইউরোপীয় সময় (জাগ্রেব)',
         'Europe/Zurich' => 'মধ্য ইউরোপীয় সময় (জুরিখ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'চ্যাথাম সময় (চ্যাঠাম)',
         'Pacific/Easter' => 'ইস্টার দ্বীপ সময়',
         'Pacific/Efate' => 'ভানুয়াতু সময় (ইফাতে)',
-        'Pacific/Enderbury' => 'ফোনিক্স দ্বীপপুঞ্জ সময় (এন্ডারবারি)',
+        'Pacific/Enderbury' => 'ফোনিক্স দ্বীপপুঞ্জ সময় (ক্যান্টন)',
+        'Pacific/Kanton' => 'ফোনিক্স দ্বীপপুঞ্জ সময় (ক্যান্টন)',
         'Pacific/Fakaofo' => 'টোকেলাউ সময় (ফ্যাকাওফো)',
         'Pacific/Fiji' => 'ফিজি সময়',
         'Pacific/Funafuti' => 'টুভালু সময় (ফুনাফুটি)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'গ্যাম্বিয়ার সময় (গাম্বিয়ের)',
         'Pacific/Guadalcanal' => 'সলোমন দ্বীপপুঞ্জ সময় (গোয়াদালকুনাল)',
         'Pacific/Guam' => 'চামেরো মানক সময় (গুয়াম)',
-        'Pacific/Honolulu' => 'হাওয়াই-আলেউত সময় (হনোলুলু)',
+        'Pacific/Honolulu' => 'হাওয়াই-আলেউত মানক সময় (হনোলুলু)',
         'Pacific/Kiritimati' => 'লাইন দ্বীপপুঞ্জ সময় (কিরিতিমাতি)',
         'Pacific/Kosrae' => 'কোসরেই সময় (কোসরায়)',
         'Pacific/Kwajalein' => 'মার্শাল দ্বীপপুঞ্জ সময় (কোয়াজালেইন)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'পালাউ সময়',
         'Pacific/Pitcairn' => 'পিটকেয়ার্ন সময়',
         'Pacific/Ponape' => 'পোনাপে সময়',
+        'Pacific/Pohnpei' => 'পোনাপে সময়',
         'Pacific/Port_Moresby' => 'পাপুয়া নিউ গিনি সময় (পোর্ট মৌরজবি)',
         'Pacific/Rarotonga' => 'কুক দ্বীপপুঞ্জ সময় (রারউহতুঙ্গা)',
         'Pacific/Saipan' => 'চামেরো মানক সময় (সাইপান)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'গিলবার্ট দ্বীপপুঞ্জ সময় (টারাওয়া)',
         'Pacific/Tongatapu' => 'টোঙ্গা সময় (টোঙ্গাটাপু)',
         'Pacific/Truk' => 'চুক সময়',
+        'Pacific/Chuuk' => 'চুক সময়',
         'Pacific/Wake' => 'ওয়েক দ্বীপ সময়',
         'Pacific/Wallis' => 'ওয়ালিস এবং ফুটুনা সময় (ওলিস)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bo.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,10 +16,12 @@
         'America/Indiana/Vincennes' => 'ཨ་མེ་རི་ཀ། (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'ཨ་མེ་རི་ཀ། (Winamac, Indiana)',
         'America/Indianapolis' => 'ཨ་མེ་རི་ཀ། (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'ཨ་མེ་རི་ཀ། (Indianapolis)',
         'America/Juneau' => 'ཨ་མེ་རི་ཀ། (Juneau)',
         'America/Kentucky/Monticello' => 'ཨ་མེ་རི་ཀ། (Monticello, Kentucky)',
         'America/Los_Angeles' => 'ཨ་མེ་རི་ཀ། (Los Angeles)',
         'America/Louisville' => 'ཨ་མེ་རི་ཀ། (Louisville)',
+        'America/Kentucky/Louisville' => 'ཨ་མེ་རི་ཀ། (Louisville)',
         'America/Menominee' => 'ཨ་མེ་རི་ཀ། (Menominee)',
         'America/Metlakatla' => 'ཨ་མེ་རི་ཀ། (Metlakatla)',
         'America/New_York' => 'ཨ་མེ་རི་ཀ། (New York)',
@@ -34,10 +36,12 @@
         'Asia/Anadyr' => 'ཨུ་རུ་སུ་ (Anadyr)',
         'Asia/Barnaul' => 'ཨུ་རུ་སུ་ (Barnaul)',
         'Asia/Calcutta' => 'རྒྱ་གར་ (Kolkata)',
+        'Asia/Kolkata' => 'རྒྱ་གར་ (Kolkata)',
         'Asia/Chita' => 'ཨུ་རུ་སུ་ (Chita)',
         'Asia/Irkutsk' => 'ཨུ་རུ་སུ་ (Irkutsk)',
         'Asia/Kamchatka' => 'ཨུ་རུ་སུ་ (Kamchatka)',
         'Asia/Katmandu' => 'བལ་ཡུལ་ (Kathmandu)',
+        'Asia/Kathmandu' => 'བལ་ཡུལ་ (Kathmandu)',
         'Asia/Khandyga' => 'ཨུ་རུ་སུ་ (Khandyga)',
         'Asia/Krasnoyarsk' => 'ཨུ་རུ་སུ་ (Krasnoyarsk)',
         'Asia/Magadan' => 'ཨུ་རུ་སུ་ (Magadan)',
@@ -50,14 +54,14 @@
         'Asia/Srednekolymsk' => 'ཨུ་རུ་སུ་ (Srednekolymsk)',
         'Asia/Tokyo' => 'ཉི་ཧོང་ (Tokyo)',
         'Asia/Tomsk' => 'ཨུ་རུ་སུ་ (Tomsk)',
-        'Asia/Urumqi' => 'རྒྱ་ནག (Urumqi)',
+        'Asia/Urumqi' => 'རྒྱ་ནག (Ürümqi)',
         'Asia/Ust-Nera' => 'ཨུ་རུ་སུ་ (Ust-Nera)',
         'Asia/Vladivostok' => 'ཨུ་རུ་སུ་ (Vladivostok)',
         'Asia/Yakutsk' => 'ཨུ་རུ་སུ་ (Yakutsk)',
         'Asia/Yekaterinburg' => 'ཨུ་རུ་སུ་ (Yekaterinburg)',
         'Europe/Astrakhan' => 'ཨུ་རུ་སུ་ (Astrakhan)',
         'Europe/Berlin' => 'འཇར་མན་ (Berlin)',
-        'Europe/Busingen' => 'འཇར་མན་ (Busingen)',
+        'Europe/Busingen' => 'འཇར་མན་ (Büsingen)',
         'Europe/Kaliningrad' => 'ཨུ་རུ་སུ་ (Kaliningrad)',
         'Europe/Kirov' => 'ཨུ་རུ་སུ་ (Kirov)',
         'Europe/London' => 'དབྱིན་ཇི་ (London)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/br.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/br.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/br.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/br.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,28 +2,29 @@
 
 return [
     'Names' => [
-        'Africa/Abidjan' => 'Amzer keitat Greenwich (AKG) (Abidjan)',
-        'Africa/Accra' => 'Amzer keitat Greenwich (AKG) (Accra)',
+        'Africa/Abidjan' => 'amzer keitat Greenwich (AKG) (Abidjan)',
+        'Africa/Accra' => 'amzer keitat Greenwich (AKG) (Accra)',
         'Africa/Addis_Ababa' => 'eur Afrika ar Reter (Adis Abeba)',
         'Africa/Algiers' => 'eur Kreizeuropa (Aljer)',
         'Africa/Asmera' => 'eur Afrika ar Reter (Asmara)',
-        'Africa/Bamako' => 'Amzer keitat Greenwich (AKG) (Bamako)',
+        'Africa/Asmara' => 'eur Afrika ar Reter (Asmara)',
+        'Africa/Bamako' => 'amzer keitat Greenwich (AKG) (Bamako)',
         'Africa/Bangui' => 'eur Afrika ar Cʼhornôg (Bangui)',
-        'Africa/Banjul' => 'Amzer keitat Greenwich (AKG) (Banjul)',
-        'Africa/Bissau' => 'Amzer keitat Greenwich (AKG) (Bissau)',
+        'Africa/Banjul' => 'amzer keitat Greenwich (AKG) (Banjul)',
+        'Africa/Bissau' => 'amzer keitat Greenwich (AKG) (Bissau)',
         'Africa/Blantyre' => 'eur Kreizafrika (Blantyre)',
         'Africa/Brazzaville' => 'eur Afrika ar Cʼhornôg (Brazzaville)',
         'Africa/Bujumbura' => 'eur Kreizafrika (Bujumbura)',
         'Africa/Cairo' => 'eur Europa ar Reter (Kaero)',
         'Africa/Casablanca' => 'eur Europa ar Cʼhornôg (Dar el Beida (Casablanca))',
         'Africa/Ceuta' => 'eur Kreizeuropa (Ceuta)',
-        'Africa/Conakry' => 'Amzer keitat Greenwich (AKG) (Conakry)',
-        'Africa/Dakar' => 'Amzer keitat Greenwich (AKG) (Dakar)',
+        'Africa/Conakry' => 'amzer keitat Greenwich (AKG) (Conakry)',
+        'Africa/Dakar' => 'amzer keitat Greenwich (AKG) (Dakar)',
         'Africa/Dar_es_Salaam' => 'eur Afrika ar Reter (Dar es Salaam)',
         'Africa/Djibouti' => 'eur Afrika ar Reter (Djibouti)',
         'Africa/Douala' => 'eur Afrika ar Cʼhornôg (Douala)',
         'Africa/El_Aaiun' => 'eur Europa ar Cʼhornôg (LaʼYoun)',
-        'Africa/Freetown' => 'Amzer keitat Greenwich (AKG) (Freetown)',
+        'Africa/Freetown' => 'amzer keitat Greenwich (AKG) (Freetown)',
         'Africa/Gaborone' => 'eur Kreizafrika (Gaborone)',
         'Africa/Harare' => 'eur Kreizafrika (Harare)',
         'Africa/Johannesburg' => 'eur cʼhoañv Suafrika (Johannesburg)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'eur Afrika ar Cʼhornôg (Kinshasa)',
         'Africa/Lagos' => 'eur Afrika ar Cʼhornôg (Lagos)',
         'Africa/Libreville' => 'eur Afrika ar Cʼhornôg (Libreville)',
-        'Africa/Lome' => 'Amzer keitat Greenwich (AKG) (Lomé)',
+        'Africa/Lome' => 'amzer keitat Greenwich (AKG) (Lomé)',
         'Africa/Luanda' => 'eur Afrika ar Cʼhornôg (Luanda)',
         'Africa/Lubumbashi' => 'eur Kreizafrika (Lubumbashi)',
         'Africa/Lusaka' => 'eur Kreizafrika (Lusaka)',
@@ -43,14 +44,14 @@
         'Africa/Maseru' => 'eur cʼhoañv Suafrika (Maseru)',
         'Africa/Mbabane' => 'eur cʼhoañv Suafrika (Mbabane)',
         'Africa/Mogadishu' => 'eur Afrika ar Reter (Muqdisho)',
-        'Africa/Monrovia' => 'Amzer keitat Greenwich (AKG) (Monrovia)',
+        'Africa/Monrovia' => 'amzer keitat Greenwich (AKG) (Monrovia)',
         'Africa/Nairobi' => 'eur Afrika ar Reter (Nairobi)',
         'Africa/Ndjamena' => 'eur Afrika ar Cʼhornôg (NʼDjamena)',
         'Africa/Niamey' => 'eur Afrika ar Cʼhornôg (Niamey)',
-        'Africa/Nouakchott' => 'Amzer keitat Greenwich (AKG) (Nouakchott)',
-        'Africa/Ouagadougou' => 'Amzer keitat Greenwich (AKG) (Ouagadougou)',
+        'Africa/Nouakchott' => 'amzer keitat Greenwich (AKG) (Nouakchott)',
+        'Africa/Ouagadougou' => 'amzer keitat Greenwich (AKG) (Ouagadougou)',
         'Africa/Porto-Novo' => 'eur Afrika ar Cʼhornôg (Porto-Novo)',
-        'Africa/Sao_Tome' => 'Amzer keitat Greenwich (AKG) (São Tomé)',
+        'Africa/Sao_Tome' => 'amzer keitat Greenwich (AKG) (São Tomé)',
         'Africa/Tripoli' => 'eur Europa ar Reter (Tarabulus (Tripoli))',
         'Africa/Tunis' => 'eur Kreizeuropa (Tuniz)',
         'Africa/Windhoek' => 'eur Kreizafrika (Windhoek)',
@@ -58,13 +59,13 @@
         'America/Anchorage' => 'eur Alaska (Anchorage)',
         'America/Anguilla' => 'eur an Atlantel (Anguilla)',
         'America/Antigua' => 'eur an Atlantel (Antigua)',
-        'America/Araguaina' => 'eur Brasília (Araguaina)',
+        'America/Araguaina' => 'eur Brasília (Araguaína)',
         'America/Argentina/La_Rioja' => 'eur Arcʼhantina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'eur Arcʼhantina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'eur Arcʼhantina (Río Gallegos)',
         'America/Argentina/Salta' => 'eur Arcʼhantina (Salta)',
         'America/Argentina/San_Juan' => 'eur Arcʼhantina (San Juan)',
         'America/Argentina/San_Luis' => 'eur Arcʼhantina (San Luis)',
-        'America/Argentina/Tucuman' => 'eur Arcʼhantina (Tucuman)',
+        'America/Argentina/Tucuman' => 'eur Arcʼhantina (Tucumán)',
         'America/Argentina/Ushuaia' => 'eur Arcʼhantina (Ushuaia)',
         'America/Aruba' => 'eur an Atlantel (Aruba)',
         'America/Asuncion' => 'eur Paraguay (Asunción)',
@@ -78,35 +79,41 @@
         'America/Bogota' => 'eur Kolombia (Bogotá)',
         'America/Boise' => 'eur ar Menezioù (Boise)',
         'America/Buenos_Aires' => 'eur Arcʼhantina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'eur Arcʼhantina (Buenos Aires)',
         'America/Cambridge_Bay' => 'eur ar Menezioù (Cambridge Bay)',
         'America/Campo_Grande' => 'eur an Amazon (Campo Grande)',
         'America/Cancun' => 'eur ar Reter (Cancún)',
         'America/Caracas' => 'eur Venezuela (Caracas)',
         'America/Catamarca' => 'eur Arcʼhantina (Catamarca)',
+        'America/Argentina/Catamarca' => 'eur Arcʼhantina (Catamarca)',
         'America/Cayenne' => 'eur Gwiana cʼhall (Cayenne)',
         'America/Cayman' => 'eur ar Reter (Cayman)',
         'America/Chicago' => 'eur ar Cʼhreiz (Chicago)',
         'America/Chihuahua' => 'eur ar Cʼhreiz (Chihuahua)',
         'America/Ciudad_Juarez' => 'eur ar Menezioù (Ciudad Juárez)',
         'America/Coral_Harbour' => 'eur ar Reter (Atikokan)',
-        'America/Cordoba' => 'eur Arcʼhantina (Cordoba)',
+        'America/Atikokan' => 'eur ar Reter (Atikokan)',
+        'America/Cordoba' => 'eur Arcʼhantina (Córdoba)',
+        'America/Argentina/Cordoba' => 'eur Arcʼhantina (Córdoba)',
         'America/Costa_Rica' => 'eur ar Cʼhreiz (Costa Rica)',
+        'America/Coyhaique' => 'eur Chile (Coyhaique)',
         'America/Creston' => 'eur ar Menezioù (Creston)',
-        'America/Cuiaba' => 'eur an Amazon (Cuiaba)',
+        'America/Cuiaba' => 'eur an Amazon (Cuiabá)',
         'America/Curacao' => 'eur an Atlantel (Curaçao)',
-        'America/Danmarkshavn' => 'Amzer keitat Greenwich (AKG) (Danmarkshavn)',
-        'America/Dawson' => 'eur Kanada (Dawson)',
+        'America/Danmarkshavn' => 'amzer keitat Greenwich (AKG) (Danmarkshavn)',
+        'America/Dawson' => 'eur Yukon (Dawson)',
         'America/Dawson_Creek' => 'eur ar Menezioù (Dawson Creek)',
         'America/Denver' => 'eur ar Menezioù (Denver)',
         'America/Detroit' => 'eur ar Reter (Detroit)',
         'America/Dominica' => 'eur an Atlantel (Dominica)',
         'America/Edmonton' => 'eur ar Menezioù (Edmonton)',
-        'America/Eirunepe' => 'eur Brazil (Eirunepe)',
+        'America/Eirunepe' => 'eur Brazil (Eirunepé)',
         'America/El_Salvador' => 'eur ar Cʼhreiz (Salvador)',
         'America/Fort_Nelson' => 'eur ar Menezioù (Fort Nelson)',
         'America/Fortaleza' => 'eur Brasília (Fortaleza)',
         'America/Glace_Bay' => 'eur an Atlantel (Glace Bay)',
         'America/Godthab' => 'eur Greunland (Nuuk (Godthåb))',
+        'America/Nuuk' => 'eur Greunland (Nuuk (Godthåb))',
         'America/Goose_Bay' => 'eur an Atlantel (Goose Bay)',
         'America/Grand_Turk' => 'eur ar Reter (Grand Turk)',
         'America/Grenada' => 'eur an Atlantel (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'eur ar Reter (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'eur ar Reter (Winamac, Indiana)',
         'America/Indianapolis' => 'eur ar Reter (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'eur ar Reter (Indianapolis)',
         'America/Inuvik' => 'eur ar Menezioù (Inuvik)',
         'America/Iqaluit' => 'eur ar Reter (Iqaluit)',
         'America/Jamaica' => 'eur ar Reter (Jamaika)',
         'America/Jujuy' => 'eur Arcʼhantina (Jujuy)',
+        'America/Argentina/Jujuy' => 'eur Arcʼhantina (Jujuy)',
         'America/Juneau' => 'eur Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'eur ar Reter (Monticello, Kentucky)',
         'America/Kralendijk' => 'eur an Atlantel (Kralendijk)',
@@ -136,15 +145,17 @@
         'America/Lima' => 'eur Perou (Lima)',
         'America/Los_Angeles' => 'eur an Habask (Los Angeles)',
         'America/Louisville' => 'eur ar Reter (Louisville)',
+        'America/Kentucky/Louisville' => 'eur ar Reter (Louisville)',
         'America/Lower_Princes' => 'eur an Atlantel (Lower Prince’s Quarter)',
-        'America/Maceio' => 'eur Brasília (Maceio)',
+        'America/Maceio' => 'eur Brasília (Maceió)',
         'America/Managua' => 'eur ar Cʼhreiz (Managua)',
         'America/Manaus' => 'eur an Amazon (Manaus)',
         'America/Marigot' => 'eur an Atlantel (Marigot)',
         'America/Martinique' => 'eur an Atlantel (Martinik)',
         'America/Matamoros' => 'eur ar Cʼhreiz (Matamoros)',
-        'America/Mazatlan' => 'eur an Habask mecʼhikan (Mazatlan)',
+        'America/Mazatlan' => 'eur an Habask mecʼhikan (Mazatlán)',
         'America/Mendoza' => 'eur Arcʼhantina (Mendoza)',
+        'America/Argentina/Mendoza' => 'eur Arcʼhantina (Mendoza)',
         'America/Menominee' => 'eur ar Cʼhreiz (Menominee)',
         'America/Merida' => 'eur ar Cʼhreiz (Mérida)',
         'America/Metlakatla' => 'eur Alaska (Metlakatla)',
@@ -175,26 +186,26 @@
         'America/Regina' => 'eur ar Cʼhreiz (Regina)',
         'America/Resolute' => 'eur ar Cʼhreiz (Resolute)',
         'America/Rio_Branco' => 'eur Brazil (Rio Branco)',
-        'America/Santarem' => 'eur Brasília (Santarem)',
+        'America/Santarem' => 'eur Brasília (Santarém)',
         'America/Santiago' => 'eur Chile (Santiago)',
         'America/Santo_Domingo' => 'eur an Atlantel (Santo Domingo)',
         'America/Sao_Paulo' => 'eur Brasília (São Paulo)',
         'America/Scoresbysund' => 'eur Greunland (Ittoqqortoormiit)',
         'America/Sitka' => 'eur Alaska (Sitka)',
-        'America/St_Barthelemy' => 'eur an Atlantel (Saint Barthélemy)',
+        'America/St_Barthelemy' => 'eur an Atlantel (Sant-Bertele)',
         'America/St_Johns' => 'eur Newfoundland (Saint Johnʼs)',
         'America/St_Kitts' => 'eur an Atlantel (Saint Kitts)',
         'America/St_Lucia' => 'eur an Atlantel (Saint Lucia)',
         'America/St_Thomas' => 'eur an Atlantel (St. Thomas)',
-        'America/St_Vincent' => 'eur an Atlantel (Sant Visant)',
+        'America/St_Vincent' => 'eur an Atlantel (Sant-Visant)',
         'America/Swift_Current' => 'eur ar Cʼhreiz (Swift Current)',
         'America/Tegucigalpa' => 'eur ar Cʼhreiz (Tegucigalpa)',
-        'America/Thule' => 'eur an Atlantel (Qânâq)',
+        'America/Thule' => 'eur an Atlantel (Qaanaaq)',
         'America/Tijuana' => 'eur an Habask (Tijuana)',
         'America/Toronto' => 'eur ar Reter (Toronto)',
         'America/Tortola' => 'eur an Atlantel (Tortola)',
         'America/Vancouver' => 'eur an Habask (Vancouver)',
-        'America/Whitehorse' => 'eur Kanada (Whitehorse)',
+        'America/Whitehorse' => 'eur Yukon (Whitehorse)',
         'America/Winnipeg' => 'eur ar Cʼhreiz (Winnipeg)',
         'America/Yakutat' => 'eur Alaska (Yakutat)',
         'Antarctica/Casey' => 'eur Aostralia ar Cʼhornôg (Casey)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'eur Zeland-Nevez (McMurdo)',
         'Antarctica/Palmer' => 'eur Chile (Palmer)',
         'Antarctica/Rothera' => 'eur Rothera',
-        'Antarctica/Syowa' => 'eur Syowa',
-        'Antarctica/Troll' => 'Amzer keitat Greenwich (AKG) (Troll)',
+        'Antarctica/Syowa' => 'eur Syowa (Showa)',
+        'Antarctica/Troll' => 'amzer keitat Greenwich (AKG) (Troll)',
         'Antarctica/Vostok' => 'eur Vostok',
         'Arctic/Longyearbyen' => 'eur Kreizeuropa (Longyearbyen)',
         'Asia/Aden' => 'eur Arabia (Aden)',
         'Asia/Almaty' => 'eur Kazakstan (Almaty)',
         'Asia/Amman' => 'eur Europa ar Reter (Amman)',
-        'Asia/Anadyr' => 'eur Anadyrʼ',
+        'Asia/Anadyr' => 'eur Rusia (Anadyrʼ)',
         'Asia/Aqtau' => 'eur Kazakstan (Aqtau)',
         'Asia/Aqtobe' => 'eur Kazakstan (Aqtobe)',
         'Asia/Ashgabat' => 'eur Turkmenistan (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'eur Arabia (Bahrein)',
         'Asia/Baku' => 'eur Azerbaidjan (Bakou)',
         'Asia/Bangkok' => 'eur Indez-Sina (Bangkok)',
-        'Asia/Barnaul' => 'eur Rusia (Barnaul)',
+        'Asia/Barnaul' => 'eur Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'eur Europa ar Reter (Bayrut)',
         'Asia/Bishkek' => 'eur Kyrgyzstan (Bishkek)',
-        'Asia/Brunei' => 'eur Brunei Darussalam',
-        'Asia/Calcutta' => 'eur cʼhoañv India (Calcutta)',
+        'Asia/Brunei' => 'eur Brunei',
+        'Asia/Calcutta' => 'eur cʼhoañv India (Kolkata)',
+        'Asia/Kolkata' => 'eur cʼhoañv India (Kolkata)',
         'Asia/Chita' => 'eur Yakutsk (Tchita)',
         'Asia/Colombo' => 'eur cʼhoañv India (Kolamba)',
         'Asia/Damascus' => 'eur Europa ar Reter (Damask)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'eur Europa ar Reter (Gaza)',
         'Asia/Hebron' => 'eur Europa ar Reter (Hebron)',
         'Asia/Hong_Kong' => 'eur Hong Kong',
-        'Asia/Hovd' => 'eur Hovd',
+        'Asia/Hovd' => 'eur Khovd',
         'Asia/Irkutsk' => 'eur Irkutsk',
         'Asia/Jakarta' => 'eur Indonezia ar Cʼhornôg (Jakarta)',
         'Asia/Jayapura' => 'eur Indonezia ar Reter (Jayapura)',
@@ -246,43 +258,46 @@
         'Asia/Kamchatka' => 'eur Rusia (Kamtchatka)',
         'Asia/Karachi' => 'eur Pakistan (Karachi)',
         'Asia/Katmandu' => 'eur Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'eur Nepal (Kathmandu)',
         'Asia/Khandyga' => 'eur Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'eur Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'eur Malaysia (Kuala Lumpur)',
         'Asia/Kuching' => 'eur Malaysia (Kuching)',
         'Asia/Kuwait' => 'eur Arabia (Koweit)',
-        'Asia/Macau' => 'eur Sina (Macau)',
+        'Asia/Macau' => 'eur Sina (Makao)',
         'Asia/Magadan' => 'eur Magadan',
         'Asia/Makassar' => 'eur Kreiz Indonezia (Makassar)',
         'Asia/Manila' => 'eur ar Filipinez (Manila)',
         'Asia/Muscat' => 'eur cʼhoañv ar Pleg-mor Arab-ha-Pers (Masqat)',
         'Asia/Nicosia' => 'eur Europa ar Reter (Levkosía)',
         'Asia/Novokuznetsk' => 'eur Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'eur Novosibirsk',
+        'Asia/Novosibirsk' => 'eur Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'eur Omsk',
         'Asia/Oral' => 'eur Kazakstan (Oral)',
         'Asia/Phnom_Penh' => 'eur Indez-Sina (Phnum Pénh)',
         'Asia/Pontianak' => 'eur Indonezia ar Cʼhornôg (Pontianak)',
-        'Asia/Pyongyang' => 'eur Korea (Pʼyongyang)',
+        'Asia/Pyongyang' => 'eur Korea (Pyongyang)',
         'Asia/Qatar' => 'eur Arabia (Qatar)',
         'Asia/Qostanay' => 'eur Kazakstan (Qostanay)',
         'Asia/Qyzylorda' => 'eur Kazakstan (Qyzylorda)',
         'Asia/Rangoon' => 'eur Myanmar (Yangon)',
+        'Asia/Yangon' => 'eur Myanmar (Yangon)',
         'Asia/Riyadh' => 'eur Arabia (Riyadh)',
         'Asia/Saigon' => 'eur Indez-Sina (Kêr Hô-Chi-Minh)',
-        'Asia/Sakhalin' => 'eur Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'eur Indez-Sina (Kêr Hô-Chi-Minh)',
+        'Asia/Sakhalin' => 'eur Magadan (Sakhalin)',
         'Asia/Samarkand' => 'eur Ouzbekistan (Samarkand)',
         'Asia/Seoul' => 'eur Korea (Seoul)',
         'Asia/Shanghai' => 'eur Sina (Shanghai)',
         'Asia/Singapore' => 'eur cʼhoañv Singapour',
         'Asia/Srednekolymsk' => 'eur Magadan (Srednekolymsk)',
-        'Asia/Taipei' => 'eur Taipei',
+        'Asia/Taipei' => 'eur Taiwan (Taipei)',
         'Asia/Tashkent' => 'eur Ouzbekistan (Toshkent)',
         'Asia/Tbilisi' => 'eur Jorjia (Tbilisi)',
         'Asia/Tehran' => 'eur Iran (Tehran)',
         'Asia/Thimphu' => 'eur Bhoutan (Thimphu)',
         'Asia/Tokyo' => 'eur Japan (Tokyo)',
-        'Asia/Tomsk' => 'eur Rusia (Tomsk)',
+        'Asia/Tomsk' => 'eur Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'eur Ulaanbaatar',
         'Asia/Urumqi' => 'eur Sina (Ürümqi)',
         'Asia/Ust-Nera' => 'eur Vladivostok (Ust-Nera)',
@@ -294,12 +309,13 @@
         'Atlantic/Azores' => 'eur an Azorez',
         'Atlantic/Bermuda' => 'eur an Atlantel (Bermudez)',
         'Atlantic/Canary' => 'eur Europa ar Cʼhornôg (Kanariez)',
-        'Atlantic/Cape_Verde' => 'eur ar Cʼhab-Glas (Kab Glas)',
+        'Atlantic/Cape_Verde' => 'eur ar Cʼhab-Glas (Kab-Glas)',
         'Atlantic/Faeroe' => 'eur Europa ar Cʼhornôg (Faero)',
+        'Atlantic/Faroe' => 'eur Europa ar Cʼhornôg (Faero)',
         'Atlantic/Madeira' => 'eur Europa ar Cʼhornôg (Madeira)',
-        'Atlantic/Reykjavik' => 'Amzer keitat Greenwich (AKG) (Reykjavík)',
+        'Atlantic/Reykjavik' => 'amzer keitat Greenwich (AKG) (Reykjavík)',
         'Atlantic/South_Georgia' => 'eur Georgia ar Su',
-        'Atlantic/St_Helena' => 'Amzer keitat Greenwich (AKG) (Saint Helena)',
+        'Atlantic/St_Helena' => 'amzer keitat Greenwich (AKG) (Saint-Helena)',
         'Atlantic/Stanley' => 'eur Inizi Falkland (Stanley)',
         'Australia/Adelaide' => 'eur Kreizaostralia (Adelaide)',
         'Australia/Brisbane' => 'eur Aostralia ar Reter (Brisbane)',
@@ -312,11 +328,11 @@
         'Australia/Melbourne' => 'eur Aostralia ar Reter (Melbourne)',
         'Australia/Perth' => 'eur Aostralia ar Cʼhornôg (Perth)',
         'Australia/Sydney' => 'eur Aostralia ar Reter (Sydney)',
-        'Etc/GMT' => 'Amzer keitat Greenwich (AKG)',
+        'Etc/GMT' => 'amzer keitat Greenwich (AKG)',
         'Etc/UTC' => 'amzer hollvedel kenurzhiet',
         'Europe/Amsterdam' => 'eur Kreizeuropa (Amsterdam)',
         'Europe/Andorra' => 'eur Kreizeuropa (Andorra)',
-        'Europe/Astrakhan' => 'eur Moskov (Astrakhan)',
+        'Europe/Astrakhan' => 'eur Rusia (Astrakhan)',
         'Europe/Athens' => 'eur Europa ar Reter (Aten)',
         'Europe/Belgrade' => 'eur Kreizeuropa (Beograd)',
         'Europe/Berlin' => 'eur Kreizeuropa (Berlin)',
@@ -324,22 +340,23 @@
         'Europe/Brussels' => 'eur Kreizeuropa (Brusel)',
         'Europe/Bucharest' => 'eur Europa ar Reter (Bukarest)',
         'Europe/Budapest' => 'eur Kreizeuropa (Budapest)',
-        'Europe/Busingen' => 'eur Kreizeuropa (Busingen)',
-        'Europe/Chisinau' => 'eur Europa ar Reter (Chisinau)',
+        'Europe/Busingen' => 'eur Kreizeuropa (Büsingen)',
+        'Europe/Chisinau' => 'eur Europa ar Reter (Chișinău)',
         'Europe/Copenhagen' => 'eur Kreizeuropa (Kopenhagen)',
-        'Europe/Dublin' => 'Amzer keitat Greenwich (AKG) (Dulenn)',
+        'Europe/Dublin' => 'amzer keitat Greenwich (AKG) (Dulenn)',
         'Europe/Gibraltar' => 'eur Kreizeuropa (Jibraltar)',
-        'Europe/Guernsey' => 'Amzer keitat Greenwich (AKG) (Gwernenez)',
+        'Europe/Guernsey' => 'amzer keitat Greenwich (AKG) (Gwernenez)',
         'Europe/Helsinki' => 'eur Europa ar Reter (Helsinki)',
-        'Europe/Isle_of_Man' => 'Amzer keitat Greenwich (AKG) (Manav)',
+        'Europe/Isle_of_Man' => 'amzer keitat Greenwich (AKG) (Manav)',
         'Europe/Istanbul' => 'eur Turkia (Istanbul)',
-        'Europe/Jersey' => 'Amzer keitat Greenwich (AKG) (Jerzenez)',
+        'Europe/Jersey' => 'amzer keitat Greenwich (AKG) (Jerzenez)',
         'Europe/Kaliningrad' => 'eur Europa ar Reter (Kaliningrad)',
-        'Europe/Kiev' => 'eur Europa ar Reter (Kiev)',
-        'Europe/Kirov' => 'eur Rusia (Kirov)',
+        'Europe/Kiev' => 'eur Europa ar Reter (Kyyiv)',
+        'Europe/Kyiv' => 'eur Europa ar Reter (Kyyiv)',
+        'Europe/Kirov' => 'eur Moskov (Kirov)',
         'Europe/Lisbon' => 'eur Europa ar Cʼhornôg (Lisboa)',
         'Europe/Ljubljana' => 'eur Kreizeuropa (Ljubljana)',
-        'Europe/London' => 'Amzer keitat Greenwich (AKG) (Londrez)',
+        'Europe/London' => 'amzer keitat Greenwich (AKG) (Londrez)',
         'Europe/Luxembourg' => 'eur Kreizeuropa (Luksembourg)',
         'Europe/Madrid' => 'eur Kreizeuropa (Madrid)',
         'Europe/Malta' => 'eur Kreizeuropa (Malta)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'eur Rusia (Samara)',
         'Europe/San_Marino' => 'eur Kreizeuropa (San Marino)',
         'Europe/Sarajevo' => 'eur Kreizeuropa (Sarajevo)',
-        'Europe/Saratov' => 'eur Moskov (Saratov)',
+        'Europe/Saratov' => 'eur Rusia (Saratov)',
         'Europe/Simferopol' => 'eur Moskov (Simferopol)',
         'Europe/Skopje' => 'eur Kreizeuropa (Skopje)',
         'Europe/Sofia' => 'eur Europa ar Reter (Sofia)',
         'Europe/Stockholm' => 'eur Kreizeuropa (Stockholm)',
         'Europe/Tallinn' => 'eur Europa ar Reter (Tallinn)',
         'Europe/Tirane' => 'eur Kreizeuropa (Tiranë)',
-        'Europe/Ulyanovsk' => 'eur Moskov (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'eur Rusia (Ulyanovsk)',
         'Europe/Vaduz' => 'eur Kreizeuropa (Vaduz)',
         'Europe/Vatican' => 'eur Kreizeuropa (Vatikan)',
         'Europe/Vienna' => 'eur Kreizeuropa (Vienna)',
         'Europe/Vilnius' => 'eur Europa ar Reter (Vilnius)',
-        'Europe/Volgograd' => 'eur Volgograd',
+        'Europe/Volgograd' => 'eur Moskov (Volgograd)',
         'Europe/Warsaw' => 'eur Kreizeuropa (Varsovia)',
         'Europe/Zagreb' => 'eur Kreizeuropa (Zagreb)',
         'Europe/Zurich' => 'eur Kreizeuropa (Zurich)',
@@ -378,18 +395,19 @@
         'Indian/Cocos' => 'eur Inizi Kokoz',
         'Indian/Comoro' => 'eur Afrika ar Reter (Komorez)',
         'Indian/Kerguelen' => 'eur Douaroù aostral Frañs hag Antarktika (Kergelenn)',
-        'Indian/Mahe' => 'eur Sechelez (Mahe)',
+        'Indian/Mahe' => 'eur Sechelez (Mahé)',
         'Indian/Maldives' => 'eur ar Maldivez',
         'Indian/Mauritius' => 'eur Moris',
         'Indian/Mayotte' => 'eur Afrika ar Reter (Mayotte)',
         'Indian/Reunion' => 'eur ar Reünion',
-        'Pacific/Apia' => 'eur Apia',
+        'Pacific/Apia' => 'eur Samoa (Apia)',
         'Pacific/Auckland' => 'eur Zeland-Nevez (Auckland)',
-        'Pacific/Bougainville' => 'eur Papoua-Ginea-Nevez (Bougainville)',
+        'Pacific/Bougainville' => 'eur Papoua Ginea-Nevez (Bougainville)',
         'Pacific/Chatham' => 'eur Chatham',
         'Pacific/Easter' => 'eur Enez Pask',
         'Pacific/Efate' => 'eur Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'eur Inizi Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'eur Inizi Phoenix (Canton)',
+        'Pacific/Kanton' => 'eur Inizi Phoenix (Canton)',
         'Pacific/Fakaofo' => 'eur Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'eur Fidji',
         'Pacific/Funafuti' => 'eur Tuvalu (Funafuti)',
@@ -397,30 +415,34 @@
         'Pacific/Gambier' => 'eur Inizi Gambier',
         'Pacific/Guadalcanal' => 'eur Inizi Salomon (Guadalcanal)',
         'Pacific/Guam' => 'eur Chamorro (Guam)',
-        'Pacific/Honolulu' => 'eur Hawaii hag an Aleouted (Honolulu)',
+        'Pacific/Honolulu' => 'eur cʼhoañv Hawaii hag an Aleouted (Honolulu)',
         'Pacific/Kiritimati' => 'eur Line Islands (Kiritimati)',
         'Pacific/Kosrae' => 'eur Kosrae',
         'Pacific/Kwajalein' => 'eur Inizi Marshall (Kwajalein)',
         'Pacific/Majuro' => 'eur Inizi Marshall (Majuro)',
         'Pacific/Marquesas' => 'eur Inizi Markiz',
-        'Pacific/Midway' => 'eur Samoa (Midway)',
+        'Pacific/Midway' => 'eur Samoa Amerikan (Inizi Midway)',
         'Pacific/Nauru' => 'eur Nauru',
         'Pacific/Niue' => 'eur Niue',
         'Pacific/Norfolk' => 'eur Enez Norfolk',
-        'Pacific/Noumea' => 'eur Kaledonia Nevez (Noumea)',
-        'Pacific/Pago_Pago' => 'eur Samoa (Pago Pago)',
+        'Pacific/Noumea' => 'eur Kaledonia-Nevez (Noumea)',
+        'Pacific/Pago_Pago' => 'eur Samoa Amerikan (Pago Pago)',
         'Pacific/Palau' => 'eur Palau',
-        'Pacific/Pitcairn' => 'eur Pitcairn',
+        'Pacific/Pitcairn' => 'eur Pitcairn (Inizi Pitcairn)',
         'Pacific/Ponape' => 'eur Pohnpei',
-        'Pacific/Port_Moresby' => 'eur Papoua-Ginea-Nevez (Port Moresby)',
+        'Pacific/Pohnpei' => 'eur Pohnpei',
+        'Pacific/Port_Moresby' => 'eur Papoua Ginea-Nevez (Port Moresby)',
         'Pacific/Rarotonga' => 'eur Inizi Cook (Rarotonga)',
         'Pacific/Saipan' => 'eur Chamorro (Saipan)',
         'Pacific/Tahiti' => 'eur Tahiti',
         'Pacific/Tarawa' => 'eur Inizi Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'eur Tonga (Tongatapu)',
         'Pacific/Truk' => 'eur Chuuk',
-        'Pacific/Wake' => 'eur Wake Island',
-        'Pacific/Wallis' => 'eur Wallis ha Futuna',
+        'Pacific/Chuuk' => 'eur Chuuk',
+        'Pacific/Wake' => 'eur Enez Wake',
+        'Pacific/Wallis' => 'eur Wallis-ha-Futuna',
+    ],
+    'Meta' => [
+        'GmtFormat' => 'UTC%s',
     ],
-    'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bs_Cyrl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bs_Cyrl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bs_Cyrl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bs_Cyrl.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Источно-афричко вријеме (Адис Абеба)',
         'Africa/Algiers' => 'Средњеевропско вријеме (Алжир)',
         'Africa/Asmera' => 'Источно-афричко вријеме (Асмера)',
+        'Africa/Asmara' => 'Источно-афричко вријеме (Асмера)',
         'Africa/Bamako' => 'Гриничко средње вријеме (Бамако)',
         'Africa/Bangui' => 'Западно-афричко вријеме (Бангуи)',
         'Africa/Banjul' => 'Гриничко средње вријеме (Банжул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Колумбија вријеме (Богота)',
         'America/Boise' => 'Планинско вријеме (Бојзи)',
         'America/Buenos_Aires' => 'Аргентина вријеме (Буенос Аирес)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина вријеме (Буенос Аирес)',
         'America/Cambridge_Bay' => 'Планинско вријеме (Кембриџ Беј)',
         'America/Campo_Grande' => 'Амазон вријеме (Кампо Гранде)',
         'America/Cancun' => 'Источно вријеме (Канкун)',
         'America/Caracas' => 'Венецуела вријеме (Каракас)',
         'America/Catamarca' => 'Аргентина вријеме (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргентина вријеме (Катамарка)',
         'America/Cayenne' => 'Француска Гвајана вријеме (Кајен)',
         'America/Cayman' => 'Источно вријеме (Кајманска острва)',
         'America/Chicago' => 'Централно вријеме (Чикаго)',
         'America/Chihuahua' => 'Централно вријеме (Чивава)',
         'America/Ciudad_Juarez' => 'Планинско вријеме (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Источно вријеме (Атикокан)',
+        'America/Atikokan' => 'Источно вријеме (Атикокан)',
         'America/Cordoba' => 'Аргентина вријеме (Кордоба)',
+        'America/Argentina/Cordoba' => 'Аргентина вријеме (Кордоба)',
         'America/Costa_Rica' => 'Централно вријеме (Костарика)',
+        'America/Coyhaique' => 'Чиле вријеме (Coyhaique)',
         'America/Creston' => 'Планинско вријеме (Крестон)',
         'America/Cuiaba' => 'Амазон вријеме (Куиаба)',
         'America/Curacao' => 'Атланско вријеме (Курасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразилија вријеме (Форталеза)',
         'America/Glace_Bay' => 'Атланско вријеме (Глејс Беј)',
         'America/Godthab' => 'Време: Гренланд (Нук)',
+        'America/Nuuk' => 'Време: Гренланд (Нук)',
         'America/Goose_Bay' => 'Атланско вријеме (Гус Беј)',
         'America/Grand_Turk' => 'Источно вријеме (Гранд Турк)',
         'America/Grenada' => 'Атланско вријеме (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Источно вријеме (Винценес, Индијана)',
         'America/Indiana/Winamac' => 'Источно вријеме (Винамак, Индијана)',
         'America/Indianapolis' => 'Источно вријеме (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Источно вријеме (Индианаполис)',
         'America/Inuvik' => 'Планинско вријеме (Инувик)',
         'America/Iqaluit' => 'Источно вријеме (Иквалуит)',
         'America/Jamaica' => 'Источно вријеме (Јамајка)',
         'America/Jujuy' => 'Аргентина вријеме (Хухуј)',
+        'America/Argentina/Jujuy' => 'Аргентина вријеме (Хухуј)',
         'America/Juneau' => 'Аљаска вријеме (Жуно)',
         'America/Kentucky/Monticello' => 'Источно вријеме (Монтичело, Кентаки)',
         'America/Kralendijk' => 'Атланско вријеме (Крелендијк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перу вријеме (Лима)',
         'America/Los_Angeles' => 'Пацифичко вријеме (Лос Анђелес)',
         'America/Louisville' => 'Источно вријеме (Луисвил)',
+        'America/Kentucky/Louisville' => 'Источно вријеме (Луисвил)',
         'America/Lower_Princes' => 'Атланско вријеме (Лоуер Принс Квортер)',
         'America/Maceio' => 'Бразилија вријеме (Масејо)',
         'America/Managua' => 'Централно вријеме (Манагва)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Централно вријеме (Матаморос)',
         'America/Mazatlan' => 'Мексичко пацифичко вријеме (Мазатлан)',
         'America/Mendoza' => 'Аргентина вријеме (Мендоза)',
+        'America/Argentina/Mendoza' => 'Аргентина вријеме (Мендоза)',
         'America/Menominee' => 'Централно вријеме (Меномини)',
         'America/Merida' => 'Централно вријеме (Мерида)',
         'America/Metlakatla' => 'Аљаска вријеме (Метлакатла)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Арабијско вријеме (Аден)',
         'Asia/Almaty' => 'Kazakhstan Time (Алмати)',
         'Asia/Amman' => 'Источноевропско вријеме (Аман)',
-        'Asia/Anadyr' => 'Анадир време',
+        'Asia/Anadyr' => 'Петропавловско-камчатско време (Анадир)',
         'Asia/Aqtau' => 'Kazakhstan Time (Актау)',
         'Asia/Aqtobe' => 'Kazakhstan Time (Акутобе)',
         'Asia/Ashgabat' => 'Туркменистан вријеме (Ашхабад)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Арабијско вријеме (Бахреин)',
         'Asia/Baku' => 'Азербејџан вријеме (Баку)',
         'Asia/Bangkok' => 'Индокина вријеме (Банкок)',
-        'Asia/Barnaul' => 'Време: Русија (Барнаул)',
+        'Asia/Barnaul' => 'Краснојарско вријеме (Барнаул)',
         'Asia/Beirut' => 'Источноевропско вријеме (Бејрут)',
         'Asia/Bishkek' => 'Киргистан вријеме (Бишкек)',
         'Asia/Brunei' => 'Брунеј Дарусалам вријеме (Брунеји)',
         'Asia/Calcutta' => 'Индијско стандардно вријеме (Калкута)',
+        'Asia/Kolkata' => 'Индијско стандардно вријеме (Калкута)',
         'Asia/Chita' => 'Јакутск вријеме (Чита)',
         'Asia/Colombo' => 'Индијско стандардно вријеме (Коломбо)',
         'Asia/Damascus' => 'Источноевропско вријеме (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Петропавловско-камчатско време (Камчатка)',
         'Asia/Karachi' => 'Пакистан вријеме (Карачи)',
         'Asia/Katmandu' => 'Непал вријеме (Катманду)',
+        'Asia/Kathmandu' => 'Непал вријеме (Катманду)',
         'Asia/Khandyga' => 'Јакутск вријеме (Хандига)',
         'Asia/Krasnoyarsk' => 'Краснојарско вријеме',
         'Asia/Kuala_Lumpur' => 'Малезија вријеме (Куала Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Заливско вријеме (Мускат)',
         'Asia/Nicosia' => 'Источноевропско вријеме (Никозија)',
         'Asia/Novokuznetsk' => 'Краснојарско вријеме (Новокузњецк)',
-        'Asia/Novosibirsk' => 'Новосибирско вријеме',
+        'Asia/Novosibirsk' => 'Краснојарско вријеме (Новосибирск)',
         'Asia/Omsk' => 'Омск вријеме',
         'Asia/Oral' => 'Kazakhstan Time (Орал)',
         'Asia/Phnom_Penh' => 'Индокина вријеме (Пном Пен)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazakhstan Time (Костанај)',
         'Asia/Qyzylorda' => 'Kazakhstan Time (Кизилорда)',
         'Asia/Rangoon' => 'Мијанмар вријеме (Рангун)',
+        'Asia/Yangon' => 'Мијанмар вријеме (Рангун)',
         'Asia/Riyadh' => 'Арабијско вријеме (Ријад)',
         'Asia/Saigon' => 'Индокина вријеме (Хо Ши Мин)',
-        'Asia/Sakhalin' => 'Сахалин вријеме',
+        'Asia/Ho_Chi_Minh' => 'Индокина вријеме (Хо Ши Мин)',
+        'Asia/Sakhalin' => 'Магадан вријеме (Сахалин)',
         'Asia/Samarkand' => 'Узбекистан вријеме (Самарканд)',
         'Asia/Seoul' => 'Корејско вријеме (Сеул)',
         'Asia/Shanghai' => 'Кина вријеме (Шангај)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Иран вријеме (Техеран)',
         'Asia/Thimphu' => 'Бутан вријеме (Тимпу)',
         'Asia/Tokyo' => 'Јапанско вријеме (Токио)',
-        'Asia/Tomsk' => 'Време: Русија (Томск)',
+        'Asia/Tomsk' => 'Краснојарско вријеме (Томск)',
         'Asia/Ulaanbaatar' => 'Улан Батор вријеме',
         'Asia/Urumqi' => 'Време: Кина (Урумкви)',
         'Asia/Ust-Nera' => 'Владивосток вријеме (Уст-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Западноевропско вријеме (Канарска острва)',
         'Atlantic/Cape_Verde' => 'Зеленортско вријеме (Зеленортска Острва)',
         'Atlantic/Faeroe' => 'Западноевропско вријеме (Фарска острва)',
+        'Atlantic/Faroe' => 'Западноевропско вријеме (Фарска острва)',
         'Atlantic/Madeira' => 'Западноевропско вријеме (Мадеира)',
         'Atlantic/Reykjavik' => 'Гриничко средње вријеме (Рејкјавик)',
         'Atlantic/South_Georgia' => 'Јужна Џорџија вријеме',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Координисано универзално вријеме',
         'Europe/Amsterdam' => 'Средњеевропско вријеме (Амстердам)',
         'Europe/Andorra' => 'Средњеевропско вријеме (Андора)',
-        'Europe/Astrakhan' => 'Москва вријеме (Астрахан)',
+        'Europe/Astrakhan' => 'Самара време (Астрахан)',
         'Europe/Athens' => 'Источноевропско вријеме (Атина)',
         'Europe/Belgrade' => 'Средњеевропско вријеме (Београд)',
         'Europe/Berlin' => 'Средњеевропско вријеме (Берлин)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Гриничко средње вријеме (Гернзи)',
         'Europe/Helsinki' => 'Источноевропско вријеме (Хелсинки)',
         'Europe/Isle_of_Man' => 'Гриничко средње вријеме (Острво Мен)',
-        'Europe/Istanbul' => 'Време: Турска (Истанбул)',
+        'Europe/Istanbul' => 'Турска време (Истанбул)',
         'Europe/Jersey' => 'Гриничко средње вријеме (Џерси)',
         'Europe/Kaliningrad' => 'Источноевропско вријеме (Калињинград)',
         'Europe/Kiev' => 'Источноевропско вријеме (Кијев)',
-        'Europe/Kirov' => 'Време: Русија (Киров)',
+        'Europe/Kyiv' => 'Источноевропско вријеме (Кијев)',
+        'Europe/Kirov' => 'Москва вријеме (Киров)',
         'Europe/Lisbon' => 'Западноевропско вријеме (Лисабон)',
         'Europe/Ljubljana' => 'Средњеевропско вријеме (Љубљана)',
         'Europe/London' => 'Гриничко средње вријеме (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Самара време',
         'Europe/San_Marino' => 'Средњеевропско вријеме (Сан Марино)',
         'Europe/Sarajevo' => 'Средњеевропско вријеме (Сарајево)',
-        'Europe/Saratov' => 'Москва вријеме (Саратов)',
+        'Europe/Saratov' => 'Самара време (Саратов)',
         'Europe/Simferopol' => 'Москва вријеме (Симферопољ)',
         'Europe/Skopje' => 'Средњеевропско вријеме (Скопље)',
         'Europe/Sofia' => 'Источноевропско вријеме (Софија)',
         'Europe/Stockholm' => 'Средњеевропско вријеме (Стокхолм)',
         'Europe/Tallinn' => 'Источноевропско вријеме (Талин)',
         'Europe/Tirane' => 'Средњеевропско вријеме (Тирана)',
-        'Europe/Ulyanovsk' => 'Москва вријеме (Уљановск)',
+        'Europe/Ulyanovsk' => 'Самара време (Уљановск)',
         'Europe/Vaduz' => 'Средњеевропско вријеме (Вадуз)',
         'Europe/Vatican' => 'Средњеевропско вријеме (Ватикан)',
         'Europe/Vienna' => 'Средњеевропско вријеме (Беч)',
         'Europe/Vilnius' => 'Источноевропско вријеме (Виљнус)',
-        'Europe/Volgograd' => 'Волгоград вријеме',
+        'Europe/Volgograd' => 'Москва вријеме (Волгоград)',
         'Europe/Warsaw' => 'Средњеевропско вријеме (Варшава)',
         'Europe/Zagreb' => 'Средњеевропско вријеме (Загреб)',
         'Europe/Zurich' => 'Средњеевропско вријеме (Цирих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Чатам вријеме (Катхам)',
         'Pacific/Easter' => 'Ускршња острва вријеме (Ускршње острво)',
         'Pacific/Efate' => 'Вануату вријеме (Ефат)',
-        'Pacific/Enderbury' => 'Феникс острва вријеме (Ендербери)',
+        'Pacific/Enderbury' => 'Феникс острва вријеме (Canton)',
+        'Pacific/Kanton' => 'Феникс острва вријеме (Canton)',
         'Pacific/Fakaofo' => 'Токелау вријеме (Факаофо)',
         'Pacific/Fiji' => 'Фиџи вријеме',
         'Pacific/Funafuti' => 'Тувалу вријеме (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Гамбијер вријеме',
         'Pacific/Guadalcanal' => 'Соломонска Острва вријеме (Гвадалканал)',
         'Pacific/Guam' => 'Чаморо вријеме (Гуам)',
-        'Pacific/Honolulu' => 'Хавајско-алеутско вријеме (Хонолулу)',
+        'Pacific/Honolulu' => 'Хавајско-алеутско стандардно вријеме (Хонолулу)',
         'Pacific/Kiritimati' => 'Лине Острва вријеме (Киритимати)',
         'Pacific/Kosrae' => 'Кошре вријеме',
         'Pacific/Kwajalein' => 'Маршалска Острва вријеме (Кваџалејин)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Палау вријеме',
         'Pacific/Pitcairn' => 'Питкерн вријеме',
         'Pacific/Ponape' => 'Понапе вријеме',
+        'Pacific/Pohnpei' => 'Понапе вријеме',
         'Pacific/Port_Moresby' => 'Папуа Нова Гвинеја вријеме (Порт Морзби)',
         'Pacific/Rarotonga' => 'Кукова острва вријеме (Раротонга)',
         'Pacific/Saipan' => 'Чаморо вријеме (Сајпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Гилберт острва вријеме (Тарава)',
         'Pacific/Tongatapu' => 'Тонга вријеме (Тонгатапу)',
         'Pacific/Truk' => 'Трук вријеме',
+        'Pacific/Chuuk' => 'Трук вријеме',
         'Pacific/Wake' => 'Вејк острво вријеме',
         'Pacific/Wallis' => 'Валис и Футуна Острва вријеме',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/bs.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Istočnoafričko vrijeme (Addis Ababa)',
         'Africa/Algiers' => 'Centralnoevropsko vrijeme (Algiers)',
         'Africa/Asmera' => 'Istočnoafričko vrijeme (Asmara)',
+        'Africa/Asmara' => 'Istočnoafričko vrijeme (Asmara)',
         'Africa/Bamako' => 'Griničko vrijeme (Bamako)',
         'Africa/Bangui' => 'Zapadnoafričko vrijeme (Bangui)',
         'Africa/Banjul' => 'Griničko vrijeme (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Istočnoafričko vrijeme (Dar es Salaam)',
         'Africa/Djibouti' => 'Istočnoafričko vrijeme (Džibuti)',
         'Africa/Douala' => 'Zapadnoafričko vrijeme (Douala)',
-        'Africa/El_Aaiun' => 'Zapadnoevropsko vrijeme (El Aaiun)',
+        'Africa/El_Aaiun' => 'Zapadnoevropsko vrijeme (El Aaiún)',
         'Africa/Freetown' => 'Griničko vrijeme (Freetown)',
         'Africa/Gaborone' => 'Centralnoafričko vrijeme (Gaborone)',
         'Africa/Harare' => 'Centralnoafričko vrijeme (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Zapadnoafričko vrijeme (Kinshasa)',
         'Africa/Lagos' => 'Zapadnoafričko vrijeme (Lagos)',
         'Africa/Libreville' => 'Zapadnoafričko vrijeme (Libreville)',
-        'Africa/Lome' => 'Griničko vrijeme (Lome)',
+        'Africa/Lome' => 'Griničko vrijeme (Lomé)',
         'Africa/Luanda' => 'Zapadnoafričko vrijeme (Luanda)',
         'Africa/Lubumbashi' => 'Centralnoafričko vrijeme (Lubumbashi)',
         'Africa/Lusaka' => 'Centralnoafričko vrijeme (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Istočnoafričko vrijeme (Mogadiš)',
         'Africa/Monrovia' => 'Griničko vrijeme (Monrovia)',
         'Africa/Nairobi' => 'Istočnoafričko vrijeme (Nairobi)',
-        'Africa/Ndjamena' => 'Zapadnoafričko vrijeme (Ndjamena)',
+        'Africa/Ndjamena' => 'Zapadnoafričko vrijeme (N’Djamena)',
         'Africa/Niamey' => 'Zapadnoafričko vrijeme (Niamey)',
         'Africa/Nouakchott' => 'Griničko vrijeme (Nouakchott)',
         'Africa/Ouagadougou' => 'Griničko vrijeme (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Aljaskansko vrijeme (Anchorage)',
         'America/Anguilla' => 'Sjevernoameričko atlantsko vrijeme (Angvila)',
         'America/Antigua' => 'Sjevernoameričko atlantsko vrijeme (Antigva)',
-        'America/Araguaina' => 'Brazilijsko vrijeme (Araguaina)',
+        'America/Araguaina' => 'Brazilijsko vrijeme (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentinsko vrijeme (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentinsko vrijeme (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentinsko vrijeme (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentinsko vrijeme (Salta)',
         'America/Argentina/San_Juan' => 'Argentinsko vrijeme (San Juan)',
         'America/Argentina/San_Luis' => 'Argentinsko vrijeme (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentinsko vrijeme (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentinsko vrijeme (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentinsko vrijeme (Ushuaia)',
         'America/Aruba' => 'Sjevernoameričko atlantsko vrijeme (Aruba)',
         'America/Asuncion' => 'Paragvajsko vrijeme (Asunción)',
         'America/Bahia' => 'Brazilijsko vrijeme (Bahia)',
         'America/Bahia_Banderas' => 'Sjevernoameričko centralno vrijeme (Bahia Banderas)',
         'America/Barbados' => 'Sjevernoameričko atlantsko vrijeme (Barbados)',
-        'America/Belem' => 'Brazilijsko vrijeme (Belem)',
+        'America/Belem' => 'Brazilijsko vrijeme (Belém)',
         'America/Belize' => 'Sjevernoameričko centralno vrijeme (Belize)',
         'America/Blanc-Sablon' => 'Sjevernoameričko atlantsko vrijeme (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazonsko vrijeme (Boa Vista)',
-        'America/Bogota' => 'Kolumbijsko vrijeme (Bogota)',
+        'America/Bogota' => 'Kolumbijsko vrijeme (Bogotá)',
         'America/Boise' => 'Sjevernoameričko planinsko vrijeme (Boise)',
         'America/Buenos_Aires' => 'Argentinsko vrijeme (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentinsko vrijeme (Buenos Aires)',
         'America/Cambridge_Bay' => 'Sjevernoameričko planinsko vrijeme (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazonsko vrijeme (Campo Grande)',
         'America/Cancun' => 'Sjevernoameričko istočno vrijeme (Cancun)',
         'America/Caracas' => 'Venecuelansko vrijeme (Caracas)',
         'America/Catamarca' => 'Argentinsko vrijeme (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentinsko vrijeme (Catamarca)',
         'America/Cayenne' => 'Francuskogvajansko vrijeme (Cayenne)',
         'America/Cayman' => 'Sjevernoameričko istočno vrijeme (Kajman)',
         'America/Chicago' => 'Sjevernoameričko centralno vrijeme (Chicago)',
         'America/Chihuahua' => 'Sjevernoameričko centralno vrijeme (Chihuahua)',
         'America/Ciudad_Juarez' => 'Sjevernoameričko planinsko vrijeme (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Sjevernoameričko istočno vrijeme (Atikokan)',
-        'America/Cordoba' => 'Argentinsko vrijeme (Cordoba)',
+        'America/Atikokan' => 'Sjevernoameričko istočno vrijeme (Atikokan)',
+        'America/Cordoba' => 'Argentinsko vrijeme (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentinsko vrijeme (Córdoba)',
         'America/Costa_Rica' => 'Sjevernoameričko centralno vrijeme (Kostarika)',
+        'America/Coyhaique' => 'Čileansko vrijeme (Coyhaique)',
         'America/Creston' => 'Sjevernoameričko planinsko vrijeme (Creston)',
-        'America/Cuiaba' => 'Amazonsko vrijeme (Cuiaba)',
+        'America/Cuiaba' => 'Amazonsko vrijeme (Cuiabá)',
         'America/Curacao' => 'Sjevernoameričko atlantsko vrijeme (Kurasao)',
         'America/Danmarkshavn' => 'Griničko vrijeme (Danmarkshavn)',
         'America/Dawson' => 'Jukonsko vrijeme (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Sjevernoameričko istočno vrijeme (Detroit)',
         'America/Dominica' => 'Sjevernoameričko atlantsko vrijeme (Dominika)',
         'America/Edmonton' => 'Sjevernoameričko planinsko vrijeme (Edmonton)',
-        'America/Eirunepe' => 'Acre vreme (Eirunepe)',
+        'America/Eirunepe' => 'Acre vreme (Eirunepé)',
         'America/El_Salvador' => 'Sjevernoameričko centralno vrijeme (Salvador)',
         'America/Fort_Nelson' => 'Sjevernoameričko planinsko vrijeme (Fort Nelson)',
         'America/Fortaleza' => 'Brazilijsko vrijeme (Fortaleza)',
         'America/Glace_Bay' => 'Sjevernoameričko atlantsko vrijeme (Glace Bay)',
         'America/Godthab' => 'Grenland (Nuuk)',
+        'America/Nuuk' => 'Grenland (Nuuk)',
         'America/Goose_Bay' => 'Sjevernoameričko atlantsko vrijeme (Goose Bay)',
         'America/Grand_Turk' => 'Sjevernoameričko istočno vrijeme (Grand Turk)',
         'America/Grenada' => 'Sjevernoameričko atlantsko vrijeme (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Sjevernoameričko istočno vrijeme (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Sjevernoameričko istočno vrijeme (Winamac, Indiana)',
         'America/Indianapolis' => 'Sjevernoameričko istočno vrijeme (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Sjevernoameričko istočno vrijeme (Indianapolis)',
         'America/Inuvik' => 'Sjevernoameričko planinsko vrijeme (Inuvik)',
         'America/Iqaluit' => 'Sjevernoameričko istočno vrijeme (Iqaluit)',
         'America/Jamaica' => 'Sjevernoameričko istočno vrijeme (Jamajka)',
         'America/Jujuy' => 'Argentinsko vrijeme (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentinsko vrijeme (Jujuy)',
         'America/Juneau' => 'Aljaskansko vrijeme (Juneau)',
         'America/Kentucky/Monticello' => 'Sjevernoameričko istočno vrijeme (Monticello, Kentucky)',
         'America/Kralendijk' => 'Sjevernoameričko atlantsko vrijeme (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Peruansko vrijeme (Lima)',
         'America/Los_Angeles' => 'Sjevernoameričko pacifičko vrijeme (Los Angeles)',
         'America/Louisville' => 'Sjevernoameričko istočno vrijeme (Louisville)',
+        'America/Kentucky/Louisville' => 'Sjevernoameričko istočno vrijeme (Louisville)',
         'America/Lower_Princes' => 'Sjevernoameričko atlantsko vrijeme (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brazilijsko vrijeme (Maceio)',
+        'America/Maceio' => 'Brazilijsko vrijeme (Maceió)',
         'America/Managua' => 'Sjevernoameričko centralno vrijeme (Managua)',
         'America/Manaus' => 'Amazonsko vrijeme (Manaus)',
         'America/Marigot' => 'Sjevernoameričko atlantsko vrijeme (Marigot)',
         'America/Martinique' => 'Sjevernoameričko atlantsko vrijeme (Martinique)',
         'America/Matamoros' => 'Sjevernoameričko centralno vrijeme (Matamoros)',
-        'America/Mazatlan' => 'Meksičko pacifičko vrijeme (Mazatlan)',
+        'America/Mazatlan' => 'Meksičko pacifičko vrijeme (Mazatlán)',
         'America/Mendoza' => 'Argentinsko vrijeme (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentinsko vrijeme (Mendoza)',
         'America/Menominee' => 'Sjevernoameričko centralno vrijeme (Menominee)',
         'America/Merida' => 'Sjevernoameričko centralno vrijeme (Merida)',
         'America/Metlakatla' => 'Aljaskansko vrijeme (Metlakatla)',
-        'America/Mexico_City' => 'Sjevernoameričko centralno vrijeme (Mexico City)',
-        'America/Miquelon' => 'Vrijeme na Ostrvima Sveti Petar i Mikelon (Miquelon)',
+        'America/Mexico_City' => 'Sjevernoameričko centralno vrijeme (Ciudad de México)',
+        'America/Miquelon' => 'Vrijeme na Ostrvima Sveti Petar i Mikelon (Saint-Pierre)',
         'America/Moncton' => 'Sjevernoameričko atlantsko vrijeme (Moncton)',
         'America/Monterrey' => 'Sjevernoameričko centralno vrijeme (Monterrey)',
         'America/Montevideo' => 'Urugvajsko vrijeme (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Sjevernoameričko centralno vrijeme (Regina)',
         'America/Resolute' => 'Sjevernoameričko centralno vrijeme (Resolute)',
         'America/Rio_Branco' => 'Acre vreme (Rio Branco)',
-        'America/Santarem' => 'Brazilijsko vrijeme (Santarem)',
+        'America/Santarem' => 'Brazilijsko vrijeme (Santarém)',
         'America/Santiago' => 'Čileansko vrijeme (Santiago)',
         'America/Santo_Domingo' => 'Sjevernoameričko atlantsko vrijeme (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brazilijsko vrijeme (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brazilijsko vrijeme (São Paulo)',
         'America/Scoresbysund' => 'Grenland (Ittoqqortoormiit)',
         'America/Sitka' => 'Aljaskansko vrijeme (Sitka)',
         'America/St_Barthelemy' => 'Sjevernoameričko atlantsko vrijeme (St. Barthélemy)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Novozelandsko vrijeme (McMurdo)',
         'Antarctica/Palmer' => 'Čileansko vrijeme (Palmer)',
         'Antarctica/Rothera' => 'Vrijeme stanice Rothera',
-        'Antarctica/Syowa' => 'Vrijeme stanice Syowa',
+        'Antarctica/Syowa' => 'Vrijeme stanice Syowa (Showa)',
         'Antarctica/Troll' => 'Griničko vrijeme (Troll)',
         'Antarctica/Vostok' => 'Vrijeme stanice Vostok',
         'Arctic/Longyearbyen' => 'Centralnoevropsko vrijeme (Longyearbyen)',
         'Asia/Aden' => 'Arabijsko vrijeme (Aden)',
         'Asia/Almaty' => 'kazahstansko vrijeme (Almati)',
         'Asia/Amman' => 'Istočnoevropsko vrijeme (Aman)',
-        'Asia/Anadyr' => 'Anadir vreme',
+        'Asia/Anadyr' => 'Petropavlovsk-Kamčatski vreme (Anadir)',
         'Asia/Aqtau' => 'kazahstansko vrijeme (Aktau)',
         'Asia/Aqtobe' => 'kazahstansko vrijeme (Akutobe)',
         'Asia/Ashgabat' => 'turkmenistansko vrijeme (Ašhabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabijsko vrijeme (Bahrein)',
         'Asia/Baku' => 'Azerbejdžansko vrijeme (Baku)',
         'Asia/Bangkok' => 'Indokinesko vrijeme (Bangkok)',
-        'Asia/Barnaul' => 'Rusija (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarsko vrijeme (Barnaul)',
         'Asia/Beirut' => 'Istočnoevropsko vrijeme (Bejrut)',
         'Asia/Bishkek' => 'kirgistansko vrijeme (Biškek)',
         'Asia/Brunei' => 'Brunejsko vrijeme (Bruneji)',
         'Asia/Calcutta' => 'Indijsko standardno vrijeme (Kolkata)',
+        'Asia/Kolkata' => 'Indijsko standardno vrijeme (Kolkata)',
         'Asia/Chita' => 'Jakutsko vrijeme (Chita)',
         'Asia/Colombo' => 'Indijsko standardno vrijeme (Kolombo)',
         'Asia/Damascus' => 'Istočnoevropsko vrijeme (Damask)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Istočnoevropsko vrijeme (Gaza)',
         'Asia/Hebron' => 'Istočnoevropsko vrijeme (Hebron)',
         'Asia/Hong_Kong' => 'Hongkonško vrijeme (Hong Kong)',
-        'Asia/Hovd' => 'Hovdsko vrijeme',
+        'Asia/Hovd' => 'Hovdsko vrijeme (Khovd)',
         'Asia/Irkutsk' => 'Irkutsko vrijeme',
         'Asia/Jakarta' => 'Zapadnoindonezijsko vrijeme (Džakarta)',
         'Asia/Jayapura' => 'Istočnoindonezijsko vrijeme (Džajapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-Kamčatski vreme (Kamčatka)',
         'Asia/Karachi' => 'Pakistansko vrijeme (Karači)',
         'Asia/Katmandu' => 'Nepalsko vrijeme (Katmandu)',
+        'Asia/Kathmandu' => 'Nepalsko vrijeme (Katmandu)',
         'Asia/Khandyga' => 'Jakutsko vrijeme (Handiga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsko vrijeme',
         'Asia/Kuala_Lumpur' => 'Malezijsko vrijeme (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Zalivsko standardno vrijeme (Muskat)',
         'Asia/Nicosia' => 'Istočnoevropsko vrijeme (Nikozija)',
         'Asia/Novokuznetsk' => 'Krasnojarsko vrijeme (Novokuznjeck)',
-        'Asia/Novosibirsk' => 'Novosibirsko vrijeme',
+        'Asia/Novosibirsk' => 'Krasnojarsko vrijeme (Novosibirsk)',
         'Asia/Omsk' => 'Omsko vrijeme',
         'Asia/Oral' => 'kazahstansko vrijeme (Oral)',
         'Asia/Phnom_Penh' => 'Indokinesko vrijeme (Pnom Pen)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'kazahstansko vrijeme (Kostanaj)',
         'Asia/Qyzylorda' => 'kazahstansko vrijeme (Kizilorda)',
         'Asia/Rangoon' => 'Mijanmarsko vrijeme (Rangun)',
+        'Asia/Yangon' => 'Mijanmarsko vrijeme (Rangun)',
         'Asia/Riyadh' => 'Arabijsko vrijeme (Rijad)',
         'Asia/Saigon' => 'Indokinesko vrijeme (Ho Ši Min)',
-        'Asia/Sakhalin' => 'Sahalinsko vrijeme',
+        'Asia/Ho_Chi_Minh' => 'Indokinesko vrijeme (Ho Ši Min)',
+        'Asia/Sakhalin' => 'Magadansko vrijeme (Sahalin)',
         'Asia/Samarkand' => 'uzbekistansko vrijeme (Samarkand)',
         'Asia/Seoul' => 'Korejsko vrijeme (Seul)',
         'Asia/Shanghai' => 'Kinesko vrijeme (Šangaj)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Iransko vrijeme (Teheran)',
         'Asia/Thimphu' => 'Butansko vrijeme (Thimphu)',
         'Asia/Tokyo' => 'Japansko vrijeme (Tokio)',
-        'Asia/Tomsk' => 'Rusija (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarsko vrijeme (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulanbatorsko vrijeme (Ulan Bator)',
         'Asia/Urumqi' => 'Kina (Urumči)',
         'Asia/Ust-Nera' => 'Vladivostočko vrijeme (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Zapadnoevropsko vrijeme (Kanari)',
         'Atlantic/Cape_Verde' => 'Zelenortsko vrijeme (Kape Verde)',
         'Atlantic/Faeroe' => 'Zapadnoevropsko vrijeme (Faroe)',
+        'Atlantic/Faroe' => 'Zapadnoevropsko vrijeme (Faroe)',
         'Atlantic/Madeira' => 'Zapadnoevropsko vrijeme (Madeira)',
         'Atlantic/Reykjavik' => 'Griničko vrijeme (Rejkjavik)',
         'Atlantic/South_Georgia' => 'Južnodžordžijsko vrijeme (South Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Koordinirano svjetsko vrijeme',
         'Europe/Amsterdam' => 'Centralnoevropsko vrijeme (Amsterdam)',
         'Europe/Andorra' => 'Centralnoevropsko vrijeme (Andora)',
-        'Europe/Astrakhan' => 'Moskovsko vrijeme (Astrahan)',
+        'Europe/Astrakhan' => 'Samara vreme (Astrahan)',
         'Europe/Athens' => 'Istočnoevropsko vrijeme (Atina)',
         'Europe/Belgrade' => 'Centralnoevropsko vrijeme (Beograd)',
         'Europe/Berlin' => 'Centralnoevropsko vrijeme (Berlin)',
@@ -324,7 +340,7 @@
         'Europe/Brussels' => 'Centralnoevropsko vrijeme (Brisel)',
         'Europe/Bucharest' => 'Istočnoevropsko vrijeme (Bukurešt)',
         'Europe/Budapest' => 'Centralnoevropsko vrijeme (Budimpešta)',
-        'Europe/Busingen' => 'Centralnoevropsko vrijeme (Busingen)',
+        'Europe/Busingen' => 'Centralnoevropsko vrijeme (Büsingen)',
         'Europe/Chisinau' => 'Istočnoevropsko vrijeme (Kišinjev)',
         'Europe/Copenhagen' => 'Centralnoevropsko vrijeme (Kopenhagen)',
         'Europe/Dublin' => 'Griničko vrijeme (Dablin)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Griničko vrijeme (Gernzi)',
         'Europe/Helsinki' => 'Istočnoevropsko vrijeme (Helsinki)',
         'Europe/Isle_of_Man' => 'Griničko vrijeme (Ostrvo Man)',
-        'Europe/Istanbul' => 'Turska (Istanbul)',
+        'Europe/Istanbul' => 'Turska vreme (Istanbul)',
         'Europe/Jersey' => 'Griničko vrijeme (Jersey)',
         'Europe/Kaliningrad' => 'Istočnoevropsko vrijeme (Kalinjingrad)',
         'Europe/Kiev' => 'Istočnoevropsko vrijeme (Kijev)',
-        'Europe/Kirov' => 'Rusija (Kirov)',
+        'Europe/Kyiv' => 'Istočnoevropsko vrijeme (Kijev)',
+        'Europe/Kirov' => 'Moskovsko vrijeme (Kirov)',
         'Europe/Lisbon' => 'Zapadnoevropsko vrijeme (Lisabon)',
         'Europe/Ljubljana' => 'Centralnoevropsko vrijeme (Ljubljana)',
         'Europe/London' => 'Griničko vrijeme (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samara vreme',
         'Europe/San_Marino' => 'Centralnoevropsko vrijeme (San Marino)',
         'Europe/Sarajevo' => 'Centralnoevropsko vrijeme (Sarajevo)',
-        'Europe/Saratov' => 'Moskovsko vrijeme (Saratov)',
+        'Europe/Saratov' => 'Samara vreme (Saratov)',
         'Europe/Simferopol' => 'Moskovsko vrijeme (Simferopolj)',
         'Europe/Skopje' => 'Centralnoevropsko vrijeme (Skoplje)',
         'Europe/Sofia' => 'Istočnoevropsko vrijeme (Sofija)',
         'Europe/Stockholm' => 'Centralnoevropsko vrijeme (Štokholm)',
         'Europe/Tallinn' => 'Istočnoevropsko vrijeme (Talin)',
         'Europe/Tirane' => 'Centralnoevropsko vrijeme (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskovsko vrijeme (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Samara vreme (Ulyanovsk)',
         'Europe/Vaduz' => 'Centralnoevropsko vrijeme (Vaduz)',
         'Europe/Vatican' => 'Centralnoevropsko vrijeme (Vatikan)',
         'Europe/Vienna' => 'Centralnoevropsko vrijeme (Beč)',
         'Europe/Vilnius' => 'Istočnoevropsko vrijeme (Vilnius)',
-        'Europe/Volgograd' => 'Volgogradsko vrijeme',
+        'Europe/Volgograd' => 'Moskovsko vrijeme (Volgograd)',
         'Europe/Warsaw' => 'Centralnoevropsko vrijeme (Varšava)',
         'Europe/Zagreb' => 'Centralnoevropsko vrijeme (Zagreb)',
         'Europe/Zurich' => 'Centralnoevropsko vrijeme (Cirih)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Vrijeme na Indijskom okeanu (Chagos)',
         'Indian/Christmas' => 'Vrijeme na Božićnom Ostrvu (Božićno ostrvo)',
         'Indian/Cocos' => 'Vrijeme na Ostrvima Kokos (Kokosova ostrva)',
-        'Indian/Comoro' => 'Istočnoafričko vrijeme (Comoro)',
+        'Indian/Comoro' => 'Istočnoafričko vrijeme (Comores)',
         'Indian/Kerguelen' => 'Vrijeme na Francuskoj Južnoj Teritoriji i Antarktiku (Kerguelen)',
-        'Indian/Mahe' => 'Sejšelsko vrijeme (Mahe)',
+        'Indian/Mahe' => 'Sejšelsko vrijeme (Mahé)',
         'Indian/Maldives' => 'Maldivsko vrijeme (Maldivi)',
         'Indian/Mauritius' => 'Mauricijsko vrijeme (Mauricijus)',
         'Indian/Mayotte' => 'Istočnoafričko vrijeme (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Čatamsko vrijeme (Chatham)',
         'Pacific/Easter' => 'Uskršnjeostrvsko vrijeme (Easter)',
         'Pacific/Efate' => 'Vanuatuansko vrijeme (Efate)',
-        'Pacific/Enderbury' => 'Vrijeme na Ostrvima Finiks (Enderbury)',
+        'Pacific/Enderbury' => 'Vrijeme na Ostrvima Finiks (Canton)',
+        'Pacific/Kanton' => 'Vrijeme na Ostrvima Finiks (Canton)',
         'Pacific/Fakaofo' => 'Vrijeme na Ostrvu Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Vrijeme na Fidžiju',
         'Pacific/Funafuti' => 'Tuvaluansko vrijeme (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagosko vrijeme',
+        'Pacific/Galapagos' => 'Galapagosko vrijeme (Galápagos)',
         'Pacific/Gambier' => 'Gambijersko vrijeme (Gambier)',
         'Pacific/Guadalcanal' => 'Vrijeme na Solomonskim ostrvima (Guadalcanal)',
         'Pacific/Guam' => 'Čamorsko standardno vrijeme (Guam)',
-        'Pacific/Honolulu' => 'Havajsko-aleućansko vrijeme (Honolulu)',
+        'Pacific/Honolulu' => 'Havajsko-aleućansko standardno vrijeme (Honolulu)',
         'Pacific/Kiritimati' => 'Vrijeme na Ostrvima Lajn (Kiritimati)',
         'Pacific/Kosrae' => 'Vrijeme na Ostrvu Kosrae',
         'Pacific/Kwajalein' => 'Vrijeme na Maršalovim ostrvima (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Vrijeme na Ostrvu Nauru',
         'Pacific/Niue' => 'Vrijeme na Ostrvu Niue',
         'Pacific/Norfolk' => 'Norfolško vrijeme (Norfolk)',
-        'Pacific/Noumea' => 'Novokaledonijsko vrijeme (Noumea)',
+        'Pacific/Noumea' => 'Novokaledonijsko vrijeme (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoansko vrijeme (Pago Pago)',
         'Pacific/Palau' => 'Vrijeme na Ostrvu Palau',
         'Pacific/Pitcairn' => 'Vrijeme na Ostrvima Pitkern',
         'Pacific/Ponape' => 'Vrijeme na Ostrvu Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Vrijeme na Ostrvu Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Vrijeme na Papui Novoj Gvineji (Port Moresby)',
         'Pacific/Rarotonga' => 'Vrijeme na Kukovim ostrvima (Rarotonga)',
         'Pacific/Saipan' => 'Čamorsko standardno vrijeme (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Vrijeme na Gilbertovim ostrvima (Tarawa)',
         'Pacific/Tongatapu' => 'Tongansko vrijeme (Tongatapu)',
         'Pacific/Truk' => 'Čučko vrijeme (Chuuk)',
+        'Pacific/Chuuk' => 'Čučko vrijeme (Chuuk)',
         'Pacific/Wake' => 'Vrijeme na Ostrvu Vejk (Wake)',
         'Pacific/Wallis' => 'Vrijeme na Ostrvima Valis i Futuna',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ca.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ca.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ca.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ca.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Hora de l’Àfrica oriental (Addis Abeba)',
         'Africa/Algiers' => 'Hora d’Europa central (Alger)',
         'Africa/Asmera' => 'Hora de l’Àfrica oriental (Asmara)',
+        'Africa/Asmara' => 'Hora de l’Àfrica oriental (Asmara)',
         'Africa/Bamako' => 'Hora del meridià de Greenwich (Bamako)',
         'Africa/Bangui' => 'Hora de l’Àfrica occidental (Bangui)',
         'Africa/Banjul' => 'Hora del meridià de Greenwich (Banjul)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Hora de l’Àfrica occidental (Kinshasa)',
         'Africa/Lagos' => 'Hora de l’Àfrica occidental (Lagos)',
         'Africa/Libreville' => 'Hora de l’Àfrica occidental (Libreville)',
-        'Africa/Lome' => 'Hora del meridià de Greenwich (Lome)',
+        'Africa/Lome' => 'Hora del meridià de Greenwich (Lomé)',
         'Africa/Luanda' => 'Hora de l’Àfrica occidental (Luanda)',
         'Africa/Lubumbashi' => 'Hora de l’Àfrica central (Lubumbashi)',
         'Africa/Lusaka' => 'Hora de l’Àfrica central (Lusaka)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Hora de Colòmbia (Bogotà)',
         'America/Boise' => 'Hora de muntanya d’Amèrica del Nord (Boise)',
         'America/Buenos_Aires' => 'Hora de l’Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Hora de l’Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Hora de muntanya d’Amèrica del Nord (Cambridge Bay)',
         'America/Campo_Grande' => 'Hora de l’Amazones (Campo Grande)',
         'America/Cancun' => 'Hora oriental d’Amèrica del Nord (Cancun)',
         'America/Caracas' => 'Hora de Veneçuela (Caracas)',
         'America/Catamarca' => 'Hora de l’Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Hora de l’Argentina (Catamarca)',
         'America/Cayenne' => 'Hora de la Guaiana Francesa (Caiena)',
         'America/Cayman' => 'Hora oriental d’Amèrica del Nord (Caiman)',
         'America/Chicago' => 'Hora central d’Amèrica del Nord (Chicago)',
         'America/Chihuahua' => 'Hora central d’Amèrica del Nord (Chihuahua)',
         'America/Ciudad_Juarez' => 'Hora de muntanya d’Amèrica del Nord (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Hora oriental d’Amèrica del Nord (Atikokan)',
+        'America/Atikokan' => 'Hora oriental d’Amèrica del Nord (Atikokan)',
         'America/Cordoba' => 'Hora de l’Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Hora de l’Argentina (Córdoba)',
         'America/Costa_Rica' => 'Hora central d’Amèrica del Nord (Costa Rica)',
+        'America/Coyhaique' => 'Hora de Xile (Coyhaique)',
         'America/Creston' => 'Hora de muntanya d’Amèrica del Nord (Creston)',
         'America/Cuiaba' => 'Hora de l’Amazones (Cuiabá)',
         'America/Curacao' => 'Hora de l’Atlàntic (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Hora de Brasília (Fortaleza)',
         'America/Glace_Bay' => 'Hora de l’Atlàntic (Glace Bay)',
         'America/Godthab' => 'Hora de: Groenlàndia (Nuuk)',
+        'America/Nuuk' => 'Hora de: Groenlàndia (Nuuk)',
         'America/Goose_Bay' => 'Hora de l’Atlàntic (Goose Bay)',
         'America/Grand_Turk' => 'Hora oriental d’Amèrica del Nord (Grand Turk)',
         'America/Grenada' => 'Hora de l’Atlàntic (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Hora oriental d’Amèrica del Nord (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Hora oriental d’Amèrica del Nord (Winamac, Indiana)',
         'America/Indianapolis' => 'Hora oriental d’Amèrica del Nord (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Hora oriental d’Amèrica del Nord (Indianapolis)',
         'America/Inuvik' => 'Hora de muntanya d’Amèrica del Nord (Inuvik)',
         'America/Iqaluit' => 'Hora oriental d’Amèrica del Nord (Iqaluit)',
         'America/Jamaica' => 'Hora oriental d’Amèrica del Nord (Jamaica)',
         'America/Jujuy' => 'Hora de l’Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Hora de l’Argentina (Jujuy)',
         'America/Juneau' => 'Hora d’Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Hora oriental d’Amèrica del Nord (Monticello, Kentucky)',
         'America/Kralendijk' => 'Hora de l’Atlàntic (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Hora del Perú (Lima)',
         'America/Los_Angeles' => 'Hora del Pacífic d’Amèrica del Nord (Los Angeles)',
         'America/Louisville' => 'Hora oriental d’Amèrica del Nord (Louisville)',
+        'America/Kentucky/Louisville' => 'Hora oriental d’Amèrica del Nord (Louisville)',
         'America/Lower_Princes' => 'Hora de l’Atlàntic (Lower Prince’s Quarter)',
         'America/Maceio' => 'Hora de Brasília (Maceió)',
         'America/Managua' => 'Hora central d’Amèrica del Nord (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Hora central d’Amèrica del Nord (Matamoros)',
         'America/Mazatlan' => 'Hora del Pacífic de Mèxic (Mazatlán)',
         'America/Mendoza' => 'Hora de l’Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Hora de l’Argentina (Mendoza)',
         'America/Menominee' => 'Hora central d’Amèrica del Nord (Menominee)',
         'America/Merida' => 'Hora central d’Amèrica del Nord (Mérida)',
         'America/Metlakatla' => 'Hora d’Alaska (Metlakatla)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Hora de Nova Zelanda (McMurdo)',
         'Antarctica/Palmer' => 'Hora de Xile (Palmer)',
         'Antarctica/Rothera' => 'Hora de Rothera',
-        'Antarctica/Syowa' => 'Hora de Syowa',
+        'Antarctica/Syowa' => 'Hora de Syowa (Showa)',
         'Antarctica/Troll' => 'Hora del meridià de Greenwich (Troll)',
         'Antarctica/Vostok' => 'Hora de Vostok',
         'Arctic/Longyearbyen' => 'Hora d’Europa central (Longyearbyen)',
         'Asia/Aden' => 'Hora àrab (Aden)',
         'Asia/Almaty' => 'Hora del Kazakhstan (Almaty)',
         'Asia/Amman' => 'Hora d’Europa oriental (Amman)',
-        'Asia/Anadyr' => 'Hora d’Anàdir',
+        'Asia/Anadyr' => 'Hora de Kamtxatka (Anàdir)',
         'Asia/Aqtau' => 'Hora del Kazakhstan (Aqtaý)',
         'Asia/Aqtobe' => 'Hora del Kazakhstan (Aqtóbe)',
         'Asia/Ashgabat' => 'Hora del Turkmenistan (Aşgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Hora àrab (Bahrain)',
         'Asia/Baku' => 'Hora de l’Azerbaidjan (Bakú)',
         'Asia/Bangkok' => 'Hora de l’Indoxina (Bangkok)',
-        'Asia/Barnaul' => 'Hora de: Rússia (Barnaül)',
+        'Asia/Barnaul' => 'Hora de Krasnoiarsk (Barnaül)',
         'Asia/Beirut' => 'Hora d’Europa oriental (Beirut)',
         'Asia/Bishkek' => 'Hora del Kirguizstan (Bishkek)',
         'Asia/Brunei' => 'Hora de Brunei Darussalam',
         'Asia/Calcutta' => 'Hora de l’Índia (Calcuta)',
+        'Asia/Kolkata' => 'Hora de l’Índia (Calcuta)',
         'Asia/Chita' => 'Hora de Iakutsk (Txità)',
         'Asia/Colombo' => 'Hora de l’Índia (Colombo)',
         'Asia/Damascus' => 'Hora d’Europa oriental (Damasc)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Hora de Kamtxatka',
         'Asia/Karachi' => 'Hora del Pakistan (Karachi)',
         'Asia/Katmandu' => 'Hora del Nepal (Katmandú)',
+        'Asia/Kathmandu' => 'Hora del Nepal (Katmandú)',
         'Asia/Khandyga' => 'Hora de Iakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Hora de Krasnoiarsk',
         'Asia/Kuala_Lumpur' => 'Hora de Malàisia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Hora estàndard del Golf (Masqat)',
         'Asia/Nicosia' => 'Hora d’Europa oriental (Nicòsia)',
         'Asia/Novokuznetsk' => 'Hora de Krasnoiarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Hora de Novossibirsk',
+        'Asia/Novosibirsk' => 'Hora de Krasnoiarsk (Novossibirsk)',
         'Asia/Omsk' => 'Hora d’Omsk',
         'Asia/Oral' => 'Hora del Kazakhstan (Oral)',
         'Asia/Phnom_Penh' => 'Hora de l’Indoxina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Hora del Kazakhstan (Qostanai)',
         'Asia/Qyzylorda' => 'Hora del Kazakhstan (Qyzylorda)',
         'Asia/Rangoon' => 'Hora de Myanmar (Yangon)',
+        'Asia/Yangon' => 'Hora de Myanmar (Yangon)',
         'Asia/Riyadh' => 'Hora àrab (Riad)',
         'Asia/Saigon' => 'Hora de l’Indoxina (Hồ Chí Minh)',
-        'Asia/Sakhalin' => 'Hora de Sakhalín',
+        'Asia/Ho_Chi_Minh' => 'Hora de l’Indoxina (Hồ Chí Minh)',
+        'Asia/Sakhalin' => 'Hora de Magadan (Sakhalín)',
         'Asia/Samarkand' => 'Hora de l’Uzbekistan (Samarcanda)',
         'Asia/Seoul' => 'Hora de Corea (Seül)',
         'Asia/Shanghai' => 'Hora de la Xina (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Hora de l’Iran (Teheran)',
         'Asia/Thimphu' => 'Hora de Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Hora del Japó (Tòquio)',
-        'Asia/Tomsk' => 'Hora de: Rússia (Tomsk)',
+        'Asia/Tomsk' => 'Hora de Krasnoiarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Hora d’Ulaanbaatar',
         'Asia/Urumqi' => 'Hora de: Xina (Ürümchi)',
         'Asia/Ust-Nera' => 'Hora de Vladivostok (Ust’-Nera)',
@@ -296,11 +311,12 @@
         'Atlantic/Canary' => 'Hora d’Europa occidental (Illes Canàries)',
         'Atlantic/Cape_Verde' => 'Hora de Cap Verd',
         'Atlantic/Faeroe' => 'Hora d’Europa occidental (Illes Fèroe)',
+        'Atlantic/Faroe' => 'Hora d’Europa occidental (Illes Fèroe)',
         'Atlantic/Madeira' => 'Hora d’Europa occidental (Madeira)',
         'Atlantic/Reykjavik' => 'Hora del meridià de Greenwich (Reykjavík)',
         'Atlantic/South_Georgia' => 'Hora de Geòrgia del Sud',
         'Atlantic/St_Helena' => 'Hora del meridià de Greenwich (Saint Helena)',
-        'Atlantic/Stanley' => 'Hora de les illes Malvines (Stanley)',
+        'Atlantic/Stanley' => 'Hora de les illes Falkland (Stanley)',
         'Australia/Adelaide' => 'Hora d’Austràlia central (Adelaide)',
         'Australia/Brisbane' => 'Hora d’Austràlia oriental (Brisbane)',
         'Australia/Broken_Hill' => 'Hora d’Austràlia central (Broken Hill)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Temps universal coordinat',
         'Europe/Amsterdam' => 'Hora d’Europa central (Amsterdam)',
         'Europe/Andorra' => 'Hora d’Europa central (Andorra)',
-        'Europe/Astrakhan' => 'Hora de Moscou (Astracan)',
+        'Europe/Astrakhan' => 'Hora de Samara (Astracan)',
         'Europe/Athens' => 'Hora d’Europa oriental (Atenes)',
         'Europe/Belgrade' => 'Hora d’Europa central (Belgrad)',
         'Europe/Berlin' => 'Hora d’Europa central (Berlín)',
@@ -324,19 +340,20 @@
         'Europe/Brussels' => 'Hora d’Europa central (Brussel·les)',
         'Europe/Bucharest' => 'Hora d’Europa oriental (Bucarest)',
         'Europe/Budapest' => 'Hora d’Europa central (Budapest)',
-        'Europe/Busingen' => 'Hora d’Europa central (Busingen)',
-        'Europe/Chisinau' => 'Hora d’Europa oriental (Chisinau)',
+        'Europe/Busingen' => 'Hora d’Europa central (Büsingen)',
+        'Europe/Chisinau' => 'Hora d’Europa oriental (Chișinău)',
         'Europe/Copenhagen' => 'Hora d’Europa central (Copenhaguen)',
         'Europe/Dublin' => 'Hora del meridià de Greenwich (Dublín)',
         'Europe/Gibraltar' => 'Hora d’Europa central (Gibraltar)',
         'Europe/Guernsey' => 'Hora del meridià de Greenwich (Guernsey)',
         'Europe/Helsinki' => 'Hora d’Europa oriental (Hèlsinki)',
         'Europe/Isle_of_Man' => 'Hora del meridià de Greenwich (Man)',
-        'Europe/Istanbul' => 'Hora de: Turquia (Istanbul)',
+        'Europe/Istanbul' => 'Hora de Turquia (Istanbul)',
         'Europe/Jersey' => 'Hora del meridià de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Hora d’Europa oriental (Kaliningrad)',
         'Europe/Kiev' => 'Hora d’Europa oriental (Kíiv)',
-        'Europe/Kirov' => 'Hora de: Rússia (Kírov)',
+        'Europe/Kyiv' => 'Hora d’Europa oriental (Kíiv)',
+        'Europe/Kirov' => 'Hora de Moscou (Kírov)',
         'Europe/Lisbon' => 'Hora d’Europa occidental (Lisboa)',
         'Europe/Ljubljana' => 'Hora d’Europa central (Ljubljana)',
         'Europe/London' => 'Hora del meridià de Greenwich (Londres)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Hora de Samara',
         'Europe/San_Marino' => 'Hora d’Europa central (San Marino)',
         'Europe/Sarajevo' => 'Hora d’Europa central (Sarajevo)',
-        'Europe/Saratov' => 'Hora de Moscou (Saràtov)',
+        'Europe/Saratov' => 'Hora de Samara (Saràtov)',
         'Europe/Simferopol' => 'Hora de Moscou (Simferòpol)',
         'Europe/Skopje' => 'Hora d’Europa central (Skopje)',
         'Europe/Sofia' => 'Hora d’Europa oriental (Sofia)',
         'Europe/Stockholm' => 'Hora d’Europa central (Estocolm)',
         'Europe/Tallinn' => 'Hora d’Europa oriental (Tallinn)',
         'Europe/Tirane' => 'Hora d’Europa central (Tirana)',
-        'Europe/Ulyanovsk' => 'Hora de Moscou (Uliànovsk)',
+        'Europe/Ulyanovsk' => 'Hora de Samara (Uliànovsk)',
         'Europe/Vaduz' => 'Hora d’Europa central (Vaduz)',
         'Europe/Vatican' => 'Hora d’Europa central (Vaticà)',
         'Europe/Vienna' => 'Hora d’Europa central (Viena)',
         'Europe/Vilnius' => 'Hora d’Europa oriental (Vílnius)',
-        'Europe/Volgograd' => 'Hora de Volgograd',
+        'Europe/Volgograd' => 'Hora de Moscou (Volgograd)',
         'Europe/Warsaw' => 'Hora d’Europa central (Varsòvia)',
         'Europe/Zagreb' => 'Hora d’Europa central (Zagreb)',
         'Europe/Zurich' => 'Hora d’Europa central (Zúric)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Hora de l’oceà Índic (Chagos)',
         'Indian/Christmas' => 'Hora de Kiritimati (Christmas)',
         'Indian/Cocos' => 'Hora de les illes Cocos',
-        'Indian/Comoro' => 'Hora de l’Àfrica oriental (Comoro)',
+        'Indian/Comoro' => 'Hora de l’Àfrica oriental (Comores)',
         'Indian/Kerguelen' => 'Hora d’Antàrtida i de les Terres Australs Antàrtiques Franceses (Kerguelen)',
-        'Indian/Mahe' => 'Hora de les Seychelles (Mahe)',
+        'Indian/Mahe' => 'Hora de les Seychelles (Mahé)',
         'Indian/Maldives' => 'Hora de les Maldives',
         'Indian/Mauritius' => 'Hora de Maurici',
         'Indian/Mayotte' => 'Hora de l’Àfrica oriental (Mayotte)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Hora de Chatham',
         'Pacific/Easter' => 'Hora de l’illa de Pasqua',
         'Pacific/Efate' => 'Hora de Vanatu (Efate)',
-        'Pacific/Enderbury' => 'Hora de les illes Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Hora de les illes Phoenix (Canton)',
+        'Pacific/Kanton' => 'Hora de les illes Phoenix (Canton)',
         'Pacific/Fakaofo' => 'Hora de Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Hora de Fiji',
         'Pacific/Funafuti' => 'Hora de Tuvalu (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Hora de Gambier',
         'Pacific/Guadalcanal' => 'Hora de les illes Salomó (Guadalcanal)',
         'Pacific/Guam' => 'Hora estàndard de Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Hora de Hawaii-Aleutianes (Honolulu)',
+        'Pacific/Honolulu' => 'Hora estàndard de Hawaii-Aleutianes (Honolulu)',
         'Pacific/Kiritimati' => 'Hora de les illes Line (Kiritimati)',
         'Pacific/Kosrae' => 'Hora de Kosrae',
         'Pacific/Kwajalein' => 'Hora de les illes Marshall (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Hora de Palau',
         'Pacific/Pitcairn' => 'Hora de Pitcairn',
         'Pacific/Ponape' => 'Hora de Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Hora de Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Hora de Papua Nova Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'Hora de les illes Cook (Rarotonga)',
         'Pacific/Saipan' => 'Hora estàndard de Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Hora de les illes Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Hora de Tonga (Tongatapu)',
         'Pacific/Truk' => 'Hora de Chuuk',
+        'Pacific/Chuuk' => 'Hora de Chuuk',
         'Pacific/Wake' => 'Hora de les illes Wake',
-        'Pacific/Wallis' => 'Hora de Wallis i Futuna',
+        'Pacific/Wallis' => 'Hora de Wallis i Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ce.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ce.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ce.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ce.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Малхбален Африка (Аддис-Абеба)',
         'Africa/Algiers' => 'Юккъера Европа (Алжир)',
         'Africa/Asmera' => 'Малхбален Африка (Асмера)',
+        'Africa/Asmara' => 'Малхбален Африка (Асмера)',
         'Africa/Bamako' => 'Гринвичица юкъара хан (Бамако)',
         'Africa/Bangui' => 'Малхбузен Африка (Банги)',
         'Africa/Banjul' => 'Гринвичица юкъара хан (Банжул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Колумби (Богота)',
         'America/Boise' => 'Лаьмнийн хан (АЦШ) (Бойсе)',
         'America/Buenos_Aires' => 'Аргентина (Буэнос-Айрес)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина (Буэнос-Айрес)',
         'America/Cambridge_Bay' => 'Лаьмнийн хан (АЦШ) (Кеймбридж-Бей)',
         'America/Campo_Grande' => 'Амазонка (Кампу-Гранди)',
         'America/Cancun' => 'Малхбален Америка (Канкун)',
         'America/Caracas' => 'Венесуэла (Каракас)',
         'America/Catamarca' => 'Аргентина (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргентина (Катамарка)',
         'America/Cayenne' => 'Французийн Гвиана (Кайенна)',
         'America/Cayman' => 'Малхбален Америка (Кайман)',
         'America/Chicago' => 'Юккъера Америка (Чикаго)',
         'America/Chihuahua' => 'Юккъера Америка (Чиуауа)',
         'America/Ciudad_Juarez' => 'Лаьмнийн хан (АЦШ) (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Малхбален Америка (Корал-Харбор)',
+        'America/Atikokan' => 'Малхбален Америка (Корал-Харбор)',
         'America/Cordoba' => 'Аргентина (Кордова)',
+        'America/Argentina/Cordoba' => 'Аргентина (Кордова)',
         'America/Costa_Rica' => 'Юккъера Америка (Коста-Рика)',
+        'America/Coyhaique' => 'Чили (Coyhaique)',
         'America/Creston' => 'Лаьмнийн хан (АЦШ) (Крестон)',
         'America/Cuiaba' => 'Амазонка (Куяба)',
         'America/Curacao' => 'Атлантикан хан (Кюрасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразили (Форталеза)',
         'America/Glace_Bay' => 'Атлантикан хан (Глейс-Бей)',
         'America/Godthab' => 'Гренланди (Готхоб)',
+        'America/Nuuk' => 'Гренланди (Готхоб)',
         'America/Goose_Bay' => 'Атлантикан хан (Гус-Бей)',
         'America/Grand_Turk' => 'Малхбален Америка (Гранд Турк)',
         'America/Grenada' => 'Атлантикан хан (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Малхбален Америка (Винсенс)',
         'America/Indiana/Winamac' => 'Малхбален Америка (Винамак)',
         'America/Indianapolis' => 'Малхбален Америка (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Малхбален Америка (Индианаполис)',
         'America/Inuvik' => 'Лаьмнийн хан (АЦШ) (Инувик)',
         'America/Iqaluit' => 'Малхбален Америка (Икалуит)',
         'America/Jamaica' => 'Малхбален Америка (Ямайка)',
         'America/Jujuy' => 'Аргентина (Жужуй)',
+        'America/Argentina/Jujuy' => 'Аргентина (Жужуй)',
         'America/Juneau' => 'Аляска (Джуно)',
         'America/Kentucky/Monticello' => 'Малхбален Америка (Монтиселло)',
         'America/Kralendijk' => 'Атлантикан хан (Кралендейк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перу (Лима)',
         'America/Los_Angeles' => 'Тийна океанан хан (Лос-Анджелес)',
         'America/Louisville' => 'Малхбален Америка (Луисвилл)',
+        'America/Kentucky/Louisville' => 'Малхбален Америка (Луисвилл)',
         'America/Lower_Princes' => 'Атлантикан хан (Лоуэр-Принсес-Куортер)',
         'America/Maceio' => 'Бразили (Масейо)',
         'America/Managua' => 'Юккъера Америка (Манагуа)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Юккъера Америка (Матаморос)',
         'America/Mazatlan' => 'Тийна океанан Мексикан хан (Масатлан)',
         'America/Mendoza' => 'Аргентина (Мендоса)',
+        'America/Argentina/Mendoza' => 'Аргентина (Мендоса)',
         'America/Menominee' => 'Юккъера Америка (Меномини)',
         'America/Merida' => 'Юккъера Америка (Мерида)',
         'America/Metlakatla' => 'Аляска (Метлакатла)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'СаӀудийн Ӏаьрбийчоь (Бахрейн)',
         'Asia/Baku' => 'Азербайджан (Бакох)',
         'Asia/Bangkok' => 'Индокитай (Бангкок)',
-        'Asia/Barnaul' => 'Росси (Барнаул)',
+        'Asia/Barnaul' => 'Красноярск (Барнаул)',
         'Asia/Beirut' => 'Малхбален Европа (Бейрут)',
         'Asia/Bishkek' => 'Киргизи (Бишкек)',
         'Asia/Brunei' => 'Бруней-Даруссалам',
         'Asia/Calcutta' => 'ХӀинди (Калькутта)',
+        'Asia/Kolkata' => 'ХӀинди (Калькутта)',
         'Asia/Chita' => 'Якутск (Чита)',
         'Asia/Colombo' => 'ХӀинди (Коломбо)',
         'Asia/Damascus' => 'Малхбален Европа (Димашкъ)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Росси (Петропавловск-Камчатски)',
         'Asia/Karachi' => 'Пакистан (Карачи)',
         'Asia/Katmandu' => 'Непал (Катманду)',
+        'Asia/Kathmandu' => 'Непал (Катманду)',
         'Asia/Khandyga' => 'Якутск (Хандыга)',
         'Asia/Krasnoyarsk' => 'Красноярск',
         'Asia/Kuala_Lumpur' => 'Малайзи (Куала-Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ГӀажарийн айма (Маскат)',
         'Asia/Nicosia' => 'Малхбален Европа (Никоси)',
         'Asia/Novokuznetsk' => 'Красноярск (Новокузнецк)',
-        'Asia/Novosibirsk' => 'Новосибирск',
+        'Asia/Novosibirsk' => 'Красноярск (Новосибирск)',
         'Asia/Omsk' => 'Омск',
         'Asia/Oral' => 'Кхазакхстан (Орал)',
         'Asia/Phnom_Penh' => 'Индокитай (Пномпень)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Кхазакхстан (Qostanay)',
         'Asia/Qyzylorda' => 'Кхазакхстан (Кызылорда)',
         'Asia/Rangoon' => 'Мьянма (Рангун)',
+        'Asia/Yangon' => 'Мьянма (Рангун)',
         'Asia/Riyadh' => 'СаӀудийн Ӏаьрбийчоь (Эр-Рияд)',
         'Asia/Saigon' => 'Индокитай (Хошимин)',
-        'Asia/Sakhalin' => 'Сахалин (Сахалин гӀ-е)',
+        'Asia/Ho_Chi_Minh' => 'Индокитай (Хошимин)',
+        'Asia/Sakhalin' => 'Магадан (Сахалин гӀ-е)',
         'Asia/Samarkand' => 'Узбекистан (Самарканд)',
         'Asia/Seoul' => 'Корей (Сеул)',
         'Asia/Shanghai' => 'Цийчоь (Шанхай)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ГӀажарийчоь (ТехӀран)',
         'Asia/Thimphu' => 'Бутан (Тимпу)',
         'Asia/Tokyo' => 'Япон (Токио)',
-        'Asia/Tomsk' => 'Росси (Томск)',
+        'Asia/Tomsk' => 'Красноярск (Томск)',
         'Asia/Ulaanbaatar' => 'Улан-Батор',
         'Asia/Urumqi' => 'Цийчоь (Урумчи)',
         'Asia/Ust-Nera' => 'Владивосток (Усть-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Малхбузен Европа (Канаран гӀайренаш)',
         'Atlantic/Cape_Verde' => 'Кабо-Верде',
         'Atlantic/Faeroe' => 'Малхбузен Европа (Фарерийн гӀайренаш)',
+        'Atlantic/Faroe' => 'Малхбузен Европа (Фарерийн гӀайренаш)',
         'Atlantic/Madeira' => 'Малхбузен Европа (Мадейра, гӀ-е)',
         'Atlantic/Reykjavik' => 'Гринвичица юкъара хан (Рейкьявик)',
         'Atlantic/South_Georgia' => 'Къилба Георги (Къилба Джорджи)',
@@ -315,7 +331,7 @@
         'Etc/GMT' => 'Гринвичица юкъара хан',
         'Europe/Amsterdam' => 'Юккъера Европа (Амстердам)',
         'Europe/Andorra' => 'Юккъера Европа (Андорра)',
-        'Europe/Astrakhan' => 'Москва (Аштаркхне)',
+        'Europe/Astrakhan' => 'Росси (Аштаркхне)',
         'Europe/Athens' => 'Малхбален Европа (Афина)',
         'Europe/Belgrade' => 'Юккъера Европа (Белград)',
         'Europe/Berlin' => 'Юккъера Европа (Берлин)',
@@ -335,7 +351,8 @@
         'Europe/Jersey' => 'Гринвичица юкъара хан (Джерси)',
         'Europe/Kaliningrad' => 'Малхбален Европа (Калининград)',
         'Europe/Kiev' => 'Малхбален Европа (Киев)',
-        'Europe/Kirov' => 'Росси (Киров)',
+        'Europe/Kyiv' => 'Малхбален Европа (Киев)',
+        'Europe/Kirov' => 'Москва (Киров)',
         'Europe/Lisbon' => 'Малхбузен Европа (Лиссабон)',
         'Europe/Ljubljana' => 'Юккъера Европа (Любляна)',
         'Europe/London' => 'Гринвичица юкъара хан (Лондон)',
@@ -355,19 +372,19 @@
         'Europe/Samara' => 'Росси (Самара)',
         'Europe/San_Marino' => 'Юккъера Европа (Сан-Марино)',
         'Europe/Sarajevo' => 'Юккъера Европа (Сараево)',
-        'Europe/Saratov' => 'Москва (Саратов)',
+        'Europe/Saratov' => 'Росси (Саратов)',
         'Europe/Simferopol' => 'Москва (Симферополь)',
         'Europe/Skopje' => 'Юккъера Европа (Скопье)',
         'Europe/Sofia' => 'Малхбален Европа (Софи)',
         'Europe/Stockholm' => 'Юккъера Европа (Стокгольм)',
         'Europe/Tallinn' => 'Малхбален Европа (Таллин)',
         'Europe/Tirane' => 'Юккъера Европа (Тирана)',
-        'Europe/Ulyanovsk' => 'Москва (Ульяновск)',
+        'Europe/Ulyanovsk' => 'Росси (Ульяновск)',
         'Europe/Vaduz' => 'Юккъера Европа (Вадуц)',
         'Europe/Vatican' => 'Юккъера Европа (Ватикан)',
         'Europe/Vienna' => 'Юккъера Европа (Вена)',
         'Europe/Vilnius' => 'Малхбален Европа (Вильнюс)',
-        'Europe/Volgograd' => 'Волгоград',
+        'Europe/Volgograd' => 'Москва (Волгоград)',
         'Europe/Warsaw' => 'Юккъера Европа (Варшава)',
         'Europe/Zagreb' => 'Юккъера Европа (Загреб)',
         'Europe/Zurich' => 'Юккъера Европа (Цюрих)',
@@ -388,7 +405,8 @@
         'Pacific/Chatham' => 'Чатем (Чатем, гӀ-е)',
         'Pacific/Easter' => 'Мархин гӀайре (Мархин гӀайренаш)',
         'Pacific/Efate' => 'Вануату (Эфате)',
-        'Pacific/Enderbury' => 'Феникс, гӀ-наш (Эндерберин, гӀ-е)',
+        'Pacific/Enderbury' => 'Феникс, гӀ-наш (Canton)',
+        'Pacific/Kanton' => 'Феникс, гӀ-наш (Canton)',
         'Pacific/Fakaofo' => 'Токелау (Факаофо)',
         'Pacific/Fiji' => 'Фиджи',
         'Pacific/Funafuti' => 'Тувалу (Фунафути)',
@@ -396,7 +414,7 @@
         'Pacific/Gambier' => 'Гамбье (Гамбьен, гӀ-наш)',
         'Pacific/Guadalcanal' => 'Соломонан, гӀ-наш (Гвадалканал)',
         'Pacific/Guam' => 'Чаморро (Гуам)',
-        'Pacific/Honolulu' => 'Гавайн-алеутийн хан (Гонолулу)',
+        'Pacific/Honolulu' => 'Гавайн-алеутийн стандартан хан (Гонолулу)',
         'Pacific/Kiritimati' => 'Лайн, гӀ-наш (Киритимати)',
         'Pacific/Kosrae' => 'Косраэ (Косрае)',
         'Pacific/Kwajalein' => 'Маршалан , гӀ-наш (Кваджалейн)',
@@ -411,6 +429,7 @@
         'Pacific/Palau' => 'Палау',
         'Pacific/Pitcairn' => 'Питкэрн (Питкерн)',
         'Pacific/Ponape' => 'Понапе, гӀ-наш',
+        'Pacific/Pohnpei' => 'Понапе, гӀ-наш',
         'Pacific/Port_Moresby' => 'Папуа – Керла Гвиней (Порт-Морсби)',
         'Pacific/Rarotonga' => 'Кукан, гӀ-наш (Раротонга)',
         'Pacific/Saipan' => 'Чаморро (Сайпан)',
@@ -418,6 +437,7 @@
         'Pacific/Tarawa' => 'Гилбертан, гӀ-наш (Тарава)',
         'Pacific/Tongatapu' => 'Тонга (Тонгатапу)',
         'Pacific/Truk' => 'Чуук (Трук, гӀ-наш)',
+        'Pacific/Chuuk' => 'Чуук (Трук, гӀ-наш)',
         'Pacific/Wake' => 'Уэйк, гӀ-е',
         'Pacific/Wallis' => 'Уоллис а, Футуна а',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cs.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'východoafrický čas (Addis Abeba)',
         'Africa/Algiers' => 'středoevropský čas (Alžír)',
         'Africa/Asmera' => 'východoafrický čas (Asmara)',
+        'Africa/Asmara' => 'východoafrický čas (Asmara)',
         'Africa/Bamako' => 'greenwichský střední čas (Bamako)',
         'Africa/Bangui' => 'západoafrický čas (Bangui)',
         'Africa/Banjul' => 'greenwichský střední čas (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'východoafrický čas (Dar es Salaam)',
         'Africa/Djibouti' => 'východoafrický čas (Džibuti)',
         'Africa/Douala' => 'západoafrický čas (Douala)',
-        'Africa/El_Aaiun' => 'západoevropský čas (El Aaiun)',
+        'Africa/El_Aaiun' => 'západoevropský čas (El Aaiún)',
         'Africa/Freetown' => 'greenwichský střední čas (Freetown)',
         'Africa/Gaborone' => 'středoafrický čas (Gaborone)',
         'Africa/Harare' => 'středoafrický čas (Harare)',
@@ -58,13 +59,13 @@
         'America/Anchorage' => 'aljašský čas (Anchorage)',
         'America/Anguilla' => 'atlantický čas (Anguilla)',
         'America/Antigua' => 'atlantický čas (Antigua)',
-        'America/Araguaina' => 'brasilijský čas (Araguaina)',
+        'America/Araguaina' => 'brasilijský čas (Araguaína)',
         'America/Argentina/La_Rioja' => 'argentinský čas (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'argentinský čas (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'argentinský čas (Río Gallegos)',
         'America/Argentina/Salta' => 'argentinský čas (Salta)',
         'America/Argentina/San_Juan' => 'argentinský čas (San Juan)',
         'America/Argentina/San_Luis' => 'argentinský čas (San Luis)',
-        'America/Argentina/Tucuman' => 'argentinský čas (Tucuman)',
+        'America/Argentina/Tucuman' => 'argentinský čas (Tucumán)',
         'America/Argentina/Ushuaia' => 'argentinský čas (Ushuaia)',
         'America/Aruba' => 'atlantický čas (Aruba)',
         'America/Asuncion' => 'paraguayský čas (Asunción)',
@@ -78,21 +79,26 @@
         'America/Bogota' => 'kolumbijský čas (Bogotá)',
         'America/Boise' => 'severoamerický horský čas (Boise)',
         'America/Buenos_Aires' => 'argentinský čas (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'argentinský čas (Buenos Aires)',
         'America/Cambridge_Bay' => 'severoamerický horský čas (Cambridge Bay)',
         'America/Campo_Grande' => 'amazonský čas (Campo Grande)',
         'America/Cancun' => 'severoamerický východní čas (Cancún)',
         'America/Caracas' => 'venezuelský čas (Caracas)',
         'America/Catamarca' => 'argentinský čas (Catamarca)',
+        'America/Argentina/Catamarca' => 'argentinský čas (Catamarca)',
         'America/Cayenne' => 'francouzskoguyanský čas (Cayenne)',
         'America/Cayman' => 'severoamerický východní čas (Kajmanské ostrovy)',
         'America/Chicago' => 'severoamerický centrální čas (Chicago)',
         'America/Chihuahua' => 'severoamerický centrální čas (Chihuahua)',
         'America/Ciudad_Juarez' => 'severoamerický horský čas (Ciudad Juárez)',
         'America/Coral_Harbour' => 'severoamerický východní čas (Atikokan)',
+        'America/Atikokan' => 'severoamerický východní čas (Atikokan)',
         'America/Cordoba' => 'argentinský čas (Córdoba)',
+        'America/Argentina/Cordoba' => 'argentinský čas (Córdoba)',
         'America/Costa_Rica' => 'severoamerický centrální čas (Kostarika)',
+        'America/Coyhaique' => 'chilský čas (Coyhaique)',
         'America/Creston' => 'severoamerický horský čas (Creston)',
-        'America/Cuiaba' => 'amazonský čas (Cuiaba)',
+        'America/Cuiaba' => 'amazonský čas (Cuiabá)',
         'America/Curacao' => 'atlantický čas (Curaçao)',
         'America/Danmarkshavn' => 'greenwichský střední čas (Danmarkshavn)',
         'America/Dawson' => 'yukonský čas (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'severoamerický východní čas (Detroit)',
         'America/Dominica' => 'atlantický čas (Dominika)',
         'America/Edmonton' => 'severoamerický horský čas (Edmonton)',
-        'America/Eirunepe' => 'acrejský čas (Eirunepe)',
+        'America/Eirunepe' => 'acrejský čas (Eirunepé)',
         'America/El_Salvador' => 'severoamerický centrální čas (Salvador)',
         'America/Fort_Nelson' => 'severoamerický horský čas (Fort Nelson)',
         'America/Fortaleza' => 'brasilijský čas (Fortaleza)',
         'America/Glace_Bay' => 'atlantický čas (Glace Bay)',
         'America/Godthab' => 'časové pásmo Grónsko (Nuuk)',
+        'America/Nuuk' => 'časové pásmo Grónsko (Nuuk)',
         'America/Goose_Bay' => 'atlantický čas (Goose Bay)',
         'America/Grand_Turk' => 'severoamerický východní čas (Grand Turk)',
         'America/Grenada' => 'atlantický čas (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'severoamerický východní čas (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'severoamerický východní čas (Winamac, Indiana)',
         'America/Indianapolis' => 'severoamerický východní čas (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'severoamerický východní čas (Indianapolis)',
         'America/Inuvik' => 'severoamerický horský čas (Inuvik)',
         'America/Iqaluit' => 'severoamerický východní čas (Iqaluit)',
         'America/Jamaica' => 'severoamerický východní čas (Jamajka)',
         'America/Jujuy' => 'argentinský čas (Jujuy)',
+        'America/Argentina/Jujuy' => 'argentinský čas (Jujuy)',
         'America/Juneau' => 'aljašský čas (Juneau)',
         'America/Kentucky/Monticello' => 'severoamerický východní čas (Monticello, Kentucky)',
         'America/Kralendijk' => 'atlantický čas (Kralendijk)',
@@ -136,8 +145,9 @@
         'America/Lima' => 'peruánský čas (Lima)',
         'America/Los_Angeles' => 'severoamerický pacifický čas (Los Angeles)',
         'America/Louisville' => 'severoamerický východní čas (Louisville)',
+        'America/Kentucky/Louisville' => 'severoamerický východní čas (Louisville)',
         'America/Lower_Princes' => 'atlantický čas (Lower Prince’s Quarter)',
-        'America/Maceio' => 'brasilijský čas (Maceio)',
+        'America/Maceio' => 'brasilijský čas (Maceió)',
         'America/Managua' => 'severoamerický centrální čas (Managua)',
         'America/Manaus' => 'amazonský čas (Manaus)',
         'America/Marigot' => 'atlantický čas (Marigot)',
@@ -145,11 +155,12 @@
         'America/Matamoros' => 'severoamerický centrální čas (Matamoros)',
         'America/Mazatlan' => 'mexický pacifický čas (Mazatlán)',
         'America/Mendoza' => 'argentinský čas (Mendoza)',
+        'America/Argentina/Mendoza' => 'argentinský čas (Mendoza)',
         'America/Menominee' => 'severoamerický centrální čas (Menominee)',
         'America/Merida' => 'severoamerický centrální čas (Merida)',
         'America/Metlakatla' => 'aljašský čas (Metlakatla)',
         'America/Mexico_City' => 'severoamerický centrální čas (Ciudad de México)',
-        'America/Miquelon' => 'pierre-miquelonský čas',
+        'America/Miquelon' => 'pierre-miquelonský čas (Saint-Pierre)',
         'America/Moncton' => 'atlantický čas (Moncton)',
         'America/Monterrey' => 'severoamerický centrální čas (Monterrey)',
         'America/Montevideo' => 'uruguayský čas (Montevideo)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'novozélandský čas (McMurdo)',
         'Antarctica/Palmer' => 'chilský čas (Palmer)',
         'Antarctica/Rothera' => 'čas Rotherovy stanice (Rothera)',
-        'Antarctica/Syowa' => 'čas stanice Šówa (Syowa)',
+        'Antarctica/Syowa' => 'čas stanice Šówa (Showa)',
         'Antarctica/Troll' => 'greenwichský střední čas (Troll)',
         'Antarctica/Vostok' => 'čas stanice Vostok',
         'Arctic/Longyearbyen' => 'středoevropský čas (Longyearbyen)',
         'Asia/Aden' => 'arabský čas (Aden)',
         'Asia/Almaty' => 'kazachstánský čas (Almaty)',
         'Asia/Amman' => 'východoevropský čas (Ammán)',
-        'Asia/Anadyr' => 'anadyrský čas',
+        'Asia/Anadyr' => 'petropavlovsko-kamčatský čas (Anadyr)',
         'Asia/Aqtau' => 'kazachstánský čas (Aktau)',
         'Asia/Aqtobe' => 'kazachstánský čas (Aktobe)',
         'Asia/Ashgabat' => 'turkmenský čas (Ašchabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'arabský čas (Bahrajn)',
         'Asia/Baku' => 'ázerbájdžánský čas (Baku)',
         'Asia/Bangkok' => 'indočínský čas (Bangkok)',
-        'Asia/Barnaul' => 'časové pásmo Rusko (Barnaul)',
+        'Asia/Barnaul' => 'krasnojarský čas (Barnaul)',
         'Asia/Beirut' => 'východoevropský čas (Bejrút)',
         'Asia/Bishkek' => 'kyrgyzský čas (Biškek)',
         'Asia/Brunei' => 'brunejský čas',
         'Asia/Calcutta' => 'indický čas (Kalkata)',
+        'Asia/Kolkata' => 'indický čas (Kalkata)',
         'Asia/Chita' => 'jakutský čas (Čita)',
         'Asia/Colombo' => 'indický čas (Kolombo)',
         'Asia/Damascus' => 'východoevropský čas (Damašek)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'východoevropský čas (Gaza)',
         'Asia/Hebron' => 'východoevropský čas (Hebron)',
         'Asia/Hong_Kong' => 'hongkongský čas',
-        'Asia/Hovd' => 'hovdský čas',
+        'Asia/Hovd' => 'hovdský čas (Khovd)',
         'Asia/Irkutsk' => 'irkutský čas',
         'Asia/Jakarta' => 'západoindonéský čas (Jakarta)',
         'Asia/Jayapura' => 'východoindonéský čas (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'petropavlovsko-kamčatský čas (Kamčatka)',
         'Asia/Karachi' => 'pákistánský čas (Karáčí)',
         'Asia/Katmandu' => 'nepálský čas (Káthmándú)',
+        'Asia/Kathmandu' => 'nepálský čas (Káthmándú)',
         'Asia/Khandyga' => 'jakutský čas (Chandyga)',
         'Asia/Krasnoyarsk' => 'krasnojarský čas',
         'Asia/Kuala_Lumpur' => 'malajský čas (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'standardní čas Perského zálivu (Maskat)',
         'Asia/Nicosia' => 'východoevropský čas (Nikósie)',
         'Asia/Novokuznetsk' => 'krasnojarský čas (Novokuzněck)',
-        'Asia/Novosibirsk' => 'novosibirský čas',
+        'Asia/Novosibirsk' => 'krasnojarský čas (Novosibirsk)',
         'Asia/Omsk' => 'omský čas',
         'Asia/Oral' => 'kazachstánský čas (Uralsk)',
         'Asia/Phnom_Penh' => 'indočínský čas (Phnompenh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'kazachstánský čas (Kostanaj)',
         'Asia/Qyzylorda' => 'kazachstánský čas (Kyzylorda)',
         'Asia/Rangoon' => 'myanmarský čas (Rangún)',
+        'Asia/Yangon' => 'myanmarský čas (Rangún)',
         'Asia/Riyadh' => 'arabský čas (Rijád)',
         'Asia/Saigon' => 'indočínský čas (Ho Či Minovo město)',
-        'Asia/Sakhalin' => 'sachalinský čas',
+        'Asia/Ho_Chi_Minh' => 'indočínský čas (Ho Či Minovo město)',
+        'Asia/Sakhalin' => 'magadanský čas (Sachalin)',
         'Asia/Samarkand' => 'uzbecký čas (Samarkand)',
         'Asia/Seoul' => 'korejský čas (Soul)',
         'Asia/Shanghai' => 'čínský čas (Šanghaj)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'íránský čas (Teherán)',
         'Asia/Thimphu' => 'bhútánský čas (Thimbú)',
         'Asia/Tokyo' => 'japonský čas (Tokio)',
-        'Asia/Tomsk' => 'časové pásmo Rusko (Tomsk)',
+        'Asia/Tomsk' => 'krasnojarský čas (Tomsk)',
         'Asia/Ulaanbaatar' => 'ulánbátarský čas',
         'Asia/Urumqi' => 'časové pásmo Čína (Urumči)',
         'Asia/Ust-Nera' => 'vladivostocký čas (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'západoevropský čas (Kanárské ostrovy)',
         'Atlantic/Cape_Verde' => 'kapverdský čas (Kapverdy)',
         'Atlantic/Faeroe' => 'západoevropský čas (Faerské ostrovy)',
+        'Atlantic/Faroe' => 'západoevropský čas (Faerské ostrovy)',
         'Atlantic/Madeira' => 'západoevropský čas (Madeira)',
         'Atlantic/Reykjavik' => 'greenwichský střední čas (Reykjavík)',
         'Atlantic/South_Georgia' => 'čas Jižní Georgie',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'koordinovaný světový čas',
         'Europe/Amsterdam' => 'středoevropský čas (Amsterdam)',
         'Europe/Andorra' => 'středoevropský čas (Andorra)',
-        'Europe/Astrakhan' => 'moskevský čas (Astrachaň)',
+        'Europe/Astrakhan' => 'samarský čas (Astrachaň)',
         'Europe/Athens' => 'východoevropský čas (Athény)',
         'Europe/Belgrade' => 'středoevropský čas (Bělehrad)',
         'Europe/Berlin' => 'středoevropský čas (Berlín)',
@@ -324,7 +340,7 @@
         'Europe/Brussels' => 'středoevropský čas (Brusel)',
         'Europe/Bucharest' => 'východoevropský čas (Bukurešť)',
         'Europe/Budapest' => 'středoevropský čas (Budapešť)',
-        'Europe/Busingen' => 'středoevropský čas (Busingen)',
+        'Europe/Busingen' => 'středoevropský čas (Büsingen)',
         'Europe/Chisinau' => 'východoevropský čas (Kišiněv)',
         'Europe/Copenhagen' => 'středoevropský čas (Kodaň)',
         'Europe/Dublin' => 'greenwichský střední čas (Dublin)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'greenwichský střední čas (Guernsey)',
         'Europe/Helsinki' => 'východoevropský čas (Helsinky)',
         'Europe/Isle_of_Man' => 'greenwichský střední čas (Ostrov Man)',
-        'Europe/Istanbul' => 'časové pásmo Turecko (Istanbul)',
+        'Europe/Istanbul' => 'Turecký čas (Istanbul)',
         'Europe/Jersey' => 'greenwichský střední čas (Jersey)',
         'Europe/Kaliningrad' => 'východoevropský čas (Kaliningrad)',
         'Europe/Kiev' => 'východoevropský čas (Kyjev)',
-        'Europe/Kirov' => 'časové pásmo Rusko (Kirov)',
+        'Europe/Kyiv' => 'východoevropský čas (Kyjev)',
+        'Europe/Kirov' => 'moskevský čas (Kirov)',
         'Europe/Lisbon' => 'západoevropský čas (Lisabon)',
         'Europe/Ljubljana' => 'středoevropský čas (Lublaň)',
         'Europe/London' => 'greenwichský střední čas (Londýn)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'samarský čas (Samara)',
         'Europe/San_Marino' => 'středoevropský čas (San Marino)',
         'Europe/Sarajevo' => 'středoevropský čas (Sarajevo)',
-        'Europe/Saratov' => 'moskevský čas (Saratov)',
+        'Europe/Saratov' => 'samarský čas (Saratov)',
         'Europe/Simferopol' => 'moskevský čas (Simferopol)',
         'Europe/Skopje' => 'středoevropský čas (Skopje)',
         'Europe/Sofia' => 'východoevropský čas (Sofie)',
         'Europe/Stockholm' => 'středoevropský čas (Stockholm)',
         'Europe/Tallinn' => 'východoevropský čas (Tallinn)',
         'Europe/Tirane' => 'středoevropský čas (Tirana)',
-        'Europe/Ulyanovsk' => 'moskevský čas (Uljanovsk)',
+        'Europe/Ulyanovsk' => 'samarský čas (Uljanovsk)',
         'Europe/Vaduz' => 'středoevropský čas (Vaduz)',
         'Europe/Vatican' => 'středoevropský čas (Vatikán)',
         'Europe/Vienna' => 'středoevropský čas (Vídeň)',
         'Europe/Vilnius' => 'východoevropský čas (Vilnius)',
-        'Europe/Volgograd' => 'volgogradský čas',
+        'Europe/Volgograd' => 'moskevský čas (Volgograd)',
         'Europe/Warsaw' => 'středoevropský čas (Varšava)',
         'Europe/Zagreb' => 'středoevropský čas (Záhřeb)',
         'Europe/Zurich' => 'středoevropský čas (Curych)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'chathamský čas (Chathamské ostrovy)',
         'Pacific/Easter' => 'čas Velikonočního ostrova (Velikonoční ostrov)',
         'Pacific/Efate' => 'vanuatský čas (Éfaté)',
-        'Pacific/Enderbury' => 'čas Fénixových ostrovů (Enderbury)',
+        'Pacific/Enderbury' => 'čas Fénixových ostrovů (Kanton (ostrov))',
+        'Pacific/Kanton' => 'čas Fénixových ostrovů (Kanton (ostrov))',
         'Pacific/Fakaofo' => 'tokelauský čas (Fakaofo)',
         'Pacific/Fiji' => 'fidžijský čas',
         'Pacific/Funafuti' => 'tuvalský čas (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'gambierský čas (Gambierovy ostrovy)',
         'Pacific/Guadalcanal' => 'čas Šalamounových ostrovů (Guadalcanal)',
         'Pacific/Guam' => 'chamorrský čas (Guam)',
-        'Pacific/Honolulu' => 'havajsko-aleutský čas (Honolulu)',
+        'Pacific/Honolulu' => 'havajsko-aleutský standardní čas (Honolulu)',
         'Pacific/Kiritimati' => 'čas Rovníkových ostrovů (Kiritimati)',
         'Pacific/Kosrae' => 'kosrajský čas (Kosrae)',
         'Pacific/Kwajalein' => 'čas Marshallových ostrovů (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'palauský čas',
         'Pacific/Pitcairn' => 'čas Pitcairnových ostrovů (Pitcairnovy ostrovy)',
         'Pacific/Ponape' => 'ponapský čas (Pohnpei)',
+        'Pacific/Pohnpei' => 'ponapský čas (Pohnpei)',
         'Pacific/Port_Moresby' => 'čas Papuy-Nové Guiney (Port Moresby)',
         'Pacific/Rarotonga' => 'čas Cookových ostrovů (Rarotonga)',
         'Pacific/Saipan' => 'chamorrský čas (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'čas Gilbertových ostrovů (Tarawa)',
         'Pacific/Tongatapu' => 'tonžský čas (Tongatapu)',
         'Pacific/Truk' => 'chuukský čas (Chuukské ostrovy)',
+        'Pacific/Chuuk' => 'chuukský čas (Chuukské ostrovy)',
         'Pacific/Wake' => 'čas ostrova Wake',
-        'Pacific/Wallis' => 'čas ostrovů Wallis a Futuna',
+        'Pacific/Wallis' => 'čas ostrovů Wallis a Futuna (Wallis & Futuna)',
     ],
     'Meta' => [
         'HourFormatPos' => '+%d:%02d',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cv.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,59 +2,60 @@
 
 return [
     'Names' => [
-        'Africa/Abidjan' => 'Гринвичпа вӑтам вӑхӑчӗ (Абиджан)',
-        'Africa/Accra' => 'Гринвичпа вӑтам вӑхӑчӗ (Аккра)',
-        'Africa/Addis_Ababa' => 'Хӗвелтухӑҫ Африка вӑхӑчӗ (Аддис-Абеба)',
-        'Africa/Algiers' => 'Тӗп Европа вӑхӑчӗ (Алжир)',
-        'Africa/Asmera' => 'Хӗвелтухӑҫ Африка вӑхӑчӗ (Асмэра)',
-        'Africa/Bamako' => 'Гринвичпа вӑтам вӑхӑчӗ (Бамако)',
+        'Africa/Abidjan' => 'Гринвич вӑхӑчӗ (Абиджан)',
+        'Africa/Accra' => 'Гринвич вӑхӑчӗ (Аккра)',
+        'Africa/Addis_Ababa' => 'Тухӑҫ Африка вӑхӑчӗ (Аддис-Абеба)',
+        'Africa/Algiers' => 'Вӑта Европа вӑхӑчӗ (Алжир)',
+        'Africa/Asmera' => 'Тухӑҫ Африка вӑхӑчӗ (Асмэра)',
+        'Africa/Asmara' => 'Тухӑҫ Африка вӑхӑчӗ (Асмэра)',
+        'Africa/Bamako' => 'Гринвич вӑхӑчӗ (Бамако)',
         'Africa/Bangui' => 'Анӑҫ Африка вӑхӑчӗ (Банги)',
-        'Africa/Banjul' => 'Гринвичпа вӑтам вӑхӑчӗ (Банжул)',
-        'Africa/Bissau' => 'Гринвичпа вӑтам вӑхӑчӗ (Бисау)',
-        'Africa/Blantyre' => 'Тӗп Африка вӑхӑчӗ (Блантайр)',
+        'Africa/Banjul' => 'Гринвич вӑхӑчӗ (Банжул)',
+        'Africa/Bissau' => 'Гринвич вӑхӑчӗ (Бисау)',
+        'Africa/Blantyre' => 'Вӑта Африка вӑхӑчӗ (Блантайр)',
         'Africa/Brazzaville' => 'Анӑҫ Африка вӑхӑчӗ (Браззавиль)',
-        'Africa/Bujumbura' => 'Тӗп Африка вӑхӑчӗ (Бужумбура)',
-        'Africa/Cairo' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Каир)',
+        'Africa/Bujumbura' => 'Вӑта Африка вӑхӑчӗ (Бужумбура)',
+        'Africa/Cairo' => 'Тухӑҫ Европа вӑхӑчӗ (Каир)',
         'Africa/Casablanca' => 'Анӑҫ Европа вӑхӑчӗ (Касабланка)',
-        'Africa/Ceuta' => 'Тӗп Европа вӑхӑчӗ (Сеута)',
-        'Africa/Conakry' => 'Гринвичпа вӑтам вӑхӑчӗ (Конакри)',
-        'Africa/Dakar' => 'Гринвичпа вӑтам вӑхӑчӗ (Дакар)',
-        'Africa/Dar_es_Salaam' => 'Хӗвелтухӑҫ Африка вӑхӑчӗ (Дар-эс-Салам)',
-        'Africa/Djibouti' => 'Хӗвелтухӑҫ Африка вӑхӑчӗ (Джибути)',
+        'Africa/Ceuta' => 'Вӑта Европа вӑхӑчӗ (Сеута)',
+        'Africa/Conakry' => 'Гринвич вӑхӑчӗ (Конакри)',
+        'Africa/Dakar' => 'Гринвич вӑхӑчӗ (Дакар)',
+        'Africa/Dar_es_Salaam' => 'Тухӑҫ Африка вӑхӑчӗ (Дар-эс-Салам)',
+        'Africa/Djibouti' => 'Тухӑҫ Африка вӑхӑчӗ (Джибути)',
         'Africa/Douala' => 'Анӑҫ Африка вӑхӑчӗ (Дуала)',
         'Africa/El_Aaiun' => 'Анӑҫ Европа вӑхӑчӗ (Эль-Аюн)',
-        'Africa/Freetown' => 'Гринвичпа вӑтам вӑхӑчӗ (Фритаун)',
-        'Africa/Gaborone' => 'Тӗп Африка вӑхӑчӗ (Габороне)',
-        'Africa/Harare' => 'Тӗп Африка вӑхӑчӗ (Хараре)',
+        'Africa/Freetown' => 'Гринвич вӑхӑчӗ (Фритаун)',
+        'Africa/Gaborone' => 'Вӑта Африка вӑхӑчӗ (Габороне)',
+        'Africa/Harare' => 'Вӑта Африка вӑхӑчӗ (Хараре)',
         'Africa/Johannesburg' => 'Кӑнтӑр Африка вӑхӑчӗ (Йоханнесбург)',
-        'Africa/Juba' => 'Тӗп Африка вӑхӑчӗ (Джуба)',
-        'Africa/Kampala' => 'Хӗвелтухӑҫ Африка вӑхӑчӗ (Кампала)',
-        'Africa/Khartoum' => 'Тӗп Африка вӑхӑчӗ (Хартум)',
-        'Africa/Kigali' => 'Тӗп Африка вӑхӑчӗ (Кигали)',
+        'Africa/Juba' => 'Вӑта Африка вӑхӑчӗ (Джуба)',
+        'Africa/Kampala' => 'Тухӑҫ Африка вӑхӑчӗ (Кампала)',
+        'Africa/Khartoum' => 'Вӑта Африка вӑхӑчӗ (Хартум)',
+        'Africa/Kigali' => 'Вӑта Африка вӑхӑчӗ (Кигали)',
         'Africa/Kinshasa' => 'Анӑҫ Африка вӑхӑчӗ (Киншаса)',
         'Africa/Lagos' => 'Анӑҫ Африка вӑхӑчӗ (Лагос)',
         'Africa/Libreville' => 'Анӑҫ Африка вӑхӑчӗ (Либревиль)',
-        'Africa/Lome' => 'Гринвичпа вӑтам вӑхӑчӗ (Ломе)',
+        'Africa/Lome' => 'Гринвич вӑхӑчӗ (Ломе)',
         'Africa/Luanda' => 'Анӑҫ Африка вӑхӑчӗ (Луанда)',
-        'Africa/Lubumbashi' => 'Тӗп Африка вӑхӑчӗ (Лубумбаши)',
-        'Africa/Lusaka' => 'Тӗп Африка вӑхӑчӗ (Лусака)',
+        'Africa/Lubumbashi' => 'Вӑта Африка вӑхӑчӗ (Лубумбаши)',
+        'Africa/Lusaka' => 'Вӑта Африка вӑхӑчӗ (Лусака)',
         'Africa/Malabo' => 'Анӑҫ Африка вӑхӑчӗ (Малабо)',
-        'Africa/Maputo' => 'Тӗп Африка вӑхӑчӗ (Мапуту)',
+        'Africa/Maputo' => 'Вӑта Африка вӑхӑчӗ (Мапуту)',
         'Africa/Maseru' => 'Кӑнтӑр Африка вӑхӑчӗ (Масеру)',
         'Africa/Mbabane' => 'Кӑнтӑр Африка вӑхӑчӗ (Мбабане)',
-        'Africa/Mogadishu' => 'Хӗвелтухӑҫ Африка вӑхӑчӗ (Могадишо)',
-        'Africa/Monrovia' => 'Гринвичпа вӑтам вӑхӑчӗ (Монрови)',
-        'Africa/Nairobi' => 'Хӗвелтухӑҫ Африка вӑхӑчӗ (Найроби)',
+        'Africa/Mogadishu' => 'Тухӑҫ Африка вӑхӑчӗ (Могадишо)',
+        'Africa/Monrovia' => 'Гринвич вӑхӑчӗ (Монрови)',
+        'Africa/Nairobi' => 'Тухӑҫ Африка вӑхӑчӗ (Найроби)',
         'Africa/Ndjamena' => 'Анӑҫ Африка вӑхӑчӗ (Нджамена)',
         'Africa/Niamey' => 'Анӑҫ Африка вӑхӑчӗ (Ниамей)',
-        'Africa/Nouakchott' => 'Гринвичпа вӑтам вӑхӑчӗ (Нуакшот)',
-        'Africa/Ouagadougou' => 'Гринвичпа вӑтам вӑхӑчӗ (Уагадугу)',
+        'Africa/Nouakchott' => 'Гринвич вӑхӑчӗ (Нуакшот)',
+        'Africa/Ouagadougou' => 'Гринвич вӑхӑчӗ (Уагадугу)',
         'Africa/Porto-Novo' => 'Анӑҫ Африка вӑхӑчӗ (Порто-Ново)',
-        'Africa/Sao_Tome' => 'Гринвичпа вӑтам вӑхӑчӗ (Сан-Томе Сан-Томе)',
-        'Africa/Tripoli' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Триполи)',
-        'Africa/Tunis' => 'Тӗп Европа вӑхӑчӗ (Тунис)',
-        'Africa/Windhoek' => 'Тӗп Африка вӑхӑчӗ (Виндхук)',
-        'America/Adak' => 'Гавайи Алеут вӑхӑчӗ (Адак)',
+        'Africa/Sao_Tome' => 'Гринвич вӑхӑчӗ (Сан-Томе)',
+        'Africa/Tripoli' => 'Тухӑҫ Европа вӑхӑчӗ (Триполи)',
+        'Africa/Tunis' => 'Вӑта Европа вӑхӑчӗ (Тунис)',
+        'Africa/Windhoek' => 'Вӑта Африка вӑхӑчӗ (Виндхук)',
+        'America/Adak' => 'Гавайи-Алеут вӑхӑчӗ (Адак)',
         'America/Anchorage' => 'Аляска вӑхӑчӗ (Анкоридж)',
         'America/Anguilla' => 'Атлантика вӑхӑчӗ (Ангилья)',
         'America/Antigua' => 'Атлантика вӑхӑчӗ (Антигуа)',
@@ -63,123 +64,133 @@
         'America/Argentina/Rio_Gallegos' => 'Аргентина вӑхӑчӗ (Рио-Гальегос)',
         'America/Argentina/Salta' => 'Аргентина вӑхӑчӗ (Сальта)',
         'America/Argentina/San_Juan' => 'Аргентина вӑхӑчӗ (Сан-Хуан)',
-        'America/Argentina/San_Luis' => 'Аргентина вӑхӑчӗ (Сан-Луис Сан-Луис)',
+        'America/Argentina/San_Luis' => 'Аргентина вӑхӑчӗ (Сан-Луис)',
         'America/Argentina/Tucuman' => 'Аргентина вӑхӑчӗ (Тукуман)',
         'America/Argentina/Ushuaia' => 'Аргентина вӑхӑчӗ (Ушуая)',
         'America/Aruba' => 'Атлантика вӑхӑчӗ (Аруба)',
         'America/Asuncion' => 'Парагвай вӑхӑчӗ (Асунсьон)',
         'America/Bahia' => 'Бразили вӑхӑчӗ (Баия)',
-        'America/Bahia_Banderas' => 'Тӗп Америка вӑхӑчӗ (Баия-де-Бандерас)',
+        'America/Bahia_Banderas' => 'Вӑта Америка вӑхӑчӗ (Баия-де-Бандерас)',
         'America/Barbados' => 'Атлантика вӑхӑчӗ (Барбадос)',
         'America/Belem' => 'Бразили вӑхӑчӗ (Белен)',
-        'America/Belize' => 'Тӗп Америка вӑхӑчӗ (Белиз)',
+        'America/Belize' => 'Вӑта Америка вӑхӑчӗ (Белиз)',
         'America/Blanc-Sablon' => 'Атлантика вӑхӑчӗ (Бланк-Саблон)',
         'America/Boa_Vista' => 'Амазонка вӑхӑчӗ (Боа-Виста)',
         'America/Bogota' => 'Колумби вӑхӑчӗ (Богота)',
-        'America/Boise' => 'Ту вӑхӑчӗ (Ҫурҫӗр Америка) (Бойсе)',
+        'America/Boise' => 'Ту вӑхӑчӗ (Бойсе)',
         'America/Buenos_Aires' => 'Аргентина вӑхӑчӗ (Буэнос-Айрес)',
-        'America/Cambridge_Bay' => 'Ту вӑхӑчӗ (Ҫурҫӗр Америка) (Кеймбридж-Бей)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина вӑхӑчӗ (Буэнос-Айрес)',
+        'America/Cambridge_Bay' => 'Ту вӑхӑчӗ (Кеймбридж-Бей)',
         'America/Campo_Grande' => 'Амазонка вӑхӑчӗ (Кампу-Гранди)',
-        'America/Cancun' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Канкун)',
+        'America/Cancun' => 'Тухӑҫ Америка вӑхӑчӗ (Канкун)',
         'America/Caracas' => 'Венесуэла вӑхӑчӗ (Каракас)',
         'America/Catamarca' => 'Аргентина вӑхӑчӗ (Катамарка)',
-        'America/Cayenne' => 'Франци Гвиана вӑхӑчӗ (Кайенна)',
-        'America/Cayman' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Кайман утравӗсем)',
-        'America/Chicago' => 'Тӗп Америка вӑхӑчӗ (Чикаго)',
-        'America/Chihuahua' => 'Тӗп Америка вӑхӑчӗ (Чиуауа)',
-        'America/Ciudad_Juarez' => 'Ту вӑхӑчӗ (Ҫурҫӗр Америка) (Ciudad Juárez)',
-        'America/Coral_Harbour' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Корал-Харбор)',
+        'America/Argentina/Catamarca' => 'Аргентина вӑхӑчӗ (Катамарка)',
+        'America/Cayenne' => 'Франци Гвианин вӑхӑчӗ (Кайенна)',
+        'America/Cayman' => 'Тухӑҫ Америка вӑхӑчӗ (Кайман утравӗсем)',
+        'America/Chicago' => 'Вӑта Америка вӑхӑчӗ (Чикаго)',
+        'America/Chihuahua' => 'Вӑта Америка вӑхӑчӗ (Чиуауа)',
+        'America/Ciudad_Juarez' => 'Ту вӑхӑчӗ (Сьюдад-Хуарес)',
+        'America/Coral_Harbour' => 'Тухӑҫ Америка вӑхӑчӗ (Корал-Харбор)',
+        'America/Atikokan' => 'Тухӑҫ Америка вӑхӑчӗ (Корал-Харбор)',
         'America/Cordoba' => 'Аргентина вӑхӑчӗ (Кордова)',
-        'America/Costa_Rica' => 'Тӗп Америка вӑхӑчӗ (Коста-Рика)',
-        'America/Creston' => 'Ту вӑхӑчӗ (Ҫурҫӗр Америка) (Крестон)',
+        'America/Argentina/Cordoba' => 'Аргентина вӑхӑчӗ (Кордова)',
+        'America/Costa_Rica' => 'Вӑта Америка вӑхӑчӗ (Коста-Рика)',
+        'America/Coyhaique' => 'Чили вӑхӑчӗ (Койхик)',
+        'America/Creston' => 'Ту вӑхӑчӗ (Крестон)',
         'America/Cuiaba' => 'Амазонка вӑхӑчӗ (Куяба)',
         'America/Curacao' => 'Атлантика вӑхӑчӗ (Кюрасао)',
-        'America/Danmarkshavn' => 'Гринвичпа вӑтам вӑхӑчӗ (Денмарксхавн)',
+        'America/Danmarkshavn' => 'Гринвич вӑхӑчӗ (Денмарксхавн)',
         'America/Dawson' => 'Юкон вӑхӑчӗ (Доусон)',
-        'America/Dawson_Creek' => 'Ту вӑхӑчӗ (Ҫурҫӗр Америка) (Доусон-Крик)',
-        'America/Denver' => 'Ту вӑхӑчӗ (Ҫурҫӗр Америка) (Денвер)',
-        'America/Detroit' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Детройт)',
+        'America/Dawson_Creek' => 'Ту вӑхӑчӗ (Доусон-Крик)',
+        'America/Denver' => 'Ту вӑхӑчӗ (Денвер)',
+        'America/Detroit' => 'Тухӑҫ Америка вӑхӑчӗ (Детройт)',
         'America/Dominica' => 'Атлантика вӑхӑчӗ (Доминика)',
-        'America/Edmonton' => 'Ту вӑхӑчӗ (Ҫурҫӗр Америка) (Эдмонтон)',
-        'America/Eirunepe' => 'Бразили (Эйрунепе)',
-        'America/El_Salvador' => 'Тӗп Америка вӑхӑчӗ (Сальвадор)',
-        'America/Fort_Nelson' => 'Ту вӑхӑчӗ (Ҫурҫӗр Америка) (Форт Нельсон)',
+        'America/Edmonton' => 'Ту вӑхӑчӗ (Эдмонтон)',
+        'America/Eirunepe' => 'Акри вӑхӑчӗ (Эйрунепе)',
+        'America/El_Salvador' => 'Вӑта Америка вӑхӑчӗ (Сальвадор)',
+        'America/Fort_Nelson' => 'Ту вӑхӑчӗ (Форт-Нельсон)',
         'America/Fortaleza' => 'Бразили вӑхӑчӗ (Форталеза)',
         'America/Glace_Bay' => 'Атлантика вӑхӑчӗ (Глейс-Бей)',
-        'America/Godthab' => 'Гренланди (Нуук)',
+        'America/Godthab' => 'Гренланди вӑхӑчӗ (Нуук)',
+        'America/Nuuk' => 'Гренланди вӑхӑчӗ (Нуук)',
         'America/Goose_Bay' => 'Атлантика вӑхӑчӗ (Гус-Бей)',
-        'America/Grand_Turk' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Гранд-Терк)',
+        'America/Grand_Turk' => 'Тухӑҫ Америка вӑхӑчӗ (Гранд-Терк)',
         'America/Grenada' => 'Атлантика вӑхӑчӗ (Гренада)',
         'America/Guadeloupe' => 'Атлантика вӑхӑчӗ (Гваделупа)',
-        'America/Guatemala' => 'Тӗп Америка вӑхӑчӗ (Гватемала)',
+        'America/Guatemala' => 'Вӑта Америка вӑхӑчӗ (Гватемала)',
         'America/Guayaquil' => 'Эквадор вӑхӑчӗ (Гуаякиль)',
         'America/Guyana' => 'Гайана вӑхӑчӗ',
         'America/Halifax' => 'Атлантика вӑхӑчӗ (Галифакс)',
         'America/Havana' => 'Куба вӑхӑчӗ (Гавана)',
         'America/Hermosillo' => 'Мексика Лӑпкӑ океан вӑхӑчӗ (Эрмосильо)',
-        'America/Indiana/Knox' => 'Тӗп Америка вӑхӑчӗ (Нокс, Индиана)',
-        'America/Indiana/Marengo' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Маренго, Индиана)',
-        'America/Indiana/Petersburg' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Питерсберг, Индиана)',
-        'America/Indiana/Tell_City' => 'Тӗп Америка вӑхӑчӗ (Телл-Сити, Индиана)',
-        'America/Indiana/Vevay' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Вевей, Индиана)',
-        'America/Indiana/Vincennes' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Винсеннес, Индиана)',
-        'America/Indiana/Winamac' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Уинамак, Индиана)',
-        'America/Indianapolis' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Индианаполис)',
-        'America/Inuvik' => 'Ту вӑхӑчӗ (Ҫурҫӗр Америка) (Инувик)',
-        'America/Iqaluit' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Икалуит)',
-        'America/Jamaica' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Ямайка)',
+        'America/Indiana/Knox' => 'Вӑта Америка вӑхӑчӗ (Нокс, Индиана)',
+        'America/Indiana/Marengo' => 'Тухӑҫ Америка вӑхӑчӗ (Маренго, Индиана)',
+        'America/Indiana/Petersburg' => 'Тухӑҫ Америка вӑхӑчӗ (Питерсберг, Индиана)',
+        'America/Indiana/Tell_City' => 'Вӑта Америка вӑхӑчӗ (Телл-Сити, Индиана)',
+        'America/Indiana/Vevay' => 'Тухӑҫ Америка вӑхӑчӗ (Вевей, Индиана)',
+        'America/Indiana/Vincennes' => 'Тухӑҫ Америка вӑхӑчӗ (Винсеннес, Индиана)',
+        'America/Indiana/Winamac' => 'Тухӑҫ Америка вӑхӑчӗ (Уинамак, Индиана)',
+        'America/Indianapolis' => 'Тухӑҫ Америка вӑхӑчӗ (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Тухӑҫ Америка вӑхӑчӗ (Индианаполис)',
+        'America/Inuvik' => 'Ту вӑхӑчӗ (Инувик)',
+        'America/Iqaluit' => 'Тухӑҫ Америка вӑхӑчӗ (Икалуит)',
+        'America/Jamaica' => 'Тухӑҫ Америка вӑхӑчӗ (Ямайка)',
         'America/Jujuy' => 'Аргентина вӑхӑчӗ (Жужуй)',
+        'America/Argentina/Jujuy' => 'Аргентина вӑхӑчӗ (Жужуй)',
         'America/Juneau' => 'Аляска вӑхӑчӗ (Джуно)',
-        'America/Kentucky/Monticello' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Монтиселло, Кентукки)',
+        'America/Kentucky/Monticello' => 'Тухӑҫ Америка вӑхӑчӗ (Монтиселло, Кентукки)',
         'America/Kralendijk' => 'Атлантика вӑхӑчӗ (Кралендейк)',
         'America/La_Paz' => 'Боливи вӑхӑчӗ (Ла-Пас)',
         'America/Lima' => 'Перу вӑхӑчӗ (Лима)',
         'America/Los_Angeles' => 'Лӑпкӑ океан вӑхӑчӗ (Лос-Анджелес)',
-        'America/Louisville' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Луисвилл)',
+        'America/Louisville' => 'Тухӑҫ Америка вӑхӑчӗ (Луисвилл)',
+        'America/Kentucky/Louisville' => 'Тухӑҫ Америка вӑхӑчӗ (Луисвилл)',
         'America/Lower_Princes' => 'Атлантика вӑхӑчӗ (Лоуэр-Принс-Куотер)',
         'America/Maceio' => 'Бразили вӑхӑчӗ (Масейо)',
-        'America/Managua' => 'Тӗп Америка вӑхӑчӗ (Манагуа)',
+        'America/Managua' => 'Вӑта Америка вӑхӑчӗ (Манагуа)',
         'America/Manaus' => 'Амазонка вӑхӑчӗ (Манаус)',
         'America/Marigot' => 'Атлантика вӑхӑчӗ (Мариго)',
         'America/Martinique' => 'Атлантика вӑхӑчӗ (Мартиника)',
-        'America/Matamoros' => 'Тӗп Америка вӑхӑчӗ (Матаморос)',
+        'America/Matamoros' => 'Вӑта Америка вӑхӑчӗ (Матаморос)',
         'America/Mazatlan' => 'Мексика Лӑпкӑ океан вӑхӑчӗ (Масатлан)',
         'America/Mendoza' => 'Аргентина вӑхӑчӗ (Мендоса)',
-        'America/Menominee' => 'Тӗп Америка вӑхӑчӗ (Меномини)',
-        'America/Merida' => 'Тӗп Америка вӑхӑчӗ (Мерида)',
+        'America/Argentina/Mendoza' => 'Аргентина вӑхӑчӗ (Мендоса)',
+        'America/Menominee' => 'Вӑта Америка вӑхӑчӗ (Меномини)',
+        'America/Merida' => 'Вӑта Америка вӑхӑчӗ (Мерида)',
         'America/Metlakatla' => 'Аляска вӑхӑчӗ (Метлакатла)',
-        'America/Mexico_City' => 'Тӗп Америка вӑхӑчӗ (Мехико)',
-        'America/Miquelon' => 'Сен-Пьер тата Микелон вӑхӑчӗ',
+        'America/Mexico_City' => 'Вӑта Америка вӑхӑчӗ (Мехико)',
+        'America/Miquelon' => 'Сен-Пьерпа Микелон вӑхӑчӗ',
         'America/Moncton' => 'Атлантика вӑхӑчӗ (Монктон)',
-        'America/Monterrey' => 'Тӗп Америка вӑхӑчӗ (Монтеррей)',
+        'America/Monterrey' => 'Вӑта Америка вӑхӑчӗ (Монтеррей)',
         'America/Montevideo' => 'Уругвай вӑхӑчӗ (Монтевидео)',
         'America/Montserrat' => 'Атлантика вӑхӑчӗ (Монтсеррат)',
-        'America/Nassau' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Нассау)',
-        'America/New_York' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Нью-Йорк)',
+        'America/Nassau' => 'Тухӑҫ Америка вӑхӑчӗ (Нассау)',
+        'America/New_York' => 'Тухӑҫ Америка вӑхӑчӗ (Нью-Йорк)',
         'America/Nome' => 'Аляска вӑхӑчӗ (Ном)',
         'America/Noronha' => 'Фернанду-ди-Норонья вӑхӑчӗ',
-        'America/North_Dakota/Beulah' => 'Тӗп Америка вӑхӑчӗ (Бойла, Ҫурҫӗр Дакота)',
-        'America/North_Dakota/Center' => 'Тӗп Америка вӑхӑчӗ (Центр, Ҫурҫӗр Дакота)',
-        'America/North_Dakota/New_Salem' => 'Тӗп Америка вӑхӑчӗ (Нью-Сейлем, Ҫурҫӗр Дакота)',
-        'America/Ojinaga' => 'Тӗп Америка вӑхӑчӗ (Охинага)',
-        'America/Panama' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Панама)',
+        'America/North_Dakota/Beulah' => 'Вӑта Америка вӑхӑчӗ (Бойла, Ҫур ҫӗр Дакота)',
+        'America/North_Dakota/Center' => 'Вӑта Америка вӑхӑчӗ (Сентер, Ҫурҫӗр Дакота)',
+        'America/North_Dakota/New_Salem' => 'Вӑта Америка вӑхӑчӗ (Нью-Сейлем, Ҫур ҫӗр Дакота)',
+        'America/Ojinaga' => 'Вӑта Америка вӑхӑчӗ (Охинага)',
+        'America/Panama' => 'Тухӑҫ Америка вӑхӑчӗ (Панама)',
         'America/Paramaribo' => 'Суринам вӑхӑчӗ (Парамарибо)',
-        'America/Phoenix' => 'Ту вӑхӑчӗ (Ҫурҫӗр Америка) (Финикс)',
-        'America/Port-au-Prince' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Порт-о-Пренс)',
+        'America/Phoenix' => 'Ту вӑхӑчӗ (Финикс)',
+        'America/Port-au-Prince' => 'Тухӑҫ Америка вӑхӑчӗ (Порт-о-Пренс)',
         'America/Port_of_Spain' => 'Атлантика вӑхӑчӗ (Порт-оф-Спейн)',
         'America/Porto_Velho' => 'Амазонка вӑхӑчӗ (Порту-Велью)',
         'America/Puerto_Rico' => 'Атлантика вӑхӑчӗ (Пуэрто-Рико)',
         'America/Punta_Arenas' => 'Чили вӑхӑчӗ (Пунта-Аренас)',
-        'America/Rankin_Inlet' => 'Тӗп Америка вӑхӑчӗ (Ранкин-Инлет)',
+        'America/Rankin_Inlet' => 'Вӑта Америка вӑхӑчӗ (Ранкин-Инлет)',
         'America/Recife' => 'Бразили вӑхӑчӗ (Ресифи)',
-        'America/Regina' => 'Тӗп Америка вӑхӑчӗ (Реджайна)',
-        'America/Resolute' => 'Тӗп Америка вӑхӑчӗ (Резольют)',
-        'America/Rio_Branco' => 'Бразили (Риу-Бранку)',
+        'America/Regina' => 'Вӑта Америка вӑхӑчӗ (Реджайна)',
+        'America/Resolute' => 'Вӑта Америка вӑхӑчӗ (Резольют)',
+        'America/Rio_Branco' => 'Акри вӑхӑчӗ (Риу-Бранку)',
         'America/Santarem' => 'Бразили вӑхӑчӗ (Сантарен)',
         'America/Santiago' => 'Чили вӑхӑчӗ (Сантьяго)',
         'America/Santo_Domingo' => 'Атлантика вӑхӑчӗ (Санто-Доминго)',
-        'America/Sao_Paulo' => 'Бразили вӑхӑчӗ (Сан-Паулу Сан-Паулу)',
-        'America/Scoresbysund' => 'Гренланди (Скорсбисунн)',
+        'America/Sao_Paulo' => 'Бразили вӑхӑчӗ (Сан-Паулу)',
+        'America/Scoresbysund' => 'Гренланди вӑхӑчӗ (Скорсбисунн)',
         'America/Sitka' => 'Аляска вӑхӑчӗ (Ситка)',
         'America/St_Barthelemy' => 'Атлантика вӑхӑчӗ (Сен-Бартелеми)',
         'America/St_Johns' => 'Ньюфаундленд вӑхӑчӗ (Сент-Джонс)',
@@ -187,104 +198,108 @@
         'America/St_Lucia' => 'Атлантика вӑхӑчӗ (Сент-Люсия)',
         'America/St_Thomas' => 'Атлантика вӑхӑчӗ (Сент-Томас)',
         'America/St_Vincent' => 'Атлантика вӑхӑчӗ (Сент-Винсент)',
-        'America/Swift_Current' => 'Тӗп Америка вӑхӑчӗ (Свифт-Керрент)',
-        'America/Tegucigalpa' => 'Тӗп Америка вӑхӑчӗ (Тегусигальпа)',
+        'America/Swift_Current' => 'Вӑта Америка вӑхӑчӗ (Свифт-Керрент)',
+        'America/Tegucigalpa' => 'Вӑта Америка вӑхӑчӗ (Тегусигальпа)',
         'America/Thule' => 'Атлантика вӑхӑчӗ (Туле)',
         'America/Tijuana' => 'Лӑпкӑ океан вӑхӑчӗ (Тихуана)',
-        'America/Toronto' => 'Хӗвелтухӑҫ Америка вӑхӑчӗ (Торонто)',
+        'America/Toronto' => 'Тухӑҫ Америка вӑхӑчӗ (Торонто)',
         'America/Tortola' => 'Атлантика вӑхӑчӗ (Тортола)',
         'America/Vancouver' => 'Лӑпкӑ океан вӑхӑчӗ (Ванкувер)',
         'America/Whitehorse' => 'Юкон вӑхӑчӗ (Уайтхорс)',
-        'America/Winnipeg' => 'Тӗп Америка вӑхӑчӗ (Виннипег)',
+        'America/Winnipeg' => 'Вӑта Америка вӑхӑчӗ (Виннипег)',
         'America/Yakutat' => 'Аляска вӑхӑчӗ (Якутат)',
         'Antarctica/Casey' => 'Анӑҫ Австрали вӑхӑчӗ (Кейси)',
         'Antarctica/Davis' => 'Дейвис вӑхӑчӗ',
-        'Antarctica/DumontDUrville' => 'Дюмон-д’Юрвиль вӑхӑчӗ (Дюмон-д’Юрвиль Дюмон-д’Юрвиль)',
-        'Antarctica/Macquarie' => 'Хӗвелтухӑҫ Австрали вӑхӑчӗ (Маккуори)',
+        'Antarctica/DumontDUrville' => 'Дюмон-д’Юрвиль вӑхӑчӗ',
+        'Antarctica/Macquarie' => 'Тухӑҫ Австрали вӑхӑчӗ (Маккуори)',
         'Antarctica/Mawson' => 'Моусон вӑхӑчӗ',
         'Antarctica/McMurdo' => 'Ҫӗнӗ Зеланди вӑхӑчӗ (Мак-Мердо)',
         'Antarctica/Palmer' => 'Чили вӑхӑчӗ (Палмер)',
         'Antarctica/Rothera' => 'Ротера вӑхӑчӗ',
         'Antarctica/Syowa' => 'Сёва вӑхӑчӗ',
-        'Antarctica/Troll' => 'Гринвичпа вӑтам вӑхӑчӗ (Тролль)',
+        'Antarctica/Troll' => 'Гринвич вӑхӑчӗ (Тролль)',
         'Antarctica/Vostok' => 'Восток вӑхӑчӗ',
-        'Arctic/Longyearbyen' => 'Тӗп Европа вӑхӑчӗ (Лонгйир)',
-        'Asia/Aden' => 'Арап вӑхӑчӗ (Аден)',
-        'Asia/Almaty' => 'Казахстан (Алматы)',
-        'Asia/Amman' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Амман)',
-        'Asia/Anadyr' => 'Раҫҫей (Анадырь)',
-        'Asia/Aqtau' => 'Казахстан (Актау)',
-        'Asia/Aqtobe' => 'Казахстан (Актобе)',
+        'Arctic/Longyearbyen' => 'Вӑта Европа вӑхӑчӗ (Лонгйир)',
+        'Asia/Aden' => 'Сауд Аравийӗ вӑхӑчӗ (Аден)',
+        'Asia/Almaty' => 'Казахстан вӑхӑчӗ (Алматы)',
+        'Asia/Amman' => 'Тухӑҫ Европа вӑхӑчӗ (Амман)',
+        'Asia/Anadyr' => 'Петропавловск-Камчатский вӑхӑчӗ (Анадырь)',
+        'Asia/Aqtau' => 'Казахстан вӑхӑчӗ (Актау)',
+        'Asia/Aqtobe' => 'Казахстан вӑхӑчӗ (Актобе)',
         'Asia/Ashgabat' => 'Туркменистан вӑхӑчӗ (Ашхабад)',
-        'Asia/Atyrau' => 'Казахстан (Атырау)',
-        'Asia/Baghdad' => 'Арап вӑхӑчӗ (Багдад)',
-        'Asia/Bahrain' => 'Арап вӑхӑчӗ (Бахрейн)',
+        'Asia/Atyrau' => 'Казахстан вӑхӑчӗ (Атырау)',
+        'Asia/Baghdad' => 'Сауд Аравийӗ вӑхӑчӗ (Багдад)',
+        'Asia/Bahrain' => 'Сауд Аравийӗ вӑхӑчӗ (Бахрейн)',
         'Asia/Baku' => 'Азербайджан вӑхӑчӗ (Баку)',
         'Asia/Bangkok' => 'Индокитай вӑхӑчӗ (Бангкок)',
-        'Asia/Barnaul' => 'Раҫҫей (Барнаул)',
-        'Asia/Beirut' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Бейрут)',
-        'Asia/Bishkek' => 'Киргизи вӑхӑчӗ (Бишкек)',
-        'Asia/Brunei' => 'Бруней-Даруссалам вӑхӑчӗ',
+        'Asia/Barnaul' => 'Красноярск вӑхӑчӗ (Барнаул)',
+        'Asia/Beirut' => 'Тухӑҫ Европа вӑхӑчӗ (Бейрут)',
+        'Asia/Bishkek' => 'Кӑркӑстан вӑхӑчӗ (Бишкек)',
+        'Asia/Brunei' => 'Бруней вӑхӑчӗ',
         'Asia/Calcutta' => 'Инди вӑхӑчӗ (Калькутта)',
+        'Asia/Kolkata' => 'Инди вӑхӑчӗ (Калькутта)',
         'Asia/Chita' => 'Якутск вӑхӑчӗ (Чита)',
         'Asia/Colombo' => 'Инди вӑхӑчӗ (Коломбо)',
-        'Asia/Damascus' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Дамаск)',
+        'Asia/Damascus' => 'Тухӑҫ Европа вӑхӑчӗ (Дамаск)',
         'Asia/Dhaka' => 'Бангладеш вӑхӑчӗ (Дакка)',
-        'Asia/Dili' => 'Хӗвелтухӑҫ Тимор вӑхӑчӗ (Дили)',
-        'Asia/Dubai' => 'Перси залив вӑхӑчӗ (Дубай)',
+        'Asia/Dili' => 'Тухӑҫ Тимор вӑхӑчӗ (Дили)',
+        'Asia/Dubai' => 'Перс кӳлмекӗн вӑхӑчӗ (Дубай)',
         'Asia/Dushanbe' => 'Таджикистан вӑхӑчӗ (Душанбе)',
-        'Asia/Famagusta' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Фамагуста)',
-        'Asia/Gaza' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Газа)',
-        'Asia/Hebron' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Хеврон)',
+        'Asia/Famagusta' => 'Тухӑҫ Европа вӑхӑчӗ (Фамагуста)',
+        'Asia/Gaza' => 'Тухӑҫ Европа вӑхӑчӗ (Газа)',
+        'Asia/Hebron' => 'Тухӑҫ Европа вӑхӑчӗ (Хеврон)',
         'Asia/Hong_Kong' => 'Гонконг вӑхӑчӗ',
         'Asia/Hovd' => 'Ховд вӑхӑчӗ',
         'Asia/Irkutsk' => 'Иркутск вӑхӑчӗ',
         'Asia/Jakarta' => 'Анӑҫ Индонези вӑхӑчӗ (Джакарта)',
-        'Asia/Jayapura' => 'Хӗвелтухӑҫ Индонези вӑхӑчӗ (Джаяпура)',
+        'Asia/Jayapura' => 'Тухӑҫ Индонези вӑхӑчӗ (Джаяпура)',
         'Asia/Jerusalem' => 'Израиль вӑхӑчӗ (Иерусалим)',
         'Asia/Kabul' => 'Афганистан вӑхӑчӗ (Кабул)',
-        'Asia/Kamchatka' => 'Раҫҫей (Петропавловск-Камчатски)',
+        'Asia/Kamchatka' => 'Петропавловск-Камчатский вӑхӑчӗ',
         'Asia/Karachi' => 'Пакистан вӑхӑчӗ (Карачи)',
         'Asia/Katmandu' => 'Непал вӑхӑчӗ (Катманду)',
+        'Asia/Kathmandu' => 'Непал вӑхӑчӗ (Катманду)',
         'Asia/Khandyga' => 'Якутск вӑхӑчӗ (Хандыга)',
         'Asia/Krasnoyarsk' => 'Красноярск вӑхӑчӗ',
         'Asia/Kuala_Lumpur' => 'Малайзи вӑхӑчӗ (Куала-Лумпур)',
         'Asia/Kuching' => 'Малайзи вӑхӑчӗ (Кучинг)',
-        'Asia/Kuwait' => 'Арап вӑхӑчӗ (Кувейт)',
+        'Asia/Kuwait' => 'Сауд Аравийӗ вӑхӑчӗ (Кувейт)',
         'Asia/Macau' => 'Китай вӑхӑчӗ (Макао)',
         'Asia/Magadan' => 'Магадан вӑхӑчӗ',
-        'Asia/Makassar' => 'Тӗп Индонези вӑхӑчӗ (Макасар)',
-        'Asia/Manila' => 'Филиппинсем вӑхӑчӗ (Манила)',
-        'Asia/Muscat' => 'Перси залив вӑхӑчӗ (Маскат)',
-        'Asia/Nicosia' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Никоси)',
+        'Asia/Makassar' => 'Вӑта Индонези вӑхӑчӗ (Макасар)',
+        'Asia/Manila' => 'Филиппин вӑхӑчӗ (Манила)',
+        'Asia/Muscat' => 'Перс кӳлмекӗн вӑхӑчӗ (Маскат)',
+        'Asia/Nicosia' => 'Тухӑҫ Европа вӑхӑчӗ (Никоси)',
         'Asia/Novokuznetsk' => 'Красноярск вӑхӑчӗ (Новокузнецк)',
-        'Asia/Novosibirsk' => 'Новосибирск вӑхӑчӗ',
+        'Asia/Novosibirsk' => 'Красноярск вӑхӑчӗ (Новосибирск)',
         'Asia/Omsk' => 'Омск вӑхӑчӗ',
-        'Asia/Oral' => 'Казахстан (Уральск)',
+        'Asia/Oral' => 'Казахстан вӑхӑчӗ (Уральск)',
         'Asia/Phnom_Penh' => 'Индокитай вӑхӑчӗ (Пномпень)',
         'Asia/Pontianak' => 'Анӑҫ Индонези вӑхӑчӗ (Понтианак)',
-        'Asia/Pyongyang' => 'Корей вӑхӑчӗ (Пхеньян)',
-        'Asia/Qatar' => 'Арап вӑхӑчӗ (Катар)',
-        'Asia/Qostanay' => 'Казахстан (Костанай)',
-        'Asia/Qyzylorda' => 'Казахстан (Кызылорда)',
+        'Asia/Pyongyang' => 'Корея вӑхӑчӗ (Пхеньян)',
+        'Asia/Qatar' => 'Сауд Аравийӗ вӑхӑчӗ (Катар)',
+        'Asia/Qostanay' => 'Казахстан вӑхӑчӗ (Костанай)',
+        'Asia/Qyzylorda' => 'Казахстан вӑхӑчӗ (Кызылорда)',
         'Asia/Rangoon' => 'Мьянма вӑхӑчӗ (Янгон)',
-        'Asia/Riyadh' => 'Арап вӑхӑчӗ (Эр-Рияд)',
+        'Asia/Yangon' => 'Мьянма вӑхӑчӗ (Янгон)',
+        'Asia/Riyadh' => 'Сауд Аравийӗ вӑхӑчӗ (Эр-Рияд)',
         'Asia/Saigon' => 'Индокитай вӑхӑчӗ (Хошимин)',
-        'Asia/Sakhalin' => 'Сахалин вӑхӑчӗ (Сахалин утравӗ)',
+        'Asia/Ho_Chi_Minh' => 'Индокитай вӑхӑчӗ (Хошимин)',
+        'Asia/Sakhalin' => 'Магадан вӑхӑчӗ (Сахалин)',
         'Asia/Samarkand' => 'Узбекистан вӑхӑчӗ (Самарканд)',
-        'Asia/Seoul' => 'Корей вӑхӑчӗ (Сеул)',
+        'Asia/Seoul' => 'Корея вӑхӑчӗ (Сеул)',
         'Asia/Shanghai' => 'Китай вӑхӑчӗ (Шанхай)',
         'Asia/Singapore' => 'Сингапур вӑхӑчӗ',
         'Asia/Srednekolymsk' => 'Магадан вӑхӑчӗ (Среднеколымск)',
-        'Asia/Taipei' => 'Тайпей вӑхӑчӗ (Тайбэй)',
+        'Asia/Taipei' => 'Тайвань вӑхӑчӗ (Тайбэй)',
         'Asia/Tashkent' => 'Узбекистан вӑхӑчӗ (Ташкент)',
         'Asia/Tbilisi' => 'Грузи вӑхӑчӗ (Тбилиси)',
         'Asia/Tehran' => 'Иран вӑхӑчӗ (Тегеран)',
         'Asia/Thimphu' => 'Бутан вӑхӑчӗ (Тхимпху)',
         'Asia/Tokyo' => 'Япони вӑхӑчӗ (Токио)',
-        'Asia/Tomsk' => 'Раҫҫей (Томск)',
+        'Asia/Tomsk' => 'Красноярск вӑхӑчӗ (Томск)',
         'Asia/Ulaanbaatar' => 'Улан-Батор вӑхӑчӗ',
-        'Asia/Urumqi' => 'Китай (Урумчи)',
+        'Asia/Urumqi' => 'Китай вӑхӑчӗ (Урумчи)',
         'Asia/Ust-Nera' => 'Владивосток вӑхӑчӗ (Усть-Нера)',
         'Asia/Vientiane' => 'Индокитай вӑхӑчӗ (Вьентьян)',
         'Asia/Vladivostok' => 'Владивосток вӑхӑчӗ',
@@ -292,112 +307,115 @@
         'Asia/Yekaterinburg' => 'Екатеринбург вӑхӑчӗ',
         'Asia/Yerevan' => 'Армени вӑхӑчӗ (Ереван)',
         'Atlantic/Azores' => 'Азор утравӗсен вӑхӑчӗ (Азор утравӗсем)',
-        'Atlantic/Bermuda' => 'Атлантика вӑхӑчӗ (Бермуд утравӗсем)',
+        'Atlantic/Bermuda' => 'Атлантика вӑхӑчӗ (Бермуда)',
         'Atlantic/Canary' => 'Анӑҫ Европа вӑхӑчӗ (Канар утравӗсем)',
         'Atlantic/Cape_Verde' => 'Кабо-Верде вӑхӑчӗ',
         'Atlantic/Faeroe' => 'Анӑҫ Европа вӑхӑчӗ (Фарер утравӗсем)',
+        'Atlantic/Faroe' => 'Анӑҫ Европа вӑхӑчӗ (Фарер утравӗсем)',
         'Atlantic/Madeira' => 'Анӑҫ Европа вӑхӑчӗ (Мадейра)',
-        'Atlantic/Reykjavik' => 'Гринвичпа вӑтам вӑхӑчӗ (Рейкьявик)',
+        'Atlantic/Reykjavik' => 'Гринвич вӑхӑчӗ (Рейкьявик)',
         'Atlantic/South_Georgia' => 'Кӑнтӑр Георги вӑхӑчӗ',
-        'Atlantic/St_Helena' => 'Гринвичпа вӑтам вӑхӑчӗ (Сӑваплӑ Елена утравӗ)',
+        'Atlantic/St_Helena' => 'Гринвич вӑхӑчӗ (Сӑваплӑ Елена утравӗ)',
         'Atlantic/Stanley' => 'Фолкленд утравӗсен вӑхӑчӗ (Стэнли)',
-        'Australia/Adelaide' => 'Тӗп Австрали вӑхӑчӗ (Аделаида)',
-        'Australia/Brisbane' => 'Хӗвелтухӑҫ Австрали вӑхӑчӗ (Брисбен)',
-        'Australia/Broken_Hill' => 'Тӗп Австрали вӑхӑчӗ (Брокен-Хилл)',
-        'Australia/Darwin' => 'Тӗп Австрали вӑхӑчӗ (Дарвин)',
-        'Australia/Eucla' => 'Тӗп Австрали анӑҫ вӑхӑчӗ (Юкла)',
-        'Australia/Hobart' => 'Хӗвелтухӑҫ Австрали вӑхӑчӗ (Хобарт)',
-        'Australia/Lindeman' => 'Хӗвелтухӑҫ Австрали вӑхӑчӗ (Линдеман)',
+        'Australia/Adelaide' => 'Вӑта Австрали вӑхӑчӗ (Аделаида)',
+        'Australia/Brisbane' => 'Тухӑҫ Австрали вӑхӑчӗ (Брисбен)',
+        'Australia/Broken_Hill' => 'Вӑта Австрали вӑхӑчӗ (Брокен-Хилл)',
+        'Australia/Darwin' => 'Вӑта Австрали вӑхӑчӗ (Дарвин)',
+        'Australia/Eucla' => 'Анӑҫ Вӑта Австрали вӑхӑчӗ (Юкла)',
+        'Australia/Hobart' => 'Тухӑҫ Австрали вӑхӑчӗ (Хобарт)',
+        'Australia/Lindeman' => 'Тухӑҫ Австрали вӑхӑчӗ (Линдеман)',
         'Australia/Lord_Howe' => 'Лорд-Хау вӑхӑчӗ',
-        'Australia/Melbourne' => 'Хӗвелтухӑҫ Австрали вӑхӑчӗ (Мельбурн)',
+        'Australia/Melbourne' => 'Тухӑҫ Австрали вӑхӑчӗ (Мельбурн)',
         'Australia/Perth' => 'Анӑҫ Австрали вӑхӑчӗ (Перт)',
-        'Australia/Sydney' => 'Хӗвелтухӑҫ Австрали вӑхӑчӗ (Сидней)',
-        'Etc/GMT' => 'Гринвичпа вӑтам вӑхӑчӗ',
-        'Etc/UTC' => 'Пӗтӗм тӗнчери координацилене вӑхӑчӗ',
-        'Europe/Amsterdam' => 'Тӗп Европа вӑхӑчӗ (Амстердам)',
-        'Europe/Andorra' => 'Тӗп Европа вӑхӑчӗ (Андорра)',
-        'Europe/Astrakhan' => 'Мускав вӑхӑчӗ (Астрахань)',
-        'Europe/Athens' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Афинсем)',
-        'Europe/Belgrade' => 'Тӗп Европа вӑхӑчӗ (Белград)',
-        'Europe/Berlin' => 'Тӗп Европа вӑхӑчӗ (Берлин)',
-        'Europe/Bratislava' => 'Тӗп Европа вӑхӑчӗ (Братислава)',
-        'Europe/Brussels' => 'Тӗп Европа вӑхӑчӗ (Брюссель)',
-        'Europe/Bucharest' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Бухарест)',
-        'Europe/Budapest' => 'Тӗп Европа вӑхӑчӗ (Будапешт)',
-        'Europe/Busingen' => 'Тӗп Европа вӑхӑчӗ (Бюзинген)',
-        'Europe/Chisinau' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Кишинев)',
-        'Europe/Copenhagen' => 'Тӗп Европа вӑхӑчӗ (Копенгаген)',
-        'Europe/Dublin' => 'Гринвичпа вӑтам вӑхӑчӗ (Дублин)',
-        'Europe/Gibraltar' => 'Тӗп Европа вӑхӑчӗ (Гибралтар)',
-        'Europe/Guernsey' => 'Гринвичпа вӑтам вӑхӑчӗ (Гернси)',
-        'Europe/Helsinki' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Хельсинки)',
-        'Europe/Isle_of_Man' => 'Гринвичпа вӑтам вӑхӑчӗ (Мэн утравӗ)',
-        'Europe/Istanbul' => 'Турци (Стамбул)',
-        'Europe/Jersey' => 'Гринвичпа вӑтам вӑхӑчӗ (Джерси)',
-        'Europe/Kaliningrad' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Калининград)',
-        'Europe/Kiev' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Киев)',
-        'Europe/Kirov' => 'Раҫҫей (Киров)',
+        'Australia/Sydney' => 'Тухӑҫ Австрали вӑхӑчӗ (Сидней)',
+        'Etc/GMT' => 'Гринвич вӑхӑчӗ',
+        'Etc/UTC' => 'Пӗтӗм тӗнчери килӗштернӗ вӑхӑт',
+        'Europe/Amsterdam' => 'Вӑта Европа вӑхӑчӗ (Амстердам)',
+        'Europe/Andorra' => 'Вӑта Европа вӑхӑчӗ (Андорра)',
+        'Europe/Astrakhan' => 'Самар вӑхӑчӗ (Аҫтӑрхан)',
+        'Europe/Athens' => 'Тухӑҫ Европа вӑхӑчӗ (Афина)',
+        'Europe/Belgrade' => 'Вӑта Европа вӑхӑчӗ (Белград)',
+        'Europe/Berlin' => 'Вӑта Европа вӑхӑчӗ (Берлин)',
+        'Europe/Bratislava' => 'Вӑта Европа вӑхӑчӗ (Братислава)',
+        'Europe/Brussels' => 'Вӑта Европа вӑхӑчӗ (Брюссель)',
+        'Europe/Bucharest' => 'Тухӑҫ Европа вӑхӑчӗ (Бухарест)',
+        'Europe/Budapest' => 'Вӑта Европа вӑхӑчӗ (Будапешт)',
+        'Europe/Busingen' => 'Вӑта Европа вӑхӑчӗ (Бюзинген)',
+        'Europe/Chisinau' => 'Тухӑҫ Европа вӑхӑчӗ (Кишинёв)',
+        'Europe/Copenhagen' => 'Вӑта Европа вӑхӑчӗ (Копенгаген)',
+        'Europe/Dublin' => 'Гринвич вӑхӑчӗ (Дублин)',
+        'Europe/Gibraltar' => 'Вӑта Европа вӑхӑчӗ (Гибралтар)',
+        'Europe/Guernsey' => 'Гринвич вӑхӑчӗ (Гернси)',
+        'Europe/Helsinki' => 'Тухӑҫ Европа вӑхӑчӗ (Хельсинки)',
+        'Europe/Isle_of_Man' => 'Гринвич вӑхӑчӗ (Мэн утравӗ)',
+        'Europe/Istanbul' => 'Турци вӑхӑчӗ (Стамбул)',
+        'Europe/Jersey' => 'Гринвич вӑхӑчӗ (Джерси)',
+        'Europe/Kaliningrad' => 'Тухӑҫ Европа вӑхӑчӗ (Калининград)',
+        'Europe/Kiev' => 'Тухӑҫ Европа вӑхӑчӗ (Кийӳ)',
+        'Europe/Kyiv' => 'Тухӑҫ Европа вӑхӑчӗ (Кийӳ)',
+        'Europe/Kirov' => 'Мускав вӑхӑчӗ (Киров)',
         'Europe/Lisbon' => 'Анӑҫ Европа вӑхӑчӗ (Лиссабон)',
-        'Europe/Ljubljana' => 'Тӗп Европа вӑхӑчӗ (Любляна)',
-        'Europe/London' => 'Гринвичпа вӑтам вӑхӑчӗ (Лондон)',
-        'Europe/Luxembourg' => 'Тӗп Европа вӑхӑчӗ (Люксембург)',
-        'Europe/Madrid' => 'Тӗп Европа вӑхӑчӗ (Мадрид)',
-        'Europe/Malta' => 'Тӗп Европа вӑхӑчӗ (Мальта)',
-        'Europe/Mariehamn' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Мариехамн)',
+        'Europe/Ljubljana' => 'Вӑта Европа вӑхӑчӗ (Любляна)',
+        'Europe/London' => 'Гринвич вӑхӑчӗ (Лондон)',
+        'Europe/Luxembourg' => 'Вӑта Европа вӑхӑчӗ (Люксембург)',
+        'Europe/Madrid' => 'Вӑта Европа вӑхӑчӗ (Мадрид)',
+        'Europe/Malta' => 'Вӑта Европа вӑхӑчӗ (Мальта)',
+        'Europe/Mariehamn' => 'Тухӑҫ Европа вӑхӑчӗ (Мариехамн)',
         'Europe/Minsk' => 'Мускав вӑхӑчӗ (Минск)',
-        'Europe/Monaco' => 'Тӗп Европа вӑхӑчӗ (Монако)',
+        'Europe/Monaco' => 'Вӑта Европа вӑхӑчӗ (Монако)',
         'Europe/Moscow' => 'Мускав вӑхӑчӗ',
-        'Europe/Oslo' => 'Тӗп Европа вӑхӑчӗ (Осло)',
-        'Europe/Paris' => 'Тӗп Европа вӑхӑчӗ (Париж)',
-        'Europe/Podgorica' => 'Тӗп Европа вӑхӑчӗ (Подгорица)',
-        'Europe/Prague' => 'Тӗп Европа вӑхӑчӗ (Прага)',
-        'Europe/Riga' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Рига)',
-        'Europe/Rome' => 'Тӗп Европа вӑхӑчӗ (Рим)',
-        'Europe/Samara' => 'Раҫҫей (Самара)',
-        'Europe/San_Marino' => 'Тӗп Европа вӑхӑчӗ (Сан-Марино)',
-        'Europe/Sarajevo' => 'Тӗп Европа вӑхӑчӗ (Сараево)',
-        'Europe/Saratov' => 'Мускав вӑхӑчӗ (Саратов)',
+        'Europe/Oslo' => 'Вӑта Европа вӑхӑчӗ (Осло)',
+        'Europe/Paris' => 'Вӑта Европа вӑхӑчӗ (Париж)',
+        'Europe/Podgorica' => 'Вӑта Европа вӑхӑчӗ (Подгорица)',
+        'Europe/Prague' => 'Вӑта Европа вӑхӑчӗ (Прага)',
+        'Europe/Riga' => 'Тухӑҫ Европа вӑхӑчӗ (Рига)',
+        'Europe/Rome' => 'Вӑта Европа вӑхӑчӗ (Рим)',
+        'Europe/Samara' => 'Самар вӑхӑчӗ',
+        'Europe/San_Marino' => 'Вӑта Европа вӑхӑчӗ (Сан-Марино)',
+        'Europe/Sarajevo' => 'Вӑта Европа вӑхӑчӗ (Сараево)',
+        'Europe/Saratov' => 'Самар вӑхӑчӗ (Сарӑту)',
         'Europe/Simferopol' => 'Мускав вӑхӑчӗ (Симферополь)',
-        'Europe/Skopje' => 'Тӗп Европа вӑхӑчӗ (Скопье)',
-        'Europe/Sofia' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Софи)',
-        'Europe/Stockholm' => 'Тӗп Европа вӑхӑчӗ (Стокгольм)',
-        'Europe/Tallinn' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Таллин)',
-        'Europe/Tirane' => 'Тӗп Европа вӑхӑчӗ (Тирана)',
-        'Europe/Ulyanovsk' => 'Мускав вӑхӑчӗ (Ульяновск)',
-        'Europe/Vaduz' => 'Тӗп Европа вӑхӑчӗ (Вадуц)',
-        'Europe/Vatican' => 'Тӗп Европа вӑхӑчӗ (Ватикан)',
-        'Europe/Vienna' => 'Тӗп Европа вӑхӑчӗ (Вена)',
-        'Europe/Vilnius' => 'Хӗвелтухӑҫ Европа вӑхӑчӗ (Вильнюс)',
-        'Europe/Volgograd' => 'Волгоград вӑхӑчӗ',
-        'Europe/Warsaw' => 'Тӗп Европа вӑхӑчӗ (Варшава)',
-        'Europe/Zagreb' => 'Тӗп Европа вӑхӑчӗ (Загреб)',
-        'Europe/Zurich' => 'Тӗп Европа вӑхӑчӗ (Цюрих)',
-        'Indian/Antananarivo' => 'Хӗвелтухӑҫ Африка вӑхӑчӗ (Антананариву)',
+        'Europe/Skopje' => 'Вӑта Европа вӑхӑчӗ (Скопье)',
+        'Europe/Sofia' => 'Тухӑҫ Европа вӑхӑчӗ (Софи)',
+        'Europe/Stockholm' => 'Вӑта Европа вӑхӑчӗ (Стокгольм)',
+        'Europe/Tallinn' => 'Тухӑҫ Европа вӑхӑчӗ (Таллин)',
+        'Europe/Tirane' => 'Вӑта Европа вӑхӑчӗ (Тирана)',
+        'Europe/Ulyanovsk' => 'Самар вӑхӑчӗ (Чӗмпӗр)',
+        'Europe/Vaduz' => 'Вӑта Европа вӑхӑчӗ (Вадуц)',
+        'Europe/Vatican' => 'Вӑта Европа вӑхӑчӗ (Ватикан)',
+        'Europe/Vienna' => 'Вӑта Европа вӑхӑчӗ (Вена)',
+        'Europe/Vilnius' => 'Тухӑҫ Европа вӑхӑчӗ (Вильнюс)',
+        'Europe/Volgograd' => 'Мускав вӑхӑчӗ (Волгоград)',
+        'Europe/Warsaw' => 'Вӑта Европа вӑхӑчӗ (Варшава)',
+        'Europe/Zagreb' => 'Вӑта Европа вӑхӑчӗ (Загреб)',
+        'Europe/Zurich' => 'Вӑта Европа вӑхӑчӗ (Цюрих)',
+        'Indian/Antananarivo' => 'Тухӑҫ Африка вӑхӑчӗ (Антананариву)',
         'Indian/Chagos' => 'Инди океанӗ вӑхӑчӗ (Чагос)',
-        'Indian/Christmas' => 'Раштав утравӗн вӑхӑчӗ',
+        'Indian/Christmas' => 'Раштав утравӗ вӑхӑчӗ',
         'Indian/Cocos' => 'Кокос утравӗсен вӑхӑчӗ (Кокос утравӗсем)',
-        'Indian/Comoro' => 'Хӗвелтухӑҫ Африка вӑхӑчӗ (Коморсем)',
+        'Indian/Comoro' => 'Тухӑҫ Африка вӑхӑчӗ (Комор утравӗсем)',
         'Indian/Kerguelen' => 'Франци Кӑнтӑрпа Антарктика территорийӗсен вӑхӑчӗ (Кергелен)',
         'Indian/Mahe' => 'Сейшел утравӗсен вӑхӑчӗ (Маэ)',
-        'Indian/Maldives' => 'Мальдивсем вӑхӑчӗ',
-        'Indian/Mauritius' => 'Маврикий вӑхӑчӗ',
-        'Indian/Mayotte' => 'Хӗвелтухӑҫ Африка вӑхӑчӗ (Майотта)',
+        'Indian/Maldives' => 'Мальдива вӑхӑчӗ',
+        'Indian/Mauritius' => 'Маврики вӑхӑчӗ',
+        'Indian/Mayotte' => 'Тухӑҫ Африка вӑхӑчӗ (Майотта)',
         'Indian/Reunion' => 'Реюньон вӑхӑчӗ',
         'Pacific/Apia' => 'Апиа вӑхӑчӗ',
         'Pacific/Auckland' => 'Ҫӗнӗ Зеланди вӑхӑчӗ (Окленд)',
-        'Pacific/Bougainville' => 'Папуа — Ҫӗнӗ Гвиней вӑхӑчӗ (Бугенвиль)',
+        'Pacific/Bougainville' => 'Папуа — Ҫӗнӗ Гвинея вӑхӑчӗ (Бугенвиль)',
         'Pacific/Chatham' => 'Чатем вӑхӑчӗ',
-        'Pacific/Easter' => 'Мӑнкун утравӗн вӑхӑчӗ',
+        'Pacific/Easter' => 'Мӑн кун утравӗн вӑхӑчӗ',
         'Pacific/Efate' => 'Вануату вӑхӑчӗ (Эфате)',
-        'Pacific/Enderbury' => 'Феникс вӑхӑчӗ (Enderbury)',
+        'Pacific/Enderbury' => 'Феникс утравӗсен вӑхӑчӗ (Кантон)',
+        'Pacific/Kanton' => 'Феникс утравӗсен вӑхӑчӗ (Кантон)',
         'Pacific/Fakaofo' => 'Токелау вӑхӑчӗ (Факаофо)',
         'Pacific/Fiji' => 'Фиджи вӑхӑчӗ',
         'Pacific/Funafuti' => 'Тувалу вӑхӑчӗ (Фунафути)',
-        'Pacific/Galapagos' => 'Галапагос утравӗсен вӑхӑчӗ (Галапагос утравӗсем)',
-        'Pacific/Gambier' => 'Гамбье вӑхӑчӗ (Гамбье утравӗсем)',
+        'Pacific/Galapagos' => 'Галапагос вӑхӑчӗ (Галапагос утравӗсем)',
+        'Pacific/Gambier' => 'Гамбье вӑхӑчӗ',
         'Pacific/Guadalcanal' => 'Соломон вӑхӑчӗ (Гуадалканал)',
         'Pacific/Guam' => 'Чаморро вӑхӑчӗ (Гуам)',
-        'Pacific/Honolulu' => 'Гавайи Алеут вӑхӑчӗ (Honolulu)',
+        'Pacific/Honolulu' => 'Гавайи-Алеут стандартлӑ вӑхӑчӗ (Honolulu)',
         'Pacific/Kiritimati' => 'Лайн утравӗсен вӑхӑчӗ (Киритимати)',
         'Pacific/Kosrae' => 'Косрае вӑхӑчӗ',
         'Pacific/Kwajalein' => 'Маршалл утравӗсен вӑхӑчӗ (Кваджалейн)',
@@ -412,15 +430,17 @@
         'Pacific/Palau' => 'Палау вӑхӑчӗ',
         'Pacific/Pitcairn' => 'Питкэрн вӑхӑчӗ',
         'Pacific/Ponape' => 'Понпеи вӑхӑчӗ',
-        'Pacific/Port_Moresby' => 'Папуа — Ҫӗнӗ Гвиней вӑхӑчӗ (Порт-Морсби)',
-        'Pacific/Rarotonga' => 'Кукӑн утравӗсен вӑхӑчӗ (Раротонга)',
+        'Pacific/Pohnpei' => 'Понпеи вӑхӑчӗ',
+        'Pacific/Port_Moresby' => 'Папуа — Ҫӗнӗ Гвинея вӑхӑчӗ (Порт-Морсби)',
+        'Pacific/Rarotonga' => 'Кук утравӗсен вӑхӑчӗ (Раротонга)',
         'Pacific/Saipan' => 'Чаморро вӑхӑчӗ (Сайпан)',
         'Pacific/Tahiti' => 'Таити вӑхӑчӗ',
-        'Pacific/Tarawa' => 'Гилбертӑн утравӗсен вӑхӑчӗ (Тарава)',
+        'Pacific/Tarawa' => 'Гилберт утравӗсен вӑхӑчӗ (Тарава)',
         'Pacific/Tongatapu' => 'Тонга вӑхӑчӗ (Тонгатапу)',
-        'Pacific/Truk' => 'Трук вӑхӑчӗ',
-        'Pacific/Wake' => 'Уэйк вӑхӑчӗ',
-        'Pacific/Wallis' => 'Уоллис тата Футуна вӑхӑчӗ',
+        'Pacific/Truk' => 'Чуук вӑхӑчӗ',
+        'Pacific/Chuuk' => 'Чуук вӑхӑчӗ',
+        'Pacific/Wake' => 'Уэйк утравӗ вӑхӑчӗ',
+        'Pacific/Wallis' => 'Уоллиспа Футуна вӑхӑчӗ',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/cy.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Amser Dwyrain Affrica (Addis Ababa)',
         'Africa/Algiers' => 'Amser Canolbarth Ewrop (Alger)',
         'Africa/Asmera' => 'Amser Dwyrain Affrica (Asmara)',
+        'Africa/Asmara' => 'Amser Dwyrain Affrica (Asmara)',
         'Africa/Bamako' => 'Amser Safonol Greenwich (Bamako)',
         'Africa/Bangui' => 'Amser Gorllewin Affrica (Bangui)',
         'Africa/Banjul' => 'Amser Safonol Greenwich (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Amser Dwyrain Affrica (Dar es Salaam)',
         'Africa/Djibouti' => 'Amser Dwyrain Affrica (Djibouti)',
         'Africa/Douala' => 'Amser Gorllewin Affrica (Douala)',
-        'Africa/El_Aaiun' => 'Amser Gorllewin Ewrop (El Aaiun)',
+        'Africa/El_Aaiun' => 'Amser Gorllewin Ewrop (El Aaiún)',
         'Africa/Freetown' => 'Amser Safonol Greenwich (Freetown)',
         'Africa/Gaborone' => 'Amser Canolbarth Affrica (Gaborone)',
         'Africa/Harare' => 'Amser Canolbarth Affrica (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Amser Gorllewin Affrica (Kinshasa)',
         'Africa/Lagos' => 'Amser Gorllewin Affrica (Lagos)',
         'Africa/Libreville' => 'Amser Gorllewin Affrica (Libreville)',
-        'Africa/Lome' => 'Amser Safonol Greenwich (Lome)',
+        'Africa/Lome' => 'Amser Safonol Greenwich (Lomé)',
         'Africa/Luanda' => 'Amser Gorllewin Affrica (Luanda)',
         'Africa/Lubumbashi' => 'Amser Canolbarth Affrica (Lubumbashi)',
         'Africa/Lusaka' => 'Amser Canolbarth Affrica (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Amser Dwyrain Affrica (Mogadishu)',
         'Africa/Monrovia' => 'Amser Safonol Greenwich (Monrovia)',
         'Africa/Nairobi' => 'Amser Dwyrain Affrica (Nairobi)',
-        'Africa/Ndjamena' => 'Amser Gorllewin Affrica (Ndjamena)',
+        'Africa/Ndjamena' => 'Amser Gorllewin Affrica (N’Djamena)',
         'Africa/Niamey' => 'Amser Gorllewin Affrica (Niamey)',
         'Africa/Nouakchott' => 'Amser Safonol Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'Amser Safonol Greenwich (Ouagadougou)',
@@ -58,9 +59,9 @@
         'America/Anchorage' => 'Amser Alaska (Anchorage)',
         'America/Anguilla' => 'Amser Cefnfor yr Iwerydd (Anguilla)',
         'America/Antigua' => 'Amser Cefnfor yr Iwerydd (Antigua)',
-        'America/Araguaina' => 'Amser Brasília (Araguaina)',
+        'America/Araguaina' => 'Amser Brasília (Araguaína)',
         'America/Argentina/La_Rioja' => 'Amser yr Ariannin (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Amser yr Ariannin (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Amser yr Ariannin (Río Gallegos)',
         'America/Argentina/Salta' => 'Amser yr Ariannin (Salta)',
         'America/Argentina/San_Juan' => 'Amser yr Ariannin (San Juan)',
         'America/Argentina/San_Luis' => 'Amser yr Ariannin (San Luis)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Amser Colombia (Bogotá)',
         'America/Boise' => 'Amser Mynyddoedd Gogledd America (Boise)',
         'America/Buenos_Aires' => 'Amser yr Ariannin (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Amser yr Ariannin (Buenos Aires)',
         'America/Cambridge_Bay' => 'Amser Mynyddoedd Gogledd America (Bae Cambridge)',
         'America/Campo_Grande' => 'Amser Amazonas (Campo Grande)',
         'America/Cancun' => 'Amser Dwyrain Gogledd America (Cancún)',
         'America/Caracas' => 'Amser Venezuela (Caracas)',
         'America/Catamarca' => 'Amser yr Ariannin (Catamarca)',
+        'America/Argentina/Catamarca' => 'Amser yr Ariannin (Catamarca)',
         'America/Cayenne' => 'Amser Guyane Ffrengig (Cayenne)',
         'America/Cayman' => 'Amser Dwyrain Gogledd America (Cayman)',
         'America/Chicago' => 'Amser Canolbarth Gogledd America (Chicago)',
         'America/Chihuahua' => 'Amser Canolbarth Gogledd America (Chihuahua)',
         'America/Ciudad_Juarez' => 'Amser Mynyddoedd Gogledd America (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Amser Dwyrain Gogledd America (Atikokan)',
-        'America/Cordoba' => 'Amser yr Ariannin (Cordoba)',
+        'America/Atikokan' => 'Amser Dwyrain Gogledd America (Atikokan)',
+        'America/Cordoba' => 'Amser yr Ariannin (Córdoba)',
+        'America/Argentina/Cordoba' => 'Amser yr Ariannin (Córdoba)',
         'America/Costa_Rica' => 'Amser Canolbarth Gogledd America (Costa Rica)',
+        'America/Coyhaique' => 'Amser Chile (Coyhaique)',
         'America/Creston' => 'Amser Mynyddoedd Gogledd America (Creston)',
         'America/Cuiaba' => 'Amser Amazonas (Cuiabá)',
         'America/Curacao' => 'Amser Cefnfor yr Iwerydd (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Amser Brasília (Fortaleza)',
         'America/Glace_Bay' => 'Amser Cefnfor yr Iwerydd (Glace Bay)',
         'America/Godthab' => 'Amser Yr Ynys Las (Nuuk)',
+        'America/Nuuk' => 'Amser Yr Ynys Las (Nuuk)',
         'America/Goose_Bay' => 'Amser Cefnfor yr Iwerydd (Goose Bay)',
         'America/Grand_Turk' => 'Amser Dwyrain Gogledd America (Grand Turk)',
         'America/Grenada' => 'Amser Cefnfor yr Iwerydd (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Amser Dwyrain Gogledd America (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Amser Dwyrain Gogledd America (Winamac, Indiana)',
         'America/Indianapolis' => 'Amser Dwyrain Gogledd America (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Amser Dwyrain Gogledd America (Indianapolis)',
         'America/Inuvik' => 'Amser Mynyddoedd Gogledd America (Inuvik)',
         'America/Iqaluit' => 'Amser Dwyrain Gogledd America (Iqaluit)',
         'America/Jamaica' => 'Amser Dwyrain Gogledd America (Jamaica)',
         'America/Jujuy' => 'Amser yr Ariannin (Jujuy)',
+        'America/Argentina/Jujuy' => 'Amser yr Ariannin (Jujuy)',
         'America/Juneau' => 'Amser Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Amser Dwyrain Gogledd America (Monticello, Kentucky)',
         'America/Kralendijk' => 'Amser Cefnfor yr Iwerydd (Kralendijk)',
@@ -136,15 +145,17 @@
         'America/Lima' => 'Amser Periw (Lima)',
         'America/Los_Angeles' => 'Amser Cefnfor Tawel Gogledd America (Los Angeles)',
         'America/Louisville' => 'Amser Dwyrain Gogledd America (Louisville)',
+        'America/Kentucky/Louisville' => 'Amser Dwyrain Gogledd America (Louisville)',
         'America/Lower_Princes' => 'Amser Cefnfor yr Iwerydd (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Amser Brasília (Maceio)',
+        'America/Maceio' => 'Amser Brasília (Maceió)',
         'America/Managua' => 'Amser Canolbarth Gogledd America (Managua)',
         'America/Manaus' => 'Amser Amazonas (Manaus)',
         'America/Marigot' => 'Amser Cefnfor yr Iwerydd (Marigot)',
         'America/Martinique' => 'Amser Cefnfor yr Iwerydd (Martinique)',
         'America/Matamoros' => 'Amser Canolbarth Gogledd America (Matamoros)',
-        'America/Mazatlan' => 'Amser Pasiffig Mecsico (Mazatlan)',
+        'America/Mazatlan' => 'Amser Pasiffig Mecsico (Mazatlán)',
         'America/Mendoza' => 'Amser yr Ariannin (Mendoza)',
+        'America/Argentina/Mendoza' => 'Amser yr Ariannin (Mendoza)',
         'America/Menominee' => 'Amser Canolbarth Gogledd America (Menominee)',
         'America/Merida' => 'Amser Canolbarth Gogledd America (Merida)',
         'America/Metlakatla' => 'Amser Alaska (Metlakatla)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Amser Canolbarth Gogledd America (Regina)',
         'America/Resolute' => 'Amser Canolbarth Gogledd America (Resolute)',
         'America/Rio_Branco' => 'Amser Brasil (Rio Branco)',
-        'America/Santarem' => 'Amser Brasília (Santarem)',
+        'America/Santarem' => 'Amser Brasília (Santarém)',
         'America/Santiago' => 'Amser Chile (Santiago)',
         'America/Santo_Domingo' => 'Amser Cefnfor yr Iwerydd (Santo Domingo)',
-        'America/Sao_Paulo' => 'Amser Brasília (Sao Paulo)',
+        'America/Sao_Paulo' => 'Amser Brasília (São Paulo)',
         'America/Scoresbysund' => 'Amser Yr Ynys Las (Ittoqqortoormiit)',
         'America/Sitka' => 'Amser Alaska (Sitka)',
         'America/St_Barthelemy' => 'Amser Cefnfor yr Iwerydd (St. Barthélemy)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Amser Seland Newydd (McMurdo)',
         'Antarctica/Palmer' => 'Amser Chile (Palmer)',
         'Antarctica/Rothera' => 'Amser Rothera',
-        'Antarctica/Syowa' => 'Amser Syowa',
+        'Antarctica/Syowa' => 'Amser Syowa (Showa)',
         'Antarctica/Troll' => 'Amser Safonol Greenwich (Troll)',
         'Antarctica/Vostok' => 'Amser Vostok',
         'Arctic/Longyearbyen' => 'Amser Canolbarth Ewrop (Longyearbyen)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Amser Arabaidd (Bahrain)',
         'Asia/Baku' => 'Amser Aserbaijan (Baku)',
         'Asia/Bangkok' => 'Amser Indo-Tsieina (Bangkok)',
-        'Asia/Barnaul' => 'Amser Rwsia (Barnaul)',
+        'Asia/Barnaul' => 'Amser Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Amser Dwyrain Ewrop (Beirut)',
         'Asia/Bishkek' => 'Amser Kyrgyzstan (Bishkek)',
         'Asia/Brunei' => 'Amser Brunei Darussalam',
         'Asia/Calcutta' => 'Amser India (Kolkata)',
+        'Asia/Kolkata' => 'Amser India (Kolkata)',
         'Asia/Chita' => 'Amser Yakutsk (Chita)',
         'Asia/Colombo' => 'Amser India (Colombo)',
         'Asia/Damascus' => 'Amser Dwyrain Ewrop (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Amser Dwyrain Ewrop (Gasa)',
         'Asia/Hebron' => 'Amser Dwyrain Ewrop (Hebron)',
         'Asia/Hong_Kong' => 'Amser Hong Kong',
-        'Asia/Hovd' => 'Amser Hovd',
+        'Asia/Hovd' => 'Amser Hovd (Khovd)',
         'Asia/Irkutsk' => 'Amser Irkutsk',
         'Asia/Jakarta' => 'Amser Gorllewin Indonesia (Jakarta)',
         'Asia/Jayapura' => 'Amser Dwyrain Indonesia (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Amser Rwsia (Kamchatka)',
         'Asia/Karachi' => 'Amser Pakistan (Karachi)',
         'Asia/Katmandu' => 'Amser Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Amser Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Amser Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Amser Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Amser Malaysia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Amser Safonol y Gwlff (Muscat)',
         'Asia/Nicosia' => 'Amser Dwyrain Ewrop (Nicosia)',
         'Asia/Novokuznetsk' => 'Amser Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Amser Novosibirsk',
+        'Asia/Novosibirsk' => 'Amser Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Amser Omsk',
         'Asia/Oral' => 'Amser Kazakhstan (Oral)',
         'Asia/Phnom_Penh' => 'Amser Indo-Tsieina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Amser Kazakhstan (Kostanay)',
         'Asia/Qyzylorda' => 'Amser Kazakhstan (Qyzylorda)',
         'Asia/Rangoon' => 'Amser Myanmar (Yangon)',
+        'Asia/Yangon' => 'Amser Myanmar (Yangon)',
         'Asia/Riyadh' => 'Amser Arabaidd (Riyadh)',
         'Asia/Saigon' => 'Amser Indo-Tsieina (Dinas Hô Chi Minh)',
-        'Asia/Sakhalin' => 'Amser Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Amser Indo-Tsieina (Dinas Hô Chi Minh)',
+        'Asia/Sakhalin' => 'Amser Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Amser Uzbekistan (Samarkand)',
         'Asia/Seoul' => 'Amser Corea (Seoul)',
         'Asia/Shanghai' => 'Amser Tsieina (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Amser Iran (Tehran)',
         'Asia/Thimphu' => 'Amser Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Amser Japan (Tokyo)',
-        'Asia/Tomsk' => 'Amser Rwsia (Tomsk)',
+        'Asia/Tomsk' => 'Amser Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Amser Ulan Bator',
-        'Asia/Urumqi' => 'Amser Tsieina (Urumqi)',
+        'Asia/Urumqi' => 'Amser Tsieina (Ürümqi)',
         'Asia/Ust-Nera' => 'Amser Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Amser Indo-Tsieina (Vientiane)',
         'Asia/Vladivostok' => 'Amser Vladivostok',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Amser Gorllewin Ewrop (Yr Ynysoedd Dedwydd)',
         'Atlantic/Cape_Verde' => 'Amser Cabo Verde (Cape Verde)',
         'Atlantic/Faeroe' => 'Amser Gorllewin Ewrop (Ffaro)',
+        'Atlantic/Faroe' => 'Amser Gorllewin Ewrop (Ffaro)',
         'Atlantic/Madeira' => 'Amser Gorllewin Ewrop (Madeira)',
         'Atlantic/Reykjavik' => 'Amser Safonol Greenwich (Reykjavík)',
         'Atlantic/South_Georgia' => 'Amser De Georgia',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Amser Cyffredniol Cydlynol',
         'Europe/Amsterdam' => 'Amser Canolbarth Ewrop (Amsterdam)',
         'Europe/Andorra' => 'Amser Canolbarth Ewrop (Andorra)',
-        'Europe/Astrakhan' => 'Amser Moscfa (Astrakhan)',
+        'Europe/Astrakhan' => 'Amser Samara (Astrakhan)',
         'Europe/Athens' => 'Amser Dwyrain Ewrop (Athens)',
         'Europe/Belgrade' => 'Amser Canolbarth Ewrop (Belgrade)',
         'Europe/Berlin' => 'Amser Canolbarth Ewrop (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Amser Canolbarth Ewrop (Brwsel)',
         'Europe/Bucharest' => 'Amser Dwyrain Ewrop (Bwcarést)',
         'Europe/Budapest' => 'Amser Canolbarth Ewrop (Budapest)',
-        'Europe/Busingen' => 'Amser Canolbarth Ewrop (Busingen)',
-        'Europe/Chisinau' => 'Amser Dwyrain Ewrop (Chisinau)',
+        'Europe/Busingen' => 'Amser Canolbarth Ewrop (Büsingen)',
+        'Europe/Chisinau' => 'Amser Dwyrain Ewrop (Chișinău)',
         'Europe/Copenhagen' => 'Amser Canolbarth Ewrop (Copenhagen)',
         'Europe/Dublin' => 'Amser Safonol Greenwich (Dulyn)',
         'Europe/Gibraltar' => 'Amser Canolbarth Ewrop (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Amser Safonol Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Amser Dwyrain Ewrop (Kaliningrad)',
         'Europe/Kiev' => 'Amser Dwyrain Ewrop (Kiev)',
-        'Europe/Kirov' => 'Amser Rwsia (Kirov)',
+        'Europe/Kyiv' => 'Amser Dwyrain Ewrop (Kiev)',
+        'Europe/Kirov' => 'Amser Moscfa (Kirov)',
         'Europe/Lisbon' => 'Amser Gorllewin Ewrop (Lisbon)',
         'Europe/Ljubljana' => 'Amser Canolbarth Ewrop (Ljubljana)',
         'Europe/London' => 'Amser Safonol Greenwich (Llundain)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Amser Samara',
         'Europe/San_Marino' => 'Amser Canolbarth Ewrop (San Marino)',
         'Europe/Sarajevo' => 'Amser Canolbarth Ewrop (Sarajevo)',
-        'Europe/Saratov' => 'Amser Moscfa (Saratov)',
+        'Europe/Saratov' => 'Amser Samara (Saratov)',
         'Europe/Simferopol' => 'Amser Moscfa (Simferopol)',
         'Europe/Skopje' => 'Amser Canolbarth Ewrop (Skopje)',
         'Europe/Sofia' => 'Amser Dwyrain Ewrop (Sofia)',
         'Europe/Stockholm' => 'Amser Canolbarth Ewrop (Stockholm)',
         'Europe/Tallinn' => 'Amser Dwyrain Ewrop (Tallinn)',
-        'Europe/Tirane' => 'Amser Canolbarth Ewrop (Tirane)',
-        'Europe/Ulyanovsk' => 'Amser Moscfa (Ulyanovsk)',
+        'Europe/Tirane' => 'Amser Canolbarth Ewrop (Tirana)',
+        'Europe/Ulyanovsk' => 'Amser Samara (Ulyanovsk)',
         'Europe/Vaduz' => 'Amser Canolbarth Ewrop (Vaduz)',
         'Europe/Vatican' => 'Amser Canolbarth Ewrop (Y Fatican)',
         'Europe/Vienna' => 'Amser Canolbarth Ewrop (Fienna)',
         'Europe/Vilnius' => 'Amser Dwyrain Ewrop (Vilnius)',
-        'Europe/Volgograd' => 'Amser Volgograd',
+        'Europe/Volgograd' => 'Amser Moscfa (Volgograd)',
         'Europe/Warsaw' => 'Amser Canolbarth Ewrop (Warsaw)',
         'Europe/Zagreb' => 'Amser Canolbarth Ewrop (Zagreb)',
         'Europe/Zurich' => 'Amser Canolbarth Ewrop (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Amser Cefnfor India (Chagos)',
         'Indian/Christmas' => 'Amser Ynys Y Nadolig',
         'Indian/Cocos' => 'Amser Ynysoedd Cocos',
-        'Indian/Comoro' => 'Amser Dwyrain Affrica (Comoro)',
+        'Indian/Comoro' => 'Amser Dwyrain Affrica (Comores)',
         'Indian/Kerguelen' => 'Amser Tiroedd Ffrainc yn y De a’r Antarctig (Kerguelen)',
-        'Indian/Mahe' => 'Amser Seychelles (Mahe)',
+        'Indian/Mahe' => 'Amser Seychelles (Mahé)',
         'Indian/Maldives' => 'Amser Y Maldives',
         'Indian/Mauritius' => 'Amser Mauritius',
         'Indian/Mayotte' => 'Amser Dwyrain Affrica (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Amser Chatham',
         'Pacific/Easter' => 'Amser Ynys y Pasg',
         'Pacific/Efate' => 'Amser Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Amser Ynysoedd Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Amser Ynysoedd Phoenix (Canton)',
+        'Pacific/Kanton' => 'Amser Ynysoedd Phoenix (Canton)',
         'Pacific/Fakaofo' => 'Amser Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Amser Fiji',
         'Pacific/Funafuti' => 'Amser Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Amser Galapagos',
+        'Pacific/Galapagos' => 'Amser Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Amser Gambier',
         'Pacific/Guadalcanal' => 'Amser Ynysoedd Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Amser Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Amser Hawaii-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Amser Safonol Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Amser Ynysoedd Line (Kiritimati)',
         'Pacific/Kosrae' => 'Amser Kosrae',
         'Pacific/Kwajalein' => 'Amser Ynysoedd Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Amser Nauru',
         'Pacific/Niue' => 'Amser Niue',
         'Pacific/Norfolk' => 'Amser Ynys Norfolk',
-        'Pacific/Noumea' => 'Amser Caledonia Newydd (Noumea)',
+        'Pacific/Noumea' => 'Amser Caledonia Newydd (Nouméa)',
         'Pacific/Pago_Pago' => 'Amser Samoa (Pago Pago)',
         'Pacific/Palau' => 'Amser Palau',
         'Pacific/Pitcairn' => 'Amser Pitcairn',
         'Pacific/Ponape' => 'Amser Pohnpei',
+        'Pacific/Pohnpei' => 'Amser Pohnpei',
         'Pacific/Port_Moresby' => 'Amser Papua Guinea Newydd (Port Moresby)',
         'Pacific/Rarotonga' => 'Amser Ynysoedd Cook (Rarotonga)',
         'Pacific/Saipan' => 'Amser Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Amser Ynysoedd Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Amser Tonga (Tongatapu)',
         'Pacific/Truk' => 'Amser Chuuk',
+        'Pacific/Chuuk' => 'Amser Chuuk',
         'Pacific/Wake' => 'Amser Ynys Wake',
-        'Pacific/Wallis' => 'Amser Wallis a Futuna',
+        'Pacific/Wallis' => 'Amser Wallis a Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/da.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/da.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/da.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/da.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Østafrikansk tid (Addis Abeba)',
         'Africa/Algiers' => 'Centraleuropæisk tid (Algier)',
         'Africa/Asmera' => 'Østafrikansk tid (Asmara)',
+        'Africa/Asmara' => 'Østafrikansk tid (Asmara)',
         'Africa/Bamako' => 'GMT (Bamako)',
         'Africa/Bangui' => 'Vestafrikansk tid (Bangui)',
         'Africa/Banjul' => 'GMT (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Østafrikansk tid (Dar es Salaam)',
         'Africa/Djibouti' => 'Østafrikansk tid (Djibouti)',
         'Africa/Douala' => 'Vestafrikansk tid (Douala)',
-        'Africa/El_Aaiun' => 'Vesteuropæisk tid (El Aaiun)',
+        'Africa/El_Aaiun' => 'Vesteuropæisk tid (El Aaiún)',
         'Africa/Freetown' => 'GMT (Freetown)',
         'Africa/Gaborone' => 'Centralafrikansk tid (Gaborone)',
         'Africa/Harare' => 'Centralafrikansk tid (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Vestafrikansk tid (Kinshasa)',
         'Africa/Lagos' => 'Vestafrikansk tid (Lagos)',
         'Africa/Libreville' => 'Vestafrikansk tid (Libreville)',
-        'Africa/Lome' => 'GMT (Lome)',
+        'Africa/Lome' => 'GMT (Lomé)',
         'Africa/Luanda' => 'Vestafrikansk tid (Luanda)',
         'Africa/Lubumbashi' => 'Centralafrikansk tid (Lubumbashi)',
         'Africa/Lusaka' => 'Centralafrikansk tid (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Østafrikansk tid (Mogadishu)',
         'Africa/Monrovia' => 'GMT (Monrovia)',
         'Africa/Nairobi' => 'Østafrikansk tid (Nairobi)',
-        'Africa/Ndjamena' => 'Vestafrikansk tid (Ndjamena)',
+        'Africa/Ndjamena' => 'Vestafrikansk tid (N’Djamena)',
         'Africa/Niamey' => 'Vestafrikansk tid (Niamey)',
         'Africa/Nouakchott' => 'GMT (Nouakchott)',
         'Africa/Ouagadougou' => 'GMT (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Alaska-tid (Anchorage)',
         'America/Anguilla' => 'Atlantic-tid (Anguilla)',
         'America/Antigua' => 'Atlantic-tid (Antigua)',
-        'America/Araguaina' => 'Brasiliansk tid (Araguaina)',
+        'America/Araguaina' => 'Brasiliansk tid (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentisk tid (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentisk tid (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentisk tid (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentisk tid (Salta)',
         'America/Argentina/San_Juan' => 'Argentisk tid (San Juan)',
         'America/Argentina/San_Luis' => 'Argentisk tid (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentisk tid (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentisk tid (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentisk tid (Ushuaia)',
         'America/Aruba' => 'Atlantic-tid (Aruba)',
         'America/Asuncion' => 'Paraguayansk tid (Asunción)',
         'America/Bahia' => 'Brasiliansk tid (Bahia)',
         'America/Bahia_Banderas' => 'Central-tid (Bahia Banderas)',
         'America/Barbados' => 'Atlantic-tid (Barbados)',
-        'America/Belem' => 'Brasiliansk tid (Belem)',
+        'America/Belem' => 'Brasiliansk tid (Belém)',
         'America/Belize' => 'Central-tid (Belize)',
         'America/Blanc-Sablon' => 'Atlantic-tid (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazonas-tid (Boa Vista)',
-        'America/Bogota' => 'Colombiansk tid (Bogota)',
+        'America/Bogota' => 'Colombiansk tid (Bogotá)',
         'America/Boise' => 'Mountain-tid (Boise)',
         'America/Buenos_Aires' => 'Argentisk tid (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentisk tid (Buenos Aires)',
         'America/Cambridge_Bay' => 'Mountain-tid (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazonas-tid (Campo Grande)',
         'America/Cancun' => 'Eastern-tid (Cancun)',
         'America/Caracas' => 'Venezuelansk tid (Caracas)',
         'America/Catamarca' => 'Argentisk tid (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentisk tid (Catamarca)',
         'America/Cayenne' => 'Fransk Guyana-tid (Cayenne)',
         'America/Cayman' => 'Eastern-tid (Caymanøerne)',
         'America/Chicago' => 'Central-tid (Chicago)',
         'America/Chihuahua' => 'Central-tid (Chihuahua)',
         'America/Ciudad_Juarez' => 'Mountain-tid (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Eastern-tid (Atikokan)',
-        'America/Cordoba' => 'Argentisk tid (Cordoba)',
+        'America/Atikokan' => 'Eastern-tid (Atikokan)',
+        'America/Cordoba' => 'Argentisk tid (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentisk tid (Córdoba)',
         'America/Costa_Rica' => 'Central-tid (Costa Rica)',
+        'America/Coyhaique' => 'Chilensk tid (Coyhaique)',
         'America/Creston' => 'Mountain-tid (Creston)',
-        'America/Cuiaba' => 'Amazonas-tid (Cuiaba)',
+        'America/Cuiaba' => 'Amazonas-tid (Cuiabá)',
         'America/Curacao' => 'Atlantic-tid (Curaçao)',
         'America/Danmarkshavn' => 'GMT (Danmarkshavn)',
         'America/Dawson' => 'Yukon-tid (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Eastern-tid (Detroit)',
         'America/Dominica' => 'Atlantic-tid (Dominica)',
         'America/Edmonton' => 'Mountain-tid (Edmonton)',
-        'America/Eirunepe' => 'Acre-tid (Eirunepe)',
+        'America/Eirunepe' => 'Acre-tid (Eirunepé)',
         'America/El_Salvador' => 'Central-tid (El Salvador)',
         'America/Fort_Nelson' => 'Mountain-tid (Fort Nelson)',
         'America/Fortaleza' => 'Brasiliansk tid (Fortaleza)',
         'America/Glace_Bay' => 'Atlantic-tid (Glace Bay)',
         'America/Godthab' => 'Grønland-tid (Nuuk)',
+        'America/Nuuk' => 'Grønland-tid (Nuuk)',
         'America/Goose_Bay' => 'Atlantic-tid (Goose Bay)',
         'America/Grand_Turk' => 'Eastern-tid (Grand Turk)',
         'America/Grenada' => 'Atlantic-tid (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Eastern-tid (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Eastern-tid (Winamac, Indiana)',
         'America/Indianapolis' => 'Eastern-tid (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Eastern-tid (Indianapolis)',
         'America/Inuvik' => 'Mountain-tid (Inuvik)',
         'America/Iqaluit' => 'Eastern-tid (Iqaluit)',
         'America/Jamaica' => 'Eastern-tid (Jamaica)',
         'America/Jujuy' => 'Argentisk tid (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentisk tid (Jujuy)',
         'America/Juneau' => 'Alaska-tid (Juneau)',
         'America/Kentucky/Monticello' => 'Eastern-tid (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantic-tid (Kralendijk)',
@@ -136,19 +145,21 @@
         'America/Lima' => 'Peruviansk tid (Lima)',
         'America/Los_Angeles' => 'Pacific-tid (Los Angeles)',
         'America/Louisville' => 'Eastern-tid (Louisville)',
+        'America/Kentucky/Louisville' => 'Eastern-tid (Louisville)',
         'America/Lower_Princes' => 'Atlantic-tid (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasiliansk tid (Maceio)',
+        'America/Maceio' => 'Brasiliansk tid (Maceió)',
         'America/Managua' => 'Central-tid (Managua)',
         'America/Manaus' => 'Amazonas-tid (Manaus)',
         'America/Marigot' => 'Atlantic-tid (Marigot)',
         'America/Martinique' => 'Atlantic-tid (Martinique)',
         'America/Matamoros' => 'Central-tid (Matamoros)',
-        'America/Mazatlan' => 'Mexicansk Pacific-tid (Mazatlan)',
+        'America/Mazatlan' => 'Mexicansk Pacific-tid (Mazatlán)',
         'America/Mendoza' => 'Argentisk tid (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentisk tid (Mendoza)',
         'America/Menominee' => 'Central-tid (Menominee)',
         'America/Merida' => 'Central-tid (Merida)',
         'America/Metlakatla' => 'Alaska-tid (Metlakatla)',
-        'America/Mexico_City' => 'Central-tid (Mexico City)',
+        'America/Mexico_City' => 'Central-tid (Ciudad de México)',
         'America/Miquelon' => 'Saint Pierre- og Miquelon-tid',
         'America/Moncton' => 'Atlantic-tid (Moncton)',
         'America/Monterrey' => 'Central-tid (Monterrey)',
@@ -175,7 +186,7 @@
         'America/Regina' => 'Central-tid (Regina)',
         'America/Resolute' => 'Central-tid (Resolute)',
         'America/Rio_Branco' => 'Acre-tid (Rio Branco)',
-        'America/Santarem' => 'Brasiliansk tid (Santarem)',
+        'America/Santarem' => 'Brasiliansk tid (Santarém)',
         'America/Santiago' => 'Chilensk tid (Santiago)',
         'America/Santo_Domingo' => 'Atlantic-tid (Santo Domingo)',
         'America/Sao_Paulo' => 'Brasiliansk tid (São Paulo)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Newzealandsk tid (McMurdo)',
         'Antarctica/Palmer' => 'Chilensk tid (Palmer)',
         'Antarctica/Rothera' => 'Rothera-tid',
-        'Antarctica/Syowa' => 'Syowa-tid',
+        'Antarctica/Syowa' => 'Syowa-tid (Showa)',
         'Antarctica/Troll' => 'GMT (Troll)',
         'Antarctica/Vostok' => 'Vostok-tid',
         'Arctic/Longyearbyen' => 'Centraleuropæisk tid (Longyearbyen)',
         'Asia/Aden' => 'Arabisk tid (Aden)',
         'Asia/Almaty' => 'Kasakhstansk tid (Almaty)',
         'Asia/Amman' => 'Østeuropæisk tid (Amman)',
-        'Asia/Anadyr' => 'Anadyr-tid',
+        'Asia/Anadyr' => 'Petropavlovsk-Kamchatski tid (Anadyr)',
         'Asia/Aqtau' => 'Kasakhstansk tid (Aktau)',
         'Asia/Aqtobe' => 'Kasakhstansk tid (Aktobe)',
         'Asia/Ashgabat' => 'Turkmensk tid (Asjkhabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabisk tid (Bahrain)',
         'Asia/Baku' => 'Aserbajdsjansk tid (Baku)',
         'Asia/Bangkok' => 'Indokina-tid (Bangkok)',
-        'Asia/Barnaul' => 'Rusland-tid (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarsk-tid (Barnaul)',
         'Asia/Beirut' => 'Østeuropæisk tid (Beirut)',
         'Asia/Bishkek' => 'Kirgisisk tid (Bisjkek)',
         'Asia/Brunei' => 'Brunei Darussalam-tid',
         'Asia/Calcutta' => 'Indisk normaltid (Kolkata)',
+        'Asia/Kolkata' => 'Indisk normaltid (Kolkata)',
         'Asia/Chita' => 'Jakutsk-tid (Chita)',
         'Asia/Colombo' => 'Indisk normaltid (Colombo)',
         'Asia/Damascus' => 'Østeuropæisk tid (Damaskus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Østeuropæisk tid (Gaza)',
         'Asia/Hebron' => 'Østeuropæisk tid (Hebron)',
         'Asia/Hong_Kong' => 'Hongkong-tid',
-        'Asia/Hovd' => 'Hovd-tid',
+        'Asia/Hovd' => 'Hovd-tid (Khovd)',
         'Asia/Irkutsk' => 'Irkutsk-tid',
         'Asia/Jakarta' => 'Vestindonesisk tid (Jakarta)',
         'Asia/Jayapura' => 'Østindonesisk tid (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-Kamchatski tid (Kamtjatka)',
         'Asia/Karachi' => 'Pakistansk tid (Karachi)',
         'Asia/Katmandu' => 'Nepalesisk tid (Katmandu)',
+        'Asia/Kathmandu' => 'Nepalesisk tid (Katmandu)',
         'Asia/Khandyga' => 'Jakutsk-tid (Khandyga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsk-tid',
         'Asia/Kuala_Lumpur' => 'Malaysia-tid (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Golflandene-normaltid (Muscat)',
         'Asia/Nicosia' => 'Østeuropæisk tid (Nicosia)',
         'Asia/Novokuznetsk' => 'Krasnojarsk-tid (Novokusnetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk-tid',
+        'Asia/Novosibirsk' => 'Krasnojarsk-tid (Novosibirsk)',
         'Asia/Omsk' => 'Omsk-tid',
         'Asia/Oral' => 'Kasakhstansk tid (Oral)',
         'Asia/Phnom_Penh' => 'Indokina-tid (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kasakhstansk tid (Kostanay)',
         'Asia/Qyzylorda' => 'Kasakhstansk tid (Kyzylorda)',
         'Asia/Rangoon' => 'Myanmar-tid (Rangoon)',
+        'Asia/Yangon' => 'Myanmar-tid (Rangoon)',
         'Asia/Riyadh' => 'Arabisk tid (Riyadh)',
         'Asia/Saigon' => 'Indokina-tid (Ho Chi Minh City)',
-        'Asia/Sakhalin' => 'Sakhalin-tid',
+        'Asia/Ho_Chi_Minh' => 'Indokina-tid (Ho Chi Minh City)',
+        'Asia/Sakhalin' => 'Magadan-tid (Sakhalin)',
         'Asia/Samarkand' => 'Usbekisk tid (Samarkand)',
         'Asia/Seoul' => 'Koreansk tid (Seoul)',
         'Asia/Shanghai' => 'Kinesisk tid (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Iransk tid (Teheran)',
         'Asia/Thimphu' => 'Bhutan-tid (Thimphu)',
         'Asia/Tokyo' => 'Japansk tid (Tokyo)',
-        'Asia/Tomsk' => 'Rusland-tid (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarsk-tid (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulan Bator-tid',
         'Asia/Urumqi' => 'Kina-tid (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostok-tid (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Vesteuropæisk tid (De Kanariske Øer)',
         'Atlantic/Cape_Verde' => 'Kap Verde-tid',
         'Atlantic/Faeroe' => 'Vesteuropæisk tid (Færøerne)',
+        'Atlantic/Faroe' => 'Vesteuropæisk tid (Færøerne)',
         'Atlantic/Madeira' => 'Vesteuropæisk tid (Madeira)',
         'Atlantic/Reykjavik' => 'GMT (Reykjavik)',
         'Atlantic/South_Georgia' => 'South Georgia-tid',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Koordineret universaltid',
         'Europe/Amsterdam' => 'Centraleuropæisk tid (Amsterdam)',
         'Europe/Andorra' => 'Centraleuropæisk tid (Andorra)',
-        'Europe/Astrakhan' => 'Moskva-tid (Astrakhan)',
+        'Europe/Astrakhan' => 'Samara-tid (Astrakhan)',
         'Europe/Athens' => 'Østeuropæisk tid (Athen)',
         'Europe/Belgrade' => 'Centraleuropæisk tid (Beograd)',
         'Europe/Berlin' => 'Centraleuropæisk tid (Berlin)',
@@ -324,19 +340,20 @@
         'Europe/Brussels' => 'Centraleuropæisk tid (Bruxelles)',
         'Europe/Bucharest' => 'Østeuropæisk tid (Bukarest)',
         'Europe/Budapest' => 'Centraleuropæisk tid (Budapest)',
-        'Europe/Busingen' => 'Centraleuropæisk tid (Busingen)',
-        'Europe/Chisinau' => 'Østeuropæisk tid (Chisinau)',
+        'Europe/Busingen' => 'Centraleuropæisk tid (Büsingen)',
+        'Europe/Chisinau' => 'Østeuropæisk tid (Chișinău)',
         'Europe/Copenhagen' => 'Centraleuropæisk tid (København)',
         'Europe/Dublin' => 'GMT (Dublin)',
         'Europe/Gibraltar' => 'Centraleuropæisk tid (Gibraltar)',
         'Europe/Guernsey' => 'GMT (Guernsey)',
         'Europe/Helsinki' => 'Østeuropæisk tid (Helsinki)',
         'Europe/Isle_of_Man' => 'GMT (Isle of Man)',
-        'Europe/Istanbul' => 'Tyrkiet-tid (Istanbul)',
+        'Europe/Istanbul' => 'Tyrkisk tid (Istanbul)',
         'Europe/Jersey' => 'GMT (Jersey)',
         'Europe/Kaliningrad' => 'Østeuropæisk tid (Kaliningrad)',
         'Europe/Kiev' => 'Østeuropæisk tid (Kiev)',
-        'Europe/Kirov' => 'Rusland-tid (Kirov)',
+        'Europe/Kyiv' => 'Østeuropæisk tid (Kiev)',
+        'Europe/Kirov' => 'Moskva-tid (Kirov)',
         'Europe/Lisbon' => 'Vesteuropæisk tid (Lissabon)',
         'Europe/Ljubljana' => 'Centraleuropæisk tid (Ljubljana)',
         'Europe/London' => 'GMT (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samara-tid',
         'Europe/San_Marino' => 'Centraleuropæisk tid (San Marino)',
         'Europe/Sarajevo' => 'Centraleuropæisk tid (Sarajevo)',
-        'Europe/Saratov' => 'Moskva-tid (Saratov)',
+        'Europe/Saratov' => 'Samara-tid (Saratov)',
         'Europe/Simferopol' => 'Moskva-tid (Simferopol)',
         'Europe/Skopje' => 'Centraleuropæisk tid (Skopje)',
         'Europe/Sofia' => 'Østeuropæisk tid (Sofia)',
         'Europe/Stockholm' => 'Centraleuropæisk tid (Stockholm)',
         'Europe/Tallinn' => 'Østeuropæisk tid (Tallinn)',
         'Europe/Tirane' => 'Centraleuropæisk tid (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskva-tid (Uljanovsk)',
+        'Europe/Ulyanovsk' => 'Samara-tid (Uljanovsk)',
         'Europe/Vaduz' => 'Centraleuropæisk tid (Vaduz)',
         'Europe/Vatican' => 'Centraleuropæisk tid (Vatikanet)',
         'Europe/Vienna' => 'Centraleuropæisk tid (Wien)',
         'Europe/Vilnius' => 'Østeuropæisk tid (Vilnius)',
-        'Europe/Volgograd' => 'Volgograd-tid',
+        'Europe/Volgograd' => 'Moskva-tid (Volgograd)',
         'Europe/Warsaw' => 'Centraleuropæisk tid (Warszawa)',
         'Europe/Zagreb' => 'Centraleuropæisk tid (Zagreb)',
         'Europe/Zurich' => 'Centraleuropæisk tid (Zürich)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Cocosøerne-normaltid',
         'Indian/Comoro' => 'Østafrikansk tid (Comorerne)',
         'Indian/Kerguelen' => 'Franske Sydlige og Antarktiske Territorier-tid (Kerguelen)',
-        'Indian/Mahe' => 'Seychellisk tid (Mahe)',
+        'Indian/Mahe' => 'Seychellisk tid (Mahé)',
         'Indian/Maldives' => 'Maldiverne-tid',
         'Indian/Mauritius' => 'Mauritius-tid',
         'Indian/Mayotte' => 'Østafrikansk tid (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Chatham-tid',
         'Pacific/Easter' => 'Påskeøen-tid',
         'Pacific/Efate' => 'Vanuatu-tid (Efate)',
-        'Pacific/Enderbury' => 'Phoenixøen-tid (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenixøen-tid (Canton Island)',
+        'Pacific/Kanton' => 'Phoenixøen-tid (Canton Island)',
         'Pacific/Fakaofo' => 'Tokelau-tid (Fakaofo)',
         'Pacific/Fiji' => 'Fijiansk tid',
         'Pacific/Funafuti' => 'Tuvalu-tid (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos-tid',
+        'Pacific/Galapagos' => 'Galapagos-tid (Galápagos)',
         'Pacific/Gambier' => 'Gambier-tid',
         'Pacific/Guadalcanal' => 'Salomonøerne-tid (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro-tid (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleutian-tid (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleutian-normaltid (Honolulu)',
         'Pacific/Kiritimati' => 'Linjeøerne-tid (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae-tid',
         'Pacific/Kwajalein' => 'Marshalløerne-tid (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Nauru-tid',
         'Pacific/Niue' => 'Niue-tid',
         'Pacific/Norfolk' => 'Norfolk Island-tid',
-        'Pacific/Noumea' => 'Ny Kaledonien-tid (Noumea)',
+        'Pacific/Noumea' => 'Ny Kaledonien-tid (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoansk tid (Pago Pago)',
         'Pacific/Palau' => 'Palau-tid',
         'Pacific/Pitcairn' => 'Pitcairn-tid',
         'Pacific/Ponape' => 'Ponape-tid (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponape-tid (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papua Ny Guinea-tid (Port Moresby)',
         'Pacific/Rarotonga' => 'Cookøerne-tid (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro-tid (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Gilbertøerne-tid (Tarawa)',
         'Pacific/Tongatapu' => 'Tongansk tid (Tongatapu)',
         'Pacific/Truk' => 'Chuuk-tid',
+        'Pacific/Chuuk' => 'Chuuk-tid',
         'Pacific/Wake' => 'Wake Island-tid',
-        'Pacific/Wallis' => 'Wallis og Futuna-tid',
+        'Pacific/Wallis' => 'Wallis og Futuna-tid (Wallis & Futuna)',
     ],
     'Meta' => [
         'HourFormatPos' => '+%02d.%02d',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/de_CH.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/de_CH.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/de_CH.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/de_CH.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,7 +4,7 @@
     'Names' => [
         'Asia/Brunei' => 'Brunei-Zeit',
         'Asia/Macau' => 'Chinesische Zeit (Macao)',
-        'Europe/Saratov' => 'Moskauer Zeit (Saratov)',
+        'Europe/Saratov' => 'Samara-Zeit (Saratov)',
         'Pacific/Guadalcanal' => 'Salomoninseln-Zeit (Guadalcanal)',
     ],
     'Meta' => [],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/de.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/de.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/de.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/de.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Ostafrikanische Zeit (Addis Abeba)',
         'Africa/Algiers' => 'Mitteleuropäische Zeit (Algier)',
         'Africa/Asmera' => 'Ostafrikanische Zeit (Asmara)',
+        'Africa/Asmara' => 'Ostafrikanische Zeit (Asmara)',
         'Africa/Bamako' => 'Mittlere Greenwich-Zeit (Bamako)',
         'Africa/Bangui' => 'Westafrikanische Zeit (Bangui)',
         'Africa/Banjul' => 'Mittlere Greenwich-Zeit (Banjul)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Alaska-Zeit (Anchorage)',
         'America/Anguilla' => 'Atlantik-Zeit (Anguilla)',
         'America/Antigua' => 'Atlantik-Zeit (Antigua)',
-        'America/Araguaina' => 'Brasília-Zeit (Araguaina)',
+        'America/Araguaina' => 'Brasília-Zeit (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentinische Zeit (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentinische Zeit (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentinische Zeit (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentinische Zeit (Salta)',
         'America/Argentina/San_Juan' => 'Argentinische Zeit (San Juan)',
         'America/Argentina/San_Luis' => 'Argentinische Zeit (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentinische Zeit (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentinische Zeit (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentinische Zeit (Ushuaia)',
         'America/Aruba' => 'Atlantik-Zeit (Aruba)',
         'America/Asuncion' => 'Paraguayische Zeit (Asunción)',
         'America/Bahia' => 'Brasília-Zeit (Bahia)',
         'America/Bahia_Banderas' => 'Nordamerikanische Zentralzeit (Bahia Banderas)',
         'America/Barbados' => 'Atlantik-Zeit (Barbados)',
-        'America/Belem' => 'Brasília-Zeit (Belem)',
+        'America/Belem' => 'Brasília-Zeit (Belém)',
         'America/Belize' => 'Nordamerikanische Zentralzeit (Belize)',
         'America/Blanc-Sablon' => 'Atlantik-Zeit (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazonas-Zeit (Boa Vista)',
         'America/Bogota' => 'Kolumbianische Zeit (Bogotá)',
         'America/Boise' => 'Rocky-Mountains-Zeit (Boise)',
         'America/Buenos_Aires' => 'Argentinische Zeit (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentinische Zeit (Buenos Aires)',
         'America/Cambridge_Bay' => 'Rocky-Mountains-Zeit (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazonas-Zeit (Campo Grande)',
         'America/Cancun' => 'Nordamerikanische Ostküstenzeit (Cancún)',
         'America/Caracas' => 'Venezuela-Zeit (Caracas)',
         'America/Catamarca' => 'Argentinische Zeit (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentinische Zeit (Catamarca)',
         'America/Cayenne' => 'Französisch-Guayana-Zeit (Cayenne)',
         'America/Cayman' => 'Nordamerikanische Ostküstenzeit (Kaimaninseln)',
         'America/Chicago' => 'Nordamerikanische Zentralzeit (Chicago)',
         'America/Chihuahua' => 'Nordamerikanische Zentralzeit (Chihuahua)',
         'America/Ciudad_Juarez' => 'Rocky-Mountains-Zeit (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Nordamerikanische Ostküstenzeit (Atikokan)',
+        'America/Atikokan' => 'Nordamerikanische Ostküstenzeit (Atikokan)',
         'America/Cordoba' => 'Argentinische Zeit (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentinische Zeit (Córdoba)',
         'America/Costa_Rica' => 'Nordamerikanische Zentralzeit (Costa Rica)',
+        'America/Coyhaique' => 'Chilenische Zeit (Coyhaique)',
         'America/Creston' => 'Rocky-Mountains-Zeit (Creston)',
-        'America/Cuiaba' => 'Amazonas-Zeit (Cuiaba)',
+        'America/Cuiaba' => 'Amazonas-Zeit (Cuiabá)',
         'America/Curacao' => 'Atlantik-Zeit (Curaçao)',
         'America/Danmarkshavn' => 'Mittlere Greenwich-Zeit (Danmarkshavn)',
         'America/Dawson' => 'Yukon-Zeit (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Nordamerikanische Ostküstenzeit (Detroit)',
         'America/Dominica' => 'Atlantik-Zeit (Dominica)',
         'America/Edmonton' => 'Rocky-Mountains-Zeit (Edmonton)',
-        'America/Eirunepe' => 'Acre-Zeit (Eirunepe)',
+        'America/Eirunepe' => 'Acre-Zeit (Eirunepé)',
         'America/El_Salvador' => 'Nordamerikanische Zentralzeit (El Salvador)',
         'America/Fort_Nelson' => 'Rocky-Mountains-Zeit (Fort Nelson)',
         'America/Fortaleza' => 'Brasília-Zeit (Fortaleza)',
         'America/Glace_Bay' => 'Atlantik-Zeit (Glace Bay)',
         'America/Godthab' => 'Grönland (Ortszeit) (Nuuk)',
+        'America/Nuuk' => 'Grönland (Ortszeit) (Nuuk)',
         'America/Goose_Bay' => 'Atlantik-Zeit (Goose Bay)',
         'America/Grand_Turk' => 'Nordamerikanische Ostküstenzeit (Grand Turk)',
         'America/Grenada' => 'Atlantik-Zeit (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Nordamerikanische Ostküstenzeit (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Nordamerikanische Ostküstenzeit (Winamac, Indiana)',
         'America/Indianapolis' => 'Nordamerikanische Ostküstenzeit (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Nordamerikanische Ostküstenzeit (Indianapolis)',
         'America/Inuvik' => 'Rocky-Mountains-Zeit (Inuvik)',
         'America/Iqaluit' => 'Nordamerikanische Ostküstenzeit (Iqaluit)',
         'America/Jamaica' => 'Nordamerikanische Ostküstenzeit (Jamaika)',
         'America/Jujuy' => 'Argentinische Zeit (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentinische Zeit (Jujuy)',
         'America/Juneau' => 'Alaska-Zeit (Juneau)',
         'America/Kentucky/Monticello' => 'Nordamerikanische Ostküstenzeit (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantik-Zeit (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Peruanische Zeit (Lima)',
         'America/Los_Angeles' => 'Nordamerikanische Westküstenzeit (Los Angeles)',
         'America/Louisville' => 'Nordamerikanische Ostküstenzeit (Louisville)',
+        'America/Kentucky/Louisville' => 'Nordamerikanische Ostküstenzeit (Louisville)',
         'America/Lower_Princes' => 'Atlantik-Zeit (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasília-Zeit (Maceio)',
+        'America/Maceio' => 'Brasília-Zeit (Maceió)',
         'America/Managua' => 'Nordamerikanische Zentralzeit (Managua)',
         'America/Manaus' => 'Amazonas-Zeit (Manaus)',
         'America/Marigot' => 'Atlantik-Zeit (Marigot)',
         'America/Martinique' => 'Atlantik-Zeit (Martinique)',
         'America/Matamoros' => 'Nordamerikanische Zentralzeit (Matamoros)',
-        'America/Mazatlan' => 'Mexikanische Pazifikzeit (Mazatlan)',
+        'America/Mazatlan' => 'Mexikanische Pazifikzeit (Mazatlán)',
         'America/Mendoza' => 'Argentinische Zeit (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentinische Zeit (Mendoza)',
         'America/Menominee' => 'Nordamerikanische Zentralzeit (Menominee)',
         'America/Merida' => 'Nordamerikanische Zentralzeit (Merida)',
         'America/Metlakatla' => 'Alaska-Zeit (Metlakatla)',
         'America/Mexico_City' => 'Nordamerikanische Zentralzeit (Mexiko-Stadt)',
-        'America/Miquelon' => 'St.-Pierre-und-Miquelon-Zeit',
+        'America/Miquelon' => 'St.-Pierre-und-Miquelon-Zeit (Saint-Pierre)',
         'America/Moncton' => 'Atlantik-Zeit (Moncton)',
         'America/Monterrey' => 'Nordamerikanische Zentralzeit (Monterrey)',
         'America/Montevideo' => 'Uruguayische Zeit (Montevideo)',
@@ -175,7 +186,7 @@
         'America/Regina' => 'Nordamerikanische Zentralzeit (Regina)',
         'America/Resolute' => 'Nordamerikanische Zentralzeit (Resolute)',
         'America/Rio_Branco' => 'Acre-Zeit (Rio Branco)',
-        'America/Santarem' => 'Brasília-Zeit (Santarem)',
+        'America/Santarem' => 'Brasília-Zeit (Santarém)',
         'America/Santiago' => 'Chilenische Zeit (Santiago)',
         'America/Santo_Domingo' => 'Atlantik-Zeit (Santo Domingo)',
         'America/Sao_Paulo' => 'Brasília-Zeit (São Paulo)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Neuseeland-Zeit (McMurdo)',
         'Antarctica/Palmer' => 'Chilenische Zeit (Palmer)',
         'Antarctica/Rothera' => 'Rothera-Zeit',
-        'Antarctica/Syowa' => 'Syowa-Zeit',
+        'Antarctica/Syowa' => 'Syowa-Zeit (Showa)',
         'Antarctica/Troll' => 'Mittlere Greenwich-Zeit (Troll)',
         'Antarctica/Vostok' => 'Wostok-Zeit',
         'Arctic/Longyearbyen' => 'Mitteleuropäische Zeit (Longyearbyen)',
         'Asia/Aden' => 'Arabische Zeit (Aden)',
         'Asia/Almaty' => 'Kasachische Zeit (Almaty)',
         'Asia/Amman' => 'Osteuropäische Zeit (Amman)',
-        'Asia/Anadyr' => 'Anadyr Zeit',
+        'Asia/Anadyr' => 'Kamtschatka-Zeit (Anadyr)',
         'Asia/Aqtau' => 'Kasachische Zeit (Aqtau)',
         'Asia/Aqtobe' => 'Kasachische Zeit (Aktobe)',
         'Asia/Ashgabat' => 'Turkmenistan-Zeit (Aşgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabische Zeit (Bahrain)',
         'Asia/Baku' => 'Aserbaidschanische Zeit (Baku)',
         'Asia/Bangkok' => 'Indochina-Zeit (Bangkok)',
-        'Asia/Barnaul' => 'Russland (Ortszeit) (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarsker Zeit (Barnaul)',
         'Asia/Beirut' => 'Osteuropäische Zeit (Beirut)',
         'Asia/Bishkek' => 'Kirgisische Zeit (Bischkek)',
         'Asia/Brunei' => 'Brunei-Darussalam-Zeit',
         'Asia/Calcutta' => 'Indische Normalzeit (Kalkutta)',
+        'Asia/Kolkata' => 'Indische Normalzeit (Kalkutta)',
         'Asia/Chita' => 'Jakutsker Zeit (Tschita)',
         'Asia/Colombo' => 'Indische Normalzeit (Colombo)',
         'Asia/Damascus' => 'Osteuropäische Zeit (Damaskus)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Kamtschatka-Zeit',
         'Asia/Karachi' => 'Pakistanische Zeit (Karatschi)',
         'Asia/Katmandu' => 'Nepalesische Zeit (Kathmandu)',
+        'Asia/Kathmandu' => 'Nepalesische Zeit (Kathmandu)',
         'Asia/Khandyga' => 'Jakutsker Zeit (Chandyga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsker Zeit',
         'Asia/Kuala_Lumpur' => 'Malaysische Zeit (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Golf-Zeit (Maskat)',
         'Asia/Nicosia' => 'Osteuropäische Zeit (Nikosia)',
         'Asia/Novokuznetsk' => 'Krasnojarsker Zeit (Nowokuznetsk)',
-        'Asia/Novosibirsk' => 'Nowosibirsker Zeit',
+        'Asia/Novosibirsk' => 'Krasnojarsker Zeit (Nowosibirsk)',
         'Asia/Omsk' => 'Omsker Zeit',
         'Asia/Oral' => 'Kasachische Zeit (Oral)',
         'Asia/Phnom_Penh' => 'Indochina-Zeit (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kasachische Zeit (Qostanai)',
         'Asia/Qyzylorda' => 'Kasachische Zeit (Qysylorda)',
         'Asia/Rangoon' => 'Myanmar-Zeit (Rangun)',
+        'Asia/Yangon' => 'Myanmar-Zeit (Rangun)',
         'Asia/Riyadh' => 'Arabische Zeit (Riad)',
         'Asia/Saigon' => 'Indochina-Zeit (Ho-Chi-Minh-Stadt)',
-        'Asia/Sakhalin' => 'Sachalin-Zeit',
+        'Asia/Ho_Chi_Minh' => 'Indochina-Zeit (Ho-Chi-Minh-Stadt)',
+        'Asia/Sakhalin' => 'Magadan-Zeit (Sachalin)',
         'Asia/Samarkand' => 'Usbekische Zeit (Samarkand)',
         'Asia/Seoul' => 'Koreanische Zeit (Seoul)',
         'Asia/Shanghai' => 'Chinesische Zeit (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Iranische Zeit (Teheran)',
         'Asia/Thimphu' => 'Bhutan-Zeit (Thimphu)',
         'Asia/Tokyo' => 'Japanische Zeit (Tokio)',
-        'Asia/Tomsk' => 'Russland (Ortszeit) (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarsker Zeit (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulaanbaatar-Zeit',
         'Asia/Urumqi' => 'China (Ortszeit) (Ürümqi)',
         'Asia/Ust-Nera' => 'Wladiwostoker Zeit (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Westeuropäische Zeit (Kanaren)',
         'Atlantic/Cape_Verde' => 'Cabo-Verde-Zeit',
         'Atlantic/Faeroe' => 'Westeuropäische Zeit (Färöer)',
+        'Atlantic/Faroe' => 'Westeuropäische Zeit (Färöer)',
         'Atlantic/Madeira' => 'Westeuropäische Zeit (Madeira)',
         'Atlantic/Reykjavik' => 'Mittlere Greenwich-Zeit (Reyk­ja­vík)',
         'Atlantic/South_Georgia' => 'Südgeorgische Zeit (Südgeorgien)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Koordinierte Weltzeit',
         'Europe/Amsterdam' => 'Mitteleuropäische Zeit (Amsterdam)',
         'Europe/Andorra' => 'Mitteleuropäische Zeit (Andorra)',
-        'Europe/Astrakhan' => 'Moskauer Zeit (Astrachan)',
+        'Europe/Astrakhan' => 'Samara-Zeit (Astrachan)',
         'Europe/Athens' => 'Osteuropäische Zeit (Athen)',
         'Europe/Belgrade' => 'Mitteleuropäische Zeit (Belgrad)',
         'Europe/Berlin' => 'Mitteleuropäische Zeit (Berlin)',
@@ -325,18 +341,19 @@
         'Europe/Bucharest' => 'Osteuropäische Zeit (Bukarest)',
         'Europe/Budapest' => 'Mitteleuropäische Zeit (Budapest)',
         'Europe/Busingen' => 'Mitteleuropäische Zeit (Büsingen)',
-        'Europe/Chisinau' => 'Osteuropäische Zeit (Chisinau)',
+        'Europe/Chisinau' => 'Osteuropäische Zeit (Chișinău)',
         'Europe/Copenhagen' => 'Mitteleuropäische Zeit (Kopenhagen)',
         'Europe/Dublin' => 'Mittlere Greenwich-Zeit (Dublin)',
         'Europe/Gibraltar' => 'Mitteleuropäische Zeit (Gibraltar)',
         'Europe/Guernsey' => 'Mittlere Greenwich-Zeit (Guernsey)',
         'Europe/Helsinki' => 'Osteuropäische Zeit (Helsinki)',
         'Europe/Isle_of_Man' => 'Mittlere Greenwich-Zeit (Isle of Man)',
-        'Europe/Istanbul' => 'Türkei (Ortszeit) (Istanbul)',
+        'Europe/Istanbul' => 'Türkische Zeit (Istanbul)',
         'Europe/Jersey' => 'Mittlere Greenwich-Zeit (Jersey)',
         'Europe/Kaliningrad' => 'Osteuropäische Zeit (Kaliningrad)',
         'Europe/Kiev' => 'Osteuropäische Zeit (Kiew)',
-        'Europe/Kirov' => 'Russland (Ortszeit) (Kirow)',
+        'Europe/Kyiv' => 'Osteuropäische Zeit (Kiew)',
+        'Europe/Kirov' => 'Moskauer Zeit (Kirow)',
         'Europe/Lisbon' => 'Westeuropäische Zeit (Lissabon)',
         'Europe/Ljubljana' => 'Mitteleuropäische Zeit (Ljubljana)',
         'Europe/London' => 'Mittlere Greenwich-Zeit (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samara-Zeit',
         'Europe/San_Marino' => 'Mitteleuropäische Zeit (San Marino)',
         'Europe/Sarajevo' => 'Mitteleuropäische Zeit (Sarajevo)',
-        'Europe/Saratov' => 'Moskauer Zeit (Saratow)',
+        'Europe/Saratov' => 'Samara-Zeit (Saratow)',
         'Europe/Simferopol' => 'Moskauer Zeit (Simferopol)',
         'Europe/Skopje' => 'Mitteleuropäische Zeit (Skopje)',
         'Europe/Sofia' => 'Osteuropäische Zeit (Sofia)',
         'Europe/Stockholm' => 'Mitteleuropäische Zeit (Stockholm)',
         'Europe/Tallinn' => 'Osteuropäische Zeit (Tallinn)',
         'Europe/Tirane' => 'Mitteleuropäische Zeit (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskauer Zeit (Uljanowsk)',
+        'Europe/Ulyanovsk' => 'Samara-Zeit (Uljanowsk)',
         'Europe/Vaduz' => 'Mitteleuropäische Zeit (Vaduz)',
         'Europe/Vatican' => 'Mitteleuropäische Zeit (Vatikan)',
         'Europe/Vienna' => 'Mitteleuropäische Zeit (Wien)',
         'Europe/Vilnius' => 'Osteuropäische Zeit (Vilnius)',
-        'Europe/Volgograd' => 'Wolgograder Zeit',
+        'Europe/Volgograd' => 'Moskauer Zeit (Wolgograd)',
         'Europe/Warsaw' => 'Mitteleuropäische Zeit (Warschau)',
         'Europe/Zagreb' => 'Mitteleuropäische Zeit (Zagreb)',
         'Europe/Zurich' => 'Mitteleuropäische Zeit (Zürich)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Kokosinseln-Zeit (Cocos)',
         'Indian/Comoro' => 'Ostafrikanische Zeit (Komoren)',
         'Indian/Kerguelen' => 'Französische-Süd-und-Antarktisgebiete-Zeit (Kerguelen)',
-        'Indian/Mahe' => 'Seychellen-Zeit (Mahe)',
+        'Indian/Mahe' => 'Seychellen-Zeit (Mahé)',
         'Indian/Maldives' => 'Malediven-Zeit',
         'Indian/Mauritius' => 'Mauritius-Zeit',
         'Indian/Mayotte' => 'Ostafrikanische Zeit (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Chatham-Zeit',
         'Pacific/Easter' => 'Osterinsel-Zeit',
         'Pacific/Efate' => 'Vanuatu-Zeit (Efate)',
-        'Pacific/Enderbury' => 'Phoenixinseln-Zeit (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenixinseln-Zeit (Canton)',
+        'Pacific/Kanton' => 'Phoenixinseln-Zeit (Canton)',
         'Pacific/Fakaofo' => 'Tokelau-Zeit (Fakaofo)',
         'Pacific/Fiji' => 'Fidschi-Zeit',
         'Pacific/Funafuti' => 'Tuvalu-Zeit (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos-Zeit',
+        'Pacific/Galapagos' => 'Galapagos-Zeit (Galápagos)',
         'Pacific/Gambier' => 'Gambier-Zeit',
         'Pacific/Guadalcanal' => 'Salomonen-Zeit (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro-Zeit (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleuten-Zeit (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleuten-Normalzeit (Honolulu)',
         'Pacific/Kiritimati' => 'Linieninseln-Zeit (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae-Zeit',
         'Pacific/Kwajalein' => 'Marshallinseln-Zeit (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Nauru-Zeit',
         'Pacific/Niue' => 'Niue-Zeit',
         'Pacific/Norfolk' => 'Norfolkinsel-Zeit',
-        'Pacific/Noumea' => 'Neukaledonische Zeit (Noumea)',
+        'Pacific/Noumea' => 'Neukaledonische Zeit (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoa-Zeit (Pago Pago)',
         'Pacific/Palau' => 'Palau-Zeit',
         'Pacific/Pitcairn' => 'Pitcairninseln-Zeit',
-        'Pacific/Ponape' => 'Ponape-Zeit (Pohnpei)',
+        'Pacific/Ponape' => 'Pohnpei-Zeit',
+        'Pacific/Pohnpei' => 'Pohnpei-Zeit',
         'Pacific/Port_Moresby' => 'Papua-Neuguinea-Zeit (Port Moresby)',
         'Pacific/Rarotonga' => 'Cookinseln-Zeit (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro-Zeit (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Gilbert-Inseln-Zeit (Tarawa)',
         'Pacific/Tongatapu' => 'Tongaische Zeit (Tongatapu)',
         'Pacific/Truk' => 'Chuuk-Zeit',
+        'Pacific/Chuuk' => 'Chuuk-Zeit',
         'Pacific/Wake' => 'Wake-Insel-Zeit',
-        'Pacific/Wallis' => 'Wallis-und-Futuna-Zeit',
+        'Pacific/Wallis' => 'Wallis-und-Futuna-Zeit (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/dz.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/dz.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/dz.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/dz.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Addis Ababa་)',
         'Africa/Algiers' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Algiers་)',
         'Africa/Asmera' => 'ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Asmara་)',
+        'Africa/Asmara' => 'ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Asmara་)',
         'Africa/Bamako' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Bamako་)',
         'Africa/Bangui' => 'ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Bangui་)',
         'Africa/Banjul' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Banjul་)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Dar es Salaam་)',
         'Africa/Djibouti' => 'ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Djibouti་)',
         'Africa/Douala' => 'ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Douala་)',
-        'Africa/El_Aaiun' => 'ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (El Aaiun་)',
+        'Africa/El_Aaiun' => 'ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (El Aaiún་)',
         'Africa/Freetown' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Freetown་)',
         'Africa/Gaborone' => 'དབུས་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Gaborone་)',
         'Africa/Harare' => 'དབུས་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Harare་)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Mogadishu་)',
         'Africa/Monrovia' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Monrovia་)',
         'Africa/Nairobi' => 'ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Nairobi་)',
-        'Africa/Ndjamena' => 'ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Ndjamena་)',
+        'Africa/Ndjamena' => 'ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (N’Djamena་)',
         'Africa/Niamey' => 'ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Niamey་)',
         'Africa/Nouakchott' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Nouakchott་)',
         'Africa/Ouagadougou' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Ouagadougou་)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'ཨ་ལསི་ཀ་ཆུ་ཚོད། (Anchorage་)',
         'America/Anguilla' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (Anguilla་)',
         'America/Antigua' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (ཨན་ཊི་གུ་ཝ་་)',
-        'America/Araguaina' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Araguaina་)',
+        'America/Araguaina' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Araguaína་)',
         'America/Argentina/La_Rioja' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (La Rioja་)',
-        'America/Argentina/Rio_Gallegos' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Rio Gallegos་)',
+        'America/Argentina/Rio_Gallegos' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Río Gallegos་)',
         'America/Argentina/Salta' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Salta་)',
         'America/Argentina/San_Juan' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (San Juan་)',
         'America/Argentina/San_Luis' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (San Luis་)',
-        'America/Argentina/Tucuman' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Tucuman་)',
+        'America/Argentina/Tucuman' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Tucumán་)',
         'America/Argentina/Ushuaia' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Ushuaia་)',
         'America/Aruba' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (Aruba་)',
         'America/Asuncion' => 'པ་ར་གུ་ཝའི་ཆུ་ཚོད། (Asunción་)',
         'America/Bahia' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Bahia་)',
         'America/Bahia_Banderas' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (Bahía de Banderas་)',
         'America/Barbados' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (བྷར་བེ་ཌོས་)',
-        'America/Belem' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Belem་)',
+        'America/Belem' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Belém་)',
         'America/Belize' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (བྷེ་ལིཛ་)',
         'America/Blanc-Sablon' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (Blanc-Sablon་)',
         'America/Boa_Vista' => 'ཨེ་མ་ཛཱོན་ཆུ་ཚོད། (Boa Vista་)',
         'America/Bogota' => 'ཀོ་ལོམ་བྷི་ཡ་ཆུ་ཚོད། (བྷོ་ག་ཊ་)',
         'America/Boise' => 'བྱང་ཨ་མི་རི་ཀ་མའུ་ཊེན་ཆུ་ཚོད། (Boise་)',
         'America/Buenos_Aires' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Buenos Aires་)',
+        'America/Argentina/Buenos_Aires' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Buenos Aires་)',
         'America/Cambridge_Bay' => 'བྱང་ཨ་མི་རི་ཀ་མའུ་ཊེན་ཆུ་ཚོད། (ཀེམ་བིརིདཆ་ བའེ་)',
         'America/Campo_Grande' => 'ཨེ་མ་ཛཱོན་ཆུ་ཚོད། (Campo Grande་)',
         'America/Cancun' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Cancún་)',
         'America/Caracas' => 'བེ་ནི་ཛུ་ཝེ་ལ་ཆུ་ཚོད། (Caracas་)',
         'America/Catamarca' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Catamarca་)',
+        'America/Argentina/Catamarca' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Catamarca་)',
         'America/Cayenne' => 'ཕིརེནཅ་གི་ཡ་ན་ཆུ་ཚོད། (Cayenne་)',
         'America/Cayman' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Cayman་)',
         'America/Chicago' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (ཅི་ཀཱ་གོ་)',
         'America/Chihuahua' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (Chihuahua་)',
         'America/Ciudad_Juarez' => 'བྱང་ཨ་མི་རི་ཀ་མའུ་ཊེན་ཆུ་ཚོད། (Ciudad Juárez་)',
         'America/Coral_Harbour' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (ཨ་ཏི་ཀོ་ཀཱན་)',
-        'America/Cordoba' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Cordoba་)',
+        'America/Atikokan' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (ཨ་ཏི་ཀོ་ཀཱན་)',
+        'America/Cordoba' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Córdoba་)',
+        'America/Argentina/Cordoba' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Córdoba་)',
         'America/Costa_Rica' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (ཀོས་ཊ་རི་ཀ་)',
+        'America/Coyhaique' => 'ཅི་ལི་ཆུ་ཚོད། (Coyhaique་)',
         'America/Creston' => 'བྱང་ཨ་མི་རི་ཀ་མའུ་ཊེན་ཆུ་ཚོད། (Creston་)',
-        'America/Cuiaba' => 'ཨེ་མ་ཛཱོན་ཆུ་ཚོད། (Cuiaba་)',
+        'America/Cuiaba' => 'ཨེ་མ་ཛཱོན་ཆུ་ཚོད། (Cuiabá་)',
         'America/Curacao' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (Curaçao་)',
         'America/Danmarkshavn' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Danmarkshavn་)',
         'America/Dawson' => 'ཀེ་ན་ཌ་ཆུ་ཚོད།། (དའུ་སཱོན་)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Detroit་)',
         'America/Dominica' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (ཌོ་མི་ནི་ཀ་)',
         'America/Edmonton' => 'བྱང་ཨ་མི་རི་ཀ་མའུ་ཊེན་ཆུ་ཚོད། (ཨེཌ་མཱོན་ཊོན་)',
-        'America/Eirunepe' => 'བྲ་ཛིལ་ཆུ་ཚོད།། (Eirunepe་)',
+        'America/Eirunepe' => 'བྲ་ཛིལ་ཆུ་ཚོད།། (Eirunepé་)',
         'America/El_Salvador' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (ཨེལ་ སཱལ་བ་ཌོ་)',
         'America/Fort_Nelson' => 'བྱང་ཨ་མི་རི་ཀ་མའུ་ཊེན་ཆུ་ཚོད། (Fort Nelson་)',
         'America/Fortaleza' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Fortaleza་)',
         'America/Glace_Bay' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (Glace Bay་)',
         'America/Godthab' => 'གིརཱིན་ལནཌ྄་ཆུ་ཚོད།། (Nuuk་)',
+        'America/Nuuk' => 'གིརཱིན་ལནཌ྄་ཆུ་ཚོད།། (Nuuk་)',
         'America/Goose_Bay' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (གཱུསི་ བའེ་)',
         'America/Grand_Turk' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Grand Turk་)',
         'America/Grenada' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (Grenada་)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Vincennes, Indiana་)',
         'America/Indiana/Winamac' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Winamac, Indiana་)',
         'America/Indianapolis' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Indianapolis་)',
+        'America/Indiana/Indianapolis' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Indianapolis་)',
         'America/Inuvik' => 'བྱང་ཨ་མི་རི་ཀ་མའུ་ཊེན་ཆུ་ཚོད། (ཨི་ནུ་ཝིཀ་)',
         'America/Iqaluit' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Iqaluit་)',
         'America/Jamaica' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Jamaica་)',
         'America/Jujuy' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Jujuy་)',
+        'America/Argentina/Jujuy' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Jujuy་)',
         'America/Juneau' => 'ཨ་ལསི་ཀ་ཆུ་ཚོད། (Juneau་)',
         'America/Kentucky/Monticello' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Monticello, Kentucky་)',
         'America/Kralendijk' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (Kralendijk་)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'པ་རུ་ཆུ་ཚོད། (Lima་)',
         'America/Los_Angeles' => 'བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཆུ་ཚོད། (Los Angeles་)',
         'America/Louisville' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Louisville་)',
+        'America/Kentucky/Louisville' => 'བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཆུ་ཚོད། (Louisville་)',
         'America/Lower_Princes' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (Lower Prince’s Quarter་)',
-        'America/Maceio' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Maceio་)',
+        'America/Maceio' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Maceió་)',
         'America/Managua' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (Managua་)',
         'America/Manaus' => 'ཨེ་མ་ཛཱོན་ཆུ་ཚོད། (Manaus་)',
         'America/Marigot' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (Marigot་)',
         'America/Martinique' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (Martinique་)',
         'America/Matamoros' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (Matamoros་)',
-        'America/Mazatlan' => 'མེཀ་སི་ཀོ་ཆུ་ཚོད།། (Mazatlan་)',
+        'America/Mazatlan' => 'མེཀ་སི་ཀོ་ཆུ་ཚོད།། (Mazatlán་)',
         'America/Mendoza' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Mendoza་)',
+        'America/Argentina/Mendoza' => 'ཨར་ཇེན་ཊི་ན་ཆུ་ཚོད། (Mendoza་)',
         'America/Menominee' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (Menominee་)',
         'America/Merida' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (Mérida་)',
         'America/Metlakatla' => 'ཨ་ལསི་ཀ་ཆུ་ཚོད། (Metlakatla་)',
         'America/Mexico_City' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (མེཀ་སི་ཀོ་ སི་ཊི་)',
-        'America/Miquelon' => 'པའི་རི་དང་མི་ཀི་ལཱོན་ཆུ་ཚོད། (Miquelon་)',
+        'America/Miquelon' => 'པའི་རི་དང་མི་ཀི་ལཱོན་ཆུ་ཚོད། (Saint-Pierre་)',
         'America/Moncton' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (མཱོངཀ་ཊོན་)',
         'America/Monterrey' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (Monterrey་)',
         'America/Montevideo' => 'ཡུ་རུ་གུ་ཝཱའི་ཆུ་ཚོད། (Montevideo་)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (རི་ཇི་ན་)',
         'America/Resolute' => 'བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཆུ་ཚོད། (རི་སོ་ལིའུཊ་)',
         'America/Rio_Branco' => 'བྲ་ཛིལ་ཆུ་ཚོད།། (Rio Branco་)',
-        'America/Santarem' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Santarem་)',
+        'America/Santarem' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Santarém་)',
         'America/Santiago' => 'ཅི་ལི་ཆུ་ཚོད། (སཱན་ཊི་ཡ་གྷོ་)',
         'America/Santo_Domingo' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (སཱན་ཊོ་ ཌོ་མིང་གྷོ་)',
-        'America/Sao_Paulo' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (Sao Paulo་)',
+        'America/Sao_Paulo' => 'བྲ་ཛི་ལི་ཡ་ཆུ་ཚོད། (São Paulo་)',
         'America/Scoresbysund' => 'གིརཱིན་ལནཌ྄་ཆུ་ཚོད།། (Ittoqqortoormiit་)',
         'America/Sitka' => 'ཨ་ལསི་ཀ་ཆུ་ཚོད། (Sitka་)',
         'America/St_Barthelemy' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (St. Barthélemy་)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'ནིའུ་ཛི་ལེནཌ་ཆུ་ཚོད། (McMurdo་)',
         'Antarctica/Palmer' => 'ཅི་ལི་ཆུ་ཚོད། (Palmer་)',
         'Antarctica/Rothera' => 'འཛམ་གླིང་ལྷོ་མཐའི་ཁྱགས་གླིང་ཆུ་ཚོད།། (Rothera་)',
-        'Antarctica/Syowa' => 'འཛམ་གླིང་ལྷོ་མཐའི་ཁྱགས་གླིང་ཆུ་ཚོད།། (Syowa་)',
+        'Antarctica/Syowa' => 'འཛམ་གླིང་ལྷོ་མཐའི་ཁྱགས་གླིང་ཆུ་ཚོད།། (Showa་)',
         'Antarctica/Troll' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Troll་)',
         'Antarctica/Vostok' => 'འཛམ་གླིང་ལྷོ་མཐའི་ཁྱགས་གླིང་ཆུ་ཚོད།། (Vostok་)',
         'Arctic/Longyearbyen' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Longyearbyen་)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'ཨ་རེ་བྷི་ཡན་ཆུ་ཚོད། (བྷ་རེན་་)',
         'Asia/Baku' => 'ཨ་ཛར་བྷའི་ཇཱན་ཆུ་ཚོད། (Baku་)',
         'Asia/Bangkok' => 'ཨིན་ཌོ་ཅཱའི་ན་ཆུ་ཚོད། (Bangkok་)',
-        'Asia/Barnaul' => 'ཨུ་རུ་སུ་ཆུ་ཚོད།། (Barnaul་)',
+        'Asia/Barnaul' => 'ཀརསི་ནོ་ཡརསཀི་ཆུ་ཚོད། (Barnaul་)',
         'Asia/Beirut' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Beirut་)',
         'Asia/Bishkek' => 'ཀིར་གིས་སཏཱན་ཆུ་ཚོད།། (Bishkek་)',
         'Asia/Brunei' => 'བྷྲུ་ནའི་ཆུ་ཚོད།། (Brunei་)',
         'Asia/Calcutta' => 'རྒྱ་གར་ཆུ་ཚོད། (Kolkata་)',
+        'Asia/Kolkata' => 'རྒྱ་གར་ཆུ་ཚོད། (Kolkata་)',
         'Asia/Chita' => 'ཡ་ཀུཙིཀི་ཆུ་ཚོད། (Chita་)',
         'Asia/Colombo' => 'རྒྱ་གར་ཆུ་ཚོད། (Colombo་)',
         'Asia/Damascus' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Damascus་)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Gaza་)',
         'Asia/Hebron' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Hebron་)',
         'Asia/Hong_Kong' => 'ཧོང་ཀོང་ཅཱའི་ན་ཆུ་ཚོད།། (Hong Kong་)',
-        'Asia/Hovd' => 'སོག་པོ་ཡུལ་ཆུ་ཚོད།། (Hovd་)',
+        'Asia/Hovd' => 'སོག་པོ་ཡུལ་ཆུ་ཚོད།། (Khovd་)',
         'Asia/Irkutsk' => 'ཨར་ཀུཙི་ཆུ་ཚོད། (Irkutsk་)',
         'Asia/Jakarta' => 'ནུབ་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད། (Jakarta་)',
         'Asia/Jayapura' => 'ཤར་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད། (Jayapura་)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ཨུ་རུ་སུ་ཆུ་ཚོད།། (Kamchatka་)',
         'Asia/Karachi' => 'པ་ཀི་ས྄ཏཱན་ཆུ་ཚོད། (Karachi་)',
         'Asia/Katmandu' => 'ནེ་པཱལ་ཆུ་ཚོད། (Kathmandu་)',
+        'Asia/Kathmandu' => 'ནེ་པཱལ་ཆུ་ཚོད། (Kathmandu་)',
         'Asia/Khandyga' => 'ཡ་ཀུཙིཀི་ཆུ་ཚོད། (Khandyga་)',
         'Asia/Krasnoyarsk' => 'ཀརསི་ནོ་ཡརསཀི་ཆུ་ཚོད། (Krasnoyarsk་)',
         'Asia/Kuala_Lumpur' => 'མ་ལེ་ཤི་ཡ་ཆུ་ཚོད།། (Kuala Lumpur་)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'གཱལཕི་ཆུ་ཚོད། (Muscat་)',
         'Asia/Nicosia' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Nicosia་)',
         'Asia/Novokuznetsk' => 'ཀརསི་ནོ་ཡརསཀི་ཆུ་ཚོད། (Novokuznetsk་)',
-        'Asia/Novosibirsk' => 'ནོ་བོ་སི་བིརསཀི་ཆུ་ཚོད། (Novosibirsk་)',
+        'Asia/Novosibirsk' => 'ཀརསི་ནོ་ཡརསཀི་ཆུ་ཚོད། (Novosibirsk་)',
         'Asia/Omsk' => 'ཨོམསཀི་ཆུ་ཚོད། (Omsk་)',
         'Asia/Oral' => 'ཀ་ཛགས་སཏཱན་ཆུ་ཚོད།། (Oral་)',
         'Asia/Phnom_Penh' => 'ཨིན་ཌོ་ཅཱའི་ན་ཆུ་ཚོད། (Phnom Penh་)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'ཀ་ཛགས་སཏཱན་ཆུ་ཚོད།། (Qostanay་)',
         'Asia/Qyzylorda' => 'ཀ་ཛགས་སཏཱན་ཆུ་ཚོད།། (Qyzylorda་)',
         'Asia/Rangoon' => 'མི་ཡཱན་མར་ (བྷར་མ)་ཆུ་ཚོད།། (Yangon་)',
+        'Asia/Yangon' => 'མི་ཡཱན་མར་ (བྷར་མ)་ཆུ་ཚོད།། (Yangon་)',
         'Asia/Riyadh' => 'ཨ་རེ་བྷི་ཡན་ཆུ་ཚོད། (Riyadh་)',
         'Asia/Saigon' => 'ཨིན་ཌོ་ཅཱའི་ན་ཆུ་ཚོད། (Ho Chi Minh་)',
-        'Asia/Sakhalin' => 'ས་ཁ་ལིན་ཆུ་ཚོད། (Sakhalin་)',
+        'Asia/Ho_Chi_Minh' => 'ཨིན་ཌོ་ཅཱའི་ན་ཆུ་ཚོད། (Ho Chi Minh་)',
+        'Asia/Sakhalin' => 'མ་གྷ་དཱན་ཆུ་ཚོད། (Sakhalin་)',
         'Asia/Samarkand' => 'ཨུས་བེག་གི་སཏཱན་ཆུ་ཚོད།། (Samarkand་)',
         'Asia/Seoul' => 'ཀོ་རི་ཡ་ཆུ་ཚོད། (Seoul་)',
         'Asia/Shanghai' => 'རྒྱ་ནག་ཆུ་ཚོད། (Shanghai་)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'ཨི་རཱན་ཆུ་ཚོད། (Tehran་)',
         'Asia/Thimphu' => 'འབྲུག་ཡུལ་ཆུ་ཚོད། (ཐིམ་ཕུག་)',
         'Asia/Tokyo' => 'ཇ་པཱན་ཆུ་ཚོད། (Tokyo་)',
-        'Asia/Tomsk' => 'ཨུ་རུ་སུ་ཆུ་ཚོད།། (Tomsk་)',
+        'Asia/Tomsk' => 'ཀརསི་ནོ་ཡརསཀི་ཆུ་ཚོད། (Tomsk་)',
         'Asia/Ulaanbaatar' => 'སོག་པོ་ཡུལ་ཆུ་ཚོད།། (Ulaanbaatar་)',
-        'Asia/Urumqi' => 'རྒྱ་ནག་ཆུ་ཚོད།། (Urumqi་)',
+        'Asia/Urumqi' => 'རྒྱ་ནག་ཆུ་ཚོད།། (Ürümqi་)',
         'Asia/Ust-Nera' => 'བ་ལ་ཌི་བོསི་ཏོཀ་ཆུ་ཚོད། (Ust-Nera་)',
         'Asia/Vientiane' => 'ཨིན་ཌོ་ཅཱའི་ན་ཆུ་ཚོད། (Vientiane་)',
         'Asia/Vladivostok' => 'བ་ལ་ཌི་བོསི་ཏོཀ་ཆུ་ཚོད། (Vladivostok་)',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'ཨར་མི་ནི་ཡ་ཆུ་ཚོད། (Yerevan་)',
         'Atlantic/Azores' => 'ཨེ་ཛོརས་ཆུ་ཚོད། (Azores་)',
         'Atlantic/Bermuda' => 'ཨེཊ་ལེན་ཊིཀ་ཆུ་ཚོད། (བར་མུ་ད་)',
-        'Atlantic/Canary' => 'ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Canary་)',
+        'Atlantic/Canary' => 'ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Canarias་)',
         'Atlantic/Cape_Verde' => 'ཀེཔ་བཱཌ་ཆུ་ཚོད། (Cape Verde་)',
         'Atlantic/Faeroe' => 'ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (ཕཱའེ་རོ་་)',
+        'Atlantic/Faroe' => 'ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (ཕཱའེ་རོ་་)',
         'Atlantic/Madeira' => 'ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Madeira་)',
         'Atlantic/Reykjavik' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Reykjavik་)',
         'Atlantic/South_Georgia' => 'སཱའུཐ་ཇཽར་ཇཱ་ དང་ སཱའུཐ་སེནཌ྄་ཝིཅ་གླིང་ཚོམ་ཆུ་ཚོད།། (South Georgia་)',
@@ -315,7 +331,7 @@
         'Etc/GMT' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད',
         'Europe/Amsterdam' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Amsterdam་)',
         'Europe/Andorra' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Andorra་)',
-        'Europe/Astrakhan' => 'མཽས་ཀོ་ཆུ་ཚོད། (Astrakhan་)',
+        'Europe/Astrakhan' => 'ཨུ་རུ་སུ་ཆུ་ཚོད།། (Astrakhan་)',
         'Europe/Athens' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (ཨེ་ཐེནས་་)',
         'Europe/Belgrade' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Belgrade་)',
         'Europe/Berlin' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Berlin་)',
@@ -323,8 +339,8 @@
         'Europe/Brussels' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Brussels་)',
         'Europe/Bucharest' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Bucharest་)',
         'Europe/Budapest' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Budapest་)',
-        'Europe/Busingen' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Busingen་)',
-        'Europe/Chisinau' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Chisinau་)',
+        'Europe/Busingen' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Büsingen་)',
+        'Europe/Chisinau' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Chișinău་)',
         'Europe/Copenhagen' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (ཀོ་པེན་ཧེ་གེན་)',
         'Europe/Dublin' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Dublin་)',
         'Europe/Gibraltar' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Gibraltar་)',
@@ -335,7 +351,8 @@
         'Europe/Jersey' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (Jersey་)',
         'Europe/Kaliningrad' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Kaliningrad་)',
         'Europe/Kiev' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Kyiv་)',
-        'Europe/Kirov' => 'ཨུ་རུ་སུ་ཆུ་ཚོད།། (Kirov་)',
+        'Europe/Kyiv' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Kyiv་)',
+        'Europe/Kirov' => 'མཽས་ཀོ་ཆུ་ཚོད། (Kirov་)',
         'Europe/Lisbon' => 'ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Lisbon་)',
         'Europe/Ljubljana' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Ljubljana་)',
         'Europe/London' => 'གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད། (London་)',
@@ -355,19 +372,19 @@
         'Europe/Samara' => 'ཨུ་རུ་སུ་ཆུ་ཚོད།། (Samara་)',
         'Europe/San_Marino' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (San Marino་)',
         'Europe/Sarajevo' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Sarajevo་)',
-        'Europe/Saratov' => 'མཽས་ཀོ་ཆུ་ཚོད། (Saratov་)',
+        'Europe/Saratov' => 'ཨུ་རུ་སུ་ཆུ་ཚོད།། (Saratov་)',
         'Europe/Simferopol' => 'མཽས་ཀོ་ཆུ་ཚོད། (Simferopol་)',
         'Europe/Skopje' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Skopje་)',
         'Europe/Sofia' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Sofia་)',
         'Europe/Stockholm' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Stockholm་)',
         'Europe/Tallinn' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (ཊཱ་ལཱིན་)',
-        'Europe/Tirane' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Tirane་)',
-        'Europe/Ulyanovsk' => 'མཽས་ཀོ་ཆུ་ཚོད། (Ulyanovsk་)',
+        'Europe/Tirane' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Tirana་)',
+        'Europe/Ulyanovsk' => 'ཨུ་རུ་སུ་ཆུ་ཚོད།། (Ulyanovsk་)',
         'Europe/Vaduz' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Vaduz་)',
         'Europe/Vatican' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Vatican་)',
         'Europe/Vienna' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Vienna་)',
         'Europe/Vilnius' => 'ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Vilnius་)',
-        'Europe/Volgograd' => 'བཱོལ་གོ་གིརེཌ་ཆུ་ཚོད། (Volgograd་)',
+        'Europe/Volgograd' => 'མཽས་ཀོ་ཆུ་ཚོད། (Volgograd་)',
         'Europe/Warsaw' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Warsaw་)',
         'Europe/Zagreb' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Zagreb་)',
         'Europe/Zurich' => 'དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཆུ་ཚོད། (Zurich་)',
@@ -375,9 +392,9 @@
         'Indian/Chagos' => 'རྒྱ་གར་གྱི་རྒྱ་མཚོ་ཆུ་ཚོད། (Chagos་)',
         'Indian/Christmas' => 'ཁི་རིསྟ་མེས་མཚོ་གླིང་ཆུ་ཚོད། (Christmas་)',
         'Indian/Cocos' => 'ཀོ་ཀོས་གླིང་ཚོམ་ཆུ་ཚོད།། (Cocos་)',
-        'Indian/Comoro' => 'ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Comoro་)',
+        'Indian/Comoro' => 'ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Comores་)',
         'Indian/Kerguelen' => 'ཕྲནཅ་གི་ལྷོ་ཕྱོགས་མངའ་ཁོངས་ཆུ་ཚོད།། (Kerguelen་)',
-        'Indian/Mahe' => 'སེ་ཤཱལས་ཆུ་ཚོད། (Mahe་)',
+        'Indian/Mahe' => 'སེ་ཤཱལས་ཆུ་ཚོད། (Mahé་)',
         'Indian/Maldives' => 'མཱལ་དིབས་ཆུ་ཚོད། (Maldives་)',
         'Indian/Mauritius' => 'མོ་རི་ཤཱས་ཆུ་ཚོད། (Mauritius་)',
         'Indian/Mayotte' => 'ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད། (Mayotte་)',
@@ -388,15 +405,16 @@
         'Pacific/Chatham' => 'ནིའུ་ཛི་ལེནཌ་ཆུ་ཚོད།། (Chatham་)',
         'Pacific/Easter' => 'ཨིསི་ཊར་ཨཱའི་ལེནཌ་ཆུ་ཚོད། (Easter་)',
         'Pacific/Efate' => 'ཝ་ནུ་ཨ་ཏུ་ཆུ་ཚོད།། (Efate་)',
-        'Pacific/Enderbury' => 'ཀི་རི་བ་ཏི་མཚོ་གླིང་ཆུ་ཚོད།། (Enderbury་)',
+        'Pacific/Enderbury' => 'ཀི་རི་བ་ཏི་མཚོ་གླིང་ཆུ་ཚོད།། (Canton་)',
+        'Pacific/Kanton' => 'ཀི་རི་བ་ཏི་མཚོ་གླིང་ཆུ་ཚོད།། (Canton་)',
         'Pacific/Fakaofo' => 'ཏོ་ཀེ་ལའུ་ མཚོ་གླིང་ཆུ་ཚོད།། (Fakaofo་)',
         'Pacific/Fiji' => 'ཕི་ཇི་ཆུ་ཚོད།། (Fiji་)',
         'Pacific/Funafuti' => 'ཏུ་ཝ་ལུ་ཆུ་ཚོད།། (Funafuti་)',
-        'Pacific/Galapagos' => 'ག་ལ་པ་གོསི་ཆུ་ཚོད། (Galapagos་)',
+        'Pacific/Galapagos' => 'ག་ལ་པ་གོསི་ཆུ་ཚོད། (Galápagos་)',
         'Pacific/Gambier' => 'ཕྲཱནས྄་ཀྱི་པོ་ལི་ནི་ཤི་ཡ་ཆུ་ཚོད།། (Gambier་)',
         'Pacific/Guadalcanal' => 'སོ་ལོ་མོན་ གླིང་ཚོམ་ཆུ་ཚོད།། (Guadalcanal་)',
         'Pacific/Guam' => 'གུ་འམ་ མཚོ་གླིང་ཆུ་ཚོད།། (Guam་)',
-        'Pacific/Honolulu' => 'ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཆུ་ཚོད། (Honolulu་)',
+        'Pacific/Honolulu' => 'ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཚད་ལྡན་ཆུ་ཚོད། (Honolulu་)',
         'Pacific/Kiritimati' => 'ཀི་རི་བ་ཏི་མཚོ་གླིང་ཆུ་ཚོད།། (Kiritimati་)',
         'Pacific/Kosrae' => 'མའི་ཀྲོ་ནི་ཤི་ཡ་ཆུ་ཚོད།། (Kosrae་)',
         'Pacific/Kwajalein' => 'མར་ཤེལ་གླིང་ཚོམ་ཆུ་ཚོད།། (Kwajalein་)',
@@ -406,11 +424,12 @@
         'Pacific/Nauru' => 'ནའུ་རུ་་ཆུ་ཚོད།། (Nauru་)',
         'Pacific/Niue' => 'ནི་ཨུ་ཨཻ་ཆུ་ཚོད།། (Niue་)',
         'Pacific/Norfolk' => 'ནོར་ཕོལཀ་མཚོ་གླིང༌་ཆུ་ཚོད།། (Norfolk་)',
-        'Pacific/Noumea' => 'ནིའུ་ཀ་ལི་དོ་ནི་ཡ་ཆུ་ཚོད།། (Noumea་)',
+        'Pacific/Noumea' => 'ནིའུ་ཀ་ལི་དོ་ནི་ཡ་ཆུ་ཚོད།། (Nouméa་)',
         'Pacific/Pago_Pago' => 'ས་མོ་ཨ་ཡུ་ཨེས་ཨེ་མངའ་ཁོངས་ཆུ་ཚོད།། (Pago Pago་)',
         'Pacific/Palau' => 'པ་ལའུ་ཆུ་ཚོད།། (Palau་)',
         'Pacific/Pitcairn' => 'པིཊ་ཀེ་ཡེརན་གླིང་ཚོམ་ཆུ་ཚོད།། (Pitcairn་)',
         'Pacific/Ponape' => 'མའི་ཀྲོ་ནི་ཤི་ཡ་ཆུ་ཚོད།། (Pohnpei་)',
+        'Pacific/Pohnpei' => 'མའི་ཀྲོ་ནི་ཤི་ཡ་ཆུ་ཚོད།། (Pohnpei་)',
         'Pacific/Port_Moresby' => 'པ་པུ་ ནིའུ་གི་ནི་ཆུ་ཚོད།། (Port Moresby་)',
         'Pacific/Rarotonga' => 'ཀུག་གླིང་ཚོམ་ཆུ་ཚོད།། (Rarotonga་)',
         'Pacific/Saipan' => 'བྱང་ཕྱོགས་ཀྱི་མ་ར་ཡ་ན་གླིང་ཚོམ་ཆུ་ཚོད།། (Saipan་)',
@@ -418,8 +437,9 @@
         'Pacific/Tarawa' => 'ཀི་རི་བ་ཏི་མཚོ་གླིང་ཆུ་ཚོད།། (Tarawa་)',
         'Pacific/Tongatapu' => 'ཊོང་གྷ་ཆུ་ཚོད།། (Tongatapu་)',
         'Pacific/Truk' => 'མའི་ཀྲོ་ནི་ཤི་ཡ་ཆུ་ཚོད།། (Chuuk་)',
+        'Pacific/Chuuk' => 'མའི་ཀྲོ་ནི་ཤི་ཡ་ཆུ་ཚོད།། (Chuuk་)',
         'Pacific/Wake' => 'ཡུ་ཨེས་གྱི་མཐའ་མཚམས་མཚོ་གླིང་་ཆུ་ཚོད།། (Wake་)',
-        'Pacific/Wallis' => 'ཝལ་ལིས྄་ ཨེནཌ་ ཕུ་ཏུ་ན་་ཆུ་ཚོད།། (Wallis་)',
+        'Pacific/Wallis' => 'ཝལ་ལིས྄་ ཨེནཌ་ ཕུ་ཏུ་ན་་ཆུ་ཚོད།། (Wallis & Futuna་)',
     ],
     'Meta' => [
         'GmtFormat' => 'ཇི་ཨེམ་ཏི་%s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ee.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ee.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ee.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ee.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,28 +2,29 @@
 
 return [
     'Names' => [
-        'Africa/Abidjan' => 'Greenwich gaƒoƒo me (Abidjan)',
-        'Africa/Accra' => 'Greenwich gaƒoƒo me (Accra)',
+        'Africa/Abidjan' => 'Greenwich gaƒoƒo (Abidjan)',
+        'Africa/Accra' => 'Greenwich gaƒoƒo (Accra)',
         'Africa/Addis_Ababa' => 'East Africa gaƒoƒo me (Addis Ababa)',
         'Africa/Algiers' => 'Central Europe gaƒoƒo me (Algiers)',
         'Africa/Asmera' => 'East Africa gaƒoƒo me (Asmara)',
-        'Africa/Bamako' => 'Greenwich gaƒoƒo me (Bamako)',
+        'Africa/Asmara' => 'East Africa gaƒoƒo me (Asmara)',
+        'Africa/Bamako' => 'Greenwich gaƒoƒo (Bamako)',
         'Africa/Bangui' => 'West Africa game (Bangui)',
-        'Africa/Banjul' => 'Greenwich gaƒoƒo me (Banjul)',
-        'Africa/Bissau' => 'Greenwich gaƒoƒo me (Bissau)',
+        'Africa/Banjul' => 'Greenwich gaƒoƒo (Banjul)',
+        'Africa/Bissau' => 'Greenwich gaƒoƒo (Bissau)',
         'Africa/Blantyre' => 'Central Africa gaƒoƒo me (Blantyre)',
         'Africa/Brazzaville' => 'West Africa game (Brazzaville)',
         'Africa/Bujumbura' => 'Central Africa gaƒoƒo me (Bujumbura)',
         'Africa/Cairo' => 'Ɣedzeƒe Europe gaƒoƒome (Cairo)',
         'Africa/Casablanca' => 'Western Europe gaƒoƒo me (Casablanca)',
         'Africa/Ceuta' => 'Central Europe gaƒoƒo me (Ceuta)',
-        'Africa/Conakry' => 'Greenwich gaƒoƒo me (Conakry)',
-        'Africa/Dakar' => 'Greenwich gaƒoƒo me (Dakar)',
+        'Africa/Conakry' => 'Greenwich gaƒoƒo (Conakry)',
+        'Africa/Dakar' => 'Greenwich gaƒoƒo (Dakar)',
         'Africa/Dar_es_Salaam' => 'East Africa gaƒoƒo me (Dar es Salaam)',
         'Africa/Djibouti' => 'East Africa gaƒoƒo me (Djibouti)',
         'Africa/Douala' => 'West Africa game (Douala)',
-        'Africa/El_Aaiun' => 'Western Europe gaƒoƒo me (El Aaiun)',
-        'Africa/Freetown' => 'Greenwich gaƒoƒo me (Freetown)',
+        'Africa/El_Aaiun' => 'Western Europe gaƒoƒo me (El Aaiún)',
+        'Africa/Freetown' => 'Greenwich gaƒoƒo (Freetown)',
         'Africa/Gaborone' => 'Central Africa gaƒoƒo me (Gaborone)',
         'Africa/Harare' => 'Central Africa gaƒoƒo me (Harare)',
         'Africa/Johannesburg' => 'South Africa nutome gaƒoƒo me (Johannesburg)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'West Africa game (Kinshasa)',
         'Africa/Lagos' => 'West Africa game (Lagos)',
         'Africa/Libreville' => 'West Africa game (Libreville)',
-        'Africa/Lome' => 'Greenwich gaƒoƒo me (Lome)',
+        'Africa/Lome' => 'Greenwich gaƒoƒo (Lomé)',
         'Africa/Luanda' => 'West Africa game (Luanda)',
         'Africa/Lubumbashi' => 'Central Africa gaƒoƒo me (Lubumbashi)',
         'Africa/Lusaka' => 'Central Africa gaƒoƒo me (Lusaka)',
@@ -43,14 +44,14 @@
         'Africa/Maseru' => 'South Africa nutome gaƒoƒo me (Maseru)',
         'Africa/Mbabane' => 'South Africa nutome gaƒoƒo me (Mbabane)',
         'Africa/Mogadishu' => 'East Africa gaƒoƒo me (Mogadishu)',
-        'Africa/Monrovia' => 'Greenwich gaƒoƒo me (Monrovia)',
+        'Africa/Monrovia' => 'Greenwich gaƒoƒo (Monrovia)',
         'Africa/Nairobi' => 'East Africa gaƒoƒo me (Nairobi)',
-        'Africa/Ndjamena' => 'West Africa game (Ndjamena)',
+        'Africa/Ndjamena' => 'West Africa game (N’Djamena)',
         'Africa/Niamey' => 'West Africa game (Niamey)',
-        'Africa/Nouakchott' => 'Greenwich gaƒoƒo me (Nouakchott)',
-        'Africa/Ouagadougou' => 'Greenwich gaƒoƒo me (Ouagadougou)',
+        'Africa/Nouakchott' => 'Greenwich gaƒoƒo (Nouakchott)',
+        'Africa/Ouagadougou' => 'Greenwich gaƒoƒo (Ouagadougou)',
         'Africa/Porto-Novo' => 'West Africa game (Porto-Novo)',
-        'Africa/Sao_Tome' => 'Greenwich gaƒoƒo me (São Tomé)',
+        'Africa/Sao_Tome' => 'Greenwich gaƒoƒo (São Tomé)',
         'Africa/Tripoli' => 'Ɣedzeƒe Europe gaƒoƒome (Tripoli)',
         'Africa/Tunis' => 'Central Europe gaƒoƒo me (Tunis)',
         'Africa/Windhoek' => 'Central Africa gaƒoƒo me (Windhoek)',
@@ -58,55 +59,61 @@
         'America/Anchorage' => 'Alaska gaƒoƒome (Anchorage)',
         'America/Anguilla' => 'Atlantic gaƒoƒome (Anguilla)',
         'America/Antigua' => 'Atlantic gaƒoƒome (Antigua)',
-        'America/Araguaina' => 'Brasilia gaƒoƒo me (Araguaina)',
+        'America/Araguaina' => 'Brasilia gaƒoƒo me (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentina gaƒoƒo me (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentina gaƒoƒo me (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentina gaƒoƒo me (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentina gaƒoƒo me (Salta)',
         'America/Argentina/San_Juan' => 'Argentina gaƒoƒo me (San Juan)',
         'America/Argentina/San_Luis' => 'Argentina gaƒoƒo me (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentina gaƒoƒo me (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentina gaƒoƒo me (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentina gaƒoƒo me (Ushuaia)',
         'America/Aruba' => 'Atlantic gaƒoƒome (Aruba)',
         'America/Asuncion' => 'Paraguay gaƒoƒo me (Asunción)',
         'America/Bahia' => 'Brasilia gaƒoƒo me (Bahia)',
         'America/Bahia_Banderas' => 'Titina America gaƒoƒome (Bahia Banderas)',
         'America/Barbados' => 'Atlantic gaƒoƒome (Barbados)',
-        'America/Belem' => 'Brasilia gaƒoƒo me (Belem)',
+        'America/Belem' => 'Brasilia gaƒoƒo me (Belém)',
         'America/Belize' => 'Titina America gaƒoƒome (Belize)',
         'America/Blanc-Sablon' => 'Atlantic gaƒoƒome (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazon gaƒoƒome (Boa Vista)',
-        'America/Bogota' => 'Colombia gaƒoƒo me (Bogota)',
+        'America/Bogota' => 'Colombia gaƒoƒo me (Bogotá)',
         'America/Boise' => 'Mountain gaƒoƒo me (Boise)',
         'America/Buenos_Aires' => 'Argentina gaƒoƒo me (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentina gaƒoƒo me (Buenos Aires)',
         'America/Cambridge_Bay' => 'Mountain gaƒoƒo me (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazon gaƒoƒome (Campo Grande)',
         'America/Cancun' => 'Eastern America gaƒoƒo me (Cancun)',
         'America/Caracas' => 'Venezuela gaƒoƒo me (Caracas)',
         'America/Catamarca' => 'Argentina gaƒoƒo me (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentina gaƒoƒo me (Catamarca)',
         'America/Cayenne' => 'French Guiana gaƒoƒo me (Cayenne)',
         'America/Cayman' => 'Eastern America gaƒoƒo me (Cayman)',
         'America/Chicago' => 'Titina America gaƒoƒome (Chicago)',
         'America/Chihuahua' => 'Titina America gaƒoƒome (Chihuahua)',
         'America/Ciudad_Juarez' => 'Mountain gaƒoƒo me (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Eastern America gaƒoƒo me (Atikokan)',
-        'America/Cordoba' => 'Argentina gaƒoƒo me (Cordoba)',
+        'America/Atikokan' => 'Eastern America gaƒoƒo me (Atikokan)',
+        'America/Cordoba' => 'Argentina gaƒoƒo me (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentina gaƒoƒo me (Córdoba)',
         'America/Costa_Rica' => 'Titina America gaƒoƒome (Costa Rica)',
+        'America/Coyhaique' => 'Chile gaƒoƒo me (Coyhaique)',
         'America/Creston' => 'Mountain gaƒoƒo me (Creston)',
-        'America/Cuiaba' => 'Amazon gaƒoƒome (Cuiaba)',
+        'America/Cuiaba' => 'Amazon gaƒoƒome (Cuiabá)',
         'America/Curacao' => 'Atlantic gaƒoƒome (Curaçao)',
-        'America/Danmarkshavn' => 'Greenwich gaƒoƒo me (Danmarkshavn)',
+        'America/Danmarkshavn' => 'Greenwich gaƒoƒo (Danmarkshavn)',
         'America/Dawson' => 'Canada nutome game (Dawson)',
         'America/Dawson_Creek' => 'Mountain gaƒoƒo me (Dawson Creek)',
         'America/Denver' => 'Mountain gaƒoƒo me (Denver)',
         'America/Detroit' => 'Eastern America gaƒoƒo me (Detroit)',
         'America/Dominica' => 'Atlantic gaƒoƒome (Dominica)',
         'America/Edmonton' => 'Mountain gaƒoƒo me (Edmonton)',
-        'America/Eirunepe' => 'Brazil nutome game (Eirunepe)',
+        'America/Eirunepe' => 'Brazil nutome game (Eirunepé)',
         'America/El_Salvador' => 'Titina America gaƒoƒome (El Salvador)',
         'America/Fort_Nelson' => 'Mountain gaƒoƒo me (Fort Nelson)',
         'America/Fortaleza' => 'Brasilia gaƒoƒo me (Fortaleza)',
         'America/Glace_Bay' => 'Atlantic gaƒoƒome (Glace Bay)',
         'America/Godthab' => 'Grinland nutome game (Nuuk)',
+        'America/Nuuk' => 'Grinland nutome game (Nuuk)',
         'America/Goose_Bay' => 'Atlantic gaƒoƒome (Goose Bay)',
         'America/Grand_Turk' => 'Eastern America gaƒoƒo me (Grand Turk)',
         'America/Grenada' => 'Atlantic gaƒoƒome (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Eastern America gaƒoƒo me (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Eastern America gaƒoƒo me (Winamac, Indiana)',
         'America/Indianapolis' => 'Eastern America gaƒoƒo me (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Eastern America gaƒoƒo me (Indianapolis)',
         'America/Inuvik' => 'Mountain gaƒoƒo me (Inuvik)',
         'America/Iqaluit' => 'Eastern America gaƒoƒo me (Iqaluit)',
         'America/Jamaica' => 'Eastern America gaƒoƒo me (Jamaica)',
         'America/Jujuy' => 'Argentina gaƒoƒo me (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentina gaƒoƒo me (Jujuy)',
         'America/Juneau' => 'Alaska gaƒoƒome (Juneau)',
         'America/Kentucky/Monticello' => 'Eastern America gaƒoƒo me (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantic gaƒoƒome (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Peru gaƒoƒo me (Lima)',
         'America/Los_Angeles' => 'Pacific gaƒoƒome (Los Angeles)',
         'America/Louisville' => 'Eastern America gaƒoƒo me (Louisville)',
+        'America/Kentucky/Louisville' => 'Eastern America gaƒoƒo me (Louisville)',
         'America/Lower_Princes' => 'Atlantic gaƒoƒome (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasilia gaƒoƒo me (Maceio)',
+        'America/Maceio' => 'Brasilia gaƒoƒo me (Maceió)',
         'America/Managua' => 'Titina America gaƒoƒome (Managua)',
         'America/Manaus' => 'Amazon gaƒoƒome (Manaus)',
         'America/Marigot' => 'Atlantic gaƒoƒome (Marigot)',
         'America/Martinique' => 'Atlantic gaƒoƒome (Martinique)',
         'America/Matamoros' => 'Titina America gaƒoƒome (Matamoros)',
-        'America/Mazatlan' => 'Mexican Pacific gaƒoƒo me (Mazatlan)',
+        'America/Mazatlan' => 'Mexican Pacific gaƒoƒo me (Mazatlán)',
         'America/Mendoza' => 'Argentina gaƒoƒo me (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentina gaƒoƒo me (Mendoza)',
         'America/Menominee' => 'Titina America gaƒoƒome (Menominee)',
         'America/Merida' => 'Titina America gaƒoƒome (Merida)',
         'America/Metlakatla' => 'Alaska gaƒoƒome (Metlakatla)',
-        'America/Mexico_City' => 'Titina America gaƒoƒome (Mexico City)',
-        'America/Miquelon' => 'St. Pierre & Miquelon gaƒoƒome',
+        'America/Mexico_City' => 'Titina America gaƒoƒome (Ciudad de México)',
+        'America/Miquelon' => 'St. Pierre & Miquelon gaƒoƒome (Saint-Pierre)',
         'America/Moncton' => 'Atlantic gaƒoƒome (Moncton)',
         'America/Monterrey' => 'Titina America gaƒoƒome (Monterrey)',
         'America/Montevideo' => 'Uruguay gaƒoƒo me (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Titina America gaƒoƒome (Regina)',
         'America/Resolute' => 'Titina America gaƒoƒome (Resolute)',
         'America/Rio_Branco' => 'Brazil nutome game (Rio Branco)',
-        'America/Santarem' => 'Brasilia gaƒoƒo me (Santarem)',
+        'America/Santarem' => 'Brasilia gaƒoƒo me (Santarém)',
         'America/Santiago' => 'Chile gaƒoƒo me (Santiago)',
         'America/Santo_Domingo' => 'Atlantic gaƒoƒome (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasilia gaƒoƒo me (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brasilia gaƒoƒo me (São Paulo)',
         'America/Scoresbysund' => 'Grinland nutome game (Ittoqqortoormiit)',
         'America/Sitka' => 'Alaska gaƒoƒome (Sitka)',
         'America/St_Barthelemy' => 'Atlantic gaƒoƒome (St. Barthélemy)',
@@ -205,8 +216,8 @@
         'Antarctica/McMurdo' => 'New Zealand gaƒoƒo me (McMurdo)',
         'Antarctica/Palmer' => 'Chile gaƒoƒo me (Palmer)',
         'Antarctica/Rothera' => 'Rothera gaƒoƒo me',
-        'Antarctica/Syowa' => 'Syowa gaƒoƒo me',
-        'Antarctica/Troll' => 'Greenwich gaƒoƒo me (Troll)',
+        'Antarctica/Syowa' => 'Syowa gaƒoƒo me (Showa)',
+        'Antarctica/Troll' => 'Greenwich gaƒoƒo (Troll)',
         'Antarctica/Vostok' => 'Vostok gaƒoƒo me',
         'Arctic/Longyearbyen' => 'Central Europe gaƒoƒo me (Longyearbyen)',
         'Asia/Aden' => 'Arabia gaƒoƒo me (Aden)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabia gaƒoƒo me (Bahrain)',
         'Asia/Baku' => 'Azerbaijan gaƒoƒo me (Baku)',
         'Asia/Bangkok' => 'Indonesia gaƒoƒo me (Bangkok)',
-        'Asia/Barnaul' => 'Russia nutome game (Barnaul)',
+        'Asia/Barnaul' => 'Krasnoyarsk gaƒoƒo me (Barnaul)',
         'Asia/Beirut' => 'Ɣedzeƒe Europe gaƒoƒome (Beirut)',
         'Asia/Bishkek' => 'Kyrgystan gaƒoƒo me (Bishkek)',
         'Asia/Brunei' => 'Brunei Darussalam gaƒoƒo me',
         'Asia/Calcutta' => 'India gaƒoƒo me (Kolkata)',
+        'Asia/Kolkata' => 'India gaƒoƒo me (Kolkata)',
         'Asia/Chita' => 'Yakutsk gaƒoƒo me (Chita)',
         'Asia/Colombo' => 'India gaƒoƒo me (Colombo)',
         'Asia/Damascus' => 'Ɣedzeƒe Europe gaƒoƒome (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Ɣedzeƒe Europe gaƒoƒome (Gaza)',
         'Asia/Hebron' => 'Ɣedzeƒe Europe gaƒoƒome (Hebron)',
         'Asia/Hong_Kong' => 'Hong Kong gaƒoƒo me',
-        'Asia/Hovd' => 'Hovd gaƒoƒo me',
+        'Asia/Hovd' => 'Hovd gaƒoƒo me (Khovd)',
         'Asia/Irkutsk' => 'Irkutsk gaƒoƒo me',
         'Asia/Jakarta' => 'Western Indonesia gaƒoƒo me (Jakarta)',
         'Asia/Jayapura' => 'Eastern Indonesia gaƒoƒo me (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Russia nutome game (Kamchatka)',
         'Asia/Karachi' => 'Pakistan gaƒoƒo me (Karachi)',
         'Asia/Katmandu' => 'Nepal gaƒoƒo me (Kathmandu nutomegaƒoƒome)',
+        'Asia/Kathmandu' => 'Nepal gaƒoƒo me (Kathmandu nutomegaƒoƒome)',
         'Asia/Khandyga' => 'Yakutsk gaƒoƒo me (Khandyga)',
         'Asia/Krasnoyarsk' => 'Krasnoyarsk gaƒoƒo me',
         'Asia/Kuala_Lumpur' => 'Malaysia gaƒoƒo me (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Gulf nutome gaƒoƒo me (Muscat)',
         'Asia/Nicosia' => 'Ɣedzeƒe Europe gaƒoƒome (Nicosia)',
         'Asia/Novokuznetsk' => 'Krasnoyarsk gaƒoƒo me (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk gaƒoƒo me',
+        'Asia/Novosibirsk' => 'Krasnoyarsk gaƒoƒo me (Novosibirsk)',
         'Asia/Omsk' => 'Omsk gaƒoƒo me',
         'Asia/Oral' => 'Kazakstan nutome game (Oral)',
         'Asia/Phnom_Penh' => 'Indonesia gaƒoƒo me (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazakstan nutome game (Qostanay)',
         'Asia/Qyzylorda' => 'Kazakstan nutome game (Qyzylorda)',
         'Asia/Rangoon' => 'Myanmar gaƒoƒo me (Yangon)',
+        'Asia/Yangon' => 'Myanmar gaƒoƒo me (Yangon)',
         'Asia/Riyadh' => 'Arabia gaƒoƒo me (Riyadh)',
         'Asia/Saigon' => 'Indonesia gaƒoƒo me (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Sakhalin gaƒoƒo me',
+        'Asia/Ho_Chi_Minh' => 'Indonesia gaƒoƒo me (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Magadan gaƒoƒo me (Sakhalin)',
         'Asia/Samarkand' => 'Uzbekistan gaƒoƒo me (Samarkand)',
         'Asia/Seoul' => 'Korea gaƒoƒo me (Seoul)',
         'Asia/Shanghai' => 'China gaƒoƒo me (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Iran gaƒoƒo me (Tehran)',
         'Asia/Thimphu' => 'Bhutan gaƒoƒo me (Thimphu)',
         'Asia/Tokyo' => 'Japan gaƒoƒo me (Tokyo)',
-        'Asia/Tomsk' => 'Russia nutome game (Tomsk)',
+        'Asia/Tomsk' => 'Krasnoyarsk gaƒoƒo me (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulan Bator gaƒoƒo me (Ulaanbaatar)',
-        'Asia/Urumqi' => 'Tsaina nutome game (Urumqi)',
+        'Asia/Urumqi' => 'Tsaina nutome game (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostok gaƒoƒo me (Ust-Nera)',
         'Asia/Vientiane' => 'Indonesia gaƒoƒo me (Vientiane)',
         'Asia/Vladivostok' => 'Vladivostok gaƒoƒo me',
@@ -293,13 +308,14 @@
         'Asia/Yerevan' => 'Armenia gaƒoƒo me (Yerevan)',
         'Atlantic/Azores' => 'Azores gaƒoƒo me',
         'Atlantic/Bermuda' => 'Atlantic gaƒoƒome (Bermuda)',
-        'Atlantic/Canary' => 'Western Europe gaƒoƒo me (Canary)',
+        'Atlantic/Canary' => 'Western Europe gaƒoƒo me (Canarias)',
         'Atlantic/Cape_Verde' => 'Cape Verde gaƒoƒo me',
         'Atlantic/Faeroe' => 'Western Europe gaƒoƒo me (Faroe)',
+        'Atlantic/Faroe' => 'Western Europe gaƒoƒo me (Faroe)',
         'Atlantic/Madeira' => 'Western Europe gaƒoƒo me (Madeira)',
-        'Atlantic/Reykjavik' => 'Greenwich gaƒoƒo me (Reykjavik)',
+        'Atlantic/Reykjavik' => 'Greenwich gaƒoƒo (Reykjavik)',
         'Atlantic/South_Georgia' => 'South Georgia gaƒoƒo me',
-        'Atlantic/St_Helena' => 'Greenwich gaƒoƒo me (St. Helena)',
+        'Atlantic/St_Helena' => 'Greenwich gaƒoƒo (St. Helena)',
         'Atlantic/Stanley' => 'Falkland Islands gaƒoƒo me (Stanley)',
         'Australia/Adelaide' => 'Central Australia gaƒoƒo me (Adelaide)',
         'Australia/Brisbane' => 'Eastern Australia gaƒoƒo me (Brisbane)',
@@ -312,11 +328,11 @@
         'Australia/Melbourne' => 'Eastern Australia gaƒoƒo me (Melbourne)',
         'Australia/Perth' => 'Western Australia gaƒoƒo me (Perth)',
         'Australia/Sydney' => 'Eastern Australia gaƒoƒo me (Sydney)',
-        'Etc/GMT' => 'Greenwich gaƒoƒo me',
+        'Etc/GMT' => 'Greenwich gaƒoƒo',
         'Etc/UTC' => 'Xexeme gaƒoƒoɖoanyi me',
         'Europe/Amsterdam' => 'Central Europe gaƒoƒo me (Amsterdam)',
         'Europe/Andorra' => 'Central Europe gaƒoƒo me (Andorra)',
-        'Europe/Astrakhan' => 'Moscow gaƒoƒo me (Astrakhan)',
+        'Europe/Astrakhan' => 'Russia nutome game (Astrakhan)',
         'Europe/Athens' => 'Ɣedzeƒe Europe gaƒoƒome (Athens)',
         'Europe/Belgrade' => 'Central Europe gaƒoƒo me (Belgrade)',
         'Europe/Berlin' => 'Central Europe gaƒoƒo me (Berlin)',
@@ -324,22 +340,23 @@
         'Europe/Brussels' => 'Central Europe gaƒoƒo me (Brussels)',
         'Europe/Bucharest' => 'Ɣedzeƒe Europe gaƒoƒome (Bucharest)',
         'Europe/Budapest' => 'Central Europe gaƒoƒo me (Budapest)',
-        'Europe/Busingen' => 'Central Europe gaƒoƒo me (Busingen)',
-        'Europe/Chisinau' => 'Ɣedzeƒe Europe gaƒoƒome (Chisinau)',
+        'Europe/Busingen' => 'Central Europe gaƒoƒo me (Büsingen)',
+        'Europe/Chisinau' => 'Ɣedzeƒe Europe gaƒoƒome (Chișinău)',
         'Europe/Copenhagen' => 'Central Europe gaƒoƒo me (Copenhagen)',
-        'Europe/Dublin' => 'Greenwich gaƒoƒo me (Dublin)',
+        'Europe/Dublin' => 'Greenwich gaƒoƒo (Dublin)',
         'Europe/Gibraltar' => 'Central Europe gaƒoƒo me (Gibraltar)',
-        'Europe/Guernsey' => 'Greenwich gaƒoƒo me (Guernsey)',
+        'Europe/Guernsey' => 'Greenwich gaƒoƒo (Guernsey)',
         'Europe/Helsinki' => 'Ɣedzeƒe Europe gaƒoƒome (Helsinki)',
-        'Europe/Isle_of_Man' => 'Greenwich gaƒoƒo me (Isle of Man)',
+        'Europe/Isle_of_Man' => 'Greenwich gaƒoƒo (Isle of Man)',
         'Europe/Istanbul' => 'Tɛki nutome game (Istanbul)',
-        'Europe/Jersey' => 'Greenwich gaƒoƒo me (Jersey)',
+        'Europe/Jersey' => 'Greenwich gaƒoƒo (Jersey)',
         'Europe/Kaliningrad' => 'Ɣedzeƒe Europe gaƒoƒome (Kaliningrad)',
         'Europe/Kiev' => 'Ɣedzeƒe Europe gaƒoƒome (Kiev)',
-        'Europe/Kirov' => 'Russia nutome game (Kirov)',
+        'Europe/Kyiv' => 'Ɣedzeƒe Europe gaƒoƒome (Kiev)',
+        'Europe/Kirov' => 'Moscow gaƒoƒo me (Kirov)',
         'Europe/Lisbon' => 'Western Europe gaƒoƒo me (Lisbon)',
         'Europe/Ljubljana' => 'Central Europe gaƒoƒo me (Ljubljana)',
-        'Europe/London' => 'Greenwich gaƒoƒo me (London)',
+        'Europe/London' => 'Greenwich gaƒoƒo (London)',
         'Europe/Luxembourg' => 'Central Europe gaƒoƒo me (Luxembourg)',
         'Europe/Madrid' => 'Central Europe gaƒoƒo me (Madrid)',
         'Europe/Malta' => 'Central Europe gaƒoƒo me (Malta)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Russia nutome game (Samara)',
         'Europe/San_Marino' => 'Central Europe gaƒoƒo me (San Marino)',
         'Europe/Sarajevo' => 'Central Europe gaƒoƒo me (Sarajevo)',
-        'Europe/Saratov' => 'Moscow gaƒoƒo me (Saratov)',
+        'Europe/Saratov' => 'Russia nutome game (Saratov)',
         'Europe/Simferopol' => 'Moscow gaƒoƒo me (Simferopol)',
         'Europe/Skopje' => 'Central Europe gaƒoƒo me (Skopje)',
         'Europe/Sofia' => 'Ɣedzeƒe Europe gaƒoƒome (Sofia)',
         'Europe/Stockholm' => 'Central Europe gaƒoƒo me (Stockholm)',
         'Europe/Tallinn' => 'Ɣedzeƒe Europe gaƒoƒome (Tallinn)',
-        'Europe/Tirane' => 'Central Europe gaƒoƒo me (Tirane)',
-        'Europe/Ulyanovsk' => 'Moscow gaƒoƒo me (Ulyanovsk)',
+        'Europe/Tirane' => 'Central Europe gaƒoƒo me (Tirana)',
+        'Europe/Ulyanovsk' => 'Russia nutome game (Ulyanovsk)',
         'Europe/Vaduz' => 'Central Europe gaƒoƒo me (Vaduz)',
         'Europe/Vatican' => 'Central Europe gaƒoƒo me (Vatican)',
         'Europe/Vienna' => 'Central Europe gaƒoƒo me (Vienna)',
         'Europe/Vilnius' => 'Ɣedzeƒe Europe gaƒoƒome (Vilnius)',
-        'Europe/Volgograd' => 'Volgograd gaƒoƒo me',
+        'Europe/Volgograd' => 'Moscow gaƒoƒo me (Volgograd)',
         'Europe/Warsaw' => 'Central Europe gaƒoƒo me (Warsaw)',
         'Europe/Zagreb' => 'Central Europe gaƒoƒo me (Zagreb)',
         'Europe/Zurich' => 'Central Europe gaƒoƒo me (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Indian Ocean gaƒoƒo me (Chagos)',
         'Indian/Christmas' => 'Christmas Island gaƒoƒo me',
         'Indian/Cocos' => 'Cocos Islands gaƒoƒo me',
-        'Indian/Comoro' => 'East Africa gaƒoƒo me (Comoro)',
+        'Indian/Comoro' => 'East Africa gaƒoƒo me (Comores)',
         'Indian/Kerguelen' => 'French Southern & Antarctic gaƒoƒo me (Kerguelen)',
-        'Indian/Mahe' => 'Seychelles gaƒoƒo me (Mahe)',
+        'Indian/Mahe' => 'Seychelles gaƒoƒo me (Mahé)',
         'Indian/Maldives' => 'Maldives gaƒoƒo me',
         'Indian/Mauritius' => 'Mauritius gaƒoƒo me',
         'Indian/Mayotte' => 'East Africa gaƒoƒo me (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Chatham gaƒoƒo me',
         'Pacific/Easter' => 'Easter Island gaƒoƒo me',
         'Pacific/Efate' => 'Vanuatu gaƒoƒo me (Efate)',
-        'Pacific/Enderbury' => 'Phoenix Islands gaƒoƒo me (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenix Islands gaƒoƒo me (Canton)',
+        'Pacific/Kanton' => 'Phoenix Islands gaƒoƒo me (Canton)',
         'Pacific/Fakaofo' => 'Tokelau gaƒoƒo me (Fakaofo)',
         'Pacific/Fiji' => 'Fiji gaƒoƒo me',
         'Pacific/Funafuti' => 'Tuvalu gaƒoƒo me (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos gaƒoƒo me',
+        'Pacific/Galapagos' => 'Galapagos gaƒoƒo me (Galápagos)',
         'Pacific/Gambier' => 'Gambier gaƒoƒo me',
         'Pacific/Guadalcanal' => 'Solomon Islands gaƒoƒo me (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro gaƒoƒo me (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleutia gaƒoƒo me (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleutia nutome gaƒoƒo me (Honolulu)',
         'Pacific/Kiritimati' => 'Line Islands gaƒoƒo me (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae gaƒoƒo me',
         'Pacific/Kwajalein' => 'Marshall Islands gaƒoƒo me (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Nauru gaƒoƒo me',
         'Pacific/Niue' => 'Niue gaƒoƒo me',
         'Pacific/Norfolk' => 'Norfolk Island gaƒoƒo me',
-        'Pacific/Noumea' => 'New Caledonia gaƒoƒo me (Noumea)',
+        'Pacific/Noumea' => 'New Caledonia gaƒoƒo me (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoa gaƒoƒo me (Pago Pago)',
         'Pacific/Palau' => 'Palau gaƒoƒo me',
         'Pacific/Pitcairn' => 'Pitcairn gaƒoƒo me',
         'Pacific/Ponape' => 'Ponape gaƒoƒo me (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponape gaƒoƒo me (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papua New Guinea gaƒoƒo me (Port Moresby)',
         'Pacific/Rarotonga' => 'Cook Islands gaƒoƒo me (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro gaƒoƒo me (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Gilbert Islands gaƒoƒo me (Tarawa)',
         'Pacific/Tongatapu' => 'Tonga gaƒoƒo me (Tongatapu)',
         'Pacific/Truk' => 'Chuuk gaƒoƒo me',
+        'Pacific/Chuuk' => 'Chuuk gaƒoƒo me',
         'Pacific/Wake' => 'Wake Island gaƒoƒo me',
         'Pacific/Wallis' => 'Wallis & Futuna gaƒoƒo me',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/el.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/el.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/el.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/el.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => '[Ώρα Ανατολικής Αφρικής (Αντίς Αμπέμπα)]',
         'Africa/Algiers' => '[Ώρα Κεντρικής Ευρώπης (Αλγέρι)]',
         'Africa/Asmera' => '[Ώρα Ανατολικής Αφρικής (Ασμάρα)]',
+        'Africa/Asmara' => '[Ώρα Ανατολικής Αφρικής (Ασμάρα)]',
         'Africa/Bamako' => '[Μέση ώρα Γκρίνουιτς (Μπαμάκο)]',
         'Africa/Bangui' => '[Ώρα Δυτικής Αφρικής (Μπανγκί)]',
         'Africa/Banjul' => '[Μέση ώρα Γκρίνουιτς (Μπανζούλ)]',
@@ -78,19 +79,24 @@
         'America/Bogota' => '[Ώρα Κολομβίας (Μπογκοτά)]',
         'America/Boise' => '[Ορεινή ώρα Βόρειας Αμερικής (Μπόιζι)]',
         'America/Buenos_Aires' => '[Ώρα Αργεντινής (Μπουένος Άιρες)]',
+        'America/Argentina/Buenos_Aires' => '[Ώρα Αργεντινής (Μπουένος Άιρες)]',
         'America/Cambridge_Bay' => '[Ορεινή ώρα Βόρειας Αμερικής (Κέμπριτζ Μπέι)]',
         'America/Campo_Grande' => '[Ώρα Αμαζονίου (Κάμπο Γκράντε)]',
         'America/Cancun' => '[Ανατολική ώρα Βόρειας Αμερικής (Κανκούν)]',
         'America/Caracas' => '[Ώρα Βενεζουέλας (Καράκας)]',
         'America/Catamarca' => '[Ώρα Αργεντινής (Καταμάρκα)]',
+        'America/Argentina/Catamarca' => '[Ώρα Αργεντινής (Καταμάρκα)]',
         'America/Cayenne' => '[Ώρα Γαλλικής Γουιάνας (Καγιέν)]',
         'America/Cayman' => '[Ανατολική ώρα Βόρειας Αμερικής (Κέιμαν)]',
         'America/Chicago' => '[Κεντρική ώρα Βόρειας Αμερικής (Σικάγο)]',
         'America/Chihuahua' => '[Κεντρική ώρα Βόρειας Αμερικής (Τσιουάουα)]',
         'America/Ciudad_Juarez' => '[Ορεινή ώρα Βόρειας Αμερικής (Σιουδάδ Χουάρες)]',
         'America/Coral_Harbour' => '[Ανατολική ώρα Βόρειας Αμερικής (Ατικόκαν)]',
+        'America/Atikokan' => '[Ανατολική ώρα Βόρειας Αμερικής (Ατικόκαν)]',
         'America/Cordoba' => '[Ώρα Αργεντινής (Κόρδοβα)]',
+        'America/Argentina/Cordoba' => '[Ώρα Αργεντινής (Κόρδοβα)]',
         'America/Costa_Rica' => '[Κεντρική ώρα Βόρειας Αμερικής (Κόστα Ρίκα)]',
+        'America/Coyhaique' => '[Ώρα Χιλής (Κοϊάικε)]',
         'America/Creston' => '[Ορεινή ώρα Βόρειας Αμερικής (Κρέστον)]',
         'America/Cuiaba' => '[Ώρα Αμαζονίου (Κουιαμπά)]',
         'America/Curacao' => '[Ώρα Ατλαντικού (Κουρασάο)]',
@@ -101,12 +107,13 @@
         'America/Detroit' => '[Ανατολική ώρα Βόρειας Αμερικής (Ντιτρόιτ)]',
         'America/Dominica' => '[Ώρα Ατλαντικού (Ντομίνικα)]',
         'America/Edmonton' => '[Ορεινή ώρα Βόρειας Αμερικής (Έντμοντον)]',
-        'America/Eirunepe' => '[Ώρα (Βραζιλία) (Εϊρουνεπέ)]',
+        'America/Eirunepe' => '[Ώρα Άκρε (Εϊρουνεπέ)]',
         'America/El_Salvador' => '[Κεντρική ώρα Βόρειας Αμερικής (Ελ Σαλβαδόρ)]',
         'America/Fort_Nelson' => '[Ορεινή ώρα Βόρειας Αμερικής (Φορτ Νέλσον)]',
         'America/Fortaleza' => '[Ώρα Μπραζίλιας (Φορταλέζα)]',
         'America/Glace_Bay' => '[Ώρα Ατλαντικού (Γκλέις Μπέι)]',
         'America/Godthab' => '[Ώρα (Γροιλανδία) (Νουούκ)]',
+        'America/Nuuk' => '[Ώρα (Γροιλανδία) (Νουούκ)]',
         'America/Goose_Bay' => '[Ώρα Ατλαντικού (Γκους Μπέι)]',
         'America/Grand_Turk' => '[Ανατολική ώρα Βόρειας Αμερικής (Γκραντ Τουρκ)]',
         'America/Grenada' => '[Ώρα Ατλαντικού (Γρενάδα)]',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => '[Ανατολική ώρα Βόρειας Αμερικής (Βανσέν, Ιντιάνα)]',
         'America/Indiana/Winamac' => '[Ανατολική ώρα Βόρειας Αμερικής (Γουίναμακ, Ιντιάνα)]',
         'America/Indianapolis' => '[Ανατολική ώρα Βόρειας Αμερικής (Ιντιανάπολις)]',
+        'America/Indiana/Indianapolis' => '[Ανατολική ώρα Βόρειας Αμερικής (Ιντιανάπολις)]',
         'America/Inuvik' => '[Ορεινή ώρα Βόρειας Αμερικής (Ινούβικ)]',
         'America/Iqaluit' => '[Ανατολική ώρα Βόρειας Αμερικής (Ικαλούιτ)]',
         'America/Jamaica' => '[Ανατολική ώρα Βόρειας Αμερικής (Τζαμάικα)]',
         'America/Jujuy' => '[Ώρα Αργεντινής (Χουχούι)]',
+        'America/Argentina/Jujuy' => '[Ώρα Αργεντινής (Χουχούι)]',
         'America/Juneau' => '[Ώρα Αλάσκας (Τζούνο)]',
         'America/Kentucky/Monticello' => '[Ανατολική ώρα Βόρειας Αμερικής (Μοντιτσέλο, Κεντάκι)]',
         'America/Kralendijk' => '[Ώρα Ατλαντικού (Κράλεντικ)]',
@@ -136,6 +145,7 @@
         'America/Lima' => '[Ώρα Περού (Λίμα)]',
         'America/Los_Angeles' => '[Ώρα Ειρηνικού (Λος Άντζελες)]',
         'America/Louisville' => '[Ανατολική ώρα Βόρειας Αμερικής (Λούιβιλ)]',
+        'America/Kentucky/Louisville' => '[Ανατολική ώρα Βόρειας Αμερικής (Λούιβιλ)]',
         'America/Lower_Princes' => '[Ώρα Ατλαντικού (Lower Prince’s Quarter)]',
         'America/Maceio' => '[Ώρα Μπραζίλιας (Μασεϊό)]',
         'America/Managua' => '[Κεντρική ώρα Βόρειας Αμερικής (Μανάγκουα)]',
@@ -145,6 +155,7 @@
         'America/Matamoros' => '[Κεντρική ώρα Βόρειας Αμερικής (Ματαμόρος)]',
         'America/Mazatlan' => '[Ώρα Ειρηνικού Μεξικού (Μαζατλάν)]',
         'America/Mendoza' => '[Ώρα Αργεντινής (Μεντόζα)]',
+        'America/Argentina/Mendoza' => '[Ώρα Αργεντινής (Μεντόζα)]',
         'America/Menominee' => '[Κεντρική ώρα Βόρειας Αμερικής (Μενομίνε)]',
         'America/Merida' => '[Κεντρική ώρα Βόρειας Αμερικής (Μέριδα)]',
         'America/Metlakatla' => '[Ώρα Αλάσκας (Μετλακάτλα)]',
@@ -174,7 +185,7 @@
         'America/Recife' => '[Ώρα Μπραζίλιας (Ρεσίφε)]',
         'America/Regina' => '[Κεντρική ώρα Βόρειας Αμερικής (Ρετζάινα)]',
         'America/Resolute' => '[Κεντρική ώρα Βόρειας Αμερικής (Ρέζολουτ)]',
-        'America/Rio_Branco' => '[Ώρα (Βραζιλία) (Ρίο Μπράνκο)]',
+        'America/Rio_Branco' => '[Ώρα Άκρε (Ρίο Μπράνκο)]',
         'America/Santarem' => '[Ώρα Μπραζίλιας (Σανταρέμ)]',
         'America/Santiago' => '[Ώρα Χιλής (Σαντιάγκο)]',
         'America/Santo_Domingo' => '[Ώρα Ατλαντικού (Άγιος Δομίνικος)]',
@@ -212,7 +223,7 @@
         'Asia/Aden' => '[Αραβική ώρα (Άντεν)]',
         'Asia/Almaty' => '[Ώρα Καζακστάν (Αλμάτι)]',
         'Asia/Amman' => '[Ώρα Ανατολικής Ευρώπης (Αμμάν)]',
-        'Asia/Anadyr' => 'Ώρα Αναντίρ',
+        'Asia/Anadyr' => '[Ώρα Καμτσάτκα (Αναντίρ)]',
         'Asia/Aqtau' => '[Ώρα Καζακστάν (Ακτάου)]',
         'Asia/Aqtobe' => '[Ώρα Καζακστάν (Ακτόμπε)]',
         'Asia/Ashgabat' => '[Ώρα Τουρκμενιστάν (Ασχαμπάτ)]',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => '[Αραβική ώρα (Μπαχρέιν)]',
         'Asia/Baku' => '[Ώρα Αζερμπαϊτζάν (Μπακού)]',
         'Asia/Bangkok' => '[Ώρα Ινδοκίνας (Μπανγκόκ)]',
-        'Asia/Barnaul' => '[Ώρα (Ρωσία) (Μπαρναούλ)]',
+        'Asia/Barnaul' => '[Ώρα Κρασνογιάρσκ (Μπαρναούλ)]',
         'Asia/Beirut' => '[Ώρα Ανατολικής Ευρώπης (Βυρητός)]',
         'Asia/Bishkek' => '[Ώρα Κιργιστάν (Μπισκέκ)]',
         'Asia/Brunei' => 'Ώρα Μπρουνέι Νταρουσαλάμ',
         'Asia/Calcutta' => '[Ώρα Ινδίας (Καλκούτα)]',
+        'Asia/Kolkata' => '[Ώρα Ινδίας (Καλκούτα)]',
         'Asia/Chita' => '[Ώρα Γιακούτσκ (Τσιτά)]',
         'Asia/Colombo' => '[Ώρα Ινδίας (Κολόμπο)]',
         'Asia/Damascus' => '[Ώρα Ανατολικής Ευρώπης (Δαμασκός)]',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Ώρα Καμτσάτκα',
         'Asia/Karachi' => '[Ώρα Πακιστάν (Καράτσι)]',
         'Asia/Katmandu' => '[Ώρα Νεπάλ (Κατμαντού)]',
+        'Asia/Kathmandu' => '[Ώρα Νεπάλ (Κατμαντού)]',
         'Asia/Khandyga' => '[Ώρα Γιακούτσκ (Χαντίγκα)]',
         'Asia/Krasnoyarsk' => 'Ώρα Κρασνογιάρσκ',
         'Asia/Kuala_Lumpur' => '[Ώρα Μαλαισίας (Κουάλα Λουμπούρ)]',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => '[Ώρα Κόλπου (Μασκάτ)]',
         'Asia/Nicosia' => '[Ώρα Ανατολικής Ευρώπης (Λευκωσία)]',
         'Asia/Novokuznetsk' => '[Ώρα Κρασνογιάρσκ (Νοβοκουζνέτσκ)]',
-        'Asia/Novosibirsk' => 'Ώρα Νοβοσιμπίρσκ',
+        'Asia/Novosibirsk' => '[Ώρα Κρασνογιάρσκ (Νοβοσιμπίρσκ)]',
         'Asia/Omsk' => 'Ώρα Ομσκ',
         'Asia/Oral' => '[Ώρα Καζακστάν (Οράλ)]',
         'Asia/Phnom_Penh' => '[Ώρα Ινδοκίνας (Πνομ Πενχ)]',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => '[Ώρα Καζακστάν (Κοστανάι)]',
         'Asia/Qyzylorda' => '[Ώρα Καζακστάν (Κιζιλορντά)]',
         'Asia/Rangoon' => '[Ώρα Μιανμάρ (Ρανγκούν)]',
+        'Asia/Yangon' => '[Ώρα Μιανμάρ (Ρανγκούν)]',
         'Asia/Riyadh' => '[Αραβική ώρα (Ριάντ)]',
         'Asia/Saigon' => '[Ώρα Ινδοκίνας (Πόλη Χο Τσι Μινχ)]',
-        'Asia/Sakhalin' => 'Ώρα Σαχαλίνης',
+        'Asia/Ho_Chi_Minh' => '[Ώρα Ινδοκίνας (Πόλη Χο Τσι Μινχ)]',
+        'Asia/Sakhalin' => '[Ώρα Μαγκαντάν (Σαχαλίνη)]',
         'Asia/Samarkand' => '[Ώρα Ουζμπεκιστάν (Σαμαρκάνδη)]',
         'Asia/Seoul' => '[Ώρα Κορέας (Σεούλ)]',
         'Asia/Shanghai' => '[Ώρα Κίνας (Σανγκάη)]',
@@ -282,20 +297,21 @@
         'Asia/Tehran' => '[Ώρα Ιράν (Τεχεράνη)]',
         'Asia/Thimphu' => '[Ώρα Μπουτάν (Θίμφου)]',
         'Asia/Tokyo' => '[Ώρα Ιαπωνίας (Τόκιο)]',
-        'Asia/Tomsk' => '[Ώρα (Ρωσία) (Τομσκ)]',
+        'Asia/Tomsk' => '[Ώρα Κρασνογιάρσκ (Τομσκ)]',
         'Asia/Ulaanbaatar' => 'Ώρα Ουλάν Μπατόρ',
         'Asia/Urumqi' => '[Ώρα (Κίνα) (Ουρούμτσι)]',
         'Asia/Ust-Nera' => '[Ώρα Βλαδιβοστόκ (Ουστ-Νερά)]',
         'Asia/Vientiane' => '[Ώρα Ινδοκίνας (Βιεντιάν)]',
         'Asia/Vladivostok' => 'Ώρα Βλαδιβοστόκ',
         'Asia/Yakutsk' => 'Ώρα Γιακούτσκ',
-        'Asia/Yekaterinburg' => '[Ώρα Αικατερίνμπουργκ (Αικατερινούπολη)]',
+        'Asia/Yekaterinburg' => 'Ώρα Αικατερινούπολης',
         'Asia/Yerevan' => '[Ώρα Αρμενίας (Ερεβάν)]',
         'Atlantic/Azores' => '[Ώρα Αζορών (Αζόρες)]',
         'Atlantic/Bermuda' => '[Ώρα Ατλαντικού (Βερμούδες)]',
         'Atlantic/Canary' => '[Ώρα Δυτικής Ευρώπης (Κανάρια)]',
         'Atlantic/Cape_Verde' => '[Ώρα Πράσινου Ακρωτηρίου (Πράσινο Ακρωτήριο)]',
         'Atlantic/Faeroe' => '[Ώρα Δυτικής Ευρώπης (Φερόες)]',
+        'Atlantic/Faroe' => '[Ώρα Δυτικής Ευρώπης (Φερόες)]',
         'Atlantic/Madeira' => '[Ώρα Δυτικής Ευρώπης (Μαδέρα)]',
         'Atlantic/Reykjavik' => '[Μέση ώρα Γκρίνουιτς (Ρέυκιαβικ)]',
         'Atlantic/South_Georgia' => '[Ώρα Νότιας Γεωργίας (Νότια Γεωργία)]',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Συντονισμένη Παγκόσμια Ώρα',
         'Europe/Amsterdam' => '[Ώρα Κεντρικής Ευρώπης (Άμστερνταμ)]',
         'Europe/Andorra' => '[Ώρα Κεντρικής Ευρώπης (Ανδόρα)]',
-        'Europe/Astrakhan' => '[Ώρα Μόσχας (Αστραχάν)]',
+        'Europe/Astrakhan' => '[Ώρα Σάμαρας (Αστραχάν)]',
         'Europe/Athens' => '[Ώρα Ανατολικής Ευρώπης (Αθήνα)]',
         'Europe/Belgrade' => '[Ώρα Κεντρικής Ευρώπης (Βελιγράδι)]',
         'Europe/Berlin' => '[Ώρα Κεντρικής Ευρώπης (Βερολίνο)]',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => '[Μέση ώρα Γκρίνουιτς (Γκέρνζι)]',
         'Europe/Helsinki' => '[Ώρα Ανατολικής Ευρώπης (Ελσίνκι)]',
         'Europe/Isle_of_Man' => '[Μέση ώρα Γκρίνουιτς (Νήσος του Μαν)]',
-        'Europe/Istanbul' => '[Ώρα (Τουρκία) (Κωνσταντινούπολη)]',
+        'Europe/Istanbul' => '[Ώρα Τουρκίας (Κωνσταντινούπολη)]',
         'Europe/Jersey' => '[Μέση ώρα Γκρίνουιτς (Τζέρσεϊ)]',
         'Europe/Kaliningrad' => '[Ώρα Ανατολικής Ευρώπης (Καλίνινγκραντ)]',
         'Europe/Kiev' => '[Ώρα Ανατολικής Ευρώπης (Κίεβο)]',
-        'Europe/Kirov' => '[Ώρα (Ρωσία) (Κίροφ)]',
+        'Europe/Kyiv' => '[Ώρα Ανατολικής Ευρώπης (Κίεβο)]',
+        'Europe/Kirov' => '[Ώρα Μόσχας (Κίροφ)]',
         'Europe/Lisbon' => '[Ώρα Δυτικής Ευρώπης (Λισαβόνα)]',
         'Europe/Ljubljana' => '[Ώρα Κεντρικής Ευρώπης (Λιουμπλιάνα)]',
         'Europe/London' => '[Μέση ώρα Γκρίνουιτς (Λονδίνο)]',
@@ -356,19 +373,19 @@
         'Europe/Samara' => '[Ώρα Σάμαρας (Σαμάρα)]',
         'Europe/San_Marino' => '[Ώρα Κεντρικής Ευρώπης (Άγιος Μαρίνος)]',
         'Europe/Sarajevo' => '[Ώρα Κεντρικής Ευρώπης (Σαράγεβο)]',
-        'Europe/Saratov' => '[Ώρα Μόσχας (Σαράτοφ)]',
+        'Europe/Saratov' => '[Ώρα Σάμαρας (Σαράτοφ)]',
         'Europe/Simferopol' => '[Ώρα Μόσχας (Συμφερόπολη)]',
         'Europe/Skopje' => '[Ώρα Κεντρικής Ευρώπης (Σκόπια)]',
         'Europe/Sofia' => '[Ώρα Ανατολικής Ευρώπης (Σόφια)]',
         'Europe/Stockholm' => '[Ώρα Κεντρικής Ευρώπης (Στοκχόλμη)]',
         'Europe/Tallinn' => '[Ώρα Ανατολικής Ευρώπης (Ταλίν)]',
         'Europe/Tirane' => '[Ώρα Κεντρικής Ευρώπης (Τίρανα)]',
-        'Europe/Ulyanovsk' => '[Ώρα Μόσχας (Ουλιάνοφσκ)]',
+        'Europe/Ulyanovsk' => '[Ώρα Σάμαρας (Ουλιάνοφσκ)]',
         'Europe/Vaduz' => '[Ώρα Κεντρικής Ευρώπης (Βαντούζ)]',
         'Europe/Vatican' => '[Ώρα Κεντρικής Ευρώπης (Βατικανό)]',
         'Europe/Vienna' => '[Ώρα Κεντρικής Ευρώπης (Βιέννη)]',
         'Europe/Vilnius' => '[Ώρα Ανατολικής Ευρώπης (Βίλνιους)]',
-        'Europe/Volgograd' => '[Ώρα Βόλγκογκραντ (Βόλγκοκραντ)]',
+        'Europe/Volgograd' => '[Ώρα Μόσχας (Βόλγκοκραντ)]',
         'Europe/Warsaw' => '[Ώρα Κεντρικής Ευρώπης (Βαρσοβία)]',
         'Europe/Zagreb' => '[Ώρα Κεντρικής Ευρώπης (Ζάγκρεμπ)]',
         'Europe/Zurich' => '[Ώρα Κεντρικής Ευρώπης (Ζυρίχη)]',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Ώρα Τσάταμ',
         'Pacific/Easter' => '[Ώρα Νήσου Πάσχα (Νήσος Πάσχα)]',
         'Pacific/Efate' => '[Ώρα Βανουάτου (Εφάτε)]',
-        'Pacific/Enderbury' => '[Ώρα Νήσων Φοίνιξ (Έντερμπερι)]',
+        'Pacific/Enderbury' => '[Ώρα Νήσων Φοίνιξ (Καντών)]',
+        'Pacific/Kanton' => '[Ώρα Νήσων Φοίνιξ (Καντών)]',
         'Pacific/Fakaofo' => '[Ώρα Τοκελάου (Φακαόφο)]',
         'Pacific/Fiji' => 'Ώρα Φίτζι',
         'Pacific/Funafuti' => '[Ώρα Τουβαλού (Φουναφούτι)]',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Ώρα Γκάμπιερ',
         'Pacific/Guadalcanal' => '[Ώρα Νήσων Σολομώντος (Γκουανταλκανάλ)]',
         'Pacific/Guam' => '[Ώρα Τσαμόρο (Γκουάμ)]',
-        'Pacific/Honolulu' => '[Ώρα Χαβάης-Αλεούτιων Νήσων (Χονολουλού)]',
+        'Pacific/Honolulu' => '[Χειμερινή ώρα Χαβάης-Αλεούτιων Νήσων (Χονολουλού)]',
         'Pacific/Kiritimati' => '[Ώρα Νήσων Λάιν (Κιριτιμάτι)]',
         'Pacific/Kosrae' => 'Ώρα Κόσραϊ',
         'Pacific/Kwajalein' => '[Ώρα Νήσων Μάρσαλ (Κουατζαλέιν)]',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Ώρα Παλάου',
         'Pacific/Pitcairn' => 'Ώρα Πίτκερν',
         'Pacific/Ponape' => 'Ώρα Πονάπε',
+        'Pacific/Pohnpei' => 'Ώρα Πονάπε',
         'Pacific/Port_Moresby' => '[Ώρα Παπούας Νέας Γουινέας (Πορτ Μόρεσμπι)]',
         'Pacific/Rarotonga' => '[Ώρα Νήσων Κουκ (Ραροτόνγκα)]',
         'Pacific/Saipan' => '[Ώρα Τσαμόρο (Σαϊπάν)]',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => '[Ώρα Νήσων Γκίλμπερτ (Ταράουα)]',
         'Pacific/Tongatapu' => '[Ώρα Τόνγκα (Τονγκατάπου)]',
         'Pacific/Truk' => 'Ώρα Τσουκ',
+        'Pacific/Chuuk' => 'Ώρα Τσουκ',
         'Pacific/Wake' => 'Ώρα Νήσου Γουέικ',
         'Pacific/Wallis' => '[Ώρα Ουάλις και Φουτούνα (Γουάλις)]',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_001.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_001.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_001.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_001.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,14 +2,13 @@
 
 return [
     'Names' => [
-        'America/Miquelon' => 'St Pierre & Miquelon Time',
+        'America/Miquelon' => 'St Pierre & Miquelon Time (Saint-Pierre)',
         'America/St_Barthelemy' => 'Atlantic Time (St Barthélemy)',
         'America/St_Johns' => 'Newfoundland Time (St John’s)',
         'America/St_Kitts' => 'Atlantic Time (St Kitts)',
         'America/St_Lucia' => 'Atlantic Time (St Lucia)',
         'America/St_Thomas' => 'Atlantic Time (St Thomas)',
         'America/St_Vincent' => 'Atlantic Time (St Vincent)',
-        'Asia/Aqtau' => 'Kazakhstan Time (Aktau)',
         'Atlantic/St_Helena' => 'Greenwich Mean Time (St Helena)',
     ],
     'Meta' => [],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_AU.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_AU.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_AU.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_AU.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,9 @@
+<?php
+
+return [
+    'Names' => [
+        'Indian/Kerguelen' => 'French Southern and Antarctic Time (Kerguelen Islands)',
+        'Pacific/Wallis' => 'Wallis & Futuna Time (Wallis and Futuna)',
+    ],
+    'Meta' => [],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_CA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_CA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_CA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_CA.php	2026-05-20 10:56:49.000000000 +0200
@@ -9,10 +9,9 @@
         'America/St_Lucia' => 'Atlantic Time (Saint Lucia)',
         'America/St_Thomas' => 'Atlantic Time (Saint Thomas)',
         'America/St_Vincent' => 'Atlantic Time (Saint Vincent)',
-        'Asia/Rangoon' => 'Myanmar Time (Rangoon)',
         'Atlantic/St_Helena' => 'Greenwich Mean Time (Saint Helena)',
-        'Indian/Kerguelen' => 'French Southern and Antarctic Time (Kerguelen)',
-        'Pacific/Wallis' => 'Wallis and Futuna Time',
+        'Indian/Kerguelen' => 'French Southern and Antarctic Time (Kerguelen Islands)',
+        'Pacific/Wallis' => 'Wallis and Futuna Time (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_GB.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_GB.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_GB.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_GB.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-<?php
-
-return [
-    'Names' => [
-        'America/Bahia_Banderas' => 'Central Time (Bahia Banderas)',
-        'America/Cancun' => 'Eastern Time (Cancun)',
-        'America/Merida' => 'Central Time (Merida)',
-    ],
-    'Meta' => [],
-];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_IN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_IN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_IN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en_IN.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-<?php
-
-return [
-    'Names' => [
-        'Asia/Hovd' => 'Khovd Time',
-        'Asia/Qyzylorda' => 'Kazakhstan Time (Kyzylorda)',
-    ],
-    'Meta' => [],
-];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/en.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'East Africa Time (Addis Ababa)',
         'Africa/Algiers' => 'Central European Time (Algiers)',
         'Africa/Asmera' => 'East Africa Time (Asmara)',
+        'Africa/Asmara' => 'East Africa Time (Asmara)',
         'Africa/Bamako' => 'Greenwich Mean Time (Bamako)',
         'Africa/Bangui' => 'West Africa Time (Bangui)',
         'Africa/Banjul' => 'Greenwich Mean Time (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'East Africa Time (Dar es Salaam)',
         'Africa/Djibouti' => 'East Africa Time (Djibouti)',
         'Africa/Douala' => 'West Africa Time (Douala)',
-        'Africa/El_Aaiun' => 'Western European Time (El Aaiun)',
+        'Africa/El_Aaiun' => 'Western European Time (El Aaiún)',
         'Africa/Freetown' => 'Greenwich Mean Time (Freetown)',
         'Africa/Gaborone' => 'Central Africa Time (Gaborone)',
         'Africa/Harare' => 'Central Africa Time (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'West Africa Time (Kinshasa)',
         'Africa/Lagos' => 'West Africa Time (Lagos)',
         'Africa/Libreville' => 'West Africa Time (Libreville)',
-        'Africa/Lome' => 'Greenwich Mean Time (Lome)',
+        'Africa/Lome' => 'Greenwich Mean Time (Lomé)',
         'Africa/Luanda' => 'West Africa Time (Luanda)',
         'Africa/Lubumbashi' => 'Central Africa Time (Lubumbashi)',
         'Africa/Lusaka' => 'Central Africa Time (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'East Africa Time (Mogadishu)',
         'Africa/Monrovia' => 'Greenwich Mean Time (Monrovia)',
         'Africa/Nairobi' => 'East Africa Time (Nairobi)',
-        'Africa/Ndjamena' => 'West Africa Time (Ndjamena)',
+        'Africa/Ndjamena' => 'West Africa Time (N’Djamena)',
         'Africa/Niamey' => 'West Africa Time (Niamey)',
         'Africa/Nouakchott' => 'Greenwich Mean Time (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich Mean Time (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Alaska Time (Anchorage)',
         'America/Anguilla' => 'Atlantic Time (Anguilla)',
         'America/Antigua' => 'Atlantic Time (Antigua)',
-        'America/Araguaina' => 'Brasilia Time (Araguaina)',
+        'America/Araguaina' => 'Brasilia Time (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentina Time (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentina Time (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentina Time (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentina Time (Salta)',
         'America/Argentina/San_Juan' => 'Argentina Time (San Juan)',
         'America/Argentina/San_Luis' => 'Argentina Time (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentina Time (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentina Time (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentina Time (Ushuaia)',
         'America/Aruba' => 'Atlantic Time (Aruba)',
         'America/Asuncion' => 'Paraguay Time (Asunción)',
         'America/Bahia' => 'Brasilia Time (Bahia)',
         'America/Bahia_Banderas' => 'Central Time (Bahía de Banderas)',
         'America/Barbados' => 'Atlantic Time (Barbados)',
-        'America/Belem' => 'Brasilia Time (Belem)',
+        'America/Belem' => 'Brasilia Time (Belém)',
         'America/Belize' => 'Central Time (Belize)',
         'America/Blanc-Sablon' => 'Atlantic Time (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazon Time (Boa Vista)',
-        'America/Bogota' => 'Colombia Time (Bogota)',
+        'America/Bogota' => 'Colombia Time (Bogotá)',
         'America/Boise' => 'Mountain Time (Boise)',
         'America/Buenos_Aires' => 'Argentina Time (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentina Time (Buenos Aires)',
         'America/Cambridge_Bay' => 'Mountain Time (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazon Time (Campo Grande)',
         'America/Cancun' => 'Eastern Time (Cancún)',
         'America/Caracas' => 'Venezuela Time (Caracas)',
         'America/Catamarca' => 'Argentina Time (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentina Time (Catamarca)',
         'America/Cayenne' => 'French Guiana Time (Cayenne)',
         'America/Cayman' => 'Eastern Time (Cayman)',
         'America/Chicago' => 'Central Time (Chicago)',
         'America/Chihuahua' => 'Central Time (Chihuahua)',
         'America/Ciudad_Juarez' => 'Mountain Time (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Eastern Time (Atikokan)',
-        'America/Cordoba' => 'Argentina Time (Cordoba)',
+        'America/Atikokan' => 'Eastern Time (Atikokan)',
+        'America/Cordoba' => 'Argentina Time (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentina Time (Córdoba)',
         'America/Costa_Rica' => 'Central Time (Costa Rica)',
+        'America/Coyhaique' => 'Chile Time (Coyhaique)',
         'America/Creston' => 'Mountain Time (Creston)',
-        'America/Cuiaba' => 'Amazon Time (Cuiaba)',
+        'America/Cuiaba' => 'Amazon Time (Cuiabá)',
         'America/Curacao' => 'Atlantic Time (Curaçao)',
         'America/Danmarkshavn' => 'Greenwich Mean Time (Danmarkshavn)',
         'America/Dawson' => 'Yukon Time (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Eastern Time (Detroit)',
         'America/Dominica' => 'Atlantic Time (Dominica)',
         'America/Edmonton' => 'Mountain Time (Edmonton)',
-        'America/Eirunepe' => 'Acre Time (Eirunepe)',
+        'America/Eirunepe' => 'Acre Time (Eirunepé)',
         'America/El_Salvador' => 'Central Time (El Salvador)',
         'America/Fort_Nelson' => 'Mountain Time (Fort Nelson)',
         'America/Fortaleza' => 'Brasilia Time (Fortaleza)',
         'America/Glace_Bay' => 'Atlantic Time (Glace Bay)',
         'America/Godthab' => 'Greenland Time (Nuuk)',
+        'America/Nuuk' => 'Greenland Time (Nuuk)',
         'America/Goose_Bay' => 'Atlantic Time (Goose Bay)',
         'America/Grand_Turk' => 'Eastern Time (Grand Turk)',
         'America/Grenada' => 'Atlantic Time (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Eastern Time (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Eastern Time (Winamac, Indiana)',
         'America/Indianapolis' => 'Eastern Time (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Eastern Time (Indianapolis)',
         'America/Inuvik' => 'Mountain Time (Inuvik)',
         'America/Iqaluit' => 'Eastern Time (Iqaluit)',
         'America/Jamaica' => 'Eastern Time (Jamaica)',
         'America/Jujuy' => 'Argentina Time (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentina Time (Jujuy)',
         'America/Juneau' => 'Alaska Time (Juneau)',
         'America/Kentucky/Monticello' => 'Eastern Time (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantic Time (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Peru Time (Lima)',
         'America/Los_Angeles' => 'Pacific Time (Los Angeles)',
         'America/Louisville' => 'Eastern Time (Louisville)',
+        'America/Kentucky/Louisville' => 'Eastern Time (Louisville)',
         'America/Lower_Princes' => 'Atlantic Time (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasilia Time (Maceio)',
+        'America/Maceio' => 'Brasilia Time (Maceió)',
         'America/Managua' => 'Central Time (Managua)',
         'America/Manaus' => 'Amazon Time (Manaus)',
         'America/Marigot' => 'Atlantic Time (Marigot)',
         'America/Martinique' => 'Atlantic Time (Martinique)',
         'America/Matamoros' => 'Central Time (Matamoros)',
-        'America/Mazatlan' => 'Mexican Pacific Time (Mazatlan)',
+        'America/Mazatlan' => 'Mexican Pacific Time (Mazatlán)',
         'America/Mendoza' => 'Argentina Time (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentina Time (Mendoza)',
         'America/Menominee' => 'Central Time (Menominee)',
         'America/Merida' => 'Central Time (Mérida)',
         'America/Metlakatla' => 'Alaska Time (Metlakatla)',
         'America/Mexico_City' => 'Central Time (Mexico City)',
-        'America/Miquelon' => 'St. Pierre & Miquelon Time',
+        'America/Miquelon' => 'St. Pierre & Miquelon Time (Saint-Pierre)',
         'America/Moncton' => 'Atlantic Time (Moncton)',
         'America/Monterrey' => 'Central Time (Monterrey)',
         'America/Montevideo' => 'Uruguay Time (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Central Time (Regina)',
         'America/Resolute' => 'Central Time (Resolute)',
         'America/Rio_Branco' => 'Acre Time (Rio Branco)',
-        'America/Santarem' => 'Brasilia Time (Santarem)',
+        'America/Santarem' => 'Brasilia Time (Santarém)',
         'America/Santiago' => 'Chile Time (Santiago)',
         'America/Santo_Domingo' => 'Atlantic Time (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasilia Time (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brasilia Time (São Paulo)',
         'America/Scoresbysund' => 'Greenland Time (Ittoqqortoormiit)',
         'America/Sitka' => 'Alaska Time (Sitka)',
         'America/St_Barthelemy' => 'Atlantic Time (St. Barthélemy)',
@@ -197,23 +208,23 @@
         'America/Whitehorse' => 'Yukon Time (Whitehorse)',
         'America/Winnipeg' => 'Central Time (Winnipeg)',
         'America/Yakutat' => 'Alaska Time (Yakutat)',
-        'Antarctica/Casey' => 'Australian Western Time (Casey)',
+        'Antarctica/Casey' => 'Australian Western Time (Casey Station)',
         'Antarctica/Davis' => 'Davis Time',
-        'Antarctica/DumontDUrville' => 'Dumont d’Urville Time',
+        'Antarctica/DumontDUrville' => 'Dumont d’Urville Time (Dumont d’Urville Station)',
         'Antarctica/Macquarie' => 'Australian Eastern Time (Macquarie Island)',
-        'Antarctica/Mawson' => 'Mawson Time',
-        'Antarctica/McMurdo' => 'New Zealand Time (McMurdo)',
-        'Antarctica/Palmer' => 'Chile Time (Palmer)',
-        'Antarctica/Rothera' => 'Rothera Time',
-        'Antarctica/Syowa' => 'Syowa Time',
-        'Antarctica/Troll' => 'Greenwich Mean Time (Troll)',
-        'Antarctica/Vostok' => 'Vostok Time',
+        'Antarctica/Mawson' => 'Mawson Time (Mawson Station)',
+        'Antarctica/McMurdo' => 'New Zealand Time (McMurdo Station)',
+        'Antarctica/Palmer' => 'Chile Time (Palmer Land)',
+        'Antarctica/Rothera' => 'Rothera Time (Rothera Station)',
+        'Antarctica/Syowa' => 'Syowa Time (Showa Station)',
+        'Antarctica/Troll' => 'Greenwich Mean Time (Troll Station)',
+        'Antarctica/Vostok' => 'Vostok Time (Vostok Station)',
         'Arctic/Longyearbyen' => 'Central European Time (Longyearbyen)',
         'Asia/Aden' => 'Arabian Time (Aden)',
         'Asia/Almaty' => 'Kazakhstan Time (Almaty)',
         'Asia/Amman' => 'Eastern European Time (Amman)',
-        'Asia/Anadyr' => 'Anadyr Time',
-        'Asia/Aqtau' => 'Kazakhstan Time (Aqtau)',
+        'Asia/Anadyr' => 'Kamchatka Time (Anadyr)',
+        'Asia/Aqtau' => 'Kazakhstan Time (Aktau)',
         'Asia/Aqtobe' => 'Kazakhstan Time (Aqtobe)',
         'Asia/Ashgabat' => 'Turkmenistan Time (Ashgabat)',
         'Asia/Atyrau' => 'Kazakhstan Time (Atyrau)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabian Time (Bahrain)',
         'Asia/Baku' => 'Azerbaijan Time (Baku)',
         'Asia/Bangkok' => 'Indochina Time (Bangkok)',
-        'Asia/Barnaul' => 'Russia Time (Barnaul)',
+        'Asia/Barnaul' => 'Krasnoyarsk Time (Barnaul)',
         'Asia/Beirut' => 'Eastern European Time (Beirut)',
         'Asia/Bishkek' => 'Kyrgyzstan Time (Bishkek)',
         'Asia/Brunei' => 'Brunei Time',
         'Asia/Calcutta' => 'India Standard Time (Kolkata)',
+        'Asia/Kolkata' => 'India Standard Time (Kolkata)',
         'Asia/Chita' => 'Yakutsk Time (Chita)',
         'Asia/Colombo' => 'India Standard Time (Colombo)',
         'Asia/Damascus' => 'Eastern European Time (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Eastern European Time (Gaza)',
         'Asia/Hebron' => 'Eastern European Time (Hebron)',
         'Asia/Hong_Kong' => 'Hong Kong Time',
-        'Asia/Hovd' => 'Hovd Time',
+        'Asia/Hovd' => 'Khovd Time',
         'Asia/Irkutsk' => 'Irkutsk Time',
         'Asia/Jakarta' => 'Western Indonesia Time (Jakarta)',
         'Asia/Jayapura' => 'Eastern Indonesia Time (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Kamchatka Time',
         'Asia/Karachi' => 'Pakistan Time (Karachi)',
         'Asia/Katmandu' => 'Nepal Time (Kathmandu)',
+        'Asia/Kathmandu' => 'Nepal Time (Kathmandu)',
         'Asia/Khandyga' => 'Yakutsk Time (Khandyga)',
         'Asia/Krasnoyarsk' => 'Krasnoyarsk Time',
         'Asia/Kuala_Lumpur' => 'Malaysia Time (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Gulf Standard Time (Muscat)',
         'Asia/Nicosia' => 'Eastern European Time (Nicosia)',
         'Asia/Novokuznetsk' => 'Krasnoyarsk Time (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk Time',
+        'Asia/Novosibirsk' => 'Krasnoyarsk Time (Novosibirsk)',
         'Asia/Omsk' => 'Omsk Time',
         'Asia/Oral' => 'Kazakhstan Time (Oral)',
         'Asia/Phnom_Penh' => 'Indochina Time (Phnom Penh)',
@@ -266,11 +279,13 @@
         'Asia/Pyongyang' => 'Korean Time (Pyongyang)',
         'Asia/Qatar' => 'Arabian Time (Qatar)',
         'Asia/Qostanay' => 'Kazakhstan Time (Kostanay)',
-        'Asia/Qyzylorda' => 'Kazakhstan Time (Qyzylorda)',
+        'Asia/Qyzylorda' => 'Kazakhstan Time (Kyzylorda)',
         'Asia/Rangoon' => 'Myanmar Time (Yangon)',
+        'Asia/Yangon' => 'Myanmar Time (Yangon)',
         'Asia/Riyadh' => 'Arabian Time (Riyadh)',
         'Asia/Saigon' => 'Indochina Time (Ho Chi Minh City)',
-        'Asia/Sakhalin' => 'Sakhalin Time',
+        'Asia/Ho_Chi_Minh' => 'Indochina Time (Ho Chi Minh City)',
+        'Asia/Sakhalin' => 'Magadan Time (Sakhalin)',
         'Asia/Samarkand' => 'Uzbekistan Time (Samarkand)',
         'Asia/Seoul' => 'Korean Time (Seoul)',
         'Asia/Shanghai' => 'China Time (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Iran Time (Tehran)',
         'Asia/Thimphu' => 'Bhutan Time (Thimphu)',
         'Asia/Tokyo' => 'Japan Time (Tokyo)',
-        'Asia/Tomsk' => 'Russia Time (Tomsk)',
+        'Asia/Tomsk' => 'Krasnoyarsk Time (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulaanbaatar Time',
-        'Asia/Urumqi' => 'China Time (Urumqi)',
+        'Asia/Urumqi' => 'China Time (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostok Time (Ust-Nera)',
         'Asia/Vientiane' => 'Indochina Time (Vientiane)',
         'Asia/Vladivostok' => 'Vladivostok Time',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Armenia Time (Yerevan)',
         'Atlantic/Azores' => 'Azores Time',
         'Atlantic/Bermuda' => 'Atlantic Time (Bermuda)',
-        'Atlantic/Canary' => 'Western European Time (Canary)',
+        'Atlantic/Canary' => 'Western European Time (Canaries)',
         'Atlantic/Cape_Verde' => 'Cape Verde Time',
-        'Atlantic/Faeroe' => 'Western European Time (Faroe)',
+        'Atlantic/Faeroe' => 'Western European Time (Faroes)',
+        'Atlantic/Faroe' => 'Western European Time (Faroes)',
         'Atlantic/Madeira' => 'Western European Time (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich Mean Time (Reykjavik)',
         'Atlantic/South_Georgia' => 'South Georgia Time',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Coordinated Universal Time',
         'Europe/Amsterdam' => 'Central European Time (Amsterdam)',
         'Europe/Andorra' => 'Central European Time (Andorra)',
-        'Europe/Astrakhan' => 'Moscow Time (Astrakhan)',
+        'Europe/Astrakhan' => 'Samara Time (Astrakhan)',
         'Europe/Athens' => 'Eastern European Time (Athens)',
         'Europe/Belgrade' => 'Central European Time (Belgrade)',
         'Europe/Berlin' => 'Central European Time (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Central European Time (Brussels)',
         'Europe/Bucharest' => 'Eastern European Time (Bucharest)',
         'Europe/Budapest' => 'Central European Time (Budapest)',
-        'Europe/Busingen' => 'Central European Time (Busingen)',
-        'Europe/Chisinau' => 'Eastern European Time (Chisinau)',
+        'Europe/Busingen' => 'Central European Time (Büsingen)',
+        'Europe/Chisinau' => 'Eastern European Time (Chișinău)',
         'Europe/Copenhagen' => 'Central European Time (Copenhagen)',
         'Europe/Dublin' => 'Greenwich Mean Time (Dublin)',
         'Europe/Gibraltar' => 'Central European Time (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwich Mean Time (Jersey)',
         'Europe/Kaliningrad' => 'Eastern European Time (Kaliningrad)',
         'Europe/Kiev' => 'Eastern European Time (Kyiv)',
-        'Europe/Kirov' => 'Russia Time (Kirov)',
+        'Europe/Kyiv' => 'Eastern European Time (Kyiv)',
+        'Europe/Kirov' => 'Moscow Time (Kirov)',
         'Europe/Lisbon' => 'Western European Time (Lisbon)',
         'Europe/Ljubljana' => 'Central European Time (Ljubljana)',
         'Europe/London' => 'Greenwich Mean Time (London)',
@@ -356,29 +373,29 @@
         'Europe/Samara' => 'Samara Time',
         'Europe/San_Marino' => 'Central European Time (San Marino)',
         'Europe/Sarajevo' => 'Central European Time (Sarajevo)',
-        'Europe/Saratov' => 'Moscow Time (Saratov)',
+        'Europe/Saratov' => 'Samara Time (Saratov)',
         'Europe/Simferopol' => 'Moscow Time (Simferopol)',
         'Europe/Skopje' => 'Central European Time (Skopje)',
         'Europe/Sofia' => 'Eastern European Time (Sofia)',
         'Europe/Stockholm' => 'Central European Time (Stockholm)',
         'Europe/Tallinn' => 'Eastern European Time (Tallinn)',
-        'Europe/Tirane' => 'Central European Time (Tirane)',
-        'Europe/Ulyanovsk' => 'Moscow Time (Ulyanovsk)',
+        'Europe/Tirane' => 'Central European Time (Tirana)',
+        'Europe/Ulyanovsk' => 'Samara Time (Ulyanovsk)',
         'Europe/Vaduz' => 'Central European Time (Vaduz)',
         'Europe/Vatican' => 'Central European Time (Vatican)',
         'Europe/Vienna' => 'Central European Time (Vienna)',
         'Europe/Vilnius' => 'Eastern European Time (Vilnius)',
-        'Europe/Volgograd' => 'Volgograd Time',
+        'Europe/Volgograd' => 'Moscow Time (Volgograd)',
         'Europe/Warsaw' => 'Central European Time (Warsaw)',
         'Europe/Zagreb' => 'Central European Time (Zagreb)',
         'Europe/Zurich' => 'Central European Time (Zurich)',
         'Indian/Antananarivo' => 'East Africa Time (Antananarivo)',
-        'Indian/Chagos' => 'Indian Ocean Time (Chagos)',
+        'Indian/Chagos' => 'Indian Ocean Time (Chagos Archipelago)',
         'Indian/Christmas' => 'Christmas Island Time',
         'Indian/Cocos' => 'Cocos Islands Time',
-        'Indian/Comoro' => 'East Africa Time (Comoro)',
-        'Indian/Kerguelen' => 'French Southern & Antarctic Time (Kerguelen)',
-        'Indian/Mahe' => 'Seychelles Time (Mahe)',
+        'Indian/Comoro' => 'East Africa Time (Comoros)',
+        'Indian/Kerguelen' => 'French Southern & Antarctic Time (Kerguelen Islands)',
+        'Indian/Mahe' => 'Seychelles Time (Mahé)',
         'Indian/Maldives' => 'Maldives Time',
         'Indian/Mauritius' => 'Mauritius Time',
         'Indian/Mayotte' => 'East Africa Time (Mayotte)',
@@ -386,32 +403,34 @@
         'Pacific/Apia' => 'Samoa Time (Apia)',
         'Pacific/Auckland' => 'New Zealand Time (Auckland)',
         'Pacific/Bougainville' => 'Papua New Guinea Time (Bougainville)',
-        'Pacific/Chatham' => 'Chatham Time',
+        'Pacific/Chatham' => 'Chatham Time (Chatham Islands)',
         'Pacific/Easter' => 'Easter Island Time',
         'Pacific/Efate' => 'Vanuatu Time (Efate)',
-        'Pacific/Enderbury' => 'Phoenix Islands Time (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenix Islands Time (Canton Island)',
+        'Pacific/Kanton' => 'Phoenix Islands Time (Canton Island)',
         'Pacific/Fakaofo' => 'Tokelau Time (Fakaofo)',
         'Pacific/Fiji' => 'Fiji Time',
         'Pacific/Funafuti' => 'Tuvalu Time (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos Time',
+        'Pacific/Galapagos' => 'Galapagos Time (Galápagos Islands)',
         'Pacific/Gambier' => 'Gambier Time',
         'Pacific/Guadalcanal' => 'Solomon Islands Time (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro Standard Time (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleutian Time (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleutian Standard Time (Honolulu)',
         'Pacific/Kiritimati' => 'Line Islands Time (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae Time',
-        'Pacific/Kwajalein' => 'Marshall Islands Time (Kwajalein)',
+        'Pacific/Kwajalein' => 'Marshall Islands Time (Kwajalein Atoll)',
         'Pacific/Majuro' => 'Marshall Islands Time (Majuro)',
-        'Pacific/Marquesas' => 'Marquesas Time',
-        'Pacific/Midway' => 'American Samoa Time (Midway)',
+        'Pacific/Marquesas' => 'Marquesas Time (Marquesas Islands)',
+        'Pacific/Midway' => 'American Samoa Time (Midway Atoll)',
         'Pacific/Nauru' => 'Nauru Time',
         'Pacific/Niue' => 'Niue Time',
         'Pacific/Norfolk' => 'Norfolk Island Time',
-        'Pacific/Noumea' => 'New Caledonia Time (Noumea)',
+        'Pacific/Noumea' => 'New Caledonia Time (Nouméa)',
         'Pacific/Pago_Pago' => 'American Samoa Time (Pago Pago)',
         'Pacific/Palau' => 'Palau Time',
-        'Pacific/Pitcairn' => 'Pitcairn Time',
+        'Pacific/Pitcairn' => 'Pitcairn Time (Pitcairn Islands)',
         'Pacific/Ponape' => 'Pohnpei Time',
+        'Pacific/Pohnpei' => 'Pohnpei Time',
         'Pacific/Port_Moresby' => 'Papua New Guinea Time (Port Moresby)',
         'Pacific/Rarotonga' => 'Cook Islands Time (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro Standard Time (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Gilbert Islands Time (Tarawa)',
         'Pacific/Tongatapu' => 'Tonga Time (Tongatapu)',
         'Pacific/Truk' => 'Chuuk Time',
+        'Pacific/Chuuk' => 'Chuuk Time',
         'Pacific/Wake' => 'Wake Island Time',
         'Pacific/Wallis' => 'Wallis & Futuna Time',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/eo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/eo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/eo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/eo.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,398 +2,445 @@
 
 return [
     'Names' => [
-        'Africa/Abidjan' => 'universala tempo kunordigita (Abidjan)',
-        'Africa/Accra' => 'universala tempo kunordigita (Accra)',
-        'Africa/Addis_Ababa' => 'tempo de Etiopujo (Addis Ababa)',
-        'Africa/Algiers' => 'tempo de Alĝerio (Algiers)',
-        'Africa/Asmera' => 'tempo de Eritreo (Asmara)',
+        'Africa/Abidjan' => 'universala tempo kunordigita (Abiĝano)',
+        'Africa/Accra' => 'universala tempo kunordigita (Akrao)',
+        'Africa/Addis_Ababa' => 'orientafrika tempo (Adisabebo)',
+        'Africa/Algiers' => 'centreŭropa tempo (Alĝero)',
+        'Africa/Asmera' => 'orientafrika tempo (Asmero)',
+        'Africa/Asmara' => 'orientafrika tempo (Asmero)',
         'Africa/Bamako' => 'universala tempo kunordigita (Bamako)',
-        'Africa/Bangui' => 'tempo de Centr-Afrika Respubliko (Bangui)',
-        'Africa/Banjul' => 'universala tempo kunordigita (Banjul)',
-        'Africa/Bissau' => 'universala tempo kunordigita (Bissau)',
-        'Africa/Blantyre' => 'tempo de Malavio (Blantyre)',
-        'Africa/Brazzaville' => 'tempo de Kongo Brazavila (Brazzaville)',
-        'Africa/Bujumbura' => 'tempo de Burundo (Bujumbura)',
-        'Africa/Cairo' => 'tempo de Egiptujo (Cairo)',
-        'Africa/Casablanca' => 'tempo de Maroko (Casablanca)',
-        'Africa/Ceuta' => 'tempo de Hispanujo (Ceuta)',
-        'Africa/Conakry' => 'universala tempo kunordigita (Conakry)',
-        'Africa/Dakar' => 'universala tempo kunordigita (Dakar)',
-        'Africa/Dar_es_Salaam' => 'tempo de Tanzanio (Dar es Salaam)',
-        'Africa/Djibouti' => 'tempo de Ĝibutio (Djibouti)',
-        'Africa/Douala' => 'tempo de Kameruno (Douala)',
-        'Africa/El_Aaiun' => 'tempo de Okcidenta Saharo (El Aaiun)',
-        'Africa/Freetown' => 'universala tempo kunordigita (Freetown)',
-        'Africa/Gaborone' => 'tempo de Bocvano (Gaborone)',
-        'Africa/Harare' => 'tempo de Zimbabvo (Harare)',
-        'Africa/Johannesburg' => 'tempo de Sud-Afriko (Johannesburg)',
-        'Africa/Kampala' => 'tempo de Ugando (Kampala)',
-        'Africa/Khartoum' => 'tempo de Sudano (Khartoum)',
-        'Africa/Kigali' => 'tempo de Ruando (Kigali)',
-        'Africa/Lagos' => 'tempo de Niĝerio (Lagos)',
-        'Africa/Libreville' => 'tempo de Gabono (Libreville)',
-        'Africa/Lome' => 'universala tempo kunordigita (Lome)',
-        'Africa/Luanda' => 'tempo de Angolo (Luanda)',
-        'Africa/Lusaka' => 'tempo de Zambio (Lusaka)',
-        'Africa/Malabo' => 'tempo de Ekvatora Gvineo (Malabo)',
-        'Africa/Maputo' => 'tempo de Mozambiko (Maputo)',
-        'Africa/Maseru' => 'tempo de Lesoto (Maseru)',
-        'Africa/Mbabane' => 'tempo de Svazilando (Mbabane)',
-        'Africa/Mogadishu' => 'tempo de Somalujo (Mogadishu)',
-        'Africa/Monrovia' => 'universala tempo kunordigita (Monrovia)',
-        'Africa/Nairobi' => 'tempo de Kenjo (Nairobi)',
-        'Africa/Ndjamena' => 'tempo de Ĉado (Ndjamena)',
-        'Africa/Niamey' => 'tempo de Niĝero (Niamey)',
-        'Africa/Nouakchott' => 'universala tempo kunordigita (Nouakchott)',
-        'Africa/Ouagadougou' => 'universala tempo kunordigita (Ouagadougou)',
-        'Africa/Porto-Novo' => 'tempo de Benino (Porto-Novo)',
-        'Africa/Sao_Tome' => 'universala tempo kunordigita (São Tomé)',
-        'Africa/Tripoli' => 'tempo de Libio (Tripoli)',
-        'Africa/Tunis' => 'tempo de Tunizio (Tunis)',
-        'Africa/Windhoek' => 'tempo de Namibio (Windhoek)',
-        'America/Adak' => 'tempo de Usono (Adak)',
-        'America/Anchorage' => 'tempo de Usono (Anchorage)',
-        'America/Anguilla' => 'tempo de Angvilo (Anguilla)',
-        'America/Antigua' => 'tempo de Antigvo kaj Barbudo (Antigua)',
-        'America/Araguaina' => 'tempo de Brazilo (Araguaina)',
-        'America/Argentina/La_Rioja' => 'tempo de Argentino (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'tempo de Argentino (Rio Gallegos)',
-        'America/Argentina/Salta' => 'tempo de Argentino (Salta)',
-        'America/Argentina/San_Juan' => 'tempo de Argentino (San Juan)',
-        'America/Argentina/San_Luis' => 'tempo de Argentino (San Luis)',
-        'America/Argentina/Tucuman' => 'tempo de Argentino (Tucuman)',
-        'America/Argentina/Ushuaia' => 'tempo de Argentino (Ushuaia)',
-        'America/Aruba' => 'tempo de Arubo (Aruba)',
-        'America/Asuncion' => 'tempo de Paragvajo (Asunción)',
-        'America/Bahia' => 'tempo de Brazilo (Bahia)',
-        'America/Bahia_Banderas' => 'tempo de Meksiko (Bahía de Banderas)',
-        'America/Barbados' => 'tempo de Barbado (Barbados)',
-        'America/Belem' => 'tempo de Brazilo (Belem)',
-        'America/Belize' => 'tempo de Belizo (Belize)',
-        'America/Blanc-Sablon' => 'tempo de Kanado (Blanc-Sablon)',
-        'America/Boa_Vista' => 'tempo de Brazilo (Boa Vista)',
-        'America/Bogota' => 'tempo de Kolombio (Bogota)',
-        'America/Boise' => 'tempo de Usono (Boise)',
-        'America/Buenos_Aires' => 'tempo de Argentino (Buenos Aires)',
-        'America/Cambridge_Bay' => 'tempo de Kanado (Cambridge Bay)',
-        'America/Campo_Grande' => 'tempo de Brazilo (Campo Grande)',
-        'America/Cancun' => 'tempo de Meksiko (Cancún)',
-        'America/Caracas' => 'tempo de Venezuelo (Caracas)',
-        'America/Catamarca' => 'tempo de Argentino (Catamarca)',
-        'America/Cayenne' => 'tempo de Franca Gviano (Cayenne)',
-        'America/Cayman' => 'tempo de Kejmanoj (Cayman)',
-        'America/Chicago' => 'tempo de Usono (Chicago)',
-        'America/Chihuahua' => 'tempo de Meksiko (Chihuahua)',
-        'America/Ciudad_Juarez' => 'tempo de Meksiko (Ciudad Juárez)',
-        'America/Coral_Harbour' => 'tempo de Kanado (Atikokan)',
-        'America/Cordoba' => 'tempo de Argentino (Cordoba)',
-        'America/Costa_Rica' => 'tempo de Kostariko (Costa Rica)',
-        'America/Creston' => 'tempo de Kanado (Creston)',
-        'America/Cuiaba' => 'tempo de Brazilo (Cuiaba)',
+        'Africa/Bangui' => 'okcidentafrika tempo (Bango)',
+        'Africa/Banjul' => 'universala tempo kunordigita (Banjulo)',
+        'Africa/Bissau' => 'universala tempo kunordigita (Bisaŭo)',
+        'Africa/Blantyre' => 'centrafrika tempo (Blantyre)',
+        'Africa/Brazzaville' => 'okcidentafrika tempo (Brazavilo)',
+        'Africa/Bujumbura' => 'centrafrika tempo (Buĵumburo)',
+        'Africa/Cairo' => 'orienteŭropa tempo (Kairo)',
+        'Africa/Casablanca' => 'okcidenteŭropa tempo (Kazablanko)',
+        'Africa/Ceuta' => 'centreŭropa tempo (Ceŭto)',
+        'Africa/Conakry' => 'universala tempo kunordigita (Konakrio)',
+        'Africa/Dakar' => 'universala tempo kunordigita (Dakaro)',
+        'Africa/Dar_es_Salaam' => 'orientafrika tempo (Daresalamo)',
+        'Africa/Djibouti' => 'orientafrika tempo (Ĝibutio)',
+        'Africa/Douala' => 'okcidentafrika tempo (Dualao)',
+        'Africa/El_Aaiun' => 'okcidenteŭropa tempo (Ajuno)',
+        'Africa/Freetown' => 'universala tempo kunordigita (Fritaŭno)',
+        'Africa/Gaborone' => 'centrafrika tempo (Gaborono)',
+        'Africa/Harare' => 'centrafrika tempo (Harareo)',
+        'Africa/Johannesburg' => 'sudafrika tempo (Johanesburgo)',
+        'Africa/Juba' => 'centrafrika tempo (Ĝubao)',
+        'Africa/Kampala' => 'orientafrika tempo (Kampalo)',
+        'Africa/Khartoum' => 'centrafrika tempo (Ĥartumo)',
+        'Africa/Kigali' => 'centrafrika tempo (Kigalo)',
+        'Africa/Kinshasa' => 'okcidentafrika tempo (Kinŝaso)',
+        'Africa/Lagos' => 'okcidentafrika tempo (Lagoso)',
+        'Africa/Libreville' => 'okcidentafrika tempo (Librevilo)',
+        'Africa/Lome' => 'universala tempo kunordigita (Lomeo)',
+        'Africa/Luanda' => 'okcidentafrika tempo (Luando)',
+        'Africa/Lubumbashi' => 'centrafrika tempo (Lubumbaŝo)',
+        'Africa/Lusaka' => 'centrafrika tempo (Lusako)',
+        'Africa/Malabo' => 'okcidentafrika tempo (Malabo)',
+        'Africa/Maputo' => 'centrafrika tempo (Maputo)',
+        'Africa/Maseru' => 'sudafrika tempo (Maseruo)',
+        'Africa/Mbabane' => 'sudafrika tempo (Mbabano)',
+        'Africa/Mogadishu' => 'orientafrika tempo (Mogadiŝo)',
+        'Africa/Monrovia' => 'universala tempo kunordigita (Monrovio)',
+        'Africa/Nairobi' => 'orientafrika tempo (Najrobio)',
+        'Africa/Ndjamena' => 'okcidentafrika tempo (Niĝameno)',
+        'Africa/Niamey' => 'okcidentafrika tempo (Niamejo)',
+        'Africa/Nouakchott' => 'universala tempo kunordigita (Nuakŝoto)',
+        'Africa/Ouagadougou' => 'universala tempo kunordigita (Vagaduguo)',
+        'Africa/Porto-Novo' => 'okcidentafrika tempo (Portonovo)',
+        'Africa/Sao_Tome' => 'universala tempo kunordigita (Santomeo)',
+        'Africa/Tripoli' => 'orienteŭropa tempo (Tripolo)',
+        'Africa/Tunis' => 'centreŭropa tempo (Tunizo)',
+        'Africa/Windhoek' => 'centrafrika tempo (Vindhuko)',
+        'America/Adak' => 'tempo: Havajo-Aleutoj (Adak)',
+        'America/Anchorage' => 'alaska tempo (Anchorage)',
+        'America/Anguilla' => 'atlantika nordamerika tempo (Angvilo)',
+        'America/Antigua' => 'atlantika nordamerika tempo (Antigvo)',
+        'America/Araguaina' => 'brazilja tempo (Araguaína)',
+        'America/Argentina/La_Rioja' => 'argentina tempo (La Rioja)',
+        'America/Argentina/Rio_Gallegos' => 'argentina tempo (Río Gallegos)',
+        'America/Argentina/Salta' => 'argentina tempo (Saltaurbo)',
+        'America/Argentina/San_Juan' => 'argentina tempo (San Juan)',
+        'America/Argentina/San_Luis' => 'argentina tempo (San Luis)',
+        'America/Argentina/Tucuman' => 'argentina tempo (Tucumán)',
+        'America/Argentina/Ushuaia' => 'argentina tempo (Ushuaia)',
+        'America/Aruba' => 'atlantika nordamerika tempo (Arubo)',
+        'America/Asuncion' => 'paragvaja tempo (Asunciono)',
+        'America/Bahia' => 'brazilja tempo (Bahio)',
+        'America/Bahia_Banderas' => 'centra nordamerika tempo (Bahía de Banderas)',
+        'America/Barbados' => 'atlantika nordamerika tempo (Barbado)',
+        'America/Belem' => 'brazilja tempo (Belemo)',
+        'America/Belize' => 'centra nordamerika tempo (Belizo)',
+        'America/Blanc-Sablon' => 'atlantika nordamerika tempo (Blanc-Sablon)',
+        'America/Boa_Vista' => 'amazona tempo (Boa Vista)',
+        'America/Bogota' => 'kolombia tempo (Bogoto)',
+        'America/Boise' => 'montara nordamerika tempo (Boise)',
+        'America/Buenos_Aires' => 'argentina tempo (Bonaero)',
+        'America/Argentina/Buenos_Aires' => 'argentina tempo (Bonaero)',
+        'America/Cambridge_Bay' => 'montara nordamerika tempo (Kembriĝa Golfo)',
+        'America/Campo_Grande' => 'amazona tempo (Campo Grande)',
+        'America/Cancun' => 'orienta nordamerika tempo (Kankuno)',
+        'America/Caracas' => 'venezuela tempo (Karakaso)',
+        'America/Catamarca' => 'argentina tempo (Catamarca)',
+        'America/Argentina/Catamarca' => 'argentina tempo (Catamarca)',
+        'America/Cayenne' => 'tempo: Franca Gujano (Kajeno)',
+        'America/Cayman' => 'orienta nordamerika tempo (Kajmanoj)',
+        'America/Chicago' => 'centra nordamerika tempo (Ĉikago)',
+        'America/Chihuahua' => 'centra nordamerika tempo (Chihuahua)',
+        'America/Ciudad_Juarez' => 'montara nordamerika tempo (Ciudad Juárez)',
+        'America/Coral_Harbour' => 'orienta nordamerika tempo (Atikokan)',
+        'America/Atikokan' => 'orienta nordamerika tempo (Atikokan)',
+        'America/Cordoba' => 'argentina tempo (Kordobo)',
+        'America/Argentina/Cordoba' => 'argentina tempo (Kordobo)',
+        'America/Costa_Rica' => 'centra nordamerika tempo (Kostariko)',
+        'America/Coyhaique' => 'ĉilia tempo (Coyhaique)',
+        'America/Creston' => 'montara nordamerika tempo (Creston)',
+        'America/Cuiaba' => 'amazona tempo (Cuiabá)',
+        'America/Curacao' => 'atlantika nordamerika tempo (Kuracao)',
         'America/Danmarkshavn' => 'universala tempo kunordigita (Danmarkshavn)',
-        'America/Dawson' => 'tempo de Kanado (Dawson)',
-        'America/Dawson_Creek' => 'tempo de Kanado (Dawson Creek)',
-        'America/Denver' => 'tempo de Usono (Denver)',
-        'America/Detroit' => 'tempo de Usono (Detroit)',
-        'America/Dominica' => 'tempo de Dominiko (Dominica)',
-        'America/Edmonton' => 'tempo de Kanado (Edmonton)',
-        'America/Eirunepe' => 'tempo de Brazilo (Eirunepe)',
-        'America/El_Salvador' => 'tempo de Salvadoro (El Salvador)',
-        'America/Fort_Nelson' => 'tempo de Kanado (Fort Nelson)',
-        'America/Fortaleza' => 'tempo de Brazilo (Fortaleza)',
-        'America/Glace_Bay' => 'tempo de Kanado (Glace Bay)',
-        'America/Godthab' => 'tempo de Gronlando (Nuuk)',
-        'America/Goose_Bay' => 'tempo de Kanado (Goose Bay)',
-        'America/Grenada' => 'tempo de Grenado (Grenada)',
-        'America/Guadeloupe' => 'tempo de Gvadelupo (Guadeloupe)',
-        'America/Guatemala' => 'tempo de Gvatemalo (Guatemala)',
-        'America/Guayaquil' => 'tempo de Ekvadoro (Guayaquil)',
-        'America/Guyana' => 'tempo de Gujano (Guyana)',
-        'America/Halifax' => 'tempo de Kanado (Halifax)',
-        'America/Havana' => 'tempo de Kubo (Havana)',
-        'America/Hermosillo' => 'tempo de Meksiko (Hermosillo)',
-        'America/Indiana/Knox' => 'tempo de Usono (Knox, Indiana)',
-        'America/Indiana/Marengo' => 'tempo de Usono (Marengo, Indiana)',
-        'America/Indiana/Petersburg' => 'tempo de Usono (Petersburg, Indiana)',
-        'America/Indiana/Tell_City' => 'tempo de Usono (Tell City, Indiana)',
-        'America/Indiana/Vevay' => 'tempo de Usono (Vevay, Indiana)',
-        'America/Indiana/Vincennes' => 'tempo de Usono (Vincennes, Indiana)',
-        'America/Indiana/Winamac' => 'tempo de Usono (Winamac, Indiana)',
-        'America/Indianapolis' => 'tempo de Usono (Indianapolis)',
-        'America/Inuvik' => 'tempo de Kanado (Inuvik)',
-        'America/Iqaluit' => 'tempo de Kanado (Iqaluit)',
-        'America/Jamaica' => 'tempo de Jamajko (Jamaica)',
-        'America/Jujuy' => 'tempo de Argentino (Jujuy)',
-        'America/Juneau' => 'tempo de Usono (Juneau)',
-        'America/Kentucky/Monticello' => 'tempo de Usono (Monticello, Kentucky)',
-        'America/La_Paz' => 'tempo de Bolivio (La Paz)',
-        'America/Lima' => 'tempo de Peruo (Lima)',
-        'America/Los_Angeles' => 'tempo de Usono (Los Angeles)',
-        'America/Louisville' => 'tempo de Usono (Louisville)',
-        'America/Maceio' => 'tempo de Brazilo (Maceio)',
-        'America/Managua' => 'tempo de Nikaragvo (Managua)',
-        'America/Manaus' => 'tempo de Brazilo (Manaus)',
-        'America/Martinique' => 'tempo de Martiniko (Martinique)',
-        'America/Matamoros' => 'tempo de Meksiko (Matamoros)',
-        'America/Mazatlan' => 'tempo de Meksiko (Mazatlan)',
-        'America/Mendoza' => 'tempo de Argentino (Mendoza)',
-        'America/Menominee' => 'tempo de Usono (Menominee)',
-        'America/Merida' => 'tempo de Meksiko (Mérida)',
-        'America/Metlakatla' => 'tempo de Usono (Metlakatla)',
-        'America/Mexico_City' => 'tempo de Meksiko (Mexico City)',
-        'America/Miquelon' => 'tempo de Sankta Piero kaj Mikelono (Miquelon)',
-        'America/Moncton' => 'tempo de Kanado (Moncton)',
-        'America/Monterrey' => 'tempo de Meksiko (Monterrey)',
-        'America/Montevideo' => 'tempo de Urugvajo (Montevideo)',
-        'America/Nassau' => 'tempo de Bahamoj (Nassau)',
-        'America/New_York' => 'tempo de Usono (New York)',
-        'America/Nome' => 'tempo de Usono (Nome)',
-        'America/Noronha' => 'tempo de Brazilo (Fernando de Noronha)',
-        'America/North_Dakota/Beulah' => 'tempo de Usono (Beulah, North Dakota)',
-        'America/North_Dakota/Center' => 'tempo de Usono (Center, North Dakota)',
-        'America/North_Dakota/New_Salem' => 'tempo de Usono (New Salem, North Dakota)',
-        'America/Ojinaga' => 'tempo de Meksiko (Ojinaga)',
-        'America/Panama' => 'tempo de Panamo (Panama)',
-        'America/Paramaribo' => 'tempo de Surinamo (Paramaribo)',
-        'America/Phoenix' => 'tempo de Usono (Phoenix)',
-        'America/Port-au-Prince' => 'tempo de Haitio (Port-au-Prince)',
-        'America/Port_of_Spain' => 'tempo de Trinidado kaj Tobago (Port of Spain)',
-        'America/Porto_Velho' => 'tempo de Brazilo (Porto Velho)',
-        'America/Puerto_Rico' => 'tempo de Puertoriko (Puerto Rico)',
-        'America/Punta_Arenas' => 'tempo de Ĉilio (Punta Arenas)',
-        'America/Rankin_Inlet' => 'tempo de Kanado (Rankin Inlet)',
-        'America/Recife' => 'tempo de Brazilo (Recife)',
-        'America/Regina' => 'tempo de Kanado (Regina)',
-        'America/Resolute' => 'tempo de Kanado (Resolute)',
-        'America/Rio_Branco' => 'tempo de Brazilo (Rio Branco)',
-        'America/Santarem' => 'tempo de Brazilo (Santarem)',
-        'America/Santiago' => 'tempo de Ĉilio (Santiago)',
-        'America/Santo_Domingo' => 'tempo de Domingo (Santo Domingo)',
-        'America/Sao_Paulo' => 'tempo de Brazilo (Sao Paulo)',
-        'America/Scoresbysund' => 'tempo de Gronlando (Ittoqqortoormiit)',
-        'America/Sitka' => 'tempo de Usono (Sitka)',
-        'America/St_Johns' => 'tempo de Kanado (St. John’s)',
-        'America/St_Kitts' => 'tempo de Sankta Kristoforo kaj Neviso (St. Kitts)',
-        'America/St_Lucia' => 'tempo de Sankta Lucio (St. Lucia)',
-        'America/St_Thomas' => 'tempo de Usonaj Virgulininsuloj (St. Thomas)',
-        'America/St_Vincent' => 'tempo de Sankta Vincento kaj Grenadinoj (St. Vincent)',
-        'America/Swift_Current' => 'tempo de Kanado (Swift Current)',
-        'America/Tegucigalpa' => 'tempo de Honduro (Tegucigalpa)',
-        'America/Thule' => 'tempo de Gronlando (Thule)',
-        'America/Tijuana' => 'tempo de Meksiko (Tijuana)',
-        'America/Toronto' => 'tempo de Kanado (Toronto)',
-        'America/Tortola' => 'tempo de Britaj Virgulininsuloj (Tortola)',
-        'America/Vancouver' => 'tempo de Kanado (Vancouver)',
-        'America/Whitehorse' => 'tempo de Kanado (Whitehorse)',
-        'America/Winnipeg' => 'tempo de Kanado (Winnipeg)',
-        'America/Yakutat' => 'tempo de Usono (Yakutat)',
-        'Antarctica/Casey' => 'tempo de Antarkto (Casey)',
-        'Antarctica/Davis' => 'tempo de Antarkto (Davis)',
-        'Antarctica/DumontDUrville' => 'tempo de Antarkto (Dumont-d’Urville)',
-        'Antarctica/Macquarie' => 'tempo de Aŭstralio (Macquarie)',
-        'Antarctica/Mawson' => 'tempo de Antarkto (Mawson)',
-        'Antarctica/McMurdo' => 'tempo de Antarkto (McMurdo)',
-        'Antarctica/Palmer' => 'tempo de Antarkto (Palmer)',
-        'Antarctica/Rothera' => 'tempo de Antarkto (Rothera)',
-        'Antarctica/Syowa' => 'tempo de Antarkto (Syowa)',
+        'America/Dawson' => 'jukonia tempo (Dawson)',
+        'America/Dawson_Creek' => 'montara nordamerika tempo (Dawson Creek)',
+        'America/Denver' => 'montara nordamerika tempo (Denvero)',
+        'America/Detroit' => 'orienta nordamerika tempo (Detrojto)',
+        'America/Dominica' => 'atlantika nordamerika tempo (Dominiko)',
+        'America/Edmonton' => 'montara nordamerika tempo (Edmontono)',
+        'America/Eirunepe' => 'tempo: Brazilo (Eirunepé)',
+        'America/El_Salvador' => 'centra nordamerika tempo (Salvadoro)',
+        'America/Fort_Nelson' => 'montara nordamerika tempo (Fort Nelson)',
+        'America/Fortaleza' => 'brazilja tempo (Fortalezo)',
+        'America/Glace_Bay' => 'atlantika nordamerika tempo (Glace Bay)',
+        'America/Godthab' => 'tempo: Gronlando (Nuko)',
+        'America/Nuuk' => 'tempo: Gronlando (Nuko)',
+        'America/Goose_Bay' => 'atlantika nordamerika tempo (Goose Bay)',
+        'America/Grand_Turk' => 'orienta nordamerika tempo (Granda Turko)',
+        'America/Grenada' => 'atlantika nordamerika tempo (Grenado)',
+        'America/Guadeloupe' => 'atlantika nordamerika tempo (Gvadelupo)',
+        'America/Guatemala' => 'centra nordamerika tempo (Gvatemalo)',
+        'America/Guayaquil' => 'ekvadora tempo (Guayaquil)',
+        'America/Guyana' => 'gujana tempo (Gujano)',
+        'America/Halifax' => 'atlantika nordamerika tempo (Halifakso)',
+        'America/Havana' => 'tempo: Kubo (Havano)',
+        'America/Hermosillo' => 'pacifika meksika tempo (Hermosillo)',
+        'America/Indiana/Knox' => 'centra nordamerika tempo (Knox, Indianao)',
+        'America/Indiana/Marengo' => 'orienta nordamerika tempo (Marengo, Indianao)',
+        'America/Indiana/Petersburg' => 'orienta nordamerika tempo (Petersburg, Indianao)',
+        'America/Indiana/Tell_City' => 'centra nordamerika tempo (Tell City, Indianao)',
+        'America/Indiana/Vevay' => 'orienta nordamerika tempo (Vevay, Indianao)',
+        'America/Indiana/Vincennes' => 'orienta nordamerika tempo (Vincennes, Indianao)',
+        'America/Indiana/Winamac' => 'orienta nordamerika tempo (Winamac, Indianao)',
+        'America/Indianapolis' => 'orienta nordamerika tempo (Indianapolo, Indianao)',
+        'America/Indiana/Indianapolis' => 'orienta nordamerika tempo (Indianapolo, Indianao)',
+        'America/Inuvik' => 'montara nordamerika tempo (Inuvik)',
+        'America/Iqaluit' => 'orienta nordamerika tempo (Ikaluito)',
+        'America/Jamaica' => 'orienta nordamerika tempo (Jamajko)',
+        'America/Jujuy' => 'argentina tempo (Jujuy)',
+        'America/Argentina/Jujuy' => 'argentina tempo (Jujuy)',
+        'America/Juneau' => 'alaska tempo (Juneau)',
+        'America/Kentucky/Monticello' => 'orienta nordamerika tempo (Monticello, Kentukio)',
+        'America/Kralendijk' => 'atlantika nordamerika tempo (Kralendijk)',
+        'America/La_Paz' => 'bolivia tempo (La Paz)',
+        'America/Lima' => 'perua tempo (Limo)',
+        'America/Los_Angeles' => 'pacifika nordamerika tempo (Losanĝeleso)',
+        'America/Louisville' => 'orienta nordamerika tempo (Louisville)',
+        'America/Kentucky/Louisville' => 'orienta nordamerika tempo (Louisville)',
+        'America/Lower_Princes' => 'atlantika nordamerika tempo (Lower Prince’s Quarter)',
+        'America/Maceio' => 'brazilja tempo (Maceió)',
+        'America/Managua' => 'centra nordamerika tempo (Managvo)',
+        'America/Manaus' => 'amazona tempo (Manaŭso)',
+        'America/Marigot' => 'atlantika nordamerika tempo (Marigoto)',
+        'America/Martinique' => 'atlantika nordamerika tempo (Martiniko)',
+        'America/Matamoros' => 'centra nordamerika tempo (Matamoros)',
+        'America/Mazatlan' => 'pacifika meksika tempo (Mazatlán)',
+        'America/Mendoza' => 'argentina tempo (Mendoza)',
+        'America/Argentina/Mendoza' => 'argentina tempo (Mendoza)',
+        'America/Menominee' => 'centra nordamerika tempo (Menominee)',
+        'America/Merida' => 'centra nordamerika tempo (Merido)',
+        'America/Metlakatla' => 'alaska tempo (Metlakatla)',
+        'America/Mexico_City' => 'centra nordamerika tempo (Meksikurbo)',
+        'America/Miquelon' => 'tempo: Sankta Piero kaj Mikelono',
+        'America/Moncton' => 'atlantika nordamerika tempo (Monktono)',
+        'America/Monterrey' => 'centra nordamerika tempo (Monterejo)',
+        'America/Montevideo' => 'urugvaja tempo (Montevideo)',
+        'America/Montserrat' => 'atlantika nordamerika tempo (Moncerato)',
+        'America/Nassau' => 'orienta nordamerika tempo (Nasaŭo)',
+        'America/New_York' => 'orienta nordamerika tempo (Nov-Jorko)',
+        'America/Nome' => 'alaska tempo (Nome)',
+        'America/Noronha' => 'tempo: Fernando de Noronha',
+        'America/North_Dakota/Beulah' => 'centra nordamerika tempo (Beulah, Norda Dakoto)',
+        'America/North_Dakota/Center' => 'centra nordamerika tempo (Center, Norda Dakoto)',
+        'America/North_Dakota/New_Salem' => 'centra nordamerika tempo (New Salem, Norda Dakoto)',
+        'America/Ojinaga' => 'centra nordamerika tempo (Ojinaga)',
+        'America/Panama' => 'orienta nordamerika tempo (Panamo)',
+        'America/Paramaribo' => 'surinama tempo (Paramaribo)',
+        'America/Phoenix' => 'montara nordamerika tempo (Fenikso)',
+        'America/Port-au-Prince' => 'orienta nordamerika tempo (Portoprinco)',
+        'America/Port_of_Spain' => 'atlantika nordamerika tempo (Portospeno)',
+        'America/Porto_Velho' => 'amazona tempo (Porto Velho)',
+        'America/Puerto_Rico' => 'atlantika nordamerika tempo (Puertoriko)',
+        'America/Punta_Arenas' => 'ĉilia tempo (Punta Arenas)',
+        'America/Rankin_Inlet' => 'centra nordamerika tempo (Rankin Inlet)',
+        'America/Recife' => 'brazilja tempo (Recife)',
+        'America/Regina' => 'centra nordamerika tempo (Regina)',
+        'America/Resolute' => 'centra nordamerika tempo (Resolute)',
+        'America/Rio_Branco' => 'tempo: Brazilo (Rio Branco)',
+        'America/Santarem' => 'brazilja tempo (Santarém)',
+        'America/Santiago' => 'ĉilia tempo (Santiago)',
+        'America/Santo_Domingo' => 'atlantika nordamerika tempo (Sankta Domingo)',
+        'America/Sao_Paulo' => 'brazilja tempo (Sanpaŭlo)',
+        'America/Scoresbysund' => 'tempo: Gronlando (Ittoqqortoormiit)',
+        'America/Sitka' => 'alaska tempo (Sitka)',
+        'America/St_Barthelemy' => 'atlantika nordamerika tempo (Sankta Bartolomeo)',
+        'America/St_Johns' => 'tempo: Novlando (St. John’s)',
+        'America/St_Kitts' => 'atlantika nordamerika tempo (Sankta Kristoforo)',
+        'America/St_Lucia' => 'atlantika nordamerika tempo (Sankta Lucio)',
+        'America/St_Thomas' => 'atlantika nordamerika tempo (Sankta Tomaso)',
+        'America/St_Vincent' => 'atlantika nordamerika tempo (Sankta Vincento)',
+        'America/Swift_Current' => 'centra nordamerika tempo (Swift Current)',
+        'America/Tegucigalpa' => 'centra nordamerika tempo (Tegucigalpo)',
+        'America/Thule' => 'atlantika nordamerika tempo (Qaanaaq)',
+        'America/Tijuana' => 'pacifika nordamerika tempo (Tijuana)',
+        'America/Toronto' => 'orienta nordamerika tempo (Toronto)',
+        'America/Tortola' => 'atlantika nordamerika tempo (Tortola)',
+        'America/Vancouver' => 'pacifika nordamerika tempo (Vankuvero)',
+        'America/Whitehorse' => 'jukonia tempo (Whitehorse)',
+        'America/Winnipeg' => 'centra nordamerika tempo (Vinipego)',
+        'America/Yakutat' => 'alaska tempo (Yakutat)',
+        'Antarctica/Casey' => 'okcidenta aŭstralia tempo (Casey)',
+        'Antarctica/Davis' => 'tempo: Davis',
+        'Antarctica/DumontDUrville' => 'tempo: Dumont d’Urville',
+        'Antarctica/Macquarie' => 'orienta aŭstralia tempo (Makvora insulo)',
+        'Antarctica/Mawson' => 'tempo: Mawson',
+        'Antarctica/McMurdo' => 'novzelanda tempo (McMurdo)',
+        'Antarctica/Palmer' => 'ĉilia tempo (Palmer)',
+        'Antarctica/Rothera' => 'tempo: Rothera',
+        'Antarctica/Syowa' => 'tempo: Showa',
         'Antarctica/Troll' => 'universala tempo kunordigita (Troll)',
-        'Antarctica/Vostok' => 'tempo de Antarkto (Vostok)',
-        'Arctic/Longyearbyen' => 'tempo de Svalbardo kaj Janmajeno (Longyearbyen)',
-        'Asia/Aden' => 'tempo de Jemeno (Aden)',
-        'Asia/Almaty' => 'tempo de Kazaĥujo (Almaty)',
-        'Asia/Amman' => 'tempo de Jordanio (Amman)',
-        'Asia/Anadyr' => 'tempo de Rusujo (Anadyr)',
-        'Asia/Aqtau' => 'tempo de Kazaĥujo (Aqtau)',
-        'Asia/Aqtobe' => 'tempo de Kazaĥujo (Aqtobe)',
-        'Asia/Ashgabat' => 'tempo de Turkmenujo (Ashgabat)',
-        'Asia/Atyrau' => 'tempo de Kazaĥujo (Atyrau)',
-        'Asia/Baghdad' => 'tempo de Irako (Baghdad)',
-        'Asia/Bahrain' => 'tempo de Barejno (Bahrain)',
-        'Asia/Baku' => 'tempo de Azerbajĝano (Baku)',
-        'Asia/Bangkok' => 'tempo de Tajlando (Bangkok)',
-        'Asia/Barnaul' => 'tempo de Rusujo (Barnaul)',
-        'Asia/Beirut' => 'tempo de Libano (Beirut)',
-        'Asia/Bishkek' => 'tempo de Kirgizujo (Bishkek)',
-        'Asia/Brunei' => 'tempo de Brunejo (Brunei)',
-        'Asia/Calcutta' => 'tempo de Hindujo (Kolkata)',
-        'Asia/Chita' => 'tempo de Rusujo (Chita)',
-        'Asia/Colombo' => 'tempo de Srilanko (Colombo)',
-        'Asia/Damascus' => 'tempo de Sirio (Damascus)',
-        'Asia/Dhaka' => 'tempo de Bangladeŝo (Dhaka)',
-        'Asia/Dubai' => 'tempo de Unuiĝintaj Arabaj Emirlandoj (Dubai)',
-        'Asia/Dushanbe' => 'tempo de Taĝikujo (Dushanbe)',
-        'Asia/Famagusta' => 'tempo de Kipro (Famagusta)',
-        'Asia/Hovd' => 'tempo de Mongolujo (Hovd)',
-        'Asia/Irkutsk' => 'tempo de Rusujo (Irkutsk)',
-        'Asia/Jakarta' => 'tempo de Indonezio (Jakarta)',
-        'Asia/Jayapura' => 'tempo de Indonezio (Jayapura)',
-        'Asia/Jerusalem' => 'tempo de Israelo (Jerusalem)',
-        'Asia/Kabul' => 'tempo de Afganujo (Kabul)',
-        'Asia/Kamchatka' => 'tempo de Rusujo (Kamchatka)',
-        'Asia/Karachi' => 'tempo de Pakistano (Karachi)',
-        'Asia/Katmandu' => 'tempo de Nepalo (Kathmandu)',
-        'Asia/Khandyga' => 'tempo de Rusujo (Khandyga)',
-        'Asia/Krasnoyarsk' => 'tempo de Rusujo (Krasnoyarsk)',
-        'Asia/Kuala_Lumpur' => 'tempo de Malajzio (Kuala Lumpur)',
-        'Asia/Kuching' => 'tempo de Malajzio (Kuching)',
-        'Asia/Kuwait' => 'tempo de Kuvajto (Kuwait)',
-        'Asia/Magadan' => 'tempo de Rusujo (Magadan)',
-        'Asia/Makassar' => 'tempo de Indonezio (Makassar)',
-        'Asia/Manila' => 'tempo de Filipinoj (Manila)',
-        'Asia/Muscat' => 'tempo de Omano (Muscat)',
-        'Asia/Nicosia' => 'tempo de Kipro (Nicosia)',
-        'Asia/Novokuznetsk' => 'tempo de Rusujo (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'tempo de Rusujo (Novosibirsk)',
-        'Asia/Omsk' => 'tempo de Rusujo (Omsk)',
-        'Asia/Oral' => 'tempo de Kazaĥujo (Oral)',
-        'Asia/Phnom_Penh' => 'tempo de Kamboĝo (Phnom Penh)',
-        'Asia/Pontianak' => 'tempo de Indonezio (Pontianak)',
-        'Asia/Pyongyang' => 'tempo de Nord-Koreo (Pyongyang)',
-        'Asia/Qatar' => 'tempo de Kataro (Qatar)',
-        'Asia/Qostanay' => 'tempo de Kazaĥujo (Qostanay)',
-        'Asia/Qyzylorda' => 'tempo de Kazaĥujo (Qyzylorda)',
-        'Asia/Rangoon' => 'tempo de Birmo (Yangon)',
-        'Asia/Riyadh' => 'tempo de Sauda Arabujo (Riyadh)',
-        'Asia/Saigon' => 'tempo de Vjetnamo (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'tempo de Rusujo (Sakhalin)',
-        'Asia/Samarkand' => 'tempo de Uzbekujo (Samarkand)',
-        'Asia/Seoul' => 'tempo de Sud-Koreo (Seoul)',
-        'Asia/Shanghai' => 'tempo de Ĉinujo (Shanghai)',
-        'Asia/Singapore' => 'tempo de Singapuro (Singapore)',
-        'Asia/Srednekolymsk' => 'tempo de Rusujo (Srednekolymsk)',
-        'Asia/Taipei' => 'tempo de Tajvano (Taipei)',
-        'Asia/Tashkent' => 'tempo de Uzbekujo (Tashkent)',
-        'Asia/Tbilisi' => 'tempo de Kartvelujo (Tbilisi)',
-        'Asia/Tehran' => 'tempo de Irano (Tehran)',
-        'Asia/Thimphu' => 'tempo de Butano (Thimphu)',
-        'Asia/Tokyo' => 'tempo de Japanujo (Tokyo)',
-        'Asia/Tomsk' => 'tempo de Rusujo (Tomsk)',
-        'Asia/Ulaanbaatar' => 'tempo de Mongolujo (Ulaanbaatar)',
-        'Asia/Urumqi' => 'tempo de Ĉinujo (Urumqi)',
-        'Asia/Ust-Nera' => 'tempo de Rusujo (Ust-Nera)',
-        'Asia/Vientiane' => 'tempo de Laoso (Vientiane)',
-        'Asia/Vladivostok' => 'tempo de Rusujo (Vladivostok)',
-        'Asia/Yakutsk' => 'tempo de Rusujo (Yakutsk)',
-        'Asia/Yekaterinburg' => 'tempo de Rusujo (Yekaterinburg)',
-        'Asia/Yerevan' => 'tempo de Armenujo (Yerevan)',
-        'Atlantic/Azores' => 'tempo de Portugalujo (Azores)',
-        'Atlantic/Bermuda' => 'tempo de Bermudoj (Bermuda)',
-        'Atlantic/Canary' => 'tempo de Hispanujo (Canary)',
-        'Atlantic/Cape_Verde' => 'tempo de Kaboverdo (Cape Verde)',
-        'Atlantic/Faeroe' => 'tempo de Ferooj (Faroe)',
-        'Atlantic/Madeira' => 'tempo de Portugalujo (Madeira)',
-        'Atlantic/Reykjavik' => 'universala tempo kunordigita (Reykjavik)',
-        'Atlantic/South_Georgia' => 'tempo de Sud-Georgio kaj Sud-Sandviĉinsuloj (South Georgia)',
-        'Atlantic/St_Helena' => 'universala tempo kunordigita (St. Helena)',
-        'Australia/Adelaide' => 'tempo de Aŭstralio (Adelaide)',
-        'Australia/Brisbane' => 'tempo de Aŭstralio (Brisbane)',
-        'Australia/Broken_Hill' => 'tempo de Aŭstralio (Broken Hill)',
-        'Australia/Darwin' => 'tempo de Aŭstralio (Darwin)',
-        'Australia/Eucla' => 'tempo de Aŭstralio (Eucla)',
-        'Australia/Hobart' => 'tempo de Aŭstralio (Hobart)',
-        'Australia/Lindeman' => 'tempo de Aŭstralio (Lindeman)',
-        'Australia/Lord_Howe' => 'tempo de Aŭstralio (Lord Howe)',
-        'Australia/Melbourne' => 'tempo de Aŭstralio (Melbourne)',
-        'Australia/Perth' => 'tempo de Aŭstralio (Perth)',
-        'Australia/Sydney' => 'tempo de Aŭstralio (Sydney)',
+        'Antarctica/Vostok' => 'tempo: Vostok',
+        'Arctic/Longyearbyen' => 'centreŭropa tempo (Longjerurbo)',
+        'Asia/Aden' => 'araba tempo (Adeno)',
+        'Asia/Almaty' => 'kazaĥa tempo (Almato)',
+        'Asia/Amman' => 'orienteŭropa tempo (Amano)',
+        'Asia/Anadyr' => 'tempo: Rusujo (Anadir)',
+        'Asia/Aqtau' => 'kazaĥa tempo (Aktau)',
+        'Asia/Aqtobe' => 'kazaĥa tempo (Aktobe)',
+        'Asia/Ashgabat' => 'turkmena tempo (Aŝĥabado)',
+        'Asia/Atyrau' => 'kazaĥa tempo (Atirau)',
+        'Asia/Baghdad' => 'araba tempo (Bagdado)',
+        'Asia/Bahrain' => 'araba tempo (Barejno)',
+        'Asia/Baku' => 'azerbajĝana tempo (Bakuo)',
+        'Asia/Bangkok' => 'hindoĉina tempo (Bankoko)',
+        'Asia/Barnaul' => 'krasnojarska tempo (Barnaul)',
+        'Asia/Beirut' => 'orienteŭropa tempo (Bejruto)',
+        'Asia/Bishkek' => 'kirgiza tempo (Biŝkeko)',
+        'Asia/Brunei' => 'bruneja tempo (Brunejo)',
+        'Asia/Calcutta' => 'hinda norma tempo (Kolkato)',
+        'Asia/Kolkata' => 'hinda norma tempo (Kolkato)',
+        'Asia/Chita' => 'jakutska tempo (Ĉita)',
+        'Asia/Colombo' => 'hinda norma tempo (Kolombo)',
+        'Asia/Damascus' => 'orienteŭropa tempo (Damasko)',
+        'Asia/Dhaka' => 'bangladeŝa tempo (Dako)',
+        'Asia/Dili' => 'orient-timora tempo (Dilo)',
+        'Asia/Dubai' => 'arabgolfa norma tempo (Dubajurbo)',
+        'Asia/Dushanbe' => 'taĝika tempo (Duŝanbeo)',
+        'Asia/Famagusta' => 'orienteŭropa tempo (Famagusta)',
+        'Asia/Gaza' => 'orienteŭropa tempo (Gazao)',
+        'Asia/Hebron' => 'orienteŭropa tempo (Hebrono)',
+        'Asia/Hong_Kong' => 'honkonga tempo (Honkongo)',
+        'Asia/Hovd' => 'ĥovda tempo',
+        'Asia/Irkutsk' => 'irkutska tempo (Irkutsko)',
+        'Asia/Jakarta' => 'okcident-indonezia tempo (Ĝakarto)',
+        'Asia/Jayapura' => 'orient-indonezia tempo (Jayapura)',
+        'Asia/Jerusalem' => 'israela tempo (Jerusalemo)',
+        'Asia/Kabul' => 'afgana tempo (Kabulo)',
+        'Asia/Kamchatka' => 'tempo: Rusujo (Kamĉatko)',
+        'Asia/Karachi' => 'pakistana tempo (Karaĉio)',
+        'Asia/Katmandu' => 'nepala tempo (Katmanduo)',
+        'Asia/Kathmandu' => 'nepala tempo (Katmanduo)',
+        'Asia/Khandyga' => 'jakutska tempo (Ĥandiga)',
+        'Asia/Krasnoyarsk' => 'krasnojarska tempo (Krasnojarsko)',
+        'Asia/Kuala_Lumpur' => 'malajzia tempo (Kualalumpuro)',
+        'Asia/Kuching' => 'malajzia tempo (Kuching)',
+        'Asia/Kuwait' => 'araba tempo (Kuvajto)',
+        'Asia/Macau' => 'ĉina tempo (Makao)',
+        'Asia/Magadan' => 'magadana tempo',
+        'Asia/Makassar' => 'centr-indonezia tempo (Makassar)',
+        'Asia/Manila' => 'filipina tempo (Manilo)',
+        'Asia/Muscat' => 'arabgolfa norma tempo (Maskato)',
+        'Asia/Nicosia' => 'orienteŭropa tempo (Nikozio)',
+        'Asia/Novokuznetsk' => 'krasnojarska tempo (Novokuznecko)',
+        'Asia/Novosibirsk' => 'krasnojarska tempo (Novosibirsko)',
+        'Asia/Omsk' => 'omska tempo (Omsko)',
+        'Asia/Oral' => 'kazaĥa tempo (Oralo)',
+        'Asia/Phnom_Penh' => 'hindoĉina tempo (Pnompeno)',
+        'Asia/Pontianak' => 'okcident-indonezia tempo (Pontianak)',
+        'Asia/Pyongyang' => 'korea tempo (Pjongjango)',
+        'Asia/Qatar' => 'araba tempo (Kataro)',
+        'Asia/Qostanay' => 'kazaĥa tempo (Kostanaj)',
+        'Asia/Qyzylorda' => 'kazaĥa tempo (Kizilordo)',
+        'Asia/Rangoon' => 'birma tempo (Ranguno)',
+        'Asia/Yangon' => 'birma tempo (Ranguno)',
+        'Asia/Riyadh' => 'araba tempo (Riado)',
+        'Asia/Saigon' => 'hindoĉina tempo (Hoĉimino)',
+        'Asia/Ho_Chi_Minh' => 'hindoĉina tempo (Hoĉimino)',
+        'Asia/Sakhalin' => 'magadana tempo (Saĥaleno)',
+        'Asia/Samarkand' => 'uzbeka tempo (Samarkando)',
+        'Asia/Seoul' => 'korea tempo (Seulo)',
+        'Asia/Shanghai' => 'ĉina tempo (Ŝanhajo)',
+        'Asia/Singapore' => 'singapura norma tempo (Singapuro)',
+        'Asia/Srednekolymsk' => 'magadana tempo (Srednekolimsk)',
+        'Asia/Taipei' => 'tajvana tempo (Tajpeo)',
+        'Asia/Tashkent' => 'uzbeka tempo (Taŝkento)',
+        'Asia/Tbilisi' => 'kartvela tempo (Tbiliso)',
+        'Asia/Tehran' => 'irana tempo (Teherano)',
+        'Asia/Thimphu' => 'butana tempo (Timbuo)',
+        'Asia/Tokyo' => 'japana tempo (Tokio)',
+        'Asia/Tomsk' => 'krasnojarska tempo (Tomsk)',
+        'Asia/Ulaanbaatar' => 'ulanbatora tempo (Ulanbatoro)',
+        'Asia/Urumqi' => 'tempo: Ĉinujo (Urumĉio)',
+        'Asia/Ust-Nera' => 'vladivostoka tempo (Ustnero)',
+        'Asia/Vientiane' => 'hindoĉina tempo (Vjentiano)',
+        'Asia/Vladivostok' => 'vladivostoka tempo (Vladivostoko)',
+        'Asia/Yakutsk' => 'jakutska tempo (Jakutsko)',
+        'Asia/Yekaterinburg' => 'jekaterinburga tempo (Jekaterinburgo)',
+        'Asia/Yerevan' => 'armena tempo (Erevano)',
+        'Atlantic/Azores' => 'tempo: Acoroj',
+        'Atlantic/Bermuda' => 'atlantika nordamerika tempo (Bermudoj)',
+        'Atlantic/Canary' => 'okcidenteŭropa tempo (Kanarioj)',
+        'Atlantic/Cape_Verde' => 'kaboverda tempo (Kaboverdo)',
+        'Atlantic/Faeroe' => 'okcidenteŭropa tempo (Ferooj)',
+        'Atlantic/Faroe' => 'okcidenteŭropa tempo (Ferooj)',
+        'Atlantic/Madeira' => 'okcidenteŭropa tempo (Madejro)',
+        'Atlantic/Reykjavik' => 'universala tempo kunordigita (Rejkjaviko)',
+        'Atlantic/South_Georgia' => 'tempo: Sud-Georgio',
+        'Atlantic/St_Helena' => 'universala tempo kunordigita (Sankta Heleno)',
+        'Atlantic/Stanley' => 'falklanda tempo (Stanlejo)',
+        'Australia/Adelaide' => 'centra aŭstralia tempo (Adelajdo)',
+        'Australia/Brisbane' => 'orienta aŭstralia tempo (Brisbano)',
+        'Australia/Broken_Hill' => 'centra aŭstralia tempo (Broken Hill)',
+        'Australia/Darwin' => 'centra aŭstralia tempo (Darvino)',
+        'Australia/Eucla' => 'centrokcidenta aŭstralia tempo (Eucla)',
+        'Australia/Hobart' => 'orienta aŭstralia tempo (Hobarto)',
+        'Australia/Lindeman' => 'orienta aŭstralia tempo (Lindeman)',
+        'Australia/Lord_Howe' => 'tempo: Lord Howe',
+        'Australia/Melbourne' => 'orienta aŭstralia tempo (Melburno)',
+        'Australia/Perth' => 'okcidenta aŭstralia tempo (Perto)',
+        'Australia/Sydney' => 'orienta aŭstralia tempo (Sidnejo)',
         'Etc/GMT' => 'universala tempo kunordigita',
-        'Europe/Amsterdam' => 'tempo de Nederlando (Amsterdam)',
-        'Europe/Andorra' => 'tempo de Andoro (Andorra)',
-        'Europe/Astrakhan' => 'tempo de Rusujo (Astrakhan)',
-        'Europe/Athens' => 'tempo de Grekujo (Athens)',
-        'Europe/Berlin' => 'tempo de Germanujo (Berlin)',
-        'Europe/Bratislava' => 'tempo de Slovakujo (Bratislava)',
-        'Europe/Brussels' => 'tempo de Belgujo (Brussels)',
-        'Europe/Bucharest' => 'tempo de Rumanujo (Bucharest)',
-        'Europe/Budapest' => 'tempo de Hungarujo (Budapest)',
-        'Europe/Busingen' => 'tempo de Germanujo (Busingen)',
-        'Europe/Chisinau' => 'tempo de Moldavujo (Chisinau)',
-        'Europe/Copenhagen' => 'tempo de Danujo (Copenhagen)',
-        'Europe/Dublin' => 'universala tempo kunordigita (Dublin)',
-        'Europe/Gibraltar' => 'tempo de Ĝibraltaro (Gibraltar)',
-        'Europe/Guernsey' => 'universala tempo kunordigita (Guernsey)',
-        'Europe/Helsinki' => 'tempo de Finnlando (Helsinki)',
-        'Europe/Isle_of_Man' => 'universala tempo kunordigita (Isle of Man)',
-        'Europe/Istanbul' => 'tempo de Turkujo (Istanbul)',
-        'Europe/Jersey' => 'universala tempo kunordigita (Jersey)',
-        'Europe/Kaliningrad' => 'tempo de Rusujo (Kaliningrad)',
-        'Europe/Kiev' => 'tempo de Ukrainujo (Kyiv)',
-        'Europe/Kirov' => 'tempo de Rusujo (Kirov)',
-        'Europe/Lisbon' => 'tempo de Portugalujo (Lisbon)',
-        'Europe/Ljubljana' => 'tempo de Slovenujo (Ljubljana)',
-        'Europe/London' => 'universala tempo kunordigita (London)',
-        'Europe/Luxembourg' => 'tempo de Luksemburgo (Luxembourg)',
-        'Europe/Madrid' => 'tempo de Hispanujo (Madrid)',
-        'Europe/Malta' => 'tempo de Malto (Malta)',
-        'Europe/Minsk' => 'tempo de Belorusujo (Minsk)',
-        'Europe/Monaco' => 'tempo de Monako (Monaco)',
-        'Europe/Moscow' => 'tempo de Rusujo (Moscow)',
-        'Europe/Oslo' => 'tempo de Norvegujo (Oslo)',
-        'Europe/Paris' => 'tempo de Francujo (Paris)',
-        'Europe/Prague' => 'tempo de Ĉeĥujo (Prague)',
-        'Europe/Riga' => 'tempo de Latvujo (Riga)',
-        'Europe/Rome' => 'tempo de Italujo (Rome)',
-        'Europe/Samara' => 'tempo de Rusujo (Samara)',
-        'Europe/San_Marino' => 'tempo de Sanmarino (San Marino)',
-        'Europe/Sarajevo' => 'tempo de Bosnujo kaj Hercegovino (Sarajevo)',
-        'Europe/Saratov' => 'tempo de Rusujo (Saratov)',
-        'Europe/Simferopol' => 'tempo de Ukrainujo (Simferopol)',
-        'Europe/Sofia' => 'tempo de Bulgarujo (Sofia)',
-        'Europe/Stockholm' => 'tempo de Svedujo (Stockholm)',
-        'Europe/Tallinn' => 'tempo de Estonujo (Tallinn)',
-        'Europe/Tirane' => 'tempo de Albanujo (Tirane)',
-        'Europe/Ulyanovsk' => 'tempo de Rusujo (Ulyanovsk)',
-        'Europe/Vaduz' => 'tempo de Liĥtenŝtejno (Vaduz)',
-        'Europe/Vatican' => 'tempo de Vatikano (Vatican)',
-        'Europe/Vienna' => 'tempo de Aŭstrujo (Vienna)',
-        'Europe/Vilnius' => 'tempo de Litovujo (Vilnius)',
-        'Europe/Volgograd' => 'tempo de Rusujo (Volgograd)',
-        'Europe/Warsaw' => 'tempo de Pollando (Warsaw)',
-        'Europe/Zagreb' => 'tempo de Kroatujo (Zagreb)',
-        'Europe/Zurich' => 'tempo de Svisujo (Zurich)',
-        'Indian/Antananarivo' => 'tempo de Madagaskaro (Antananarivo)',
-        'Indian/Comoro' => 'tempo de Komoroj (Comoro)',
-        'Indian/Mahe' => 'tempo de Sejŝeloj (Mahe)',
-        'Indian/Maldives' => 'tempo de Maldivoj (Maldives)',
-        'Indian/Mauritius' => 'tempo de Maŭricio (Mauritius)',
-        'Indian/Mayotte' => 'tempo de Majoto (Mayotte)',
-        'Indian/Reunion' => 'tempo de Reunio (Réunion)',
-        'Pacific/Apia' => 'tempo de Samoo (Apia)',
-        'Pacific/Auckland' => 'tempo de Nov-Zelando (Auckland)',
-        'Pacific/Bougainville' => 'tempo de Papuo-Nov-Gvineo (Bougainville)',
-        'Pacific/Chatham' => 'tempo de Nov-Zelando (Chatham)',
-        'Pacific/Easter' => 'tempo de Ĉilio (Easter)',
-        'Pacific/Efate' => 'tempo de Vanuatuo (Efate)',
-        'Pacific/Enderbury' => 'tempo de Kiribato (Enderbury)',
-        'Pacific/Fiji' => 'tempo de Fiĝoj (Fiji)',
-        'Pacific/Funafuti' => 'tempo de Tuvalo (Funafuti)',
-        'Pacific/Galapagos' => 'tempo de Ekvadoro (Galapagos)',
-        'Pacific/Gambier' => 'tempo de Franca Polinezio (Gambier)',
-        'Pacific/Guadalcanal' => 'tempo de Salomonoj (Guadalcanal)',
-        'Pacific/Guam' => 'tempo de Gvamo (Guam)',
-        'Pacific/Honolulu' => 'tempo de Usono (Honolulu)',
-        'Pacific/Kiritimati' => 'tempo de Kiribato (Kiritimati)',
-        'Pacific/Kosrae' => 'tempo de Mikronezio (Kosrae)',
-        'Pacific/Kwajalein' => 'tempo de Marŝaloj (Kwajalein)',
-        'Pacific/Majuro' => 'tempo de Marŝaloj (Majuro)',
-        'Pacific/Marquesas' => 'tempo de Franca Polinezio (Marquesas)',
-        'Pacific/Midway' => 'tempo de Usonaj malgrandaj insuloj (Midway)',
-        'Pacific/Nauru' => 'tempo de Nauro (Nauru)',
-        'Pacific/Niue' => 'tempo de Niuo (Niue)',
-        'Pacific/Norfolk' => 'tempo de Norfolkinsulo (Norfolk)',
-        'Pacific/Noumea' => 'tempo de Nov-Kaledonio (Noumea)',
-        'Pacific/Palau' => 'tempo de Palaŭo (Palau)',
-        'Pacific/Pitcairn' => 'tempo de Pitkarna Insulo (Pitcairn)',
-        'Pacific/Ponape' => 'tempo de Mikronezio (Pohnpei)',
-        'Pacific/Port_Moresby' => 'tempo de Papuo-Nov-Gvineo (Port Moresby)',
-        'Pacific/Rarotonga' => 'tempo de Kukinsuloj (Rarotonga)',
-        'Pacific/Saipan' => 'tempo de Nord-Marianoj (Saipan)',
-        'Pacific/Tahiti' => 'tempo de Franca Polinezio (Tahiti)',
-        'Pacific/Tarawa' => 'tempo de Kiribato (Tarawa)',
-        'Pacific/Tongatapu' => 'tempo de Tongo (Tongatapu)',
-        'Pacific/Truk' => 'tempo de Mikronezio (Chuuk)',
-        'Pacific/Wake' => 'tempo de Usonaj malgrandaj insuloj (Wake)',
-        'Pacific/Wallis' => 'tempo de Valiso kaj Futuno (Wallis)',
+        'Etc/UTC' => 'universala tempo kunordigita',
+        'Europe/Amsterdam' => 'centreŭropa tempo (Amsterdamo)',
+        'Europe/Andorra' => 'centreŭropa tempo (Andoro)',
+        'Europe/Astrakhan' => 'tempo: Rusujo (Astraĥano)',
+        'Europe/Athens' => 'orienteŭropa tempo (Ateno)',
+        'Europe/Belgrade' => 'centreŭropa tempo (Beogrado)',
+        'Europe/Berlin' => 'centreŭropa tempo (Berlino)',
+        'Europe/Bratislava' => 'centreŭropa tempo (Bratislavo)',
+        'Europe/Brussels' => 'centreŭropa tempo (Bruselo)',
+        'Europe/Bucharest' => 'orienteŭropa tempo (Bukareŝto)',
+        'Europe/Budapest' => 'centreŭropa tempo (Budapeŝto)',
+        'Europe/Busingen' => 'centreŭropa tempo (Büsingen am Hochrhein)',
+        'Europe/Chisinau' => 'orienteŭropa tempo (Kiŝinevo)',
+        'Europe/Copenhagen' => 'centreŭropa tempo (Kopenhago)',
+        'Europe/Dublin' => 'universala tempo kunordigita (Dublino)',
+        'Europe/Gibraltar' => 'centreŭropa tempo (Ĝibraltaro)',
+        'Europe/Guernsey' => 'universala tempo kunordigita (Gernezejo)',
+        'Europe/Helsinki' => 'orienteŭropa tempo (Helsinko)',
+        'Europe/Isle_of_Man' => 'universala tempo kunordigita (Manksinsulo)',
+        'Europe/Istanbul' => 'tempo: Turkujo (Istanbulo)',
+        'Europe/Jersey' => 'universala tempo kunordigita (Ĵerzejo)',
+        'Europe/Kaliningrad' => 'orienteŭropa tempo (Kaliningrado)',
+        'Europe/Kiev' => 'orienteŭropa tempo (Kievo)',
+        'Europe/Kyiv' => 'orienteŭropa tempo (Kievo)',
+        'Europe/Kirov' => 'moskva tempo (Kirov)',
+        'Europe/Lisbon' => 'okcidenteŭropa tempo (Lisbono)',
+        'Europe/Ljubljana' => 'centreŭropa tempo (Ljubljano)',
+        'Europe/London' => 'universala tempo kunordigita (Londono)',
+        'Europe/Luxembourg' => 'centreŭropa tempo (Luksemburgo)',
+        'Europe/Madrid' => 'centreŭropa tempo (Madrido)',
+        'Europe/Malta' => 'centreŭropa tempo (Malto)',
+        'Europe/Mariehamn' => 'orienteŭropa tempo (Mariehamn)',
+        'Europe/Minsk' => 'moskva tempo (Minsko)',
+        'Europe/Monaco' => 'centreŭropa tempo (Monako)',
+        'Europe/Moscow' => 'moskva tempo (Moskvo)',
+        'Europe/Oslo' => 'centreŭropa tempo (Oslo)',
+        'Europe/Paris' => 'centreŭropa tempo (Parizo)',
+        'Europe/Podgorica' => 'centreŭropa tempo (Podgorico)',
+        'Europe/Prague' => 'centreŭropa tempo (Prago)',
+        'Europe/Riga' => 'orienteŭropa tempo (Rigo)',
+        'Europe/Rome' => 'centreŭropa tempo (Romo)',
+        'Europe/Samara' => 'tempo: Rusujo (Samara)',
+        'Europe/San_Marino' => 'centreŭropa tempo (Sanmarino)',
+        'Europe/Sarajevo' => 'centreŭropa tempo (Sarajevo)',
+        'Europe/Saratov' => 'tempo: Rusujo (Saratov)',
+        'Europe/Simferopol' => 'moskva tempo (Simferopolo)',
+        'Europe/Skopje' => 'centreŭropa tempo (Skopjo)',
+        'Europe/Sofia' => 'orienteŭropa tempo (Sofio)',
+        'Europe/Stockholm' => 'centreŭropa tempo (Stokholmo)',
+        'Europe/Tallinn' => 'orienteŭropa tempo (Talino)',
+        'Europe/Tirane' => 'centreŭropa tempo (Tirano)',
+        'Europe/Ulyanovsk' => 'tempo: Rusujo (Uljanovsko)',
+        'Europe/Vaduz' => 'centreŭropa tempo (Vaduzo)',
+        'Europe/Vatican' => 'centreŭropa tempo (Vatikano)',
+        'Europe/Vienna' => 'centreŭropa tempo (Vieno)',
+        'Europe/Vilnius' => 'orienteŭropa tempo (Vilno)',
+        'Europe/Volgograd' => 'moskva tempo (Volgogrado)',
+        'Europe/Warsaw' => 'centreŭropa tempo (Varsovio)',
+        'Europe/Zagreb' => 'centreŭropa tempo (Zagrebo)',
+        'Europe/Zurich' => 'centreŭropa tempo (Zuriko)',
+        'Indian/Antananarivo' => 'orientafrika tempo (Antananarivo)',
+        'Indian/Chagos' => 'hindoceana tempo (Ĉagosoj)',
+        'Indian/Christmas' => 'kristnaskinsula tempo (Kristnaskinsulo)',
+        'Indian/Cocos' => 'kokosinsula tempo (Kokosinsuloj)',
+        'Indian/Comoro' => 'orientafrika tempo (Komoroj)',
+        'Indian/Kerguelen' => 'tempo: Francaj Sudaj Teritorioj (Kergelenoj)',
+        'Indian/Mahe' => 'sejŝela tempo (Mahé)',
+        'Indian/Maldives' => 'maldiva tempo (Maldivoj)',
+        'Indian/Mauritius' => 'maŭricia tempo (Maŭricio)',
+        'Indian/Mayotte' => 'orientafrika tempo (Majoto)',
+        'Indian/Reunion' => 'tempo: Reunio',
+        'Pacific/Apia' => 'samoa tempo (Apio)',
+        'Pacific/Auckland' => 'novzelanda tempo (Aŭklando)',
+        'Pacific/Bougainville' => 'tempo: Papuo-Nov-Gvineo (Bougainville)',
+        'Pacific/Chatham' => 'ĉathama tempo (Ĉathamo)',
+        'Pacific/Easter' => 'paskinsula tempo (Paskinsulo)',
+        'Pacific/Efate' => 'vanuatua tempo (Efate)',
+        'Pacific/Enderbury' => 'feniksinsula tempo (Kanton-insulo)',
+        'Pacific/Kanton' => 'feniksinsula tempo (Kanton-insulo)',
+        'Pacific/Fakaofo' => 'tokelaa tempo (Fakaofo)',
+        'Pacific/Fiji' => 'fiĝia tempo (Fiĝio)',
+        'Pacific/Funafuti' => 'tuvala tempo (Funafutio)',
+        'Pacific/Galapagos' => 'galapaga tempo (Galapagoj)',
+        'Pacific/Gambier' => 'tempo: Gambier',
+        'Pacific/Guadalcanal' => 'tempo: Salomonoj (Guadalcanal)',
+        'Pacific/Guam' => 'ĉamora tempo (Gvamo)',
+        'Pacific/Honolulu' => 'Havajo-Aleutoj (norma tempo) (Honolulu)',
+        'Pacific/Kiritimati' => 'tempo: Liniaj Insuloj (Kiritimati)',
+        'Pacific/Kosrae' => 'tempo: Kosrae',
+        'Pacific/Kwajalein' => 'marŝalinsula tempo (Kwajalein)',
+        'Pacific/Majuro' => 'marŝalinsula tempo (Majuro)',
+        'Pacific/Marquesas' => 'markizinsula tempo (Markizinsuloj)',
+        'Pacific/Midway' => 'uson-samoa tempo (Midvejinsuloj)',
+        'Pacific/Nauru' => 'naura tempo (Nauro)',
+        'Pacific/Niue' => 'niua tempo (Niuo)',
+        'Pacific/Norfolk' => 'norfolkinsula tempo (Norfolkinsulo)',
+        'Pacific/Noumea' => 'novkaledonia tempo (Numeo)',
+        'Pacific/Pago_Pago' => 'uson-samoa tempo (Pagopago)',
+        'Pacific/Palau' => 'palaŭa tempo (Palaŭo)',
+        'Pacific/Pitcairn' => 'pitkarninsula tempo (Pitkarna Insulo)',
+        'Pacific/Ponape' => 'tempo: Ponape',
+        'Pacific/Pohnpei' => 'tempo: Ponape',
+        'Pacific/Port_Moresby' => 'tempo: Papuo-Nov-Gvineo (Port Moresby)',
+        'Pacific/Rarotonga' => 'kukinsula tempo (Rarotongo)',
+        'Pacific/Saipan' => 'ĉamora tempo (Saipano)',
+        'Pacific/Tahiti' => 'tahitia tempo (Tahitio)',
+        'Pacific/Tarawa' => 'gilbertinsula tempo (Taravo)',
+        'Pacific/Tongatapu' => 'tonga tempo (Tongatapu)',
+        'Pacific/Truk' => 'tempo: Ĉuuk',
+        'Pacific/Chuuk' => 'tempo: Ĉuuk',
+        'Pacific/Wake' => 'vejkinsula tempo (Vejkinsulo)',
+        'Pacific/Wallis' => 'tempo: Valiso kaj Futuno',
     ],
     'Meta' => [
         'GmtFormat' => 'UTC%s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_419.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_419.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_419.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_419.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,6 +23,7 @@
         'Asia/Amman' => 'hora de Europa del Este (Ammán)',
         'Asia/Beirut' => 'hora de Europa del Este (Beirut)',
         'Asia/Calcutta' => 'hora de India (Calcuta)',
+        'Asia/Kolkata' => 'hora de India (Calcuta)',
         'Asia/Colombo' => 'hora de India (Colombo)',
         'Asia/Damascus' => 'hora de Europa del Este (Damasco)',
         'Asia/Famagusta' => 'hora de Europa del Este (Famagusta)',
@@ -31,19 +32,21 @@
         'Asia/Khandyga' => 'hora de Yakutsk (Khandyga)',
         'Asia/Nicosia' => 'hora de Europa del Este (Nicosia)',
         'Asia/Rangoon' => 'hora de Myanmar (Birmania) (Yangón (Rangún))',
+        'Asia/Yangon' => 'hora de Myanmar (Birmania) (Yangón (Rangún))',
         'Atlantic/Canary' => 'hora de Europa del Oeste (Islas Canarias)',
         'Atlantic/Faeroe' => 'hora de Europa del Oeste (Islas Feroe)',
+        'Atlantic/Faroe' => 'hora de Europa del Oeste (Islas Feroe)',
         'Atlantic/Madeira' => 'hora de Europa del Oeste (Madeira)',
         'Atlantic/Stanley' => 'hora de las Islas Malvinas (Stanley)',
         'Etc/UTC' => 'hora universal coordinada',
         'Europe/Athens' => 'hora de Europa del Este (Atenas)',
         'Europe/Bucharest' => 'hora de Europa del Este (Bucarest)',
-        'Europe/Busingen' => 'hora de Europa central (Büsingen)',
         'Europe/Chisinau' => 'hora de Europa del Este (Chisináu)',
         'Europe/Guernsey' => 'hora del meridiano de Greenwich (Guernsey)',
         'Europe/Helsinki' => 'hora de Europa del Este (Helsinki)',
         'Europe/Kaliningrad' => 'hora de Europa del Este (Kaliningrado)',
         'Europe/Kiev' => 'hora de Europa del Este (Kiev)',
+        'Europe/Kyiv' => 'hora de Europa del Este (Kiev)',
         'Europe/Lisbon' => 'hora de Europa del Oeste (Lisboa)',
         'Europe/Mariehamn' => 'hora de Europa del Este (Mariehamn)',
         'Europe/Riga' => 'hora de Europa del Este (Riga)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_MX.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_MX.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_MX.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_MX.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
         'Atlantic/Stanley' => 'hora de Islas Malvinas (Stanley)',
         'Indian/Christmas' => 'hora de la isla de Navidad',
         'Pacific/Easter' => 'hora de Isla de Pascua',
-        'Pacific/Honolulu' => 'hora de Hawái-Aleutianas (Honolulu)',
+        'Pacific/Honolulu' => 'hora estándar de Hawái-Aleutianas (Honolulu)',
         'Pacific/Tarawa' => 'hora de las Islas Gilbert (Tarawa)',
         'Pacific/Wake' => 'hora de la Isla Wake',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'hora de África oriental (Adís Abeba)',
         'Africa/Algiers' => 'hora de Europa central (Argel)',
         'Africa/Asmera' => 'hora de África oriental (Asmara)',
+        'Africa/Asmara' => 'hora de África oriental (Asmara)',
         'Africa/Bamako' => 'hora del meridiano de Greenwich (Bamako)',
         'Africa/Bangui' => 'hora de África occidental (Bangui)',
         'Africa/Banjul' => 'hora del meridiano de Greenwich (Banjul)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'hora de Colombia (Bogotá)',
         'America/Boise' => 'hora de las Montañas Rocosas (Boise)',
         'America/Buenos_Aires' => 'hora de Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'hora de Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'hora de las Montañas Rocosas (Cambridge Bay)',
         'America/Campo_Grande' => 'hora del Amazonas (Campo Grande)',
         'America/Cancun' => 'hora oriental (Cancún)',
         'America/Caracas' => 'hora de Venezuela (Caracas)',
         'America/Catamarca' => 'hora de Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'hora de Argentina (Catamarca)',
         'America/Cayenne' => 'hora de la Guayana Francesa (Cayena)',
         'America/Cayman' => 'hora oriental (Caimán)',
         'America/Chicago' => 'hora central (Chicago)',
         'America/Chihuahua' => 'hora central (Chihuahua)',
         'America/Ciudad_Juarez' => 'hora de las Montañas Rocosas (Ciudad Juárez)',
         'America/Coral_Harbour' => 'hora oriental (Atikokan)',
+        'America/Atikokan' => 'hora oriental (Atikokan)',
         'America/Cordoba' => 'hora de Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'hora de Argentina (Córdoba)',
         'America/Costa_Rica' => 'hora central (Costa Rica)',
+        'America/Coyhaique' => 'hora de Chile (Coyhaique)',
         'America/Creston' => 'hora de las Montañas Rocosas (Creston)',
         'America/Cuiaba' => 'hora del Amazonas (Cuiabá)',
         'America/Curacao' => 'hora del Atlántico (Curazao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'hora de Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'hora del Atlántico (Glace Bay)',
         'America/Godthab' => 'hora de Groenlandia (Nuuk)',
+        'America/Nuuk' => 'hora de Groenlandia (Nuuk)',
         'America/Goose_Bay' => 'hora del Atlántico (Goose Bay)',
         'America/Grand_Turk' => 'hora oriental (Gran Turca)',
         'America/Grenada' => 'hora del Atlántico (Granada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'hora oriental (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'hora oriental (Winamac, Indiana)',
         'America/Indianapolis' => 'hora oriental (Indianápolis)',
+        'America/Indiana/Indianapolis' => 'hora oriental (Indianápolis)',
         'America/Inuvik' => 'hora de las Montañas Rocosas (Inuvik)',
         'America/Iqaluit' => 'hora oriental (Iqaluit)',
         'America/Jamaica' => 'hora oriental (Jamaica)',
         'America/Jujuy' => 'hora de Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'hora de Argentina (Jujuy)',
         'America/Juneau' => 'hora de Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'hora oriental (Monticello, Kentucky)',
         'America/Kralendijk' => 'hora del Atlántico (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'hora de Perú (Lima)',
         'America/Los_Angeles' => 'hora del Pacífico (Los Ángeles)',
         'America/Louisville' => 'hora oriental (Louisville)',
+        'America/Kentucky/Louisville' => 'hora oriental (Louisville)',
         'America/Lower_Princes' => 'hora del Atlántico (Lower Prince’s Quarter)',
         'America/Maceio' => 'hora de Brasilia (Maceió)',
         'America/Managua' => 'hora central (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'hora central (Matamoros)',
         'America/Mazatlan' => 'hora del Pacífico de México (Mazatlán)',
         'America/Mendoza' => 'hora de Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'hora de Argentina (Mendoza)',
         'America/Menominee' => 'hora central (Menominee)',
         'America/Merida' => 'hora central (Mérida)',
         'America/Metlakatla' => 'hora de Alaska (Metlakatla)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'hora de Nueva Zelanda (McMurdo)',
         'Antarctica/Palmer' => 'hora de Chile (Palmer)',
         'Antarctica/Rothera' => 'hora de Rothera',
-        'Antarctica/Syowa' => 'hora de Syowa',
+        'Antarctica/Syowa' => 'hora de Syowa (Showa)',
         'Antarctica/Troll' => 'hora del meridiano de Greenwich (Troll)',
         'Antarctica/Vostok' => 'hora de Vostok',
         'Arctic/Longyearbyen' => 'hora de Europa central (Longyearbyen)',
         'Asia/Aden' => 'hora de Arabia (Adén)',
         'Asia/Almaty' => 'hora de Kazajistán (Almaty)',
         'Asia/Amman' => 'hora de Europa oriental (Ammán)',
-        'Asia/Anadyr' => 'hora de Anadyr (Anádyr)',
+        'Asia/Anadyr' => 'hora de Kamchatka (Anádyr)',
         'Asia/Aqtau' => 'hora de Kazajistán (Aktau)',
         'Asia/Aqtobe' => 'hora de Kazajistán (Aktobe)',
         'Asia/Ashgabat' => 'hora de Turkmenistán (Asjabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'hora de Arabia (Baréin)',
         'Asia/Baku' => 'hora de Azerbaiyán (Bakú)',
         'Asia/Bangkok' => 'hora de Indochina (Bangkok)',
-        'Asia/Barnaul' => 'hora de Rusia (Barnaúl)',
+        'Asia/Barnaul' => 'hora de Krasnoyarsk (Barnaúl)',
         'Asia/Beirut' => 'hora de Europa oriental (Beirut)',
         'Asia/Bishkek' => 'hora de Kirguistán (Bishkek)',
         'Asia/Brunei' => 'hora de Brunéi',
         'Asia/Calcutta' => 'hora estándar de la India (Calcuta)',
+        'Asia/Kolkata' => 'hora estándar de la India (Calcuta)',
         'Asia/Chita' => 'hora de Yakutsk (Chitá)',
         'Asia/Colombo' => 'hora estándar de la India (Colombo)',
         'Asia/Damascus' => 'hora de Europa oriental (Damasco)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'hora de Europa oriental (Gaza)',
         'Asia/Hebron' => 'hora de Europa oriental (Hebrón)',
         'Asia/Hong_Kong' => 'hora de Hong Kong',
-        'Asia/Hovd' => 'hora de Hovd',
+        'Asia/Hovd' => 'hora de Hovd (Khovd)',
         'Asia/Irkutsk' => 'hora de Irkutsk',
         'Asia/Jakarta' => 'hora de Indonesia occidental (Yakarta)',
         'Asia/Jayapura' => 'hora de Indonesia oriental (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'hora de Kamchatka',
         'Asia/Karachi' => 'hora de Pakistán (Karachi)',
         'Asia/Katmandu' => 'hora de Nepal (Katmandú)',
+        'Asia/Kathmandu' => 'hora de Nepal (Katmandú)',
         'Asia/Khandyga' => 'hora de Yakutsk (Khandiga)',
         'Asia/Krasnoyarsk' => 'hora de Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'hora de Malasia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'hora estándar del Golfo (Mascate)',
         'Asia/Nicosia' => 'hora de Europa oriental (Nicosia)',
         'Asia/Novokuznetsk' => 'hora de Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'hora de Novosibirsk',
+        'Asia/Novosibirsk' => 'hora de Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'hora de Omsk',
         'Asia/Oral' => 'hora de Kazajistán (Oral)',
         'Asia/Phnom_Penh' => 'hora de Indochina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'hora de Kazajistán (Kostanái)',
         'Asia/Qyzylorda' => 'hora de Kazajistán (Kyzylorda)',
         'Asia/Rangoon' => 'hora de Myanmar (Yangón (Rangún))',
+        'Asia/Yangon' => 'hora de Myanmar (Yangón (Rangún))',
         'Asia/Riyadh' => 'hora de Arabia (Riad)',
         'Asia/Saigon' => 'hora de Indochina (Ciudad Ho Chi Minh)',
-        'Asia/Sakhalin' => 'hora de Sajalín',
+        'Asia/Ho_Chi_Minh' => 'hora de Indochina (Ciudad Ho Chi Minh)',
+        'Asia/Sakhalin' => 'hora de Magadán (Sajalín)',
         'Asia/Samarkand' => 'hora de Uzbekistán (Samarcanda)',
         'Asia/Seoul' => 'hora de Corea (Seúl)',
         'Asia/Shanghai' => 'hora de China (Shanghái)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'hora de Irán (Teherán)',
         'Asia/Thimphu' => 'hora de Bután (Timbu)',
         'Asia/Tokyo' => 'hora de Japón (Tokio)',
-        'Asia/Tomsk' => 'hora de Rusia (Tomsk)',
+        'Asia/Tomsk' => 'hora de Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'hora de Ulán Bator',
         'Asia/Urumqi' => 'hora de China (Ürümqi)',
         'Asia/Ust-Nera' => 'hora de Vladivostok (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'hora de Europa occidental (Canarias)',
         'Atlantic/Cape_Verde' => 'hora de Cabo Verde',
         'Atlantic/Faeroe' => 'hora de Europa occidental (Islas Feroe)',
+        'Atlantic/Faroe' => 'hora de Europa occidental (Islas Feroe)',
         'Atlantic/Madeira' => 'hora de Europa occidental (Madeira)',
         'Atlantic/Reykjavik' => 'hora del meridiano de Greenwich (Reikiavik)',
         'Atlantic/South_Georgia' => 'hora de Georgia del Sur',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'tiempo universal coordinado',
         'Europe/Amsterdam' => 'hora de Europa central (Ámsterdam)',
         'Europe/Andorra' => 'hora de Europa central (Andorra)',
-        'Europe/Astrakhan' => 'hora de Moscú (Astracán)',
+        'Europe/Astrakhan' => 'hora de Samara (Astracán)',
         'Europe/Athens' => 'hora de Europa oriental (Atenas)',
         'Europe/Belgrade' => 'hora de Europa central (Belgrado)',
         'Europe/Berlin' => 'hora de Europa central (Berlín)',
@@ -324,7 +340,7 @@
         'Europe/Brussels' => 'hora de Europa central (Bruselas)',
         'Europe/Bucharest' => 'hora de Europa oriental (Bucarest)',
         'Europe/Budapest' => 'hora de Europa central (Budapest)',
-        'Europe/Busingen' => 'hora de Europa central (Busingen)',
+        'Europe/Busingen' => 'hora de Europa central (Büsingen)',
         'Europe/Chisinau' => 'hora de Europa oriental (Chisináu)',
         'Europe/Copenhagen' => 'hora de Europa central (Copenhague)',
         'Europe/Dublin' => 'hora del meridiano de Greenwich (Dublín)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'hora del meridiano de Greenwich (Guernesey)',
         'Europe/Helsinki' => 'hora de Europa oriental (Helsinki)',
         'Europe/Isle_of_Man' => 'hora del meridiano de Greenwich (Isla de Man)',
-        'Europe/Istanbul' => 'hora de Turquía (Estambul)',
+        'Europe/Istanbul' => 'Hora de Turquía (Estambul)',
         'Europe/Jersey' => 'hora del meridiano de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'hora de Europa oriental (Kaliningrado)',
         'Europe/Kiev' => 'hora de Europa oriental (Kiev)',
-        'Europe/Kirov' => 'hora de Rusia (Kírov)',
+        'Europe/Kyiv' => 'hora de Europa oriental (Kiev)',
+        'Europe/Kirov' => 'hora de Moscú (Kírov)',
         'Europe/Lisbon' => 'hora de Europa occidental (Lisboa)',
         'Europe/Ljubljana' => 'hora de Europa central (Liubliana)',
         'Europe/London' => 'hora del meridiano de Greenwich (Londres)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'hora de Samara',
         'Europe/San_Marino' => 'hora de Europa central (San Marino)',
         'Europe/Sarajevo' => 'hora de Europa central (Sarajevo)',
-        'Europe/Saratov' => 'hora de Moscú (Sarátov)',
+        'Europe/Saratov' => 'hora de Samara (Sarátov)',
         'Europe/Simferopol' => 'hora de Moscú (Simferópol)',
         'Europe/Skopje' => 'hora de Europa central (Skopie)',
         'Europe/Sofia' => 'hora de Europa oriental (Sofía)',
         'Europe/Stockholm' => 'hora de Europa central (Estocolmo)',
         'Europe/Tallinn' => 'hora de Europa oriental (Tallin)',
         'Europe/Tirane' => 'hora de Europa central (Tirana)',
-        'Europe/Ulyanovsk' => 'hora de Moscú (Uliánovsk)',
+        'Europe/Ulyanovsk' => 'hora de Samara (Uliánovsk)',
         'Europe/Vaduz' => 'hora de Europa central (Vaduz)',
         'Europe/Vatican' => 'hora de Europa central (El Vaticano)',
         'Europe/Vienna' => 'hora de Europa central (Viena)',
         'Europe/Vilnius' => 'hora de Europa oriental (Vilna)',
-        'Europe/Volgograd' => 'hora de Volgogrado',
+        'Europe/Volgograd' => 'hora de Moscú (Volgogrado)',
         'Europe/Warsaw' => 'hora de Europa central (Varsovia)',
         'Europe/Zagreb' => 'hora de Europa central (Zagreb)',
         'Europe/Zurich' => 'hora de Europa central (Zúrich)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'hora de Chatham',
         'Pacific/Easter' => 'hora de la isla de Pascua',
         'Pacific/Efate' => 'hora de Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'hora de las Islas Fénix (Enderbury)',
+        'Pacific/Enderbury' => 'hora de las Islas Fénix (Isla Kanton)',
+        'Pacific/Kanton' => 'hora de las Islas Fénix (Isla Kanton)',
         'Pacific/Fakaofo' => 'hora de Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'hora de Fiyi',
         'Pacific/Funafuti' => 'hora de Tuvalu (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'hora de Gambier',
         'Pacific/Guadalcanal' => 'hora de las Islas Salomón (Guadalcanal)',
         'Pacific/Guam' => 'hora estándar de Chamorro (Guam)',
-        'Pacific/Honolulu' => 'hora de Hawái-Aleutianas (Honolulú)',
+        'Pacific/Honolulu' => 'hora estándar de Hawái-Aleutianas (Honolulú)',
         'Pacific/Kiritimati' => 'hora de las Espóradas Ecuatoriales (Kiritimati)',
         'Pacific/Kosrae' => 'hora de Kosrae',
         'Pacific/Kwajalein' => 'hora de las Islas Marshall (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'hora de Palaos',
         'Pacific/Pitcairn' => 'hora de Pitcairn',
         'Pacific/Ponape' => 'hora de Pohnpei',
+        'Pacific/Pohnpei' => 'hora de Pohnpei',
         'Pacific/Port_Moresby' => 'hora de Papúa Nueva Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'hora de las Islas Cook (Rarotonga)',
         'Pacific/Saipan' => 'hora estándar de Chamorro (Saipán)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'hora de las islas Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'hora de Tonga (Tongatapu)',
         'Pacific/Truk' => 'hora de Chuuk',
+        'Pacific/Chuuk' => 'hora de Chuuk',
         'Pacific/Wake' => 'hora de la isla Wake',
-        'Pacific/Wallis' => 'hora de Wallis y Futuna',
+        'Pacific/Wallis' => 'hora de Wallis y Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_US.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_US.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_US.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/es_US.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,13 +4,14 @@
     'Names' => [
         'Africa/Djibouti' => 'hora de África oriental (Yibutí)',
         'Asia/Pyongyang' => 'hora de Corea (Pionyang)',
-        'Europe/Astrakhan' => 'hora de Moscú (Astrakhan)',
-        'Europe/Kirov' => 'hora de Rusia (Kirov)',
-        'Europe/Ulyanovsk' => 'hora de Moscú (Ulyanovsk)',
+        'Europe/Astrakhan' => 'hora de Samara (Astrakhan)',
+        'Europe/Kirov' => 'hora de Moscú (Kirov)',
+        'Europe/Ulyanovsk' => 'hora de Samara (Ulyanovsk)',
         'Indian/Chagos' => 'hora del Océano Índico (Chagos)',
-        'Pacific/Enderbury' => 'hora de las islas Fénix (Enderbury)',
+        'Pacific/Enderbury' => 'hora de las islas Fénix (Isla Kanton)',
+        'Pacific/Kanton' => 'hora de las islas Fénix (Isla Kanton)',
         'Pacific/Guam' => 'hora de Chamorro (Guam)',
-        'Pacific/Honolulu' => 'hora de Hawái-Aleutianas (Honolulu)',
+        'Pacific/Honolulu' => 'hora estándar de Hawái-Aleutianas (Honolulu)',
         'Pacific/Marquesas' => 'hora de las islas Marquesas',
         'Pacific/Saipan' => 'hora de Chamorro (Saipán)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/et.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/et.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/et.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/et.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Ida-Aafrika aeg (Addis Abeba)',
         'Africa/Algiers' => 'Kesk-Euroopa aeg (Alžiir)',
         'Africa/Asmera' => 'Ida-Aafrika aeg (Asmara)',
+        'Africa/Asmara' => 'Ida-Aafrika aeg (Asmara)',
         'Africa/Bamako' => 'Greenwichi aeg (Bamako)',
         'Africa/Bangui' => 'Lääne-Aafrika aeg (Bangui)',
         'Africa/Banjul' => 'Greenwichi aeg (Banjul)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Colombia aeg (Bogotá)',
         'America/Boise' => 'Mäestikuvööndi aeg (Boise)',
         'America/Buenos_Aires' => 'Argentina aeg (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentina aeg (Buenos Aires)',
         'America/Cambridge_Bay' => 'Mäestikuvööndi aeg (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazonase aeg (Campo Grande)',
         'America/Cancun' => 'Idaranniku aeg (Cancún)',
         'America/Caracas' => 'Venezuela aeg (Caracas)',
         'America/Catamarca' => 'Argentina aeg (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentina aeg (Catamarca)',
         'America/Cayenne' => 'Prantsuse Guajaana aeg (Cayenne)',
         'America/Cayman' => 'Idaranniku aeg (Cayman)',
         'America/Chicago' => 'Kesk-Ameerika aeg (Chicago)',
         'America/Chihuahua' => 'Kesk-Ameerika aeg (Chihuahua)',
         'America/Ciudad_Juarez' => 'Mäestikuvööndi aeg (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Idaranniku aeg (Atikokan)',
+        'America/Atikokan' => 'Idaranniku aeg (Atikokan)',
         'America/Cordoba' => 'Argentina aeg (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentina aeg (Córdoba)',
         'America/Costa_Rica' => 'Kesk-Ameerika aeg (Costa Rica)',
+        'America/Coyhaique' => 'Tšiili aeg (Coyhaique)',
         'America/Creston' => 'Mäestikuvööndi aeg (Creston)',
         'America/Cuiaba' => 'Amazonase aeg (Cuiabá)',
         'America/Curacao' => 'Atlandi aeg (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Brasiilia aeg (Fortaleza)',
         'America/Glace_Bay' => 'Atlandi aeg (Glace Bay)',
         'America/Godthab' => 'Gröönimaa aeg (Nuuk)',
+        'America/Nuuk' => 'Gröönimaa aeg (Nuuk)',
         'America/Goose_Bay' => 'Atlandi aeg (Goose Bay)',
         'America/Grand_Turk' => 'Idaranniku aeg (Grand Turk)',
         'America/Grenada' => 'Atlandi aeg (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Idaranniku aeg (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Idaranniku aeg (Winamac, Indiana)',
         'America/Indianapolis' => 'Idaranniku aeg (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Idaranniku aeg (Indianapolis)',
         'America/Inuvik' => 'Mäestikuvööndi aeg (Inuvik)',
         'America/Iqaluit' => 'Idaranniku aeg (Iqaluit)',
         'America/Jamaica' => 'Idaranniku aeg (Jamaica)',
         'America/Jujuy' => 'Argentina aeg (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentina aeg (Jujuy)',
         'America/Juneau' => 'Alaska aeg (Juneau)',
         'America/Kentucky/Monticello' => 'Idaranniku aeg (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlandi aeg (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Peruu aeg (Lima)',
         'America/Los_Angeles' => 'Vaikse ookeani aeg (Los Angeles)',
         'America/Louisville' => 'Idaranniku aeg (Louisville)',
+        'America/Kentucky/Louisville' => 'Idaranniku aeg (Louisville)',
         'America/Lower_Princes' => 'Atlandi aeg (Lower Prince’s Quarter)',
         'America/Maceio' => 'Brasiilia aeg (Maceió)',
         'America/Managua' => 'Kesk-Ameerika aeg (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Kesk-Ameerika aeg (Matamoros)',
         'America/Mazatlan' => 'Mehhiko Vaikse ookeani aeg (Mazatlán)',
         'America/Mendoza' => 'Argentina aeg (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentina aeg (Mendoza)',
         'America/Menominee' => 'Kesk-Ameerika aeg (Menominee)',
         'America/Merida' => 'Kesk-Ameerika aeg (Mérida)',
         'America/Metlakatla' => 'Alaska aeg (Metlakatla)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Uus-Meremaa aeg (McMurdo)',
         'Antarctica/Palmer' => 'Tšiili aeg (Palmer)',
         'Antarctica/Rothera' => 'Rothera aeg',
-        'Antarctica/Syowa' => 'Syowa aeg',
+        'Antarctica/Syowa' => 'Syowa aeg (Showa)',
         'Antarctica/Troll' => 'Greenwichi aeg (Troll)',
         'Antarctica/Vostok' => 'Vostoki aeg',
         'Arctic/Longyearbyen' => 'Kesk-Euroopa aeg (Longyearbyen)',
         'Asia/Aden' => 'Araabia aeg (Aden)',
         'Asia/Almaty' => 'Kasahstani aeg (Almatõ)',
         'Asia/Amman' => 'Ida-Euroopa aeg (Amman)',
-        'Asia/Anadyr' => 'Anadõri aeg',
+        'Asia/Anadyr' => 'Petropavlovsk-Kamtšatski aeg (Anadõr)',
         'Asia/Aqtau' => 'Kasahstani aeg (Aktau)',
         'Asia/Aqtobe' => 'Kasahstani aeg (Aktöbe)',
         'Asia/Ashgabat' => 'Türkmenistani aeg (Aşgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Araabia aeg (Bahrein)',
         'Asia/Baku' => 'Aserbaidžaani aeg (Bakuu)',
         'Asia/Bangkok' => 'Indohiina aeg (Bangkok)',
-        'Asia/Barnaul' => '(Venemaa) (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarski aeg (Barnaul)',
         'Asia/Beirut' => 'Ida-Euroopa aeg (Beirut)',
         'Asia/Bishkek' => 'Kõrgõzstani aeg (Biškek)',
         'Asia/Brunei' => 'Brunei aeg',
         'Asia/Calcutta' => 'India aeg (Kolkata)',
+        'Asia/Kolkata' => 'India aeg (Kolkata)',
         'Asia/Chita' => 'Jakutski aeg (Tšita)',
         'Asia/Colombo' => 'India aeg (Colombo)',
         'Asia/Damascus' => 'Ida-Euroopa aeg (Damaskus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Ida-Euroopa aeg (Gaza)',
         'Asia/Hebron' => 'Ida-Euroopa aeg (Hebron)',
         'Asia/Hong_Kong' => 'Hongkongi aeg',
-        'Asia/Hovd' => 'Hovdi aeg',
+        'Asia/Hovd' => 'Hovdi aeg (Khovd)',
         'Asia/Irkutsk' => 'Irkutski aeg',
         'Asia/Jakarta' => 'Lääne-Indoneesia aeg (Jakarta)',
         'Asia/Jayapura' => 'Ida-Indoneesia aeg (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-Kamtšatski aeg (Kamtšatka)',
         'Asia/Karachi' => 'Pakistani aeg (Karachi)',
         'Asia/Katmandu' => 'Nepali aeg (Katmandu)',
+        'Asia/Kathmandu' => 'Nepali aeg (Katmandu)',
         'Asia/Khandyga' => 'Jakutski aeg (Handõga)',
         'Asia/Krasnoyarsk' => 'Krasnojarski aeg',
         'Asia/Kuala_Lumpur' => 'Malaisia aeg (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Pärsia lahe standardaeg (Masqaţ)',
         'Asia/Nicosia' => 'Ida-Euroopa aeg (Nikosia)',
         'Asia/Novokuznetsk' => 'Krasnojarski aeg (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirski aeg',
+        'Asia/Novosibirsk' => 'Krasnojarski aeg (Novosibirsk)',
         'Asia/Omsk' => 'Omski aeg',
         'Asia/Oral' => 'Kasahstani aeg (Oral)',
         'Asia/Phnom_Penh' => 'Indohiina aeg (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kasahstani aeg (Kostanaj)',
         'Asia/Qyzylorda' => 'Kasahstani aeg (Kõzõlorda)',
         'Asia/Rangoon' => 'Birma aeg (Yangon)',
+        'Asia/Yangon' => 'Birma aeg (Yangon)',
         'Asia/Riyadh' => 'Araabia aeg (Ar-Riyāḑ)',
         'Asia/Saigon' => 'Indohiina aeg (Hô Chi Minh)',
-        'Asia/Sakhalin' => 'Sahhalini aeg',
+        'Asia/Ho_Chi_Minh' => 'Indohiina aeg (Hô Chi Minh)',
+        'Asia/Sakhalin' => 'Magadani aeg (Sahhalin)',
         'Asia/Samarkand' => 'Usbekistani aeg (Samarkand)',
         'Asia/Seoul' => 'Korea aeg (Soul)',
         'Asia/Shanghai' => 'Hiina aeg (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Iraani aeg (Teheran)',
         'Asia/Thimphu' => 'Bhutani aeg (Thimphu)',
         'Asia/Tokyo' => 'Jaapani aeg (Tōkyō)',
-        'Asia/Tomsk' => '(Venemaa) (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarski aeg (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulaanbaatari aeg',
         'Asia/Urumqi' => '(Hiina) (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostoki aeg (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Lääne-Euroopa aeg (Kanaari saared)',
         'Atlantic/Cape_Verde' => 'Roheneemesaarte aeg (Roheneemesaared)',
         'Atlantic/Faeroe' => 'Lääne-Euroopa aeg (Fääri saared)',
+        'Atlantic/Faroe' => 'Lääne-Euroopa aeg (Fääri saared)',
         'Atlantic/Madeira' => 'Lääne-Euroopa aeg (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwichi aeg (Reykjavík)',
         'Atlantic/South_Georgia' => 'Lõuna-Georgia aeg',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Koordineeritud maailmaaeg',
         'Europe/Amsterdam' => 'Kesk-Euroopa aeg (Amsterdam)',
         'Europe/Andorra' => 'Kesk-Euroopa aeg (Andorra)',
-        'Europe/Astrakhan' => 'Moskva aeg (Astrahan)',
+        'Europe/Astrakhan' => 'Samara aeg (Astrahan)',
         'Europe/Athens' => 'Ida-Euroopa aeg (Ateena)',
         'Europe/Belgrade' => 'Kesk-Euroopa aeg (Belgrad)',
         'Europe/Berlin' => 'Kesk-Euroopa aeg (Berliin)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Greenwichi aeg (Guernsey)',
         'Europe/Helsinki' => 'Ida-Euroopa aeg (Helsingi)',
         'Europe/Isle_of_Man' => 'Greenwichi aeg (Mani saar)',
-        'Europe/Istanbul' => '(Türgi) (İstanbul)',
+        'Europe/Istanbul' => 'Türgi aeg (İstanbul)',
         'Europe/Jersey' => 'Greenwichi aeg (Jersey)',
         'Europe/Kaliningrad' => 'Ida-Euroopa aeg (Kaliningrad)',
         'Europe/Kiev' => 'Ida-Euroopa aeg (Kiiev)',
-        'Europe/Kirov' => '(Venemaa) (Kirov)',
+        'Europe/Kyiv' => 'Ida-Euroopa aeg (Kiiev)',
+        'Europe/Kirov' => 'Moskva aeg (Kirov)',
         'Europe/Lisbon' => 'Lääne-Euroopa aeg (Lissabon)',
         'Europe/Ljubljana' => 'Kesk-Euroopa aeg (Ljubljana)',
         'Europe/London' => 'Greenwichi aeg (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samara aeg',
         'Europe/San_Marino' => 'Kesk-Euroopa aeg (San Marino)',
         'Europe/Sarajevo' => 'Kesk-Euroopa aeg (Sarajevo)',
-        'Europe/Saratov' => 'Moskva aeg (Saratov)',
+        'Europe/Saratov' => 'Samara aeg (Saratov)',
         'Europe/Simferopol' => 'Moskva aeg (Simferopol)',
         'Europe/Skopje' => 'Kesk-Euroopa aeg (Skopje)',
         'Europe/Sofia' => 'Ida-Euroopa aeg (Sofia)',
         'Europe/Stockholm' => 'Kesk-Euroopa aeg (Stockholm)',
         'Europe/Tallinn' => 'Ida-Euroopa aeg (Tallinn)',
         'Europe/Tirane' => 'Kesk-Euroopa aeg (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskva aeg (Uljanovsk)',
+        'Europe/Ulyanovsk' => 'Samara aeg (Uljanovsk)',
         'Europe/Vaduz' => 'Kesk-Euroopa aeg (Vaduz)',
         'Europe/Vatican' => 'Kesk-Euroopa aeg (Vatikan)',
         'Europe/Vienna' => 'Kesk-Euroopa aeg (Viin)',
         'Europe/Vilnius' => 'Ida-Euroopa aeg (Vilnius)',
-        'Europe/Volgograd' => 'Volgogradi aeg',
+        'Europe/Volgograd' => 'Moskva aeg (Volgograd)',
         'Europe/Warsaw' => 'Kesk-Euroopa aeg (Varssavi)',
         'Europe/Zagreb' => 'Kesk-Euroopa aeg (Zagreb)',
         'Europe/Zurich' => 'Kesk-Euroopa aeg (Zürich)',
@@ -376,7 +393,7 @@
         'Indian/Chagos' => 'India ookeani aeg (Chagos)',
         'Indian/Christmas' => 'Jõulusaare aeg',
         'Indian/Cocos' => 'Kookossaarte aeg (Kookossaared)',
-        'Indian/Comoro' => 'Ida-Aafrika aeg (Comoro)',
+        'Indian/Comoro' => 'Ida-Aafrika aeg (Comores)',
         'Indian/Kerguelen' => 'Prantsuse Antarktiliste ja Lõunaalade aeg (Kerguelen)',
         'Indian/Mahe' => 'Seišelli aeg (Mahé)',
         'Indian/Maldives' => 'Maldiivi aeg (Maldiivid)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Chathami aeg',
         'Pacific/Easter' => 'Lihavõttesaare aeg',
         'Pacific/Efate' => 'Vanuatu aeg (Efate)',
-        'Pacific/Enderbury' => 'Fööniksisaarte aeg (Enderbury)',
+        'Pacific/Enderbury' => 'Fööniksisaarte aeg (Abariringa)',
+        'Pacific/Kanton' => 'Fööniksisaarte aeg (Abariringa)',
         'Pacific/Fakaofo' => 'Tokelau aeg (Fakaofo)',
         'Pacific/Fiji' => 'Fidži aeg',
         'Pacific/Funafuti' => 'Tuvalu aeg (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Gambier’ aeg',
         'Pacific/Guadalcanal' => 'Saalomoni Saarte aeg (Guadalcanal)',
         'Pacific/Guam' => 'Tšamorro standardaeg (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleuudi aeg (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleuudi standardaeg (Honolulu)',
         'Pacific/Kiritimati' => 'Line’i saarte aeg (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae aeg',
         'Pacific/Kwajalein' => 'Marshalli Saarte aeg (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Belau aeg',
         'Pacific/Pitcairn' => 'Pitcairni aeg',
         'Pacific/Ponape' => 'Pohnpei aeg',
+        'Pacific/Pohnpei' => 'Pohnpei aeg',
         'Pacific/Port_Moresby' => 'Paapua Uus-Guinea aeg (Port Moresby)',
         'Pacific/Rarotonga' => 'Cooki saarte aeg (Rarotonga)',
         'Pacific/Saipan' => 'Tšamorro standardaeg (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Gilberti saarte aeg (Tarawa)',
         'Pacific/Tongatapu' => 'Tonga aeg (Tongatapu)',
         'Pacific/Truk' => 'Chuuki aeg',
+        'Pacific/Chuuk' => 'Chuuki aeg',
         'Pacific/Wake' => 'Wake’i aeg',
-        'Pacific/Wallis' => 'Wallise ja Futuna aeg',
+        'Pacific/Wallis' => 'Wallise ja Futuna aeg (Wallis & Futuna)',
     ],
     'Meta' => [
         'GmtFormat' => 'GMT %s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/eu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/eu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/eu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/eu.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Afrikako ekialdeko ordua (Addis Abeba)',
         'Africa/Algiers' => 'Europako erdialdeko ordua (Aljer)',
         'Africa/Asmera' => 'Afrikako ekialdeko ordua (Asmara)',
+        'Africa/Asmara' => 'Afrikako ekialdeko ordua (Asmara)',
         'Africa/Bamako' => 'Greenwichko meridianoaren ordua (Bamako)',
         'Africa/Bangui' => 'Afrikako mendebaldeko ordua (Bangi)',
         'Africa/Banjul' => 'Greenwichko meridianoaren ordua (Banjul)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Afrikako mendebaldeko ordua (Kinshasa)',
         'Africa/Lagos' => 'Afrikako mendebaldeko ordua (Lagos)',
         'Africa/Libreville' => 'Afrikako mendebaldeko ordua (Libreville)',
-        'Africa/Lome' => 'Greenwichko meridianoaren ordua (Lome)',
+        'Africa/Lome' => 'Greenwichko meridianoaren ordua (Lomé)',
         'Africa/Luanda' => 'Afrikako mendebaldeko ordua (Luanda)',
         'Africa/Lubumbashi' => 'Afrikako erdialdeko ordua (Lubumbashi)',
         'Africa/Lusaka' => 'Afrikako erdialdeko ordua (Lusaka)',
@@ -60,7 +61,7 @@
         'America/Antigua' => 'Ipar Amerikako Atlantikoko ordua (Antigua)',
         'America/Araguaina' => 'Brasiliako ordua (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentinako ordua (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentinako ordua (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentinako ordua (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentinako ordua (Salta)',
         'America/Argentina/San_Juan' => 'Argentinako ordua (San Juan)',
         'America/Argentina/San_Luis' => 'Argentinako ordua (San Luis)',
@@ -71,26 +72,31 @@
         'America/Bahia' => 'Brasiliako ordua (Bahia)',
         'America/Bahia_Banderas' => 'Ipar Amerikako erdialdeko ordua (Bahía de Banderas)',
         'America/Barbados' => 'Ipar Amerikako Atlantikoko ordua (Barbados)',
-        'America/Belem' => 'Brasiliako ordua (Belem)',
+        'America/Belem' => 'Brasiliako ordua (Belém)',
         'America/Belize' => 'Ipar Amerikako erdialdeko ordua (Belize)',
         'America/Blanc-Sablon' => 'Ipar Amerikako Atlantikoko ordua (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazoniako ordua (Boa Vista)',
-        'America/Bogota' => 'Kolonbiako ordua (Bogota)',
+        'America/Bogota' => 'Kolonbiako ordua (Bogotá)',
         'America/Boise' => 'Ipar Amerikako mendialdeko ordua (Boise)',
         'America/Buenos_Aires' => 'Argentinako ordua (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentinako ordua (Buenos Aires)',
         'America/Cambridge_Bay' => 'Ipar Amerikako mendialdeko ordua (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazoniako ordua (Campo Grande)',
         'America/Cancun' => 'Ipar Amerikako ekialdeko ordua (Cancún)',
         'America/Caracas' => 'Venezuelako ordua (Caracas)',
         'America/Catamarca' => 'Argentinako ordua (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentinako ordua (Catamarca)',
         'America/Cayenne' => 'Guyana Frantseseko ordua (Cayenne)',
         'America/Cayman' => 'Ipar Amerikako ekialdeko ordua (Kaiman)',
         'America/Chicago' => 'Ipar Amerikako erdialdeko ordua (Chicago)',
         'America/Chihuahua' => 'Ipar Amerikako erdialdeko ordua (Chihuahua)',
         'America/Ciudad_Juarez' => 'Ipar Amerikako mendialdeko ordua (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Ipar Amerikako ekialdeko ordua (Atikokan)',
+        'America/Atikokan' => 'Ipar Amerikako ekialdeko ordua (Atikokan)',
         'America/Cordoba' => 'Argentinako ordua (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentinako ordua (Córdoba)',
         'America/Costa_Rica' => 'Ipar Amerikako erdialdeko ordua (Costa Rica)',
+        'America/Coyhaique' => 'Txileko ordua (Coyhaique)',
         'America/Creston' => 'Ipar Amerikako mendialdeko ordua (Creston)',
         'America/Cuiaba' => 'Amazoniako ordua (Cuiabá)',
         'America/Curacao' => 'Ipar Amerikako Atlantikoko ordua (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Brasiliako ordua (Fortaleza)',
         'America/Glace_Bay' => 'Ipar Amerikako Atlantikoko ordua (Glace Bay)',
         'America/Godthab' => 'Groenlandia aldeko ordua (Nuuk)',
+        'America/Nuuk' => 'Groenlandia aldeko ordua (Nuuk)',
         'America/Goose_Bay' => 'Ipar Amerikako Atlantikoko ordua (Goose Bay)',
         'America/Grand_Turk' => 'Ipar Amerikako ekialdeko ordua (Grand Turk)',
         'America/Grenada' => 'Ipar Amerikako Atlantikoko ordua (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Ipar Amerikako ekialdeko ordua (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Ipar Amerikako ekialdeko ordua (Winamac, Indiana)',
         'America/Indianapolis' => 'Ipar Amerikako ekialdeko ordua (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Ipar Amerikako ekialdeko ordua (Indianapolis)',
         'America/Inuvik' => 'Ipar Amerikako mendialdeko ordua (Inuvik)',
         'America/Iqaluit' => 'Ipar Amerikako ekialdeko ordua (Iqaluit)',
         'America/Jamaica' => 'Ipar Amerikako ekialdeko ordua (Jamaika)',
         'America/Jujuy' => 'Argentinako ordua (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentinako ordua (Jujuy)',
         'America/Juneau' => 'Alaskako ordua (Juneau)',
         'America/Kentucky/Monticello' => 'Ipar Amerikako ekialdeko ordua (Monticello, Kentucky)',
         'America/Kralendijk' => 'Ipar Amerikako Atlantikoko ordua (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Peruko ordua (Lima)',
         'America/Los_Angeles' => 'Ipar Amerikako Pazifikoko ordua (Los Angeles)',
         'America/Louisville' => 'Ipar Amerikako ekialdeko ordua (Louisville)',
+        'America/Kentucky/Louisville' => 'Ipar Amerikako ekialdeko ordua (Louisville)',
         'America/Lower_Princes' => 'Ipar Amerikako Atlantikoko ordua (Lower Prince’s Quarter)',
         'America/Maceio' => 'Brasiliako ordua (Maceió)',
         'America/Managua' => 'Ipar Amerikako erdialdeko ordua (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Ipar Amerikako erdialdeko ordua (Matamoros)',
         'America/Mazatlan' => 'Mexikoko Pazifikoko ordua (Mazatlán)',
         'America/Mendoza' => 'Argentinako ordua (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentinako ordua (Mendoza)',
         'America/Menominee' => 'Ipar Amerikako erdialdeko ordua (Menominee)',
         'America/Merida' => 'Ipar Amerikako erdialdeko ordua (Mérida)',
         'America/Metlakatla' => 'Alaskako ordua (Metlakatla)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Zeelanda Berriko ordua (McMurdo)',
         'Antarctica/Palmer' => 'Txileko ordua (Palmer)',
         'Antarctica/Rothera' => 'Rotherako ordua',
-        'Antarctica/Syowa' => 'Syowako ordua',
+        'Antarctica/Syowa' => 'Syowako ordua (Showa)',
         'Antarctica/Troll' => 'Greenwichko meridianoaren ordua (Troll)',
         'Antarctica/Vostok' => 'Vostokeko ordua',
         'Arctic/Longyearbyen' => 'Europako erdialdeko ordua (Longyearbyen)',
         'Asia/Aden' => 'Arabiako ordua (Aden)',
         'Asia/Almaty' => 'Kazakhstango ordua (Almaty)',
         'Asia/Amman' => 'Europako ekialdeko ordua (Amman)',
-        'Asia/Anadyr' => 'Anadyrreko ordua',
+        'Asia/Anadyr' => 'Petropavlovsk-Kamchatskiko ordua (Anadyr)',
         'Asia/Aqtau' => 'Kazakhstango ordua (Aktau)',
         'Asia/Aqtobe' => 'Kazakhstango ordua (Aktobe)',
         'Asia/Ashgabat' => 'Turkmenistango ordua (Asgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabiako ordua (Bahrain)',
         'Asia/Baku' => 'Azerbaijango ordua (Baku)',
         'Asia/Bangkok' => 'Indotxinako ordua (Bangkok)',
-        'Asia/Barnaul' => 'Errusia aldeko ordua (Barnaul)',
+        'Asia/Barnaul' => 'Krasnoiarskeko ordua (Barnaul)',
         'Asia/Beirut' => 'Europako ekialdeko ordua (Beirut)',
         'Asia/Bishkek' => 'Kirgizistango ordua (Bixkek)',
         'Asia/Brunei' => 'Brunei Darussalamgo ordua',
         'Asia/Calcutta' => 'Indiako ordua (Kalkuta)',
+        'Asia/Kolkata' => 'Indiako ordua (Kalkuta)',
         'Asia/Chita' => 'Jakutskeko ordua (Txita)',
         'Asia/Colombo' => 'Indiako ordua (Kolombo)',
         'Asia/Damascus' => 'Europako ekialdeko ordua (Damasko)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-Kamchatskiko ordua (Kamtxatka)',
         'Asia/Karachi' => 'Pakistango ordua (Karatxi)',
         'Asia/Katmandu' => 'Nepalgo ordua (Katmandu)',
+        'Asia/Kathmandu' => 'Nepalgo ordua (Katmandu)',
         'Asia/Khandyga' => 'Jakutskeko ordua (Khandiga)',
         'Asia/Krasnoyarsk' => 'Krasnoiarskeko ordua',
         'Asia/Kuala_Lumpur' => 'Malaysiako ordua (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Golkoko ordu estandarra (Maskat)',
         'Asia/Nicosia' => 'Europako ekialdeko ordua (Nikosia)',
         'Asia/Novokuznetsk' => 'Krasnoiarskeko ordua (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirskeko ordua',
+        'Asia/Novosibirsk' => 'Krasnoiarskeko ordua (Novosibirsk)',
         'Asia/Omsk' => 'Omskeko ordua',
         'Asia/Oral' => 'Kazakhstango ordua (Oral)',
         'Asia/Phnom_Penh' => 'Indotxinako ordua (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazakhstango ordua (Kostanay)',
         'Asia/Qyzylorda' => 'Kazakhstango ordua (Kyzylorda)',
         'Asia/Rangoon' => 'Myanmarreko ordua (Yangon)',
+        'Asia/Yangon' => 'Myanmarreko ordua (Yangon)',
         'Asia/Riyadh' => 'Arabiako ordua (Riad)',
         'Asia/Saigon' => 'Indotxinako ordua (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Sakhalingo ordua',
+        'Asia/Ho_Chi_Minh' => 'Indotxinako ordua (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Magadango ordua (Sakhalin)',
         'Asia/Samarkand' => 'Uzbekistango ordua (Samarkanda)',
         'Asia/Seoul' => 'Koreako ordua (Seul)',
         'Asia/Shanghai' => 'Txinako ordua (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Irango ordua (Teheran)',
         'Asia/Thimphu' => 'Bhutango ordua (Thimphu)',
         'Asia/Tokyo' => 'Japoniako ordua (Tokio)',
-        'Asia/Tomsk' => 'Errusia aldeko ordua (Tomsk)',
+        'Asia/Tomsk' => 'Krasnoiarskeko ordua (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulan Batorreko ordua',
         'Asia/Urumqi' => 'Txina aldeko ordua (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostokeko ordua (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Europako mendebaldeko ordua (Kanariak)',
         'Atlantic/Cape_Verde' => 'Cabo Verdeko ordua',
         'Atlantic/Faeroe' => 'Europako mendebaldeko ordua (Faroe)',
+        'Atlantic/Faroe' => 'Europako mendebaldeko ordua (Faroe)',
         'Atlantic/Madeira' => 'Europako mendebaldeko ordua (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwichko meridianoaren ordua (Reykjavik)',
         'Atlantic/South_Georgia' => 'Hegoaldeko Georgietako ordua (Hegoaldeko Georgiak)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'ordu unibertsal koordinatua',
         'Europe/Amsterdam' => 'Europako erdialdeko ordua (Amsterdam)',
         'Europe/Andorra' => 'Europako erdialdeko ordua (Andorra)',
-        'Europe/Astrakhan' => 'Moskuko ordua (Astrakhan)',
+        'Europe/Astrakhan' => 'Samarako ordua (Astrakhan)',
         'Europe/Athens' => 'Europako ekialdeko ordua (Atenas)',
         'Europe/Belgrade' => 'Europako erdialdeko ordua (Belgrad)',
         'Europe/Berlin' => 'Europako erdialdeko ordua (Berlin)',
@@ -325,7 +341,7 @@
         'Europe/Bucharest' => 'Europako ekialdeko ordua (Bukarest)',
         'Europe/Budapest' => 'Europako erdialdeko ordua (Budapest)',
         'Europe/Busingen' => 'Europako erdialdeko ordua (Büsingen)',
-        'Europe/Chisinau' => 'Europako ekialdeko ordua (Chisinau)',
+        'Europe/Chisinau' => 'Europako ekialdeko ordua (Chișinău)',
         'Europe/Copenhagen' => 'Europako erdialdeko ordua (Kopenhage)',
         'Europe/Dublin' => 'Greenwichko meridianoaren ordua (Dublin)',
         'Europe/Gibraltar' => 'Europako erdialdeko ordua (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwichko meridianoaren ordua (Jersey)',
         'Europe/Kaliningrad' => 'Europako ekialdeko ordua (Kaliningrad)',
         'Europe/Kiev' => 'Europako ekialdeko ordua (Kiev)',
-        'Europe/Kirov' => 'Errusia aldeko ordua (Kirov)',
+        'Europe/Kyiv' => 'Europako ekialdeko ordua (Kiev)',
+        'Europe/Kirov' => 'Moskuko ordua (Kirov)',
         'Europe/Lisbon' => 'Europako mendebaldeko ordua (Lisboa)',
         'Europe/Ljubljana' => 'Europako erdialdeko ordua (Ljubljana)',
         'Europe/London' => 'Greenwichko meridianoaren ordua (Londres)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samarako ordua',
         'Europe/San_Marino' => 'Europako erdialdeko ordua (San Marino)',
         'Europe/Sarajevo' => 'Europako erdialdeko ordua (Sarajevo)',
-        'Europe/Saratov' => 'Moskuko ordua (Saratov)',
+        'Europe/Saratov' => 'Samarako ordua (Saratov)',
         'Europe/Simferopol' => 'Moskuko ordua (Simferopol)',
         'Europe/Skopje' => 'Europako erdialdeko ordua (Skopje)',
         'Europe/Sofia' => 'Europako ekialdeko ordua (Sofia)',
         'Europe/Stockholm' => 'Europako erdialdeko ordua (Stockholm)',
         'Europe/Tallinn' => 'Europako ekialdeko ordua (Tallinn)',
         'Europe/Tirane' => 'Europako erdialdeko ordua (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskuko ordua (Ulianovsk)',
+        'Europe/Ulyanovsk' => 'Samarako ordua (Ulianovsk)',
         'Europe/Vaduz' => 'Europako erdialdeko ordua (Vaduz)',
         'Europe/Vatican' => 'Europako erdialdeko ordua (Vatikano Hiria)',
         'Europe/Vienna' => 'Europako erdialdeko ordua (Viena)',
         'Europe/Vilnius' => 'Europako ekialdeko ordua (Vilnius)',
-        'Europe/Volgograd' => 'Volgogradeko ordua',
+        'Europe/Volgograd' => 'Moskuko ordua (Volgograd)',
         'Europe/Warsaw' => 'Europako erdialdeko ordua (Varsovia)',
         'Europe/Zagreb' => 'Europako erdialdeko ordua (Zagreb)',
         'Europe/Zurich' => 'Europako erdialdeko ordua (Zürich)',
@@ -376,7 +393,7 @@
         'Indian/Chagos' => 'Indiako ozeanoko ordua (Chagos)',
         'Indian/Christmas' => 'Christmas uharteko ordua',
         'Indian/Cocos' => 'Cocos uharteetako ordua',
-        'Indian/Comoro' => 'Afrikako ekialdeko ordua (Comoro)',
+        'Indian/Comoro' => 'Afrikako ekialdeko ordua (Comores)',
         'Indian/Kerguelen' => 'Frantziaren lurralde austral eta antartikoetako ordutegia (Kerguelen)',
         'Indian/Mahe' => 'Seychelle uharteetako ordua (Mahé)',
         'Indian/Maldives' => 'Maldivetako ordua (Maldivak)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Chathamgo ordua',
         'Pacific/Easter' => 'Pazko uharteko ordua (Pazko uhartea)',
         'Pacific/Efate' => 'Vanuatuko ordua (Éfaté)',
-        'Pacific/Enderbury' => 'Phoenix uharteetako ordua (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenix uharteetako ordua (Canton)',
+        'Pacific/Kanton' => 'Phoenix uharteetako ordua (Canton)',
         'Pacific/Fakaofo' => 'Tokelauko ordua (Fakaofo)',
         'Pacific/Fiji' => 'Fijiko ordua',
         'Pacific/Funafuti' => 'Tuvaluko ordua (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Gambierretako ordua',
         'Pacific/Guadalcanal' => 'Salomon Uharteetako ordua (Guadalcanal)',
         'Pacific/Guam' => 'Chamorroko ordu estandarra (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleutiar uharteetako ordua (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleutiar uharteetako ordu estandarra (Honolulu)',
         'Pacific/Kiritimati' => 'Line uharteetako ordua (Kiritimati)',
         'Pacific/Kosrae' => 'Kosraeko ordua',
         'Pacific/Kwajalein' => 'Marshall Uharteetako ordua (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Palauko ordua',
         'Pacific/Pitcairn' => 'Pitcairneko ordua',
         'Pacific/Ponape' => 'Ponapeko ordua (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponapeko ordua (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papua Ginea Berriko ordua (Port Moresby)',
         'Pacific/Rarotonga' => 'Cook uharteetako ordua (Rarotonga)',
         'Pacific/Saipan' => 'Chamorroko ordu estandarra (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Gilbert uharteetako ordua (Tarawa)',
         'Pacific/Tongatapu' => 'Tongako ordua (Tongatapu)',
         'Pacific/Truk' => 'Chuukeko ordua',
+        'Pacific/Chuuk' => 'Chuukeko ordua',
         'Pacific/Wake' => 'Wake uharteko ordua',
-        'Pacific/Wallis' => 'Wallis eta Futunako ordutegia',
+        'Pacific/Wallis' => 'Wallis eta Futunako ordutegia (Wallis & Futuna)',
     ],
     'Meta' => [
         'HourFormatNeg' => '–%02d:%02d',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fa.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'وقت شرق افریقا (آدیس آبابا)',
         'Africa/Algiers' => 'وقت مرکز اروپا (الجزیره)',
         'Africa/Asmera' => 'وقت شرق افریقا (اسمره)',
+        'Africa/Asmara' => 'وقت شرق افریقا (اسمره)',
         'Africa/Bamako' => 'وقت گرینویچ (باماکو)',
         'Africa/Bangui' => 'وقت غرب افریقا (بانگی)',
         'Africa/Banjul' => 'وقت گرینویچ (بانجول)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'وقت کلمبیا (بوگوتا)',
         'America/Boise' => 'وقت کوهستانی امریکا (بویسی)',
         'America/Buenos_Aires' => 'وقت آرژانتین (بوئنوس‌آیرس)',
+        'America/Argentina/Buenos_Aires' => 'وقت آرژانتین (بوئنوس‌آیرس)',
         'America/Cambridge_Bay' => 'وقت کوهستانی امریکا (کمبریج‌بی)',
         'America/Campo_Grande' => 'وقت آمازون (کمپو گرانده)',
         'America/Cancun' => 'وقت شرق امریکا (کانکون)',
         'America/Caracas' => 'وقت ونزوئلا (کاراکاس)',
         'America/Catamarca' => 'وقت آرژانتین (کاتامارکا)',
+        'America/Argentina/Catamarca' => 'وقت آرژانتین (کاتامارکا)',
         'America/Cayenne' => 'وقت گویان فرانسه (کاین)',
         'America/Cayman' => 'وقت شرق امریکا (کیمن)',
         'America/Chicago' => 'وقت مرکز امریکا (شیکاگو)',
         'America/Chihuahua' => 'وقت مرکز امریکا (چیواوا)',
         'America/Ciudad_Juarez' => 'وقت کوهستانی امریکا (سیوداد خوارز)',
         'America/Coral_Harbour' => 'وقت شرق امریکا (اتکوکان)',
+        'America/Atikokan' => 'وقت شرق امریکا (اتکوکان)',
         'America/Cordoba' => 'وقت آرژانتین (کوردووا)',
+        'America/Argentina/Cordoba' => 'وقت آرژانتین (کوردووا)',
         'America/Costa_Rica' => 'وقت مرکز امریکا (کاستاریکا)',
+        'America/Coyhaique' => 'وقت شیلی (کویهایکیو)',
         'America/Creston' => 'وقت کوهستانی امریکا (کرستون)',
         'America/Cuiaba' => 'وقت آمازون (کویاوا)',
         'America/Curacao' => 'وقت آتلانتیک (کوراسائو)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'وقت برازیلیا (فورتالزا)',
         'America/Glace_Bay' => 'وقت آتلانتیک (گلیس‌بی)',
         'America/Godthab' => 'وقت گرینلند (نووک)',
+        'America/Nuuk' => 'وقت گرینلند (نووک)',
         'America/Goose_Bay' => 'وقت آتلانتیک (گوس‌بی)',
         'America/Grand_Turk' => 'وقت شرق امریکا (گراند تورک)',
         'America/Grenada' => 'وقت آتلانتیک (گرنادا)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'وقت شرق امریکا (وینسنس، اندیانا)',
         'America/Indiana/Winamac' => 'وقت شرق امریکا (ویناماک، ایندیانا)',
         'America/Indianapolis' => 'وقت شرق امریکا (ایندیاناپولیس)',
+        'America/Indiana/Indianapolis' => 'وقت شرق امریکا (ایندیاناپولیس)',
         'America/Inuvik' => 'وقت کوهستانی امریکا (اینوویک)',
         'America/Iqaluit' => 'وقت شرق امریکا (ایکلوئت)',
         'America/Jamaica' => 'وقت شرق امریکا (جامائیکا)',
         'America/Jujuy' => 'وقت آرژانتین (خوخوی)',
+        'America/Argentina/Jujuy' => 'وقت آرژانتین (خوخوی)',
         'America/Juneau' => 'وقت آلاسکا (جونو)',
         'America/Kentucky/Monticello' => 'وقت شرق امریکا (مانتیسلو، کنتاکی)',
         'America/Kralendijk' => 'وقت آتلانتیک (کرالندیک)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'وقت پرو (لیما)',
         'America/Los_Angeles' => 'وقت غرب امریکا (لوس‌آنجلس)',
         'America/Louisville' => 'وقت شرق امریکا (لوئیزویل)',
+        'America/Kentucky/Louisville' => 'وقت شرق امریکا (لوئیزویل)',
         'America/Lower_Princes' => 'وقت آتلانتیک (بخش شاهزاده‌‌نشین پایین)',
         'America/Maceio' => 'وقت برازیلیا (ماسیو)',
         'America/Managua' => 'وقت مرکز امریکا (ماناگوا)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'وقت مرکز امریکا (ماتاموروس)',
         'America/Mazatlan' => 'وقت شرق مکزیک (ماساتلان)',
         'America/Mendoza' => 'وقت آرژانتین (مندوسا)',
+        'America/Argentina/Mendoza' => 'وقت آرژانتین (مندوسا)',
         'America/Menominee' => 'وقت مرکز امریکا (منامینی)',
         'America/Merida' => 'وقت مرکز امریکا (مریدا)',
         'America/Metlakatla' => 'وقت آلاسکا (متالاکاتلا)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'وقت عربستان (عدن)',
         'Asia/Almaty' => 'وقت قزاقستان (آلماتی)',
         'Asia/Amman' => 'وقت شرق اروپا (عَمان)',
-        'Asia/Anadyr' => 'وقت آنادیر',
+        'Asia/Anadyr' => 'وقت پتروپاولوسک‐کامچاتسکی (آنادیر)',
         'Asia/Aqtau' => 'وقت قزاقستان (آقتاو)',
         'Asia/Aqtobe' => 'وقت قزاقستان (آقتوبه)',
         'Asia/Ashgabat' => 'وقت ترکمنستان (عشق‌آباد)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'وقت عربستان (بحرین)',
         'Asia/Baku' => 'وقت جمهوری آذربایجان (باکو)',
         'Asia/Bangkok' => 'وقت هندوچین (بانکوک)',
-        'Asia/Barnaul' => 'وقت روسیه (بارنائول)',
+        'Asia/Barnaul' => 'وقت کراسنویارسک (بارنائول)',
         'Asia/Beirut' => 'وقت شرق اروپا (بیروت)',
         'Asia/Bishkek' => 'وقت قرقیزستان (بیشکک)',
         'Asia/Brunei' => 'وقت برونئی دارالسلام',
         'Asia/Calcutta' => 'وقت هند (کلکته)',
+        'Asia/Kolkata' => 'وقت هند (کلکته)',
         'Asia/Chita' => 'وقت یاکوتسک (چیتا)',
         'Asia/Colombo' => 'وقت هند (کلمبو)',
         'Asia/Damascus' => 'وقت شرق اروپا (دمشق)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'وقت پتروپاولوسک‐کامچاتسکی (کامچاتکا)',
         'Asia/Karachi' => 'وقت پاکستان (کراچی)',
         'Asia/Katmandu' => 'وقت نپال (کاتماندو)',
+        'Asia/Kathmandu' => 'وقت نپال (کاتماندو)',
         'Asia/Khandyga' => 'وقت یاکوتسک (خاندیگا)',
         'Asia/Krasnoyarsk' => 'وقت کراسنویارسک',
         'Asia/Kuala_Lumpur' => 'وقت مالزی (کوالالامپور)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'وقت عادی خلیج فارس (مسقط)',
         'Asia/Nicosia' => 'وقت شرق اروپا (نیکوزیا)',
         'Asia/Novokuznetsk' => 'وقت کراسنویارسک (نوووکوزنتسک)',
-        'Asia/Novosibirsk' => 'وقت نووسیبیرسک (نووسیبیریسک)',
+        'Asia/Novosibirsk' => 'وقت کراسنویارسک (نووسیبیریسک)',
         'Asia/Omsk' => 'وقت اومسک',
         'Asia/Oral' => 'وقت قزاقستان (اورال)',
         'Asia/Phnom_Penh' => 'وقت هندوچین (پنوم‌پن)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'وقت قزاقستان (قوستانای)',
         'Asia/Qyzylorda' => 'وقت قزاقستان (قیزیل‌اوردا)',
         'Asia/Rangoon' => 'وقت میانمار (یانگون)',
+        'Asia/Yangon' => 'وقت میانمار (یانگون)',
         'Asia/Riyadh' => 'وقت عربستان (ریاض)',
         'Asia/Saigon' => 'وقت هندوچین (هوشی‌مین‌سیتی)',
-        'Asia/Sakhalin' => 'وقت ساخالین',
+        'Asia/Ho_Chi_Minh' => 'وقت هندوچین (هوشی‌مین‌سیتی)',
+        'Asia/Sakhalin' => 'وقت ماگادان (ساخالین)',
         'Asia/Samarkand' => 'وقت ازبکستان (سمرقند)',
         'Asia/Seoul' => 'وقت کره (سئول)',
         'Asia/Shanghai' => 'وقت چین (شانگهای)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'وقت ایران (تهران)',
         'Asia/Thimphu' => 'وقت بوتان (تیمفو)',
         'Asia/Tokyo' => 'وقت ژاپن (توکیو)',
-        'Asia/Tomsk' => 'وقت روسیه (تومسک)',
+        'Asia/Tomsk' => 'وقت کراسنویارسک (تومسک)',
         'Asia/Ulaanbaatar' => 'وقت اولان‌باتور',
         'Asia/Urumqi' => 'وقت چین (ارومچی)',
         'Asia/Ust-Nera' => 'وقت ولادی‌وستوک (اوست نرا)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'وقت غرب اروپا (قناری)',
         'Atlantic/Cape_Verde' => 'وقت کیپ‌ورد',
         'Atlantic/Faeroe' => 'وقت غرب اروپا (فارو)',
+        'Atlantic/Faroe' => 'وقت غرب اروپا (فارو)',
         'Atlantic/Madeira' => 'وقت غرب اروپا (مادیرا)',
         'Atlantic/Reykjavik' => 'وقت گرینویچ (ریکیاویک)',
         'Atlantic/South_Georgia' => 'وقت جورجیای جنوبی',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'زمان هماهنگ جهانی',
         'Europe/Amsterdam' => 'وقت مرکز اروپا (آمستردام)',
         'Europe/Andorra' => 'وقت مرکز اروپا (آندورا)',
-        'Europe/Astrakhan' => 'وقت مسکو (آستراخان)',
+        'Europe/Astrakhan' => 'وقت سامارا (آستراخان)',
         'Europe/Athens' => 'وقت شرق اروپا (آتن)',
         'Europe/Belgrade' => 'وقت مرکز اروپا (بلگراد)',
         'Europe/Berlin' => 'وقت مرکز اروپا (برلین)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'وقت گرینویچ (جرزی)',
         'Europe/Kaliningrad' => 'وقت شرق اروپا (کالینینگراد)',
         'Europe/Kiev' => 'وقت شرق اروپا (کیف)',
-        'Europe/Kirov' => 'وقت روسیه (کیروف)',
+        'Europe/Kyiv' => 'وقت شرق اروپا (کیف)',
+        'Europe/Kirov' => 'وقت مسکو (کیروف)',
         'Europe/Lisbon' => 'وقت غرب اروپا (لیسبون)',
         'Europe/Ljubljana' => 'وقت مرکز اروپا (لیوبلیانا)',
         'Europe/London' => 'وقت گرینویچ (لندن)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'وقت سامارا',
         'Europe/San_Marino' => 'وقت مرکز اروپا (سان‌مارینو)',
         'Europe/Sarajevo' => 'وقت مرکز اروپا (سارایوو)',
-        'Europe/Saratov' => 'وقت مسکو (ساراتوف)',
+        'Europe/Saratov' => 'وقت سامارا (ساراتوف)',
         'Europe/Simferopol' => 'وقت مسکو (سیمفروپل)',
         'Europe/Skopje' => 'وقت مرکز اروپا (اسکوپیه)',
         'Europe/Sofia' => 'وقت شرق اروپا (صوفیه)',
         'Europe/Stockholm' => 'وقت مرکز اروپا (استکهلم)',
         'Europe/Tallinn' => 'وقت شرق اروپا (تالین)',
         'Europe/Tirane' => 'وقت مرکز اروپا (تیرانا)',
-        'Europe/Ulyanovsk' => 'وقت مسکو (اولیانوفسک)',
+        'Europe/Ulyanovsk' => 'وقت سامارا (اولیانوفسک)',
         'Europe/Vaduz' => 'وقت مرکز اروپا (فادوتس)',
         'Europe/Vatican' => 'وقت مرکز اروپا (واتیکان)',
         'Europe/Vienna' => 'وقت مرکز اروپا (وین)',
         'Europe/Vilnius' => 'وقت شرق اروپا (ویلنیوس)',
-        'Europe/Volgograd' => 'وقت ولگاگراد',
+        'Europe/Volgograd' => 'وقت مسکو (ولگاگراد)',
         'Europe/Warsaw' => 'وقت مرکز اروپا (ورشو)',
         'Europe/Zagreb' => 'وقت مرکز اروپا (زاگرب)',
         'Europe/Zurich' => 'وقت مرکز اروپا (زوریخ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'وقت چت‌هام',
         'Pacific/Easter' => 'وقت جزیرهٔ ایستر',
         'Pacific/Efate' => 'وقت واناتو (افاته)',
-        'Pacific/Enderbury' => 'وقت جزایر فونیکس (اندربری)',
+        'Pacific/Enderbury' => 'وقت جزایر فونیکس (کانتون)',
+        'Pacific/Kanton' => 'وقت جزایر فونیکس (کانتون)',
         'Pacific/Fakaofo' => 'وقت توکلائو (فاکائوفو)',
         'Pacific/Fiji' => 'وقت فیجی',
         'Pacific/Funafuti' => 'وقت تووالو (فونافوتی)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'وقت گامبیه (گامبیر)',
         'Pacific/Guadalcanal' => 'وقت جزایر سلیمان (گوادال‌کانال)',
         'Pacific/Guam' => 'وقت عادی چامورو (گوام)',
-        'Pacific/Honolulu' => 'وقت هاوایی‐الوشن (هونولولو)',
+        'Pacific/Honolulu' => 'وقت عادی هاوایی‐الوشن (هونولولو)',
         'Pacific/Kiritimati' => 'وقت جزایر لاین (کریتیماتی)',
         'Pacific/Kosrae' => 'وقت کوسرای',
         'Pacific/Kwajalein' => 'وقت جزایر مارشال (کواجیلین)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'وقت پالائو',
         'Pacific/Pitcairn' => 'وقت پیتکایرن (پیت‌کرن)',
         'Pacific/Ponape' => 'وقت پوناپه (پانپی)',
+        'Pacific/Pohnpei' => 'وقت پوناپه (پانپی)',
         'Pacific/Port_Moresby' => 'وقت پاپوا گینهٔ نو (پورت‌مورزبی)',
         'Pacific/Rarotonga' => 'وقت جزایر کوک (راروتونگا)',
         'Pacific/Saipan' => 'وقت عادی چامورو (سایپان)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'وقت جزایر گیلبرت (تاراوا)',
         'Pacific/Tongatapu' => 'وقت تونگا (تونگاتاپو)',
         'Pacific/Truk' => 'وقت چوئوک (چوک)',
+        'Pacific/Chuuk' => 'وقت چوئوک (چوک)',
         'Pacific/Wake' => 'وقت جزیرهٔ ویک',
         'Pacific/Wallis' => 'وقت والیس و فوتونا',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ff_Adlm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ff_Adlm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ff_Adlm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ff_Adlm.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫 𞤀𞤬𞤪𞤭𞤳𞤢𞥄 (𞤀𞤣𞤭𞤧𞤢𞤦𞤢𞤦𞤢)',
         'Africa/Algiers' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤀𞤤𞤶𞤢𞤪𞤭𞥅)',
         'Africa/Asmera' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫 𞤀𞤬𞤪𞤭𞤳𞤢𞥄 (𞤀𞤧𞤥𞤢𞤪𞤢)',
+        'Africa/Asmara' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫 𞤀𞤬𞤪𞤭𞤳𞤢𞥄 (𞤀𞤧𞤥𞤢𞤪𞤢)',
         'Africa/Bamako' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤳𞤭𞤲𞤭𞥅𞤲𞥋𞤣𞤫 𞤘𞤪𞤭𞤲𞤱𞤭𞥅𞤧 (𞤄𞤢𞤥𞤢𞤳𞤮𞥅)',
         'Africa/Bangui' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤭𞥅𞤪𞤲𞤢𞥄𞤲𞤺𞤫 𞤀𞤬𞤪𞤭𞤳𞤢𞥄 (𞤄𞤢𞤲𞤺𞤭)',
         'Africa/Banjul' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤳𞤭𞤲𞤭𞥅𞤲𞥋𞤣𞤫 𞤘𞤪𞤭𞤲𞤱𞤭𞥅𞤧 (𞤄𞤢𞤲𞤶𞤵𞤤)',
@@ -78,19 +79,24 @@
         'America/Bogota' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤑𞤮𞤤𞤮𞤥𞤦𞤭𞤴𞤢𞥄 (𞤄𞤮𞤺𞤮𞤼𞤢)',
         'America/Boise' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤫𞤤𞥆𞤭𞤲𞤳𞤮𞥅𞤪𞤫 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤄𞤮𞤴𞥁𞤭𞥅)',
         'America/Buenos_Aires' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤪𞤶𞤢𞤲𞤼𞤭𞤲𞤢𞥄 (𞤄𞤭𞤴𞤲𞤮𞤧-𞤉𞥅𞤶𞤫𞤪𞤫𞥅𞤧)',
+        'America/Argentina/Buenos_Aires' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤪𞤶𞤢𞤲𞤼𞤭𞤲𞤢𞥄 (𞤄𞤭𞤴𞤲𞤮𞤧-𞤉𞥅𞤶𞤫𞤪𞤫𞥅𞤧)',
         'America/Cambridge_Bay' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤫𞤤𞥆𞤭𞤲𞤳𞤮𞥅𞤪𞤫 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤑𞤢𞤥𞤦𞤭𞤪𞤭𞥅𞤶 𞤄𞤫𞥅)',
         'America/Campo_Grande' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤥𞤢𞥁𞤮𞥅𞤲 (𞤑𞤢𞤥𞤨𞤮-𞤘𞤪𞤢𞤲𞤣𞤫)',
         'America/Cancun' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤑𞤢𞤲𞤳𞤵𞥅𞤲)',
         'America/Caracas' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤜𞤫𞤲𞤭𞥅𞥁𞤮𞥅𞤤𞤢 (𞤑𞤢𞤪𞤢𞤳𞤢𞤧)',
         'America/Catamarca' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤪𞤶𞤢𞤲𞤼𞤭𞤲𞤢𞥄 (𞤑𞤢𞤼𞤢𞤥𞤢𞤪𞤳𞤢𞥄)',
+        'America/Argentina/Catamarca' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤪𞤶𞤢𞤲𞤼𞤭𞤲𞤢𞥄 (𞤑𞤢𞤼𞤢𞤥𞤢𞤪𞤳𞤢𞥄)',
         'America/Cayenne' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤘𞤢𞤴𞤢𞤲𞤢𞥄-𞤊𞤪𞤢𞤲𞤧𞤭 (𞤑𞤢𞤴𞤫𞥅𞤲)',
         'America/Cayman' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤑𞤢𞤴𞤥𞤢𞥄𞤲)',
         'America/Chicago' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤕𞤭𞤳𞤢𞥄𞤺𞤮𞥅)',
         'America/Chihuahua' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤕𞤋𞤱𞤢𞥄𞤱𞤢𞥄)',
         'America/Ciudad_Juarez' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤫𞤤𞥆𞤭𞤲𞤳𞤮𞥅𞤪𞤫 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (Ciudad Juárez)',
         'America/Coral_Harbour' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤀𞤼𞤭𞤳𞤮𞥅𞤳𞤢𞤲)',
+        'America/Atikokan' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤀𞤼𞤭𞤳𞤮𞥅𞤳𞤢𞤲)',
         'America/Cordoba' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤪𞤶𞤢𞤲𞤼𞤭𞤲𞤢𞥄 (𞤑𞤮𞤪𞤣𞤮𞤦𞤢𞥄)',
+        'America/Argentina/Cordoba' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤪𞤶𞤢𞤲𞤼𞤭𞤲𞤢𞥄 (𞤑𞤮𞤪𞤣𞤮𞤦𞤢𞥄)',
         'America/Costa_Rica' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤑𞤮𞤧𞤼𞤢 𞤈𞤭𞤳𞤢𞥄)',
+        'America/Coyhaique' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤭𞤤𞤫𞥅 (Coyhaique)',
         'America/Creston' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤫𞤤𞥆𞤭𞤲𞤳𞤮𞥅𞤪𞤫 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤑𞤪𞤫𞤧𞤼𞤮𞤲)',
         'America/Cuiaba' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤥𞤢𞥁𞤮𞥅𞤲 (𞤑𞤵𞤶𞤢𞤦𞤢𞥄)',
         'America/Curacao' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤫𞤳𞤵 (𞤑𞤵𞤪𞤢𞤧𞤢𞤱𞤮𞥅)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤄𞤪𞤢𞤧𞤭𞤤𞤭𞤴𞤢𞥄 (𞤊𞤮𞤪𞤼𞤢𞤤𞤫𞥅𞥁𞤢)',
         'America/Glace_Bay' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤫𞤳𞤵 (𞤘𞤤𞤫𞤧-𞤄𞤫𞥅)',
         'America/Godthab' => '𞤘𞤭𞤪𞤤𞤢𞤲𞤣𞤭 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤐𞤵𞥅𞤳)',
+        'America/Nuuk' => '𞤘𞤭𞤪𞤤𞤢𞤲𞤣𞤭 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤐𞤵𞥅𞤳)',
         'America/Goose_Bay' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤫𞤳𞤵 (𞤘𞤮𞥅𞤧-𞤄𞤫𞥅)',
         'America/Grand_Turk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤘𞤪𞤢𞤲𞤣-𞤚𞤵𞤪𞤳)',
         'America/Grenada' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤫𞤳𞤵 (𞤘𞤪𞤫𞤲𞤢𞥄𞤣𞤢)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤜𞤭𞤲𞤧𞤫𞥅𞤲, 𞤋𞤲𞤣𞤭𞤴𞤢𞤲𞤢𞥄)',
         'America/Indiana/Winamac' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤏𞤭𞤲𞤢𞤥𞤢𞤳, 𞤋𞤲𞤣𞤭𞤴𞤢𞤲𞤢𞥄)',
         'America/Indianapolis' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤋𞤲𞤣𞤭𞤴𞤢𞤲𞤢𞥄𞤨𞤮𞤤𞤭𞤧)',
+        'America/Indiana/Indianapolis' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤋𞤲𞤣𞤭𞤴𞤢𞤲𞤢𞥄𞤨𞤮𞤤𞤭𞤧)',
         'America/Inuvik' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤫𞤤𞥆𞤭𞤲𞤳𞤮𞥅𞤪𞤫 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤋𞤲𞤵𞤾𞤭𞤳)',
         'America/Iqaluit' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤋𞤳𞤢𞤤𞤵𞤱𞤭𞤼)',
         'America/Jamaica' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤔𞤢𞤥𞤢𞥄𞤴𞤳𞤢)',
         'America/Jujuy' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤪𞤶𞤢𞤲𞤼𞤭𞤲𞤢𞥄 (𞤔𞤵𞤶𞤵𞤴)',
+        'America/Argentina/Jujuy' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤪𞤶𞤢𞤲𞤼𞤭𞤲𞤢𞥄 (𞤔𞤵𞤶𞤵𞤴)',
         'America/Juneau' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤤𞤢𞤧𞤳𞤢𞥄 (𞤔𞤵𞥅𞤲𞤮𞥅)',
         'America/Kentucky/Monticello' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤃𞤮𞤲𞤼𞤭𞤷𞤫𞤤𞤮𞥅, 𞤑𞤫𞤲𞤼𞤮𞥅𞤳𞤭𞥅)',
         'America/Kralendijk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤫𞤳𞤵 (𞤑𞤪𞤢𞤤𞤫𞤲𞤶𞤭𞥅𞤳)',
@@ -136,6 +145,7 @@
         'America/Lima' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤫𞤪𞤵𞥅 (𞤂𞤭𞥅𞤥𞤢)',
         'America/Los_Angeles' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤁𞤫𞤰𞥆𞤮 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤂𞤮𞤧-𞤀𞤺𞤫𞤤𞤫𞥅𞤧)',
         'America/Louisville' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤂𞤵𞤭𞤾𞤭𞤤)',
+        'America/Kentucky/Louisville' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞤺𞤫𞥅𞤪𞤭 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤂𞤵𞤭𞤾𞤭𞤤)',
         'America/Lower_Princes' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤫𞤳𞤵 (𞤂𞤮𞤱𞤮 𞤆𞤪𞤫𞤲𞤧𞤫𞥅𞤧 𞤑𞤮𞤣𞤮𞥅)',
         'America/Maceio' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤄𞤪𞤢𞤧𞤭𞤤𞤭𞤴𞤢𞥄 (𞤃𞤢𞤧𞤫𞤴𞤮)',
         'America/Managua' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤃𞤢𞤲𞤢𞤱𞤢𞥄)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤃𞤢𞤼𞤢𞤥𞤮𞤪𞤮𞥅𞤧)',
         'America/Mazatlan' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤁𞤫𞤰𞥆𞤮 𞤃𞤫𞤳𞤧𞤭𞤳𞤮𞥅 (𞤃𞤢𞥁𞤢𞤼𞤤𞤢𞤲)',
         'America/Mendoza' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤪𞤶𞤢𞤲𞤼𞤭𞤲𞤢𞥄 (𞤃𞤫𞤲𞤣𞤮𞥅𞥁𞤢)',
+        'America/Argentina/Mendoza' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤪𞤶𞤢𞤲𞤼𞤭𞤲𞤢𞥄 (𞤃𞤫𞤲𞤣𞤮𞥅𞥁𞤢)',
         'America/Menominee' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤃𞤫𞤲𞤮𞤥𞤭𞤲𞤭)',
         'America/Merida' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮 𞤐𞤢𞤲𞥆𞤢𞥄𞤲𞤺𞤫 𞤀𞤥𞤫𞤪𞤭𞤳𞤢𞥄 (𞤃𞤫𞤪𞤭𞤣𞤢)',
         'America/Metlakatla' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤤𞤢𞤧𞤳𞤢𞥄 (𞤃𞤫𞤼𞤤𞤢𞤳𞤢𞤼𞤤𞤢)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞥄𞤪𞤢𞤦𞤭𞤴𞤢 (𞤀𞤣𞤫𞤲)',
         'Asia/Almaty' => '𞤑𞤢𞥁𞤢𞤧𞤼𞤢𞥄𞤲 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤀𞤤𞤥𞤢𞥄𞤼𞤭)',
         'Asia/Amman' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤀𞤥𞤢𞥄𞤲𞤵)',
-        'Asia/Anadyr' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤲𞤢𞤣𞤭𞥅𞤪',
+        'Asia/Anadyr' => '𞤈𞤮𞥅𞤧𞤭𞤴𞤢 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤀𞤲𞤢𞤣𞤭𞥅𞤪)',
         'Asia/Aqtau' => '𞤑𞤢𞥁𞤢𞤧𞤼𞤢𞥄𞤲 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤀𞤳𞤼𞤢𞥄𞤱𞤵)',
         'Asia/Aqtobe' => '𞤑𞤢𞥁𞤢𞤧𞤼𞤢𞥄𞤲 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤀𞤳𞤼𞤮𞥅𞤦𞤫)',
         'Asia/Ashgabat' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤪𞤳𞤵𞤥𞤫𞤲𞤭𞤧𞤼𞤢𞥄𞤲 (𞤀𞤧𞤺𞤢𞤦𞤢𞤼𞤵)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞥄𞤪𞤢𞤦𞤭𞤴𞤢 (𞤄𞤢𞤸𞤪𞤢𞤴𞤲𞤵)',
         'Asia/Baku' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞤶𞤫𞤪𞤦𞤢𞤴𞤶𞤢𞤲 (𞤄𞤢𞥄𞤳𞤵)',
         'Asia/Bangkok' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤋𞤲𞤣𞤮𞤧𞤭𞥅𞤲 (𞤄𞤢𞤲𞤳𞤮𞥅𞤳𞤵)',
-        'Asia/Barnaul' => '𞤈𞤮𞥅𞤧𞤭𞤴𞤢 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤄𞤢𞤪𞤲𞤢𞥄𞤤𞤵)',
+        'Asia/Barnaul' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤑𞤢𞤪𞤢𞤧𞤲𞤮𞤴𞤢𞤪𞤧𞤭𞤳 (𞤄𞤢𞤪𞤲𞤢𞥄𞤤𞤵)',
         'Asia/Beirut' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤄𞤫𞤴𞤪𞤵𞥅𞤼𞤵)',
         'Asia/Bishkek' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤑𞤭𞤪𞤺𞤭𞤧𞤼𞤢𞥄𞤲 (𞤄𞤭𞤧𞤳𞤫𞥅𞤳𞤵)',
         'Asia/Brunei' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤄𞤵𞤪𞤲𞤢𞤴',
         'Asia/Calcutta' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤱𞤪𞤵𞤲𞥋𞤣𞤫 𞤋𞤲𞤣𞤭𞤴𞤢 (𞤑𞤮𞤤𞤳𞤢𞤼𞤢)',
+        'Asia/Kolkata' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤱𞤪𞤵𞤲𞥋𞤣𞤫 𞤋𞤲𞤣𞤭𞤴𞤢 (𞤑𞤮𞤤𞤳𞤢𞤼𞤢)',
         'Asia/Chita' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤒𞤢𞤳𞤢𞤼𞤭𞤧𞤳𞤵 (𞤕𞤭𞥅𞤼𞤢)',
         'Asia/Colombo' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤱𞤪𞤵𞤲𞥋𞤣𞤫 𞤋𞤲𞤣𞤭𞤴𞤢 (𞤑𞤮𞤤𞤮𞤥𞤦𞤢)',
         'Asia/Damascus' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤁𞤢𞤥𞤢𞤧𞤹𞤢)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => '𞤈𞤮𞥅𞤧𞤭𞤴𞤢 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤑𞤢𞤥𞤷𞤢𞤼𞤭𞤳𞤢)',
         'Asia/Karachi' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤢𞤳𞤭𞤧𞤼𞤢𞥄𞤲 (𞤑𞤢𞤪𞤢𞤷𞤭𞥅)',
         'Asia/Katmandu' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤐𞤫𞤨𞤢𞤤 (𞤑𞤢𞤼𞤭𞤥𞤢𞤲𞤣𞤵)',
+        'Asia/Kathmandu' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤐𞤫𞤨𞤢𞤤 (𞤑𞤢𞤼𞤭𞤥𞤢𞤲𞤣𞤵)',
         'Asia/Khandyga' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤒𞤢𞤳𞤢𞤼𞤭𞤧𞤳𞤵 (𞤝𞤢𞤲𞤣𞤭𞤺𞤢)',
         'Asia/Krasnoyarsk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤑𞤢𞤪𞤢𞤧𞤲𞤮𞤴𞤢𞤪𞤧𞤭𞤳 (𞤑𞤢𞤪𞤢𞤧𞤲𞤮𞤴𞤢𞤪𞤧𞤵𞤳𞤵)',
         'Asia/Kuala_Lumpur' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤃𞤢𞤤𞤫𞥅𞤧𞤭𞤴𞤢 (𞤑𞤵𞤱𞤢𞤤𞤢-𞤂𞤮𞤥𞤨𞤵𞥅𞤪)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤂𞤮𞥅𞤻𞤵 (𞤃𞤵𞤧𞤳𞤢𞤼𞤵)',
         'Asia/Nicosia' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤐𞤭𞤳𞤮𞤧𞤭𞤴𞤢)',
         'Asia/Novokuznetsk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤑𞤢𞤪𞤢𞤧𞤲𞤮𞤴𞤢𞤪𞤧𞤭𞤳 (𞤐𞤮𞤾𞤮𞤳𞤵𞥁𞤲𞤫𞤼𞤭𞤧𞤳𞤵)',
-        'Asia/Novosibirsk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤐𞤮𞤾𞤮𞤧𞤦𞤭𞤪𞤧𞤭𞤳 (𞤐𞤮𞤾𞤮𞤧𞤭𞤦𞤭𞤪𞤧𞤵𞤳)',
+        'Asia/Novosibirsk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤑𞤢𞤪𞤢𞤧𞤲𞤮𞤴𞤢𞤪𞤧𞤭𞤳 (𞤐𞤮𞤾𞤮𞤧𞤭𞤦𞤭𞤪𞤧𞤵𞤳)',
         'Asia/Omsk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤌𞤥𞤧𞤵𞤳𞤵',
         'Asia/Oral' => '𞤑𞤢𞥁𞤢𞤧𞤼𞤢𞥄𞤲 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤓𞤪𞤢𞤤)',
         'Asia/Phnom_Penh' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤋𞤲𞤣𞤮𞤧𞤭𞥅𞤲 (𞤆𞤢𞤲𞤮𞤥-𞤆𞤫𞤲)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => '𞤑𞤢𞥁𞤢𞤧𞤼𞤢𞥄𞤲 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤑𞤮𞤧𞤼𞤢𞤲𞤢𞤴)',
         'Asia/Qyzylorda' => '𞤑𞤢𞥁𞤢𞤧𞤼𞤢𞥄𞤲 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤑𞤭𞥁𞤭𞤤𞤮𞤪𞤣𞤢)',
         'Asia/Rangoon' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤃𞤭𞤴𞤢𞤥𞤢𞥄𞤪 (𞤈𞤢𞤲𞤺𞤵𞥅𞤲)',
+        'Asia/Yangon' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤃𞤭𞤴𞤢𞤥𞤢𞥄𞤪 (𞤈𞤢𞤲𞤺𞤵𞥅𞤲)',
         'Asia/Riyadh' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤀𞥄𞤪𞤢𞤦𞤭𞤴𞤢 (𞤈𞤭𞤴𞤢𞥄𞤣)',
         'Asia/Saigon' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤋𞤲𞤣𞤮𞤧𞤭𞥅𞤲 (𞤅𞤢𞤸𞤪𞤫 𞤖𞤮𞥅-𞤕𞤭 𞤃𞤭𞥅𞤲)',
-        'Asia/Sakhalin' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤅𞤢𞤿𞤢𞤤𞤭𞥅𞤲',
+        'Asia/Ho_Chi_Minh' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤋𞤲𞤣𞤮𞤧𞤭𞥅𞤲 (𞤅𞤢𞤸𞤪𞤫 𞤖𞤮𞥅-𞤕𞤭 𞤃𞤭𞥅𞤲)',
+        'Asia/Sakhalin' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤃𞤢𞤺𞤢𞤣𞤢𞤲 (𞤅𞤢𞤿𞤢𞤤𞤭𞥅𞤲)',
         'Asia/Samarkand' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤓𞥁𞤦𞤫𞤳𞤭𞤧𞤼𞤢𞥄𞤲 (𞤅𞤢𞤥𞤢𞤪𞤳𞤢𞤲𞤣𞤵)',
         'Asia/Seoul' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤑𞤮𞥅𞤪𞤫𞤴𞤢𞥄 (𞤅𞤫𞤱𞤵𞤤)',
         'Asia/Shanghai' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤢𞤴𞤲𞤢 (𞤅𞤢𞤲𞤸𞤢𞤴)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤋𞤪𞤢𞥄𞤲 (𞤚𞤫𞤸𞤭𞤪𞤢𞥄𞤲)',
         'Asia/Thimphu' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤄𞤵𞤼𞤢𞥄𞤲 (𞤚𞤭𞤥𞤨𞤵)',
         'Asia/Tokyo' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤐𞤭𞤨𞥆𞤮𞤲 (𞤚𞤮𞤳𞤭𞤴𞤮)',
-        'Asia/Tomsk' => '𞤈𞤮𞥅𞤧𞤭𞤴𞤢 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤚𞤮𞤥𞤧𞤵𞤳𞤵)',
+        'Asia/Tomsk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤑𞤢𞤪𞤢𞤧𞤲𞤮𞤴𞤢𞤪𞤧𞤭𞤳 (𞤚𞤮𞤥𞤧𞤵𞤳𞤵)',
         'Asia/Ulaanbaatar' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤓𞤤𞤢𞤲𞤦𞤢𞤼𞤢𞤪',
         'Asia/Urumqi' => '𞤕𞤢𞤴𞤲𞤢 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤓𞤪𞤵𞤥𞤳𞤵)',
         'Asia/Ust-Nera' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤜𞤭𞤤𞤢𞤾𞤮𞤧𞤼𞤮𞤳 (𞤓𞤧𞤼𞤢-𞤐𞤫𞤪𞤢)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤭𞥅𞤪𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤑𞤢𞤲𞤢𞤪𞤭)',
         'Atlantic/Cape_Verde' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤑𞤢𞥄𞤦𞤮-𞤜𞤫𞤪𞤣𞤫',
         'Atlantic/Faeroe' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤭𞥅𞤪𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤊𞤢𞤪𞤮𞥅)',
+        'Atlantic/Faroe' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤭𞥅𞤪𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤊𞤢𞤪𞤮𞥅)',
         'Atlantic/Madeira' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤭𞥅𞤪𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤃𞤢𞤴𞤣𞤫𞤪𞤢)',
         'Atlantic/Reykjavik' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤳𞤭𞤲𞤭𞥅𞤲𞥋𞤣𞤫 𞤘𞤪𞤭𞤲𞤱𞤭𞥅𞤧 (𞤈𞤫𞤴𞤳𞤢𞤾𞤭𞤳𞤭)',
         'Atlantic/South_Georgia' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤅𞤢𞤱𞤬-𞤔𞤮𞤪𞤶𞤭𞤴𞤢𞥄',
@@ -316,7 +332,7 @@
         'Etc/UTC' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤭𞤤𞥆𞤢𞤲𞤳𞤮𞥅𞤪𞤫 𞤊𞤮𞤲𞤣𞤢𞥄𞤲𞤣𞤫',
         'Europe/Amsterdam' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤀𞤥𞤧𞤭𞤼𞤫𞤪𞤣𞤢𞥄𞤥)',
         'Europe/Andorra' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤀𞤲𞤣𞤮𞥅𞤪𞤢)',
-        'Europe/Astrakhan' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤃𞤮𞤧𞤳𞤮 (𞤀𞤧𞤼𞤢𞤪𞤿𞤢𞥄𞤲)',
+        'Europe/Astrakhan' => '𞤈𞤮𞥅𞤧𞤭𞤴𞤢 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤀𞤧𞤼𞤢𞤪𞤿𞤢𞥄𞤲)',
         'Europe/Athens' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤀𞤼𞤫𞤲𞤧𞤭)',
         'Europe/Belgrade' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤄𞤫𞤤𞤺𞤢𞤪𞤢𞥄𞤣)',
         'Europe/Berlin' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤄𞤫𞤪𞤤𞤫𞤲)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤳𞤭𞤲𞤭𞥅𞤲𞥋𞤣𞤫 𞤘𞤪𞤭𞤲𞤱𞤭𞥅𞤧 (𞤔𞤫𞤪𞤧𞤭𞥅)',
         'Europe/Kaliningrad' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤑𞤢𞤤𞤭𞤲𞤺𞤢𞤪𞤣)',
         'Europe/Kiev' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤑𞤭𞤴𞤫𞥅𞤾)',
-        'Europe/Kirov' => '𞤈𞤮𞥅𞤧𞤭𞤴𞤢 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤑𞤭𞤪𞤮𞥅𞤾𞤵)',
+        'Europe/Kyiv' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤑𞤭𞤴𞤫𞥅𞤾)',
+        'Europe/Kirov' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤃𞤮𞤧𞤳𞤮 (𞤑𞤭𞤪𞤮𞥅𞤾𞤵)',
         'Europe/Lisbon' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤭𞥅𞤪𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤂𞤭𞤧𞤦𞤮𞥅𞤲)',
         'Europe/Ljubljana' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤋𞤶𞤵𞤦𞤵𞤤𞤶𞤢𞤲𞤢)',
         'Europe/London' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤳𞤭𞤲𞤭𞥅𞤲𞥋𞤣𞤫 𞤘𞤪𞤭𞤲𞤱𞤭𞥅𞤧 (𞤂𞤮𞤲𞤣𞤮𞤲)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => '𞤈𞤮𞥅𞤧𞤭𞤴𞤢 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤅𞤢𞤥𞤢𞤪𞤢)',
         'Europe/San_Marino' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤅𞤢𞤲-𞤃𞤢𞤪𞤭𞤲𞤮)',
         'Europe/Sarajevo' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤅𞤢𞤪𞤢𞤴𞤫𞤾𞤮𞥅)',
-        'Europe/Saratov' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤃𞤮𞤧𞤳𞤮 (𞤅𞤢𞤪𞤢𞤼𞤮𞥅𞤾)',
+        'Europe/Saratov' => '𞤈𞤮𞥅𞤧𞤭𞤴𞤢 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤅𞤢𞤪𞤢𞤼𞤮𞥅𞤾)',
         'Europe/Simferopol' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤃𞤮𞤧𞤳𞤮 (𞤅𞤭𞤥𞤬𞤫𞤪𞤨𞤮𞥅𞤤)',
         'Europe/Skopje' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤅𞤭𞤳𞤮𞥅𞤨𞤭𞤴𞤢)',
         'Europe/Sofia' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤅𞤮𞤬𞤭𞤴𞤢)',
         'Europe/Stockholm' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤅𞤭𞤼𞤮𞤳𞤮𞤤𞤥𞤵)',
         'Europe/Tallinn' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤚𞤢𞤤𞤭𞥅𞤲𞤵)',
         'Europe/Tirane' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤚𞤭𞤪𞤢𞤲𞤢)',
-        'Europe/Ulyanovsk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤃𞤮𞤧𞤳𞤮 (𞤓𞤤𞤴𞤢𞤲𞤮𞤾𞤮𞤧𞤳𞤵)',
+        'Europe/Ulyanovsk' => '𞤈𞤮𞥅𞤧𞤭𞤴𞤢 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 (𞤓𞤤𞤴𞤢𞤲𞤮𞤾𞤮𞤧𞤳𞤵)',
         'Europe/Vaduz' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤜𞤢𞤣𞤵𞥅𞤶𞤵)',
         'Europe/Vatican' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤜𞤢𞤼𞤭𞤳𞤢𞤲)',
         'Europe/Vienna' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤜𞤭𞤴𞤫𞤲𞤢𞥄)',
         'Europe/Vilnius' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤵𞤯𞤲𞤢𞥄𞤲𞥋𞤺𞤫 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤜𞤫𞤤𞤲𞤵𞥅𞤧)',
-        'Europe/Volgograd' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤜𞤮𞤤𞤺𞤮𞤺𞤢𞤪𞤢𞥄𞤣 (𞤜𞤮𞤤𞤺𞤮𞤺𞤢𞤪𞤢𞤣)',
+        'Europe/Volgograd' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤃𞤮𞤧𞤳𞤮 (𞤜𞤮𞤤𞤺𞤮𞤺𞤢𞤪𞤢𞤣)',
         'Europe/Warsaw' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤏𞤢𞤪𞤧𞤮)',
         'Europe/Zagreb' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤟𞤢𞤺𞤪𞤫𞤦𞤵)',
         'Europe/Zurich' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞤥𞤦𞤮𞥅𞤪𞤭 𞤀𞤪𞤮𞥅𞤦𞤢 (𞤟𞤵𞤪𞤵𞤳)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤢𞤼𞤢𞥄𞤥 (𞤕𞤢𞥃𞤢𞥄𞤥)',
         'Pacific/Easter' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤋𞤧𞤼𞤮𞥅-𞤀𞤴𞤤𞤢𞤲𞤣',
         'Pacific/Efate' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤜𞤢𞤲𞤵𞤱𞤢𞥄𞤼𞤵 (𞤉𞤬𞤢𞤼𞤵)',
-        'Pacific/Enderbury' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤵𞤪𞤭𞥅𞤶𞤫 𞤊𞤫𞤲𞤭𞤳𞤧𞤭 (𞤉𞤲𞤣𞤫𞤪𞤦𞤵𞥅𞤪𞤭)',
+        'Pacific/Enderbury' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤵𞤪𞤭𞥅𞤶𞤫 𞤊𞤫𞤲𞤭𞤳𞤧𞤭 (𞤑𞤢𞤲𞤼𞤮𞤲)',
+        'Pacific/Kanton' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤵𞤪𞤭𞥅𞤶𞤫 𞤊𞤫𞤲𞤭𞤳𞤧𞤭 (𞤑𞤢𞤲𞤼𞤮𞤲)',
         'Pacific/Fakaofo' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤮𞥅𞤳𞤮𞤤𞤢𞥄𞤱𞤵 (𞤊𞤢𞤳𞤢𞤱𞤬𞤮)',
         'Pacific/Fiji' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤊𞤭𞤶𞤭𞥅',
         'Pacific/Funafuti' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤵𞥅𞤾𞤢𞤤𞤵 (𞤊𞤵𞤲𞤢𞤬𞤵𞤼𞤭𞥅)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤘𞤢𞤥𞤦𞤭𞤴𞤫𞤪',
         'Pacific/Guadalcanal' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤵𞤪𞤭𞥅𞤶𞤫 𞤅𞤵𞤤𞤢𞤴𞤥𞤢𞥄𞤲 (𞤘𞤵𞤱𞤢𞤣𞤢𞤤𞤳𞤢𞤲𞤢𞤤)',
         'Pacific/Guam' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤱𞤪𞤵𞤲𞥋𞤣𞤫 𞤕𞤮𞤥𞤮𞥅𞤪𞤮 (𞤘𞤵𞤱𞤢𞥄𞤥)',
-        'Pacific/Honolulu' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤱𞤢𞥄𞤴𞤭𞥅-𞤀𞤤𞤮𞤧𞤭𞤴𞤢𞤲 (Honolulu)',
+        'Pacific/Honolulu' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤱𞤪𞤵𞤲𞥋𞤣𞤫 𞤖𞤢𞤱𞤢𞥄𞤴𞤭𞥅-𞤀𞤤𞤮𞤧𞤭𞤴𞤢𞤲 (Honolulu)',
         'Pacific/Kiritimati' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤵𞤪𞤭𞥅𞤶𞤫 𞤂𞤢𞤴𞤲𞤵 (𞤑𞤭𞤪𞤭𞤼𞤭𞤥𞤢𞤼𞤭)',
         'Pacific/Kosrae' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤑𞤮𞤧𞤪𞤢𞤴 (𞤑𞤮𞤧𞤪𞤫𞤴)',
         'Pacific/Kwajalein' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤅𞤵𞤪𞤭𞥅𞤶𞤫 𞤃𞤢𞤪𞤧𞤢𞤤 (𞤑𞤢𞤱𞤢𞤶𞤢𞤤𞤭𞥅𞤲)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤮𞤤𞤢𞥄𞤱𞤮 (𞤆𞤢𞤤𞤢𞤱)',
         'Pacific/Pitcairn' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤭𞤼𞤳𞤭𞥅𞤪𞤲𞤵',
         'Pacific/Ponape' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤮𞤲𞤢𞥄𞤨𞤫 (𞤆𞤮𞤥𞤨𞤫𞥅)',
+        'Pacific/Pohnpei' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤮𞤲𞤢𞥄𞤨𞤫 (𞤆𞤮𞤥𞤨𞤫𞥅)',
         'Pacific/Port_Moresby' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤆𞤢𞤨𞤵𞤱𞤢 𞤘𞤭𞤲𞤫 𞤖𞤫𞤧𞤮 (𞤆𞤮𞤪𞤼𞤵-𞤃𞤮𞤪𞤫𞤧𞤦𞤭)',
         'Pacific/Rarotonga' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤵𞤪𞤭𞥅𞤶𞤫 𞤑𞤵𞥅𞤳 (𞤈𞤢𞤪𞤮𞤼𞤮𞤲𞤺𞤢)',
         'Pacific/Saipan' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤱𞤪𞤵𞤲𞥋𞤣𞤫 𞤕𞤮𞤥𞤮𞥅𞤪𞤮 (𞤅𞤢𞤴𞤨𞤢𞥄𞤲)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤅𞤵𞤪𞤭𞥅𞤶𞤫 𞤘𞤭𞤤𞤦𞤫𞤪𞤼𞤵 (𞤚𞤫𞥅𞤪𞤢𞤱𞤢)',
         'Pacific/Tongatapu' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤚𞤮𞤲𞤺𞤢 (𞤚𞤮𞤲𞤺𞤢𞤼𞤢𞥄𞤨𞤵)',
         'Pacific/Truk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤵𞥅𞤳𞤵',
+        'Pacific/Chuuk' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤵𞥅𞤳𞤵',
         'Pacific/Wake' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤅𞤵𞤪𞤭𞥅𞤪𞤫 𞤏𞤫𞥅𞤳𞤵',
         'Pacific/Wallis' => '𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤏𞤢𞤤𞥆𞤭𞥅𞤧 & 𞤊𞤵𞤼𞤵𞤲𞤢',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fi.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Itä-Afrikan aika (Addis Abeba)',
         'Africa/Algiers' => 'Keski-Euroopan aika (Alger)',
         'Africa/Asmera' => 'Itä-Afrikan aika (Asmara)',
+        'Africa/Asmara' => 'Itä-Afrikan aika (Asmara)',
         'Africa/Bamako' => 'Greenwichin normaaliaika (Bamako)',
         'Africa/Bangui' => 'Länsi-Afrikan aika (Bangui)',
         'Africa/Banjul' => 'Greenwichin normaaliaika (Banjul)',
@@ -60,7 +61,7 @@
         'America/Antigua' => 'Kanadan Atlantin aika (Antigua)',
         'America/Araguaina' => 'Brasilian aika (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentiinan aika (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentiinan aika (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentiinan aika (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentiinan aika (Salta)',
         'America/Argentina/San_Juan' => 'Argentiinan aika (San Juan)',
         'America/Argentina/San_Luis' => 'Argentiinan aika (San Luis)',
@@ -71,26 +72,31 @@
         'America/Bahia' => 'Brasilian aika (Bahia)',
         'America/Bahia_Banderas' => 'Yhdysvaltain keskinen aika (Bahía de Banderas)',
         'America/Barbados' => 'Kanadan Atlantin aika (Barbados)',
-        'America/Belem' => 'Brasilian aika (Belem)',
+        'America/Belem' => 'Brasilian aika (Belém)',
         'America/Belize' => 'Yhdysvaltain keskinen aika (Belize)',
         'America/Blanc-Sablon' => 'Kanadan Atlantin aika (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazonin aika (Boa Vista)',
         'America/Bogota' => 'Kolumbian aika (Bogotá)',
         'America/Boise' => 'Kalliovuorten aika (Boise)',
         'America/Buenos_Aires' => 'Argentiinan aika (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentiinan aika (Buenos Aires)',
         'America/Cambridge_Bay' => 'Kalliovuorten aika (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazonin aika (Campo Grande)',
         'America/Cancun' => 'Yhdysvaltain itäinen aika (Cancún)',
         'America/Caracas' => 'Venezuelan aika (Caracas)',
         'America/Catamarca' => 'Argentiinan aika (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentiinan aika (Catamarca)',
         'America/Cayenne' => 'Ranskan Guayanan aika (Cayenne)',
         'America/Cayman' => 'Yhdysvaltain itäinen aika (Cayman)',
         'America/Chicago' => 'Yhdysvaltain keskinen aika (Chicago)',
         'America/Chihuahua' => 'Yhdysvaltain keskinen aika (Chihuahua)',
         'America/Ciudad_Juarez' => 'Kalliovuorten aika (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Yhdysvaltain itäinen aika (Atikokan)',
+        'America/Atikokan' => 'Yhdysvaltain itäinen aika (Atikokan)',
         'America/Cordoba' => 'Argentiinan aika (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentiinan aika (Córdoba)',
         'America/Costa_Rica' => 'Yhdysvaltain keskinen aika (Costa Rica)',
+        'America/Coyhaique' => 'Chilen aika (Coyhaique)',
         'America/Creston' => 'Kalliovuorten aika (Creston)',
         'America/Cuiaba' => 'Amazonin aika (Cuiabá)',
         'America/Curacao' => 'Kanadan Atlantin aika (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Brasilian aika (Fortaleza)',
         'America/Glace_Bay' => 'Kanadan Atlantin aika (Glace Bay)',
         'America/Godthab' => 'aikavyöhyke: Grönlanti (Nuuk)',
+        'America/Nuuk' => 'aikavyöhyke: Grönlanti (Nuuk)',
         'America/Goose_Bay' => 'Kanadan Atlantin aika (Goose Bay)',
         'America/Grand_Turk' => 'Yhdysvaltain itäinen aika (Grand Turk)',
         'America/Grenada' => 'Kanadan Atlantin aika (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Yhdysvaltain itäinen aika (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Yhdysvaltain itäinen aika (Winamac, Indiana)',
         'America/Indianapolis' => 'Yhdysvaltain itäinen aika (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Yhdysvaltain itäinen aika (Indianapolis)',
         'America/Inuvik' => 'Kalliovuorten aika (Inuvik)',
         'America/Iqaluit' => 'Yhdysvaltain itäinen aika (Iqaluit)',
         'America/Jamaica' => 'Yhdysvaltain itäinen aika (Jamaika)',
         'America/Jujuy' => 'Argentiinan aika (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentiinan aika (Jujuy)',
         'America/Juneau' => 'Alaskan aika (Juneau)',
         'America/Kentucky/Monticello' => 'Yhdysvaltain itäinen aika (Monticello, Kentucky)',
         'America/Kralendijk' => 'Kanadan Atlantin aika (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Perun aika (Lima)',
         'America/Los_Angeles' => 'Yhdysvaltain Tyynenmeren aika (Los Angeles)',
         'America/Louisville' => 'Yhdysvaltain itäinen aika (Louisville)',
+        'America/Kentucky/Louisville' => 'Yhdysvaltain itäinen aika (Louisville)',
         'America/Lower_Princes' => 'Kanadan Atlantin aika (Lower Prince’s Quarter)',
         'America/Maceio' => 'Brasilian aika (Maceió)',
         'America/Managua' => 'Yhdysvaltain keskinen aika (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Yhdysvaltain keskinen aika (Matamoros)',
         'America/Mazatlan' => 'Meksikon Tyynenmeren aika (Mazatlán)',
         'America/Mendoza' => 'Argentiinan aika (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentiinan aika (Mendoza)',
         'America/Menominee' => 'Yhdysvaltain keskinen aika (Menominee)',
         'America/Merida' => 'Yhdysvaltain keskinen aika (Mérida)',
         'America/Metlakatla' => 'Alaskan aika (Metlakatla)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Uuden-Seelannin aika (McMurdo)',
         'Antarctica/Palmer' => 'Chilen aika (Palmer)',
         'Antarctica/Rothera' => 'Rotheran aika',
-        'Antarctica/Syowa' => 'Syowan aika',
+        'Antarctica/Syowa' => 'Syowan aika (Showa)',
         'Antarctica/Troll' => 'Greenwichin normaaliaika (Troll)',
         'Antarctica/Vostok' => 'Vostokin aika',
         'Arctic/Longyearbyen' => 'Keski-Euroopan aika (Longyearbyen)',
         'Asia/Aden' => 'Saudi-Arabian aika (Aden)',
         'Asia/Almaty' => 'Kazakstanin aika (Almaty)',
         'Asia/Amman' => 'Itä-Euroopan aika (Amman)',
-        'Asia/Anadyr' => 'Anadyrin aika',
+        'Asia/Anadyr' => 'Kamtšatkan aika (Anadyr)',
         'Asia/Aqtau' => 'Kazakstanin aika (Aqtaw)',
         'Asia/Aqtobe' => 'Kazakstanin aika (Aqtöbe)',
         'Asia/Ashgabat' => 'Turkmenistanin aika (Ašgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Saudi-Arabian aika (Bahrain)',
         'Asia/Baku' => 'Azerbaidžanin aika (Baku)',
         'Asia/Bangkok' => 'Indokiinan aika (Bangkok)',
-        'Asia/Barnaul' => 'aikavyöhyke: Venäjä (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarskin aika (Barnaul)',
         'Asia/Beirut' => 'Itä-Euroopan aika (Beirut)',
         'Asia/Bishkek' => 'Kirgisian aika (Biškek)',
         'Asia/Brunei' => 'Brunein aika',
         'Asia/Calcutta' => 'Intian aika (Kalkutta)',
+        'Asia/Kolkata' => 'Intian aika (Kalkutta)',
         'Asia/Chita' => 'Jakutskin aika (Tšita)',
         'Asia/Colombo' => 'Intian aika (Colombo)',
         'Asia/Damascus' => 'Itä-Euroopan aika (Damaskos)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Itä-Euroopan aika (Gaza)',
         'Asia/Hebron' => 'Itä-Euroopan aika (Hebron)',
         'Asia/Hong_Kong' => 'Hongkongin aika',
-        'Asia/Hovd' => 'Hovdin aika',
+        'Asia/Hovd' => 'Hovdin aika (Khovd)',
         'Asia/Irkutsk' => 'Irkutskin aika',
         'Asia/Jakarta' => 'Länsi-Indonesian aika (Jakarta)',
         'Asia/Jayapura' => 'Itä-Indonesian aika (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Kamtšatkan aika',
         'Asia/Karachi' => 'Pakistanin aika (Karachi)',
         'Asia/Katmandu' => 'Nepalin aika (Kathmandu)',
+        'Asia/Kathmandu' => 'Nepalin aika (Kathmandu)',
         'Asia/Khandyga' => 'Jakutskin aika (Handyga)',
         'Asia/Krasnoyarsk' => 'Krasnojarskin aika',
         'Asia/Kuala_Lumpur' => 'Malesian aika (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Arabiemiirikuntien normaaliaika (Masqat)',
         'Asia/Nicosia' => 'Itä-Euroopan aika (Nikosia)',
         'Asia/Novokuznetsk' => 'Krasnojarskin aika (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirskin aika',
+        'Asia/Novosibirsk' => 'Krasnojarskin aika (Novosibirsk)',
         'Asia/Omsk' => 'Omskin aika',
         'Asia/Oral' => 'Kazakstanin aika (Uralsk)',
         'Asia/Phnom_Penh' => 'Indokiinan aika (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazakstanin aika (Kostanai)',
         'Asia/Qyzylorda' => 'Kazakstanin aika (Qızılorda)',
         'Asia/Rangoon' => 'Myanmarin aika (Yangon)',
+        'Asia/Yangon' => 'Myanmarin aika (Yangon)',
         'Asia/Riyadh' => 'Saudi-Arabian aika (Riad)',
         'Asia/Saigon' => 'Indokiinan aika (Hồ Chí Minhin kaupunki)',
-        'Asia/Sakhalin' => 'Sahalinin aika',
+        'Asia/Ho_Chi_Minh' => 'Indokiinan aika (Hồ Chí Minhin kaupunki)',
+        'Asia/Sakhalin' => 'Magadanin aika (Sahalin)',
         'Asia/Samarkand' => 'Uzbekistanin aika (Samarkand)',
         'Asia/Seoul' => 'Korean aika (Soul)',
         'Asia/Shanghai' => 'Kiinan aika (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Iranin aika (Teheran)',
         'Asia/Thimphu' => 'Bhutanin aika (Thimphu)',
         'Asia/Tokyo' => 'Japanin aika (Tokio)',
-        'Asia/Tomsk' => 'aikavyöhyke: Venäjä (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarskin aika (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulan Batorin aika',
         'Asia/Urumqi' => 'aikavyöhyke: Kiina (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostokin aika (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Länsi-Euroopan aika (Kanariansaaret)',
         'Atlantic/Cape_Verde' => 'Kap Verden aika',
         'Atlantic/Faeroe' => 'Länsi-Euroopan aika (Färsaaret)',
+        'Atlantic/Faroe' => 'Länsi-Euroopan aika (Färsaaret)',
         'Atlantic/Madeira' => 'Länsi-Euroopan aika (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwichin normaaliaika (Reykjavík)',
         'Atlantic/South_Georgia' => 'Etelä-Georgian aika',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'UTC-yleisaika',
         'Europe/Amsterdam' => 'Keski-Euroopan aika (Amsterdam)',
         'Europe/Andorra' => 'Keski-Euroopan aika (Andorra)',
-        'Europe/Astrakhan' => 'Moskovan aika (Astrahan)',
+        'Europe/Astrakhan' => 'Samaran aika (Astrahan)',
         'Europe/Athens' => 'Itä-Euroopan aika (Ateena)',
         'Europe/Belgrade' => 'Keski-Euroopan aika (Belgrad)',
         'Europe/Berlin' => 'Keski-Euroopan aika (Berliini)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Greenwichin normaaliaika (Guernsey)',
         'Europe/Helsinki' => 'Itä-Euroopan aika (Helsinki)',
         'Europe/Isle_of_Man' => 'Greenwichin normaaliaika (Mansaari)',
-        'Europe/Istanbul' => 'aikavyöhyke: Turkki (Istanbul)',
+        'Europe/Istanbul' => 'Turkin aika (Istanbul)',
         'Europe/Jersey' => 'Greenwichin normaaliaika (Jersey)',
         'Europe/Kaliningrad' => 'Itä-Euroopan aika (Kaliningrad)',
         'Europe/Kiev' => 'Itä-Euroopan aika (Kiova)',
-        'Europe/Kirov' => 'aikavyöhyke: Venäjä (Kirov)',
+        'Europe/Kyiv' => 'Itä-Euroopan aika (Kiova)',
+        'Europe/Kirov' => 'Moskovan aika (Kirov)',
         'Europe/Lisbon' => 'Länsi-Euroopan aika (Lissabon)',
         'Europe/Ljubljana' => 'Keski-Euroopan aika (Ljubljana)',
         'Europe/London' => 'Greenwichin normaaliaika (Lontoo)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samaran aika',
         'Europe/San_Marino' => 'Keski-Euroopan aika (San Marino)',
         'Europe/Sarajevo' => 'Keski-Euroopan aika (Sarajevo)',
-        'Europe/Saratov' => 'Moskovan aika (Saratov)',
+        'Europe/Saratov' => 'Samaran aika (Saratov)',
         'Europe/Simferopol' => 'Moskovan aika (Simferopol)',
         'Europe/Skopje' => 'Keski-Euroopan aika (Skopje)',
         'Europe/Sofia' => 'Itä-Euroopan aika (Sofia)',
         'Europe/Stockholm' => 'Keski-Euroopan aika (Tukholma)',
         'Europe/Tallinn' => 'Itä-Euroopan aika (Tallinna)',
         'Europe/Tirane' => 'Keski-Euroopan aika (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskovan aika (Uljanovsk)',
+        'Europe/Ulyanovsk' => 'Samaran aika (Uljanovsk)',
         'Europe/Vaduz' => 'Keski-Euroopan aika (Vaduz)',
         'Europe/Vatican' => 'Keski-Euroopan aika (Vatikaani)',
         'Europe/Vienna' => 'Keski-Euroopan aika (Wien)',
         'Europe/Vilnius' => 'Itä-Euroopan aika (Vilna)',
-        'Europe/Volgograd' => 'Volgogradin aika',
+        'Europe/Volgograd' => 'Moskovan aika (Volgograd)',
         'Europe/Warsaw' => 'Keski-Euroopan aika (Varsova)',
         'Europe/Zagreb' => 'Keski-Euroopan aika (Zagreb)',
         'Europe/Zurich' => 'Keski-Euroopan aika (Zürich)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Chathamin aika (Chathamsaaret)',
         'Pacific/Easter' => 'Pääsiäissaaren aika (Pääsiäissaari)',
         'Pacific/Efate' => 'Vanuatun aika (Efate)',
-        'Pacific/Enderbury' => 'Phoenixsaarten aika (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenixsaarten aika (Abariringa)',
+        'Pacific/Kanton' => 'Phoenixsaarten aika (Abariringa)',
         'Pacific/Fakaofo' => 'Tokelaun aika (Fakaofo)',
         'Pacific/Fiji' => 'Fidžin aika',
         'Pacific/Funafuti' => 'Tuvalun aika (Funafuti)',
-        'Pacific/Galapagos' => 'Galápagossaarten aika (Galapagos)',
+        'Pacific/Galapagos' => 'Galápagossaarten aika',
         'Pacific/Gambier' => 'Gambiersaarten aika (Gambiersaaret)',
         'Pacific/Guadalcanal' => 'Salomonsaarten aika (Guadalcanal)',
         'Pacific/Guam' => 'Tšamorron aika (Guam)',
-        'Pacific/Honolulu' => 'Havaijin-Aleuttien aika (Honolulu)',
+        'Pacific/Honolulu' => 'Havaijin-Aleuttien normaaliaika (Honolulu)',
         'Pacific/Kiritimati' => 'Linesaarten aika (Kiritimati)',
         'Pacific/Kosrae' => 'Kosraen aika',
         'Pacific/Kwajalein' => 'Marshallinsaarten aika (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Palaun aika',
         'Pacific/Pitcairn' => 'Pitcairnin aika',
         'Pacific/Ponape' => 'Pohnpein aika',
+        'Pacific/Pohnpei' => 'Pohnpein aika',
         'Pacific/Port_Moresby' => 'Papua-Uuden-Guinean aika (Port Moresby)',
         'Pacific/Rarotonga' => 'Cookinsaarten aika (Rarotonga)',
         'Pacific/Saipan' => 'Tšamorron aika (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Gilbertsaarten aika (Tarawa)',
         'Pacific/Tongatapu' => 'Tongan aika (Tongatapu)',
         'Pacific/Truk' => 'Chuukin aika',
+        'Pacific/Chuuk' => 'Chuukin aika',
         'Pacific/Wake' => 'Waken aika',
-        'Pacific/Wallis' => 'Wallisin ja Futunan aika',
+        'Pacific/Wallis' => 'Wallisin ja Futunan aika (Wallis & Futuna)',
     ],
     'Meta' => [
         'GmtFormat' => 'UTC%s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fo.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Eysturafrika tíð (Addis Ababa)',
         'Africa/Algiers' => 'Miðevropa tíð (Algiers)',
         'Africa/Asmera' => 'Eysturafrika tíð (Asmara)',
+        'Africa/Asmara' => 'Eysturafrika tíð (Asmara)',
         'Africa/Bamako' => 'Greenwich Mean tíð (Bamako)',
         'Africa/Bangui' => 'Vesturafrika tíð (Bangui)',
         'Africa/Banjul' => 'Greenwich Mean tíð (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Eysturafrika tíð (Dar es Salaam)',
         'Africa/Djibouti' => 'Eysturafrika tíð (Djibuti)',
         'Africa/Douala' => 'Vesturafrika tíð (Douala)',
-        'Africa/El_Aaiun' => 'Vesturevropa tíð (El Aaiun)',
+        'Africa/El_Aaiun' => 'Vesturevropa tíð (El Aaiún)',
         'Africa/Freetown' => 'Greenwich Mean tíð (Freetown)',
         'Africa/Gaborone' => 'Miðafrika tíð (Gaborone)',
         'Africa/Harare' => 'Miðafrika tíð (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Vesturafrika tíð (Kinshasa)',
         'Africa/Lagos' => 'Vesturafrika tíð (Lagos)',
         'Africa/Libreville' => 'Vesturafrika tíð (Libreville)',
-        'Africa/Lome' => 'Greenwich Mean tíð (Lome)',
+        'Africa/Lome' => 'Greenwich Mean tíð (Lomé)',
         'Africa/Luanda' => 'Vesturafrika tíð (Luanda)',
         'Africa/Lubumbashi' => 'Miðafrika tíð (Lubumbashi)',
         'Africa/Lusaka' => 'Miðafrika tíð (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Eysturafrika tíð (Mogadishu)',
         'Africa/Monrovia' => 'Greenwich Mean tíð (Monrovia)',
         'Africa/Nairobi' => 'Eysturafrika tíð (Nairobi)',
-        'Africa/Ndjamena' => 'Vesturafrika tíð (Ndjamena)',
+        'Africa/Ndjamena' => 'Vesturafrika tíð (N’Djamena)',
         'Africa/Niamey' => 'Vesturafrika tíð (Niamey)',
         'Africa/Nouakchott' => 'Greenwich Mean tíð (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich Mean tíð (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Alaska tíð (Anchorage)',
         'America/Anguilla' => 'Atlantic tíð (Anguilla)',
         'America/Antigua' => 'Atlantic tíð (Antigua)',
-        'America/Araguaina' => 'Brasilia tíð (Araguaina)',
+        'America/Araguaina' => 'Brasilia tíð (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentina tíð (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentina tíð (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentina tíð (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentina tíð (Salta)',
         'America/Argentina/San_Juan' => 'Argentina tíð (San Juan)',
         'America/Argentina/San_Luis' => 'Argentina tíð (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentina tíð (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentina tíð (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentina tíð (Ushuaia)',
         'America/Aruba' => 'Atlantic tíð (Aruba)',
         'America/Asuncion' => 'Paraguai tíð (Asunción)',
         'America/Bahia' => 'Brasilia tíð (Bahia)',
         'America/Bahia_Banderas' => 'Central tíð (Bahia Banderas)',
         'America/Barbados' => 'Atlantic tíð (Barbados)',
-        'America/Belem' => 'Brasilia tíð (Belem)',
+        'America/Belem' => 'Brasilia tíð (Belém)',
         'America/Belize' => 'Central tíð (Belis)',
         'America/Blanc-Sablon' => 'Atlantic tíð (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amasona tíð (Boa Vista)',
-        'America/Bogota' => 'Kolombia tíð (Bogota)',
+        'America/Bogota' => 'Kolombia tíð (Bogotá)',
         'America/Boise' => 'Mountain tíð (Boise)',
         'America/Buenos_Aires' => 'Argentina tíð (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentina tíð (Buenos Aires)',
         'America/Cambridge_Bay' => 'Mountain tíð (Cambridge Bay)',
         'America/Campo_Grande' => 'Amasona tíð (Campo Grande)',
         'America/Cancun' => 'Eastern tíð (Cancun)',
         'America/Caracas' => 'Venesuela tíð (Caracas)',
         'America/Catamarca' => 'Argentina tíð (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentina tíð (Catamarca)',
         'America/Cayenne' => 'Franska Gujana tíð (Cayenne)',
         'America/Cayman' => 'Eastern tíð (Cayman)',
         'America/Chicago' => 'Central tíð (Chicago)',
         'America/Chihuahua' => 'Central tíð (Chihuahua)',
         'America/Ciudad_Juarez' => 'Mountain tíð (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Eastern tíð (Atikokan)',
-        'America/Cordoba' => 'Argentina tíð (Cordoba)',
+        'America/Atikokan' => 'Eastern tíð (Atikokan)',
+        'America/Cordoba' => 'Argentina tíð (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentina tíð (Córdoba)',
         'America/Costa_Rica' => 'Central tíð (Kosta Rika)',
+        'America/Coyhaique' => 'Kili tíð (Coyhaique)',
         'America/Creston' => 'Mountain tíð (Creston)',
-        'America/Cuiaba' => 'Amasona tíð (Cuiaba)',
+        'America/Cuiaba' => 'Amasona tíð (Cuiabá)',
         'America/Curacao' => 'Atlantic tíð (Curaçao)',
         'America/Danmarkshavn' => 'Greenwich Mean tíð (Danmarkshavn)',
         'America/Dawson' => 'Yukon tíð (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Eastern tíð (Detroit)',
         'America/Dominica' => 'Atlantic tíð (Dominica)',
         'America/Edmonton' => 'Mountain tíð (Edmonton)',
-        'America/Eirunepe' => 'Brasil tíð (Eirunepe)',
+        'America/Eirunepe' => 'Brasil tíð (Eirunepé)',
         'America/El_Salvador' => 'Central tíð (El Salvador)',
         'America/Fort_Nelson' => 'Mountain tíð (Fort Nelson)',
         'America/Fortaleza' => 'Brasilia tíð (Fortaleza)',
         'America/Glace_Bay' => 'Atlantic tíð (Glace Bay)',
         'America/Godthab' => 'Grønland tíð (Nuuk)',
+        'America/Nuuk' => 'Grønland tíð (Nuuk)',
         'America/Goose_Bay' => 'Atlantic tíð (Goose Bay)',
         'America/Grand_Turk' => 'Eastern tíð (Grand Turk)',
         'America/Grenada' => 'Atlantic tíð (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Eastern tíð (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Eastern tíð (Winamac, Indiana)',
         'America/Indianapolis' => 'Eastern tíð (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Eastern tíð (Indianapolis)',
         'America/Inuvik' => 'Mountain tíð (Inuvik)',
         'America/Iqaluit' => 'Eastern tíð (Iqaluit)',
         'America/Jamaica' => 'Eastern tíð (Jamaika)',
         'America/Jujuy' => 'Argentina tíð (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentina tíð (Jujuy)',
         'America/Juneau' => 'Alaska tíð (Juneau)',
         'America/Kentucky/Monticello' => 'Eastern tíð (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantic tíð (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Peru tíð (Lima)',
         'America/Los_Angeles' => 'Pacific tíð (Los Angeles)',
         'America/Louisville' => 'Eastern tíð (Louisville)',
+        'America/Kentucky/Louisville' => 'Eastern tíð (Louisville)',
         'America/Lower_Princes' => 'Atlantic tíð (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasilia tíð (Maceio)',
+        'America/Maceio' => 'Brasilia tíð (Maceió)',
         'America/Managua' => 'Central tíð (Managua)',
         'America/Manaus' => 'Amasona tíð (Manaus)',
         'America/Marigot' => 'Atlantic tíð (Marigot)',
         'America/Martinique' => 'Atlantic tíð (Martinique)',
         'America/Matamoros' => 'Central tíð (Matamoros)',
-        'America/Mazatlan' => 'Mexican Pacific tíð (Mazatlan)',
+        'America/Mazatlan' => 'Mexican Pacific tíð (Mazatlán)',
         'America/Mendoza' => 'Argentina tíð (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentina tíð (Mendoza)',
         'America/Menominee' => 'Central tíð (Menominee)',
         'America/Merida' => 'Central tíð (Merida)',
         'America/Metlakatla' => 'Alaska tíð (Metlakatla)',
-        'America/Mexico_City' => 'Central tíð (Mexico City)',
-        'America/Miquelon' => 'St. Pierre & Miquelon tíð',
+        'America/Mexico_City' => 'Central tíð (Ciudad de México)',
+        'America/Miquelon' => 'St. Pierre & Miquelon tíð (Saint-Pierre)',
         'America/Moncton' => 'Atlantic tíð (Moncton)',
         'America/Monterrey' => 'Central tíð (Monterrey)',
         'America/Montevideo' => 'Uruguai tíð (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Central tíð (Regina)',
         'America/Resolute' => 'Central tíð (Resolute)',
         'America/Rio_Branco' => 'Brasil tíð (Rio Branco)',
-        'America/Santarem' => 'Brasilia tíð (Santarem)',
+        'America/Santarem' => 'Brasilia tíð (Santarém)',
         'America/Santiago' => 'Kili tíð (Santiago)',
         'America/Santo_Domingo' => 'Atlantic tíð (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasilia tíð (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brasilia tíð (São Paulo)',
         'America/Scoresbysund' => 'Grønland tíð (Ittoqqortoormiit)',
         'America/Sitka' => 'Alaska tíð (Sitka)',
         'America/St_Barthelemy' => 'Atlantic tíð (St. Barthélemy)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Nýsæland tíð (McMurdo)',
         'Antarctica/Palmer' => 'Kili tíð (Palmer)',
         'Antarctica/Rothera' => 'Rothera tíð',
-        'Antarctica/Syowa' => 'Syowa tíð',
+        'Antarctica/Syowa' => 'Syowa tíð (Showa)',
         'Antarctica/Troll' => 'Greenwich Mean tíð (Troll)',
         'Antarctica/Vostok' => 'Vostok tíð',
         'Arctic/Longyearbyen' => 'Miðevropa tíð (Longyearbyen)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabisk tíð (Barein)',
         'Asia/Baku' => 'Aserbadjan tíð (Baku)',
         'Asia/Bangkok' => 'Indokina tíð (Bangkok)',
-        'Asia/Barnaul' => 'Russland tíð (Barnaul)',
+        'Asia/Barnaul' => 'Krasnoyarsk tíð (Barnaul)',
         'Asia/Beirut' => 'Eysturevropa tíð (Beirut)',
         'Asia/Bishkek' => 'Kirgisia tíð (Bishkek)',
         'Asia/Brunei' => 'Brunei Darussalam tíð',
         'Asia/Calcutta' => 'India tíð (Kolkata)',
+        'Asia/Kolkata' => 'India tíð (Kolkata)',
         'Asia/Chita' => 'Yakutsk tíð (Chita)',
         'Asia/Colombo' => 'India tíð (Colombo)',
         'Asia/Damascus' => 'Eysturevropa tíð (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Eysturevropa tíð (Gasa)',
         'Asia/Hebron' => 'Eysturevropa tíð (Hebron)',
         'Asia/Hong_Kong' => 'Hong Kong tíð',
-        'Asia/Hovd' => 'Hovd tíð',
+        'Asia/Hovd' => 'Hovd tíð (Khovd)',
         'Asia/Irkutsk' => 'Irkutsk tíð',
         'Asia/Jakarta' => 'Vestur Indonesia tíð (Jakarta)',
         'Asia/Jayapura' => 'Eystur Indonesia tíð (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Russland tíð (Kamchatka)',
         'Asia/Karachi' => 'Pakistan tíð (Karachi)',
         'Asia/Katmandu' => 'Nepal tíð (Kathmandu)',
+        'Asia/Kathmandu' => 'Nepal tíð (Kathmandu)',
         'Asia/Khandyga' => 'Yakutsk tíð (Khandyga)',
         'Asia/Krasnoyarsk' => 'Krasnoyarsk tíð',
         'Asia/Kuala_Lumpur' => 'Malaisia tíð (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Gulf vanlig tíð (Muscat)',
         'Asia/Nicosia' => 'Eysturevropa tíð (Nicosia)',
         'Asia/Novokuznetsk' => 'Krasnoyarsk tíð (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk tíð',
+        'Asia/Novosibirsk' => 'Krasnoyarsk tíð (Novosibirsk)',
         'Asia/Omsk' => 'Omsk tíð',
         'Asia/Oral' => 'Kasakstan tíð (Oral)',
         'Asia/Phnom_Penh' => 'Indokina tíð (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kasakstan tíð (Kostanay)',
         'Asia/Qyzylorda' => 'Kasakstan tíð (Qyzylorda)',
         'Asia/Rangoon' => 'Myanmar (Burma) tíð (Rangoon)',
+        'Asia/Yangon' => 'Myanmar (Burma) tíð (Rangoon)',
         'Asia/Riyadh' => 'Arabisk tíð (Riyadh)',
         'Asia/Saigon' => 'Indokina tíð (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Sakhalin tíð',
+        'Asia/Ho_Chi_Minh' => 'Indokina tíð (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Magadan tíð (Sakhalin)',
         'Asia/Samarkand' => 'Usbekistan tíð (Samarkand)',
         'Asia/Seoul' => 'Korea tíð (Seoul)',
         'Asia/Shanghai' => 'Kina tíð (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Iran tíð (Teheran)',
         'Asia/Thimphu' => 'Butan tíð (Thimphu)',
         'Asia/Tokyo' => 'Japan tíð (Tokyo)',
-        'Asia/Tomsk' => 'Russland tíð (Tomsk)',
+        'Asia/Tomsk' => 'Krasnoyarsk tíð (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulan Bator tíð (Ulaanbaatar)',
-        'Asia/Urumqi' => 'Kina tíð (Urumqi)',
+        'Asia/Urumqi' => 'Kina tíð (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostok tíð (Ust-Nera)',
         'Asia/Vientiane' => 'Indokina tíð (Vientiane)',
         'Asia/Vladivostok' => 'Vladivostok tíð',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Armenia tíð (Yerevan)',
         'Atlantic/Azores' => 'Azorurnar tíð',
         'Atlantic/Bermuda' => 'Atlantic tíð (Bermuda)',
-        'Atlantic/Canary' => 'Vesturevropa tíð (Canary)',
+        'Atlantic/Canary' => 'Vesturevropa tíð (Canarias)',
         'Atlantic/Cape_Verde' => 'Grønhøvdaoyggjar tíð',
         'Atlantic/Faeroe' => 'Vesturevropa tíð (Føroyar)',
+        'Atlantic/Faroe' => 'Vesturevropa tíð (Føroyar)',
         'Atlantic/Madeira' => 'Vesturevropa tíð (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich Mean tíð (Reykjavík)',
         'Atlantic/South_Georgia' => 'Suðurgeorgiaoyggjar tíð',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Samskipað heimstíð',
         'Europe/Amsterdam' => 'Miðevropa tíð (Amsterdam)',
         'Europe/Andorra' => 'Miðevropa tíð (Andorra)',
-        'Europe/Astrakhan' => 'Moskva tíð (Astrakhan)',
+        'Europe/Astrakhan' => 'Russland tíð (Astrakhan)',
         'Europe/Athens' => 'Eysturevropa tíð (Aten)',
         'Europe/Belgrade' => 'Miðevropa tíð (Beograd)',
         'Europe/Berlin' => 'Miðevropa tíð (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Miðevropa tíð (Bruxelles)',
         'Europe/Bucharest' => 'Eysturevropa tíð (Bukarest)',
         'Europe/Budapest' => 'Miðevropa tíð (Budapest)',
-        'Europe/Busingen' => 'Miðevropa tíð (Busingen)',
-        'Europe/Chisinau' => 'Eysturevropa tíð (Chisinau)',
+        'Europe/Busingen' => 'Miðevropa tíð (Büsingen)',
+        'Europe/Chisinau' => 'Eysturevropa tíð (Chișinău)',
         'Europe/Copenhagen' => 'Miðevropa tíð (Keypmannahavn)',
         'Europe/Dublin' => 'Greenwich Mean tíð (Dublin)',
         'Europe/Gibraltar' => 'Miðevropa tíð (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwich Mean tíð (Jersey)',
         'Europe/Kaliningrad' => 'Eysturevropa tíð (Kaliningrad)',
         'Europe/Kiev' => 'Eysturevropa tíð (Kiev)',
-        'Europe/Kirov' => 'Russland tíð (Kirov)',
+        'Europe/Kyiv' => 'Eysturevropa tíð (Kiev)',
+        'Europe/Kirov' => 'Moskva tíð (Kirov)',
         'Europe/Lisbon' => 'Vesturevropa tíð (Lissabon)',
         'Europe/Ljubljana' => 'Miðevropa tíð (Ljubljana)',
         'Europe/London' => 'Greenwich Mean tíð (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Russland tíð (Samara)',
         'Europe/San_Marino' => 'Miðevropa tíð (San Marino)',
         'Europe/Sarajevo' => 'Miðevropa tíð (Sarajevo)',
-        'Europe/Saratov' => 'Moskva tíð (Saratov)',
+        'Europe/Saratov' => 'Russland tíð (Saratov)',
         'Europe/Simferopol' => 'Moskva tíð (Simferopol)',
         'Europe/Skopje' => 'Miðevropa tíð (Skopje)',
         'Europe/Sofia' => 'Eysturevropa tíð (Sofia)',
         'Europe/Stockholm' => 'Miðevropa tíð (Stokkhólm)',
         'Europe/Tallinn' => 'Eysturevropa tíð (Tallinn)',
-        'Europe/Tirane' => 'Miðevropa tíð (Tirane)',
-        'Europe/Ulyanovsk' => 'Moskva tíð (Ulyanovsk)',
+        'Europe/Tirane' => 'Miðevropa tíð (Tirana)',
+        'Europe/Ulyanovsk' => 'Russland tíð (Ulyanovsk)',
         'Europe/Vaduz' => 'Miðevropa tíð (Vaduz)',
         'Europe/Vatican' => 'Miðevropa tíð (Vatikanið)',
         'Europe/Vienna' => 'Miðevropa tíð (Wien)',
         'Europe/Vilnius' => 'Eysturevropa tíð (Vilnius)',
-        'Europe/Volgograd' => 'Volgograd tíð',
+        'Europe/Volgograd' => 'Moskva tíð (Volgograd)',
         'Europe/Warsaw' => 'Miðevropa tíð (Varsjava)',
         'Europe/Zagreb' => 'Miðevropa tíð (Zagreb)',
         'Europe/Zurich' => 'Miðevropa tíð (Zürich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Indiahav tíð (Chagos)',
         'Indian/Christmas' => 'Jólaoyggj tíð (Christmas)',
         'Indian/Cocos' => 'Kokosoyggjar tíð (Cocos)',
-        'Indian/Comoro' => 'Eysturafrika tíð (Comoro)',
+        'Indian/Comoro' => 'Eysturafrika tíð (Comores)',
         'Indian/Kerguelen' => 'Fronsku sunnaru landaøki og Antarktis tíð (Kerguelen)',
-        'Indian/Mahe' => 'Seyskelloyggjar tíð (Mahe)',
+        'Indian/Mahe' => 'Seyskelloyggjar tíð (Mahé)',
         'Indian/Maldives' => 'Maldivoyggjar tíð',
         'Indian/Mauritius' => 'Móritius tíð',
         'Indian/Mayotte' => 'Eysturafrika tíð (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Chatham tíð',
         'Pacific/Easter' => 'Páskaoyggin tíð (Easter)',
         'Pacific/Efate' => 'Vanuatu tíð (Efate)',
-        'Pacific/Enderbury' => 'Phoenixoyggjar tíð (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenixoyggjar tíð (Canton)',
+        'Pacific/Kanton' => 'Phoenixoyggjar tíð (Canton)',
         'Pacific/Fakaofo' => 'Tokelau tíð (Fakaofo)',
         'Pacific/Fiji' => 'Fiji tíð',
         'Pacific/Funafuti' => 'Tuvalu tíð (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos tíð',
+        'Pacific/Galapagos' => 'Galapagos tíð (Galápagos)',
         'Pacific/Gambier' => 'Gambier tíð',
         'Pacific/Guadalcanal' => 'Salomonoyggjar tíð (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro vanlig tíð (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleutian tíð (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleutian vanlig tíð (Honolulu)',
         'Pacific/Kiritimati' => 'Lineoyggjar tíð (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae tíð',
         'Pacific/Kwajalein' => 'Marshalloyggjar tíð (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Nauru tíð',
         'Pacific/Niue' => 'Niue tíð',
         'Pacific/Norfolk' => 'Norfolkoyggj tíð',
-        'Pacific/Noumea' => 'Nýkaledónia tíð (Noumea)',
+        'Pacific/Noumea' => 'Nýkaledónia tíð (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoa tíð (Pago Pago)',
         'Pacific/Palau' => 'Palau tíð',
         'Pacific/Pitcairn' => 'Pitcairnoyggjar tíð',
         'Pacific/Ponape' => 'Ponape tíð (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponape tíð (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papua Nýguinea tíð (Port Moresby)',
         'Pacific/Rarotonga' => 'Cooksoyggjar tíð (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro vanlig tíð (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Gilbertoyggjar tíð (Tarawa)',
         'Pacific/Tongatapu' => 'Tonga tíð (Tongatapu)',
         'Pacific/Truk' => 'Chuuk tíð',
+        'Pacific/Chuuk' => 'Chuuk tíð',
         'Pacific/Wake' => 'Wakeoyggj tíð',
-        'Pacific/Wallis' => 'Wallis- og Futunaoyggjar tíð',
+        'Pacific/Wallis' => 'Wallis- og Futunaoyggjar tíð (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fr_CA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fr_CA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fr_CA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fr_CA.php	2026-05-20 10:56:49.000000000 +0200
@@ -5,6 +5,7 @@
         'Africa/Addis_Ababa' => 'heure d’Afrique orientale (Addis-Abeba)',
         'Africa/Algiers' => 'heure de l’Europe centrale (Alger)',
         'Africa/Asmera' => 'heure d’Afrique orientale (Asmara)',
+        'Africa/Asmara' => 'heure d’Afrique orientale (Asmara)',
         'Africa/Blantyre' => 'heure d’Afrique centrale (Blantyre)',
         'Africa/Bujumbura' => 'heure d’Afrique centrale (Bujumbura)',
         'Africa/Cairo' => 'heure de l’Europe de l’Est (Le Caire)',
@@ -41,6 +42,7 @@
         'America/Chicago' => 'heure du Centre (Chicago)',
         'America/Chihuahua' => 'heure du Centre (Chihuahua)',
         'America/Coral_Harbour' => 'heure de l’Est (Atikokan)',
+        'America/Atikokan' => 'heure de l’Est (Atikokan)',
         'America/Costa_Rica' => 'heure du Centre (Costa Rica)',
         'America/Detroit' => 'heure de l’Est (Détroit)',
         'America/El_Salvador' => 'heure du Centre (El Salvador)',
@@ -54,11 +56,13 @@
         'America/Indiana/Vincennes' => 'heure de l’Est (Vincennes [Indiana])',
         'America/Indiana/Winamac' => 'heure de l’Est (Winamac [Indiana])',
         'America/Indianapolis' => 'heure de l’Est (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'heure de l’Est (Indianapolis)',
         'America/Iqaluit' => 'heure de l’Est (Iqaluit)',
         'America/Jamaica' => 'heure de l’Est (Jamaïque)',
         'America/Kentucky/Monticello' => 'heure de l’Est (Monticello [Kentucky])',
         'America/Los_Angeles' => 'heure du Pacifique (Los Angeles)',
         'America/Louisville' => 'heure de l’Est (Louisville)',
+        'America/Kentucky/Louisville' => 'heure de l’Est (Louisville)',
         'America/Managua' => 'heure du Centre (Managua)',
         'America/Matamoros' => 'heure du Centre (Matamoros)',
         'America/Menominee' => 'heure du Centre (Menominee)',
@@ -101,6 +105,7 @@
         'Asia/Thimphu' => 'heure du Bhoutan (Thimphou)',
         'Atlantic/Canary' => 'heure de l’Europe de l’Ouest (îles Canaries)',
         'Atlantic/Faeroe' => 'heure de l’Europe de l’Ouest (îles Féroé)',
+        'Atlantic/Faroe' => 'heure de l’Europe de l’Ouest (îles Féroé)',
         'Atlantic/Madeira' => 'heure de l’Europe de l’Ouest (Madère)',
         'Europe/Amsterdam' => 'heure de l’Europe centrale (Amsterdam)',
         'Europe/Andorra' => 'heure de l’Europe centrale (Andorre)',
@@ -112,13 +117,14 @@
         'Europe/Bucharest' => 'heure de l’Europe de l’Est (Bucarest)',
         'Europe/Budapest' => 'heure de l’Europe centrale (Budapest)',
         'Europe/Busingen' => 'heure de l’Europe centrale (Büsingen)',
-        'Europe/Chisinau' => 'heure de l’Europe de l’Est (Chisinau)',
+        'Europe/Chisinau' => 'heure de l’Europe de l’Est (Chișinău)',
         'Europe/Copenhagen' => 'heure de l’Europe centrale (Copenhague)',
         'Europe/Gibraltar' => 'heure de l’Europe centrale (Gibraltar)',
         'Europe/Helsinki' => 'heure de l’Europe de l’Est (Helsinki)',
         'Europe/Isle_of_Man' => 'heure moyenne de Greenwich (île de Man)',
         'Europe/Kaliningrad' => 'heure de l’Europe de l’Est (Kaliningrad)',
         'Europe/Kiev' => 'heure de l’Europe de l’Est (Kiev)',
+        'Europe/Kyiv' => 'heure de l’Europe de l’Est (Kiev)',
         'Europe/Lisbon' => 'heure de l’Europe de l’Ouest (Lisbonne)',
         'Europe/Ljubljana' => 'heure de l’Europe centrale (Ljubljana)',
         'Europe/Luxembourg' => 'heure de l’Europe centrale (Luxembourg)',
@@ -151,7 +157,7 @@
         'Indian/Comoro' => 'heure d’Afrique orientale (Comores)',
         'Indian/Mayotte' => 'heure d’Afrique orientale (Mayotte)',
         'Indian/Reunion' => 'heure de la Réunion',
-        'Pacific/Honolulu' => 'heure d’Hawaï-Aléoutiennes (Honolulu)',
+        'Pacific/Honolulu' => 'heure normale d’Hawaï-Aléoutiennes (Honolulu)',
         'Pacific/Niue' => 'heure de Nioué (Niue)',
         'Pacific/Palau' => 'heure des Palaos (Palau)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fr.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'heure normale d’Afrique de l’Est (Addis-Abeba)',
         'Africa/Algiers' => 'heure d’Europe centrale (Alger)',
         'Africa/Asmera' => 'heure normale d’Afrique de l’Est (Asmara)',
+        'Africa/Asmara' => 'heure normale d’Afrique de l’Est (Asmara)',
         'Africa/Bamako' => 'heure moyenne de Greenwich (Bamako)',
         'Africa/Bangui' => 'heure d’Afrique de l’Ouest (Bangui)',
         'Africa/Banjul' => 'heure moyenne de Greenwich (Banjul)',
@@ -75,22 +76,27 @@
         'America/Belize' => 'heure du centre nord-américain (Belize)',
         'America/Blanc-Sablon' => 'heure de l’Atlantique (Blanc-Sablon)',
         'America/Boa_Vista' => 'heure de l’Amazonie (Boa Vista)',
-        'America/Bogota' => 'heure de Colombie (Bogota)',
+        'America/Bogota' => 'heure de Colombie (Bogotá)',
         'America/Boise' => 'heure des Rocheuses (Boise)',
         'America/Buenos_Aires' => 'heure de l’Argentine (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'heure de l’Argentine (Buenos Aires)',
         'America/Cambridge_Bay' => 'heure des Rocheuses (Cambridge Bay)',
         'America/Campo_Grande' => 'heure de l’Amazonie (Campo Grande)',
         'America/Cancun' => 'heure de l’Est nord-américain (Cancún)',
         'America/Caracas' => 'heure du Venezuela (Caracas)',
         'America/Catamarca' => 'heure de l’Argentine (Catamarca)',
+        'America/Argentina/Catamarca' => 'heure de l’Argentine (Catamarca)',
         'America/Cayenne' => 'heure de la Guyane française (Cayenne)',
         'America/Cayman' => 'heure de l’Est nord-américain (Caïmans)',
         'America/Chicago' => 'heure du centre nord-américain (Chicago)',
         'America/Chihuahua' => 'heure du centre nord-américain (Chihuahua)',
         'America/Ciudad_Juarez' => 'heure des Rocheuses (Ciudad Juárez)',
         'America/Coral_Harbour' => 'heure de l’Est nord-américain (Atikokan)',
+        'America/Atikokan' => 'heure de l’Est nord-américain (Atikokan)',
         'America/Cordoba' => 'heure de l’Argentine (Córdoba)',
+        'America/Argentina/Cordoba' => 'heure de l’Argentine (Córdoba)',
         'America/Costa_Rica' => 'heure du centre nord-américain (Costa Rica)',
+        'America/Coyhaique' => 'heure du Chili (Coyhaique)',
         'America/Creston' => 'heure des Rocheuses (Creston)',
         'America/Cuiaba' => 'heure de l’Amazonie (Cuiabá)',
         'America/Curacao' => 'heure de l’Atlantique (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'heure de Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'heure de l’Atlantique (Glace Bay)',
         'America/Godthab' => 'heure : Groenland (Nuuk)',
+        'America/Nuuk' => 'heure : Groenland (Nuuk)',
         'America/Goose_Bay' => 'heure de l’Atlantique (Goose Bay)',
         'America/Grand_Turk' => 'heure de l’Est nord-américain (Grand Turk)',
         'America/Grenada' => 'heure de l’Atlantique (Grenade)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'heure de l’Est nord-américain (Vincennes [Indiana])',
         'America/Indiana/Winamac' => 'heure de l’Est nord-américain (Winamac [Indiana])',
         'America/Indianapolis' => 'heure de l’Est nord-américain (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'heure de l’Est nord-américain (Indianapolis)',
         'America/Inuvik' => 'heure des Rocheuses (Inuvik)',
         'America/Iqaluit' => 'heure de l’Est nord-américain (Iqaluit)',
         'America/Jamaica' => 'heure de l’Est nord-américain (Jamaïque)',
         'America/Jujuy' => 'heure de l’Argentine (Jujuy)',
+        'America/Argentina/Jujuy' => 'heure de l’Argentine (Jujuy)',
         'America/Juneau' => 'heure de l’Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'heure de l’Est nord-américain (Monticello [Kentucky])',
         'America/Kralendijk' => 'heure de l’Atlantique (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'heure du Pérou (Lima)',
         'America/Los_Angeles' => 'heure du Pacifique nord-américain (Los Angeles)',
         'America/Louisville' => 'heure de l’Est nord-américain (Louisville)',
+        'America/Kentucky/Louisville' => 'heure de l’Est nord-américain (Louisville)',
         'America/Lower_Princes' => 'heure de l’Atlantique (Lower Prince’s Quarter)',
         'America/Maceio' => 'heure de Brasilia (Maceió)',
         'America/Managua' => 'heure du centre nord-américain (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'heure du centre nord-américain (Matamoros)',
         'America/Mazatlan' => 'heure du Pacifique mexicain (Mazatlán)',
         'America/Mendoza' => 'heure de l’Argentine (Mendoza)',
+        'America/Argentina/Mendoza' => 'heure de l’Argentine (Mendoza)',
         'America/Menominee' => 'heure du centre nord-américain (Menominee)',
         'America/Merida' => 'heure du centre nord-américain (Mérida)',
         'America/Metlakatla' => 'heure de l’Alaska (Metlakatla)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'heure de l’Arabie (Aden)',
         'Asia/Almaty' => 'heure du Kazakhstan (Alma Ata)',
         'Asia/Amman' => 'heure d’Europe de l’Est (Amman)',
-        'Asia/Anadyr' => 'heure d’Anadyr',
+        'Asia/Anadyr' => 'heure de Petropavlovsk-Kamchatski (Anadyr)',
         'Asia/Aqtau' => 'heure du Kazakhstan (Aktaou)',
         'Asia/Aqtobe' => 'heure du Kazakhstan (Aktioubinsk)',
         'Asia/Ashgabat' => 'heure du Turkménistan (Achgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'heure de l’Arabie (Bahreïn)',
         'Asia/Baku' => 'heure de l’Azerbaïdjan (Bakou)',
         'Asia/Bangkok' => 'heure d’Indochine (Bangkok)',
-        'Asia/Barnaul' => 'heure : Russie (Barnaul)',
+        'Asia/Barnaul' => 'heure de Krasnoïarsk (Barnaul)',
         'Asia/Beirut' => 'heure d’Europe de l’Est (Beyrouth)',
         'Asia/Bishkek' => 'heure du Kirghizistan (Bichkek)',
         'Asia/Brunei' => 'heure du Brunei',
         'Asia/Calcutta' => 'heure de l’Inde (Calcutta)',
+        'Asia/Kolkata' => 'heure de l’Inde (Calcutta)',
         'Asia/Chita' => 'heure de Iakoutsk (Tchita)',
         'Asia/Colombo' => 'heure de l’Inde (Colombo)',
         'Asia/Damascus' => 'heure d’Europe de l’Est (Damas)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'heure d’Europe de l’Est (Gaza)',
         'Asia/Hebron' => 'heure d’Europe de l’Est (Hébron)',
         'Asia/Hong_Kong' => 'heure de Hong Kong',
-        'Asia/Hovd' => 'heure de Hovd',
+        'Asia/Hovd' => 'heure de Hovd (Khovd)',
         'Asia/Irkutsk' => 'heure d’Irkoutsk',
         'Asia/Jakarta' => 'heure de l’Ouest indonésien (Jakarta)',
         'Asia/Jayapura' => 'heure de l’Est indonésien (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'heure de Petropavlovsk-Kamchatski (Kamtchatka)',
         'Asia/Karachi' => 'heure du Pakistan (Karachi)',
         'Asia/Katmandu' => 'heure du Népal (Katmandou)',
+        'Asia/Kathmandu' => 'heure du Népal (Katmandou)',
         'Asia/Khandyga' => 'heure de Iakoutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'heure de Krasnoïarsk',
         'Asia/Kuala_Lumpur' => 'heure de la Malaisie (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'heure du Golfe (Mascate)',
         'Asia/Nicosia' => 'heure d’Europe de l’Est (Nicosie)',
         'Asia/Novokuznetsk' => 'heure de Krasnoïarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'heure de Novossibirsk',
+        'Asia/Novosibirsk' => 'heure de Krasnoïarsk (Novossibirsk)',
         'Asia/Omsk' => 'heure de Omsk',
         'Asia/Oral' => 'heure du Kazakhstan (Ouralsk)',
         'Asia/Phnom_Penh' => 'heure d’Indochine (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'heure du Kazakhstan (Kostanaï)',
         'Asia/Qyzylorda' => 'heure du Kazakhstan (Kzyl Orda)',
         'Asia/Rangoon' => 'heure du Myanmar (Rangoun)',
+        'Asia/Yangon' => 'heure du Myanmar (Rangoun)',
         'Asia/Riyadh' => 'heure de l’Arabie (Riyad)',
         'Asia/Saigon' => 'heure d’Indochine (Hô-Chi-Minh-Ville)',
-        'Asia/Sakhalin' => 'heure de Sakhaline',
+        'Asia/Ho_Chi_Minh' => 'heure d’Indochine (Hô-Chi-Minh-Ville)',
+        'Asia/Sakhalin' => 'heure de Magadan (Sakhaline)',
         'Asia/Samarkand' => 'heure de l’Ouzbékistan (Samarcande)',
         'Asia/Seoul' => 'heure de la Corée (Séoul)',
         'Asia/Shanghai' => 'heure de la Chine (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'heure de l’Iran (Téhéran)',
         'Asia/Thimphu' => 'heure du Bhoutan (Thimphu)',
         'Asia/Tokyo' => 'heure du Japon (Tokyo)',
-        'Asia/Tomsk' => 'heure : Russie (Tomsk)',
+        'Asia/Tomsk' => 'heure de Krasnoïarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'heure d’Oulan-Bator',
         'Asia/Urumqi' => 'heure : Chine (Ürümqi)',
         'Asia/Ust-Nera' => 'heure de Vladivostok (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'heure d’Europe de l’Ouest (Îles Canaries)',
         'Atlantic/Cape_Verde' => 'heure du Cap-Vert',
         'Atlantic/Faeroe' => 'heure d’Europe de l’Ouest (Îles Féroé)',
+        'Atlantic/Faroe' => 'heure d’Europe de l’Ouest (Îles Féroé)',
         'Atlantic/Madeira' => 'heure d’Europe de l’Ouest (Madère)',
         'Atlantic/Reykjavik' => 'heure moyenne de Greenwich (Reykjavik)',
         'Atlantic/South_Georgia' => 'heure de Géorgie du Sud',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'temps universel coordonné',
         'Europe/Amsterdam' => 'heure d’Europe centrale (Amsterdam)',
         'Europe/Andorra' => 'heure d’Europe centrale (Andorre)',
-        'Europe/Astrakhan' => 'heure de Moscou (Astrakhan)',
+        'Europe/Astrakhan' => 'heure de Samara (Astrakhan)',
         'Europe/Athens' => 'heure d’Europe de l’Est (Athènes)',
         'Europe/Belgrade' => 'heure d’Europe centrale (Belgrade)',
         'Europe/Berlin' => 'heure d’Europe centrale (Berlin)',
@@ -325,18 +341,19 @@
         'Europe/Bucharest' => 'heure d’Europe de l’Est (Bucarest)',
         'Europe/Budapest' => 'heure d’Europe centrale (Budapest)',
         'Europe/Busingen' => 'heure d’Europe centrale (Büsingen)',
-        'Europe/Chisinau' => 'heure d’Europe de l’Est (Chisinau)',
+        'Europe/Chisinau' => 'heure d’Europe de l’Est (Chișinău)',
         'Europe/Copenhagen' => 'heure d’Europe centrale (Copenhague)',
         'Europe/Dublin' => 'heure moyenne de Greenwich (Dublin)',
         'Europe/Gibraltar' => 'heure d’Europe centrale (Gibraltar)',
         'Europe/Guernsey' => 'heure moyenne de Greenwich (Guernesey)',
         'Europe/Helsinki' => 'heure d’Europe de l’Est (Helsinki)',
         'Europe/Isle_of_Man' => 'heure moyenne de Greenwich (Île de Man)',
-        'Europe/Istanbul' => 'heure : Turquie (Istanbul)',
+        'Europe/Istanbul' => 'heure de Turquie (Istanbul)',
         'Europe/Jersey' => 'heure moyenne de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'heure d’Europe de l’Est (Kaliningrad)',
         'Europe/Kiev' => 'heure d’Europe de l’Est (Kiev)',
-        'Europe/Kirov' => 'heure : Russie (Kirov)',
+        'Europe/Kyiv' => 'heure d’Europe de l’Est (Kiev)',
+        'Europe/Kirov' => 'heure de Moscou (Kirov)',
         'Europe/Lisbon' => 'heure d’Europe de l’Ouest (Lisbonne)',
         'Europe/Ljubljana' => 'heure d’Europe centrale (Ljubljana)',
         'Europe/London' => 'heure moyenne de Greenwich (Londres)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'heure de Samara',
         'Europe/San_Marino' => 'heure d’Europe centrale (Saint-Marin)',
         'Europe/Sarajevo' => 'heure d’Europe centrale (Sarajevo)',
-        'Europe/Saratov' => 'heure de Moscou (Saratov)',
+        'Europe/Saratov' => 'heure de Samara (Saratov)',
         'Europe/Simferopol' => 'heure de Moscou (Simferopol)',
         'Europe/Skopje' => 'heure d’Europe centrale (Skopje)',
         'Europe/Sofia' => 'heure d’Europe de l’Est (Sofia)',
         'Europe/Stockholm' => 'heure d’Europe centrale (Stockholm)',
         'Europe/Tallinn' => 'heure d’Europe de l’Est (Tallinn)',
         'Europe/Tirane' => 'heure d’Europe centrale (Tirana)',
-        'Europe/Ulyanovsk' => 'heure de Moscou (Oulianovsk)',
+        'Europe/Ulyanovsk' => 'heure de Samara (Oulianovsk)',
         'Europe/Vaduz' => 'heure d’Europe centrale (Vaduz)',
         'Europe/Vatican' => 'heure d’Europe centrale (Le Vatican)',
         'Europe/Vienna' => 'heure d’Europe centrale (Vienne)',
         'Europe/Vilnius' => 'heure d’Europe de l’Est (Vilnius)',
-        'Europe/Volgograd' => 'heure de Volgograd',
+        'Europe/Volgograd' => 'heure de Moscou (Volgograd)',
         'Europe/Warsaw' => 'heure d’Europe centrale (Varsovie)',
         'Europe/Zagreb' => 'heure d’Europe centrale (Zagreb)',
         'Europe/Zurich' => 'heure d’Europe centrale (Zurich)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'heure des îles Chatham',
         'Pacific/Easter' => 'heure de l’île de Pâques',
         'Pacific/Efate' => 'heure du Vanuatu (Éfaté)',
-        'Pacific/Enderbury' => 'heure des îles Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'heure des îles Phoenix (Canton)',
+        'Pacific/Kanton' => 'heure des îles Phoenix (Canton)',
         'Pacific/Fakaofo' => 'heure de Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'heure des îles Fidji',
         'Pacific/Funafuti' => 'heure des Tuvalu (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'heure des îles Gambier',
         'Pacific/Guadalcanal' => 'heure des îles Salomon (Guadalcanal)',
         'Pacific/Guam' => 'heure des Chamorro (Guam)',
-        'Pacific/Honolulu' => 'heure d’Hawaï - Aléoutiennes (Honolulu)',
+        'Pacific/Honolulu' => 'heure normale d’Hawaï - Aléoutiennes (Honolulu)',
         'Pacific/Kiritimati' => 'heure des îles de la Ligne (Kiritimati)',
         'Pacific/Kosrae' => 'heure de Kosrae',
         'Pacific/Kwajalein' => 'heure des îles Marshall (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'heure des Palaos',
         'Pacific/Pitcairn' => 'heure des îles Pitcairn',
         'Pacific/Ponape' => 'heure de l’île de Pohnpei',
+        'Pacific/Pohnpei' => 'heure de l’île de Pohnpei',
         'Pacific/Port_Moresby' => 'heure de la Papouasie-Nouvelle-Guinée (Port Moresby)',
         'Pacific/Rarotonga' => 'heure des îles Cook (Rarotonga)',
         'Pacific/Saipan' => 'heure des Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'heure des îles Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'heure des Tonga (Tongatapu)',
         'Pacific/Truk' => 'heure de Chuuk',
+        'Pacific/Chuuk' => 'heure de Chuuk',
         'Pacific/Wake' => 'heure de l’île Wake',
-        'Pacific/Wallis' => 'heure de Wallis-et-Futuna',
+        'Pacific/Wallis' => 'heure de Wallis-et-Futuna (Wallis & Futuna)',
     ],
     'Meta' => [
         'GmtFormat' => 'UTC%s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/fy.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'East-Afrikaanske tiid (Addis Abeba)',
         'Africa/Algiers' => 'Midden-Europeeske tiid (Algiers)',
         'Africa/Asmera' => 'East-Afrikaanske tiid (Asmara)',
+        'Africa/Asmara' => 'East-Afrikaanske tiid (Asmara)',
         'Africa/Bamako' => 'Greenwich Mean Time (Bamako)',
         'Africa/Bangui' => 'West-Afrikaanske tiid (Bangui)',
         'Africa/Banjul' => 'Greenwich Mean Time (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'East-Afrikaanske tiid (Dar es Salaam)',
         'Africa/Djibouti' => 'East-Afrikaanske tiid (Djibouti)',
         'Africa/Douala' => 'West-Afrikaanske tiid (Douala)',
-        'Africa/El_Aaiun' => 'West-Europeeske tiid (El Aaiun)',
+        'Africa/El_Aaiun' => 'West-Europeeske tiid (El Aaiún)',
         'Africa/Freetown' => 'Greenwich Mean Time (Freetown)',
         'Africa/Gaborone' => 'Sintraal-Afrikaanske tiid (Gaborone)',
         'Africa/Harare' => 'Sintraal-Afrikaanske tiid (Harare)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'East-Afrikaanske tiid (Mogadishu)',
         'Africa/Monrovia' => 'Greenwich Mean Time (Monrovia)',
         'Africa/Nairobi' => 'East-Afrikaanske tiid (Nairobi)',
-        'Africa/Ndjamena' => 'West-Afrikaanske tiid (Ndjamena)',
+        'Africa/Ndjamena' => 'West-Afrikaanske tiid (N’Djamena)',
         'Africa/Niamey' => 'West-Afrikaanske tiid (Niamey)',
         'Africa/Nouakchott' => 'Greenwich Mean Time (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich Mean Time (Ouagadougou)',
@@ -58,7 +59,7 @@
         'America/Anchorage' => 'Alaska-tiid (Anchorage)',
         'America/Anguilla' => 'Atlantic-tiid (Anguilla)',
         'America/Antigua' => 'Atlantic-tiid (Antigua)',
-        'America/Araguaina' => 'Brazyljaanske tiid (Araguaina)',
+        'America/Araguaina' => 'Brazyljaanske tiid (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentynske tiid (La Rioja)',
         'America/Argentina/Rio_Gallegos' => 'Argentynske tiid (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentynske tiid (Salta)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Kolombiaanske tiid (Bogotá)',
         'America/Boise' => 'Mountain-tiid (Boise)',
         'America/Buenos_Aires' => 'Argentynske tiid (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentynske tiid (Buenos Aires)',
         'America/Cambridge_Bay' => 'Mountain-tiid (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazone-tiid (Campo Grande)',
         'America/Cancun' => 'Eastern-tiid (Cancún)',
         'America/Caracas' => 'Fenezolaanske tiid (Caracas)',
         'America/Catamarca' => 'Argentynske tiid (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentynske tiid (Catamarca)',
         'America/Cayenne' => 'Frâns-Guyaanske tiid (Cayenne)',
         'America/Cayman' => 'Eastern-tiid (Cayman)',
         'America/Chicago' => 'Central-tiid (Chicago)',
         'America/Chihuahua' => 'Central-tiid (Chihuahua)',
         'America/Ciudad_Juarez' => 'Mountain-tiid (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Eastern-tiid (Atikokan)',
+        'America/Atikokan' => 'Eastern-tiid (Atikokan)',
         'America/Cordoba' => 'Argentynske tiid (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentynske tiid (Córdoba)',
         'America/Costa_Rica' => 'Central-tiid (Costa Rica)',
+        'America/Coyhaique' => 'Sileenske tiid (Coyhaique)',
         'America/Creston' => 'Mountain-tiid (Creston)',
         'America/Cuiaba' => 'Amazone-tiid (Cuiabá)',
         'America/Curacao' => 'Atlantic-tiid (Curaçao)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Eastern-tiid (Detroit)',
         'America/Dominica' => 'Atlantic-tiid (Dominica)',
         'America/Edmonton' => 'Mountain-tiid (Edmonton)',
-        'America/Eirunepe' => 'Acre-tiid (Eirunepe)',
+        'America/Eirunepe' => 'Acre-tiid (Eirunepé)',
         'America/El_Salvador' => 'Central-tiid (Salvador)',
         'America/Fort_Nelson' => 'Mountain-tiid (Fort Nelson)',
         'America/Fortaleza' => 'Brazyljaanske tiid (Fortaleza)',
         'America/Glace_Bay' => 'Atlantic-tiid (Glace Bay)',
         'America/Godthab' => 'Grienlân-tiid (Nuuk)',
+        'America/Nuuk' => 'Grienlân-tiid (Nuuk)',
         'America/Goose_Bay' => 'Atlantic-tiid (Goose Bay)',
         'America/Grand_Turk' => 'Eastern-tiid (Grand Turk)',
         'America/Grenada' => 'Atlantic-tiid (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Eastern-tiid (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Eastern-tiid (Winamac, Indiana)',
         'America/Indianapolis' => 'Eastern-tiid (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Eastern-tiid (Indianapolis)',
         'America/Inuvik' => 'Mountain-tiid (Inuvik)',
         'America/Iqaluit' => 'Eastern-tiid (Iqaluit)',
         'America/Jamaica' => 'Eastern-tiid (Jamaica)',
         'America/Jujuy' => 'Argentynske tiid (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentynske tiid (Jujuy)',
         'America/Juneau' => 'Alaska-tiid (Juneau)',
         'America/Kentucky/Monticello' => 'Eastern-tiid (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantic-tiid (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Peruaanske tiid (Lima)',
         'America/Los_Angeles' => 'Pasifik-tiid (Los Angeles)',
         'America/Louisville' => 'Eastern-tiid (Louisville)',
+        'America/Kentucky/Louisville' => 'Eastern-tiid (Louisville)',
         'America/Lower_Princes' => 'Atlantic-tiid (Beneden Prinsen Kwartier)',
         'America/Maceio' => 'Brazyljaanske tiid (Maceió)',
         'America/Managua' => 'Central-tiid (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Central-tiid (Matamoros)',
         'America/Mazatlan' => 'Mexico-tiid (Mazatlán)',
         'America/Mendoza' => 'Argentynske tiid (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentynske tiid (Mendoza)',
         'America/Menominee' => 'Central-tiid (Menominee)',
         'America/Merida' => 'Central-tiid (Mérida)',
         'America/Metlakatla' => 'Alaska-tiid (Metlakatla)',
@@ -175,7 +186,7 @@
         'America/Regina' => 'Central-tiid (Regina)',
         'America/Resolute' => 'Central-tiid (Resolute)',
         'America/Rio_Branco' => 'Acre-tiid (Rio Branco)',
-        'America/Santarem' => 'Brazyljaanske tiid (Santarem)',
+        'America/Santarem' => 'Brazyljaanske tiid (Santarém)',
         'America/Santiago' => 'Sileenske tiid (Santiago)',
         'America/Santo_Domingo' => 'Atlantic-tiid (Santo Domingo)',
         'America/Sao_Paulo' => 'Brazyljaanske tiid (São Paulo)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Nij-Seelânske tiid (McMurdo)',
         'Antarctica/Palmer' => 'Sileenske tiid (Palmer)',
         'Antarctica/Rothera' => 'Rothera tiid',
-        'Antarctica/Syowa' => 'Syowa tiid',
+        'Antarctica/Syowa' => 'Syowa tiid (Showa)',
         'Antarctica/Troll' => 'Greenwich Mean Time (Troll)',
         'Antarctica/Vostok' => 'Vostok tiid',
         'Arctic/Longyearbyen' => 'Midden-Europeeske tiid (Longyearbyen)',
         'Asia/Aden' => 'Arabyske tiid (Aden)',
         'Asia/Almaty' => 'Kazachstan-tiid (Alma-Ata)',
         'Asia/Amman' => 'East-Europeeske tiid (Amman)',
-        'Asia/Anadyr' => 'Anadyr-tiid',
+        'Asia/Anadyr' => 'Petropavlovsk-Kamtsjatski-tiid (Anadyr)',
         'Asia/Aqtau' => 'Kazachstan-tiid (Aqtau)',
         'Asia/Aqtobe' => 'Kazachstan-tiid (Aqtöbe)',
         'Asia/Ashgabat' => 'Turkmeense tiid (Asjchabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabyske tiid (Bahrein)',
         'Asia/Baku' => 'Azerbeidzjaanske tiid (Bakoe)',
         'Asia/Bangkok' => 'Yndochinese tiid (Bangkok)',
-        'Asia/Barnaul' => 'Ruslân-tiid (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarsk-tiid (Barnaul)',
         'Asia/Beirut' => 'East-Europeeske tiid (Beiroet)',
         'Asia/Bishkek' => 'Kirgizyske tiid (Bisjkek)',
         'Asia/Brunei' => 'Bruneise tiid',
         'Asia/Calcutta' => 'Yndiaaske tiid (Calcutta)',
+        'Asia/Kolkata' => 'Yndiaaske tiid (Calcutta)',
         'Asia/Chita' => 'Jakoetsk-tiid (Chita)',
         'Asia/Colombo' => 'Yndiaaske tiid (Colombo)',
         'Asia/Damascus' => 'East-Europeeske tiid (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'East-Europeeske tiid (Gaza)',
         'Asia/Hebron' => 'East-Europeeske tiid (Hebron)',
         'Asia/Hong_Kong' => 'Hongkongse tiid',
-        'Asia/Hovd' => 'Hovd tiid',
+        'Asia/Hovd' => 'Hovd tiid (Khovd)',
         'Asia/Irkutsk' => 'Irkoetsk-tiid',
         'Asia/Jakarta' => 'West-Yndonezyske tiid (Jakarta)',
         'Asia/Jayapura' => 'East-Yndonezyske tiid (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-Kamtsjatski-tiid (Kamtsjatka)',
         'Asia/Karachi' => 'Pakistaanske tiid (Karachi)',
         'Asia/Katmandu' => 'Nepalese tiid (Kathmandu)',
+        'Asia/Kathmandu' => 'Nepalese tiid (Kathmandu)',
         'Asia/Khandyga' => 'Jakoetsk-tiid (Khandyga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsk-tiid',
         'Asia/Kuala_Lumpur' => 'Maleisyske tiid (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Golf standerttiid (Muscat)',
         'Asia/Nicosia' => 'East-Europeeske tiid (Nicosia)',
         'Asia/Novokuznetsk' => 'Krasnojarsk-tiid (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk-tiid',
+        'Asia/Novosibirsk' => 'Krasnojarsk-tiid (Novosibirsk)',
         'Asia/Omsk' => 'Omsk-tiid',
         'Asia/Oral' => 'Kazachstan-tiid (Oral)',
         'Asia/Phnom_Penh' => 'Yndochinese tiid (Phnom-Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazachstan-tiid (Qostanay)',
         'Asia/Qyzylorda' => 'Kazachstan-tiid (Qyzylorda)',
         'Asia/Rangoon' => 'Myanmarese tiid (Yangon)',
+        'Asia/Yangon' => 'Myanmarese tiid (Yangon)',
         'Asia/Riyadh' => 'Arabyske tiid (Riyad)',
         'Asia/Saigon' => 'Yndochinese tiid (Ho Chi Minhstad)',
-        'Asia/Sakhalin' => 'Sachalin-tiid',
+        'Asia/Ho_Chi_Minh' => 'Yndochinese tiid (Ho Chi Minhstad)',
+        'Asia/Sakhalin' => 'Magadan-tiid (Sachalin)',
         'Asia/Samarkand' => 'Oezbeekse tiid (Samarkand)',
         'Asia/Seoul' => 'Koreaanske tiid (Seoul)',
         'Asia/Shanghai' => 'Sineeske tiid (Sjanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Iraanske tiid (Teheran)',
         'Asia/Thimphu' => 'Bhutaanske tiid (Thimphu)',
         'Asia/Tokyo' => 'Japanske tiid (Tokio)',
-        'Asia/Tomsk' => 'Ruslân-tiid (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarsk-tiid (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulaanbaatar tiid',
-        'Asia/Urumqi' => 'Sina-tiid (Urumqi)',
+        'Asia/Urumqi' => 'Sina-tiid (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostok-tiid (Ust-Nera)',
         'Asia/Vientiane' => 'Yndochinese tiid (Vientiane)',
         'Asia/Vladivostok' => 'Vladivostok-tiid',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'West-Europeeske tiid (Kanaryske Eilannen)',
         'Atlantic/Cape_Verde' => 'Kaapverdyske tiid (Kaapverdië)',
         'Atlantic/Faeroe' => 'West-Europeeske tiid (Faeröer)',
+        'Atlantic/Faroe' => 'West-Europeeske tiid (Faeröer)',
         'Atlantic/Madeira' => 'West-Europeeske tiid (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich Mean Time (Reykjavik)',
         'Atlantic/South_Georgia' => 'Sûd-Georgyske tiid (Sûd-Georgia)',
@@ -315,7 +331,7 @@
         'Etc/GMT' => 'Greenwich Mean Time',
         'Europe/Amsterdam' => 'Midden-Europeeske tiid (Amsterdam)',
         'Europe/Andorra' => 'Midden-Europeeske tiid (Andorra)',
-        'Europe/Astrakhan' => 'Moskou-tiid (Astrakhan)',
+        'Europe/Astrakhan' => 'Samara-tiid (Astrakhan)',
         'Europe/Athens' => 'East-Europeeske tiid (Athene)',
         'Europe/Belgrade' => 'Midden-Europeeske tiid (Belgrado)',
         'Europe/Berlin' => 'Midden-Europeeske tiid (Berlyn)',
@@ -323,8 +339,8 @@
         'Europe/Brussels' => 'Midden-Europeeske tiid (Brussel)',
         'Europe/Bucharest' => 'East-Europeeske tiid (Boekarest)',
         'Europe/Budapest' => 'Midden-Europeeske tiid (Boedapest)',
-        'Europe/Busingen' => 'Midden-Europeeske tiid (Busingen)',
-        'Europe/Chisinau' => 'East-Europeeske tiid (Chisinau)',
+        'Europe/Busingen' => 'Midden-Europeeske tiid (Büsingen)',
+        'Europe/Chisinau' => 'East-Europeeske tiid (Chișinău)',
         'Europe/Copenhagen' => 'Midden-Europeeske tiid (Kopenhagen)',
         'Europe/Dublin' => 'Greenwich Mean Time (Dublin)',
         'Europe/Gibraltar' => 'Midden-Europeeske tiid (Gibraltar)',
@@ -335,7 +351,8 @@
         'Europe/Jersey' => 'Greenwich Mean Time (Jersey)',
         'Europe/Kaliningrad' => 'East-Europeeske tiid (Kaliningrad)',
         'Europe/Kiev' => 'East-Europeeske tiid (Kyiv)',
-        'Europe/Kirov' => 'Ruslân-tiid (Kirov)',
+        'Europe/Kyiv' => 'East-Europeeske tiid (Kyiv)',
+        'Europe/Kirov' => 'Moskou-tiid (Kirov)',
         'Europe/Lisbon' => 'West-Europeeske tiid (Lissabon)',
         'Europe/Ljubljana' => 'Midden-Europeeske tiid (Ljubljana)',
         'Europe/London' => 'Greenwich Mean Time (Londen)',
@@ -355,19 +372,19 @@
         'Europe/Samara' => 'Samara-tiid',
         'Europe/San_Marino' => 'Midden-Europeeske tiid (San Marino)',
         'Europe/Sarajevo' => 'Midden-Europeeske tiid (Sarajevo)',
-        'Europe/Saratov' => 'Moskou-tiid (Saratov)',
+        'Europe/Saratov' => 'Samara-tiid (Saratov)',
         'Europe/Simferopol' => 'Moskou-tiid (Simferopol)',
         'Europe/Skopje' => 'Midden-Europeeske tiid (Skopje)',
         'Europe/Sofia' => 'East-Europeeske tiid (Sofia)',
         'Europe/Stockholm' => 'Midden-Europeeske tiid (Stockholm)',
         'Europe/Tallinn' => 'East-Europeeske tiid (Tallinn)',
         'Europe/Tirane' => 'Midden-Europeeske tiid (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskou-tiid (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Samara-tiid (Ulyanovsk)',
         'Europe/Vaduz' => 'Midden-Europeeske tiid (Vaduz)',
         'Europe/Vatican' => 'Midden-Europeeske tiid (Fatikaanstêd)',
         'Europe/Vienna' => 'Midden-Europeeske tiid (Wenen)',
         'Europe/Vilnius' => 'East-Europeeske tiid (Vilnius)',
-        'Europe/Volgograd' => 'Wolgograd-tiid',
+        'Europe/Volgograd' => 'Moskou-tiid (Wolgograd)',
         'Europe/Warsaw' => 'Midden-Europeeske tiid (Warschau)',
         'Europe/Zagreb' => 'Midden-Europeeske tiid (Zagreb)',
         'Europe/Zurich' => 'Midden-Europeeske tiid (Zürich)',
@@ -375,7 +392,7 @@
         'Indian/Chagos' => 'Yndyske Oceaan-tiid (Chagosarchipel)',
         'Indian/Christmas' => 'Krysteilânske tiid',
         'Indian/Cocos' => 'Kokoseilânske tiid (Cocoseilannen)',
-        'Indian/Comoro' => 'East-Afrikaanske tiid (Comoro)',
+        'Indian/Comoro' => 'East-Afrikaanske tiid (Comores)',
         'Indian/Kerguelen' => 'Frânske Súdlike en Antarctyske tiid (Kerguelen)',
         'Indian/Mahe' => 'Seychelse tiid (Mahé)',
         'Indian/Maldives' => 'Maldivyske tiid (Maldiven)',
@@ -389,6 +406,7 @@
         'Pacific/Easter' => 'Peaskeeilânske tiid',
         'Pacific/Efate' => 'Vanuatuaanske tiid (Efate)',
         'Pacific/Enderbury' => 'Phoenixeilânske tiid (Enderbury-eilân)',
+        'Pacific/Kanton' => 'Phoenixeilânske tiid (Enderbury-eilân)',
         'Pacific/Fakaofo' => 'Tokelau-eilânske tiid (Fakaofo)',
         'Pacific/Fiji' => 'Fijyske tiid (Fiji)',
         'Pacific/Funafuti' => 'Tuvaluaanske tiid (Funafuti)',
@@ -396,7 +414,7 @@
         'Pacific/Gambier' => 'Gambiereilânske tiid (Gambiereilannen)',
         'Pacific/Guadalcanal' => 'Salomonseilânske tiid (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro-tiid (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleoetyske tiid (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleoetyske standerttiid (Honolulu)',
         'Pacific/Kiritimati' => 'Line-eilânske tiid (Kiritimati)',
         'Pacific/Kosrae' => 'Kosraese tiid',
         'Pacific/Kwajalein' => 'Marshalleilânske tiid (Kwajalein)',
@@ -411,6 +429,7 @@
         'Pacific/Palau' => 'Belause tiid (Palau)',
         'Pacific/Pitcairn' => 'Pitcairneillânske tiid',
         'Pacific/Ponape' => 'Pohnpei tiid',
+        'Pacific/Pohnpei' => 'Pohnpei tiid',
         'Pacific/Port_Moresby' => 'Papoea-Nij-Guineeske tiid (Port Moresby)',
         'Pacific/Rarotonga' => 'Cookeilânse tiid (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro-tiid (Saipan)',
@@ -418,8 +437,9 @@
         'Pacific/Tarawa' => 'Gilberteilânske tiid (Tarawa)',
         'Pacific/Tongatapu' => 'Tongaanske tiid (Tongatapu)',
         'Pacific/Truk' => 'Chuukse tiid',
+        'Pacific/Chuuk' => 'Chuukse tiid',
         'Pacific/Wake' => 'Wake-eilânske tiid',
-        'Pacific/Wallis' => 'Wallis en Futunase tiid',
+        'Pacific/Wallis' => 'Wallis en Futunase tiid (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ga.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ga.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ga.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ga.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Am Oirthear na hAfraice (Addis Ababa)',
         'Africa/Algiers' => 'Am Lár na hEorpa (Cathair na hAilgéire)',
         'Africa/Asmera' => 'Am Oirthear na hAfraice (Asmara)',
+        'Africa/Asmara' => 'Am Oirthear na hAfraice (Asmara)',
         'Africa/Bamako' => 'Meán-Am Greenwich (Bamako)',
         'Africa/Bangui' => 'Am Iarthar na hAfraice (Bangui)',
         'Africa/Banjul' => 'Meán-Am Greenwich (Banjul)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Am Oirthear na hAfraice (Mogaidisiú)',
         'Africa/Monrovia' => 'Meán-Am Greenwich (Monrovia)',
         'Africa/Nairobi' => 'Am Oirthear na hAfraice (Nairobi)',
-        'Africa/Ndjamena' => 'Am Iarthar na hAfraice (Ndjamena)',
+        'Africa/Ndjamena' => 'Am Iarthar na hAfraice (N’Djamena)',
         'Africa/Niamey' => 'Am Iarthar na hAfraice (Niamey)',
         'Africa/Nouakchott' => 'Meán-Am Greenwich (Nuacsat)',
         'Africa/Ouagadougou' => 'Meán-Am Greenwich (Ouagadougou)',
@@ -58,18 +59,18 @@
         'America/Anchorage' => 'Am Alasca (Anchorage)',
         'America/Anguilla' => 'Am an Atlantaigh (Angaíle)',
         'America/Antigua' => 'Am an Atlantaigh (Antigua)',
-        'America/Araguaina' => 'Am Bhrasília (Araguaina)',
+        'America/Araguaina' => 'Am Bhrasília (Araguaína)',
         'America/Argentina/La_Rioja' => 'Am na hAirgintíne (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Am na hAirgintíne (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Am na hAirgintíne (Río Gallegos)',
         'America/Argentina/Salta' => 'Am na hAirgintíne (Salta)',
         'America/Argentina/San_Juan' => 'Am na hAirgintíne (San Juan)',
         'America/Argentina/San_Luis' => 'Am na hAirgintíne (San Luis)',
-        'America/Argentina/Tucuman' => 'Am na hAirgintíne (Tucuman)',
+        'America/Argentina/Tucuman' => 'Am na hAirgintíne (Tucumán)',
         'America/Argentina/Ushuaia' => 'Am na hAirgintíne (Ushuaia)',
         'America/Aruba' => 'Am an Atlantaigh (Arúba)',
         'America/Asuncion' => 'Am Pharagua (Asunción)',
         'America/Bahia' => 'Am Bhrasília (Bahia)',
-        'America/Bahia_Banderas' => 'Am Lárnach Mheiriceá Thuaidh (Bahia Banderas)',
+        'America/Bahia_Banderas' => 'Am Lárnach Mheiriceá Thuaidh (Bahía de Banderas)',
         'America/Barbados' => 'Am an Atlantaigh (Barbadós)',
         'America/Belem' => 'Am Bhrasília (Belém)',
         'America/Belize' => 'Am Lárnach Mheiriceá Thuaidh (an Bheilís)',
@@ -78,21 +79,26 @@
         'America/Bogota' => 'Am na Colóime (Bogatá)',
         'America/Boise' => 'Am Sléibhte Mheiriceá Thuaidh (Boise)',
         'America/Buenos_Aires' => 'Am na hAirgintíne (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Am na hAirgintíne (Buenos Aires)',
         'America/Cambridge_Bay' => 'Am Sléibhte Mheiriceá Thuaidh (Cambridge Bay)',
         'America/Campo_Grande' => 'Am na hAmasóine (Campo Grande)',
         'America/Cancun' => 'Am Oirthearach Mheiriceá Thuaidh (Cancún)',
         'America/Caracas' => 'Am Veiniséala (Caracas)',
         'America/Catamarca' => 'Am na hAirgintíne (Catamarca)',
+        'America/Argentina/Catamarca' => 'Am na hAirgintíne (Catamarca)',
         'America/Cayenne' => 'Am Ghuáin na Fraince (Cayenne)',
         'America/Cayman' => 'Am Oirthearach Mheiriceá Thuaidh (Cayman)',
         'America/Chicago' => 'Am Lárnach Mheiriceá Thuaidh (Chicago)',
         'America/Chihuahua' => 'Am Lárnach Mheiriceá Thuaidh (Chihuahua)',
         'America/Ciudad_Juarez' => 'Am Sléibhte Mheiriceá Thuaidh (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Am Oirthearach Mheiriceá Thuaidh (Atikokan)',
+        'America/Atikokan' => 'Am Oirthearach Mheiriceá Thuaidh (Atikokan)',
         'America/Cordoba' => 'Am na hAirgintíne (Córdoba)',
+        'America/Argentina/Cordoba' => 'Am na hAirgintíne (Córdoba)',
         'America/Costa_Rica' => 'Am Lárnach Mheiriceá Thuaidh (Cósta Ríce)',
+        'America/Coyhaique' => 'Am na Sile (Coyhaique)',
         'America/Creston' => 'Am Sléibhte Mheiriceá Thuaidh (Creston)',
-        'America/Cuiaba' => 'Am na hAmasóine (Cuiaba)',
+        'America/Cuiaba' => 'Am na hAmasóine (Cuiabá)',
         'America/Curacao' => 'Am an Atlantaigh (Cúrasó)',
         'America/Danmarkshavn' => 'Meán-Am Greenwich (Danmarkshavn)',
         'America/Dawson' => 'Am Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Am Oirthearach Mheiriceá Thuaidh (Detroit)',
         'America/Dominica' => 'Am an Atlantaigh (Doiminice)',
         'America/Edmonton' => 'Am Sléibhte Mheiriceá Thuaidh (Edmonton)',
-        'America/Eirunepe' => 'Am Acre (Eirunepe)',
+        'America/Eirunepe' => 'Am Acre (Eirunepé)',
         'America/El_Salvador' => 'Am Lárnach Mheiriceá Thuaidh (an tSalvadóir)',
         'America/Fort_Nelson' => 'Am Sléibhte Mheiriceá Thuaidh (Fort Nelson)',
         'America/Fortaleza' => 'Am Bhrasília (Fortaleza)',
         'America/Glace_Bay' => 'Am an Atlantaigh (Glace Bay)',
         'America/Godthab' => 'an Ghraonlainn (Nuuk)',
+        'America/Nuuk' => 'an Ghraonlainn (Nuuk)',
         'America/Goose_Bay' => 'Am an Atlantaigh (Goose Bay)',
         'America/Grand_Turk' => 'Am Oirthearach Mheiriceá Thuaidh (Grand Turk)',
         'America/Grenada' => 'Am an Atlantaigh (Greanáda)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Am Oirthearach Mheiriceá Thuaidh (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Am Oirthearach Mheiriceá Thuaidh (Winamac, Indiana)',
         'America/Indianapolis' => 'Am Oirthearach Mheiriceá Thuaidh (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Am Oirthearach Mheiriceá Thuaidh (Indianapolis)',
         'America/Inuvik' => 'Am Sléibhte Mheiriceá Thuaidh (Inuvik)',
         'America/Iqaluit' => 'Am Oirthearach Mheiriceá Thuaidh (Iqaluit)',
         'America/Jamaica' => 'Am Oirthearach Mheiriceá Thuaidh (Iamáice)',
         'America/Jujuy' => 'Am na hAirgintíne (Jujuy)',
+        'America/Argentina/Jujuy' => 'Am na hAirgintíne (Jujuy)',
         'America/Juneau' => 'Am Alasca (Juneau)',
         'America/Kentucky/Monticello' => 'Am Oirthearach Mheiriceá Thuaidh (Monticello, Kentucky)',
         'America/Kralendijk' => 'Am an Atlantaigh (Kralendijk)',
@@ -136,17 +145,19 @@
         'America/Lima' => 'Am Pheiriú (Líoma)',
         'America/Los_Angeles' => 'Am an Aigéin Chiúin (Los Angeles)',
         'America/Louisville' => 'Am Oirthearach Mheiriceá Thuaidh (Louisville)',
+        'America/Kentucky/Louisville' => 'Am Oirthearach Mheiriceá Thuaidh (Louisville)',
         'America/Lower_Princes' => 'Am an Atlantaigh (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Am Bhrasília (Maceio)',
+        'America/Maceio' => 'Am Bhrasília (Maceió)',
         'America/Managua' => 'Am Lárnach Mheiriceá Thuaidh (Managua)',
         'America/Manaus' => 'Am na hAmasóine (Manaus)',
         'America/Marigot' => 'Am an Atlantaigh (Marigot)',
         'America/Martinique' => 'Am an Atlantaigh (Martinique)',
         'America/Matamoros' => 'Am Lárnach Mheiriceá Thuaidh (Matamoros)',
-        'America/Mazatlan' => 'Am Meicsiceach an Aigéin Chiúin (Mazatlan)',
+        'America/Mazatlan' => 'Am Meicsiceach an Aigéin Chiúin (Mazatlán)',
         'America/Mendoza' => 'Am na hAirgintíne (Mendoza)',
+        'America/Argentina/Mendoza' => 'Am na hAirgintíne (Mendoza)',
         'America/Menominee' => 'Am Lárnach Mheiriceá Thuaidh (Menominee)',
-        'America/Merida' => 'Am Lárnach Mheiriceá Thuaidh (Merida)',
+        'America/Merida' => 'Am Lárnach Mheiriceá Thuaidh (Mérida)',
         'America/Metlakatla' => 'Am Alasca (Metlakatla)',
         'America/Mexico_City' => 'Am Lárnach Mheiriceá Thuaidh (Cathair Mheicsiceo)',
         'America/Miquelon' => 'Am Saint-Pierre-et-Miquelon',
@@ -175,7 +186,7 @@
         'America/Regina' => 'Am Lárnach Mheiriceá Thuaidh (Regina)',
         'America/Resolute' => 'Am Lárnach Mheiriceá Thuaidh (Resolute)',
         'America/Rio_Branco' => 'Am Acre (Rio Branco)',
-        'America/Santarem' => 'Am Bhrasília (Santarem)',
+        'America/Santarem' => 'Am Bhrasília (Santarém)',
         'America/Santiago' => 'Am na Sile (Santiago)',
         'America/Santo_Domingo' => 'Am an Atlantaigh (Santo Domingo)',
         'America/Sao_Paulo' => 'Am Bhrasília (São Paulo)',
@@ -186,7 +197,7 @@
         'America/St_Kitts' => 'Am an Atlantaigh (San Críostóir)',
         'America/St_Lucia' => 'Am an Atlantaigh (Saint Lucia)',
         'America/St_Thomas' => 'Am an Atlantaigh (St. Thomas)',
-        'America/St_Vincent' => 'Am an Atlantaigh (San Uinseann)',
+        'America/St_Vincent' => 'Am an Atlantaigh (St. Vincent)',
         'America/Swift_Current' => 'Am Lárnach Mheiriceá Thuaidh (Swift Current)',
         'America/Tegucigalpa' => 'Am Lárnach Mheiriceá Thuaidh (Tegucigalpa)',
         'America/Thule' => 'Am an Atlantaigh (Inis Tuile)',
@@ -197,35 +208,36 @@
         'America/Whitehorse' => 'Am Yukon (Whitehorse)',
         'America/Winnipeg' => 'Am Lárnach Mheiriceá Thuaidh (Winnipeg)',
         'America/Yakutat' => 'Am Alasca (Yakutat)',
-        'Antarctica/Casey' => 'Am Iarthar na hAstráile (Casey)',
+        'Antarctica/Casey' => 'Am Iarthar na hAstráile (Stáisiún Casey)',
         'Antarctica/Davis' => 'Am Davis',
-        'Antarctica/DumontDUrville' => 'Am Dumont-d’Urville',
-        'Antarctica/Macquarie' => 'Am Oirthear na hAstráile (Mac Guaire)',
-        'Antarctica/Mawson' => 'Am Mawson',
-        'Antarctica/McMurdo' => 'Am na Nua-Shéalainne (McMurdo)',
-        'Antarctica/Palmer' => 'Am na Sile (Palmer)',
-        'Antarctica/Rothera' => 'Am Rothera',
-        'Antarctica/Syowa' => 'Am Syowa',
-        'Antarctica/Troll' => 'Meán-Am Greenwich (Troll)',
-        'Antarctica/Vostok' => 'Am Vostok',
+        'Antarctica/DumontDUrville' => 'Am Dumont-d’Urville (Stáisiún Dumont-d’Urville)',
+        'Antarctica/Macquarie' => 'Am Oirthear na hAstráile (Oileán Mhic Guaire)',
+        'Antarctica/Mawson' => 'Am Mawson (Stáisiún Mawson)',
+        'Antarctica/McMurdo' => 'Am na Nua-Shéalainne (Stáisiún McMurdo)',
+        'Antarctica/Palmer' => 'Am na Sile (Tír Palmer)',
+        'Antarctica/Rothera' => 'Am Rothera (Stáisiún Rothera)',
+        'Antarctica/Syowa' => 'Am Syowa (Stáisiún Showa)',
+        'Antarctica/Troll' => 'Meán-Am Greenwich (Stáisiún Troll)',
+        'Antarctica/Vostok' => 'Am Vostok (Stáisiún Vostok)',
         'Arctic/Longyearbyen' => 'Am Lár na hEorpa (Longyearbyen)',
         'Asia/Aden' => 'Am na hAraibe (Áidin)',
         'Asia/Almaty' => 'Am na Casacstáine (Almaty)',
         'Asia/Amman' => 'Am Oirthear na hEorpa (Amman)',
-        'Asia/Anadyr' => 'Am Anadyr',
+        'Asia/Anadyr' => 'Am Phetropavlovsk-Kamchatski (Anadyr)',
         'Asia/Aqtau' => 'Am na Casacstáine (Aqtau)',
         'Asia/Aqtobe' => 'Am na Casacstáine (Aqtobe)',
         'Asia/Ashgabat' => 'Am na Tuircméanastáine (Ashgabat)',
         'Asia/Atyrau' => 'Am na Casacstáine (Atyrau)',
         'Asia/Baghdad' => 'Am na hAraibe (Bagdad)',
         'Asia/Bahrain' => 'Am na hAraibe (Bairéin)',
-        'Asia/Baku' => 'Am na hAsarbaiseáine (Baki)',
+        'Asia/Baku' => 'Am na hAsarbaiseáine (Bakı)',
         'Asia/Bangkok' => 'Am na hInd-Síne (Bangkok)',
-        'Asia/Barnaul' => 'an Rúis (Barnaul)',
+        'Asia/Barnaul' => 'Am Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Am Oirthear na hEorpa (Béiriút)',
         'Asia/Bishkek' => 'Am na Cirgeastáine (Bishkek)',
         'Asia/Brunei' => 'Am Bhrúiné Darasalám (Brúiné)',
         'Asia/Calcutta' => 'Am Caighdeánach na hIndia (Calcúta)',
+        'Asia/Kolkata' => 'Am Caighdeánach na hIndia (Calcúta)',
         'Asia/Chita' => 'Am Iacútsc (Chita)',
         'Asia/Colombo' => 'Am Caighdeánach na hIndia (Colombo)',
         'Asia/Damascus' => 'Am Oirthear na hEorpa (an Damaisc)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Am Oirthear na hEorpa (Gaza)',
         'Asia/Hebron' => 'Am Oirthear na hEorpa (Heabrón)',
         'Asia/Hong_Kong' => 'Am Hong Cong',
-        'Asia/Hovd' => 'Am Hovd',
+        'Asia/Hovd' => 'Am Khovd',
         'Asia/Irkutsk' => 'Am Irkutsk',
         'Asia/Jakarta' => 'Am Iarthar na hIndinéise (Iacárta)',
         'Asia/Jayapura' => 'Am Oirthear na hIndinéise (Jayapura)',
@@ -245,20 +257,21 @@
         'Asia/Kabul' => 'Am na hAfganastáine (Cabúl)',
         'Asia/Kamchatka' => 'Am Phetropavlovsk-Kamchatski (Kamchatka)',
         'Asia/Karachi' => 'Am na Pacastáine (Karachi)',
-        'Asia/Katmandu' => 'Am Neipeal (Kathmandu)',
+        'Asia/Katmandu' => 'Am Neipeal (Katmandu)',
+        'Asia/Kathmandu' => 'Am Neipeal (Katmandu)',
         'Asia/Khandyga' => 'Am Iacútsc (Khandyga)',
         'Asia/Krasnoyarsk' => 'Am Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Am na Malaeisia (Kuala Lumpur)',
         'Asia/Kuching' => 'Am na Malaeisia (Kuching)',
         'Asia/Kuwait' => 'Am na hAraibe (Cuáit)',
-        'Asia/Macau' => 'Am na Síne (Macao)',
+        'Asia/Macau' => 'Am na Síne (Macau)',
         'Asia/Magadan' => 'Am Mhagadan (Magadan)',
         'Asia/Makassar' => 'Am Lár na hIndinéise (Macasar)',
         'Asia/Manila' => 'Am na nOileán Filipíneach (Mainile)',
         'Asia/Muscat' => 'Am Caighdeánach na Murascaille (Muscat)',
         'Asia/Nicosia' => 'Am Oirthear na hEorpa (an Niocóis)',
         'Asia/Novokuznetsk' => 'Am Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Am Novosibirsk',
+        'Asia/Novosibirsk' => 'Am Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Am Omsk',
         'Asia/Oral' => 'Am na Casacstáine (Oral)',
         'Asia/Phnom_Penh' => 'Am na hInd-Síne (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Am na Casacstáine (Kostanay)',
         'Asia/Qyzylorda' => 'Am na Casacstáine (Qyzylorda)',
         'Asia/Rangoon' => 'Am Mhaenmar (Rangún)',
+        'Asia/Yangon' => 'Am Mhaenmar (Rangún)',
         'Asia/Riyadh' => 'Am na hAraibe (Riyadh)',
         'Asia/Saigon' => 'Am na hInd-Síne (Cathair Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Am Shacailín (Sakhalin)',
+        'Asia/Ho_Chi_Minh' => 'Am na hInd-Síne (Cathair Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Am Mhagadan (Sacailín)',
         'Asia/Samarkand' => 'Am na hÚisbéiceastáine (Samarkand)',
         'Asia/Seoul' => 'Am na Cóiré (Súl)',
         'Asia/Shanghai' => 'Am na Síne (Shang-hai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Am na hIaráine (Tehran)',
         'Asia/Thimphu' => 'Am na Bútáine (Thimphu)',
         'Asia/Tokyo' => 'Am na Seapáine (Tóiceo)',
-        'Asia/Tomsk' => 'an Rúis (Tomsk)',
-        'Asia/Ulaanbaatar' => 'Am Ulánbátar (Ulaanbaatar)',
-        'Asia/Urumqi' => 'an tSín (Urumqi)',
+        'Asia/Tomsk' => 'Am Krasnoyarsk (Tomsk)',
+        'Asia/Ulaanbaatar' => 'Am Ulánbátar (Ulan Bator)',
+        'Asia/Urumqi' => 'an tSín (Ürümqi)',
         'Asia/Ust-Nera' => 'Am Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Am na hInd-Síne (Vientiane)',
         'Asia/Vladivostok' => 'Am Vladivostok',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Am Iarthar na hEorpa (na hOileáin Chanáracha)',
         'Atlantic/Cape_Verde' => 'Am Rinn Verde',
         'Atlantic/Faeroe' => 'Am Iarthar na hEorpa (Oileáin Fharó)',
+        'Atlantic/Faroe' => 'Am Iarthar na hEorpa (Oileáin Fharó)',
         'Atlantic/Madeira' => 'Am Iarthar na hEorpa (Maidéara)',
         'Atlantic/Reykjavik' => 'Meán-Am Greenwich (Réicivíc)',
         'Atlantic/South_Georgia' => 'Am na Seoirsia Theas (an tSeoirsia Theas)',
@@ -308,7 +324,7 @@
         'Australia/Eucla' => 'Am Mheániarthar na hAstráile (Eucla)',
         'Australia/Hobart' => 'Am Oirthear na hAstráile (Hobart)',
         'Australia/Lindeman' => 'Am Oirthear na hAstráile (Lindeman)',
-        'Australia/Lord_Howe' => 'Am Lord Howe',
+        'Australia/Lord_Howe' => 'Am Lord Howe (Oileán an Tiarna Howe)',
         'Australia/Melbourne' => 'Am Oirthear na hAstráile (Melbourne)',
         'Australia/Perth' => 'Am Iarthar na hAstráile (Perth)',
         'Australia/Sydney' => 'Am Oirthear na hAstráile (Sydney)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Am Uilíoch Lárnach',
         'Europe/Amsterdam' => 'Am Lár na hEorpa (Amstardam)',
         'Europe/Andorra' => 'Am Lár na hEorpa (Andóra)',
-        'Europe/Astrakhan' => 'Am Mhoscó (an Astracáin)',
+        'Europe/Astrakhan' => 'Am Shamara (an Astracáin)',
         'Europe/Athens' => 'Am Oirthear na hEorpa (an Aithin)',
         'Europe/Belgrade' => 'Am Lár na hEorpa (Béalgrád)',
         'Europe/Berlin' => 'Am Lár na hEorpa (Beirlín)',
@@ -324,7 +340,7 @@
         'Europe/Brussels' => 'Am Lár na hEorpa (an Bhruiséil)',
         'Europe/Bucharest' => 'Am Oirthear na hEorpa (Búcairist)',
         'Europe/Budapest' => 'Am Lár na hEorpa (Búdaipeist)',
-        'Europe/Busingen' => 'Am Lár na hEorpa (Busingen)',
+        'Europe/Busingen' => 'Am Lár na hEorpa (Büsingen)',
         'Europe/Chisinau' => 'Am Oirthear na hEorpa (Císineá)',
         'Europe/Copenhagen' => 'Am Lár na hEorpa (Cóbanhávan)',
         'Europe/Dublin' => 'Meán-Am Greenwich (Baile Átha Cliath)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Meán-Am Greenwich (Geirsí)',
         'Europe/Kaliningrad' => 'Am Oirthear na hEorpa (Kaliningrad)',
         'Europe/Kiev' => 'Am Oirthear na hEorpa (Cív)',
-        'Europe/Kirov' => 'an Rúis (Kirov)',
+        'Europe/Kyiv' => 'Am Oirthear na hEorpa (Cív)',
+        'Europe/Kirov' => 'Am Mhoscó (Kirov)',
         'Europe/Lisbon' => 'Am Iarthar na hEorpa (Liospóin)',
         'Europe/Ljubljana' => 'Am Lár na hEorpa (Liúibleána)',
         'Europe/London' => 'Meán-Am Greenwich (Londain)',
@@ -356,71 +373,74 @@
         'Europe/Samara' => 'Am Shamara (Samara)',
         'Europe/San_Marino' => 'Am Lár na hEorpa (San Mairíne)',
         'Europe/Sarajevo' => 'Am Lár na hEorpa (Sairéavó)',
-        'Europe/Saratov' => 'Am Mhoscó (Saratov)',
+        'Europe/Saratov' => 'Am Shamara (Saratov)',
         'Europe/Simferopol' => 'Am Mhoscó (Simferopol)',
         'Europe/Skopje' => 'Am Lár na hEorpa (Scóipé)',
         'Europe/Sofia' => 'Am Oirthear na hEorpa (Sóifia)',
         'Europe/Stockholm' => 'Am Lár na hEorpa (Stócólm)',
         'Europe/Tallinn' => 'Am Oirthear na hEorpa (Taillinn)',
         'Europe/Tirane' => 'Am Lár na hEorpa (Tiorána)',
-        'Europe/Ulyanovsk' => 'Am Mhoscó (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Am Shamara (Ulyanovsk)',
         'Europe/Vaduz' => 'Am Lár na hEorpa (Vadús)',
         'Europe/Vatican' => 'Am Lár na hEorpa (an Vatacáin)',
         'Europe/Vienna' => 'Am Lár na hEorpa (Vín)',
         'Europe/Vilnius' => 'Am Oirthear na hEorpa (Vilnias)',
-        'Europe/Volgograd' => 'Am Volgograd',
+        'Europe/Volgograd' => 'Am Mhoscó (Volgograd)',
         'Europe/Warsaw' => 'Am Lár na hEorpa (Vársá)',
         'Europe/Zagreb' => 'Am Lár na hEorpa (Ságrab)',
         'Europe/Zurich' => 'Am Lár na hEorpa (Zürich)',
         'Indian/Antananarivo' => 'Am Oirthear na hAfraice (Antananairíveo)',
-        'Indian/Chagos' => 'Am an Aigéin Indiaigh (Chagos)',
+        'Indian/Chagos' => 'Am an Aigéin Indiaigh (Oileánra Chagos)',
         'Indian/Christmas' => 'Am Oileán na Nollag',
-        'Indian/Cocos' => 'Am Oileáin Cocos (Oileán Cocos)',
+        'Indian/Cocos' => 'Am Oileáin Cocos',
         'Indian/Comoro' => 'Am Oirthear na hAfraice (Oileáin Chomóra)',
         'Indian/Kerguelen' => 'Am Francach Dheisceart an Domhain agus an Antartaigh (Kerguelen)',
-        'Indian/Mahe' => 'Am na Séiséal (Mahe)',
+        'Indian/Mahe' => 'Am na Séiséal (Mahé)',
         'Indian/Maldives' => 'Am Oileáin Mhaildíve',
         'Indian/Mauritius' => 'Am Oileán Mhuirís',
         'Indian/Mayotte' => 'Am Oirthear na hAfraice (Mayotte)',
         'Indian/Reunion' => 'Am Réunion (La Réunion)',
-        'Pacific/Apia' => 'Am Apia',
+        'Pacific/Apia' => 'Am Shamó (Apia)',
         'Pacific/Auckland' => 'Am na Nua-Shéalainne (Auckland)',
         'Pacific/Bougainville' => 'Am Nua-Ghuine Phapua (Bougainville)',
         'Pacific/Chatham' => 'Am Chatham',
-        'Pacific/Easter' => 'Am Oileán na Cásca (Easter)',
+        'Pacific/Easter' => 'Am Oileán na Cásca',
         'Pacific/Efate' => 'Am Vanuatú (Efate)',
-        'Pacific/Enderbury' => 'Am Oileáin an Fhéinics (Enderbury)',
-        'Pacific/Fakaofo' => 'Am Oileáin Tócalá (Fakaofo)',
+        'Pacific/Enderbury' => 'Am Oileáin an Fhéinics (Oileán Canton)',
+        'Pacific/Kanton' => 'Am Oileáin an Fhéinics (Oileán Canton)',
+        'Pacific/Fakaofo' => 'Am Oileáin Thócaláú (Fakaofo)',
         'Pacific/Fiji' => 'Am Fhidsí (Fidsí)',
         'Pacific/Funafuti' => 'Am Thúvalú (Funafuti)',
-        'Pacific/Galapagos' => 'Am Oileáin Galápagos (Galapagos)',
+        'Pacific/Galapagos' => 'Am Oileáin Galápagos',
         'Pacific/Gambier' => 'Am Gambier',
         'Pacific/Guadalcanal' => 'Am Oileáin Sholaimh (Guadalcanal)',
         'Pacific/Guam' => 'Am Caighdeánach Seamórach (Guam)',
-        'Pacific/Honolulu' => 'Am Haváí-Ailiúit (Honolulu)',
+        'Pacific/Honolulu' => 'Am Caighdeánach Haváí-Ailiúit (Honolulu)',
         'Pacific/Kiritimati' => 'Am Oileáin na Líne (Kiritimati)',
         'Pacific/Kosrae' => 'Am Kosrae',
-        'Pacific/Kwajalein' => 'Am Oileáin Marshall (Kwajalein)',
+        'Pacific/Kwajalein' => 'Am Oileáin Marshall (Oileáin Kwajalein)',
         'Pacific/Majuro' => 'Am Oileáin Marshall (Majuro)',
         'Pacific/Marquesas' => 'Am na nOileán Marcasach (na hOileáin Mharcasacha)',
-        'Pacific/Midway' => 'Am Shamó (Oileáin Midway)',
+        'Pacific/Midway' => 'Am Shamó Mheiriceá (Oileáin Midway)',
         'Pacific/Nauru' => 'Am Nárú',
         'Pacific/Niue' => 'Am Niue',
         'Pacific/Norfolk' => 'Am Oileán Norfolk',
-        'Pacific/Noumea' => 'Am na Nua-Chaladóine (Noumea)',
-        'Pacific/Pago_Pago' => 'Am Shamó (Pago Pago)',
+        'Pacific/Noumea' => 'Am na Nua-Chaladóine (Nouméa)',
+        'Pacific/Pago_Pago' => 'Am Shamó Mheiriceá (Pago Pago)',
         'Pacific/Palau' => 'Am Oileáin Palau',
         'Pacific/Pitcairn' => 'Am Pitcairn',
-        'Pacific/Ponape' => 'Am Phohnpei (Pohnpei)',
+        'Pacific/Ponape' => 'Am Pohnpei',
+        'Pacific/Pohnpei' => 'Am Pohnpei',
         'Pacific/Port_Moresby' => 'Am Nua-Ghuine Phapua (Port Moresby)',
         'Pacific/Rarotonga' => 'Am Oileáin Cook (Rarotonga)',
         'Pacific/Saipan' => 'Am Caighdeánach Seamórach (Saipan)',
         'Pacific/Tahiti' => 'Am Thaihítí (Taihítí)',
-        'Pacific/Tarawa' => 'Am Chireabaití (Tarawa)',
+        'Pacific/Tarawa' => 'Am Chiribeas (Tarawa)',
         'Pacific/Tongatapu' => 'Am Thonga (Tongatapu)',
         'Pacific/Truk' => 'Am Chuuk',
+        'Pacific/Chuuk' => 'Am Chuuk',
         'Pacific/Wake' => 'Am Oileán Wake',
-        'Pacific/Wallis' => 'Am Wallis agus Futuna (Vailís)',
+        'Pacific/Wallis' => 'Am Wallis agus Futuna',
     ],
     'Meta' => [
         'GmtFormat' => 'MAG%s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gd.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Àm Afraga an Ear (Addis Abäba)',
         'Africa/Algiers' => 'Àm Meadhan na Roinn-Eòrpa (Algiers)',
         'Africa/Asmera' => 'Àm Afraga an Ear (Asmarà)',
+        'Africa/Asmara' => 'Àm Afraga an Ear (Asmarà)',
         'Africa/Bamako' => 'Greenwich Mean Time (Bamako)',
         'Africa/Bangui' => 'Àm Afraga an Iar (Bangui)',
         'Africa/Banjul' => 'Greenwich Mean Time (Banjul)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Àm Coloimbia (Bogotá)',
         'America/Boise' => 'Àm Monadh Aimeireaga (Boise)',
         'America/Buenos_Aires' => 'Àm na h-Argantaine (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Àm na h-Argantaine (Buenos Aires)',
         'America/Cambridge_Bay' => 'Àm Monadh Aimeireaga (Cambridge Bay)',
         'America/Campo_Grande' => 'Àm Amasoin (Campo Grande)',
         'America/Cancun' => 'Àm Aimeireaga an Ear (Cancún)',
         'America/Caracas' => 'Àm na Bheiniseala (Caracas)',
         'America/Catamarca' => 'Àm na h-Argantaine (Catamarca)',
+        'America/Argentina/Catamarca' => 'Àm na h-Argantaine (Catamarca)',
         'America/Cayenne' => 'Àm Guidheàna na Frainge (Cayenne)',
         'America/Cayman' => 'Àm Aimeireaga an Ear (Caimean)',
         'America/Chicago' => 'Àm Meadhan Aimeireaga (Chicago)',
         'America/Chihuahua' => 'Àm Meadhan Aimeireaga (Chihuahua)',
         'America/Ciudad_Juarez' => 'Àm Monadh Aimeireaga (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Àm Aimeireaga an Ear (Atikokan)',
+        'America/Atikokan' => 'Àm Aimeireaga an Ear (Atikokan)',
         'America/Cordoba' => 'Àm na h-Argantaine (Córdoba)',
+        'America/Argentina/Cordoba' => 'Àm na h-Argantaine (Córdoba)',
         'America/Costa_Rica' => 'Àm Meadhan Aimeireaga (Costa Rìcea)',
+        'America/Coyhaique' => 'Àm na Sile (Coyhaique)',
         'America/Creston' => 'Àm Monadh Aimeireaga (Creston)',
         'America/Cuiaba' => 'Àm Amasoin (Cuiabá)',
         'America/Curacao' => 'Àm a’ Chuain Shiar (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Àm Bhrasília (Fortaleza)',
         'America/Glace_Bay' => 'Àm a’ Chuain Shiar (Glasbaidh)',
         'America/Godthab' => 'Àm na Graonlainne (Nuuk)',
+        'America/Nuuk' => 'Àm na Graonlainne (Nuuk)',
         'America/Goose_Bay' => 'Àm a’ Chuain Shiar (Goose Bay)',
         'America/Grand_Turk' => 'Àm Aimeireaga an Ear (An Turc Mhòr)',
         'America/Grenada' => 'Àm a’ Chuain Shiar (Greanàda)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Àm Aimeireaga an Ear (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Àm Aimeireaga an Ear (Winamac, Indiana)',
         'America/Indianapolis' => 'Àm Aimeireaga an Ear (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Àm Aimeireaga an Ear (Indianapolis)',
         'America/Inuvik' => 'Àm Monadh Aimeireaga (Inuuvik)',
         'America/Iqaluit' => 'Àm Aimeireaga an Ear (Iqaluit)',
         'America/Jamaica' => 'Àm Aimeireaga an Ear (Diameuga)',
         'America/Jujuy' => 'Àm na h-Argantaine (Jujuy)',
+        'America/Argentina/Jujuy' => 'Àm na h-Argantaine (Jujuy)',
         'America/Juneau' => 'Àm Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Àm Aimeireaga an Ear (Monticello, Kentucky)',
         'America/Kralendijk' => 'Àm a’ Chuain Shiar (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Àm Pearù (Lima)',
         'America/Los_Angeles' => 'Àm a’ Chuain Shèimh (Los Angeles)',
         'America/Louisville' => 'Àm Aimeireaga an Ear (Louisville)',
+        'America/Kentucky/Louisville' => 'Àm Aimeireaga an Ear (Louisville)',
         'America/Lower_Princes' => 'Àm a’ Chuain Shiar (Lower Prince’s Quarter)',
         'America/Maceio' => 'Àm Bhrasília (Maceió)',
         'America/Managua' => 'Àm Meadhan Aimeireaga (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Àm Meadhan Aimeireaga (Matamoros)',
         'America/Mazatlan' => 'Àm a’ Chuain Shèimh Mheagsago (Mazatlán)',
         'America/Mendoza' => 'Àm na h-Argantaine (Mendoza)',
+        'America/Argentina/Mendoza' => 'Àm na h-Argantaine (Mendoza)',
         'America/Menominee' => 'Àm Meadhan Aimeireaga (Menominee)',
         'America/Merida' => 'Àm Meadhan Aimeireaga (Mérida)',
         'America/Metlakatla' => 'Àm Alaska (Metlakatla)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Àm Shealainn Nuaidh (McMurdo)',
         'Antarctica/Palmer' => 'Àm na Sile (Palmer)',
         'Antarctica/Rothera' => 'Àm Rothera',
-        'Antarctica/Syowa' => 'Àm Shyowa (Syowa)',
+        'Antarctica/Syowa' => 'Àm Shyowa (Showa)',
         'Antarctica/Troll' => 'Greenwich Mean Time (Troll)',
         'Antarctica/Vostok' => 'Àm Vostok',
         'Arctic/Longyearbyen' => 'Àm Meadhan na Roinn-Eòrpa (Longyearbyen)',
         'Asia/Aden' => 'Àm Arabach (Aden)',
         'Asia/Almaty' => 'Àm Casachstàin (Almaty)',
         'Asia/Amman' => 'Àm na Roinn-Eòrpa an Ear (Ammān)',
-        'Asia/Anadyr' => 'Àm Anadyr',
+        'Asia/Anadyr' => 'Àm Petropavlovsk-Kamchatsky (Anadyr)',
         'Asia/Aqtau' => 'Àm Casachstàin (Aqtau)',
         'Asia/Aqtobe' => 'Àm Casachstàin (Aqtöbe)',
         'Asia/Ashgabat' => 'Àm Turcmanastàin (Aşgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Àm Arabach (Bachrain)',
         'Asia/Baku' => 'Àm Asarbaideàin (Baku)',
         'Asia/Bangkok' => 'Àm Sìn-Innseanach (Bangkok)',
-        'Asia/Barnaul' => 'An Ruis (Barnaul)',
+        'Asia/Barnaul' => 'Àm Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Àm na Roinn-Eòrpa an Ear (Beirut)',
         'Asia/Bishkek' => 'Àm Cìorgastain (Biškek)',
         'Asia/Brunei' => 'Àm Bhrùnaigh Dàr as-Salàm (Brùnaigh)',
         'Asia/Calcutta' => 'Àm nan Innseachan (Kolkata)',
+        'Asia/Kolkata' => 'Àm nan Innseachan (Kolkata)',
         'Asia/Chita' => 'Àm Yakutsk (Chita)',
         'Asia/Colombo' => 'Àm nan Innseachan (Colombo)',
         'Asia/Damascus' => 'Àm na Roinn-Eòrpa an Ear (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Àm na Roinn-Eòrpa an Ear (Gàsa)',
         'Asia/Hebron' => 'Àm na Roinn-Eòrpa an Ear (Hebron)',
         'Asia/Hong_Kong' => 'Àm Hong Kong',
-        'Asia/Hovd' => 'Àm Hovd (Khovd)',
+        'Asia/Hovd' => 'Àm Khovd',
         'Asia/Irkutsk' => 'Àm Irkutsk',
         'Asia/Jakarta' => 'Àm nan Innd-Innse an Iar (Jakarta)',
         'Asia/Jayapura' => 'Àm nan Innd-Innse an Ear (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Àm Petropavlovsk-Kamchatsky (Kamchatka)',
         'Asia/Karachi' => 'Àm Pagastàin (Karācī)',
         'Asia/Katmandu' => 'Àm Neapàl (Kathmandu)',
+        'Asia/Kathmandu' => 'Àm Neapàl (Kathmandu)',
         'Asia/Khandyga' => 'Àm Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Àm Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Àm Mhalaidhsea (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Àm a’ Chamais (Muscat)',
         'Asia/Nicosia' => 'Àm na Roinn-Eòrpa an Ear (Nicosia)',
         'Asia/Novokuznetsk' => 'Àm Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Àm Novosibirsk',
+        'Asia/Novosibirsk' => 'Àm Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Àm Omsk',
         'Asia/Oral' => 'Àm Casachstàin (Oral)',
         'Asia/Phnom_Penh' => 'Àm Sìn-Innseanach (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Àm Casachstàin (Qostanaı)',
         'Asia/Qyzylorda' => 'Àm Casachstàin (Qızılorda)',
         'Asia/Rangoon' => 'Àm Miànmar (Rangun)',
+        'Asia/Yangon' => 'Àm Miànmar (Rangun)',
         'Asia/Riyadh' => 'Àm Arabach (Riyadh)',
         'Asia/Saigon' => 'Àm Sìn-Innseanach (Cathair Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Àm Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Àm Sìn-Innseanach (Cathair Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Àm Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Àm Usbagastàn (Samarkand)',
         'Asia/Seoul' => 'Àm Choirèa (Seoul)',
         'Asia/Shanghai' => 'Àm na Sìne (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Àm Ioràin (Tehrān)',
         'Asia/Thimphu' => 'Àm Butàin (Thimphu)',
         'Asia/Tokyo' => 'Àm na Seapaine (Tōkyō)',
-        'Asia/Tomsk' => 'An Ruis (Tomsk)',
+        'Asia/Tomsk' => 'Àm Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Àm Ulan Bator (Ulaanbaatar)',
         'Asia/Urumqi' => 'An t-Sìn (Ürümqi)',
         'Asia/Ust-Nera' => 'Àm Vladivostok (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Àm na Roinn-Eòrpa an Iar (Na h-Eileanan Canàrach)',
         'Atlantic/Cape_Verde' => 'Àm a’ Chip Uaine (An Ceap Uaine)',
         'Atlantic/Faeroe' => 'Àm na Roinn-Eòrpa an Iar (Fàro)',
+        'Atlantic/Faroe' => 'Àm na Roinn-Eòrpa an Iar (Fàro)',
         'Atlantic/Madeira' => 'Àm na Roinn-Eòrpa an Iar (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich Mean Time (Reykjavík)',
         'Atlantic/South_Georgia' => 'Àm Seòrsea a Deas',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Àm Uile-choitcheann Co-òrdanaichte',
         'Europe/Amsterdam' => 'Àm Meadhan na Roinn-Eòrpa (Amsterdam)',
         'Europe/Andorra' => 'Àm Meadhan na Roinn-Eòrpa (Andorra)',
-        'Europe/Astrakhan' => 'Àm Mhosgo (Astrakhan)',
+        'Europe/Astrakhan' => 'Àm Samara (Astrakhan)',
         'Europe/Athens' => 'Àm na Roinn-Eòrpa an Ear (An Àithne)',
         'Europe/Belgrade' => 'Àm Meadhan na Roinn-Eòrpa (Belgrade)',
         'Europe/Berlin' => 'Àm Meadhan na Roinn-Eòrpa (Berlin)',
@@ -324,7 +340,7 @@
         'Europe/Brussels' => 'Àm Meadhan na Roinn-Eòrpa (A’ Bhruiseal)',
         'Europe/Bucharest' => 'Àm na Roinn-Eòrpa an Ear (Bucharest)',
         'Europe/Budapest' => 'Àm Meadhan na Roinn-Eòrpa (Budapest)',
-        'Europe/Busingen' => 'Àm Meadhan na Roinn-Eòrpa (Busingen)',
+        'Europe/Busingen' => 'Àm Meadhan na Roinn-Eòrpa (Büsingen)',
         'Europe/Chisinau' => 'Àm na Roinn-Eòrpa an Ear (Chișinău)',
         'Europe/Copenhagen' => 'Àm Meadhan na Roinn-Eòrpa (Beirbh)',
         'Europe/Dublin' => 'Greenwich Mean Time (Baile Àtha Cliath)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwich Mean Time (Deàrsaidh)',
         'Europe/Kaliningrad' => 'Àm na Roinn-Eòrpa an Ear (Kaliningrad)',
         'Europe/Kiev' => 'Àm na Roinn-Eòrpa an Ear (Kiev)',
-        'Europe/Kirov' => 'An Ruis (Kirov)',
+        'Europe/Kyiv' => 'Àm na Roinn-Eòrpa an Ear (Kiev)',
+        'Europe/Kirov' => 'Àm Mhosgo (Kirov)',
         'Europe/Lisbon' => 'Àm na Roinn-Eòrpa an Iar (Lisbon)',
         'Europe/Ljubljana' => 'Àm Meadhan na Roinn-Eòrpa (Ljubljana)',
         'Europe/London' => 'Greenwich Mean Time (Dùn Èideann/Lunnainn)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Àm Samara',
         'Europe/San_Marino' => 'Àm Meadhan na Roinn-Eòrpa (San Marino)',
         'Europe/Sarajevo' => 'Àm Meadhan na Roinn-Eòrpa (Sarajevo)',
-        'Europe/Saratov' => 'Àm Mhosgo (Saratov)',
+        'Europe/Saratov' => 'Àm Samara (Saratov)',
         'Europe/Simferopol' => 'Àm Mhosgo (Simferopol)',
         'Europe/Skopje' => 'Àm Meadhan na Roinn-Eòrpa (Skopje)',
         'Europe/Sofia' => 'Àm na Roinn-Eòrpa an Ear (Sofiya)',
         'Europe/Stockholm' => 'Àm Meadhan na Roinn-Eòrpa (Stockholm)',
         'Europe/Tallinn' => 'Àm na Roinn-Eòrpa an Ear (Tallinn)',
         'Europe/Tirane' => 'Àm Meadhan na Roinn-Eòrpa (Tiranë)',
-        'Europe/Ulyanovsk' => 'Àm Mhosgo (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Àm Samara (Ulyanovsk)',
         'Europe/Vaduz' => 'Àm Meadhan na Roinn-Eòrpa (Vaduz)',
         'Europe/Vatican' => 'Àm Meadhan na Roinn-Eòrpa (A’ Bhatacan)',
         'Europe/Vienna' => 'Àm Meadhan na Roinn-Eòrpa (Vienna)',
         'Europe/Vilnius' => 'Àm na Roinn-Eòrpa an Ear (Vilnius)',
-        'Europe/Volgograd' => 'Àm Volgograd',
+        'Europe/Volgograd' => 'Àm Mhosgo (Volgograd)',
         'Europe/Warsaw' => 'Àm Meadhan na Roinn-Eòrpa (Warsaw)',
         'Europe/Zagreb' => 'Àm Meadhan na Roinn-Eòrpa (Zagreb)',
         'Europe/Zurich' => 'Àm Meadhan na Roinn-Eòrpa (Zürich)',
@@ -376,7 +393,7 @@
         'Indian/Chagos' => 'Àm Cuan nan Innseachan (Chagos)',
         'Indian/Christmas' => 'Àm Eilean na Nollaig',
         'Indian/Cocos' => 'Àm Eileanan Chocos (Cocos)',
-        'Indian/Comoro' => 'Àm Afraga an Ear (Comoro)',
+        'Indian/Comoro' => 'Àm Afraga an Ear (Comores)',
         'Indian/Kerguelen' => 'Àm Deasach agus Antartaigeach na Frainge (Kergelenn)',
         'Indian/Mahe' => 'Àm nan Eileanan Sheiseall (Mahé)',
         'Indian/Maldives' => 'Àm nan Eileanan Mhaladaibh (Na h-Eileanan Mhaladaibh)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Àm Chatham',
         'Pacific/Easter' => 'Àm Eilean na Càisge (Rapa Nui)',
         'Pacific/Efate' => 'Àm Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Àm Eileanan Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Àm Eileanan Phoenix (Eilean Canton)',
+        'Pacific/Kanton' => 'Àm Eileanan Phoenix (Eilean Canton)',
         'Pacific/Fakaofo' => 'Àm Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Àm Fìdi',
         'Pacific/Funafuti' => 'Àm Tubhalu (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Àm Ghambier (Mangareva)',
         'Pacific/Guadalcanal' => 'Àm Eileanan Sholaimh (Guadalcanal)',
         'Pacific/Guam' => 'Àm Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Àm nan Eileanan Hawai’i ’s Aleutach (Honolulu)',
+        'Pacific/Honolulu' => 'Bun-àm nan Eileanan Hawai’i ’s Aleutach (Honolulu)',
         'Pacific/Kiritimati' => 'Àm Eileanan Teraina (Kiritimati)',
         'Pacific/Kosrae' => 'Àm Kosrae',
         'Pacific/Kwajalein' => 'Àm Eileanan Mharshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Àm Nabhru',
         'Pacific/Niue' => 'Àm Niue',
         'Pacific/Norfolk' => 'Àm Eilein Norfolk',
-        'Pacific/Noumea' => 'Àm Chailleann Nuaidh (Noumea)',
+        'Pacific/Noumea' => 'Àm Chailleann Nuaidh (Nouméa)',
         'Pacific/Pago_Pago' => 'Àm Samotha (Pago Pago)',
         'Pacific/Palau' => 'Àm Palabh',
         'Pacific/Pitcairn' => 'Àm Peit a’ Chàirn',
         'Pacific/Ponape' => 'Àm Pohnpei',
+        'Pacific/Pohnpei' => 'Àm Pohnpei',
         'Pacific/Port_Moresby' => 'Àm Gini Nuaidh Paputhaiche (Port Moresby)',
         'Pacific/Rarotonga' => 'Àm Eileanan Cook (Rarotonga)',
         'Pacific/Saipan' => 'Àm Chamorro (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Àm Eileanan Ghileabairt (Tarawa)',
         'Pacific/Tongatapu' => 'Àm Tonga (Tongatapu)',
         'Pacific/Truk' => 'Àm Chuuk',
+        'Pacific/Chuuk' => 'Àm Chuuk',
         'Pacific/Wake' => 'Àm Eilean Wake',
         'Pacific/Wallis' => 'Àm Uallas agus Futuna',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gl.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'hora de África Oriental (Adís Abeba)',
         'Africa/Algiers' => 'hora de Europa Central (Alxer)',
         'Africa/Asmera' => 'hora de África Oriental (Asmara)',
+        'Africa/Asmara' => 'hora de África Oriental (Asmara)',
         'Africa/Bamako' => 'hora do meridiano de Greenwich (Bamaco)',
         'Africa/Bangui' => 'hora de África Occidental (Bangui)',
         'Africa/Banjul' => 'hora do meridiano de Greenwich (Banjul)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'hora de Colombia (Bogotá)',
         'America/Boise' => 'hora da montaña, América do Norte (Boise)',
         'America/Buenos_Aires' => 'hora da Arxentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'hora da Arxentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'hora da montaña, América do Norte (Cambridge Bay)',
         'America/Campo_Grande' => 'hora do Amazonas (Campo Grande)',
         'America/Cancun' => 'hora do leste, América do Norte (Cancún)',
         'America/Caracas' => 'hora de Venezuela (Caracas)',
         'America/Catamarca' => 'hora da Arxentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'hora da Arxentina (Catamarca)',
         'America/Cayenne' => 'hora da Güiana Francesa (Caiena)',
         'America/Cayman' => 'hora do leste, América do Norte (Illas Caimán)',
         'America/Chicago' => 'hora central, Norteamérica (Chicago)',
         'America/Chihuahua' => 'hora central, Norteamérica (Chihuahua)',
         'America/Ciudad_Juarez' => 'hora da montaña, América do Norte (Ciudad Juárez)',
         'America/Coral_Harbour' => 'hora do leste, América do Norte (Atikokan)',
+        'America/Atikokan' => 'hora do leste, América do Norte (Atikokan)',
         'America/Cordoba' => 'hora da Arxentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'hora da Arxentina (Córdoba)',
         'America/Costa_Rica' => 'hora central, Norteamérica (Costa Rica)',
+        'America/Coyhaique' => 'hora de Chile (Coihaique)',
         'America/Creston' => 'hora da montaña, América do Norte (Creston)',
         'America/Cuiaba' => 'hora do Amazonas (Cuiabá)',
         'America/Curacao' => 'hora do Atlántico (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'hora de Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'hora do Atlántico (Glace Bay)',
         'America/Godthab' => 'hora de: Groenlandia (Nuuk)',
+        'America/Nuuk' => 'hora de: Groenlandia (Nuuk)',
         'America/Goose_Bay' => 'hora do Atlántico (Goose Bay)',
         'America/Grand_Turk' => 'hora do leste, América do Norte (Grand Turk)',
         'America/Grenada' => 'hora do Atlántico (Granada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'hora do leste, América do Norte (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'hora do leste, América do Norte (Winamac, Indiana)',
         'America/Indianapolis' => 'hora do leste, América do Norte (Indianápolis)',
+        'America/Indiana/Indianapolis' => 'hora do leste, América do Norte (Indianápolis)',
         'America/Inuvik' => 'hora da montaña, América do Norte (Inuvik)',
         'America/Iqaluit' => 'hora do leste, América do Norte (Iqaluit)',
         'America/Jamaica' => 'hora do leste, América do Norte (Xamaica)',
         'America/Jujuy' => 'hora da Arxentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'hora da Arxentina (Jujuy)',
         'America/Juneau' => 'hora de Alasca (Juneau)',
         'America/Kentucky/Monticello' => 'hora do leste, América do Norte (Monticello, Kentucky)',
         'America/Kralendijk' => 'hora do Atlántico (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'hora do Perú (Lima)',
         'America/Los_Angeles' => 'hora do Pacífico, América do Norte (Os Ánxeles)',
         'America/Louisville' => 'hora do leste, América do Norte (Louisville)',
+        'America/Kentucky/Louisville' => 'hora do leste, América do Norte (Louisville)',
         'America/Lower_Princes' => 'hora do Atlántico (Lower Prince’s Quarter)',
         'America/Maceio' => 'hora de Brasilia (Maceió)',
         'America/Managua' => 'hora central, Norteamérica (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'hora central, Norteamérica (Matamoros)',
         'America/Mazatlan' => 'hora do Pacífico mexicano (Mazatlán)',
         'America/Mendoza' => 'hora da Arxentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'hora da Arxentina (Mendoza)',
         'America/Menominee' => 'hora central, Norteamérica (Menominee)',
         'America/Merida' => 'hora central, Norteamérica (Mérida)',
         'America/Metlakatla' => 'hora de Alasca (Metlakatla)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'hora árabe (Adén)',
         'Asia/Almaty' => 'hora de Kazakistán (Almati)',
         'Asia/Amman' => 'hora de Europa Oriental (Amán)',
-        'Asia/Anadyr' => 'hora de Anadyr',
+        'Asia/Anadyr' => 'hora estándar de Petropavlovsk-Kamchatski (Anadyr)',
         'Asia/Aqtau' => 'hora de Kazakistán (Aktau)',
         'Asia/Aqtobe' => 'hora de Kazakistán (Aktobe)',
         'Asia/Ashgabat' => 'hora de Turkmenistán (Achkhabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'hora árabe (Bahrain)',
         'Asia/Baku' => 'hora de Acerbaixán (Bacú)',
         'Asia/Bangkok' => 'hora de Indochina (Bangkok)',
-        'Asia/Barnaul' => 'hora de: Rusia (Barnaul)',
+        'Asia/Barnaul' => 'hora de Krasnoiarsk (Barnaul)',
         'Asia/Beirut' => 'hora de Europa Oriental (Beirut)',
         'Asia/Bishkek' => 'hora de Kirguizistán (Bishkek)',
         'Asia/Brunei' => 'hora de Brunei Darussalam',
         'Asia/Calcutta' => 'hora da India (Calcuta)',
+        'Asia/Kolkata' => 'hora da India (Calcuta)',
         'Asia/Chita' => 'hora de Iakutsk (Chitá)',
         'Asia/Colombo' => 'hora da India (Colombo)',
         'Asia/Damascus' => 'hora de Europa Oriental (Damasco)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'hora de Europa Oriental (Gaza)',
         'Asia/Hebron' => 'hora de Europa Oriental (Hebrón)',
         'Asia/Hong_Kong' => 'hora de Hong Kong',
-        'Asia/Hovd' => 'hora de Hovd',
+        'Asia/Hovd' => 'hora de Hovd (Khovd)',
         'Asia/Irkutsk' => 'hora de Irkutsk',
         'Asia/Jakarta' => 'hora de Indonesia Occidental (Iacarta)',
         'Asia/Jayapura' => 'hora de Indonesia Oriental (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'hora estándar de Petropavlovsk-Kamchatski (Kamchatka)',
         'Asia/Karachi' => 'hora de Paquistán (Karachi)',
         'Asia/Katmandu' => 'hora de Nepal (Katmandú)',
+        'Asia/Kathmandu' => 'hora de Nepal (Katmandú)',
         'Asia/Khandyga' => 'hora de Iakutsk (Chandyga)',
         'Asia/Krasnoyarsk' => 'hora de Krasnoiarsk (Krasnoyarsk)',
         'Asia/Kuala_Lumpur' => 'hora de Malaisia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'hora do Golfo (Mascate)',
         'Asia/Nicosia' => 'hora de Europa Oriental (Nicosia)',
         'Asia/Novokuznetsk' => 'hora de Krasnoiarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'hora de Novosibirsk',
+        'Asia/Novosibirsk' => 'hora de Krasnoiarsk (Novosibirsk)',
         'Asia/Omsk' => 'hora de Omsk',
         'Asia/Oral' => 'hora de Kazakistán (Oral)',
         'Asia/Phnom_Penh' => 'hora de Indochina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'hora de Kazakistán (Qostanai)',
         'Asia/Qyzylorda' => 'hora de Kazakistán (Kyzylorda)',
         'Asia/Rangoon' => 'hora de Myanmar (Yangon)',
+        'Asia/Yangon' => 'hora de Myanmar (Yangon)',
         'Asia/Riyadh' => 'hora árabe (Riad)',
         'Asia/Saigon' => 'hora de Indochina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'hora de Sakhalín',
+        'Asia/Ho_Chi_Minh' => 'hora de Indochina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'hora de Magadan (Sakhalín)',
         'Asia/Samarkand' => 'hora de Uzbekistán (Samarcanda)',
         'Asia/Seoul' => 'hora de Corea (Seúl)',
         'Asia/Shanghai' => 'hora da China (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'hora de Irán (Teherán)',
         'Asia/Thimphu' => 'hora de Bután (Thimphu)',
         'Asia/Tokyo' => 'hora do Xapón (Tokyo)',
-        'Asia/Tomsk' => 'hora de: Rusia (Tomsk)',
+        'Asia/Tomsk' => 'hora de Krasnoiarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'hora de Ulaanbaatar',
         'Asia/Urumqi' => 'hora de: China (Ürümqi)',
         'Asia/Ust-Nera' => 'hora de Vladivostok (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'hora de Europa Occidental (Illas Canarias)',
         'Atlantic/Cape_Verde' => 'hora de Cabo Verde',
         'Atlantic/Faeroe' => 'hora de Europa Occidental (Feroe)',
+        'Atlantic/Faroe' => 'hora de Europa Occidental (Feroe)',
         'Atlantic/Madeira' => 'hora de Europa Occidental (Madeira)',
         'Atlantic/Reykjavik' => 'hora do meridiano de Greenwich (Reiquiavik)',
         'Atlantic/South_Georgia' => 'hora de Xeorxia do Sur',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'hora universal coordinada',
         'Europe/Amsterdam' => 'hora de Europa Central (Ámsterdam)',
         'Europe/Andorra' => 'hora de Europa Central (Andorra)',
-        'Europe/Astrakhan' => 'hora de Moscova (Astrakán)',
+        'Europe/Astrakhan' => 'hora de Samara (Astrakán)',
         'Europe/Athens' => 'hora de Europa Oriental (Atenas)',
         'Europe/Belgrade' => 'hora de Europa Central (Belgrado)',
         'Europe/Berlin' => 'hora de Europa Central (Berlín)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'hora de Europa Central (Bruxelas)',
         'Europe/Bucharest' => 'hora de Europa Oriental (Bucarest)',
         'Europe/Budapest' => 'hora de Europa Central (Budapest)',
-        'Europe/Busingen' => 'hora de Europa Central (Busingen)',
-        'Europe/Chisinau' => 'hora de Europa Oriental (Chisinau)',
+        'Europe/Busingen' => 'hora de Europa Central (Büsingen)',
+        'Europe/Chisinau' => 'hora de Europa Oriental (Chișinău)',
         'Europe/Copenhagen' => 'hora de Europa Central (Copenhague)',
         'Europe/Dublin' => 'hora do meridiano de Greenwich (Dublín)',
         'Europe/Gibraltar' => 'hora de Europa Central (Xibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'hora do meridiano de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'hora de Europa Oriental (Kaliningrado)',
         'Europe/Kiev' => 'hora de Europa Oriental (Kíiv)',
-        'Europe/Kirov' => 'hora de: Rusia (Kirov)',
+        'Europe/Kyiv' => 'hora de Europa Oriental (Kíiv)',
+        'Europe/Kirov' => 'hora de Moscova (Kirov)',
         'Europe/Lisbon' => 'hora de Europa Occidental (Lisboa)',
         'Europe/Ljubljana' => 'hora de Europa Central (Liubliana)',
         'Europe/London' => 'hora do meridiano de Greenwich (Londres)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'hora de Samara',
         'Europe/San_Marino' => 'hora de Europa Central (San Marino)',
         'Europe/Sarajevo' => 'hora de Europa Central (Saraievo)',
-        'Europe/Saratov' => 'hora de Moscova (Saratov)',
+        'Europe/Saratov' => 'hora de Samara (Saratov)',
         'Europe/Simferopol' => 'hora de Moscova (Simferópol)',
         'Europe/Skopje' => 'hora de Europa Central (Skopje)',
         'Europe/Sofia' => 'hora de Europa Oriental (Sofía)',
         'Europe/Stockholm' => 'hora de Europa Central (Estocolmo)',
         'Europe/Tallinn' => 'hora de Europa Oriental (Tallinn)',
         'Europe/Tirane' => 'hora de Europa Central (Tirana)',
-        'Europe/Ulyanovsk' => 'hora de Moscova (Ulianovsk)',
+        'Europe/Ulyanovsk' => 'hora de Samara (Ulianovsk)',
         'Europe/Vaduz' => 'hora de Europa Central (Vaduz)',
         'Europe/Vatican' => 'hora de Europa Central (Vaticano)',
         'Europe/Vienna' => 'hora de Europa Central (Viena)',
         'Europe/Vilnius' => 'hora de Europa Oriental (Vilnius)',
-        'Europe/Volgograd' => 'hora de Volgogrado',
+        'Europe/Volgograd' => 'hora de Moscova (Volgogrado)',
         'Europe/Warsaw' => 'hora de Europa Central (Varsovia)',
         'Europe/Zagreb' => 'hora de Europa Central (Zagreb)',
         'Europe/Zurich' => 'hora de Europa Central (Zürich)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'hora de Chatham',
         'Pacific/Easter' => 'hora da Illa de Pascua',
         'Pacific/Efate' => 'hora de Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'hora das Illas Fénix (Enderbury)',
+        'Pacific/Enderbury' => 'hora das Illas Fénix (illa Kantón)',
+        'Pacific/Kanton' => 'hora das Illas Fénix (illa Kantón)',
         'Pacific/Fakaofo' => 'hora de Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'hora de Fixi',
         'Pacific/Funafuti' => 'hora de Tuvalu (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'hora de Gambier',
         'Pacific/Guadalcanal' => 'hora das Illas Salomón (Guadalcanal)',
         'Pacific/Guam' => 'hora estándar chamorro (Guam)',
-        'Pacific/Honolulu' => 'hora de Hawai-illas Aleutianas (Honolulú)',
+        'Pacific/Honolulu' => 'hora estándar de Hawai-illas Aleutianas (Honolulú)',
         'Pacific/Kiritimati' => 'hora das Illas da Liña (Kiritimati)',
         'Pacific/Kosrae' => 'hora de Kosrae',
         'Pacific/Kwajalein' => 'hora das Illas Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'hora de Nauru',
         'Pacific/Niue' => 'hora de Niue',
         'Pacific/Norfolk' => 'hora da Illa Norfolk',
-        'Pacific/Noumea' => 'hora de Nova Caledonia (Noumea)',
+        'Pacific/Noumea' => 'hora de Nova Caledonia (Nouméa)',
         'Pacific/Pago_Pago' => 'hora de Samoa (Pago Pago)',
         'Pacific/Palau' => 'hora de Palau',
         'Pacific/Pitcairn' => 'hora de Pitcairn',
         'Pacific/Ponape' => 'hora de Pohnpei',
+        'Pacific/Pohnpei' => 'hora de Pohnpei',
         'Pacific/Port_Moresby' => 'hora de Papúa-Nova Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'hora das Illas Cook (Rarotonga)',
         'Pacific/Saipan' => 'hora estándar chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'hora das Illas Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'hora de Tonga (Tongatapu)',
         'Pacific/Truk' => 'hora de Chuuk',
+        'Pacific/Chuuk' => 'hora de Chuuk',
         'Pacific/Wake' => 'hora da Illa Wake',
-        'Pacific/Wallis' => 'hora de Wallis e Futuna',
+        'Pacific/Wallis' => 'hora de Wallis e Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/gu.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'પૂર્વ આફ્રિકા સમય (એડિસ અબાબા)',
         'Africa/Algiers' => 'મધ્ય યુરોપિયન સમય (અલ્જીયર્સ)',
         'Africa/Asmera' => 'પૂર્વ આફ્રિકા સમય (અસ્મારા)',
+        'Africa/Asmara' => 'પૂર્વ આફ્રિકા સમય (અસ્મારા)',
         'Africa/Bamako' => 'ગ્રીનવિચ મધ્યમ સમય (બમેકો)',
         'Africa/Bangui' => 'પશ્ચિમ આફ્રિકા સમય (બાંગુઈ)',
         'Africa/Banjul' => 'ગ્રીનવિચ મધ્યમ સમય (બાંજુલ)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'કોલમ્બિયા સમય (બોગોટા)',
         'America/Boise' => 'ઉત્તર અમેરિકન માઉન્ટન સમય (બોઇઝ)',
         'America/Buenos_Aires' => 'આર્જેન્ટીના સમય (બ્યુનસ એયર્સ)',
+        'America/Argentina/Buenos_Aires' => 'આર્જેન્ટીના સમય (બ્યુનસ એયર્સ)',
         'America/Cambridge_Bay' => 'ઉત્તર અમેરિકન માઉન્ટન સમય (કેમ્બ્રિજ બે)',
         'America/Campo_Grande' => 'એમેઝોન સમય (કામ્પો ગ્રાંડ)',
         'America/Cancun' => 'ઉત્તર અમેરિકન પૂર્વી સમય (કાન્કુન)',
         'America/Caracas' => 'વેનેઝુએલા સમય (કૅરાકસ)',
         'America/Catamarca' => 'આર્જેન્ટીના સમય (કાતામાર્કા)',
+        'America/Argentina/Catamarca' => 'આર્જેન્ટીના સમય (કાતામાર્કા)',
         'America/Cayenne' => 'ફ્રેંચ ગયાના સમય (કાયેને)',
         'America/Cayman' => 'ઉત્તર અમેરિકન પૂર્વી સમય (કેમેન)',
         'America/Chicago' => 'ઉત્તર અમેરિકન કેન્દ્રીય સમય (શિકાગો)',
         'America/Chihuahua' => 'ઉત્તર અમેરિકન કેન્દ્રીય સમય (ચિહુઆહુઆ)',
         'America/Ciudad_Juarez' => 'ઉત્તર અમેરિકન માઉન્ટન સમય (સિયુદાદ હુઆરેઝ)',
         'America/Coral_Harbour' => 'ઉત્તર અમેરિકન પૂર્વી સમય (એટિકોકેન)',
+        'America/Atikokan' => 'ઉત્તર અમેરિકન પૂર્વી સમય (એટિકોકેન)',
         'America/Cordoba' => 'આર્જેન્ટીના સમય (કોર્ડોબા)',
+        'America/Argentina/Cordoba' => 'આર્જેન્ટીના સમય (કોર્ડોબા)',
         'America/Costa_Rica' => 'ઉત્તર અમેરિકન કેન્દ્રીય સમય (કોસ્ટા રિકા)',
+        'America/Coyhaique' => 'ચિલી સમય (કોહેક)',
         'America/Creston' => 'ઉત્તર અમેરિકન માઉન્ટન સમય (ક્રેસ્ટન)',
         'America/Cuiaba' => 'એમેઝોન સમય (ક્યુએબા)',
         'America/Curacao' => 'એટલાન્ટિક સમય (કુરાકાઓ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'બ્રાઝિલિયા સમય (ફોર્ટાલેઝા)',
         'America/Glace_Bay' => 'એટલાન્ટિક સમય (ગ્લેસ બે)',
         'America/Godthab' => 'ગ્રીનલેન્ડ સમય (નૂક)',
+        'America/Nuuk' => 'ગ્રીનલેન્ડ સમય (નૂક)',
         'America/Goose_Bay' => 'એટલાન્ટિક સમય (ગૂસ બે)',
         'America/Grand_Turk' => 'ઉત્તર અમેરિકન પૂર્વી સમય (ગ્રાન્ડ ટર્ક)',
         'America/Grenada' => 'એટલાન્ટિક સમય (ગ્રેનેડા)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ઉત્તર અમેરિકન પૂર્વી સમય (વિન્સેન્સ, ઇન્ડિયાના)',
         'America/Indiana/Winamac' => 'ઉત્તર અમેરિકન પૂર્વી સમય (વિનામેક, ઇન્ડિયાના)',
         'America/Indianapolis' => 'ઉત્તર અમેરિકન પૂર્વી સમય (ઇન્ડિયાનાપોલિસ)',
+        'America/Indiana/Indianapolis' => 'ઉત્તર અમેરિકન પૂર્વી સમય (ઇન્ડિયાનાપોલિસ)',
         'America/Inuvik' => 'ઉત્તર અમેરિકન માઉન્ટન સમય (ઇનુવિક)',
         'America/Iqaluit' => 'ઉત્તર અમેરિકન પૂર્વી સમય (ઇકાલુઇત)',
         'America/Jamaica' => 'ઉત્તર અમેરિકન પૂર્વી સમય (જમૈકા)',
         'America/Jujuy' => 'આર્જેન્ટીના સમય (હુહુઇ)',
+        'America/Argentina/Jujuy' => 'આર્જેન્ટીના સમય (હુહુઇ)',
         'America/Juneau' => 'અલાસ્કા સમય (જુનેઇ)',
         'America/Kentucky/Monticello' => 'ઉત્તર અમેરિકન પૂર્વી સમય (મોન્ટીસેલો, કેન્ટુકી)',
         'America/Kralendijk' => 'એટલાન્ટિક સમય (ક્રાલેન્ડિક)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'પેરુ સમય (લિમા)',
         'America/Los_Angeles' => 'ઉત્તર અમેરિકન પેસિફિક સમય (લોસ એંજેલેસ)',
         'America/Louisville' => 'ઉત્તર અમેરિકન પૂર્વી સમય (લૂઇવિલ)',
+        'America/Kentucky/Louisville' => 'ઉત્તર અમેરિકન પૂર્વી સમય (લૂઇવિલ)',
         'America/Lower_Princes' => 'એટલાન્ટિક સમય (લોઅર પ્રિન્સનું ક્વાર્ટર)',
         'America/Maceio' => 'બ્રાઝિલિયા સમય (મેસિઓ)',
         'America/Managua' => 'ઉત્તર અમેરિકન કેન્દ્રીય સમય (માનાગુઆ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'ઉત્તર અમેરિકન કેન્દ્રીય સમય (માતામોરોસ)',
         'America/Mazatlan' => 'મેક્સિકન પેસિફિક સમય (મઝત્લાન)',
         'America/Mendoza' => 'આર્જેન્ટીના સમય (મેન્ડોઝા)',
+        'America/Argentina/Mendoza' => 'આર્જેન્ટીના સમય (મેન્ડોઝા)',
         'America/Menominee' => 'ઉત્તર અમેરિકન કેન્દ્રીય સમય (મેનોમિની)',
         'America/Merida' => 'ઉત્તર અમેરિકન કેન્દ્રીય સમય (મેરિદા)',
         'America/Metlakatla' => 'અલાસ્કા સમય (મેટ્લાકાટ્લા)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'અરેબિયન સમય (એદેન)',
         'Asia/Almaty' => 'કઝાકિસ્તાન સમય (અલ્માટી)',
         'Asia/Amman' => 'પૂર્વી યુરોપિયન સમય (અમ્માન)',
-        'Asia/Anadyr' => 'અનાદિર સમય (અનદિર)',
+        'Asia/Anadyr' => 'પેટ્રોપેવલોવ્સ્ક-કામચતસ્કી સમય (અનદિર)',
         'Asia/Aqtau' => 'કઝાકિસ્તાન સમય (અકટાઉ)',
         'Asia/Aqtobe' => 'કઝાકિસ્તાન સમય (ઍક્ટોબ)',
         'Asia/Ashgabat' => 'તુર્કમેનિસ્તાન સમય (અશગાબટ)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'અરેબિયન સમય (બેહરીન)',
         'Asia/Baku' => 'અઝરબૈજાન સમય (બાકુ)',
         'Asia/Bangkok' => 'ઇન્ડોચાઇના સમય (બેંગકોક)',
-        'Asia/Barnaul' => 'રશિયા સમય (બારનૌલ)',
+        'Asia/Barnaul' => 'ક્રેસ્નોયાર્સ્ક સમય (બારનૌલ)',
         'Asia/Beirut' => 'પૂર્વી યુરોપિયન સમય (બૈરુત)',
         'Asia/Bishkek' => 'કિર્ગિઝ્સ્તાન સમય (બિશકેક)',
         'Asia/Brunei' => 'બ્રુનેઇ દરુસલામ સમય',
         'Asia/Calcutta' => 'ભારતીય માનક સમય (કોલકાતા)',
+        'Asia/Kolkata' => 'ભારતીય માનક સમય (કોલકાતા)',
         'Asia/Chita' => 'યાકુત્સ્ક સમય (ચિતા)',
         'Asia/Colombo' => 'ભારતીય માનક સમય (કોલંબો)',
         'Asia/Damascus' => 'પૂર્વી યુરોપિયન સમય (દમાસ્કસ)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'પેટ્રોપેવલોવ્સ્ક-કામચતસ્કી સમય (કામચટ્કા)',
         'Asia/Karachi' => 'પાકિસ્તાન સમય (કરાચી)',
         'Asia/Katmandu' => 'નેપાળ સમય (કાઠમંડુ)',
+        'Asia/Kathmandu' => 'નેપાળ સમય (કાઠમંડુ)',
         'Asia/Khandyga' => 'યાકુત્સ્ક સમય (ખંડિગા)',
         'Asia/Krasnoyarsk' => 'ક્રેસ્નોયાર્સ્ક સમય (ક્રિસ્નોયાર્સ્ક)',
         'Asia/Kuala_Lumpur' => 'મલેશિયા સમય (કુઆલા લુમ્પુર)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ગલ્ફ માનક સમય (મસ્કત)',
         'Asia/Nicosia' => 'પૂર્વી યુરોપિયન સમય (નિકોસિયા)',
         'Asia/Novokuznetsk' => 'ક્રેસ્નોયાર્સ્ક સમય (નોવોકુઝ્નેત્સ્ક)',
-        'Asia/Novosibirsk' => 'નોવસિબિર્સ્ક સમય (નોવોસીર્બિર્સ્ક)',
+        'Asia/Novosibirsk' => 'ક્રેસ્નોયાર્સ્ક સમય (નોવોસીર્બિર્સ્ક)',
         'Asia/Omsk' => 'ઓમ્સ્ક સમય',
         'Asia/Oral' => 'કઝાકિસ્તાન સમય (ઓરલ)',
         'Asia/Phnom_Penh' => 'ઇન્ડોચાઇના સમય (ફ્નોમ પેન્હ)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'કઝાકિસ્તાન સમય (કોસ્ટાને)',
         'Asia/Qyzylorda' => 'કઝાકિસ્તાન સમય (કિઝિલોર્ડા)',
         'Asia/Rangoon' => 'મ્યાનમાર સમય (રંગૂન)',
+        'Asia/Yangon' => 'મ્યાનમાર સમય (રંગૂન)',
         'Asia/Riyadh' => 'અરેબિયન સમય (રિયાધ)',
         'Asia/Saigon' => 'ઇન્ડોચાઇના સમય (હો ચી મીન સિટી)',
-        'Asia/Sakhalin' => 'સખાલિન સમય',
+        'Asia/Ho_Chi_Minh' => 'ઇન્ડોચાઇના સમય (હો ચી મીન સિટી)',
+        'Asia/Sakhalin' => 'મગાડન સમય (સખાલિન)',
         'Asia/Samarkand' => 'ઉઝ્બેકિસ્તાન સમય (સમરકન્ડ)',
         'Asia/Seoul' => 'કોરિયન સમય (સીઓલ)',
         'Asia/Shanghai' => 'ચીન સમય (શાંઘાઈ)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ઈરાન સમય (તેહરાન)',
         'Asia/Thimphu' => 'ભૂટાન સમય (થીમ્ફુ)',
         'Asia/Tokyo' => 'જાપાન સમય (ટોક્યો)',
-        'Asia/Tomsk' => 'રશિયા સમય (તોમસ્ક)',
+        'Asia/Tomsk' => 'ક્રેસ્નોયાર્સ્ક સમય (તોમસ્ક)',
         'Asia/Ulaanbaatar' => 'ઉલાન બાટોર સમય (ઉલાંબાતર)',
         'Asia/Urumqi' => 'ચીન સમય (ઉરુમ્કી)',
         'Asia/Ust-Nera' => 'વ્લાડિવોસ્ટોક સમય (ઉસ્ત-નેરા)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'પશ્ચિમી યુરોપિયન સમય (કૅનેરી)',
         'Atlantic/Cape_Verde' => 'કૅપ વર્ડે સમય',
         'Atlantic/Faeroe' => 'પશ્ચિમી યુરોપિયન સમય (ફેરો)',
+        'Atlantic/Faroe' => 'પશ્ચિમી યુરોપિયન સમય (ફેરો)',
         'Atlantic/Madeira' => 'પશ્ચિમી યુરોપિયન સમય (મડિરા)',
         'Atlantic/Reykjavik' => 'ગ્રીનવિચ મધ્યમ સમય (રૅકયાવિક)',
         'Atlantic/South_Georgia' => 'દક્ષિણ જ્યોર્જિયા સમય',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'સંકલિત યુનિવર્સલ સમય',
         'Europe/Amsterdam' => 'મધ્ય યુરોપિયન સમય (ઍમ્સ્ટરડૅમ)',
         'Europe/Andorra' => 'મધ્ય યુરોપિયન સમય (ઍંડોરા)',
-        'Europe/Astrakhan' => 'મોસ્કો સમય (આસ્ટ્રખન)',
+        'Europe/Astrakhan' => 'સમારા સમય (આસ્ટ્રખન)',
         'Europe/Athens' => 'પૂર્વી યુરોપિયન સમય (એથેંસ)',
         'Europe/Belgrade' => 'મધ્ય યુરોપિયન સમય (બેલગ્રેડ)',
         'Europe/Berlin' => 'મધ્ય યુરોપિયન સમય (બર્લિન)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ગ્રીનવિચ મધ્યમ સમય (જર્સી)',
         'Europe/Kaliningrad' => 'પૂર્વી યુરોપિયન સમય (કલિનિન્ગ્રેડ)',
         'Europe/Kiev' => 'પૂર્વી યુરોપિયન સમય (કૈવ)',
-        'Europe/Kirov' => 'રશિયા સમય (કીરોવ)',
+        'Europe/Kyiv' => 'પૂર્વી યુરોપિયન સમય (કૈવ)',
+        'Europe/Kirov' => 'મોસ્કો સમય (કીરોવ)',
         'Europe/Lisbon' => 'પશ્ચિમી યુરોપિયન સમય (લિસ્બન)',
         'Europe/Ljubljana' => 'મધ્ય યુરોપિયન સમય (લુબ્લિયાના)',
         'Europe/London' => 'ગ્રીનવિચ મધ્યમ સમય (લંડન)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'સમારા સમય',
         'Europe/San_Marino' => 'મધ્ય યુરોપિયન સમય (સૅન મેરિનો)',
         'Europe/Sarajevo' => 'મધ્ય યુરોપિયન સમય (સારાજેવો)',
-        'Europe/Saratov' => 'મોસ્કો સમય (સારાટોવ)',
+        'Europe/Saratov' => 'સમારા સમય (સારાટોવ)',
         'Europe/Simferopol' => 'મોસ્કો સમય (સિમ્ફેરોપોલ)',
         'Europe/Skopje' => 'મધ્ય યુરોપિયન સમય (સ્કોપયે)',
         'Europe/Sofia' => 'પૂર્વી યુરોપિયન સમય (સોફિયા)',
         'Europe/Stockholm' => 'મધ્ય યુરોપિયન સમય (સ્ટોકહૉમ)',
         'Europe/Tallinn' => 'પૂર્વી યુરોપિયન સમય (તલ્લીન)',
-        'Europe/Tirane' => 'મધ્ય યુરોપિયન સમય (તિરાને)',
-        'Europe/Ulyanovsk' => 'મોસ્કો સમય (ઉલેનોવ્સ્ક)',
-        'Europe/Vaduz' => 'મધ્ય યુરોપિયન સમય (વૅદુઝ)',
+        'Europe/Tirane' => 'મધ્ય યુરોપિયન સમય (તિરાના)',
+        'Europe/Ulyanovsk' => 'સમારા સમય (ઉલેનોવ્સ્ક)',
+        'Europe/Vaduz' => 'મધ્ય યુરોપિયન સમય (વડુઝ)',
         'Europe/Vatican' => 'મધ્ય યુરોપિયન સમય (વેટિકન)',
         'Europe/Vienna' => 'મધ્ય યુરોપિયન સમય (વિયેના)',
         'Europe/Vilnius' => 'પૂર્વી યુરોપિયન સમય (વિલ્નિઅસ)',
-        'Europe/Volgograd' => 'વોલ્ગોગ્રેડ સમય',
+        'Europe/Volgograd' => 'મોસ્કો સમય (વોલ્ગોગ્રેડ)',
         'Europe/Warsaw' => 'મધ્ય યુરોપિયન સમય (વોરસૉ)',
         'Europe/Zagreb' => 'મધ્ય યુરોપિયન સમય (ઝેગરેબ)',
         'Europe/Zurich' => 'મધ્ય યુરોપિયન સમય (ઝુરીક)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'ચેતહામ સમય (ચથમ)',
         'Pacific/Easter' => 'ઇસ્ટર આઇલેન્ડ સમય',
         'Pacific/Efate' => 'વનાતૂ સમય (એફેટ)',
-        'Pacific/Enderbury' => 'ફોનિક્સ આઇલેન્ડ્સ સમય (એંડર્બરી)',
+        'Pacific/Enderbury' => 'ફોનિક્સ આઇલેન્ડ્સ સમય (કેંટન આઇલૅન્ડ)',
+        'Pacific/Kanton' => 'ફોનિક્સ આઇલેન્ડ્સ સમય (કેંટન આઇલૅન્ડ)',
         'Pacific/Fakaofo' => 'ટોકલાઉ સમય (ફાકાઓફો)',
         'Pacific/Fiji' => 'ફીજી સમય',
         'Pacific/Funafuti' => 'ટવાલૂ સમય (ફુનાફુટી)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ગેમ્બિયર સમય',
         'Pacific/Guadalcanal' => 'સોલોમન આઇલેન્ડ્સ સમય (ગૌડલકૅનલ)',
         'Pacific/Guam' => 'કેમોરો માનક સમય (ગ્વામ)',
-        'Pacific/Honolulu' => 'હવાઈ-એલ્યુશિઅન સમય (હોનોલુલુ)',
+        'Pacific/Honolulu' => 'હવાઇ-એલ્યુશિઅન માનક સમય (હોનોલુલુ)',
         'Pacific/Kiritimati' => 'લાઇન આઇલેન્ડ્સ સમય (કિરિતિમાતી)',
         'Pacific/Kosrae' => 'કોસરે સમય',
         'Pacific/Kwajalein' => 'માર્શલ આઇલેન્ડ્સ સમય (ક્વાજાલીન)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'પલાઉ સમય',
         'Pacific/Pitcairn' => 'પિટકેયર્ન સમય (પીટકૈર્ન)',
         'Pacific/Ponape' => 'પોનપે સમય (પોન્પે)',
+        'Pacific/Pohnpei' => 'પોનપે સમય (પોન્પે)',
         'Pacific/Port_Moresby' => 'પાપુઆ ન્યુ ગિની સમય (પોર્ટ મોર્સ્બી)',
         'Pacific/Rarotonga' => 'કુક આઇલેન્ડ્સ સમય (રેરોટોંગા)',
         'Pacific/Saipan' => 'કેમોરો માનક સમય (સાઇપન)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'ગિલબર્ટ આઇલેન્ડ્સ સમય (તારાવા)',
         'Pacific/Tongatapu' => 'ટોંગા સમય (ટૉંગાટાપુ)',
         'Pacific/Truk' => 'ચુઉક સમય (ચુક)',
+        'Pacific/Chuuk' => 'ચુઉક સમય (ચુક)',
         'Pacific/Wake' => 'વૅક આઇલેન્ડ સમય (વેક)',
         'Pacific/Wallis' => 'વૉલિસ અને ફ્યુચુના સમય (વાલિસ)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ha.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ha.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ha.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ha.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Lokacin Gabashin Afirka (Addis Ababa)',
         'Africa/Algiers' => 'Tsakiyar a lokaci turai (Algiers)',
         'Africa/Asmera' => 'Lokacin Gabashin Afirka (Asmara)',
+        'Africa/Asmara' => 'Lokacin Gabashin Afirka (Asmara)',
         'Africa/Bamako' => 'Lokacin Greenwich a Ingila (Bamako)',
         'Africa/Bangui' => 'Lokacin Afirka ta Yamma (Bangui)',
         'Africa/Banjul' => 'Lokacin Greenwich a Ingila (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Lokacin Gabashin Afirka (Dar es Salaam)',
         'Africa/Djibouti' => 'Lokacin Gabashin Afirka (Djibouti)',
         'Africa/Douala' => 'Lokacin Afirka ta Yamma (Douala)',
-        'Africa/El_Aaiun' => 'Lokaci ta yammacin turai (El Aaiun)',
+        'Africa/El_Aaiun' => 'Lokaci ta yammacin turai (El Aaiún)',
         'Africa/Freetown' => 'Lokacin Greenwich a Ingila (Freetown)',
         'Africa/Gaborone' => 'Lokacin Afirka ta Tsakiya (Gaborone)',
         'Africa/Harare' => 'Lokacin Afirka ta Tsakiya (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Lokacin Afirka ta Yamma (Kinshasa)',
         'Africa/Lagos' => 'Lokacin Afirka ta Yamma (Lagos)',
         'Africa/Libreville' => 'Lokacin Afirka ta Yamma (Libreville)',
-        'Africa/Lome' => 'Lokacin Greenwich a Ingila (Lome)',
+        'Africa/Lome' => 'Lokacin Greenwich a Ingila (Lomé)',
         'Africa/Luanda' => 'Lokacin Afirka ta Yamma (Luanda)',
         'Africa/Lubumbashi' => 'Lokacin Afirka ta Tsakiya (Lubumbashi)',
         'Africa/Lusaka' => 'Lokacin Afirka ta Tsakiya (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Lokacin Gabashin Afirka (Mogadishu)',
         'Africa/Monrovia' => 'Lokacin Greenwich a Ingila (Monrovia)',
         'Africa/Nairobi' => 'Lokacin Gabashin Afirka (Nairobi)',
-        'Africa/Ndjamena' => 'Lokacin Afirka ta Yamma (Ndjamena)',
+        'Africa/Ndjamena' => 'Lokacin Afirka ta Yamma (N’Djamena)',
         'Africa/Niamey' => 'Lokacin Afirka ta Yamma (Niamey)',
         'Africa/Nouakchott' => 'Lokacin Greenwich a Ingila (Nouakchott)',
         'Africa/Ouagadougou' => 'Lokacin Greenwich a Ingila (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Lokacin Alaska (Anchorage)',
         'America/Anguilla' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Anguilla)',
         'America/Antigua' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Antigua)',
-        'America/Araguaina' => 'Lokacin Brasillia (Araguaina)',
+        'America/Araguaina' => 'Lokacin Brasillia (Araguaína)',
         'America/Argentina/La_Rioja' => 'Lokacin Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Lokacin Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Lokacin Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Lokacin Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Lokacin Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Lokacin Argentina (San Luis)',
-        'America/Argentina/Tucuman' => 'Lokacin Argentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Lokacin Argentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Lokacin Argentina (Ushuaia)',
         'America/Aruba' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Aruba)',
         'America/Asuncion' => 'Lokacin Paraguay (Asunción)',
         'America/Bahia' => 'Lokacin Brasillia (Bahia)',
         'America/Bahia_Banderas' => 'Lokaci dake Amurika arewa ta tsakiyar (Bahía de Banderas)',
         'America/Barbados' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Barbados)',
-        'America/Belem' => 'Lokacin Brasillia (Belem)',
+        'America/Belem' => 'Lokacin Brasillia (Belém)',
         'America/Belize' => 'Lokaci dake Amurika arewa ta tsakiyar (Belize)',
         'America/Blanc-Sablon' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Blanc-Sablon)',
         'America/Boa_Vista' => 'Lokacin Amazon (Boa Vista)',
-        'America/Bogota' => 'Lokacin Colombia (Bogota)',
+        'America/Bogota' => 'Lokacin Colombia (Bogotá)',
         'America/Boise' => 'Lokacin Tsauni na Arewacin Amurka (Boise)',
         'America/Buenos_Aires' => 'Lokacin Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Lokacin Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Lokacin Tsauni na Arewacin Amurka (Cambridge Bay)',
         'America/Campo_Grande' => 'Lokacin Amazon (Campo Grande)',
         'America/Cancun' => 'Lokacin Gabas dake Arewacin Amurikaa (Cancún)',
         'America/Caracas' => 'Lokacin Venezuela (Caracas)',
         'America/Catamarca' => 'Lokacin Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Lokacin Argentina (Catamarca)',
         'America/Cayenne' => 'Lokacin French Guiana (Cayenne)',
         'America/Cayman' => 'Lokacin Gabas dake Arewacin Amurikaa (Cayman)',
         'America/Chicago' => 'Lokaci dake Amurika arewa ta tsakiyar (Chicago)',
         'America/Chihuahua' => 'Lokaci dake Amurika arewa ta tsakiyar (Chihuahua)',
         'America/Ciudad_Juarez' => 'Lokacin Tsauni na Arewacin Amurka (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Lokacin Gabas dake Arewacin Amurikaa (Atikokan)',
-        'America/Cordoba' => 'Lokacin Argentina (Cordoba)',
+        'America/Atikokan' => 'Lokacin Gabas dake Arewacin Amurikaa (Atikokan)',
+        'America/Cordoba' => 'Lokacin Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Lokacin Argentina (Córdoba)',
         'America/Costa_Rica' => 'Lokaci dake Amurika arewa ta tsakiyar (Costa Rica)',
+        'America/Coyhaique' => 'Lokacin Chile (Coyhaique)',
         'America/Creston' => 'Lokacin Tsauni na Arewacin Amurka (Creston)',
-        'America/Cuiaba' => 'Lokacin Amazon (Cuiaba)',
+        'America/Cuiaba' => 'Lokacin Amazon (Cuiabá)',
         'America/Curacao' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Curaçao)',
         'America/Danmarkshavn' => 'Lokacin Greenwich a Ingila (Danmarkshavn)',
         'America/Dawson' => 'Lokacin Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Lokacin Gabas dake Arewacin Amurikaa (Detroit)',
         'America/Dominica' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Dominica)',
         'America/Edmonton' => 'Lokacin Tsauni na Arewacin Amurka (Edmonton)',
-        'America/Eirunepe' => 'Birazil Lokaci (Eirunepe)',
+        'America/Eirunepe' => 'Birazil Lokaci (Eirunepé)',
         'America/El_Salvador' => 'Lokaci dake Amurika arewa ta tsakiyar (El Salvador)',
         'America/Fort_Nelson' => 'Lokacin Tsauni na Arewacin Amurka (Fort Nelson)',
         'America/Fortaleza' => 'Lokacin Brasillia (Fortaleza)',
         'America/Glace_Bay' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Glace Bay)',
         'America/Godthab' => 'Grinlan Lokaci (Nuuk)',
+        'America/Nuuk' => 'Grinlan Lokaci (Nuuk)',
         'America/Goose_Bay' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Goose Bay)',
         'America/Grand_Turk' => 'Lokacin Gabas dake Arewacin Amurikaa (Grand Turk)',
         'America/Grenada' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Lokacin Gabas dake Arewacin Amurikaa (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Lokacin Gabas dake Arewacin Amurikaa (Winamac, Indiana)',
         'America/Indianapolis' => 'Lokacin Gabas dake Arewacin Amurikaa (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Lokacin Gabas dake Arewacin Amurikaa (Indianapolis)',
         'America/Inuvik' => 'Lokacin Tsauni na Arewacin Amurka (Inuvik)',
         'America/Iqaluit' => 'Lokacin Gabas dake Arewacin Amurikaa (Iqaluit)',
         'America/Jamaica' => 'Lokacin Gabas dake Arewacin Amurikaa (Jamaica)',
         'America/Jujuy' => 'Lokacin Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Lokacin Argentina (Jujuy)',
         'America/Juneau' => 'Lokacin Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Lokacin Gabas dake Arewacin Amurikaa (Monticello, Kentucky)',
         'America/Kralendijk' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Lokacin Peru (Lima)',
         'America/Los_Angeles' => 'Lokacin Arewacin Amurika (Los Angeles)',
         'America/Louisville' => 'Lokacin Gabas dake Arewacin Amurikaa (Louisville)',
+        'America/Kentucky/Louisville' => 'Lokacin Gabas dake Arewacin Amurikaa (Louisville)',
         'America/Lower_Princes' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Lokacin Brasillia (Maceio)',
+        'America/Maceio' => 'Lokacin Brasillia (Maceió)',
         'America/Managua' => 'Lokaci dake Amurika arewa ta tsakiyar (Managua)',
         'America/Manaus' => 'Lokacin Amazon (Manaus)',
         'America/Marigot' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Marigot)',
         'America/Martinique' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Martinique)',
         'America/Matamoros' => 'Lokaci dake Amurika arewa ta tsakiyar (Matamoros)',
-        'America/Mazatlan' => 'Lokacin Mekziko Pacific (Mazatlan)',
+        'America/Mazatlan' => 'Lokacin Mekziko Pacific (Mazatlán)',
         'America/Mendoza' => 'Lokacin Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Lokacin Argentina (Mendoza)',
         'America/Menominee' => 'Lokaci dake Amurika arewa ta tsakiyar (Menominee)',
         'America/Merida' => 'Lokaci dake Amurika arewa ta tsakiyar (Mérida)',
         'America/Metlakatla' => 'Lokacin Alaska (Metlakatla)',
-        'America/Mexico_City' => 'Lokaci dake Amurika arewa ta tsakiyar (Mexico City)',
-        'America/Miquelon' => 'Lokacin St. Pierre da Miquelon',
+        'America/Mexico_City' => 'Lokaci dake Amurika arewa ta tsakiyar (Ciudad de México)',
+        'America/Miquelon' => 'Lokacin St. Pierre da Miquelon (Saint-Pierre)',
         'America/Moncton' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Moncton)',
         'America/Monterrey' => 'Lokaci dake Amurika arewa ta tsakiyar (Monterrey)',
         'America/Montevideo' => 'Lokacin Uruguay (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Lokaci dake Amurika arewa ta tsakiyar (Regina)',
         'America/Resolute' => 'Lokaci dake Amurika arewa ta tsakiyar (Resolute)',
         'America/Rio_Branco' => 'Birazil Lokaci (Rio Branco)',
-        'America/Santarem' => 'Lokacin Brasillia (Santarem)',
+        'America/Santarem' => 'Lokacin Brasillia (Santarém)',
         'America/Santiago' => 'Lokacin Chile (Santiago)',
         'America/Santo_Domingo' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Santo Domingo)',
-        'America/Sao_Paulo' => 'Lokacin Brasillia (Sao Paulo)',
+        'America/Sao_Paulo' => 'Lokacin Brasillia (São Paulo)',
         'America/Scoresbysund' => 'Grinlan Lokaci (Ittoqqortoormiit)',
         'America/Sitka' => 'Lokacin Alaska (Sitka)',
         'America/St_Barthelemy' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (St. Barthélemy)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Lokacin New Zealand (McMurdo)',
         'Antarctica/Palmer' => 'Lokacin Chile (Palmer)',
         'Antarctica/Rothera' => 'Lokacin Rothera',
-        'Antarctica/Syowa' => 'Lokacin Syowa',
+        'Antarctica/Syowa' => 'Lokacin Syowa (Showa)',
         'Antarctica/Troll' => 'Lokacin Greenwich a Ingila (Troll)',
         'Antarctica/Vostok' => 'Lokacin Vostok',
         'Arctic/Longyearbyen' => 'Tsakiyar a lokaci turai (Longyearbyen)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Lokacin Arebiya (Bahrain)',
         'Asia/Baku' => 'Lokacin Azerbaijan (Baku)',
         'Asia/Bangkok' => 'Lokacin Indochina (Bangkok)',
-        'Asia/Barnaul' => 'Rasha Lokaci (Barnaul)',
+        'Asia/Barnaul' => 'Lokacin Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Lokaci a turai gabas (Beirut)',
         'Asia/Bishkek' => 'Lokacin Kyrgyzstan (Bishkek)',
         'Asia/Brunei' => 'Lokacin Brunei Darussalam',
         'Asia/Calcutta' => 'Tsayayyen lokacin Indiya (Kolkata)',
+        'Asia/Kolkata' => 'Tsayayyen lokacin Indiya (Kolkata)',
         'Asia/Chita' => 'Lokacin Yakutsk (Chita)',
         'Asia/Colombo' => 'Tsayayyen lokacin Indiya (Colombo)',
         'Asia/Damascus' => 'Lokaci a turai gabas (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Lokaci a turai gabas (Gaza)',
         'Asia/Hebron' => 'Lokaci a turai gabas (Hebron)',
         'Asia/Hong_Kong' => 'Lokacin Hong Kong',
-        'Asia/Hovd' => 'Lokacin Hovd',
+        'Asia/Hovd' => 'Lokacin Hovd (Khovd)',
         'Asia/Irkutsk' => 'Lokacin Irkutsk',
         'Asia/Jakarta' => 'Lokacin Yammacin Indonesia (Jakarta)',
         'Asia/Jayapura' => 'Lokacin Gabashin Indonesia (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Rasha Lokaci (Kamchatka)',
         'Asia/Karachi' => 'Lokacin Pakistan (Karachi)',
         'Asia/Katmandu' => 'Lokacin Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Lokacin Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Lokacin Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Lokacin Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Lokacin Malaysia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Tsayayyen lokacin Gulf (Muscat)',
         'Asia/Nicosia' => 'Lokaci a turai gabas (Nicosia)',
         'Asia/Novokuznetsk' => 'Lokacin Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Lokacin Novosibirsk',
+        'Asia/Novosibirsk' => 'Lokacin Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Lokacin Omsk',
         'Asia/Oral' => 'Lokacin Kazakhstan (Oral)',
         'Asia/Phnom_Penh' => 'Lokacin Indochina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Lokacin Kazakhstan (Qostanay)',
         'Asia/Qyzylorda' => 'Lokacin Kazakhstan (Qyzylorda)',
         'Asia/Rangoon' => 'Lokacin Myanmar (Yangon)',
+        'Asia/Yangon' => 'Lokacin Myanmar (Yangon)',
         'Asia/Riyadh' => 'Lokacin Arebiya (Riyadh)',
         'Asia/Saigon' => 'Lokacin Indochina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Lokacin Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Lokacin Indochina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Lokacin Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Lokacin Uzbekistan (Samarkand)',
         'Asia/Seoul' => 'Lokacin Koriya (Seoul)',
         'Asia/Shanghai' => 'Lokacin Sin (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Lokacin Iran (Tehran)',
         'Asia/Thimphu' => 'Lokacin Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Lokacin Japan (Tokyo)',
-        'Asia/Tomsk' => 'Rasha Lokaci (Tomsk)',
+        'Asia/Tomsk' => 'Lokacin Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Lokacin Ulaanbaatar',
-        'Asia/Urumqi' => 'Sin Lokaci (Urumqi)',
+        'Asia/Urumqi' => 'Sin Lokaci (Ürümqi)',
         'Asia/Ust-Nera' => 'Lokacin Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Lokacin Indochina (Vientiane)',
         'Asia/Vladivostok' => 'Lokacin Vladivostok',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Lokacin Armenia (Yerevan)',
         'Atlantic/Azores' => 'Lokacin Azores',
         'Atlantic/Bermuda' => 'Lokacin Kanada, Puerto Rico da Virgin Islands (Bermuda)',
-        'Atlantic/Canary' => 'Lokaci ta yammacin turai (Canary)',
+        'Atlantic/Canary' => 'Lokaci ta yammacin turai (Canarias)',
         'Atlantic/Cape_Verde' => 'Lokacin Cape Verde',
         'Atlantic/Faeroe' => 'Lokaci ta yammacin turai (Faroe)',
+        'Atlantic/Faroe' => 'Lokaci ta yammacin turai (Faroe)',
         'Atlantic/Madeira' => 'Lokaci ta yammacin turai (Madeira)',
         'Atlantic/Reykjavik' => 'Lokacin Greenwich a Ingila (Reykjavik)',
         'Atlantic/South_Georgia' => 'Lokacin Kudancin Georgia (South Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Hadewa Lokaci na Duniya',
         'Europe/Amsterdam' => 'Tsakiyar a lokaci turai (Amsterdam)',
         'Europe/Andorra' => 'Tsakiyar a lokaci turai (Andorra)',
-        'Europe/Astrakhan' => 'Lokacin Moscow (Astrakhan)',
+        'Europe/Astrakhan' => 'Rasha Lokaci (Astrakhan)',
         'Europe/Athens' => 'Lokaci a turai gabas (Athens)',
         'Europe/Belgrade' => 'Tsakiyar a lokaci turai (Belgrade)',
         'Europe/Berlin' => 'Tsakiyar a lokaci turai (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Tsakiyar a lokaci turai (Brussels)',
         'Europe/Bucharest' => 'Lokaci a turai gabas (Bucharest)',
         'Europe/Budapest' => 'Tsakiyar a lokaci turai (Budapest)',
-        'Europe/Busingen' => 'Tsakiyar a lokaci turai (Busingen)',
-        'Europe/Chisinau' => 'Lokaci a turai gabas (Chisinau)',
+        'Europe/Busingen' => 'Tsakiyar a lokaci turai (Büsingen)',
+        'Europe/Chisinau' => 'Lokaci a turai gabas (Chișinău)',
         'Europe/Copenhagen' => 'Tsakiyar a lokaci turai (Copenhagen)',
         'Europe/Dublin' => 'Lokacin Greenwich a Ingila (Dublin)',
         'Europe/Gibraltar' => 'Tsakiyar a lokaci turai (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Lokacin Greenwich a Ingila (Jersey)',
         'Europe/Kaliningrad' => 'Lokaci a turai gabas (Kaliningrad)',
         'Europe/Kiev' => 'Lokaci a turai gabas (Kyiv)',
-        'Europe/Kirov' => 'Rasha Lokaci (Kirov)',
+        'Europe/Kyiv' => 'Lokaci a turai gabas (Kyiv)',
+        'Europe/Kirov' => 'Lokacin Moscow (Kirov)',
         'Europe/Lisbon' => 'Lokaci ta yammacin turai (Lisbon)',
         'Europe/Ljubljana' => 'Tsakiyar a lokaci turai (Ljubljana)',
         'Europe/London' => 'Lokacin Greenwich a Ingila (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Rasha Lokaci (Samara)',
         'Europe/San_Marino' => 'Tsakiyar a lokaci turai (San Marino)',
         'Europe/Sarajevo' => 'Tsakiyar a lokaci turai (Sarajevo)',
-        'Europe/Saratov' => 'Lokacin Moscow (Saratov)',
+        'Europe/Saratov' => 'Rasha Lokaci (Saratov)',
         'Europe/Simferopol' => 'Lokacin Moscow (Simferopol)',
         'Europe/Skopje' => 'Tsakiyar a lokaci turai (Skopje)',
         'Europe/Sofia' => 'Lokaci a turai gabas (Sofia)',
         'Europe/Stockholm' => 'Tsakiyar a lokaci turai (Stockholm)',
         'Europe/Tallinn' => 'Lokaci a turai gabas (Tallinn)',
-        'Europe/Tirane' => 'Tsakiyar a lokaci turai (Tirane)',
-        'Europe/Ulyanovsk' => 'Lokacin Moscow (Ulyanovsk)',
+        'Europe/Tirane' => 'Tsakiyar a lokaci turai (Tirana)',
+        'Europe/Ulyanovsk' => 'Rasha Lokaci (Ulyanovsk)',
         'Europe/Vaduz' => 'Tsakiyar a lokaci turai (Vaduz)',
         'Europe/Vatican' => 'Tsakiyar a lokaci turai (Vatican)',
         'Europe/Vienna' => 'Tsakiyar a lokaci turai (Vienna)',
         'Europe/Vilnius' => 'Lokaci a turai gabas (Vilnius)',
-        'Europe/Volgograd' => 'Lokacin Volgograd',
+        'Europe/Volgograd' => 'Lokacin Moscow (Volgograd)',
         'Europe/Warsaw' => 'Tsakiyar a lokaci turai (Warsaw)',
         'Europe/Zagreb' => 'Tsakiyar a lokaci turai (Zagreb)',
         'Europe/Zurich' => 'Tsakiyar a lokaci turai (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Lokacin Tekun Indiya (Chagos)',
         'Indian/Christmas' => 'Lokacin Christmas Island',
         'Indian/Cocos' => 'Lokacin Cocos Islands',
-        'Indian/Comoro' => 'Lokacin Gabashin Afirka (Comoro)',
+        'Indian/Comoro' => 'Lokacin Gabashin Afirka (Comores)',
         'Indian/Kerguelen' => 'Lokacin Kudancin Faransa da Antarctic (Kerguelen)',
-        'Indian/Mahe' => 'Lokacin Seychelles (Mahe)',
+        'Indian/Mahe' => 'Lokacin Seychelles (Mahé)',
         'Indian/Maldives' => 'Lokacin Maldives',
         'Indian/Mauritius' => 'Lokacin Mauritius',
         'Indian/Mayotte' => 'Lokacin Gabashin Afirka (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Lokacin Chatham',
         'Pacific/Easter' => 'Lokacin Easter Island',
         'Pacific/Efate' => 'Lokacin Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Lokacin Phoenix Islands (Enderbury)',
+        'Pacific/Enderbury' => 'Lokacin Phoenix Islands (Tsibirin Canton)',
+        'Pacific/Kanton' => 'Lokacin Phoenix Islands (Tsibirin Canton)',
         'Pacific/Fakaofo' => 'Lokacin Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Lokacin Fiji',
         'Pacific/Funafuti' => 'Lokacin Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Lokacin Galapagos',
+        'Pacific/Galapagos' => 'Lokacin Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Lokacin Gambier',
         'Pacific/Guadalcanal' => 'Lokacin Rana na Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Tsayayyen Lokacin Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Lokaci na Hawaii-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Tsayayyen Lokacin Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Lokacin Line Islands (Kiritimati)',
         'Pacific/Kosrae' => 'Lokacin Kosrae',
         'Pacific/Kwajalein' => 'Lokacin Marshall Islands (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Lokacin Nauru',
         'Pacific/Niue' => 'Lokacin Niue',
         'Pacific/Norfolk' => 'Lokacin Norfolk Island',
-        'Pacific/Noumea' => 'Lokacin New Caledonia (Noumea)',
+        'Pacific/Noumea' => 'Lokacin New Caledonia (Nouméa)',
         'Pacific/Pago_Pago' => 'Lokacin Samoa (Pago Pago)',
         'Pacific/Palau' => 'Lokacin Palau',
         'Pacific/Pitcairn' => 'Lokacin Pitcairn',
         'Pacific/Ponape' => 'Lokacin Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Lokacin Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Lokacin Papua New Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'Lokacin Cook Islands (Rarotonga)',
         'Pacific/Saipan' => 'Tsayayyen Lokacin Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Lokacin Gilbert Islands (Tarawa)',
         'Pacific/Tongatapu' => 'Lokacin Tonga (Tongatapu)',
         'Pacific/Truk' => 'Lokacin Chuuk',
+        'Pacific/Chuuk' => 'Lokacin Chuuk',
         'Pacific/Wake' => 'Lokacin Wake Island',
-        'Pacific/Wallis' => 'Lokacin Wallis da Futuna',
+        'Pacific/Wallis' => 'Lokacin Wallis da Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/he.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/he.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/he.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/he.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'שעון מזרח אפריקה (אדיס אבבה)',
         'Africa/Algiers' => 'שעון מרכז אירופה (אלג׳יר)',
         'Africa/Asmera' => 'שעון מזרח אפריקה (אסמרה)',
+        'Africa/Asmara' => 'שעון מזרח אפריקה (אסמרה)',
         'Africa/Bamako' => 'שעון גריניץ׳‏ (במאקו)',
         'Africa/Bangui' => 'שעון מערב אפריקה (בנגואי)',
         'Africa/Banjul' => 'שעון גריניץ׳‏ (בנג׳ול)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'שעון קולומביה (בוגוטה)',
         'America/Boise' => 'שעון אזור ההרים בארה״ב (בויסי)',
         'America/Buenos_Aires' => 'שעון ארגנטינה (בואנוס איירס)',
+        'America/Argentina/Buenos_Aires' => 'שעון ארגנטינה (בואנוס איירס)',
         'America/Cambridge_Bay' => 'שעון אזור ההרים בארה״ב (קיימברידג׳ ביי)',
         'America/Campo_Grande' => 'שעון אמזונס (קמפו גרנדה)',
         'America/Cancun' => 'שעון החוף המזרחי (קנקון)',
         'America/Caracas' => 'שעון ונצואלה (קראקס)',
         'America/Catamarca' => 'שעון ארגנטינה (קטמרקה)',
+        'America/Argentina/Catamarca' => 'שעון ארגנטינה (קטמרקה)',
         'America/Cayenne' => 'שעון גיאנה הצרפתית (קאיין)',
         'America/Cayman' => 'שעון החוף המזרחי (קיימן)',
         'America/Chicago' => 'שעון מרכז ארה״ב (שיקגו)',
         'America/Chihuahua' => 'שעון מרכז ארה״ב (צ׳יוואווה)',
         'America/Ciudad_Juarez' => 'שעון אזור ההרים בארה״ב (סיודד חוארס)',
         'America/Coral_Harbour' => 'שעון החוף המזרחי (אטיקוקן)',
+        'America/Atikokan' => 'שעון החוף המזרחי (אטיקוקן)',
         'America/Cordoba' => 'שעון ארגנטינה (קורדובה)',
+        'America/Argentina/Cordoba' => 'שעון ארגנטינה (קורדובה)',
         'America/Costa_Rica' => 'שעון מרכז ארה״ב (קוסטה ריקה)',
+        'America/Coyhaique' => 'שעון צ׳ילה (קויאיקה)',
         'America/Creston' => 'שעון אזור ההרים בארה״ב (קרסטון)',
         'America/Cuiaba' => 'שעון אמזונס (קויאבה)',
         'America/Curacao' => 'שעון האוקיינוס האטלנטי (קוראסאו)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'שעון ברזיליה (פורטאלזה)',
         'America/Glace_Bay' => 'שעון האוקיינוס האטלנטי (גלייס ביי)',
         'America/Godthab' => 'שעון גרינלנד (נואוק)',
+        'America/Nuuk' => 'שעון גרינלנד (נואוק)',
         'America/Goose_Bay' => 'שעון האוקיינוס האטלנטי (גוס ביי)',
         'America/Grand_Turk' => 'שעון החוף המזרחי (גרנד טורק)',
         'America/Grenada' => 'שעון האוקיינוס האטלנטי (גרנדה)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'שעון החוף המזרחי (וינסנס, אינדיאנה)',
         'America/Indiana/Winamac' => 'שעון החוף המזרחי (וינמאק, אינדיאנה)',
         'America/Indianapolis' => 'שעון החוף המזרחי (אינדיאנפוליס)',
+        'America/Indiana/Indianapolis' => 'שעון החוף המזרחי (אינדיאנפוליס)',
         'America/Inuvik' => 'שעון אזור ההרים בארה״ב (אינוויק)',
         'America/Iqaluit' => 'שעון החוף המזרחי (איקלואיט)',
         'America/Jamaica' => 'שעון החוף המזרחי (ג׳מייקה)',
         'America/Jujuy' => 'שעון ארגנטינה (חוחוי)',
+        'America/Argentina/Jujuy' => 'שעון ארגנטינה (חוחוי)',
         'America/Juneau' => 'שעון אלסקה (ג׳ונו)',
         'America/Kentucky/Monticello' => 'שעון החוף המזרחי (מונטיצ׳לו, קנטאקי)',
         'America/Kralendijk' => 'שעון האוקיינוס האטלנטי (קרלנדייק)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'שעון פרו (לימה)',
         'America/Los_Angeles' => 'שעון מערב ארה״ב (לוס אנג׳לס)',
         'America/Louisville' => 'שעון החוף המזרחי (לואיוויל)',
+        'America/Kentucky/Louisville' => 'שעון החוף המזרחי (לואיוויל)',
         'America/Lower_Princes' => 'שעון האוקיינוס האטלנטי (לואוור פרינסס קוורטר)',
         'America/Maceio' => 'שעון ברזיליה (מסייאו)',
         'America/Managua' => 'שעון מרכז ארה״ב (מנגואה)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'שעון מרכז ארה״ב (מטמורוס)',
         'America/Mazatlan' => 'שעון מערב מקסיקו (מזטלן)',
         'America/Mendoza' => 'שעון ארגנטינה (מנדוזה)',
+        'America/Argentina/Mendoza' => 'שעון ארגנטינה (מנדוזה)',
         'America/Menominee' => 'שעון מרכז ארה״ב (מנומיני)',
         'America/Merida' => 'שעון מרכז ארה״ב (מרידה)',
         'America/Metlakatla' => 'שעון אלסקה (מטלקטלה)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'שעון חצי האי ערב (עדן)',
         'Asia/Almaty' => 'שעון קזחסטן (אלמאטי)',
         'Asia/Amman' => 'שעון מזרח אירופה (עמאן)',
-        'Asia/Anadyr' => 'שעון אנדיר',
+        'Asia/Anadyr' => 'שעון פטרופבלובסק-קמצ׳טסקי (אנדיר)',
         'Asia/Aqtau' => 'שעון קזחסטן (אקטאו)',
         'Asia/Aqtobe' => 'שעון קזחסטן (אקטובה)',
         'Asia/Ashgabat' => 'שעון טורקמניסטן (אשגבט)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'שעון חצי האי ערב (בחריין)',
         'Asia/Baku' => 'שעון אזרבייג׳ן (באקו)',
         'Asia/Bangkok' => 'שעון הודו-סין (בנגקוק)',
-        'Asia/Barnaul' => 'שעון רוסיה (ברנאול)',
+        'Asia/Barnaul' => 'שעון קרסנויארסק (ברנאול)',
         'Asia/Beirut' => 'שעון מזרח אירופה (ביירות)',
         'Asia/Bishkek' => 'שעון קירגיזסטן (בישקק)',
         'Asia/Brunei' => 'שעון ברוניי דארוסלאם',
         'Asia/Calcutta' => 'שעון הודו (קולקטה)',
+        'Asia/Kolkata' => 'שעון הודו (קולקטה)',
         'Asia/Chita' => 'שעון יקוטסק (צ׳יטה)',
         'Asia/Colombo' => 'שעון הודו (קולומבו)',
         'Asia/Damascus' => 'שעון מזרח אירופה (דמשק)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'שעון פטרופבלובסק-קמצ׳טסקי (קמצ׳טקה)',
         'Asia/Karachi' => 'שעון פקיסטן (קראצ׳י)',
         'Asia/Katmandu' => 'שעון נפאל (קטמנדו)',
+        'Asia/Kathmandu' => 'שעון נפאל (קטמנדו)',
         'Asia/Khandyga' => 'שעון יקוטסק (חנדיגה)',
         'Asia/Krasnoyarsk' => 'שעון קרסנויארסק',
         'Asia/Kuala_Lumpur' => 'שעון מלזיה (קואלה לומפור)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'שעון מדינות המפרץ (מוסקט)',
         'Asia/Nicosia' => 'שעון מזרח אירופה (ניקוסיה)',
         'Asia/Novokuznetsk' => 'שעון קרסנויארסק (נובוקוזנטסק)',
-        'Asia/Novosibirsk' => 'שעון נובוסיבירסק',
+        'Asia/Novosibirsk' => 'שעון קרסנויארסק (נובוסיבירסק)',
         'Asia/Omsk' => 'שעון אומסק',
         'Asia/Oral' => 'שעון קזחסטן (אורל)',
         'Asia/Phnom_Penh' => 'שעון הודו-סין (פנום פן)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'שעון קזחסטן (קוסטנאי)',
         'Asia/Qyzylorda' => 'שעון קזחסטן (קיזילורדה)',
         'Asia/Rangoon' => 'שעון מיאנמר (רנגון)',
+        'Asia/Yangon' => 'שעון מיאנמר (רנגון)',
         'Asia/Riyadh' => 'שעון חצי האי ערב (ריאד)',
         'Asia/Saigon' => 'שעון הודו-סין (הו צ׳י מין סיטי)',
-        'Asia/Sakhalin' => 'שעון סחלין',
+        'Asia/Ho_Chi_Minh' => 'שעון הודו-סין (הו צ׳י מין סיטי)',
+        'Asia/Sakhalin' => 'שעון מגדן (סחלין)',
         'Asia/Samarkand' => 'שעון אוזבקיסטן (סמרקנד)',
         'Asia/Seoul' => 'שעון קוריאה (סיאול)',
         'Asia/Shanghai' => 'שעון סין (שנחאי)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'שעון איראן (טהרן)',
         'Asia/Thimphu' => 'שעון בהוטן (טהימפהו)',
         'Asia/Tokyo' => 'שעון יפן (טוקיו)',
-        'Asia/Tomsk' => 'שעון רוסיה (טומסק)',
+        'Asia/Tomsk' => 'שעון קרסנויארסק (טומסק)',
         'Asia/Ulaanbaatar' => 'שעון אולאן באטור',
         'Asia/Urumqi' => 'שעון סין (אורומקי)',
         'Asia/Ust-Nera' => 'שעון ולדיווסטוק (אוסט-נרה)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'שעון מערב אירופה (האיים הקנריים)',
         'Atlantic/Cape_Verde' => 'שעון כף ורדה',
         'Atlantic/Faeroe' => 'שעון מערב אירופה (פארו)',
+        'Atlantic/Faroe' => 'שעון מערב אירופה (פארו)',
         'Atlantic/Madeira' => 'שעון מערב אירופה (מדיירה)',
         'Atlantic/Reykjavik' => 'שעון גריניץ׳‏ (רייקיאוויק)',
         'Atlantic/South_Georgia' => 'שעון דרום ג׳ורג׳יה',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'זמן אוניברסלי מתואם',
         'Europe/Amsterdam' => 'שעון מרכז אירופה (אמסטרדם)',
         'Europe/Andorra' => 'שעון מרכז אירופה (אנדורה)',
-        'Europe/Astrakhan' => 'שעון מוסקבה (אסטרחן)',
+        'Europe/Astrakhan' => 'שעון סמרה (אסטרחן)',
         'Europe/Athens' => 'שעון מזרח אירופה (אתונה)',
         'Europe/Belgrade' => 'שעון מרכז אירופה (בלגרד)',
         'Europe/Berlin' => 'שעון מרכז אירופה (ברלין)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'שעון גריניץ׳‏ (ג׳רזי)',
         'Europe/Kaliningrad' => 'שעון מזרח אירופה (קלינינגרד)',
         'Europe/Kiev' => 'שעון מזרח אירופה (קייב)',
-        'Europe/Kirov' => 'שעון רוסיה (קירוב)',
+        'Europe/Kyiv' => 'שעון מזרח אירופה (קייב)',
+        'Europe/Kirov' => 'שעון מוסקבה (קירוב)',
         'Europe/Lisbon' => 'שעון מערב אירופה (ליסבון)',
         'Europe/Ljubljana' => 'שעון מרכז אירופה (לובליאנה)',
         'Europe/London' => 'שעון גריניץ׳‏ (לונדון)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'שעון סמרה',
         'Europe/San_Marino' => 'שעון מרכז אירופה (סן מרינו)',
         'Europe/Sarajevo' => 'שעון מרכז אירופה (סרייבו)',
-        'Europe/Saratov' => 'שעון מוסקבה (סראטוב)',
+        'Europe/Saratov' => 'שעון סמרה (סראטוב)',
         'Europe/Simferopol' => 'שעון מוסקבה (סימפרופול)',
         'Europe/Skopje' => 'שעון מרכז אירופה (סקופיה)',
         'Europe/Sofia' => 'שעון מזרח אירופה (סופיה)',
         'Europe/Stockholm' => 'שעון מרכז אירופה (שטוקהולם)',
         'Europe/Tallinn' => 'שעון מזרח אירופה (טאלין)',
         'Europe/Tirane' => 'שעון מרכז אירופה (טירנה)',
-        'Europe/Ulyanovsk' => 'שעון מוסקבה (אוליאנובסק)',
+        'Europe/Ulyanovsk' => 'שעון סמרה (אוליאנובסק)',
         'Europe/Vaduz' => 'שעון מרכז אירופה (ואדוץ)',
         'Europe/Vatican' => 'שעון מרכז אירופה (הוותיקן)',
         'Europe/Vienna' => 'שעון מרכז אירופה (וינה)',
         'Europe/Vilnius' => 'שעון מזרח אירופה (וילנה)',
-        'Europe/Volgograd' => 'שעון וולגוגרד',
+        'Europe/Volgograd' => 'שעון מוסקבה (וולגוגרד)',
         'Europe/Warsaw' => 'שעון מרכז אירופה (ורשה)',
         'Europe/Zagreb' => 'שעון מרכז אירופה (זאגרב)',
         'Europe/Zurich' => 'שעון מרכז אירופה (ציריך)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'שעון צ׳טהאם (צ׳אטהאם)',
         'Pacific/Easter' => 'שעון אי הפסחא',
         'Pacific/Efate' => 'שעון ונואטו (אפטה)',
-        'Pacific/Enderbury' => 'שעון איי פיניקס (אנדרבורי)',
+        'Pacific/Enderbury' => 'שעון איי פיניקס (קנטון)',
+        'Pacific/Kanton' => 'שעון איי פיניקס (קנטון)',
         'Pacific/Fakaofo' => 'שעון טוקלאו (פקאופו)',
         'Pacific/Fiji' => 'שעון פיג׳י',
         'Pacific/Funafuti' => 'שעון טובאלו (פונפוטי)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'שעון איי גמבייה',
         'Pacific/Guadalcanal' => 'שעון איי שלמה (גוודלקנאל)',
         'Pacific/Guam' => 'שעון צ׳אמורו (גואם)',
-        'Pacific/Honolulu' => 'שעון האיים האלאוטיים הוואי (הונולולו)',
+        'Pacific/Honolulu' => 'שעון האיים האלאוטיים הוואי (חורף) (הונולולו)',
         'Pacific/Kiritimati' => 'שעון איי ליין (קיריטימאטי)',
         'Pacific/Kosrae' => 'שעון קוסראה (קוסרה)',
         'Pacific/Kwajalein' => 'שעון איי מרשל (קוואג׳ליין)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'שעון פלאו',
         'Pacific/Pitcairn' => 'שעון פיטקרן',
         'Pacific/Ponape' => 'שעון פונאפי (פונפיי)',
+        'Pacific/Pohnpei' => 'שעון פונאפי (פונפיי)',
         'Pacific/Port_Moresby' => 'שעון פפואה גיניאה החדשה (פורט מורסבי)',
         'Pacific/Rarotonga' => 'שעון איי קוק (רארוטונגה)',
         'Pacific/Saipan' => 'שעון צ׳אמורו (סאיפאן)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'שעון איי גילברט (טאראווה)',
         'Pacific/Tongatapu' => 'שעון טונגה (טונגטאפו)',
         'Pacific/Truk' => 'שעון צ׳וק',
+        'Pacific/Chuuk' => 'שעון צ׳וק',
         'Pacific/Wake' => 'שעון האי וייק',
         'Pacific/Wallis' => 'שעון וואליס ופוטונה (ווליס)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hi_Latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hi_Latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hi_Latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hi_Latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -3,6 +3,7 @@
 return [
     'Names' => [
         'Africa/Asmera' => 'पूर्वी अफ़्रीका समय (Asmera)',
+        'Africa/Asmara' => 'पूर्वी अफ़्रीका समय (Asmera)',
         'Africa/Porto-Novo' => 'पश्चिम अफ़्रीका समय (Porto Novo)',
         'Africa/Sao_Tome' => 'ग्रीनविच मीन टाइम (Sao Tome)',
         'America/Asuncion' => 'पैराग्वे समय (Asuncion)',
@@ -17,6 +18,7 @@
         'America/Chihuahua' => 'North America Central Time (चिहुआहुआ)',
         'America/Ciudad_Juarez' => 'North America Mountain Time (Ciudad Juarez)',
         'America/Coral_Harbour' => 'North America Eastern Time (Coral Harbour)',
+        'America/Atikokan' => 'North America Eastern Time (Coral Harbour)',
         'America/Costa_Rica' => 'North America Central Time (कोस्टा रिका)',
         'America/Creston' => 'North America Mountain Time (क्रेस्टन)',
         'America/Curacao' => 'अटलांटिक समय (Curacao)',
@@ -36,12 +38,14 @@
         'America/Indiana/Vincennes' => 'North America Eastern Time (विंसेनेस, इंडियाना)',
         'America/Indiana/Winamac' => 'North America Eastern Time (विनामेक, इंडियाना)',
         'America/Indianapolis' => 'North America Eastern Time (इंडियानापोलिस)',
+        'America/Indiana/Indianapolis' => 'North America Eastern Time (इंडियानापोलिस)',
         'America/Inuvik' => 'North America Mountain Time (इनूविक)',
         'America/Iqaluit' => 'North America Eastern Time (इकालुईट)',
         'America/Jamaica' => 'North America Eastern Time (जमैका)',
         'America/Kentucky/Monticello' => 'North America Eastern Time (मोंटीसेलो, केंटकी)',
         'America/Los_Angeles' => 'North America Pacific Time (लॉस एंजिल्स)',
         'America/Louisville' => 'North America Eastern Time (लुइसविले)',
+        'America/Kentucky/Louisville' => 'North America Eastern Time (लुइसविले)',
         'America/Managua' => 'North America Central Time (मानागुआ)',
         'America/Matamoros' => 'North America Central Time (माटामोरोस)',
         'America/Menominee' => 'North America Central Time (मेनोमिनी)',
@@ -73,12 +77,16 @@
         'Asia/Macau' => 'चीन समय (Macau)',
         'Asia/Qostanay' => 'कज़ाखस्तान समय (Qostanay)',
         'Asia/Saigon' => 'इंडोचाइना समय (Saigon)',
+        'Asia/Ho_Chi_Minh' => 'इंडोचाइना समय (Saigon)',
         'Atlantic/Faeroe' => 'पश्चिमी यूरोपीय समय (Faeroe)',
+        'Atlantic/Faroe' => 'पश्चिमी यूरोपीय समय (Faeroe)',
         'Europe/Istanbul' => 'Turkiye समय (इस्तांबुल)',
         'Indian/Reunion' => 'Reunion Time',
-        'Pacific/Honolulu' => 'हवाई–आल्यूशन समय (Honolulu)',
+        'Pacific/Honolulu' => 'हवाई–आल्यूशन मानक समय (Honolulu)',
         'Pacific/Ponape' => 'पोनापे समय (Ponape)',
+        'Pacific/Pohnpei' => 'पोनापे समय (Ponape)',
         'Pacific/Truk' => 'चुक समय (Truk)',
+        'Pacific/Chuuk' => 'चुक समय (Truk)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hi.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'पूर्वी अफ़्रीका समय (अदीस अबाबा)',
         'Africa/Algiers' => 'मध्य यूरोपीय समय (अल्जीयर्स)',
         'Africa/Asmera' => 'पूर्वी अफ़्रीका समय (अस्मारा)',
+        'Africa/Asmara' => 'पूर्वी अफ़्रीका समय (अस्मारा)',
         'Africa/Bamako' => 'ग्रीनविच मीन टाइम (बामाको)',
         'Africa/Bangui' => 'पश्चिम अफ़्रीका समय (बांगुइ)',
         'Africa/Banjul' => 'ग्रीनविच मीन टाइम (बैंजुल)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'कोलंबिया समय (बोगोटा)',
         'America/Boise' => 'उत्तरी अमेरिकी माउंटेन समय (बॉइसी)',
         'America/Buenos_Aires' => 'अर्जेंटीना समय (ब्यूनस आयरस)',
+        'America/Argentina/Buenos_Aires' => 'अर्जेंटीना समय (ब्यूनस आयरस)',
         'America/Cambridge_Bay' => 'उत्तरी अमेरिकी माउंटेन समय (कैम्ब्रिज खाड़ी)',
         'America/Campo_Grande' => 'अमेज़न समय (कैंपो ग्रांडे)',
         'America/Cancun' => 'उत्तरी अमेरिकी पूर्वी समय (कैनकुन)',
         'America/Caracas' => 'वेनेज़ुएला समय (काराकस)',
         'America/Catamarca' => 'अर्जेंटीना समय (काटामार्का)',
+        'America/Argentina/Catamarca' => 'अर्जेंटीना समय (काटामार्का)',
         'America/Cayenne' => 'फ़्रेंच गुयाना समय (कायेन)',
         'America/Cayman' => 'उत्तरी अमेरिकी पूर्वी समय (कैमेन)',
         'America/Chicago' => 'उत्तरी अमेरिकी केंद्रीय समय (शिकागो)',
         'America/Chihuahua' => 'उत्तरी अमेरिकी केंद्रीय समय (चिहुआहुआ)',
         'America/Ciudad_Juarez' => 'उत्तरी अमेरिकी माउंटेन समय (स्युदाद ह्वारेज़)',
         'America/Coral_Harbour' => 'उत्तरी अमेरिकी पूर्वी समय (अटिकोकान)',
+        'America/Atikokan' => 'उत्तरी अमेरिकी पूर्वी समय (अटिकोकान)',
         'America/Cordoba' => 'अर्जेंटीना समय (कोर्डोबा)',
+        'America/Argentina/Cordoba' => 'अर्जेंटीना समय (कोर्डोबा)',
         'America/Costa_Rica' => 'उत्तरी अमेरिकी केंद्रीय समय (कोस्टा रिका)',
+        'America/Coyhaique' => 'चिली समय (कॉयहेक)',
         'America/Creston' => 'उत्तरी अमेरिकी माउंटेन समय (क्रेस्टन)',
         'America/Cuiaba' => 'अमेज़न समय (क्यूआबा)',
         'America/Curacao' => 'अटलांटिक समय (कुराकाओ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ब्राज़ीलिया समय (फ़ोर्टालेज़ा)',
         'America/Glace_Bay' => 'अटलांटिक समय (ग्लेस खाड़ी)',
         'America/Godthab' => 'ग्रीनलैंड समय (नुक)',
+        'America/Nuuk' => 'ग्रीनलैंड समय (नुक)',
         'America/Goose_Bay' => 'अटलांटिक समय (गूस खाड़ी)',
         'America/Grand_Turk' => 'उत्तरी अमेरिकी पूर्वी समय (ग्रांड टर्क)',
         'America/Grenada' => 'अटलांटिक समय (ग्रेनाडा)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'उत्तरी अमेरिकी पूर्वी समय (विंसेनेस, इंडियाना)',
         'America/Indiana/Winamac' => 'उत्तरी अमेरिकी पूर्वी समय (विनामेक, इंडियाना)',
         'America/Indianapolis' => 'उत्तरी अमेरिकी पूर्वी समय (इंडियानापोलिस)',
+        'America/Indiana/Indianapolis' => 'उत्तरी अमेरिकी पूर्वी समय (इंडियानापोलिस)',
         'America/Inuvik' => 'उत्तरी अमेरिकी माउंटेन समय (इनूविक)',
         'America/Iqaluit' => 'उत्तरी अमेरिकी पूर्वी समय (इकालुईट)',
         'America/Jamaica' => 'उत्तरी अमेरिकी पूर्वी समय (जमैका)',
         'America/Jujuy' => 'अर्जेंटीना समय (जुजोए)',
+        'America/Argentina/Jujuy' => 'अर्जेंटीना समय (जुजोए)',
         'America/Juneau' => 'अलास्का समय (ज्यूनाउ)',
         'America/Kentucky/Monticello' => 'उत्तरी अमेरिकी पूर्वी समय (मोंटीसेलो, केंटकी)',
         'America/Kralendijk' => 'अटलांटिक समय (क्रालैंडिजिक)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'पेरू समय (लीमा)',
         'America/Los_Angeles' => 'उत्तरी अमेरिकी प्रशांत समय (लॉस एंजिल्स)',
         'America/Louisville' => 'उत्तरी अमेरिकी पूर्वी समय (लुइसविले)',
+        'America/Kentucky/Louisville' => 'उत्तरी अमेरिकी पूर्वी समय (लुइसविले)',
         'America/Lower_Princes' => 'अटलांटिक समय (लोअर प्रिंसेस क्वार्टर)',
         'America/Maceio' => 'ब्राज़ीलिया समय (मेसीओ)',
         'America/Managua' => 'उत्तरी अमेरिकी केंद्रीय समय (मानागुआ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'उत्तरी अमेरिकी केंद्रीय समय (माटामोरोस)',
         'America/Mazatlan' => 'मेक्सिकन प्रशांत समय (माज़ाटलान)',
         'America/Mendoza' => 'अर्जेंटीना समय (मेंडोज़ा)',
+        'America/Argentina/Mendoza' => 'अर्जेंटीना समय (मेंडोज़ा)',
         'America/Menominee' => 'उत्तरी अमेरिकी केंद्रीय समय (मेनोमिनी)',
         'America/Merida' => 'उत्तरी अमेरिकी केंद्रीय समय (मेरिडा)',
         'America/Metlakatla' => 'अलास्का समय (मेट्लेकाट्ला)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'अरब समय (आदेन)',
         'Asia/Almaty' => 'कज़ाखस्तान समय (अल्माटी)',
         'Asia/Amman' => 'पूर्वी यूरोपीय समय (अम्मान)',
-        'Asia/Anadyr' => 'एनाडीयर समय (अनाडिर)',
+        'Asia/Anadyr' => 'पेट्रोपेवलास्क-कैमचात्सकी समय (अनाडिर)',
         'Asia/Aqtau' => 'कज़ाखस्तान समय (अक्ताउ)',
         'Asia/Aqtobe' => 'कज़ाखस्तान समय (अक्तोब)',
         'Asia/Ashgabat' => 'तुर्कमेनिस्तान समय (अश्गाबात)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'अरब समय (बहरीन)',
         'Asia/Baku' => 'अज़रबैजान समय (बाकु)',
         'Asia/Bangkok' => 'इंडोचाइना समय (बैंकॉक)',
-        'Asia/Barnaul' => 'रूस समय (बर्नोल)',
+        'Asia/Barnaul' => 'क्रास्नोयार्स्क समय (बर्नोल)',
         'Asia/Beirut' => 'पूर्वी यूरोपीय समय (बेरुत)',
         'Asia/Bishkek' => 'किर्गिस्‍तान समय (बिश्केक)',
         'Asia/Brunei' => 'ब्रूनेई दारूस्सलम समय',
         'Asia/Calcutta' => 'भारतीय मानक समय (कोलकाता)',
+        'Asia/Kolkata' => 'भारतीय मानक समय (कोलकाता)',
         'Asia/Chita' => 'याकुत्स्क समय (त्शिता)',
         'Asia/Colombo' => 'भारतीय मानक समय (कोलंबो)',
         'Asia/Damascus' => 'पूर्वी यूरोपीय समय (दमास्कस)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'पेट्रोपेवलास्क-कैमचात्सकी समय (कमचत्का)',
         'Asia/Karachi' => 'पाकिस्तान समय (कराची)',
         'Asia/Katmandu' => 'नेपाल समय (काठमांडू)',
+        'Asia/Kathmandu' => 'नेपाल समय (काठमांडू)',
         'Asia/Khandyga' => 'याकुत्स्क समय (खांडिगा)',
         'Asia/Krasnoyarsk' => 'क्रास्नोयार्स्क समय',
         'Asia/Kuala_Lumpur' => 'मलेशिया समय (कुआलालंपुर)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'खाड़ी मानक समय (मस्कट)',
         'Asia/Nicosia' => 'पूर्वी यूरोपीय समय (निकोसिया)',
         'Asia/Novokuznetsk' => 'क्रास्नोयार्स्क समय (नोवोकुज़्नेत्स्क)',
-        'Asia/Novosibirsk' => 'नोवोसिबिर्स्क समय',
+        'Asia/Novosibirsk' => 'क्रास्नोयार्स्क समय (नोवोसिबिर्स्क)',
         'Asia/Omsk' => 'ओम्स्क समय',
         'Asia/Oral' => 'कज़ाखस्तान समय (ओरल)',
         'Asia/Phnom_Penh' => 'इंडोचाइना समय (नॉम पेन्ह)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'कज़ाखस्तान समय (कोस्टाने)',
         'Asia/Qyzylorda' => 'कज़ाखस्तान समय (केज़ेलोर्डा)',
         'Asia/Rangoon' => 'म्यांमार समय (रंगून)',
+        'Asia/Yangon' => 'म्यांमार समय (रंगून)',
         'Asia/Riyadh' => 'अरब समय (रियाद)',
         'Asia/Saigon' => 'इंडोचाइना समय (हो ची मिन्ह सिटी)',
-        'Asia/Sakhalin' => 'सखालिन समय',
+        'Asia/Ho_Chi_Minh' => 'इंडोचाइना समय (हो ची मिन्ह सिटी)',
+        'Asia/Sakhalin' => 'मागादान समय (सखालिन)',
         'Asia/Samarkand' => 'उज़्बेकिस्तान समय (समरकंद)',
         'Asia/Seoul' => 'कोरियाई समय (सिओल)',
         'Asia/Shanghai' => 'चीन समय (शंघाई)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ईरान समय (तेहरान)',
         'Asia/Thimphu' => 'भूटान समय (थिंपू)',
         'Asia/Tokyo' => 'जापान समय (टोक्यो)',
-        'Asia/Tomsk' => 'रूस समय (तोम्स्क)',
+        'Asia/Tomsk' => 'क्रास्नोयार्स्क समय (तोम्स्क)',
         'Asia/Ulaanbaatar' => 'उलान बटोर समय (उलानबातर)',
         'Asia/Urumqi' => 'चीन समय (उरूम्की)',
         'Asia/Ust-Nera' => 'व्लादिवोस्तोक समय (यूस्ट–नेरा)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'पश्चिमी यूरोपीय समय (कैनेरी)',
         'Atlantic/Cape_Verde' => 'केप वर्ड समय',
         'Atlantic/Faeroe' => 'पश्चिमी यूरोपीय समय (फ़ैरो)',
+        'Atlantic/Faroe' => 'पश्चिमी यूरोपीय समय (फ़ैरो)',
         'Atlantic/Madeira' => 'पश्चिमी यूरोपीय समय (मडेरा)',
         'Atlantic/Reykjavik' => 'ग्रीनविच मीन टाइम (रेक्याविक)',
         'Atlantic/South_Georgia' => 'दक्षिणी जॉर्जिया समय (दक्षिण जॉर्जिया)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'समन्वित वैश्विक समय',
         'Europe/Amsterdam' => 'मध्य यूरोपीय समय (एम्स्टर्डम)',
         'Europe/Andorra' => 'मध्य यूरोपीय समय (अंडोरा)',
-        'Europe/Astrakhan' => 'मॉस्को समय (आस्ट्राखान)',
+        'Europe/Astrakhan' => 'समारा समय (आस्ट्राखान)',
         'Europe/Athens' => 'पूर्वी यूरोपीय समय (एथेंस)',
         'Europe/Belgrade' => 'मध्य यूरोपीय समय (बेलग्रेड)',
         'Europe/Berlin' => 'मध्य यूरोपीय समय (बर्लिन)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ग्रीनविच मीन टाइम (जर्सी)',
         'Europe/Kaliningrad' => 'पूर्वी यूरोपीय समय (कालीनिनग्राड)',
         'Europe/Kiev' => 'पूर्वी यूरोपीय समय (कीव)',
-        'Europe/Kirov' => 'रूस समय (किरोव)',
+        'Europe/Kyiv' => 'पूर्वी यूरोपीय समय (कीव)',
+        'Europe/Kirov' => 'मॉस्को समय (किरोव)',
         'Europe/Lisbon' => 'पश्चिमी यूरोपीय समय (लिस्बन)',
         'Europe/Ljubljana' => 'मध्य यूरोपीय समय (ल्यूबेलजाना)',
         'Europe/London' => 'ग्रीनविच मीन टाइम (लंदन)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'समारा समय',
         'Europe/San_Marino' => 'मध्य यूरोपीय समय (सैन मारीनो)',
         'Europe/Sarajevo' => 'मध्य यूरोपीय समय (साराजेवो)',
-        'Europe/Saratov' => 'मॉस्को समय (सारातोव)',
+        'Europe/Saratov' => 'समारा समय (सारातोव)',
         'Europe/Simferopol' => 'मॉस्को समय (सिम्फ़ेरोपोल)',
         'Europe/Skopje' => 'मध्य यूरोपीय समय (स्कोप्जे)',
         'Europe/Sofia' => 'पूर्वी यूरोपीय समय (सोफ़िया)',
         'Europe/Stockholm' => 'मध्य यूरोपीय समय (स्टॉकहोम)',
         'Europe/Tallinn' => 'पूर्वी यूरोपीय समय (तेलिन)',
         'Europe/Tirane' => 'मध्य यूरोपीय समय (टाइरेन)',
-        'Europe/Ulyanovsk' => 'मॉस्को समय (उल्यानोव्स्क)',
+        'Europe/Ulyanovsk' => 'समारा समय (उल्यानोव्स्क)',
         'Europe/Vaduz' => 'मध्य यूरोपीय समय (वादुज़)',
         'Europe/Vatican' => 'मध्य यूरोपीय समय (वेटिकन)',
         'Europe/Vienna' => 'मध्य यूरोपीय समय (विएना)',
         'Europe/Vilnius' => 'पूर्वी यूरोपीय समय (विल्नियस)',
-        'Europe/Volgograd' => 'वोल्गोग्राड समय',
+        'Europe/Volgograd' => 'मॉस्को समय (वोल्गोग्राड)',
         'Europe/Warsaw' => 'मध्य यूरोपीय समय (वॉरसॉ)',
         'Europe/Zagreb' => 'मध्य यूरोपीय समय (ज़ाग्रेब)',
         'Europe/Zurich' => 'मध्य यूरोपीय समय (ज़्यूरिख़)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'चैथम समय',
         'Pacific/Easter' => 'ईस्टर द्वीप समय',
         'Pacific/Efate' => 'वनुआतू समय (एफ़ेट)',
-        'Pacific/Enderbury' => 'फ़ीनिक्स द्वीपसमूह समय (एंडरबरी)',
+        'Pacific/Enderbury' => 'फ़ीनिक्स द्वीपसमूह समय (कैंटन)',
+        'Pacific/Kanton' => 'फ़ीनिक्स द्वीपसमूह समय (कैंटन)',
         'Pacific/Fakaofo' => 'टोकेलाऊ समय (फ़ाकाओफ़ो)',
         'Pacific/Fiji' => 'फ़िजी समय',
         'Pacific/Funafuti' => 'तुवालू समय (फ़्यूनाफ़ुटी)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'गैंबियर समय',
         'Pacific/Guadalcanal' => 'सोलोमन द्वीपसमूह समय (ग्वाडलकनाल)',
         'Pacific/Guam' => 'चामोरो मानक समय (गुआम)',
-        'Pacific/Honolulu' => 'हवाई–आल्यूशन समय (होनोलुलु)',
+        'Pacific/Honolulu' => 'हवाई–आल्यूशन मानक समय (होनोलुलु)',
         'Pacific/Kiritimati' => 'लाइन द्वीपसमूह समय (किरीतिमाति)',
         'Pacific/Kosrae' => 'कोसराए समय',
         'Pacific/Kwajalein' => 'मार्शल द्वीपसमूह समय (क्वाज़ालीन)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'पलाउ समय (पलाऊ)',
         'Pacific/Pitcairn' => 'पिटकैर्न समय',
         'Pacific/Ponape' => 'पोनापे समय (पोनपेई)',
+        'Pacific/Pohnpei' => 'पोनापे समय (पोनपेई)',
         'Pacific/Port_Moresby' => 'पापुआ न्यू गिनी समय (पोर्ट मोरेस्बी)',
         'Pacific/Rarotonga' => 'कुक द्वीपसमूह समय (रारोटोंगा)',
         'Pacific/Saipan' => 'चामोरो मानक समय (सायपान)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'गिल्बर्ट द्वीपसमूह समय (टारावा)',
         'Pacific/Tongatapu' => 'टोंगा समय (टोंगाटापू)',
         'Pacific/Truk' => 'चुक समय (चक)',
+        'Pacific/Chuuk' => 'चुक समय (चक)',
         'Pacific/Wake' => 'वेक द्वीप समय',
         'Pacific/Wallis' => 'वालिस और फ़्यूचूना समय',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hr.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'istočnoafričko vrijeme (Addis Abeba)',
         'Africa/Algiers' => 'srednjoeuropsko vrijeme (Alžir)',
         'Africa/Asmera' => 'istočnoafričko vrijeme (Asmara)',
+        'Africa/Asmara' => 'istočnoafričko vrijeme (Asmara)',
         'Africa/Bamako' => 'univerzalno vrijeme (Bamako)',
         'Africa/Bangui' => 'zapadnoafričko vrijeme (Bangui)',
         'Africa/Banjul' => 'univerzalno vrijeme (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'istočnoafričko vrijeme (Dar es Salaam)',
         'Africa/Djibouti' => 'istočnoafričko vrijeme (Džibuti)',
         'Africa/Douala' => 'zapadnoafričko vrijeme (Douala)',
-        'Africa/El_Aaiun' => 'zapadnoeuropsko vrijeme (El Aaiun)',
+        'Africa/El_Aaiun' => 'zapadnoeuropsko vrijeme (El Aaiún)',
         'Africa/Freetown' => 'univerzalno vrijeme (Freetown)',
         'Africa/Gaborone' => 'srednjoafričko vrijeme (Gaborone)',
         'Africa/Harare' => 'srednjoafričko vrijeme (Harare)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'istočnoafričko vrijeme (Mogadishu)',
         'Africa/Monrovia' => 'univerzalno vrijeme (Monrovia)',
         'Africa/Nairobi' => 'istočnoafričko vrijeme (Nairobi)',
-        'Africa/Ndjamena' => 'zapadnoafričko vrijeme (Ndjamena)',
+        'Africa/Ndjamena' => 'zapadnoafričko vrijeme (N’Djamena)',
         'Africa/Niamey' => 'zapadnoafričko vrijeme (Niamey)',
         'Africa/Nouakchott' => 'univerzalno vrijeme (Nouakchott)',
         'Africa/Ouagadougou' => 'univerzalno vrijeme (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'aljaško vrijeme (Anchorage)',
         'America/Anguilla' => 'atlantsko vrijeme (Angvila)',
         'America/Antigua' => 'atlantsko vrijeme (Antigua)',
-        'America/Araguaina' => 'brazilsko vrijeme (Araguaina)',
+        'America/Araguaina' => 'brazilsko vrijeme (Araguaína)',
         'America/Argentina/La_Rioja' => 'argentinsko vrijeme (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'argentinsko vrijeme (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'argentinsko vrijeme (Río Gallegos)',
         'America/Argentina/Salta' => 'argentinsko vrijeme (Salta)',
         'America/Argentina/San_Juan' => 'argentinsko vrijeme (San Juan)',
         'America/Argentina/San_Luis' => 'argentinsko vrijeme (San Luis)',
-        'America/Argentina/Tucuman' => 'argentinsko vrijeme (Tucuman)',
+        'America/Argentina/Tucuman' => 'argentinsko vrijeme (Tucumán)',
         'America/Argentina/Ushuaia' => 'argentinsko vrijeme (Ushuaia)',
         'America/Aruba' => 'atlantsko vrijeme (Aruba)',
         'America/Asuncion' => 'paragvajsko vrijeme (Asunción)',
         'America/Bahia' => 'brazilsko vrijeme (Bahia)',
         'America/Bahia_Banderas' => 'središnje vrijeme (Bahia Banderas)',
         'America/Barbados' => 'atlantsko vrijeme (Barbados)',
-        'America/Belem' => 'brazilsko vrijeme (Belem)',
+        'America/Belem' => 'brazilsko vrijeme (Belém)',
         'America/Belize' => 'središnje vrijeme (Belize)',
         'America/Blanc-Sablon' => 'atlantsko vrijeme (Blanc-Sablon)',
         'America/Boa_Vista' => 'amazonsko vrijeme (Boa Vista)',
-        'America/Bogota' => 'kolumbijsko vrijeme (Bogota)',
+        'America/Bogota' => 'kolumbijsko vrijeme (Bogotá)',
         'America/Boise' => 'planinsko vrijeme (Boise)',
         'America/Buenos_Aires' => 'argentinsko vrijeme (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'argentinsko vrijeme (Buenos Aires)',
         'America/Cambridge_Bay' => 'planinsko vrijeme (Cambridge Bay)',
         'America/Campo_Grande' => 'amazonsko vrijeme (Campo Grande)',
         'America/Cancun' => 'istočno vrijeme (Cancun)',
         'America/Caracas' => 'venezuelsko vrijeme (Caracas)',
         'America/Catamarca' => 'argentinsko vrijeme (Catamarca)',
+        'America/Argentina/Catamarca' => 'argentinsko vrijeme (Catamarca)',
         'America/Cayenne' => 'vrijeme Francuske Gijane (Cayenne)',
         'America/Cayman' => 'istočno vrijeme (Cayman)',
         'America/Chicago' => 'središnje vrijeme (Chicago)',
         'America/Chihuahua' => 'središnje vrijeme (Chihuahua)',
         'America/Ciudad_Juarez' => 'planinsko vrijeme (Ciudad Juárez)',
         'America/Coral_Harbour' => 'istočno vrijeme (Atikokan)',
-        'America/Cordoba' => 'argentinsko vrijeme (Cordoba)',
+        'America/Atikokan' => 'istočno vrijeme (Atikokan)',
+        'America/Cordoba' => 'argentinsko vrijeme (Córdoba)',
+        'America/Argentina/Cordoba' => 'argentinsko vrijeme (Córdoba)',
         'America/Costa_Rica' => 'središnje vrijeme (Kostarika)',
+        'America/Coyhaique' => 'čileansko vrijeme (Coyhaique)',
         'America/Creston' => 'planinsko vrijeme (Creston)',
-        'America/Cuiaba' => 'amazonsko vrijeme (Cuiaba)',
+        'America/Cuiaba' => 'amazonsko vrijeme (Cuiabá)',
         'America/Curacao' => 'atlantsko vrijeme (Curaçao)',
         'America/Danmarkshavn' => 'univerzalno vrijeme (Danmarkshavn)',
         'America/Dawson' => 'jukonško vrijeme (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'istočno vrijeme (Detroit)',
         'America/Dominica' => 'atlantsko vrijeme (Dominika)',
         'America/Edmonton' => 'planinsko vrijeme (Edmonton)',
-        'America/Eirunepe' => 'Acre vrijeme (Eirunepe)',
+        'America/Eirunepe' => 'Acre vrijeme (Eirunepé)',
         'America/El_Salvador' => 'središnje vrijeme (Salvador)',
         'America/Fort_Nelson' => 'planinsko vrijeme (Fort Nelson)',
         'America/Fortaleza' => 'brazilsko vrijeme (Fortaleza)',
         'America/Glace_Bay' => 'atlantsko vrijeme (Glace Bay)',
         'America/Godthab' => 'Grenland (Nuuk)',
+        'America/Nuuk' => 'Grenland (Nuuk)',
         'America/Goose_Bay' => 'atlantsko vrijeme (Goose Bay)',
         'America/Grand_Turk' => 'istočno vrijeme (Grand Turk)',
         'America/Grenada' => 'atlantsko vrijeme (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'istočno vrijeme (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'istočno vrijeme (Winamac, Indiana)',
         'America/Indianapolis' => 'istočno vrijeme (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'istočno vrijeme (Indianapolis)',
         'America/Inuvik' => 'planinsko vrijeme (Inuvik)',
         'America/Iqaluit' => 'istočno vrijeme (Iqaluit)',
         'America/Jamaica' => 'istočno vrijeme (Jamajka)',
         'America/Jujuy' => 'argentinsko vrijeme (Jujuy)',
+        'America/Argentina/Jujuy' => 'argentinsko vrijeme (Jujuy)',
         'America/Juneau' => 'aljaško vrijeme (Juneau)',
         'America/Kentucky/Monticello' => 'istočno vrijeme (Monticello, Kentucky)',
         'America/Kralendijk' => 'atlantsko vrijeme (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'peruansko vrijeme (Lima)',
         'America/Los_Angeles' => 'pacifičko vrijeme (Los Angeles)',
         'America/Louisville' => 'istočno vrijeme (Louisville)',
+        'America/Kentucky/Louisville' => 'istočno vrijeme (Louisville)',
         'America/Lower_Princes' => 'atlantsko vrijeme (Lower Prince’s Quarter)',
-        'America/Maceio' => 'brazilsko vrijeme (Maceio)',
+        'America/Maceio' => 'brazilsko vrijeme (Maceió)',
         'America/Managua' => 'središnje vrijeme (Managua)',
         'America/Manaus' => 'amazonsko vrijeme (Manaus)',
         'America/Marigot' => 'atlantsko vrijeme (Marigot)',
         'America/Martinique' => 'atlantsko vrijeme (Martinique)',
         'America/Matamoros' => 'središnje vrijeme (Matamoros)',
-        'America/Mazatlan' => 'meksičko pacifičko vrijeme (Mazatlan)',
+        'America/Mazatlan' => 'meksičko pacifičko vrijeme (Mazatlán)',
         'America/Mendoza' => 'argentinsko vrijeme (Mendoza)',
+        'America/Argentina/Mendoza' => 'argentinsko vrijeme (Mendoza)',
         'America/Menominee' => 'središnje vrijeme (Menominee)',
         'America/Merida' => 'središnje vrijeme (Merida)',
         'America/Metlakatla' => 'aljaško vrijeme (Metlakatla)',
         'America/Mexico_City' => 'središnje vrijeme (Ciudad de México)',
-        'America/Miquelon' => 'vrijeme za Sveti Petar i Mikelon (Miquelon)',
+        'America/Miquelon' => 'vrijeme za Sveti Petar i Mikelon (Saint-Pierre)',
         'America/Moncton' => 'atlantsko vrijeme (Moncton)',
         'America/Monterrey' => 'središnje vrijeme (Monterrey)',
         'America/Montevideo' => 'urugvajsko vrijeme (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'središnje vrijeme (Regina)',
         'America/Resolute' => 'središnje vrijeme (Resolute)',
         'America/Rio_Branco' => 'Acre vrijeme (Rio Branco)',
-        'America/Santarem' => 'brazilsko vrijeme (Santarem)',
+        'America/Santarem' => 'brazilsko vrijeme (Santarém)',
         'America/Santiago' => 'čileansko vrijeme (Santiago)',
         'America/Santo_Domingo' => 'atlantsko vrijeme (Santo Domingo)',
-        'America/Sao_Paulo' => 'brazilsko vrijeme (Sao Paulo)',
+        'America/Sao_Paulo' => 'brazilsko vrijeme (São Paulo)',
         'America/Scoresbysund' => 'Grenland (Ittoqqortoormiit)',
         'America/Sitka' => 'aljaško vrijeme (Sitka)',
         'America/St_Barthelemy' => 'atlantsko vrijeme (Saint Barthélemy)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'novozelandsko vrijeme (McMurdo)',
         'Antarctica/Palmer' => 'čileansko vrijeme (Palmer)',
         'Antarctica/Rothera' => 'vrijeme Rothere (Rothera)',
-        'Antarctica/Syowa' => 'vrijeme Syowe (Syowa)',
+        'Antarctica/Syowa' => 'vrijeme Syowe (Showa)',
         'Antarctica/Troll' => 'univerzalno vrijeme (Troll)',
         'Antarctica/Vostok' => 'vostočko vrijeme (Vostok)',
         'Arctic/Longyearbyen' => 'srednjoeuropsko vrijeme (Longyearbyen)',
         'Asia/Aden' => 'arapsko vrijeme (Aden)',
         'Asia/Almaty' => 'kazahstansko vrijeme (Alma Ata)',
         'Asia/Amman' => 'istočnoeuropsko vrijeme (Amman)',
-        'Asia/Anadyr' => 'anadirsko vrijeme',
+        'Asia/Anadyr' => 'Petropavlovsk-kamčatsko vrijeme (Anadir)',
         'Asia/Aqtau' => 'kazahstansko vrijeme (Aktau)',
         'Asia/Aqtobe' => 'kazahstansko vrijeme (Aktobe)',
         'Asia/Ashgabat' => 'turkmenistansko vrijeme (Ašgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'arapsko vrijeme (Bahrein)',
         'Asia/Baku' => 'azerbajdžansko vrijeme (Baku)',
         'Asia/Bangkok' => 'indokinesko vrijeme (Bangkok)',
-        'Asia/Barnaul' => 'Rusija (Barnaul)',
+        'Asia/Barnaul' => 'krasnojarsko vrijeme (Barnaul)',
         'Asia/Beirut' => 'istočnoeuropsko vrijeme (Beirut)',
         'Asia/Bishkek' => 'kirgistansko vrijeme (Biškek)',
         'Asia/Brunei' => 'vrijeme za Brunej Darussalam',
         'Asia/Calcutta' => 'indijsko vrijeme (Kolkata)',
+        'Asia/Kolkata' => 'indijsko vrijeme (Kolkata)',
         'Asia/Chita' => 'jakutsko vrijeme (Čita)',
         'Asia/Colombo' => 'indijsko vrijeme (Colombo)',
         'Asia/Damascus' => 'istočnoeuropsko vrijeme (Damask)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'istočnoeuropsko vrijeme (Gaza)',
         'Asia/Hebron' => 'istočnoeuropsko vrijeme (Hebron)',
         'Asia/Hong_Kong' => 'hongkonško vrijeme (Hong Kong)',
-        'Asia/Hovd' => 'hovdsko vrijeme',
+        'Asia/Hovd' => 'hovdsko vrijeme (Khovd)',
         'Asia/Irkutsk' => 'irkutsko vrijeme',
         'Asia/Jakarta' => 'zapadnoindonezijsko vrijeme (Džakarta)',
         'Asia/Jayapura' => 'istočnoindonezijsko vrijeme (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-kamčatsko vrijeme (Kamčatka)',
         'Asia/Karachi' => 'pakistansko vrijeme (Karači)',
         'Asia/Katmandu' => 'nepalsko vrijeme (Katmandu)',
+        'Asia/Kathmandu' => 'nepalsko vrijeme (Katmandu)',
         'Asia/Khandyga' => 'jakutsko vrijeme (Handiga)',
         'Asia/Krasnoyarsk' => 'krasnojarsko vrijeme',
         'Asia/Kuala_Lumpur' => 'malezijsko vrijeme (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'zaljevsko standardno vrijeme (Muscat)',
         'Asia/Nicosia' => 'istočnoeuropsko vrijeme (Nikozija)',
         'Asia/Novokuznetsk' => 'krasnojarsko vrijeme (Novokuznjeck)',
-        'Asia/Novosibirsk' => 'novosibirsko vrijeme',
+        'Asia/Novosibirsk' => 'krasnojarsko vrijeme (Novosibirsk)',
         'Asia/Omsk' => 'omsko vrijeme',
         'Asia/Oral' => 'kazahstansko vrijeme (Oral)',
         'Asia/Phnom_Penh' => 'indokinesko vrijeme (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'kazahstansko vrijeme (Kostanay)',
         'Asia/Qyzylorda' => 'kazahstansko vrijeme (Kizilorda)',
         'Asia/Rangoon' => 'mjanmarsko vrijeme (Rangun)',
+        'Asia/Yangon' => 'mjanmarsko vrijeme (Rangun)',
         'Asia/Riyadh' => 'arapsko vrijeme (Rijad)',
         'Asia/Saigon' => 'indokinesko vrijeme (Ho Ši Min)',
-        'Asia/Sakhalin' => 'sahalinsko vrijeme',
+        'Asia/Ho_Chi_Minh' => 'indokinesko vrijeme (Ho Ši Min)',
+        'Asia/Sakhalin' => 'magadansko vrijeme (Sahalin)',
         'Asia/Samarkand' => 'uzbekistansko vrijeme (Samarkand)',
         'Asia/Seoul' => 'korejsko vrijeme (Seul)',
         'Asia/Shanghai' => 'kinesko vrijeme (Šangaj)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'iransko vrijeme (Teheran)',
         'Asia/Thimphu' => 'butansko vrijeme (Thimphu)',
         'Asia/Tokyo' => 'japansko vrijeme (Tokio)',
-        'Asia/Tomsk' => 'Rusija (Tomsk)',
+        'Asia/Tomsk' => 'krasnojarsko vrijeme (Tomsk)',
         'Asia/Ulaanbaatar' => 'ulanbatorsko vrijeme (Ulan Bator)',
         'Asia/Urumqi' => 'Kina (Urumči)',
         'Asia/Ust-Nera' => 'vladivostočko vrijeme (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'zapadnoeuropsko vrijeme (Kanari)',
         'Atlantic/Cape_Verde' => 'vrijeme Zelenortskog otočja (Cape Verde)',
         'Atlantic/Faeroe' => 'zapadnoeuropsko vrijeme (Ferojski otoci)',
+        'Atlantic/Faroe' => 'zapadnoeuropsko vrijeme (Ferojski otoci)',
         'Atlantic/Madeira' => 'zapadnoeuropsko vrijeme (Madeira)',
         'Atlantic/Reykjavik' => 'univerzalno vrijeme (Reykjavik)',
         'Atlantic/South_Georgia' => 'vrijeme Južne Georgije (Južna Georgija)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'koordinirano svjetsko vrijeme',
         'Europe/Amsterdam' => 'srednjoeuropsko vrijeme (Amsterdam)',
         'Europe/Andorra' => 'srednjoeuropsko vrijeme (Andora)',
-        'Europe/Astrakhan' => 'moskovsko vrijeme (Astrahan)',
+        'Europe/Astrakhan' => 'samarsko vrijeme (Astrahan)',
         'Europe/Athens' => 'istočnoeuropsko vrijeme (Atena)',
         'Europe/Belgrade' => 'srednjoeuropsko vrijeme (Beograd)',
         'Europe/Berlin' => 'srednjoeuropsko vrijeme (Berlin)',
@@ -324,7 +340,7 @@
         'Europe/Brussels' => 'srednjoeuropsko vrijeme (Bruxelles)',
         'Europe/Bucharest' => 'istočnoeuropsko vrijeme (Bukurešt)',
         'Europe/Budapest' => 'srednjoeuropsko vrijeme (Budimpešta)',
-        'Europe/Busingen' => 'srednjoeuropsko vrijeme (Busingen)',
+        'Europe/Busingen' => 'srednjoeuropsko vrijeme (Büsingen)',
         'Europe/Chisinau' => 'istočnoeuropsko vrijeme (Kišinjev)',
         'Europe/Copenhagen' => 'srednjoeuropsko vrijeme (Kopenhagen)',
         'Europe/Dublin' => 'univerzalno vrijeme (Dublin)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'univerzalno vrijeme (Guernsey)',
         'Europe/Helsinki' => 'istočnoeuropsko vrijeme (Helsinki)',
         'Europe/Isle_of_Man' => 'univerzalno vrijeme (Otok Man)',
-        'Europe/Istanbul' => 'Turska (Istanbul)',
+        'Europe/Istanbul' => 'tursko vrijeme (Istanbul)',
         'Europe/Jersey' => 'univerzalno vrijeme (Jersey)',
         'Europe/Kaliningrad' => 'istočnoeuropsko vrijeme (Kalinjingrad)',
         'Europe/Kiev' => 'istočnoeuropsko vrijeme (Kijev)',
-        'Europe/Kirov' => 'Rusija (Kirov)',
+        'Europe/Kyiv' => 'istočnoeuropsko vrijeme (Kijev)',
+        'Europe/Kirov' => 'moskovsko vrijeme (Kirov)',
         'Europe/Lisbon' => 'zapadnoeuropsko vrijeme (Lisabon)',
         'Europe/Ljubljana' => 'srednjoeuropsko vrijeme (Ljubljana)',
         'Europe/London' => 'univerzalno vrijeme (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'samarsko vrijeme (Samara)',
         'Europe/San_Marino' => 'srednjoeuropsko vrijeme (San Marino)',
         'Europe/Sarajevo' => 'srednjoeuropsko vrijeme (Sarajevo)',
-        'Europe/Saratov' => 'moskovsko vrijeme (Saratov)',
+        'Europe/Saratov' => 'samarsko vrijeme (Saratov)',
         'Europe/Simferopol' => 'moskovsko vrijeme (Simferopolj)',
         'Europe/Skopje' => 'srednjoeuropsko vrijeme (Skoplje)',
         'Europe/Sofia' => 'istočnoeuropsko vrijeme (Sofija)',
         'Europe/Stockholm' => 'srednjoeuropsko vrijeme (Stockholm)',
         'Europe/Tallinn' => 'istočnoeuropsko vrijeme (Tallinn)',
         'Europe/Tirane' => 'srednjoeuropsko vrijeme (Tirana)',
-        'Europe/Ulyanovsk' => 'moskovsko vrijeme (Uljanovsk)',
+        'Europe/Ulyanovsk' => 'samarsko vrijeme (Uljanovsk)',
         'Europe/Vaduz' => 'srednjoeuropsko vrijeme (Vaduz)',
         'Europe/Vatican' => 'srednjoeuropsko vrijeme (Vatikan)',
         'Europe/Vienna' => 'srednjoeuropsko vrijeme (Beč)',
         'Europe/Vilnius' => 'istočnoeuropsko vrijeme (Vilnius)',
-        'Europe/Volgograd' => 'volgogradsko vrijeme',
+        'Europe/Volgograd' => 'moskovsko vrijeme (Volgograd)',
         'Europe/Warsaw' => 'srednjoeuropsko vrijeme (Varšava)',
         'Europe/Zagreb' => 'srednjoeuropsko vrijeme (Zagreb)',
         'Europe/Zurich' => 'srednjoeuropsko vrijeme (Zürich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'vrijeme Indijskog oceana (Chagos)',
         'Indian/Christmas' => 'vrijeme Božićnog Otoka (Christmas)',
         'Indian/Cocos' => 'vrijeme Kokosovih Otoka (Cocos)',
-        'Indian/Comoro' => 'istočnoafričko vrijeme (Comoro)',
+        'Indian/Comoro' => 'istočnoafričko vrijeme (Comores)',
         'Indian/Kerguelen' => 'vrijeme Francuskih Južnih Teritorija (Kerguelen)',
-        'Indian/Mahe' => 'sejšelsko vrijeme (Mahe)',
+        'Indian/Mahe' => 'sejšelsko vrijeme (Mahé)',
         'Indian/Maldives' => 'maldivsko vrijeme (Maldivi)',
         'Indian/Mauritius' => 'vrijeme Mauricijusa',
         'Indian/Mayotte' => 'istočnoafričko vrijeme (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'vrijeme Chathama',
         'Pacific/Easter' => 'vrijeme Uskršnjeg otoka (Easter)',
         'Pacific/Efate' => 'vrijeme Vanuatua (Efate)',
-        'Pacific/Enderbury' => 'vrijeme Otoka Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'vrijeme Otoka Phoenix (Canton)',
+        'Pacific/Kanton' => 'vrijeme Otoka Phoenix (Canton)',
         'Pacific/Fakaofo' => 'vrijeme Tokelaua (Fakaofo)',
         'Pacific/Fiji' => 'vrijeme Fidžija',
         'Pacific/Funafuti' => 'vrijeme Tuvalua (Funafuti)',
-        'Pacific/Galapagos' => 'vrijeme Galapagosa',
+        'Pacific/Galapagos' => 'vrijeme Galapagosa (Galápagos)',
         'Pacific/Gambier' => 'vrijeme Gambiera',
         'Pacific/Guadalcanal' => 'vrijeme Salomonovih Otoka (Guadalcanal)',
         'Pacific/Guam' => 'standardno vrijeme Chamorra (Guam)',
-        'Pacific/Honolulu' => 'havajsko-aleutsko vrijeme (Honolulu)',
+        'Pacific/Honolulu' => 'havajsko-aleutsko standardno vrijeme (Honolulu)',
         'Pacific/Kiritimati' => 'vrijeme Ekvatorskih otoka (Kiritimati)',
         'Pacific/Kosrae' => 'vrijeme Kosrae',
         'Pacific/Kwajalein' => 'vrijeme Maršalovih Otoka (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'vrijeme Naurua',
         'Pacific/Niue' => 'vrijeme Niuea',
         'Pacific/Norfolk' => 'vrijeme Otoka Norfolk',
-        'Pacific/Noumea' => 'vrijeme Nove Kaledonije (Noumea)',
+        'Pacific/Noumea' => 'vrijeme Nove Kaledonije (Nouméa)',
         'Pacific/Pago_Pago' => 'samoansko vrijeme (Pago Pago)',
         'Pacific/Palau' => 'vrijeme Palaua',
         'Pacific/Pitcairn' => 'pitcairnsko vrijeme',
         'Pacific/Ponape' => 'ponapejsko vrijeme (Pohnpei)',
+        'Pacific/Pohnpei' => 'ponapejsko vrijeme (Pohnpei)',
         'Pacific/Port_Moresby' => 'vrijeme Papue Nove Gvineje (Port Moresby)',
         'Pacific/Rarotonga' => 'vrijeme Cookovih Otoka (Rarotonga)',
         'Pacific/Saipan' => 'standardno vrijeme Chamorra (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'vrijeme Gilbertovih otoka (Tarawa)',
         'Pacific/Tongatapu' => 'vrijeme Tonge (Tongatapu)',
         'Pacific/Truk' => 'vrijeme Chuuka',
+        'Pacific/Chuuk' => 'vrijeme Chuuka',
         'Pacific/Wake' => 'vrijeme Otoka Wake',
-        'Pacific/Wallis' => 'vrijeme Otoka Wallis i Futuna',
+        'Pacific/Wallis' => 'vrijeme Otoka Wallis i Futuna (Wallis & Futuna)',
     ],
     'Meta' => [
         'HourFormatNeg' => ' -%02d:%02d',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hu.php	2026-05-20 10:56:49.000000000 +0200
@@ -5,8 +5,9 @@
         'Africa/Abidjan' => 'greenwichi középidő, téli idő (Abidjan)',
         'Africa/Accra' => 'greenwichi középidő, téli idő (Accra)',
         'Africa/Addis_Ababa' => 'kelet-afrikai téli idő (Addisz-Abeba)',
-        'Africa/Algiers' => 'közép-európai időzóna (Algír)',
+        'Africa/Algiers' => 'közép-európai idő (Algír)',
         'Africa/Asmera' => 'kelet-afrikai téli idő (Aszmara)',
+        'Africa/Asmara' => 'kelet-afrikai téli idő (Aszmara)',
         'Africa/Bamako' => 'greenwichi középidő, téli idő (Bamako)',
         'Africa/Bangui' => 'nyugat-afrikai időzóna (Bangui)',
         'Africa/Banjul' => 'greenwichi középidő, téli idő (Banjul)',
@@ -16,7 +17,7 @@
         'Africa/Bujumbura' => 'közép-afrikai téli idő (Bujumbura)',
         'Africa/Cairo' => 'kelet-európai időzóna (Kairó)',
         'Africa/Casablanca' => 'nyugat-európai időzóna (Casablanca)',
-        'Africa/Ceuta' => 'közép-európai időzóna (Ceuta)',
+        'Africa/Ceuta' => 'közép-európai idő (Ceuta)',
         'Africa/Conakry' => 'greenwichi középidő, téli idő (Conakry)',
         'Africa/Dakar' => 'greenwichi középidő, téli idő (Dakar)',
         'Africa/Dar_es_Salaam' => 'kelet-afrikai téli idő (Dar es-Salaam)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'nyugat-afrikai időzóna (Kinshasa)',
         'Africa/Lagos' => 'nyugat-afrikai időzóna (Lagos)',
         'Africa/Libreville' => 'nyugat-afrikai időzóna (Libreville)',
-        'Africa/Lome' => 'greenwichi középidő, téli idő (Lome)',
+        'Africa/Lome' => 'greenwichi középidő, téli idő (Lomé)',
         'Africa/Luanda' => 'nyugat-afrikai időzóna (Luanda)',
         'Africa/Lubumbashi' => 'közép-afrikai téli idő (Lubumbashi)',
         'Africa/Lusaka' => 'közép-afrikai téli idő (Lusaka)',
@@ -45,14 +46,14 @@
         'Africa/Mogadishu' => 'kelet-afrikai téli idő (Mogadishu)',
         'Africa/Monrovia' => 'greenwichi középidő, téli idő (Monrovia)',
         'Africa/Nairobi' => 'kelet-afrikai téli idő (Nairobi)',
-        'Africa/Ndjamena' => 'nyugat-afrikai időzóna (Ndjamena)',
+        'Africa/Ndjamena' => 'nyugat-afrikai időzóna (N’Djamena)',
         'Africa/Niamey' => 'nyugat-afrikai időzóna (Niamey)',
         'Africa/Nouakchott' => 'greenwichi középidő, téli idő (Nouakchott)',
         'Africa/Ouagadougou' => 'greenwichi középidő, téli idő (Ouagadougou)',
         'Africa/Porto-Novo' => 'nyugat-afrikai időzóna (Porto-Novo)',
         'Africa/Sao_Tome' => 'greenwichi középidő, téli idő (São Tomé)',
         'Africa/Tripoli' => 'kelet-európai időzóna (Tripoli)',
-        'Africa/Tunis' => 'közép-európai időzóna (Tunisz)',
+        'Africa/Tunis' => 'közép-európai idő (Tunisz)',
         'Africa/Windhoek' => 'közép-afrikai téli idő (Windhoek)',
         'America/Adak' => 'hawaii-aleuti időzóna (Adak)',
         'America/Anchorage' => 'alaszkai idő (Anchorage)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'kolumbiai idő (Bogotá)',
         'America/Boise' => 'hegyvidéki idő (Boise)',
         'America/Buenos_Aires' => 'argentínai idő (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'argentínai idő (Buenos Aires)',
         'America/Cambridge_Bay' => 'hegyvidéki idő (Cambridge Bay)',
         'America/Campo_Grande' => 'amazóniai idő (Campo Grande)',
         'America/Cancun' => 'keleti államokbeli idő (Cancún)',
         'America/Caracas' => 'venezuelai idő (Caracas)',
         'America/Catamarca' => 'argentínai idő (Catamarca)',
+        'America/Argentina/Catamarca' => 'argentínai idő (Catamarca)',
         'America/Cayenne' => 'francia-guyanai idő (Cayenne)',
         'America/Cayman' => 'keleti államokbeli idő (Kajmán-szigetek)',
         'America/Chicago' => 'középső államokbeli idő (Chicago)',
         'America/Chihuahua' => 'középső államokbeli idő (Chihuahua)',
         'America/Ciudad_Juarez' => 'hegyvidéki idő (Ciudad Juárez)',
         'America/Coral_Harbour' => 'keleti államokbeli idő (Atikokan)',
+        'America/Atikokan' => 'keleti államokbeli idő (Atikokan)',
         'America/Cordoba' => 'argentínai idő (Córdoba)',
+        'America/Argentina/Cordoba' => 'argentínai idő (Córdoba)',
         'America/Costa_Rica' => 'középső államokbeli idő (Costa Rica)',
+        'America/Coyhaique' => 'chilei időzóna (Coyhaique)',
         'America/Creston' => 'hegyvidéki idő (Creston)',
         'America/Cuiaba' => 'amazóniai idő (Cuiabá)',
         'America/Curacao' => 'atlanti-óceáni idő (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'brazíliai idő (Fortaleza)',
         'America/Glace_Bay' => 'atlanti-óceáni idő (Glace Bay)',
         'America/Godthab' => 'Grönland idő (Nuuk)',
+        'America/Nuuk' => 'Grönland idő (Nuuk)',
         'America/Goose_Bay' => 'atlanti-óceáni idő (Goose Bay)',
         'America/Grand_Turk' => 'keleti államokbeli idő (Grand Turk)',
         'America/Grenada' => 'atlanti-óceáni idő (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'keleti államokbeli idő (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'keleti államokbeli idő (Winamac, Indiana)',
         'America/Indianapolis' => 'keleti államokbeli idő (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'keleti államokbeli idő (Indianapolis)',
         'America/Inuvik' => 'hegyvidéki idő (Inuvik)',
         'America/Iqaluit' => 'keleti államokbeli idő (Iqaluit)',
         'America/Jamaica' => 'keleti államokbeli idő (Jamaica)',
         'America/Jujuy' => 'argentínai idő (Jujuy)',
+        'America/Argentina/Jujuy' => 'argentínai idő (Jujuy)',
         'America/Juneau' => 'alaszkai idő (Juneau)',
         'America/Kentucky/Monticello' => 'keleti államokbeli idő (Monticello, Kentucky)',
         'America/Kralendijk' => 'atlanti-óceáni idő (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'perui idő (Lima)',
         'America/Los_Angeles' => 'csendes-óceáni idő (Los Angeles)',
         'America/Louisville' => 'keleti államokbeli idő (Louisville)',
+        'America/Kentucky/Louisville' => 'keleti államokbeli idő (Louisville)',
         'America/Lower_Princes' => 'atlanti-óceáni idő (Lower Prince’s Quarter)',
         'America/Maceio' => 'brazíliai idő (Maceió)',
         'America/Managua' => 'középső államokbeli idő (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'középső államokbeli idő (Matamoros)',
         'America/Mazatlan' => 'mexikói csendes-óceáni idő (Mazatlán)',
         'America/Mendoza' => 'argentínai idő (Mendoza)',
+        'America/Argentina/Mendoza' => 'argentínai idő (Mendoza)',
         'America/Menominee' => 'középső államokbeli idő (Menominee)',
         'America/Merida' => 'középső államokbeli idő (Mérida)',
         'America/Metlakatla' => 'alaszkai idő (Metlakatla)',
@@ -175,7 +186,7 @@
         'America/Regina' => 'középső államokbeli idő (Regina)',
         'America/Resolute' => 'középső államokbeli idő (Resolute)',
         'America/Rio_Branco' => 'Acre idő (Río Branco)',
-        'America/Santarem' => 'brazíliai idő (Santarem)',
+        'America/Santarem' => 'brazíliai idő (Santarém)',
         'America/Santiago' => 'chilei időzóna (Santiago)',
         'America/Santo_Domingo' => 'atlanti-óceáni idő (Santo Domingo)',
         'America/Sao_Paulo' => 'brazíliai idő (São Paulo)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'új-zélandi idő (McMurdo)',
         'Antarctica/Palmer' => 'chilei időzóna (Palmer)',
         'Antarctica/Rothera' => 'rotherai idő',
-        'Antarctica/Syowa' => 'syowai idő',
+        'Antarctica/Syowa' => 'syowai idő (Showa)',
         'Antarctica/Troll' => 'greenwichi középidő, téli idő (Troll)',
         'Antarctica/Vostok' => 'vosztoki idő',
-        'Arctic/Longyearbyen' => 'közép-európai időzóna (Longyearbyen)',
+        'Arctic/Longyearbyen' => 'közép-európai idő (Longyearbyen)',
         'Asia/Aden' => 'arab idő (Áden)',
         'Asia/Almaty' => 'kazahsztáni idő (Alma-Ata)',
         'Asia/Amman' => 'kelet-európai időzóna (Ammán)',
-        'Asia/Anadyr' => 'Anadiri idő',
+        'Asia/Anadyr' => 'Petropavlovszk-kamcsatkai idő (Anadir)',
         'Asia/Aqtau' => 'kazahsztáni idő (Aktau)',
         'Asia/Aqtobe' => 'kazahsztáni idő (Aktöbe)',
         'Asia/Ashgabat' => 'türkmenisztáni idő (Asgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'arab idő (Bahrein)',
         'Asia/Baku' => 'azerbajdzsáni idő (Baku)',
         'Asia/Bangkok' => 'indokínai idő (Bangkok)',
-        'Asia/Barnaul' => 'Oroszország idő (Barnaul)',
+        'Asia/Barnaul' => 'krasznojarszki idő (Barnaul)',
         'Asia/Beirut' => 'kelet-európai időzóna (Bejrút)',
         'Asia/Bishkek' => 'kirgizisztáni idő (Biskek)',
         'Asia/Brunei' => 'Brunei Darussalam-i idő',
         'Asia/Calcutta' => 'indiai téli idő (Kalkutta)',
+        'Asia/Kolkata' => 'indiai téli idő (Kalkutta)',
         'Asia/Chita' => 'jakutszki idő (Csita)',
         'Asia/Colombo' => 'indiai téli idő (Colombo)',
         'Asia/Damascus' => 'kelet-európai időzóna (Damaszkusz)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'kelet-európai időzóna (Gáza)',
         'Asia/Hebron' => 'kelet-európai időzóna (Hebron)',
         'Asia/Hong_Kong' => 'hongkongi időzóna',
-        'Asia/Hovd' => 'hovdi idő',
+        'Asia/Hovd' => 'hovdi idő (Khovd)',
         'Asia/Irkutsk' => 'irkutszki idő',
         'Asia/Jakarta' => 'nyugat-indonéziai téli idő (Jakarta)',
         'Asia/Jayapura' => 'kelet-indonéziai idő (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovszk-kamcsatkai idő',
         'Asia/Karachi' => 'pakisztáni idő (Karacsi)',
         'Asia/Katmandu' => 'nepáli idő (Katmandu)',
+        'Asia/Kathmandu' => 'nepáli idő (Katmandu)',
         'Asia/Khandyga' => 'jakutszki idő (Handiga)',
         'Asia/Krasnoyarsk' => 'krasznojarszki idő',
         'Asia/Kuala_Lumpur' => 'malajziai idő (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'öbölbeli téli idő (Maszkat)',
         'Asia/Nicosia' => 'kelet-európai időzóna (Nicosia)',
         'Asia/Novokuznetsk' => 'krasznojarszki idő (Novokuznyeck)',
-        'Asia/Novosibirsk' => 'novoszibirszki idő',
+        'Asia/Novosibirsk' => 'krasznojarszki idő (Novoszibirszk)',
         'Asia/Omsk' => 'omszki idő',
         'Asia/Oral' => 'kazahsztáni idő (Oral)',
         'Asia/Phnom_Penh' => 'indokínai idő (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'kazahsztáni idő (Kosztanaj)',
         'Asia/Qyzylorda' => 'kazahsztáni idő (Kizilorda)',
         'Asia/Rangoon' => 'mianmari idő (Yangon)',
+        'Asia/Yangon' => 'mianmari idő (Yangon)',
         'Asia/Riyadh' => 'arab idő (Rijád)',
         'Asia/Saigon' => 'indokínai idő (Ho Si Minh-város)',
-        'Asia/Sakhalin' => 'szahalini idő',
+        'Asia/Ho_Chi_Minh' => 'indokínai idő (Ho Si Minh-város)',
+        'Asia/Sakhalin' => 'magadáni idő (Szahalin)',
         'Asia/Samarkand' => 'üzbegisztáni idő (Szamarkand)',
         'Asia/Seoul' => 'koreai idő (Szöul)',
         'Asia/Shanghai' => 'kínai idő (Sanghaj)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'iráni idő (Teherán)',
         'Asia/Thimphu' => 'butáni idő (Timpu)',
         'Asia/Tokyo' => 'japán idő (Tokió)',
-        'Asia/Tomsk' => 'Oroszország idő (Tomszk)',
+        'Asia/Tomsk' => 'krasznojarszki idő (Tomszk)',
         'Asia/Ulaanbaatar' => 'ulánbátori idő',
         'Asia/Urumqi' => 'Kína idő (Ürümcsi)',
         'Asia/Ust-Nera' => 'vlagyivosztoki idő (Uszty-Nyera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'nyugat-európai időzóna (Kanári-szigetek)',
         'Atlantic/Cape_Verde' => 'zöld-foki-szigeteki időzóna',
         'Atlantic/Faeroe' => 'nyugat-európai időzóna (Feröer)',
+        'Atlantic/Faroe' => 'nyugat-európai időzóna (Feröer)',
         'Atlantic/Madeira' => 'nyugat-európai időzóna (Madeira)',
         'Atlantic/Reykjavik' => 'greenwichi középidő, téli idő (Reykjavík)',
         'Atlantic/South_Georgia' => 'déli-georgiai idő',
@@ -314,71 +330,72 @@
         'Australia/Sydney' => 'kelet-ausztráliai idő (Sydney)',
         'Etc/GMT' => 'greenwichi középidő, téli idő',
         'Etc/UTC' => 'koordinált világidő',
-        'Europe/Amsterdam' => 'közép-európai időzóna (Amszterdam)',
-        'Europe/Andorra' => 'közép-európai időzóna (Andorra)',
-        'Europe/Astrakhan' => 'moszkvai idő (Asztrahán)',
+        'Europe/Amsterdam' => 'közép-európai idő (Amszterdam)',
+        'Europe/Andorra' => 'közép-európai idő (Andorra)',
+        'Europe/Astrakhan' => 'Szamarai idő (Asztrahán)',
         'Europe/Athens' => 'kelet-európai időzóna (Athén)',
-        'Europe/Belgrade' => 'közép-európai időzóna (Belgrád)',
-        'Europe/Berlin' => 'közép-európai időzóna (Berlin)',
-        'Europe/Bratislava' => 'közép-európai időzóna (Pozsony)',
-        'Europe/Brussels' => 'közép-európai időzóna (Brüsszel)',
+        'Europe/Belgrade' => 'közép-európai idő (Belgrád)',
+        'Europe/Berlin' => 'közép-európai idő (Berlin)',
+        'Europe/Bratislava' => 'közép-európai idő (Pozsony)',
+        'Europe/Brussels' => 'közép-európai idő (Brüsszel)',
         'Europe/Bucharest' => 'kelet-európai időzóna (Bukarest)',
-        'Europe/Budapest' => 'közép-európai időzóna (Budapest)',
-        'Europe/Busingen' => 'közép-európai időzóna (Büsingen)',
-        'Europe/Chisinau' => 'kelet-európai időzóna (Chisinau)',
-        'Europe/Copenhagen' => 'közép-európai időzóna (Koppenhága)',
+        'Europe/Budapest' => 'közép-európai idő (Budapest)',
+        'Europe/Busingen' => 'közép-európai idő (Büsingen)',
+        'Europe/Chisinau' => 'kelet-európai időzóna (Chișinău)',
+        'Europe/Copenhagen' => 'közép-európai idő (Koppenhága)',
         'Europe/Dublin' => 'greenwichi középidő, téli idő (Dublin)',
-        'Europe/Gibraltar' => 'közép-európai időzóna (Gibraltár)',
+        'Europe/Gibraltar' => 'közép-európai idő (Gibraltár)',
         'Europe/Guernsey' => 'greenwichi középidő, téli idő (Guernsey)',
         'Europe/Helsinki' => 'kelet-európai időzóna (Helsinki)',
         'Europe/Isle_of_Man' => 'greenwichi középidő, téli idő (Man-sziget)',
-        'Europe/Istanbul' => 'Törökország idő (Isztanbul)',
+        'Europe/Istanbul' => 'Törökországi idő (Isztanbul)',
         'Europe/Jersey' => 'greenwichi középidő, téli idő (Jersey)',
         'Europe/Kaliningrad' => 'kelet-európai időzóna (Kalinyingrád)',
         'Europe/Kiev' => 'kelet-európai időzóna (Kijev)',
-        'Europe/Kirov' => 'Oroszország idő (Kirov)',
+        'Europe/Kyiv' => 'kelet-európai időzóna (Kijev)',
+        'Europe/Kirov' => 'moszkvai idő (Kirov)',
         'Europe/Lisbon' => 'nyugat-európai időzóna (Lisszabon)',
-        'Europe/Ljubljana' => 'közép-európai időzóna (Ljubljana)',
+        'Europe/Ljubljana' => 'közép-európai idő (Ljubljana)',
         'Europe/London' => 'greenwichi középidő, téli idő (London)',
-        'Europe/Luxembourg' => 'közép-európai időzóna (Luxemburg)',
-        'Europe/Madrid' => 'közép-európai időzóna (Madrid)',
-        'Europe/Malta' => 'közép-európai időzóna (Málta)',
+        'Europe/Luxembourg' => 'közép-európai idő (Luxemburg)',
+        'Europe/Madrid' => 'közép-európai idő (Madrid)',
+        'Europe/Malta' => 'közép-európai idő (Málta)',
         'Europe/Mariehamn' => 'kelet-európai időzóna (Mariehamn)',
         'Europe/Minsk' => 'moszkvai idő (Minszk)',
-        'Europe/Monaco' => 'közép-európai időzóna (Monaco)',
+        'Europe/Monaco' => 'közép-európai idő (Monaco)',
         'Europe/Moscow' => 'moszkvai idő',
-        'Europe/Oslo' => 'közép-európai időzóna (Oslo)',
-        'Europe/Paris' => 'közép-európai időzóna (Párizs)',
-        'Europe/Podgorica' => 'közép-európai időzóna (Podgorica)',
-        'Europe/Prague' => 'közép-európai időzóna (Prága)',
+        'Europe/Oslo' => 'közép-európai idő (Oslo)',
+        'Europe/Paris' => 'közép-európai idő (Párizs)',
+        'Europe/Podgorica' => 'közép-európai idő (Podgorica)',
+        'Europe/Prague' => 'közép-európai idő (Prága)',
         'Europe/Riga' => 'kelet-európai időzóna (Riga)',
-        'Europe/Rome' => 'közép-európai időzóna (Róma)',
+        'Europe/Rome' => 'közép-európai idő (Róma)',
         'Europe/Samara' => 'Szamarai idő',
-        'Europe/San_Marino' => 'közép-európai időzóna (San Marino)',
-        'Europe/Sarajevo' => 'közép-európai időzóna (Szarajevó)',
-        'Europe/Saratov' => 'moszkvai idő (Szaratov)',
+        'Europe/San_Marino' => 'közép-európai idő (San Marino)',
+        'Europe/Sarajevo' => 'közép-európai idő (Szarajevó)',
+        'Europe/Saratov' => 'Szamarai idő (Szaratov)',
         'Europe/Simferopol' => 'moszkvai idő (Szimferopol)',
-        'Europe/Skopje' => 'közép-európai időzóna (Szkopje)',
+        'Europe/Skopje' => 'közép-európai idő (Szkopje)',
         'Europe/Sofia' => 'kelet-európai időzóna (Szófia)',
-        'Europe/Stockholm' => 'közép-európai időzóna (Stockholm)',
+        'Europe/Stockholm' => 'közép-európai idő (Stockholm)',
         'Europe/Tallinn' => 'kelet-európai időzóna (Tallin)',
-        'Europe/Tirane' => 'közép-európai időzóna (Tirana)',
-        'Europe/Ulyanovsk' => 'moszkvai idő (Uljanovszk)',
-        'Europe/Vaduz' => 'közép-európai időzóna (Vaduz)',
-        'Europe/Vatican' => 'közép-európai időzóna (Vatikán)',
-        'Europe/Vienna' => 'közép-európai időzóna (Bécs)',
+        'Europe/Tirane' => 'közép-európai idő (Tirana)',
+        'Europe/Ulyanovsk' => 'Szamarai idő (Uljanovszk)',
+        'Europe/Vaduz' => 'közép-európai idő (Vaduz)',
+        'Europe/Vatican' => 'közép-európai idő (Vatikán)',
+        'Europe/Vienna' => 'közép-európai idő (Bécs)',
         'Europe/Vilnius' => 'kelet-európai időzóna (Vilnius)',
-        'Europe/Volgograd' => 'volgográdi idő',
-        'Europe/Warsaw' => 'közép-európai időzóna (Varsó)',
-        'Europe/Zagreb' => 'közép-európai időzóna (Zágráb)',
-        'Europe/Zurich' => 'közép-európai időzóna (Zürich)',
+        'Europe/Volgograd' => 'moszkvai idő (Volgográd)',
+        'Europe/Warsaw' => 'közép-európai idő (Varsó)',
+        'Europe/Zagreb' => 'közép-európai idő (Zágráb)',
+        'Europe/Zurich' => 'közép-európai idő (Zürich)',
         'Indian/Antananarivo' => 'kelet-afrikai téli idő (Antananarivo)',
         'Indian/Chagos' => 'indiai-óceáni idő (Chagos)',
         'Indian/Christmas' => 'karácsony-szigeti idő',
         'Indian/Cocos' => 'kókusz-szigeteki téli idő',
         'Indian/Comoro' => 'kelet-afrikai téli idő (Komoró)',
         'Indian/Kerguelen' => 'francia déli és antarktiszi idő (Kerguelen)',
-        'Indian/Mahe' => 'seychelle-szigeteki idő (Mahe)',
+        'Indian/Mahe' => 'seychelle-szigeteki idő (Mahé)',
         'Indian/Maldives' => 'maldív-szigeteki idő',
         'Indian/Mauritius' => 'mauritiusi időzóna',
         'Indian/Mayotte' => 'kelet-afrikai téli idő (Mayotte)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'chathami idő (Chatham-szigetek)',
         'Pacific/Easter' => 'húsvét-szigeti időzóna (Húsvét-szigetek)',
         'Pacific/Efate' => 'vanuatui idő (Efate)',
-        'Pacific/Enderbury' => 'phoenix-szigeteki téli idő (Enderbury)',
+        'Pacific/Enderbury' => 'phoenix-szigeteki téli idő (Canton-sziget)',
+        'Pacific/Kanton' => 'phoenix-szigeteki téli idő (Canton-sziget)',
         'Pacific/Fakaofo' => 'tokelaui idő (Fakaofo)',
         'Pacific/Fiji' => 'fidzsi idő',
         'Pacific/Funafuti' => 'tuvalui idő (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'gambieri idő (Gambier-szigetek)',
         'Pacific/Guadalcanal' => 'salamon-szigeteki idő (Guadalcanal)',
         'Pacific/Guam' => 'chamorrói téli idő (Guam)',
-        'Pacific/Honolulu' => 'hawaii-aleuti időzóna (Honolulu)',
+        'Pacific/Honolulu' => 'hawaii-aleuti téli idő (Honolulu)',
         'Pacific/Kiritimati' => 'sor-szigeteki idő (Kiritimati-sziget)',
         'Pacific/Kosrae' => 'kosraei idő (Kosrae-szigetek)',
         'Pacific/Kwajalein' => 'marshall-szigeteki idő (Kwajalein-zátony)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'naurui idő',
         'Pacific/Niue' => 'niuei idő',
         'Pacific/Norfolk' => 'norfolk-szigeteki idő',
-        'Pacific/Noumea' => 'új-kaledóniai idő (Noumea)',
+        'Pacific/Noumea' => 'új-kaledóniai idő (Nouméa)',
         'Pacific/Pago_Pago' => 'szamoai idő (Pago Pago)',
         'Pacific/Palau' => 'palaui idő',
         'Pacific/Pitcairn' => 'pitcairn-szigeteki idő',
         'Pacific/Ponape' => 'ponape-szigeti idő (Ponape-szigetek)',
+        'Pacific/Pohnpei' => 'ponape-szigeti idő (Ponape-szigetek)',
         'Pacific/Port_Moresby' => 'pápua új-guineai idő (Port Moresby)',
         'Pacific/Rarotonga' => 'cook-szigeteki idő (Rarotonga)',
         'Pacific/Saipan' => 'chamorrói téli idő (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'gilbert-szigeteki idő (Tarawa)',
         'Pacific/Tongatapu' => 'tongai idő (Tongatapu)',
         'Pacific/Truk' => 'truki idő',
+        'Pacific/Chuuk' => 'truki idő',
         'Pacific/Wake' => 'wake-szigeti idő',
-        'Pacific/Wallis' => 'Wallis és Futuna-i idő',
+        'Pacific/Wallis' => 'Wallis és Futuna-i idő (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/hy.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Արևելյան Աֆրիկայի ժամանակ (Ադիս Աբեբա)',
         'Africa/Algiers' => 'Կենտրոնական Եվրոպայի ժամանակ (Ալժիր)',
         'Africa/Asmera' => 'Արևելյան Աֆրիկայի ժամանակ (Ասմերա)',
+        'Africa/Asmara' => 'Արևելյան Աֆրիկայի ժամանակ (Ասմերա)',
         'Africa/Bamako' => 'Գրինվիչի ժամանակ (Բամակո)',
         'Africa/Bangui' => 'Արևմտյան Աֆրիկայի ժամանակ (Բանգի)',
         'Africa/Banjul' => 'Գրինվիչի ժամանակ (Բանժուլ)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Կոլումբիայի ժամանակ (Բոգոտա)',
         'America/Boise' => 'Լեռնային ժամանակ (ԱՄՆ) (Բոյսե)',
         'America/Buenos_Aires' => 'Արգենտինայի ժամանակ (Բուենոս Այրես)',
+        'America/Argentina/Buenos_Aires' => 'Արգենտինայի ժամանակ (Բուենոս Այրես)',
         'America/Cambridge_Bay' => 'Լեռնային ժամանակ (ԱՄՆ) (Քեմբրիջ Բեյ)',
         'America/Campo_Grande' => 'Ամազոնյան ժամանակ (Կամպու Գրանդի)',
         'America/Cancun' => 'Արևելյան Ամերիկայի ժամանակ (Կանկուն)',
         'America/Caracas' => 'Վենեսուելայի ժամանակ (Կարակաս)',
         'America/Catamarca' => 'Արգենտինայի ժամանակ (Կատամարկա)',
+        'America/Argentina/Catamarca' => 'Արգենտինայի ժամանակ (Կատամարկա)',
         'America/Cayenne' => 'Ֆրանսիական Գվիանայի ժամանակ (Կայեն)',
         'America/Cayman' => 'Արևելյան Ամերիկայի ժամանակ (Կայման կղզիներ)',
         'America/Chicago' => 'Կենտրոնական Ամերիկայի ժամանակ (Չիկագո)',
         'America/Chihuahua' => 'Կենտրոնական Ամերիկայի ժամանակ (Չիուաուա)',
         'America/Ciudad_Juarez' => 'Լեռնային ժամանակ (ԱՄՆ) (Սյուդադ Խուարես)',
         'America/Coral_Harbour' => 'Արևելյան Ամերիկայի ժամանակ (Ատիկոկան)',
+        'America/Atikokan' => 'Արևելյան Ամերիկայի ժամանակ (Ատիկոկան)',
         'America/Cordoba' => 'Արգենտինայի ժամանակ (Կորդովա)',
+        'America/Argentina/Cordoba' => 'Արգենտինայի ժամանակ (Կորդովա)',
         'America/Costa_Rica' => 'Կենտրոնական Ամերիկայի ժամանակ (Կոստա Ռիկա)',
+        'America/Coyhaique' => 'Չիլիի ժամանակ (Կոյայկե)',
         'America/Creston' => 'Լեռնային ժամանակ (ԱՄՆ) (Քրեսթոն)',
         'America/Cuiaba' => 'Ամազոնյան ժամանակ (Կույաբա)',
         'America/Curacao' => 'Ատլանտյան ժամանակ (Կյուրասաո)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Բրազիլիայի ժամանակ (Ֆորտալեզա)',
         'America/Glace_Bay' => 'Ատլանտյան ժամանակ (Գլեյս Բեյ)',
         'America/Godthab' => 'Գրենլանդիա (Նուուկ)',
+        'America/Nuuk' => 'Գրենլանդիա (Նուուկ)',
         'America/Goose_Bay' => 'Ատլանտյան ժամանակ (Գուս Բեյ)',
         'America/Grand_Turk' => 'Արևելյան Ամերիկայի ժամանակ (Գրանդ Տյորք)',
         'America/Grenada' => 'Ատլանտյան ժամանակ (Գրենադա)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Արևելյան Ամերիկայի ժամանակ (Վինսենս, Ինդիանա)',
         'America/Indiana/Winamac' => 'Արևելյան Ամերիկայի ժամանակ (Վինամակ, Ինդիանա)',
         'America/Indianapolis' => 'Արևելյան Ամերիկայի ժամանակ (Ինդիանապոլիս)',
+        'America/Indiana/Indianapolis' => 'Արևելյան Ամերիկայի ժամանակ (Ինդիանապոլիս)',
         'America/Inuvik' => 'Լեռնային ժամանակ (ԱՄՆ) (Ինուվիկ)',
         'America/Iqaluit' => 'Արևելյան Ամերիկայի ժամանակ (Իկալուիտ)',
         'America/Jamaica' => 'Արևելյան Ամերիկայի ժամանակ (Ճամայկա)',
         'America/Jujuy' => 'Արգենտինայի ժամանակ (Ժուժույ)',
+        'America/Argentina/Jujuy' => 'Արգենտինայի ժամանակ (Ժուժույ)',
         'America/Juneau' => 'Ալյասկայի ժամանակ (Ջունո)',
         'America/Kentucky/Monticello' => 'Արևելյան Ամերիկայի ժամանակ (Մոնտիսելո, Կենտուկի)',
         'America/Kralendijk' => 'Ատլանտյան ժամանակ (Կրալենդեյկ)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Պերուի ժամանակ (Լիմա)',
         'America/Los_Angeles' => 'Խաղաղօվկիանոսյան ժամանակ (Լոս Անջելես)',
         'America/Louisville' => 'Արևելյան Ամերիկայի ժամանակ (Լուիսվիլ)',
+        'America/Kentucky/Louisville' => 'Արևելյան Ամերիկայի ժամանակ (Լուիսվիլ)',
         'America/Lower_Princes' => 'Ատլանտյան ժամանակ (Լոուեր Պրինսես Քվորթեր)',
         'America/Maceio' => 'Բրազիլիայի ժամանակ (Մասեյո)',
         'America/Managua' => 'Կենտրոնական Ամերիկայի ժամանակ (Մանագուա)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Կենտրոնական Ամերիկայի ժամանակ (Մատամորոս)',
         'America/Mazatlan' => 'Մեքսիկայի խաղաղօվկիանոսյան ժամանակ (Մազաթլան)',
         'America/Mendoza' => 'Արգենտինայի ժամանակ (Մենդոսա)',
+        'America/Argentina/Mendoza' => 'Արգենտինայի ժամանակ (Մենդոսա)',
         'America/Menominee' => 'Կենտրոնական Ամերիկայի ժամանակ (Մենոմինի)',
         'America/Merida' => 'Կենտրոնական Ամերիկայի ժամանակ (Մերիդա)',
         'America/Metlakatla' => 'Ալյասկայի ժամանակ (Մետլակատլա)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Սաուդյան Արաբիայի ժամանակ (Բահրեյն)',
         'Asia/Baku' => 'Ադրբեջանի ժամանակ (Բաքու)',
         'Asia/Bangkok' => 'Հնդկաչինական ժամանակ (Բանգկոկ)',
-        'Asia/Barnaul' => 'Ռուսաստան (Բառնաուլ)',
+        'Asia/Barnaul' => 'Կրասնոյարսկի ժամանակ (Բառնաուլ)',
         'Asia/Beirut' => 'Արևելյան Եվրոպայի ժամանակ (Բեյրութ)',
         'Asia/Bishkek' => 'Ղրղզստանի ժամանակ (Բիշքեկ)',
         'Asia/Brunei' => 'Բրունեյի ժամանակ',
         'Asia/Calcutta' => 'Հնդկաստանի ստանդարտ ժամանակ (Կալկուտա)',
+        'Asia/Kolkata' => 'Հնդկաստանի ստանդարտ ժամանակ (Կալկուտա)',
         'Asia/Chita' => 'Յակուտսկի ժամանակ (Չիտա)',
         'Asia/Colombo' => 'Հնդկաստանի ստանդարտ ժամանակ (Կոլոմբո)',
         'Asia/Damascus' => 'Արևելյան Եվրոպայի ժամանակ (Դամասկոս)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Ռուսաստան (Կամչատկա)',
         'Asia/Karachi' => 'Պակիստանի ժամանակ (Կարաչի)',
         'Asia/Katmandu' => 'Նեպալի ժամանակ (Կատմանդու)',
+        'Asia/Kathmandu' => 'Նեպալի ժամանակ (Կատմանդու)',
         'Asia/Khandyga' => 'Յակուտսկի ժամանակ (Խանդիգա)',
         'Asia/Krasnoyarsk' => 'Կրասնոյարսկի ժամանակ',
         'Asia/Kuala_Lumpur' => 'Մալայզիայի ժամանակ (Կուալա Լումպուր)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Պարսից ծոցի ստանդարտ ժամանակ (Մասկատ)',
         'Asia/Nicosia' => 'Արևելյան Եվրոպայի ժամանակ (Նիկոսիա)',
         'Asia/Novokuznetsk' => 'Կրասնոյարսկի ժամանակ (Նովոկուզնեցկ)',
-        'Asia/Novosibirsk' => 'Նովոսիբիրսկի ժամանակ',
+        'Asia/Novosibirsk' => 'Կրասնոյարսկի ժամանակ (Նովոսիբիրսկ)',
         'Asia/Omsk' => 'Օմսկի ժամանակ',
         'Asia/Oral' => 'Ղազախստանի ժամանակ (Ուրալսկ)',
         'Asia/Phnom_Penh' => 'Հնդկաչինական ժամանակ (Պնոմպեն)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Ղազախստանի ժամանակ (Կոստանայ)',
         'Asia/Qyzylorda' => 'Ղազախստանի ժամանակ (Կիզիլորդա)',
         'Asia/Rangoon' => 'Մյանմայի ժամանակ (Ռանգուն)',
+        'Asia/Yangon' => 'Մյանմայի ժամանակ (Ռանգուն)',
         'Asia/Riyadh' => 'Սաուդյան Արաբիայի ժամանակ (Էր Ռիադ)',
         'Asia/Saigon' => 'Հնդկաչինական ժամանակ (Հոշիմին)',
-        'Asia/Sakhalin' => 'Սախալինի ժամանակ',
+        'Asia/Ho_Chi_Minh' => 'Հնդկաչինական ժամանակ (Հոշիմին)',
+        'Asia/Sakhalin' => 'Մագադանի ժամանակ (Սախալին)',
         'Asia/Samarkand' => 'Ուզբեկստանի ժամանակ (Սամարղանդ)',
         'Asia/Seoul' => 'Կորեայի ժամանակ (Սեուլ)',
         'Asia/Shanghai' => 'Չինաստանի ժամանակ (Շանհայ)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Իրանի ժամանակ (Թեհրան)',
         'Asia/Thimphu' => 'Բութանի ժամանակ (Տհիմպհու)',
         'Asia/Tokyo' => 'Ճապոնիայի ժամանակ (Տոկիո)',
-        'Asia/Tomsk' => 'Ռուսաստան (Տոմսկ)',
+        'Asia/Tomsk' => 'Կրասնոյարսկի ժամանակ (Տոմսկ)',
         'Asia/Ulaanbaatar' => 'Ուլան Բատորի ժամանակ',
         'Asia/Urumqi' => 'Չինաստան (Ուրումչի)',
         'Asia/Ust-Nera' => 'Վլադիվոստոկի ժամանակ (Ուստ-Ներա)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Արևմտյան Եվրոպայի ժամանակ (Կանարյան կղզիներ)',
         'Atlantic/Cape_Verde' => 'Կաբո Վերդեի ժամանակ',
         'Atlantic/Faeroe' => 'Արևմտյան Եվրոպայի ժամանակ (Ֆարերյան կղզիներ)',
+        'Atlantic/Faroe' => 'Արևմտյան Եվրոպայի ժամանակ (Ֆարերյան կղզիներ)',
         'Atlantic/Madeira' => 'Արևմտյան Եվրոպայի ժամանակ (Մադեյրա)',
         'Atlantic/Reykjavik' => 'Գրինվիչի ժամանակ (Ռեյկյավիկ)',
         'Atlantic/South_Georgia' => 'Հարավային Ջորջիայի ժամանակ',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Համաշխարհային կոորդինացված ժամանակ',
         'Europe/Amsterdam' => 'Կենտրոնական Եվրոպայի ժամանակ (Ամստերդամ)',
         'Europe/Andorra' => 'Կենտրոնական Եվրոպայի ժամանակ (Անդորրա)',
-        'Europe/Astrakhan' => 'Մոսկվայի ժամանակ (Աստրախան)',
+        'Europe/Astrakhan' => 'Ռուսաստան (Աստրախան)',
         'Europe/Athens' => 'Արևելյան Եվրոպայի ժամանակ (Աթենք)',
         'Europe/Belgrade' => 'Կենտրոնական Եվրոպայի ժամանակ (Բելգրադ)',
         'Europe/Berlin' => 'Կենտրոնական Եվրոպայի ժամանակ (Բեռլին)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Գրինվիչի ժամանակ (Ջերսի)',
         'Europe/Kaliningrad' => 'Արևելյան Եվրոպայի ժամանակ (Կալինինգրադ)',
         'Europe/Kiev' => 'Արևելյան Եվրոպայի ժամանակ (Կիև)',
-        'Europe/Kirov' => 'Ռուսաստան (Կիրով)',
+        'Europe/Kyiv' => 'Արևելյան Եվրոպայի ժամանակ (Կիև)',
+        'Europe/Kirov' => 'Մոսկվայի ժամանակ (Կիրով)',
         'Europe/Lisbon' => 'Արևմտյան Եվրոպայի ժամանակ (Լիսաբոն)',
         'Europe/Ljubljana' => 'Կենտրոնական Եվրոպայի ժամանակ (Լյուբլյանա)',
         'Europe/London' => 'Գրինվիչի ժամանակ (Լոնդոն)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Ռուսաստան (Սամարա)',
         'Europe/San_Marino' => 'Կենտրոնական Եվրոպայի ժամանակ (Սան Մարինո)',
         'Europe/Sarajevo' => 'Կենտրոնական Եվրոպայի ժամանակ (Սարաևո)',
-        'Europe/Saratov' => 'Մոսկվայի ժամանակ (Սարատով)',
+        'Europe/Saratov' => 'Ռուսաստան (Սարատով)',
         'Europe/Simferopol' => 'Մոսկվայի ժամանակ (Սիմֆերոպոլ)',
         'Europe/Skopje' => 'Կենտրոնական Եվրոպայի ժամանակ (Սկոպյե)',
         'Europe/Sofia' => 'Արևելյան Եվրոպայի ժամանակ (Սոֆիա)',
         'Europe/Stockholm' => 'Կենտրոնական Եվրոպայի ժամանակ (Ստոկհոլմ)',
         'Europe/Tallinn' => 'Արևելյան Եվրոպայի ժամանակ (Տալլին)',
         'Europe/Tirane' => 'Կենտրոնական Եվրոպայի ժամանակ (Տիրանա)',
-        'Europe/Ulyanovsk' => 'Մոսկվայի ժամանակ (Ուլյանովսկ)',
+        'Europe/Ulyanovsk' => 'Ռուսաստան (Ուլյանովսկ)',
         'Europe/Vaduz' => 'Կենտրոնական Եվրոպայի ժամանակ (Վադուց)',
         'Europe/Vatican' => 'Կենտրոնական Եվրոպայի ժամանակ (Վատիկան)',
         'Europe/Vienna' => 'Կենտրոնական Եվրոպայի ժամանակ (Վիեննա)',
         'Europe/Vilnius' => 'Արևելյան Եվրոպայի ժամանակ (Վիլնյուս)',
-        'Europe/Volgograd' => 'Վոլգոգրադի ժամանակ',
+        'Europe/Volgograd' => 'Մոսկվայի ժամանակ (Վոլգոգրադ)',
         'Europe/Warsaw' => 'Կենտրոնական Եվրոպայի ժամանակ (Վարշավա)',
         'Europe/Zagreb' => 'Կենտրոնական Եվրոպայի ժամանակ (Զագրեբ)',
         'Europe/Zurich' => 'Կենտրոնական Եվրոպայի ժամանակ (Ցյուրիխ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Չաթեմ կղզու ժամանակ (Չաթեմ կղզի)',
         'Pacific/Easter' => 'Զատկի կղզու ժամանակ (Զատկի կղզի)',
         'Pacific/Efate' => 'Վանուատույի ժամանակ (Էֆատե)',
-        'Pacific/Enderbury' => 'Ֆինիքս կղզիների ժամանակ (Էնդերբերի կղզի)',
+        'Pacific/Enderbury' => 'Ֆինիքս կղզիների ժամանակ (Կանտոն)',
+        'Pacific/Kanton' => 'Ֆինիքս կղզիների ժամանակ (Կանտոն)',
         'Pacific/Fakaofo' => 'Տոկելաույի ժամանակ (Ֆակաոֆո)',
         'Pacific/Fiji' => 'Ֆիջիի ժամանակ',
         'Pacific/Funafuti' => 'Տուվալույի ժամանակ (Ֆունաֆուտի)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Գամբյե կղզիների ժամանակ',
         'Pacific/Guadalcanal' => 'Սողոմոնի կղզիների ժամանակ (Գուադալկանալ)',
         'Pacific/Guam' => 'Չամոռոյի ժամանակ (Գուամ)',
-        'Pacific/Honolulu' => 'Հավայան-ալեության ժամանակ (Հոնոլուլու)',
+        'Pacific/Honolulu' => 'Հավայան-ալեության ստանդարտ ժամանակ (Հոնոլուլու)',
         'Pacific/Kiritimati' => 'Լայն կղզիների ժամանակ (Կիրիտիմատի)',
         'Pacific/Kosrae' => 'Կոսրաեյի ժամանակ',
         'Pacific/Kwajalein' => 'Մարշալյան կղզիների ժամանակ (Քվաջալեյն)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Պալաույի ժամանակ',
         'Pacific/Pitcairn' => 'Պիտկեռնի ժամանակ',
         'Pacific/Ponape' => 'Պոնապե կղզու ժամանակ (Պոնպեի)',
+        'Pacific/Pohnpei' => 'Պոնապե կղզու ժամանակ (Պոնպեի)',
         'Pacific/Port_Moresby' => 'Պապուա Նոր Գվինեայի ժամանակ (Պորտ Մորսբի)',
         'Pacific/Rarotonga' => 'Կուկի կղզիների ժամանակ (Ռարոտոնգա)',
         'Pacific/Saipan' => 'Չամոռոյի ժամանակ (Սայպան)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Ջիլբերթի կղզիների ժամանակ (Տարավա)',
         'Pacific/Tongatapu' => 'Տոնգայի ժամանակ (Տոնգատապու)',
         'Pacific/Truk' => 'Տրուկի ժամանակ (Չուուկ)',
+        'Pacific/Chuuk' => 'Տրուկի ժամանակ (Չուուկ)',
         'Pacific/Wake' => 'Ուեյք կղզու ժամանակ (Ուեյք կղզի)',
         'Pacific/Wallis' => 'Ուոլիս և Ֆուտունայի ժամանակ',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ia.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ia.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ia.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ia.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'hora de Africa del Est (Addis Ababa)',
         'Africa/Algiers' => 'hora de Europa central (Algiers)',
         'Africa/Asmera' => 'hora de Africa del Est (Asmara)',
+        'Africa/Asmara' => 'hora de Africa del Est (Asmara)',
         'Africa/Bamako' => 'hora medie de Greenwich (Bamako)',
         'Africa/Bangui' => 'hora de Africa del West (Bangui)',
         'Africa/Banjul' => 'hora medie de Greenwich (Banjul)',
@@ -22,11 +23,11 @@
         'Africa/Dar_es_Salaam' => 'hora de Africa del Est (Dar es Salaam)',
         'Africa/Djibouti' => 'hora de Africa del Est (Djibuti)',
         'Africa/Douala' => 'hora de Africa del West (Douala)',
-        'Africa/El_Aaiun' => 'hora de Europa occidental (El Aaiun)',
+        'Africa/El_Aaiun' => 'hora de Europa occidental (El Aaiún)',
         'Africa/Freetown' => 'hora medie de Greenwich (Freetown)',
         'Africa/Gaborone' => 'hora de Africa Central (Gaborone)',
         'Africa/Harare' => 'hora de Africa Central (Harare)',
-        'Africa/Johannesburg' => 'hora standard de Africa del Sud (Johannesburg)',
+        'Africa/Johannesburg' => 'hora normal de Africa del Sud (Johannesburg)',
         'Africa/Juba' => 'hora de Africa Central (Juba)',
         'Africa/Kampala' => 'hora de Africa del Est (Kampala)',
         'Africa/Khartoum' => 'hora de Africa Central (Khartoum)',
@@ -34,18 +35,18 @@
         'Africa/Kinshasa' => 'hora de Africa del West (Kinshasa)',
         'Africa/Lagos' => 'hora de Africa del West (Lagos)',
         'Africa/Libreville' => 'hora de Africa del West (Libreville)',
-        'Africa/Lome' => 'hora medie de Greenwich (Lome)',
+        'Africa/Lome' => 'hora medie de Greenwich (Lomé)',
         'Africa/Luanda' => 'hora de Africa del West (Luanda)',
         'Africa/Lubumbashi' => 'hora de Africa Central (Lubumbashi)',
         'Africa/Lusaka' => 'hora de Africa Central (Lusaka)',
         'Africa/Malabo' => 'hora de Africa del West (Malabo)',
         'Africa/Maputo' => 'hora de Africa Central (Maputo)',
-        'Africa/Maseru' => 'hora standard de Africa del Sud (Maseru)',
-        'Africa/Mbabane' => 'hora standard de Africa del Sud (Mbabane)',
+        'Africa/Maseru' => 'hora normal de Africa del Sud (Maseru)',
+        'Africa/Mbabane' => 'hora normal de Africa del Sud (Mbabane)',
         'Africa/Mogadishu' => 'hora de Africa del Est (Mogadishu)',
         'Africa/Monrovia' => 'hora medie de Greenwich (Monrovia)',
         'Africa/Nairobi' => 'hora de Africa del Est (Nairobi)',
-        'Africa/Ndjamena' => 'hora de Africa del West (Ndjamena)',
+        'Africa/Ndjamena' => 'hora de Africa del West (N’Djamena)',
         'Africa/Niamey' => 'hora de Africa del West (Niamey)',
         'Africa/Nouakchott' => 'hora medie de Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'hora medie de Greenwich (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'hora de Alaska (Anchorage)',
         'America/Anguilla' => 'hora atlantic (Anguilla)',
         'America/Antigua' => 'hora atlantic (Antigua)',
-        'America/Araguaina' => 'hora de Brasilia (Araguaina)',
+        'America/Araguaina' => 'hora de Brasilia (Araguaína)',
         'America/Argentina/La_Rioja' => 'hora de Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'hora de Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'hora de Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'hora de Argentina (Salta)',
         'America/Argentina/San_Juan' => 'hora de Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'hora de Argentina (San Luis)',
-        'America/Argentina/Tucuman' => 'hora de Argentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'hora de Argentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'hora de Argentina (Ushuaia)',
         'America/Aruba' => 'hora atlantic (Aruba)',
         'America/Asuncion' => 'hora de Paraguay (Asunción)',
         'America/Bahia' => 'hora de Brasilia (Bahia)',
         'America/Bahia_Banderas' => 'hora central (Bahia de Banderas)',
         'America/Barbados' => 'hora atlantic (Barbados)',
-        'America/Belem' => 'hora de Brasilia (Belem)',
+        'America/Belem' => 'hora de Brasilia (Belém)',
         'America/Belize' => 'hora central (Belize)',
         'America/Blanc-Sablon' => 'hora atlantic (Blanc-Sablon)',
         'America/Boa_Vista' => 'hora de Amazonia (Boa Vista)',
-        'America/Bogota' => 'hora de Colombia (Bogota)',
+        'America/Bogota' => 'hora de Colombia (Bogotá)',
         'America/Boise' => 'hora del montanias (Boise)',
         'America/Buenos_Aires' => 'hora de Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'hora de Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'hora del montanias (Cambridge Bay)',
         'America/Campo_Grande' => 'hora de Amazonia (Campo Grande)',
         'America/Cancun' => 'hora del est (Cancun)',
         'America/Caracas' => 'hora de Venezuela (Caracas)',
         'America/Catamarca' => 'hora de Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'hora de Argentina (Catamarca)',
         'America/Cayenne' => 'hora de Guiana Francese (Cayenne)',
         'America/Cayman' => 'hora del est (Caiman)',
         'America/Chicago' => 'hora central (Chicago)',
         'America/Chihuahua' => 'hora central (Chihuahua)',
         'America/Ciudad_Juarez' => 'hora del montanias (Ciudad Juárez)',
         'America/Coral_Harbour' => 'hora del est (Atikokan)',
-        'America/Cordoba' => 'hora de Argentina (Cordoba)',
+        'America/Atikokan' => 'hora del est (Atikokan)',
+        'America/Cordoba' => 'hora de Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'hora de Argentina (Córdoba)',
         'America/Costa_Rica' => 'hora central (Costa Rica)',
+        'America/Coyhaique' => 'hora de Chile (Coyhaique)',
         'America/Creston' => 'hora del montanias (Creston)',
-        'America/Cuiaba' => 'hora de Amazonia (Cuiaba)',
+        'America/Cuiaba' => 'hora de Amazonia (Cuiabá)',
         'America/Curacao' => 'hora atlantic (Curaçao)',
         'America/Danmarkshavn' => 'hora medie de Greenwich (Danmarkshavn)',
         'America/Dawson' => 'hora de Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'hora del est (Detroit)',
         'America/Dominica' => 'hora atlantic (Dominica)',
         'America/Edmonton' => 'hora del montanias (Edmonton)',
-        'America/Eirunepe' => 'hora de Brasil (Eirunepe)',
+        'America/Eirunepe' => 'hora de Acre (Eirunepé)',
         'America/El_Salvador' => 'hora central (El Salvador)',
         'America/Fort_Nelson' => 'hora del montanias (Fort Nelson)',
         'America/Fortaleza' => 'hora de Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'hora atlantic (Glace Bay)',
         'America/Godthab' => 'hora de Groenlandia (Nuuk)',
+        'America/Nuuk' => 'hora de Groenlandia (Nuuk)',
         'America/Goose_Bay' => 'hora atlantic (Goose Bay)',
         'America/Grand_Turk' => 'hora del est (Grand Turk)',
         'America/Grenada' => 'hora atlantic (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'hora del est (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'hora del est (Winamac, Indiana)',
         'America/Indianapolis' => 'hora del est (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'hora del est (Indianapolis)',
         'America/Inuvik' => 'hora del montanias (Inuvik)',
         'America/Iqaluit' => 'hora del est (Iqaluit)',
         'America/Jamaica' => 'hora del est (Jamaica)',
         'America/Jujuy' => 'hora de Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'hora de Argentina (Jujuy)',
         'America/Juneau' => 'hora de Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'hora del est (Monticello, Kentucky)',
         'America/Kralendijk' => 'hora atlantic (Kralendijk)',
@@ -136,15 +145,17 @@
         'America/Lima' => 'hora de Peru (Lima)',
         'America/Los_Angeles' => 'hora pacific (Los Angeles)',
         'America/Louisville' => 'hora del est (Louisville)',
+        'America/Kentucky/Louisville' => 'hora del est (Louisville)',
         'America/Lower_Princes' => 'hora atlantic (Lower Prince’s Quarter)',
-        'America/Maceio' => 'hora de Brasilia (Maceio)',
+        'America/Maceio' => 'hora de Brasilia (Maceió)',
         'America/Managua' => 'hora central (Managua)',
         'America/Manaus' => 'hora de Amazonia (Manaus)',
         'America/Marigot' => 'hora atlantic (Marigot)',
         'America/Martinique' => 'hora atlantic (Martinica)',
         'America/Matamoros' => 'hora central (Matamoros)',
-        'America/Mazatlan' => 'hora del Pacifico mexican (Mazatlan)',
+        'America/Mazatlan' => 'hora del Pacifico mexican (Mazatlán)',
         'America/Mendoza' => 'hora de Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'hora de Argentina (Mendoza)',
         'America/Menominee' => 'hora central (Menominee)',
         'America/Merida' => 'hora central (Merida)',
         'America/Metlakatla' => 'hora de Alaska (Metlakatla)',
@@ -174,11 +185,11 @@
         'America/Recife' => 'hora de Brasilia (Recife)',
         'America/Regina' => 'hora central (Regina)',
         'America/Resolute' => 'hora central (Resolute)',
-        'America/Rio_Branco' => 'hora de Brasil (Rio Branco)',
-        'America/Santarem' => 'hora de Brasilia (Santarem)',
+        'America/Rio_Branco' => 'hora de Acre (Rio Branco)',
+        'America/Santarem' => 'hora de Brasilia (Santarém)',
         'America/Santiago' => 'hora de Chile (Santiago)',
         'America/Santo_Domingo' => 'hora atlantic (Santo Domingo)',
-        'America/Sao_Paulo' => 'hora de Brasilia (Sao Paulo)',
+        'America/Sao_Paulo' => 'hora de Brasilia (São Paulo)',
         'America/Scoresbysund' => 'hora de Groenlandia (Ittoqqortoormiit)',
         'America/Sitka' => 'hora de Alaska (Sitka)',
         'America/St_Barthelemy' => 'hora atlantic (Sancte Bartholomeo)',
@@ -199,13 +210,13 @@
         'America/Yakutat' => 'hora de Alaska (Yakutat)',
         'Antarctica/Casey' => 'hora de Australia occidental (Casey)',
         'Antarctica/Davis' => 'hora de Davis',
-        'Antarctica/DumontDUrville' => 'hora de Dumont-d’Urville',
+        'Antarctica/DumontDUrville' => 'hora de Dumont d’Urville',
         'Antarctica/Macquarie' => 'hora de Australia oriental (Macquarie)',
         'Antarctica/Mawson' => 'hora de Mawson',
         'Antarctica/McMurdo' => 'hora de Nove Zelanda (McMurdo)',
         'Antarctica/Palmer' => 'hora de Chile (Palmer)',
         'Antarctica/Rothera' => 'hora de Rothera',
-        'Antarctica/Syowa' => 'hora de Syowa',
+        'Antarctica/Syowa' => 'hora de Syowa (Showa)',
         'Antarctica/Troll' => 'hora medie de Greenwich (Troll)',
         'Antarctica/Vostok' => 'hora de Vostok',
         'Arctic/Longyearbyen' => 'hora de Europa central (Longyearbyen)',
@@ -221,23 +232,24 @@
         'Asia/Bahrain' => 'hora arabe (Bahrein)',
         'Asia/Baku' => 'hora de Azerbeidzhan (Baku)',
         'Asia/Bangkok' => 'hora de Indochina (Bangkok)',
-        'Asia/Barnaul' => 'hora de Russia (Barnaul)',
+        'Asia/Barnaul' => 'hora de Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'hora de Europa oriental (Beirut)',
         'Asia/Bishkek' => 'hora de Kirghizistan (Bishkek)',
-        'Asia/Brunei' => 'hora de Brunei Darussalam',
-        'Asia/Calcutta' => 'hora standard de India (Calcutta)',
+        'Asia/Brunei' => 'hora de Brunei',
+        'Asia/Calcutta' => 'hora normal de India (Calcutta)',
+        'Asia/Kolkata' => 'hora normal de India (Calcutta)',
         'Asia/Chita' => 'hora de Yakutsk (Chita)',
-        'Asia/Colombo' => 'hora standard de India (Colombo)',
+        'Asia/Colombo' => 'hora normal de India (Colombo)',
         'Asia/Damascus' => 'hora de Europa oriental (Damasco)',
         'Asia/Dhaka' => 'hora de Bangladesh (Dhaka)',
-        'Asia/Dili' => 'hora de Timor del Est (Dili)',
-        'Asia/Dubai' => 'hora standard del Golfo (Dubai)',
+        'Asia/Dili' => 'hora de Timor Oriental (Dili)',
+        'Asia/Dubai' => 'hora normal del Golfo (Dubai)',
         'Asia/Dushanbe' => 'hora de Tajikistan (Dushanbe)',
         'Asia/Famagusta' => 'hora de Europa oriental (Famagusta)',
         'Asia/Gaza' => 'hora de Europa oriental (Gaza)',
         'Asia/Hebron' => 'hora de Europa oriental (Hebron)',
         'Asia/Hong_Kong' => 'hora de Hongkong',
-        'Asia/Hovd' => 'hora de Hovd',
+        'Asia/Hovd' => 'hora de Khovd',
         'Asia/Irkutsk' => 'hora de Irkutsk',
         'Asia/Jakarta' => 'hora de Indonesia del West (Jakarta)',
         'Asia/Jayapura' => 'hora de Indonesia del Est (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'hora de Russia (Kamchatka)',
         'Asia/Karachi' => 'hora de Pakistan (Karachi)',
         'Asia/Katmandu' => 'hora de Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'hora de Nepal (Kathmandu)',
         'Asia/Khandyga' => 'hora de Yakutsk (Chandyga)',
         'Asia/Krasnoyarsk' => 'hora de Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'hora de Malaysia (Kuala Lumpur)',
@@ -255,10 +268,10 @@
         'Asia/Magadan' => 'hora de Magadan',
         'Asia/Makassar' => 'hora de Indonesia Central (Makassar)',
         'Asia/Manila' => 'hora del Philippinas (Manila)',
-        'Asia/Muscat' => 'hora standard del Golfo (Muscat)',
+        'Asia/Muscat' => 'hora normal del Golfo (Muscat)',
         'Asia/Nicosia' => 'hora de Europa oriental (Nicosia)',
         'Asia/Novokuznetsk' => 'hora de Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'hora de Novosibirsk',
+        'Asia/Novosibirsk' => 'hora de Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'hora de Omsk',
         'Asia/Oral' => 'hora de Kazakhstan (Oral)',
         'Asia/Phnom_Penh' => 'hora de Indochina (Phnom Penh)',
@@ -268,23 +281,25 @@
         'Asia/Qostanay' => 'hora de Kazakhstan (Qostanay)',
         'Asia/Qyzylorda' => 'hora de Kazakhstan (Qyzylorda)',
         'Asia/Rangoon' => 'hora de Myanmar (Yangon)',
+        'Asia/Yangon' => 'hora de Myanmar (Yangon)',
         'Asia/Riyadh' => 'hora arabe (Riyadh)',
         'Asia/Saigon' => 'hora de Indochina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'hora de Sachalin',
+        'Asia/Ho_Chi_Minh' => 'hora de Indochina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'hora de Magadan (Sachalin)',
         'Asia/Samarkand' => 'hora de Uzbekistan (Samarkand)',
         'Asia/Seoul' => 'hora de Corea (Seoul)',
         'Asia/Shanghai' => 'hora de China (Shanghai)',
-        'Asia/Singapore' => 'hora standard de Singapore',
+        'Asia/Singapore' => 'hora normal de Singapore',
         'Asia/Srednekolymsk' => 'hora de Magadan (Srednekolymsk)',
-        'Asia/Taipei' => 'hora de Taipei',
+        'Asia/Taipei' => 'hora de Taiwan (Taipei)',
         'Asia/Tashkent' => 'hora de Uzbekistan (Tashkent)',
         'Asia/Tbilisi' => 'hora de Georgia (Tbilisi)',
         'Asia/Tehran' => 'hora de Iran (Tehran)',
         'Asia/Thimphu' => 'hora de Bhutan (Thimphu)',
         'Asia/Tokyo' => 'hora de Japon (Tokyo)',
-        'Asia/Tomsk' => 'hora de Russia (Tomsk)',
+        'Asia/Tomsk' => 'hora de Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'hora de Ulan Bator',
-        'Asia/Urumqi' => 'hora de China (Urumqi)',
+        'Asia/Urumqi' => 'hora de China (Ürümqi)',
         'Asia/Ust-Nera' => 'hora de Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'hora de Indochina (Vientiane)',
         'Asia/Vladivostok' => 'hora de Vladivostok',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'hora de Europa occidental (Canarias)',
         'Atlantic/Cape_Verde' => 'hora de Capo Verde',
         'Atlantic/Faeroe' => 'hora de Europa occidental (Feroe)',
+        'Atlantic/Faroe' => 'hora de Europa occidental (Feroe)',
         'Atlantic/Madeira' => 'hora de Europa occidental (Madeira)',
         'Atlantic/Reykjavik' => 'hora medie de Greenwich (Reykjavik)',
         'Atlantic/South_Georgia' => 'hora de Georgia del Sud (South Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Universal Tempore Coordinate',
         'Europe/Amsterdam' => 'hora de Europa central (Amsterdam)',
         'Europe/Andorra' => 'hora de Europa central (Andorra)',
-        'Europe/Astrakhan' => 'hora de Moscova (Astrakhan)',
+        'Europe/Astrakhan' => 'hora de Russia (Astrakhan)',
         'Europe/Athens' => 'hora de Europa oriental (Athenas)',
         'Europe/Belgrade' => 'hora de Europa central (Belgrado)',
         'Europe/Berlin' => 'hora de Europa central (Berlin)',
@@ -325,7 +341,7 @@
         'Europe/Bucharest' => 'hora de Europa oriental (Bucarest)',
         'Europe/Budapest' => 'hora de Europa central (Budapest)',
         'Europe/Busingen' => 'hora de Europa central (Büsingen)',
-        'Europe/Chisinau' => 'hora de Europa oriental (Chisinau)',
+        'Europe/Chisinau' => 'hora de Europa oriental (Chișinău)',
         'Europe/Copenhagen' => 'hora de Europa central (Copenhagen)',
         'Europe/Dublin' => 'hora medie de Greenwich (Dublin)',
         'Europe/Gibraltar' => 'hora de Europa central (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'hora medie de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'hora de Europa oriental (Kaliningrad)',
         'Europe/Kiev' => 'hora de Europa oriental (Kiev)',
-        'Europe/Kirov' => 'hora de Russia (Kirov)',
+        'Europe/Kyiv' => 'hora de Europa oriental (Kiev)',
+        'Europe/Kirov' => 'hora de Moscova (Kirov)',
         'Europe/Lisbon' => 'hora de Europa occidental (Lisbona)',
         'Europe/Ljubljana' => 'hora de Europa central (Ljubljana)',
         'Europe/London' => 'hora medie de Greenwich (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'hora de Russia (Samara)',
         'Europe/San_Marino' => 'hora de Europa central (San Marino)',
         'Europe/Sarajevo' => 'hora de Europa central (Sarajevo)',
-        'Europe/Saratov' => 'hora de Moscova (Saratov)',
+        'Europe/Saratov' => 'hora de Russia (Saratov)',
         'Europe/Simferopol' => 'hora de Moscova (Simferopol)',
         'Europe/Skopje' => 'hora de Europa central (Skopje)',
         'Europe/Sofia' => 'hora de Europa oriental (Sofia)',
         'Europe/Stockholm' => 'hora de Europa central (Stockholm)',
         'Europe/Tallinn' => 'hora de Europa oriental (Tallinn)',
         'Europe/Tirane' => 'hora de Europa central (Tirana)',
-        'Europe/Ulyanovsk' => 'hora de Moscova (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'hora de Russia (Ulyanovsk)',
         'Europe/Vaduz' => 'hora de Europa central (Vaduz)',
         'Europe/Vatican' => 'hora de Europa central (Vaticano)',
         'Europe/Vienna' => 'hora de Europa central (Vienna)',
         'Europe/Vilnius' => 'hora de Europa oriental (Vilnius)',
-        'Europe/Volgograd' => 'hora de Volgograd',
+        'Europe/Volgograd' => 'hora de Moscova (Volgograd)',
         'Europe/Warsaw' => 'hora de Europa central (Varsovia)',
         'Europe/Zagreb' => 'hora de Europa central (Zagreb)',
         'Europe/Zurich' => 'hora de Europa central (Zurich)',
@@ -376,51 +393,54 @@
         'Indian/Chagos' => 'hora del Oceano Indian (Chagos)',
         'Indian/Christmas' => 'hora del Insula de Natal',
         'Indian/Cocos' => 'hora del Insulas Cocos',
-        'Indian/Comoro' => 'hora de Africa del Est (Comoro)',
+        'Indian/Comoro' => 'hora de Africa del Est (Comores)',
         'Indian/Kerguelen' => 'hora francese meridional e antarctic (Kerguelen)',
-        'Indian/Mahe' => 'hora del Seychelles (Mahe)',
+        'Indian/Mahe' => 'hora del Seychelles (Mahé)',
         'Indian/Maldives' => 'hora del Maldivas',
         'Indian/Mauritius' => 'hora de Mauritio',
         'Indian/Mayotte' => 'hora de Africa del Est (Mayotta)',
         'Indian/Reunion' => 'hora de Réunion',
-        'Pacific/Apia' => 'hora de Apia',
+        'Pacific/Apia' => 'hora de Samoa (Apia)',
         'Pacific/Auckland' => 'hora de Nove Zelanda (Auckland)',
         'Pacific/Bougainville' => 'hora de Papua Nove Guinea (Bougainville)',
         'Pacific/Chatham' => 'hora de Chatham',
         'Pacific/Easter' => 'hora del Insula de Pascha',
         'Pacific/Efate' => 'hora de Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'hora del Insulas Phenice (Enderbury)',
+        'Pacific/Enderbury' => 'hora del Insulas Phenice (Canton)',
+        'Pacific/Kanton' => 'hora del Insulas Phenice (Canton)',
         'Pacific/Fakaofo' => 'hora de Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'hora de Fiji',
         'Pacific/Funafuti' => 'hora de Tuvalu (Funafuti)',
         'Pacific/Galapagos' => 'hora del Galápagos',
         'Pacific/Gambier' => 'hora de Gambier',
         'Pacific/Guadalcanal' => 'hora del Insulas Solomon (Guadalcanal)',
-        'Pacific/Guam' => 'hora standard de Chamorro (Guam)',
-        'Pacific/Honolulu' => 'hora de Hawaii-Aleutianas (Honolulu)',
+        'Pacific/Guam' => 'hora normal de Chamorro (Guam)',
+        'Pacific/Honolulu' => 'hora normal de Hawaii-Aleutianas (Honolulu)',
         'Pacific/Kiritimati' => 'hora del Insulas del Linea (Kiritimati)',
         'Pacific/Kosrae' => 'hora de Kosrae',
         'Pacific/Kwajalein' => 'hora del Insulas Marshall (Kwajalein)',
         'Pacific/Majuro' => 'hora del Insulas Marshall (Majuro)',
         'Pacific/Marquesas' => 'hora de Marquesas',
-        'Pacific/Midway' => 'hora de Samoa (Midway)',
+        'Pacific/Midway' => 'hora de Samoa american (Midway)',
         'Pacific/Nauru' => 'hora de Nauru',
         'Pacific/Niue' => 'hora de Niue',
         'Pacific/Norfolk' => 'hora del Insula Norfolk',
-        'Pacific/Noumea' => 'hora de Nove Caledonia (Noumea)',
-        'Pacific/Pago_Pago' => 'hora de Samoa (Pago Pago)',
+        'Pacific/Noumea' => 'hora de Nove Caledonia (Nouméa)',
+        'Pacific/Pago_Pago' => 'hora de Samoa american (Pago Pago)',
         'Pacific/Palau' => 'hora de Palau',
         'Pacific/Pitcairn' => 'hora de Pitcairn',
-        'Pacific/Ponape' => 'hora de Ponape (Pohnpei)',
+        'Pacific/Ponape' => 'hora de Pohnpei',
+        'Pacific/Pohnpei' => 'hora de Pohnpei',
         'Pacific/Port_Moresby' => 'hora de Papua Nove Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'hora del Insulas Cook (Rarotonga)',
-        'Pacific/Saipan' => 'hora standard de Chamorro (Saipan)',
+        'Pacific/Saipan' => 'hora normal de Chamorro (Saipan)',
         'Pacific/Tahiti' => 'hora de Tahiti',
         'Pacific/Tarawa' => 'hora del Insulas Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'hora de Tonga (Tongatapu)',
         'Pacific/Truk' => 'hora de Chuuk',
+        'Pacific/Chuuk' => 'hora de Chuuk',
         'Pacific/Wake' => 'hora del Insula Wake',
-        'Pacific/Wallis' => 'hora de Wallis e Futuna',
+        'Pacific/Wallis' => 'hora de Wallis e Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/id.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/id.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/id.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/id.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Waktu Afrika Timur (Addis Ababa)',
         'Africa/Algiers' => 'Waktu Eropa Tengah (Aljir)',
         'Africa/Asmera' => 'Waktu Afrika Timur (Asmara)',
+        'Africa/Asmara' => 'Waktu Afrika Timur (Asmara)',
         'Africa/Bamako' => 'Greenwich Mean Time (Bamako)',
         'Africa/Bangui' => 'Waktu Afrika Barat (Bangui)',
         'Africa/Banjul' => 'Greenwich Mean Time (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Waktu Afrika Timur (Dar es Salaam)',
         'Africa/Djibouti' => 'Waktu Afrika Timur (Djibouti)',
         'Africa/Douala' => 'Waktu Afrika Barat (Douala)',
-        'Africa/El_Aaiun' => 'Waktu Eropa Barat (El Aaiun)',
+        'Africa/El_Aaiun' => 'Waktu Eropa Barat (El Aaiún)',
         'Africa/Freetown' => 'Greenwich Mean Time (Freetown)',
         'Africa/Gaborone' => 'Waktu Afrika Tengah (Gaborone)',
         'Africa/Harare' => 'Waktu Afrika Tengah (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Waktu Afrika Barat (Kinshasa)',
         'Africa/Lagos' => 'Waktu Afrika Barat (Lagos)',
         'Africa/Libreville' => 'Waktu Afrika Barat (Libreville)',
-        'Africa/Lome' => 'Greenwich Mean Time (Lome)',
+        'Africa/Lome' => 'Greenwich Mean Time (Lomé)',
         'Africa/Luanda' => 'Waktu Afrika Barat (Luanda)',
         'Africa/Lubumbashi' => 'Waktu Afrika Tengah (Lubumbashi)',
         'Africa/Lusaka' => 'Waktu Afrika Tengah (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Waktu Afrika Timur (Mogadishu)',
         'Africa/Monrovia' => 'Greenwich Mean Time (Monrovia)',
         'Africa/Nairobi' => 'Waktu Afrika Timur (Nairobi)',
-        'Africa/Ndjamena' => 'Waktu Afrika Barat (Ndjamena)',
+        'Africa/Ndjamena' => 'Waktu Afrika Barat (N’Djamena)',
         'Africa/Niamey' => 'Waktu Afrika Barat (Niamey)',
         'Africa/Nouakchott' => 'Greenwich Mean Time (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich Mean Time (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Waktu Alaska (Anchorage)',
         'America/Anguilla' => 'Waktu Atlantik (Anguila)',
         'America/Antigua' => 'Waktu Atlantik (Antigua)',
-        'America/Araguaina' => 'Waktu Brasil (Araguaina)',
+        'America/Araguaina' => 'Waktu Brasil (Araguaína)',
         'America/Argentina/La_Rioja' => 'Waktu Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Waktu Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Waktu Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Waktu Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Waktu Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Waktu Argentina (San Luis)',
-        'America/Argentina/Tucuman' => 'Waktu Argentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Waktu Argentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Waktu Argentina (Ushuaia)',
         'America/Aruba' => 'Waktu Atlantik (Aruba)',
         'America/Asuncion' => 'Waktu Paraguay (Asunción)',
         'America/Bahia' => 'Waktu Brasil (Bahia)',
         'America/Bahia_Banderas' => 'Waktu Tengah (Bahia Banderas)',
         'America/Barbados' => 'Waktu Atlantik (Barbados)',
-        'America/Belem' => 'Waktu Brasil (Belem)',
+        'America/Belem' => 'Waktu Brasil (Belém)',
         'America/Belize' => 'Waktu Tengah (Belize)',
         'America/Blanc-Sablon' => 'Waktu Atlantik (Blanc-Sablon)',
         'America/Boa_Vista' => 'Waktu Amazon (Boa Vista)',
-        'America/Bogota' => 'Waktu Kolombia (Bogota)',
+        'America/Bogota' => 'Waktu Kolombia (Bogotá)',
         'America/Boise' => 'Waktu Pegunungan (Boise)',
         'America/Buenos_Aires' => 'Waktu Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Waktu Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Waktu Pegunungan (Cambridge Bay)',
         'America/Campo_Grande' => 'Waktu Amazon (Campo Grande)',
         'America/Cancun' => 'Waktu Timur (Cancun)',
         'America/Caracas' => 'Waktu Venezuela (Caracas)',
         'America/Catamarca' => 'Waktu Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Waktu Argentina (Catamarca)',
         'America/Cayenne' => 'Waktu Guyana Prancis (Cayenne)',
         'America/Cayman' => 'Waktu Timur (Cayman)',
         'America/Chicago' => 'Waktu Tengah (Chicago)',
         'America/Chihuahua' => 'Waktu Tengah (Chihuahua)',
         'America/Ciudad_Juarez' => 'Waktu Pegunungan (Ciudad Juarez)',
         'America/Coral_Harbour' => 'Waktu Timur (Atikokan)',
-        'America/Cordoba' => 'Waktu Argentina (Cordoba)',
+        'America/Atikokan' => 'Waktu Timur (Atikokan)',
+        'America/Cordoba' => 'Waktu Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Waktu Argentina (Córdoba)',
         'America/Costa_Rica' => 'Waktu Tengah (Kosta Rika)',
+        'America/Coyhaique' => 'Waktu Cile (Coyhaique)',
         'America/Creston' => 'Waktu Pegunungan (Creston)',
-        'America/Cuiaba' => 'Waktu Amazon (Cuiaba)',
+        'America/Cuiaba' => 'Waktu Amazon (Cuiabá)',
         'America/Curacao' => 'Waktu Atlantik (Curaçao)',
         'America/Danmarkshavn' => 'Greenwich Mean Time (Danmarkshavn)',
         'America/Dawson' => 'Waktu Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Waktu Timur (Detroit)',
         'America/Dominica' => 'Waktu Atlantik (Dominika)',
         'America/Edmonton' => 'Waktu Pegunungan (Edmonton)',
-        'America/Eirunepe' => 'Waktu Acre (Eirunepe)',
+        'America/Eirunepe' => 'Waktu Acre (Eirunepé)',
         'America/El_Salvador' => 'Waktu Tengah (El Salvador)',
         'America/Fort_Nelson' => 'Waktu Pegunungan (Fort Nelson)',
         'America/Fortaleza' => 'Waktu Brasil (Fortaleza)',
         'America/Glace_Bay' => 'Waktu Atlantik (Glace Bay)',
         'America/Godthab' => 'Waktu Greenland (Nuuk)',
+        'America/Nuuk' => 'Waktu Greenland (Nuuk)',
         'America/Goose_Bay' => 'Waktu Atlantik (Goose Bay)',
         'America/Grand_Turk' => 'Waktu Timur (Grand Turk)',
         'America/Grenada' => 'Waktu Atlantik (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Waktu Timur (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Waktu Timur (Winamac, Indiana)',
         'America/Indianapolis' => 'Waktu Timur (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Waktu Timur (Indianapolis)',
         'America/Inuvik' => 'Waktu Pegunungan (Inuvik)',
         'America/Iqaluit' => 'Waktu Timur (Iqaluit)',
         'America/Jamaica' => 'Waktu Timur (Jamaica)',
         'America/Jujuy' => 'Waktu Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Waktu Argentina (Jujuy)',
         'America/Juneau' => 'Waktu Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Waktu Timur (Monticello, Kentucky)',
         'America/Kralendijk' => 'Waktu Atlantik (Kralendijk)',
@@ -136,19 +145,21 @@
         'America/Lima' => 'Waktu Peru (Lima)',
         'America/Los_Angeles' => 'Waktu Pasifik (Los Angeles)',
         'America/Louisville' => 'Waktu Timur (Louisville)',
+        'America/Kentucky/Louisville' => 'Waktu Timur (Louisville)',
         'America/Lower_Princes' => 'Waktu Atlantik (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Waktu Brasil (Maceio)',
+        'America/Maceio' => 'Waktu Brasil (Maceió)',
         'America/Managua' => 'Waktu Tengah (Managua)',
         'America/Manaus' => 'Waktu Amazon (Manaus)',
         'America/Marigot' => 'Waktu Atlantik (Marigot)',
         'America/Martinique' => 'Waktu Atlantik (Martinik)',
         'America/Matamoros' => 'Waktu Tengah (Matamoros)',
-        'America/Mazatlan' => 'Waktu Pasifik Meksiko (Mazatlan)',
+        'America/Mazatlan' => 'Waktu Pasifik Meksiko (Mazatlán)',
         'America/Mendoza' => 'Waktu Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Waktu Argentina (Mendoza)',
         'America/Menominee' => 'Waktu Tengah (Menominee)',
         'America/Merida' => 'Waktu Tengah (Merida)',
         'America/Metlakatla' => 'Waktu Alaska (Metlakatla)',
-        'America/Mexico_City' => 'Waktu Tengah (Mexico City)',
+        'America/Mexico_City' => 'Waktu Tengah (Ciudad de México)',
         'America/Miquelon' => 'Waktu Saint Pierre dan Miquelon',
         'America/Moncton' => 'Waktu Atlantik (Moncton)',
         'America/Monterrey' => 'Waktu Tengah (Monterrey)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Waktu Tengah (Regina)',
         'America/Resolute' => 'Waktu Tengah (Resolute)',
         'America/Rio_Branco' => 'Waktu Acre (Rio Branco)',
-        'America/Santarem' => 'Waktu Brasil (Santarem)',
+        'America/Santarem' => 'Waktu Brasil (Santarém)',
         'America/Santiago' => 'Waktu Cile (Santiago)',
         'America/Santo_Domingo' => 'Waktu Atlantik (Santo Domingo)',
-        'America/Sao_Paulo' => 'Waktu Brasil (Sao Paulo)',
+        'America/Sao_Paulo' => 'Waktu Brasil (São Paulo)',
         'America/Scoresbysund' => 'Waktu Greenland (Ittoqqortoormiit)',
         'America/Sitka' => 'Waktu Alaska (Sitka)',
         'America/St_Barthelemy' => 'Waktu Atlantik (St. Barthélemy)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Waktu Selandia Baru (McMurdo)',
         'Antarctica/Palmer' => 'Waktu Cile (Palmer)',
         'Antarctica/Rothera' => 'Waktu Rothera',
-        'Antarctica/Syowa' => 'Waktu Syowa',
+        'Antarctica/Syowa' => 'Waktu Syowa (Showa)',
         'Antarctica/Troll' => 'Greenwich Mean Time (Troll)',
         'Antarctica/Vostok' => 'Waktu Vostok',
         'Arctic/Longyearbyen' => 'Waktu Eropa Tengah (Longyearbyen)',
         'Asia/Aden' => 'Waktu Arab (Aden)',
         'Asia/Almaty' => 'Waktu Kazakhstan (Almaty)',
         'Asia/Amman' => 'Waktu Eropa Timur (Amman)',
-        'Asia/Anadyr' => 'Waktu Anadyr',
+        'Asia/Anadyr' => 'Waktu Petropavlovsk-Kamchatsky (Anadyr)',
         'Asia/Aqtau' => 'Waktu Kazakhstan (Aktau)',
         'Asia/Aqtobe' => 'Waktu Kazakhstan (Aktobe)',
         'Asia/Ashgabat' => 'Waktu Turkmenistan (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Waktu Arab (Bahrain)',
         'Asia/Baku' => 'Waktu Azerbaijan (Baku)',
         'Asia/Bangkok' => 'Waktu Indochina (Bangkok)',
-        'Asia/Barnaul' => 'Waktu Rusia (Barnaul)',
+        'Asia/Barnaul' => 'Waktu Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Waktu Eropa Timur (Beirut)',
         'Asia/Bishkek' => 'Waktu Kirgizstan (Bishkek)',
         'Asia/Brunei' => 'Waktu Brunei Darussalam',
         'Asia/Calcutta' => 'Waktu India (Kolkata)',
+        'Asia/Kolkata' => 'Waktu India (Kolkata)',
         'Asia/Chita' => 'Waktu Yakutsk (Chita)',
         'Asia/Colombo' => 'Waktu India (Kolombo)',
         'Asia/Damascus' => 'Waktu Eropa Timur (Damaskus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Waktu Eropa Timur (Gaza)',
         'Asia/Hebron' => 'Waktu Eropa Timur (Hebron)',
         'Asia/Hong_Kong' => 'Waktu Hong Kong',
-        'Asia/Hovd' => 'Waktu Hovd',
+        'Asia/Hovd' => 'Waktu Hovd (Khovd)',
         'Asia/Irkutsk' => 'Waktu Irkutsk',
         'Asia/Jakarta' => 'Waktu Indonesia Barat (Jakarta)',
         'Asia/Jayapura' => 'Waktu Indonesia Timur (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Waktu Petropavlovsk-Kamchatsky (Kamchatka)',
         'Asia/Karachi' => 'Waktu Pakistan (Karachi)',
         'Asia/Katmandu' => 'Waktu Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Waktu Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Waktu Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Waktu Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Waktu Malaysia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Waktu Standar Teluk (Muskat)',
         'Asia/Nicosia' => 'Waktu Eropa Timur (Nikosia)',
         'Asia/Novokuznetsk' => 'Waktu Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Waktu Novosibirsk',
+        'Asia/Novosibirsk' => 'Waktu Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Waktu Omsk',
         'Asia/Oral' => 'Waktu Kazakhstan (Oral)',
         'Asia/Phnom_Penh' => 'Waktu Indochina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Waktu Kazakhstan (Kostanay)',
         'Asia/Qyzylorda' => 'Waktu Kazakhstan (Qyzylorda)',
         'Asia/Rangoon' => 'Waktu Myanmar (Rangoon)',
+        'Asia/Yangon' => 'Waktu Myanmar (Rangoon)',
         'Asia/Riyadh' => 'Waktu Arab (Riyadh)',
         'Asia/Saigon' => 'Waktu Indochina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Waktu Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Waktu Indochina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Waktu Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Waktu Uzbekistan (Samarkand)',
         'Asia/Seoul' => 'Waktu Korea (Seoul)',
         'Asia/Shanghai' => 'Waktu Tiongkok (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Waktu Iran (Teheran)',
         'Asia/Thimphu' => 'Waktu Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Waktu Jepang (Tokyo)',
-        'Asia/Tomsk' => 'Waktu Rusia (Tomsk)',
+        'Asia/Tomsk' => 'Waktu Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Waktu Ulan Bator (Ulaanbaatar)',
-        'Asia/Urumqi' => 'Waktu Tiongkok (Urumqi)',
+        'Asia/Urumqi' => 'Waktu Tiongkok (Ürümqi)',
         'Asia/Ust-Nera' => 'Waktu Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Waktu Indochina (Vientiane)',
         'Asia/Vladivostok' => 'Waktu Vladivostok',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Waktu Armenia (Yerevan)',
         'Atlantic/Azores' => 'Waktu Azores',
         'Atlantic/Bermuda' => 'Waktu Atlantik (Bermuda)',
-        'Atlantic/Canary' => 'Waktu Eropa Barat (Canary)',
+        'Atlantic/Canary' => 'Waktu Eropa Barat (Canarias)',
         'Atlantic/Cape_Verde' => 'Waktu Tanjung Verde',
         'Atlantic/Faeroe' => 'Waktu Eropa Barat (Faroe)',
+        'Atlantic/Faroe' => 'Waktu Eropa Barat (Faroe)',
         'Atlantic/Madeira' => 'Waktu Eropa Barat (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich Mean Time (Reykjavik)',
         'Atlantic/South_Georgia' => 'Waktu Georgia Selatan',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Waktu Universal Terkoordinasi',
         'Europe/Amsterdam' => 'Waktu Eropa Tengah (Amsterdam)',
         'Europe/Andorra' => 'Waktu Eropa Tengah (Andorra)',
-        'Europe/Astrakhan' => 'Waktu Moskow (Astrakhan)',
+        'Europe/Astrakhan' => 'Waktu Samara (Astrakhan)',
         'Europe/Athens' => 'Waktu Eropa Timur (Athena)',
         'Europe/Belgrade' => 'Waktu Eropa Tengah (Beograd)',
         'Europe/Berlin' => 'Waktu Eropa Tengah (Berlin)',
@@ -324,7 +340,7 @@
         'Europe/Brussels' => 'Waktu Eropa Tengah (Brussels)',
         'Europe/Bucharest' => 'Waktu Eropa Timur (Bucharest)',
         'Europe/Budapest' => 'Waktu Eropa Tengah (Budapest)',
-        'Europe/Busingen' => 'Waktu Eropa Tengah (Busingen)',
+        'Europe/Busingen' => 'Waktu Eropa Tengah (Büsingen)',
         'Europe/Chisinau' => 'Waktu Eropa Timur (Kishinev)',
         'Europe/Copenhagen' => 'Waktu Eropa Tengah (Kopenhagen)',
         'Europe/Dublin' => 'Greenwich Mean Time (Dublin)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwich Mean Time (Jersey)',
         'Europe/Kaliningrad' => 'Waktu Eropa Timur (Kaliningrad)',
         'Europe/Kiev' => 'Waktu Eropa Timur (Kiev)',
-        'Europe/Kirov' => 'Waktu Rusia (Kirov)',
+        'Europe/Kyiv' => 'Waktu Eropa Timur (Kiev)',
+        'Europe/Kirov' => 'Waktu Moskow (Kirov)',
         'Europe/Lisbon' => 'Waktu Eropa Barat (Lisbon)',
         'Europe/Ljubljana' => 'Waktu Eropa Tengah (Ljubljana)',
         'Europe/London' => 'Greenwich Mean Time (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Waktu Samara',
         'Europe/San_Marino' => 'Waktu Eropa Tengah (San Marino)',
         'Europe/Sarajevo' => 'Waktu Eropa Tengah (Sarajevo)',
-        'Europe/Saratov' => 'Waktu Moskow (Saratov)',
+        'Europe/Saratov' => 'Waktu Samara (Saratov)',
         'Europe/Simferopol' => 'Waktu Moskow (Simferopol)',
         'Europe/Skopje' => 'Waktu Eropa Tengah (Skopje)',
         'Europe/Sofia' => 'Waktu Eropa Timur (Sofia)',
         'Europe/Stockholm' => 'Waktu Eropa Tengah (Stockholm)',
         'Europe/Tallinn' => 'Waktu Eropa Timur (Tallinn)',
-        'Europe/Tirane' => 'Waktu Eropa Tengah (Tirane)',
-        'Europe/Ulyanovsk' => 'Waktu Moskow (Ulyanovsk)',
+        'Europe/Tirane' => 'Waktu Eropa Tengah (Tirana)',
+        'Europe/Ulyanovsk' => 'Waktu Samara (Ulyanovsk)',
         'Europe/Vaduz' => 'Waktu Eropa Tengah (Vaduz)',
         'Europe/Vatican' => 'Waktu Eropa Tengah (Vatikan)',
         'Europe/Vienna' => 'Waktu Eropa Tengah (Wina)',
         'Europe/Vilnius' => 'Waktu Eropa Timur (Vilnius)',
-        'Europe/Volgograd' => 'Waktu Volgograd',
+        'Europe/Volgograd' => 'Waktu Moskow (Volgograd)',
         'Europe/Warsaw' => 'Waktu Eropa Tengah (Warsawa)',
         'Europe/Zagreb' => 'Waktu Eropa Tengah (Zagreb)',
         'Europe/Zurich' => 'Waktu Eropa Tengah (Zurich)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Waktu Kepulauan Cocos',
         'Indian/Comoro' => 'Waktu Afrika Timur (Komoro)',
         'Indian/Kerguelen' => 'Waktu Wilayah Selatan dan Antarktika Prancis (Kerguelen)',
-        'Indian/Mahe' => 'Waktu Seychelles (Mahe)',
+        'Indian/Mahe' => 'Waktu Seychelles (Mahé)',
         'Indian/Maldives' => 'Waktu Maladewa',
         'Indian/Mauritius' => 'Waktu Mauritius',
         'Indian/Mayotte' => 'Waktu Afrika Timur (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Waktu Chatham',
         'Pacific/Easter' => 'Waktu Pulau Paskah (Easter)',
         'Pacific/Efate' => 'Waktu Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Waktu Kepulauan Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Waktu Kepulauan Phoenix (Pulau Canton)',
+        'Pacific/Kanton' => 'Waktu Kepulauan Phoenix (Pulau Canton)',
         'Pacific/Fakaofo' => 'Waktu Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Waktu Fiji',
         'Pacific/Funafuti' => 'Waktu Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Waktu Galapagos',
+        'Pacific/Galapagos' => 'Waktu Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Waktu Gambier',
         'Pacific/Guadalcanal' => 'Waktu Kepulauan Solomon (Guadalkanal)',
         'Pacific/Guam' => 'Waktu Standar Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Waktu Hawaii-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Waktu Standar Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Waktu Kep. Line (Kiritimati)',
         'Pacific/Kosrae' => 'Waktu Kosrae',
         'Pacific/Kwajalein' => 'Waktu Kep. Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Waktu Nauru',
         'Pacific/Niue' => 'Waktu Niue',
         'Pacific/Norfolk' => 'Waktu Pulau Norfolk',
-        'Pacific/Noumea' => 'Waktu Kaledonia Baru (Noumea)',
+        'Pacific/Noumea' => 'Waktu Kaledonia Baru (Nouméa)',
         'Pacific/Pago_Pago' => 'Waktu Samoa (Pago Pago)',
         'Pacific/Palau' => 'Waktu Palau',
         'Pacific/Pitcairn' => 'Waktu Pitcairn',
         'Pacific/Ponape' => 'Waktu Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Waktu Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Waktu Papua Nugini (Port Moresby)',
         'Pacific/Rarotonga' => 'Waktu Kep. Cook (Rarotonga)',
         'Pacific/Saipan' => 'Waktu Standar Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Waktu Kep. Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Waktu Tonga (Tongatapu)',
         'Pacific/Truk' => 'Waktu Chuuk',
-        'Pacific/Wake' => 'Waktu Kepulauan Wake',
-        'Pacific/Wallis' => 'Waktu Wallis dan Futuna',
+        'Pacific/Chuuk' => 'Waktu Chuuk',
+        'Pacific/Wake' => 'Waktu Kepulauan Wake (Pulau Wake)',
+        'Pacific/Wallis' => 'Waktu Wallis dan Futuna (Wallis & Futuna)',
     ],
     'Meta' => [
         'HourFormatPos' => '+%02d.%02d',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ie.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ie.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ie.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ie.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,6 +6,7 @@
         'Africa/Accra' => 'témpore medial de Greenwich (Accra)',
         'Africa/Addis_Ababa' => 'témpor de Etiopia (Addis Ababa)',
         'Africa/Asmera' => 'témpor de Eritrea (Asmara)',
+        'Africa/Asmara' => 'témpor de Eritrea (Asmara)',
         'Africa/Bamako' => 'témpore medial de Greenwich (Bamako)',
         'Africa/Banjul' => 'témpore medial de Greenwich (Banjul)',
         'Africa/Bissau' => 'témpore medial de Greenwich (Bissau)',
@@ -13,9 +14,9 @@
         'Africa/Conakry' => 'témpore medial de Greenwich (Conakry)',
         'Africa/Dakar' => 'témpore medial de Greenwich (Dakar)',
         'Africa/Freetown' => 'témpore medial de Greenwich (Freetown)',
-        'Africa/Lome' => 'témpore medial de Greenwich (Lome)',
+        'Africa/Lome' => 'témpore medial de Greenwich (Lomé)',
         'Africa/Monrovia' => 'témpore medial de Greenwich (Monrovia)',
-        'Africa/Ndjamena' => 'témpor de Tchad (Ndjamena)',
+        'Africa/Ndjamena' => 'témpor de Tchad (N’Djamena)',
         'Africa/Nouakchott' => 'témpore medial de Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'témpore medial de Greenwich (Ouagadougou)',
         'Africa/Sao_Tome' => 'témpore medial de Greenwich (São Tomé)',
@@ -34,12 +35,14 @@
         'Antarctica/McMurdo' => 'témpor de Antarctica (McMurdo)',
         'Antarctica/Palmer' => 'témpor de Antarctica (Palmer)',
         'Antarctica/Rothera' => 'témpor de Antarctica (Rothera)',
-        'Antarctica/Syowa' => 'témpor de Antarctica (Syowa)',
+        'Antarctica/Syowa' => 'témpor de Antarctica (Showa)',
         'Antarctica/Troll' => 'témpore medial de Greenwich (Troll)',
         'Antarctica/Vostok' => 'témpor de Antarctica (Vostok)',
+        'Arctic/Longyearbyen' => 'témpor de Svalbard e Jan Mayen (Longyearbyen)',
         'Asia/Anadyr' => 'témpor de Russia (Anadyr)',
         'Asia/Barnaul' => 'témpor de Russia (Barnaul)',
         'Asia/Calcutta' => 'témpor de India (Kolkata)',
+        'Asia/Kolkata' => 'témpor de India (Kolkata)',
         'Asia/Chita' => 'témpor de Russia (Chita)',
         'Asia/Colombo' => 'témpor de Sri-Lanka (Colombo)',
         'Asia/Dili' => 'témpor de Ost-Timor (Dili)',
@@ -67,11 +70,13 @@
         'Asia/Yakutsk' => 'témpor de Russia (Yakutsk)',
         'Asia/Yekaterinburg' => 'témpor de Russia (Yekaterinburg)',
         'Atlantic/Azores' => 'témpor de Portugal (Azores)',
-        'Atlantic/Canary' => 'témpor de Hispania (Canary)',
+        'Atlantic/Canary' => 'témpor de Hispania (Canarias)',
         'Atlantic/Madeira' => 'témpor de Portugal (Madeira)',
         'Atlantic/Reykjavik' => 'témpore medial de Greenwich (Reykjavik)',
         'Atlantic/St_Helena' => 'témpore medial de Greenwich (St. Helena)',
         'Etc/GMT' => 'témpore medial de Greenwich',
+        'Europe/Amsterdam' => 'témpor de Nederland (Amsterdam)',
+        'Europe/Andorra' => 'témpor de Andorra (Andorra)',
         'Europe/Astrakhan' => 'témpor de Russia (Astrakhan)',
         'Europe/Athens' => 'témpor de Grecia (Athens)',
         'Europe/Belgrade' => 'témpor de Serbia (Belgrade)',
@@ -80,15 +85,18 @@
         'Europe/Brussels' => 'témpor de Belgia (Brussels)',
         'Europe/Bucharest' => 'témpor de Rumania (Bucharest)',
         'Europe/Budapest' => 'témpor de Hungaria (Budapest)',
-        'Europe/Busingen' => 'témpor de Germania (Busingen)',
+        'Europe/Busingen' => 'témpor de Germania (Büsingen)',
+        'Europe/Chisinau' => 'témpor de Moldova (Chișinău)',
         'Europe/Copenhagen' => 'témpor de Dania (Copenhagen)',
         'Europe/Dublin' => 'témpore medial de Greenwich (Dublin)',
+        'Europe/Gibraltar' => 'témpor de Gibraltar (Gibraltar)',
         'Europe/Guernsey' => 'témpore medial de Greenwich (Guernsey)',
         'Europe/Helsinki' => 'témpor de Finland (Helsinki)',
-        'Europe/Isle_of_Man' => 'témpore medial de Greenwich (Isle of Man)',
+        'Europe/Isle_of_Man' => 'témpore medial de Greenwich (Insul de Man)',
         'Europe/Jersey' => 'témpore medial de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'témpor de Russia (Kaliningrad)',
         'Europe/Kiev' => 'témpor de Ukraina (Kyiv)',
+        'Europe/Kyiv' => 'témpor de Ukraina (Kyiv)',
         'Europe/Kirov' => 'témpor de Russia (Kirov)',
         'Europe/Lisbon' => 'témpor de Portugal (Lisbon)',
         'Europe/Ljubljana' => 'témpor de Slovenia (Ljubljana)',
@@ -96,11 +104,15 @@
         'Europe/Luxembourg' => 'témpor de Luxemburg (Luxembourg)',
         'Europe/Madrid' => 'témpor de Hispania (Madrid)',
         'Europe/Malta' => 'témpor de Malta (Malta)',
+        'Europe/Mariehamn' => 'témpor de Insules Åland (Mariehamn)',
+        'Europe/Minsk' => 'témpor de Bielorussia (Minsk)',
         'Europe/Monaco' => 'témpor de Mónaco (Monaco)',
         'Europe/Moscow' => 'témpor de Russia (Moscow)',
+        'Europe/Oslo' => 'témpor de Norvegia (Oslo)',
         'Europe/Paris' => 'témpor de Francia (Paris)',
         'Europe/Podgorica' => 'témpor de Montenegro (Podgorica)',
         'Europe/Prague' => 'témpor de Tchekia (Prague)',
+        'Europe/Riga' => 'témpor de Lettonia (Riga)',
         'Europe/Rome' => 'témpor de Italia (Rome)',
         'Europe/Samara' => 'témpor de Russia (Samara)',
         'Europe/San_Marino' => 'témpor de San-Marino (San Marino)',
@@ -111,9 +123,12 @@
         'Europe/Sofia' => 'témpor de Bulgaria (Sofia)',
         'Europe/Stockholm' => 'témpor de Svedia (Stockholm)',
         'Europe/Tallinn' => 'témpor de Estonia (Tallinn)',
-        'Europe/Tirane' => 'témpor de Albania (Tirane)',
+        'Europe/Tirane' => 'témpor de Albania (Tirana)',
         'Europe/Ulyanovsk' => 'témpor de Russia (Ulyanovsk)',
+        'Europe/Vaduz' => 'témpor de Liechtenstein (Vaduz)',
+        'Europe/Vatican' => 'témpor de Cité de Vatican (Vatican)',
         'Europe/Vienna' => 'témpor de Austria (Vienna)',
+        'Europe/Vilnius' => 'témpor de Lituania (Vilnius)',
         'Europe/Volgograd' => 'témpor de Russia (Volgograd)',
         'Europe/Warsaw' => 'témpor de Polonia (Warsaw)',
         'Europe/Zagreb' => 'témpor de Croatia (Zagreb)',
@@ -130,6 +145,7 @@
         'Pacific/Nauru' => 'témpor de Nauru (Nauru)',
         'Pacific/Norfolk' => 'témpor de Insul Norfolk (Norfolk)',
         'Pacific/Palau' => 'témpor de Palau (Palau)',
+        'Pacific/Rarotonga' => 'témpor del Insules Cook (Rarotonga)',
     ],
     'Meta' => [
         'GmtFormat' => 'TMG%s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ig.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ig.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Oge Mpaghara Ọwụwa Anyanwụ Afrịka (Addis Ababa)',
         'Africa/Algiers' => 'Oge Mpaghara Etiti Europe (Algiers)',
         'Africa/Asmera' => 'Oge Mpaghara Ọwụwa Anyanwụ Afrịka (Asmara)',
+        'Africa/Asmara' => 'Oge Mpaghara Ọwụwa Anyanwụ Afrịka (Asmara)',
         'Africa/Bamako' => 'Oge Mpaghara Greemwich Mean (Bamako)',
         'Africa/Bangui' => 'Oge Mpaghara Ọdịda Anyanwụ Afrịka (Bangui)',
         'Africa/Banjul' => 'Oge Mpaghara Greemwich Mean (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Oge Mpaghara Ọwụwa Anyanwụ Afrịka (Dar es Salaam)',
         'Africa/Djibouti' => 'Oge Mpaghara Ọwụwa Anyanwụ Afrịka (Djibouti)',
         'Africa/Douala' => 'Oge Mpaghara Ọdịda Anyanwụ Afrịka (Douala)',
-        'Africa/El_Aaiun' => 'Oge Mpaghara Ọdịda Anyanwụ Europe (El Aaiun)',
+        'Africa/El_Aaiun' => 'Oge Mpaghara Ọdịda Anyanwụ Europe (El Aaiún)',
         'Africa/Freetown' => 'Oge Mpaghara Greemwich Mean (Freetown)',
         'Africa/Gaborone' => 'Oge Etiti Afrịka (Gaborone)',
         'Africa/Harare' => 'Oge Etiti Afrịka (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Oge Mpaghara Ọdịda Anyanwụ Afrịka (Kinshasa)',
         'Africa/Lagos' => 'Oge Mpaghara Ọdịda Anyanwụ Afrịka (Lagos)',
         'Africa/Libreville' => 'Oge Mpaghara Ọdịda Anyanwụ Afrịka (Libreville)',
-        'Africa/Lome' => 'Oge Mpaghara Greemwich Mean (Lome)',
+        'Africa/Lome' => 'Oge Mpaghara Greemwich Mean (Lomé)',
         'Africa/Luanda' => 'Oge Mpaghara Ọdịda Anyanwụ Afrịka (Luanda)',
         'Africa/Lubumbashi' => 'Oge Etiti Afrịka (Lubumbashi)',
         'Africa/Lusaka' => 'Oge Etiti Afrịka (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Oge Mpaghara Ọwụwa Anyanwụ Afrịka (Mogadishu)',
         'Africa/Monrovia' => 'Oge Mpaghara Greemwich Mean (Monrovia)',
         'Africa/Nairobi' => 'Oge Mpaghara Ọwụwa Anyanwụ Afrịka (Nairobi)',
-        'Africa/Ndjamena' => 'Oge Mpaghara Ọdịda Anyanwụ Afrịka (Ndjamena)',
+        'Africa/Ndjamena' => 'Oge Mpaghara Ọdịda Anyanwụ Afrịka (N’Djamena)',
         'Africa/Niamey' => 'Oge Mpaghara Ọdịda Anyanwụ Afrịka (Niamey)',
         'Africa/Nouakchott' => 'Oge Mpaghara Greemwich Mean (Nouakchott)',
         'Africa/Ouagadougou' => 'Oge Mpaghara Greemwich Mean (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Oge Alaska (Anchorage)',
         'America/Anguilla' => 'Oge Mpaghara Atlantic (Anguilla)',
         'America/Antigua' => 'Oge Mpaghara Atlantic (Antigua)',
-        'America/Araguaina' => 'Oge Brasilia (Araguaina)',
+        'America/Araguaina' => 'Oge Brasilia (Araguaína)',
         'America/Argentina/La_Rioja' => 'Oge Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Oge Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Oge Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Oge Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Oge Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Oge Argentina (San Luis)',
-        'America/Argentina/Tucuman' => 'Oge Argentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Oge Argentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Oge Argentina (Ushuaia)',
         'America/Aruba' => 'Oge Mpaghara Atlantic (Aruba)',
         'America/Asuncion' => 'Oge Paraguay (Asunción)',
         'America/Bahia' => 'Oge Brasilia (Bahia)',
         'America/Bahia_Banderas' => 'Oge Mpaghara Etiti (Bahía de Banderas)',
         'America/Barbados' => 'Oge Mpaghara Atlantic (Barbados)',
-        'America/Belem' => 'Oge Brasilia (Belem)',
+        'America/Belem' => 'Oge Brasilia (Belém)',
         'America/Belize' => 'Oge Mpaghara Etiti (Belize)',
         'America/Blanc-Sablon' => 'Oge Mpaghara Atlantic (Blanc-Sablon)',
         'America/Boa_Vista' => 'Oge Amazon (Boa Vista)',
-        'America/Bogota' => 'Oge Columbia (Bogota)',
+        'America/Bogota' => 'Oge Columbia (Bogotá)',
         'America/Boise' => 'Oge Mpaghara Ugwu (Boise)',
         'America/Buenos_Aires' => 'Oge Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Oge Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Oge Mpaghara Ugwu (Cambridge Bay)',
         'America/Campo_Grande' => 'Oge Amazon (Campo Grande)',
         'America/Cancun' => 'Oge Mpaghara Ọwụwa Anyanwụ (Cancún)',
         'America/Caracas' => 'Oge Venezuela (Caracas)',
         'America/Catamarca' => 'Oge Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Oge Argentina (Catamarca)',
         'America/Cayenne' => 'Oge French Guiana (Cayenne)',
         'America/Cayman' => 'Oge Mpaghara Ọwụwa Anyanwụ (Cayman)',
         'America/Chicago' => 'Oge Mpaghara Etiti (Chicago)',
         'America/Chihuahua' => 'Oge Mpaghara Etiti (Chihuahua)',
         'America/Ciudad_Juarez' => 'Oge Mpaghara Ugwu (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Oge Mpaghara Ọwụwa Anyanwụ (Atikokan)',
-        'America/Cordoba' => 'Oge Argentina (Cordoba)',
+        'America/Atikokan' => 'Oge Mpaghara Ọwụwa Anyanwụ (Atikokan)',
+        'America/Cordoba' => 'Oge Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Oge Argentina (Córdoba)',
         'America/Costa_Rica' => 'Oge Mpaghara Etiti (Costa Rica)',
+        'America/Coyhaique' => 'Oge Chile (Coyhaique)',
         'America/Creston' => 'Oge Mpaghara Ugwu (Creston)',
-        'America/Cuiaba' => 'Oge Amazon (Cuiaba)',
+        'America/Cuiaba' => 'Oge Amazon (Cuiabá)',
         'America/Curacao' => 'Oge Mpaghara Atlantic (Curaçao)',
         'America/Danmarkshavn' => 'Oge Mpaghara Greemwich Mean (Danmarkshavn)',
         'America/Dawson' => 'Oge Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Oge Mpaghara Ọwụwa Anyanwụ (Detroit)',
         'America/Dominica' => 'Oge Mpaghara Atlantic (Dominica)',
         'America/Edmonton' => 'Oge Mpaghara Ugwu (Edmonton)',
-        'America/Eirunepe' => 'Oge Brazil (Eirunepe)',
+        'America/Eirunepe' => 'Oge Brazil (Eirunepé)',
         'America/El_Salvador' => 'Oge Mpaghara Etiti (El Salvador)',
         'America/Fort_Nelson' => 'Oge Mpaghara Ugwu (Fort Nelson)',
         'America/Fortaleza' => 'Oge Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'Oge Mpaghara Atlantic (Glace Bay)',
         'America/Godthab' => 'Oge Greenland (Nuuk)',
+        'America/Nuuk' => 'Oge Greenland (Nuuk)',
         'America/Goose_Bay' => 'Oge Mpaghara Atlantic (Goose Bay)',
         'America/Grand_Turk' => 'Oge Mpaghara Ọwụwa Anyanwụ (Grand Turk)',
         'America/Grenada' => 'Oge Mpaghara Atlantic (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Oge Mpaghara Ọwụwa Anyanwụ (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Oge Mpaghara Ọwụwa Anyanwụ (Winamac, Indiana)',
         'America/Indianapolis' => 'Oge Mpaghara Ọwụwa Anyanwụ (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Oge Mpaghara Ọwụwa Anyanwụ (Indianapolis)',
         'America/Inuvik' => 'Oge Mpaghara Ugwu (Inuvik)',
         'America/Iqaluit' => 'Oge Mpaghara Ọwụwa Anyanwụ (Iqaluit)',
         'America/Jamaica' => 'Oge Mpaghara Ọwụwa Anyanwụ (Jamaica)',
         'America/Jujuy' => 'Oge Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Oge Argentina (Jujuy)',
         'America/Juneau' => 'Oge Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Oge Mpaghara Ọwụwa Anyanwụ (Monticello, Kentucky)',
         'America/Kralendijk' => 'Oge Mpaghara Atlantic (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Oge Peru (Lima)',
         'America/Los_Angeles' => 'Oge Mpaghara Pacific (Los Angeles)',
         'America/Louisville' => 'Oge Mpaghara Ọwụwa Anyanwụ (Louisville)',
+        'America/Kentucky/Louisville' => 'Oge Mpaghara Ọwụwa Anyanwụ (Louisville)',
         'America/Lower_Princes' => 'Oge Mpaghara Atlantic (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Oge Brasilia (Maceio)',
+        'America/Maceio' => 'Oge Brasilia (Maceió)',
         'America/Managua' => 'Oge Mpaghara Etiti (Managua)',
         'America/Manaus' => 'Oge Amazon (Manaus)',
         'America/Marigot' => 'Oge Mpaghara Atlantic (Marigot)',
         'America/Martinique' => 'Oge Mpaghara Atlantic (Martinique)',
         'America/Matamoros' => 'Oge Mpaghara Etiti (Matamoros)',
-        'America/Mazatlan' => 'Oge Mexican Pacific (Mazatlan)',
+        'America/Mazatlan' => 'Oge Mexican Pacific (Mazatlán)',
         'America/Mendoza' => 'Oge Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Oge Argentina (Mendoza)',
         'America/Menominee' => 'Oge Mpaghara Etiti (Menominee)',
         'America/Merida' => 'Oge Mpaghara Etiti (Mérida)',
         'America/Metlakatla' => 'Oge Alaska (Metlakatla)',
-        'America/Mexico_City' => 'Oge Mpaghara Etiti (Mexico City)',
-        'America/Miquelon' => 'Oge St. Pierre & Miquelon',
+        'America/Mexico_City' => 'Oge Mpaghara Etiti (Ciudad de México)',
+        'America/Miquelon' => 'Oge St. Pierre & Miquelon (Saint-Pierre)',
         'America/Moncton' => 'Oge Mpaghara Atlantic (Moncton)',
         'America/Monterrey' => 'Oge Mpaghara Etiti (Monterrey)',
         'America/Montevideo' => 'Oge Uruguay (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Oge Mpaghara Etiti (Regina)',
         'America/Resolute' => 'Oge Mpaghara Etiti (Resolute)',
         'America/Rio_Branco' => 'Oge Brazil (Rio Branco)',
-        'America/Santarem' => 'Oge Brasilia (Santarem)',
+        'America/Santarem' => 'Oge Brasilia (Santarém)',
         'America/Santiago' => 'Oge Chile (Santiago)',
         'America/Santo_Domingo' => 'Oge Mpaghara Atlantic (Santo Domingo)',
-        'America/Sao_Paulo' => 'Oge Brasilia (Sao Paulo)',
+        'America/Sao_Paulo' => 'Oge Brasilia (São Paulo)',
         'America/Scoresbysund' => 'Oge Greenland (Ittoqqortoormiit)',
         'America/Sitka' => 'Oge Alaska (Sitka)',
         'America/St_Barthelemy' => 'Oge Mpaghara Atlantic (St. Barthélemy)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Oge New Zealand (McMurdo)',
         'Antarctica/Palmer' => 'Oge Chile (Palmer)',
         'Antarctica/Rothera' => 'Oge Rothera',
-        'Antarctica/Syowa' => 'Oge Syowa',
+        'Antarctica/Syowa' => 'Oge Syowa (Showa)',
         'Antarctica/Troll' => 'Oge Mpaghara Greemwich Mean (Troll)',
         'Antarctica/Vostok' => 'Oge Vostok',
         'Arctic/Longyearbyen' => 'Oge Mpaghara Etiti Europe (Longyearbyen)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Oge Arab (Bahrain)',
         'Asia/Baku' => 'Oge Azerbaijan (Baku)',
         'Asia/Bangkok' => 'Oge Indochina (Bangkok)',
-        'Asia/Barnaul' => 'Oge Russia (Barnaul)',
+        'Asia/Barnaul' => 'Oge Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Beirut)',
         'Asia/Bishkek' => 'Oge Kyrgyzstan (Bishkek)',
         'Asia/Brunei' => 'Oge Brunei Darussalam',
         'Asia/Calcutta' => 'Oge Izugbe India (Kolkata)',
+        'Asia/Kolkata' => 'Oge Izugbe India (Kolkata)',
         'Asia/Chita' => 'Oge Yakutsk (Chita)',
         'Asia/Colombo' => 'Oge Izugbe India (Colombo)',
         'Asia/Damascus' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Gaza)',
         'Asia/Hebron' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Hebron)',
         'Asia/Hong_Kong' => 'Oge Hong Kong',
-        'Asia/Hovd' => 'Oge Hovd',
+        'Asia/Hovd' => 'Oge Hovd (Khovd)',
         'Asia/Irkutsk' => 'Oge Irkutsk',
         'Asia/Jakarta' => 'Oge Mpaghara Ọdịda Anyanwụ Indonesia (Jakarta)',
         'Asia/Jayapura' => 'Oge Mpaghara Ọwụwa Anyanwụ Indonesia (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Oge Russia (Kamchatka)',
         'Asia/Karachi' => 'Oge Pakistan (Karachi)',
         'Asia/Katmandu' => 'Oge Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Oge Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Oge Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Oge Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Oge Malaysia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Oge Izugbe Gulf (Muscat)',
         'Asia/Nicosia' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Nicosia)',
         'Asia/Novokuznetsk' => 'Oge Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Oge Novosibirsk',
+        'Asia/Novosibirsk' => 'Oge Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Oge Omsk',
         'Asia/Oral' => 'Oge Kazakhstan (Oral)',
         'Asia/Phnom_Penh' => 'Oge Indochina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Oge Kazakhstan (Qostanay)',
         'Asia/Qyzylorda' => 'Oge Kazakhstan (Qyzylorda)',
         'Asia/Rangoon' => 'Oge Myanmar (Yangon)',
+        'Asia/Yangon' => 'Oge Myanmar (Yangon)',
         'Asia/Riyadh' => 'Oge Arab (Riyadh)',
         'Asia/Saigon' => 'Oge Indochina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Oge Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Oge Indochina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Oge Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Oge Uzbekist (Samarkand)',
         'Asia/Seoul' => 'Oge Korea (Seoul)',
         'Asia/Shanghai' => 'Oge China (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Oge Iran (Tehran)',
         'Asia/Thimphu' => 'Oge Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Oge Japan (Tokyo)',
-        'Asia/Tomsk' => 'Oge Russia (Tomsk)',
+        'Asia/Tomsk' => 'Oge Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Oge Ulaanbaatar',
-        'Asia/Urumqi' => 'Oge China (Urumqi)',
+        'Asia/Urumqi' => 'Oge China (Ürümqi)',
         'Asia/Ust-Nera' => 'Oge Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Oge Indochina (Vientiane)',
         'Asia/Vladivostok' => 'Oge Vladivostok',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Oge Armenia (Yerevan)',
         'Atlantic/Azores' => 'Oge Azores',
         'Atlantic/Bermuda' => 'Oge Mpaghara Atlantic (Bermuda)',
-        'Atlantic/Canary' => 'Oge Mpaghara Ọdịda Anyanwụ Europe (Canary)',
+        'Atlantic/Canary' => 'Oge Mpaghara Ọdịda Anyanwụ Europe (Canarias)',
         'Atlantic/Cape_Verde' => 'Oge Cape Verde',
         'Atlantic/Faeroe' => 'Oge Mpaghara Ọdịda Anyanwụ Europe (Faroe)',
+        'Atlantic/Faroe' => 'Oge Mpaghara Ọdịda Anyanwụ Europe (Faroe)',
         'Atlantic/Madeira' => 'Oge Mpaghara Ọdịda Anyanwụ Europe (Madeira)',
         'Atlantic/Reykjavik' => 'Oge Mpaghara Greemwich Mean (Reykjavik)',
         'Atlantic/South_Georgia' => 'Oge South Georgia',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Nhazi Oge Ụwa Niile',
         'Europe/Amsterdam' => 'Oge Mpaghara Etiti Europe (Amsterdam)',
         'Europe/Andorra' => 'Oge Mpaghara Etiti Europe (Andorra)',
-        'Europe/Astrakhan' => 'Oge Moscow (Astrakhan)',
+        'Europe/Astrakhan' => 'Oge Russia (Astrakhan)',
         'Europe/Athens' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Athens)',
         'Europe/Belgrade' => 'Oge Mpaghara Etiti Europe (Belgrade)',
         'Europe/Berlin' => 'Oge Mpaghara Etiti Europe (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Oge Mpaghara Etiti Europe (Brussels)',
         'Europe/Bucharest' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Bucharest)',
         'Europe/Budapest' => 'Oge Mpaghara Etiti Europe (Budapest)',
-        'Europe/Busingen' => 'Oge Mpaghara Etiti Europe (Busingen)',
-        'Europe/Chisinau' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Chisinau)',
+        'Europe/Busingen' => 'Oge Mpaghara Etiti Europe (Büsingen)',
+        'Europe/Chisinau' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Chișinău)',
         'Europe/Copenhagen' => 'Oge Mpaghara Etiti Europe (Copenhagen)',
         'Europe/Dublin' => 'Oge Mpaghara Greemwich Mean (Dublin)',
         'Europe/Gibraltar' => 'Oge Mpaghara Etiti Europe (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Oge Mpaghara Greemwich Mean (Jersey)',
         'Europe/Kaliningrad' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Kaliningrad)',
         'Europe/Kiev' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Kyiv)',
-        'Europe/Kirov' => 'Oge Russia (Kirov)',
+        'Europe/Kyiv' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Kyiv)',
+        'Europe/Kirov' => 'Oge Moscow (Kirov)',
         'Europe/Lisbon' => 'Oge Mpaghara Ọdịda Anyanwụ Europe (Lisbon)',
         'Europe/Ljubljana' => 'Oge Mpaghara Etiti Europe (Ljubljana)',
         'Europe/London' => 'Oge Mpaghara Greemwich Mean (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Oge Russia (Samara)',
         'Europe/San_Marino' => 'Oge Mpaghara Etiti Europe (San Marino)',
         'Europe/Sarajevo' => 'Oge Mpaghara Etiti Europe (Sarajevo)',
-        'Europe/Saratov' => 'Oge Moscow (Saratov)',
+        'Europe/Saratov' => 'Oge Russia (Saratov)',
         'Europe/Simferopol' => 'Oge Moscow (Simferopol)',
         'Europe/Skopje' => 'Oge Mpaghara Etiti Europe (Skopje)',
         'Europe/Sofia' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Sofia)',
         'Europe/Stockholm' => 'Oge Mpaghara Etiti Europe (Stockholm)',
         'Europe/Tallinn' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Tallinn)',
-        'Europe/Tirane' => 'Oge Mpaghara Etiti Europe (Tirane)',
-        'Europe/Ulyanovsk' => 'Oge Moscow (Ulyanovsk)',
+        'Europe/Tirane' => 'Oge Mpaghara Etiti Europe (Tirana)',
+        'Europe/Ulyanovsk' => 'Oge Russia (Ulyanovsk)',
         'Europe/Vaduz' => 'Oge Mpaghara Etiti Europe (Vaduz)',
         'Europe/Vatican' => 'Oge Mpaghara Etiti Europe (Vatican)',
         'Europe/Vienna' => 'Oge Mpaghara Etiti Europe (Vienna)',
         'Europe/Vilnius' => 'Oge Mpaghara Ọwụwa Anyanwụ Europe (Vilnius)',
-        'Europe/Volgograd' => 'Oge Volgograd',
+        'Europe/Volgograd' => 'Oge Moscow (Volgograd)',
         'Europe/Warsaw' => 'Oge Mpaghara Etiti Europe (Warsaw)',
         'Europe/Zagreb' => 'Oge Mpaghara Etiti Europe (Zagreb)',
         'Europe/Zurich' => 'Oge Mpaghara Etiti Europe (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Oge Osimiri India (Chagos)',
         'Indian/Christmas' => 'Oge Ekeresimesi Island (Christmas)',
         'Indian/Cocos' => 'Oge Cocos Islands',
-        'Indian/Comoro' => 'Oge Mpaghara Ọwụwa Anyanwụ Afrịka (Comoro)',
+        'Indian/Comoro' => 'Oge Mpaghara Ọwụwa Anyanwụ Afrịka (Comores)',
         'Indian/Kerguelen' => 'Oge French Southern & Antarctic (Kerguelen)',
-        'Indian/Mahe' => 'Oge Seychelles (Mahe)',
+        'Indian/Mahe' => 'Oge Seychelles (Mahé)',
         'Indian/Maldives' => 'Oge Maldives',
         'Indian/Mauritius' => 'Oge Mauritius',
         'Indian/Mayotte' => 'Oge Mpaghara Ọwụwa Anyanwụ Afrịka (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Oge Chatham',
         'Pacific/Easter' => 'Oge Mpaghara Ọwụwa Anyanwụ Island (Easter)',
         'Pacific/Efate' => 'Oge Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Oge Phoenix Islands (Enderbury)',
+        'Pacific/Enderbury' => 'Oge Phoenix Islands (Canton)',
+        'Pacific/Kanton' => 'Oge Phoenix Islands (Canton)',
         'Pacific/Fakaofo' => 'Oge Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Oge Fiji',
         'Pacific/Funafuti' => 'Oge Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Oge Galapagos',
+        'Pacific/Galapagos' => 'Oge Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Oge Gambier',
         'Pacific/Guadalcanal' => 'Oge Solomon Islands (Guadalcanal)',
         'Pacific/Guam' => 'Oge Izugbe Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Oge Hawaii-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Oge Izugbe Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Oge Line Islands (Kiritimati)',
         'Pacific/Kosrae' => 'Oge Kosrae',
         'Pacific/Kwajalein' => 'Oge Marshall Islands (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Oge Nauru',
         'Pacific/Niue' => 'Oge Niue',
         'Pacific/Norfolk' => 'Oge Norfolk Island',
-        'Pacific/Noumea' => 'Oge New Caledonia (Noumea)',
+        'Pacific/Noumea' => 'Oge New Caledonia (Nouméa)',
         'Pacific/Pago_Pago' => 'Oge Samoa (Pago Pago)',
         'Pacific/Palau' => 'Oge Palau',
         'Pacific/Pitcairn' => 'Oge Pitcairn',
         'Pacific/Ponape' => 'Oge Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Oge Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Oge Papua New Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'Oge Cook Islands (Rarotonga)',
         'Pacific/Saipan' => 'Oge Izugbe Chamorro (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Oge Gilbert Islands (Tarawa)',
         'Pacific/Tongatapu' => 'Oge Tonga (Tongatapu)',
         'Pacific/Truk' => 'Oge Chuuk',
+        'Pacific/Chuuk' => 'Oge Chuuk',
         'Pacific/Wake' => 'Oge Wake Island',
         'Pacific/Wallis' => 'Oge Wallis & Futuna',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ii.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ii.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ii.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ii.php	2026-05-20 10:56:49.000000000 +0200
@@ -10,17 +10,17 @@
         'Africa/Conakry' => 'ꋧꃅꎕꏦꄮꈉ（Conakry）',
         'Africa/Dakar' => 'ꋧꃅꎕꏦꄮꈉ（Dakar）',
         'Africa/Freetown' => 'ꋧꃅꎕꏦꄮꈉ（Freetown）',
-        'Africa/Lome' => 'ꋧꃅꎕꏦꄮꈉ（Lome）',
+        'Africa/Lome' => 'ꋧꃅꎕꏦꄮꈉ（Lomé）',
         'Africa/Monrovia' => 'ꋧꃅꎕꏦꄮꈉ（Monrovia）',
         'Africa/Nouakchott' => 'ꋧꃅꎕꏦꄮꈉ（Nouakchott）',
         'Africa/Ouagadougou' => 'ꋧꃅꎕꏦꄮꈉ（Ouagadougou）',
         'Africa/Sao_Tome' => 'ꋧꃅꎕꏦꄮꈉ（São Tomé）',
         'America/Adak' => 'ꂰꇩꄮꈉ（Adak）',
         'America/Anchorage' => 'ꂰꇩꄮꈉ（Anchorage）',
-        'America/Araguaina' => 'ꀠꑭꄮꈉ（Araguaina）',
+        'America/Araguaina' => 'ꀠꑭꄮꈉ（Araguaína）',
         'America/Bahia' => 'ꀠꑭꄮꈉ（Bahia）',
         'America/Bahia_Banderas' => 'ꃀꑭꇬꄮꈉ（Bahía de Banderas）',
-        'America/Belem' => 'ꀠꑭꄮꈉ（Belem）',
+        'America/Belem' => 'ꀠꑭꄮꈉ（Belém）',
         'America/Boa_Vista' => 'ꀠꑭꄮꈉ（Boa Vista）',
         'America/Boise' => 'ꂰꇩꄮꈉ（Boise）',
         'America/Campo_Grande' => 'ꀠꑭꄮꈉ（Campo Grande）',
@@ -28,11 +28,11 @@
         'America/Chicago' => 'ꂰꇩꄮꈉ（Chicago）',
         'America/Chihuahua' => 'ꃀꑭꇬꄮꈉ（Chihuahua）',
         'America/Ciudad_Juarez' => 'ꃀꑭꇬꄮꈉ（Ciudad Juárez）',
-        'America/Cuiaba' => 'ꀠꑭꄮꈉ（Cuiaba）',
+        'America/Cuiaba' => 'ꀠꑭꄮꈉ（Cuiabá）',
         'America/Danmarkshavn' => 'ꋧꃅꎕꏦꄮꈉ（Danmarkshavn）',
         'America/Denver' => 'ꂰꇩꄮꈉ（Denver）',
         'America/Detroit' => 'ꂰꇩꄮꈉ（Detroit）',
-        'America/Eirunepe' => 'ꀠꑭꄮꈉ（Eirunepe）',
+        'America/Eirunepe' => 'ꀠꑭꄮꈉ（Eirunepé）',
         'America/Fortaleza' => 'ꀠꑭꄮꈉ（Fortaleza）',
         'America/Hermosillo' => 'ꃀꑭꇬꄮꈉ（Hermosillo）',
         'America/Indiana/Knox' => 'ꂰꇩꄮꈉ（Knox, Indiana）',
@@ -43,18 +43,20 @@
         'America/Indiana/Vincennes' => 'ꂰꇩꄮꈉ（Vincennes, Indiana）',
         'America/Indiana/Winamac' => 'ꂰꇩꄮꈉ（Winamac, Indiana）',
         'America/Indianapolis' => 'ꂰꇩꄮꈉ（Indianapolis）',
+        'America/Indiana/Indianapolis' => 'ꂰꇩꄮꈉ（Indianapolis）',
         'America/Juneau' => 'ꂰꇩꄮꈉ（Juneau）',
         'America/Kentucky/Monticello' => 'ꂰꇩꄮꈉ（Monticello, Kentucky）',
         'America/Los_Angeles' => 'ꂰꇩꄮꈉ（Los Angeles）',
         'America/Louisville' => 'ꂰꇩꄮꈉ（Louisville）',
-        'America/Maceio' => 'ꀠꑭꄮꈉ（Maceio）',
+        'America/Kentucky/Louisville' => 'ꂰꇩꄮꈉ（Louisville）',
+        'America/Maceio' => 'ꀠꑭꄮꈉ（Maceió）',
         'America/Manaus' => 'ꀠꑭꄮꈉ（Manaus）',
         'America/Matamoros' => 'ꃀꑭꇬꄮꈉ（Matamoros）',
-        'America/Mazatlan' => 'ꃀꑭꇬꄮꈉ（Mazatlan）',
+        'America/Mazatlan' => 'ꃀꑭꇬꄮꈉ（Mazatlán）',
         'America/Menominee' => 'ꂰꇩꄮꈉ（Menominee）',
         'America/Merida' => 'ꃀꑭꇬꄮꈉ（Mérida）',
         'America/Metlakatla' => 'ꂰꇩꄮꈉ（Metlakatla）',
-        'America/Mexico_City' => 'ꃀꑭꇬꄮꈉ（Mexico City）',
+        'America/Mexico_City' => 'ꃀꑭꇬꄮꈉ（Ciudad de México）',
         'America/Monterrey' => 'ꃀꑭꇬꄮꈉ（Monterrey）',
         'America/New_York' => 'ꂰꇩꄮꈉ（New York）',
         'America/Nome' => 'ꂰꇩꄮꈉ（Nome）',
@@ -67,8 +69,8 @@
         'America/Porto_Velho' => 'ꀠꑭꄮꈉ（Porto Velho）',
         'America/Recife' => 'ꀠꑭꄮꈉ（Recife）',
         'America/Rio_Branco' => 'ꀠꑭꄮꈉ（Rio Branco）',
-        'America/Santarem' => 'ꀠꑭꄮꈉ（Santarem）',
-        'America/Sao_Paulo' => 'ꀠꑭꄮꈉ（Sao Paulo）',
+        'America/Santarem' => 'ꀠꑭꄮꈉ（Santarém）',
+        'America/Sao_Paulo' => 'ꀠꑭꄮꈉ（São Paulo）',
         'America/Sitka' => 'ꂰꇩꄮꈉ（Sitka）',
         'America/Tijuana' => 'ꃀꑭꇬꄮꈉ（Tijuana）',
         'America/Yakutat' => 'ꂰꇩꄮꈉ（Yakutat）',
@@ -76,6 +78,7 @@
         'Asia/Anadyr' => 'ꊉꇆꌦꄮꈉ（Anadyr）',
         'Asia/Barnaul' => 'ꊉꇆꌦꄮꈉ（Barnaul）',
         'Asia/Calcutta' => 'ꑴꄗꄮꈉ（Kolkata）',
+        'Asia/Kolkata' => 'ꑴꄗꄮꈉ（Kolkata）',
         'Asia/Chita' => 'ꊉꇆꌦꄮꈉ（Chita）',
         'Asia/Irkutsk' => 'ꊉꇆꌦꄮꈉ（Irkutsk）',
         'Asia/Kamchatka' => 'ꊉꇆꌦꄮꈉ（Kamchatka）',
@@ -90,7 +93,7 @@
         'Asia/Srednekolymsk' => 'ꊉꇆꌦꄮꈉ（Srednekolymsk）',
         'Asia/Tokyo' => 'ꏝꀪꄮꈉ（Tokyo）',
         'Asia/Tomsk' => 'ꊉꇆꌦꄮꈉ（Tomsk）',
-        'Asia/Urumqi' => 'ꍏꇩꄮꈉ（Urumqi）',
+        'Asia/Urumqi' => 'ꍏꇩꄮꈉ（Ürümqi）',
         'Asia/Ust-Nera' => 'ꊉꇆꌦꄮꈉ（Ust-Nera）',
         'Asia/Vladivostok' => 'ꊉꇆꌦꄮꈉ（Vladivostok）',
         'Asia/Yakutsk' => 'ꊉꇆꌦꄮꈉ（Yakutsk）',
@@ -101,7 +104,7 @@
         'Europe/Astrakhan' => 'ꊉꇆꌦꄮꈉ（Astrakhan）',
         'Europe/Berlin' => 'ꄓꇩꄮꈉ（Berlin）',
         'Europe/Brussels' => 'ꀘꆹꏃꄮꈉ（Brussels）',
-        'Europe/Busingen' => 'ꄓꇩꄮꈉ（Busingen）',
+        'Europe/Busingen' => 'ꄓꇩꄮꈉ（Büsingen）',
         'Europe/Dublin' => 'ꋧꃅꎕꏦꄮꈉ（Dublin）',
         'Europe/Guernsey' => 'ꋧꃅꎕꏦꄮꈉ（Guernsey）',
         'Europe/Isle_of_Man' => 'ꋧꃅꎕꏦꄮꈉ（Isle of Man）',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/is.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/is.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/is.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/is.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Austur-Afríkutími (Addis Ababa)',
         'Africa/Algiers' => 'Mið-Evróputími (Algeirsborg)',
         'Africa/Asmera' => 'Austur-Afríkutími (Asmara)',
+        'Africa/Asmara' => 'Austur-Afríkutími (Asmara)',
         'Africa/Bamako' => 'Greenwich-staðaltími (Bamako)',
         'Africa/Bangui' => 'Vestur-Afríkutími (Bangui)',
         'Africa/Banjul' => 'Greenwich-staðaltími (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Austur-Afríkutími (Dar es Salaam)',
         'Africa/Djibouti' => 'Austur-Afríkutími (Djibútí)',
         'Africa/Douala' => 'Vestur-Afríkutími (Douala)',
-        'Africa/El_Aaiun' => 'Vestur-Evróputími (El Aaiun)',
+        'Africa/El_Aaiun' => 'Vestur-Evróputími (El Aaiún)',
         'Africa/Freetown' => 'Greenwich-staðaltími (Freetown)',
         'Africa/Gaborone' => 'Mið-Afríkutími (Gaborone)',
         'Africa/Harare' => 'Mið-Afríkutími (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Vestur-Afríkutími (Kinshasa)',
         'Africa/Lagos' => 'Vestur-Afríkutími (Lagos)',
         'Africa/Libreville' => 'Vestur-Afríkutími (Libreville)',
-        'Africa/Lome' => 'Greenwich-staðaltími (Lome)',
+        'Africa/Lome' => 'Greenwich-staðaltími (Lomé)',
         'Africa/Luanda' => 'Vestur-Afríkutími (Luanda)',
         'Africa/Lubumbashi' => 'Mið-Afríkutími (Lubumbashi)',
         'Africa/Lusaka' => 'Mið-Afríkutími (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Austur-Afríkutími (Mogadishu)',
         'Africa/Monrovia' => 'Greenwich-staðaltími (Monrovia)',
         'Africa/Nairobi' => 'Austur-Afríkutími (Nairobi)',
-        'Africa/Ndjamena' => 'Vestur-Afríkutími (Ndjamena)',
+        'Africa/Ndjamena' => 'Vestur-Afríkutími (N’Djamena)',
         'Africa/Niamey' => 'Vestur-Afríkutími (Niamey)',
         'Africa/Nouakchott' => 'Greenwich-staðaltími (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich-staðaltími (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Tími í Alaska (Anchorage)',
         'America/Anguilla' => 'Tími á Atlantshafssvæðinu (Angvilla)',
         'America/Antigua' => 'Tími á Atlantshafssvæðinu (Antígva)',
-        'America/Araguaina' => 'Brasilíutími (Araguaina)',
+        'America/Araguaina' => 'Brasilíutími (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentínutími (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentínutími (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentínutími (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentínutími (Salta)',
         'America/Argentina/San_Juan' => 'Argentínutími (San Juan)',
         'America/Argentina/San_Luis' => 'Argentínutími (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentínutími (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentínutími (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentínutími (Ushuaia)',
         'America/Aruba' => 'Tími á Atlantshafssvæðinu (Arúba)',
         'America/Asuncion' => 'Paragvætími (Asunción)',
         'America/Bahia' => 'Brasilíutími (Bahia)',
         'America/Bahia_Banderas' => 'Tími í miðhluta Bandaríkjanna og Kanada (Bahia Banderas)',
         'America/Barbados' => 'Tími á Atlantshafssvæðinu (Barbados)',
-        'America/Belem' => 'Brasilíutími (Belem)',
+        'America/Belem' => 'Brasilíutími (Belém)',
         'America/Belize' => 'Tími í miðhluta Bandaríkjanna og Kanada (Belís)',
         'America/Blanc-Sablon' => 'Tími á Atlantshafssvæðinu (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amasóntími (Boa Vista)',
-        'America/Bogota' => 'Kólumbíutími (Bogota)',
+        'America/Bogota' => 'Kólumbíutími (Bogotá)',
         'America/Boise' => 'Tími í Klettafjöllum (Boise)',
         'America/Buenos_Aires' => 'Argentínutími (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentínutími (Buenos Aires)',
         'America/Cambridge_Bay' => 'Tími í Klettafjöllum (Cambridge Bay)',
         'America/Campo_Grande' => 'Amasóntími (Campo Grande)',
         'America/Cancun' => 'Tími í austurhluta Bandaríkjanna og Kanada (Kankún)',
         'America/Caracas' => 'Venesúelatími (Caracas)',
         'America/Catamarca' => 'Argentínutími (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentínutími (Catamarca)',
         'America/Cayenne' => 'Tími í Frönsku Gvæjana (Cayenne)',
         'America/Cayman' => 'Tími í austurhluta Bandaríkjanna og Kanada (Cayman-eyjar)',
         'America/Chicago' => 'Tími í miðhluta Bandaríkjanna og Kanada (Chicago)',
         'America/Chihuahua' => 'Tími í miðhluta Bandaríkjanna og Kanada (Chihuahua)',
         'America/Ciudad_Juarez' => 'Tími í Klettafjöllum (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Tími í austurhluta Bandaríkjanna og Kanada (Atikokan)',
-        'America/Cordoba' => 'Argentínutími (Cordoba)',
+        'America/Atikokan' => 'Tími í austurhluta Bandaríkjanna og Kanada (Atikokan)',
+        'America/Cordoba' => 'Argentínutími (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentínutími (Córdoba)',
         'America/Costa_Rica' => 'Tími í miðhluta Bandaríkjanna og Kanada (Kostaríka)',
+        'America/Coyhaique' => 'Síletími (Coyhaique)',
         'America/Creston' => 'Tími í Klettafjöllum (Creston)',
-        'America/Cuiaba' => 'Amasóntími (Cuiaba)',
+        'America/Cuiaba' => 'Amasóntími (Cuiabá)',
         'America/Curacao' => 'Tími á Atlantshafssvæðinu (Curaçao)',
         'America/Danmarkshavn' => 'Greenwich-staðaltími (Danmarkshavn)',
         'America/Dawson' => 'Tími í Júkon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Tími í austurhluta Bandaríkjanna og Kanada (Detroit)',
         'America/Dominica' => 'Tími á Atlantshafssvæðinu (Dóminíka)',
         'America/Edmonton' => 'Tími í Klettafjöllum (Edmonton)',
-        'America/Eirunepe' => 'Brasilía (Eirunepe)',
+        'America/Eirunepe' => 'Brasilía (Eirunepé)',
         'America/El_Salvador' => 'Tími í miðhluta Bandaríkjanna og Kanada (El Salvador)',
         'America/Fort_Nelson' => 'Tími í Klettafjöllum (Fort Nelson)',
         'America/Fortaleza' => 'Brasilíutími (Fortaleza)',
         'America/Glace_Bay' => 'Tími á Atlantshafssvæðinu (Glace Bay)',
         'America/Godthab' => 'Grænland (Nuuk)',
+        'America/Nuuk' => 'Grænland (Nuuk)',
         'America/Goose_Bay' => 'Tími á Atlantshafssvæðinu (Goose Bay)',
         'America/Grand_Turk' => 'Tími í austurhluta Bandaríkjanna og Kanada (Grand Turk)',
         'America/Grenada' => 'Tími á Atlantshafssvæðinu (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Tími í austurhluta Bandaríkjanna og Kanada (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Tími í austurhluta Bandaríkjanna og Kanada (Winamac, Indiana)',
         'America/Indianapolis' => 'Tími í austurhluta Bandaríkjanna og Kanada (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Tími í austurhluta Bandaríkjanna og Kanada (Indianapolis)',
         'America/Inuvik' => 'Tími í Klettafjöllum (Inuvik)',
         'America/Iqaluit' => 'Tími í austurhluta Bandaríkjanna og Kanada (Iqaluit)',
         'America/Jamaica' => 'Tími í austurhluta Bandaríkjanna og Kanada (Jamaíka)',
         'America/Jujuy' => 'Argentínutími (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentínutími (Jujuy)',
         'America/Juneau' => 'Tími í Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Tími í austurhluta Bandaríkjanna og Kanada (Monticello, Kentucky)',
         'America/Kralendijk' => 'Tími á Atlantshafssvæðinu (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Perútími (Lima)',
         'America/Los_Angeles' => 'Tími á Kyrrahafssvæðinu (Los Angeles)',
         'America/Louisville' => 'Tími í austurhluta Bandaríkjanna og Kanada (Louisville)',
+        'America/Kentucky/Louisville' => 'Tími í austurhluta Bandaríkjanna og Kanada (Louisville)',
         'America/Lower_Princes' => 'Tími á Atlantshafssvæðinu (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasilíutími (Maceio)',
+        'America/Maceio' => 'Brasilíutími (Maceió)',
         'America/Managua' => 'Tími í miðhluta Bandaríkjanna og Kanada (Managua)',
         'America/Manaus' => 'Amasóntími (Manaus)',
         'America/Marigot' => 'Tími á Atlantshafssvæðinu (Marigot)',
         'America/Martinique' => 'Tími á Atlantshafssvæðinu (Martiník)',
         'America/Matamoros' => 'Tími í miðhluta Bandaríkjanna og Kanada (Matamoros)',
-        'America/Mazatlan' => 'Kyrrahafstími í Mexíkó (Mazatlan)',
+        'America/Mazatlan' => 'Kyrrahafstími í Mexíkó (Mazatlán)',
         'America/Mendoza' => 'Argentínutími (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentínutími (Mendoza)',
         'America/Menominee' => 'Tími í miðhluta Bandaríkjanna og Kanada (Menominee)',
         'America/Merida' => 'Tími í miðhluta Bandaríkjanna og Kanada (Merida)',
         'America/Metlakatla' => 'Tími í Alaska (Metlakatla)',
         'America/Mexico_City' => 'Tími í miðhluta Bandaríkjanna og Kanada (Mexíkóborg)',
-        'America/Miquelon' => 'Tími á Sankti Pierre og Miquelon',
+        'America/Miquelon' => 'Tími á Sankti Pierre og Miquelon (Saint-Pierre)',
         'America/Moncton' => 'Tími á Atlantshafssvæðinu (Moncton)',
         'America/Monterrey' => 'Tími í miðhluta Bandaríkjanna og Kanada (Monterrey)',
         'America/Montevideo' => 'Úrúgvætími (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Tími í miðhluta Bandaríkjanna og Kanada (Regina)',
         'America/Resolute' => 'Tími í miðhluta Bandaríkjanna og Kanada (Resolute)',
         'America/Rio_Branco' => 'Brasilía (Rio Branco)',
-        'America/Santarem' => 'Brasilíutími (Santarem)',
+        'America/Santarem' => 'Brasilíutími (Santarém)',
         'America/Santiago' => 'Síletími (Santiago)',
         'America/Santo_Domingo' => 'Tími á Atlantshafssvæðinu (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasilíutími (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brasilíutími (São Paulo)',
         'America/Scoresbysund' => 'Grænland (Ittoqqortoormiit)',
         'America/Sitka' => 'Tími í Alaska (Sitka)',
         'America/St_Barthelemy' => 'Tími á Atlantshafssvæðinu (Sankti Bartólómeusareyjar)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Tími á Nýja-Sjálandi (McMurdo)',
         'Antarctica/Palmer' => 'Síletími (Palmer)',
         'Antarctica/Rothera' => 'Rothera-tími',
-        'Antarctica/Syowa' => 'Syowa-tími',
+        'Antarctica/Syowa' => 'Syowa-tími (Showa)',
         'Antarctica/Troll' => 'Greenwich-staðaltími (Troll)',
         'Antarctica/Vostok' => 'Vostok-tími',
         'Arctic/Longyearbyen' => 'Mið-Evróputími (Longyearbyen)',
         'Asia/Aden' => 'Arabíutími (Aden)',
         'Asia/Almaty' => 'Tími í Kasakstan (Almaty)',
         'Asia/Amman' => 'Austur-Evróputími (Amman)',
-        'Asia/Anadyr' => 'Tími í Anadyr',
+        'Asia/Anadyr' => 'Tími í Petropavlovsk-Kamchatski (Anadyr)',
         'Asia/Aqtau' => 'Tími í Kasakstan (Aqtau)',
         'Asia/Aqtobe' => 'Tími í Kasakstan (Aqtobe)',
         'Asia/Ashgabat' => 'Túrkmenistan-tími (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabíutími (Barein)',
         'Asia/Baku' => 'Aserbaídsjantími (Bakú)',
         'Asia/Bangkok' => 'Indókínatími (Bangkok)',
-        'Asia/Barnaul' => 'Rússland (Barnaul)',
+        'Asia/Barnaul' => 'Tími í Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Austur-Evróputími (Beirút)',
         'Asia/Bishkek' => 'Kirgistan-tími (Bishkek)',
         'Asia/Brunei' => 'Brúneitími',
         'Asia/Calcutta' => 'Indlandstími (Kalkútta)',
+        'Asia/Kolkata' => 'Indlandstími (Kalkútta)',
         'Asia/Chita' => 'Tími í Yakutsk (Chita)',
         'Asia/Colombo' => 'Indlandstími (Kólombó)',
         'Asia/Damascus' => 'Austur-Evróputími (Damaskus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Austur-Evróputími (Gaza)',
         'Asia/Hebron' => 'Austur-Evróputími (Hebron)',
         'Asia/Hong_Kong' => 'Hong Kong-tími',
-        'Asia/Hovd' => 'Hovd-tími',
+        'Asia/Hovd' => 'Hovd-tími (Khovd)',
         'Asia/Irkutsk' => 'Tími í Irkutsk',
         'Asia/Jakarta' => 'Vestur-Indónesíutími (Djakarta)',
         'Asia/Jayapura' => 'Austur-Indónesíutími (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Tími í Petropavlovsk-Kamchatski (Kamtsjatka)',
         'Asia/Karachi' => 'Pakistantími (Karachi)',
         'Asia/Katmandu' => 'Nepaltími (Katmandú)',
+        'Asia/Kathmandu' => 'Nepaltími (Katmandú)',
         'Asia/Khandyga' => 'Tími í Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Tími í Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Malasíutími (Kúala Lúmpúr)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Staðaltími við Persaflóa (Muscat)',
         'Asia/Nicosia' => 'Austur-Evróputími (Níkósía)',
         'Asia/Novokuznetsk' => 'Tími í Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Tími í Novosibirsk',
+        'Asia/Novosibirsk' => 'Tími í Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Tími í Omsk',
         'Asia/Oral' => 'Tími í Kasakstan (Oral)',
         'Asia/Phnom_Penh' => 'Indókínatími (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Tími í Kasakstan (Kostanay)',
         'Asia/Qyzylorda' => 'Tími í Kasakstan (Qyzylorda)',
         'Asia/Rangoon' => 'Mjanmar-tími (Rangún)',
+        'Asia/Yangon' => 'Mjanmar-tími (Rangún)',
         'Asia/Riyadh' => 'Arabíutími (Ríjad)',
         'Asia/Saigon' => 'Indókínatími (Ho Chi Minh-borg)',
-        'Asia/Sakhalin' => 'Tími á Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Indókínatími (Ho Chi Minh-borg)',
+        'Asia/Sakhalin' => 'Tími í Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Úsbekistan-tími (Samarkand)',
         'Asia/Seoul' => 'Kóreutími (Seúl)',
         'Asia/Shanghai' => 'Kínatími (Sjanghæ)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Íranstími (Teheran)',
         'Asia/Thimphu' => 'Bútantími (Thimphu)',
         'Asia/Tokyo' => 'Japanstími (Tókýó)',
-        'Asia/Tomsk' => 'Rússland (Tomsk)',
+        'Asia/Tomsk' => 'Tími í Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Tími í Úlan Bator',
-        'Asia/Urumqi' => 'Kína (Urumqi)',
+        'Asia/Urumqi' => 'Kína (Ürümqi)',
         'Asia/Ust-Nera' => 'Tími í Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Indókínatími (Vientiane)',
         'Asia/Vladivostok' => 'Tími í Vladivostok',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Vestur-Evróputími (Kanaríeyjar)',
         'Atlantic/Cape_Verde' => 'Grænhöfðaeyjatími (Grænhöfðaeyjar)',
         'Atlantic/Faeroe' => 'Vestur-Evróputími (Færeyjar)',
+        'Atlantic/Faroe' => 'Vestur-Evróputími (Færeyjar)',
         'Atlantic/Madeira' => 'Vestur-Evróputími (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich-staðaltími (Reykjavík)',
         'Atlantic/South_Georgia' => 'Suður-Georgíutími (Suður-Georgía)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Samræmdur alþjóðlegur tími',
         'Europe/Amsterdam' => 'Mið-Evróputími (Amsterdam)',
         'Europe/Andorra' => 'Mið-Evróputími (Andorra)',
-        'Europe/Astrakhan' => 'Moskvutími (Astrakhan)',
+        'Europe/Astrakhan' => 'Tími í Samara (Astrakhan)',
         'Europe/Athens' => 'Austur-Evróputími (Aþena)',
         'Europe/Belgrade' => 'Mið-Evróputími (Belgrad)',
         'Europe/Berlin' => 'Mið-Evróputími (Berlín)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Mið-Evróputími (Brussel)',
         'Europe/Bucharest' => 'Austur-Evróputími (Búkarest)',
         'Europe/Budapest' => 'Mið-Evróputími (Búdapest)',
-        'Europe/Busingen' => 'Mið-Evróputími (Busingen)',
-        'Europe/Chisinau' => 'Austur-Evróputími (Chisinau)',
+        'Europe/Busingen' => 'Mið-Evróputími (Büsingen)',
+        'Europe/Chisinau' => 'Austur-Evróputími (Chișinău)',
         'Europe/Copenhagen' => 'Mið-Evróputími (Kaupmannahöfn)',
         'Europe/Dublin' => 'Greenwich-staðaltími (Dublin)',
         'Europe/Gibraltar' => 'Mið-Evróputími (Gíbraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwich-staðaltími (Jersey)',
         'Europe/Kaliningrad' => 'Austur-Evróputími (Kaliningrad)',
         'Europe/Kiev' => 'Austur-Evróputími (Kænugarður)',
-        'Europe/Kirov' => 'Rússland (Kirov)',
+        'Europe/Kyiv' => 'Austur-Evróputími (Kænugarður)',
+        'Europe/Kirov' => 'Moskvutími (Kirov)',
         'Europe/Lisbon' => 'Vestur-Evróputími (Lissabon)',
         'Europe/Ljubljana' => 'Mið-Evróputími (Ljubljana)',
         'Europe/London' => 'Greenwich-staðaltími (Lundúnir)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Tími í Samara',
         'Europe/San_Marino' => 'Mið-Evróputími (San Marínó)',
         'Europe/Sarajevo' => 'Mið-Evróputími (Sarajevó)',
-        'Europe/Saratov' => 'Moskvutími (Saratov)',
+        'Europe/Saratov' => 'Tími í Samara (Saratov)',
         'Europe/Simferopol' => 'Moskvutími (Simferopol)',
         'Europe/Skopje' => 'Mið-Evróputími (Skopje)',
         'Europe/Sofia' => 'Austur-Evróputími (Sófía)',
         'Europe/Stockholm' => 'Mið-Evróputími (Stokkhólmur)',
         'Europe/Tallinn' => 'Austur-Evróputími (Tallinn)',
         'Europe/Tirane' => 'Mið-Evróputími (Tírana)',
-        'Europe/Ulyanovsk' => 'Moskvutími (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Tími í Samara (Ulyanovsk)',
         'Europe/Vaduz' => 'Mið-Evróputími (Vaduz)',
         'Europe/Vatican' => 'Mið-Evróputími (Vatíkanið)',
         'Europe/Vienna' => 'Mið-Evróputími (Vín)',
         'Europe/Vilnius' => 'Austur-Evróputími (Vilníus)',
-        'Europe/Volgograd' => 'Tími í Volgograd',
+        'Europe/Volgograd' => 'Moskvutími (Volgograd)',
         'Europe/Warsaw' => 'Mið-Evróputími (Varsjá)',
         'Europe/Zagreb' => 'Mið-Evróputími (Zagreb)',
         'Europe/Zurich' => 'Mið-Evróputími (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Indlandshafstími (Chagos)',
         'Indian/Christmas' => 'Jólaeyjartími',
         'Indian/Cocos' => 'Kókoseyjatími (Kókoseyjar)',
-        'Indian/Comoro' => 'Austur-Afríkutími (Comoro)',
+        'Indian/Comoro' => 'Austur-Afríkutími (Comores)',
         'Indian/Kerguelen' => 'Tími á frönsku suðurhafssvæðum og Suðurskautslandssvæði (Kerguelen)',
-        'Indian/Mahe' => 'Seychelles-eyjatími (Mahe)',
+        'Indian/Mahe' => 'Seychelles-eyjatími (Mahé)',
         'Indian/Maldives' => 'Maldíveyja-tími (Maldíveyjar)',
         'Indian/Mauritius' => 'Máritíustími',
         'Indian/Mayotte' => 'Austur-Afríkutími (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Chatham-tími',
         'Pacific/Easter' => 'Páskaeyjutími (Páskaeyja)',
         'Pacific/Efate' => 'Vanúatú-tími (Efate)',
-        'Pacific/Enderbury' => 'Fönixeyjatími (Enderbury)',
+        'Pacific/Enderbury' => 'Fönixeyjatími (Kanton-eyja)',
+        'Pacific/Kanton' => 'Fönixeyjatími (Kanton-eyja)',
         'Pacific/Fakaofo' => 'Tókelá-tími (Fakaofo)',
         'Pacific/Fiji' => 'Fídjíeyjatími',
         'Pacific/Funafuti' => 'Túvalútími (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos-tími',
+        'Pacific/Galapagos' => 'Galapagos-tími (Galápagos)',
         'Pacific/Gambier' => 'Gambier-tími',
         'Pacific/Guadalcanal' => 'Salómonseyjatími (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro-staðaltími (Gvam)',
-        'Pacific/Honolulu' => 'Tími á Havaí og Aleúta (Honolulu)',
+        'Pacific/Honolulu' => 'Staðaltími á Havaí og Aleúta (Honolulu)',
         'Pacific/Kiritimati' => 'Línueyja-tími (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae-tími',
         'Pacific/Kwajalein' => 'Tími á Marshall-eyjum (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Nárú-tími',
         'Pacific/Niue' => 'Niue-tími',
         'Pacific/Norfolk' => 'Tími á Norfolk-eyju',
-        'Pacific/Noumea' => 'Tími í Nýju-Kaledóníu (Noumea)',
+        'Pacific/Noumea' => 'Tími í Nýju-Kaledóníu (Nouméa)',
         'Pacific/Pago_Pago' => 'Samóa-tími (Pago Pago)',
         'Pacific/Palau' => 'Palátími',
         'Pacific/Pitcairn' => 'Pitcairn-tími',
         'Pacific/Ponape' => 'Ponape-tími (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponape-tími (Pohnpei)',
         'Pacific/Port_Moresby' => 'Tími á Papúa Nýju-Gíneu (Port Moresby)',
         'Pacific/Rarotonga' => 'Cooks-eyjatími (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro-staðaltími (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Tími á Gilbert-eyjum (Tarawa)',
         'Pacific/Tongatapu' => 'Tongatími (Tongatapu)',
         'Pacific/Truk' => 'Chuuk-tími',
+        'Pacific/Chuuk' => 'Chuuk-tími',
         'Pacific/Wake' => 'Tími á Wake-eyju',
-        'Pacific/Wallis' => 'Tími á Wallis- og Fútúnaeyjum',
+        'Pacific/Wallis' => 'Tími á Wallis- og Fútúnaeyjum (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/it.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/it.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/it.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/it.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Ora dell’Africa orientale (Addis Abeba)',
         'Africa/Algiers' => 'Ora dell’Europa centrale (Algeri)',
         'Africa/Asmera' => 'Ora dell’Africa orientale (Asmara)',
+        'Africa/Asmara' => 'Ora dell’Africa orientale (Asmara)',
         'Africa/Bamako' => 'Ora del meridiano di Greenwich (Bamako)',
         'Africa/Bangui' => 'Ora dell’Africa occidentale (Bangui)',
         'Africa/Banjul' => 'Ora del meridiano di Greenwich (Banjul)',
@@ -58,9 +59,9 @@
         'America/Anchorage' => 'Ora dell’Alaska (Anchorage)',
         'America/Anguilla' => 'Ora dell’Atlantico (Anguilla)',
         'America/Antigua' => 'Ora dell’Atlantico (Antigua)',
-        'America/Araguaina' => 'Ora di Brasilia (Araguaina)',
+        'America/Araguaina' => 'Ora di Brasilia (Araguaína)',
         'America/Argentina/La_Rioja' => 'Ora dell’Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Ora dell’Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Ora dell’Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Ora dell’Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Ora dell’Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Ora dell’Argentina (San Luis)',
@@ -71,28 +72,33 @@
         'America/Bahia' => 'Ora di Brasilia (Bahia)',
         'America/Bahia_Banderas' => 'Ora centrale USA (Bahía de Banderas)',
         'America/Barbados' => 'Ora dell’Atlantico (Barbados)',
-        'America/Belem' => 'Ora di Brasilia (Belem)',
+        'America/Belem' => 'Ora di Brasilia (Belém)',
         'America/Belize' => 'Ora centrale USA (Belize)',
         'America/Blanc-Sablon' => 'Ora dell’Atlantico (Blanc-Sablon)',
         'America/Boa_Vista' => 'Ora dell’Amazzonia (Boa Vista)',
         'America/Bogota' => 'Ora della Colombia (Bogotá)',
         'America/Boise' => 'Ora Montagne Rocciose USA (Boise)',
         'America/Buenos_Aires' => 'Ora dell’Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Ora dell’Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Ora Montagne Rocciose USA (Cambridge Bay)',
         'America/Campo_Grande' => 'Ora dell’Amazzonia (Campo Grande)',
         'America/Cancun' => 'Ora orientale USA (Cancún)',
         'America/Caracas' => 'Ora del Venezuela (Caracas)',
         'America/Catamarca' => 'Ora dell’Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Ora dell’Argentina (Catamarca)',
         'America/Cayenne' => 'Ora della Guiana francese (Caienna)',
         'America/Cayman' => 'Ora orientale USA (Cayman)',
         'America/Chicago' => 'Ora centrale USA (Chicago)',
         'America/Chihuahua' => 'Ora centrale USA (Chihuahua)',
         'America/Ciudad_Juarez' => 'Ora Montagne Rocciose USA (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Ora orientale USA (Atikokan)',
-        'America/Cordoba' => 'Ora dell’Argentina (Cordoba)',
+        'America/Atikokan' => 'Ora orientale USA (Atikokan)',
+        'America/Cordoba' => 'Ora dell’Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Ora dell’Argentina (Córdoba)',
         'America/Costa_Rica' => 'Ora centrale USA (Costa Rica)',
+        'America/Coyhaique' => 'Ora del Cile (Coyhaique)',
         'America/Creston' => 'Ora Montagne Rocciose USA (Creston)',
-        'America/Cuiaba' => 'Ora dell’Amazzonia (Cuiaba)',
+        'America/Cuiaba' => 'Ora dell’Amazzonia (Cuiabá)',
         'America/Curacao' => 'Ora dell’Atlantico (Curaçao)',
         'America/Danmarkshavn' => 'Ora del meridiano di Greenwich (Danmarkshavn)',
         'America/Dawson' => 'Ora dello Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Ora orientale USA (Detroit)',
         'America/Dominica' => 'Ora dell’Atlantico (Dominica)',
         'America/Edmonton' => 'Ora Montagne Rocciose USA (Edmonton)',
-        'America/Eirunepe' => 'Ora Brasile (Eirunepe)',
+        'America/Eirunepe' => 'Ora Brasile (Eirunepé)',
         'America/El_Salvador' => 'Ora centrale USA (El Salvador)',
         'America/Fort_Nelson' => 'Ora Montagne Rocciose USA (Fort Nelson)',
         'America/Fortaleza' => 'Ora di Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'Ora dell’Atlantico (Glace Bay)',
         'America/Godthab' => 'Ora Groenlandia (Nuuk)',
+        'America/Nuuk' => 'Ora Groenlandia (Nuuk)',
         'America/Goose_Bay' => 'Ora dell’Atlantico (Goose Bay)',
         'America/Grand_Turk' => 'Ora orientale USA (Grand Turk)',
         'America/Grenada' => 'Ora dell’Atlantico (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Ora orientale USA (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Ora orientale USA (Winamac, Indiana)',
         'America/Indianapolis' => 'Ora orientale USA (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Ora orientale USA (Indianapolis)',
         'America/Inuvik' => 'Ora Montagne Rocciose USA (Inuvik)',
         'America/Iqaluit' => 'Ora orientale USA (Iqaluit)',
         'America/Jamaica' => 'Ora orientale USA (Giamaica)',
         'America/Jujuy' => 'Ora dell’Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Ora dell’Argentina (Jujuy)',
         'America/Juneau' => 'Ora dell’Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Ora orientale USA (Monticello, Kentucky)',
         'America/Kralendijk' => 'Ora dell’Atlantico (Kralendijk)',
@@ -136,15 +145,17 @@
         'America/Lima' => 'Ora del Perù (Lima)',
         'America/Los_Angeles' => 'Ora del Pacifico USA (Los Angeles)',
         'America/Louisville' => 'Ora orientale USA (Louisville)',
+        'America/Kentucky/Louisville' => 'Ora orientale USA (Louisville)',
         'America/Lower_Princes' => 'Ora dell’Atlantico (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Ora di Brasilia (Maceio)',
+        'America/Maceio' => 'Ora di Brasilia (Maceió)',
         'America/Managua' => 'Ora centrale USA (Managua)',
         'America/Manaus' => 'Ora dell’Amazzonia (Manaus)',
         'America/Marigot' => 'Ora dell’Atlantico (Marigot)',
         'America/Martinique' => 'Ora dell’Atlantico (Martinica)',
         'America/Matamoros' => 'Ora centrale USA (Matamoros)',
-        'America/Mazatlan' => 'Ora del Pacifico (Messico) (Mazatlan)',
+        'America/Mazatlan' => 'Ora del Pacifico (Messico) (Mazatlán)',
         'America/Mendoza' => 'Ora dell’Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Ora dell’Argentina (Mendoza)',
         'America/Menominee' => 'Ora centrale USA (Menominee)',
         'America/Merida' => 'Ora centrale USA (Mérida)',
         'America/Metlakatla' => 'Ora dell’Alaska (Metlakatla)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Ora della Nuova Zelanda (McMurdo)',
         'Antarctica/Palmer' => 'Ora del Cile (Palmer)',
         'Antarctica/Rothera' => 'Ora di Rothera',
-        'Antarctica/Syowa' => 'Ora di Syowa',
+        'Antarctica/Syowa' => 'Ora di Syowa (Showa)',
         'Antarctica/Troll' => 'Ora del meridiano di Greenwich (Troll)',
         'Antarctica/Vostok' => 'Ora di Vostok',
         'Arctic/Longyearbyen' => 'Ora dell’Europa centrale (Longyearbyen)',
         'Asia/Aden' => 'Ora araba (Aden)',
         'Asia/Almaty' => 'Ora del Kazakistan (Almaty)',
         'Asia/Amman' => 'Ora dell’Europa orientale (Amman)',
-        'Asia/Anadyr' => 'Ora di Anadyr (Anadyr’)',
+        'Asia/Anadyr' => 'Ora di Petropavlovsk-Kamchatski (Anadyr’)',
         'Asia/Aqtau' => 'Ora del Kazakistan (Aqtau)',
         'Asia/Aqtobe' => 'Ora del Kazakistan (Aqtöbe)',
         'Asia/Ashgabat' => 'Ora del Turkmenistan (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Ora araba (Bahrein)',
         'Asia/Baku' => 'Ora dell’Azerbaigian (Baku)',
         'Asia/Bangkok' => 'Ora dell’Indocina (Bangkok)',
-        'Asia/Barnaul' => 'Ora Russia (Barnaul)',
+        'Asia/Barnaul' => 'Ora di Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Ora dell’Europa orientale (Beirut)',
         'Asia/Bishkek' => 'Ora del Kirghizistan (Bishkek)',
         'Asia/Brunei' => 'Ora del Brunei Darussalam',
         'Asia/Calcutta' => 'Ora standard dell’India (Calcutta)',
+        'Asia/Kolkata' => 'Ora standard dell’India (Calcutta)',
         'Asia/Chita' => 'Ora di Yakutsk (Čita)',
         'Asia/Colombo' => 'Ora standard dell’India (Colombo)',
         'Asia/Damascus' => 'Ora dell’Europa orientale (Damasco)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Ora dell’Europa orientale (Gaza)',
         'Asia/Hebron' => 'Ora dell’Europa orientale (Hebron)',
         'Asia/Hong_Kong' => 'Ora di Hong Kong',
-        'Asia/Hovd' => 'Ora di Hovd',
+        'Asia/Hovd' => 'Ora di Hovd (Khovd)',
         'Asia/Irkutsk' => 'Ora di Irkutsk',
         'Asia/Jakarta' => 'Ora dell’Indonesia occidentale (Giacarta)',
         'Asia/Jayapura' => 'Ora dell’Indonesia orientale (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Ora di Petropavlovsk-Kamchatski (Kamchatka)',
         'Asia/Karachi' => 'Ora del Pakistan (Karachi)',
         'Asia/Katmandu' => 'Ora del Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Ora del Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Ora di Yakutsk (Chandyga)',
         'Asia/Krasnoyarsk' => 'Ora di Krasnoyarsk (Krasnojarsk)',
         'Asia/Kuala_Lumpur' => 'Ora della Malesia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Ora del Golfo (Mascate)',
         'Asia/Nicosia' => 'Ora dell’Europa orientale (Nicosia)',
         'Asia/Novokuznetsk' => 'Ora di Krasnoyarsk (Novokuzneck)',
-        'Asia/Novosibirsk' => 'Ora di Novosibirsk',
+        'Asia/Novosibirsk' => 'Ora di Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Ora di Omsk',
         'Asia/Oral' => 'Ora del Kazakistan (Oral)',
         'Asia/Phnom_Penh' => 'Ora dell’Indocina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Ora del Kazakistan (Qostanay)',
         'Asia/Qyzylorda' => 'Ora del Kazakistan (Qyzylorda)',
         'Asia/Rangoon' => 'Ora della Birmania (Rangoon)',
+        'Asia/Yangon' => 'Ora della Birmania (Rangoon)',
         'Asia/Riyadh' => 'Ora araba (Riyad)',
         'Asia/Saigon' => 'Ora dell’Indocina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Ora di Sakhalin (Sachalin)',
+        'Asia/Ho_Chi_Minh' => 'Ora dell’Indocina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Ora di Magadan (Sachalin)',
         'Asia/Samarkand' => 'Ora dell’Uzbekistan (Samarcanda)',
         'Asia/Seoul' => 'Ora coreana (Seul)',
         'Asia/Shanghai' => 'Ora della Cina (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Ora dell’Iran (Teheran)',
         'Asia/Thimphu' => 'Ora del Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Ora del Giappone (Tokyo)',
-        'Asia/Tomsk' => 'Ora Russia (Tomsk)',
+        'Asia/Tomsk' => 'Ora di Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ora di Ulan Bator',
-        'Asia/Urumqi' => 'Ora Cina (Urumqi)',
+        'Asia/Urumqi' => 'Ora Cina (Ürümqi)',
         'Asia/Ust-Nera' => 'Ora di Vladivostok (Ust’-Nera)',
         'Asia/Vientiane' => 'Ora dell’Indocina (Vientiane)',
         'Asia/Vladivostok' => 'Ora di Vladivostok',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Ora dell’Europa occidentale (Canarie)',
         'Atlantic/Cape_Verde' => 'Ora di Capo Verde',
         'Atlantic/Faeroe' => 'Ora dell’Europa occidentale (Isole Fær Øer)',
+        'Atlantic/Faroe' => 'Ora dell’Europa occidentale (Isole Fær Øer)',
         'Atlantic/Madeira' => 'Ora dell’Europa occidentale (Madeira)',
         'Atlantic/Reykjavik' => 'Ora del meridiano di Greenwich (Reykjavík)',
         'Atlantic/South_Georgia' => 'Ora della Georgia del Sud',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Tempo coordinato universale',
         'Europe/Amsterdam' => 'Ora dell’Europa centrale (Amsterdam)',
         'Europe/Andorra' => 'Ora dell’Europa centrale (Andorra)',
-        'Europe/Astrakhan' => 'Ora di Mosca (Astrakhan)',
+        'Europe/Astrakhan' => 'Ora di Samara (Astrakhan)',
         'Europe/Athens' => 'Ora dell’Europa orientale (Atene)',
         'Europe/Belgrade' => 'Ora dell’Europa centrale (Belgrado)',
         'Europe/Berlin' => 'Ora dell’Europa centrale (Berlino)',
@@ -325,7 +341,7 @@
         'Europe/Bucharest' => 'Ora dell’Europa orientale (Bucarest)',
         'Europe/Budapest' => 'Ora dell’Europa centrale (Budapest)',
         'Europe/Busingen' => 'Ora dell’Europa centrale (Büsingen)',
-        'Europe/Chisinau' => 'Ora dell’Europa orientale (Chisinau)',
+        'Europe/Chisinau' => 'Ora dell’Europa orientale (Chișinău)',
         'Europe/Copenhagen' => 'Ora dell’Europa centrale (Copenaghen)',
         'Europe/Dublin' => 'Ora del meridiano di Greenwich (Dublino)',
         'Europe/Gibraltar' => 'Ora dell’Europa centrale (Gibilterra)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Ora del meridiano di Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Ora dell’Europa orientale (Kaliningrad)',
         'Europe/Kiev' => 'Ora dell’Europa orientale (Kiev)',
-        'Europe/Kirov' => 'Ora Russia (Kirov)',
+        'Europe/Kyiv' => 'Ora dell’Europa orientale (Kiev)',
+        'Europe/Kirov' => 'Ora di Mosca (Kirov)',
         'Europe/Lisbon' => 'Ora dell’Europa occidentale (Lisbona)',
         'Europe/Ljubljana' => 'Ora dell’Europa centrale (Lubiana)',
         'Europe/London' => 'Ora del meridiano di Greenwich (Londra)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Ora di Samara',
         'Europe/San_Marino' => 'Ora dell’Europa centrale (San Marino)',
         'Europe/Sarajevo' => 'Ora dell’Europa centrale (Sarajevo)',
-        'Europe/Saratov' => 'Ora di Mosca (Saratov)',
+        'Europe/Saratov' => 'Ora di Samara (Saratov)',
         'Europe/Simferopol' => 'Ora di Mosca (Sinferopoli)',
         'Europe/Skopje' => 'Ora dell’Europa centrale (Skopje)',
         'Europe/Sofia' => 'Ora dell’Europa orientale (Sofia)',
         'Europe/Stockholm' => 'Ora dell’Europa centrale (Stoccolma)',
         'Europe/Tallinn' => 'Ora dell’Europa orientale (Tallinn)',
         'Europe/Tirane' => 'Ora dell’Europa centrale (Tirana)',
-        'Europe/Ulyanovsk' => 'Ora di Mosca (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Ora di Samara (Ulyanovsk)',
         'Europe/Vaduz' => 'Ora dell’Europa centrale (Vaduz)',
         'Europe/Vatican' => 'Ora dell’Europa centrale (Città del Vaticano)',
         'Europe/Vienna' => 'Ora dell’Europa centrale (Vienna)',
         'Europe/Vilnius' => 'Ora dell’Europa orientale (Vilnius)',
-        'Europe/Volgograd' => 'Ora di Volgograd',
+        'Europe/Volgograd' => 'Ora di Mosca (Volgograd)',
         'Europe/Warsaw' => 'Ora dell’Europa centrale (Varsavia)',
         'Europe/Zagreb' => 'Ora dell’Europa centrale (Zagabria)',
         'Europe/Zurich' => 'Ora dell’Europa centrale (Zurigo)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Ora delle Isole Cocos',
         'Indian/Comoro' => 'Ora dell’Africa orientale (Comore)',
         'Indian/Kerguelen' => 'Ora delle Terre australi e antartiche francesi (Kerguelen)',
-        'Indian/Mahe' => 'Ora delle Seychelles (Mahe)',
+        'Indian/Mahe' => 'Ora delle Seychelles (Mahé)',
         'Indian/Maldives' => 'Ora delle Maldive',
         'Indian/Mauritius' => 'Ora delle Mauritius',
         'Indian/Mayotte' => 'Ora dell’Africa orientale (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Ora delle Chatham',
         'Pacific/Easter' => 'Ora dell’Isola di Pasqua',
         'Pacific/Efate' => 'Ora del Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Ora delle Isole della Fenice (Enderbury)',
+        'Pacific/Enderbury' => 'Ora delle Isole della Fenice (Canton)',
+        'Pacific/Kanton' => 'Ora delle Isole della Fenice (Canton)',
         'Pacific/Fakaofo' => 'Ora di Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Ora delle Figi',
         'Pacific/Funafuti' => 'Ora di Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Ora delle Galapagos',
+        'Pacific/Galapagos' => 'Ora delle Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Ora di Gambier',
         'Pacific/Guadalcanal' => 'Ora delle Isole Salomone (Guadalcanal)',
         'Pacific/Guam' => 'Ora di Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Ora delle isole Hawaii-Aleutine (Honolulu)',
+        'Pacific/Honolulu' => 'Ora standard delle Isole Hawaii-Aleutine (Honolulu)',
         'Pacific/Kiritimati' => 'Ora delle Sporadi equatoriali (Kiritimati)',
         'Pacific/Kosrae' => 'Ora del Kosrae',
         'Pacific/Kwajalein' => 'Ora delle Isole Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Ora di Nauru',
         'Pacific/Niue' => 'Ora di Niue',
         'Pacific/Norfolk' => 'Ora delle Isole Norfolk',
-        'Pacific/Noumea' => 'Ora della Nuova Caledonia (Noumea)',
+        'Pacific/Noumea' => 'Ora della Nuova Caledonia (Nouméa)',
         'Pacific/Pago_Pago' => 'Ora di Samoa (Pago Pago)',
         'Pacific/Palau' => 'Ora di Palau',
         'Pacific/Pitcairn' => 'Ora delle Pitcairn',
         'Pacific/Ponape' => 'Ora di Pohnpei',
+        'Pacific/Pohnpei' => 'Ora di Pohnpei',
         'Pacific/Port_Moresby' => 'Ora della Papua Nuova Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'Ora delle isole Cook (Rarotonga)',
         'Pacific/Saipan' => 'Ora di Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Ora delle isole Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Ora di Tonga (Tongatapu)',
         'Pacific/Truk' => 'Ora del Chuuk',
+        'Pacific/Chuuk' => 'Ora del Chuuk',
         'Pacific/Wake' => 'Ora dell’Isola di Wake',
-        'Pacific/Wallis' => 'Ora di Wallis e Futuna',
+        'Pacific/Wallis' => 'Ora di Wallis e Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ja.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ja.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ja.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ja.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => '東アフリカ時間（アジスアベバ）',
         'Africa/Algiers' => '中央ヨーロッパ時間（アルジェ）',
         'Africa/Asmera' => '東アフリカ時間（アスマラ）',
+        'Africa/Asmara' => '東アフリカ時間（アスマラ）',
         'Africa/Bamako' => 'グリニッジ標準時（バマコ）',
         'Africa/Bangui' => '西アフリカ時間（バンギ）',
         'Africa/Banjul' => 'グリニッジ標準時（バンジュール）',
@@ -69,111 +70,121 @@
         'America/Aruba' => '大西洋時間（アルバ）',
         'America/Asuncion' => 'パラグアイ時間（アスンシオン）',
         'America/Bahia' => 'ブラジリア時間（バイーア）',
-        'America/Bahia_Banderas' => 'アメリカ中部時間（バイアバンデラ）',
+        'America/Bahia_Banderas' => '米国中部時間（バイアバンデラ）',
         'America/Barbados' => '大西洋時間（バルバドス）',
         'America/Belem' => 'ブラジリア時間（ベレン）',
-        'America/Belize' => 'アメリカ中部時間（ベリーズ）',
+        'America/Belize' => '米国中部時間（ベリーズ）',
         'America/Blanc-Sablon' => '大西洋時間（ブラン・サブロン）',
         'America/Boa_Vista' => 'アマゾン時間（ボアビスタ）',
         'America/Bogota' => 'コロンビア時間（ボゴタ）',
-        'America/Boise' => 'アメリカ山地時間（ボイシ）',
+        'America/Boise' => '米国山岳部時間（ボイシ）',
         'America/Buenos_Aires' => 'アルゼンチン時間（ブエノスアイレス）',
-        'America/Cambridge_Bay' => 'アメリカ山地時間（ケンブリッジベイ）',
+        'America/Argentina/Buenos_Aires' => 'アルゼンチン時間（ブエノスアイレス）',
+        'America/Cambridge_Bay' => '米国山岳部時間（ケンブリッジベイ）',
         'America/Campo_Grande' => 'アマゾン時間（カンポグランデ）',
-        'America/Cancun' => 'アメリカ東部時間（カンクン）',
+        'America/Cancun' => '米国東部時間（カンクン）',
         'America/Caracas' => 'ベネズエラ時間（カラカス）',
         'America/Catamarca' => 'アルゼンチン時間（カタマルカ）',
+        'America/Argentina/Catamarca' => 'アルゼンチン時間（カタマルカ）',
         'America/Cayenne' => '仏領ギアナ時間（カイエンヌ）',
-        'America/Cayman' => 'アメリカ東部時間（ケイマン）',
-        'America/Chicago' => 'アメリカ中部時間（シカゴ）',
-        'America/Chihuahua' => 'アメリカ中部時間（チワワ）',
-        'America/Ciudad_Juarez' => 'アメリカ山地時間（シウダー・フアレス）',
-        'America/Coral_Harbour' => 'アメリカ東部時間（アティコカン）',
+        'America/Cayman' => '米国東部時間（ケイマン）',
+        'America/Chicago' => '米国中部時間（シカゴ）',
+        'America/Chihuahua' => '米国中部時間（チワワ）',
+        'America/Ciudad_Juarez' => '米国山岳部時間（シウダー・フアレス）',
+        'America/Coral_Harbour' => '米国東部時間（アティコカン）',
+        'America/Atikokan' => '米国東部時間（アティコカン）',
         'America/Cordoba' => 'アルゼンチン時間（コルドバ）',
-        'America/Costa_Rica' => 'アメリカ中部時間（コスタリカ）',
-        'America/Creston' => 'アメリカ山地時間（クレストン）',
+        'America/Argentina/Cordoba' => 'アルゼンチン時間（コルドバ）',
+        'America/Costa_Rica' => '米国中部時間（コスタリカ）',
+        'America/Coyhaique' => 'チリ時間（コジャイケ）',
+        'America/Creston' => '米国山岳部時間（クレストン）',
         'America/Cuiaba' => 'アマゾン時間（クイアバ）',
         'America/Curacao' => '大西洋時間（キュラソー）',
         'America/Danmarkshavn' => 'グリニッジ標準時（デンマークシャウン）',
         'America/Dawson' => 'ユーコン時間（ドーソン）',
-        'America/Dawson_Creek' => 'アメリカ山地時間（ドーソンクリーク）',
-        'America/Denver' => 'アメリカ山地時間（デンバー）',
-        'America/Detroit' => 'アメリカ東部時間（デトロイト）',
+        'America/Dawson_Creek' => '米国山岳部時間（ドーソンクリーク）',
+        'America/Denver' => '米国山岳部時間（デンバー）',
+        'America/Detroit' => '米国東部時間（デトロイト）',
         'America/Dominica' => '大西洋時間（ドミニカ）',
-        'America/Edmonton' => 'アメリカ山地時間（エドモントン）',
+        'America/Edmonton' => '米国山岳部時間（エドモントン）',
         'America/Eirunepe' => 'アクレ時間（エイルネペ）',
-        'America/El_Salvador' => 'アメリカ中部時間（エルサルバドル）',
-        'America/Fort_Nelson' => 'アメリカ山地時間（フォートネルソン）',
+        'America/El_Salvador' => '米国中部時間（エルサルバドル）',
+        'America/Fort_Nelson' => '米国山岳部時間（フォートネルソン）',
         'America/Fortaleza' => 'ブラジリア時間（フォルタレザ）',
         'America/Glace_Bay' => '大西洋時間（グレースベイ）',
         'America/Godthab' => 'グリーンランド時間（ヌーク）',
+        'America/Nuuk' => 'グリーンランド時間（ヌーク）',
         'America/Goose_Bay' => '大西洋時間（グースベイ）',
-        'America/Grand_Turk' => 'アメリカ東部時間（グランドターク）',
+        'America/Grand_Turk' => '米国東部時間（グランドターク）',
         'America/Grenada' => '大西洋時間（グレナダ）',
         'America/Guadeloupe' => '大西洋時間（グアドループ）',
-        'America/Guatemala' => 'アメリカ中部時間（グアテマラ）',
+        'America/Guatemala' => '米国中部時間（グアテマラ）',
         'America/Guayaquil' => 'エクアドル時間（グアヤキル）',
         'America/Guyana' => 'ガイアナ時間',
         'America/Halifax' => '大西洋時間（ハリファクス）',
         'America/Havana' => 'キューバ時間（ハバナ）',
         'America/Hermosillo' => 'メキシコ太平洋時間（エルモシヨ）',
-        'America/Indiana/Knox' => 'アメリカ中部時間（インディアナ州ノックス）',
-        'America/Indiana/Marengo' => 'アメリカ東部時間（インディアナ州マレンゴ）',
-        'America/Indiana/Petersburg' => 'アメリカ東部時間（インディアナ州ピーターズバーグ）',
-        'America/Indiana/Tell_City' => 'アメリカ中部時間（インディアナ州テルシティ）',
-        'America/Indiana/Vevay' => 'アメリカ東部時間（インディアナ州ビベー）',
-        'America/Indiana/Vincennes' => 'アメリカ東部時間（インディアナ州ビンセンス）',
-        'America/Indiana/Winamac' => 'アメリカ東部時間（インディアナ州ウィナマック）',
-        'America/Indianapolis' => 'アメリカ東部時間（インディアナポリス）',
-        'America/Inuvik' => 'アメリカ山地時間（イヌヴィク）',
-        'America/Iqaluit' => 'アメリカ東部時間（イカルイット）',
-        'America/Jamaica' => 'アメリカ東部時間（ジャマイカ）',
+        'America/Indiana/Knox' => '米国中部時間（インディアナ州ノックス）',
+        'America/Indiana/Marengo' => '米国東部時間（インディアナ州マレンゴ）',
+        'America/Indiana/Petersburg' => '米国東部時間（インディアナ州ピーターズバーグ）',
+        'America/Indiana/Tell_City' => '米国中部時間（インディアナ州テルシティ）',
+        'America/Indiana/Vevay' => '米国東部時間（インディアナ州ビベー）',
+        'America/Indiana/Vincennes' => '米国東部時間（インディアナ州ビンセンス）',
+        'America/Indiana/Winamac' => '米国東部時間（インディアナ州ウィナマック）',
+        'America/Indianapolis' => '米国東部時間（インディアナポリス）',
+        'America/Indiana/Indianapolis' => '米国東部時間（インディアナポリス）',
+        'America/Inuvik' => '米国山岳部時間（イヌヴィク）',
+        'America/Iqaluit' => '米国東部時間（イカルイット）',
+        'America/Jamaica' => '米国東部時間（ジャマイカ）',
         'America/Jujuy' => 'アルゼンチン時間（フフイ）',
+        'America/Argentina/Jujuy' => 'アルゼンチン時間（フフイ）',
         'America/Juneau' => 'アラスカ時間（ジュノー）',
-        'America/Kentucky/Monticello' => 'アメリカ東部時間（ケンタッキー州モンティチェロ）',
+        'America/Kentucky/Monticello' => '米国東部時間（ケンタッキー州モンティチェロ）',
         'America/Kralendijk' => '大西洋時間（クラレンダイク）',
         'America/La_Paz' => 'ボリビア時間（ラパス）',
         'America/Lima' => 'ペルー時間（リマ）',
-        'America/Los_Angeles' => 'アメリカ太平洋時間（ロサンゼルス）',
-        'America/Louisville' => 'アメリカ東部時間（ルイビル）',
+        'America/Los_Angeles' => '米国太平洋時間（ロサンゼルス）',
+        'America/Louisville' => '米国東部時間（ルイビル）',
+        'America/Kentucky/Louisville' => '米国東部時間（ルイビル）',
         'America/Lower_Princes' => '大西洋時間（ローワー・プリンセズ・クウォーター）',
         'America/Maceio' => 'ブラジリア時間（マセイオ）',
-        'America/Managua' => 'アメリカ中部時間（マナグア）',
+        'America/Managua' => '米国中部時間（マナグア）',
         'America/Manaus' => 'アマゾン時間（マナウス）',
         'America/Marigot' => '大西洋時間（マリゴ）',
         'America/Martinique' => '大西洋時間（マルティニーク）',
-        'America/Matamoros' => 'アメリカ中部時間（マタモロス）',
+        'America/Matamoros' => '米国中部時間（マタモロス）',
         'America/Mazatlan' => 'メキシコ太平洋時間（マサトラン）',
         'America/Mendoza' => 'アルゼンチン時間（メンドーサ）',
-        'America/Menominee' => 'アメリカ中部時間（メノミニー）',
-        'America/Merida' => 'アメリカ中部時間（メリダ）',
+        'America/Argentina/Mendoza' => 'アルゼンチン時間（メンドーサ）',
+        'America/Menominee' => '米国中部時間（メノミニー）',
+        'America/Merida' => '米国中部時間（メリダ）',
         'America/Metlakatla' => 'アラスカ時間（メトラカトラ）',
-        'America/Mexico_City' => 'アメリカ中部時間（メキシコシティー）',
+        'America/Mexico_City' => '米国中部時間（メキシコシティー）',
         'America/Miquelon' => 'サンピエール島・ミクロン島時間',
         'America/Moncton' => '大西洋時間（モンクトン）',
-        'America/Monterrey' => 'アメリカ中部時間（モンテレイ）',
+        'America/Monterrey' => '米国中部時間（モンテレイ）',
         'America/Montevideo' => 'ウルグアイ時間（モンテビデオ）',
         'America/Montserrat' => '大西洋時間（モントセラト）',
-        'America/Nassau' => 'アメリカ東部時間（ナッソー）',
-        'America/New_York' => 'アメリカ東部時間（ニューヨーク）',
+        'America/Nassau' => '米国東部時間（ナッソー）',
+        'America/New_York' => '米国東部時間（ニューヨーク）',
         'America/Nome' => 'アラスカ時間（ノーム）',
         'America/Noronha' => 'フェルナンド・デ・ノローニャ時間',
-        'America/North_Dakota/Beulah' => 'アメリカ中部時間（ノースダコタ州ビューラー）',
-        'America/North_Dakota/Center' => 'アメリカ中部時間（ノースダコタ州センター）',
-        'America/North_Dakota/New_Salem' => 'アメリカ中部時間（ノースダコタ州ニューセーラム）',
-        'America/Ojinaga' => 'アメリカ中部時間（オヒナガ）',
-        'America/Panama' => 'アメリカ東部時間（パナマ）',
+        'America/North_Dakota/Beulah' => '米国中部時間（ノースダコタ州ビューラー）',
+        'America/North_Dakota/Center' => '米国中部時間（ノースダコタ州センター）',
+        'America/North_Dakota/New_Salem' => '米国中部時間（ノースダコタ州ニューセーラム）',
+        'America/Ojinaga' => '米国中部時間（オヒナガ）',
+        'America/Panama' => '米国東部時間（パナマ）',
         'America/Paramaribo' => 'スリナム時間（パラマリボ）',
-        'America/Phoenix' => 'アメリカ山地時間（フェニックス）',
-        'America/Port-au-Prince' => 'アメリカ東部時間（ポルトープランス）',
+        'America/Phoenix' => '米国山岳部時間（フェニックス）',
+        'America/Port-au-Prince' => '米国東部時間（ポルトープランス）',
         'America/Port_of_Spain' => '大西洋時間（ポートオブスペイン）',
         'America/Porto_Velho' => 'アマゾン時間（ポルトベーリョ）',
         'America/Puerto_Rico' => '大西洋時間（プエルトリコ）',
         'America/Punta_Arenas' => 'チリ時間（プンタアレナス）',
-        'America/Rankin_Inlet' => 'アメリカ中部時間（ランキンインレット）',
+        'America/Rankin_Inlet' => '米国中部時間（ランキンインレット）',
         'America/Recife' => 'ブラジリア時間（レシフェ）',
-        'America/Regina' => 'アメリカ中部時間（レジャイナ）',
-        'America/Resolute' => 'アメリカ中部時間（レゾリュート）',
+        'America/Regina' => '米国中部時間（レジャイナ）',
+        'America/Resolute' => '米国中部時間（レゾリュート）',
         'America/Rio_Branco' => 'アクレ時間（リオブランコ）',
         'America/Santarem' => 'ブラジリア時間（サンタレム）',
         'America/Santiago' => 'チリ時間（サンチアゴ）',
@@ -187,15 +198,15 @@
         'America/St_Lucia' => '大西洋時間（セントルシア）',
         'America/St_Thomas' => '大西洋時間（セントトーマス）',
         'America/St_Vincent' => '大西洋時間（セントビンセント）',
-        'America/Swift_Current' => 'アメリカ中部時間（スウィフトカレント）',
-        'America/Tegucigalpa' => 'アメリカ中部時間（テグシガルパ）',
+        'America/Swift_Current' => '米国中部時間（スウィフトカレント）',
+        'America/Tegucigalpa' => '米国中部時間（テグシガルパ）',
         'America/Thule' => '大西洋時間（チューレ）',
-        'America/Tijuana' => 'アメリカ太平洋時間（ティフアナ）',
-        'America/Toronto' => 'アメリカ東部時間（トロント）',
+        'America/Tijuana' => '米国太平洋時間（ティフアナ）',
+        'America/Toronto' => '米国東部時間（トロント）',
         'America/Tortola' => '大西洋時間（トルトーラ）',
-        'America/Vancouver' => 'アメリカ太平洋時間（バンクーバー）',
+        'America/Vancouver' => '米国太平洋時間（バンクーバー）',
         'America/Whitehorse' => 'ユーコン時間（ホワイトホース）',
-        'America/Winnipeg' => 'アメリカ中部時間（ウィニペグ）',
+        'America/Winnipeg' => '米国中部時間（ウィニペグ）',
         'America/Yakutat' => 'アラスカ時間（ヤクタット）',
         'Antarctica/Casey' => 'オーストラリア西部時間（ケーシー基地）',
         'Antarctica/Davis' => 'デービス基地時間',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'アラビア時間（アデン）',
         'Asia/Almaty' => 'カザフスタン時間（アルマトイ）',
         'Asia/Amman' => '東ヨーロッパ時間（アンマン）',
-        'Asia/Anadyr' => 'アナディリ時間',
+        'Asia/Anadyr' => 'ペトロパブロフスク・カムチャツキー時間（アナディリ）',
         'Asia/Aqtau' => 'カザフスタン時間（アクタウ）',
         'Asia/Aqtobe' => 'カザフスタン時間（アクトベ）',
         'Asia/Ashgabat' => 'トルクメニスタン時間（アシガバード）',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'アラビア時間（バーレーン）',
         'Asia/Baku' => 'アゼルバイジャン時間（バクー）',
         'Asia/Bangkok' => 'インドシナ時間（バンコク）',
-        'Asia/Barnaul' => 'ロシア時間（バルナウル）',
+        'Asia/Barnaul' => 'クラスノヤルスク時間（バルナウル）',
         'Asia/Beirut' => '東ヨーロッパ時間（ベイルート）',
         'Asia/Bishkek' => 'キルギス時間（ビシュケク）',
-        'Asia/Brunei' => 'ブルネイ・ダルサラーム時間',
+        'Asia/Brunei' => 'ブルネイ時間',
         'Asia/Calcutta' => 'インド標準時（コルカタ）',
+        'Asia/Kolkata' => 'インド標準時（コルカタ）',
         'Asia/Chita' => 'ヤクーツク時間（チタ）',
         'Asia/Colombo' => 'インド標準時（コロンボ）',
         'Asia/Damascus' => '東ヨーロッパ時間（ダマスカス）',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ペトロパブロフスク・カムチャツキー時間（カムチャッカ）',
         'Asia/Karachi' => 'パキスタン時間（カラチ）',
         'Asia/Katmandu' => 'ネパール時間（カトマンズ）',
+        'Asia/Kathmandu' => 'ネパール時間（カトマンズ）',
         'Asia/Khandyga' => 'ヤクーツク時間（ハンドゥイガ）',
         'Asia/Krasnoyarsk' => 'クラスノヤルスク時間',
         'Asia/Kuala_Lumpur' => 'マレーシア時間（クアラルンプール）',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => '湾岸標準時（マスカット）',
         'Asia/Nicosia' => '東ヨーロッパ時間（ニコシア）',
         'Asia/Novokuznetsk' => 'クラスノヤルスク時間（ノヴォクズネツク）',
-        'Asia/Novosibirsk' => 'ノヴォシビルスク時間',
+        'Asia/Novosibirsk' => 'クラスノヤルスク時間（ノヴォシビルスク）',
         'Asia/Omsk' => 'オムスク時間',
         'Asia/Oral' => 'カザフスタン時間（オラル）',
         'Asia/Phnom_Penh' => 'インドシナ時間（プノンペン）',
@@ -268,21 +281,23 @@
         'Asia/Qostanay' => 'カザフスタン時間（コスタナイ）',
         'Asia/Qyzylorda' => 'カザフスタン時間（クズロルダ）',
         'Asia/Rangoon' => 'ミャンマー時間（ヤンゴン）',
+        'Asia/Yangon' => 'ミャンマー時間（ヤンゴン）',
         'Asia/Riyadh' => 'アラビア時間（リヤド）',
         'Asia/Saigon' => 'インドシナ時間（ホーチミン）',
-        'Asia/Sakhalin' => 'サハリン時間',
+        'Asia/Ho_Chi_Minh' => 'インドシナ時間（ホーチミン）',
+        'Asia/Sakhalin' => 'マガダン時間（サハリン）',
         'Asia/Samarkand' => 'ウズベキスタン時間（サマルカンド）',
         'Asia/Seoul' => '韓国時間（ソウル）',
         'Asia/Shanghai' => '中国時間（上海）',
         'Asia/Singapore' => 'シンガポール標準時',
         'Asia/Srednekolymsk' => 'マガダン時間（スレドネコリムスク）',
-        'Asia/Taipei' => '台北時間',
+        'Asia/Taipei' => '台湾時間（台北）',
         'Asia/Tashkent' => 'ウズベキスタン時間（タシケント）',
         'Asia/Tbilisi' => 'ジョージア時間（トビリシ）',
         'Asia/Tehran' => 'イラン時間（テヘラン）',
         'Asia/Thimphu' => 'ブータン時間（ティンプー）',
         'Asia/Tokyo' => '日本時間（東京）',
-        'Asia/Tomsk' => 'ロシア時間（トムスク）',
+        'Asia/Tomsk' => 'クラスノヤルスク時間（トムスク）',
         'Asia/Ulaanbaatar' => 'ウランバートル時間',
         'Asia/Urumqi' => '中国時間（ウルムチ）',
         'Asia/Ust-Nera' => 'ウラジオストク時間（ウスチネラ）',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => '西ヨーロッパ時間（カナリア）',
         'Atlantic/Cape_Verde' => 'カーボベルデ時間',
         'Atlantic/Faeroe' => '西ヨーロッパ時間（フェロー）',
+        'Atlantic/Faroe' => '西ヨーロッパ時間（フェロー）',
         'Atlantic/Madeira' => '西ヨーロッパ時間（マデイラ）',
         'Atlantic/Reykjavik' => 'グリニッジ標準時（レイキャビク）',
         'Atlantic/South_Georgia' => 'サウスジョージア時間',
@@ -316,7 +332,7 @@
         'Etc/UTC' => '協定世界時',
         'Europe/Amsterdam' => '中央ヨーロッパ時間（アムステルダム）',
         'Europe/Andorra' => '中央ヨーロッパ時間（アンドラ）',
-        'Europe/Astrakhan' => 'モスクワ時間（アストラハン）',
+        'Europe/Astrakhan' => 'サマラ時間（アストラハン）',
         'Europe/Athens' => '東ヨーロッパ時間（アテネ）',
         'Europe/Belgrade' => '中央ヨーロッパ時間（ベオグラード）',
         'Europe/Berlin' => '中央ヨーロッパ時間（ベルリン）',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'グリニッジ標準時（ジャージー）',
         'Europe/Kaliningrad' => '東ヨーロッパ時間（カリーニングラード）',
         'Europe/Kiev' => '東ヨーロッパ時間（キーウ）',
-        'Europe/Kirov' => 'ロシア時間（キーロフ）',
+        'Europe/Kyiv' => '東ヨーロッパ時間（キーウ）',
+        'Europe/Kirov' => 'モスクワ時間（キーロフ）',
         'Europe/Lisbon' => '西ヨーロッパ時間（リスボン）',
         'Europe/Ljubljana' => '中央ヨーロッパ時間（リュブリャナ）',
         'Europe/London' => 'グリニッジ標準時（ロンドン）',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'サマラ時間',
         'Europe/San_Marino' => '中央ヨーロッパ時間（サンマリノ）',
         'Europe/Sarajevo' => '中央ヨーロッパ時間（サラエボ）',
-        'Europe/Saratov' => 'モスクワ時間（サラトフ）',
+        'Europe/Saratov' => 'サマラ時間（サラトフ）',
         'Europe/Simferopol' => 'モスクワ時間（シンフェロポリ）',
         'Europe/Skopje' => '中央ヨーロッパ時間（スコピエ）',
         'Europe/Sofia' => '東ヨーロッパ時間（ソフィア）',
         'Europe/Stockholm' => '中央ヨーロッパ時間（ストックホルム）',
         'Europe/Tallinn' => '東ヨーロッパ時間（タリン）',
         'Europe/Tirane' => '中央ヨーロッパ時間（ティラナ）',
-        'Europe/Ulyanovsk' => 'モスクワ時間（ウリヤノフスク）',
+        'Europe/Ulyanovsk' => 'サマラ時間（ウリヤノフスク）',
         'Europe/Vaduz' => '中央ヨーロッパ時間（ファドゥーツ）',
         'Europe/Vatican' => '中央ヨーロッパ時間（バチカン）',
         'Europe/Vienna' => '中央ヨーロッパ時間（ウィーン）',
         'Europe/Vilnius' => '東ヨーロッパ時間（ヴィリニュス）',
-        'Europe/Volgograd' => 'ボルゴグラード時間',
+        'Europe/Volgograd' => 'モスクワ時間（ボルゴグラード）',
         'Europe/Warsaw' => '中央ヨーロッパ時間（ワルシャワ）',
         'Europe/Zagreb' => '中央ヨーロッパ時間（ザグレブ）',
         'Europe/Zurich' => '中央ヨーロッパ時間（チューリッヒ）',
@@ -383,13 +400,14 @@
         'Indian/Mauritius' => 'モーリシャス時間',
         'Indian/Mayotte' => '東アフリカ時間（マヨット）',
         'Indian/Reunion' => 'レユニオン時間',
-        'Pacific/Apia' => 'アピア時間',
+        'Pacific/Apia' => 'サモア時間（アピア）',
         'Pacific/Auckland' => 'ニュージーランド時間（オークランド）',
         'Pacific/Bougainville' => 'パプアニューギニア時間（ブーゲンビル）',
         'Pacific/Chatham' => 'チャタム時間',
         'Pacific/Easter' => 'イースター島時間',
         'Pacific/Efate' => 'バヌアツ時間（エフェテ島）',
-        'Pacific/Enderbury' => 'フェニックス諸島時間（エンダーベリー島）',
+        'Pacific/Enderbury' => 'フェニックス諸島時間（カントン島）',
+        'Pacific/Kanton' => 'フェニックス諸島時間（カントン島）',
         'Pacific/Fakaofo' => 'トケラウ時間（ファカオフォ）',
         'Pacific/Fiji' => 'フィジー時間',
         'Pacific/Funafuti' => 'ツバル時間（フナフティ）',
@@ -397,21 +415,22 @@
         'Pacific/Gambier' => 'ガンビエ諸島時間',
         'Pacific/Guadalcanal' => 'ソロモン諸島時間（ガダルカナル）',
         'Pacific/Guam' => 'チャモロ時間（グアム）',
-        'Pacific/Honolulu' => 'ハワイ・アリューシャン時間（ホノルル）',
+        'Pacific/Honolulu' => 'ハワイ・アリューシャン標準時（ホノルル）',
         'Pacific/Kiritimati' => 'ライン諸島時間（キリスィマスィ島）',
         'Pacific/Kosrae' => 'コスラエ時間',
         'Pacific/Kwajalein' => 'マーシャル諸島時間（クェゼリン）',
         'Pacific/Majuro' => 'マーシャル諸島時間（マジュロ）',
         'Pacific/Marquesas' => 'マルキーズ時間',
-        'Pacific/Midway' => 'サモア時間（ミッドウェー島）',
+        'Pacific/Midway' => '米領サモア時間（ミッドウェー島）',
         'Pacific/Nauru' => 'ナウル時間',
         'Pacific/Niue' => 'ニウエ時間',
         'Pacific/Norfolk' => 'ノーフォーク島時間',
         'Pacific/Noumea' => 'ニューカレドニア時間（ヌメア）',
-        'Pacific/Pago_Pago' => 'サモア時間（パゴパゴ）',
+        'Pacific/Pago_Pago' => '米領サモア時間（パゴパゴ）',
         'Pacific/Palau' => 'パラオ時間',
         'Pacific/Pitcairn' => 'ピトケアン時間（ピトケアン諸島）',
-        'Pacific/Ponape' => 'ポナペ時間（ポンペイ島）',
+        'Pacific/Ponape' => 'ポンペイ時間（ポンペイ島）',
+        'Pacific/Pohnpei' => 'ポンペイ時間（ポンペイ島）',
         'Pacific/Port_Moresby' => 'パプアニューギニア時間（ポートモレスビー）',
         'Pacific/Rarotonga' => 'クック諸島時間（ラロトンガ）',
         'Pacific/Saipan' => 'チャモロ時間（サイパン）',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'ギルバート諸島時間（タラワ）',
         'Pacific/Tongatapu' => 'トンガ時間（トンガタプ）',
         'Pacific/Truk' => 'チューク時間',
+        'Pacific/Chuuk' => 'チューク時間',
         'Pacific/Wake' => 'ウェーク島時間',
         'Pacific/Wallis' => 'ウォリス・フツナ時間（ウォリス諸島）',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/jv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/jv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/jv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/jv.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Wektu Afrika Wetan (Addis Ababa)',
         'Africa/Algiers' => 'Wektu Eropa Tengah (Algiers)',
         'Africa/Asmera' => 'Wektu Afrika Wetan (Asmara)',
+        'Africa/Asmara' => 'Wektu Afrika Wetan (Asmara)',
         'Africa/Bamako' => 'Wektu Rerata Greenwich (Bamako)',
         'Africa/Bangui' => 'Wektu Afrika Kulon (Bangui)',
         'Africa/Banjul' => 'Wektu Rerata Greenwich (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Wektu Afrika Wetan (Dar es Salaam)',
         'Africa/Djibouti' => 'Wektu Afrika Wetan (Djibouti)',
         'Africa/Douala' => 'Wektu Afrika Kulon (Douala)',
-        'Africa/El_Aaiun' => 'Wektu Eropa sisih Kulon (El Aaiun)',
+        'Africa/El_Aaiun' => 'Wektu Eropa sisih Kulon (El Aaiún)',
         'Africa/Freetown' => 'Wektu Rerata Greenwich (Freetown)',
         'Africa/Gaborone' => 'Wektu Afrika Tengah (Gaborone)',
         'Africa/Harare' => 'Wektu Afrika Tengah (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Wektu Afrika Kulon (Kinshasa)',
         'Africa/Lagos' => 'Wektu Afrika Kulon (Lagos)',
         'Africa/Libreville' => 'Wektu Afrika Kulon (Libreville)',
-        'Africa/Lome' => 'Wektu Rerata Greenwich (Lome)',
+        'Africa/Lome' => 'Wektu Rerata Greenwich (Lomé)',
         'Africa/Luanda' => 'Wektu Afrika Kulon (Luanda)',
         'Africa/Lubumbashi' => 'Wektu Afrika Tengah (Lubumbashi)',
         'Africa/Lusaka' => 'Wektu Afrika Tengah (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Wektu Afrika Wetan (Mogadishu)',
         'Africa/Monrovia' => 'Wektu Rerata Greenwich (Monrovia)',
         'Africa/Nairobi' => 'Wektu Afrika Wetan (Nairobi)',
-        'Africa/Ndjamena' => 'Wektu Afrika Kulon (Ndjamena)',
+        'Africa/Ndjamena' => 'Wektu Afrika Kulon (N’Djamena)',
         'Africa/Niamey' => 'Wektu Afrika Kulon (Niamey)',
         'Africa/Nouakchott' => 'Wektu Rerata Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'Wektu Rerata Greenwich (Ouagadougou)',
@@ -58,39 +59,44 @@
         'America/Anchorage' => 'Wektu Alaska (Anchorage)',
         'America/Anguilla' => 'Wektu Atlantik (Anguilla)',
         'America/Antigua' => 'Wektu Atlantik (Antigua)',
-        'America/Araguaina' => 'Wektu Brasilia (Araguaina)',
+        'America/Araguaina' => 'Wektu Brasilia (Araguaína)',
         'America/Argentina/La_Rioja' => 'Wektu Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Wektu Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Wektu Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Wektu Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Wektu Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Wektu Argentina (San Luis)',
-        'America/Argentina/Tucuman' => 'Wektu Argentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Wektu Argentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Wektu Argentina (Ushuaia)',
         'America/Aruba' => 'Wektu Atlantik (Aruba)',
         'America/Asuncion' => 'Wektu Paraguay (Asunción)',
         'America/Bahia' => 'Wektu Brasilia (Bahia)',
         'America/Bahia_Banderas' => 'Wektu Tengah (Bahia Banderas)',
         'America/Barbados' => 'Wektu Atlantik (Barbados)',
-        'America/Belem' => 'Wektu Brasilia (Belem)',
+        'America/Belem' => 'Wektu Brasilia (Belém)',
         'America/Belize' => 'Wektu Tengah (Belise)',
         'America/Blanc-Sablon' => 'Wektu Atlantik (Blanc-Sablon)',
         'America/Boa_Vista' => 'Wektu Amazon (Boa Vista)',
-        'America/Bogota' => 'Wektu Kolombia (Bogota)',
+        'America/Bogota' => 'Wektu Kolombia (Bogotá)',
         'America/Boise' => 'Wektu Giri (Boise)',
         'America/Buenos_Aires' => 'Wektu Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Wektu Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Wektu Giri (Teluk Cambridge)',
         'America/Campo_Grande' => 'Wektu Amazon (Kampo Grande)',
         'America/Cancun' => 'Wektu sisih Wetan (Cancun)',
         'America/Caracas' => 'Wektu Venezuela (Karakas)',
         'America/Catamarca' => 'Wektu Argentina (Katamarka)',
+        'America/Argentina/Catamarca' => 'Wektu Argentina (Katamarka)',
         'America/Cayenne' => 'Wektu Guiana Prancis (Kayenne)',
         'America/Cayman' => 'Wektu sisih Wetan (Caiman)',
         'America/Chicago' => 'Wektu Tengah (Chicago)',
         'America/Chihuahua' => 'Wektu Tengah (Chihuahua)',
         'America/Ciudad_Juarez' => 'Wektu Giri (Ciudad Juáres)',
         'America/Coral_Harbour' => 'Wektu sisih Wetan (Atikokan)',
+        'America/Atikokan' => 'Wektu sisih Wetan (Atikokan)',
         'America/Cordoba' => 'Wektu Argentina (Kordoba)',
+        'America/Argentina/Cordoba' => 'Wektu Argentina (Kordoba)',
         'America/Costa_Rica' => 'Wektu Tengah (Kosta Rika)',
+        'America/Coyhaique' => 'Wektu Chili (Coyhaique)',
         'America/Creston' => 'Wektu Giri (Creston)',
         'America/Cuiaba' => 'Wektu Amazon (Kuiaba)',
         'America/Curacao' => 'Wektu Atlantik (Curaçao)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Wektu sisih Wetan (Detroit)',
         'America/Dominica' => 'Wektu Atlantik (Dominika)',
         'America/Edmonton' => 'Wektu Giri (Edmonton)',
-        'America/Eirunepe' => 'Wektu Brasil (Eirunepe)',
+        'America/Eirunepe' => 'Wektu Brasil (Eirunepé)',
         'America/El_Salvador' => 'Wektu Tengah (El Salvador)',
         'America/Fort_Nelson' => 'Wektu Giri (Benteng Nelson)',
         'America/Fortaleza' => 'Wektu Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'Wektu Atlantik (Teluk Glace)',
         'America/Godthab' => 'Wektu Greenland (Nuuk)',
+        'America/Nuuk' => 'Wektu Greenland (Nuuk)',
         'America/Goose_Bay' => 'Wektu Atlantik (Teluk Goose)',
         'America/Grand_Turk' => 'Wektu sisih Wetan (Grand Turk)',
         'America/Grenada' => 'Wektu Atlantik (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Wektu sisih Wetan (Vincennes [Indiana])',
         'America/Indiana/Winamac' => 'Wektu sisih Wetan (Winamac [Indiana])',
         'America/Indianapolis' => 'Wektu sisih Wetan (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Wektu sisih Wetan (Indianapolis)',
         'America/Inuvik' => 'Wektu Giri (Inuvik)',
         'America/Iqaluit' => 'Wektu sisih Wetan (Iqaluit)',
         'America/Jamaica' => 'Wektu sisih Wetan (Jamaica)',
         'America/Jujuy' => 'Wektu Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Wektu Argentina (Jujuy)',
         'America/Juneau' => 'Wektu Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Wektu sisih Wetan (Monticello [Kentucky])',
         'America/Kralendijk' => 'Wektu Atlantik (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Wektu Peru (Lima)',
         'America/Los_Angeles' => 'Wektu Pasifik (Los Angeles)',
         'America/Louisville' => 'Wektu sisih Wetan (Louisville)',
+        'America/Kentucky/Louisville' => 'Wektu sisih Wetan (Louisville)',
         'America/Lower_Princes' => 'Wektu Atlantik (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Wektu Brasilia (Maceio)',
+        'America/Maceio' => 'Wektu Brasilia (Maceió)',
         'America/Managua' => 'Wektu Tengah (Managua)',
         'America/Manaus' => 'Wektu Amazon (Manaus)',
         'America/Marigot' => 'Wektu Atlantik (Marigot)',
         'America/Martinique' => 'Wektu Atlantik (Martinik)',
         'America/Matamoros' => 'Wektu Tengah (Matamoros)',
-        'America/Mazatlan' => 'Wektu Pasifik Meksiko (Mazatlan)',
+        'America/Mazatlan' => 'Wektu Pasifik Meksiko (Mazatlán)',
         'America/Mendoza' => 'Wektu Argentina (Mendosa)',
+        'America/Argentina/Mendoza' => 'Wektu Argentina (Mendosa)',
         'America/Menominee' => 'Wektu Tengah (Menominee)',
         'America/Merida' => 'Wektu Tengah (Merida)',
         'America/Metlakatla' => 'Wektu Alaska (Metlakatla)',
         'America/Mexico_City' => 'Wektu Tengah (Kutho Meksiko)',
-        'America/Miquelon' => 'Wektu Santa Pierre lan Miquelon',
+        'America/Miquelon' => 'Wektu Santa Pierre lan Miquelon (Saint-Pierre)',
         'America/Moncton' => 'Wektu Atlantik (Moncton)',
         'America/Monterrey' => 'Wektu Tengah (Monterrey)',
         'America/Montevideo' => 'Wektu Uruguay (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Wektu Tengah (Regina)',
         'America/Resolute' => 'Wektu Tengah (Resolute)',
         'America/Rio_Branco' => 'Wektu Brasil (Rio Branco)',
-        'America/Santarem' => 'Wektu Brasilia (Santarem)',
+        'America/Santarem' => 'Wektu Brasilia (Santarém)',
         'America/Santiago' => 'Wektu Chili (Santiago)',
         'America/Santo_Domingo' => 'Wektu Atlantik (Santo Domingo)',
-        'America/Sao_Paulo' => 'Wektu Brasilia (Sao Paulo)',
+        'America/Sao_Paulo' => 'Wektu Brasilia (São Paulo)',
         'America/Scoresbysund' => 'Wektu Greenland (Ittoqqortoormiit)',
         'America/Sitka' => 'Wektu Alaska (Sitka)',
         'America/St_Barthelemy' => 'Wektu Atlantik (Santa Barthelemy)',
@@ -199,13 +210,13 @@
         'America/Yakutat' => 'Wektu Alaska (Yakutat)',
         'Antarctica/Casey' => 'Wektu Australia sisih Kulon (Casey)',
         'Antarctica/Davis' => 'Wektu Davis',
-        'Antarctica/DumontDUrville' => 'Wektu Dumont-d’Urville',
+        'Antarctica/DumontDUrville' => 'Wektu Dumont d’Urville',
         'Antarctica/Macquarie' => 'Wektu Australia sisih Wetan (Macquarie)',
         'Antarctica/Mawson' => 'Wektu Mawson',
         'Antarctica/McMurdo' => 'Wektu Selandia Anyar (McMurdo)',
         'Antarctica/Palmer' => 'Wektu Chili (Palmer)',
         'Antarctica/Rothera' => 'Wektu Rothera',
-        'Antarctica/Syowa' => 'Wektu Syowa',
+        'Antarctica/Syowa' => 'Wektu Syowa (Showa)',
         'Antarctica/Troll' => 'Wektu Rerata Greenwich (Troll)',
         'Antarctica/Vostok' => 'Wektu Vostok',
         'Arctic/Longyearbyen' => 'Wektu Eropa Tengah (Longyearbyen)',
@@ -221,23 +232,24 @@
         'Asia/Bahrain' => 'Wektu Arab (Bahrain)',
         'Asia/Baku' => 'Wektu Azerbaijan (Baku)',
         'Asia/Bangkok' => 'Wektu Indocina (Bangkok)',
-        'Asia/Barnaul' => 'Wektu Rusia (Barnaul)',
+        'Asia/Barnaul' => 'Wektu Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Wektu Eropa sisih Wetan (Beirut)',
         'Asia/Bishkek' => 'Wektu Kirgizstan (Bishkek)',
-        'Asia/Brunei' => 'Wektu Brunai Darussalam (Brunei)',
+        'Asia/Brunei' => 'Wektu Brunei',
         'Asia/Calcutta' => 'Wektu Standar India (Kalkuta)',
+        'Asia/Kolkata' => 'Wektu Standar India (Kalkuta)',
         'Asia/Chita' => 'Wektu Yakutsk (Chita)',
         'Asia/Colombo' => 'Wektu Standar India (Kolombo)',
         'Asia/Damascus' => 'Wektu Eropa sisih Wetan (Damaskus)',
         'Asia/Dhaka' => 'Wektu Bangladesh (Dhaka)',
-        'Asia/Dili' => 'Wektu Timor Leste (Dili)',
+        'Asia/Dili' => 'Wektu Timor-Leste (Dili)',
         'Asia/Dubai' => 'Wektu Standar Teluk (Dubai)',
         'Asia/Dushanbe' => 'Wektu Tajikistan (Dushanbe)',
         'Asia/Famagusta' => 'Wektu Eropa sisih Wetan (Famagusta)',
         'Asia/Gaza' => 'Wektu Eropa sisih Wetan (Gaza)',
         'Asia/Hebron' => 'Wektu Eropa sisih Wetan (Hebron)',
         'Asia/Hong_Kong' => 'Wektu Hong Kong',
-        'Asia/Hovd' => 'Wektu Hovd',
+        'Asia/Hovd' => 'Wektu Hovd (Khovd)',
         'Asia/Irkutsk' => 'Wektu Irkutsk',
         'Asia/Jakarta' => 'Wektu Indonesia sisih Kulon (Jakarta)',
         'Asia/Jayapura' => 'Wektu Indonesia sisih Wetan (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Wektu Rusia (Kamchatka)',
         'Asia/Karachi' => 'Wektu Pakistan (Karachi)',
         'Asia/Katmandu' => 'Wektu Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Wektu Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Wektu Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Wektu Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Wektu Malaysia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Wektu Standar Teluk (Muscat)',
         'Asia/Nicosia' => 'Wektu Eropa sisih Wetan (Nicosia)',
         'Asia/Novokuznetsk' => 'Wektu Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Wektu Novosibirsk',
+        'Asia/Novosibirsk' => 'Wektu Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Wektu Omsk',
         'Asia/Oral' => 'Wektu Kazakhstan (Oral)',
         'Asia/Phnom_Penh' => 'Wektu Indocina (Phnom Penh)',
@@ -268,23 +281,25 @@
         'Asia/Qostanay' => 'Wektu Kazakhstan (Kostanai)',
         'Asia/Qyzylorda' => 'Wektu Kazakhstan (Qyzylorda)',
         'Asia/Rangoon' => 'Wektu Myanmar (Yangon)',
+        'Asia/Yangon' => 'Wektu Myanmar (Yangon)',
         'Asia/Riyadh' => 'Wektu Arab (Riyadh)',
         'Asia/Saigon' => 'Wektu Indocina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Wektu Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Wektu Indocina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Wektu Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Wektu Usbekistan (Samarkand)',
         'Asia/Seoul' => 'Wektu Korea (Seoul)',
         'Asia/Shanghai' => 'Wektu Cina (Shanghai)',
         'Asia/Singapore' => 'Wektu Singapura',
         'Asia/Srednekolymsk' => 'Wektu Magadan (Srednekolymsk)',
-        'Asia/Taipei' => 'Wektu Taipei',
+        'Asia/Taipei' => 'Wektu Taiwan (Taipei)',
         'Asia/Tashkent' => 'Wektu Usbekistan (Tashkent)',
         'Asia/Tbilisi' => 'Wektu Georgia (Tbilisi)',
         'Asia/Tehran' => 'Wektu Iran (Teheran)',
         'Asia/Thimphu' => 'Wektu Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Wektu Jepang (Tokyo)',
-        'Asia/Tomsk' => 'Wektu Rusia (Tomsk)',
+        'Asia/Tomsk' => 'Wektu Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Wektu Ulaanbaatar',
-        'Asia/Urumqi' => 'Wektu Tyongkok (Urumqi)',
+        'Asia/Urumqi' => 'Wektu Tyongkok (Ürümqi)',
         'Asia/Ust-Nera' => 'Wektu Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Wektu Indocina (Vientiane)',
         'Asia/Vladivostok' => 'Wektu Vladivostok',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Wektu Eropa sisih Kulon (Kanari)',
         'Atlantic/Cape_Verde' => 'Wektu Tanjung Verde (Kape Verde)',
         'Atlantic/Faeroe' => 'Wektu Eropa sisih Kulon (Faroe)',
+        'Atlantic/Faroe' => 'Wektu Eropa sisih Kulon (Faroe)',
         'Atlantic/Madeira' => 'Wektu Eropa sisih Kulon (Madeira)',
         'Atlantic/Reykjavik' => 'Wektu Rerata Greenwich (Reykjavik)',
         'Atlantic/South_Georgia' => 'Wektu Georgia Kidul',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Wektu Universal Kakoordhinasi',
         'Europe/Amsterdam' => 'Wektu Eropa Tengah (Amsterdam)',
         'Europe/Andorra' => 'Wektu Eropa Tengah (Andorra)',
-        'Europe/Astrakhan' => 'Wektu Moscow (Astrakhan)',
+        'Europe/Astrakhan' => 'Wektu Rusia (Astrakhan)',
         'Europe/Athens' => 'Wektu Eropa sisih Wetan (Athena)',
         'Europe/Belgrade' => 'Wektu Eropa Tengah (Belgrade)',
         'Europe/Berlin' => 'Wektu Eropa Tengah (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Wektu Eropa Tengah (Brussels)',
         'Europe/Bucharest' => 'Wektu Eropa sisih Wetan (Bucharest)',
         'Europe/Budapest' => 'Wektu Eropa Tengah (Budapest)',
-        'Europe/Busingen' => 'Wektu Eropa Tengah (Busingen)',
-        'Europe/Chisinau' => 'Wektu Eropa sisih Wetan (Chisinau)',
+        'Europe/Busingen' => 'Wektu Eropa Tengah (Büsingen)',
+        'Europe/Chisinau' => 'Wektu Eropa sisih Wetan (Chișinău)',
         'Europe/Copenhagen' => 'Wektu Eropa Tengah (Kopenhagen)',
         'Europe/Dublin' => 'Wektu Rerata Greenwich (Dublin)',
         'Europe/Gibraltar' => 'Wektu Eropa Tengah (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Wektu Rerata Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Wektu Eropa sisih Wetan (Kaliningrad)',
         'Europe/Kiev' => 'Wektu Eropa sisih Wetan (Kiev)',
-        'Europe/Kirov' => 'Wektu Rusia (Kirov)',
+        'Europe/Kyiv' => 'Wektu Eropa sisih Wetan (Kiev)',
+        'Europe/Kirov' => 'Wektu Moscow (Kirov)',
         'Europe/Lisbon' => 'Wektu Eropa sisih Kulon (Lisbon)',
         'Europe/Ljubljana' => 'Wektu Eropa Tengah (Ljubljana)',
         'Europe/London' => 'Wektu Rerata Greenwich (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Wektu Rusia (Samara)',
         'Europe/San_Marino' => 'Wektu Eropa Tengah (San Marino)',
         'Europe/Sarajevo' => 'Wektu Eropa Tengah (Sarajevo)',
-        'Europe/Saratov' => 'Wektu Moscow (Saratov)',
+        'Europe/Saratov' => 'Wektu Rusia (Saratov)',
         'Europe/Simferopol' => 'Wektu Moscow (Simferopol)',
         'Europe/Skopje' => 'Wektu Eropa Tengah (Skopje)',
         'Europe/Sofia' => 'Wektu Eropa sisih Wetan (Sofia)',
         'Europe/Stockholm' => 'Wektu Eropa Tengah (Stockholm)',
         'Europe/Tallinn' => 'Wektu Eropa sisih Wetan (Tallinn)',
-        'Europe/Tirane' => 'Wektu Eropa Tengah (Tirane)',
-        'Europe/Ulyanovsk' => 'Wektu Moscow (Ulyanovsk)',
+        'Europe/Tirane' => 'Wektu Eropa Tengah (Tirana)',
+        'Europe/Ulyanovsk' => 'Wektu Rusia (Ulyanovsk)',
         'Europe/Vaduz' => 'Wektu Eropa Tengah (Vaduz)',
         'Europe/Vatican' => 'Wektu Eropa Tengah (Vatikan)',
         'Europe/Vienna' => 'Wektu Eropa Tengah (Vienna)',
         'Europe/Vilnius' => 'Wektu Eropa sisih Wetan (Vilnius)',
-        'Europe/Volgograd' => 'Wektu Volgograd',
+        'Europe/Volgograd' => 'Wektu Moscow (Volgograd)',
         'Europe/Warsaw' => 'Wektu Eropa Tengah (Warsaw)',
         'Europe/Zagreb' => 'Wektu Eropa Tengah (Zagreb)',
         'Europe/Zurich' => 'Wektu Eropa Tengah (Zurich)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Wektu Kepuloan Cocos',
         'Indian/Comoro' => 'Wektu Afrika Wetan (Komoro)',
         'Indian/Kerguelen' => 'Wektu Antartika lan Prancis sisih Kidul (Kerguelen)',
-        'Indian/Mahe' => 'Wektu Seichelles (Mahe)',
+        'Indian/Mahe' => 'Wektu Seichelles (Mahé)',
         'Indian/Maldives' => 'Wektu Maladewa',
         'Indian/Mauritius' => 'Wektu Mauritius',
         'Indian/Mayotte' => 'Wektu Afrika Wetan (Mayotte)',
@@ -389,29 +406,31 @@
         'Pacific/Chatham' => 'Wektu Chatham',
         'Pacific/Easter' => 'Wektu Pulo Paskah',
         'Pacific/Efate' => 'Wektu Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Wektu Kepuloan Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Wektu Kepuloan Phoenix (Canton)',
+        'Pacific/Kanton' => 'Wektu Kepuloan Phoenix (Canton)',
         'Pacific/Fakaofo' => 'Wektu Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Wektu Fiji',
         'Pacific/Funafuti' => 'Wektu Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Wektu Galapagos',
+        'Pacific/Galapagos' => 'Wektu Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Wektu Gambier',
         'Pacific/Guadalcanal' => 'Wektu Kepuloan Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Wektu Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Wektu Hawaii-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Wektu Standar Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Wektu Kepuloan Line (Kiritimati)',
         'Pacific/Kosrae' => 'Wektu Kosrae',
         'Pacific/Kwajalein' => 'Wektu Kepuloan Marshall (Kwajalein)',
         'Pacific/Majuro' => 'Wektu Kepuloan Marshall (Majuro)',
         'Pacific/Marquesas' => 'Wektu Marquesas',
-        'Pacific/Midway' => 'Wektu Samoa (Midway)',
+        'Pacific/Midway' => 'Wektu Samoa Amerika (Midway)',
         'Pacific/Nauru' => 'Wektu Nauru',
         'Pacific/Niue' => 'Wektu Niue',
         'Pacific/Norfolk' => 'Wektu Pulo Norfolk',
-        'Pacific/Noumea' => 'Wektu Kaledonia Anyar (Noumea)',
-        'Pacific/Pago_Pago' => 'Wektu Samoa (Pago Pago)',
+        'Pacific/Noumea' => 'Wektu Kaledonia Anyar (Nouméa)',
+        'Pacific/Pago_Pago' => 'Wektu Samoa Amerika (Pago Pago)',
         'Pacific/Palau' => 'Wektu Palau',
         'Pacific/Pitcairn' => 'Wektu Pitcairn',
-        'Pacific/Ponape' => 'Wektu Ponape (Pohnpei)',
+        'Pacific/Ponape' => 'Wektu Pohnpei',
+        'Pacific/Pohnpei' => 'Wektu Pohnpei',
         'Pacific/Port_Moresby' => 'Wektu Papua Nugini (Pelabuhan Moresby)',
         'Pacific/Rarotonga' => 'Wektu Kepuloan Cook (Rarotonga)',
         'Pacific/Saipan' => 'Wektu Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Wektu Kepuloan Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Wektu Tonga (Tongatapu)',
         'Pacific/Truk' => 'Wektu Chuuk',
+        'Pacific/Chuuk' => 'Wektu Chuuk',
         'Pacific/Wake' => 'Wektu Pulo Wake',
-        'Pacific/Wallis' => 'Wektu Wallis lan Futuna',
+        'Pacific/Wallis' => 'Wektu Wallis lan Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ka.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ka.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ka.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ka.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'აღმოსავლეთ აფრიკის დრო (ადის-აბება)',
         'Africa/Algiers' => 'ცენტრალური ევროპის დრო (ალჟირი)',
         'Africa/Asmera' => 'აღმოსავლეთ აფრიკის დრო (ასმარა)',
+        'Africa/Asmara' => 'აღმოსავლეთ აფრიკის დრო (ასმარა)',
         'Africa/Bamako' => 'გრინვიჩის საშუალო დრო (ბამაკო)',
         'Africa/Bangui' => 'დასავლეთ აფრიკის დრო (ბანგი)',
         'Africa/Banjul' => 'გრინვიჩის საშუალო დრო (ბანჯული)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'კოლუმბიის დრო (ბოგოტა)',
         'America/Boise' => 'ჩრდილოეთ ამერიკის მაუნთინის დრო (ბუასი)',
         'America/Buenos_Aires' => 'არგენტინის დრო (ბუენოს-აირესი)',
+        'America/Argentina/Buenos_Aires' => 'არგენტინის დრო (ბუენოს-აირესი)',
         'America/Cambridge_Bay' => 'ჩრდილოეთ ამერიკის მაუნთინის დრო (კემბრიჯ ბეი)',
         'America/Campo_Grande' => 'ამაზონიის დრო (კამპო გრანდე)',
         'America/Cancun' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (კანკუნი)',
         'America/Caracas' => 'ვენესუელის დრო (კარაკასი)',
         'America/Catamarca' => 'არგენტინის დრო (კატამარკა)',
+        'America/Argentina/Catamarca' => 'არგენტინის დრო (კატამარკა)',
         'America/Cayenne' => 'საფრანგეთის გვიანის დრო (კაიენა)',
         'America/Cayman' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (კაიმანი)',
         'America/Chicago' => 'ჩრდილოეთ ამერიკის ცენტრალური დრო (ჩიკაგო)',
         'America/Chihuahua' => 'ჩრდილოეთ ამერიკის ცენტრალური დრო (ჩიჰუაჰუა)',
         'America/Ciudad_Juarez' => 'ჩრდილოეთ ამერიკის მაუნთინის დრო (სიუდად-ხუარესი)',
         'America/Coral_Harbour' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (ატიკოკანი)',
+        'America/Atikokan' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (ატიკოკანი)',
         'America/Cordoba' => 'არგენტინის დრო (კორდობა)',
+        'America/Argentina/Cordoba' => 'არგენტინის დრო (კორდობა)',
         'America/Costa_Rica' => 'ჩრდილოეთ ამერიკის ცენტრალური დრო (კოსტა-რიკა)',
+        'America/Coyhaique' => 'ჩილეს დრო (კოიჰაიკე)',
         'America/Creston' => 'ჩრდილოეთ ამერიკის მაუნთინის დრო (კრესტონი)',
         'America/Cuiaba' => 'ამაზონიის დრო (კუიაბა)',
         'America/Curacao' => 'ატლანტიკის ოკეანის დრო (კიურასაო)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ბრაზილიის დრო (ფორტალეზა)',
         'America/Glace_Bay' => 'ატლანტიკის ოკეანის დრო (გლეის ბეი)',
         'America/Godthab' => 'დრო: გრენლანდია (გოდთები)',
+        'America/Nuuk' => 'დრო: გრენლანდია (გოდთები)',
         'America/Goose_Bay' => 'ატლანტიკის ოკეანის დრო (გუზ ბეი)',
         'America/Grand_Turk' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (გრანდ-ტურკი)',
         'America/Grenada' => 'ატლანტიკის ოკეანის დრო (გრენადა)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (ვინსენი, ინდიანა)',
         'America/Indiana/Winamac' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (უინემაკი, ინდიანა)',
         'America/Indianapolis' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (ინდიანაპოლისი)',
+        'America/Indiana/Indianapolis' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (ინდიანაპოლისი)',
         'America/Inuvik' => 'ჩრდილოეთ ამერიკის მაუნთინის დრო (ინუვიკი)',
         'America/Iqaluit' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (იქალუიტი)',
         'America/Jamaica' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (იამაიკა)',
         'America/Jujuy' => 'არგენტინის დრო (ჯუჯუი)',
+        'America/Argentina/Jujuy' => 'არგენტინის დრო (ჯუჯუი)',
         'America/Juneau' => 'ალასკის დრო (ჯუნო)',
         'America/Kentucky/Monticello' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (მონტიჩელო, კენტუკი)',
         'America/Kralendijk' => 'ატლანტიკის ოკეანის დრო (კრალენდიიკი)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'პერუს დრო (ლიმა)',
         'America/Los_Angeles' => 'ჩრდილოეთ ამერიკის წყნარი ოკეანის დრო (ლოს-ანჯელესი)',
         'America/Louisville' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (ლუისვილი)',
+        'America/Kentucky/Louisville' => 'ჩრდილოეთ ამერიკის აღმოსავლეთის დრო (ლუისვილი)',
         'America/Lower_Princes' => 'ატლანტიკის ოკეანის დრო (ლოერ პრინც კვორტერი)',
         'America/Maceio' => 'ბრაზილიის დრო (მასეიო)',
         'America/Managua' => 'ჩრდილოეთ ამერიკის ცენტრალური დრო (მანაგუა)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'ჩრდილოეთ ამერიკის ცენტრალური დრო (მატამოროსი)',
         'America/Mazatlan' => 'მექსიკის წყნარი ოკეანის დრო (მაზატლანი)',
         'America/Mendoza' => 'არგენტინის დრო (მენდოზა)',
+        'America/Argentina/Mendoza' => 'არგენტინის დრო (მენდოზა)',
         'America/Menominee' => 'ჩრდილოეთ ამერიკის ცენტრალური დრო (მენომინი)',
         'America/Merida' => 'ჩრდილოეთ ამერიკის ცენტრალური დრო (მერიდა)',
         'America/Metlakatla' => 'ალასკის დრო (მეტლაკატლა)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'არაბეთის დრო (ბაჰრეინი)',
         'Asia/Baku' => 'აზერბაიჯანის დრო (ბაქო)',
         'Asia/Bangkok' => 'ინდოჩინეთის დრო (ბანგკოკი)',
-        'Asia/Barnaul' => 'დრო: რუსეთი (ბარნაული)',
+        'Asia/Barnaul' => 'კრასნოიარსკის დრო (ბარნაული)',
         'Asia/Beirut' => 'აღმოსავლეთ ევროპის დრო (ბეირუთი)',
         'Asia/Bishkek' => 'ყირგიზეთის დრო (ბიშკეკი)',
         'Asia/Brunei' => 'ბრუნეი-დარუსალამის დრო',
         'Asia/Calcutta' => 'ინდოეთის დრო (კალკუტა)',
+        'Asia/Kolkata' => 'ინდოეთის დრო (კალკუტა)',
         'Asia/Chita' => 'იაკუტსკის დრო (ჩიტა)',
         'Asia/Colombo' => 'ინდოეთის დრო (კოლომბო)',
         'Asia/Damascus' => 'აღმოსავლეთ ევროპის დრო (დამასკი)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'დრო: რუსეთი (კამჩატკა)',
         'Asia/Karachi' => 'პაკისტანის დრო (კარაჩი)',
         'Asia/Katmandu' => 'ნეპალის დრო (კატმანდუ)',
+        'Asia/Kathmandu' => 'ნეპალის დრო (კატმანდუ)',
         'Asia/Khandyga' => 'იაკუტსკის დრო (ხანდიგა)',
         'Asia/Krasnoyarsk' => 'კრასნოიარსკის დრო',
         'Asia/Kuala_Lumpur' => 'მალაიზიის დრო (კუალა-ლუმპური)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'სპარსეთის ყურის სტანდარტული დრო (მუსკატი)',
         'Asia/Nicosia' => 'აღმოსავლეთ ევროპის დრო (ნიკოსია)',
         'Asia/Novokuznetsk' => 'კრასნოიარსკის დრო (ნოვოკუზნეცკი)',
-        'Asia/Novosibirsk' => 'ნოვოსიბირსკის დრო',
+        'Asia/Novosibirsk' => 'კრასნოიარსკის დრო (ნოვოსიბირსკი)',
         'Asia/Omsk' => 'ომსკის დრო',
         'Asia/Oral' => 'ყაზახეთის დრო (ორალი)',
         'Asia/Phnom_Penh' => 'ინდოჩინეთის დრო (პნომპენი)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'ყაზახეთის დრო (კოსტანაი)',
         'Asia/Qyzylorda' => 'ყაზახეთის დრო (ყიზილორდა)',
         'Asia/Rangoon' => 'მიანმარის დრო (რანგუნი)',
+        'Asia/Yangon' => 'მიანმარის დრო (რანგუნი)',
         'Asia/Riyadh' => 'არაბეთის დრო (ერ-რიადი)',
         'Asia/Saigon' => 'ინდოჩინეთის დრო (ჰოჩიმინი)',
-        'Asia/Sakhalin' => 'სახალინის დრო',
+        'Asia/Ho_Chi_Minh' => 'ინდოჩინეთის დრო (ჰოჩიმინი)',
+        'Asia/Sakhalin' => 'მაგადანის დრო (სახალინი)',
         'Asia/Samarkand' => 'უზბეკეთის დრო (სამარყანდი)',
         'Asia/Seoul' => 'კორეის დრო (სეული)',
         'Asia/Shanghai' => 'ჩინეთის დრო (შანხაი)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ირანის დრო (თეირანი)',
         'Asia/Thimphu' => 'ბუტანის დრო (თხიმფხუ)',
         'Asia/Tokyo' => 'იაპონიის დრო (ტოკიო)',
-        'Asia/Tomsk' => 'დრო: რუსეთი (ტომსკი)',
+        'Asia/Tomsk' => 'კრასნოიარსკის დრო (ტომსკი)',
         'Asia/Ulaanbaatar' => 'ულან-ბატორის დრო (ულანბატარი)',
         'Asia/Urumqi' => 'დრო: ჩინეთი (ურუმქი)',
         'Asia/Ust-Nera' => 'ვლადივოსტოკის დრო (უსტ-ნერა)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'დასავლეთ ევროპის დრო (კანარი)',
         'Atlantic/Cape_Verde' => 'კაბო-ვერდეს დრო',
         'Atlantic/Faeroe' => 'დასავლეთ ევროპის დრო (ფარერის კუნძულები)',
+        'Atlantic/Faroe' => 'დასავლეთ ევროპის დრო (ფარერის კუნძულები)',
         'Atlantic/Madeira' => 'დასავლეთ ევროპის დრო (მადეირა)',
         'Atlantic/Reykjavik' => 'გრინვიჩის საშუალო დრო (რეიკიავიკი)',
         'Atlantic/South_Georgia' => 'სამხრეთ გეორგიის დრო (სამხრეთ ჯორჯია)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'მსოფლიო კოორდინირებული დრო',
         'Europe/Amsterdam' => 'ცენტრალური ევროპის დრო (ამსტერდამი)',
         'Europe/Andorra' => 'ცენტრალური ევროპის დრო (ანდორა)',
-        'Europe/Astrakhan' => 'მოსკოვის დრო (ასტრახანი)',
+        'Europe/Astrakhan' => 'დრო: რუსეთი (ასტრახანი)',
         'Europe/Athens' => 'აღმოსავლეთ ევროპის დრო (ათენი)',
         'Europe/Belgrade' => 'ცენტრალური ევროპის დრო (ბელგრადი)',
         'Europe/Berlin' => 'ცენტრალური ევროპის დრო (ბერლინი)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'გრინვიჩის საშუალო დრო (ჯერსი)',
         'Europe/Kaliningrad' => 'აღმოსავლეთ ევროპის დრო (კალინინგრადი)',
         'Europe/Kiev' => 'აღმოსავლეთ ევროპის დრო (კიევი)',
-        'Europe/Kirov' => 'დრო: რუსეთი (კიროვი)',
+        'Europe/Kyiv' => 'აღმოსავლეთ ევროპის დრო (კიევი)',
+        'Europe/Kirov' => 'მოსკოვის დრო (კიროვი)',
         'Europe/Lisbon' => 'დასავლეთ ევროპის დრო (ლისაბონი)',
         'Europe/Ljubljana' => 'ცენტრალური ევროპის დრო (ლიუბლიანა)',
         'Europe/London' => 'გრინვიჩის საშუალო დრო (ლონდონი)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'დრო: რუსეთი (სამარა)',
         'Europe/San_Marino' => 'ცენტრალური ევროპის დრო (სან-მარინო)',
         'Europe/Sarajevo' => 'ცენტრალური ევროპის დრო (სარაევო)',
-        'Europe/Saratov' => 'მოსკოვის დრო (სარატოვი)',
+        'Europe/Saratov' => 'დრო: რუსეთი (სარატოვი)',
         'Europe/Simferopol' => 'მოსკოვის დრო (სიმფეროპოლი)',
         'Europe/Skopje' => 'ცენტრალური ევროპის დრო (სკოპიე)',
         'Europe/Sofia' => 'აღმოსავლეთ ევროპის დრო (სოფია)',
         'Europe/Stockholm' => 'ცენტრალური ევროპის დრო (სტოკჰოლმი)',
         'Europe/Tallinn' => 'აღმოსავლეთ ევროპის დრო (ტალინი)',
         'Europe/Tirane' => 'ცენტრალური ევროპის დრო (ტირანა)',
-        'Europe/Ulyanovsk' => 'მოსკოვის დრო (ულიანოვსკი)',
+        'Europe/Ulyanovsk' => 'დრო: რუსეთი (ულიანოვსკი)',
         'Europe/Vaduz' => 'ცენტრალური ევროპის დრო (ვადუცი)',
         'Europe/Vatican' => 'ცენტრალური ევროპის დრო (ვატიკანი)',
         'Europe/Vienna' => 'ცენტრალური ევროპის დრო (ვენა)',
         'Europe/Vilnius' => 'აღმოსავლეთ ევროპის დრო (ვილნიუსი)',
-        'Europe/Volgograd' => 'ვოლგოგრადის დრო',
+        'Europe/Volgograd' => 'მოსკოვის დრო (ვოლგოგრადი)',
         'Europe/Warsaw' => 'ცენტრალური ევროპის დრო (ვარშავა)',
         'Europe/Zagreb' => 'ცენტრალური ევროპის დრო (ზაგრები)',
         'Europe/Zurich' => 'ცენტრალური ევროპის დრო (ციურიხი)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'ჩატემის დრო (ჩათამი)',
         'Pacific/Easter' => 'აღდგომის კუნძულის დრო (ისთერი)',
         'Pacific/Efate' => 'ვანუატუს დრო (ეფატე)',
-        'Pacific/Enderbury' => 'ფენიქსის კუნძულების დრო (ენდერბური)',
+        'Pacific/Enderbury' => 'ფენიქსის კუნძულების დრო (კანტონი)',
+        'Pacific/Kanton' => 'ფენიქსის კუნძულების დრო (კანტონი)',
         'Pacific/Fakaofo' => 'ტოკელაუს დრო (ფაკაოფო)',
         'Pacific/Fiji' => 'ფიჯის დრო',
         'Pacific/Funafuti' => 'ტუვალუს დრო (ფუნაფუტი)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'გამბიერის დრო',
         'Pacific/Guadalcanal' => 'სოლომონის კუნძულების დრო (გვადალკანალი)',
         'Pacific/Guam' => 'ჩამოროს დრო (გუამი)',
-        'Pacific/Honolulu' => 'ჰავაისა და ალეუტის დრო (ჰონოლულუ)',
+        'Pacific/Honolulu' => 'ჰავაისა და ალეუტის სტანდარტული დრო (ჰონოლულუ)',
         'Pacific/Kiritimati' => 'ლაინის კუნძულების დრო (კირიტიმატი)',
         'Pacific/Kosrae' => 'კოსრეს დრო (კოსრაე)',
         'Pacific/Kwajalein' => 'მარშალის კუნძულების დრო (კვაჯალეინი)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'პალაუს დრო',
         'Pacific/Pitcairn' => 'პიტკერნის დრო',
         'Pacific/Ponape' => 'პონაპეს დრო (პონპეი)',
+        'Pacific/Pohnpei' => 'პონაპეს დრო (პონპეი)',
         'Pacific/Port_Moresby' => 'პაპუა-ახალი გვინეის დრო (პორტ მორსბი)',
         'Pacific/Rarotonga' => 'კუკის კუნძულების დრო (რაროტონგა)',
         'Pacific/Saipan' => 'ჩამოროს დრო (საიპანი)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'გილბერტის კუნძულების დრო (ტარაუა)',
         'Pacific/Tongatapu' => 'ტონგის დრო (ტონგატაპუ)',
         'Pacific/Truk' => 'ჩუუკის დრო',
+        'Pacific/Chuuk' => 'ჩუუკის დრო',
         'Pacific/Wake' => 'ვეიკის კუნძულის დრო (უეიკი)',
         'Pacific/Wallis' => 'ვოლისი და ფუტუნას დრო (ვალისი)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kk_Arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kk_Arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kk_Arab.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kk_Arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,446 @@
+<?php
+
+return [
+    'Names' => [
+        'Africa/Abidjan' => 'گرينۆيچ ۋاقىتى (ابيدجان)',
+        'Africa/Accra' => 'گرينۆيچ ۋاقىتى (اككرا)',
+        'Africa/Addis_Ababa' => 'شىعىس افريكا ۋاقىتى (ادديس-ابەبا)',
+        'Africa/Algiers' => 'ورتالىق ەۋروپا ۋاقىتى (الجير)',
+        'Africa/Asmera' => 'شىعىس افريكا ۋاقىتى (اسمارا)',
+        'Africa/Asmara' => 'شىعىس افريكا ۋاقىتى (اسمارا)',
+        'Africa/Bamako' => 'گرينۆيچ ۋاقىتى (باماكو)',
+        'Africa/Bangui' => 'باتىس افريكا ۋاقىتى (بانگي)',
+        'Africa/Banjul' => 'گرينۆيچ ۋاقىتى (بانجۋل)',
+        'Africa/Bissau' => 'گرينۆيچ ۋاقىتى (بيساۋ)',
+        'Africa/Blantyre' => 'ورتالىق افريكا ۋاقىتى (بلانتاير)',
+        'Africa/Brazzaville' => 'باتىس افريكا ۋاقىتى (براززاۆيل)',
+        'Africa/Bujumbura' => 'ورتالىق افريكا ۋاقىتى (بۋجۋمبۋرا)',
+        'Africa/Cairo' => 'شىعىس ەۋروپا ۋاقىتى (كاير)',
+        'Africa/Casablanca' => 'باتىس ەۋروپا ۋاقىتى (كاسابلانكا)',
+        'Africa/Ceuta' => 'ورتالىق ەۋروپا ۋاقىتى (سەۋتا)',
+        'Africa/Conakry' => 'گرينۆيچ ۋاقىتى (كوناكري)',
+        'Africa/Dakar' => 'گرينۆيچ ۋاقىتى (داكار)',
+        'Africa/Dar_es_Salaam' => 'شىعىس افريكا ۋاقىتى (دار-ەس-سالام)',
+        'Africa/Djibouti' => 'شىعىس افريكا ۋاقىتى (جيبۋتي)',
+        'Africa/Douala' => 'باتىس افريكا ۋاقىتى (دۋالا)',
+        'Africa/El_Aaiun' => 'باتىس ەۋروپا ۋاقىتى (ەل-ايۋن)',
+        'Africa/Freetown' => 'گرينۆيچ ۋاقىتى (فريتاۋن)',
+        'Africa/Gaborone' => 'ورتالىق افريكا ۋاقىتى (گابورونە)',
+        'Africa/Harare' => 'ورتالىق افريكا ۋاقىتى (حارارە)',
+        'Africa/Johannesburg' => 'وڭتۇستىك افريكا ستاندارتتى ۋاقىتى (يوحاننەسبۋرگ)',
+        'Africa/Juba' => 'ورتالىق افريكا ۋاقىتى (جۋبا)',
+        'Africa/Kampala' => 'شىعىس افريكا ۋاقىتى (كامپالا)',
+        'Africa/Khartoum' => 'ورتالىق افريكا ۋاقىتى (حارتۋم)',
+        'Africa/Kigali' => 'ورتالىق افريكا ۋاقىتى (كيگالي)',
+        'Africa/Kinshasa' => 'باتىس افريكا ۋاقىتى (كينشاسا)',
+        'Africa/Lagos' => 'باتىس افريكا ۋاقىتى (لاگوس)',
+        'Africa/Libreville' => 'باتىس افريكا ۋاقىتى (ليبرەۆيل)',
+        'Africa/Lome' => 'گرينۆيچ ۋاقىتى (لومە)',
+        'Africa/Luanda' => 'باتىس افريكا ۋاقىتى (لۋاندا)',
+        'Africa/Lubumbashi' => 'ورتالىق افريكا ۋاقىتى (لۋبۋمباشي)',
+        'Africa/Lusaka' => 'ورتالىق افريكا ۋاقىتى (لۋساكا)',
+        'Africa/Malabo' => 'باتىس افريكا ۋاقىتى (مالابو)',
+        'Africa/Maputo' => 'ورتالىق افريكا ۋاقىتى (ماپۋتۋ)',
+        'Africa/Maseru' => 'وڭتۇستىك افريكا ستاندارتتى ۋاقىتى (ماسەرۋ)',
+        'Africa/Mbabane' => 'وڭتۇستىك افريكا ستاندارتتى ۋاقىتى (مبابەنە)',
+        'Africa/Mogadishu' => 'شىعىس افريكا ۋاقىتى (موگاديشۋ)',
+        'Africa/Monrovia' => 'گرينۆيچ ۋاقىتى (مونروۆيا)',
+        'Africa/Nairobi' => 'شىعىس افريكا ۋاقىتى (نايروبي)',
+        'Africa/Ndjamena' => 'باتىس افريكا ۋاقىتى (ندجامەنا)',
+        'Africa/Niamey' => 'باتىس افريكا ۋاقىتى (نيامەي)',
+        'Africa/Nouakchott' => 'گرينۆيچ ۋاقىتى (نۋاكشوت)',
+        'Africa/Ouagadougou' => 'گرينۆيچ ۋاقىتى (ۋاگادۋگۋ)',
+        'Africa/Porto-Novo' => 'باتىس افريكا ۋاقىتى (پورتو-نوۆو)',
+        'Africa/Sao_Tome' => 'گرينۆيچ ۋاقىتى (سان-تومە)',
+        'Africa/Tripoli' => 'شىعىس ەۋروپا ۋاقىتى (تريپولي)',
+        'Africa/Tunis' => 'ورتالىق ەۋروپا ۋاقىتى (تۋنيس)',
+        'Africa/Windhoek' => 'ورتالىق افريكا ۋاقىتى (ۆيندحۋك)',
+        'America/Adak' => 'گاۆاي جانە الەۋت ارالدارى ۋاقىتى (اداك)',
+        'America/Anchorage' => 'الاسكا ۋاقىتى (انكوريج)',
+        'America/Anguilla' => 'اتلانتيكا ۋاقىتى (انگيليا)',
+        'America/Antigua' => 'اتلانتيكا ۋاقىتى (انتيگۋا)',
+        'America/Araguaina' => 'برازيليا ۋاقىتى (اراگۋاينا)',
+        'America/Argentina/La_Rioja' => 'ارگەنتينا ۋاقىتى (لا-ريوحا)',
+        'America/Argentina/Rio_Gallegos' => 'ارگەنتينا ۋاقىتى (ريو-گالەگوس)',
+        'America/Argentina/Salta' => 'ارگەنتينا ۋاقىتى (سالتا)',
+        'America/Argentina/San_Juan' => 'ارگەنتينا ۋاقىتى (سان-حۋان)',
+        'America/Argentina/San_Luis' => 'ارگەنتينا ۋاقىتى (سان-لۋيس)',
+        'America/Argentina/Tucuman' => 'ارگەنتينا ۋاقىتى (تۋكۋمان)',
+        'America/Argentina/Ushuaia' => 'ارگەنتينا ۋاقىتى (ۋشۋايا)',
+        'America/Aruba' => 'اتلانتيكا ۋاقىتى (ارۋبا)',
+        'America/Asuncion' => 'پاراگۆاي ۋاقىتى (اسۋنسيون)',
+        'America/Bahia' => 'برازيليا ۋاقىتى (بايا)',
+        'America/Bahia_Banderas' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (بايا-دە-باندەراس)',
+        'America/Barbados' => 'اتلانتيكا ۋاقىتى (باربادوس)',
+        'America/Belem' => 'برازيليا ۋاقىتى (بەلەم)',
+        'America/Belize' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (بەليز)',
+        'America/Blanc-Sablon' => 'اتلانتيكا ۋاقىتى (بلانك-سابلون)',
+        'America/Boa_Vista' => 'امازون ۋاقىتى (باو-ۆيستا)',
+        'America/Bogota' => 'كولۋمبيا ۋاقىتى (بوگوتا)',
+        'America/Boise' => 'سولتۇستىك امەريكا تاۋ ۋاقىتى (بويسە)',
+        'America/Buenos_Aires' => 'ارگەنتينا ۋاقىتى (بۋەنوس-ايروس)',
+        'America/Argentina/Buenos_Aires' => 'ارگەنتينا ۋاقىتى (بۋەنوس-ايروس)',
+        'America/Cambridge_Bay' => 'سولتۇستىك امەريكا تاۋ ۋاقىتى (كەمبريج-بەي)',
+        'America/Campo_Grande' => 'امازون ۋاقىتى (كامپۋ-گراندە)',
+        'America/Cancun' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (كانكۋن)',
+        'America/Caracas' => 'ۆەنەسۋەلا ۋاقىتى (كاراكاس)',
+        'America/Catamarca' => 'ارگەنتينا ۋاقىتى (كاتاماركا)',
+        'America/Argentina/Catamarca' => 'ارگەنتينا ۋاقىتى (كاتاماركا)',
+        'America/Cayenne' => 'فرانتسۋز گۆياناسى ۋاقىتى (كايەننا)',
+        'America/Cayman' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (كايمان ارالدارى)',
+        'America/Chicago' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (چيكاگو)',
+        'America/Chihuahua' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (چيۋاۋا)',
+        'America/Ciudad_Juarez' => 'سولتۇستىك امەريكا تاۋ ۋاقىتى (سيۋداد-حۋارەس)',
+        'America/Coral_Harbour' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (اتيكوكان)',
+        'America/Atikokan' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (اتيكوكان)',
+        'America/Cordoba' => 'ارگەنتينا ۋاقىتى (كوردوبا)',
+        'America/Argentina/Cordoba' => 'ارگەنتينا ۋاقىتى (كوردوبا)',
+        'America/Costa_Rica' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (كوستا-ريكا)',
+        'America/Coyhaique' => 'چيلي ۋاقىتى (كويايكە)',
+        'America/Creston' => 'سولتۇستىك امەريكا تاۋ ۋاقىتى (كرەستون)',
+        'America/Cuiaba' => 'امازون ۋاقىتى (كۋيابا)',
+        'America/Curacao' => 'اتلانتيكا ۋاقىتى (كيۋراساو)',
+        'America/Danmarkshavn' => 'گرينۆيچ ۋاقىتى (دانماركسحاۆن)',
+        'America/Dawson' => 'يۋكون ۋاقىتى (دوۋسون)',
+        'America/Dawson_Creek' => 'سولتۇستىك امەريكا تاۋ ۋاقىتى (دوۋسون-كريك)',
+        'America/Denver' => 'سولتۇستىك امەريكا تاۋ ۋاقىتى (دەنۆەر)',
+        'America/Detroit' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (دەترويد)',
+        'America/Dominica' => 'اتلانتيكا ۋاقىتى (دومينيكا)',
+        'America/Edmonton' => 'سولتۇستىك امەريكا تاۋ ۋاقىتى (ەدمونتون)',
+        'America/Eirunepe' => 'برازيليا ۋاقىتى (ەيرۋنەپە)',
+        'America/El_Salvador' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (سالۆادور)',
+        'America/Fort_Nelson' => 'سولتۇستىك امەريكا تاۋ ۋاقىتى (فورت-نەلسون)',
+        'America/Fortaleza' => 'برازيليا ۋاقىتى (فورتالەزا)',
+        'America/Glace_Bay' => 'اتلانتيكا ۋاقىتى (گلەيس-بەي)',
+        'America/Godthab' => 'گرەنلانديا ۋاقىتى (نۋۋك)',
+        'America/Nuuk' => 'گرەنلانديا ۋاقىتى (نۋۋك)',
+        'America/Goose_Bay' => 'اتلانتيكا ۋاقىتى (گۋس-بەي)',
+        'America/Grand_Turk' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (گراند-تەرك)',
+        'America/Grenada' => 'اتلانتيكا ۋاقىتى (گرەنادا)',
+        'America/Guadeloupe' => 'اتلانتيكا ۋاقىتى (گۆادەلۇپا)',
+        'America/Guatemala' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (گۆاتەمالا)',
+        'America/Guayaquil' => 'ەكۆادور ۋاقىتى (گۋاياكيل)',
+        'America/Guyana' => 'گايانا ۋاقىتى',
+        'America/Halifax' => 'اتلانتيكا ۋاقىتى (گاليفاكس)',
+        'America/Havana' => 'كۋبا ۋاقىتى (گاۆانا)',
+        'America/Hermosillo' => 'مەكسيكا تىنىق مۇحيت ۋاقىتى (ەرموسيلو)',
+        'America/Indiana/Knox' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (نوكس، ينديانا)',
+        'America/Indiana/Marengo' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (مارەنگو، ينديانا)',
+        'America/Indiana/Petersburg' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (پيتەرسبەرگ، ينديانا)',
+        'America/Indiana/Tell_City' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (تەلل-سيتي، ينديانا)',
+        'America/Indiana/Vevay' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (ۆيۆەي، ينديانا)',
+        'America/Indiana/Vincennes' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (ۆينسەننەس، ينديانا)',
+        'America/Indiana/Winamac' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (ۋيناماك، ينديانا)',
+        'America/Indianapolis' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (يندياناپوليس)',
+        'America/Indiana/Indianapolis' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (يندياناپوليس)',
+        'America/Inuvik' => 'سولتۇستىك امەريكا تاۋ ۋاقىتى (ينۋۆيك)',
+        'America/Iqaluit' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (يكالۋيت)',
+        'America/Jamaica' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (يامايكا)',
+        'America/Jujuy' => 'ارگەنتينا ۋاقىتى (جۋجۋي)',
+        'America/Argentina/Jujuy' => 'ارگەنتينا ۋاقىتى (جۋجۋي)',
+        'America/Juneau' => 'الاسكا ۋاقىتى (جۋنو)',
+        'America/Kentucky/Monticello' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (مونتيسەللو، كەنتۋككي)',
+        'America/Kralendijk' => 'اتلانتيكا ۋاقىتى (كرالەندەيك)',
+        'America/La_Paz' => 'بوليۆيا ۋاقىتى (لا-پاس)',
+        'America/Lima' => 'پەرۋ ۋاقىتى (ليما)',
+        'America/Los_Angeles' => 'سولتۇستىك امەريكا تىنىق مۇحيتى ۋاقىتى (لوس-انجەلەس)',
+        'America/Louisville' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (لۋيسۆيل)',
+        'America/Kentucky/Louisville' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (لۋيسۆيل)',
+        'America/Lower_Princes' => 'اتلانتيكا ۋاقىتى (لوۋەر-پرينس-كۋوتەر)',
+        'America/Maceio' => 'برازيليا ۋاقىتى (ماسەيو)',
+        'America/Managua' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (ماناگۋا)',
+        'America/Manaus' => 'امازون ۋاقىتى (ماناۋس)',
+        'America/Marigot' => 'اتلانتيكا ۋاقىتى (ماريگو)',
+        'America/Martinique' => 'اتلانتيكا ۋاقىتى (مارتينيكا)',
+        'America/Matamoros' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (ماتاموروس)',
+        'America/Mazatlan' => 'مەكسيكا تىنىق مۇحيت ۋاقىتى (ماساتلان)',
+        'America/Mendoza' => 'ارگەنتينا ۋاقىتى (مەندوزا)',
+        'America/Argentina/Mendoza' => 'ارگەنتينا ۋاقىتى (مەندوزا)',
+        'America/Menominee' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (مەنوميني)',
+        'America/Merida' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (مەريدا)',
+        'America/Metlakatla' => 'الاسكا ۋاقىتى (مەتلاكاتلا)',
+        'America/Mexico_City' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (مەحيكو)',
+        'America/Miquelon' => 'سەن-پەر جانە ميكەلون ۋاقىتى',
+        'America/Moncton' => 'اتلانتيكا ۋاقىتى (مونكتون)',
+        'America/Monterrey' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (مونتەررەي)',
+        'America/Montevideo' => 'ۋرۋگۆاي ۋاقىتى (مونتەۆيدەو)',
+        'America/Montserrat' => 'اتلانتيكا ۋاقىتى (مونتسەررات)',
+        'America/Nassau' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (ناسساۋ)',
+        'America/New_York' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (نيۋ-يورك)',
+        'America/Nome' => 'الاسكا ۋاقىتى (نوم)',
+        'America/Noronha' => 'فەرناندۋ-دي-نورونيا ۋاقىتى',
+        'America/North_Dakota/Beulah' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (بويلا، سولتۇستىك داكوتا)',
+        'America/North_Dakota/Center' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (سەنتەر، سولتۇستىك داكوتا)',
+        'America/North_Dakota/New_Salem' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (نيۋ-سەيلەم، سولتۇستىك داكوتا)',
+        'America/Ojinaga' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (وحيناگا)',
+        'America/Panama' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (پاناما)',
+        'America/Paramaribo' => 'سۋرينام ۋاقىتى (پاراماريبو)',
+        'America/Phoenix' => 'سولتۇستىك امەريكا تاۋ ۋاقىتى (فينيكس)',
+        'America/Port-au-Prince' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (پورت-وف-پرەنس)',
+        'America/Port_of_Spain' => 'اتلانتيكا ۋاقىتى (پورت-وف-سپاين)',
+        'America/Porto_Velho' => 'امازون ۋاقىتى (پورتو-ۆەليۋ)',
+        'America/Puerto_Rico' => 'اتلانتيكا ۋاقىتى (پۋەرتو-ريكو)',
+        'America/Punta_Arenas' => 'چيلي ۋاقىتى (پۋنتا-ارەناس)',
+        'America/Rankin_Inlet' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (رانكين-ينلەت)',
+        'America/Recife' => 'برازيليا ۋاقىتى (رەسيفي)',
+        'America/Regina' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (رەجاينا)',
+        'America/Resolute' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (رەزوليۋت)',
+        'America/Rio_Branco' => 'برازيليا ۋاقىتى (ريۋ-برانكۋ)',
+        'America/Santarem' => 'برازيليا ۋاقىتى (سانتارەن)',
+        'America/Santiago' => 'چيلي ۋاقىتى (سانتياگو)',
+        'America/Santo_Domingo' => 'اتلانتيكا ۋاقىتى (سانتو-دومينگو)',
+        'America/Sao_Paulo' => 'برازيليا ۋاقىتى (سان-پۋالۋ)',
+        'America/Scoresbysund' => 'گرەنلانديا ۋاقىتى (يللوككورتوورميۋت)',
+        'America/Sitka' => 'الاسكا ۋاقىتى (سيتكا)',
+        'America/St_Barthelemy' => 'اتلانتيكا ۋاقىتى (سەن-بارتەلەمي)',
+        'America/St_Johns' => 'نيۋفاۋندلەند ۋاقىتى (سەنت-جونس)',
+        'America/St_Kitts' => 'اتلانتيكا ۋاقىتى (سەنت-كيتس)',
+        'America/St_Lucia' => 'اتلانتيكا ۋاقىتى (سەنت-ليۋسيا)',
+        'America/St_Thomas' => 'اتلانتيكا ۋاقىتى (سەنت-توماس)',
+        'America/St_Vincent' => 'اتلانتيكا ۋاقىتى (سەنت-ۆينسەنت)',
+        'America/Swift_Current' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (سۋيات-كاررەنت)',
+        'America/Tegucigalpa' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (تەگۋسيگالپا)',
+        'America/Thule' => 'اتلانتيكا ۋاقىتى (تۋلە)',
+        'America/Tijuana' => 'سولتۇستىك امەريكا تىنىق مۇحيتى ۋاقىتى (تيحۋانا)',
+        'America/Toronto' => 'سولتۇستىك امەريكا شىعىس ۋاقىتى (تورونتو)',
+        'America/Tortola' => 'اتلانتيكا ۋاقىتى (تورتولا)',
+        'America/Vancouver' => 'سولتۇستىك امەريكا تىنىق مۇحيتى ۋاقىتى (ۆانكۋۆەر)',
+        'America/Whitehorse' => 'يۋكون ۋاقىتى (ۋايتحورس)',
+        'America/Winnipeg' => 'سولتۇستىك امەريكا ورتالىق ۋاقىتى (ۆيننيپەگ)',
+        'America/Yakutat' => 'الاسكا ۋاقىتى (ياكۋتات)',
+        'Antarctica/Casey' => 'باتىس اۋستراليا ۋاقىتى (كەيسي)',
+        'Antarctica/Davis' => 'دەيۆيس ۋاقىتى',
+        'Antarctica/DumontDUrville' => 'ديۋمون-ديۋرۆيل ۋاقىتى',
+        'Antarctica/Macquarie' => 'شىعىس اۋستراليا ۋاقىتى (ماككۋوري)',
+        'Antarctica/Mawson' => 'موۋسون ۋاقىتى',
+        'Antarctica/McMurdo' => 'جاڭا زەلانديا ۋاقىتى (ماك-مەردو)',
+        'Antarctica/Palmer' => 'چيلي ۋاقىتى (پالمەر)',
+        'Antarctica/Rothera' => 'روتەرا ۋقىتى',
+        'Antarctica/Syowa' => 'سەۆا ۋاقىتى',
+        'Antarctica/Troll' => 'گرينۆيچ ۋاقىتى (ترول)',
+        'Antarctica/Vostok' => 'ۆوستوك ۋاقىتى',
+        'Arctic/Longyearbyen' => 'ورتالىق ەۋروپا ۋاقىتى (لونگير)',
+        'Asia/Aden' => 'ساۋد ارابياسى ۋاقىتى (ادەن)',
+        'Asia/Almaty' => 'قازاق ەلى ۋاقىتى (الماتى)',
+        'Asia/Amman' => 'شىعىس ەۋروپا ۋاقىتى (اممان)',
+        'Asia/Anadyr' => 'حەسەي ۋاقىتى (انادىر)',
+        'Asia/Aqtau' => 'قازاق ەلى ۋاقىتى (اقتاۋ)',
+        'Asia/Aqtobe' => 'قازاق ەلى ۋاقىتى (اقتوبە)',
+        'Asia/Ashgabat' => 'تۇرىكمەنستان ۋاقىتى (اشحابات)',
+        'Asia/Atyrau' => 'قازاق ەلى ۋاقىتى (اتىراۋ)',
+        'Asia/Baghdad' => 'ساۋد ارابياسى ۋاقىتى (باگدات)',
+        'Asia/Bahrain' => 'ساۋد ارابياسى ۋاقىتى (باحرەين)',
+        'Asia/Baku' => 'ءازىربايجان ۋاقىتى (باكۋ)',
+        'Asia/Bangkok' => 'ءۇندى-قىتاي ۋاقىتى (باڭكوك)',
+        'Asia/Barnaul' => 'كراسنويارسك ۋاقىتى (بارناۋىل)',
+        'Asia/Beirut' => 'شىعىس ەۋروپا ۋاقىتى (بەيرۋت)',
+        'Asia/Bishkek' => 'قىرعىزستان ۋاقىتى (بىشكەك)',
+        'Asia/Brunei' => 'برۋنەي-دارۋسسالام ۋاقىتى',
+        'Asia/Calcutta' => 'ءۇندىستان ستاندارتتى ۋاقىتى (كالكۋتا)',
+        'Asia/Kolkata' => 'ءۇندىستان ستاندارتتى ۋاقىتى (كالكۋتا)',
+        'Asia/Chita' => 'ياكۋتسك ۋاقىتى (چيتا)',
+        'Asia/Colombo' => 'ءۇندىستان ستاندارتتى ۋاقىتى (كولومبو)',
+        'Asia/Damascus' => 'شىعىس ەۋروپا ۋاقىتى (داماسك)',
+        'Asia/Dhaka' => 'بانگلادەش ۋاقىتى (داككا)',
+        'Asia/Dili' => 'شىعىس تيمور ۋاقىتى (ديلي)',
+        'Asia/Dubai' => 'پارسى شىعاناعى ستاندارتتى ۋاقىتى (دۋباي)',
+        'Asia/Dushanbe' => 'تاجىكستان ۋاقىتى (دۋشانبە)',
+        'Asia/Famagusta' => 'شىعىس ەۋروپا ۋاقىتى (فاماگۋستا)',
+        'Asia/Gaza' => 'شىعىس ەۋروپا ۋاقىتى (گازا)',
+        'Asia/Hebron' => 'شىعىس ەۋروپا ۋاقىتى (حەۆرون)',
+        'Asia/Hong_Kong' => 'حوڭكوڭ ۋاقىتى',
+        'Asia/Hovd' => 'حوۆد ۋاقىتى',
+        'Asia/Irkutsk' => 'يركۋتسك ۋاقىتى',
+        'Asia/Jakarta' => 'باتىس يندونەزيا ۋاقىتى (جاكارتا)',
+        'Asia/Jayapura' => 'شىعىس يندونەزيا ۋاقىتى (جاياپۋرا)',
+        'Asia/Jerusalem' => 'يزرايل ۋاقىتى (يەرۋساليم)',
+        'Asia/Kabul' => 'اۋعانستان ۋاقىتى (كابۋل)',
+        'Asia/Kamchatka' => 'حەسەي ۋاقىتى (كامچاتكا)',
+        'Asia/Karachi' => 'پاكىستان ۋاقىتى (كاراچا)',
+        'Asia/Katmandu' => 'نەپال ۋاقىتى (كاتماندۋ)',
+        'Asia/Kathmandu' => 'نەپال ۋاقىتى (كاتماندۋ)',
+        'Asia/Khandyga' => 'ياكۋتسك ۋاقىتى (حاندىگا)',
+        'Asia/Krasnoyarsk' => 'كراسنويارسك ۋاقىتى',
+        'Asia/Kuala_Lumpur' => 'مالايزيا ۋاقىتى (كۋالا-لۋمپۋر)',
+        'Asia/Kuching' => 'مالايزيا ۋاقىتى (كۋچيڭ)',
+        'Asia/Kuwait' => 'ساۋد ارابياسى ۋاقىتى (كۋۆەيت)',
+        'Asia/Macau' => 'قىتاي ۋاقىتى (ماكاو)',
+        'Asia/Magadan' => 'ماگادان ۋاقىتى',
+        'Asia/Makassar' => 'ورتالىق يندونەزيا ۋاقىتى (ماكاسار)',
+        'Asia/Manila' => 'فيليپين ارالدارى ۋاقىتى (مانيلا)',
+        'Asia/Muscat' => 'پارسى شىعاناعى ستاندارتتى ۋاقىتى (ماسكات)',
+        'Asia/Nicosia' => 'شىعىس ەۋروپا ۋاقىتى (نيكوسيا)',
+        'Asia/Novokuznetsk' => 'كراسنويارسك ۋاقىتى (نوۆوكۋزنەتسك)',
+        'Asia/Novosibirsk' => 'كراسنويارسك ۋاقىتى (جاڭاسىبىر)',
+        'Asia/Omsk' => 'ومبى ۋاقىتى',
+        'Asia/Oral' => 'قازاق ەلى ۋاقىتى (ورال)',
+        'Asia/Phnom_Penh' => 'ءۇندى-قىتاي ۋاقىتى (پنومپەن)',
+        'Asia/Pontianak' => 'باتىس يندونەزيا ۋاقىتى (پونتياناك)',
+        'Asia/Pyongyang' => 'كورەيا ۋاقىتى (پحەنيان)',
+        'Asia/Qatar' => 'ساۋد ارابياسى ۋاقىتى (كاتار)',
+        'Asia/Qostanay' => 'قازاق ەلى ۋاقىتى (قوستاناي)',
+        'Asia/Qyzylorda' => 'قازاق ەلى ۋاقىتى (قىزىلوردا)',
+        'Asia/Rangoon' => 'ميانما ۋاقىتى (يانگون)',
+        'Asia/Yangon' => 'ميانما ۋاقىتى (يانگون)',
+        'Asia/Riyadh' => 'ساۋد ارابياسى ۋاقىتى (ەر-رياد)',
+        'Asia/Saigon' => 'ءۇندى-قىتاي ۋاقىتى (حوشيمين)',
+        'Asia/Ho_Chi_Minh' => 'ءۇندى-قىتاي ۋاقىتى (حوشيمين)',
+        'Asia/Sakhalin' => 'ماگادان ۋاقىتى (ساحالين)',
+        'Asia/Samarkand' => 'وزبەكستان ۋاقىتى (سامارقاند)',
+        'Asia/Seoul' => 'كورەيا ۋاقىتى (سەۋل)',
+        'Asia/Shanghai' => 'قىتاي ۋاقىتى (شانحاي)',
+        'Asia/Singapore' => 'سينگاپۋر ستاندارتتى ۋاقىتى',
+        'Asia/Srednekolymsk' => 'ماگادان ۋاقىتى (سرەدنەكولىمسك)',
+        'Asia/Taipei' => 'تايبەي ۋاقىتى',
+        'Asia/Tashkent' => 'وزبەكستان ۋاقىتى (تاشكەنت)',
+        'Asia/Tbilisi' => 'گرۋزيا ۋاقىتى (تبيليسي)',
+        'Asia/Tehran' => 'يران ۋاقىتى (تەگەران)',
+        'Asia/Thimphu' => 'بۋتان ۋاقىتى (تحيمپحۋ)',
+        'Asia/Tokyo' => 'جاپونيا ۋاقىتى (توكيو)',
+        'Asia/Tomsk' => 'كراسنويارسك ۋاقىتى (تۋمەن)',
+        'Asia/Ulaanbaatar' => 'ۇلانباتىر ۋاقىتى',
+        'Asia/Urumqi' => 'قىتاي ۋاقىتى (ءۇرىمشى)',
+        'Asia/Ust-Nera' => 'ۆلاديۆوستوك ۋاقىتى (ۋست-نەرا)',
+        'Asia/Vientiane' => 'ءۇندى-قىتاي ۋاقىتى (ۆەنتيان)',
+        'Asia/Vladivostok' => 'ۆلاديۆوستوك ۋاقىتى (ۆلاديۆاستوك)',
+        'Asia/Yakutsk' => 'ياكۋتسك ۋاقىتى',
+        'Asia/Yekaterinburg' => 'ەكاتەرينبۋرگ ۋاقىتى',
+        'Asia/Yerevan' => 'ارمەنيا ۋاقىتى (يەرەۆان)',
+        'Atlantic/Azores' => 'ازور ارالدارى ۋاقىتى',
+        'Atlantic/Bermuda' => 'اتلانتيكا ۋاقىتى (بەرمۋد ارالدارى)',
+        'Atlantic/Canary' => 'باتىس ەۋروپا ۋاقىتى (كانار ارالدارى)',
+        'Atlantic/Cape_Verde' => 'كابو-ۆەردە ۋاقىتى',
+        'Atlantic/Faeroe' => 'باتىس ەۋروپا ۋاقىتى (فارەر ارالدارى)',
+        'Atlantic/Faroe' => 'باتىس ەۋروپا ۋاقىتى (فارەر ارالدارى)',
+        'Atlantic/Madeira' => 'باتىس ەۋروپا ۋاقىتى (مادەيرا)',
+        'Atlantic/Reykjavik' => 'گرينۆيچ ۋاقىتى (رەيكياۆيك)',
+        'Atlantic/South_Georgia' => 'وڭتۇستىك گەورگيا ۋاقىتى',
+        'Atlantic/St_Helena' => 'گرينۆيچ ۋاقىتى (اۋليە ەلەنا ارالى)',
+        'Atlantic/Stanley' => 'فولكلەند ارالدارى ۋاقىتى (ستەنلي)',
+        'Australia/Adelaide' => 'ورتالىق اۋستراليا ۋاقىتى (ادەلايدا)',
+        'Australia/Brisbane' => 'شىعىس اۋستراليا ۋاقىتى (بريسبەن)',
+        'Australia/Broken_Hill' => 'ورتالىق اۋستراليا ۋاقىتى (بروكەن-حيل)',
+        'Australia/Darwin' => 'ورتالىق اۋستراليا ۋاقىتى (دارۆين)',
+        'Australia/Eucla' => 'اۋستراليا ورتالىق-باتىس ۋاقىتى (يۋكلا)',
+        'Australia/Hobart' => 'شىعىس اۋستراليا ۋاقىتى (حوبارت)',
+        'Australia/Lindeman' => 'شىعىس اۋستراليا ۋاقىتى (ليندەمان)',
+        'Australia/Lord_Howe' => 'لورد-حاۋ ۋاقىتى',
+        'Australia/Melbourne' => 'شىعىس اۋستراليا ۋاقىتى (مەلبۋرن)',
+        'Australia/Perth' => 'باتىس اۋستراليا ۋاقىتى (پەرت)',
+        'Australia/Sydney' => 'شىعىس اۋستراليا ۋاقىتى (سيدنەي)',
+        'Etc/GMT' => 'گرينۆيچ ۋاقىتى',
+        'Etc/UTC' => 'دۇنيەجۇزىلىك ۇيلەستىرىلگەن ۋاقىت',
+        'Europe/Amsterdam' => 'ورتالىق ەۋروپا ۋاقىتى (امستەردام)',
+        'Europe/Andorra' => 'ورتالىق ەۋروپا ۋاقىتى (اندوررا)',
+        'Europe/Astrakhan' => 'حەسەي ۋاقىتى (استراحان)',
+        'Europe/Athens' => 'شىعىس ەۋروپا ۋاقىتى (افينا)',
+        'Europe/Belgrade' => 'ورتالىق ەۋروپا ۋاقىتى (بەلگراد)',
+        'Europe/Berlin' => 'ورتالىق ەۋروپا ۋاقىتى (بەرلين)',
+        'Europe/Bratislava' => 'ورتالىق ەۋروپا ۋاقىتى (براتيسلاۆا)',
+        'Europe/Brussels' => 'ورتالىق ەۋروپا ۋاقىتى (بريۋسەل)',
+        'Europe/Bucharest' => 'شىعىس ەۋروپا ۋاقىتى (بۋحارەست)',
+        'Europe/Budapest' => 'ورتالىق ەۋروپا ۋاقىتى (بۋداپەشت)',
+        'Europe/Busingen' => 'ورتالىق ەۋروپا ۋاقىتى (بيۋزينگەن)',
+        'Europe/Chisinau' => 'شىعىس ەۋروپا ۋاقىتى (كيشينەۆ)',
+        'Europe/Copenhagen' => 'ورتالىق ەۋروپا ۋاقىتى (كوپەنگاگەن)',
+        'Europe/Dublin' => 'گرينۆيچ ۋاقىتى (دۋبلين)',
+        'Europe/Gibraltar' => 'ورتالىق ەۋروپا ۋاقىتى (گيبرالتال)',
+        'Europe/Guernsey' => 'گرينۆيچ ۋاقىتى (گەرنسي)',
+        'Europe/Helsinki' => 'شىعىس ەۋروپا ۋاقىتى (حەلسينكي)',
+        'Europe/Isle_of_Man' => 'گرينۆيچ ۋاقىتى (مەن ارالى)',
+        'Europe/Istanbul' => 'تۇركيا ۋاقىتى (ستامبۇل)',
+        'Europe/Jersey' => 'گرينۆيچ ۋاقىتى (جەرسەي)',
+        'Europe/Kaliningrad' => 'شىعىس ەۋروپا ۋاقىتى (كالينينگراد)',
+        'Europe/Kiev' => 'شىعىس ەۋروپا ۋاقىتى (كيەۆ)',
+        'Europe/Kyiv' => 'شىعىس ەۋروپا ۋاقىتى (كيەۆ)',
+        'Europe/Kirov' => 'ماسكەۋ ۋاقىتى (كيروۆ)',
+        'Europe/Lisbon' => 'باتىس ەۋروپا ۋاقىتى (ليسابون)',
+        'Europe/Ljubljana' => 'ورتالىق ەۋروپا ۋاقىتى (ليۋبليانا)',
+        'Europe/London' => 'گرينۆيچ ۋاقىتى (لوندون)',
+        'Europe/Luxembourg' => 'ورتالىق ەۋروپا ۋاقىتى (ليۋكسەمبۋرگ)',
+        'Europe/Madrid' => 'ورتالىق ەۋروپا ۋاقىتى (مادريد)',
+        'Europe/Malta' => 'ورتالىق ەۋروپا ۋاقىتى (مالتا)',
+        'Europe/Mariehamn' => 'شىعىس ەۋروپا ۋاقىتى (ماريەحامن)',
+        'Europe/Minsk' => 'ماسكەۋ ۋاقىتى (مينسك)',
+        'Europe/Monaco' => 'ورتالىق ەۋروپا ۋاقىتى (موناكو)',
+        'Europe/Moscow' => 'ماسكەۋ ۋاقىتى',
+        'Europe/Oslo' => 'ورتالىق ەۋروپا ۋاقىتى (وسلو)',
+        'Europe/Paris' => 'ورتالىق ەۋروپا ۋاقىتى (پاريج)',
+        'Europe/Podgorica' => 'ورتالىق ەۋروپا ۋاقىتى (پودگوريسا)',
+        'Europe/Prague' => 'ورتالىق ەۋروپا ۋاقىتى (پراگا)',
+        'Europe/Riga' => 'شىعىس ەۋروپا ۋاقىتى (ريگا)',
+        'Europe/Rome' => 'ورتالىق ەۋروپا ۋاقىتى (ريم)',
+        'Europe/Samara' => 'حەسەي ۋاقىتى (سامارا)',
+        'Europe/San_Marino' => 'ورتالىق ەۋروپا ۋاقىتى (سان-مارينو)',
+        'Europe/Sarajevo' => 'ورتالىق ەۋروپا ۋاقىتى (ساراەۆو)',
+        'Europe/Saratov' => 'حەسەي ۋاقىتى (سارىتاۋ)',
+        'Europe/Simferopol' => 'ماسكەۋ ۋاقىتى (سيمفەرول)',
+        'Europe/Skopje' => 'ورتالىق ەۋروپا ۋاقىتى (سكوپيە)',
+        'Europe/Sofia' => 'شىعىس ەۋروپا ۋاقىتى (سوفيا)',
+        'Europe/Stockholm' => 'ورتالىق ەۋروپا ۋاقىتى (ستوكگولىم)',
+        'Europe/Tallinn' => 'شىعىس ەۋروپا ۋاقىتى (تاللين)',
+        'Europe/Tirane' => 'ورتالىق ەۋروپا ۋاقىتى (تيرانا)',
+        'Europe/Ulyanovsk' => 'حەسەي ۋاقىتى (ۋليانوۆسك)',
+        'Europe/Vaduz' => 'ورتالىق ەۋروپا ۋاقىتى (ۆادۋس)',
+        'Europe/Vatican' => 'ورتالىق ەۋروپا ۋاقىتى (ۆاتيكان)',
+        'Europe/Vienna' => 'ورتالىق ەۋروپا ۋاقىتى (ۆەنا)',
+        'Europe/Vilnius' => 'شىعىس ەۋروپا ۋاقىتى (ۆينيۋس)',
+        'Europe/Volgograd' => 'ماسكەۋ ۋاقىتى (ۆولگوگراد)',
+        'Europe/Warsaw' => 'ورتالىق ەۋروپا ۋاقىتى (ۆارشاۆا)',
+        'Europe/Zagreb' => 'ورتالىق ەۋروپا ۋاقىتى (زاگرەب)',
+        'Europe/Zurich' => 'ورتالىق ەۋروپا ۋاقىتى (سيۋريح)',
+        'Indian/Antananarivo' => 'شىعىس افريكا ۋاقىتى (انتاناناريۆۋ)',
+        'Indian/Chagos' => 'ءۇندى مۇحيتى ۋاقىتى (چاگوس)',
+        'Indian/Christmas' => 'كريستماس ارالىنىڭ ۋاقىتى (كريستماس ارالدارى)',
+        'Indian/Cocos' => 'كوكوس ارالدارىنىڭ ۋاقىتى',
+        'Indian/Comoro' => 'شىعىس افريكا ۋاقىتى (كومور ارالدارى)',
+        'Indian/Kerguelen' => 'فرانتسيانىڭ وڭتۇستىك ايماعى جانە انتاركتيكا ۋاقىتى (كەرگەلەن)',
+        'Indian/Mahe' => 'سەيشەل ارالدارى ۋاقىتى (ماە)',
+        'Indian/Maldives' => 'مالديۆ ارالدارى ۋاقىتى',
+        'Indian/Mauritius' => 'ماۆريكيي ۋاقىتى',
+        'Indian/Mayotte' => 'شىعىس افريكا ۋاقىتى (مايوتتا)',
+        'Indian/Reunion' => 'رەيۋنون ۋاقىتى (رەيۋنيون)',
+        'Pacific/Apia' => 'اپيا ۋاقىتى',
+        'Pacific/Auckland' => 'جاڭا زەلانديا ۋاقىتى (وكلەند)',
+        'Pacific/Bougainville' => 'پاپۋا – جاڭا گۆينەيا ۋاقىتى (بۋگەنۆيل)',
+        'Pacific/Chatham' => 'چاتەم ۋاقىتى',
+        'Pacific/Easter' => 'پاسحا ارالى ۋاقىتى',
+        'Pacific/Efate' => 'ۆانۋاتۋ ۋاقىتى (ەفاتە)',
+        'Pacific/Enderbury' => 'فەنيكس ارالدارى ۋاقىتى (كانتون)',
+        'Pacific/Kanton' => 'فەنيكس ارالدارى ۋاقىتى (كانتون)',
+        'Pacific/Fakaofo' => 'توكەلاۋ ۋاقىتى (فاكاوفو)',
+        'Pacific/Fiji' => 'فيجي ۋاقىتى',
+        'Pacific/Funafuti' => 'تۋۆالۋ ۋاقىتى (فۋنافۋتي)',
+        'Pacific/Galapagos' => 'گالاپاگوس ۋاقىتى',
+        'Pacific/Gambier' => 'گامبە ۋاقىتى (گامبيە)',
+        'Pacific/Guadalcanal' => 'سولومون ارالدارى ۋاقىتى (گۋادالكانال)',
+        'Pacific/Guam' => 'چاموررو ستاندارتتى ۋاقىتى (گۋام)',
+        'Pacific/Honolulu' => 'گاۆاي جانە الەۋت ارالدارى ستاندارتتى ۋاقىتى (Гонолулу)',
+        'Pacific/Kiritimati' => 'لاين ارالدارى ۋاقىتى (كيريتيماتي)',
+        'Pacific/Kosrae' => 'كۋسايە ۋاقىتى',
+        'Pacific/Kwajalein' => 'مارشال ارالدارى ۋاقىتى (كۆاجالەيىن)',
+        'Pacific/Majuro' => 'مارشال ارالدارى ۋاقىتى (ماجۋرو)',
+        'Pacific/Marquesas' => 'ماركيز ارالدارى ۋاقىتى',
+        'Pacific/Midway' => 'ساموا ۋاقىتى (ميدۋەي)',
+        'Pacific/Nauru' => 'ناۋرۋ ۋاقىتى',
+        'Pacific/Niue' => 'نيۋە ۋاقىتى',
+        'Pacific/Norfolk' => 'نورفولك ارالى ۋاقىتى',
+        'Pacific/Noumea' => 'جاڭا كالەدونيا ۋاقىتى (نۋمەا)',
+        'Pacific/Pago_Pago' => 'ساموا ۋاقىتى (پاگو-پاگو)',
+        'Pacific/Palau' => 'پالاۋ ۋاقىتى',
+        'Pacific/Pitcairn' => 'پيتكەرن ۋاقىتى',
+        'Pacific/Ponape' => 'پونپەي ۋاقىتى (پوناپە)',
+        'Pacific/Pohnpei' => 'پونپەي ۋاقىتى (پوناپە)',
+        'Pacific/Port_Moresby' => 'پاپۋا – جاڭا گۆينەيا ۋاقىتى (پورت-مورسبي)',
+        'Pacific/Rarotonga' => 'كۋك ارالدارىنىڭ ۋاقىتى (راروتونگا)',
+        'Pacific/Saipan' => 'چاموررو ستاندارتتى ۋاقىتى (سايپان)',
+        'Pacific/Tahiti' => 'تايتي ۋاقىتى',
+        'Pacific/Tarawa' => 'گيلبەرت ارالدارىنىڭ ۋاقىتى (تاراۋا)',
+        'Pacific/Tongatapu' => 'تونگا ۋاقىتى (تونگاتاپۋ)',
+        'Pacific/Truk' => 'ترۋك ۋاقىتى',
+        'Pacific/Chuuk' => 'ترۋك ۋاقىتى',
+        'Pacific/Wake' => 'ۋەيك ارالى ۋاقىتى',
+        'Pacific/Wallis' => 'ۋولليس جانە فۋتۋنا ۋاقىتى',
+    ],
+    'Meta' => [],
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kk.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Шығыс Африка уақыты (Аддис-Абеба)',
         'Africa/Algiers' => 'Орталық Еуропа уақыты (Алжир)',
         'Africa/Asmera' => 'Шығыс Африка уақыты (Асмара)',
+        'Africa/Asmara' => 'Шығыс Африка уақыты (Асмара)',
         'Africa/Bamako' => 'Гринвич уақыты (Бамако)',
         'Africa/Bangui' => 'Батыс Африка уақыты (Банги)',
         'Africa/Banjul' => 'Гринвич уақыты (Банжул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Колумбия уақыты (Богота)',
         'America/Boise' => 'Солтүстік Америка тау уақыты (Бойсе)',
         'America/Buenos_Aires' => 'Аргентина уақыты (Буэнос-Айрес)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина уақыты (Буэнос-Айрес)',
         'America/Cambridge_Bay' => 'Солтүстік Америка тау уақыты (Кембридж-Бей)',
         'America/Campo_Grande' => 'Амазонка уақыты (Кампу-Гранди)',
         'America/Cancun' => 'Солтүстік Америка шығыс уақыты (Канкун)',
         'America/Caracas' => 'Венесуэла уақыты (Каракас)',
         'America/Catamarca' => 'Аргентина уақыты (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргентина уақыты (Катамарка)',
         'America/Cayenne' => 'Француз Гвианасы уақыты (Кайенна)',
         'America/Cayman' => 'Солтүстік Америка шығыс уақыты (Кайман аралдары)',
         'America/Chicago' => 'Солтүстік Америка орталық уақыты (Чикаго)',
         'America/Chihuahua' => 'Солтүстік Америка орталық уақыты (Чиуауа)',
         'America/Ciudad_Juarez' => 'Солтүстік Америка тау уақыты (Сьюдад-Хуарес)',
         'America/Coral_Harbour' => 'Солтүстік Америка шығыс уақыты (Атикокан)',
+        'America/Atikokan' => 'Солтүстік Америка шығыс уақыты (Атикокан)',
         'America/Cordoba' => 'Аргентина уақыты (Кордова)',
+        'America/Argentina/Cordoba' => 'Аргентина уақыты (Кордова)',
         'America/Costa_Rica' => 'Солтүстік Америка орталық уақыты (Коста-Рика)',
+        'America/Coyhaique' => 'Чили уақыты (Койайке)',
         'America/Creston' => 'Солтүстік Америка тау уақыты (Крестон)',
         'America/Cuiaba' => 'Амазонка уақыты (Куяба)',
         'America/Curacao' => 'Атлантика уақыты (Кюрасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразилия уақыты (Форталеза)',
         'America/Glace_Bay' => 'Атлантика уақыты (Глейс-Бей)',
         'America/Godthab' => 'Гренландия уақыты (Нуук)',
+        'America/Nuuk' => 'Гренландия уақыты (Нуук)',
         'America/Goose_Bay' => 'Атлантика уақыты (Гус-Бей)',
         'America/Grand_Turk' => 'Солтүстік Америка шығыс уақыты (Гранд-Терк)',
         'America/Grenada' => 'Атлантика уақыты (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Солтүстік Америка шығыс уақыты (Винсеннес, Индиана)',
         'America/Indiana/Winamac' => 'Солтүстік Америка шығыс уақыты (Уинамак, Индиана)',
         'America/Indianapolis' => 'Солтүстік Америка шығыс уақыты (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Солтүстік Америка шығыс уақыты (Индианаполис)',
         'America/Inuvik' => 'Солтүстік Америка тау уақыты (Инувик)',
         'America/Iqaluit' => 'Солтүстік Америка шығыс уақыты (Икалуит)',
         'America/Jamaica' => 'Солтүстік Америка шығыс уақыты (Ямайка)',
         'America/Jujuy' => 'Аргентина уақыты (Жужуй)',
+        'America/Argentina/Jujuy' => 'Аргентина уақыты (Жужуй)',
         'America/Juneau' => 'Аляска уақыты (Джуно)',
         'America/Kentucky/Monticello' => 'Солтүстік Америка шығыс уақыты (Монтиселло, Кентукки)',
         'America/Kralendijk' => 'Атлантика уақыты (Кралендейк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перу уақыты (Лима)',
         'America/Los_Angeles' => 'Солтүстік Америка Тынық мұхиты уақыты (Лос-Анджелес)',
         'America/Louisville' => 'Солтүстік Америка шығыс уақыты (Луисвилл)',
+        'America/Kentucky/Louisville' => 'Солтүстік Америка шығыс уақыты (Луисвилл)',
         'America/Lower_Princes' => 'Атлантика уақыты (Лоуэр-Принс-Куотер)',
         'America/Maceio' => 'Бразилия уақыты (Масейо)',
         'America/Managua' => 'Солтүстік Америка орталық уақыты (Манагуа)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Солтүстік Америка орталық уақыты (Матаморос)',
         'America/Mazatlan' => 'Мексика Тынық мұхит уақыты (Масатлан)',
         'America/Mendoza' => 'Аргентина уақыты (Мендоса)',
+        'America/Argentina/Mendoza' => 'Аргентина уақыты (Мендоса)',
         'America/Menominee' => 'Солтүстік Америка орталық уақыты (Меномини)',
         'America/Merida' => 'Солтүстік Америка орталық уақыты (Мерида)',
         'America/Metlakatla' => 'Аляска уақыты (Метлакатла)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Сауд Арабиясы уақыты (Бахрейн)',
         'Asia/Baku' => 'Әзірбайжан уақыты (Баку)',
         'Asia/Bangkok' => 'Үндіқытай уақыты (Бангкок)',
-        'Asia/Barnaul' => 'Ресей уақыты (Барнауыл)',
+        'Asia/Barnaul' => 'Красноярск уақыты (Барнауыл)',
         'Asia/Beirut' => 'Шығыс Еуропа уақыты (Бейрут)',
         'Asia/Bishkek' => 'Қырғызстан уақыты (Бішкек)',
         'Asia/Brunei' => 'Бруней-Даруссалам уақыты',
         'Asia/Calcutta' => 'Үндістан стандартты уақыты (Калькутта)',
+        'Asia/Kolkata' => 'Үндістан стандартты уақыты (Калькутта)',
         'Asia/Chita' => 'Якутск уақыты (Чита)',
         'Asia/Colombo' => 'Үндістан стандартты уақыты (Коломбо)',
         'Asia/Damascus' => 'Шығыс Еуропа уақыты (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Ресей уақыты (Камчатка)',
         'Asia/Karachi' => 'Пәкістан уақыты (Карачи)',
         'Asia/Katmandu' => 'Непал уақыты (Катманду)',
+        'Asia/Kathmandu' => 'Непал уақыты (Катманду)',
         'Asia/Khandyga' => 'Якутск уақыты (Хандыга)',
         'Asia/Krasnoyarsk' => 'Красноярск уақыты',
         'Asia/Kuala_Lumpur' => 'Малайзия уақыты (Куала-Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Парсы шығанағы стандартты уақыты (Маскат)',
         'Asia/Nicosia' => 'Шығыс Еуропа уақыты (Никосия)',
         'Asia/Novokuznetsk' => 'Красноярск уақыты (Новокузнецк)',
-        'Asia/Novosibirsk' => 'Новосібір уақыты',
+        'Asia/Novosibirsk' => 'Красноярск уақыты (Новосібір)',
         'Asia/Omsk' => 'Омбы уақыты',
         'Asia/Oral' => 'Қазақстан уақыты (Орал)',
         'Asia/Phnom_Penh' => 'Үндіқытай уақыты (Пномпень)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Қазақстан уақыты (Қостанай)',
         'Asia/Qyzylorda' => 'Қазақстан уақыты (Қызылорда)',
         'Asia/Rangoon' => 'Мьянма уақыты (Янгон)',
+        'Asia/Yangon' => 'Мьянма уақыты (Янгон)',
         'Asia/Riyadh' => 'Сауд Арабиясы уақыты (Эр-Рияд)',
         'Asia/Saigon' => 'Үндіқытай уақыты (Хошимин)',
-        'Asia/Sakhalin' => 'Сахалин уақыты',
+        'Asia/Ho_Chi_Minh' => 'Үндіқытай уақыты (Хошимин)',
+        'Asia/Sakhalin' => 'Магадан уақыты (Сахалин)',
         'Asia/Samarkand' => 'Өзбекстан уақыты (Самарқанд)',
         'Asia/Seoul' => 'Корея уақыты (Сеул)',
         'Asia/Shanghai' => 'Қытай уақыты (Шанхай)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Иран уақыты (Тегеран)',
         'Asia/Thimphu' => 'Бутан уақыты (Тхимпху)',
         'Asia/Tokyo' => 'Жапония уақыты (Токио)',
-        'Asia/Tomsk' => 'Ресей уақыты (Томск)',
+        'Asia/Tomsk' => 'Красноярск уақыты (Томск)',
         'Asia/Ulaanbaatar' => 'Ұланбатыр уақыты',
         'Asia/Urumqi' => 'Қытай уақыты (Үрімші)',
         'Asia/Ust-Nera' => 'Владивосток уақыты (Усть-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Батыс Еуропа уақыты (Канар аралдары)',
         'Atlantic/Cape_Verde' => 'Кабо-Верде уақыты',
         'Atlantic/Faeroe' => 'Батыс Еуропа уақыты (Фарер аралдары)',
+        'Atlantic/Faroe' => 'Батыс Еуропа уақыты (Фарер аралдары)',
         'Atlantic/Madeira' => 'Батыс Еуропа уақыты (Мадейра)',
         'Atlantic/Reykjavik' => 'Гринвич уақыты (Рейкьявик)',
         'Atlantic/South_Georgia' => 'Оңтүстік Георгия уақыты',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Дүниежүзілік үйлестірілген уақыт',
         'Europe/Amsterdam' => 'Орталық Еуропа уақыты (Амстердам)',
         'Europe/Andorra' => 'Орталық Еуропа уақыты (Андорра)',
-        'Europe/Astrakhan' => 'Мәскеу уақыты (Астрахан)',
+        'Europe/Astrakhan' => 'Ресей уақыты (Астрахан)',
         'Europe/Athens' => 'Шығыс Еуропа уақыты (Афина)',
         'Europe/Belgrade' => 'Орталық Еуропа уақыты (Белград)',
         'Europe/Berlin' => 'Орталық Еуропа уақыты (Берлин)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Гринвич уақыты (Джерси)',
         'Europe/Kaliningrad' => 'Шығыс Еуропа уақыты (Калининград)',
         'Europe/Kiev' => 'Шығыс Еуропа уақыты (Киев)',
-        'Europe/Kirov' => 'Ресей уақыты (Киров)',
+        'Europe/Kyiv' => 'Шығыс Еуропа уақыты (Киев)',
+        'Europe/Kirov' => 'Мәскеу уақыты (Киров)',
         'Europe/Lisbon' => 'Батыс Еуропа уақыты (Лиссабон)',
         'Europe/Ljubljana' => 'Орталық Еуропа уақыты (Любляна)',
         'Europe/London' => 'Гринвич уақыты (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Ресей уақыты (Самара)',
         'Europe/San_Marino' => 'Орталық Еуропа уақыты (Сан-Марино)',
         'Europe/Sarajevo' => 'Орталық Еуропа уақыты (Сараево)',
-        'Europe/Saratov' => 'Мәскеу уақыты (Саратов)',
+        'Europe/Saratov' => 'Ресей уақыты (Саратов)',
         'Europe/Simferopol' => 'Мәскеу уақыты (Симферополь)',
         'Europe/Skopje' => 'Орталық Еуропа уақыты (Скопье)',
         'Europe/Sofia' => 'Шығыс Еуропа уақыты (София)',
         'Europe/Stockholm' => 'Орталық Еуропа уақыты (Стокгольм)',
         'Europe/Tallinn' => 'Шығыс Еуропа уақыты (Таллин)',
         'Europe/Tirane' => 'Орталық Еуропа уақыты (Тирана)',
-        'Europe/Ulyanovsk' => 'Мәскеу уақыты (Ульяновск)',
+        'Europe/Ulyanovsk' => 'Ресей уақыты (Ульяновск)',
         'Europe/Vaduz' => 'Орталық Еуропа уақыты (Вадуц)',
         'Europe/Vatican' => 'Орталық Еуропа уақыты (Ватикан)',
         'Europe/Vienna' => 'Орталық Еуропа уақыты (Вена)',
         'Europe/Vilnius' => 'Шығыс Еуропа уақыты (Вильнюс)',
-        'Europe/Volgograd' => 'Волгоград уақыты',
+        'Europe/Volgograd' => 'Мәскеу уақыты (Волгоград)',
         'Europe/Warsaw' => 'Орталық Еуропа уақыты (Варшава)',
         'Europe/Zagreb' => 'Орталық Еуропа уақыты (Загреб)',
         'Europe/Zurich' => 'Орталық Еуропа уақыты (Цюрих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Чатем уақыты',
         'Pacific/Easter' => 'Пасха аралы уақыты',
         'Pacific/Efate' => 'Вануату уақыты (Эфате)',
-        'Pacific/Enderbury' => 'Феникс аралдары уақыты (Эндербери)',
+        'Pacific/Enderbury' => 'Феникс аралдары уақыты (Кантон)',
+        'Pacific/Kanton' => 'Феникс аралдары уақыты (Кантон)',
         'Pacific/Fakaofo' => 'Токелау уақыты (Факаофо)',
         'Pacific/Fiji' => 'Фиджи уақыты',
         'Pacific/Funafuti' => 'Тувалу уақыты (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Гамбье уақыты',
         'Pacific/Guadalcanal' => 'Соломон аралдары уақыты (Гуадалканал)',
         'Pacific/Guam' => 'Чаморро стандартты уақыты (Гуам)',
-        'Pacific/Honolulu' => 'Гавай және Алеут аралдары уақыты (Гонолулу)',
+        'Pacific/Honolulu' => 'Гавай және Алеут аралдары стандартты уақыты (Гонолулу)',
         'Pacific/Kiritimati' => 'Лайн аралдары уақыты (Киритимати)',
         'Pacific/Kosrae' => 'Кусаие уақыты',
         'Pacific/Kwajalein' => 'Маршалл аралдары уақыты (Кваджалейн)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Палау уақыты',
         'Pacific/Pitcairn' => 'Питкэрн уақыты',
         'Pacific/Ponape' => 'Понпеи уақыты (Понапе)',
+        'Pacific/Pohnpei' => 'Понпеи уақыты (Понапе)',
         'Pacific/Port_Moresby' => 'Папуа – Жаңа Гвинея уақыты (Порт-Морсби)',
         'Pacific/Rarotonga' => 'Кук аралдарының уақыты (Раротонга)',
         'Pacific/Saipan' => 'Чаморро стандартты уақыты (Сайпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Гилберт аралдарының уақыты (Тарава)',
         'Pacific/Tongatapu' => 'Тонга уақыты (Тонгатапу)',
         'Pacific/Truk' => 'Трук уақыты',
+        'Pacific/Chuuk' => 'Трук уақыты',
         'Pacific/Wake' => 'Уэйк аралы уақыты',
         'Pacific/Wallis' => 'Уоллис және Футуна уақыты',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/km.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/km.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/km.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/km.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'ម៉ោង​នៅ​អាហ្វ្រិក​ខាង​កើត (អាឌីសអាបេបា)',
         'Africa/Algiers' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (អាល់ហ្សេ)',
         'Africa/Asmera' => 'ម៉ោង​នៅ​អាហ្វ្រិក​ខាង​កើត (អាស្មារ៉ា)',
+        'Africa/Asmara' => 'ម៉ោង​នៅ​អាហ្វ្រិក​ខាង​កើត (អាស្មារ៉ា)',
         'Africa/Bamako' => 'ម៉ោងនៅគ្រីនវិច (បាម៉ាកូ)',
         'Africa/Bangui' => 'ម៉ោង​នៅ​អាហ្វ្រិក​ខាង​លិច (បង់ហ្គី)',
         'Africa/Banjul' => 'ម៉ោងនៅគ្រីនវិច (បង់ហ្ស៊ុល)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'ម៉ោង​នៅ​កូឡុំប៊ី (បូហ្គោតា)',
         'America/Boise' => 'ម៉ោង​នៅតំបន់ភ្នំនៃទ្វីប​អាមេរិក​​​ខាង​ជើង (ប៊ូស៊ី)',
         'America/Buenos_Aires' => 'ម៉ោង​នៅ​អាហ្សង់ទីន (ប៊ុយណូស៊ែ)',
+        'America/Argentina/Buenos_Aires' => 'ម៉ោង​នៅ​អាហ្សង់ទីន (ប៊ុយណូស៊ែ)',
         'America/Cambridge_Bay' => 'ម៉ោង​នៅតំបន់ភ្នំនៃទ្វីប​អាមេរិក​​​ខាង​ជើង (ខេមប្រីដបេ)',
         'America/Campo_Grande' => 'ម៉ោង​នៅ​អាម៉ាហ្សូន (ខេមប៉ូហ្គ្រង់​)',
         'America/Cancun' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (ខានខុន)',
         'America/Caracas' => 'ម៉ោង​នៅ​វ៉េណេស៊ុយអេឡា (ការ៉ាកាស)',
         'America/Catamarca' => 'ម៉ោង​នៅ​អាហ្សង់ទីន (កាតាម៉ាកា)',
+        'America/Argentina/Catamarca' => 'ម៉ោង​នៅ​អាហ្សង់ទីន (កាតាម៉ាកា)',
         'America/Cayenne' => 'ម៉ោង​នៅ​ហ្គីយ៉ាន​បារាំង (កាយ៉េន)',
         'America/Cayman' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (កៃមែន)',
         'America/Chicago' => 'ម៉ោង​​នៅ​ទ្វីបអាមេរិក​ខាង​ជើងភាគកណ្តាល (ស៊ីកាហ្គោ)',
         'America/Chihuahua' => 'ម៉ោង​​នៅ​ទ្វីបអាមេរិក​ខាង​ជើងភាគកណ្តាល (ជីហួហួ)',
         'America/Ciudad_Juarez' => 'ម៉ោង​នៅតំបន់ភ្នំនៃទ្វីប​អាមេរិក​​​ខាង​ជើង (ស៊ីអ៊ូដាដ ហ៊ូអារ៉េស)',
         'America/Coral_Harbour' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (អាទីកូកាន)',
+        'America/Atikokan' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (អាទីកូកាន)',
         'America/Cordoba' => 'ម៉ោង​នៅ​អាហ្សង់ទីន (កូដូបា)',
+        'America/Argentina/Cordoba' => 'ម៉ោង​នៅ​អាហ្សង់ទីន (កូដូបា)',
         'America/Costa_Rica' => 'ម៉ោង​​នៅ​ទ្វីបអាមេរិក​ខាង​ជើងភាគកណ្តាល (កូស្តារីកា)',
+        'America/Coyhaique' => 'ម៉ោងនៅស៊ីលី (កូយអៃកេ)',
         'America/Creston' => 'ម៉ោង​នៅតំបន់ភ្នំនៃទ្វីប​អាមេរិក​​​ខាង​ជើង (ក្រេស្តុន)',
         'America/Cuiaba' => 'ម៉ោង​នៅ​អាម៉ាហ្សូន (គុយអាបា)',
         'America/Curacao' => 'ម៉ោង​នៅ​អាត្លង់ទិក (កូរ៉ាកៅ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ម៉ោង​នៅ​ប្រាស៊ីលីយ៉ា (ហ្វ័រតាឡេហ្សារ)',
         'America/Glace_Bay' => 'ម៉ោង​នៅ​អាត្លង់ទិក (ក្លាស​បេ)',
         'America/Godthab' => 'ម៉ោង​នៅ​ ហ្គ្រោអង់ឡង់ (នូក)',
+        'America/Nuuk' => 'ម៉ោង​នៅ​ ហ្គ្រោអង់ឡង់ (នូក)',
         'America/Goose_Bay' => 'ម៉ោង​នៅ​អាត្លង់ទិក (កូសេបេ)',
         'America/Grand_Turk' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (ហ្គ្រេន​ទូក)',
         'America/Grenada' => 'ម៉ោង​នៅ​អាត្លង់ទិក (ហ្គ្រើណាដ)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (វិនសេណេស ឥណ្ឌាណា)',
         'America/Indiana/Winamac' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (វីណាម៉ាក់ ឥណ្ឌាណា)',
         'America/Indianapolis' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (ឥណ្ឌាណាប៉ូលីស)',
+        'America/Indiana/Indianapolis' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (ឥណ្ឌាណាប៉ូលីស)',
         'America/Inuvik' => 'ម៉ោង​នៅតំបន់ភ្នំនៃទ្វីប​អាមេរិក​​​ខាង​ជើង (អ៊ីនូវីក)',
         'America/Iqaluit' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (អ៊ីកាឡូអ៊ីត)',
         'America/Jamaica' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (ហ្សាម៉ាអ៊ីក)',
         'America/Jujuy' => 'ម៉ោង​នៅ​អាហ្សង់ទីន (សូសុយ)',
+        'America/Argentina/Jujuy' => 'ម៉ោង​នៅ​អាហ្សង់ទីន (សូសុយ)',
         'America/Juneau' => 'ម៉ោង​នៅ​អាឡាស្កា (ហ្យូនៀ)',
         'America/Kentucky/Monticello' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (ម៉ងទីសេឡូ កេនទូគី)',
         'America/Kralendijk' => 'ម៉ោង​នៅ​អាត្លង់ទិក (ក្រាលែនឌីក)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'ម៉ោង​នៅ​ប៉េរូ (លីម៉ា)',
         'America/Los_Angeles' => 'ម៉ោងនៅប៉ាស៊ីហ្វិកអាមេរិក (ឡូអង់ហ្គិឡេស)',
         'America/Louisville' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (លូអ៊ីវីល)',
+        'America/Kentucky/Louisville' => 'ម៉ោងនៅទ្វីបអាមរិកខាងជើងភាគខាងកើត (លូអ៊ីវីល)',
         'America/Lower_Princes' => 'ម៉ោង​នៅ​អាត្លង់ទិក (ឡូវើ​ព្រីន​ហ្គ័រទ័រ)',
         'America/Maceio' => 'ម៉ោង​នៅ​ប្រាស៊ីលីយ៉ា (ម៉ាកសេអូ)',
         'America/Managua' => 'ម៉ោង​​នៅ​ទ្វីបអាមេរិក​ខាង​ជើងភាគកណ្តាល (ម៉ាណាហ្គា)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'ម៉ោង​​នៅ​ទ្វីបអាមេរិក​ខាង​ជើងភាគកណ្តាល (ម៉ាតាម៉ូរ៉ូស)',
         'America/Mazatlan' => 'ម៉ោង​នៅ​ប៉ាស៊ីហ្វិក​ម៉ិកស៊ិក (ម៉ាហ្សាតឡង់)',
         'America/Mendoza' => 'ម៉ោង​នៅ​អាហ្សង់ទីន (ម៉ែនឌូហ្សា)',
+        'America/Argentina/Mendoza' => 'ម៉ោង​នៅ​អាហ្សង់ទីន (ម៉ែនឌូហ្សា)',
         'America/Menominee' => 'ម៉ោង​​នៅ​ទ្វីបអាមេរិក​ខាង​ជើងភាគកណ្តាល (ម៉េណូមីនី)',
         'America/Merida' => 'ម៉ោង​​នៅ​ទ្វីបអាមេរិក​ខាង​ជើងភាគកណ្តាល (ម៉េរីដា)',
         'America/Metlakatla' => 'ម៉ោង​នៅ​អាឡាស្កា (មេត្លា កាត្លា)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'ម៉ោង​នៅ​អារ៉ាប់ (បារ៉ែន)',
         'Asia/Baku' => 'ម៉ោង​នៅ​អាស៊ែបៃហ្សង់ (បាគូ)',
         'Asia/Bangkok' => 'ម៉ោង​នៅ​ឥណ្ឌូចិន (បាងកក)',
-        'Asia/Barnaul' => 'ម៉ោង​នៅ​ រុស្ស៊ី (បានូល)',
+        'Asia/Barnaul' => 'ម៉ោង​នៅ​ក្រាណូយ៉ាស (បានូល)',
         'Asia/Beirut' => 'ម៉ោង​នៅ​អឺរ៉ុប​​ខាង​កើត​ (បេរូត)',
         'Asia/Bishkek' => 'ម៉ោងនៅកៀហ្ស៊ីស៊ីស្ថាន (ប៊ីស្កេក)',
         'Asia/Brunei' => 'ម៉ោងនៅព្រុយណេដារូសាឡឹម',
         'Asia/Calcutta' => 'ម៉ោង​ស្តង់ដារនៅ​ឥណ្ឌា (កុលកាតា)',
+        'Asia/Kolkata' => 'ម៉ោង​ស្តង់ដារនៅ​ឥណ្ឌា (កុលកាតា)',
         'Asia/Chita' => 'ម៉ោង​នៅ​យ៉ាគុតស្កិ៍ (ឈីតា)',
         'Asia/Colombo' => 'ម៉ោង​ស្តង់ដារនៅ​ឥណ្ឌា (កូឡុំបូ)',
         'Asia/Damascus' => 'ម៉ោង​នៅ​អឺរ៉ុប​​ខាង​កើត​ (ដាម៉ាស)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ម៉ោង​នៅ​ រុស្ស៊ី (កាំឆាតកា)',
         'Asia/Karachi' => 'ម៉ោង​នៅ​ប៉ាគីស្ថាន (ការ៉ាជី)',
         'Asia/Katmandu' => 'ម៉ោងនៅនេប៉ាល់ (កាត់ម៉ាន់ឌូ)',
+        'Asia/Kathmandu' => 'ម៉ោងនៅនេប៉ាល់ (កាត់ម៉ាន់ឌូ)',
         'Asia/Khandyga' => 'ម៉ោង​នៅ​យ៉ាគុតស្កិ៍ (ខាន់ឌីហ្គា)',
         'Asia/Krasnoyarsk' => 'ម៉ោង​នៅ​ក្រាណូយ៉ាស (ក្រាសនុយ៉ាក)',
         'Asia/Kuala_Lumpur' => 'ម៉ោង​នៅ​ម៉ាឡេស៊ី (កូឡាឡាំពួរ)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ម៉ោង​ស្តង់ដា​នៅ​កាល់ (ម៉ាស្កាត)',
         'Asia/Nicosia' => 'ម៉ោង​នៅ​អឺរ៉ុប​​ខាង​កើត​ (នីកូស៊ី)',
         'Asia/Novokuznetsk' => 'ម៉ោង​នៅ​ក្រាណូយ៉ាស (ណូវ៉ូឃូសណេតស្កិ៍)',
-        'Asia/Novosibirsk' => 'ម៉ោង​នៅ​ណូវ៉ូស៊ីប៊ីក (ណូវ៉ូស៊ីប៊ឺក)',
+        'Asia/Novosibirsk' => 'ម៉ោង​នៅ​ក្រាណូយ៉ាស (ណូវ៉ូស៊ីប៊ឺក)',
         'Asia/Omsk' => 'ម៉ោង​នៅ​អូម (អូមស្កិ៍)',
         'Asia/Oral' => 'ពេលវេលានៅកាហ្សាក់ស្ថាន (អូរ៉ាល់)',
         'Asia/Phnom_Penh' => 'ម៉ោង​នៅ​ឥណ្ឌូចិន (ភ្នំពេញ)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'ពេលវេលានៅកាហ្សាក់ស្ថាន (កូស្ដេណេ)',
         'Asia/Qyzylorda' => 'ពេលវេលានៅកាហ្សាក់ស្ថាន (គីហ្ស៊ីឡូដា)',
         'Asia/Rangoon' => 'ម៉ោង​នៅ​មីយ៉ាន់ម៉ា (រ៉ង់ហ្គូន)',
+        'Asia/Yangon' => 'ម៉ោង​នៅ​មីយ៉ាន់ម៉ា (រ៉ង់ហ្គូន)',
         'Asia/Riyadh' => 'ម៉ោង​នៅ​អារ៉ាប់ (រីយ៉ាដ)',
         'Asia/Saigon' => 'ម៉ោង​នៅ​ឥណ្ឌូចិន (ហូជីមីញ)',
-        'Asia/Sakhalin' => 'ម៉ោង​នៅ​សាក់ខាលីន (សាខាលីន)',
+        'Asia/Ho_Chi_Minh' => 'ម៉ោង​នៅ​ឥណ្ឌូចិន (ហូជីមីញ)',
+        'Asia/Sakhalin' => 'ម៉ោង​នៅ​ម៉ាហ្កាដាន (សាខាលីន)',
         'Asia/Samarkand' => 'ម៉ោង​នៅ​អ៊ូសបេគីស្ថាន (សាម៉ាកាន់)',
         'Asia/Seoul' => 'ម៉ោង​នៅ​កូរ៉េ (សេអ៊ូល)',
         'Asia/Shanghai' => 'ម៉ោង​នៅ​ចិន (សៀងហៃ)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ម៉ោង​នៅ​អ៊ីរ៉ង់ (តេហេរ៉ង់)',
         'Asia/Thimphu' => 'ម៉ោងនៅប៊ូតង់ (ធីមភូ)',
         'Asia/Tokyo' => 'ម៉ោង​នៅ​ជប៉ុន (តូក្យូ)',
-        'Asia/Tomsk' => 'ម៉ោង​នៅ​ រុស្ស៊ី (ថមស្កិ៍)',
+        'Asia/Tomsk' => 'ម៉ោង​នៅ​ក្រាណូយ៉ាស (ថមស្កិ៍)',
         'Asia/Ulaanbaatar' => 'ម៉ោង​នៅ​អ៊ូឡាន​បាទូ (អ៊ូឡង់បាទ័រ)',
         'Asia/Urumqi' => 'ម៉ោង​នៅ​ ចិន (អ៊ូរាំហ្គី)',
         'Asia/Ust-Nera' => 'ម៉ោង​នៅ​វ៉្លាឌីវ៉ូស្តុក (អូស្តណេរ៉ា)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'ម៉ោង​នៅ​អឺរ៉ុប​ខាង​លិច (កាណារី)',
         'Atlantic/Cape_Verde' => 'ម៉ោង​នៅ​កាប់វែរ',
         'Atlantic/Faeroe' => 'ម៉ោង​នៅ​អឺរ៉ុប​ខាង​លិច (ហ្វារ៉ូ)',
+        'Atlantic/Faroe' => 'ម៉ោង​នៅ​អឺរ៉ុប​ខាង​លិច (ហ្វារ៉ូ)',
         'Atlantic/Madeira' => 'ម៉ោង​នៅ​អឺរ៉ុប​ខាង​លិច (ម៉ាដៀរ៉ា)',
         'Atlantic/Reykjavik' => 'ម៉ោងនៅគ្រីនវិច (រ៉ៃក្យាវិក)',
         'Atlantic/South_Georgia' => 'ម៉ោង​នៅ​កោះ​ហ្សកហ្ស៊ី (ហ្សកហ្ស៊ី​ខាង​ត្បូង)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'ម៉ោងសកលដែលមានការសម្រួល',
         'Europe/Amsterdam' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (អាំស្ទែដាំ)',
         'Europe/Andorra' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (អង់ដូរ៉ា)',
-        'Europe/Astrakhan' => 'ម៉ោង​នៅ​មូស្គូ (អាស្ត្រាខាន់)',
+        'Europe/Astrakhan' => 'ម៉ោង​នៅ​ រុស្ស៊ី (អាស្ត្រាខាន់)',
         'Europe/Athens' => 'ម៉ោង​នៅ​អឺរ៉ុប​​ខាង​កើត​ (អាថែន)',
         'Europe/Belgrade' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (បែលក្រាដ)',
         'Europe/Berlin' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (បែរឡាំង)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ម៉ោងនៅគ្រីនវិច (ជេស៊ី)',
         'Europe/Kaliningrad' => 'ម៉ោង​នៅ​អឺរ៉ុប​​ខាង​កើត​ (កាលីនីងហ្រ្គាដ)',
         'Europe/Kiev' => 'ម៉ោង​នៅ​អឺរ៉ុប​​ខាង​កើត​ (កៀវ)',
-        'Europe/Kirov' => 'ម៉ោង​នៅ​ រុស្ស៊ី (គីរ៉ូវ)',
+        'Europe/Kyiv' => 'ម៉ោង​នៅ​អឺរ៉ុប​​ខាង​កើត​ (កៀវ)',
+        'Europe/Kirov' => 'ម៉ោង​នៅ​មូស្គូ (គីរ៉ូវ)',
         'Europe/Lisbon' => 'ម៉ោង​នៅ​អឺរ៉ុប​ខាង​លិច (លីសបោន)',
         'Europe/Ljubljana' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (ជូបហ្សាណា)',
         'Europe/London' => 'ម៉ោងនៅគ្រីនវិច (ឡុងដ៍)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'ម៉ោង​នៅ​ រុស្ស៊ី (សាម៉ារ៉ា)',
         'Europe/San_Marino' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (សាំងម៉ារ៉ាំង)',
         'Europe/Sarajevo' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (សារ៉ាយ៉េវ៉ូ)',
-        'Europe/Saratov' => 'ម៉ោង​នៅ​មូស្គូ (សារ៉ាតាវ)',
+        'Europe/Saratov' => 'ម៉ោង​នៅ​ រុស្ស៊ី (សារ៉ាតាវ)',
         'Europe/Simferopol' => 'ម៉ោង​នៅ​មូស្គូ (ស៊ីមហ្វើរ៉ុប៉ូល)',
         'Europe/Skopje' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (ស្កុបជេ)',
         'Europe/Sofia' => 'ម៉ោង​នៅ​អឺរ៉ុប​​ខាង​កើត​ (សូហ៊្វីយ៉ា)',
         'Europe/Stockholm' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (ស្តុកខុល)',
         'Europe/Tallinn' => 'ម៉ោង​នៅ​អឺរ៉ុប​​ខាង​កើត​ (តាលិន)',
         'Europe/Tirane' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (ទីរ៉ាណេ)',
-        'Europe/Ulyanovsk' => 'ម៉ោង​នៅ​មូស្គូ (អុលយ៉ាណូវស្កិ៍)',
+        'Europe/Ulyanovsk' => 'ម៉ោង​នៅ​ រុស្ស៊ី (អុលយ៉ាណូវស្កិ៍)',
         'Europe/Vaduz' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (វ៉ាឌូស)',
         'Europe/Vatican' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (វ៉ាទីកង់)',
         'Europe/Vienna' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (វីយែន)',
         'Europe/Vilnius' => 'ម៉ោង​នៅ​អឺរ៉ុប​​ខាង​កើត​ (វីលនីញូស)',
-        'Europe/Volgograd' => 'ម៉ោង​នៅ​វ៉ូហ្កោក្រាដ (វ៉ុលហ្គោហ្គ្រាដ)',
+        'Europe/Volgograd' => 'ម៉ោង​នៅ​មូស្គូ (វ៉ុលហ្គោហ្គ្រាដ)',
         'Europe/Warsaw' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (វ៉ាសូវី)',
         'Europe/Zagreb' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (សាគ្រែប)',
         'Europe/Zurich' => 'ម៉ោង​នៅ​អឺរ៉ុប​កណ្ដាល (ហ៊្សូរីច)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'ម៉ោង​នៅ​ចាថាំ',
         'Pacific/Easter' => 'ម៉ោងនៅកោះអ៊ីស្ទ័រ',
         'Pacific/Efate' => 'ម៉ោង​នៅ​វ៉ានូទូ (អ៊ីហ្វាតេ)',
-        'Pacific/Enderbury' => 'ម៉ោង​នៅ​កោះ​ផូនីក (អ៊ីនដឺប៊ូរី)',
+        'Pacific/Enderbury' => 'ម៉ោង​នៅ​កោះ​ផូនីក (កាន់តុន)',
+        'Pacific/Kanton' => 'ម៉ោង​នៅ​កោះ​ផូនីក (កាន់តុន)',
         'Pacific/Fakaofo' => 'ម៉ោង​នៅ​តូខេឡៅ (ហ្វាកៅហ្វូ)',
         'Pacific/Fiji' => 'ម៉ោង​នៅ​ហ្វីជី',
         'Pacific/Funafuti' => 'ម៉ោង​នៅ​ទុយវ៉ាលូ (ហ៊្វូណាហ៊្វូទី)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ម៉ោង​នៅ​កាំបៀ (ហ្គាំបៀ)',
         'Pacific/Guadalcanal' => 'ម៉ោង​នៅ​កោះ​សូឡូម៉ុន (ហ្គាដាល់ខាណាល់)',
         'Pacific/Guam' => 'ម៉ោង​ស្តង់ដារនៅ​ចាំម៉ូរ៉ូ (ហ្គាំ)',
-        'Pacific/Honolulu' => 'ម៉ោង​​នៅ​ហាវៃ-អាល់ដ្យូសិន (ហូណូលូលូ)',
+        'Pacific/Honolulu' => 'ម៉ោង​ស្តង់ដារ​​នៅ​ហាវៃ-អាល់ដ្យូសិន (ហូណូលូលូ)',
         'Pacific/Kiritimati' => 'ម៉ោង​នៅ​កោះ​ឡាញ (គិរីទីម៉ាទិ)',
         'Pacific/Kosrae' => 'ម៉ោង​នៅ​កូស្រៃ (កូស្រែ)',
         'Pacific/Kwajalein' => 'ម៉ោង​នៅ​ម៉ាសាល (ក្វាហ្សាលៀន)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'ម៉ោង​នៅ​ផាឡៅ (ប៉ាឡៅ)',
         'Pacific/Pitcairn' => 'ម៉ោង​នៅ​ភីឃឺន (ភីតខៃរ៉ិន)',
         'Pacific/Ponape' => 'ម៉ោង​នៅ​ប៉ូណាប់ (ផុនប៉ី)',
+        'Pacific/Pohnpei' => 'ម៉ោង​នៅ​ប៉ូណាប់ (ផុនប៉ី)',
         'Pacific/Port_Moresby' => 'ម៉ោង​នៅប៉ាពូអាស៊ី នូវែលហ្គីណេ (ព័រម៉ូរេសប៊ី)',
         'Pacific/Rarotonga' => 'ម៉ោង​នៅប្រជុំ​កោះ​ខូក (រ៉ារ៉ូតុងហ្គា)',
         'Pacific/Saipan' => 'ម៉ោង​ស្តង់ដារនៅ​ចាំម៉ូរ៉ូ (សៃប៉ាន)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'ម៉ោង​នៅ​កោះ​កីប៊ឺត (តារ៉ាវ៉ា)',
         'Pacific/Tongatapu' => 'ម៉ោង​នៅ​តុងហ្គា (តុងហ្គាតាពូ)',
         'Pacific/Truk' => 'ម៉ោង​នៅ​ចូអុក (ឈូអុក)',
+        'Pacific/Chuuk' => 'ម៉ោង​នៅ​ចូអុក (ឈូអុក)',
         'Pacific/Wake' => 'ម៉ោង​នៅ​កោះវេក (វ៉ាគី)',
         'Pacific/Wallis' => 'ម៉ោង​នៅ​វ៉ាលីស និងហ្វ៊ុទូណា',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/kn.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'ಪೂರ್ವ ಆಫ್ರಿಕಾ ಸಮಯ (ಆಡಿಸ್ ಅಬಾಬಾ)',
         'Africa/Algiers' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಅಲ್ಜೀರ್ಸ್)',
         'Africa/Asmera' => 'ಪೂರ್ವ ಆಫ್ರಿಕಾ ಸಮಯ (ಅಸ್ಮಾರಾ)',
+        'Africa/Asmara' => 'ಪೂರ್ವ ಆಫ್ರಿಕಾ ಸಮಯ (ಅಸ್ಮಾರಾ)',
         'Africa/Bamako' => 'ಗ್ರೀನ್‌ವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ (ಬಮಾಕೊ)',
         'Africa/Bangui' => 'ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಸಮಯ (ಬಾಂಗಿ)',
         'Africa/Banjul' => 'ಗ್ರೀನ್‌ವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ (ಬಂಜುಲ್)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'ಕೊಲಂಬಿಯಾ ಸಮಯ (ಬೊಗೋಟ)',
         'America/Boise' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ಸಮಯ (ಬ್ವಾಸಿ)',
         'America/Buenos_Aires' => 'ಅರ್ಜೆಂಟೀನಾ ಸಮಯ (ಬ್ಯೂನಸ್ ಐರಿಸ್)',
+        'America/Argentina/Buenos_Aires' => 'ಅರ್ಜೆಂಟೀನಾ ಸಮಯ (ಬ್ಯೂನಸ್ ಐರಿಸ್)',
         'America/Cambridge_Bay' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ಸಮಯ (ಕೇಮ್‌ಬ್ರಿಡ್ಜ್ ಬೇ)',
         'America/Campo_Grande' => 'ಅಮೆಜಾನ್ ಸಮಯ (ಕಾಂಪೊ ಗ್ರಾಂಡೆ)',
         'America/Cancun' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಕ್ಯಾಂಕನ್)',
         'America/Caracas' => 'ವೆನಿಜುವೆಲಾ ಸಮಯ (ಕ್ಯಾರಕಾಸ್)',
         'America/Catamarca' => 'ಅರ್ಜೆಂಟೀನಾ ಸಮಯ (ಕಟಮಾರ್ಕ)',
+        'America/Argentina/Catamarca' => 'ಅರ್ಜೆಂಟೀನಾ ಸಮಯ (ಕಟಮಾರ್ಕ)',
         'America/Cayenne' => 'ಫ್ರೆಂಚ್ ಗಯಾನಾ ಸಮಯ (ಕೆಯೆನಿ)',
         'America/Cayman' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಕೇಮನ್)',
         'America/Chicago' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಸಮಯ (ಚಿಕಾಗೋ)',
         'America/Chihuahua' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಸಮಯ (ಚಿವಾವ)',
         'America/Ciudad_Juarez' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ಸಮಯ (ಸಿಯುಡಾಡ್ ವಾರೆಝ್)',
         'America/Coral_Harbour' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಅಟಿಕೊಕಾನ್)',
+        'America/Atikokan' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಅಟಿಕೊಕಾನ್)',
         'America/Cordoba' => 'ಅರ್ಜೆಂಟೀನಾ ಸಮಯ (ಕೊರ್ಡೊಬಾ)',
+        'America/Argentina/Cordoba' => 'ಅರ್ಜೆಂಟೀನಾ ಸಮಯ (ಕೊರ್ಡೊಬಾ)',
         'America/Costa_Rica' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಸಮಯ (ಕೋಸ್ಟಾ ರಿಕಾ)',
+        'America/Coyhaique' => 'ಚಿಲಿ ಸಮಯ (ಕೊಯಯ್ಕಿ)',
         'America/Creston' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ಸಮಯ (ಕ್ರೆಸ್ಟನ್)',
         'America/Cuiaba' => 'ಅಮೆಜಾನ್ ಸಮಯ (ಕ್ಯೂಇಬಾ)',
         'America/Curacao' => 'ಅಟ್ಲಾಂಟಿಕ್ ಸಮಯ (ಕುರಾಕಾವ್)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ಬ್ರೆಸಿಲಿಯಾದ ಸಮಯ (ಫೊರ್ಟಲೆಜಾ)',
         'America/Glace_Bay' => 'ಅಟ್ಲಾಂಟಿಕ್ ಸಮಯ (ಗ್ಲೇಸ್ ಬೇ)',
         'America/Godthab' => 'ಗ್ರೀನ್‌ಲ್ಯಾಂಡ್ ಸಮಯ (ನೂಕ್)',
+        'America/Nuuk' => 'ಗ್ರೀನ್‌ಲ್ಯಾಂಡ್ ಸಮಯ (ನೂಕ್)',
         'America/Goose_Bay' => 'ಅಟ್ಲಾಂಟಿಕ್ ಸಮಯ (ಗೂಸ್ ಬೇ)',
         'America/Grand_Turk' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಗ್ರ್ಯಾಂಡ್ ಟರ್ಕ್)',
         'America/Grenada' => 'ಅಟ್ಲಾಂಟಿಕ್ ಸಮಯ (ಗ್ರೆನಾಡ)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ವಿನ್‌ಸೆನ್ನೀಸ್, ಇಂಡಿಯಾನಾ)',
         'America/Indiana/Winamac' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ವಿನಾಮ್ಯಾಕ್, ಇಂಡಿಯಾನಾ)',
         'America/Indianapolis' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಇಂಡಿಯಾನಾಪೊಲಿಸ್)',
+        'America/Indiana/Indianapolis' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಇಂಡಿಯಾನಾಪೊಲಿಸ್)',
         'America/Inuvik' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ಸಮಯ (ಇನುವಿಕ್)',
         'America/Iqaluit' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಈಕ್ವಾಲಿಟ್)',
         'America/Jamaica' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಜಮೈಕಾ)',
         'America/Jujuy' => 'ಅರ್ಜೆಂಟೀನಾ ಸಮಯ (ಜುಜೈ)',
+        'America/Argentina/Jujuy' => 'ಅರ್ಜೆಂಟೀನಾ ಸಮಯ (ಜುಜೈ)',
         'America/Juneau' => 'ಅಲಾಸ್ಕಾ ಸಮಯ (ಜುನೇವ್)',
         'America/Kentucky/Monticello' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಮೊಂಟಿಸೆಲ್ಲೋ, ಕೆಂಟುಕಿ)',
         'America/Kralendijk' => 'ಅಟ್ಲಾಂಟಿಕ್ ಸಮಯ (ಕ್ರೆಲೆಂಡಿಜ್ಕ್)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'ಪೆರು ಸಮಯ (ಲಿಮಾ)',
         'America/Los_Angeles' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ಸಮಯ (ಲಾಸ್ ಏಂಜಲೀಸ್)',
         'America/Louisville' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಲೂಯೀಸ್‌ವಿಲ್ಲೆ)',
+        'America/Kentucky/Louisville' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಸಮಯ (ಲೂಯೀಸ್‌ವಿಲ್ಲೆ)',
         'America/Lower_Princes' => 'ಅಟ್ಲಾಂಟಿಕ್ ಸಮಯ (ಲೋವರ್ ಪ್ರಿನ್ಸಸ್ ಕ್ವಾರ್ಟರ್)',
         'America/Maceio' => 'ಬ್ರೆಸಿಲಿಯಾದ ಸಮಯ (ಮೆಸೀಯೊ)',
         'America/Managua' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಸಮಯ (ಮನಾಗುವಾ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಸಮಯ (ಮಟಾಮೋರಸ್)',
         'America/Mazatlan' => 'ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಸಮಯ (ಮಜಟ್ಲಾನ್)',
         'America/Mendoza' => 'ಅರ್ಜೆಂಟೀನಾ ಸಮಯ (ಮೆಂಡೊಜಾ)',
+        'America/Argentina/Mendoza' => 'ಅರ್ಜೆಂಟೀನಾ ಸಮಯ (ಮೆಂಡೊಜಾ)',
         'America/Menominee' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಸಮಯ (ಮೆನೊಮಿನೀ)',
         'America/Merida' => 'ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಸಮಯ (ಮೆರಿದಾ)',
         'America/Metlakatla' => 'ಅಲಾಸ್ಕಾ ಸಮಯ (ಮೆಟ್ಲಾಕಾಟ್ಲಾ)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'ಅರೇಬಿಯನ್ ಸಮಯ (ಏಡನ್)',
         'Asia/Almaty' => 'ಕಝಾಖ್‌ಸ್ತಾನ್ ಸಮಯ (ಅಲ್ಮಾಟಿ)',
         'Asia/Amman' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ಅಮ್ಮಾನ್)',
-        'Asia/Anadyr' => 'ಅನಡೀರ್‌ ಸಮಯ (ಅನದ್ಯರ್)',
+        'Asia/Anadyr' => 'ಪೆತ್ರೋಪಾವ್ಲೋಸ್ಕ್‌‌-ಕಮ್ಚತ್ಸ್‌ಕೀ ಸಮಯ (ಅನದ್ಯರ್)',
         'Asia/Aqtau' => 'ಕಝಾಖ್‌ಸ್ತಾನ್ ಸಮಯ (ಅಕ್ತಾವ್)',
         'Asia/Aqtobe' => 'ಕಝಾಖ್‌ಸ್ತಾನ್ ಸಮಯ (ಅಕ್ಟೋಬೆ)',
         'Asia/Ashgabat' => 'ತುರ್ಕ್‌ಮೇನಿಸ್ತಾನ್ ಸಮಯ (ಅಶ್ಗಬಾತ್)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'ಅರೇಬಿಯನ್ ಸಮಯ (ಬಹ್ರೇನ್)',
         'Asia/Baku' => 'ಅಜರ್ಬೈಜಾನ್ ಸಮಯ (ಬಕು)',
         'Asia/Bangkok' => 'ಇಂಡೊಚೈನಾ ಸಮಯ (ಬ್ಯಾಂಕಾಕ್)',
-        'Asia/Barnaul' => 'ರಷ್ಯಾ ಸಮಯ (ಬಾರ್ನೌಲ್)',
+        'Asia/Barnaul' => 'ಕ್ರಾಸ್‌ನೊಯಾರ್ಸ್ಕ್ ಸಮಯ (ಬಾರ್ನೌಲ್)',
         'Asia/Beirut' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ಬೀರಟ್)',
         'Asia/Bishkek' => 'ಕಿರ್ಗಿಸ್ತಾನ್ ಸಮಯ (ಬಿಶ್ಕೆಕ್)',
         'Asia/Brunei' => 'ಬ್ರೂನಿ ದಾರುಸಲೆಮ್ ಸಮಯ',
         'Asia/Calcutta' => 'ಭಾರತೀಯ ಪ್ರಮಾಣಿತ ಸಮಯ (ಕೊಲ್ಕತ್ತಾ)',
+        'Asia/Kolkata' => 'ಭಾರತೀಯ ಪ್ರಮಾಣಿತ ಸಮಯ (ಕೊಲ್ಕತ್ತಾ)',
         'Asia/Chita' => 'ಯಾಕುಟ್ಸಕ್ ಸಮಯ (ಚಿಟ)',
         'Asia/Colombo' => 'ಭಾರತೀಯ ಪ್ರಮಾಣಿತ ಸಮಯ (ಕೊಲಂಬೊ)',
         'Asia/Damascus' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ಡಮಾಸ್ಕಸ್)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ಪೆತ್ರೋಪಾವ್ಲೋಸ್ಕ್‌‌-ಕಮ್ಚತ್ಸ್‌ಕೀ ಸಮಯ (ಕಂಚಟ್ಕ್)',
         'Asia/Karachi' => 'ಪಾಕಿಸ್ತಾನ ಸಮಯ (ಕರಾಚಿ)',
         'Asia/Katmandu' => 'ನೇಪಾಳ ಸಮಯ (ಕಠ್ಮಂಡು)',
+        'Asia/Kathmandu' => 'ನೇಪಾಳ ಸಮಯ (ಕಠ್ಮಂಡು)',
         'Asia/Khandyga' => 'ಯಾಕುಟ್ಸಕ್ ಸಮಯ (ಖಂಡ್ಯಾಗಾ)',
         'Asia/Krasnoyarsk' => 'ಕ್ರಾಸ್‌ನೊಯಾರ್ಸ್ಕ್ ಸಮಯ (ಕ್ರಾಸ್ನೊಯಾರ್ಸ್ಕ್)',
         'Asia/Kuala_Lumpur' => 'ಮಲೇಷಿಯಾ ಸಮಯ (ಕೌಲಾ ಲಂಪುರ)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ಗಲ್ಫ್ ಪ್ರಮಾಣಿತ ಸಮಯ (ಮಸ್ಕಟ್)',
         'Asia/Nicosia' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ನಿಕೋಸಿಯಾ)',
         'Asia/Novokuznetsk' => 'ಕ್ರಾಸ್‌ನೊಯಾರ್ಸ್ಕ್ ಸಮಯ (ನೋವೋಕುಜೆ)',
-        'Asia/Novosibirsk' => 'ನೊವೊಸಿಬಿರ್‌ಸ್ಕ್ ಸಮಯ (ನೊವೋಸಿಬಿಸ್ಕ್)',
+        'Asia/Novosibirsk' => 'ಕ್ರಾಸ್‌ನೊಯಾರ್ಸ್ಕ್ ಸಮಯ (ನೊವೋಸಿಬಿಸ್ಕ್)',
         'Asia/Omsk' => 'ಒಮಾಸ್ಕ್ ಸಮಯ (ಒಮ್ಸ್ಕ್)',
         'Asia/Oral' => 'ಕಝಾಖ್‌ಸ್ತಾನ್ ಸಮಯ (ಒರಲ್)',
         'Asia/Phnom_Penh' => 'ಇಂಡೊಚೈನಾ ಸಮಯ (ನೋಮ್ ಪೆನ್)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'ಕಝಾಖ್‌ಸ್ತಾನ್ ಸಮಯ (ಕೊಸ್ಟನಯ್)',
         'Asia/Qyzylorda' => 'ಕಝಾಖ್‌ಸ್ತಾನ್ ಸಮಯ (ಕಿಜೈಲೋರ್ದ)',
         'Asia/Rangoon' => 'ಮ್ಯಾನ್ಮಾರ್ ಸಮಯ (ಯಾಂಗೊನ್)',
+        'Asia/Yangon' => 'ಮ್ಯಾನ್ಮಾರ್ ಸಮಯ (ಯಾಂಗೊನ್)',
         'Asia/Riyadh' => 'ಅರೇಬಿಯನ್ ಸಮಯ (ರಿಯಾದ್)',
         'Asia/Saigon' => 'ಇಂಡೊಚೈನಾ ಸಮಯ (ಹೊ ಚಿ ಮಿನ್ ಸಿಟಿ)',
-        'Asia/Sakhalin' => 'ಸ್ಯಾಕ್‌ಹಲಿನ್ ಸಮಯ (ಸಖಾಲಿನ್)',
+        'Asia/Ho_Chi_Minh' => 'ಇಂಡೊಚೈನಾ ಸಮಯ (ಹೊ ಚಿ ಮಿನ್ ಸಿಟಿ)',
+        'Asia/Sakhalin' => 'ಮಗಡಾನ್ ಸಮಯ (ಸಖಾಲಿನ್)',
         'Asia/Samarkand' => 'ಉಜ್ಬೇಕಿಸ್ತಾನ್ ಸಮಯ (ಸಮರಖಂಡ)',
         'Asia/Seoul' => 'ಕೊರಿಯನ್ ಸಮಯ (ಸಿಯೋಲ್)',
         'Asia/Shanghai' => 'ಚೀನಾ ಸಮಯ (ಶಾಂಘೈ)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ಇರಾನ್ ಸಮಯ (ತೆಹ್ರಾನ್)',
         'Asia/Thimphu' => 'ಭೂತಾನ್ ಸಮಯ (ಥಿಂಪು)',
         'Asia/Tokyo' => 'ಜಪಾನ್ ಸಮಯ (ಟೋಕಿಯೊ)',
-        'Asia/Tomsk' => 'ರಷ್ಯಾ ಸಮಯ (ಟೋಮ್‌ಸ್ಕ್)',
+        'Asia/Tomsk' => 'ಕ್ರಾಸ್‌ನೊಯಾರ್ಸ್ಕ್ ಸಮಯ (ಟೋಮ್‌ಸ್ಕ್)',
         'Asia/Ulaanbaatar' => 'ಉಲಾನ್ ಬತೊರ್ ಸಮಯ',
         'Asia/Urumqi' => 'ಚೀನಾ ಸಮಯ (ಉರುಮ್‍ಕಿ)',
         'Asia/Ust-Nera' => 'ವ್ಲಾಡಿವೋಸ್ಟೋಕ್ ಸಮಯ (ಉಸ್ತ್-ನೆರಾ)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಸಮಯ (ಕ್ಯಾನರಿ)',
         'Atlantic/Cape_Verde' => 'ಕೇಪ್ ವರ್ಡ್ ಸಮಯ (ಕೇಪ್ ವೆರ್ಡ್)',
         'Atlantic/Faeroe' => 'ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಸಮಯ (ಫ್ಯಾರೊ)',
+        'Atlantic/Faroe' => 'ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಸಮಯ (ಫ್ಯಾರೊ)',
         'Atlantic/Madeira' => 'ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಸಮಯ (ಮೆಡಿರಾ)',
         'Atlantic/Reykjavik' => 'ಗ್ರೀನ್‌ವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ (ರೈಕ್ಜಾವಿಕ್)',
         'Atlantic/South_Georgia' => 'ದಕ್ಷಿಣ ಜಾರ್ಜಿಯಾ ಸಮಯ',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'ಸಂಘಟಿತ ಸಾರ್ವತ್ರಿಕ ಸಮಯ',
         'Europe/Amsterdam' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಆಮ್‌ಸ್ಟೆರ್‌ಡ್ಯಾಂ)',
         'Europe/Andorra' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಅಂಡೋರಾ)',
-        'Europe/Astrakhan' => 'ಮಾಸ್ಕೋ ಸಮಯ (ಆಸ್ಟ್ರಾಖಾನ್)',
+        'Europe/Astrakhan' => 'ಸಮರ ಸಮಯ (ಆಸ್ಟ್ರಾಖಾನ್)',
         'Europe/Athens' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ಅಥೆನ್ಸ್)',
         'Europe/Belgrade' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಬೆಲ್‌ಗ್ರೇಡ್)',
         'Europe/Berlin' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಬರ್ಲಿನ್)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ಗ್ರೀನ್‌ವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ (ಜೆರ್ಸಿ)',
         'Europe/Kaliningrad' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ಕಲಿನಿನ್‌ಗ್ರಾಡ್)',
         'Europe/Kiev' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ಕಿವ್)',
-        'Europe/Kirov' => 'ರಷ್ಯಾ ಸಮಯ (ಕಿರಾವ್)',
+        'Europe/Kyiv' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ಕಿವ್)',
+        'Europe/Kirov' => 'ಮಾಸ್ಕೋ ಸಮಯ (ಕಿರಾವ್)',
         'Europe/Lisbon' => 'ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಸಮಯ (ಲಿಸ್ಬನ್)',
         'Europe/Ljubljana' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಲ್ಯೂಬ್ಲ್ಯಾನಾ)',
         'Europe/London' => 'ಗ್ರೀನ್‌ವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ (ಲಂಡನ್)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'ಸಮರ ಸಮಯ',
         'Europe/San_Marino' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಸ್ಯಾನ್ ಮರೀನೊ)',
         'Europe/Sarajevo' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಸರಯೇವೊ)',
-        'Europe/Saratov' => 'ಮಾಸ್ಕೋ ಸಮಯ (ಸರಾಟೋವ್)',
+        'Europe/Saratov' => 'ಸಮರ ಸಮಯ (ಸರಾಟೋವ್)',
         'Europe/Simferopol' => 'ಮಾಸ್ಕೋ ಸಮಯ (ಸಿಮ್ಫೆರೋಪೋಲ್)',
         'Europe/Skopje' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಸ್ಕಾಪಿಯಾ)',
         'Europe/Sofia' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ಸೋಫಿಯಾ)',
         'Europe/Stockholm' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಸ್ಟಾಕ್‍ಹೋಮ್)',
         'Europe/Tallinn' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ಟ್ಯಾಲಿನ್)',
         'Europe/Tirane' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಟಿರಾನೆ)',
-        'Europe/Ulyanovsk' => 'ಮಾಸ್ಕೋ ಸಮಯ (ಉಲ್ಯಾನೊವಸ್ಕ್)',
+        'Europe/Ulyanovsk' => 'ಸಮರ ಸಮಯ (ಉಲ್ಯಾನೊವಸ್ಕ್)',
         'Europe/Vaduz' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ವಡೂಜ್)',
         'Europe/Vatican' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ವ್ಯಾಟಿಕನ್)',
         'Europe/Vienna' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ವಿಯೆನ್ನಾ)',
         'Europe/Vilnius' => 'ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಸಮಯ (ವಿಲ್ನಿಯಸ್)',
-        'Europe/Volgograd' => 'ವೋಲ್ಗೋಗಾರ್ಡ್ ಸಮಯ (ವೊಲ್ಗೊಗ್ರಾಡ್)',
+        'Europe/Volgograd' => 'ಮಾಸ್ಕೋ ಸಮಯ (ವೊಲ್ಗೊಗ್ರಾಡ್)',
         'Europe/Warsaw' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ವಾರ್ಸಾ)',
         'Europe/Zagreb' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಜಾಗ್ರೆಬ್‌)',
         'Europe/Zurich' => 'ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಸಮಯ (ಜ್ಯೂರಿಕ್)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'ಚಥಾಮ್ ಸಮಯ',
         'Pacific/Easter' => 'ಈಸ್ಟರ್ ದ್ವೀಪ ಸಮಯ',
         'Pacific/Efate' => 'ವನೌತು ಸಮಯ (ಇಫೇಟ್)',
-        'Pacific/Enderbury' => 'ಫಿನಿಕ್ಸ್ ದ್ವೀಪಗಳ ಸಮಯ (ಎಂಡರ್ಬರಿ)',
+        'Pacific/Enderbury' => 'ಫಿನಿಕ್ಸ್ ದ್ವೀಪಗಳ ಸಮಯ (ಕ್ಯಾಂಟನ್ ಐಲ್ಯಾಂಡ್)',
+        'Pacific/Kanton' => 'ಫಿನಿಕ್ಸ್ ದ್ವೀಪಗಳ ಸಮಯ (ಕ್ಯಾಂಟನ್ ಐಲ್ಯಾಂಡ್)',
         'Pacific/Fakaofo' => 'ಟೊಕೆಲಾವ್ ಸಮಯ (ಫಕೋಫೋ)',
         'Pacific/Fiji' => 'ಫಿಜಿ ಸಮಯ',
         'Pacific/Funafuti' => 'ತುವಾಲು ಸಮಯ (ಫುನಾಫುಟಿ)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ಗ್ಯಾಂಬಿಯರ್ ಸಮಯ',
         'Pacific/Guadalcanal' => 'ಸಾಲಮನ್ ದ್ವೀಪಗಳ ಸಮಯ (ಗ್ವಾಡಲ್ಕೆನಾಲ್)',
         'Pacific/Guam' => 'ಚಮೋರೋ ಪ್ರಮಾಣಿತ ಸಮಯ (ಗ್ವಾಮ್)',
-        'Pacific/Honolulu' => 'ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಸಮಯ (ಹೊನಲುಲು)',
+        'Pacific/Honolulu' => 'ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ (ಹೊನಲುಲು)',
         'Pacific/Kiritimati' => 'ಲೈನ್ ದ್ವೀಪಗಳ ಸಮಯ (ಕಿರಿತಿಮತಿ)',
         'Pacific/Kosrae' => 'ಕೊಸರೆ ಸಮಯ (ಕೋಸ್ರೆ)',
         'Pacific/Kwajalein' => 'ಮಾರ್ಷಲ್ ದ್ವೀಪಗಳ ಸಮಯ (ಕ್ವಾಜಲೇನ್)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'ಪಾಲಾವ್ ಸಮಯ',
         'Pacific/Pitcairn' => 'ಪಿಟ್‌ಕೈರ್ನ್ ಸಮಯ',
         'Pacific/Ponape' => 'ಪೊನಾಪೆ ಸಮಯ (ಪೋನ್‌ಪೆ)',
+        'Pacific/Pohnpei' => 'ಪೊನಾಪೆ ಸಮಯ (ಪೋನ್‌ಪೆ)',
         'Pacific/Port_Moresby' => 'ಪಪುವಾ ನ್ಯೂ ಗಿನಿಯಾ ಸಮಯ (ಪೋರ್ಟ್ ಮೋರಿಸ್‌ಬೈ)',
         'Pacific/Rarotonga' => 'ಕುಕ್ ದ್ವೀಪಗಳ ಸಮಯ (ರರೋಟೋಂಗಾ)',
         'Pacific/Saipan' => 'ಚಮೋರೋ ಪ್ರಮಾಣಿತ ಸಮಯ (ಸೈಪನ್)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'ಗಿಲ್ಬರ್ಟ್ ದ್ವೀಪಗಳ ಸಮಯ (ತರಾವಾ)',
         'Pacific/Tongatapu' => 'ಟೊಂಗಾ ಸಮಯ (ಟೊಂಗಾಟಾಪು)',
         'Pacific/Truk' => 'ಚುಕ್ ಸಮಯ',
+        'Pacific/Chuuk' => 'ಚುಕ್ ಸಮಯ',
         'Pacific/Wake' => 'ವೇಕ್ ದ್ವೀಪ ಸಮಯ',
         'Pacific/Wallis' => 'ವ್ಯಾಲೀಸ್ ಮತ್ತು ಫ್ಯುಟುನಾ ಸಮಯ (ವ್ಯಾಲಿಸ್)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ko.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ko.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ko.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ko.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => '동아프리카 시간(아디스아바바)',
         'Africa/Algiers' => '중부유럽 시간(알제)',
         'Africa/Asmera' => '동아프리카 시간(아스메라)',
+        'Africa/Asmara' => '동아프리카 시간(아스메라)',
         'Africa/Bamako' => '그리니치 표준시(바마코)',
         'Africa/Bangui' => '서아프리카 시간(방기)',
         'Africa/Banjul' => '그리니치 표준시(반줄)',
@@ -78,19 +79,24 @@
         'America/Bogota' => '콜롬비아 시간(보고타)',
         'America/Boise' => '미 산지 시간(보이시)',
         'America/Buenos_Aires' => '아르헨티나 시간(부에노스 아이레스)',
+        'America/Argentina/Buenos_Aires' => '아르헨티나 시간(부에노스 아이레스)',
         'America/Cambridge_Bay' => '미 산지 시간(케임브리지 베이)',
         'America/Campo_Grande' => '아마존 시간(캄포 그란데)',
         'America/Cancun' => '미 동부 시간(칸쿤)',
         'America/Caracas' => '베네수엘라 시간(카라카스)',
         'America/Catamarca' => '아르헨티나 시간(카타마르카)',
+        'America/Argentina/Catamarca' => '아르헨티나 시간(카타마르카)',
         'America/Cayenne' => '프랑스령 가이아나 시간(카옌)',
         'America/Cayman' => '미 동부 시간(케이맨)',
         'America/Chicago' => '미 중부 시간(시카고)',
         'America/Chihuahua' => '미 중부 시간(치와와)',
         'America/Ciudad_Juarez' => '미 산지 시간(시우다드후아레스)',
         'America/Coral_Harbour' => '미 동부 시간(코랄하버)',
+        'America/Atikokan' => '미 동부 시간(코랄하버)',
         'America/Cordoba' => '아르헨티나 시간(코르도바)',
+        'America/Argentina/Cordoba' => '아르헨티나 시간(코르도바)',
         'America/Costa_Rica' => '미 중부 시간(코스타리카)',
+        'America/Coyhaique' => '칠레 시간(코이아이케)',
         'America/Creston' => '미 산지 시간(크레스톤)',
         'America/Cuiaba' => '아마존 시간(쿠이아바)',
         'America/Curacao' => '대서양 시간(퀴라소)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => '브라질리아 시간(포르탈레자)',
         'America/Glace_Bay' => '대서양 시간(글라스베이)',
         'America/Godthab' => '그린란드 시간(고드호프)',
+        'America/Nuuk' => '그린란드 시간(고드호프)',
         'America/Goose_Bay' => '대서양 시간(구즈베이)',
         'America/Grand_Turk' => '미 동부 시간(그랜드 터크)',
         'America/Grenada' => '대서양 시간(그레나다)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => '미 동부 시간(인디애나주, 빈센스)',
         'America/Indiana/Winamac' => '미 동부 시간(인디애나주, 위너맥)',
         'America/Indianapolis' => '미 동부 시간(인디애나폴리스)',
+        'America/Indiana/Indianapolis' => '미 동부 시간(인디애나폴리스)',
         'America/Inuvik' => '미 산지 시간(이누빅)',
         'America/Iqaluit' => '미 동부 시간(이칼루이트)',
         'America/Jamaica' => '미 동부 시간(자메이카)',
         'America/Jujuy' => '아르헨티나 시간(후후이)',
+        'America/Argentina/Jujuy' => '아르헨티나 시간(후후이)',
         'America/Juneau' => '알래스카 시간(주노)',
         'America/Kentucky/Monticello' => '미 동부 시간(켄터키주, 몬티첼로)',
         'America/Kralendijk' => '대서양 시간(크라렌디즈크)',
@@ -136,6 +145,7 @@
         'America/Lima' => '페루 시간(리마)',
         'America/Los_Angeles' => '미 태평양 시간(로스앤젤레스)',
         'America/Louisville' => '미 동부 시간(루이빌)',
+        'America/Kentucky/Louisville' => '미 동부 시간(루이빌)',
         'America/Lower_Princes' => '대서양 시간(로워 프린스 쿼터)',
         'America/Maceio' => '브라질리아 시간(마세이오)',
         'America/Managua' => '미 중부 시간(마나과)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => '미 중부 시간(마타모로스)',
         'America/Mazatlan' => '멕시코 태평양 시간(마사틀란)',
         'America/Mendoza' => '아르헨티나 시간(멘도사)',
+        'America/Argentina/Mendoza' => '아르헨티나 시간(멘도사)',
         'America/Menominee' => '미 중부 시간(메노미니)',
         'America/Merida' => '미 중부 시간(메리다)',
         'America/Metlakatla' => '알래스카 시간(메틀라카틀라)',
@@ -197,10 +208,10 @@
         'America/Whitehorse' => '유콘 시간(화이트호스)',
         'America/Winnipeg' => '미 중부 시간(위니펙)',
         'America/Yakutat' => '알래스카 시간(야쿠타트)',
-        'Antarctica/Casey' => '오스트레일리아 서부 시간(케이시)',
+        'Antarctica/Casey' => '호주 서부 시간(케이시)',
         'Antarctica/Davis' => '데이비스 시간',
         'Antarctica/DumontDUrville' => '뒤몽뒤르빌 시간(뒤몽 뒤르빌)',
-        'Antarctica/Macquarie' => '오스트레일리아 동부 시간(맥쿼리)',
+        'Antarctica/Macquarie' => '호주 동부 시간(맥쿼리)',
         'Antarctica/Mawson' => '모슨 시간',
         'Antarctica/McMurdo' => '뉴질랜드 시간(맥머도)',
         'Antarctica/Palmer' => '칠레 시간(파머)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => '아라비아 시간(아덴)',
         'Asia/Almaty' => '카자흐스탄 시간(알마티)',
         'Asia/Amman' => '동유럽 시간(암만)',
-        'Asia/Anadyr' => '아나디리 시간',
+        'Asia/Anadyr' => '페트로파블롭스크-캄차츠키 시간(아나디리)',
         'Asia/Aqtau' => '카자흐스탄 시간(아크타우)',
         'Asia/Aqtobe' => '카자흐스탄 시간(악토브)',
         'Asia/Ashgabat' => '투르크메니스탄 시간(아슈하바트)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => '아라비아 시간(바레인)',
         'Asia/Baku' => '아제르바이잔 시간(바쿠)',
         'Asia/Bangkok' => '인도차이나 시간(방콕)',
-        'Asia/Barnaul' => '러시아 시간(바르나울)',
+        'Asia/Barnaul' => '크라스노야르스크 시간(바르나울)',
         'Asia/Beirut' => '동유럽 시간(베이루트)',
         'Asia/Bishkek' => '키르기스스탄 시간(비슈케크)',
         'Asia/Brunei' => '브루나이 시간',
         'Asia/Calcutta' => '인도 표준시(콜카타)',
+        'Asia/Kolkata' => '인도 표준시(콜카타)',
         'Asia/Chita' => '야쿠츠크 시간(치타)',
         'Asia/Colombo' => '인도 표준시(콜롬보)',
         'Asia/Damascus' => '동유럽 시간(다마스쿠스)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => '페트로파블롭스크-캄차츠키 시간(캄차카)',
         'Asia/Karachi' => '파키스탄 시간(카라치)',
         'Asia/Katmandu' => '네팔 시간(카트만두)',
+        'Asia/Kathmandu' => '네팔 시간(카트만두)',
         'Asia/Khandyga' => '야쿠츠크 시간(한디가)',
         'Asia/Krasnoyarsk' => '크라스노야르스크 시간',
         'Asia/Kuala_Lumpur' => '말레이시아 시간(쿠알라룸푸르)',
@@ -258,21 +271,23 @@
         'Asia/Muscat' => '걸프만 표준시(무스카트)',
         'Asia/Nicosia' => '동유럽 시간(니코시아)',
         'Asia/Novokuznetsk' => '크라스노야르스크 시간(노보쿠즈네츠크)',
-        'Asia/Novosibirsk' => '노보시비르스크 시간',
+        'Asia/Novosibirsk' => '크라스노야르스크 시간(노보시비르스크)',
         'Asia/Omsk' => '옴스크 시간',
         'Asia/Oral' => '카자흐스탄 시간(오랄)',
         'Asia/Phnom_Penh' => '인도차이나 시간(프놈펜)',
         'Asia/Pontianak' => '서부 인도네시아 시간(폰티아나크)',
-        'Asia/Pyongyang' => '대한민국 시간(평양)',
+        'Asia/Pyongyang' => '한국 시간(평양)',
         'Asia/Qatar' => '아라비아 시간(카타르)',
         'Asia/Qostanay' => '카자흐스탄 시간(코스타나이)',
         'Asia/Qyzylorda' => '카자흐스탄 시간(키질로르다)',
         'Asia/Rangoon' => '미얀마 시간(랑군)',
+        'Asia/Yangon' => '미얀마 시간(랑군)',
         'Asia/Riyadh' => '아라비아 시간(리야드)',
         'Asia/Saigon' => '인도차이나 시간(사이공)',
-        'Asia/Sakhalin' => '사할린 시간',
+        'Asia/Ho_Chi_Minh' => '인도차이나 시간(사이공)',
+        'Asia/Sakhalin' => '마가단 시간(사할린)',
         'Asia/Samarkand' => '우즈베키스탄 시간(사마르칸트)',
-        'Asia/Seoul' => '대한민국 시간(서울)',
+        'Asia/Seoul' => '한국 시간(서울)',
         'Asia/Shanghai' => '중국 시간(상하이)',
         'Asia/Singapore' => '싱가포르 표준시',
         'Asia/Srednekolymsk' => '마가단 시간(스레드네콜림스크)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => '이란 시간(테헤란)',
         'Asia/Thimphu' => '부탄 시간(팀부)',
         'Asia/Tokyo' => '일본 시간(도쿄)',
-        'Asia/Tomsk' => '러시아 시간(톰스크)',
+        'Asia/Tomsk' => '크라스노야르스크 시간(톰스크)',
         'Asia/Ulaanbaatar' => '울란바토르 시간',
         'Asia/Urumqi' => '중국 시간(우루무치)',
         'Asia/Ust-Nera' => '블라디보스토크 시간(우스티네라)',
@@ -296,27 +311,28 @@
         'Atlantic/Canary' => '서유럽 시간(카나리아 제도)',
         'Atlantic/Cape_Verde' => '카보 베르데 시간',
         'Atlantic/Faeroe' => '서유럽 시간(페로 제도)',
+        'Atlantic/Faroe' => '서유럽 시간(페로 제도)',
         'Atlantic/Madeira' => '서유럽 시간(마데이라)',
         'Atlantic/Reykjavik' => '그리니치 표준시(레이캬비크)',
         'Atlantic/South_Georgia' => '사우스 조지아 시간(사우스조지아)',
         'Atlantic/St_Helena' => '그리니치 표준시(세인트 헬레나)',
         'Atlantic/Stanley' => '포클랜드 제도 시간(스탠리)',
-        'Australia/Adelaide' => '오스트레일리아 중부 시간(애들레이드)',
-        'Australia/Brisbane' => '오스트레일리아 동부 시간(브리스베인)',
-        'Australia/Broken_Hill' => '오스트레일리아 중부 시간(브로컨힐)',
-        'Australia/Darwin' => '오스트레일리아 중부 시간(다윈)',
-        'Australia/Eucla' => '오스트레일리아 중서부 시간(유클라)',
-        'Australia/Hobart' => '오스트레일리아 동부 시간(호바트)',
-        'Australia/Lindeman' => '오스트레일리아 동부 시간(린데만)',
+        'Australia/Adelaide' => '호주 중부 시간(애들레이드)',
+        'Australia/Brisbane' => '호주 동부 시간(브리스베인)',
+        'Australia/Broken_Hill' => '호주 중부 시간(브로컨힐)',
+        'Australia/Darwin' => '호주 중부 시간(다윈)',
+        'Australia/Eucla' => '호주 중서부 시간(유클라)',
+        'Australia/Hobart' => '호주 동부 시간(호바트)',
+        'Australia/Lindeman' => '호주 동부 시간(린데만)',
         'Australia/Lord_Howe' => '로드 하우 시간',
-        'Australia/Melbourne' => '오스트레일리아 동부 시간(멜버른)',
-        'Australia/Perth' => '오스트레일리아 서부 시간(퍼스)',
-        'Australia/Sydney' => '오스트레일리아 동부 시간(시드니)',
+        'Australia/Melbourne' => '호주 동부 시간(멜버른)',
+        'Australia/Perth' => '호주 서부 시간(퍼스)',
+        'Australia/Sydney' => '호주 동부 시간(시드니)',
         'Etc/GMT' => '그리니치 표준시',
         'Etc/UTC' => '협정 세계시',
         'Europe/Amsterdam' => '중부유럽 시간(암스테르담)',
         'Europe/Andorra' => '중부유럽 시간(안도라)',
-        'Europe/Astrakhan' => '모스크바 시간(아스트라한)',
+        'Europe/Astrakhan' => '사마라 시간(아스트라한)',
         'Europe/Athens' => '동유럽 시간(아테네)',
         'Europe/Belgrade' => '중부유럽 시간(베오그라드)',
         'Europe/Berlin' => '중부유럽 시간(베를린)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => '그리니치 표준시(저지)',
         'Europe/Kaliningrad' => '동유럽 시간(칼리닌그라드)',
         'Europe/Kiev' => '동유럽 시간(키예프)',
-        'Europe/Kirov' => '러시아 시간(키로프)',
+        'Europe/Kyiv' => '동유럽 시간(키예프)',
+        'Europe/Kirov' => '모스크바 시간(키로프)',
         'Europe/Lisbon' => '서유럽 시간(리스본)',
         'Europe/Ljubljana' => '중부유럽 시간(류블랴나)',
         'Europe/London' => '그리니치 표준시(런던)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => '사마라 시간',
         'Europe/San_Marino' => '중부유럽 시간(산마리노)',
         'Europe/Sarajevo' => '중부유럽 시간(사라예보)',
-        'Europe/Saratov' => '모스크바 시간(사라토프)',
+        'Europe/Saratov' => '사마라 시간(사라토프)',
         'Europe/Simferopol' => '모스크바 시간(심페로폴)',
         'Europe/Skopje' => '중부유럽 시간(스코페)',
         'Europe/Sofia' => '동유럽 시간(소피아)',
         'Europe/Stockholm' => '중부유럽 시간(스톡홀름)',
         'Europe/Tallinn' => '동유럽 시간(탈린)',
         'Europe/Tirane' => '중부유럽 시간(티라나)',
-        'Europe/Ulyanovsk' => '모스크바 시간(울리야노프스크)',
+        'Europe/Ulyanovsk' => '사마라 시간(울리야노프스크)',
         'Europe/Vaduz' => '중부유럽 시간(파두츠)',
         'Europe/Vatican' => '중부유럽 시간(바티칸)',
         'Europe/Vienna' => '중부유럽 시간(비엔나)',
         'Europe/Vilnius' => '동유럽 시간(빌니우스)',
-        'Europe/Volgograd' => '볼고그라드 시간(볼고그라트)',
+        'Europe/Volgograd' => '모스크바 시간(볼고그라트)',
         'Europe/Warsaw' => '중부유럽 시간(바르샤바)',
         'Europe/Zagreb' => '중부유럽 시간(자그레브)',
         'Europe/Zurich' => '중부유럽 시간(취리히)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => '채텀 시간',
         'Pacific/Easter' => '이스터섬 시간(이스터 섬)',
         'Pacific/Efate' => '바누아투 시간(에파테)',
-        'Pacific/Enderbury' => '피닉스 제도 시간(엔더베리)',
+        'Pacific/Enderbury' => '피닉스 제도 시간(칸톤)',
+        'Pacific/Kanton' => '피닉스 제도 시간(칸톤)',
         'Pacific/Fakaofo' => '토켈라우 시간(파카오푸)',
         'Pacific/Fiji' => '피지 시간',
         'Pacific/Funafuti' => '투발루 시간(푸나푸티)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => '감비에 시간(감비어)',
         'Pacific/Guadalcanal' => '솔로몬 제도 시간(과달카날)',
         'Pacific/Guam' => '차모로 시간(괌)',
-        'Pacific/Honolulu' => '하와이 알류샨 시간(호놀룰루)',
+        'Pacific/Honolulu' => '하와이 알류샨 표준시(호놀룰루)',
         'Pacific/Kiritimati' => '라인 제도 시간(키리티마티)',
         'Pacific/Kosrae' => '코스라에섬 시간(코스레)',
         'Pacific/Kwajalein' => '마셜 제도 시간(콰잘렌)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => '팔라우 시간',
         'Pacific/Pitcairn' => '핏케언 시간',
         'Pacific/Ponape' => '포나페 시간',
+        'Pacific/Pohnpei' => '포나페 시간',
         'Pacific/Port_Moresby' => '파푸아뉴기니 시간(포트모르즈비)',
         'Pacific/Rarotonga' => '쿡 제도 시간(라로통가)',
         'Pacific/Saipan' => '차모로 시간(사이판)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => '길버트 제도 시간(타라와)',
         'Pacific/Tongatapu' => '통가 시간(통가타푸)',
         'Pacific/Truk' => '추크 시간(트루크)',
+        'Pacific/Chuuk' => '추크 시간(트루크)',
         'Pacific/Wake' => '웨이크섬 시간',
         'Pacific/Wallis' => '월리스푸투나 제도 시간',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ks_Deva.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ks_Deva.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ks_Deva.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ks_Deva.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,6 +37,7 @@
         'America/Chihuahua' => 'सेंट्रल वख (چِہُوا ہُوا)',
         'America/Ciudad_Juarez' => 'माउंटेन वख (Ciudad Juárez)',
         'America/Coral_Harbour' => 'मशरिकी वख (اٹی کوکنٍ)',
+        'America/Atikokan' => 'मशरिकी वख (اٹی کوکنٍ)',
         'America/Costa_Rica' => 'सेंट्रल वख (کوسٹا ریٖکا)',
         'America/Creston' => 'माउंटेन वख (کریسٹن)',
         'America/Curacao' => 'अटलांटिक वख (کیوٗراکااو)',
@@ -50,6 +51,7 @@
         'America/Fort_Nelson' => 'माउंटेन वख (فورٹ نیلسن)',
         'America/Glace_Bay' => 'अटलांटिक वख (گلیس خلیٖج)',
         'America/Godthab' => 'گرین لینڈ वख (نوٗک)',
+        'America/Nuuk' => 'گرین لینڈ वख (نوٗک)',
         'America/Goose_Bay' => 'अटलांटिक वख (گوٗس خلیٖج)',
         'America/Grand_Turk' => 'मशरिकी वख (گرینڈ تٔرک)',
         'America/Grenada' => 'अटलांटिक वख (گریناڈا)',
@@ -64,6 +66,7 @@
         'America/Indiana/Vincennes' => 'मशरिकी वख (وِنسینیس، انڈیانا)',
         'America/Indiana/Winamac' => 'मशरिकी वख (وِنیمیک، انڈیانا)',
         'America/Indianapolis' => 'मशरिकी वख (اِنڈیَن پولِس)',
+        'America/Indiana/Indianapolis' => 'मशरिकी वख (اِنڈیَن پولِس)',
         'America/Inuvik' => 'माउंटेन वख (اِنوٗوِک)',
         'America/Iqaluit' => 'मशरिकी वख (اِقالیوٗیِت)',
         'America/Jamaica' => 'मशरिकी वख (جَمَیکا)',
@@ -71,6 +74,7 @@
         'America/Kralendijk' => 'अटलांटिक वख (کرالینڈِک)',
         'America/Los_Angeles' => 'पेसिफिक वख (لاس اینجٕلز)',
         'America/Louisville' => 'मशरिकी वख (لوٗیِس وِل)',
+        'America/Kentucky/Louisville' => 'मशरिकी वख (لوٗیِس وِل)',
         'America/Lower_Princes' => 'अटलांटिक वख (لوور پرنس کوارٹر)',
         'America/Managua' => 'सेंट्रल वख (مَناگوا)',
         'America/Marigot' => 'अटलांटिक वख (میریگوٹ)',
@@ -118,7 +122,6 @@
         'Asia/Aqtau' => 'قازقستان वख (اکٹو)',
         'Asia/Aqtobe' => 'قازقستان वख (اَقٹوب)',
         'Asia/Atyrau' => 'قازقستان वख (اٹیرو)',
-        'Asia/Barnaul' => 'रूस वख (برنول)',
         'Asia/Beirut' => 'मशरिकी यूरपी वख (بیرٹ)',
         'Asia/Damascus' => 'मशरिकी यूरपी वख (دَمَسکَس)',
         'Asia/Famagusta' => 'मशरिकी यूरपी वख (فاما گوسٹا)',
@@ -128,11 +131,11 @@
         'Asia/Oral' => 'قازقستان वख (اورَل)',
         'Asia/Qostanay' => 'قازقستان वख (کوسٹانے)',
         'Asia/Qyzylorda' => 'قازقستان वख (قؠزؠلوڑا)',
-        'Asia/Tomsk' => 'रूस वख (ٹومسک)',
         'Asia/Urumqi' => 'चीन वख (اُرومقی)',
         'Atlantic/Bermuda' => 'अटलांटिक वख (برموٗڑا)',
         'Atlantic/Canary' => 'मगरीबी यूरपी वख (کؠنَری)',
         'Atlantic/Faeroe' => 'मगरीबी यूरपी वख (فؠرو)',
+        'Atlantic/Faroe' => 'मगरीबी यूरपी वख (فؠرو)',
         'Atlantic/Madeira' => 'मगरीबी यूरपी वख (مَڈیٖرا)',
         'Atlantic/Reykjavik' => 'ग्रीनविच ओसत वख (رؠکیاوِک)',
         'Atlantic/St_Helena' => 'ग्रीनविच ओसत वख (سینٹ ہیلِنا)',
@@ -155,11 +158,10 @@
         'Europe/Guernsey' => 'ग्रीनविच ओसत वख (گویرنسے)',
         'Europe/Helsinki' => 'मशरिकी यूरपी वख (حؠلسِنکی)',
         'Europe/Isle_of_Man' => 'ग्रीनविच ओसत वख (آئل آف مین)',
-        'Europe/Istanbul' => 'تُرکی वख (اِستانبُل)',
         'Europe/Jersey' => 'ग्रीनविच ओसत वख (جرسی)',
         'Europe/Kaliningrad' => 'मशरिकी यूरपी वख (کَلِناِنگرَد)',
         'Europe/Kiev' => 'मशरिकी यूरपी वख (کیٖو)',
-        'Europe/Kirov' => 'रूस वख (کیرو)',
+        'Europe/Kyiv' => 'मशरिकी यूरपी वख (کیٖو)',
         'Europe/Lisbon' => 'मगरीबी यूरपी वख (لِسبَن)',
         'Europe/Ljubljana' => 'मरकज़ी यूरपी वख (لِیوٗب لِیانا)',
         'Europe/London' => 'ग्रीनविच ओसत वख (لَندَن)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ks.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ks.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ks.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ks.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'مشرقی افریٖقا ٹایِم (عدیس ابابا)',
         'Africa/Algiers' => 'مرکزی یوٗرپی ٹایِم (اَلجیٖرِیا)',
         'Africa/Asmera' => 'مشرقی افریٖقا ٹایِم (اَسمیرا)',
+        'Africa/Asmara' => 'مشرقی افریٖقا ٹایِم (اَسمیرا)',
         'Africa/Bamako' => 'گریٖن وِچ میٖن ٹایِم (بماکو)',
         'Africa/Bangui' => 'مغربی افریٖقا ٹایِم (بؠنگوٗیی)',
         'Africa/Banjul' => 'گریٖن وِچ میٖن ٹایِم (بَنجوٗل)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'کولومبِیا ٹایِم (بوگوٹا)',
         'America/Boise' => 'ماونٹین ٹایِم (بویِس)',
         'America/Buenos_Aires' => 'ارجؠنٹیٖنا ٹایِم (بیوٗنَس آیرَس)',
+        'America/Argentina/Buenos_Aires' => 'ارجؠنٹیٖنا ٹایِم (بیوٗنَس آیرَس)',
         'America/Cambridge_Bay' => 'ماونٹین ٹایِم (کیمبرِج خلیٖج)',
         'America/Campo_Grande' => 'اؠمَزَن ٹایِم (کؠمپو گرینڑ)',
         'America/Cancun' => 'مشرقی ٹایِم (کینکَن)',
         'America/Caracas' => 'وؠنؠزیوٗلا ٹایِم (کیرَکَس)',
         'America/Catamarca' => 'ارجؠنٹیٖنا ٹایِم (کیٹامارکا)',
+        'America/Argentina/Catamarca' => 'ارجؠنٹیٖنا ٹایِم (کیٹامارکا)',
         'America/Cayenne' => 'فرؠنچ گیوٗؠنا ٹایِم (کَیین)',
         'America/Cayman' => 'مشرقی ٹایِم (کیمَن)',
         'America/Chicago' => 'مرکزی ٹایِم (شِکاگو)',
         'America/Chihuahua' => 'مرکزی ٹایِم (چِہُوا ہُوا)',
         'America/Ciudad_Juarez' => 'ماونٹین ٹایِم (Ciudad Juárez)',
         'America/Coral_Harbour' => 'مشرقی ٹایِم (اٹی کوکنٍ)',
+        'America/Atikokan' => 'مشرقی ٹایِم (اٹی کوکنٍ)',
         'America/Cordoba' => 'ارجؠنٹیٖنا ٹایِم (کورڑوبا)',
+        'America/Argentina/Cordoba' => 'ارجؠنٹیٖنا ٹایِم (کورڑوبا)',
         'America/Costa_Rica' => 'مرکزی ٹایِم (کوسٹا ریٖکا)',
+        'America/Coyhaique' => 'چِلی ٹایِم (Coyhaique)',
         'America/Creston' => 'ماونٹین ٹایِم (کریسٹن)',
         'America/Cuiaba' => 'اؠمَزَن ٹایِم (کوٗیابا)',
         'America/Curacao' => 'اؠٹلانٹِک ٹایِم (کیوٗراکااو)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'برؠسِلِیا ٹایِم (فورٹیلیزا)',
         'America/Glace_Bay' => 'اؠٹلانٹِک ٹایِم (گلیس خلیٖج)',
         'America/Godthab' => 'گرین لینڈ وَکھ (نوٗک)',
+        'America/Nuuk' => 'گرین لینڈ وَکھ (نوٗک)',
         'America/Goose_Bay' => 'اؠٹلانٹِک ٹایِم (گوٗس خلیٖج)',
         'America/Grand_Turk' => 'مشرقی ٹایِم (گرینڈ تٔرک)',
         'America/Grenada' => 'اؠٹلانٹِک ٹایِم (گریناڈا)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'مشرقی ٹایِم (وِنسینیس، انڈیانا)',
         'America/Indiana/Winamac' => 'مشرقی ٹایِم (وِنیمیک، انڈیانا)',
         'America/Indianapolis' => 'مشرقی ٹایِم (اِنڈیَن پولِس)',
+        'America/Indiana/Indianapolis' => 'مشرقی ٹایِم (اِنڈیَن پولِس)',
         'America/Inuvik' => 'ماونٹین ٹایِم (اِنوٗوِک)',
         'America/Iqaluit' => 'مشرقی ٹایِم (اِقالیوٗیِت)',
         'America/Jamaica' => 'مشرقی ٹایِم (جَمَیکا)',
         'America/Jujuy' => 'ارجؠنٹیٖنا ٹایِم (جُجویے)',
+        'America/Argentina/Jujuy' => 'ارجؠنٹیٖنا ٹایِم (جُجویے)',
         'America/Juneau' => 'اؠلاسکا ٹایِم (جوٗنی)',
         'America/Kentucky/Monticello' => 'مشرقی ٹایِم (مونٹِسیلو، کینٹوکی)',
         'America/Kralendijk' => 'اؠٹلانٹِک ٹایِم (کرالینڈِک)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'پٔروٗ ٹایِم (لِما)',
         'America/Los_Angeles' => 'پیسِفِک ٹایِم (لاس اینجٕلز)',
         'America/Louisville' => 'مشرقی ٹایِم (لوٗیِس وِل)',
+        'America/Kentucky/Louisville' => 'مشرقی ٹایِم (لوٗیِس وِل)',
         'America/Lower_Princes' => 'اؠٹلانٹِک ٹایِم (لوور پرنس کوارٹر)',
         'America/Maceio' => 'برؠسِلِیا ٹایِم (میسِیوو)',
         'America/Managua' => 'مرکزی ٹایِم (مَناگوا)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'مرکزی ٹایِم (میٹاموروس)',
         'America/Mazatlan' => 'میکسیکن پیسیفک ٹائم (مَزَٹلان)',
         'America/Mendoza' => 'ارجؠنٹیٖنا ٹایِم (مؠنڑوزا)',
+        'America/Argentina/Mendoza' => 'ارجؠنٹیٖنا ٹایِم (مؠنڑوزا)',
         'America/Menominee' => 'مرکزی ٹایِم (مینومِنی)',
         'America/Merida' => 'مرکزی ٹایِم (میرِڈا)',
         'America/Metlakatla' => 'اؠلاسکا ٹایِم (میٹلا کاٹلا)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'ارؠبِیَن ٹایِم (ایڈٕن)',
         'Asia/Almaty' => 'قازقستان وَکھ (اَلماٹی)',
         'Asia/Amman' => 'مشرقی یوٗرپی ٹایِم (اَمان)',
-        'Asia/Anadyr' => 'اؠنَڑیٖر ٹایِم (اَنَدیر)',
+        'Asia/Anadyr' => 'کَمچَٹکا ٹایِم (اَنَدیر)',
         'Asia/Aqtau' => 'قازقستان وَکھ (اکٹو)',
         'Asia/Aqtobe' => 'قازقستان وَکھ (اَقٹوب)',
         'Asia/Ashgabat' => 'ترکمانستان ٹائم (اَشگَبَت)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'ارؠبِیَن ٹایِم (بؠہریٖن)',
         'Asia/Baku' => 'ازربائیجان ٹائم (باقوٗ)',
         'Asia/Bangkok' => 'اِنڑوچَینا ٹایِم (بینگ کاک)',
-        'Asia/Barnaul' => 'روٗس وَکھ (برنول)',
+        'Asia/Barnaul' => 'کرؠسنوےیارسک ٹایِم (برنول)',
         'Asia/Beirut' => 'مشرقی یوٗرپی ٹایِم (بیرٹ)',
         'Asia/Bishkek' => 'کرغزستان ٹائم (بِشکیک)',
         'Asia/Brunei' => 'بروٗنَے دَروٗسَلَم ٹایِم',
         'Asia/Calcutta' => 'ہِندوستان (Kolkata)',
+        'Asia/Kolkata' => 'ہِندوستان (Kolkata)',
         'Asia/Chita' => 'یَکُٹسک ٹایِم (چیٹا)',
         'Asia/Colombo' => 'ہِندوستان (کولَمبو)',
         'Asia/Damascus' => 'مشرقی یوٗرپی ٹایِم (دَمَسکَس)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'کَمچَٹکا ٹایِم (کَمچھٹکا)',
         'Asia/Karachi' => 'پاکِستان ٹایِم (کَراچی)',
         'Asia/Katmandu' => 'نؠپٲلؠ ٹایِم (کاٹھمَنڈوٗ)',
+        'Asia/Kathmandu' => 'نؠپٲلؠ ٹایِم (کاٹھمَنڈوٗ)',
         'Asia/Khandyga' => 'یَکُٹسک ٹایِم (کھانڈیگا)',
         'Asia/Krasnoyarsk' => 'کرؠسنوےیارسک ٹایِم (کرنسنویارسک)',
         'Asia/Kuala_Lumpur' => 'مَلیشِیا ٹایِم (کولالَمپوٗر)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'گَلف سٹینڈرڈ ٹایِم (مسقط)',
         'Asia/Nicosia' => 'مشرقی یوٗرپی ٹایِم (نِکوسِیا)',
         'Asia/Novokuznetsk' => 'کرؠسنوےیارسک ٹایِم (نوووکُزنیٹسک)',
-        'Asia/Novosibirsk' => 'نۄوۄسِبٔرسک ٹایِم (نوووسِبِرسک)',
+        'Asia/Novosibirsk' => 'کرؠسنوےیارسک ٹایِم (نوووسِبِرسک)',
         'Asia/Omsk' => 'اۄمسک ٹایِم (اومسک)',
         'Asia/Oral' => 'قازقستان وَکھ (اورَل)',
         'Asia/Phnom_Penh' => 'اِنڑوچَینا ٹایِم (نوم پؠنہہ)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'قازقستان وَکھ (کوسٹانے)',
         'Asia/Qyzylorda' => 'قازقستان وَکھ (قؠزؠلوڑا)',
         'Asia/Rangoon' => 'مِیانمَر ٹایِم (رنگوٗن)',
+        'Asia/Yangon' => 'مِیانمَر ٹایِم (رنگوٗن)',
         'Asia/Riyadh' => 'ارؠبِیَن ٹایِم (ریاض)',
         'Asia/Saigon' => 'اِنڑوچَینا ٹایِم (سیگَن)',
-        'Asia/Sakhalin' => 'سَکھؠلِن ٹایِم (سَکھالِن)',
+        'Asia/Ho_Chi_Minh' => 'اِنڑوچَینا ٹایِم (سیگَن)',
+        'Asia/Sakhalin' => 'مَگَدَن ٹایِم (سَکھالِن)',
         'Asia/Samarkand' => 'اُزبیکِستان ٹایِم (سَمَرکَند)',
         'Asia/Seoul' => 'کورِیا ٹایِم (سیول)',
         'Asia/Shanghai' => 'چَینا ٹایِم (شانگے)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'اِیٖرٲنؠ ٹایِم (تؠہران)',
         'Asia/Thimphu' => 'بوٗٹان ٹایِم (تھِمپوٗ)',
         'Asia/Tokyo' => 'جاپٲنؠ ٹایِم (ٹوکیو)',
-        'Asia/Tomsk' => 'روٗس وَکھ (ٹومسک)',
+        'Asia/Tomsk' => 'کرؠسنوےیارسک ٹایِم (ٹومسک)',
         'Asia/Ulaanbaatar' => 'اولن باٹر ٹائم',
         'Asia/Urumqi' => 'چیٖن وَکھ (اُرومقی)',
         'Asia/Ust-Nera' => 'ولاڑِووسٹوک ٹایِم (اوسٹ-نیرا)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'مغرِبی یوٗرپی ٹایِم (کؠنَری)',
         'Atlantic/Cape_Verde' => 'کیپ ؤرڑو ٹایِم (کیپ ؤرڑے)',
         'Atlantic/Faeroe' => 'مغرِبی یوٗرپی ٹایِم (فؠرو)',
+        'Atlantic/Faroe' => 'مغرِبی یوٗرپی ٹایِم (فؠرو)',
         'Atlantic/Madeira' => 'مغرِبی یوٗرپی ٹایِم (مَڈیٖرا)',
         'Atlantic/Reykjavik' => 'گریٖن وِچ میٖن ٹایِم (رؠکیاوِک)',
         'Atlantic/South_Georgia' => 'شُمٲلی جورجِیا ٹایِم (جنوبی جارجیا)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'کوآرڈنیٹڈ یونیورسل وَکھ',
         'Europe/Amsterdam' => 'مرکزی یوٗرپی ٹایِم (ایمسٹَرڈیم)',
         'Europe/Andorra' => 'مرکزی یوٗرپی ٹایِم (اَنڈورا)',
-        'Europe/Astrakhan' => 'ماسکَو ٹایِم (ایسٹرا کھان)',
+        'Europe/Astrakhan' => 'سمؠرا ٹایِم (ایسٹرا کھان)',
         'Europe/Athens' => 'مشرقی یوٗرپی ٹایِم (اؠتھٕنس)',
         'Europe/Belgrade' => 'مرکزی یوٗرپی ٹایِم (بیلگریڈ)',
         'Europe/Berlin' => 'مرکزی یوٗرپی ٹایِم (بٔرلِن)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'گریٖن وِچ میٖن ٹایِم (گویرنسے)',
         'Europe/Helsinki' => 'مشرقی یوٗرپی ٹایِم (حؠلسِنکی)',
         'Europe/Isle_of_Man' => 'گریٖن وِچ میٖن ٹایِم (آئل آف مین)',
-        'Europe/Istanbul' => 'تُرکی وَکھ (اِستانبُل)',
+        'Europe/Istanbul' => 'تُرکی ٹایِم (اِستانبُل)',
         'Europe/Jersey' => 'گریٖن وِچ میٖن ٹایِم (جرسی)',
         'Europe/Kaliningrad' => 'مشرقی یوٗرپی ٹایِم (کَلِناِنگرَد)',
         'Europe/Kiev' => 'مشرقی یوٗرپی ٹایِم (کیٖو)',
-        'Europe/Kirov' => 'روٗس وَکھ (کیرو)',
+        'Europe/Kyiv' => 'مشرقی یوٗرپی ٹایِم (کیٖو)',
+        'Europe/Kirov' => 'ماسکَو ٹایِم (کیرو)',
         'Europe/Lisbon' => 'مغرِبی یوٗرپی ٹایِم (لِسبَن)',
         'Europe/Ljubljana' => 'مرکزی یوٗرپی ٹایِم (لِیوٗب لِیانا)',
         'Europe/London' => 'گریٖن وِچ میٖن ٹایِم (لَندَن)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'سمؠرا ٹایِم (سَمارا)',
         'Europe/San_Marino' => 'مرکزی یوٗرپی ٹایِم (سین مرینو)',
         'Europe/Sarajevo' => 'مرکزی یوٗرپی ٹایِم (سارا جیوو)',
-        'Europe/Saratov' => 'ماسکَو ٹایِم (ساراٹو)',
+        'Europe/Saratov' => 'سمؠرا ٹایِم (ساراٹو)',
         'Europe/Simferopol' => 'ماسکَو ٹایِم (سِمفیروپول)',
         'Europe/Skopje' => 'مرکزی یوٗرپی ٹایِم (سِکوپیے)',
         'Europe/Sofia' => 'مشرقی یوٗرپی ٹایِم (سوفِیا)',
         'Europe/Stockholm' => 'مرکزی یوٗرپی ٹایِم (سٹاک ہولم)',
         'Europe/Tallinn' => 'مشرقی یوٗرپی ٹایِم (ٹؠلِن)',
         'Europe/Tirane' => 'مرکزی یوٗرپی ٹایِم (ٹِرین)',
-        'Europe/Ulyanovsk' => 'ماسکَو ٹایِم (اولیانووسک)',
+        'Europe/Ulyanovsk' => 'سمؠرا ٹایِم (اولیانووسک)',
         'Europe/Vaduz' => 'مرکزی یوٗرپی ٹایِم (وادُز)',
         'Europe/Vatican' => 'مرکزی یوٗرپی ٹایِم (ویٹیکن)',
         'Europe/Vienna' => 'مرکزی یوٗرپی ٹایِم (وِیَننا)',
         'Europe/Vilnius' => 'مشرقی یوٗرپی ٹایِم (وِلِنِیَس)',
-        'Europe/Volgograd' => 'وولگوگریڑ ٹایِم (وولگوگرَد)',
+        'Europe/Volgograd' => 'ماسکَو ٹایِم (وولگوگرَد)',
         'Europe/Warsaw' => 'مرکزی یوٗرپی ٹایِم (وارسا)',
         'Europe/Zagreb' => 'مرکزی یوٗرپی ٹایِم (زگریب)',
         'Europe/Zurich' => 'مرکزی یوٗرپی ٹایِم (زیوٗرِک)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'کؠتھَم ٹایِم (چَتھَم)',
         'Pacific/Easter' => 'ایٖسٹَر جزیرٕ ٹایِم',
         'Pacific/Efate' => 'وَنوٗاَٹوٗ ٹایِم (ایفاتیے)',
-        'Pacific/Enderbury' => 'پھونِکس ججیٖرُک ٹایِم (اؠنڑربیری)',
+        'Pacific/Enderbury' => 'پھونِکس ججیٖرُک ٹایِم (Canton)',
+        'Pacific/Kanton' => 'پھونِکس ججیٖرُک ٹایِم (Canton)',
         'Pacific/Fakaofo' => 'ٹوکؠلو ٹایِم (فَکَوفو)',
         'Pacific/Fiji' => 'فیٖجی ٹایِم (فِجی)',
         'Pacific/Funafuti' => 'ٹوٗوَلوٗ ٹایِم (فُنافوٗتی)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'گؠمبِیَر ٹایِم (گیمبِیَر)',
         'Pacific/Guadalcanal' => 'سولومَن ججیٖرَن ہُند ٹایِم (گُوادَلچَنَل)',
         'Pacific/Guam' => 'کؠمورو سٹینڑاڑ ٹایِم (گوام)',
-        'Pacific/Honolulu' => 'حَواے اؠلیوٗٹِیَن ٹایِم (ہونولو لو)',
+        'Pacific/Honolulu' => 'حَواے اؠلیوٗٹِیَن سٹینڑاڑ ٹایِم (ہونولو لو)',
         'Pacific/Kiritimati' => 'لایِٔن ججیٖرُک ٹایِم (کِرِتِماتی)',
         'Pacific/Kosrae' => 'کورسَے ٹایِم (کوسراے)',
         'Pacific/Kwajalein' => 'مارشَل ججیٖرُک ٹایِم (کُوجلین)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'پَلاو ٹایِم',
         'Pacific/Pitcairn' => 'پِٹکیرٕن ٹایِم (پِٹکیرَن)',
         'Pacific/Ponape' => 'پونیپ ٹایِم (پوناپے)',
+        'Pacific/Pohnpei' => 'پونیپ ٹایِم (پوناپے)',
         'Pacific/Port_Moresby' => 'پاپُعا نیوٗ گؠنی ٹایِم (پوٹ مورسبی)',
         'Pacific/Rarotonga' => 'کُک اَیلینڑز ٹایِم (راروٹونگا)',
         'Pacific/Saipan' => 'کؠمورو سٹینڑاڑ ٹایِم (سَیپان)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'گِلبٲٹ ججیٖرُک ٹایِم (ٹَراوا)',
         'Pacific/Tongatapu' => 'ٹعانگا ٹایِم (تونگاتَپوٗ)',
         'Pacific/Truk' => 'ٹٔرک ٹایِم (ٹرک)',
+        'Pacific/Chuuk' => 'ٹٔرک ٹایِم (ٹرک)',
         'Pacific/Wake' => 'ویک ججیٖرُک ٹایِم',
         'Pacific/Wallis' => 'والِس تہٕ فیوٗٹیوٗنا ٹایِم (ویلِس)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ku.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ku.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ku.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ku.php	2026-05-20 10:56:49.000000000 +0200
@@ -3,10 +3,11 @@
 return [
     'Names' => [
         'Africa/Abidjan' => 'Saeta Navînî ya Greenwichê (Abidjan)',
-        'Africa/Accra' => 'Saeta Navînî ya Greenwichê (Akra)',
+        'Africa/Accra' => 'Saeta Navînî ya Greenwichê (Accra)',
         'Africa/Addis_Ababa' => 'Saeta Afrîkaya Rojhilat (Addis Ababa)',
         'Africa/Algiers' => 'Saeta Ewropaya Navîn (Cezayîr)',
         'Africa/Asmera' => 'Saeta Afrîkaya Rojhilat (Asmara)',
+        'Africa/Asmara' => 'Saeta Afrîkaya Rojhilat (Asmara)',
         'Africa/Bamako' => 'Saeta Navînî ya Greenwichê (Bamako)',
         'Africa/Bangui' => 'Saeta Afrîkaya Rojava (Bangui)',
         'Africa/Banjul' => 'Saeta Navînî ya Greenwichê (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Saeta Afrîkaya Rojhilat (Daruselam)',
         'Africa/Djibouti' => 'Saeta Afrîkaya Rojhilat (Cibûtî)',
         'Africa/Douala' => 'Saeta Afrîkaya Rojava (Douala)',
-        'Africa/El_Aaiun' => 'Saeta Ewropaya Rojava (El Aaiun)',
+        'Africa/El_Aaiun' => 'Saeta Ewropaya Rojava (El Aaiún)',
         'Africa/Freetown' => 'Saeta Navînî ya Greenwichê (Freetown)',
         'Africa/Gaborone' => 'Saeta Afrîkaya Navîn (Gaborone)',
         'Africa/Harare' => 'Saeta Afrîkaya Navîn (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Saeta Afrîkaya Rojava (Kînşasa)',
         'Africa/Lagos' => 'Saeta Afrîkaya Rojava (Lagos)',
         'Africa/Libreville' => 'Saeta Afrîkaya Rojava (Lîbrevîl)',
-        'Africa/Lome' => 'Saeta Navînî ya Greenwichê (Lome)',
+        'Africa/Lome' => 'Saeta Navînî ya Greenwichê (Lomé)',
         'Africa/Luanda' => 'Saeta Afrîkaya Rojava (Luanda)',
         'Africa/Lubumbashi' => 'Saeta Afrîkaya Navîn (Lubumbashi)',
         'Africa/Lusaka' => 'Saeta Afrîkaya Navîn (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Saeta Afrîkaya Rojhilat (Mogadîşû)',
         'Africa/Monrovia' => 'Saeta Navînî ya Greenwichê (Monrovia)',
         'Africa/Nairobi' => 'Saeta Afrîkaya Rojhilat (Naîrobî)',
-        'Africa/Ndjamena' => 'Saeta Afrîkaya Rojava (Ndjamena)',
+        'Africa/Ndjamena' => 'Saeta Afrîkaya Rojava (N’Djamena)',
         'Africa/Niamey' => 'Saeta Afrîkaya Rojava (Niamey)',
         'Africa/Nouakchott' => 'Saeta Navînî ya Greenwichê (Nouakchott)',
         'Africa/Ouagadougou' => 'Saeta Navînî ya Greenwichê (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Saeta Alaskayê (Anchorage)',
         'America/Anguilla' => 'Saeta Atlantîkê (Anguilla)',
         'America/Antigua' => 'Saeta Atlantîkê (Antigua)',
-        'America/Araguaina' => 'Saeta Brasîlyayê (Araguaina)',
+        'America/Araguaina' => 'Saeta Brasîlyayê (Araguaína)',
         'America/Argentina/La_Rioja' => 'Saeta Arjantînê (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Saeta Arjantînê (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Saeta Arjantînê (Río Gallegos)',
         'America/Argentina/Salta' => 'Saeta Arjantînê (Salta)',
         'America/Argentina/San_Juan' => 'Saeta Arjantînê (San Juan)',
         'America/Argentina/San_Luis' => 'Saeta Arjantînê (San Luis)',
-        'America/Argentina/Tucuman' => 'Saeta Arjantînê (Tucuman)',
+        'America/Argentina/Tucuman' => 'Saeta Arjantînê (Tucumán)',
         'America/Argentina/Ushuaia' => 'Saeta Arjantînê (Ushuaia)',
         'America/Aruba' => 'Saeta Atlantîkê (Arûba)',
         'America/Asuncion' => 'Saeta Paragûayê (Asunción)',
         'America/Bahia' => 'Saeta Brasîlyayê (Bahia)',
-        'America/Bahia_Banderas' => 'Saeta Navendî ya Amerîkaya Bakur (Bahîa Banderas)',
+        'America/Bahia_Banderas' => 'Saeta Merkezî ya Amerîkaya Bakur (Bahîa Banderas)',
         'America/Barbados' => 'Saeta Atlantîkê (Barbados)',
-        'America/Belem' => 'Saeta Brasîlyayê (Belem)',
-        'America/Belize' => 'Saeta Navendî ya Amerîkaya Bakur (Belîze)',
+        'America/Belem' => 'Saeta Brasîlyayê (Belém)',
+        'America/Belize' => 'Saeta Merkezî ya Amerîkaya Bakur (Belîze)',
         'America/Blanc-Sablon' => 'Saeta Atlantîkê (Blanc-Sablon)',
         'America/Boa_Vista' => 'Saeta Amazonê (Boa Vista)',
-        'America/Bogota' => 'Saeta Kolombîyayê (Bogota)',
+        'America/Bogota' => 'Saeta Kolombîyayê (Bogotá)',
         'America/Boise' => 'Saeta Çîyayî ya Amerîkaya Bakur (Boise)',
         'America/Buenos_Aires' => 'Saeta Arjantînê (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Saeta Arjantînê (Buenos Aires)',
         'America/Cambridge_Bay' => 'Saeta Çîyayî ya Amerîkaya Bakur (Cambridge Bay)',
         'America/Campo_Grande' => 'Saeta Amazonê (Campo Grande)',
         'America/Cancun' => 'Saeta Rojhilat a Amerîkaya Bakur (Cancûn)',
         'America/Caracas' => 'Saeta Venezûelayê (Caracas)',
         'America/Catamarca' => 'Saeta Arjantînê (Catamarca)',
+        'America/Argentina/Catamarca' => 'Saeta Arjantînê (Catamarca)',
         'America/Cayenne' => 'Saeta Guiyanaya Fransî (Cayenne)',
         'America/Cayman' => 'Saeta Rojhilat a Amerîkaya Bakur (Cayman)',
-        'America/Chicago' => 'Saeta Navendî ya Amerîkaya Bakur (Chicago)',
-        'America/Chihuahua' => 'Saeta Navendî ya Amerîkaya Bakur (Chihuahua)',
+        'America/Chicago' => 'Saeta Merkezî ya Amerîkaya Bakur (Chicago)',
+        'America/Chihuahua' => 'Saeta Merkezî ya Amerîkaya Bakur (Chihuahua)',
         'America/Ciudad_Juarez' => 'Saeta Çîyayî ya Amerîkaya Bakur (Ciûdad Juarez)',
         'America/Coral_Harbour' => 'Saeta Rojhilat a Amerîkaya Bakur (Atikokan)',
-        'America/Cordoba' => 'Saeta Arjantînê (Cordoba)',
-        'America/Costa_Rica' => 'Saeta Navendî ya Amerîkaya Bakur (Kosta Rîka)',
+        'America/Atikokan' => 'Saeta Rojhilat a Amerîkaya Bakur (Atikokan)',
+        'America/Cordoba' => 'Saeta Arjantînê (Córdoba)',
+        'America/Argentina/Cordoba' => 'Saeta Arjantînê (Córdoba)',
+        'America/Costa_Rica' => 'Saeta Merkezî ya Amerîkaya Bakur (Kosta Rîka)',
+        'America/Coyhaique' => 'Saeta Şîlîyê (Coyhaique)',
         'America/Creston' => 'Saeta Çîyayî ya Amerîkaya Bakur (Creston)',
-        'America/Cuiaba' => 'Saeta Amazonê (Cuiaba)',
+        'America/Cuiaba' => 'Saeta Amazonê (Cuiabá)',
         'America/Curacao' => 'Saeta Atlantîkê (Curaçao)',
         'America/Danmarkshavn' => 'Saeta Navînî ya Greenwichê (Danmarkshavn)',
         'America/Dawson' => 'Saeta Yukonê (Dawson)',
@@ -101,34 +107,37 @@
         'America/Detroit' => 'Saeta Rojhilat a Amerîkaya Bakur (Detroit)',
         'America/Dominica' => 'Saeta Atlantîkê (Domînîka)',
         'America/Edmonton' => 'Saeta Çîyayî ya Amerîkaya Bakur (Edmonton)',
-        'America/Eirunepe' => 'Saeta Brezîlya(y)ê (Eirunepe)',
-        'America/El_Salvador' => 'Saeta Navendî ya Amerîkaya Bakur (El Salvador)',
+        'America/Eirunepe' => 'Saeta Acreyê (Eirunepé)',
+        'America/El_Salvador' => 'Saeta Merkezî ya Amerîkaya Bakur (El Salvador)',
         'America/Fort_Nelson' => 'Saeta Çîyayî ya Amerîkaya Bakur (Fort Nelson)',
         'America/Fortaleza' => 'Saeta Brasîlyayê (Fortaleza)',
         'America/Glace_Bay' => 'Saeta Atlantîkê (Glace Bay)',
-        'America/Godthab' => 'Saeta Grînlanda(y)ê (Nuuk)',
+        'America/Godthab' => 'Saeta Grînlendayê (Nuuk)',
+        'America/Nuuk' => 'Saeta Grînlendayê (Nuuk)',
         'America/Goose_Bay' => 'Saeta Atlantîkê (Goose Bay)',
         'America/Grand_Turk' => 'Saeta Rojhilat a Amerîkaya Bakur (Grand Turk)',
         'America/Grenada' => 'Saeta Atlantîkê (Grenada)',
         'America/Guadeloupe' => 'Saeta Atlantîkê (Guadeloupe)',
-        'America/Guatemala' => 'Saeta Navendî ya Amerîkaya Bakur (Guatemala)',
+        'America/Guatemala' => 'Saeta Merkezî ya Amerîkaya Bakur (Guatemala)',
         'America/Guayaquil' => 'Saeta Ekwadorê (Guayaquil)',
         'America/Guyana' => 'Saeta Guyanayê',
         'America/Halifax' => 'Saeta Atlantîkê (Halifax)',
         'America/Havana' => 'Saeta Kubayê (Havana)',
         'America/Hermosillo' => 'Saeta Pasîfîka Meksîkayê (Hermosillo)',
-        'America/Indiana/Knox' => 'Saeta Navendî ya Amerîkaya Bakur (Knox, Indiana)',
+        'America/Indiana/Knox' => 'Saeta Merkezî ya Amerîkaya Bakur (Knox, Indiana)',
         'America/Indiana/Marengo' => 'Saeta Rojhilat a Amerîkaya Bakur (Marengo, Indiana)',
         'America/Indiana/Petersburg' => 'Saeta Rojhilat a Amerîkaya Bakur (Petersburg, Indiana)',
-        'America/Indiana/Tell_City' => 'Saeta Navendî ya Amerîkaya Bakur (Tell City, Indiana)',
+        'America/Indiana/Tell_City' => 'Saeta Merkezî ya Amerîkaya Bakur (Tell City, Indiana)',
         'America/Indiana/Vevay' => 'Saeta Rojhilat a Amerîkaya Bakur (Vevay, Indiana)',
         'America/Indiana/Vincennes' => 'Saeta Rojhilat a Amerîkaya Bakur (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Saeta Rojhilat a Amerîkaya Bakur (Winamac, Indiana)',
         'America/Indianapolis' => 'Saeta Rojhilat a Amerîkaya Bakur (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Saeta Rojhilat a Amerîkaya Bakur (Indianapolis)',
         'America/Inuvik' => 'Saeta Çîyayî ya Amerîkaya Bakur (Inuvik)',
         'America/Iqaluit' => 'Saeta Rojhilat a Amerîkaya Bakur (Iqaluit)',
         'America/Jamaica' => 'Saeta Rojhilat a Amerîkaya Bakur (Jamaîka)',
         'America/Jujuy' => 'Saeta Arjantînê (Jujuy)',
+        'America/Argentina/Jujuy' => 'Saeta Arjantînê (Jujuy)',
         'America/Juneau' => 'Saeta Alaskayê (Juneau)',
         'America/Kentucky/Monticello' => 'Saeta Rojhilat a Amerîkaya Bakur (Monticello, Kentucky)',
         'America/Kralendijk' => 'Saeta Atlantîkê (Kralendijk)',
@@ -136,32 +145,34 @@
         'America/Lima' => 'Saeta Perûyê (Lima)',
         'America/Los_Angeles' => 'Saeta Pasîfîkê ya Amerîkaya Bakur (Los Angeles)',
         'America/Louisville' => 'Saeta Rojhilat a Amerîkaya Bakur (Louisville)',
+        'America/Kentucky/Louisville' => 'Saeta Rojhilat a Amerîkaya Bakur (Louisville)',
         'America/Lower_Princes' => 'Saeta Atlantîkê (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Saeta Brasîlyayê (Maceio)',
-        'America/Managua' => 'Saeta Navendî ya Amerîkaya Bakur (Managua)',
+        'America/Maceio' => 'Saeta Brasîlyayê (Maceió)',
+        'America/Managua' => 'Saeta Merkezî ya Amerîkaya Bakur (Managua)',
         'America/Manaus' => 'Saeta Amazonê (Manaus)',
         'America/Marigot' => 'Saeta Atlantîkê (Marigot)',
         'America/Martinique' => 'Saeta Atlantîkê (Martinique)',
-        'America/Matamoros' => 'Saeta Navendî ya Amerîkaya Bakur (Matamoros)',
-        'America/Mazatlan' => 'Saeta Pasîfîka Meksîkayê (Mazatlan)',
+        'America/Matamoros' => 'Saeta Merkezî ya Amerîkaya Bakur (Matamoros)',
+        'America/Mazatlan' => 'Saeta Pasîfîka Meksîkayê (Mazatlán)',
         'America/Mendoza' => 'Saeta Arjantînê (Mendoza)',
-        'America/Menominee' => 'Saeta Navendî ya Amerîkaya Bakur (Menominee)',
-        'America/Merida' => 'Saeta Navendî ya Amerîkaya Bakur (Merîda)',
+        'America/Argentina/Mendoza' => 'Saeta Arjantînê (Mendoza)',
+        'America/Menominee' => 'Saeta Merkezî ya Amerîkaya Bakur (Menominee)',
+        'America/Merida' => 'Saeta Merkezî ya Amerîkaya Bakur (Merîda)',
         'America/Metlakatla' => 'Saeta Alaskayê (Metlakatla)',
-        'America/Mexico_City' => 'Saeta Navendî ya Amerîkaya Bakur (Mexico City)',
+        'America/Mexico_City' => 'Saeta Merkezî ya Amerîkaya Bakur (Ciudad de México)',
         'America/Miquelon' => 'Saeta Saint Pierre û Miquelonê',
         'America/Moncton' => 'Saeta Atlantîkê (Moncton)',
-        'America/Monterrey' => 'Saeta Navendî ya Amerîkaya Bakur (Monterrey)',
+        'America/Monterrey' => 'Saeta Merkezî ya Amerîkaya Bakur (Monterrey)',
         'America/Montevideo' => 'Saeta Ûrûgûayê (Montevideo)',
         'America/Montserrat' => 'Saeta Atlantîkê (Montserrat)',
         'America/Nassau' => 'Saeta Rojhilat a Amerîkaya Bakur (Nassau)',
         'America/New_York' => 'Saeta Rojhilat a Amerîkaya Bakur (New York)',
         'America/Nome' => 'Saeta Alaskayê (Nome)',
         'America/Noronha' => 'Saeta Fernando de Noronhayê',
-        'America/North_Dakota/Beulah' => 'Saeta Navendî ya Amerîkaya Bakur (Beûlah, Dakotaya Bakur)',
-        'America/North_Dakota/Center' => 'Saeta Navendî ya Amerîkaya Bakur (Center, Dakotaya Bakur)',
-        'America/North_Dakota/New_Salem' => 'Saeta Navendî ya Amerîkaya Bakur (New Salem, Dakotaya Bakur)',
-        'America/Ojinaga' => 'Saeta Navendî ya Amerîkaya Bakur (Ojinaga)',
+        'America/North_Dakota/Beulah' => 'Saeta Merkezî ya Amerîkaya Bakur (Beûlah, Dakotaya Bakur)',
+        'America/North_Dakota/Center' => 'Saeta Merkezî ya Amerîkaya Bakur (Center, Dakotaya Bakur)',
+        'America/North_Dakota/New_Salem' => 'Saeta Merkezî ya Amerîkaya Bakur (New Salem, Dakotaya Bakur)',
+        'America/Ojinaga' => 'Saeta Merkezî ya Amerîkaya Bakur (Ojinaga)',
         'America/Panama' => 'Saeta Rojhilat a Amerîkaya Bakur (Panama)',
         'America/Paramaribo' => 'Saeta Surînamê (Paramaribo)',
         'America/Phoenix' => 'Saeta Çîyayî ya Amerîkaya Bakur (Phoenix)',
@@ -170,16 +181,16 @@
         'America/Porto_Velho' => 'Saeta Amazonê (Porto Velho)',
         'America/Puerto_Rico' => 'Saeta Atlantîkê (Porto Rîko)',
         'America/Punta_Arenas' => 'Saeta Şîlîyê (Punta Arenas)',
-        'America/Rankin_Inlet' => 'Saeta Navendî ya Amerîkaya Bakur (Rankin Inlet)',
+        'America/Rankin_Inlet' => 'Saeta Merkezî ya Amerîkaya Bakur (Rankin Inlet)',
         'America/Recife' => 'Saeta Brasîlyayê (Recife)',
-        'America/Regina' => 'Saeta Navendî ya Amerîkaya Bakur (Regina)',
-        'America/Resolute' => 'Saeta Navendî ya Amerîkaya Bakur (Resolute)',
-        'America/Rio_Branco' => 'Saeta Brezîlya(y)ê (Rio Branco)',
-        'America/Santarem' => 'Saeta Brasîlyayê (Santarem)',
+        'America/Regina' => 'Saeta Merkezî ya Amerîkaya Bakur (Regina)',
+        'America/Resolute' => 'Saeta Merkezî ya Amerîkaya Bakur (Resolute)',
+        'America/Rio_Branco' => 'Saeta Acreyê (Rio Branco)',
+        'America/Santarem' => 'Saeta Brasîlyayê (Santarém)',
         'America/Santiago' => 'Saeta Şîlîyê (Santiago)',
         'America/Santo_Domingo' => 'Saeta Atlantîkê (Santo Domingo)',
-        'America/Sao_Paulo' => 'Saeta Brasîlyayê (Sao Paulo)',
-        'America/Scoresbysund' => 'Saeta Grînlanda(y)ê (Ittoqqortoormiit)',
+        'America/Sao_Paulo' => 'Saeta Brasîlyayê (São Paulo)',
+        'America/Scoresbysund' => 'Saeta Grînlendayê (Ittoqqortoormiit)',
         'America/Sitka' => 'Saeta Alaskayê (Sitka)',
         'America/St_Barthelemy' => 'Saeta Atlantîkê (Saint Barthelemy)',
         'America/St_Johns' => 'Saeta Newfoundlandê (St. John’s)',
@@ -187,15 +198,15 @@
         'America/St_Lucia' => 'Saeta Atlantîkê (St. Lucia)',
         'America/St_Thomas' => 'Saeta Atlantîkê (St. Thomas)',
         'America/St_Vincent' => 'Saeta Atlantîkê (St. Vincent)',
-        'America/Swift_Current' => 'Saeta Navendî ya Amerîkaya Bakur (Swift Current)',
-        'America/Tegucigalpa' => 'Saeta Navendî ya Amerîkaya Bakur (Tegucigalpa)',
+        'America/Swift_Current' => 'Saeta Merkezî ya Amerîkaya Bakur (Swift Current)',
+        'America/Tegucigalpa' => 'Saeta Merkezî ya Amerîkaya Bakur (Tegucigalpa)',
         'America/Thule' => 'Saeta Atlantîkê (Thule)',
         'America/Tijuana' => 'Saeta Pasîfîkê ya Amerîkaya Bakur (Tijuana)',
         'America/Toronto' => 'Saeta Rojhilat a Amerîkaya Bakur (Toronto)',
         'America/Tortola' => 'Saeta Atlantîkê (Tortola)',
         'America/Vancouver' => 'Saeta Pasîfîkê ya Amerîkaya Bakur (Vancouver)',
         'America/Whitehorse' => 'Saeta Yukonê (Whitehorse)',
-        'America/Winnipeg' => 'Saeta Navendî ya Amerîkaya Bakur (Winnipeg)',
+        'America/Winnipeg' => 'Saeta Merkezî ya Amerîkaya Bakur (Winnipeg)',
         'America/Yakutat' => 'Saeta Alaskayê (Yakutat)',
         'Antarctica/Casey' => 'Saeta Awistralyaya Rojava (Casey)',
         'Antarctica/Davis' => 'Saeta Davîsê',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Saeta Zelandaya Nû (McMurdo)',
         'Antarctica/Palmer' => 'Saeta Şîlîyê (Palmer)',
         'Antarctica/Rothera' => 'Saeta Rotherayê',
-        'Antarctica/Syowa' => 'Saeta Syowayê',
+        'Antarctica/Syowa' => 'Saeta Syowayê (Showa)',
         'Antarctica/Troll' => 'Saeta Navînî ya Greenwichê (Troll)',
         'Antarctica/Vostok' => 'Saeta Vostokê',
         'Arctic/Longyearbyen' => 'Saeta Ewropaya Navîn (Longyearbyen)',
         'Asia/Aden' => 'Saeta Erebistanê (Aden)',
         'Asia/Almaty' => 'Saeta Qazaxistanê (Almatî)',
         'Asia/Amman' => 'Saeta Ewropaya Rojhilat (Eman)',
-        'Asia/Anadyr' => 'Saeta Rûsya(y)ê (Anadir)',
+        'Asia/Anadyr' => 'Saeta Kamchatkayê (Anadir)',
         'Asia/Aqtau' => 'Saeta Qazaxistanê (Aqtaw)',
         'Asia/Aqtobe' => 'Saeta Qazaxistanê (Aqtobe)',
         'Asia/Ashgabat' => 'Saeta Tirkmenistanê (Eşqabat)',
@@ -221,31 +232,33 @@
         'Asia/Bahrain' => 'Saeta Erebistanê (Behreyn)',
         'Asia/Baku' => 'Saeta Azerbeycanê (Bakû)',
         'Asia/Bangkok' => 'Saeta Hindiçînê (Bangkok)',
-        'Asia/Barnaul' => 'Saeta Rûsya(y)ê (Barnaul)',
+        'Asia/Barnaul' => 'Saeta Krasnoyarskê (Barnaul)',
         'Asia/Beirut' => 'Saeta Ewropaya Rojhilat (Beyrût)',
         'Asia/Bishkek' => 'Saeta Qirxizistanê (Bîşkek)',
-        'Asia/Brunei' => 'Saeta Brûney Darusselamê',
-        'Asia/Calcutta' => 'Saeta Standard a Hindistanê (Kolkata)',
+        'Asia/Brunei' => 'Saeta Brûneyê',
+        'Asia/Calcutta' => 'Saeta Hindistanê ya Standard (Kolkata)',
+        'Asia/Kolkata' => 'Saeta Hindistanê ya Standard (Kolkata)',
         'Asia/Chita' => 'Saeta Yakutskê (Çîta)',
-        'Asia/Colombo' => 'Saeta Standard a Hindistanê (Kolombo)',
+        'Asia/Colombo' => 'Saeta Hindistanê ya Standard (Kolombo)',
         'Asia/Damascus' => 'Saeta Ewropaya Rojhilat (Şam)',
         'Asia/Dhaka' => 'Saeta Bengladeşê (Daka)',
         'Asia/Dili' => 'Saeta Tîmûra Rojhilat (Dîlî)',
-        'Asia/Dubai' => 'Saeta Standard a Kendavê (Dûbaî)',
+        'Asia/Dubai' => 'Saeta Kendavê ya Standard (Dûbaî)',
         'Asia/Dushanbe' => 'Saeta Tacikistanê (Duşenbe)',
         'Asia/Famagusta' => 'Saeta Ewropaya Rojhilat (Famagusta)',
         'Asia/Gaza' => 'Saeta Ewropaya Rojhilat (Xeze)',
         'Asia/Hebron' => 'Saeta Ewropaya Rojhilat (Hebron)',
         'Asia/Hong_Kong' => 'Saeta Hong Kongê',
-        'Asia/Hovd' => 'Saeta Hovdê',
+        'Asia/Hovd' => 'Saeta Hovdê (Khovd)',
         'Asia/Irkutsk' => 'Saeta Irkutskê',
         'Asia/Jakarta' => 'Saeta Endonezyaya Rojava (Cakarta)',
         'Asia/Jayapura' => 'Saeta Endonezyaya Rojhilat (Cayapûra)',
         'Asia/Jerusalem' => 'Saeta Îsraîlê (Quds)',
         'Asia/Kabul' => 'Saeta Efxanistanê (Kabûl)',
-        'Asia/Kamchatka' => 'Saeta Rûsya(y)ê (Kamçatka)',
+        'Asia/Kamchatka' => 'Saeta Kamchatkayê (Kamçatka)',
         'Asia/Karachi' => 'Saeta Pakistanê (Karaçî)',
         'Asia/Katmandu' => 'Saeta Nepalê (Katmandû)',
+        'Asia/Kathmandu' => 'Saeta Nepalê (Katmandû)',
         'Asia/Khandyga' => 'Saeta Yakutskê (Xandîga)',
         'Asia/Krasnoyarsk' => 'Saeta Krasnoyarskê',
         'Asia/Kuala_Lumpur' => 'Saeta Malezyayê (Kûala Lûmpûr)',
@@ -255,10 +268,10 @@
         'Asia/Magadan' => 'Saeta Magadanê',
         'Asia/Makassar' => 'Saeta Endonezyaya Navîn (Makasar)',
         'Asia/Manila' => 'Saeta Fîlîpînê (Manîla)',
-        'Asia/Muscat' => 'Saeta Standard a Kendavê (Muskat)',
+        'Asia/Muscat' => 'Saeta Kendavê ya Standard (Muskat)',
         'Asia/Nicosia' => 'Saeta Ewropaya Rojhilat (Lefkoşe)',
         'Asia/Novokuznetsk' => 'Saeta Krasnoyarskê (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Saeta Novosibirskê',
+        'Asia/Novosibirsk' => 'Saeta Krasnoyarskê (Novosibirsk)',
         'Asia/Omsk' => 'Saeta Omskê',
         'Asia/Oral' => 'Saeta Qazaxistanê (Oral)',
         'Asia/Phnom_Penh' => 'Saeta Hindiçînê (Phnom Penh)',
@@ -268,13 +281,15 @@
         'Asia/Qostanay' => 'Saeta Qazaxistanê (Qostanay)',
         'Asia/Qyzylorda' => 'Saeta Qazaxistanê (Qizilorda)',
         'Asia/Rangoon' => 'Saeta Myanmarê (Yangon)',
+        'Asia/Yangon' => 'Saeta Myanmarê (Yangon)',
         'Asia/Riyadh' => 'Saeta Erebistanê (Riyad)',
         'Asia/Saigon' => 'Saeta Hindiçînê (Bajarê Ho Chi Minhê)',
-        'Asia/Sakhalin' => 'Saeta Saxalînê',
+        'Asia/Ho_Chi_Minh' => 'Saeta Hindiçînê (Bajarê Ho Chi Minhê)',
+        'Asia/Sakhalin' => 'Saeta Magadanê (Saxalîn)',
         'Asia/Samarkand' => 'Saeta Ozbekistanê (Semerkand)',
         'Asia/Seoul' => 'Saeta Koreyê (Seûl)',
         'Asia/Shanghai' => 'Saeta Çînê (Şanghay)',
-        'Asia/Singapore' => 'Saeta Standard a Sîngapûrê',
+        'Asia/Singapore' => 'Saeta Sîngapûrê ya Standard',
         'Asia/Srednekolymsk' => 'Saeta Magadanê (Srednekolymsk)',
         'Asia/Taipei' => 'Saeta Taîpeîyê',
         'Asia/Tashkent' => 'Saeta Ozbekistanê (Taşkent)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Saeta Îranê (Tehran)',
         'Asia/Thimphu' => 'Saeta Bûtanê (Thimphu)',
         'Asia/Tokyo' => 'Saeta Japonyayê (Tokyo)',
-        'Asia/Tomsk' => 'Saeta Rûsya(y)ê (Tomsk)',
+        'Asia/Tomsk' => 'Saeta Krasnoyarskê (Tomsk)',
         'Asia/Ulaanbaatar' => 'Saeta Ûlanbatarê',
         'Asia/Urumqi' => 'Saeta Çîn(y)ê (Ûrûmçî)',
         'Asia/Ust-Nera' => 'Saeta Vladivostokê (Ûst-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Saeta Ewropaya Rojava (Giravên Kanaryayê)',
         'Atlantic/Cape_Verde' => 'Saeta Cape Verdeyê (Kap Verde)',
         'Atlantic/Faeroe' => 'Saeta Ewropaya Rojava (Faroe)',
+        'Atlantic/Faroe' => 'Saeta Ewropaya Rojava (Faroe)',
         'Atlantic/Madeira' => 'Saeta Ewropaya Rojava (Madeira)',
         'Atlantic/Reykjavik' => 'Saeta Navînî ya Greenwichê (Reykjavik)',
         'Atlantic/South_Georgia' => 'Saeta Georgiaya Başûr',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Saeta Gerdûnî ya Hevdemî',
         'Europe/Amsterdam' => 'Saeta Ewropaya Navîn (Amsterdam)',
         'Europe/Andorra' => 'Saeta Ewropaya Navîn (Andora)',
-        'Europe/Astrakhan' => 'Saeta Moskovayê (Astraxan)',
+        'Europe/Astrakhan' => 'Saeta Samarayê (Astraxan)',
         'Europe/Athens' => 'Saeta Ewropaya Rojhilat (Atîna)',
         'Europe/Belgrade' => 'Saeta Ewropaya Navîn (Belgrad)',
         'Europe/Berlin' => 'Saeta Ewropaya Navîn (Berlîn)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Saeta Navînî ya Greenwichê (Guernsey)',
         'Europe/Helsinki' => 'Saeta Ewropaya Rojhilat (Helsînkî)',
         'Europe/Isle_of_Man' => 'Saeta Navînî ya Greenwichê (Girava Manê)',
-        'Europe/Istanbul' => 'Saeta Tirkîye(y)ê (Stenbol)',
+        'Europe/Istanbul' => 'Saeta Türkiye(y)ê (Stenbol)',
         'Europe/Jersey' => 'Saeta Navînî ya Greenwichê (Jersey)',
         'Europe/Kaliningrad' => 'Saeta Ewropaya Rojhilat (Kalînîngrad)',
         'Europe/Kiev' => 'Saeta Ewropaya Rojhilat (Kîev)',
-        'Europe/Kirov' => 'Saeta Rûsya(y)ê (Kîrov)',
+        'Europe/Kyiv' => 'Saeta Ewropaya Rojhilat (Kîev)',
+        'Europe/Kirov' => 'Saeta Moskovayê (Kîrov)',
         'Europe/Lisbon' => 'Saeta Ewropaya Rojava (Lîzbon)',
         'Europe/Ljubljana' => 'Saeta Ewropaya Navîn (Ljubljana)',
         'Europe/London' => 'Saeta Navînî ya Greenwichê (Londra)',
@@ -353,22 +370,22 @@
         'Europe/Prague' => 'Saeta Ewropaya Navîn (Prag)',
         'Europe/Riga' => 'Saeta Ewropaya Rojhilat (Rîga)',
         'Europe/Rome' => 'Saeta Ewropaya Navîn (Roma)',
-        'Europe/Samara' => 'Saeta Rûsya(y)ê (Samara)',
+        'Europe/Samara' => 'Saeta Samarayê',
         'Europe/San_Marino' => 'Saeta Ewropaya Navîn (San Marîno)',
         'Europe/Sarajevo' => 'Saeta Ewropaya Navîn (Saraybosna)',
-        'Europe/Saratov' => 'Saeta Moskovayê (Saratov)',
+        'Europe/Saratov' => 'Saeta Samarayê (Saratov)',
         'Europe/Simferopol' => 'Saeta Moskovayê (Simferopol)',
         'Europe/Skopje' => 'Saeta Ewropaya Navîn (Uskup)',
         'Europe/Sofia' => 'Saeta Ewropaya Rojhilat (Sofya)',
         'Europe/Stockholm' => 'Saeta Ewropaya Navîn (Stokholm)',
         'Europe/Tallinn' => 'Saeta Ewropaya Rojhilat (Talîn)',
         'Europe/Tirane' => 'Saeta Ewropaya Navîn (Tîran)',
-        'Europe/Ulyanovsk' => 'Saeta Moskovayê (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Saeta Samarayê (Ulyanovsk)',
         'Europe/Vaduz' => 'Saeta Ewropaya Navîn (Vaduz)',
         'Europe/Vatican' => 'Saeta Ewropaya Navîn (Vatîkan)',
         'Europe/Vienna' => 'Saeta Ewropaya Navîn (Viyana)',
         'Europe/Vilnius' => 'Saeta Ewropaya Rojhilat (Vîlnûs)',
-        'Europe/Volgograd' => 'Saeta Volgogradê',
+        'Europe/Volgograd' => 'Saeta Moskovayê (Volgograd)',
         'Europe/Warsaw' => 'Saeta Ewropaya Navîn (Warşova)',
         'Europe/Zagreb' => 'Saeta Ewropaya Navîn (Zagreb)',
         'Europe/Zurich' => 'Saeta Ewropaya Navîn (Zûrîh)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Saeta Giravên Cocosê',
         'Indian/Comoro' => 'Saeta Afrîkaya Rojhilat (Komor)',
         'Indian/Kerguelen' => 'Saeta Antarktîka û Başûrê Fransayê (Kerguelen)',
-        'Indian/Mahe' => 'Saeta Seyşelerê (Mahe)',
+        'Indian/Mahe' => 'Saeta Seyşelerê (Mahé)',
         'Indian/Maldives' => 'Saeta Maldîvan',
         'Indian/Mauritius' => 'Saeta Mauritiusê',
         'Indian/Mayotte' => 'Saeta Afrîkaya Rojhilat (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Saeta Chathamê',
         'Pacific/Easter' => 'Saeta Girava Paskalyayê (Easter)',
         'Pacific/Efate' => 'Saeta Vanûatûyê (Efate)',
-        'Pacific/Enderbury' => 'Saeta Giravên Phoenîks (Enderbury)',
+        'Pacific/Enderbury' => 'Saeta Giravên Phoenîks (Canton)',
+        'Pacific/Kanton' => 'Saeta Giravên Phoenîks (Canton)',
         'Pacific/Fakaofo' => 'Saeta Tokelauyê (Fakaofo)',
         'Pacific/Fiji' => 'Saeta Fîjîyê',
         'Pacific/Funafuti' => 'Saeta Tûvalûyê (Funafuti)',
-        'Pacific/Galapagos' => 'Saeta Galapagosê',
+        'Pacific/Galapagos' => 'Saeta Galapagosê (Galápagos)',
         'Pacific/Gambier' => 'Saeta Gambierê',
         'Pacific/Guadalcanal' => 'Saeta Giravên Solomonê (Guadalcanal)',
-        'Pacific/Guam' => 'Saeta Standard a Chamorroyê (Guam)',
-        'Pacific/Honolulu' => 'Saeta Hawaii-Aleutianê (Honolulu)',
+        'Pacific/Guam' => 'Saeta Chamorroyê ya Standard (Guam)',
+        'Pacific/Honolulu' => 'Saeta Standard a Hawaii-Aleutianê (Honolulu)',
         'Pacific/Kiritimati' => 'Saeta Giravên Lîneyê (Kiritimati)',
         'Pacific/Kosrae' => 'Saeta Kosraeyê',
         'Pacific/Kwajalein' => 'Saeta Giravên Marşalê (Kwajalein)',
@@ -407,20 +425,22 @@
         'Pacific/Nauru' => 'Saeta Naûrûyê (Nauru)',
         'Pacific/Niue' => 'Saeta Niueyê',
         'Pacific/Norfolk' => 'Saeta Girava Norfolkê',
-        'Pacific/Noumea' => 'Saeta Kaledonyaya Nû (Noumea)',
+        'Pacific/Noumea' => 'Saeta Kaledonyaya Nû (Nouméa)',
         'Pacific/Pago_Pago' => 'Saeta Samoayê (Pago Pago)',
         'Pacific/Palau' => 'Saeta Palauyê',
         'Pacific/Pitcairn' => 'Saeta Pitcairnê',
         'Pacific/Ponape' => 'Saeta Ponapeyê (Pohnpei)',
+        'Pacific/Pohnpei' => 'Saeta Ponapeyê (Pohnpei)',
         'Pacific/Port_Moresby' => 'Saeta Gîneya Nû ya Papûayê (Port Moresby)',
         'Pacific/Rarotonga' => 'Saeta Giravên Cookê (Rarotonga)',
-        'Pacific/Saipan' => 'Saeta Standard a Chamorroyê (Saipan)',
+        'Pacific/Saipan' => 'Saeta Chamorroyê ya Standard (Saipan)',
         'Pacific/Tahiti' => 'Saeta Tahîtîyê',
         'Pacific/Tarawa' => 'Saeta Giravên Gilbertê (Tarawa)',
         'Pacific/Tongatapu' => 'Saeta Tongayê (Tongatapu)',
         'Pacific/Truk' => 'Saeta Chuukê',
+        'Pacific/Chuuk' => 'Saeta Chuukê',
         'Pacific/Wake' => 'Saeta Girava Wakeyê',
-        'Pacific/Wallis' => 'Saeta Wallis û Futunayê',
+        'Pacific/Wallis' => 'Saeta Wallis û Futunayê (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ky.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ky.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ky.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ky.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Чыгыш Африка убактысы (Аддис-Абеба)',
         'Africa/Algiers' => 'Борбордук Европа убактысы (Алжир)',
         'Africa/Asmera' => 'Чыгыш Африка убактысы (Асмара)',
+        'Africa/Asmara' => 'Чыгыш Африка убактысы (Асмара)',
         'Africa/Bamako' => 'Гринвич боюнча орточо убакыт (Бамако)',
         'Africa/Bangui' => 'Батыш Африка убактысы (Баги)',
         'Africa/Banjul' => 'Гринвич боюнча орточо убакыт (Банжул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Колумбия убактысы (Богота)',
         'America/Boise' => 'Түндүк Америка, тоо убактысы (Бойсе)',
         'America/Buenos_Aires' => 'Аргентина убактысы (Буэнос-Айрес)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина убактысы (Буэнос-Айрес)',
         'America/Cambridge_Bay' => 'Түндүк Америка, тоо убактысы (Кэмбриж Бей)',
         'America/Campo_Grande' => 'Амазон убактысы (Кампо Гранде)',
         'America/Cancun' => 'Түндүк Америка, чыгыш убактысы (Канкун)',
         'America/Caracas' => 'Венесуэла убактысы (Каракас)',
         'America/Catamarca' => 'Аргентина убактысы (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргентина убактысы (Катамарка)',
         'America/Cayenne' => 'Француз Гвиана убактысы (Кайен)',
         'America/Cayman' => 'Түндүк Америка, чыгыш убактысы (Кайман)',
         'America/Chicago' => 'Түндүк Америка, борбордук убакыт (Чикаго)',
         'America/Chihuahua' => 'Түндүк Америка, борбордук убакыт (Чихуахуа)',
         'America/Ciudad_Juarez' => 'Түндүк Америка, тоо убактысы (Сьюдад-Хуарес)',
         'America/Coral_Harbour' => 'Түндүк Америка, чыгыш убактысы (Атикокан)',
+        'America/Atikokan' => 'Түндүк Америка, чыгыш убактысы (Атикокан)',
         'America/Cordoba' => 'Аргентина убактысы (Кордова)',
+        'America/Argentina/Cordoba' => 'Аргентина убактысы (Кордова)',
         'America/Costa_Rica' => 'Түндүк Америка, борбордук убакыт (Коста-Рика)',
+        'America/Coyhaique' => 'Чили убактысы (Койайке)',
         'America/Creston' => 'Түндүк Америка, тоо убактысы (Крестон)',
         'America/Cuiaba' => 'Амазон убактысы (Куйаба)',
         'America/Curacao' => 'Атлантика убактысы (Кюрасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразилия убактысы (Форталеза)',
         'America/Glace_Bay' => 'Атлантика убактысы (Глейс Бей)',
         'America/Godthab' => 'Гренландия убактысы (Нуук)',
+        'America/Nuuk' => 'Гренландия убактысы (Нуук)',
         'America/Goose_Bay' => 'Атлантика убактысы (Гус Бей)',
         'America/Grand_Turk' => 'Түндүк Америка, чыгыш убактысы (Гранд Түрк)',
         'America/Grenada' => 'Атлантика убактысы (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Түндүк Америка, чыгыш убактысы (Винсен, Индиана)',
         'America/Indiana/Winamac' => 'Түндүк Америка, чыгыш убактысы (Уинамак, Индиана)',
         'America/Indianapolis' => 'Түндүк Америка, чыгыш убактысы (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Түндүк Америка, чыгыш убактысы (Индианаполис)',
         'America/Inuvik' => 'Түндүк Америка, тоо убактысы (Инувик)',
         'America/Iqaluit' => 'Түндүк Америка, чыгыш убактысы (Икалуит)',
         'America/Jamaica' => 'Түндүк Америка, чыгыш убактысы (Ямайка)',
         'America/Jujuy' => 'Аргентина убактысы (Жужуй)',
+        'America/Argentina/Jujuy' => 'Аргентина убактысы (Жужуй)',
         'America/Juneau' => 'Аляска убактысы (Жуно)',
         'America/Kentucky/Monticello' => 'Түндүк Америка, чыгыш убактысы (Монтичелло, Кентукки)',
         'America/Kralendijk' => 'Атлантика убактысы (Кралендейк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перу убактысы (Лима)',
         'America/Los_Angeles' => 'Түндүк Америка, Тынч океан убактысы (Лос-Анжелес)',
         'America/Louisville' => 'Түндүк Америка, чыгыш убактысы (Луизвилл)',
+        'America/Kentucky/Louisville' => 'Түндүк Америка, чыгыш убактысы (Луизвилл)',
         'America/Lower_Princes' => 'Атлантика убактысы (Лоуэр Принсес Куате)',
         'America/Maceio' => 'Бразилия убактысы (Масейо)',
         'America/Managua' => 'Түндүк Америка, борбордук убакыт (Манагуа)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Түндүк Америка, борбордук убакыт (Матаморос)',
         'America/Mazatlan' => 'Мексика, Тынч океан убактысы (Мазатлан)',
         'America/Mendoza' => 'Аргентина убактысы (Мендоза)',
+        'America/Argentina/Mendoza' => 'Аргентина убактысы (Мендоза)',
         'America/Menominee' => 'Түндүк Америка, борбордук убакыт (Меномини)',
         'America/Merida' => 'Түндүк Америка, борбордук убакыт (Мерида)',
         'America/Metlakatla' => 'Аляска убактысы (Метлакатла)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Арабия убактысы (Бахрейн)',
         'Asia/Baku' => 'Азербайжан убактысы (Баку)',
         'Asia/Bangkok' => 'Индокытай убактысы (Бангкок)',
-        'Asia/Barnaul' => 'Россия убактысы (Барнаул)',
+        'Asia/Barnaul' => 'Красноярск убактысы (Барнаул)',
         'Asia/Beirut' => 'Чыгыш Европа убактысы (Бейрут)',
         'Asia/Bishkek' => 'Кыргызстан убактысы (Бишкек)',
         'Asia/Brunei' => 'Бруней Даруссалам убактысы',
         'Asia/Calcutta' => 'Индия убактысы (Калькутта)',
+        'Asia/Kolkata' => 'Индия убактысы (Калькутта)',
         'Asia/Chita' => 'Якутск убактысы (Чита)',
         'Asia/Colombo' => 'Индия убактысы (Коломбо)',
         'Asia/Damascus' => 'Чыгыш Европа убактысы (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Россия убактысы (Камчатка)',
         'Asia/Karachi' => 'Пакистан убактысы (Карачи)',
         'Asia/Katmandu' => 'Непал убактысы (Катманду)',
+        'Asia/Kathmandu' => 'Непал убактысы (Катманду)',
         'Asia/Khandyga' => 'Якутск убактысы (Кандыга)',
         'Asia/Krasnoyarsk' => 'Красноярск убактысы',
         'Asia/Kuala_Lumpur' => 'Малайзия убактысы (Куала Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Булуңдун стандарттык убакыты (Мускат)',
         'Asia/Nicosia' => 'Чыгыш Европа убактысы (Никосия)',
         'Asia/Novokuznetsk' => 'Красноярск убактысы (Новокузнецк)',
-        'Asia/Novosibirsk' => 'Новосибирск убактысы',
+        'Asia/Novosibirsk' => 'Красноярск убактысы (Новосибирск)',
         'Asia/Omsk' => 'Омск убактысы',
         'Asia/Oral' => 'Казакстан убактысы (Орал)',
         'Asia/Phnom_Penh' => 'Индокытай убактысы (Пномпень)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Казакстан убактысы (Костанай)',
         'Asia/Qyzylorda' => 'Казакстан убактысы (Кызылорда)',
         'Asia/Rangoon' => 'Мйанмар убактысы (Рангун)',
+        'Asia/Yangon' => 'Мйанмар убактысы (Рангун)',
         'Asia/Riyadh' => 'Арабия убактысы (Рийад)',
         'Asia/Saigon' => 'Индокытай убактысы (Хо Ши Мин)',
-        'Asia/Sakhalin' => 'Сахалин убактысы',
+        'Asia/Ho_Chi_Minh' => 'Индокытай убактысы (Хо Ши Мин)',
+        'Asia/Sakhalin' => 'Магадан убактысы (Сахалин)',
         'Asia/Samarkand' => 'Өзбекстан убактысы (Самарканд)',
         'Asia/Seoul' => 'Корея убактысы (Сеул)',
         'Asia/Shanghai' => 'Кытай убактысы (Шанхай)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Иран убактысы (Тегеран)',
         'Asia/Thimphu' => 'Бутан убактысы (Тимпу)',
         'Asia/Tokyo' => 'Жапон убактысы (Токио)',
-        'Asia/Tomsk' => 'Россия убактысы (Томск)',
+        'Asia/Tomsk' => 'Красноярск убактысы (Томск)',
         'Asia/Ulaanbaatar' => 'Улан Батор убактысы',
         'Asia/Urumqi' => 'Кытай убактысы (Үрүмчү)',
         'Asia/Ust-Nera' => 'Владивосток убактысы (Усть-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Батыш Европа убактысы (Канари)',
         'Atlantic/Cape_Verde' => 'Капе Верде убактысы',
         'Atlantic/Faeroe' => 'Батыш Европа убактысы (Фарер)',
+        'Atlantic/Faroe' => 'Батыш Европа убактысы (Фарер)',
         'Atlantic/Madeira' => 'Батыш Европа убактысы (Мадейра)',
         'Atlantic/Reykjavik' => 'Гринвич боюнча орточо убакыт (Рейкьявик)',
         'Atlantic/South_Georgia' => 'Түштүк Жоржия убактысы',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Бирдиктүү дүйнөлүк убакыт',
         'Europe/Amsterdam' => 'Борбордук Европа убактысы (Амстердам)',
         'Europe/Andorra' => 'Борбордук Европа убактысы (Андорра)',
-        'Europe/Astrakhan' => 'Москва убактысы (Астрахань)',
+        'Europe/Astrakhan' => 'Россия убактысы (Астрахань)',
         'Europe/Athens' => 'Чыгыш Европа убактысы (Афины)',
         'Europe/Belgrade' => 'Борбордук Европа убактысы (Белград)',
         'Europe/Berlin' => 'Борбордук Европа убактысы (Берлин)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Гринвич боюнча орточо убакыт (Жерси)',
         'Europe/Kaliningrad' => 'Чыгыш Европа убактысы (Калининград)',
         'Europe/Kiev' => 'Чыгыш Европа убактысы (Киев)',
-        'Europe/Kirov' => 'Россия убактысы (Киров)',
+        'Europe/Kyiv' => 'Чыгыш Европа убактысы (Киев)',
+        'Europe/Kirov' => 'Москва убактысы (Киров)',
         'Europe/Lisbon' => 'Батыш Европа убактысы (Лиссабон)',
         'Europe/Ljubljana' => 'Борбордук Европа убактысы (Любляна)',
         'Europe/London' => 'Гринвич боюнча орточо убакыт (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Россия убактысы (Самара)',
         'Europe/San_Marino' => 'Борбордук Европа убактысы (Сан Марино)',
         'Europe/Sarajevo' => 'Борбордук Европа убактысы (Сараево)',
-        'Europe/Saratov' => 'Москва убактысы (Саратов)',
+        'Europe/Saratov' => 'Россия убактысы (Саратов)',
         'Europe/Simferopol' => 'Москва убактысы (Симферополь)',
         'Europe/Skopje' => 'Борбордук Европа убактысы (Скопйе)',
         'Europe/Sofia' => 'Чыгыш Европа убактысы (София)',
         'Europe/Stockholm' => 'Борбордук Европа убактысы (Стокгольм)',
         'Europe/Tallinn' => 'Чыгыш Европа убактысы (Таллин)',
         'Europe/Tirane' => 'Борбордук Европа убактысы (Тирана)',
-        'Europe/Ulyanovsk' => 'Москва убактысы (Ульяновск)',
+        'Europe/Ulyanovsk' => 'Россия убактысы (Ульяновск)',
         'Europe/Vaduz' => 'Борбордук Европа убактысы (Фадуц)',
         'Europe/Vatican' => 'Борбордук Европа убактысы (Ватикан)',
         'Europe/Vienna' => 'Борбордук Европа убактысы (Вена)',
         'Europe/Vilnius' => 'Чыгыш Европа убактысы (Вильнюс)',
-        'Europe/Volgograd' => 'Волгоград убактысы',
+        'Europe/Volgograd' => 'Москва убактысы (Волгоград)',
         'Europe/Warsaw' => 'Борбордук Европа убактысы (Варшава)',
         'Europe/Zagreb' => 'Борбордук Европа убактысы (Загреб)',
         'Europe/Zurich' => 'Борбордук Европа убактысы (Цюрих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Чатам убактысы (Чатем)',
         'Pacific/Easter' => 'Истер аралынын убактысы',
         'Pacific/Efate' => 'Вануату убактысы (Эфат)',
-        'Pacific/Enderbury' => 'Феникс аралдарынын убактысы (Эндербери)',
+        'Pacific/Enderbury' => 'Феникс аралдарынын убактысы (Кантон)',
+        'Pacific/Kanton' => 'Феникс аралдарынын убактысы (Кантон)',
         'Pacific/Fakaofo' => 'Токелау убактысы (Факаофо)',
         'Pacific/Fiji' => 'Фижи убактысы',
         'Pacific/Funafuti' => 'Тувалу убактысы (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Гамбие убактысы',
         'Pacific/Guadalcanal' => 'Соломон аралдарынын убактысы (Гуадалканал)',
         'Pacific/Guam' => 'Чаморро убактысы (Гуам)',
-        'Pacific/Honolulu' => 'Гавайи-Алеут убактысы (Гонолулу)',
+        'Pacific/Honolulu' => 'Гавайи-Алеут кышкы убактысы (Гонолулу)',
         'Pacific/Kiritimati' => 'Лайн аралдарынын убактысы (Киритимати)',
         'Pacific/Kosrae' => 'Косрае убактысы (Козрае)',
         'Pacific/Kwajalein' => 'Маршалл аралдарынын убактысы (Куажалейн)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Палау убактысы',
         'Pacific/Pitcairn' => 'Питкэрнг убактысы',
         'Pacific/Ponape' => 'Понапе убактысы (Понпей)',
+        'Pacific/Pohnpei' => 'Понапе убактысы (Понпей)',
         'Pacific/Port_Moresby' => 'Папуа-Жаңы Гвинея убакыты (Порт Моэрсби)',
         'Pacific/Rarotonga' => 'Кук аралдарынын убактысы (Раготонга)',
         'Pacific/Saipan' => 'Чаморро убактысы (Сайпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Гилберт убактысы (Тарава)',
         'Pacific/Tongatapu' => 'Тонга убактысы (Тонгатапу)',
         'Pacific/Truk' => 'Чуук убактысы',
+        'Pacific/Chuuk' => 'Чуук убактысы',
         'Pacific/Wake' => 'Уейк аралдарынын убактысы',
         'Pacific/Wallis' => 'Уолис жана Футуна убактысы',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lb.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lb.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lb.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lb.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Ostafrikanesch Zäit (Addis Abeba)',
         'Africa/Algiers' => 'Mëtteleuropäesch Zäit (Alger)',
         'Africa/Asmera' => 'Ostafrikanesch Zäit (Asmara)',
+        'Africa/Asmara' => 'Ostafrikanesch Zäit (Asmara)',
         'Africa/Bamako' => 'Mëttler Greenwich-Zäit (Bamako)',
         'Africa/Bangui' => 'Westafrikanesch Zäit (Bangui)',
         'Africa/Banjul' => 'Mëttler Greenwich-Zäit (Banjul)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Westafrikanesch Zäit (Kinshasa)',
         'Africa/Lagos' => 'Westafrikanesch Zäit (Lagos)',
         'Africa/Libreville' => 'Westafrikanesch Zäit (Libreville)',
-        'Africa/Lome' => 'Mëttler Greenwich-Zäit (Lome)',
+        'Africa/Lome' => 'Mëttler Greenwich-Zäit (Lomé)',
         'Africa/Luanda' => 'Westafrikanesch Zäit (Luanda)',
         'Africa/Lubumbashi' => 'Zentralafrikanesch Zäit (Lubumbashi)',
         'Africa/Lusaka' => 'Zentralafrikanesch Zäit (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Ostafrikanesch Zäit (Mogadischu)',
         'Africa/Monrovia' => 'Mëttler Greenwich-Zäit (Monrovia)',
         'Africa/Nairobi' => 'Ostafrikanesch Zäit (Nairobi)',
-        'Africa/Ndjamena' => 'Westafrikanesch Zäit (Ndjamena)',
+        'Africa/Ndjamena' => 'Westafrikanesch Zäit (N’Djamena)',
         'Africa/Niamey' => 'Westafrikanesch Zäit (Niamey)',
         'Africa/Nouakchott' => 'Mëttler Greenwich-Zäit (Nouakchott)',
         'Africa/Ouagadougou' => 'Mëttler Greenwich-Zäit (Wagadugu)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Alaska-Zäit (Anchorage)',
         'America/Anguilla' => 'Atlantik-Zäit (Anguilla)',
         'America/Antigua' => 'Atlantik-Zäit (Antigua)',
-        'America/Araguaina' => 'Brasília-Zäit (Araguaina)',
+        'America/Araguaina' => 'Brasília-Zäit (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentinesch Zäit (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentinesch Zäit (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentinesch Zäit (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentinesch Zäit (Salta)',
         'America/Argentina/San_Juan' => 'Argentinesch Zäit (San Juan)',
         'America/Argentina/San_Luis' => 'Argentinesch Zäit (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentinesch Zäit (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentinesch Zäit (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentinesch Zäit (Ushuaia)',
         'America/Aruba' => 'Atlantik-Zäit (Aruba)',
         'America/Asuncion' => 'Paraguayanesch Zäit (Asunción)',
         'America/Bahia' => 'Brasília-Zäit (Bahia)',
         'America/Bahia_Banderas' => 'Nordamerikanesch Inlandzäit (Bahía de Banderas)',
         'America/Barbados' => 'Atlantik-Zäit (Barbados)',
-        'America/Belem' => 'Brasília-Zäit (Belem)',
+        'America/Belem' => 'Brasília-Zäit (Belém)',
         'America/Belize' => 'Nordamerikanesch Inlandzäit (Belize)',
         'America/Blanc-Sablon' => 'Atlantik-Zäit (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazonas-Zäit (Boa Vista)',
-        'America/Bogota' => 'Kolumbianesch Zäit (Bogota)',
+        'America/Bogota' => 'Kolumbianesch Zäit (Bogotá)',
         'America/Boise' => 'Rocky-Mountain-Zäit (Boise)',
         'America/Buenos_Aires' => 'Argentinesch Zäit (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentinesch Zäit (Buenos Aires)',
         'America/Cambridge_Bay' => 'Rocky-Mountain-Zäit (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazonas-Zäit (Campo Grande)',
         'America/Cancun' => 'Nordamerikanesch Ostküstenzäit (Cancún)',
         'America/Caracas' => 'Venezuela-Zäit (Caracas)',
         'America/Catamarca' => 'Argentinesch Zäit (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentinesch Zäit (Catamarca)',
         'America/Cayenne' => 'Franséisch-Guayane-Zäit (Cayenne)',
         'America/Cayman' => 'Nordamerikanesch Ostküstenzäit (Kaimaninselen)',
         'America/Chicago' => 'Nordamerikanesch Inlandzäit (Chicago)',
         'America/Chihuahua' => 'Nordamerikanesch Inlandzäit (Chihuahua)',
         'America/Ciudad_Juarez' => 'Rocky-Mountain-Zäit (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Nordamerikanesch Ostküstenzäit (Atikokan)',
-        'America/Cordoba' => 'Argentinesch Zäit (Cordoba)',
+        'America/Atikokan' => 'Nordamerikanesch Ostküstenzäit (Atikokan)',
+        'America/Cordoba' => 'Argentinesch Zäit (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentinesch Zäit (Córdoba)',
         'America/Costa_Rica' => 'Nordamerikanesch Inlandzäit (Costa Rica)',
+        'America/Coyhaique' => 'Chilenesch Zäit (Coyhaique)',
         'America/Creston' => 'Rocky-Mountain-Zäit (Creston)',
-        'America/Cuiaba' => 'Amazonas-Zäit (Cuiaba)',
+        'America/Cuiaba' => 'Amazonas-Zäit (Cuiabá)',
         'America/Curacao' => 'Atlantik-Zäit (Curaçao)',
         'America/Danmarkshavn' => 'Mëttler Greenwich-Zäit (Danmarkshavn)',
         'America/Dawson' => 'Kanada Zäit (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Nordamerikanesch Ostküstenzäit (Detroit)',
         'America/Dominica' => 'Atlantik-Zäit (Dominica)',
         'America/Edmonton' => 'Rocky-Mountain-Zäit (Edmonton)',
-        'America/Eirunepe' => 'Acre-Zäit (Eirunepe)',
+        'America/Eirunepe' => 'Acre-Zäit (Eirunepé)',
         'America/El_Salvador' => 'Nordamerikanesch Inlandzäit (Salvador)',
         'America/Fort_Nelson' => 'Rocky-Mountain-Zäit (Fort Nelson)',
         'America/Fortaleza' => 'Brasília-Zäit (Fortaleza)',
         'America/Glace_Bay' => 'Atlantik-Zäit (Glace Bay)',
         'America/Godthab' => 'Grönland Zäit (Nuuk)',
+        'America/Nuuk' => 'Grönland Zäit (Nuuk)',
         'America/Goose_Bay' => 'Atlantik-Zäit (Goose Bay)',
         'America/Grand_Turk' => 'Nordamerikanesch Ostküstenzäit (Grand Turk)',
         'America/Grenada' => 'Atlantik-Zäit (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Nordamerikanesch Ostküstenzäit (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Nordamerikanesch Ostküstenzäit (Winamac, Indiana)',
         'America/Indianapolis' => 'Nordamerikanesch Ostküstenzäit (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Nordamerikanesch Ostküstenzäit (Indianapolis)',
         'America/Inuvik' => 'Rocky-Mountain-Zäit (Inuvik)',
         'America/Iqaluit' => 'Nordamerikanesch Ostküstenzäit (Iqaluit)',
         'America/Jamaica' => 'Nordamerikanesch Ostküstenzäit (Jamaika)',
         'America/Jujuy' => 'Argentinesch Zäit (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentinesch Zäit (Jujuy)',
         'America/Juneau' => 'Alaska-Zäit (Juneau)',
         'America/Kentucky/Monticello' => 'Nordamerikanesch Ostküstenzäit (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantik-Zäit (Kralendijk)',
@@ -136,15 +145,17 @@
         'America/Lima' => 'Peruanesch Zäit (Lima)',
         'America/Los_Angeles' => 'Nordamerikanesch Westküstenzäit (Los Angeles)',
         'America/Louisville' => 'Nordamerikanesch Ostküstenzäit (Louisville)',
+        'America/Kentucky/Louisville' => 'Nordamerikanesch Ostküstenzäit (Louisville)',
         'America/Lower_Princes' => 'Atlantik-Zäit (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasília-Zäit (Maceio)',
+        'America/Maceio' => 'Brasília-Zäit (Maceió)',
         'America/Managua' => 'Nordamerikanesch Inlandzäit (Managua)',
         'America/Manaus' => 'Amazonas-Zäit (Manaus)',
         'America/Marigot' => 'Atlantik-Zäit (Marigot)',
         'America/Martinique' => 'Atlantik-Zäit (Martinique)',
         'America/Matamoros' => 'Nordamerikanesch Inlandzäit (Matamoros)',
-        'America/Mazatlan' => 'Mexikanesch Pazifikzäit (Mazatlan)',
+        'America/Mazatlan' => 'Mexikanesch Pazifikzäit (Mazatlán)',
         'America/Mendoza' => 'Argentinesch Zäit (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentinesch Zäit (Mendoza)',
         'America/Menominee' => 'Nordamerikanesch Inlandzäit (Menominee)',
         'America/Merida' => 'Nordamerikanesch Inlandzäit (Mérida)',
         'America/Metlakatla' => 'Alaska-Zäit (Metlakatla)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Nordamerikanesch Inlandzäit (Regina)',
         'America/Resolute' => 'Nordamerikanesch Inlandzäit (Resolute)',
         'America/Rio_Branco' => 'Acre-Zäit (Rio Branco)',
-        'America/Santarem' => 'Brasília-Zäit (Santarem)',
+        'America/Santarem' => 'Brasília-Zäit (Santarém)',
         'America/Santiago' => 'Chilenesch Zäit (Santiago)',
         'America/Santo_Domingo' => 'Atlantik-Zäit (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasília-Zäit (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brasília-Zäit (São Paulo)',
         'America/Scoresbysund' => 'Grönland Zäit (Ittoqqortoormiit)',
         'America/Sitka' => 'Alaska-Zäit (Sitka)',
         'America/St_Barthelemy' => 'Atlantik-Zäit (Saint-Barthélemy)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Neiséiland-Zäit (McMurdo)',
         'Antarctica/Palmer' => 'Chilenesch Zäit (Palmer)',
         'Antarctica/Rothera' => 'Rothera-Zäit',
-        'Antarctica/Syowa' => 'Syowa-Zäit',
+        'Antarctica/Syowa' => 'Syowa-Zäit (Showa)',
         'Antarctica/Troll' => 'Mëttler Greenwich-Zäit (Troll)',
         'Antarctica/Vostok' => 'Wostok-Zäit',
         'Arctic/Longyearbyen' => 'Mëtteleuropäesch Zäit (Longyearbyen)',
         'Asia/Aden' => 'Arabesch Zäit (Aden)',
         'Asia/Almaty' => 'Kasachstan Zäit (Almaty)',
         'Asia/Amman' => 'Osteuropäesch Zäit (Amman)',
-        'Asia/Anadyr' => 'Anadyr-Zäit',
+        'Asia/Anadyr' => 'Kamtschatka-Zäit (Anadyr)',
         'Asia/Aqtau' => 'Kasachstan Zäit (Aqtau)',
         'Asia/Aqtobe' => 'Kasachstan Zäit (Aqtöbe)',
         'Asia/Ashgabat' => 'Turkmenistan-Zäit (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabesch Zäit (Bahrain)',
         'Asia/Baku' => 'Aserbaidschanesch Zäit (Baku)',
         'Asia/Bangkok' => 'Indochina-Zäit (Bangkok)',
-        'Asia/Barnaul' => 'Russland Zäit (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarsk-Zäit (Barnaul)',
         'Asia/Beirut' => 'Osteuropäesch Zäit (Beirut)',
         'Asia/Bishkek' => 'Kirgisistan-Zäit (Bischkek)',
         'Asia/Brunei' => 'Brunei-Zäit',
         'Asia/Calcutta' => 'Indesch Zäit (Kalkutta)',
+        'Asia/Kolkata' => 'Indesch Zäit (Kalkutta)',
         'Asia/Chita' => 'Jakutsk-Zäit (Chita)',
         'Asia/Colombo' => 'Indesch Zäit (Colombo)',
         'Asia/Damascus' => 'Osteuropäesch Zäit (Damaskus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Osteuropäesch Zäit (Gaza)',
         'Asia/Hebron' => 'Osteuropäesch Zäit (Hebron)',
         'Asia/Hong_Kong' => 'Hong-Kong-Zäit',
-        'Asia/Hovd' => 'Hovd-Zäit',
+        'Asia/Hovd' => 'Hovd-Zäit (Khovd)',
         'Asia/Irkutsk' => 'Irkutsk-Zäit',
         'Asia/Jakarta' => 'Westindonesesch Zäit (Jakarta)',
         'Asia/Jayapura' => 'Ostindonesesch Zäit (Port Numbay)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Kamtschatka-Zäit',
         'Asia/Karachi' => 'Pakistanesch Zäit (Karachi)',
         'Asia/Katmandu' => 'Nepalesesch Zäit (Kathmandu)',
+        'Asia/Kathmandu' => 'Nepalesesch Zäit (Kathmandu)',
         'Asia/Khandyga' => 'Jakutsk-Zäit (Khandyga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsk-Zäit',
         'Asia/Kuala_Lumpur' => 'Malaysesch Zäit (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Golf-Zäit (Muskat)',
         'Asia/Nicosia' => 'Osteuropäesch Zäit (Nikosia)',
         'Asia/Novokuznetsk' => 'Krasnojarsk-Zäit (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Nowosibirsk-Zäit',
+        'Asia/Novosibirsk' => 'Krasnojarsk-Zäit (Nowosibirsk)',
         'Asia/Omsk' => 'Omsk-Zäit',
         'Asia/Oral' => 'Kasachstan Zäit (Oral)',
         'Asia/Phnom_Penh' => 'Indochina-Zäit (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kasachstan Zäit (Qostanay)',
         'Asia/Qyzylorda' => 'Kasachstan Zäit (Qyzylorda)',
         'Asia/Rangoon' => 'Myanmar-Zäit (Yangon)',
+        'Asia/Yangon' => 'Myanmar-Zäit (Yangon)',
         'Asia/Riyadh' => 'Arabesch Zäit (Riad)',
         'Asia/Saigon' => 'Indochina-Zäit (Ho-Chi-Minh-Stad)',
-        'Asia/Sakhalin' => 'Sakhalin-Zäit (Sachalin)',
+        'Asia/Ho_Chi_Minh' => 'Indochina-Zäit (Ho-Chi-Minh-Stad)',
+        'Asia/Sakhalin' => 'Magadan-Zäit (Sachalin)',
         'Asia/Samarkand' => 'Usbekistan-Zäit (Samarkand)',
         'Asia/Seoul' => 'Koreanesch Zäit (Seoul)',
         'Asia/Shanghai' => 'Chinesesch Zäit (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Iranesch Zäit (Teheran)',
         'Asia/Thimphu' => 'Bhutan-Zäit (Thimphu)',
         'Asia/Tokyo' => 'Japanesch Zäit (Tokio)',
-        'Asia/Tomsk' => 'Russland Zäit (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarsk-Zäit (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulaanbaatar-Zäit',
-        'Asia/Urumqi' => 'China Zäit (Urumqi)',
+        'Asia/Urumqi' => 'China Zäit (Ürümqi)',
         'Asia/Ust-Nera' => 'Wladiwostok-Zäit (Ust-Nera)',
         'Asia/Vientiane' => 'Indochina-Zäit (Vientiane)',
         'Asia/Vladivostok' => 'Wladiwostok-Zäit',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Westeuropäesch Zäit (Kanaresch Inselen)',
         'Atlantic/Cape_Verde' => 'Kap-Verde-Zäit',
         'Atlantic/Faeroe' => 'Westeuropäesch Zäit (Färöer)',
+        'Atlantic/Faroe' => 'Westeuropäesch Zäit (Färöer)',
         'Atlantic/Madeira' => 'Westeuropäesch Zäit (Madeira)',
         'Atlantic/Reykjavik' => 'Mëttler Greenwich-Zäit (Reykjavik)',
         'Atlantic/South_Georgia' => 'Südgeorgesch Zäit (Südgeorgien)',
@@ -315,7 +331,7 @@
         'Etc/GMT' => 'Mëttler Greenwich-Zäit',
         'Europe/Amsterdam' => 'Mëtteleuropäesch Zäit (Amsterdam)',
         'Europe/Andorra' => 'Mëtteleuropäesch Zäit (Andorra)',
-        'Europe/Astrakhan' => 'Moskauer Zäit (Astrakhan)',
+        'Europe/Astrakhan' => 'Samara-Zäit (Astrakhan)',
         'Europe/Athens' => 'Osteuropäesch Zäit (Athen)',
         'Europe/Belgrade' => 'Mëtteleuropäesch Zäit (Belgrad)',
         'Europe/Berlin' => 'Mëtteleuropäesch Zäit (Berlin)',
@@ -323,7 +339,7 @@
         'Europe/Brussels' => 'Mëtteleuropäesch Zäit (Bréissel)',
         'Europe/Bucharest' => 'Osteuropäesch Zäit (Bukarest)',
         'Europe/Budapest' => 'Mëtteleuropäesch Zäit (Budapest)',
-        'Europe/Busingen' => 'Mëtteleuropäesch Zäit (Busingen)',
+        'Europe/Busingen' => 'Mëtteleuropäesch Zäit (Büsingen)',
         'Europe/Chisinau' => 'Osteuropäesch Zäit (Kischinau)',
         'Europe/Copenhagen' => 'Mëtteleuropäesch Zäit (Kopenhagen)',
         'Europe/Dublin' => 'Mëttler Greenwich-Zäit (Dublin)',
@@ -335,7 +351,8 @@
         'Europe/Jersey' => 'Mëttler Greenwich-Zäit (Jersey)',
         'Europe/Kaliningrad' => 'Osteuropäesch Zäit (Kaliningrad)',
         'Europe/Kiev' => 'Osteuropäesch Zäit (Kiew)',
-        'Europe/Kirov' => 'Russland Zäit (Kirov)',
+        'Europe/Kyiv' => 'Osteuropäesch Zäit (Kiew)',
+        'Europe/Kirov' => 'Moskauer Zäit (Kirov)',
         'Europe/Lisbon' => 'Westeuropäesch Zäit (Lissabon)',
         'Europe/Ljubljana' => 'Mëtteleuropäesch Zäit (Ljubljana)',
         'Europe/London' => 'Mëttler Greenwich-Zäit (London)',
@@ -355,19 +372,19 @@
         'Europe/Samara' => 'Samara-Zäit',
         'Europe/San_Marino' => 'Mëtteleuropäesch Zäit (San Marino)',
         'Europe/Sarajevo' => 'Mëtteleuropäesch Zäit (Sarajevo)',
-        'Europe/Saratov' => 'Moskauer Zäit (Saratov)',
+        'Europe/Saratov' => 'Samara-Zäit (Saratov)',
         'Europe/Simferopol' => 'Moskauer Zäit (Simferopol)',
         'Europe/Skopje' => 'Mëtteleuropäesch Zäit (Skopje)',
         'Europe/Sofia' => 'Osteuropäesch Zäit (Sofia)',
         'Europe/Stockholm' => 'Mëtteleuropäesch Zäit (Stockholm)',
         'Europe/Tallinn' => 'Osteuropäesch Zäit (Tallinn)',
         'Europe/Tirane' => 'Mëtteleuropäesch Zäit (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskauer Zäit (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Samara-Zäit (Ulyanovsk)',
         'Europe/Vaduz' => 'Mëtteleuropäesch Zäit (Vaduz)',
         'Europe/Vatican' => 'Mëtteleuropäesch Zäit (Vatikan)',
         'Europe/Vienna' => 'Mëtteleuropäesch Zäit (Wien)',
         'Europe/Vilnius' => 'Osteuropäesch Zäit (Wilna)',
-        'Europe/Volgograd' => 'Wolgograd-Zäit',
+        'Europe/Volgograd' => 'Moskauer Zäit (Wolgograd)',
         'Europe/Warsaw' => 'Mëtteleuropäesch Zäit (Warschau)',
         'Europe/Zagreb' => 'Mëtteleuropäesch Zäit (Zagreb)',
         'Europe/Zurich' => 'Mëtteleuropäesch Zäit (Zürech)',
@@ -377,7 +394,7 @@
         'Indian/Cocos' => 'Kokosinselen-Zäit (Cocos)',
         'Indian/Comoro' => 'Ostafrikanesch Zäit (Komoren)',
         'Indian/Kerguelen' => 'Franséisch Süd- an Antarktisgebidder-Zäit (Kerguelen)',
-        'Indian/Mahe' => 'Seychellen-Zäit (Mahe)',
+        'Indian/Mahe' => 'Seychellen-Zäit (Mahé)',
         'Indian/Maldives' => 'Maldiven-Zäit',
         'Indian/Mauritius' => 'Mauritius-Zäit',
         'Indian/Mayotte' => 'Ostafrikanesch Zäit (Mayotte)',
@@ -388,15 +405,16 @@
         'Pacific/Chatham' => 'Chatham-Zäit',
         'Pacific/Easter' => 'Ouschterinsel-Zäit',
         'Pacific/Efate' => 'Vanuatu-Zäit (Efate)',
-        'Pacific/Enderbury' => 'Phoenixinselen-Zäit (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenixinselen-Zäit (Canton)',
+        'Pacific/Kanton' => 'Phoenixinselen-Zäit (Canton)',
         'Pacific/Fakaofo' => 'Tokelau-Zäit (Fakaofo)',
         'Pacific/Fiji' => 'Fidschi-Zäit',
         'Pacific/Funafuti' => 'Tuvalu-Zäit (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos-Zäit',
+        'Pacific/Galapagos' => 'Galapagos-Zäit (Galápagos)',
         'Pacific/Gambier' => 'Gambier-Zäit',
         'Pacific/Guadalcanal' => 'Salomoninselen-Zäit (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro-Zäit (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleuten-Zäit (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleuten-Normalzäit (Honolulu)',
         'Pacific/Kiritimati' => 'Linneninselen-Zäit (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae-Zäit',
         'Pacific/Kwajalein' => 'Marshallinselen-Zäit (Kwajalein)',
@@ -406,11 +424,12 @@
         'Pacific/Nauru' => 'Nauru-Zäit',
         'Pacific/Niue' => 'Niue-Zäit',
         'Pacific/Norfolk' => 'Norfolkinselen-Zäit',
-        'Pacific/Noumea' => 'Neikaledonesch Zäit (Noumea)',
+        'Pacific/Noumea' => 'Neikaledonesch Zäit (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoa-Zäit (Pago Pago)',
         'Pacific/Palau' => 'Palau-Zäit',
         'Pacific/Pitcairn' => 'Pitcairninselen-Zäit',
         'Pacific/Ponape' => 'Ponape-Zäit (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponape-Zäit (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papua-Neiguinea-Zäit (Port Moresby)',
         'Pacific/Rarotonga' => 'Cookinselen-Zäit (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro-Zäit (Saipan)',
@@ -418,8 +437,9 @@
         'Pacific/Tarawa' => 'Gilbert-Inselen-Zäit (Tarawa)',
         'Pacific/Tongatapu' => 'Tonganesch Zäit (Tongatapu)',
         'Pacific/Truk' => 'Chuuk-Zäit',
+        'Pacific/Chuuk' => 'Chuuk-Zäit',
         'Pacific/Wake' => 'Wake-Insel-Zäit',
-        'Pacific/Wallis' => 'Wallis-a-Futuna-Zäit',
+        'Pacific/Wallis' => 'Wallis-a-Futuna-Zäit (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ln.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ln.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ln.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ln.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Ngonga ya Etsíopi (Addis Ababa)',
         'Africa/Algiers' => 'Ngonga ya Alizɛri (Algiers)',
         'Africa/Asmera' => 'Ngonga ya Elitelɛ (Asmara)',
+        'Africa/Asmara' => 'Ngonga ya Elitelɛ (Asmara)',
         'Africa/Bamako' => 'Ngonga ya Malí (Bamako)',
         'Africa/Bangui' => 'Ngonga ya Repibiki ya Afríka ya Káti (Bangui)',
         'Africa/Banjul' => 'Ngonga ya Gambi (Banjul)',
@@ -32,7 +33,7 @@
         'Africa/Kinshasa' => 'Ngonga ya Republíki ya Kongó Demokratíki (Kinshasa)',
         'Africa/Lagos' => 'Ngonga ya Nizerya (Lagos)',
         'Africa/Libreville' => 'Ngonga ya Gabɔ (Libreville)',
-        'Africa/Lome' => 'Ngonga ya Togo (Lome)',
+        'Africa/Lome' => 'Ngonga ya Togo (Lomé)',
         'Africa/Luanda' => 'Ngonga ya Angóla (Luanda)',
         'Africa/Lubumbashi' => 'Ngonga ya Republíki ya Kongó Demokratíki (Lubumbashi)',
         'Africa/Lusaka' => 'Ngonga ya Zambi (Lusaka)',
@@ -43,7 +44,7 @@
         'Africa/Mogadishu' => 'Ngonga ya Somali (Mogadishu)',
         'Africa/Monrovia' => 'Ngonga ya Libériya (Monrovia)',
         'Africa/Nairobi' => 'Ngonga ya Kenya (Nairobi)',
-        'Africa/Ndjamena' => 'Ngonga ya Tsádi (Ndjamena)',
+        'Africa/Ndjamena' => 'Ngonga ya Tsádi (N’Djamena)',
         'Africa/Niamey' => 'Ngonga ya Nizɛrɛ (Niamey)',
         'Africa/Nouakchott' => 'Ngonga ya Moritani (Nouakchott)',
         'Africa/Ouagadougou' => 'Ngonga ya Bukina Faso (Ouagadougou)',
@@ -56,41 +57,46 @@
         'America/Anchorage' => 'Ngonga ya Ameriki (Anchorage)',
         'America/Anguilla' => 'Ngonga ya Angiyɛ (Anguilla)',
         'America/Antigua' => 'Ngonga ya Antiga mpé Barbuda (Antigua)',
-        'America/Araguaina' => 'Ngonga ya Brezílɛ (Araguaina)',
+        'America/Araguaina' => 'Ngonga ya Brezílɛ (Araguaína)',
         'America/Argentina/La_Rioja' => 'Ngonga ya Arizantinɛ (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Ngonga ya Arizantinɛ (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Ngonga ya Arizantinɛ (Río Gallegos)',
         'America/Argentina/Salta' => 'Ngonga ya Arizantinɛ (Salta)',
         'America/Argentina/San_Juan' => 'Ngonga ya Arizantinɛ (San Juan)',
         'America/Argentina/San_Luis' => 'Ngonga ya Arizantinɛ (San Luis)',
-        'America/Argentina/Tucuman' => 'Ngonga ya Arizantinɛ (Tucuman)',
+        'America/Argentina/Tucuman' => 'Ngonga ya Arizantinɛ (Tucumán)',
         'America/Argentina/Ushuaia' => 'Ngonga ya Arizantinɛ (Ushuaia)',
         'America/Aruba' => 'Ngonga ya Aruba (Aruba)',
         'America/Asuncion' => 'Ngonga ya Palagwei (Asunción)',
         'America/Bahia' => 'Ngonga ya Brezílɛ (Bahia)',
         'America/Bahia_Banderas' => 'Ngonga ya Meksike (Bahía de Banderas)',
         'America/Barbados' => 'Ngonga ya Barɛbadɛ (Barbados)',
-        'America/Belem' => 'Ngonga ya Brezílɛ (Belem)',
+        'America/Belem' => 'Ngonga ya Brezílɛ (Belém)',
         'America/Belize' => 'Ngonga ya Belizɛ (Belize)',
         'America/Blanc-Sablon' => 'Ngonga ya Kanada (Blanc-Sablon)',
         'America/Boa_Vista' => 'Ngonga ya Brezílɛ (Boa Vista)',
-        'America/Bogota' => 'Ngonga ya Kolombi (Bogota)',
+        'America/Bogota' => 'Ngonga ya Kolombi (Bogotá)',
         'America/Boise' => 'Ngonga ya Ameriki (Boise)',
         'America/Buenos_Aires' => 'Ngonga ya Arizantinɛ (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Ngonga ya Arizantinɛ (Buenos Aires)',
         'America/Cambridge_Bay' => 'Ngonga ya Kanada (Cambridge Bay)',
         'America/Campo_Grande' => 'Ngonga ya Brezílɛ (Campo Grande)',
         'America/Cancun' => 'Ngonga ya Meksike (Cancún)',
         'America/Caracas' => 'Ngonga ya Venézuela (Caracas)',
         'America/Catamarca' => 'Ngonga ya Arizantinɛ (Catamarca)',
+        'America/Argentina/Catamarca' => 'Ngonga ya Arizantinɛ (Catamarca)',
         'America/Cayenne' => 'Ngonga ya Giyanɛ ya Falánsɛ (Cayenne)',
         'America/Cayman' => 'Ngonga ya Bisanga bya Kayíma (Cayman)',
         'America/Chicago' => 'Ngonga ya Ameriki (Chicago)',
         'America/Chihuahua' => 'Ngonga ya Meksike (Chihuahua)',
         'America/Ciudad_Juarez' => 'Ngonga ya Meksike (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Ngonga ya Kanada (Atikokan)',
-        'America/Cordoba' => 'Ngonga ya Arizantinɛ (Cordoba)',
+        'America/Atikokan' => 'Ngonga ya Kanada (Atikokan)',
+        'America/Cordoba' => 'Ngonga ya Arizantinɛ (Córdoba)',
+        'America/Argentina/Cordoba' => 'Ngonga ya Arizantinɛ (Córdoba)',
         'America/Costa_Rica' => 'Ngonga ya Kositarika (Costa Rica)',
+        'America/Coyhaique' => 'Ngonga ya Síli (Coyhaique)',
         'America/Creston' => 'Ngonga ya Kanada (Creston)',
-        'America/Cuiaba' => 'Ngonga ya Brezílɛ (Cuiaba)',
+        'America/Cuiaba' => 'Ngonga ya Brezílɛ (Cuiabá)',
         'America/Danmarkshavn' => 'Ngonga ya Gowelande (Danmarkshavn)',
         'America/Dawson' => 'Ngonga ya Kanada (Dawson)',
         'America/Dawson_Creek' => 'Ngonga ya Kanada (Dawson Creek)',
@@ -98,12 +104,13 @@
         'America/Detroit' => 'Ngonga ya Ameriki (Detroit)',
         'America/Dominica' => 'Ngonga ya Domínike (Dominica)',
         'America/Edmonton' => 'Ngonga ya Kanada (Edmonton)',
-        'America/Eirunepe' => 'Ngonga ya Brezílɛ (Eirunepe)',
+        'America/Eirunepe' => 'Ngonga ya Brezílɛ (Eirunepé)',
         'America/El_Salvador' => 'Ngonga ya Savadɔrɛ (El Salvador)',
         'America/Fort_Nelson' => 'Ngonga ya Kanada (Fort Nelson)',
         'America/Fortaleza' => 'Ngonga ya Brezílɛ (Fortaleza)',
         'America/Glace_Bay' => 'Ngonga ya Kanada (Glace Bay)',
         'America/Godthab' => 'Ngonga ya Gowelande (Nuuk)',
+        'America/Nuuk' => 'Ngonga ya Gowelande (Nuuk)',
         'America/Goose_Bay' => 'Ngonga ya Kanada (Goose Bay)',
         'America/Grand_Turk' => 'Ngonga ya Bisanga bya Turki mpé Kaiko (Grand Turk)',
         'America/Grenada' => 'Ngonga ya Gelenadɛ (Grenada)',
@@ -122,28 +129,32 @@
         'America/Indiana/Vincennes' => 'Ngonga ya Ameriki (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Ngonga ya Ameriki (Winamac, Indiana)',
         'America/Indianapolis' => 'Ngonga ya Ameriki (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Ngonga ya Ameriki (Indianapolis)',
         'America/Inuvik' => 'Ngonga ya Kanada (Inuvik)',
         'America/Iqaluit' => 'Ngonga ya Kanada (Iqaluit)',
         'America/Jamaica' => 'Ngonga ya Zamaiki (Jamaica)',
         'America/Jujuy' => 'Ngonga ya Arizantinɛ (Jujuy)',
+        'America/Argentina/Jujuy' => 'Ngonga ya Arizantinɛ (Jujuy)',
         'America/Juneau' => 'Ngonga ya Ameriki (Juneau)',
         'America/Kentucky/Monticello' => 'Ngonga ya Ameriki (Monticello, Kentucky)',
         'America/La_Paz' => 'Ngonga ya Bolivi (La Paz)',
         'America/Lima' => 'Ngonga ya Péru (Lima)',
         'America/Los_Angeles' => 'Ngonga ya Ameriki (Los Angeles)',
         'America/Louisville' => 'Ngonga ya Ameriki (Louisville)',
-        'America/Maceio' => 'Ngonga ya Brezílɛ (Maceio)',
+        'America/Kentucky/Louisville' => 'Ngonga ya Ameriki (Louisville)',
+        'America/Maceio' => 'Ngonga ya Brezílɛ (Maceió)',
         'America/Managua' => 'Ngonga ya Nikaragwa (Managua)',
         'America/Manaus' => 'Ngonga ya Brezílɛ (Manaus)',
         'America/Martinique' => 'Ngonga ya Martiniki (Martinique)',
         'America/Matamoros' => 'Ngonga ya Meksike (Matamoros)',
-        'America/Mazatlan' => 'Ngonga ya Meksike (Mazatlan)',
+        'America/Mazatlan' => 'Ngonga ya Meksike (Mazatlán)',
         'America/Mendoza' => 'Ngonga ya Arizantinɛ (Mendoza)',
+        'America/Argentina/Mendoza' => 'Ngonga ya Arizantinɛ (Mendoza)',
         'America/Menominee' => 'Ngonga ya Ameriki (Menominee)',
         'America/Merida' => 'Ngonga ya Meksike (Mérida)',
         'America/Metlakatla' => 'Ngonga ya Ameriki (Metlakatla)',
-        'America/Mexico_City' => 'Ngonga ya Meksike (Mexico City)',
-        'America/Miquelon' => 'Ngonga ya Sántu pététo mpé Mikelɔ (Miquelon)',
+        'America/Mexico_City' => 'Ngonga ya Meksike (Ciudad de México)',
+        'America/Miquelon' => 'Ngonga ya Sántu pététo mpé Mikelɔ (Saint-Pierre)',
         'America/Moncton' => 'Ngonga ya Kanada (Moncton)',
         'America/Monterrey' => 'Ngonga ya Meksike (Monterrey)',
         'America/Montevideo' => 'Ngonga ya Irigwei (Montevideo)',
@@ -169,10 +180,10 @@
         'America/Regina' => 'Ngonga ya Kanada (Regina)',
         'America/Resolute' => 'Ngonga ya Kanada (Resolute)',
         'America/Rio_Branco' => 'Ngonga ya Brezílɛ (Rio Branco)',
-        'America/Santarem' => 'Ngonga ya Brezílɛ (Santarem)',
+        'America/Santarem' => 'Ngonga ya Brezílɛ (Santarém)',
         'America/Santiago' => 'Ngonga ya Síli (Santiago)',
         'America/Santo_Domingo' => 'Ngonga ya Repibiki ya Domínikɛ (Santo Domingo)',
-        'America/Sao_Paulo' => 'Ngonga ya Brezílɛ (Sao Paulo)',
+        'America/Sao_Paulo' => 'Ngonga ya Brezílɛ (São Paulo)',
         'America/Scoresbysund' => 'Ngonga ya Gowelande (Ittoqqortoormiit)',
         'America/Sitka' => 'Ngonga ya Ameriki (Sitka)',
         'America/St_Johns' => 'Ngonga ya Kanada (St. John’s)',
@@ -198,7 +209,7 @@
         'Antarctica/McMurdo' => 'Ngonga ya Antarctique (McMurdo)',
         'Antarctica/Palmer' => 'Ngonga ya Antarctique (Palmer)',
         'Antarctica/Rothera' => 'Ngonga ya Antarctique (Rothera)',
-        'Antarctica/Syowa' => 'Ngonga ya Antarctique (Syowa)',
+        'Antarctica/Syowa' => 'Ngonga ya Antarctique (Showa)',
         'Antarctica/Troll' => 'Ngonga ya Troll',
         'Antarctica/Vostok' => 'Ngonga ya Antarctique (Vostok)',
         'Asia/Aden' => 'Ngonga ya Yemɛnɛ (Aden)',
@@ -218,6 +229,7 @@
         'Asia/Bishkek' => 'Ngonga ya Kigizisitá (Bishkek)',
         'Asia/Brunei' => 'Ngonga ya Brineyi (Brunei)',
         'Asia/Calcutta' => 'Ngonga ya Índɛ (Kolkata)',
+        'Asia/Kolkata' => 'Ngonga ya Índɛ (Kolkata)',
         'Asia/Chita' => 'Ngonga ya Risí (Chita)',
         'Asia/Colombo' => 'Ngonga ya Sirilanka (Colombo)',
         'Asia/Damascus' => 'Ngonga ya Sirí (Damascus)',
@@ -228,7 +240,7 @@
         'Asia/Famagusta' => 'Ngonga ya Sípɛlɛ (Famagusta)',
         'Asia/Gaza' => 'Ngonga ya Palɛsine (Gaza)',
         'Asia/Hebron' => 'Ngonga ya Palɛsine (Hebron)',
-        'Asia/Hovd' => 'Ngonga ya Mongolí (Hovd)',
+        'Asia/Hovd' => 'Ngonga ya Mongolí (Khovd)',
         'Asia/Irkutsk' => 'Ngonga ya Risí (Irkutsk)',
         'Asia/Jakarta' => 'Ngonga ya Indonezi (Jakarta)',
         'Asia/Jayapura' => 'Ngonga ya Indonezi (Jayapura)',
@@ -237,6 +249,7 @@
         'Asia/Kamchatka' => 'Ngonga ya Risí (Kamchatka)',
         'Asia/Karachi' => 'Ngonga ya Pakisitá (Karachi)',
         'Asia/Katmandu' => 'Ngonga ya Nepálɛ (Kathmandu)',
+        'Asia/Kathmandu' => 'Ngonga ya Nepálɛ (Kathmandu)',
         'Asia/Khandyga' => 'Ngonga ya Risí (Khandyga)',
         'Asia/Krasnoyarsk' => 'Ngonga ya Risí (Krasnoyarsk)',
         'Asia/Kuala_Lumpur' => 'Ngonga ya Malezi (Kuala Lumpur)',
@@ -258,8 +271,10 @@
         'Asia/Qostanay' => 'Ngonga ya Kazakisitá (Qostanay)',
         'Asia/Qyzylorda' => 'Ngonga ya Kazakisitá (Qyzylorda)',
         'Asia/Rangoon' => 'Ngonga ya Birmanie (Yangon)',
+        'Asia/Yangon' => 'Ngonga ya Birmanie (Yangon)',
         'Asia/Riyadh' => 'Ngonga ya Alabi Sawuditɛ (Riyadh)',
         'Asia/Saigon' => 'Ngonga ya Viyetinamɛ (Ho Chi Minh)',
+        'Asia/Ho_Chi_Minh' => 'Ngonga ya Viyetinamɛ (Ho Chi Minh)',
         'Asia/Sakhalin' => 'Ngonga ya Risí (Sakhalin)',
         'Asia/Samarkand' => 'Ngonga ya Uzibɛkisitá (Samarkand)',
         'Asia/Seoul' => 'Ngonga ya Korɛ ya súdi (Seoul)',
@@ -274,7 +289,7 @@
         'Asia/Tokyo' => 'Ngonga ya Zapɔ (Tokyo)',
         'Asia/Tomsk' => 'Ngonga ya Risí (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ngonga ya Mongolí (Ulaanbaatar)',
-        'Asia/Urumqi' => 'Ngonga ya Sinɛ (Urumqi)',
+        'Asia/Urumqi' => 'Ngonga ya Sinɛ (Ürümqi)',
         'Asia/Ust-Nera' => 'Ngonga ya Risí (Ust-Nera)',
         'Asia/Vientiane' => 'Ngonga ya Lawosi (Vientiane)',
         'Asia/Vladivostok' => 'Ngonga ya Risí (Vladivostok)',
@@ -283,7 +298,7 @@
         'Asia/Yerevan' => 'Ngonga ya Amɛni (Yerevan)',
         'Atlantic/Azores' => 'Ngonga ya Putúlugɛsi (Azores)',
         'Atlantic/Bermuda' => 'Ngonga ya Bermuda (Bermuda)',
-        'Atlantic/Canary' => 'Ngonga ya Esipanye (Canary)',
+        'Atlantic/Canary' => 'Ngonga ya Esipanye (Canarias)',
         'Atlantic/Cape_Verde' => 'Ngonga ya Bisanga bya Kapevɛrɛ (Cape Verde)',
         'Atlantic/Madeira' => 'Ngonga ya Putúlugɛsi (Madeira)',
         'Atlantic/Reykjavik' => 'Ngonga ya Isilandɛ (Reykjavik)',
@@ -311,8 +326,8 @@
         'Europe/Brussels' => 'Ngonga ya Beleziki (Brussels)',
         'Europe/Bucharest' => 'Ngonga ya Romani (Bucharest)',
         'Europe/Budapest' => 'Ngonga ya Ongili (Budapest)',
-        'Europe/Busingen' => 'Ngonga ya Alemani (Busingen)',
-        'Europe/Chisinau' => 'Ngonga ya Molidavi (Chisinau)',
+        'Europe/Busingen' => 'Ngonga ya Alemani (Büsingen)',
+        'Europe/Chisinau' => 'Ngonga ya Molidavi (Chișinău)',
         'Europe/Copenhagen' => 'Ngonga ya Danɛmarike (Copenhagen)',
         'Europe/Dublin' => 'Ngonga ya Irelandɛ (Dublin)',
         'Europe/Gibraltar' => 'Ngonga ya Zibatalɛ (Gibraltar)',
@@ -321,6 +336,7 @@
         'Europe/Istanbul' => 'Ngonga ya Tiliki (Istanbul)',
         'Europe/Kaliningrad' => 'Ngonga ya Risí (Kaliningrad)',
         'Europe/Kiev' => 'Ngonga ya Ikrɛni (Kyiv)',
+        'Europe/Kyiv' => 'Ngonga ya Ikrɛni (Kyiv)',
         'Europe/Kirov' => 'Ngonga ya Risí (Kirov)',
         'Europe/Lisbon' => 'Ngonga ya Putúlugɛsi (Lisbon)',
         'Europe/Ljubljana' => 'Ngonga ya Siloveni (Ljubljana)',
@@ -345,7 +361,7 @@
         'Europe/Sofia' => 'Ngonga ya Biligari (Sofia)',
         'Europe/Stockholm' => 'Ngonga ya Swédɛ (Stockholm)',
         'Europe/Tallinn' => 'Ngonga ya Esitoni (Tallinn)',
-        'Europe/Tirane' => 'Ngonga ya Alibani (Tirane)',
+        'Europe/Tirane' => 'Ngonga ya Alibani (Tirana)',
         'Europe/Ulyanovsk' => 'Ngonga ya Risí (Ulyanovsk)',
         'Europe/Vaduz' => 'Ngonga ya Lishɛteni (Vaduz)',
         'Europe/Vatican' => 'Ngonga ya Vatiká (Vatican)',
@@ -356,9 +372,9 @@
         'Europe/Zagreb' => 'Ngonga ya Krowasi (Zagreb)',
         'Europe/Zurich' => 'Ngonga ya Swisɛ (Zurich)',
         'Indian/Antananarivo' => 'Ngonga ya Madagasikari (Antananarivo)',
-        'Indian/Comoro' => 'Ngonga ya Komorɛ (Comoro)',
+        'Indian/Comoro' => 'Ngonga ya Komorɛ (Comores)',
         'Indian/Kerguelen' => 'Ngonga ya Terres australes et antarctiques françaises (Kerguelen)',
-        'Indian/Mahe' => 'Ngonga ya Sɛshɛlɛ (Mahe)',
+        'Indian/Mahe' => 'Ngonga ya Sɛshɛlɛ (Mahé)',
         'Indian/Maldives' => 'Ngonga ya Madívɛ (Maldives)',
         'Indian/Mauritius' => 'Ngonga ya Morisɛ (Mauritius)',
         'Indian/Mayotte' => 'Ngonga ya Mayotɛ (Mayotte)',
@@ -369,11 +385,12 @@
         'Pacific/Chatham' => 'Ngonga ya Zelandɛ ya sika (Chatham)',
         'Pacific/Easter' => 'Ngonga ya Síli (Easter)',
         'Pacific/Efate' => 'Ngonga ya Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Ngonga ya Kiribati (Enderbury)',
+        'Pacific/Enderbury' => 'Ngonga ya Kiribati (Canton)',
+        'Pacific/Kanton' => 'Ngonga ya Kiribati (Canton)',
         'Pacific/Fakaofo' => 'Ngonga ya Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Ngonga ya Fidzi (Fiji)',
         'Pacific/Funafuti' => 'Ngonga ya Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Ngonga ya Ekwatɛ́lɛ (Galapagos)',
+        'Pacific/Galapagos' => 'Ngonga ya Ekwatɛ́lɛ (Galápagos)',
         'Pacific/Gambier' => 'Ngonga ya Polinezi ya Falánsɛ (Gambier)',
         'Pacific/Guadalcanal' => 'Ngonga ya Bisanga Solomɔ (Guadalcanal)',
         'Pacific/Guam' => 'Ngonga ya Gwamɛ (Guam)',
@@ -386,11 +403,12 @@
         'Pacific/Nauru' => 'Ngonga ya Nauru (Nauru)',
         'Pacific/Niue' => 'Ngonga ya Nyué (Niue)',
         'Pacific/Norfolk' => 'Ngonga ya Esanga Norfokɛ (Norfolk)',
-        'Pacific/Noumea' => 'Ngonga ya Kaledoni ya sika (Noumea)',
+        'Pacific/Noumea' => 'Ngonga ya Kaledoni ya sika (Nouméa)',
         'Pacific/Pago_Pago' => 'Ngonga ya Samoa ya Ameriki (Pago Pago)',
         'Pacific/Palau' => 'Ngonga ya Palau (Palau)',
         'Pacific/Pitcairn' => 'Ngonga ya Pikairni (Pitcairn)',
         'Pacific/Ponape' => 'Ngonga ya Mikronezi (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ngonga ya Mikronezi (Pohnpei)',
         'Pacific/Port_Moresby' => 'Ngonga ya Papwazi Ginɛ ya sika (Port Moresby)',
         'Pacific/Rarotonga' => 'Ngonga ya Bisanga bya Kookɛ (Rarotonga)',
         'Pacific/Saipan' => 'Ngonga ya Bisanga bya Marianɛ ya nɔ́rdi (Saipan)',
@@ -398,7 +416,8 @@
         'Pacific/Tarawa' => 'Ngonga ya Kiribati (Tarawa)',
         'Pacific/Tongatapu' => 'Ngonga ya Tonga (Tongatapu)',
         'Pacific/Truk' => 'Ngonga ya Mikronezi (Chuuk)',
-        'Pacific/Wallis' => 'Ngonga ya Walisɛ mpé Futuna (Wallis)',
+        'Pacific/Chuuk' => 'Ngonga ya Mikronezi (Chuuk)',
+        'Pacific/Wallis' => 'Ngonga ya Walisɛ mpé Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lo.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'ເວ​ລາ​ອາ​ຟຣິ​ກາ​ຕາ​ເວັນ​ອອກ (ແອດດິສ ອະບາບາ)',
         'Africa/Algiers' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ແອວເຈຍ)',
         'Africa/Asmera' => 'ເວ​ລາ​ອາ​ຟຣິ​ກາ​ຕາ​ເວັນ​ອອກ (ອັສມາຣາ)',
+        'Africa/Asmara' => 'ເວ​ລາ​ອາ​ຟຣິ​ກາ​ຕາ​ເວັນ​ອອກ (ອັສມາຣາ)',
         'Africa/Bamako' => 'ເວ​ລາກຣີນ​ວິ​ຊ (ບາມາໂກ)',
         'Africa/Bangui' => 'ເວ​ລາ​ອາ​ຟຣິ​ກາ​ຕາ​ເວັນ​ຕົກ (ບັງກຸຍ)',
         'Africa/Banjul' => 'ເວ​ລາກຣີນ​ວິ​ຊ (ບານຈູ)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'ເວລາໂຄລໍາເບຍ (ໂບໂກຕາ)',
         'America/Boise' => 'ເວລາແຖບພູເຂົາ (ບອຍຊ໌)',
         'America/Buenos_Aires' => 'ເວ​ລາ​ອາ​ເຈ​ທິ​ນາ (ບົວໂນສ ໄອເຣສ)',
+        'America/Argentina/Buenos_Aires' => 'ເວ​ລາ​ອາ​ເຈ​ທິ​ນາ (ບົວໂນສ ໄອເຣສ)',
         'America/Cambridge_Bay' => 'ເວລາແຖບພູເຂົາ (ແຄມບຣິດ ເບ)',
         'America/Campo_Grande' => 'ເວລາຕາມເຂດອາເມຊອນ (ກັງປູຣັງຈີ)',
         'America/Cancun' => 'ເວລາຕາເວັນອອກ (ແຄນກຸນ)',
         'America/Caracas' => 'ເວ​ລາ​ເວ​ເນ​ຊູ​ເອ​ລາ (ຄາຣາກັສ)',
         'America/Catamarca' => 'ເວ​ລາ​ອາ​ເຈ​ທິ​ນາ (ຄາຕາມາກາ)',
+        'America/Argentina/Catamarca' => 'ເວ​ລາ​ອາ​ເຈ​ທິ​ນາ (ຄາຕາມາກາ)',
         'America/Cayenne' => 'ເວ​ລາ​ເຟ​ຣນ​ຊ໌​ເກຍ​ນາ (ຄາເຢນ)',
         'America/Cayman' => 'ເວລາຕາເວັນອອກ (ເຄແມນ)',
         'America/Chicago' => 'ເວລາກາງ (ຊິຄາໂກ)',
         'America/Chihuahua' => 'ເວລາກາງ (ຊິວາວາ)',
         'America/Ciudad_Juarez' => 'ເວລາແຖບພູເຂົາ (ຊີອູດັດ ຄົວເຣຊ)',
         'America/Coral_Harbour' => 'ເວລາຕາເວັນອອກ (ອາທິໂຄຄານ)',
+        'America/Atikokan' => 'ເວລາຕາເວັນອອກ (ອາທິໂຄຄານ)',
         'America/Cordoba' => 'ເວ​ລາ​ອາ​ເຈ​ທິ​ນາ (ຄໍໂດບາ)',
+        'America/Argentina/Cordoba' => 'ເວ​ລາ​ອາ​ເຈ​ທິ​ນາ (ຄໍໂດບາ)',
         'America/Costa_Rica' => 'ເວລາກາງ (ຄອສຕາຣິກາ)',
+        'America/Coyhaique' => 'ເວ​ລາ​ຊິ​ລີ (Coyhaique)',
         'America/Creston' => 'ເວລາແຖບພູເຂົາ (ເຄຣສຕັນ)',
         'America/Cuiaba' => 'ເວລາຕາມເຂດອາເມຊອນ (ກຸຢາບາ)',
         'America/Curacao' => 'ເວລາຂອງອາແລນຕິກ (ກືຣາເຊົາ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ເວລາຕາມເຂດບຣາຊິເລຍ (ຟໍຕາເລຊາ)',
         'America/Glace_Bay' => 'ເວລາຂອງອາແລນຕິກ (ເກລດເບ)',
         'America/Godthab' => 'ເວລາ ກຣີນແລນ (ນູກ)',
+        'America/Nuuk' => 'ເວລາ ກຣີນແລນ (ນູກ)',
         'America/Goose_Bay' => 'ເວລາຂອງອາແລນຕິກ (ກູສເບ)',
         'America/Grand_Turk' => 'ເວລາຕາເວັນອອກ (ແກຣນ ເທີກ)',
         'America/Grenada' => 'ເວລາຂອງອາແລນຕິກ (ເກຣນາດາ)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ເວລາຕາເວັນອອກ (ວິນເຊນເນສ, ອິນເດຍນາ)',
         'America/Indiana/Winamac' => 'ເວລາຕາເວັນອອກ (ວິນາແມັກ, ອິນເດຍນາ)',
         'America/Indianapolis' => 'ເວລາຕາເວັນອອກ (ອິນດີເອນາໂພລິສ)',
+        'America/Indiana/Indianapolis' => 'ເວລາຕາເວັນອອກ (ອິນດີເອນາໂພລິສ)',
         'America/Inuvik' => 'ເວລາແຖບພູເຂົາ (ອີນູວິກ)',
         'America/Iqaluit' => 'ເວລາຕາເວັນອອກ (ອີກົວລິດ)',
         'America/Jamaica' => 'ເວລາຕາເວັນອອກ (ຈາໄມກາ)',
         'America/Jujuy' => 'ເວ​ລາ​ອາ​ເຈ​ທິ​ນາ (ຈູຈຸຍ)',
+        'America/Argentina/Jujuy' => 'ເວ​ລາ​ອາ​ເຈ​ທິ​ນາ (ຈູຈຸຍ)',
         'America/Juneau' => 'ເວລາອະລັສກາ (ຈູໂນ)',
         'America/Kentucky/Monticello' => 'ເວລາຕາເວັນອອກ (ມອນຕີເຊວໂລ, ເຄນທັກກີ)',
         'America/Kralendijk' => 'ເວລາຂອງອາແລນຕິກ (ຄຣາເລນດິກ)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'ເວ​ລາ​ເປ​ຣູ (ລີມາ)',
         'America/Los_Angeles' => 'ເວລາແປຊິຟິກ (ລອສແອນເຈລີສ)',
         'America/Louisville' => 'ເວລາຕາເວັນອອກ (ຫລຸຍວິວ)',
+        'America/Kentucky/Louisville' => 'ເວລາຕາເວັນອອກ (ຫລຸຍວິວ)',
         'America/Lower_Princes' => 'ເວລາຂອງອາແລນຕິກ (ໂລເວີ ພຣິນຊ໌ ຄວດເຕີ)',
         'America/Maceio' => 'ເວລາຕາມເຂດບຣາຊິເລຍ (ມາເຊໂອ)',
         'America/Managua' => 'ເວລາກາງ (ມານາກົວ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'ເວລາກາງ (ມາຕາໂມຣອສ)',
         'America/Mazatlan' => 'ເວລາແປຊິຟິກເມັກຊິກັນ (ມາຊາດລານ)',
         'America/Mendoza' => 'ເວ​ລາ​ອາ​ເຈ​ທິ​ນາ (ເມັນໂດຊ່າ)',
+        'America/Argentina/Mendoza' => 'ເວ​ລາ​ອາ​ເຈ​ທິ​ນາ (ເມັນໂດຊ່າ)',
         'America/Menominee' => 'ເວລາກາງ (ເມໂນມິນີ)',
         'America/Merida' => 'ເວລາກາງ (ເມີຣິດາ)',
         'America/Metlakatla' => 'ເວລາອະລັສກາ (ເມັດລາກັດລາ)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'ເວ​ລາ​ອາ​ຣາ​ບຽນ (ບາເຣນ)',
         'Asia/Baku' => 'ເວລາອັສເຊີໄບຈັນ (ບາກູ)',
         'Asia/Bangkok' => 'ເວລາອິນດູຈີນ (ບາງກອກ)',
-        'Asia/Barnaul' => 'ເວລາ ຣັດເຊຍ (ບານົວ)',
+        'Asia/Barnaul' => 'ເວ​ລາ​ຄຣັສ​ໂນ​ຢາ​ສ​ຄ໌ (ບານົວ)',
         'Asia/Beirut' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ອອກ (ເບຣຸດ)',
         'Asia/Bishkek' => 'ເວລາເຄຍກິສຖານ (ບິດຊ໌ເຄກ)',
         'Asia/Brunei' => '​ເວ​ລາບຣູ​ໄນດາ​ຣຸສ​ຊາ​ລາມ (ບຣູໄນ)',
         'Asia/Calcutta' => 'ເວລາ ອິນເດຍ (ໂກລກາຕາ)',
+        'Asia/Kolkata' => 'ເວລາ ອິນເດຍ (ໂກລກາຕາ)',
         'Asia/Chita' => 'ເວລາຢາກູດສ (ຊີຕ່າ)',
         'Asia/Colombo' => 'ເວລາ ອິນເດຍ (ໂຄລຳໂບ)',
         'Asia/Damascus' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ອອກ (ດາມາສຄັສ)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ເວລາ ຣັດເຊຍ (ຄາມຊາດກາ)',
         'Asia/Karachi' => 'ເວ​ລາ​ປາ​ກີສຖານ (ກາຣາຈີ)',
         'Asia/Katmandu' => '​ເວ​ລາ​ເນ​ປານ (ຄັດມັນດູ)',
+        'Asia/Kathmandu' => '​ເວ​ລາ​ເນ​ປານ (ຄັດມັນດູ)',
         'Asia/Khandyga' => 'ເວລາຢາກູດສ (ແຄນດີກາ)',
         'Asia/Krasnoyarsk' => 'ເວ​ລາ​ຄຣັສ​ໂນ​ຢາ​ສ​ຄ໌ (ຄຣັສໂນຢາສຄ໌)',
         'Asia/Kuala_Lumpur' => 'ເວ​ລາ​ມາ​ເລ​ເຊຍ (ກົວລາລຳເປີ)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ເວ​ລາ​ກູ​ລ​໌ຟ (ມາສຄັດ)',
         'Asia/Nicosia' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ອອກ (ນິໂຄເຊຍ)',
         'Asia/Novokuznetsk' => 'ເວ​ລາ​ຄຣັສ​ໂນ​ຢາ​ສ​ຄ໌ (ໂນໂວຄຸສເນັດ)',
-        'Asia/Novosibirsk' => 'ເວ​ລາ​ໂນ​ໂບ​ຊິ​ບິ​ສ​ຄ໌ (ໂນໂວຊີບີສຄ໌)',
+        'Asia/Novosibirsk' => 'ເວ​ລາ​ຄຣັສ​ໂນ​ຢາ​ສ​ຄ໌ (ໂນໂວຊີບີສຄ໌)',
         'Asia/Omsk' => '​ເວ​ລາອອມ​ສ​ຄ໌ (ອອມສຄ໌)',
         'Asia/Oral' => 'ເວລາຄາຊັກສຖານ (ອໍຣໍ)',
         'Asia/Phnom_Penh' => 'ເວລາອິນດູຈີນ (ພະນົມເປັນ)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'ເວລາຄາຊັກສຖານ (ຄອສຕາເນ)',
         'Asia/Qyzylorda' => 'ເວລາຄາຊັກສຖານ (ໄຄຊີລໍດາ)',
         'Asia/Rangoon' => 'ເວລາມຽນມາ (ຢາງກອນ)',
+        'Asia/Yangon' => 'ເວລາມຽນມາ (ຢາງກອນ)',
         'Asia/Riyadh' => 'ເວ​ລາ​ອາ​ຣາ​ບຽນ (ຣີຢາດ)',
         'Asia/Saigon' => 'ເວລາອິນດູຈີນ (ໂຮຈິມິນ)',
-        'Asia/Sakhalin' => 'ເວ​ລາ​ຊາ​ຮາ​ລິນ (ຊາຄາລິນ)',
+        'Asia/Ho_Chi_Minh' => 'ເວລາອິນດູຈີນ (ໂຮຈິມິນ)',
+        'Asia/Sakhalin' => 'ເວລາເມັກກາເດນ (ຊາຄາລິນ)',
         'Asia/Samarkand' => 'ເວລາອຸສເບກິດສະຖານ (ຊາມາແຄນ)',
         'Asia/Seoul' => 'ເວລາເກົາຫຼີ (ໂຊລ໌)',
         'Asia/Shanghai' => 'ເວ​ລາ​ຈີນ (ຊ່ຽງໄຮ້)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ເວ​ລາ​ອີ​ຣານ (ເຕຣານ)',
         'Asia/Thimphu' => 'ເວ​ລາ​ພູ​ຖານ (ທິມພູ)',
         'Asia/Tokyo' => 'ເວ​ລາ​ຍີ່​ປຸ່ນ (ໂຕກຽວ)',
-        'Asia/Tomsk' => 'ເວລາ ຣັດເຊຍ (ທອມສກ໌)',
+        'Asia/Tomsk' => 'ເວ​ລາ​ຄຣັສ​ໂນ​ຢາ​ສ​ຄ໌ (ທອມສກ໌)',
         'Asia/Ulaanbaatar' => 'ເວລາ ອູລານບາເຕີ (ອູລານບາຕາຣ໌)',
         'Asia/Urumqi' => 'ເວລາ ຈີນ (ອູຣຸມຊີ)',
         'Asia/Ust-Nera' => 'ເວລາລາດີໂວສຕົກ (ອຸສ ເນຣາ)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ຕົກ (ຄານາຣີ)',
         'Atlantic/Cape_Verde' => 'ເວ​ລາ​ເຄບ​ເວີດ (ເຄບເວີດ)',
         'Atlantic/Faeroe' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ຕົກ (ແຟໂຣ)',
+        'Atlantic/Faroe' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ຕົກ (ແຟໂຣ)',
         'Atlantic/Madeira' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ຕົກ (ມາເດຣາ)',
         'Atlantic/Reykjavik' => 'ເວ​ລາກຣີນ​ວິ​ຊ (ເຣກຢາວິກ)',
         'Atlantic/South_Georgia' => 'ເວລາຈໍເຈຍໃຕ້ (ເຊົາຈໍເຈຍ)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'ເວລາສາກົນເຊີງພິກັດ',
         'Europe/Amsterdam' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ອາມສເຕີດຳ)',
         'Europe/Andorra' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ອິນດໍຣາ)',
-        'Europe/Astrakhan' => 'ເວ​ລາ​ມອ​ສ​ໂຄ (ອາສຕຣາຄານ)',
+        'Europe/Astrakhan' => 'ເວລາ ຣັດເຊຍ (ອາສຕຣາຄານ)',
         'Europe/Athens' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ອອກ (ເອເທນສ໌)',
         'Europe/Belgrade' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ເບວເກຣດ)',
         'Europe/Berlin' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ເບີລິນ)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ເວ​ລາກຣີນ​ວິ​ຊ (ເຈີຊີ)',
         'Europe/Kaliningrad' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ອອກ (ຄາລິນິນກຣາດ)',
         'Europe/Kiev' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ອອກ (ຂຽບ)',
-        'Europe/Kirov' => 'ເວລາ ຣັດເຊຍ (ກິໂຣບ)',
+        'Europe/Kyiv' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ອອກ (ຂຽບ)',
+        'Europe/Kirov' => 'ເວ​ລາ​ມອ​ສ​ໂຄ (ກິໂຣບ)',
         'Europe/Lisbon' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ຕົກ (ລິສບອນ)',
         'Europe/Ljubljana' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ລູບລີຍານາ)',
         'Europe/London' => 'ເວ​ລາກຣີນ​ວິ​ຊ (ລອນດອນ)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'ເວລາ ຣັດເຊຍ (ຊາມາຣາ)',
         'Europe/San_Marino' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ຊານມາຣີໂນ)',
         'Europe/Sarajevo' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ຊາຣາເຢໂວ)',
-        'Europe/Saratov' => 'ເວ​ລາ​ມອ​ສ​ໂຄ (ຊາຣາທອບ)',
+        'Europe/Saratov' => 'ເວລາ ຣັດເຊຍ (ຊາຣາທອບ)',
         'Europe/Simferopol' => 'ເວ​ລາ​ມອ​ສ​ໂຄ (ຊີມເຟໂລໂປ)',
         'Europe/Skopje' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ສະໂກເປຍ)',
         'Europe/Sofia' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ອອກ (ໂຊເຟຍ)',
         'Europe/Stockholm' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ສະຕອກໂຮມ)',
         'Europe/Tallinn' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ອອກ (ທາລລິນນ໌)',
         'Europe/Tirane' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ທິຣານ)',
-        'Europe/Ulyanovsk' => 'ເວ​ລາ​ມອ​ສ​ໂຄ (ອູລີອານອບສຄ໌)',
+        'Europe/Ulyanovsk' => 'ເວລາ ຣັດເຊຍ (ອູລີອານອບສຄ໌)',
         'Europe/Vaduz' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ວາດາຊ)',
         'Europe/Vatican' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ວາຕິກັນ)',
         'Europe/Vienna' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ວຽນນາ)',
         'Europe/Vilnius' => 'ເວ​ລາ​ຢູ​ໂຣບ​ຕາ​ເວັນ​ອອກ (ວິລນິອຸສ)',
-        'Europe/Volgograd' => 'ເວລາໂວໂກກຣາດ (ວອລໂກກຣາດ)',
+        'Europe/Volgograd' => 'ເວ​ລາ​ມອ​ສ​ໂຄ (ວອລໂກກຣາດ)',
         'Europe/Warsaw' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ວໍຊໍ)',
         'Europe/Zagreb' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ຊາເກຣບ)',
         'Europe/Zurich' => 'ເວ​ລາ​ຢູ​ໂຣບ​ກາງ (ຊູຣິກ)',
@@ -380,7 +397,7 @@
         'Indian/Kerguelen' => 'ເວລາຝຣັ່ງຕອນໃຕ້ ແລະ ແອນຕາກຕິກ (ແກເກີເລນ)',
         'Indian/Mahe' => 'ເວ​ລາ​ເຊ​ເຊ​ລ​ສ໌ (ມາເຮ)',
         'Indian/Maldives' => 'ເວລາມັລດີຟ',
-        'Indian/Mauritius' => 'ເວ​ລາ​ເມົາ​ຣິ​ທຽ​ສ (ເມົາຣິທຽສ)',
+        'Indian/Mauritius' => 'ເວ​ລາ​ມົວຣິ​ຊຽ​ສ (ເມົາຣິທຽສ)',
         'Indian/Mayotte' => 'ເວ​ລາ​ອາ​ຟຣິ​ກາ​ຕາ​ເວັນ​ອອກ (ມາຢັອດເຕ)',
         'Indian/Reunion' => 'ເວ​ລາ​ເຣ​ອູ​ນິ​ຢົງ (ເຣອູນິຢົງ)',
         'Pacific/Apia' => 'ເວລາເອເພຍ (ເອປີອາ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'ເວ​ລາ​ຊາ​ທາມ (ແຊແທມ)',
         'Pacific/Easter' => 'ເວ​ລາ​ເກາະ​ອີ​ສ​ເຕີ (ເອສເຕີ)',
         'Pacific/Efate' => 'ເວລາວານູອາຕູ (ເອຟາເຕ)',
-        'Pacific/Enderbury' => 'ເວລາຫມູ່ເກາະຟີນິກ (ເອັນເດີເບີລີ)',
+        'Pacific/Enderbury' => 'ເວລາຫມູ່ເກາະຟີນິກ (ແຄນຕອນ)',
+        'Pacific/Kanton' => 'ເວລາຫມູ່ເກາະຟີນິກ (ແຄນຕອນ)',
         'Pacific/Fakaofo' => 'ເວລາໂຕເກເລົາ (ຟາກາວໂຟ)',
         'Pacific/Fiji' => 'ເວລາຟິຈິ (ຟູຈິ)',
         'Pacific/Funafuti' => 'ເວລາຕູວາລູ (ຟູນະຟູຕິ)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ເວລາແກມເບຍ',
         'Pacific/Guadalcanal' => 'ເວລາຫມູ່ເກາະໂຊໂລມອນ (ກົວດັລຄະແນລ)',
         'Pacific/Guam' => 'ເວ​ລາ​ຈາ​ໂມ​ໂຣ (ກວມ)',
-        'Pacific/Honolulu' => 'ເວລາຮາວາຍ-ເອລູທຽນ (ໂຮໂນລູລູ)',
+        'Pacific/Honolulu' => 'ເວລາມາດຕະຖານຮາວາຍ-ເອລູທຽນ (ໂຮໂນລູລູ)',
         'Pacific/Kiritimati' => 'ເວ​ລາ​ໝູ່​ເກາະ​ລາຍ (ຄີຣິທີມາຕີ)',
         'Pacific/Kosrae' => 'ເວລາຄອສແຣ (ຄໍສແຣ)',
         'Pacific/Kwajalein' => 'ເວ​ລາ​ໝູ່​ເກາະ​ມາ​ແຊວ (ຄວາຈາເລນ)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'ເວລາປາເລົາ',
         'Pacific/Pitcairn' => 'ເວລາພິດແຄຣ໌ນ (ພິດແຄນ)',
         'Pacific/Ponape' => 'ເວລາໂປເນບ (ປົນເປີຍ)',
+        'Pacific/Pohnpei' => 'ເວລາໂປເນບ (ປົນເປີຍ)',
         'Pacific/Port_Moresby' => 'ເວລາປາປົວກິນີ (ພອດ ມໍເຣສບີ)',
         'Pacific/Rarotonga' => 'ເວລາຫມູ່ເກາະຄຸກ (ຣາໂຣຕອງກາ)',
         'Pacific/Saipan' => 'ເວ​ລາ​ຈາ​ໂມ​ໂຣ (ໄຊປານ)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'ເວລາຫມູ່ເກາະກິລເບີດ (ຕາຣາວາ)',
         'Pacific/Tongatapu' => 'ເວລາຕອງກາ (ຕອງກາຕາປູ)',
         'Pacific/Truk' => 'ເວລາຊຸກ (ຈັກ)',
+        'Pacific/Chuuk' => 'ເວລາຊຸກ (ຈັກ)',
         'Pacific/Wake' => 'ເວລາເກາະເວກ',
         'Pacific/Wallis' => 'ເວລາວາລລິສ ແລະ ຟູຕູນາ (ວາລິດ)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lt.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Rytų Afrikos laikas (Adis Abeba)',
         'Africa/Algiers' => 'Vidurio Europos laikas (Alžyras)',
         'Africa/Asmera' => 'Rytų Afrikos laikas (Asmara)',
+        'Africa/Asmara' => 'Rytų Afrikos laikas (Asmara)',
         'Africa/Bamako' => 'Grinvičo laikas (Bamakas)',
         'Africa/Bangui' => 'Vakarų Afrikos laikas (Bangis)',
         'Africa/Banjul' => 'Grinvičo laikas (Bandžulis)',
@@ -75,22 +76,27 @@
         'America/Belize' => 'Šiaurės Amerikos centro laikas (Belizas)',
         'America/Blanc-Sablon' => 'Atlanto laikas (Blanč Sablonas)',
         'America/Boa_Vista' => 'Amazonės laikas (Bua Vista)',
-        'America/Bogota' => 'Kolumbijos laikas (Bogota)',
+        'America/Bogota' => 'Kolumbijos laikas (Bogotá)',
         'America/Boise' => 'Šiaurės Amerikos kalnų laikas (Boisis)',
         'America/Buenos_Aires' => 'Argentinos laikas (Buenos Airės)',
+        'America/Argentina/Buenos_Aires' => 'Argentinos laikas (Buenos Airės)',
         'America/Cambridge_Bay' => 'Šiaurės Amerikos kalnų laikas (Keimbridž Bėjus)',
         'America/Campo_Grande' => 'Amazonės laikas (Kampo Grandė)',
         'America/Cancun' => 'Šiaurės Amerikos rytų laikas (Kankūnas)',
         'America/Caracas' => 'Venesuelos laikas (Karakasas)',
         'America/Catamarca' => 'Argentinos laikas (Katamarka)',
+        'America/Argentina/Catamarca' => 'Argentinos laikas (Katamarka)',
         'America/Cayenne' => 'Prancūzijos Gvianos laikas (Kajenas)',
         'America/Cayman' => 'Šiaurės Amerikos rytų laikas (Kaimanas)',
         'America/Chicago' => 'Šiaurės Amerikos centro laikas (Čikaga)',
         'America/Chihuahua' => 'Šiaurės Amerikos centro laikas (Čihuahua)',
         'America/Ciudad_Juarez' => 'Šiaurės Amerikos kalnų laikas (Siudad Chuaresas)',
         'America/Coral_Harbour' => 'Šiaurės Amerikos rytų laikas (Atikokanas)',
+        'America/Atikokan' => 'Šiaurės Amerikos rytų laikas (Atikokanas)',
         'America/Cordoba' => 'Argentinos laikas (Kordoba)',
+        'America/Argentina/Cordoba' => 'Argentinos laikas (Kordoba)',
         'America/Costa_Rica' => 'Šiaurės Amerikos centro laikas (Kosta Rika)',
+        'America/Coyhaique' => 'Čilės laikas (Kojhaikė)',
         'America/Creston' => 'Šiaurės Amerikos kalnų laikas (Krestonas)',
         'America/Cuiaba' => 'Amazonės laikas (Kujaba)',
         'America/Curacao' => 'Atlanto laikas (Kiurasao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Brazilijos laikas (Fortaleza)',
         'America/Glace_Bay' => 'Atlanto laikas (Gleis Bėjus)',
         'America/Godthab' => 'Laikas: Grenlandija (Nūkas)',
+        'America/Nuuk' => 'Laikas: Grenlandija (Nūkas)',
         'America/Goose_Bay' => 'Atlanto laikas (Gus Bėjus)',
         'America/Grand_Turk' => 'Šiaurės Amerikos rytų laikas (Grand Terkas)',
         'America/Grenada' => 'Atlanto laikas (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Šiaurės Amerikos rytų laikas (Vinsenas, Indiana)',
         'America/Indiana/Winamac' => 'Šiaurės Amerikos rytų laikas (Vinamakas, Indiana)',
         'America/Indianapolis' => 'Šiaurės Amerikos rytų laikas (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Šiaurės Amerikos rytų laikas (Indianapolis)',
         'America/Inuvik' => 'Šiaurės Amerikos kalnų laikas (Inuvikas)',
         'America/Iqaluit' => 'Šiaurės Amerikos rytų laikas (Ikaluitas)',
         'America/Jamaica' => 'Šiaurės Amerikos rytų laikas (Jamaika)',
         'America/Jujuy' => 'Argentinos laikas (Chuchujus)',
+        'America/Argentina/Jujuy' => 'Argentinos laikas (Chuchujus)',
         'America/Juneau' => 'Aliaskos laikas (Džunas)',
         'America/Kentucky/Monticello' => 'Šiaurės Amerikos rytų laikas (Montiselas, Kentukis)',
         'America/Kralendijk' => 'Atlanto laikas (Kralendeikas)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Peru laikas (Lima)',
         'America/Los_Angeles' => 'Šiaurės Amerikos Ramiojo vandenyno laikas (Los Andželas)',
         'America/Louisville' => 'Šiaurės Amerikos rytų laikas (Luisvilis)',
+        'America/Kentucky/Louisville' => 'Šiaurės Amerikos rytų laikas (Luisvilis)',
         'America/Lower_Princes' => 'Atlanto laikas (Žemutinis Prinses Kvorteris)',
         'America/Maceio' => 'Brazilijos laikas (Masejo)',
         'America/Managua' => 'Šiaurės Amerikos centro laikas (Managva)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Šiaurės Amerikos centro laikas (Matamorosas)',
         'America/Mazatlan' => 'Meksikos Ramiojo vandenyno laikas (Masatlanas)',
         'America/Mendoza' => 'Argentinos laikas (Mendosa)',
+        'America/Argentina/Mendoza' => 'Argentinos laikas (Mendosa)',
         'America/Menominee' => 'Šiaurės Amerikos centro laikas (Menominis)',
         'America/Merida' => 'Šiaurės Amerikos centro laikas (Merida)',
         'America/Metlakatla' => 'Aliaskos laikas (Metlakatla)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Arabijos laikas (Adenas)',
         'Asia/Almaty' => 'Kazachstano laikas (Alma Ata)',
         'Asia/Amman' => 'Rytų Europos laikas (Amanas)',
-        'Asia/Anadyr' => 'Anadyrės laikas (Anadyris)',
+        'Asia/Anadyr' => 'Kamčiatkos Petropavlovsko laikas (Anadyris)',
         'Asia/Aqtau' => 'Kazachstano laikas (Aktau)',
         'Asia/Aqtobe' => 'Kazachstano laikas (Aktiubinskas)',
         'Asia/Ashgabat' => 'Turkmėnistano laikas (Ašchabadas)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabijos laikas (Bahreinas)',
         'Asia/Baku' => 'Azerbaidžano laikas (Baku)',
         'Asia/Bangkok' => 'Indokinijos laikas (Bankokas)',
-        'Asia/Barnaul' => 'Laikas: Rusija (Barnaulas)',
+        'Asia/Barnaul' => 'Krasnojarsko laikas (Barnaulas)',
         'Asia/Beirut' => 'Rytų Europos laikas (Beirutas)',
         'Asia/Bishkek' => 'Kirgistano laikas (Biškekas)',
         'Asia/Brunei' => 'Brunėjaus Darusalamo laikas (Brunėjus)',
         'Asia/Calcutta' => 'Indijos laikas (Kolkata)',
+        'Asia/Kolkata' => 'Indijos laikas (Kolkata)',
         'Asia/Chita' => 'Jakutsko laikas (Čita)',
         'Asia/Colombo' => 'Indijos laikas (Kolombas)',
         'Asia/Damascus' => 'Rytų Europos laikas (Damaskas)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Kamčiatkos Petropavlovsko laikas (Kamčiatka)',
         'Asia/Karachi' => 'Pakistano laikas (Karačis)',
         'Asia/Katmandu' => 'Nepalo laikas (Katmandu)',
+        'Asia/Kathmandu' => 'Nepalo laikas (Katmandu)',
         'Asia/Khandyga' => 'Jakutsko laikas (Chandyga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsko laikas (Krasnojarskas)',
         'Asia/Kuala_Lumpur' => 'Malaizijos laikas (Kvala Lumpūras)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Persijos įlankos laikas (Maskatas)',
         'Asia/Nicosia' => 'Rytų Europos laikas (Nikosija)',
         'Asia/Novokuznetsk' => 'Krasnojarsko laikas (Novokuzneckas)',
-        'Asia/Novosibirsk' => 'Novosibirsko laikas (Novosibirskas)',
+        'Asia/Novosibirsk' => 'Krasnojarsko laikas (Novosibirskas)',
         'Asia/Omsk' => 'Omsko laikas (Omskas)',
         'Asia/Oral' => 'Kazachstano laikas (Uralskas)',
         'Asia/Phnom_Penh' => 'Indokinijos laikas (Pnompenis)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazachstano laikas (Kostanajus)',
         'Asia/Qyzylorda' => 'Kazachstano laikas (Kzyl-Orda)',
         'Asia/Rangoon' => 'Mianmaro laikas (Rangūnas)',
+        'Asia/Yangon' => 'Mianmaro laikas (Rangūnas)',
         'Asia/Riyadh' => 'Arabijos laikas (Rijadas)',
         'Asia/Saigon' => 'Indokinijos laikas (Hošiminas)',
-        'Asia/Sakhalin' => 'Sachalino laikas (Sachalinas)',
+        'Asia/Ho_Chi_Minh' => 'Indokinijos laikas (Hošiminas)',
+        'Asia/Sakhalin' => 'Magadano laikas (Sachalinas)',
         'Asia/Samarkand' => 'Uzbekistano laikas (Samarkandas)',
         'Asia/Seoul' => 'Korėjos laikas (Seulas)',
         'Asia/Shanghai' => 'Kinijos laikas (Šanchajus)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Irano laikas (Teheranas)',
         'Asia/Thimphu' => 'Butano laikas (Timpu)',
         'Asia/Tokyo' => 'Japonijos laikas (Tokijas)',
-        'Asia/Tomsk' => 'Laikas: Rusija (Tomskas)',
+        'Asia/Tomsk' => 'Krasnojarsko laikas (Tomskas)',
         'Asia/Ulaanbaatar' => 'Ulan Batoro laikas (Ulan Batoras)',
         'Asia/Urumqi' => 'Laikas: Kinija (Urumči)',
         'Asia/Ust-Nera' => 'Vladivostoko laikas (Ust Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Vakarų Europos laikas (Kanarų salos)',
         'Atlantic/Cape_Verde' => 'Žaliojo Kyšulio laikas (Žaliasis Kyšulys)',
         'Atlantic/Faeroe' => 'Vakarų Europos laikas (Farerai)',
+        'Atlantic/Faroe' => 'Vakarų Europos laikas (Farerai)',
         'Atlantic/Madeira' => 'Vakarų Europos laikas (Madeira)',
         'Atlantic/Reykjavik' => 'Grinvičo laikas (Reikjavikas)',
         'Atlantic/South_Georgia' => 'Pietų Džordžijos laikas (Pietų Džordžija)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'pasaulio suderintasis laikas',
         'Europe/Amsterdam' => 'Vidurio Europos laikas (Amsterdamas)',
         'Europe/Andorra' => 'Vidurio Europos laikas (Andora)',
-        'Europe/Astrakhan' => 'Maskvos laikas (Astrachanė)',
+        'Europe/Astrakhan' => 'Samaros laikas (Astrachanė)',
         'Europe/Athens' => 'Rytų Europos laikas (Atėnai)',
         'Europe/Belgrade' => 'Vidurio Europos laikas (Belgradas)',
         'Europe/Berlin' => 'Vidurio Europos laikas (Berlynas)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Grinvičo laikas (Gernsis)',
         'Europe/Helsinki' => 'Rytų Europos laikas (Helsinkis)',
         'Europe/Isle_of_Man' => 'Grinvičo laikas (Meno sala)',
-        'Europe/Istanbul' => 'Laikas: Turkija (Stambulas)',
+        'Europe/Istanbul' => 'Turkijos laikas (Stambulas)',
         'Europe/Jersey' => 'Grinvičo laikas (Džersis)',
         'Europe/Kaliningrad' => 'Rytų Europos laikas (Kaliningradas)',
         'Europe/Kiev' => 'Rytų Europos laikas (Kijevas)',
-        'Europe/Kirov' => 'Laikas: Rusija (Kirovas)',
+        'Europe/Kyiv' => 'Rytų Europos laikas (Kijevas)',
+        'Europe/Kirov' => 'Maskvos laikas (Kirovas)',
         'Europe/Lisbon' => 'Vakarų Europos laikas (Lisabona)',
         'Europe/Ljubljana' => 'Vidurio Europos laikas (Liubliana)',
         'Europe/London' => 'Grinvičo laikas (Londonas)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samaros laikas (Samara)',
         'Europe/San_Marino' => 'Vidurio Europos laikas (San Marinas)',
         'Europe/Sarajevo' => 'Vidurio Europos laikas (Sarajevas)',
-        'Europe/Saratov' => 'Maskvos laikas (Saratovas)',
+        'Europe/Saratov' => 'Samaros laikas (Saratovas)',
         'Europe/Simferopol' => 'Maskvos laikas (Simferopolis)',
         'Europe/Skopje' => 'Vidurio Europos laikas (Skopjė)',
         'Europe/Sofia' => 'Rytų Europos laikas (Sofija)',
         'Europe/Stockholm' => 'Vidurio Europos laikas (Stokholmas)',
         'Europe/Tallinn' => 'Rytų Europos laikas (Talinas)',
         'Europe/Tirane' => 'Vidurio Europos laikas (Tirana)',
-        'Europe/Ulyanovsk' => 'Maskvos laikas (Uljanovskas)',
+        'Europe/Ulyanovsk' => 'Samaros laikas (Uljanovskas)',
         'Europe/Vaduz' => 'Vidurio Europos laikas (Vaducas)',
         'Europe/Vatican' => 'Vidurio Europos laikas (Vatikanas)',
         'Europe/Vienna' => 'Vidurio Europos laikas (Viena)',
         'Europe/Vilnius' => 'Rytų Europos laikas (Vilnius)',
-        'Europe/Volgograd' => 'Volgogrado laikas (Volgogradas)',
+        'Europe/Volgograd' => 'Maskvos laikas (Volgogradas)',
         'Europe/Warsaw' => 'Vidurio Europos laikas (Varšuva)',
         'Europe/Zagreb' => 'Vidurio Europos laikas (Zagrebas)',
         'Europe/Zurich' => 'Vidurio Europos laikas (Ciurichas)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Čatamo laikas (Čatamas)',
         'Pacific/Easter' => 'Velykų Salos laikas (Velykų sala)',
         'Pacific/Efate' => 'Vanuatu laikas (Efatė)',
-        'Pacific/Enderbury' => 'Fenikso Salų laikas (Enderburis)',
+        'Pacific/Enderbury' => 'Fenikso Salų laikas (Kantono sala)',
+        'Pacific/Kanton' => 'Fenikso Salų laikas (Kantono sala)',
         'Pacific/Fakaofo' => 'Tokelau laikas (Fakaofas)',
         'Pacific/Fiji' => 'Fidžio laikas (Fidžis)',
         'Pacific/Funafuti' => 'Tuvalu laikas (Funafutis)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Gambyro laikas (Gambyras)',
         'Pacific/Guadalcanal' => 'Saliamono Salų laikas (Gvadalkanalis)',
         'Pacific/Guam' => 'Čamoro laikas (Guamas)',
-        'Pacific/Honolulu' => 'Havajų-Aleutų laikas (Honolulu)',
+        'Pacific/Honolulu' => 'Havajų–Aleutų žiemos laikas (Honolulu)',
         'Pacific/Kiritimati' => 'Laino Salų laikas (Kiritimatis)',
         'Pacific/Kosrae' => 'Kosrajė laikas',
         'Pacific/Kwajalein' => 'Maršalo Salų laikas (Kvadžaleinas)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Palau laikas',
         'Pacific/Pitcairn' => 'Pitkerno laikas (Pitkerno sala)',
         'Pacific/Ponape' => 'Ponapės laikas',
+        'Pacific/Pohnpei' => 'Ponapės laikas',
         'Pacific/Port_Moresby' => 'Papua Naujosios Gvinėjos laikas (Port Morsbis)',
         'Pacific/Rarotonga' => 'Kuko Salų laikas (Rarotonga)',
         'Pacific/Saipan' => 'Čamoro laikas (Saipanas)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Gilberto Salų laikas (Tarava)',
         'Pacific/Tongatapu' => 'Tongos laikas (Tongatapu)',
         'Pacific/Truk' => 'Čuko laikas (Čukas)',
+        'Pacific/Chuuk' => 'Čuko laikas (Čukas)',
         'Pacific/Wake' => 'Veiko Salos laikas (Veiko sala)',
         'Pacific/Wallis' => 'Voliso ir Futūnos laikas (Volisas)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/lv.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Adisabeba (Austrumāfrikas laiks)',
         'Africa/Algiers' => 'Alžīra (Centrāleiropas laiks)',
         'Africa/Asmera' => 'Asmara (Austrumāfrikas laiks)',
+        'Africa/Asmara' => 'Asmara (Austrumāfrikas laiks)',
         'Africa/Bamako' => 'Bamako (Griničas laiks)',
         'Africa/Bangui' => 'Bangi (Rietumāfrikas laiks)',
         'Africa/Banjul' => 'Bandžula (Griničas laiks)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Kinšasa (Rietumāfrikas laiks)',
         'Africa/Lagos' => 'Lagosa (Rietumāfrikas laiks)',
         'Africa/Libreville' => 'Librevila (Rietumāfrikas laiks)',
-        'Africa/Lome' => 'Lome (Griničas laiks)',
+        'Africa/Lome' => 'Lomé (Griničas laiks)',
         'Africa/Luanda' => 'Luanda (Rietumāfrikas laiks)',
         'Africa/Lubumbashi' => 'Lubumbaši (Centrālāfrikas laiks)',
         'Africa/Lusaka' => 'Lusaka (Centrālāfrikas laiks)',
@@ -75,22 +76,27 @@
         'America/Belize' => 'Beliza (Centrālais laiks)',
         'America/Blanc-Sablon' => 'Blansablona (Atlantijas laiks)',
         'America/Boa_Vista' => 'Boavista (Amazones laiks)',
-        'America/Bogota' => 'Bogota (Kolumbijas laiks)',
+        'America/Bogota' => 'Bogotá (Kolumbijas laiks)',
         'America/Boise' => 'Boisisitija (Kalnu laiks)',
         'America/Buenos_Aires' => 'Buenosairesa (Argentīnas laiks)',
+        'America/Argentina/Buenos_Aires' => 'Buenosairesa (Argentīnas laiks)',
         'America/Cambridge_Bay' => 'Kembridžbeja (Kalnu laiks)',
         'America/Campo_Grande' => 'Kampugrandi (Amazones laiks)',
         'America/Cancun' => 'Kankuna (Austrumu laiks)',
         'America/Caracas' => 'Karakasa (Venecuēlas laiks)',
         'America/Catamarca' => 'Katamarka (Argentīnas laiks)',
+        'America/Argentina/Catamarca' => 'Katamarka (Argentīnas laiks)',
         'America/Cayenne' => 'Kajenna (Francijas Gviānas laiks)',
         'America/Cayman' => 'Kaimanu salas (Austrumu laiks)',
         'America/Chicago' => 'Čikāga (Centrālais laiks)',
         'America/Chihuahua' => 'Čivava (Centrālais laiks)',
         'America/Ciudad_Juarez' => 'Huaresa (Kalnu laiks)',
         'America/Coral_Harbour' => 'Atikokana (Austrumu laiks)',
+        'America/Atikokan' => 'Atikokana (Austrumu laiks)',
         'America/Cordoba' => 'Kordova (Argentīnas laiks)',
+        'America/Argentina/Cordoba' => 'Kordova (Argentīnas laiks)',
         'America/Costa_Rica' => 'Kostarika (Centrālais laiks)',
+        'America/Coyhaique' => 'Kojhaika (Čīles laiks)',
         'America/Creston' => 'Krestona (Kalnu laiks)',
         'America/Cuiaba' => 'Kujaba (Amazones laiks)',
         'America/Curacao' => 'Kirasao (Atlantijas laiks)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Detroita (Austrumu laiks)',
         'America/Dominica' => 'Dominika (Atlantijas laiks)',
         'America/Edmonton' => 'Edmontona (Kalnu laiks)',
-        'America/Eirunepe' => 'Eirunepe (Laika josla: Brazīlija)',
+        'America/Eirunepe' => 'Eirunepé (Laika josla: Brazīlija)',
         'America/El_Salvador' => 'Salvadora (Centrālais laiks)',
         'America/Fort_Nelson' => 'Fortnelsona (Kalnu laiks)',
         'America/Fortaleza' => 'Fortaleza (Brazīlijas laiks)',
         'America/Glace_Bay' => 'Gleisbeja (Atlantijas laiks)',
         'America/Godthab' => 'Nūka (Laika josla: Grenlande)',
+        'America/Nuuk' => 'Nūka (Laika josla: Grenlande)',
         'America/Goose_Bay' => 'Gūsbeja (Atlantijas laiks)',
         'America/Grand_Turk' => 'Grandtkērka (Austrumu laiks)',
         'America/Grenada' => 'Grenāda (Atlantijas laiks)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Vinsensa, Indiāna (Austrumu laiks)',
         'America/Indiana/Winamac' => 'Vinamaka, Indiāna (Austrumu laiks)',
         'America/Indianapolis' => 'Indianapolisa (Austrumu laiks)',
+        'America/Indiana/Indianapolis' => 'Indianapolisa (Austrumu laiks)',
         'America/Inuvik' => 'Inuvika (Kalnu laiks)',
         'America/Iqaluit' => 'Ikaluita (Austrumu laiks)',
         'America/Jamaica' => 'Jamaika (Austrumu laiks)',
         'America/Jujuy' => 'Huhuja (Argentīnas laiks)',
+        'America/Argentina/Jujuy' => 'Huhuja (Argentīnas laiks)',
         'America/Juneau' => 'Džuno (Aļaskas laiks)',
         'America/Kentucky/Monticello' => 'Montičelo, Kentuki (Austrumu laiks)',
         'America/Kralendijk' => 'Krālendeika (Atlantijas laiks)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Lima (Peru laiks)',
         'America/Los_Angeles' => 'Losandželosa (Klusā okeāna laiks)',
         'America/Louisville' => 'Lūivila (Austrumu laiks)',
+        'America/Kentucky/Louisville' => 'Lūivila (Austrumu laiks)',
         'America/Lower_Princes' => 'Louerprinseskvotera (Atlantijas laiks)',
         'America/Maceio' => 'Masejo (Brazīlijas laiks)',
         'America/Managua' => 'Managva (Centrālais laiks)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Matamorosa (Centrālais laiks)',
         'America/Mazatlan' => 'Masatlana (Meksikas Klusā okeāna piekrastes laiks)',
         'America/Mendoza' => 'Mendosa (Argentīnas laiks)',
+        'America/Argentina/Mendoza' => 'Mendosa (Argentīnas laiks)',
         'America/Menominee' => 'Menominī (Centrālais laiks)',
         'America/Merida' => 'Merida (Centrālais laiks)',
         'America/Metlakatla' => 'Metlakatla (Aļaskas laiks)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Adena (Arābijas pussalas laiks)',
         'Asia/Almaty' => 'Almati (Kazahstānas laiks)',
         'Asia/Amman' => 'Ammāna (Austrumeiropas laiks)',
-        'Asia/Anadyr' => 'Anadiras laiks',
+        'Asia/Anadyr' => 'Anadira (Petropavlovskas-Kamčatskas laiks)',
         'Asia/Aqtau' => 'Aktau (Kazahstānas laiks)',
         'Asia/Aqtobe' => 'Aktebe (Kazahstānas laiks)',
         'Asia/Ashgabat' => 'Ašgabata (Turkmenistānas laiks)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Bahreina (Arābijas pussalas laiks)',
         'Asia/Baku' => 'Baku (Azerbaidžānas laiks)',
         'Asia/Bangkok' => 'Bangkoka (Indoķīnas laiks)',
-        'Asia/Barnaul' => 'Barnaula (Laika josla: Krievija)',
+        'Asia/Barnaul' => 'Barnaula (Krasnojarskas laiks)',
         'Asia/Beirut' => 'Beirūta (Austrumeiropas laiks)',
         'Asia/Bishkek' => 'Biškeka (Kirgizstānas laiks)',
         'Asia/Brunei' => 'Brunejas Darusalamas laiks',
         'Asia/Calcutta' => 'Kalkāta (Indijas ziemas laiks)',
+        'Asia/Kolkata' => 'Kalkāta (Indijas ziemas laiks)',
         'Asia/Chita' => 'Čita (Jakutskas laiks)',
         'Asia/Colombo' => 'Kolombo (Indijas ziemas laiks)',
         'Asia/Damascus' => 'Damaska (Austrumeiropas laiks)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Kamčatka (Petropavlovskas-Kamčatskas laiks)',
         'Asia/Karachi' => 'Karāči (Pakistānas laiks)',
         'Asia/Katmandu' => 'Katmandu (Nepālas laiks)',
+        'Asia/Kathmandu' => 'Katmandu (Nepālas laiks)',
         'Asia/Khandyga' => 'Handiga (Jakutskas laiks)',
         'Asia/Krasnoyarsk' => 'Krasnojarskas laiks',
         'Asia/Kuala_Lumpur' => 'Kualalumpura (Malaizijas laiks)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Maskata (Persijas līča laiks)',
         'Asia/Nicosia' => 'Nikosija (Austrumeiropas laiks)',
         'Asia/Novokuznetsk' => 'Novokuzņecka (Krasnojarskas laiks)',
-        'Asia/Novosibirsk' => 'Novosibirskas laiks',
+        'Asia/Novosibirsk' => 'Novosibirska (Krasnojarskas laiks)',
         'Asia/Omsk' => 'Omskas laiks',
         'Asia/Oral' => 'Orala (Kazahstānas laiks)',
         'Asia/Phnom_Penh' => 'Pnompeņa (Indoķīnas laiks)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kostanaja (Kazahstānas laiks)',
         'Asia/Qyzylorda' => 'Kizilorda (Kazahstānas laiks)',
         'Asia/Rangoon' => 'Ranguna (Mjanmas laiks)',
+        'Asia/Yangon' => 'Ranguna (Mjanmas laiks)',
         'Asia/Riyadh' => 'Rijāda (Arābijas pussalas laiks)',
         'Asia/Saigon' => 'Hošimina (Indoķīnas laiks)',
-        'Asia/Sakhalin' => 'Sahalīnas laiks',
+        'Asia/Ho_Chi_Minh' => 'Hošimina (Indoķīnas laiks)',
+        'Asia/Sakhalin' => 'Sahalīna (Magadanas laiks)',
         'Asia/Samarkand' => 'Samarkanda (Uzbekistānas laiks)',
         'Asia/Seoul' => 'Seula (Korejas laiks)',
         'Asia/Shanghai' => 'Šanhaja (Ķīnas laiks)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Teherāna (Irānas laiks)',
         'Asia/Thimphu' => 'Thimphu (Butānas laiks)',
         'Asia/Tokyo' => 'Tokija (Japānas laiks)',
-        'Asia/Tomsk' => 'Tomska (Laika josla: Krievija)',
+        'Asia/Tomsk' => 'Tomska (Krasnojarskas laiks)',
         'Asia/Ulaanbaatar' => 'Ulanbatoras laiks',
         'Asia/Urumqi' => 'Urumči (Laika josla: Ķīna)',
         'Asia/Ust-Nera' => 'Ustjņera (Vladivostokas laiks)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Kanāriju salas (Rietumeiropas laiks)',
         'Atlantic/Cape_Verde' => 'Kaboverdes laiks',
         'Atlantic/Faeroe' => 'Fēru salas (Rietumeiropas laiks)',
+        'Atlantic/Faroe' => 'Fēru salas (Rietumeiropas laiks)',
         'Atlantic/Madeira' => 'Madeira (Rietumeiropas laiks)',
         'Atlantic/Reykjavik' => 'Reikjavika (Griničas laiks)',
         'Atlantic/South_Georgia' => 'Dienviddžordžijas laiks',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Universālais koordinētais laiks',
         'Europe/Amsterdam' => 'Amsterdama (Centrāleiropas laiks)',
         'Europe/Andorra' => 'Andora (Centrāleiropas laiks)',
-        'Europe/Astrakhan' => 'Astrahaņa (Maskavas laiks)',
+        'Europe/Astrakhan' => 'Astrahaņa (Samaras laiks)',
         'Europe/Athens' => 'Atēnas (Austrumeiropas laiks)',
         'Europe/Belgrade' => 'Belgrada (Centrāleiropas laiks)',
         'Europe/Berlin' => 'Berlīne (Centrāleiropas laiks)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Gērnsija (Griničas laiks)',
         'Europe/Helsinki' => 'Helsinki (Austrumeiropas laiks)',
         'Europe/Isle_of_Man' => 'Menas sala (Griničas laiks)',
-        'Europe/Istanbul' => 'Stambula (Laika josla: Turcija)',
+        'Europe/Istanbul' => 'Stambula (Turcijas laiks)',
         'Europe/Jersey' => 'Džērsija (Griničas laiks)',
         'Europe/Kaliningrad' => 'Kaļiņingrada (Austrumeiropas laiks)',
         'Europe/Kiev' => 'Kijeva (Austrumeiropas laiks)',
-        'Europe/Kirov' => 'Kirova (Laika josla: Krievija)',
+        'Europe/Kyiv' => 'Kijeva (Austrumeiropas laiks)',
+        'Europe/Kirov' => 'Kirova (Maskavas laiks)',
         'Europe/Lisbon' => 'Lisabona (Rietumeiropas laiks)',
         'Europe/Ljubljana' => 'Ļubļana (Centrāleiropas laiks)',
         'Europe/London' => 'Londona (Griničas laiks)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samaras laiks',
         'Europe/San_Marino' => 'Sanmarīno (Centrāleiropas laiks)',
         'Europe/Sarajevo' => 'Sarajeva (Centrāleiropas laiks)',
-        'Europe/Saratov' => 'Saratova (Maskavas laiks)',
+        'Europe/Saratov' => 'Saratova (Samaras laiks)',
         'Europe/Simferopol' => 'Simferopole (Maskavas laiks)',
         'Europe/Skopje' => 'Skopje (Centrāleiropas laiks)',
         'Europe/Sofia' => 'Sofija (Austrumeiropas laiks)',
         'Europe/Stockholm' => 'Stokholma (Centrāleiropas laiks)',
         'Europe/Tallinn' => 'Tallina (Austrumeiropas laiks)',
         'Europe/Tirane' => 'Tirāna (Centrāleiropas laiks)',
-        'Europe/Ulyanovsk' => 'Uļjanovska (Maskavas laiks)',
+        'Europe/Ulyanovsk' => 'Uļjanovska (Samaras laiks)',
         'Europe/Vaduz' => 'Vaduca (Centrāleiropas laiks)',
         'Europe/Vatican' => 'Vatikāns (Centrāleiropas laiks)',
         'Europe/Vienna' => 'Vīne (Centrāleiropas laiks)',
         'Europe/Vilnius' => 'Viļņa (Austrumeiropas laiks)',
-        'Europe/Volgograd' => 'Volgogradas laiks',
+        'Europe/Volgograd' => 'Volgograda (Maskavas laiks)',
         'Europe/Warsaw' => 'Varšava (Centrāleiropas laiks)',
         'Europe/Zagreb' => 'Zagreba (Centrāleiropas laiks)',
         'Europe/Zurich' => 'Cīrihe (Centrāleiropas laiks)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Četemas laiks',
         'Pacific/Easter' => 'Lieldienu salas laiks',
         'Pacific/Efate' => 'Efate (Vanuatu laiks)',
-        'Pacific/Enderbury' => 'Enderberija (Fēniksa salu laiks)',
+        'Pacific/Enderbury' => 'Kantona (Fēniksa salu laiks)',
+        'Pacific/Kanton' => 'Kantona (Fēniksa salu laiks)',
         'Pacific/Fakaofo' => 'Fakaofo (Tokelau laiks)',
         'Pacific/Fiji' => 'Fidži laiks',
         'Pacific/Funafuti' => 'Funafuti (Tuvalu laiks)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Gambjē salas (Gambjē salu laiks)',
         'Pacific/Guadalcanal' => 'Gvadalkanala (Zālamana salu laiks)',
         'Pacific/Guam' => 'Guama (Čamorra ziemas laiks)',
-        'Pacific/Honolulu' => 'Honolulu (Havaju–Aleutu laiks)',
+        'Pacific/Honolulu' => 'Honolulu (Havaju–Aleutu ziemas laiks)',
         'Pacific/Kiritimati' => 'Kirisimasi (Lainas salu laiks)',
         'Pacific/Kosrae' => 'Kosraja (Kosrae laiks)',
         'Pacific/Kwajalein' => 'Kvadžaleina (Māršala salu laiks)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Palau laiks',
         'Pacific/Pitcairn' => 'Pitkērnas laiks',
         'Pacific/Ponape' => 'Ponpeja (Ponapē laiks)',
+        'Pacific/Pohnpei' => 'Ponpeja (Ponapē laiks)',
         'Pacific/Port_Moresby' => 'Portmorsbi (Papua-Jaungvinejas laiks)',
         'Pacific/Rarotonga' => 'Rarotonga (Kuka salu laiks)',
         'Pacific/Saipan' => 'Saipana (Čamorra ziemas laiks)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Tarava (Gilberta salu laiks)',
         'Pacific/Tongatapu' => 'Tongatapu (Tongas laiks)',
         'Pacific/Truk' => 'Čūkas laiks',
+        'Pacific/Chuuk' => 'Čūkas laiks',
         'Pacific/Wake' => 'Veika salas laiks',
         'Pacific/Wallis' => 'Volisas un Futunas laiks',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/meta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/meta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/meta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/meta.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,6 +6,7 @@
         'Africa/Accra',
         'Africa/Addis_Ababa',
         'Africa/Algiers',
+        'Africa/Asmara',
         'Africa/Asmera',
         'Africa/Bamako',
         'Africa/Bangui',
@@ -59,7 +60,12 @@
         'America/Anguilla',
         'America/Antigua',
         'America/Araguaina',
+        'America/Argentina/Buenos_Aires',
+        'America/Argentina/Catamarca',
+        'America/Argentina/Cordoba',
+        'America/Argentina/Jujuy',
         'America/Argentina/La_Rioja',
+        'America/Argentina/Mendoza',
         'America/Argentina/Rio_Gallegos',
         'America/Argentina/Salta',
         'America/Argentina/San_Juan',
@@ -68,6 +74,7 @@
         'America/Argentina/Ushuaia',
         'America/Aruba',
         'America/Asuncion',
+        'America/Atikokan',
         'America/Bahia',
         'America/Bahia_Banderas',
         'America/Barbados',
@@ -91,6 +98,7 @@
         'America/Coral_Harbour',
         'America/Cordoba',
         'America/Costa_Rica',
+        'America/Coyhaique',
         'America/Creston',
         'America/Cuiaba',
         'America/Curacao',
@@ -117,6 +125,7 @@
         'America/Halifax',
         'America/Havana',
         'America/Hermosillo',
+        'America/Indiana/Indianapolis',
         'America/Indiana/Knox',
         'America/Indiana/Marengo',
         'America/Indiana/Petersburg',
@@ -130,6 +139,7 @@
         'America/Jamaica',
         'America/Jujuy',
         'America/Juneau',
+        'America/Kentucky/Louisville',
         'America/Kentucky/Monticello',
         'America/Kralendijk',
         'America/La_Paz',
@@ -161,6 +171,7 @@
         'America/North_Dakota/Beulah',
         'America/North_Dakota/Center',
         'America/North_Dakota/New_Salem',
+        'America/Nuuk',
         'America/Ojinaga',
         'America/Panama',
         'America/Paramaribo',
@@ -236,6 +247,7 @@
         'Asia/Famagusta',
         'Asia/Gaza',
         'Asia/Hebron',
+        'Asia/Ho_Chi_Minh',
         'Asia/Hong_Kong',
         'Asia/Hovd',
         'Asia/Irkutsk',
@@ -245,8 +257,10 @@
         'Asia/Kabul',
         'Asia/Kamchatka',
         'Asia/Karachi',
+        'Asia/Kathmandu',
         'Asia/Katmandu',
         'Asia/Khandyga',
+        'Asia/Kolkata',
         'Asia/Krasnoyarsk',
         'Asia/Kuala_Lumpur',
         'Asia/Kuching',
@@ -289,6 +303,7 @@
         'Asia/Vientiane',
         'Asia/Vladivostok',
         'Asia/Yakutsk',
+        'Asia/Yangon',
         'Asia/Yekaterinburg',
         'Asia/Yerevan',
         'Atlantic/Azores',
@@ -296,6 +311,7 @@
         'Atlantic/Canary',
         'Atlantic/Cape_Verde',
         'Atlantic/Faeroe',
+        'Atlantic/Faroe',
         'Atlantic/Madeira',
         'Atlantic/Reykjavik',
         'Atlantic/South_Georgia',
@@ -337,6 +353,7 @@
         'Europe/Kaliningrad',
         'Europe/Kiev',
         'Europe/Kirov',
+        'Europe/Kyiv',
         'Europe/Lisbon',
         'Europe/Ljubljana',
         'Europe/London',
@@ -387,6 +404,7 @@
         'Pacific/Auckland',
         'Pacific/Bougainville',
         'Pacific/Chatham',
+        'Pacific/Chuuk',
         'Pacific/Easter',
         'Pacific/Efate',
         'Pacific/Enderbury',
@@ -398,6 +416,7 @@
         'Pacific/Guadalcanal',
         'Pacific/Guam',
         'Pacific/Honolulu',
+        'Pacific/Kanton',
         'Pacific/Kiritimati',
         'Pacific/Kosrae',
         'Pacific/Kwajalein',
@@ -411,6 +430,7 @@
         'Pacific/Pago_Pago',
         'Pacific/Palau',
         'Pacific/Pitcairn',
+        'Pacific/Pohnpei',
         'Pacific/Ponape',
         'Pacific/Port_Moresby',
         'Pacific/Rarotonga',
@@ -428,6 +448,7 @@
         'Africa/Accra' => 'GH',
         'Africa/Addis_Ababa' => 'ET',
         'Africa/Algiers' => 'DZ',
+        'Africa/Asmara' => 'ER',
         'Africa/Asmera' => 'ER',
         'Africa/Bamako' => 'ML',
         'Africa/Bangui' => 'CF',
@@ -481,7 +502,12 @@
         'America/Anguilla' => 'AI',
         'America/Antigua' => 'AG',
         'America/Araguaina' => 'BR',
+        'America/Argentina/Buenos_Aires' => 'AR',
+        'America/Argentina/Catamarca' => 'AR',
+        'America/Argentina/Cordoba' => 'AR',
+        'America/Argentina/Jujuy' => 'AR',
         'America/Argentina/La_Rioja' => 'AR',
+        'America/Argentina/Mendoza' => 'AR',
         'America/Argentina/Rio_Gallegos' => 'AR',
         'America/Argentina/Salta' => 'AR',
         'America/Argentina/San_Juan' => 'AR',
@@ -490,6 +516,7 @@
         'America/Argentina/Ushuaia' => 'AR',
         'America/Aruba' => 'AW',
         'America/Asuncion' => 'PY',
+        'America/Atikokan' => 'CA',
         'America/Bahia' => 'BR',
         'America/Bahia_Banderas' => 'MX',
         'America/Barbados' => 'BB',
@@ -513,6 +540,7 @@
         'America/Coral_Harbour' => 'CA',
         'America/Cordoba' => 'AR',
         'America/Costa_Rica' => 'CR',
+        'America/Coyhaique' => 'CL',
         'America/Creston' => 'CA',
         'America/Cuiaba' => 'BR',
         'America/Curacao' => 'CW',
@@ -539,6 +567,7 @@
         'America/Halifax' => 'CA',
         'America/Havana' => 'CU',
         'America/Hermosillo' => 'MX',
+        'America/Indiana/Indianapolis' => 'US',
         'America/Indiana/Knox' => 'US',
         'America/Indiana/Marengo' => 'US',
         'America/Indiana/Petersburg' => 'US',
@@ -552,6 +581,7 @@
         'America/Jamaica' => 'JM',
         'America/Jujuy' => 'AR',
         'America/Juneau' => 'US',
+        'America/Kentucky/Louisville' => 'US',
         'America/Kentucky/Monticello' => 'US',
         'America/Kralendijk' => 'BQ',
         'America/La_Paz' => 'BO',
@@ -583,6 +613,7 @@
         'America/North_Dakota/Beulah' => 'US',
         'America/North_Dakota/Center' => 'US',
         'America/North_Dakota/New_Salem' => 'US',
+        'America/Nuuk' => 'GL',
         'America/Ojinaga' => 'MX',
         'America/Panama' => 'PA',
         'America/Paramaribo' => 'SR',
@@ -657,6 +688,7 @@
         'Asia/Famagusta' => 'CY',
         'Asia/Gaza' => 'PS',
         'Asia/Hebron' => 'PS',
+        'Asia/Ho_Chi_Minh' => 'VN',
         'Asia/Hong_Kong' => 'HK',
         'Asia/Hovd' => 'MN',
         'Asia/Irkutsk' => 'RU',
@@ -666,8 +698,10 @@
         'Asia/Kabul' => 'AF',
         'Asia/Kamchatka' => 'RU',
         'Asia/Karachi' => 'PK',
+        'Asia/Kathmandu' => 'NP',
         'Asia/Katmandu' => 'NP',
         'Asia/Khandyga' => 'RU',
+        'Asia/Kolkata' => 'IN',
         'Asia/Krasnoyarsk' => 'RU',
         'Asia/Kuala_Lumpur' => 'MY',
         'Asia/Kuching' => 'MY',
@@ -710,6 +744,7 @@
         'Asia/Vientiane' => 'LA',
         'Asia/Vladivostok' => 'RU',
         'Asia/Yakutsk' => 'RU',
+        'Asia/Yangon' => 'MM',
         'Asia/Yekaterinburg' => 'RU',
         'Asia/Yerevan' => 'AM',
         'Atlantic/Azores' => 'PT',
@@ -717,6 +752,7 @@
         'Atlantic/Canary' => 'ES',
         'Atlantic/Cape_Verde' => 'CV',
         'Atlantic/Faeroe' => 'FO',
+        'Atlantic/Faroe' => 'FO',
         'Atlantic/Madeira' => 'PT',
         'Atlantic/Reykjavik' => 'IS',
         'Atlantic/South_Georgia' => 'GS',
@@ -756,6 +792,7 @@
         'Europe/Kaliningrad' => 'RU',
         'Europe/Kiev' => 'UA',
         'Europe/Kirov' => 'RU',
+        'Europe/Kyiv' => 'UA',
         'Europe/Lisbon' => 'PT',
         'Europe/Ljubljana' => 'SI',
         'Europe/London' => 'GB',
@@ -806,6 +843,7 @@
         'Pacific/Auckland' => 'NZ',
         'Pacific/Bougainville' => 'PG',
         'Pacific/Chatham' => 'NZ',
+        'Pacific/Chuuk' => 'FM',
         'Pacific/Easter' => 'CL',
         'Pacific/Efate' => 'VU',
         'Pacific/Enderbury' => 'KI',
@@ -817,6 +855,7 @@
         'Pacific/Guadalcanal' => 'SB',
         'Pacific/Guam' => 'GU',
         'Pacific/Honolulu' => 'US',
+        'Pacific/Kanton' => 'KI',
         'Pacific/Kiritimati' => 'KI',
         'Pacific/Kosrae' => 'FM',
         'Pacific/Kwajalein' => 'MH',
@@ -830,6 +869,7 @@
         'Pacific/Pago_Pago' => 'AS',
         'Pacific/Palau' => 'PW',
         'Pacific/Pitcairn' => 'PN',
+        'Pacific/Pohnpei' => 'FM',
         'Pacific/Ponape' => 'FM',
         'Pacific/Port_Moresby' => 'PG',
         'Pacific/Rarotonga' => 'CK',
@@ -878,7 +918,12 @@
             'Antarctica/Vostok',
         ],
         'AR' => [
+            'America/Argentina/Buenos_Aires',
+            'America/Argentina/Catamarca',
+            'America/Argentina/Cordoba',
+            'America/Argentina/Jujuy',
             'America/Argentina/La_Rioja',
+            'America/Argentina/Mendoza',
             'America/Argentina/Rio_Gallegos',
             'America/Argentina/Salta',
             'America/Argentina/San_Juan',
@@ -996,6 +1041,7 @@
             'America/Belize',
         ],
         'CA' => [
+            'America/Atikokan',
             'America/Blanc-Sablon',
             'America/Cambridge_Bay',
             'America/Coral_Harbour',
@@ -1043,6 +1089,7 @@
             'Pacific/Rarotonga',
         ],
         'CL' => [
+            'America/Coyhaique',
             'America/Punta_Arenas',
             'America/Santiago',
             'Pacific/Easter',
@@ -1112,6 +1159,7 @@
             'Africa/El_Aaiun',
         ],
         'ER' => [
+            'Africa/Asmara',
             'Africa/Asmera',
         ],
         'ES' => [
@@ -1132,12 +1180,15 @@
             'Atlantic/Stanley',
         ],
         'FM' => [
+            'Pacific/Chuuk',
             'Pacific/Kosrae',
+            'Pacific/Pohnpei',
             'Pacific/Ponape',
             'Pacific/Truk',
         ],
         'FO' => [
             'Atlantic/Faeroe',
+            'Atlantic/Faroe',
         ],
         'FR' => [
             'Europe/Paris',
@@ -1169,6 +1220,7 @@
         'GL' => [
             'America/Danmarkshavn',
             'America/Godthab',
+            'America/Nuuk',
             'America/Scoresbysund',
             'America/Thule',
         ],
@@ -1234,6 +1286,7 @@
         ],
         'IN' => [
             'Asia/Calcutta',
+            'Asia/Kolkata',
         ],
         'IO' => [
             'Indian/Chagos',
@@ -1273,6 +1326,7 @@
         ],
         'KI' => [
             'Pacific/Enderbury',
+            'Pacific/Kanton',
             'Pacific/Kiritimati',
             'Pacific/Tarawa',
         ],
@@ -1366,6 +1420,7 @@
         ],
         'MM' => [
             'Asia/Rangoon',
+            'Asia/Yangon',
         ],
         'MN' => [
             'Asia/Hovd',
@@ -1445,6 +1500,7 @@
             'Europe/Oslo',
         ],
         'NP' => [
+            'Asia/Kathmandu',
             'Asia/Katmandu',
         ],
         'NR' => [
@@ -1664,6 +1720,7 @@
         ],
         'UA' => [
             'Europe/Kiev',
+            'Europe/Kyiv',
             'Europe/Simferopol',
         ],
         'UG' => [
@@ -1680,6 +1737,7 @@
             'America/Chicago',
             'America/Denver',
             'America/Detroit',
+            'America/Indiana/Indianapolis',
             'America/Indiana/Knox',
             'America/Indiana/Marengo',
             'America/Indiana/Petersburg',
@@ -1689,6 +1747,7 @@
             'America/Indiana/Winamac',
             'America/Indianapolis',
             'America/Juneau',
+            'America/Kentucky/Louisville',
             'America/Kentucky/Monticello',
             'America/Los_Angeles',
             'America/Louisville',
@@ -1727,6 +1786,7 @@
             'America/St_Thomas',
         ],
         'VN' => [
+            'Asia/Ho_Chi_Minh',
             'Asia/Saigon',
         ],
         'VU' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mi.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Wā o Āwherika ki te rāwhiti (Addis Ababa)',
         'Africa/Algiers' => 'Wā Uropi Waenga (Algiers)',
         'Africa/Asmera' => 'Wā o Āwherika ki te rāwhiti (Asmara)',
+        'Africa/Asmara' => 'Wā o Āwherika ki te rāwhiti (Asmara)',
         'Africa/Bamako' => 'Wā Toharite Kiriwīti (Bamako)',
         'Africa/Bangui' => 'Wā o Āwherika ki te uru (Bangui)',
         'Africa/Banjul' => 'Wā Toharite Kiriwīti (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Wā o Āwherika ki te rāwhiti (Dar es Salaam)',
         'Africa/Djibouti' => 'Wā o Āwherika ki te rāwhiti (Djibouti)',
         'Africa/Douala' => 'Wā o Āwherika ki te uru (Douala)',
-        'Africa/El_Aaiun' => 'Wā Uropi Uru (El Aaiun)',
+        'Africa/El_Aaiun' => 'Wā Uropi Uru (El Aaiún)',
         'Africa/Freetown' => 'Wā Toharite Kiriwīti (Freetown)',
         'Africa/Gaborone' => 'Wā o Te Puku o Āwherika (Gaborone)',
         'Africa/Harare' => 'Wā o Te Puku o Āwherika (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Wā o Āwherika ki te uru (Kinshasa)',
         'Africa/Lagos' => 'Wā o Āwherika ki te uru (Lagos)',
         'Africa/Libreville' => 'Wā o Āwherika ki te uru (Libreville)',
-        'Africa/Lome' => 'Wā Toharite Kiriwīti (Lome)',
+        'Africa/Lome' => 'Wā Toharite Kiriwīti (Lomé)',
         'Africa/Luanda' => 'Wā o Āwherika ki te uru (Luanda)',
         'Africa/Lubumbashi' => 'Wā o Te Puku o Āwherika (Lubumbashi)',
         'Africa/Lusaka' => 'Wā o Te Puku o Āwherika (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Wā o Āwherika ki te rāwhiti (Mogadishu)',
         'Africa/Monrovia' => 'Wā Toharite Kiriwīti (Monrovia)',
         'Africa/Nairobi' => 'Wā o Āwherika ki te rāwhiti (Ngāiropi)',
-        'Africa/Ndjamena' => 'Wā o Āwherika ki te uru (Ndjamena)',
+        'Africa/Ndjamena' => 'Wā o Āwherika ki te uru (N’Djamena)',
         'Africa/Niamey' => 'Wā o Āwherika ki te uru (Niamey)',
         'Africa/Nouakchott' => 'Wā Toharite Kiriwīti (Nouakchott)',
         'Africa/Ouagadougou' => 'Wā Toharite Kiriwīti (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Wā Alaska (Anchorage)',
         'America/Anguilla' => 'Wā Ranatiki (Anguilla)',
         'America/Antigua' => 'Wā Ranatiki (Te Motu Nehe)',
-        'America/Araguaina' => 'Wā Parīhia (Araguaina)',
+        'America/Araguaina' => 'Wā Parīhia (Araguaína)',
         'America/Argentina/La_Rioja' => 'Wā Āketina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Wā Āketina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Wā Āketina (Río Gallegos)',
         'America/Argentina/Salta' => 'Wā Āketina (Salta)',
         'America/Argentina/San_Juan' => 'Wā Āketina (San Juan)',
         'America/Argentina/San_Luis' => 'Wā Āketina (San Luis)',
-        'America/Argentina/Tucuman' => 'Wā Āketina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Wā Āketina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Wā Āketina (Ushuaia)',
         'America/Aruba' => 'Wā Ranatiki (Aruba)',
         'America/Asuncion' => 'Wā Parakai (Asunción)',
         'America/Bahia' => 'Wā Parīhia (Bahia)',
         'America/Bahia_Banderas' => 'Wā Waenga (Bahía de Banderas)',
         'America/Barbados' => 'Wā Ranatiki (Papatohe)',
-        'America/Belem' => 'Wā Parīhia (Belem)',
+        'America/Belem' => 'Wā Parīhia (Belém)',
         'America/Belize' => 'Wā Waenga (Pērihi)',
         'America/Blanc-Sablon' => 'Wā Ranatiki (Blanc-Sablon)',
         'America/Boa_Vista' => 'Wā Amahona (Boa Vista)',
-        'America/Bogota' => 'Wā Koromōpia (Bogota)',
+        'America/Bogota' => 'Wā Koromōpia (Bogotá)',
         'America/Boise' => 'Wā Maunga (Boise)',
         'America/Buenos_Aires' => 'Wā Āketina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Wā Āketina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Wā Maunga (Kemureti Pei)',
         'America/Campo_Grande' => 'Wā Amahona (Campo Grande)',
         'America/Cancun' => 'Wā Rāwhiti (Cancún)',
         'America/Caracas' => 'Wā Penehūera (Caracas)',
         'America/Catamarca' => 'Wā Āketina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Wā Āketina (Catamarca)',
         'America/Cayenne' => 'Wā Kiāna Wīwī (Cayenne)',
         'America/Cayman' => 'Wā Rāwhiti (Kāmana)',
         'America/Chicago' => 'Wā Waenga (Hikāko)',
         'America/Chihuahua' => 'Wā Waenga (Chihuahua)',
         'America/Ciudad_Juarez' => 'Wā Maunga (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Wā Rāwhiti (Atikokan)',
-        'America/Cordoba' => 'Wā Āketina (Cordoba)',
+        'America/Atikokan' => 'Wā Rāwhiti (Atikokan)',
+        'America/Cordoba' => 'Wā Āketina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Wā Āketina (Córdoba)',
         'America/Costa_Rica' => 'Wā Waenga (Koto Rika)',
+        'America/Coyhaique' => 'Wā Hiri (Coyhaique)',
         'America/Creston' => 'Wā Maunga (Creston)',
-        'America/Cuiaba' => 'Wā Amahona (Cuiaba)',
+        'America/Cuiaba' => 'Wā Amahona (Cuiabá)',
         'America/Curacao' => 'Wā Ranatiki (Curaçao)',
         'America/Danmarkshavn' => 'Wā Toharite Kiriwīti (Danmarkshavn)',
         'America/Dawson' => 'Wā Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Wā Rāwhiti (Detroit)',
         'America/Dominica' => 'Wā Ranatiki (Tominika)',
         'America/Edmonton' => 'Wā Maunga (Edmonton)',
-        'America/Eirunepe' => 'Parīhi Wā (Eirunepe)',
+        'America/Eirunepe' => 'Parīhi Wā (Eirunepé)',
         'America/El_Salvador' => 'Wā Waenga (Whakaora)',
         'America/Fort_Nelson' => 'Wā Maunga (Fort Nelson)',
         'America/Fortaleza' => 'Wā Parīhia (Fortaleza)',
         'America/Glace_Bay' => 'Wā Ranatiki (Glace Bay)',
         'America/Godthab' => 'Whenuakāriki Wā (Nuuk)',
+        'America/Nuuk' => 'Whenuakāriki Wā (Nuuk)',
         'America/Goose_Bay' => 'Wā Ranatiki (Kuihi Pei)',
         'America/Grand_Turk' => 'Wā Rāwhiti (Tākoru Nui)',
         'America/Grenada' => 'Wā Ranatiki (Kerenata)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Wā Rāwhiti (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Wā Rāwhiti (Winamac, Indiana)',
         'America/Indianapolis' => 'Wā Rāwhiti (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Wā Rāwhiti (Indianapolis)',
         'America/Inuvik' => 'Wā Maunga (Inuvik)',
         'America/Iqaluit' => 'Wā Rāwhiti (Iqaluit)',
         'America/Jamaica' => 'Wā Rāwhiti (Hemeika)',
         'America/Jujuy' => 'Wā Āketina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Wā Āketina (Jujuy)',
         'America/Juneau' => 'Wā Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Wā Rāwhiti (Monticello, Kentucky)',
         'America/Kralendijk' => 'Wā Ranatiki (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Wā Peru (Lima)',
         'America/Los_Angeles' => 'Wā Kiwa (Ngā Anahera)',
         'America/Louisville' => 'Wā Rāwhiti (Louisville)',
+        'America/Kentucky/Louisville' => 'Wā Rāwhiti (Louisville)',
         'America/Lower_Princes' => 'Wā Ranatiki (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Wā Parīhia (Maceio)',
+        'America/Maceio' => 'Wā Parīhia (Maceió)',
         'America/Managua' => 'Wā Waenga (Managua)',
         'America/Manaus' => 'Wā Amahona (Manaus)',
         'America/Marigot' => 'Wā Ranatiki (Marigot)',
         'America/Martinique' => 'Wā Ranatiki (Mātiniki)',
         'America/Matamoros' => 'Wā Waenga (Matamoros)',
-        'America/Mazatlan' => 'Wā Mēhiko Kiwa (Mazatlan)',
+        'America/Mazatlan' => 'Wā Mēhiko Kiwa (Mazatlán)',
         'America/Mendoza' => 'Wā Āketina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Wā Āketina (Mendoza)',
         'America/Menominee' => 'Wā Waenga (Menominee)',
         'America/Merida' => 'Wā Waenga (Mérida)',
         'America/Metlakatla' => 'Wā Alaska (Metlakatla)',
         'America/Mexico_City' => 'Wā Waenga (Mēhiko Tāonenui)',
-        'America/Miquelon' => 'Wā St. Pierre me Miquelon',
+        'America/Miquelon' => 'Wā St. Pierre me Miquelon (Saint-Pierre)',
         'America/Moncton' => 'Wā Ranatiki (Moncton)',
         'America/Monterrey' => 'Wā Waenga (Monterrey)',
         'America/Montevideo' => 'Wā Urukoi (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Wā Waenga (Regina)',
         'America/Resolute' => 'Wā Waenga (Resolute)',
         'America/Rio_Branco' => 'Parīhi Wā (Rio Branco)',
-        'America/Santarem' => 'Wā Parīhia (Santarem)',
+        'America/Santarem' => 'Wā Parīhia (Santarém)',
         'America/Santiago' => 'Wā Hiri (Santiago)',
         'America/Santo_Domingo' => 'Wā Ranatiki (Santo Domingo)',
-        'America/Sao_Paulo' => 'Wā Parīhia (Sao Paulo)',
+        'America/Sao_Paulo' => 'Wā Parīhia (São Paulo)',
         'America/Scoresbysund' => 'Whenuakāriki Wā (Ittoqqortoormiit)',
         'America/Sitka' => 'Wā Alaska (Sitka)',
         'America/St_Barthelemy' => 'Wā Ranatiki (St. Barthélemy)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Wā Aotearoa (McMurdo)',
         'Antarctica/Palmer' => 'Wā Hiri (Palmer)',
         'Antarctica/Rothera' => 'Wā Rothera',
-        'Antarctica/Syowa' => 'Wā Syowa',
+        'Antarctica/Syowa' => 'Wā Syowa (Showa)',
         'Antarctica/Troll' => 'Wā Toharite Kiriwīti (Troll)',
         'Antarctica/Vostok' => 'Wā Vostok',
         'Arctic/Longyearbyen' => 'Wā Uropi Waenga (Longyearbyen)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Wā Arāpia (Pāreina)',
         'Asia/Baku' => 'Wā Atepaihānia (Baku)',
         'Asia/Bangkok' => 'Wā Īniahaina (Pangakoko)',
-        'Asia/Barnaul' => 'Rūhia Wā (Barnaul)',
+        'Asia/Barnaul' => 'Wā Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Wā Uropi Rāwhiti (Beirut)',
         'Asia/Bishkek' => 'Wā Kikitānga (Bishkek)',
         'Asia/Brunei' => 'Wā Poronai Darussalam',
         'Asia/Calcutta' => 'Wā Īnia (Kolkata)',
+        'Asia/Kolkata' => 'Wā Īnia (Kolkata)',
         'Asia/Chita' => 'Wā Yakutsk (Chita)',
         'Asia/Colombo' => 'Wā Īnia (Colombo)',
         'Asia/Damascus' => 'Wā Uropi Rāwhiti (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Wā Uropi Rāwhiti (Kāha)',
         'Asia/Hebron' => 'Wā Uropi Rāwhiti (Hebron)',
         'Asia/Hong_Kong' => 'Wā Hongipua',
-        'Asia/Hovd' => 'Wā Hovd',
+        'Asia/Hovd' => 'Wā Hovd (Khovd)',
         'Asia/Irkutsk' => 'Wā Irkutsk',
         'Asia/Jakarta' => 'Wā Initonīhia ki te uru (Tiakāta)',
         'Asia/Jayapura' => 'Wā Initonīhia ki te rāwhiti (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Rūhia Wā (Kamchatka)',
         'Asia/Karachi' => 'Wā Pakitāne (Karachi)',
         'Asia/Katmandu' => 'Wā Nepōra (Katamarū)',
+        'Asia/Kathmandu' => 'Wā Nepōra (Katamarū)',
         'Asia/Khandyga' => 'Wā Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Wā Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Wā Mareia (Kuara Rūpa)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Wā Whanga Arowhānui (Muscat)',
         'Asia/Nicosia' => 'Wā Uropi Rāwhiti (Nicosia)',
         'Asia/Novokuznetsk' => 'Wā Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Wā Novosibirsk',
+        'Asia/Novosibirsk' => 'Wā Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Wā Omsk',
         'Asia/Oral' => 'Wā Katatānga (Oral)',
         'Asia/Phnom_Penh' => 'Wā Īniahaina (Penoma Pena)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Wā Katatānga (Qostanay)',
         'Asia/Qyzylorda' => 'Wā Katatānga (Qyzylorda)',
         'Asia/Rangoon' => 'Wā Pēma (Yangon)',
+        'Asia/Yangon' => 'Wā Pēma (Yangon)',
         'Asia/Riyadh' => 'Wā Arāpia (Riata)',
         'Asia/Saigon' => 'Wā Īniahaina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Wā Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Wā Īniahaina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Wā Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Wā Uhipeketāne (Samarkand)',
         'Asia/Seoul' => 'Wā Kōrea (Houra)',
         'Asia/Shanghai' => 'Wā Haina (Hangahai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Wā Irāna (Terāna)',
         'Asia/Thimphu' => 'Wā Pūtana (Thimphu)',
         'Asia/Tokyo' => 'Wā Hapani (Tōkio)',
-        'Asia/Tomsk' => 'Rūhia Wā (Tomsk)',
+        'Asia/Tomsk' => 'Wā Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Wā Ulaanbaatar',
-        'Asia/Urumqi' => 'Haina Wā (Urumqi)',
+        'Asia/Urumqi' => 'Haina Wā (Ürümqi)',
         'Asia/Ust-Nera' => 'Wā Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Wā Īniahaina (Vientiane)',
         'Asia/Vladivostok' => 'Wā Vladivostok',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Wā Āmenia (Yerevan)',
         'Atlantic/Azores' => 'Wā Azores',
         'Atlantic/Bermuda' => 'Wā Ranatiki (Pāmura)',
-        'Atlantic/Canary' => 'Wā Uropi Uru (Canary)',
+        'Atlantic/Canary' => 'Wā Uropi Uru (Canarias)',
         'Atlantic/Cape_Verde' => 'Wā o Te Kūrae Matomato',
         'Atlantic/Faeroe' => 'Wā Uropi Uru (Faroe)',
+        'Atlantic/Faroe' => 'Wā Uropi Uru (Faroe)',
         'Atlantic/Madeira' => 'Wā Uropi Uru (Madeira)',
         'Atlantic/Reykjavik' => 'Wā Toharite Kiriwīti (Reykjavik)',
         'Atlantic/South_Georgia' => 'Wā Hōria ki te Tonga',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Wā Aonui Kōtuitui',
         'Europe/Amsterdam' => 'Wā Uropi Waenga (Pāpuniāmita)',
         'Europe/Andorra' => 'Wā Uropi Waenga (Anatōra)',
-        'Europe/Astrakhan' => 'Wā Mohikau (Astrakhan)',
+        'Europe/Astrakhan' => 'Rūhia Wā (Astrakhan)',
         'Europe/Athens' => 'Wā Uropi Rāwhiti (Ātene)',
         'Europe/Belgrade' => 'Wā Uropi Waenga (Belgrade)',
         'Europe/Berlin' => 'Wā Uropi Waenga (Pearīni)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Wā Uropi Waenga (Paruhi)',
         'Europe/Bucharest' => 'Wā Uropi Rāwhiti (Bucharest)',
         'Europe/Budapest' => 'Wā Uropi Waenga (Putapēhi)',
-        'Europe/Busingen' => 'Wā Uropi Waenga (Busingen)',
-        'Europe/Chisinau' => 'Wā Uropi Rāwhiti (Chisinau)',
+        'Europe/Busingen' => 'Wā Uropi Waenga (Büsingen)',
+        'Europe/Chisinau' => 'Wā Uropi Rāwhiti (Chișinău)',
         'Europe/Copenhagen' => 'Wā Uropi Waenga (Kopeheikana)',
         'Europe/Dublin' => 'Wā Toharite Kiriwīti (Tapurini)',
         'Europe/Gibraltar' => 'Wā Uropi Waenga (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Wā Toharite Kiriwīti (Jersey)',
         'Europe/Kaliningrad' => 'Wā Uropi Rāwhiti (Kaliningrad)',
         'Europe/Kiev' => 'Wā Uropi Rāwhiti (Kyiv)',
-        'Europe/Kirov' => 'Rūhia Wā (Kirov)',
+        'Europe/Kyiv' => 'Wā Uropi Rāwhiti (Kyiv)',
+        'Europe/Kirov' => 'Wā Mohikau (Kirov)',
         'Europe/Lisbon' => 'Wā Uropi Uru (Rīpene)',
         'Europe/Ljubljana' => 'Wā Uropi Waenga (Ljubljana)',
         'Europe/London' => 'Wā Toharite Kiriwīti (Rānana)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Rūhia Wā (Samara)',
         'Europe/San_Marino' => 'Wā Uropi Waenga (Hana Marino)',
         'Europe/Sarajevo' => 'Wā Uropi Waenga (Sarajevo)',
-        'Europe/Saratov' => 'Wā Mohikau (Saratov)',
+        'Europe/Saratov' => 'Rūhia Wā (Saratov)',
         'Europe/Simferopol' => 'Wā Mohikau (Simferopol)',
         'Europe/Skopje' => 'Wā Uropi Waenga (Skopje)',
         'Europe/Sofia' => 'Wā Uropi Rāwhiti (Sofia)',
         'Europe/Stockholm' => 'Wā Uropi Waenga (Tokoomo)',
         'Europe/Tallinn' => 'Wā Uropi Rāwhiti (Tallinn)',
-        'Europe/Tirane' => 'Wā Uropi Waenga (Tirane)',
-        'Europe/Ulyanovsk' => 'Wā Mohikau (Ulyanovsk)',
+        'Europe/Tirane' => 'Wā Uropi Waenga (Tirana)',
+        'Europe/Ulyanovsk' => 'Rūhia Wā (Ulyanovsk)',
         'Europe/Vaduz' => 'Wā Uropi Waenga (Vaduz)',
         'Europe/Vatican' => 'Wā Uropi Waenga (Te Poho-o-Pita)',
         'Europe/Vienna' => 'Wā Uropi Waenga (Whiena)',
         'Europe/Vilnius' => 'Wā Uropi Rāwhiti (Vilnius)',
-        'Europe/Volgograd' => 'Wā Volgograd',
+        'Europe/Volgograd' => 'Wā Mohikau (Volgograd)',
         'Europe/Warsaw' => 'Wā Uropi Waenga (Warsaw)',
         'Europe/Zagreb' => 'Wā Uropi Waenga (Zagreb)',
         'Europe/Zurich' => 'Wā Uropi Waenga (Hūrika)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Wā o Ngā Moutere Kokohi',
         'Indian/Comoro' => 'Wā o Āwherika ki te rāwhiti (Komoro)',
         'Indian/Kerguelen' => 'Wā Wīwī o Te Tonga me te Kōpakatanga ki te Tonga (Kerguelen)',
-        'Indian/Mahe' => 'Wā Heikere (Mahe)',
+        'Indian/Mahe' => 'Wā Heikere (Mahé)',
         'Indian/Maldives' => 'Wā Māratiri',
         'Indian/Mauritius' => 'Wā Marihi',
         'Indian/Mayotte' => 'Wā o Āwherika ki te rāwhiti (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Wā Rēkohu',
         'Pacific/Easter' => 'Wā ki te Moutere o Aranga (Easter)',
         'Pacific/Efate' => 'Wā Whenuatū (Efate)',
-        'Pacific/Enderbury' => 'Wā o Ngā Moutere Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Wā o Ngā Moutere Phoenix (Canton)',
+        'Pacific/Kanton' => 'Wā o Ngā Moutere Phoenix (Canton)',
         'Pacific/Fakaofo' => 'Wā Tokerau (Fakaofo)',
         'Pacific/Fiji' => 'Wā Whītī',
         'Pacific/Funafuti' => 'Wā Tūwaru (Funafuti)',
-        'Pacific/Galapagos' => 'Wā Galapagos',
+        'Pacific/Galapagos' => 'Wā Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Wā Gambier',
         'Pacific/Guadalcanal' => 'Wā o Ngā Motu Horomona (Guadalcanal)',
         'Pacific/Guam' => 'Wā Chamorro Arowhānui (Kuama)',
-        'Pacific/Honolulu' => 'Wā Hawaii-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Wā Arowhānui Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Wā o Ngā Mouter o Te Raina (Kiritimati)',
         'Pacific/Kosrae' => 'Wā Kosrae',
         'Pacific/Kwajalein' => 'Wā o Ngā Motu Māhara (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Wā Pārau',
         'Pacific/Pitcairn' => 'Wā Pitcairn',
         'Pacific/Ponape' => 'Wā Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Wā Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Wā Papua Nūkini (Pota Moahipi)',
         'Pacific/Rarotonga' => 'Wā Kuki Airani (Rarotonga)',
         'Pacific/Saipan' => 'Wā Chamorro Arowhānui (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Wā Kiripati (Tarawa)',
         'Pacific/Tongatapu' => 'Wā Tonga (Tongatapu)',
         'Pacific/Truk' => 'Wā Chuuk',
+        'Pacific/Chuuk' => 'Wā Chuuk',
         'Pacific/Wake' => 'Wā o Te Motu Wake',
         'Pacific/Wallis' => 'Wā Wārihi me Whutuna',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mk.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Источноафриканско време (Адис Абеба)',
         'Africa/Algiers' => 'Средноевропско време (Алжир)',
         'Africa/Asmera' => 'Источноафриканско време (Асмара)',
+        'Africa/Asmara' => 'Источноафриканско време (Асмара)',
         'Africa/Bamako' => 'Средно време по Гринич (Бамако)',
         'Africa/Bangui' => 'Западноафриканско време (Банги)',
         'Africa/Banjul' => 'Средно време по Гринич (Банџул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Време во Колумбија (Богота)',
         'America/Boise' => 'Планинско време во Северна Америка (Бојзи)',
         'America/Buenos_Aires' => 'Време во Аргентина (Буенос Аирес)',
+        'America/Argentina/Buenos_Aires' => 'Време во Аргентина (Буенос Аирес)',
         'America/Cambridge_Bay' => 'Планинско време во Северна Америка (Кембриџ Беј)',
         'America/Campo_Grande' => 'Време во Амазон (Кампо Гранде)',
         'America/Cancun' => 'Источно време во Северна Америка (Канкун)',
         'America/Caracas' => 'Време во Венецуела (Каракас)',
         'America/Catamarca' => 'Време во Аргентина (Катамарка)',
+        'America/Argentina/Catamarca' => 'Време во Аргентина (Катамарка)',
         'America/Cayenne' => 'Време во Француска Гвајана (Кајена)',
         'America/Cayman' => 'Источно време во Северна Америка (Кајмански Острови)',
         'America/Chicago' => 'Централно време во Северна Америка (Чикаго)',
         'America/Chihuahua' => 'Централно време во Северна Америка (Чивава)',
         'America/Ciudad_Juarez' => 'Планинско време во Северна Америка (Сиудад Хуарез)',
-        'America/Coral_Harbour' => 'Источно време во Северна Америка (Корал Харбор)',
+        'America/Coral_Harbour' => 'Источно време во Северна Америка (Атикокан)',
+        'America/Atikokan' => 'Источно време во Северна Америка (Атикокан)',
         'America/Cordoba' => 'Време во Аргентина (Кордоба)',
+        'America/Argentina/Cordoba' => 'Време во Аргентина (Кордоба)',
         'America/Costa_Rica' => 'Централно време во Северна Америка (Костарика)',
+        'America/Coyhaique' => 'Време во Чиле (Којајке)',
         'America/Creston' => 'Планинско време во Северна Америка (Крестон)',
         'America/Cuiaba' => 'Време во Амазон (Кујаба)',
         'America/Curacao' => 'Атлантско време (Курасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Време во Бразилија (Форталеза)',
         'America/Glace_Bay' => 'Атлантско време (Глејс Беј)',
         'America/Godthab' => 'Време во Гренланд (Нук)',
+        'America/Nuuk' => 'Време во Гренланд (Нук)',
         'America/Goose_Bay' => 'Атлантско време (Гус Беј)',
         'America/Grand_Turk' => 'Источно време во Северна Америка (Гранд Турк)',
         'America/Grenada' => 'Атлантско време (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Источно време во Северна Америка (Венсен, Индијана)',
         'America/Indiana/Winamac' => 'Источно време во Северна Америка (Винамак, Индијана)',
         'America/Indianapolis' => 'Источно време во Северна Америка (Индијанаполис)',
+        'America/Indiana/Indianapolis' => 'Источно време во Северна Америка (Индијанаполис)',
         'America/Inuvik' => 'Планинско време во Северна Америка (Инувик)',
         'America/Iqaluit' => 'Источно време во Северна Америка (Икалуит)',
         'America/Jamaica' => 'Источно време во Северна Америка (Јамајка)',
         'America/Jujuy' => 'Време во Аргентина (Хухуј)',
+        'America/Argentina/Jujuy' => 'Време во Аргентина (Хухуј)',
         'America/Juneau' => 'Време во Алјаска (Џуно)',
         'America/Kentucky/Monticello' => 'Источно време во Северна Америка (Монтичело, Кентаки)',
         'America/Kralendijk' => 'Атлантско време (Кралендајк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Време во Перу (Лима)',
         'America/Los_Angeles' => 'Пацифичко време во Северна Америка (Лос Анџелес)',
         'America/Louisville' => 'Источно време во Северна Америка (Луизвил)',
+        'America/Kentucky/Louisville' => 'Источно време во Северна Америка (Луизвил)',
         'America/Lower_Princes' => 'Атлантско време (Долен Принс квортр)',
         'America/Maceio' => 'Време во Бразилија (Масејо)',
         'America/Managua' => 'Централно време во Северна Америка (Манагва)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Централно време во Северна Америка (Матаморос)',
         'America/Mazatlan' => 'Пацифичко време во Мексико (Мазатлан)',
         'America/Mendoza' => 'Време во Аргентина (Мендоза)',
+        'America/Argentina/Mendoza' => 'Време во Аргентина (Мендоза)',
         'America/Menominee' => 'Централно време во Северна Америка (Меномини)',
         'America/Merida' => 'Централно време во Северна Америка (Мерида)',
         'America/Metlakatla' => 'Време во Алјаска (Метлакатла)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Арапско време (Аден)',
         'Asia/Almaty' => 'Време во Казахстан (Алмати)',
         'Asia/Amman' => 'Источноевропско време (Аман)',
-        'Asia/Anadyr' => 'Анадирско време',
+        'Asia/Anadyr' => 'Време во Русија (Анадир)',
         'Asia/Aqtau' => 'Време во Казахстан (Актау)',
         'Asia/Aqtobe' => 'Време во Казахстан (Актобе)',
         'Asia/Ashgabat' => 'Време во Туркменистан (Ашкабад)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Арапско време (Бахреин)',
         'Asia/Baku' => 'Време во Азербејџан (Баку)',
         'Asia/Bangkok' => 'Време во Индокина (Бангкок)',
-        'Asia/Barnaul' => 'Време во Русија (Барнаул)',
+        'Asia/Barnaul' => 'Време во Краснојарск (Барнаул)',
         'Asia/Beirut' => 'Источноевропско време (Бејрут)',
         'Asia/Bishkek' => 'Време во Киргистан (Бишкек)',
         'Asia/Brunei' => 'Време во Брунеј Дарусалам',
         'Asia/Calcutta' => 'Време во Индија (Калкута)',
+        'Asia/Kolkata' => 'Време во Индија (Калкута)',
         'Asia/Chita' => 'Време во Јакутск (Чита)',
         'Asia/Colombo' => 'Време во Индија (Коломбо)',
         'Asia/Damascus' => 'Источноевропско време (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Време во Русија (Камчатка)',
         'Asia/Karachi' => 'Време во Пакистан (Карачи)',
         'Asia/Katmandu' => 'Време во Непал (Катманду)',
+        'Asia/Kathmandu' => 'Време во Непал (Катманду)',
         'Asia/Khandyga' => 'Време во Јакутск (Хандига)',
         'Asia/Krasnoyarsk' => 'Време во Краснојарск',
         'Asia/Kuala_Lumpur' => 'Време во Малезија (Куала Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Време во Персиски Залив (Мускат)',
         'Asia/Nicosia' => 'Источноевропско време (Никозија)',
         'Asia/Novokuznetsk' => 'Време во Краснојарск (Новокузњецк)',
-        'Asia/Novosibirsk' => 'Време во Новосибирск',
+        'Asia/Novosibirsk' => 'Време во Краснојарск (Новосибирск)',
         'Asia/Omsk' => 'Време во Омск',
         'Asia/Oral' => 'Време во Казахстан (Орал)',
         'Asia/Phnom_Penh' => 'Време во Индокина (Пном Пен)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Време во Казахстан (Костанај)',
         'Asia/Qyzylorda' => 'Време во Казахстан (Кизилорда)',
         'Asia/Rangoon' => 'Време во Мјанмар (Рангун)',
+        'Asia/Yangon' => 'Време во Мјанмар (Рангун)',
         'Asia/Riyadh' => 'Арапско време (Ријад)',
         'Asia/Saigon' => 'Време во Индокина (Хо Ши Мин)',
-        'Asia/Sakhalin' => 'Време во Сакалин',
+        'Asia/Ho_Chi_Minh' => 'Време во Индокина (Хо Ши Мин)',
+        'Asia/Sakhalin' => 'Време во Магадан (Сакалин)',
         'Asia/Samarkand' => 'Време во Узбекистан (Самарканд)',
         'Asia/Seoul' => 'Време во Кореја (Сеул)',
         'Asia/Shanghai' => 'Време во Кина (Шангај)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Време во Иран (Техеран)',
         'Asia/Thimphu' => 'Време во Бутан (Тимпу)',
         'Asia/Tokyo' => 'Време во Јапонија (Токио)',
-        'Asia/Tomsk' => 'Време во Русија (Томск)',
+        'Asia/Tomsk' => 'Време во Краснојарск (Томск)',
         'Asia/Ulaanbaatar' => 'Време во Улан Батор',
         'Asia/Urumqi' => 'Време во Кина (Урумчи)',
         'Asia/Ust-Nera' => 'Време во Владивосток (Уст-Нера)',
@@ -296,9 +311,10 @@
         'Atlantic/Canary' => 'Западноевропско време (Канарски Острови)',
         'Atlantic/Cape_Verde' => 'Време во Кабо Верде',
         'Atlantic/Faeroe' => 'Западноевропско време (Фарски Острови)',
+        'Atlantic/Faroe' => 'Западноевропско време (Фарски Острови)',
         'Atlantic/Madeira' => 'Западноевропско време (Мадеира)',
         'Atlantic/Reykjavik' => 'Средно време по Гринич (Рејкјавик)',
-        'Atlantic/South_Georgia' => 'Време во Јужна Грузија (Јужна Џорџија)',
+        'Atlantic/South_Georgia' => 'Време во Јужна Џорџија',
         'Atlantic/St_Helena' => 'Средно време по Гринич (Света Елена)',
         'Atlantic/Stanley' => 'Време во Фолкландски Острови (Стенли)',
         'Australia/Adelaide' => 'Време во Централна Австралија (Аделаида)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Координирано универзално време',
         'Europe/Amsterdam' => 'Средноевропско време (Амстердам)',
         'Europe/Andorra' => 'Средноевропско време (Андора)',
-        'Europe/Astrakhan' => 'Време во Москва (Астрахан)',
+        'Europe/Astrakhan' => 'Самара време (Астрахан)',
         'Europe/Athens' => 'Источноевропско време (Атина)',
         'Europe/Belgrade' => 'Средноевропско време (Белград)',
         'Europe/Berlin' => 'Средноевропско време (Берлин)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Средно време по Гринич (Гернзи)',
         'Europe/Helsinki' => 'Источноевропско време (Хелсинки)',
         'Europe/Isle_of_Man' => 'Средно време по Гринич (Остров Ман)',
-        'Europe/Istanbul' => 'Време во Турција (Истанбул)',
+        'Europe/Istanbul' => 'Турција време (Истанбул)',
         'Europe/Jersey' => 'Средно време по Гринич (Џерзи)',
         'Europe/Kaliningrad' => 'Источноевропско време (Калининград)',
         'Europe/Kiev' => 'Источноевропско време (Киев)',
-        'Europe/Kirov' => 'Време во Русија (Киров)',
+        'Europe/Kyiv' => 'Источноевропско време (Киев)',
+        'Europe/Kirov' => 'Време во Москва (Киров)',
         'Europe/Lisbon' => 'Западноевропско време (Лисабон)',
         'Europe/Ljubljana' => 'Средноевропско време (Љубљана)',
         'Europe/London' => 'Средно време по Гринич (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Самара време',
         'Europe/San_Marino' => 'Средноевропско време (Сан Марино)',
         'Europe/Sarajevo' => 'Средноевропско време (Сараево)',
-        'Europe/Saratov' => 'Време во Москва (Саратов)',
+        'Europe/Saratov' => 'Самара време (Саратов)',
         'Europe/Simferopol' => 'Време во Москва (Симферопол)',
         'Europe/Skopje' => 'Средноевропско време (Скопје)',
         'Europe/Sofia' => 'Источноевропско време (Софија)',
         'Europe/Stockholm' => 'Средноевропско време (Стокхолм)',
         'Europe/Tallinn' => 'Источноевропско време (Талин)',
         'Europe/Tirane' => 'Средноевропско време (Тирана)',
-        'Europe/Ulyanovsk' => 'Време во Москва (Улјановск)',
+        'Europe/Ulyanovsk' => 'Самара време (Улјановск)',
         'Europe/Vaduz' => 'Средноевропско време (Вадуц)',
         'Europe/Vatican' => 'Средноевропско време (Ватикан)',
         'Europe/Vienna' => 'Средноевропско време (Виена)',
         'Europe/Vilnius' => 'Источноевропско време (Вилнус)',
-        'Europe/Volgograd' => 'Време во Волгоград',
+        'Europe/Volgograd' => 'Време во Москва (Волгоград)',
         'Europe/Warsaw' => 'Средноевропско време (Варшава)',
         'Europe/Zagreb' => 'Средноевропско време (Загреб)',
         'Europe/Zurich' => 'Средноевропско време (Цирих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Време во Чатам',
         'Pacific/Easter' => 'Време во Велигденски Остров',
         'Pacific/Efate' => 'Време во Вануату (Ефате)',
-        'Pacific/Enderbury' => 'Време во Островите Феникс (Ендербери)',
+        'Pacific/Enderbury' => 'Време во Островите Феникс (Кантон)',
+        'Pacific/Kanton' => 'Време во Островите Феникс (Кантон)',
         'Pacific/Fakaofo' => 'Време во Токелау (Факаофо)',
         'Pacific/Fiji' => 'Време во Фиџи',
         'Pacific/Funafuti' => 'Време во Тувалу (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Време во Гамбе (Гамбије)',
         'Pacific/Guadalcanal' => 'Време во Соломонски Острови (Гвадалканал)',
         'Pacific/Guam' => 'Време во Чаморо (Гвам)',
-        'Pacific/Honolulu' => 'Време во Хаваи - Алеутски острови (Хонолулу)',
+        'Pacific/Honolulu' => 'Стандардно време во Хаваи - Алеутски острови (Хонолулу)',
         'Pacific/Kiritimati' => 'Време во Линиски Острови (Киритимати)',
         'Pacific/Kosrae' => 'Време во Косра (Косрае)',
         'Pacific/Kwajalein' => 'Време во Маршалски Острови (Кваџалејн)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Време во Палау',
         'Pacific/Pitcairn' => 'Време во Питкерн (Питкернски Острови)',
         'Pacific/Ponape' => 'Време во Понапе (Понпеј)',
+        'Pacific/Pohnpei' => 'Време во Понапе (Понпеј)',
         'Pacific/Port_Moresby' => 'Време во Папуа Нова Гвинеја (Порт Морсби)',
         'Pacific/Rarotonga' => 'Време во Кукови Острови (Раротонга)',
         'Pacific/Saipan' => 'Време во Чаморо (Сајпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Време во Гилбертови Острови (Тарава)',
         'Pacific/Tongatapu' => 'Време во Тонга (Тонгатапу)',
         'Pacific/Truk' => 'Време во Чуук (Чук)',
+        'Pacific/Chuuk' => 'Време во Чуук (Чук)',
         'Pacific/Wake' => 'Време во Островот Вејк',
         'Pacific/Wallis' => 'Време во Валис и Футуна',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ml.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ml.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ml.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ml.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'കിഴക്കൻ ആഫ്രിക്ക സമയം (അഡിസ് അബാബ)',
         'Africa/Algiers' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (അൾജിയേഴ്‌സ്)',
         'Africa/Asmera' => 'കിഴക്കൻ ആഫ്രിക്ക സമയം (അസ്‍മാര)',
+        'Africa/Asmara' => 'കിഴക്കൻ ആഫ്രിക്ക സമയം (അസ്‍മാര)',
         'Africa/Bamako' => 'ഗ്രീൻവിച്ച് മീൻ സമയം (ബമാകോ)',
         'Africa/Bangui' => 'പടിഞ്ഞാറൻ ആഫ്രിക്ക സമയം (ബംഗുയി)',
         'Africa/Banjul' => 'ഗ്രീൻവിച്ച് മീൻ സമയം (ബഞ്ചുൽ)',
@@ -69,111 +70,121 @@
         'America/Aruba' => 'അറ്റ്‌ലാന്റിക് സമയം (അറൂബ)',
         'America/Asuncion' => 'പരാഗ്വേ സമയം (അസൻ‌ഷ്യൻ‌)',
         'America/Bahia' => 'ബ്രസീലിയ സമയം (ബഹിയ)',
-        'America/Bahia_Banderas' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (ബഹിയ ബൻഡാരസ്)',
+        'America/Bahia_Banderas' => 'സെൻട്രൽ സമയം (ബഹിയ ബൻഡാരസ്)',
         'America/Barbados' => 'അറ്റ്‌ലാന്റിക് സമയം (ബാർബഡോസ്)',
         'America/Belem' => 'ബ്രസീലിയ സമയം (ബെലം)',
-        'America/Belize' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (ബെലീസ്)',
+        'America/Belize' => 'സെൻട്രൽ സമയം (ബെലീസ്)',
         'America/Blanc-Sablon' => 'അറ്റ്‌ലാന്റിക് സമയം (ബ്ലാങ്ക് സാബ്ലോൺ)',
         'America/Boa_Vista' => 'ആമസോൺ സമയം (ബോവ വിസ്റ്റ)',
         'America/Bogota' => 'കൊളംബിയ സമയം (ബൊഗോട്ട)',
-        'America/Boise' => 'വടക്കെ അമേരിക്കൻ മൌണ്ടൻ സമയം (ബൊയ്സി)',
+        'America/Boise' => 'മൗണ്ടൻ സമയം (ബൊയ്സി)',
         'America/Buenos_Aires' => 'അർജന്റീന സമയം (ബ്യൂണസ് ഐറിസ്)',
-        'America/Cambridge_Bay' => 'വടക്കെ അമേരിക്കൻ മൌണ്ടൻ സമയം (കേംബ്രിഡ്‌ജ് ബേ)',
+        'America/Argentina/Buenos_Aires' => 'അർജന്റീന സമയം (ബ്യൂണസ് ഐറിസ്)',
+        'America/Cambridge_Bay' => 'മൗണ്ടൻ സമയം (കേംബ്രിഡ്‌ജ് ബേ)',
         'America/Campo_Grande' => 'ആമസോൺ സമയം (ക്യാമ്പോ ഗ്രാൻഡെ)',
-        'America/Cancun' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (കാൻകൂൺ)',
+        'America/Cancun' => 'ഈസ്റ്റേൺ സമയം (കാൻകൂൺ)',
         'America/Caracas' => 'വെനിസ്വേല സമയം (കരാക്കസ്)',
         'America/Catamarca' => 'അർജന്റീന സമയം (‍ക്യാറ്റമാർക്ക)',
+        'America/Argentina/Catamarca' => 'അർജന്റീന സമയം (‍ക്യാറ്റമാർക്ക)',
         'America/Cayenne' => 'ഫ്രഞ്ച് ഗയാന സമയം (കയീൻ‌)',
-        'America/Cayman' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (കേമാൻ)',
-        'America/Chicago' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (ചിക്കാഗോ)',
-        'America/Chihuahua' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (ചിഹ്വാഹ)',
-        'America/Ciudad_Juarez' => 'വടക്കെ അമേരിക്കൻ മൌണ്ടൻ സമയം (സിയുഡാഡ് ഹുവാരസ്)',
-        'America/Coral_Harbour' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (ഏറ്റികോക്കൺ)',
+        'America/Cayman' => 'ഈസ്റ്റേൺ സമയം (കേമാൻ)',
+        'America/Chicago' => 'സെൻട്രൽ സമയം (ചിക്കാഗോ)',
+        'America/Chihuahua' => 'സെൻട്രൽ സമയം (ചിഹ്വാഹ)',
+        'America/Ciudad_Juarez' => 'മൗണ്ടൻ സമയം (സിയുഡാഡ് ഹുവാരസ്)',
+        'America/Coral_Harbour' => 'ഈസ്റ്റേൺ സമയം (ഏറ്റികോക്കൺ)',
+        'America/Atikokan' => 'ഈസ്റ്റേൺ സമയം (ഏറ്റികോക്കൺ)',
         'America/Cordoba' => 'അർജന്റീന സമയം (കോർഡോബ)',
-        'America/Costa_Rica' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (കോസ്റ്റ റിക്ക)',
-        'America/Creston' => 'വടക്കെ അമേരിക്കൻ മൌണ്ടൻ സമയം (ക്രെസ്റ്റൺ)',
+        'America/Argentina/Cordoba' => 'അർജന്റീന സമയം (കോർഡോബ)',
+        'America/Costa_Rica' => 'സെൻട്രൽ സമയം (കോസ്റ്റ റിക്ക)',
+        'America/Coyhaique' => 'ചിലി സമയം (കൊയൈകേ)',
+        'America/Creston' => 'മൗണ്ടൻ സമയം (ക്രെസ്റ്റൺ)',
         'America/Cuiaba' => 'ആമസോൺ സമയം (കുയ്‌ബ)',
         'America/Curacao' => 'അറ്റ്‌ലാന്റിക് സമയം (കുറാക്കാവോ)',
         'America/Danmarkshavn' => 'ഗ്രീൻവിച്ച് മീൻ സമയം (ഡാൻമാർക്ക്ഷാവ്ൻ)',
         'America/Dawson' => 'യൂക്കോൺ സമയം (ഡോവ്സൺ)',
-        'America/Dawson_Creek' => 'വടക്കെ അമേരിക്കൻ മൌണ്ടൻ സമയം (ഡോവ്സൺ ക്രീക്ക്)',
-        'America/Denver' => 'വടക്കെ അമേരിക്കൻ മൌണ്ടൻ സമയം (ഡെൻ‌വർ)',
-        'America/Detroit' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (ഡെട്രോയിറ്റ്)',
+        'America/Dawson_Creek' => 'മൗണ്ടൻ സമയം (ഡോവ്സൺ ക്രീക്ക്)',
+        'America/Denver' => 'മൗണ്ടൻ സമയം (ഡെൻ‌വർ)',
+        'America/Detroit' => 'ഈസ്റ്റേൺ സമയം (ഡെട്രോയിറ്റ്)',
         'America/Dominica' => 'അറ്റ്‌ലാന്റിക് സമയം (ഡൊമിനിക്ക)',
-        'America/Edmonton' => 'വടക്കെ അമേരിക്കൻ മൌണ്ടൻ സമയം (എഡ്മോൺടൺ)',
+        'America/Edmonton' => 'മൗണ്ടൻ സമയം (എഡ്മോൺടൺ)',
         'America/Eirunepe' => 'എയ്ക്കർ സമയം (യെറുനീപ്പെ)',
-        'America/El_Salvador' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (എൽ സാൽ‌വദോർ)',
-        'America/Fort_Nelson' => 'വടക്കെ അമേരിക്കൻ മൌണ്ടൻ സമയം (ഫോർട്ട് നെൽസൺ)',
+        'America/El_Salvador' => 'സെൻട്രൽ സമയം (എൽ സാൽ‌വദോർ)',
+        'America/Fort_Nelson' => 'മൗണ്ടൻ സമയം (ഫോർട്ട് നെൽസൺ)',
         'America/Fortaleza' => 'ബ്രസീലിയ സമയം (ഫോർട്ടലീസ)',
         'America/Glace_Bay' => 'അറ്റ്‌ലാന്റിക് സമയം (ഗ്ലെയ്സ് ബേ)',
         'America/Godthab' => 'ഗ്രീൻലൻഡ് സമയം (നൂക്ക്)',
+        'America/Nuuk' => 'ഗ്രീൻലൻഡ് സമയം (നൂക്ക്)',
         'America/Goose_Bay' => 'അറ്റ്‌ലാന്റിക് സമയം (ഗൂസ് ബേ)',
-        'America/Grand_Turk' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (ഗ്രാൻഡ് ടർക്ക്)',
+        'America/Grand_Turk' => 'ഈസ്റ്റേൺ സമയം (ഗ്രാൻഡ് ടർക്ക്)',
         'America/Grenada' => 'അറ്റ്‌ലാന്റിക് സമയം (ഗ്രനേഡ)',
         'America/Guadeloupe' => 'അറ്റ്‌ലാന്റിക് സമയം (ഗ്വാഡലൂപ്പ്)',
-        'America/Guatemala' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (ഗ്വാട്ടിമാല)',
+        'America/Guatemala' => 'സെൻട്രൽ സമയം (ഗ്വാട്ടിമാല)',
         'America/Guayaquil' => 'ഇക്വഡോർ സമയം (ഗുവായക്വിൽ)',
         'America/Guyana' => 'ഗയാന സമയം',
         'America/Halifax' => 'അറ്റ്‌ലാന്റിക് സമയം (ഹാലിഫാക്സ്)',
         'America/Havana' => 'ക്യൂബ സമയം (ഹവാന)',
         'America/Hermosillo' => 'മെക്സിക്കൻ പസഫിക് സമയം (ഹെർമോസില്ലോ)',
-        'America/Indiana/Knox' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (നോക്സ്, ഇൻഡ്യാന)',
-        'America/Indiana/Marengo' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (മരെങ്കോ, ഇൻഡ്യാന)',
-        'America/Indiana/Petersburg' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (പീറ്റേഴ്സ്ബർഗ്, ഇൻഡ്യാന)',
-        'America/Indiana/Tell_City' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (റ്റെൽ സിറ്റി, ഇൻഡ്യാന)',
-        'America/Indiana/Vevay' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (വിവെയ്, ഇൻഡ്യാന)',
-        'America/Indiana/Vincennes' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (വിൻസെൻസ്, ഇൻഡ്യാന)',
-        'America/Indiana/Winamac' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (വിനാമാക്, ഇൻഡ്യാന)',
-        'America/Indianapolis' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (ഇൻഡ്യാനാപോലീസ്)',
-        'America/Inuvik' => 'വടക്കെ അമേരിക്കൻ മൌണ്ടൻ സമയം (ഇനുവിക്)',
-        'America/Iqaluit' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (ഇഖാലിത്)',
-        'America/Jamaica' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (ജമൈക്ക)',
+        'America/Indiana/Knox' => 'സെൻട്രൽ സമയം (നോക്സ്, ഇൻഡ്യാന)',
+        'America/Indiana/Marengo' => 'ഈസ്റ്റേൺ സമയം (മരെങ്കോ, ഇൻഡ്യാന)',
+        'America/Indiana/Petersburg' => 'ഈസ്റ്റേൺ സമയം (പീറ്റേഴ്സ്ബർഗ്, ഇൻഡ്യാന)',
+        'America/Indiana/Tell_City' => 'സെൻട്രൽ സമയം (റ്റെൽ സിറ്റി, ഇൻഡ്യാന)',
+        'America/Indiana/Vevay' => 'ഈസ്റ്റേൺ സമയം (വിവെയ്, ഇൻഡ്യാന)',
+        'America/Indiana/Vincennes' => 'ഈസ്റ്റേൺ സമയം (വിൻസെൻസ്, ഇൻഡ്യാന)',
+        'America/Indiana/Winamac' => 'ഈസ്റ്റേൺ സമയം (വിനാമാക്, ഇൻഡ്യാന)',
+        'America/Indianapolis' => 'ഈസ്റ്റേൺ സമയം (ഇൻഡ്യാനാപോളിസ്)',
+        'America/Indiana/Indianapolis' => 'ഈസ്റ്റേൺ സമയം (ഇൻഡ്യാനാപോളിസ്)',
+        'America/Inuvik' => 'മൗണ്ടൻ സമയം (ഇനുവിക്)',
+        'America/Iqaluit' => 'ഈസ്റ്റേൺ സമയം (ഇഖാലിത്)',
+        'America/Jamaica' => 'ഈസ്റ്റേൺ സമയം (ജമൈക്ക)',
         'America/Jujuy' => 'അർജന്റീന സമയം (ജുജുയ്)',
+        'America/Argentina/Jujuy' => 'അർജന്റീന സമയം (ജുജുയ്)',
         'America/Juneau' => 'അലാസ്‌ക സമയം (ജൂനോ)',
-        'America/Kentucky/Monticello' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (മോണ്ടിസെല്ലോ, കെന്റക്കി)',
+        'America/Kentucky/Monticello' => 'ഈസ്റ്റേൺ സമയം (മോണ്ടിസെല്ലോ, കെന്റക്കി)',
         'America/Kralendijk' => 'അറ്റ്‌ലാന്റിക് സമയം (കാർലൻഡിജെക്ക്)',
         'America/La_Paz' => 'ബൊളീവിയ സമയം (ലാ പാസ്)',
         'America/Lima' => 'പെറു സമയം (ലിമ)',
         'America/Los_Angeles' => 'വടക്കെ അമേരിക്കൻ പസഫിക് സമയം (ലോസ് എയ്ഞ്ചലസ്)',
-        'America/Louisville' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (ലൂയിസ്‌വില്ലെ)',
+        'America/Louisville' => 'ഈസ്റ്റേൺ സമയം (ലൂയിസ്‌വില്ലെ)',
+        'America/Kentucky/Louisville' => 'ഈസ്റ്റേൺ സമയം (ലൂയിസ്‌വില്ലെ)',
         'America/Lower_Princes' => 'അറ്റ്‌ലാന്റിക് സമയം (ലോവർ പ്രിൻസസ് ക്വാർട്ടർ)',
         'America/Maceio' => 'ബ്രസീലിയ സമയം (മാസിയോ)',
-        'America/Managua' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (മനാഗ്വ)',
+        'America/Managua' => 'സെൻട്രൽ സമയം (മനാഗ്വ)',
         'America/Manaus' => 'ആമസോൺ സമയം (മനൗസ്)',
         'America/Marigot' => 'അറ്റ്‌ലാന്റിക് സമയം (മാരിഗോ)',
         'America/Martinique' => 'അറ്റ്‌ലാന്റിക് സമയം (മാർട്ടിനിക്)',
-        'America/Matamoros' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (മറ്റാമൊറോസ്)',
+        'America/Matamoros' => 'സെൻട്രൽ സമയം (മറ്റാമൊറോസ്)',
         'America/Mazatlan' => 'മെക്സിക്കൻ പസഫിക് സമയം (മസറ്റ്‌ലാൻ)',
         'America/Mendoza' => 'അർജന്റീന സമയം (മെൻഡോസ)',
-        'America/Menominee' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (മെനോമിനീ)',
-        'America/Merida' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (മെരിഡ)',
+        'America/Argentina/Mendoza' => 'അർജന്റീന സമയം (മെൻഡോസ)',
+        'America/Menominee' => 'സെൻട്രൽ സമയം (മെനോമിനീ)',
+        'America/Merida' => 'സെൻട്രൽ സമയം (മെരിഡ)',
         'America/Metlakatla' => 'അലാസ്‌ക സമയം (മെഡ്‌ലകട്‌ലെ)',
-        'America/Mexico_City' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (മെക്സിക്കോ സിറ്റി)',
+        'America/Mexico_City' => 'സെൻട്രൽ സമയം (മെക്സിക്കോ സിറ്റി)',
         'America/Miquelon' => 'സെന്റ് പിയറി ആൻഡ് മിക്വലൻ സമയം',
         'America/Moncton' => 'അറ്റ്‌ലാന്റിക് സമയം (മോംഗ്‌ടൻ)',
-        'America/Monterrey' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (മോണ്ടെറി)',
+        'America/Monterrey' => 'സെൻട്രൽ സമയം (മോണ്ടെറി)',
         'America/Montevideo' => 'ഉറുഗ്വേ സമയം (മൊണ്ടെ‌വീഡിയോ)',
         'America/Montserrat' => 'അറ്റ്‌ലാന്റിക് സമയം (മൊണ്ടെസരത്ത്)',
-        'America/Nassau' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (നാസൗ)',
-        'America/New_York' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (ന്യൂയോർക്ക്)',
+        'America/Nassau' => 'ഈസ്റ്റേൺ സമയം (നാസൗ)',
+        'America/New_York' => 'ഈസ്റ്റേൺ സമയം (ന്യൂയോർക്ക്)',
         'America/Nome' => 'അലാസ്‌ക സമയം (നോം)',
         'America/Noronha' => 'ഫെർണാഡോ ഡി നൊറോൻഹ സമയം (നൊറോന)',
-        'America/North_Dakota/Beulah' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (ബ്യൂല, വടക്കൻ ഡെക്കോട്ട)',
-        'America/North_Dakota/Center' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (സെന്റർ, വടക്കൻ ഡെക്കോട്ട)',
-        'America/North_Dakota/New_Salem' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (ന്യൂ സെയ്‌ലം, വടക്കൻ ഡെക്കോട്ട)',
-        'America/Ojinaga' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (ഒജിൻഗ)',
-        'America/Panama' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (പനാമ)',
+        'America/North_Dakota/Beulah' => 'സെൻട്രൽ സമയം (ബ്യൂല, വടക്കൻ ഡെക്കോട്ട)',
+        'America/North_Dakota/Center' => 'സെൻട്രൽ സമയം (സെന്റർ, വടക്കൻ ഡെക്കോട്ട)',
+        'America/North_Dakota/New_Salem' => 'സെൻട്രൽ സമയം (ന്യൂ സെയ്‌ലം, വടക്കൻ ഡെക്കോട്ട)',
+        'America/Ojinaga' => 'സെൻട്രൽ സമയം (ഒജിൻഗ)',
+        'America/Panama' => 'ഈസ്റ്റേൺ സമയം (പനാമ)',
         'America/Paramaribo' => 'സുരിനെയിം സമയം (പരാമാരിബോ)',
-        'America/Phoenix' => 'വടക്കെ അമേരിക്കൻ മൌണ്ടൻ സമയം (ഫീനിക്സ്)',
-        'America/Port-au-Prince' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (പോർട്ടോപ്രിൻസ്)',
+        'America/Phoenix' => 'മൗണ്ടൻ സമയം (ഫീനിക്സ്)',
+        'America/Port-au-Prince' => 'ഈസ്റ്റേൺ സമയം (പോർട്ടോപ്രിൻസ്)',
         'America/Port_of_Spain' => 'അറ്റ്‌ലാന്റിക് സമയം (പോർ‌ട്ട് ഓഫ് സ്‌പെയിൻ‌)',
         'America/Porto_Velho' => 'ആമസോൺ സമയം (പോർട്ടോ വെല്ലോ)',
         'America/Puerto_Rico' => 'അറ്റ്‌ലാന്റിക് സമയം (പ്യൂർട്ടോ റിക്കോ)',
         'America/Punta_Arenas' => 'ചിലി സമയം (പുന്റ അരീനസ്)',
-        'America/Rankin_Inlet' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (റാങ്കിൻ ഇൻലെറ്റ്)',
+        'America/Rankin_Inlet' => 'സെൻട്രൽ സമയം (റാങ്കിൻ ഇൻലെറ്റ്)',
         'America/Recife' => 'ബ്രസീലിയ സമയം (റെസീഫെ)',
-        'America/Regina' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (റിജീന)',
-        'America/Resolute' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (റെസല്യൂട്ട്)',
+        'America/Regina' => 'സെൻട്രൽ സമയം (റിജീന)',
+        'America/Resolute' => 'സെൻട്രൽ സമയം (റെസല്യൂട്ട്)',
         'America/Rio_Branco' => 'എയ്ക്കർ സമയം (റിയോ ബ്രാങ്കോ)',
         'America/Santarem' => 'ബ്രസീലിയ സമയം (സാന്ററെം)',
         'America/Santiago' => 'ചിലി സമയം (സാന്റിയാഗോ)',
@@ -187,15 +198,15 @@
         'America/St_Lucia' => 'അറ്റ്‌ലാന്റിക് സമയം (സെന്റ് ലൂസിയ)',
         'America/St_Thomas' => 'അറ്റ്‌ലാന്റിക് സമയം (സെന്റ് തോമസ്)',
         'America/St_Vincent' => 'അറ്റ്‌ലാന്റിക് സമയം (സെന്റ് വിൻസെന്റ്)',
-        'America/Swift_Current' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (സ്വിഫ്‌റ്റ് കറന്റ്)',
-        'America/Tegucigalpa' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (ടെഗൂസിഗാൽപ)',
+        'America/Swift_Current' => 'സെൻട്രൽ സമയം (സ്വിഫ്‌റ്റ് കറന്റ്)',
+        'America/Tegucigalpa' => 'സെൻട്രൽ സമയം (ടെഗൂസിഗാൽപ)',
         'America/Thule' => 'അറ്റ്‌ലാന്റിക് സമയം (തൂളി)',
         'America/Tijuana' => 'വടക്കെ അമേരിക്കൻ പസഫിക് സമയം (തിയുവാന)',
-        'America/Toronto' => 'വടക്കെ അമേരിക്കൻ കിഴക്കൻ സമയം (ടൊറന്റോ)',
+        'America/Toronto' => 'ഈസ്റ്റേൺ സമയം (ടൊറന്റോ)',
         'America/Tortola' => 'അറ്റ്‌ലാന്റിക് സമയം (ടോർ‌ട്ടോള)',
         'America/Vancouver' => 'വടക്കെ അമേരിക്കൻ പസഫിക് സമയം (വാൻ‌കൂവർ)',
         'America/Whitehorse' => 'യൂക്കോൺ സമയം (വൈറ്റ്ഹോഴ്സ്)',
-        'America/Winnipeg' => 'വടക്കെ അമേരിക്കൻ സെൻട്രൽ സമയം (വിന്നിപെഗ്)',
+        'America/Winnipeg' => 'സെൻട്രൽ സമയം (വിന്നിപെഗ്)',
         'America/Yakutat' => 'അലാസ്‌ക സമയം (യാകുറ്റാറ്റ്)',
         'Antarctica/Casey' => 'പടിഞ്ഞാറൻ ഓസ്‌ട്രേലിയ സമയം (കാസെ)',
         'Antarctica/Davis' => 'ഡേവിസ് സമയം (ഡെയ്‌വിസ്)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'അറേബ്യൻ സമയം (ഏദെൻ)',
         'Asia/Almaty' => 'കസാഖിസ്ഥാൻ സമയം (അൽമാട്ടി)',
         'Asia/Amman' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (അമ്മാൻ‌)',
-        'Asia/Anadyr' => 'അനാഡിർ സമയം',
+        'Asia/Anadyr' => 'പെട്രോപാവ്‌ലോസ്ക് കംചാസ്കി സമയം (അനാഡിർ)',
         'Asia/Aqtau' => 'കസാഖിസ്ഥാൻ സമയം (അക്തൗ)',
         'Asia/Aqtobe' => 'കസാഖിസ്ഥാൻ സമയം (അഖ്‌തോബ്)',
         'Asia/Ashgabat' => 'തുർക്ക്‌മെനിസ്ഥാൻ സമയം (ആഷ്‌ഗാബട്ട്)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'അറേബ്യൻ സമയം (ബഹ്റിൻ)',
         'Asia/Baku' => 'അസർബൈജാൻ സമയം (ബാക്കു)',
         'Asia/Bangkok' => 'ഇൻഡോചൈന സമയം (ബാങ്കോക്ക്)',
-        'Asia/Barnaul' => 'റഷ്യ സമയം (ബർണോൽ)',
+        'Asia/Barnaul' => 'ക്രാസ്‌നോയാർസ്‌ക് സമയം (ബർണോൽ)',
         'Asia/Beirut' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (ബെയ്‌റൂട്ട്)',
         'Asia/Bishkek' => 'കിർഗിസ്ഥാൻ സമയം (ബിഷ്‌കേക്)',
         'Asia/Brunei' => 'ബ്രൂണൈ ദാറുസ്സലാം സമയം',
         'Asia/Calcutta' => 'ഇന്ത്യൻ സ്റ്റാൻഡേർഡ് സമയം (കൊൽ‌ക്കത്ത)',
+        'Asia/Kolkata' => 'ഇന്ത്യൻ സ്റ്റാൻഡേർഡ് സമയം (കൊൽ‌ക്കത്ത)',
         'Asia/Chita' => 'യാകസ്‌ക്ക് സമയം (ചീറ്റ)',
         'Asia/Colombo' => 'ഇന്ത്യൻ സ്റ്റാൻഡേർഡ് സമയം (കൊളം‌ബോ)',
         'Asia/Damascus' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (ദമാസ്കസ്)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'പെട്രോപാവ്‌ലോസ്ക് കംചാസ്കി സമയം (കാംചട്ക)',
         'Asia/Karachi' => 'പാക്കിസ്ഥാൻ സമയം (കറാച്ചി)',
         'Asia/Katmandu' => 'നേപ്പാൾ സമയം (കാഠ്‌മണ്ഡു)',
+        'Asia/Kathmandu' => 'നേപ്പാൾ സമയം (കാഠ്‌മണ്ഡു)',
         'Asia/Khandyga' => 'യാകസ്‌ക്ക് സമയം (കാൻഡിഗ)',
         'Asia/Krasnoyarsk' => 'ക്രാസ്‌നോയാർസ്‌ക് സമയം (ക്രാസ്നോയാസ്ക്)',
         'Asia/Kuala_Lumpur' => 'മലേഷ്യ സമയം (ക്വാലലം‌പൂർ‌‌)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ഗൾഫ് സ്റ്റാൻഡേർഡ് സമയം (മസ്കറ്റ്)',
         'Asia/Nicosia' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (നിക്കോഷ്യ)',
         'Asia/Novokuznetsk' => 'ക്രാസ്‌നോയാർസ്‌ക് സമയം (നോവോകുസെൻസ്‌ക്)',
-        'Asia/Novosibirsk' => 'നോവോസിബിർസ്‌ക് സമയം (നൊവോസിബിർസ്ക്)',
+        'Asia/Novosibirsk' => 'ക്രാസ്‌നോയാർസ്‌ക് സമയം (നൊവോസിബിർസ്ക്)',
         'Asia/Omsk' => 'ഓംസ്‌ക്ക് സമയം (ഒംസ്ക്)',
         'Asia/Oral' => 'കസാഖിസ്ഥാൻ സമയം (ഓറൽ)',
         'Asia/Phnom_Penh' => 'ഇൻഡോചൈന സമയം (ഫെനോം പെൻ)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'കസാഖിസ്ഥാൻ സമയം (കോസ്റ്റനേ)',
         'Asia/Qyzylorda' => 'കസാഖിസ്ഥാൻ സമയം (ഖിസിലോർഡ)',
         'Asia/Rangoon' => 'മ്യാൻമാർ സമയം (റങ്കൂൺ‌)',
+        'Asia/Yangon' => 'മ്യാൻമാർ സമയം (റങ്കൂൺ‌)',
         'Asia/Riyadh' => 'അറേബ്യൻ സമയം (റിയാദ്)',
         'Asia/Saigon' => 'ഇൻഡോചൈന സമയം (ഹോ ചി മിൻ സിറ്റി)',
-        'Asia/Sakhalin' => 'സഖാലിൻ സമയം',
+        'Asia/Ho_Chi_Minh' => 'ഇൻഡോചൈന സമയം (ഹോ ചി മിൻ സിറ്റി)',
+        'Asia/Sakhalin' => 'മഗാദൻ സമയം (സഖാലിൻ)',
         'Asia/Samarkand' => 'ഉസ്‌ബെക്കിസ്ഥാൻ സമയം (സമർക്കന്ദ്)',
         'Asia/Seoul' => 'കൊറിയൻ സമയം (സോൾ)',
         'Asia/Shanghai' => 'ചൈന സമയം (ഷാങ്‌ഹായി)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ഇറാൻ സമയം (ടെഹ്‌റാൻ‌)',
         'Asia/Thimphu' => 'ഭൂട്ടാൻ സമയം (തിംഫു)',
         'Asia/Tokyo' => 'ജപ്പാൻ സമയം (ടോക്കിയോ)',
-        'Asia/Tomsk' => 'റഷ്യ സമയം (ടോംസ്ക്)',
+        'Asia/Tomsk' => 'ക്രാസ്‌നോയാർസ്‌ക് സമയം (ടോംസ്ക്)',
         'Asia/Ulaanbaatar' => 'ഉലാൻബാത്തർ സമയം',
         'Asia/Urumqi' => 'ചൈന സമയം (ഉറുംഖി)',
         'Asia/Ust-Nera' => 'വ്ലാഡിവോസ്റ്റോക് സമയം (യുസ്-നേര)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'പടിഞ്ഞാറൻ യൂറോപ്യൻ സമയം (ക്യാനറി)',
         'Atlantic/Cape_Verde' => 'കേപ് വെർദെ സമയം',
         'Atlantic/Faeroe' => 'പടിഞ്ഞാറൻ യൂറോപ്യൻ സമയം (ഫെറോ)',
+        'Atlantic/Faroe' => 'പടിഞ്ഞാറൻ യൂറോപ്യൻ സമയം (ഫെറോ)',
         'Atlantic/Madeira' => 'പടിഞ്ഞാറൻ യൂറോപ്യൻ സമയം (മഡെയ്റ)',
         'Atlantic/Reykjavik' => 'ഗ്രീൻവിച്ച് മീൻ സമയം (റേയ്‌ജാവിക്)',
         'Atlantic/South_Georgia' => 'ദക്ഷിണ ജോർജ്ജിയൻ സമയം (ദക്ഷിണ ജോർജിയ)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'കോർഡിനേറ്റഡ് യൂണിവേഴ്‌സൽ സമയം',
         'Europe/Amsterdam' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (ആം‌സ്റ്റർ‌ഡാം)',
         'Europe/Andorra' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (അണ്ടോറ)',
-        'Europe/Astrakhan' => 'മോസ്കോ സമയം (അസ്‌ട്രഖാൻ)',
+        'Europe/Astrakhan' => 'സമാര സമയം (അസ്‌ട്രഖാൻ)',
         'Europe/Athens' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (ഏതൻ‌സ്)',
         'Europe/Belgrade' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (ബെൽഗ്രേഡ്)',
         'Europe/Berlin' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (ബെർ‌ലിൻ‌)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'ഗ്രീൻവിച്ച് മീൻ സമയം (ഗേൺസേ)',
         'Europe/Helsinki' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (ഹെൽ‌സിങ്കി)',
         'Europe/Isle_of_Man' => 'ഗ്രീൻവിച്ച് മീൻ സമയം (ഐൽ‌ ഓഫ് മാൻ‌)',
-        'Europe/Istanbul' => 'തുർക്കിയെ സമയം (ഇസ്താം‌ബുൾ‌)',
+        'Europe/Istanbul' => 'തുർക്കി സമയം (ഇസ്താം‌ബുൾ‌)',
         'Europe/Jersey' => 'ഗ്രീൻവിച്ച് മീൻ സമയം (ജേഴ്‌സി)',
         'Europe/Kaliningrad' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (കലിനിൻഗ്രാഡ്)',
         'Europe/Kiev' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (കീവ്)',
-        'Europe/Kirov' => 'റഷ്യ സമയം (കിറോ)',
+        'Europe/Kyiv' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (കീവ്)',
+        'Europe/Kirov' => 'മോസ്കോ സമയം (കിറോ)',
         'Europe/Lisbon' => 'പടിഞ്ഞാറൻ യൂറോപ്യൻ സമയം (ലിസ്‌ബൺ‌)',
         'Europe/Ljubljana' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (ലുബ്‍ലിയാന)',
         'Europe/London' => 'ഗ്രീൻവിച്ച് മീൻ സമയം (ലണ്ടൻ‌)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'സമാര സമയം (സമാറ)',
         'Europe/San_Marino' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (സാൻ മാരിനോ)',
         'Europe/Sarajevo' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (സരയേവോ)',
-        'Europe/Saratov' => 'മോസ്കോ സമയം (സരാറ്റോവ്)',
+        'Europe/Saratov' => 'സമാര സമയം (സരാറ്റോവ്)',
         'Europe/Simferopol' => 'മോസ്കോ സമയം (സിംഫെറോപോൾ)',
         'Europe/Skopje' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (സ്കോപ്പിയെ)',
         'Europe/Sofia' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (സോഫിയ)',
         'Europe/Stockholm' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (സ്റ്റോക്ക്ഹോം)',
         'Europe/Tallinn' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (ടാലിൻ‌)',
         'Europe/Tirane' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (ടിരാനെ)',
-        'Europe/Ulyanovsk' => 'മോസ്കോ സമയം (ഉല്ല്യാനോവ്‌സ്‌ക്)',
+        'Europe/Ulyanovsk' => 'സമാര സമയം (ഉല്ല്യാനോവ്‌സ്‌ക്)',
         'Europe/Vaduz' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (വാദുസ്)',
         'Europe/Vatican' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (വത്തിക്കാൻ)',
         'Europe/Vienna' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (വിയന്ന)',
         'Europe/Vilnius' => 'കിഴക്കൻ യൂറോപ്യൻ സമയം (വിൽ‌നിയസ്)',
-        'Europe/Volgograd' => 'വോൾഗോഗ്രാഡ് സമയം',
+        'Europe/Volgograd' => 'മോസ്കോ സമയം (വോൾഗോഗ്രാഡ്)',
         'Europe/Warsaw' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (വാർസോ)',
         'Europe/Zagreb' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (സാക്രെബ്)',
         'Europe/Zurich' => 'സെൻട്രൽ യൂറോപ്യൻ സമയം (സൂറിച്ച്)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'ചാത്തം സമയം',
         'Pacific/Easter' => 'ഈസ്റ്റർ ദ്വീപ് സമയം',
         'Pacific/Efate' => 'വന്വാതു സമയം (ഇഫാതെ)',
-        'Pacific/Enderbury' => 'ഫിനിക്‌സ് ദ്വീപ് സമയം (എൻഡബറി)',
+        'Pacific/Enderbury' => 'ഫിനിക്‌സ് ദ്വീപ് സമയം (കാന്റൺ ദ്വീപ്)',
+        'Pacific/Kanton' => 'ഫിനിക്‌സ് ദ്വീപ് സമയം (കാന്റൺ ദ്വീപ്)',
         'Pacific/Fakaofo' => 'ടോക്കെലൂ സമയം (ഫക്കാവോഫോ)',
         'Pacific/Fiji' => 'ഫിജി സമയം',
         'Pacific/Funafuti' => 'ടുവാലു സമയം (ഫുണാഫുട്ടി)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ഗാമ്പിയർ സമയം',
         'Pacific/Guadalcanal' => 'സോളമൻ ദ്വീപുകൾ സമയം (ഗ്വാഡൽകനാൽ)',
         'Pacific/Guam' => 'ചമോറോ സ്റ്റാൻഡേർഡ് സമയം (ഗ്വാം)',
-        'Pacific/Honolulu' => 'ഹവായ്-അലൂഷ്യൻ സമയം (ഹോണലൂലു)',
+        'Pacific/Honolulu' => 'ഹവായ്-അലൂഷ്യൻ സ്റ്റാൻഡേർഡ് സമയം (ഹോണലൂലു)',
         'Pacific/Kiritimati' => 'ലൈൻ ദ്വീപുകൾ സമയം (കിരിറ്റിമാറ്റി)',
         'Pacific/Kosrae' => 'കൊസ്ര സമയം (കൊസ്രേ)',
         'Pacific/Kwajalein' => 'മാർഷൽ ദ്വീപുകൾ സമയം (ക്വാജലെയ്ൻ)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'പലാവു സമയം',
         'Pacific/Pitcairn' => 'പിറ്റ്കേൻ സമയം (പിറ്റ്കയിൻ‌)',
         'Pacific/Ponape' => 'പൊനാപ്പ് സമയം (പോൺപെ)',
+        'Pacific/Pohnpei' => 'പൊനാപ്പ് സമയം (പോൺപെ)',
         'Pacific/Port_Moresby' => 'പാപ്പുവ ന്യൂ ഗിനിയ സമയം (പോർട്ട് മോഴ്‌സ്ബൈ)',
         'Pacific/Rarotonga' => 'കുക്ക് ദ്വീപുകൾ സമയം (റാരോടോംഗ)',
         'Pacific/Saipan' => 'ചമോറോ സ്റ്റാൻഡേർഡ് സമയം (സെയ്‌പ്പാൻ‌)',
@@ -419,10 +438,11 @@
         'Pacific/Tarawa' => 'ഗിൽബേർട്ട് ദ്വീപുകൾ സമയം (തരാവ)',
         'Pacific/Tongatapu' => 'ടോംഗ സമയം (ടോംഗാടാപു)',
         'Pacific/Truk' => 'ചൂക്ക് സമയം (ചക്)',
+        'Pacific/Chuuk' => 'ചൂക്ക് സമയം (ചക്)',
         'Pacific/Wake' => 'വേക്ക് ദ്വീപ് സമയം (വെയ്ക്)',
         'Pacific/Wallis' => 'വാലിസ് ആന്റ് ഫ്യൂച്യുന സമയം (വാല്ലിസ്)',
     ],
     'Meta' => [
-        'GmtFormat' => 'ജിഎംടി %s',
+        'GmtFormat' => 'ജിഎംടി%s',
     ],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mn.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,9 +4,10 @@
     'Names' => [
         'Africa/Abidjan' => 'Гринвичийн цаг (Абижан)',
         'Africa/Accra' => 'Гринвичийн цаг (Аккра)',
-        'Africa/Addis_Ababa' => 'Зүүн Африкийн цаг (Аддис-Aбеба)',
+        'Africa/Addis_Ababa' => 'Зүүн Африкийн цаг (Аддис-Абеба)',
         'Africa/Algiers' => 'Төв Европын цаг (Алжир)',
         'Africa/Asmera' => 'Зүүн Африкийн цаг (Асмара)',
+        'Africa/Asmara' => 'Зүүн Африкийн цаг (Асмара)',
         'Africa/Bamako' => 'Гринвичийн цаг (Бамако)',
         'Africa/Bangui' => 'Баруун Африкийн цаг (Бангуй)',
         'Africa/Banjul' => 'Гринвичийн цаг (Банжул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Колумбын цаг (Богота)',
         'America/Boise' => 'Уулын цаг (Боисе)',
         'America/Buenos_Aires' => 'Аргентины цаг (Буэнос-Айрес)',
+        'America/Argentina/Buenos_Aires' => 'Аргентины цаг (Буэнос-Айрес)',
         'America/Cambridge_Bay' => 'Уулын цаг (Кэмбрижийн булан)',
         'America/Campo_Grande' => 'Амазоны цаг (Кампо-Гранде)',
         'America/Cancun' => 'Зүүн эргийн цаг (Канкун)',
         'America/Caracas' => 'Венесуэлийн цаг (Каракас)',
         'America/Catamarca' => 'Аргентины цаг (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргентины цаг (Катамарка)',
         'America/Cayenne' => 'Францын Гвианагийн цаг (Кайенна)',
         'America/Cayman' => 'Зүүн эргийн цаг (Кайман)',
         'America/Chicago' => 'Төв цаг (Чикаго)',
         'America/Chihuahua' => 'Төв цаг (Чихуахуа)',
         'America/Ciudad_Juarez' => 'Уулын цаг (Сьюдад Хуарес)',
         'America/Coral_Harbour' => 'Зүүн эргийн цаг (Атикокан)',
+        'America/Atikokan' => 'Зүүн эргийн цаг (Атикокан)',
         'America/Cordoba' => 'Аргентины цаг (Кордова)',
+        'America/Argentina/Cordoba' => 'Аргентины цаг (Кордова)',
         'America/Costa_Rica' => 'Төв цаг (Коста-Рика)',
+        'America/Coyhaique' => 'Чилийн цаг (Койайкэ)',
         'America/Creston' => 'Уулын цаг (Крестон)',
         'America/Cuiaba' => 'Амазоны цаг (Куяба)',
         'America/Curacao' => 'Атлантын цаг (Кюрасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразилийн цаг (Форталеза)',
         'America/Glace_Bay' => 'Атлантын цаг (Глейс булан)',
         'America/Godthab' => 'Гренланд-н цаг (Нүүк)',
+        'America/Nuuk' => 'Гренланд-н цаг (Нүүк)',
         'America/Goose_Bay' => 'Атлантын цаг (Гуус булан)',
         'America/Grand_Turk' => 'Зүүн эргийн цаг (Гранд Турк)',
         'America/Grenada' => 'Атлантын цаг (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Зүүн эргийн цаг (Винсенес, Индиана)',
         'America/Indiana/Winamac' => 'Зүүн эргийн цаг (Винамак, Индиана)',
         'America/Indianapolis' => 'Зүүн эргийн цаг (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Зүүн эргийн цаг (Индианаполис)',
         'America/Inuvik' => 'Уулын цаг (Инувик)',
         'America/Iqaluit' => 'Зүүн эргийн цаг (Икалуит)',
         'America/Jamaica' => 'Зүүн эргийн цаг (Ямайка)',
         'America/Jujuy' => 'Аргентины цаг (Жужуй)',
+        'America/Argentina/Jujuy' => 'Аргентины цаг (Жужуй)',
         'America/Juneau' => 'Аляскийн цаг (Жуно)',
         'America/Kentucky/Monticello' => 'Зүүн эргийн цаг (Монтичелло, Кентаки)',
         'America/Kralendijk' => 'Атлантын цаг (Кралендик)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перугийн цаг (Лима)',
         'America/Los_Angeles' => 'Номхон далайн цаг (Лос-Анжелес)',
         'America/Louisville' => 'Зүүн эргийн цаг (Луисвилл)',
+        'America/Kentucky/Louisville' => 'Зүүн эргийн цаг (Луисвилл)',
         'America/Lower_Princes' => 'Атлантын цаг (Ловер Принсес Квартер)',
         'America/Maceio' => 'Бразилийн цаг (Масейо)',
         'America/Managua' => 'Төв цаг (Манагуа)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Төв цаг (Матаморос)',
         'America/Mazatlan' => 'Мексик-Номхон далайн цаг (Мазатлан)',
         'America/Mendoza' => 'Аргентины цаг (Мендоза)',
+        'America/Argentina/Mendoza' => 'Аргентины цаг (Мендоза)',
         'America/Menominee' => 'Төв цаг (Меномини)',
         'America/Merida' => 'Төв цаг (Мерида)',
         'America/Metlakatla' => 'Аляскийн цаг (Метлакатла)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Арабын цаг (Бахрейн)',
         'Asia/Baku' => 'Азербайжаны цаг (Баку)',
         'Asia/Bangkok' => 'Энэтхэг-Хятадын хойгийн цаг (Бангкок)',
-        'Asia/Barnaul' => 'Орос-н цаг (Барнаул)',
+        'Asia/Barnaul' => 'Красноярскийн цаг (Барнаул)',
         'Asia/Beirut' => 'Зүүн Европын цаг (Бейрут)',
         'Asia/Bishkek' => 'Киргизийн цаг (Бишкек)',
         'Asia/Brunei' => 'Бруней Даруссаламын цаг',
         'Asia/Calcutta' => 'Энэтхэгийн цаг (Калькутта)',
+        'Asia/Kolkata' => 'Энэтхэгийн цаг (Калькутта)',
         'Asia/Chita' => 'Якутын цаг (Чита)',
         'Asia/Colombo' => 'Энэтхэгийн цаг (Коломбо)',
         'Asia/Damascus' => 'Зүүн Европын цаг (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Орос-н цаг (Камчатка)',
         'Asia/Karachi' => 'Пакистаны цаг (Карачи)',
         'Asia/Katmandu' => 'Балбын цаг (Катманду)',
+        'Asia/Kathmandu' => 'Балбын цаг (Катманду)',
         'Asia/Khandyga' => 'Якутын цаг (Кандыга)',
         'Asia/Krasnoyarsk' => 'Красноярскийн цаг',
         'Asia/Kuala_Lumpur' => 'Малайзын цаг (Куала Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Персийн булангийн цаг (Мускат)',
         'Asia/Nicosia' => 'Зүүн Европын цаг (Никосия)',
         'Asia/Novokuznetsk' => 'Красноярскийн цаг (Новокузнецк)',
-        'Asia/Novosibirsk' => 'Новосибирскийн цаг',
+        'Asia/Novosibirsk' => 'Красноярскийн цаг (Новосибирск)',
         'Asia/Omsk' => 'Омскийн цаг',
         'Asia/Oral' => 'Казахстаны цаг (Орал)',
         'Asia/Phnom_Penh' => 'Энэтхэг-Хятадын хойгийн цаг (Пномпень)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Казахстаны цаг (Костанай)',
         'Asia/Qyzylorda' => 'Казахстаны цаг (Кызылорд)',
         'Asia/Rangoon' => 'Мьянмарын цаг (Рангун)',
+        'Asia/Yangon' => 'Мьянмарын цаг (Рангун)',
         'Asia/Riyadh' => 'Арабын цаг (Рияд)',
         'Asia/Saigon' => 'Энэтхэг-Хятадын хойгийн цаг (Хо Ши Мин хот)',
-        'Asia/Sakhalin' => 'Сахалины цаг',
+        'Asia/Ho_Chi_Minh' => 'Энэтхэг-Хятадын хойгийн цаг (Хо Ши Мин хот)',
+        'Asia/Sakhalin' => 'Магаданы цаг (Сахалин)',
         'Asia/Samarkand' => 'Узбекистаны цаг (Самарканд)',
         'Asia/Seoul' => 'Солонгосын цаг (Сөүл)',
         'Asia/Shanghai' => 'Хятадын цаг (Шанхай)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Ираны цаг (Тегеран)',
         'Asia/Thimphu' => 'Бутаны цаг (Тхимпху)',
         'Asia/Tokyo' => 'Японы цаг (Токио)',
-        'Asia/Tomsk' => 'Орос-н цаг (Томск)',
+        'Asia/Tomsk' => 'Красноярскийн цаг (Томск)',
         'Asia/Ulaanbaatar' => 'Улаанбаатарын цаг',
         'Asia/Urumqi' => 'Хятад-н цаг (Үрүмчи)',
         'Asia/Ust-Nera' => 'Владивостокийн цаг (Уст-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Баруун Европын цаг (Канари)',
         'Atlantic/Cape_Verde' => 'Кабо-Вердийн цаг (Кабо-Верде)',
         'Atlantic/Faeroe' => 'Баруун Европын цаг (Фарер)',
+        'Atlantic/Faroe' => 'Баруун Европын цаг (Фарер)',
         'Atlantic/Madeira' => 'Баруун Европын цаг (Мадейра)',
         'Atlantic/Reykjavik' => 'Гринвичийн цаг (Рейкьявик)',
         'Atlantic/South_Georgia' => 'Өмнөд Жоржиагийн цаг',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Олон улсын зохицуулалттай цаг',
         'Europe/Amsterdam' => 'Төв Европын цаг (Амстердам)',
         'Europe/Andorra' => 'Төв Европын цаг (Андорра)',
-        'Europe/Astrakhan' => 'Москвагийн цаг (Астрахань)',
+        'Europe/Astrakhan' => 'Орос-н цаг (Астрахань)',
         'Europe/Athens' => 'Зүүн Европын цаг (Афин)',
         'Europe/Belgrade' => 'Төв Европын цаг (Белград)',
         'Europe/Berlin' => 'Төв Европын цаг (Берлин)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Гринвичийн цаг (Жерси)',
         'Europe/Kaliningrad' => 'Зүүн Европын цаг (Калининград)',
         'Europe/Kiev' => 'Зүүн Европын цаг (Киев)',
-        'Europe/Kirov' => 'Орос-н цаг (Киров)',
+        'Europe/Kyiv' => 'Зүүн Европын цаг (Киев)',
+        'Europe/Kirov' => 'Москвагийн цаг (Киров)',
         'Europe/Lisbon' => 'Баруун Европын цаг (Лисбон)',
         'Europe/Ljubljana' => 'Төв Европын цаг (Любляна)',
         'Europe/London' => 'Гринвичийн цаг (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Орос-н цаг (Самара)',
         'Europe/San_Marino' => 'Төв Европын цаг (Сан-Марино)',
         'Europe/Sarajevo' => 'Төв Европын цаг (Сараево)',
-        'Europe/Saratov' => 'Москвагийн цаг (Саратов)',
+        'Europe/Saratov' => 'Орос-н цаг (Саратов)',
         'Europe/Simferopol' => 'Москвагийн цаг (Симферополь)',
         'Europe/Skopje' => 'Төв Европын цаг (Скопье)',
         'Europe/Sofia' => 'Зүүн Европын цаг (Софи)',
         'Europe/Stockholm' => 'Төв Европын цаг (Стокхолм)',
         'Europe/Tallinn' => 'Зүүн Европын цаг (Таллин)',
         'Europe/Tirane' => 'Төв Европын цаг (Тирана)',
-        'Europe/Ulyanovsk' => 'Москвагийн цаг (Ульяновск)',
+        'Europe/Ulyanovsk' => 'Орос-н цаг (Ульяновск)',
         'Europe/Vaduz' => 'Төв Европын цаг (Вадуз)',
         'Europe/Vatican' => 'Төв Европын цаг (Ватикан)',
         'Europe/Vienna' => 'Төв Европын цаг (Вена)',
         'Europe/Vilnius' => 'Зүүн Европын цаг (Вильнюс)',
-        'Europe/Volgograd' => 'Волгоградын цаг',
+        'Europe/Volgograd' => 'Москвагийн цаг (Волгоград)',
         'Europe/Warsaw' => 'Төв Европын цаг (Варшав)',
         'Europe/Zagreb' => 'Төв Европын цаг (Загреб)',
         'Europe/Zurich' => 'Төв Европын цаг (Цюрих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Чатемын цаг',
         'Pacific/Easter' => 'Зүүн Исландын цаг (Истер)',
         'Pacific/Efate' => 'Вануатугийн цаг (Эфате)',
-        'Pacific/Enderbury' => 'Феникс арлын цаг (Эндербери)',
+        'Pacific/Enderbury' => 'Феникс арлын цаг (Кантон)',
+        'Pacific/Kanton' => 'Феникс арлын цаг (Кантон)',
         'Pacific/Fakaofo' => 'Токелаугийн цаг (Факаофо)',
         'Pacific/Fiji' => 'Фижигийн цаг',
         'Pacific/Funafuti' => 'Тувалугийн цаг (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Гамбьегийн цаг (Гамбьер)',
         'Pacific/Guadalcanal' => 'Соломоны арлуудын цаг (Гуадалканал)',
         'Pacific/Guam' => 'Чаморрогийн цаг (Гуам)',
-        'Pacific/Honolulu' => 'Хавай-Алеутын цаг (Хонолулу)',
+        'Pacific/Honolulu' => 'Хавай-Алеутын стандарт цаг (Хонолулу)',
         'Pacific/Kiritimati' => 'Лайн арлуудын цаг (Киритимати)',
         'Pacific/Kosrae' => 'Косрэгийн цаг',
         'Pacific/Kwajalein' => 'Маршаллын арлуудын цаг (Кважалейн)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Палаугийн цаг',
         'Pacific/Pitcairn' => 'Питкернийн цаг (Питкэрн)',
         'Pacific/Ponape' => 'Понапегийн цаг (Понпей)',
+        'Pacific/Pohnpei' => 'Понапегийн цаг (Понпей)',
         'Pacific/Port_Moresby' => 'Папуа Шинэ Гвинейн цаг (Порт-Морсби)',
         'Pacific/Rarotonga' => 'Күүкийн арлуудын цаг (Раротонга)',
         'Pacific/Saipan' => 'Чаморрогийн цаг (Сайпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Гильбертийн арлуудын цаг (Тарава)',
         'Pacific/Tongatapu' => 'Тонгагийн цаг (Тонгатапу)',
         'Pacific/Truk' => 'Чүүкийн цаг',
+        'Pacific/Chuuk' => 'Чүүкийн цаг',
         'Pacific/Wake' => 'Уэкийн арлуудын цаг',
         'Pacific/Wallis' => 'Уоллис ба Футунагийн цаг',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mr.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'पूर्व आफ्रिका वेळ (आदिस अबाबा)',
         'Africa/Algiers' => 'मध्‍य युरोपियन वेळ (अल्जिअर्स)',
         'Africa/Asmera' => 'पूर्व आफ्रिका वेळ (एस्मारा)',
+        'Africa/Asmara' => 'पूर्व आफ्रिका वेळ (एस्मारा)',
         'Africa/Bamako' => 'ग्रीनिच प्रमाण वेळ (बामको)',
         'Africa/Bangui' => 'पश्चिम आफ्रिका वेळ (बांगुई)',
         'Africa/Banjul' => 'ग्रीनिच प्रमाण वेळ (बंजुल)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'कोलंबिया वेळ (बोगोटा)',
         'America/Boise' => 'पर्वतीय वेळ (बोइसी)',
         'America/Buenos_Aires' => 'अर्जेंटिना वेळ (ब्युनोस आयर्स)',
+        'America/Argentina/Buenos_Aires' => 'अर्जेंटिना वेळ (ब्युनोस आयर्स)',
         'America/Cambridge_Bay' => 'पर्वतीय वेळ (केंब्रिज उपसागर)',
         'America/Campo_Grande' => 'अ‍ॅमेझॉन वेळ (कॅम्पो ग्रँडे)',
         'America/Cancun' => 'पौर्वात्य वेळ (कानकुन)',
         'America/Caracas' => 'व्हेनेझुएला वेळ (कराकास)',
         'America/Catamarca' => 'अर्जेंटिना वेळ (कॅटामार्का)',
+        'America/Argentina/Catamarca' => 'अर्जेंटिना वेळ (कॅटामार्का)',
         'America/Cayenne' => 'फ्रेंच गयाना वेळ (कायेने)',
         'America/Cayman' => 'पौर्वात्य वेळ (केमन)',
         'America/Chicago' => 'केंद्रीय वेळ (शिकागो)',
         'America/Chihuahua' => 'केंद्रीय वेळ (चिहुआहुआ)',
         'America/Ciudad_Juarez' => 'पर्वतीय वेळ (सिउदाद हुआरेझ)',
         'America/Coral_Harbour' => 'पौर्वात्य वेळ (अॅटिकोकन)',
+        'America/Atikokan' => 'पौर्वात्य वेळ (अॅटिकोकन)',
         'America/Cordoba' => 'अर्जेंटिना वेळ (कॉर्डोबा)',
+        'America/Argentina/Cordoba' => 'अर्जेंटिना वेळ (कॉर्डोबा)',
         'America/Costa_Rica' => 'केंद्रीय वेळ (कोस्टा रिका)',
+        'America/Coyhaique' => 'चिली वेळ (कोयाइके)',
         'America/Creston' => 'पर्वतीय वेळ (क्रेस्टन)',
         'America/Cuiaba' => 'अ‍ॅमेझॉन वेळ (कुयाबा)',
         'America/Curacao' => 'अटलांटिक वेळ (क्युरासाओ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ब्राझिलिया वेळ (फोर्टालेझा)',
         'America/Glace_Bay' => 'अटलांटिक वेळ (ग्लेस उपसागर)',
         'America/Godthab' => 'ग्रीनलंड वेळ (नूक)',
+        'America/Nuuk' => 'ग्रीनलंड वेळ (नूक)',
         'America/Goose_Bay' => 'अटलांटिक वेळ (गूस उपसागर)',
         'America/Grand_Turk' => 'पौर्वात्य वेळ (ग्रँड टर्क)',
         'America/Grenada' => 'अटलांटिक वेळ (ग्रेनेडा)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'पौर्वात्य वेळ (विंसेनस, इंडियाना)',
         'America/Indiana/Winamac' => 'पौर्वात्य वेळ (विनमॅक, इंडियाना)',
         'America/Indianapolis' => 'पौर्वात्य वेळ (इंडियानापोलिस)',
+        'America/Indiana/Indianapolis' => 'पौर्वात्य वेळ (इंडियानापोलिस)',
         'America/Inuvik' => 'पर्वतीय वेळ (इनुविक)',
         'America/Iqaluit' => 'पौर्वात्य वेळ (इकालुइत)',
         'America/Jamaica' => 'पौर्वात्य वेळ (जमैका)',
         'America/Jujuy' => 'अर्जेंटिना वेळ (जुजुय)',
+        'America/Argentina/Jujuy' => 'अर्जेंटिना वेळ (जुजुय)',
         'America/Juneau' => 'अलास्का वेळ (ज्यूनौ)',
         'America/Kentucky/Monticello' => 'पौर्वात्य वेळ (माँटिसेलो, केंटुकी)',
         'America/Kralendijk' => 'अटलांटिक वेळ (क्रालेंदिजिक)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'पेरु वेळ (लीमा)',
         'America/Los_Angeles' => 'पॅसिफिक वेळ (लॉस एंजेलिस)',
         'America/Louisville' => 'पौर्वात्य वेळ (ल्युइसव्हिल)',
+        'America/Kentucky/Louisville' => 'पौर्वात्य वेळ (ल्युइसव्हिल)',
         'America/Lower_Princes' => 'अटलांटिक वेळ (लोअर प्रिन्सस क्वार्टर)',
         'America/Maceio' => 'ब्राझिलिया वेळ (मेसेइओ)',
         'America/Managua' => 'केंद्रीय वेळ (मानागुआ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'केंद्रीय वेळ (माटामोरोस)',
         'America/Mazatlan' => 'मेक्सिको पॅसिफिक वेळ (माझातलान)',
         'America/Mendoza' => 'अर्जेंटिना वेळ (मेंदोझा)',
+        'America/Argentina/Mendoza' => 'अर्जेंटिना वेळ (मेंदोझा)',
         'America/Menominee' => 'केंद्रीय वेळ (मेनोमिनी)',
         'America/Merida' => 'केंद्रीय वेळ (मेरिडा)',
         'America/Metlakatla' => 'अलास्का वेळ (मेतलाकतला)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'अरेबियन वेळ (एडेन)',
         'Asia/Almaty' => 'कझाकस्तान वेळ (अल्माटी)',
         'Asia/Amman' => 'पूर्व युरोपियन वेळ (अम्मान)',
-        'Asia/Anadyr' => 'एनाडीयर वेळ',
+        'Asia/Anadyr' => 'पेट्रोपाव्हलोस्क- कामचाट्स्की वेळ (एनाडीयर)',
         'Asia/Aqtau' => 'कझाकस्तान वेळ (अ‍ॅक्टौ)',
         'Asia/Aqtobe' => 'कझाकस्तान वेळ (अ‍ॅक्टोबे)',
         'Asia/Ashgabat' => 'तुर्कमेनिस्तान वेळ (अश्गाबात)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'अरेबियन वेळ (बहारिन)',
         'Asia/Baku' => 'अझरबैजान वेळ (बाकु)',
         'Asia/Bangkok' => 'इंडोचायना वेळ (बँकॉक)',
-        'Asia/Barnaul' => 'रशिया वेळ (बर्नौल)',
+        'Asia/Barnaul' => 'क्रास्नोयार्स्क वेळ (बर्नौल)',
         'Asia/Beirut' => 'पूर्व युरोपियन वेळ (बैरुत)',
         'Asia/Bishkek' => 'किरगिस्तान वेळ (बिश्केक)',
         'Asia/Brunei' => 'ब्रुनेई दारूसलाम वेळ',
         'Asia/Calcutta' => 'भारतीय प्रमाण वेळ (कोलकाता)',
+        'Asia/Kolkata' => 'भारतीय प्रमाण वेळ (कोलकाता)',
         'Asia/Chita' => 'याकुत्सक वेळ (चिता)',
         'Asia/Colombo' => 'भारतीय प्रमाण वेळ (कोलंबो)',
         'Asia/Damascus' => 'पूर्व युरोपियन वेळ (दमास्कस)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'पेट्रोपाव्हलोस्क- कामचाट्स्की वेळ (कॅमचाटका)',
         'Asia/Karachi' => 'पाकिस्तान वेळ (कराची)',
         'Asia/Katmandu' => 'नेपाळ वेळ (काठमांडू)',
+        'Asia/Kathmandu' => 'नेपाळ वेळ (काठमांडू)',
         'Asia/Khandyga' => 'याकुत्सक वेळ (खंदिगा)',
         'Asia/Krasnoyarsk' => 'क्रास्नोयार्स्क वेळ',
         'Asia/Kuala_Lumpur' => 'मलेशिया वेळ (क्वालालंपूर)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'खाडी प्रमाण वेळ (मस्कत)',
         'Asia/Nicosia' => 'पूर्व युरोपियन वेळ (निकोसिया)',
         'Asia/Novokuznetsk' => 'क्रास्नोयार्स्क वेळ (नोवोकुझ्नेत्स्क)',
-        'Asia/Novosibirsk' => 'नोवोसिबिर्स्क वेळ',
+        'Asia/Novosibirsk' => 'क्रास्नोयार्स्क वेळ (नोवोसिबिर्स्क)',
         'Asia/Omsk' => 'ओम्स्क वेळ',
         'Asia/Oral' => 'कझाकस्तान वेळ (ओरल)',
         'Asia/Phnom_Penh' => 'इंडोचायना वेळ (प्नोम पेन्ह)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'कझाकस्तान वेळ (कोस्टाने)',
         'Asia/Qyzylorda' => 'कझाकस्तान वेळ (किझीलोर्डा)',
         'Asia/Rangoon' => 'म्यानमार वेळ (रंगून)',
+        'Asia/Yangon' => 'म्यानमार वेळ (रंगून)',
         'Asia/Riyadh' => 'अरेबियन वेळ (रियाध)',
         'Asia/Saigon' => 'इंडोचायना वेळ (हो चि मिन्ह शहर)',
-        'Asia/Sakhalin' => 'सखलिन वेळ (साखालिन)',
+        'Asia/Ho_Chi_Minh' => 'इंडोचायना वेळ (हो चि मिन्ह शहर)',
+        'Asia/Sakhalin' => 'मॅगाडन वेळ (साखालिन)',
         'Asia/Samarkand' => 'उझबेकिस्तान वेळ (समरकंद)',
         'Asia/Seoul' => 'कोरियन वेळ (सेउल)',
         'Asia/Shanghai' => 'चीनी वेळ (शांघाय)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'इराण वेळ (तेहरान)',
         'Asia/Thimphu' => 'भूतान वेळ (थिंफू)',
         'Asia/Tokyo' => 'जपान वेळ (टोकियो)',
-        'Asia/Tomsk' => 'रशिया वेळ (तोमसक)',
+        'Asia/Tomsk' => 'क्रास्नोयार्स्क वेळ (तोमसक)',
         'Asia/Ulaanbaatar' => 'उलान बाटोर वेळ (उलानबातर)',
         'Asia/Urumqi' => 'चीन वेळ (उरुम्की)',
         'Asia/Ust-Nera' => 'व्लादिवोस्तोक वेळ (उस्त-नेरा)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'पश्चिम युरोपियन वेळ (कॅनरी)',
         'Atlantic/Cape_Verde' => 'केप व्हर्डे वेळ',
         'Atlantic/Faeroe' => 'पश्चिम युरोपियन वेळ (फॅरो)',
+        'Atlantic/Faroe' => 'पश्चिम युरोपियन वेळ (फॅरो)',
         'Atlantic/Madeira' => 'पश्चिम युरोपियन वेळ (मडीयरा)',
         'Atlantic/Reykjavik' => 'ग्रीनिच प्रमाण वेळ (रेयक्जाविक)',
         'Atlantic/South_Georgia' => 'दक्षिण जॉर्जिया वेळ',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'समन्वित वैश्विक वेळ',
         'Europe/Amsterdam' => 'मध्‍य युरोपियन वेळ (अ‍ॅमस्टरडॅम)',
         'Europe/Andorra' => 'मध्‍य युरोपियन वेळ (अँडोरा)',
-        'Europe/Astrakhan' => 'मॉस्को वेळ (आस्त्राखान)',
+        'Europe/Astrakhan' => 'समारा वेळ (आस्त्राखान)',
         'Europe/Athens' => 'पूर्व युरोपियन वेळ (अथेन्स)',
         'Europe/Belgrade' => 'मध्‍य युरोपियन वेळ (बेलग्रेड)',
         'Europe/Berlin' => 'मध्‍य युरोपियन वेळ (बर्लिन)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'ग्रीनिच प्रमाण वेळ (ग्वेर्नसे)',
         'Europe/Helsinki' => 'पूर्व युरोपियन वेळ (हेलसिंकी)',
         'Europe/Isle_of_Man' => 'ग्रीनिच प्रमाण वेळ (आयल ऑफ मॅन)',
-        'Europe/Istanbul' => 'तुर्किये वेळ (इस्तंबूल)',
+        'Europe/Istanbul' => 'तुर्की वेळ (इस्तंबूल)',
         'Europe/Jersey' => 'ग्रीनिच प्रमाण वेळ (जर्सी)',
         'Europe/Kaliningrad' => 'पूर्व युरोपियन वेळ (कलिनिनग्राड)',
         'Europe/Kiev' => 'पूर्व युरोपियन वेळ (कीव)',
-        'Europe/Kirov' => 'रशिया वेळ (किरोव)',
+        'Europe/Kyiv' => 'पूर्व युरोपियन वेळ (कीव)',
+        'Europe/Kirov' => 'मॉस्को वेळ (किरोव)',
         'Europe/Lisbon' => 'पश्चिम युरोपियन वेळ (लिस्बन)',
         'Europe/Ljubljana' => 'मध्‍य युरोपियन वेळ (लुब्लियाना)',
         'Europe/London' => 'ग्रीनिच प्रमाण वेळ (लंडन)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'समारा वेळ',
         'Europe/San_Marino' => 'मध्‍य युरोपियन वेळ (सॅन मरिनो)',
         'Europe/Sarajevo' => 'मध्‍य युरोपियन वेळ (साराजेव्हो)',
-        'Europe/Saratov' => 'मॉस्को वेळ (सारातोव)',
+        'Europe/Saratov' => 'समारा वेळ (सारातोव)',
         'Europe/Simferopol' => 'मॉस्को वेळ (सिम्फरोपोल)',
         'Europe/Skopje' => 'मध्‍य युरोपियन वेळ (स्कॉप्जे)',
         'Europe/Sofia' => 'पूर्व युरोपियन वेळ (सोफिया)',
         'Europe/Stockholm' => 'मध्‍य युरोपियन वेळ (स्टॉकहोम)',
         'Europe/Tallinn' => 'पूर्व युरोपियन वेळ (तालिन)',
         'Europe/Tirane' => 'मध्‍य युरोपियन वेळ (टिराने)',
-        'Europe/Ulyanovsk' => 'मॉस्को वेळ (उल्यानोव्स्क)',
+        'Europe/Ulyanovsk' => 'समारा वेळ (उल्यानोव्स्क)',
         'Europe/Vaduz' => 'मध्‍य युरोपियन वेळ (वडूझ)',
         'Europe/Vatican' => 'मध्‍य युरोपियन वेळ (व्हॅटिकन)',
         'Europe/Vienna' => 'मध्‍य युरोपियन वेळ (व्हिएन्ना)',
         'Europe/Vilnius' => 'पूर्व युरोपियन वेळ (विलनियस)',
-        'Europe/Volgograd' => 'व्होल्गोग्राड वेळ',
+        'Europe/Volgograd' => 'मॉस्को वेळ (व्होल्गोग्राड)',
         'Europe/Warsaw' => 'मध्‍य युरोपियन वेळ (वॉर्सा)',
         'Europe/Zagreb' => 'मध्‍य युरोपियन वेळ (झॅग्रेब)',
         'Europe/Zurich' => 'मध्‍य युरोपियन वेळ (झुरिक)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'चॅथम वेळ (चॅटहॅम)',
         'Pacific/Easter' => 'इस्टर बेट वेळ (ईस्टर)',
         'Pacific/Efate' => 'वानुआतु वेळ (इफेट)',
-        'Pacific/Enderbury' => '‍फोनिक्स बेटे वेळ (एंडरबरी)',
+        'Pacific/Enderbury' => '‍फोनिक्स बेटे वेळ (कँटन)',
+        'Pacific/Kanton' => '‍फोनिक्स बेटे वेळ (कँटन)',
         'Pacific/Fakaofo' => 'टोकेलाऊ वेळ (फाकाओफो)',
         'Pacific/Fiji' => 'फिजी वेळ',
         'Pacific/Funafuti' => 'तुवालू वेळ (फुनाफुती)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'गॅम्बियर वेळ',
         'Pacific/Guadalcanal' => 'सोलोमॉन बेटे वेळ (ग्वाडलकनाल)',
         'Pacific/Guam' => 'चामोरो प्रमाण वेळ (गुआम)',
-        'Pacific/Honolulu' => 'हवाई-अलूशन वेळ (होनोलुलू)',
+        'Pacific/Honolulu' => 'हवाई-अलूशन प्रमाण वेळ (होनोलुलू)',
         'Pacific/Kiritimati' => 'लाइन बेटे वेळ (किरितिमाती)',
         'Pacific/Kosrae' => 'कोस्राई वेळ (कोशाय)',
         'Pacific/Kwajalein' => 'मार्शल बेटे वेळ (क्वाजालेईन)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'पलाऊ वेळ',
         'Pacific/Pitcairn' => 'पिटकैर्न वेळ (पिटकेर्न)',
         'Pacific/Ponape' => 'पोनॅपे वेळ (पोनपेई)',
+        'Pacific/Pohnpei' => 'पोनॅपे वेळ (पोनपेई)',
         'Pacific/Port_Moresby' => 'पापुआ न्यू गिनी वेळ (पोर्ट मोरेस्बे)',
         'Pacific/Rarotonga' => 'कुक बेटे वेळ (रारोटोंगा)',
         'Pacific/Saipan' => 'चामोरो प्रमाण वेळ (सैपान)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'गिल्बर्ट बेटे वेळ (तारावा)',
         'Pacific/Tongatapu' => 'टोंगा वेळ (टोंगाटापू)',
         'Pacific/Truk' => 'चूक वेळ',
+        'Pacific/Chuuk' => 'चूक वेळ',
         'Pacific/Wake' => 'वेक बेट वेळ',
         'Pacific/Wallis' => 'वॉलिस आणि फुटुना वेळ (वालिस)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ms.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ms.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ms.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ms.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Waktu Afrika Timur (Addis Ababa)',
         'Africa/Algiers' => 'Waktu Eropah Tengah (Algiers)',
         'Africa/Asmera' => 'Waktu Afrika Timur (Asmara)',
+        'Africa/Asmara' => 'Waktu Afrika Timur (Asmara)',
         'Africa/Bamako' => 'Waktu Min Greenwich (Bamako)',
         'Africa/Bangui' => 'Waktu Afrika Barat (Bangui)',
         'Africa/Banjul' => 'Waktu Min Greenwich (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Waktu Afrika Timur (Dar es Salaam)',
         'Africa/Djibouti' => 'Waktu Afrika Timur (Djibouti)',
         'Africa/Douala' => 'Waktu Afrika Barat (Douala)',
-        'Africa/El_Aaiun' => 'Waktu Eropah Barat (El Aaiun)',
+        'Africa/El_Aaiun' => 'Waktu Eropah Barat (El Aaiún)',
         'Africa/Freetown' => 'Waktu Min Greenwich (Freetown)',
         'Africa/Gaborone' => 'Waktu Afrika Tengah (Gaborone)',
         'Africa/Harare' => 'Waktu Afrika Tengah (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Waktu Afrika Barat (Kinshasa)',
         'Africa/Lagos' => 'Waktu Afrika Barat (Lagos)',
         'Africa/Libreville' => 'Waktu Afrika Barat (Libreville)',
-        'Africa/Lome' => 'Waktu Min Greenwich (Lome)',
+        'Africa/Lome' => 'Waktu Min Greenwich (Lomé)',
         'Africa/Luanda' => 'Waktu Afrika Barat (Luanda)',
         'Africa/Lubumbashi' => 'Waktu Afrika Tengah (Lubumbashi)',
         'Africa/Lusaka' => 'Waktu Afrika Tengah (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Waktu Afrika Timur (Mogadishu)',
         'Africa/Monrovia' => 'Waktu Min Greenwich (Monrovia)',
         'Africa/Nairobi' => 'Waktu Afrika Timur (Nairobi)',
-        'Africa/Ndjamena' => 'Waktu Afrika Barat (Ndjamena)',
+        'Africa/Ndjamena' => 'Waktu Afrika Barat (N’Djamena)',
         'Africa/Niamey' => 'Waktu Afrika Barat (Niamey)',
         'Africa/Nouakchott' => 'Waktu Min Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'Waktu Min Greenwich (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Waktu Alaska (Anchorage)',
         'America/Anguilla' => 'Waktu Atlantik (Anguilla)',
         'America/Antigua' => 'Waktu Atlantik (Antigua)',
-        'America/Araguaina' => 'Waktu Brasilia (Araguaina)',
+        'America/Araguaina' => 'Waktu Brasilia (Araguaína)',
         'America/Argentina/La_Rioja' => 'Waktu Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Waktu Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Waktu Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Waktu Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Waktu Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Waktu Argentina (San Luis)',
-        'America/Argentina/Tucuman' => 'Waktu Argentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Waktu Argentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Waktu Argentina (Ushuaia)',
         'America/Aruba' => 'Waktu Atlantik (Aruba)',
         'America/Asuncion' => 'Waktu Paraguay (Asunción)',
         'America/Bahia' => 'Waktu Brasilia (Bahia)',
         'America/Bahia_Banderas' => 'Waktu Pusat (Bahia Banderas)',
         'America/Barbados' => 'Waktu Atlantik (Barbados)',
-        'America/Belem' => 'Waktu Brasilia (Belem)',
+        'America/Belem' => 'Waktu Brasilia (Belém)',
         'America/Belize' => 'Waktu Pusat (Belize)',
         'America/Blanc-Sablon' => 'Waktu Atlantik (Blanc-Sablon)',
         'America/Boa_Vista' => 'Waktu Amazon (Boa Vista)',
-        'America/Bogota' => 'Waktu Colombia (Bogota)',
+        'America/Bogota' => 'Waktu Colombia (Bogotá)',
         'America/Boise' => 'Waktu Pergunungan (Boise)',
         'America/Buenos_Aires' => 'Waktu Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Waktu Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Waktu Pergunungan (Teluk Cambridge)',
         'America/Campo_Grande' => 'Waktu Amazon (Campo Grande)',
         'America/Cancun' => 'Waktu Timur (Cancun)',
         'America/Caracas' => 'Waktu Venezuela (Caracas)',
         'America/Catamarca' => 'Waktu Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Waktu Argentina (Catamarca)',
         'America/Cayenne' => 'Waktu Guyana Perancis (Cayenne)',
         'America/Cayman' => 'Waktu Timur (Cayman)',
         'America/Chicago' => 'Waktu Pusat (Chicago)',
         'America/Chihuahua' => 'Waktu Pusat (Chihuahua)',
         'America/Ciudad_Juarez' => 'Waktu Pergunungan (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Waktu Timur (Atikokan)',
-        'America/Cordoba' => 'Waktu Argentina (Cordoba)',
+        'America/Atikokan' => 'Waktu Timur (Atikokan)',
+        'America/Cordoba' => 'Waktu Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Waktu Argentina (Córdoba)',
         'America/Costa_Rica' => 'Waktu Pusat (Costa Rica)',
+        'America/Coyhaique' => 'Waktu Chile (Coyhaique)',
         'America/Creston' => 'Waktu Pergunungan (Creston)',
-        'America/Cuiaba' => 'Waktu Amazon (Cuiaba)',
+        'America/Cuiaba' => 'Waktu Amazon (Cuiabá)',
         'America/Curacao' => 'Waktu Atlantik (Curaçao)',
         'America/Danmarkshavn' => 'Waktu Min Greenwich (Danmarkshavn)',
         'America/Dawson' => 'Masa Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Waktu Timur (Detroit)',
         'America/Dominica' => 'Waktu Atlantik (Dominica)',
         'America/Edmonton' => 'Waktu Pergunungan (Edmonton)',
-        'America/Eirunepe' => 'Waktu Acre (Eirunepe)',
+        'America/Eirunepe' => 'Waktu Acre (Eirunepé)',
         'America/El_Salvador' => 'Waktu Pusat (El Salvador)',
         'America/Fort_Nelson' => 'Waktu Pergunungan (Fort Nelson)',
         'America/Fortaleza' => 'Waktu Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'Waktu Atlantik (Teluk Glace)',
         'America/Godthab' => 'Waktu Greenland (Nuuk)',
+        'America/Nuuk' => 'Waktu Greenland (Nuuk)',
         'America/Goose_Bay' => 'Waktu Atlantik (Teluk Goose)',
         'America/Grand_Turk' => 'Waktu Timur (Grand Turk)',
         'America/Grenada' => 'Waktu Atlantik (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Waktu Timur (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Waktu Timur (Winamac, Indiana)',
         'America/Indianapolis' => 'Waktu Timur (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Waktu Timur (Indianapolis)',
         'America/Inuvik' => 'Waktu Pergunungan (Inuvik)',
         'America/Iqaluit' => 'Waktu Timur (Iqaluit)',
         'America/Jamaica' => 'Waktu Timur (Jamaica)',
         'America/Jujuy' => 'Waktu Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Waktu Argentina (Jujuy)',
         'America/Juneau' => 'Waktu Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Waktu Timur (Monticello, Kentucky)',
         'America/Kralendijk' => 'Waktu Atlantik (Kralendijk)',
@@ -136,19 +145,21 @@
         'America/Lima' => 'Waktu Peru (Lima)',
         'America/Los_Angeles' => 'Waktu Pasifik (Los Angeles)',
         'America/Louisville' => 'Waktu Timur (Louisville)',
+        'America/Kentucky/Louisville' => 'Waktu Timur (Louisville)',
         'America/Lower_Princes' => 'Waktu Atlantik (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Waktu Brasilia (Maceio)',
+        'America/Maceio' => 'Waktu Brasilia (Maceió)',
         'America/Managua' => 'Waktu Pusat (Managua)',
         'America/Manaus' => 'Waktu Amazon (Manaus)',
         'America/Marigot' => 'Waktu Atlantik (Marigot)',
         'America/Martinique' => 'Waktu Atlantik (Martinique)',
         'America/Matamoros' => 'Waktu Pusat (Matamoros)',
-        'America/Mazatlan' => 'Waktu Pasifik Mexico (Mazatlan)',
+        'America/Mazatlan' => 'Waktu Pasifik Mexico (Mazatlán)',
         'America/Mendoza' => 'Waktu Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Waktu Argentina (Mendoza)',
         'America/Menominee' => 'Waktu Pusat (Menominee)',
         'America/Merida' => 'Waktu Pusat (Merida)',
         'America/Metlakatla' => 'Waktu Alaska (Metlakatla)',
-        'America/Mexico_City' => 'Waktu Pusat (Mexico City)',
+        'America/Mexico_City' => 'Waktu Pusat (Ciudad de México)',
         'America/Miquelon' => 'Waktu Saint Pierre dan Miquelon',
         'America/Moncton' => 'Waktu Atlantik (Moncton)',
         'America/Monterrey' => 'Waktu Pusat (Monterrey)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Waktu Pusat (Regina)',
         'America/Resolute' => 'Waktu Pusat (Resolute)',
         'America/Rio_Branco' => 'Waktu Acre (Rio Branco)',
-        'America/Santarem' => 'Waktu Brasilia (Santarem)',
+        'America/Santarem' => 'Waktu Brasilia (Santarém)',
         'America/Santiago' => 'Waktu Chile (Santiago)',
         'America/Santo_Domingo' => 'Waktu Atlantik (Santo Domingo)',
-        'America/Sao_Paulo' => 'Waktu Brasilia (Sao Paulo)',
+        'America/Sao_Paulo' => 'Waktu Brasilia (São Paulo)',
         'America/Scoresbysund' => 'Waktu Greenland (Ittoqqortoormiit)',
         'America/Sitka' => 'Waktu Alaska (Sitka)',
         'America/St_Barthelemy' => 'Waktu Atlantik (Saint Barthelemy)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Waktu New Zealand (McMurdo)',
         'Antarctica/Palmer' => 'Waktu Chile (Palmer)',
         'Antarctica/Rothera' => 'Waktu Rothera',
-        'Antarctica/Syowa' => 'Waktu Syowa',
+        'Antarctica/Syowa' => 'Waktu Syowa (Showa)',
         'Antarctica/Troll' => 'Waktu Min Greenwich (Troll)',
         'Antarctica/Vostok' => 'Waktu Vostok',
         'Arctic/Longyearbyen' => 'Waktu Eropah Tengah (Longyearbyen)',
         'Asia/Aden' => 'Waktu Arab (Aden)',
         'Asia/Almaty' => 'Waktu Kazakhstan (Almaty)',
         'Asia/Amman' => 'Waktu Eropah Timur (Amman)',
-        'Asia/Anadyr' => 'Waktu Anadyr',
+        'Asia/Anadyr' => 'Waktu Petropavlovsk-Kamchatski (Anadyr)',
         'Asia/Aqtau' => 'Waktu Kazakhstan (Aqtau)',
         'Asia/Aqtobe' => 'Waktu Kazakhstan (Aqtobe)',
         'Asia/Ashgabat' => 'Waktu Turkmenistan (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Waktu Arab (Bahrain)',
         'Asia/Baku' => 'Waktu Azerbaijan (Baku)',
         'Asia/Bangkok' => 'Waktu Indochina (Bangkok)',
-        'Asia/Barnaul' => 'Waktu Rusia (Barnaul)',
+        'Asia/Barnaul' => 'Waktu Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Waktu Eropah Timur (Beirut)',
         'Asia/Bishkek' => 'Waktu Kyrgystan (Bishkek)',
         'Asia/Brunei' => 'Waktu Brunei Darussalam',
         'Asia/Calcutta' => 'Waktu Piawai India (Kolkata)',
+        'Asia/Kolkata' => 'Waktu Piawai India (Kolkata)',
         'Asia/Chita' => 'Waktu Yakutsk (Chita)',
         'Asia/Colombo' => 'Waktu Piawai India (Colombo)',
         'Asia/Damascus' => 'Waktu Eropah Timur (Damsyik)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Waktu Eropah Timur (Gaza)',
         'Asia/Hebron' => 'Waktu Eropah Timur (Hebron)',
         'Asia/Hong_Kong' => 'Waktu Hong Kong',
-        'Asia/Hovd' => 'Waktu Hovd',
+        'Asia/Hovd' => 'Waktu Hovd (Khovd)',
         'Asia/Irkutsk' => 'Waktu Irkutsk',
         'Asia/Jakarta' => 'Waktu Indonesia Barat (Jakarta)',
         'Asia/Jayapura' => 'Waktu Indonesia Timur (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Waktu Petropavlovsk-Kamchatski (Kamchatka)',
         'Asia/Karachi' => 'Waktu Pakistan (Karachi)',
         'Asia/Katmandu' => 'Waktu Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Waktu Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Waktu Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Waktu Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Waktu Malaysia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Waktu Piawai Teluk (Muscat)',
         'Asia/Nicosia' => 'Waktu Eropah Timur (Nicosia)',
         'Asia/Novokuznetsk' => 'Waktu Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Waktu Novosibirsk',
+        'Asia/Novosibirsk' => 'Waktu Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Waktu Omsk',
         'Asia/Oral' => 'Waktu Kazakhstan (Oral)',
         'Asia/Phnom_Penh' => 'Waktu Indochina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Waktu Kazakhstan (Kostanay)',
         'Asia/Qyzylorda' => 'Waktu Kazakhstan (Qyzylorda)',
         'Asia/Rangoon' => 'Waktu Myanmar (Yangon)',
+        'Asia/Yangon' => 'Waktu Myanmar (Yangon)',
         'Asia/Riyadh' => 'Waktu Arab (Riyadh)',
         'Asia/Saigon' => 'Waktu Indochina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Waktu Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Waktu Indochina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Waktu Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Waktu Uzbekistan (Samarkand)',
         'Asia/Seoul' => 'Waktu Korea (Seoul)',
         'Asia/Shanghai' => 'Waktu China (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Waktu Iran (Tehran)',
         'Asia/Thimphu' => 'Waktu Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Waktu Jepun (Tokyo)',
-        'Asia/Tomsk' => 'Waktu Rusia (Tomsk)',
+        'Asia/Tomsk' => 'Waktu Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Waktu Ulan Bator (Ulaanbaatar)',
-        'Asia/Urumqi' => 'Waktu China (Urumqi)',
+        'Asia/Urumqi' => 'Waktu China (Ürümqi)',
         'Asia/Ust-Nera' => 'Waktu Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Waktu Indochina (Vientiane)',
         'Asia/Vladivostok' => 'Waktu Vladivostok',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Waktu Armenia (Yerevan)',
         'Atlantic/Azores' => 'Waktu Azores',
         'Atlantic/Bermuda' => 'Waktu Atlantik (Bermuda)',
-        'Atlantic/Canary' => 'Waktu Eropah Barat (Canary)',
+        'Atlantic/Canary' => 'Waktu Eropah Barat (Canarias)',
         'Atlantic/Cape_Verde' => 'Waktu Tanjung Verde (Cape Verde)',
         'Atlantic/Faeroe' => 'Waktu Eropah Barat (Faroe)',
+        'Atlantic/Faroe' => 'Waktu Eropah Barat (Faroe)',
         'Atlantic/Madeira' => 'Waktu Eropah Barat (Madeira)',
         'Atlantic/Reykjavik' => 'Waktu Min Greenwich (Reykjavik)',
         'Atlantic/South_Georgia' => 'Waktu Georgia Selatan (South Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Waktu Universal Selaras',
         'Europe/Amsterdam' => 'Waktu Eropah Tengah (Amsterdam)',
         'Europe/Andorra' => 'Waktu Eropah Tengah (Andorra)',
-        'Europe/Astrakhan' => 'Waktu Moscow (Astrakhan)',
+        'Europe/Astrakhan' => 'Waktu Samara (Astrakhan)',
         'Europe/Athens' => 'Waktu Eropah Timur (Athens)',
         'Europe/Belgrade' => 'Waktu Eropah Tengah (Belgrade)',
         'Europe/Berlin' => 'Waktu Eropah Tengah (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Waktu Eropah Tengah (Brussels)',
         'Europe/Bucharest' => 'Waktu Eropah Timur (Bucharest)',
         'Europe/Budapest' => 'Waktu Eropah Tengah (Budapest)',
-        'Europe/Busingen' => 'Waktu Eropah Tengah (Busingen)',
-        'Europe/Chisinau' => 'Waktu Eropah Timur (Chisinau)',
+        'Europe/Busingen' => 'Waktu Eropah Tengah (Büsingen)',
+        'Europe/Chisinau' => 'Waktu Eropah Timur (Chișinău)',
         'Europe/Copenhagen' => 'Waktu Eropah Tengah (Copenhagen)',
         'Europe/Dublin' => 'Waktu Min Greenwich (Dublin)',
         'Europe/Gibraltar' => 'Waktu Eropah Tengah (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Waktu Min Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Waktu Eropah Timur (Kaliningrad)',
         'Europe/Kiev' => 'Waktu Eropah Timur (Kiev)',
-        'Europe/Kirov' => 'Waktu Rusia (Kirov)',
+        'Europe/Kyiv' => 'Waktu Eropah Timur (Kiev)',
+        'Europe/Kirov' => 'Waktu Moscow (Kirov)',
         'Europe/Lisbon' => 'Waktu Eropah Barat (Lisbon)',
         'Europe/Ljubljana' => 'Waktu Eropah Tengah (Ljubljana)',
         'Europe/London' => 'Waktu Min Greenwich (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Waktu Samara',
         'Europe/San_Marino' => 'Waktu Eropah Tengah (San Marino)',
         'Europe/Sarajevo' => 'Waktu Eropah Tengah (Sarajevo)',
-        'Europe/Saratov' => 'Waktu Moscow (Saratov)',
+        'Europe/Saratov' => 'Waktu Samara (Saratov)',
         'Europe/Simferopol' => 'Waktu Moscow (Simferopol)',
         'Europe/Skopje' => 'Waktu Eropah Tengah (Skopje)',
         'Europe/Sofia' => 'Waktu Eropah Timur (Sofia)',
         'Europe/Stockholm' => 'Waktu Eropah Tengah (Stockholm)',
         'Europe/Tallinn' => 'Waktu Eropah Timur (Tallinn)',
-        'Europe/Tirane' => 'Waktu Eropah Tengah (Tirane)',
-        'Europe/Ulyanovsk' => 'Waktu Moscow (Ulyanovsk)',
+        'Europe/Tirane' => 'Waktu Eropah Tengah (Tirana)',
+        'Europe/Ulyanovsk' => 'Waktu Samara (Ulyanovsk)',
         'Europe/Vaduz' => 'Waktu Eropah Tengah (Vaduz)',
         'Europe/Vatican' => 'Waktu Eropah Tengah (Vatican)',
         'Europe/Vienna' => 'Waktu Eropah Tengah (Vienna)',
         'Europe/Vilnius' => 'Waktu Eropah Timur (Vilnius)',
-        'Europe/Volgograd' => 'Waktu Volgograd',
+        'Europe/Volgograd' => 'Waktu Moscow (Volgograd)',
         'Europe/Warsaw' => 'Waktu Eropah Tengah (Warsaw)',
         'Europe/Zagreb' => 'Waktu Eropah Tengah (Zagreb)',
         'Europe/Zurich' => 'Waktu Eropah Tengah (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Waktu Lautan Hindi (Chagos)',
         'Indian/Christmas' => 'Waktu Pulau Christmas',
         'Indian/Cocos' => 'Waktu Kepulauan Cocos',
-        'Indian/Comoro' => 'Waktu Afrika Timur (Comoro)',
+        'Indian/Comoro' => 'Waktu Afrika Timur (Comores)',
         'Indian/Kerguelen' => 'Waktu Perancis Selatan dan Antartika (Kerguelen)',
-        'Indian/Mahe' => 'Waktu Seychelles (Mahe)',
+        'Indian/Mahe' => 'Waktu Seychelles (Mahé)',
         'Indian/Maldives' => 'Waktu Maldives',
         'Indian/Mauritius' => 'Waktu Mauritius',
         'Indian/Mayotte' => 'Waktu Afrika Timur (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Waktu Chatham',
         'Pacific/Easter' => 'Waktu Pulau Easter',
         'Pacific/Efate' => 'Waktu Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Waktu Kepulauan Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Waktu Kepulauan Phoenix (Pulau Canton)',
+        'Pacific/Kanton' => 'Waktu Kepulauan Phoenix (Pulau Canton)',
         'Pacific/Fakaofo' => 'Waktu Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Waktu Fiji',
         'Pacific/Funafuti' => 'Waktu Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Waktu Galapagos',
+        'Pacific/Galapagos' => 'Waktu Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Waktu Gambier',
         'Pacific/Guadalcanal' => 'Waktu Kepulauan Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Waktu Piawai Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Waktu Hawaii-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Waktu Piawai Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Waktu Kepulauan Line (Kiritimati)',
         'Pacific/Kosrae' => 'Waktu Kosrae',
         'Pacific/Kwajalein' => 'Waktu Kepulauan Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Waktu Nauru',
         'Pacific/Niue' => 'Waktu Niue',
         'Pacific/Norfolk' => 'Waktu Kepulauan Norfolk',
-        'Pacific/Noumea' => 'Waktu New Caledonia (Noumea)',
+        'Pacific/Noumea' => 'Waktu New Caledonia (Nouméa)',
         'Pacific/Pago_Pago' => 'Waktu Samoa (Pago Pago)',
         'Pacific/Palau' => 'Waktu Palau',
         'Pacific/Pitcairn' => 'Waktu Pitcairn',
         'Pacific/Ponape' => 'Waktu Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Waktu Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Waktu Papua New Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'Waktu Kepulauan Cook (Rarotonga)',
         'Pacific/Saipan' => 'Waktu Piawai Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Waktu Kepulauan Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Waktu Tonga (Tongatapu)',
         'Pacific/Truk' => 'Waktu Chuuk',
+        'Pacific/Chuuk' => 'Waktu Chuuk',
         'Pacific/Wake' => 'Waktu Pulau Wake',
-        'Pacific/Wallis' => 'Waktu Wallis dan Futuna',
+        'Pacific/Wallis' => 'Waktu Wallis dan Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/mt.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Ħin ta’ l-Etjopja (Addis Ababa)',
         'Africa/Algiers' => 'Ħin Ċentrali Ewropew (l-Alġier)',
         'Africa/Asmera' => 'Ħin ta’ l-Eritrea (Asmara)',
+        'Africa/Asmara' => 'Ħin ta’ l-Eritrea (Asmara)',
         'Africa/Bamako' => 'Greenwich Mean Time (Bamako)',
         'Africa/Bangui' => 'Ħin ta’ ir-Repubblika Ċentru-Afrikana (Bangui)',
         'Africa/Banjul' => 'Greenwich Mean Time (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Ħin ta’ it-Tanzanija (Dar es Salaam)',
         'Africa/Djibouti' => 'Ħin ta’ il-Djibouti (Djibouti)',
         'Africa/Douala' => 'Ħin ta’ il-Kamerun (Douala)',
-        'Africa/El_Aaiun' => 'Ħin ta’ is-Saħara tal-Punent (El Aaiun)',
+        'Africa/El_Aaiun' => 'Ħin ta’ is-Saħara tal-Punent (El Aaiún)',
         'Africa/Freetown' => 'Greenwich Mean Time (Freetown)',
         'Africa/Gaborone' => 'Ħin ta’ il-Botswana (Gaborone)',
         'Africa/Harare' => 'Ħin ta’ iż-Żimbabwe (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Ħin ta’ ir-Repubblika Demokratika tal-Kongo (Kinshasa)',
         'Africa/Lagos' => 'Ħin ta’ in-Niġerja (Lagos)',
         'Africa/Libreville' => 'Ħin ta’ il-Gabon (Libreville)',
-        'Africa/Lome' => 'Greenwich Mean Time (Lome)',
+        'Africa/Lome' => 'Greenwich Mean Time (Lomé)',
         'Africa/Luanda' => 'Ħin ta’ l-Angola (Luanda)',
         'Africa/Lubumbashi' => 'Ħin ta’ ir-Repubblika Demokratika tal-Kongo (Lubumbashi)',
         'Africa/Lusaka' => 'Ħin ta’ iż-Żambja (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Ħin ta’ is-Somalja (Mogadishu)',
         'Africa/Monrovia' => 'Greenwich Mean Time (Monrovia)',
         'Africa/Nairobi' => 'Ħin ta’ il-Kenja (Nairobi)',
-        'Africa/Ndjamena' => 'Ħin ta’ iċ-Chad (Ndjamena)',
+        'Africa/Ndjamena' => 'Ħin ta’ iċ-Chad (N’Djamena)',
         'Africa/Niamey' => 'Ħin ta’ in-Niġer (Niamey)',
         'Africa/Nouakchott' => 'Greenwich Mean Time (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich Mean Time (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Ħin ta’ l-Istati Uniti (Anchorage)',
         'America/Anguilla' => 'Ħin ta’ Anguilla (Anguilla)',
         'America/Antigua' => 'Ħin ta’ Antigua u Barbuda (Antigua)',
-        'America/Araguaina' => 'Ħin ta’ Il-Brażil (Araguaina)',
+        'America/Araguaina' => 'Ħin ta’ Il-Brażil (Araguaína)',
         'America/Argentina/La_Rioja' => 'Ħin ta’ l-Arġentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Ħin ta’ l-Arġentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Ħin ta’ l-Arġentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Ħin ta’ l-Arġentina (Salta)',
         'America/Argentina/San_Juan' => 'Ħin ta’ l-Arġentina (San Juan)',
         'America/Argentina/San_Luis' => 'Ħin ta’ l-Arġentina (San Luis)',
-        'America/Argentina/Tucuman' => 'Ħin ta’ l-Arġentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Ħin ta’ l-Arġentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Ħin ta’ l-Arġentina (Ushuaia)',
         'America/Aruba' => 'Ħin ta’ Aruba (Aruba)',
         'America/Asuncion' => 'Ħin ta’ il-Paragwaj (Asunción)',
         'America/Bahia' => 'Ħin ta’ Il-Brażil (Bahia)',
         'America/Bahia_Banderas' => 'Ħin ta’ il-Messiku (Bahía de Banderas)',
         'America/Barbados' => 'Ħin ta’ Barbados (Barbados)',
-        'America/Belem' => 'Ħin ta’ Il-Brażil (Belem)',
+        'America/Belem' => 'Ħin ta’ Il-Brażil (Belém)',
         'America/Belize' => 'Ħin ta’ il-Belize (Belize)',
         'America/Blanc-Sablon' => 'Ħin ta’ il-Kanada (Blanc-Sablon)',
         'America/Boa_Vista' => 'Ħin ta’ Il-Brażil (Boa Vista)',
-        'America/Bogota' => 'Ħin ta’ il-Kolombja (Bogota)',
+        'America/Bogota' => 'Ħin ta’ il-Kolombja (Bogotá)',
         'America/Boise' => 'Ħin ta’ l-Istati Uniti (Boise)',
         'America/Buenos_Aires' => 'Ħin ta’ l-Arġentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Ħin ta’ l-Arġentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Ħin ta’ il-Kanada (Cambridge Bay)',
         'America/Campo_Grande' => 'Ħin ta’ Il-Brażil (Campo Grande)',
         'America/Cancun' => 'Ħin ta’ il-Messiku (Cancún)',
         'America/Caracas' => 'Ħin ta’ il-Venezwela (Caracas)',
         'America/Catamarca' => 'Ħin ta’ l-Arġentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Ħin ta’ l-Arġentina (Catamarca)',
         'America/Cayenne' => 'Ħin ta’ il-Guyana Franċiża (Cayenne)',
         'America/Cayman' => 'Ħin ta’ il-Gżejjer Cayman (Cayman)',
         'America/Chicago' => 'Ħin ta’ l-Istati Uniti (Chicago)',
         'America/Chihuahua' => 'Ħin ta’ il-Messiku (Chihuahua)',
         'America/Ciudad_Juarez' => 'Ħin ta’ il-Messiku (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Ħin ta’ il-Kanada (Atikokan)',
-        'America/Cordoba' => 'Ħin ta’ l-Arġentina (Cordoba)',
+        'America/Atikokan' => 'Ħin ta’ il-Kanada (Atikokan)',
+        'America/Cordoba' => 'Ħin ta’ l-Arġentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Ħin ta’ l-Arġentina (Córdoba)',
         'America/Costa_Rica' => 'Ħin ta’ il-Costa Rica (Costa Rica)',
+        'America/Coyhaique' => 'Ħin ta’ iċ-Ċili (Coyhaique)',
         'America/Creston' => 'Ħin ta’ il-Kanada (Creston)',
-        'America/Cuiaba' => 'Ħin ta’ Il-Brażil (Cuiaba)',
+        'America/Cuiaba' => 'Ħin ta’ Il-Brażil (Cuiabá)',
         'America/Curacao' => 'Ħin ta’ Curaçao (Curaçao)',
         'America/Danmarkshavn' => 'Greenwich Mean Time (Danmarkshavn)',
         'America/Dawson' => 'Ħin ta’ il-Kanada (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Ħin ta’ l-Istati Uniti (Detroit)',
         'America/Dominica' => 'Ħin ta’ Dominica (Dominica)',
         'America/Edmonton' => 'Ħin ta’ il-Kanada (Edmonton)',
-        'America/Eirunepe' => 'Ħin ta’ Il-Brażil (Eirunepe)',
+        'America/Eirunepe' => 'Ħin ta’ Il-Brażil (Eirunepé)',
         'America/El_Salvador' => 'Ħin ta’ El Salvador (El Salvador)',
         'America/Fort_Nelson' => 'Ħin ta’ il-Kanada (Fort Nelson)',
         'America/Fortaleza' => 'Ħin ta’ Il-Brażil (Fortaleza)',
         'America/Glace_Bay' => 'Ħin ta’ il-Kanada (Glace Bay)',
         'America/Godthab' => 'Ħin ta’ Greenland (Nuuk)',
+        'America/Nuuk' => 'Ħin ta’ Greenland (Nuuk)',
         'America/Goose_Bay' => 'Ħin ta’ il-Kanada (Goose Bay)',
         'America/Grand_Turk' => 'Ħin ta’ il-Gżejjer Turks u Caicos (Grand Turk)',
         'America/Grenada' => 'Ħin ta’ Grenada (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Ħin ta’ l-Istati Uniti (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Ħin ta’ l-Istati Uniti (Winamac, Indiana)',
         'America/Indianapolis' => 'Ħin ta’ l-Istati Uniti (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Ħin ta’ l-Istati Uniti (Indianapolis)',
         'America/Inuvik' => 'Ħin ta’ il-Kanada (Inuvik)',
         'America/Iqaluit' => 'Ħin ta’ il-Kanada (Iqaluit)',
         'America/Jamaica' => 'Ħin ta’ il-Ġamajka (il-Ġamajka)',
         'America/Jujuy' => 'Ħin ta’ l-Arġentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Ħin ta’ l-Arġentina (Jujuy)',
         'America/Juneau' => 'Ħin ta’ l-Istati Uniti (Juneau)',
         'America/Kentucky/Monticello' => 'Ħin ta’ l-Istati Uniti (Monticello, Kentucky)',
         'America/Kralendijk' => 'Ħin ta’ in-Netherlands tal-Karibew (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Ħin ta’ il-Perù (Lima)',
         'America/Los_Angeles' => 'Ħin ta’ l-Istati Uniti (Los Angeles)',
         'America/Louisville' => 'Ħin ta’ l-Istati Uniti (Louisville)',
+        'America/Kentucky/Louisville' => 'Ħin ta’ l-Istati Uniti (Louisville)',
         'America/Lower_Princes' => 'Ħin ta’ Sint Maarten (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Ħin ta’ Il-Brażil (Maceio)',
+        'America/Maceio' => 'Ħin ta’ Il-Brażil (Maceió)',
         'America/Managua' => 'Ħin ta’ in-Nikaragwa (Managua)',
         'America/Manaus' => 'Ħin ta’ Il-Brażil (Manaus)',
         'America/Marigot' => 'Ħin ta’ Saint Martin (Marigot)',
         'America/Martinique' => 'Ħin ta’ Martinique (Martinique)',
         'America/Matamoros' => 'Ħin ta’ il-Messiku (Matamoros)',
-        'America/Mazatlan' => 'Ħin ta’ il-Messiku (Mazatlan)',
+        'America/Mazatlan' => 'Ħin ta’ il-Messiku (Mazatlán)',
         'America/Mendoza' => 'Ħin ta’ l-Arġentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Ħin ta’ l-Arġentina (Mendoza)',
         'America/Menominee' => 'Ħin ta’ l-Istati Uniti (Menominee)',
         'America/Merida' => 'Ħin ta’ il-Messiku (Mérida)',
         'America/Metlakatla' => 'Ħin ta’ l-Istati Uniti (Metlakatla)',
-        'America/Mexico_City' => 'Ħin ta’ il-Messiku (Mexico City)',
-        'America/Miquelon' => 'Ħin ta’ Saint Pierre u Miquelon (Miquelon)',
+        'America/Mexico_City' => 'Ħin ta’ il-Messiku (Ciudad de México)',
+        'America/Miquelon' => 'Ħin ta’ Saint Pierre u Miquelon (Saint-Pierre)',
         'America/Moncton' => 'Ħin ta’ il-Kanada (Moncton)',
         'America/Monterrey' => 'Ħin ta’ il-Messiku (Monterrey)',
         'America/Montevideo' => 'Ħin ta’ l-Urugwaj (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Ħin ta’ il-Kanada (Regina)',
         'America/Resolute' => 'Ħin ta’ il-Kanada (Resolute)',
         'America/Rio_Branco' => 'Ħin ta’ Il-Brażil (Rio Branco)',
-        'America/Santarem' => 'Ħin ta’ Il-Brażil (Santarem)',
+        'America/Santarem' => 'Ħin ta’ Il-Brażil (Santarém)',
         'America/Santiago' => 'Ħin ta’ iċ-Ċili (Santiago)',
         'America/Santo_Domingo' => 'Ħin ta’ ir-Repubblika Dominicana (Santo Domingo)',
-        'America/Sao_Paulo' => 'Ħin ta’ Il-Brażil (Sao Paulo)',
+        'America/Sao_Paulo' => 'Ħin ta’ Il-Brażil (São Paulo)',
         'America/Scoresbysund' => 'Ħin ta’ Greenland (Ittoqqortoormiit)',
         'America/Sitka' => 'Ħin ta’ l-Istati Uniti (Sitka)',
         'America/St_Barthelemy' => 'Ħin ta’ Saint Barthélemy (St. Barthélemy)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Ħin ta’ l-Antartika (McMurdo)',
         'Antarctica/Palmer' => 'Ħin ta’ l-Antartika (Palmer)',
         'Antarctica/Rothera' => 'Ħin ta’ l-Antartika (Rothera)',
-        'Antarctica/Syowa' => 'Ħin ta’ l-Antartika (Syowa)',
+        'Antarctica/Syowa' => 'Ħin ta’ l-Antartika (Showa)',
         'Antarctica/Troll' => 'Greenwich Mean Time (Troll)',
         'Antarctica/Vostok' => 'Ħin ta’ l-Antartika (Vostok)',
         'Arctic/Longyearbyen' => 'Ħin Ċentrali Ewropew (Longyearbyen)',
@@ -226,6 +237,7 @@
         'Asia/Bishkek' => 'Ħin ta’ il-Kirgiżistan (Bishkek)',
         'Asia/Brunei' => 'Ħin ta’ il-Brunei (Brunei)',
         'Asia/Calcutta' => 'Ħin ta’ l-Indja (Kolkata)',
+        'Asia/Kolkata' => 'Ħin ta’ l-Indja (Kolkata)',
         'Asia/Chita' => 'Ħin ta’ ir-Russja (Chita)',
         'Asia/Colombo' => 'Ħin ta’ is-Sri Lanka (Colombo)',
         'Asia/Damascus' => 'Ħin ta’ is-Sirja (Damasku)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Ħin ta’ it-Territorji Palestinjani (Gaza)',
         'Asia/Hebron' => 'Ħin ta’ it-Territorji Palestinjani (Hebron)',
         'Asia/Hong_Kong' => 'Ħin ta’ ir-Reġjun Amministrattiv Speċjali ta’ Hong Kong tar-Repubblika tal-Poplu taċ-Ċina (Hong Kong)',
-        'Asia/Hovd' => 'Ħin ta’ il-Mongolja (Hovd)',
+        'Asia/Hovd' => 'Ħin ta’ il-Mongolja (Khovd)',
         'Asia/Irkutsk' => 'Ħin ta’ ir-Russja (Irkutsk)',
         'Asia/Jakarta' => 'Ħin ta’ l-Indoneżja (Jakarta)',
         'Asia/Jayapura' => 'Ħin ta’ l-Indoneżja (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Ħin ta’ ir-Russja (Kamchatka)',
         'Asia/Karachi' => 'Ħin ta’ il-Pakistan (Karachi)',
         'Asia/Katmandu' => 'Ħin ta’ in-Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Ħin ta’ in-Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Ħin ta’ ir-Russja (Khandyga)',
         'Asia/Krasnoyarsk' => 'Ħin ta’ ir-Russja (Krasnoyarsk)',
         'Asia/Kuala_Lumpur' => 'Ħin ta’ il-Malasja (Kuala Lumpur)',
@@ -268,8 +281,10 @@
         'Asia/Qostanay' => 'Ħin ta’ il-Każakistan (Qostanay)',
         'Asia/Qyzylorda' => 'Ħin ta’ il-Każakistan (Qyzylorda)',
         'Asia/Rangoon' => 'Ħin ta’ il-Myanmar/Burma (Rangoon)',
+        'Asia/Yangon' => 'Ħin ta’ il-Myanmar/Burma (Rangoon)',
         'Asia/Riyadh' => 'Ħin ta’ l-Arabja Sawdija (Riyadh)',
         'Asia/Saigon' => 'Ħin ta’ il-Vjetnam (Ho Chi Minh)',
+        'Asia/Ho_Chi_Minh' => 'Ħin ta’ il-Vjetnam (Ho Chi Minh)',
         'Asia/Sakhalin' => 'Ħin ta’ ir-Russja (Sakhalin)',
         'Asia/Samarkand' => 'Ħin ta’ l-Użbekistan (Samarkand)',
         'Asia/Seoul' => 'Ħin ta’ il-Korea t’Isfel (Seoul)',
@@ -284,7 +299,7 @@
         'Asia/Tokyo' => 'Ħin ta’ il-Ġappun (Tokyo)',
         'Asia/Tomsk' => 'Ħin ta’ ir-Russja (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ħin ta’ il-Mongolja (Ulaanbaatar)',
-        'Asia/Urumqi' => 'Ħin ta’ iċ-Ċina (Urumqi)',
+        'Asia/Urumqi' => 'Ħin ta’ iċ-Ċina (Ürümqi)',
         'Asia/Ust-Nera' => 'Ħin ta’ ir-Russja (Ust-Nera)',
         'Asia/Vientiane' => 'Ħin ta’ il-Laos (Vientiane)',
         'Asia/Vladivostok' => 'Ħin ta’ ir-Russja (Vladivostok)',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Ħin ta’ l-Armenja (Yerevan)',
         'Atlantic/Azores' => 'Ħin ta’ il-Portugall (Azores)',
         'Atlantic/Bermuda' => 'Ħin ta’ Bermuda (Bermuda)',
-        'Atlantic/Canary' => 'Ħin ta’ Spanja (Canary)',
+        'Atlantic/Canary' => 'Ħin ta’ Spanja (Canarias)',
         'Atlantic/Cape_Verde' => 'Ħin ta’ Cape Verde (Cape Verde)',
         'Atlantic/Faeroe' => 'Ħin ta’ il-Gżejjer Faeroe (Faroe)',
+        'Atlantic/Faroe' => 'Ħin ta’ il-Gżejjer Faeroe (Faroe)',
         'Atlantic/Madeira' => 'Ħin ta’ il-Portugall (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich Mean Time (Reykjavik)',
         'Atlantic/South_Georgia' => 'Ħin ta’ il-Georgia tan-Nofsinhar u l-Gżejjer Sandwich tan-Nofsinhar (il-Georgia tan-Nofsinhar)',
@@ -323,8 +339,8 @@
         'Europe/Brussels' => 'Ħin Ċentrali Ewropew (Brussell)',
         'Europe/Bucharest' => 'Ħin ta’ ir-Rumanija (Bucharest)',
         'Europe/Budapest' => 'Ħin Ċentrali Ewropew (Budapest)',
-        'Europe/Busingen' => 'Ħin Ċentrali Ewropew (Busingen)',
-        'Europe/Chisinau' => 'Ħin ta’ il-Moldova (Chisinau)',
+        'Europe/Busingen' => 'Ħin Ċentrali Ewropew (Büsingen)',
+        'Europe/Chisinau' => 'Ħin ta’ il-Moldova (Chișinău)',
         'Europe/Copenhagen' => 'Ħin Ċentrali Ewropew (Copenhagen)',
         'Europe/Dublin' => 'Greenwich Mean Time (Dublin)',
         'Europe/Gibraltar' => 'Ħin Ċentrali Ewropew (Ġibiltà)',
@@ -335,6 +351,7 @@
         'Europe/Jersey' => 'Greenwich Mean Time (Jersey)',
         'Europe/Kaliningrad' => 'Ħin ta’ ir-Russja (Kaliningrad)',
         'Europe/Kiev' => 'Ħin ta’ l-Ukrajna (Kyiv)',
+        'Europe/Kyiv' => 'Ħin ta’ l-Ukrajna (Kyiv)',
         'Europe/Kirov' => 'Ħin ta’ ir-Russja (Kirov)',
         'Europe/Lisbon' => 'Ħin ta’ il-Portugall (Liżbona)',
         'Europe/Ljubljana' => 'Ħin Ċentrali Ewropew (Ljubljana)',
@@ -374,9 +391,9 @@
         'Indian/Antananarivo' => 'Ħin ta’ Madagascar (Antananarivo)',
         'Indian/Christmas' => 'Ħin ta’ il-Gżira Christmas (Christmas)',
         'Indian/Cocos' => 'Ħin ta’ Gżejjer Cocos (Keeling) (Cocos)',
-        'Indian/Comoro' => 'Ħin ta’ Comoros (Comoro)',
+        'Indian/Comoro' => 'Ħin ta’ Comoros (Comores)',
         'Indian/Kerguelen' => 'Ħin ta’ It-Territorji Franċiżi tan-Nofsinhar (Kerguelen)',
-        'Indian/Mahe' => 'Ħin ta’ is-Seychelles (Mahe)',
+        'Indian/Mahe' => 'Ħin ta’ is-Seychelles (Mahé)',
         'Indian/Maldives' => 'Ħin ta’ il-Maldivi (il-Maldivi)',
         'Indian/Mauritius' => 'Ħin ta’ Mauritius (Mauritius)',
         'Indian/Mayotte' => 'Ħin ta’ Mayotte (Mayotte)',
@@ -387,11 +404,12 @@
         'Pacific/Chatham' => 'Ħin ta’ New Zealand (Chatham)',
         'Pacific/Easter' => 'Ħin ta’ iċ-Ċili (Easter)',
         'Pacific/Efate' => 'Ħin ta’ Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Ħin ta’ Kiribati (Enderbury)',
+        'Pacific/Enderbury' => 'Ħin ta’ Kiribati (Canton)',
+        'Pacific/Kanton' => 'Ħin ta’ Kiribati (Canton)',
         'Pacific/Fakaofo' => 'Ħin ta’ it-Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Ħin ta’ Fiġi (Fiji)',
         'Pacific/Funafuti' => 'Ħin ta’ Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Ħin ta’ l-Ekwador (Galapagos)',
+        'Pacific/Galapagos' => 'Ħin ta’ l-Ekwador (Galápagos)',
         'Pacific/Gambier' => 'Ħin ta’ Polineżja Franċiża (Gambier)',
         'Pacific/Guadalcanal' => 'Ħin ta’ il-Gżejjer Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Ħin ta’ Guam (Guam)',
@@ -405,11 +423,12 @@
         'Pacific/Nauru' => 'Ħin ta’ Nauru (Nauru)',
         'Pacific/Niue' => 'Ħin ta’ Niue (Niue)',
         'Pacific/Norfolk' => 'Ħin ta’ Gżira Norfolk (Norfolk)',
-        'Pacific/Noumea' => 'Ħin ta’ New Caledonia (Noumea)',
+        'Pacific/Noumea' => 'Ħin ta’ New Caledonia (Nouméa)',
         'Pacific/Pago_Pago' => 'Ħin ta’ is-Samoa Amerikana (Pago Pago)',
         'Pacific/Palau' => 'Ħin ta’ Palau (Palau)',
         'Pacific/Pitcairn' => 'Ħin ta’ Gżejjer Pitcairn (Pitcairn)',
         'Pacific/Ponape' => 'Ħin ta’ il-Mikroneżja (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ħin ta’ il-Mikroneżja (Pohnpei)',
         'Pacific/Port_Moresby' => 'Ħin ta’ Papua New Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'Ħin ta’ Gżejjer Cook (Rarotonga)',
         'Pacific/Saipan' => 'Ħin ta’ Ġżejjer Mariana tat-Tramuntana (Saipan)',
@@ -417,8 +436,9 @@
         'Pacific/Tarawa' => 'Ħin ta’ Kiribati (Tarawa)',
         'Pacific/Tongatapu' => 'Ħin ta’ Tonga (Tongatapu)',
         'Pacific/Truk' => 'Ħin ta’ il-Mikroneżja (Chuuk)',
+        'Pacific/Chuuk' => 'Ħin ta’ il-Mikroneżja (Chuuk)',
         'Pacific/Wake' => 'Ħin ta’ Il-Gżejjer Minuri Mbiegħda tal-Istati Uniti (Wake)',
-        'Pacific/Wallis' => 'Ħin ta’ Wallis u Futuna (Wallis)',
+        'Pacific/Wallis' => 'Ħin ta’ Wallis u Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/my.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/my.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/my.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/my.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'အရှေ့အာဖရိက အချိန် (အားဒစ် အဘာဘာ)',
         'Africa/Algiers' => 'ဥရောပအလယ်ပိုင်း အချိန် (အယ်လ်ဂျီးရီးယား)',
         'Africa/Asmera' => 'အရှေ့အာဖရိက အချိန် (အားစ်မားရာ)',
+        'Africa/Asmara' => 'အရှေ့အာဖရိက အချိန် (အားစ်မားရာ)',
         'Africa/Bamako' => 'ဂရင်းနစ် စံတော်ချိန် (ဘာမာကို)',
         'Africa/Bangui' => 'အနောက်အာဖရိက အချိန် (ဘာန်ဂီး)',
         'Africa/Banjul' => 'ဂရင်းနစ် စံတော်ချိန် (ဘန်ဂျုးလ်)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'ကိုလံဘီယာ အချိန် (ဘိုဂိုတာ)',
         'America/Boise' => 'တောင်တန်းအချိန် (ဗွိုက်စီ)',
         'America/Buenos_Aires' => 'အာဂျင်တီးနား အချိန် (ဗျူနိုအေးရိစ်)',
+        'America/Argentina/Buenos_Aires' => 'အာဂျင်တီးနား အချိန် (ဗျူနိုအေးရိစ်)',
         'America/Cambridge_Bay' => 'တောင်တန်းအချိန် (ကိန်းဘရစ်ချ် ဘေး)',
         'America/Campo_Grande' => 'အမေဇုံ အချိန် (ကိမ်ပို ဂရန်ဒီ)',
         'America/Cancun' => 'အရှေ့ပိုင်းအချိန် (ကန်ခန်)',
         'America/Caracas' => 'ဗင်နီဇွဲလား အချိန် (ကာရာကာစ်)',
         'America/Catamarca' => 'အာဂျင်တီးနား အချိန် (ကာတာမာရကာ)',
+        'America/Argentina/Catamarca' => 'အာဂျင်တီးနား အချိန် (ကာတာမာရကာ)',
         'America/Cayenne' => 'ပြင်သစ် ဂီအားနား အချိန် (ကေညင်န်)',
         'America/Cayman' => 'အရှေ့ပိုင်းအချိန် (ကေမန်)',
         'America/Chicago' => 'အလယ်ပိုင်းအချိန် (ချီကာကို)',
         'America/Chihuahua' => 'အလယ်ပိုင်းအချိန် (ချီဟူအာဟူအာ)',
         'America/Ciudad_Juarez' => 'တောင်တန်းအချိန် (စီယူဒတ်စ် ဟွာရက်စ်)',
         'America/Coral_Harbour' => 'အရှေ့ပိုင်းအချိန် (အာတီကိုကန်)',
+        'America/Atikokan' => 'အရှေ့ပိုင်းအချိန် (အာတီကိုကန်)',
         'America/Cordoba' => 'အာဂျင်တီးနား အချိန် (ကိုဒိုဘာ)',
+        'America/Argentina/Cordoba' => 'အာဂျင်တီးနား အချိန် (ကိုဒိုဘာ)',
         'America/Costa_Rica' => 'အလယ်ပိုင်းအချိန် (ကို့စတာရီကာ)',
+        'America/Coyhaique' => 'ချီလီ အချိန် (ကွိုင်းဟိုင်ခ်)',
         'America/Creston' => 'တောင်တန်းအချိန် (ကရစ်စတွန်)',
         'America/Cuiaba' => 'အမေဇုံ အချိန် (ကွီရာဘာ)',
         'America/Curacao' => 'အတ္တလန်တစ် အချိန် (ကျူရေးကိုး)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ဘရာဇီး အချိန် (ဖို့တ်တာလီဇာ)',
         'America/Glace_Bay' => 'အတ္တလန်တစ် အချိန် (ဂလဲစ်ဘေး)',
         'America/Godthab' => 'ဂရင်းလန်း အချိန် (နုခ်)',
+        'America/Nuuk' => 'ဂရင်းလန်း အချိန် (နုခ်)',
         'America/Goose_Bay' => 'အတ္တလန်တစ် အချိန် (ဂူးစ်ဘေး)',
         'America/Grand_Turk' => 'အရှေ့ပိုင်းအချိန် (ဂရန်ဒ် တခ်)',
         'America/Grenada' => 'အတ္တလန်တစ် အချိန် (ဂရီနေဒါ)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'အရှေ့ပိုင်းအချိန် (ဗင်ဆင့်စ်၊ အင်ဒီယားနား)',
         'America/Indiana/Winamac' => 'အရှေ့ပိုင်းအချိန် (ဝီနာမက်ခ်၊ အင်ဒီယားနား)',
         'America/Indianapolis' => 'အရှေ့ပိုင်းအချိန် (အင်ဒီယားနား ပိုလိစ်)',
+        'America/Indiana/Indianapolis' => 'အရှေ့ပိုင်းအချိန် (အင်ဒီယားနား ပိုလိစ်)',
         'America/Inuvik' => 'တောင်တန်းအချိန် (အီနုဗီခ်)',
         'America/Iqaluit' => 'အရှေ့ပိုင်းအချိန် (အီကာလူအီတ်)',
         'America/Jamaica' => 'အရှေ့ပိုင်းအချိန် (ဂျမေကာ)',
         'America/Jujuy' => 'အာဂျင်တီးနား အချိန် (ဂျုဂျေ)',
+        'America/Argentina/Jujuy' => 'အာဂျင်တီးနား အချိန် (ဂျုဂျေ)',
         'America/Juneau' => 'အလာစကာ အချိန် (ဂျုနိုအော)',
         'America/Kentucky/Monticello' => 'အရှေ့ပိုင်းအချိန် (မွန်တီချယ်လို၊ ကင်တပ်ကီ)',
         'America/Kralendijk' => 'အတ္တလန်တစ် အချိန် (ခရာလဲန်းဒစ်ချ်)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'ပီရူး အချိန် (လီမာ)',
         'America/Los_Angeles' => 'ပစိဖိတ်အချိန် (လော့စ်အိန်ဂျယ်လိစ်)',
         'America/Louisville' => 'အရှေ့ပိုင်းအချိန် (လူဝီဗီးလ်)',
+        'America/Kentucky/Louisville' => 'အရှေ့ပိုင်းအချိန် (လူဝီဗီးလ်)',
         'America/Lower_Princes' => 'အတ္တလန်တစ် အချိန် (လိုအာပရင့်စ် ကွာတာ)',
         'America/Maceio' => 'ဘရာဇီး အချိန် (မာဆဲသွာ)',
         'America/Managua' => 'အလယ်ပိုင်းအချိန် (မာနာဂွါ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'အလယ်ပိုင်းအချိန် (မာတာမိုရိုစ်)',
         'America/Mazatlan' => 'မက္ကဆီကန် ပစိဖိတ် အချိန် (မာဇတ်လန်)',
         'America/Mendoza' => 'အာဂျင်တီးနား အချိန် (မန်ဒိုဇာ)',
+        'America/Argentina/Mendoza' => 'အာဂျင်တီးနား အချိန် (မန်ဒိုဇာ)',
         'America/Menominee' => 'အလယ်ပိုင်းအချိန် (မီနိုမီနီး)',
         'America/Merida' => 'အလယ်ပိုင်းအချိန် (မီရီဒါ)',
         'America/Metlakatla' => 'အလာစကာ အချိန် (မက်တ်လာကက်လာ)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'အာရေဗျ အချိန် (ဘာရိန်း)',
         'Asia/Baku' => 'အဇာဘိုင်ဂျန် အချိန် (ဘာကူ)',
         'Asia/Bangkok' => 'အင်ဒိုချိုင်းနား အချိန် (ဘန်ကောက်)',
-        'Asia/Barnaul' => 'ရုရှား အချိန် (ဘရ်နာအူ)',
+        'Asia/Barnaul' => 'ခရာ့စ်နိုရာစ် အချိန် (ဘရ်နာအူ)',
         'Asia/Beirut' => 'အရှေ့ဥရောပ အချိန် (ဘေရွတ်)',
         'Asia/Bishkek' => 'ကာဂျစ္စတန် အချိန် (ဘီရှ်ခက်)',
         'Asia/Brunei' => 'ဘရူနိုင်း စံတော်ချိန်',
         'Asia/Calcutta' => 'အိန္ဒိယ စံတော်ချိန် (ကိုလျကတ်တား)',
+        'Asia/Kolkata' => 'အိန္ဒိယ စံတော်ချိန် (ကိုလျကတ်တား)',
         'Asia/Chita' => 'ယူခူးတ်စ် အချိန် (ချီတာ)',
         'Asia/Colombo' => 'အိန္ဒိယ စံတော်ချိန် (ကိုလံဘို)',
         'Asia/Damascus' => 'အရှေ့ဥရောပ အချိန် (ဒမားစကပ်)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ရုရှား အချိန် (ခမ်ချာ့ခါ)',
         'Asia/Karachi' => 'ပါကစ္စတန် အချိန် (ကရာချိ)',
         'Asia/Katmandu' => 'နီပေါ အချိန် (ခတ်တမန်ဒူ)',
+        'Asia/Kathmandu' => 'နီပေါ အချိန် (ခတ်တမန်ဒူ)',
         'Asia/Khandyga' => 'ယူခူးတ်စ် အချိန် (ခန်ဒိုင်ဂါ)',
         'Asia/Krasnoyarsk' => 'ခရာ့စ်နိုရာစ် အချိန်',
         'Asia/Kuala_Lumpur' => 'မလေးရှား အချိန် (ကွာလာလမ်ပူ)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ပင်လယ်ကွေ့ အချိန် (မတ်စ်ကက်တ်)',
         'Asia/Nicosia' => 'အရှေ့ဥရောပ အချိန် (နီကိုရှား)',
         'Asia/Novokuznetsk' => 'ခရာ့စ်နိုရာစ် အချိန် (နိုဗိုခူဇ်နက်စ်)',
-        'Asia/Novosibirsk' => 'နိုဗိုစဲဘီအဲယ်စ် အချိန်',
+        'Asia/Novosibirsk' => 'ခရာ့စ်နိုရာစ် အချိန် (နိုဗိုစဲဘီအဲယ်စ်)',
         'Asia/Omsk' => 'အွမ်းစ်ခ် အချိန်',
         'Asia/Oral' => 'ကာဇက်စတန် အချိန် (အော်ရဲလ်)',
         'Asia/Phnom_Penh' => 'အင်ဒိုချိုင်းနား အချိန် (ဖနွမ်ပင်)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'ကာဇက်စတန် အချိန် (ကော့စ်တနေ)',
         'Asia/Qyzylorda' => 'ကာဇက်စတန် အချိန် (ကီဇလော်ဒါ)',
         'Asia/Rangoon' => 'မြန်မာ အချိန် (ရန်ကုန်)',
+        'Asia/Yangon' => 'မြန်မာ အချိန် (ရန်ကုန်)',
         'Asia/Riyadh' => 'အာရေဗျ အချိန် (ရီယားဒ်)',
         'Asia/Saigon' => 'အင်ဒိုချိုင်းနား အချိန် (ဟိုချီမင်းစီးတီး)',
-        'Asia/Sakhalin' => 'ဆာခါလင် အချိန်',
+        'Asia/Ho_Chi_Minh' => 'အင်ဒိုချိုင်းနား အချိန် (ဟိုချီမင်းစီးတီး)',
+        'Asia/Sakhalin' => 'မာဂါဒန်း အချိန် (ဆာခါလင်)',
         'Asia/Samarkand' => 'ဥဇဘက်ကစ္စတန် အချိန် (ဆမ်းမာခန်းဒ်)',
         'Asia/Seoul' => 'ကိုရီးယား အချိန် (ဆိုးလ်)',
         'Asia/Shanghai' => 'တရုတ် အချိန် (ရှန်ဟိုင်း)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'အီရန် အချိန် (တီဟီရန်)',
         'Asia/Thimphu' => 'ဘူတန် အချိန် (တင်ဖူး)',
         'Asia/Tokyo' => 'ဂျပန် အချိန် (တိုကျို)',
-        'Asia/Tomsk' => 'ရုရှား အချိန် (တွန်မ်စ်ခ်)',
+        'Asia/Tomsk' => 'ခရာ့စ်နိုရာစ် အချိန် (တွန်မ်စ်ခ်)',
         'Asia/Ulaanbaatar' => 'ဥလန်ဘာတော အချိန်',
         'Asia/Urumqi' => 'တရုတ် အချိန် (အူရုမ်ချီ)',
         'Asia/Ust-Nera' => 'ဗလာဒီဗော့စတော့ခ် အချိန် (အူးစ် နီရား)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'အနောက်ဥရောပ အချိန် (ကနေရီ)',
         'Atlantic/Cape_Verde' => 'ကိတ်ဗာဒီ အချိန် (ကိတ်ပ် ဗာဒီ)',
         'Atlantic/Faeroe' => 'အနောက်ဥရောပ အချိန် (ဖါရို)',
+        'Atlantic/Faroe' => 'အနောက်ဥရောပ အချိန် (ဖါရို)',
         'Atlantic/Madeira' => 'အနောက်ဥရောပ အချိန် (မဒီးရာ)',
         'Atlantic/Reykjavik' => 'ဂရင်းနစ် စံတော်ချိန် (ရေးကီဗစ်ခ်)',
         'Atlantic/South_Georgia' => 'တောင်ဂျော်ဂျီယာ အချိန်',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'ညှိထားသည့် ကမ္ဘာ့ စံတော်ချိန်',
         'Europe/Amsterdam' => 'ဥရောပအလယ်ပိုင်း အချိန် (အမ်စတာဒမ်)',
         'Europe/Andorra' => 'ဥရောပအလယ်ပိုင်း အချိန် (အန်ဒိုရာ)',
-        'Europe/Astrakhan' => 'မော်စကို အချိန် (အားစ်တရခန်း)',
+        'Europe/Astrakhan' => 'ရုရှား အချိန် (အားစ်တရခန်း)',
         'Europe/Athens' => 'အရှေ့ဥရောပ အချိန် (အေသင်)',
         'Europe/Belgrade' => 'ဥရောပအလယ်ပိုင်း အချိန် (ဘဲလ်ဂရိတ်)',
         'Europe/Berlin' => 'ဥရောပအလယ်ပိုင်း အချိန် (ဘာလင်)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ဂရင်းနစ် စံတော်ချိန် (ဂျာစီ)',
         'Europe/Kaliningrad' => 'အရှေ့ဥရောပ အချိန် (ခါလီနင်ဂရက်)',
         'Europe/Kiev' => 'အရှေ့ဥရောပ အချိန် (ခီးအက်ဖ်)',
-        'Europe/Kirov' => 'ရုရှား အချိန် (ခီရိုဗ်)',
+        'Europe/Kyiv' => 'အရှေ့ဥရောပ အချိန် (ခီးအက်ဖ်)',
+        'Europe/Kirov' => 'မော်စကို အချိန် (ခီရိုဗ်)',
         'Europe/Lisbon' => 'အနောက်ဥရောပ အချိန် (လစ္စဘွန်း)',
         'Europe/Ljubljana' => 'ဥရောပအလယ်ပိုင်း အချိန် (လူဘလီအားနား)',
         'Europe/London' => 'ဂရင်းနစ် စံတော်ချိန် (လန်ဒန်)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'ရုရှား အချိန် (ဆာမားရာ)',
         'Europe/San_Marino' => 'ဥရောပအလယ်ပိုင်း အချိန် (ဆန်မရီးနို)',
         'Europe/Sarajevo' => 'ဥရောပအလယ်ပိုင်း အချိန် (ဆာရာယေဗို)',
-        'Europe/Saratov' => 'မော်စကို အချိန် (ဆာရာတို့ဖ်)',
+        'Europe/Saratov' => 'ရုရှား အချိန် (ဆာရာတို့ဖ်)',
         'Europe/Simferopol' => 'မော်စကို အချိန် (စင်ဖာရိုးဖို)',
         'Europe/Skopje' => 'ဥရောပအလယ်ပိုင်း အချိန် (စကော့ပ်ရာ)',
         'Europe/Sofia' => 'အရှေ့ဥရောပ အချိန် (ဆိုဖီအာ)',
         'Europe/Stockholm' => 'ဥရောပအလယ်ပိုင်း အချိန် (စတော့ဟုမ်း)',
         'Europe/Tallinn' => 'အရှေ့ဥရောပ အချိန် (ထားလင်)',
         'Europe/Tirane' => 'ဥရောပအလယ်ပိုင်း အချိန် (တီရာနီ)',
-        'Europe/Ulyanovsk' => 'မော်စကို အချိန် (အူလီယာနိုစကစ်ဖ်)',
+        'Europe/Ulyanovsk' => 'ရုရှား အချိန် (အူလီယာနိုစကစ်ဖ်)',
         'Europe/Vaduz' => 'ဥရောပအလယ်ပိုင်း အချိန် (ဗာဒူးစ်)',
         'Europe/Vatican' => 'ဥရောပအလယ်ပိုင်း အချိန် (ဗာတီကန်)',
         'Europe/Vienna' => 'ဥရောပအလယ်ပိုင်း အချိန် (ဗီယင်နာ)',
         'Europe/Vilnius' => 'အရှေ့ဥရောပ အချိန် (ဗီးလ်နီအိုးစ်)',
-        'Europe/Volgograd' => 'ဗိုလ်ဂိုဂရက် အချိန်',
+        'Europe/Volgograd' => 'မော်စကို အချိန် (ဗိုလ်ဂိုဂရက်)',
         'Europe/Warsaw' => 'ဥရောပအလယ်ပိုင်း အချိန် (ဝါဆော)',
         'Europe/Zagreb' => 'ဥရောပအလယ်ပိုင်း အချိန် (ဇာဂ်ဂရက်ဘ်)',
         'Europe/Zurich' => 'ဥရောပအလယ်ပိုင်း အချိန် (ဇူးရစ်ချ်)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'ချားသမ်အချိန်',
         'Pacific/Easter' => 'အီစတာကျွန်း အချိန်',
         'Pacific/Efate' => 'ဗနွားတူ အချိန် (အီဖာတီ)',
-        'Pacific/Enderbury' => 'ဖီးနစ်ကျွန်းစု အချိန် (အန်ဒါဘူရီ)',
+        'Pacific/Enderbury' => 'ဖီးနစ်ကျွန်းစု အချိန် (ကန်တွန်)',
+        'Pacific/Kanton' => 'ဖီးနစ်ကျွန်းစု အချိန် (ကန်တွန်)',
         'Pacific/Fakaofo' => 'တိုကီလာဥ အချိန် (ဖာခါအိုဖို)',
         'Pacific/Fiji' => 'ဖီဂျီ အချိန်',
         'Pacific/Funafuti' => 'တူဗားလူ အချိန် (ဖူနာဖူတီ)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ဂမ်ဘီယာ အချိန်',
         'Pacific/Guadalcanal' => 'ဆော်လမွန်ကျွန်းစု အချိန် (ဂွါဒါကနဲလ်)',
         'Pacific/Guam' => 'ချာမိုရို အချိန် (ဂူအမ်)',
-        'Pacific/Honolulu' => 'ဟာဝိုင်ယီ အယ်လူးရှန်း အချိန် (ဟိုနိုလူလူ)',
+        'Pacific/Honolulu' => 'ဟာဝိုင်ယီ အယ်လူးရှန်း စံတော်ချိန် (ဟိုနိုလူလူ)',
         'Pacific/Kiritimati' => 'လိုင်းကျွန်းစု အချိန် (ခရိဒီမတီ)',
         'Pacific/Kosrae' => 'ခိုစ်ရိုင် အချိန်',
         'Pacific/Kwajalein' => 'မာရှယ်ကျွန်းစု အချိန် (ခွာဂျာလိန်)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'ပလာအို အချိန်',
         'Pacific/Pitcairn' => 'ပါတ်ကယ်ရင် အချိန်',
         'Pacific/Ponape' => 'ဖိုနာဖဲအ် အချိန်',
+        'Pacific/Pohnpei' => 'ဖိုနာဖဲအ် အချိန်',
         'Pacific/Port_Moresby' => 'ပါပူအာနယူးဂီနီ အချိန် (ဖို့တ် မိုရက်စ်ဘီ)',
         'Pacific/Rarotonga' => 'ကွတ်ကျွန်းစု အချိန် (ရာရိုတွန်းဂါ)',
         'Pacific/Saipan' => 'ချာမိုရို အချိန် (ဆိုင်ပန်)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'ဂီလ်ဘတ်ကျွန်းစု အချိန် (တာရာဝါ)',
         'Pacific/Tongatapu' => 'တွန်ဂါ အချိန် (တွန်ဂါတာပု)',
         'Pacific/Truk' => 'ချုခ် အချိန်',
+        'Pacific/Chuuk' => 'ချုခ် အချိန်',
         'Pacific/Wake' => 'ဝိတ်ခ်ကျွန်း အချိန်',
         'Pacific/Wallis' => 'ဝေါလီစ်နှင့် ဖူကျူနာ အချိန်',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ne.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ne.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ne.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ne.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'पूर्वी अफ्रिकी समय (एड्डिस आबाबा)',
         'Africa/Algiers' => 'केन्द्रीय युरोपेली समय (अल्जियर्स)',
         'Africa/Asmera' => 'पूर्वी अफ्रिकी समय (आस्मारा)',
+        'Africa/Asmara' => 'पूर्वी अफ्रिकी समय (आस्मारा)',
         'Africa/Bamako' => 'ग्रीनविच मिन समय (बोमाको)',
         'Africa/Bangui' => 'पश्चिम अफ्रिकी समय (बाङ्गुवी)',
         'Africa/Banjul' => 'ग्रीनविच मिन समय (बन्जुल)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'कोलम्बियाली समय (बोगोटा)',
         'America/Boise' => 'हिमाली समय (बोइज)',
         'America/Buenos_Aires' => 'अर्जेनटिनी समय (ब्यनेश आयर्स)',
+        'America/Argentina/Buenos_Aires' => 'अर्जेनटिनी समय (ब्यनेश आयर्स)',
         'America/Cambridge_Bay' => 'हिमाली समय (क्याम्ब्रिज बे)',
         'America/Campo_Grande' => 'एमाजोन समय (क्याम्पो ग्रान्डे)',
         'America/Cancun' => 'पूर्वी समय (कानकुन)',
         'America/Caracas' => 'भेनेज्युएला समय (काराकास)',
         'America/Catamarca' => 'अर्जेनटिनी समय (कातामार्का)',
+        'America/Argentina/Catamarca' => 'अर्जेनटिनी समय (कातामार्का)',
         'America/Cayenne' => 'फ्रेन्च ग्वाना समय (कायेन्ने)',
         'America/Cayman' => 'पूर्वी समय (केम्यान)',
         'America/Chicago' => 'केन्द्रीय समय (शिकागो)',
         'America/Chihuahua' => 'केन्द्रीय समय (चिहुवाहुवा)',
         'America/Ciudad_Juarez' => 'हिमाली समय (जुआरेज सहर)',
         'America/Coral_Harbour' => 'पूर्वी समय (एटिकोकान)',
+        'America/Atikokan' => 'पूर्वी समय (एटिकोकान)',
         'America/Cordoba' => 'अर्जेनटिनी समय (कोरडोवा)',
+        'America/Argentina/Cordoba' => 'अर्जेनटिनी समय (कोरडोवा)',
         'America/Costa_Rica' => 'केन्द्रीय समय (कोष्टा रिका)',
+        'America/Coyhaique' => 'चिली समय (कोहाक्व)',
         'America/Creston' => 'हिमाली समय (क्रेस्टन)',
         'America/Cuiaba' => 'एमाजोन समय (क्युइआबा)',
         'America/Curacao' => 'एट्लान्टिक समय (कुराकाओ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ब्राजिलीया समय (फोर्टालेजा)',
         'America/Glace_Bay' => 'एट्लान्टिक समय (ग्लेस बे)',
         'America/Godthab' => 'ग्रिनल्याण्ड समय (नूक)',
+        'America/Nuuk' => 'ग्रिनल्याण्ड समय (नूक)',
         'America/Goose_Bay' => 'एट्लान्टिक समय (गुज बे)',
         'America/Grand_Turk' => 'पूर्वी समय (ग्रान्ड टर्क)',
         'America/Grenada' => 'एट्लान्टिक समय (ग्रेनाडा)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'पूर्वी समय (भिन्सेन्स)',
         'America/Indiana/Winamac' => 'पूर्वी समय (विनामाक, इन्डियाना)',
         'America/Indianapolis' => 'पूर्वी समय (इन्डियानापोलिस)',
+        'America/Indiana/Indianapolis' => 'पूर्वी समय (इन्डियानापोलिस)',
         'America/Inuvik' => 'हिमाली समय (इनुभिक)',
         'America/Iqaluit' => 'पूर्वी समय (इक्वालुइट)',
         'America/Jamaica' => 'पूर्वी समय (जमाइका)',
         'America/Jujuy' => 'अर्जेनटिनी समय (जुजुई)',
+        'America/Argentina/Jujuy' => 'अर्जेनटिनी समय (जुजुई)',
         'America/Juneau' => 'अलस्काको समय (जुनिउ)',
         'America/Kentucky/Monticello' => 'पूर्वी समय (मोन्टिसेल्लो,केन्टकी)',
         'America/Kralendijk' => 'एट्लान्टिक समय (कालेन्देजिक)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'पेरु समय (लिमा)',
         'America/Los_Angeles' => 'प्यासिफिक समय (लस् एन्जेलस)',
         'America/Louisville' => 'पूर्वी समय (लुइसभिल्ले)',
+        'America/Kentucky/Louisville' => 'पूर्वी समय (लुइसभिल्ले)',
         'America/Lower_Princes' => 'एट्लान्टिक समय (लोअर प्रिन्स्स क्वार्टर)',
         'America/Maceio' => 'ब्राजिलीया समय (मासेइओ)',
         'America/Managua' => 'केन्द्रीय समय (मानागुवा)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'केन्द्रीय समय (माट्तामोरोस्)',
         'America/Mazatlan' => 'मेक्सिकन प्यासिफिक समय (माजाट्लान)',
         'America/Mendoza' => 'अर्जेनटिनी समय (मेन्डोजा)',
+        'America/Argentina/Mendoza' => 'अर्जेनटिनी समय (मेन्डोजा)',
         'America/Menominee' => 'केन्द्रीय समय (मेनोमिनी)',
         'America/Merida' => 'केन्द्रीय समय (मेरिडा)',
         'America/Metlakatla' => 'अलस्काको समय (मेट्लाक्टला)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'अरबी समय (बहराईन)',
         'Asia/Baku' => 'अजरबैजान समय (बाकु)',
         'Asia/Bangkok' => 'इन्डोचाइना समय (बैंकक)',
-        'Asia/Barnaul' => 'रूस समय (बरनौल)',
+        'Asia/Barnaul' => 'क्रासनोयार्क समय (बरनौल)',
         'Asia/Beirut' => 'पूर्वी युरोपेली समय (बेईरुट)',
         'Asia/Bishkek' => 'किर्गिस्तान समय (बिसकेक्)',
         'Asia/Brunei' => 'ब्रुनाइ दारूस्सलम समय',
         'Asia/Calcutta' => 'भारतीय मानक समय (कोलकाता)',
+        'Asia/Kolkata' => 'भारतीय मानक समय (कोलकाता)',
         'Asia/Chita' => 'याकुस्ट समय (चिता)',
         'Asia/Colombo' => 'भारतीय मानक समय (कोलम्बो)',
         'Asia/Damascus' => 'पूर्वी युरोपेली समय (दामास्कस्)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'रूस समय (कामचट्का)',
         'Asia/Karachi' => 'पाकिस्तानी समय (कराची)',
         'Asia/Katmandu' => 'नेपाली समय (काठमाण्डौं)',
+        'Asia/Kathmandu' => 'नेपाली समय (काठमाण्डौं)',
         'Asia/Khandyga' => 'याकुस्ट समय (खान्दिगा)',
         'Asia/Krasnoyarsk' => 'क्रासनोयार्क समय (क्रास्नोयार्स्क)',
         'Asia/Kuala_Lumpur' => 'मलेसिया समय (कुआ लाम्पुर)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'खाडी मानक समय (मस्क्याट)',
         'Asia/Nicosia' => 'पूर्वी युरोपेली समय (निकोसिया)',
         'Asia/Novokuznetsk' => 'क्रासनोयार्क समय (नेभोकुजनेस्क)',
-        'Asia/Novosibirsk' => 'नोभोसिविर्स्क समय (नोबोसिबिर्स्क)',
+        'Asia/Novosibirsk' => 'क्रासनोयार्क समय (नोबोसिबिर्स्क)',
         'Asia/Omsk' => 'ओम्स्क समय',
         'Asia/Oral' => 'काजकस्तानको समय (ओरल)',
         'Asia/Phnom_Penh' => 'इन्डोचाइना समय (फेनोम फेन)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'काजकस्तानको समय (कस्टाने)',
         'Asia/Qyzylorda' => 'काजकस्तानको समय (किजिलोर्डा)',
         'Asia/Rangoon' => 'म्यानमार समय (रान्गुन)',
+        'Asia/Yangon' => 'म्यानमार समय (रान्गुन)',
         'Asia/Riyadh' => 'अरबी समय (रियाद)',
         'Asia/Saigon' => 'इन्डोचाइना समय (हो ची मिन्ह शहर)',
-        'Asia/Sakhalin' => 'साखालिन समय',
+        'Asia/Ho_Chi_Minh' => 'इन्डोचाइना समय (हो ची मिन्ह शहर)',
+        'Asia/Sakhalin' => 'मागादान समय (साखालिन)',
         'Asia/Samarkand' => 'उज्बेकिस्तान समय (समारकण्ड)',
         'Asia/Seoul' => 'कोरियाली समय (सिओल)',
         'Asia/Shanghai' => 'चीन समय (सान्घाई)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'इरानी समय (तेहेरान)',
         'Asia/Thimphu' => 'भुटानी समय (थिम्पु)',
         'Asia/Tokyo' => 'जापान समय (टोकियो)',
-        'Asia/Tomsk' => 'रूस समय (टोम्स्क)',
+        'Asia/Tomsk' => 'क्रासनोयार्क समय (टोम्स्क)',
         'Asia/Ulaanbaatar' => 'उलान बाटोर समय (उलानबटार)',
         'Asia/Urumqi' => 'चीन समय (उरूम्की)',
         'Asia/Ust-Nera' => 'भ्लादिभास्टोक समय (उस्ट-नेरा)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'पश्चिमी युरोपेली समय (क्यानारी)',
         'Atlantic/Cape_Verde' => 'केप भर्दे समय (केप भर्डे)',
         'Atlantic/Faeroe' => 'पश्चिमी युरोपेली समय (फारोइ)',
+        'Atlantic/Faroe' => 'पश्चिमी युरोपेली समय (फारोइ)',
         'Atlantic/Madeira' => 'पश्चिमी युरोपेली समय (माडेइरा)',
         'Atlantic/Reykjavik' => 'ग्रीनविच मिन समय (रेक्जाभिक)',
         'Atlantic/South_Georgia' => 'दक्षिण जर्जिया समय',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'समन्वित विश्व समय',
         'Europe/Amsterdam' => 'केन्द्रीय युरोपेली समय (एम्स्ट्र्डम)',
         'Europe/Andorra' => 'केन्द्रीय युरोपेली समय (आन्डोर्रा)',
-        'Europe/Astrakhan' => 'मस्को समय (अस्त्रखान)',
+        'Europe/Astrakhan' => 'रूस समय (अस्त्रखान)',
         'Europe/Athens' => 'पूर्वी युरोपेली समय (एथेन्स)',
         'Europe/Belgrade' => 'केन्द्रीय युरोपेली समय (बेलग्रेड)',
         'Europe/Berlin' => 'केन्द्रीय युरोपेली समय (बर्लिन)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ग्रीनविच मिन समय (जर्सी)',
         'Europe/Kaliningrad' => 'पूर्वी युरोपेली समय (कालिनिनग्राद)',
         'Europe/Kiev' => 'पूर्वी युरोपेली समय (किभ)',
-        'Europe/Kirov' => 'रूस समय (किरोभ)',
+        'Europe/Kyiv' => 'पूर्वी युरोपेली समय (किभ)',
+        'Europe/Kirov' => 'मस्को समय (किरोभ)',
         'Europe/Lisbon' => 'पश्चिमी युरोपेली समय (लिस्बोन)',
         'Europe/Ljubljana' => 'केन्द्रीय युरोपेली समय (लजुबिजाना)',
         'Europe/London' => 'ग्रीनविच मिन समय (लण्डन)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'रूस समय (सामारा)',
         'Europe/San_Marino' => 'केन्द्रीय युरोपेली समय (सान मारिनो)',
         'Europe/Sarajevo' => 'केन्द्रीय युरोपेली समय (साराजेभो)',
-        'Europe/Saratov' => 'मस्को समय (साराटोभ)',
+        'Europe/Saratov' => 'रूस समय (साराटोभ)',
         'Europe/Simferopol' => 'मस्को समय (सिम्फेरोपोल)',
         'Europe/Skopje' => 'केन्द्रीय युरोपेली समय (स्कोपजे)',
         'Europe/Sofia' => 'पूर्वी युरोपेली समय (सोफिया)',
         'Europe/Stockholm' => 'केन्द्रीय युरोपेली समय (स्टकहोल्म)',
         'Europe/Tallinn' => 'पूर्वी युरोपेली समय (ताल्लिन)',
         'Europe/Tirane' => 'केन्द्रीय युरोपेली समय (टिराने)',
-        'Europe/Ulyanovsk' => 'मस्को समय (उल्यानोभ्स्क)',
+        'Europe/Ulyanovsk' => 'रूस समय (उल्यानोभ्स्क)',
         'Europe/Vaduz' => 'केन्द्रीय युरोपेली समय (भाडुज)',
         'Europe/Vatican' => 'केन्द्रीय युरोपेली समय (भ्याटिकन)',
         'Europe/Vienna' => 'केन्द्रीय युरोपेली समय (भियना)',
         'Europe/Vilnius' => 'पूर्वी युरोपेली समय (भिल्निअस)',
-        'Europe/Volgograd' => 'भोल्गाग्राड समय (भोल्गोग्राद)',
+        'Europe/Volgograd' => 'मस्को समय (भोल्गोग्राद)',
         'Europe/Warsaw' => 'केन्द्रीय युरोपेली समय (वारसअ)',
         'Europe/Zagreb' => 'केन्द्रीय युरोपेली समय (जाग्रेब)',
         'Europe/Zurich' => 'केन्द्रीय युरोपेली समय (जुरिक)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'चाथाम समय',
         'Pacific/Easter' => 'इस्टर टापू समय',
         'Pacific/Efate' => 'भानुआतु समय (ईफाते)',
-        'Pacific/Enderbury' => 'फिनिक्स टापु समय (एन्डरबरी)',
+        'Pacific/Enderbury' => 'फिनिक्स टापु समय (कान्टोन)',
+        'Pacific/Kanton' => 'फिनिक्स टापु समय (कान्टोन)',
         'Pacific/Fakaofo' => 'तोकेलाउ समय (फाकाओफो)',
         'Pacific/Fiji' => 'फिजी समय',
         'Pacific/Funafuti' => 'टुभालु समय (फुनाफुति)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ग्याम्बियर समय',
         'Pacific/Guadalcanal' => 'सोलोमोन टापु समय (गुअडालकनाल)',
         'Pacific/Guam' => 'चामोर्रो मानक समय (गुवाम)',
-        'Pacific/Honolulu' => 'हवाई-एलुटियन समय (होनोलुलु)',
+        'Pacific/Honolulu' => 'हवाई-एलुटियन मानक समय (होनोलुलु)',
         'Pacific/Kiritimati' => 'लाइन टापु समय (किरितिमाटी)',
         'Pacific/Kosrae' => 'कोसराए समय (कोस्राए)',
         'Pacific/Kwajalein' => 'मार्शल टापु समय (क्वाजालेइन)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'पालाउ समय (पलाउ)',
         'Pacific/Pitcairn' => 'पिटकैरण समय (पितकाईरन)',
         'Pacific/Ponape' => 'पोनापे समय',
+        'Pacific/Pohnpei' => 'पोनापे समय',
         'Pacific/Port_Moresby' => 'पपूवा न्यू गिनी समय (पोर्ट मोरेस्बी)',
         'Pacific/Rarotonga' => 'कुक टापु समय (राओतोंगा)',
         'Pacific/Saipan' => 'चामोर्रो मानक समय (साईपन)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'गिल्बर्ट टापु समय (तरवा)',
         'Pacific/Tongatapu' => 'टोंगा समय (टंगातपु)',
         'Pacific/Truk' => 'चुउक समय (चूक)',
+        'Pacific/Chuuk' => 'चुउक समय (चूक)',
         'Pacific/Wake' => 'वेक टापु समय',
         'Pacific/Wallis' => 'वालिस् र फुटुना समय',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/nl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/nl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/nl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/nl.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Oost-Afrikaanse tijd (Addis Abeba)',
         'Africa/Algiers' => 'Midden-Europese tijd (Algiers)',
         'Africa/Asmera' => 'Oost-Afrikaanse tijd (Asmara)',
+        'Africa/Asmara' => 'Oost-Afrikaanse tijd (Asmara)',
         'Africa/Bamako' => 'Greenwich Mean Time (Bamako)',
         'Africa/Bangui' => 'West-Afrikaanse tijd (Bangui)',
         'Africa/Banjul' => 'Greenwich Mean Time (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Oost-Afrikaanse tijd (Dar es Salaam)',
         'Africa/Djibouti' => 'Oost-Afrikaanse tijd (Djibouti)',
         'Africa/Douala' => 'West-Afrikaanse tijd (Douala)',
-        'Africa/El_Aaiun' => 'West-Europese tijd (El Aaiun)',
+        'Africa/El_Aaiun' => 'West-Europese tijd (El Aaiún)',
         'Africa/Freetown' => 'Greenwich Mean Time (Freetown)',
         'Africa/Gaborone' => 'Centraal-Afrikaanse tijd (Gaborone)',
         'Africa/Harare' => 'Centraal-Afrikaanse tijd (Harare)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Oost-Afrikaanse tijd (Mogadishu)',
         'Africa/Monrovia' => 'Greenwich Mean Time (Monrovia)',
         'Africa/Nairobi' => 'Oost-Afrikaanse tijd (Nairobi)',
-        'Africa/Ndjamena' => 'West-Afrikaanse tijd (Ndjamena)',
+        'Africa/Ndjamena' => 'West-Afrikaanse tijd (N’Djamena)',
         'Africa/Niamey' => 'West-Afrikaanse tijd (Niamey)',
         'Africa/Nouakchott' => 'Greenwich Mean Time (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich Mean Time (Ouagadougou)',
@@ -58,7 +59,7 @@
         'America/Anchorage' => 'Alaska-tijd (Anchorage)',
         'America/Anguilla' => 'Atlantic-tijd (Anguilla)',
         'America/Antigua' => 'Atlantic-tijd (Antigua)',
-        'America/Araguaina' => 'Braziliaanse tijd (Araguaina)',
+        'America/Araguaina' => 'Braziliaanse tijd (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentijnse tijd (La Rioja)',
         'America/Argentina/Rio_Gallegos' => 'Argentijnse tijd (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentijnse tijd (Salta)',
@@ -75,22 +76,27 @@
         'America/Belize' => 'Central-tijd (Belize)',
         'America/Blanc-Sablon' => 'Atlantic-tijd (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazone-tijd (Boa Vista)',
-        'America/Bogota' => 'Colombiaanse tijd (Bogota)',
+        'America/Bogota' => 'Colombiaanse tijd (Bogotá)',
         'America/Boise' => 'Mountain-tijd (Boise)',
         'America/Buenos_Aires' => 'Argentijnse tijd (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentijnse tijd (Buenos Aires)',
         'America/Cambridge_Bay' => 'Mountain-tijd (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazone-tijd (Campo Grande)',
         'America/Cancun' => 'Eastern-tijd (Cancun)',
         'America/Caracas' => 'Venezolaanse tijd (Caracas)',
         'America/Catamarca' => 'Argentijnse tijd (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentijnse tijd (Catamarca)',
         'America/Cayenne' => 'Frans-Guyaanse tijd (Cayenne)',
         'America/Cayman' => 'Eastern-tijd (Cayman)',
         'America/Chicago' => 'Central-tijd (Chicago)',
         'America/Chihuahua' => 'Central-tijd (Chihuahua)',
         'America/Ciudad_Juarez' => 'Mountain-tijd (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Eastern-tijd (Atikokan)',
+        'America/Atikokan' => 'Eastern-tijd (Atikokan)',
         'America/Cordoba' => 'Argentijnse tijd (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentijnse tijd (Córdoba)',
         'America/Costa_Rica' => 'Central-tijd (Costa Rica)',
+        'America/Coyhaique' => 'Chileense tijd (Coyhaique)',
         'America/Creston' => 'Mountain-tijd (Creston)',
         'America/Cuiaba' => 'Amazone-tijd (Cuiabá)',
         'America/Curacao' => 'Atlantic-tijd (Curaçao)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Eastern-tijd (Detroit)',
         'America/Dominica' => 'Atlantic-tijd (Dominica)',
         'America/Edmonton' => 'Mountain-tijd (Edmonton)',
-        'America/Eirunepe' => 'Acre-tijd (Eirunepe)',
+        'America/Eirunepe' => 'Acre-tijd (Eirunepé)',
         'America/El_Salvador' => 'Central-tijd (El Salvador)',
         'America/Fort_Nelson' => 'Mountain-tijd (Fort Nelson)',
         'America/Fortaleza' => 'Braziliaanse tijd (Fortaleza)',
         'America/Glace_Bay' => 'Atlantic-tijd (Glace Bay)',
-        'America/Godthab' => 'tijd in Groenland (Nuuk)',
+        'America/Godthab' => 'Groenlandse tijd (Nuuk)',
+        'America/Nuuk' => 'Groenlandse tijd (Nuuk)',
         'America/Goose_Bay' => 'Atlantic-tijd (Goose Bay)',
         'America/Grand_Turk' => 'Eastern-tijd (Grand Turk)',
         'America/Grenada' => 'Atlantic-tijd (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Eastern-tijd (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Eastern-tijd (Winamac, Indiana)',
         'America/Indianapolis' => 'Eastern-tijd (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Eastern-tijd (Indianapolis)',
         'America/Inuvik' => 'Mountain-tijd (Inuvik)',
         'America/Iqaluit' => 'Eastern-tijd (Iqaluit)',
         'America/Jamaica' => 'Eastern-tijd (Jamaica)',
         'America/Jujuy' => 'Argentijnse tijd (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentijnse tijd (Jujuy)',
         'America/Juneau' => 'Alaska-tijd (Juneau)',
         'America/Kentucky/Monticello' => 'Eastern-tijd (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantic-tijd (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Peruaanse tijd (Lima)',
         'America/Los_Angeles' => 'Pacific-tijd (Los Angeles)',
         'America/Louisville' => 'Eastern-tijd (Louisville)',
+        'America/Kentucky/Louisville' => 'Eastern-tijd (Louisville)',
         'America/Lower_Princes' => 'Atlantic-tijd (Beneden Prinsen Kwartier)',
         'America/Maceio' => 'Braziliaanse tijd (Maceió)',
         'America/Managua' => 'Central-tijd (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Central-tijd (Matamoros)',
         'America/Mazatlan' => 'Mexicaanse Pacific-tijd (Mazatlán)',
         'America/Mendoza' => 'Argentijnse tijd (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentijnse tijd (Mendoza)',
         'America/Menominee' => 'Central-tijd (Menominee)',
         'America/Merida' => 'Central-tijd (Mérida)',
         'America/Metlakatla' => 'Alaska-tijd (Metlakatla)',
@@ -175,11 +186,11 @@
         'America/Regina' => 'Central-tijd (Regina)',
         'America/Resolute' => 'Central-tijd (Resolute)',
         'America/Rio_Branco' => 'Acre-tijd (Rio Branco)',
-        'America/Santarem' => 'Braziliaanse tijd (Santarem)',
+        'America/Santarem' => 'Braziliaanse tijd (Santarém)',
         'America/Santiago' => 'Chileense tijd (Santiago)',
         'America/Santo_Domingo' => 'Atlantic-tijd (Santo Domingo)',
         'America/Sao_Paulo' => 'Braziliaanse tijd (São Paulo)',
-        'America/Scoresbysund' => 'tijd in Groenland (Ittoqqortoormiit)',
+        'America/Scoresbysund' => 'Groenlandse tijd (Ittoqqortoormiit)',
         'America/Sitka' => 'Alaska-tijd (Sitka)',
         'America/St_Barthelemy' => 'Atlantic-tijd (Saint-Barthélemy)',
         'America/St_Johns' => 'Newfoundland-tijd (Saint John’s)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Nieuw-Zeelandse tijd (McMurdo)',
         'Antarctica/Palmer' => 'Chileense tijd (Palmer)',
         'Antarctica/Rothera' => 'Rothera-tijd',
-        'Antarctica/Syowa' => 'Syowa-tijd',
+        'Antarctica/Syowa' => 'Syowa-tijd (Showa)',
         'Antarctica/Troll' => 'Greenwich Mean Time (Troll)',
         'Antarctica/Vostok' => 'Vostok-tijd',
         'Arctic/Longyearbyen' => 'Midden-Europese tijd (Longyearbyen)',
         'Asia/Aden' => 'Arabische tijd (Aden)',
         'Asia/Almaty' => 'Kazachse tijd (Alma-Ata)',
         'Asia/Amman' => 'Oost-Europese tijd (Amman)',
-        'Asia/Anadyr' => 'Anadyr-tijd',
+        'Asia/Anadyr' => 'Petropavlovsk-Kamtsjatski-tijd (Anadyr)',
         'Asia/Aqtau' => 'Kazachse tijd (Aqtau)',
         'Asia/Aqtobe' => 'Kazachse tijd (Aqtöbe)',
         'Asia/Ashgabat' => 'Turkmeense tijd (Asjchabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabische tijd (Bahrein)',
         'Asia/Baku' => 'Azerbeidzjaanse tijd (Bakoe)',
         'Asia/Bangkok' => 'Indochinese tijd (Bangkok)',
-        'Asia/Barnaul' => 'tijd in Rusland (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarsk-tijd (Barnaul)',
         'Asia/Beirut' => 'Oost-Europese tijd (Beiroet)',
         'Asia/Bishkek' => 'Kirgizische tijd (Bisjkek)',
         'Asia/Brunei' => 'Bruneise tijd',
         'Asia/Calcutta' => 'Indiase tijd (Calcutta)',
+        'Asia/Kolkata' => 'Indiase tijd (Calcutta)',
         'Asia/Chita' => 'Jakoetsk-tijd (Chita)',
         'Asia/Colombo' => 'Indiase tijd (Colombo)',
         'Asia/Damascus' => 'Oost-Europese tijd (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Oost-Europese tijd (Gaza)',
         'Asia/Hebron' => 'Oost-Europese tijd (Hebron)',
         'Asia/Hong_Kong' => 'Hongkongse tijd',
-        'Asia/Hovd' => 'Hovd-tijd',
+        'Asia/Hovd' => 'Hovd-tijd (Khovd)',
         'Asia/Irkutsk' => 'Irkoetsk-tijd',
         'Asia/Jakarta' => 'West-Indonesische tijd (Jakarta)',
         'Asia/Jayapura' => 'Oost-Indonesische tijd (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-Kamtsjatski-tijd (Kamtsjatka)',
         'Asia/Karachi' => 'Pakistaanse tijd (Karachi)',
         'Asia/Katmandu' => 'Nepalese tijd (Kathmandu)',
+        'Asia/Kathmandu' => 'Nepalese tijd (Kathmandu)',
         'Asia/Khandyga' => 'Jakoetsk-tijd (Khandyga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsk-tijd',
         'Asia/Kuala_Lumpur' => 'Maleisische tijd (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Golf-standaardtijd (Muscat)',
         'Asia/Nicosia' => 'Oost-Europese tijd (Nicosia)',
         'Asia/Novokuznetsk' => 'Krasnojarsk-tijd (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk-tijd',
+        'Asia/Novosibirsk' => 'Krasnojarsk-tijd (Novosibirsk)',
         'Asia/Omsk' => 'Omsk-tijd',
         'Asia/Oral' => 'Kazachse tijd (Oral)',
         'Asia/Phnom_Penh' => 'Indochinese tijd (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazachse tijd (Qostanay)',
         'Asia/Qyzylorda' => 'Kazachse tijd (Qyzylorda)',
         'Asia/Rangoon' => 'Myanmarese tijd (Rangoon)',
+        'Asia/Yangon' => 'Myanmarese tijd (Rangoon)',
         'Asia/Riyadh' => 'Arabische tijd (Riyad)',
         'Asia/Saigon' => 'Indochinese tijd (Ho Chi Minhstad)',
-        'Asia/Sakhalin' => 'Sachalin-tijd',
+        'Asia/Ho_Chi_Minh' => 'Indochinese tijd (Ho Chi Minhstad)',
+        'Asia/Sakhalin' => 'Magadan-tijd (Sachalin)',
         'Asia/Samarkand' => 'Oezbeekse tijd (Samarkand)',
         'Asia/Seoul' => 'Koreaanse tijd (Seoul)',
         'Asia/Shanghai' => 'Chinese tijd (Sjanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Iraanse tijd (Teheran)',
         'Asia/Thimphu' => 'Bhutaanse tijd (Thimphu)',
         'Asia/Tokyo' => 'Japanse tijd (Tokio)',
-        'Asia/Tomsk' => 'tijd in Rusland (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarsk-tijd (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulaanbaatar-tijd',
-        'Asia/Urumqi' => 'tijd in China (Urumqi)',
+        'Asia/Urumqi' => 'tijd in China (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostok-tijd (Ust-Nera)',
         'Asia/Vientiane' => 'Indochinese tijd (Vientiane)',
         'Asia/Vladivostok' => 'Vladivostok-tijd',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'West-Europese tijd (Canarische Eilanden)',
         'Atlantic/Cape_Verde' => 'Kaapverdische tijd (Kaapverdië)',
         'Atlantic/Faeroe' => 'West-Europese tijd (Faeröer)',
+        'Atlantic/Faroe' => 'West-Europese tijd (Faeröer)',
         'Atlantic/Madeira' => 'West-Europese tijd (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich Mean Time (Reykjavik)',
         'Atlantic/South_Georgia' => 'Zuid-Georgische tijd (Zuid-Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'gecoördineerde wereldtijd',
         'Europe/Amsterdam' => 'Midden-Europese tijd (Amsterdam)',
         'Europe/Andorra' => 'Midden-Europese tijd (Andorra)',
-        'Europe/Astrakhan' => 'Moskou-tijd (Astrakhan)',
+        'Europe/Astrakhan' => 'Samara-tijd (Astrakhan)',
         'Europe/Athens' => 'Oost-Europese tijd (Athene)',
         'Europe/Belgrade' => 'Midden-Europese tijd (Belgrado)',
         'Europe/Berlin' => 'Midden-Europese tijd (Berlijn)',
@@ -324,19 +340,20 @@
         'Europe/Brussels' => 'Midden-Europese tijd (Brussel)',
         'Europe/Bucharest' => 'Oost-Europese tijd (Boekarest)',
         'Europe/Budapest' => 'Midden-Europese tijd (Boedapest)',
-        'Europe/Busingen' => 'Midden-Europese tijd (Busingen)',
-        'Europe/Chisinau' => 'Oost-Europese tijd (Chisinau)',
+        'Europe/Busingen' => 'Midden-Europese tijd (Büsingen)',
+        'Europe/Chisinau' => 'Oost-Europese tijd (Chișinău)',
         'Europe/Copenhagen' => 'Midden-Europese tijd (Kopenhagen)',
         'Europe/Dublin' => 'Greenwich Mean Time (Dublin)',
         'Europe/Gibraltar' => 'Midden-Europese tijd (Gibraltar)',
         'Europe/Guernsey' => 'Greenwich Mean Time (Guernsey)',
         'Europe/Helsinki' => 'Oost-Europese tijd (Helsinki)',
         'Europe/Isle_of_Man' => 'Greenwich Mean Time (Isle of Man)',
-        'Europe/Istanbul' => 'tijd in Turkije (Istanboel)',
+        'Europe/Istanbul' => 'Turkse tijd (Istanboel)',
         'Europe/Jersey' => 'Greenwich Mean Time (Jersey)',
         'Europe/Kaliningrad' => 'Oost-Europese tijd (Kaliningrad)',
         'Europe/Kiev' => 'Oost-Europese tijd (Kiev)',
-        'Europe/Kirov' => 'tijd in Rusland (Kirov)',
+        'Europe/Kyiv' => 'Oost-Europese tijd (Kiev)',
+        'Europe/Kirov' => 'Moskou-tijd (Kirov)',
         'Europe/Lisbon' => 'West-Europese tijd (Lissabon)',
         'Europe/Ljubljana' => 'Midden-Europese tijd (Ljubljana)',
         'Europe/London' => 'Greenwich Mean Time (Londen)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samara-tijd',
         'Europe/San_Marino' => 'Midden-Europese tijd (San Marino)',
         'Europe/Sarajevo' => 'Midden-Europese tijd (Sarajevo)',
-        'Europe/Saratov' => 'Moskou-tijd (Saratov)',
+        'Europe/Saratov' => 'Samara-tijd (Saratov)',
         'Europe/Simferopol' => 'Moskou-tijd (Simferopol)',
         'Europe/Skopje' => 'Midden-Europese tijd (Skopje)',
         'Europe/Sofia' => 'Oost-Europese tijd (Sofia)',
         'Europe/Stockholm' => 'Midden-Europese tijd (Stockholm)',
         'Europe/Tallinn' => 'Oost-Europese tijd (Tallinn)',
         'Europe/Tirane' => 'Midden-Europese tijd (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskou-tijd (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Samara-tijd (Ulyanovsk)',
         'Europe/Vaduz' => 'Midden-Europese tijd (Vaduz)',
         'Europe/Vatican' => 'Midden-Europese tijd (Vaticaanstad)',
         'Europe/Vienna' => 'Midden-Europese tijd (Wenen)',
         'Europe/Vilnius' => 'Oost-Europese tijd (Vilnius)',
-        'Europe/Volgograd' => 'Wolgograd-tijd',
+        'Europe/Volgograd' => 'Moskou-tijd (Wolgograd)',
         'Europe/Warsaw' => 'Midden-Europese tijd (Warschau)',
         'Europe/Zagreb' => 'Midden-Europese tijd (Zagreb)',
         'Europe/Zurich' => 'Midden-Europese tijd (Zürich)',
@@ -376,7 +393,7 @@
         'Indian/Chagos' => 'Indische Oceaan-tijd (Chagosarchipel)',
         'Indian/Christmas' => 'Christmaseilandse tijd',
         'Indian/Cocos' => 'Cocoseilandse tijd (Cocoseilanden)',
-        'Indian/Comoro' => 'Oost-Afrikaanse tijd (Comoro)',
+        'Indian/Comoro' => 'Oost-Afrikaanse tijd (Comores)',
         'Indian/Kerguelen' => 'Franse zuidelijke en Antarctische tijd (Kerguelen)',
         'Indian/Mahe' => 'Seychelse tijd (Mahé)',
         'Indian/Maldives' => 'Maldivische tijd (Maldiven)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Chatham-tijd',
         'Pacific/Easter' => 'Paaseilandse tijd',
         'Pacific/Efate' => 'Vanuatuaanse tijd (Efate)',
-        'Pacific/Enderbury' => 'Phoenixeilandse tijd (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenixeilandse tijd (Kanton)',
+        'Pacific/Kanton' => 'Phoenixeilandse tijd (Kanton)',
         'Pacific/Fakaofo' => 'Tokelau-eilandse tijd (Fakaofo)',
         'Pacific/Fiji' => 'Fijische tijd',
         'Pacific/Funafuti' => 'Tuvaluaanse tijd (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagoseilandse tijd',
+        'Pacific/Galapagos' => 'Galapagoseilandse tijd (Galápagos)',
         'Pacific/Gambier' => 'Gambiereilandse tijd (Îles Gambier)',
         'Pacific/Guadalcanal' => 'Salomonseilandse tijd (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro-tijd (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleoetische tijd (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleoetische standaardtijd (Honolulu)',
         'Pacific/Kiritimati' => 'Line-eilandse tijd (Kiritimati)',
         'Pacific/Kosrae' => 'Kosraese tijd',
         'Pacific/Kwajalein' => 'Marshalleilandse tijd (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Belause tijd (Palau)',
         'Pacific/Pitcairn' => 'Pitcairneilandse tijd',
         'Pacific/Ponape' => 'Pohnpei-tijd',
+        'Pacific/Pohnpei' => 'Pohnpei-tijd',
         'Pacific/Port_Moresby' => 'Papoea-Nieuw-Guineese tijd (Port Moresby)',
         'Pacific/Rarotonga' => 'Cookeilandse tijd (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro-tijd (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Gilberteilandse tijd (Tarawa)',
         'Pacific/Tongatapu' => 'Tongaanse tijd (Tongatapu)',
         'Pacific/Truk' => 'Chuukse tijd',
+        'Pacific/Chuuk' => 'Chuukse tijd',
         'Pacific/Wake' => 'Wake-eilandse tijd',
-        'Pacific/Wallis' => 'Wallis en Futunase tijd',
+        'Pacific/Wallis' => 'Wallis en Futunase tijd (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/nn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/nn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/nn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/nn.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,66 +6,63 @@
         'Africa/Addis_Ababa' => 'austafrikansk tid (Addis Ababa)',
         'Africa/Algiers' => 'sentraleuropeisk tid (Algiers)',
         'Africa/Asmera' => 'austafrikansk tid (Asmara)',
-        'Africa/Bangui' => 'vestafrikansk tid (Bangui)',
-        'Africa/Brazzaville' => 'vestafrikansk tid (Brazzaville)',
+        'Africa/Asmara' => 'austafrikansk tid (Asmara)',
+        'Africa/Bangui' => 'Den sentralafrikanske republikken (Bangui)',
         'Africa/Cairo' => 'austeuropeisk tid (Cairo)',
         'Africa/Casablanca' => 'vesteuropeisk tid (Casablanca)',
         'Africa/Ceuta' => 'sentraleuropeisk tid (Ceuta)',
         'Africa/Dar_es_Salaam' => 'austafrikansk tid (Dar es Salaam)',
         'Africa/Djibouti' => 'austafrikansk tid (Djibouti)',
-        'Africa/Douala' => 'vestafrikansk tid (Douala)',
-        'Africa/El_Aaiun' => 'vesteuropeisk tid (El Aaiun)',
+        'Africa/El_Aaiun' => 'vesteuropeisk tid (El Aaiún)',
         'Africa/Kampala' => 'austafrikansk tid (Kampala)',
-        'Africa/Kinshasa' => 'vestafrikansk tid (Kinshasa)',
-        'Africa/Lagos' => 'vestafrikansk tid (Lagos)',
-        'Africa/Libreville' => 'vestafrikansk tid (Libreville)',
-        'Africa/Luanda' => 'vestafrikansk tid (Luanda)',
+        'Africa/Kinshasa' => 'Kongo-Kinshasa (Kinshasa)',
         'Africa/Lubumbashi' => 'Kongo-Kinshasa (Lubumbashi)',
-        'Africa/Malabo' => 'vestafrikansk tid (Malabo)',
         'Africa/Mogadishu' => 'austafrikansk tid (Mogadishu)',
         'Africa/Nairobi' => 'austafrikansk tid (Nairobi)',
-        'Africa/Ndjamena' => 'vestafrikansk tid (Ndjamena)',
-        'Africa/Niamey' => 'vestafrikansk tid (Niamey)',
-        'Africa/Porto-Novo' => 'vestafrikansk tid (Porto-Novo)',
         'Africa/Tripoli' => 'austeuropeisk tid (Tripoli)',
         'Africa/Tunis' => 'sentraleuropeisk tid (Tunis)',
         'America/Adak' => 'tidssone for Hawaii og Aleutene (Adak)',
         'America/Anchorage' => 'alaskisk tid (Anchorage)',
         'America/Anguilla' => 'tidssone for den nordamerikanske atlanterhavskysten (Anguilla)',
         'America/Antigua' => 'tidssone for den nordamerikanske atlanterhavskysten (Antigua)',
-        'America/Araguaina' => 'tidssone for Brasilia (Araguaina)',
+        'America/Araguaina' => 'tidssone for Brasilia (Araguaína)',
         'America/Argentina/La_Rioja' => 'argentinsk tid (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'argentinsk tid (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'argentinsk tid (Río Gallegos)',
         'America/Argentina/Salta' => 'argentinsk tid (Salta)',
         'America/Argentina/San_Juan' => 'argentinsk tid (San Juan)',
         'America/Argentina/San_Luis' => 'argentinsk tid (San Luis)',
-        'America/Argentina/Tucuman' => 'argentinsk tid (Tucuman)',
+        'America/Argentina/Tucuman' => 'argentinsk tid (Tucumán)',
         'America/Argentina/Ushuaia' => 'argentinsk tid (Ushuaia)',
         'America/Aruba' => 'tidssone for den nordamerikanske atlanterhavskysten (Aruba)',
         'America/Asuncion' => 'paraguayansk tid (Asunción)',
         'America/Bahia' => 'tidssone for Brasilia (Bahia)',
         'America/Bahia_Banderas' => 'tidssone for sentrale Nord-Amerika (Bahía de Banderas)',
         'America/Barbados' => 'tidssone for den nordamerikanske atlanterhavskysten (Barbados)',
-        'America/Belem' => 'tidssone for Brasilia (Belem)',
+        'America/Belem' => 'tidssone for Brasilia (Belém)',
         'America/Belize' => 'tidssone for sentrale Nord-Amerika (Belize)',
         'America/Blanc-Sablon' => 'tidssone for den nordamerikanske atlanterhavskysten (Blanc-Sablon)',
         'America/Boa_Vista' => 'tidssone for Amazonas (Boa Vista)',
-        'America/Bogota' => 'kolombiansk tid (Bogota)',
+        'America/Bogota' => 'kolombiansk tid (Bogotá)',
         'America/Boise' => 'tidssone for Rocky Mountains (USA) (Boise)',
         'America/Buenos_Aires' => 'argentinsk tid (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'argentinsk tid (Buenos Aires)',
         'America/Cambridge_Bay' => 'tidssone for Rocky Mountains (USA) (Cambridge Bay)',
         'America/Campo_Grande' => 'tidssone for Amazonas (Campo Grande)',
         'America/Cancun' => 'tidssone for den nordamerikanske austkysten (Cancún)',
         'America/Catamarca' => 'argentinsk tid (Catamarca)',
+        'America/Argentina/Catamarca' => 'argentinsk tid (Catamarca)',
         'America/Cayman' => 'tidssone for den nordamerikanske austkysten (Caymanøyane)',
         'America/Chicago' => 'tidssone for sentrale Nord-Amerika (Chicago)',
         'America/Chihuahua' => 'tidssone for sentrale Nord-Amerika (Chihuahua)',
         'America/Ciudad_Juarez' => 'tidssone for Rocky Mountains (USA) (Ciudad Juárez)',
         'America/Coral_Harbour' => 'tidssone for den nordamerikanske austkysten (Atikokan)',
-        'America/Cordoba' => 'argentinsk tid (Cordoba)',
+        'America/Atikokan' => 'tidssone for den nordamerikanske austkysten (Atikokan)',
+        'America/Cordoba' => 'argentinsk tid (Córdoba)',
+        'America/Argentina/Cordoba' => 'argentinsk tid (Córdoba)',
         'America/Costa_Rica' => 'tidssone for sentrale Nord-Amerika (Costa Rica)',
+        'America/Coyhaique' => 'chilensk tid (Coyhaique)',
         'America/Creston' => 'tidssone for Rocky Mountains (USA) (Creston)',
-        'America/Cuiaba' => 'tidssone for Amazonas (Cuiaba)',
+        'America/Cuiaba' => 'tidssone for Amazonas (Cuiabá)',
         'America/Curacao' => 'tidssone for den nordamerikanske atlanterhavskysten (Curaçao)',
         'America/Dawson_Creek' => 'tidssone for Rocky Mountains (USA) (Dawson Creek)',
         'America/Denver' => 'tidssone for Rocky Mountains (USA) (Denver)',
@@ -92,29 +89,33 @@
         'America/Indiana/Vincennes' => 'tidssone for den nordamerikanske austkysten (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'tidssone for den nordamerikanske austkysten (Winamac, Indiana)',
         'America/Indianapolis' => 'tidssone for den nordamerikanske austkysten (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'tidssone for den nordamerikanske austkysten (Indianapolis)',
         'America/Inuvik' => 'tidssone for Rocky Mountains (USA) (Inuvik)',
         'America/Iqaluit' => 'tidssone for den nordamerikanske austkysten (Iqaluit)',
         'America/Jamaica' => 'tidssone for den nordamerikanske austkysten (Jamaica)',
         'America/Jujuy' => 'argentinsk tid (Jujuy)',
+        'America/Argentina/Jujuy' => 'argentinsk tid (Jujuy)',
         'America/Juneau' => 'alaskisk tid (Juneau)',
         'America/Kentucky/Monticello' => 'tidssone for den nordamerikanske austkysten (Monticello, Kentucky)',
         'America/Kralendijk' => 'tidssone for den nordamerikanske atlanterhavskysten (Kralendijk)',
         'America/Lima' => 'peruansk tid (Lima)',
         'America/Los_Angeles' => 'tidssone for den nordamerikanske stillehavskysten (Los Angeles)',
         'America/Louisville' => 'tidssone for den nordamerikanske austkysten (Louisville)',
+        'America/Kentucky/Louisville' => 'tidssone for den nordamerikanske austkysten (Louisville)',
         'America/Lower_Princes' => 'tidssone for den nordamerikanske atlanterhavskysten (Lower Prince’s Quarter)',
-        'America/Maceio' => 'tidssone for Brasilia (Maceio)',
+        'America/Maceio' => 'tidssone for Brasilia (Maceió)',
         'America/Managua' => 'tidssone for sentrale Nord-Amerika (Managua)',
         'America/Manaus' => 'tidssone for Amazonas (Manaus)',
         'America/Marigot' => 'tidssone for den nordamerikanske atlanterhavskysten (Marigot)',
         'America/Martinique' => 'tidssone for den nordamerikanske atlanterhavskysten (Martinique)',
         'America/Matamoros' => 'tidssone for sentrale Nord-Amerika (Matamoros)',
-        'America/Mazatlan' => 'tidssone for den meksikanske stillehavskysten (Mazatlan)',
+        'America/Mazatlan' => 'tidssone for den meksikanske stillehavskysten (Mazatlán)',
         'America/Mendoza' => 'argentinsk tid (Mendoza)',
+        'America/Argentina/Mendoza' => 'argentinsk tid (Mendoza)',
         'America/Menominee' => 'tidssone for sentrale Nord-Amerika (Menominee)',
         'America/Merida' => 'tidssone for sentrale Nord-Amerika (Merida)',
         'America/Metlakatla' => 'alaskisk tid (Metlakatla)',
-        'America/Mexico_City' => 'tidssone for sentrale Nord-Amerika (Mexico City)',
+        'America/Mexico_City' => 'tidssone for sentrale Nord-Amerika (Ciudad de México)',
         'America/Miquelon' => 'tidssone for Saint-Pierre-et-Miquelon',
         'America/Moncton' => 'tidssone for den nordamerikanske atlanterhavskysten (Moncton)',
         'America/Monterrey' => 'tidssone for sentrale Nord-Amerika (Monterrey)',
@@ -139,10 +140,10 @@
         'America/Recife' => 'tidssone for Brasilia (Recife)',
         'America/Regina' => 'tidssone for sentrale Nord-Amerika (Regina)',
         'America/Resolute' => 'tidssone for sentrale Nord-Amerika (Resolute)',
-        'America/Santarem' => 'tidssone for Brasilia (Santarem)',
+        'America/Santarem' => 'tidssone for Brasilia (Santarém)',
         'America/Santiago' => 'chilensk tid (Santiago)',
         'America/Santo_Domingo' => 'tidssone for den nordamerikanske atlanterhavskysten (Santo Domingo)',
-        'America/Sao_Paulo' => 'tidssone for Brasilia (Sao Paulo)',
+        'America/Sao_Paulo' => 'tidssone for Brasilia (São Paulo)',
         'America/Sitka' => 'alaskisk tid (Sitka)',
         'America/St_Barthelemy' => 'tidssone for den nordamerikanske atlanterhavskysten (St. Barthélemy)',
         'America/St_Johns' => 'tidssone for Newfoundland (St. John’s)',
@@ -172,6 +173,7 @@
         'Asia/Baghdad' => 'arabisk tid (Baghdad)',
         'Asia/Bahrain' => 'arabisk tid (Bahrain)',
         'Asia/Baku' => 'aserbajdsjansk tid (Baku)',
+        'Asia/Barnaul' => 'tidssone for Krasnojarsk (Barnaul)',
         'Asia/Beirut' => 'austeuropeisk tid (Beirut)',
         'Asia/Chita' => 'tidssone for Jakutsk (Chita)',
         'Asia/Damascus' => 'austeuropeisk tid (Damascus)',
@@ -195,12 +197,12 @@
         'Asia/Manila' => 'filippinsk tid (Manila)',
         'Asia/Nicosia' => 'austeuropeisk tid (Nicosia)',
         'Asia/Novokuznetsk' => 'tidssone for Krasnojarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'tidssone for Novosibirsk',
+        'Asia/Novosibirsk' => 'tidssone for Krasnojarsk (Novosibirsk)',
         'Asia/Omsk' => 'tidssone for Omsk',
         'Asia/Pyongyang' => 'koreansk tid (Pyongyang)',
         'Asia/Qatar' => 'arabisk tid (Qatar)',
         'Asia/Riyadh' => 'arabisk tid (Riyadh)',
-        'Asia/Sakhalin' => 'tidssone for Sakhalin',
+        'Asia/Sakhalin' => 'tidssone for Magadan (Sakhalin)',
         'Asia/Samarkand' => 'usbekisk tid (Samarkand)',
         'Asia/Seoul' => 'koreansk tid (Seoul)',
         'Asia/Shanghai' => 'kinesisk tid (Shanghai)',
@@ -210,6 +212,7 @@
         'Asia/Tbilisi' => 'georgisk tid (Tbilisi)',
         'Asia/Tehran' => 'iransk tid (Tehran)',
         'Asia/Tokyo' => 'japansk tid (Tokyo)',
+        'Asia/Tomsk' => 'tidssone for Krasnojarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'tidssone for Ulan Bator (Ulaanbaatar)',
         'Asia/Ust-Nera' => 'tidssone for Vladivostok (Ust-Nera)',
         'Asia/Vladivostok' => 'tidssone for Vladivostok',
@@ -221,6 +224,7 @@
         'Atlantic/Canary' => 'vesteuropeisk tid (Kanariøyane)',
         'Atlantic/Cape_Verde' => 'kappverdisk tid (Cape Verde)',
         'Atlantic/Faeroe' => 'vesteuropeisk tid (Færøyane)',
+        'Atlantic/Faroe' => 'vesteuropeisk tid (Færøyane)',
         'Atlantic/Madeira' => 'vesteuropeisk tid (Madeira)',
         'Atlantic/South_Georgia' => 'Sør-Georgia og Sør-Sandwichøyane (South Georgia)',
         'Atlantic/St_Helena' => 'Saint Helena (St. Helena)',
@@ -238,7 +242,6 @@
         'Australia/Sydney' => 'austaustralsk tid (Sydney)',
         'Europe/Amsterdam' => 'sentraleuropeisk tid (Amsterdam)',
         'Europe/Andorra' => 'sentraleuropeisk tid (Andorra)',
-        'Europe/Astrakhan' => 'tidssone for Moskva (Astrakhan)',
         'Europe/Athens' => 'austeuropeisk tid (Athens)',
         'Europe/Belgrade' => 'sentraleuropeisk tid (Belgrade)',
         'Europe/Berlin' => 'sentraleuropeisk tid (Berlin)',
@@ -246,13 +249,15 @@
         'Europe/Brussels' => 'sentraleuropeisk tid (Brussels)',
         'Europe/Bucharest' => 'austeuropeisk tid (Bucharest)',
         'Europe/Budapest' => 'sentraleuropeisk tid (Budapest)',
-        'Europe/Busingen' => 'sentraleuropeisk tid (Busingen)',
-        'Europe/Chisinau' => 'austeuropeisk tid (Chisinau)',
+        'Europe/Busingen' => 'sentraleuropeisk tid (Büsingen)',
+        'Europe/Chisinau' => 'austeuropeisk tid (Chișinău)',
         'Europe/Copenhagen' => 'sentraleuropeisk tid (Copenhagen)',
         'Europe/Gibraltar' => 'sentraleuropeisk tid (Gibraltar)',
         'Europe/Helsinki' => 'austeuropeisk tid (Helsinki)',
         'Europe/Kaliningrad' => 'austeuropeisk tid (Kaliningrad)',
         'Europe/Kiev' => 'austeuropeisk tid (Kyiv)',
+        'Europe/Kyiv' => 'austeuropeisk tid (Kyiv)',
+        'Europe/Kirov' => 'tidssone for Moskva (Kirov)',
         'Europe/Lisbon' => 'vesteuropeisk tid (Lisbon)',
         'Europe/Ljubljana' => 'sentraleuropeisk tid (Ljubljana)',
         'Europe/Luxembourg' => 'sentraleuropeisk tid (Luxembourg)',
@@ -270,19 +275,17 @@
         'Europe/Rome' => 'sentraleuropeisk tid (Rome)',
         'Europe/San_Marino' => 'sentraleuropeisk tid (San Marino)',
         'Europe/Sarajevo' => 'sentraleuropeisk tid (Sarajevo)',
-        'Europe/Saratov' => 'tidssone for Moskva (Saratov)',
         'Europe/Simferopol' => 'tidssone for Moskva (Simferopol)',
         'Europe/Skopje' => 'sentraleuropeisk tid (Skopje)',
         'Europe/Sofia' => 'austeuropeisk tid (Sofia)',
         'Europe/Stockholm' => 'sentraleuropeisk tid (Stockholm)',
         'Europe/Tallinn' => 'austeuropeisk tid (Tallinn)',
-        'Europe/Tirane' => 'sentraleuropeisk tid (Tirane)',
-        'Europe/Ulyanovsk' => 'tidssone for Moskva (Ulyanovsk)',
+        'Europe/Tirane' => 'sentraleuropeisk tid (Tirana)',
         'Europe/Vaduz' => 'sentraleuropeisk tid (Vaduz)',
         'Europe/Vatican' => 'sentraleuropeisk tid (Vatican)',
         'Europe/Vienna' => 'sentraleuropeisk tid (Vienna)',
         'Europe/Vilnius' => 'austeuropeisk tid (Vilnius)',
-        'Europe/Volgograd' => 'tidssone for Volgograd',
+        'Europe/Volgograd' => 'tidssone for Moskva (Volgograd)',
         'Europe/Warsaw' => 'sentraleuropeisk tid (Warsaw)',
         'Europe/Zagreb' => 'sentraleuropeisk tid (Zagreb)',
         'Europe/Zurich' => 'sentraleuropeisk tid (Zurich)',
@@ -290,7 +293,7 @@
         'Indian/Cocos' => 'tidssone for Kokosøyane',
         'Indian/Comoro' => 'austafrikansk tid (Komorane)',
         'Indian/Kerguelen' => 'tidssone for Dei franske sørterritoria (Kerguelen)',
-        'Indian/Mahe' => 'Seychellane (Mahe)',
+        'Indian/Mahe' => 'Seychellane (Mahé)',
         'Indian/Maldives' => 'Maldivane (Maldivane)',
         'Indian/Mauritius' => 'mauritisk tid (Mauritius)',
         'Indian/Mayotte' => 'austafrikansk tid (Mayotte)',
@@ -299,18 +302,18 @@
         'Pacific/Chatham' => 'tidssone for Chatham',
         'Pacific/Easter' => 'tidssone for Påskeøya (Easter)',
         'Pacific/Efate' => 'vanuatisk tid (Efate)',
-        'Pacific/Enderbury' => 'tidssone for Phoenixøyane (Enderbury)',
+        'Pacific/Enderbury' => 'tidssone for Phoenixøyane (Canton)',
+        'Pacific/Kanton' => 'tidssone for Phoenixøyane (Canton)',
         'Pacific/Fiji' => 'fijiansk tid',
         'Pacific/Galapagos' => 'tidssone for Galápagosøyane',
         'Pacific/Guadalcanal' => 'Salomonøyane (Guadalcanal)',
-        'Pacific/Honolulu' => 'tidssone for Hawaii og Aleutene (Honolulu)',
         'Pacific/Kiritimati' => 'tidssone for Lineøyane (Kiritimati)',
         'Pacific/Kwajalein' => 'Marshalløyane (Kwajalein)',
         'Pacific/Majuro' => 'Marshalløyane (Majuro)',
         'Pacific/Marquesas' => 'tidssone for Marquesasøyane',
         'Pacific/Midway' => 'samoansk tid (Midway)',
         'Pacific/Norfolk' => 'tidssone for Norfolkøya',
-        'Pacific/Noumea' => 'kaledonsk tid (Noumea)',
+        'Pacific/Noumea' => 'kaledonsk tid (Nouméa)',
         'Pacific/Pago_Pago' => 'samoansk tid (Pago Pago)',
         'Pacific/Pitcairn' => 'Pitcairn (Pitcairn)',
         'Pacific/Rarotonga' => 'tidssone for Cookøyane (Rarotonga)',
@@ -318,8 +321,9 @@
         'Pacific/Tarawa' => 'tidssone for Gilbertøyane (Tarawa)',
         'Pacific/Tongatapu' => 'tongansk tid (Tongatapu)',
         'Pacific/Truk' => 'tidssone for Chuukøyane',
+        'Pacific/Chuuk' => 'tidssone for Chuukøyane',
         'Pacific/Wake' => 'USAs ytre småøyar (Wake)',
-        'Pacific/Wallis' => 'tidssone for Wallis- og Futunaøyane',
+        'Pacific/Wallis' => 'tidssone for Wallis- og Futunaøyane (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/no.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/no.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/no.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/no.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'østafrikansk tid (Addis Abeba)',
         'Africa/Algiers' => 'sentraleuropeisk tid (Alger)',
         'Africa/Asmera' => 'østafrikansk tid (Asmara)',
+        'Africa/Asmara' => 'østafrikansk tid (Asmara)',
         'Africa/Bamako' => 'Greenwich middeltid (Bamako)',
         'Africa/Bangui' => 'vestafrikansk tid (Bangui)',
         'Africa/Banjul' => 'Greenwich middeltid (Banjul)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'østafrikansk tid (Mogadishu)',
         'Africa/Monrovia' => 'Greenwich middeltid (Monrovia)',
         'Africa/Nairobi' => 'østafrikansk tid (Nairobi)',
-        'Africa/Ndjamena' => 'vestafrikansk tid (Ndjamena)',
+        'Africa/Ndjamena' => 'vestafrikansk tid (N’Djamena)',
         'Africa/Niamey' => 'vestafrikansk tid (Niamey)',
         'Africa/Nouakchott' => 'Greenwich middeltid (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich middeltid (Ouagadougou)',
@@ -60,7 +61,7 @@
         'America/Antigua' => 'tidssone for den nordamerikanske atlanterhavskysten (Antigua)',
         'America/Araguaina' => 'tidssone for Brasilia (Araguaína)',
         'America/Argentina/La_Rioja' => 'argentinsk tid (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'argentinsk tid (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'argentinsk tid (Río Gallegos)',
         'America/Argentina/Salta' => 'argentinsk tid (Salta)',
         'America/Argentina/San_Juan' => 'argentinsk tid (San Juan)',
         'America/Argentina/San_Luis' => 'argentinsk tid (San Luis)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'colombiansk tid (Bogotá)',
         'America/Boise' => 'tidssone for Rocky Mountains (USA) (Boise)',
         'America/Buenos_Aires' => 'argentinsk tid (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'argentinsk tid (Buenos Aires)',
         'America/Cambridge_Bay' => 'tidssone for Rocky Mountains (USA) (Cambridge Bay)',
         'America/Campo_Grande' => 'tidssone for Amazonas (Campo Grande)',
         'America/Cancun' => 'tidssone for den nordamerikanske østkysten (Cancún)',
         'America/Caracas' => 'venezuelansk tid (Caracas)',
         'America/Catamarca' => 'argentinsk tid (Catamarca)',
+        'America/Argentina/Catamarca' => 'argentinsk tid (Catamarca)',
         'America/Cayenne' => 'tidssone for Fransk Guyana (Cayenne)',
         'America/Cayman' => 'tidssone for den nordamerikanske østkysten (Caymanøyene)',
         'America/Chicago' => 'tidssone for det sentrale Nord-Amerika (Chicago)',
         'America/Chihuahua' => 'tidssone for det sentrale Nord-Amerika (Chihuahua)',
         'America/Ciudad_Juarez' => 'tidssone for Rocky Mountains (USA) (Ciudad Juárez)',
         'America/Coral_Harbour' => 'tidssone for den nordamerikanske østkysten (Atikokan)',
+        'America/Atikokan' => 'tidssone for den nordamerikanske østkysten (Atikokan)',
         'America/Cordoba' => 'argentinsk tid (Córdoba)',
+        'America/Argentina/Cordoba' => 'argentinsk tid (Córdoba)',
         'America/Costa_Rica' => 'tidssone for det sentrale Nord-Amerika (Costa Rica)',
+        'America/Coyhaique' => 'chilensk tid (Coyhaique)',
         'America/Creston' => 'tidssone for Rocky Mountains (USA) (Creston)',
         'America/Cuiaba' => 'tidssone for Amazonas (Cuiabá)',
         'America/Curacao' => 'tidssone for den nordamerikanske atlanterhavskysten (Curaçao)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'tidssone for den nordamerikanske østkysten (Detroit)',
         'America/Dominica' => 'tidssone for den nordamerikanske atlanterhavskysten (Dominica)',
         'America/Edmonton' => 'tidssone for Rocky Mountains (USA) (Edmonton)',
-        'America/Eirunepe' => 'Acre-tid (Eirunepe)',
+        'America/Eirunepe' => 'Acre-tid (Eirunepé)',
         'America/El_Salvador' => 'tidssone for det sentrale Nord-Amerika (El Salvador)',
         'America/Fort_Nelson' => 'tidssone for Rocky Mountains (USA) (Fort Nelson)',
         'America/Fortaleza' => 'tidssone for Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'tidssone for den nordamerikanske atlanterhavskysten (Glace Bay)',
         'America/Godthab' => 'tidssone for Grønland (Nuuk)',
+        'America/Nuuk' => 'tidssone for Grønland (Nuuk)',
         'America/Goose_Bay' => 'tidssone for den nordamerikanske atlanterhavskysten (Goose Bay)',
         'America/Grand_Turk' => 'tidssone for den nordamerikanske østkysten (Grand Turk)',
         'America/Grenada' => 'tidssone for den nordamerikanske atlanterhavskysten (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'tidssone for den nordamerikanske østkysten (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'tidssone for den nordamerikanske østkysten (Winamac, Indiana)',
         'America/Indianapolis' => 'tidssone for den nordamerikanske østkysten (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'tidssone for den nordamerikanske østkysten (Indianapolis)',
         'America/Inuvik' => 'tidssone for Rocky Mountains (USA) (Inuvik)',
         'America/Iqaluit' => 'tidssone for den nordamerikanske østkysten (Iqaluit)',
         'America/Jamaica' => 'tidssone for den nordamerikanske østkysten (Jamaica)',
         'America/Jujuy' => 'argentinsk tid (Jujuy)',
+        'America/Argentina/Jujuy' => 'argentinsk tid (Jujuy)',
         'America/Juneau' => 'alaskisk tid (Juneau)',
         'America/Kentucky/Monticello' => 'tidssone for den nordamerikanske østkysten (Monticello, Kentucky)',
         'America/Kralendijk' => 'tidssone for den nordamerikanske atlanterhavskysten (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'peruansk tid (Lima)',
         'America/Los_Angeles' => 'tidssone for den nordamerikanske Stillehavskysten (Los Angeles)',
         'America/Louisville' => 'tidssone for den nordamerikanske østkysten (Louisville)',
+        'America/Kentucky/Louisville' => 'tidssone for den nordamerikanske østkysten (Louisville)',
         'America/Lower_Princes' => 'tidssone for den nordamerikanske atlanterhavskysten (Lower Prince’s Quarter)',
         'America/Maceio' => 'tidssone for Brasilia (Maceió)',
         'America/Managua' => 'tidssone for det sentrale Nord-Amerika (Managua)',
@@ -143,8 +153,9 @@
         'America/Marigot' => 'tidssone for den nordamerikanske atlanterhavskysten (Marigot)',
         'America/Martinique' => 'tidssone for den nordamerikanske atlanterhavskysten (Martinique)',
         'America/Matamoros' => 'tidssone for det sentrale Nord-Amerika (Matamoros)',
-        'America/Mazatlan' => 'tidssone for den meksikanske Stillehavskysten (Mazatlan)',
+        'America/Mazatlan' => 'tidssone for den meksikanske Stillehavskysten (Mazatlán)',
         'America/Mendoza' => 'argentinsk tid (Mendoza)',
+        'America/Argentina/Mendoza' => 'argentinsk tid (Mendoza)',
         'America/Menominee' => 'tidssone for det sentrale Nord-Amerika (Menominee)',
         'America/Merida' => 'tidssone for det sentrale Nord-Amerika (Mérida)',
         'America/Metlakatla' => 'alaskisk tid (Metlakatla)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'newzealandsk tid (McMurdo)',
         'Antarctica/Palmer' => 'chilensk tid (Palmer)',
         'Antarctica/Rothera' => 'tidssone for Rothera',
-        'Antarctica/Syowa' => 'tidssone for Syowa',
+        'Antarctica/Syowa' => 'tidssone for Syowa (Showa)',
         'Antarctica/Troll' => 'Greenwich middeltid (Troll)',
         'Antarctica/Vostok' => 'tidssone for Vostok',
         'Arctic/Longyearbyen' => 'sentraleuropeisk tid (Longyearbyen)',
         'Asia/Aden' => 'arabisk tid (Aden)',
         'Asia/Almaty' => 'kasakhstansk tid (Almaty)',
         'Asia/Amman' => 'østeuropeisk tid (Amman)',
-        'Asia/Anadyr' => 'Russisk (Anadyr) tid',
+        'Asia/Anadyr' => 'Russisk (Petropavlovsk-Kamtsjatskij) tid (Anadyr)',
         'Asia/Aqtau' => 'kasakhstansk tid (Aktau)',
         'Asia/Aqtobe' => 'kasakhstansk tid (Aqtöbe)',
         'Asia/Ashgabat' => 'turkmensk tid (Asjkhabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'arabisk tid (Bahrain)',
         'Asia/Baku' => 'aserbajdsjansk tid (Baku)',
         'Asia/Bangkok' => 'indokinesisk tid (Bangkok)',
-        'Asia/Barnaul' => 'tidssone for Russland (Barnaul)',
+        'Asia/Barnaul' => 'tidssone for Krasnojarsk (Barnaul)',
         'Asia/Beirut' => 'østeuropeisk tid (Beirut)',
         'Asia/Bishkek' => 'kirgisisk tid (Bisjkek)',
         'Asia/Brunei' => 'tidssone for Brunei Darussalam',
         'Asia/Calcutta' => 'indisk tid (Kolkata)',
+        'Asia/Kolkata' => 'indisk tid (Kolkata)',
         'Asia/Chita' => 'tidssone for Jakutsk (Tsjita)',
         'Asia/Colombo' => 'indisk tid (Colombo)',
         'Asia/Damascus' => 'østeuropeisk tid (Damaskus)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Russisk (Petropavlovsk-Kamtsjatskij) tid (Kamtsjatka)',
         'Asia/Karachi' => 'pakistansk tid (Karachi)',
         'Asia/Katmandu' => 'nepalsk tid (Katmandu)',
+        'Asia/Kathmandu' => 'nepalsk tid (Katmandu)',
         'Asia/Khandyga' => 'tidssone for Jakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'tidssone for Krasnojarsk',
         'Asia/Kuala_Lumpur' => 'malaysisk tid (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'tidssone for Persiabukta (Muskat)',
         'Asia/Nicosia' => 'østeuropeisk tid (Nikosia)',
         'Asia/Novokuznetsk' => 'tidssone for Krasnojarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'tidssone for Novosibirsk',
+        'Asia/Novosibirsk' => 'tidssone for Krasnojarsk (Novosibirsk)',
         'Asia/Omsk' => 'tidssone for Omsk',
         'Asia/Oral' => 'kasakhstansk tid (Oral)',
         'Asia/Phnom_Penh' => 'indokinesisk tid (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'kasakhstansk tid (Kostanaj)',
         'Asia/Qyzylorda' => 'kasakhstansk tid (Kyzylorda)',
         'Asia/Rangoon' => 'myanmarsk tid (Yangon)',
+        'Asia/Yangon' => 'myanmarsk tid (Yangon)',
         'Asia/Riyadh' => 'arabisk tid (Riyadh)',
         'Asia/Saigon' => 'indokinesisk tid (Ho Chi Minh-byen)',
-        'Asia/Sakhalin' => 'tidssone for Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'indokinesisk tid (Ho Chi Minh-byen)',
+        'Asia/Sakhalin' => 'tidssone for Magadan (Sakhalin)',
         'Asia/Samarkand' => 'usbekisk tid (Samarkand)',
         'Asia/Seoul' => 'koreansk tid (Seoul)',
         'Asia/Shanghai' => 'kinesisk tid (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'iransk tid (Teheran)',
         'Asia/Thimphu' => 'bhutansk tid (Thimpu)',
         'Asia/Tokyo' => 'japansk tid (Tokyo)',
-        'Asia/Tomsk' => 'tidssone for Russland (Tomsk)',
+        'Asia/Tomsk' => 'tidssone for Krasnojarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'tidssone for Ulan Bator',
         'Asia/Urumqi' => 'tidssone for Kina (Ürümqi)',
         'Asia/Ust-Nera' => 'tidssone for Vladivostok (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'vesteuropeisk tid (Kanariøyene)',
         'Atlantic/Cape_Verde' => 'kappverdisk tid (Kapp Verde)',
         'Atlantic/Faeroe' => 'vesteuropeisk tid (Færøyene)',
+        'Atlantic/Faroe' => 'vesteuropeisk tid (Færøyene)',
         'Atlantic/Madeira' => 'vesteuropeisk tid (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich middeltid (Reykjavík)',
         'Atlantic/South_Georgia' => 'tidssone for Sør-Georgia',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'koordinert universaltid',
         'Europe/Amsterdam' => 'sentraleuropeisk tid (Amsterdam)',
         'Europe/Andorra' => 'sentraleuropeisk tid (Andorra)',
-        'Europe/Astrakhan' => 'tidssone for Moskva (Astrakhan)',
+        'Europe/Astrakhan' => 'Russisk (Samara) tid (Astrakhan)',
         'Europe/Athens' => 'østeuropeisk tid (Athen)',
         'Europe/Belgrade' => 'sentraleuropeisk tid (Beograd)',
         'Europe/Berlin' => 'sentraleuropeisk tid (Berlin)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwich middeltid (Jersey)',
         'Europe/Kaliningrad' => 'østeuropeisk tid (Kaliningrad)',
         'Europe/Kiev' => 'østeuropeisk tid (Kyiv)',
-        'Europe/Kirov' => 'tidssone for Russland (Kirov)',
+        'Europe/Kyiv' => 'østeuropeisk tid (Kyiv)',
+        'Europe/Kirov' => 'tidssone for Moskva (Kirov)',
         'Europe/Lisbon' => 'vesteuropeisk tid (Lisboa)',
         'Europe/Ljubljana' => 'sentraleuropeisk tid (Ljubljana)',
         'Europe/London' => 'Greenwich middeltid (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Russisk (Samara) tid',
         'Europe/San_Marino' => 'sentraleuropeisk tid (San Marino)',
         'Europe/Sarajevo' => 'sentraleuropeisk tid (Sarajevo)',
-        'Europe/Saratov' => 'tidssone for Moskva (Saratov)',
+        'Europe/Saratov' => 'Russisk (Samara) tid (Saratov)',
         'Europe/Simferopol' => 'tidssone for Moskva (Simferopol)',
         'Europe/Skopje' => 'sentraleuropeisk tid (Skopje)',
         'Europe/Sofia' => 'østeuropeisk tid (Sofia)',
         'Europe/Stockholm' => 'sentraleuropeisk tid (Stockholm)',
         'Europe/Tallinn' => 'østeuropeisk tid (Tallinn)',
         'Europe/Tirane' => 'sentraleuropeisk tid (Tirana)',
-        'Europe/Ulyanovsk' => 'tidssone for Moskva (Uljanovsk)',
+        'Europe/Ulyanovsk' => 'Russisk (Samara) tid (Uljanovsk)',
         'Europe/Vaduz' => 'sentraleuropeisk tid (Vaduz)',
         'Europe/Vatican' => 'sentraleuropeisk tid (Vatikanstaten)',
         'Europe/Vienna' => 'sentraleuropeisk tid (Wien)',
         'Europe/Vilnius' => 'østeuropeisk tid (Vilnius)',
-        'Europe/Volgograd' => 'tidssone for Volgograd',
+        'Europe/Volgograd' => 'tidssone for Moskva (Volgograd)',
         'Europe/Warsaw' => 'sentraleuropeisk tid (Warszawa)',
         'Europe/Zagreb' => 'sentraleuropeisk tid (Zagreb)',
         'Europe/Zurich' => 'sentraleuropeisk tid (Zürich)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'tidssone for Chatham',
         'Pacific/Easter' => 'tidssone for Påskeøya',
         'Pacific/Efate' => 'vanuatisk tid (Efate)',
-        'Pacific/Enderbury' => 'tidssone for Phoenixøyene (Enderbury)',
+        'Pacific/Enderbury' => 'tidssone for Phoenixøyene (Kantonøya)',
+        'Pacific/Kanton' => 'tidssone for Phoenixøyene (Kantonøya)',
         'Pacific/Fakaofo' => 'tidssone for Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'fijiansk tid',
         'Pacific/Funafuti' => 'tuvalsk tid (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'tidssone for Gambier',
         'Pacific/Guadalcanal' => 'salomonsk tid (Guadalcanal)',
         'Pacific/Guam' => 'tidssone for Chamorro (Guam)',
-        'Pacific/Honolulu' => 'tidssone for Hawaii og Aleutene (Honolulu)',
+        'Pacific/Honolulu' => 'normaltid for Hawaii og Aleutene (Honolulu)',
         'Pacific/Kiritimati' => 'tidssone for Linjeøyene (Kiritimati)',
         'Pacific/Kosrae' => 'tidssone for Kosrae',
         'Pacific/Kwajalein' => 'marshallesisk tid (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'palauisk tid',
         'Pacific/Pitcairn' => 'tidssone for Pitcairn',
         'Pacific/Ponape' => 'tidssone for Pohnpei',
+        'Pacific/Pohnpei' => 'tidssone for Pohnpei',
         'Pacific/Port_Moresby' => 'papuansk tid (Port Moresby)',
         'Pacific/Rarotonga' => 'tidssone for Cookøyene (Rarotonga)',
         'Pacific/Saipan' => 'tidssone for Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'tidssone for Gilbertøyene (Tarawa)',
         'Pacific/Tongatapu' => 'tongansk tid (Tongatapu)',
         'Pacific/Truk' => 'tidssone for Chuukøyene',
+        'Pacific/Chuuk' => 'tidssone for Chuukøyene',
         'Pacific/Wake' => 'tidssone for Wake Island',
-        'Pacific/Wallis' => 'tidssone for Wallis- og Futunaøyene',
+        'Pacific/Wallis' => 'tidssone for Wallis- og Futunaøyene (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/oc.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/oc.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/oc.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/oc.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
         'Africa/Conakry' => 'ora al meridian de Greenwich (Conakry)',
         'Africa/Dakar' => 'ora al meridian de Greenwich (Dakar)',
         'Africa/Freetown' => 'ora al meridian de Greenwich (Freetown)',
-        'Africa/Lome' => 'ora al meridian de Greenwich (Lome)',
+        'Africa/Lome' => 'ora al meridian de Greenwich (Lomé)',
         'Africa/Monrovia' => 'ora al meridian de Greenwich (Monrovia)',
         'Africa/Nouakchott' => 'ora al meridian de Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'ora al meridian de Greenwich (Ouagadougou)',
@@ -19,7 +19,7 @@
         'America/Danmarkshavn' => 'ora al meridian de Greenwich (Danmarkshavn)',
         'Antarctica/Troll' => 'ora al meridian de Greenwich (Troll)',
         'Asia/Hong_Kong' => 'ora de Hong Kong (Hong Kong)',
-        'Atlantic/Canary' => 'ora de Espanha (Canary)',
+        'Atlantic/Canary' => 'ora de Espanha (Canarias)',
         'Atlantic/Reykjavik' => 'ora al meridian de Greenwich (Reykjavik)',
         'Atlantic/St_Helena' => 'ora al meridian de Greenwich (St. Helena)',
         'Etc/GMT' => 'ora al meridian de Greenwich',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/om.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/om.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/om.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/om.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Sa’aatii Baha Afrikaa (Addis Ababa)',
         'Africa/Algiers' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Algiers)',
         'Africa/Asmera' => 'Sa’aatii Baha Afrikaa (Asmara)',
+        'Africa/Asmara' => 'Sa’aatii Baha Afrikaa (Asmara)',
         'Africa/Bamako' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Bamako)',
         'Africa/Bangui' => 'Sa’aatii Afrikaa Dhihaa (Bangui)',
         'Africa/Banjul' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Sa’aatii Baha Afrikaa (Dar es Salaam)',
         'Africa/Djibouti' => 'Sa’aatii Baha Afrikaa (Djibouti)',
         'Africa/Douala' => 'Sa’aatii Afrikaa Dhihaa (Douala)',
-        'Africa/El_Aaiun' => 'Sa’aatii Awurooppaa Dhihaa (El Aaiun)',
+        'Africa/El_Aaiun' => 'Sa’aatii Awurooppaa Dhihaa (El Aaiún)',
         'Africa/Freetown' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Freetown)',
         'Africa/Gaborone' => 'Sa’aatii Afrikaa Gidduugaleessaa (Gaborone)',
         'Africa/Harare' => 'Sa’aatii Afrikaa Gidduugaleessaa (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Sa’aatii Afrikaa Dhihaa (Kinshasa)',
         'Africa/Lagos' => 'Sa’aatii Afrikaa Dhihaa (Lagos)',
         'Africa/Libreville' => 'Sa’aatii Afrikaa Dhihaa (Libreville)',
-        'Africa/Lome' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Lome)',
+        'Africa/Lome' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Lomé)',
         'Africa/Luanda' => 'Sa’aatii Afrikaa Dhihaa (Luanda)',
         'Africa/Lubumbashi' => 'Sa’aatii Afrikaa Gidduugaleessaa (Lubumbashi)',
         'Africa/Lusaka' => 'Sa’aatii Afrikaa Gidduugaleessaa (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Sa’aatii Baha Afrikaa (Mogadishu)',
         'Africa/Monrovia' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Monrovia)',
         'Africa/Nairobi' => 'Sa’aatii Baha Afrikaa (Nairobi)',
-        'Africa/Ndjamena' => 'Sa’aatii Afrikaa Dhihaa (Ndjamena)',
+        'Africa/Ndjamena' => 'Sa’aatii Afrikaa Dhihaa (N’Djamena)',
         'Africa/Niamey' => 'Sa’aatii Afrikaa Dhihaa (Niamey)',
         'Africa/Nouakchott' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Nouakchott)',
         'Africa/Ouagadougou' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Sa’aatii Alaaskaa (Anchorage)',
         'America/Anguilla' => 'Sa’aatii Atilaantiik (Anguilla)',
         'America/Antigua' => 'Sa’aatii Atilaantiik (Antigua)',
-        'America/Araguaina' => 'Sa’aatii Biraaziliyaa (Araguaina)',
+        'America/Araguaina' => 'Sa’aatii Biraaziliyaa (Araguaína)',
         'America/Argentina/La_Rioja' => 'Sa’aatii Arjentiinaa (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Sa’aatii Arjentiinaa (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Sa’aatii Arjentiinaa (Río Gallegos)',
         'America/Argentina/Salta' => 'Sa’aatii Arjentiinaa (Salta)',
         'America/Argentina/San_Juan' => 'Sa’aatii Arjentiinaa (San Juan)',
         'America/Argentina/San_Luis' => 'Sa’aatii Arjentiinaa (San Luis)',
-        'America/Argentina/Tucuman' => 'Sa’aatii Arjentiinaa (Tucuman)',
+        'America/Argentina/Tucuman' => 'Sa’aatii Arjentiinaa (Tucumán)',
         'America/Argentina/Ushuaia' => 'Sa’aatii Arjentiinaa (Ushuaia)',
         'America/Aruba' => 'Sa’aatii Atilaantiik (Aruba)',
         'America/Asuncion' => 'Sa’aatii Paaraaguwaayi (Asunción)',
         'America/Bahia' => 'Sa’aatii Biraaziliyaa (Bahia)',
         'America/Bahia_Banderas' => 'Sa’aatii Gidduugaleessaa (Bahía de Banderas)',
         'America/Barbados' => 'Sa’aatii Atilaantiik (Barbados)',
-        'America/Belem' => 'Sa’aatii Biraaziliyaa (Belem)',
+        'America/Belem' => 'Sa’aatii Biraaziliyaa (Belém)',
         'America/Belize' => 'Sa’aatii Gidduugaleessaa (Belize)',
         'America/Blanc-Sablon' => 'Sa’aatii Atilaantiik (Blanc-Sablon)',
         'America/Boa_Vista' => 'Sa’aatii Amazoon (Boa Vista)',
-        'America/Bogota' => 'Sa’aatii Kolombiyaa (Bogota)',
+        'America/Bogota' => 'Sa’aatii Kolombiyaa (Bogotá)',
         'America/Boise' => 'Sa’aatii Maawonteen (Boise)',
         'America/Buenos_Aires' => 'Sa’aatii Arjentiinaa (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Sa’aatii Arjentiinaa (Buenos Aires)',
         'America/Cambridge_Bay' => 'Sa’aatii Maawonteen (Cambridge Bay)',
         'America/Campo_Grande' => 'Sa’aatii Amazoon (Campo Grande)',
         'America/Cancun' => 'Sa’aatii Bahaa (Cancún)',
         'America/Caracas' => 'Sa’aatii Veenzuweelaa (Caracas)',
         'America/Catamarca' => 'Sa’aatii Arjentiinaa (Catamarca)',
+        'America/Argentina/Catamarca' => 'Sa’aatii Arjentiinaa (Catamarca)',
         'America/Cayenne' => 'Sa’aatii Fireench Guyinaa (Cayenne)',
         'America/Cayman' => 'Sa’aatii Bahaa (Cayman)',
         'America/Chicago' => 'Sa’aatii Gidduugaleessaa (Chicago)',
         'America/Chihuahua' => 'Sa’aatii Gidduugaleessaa (Chihuahua)',
         'America/Ciudad_Juarez' => 'Sa’aatii Maawonteen (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Sa’aatii Bahaa (Atikokan)',
-        'America/Cordoba' => 'Sa’aatii Arjentiinaa (Cordoba)',
+        'America/Atikokan' => 'Sa’aatii Bahaa (Atikokan)',
+        'America/Cordoba' => 'Sa’aatii Arjentiinaa (Córdoba)',
+        'America/Argentina/Cordoba' => 'Sa’aatii Arjentiinaa (Córdoba)',
         'America/Costa_Rica' => 'Sa’aatii Gidduugaleessaa (Costa Rica)',
+        'America/Coyhaique' => 'Sa’aatii Chiilii (Coyhaique)',
         'America/Creston' => 'Sa’aatii Maawonteen (Creston)',
-        'America/Cuiaba' => 'Sa’aatii Amazoon (Cuiaba)',
+        'America/Cuiaba' => 'Sa’aatii Amazoon (Cuiabá)',
         'America/Curacao' => 'Sa’aatii Atilaantiik (Curaçao)',
         'America/Danmarkshavn' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Danmarkshavn)',
         'America/Dawson' => 'Sa’aatii Yuukoon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Sa’aatii Bahaa (Detroit)',
         'America/Dominica' => 'Sa’aatii Atilaantiik (Dominica)',
         'America/Edmonton' => 'Sa’aatii Maawonteen (Edmonton)',
-        'America/Eirunepe' => 'Sa’aatii Biraazil (Eirunepe)',
+        'America/Eirunepe' => 'Sa’aatii Biraazil (Eirunepé)',
         'America/El_Salvador' => 'Sa’aatii Gidduugaleessaa (El Salvador)',
         'America/Fort_Nelson' => 'Sa’aatii Maawonteen (Fort Nelson)',
         'America/Fortaleza' => 'Sa’aatii Biraaziliyaa (Fortaleza)',
         'America/Glace_Bay' => 'Sa’aatii Atilaantiik (Glace Bay)',
         'America/Godthab' => 'Sa’aatii Giriinlaand (Nuuk)',
+        'America/Nuuk' => 'Sa’aatii Giriinlaand (Nuuk)',
         'America/Goose_Bay' => 'Sa’aatii Atilaantiik (Goose Bay)',
         'America/Grand_Turk' => 'Sa’aatii Bahaa (Grand Turk)',
         'America/Grenada' => 'Sa’aatii Atilaantiik (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Sa’aatii Bahaa (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Sa’aatii Bahaa (Winamac, Indiana)',
         'America/Indianapolis' => 'Sa’aatii Bahaa (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Sa’aatii Bahaa (Indianapolis)',
         'America/Inuvik' => 'Sa’aatii Maawonteen (Inuvik)',
         'America/Iqaluit' => 'Sa’aatii Bahaa (Iqaluit)',
         'America/Jamaica' => 'Sa’aatii Bahaa (Jamaica)',
         'America/Jujuy' => 'Sa’aatii Arjentiinaa (Jujuy)',
+        'America/Argentina/Jujuy' => 'Sa’aatii Arjentiinaa (Jujuy)',
         'America/Juneau' => 'Sa’aatii Alaaskaa (Juneau)',
         'America/Kentucky/Monticello' => 'Sa’aatii Bahaa (Monticello, Kentucky)',
         'America/Kralendijk' => 'Sa’aatii Atilaantiik (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Sa’aatii Peeruu (Lima)',
         'America/Los_Angeles' => 'Sa’aatii Paasfiik (Los Angeles)',
         'America/Louisville' => 'Sa’aatii Bahaa (Louisville)',
+        'America/Kentucky/Louisville' => 'Sa’aatii Bahaa (Louisville)',
         'America/Lower_Princes' => 'Sa’aatii Atilaantiik (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Sa’aatii Biraaziliyaa (Maceio)',
+        'America/Maceio' => 'Sa’aatii Biraaziliyaa (Maceió)',
         'America/Managua' => 'Sa’aatii Gidduugaleessaa (Managua)',
         'America/Manaus' => 'Sa’aatii Amazoon (Manaus)',
         'America/Marigot' => 'Sa’aatii Atilaantiik (Marigot)',
         'America/Martinique' => 'Sa’aatii Atilaantiik (Martinique)',
         'America/Matamoros' => 'Sa’aatii Gidduugaleessaa (Matamoros)',
-        'America/Mazatlan' => 'Sa’aatii Paasfiik Meksiikaan (Mazatlan)',
+        'America/Mazatlan' => 'Sa’aatii Paasfiik Meksiikaan (Mazatlán)',
         'America/Mendoza' => 'Sa’aatii Arjentiinaa (Mendoza)',
+        'America/Argentina/Mendoza' => 'Sa’aatii Arjentiinaa (Mendoza)',
         'America/Menominee' => 'Sa’aatii Gidduugaleessaa (Menominee)',
         'America/Merida' => 'Sa’aatii Gidduugaleessaa (Mérida)',
         'America/Metlakatla' => 'Sa’aatii Alaaskaa (Metlakatla)',
-        'America/Mexico_City' => 'Sa’aatii Gidduugaleessaa (Mexico City)',
-        'America/Miquelon' => 'Sa’aatii Ql. Piyeeree fi Mikuyelo (Miquelon)',
+        'America/Mexico_City' => 'Sa’aatii Gidduugaleessaa (Ciudad de México)',
+        'America/Miquelon' => 'Sa’aatii Ql. Piyeeree fi Mikuyelo (Saint-Pierre)',
         'America/Moncton' => 'Sa’aatii Atilaantiik (Moncton)',
         'America/Monterrey' => 'Sa’aatii Gidduugaleessaa (Monterrey)',
         'America/Montevideo' => 'Sa’aatii Yuraagaayi (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Sa’aatii Gidduugaleessaa (Regina)',
         'America/Resolute' => 'Sa’aatii Gidduugaleessaa (Resolute)',
         'America/Rio_Branco' => 'Sa’aatii Biraazil (Rio Branco)',
-        'America/Santarem' => 'Sa’aatii Biraaziliyaa (Santarem)',
+        'America/Santarem' => 'Sa’aatii Biraaziliyaa (Santarém)',
         'America/Santiago' => 'Sa’aatii Chiilii (Santiago)',
         'America/Santo_Domingo' => 'Sa’aatii Atilaantiik (Santo Domingo)',
-        'America/Sao_Paulo' => 'Sa’aatii Biraaziliyaa (Sao Paulo)',
+        'America/Sao_Paulo' => 'Sa’aatii Biraaziliyaa (São Paulo)',
         'America/Scoresbysund' => 'Sa’aatii Giriinlaand (Ittoqqortoormiit)',
         'America/Sitka' => 'Sa’aatii Alaaskaa (Sitka)',
         'America/St_Barthelemy' => 'Sa’aatii Atilaantiik (St. Barthélemy)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Sa’aatii New Zealand (McMurdo)',
         'Antarctica/Palmer' => 'Sa’aatii Chiilii (Palmer)',
         'Antarctica/Rothera' => 'Sa’aatii Rothera',
-        'Antarctica/Syowa' => 'Sa’aatii Syowa',
+        'Antarctica/Syowa' => 'Sa’aatii Syowa (Showa)',
         'Antarctica/Troll' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Troll)',
         'Antarctica/Vostok' => 'Sa’aatii Vostok',
         'Arctic/Longyearbyen' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Longyearbyen)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Sa’aatii Arabaa (Bahrain)',
         'Asia/Baku' => 'Sa’aatii Azerbaajiyaan (Baku)',
         'Asia/Bangkok' => 'Sa’aatii IndooChaayinaa (Bangkok)',
-        'Asia/Barnaul' => 'Sa’aatii Raashiyaa (Barnaul)',
+        'Asia/Barnaul' => 'Sa’aatii Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Saaatii Awurooppaa Bahaa (Beirut)',
         'Asia/Bishkek' => 'Sa’aatii Kiyirigiyistan (Bishkek)',
         'Asia/Brunei' => 'Sa’aatii Bruunee Darusalaam (Brunei)',
         'Asia/Calcutta' => 'Sa’aatii Istaandaardii Hindii (Kolkata)',
+        'Asia/Kolkata' => 'Sa’aatii Istaandaardii Hindii (Kolkata)',
         'Asia/Chita' => 'Sa’aatii Yakutsk (Chita)',
         'Asia/Colombo' => 'Sa’aatii Istaandaardii Hindii (Colombo)',
         'Asia/Damascus' => 'Saaatii Awurooppaa Bahaa (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Saaatii Awurooppaa Bahaa (Gaza)',
         'Asia/Hebron' => 'Saaatii Awurooppaa Bahaa (Hebron)',
         'Asia/Hong_Kong' => 'Sa’aatii Hoong Koong (Hong Kong)',
-        'Asia/Hovd' => 'Sa’aatii Hoovd (Hovd)',
+        'Asia/Hovd' => 'Sa’aatii Hoovd (Khovd)',
         'Asia/Irkutsk' => 'Sa’aatii Irkutsk',
         'Asia/Jakarta' => 'Sa’aatii Indooneeshiyaa Dhihaa (Jakarta)',
         'Asia/Jayapura' => 'Sa’aatii Indooneshiyaa Bahaa (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Sa’aatii Raashiyaa (Kamchatka)',
         'Asia/Karachi' => 'Sa’aatii Paakistaan (Karachi)',
         'Asia/Katmandu' => 'Sa’aatii Neeppaal (Kathmandu)',
+        'Asia/Kathmandu' => 'Sa’aatii Neeppaal (Kathmandu)',
         'Asia/Khandyga' => 'Sa’aatii Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Sa’aatii Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Sa’aatii Maaleeshiyaa (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Sa’aatii Istaandaardii Gaalfii (Muscat)',
         'Asia/Nicosia' => 'Saaatii Awurooppaa Bahaa (Nicosia)',
         'Asia/Novokuznetsk' => 'Sa’aatii Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Sa’aatii Novosibirisk (Novosibirsk)',
+        'Asia/Novosibirsk' => 'Sa’aatii Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Sa’aatii Omsk',
         'Asia/Oral' => 'Sa’aatii Kaazaakistaan (Oral)',
         'Asia/Phnom_Penh' => 'Sa’aatii IndooChaayinaa (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Sa’aatii Kaazaakistaan (Qostanay)',
         'Asia/Qyzylorda' => 'Sa’aatii Kaazaakistaan (Qyzylorda)',
         'Asia/Rangoon' => 'Sa’aatii Maayinaamaar (Yangon)',
+        'Asia/Yangon' => 'Sa’aatii Maayinaamaar (Yangon)',
         'Asia/Riyadh' => 'Sa’aatii Arabaa (Riyadh)',
         'Asia/Saigon' => 'Sa’aatii IndooChaayinaa (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Sa’aatii Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Sa’aatii IndooChaayinaa (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Sa’aatii Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Sa’aatii Uzbeekistaan (Samarkand)',
         'Asia/Seoul' => 'Sa’aatii Kooriyaa (Seoul)',
         'Asia/Shanghai' => 'Sa’aatii Chaayinaa (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Sa’aatii Iraan (Tehran)',
         'Asia/Thimphu' => 'Sa’aatii Bihutaan (Thimphu)',
         'Asia/Tokyo' => 'Sa’aatii Jaappaan (Tokyo)',
-        'Asia/Tomsk' => 'Sa’aatii Raashiyaa (Tomsk)',
+        'Asia/Tomsk' => 'Sa’aatii Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Sa’aatii Ulaanbaatar',
-        'Asia/Urumqi' => 'Sa’aatii Chaayinaa (Urumqi)',
+        'Asia/Urumqi' => 'Sa’aatii Chaayinaa (Ürümqi)',
         'Asia/Ust-Nera' => 'Sa’aatii Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Sa’aatii IndooChaayinaa (Vientiane)',
         'Asia/Vladivostok' => 'Sa’aatii Vladivostok',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Sa’aatii Armaaniyaa (Yerevan)',
         'Atlantic/Azores' => 'Sa’aatii Azeeroos (Azores)',
         'Atlantic/Bermuda' => 'Sa’aatii Atilaantiik (Bermuda)',
-        'Atlantic/Canary' => 'Sa’aatii Awurooppaa Dhihaa (Canary)',
+        'Atlantic/Canary' => 'Sa’aatii Awurooppaa Dhihaa (Canarias)',
         'Atlantic/Cape_Verde' => 'Sa’aatii Keep Veerdee (Cape Verde)',
         'Atlantic/Faeroe' => 'Sa’aatii Awurooppaa Dhihaa (Faroe)',
+        'Atlantic/Faroe' => 'Sa’aatii Awurooppaa Dhihaa (Faroe)',
         'Atlantic/Madeira' => 'Sa’aatii Awurooppaa Dhihaa (Madeira)',
         'Atlantic/Reykjavik' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Reykjavik)',
         'Atlantic/South_Georgia' => 'Sa’aatii Joorjiyaa Kibbaa (South Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Sa’aatii Idil-Addunyaa Qindaa’e',
         'Europe/Amsterdam' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Amsterdam)',
         'Europe/Andorra' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Andorra)',
-        'Europe/Astrakhan' => 'Sa’aatii Mooskoo (Astrakhan)',
+        'Europe/Astrakhan' => 'Sa’aatii Raashiyaa (Astrakhan)',
         'Europe/Athens' => 'Saaatii Awurooppaa Bahaa (Athens)',
         'Europe/Belgrade' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Belgrade)',
         'Europe/Berlin' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Brussels)',
         'Europe/Bucharest' => 'Saaatii Awurooppaa Bahaa (Bucharest)',
         'Europe/Budapest' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Budapest)',
-        'Europe/Busingen' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Busingen)',
-        'Europe/Chisinau' => 'Saaatii Awurooppaa Bahaa (Chisinau)',
+        'Europe/Busingen' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Büsingen)',
+        'Europe/Chisinau' => 'Saaatii Awurooppaa Bahaa (Chișinău)',
         'Europe/Copenhagen' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Copenhagen)',
         'Europe/Dublin' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Dublin)',
         'Europe/Gibraltar' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Sa’aatii Giriinwiich Gidduugaleessaa (Jersey)',
         'Europe/Kaliningrad' => 'Saaatii Awurooppaa Bahaa (Kaliningrad)',
         'Europe/Kiev' => 'Saaatii Awurooppaa Bahaa (Kyiv)',
-        'Europe/Kirov' => 'Sa’aatii Raashiyaa (Kirov)',
+        'Europe/Kyiv' => 'Saaatii Awurooppaa Bahaa (Kyiv)',
+        'Europe/Kirov' => 'Sa’aatii Mooskoo (Kirov)',
         'Europe/Lisbon' => 'Sa’aatii Awurooppaa Dhihaa (Lisbon)',
         'Europe/Ljubljana' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Ljubljana)',
         'Europe/London' => 'Sa’aatii Giriinwiich Gidduugaleessaa (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Sa’aatii Raashiyaa (Samara)',
         'Europe/San_Marino' => 'Sa’aatii Awurooppaa Gidduugaleessaa (San Marino)',
         'Europe/Sarajevo' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Sarajevo)',
-        'Europe/Saratov' => 'Sa’aatii Mooskoo (Saratov)',
+        'Europe/Saratov' => 'Sa’aatii Raashiyaa (Saratov)',
         'Europe/Simferopol' => 'Sa’aatii Mooskoo (Simferopol)',
         'Europe/Skopje' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Skopje)',
         'Europe/Sofia' => 'Saaatii Awurooppaa Bahaa (Sofia)',
         'Europe/Stockholm' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Stockholm)',
         'Europe/Tallinn' => 'Saaatii Awurooppaa Bahaa (Tallinn)',
-        'Europe/Tirane' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Tirane)',
-        'Europe/Ulyanovsk' => 'Sa’aatii Mooskoo (Ulyanovsk)',
+        'Europe/Tirane' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Tirana)',
+        'Europe/Ulyanovsk' => 'Sa’aatii Raashiyaa (Ulyanovsk)',
         'Europe/Vaduz' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Vaduz)',
         'Europe/Vatican' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Vatican)',
         'Europe/Vienna' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Vienna)',
         'Europe/Vilnius' => 'Saaatii Awurooppaa Bahaa (Vilnius)',
-        'Europe/Volgograd' => 'Sa’aatii Volgograd',
+        'Europe/Volgograd' => 'Sa’aatii Mooskoo (Volgograd)',
         'Europe/Warsaw' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Warsaw)',
         'Europe/Zagreb' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Zagreb)',
         'Europe/Zurich' => 'Sa’aatii Awurooppaa Gidduugaleessaa (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Sa’aatii Galaana Hindii (Chagos)',
         'Indian/Christmas' => 'Sa’aatii Odola Kirismaas (Christmas)',
         'Indian/Cocos' => 'Sa’aatii Odoloota Kokos (Cocos)',
-        'Indian/Comoro' => 'Sa’aatii Baha Afrikaa (Comoro)',
+        'Indian/Comoro' => 'Sa’aatii Baha Afrikaa (Comores)',
         'Indian/Kerguelen' => 'Sa’aatii Firaans Kibbaa fi Antaarktikaa (Kerguelen)',
-        'Indian/Mahe' => 'Sa’aatii Siisheels (Mahe)',
+        'Indian/Mahe' => 'Sa’aatii Siisheels (Mahé)',
         'Indian/Maldives' => 'Sa’aatii Maaldiivs (Maldives)',
         'Indian/Mauritius' => 'Sa’aatii Mooriishiyees (Mauritius)',
         'Indian/Mayotte' => 'Sa’aatii Baha Afrikaa (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Sa’aatii Chatham',
         'Pacific/Easter' => 'Sa’aatii Odola Bahaa (Easter)',
         'Pacific/Efate' => 'Sa’aatii Vanuwatu (Efate)',
-        'Pacific/Enderbury' => 'Sa’aatii Odoloota Fooneeks (Enderbury)',
+        'Pacific/Enderbury' => 'Sa’aatii Odoloota Fooneeks (Canton)',
+        'Pacific/Kanton' => 'Sa’aatii Odoloota Fooneeks (Canton)',
         'Pacific/Fakaofo' => 'Sa’aatii Takelawu (Fakaofo)',
         'Pacific/Fiji' => 'Sa’aatii Fiijii (Fiji)',
         'Pacific/Funafuti' => 'Sa’aatii Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Sa’aatii Galaapagoos (Galapagos)',
+        'Pacific/Galapagos' => 'Sa’aatii Galaapagoos (Galápagos)',
         'Pacific/Gambier' => 'Sa’aatii Gaambiyeer (Gambier)',
         'Pacific/Guadalcanal' => 'Sa’aatii Odoloota Solomoon (Guadalcanal)',
         'Pacific/Guam' => 'Sa’aatii Istaandaardii Kamoroo (Guam)',
-        'Pacific/Honolulu' => 'Sa’aatii Haawayi-Alewutiyan (Honolulu)',
+        'Pacific/Honolulu' => 'Sa’aatii Istaandaardii Haawayi-Alewutiyan (Honolulu)',
         'Pacific/Kiritimati' => 'Sa’aatii Odoloota Line (Kiritimati)',
         'Pacific/Kosrae' => 'Sa’aatii Koosreyaa (Kosrae)',
         'Pacific/Kwajalein' => 'Sa’aatii Odoloota Maarshaal (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Sa’aatii Naawuruu (Nauru)',
         'Pacific/Niue' => 'Sa’aatii Niue',
         'Pacific/Norfolk' => 'Sa’aatii Norfolk Island',
-        'Pacific/Noumea' => 'Sa’aatii Kaaledooniyaa Haaraa (Noumea)',
+        'Pacific/Noumea' => 'Sa’aatii Kaaledooniyaa Haaraa (Nouméa)',
         'Pacific/Pago_Pago' => 'Sa’aatii Saamowaa (Pago Pago)',
         'Pacific/Palau' => 'Sa’aatii Palawu (Palau)',
         'Pacific/Pitcairn' => 'Sa’aatii Pitcairn',
         'Pacific/Ponape' => 'Sa’aatii Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Sa’aatii Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Sa’aatii Paapuwaa Giinii Haaraa (Port Moresby)',
         'Pacific/Rarotonga' => 'Sa’aatii Odoloota Kuuk (Rarotonga)',
         'Pacific/Saipan' => 'Sa’aatii Istaandaardii Kamoroo (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Sa’aatii Odoloota Giilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Sa’aatii Tonga (Tongatapu)',
         'Pacific/Truk' => 'Sa’aatii Chuuk',
+        'Pacific/Chuuk' => 'Sa’aatii Chuuk',
         'Pacific/Wake' => 'Sa’aatii Odola Wake',
-        'Pacific/Wallis' => 'Sa’aatii Wallis fi Futuna',
+        'Pacific/Wallis' => 'Sa’aatii Wallis fi Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/or.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/or.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/or.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/or.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'ପୂର୍ବ ଆଫ୍ରିକା ସମୟ (ଆଦିସ୍‌ ଆବାବା)',
         'Africa/Algiers' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଅଲଜିୟର୍ସ)',
         'Africa/Asmera' => 'ପୂର୍ବ ଆଫ୍ରିକା ସମୟ (ଅସମରା)',
+        'Africa/Asmara' => 'ପୂର୍ବ ଆଫ୍ରିକା ସମୟ (ଅସମରା)',
         'Africa/Bamako' => 'ଗ୍ରୀନୱିଚ୍ ମିନ୍ ସମୟ (ବାମାକୋ)',
         'Africa/Bangui' => 'ପଶ୍ଚିମ ଆଫ୍ରିକା ସମୟ (ବାଙ୍ଗୁଇ)',
         'Africa/Banjul' => 'ଗ୍ରୀନୱିଚ୍ ମିନ୍ ସମୟ (ବାଞ୍ଜୁଲ)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'କଲମ୍ବିଆ ସମୟ (ବୋଗୋଟା)',
         'America/Boise' => 'ପାର୍ବତ୍ୟ ସମୟ (ବୋଇସେ)',
         'America/Buenos_Aires' => 'ଆର୍ଜେଣ୍ଟିନା ସମୟ (ବୁଏନସ୍‌ ଏରିସ୍‌)',
+        'America/Argentina/Buenos_Aires' => 'ଆର୍ଜେଣ୍ଟିନା ସମୟ (ବୁଏନସ୍‌ ଏରିସ୍‌)',
         'America/Cambridge_Bay' => 'ପାର୍ବତ୍ୟ ସମୟ (କେମ୍ଵ୍ରିଜ୍ ବେ)',
         'America/Campo_Grande' => 'ଆମାଜନ୍ ସମୟ (କାମ୍ପୋ ଗ୍ରାଣ୍ଡେ)',
         'America/Cancun' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (କାନକୁନ୍)',
         'America/Caracas' => 'ଭେନିଜୁଏଲା ସମୟ (କାରକାସ୍‌)',
         'America/Catamarca' => 'ଆର୍ଜେଣ୍ଟିନା ସମୟ (କାଟାମାର୍କା)',
+        'America/Argentina/Catamarca' => 'ଆର୍ଜେଣ୍ଟିନା ସମୟ (କାଟାମାର୍କା)',
         'America/Cayenne' => 'ଫ୍ରେଞ୍ଚ ଗୁଆନା ସମୟ (କେୟେନ୍ନି)',
         'America/Cayman' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (କାୟମ୍ୟାନ୍)',
         'America/Chicago' => 'କେନ୍ଦ୍ରୀୟ ସମୟ (ଚିକାଗୋ)',
         'America/Chihuahua' => 'କେନ୍ଦ୍ରୀୟ ସମୟ (ଚିହୁଆହୁଆ)',
         'America/Ciudad_Juarez' => 'ପାର୍ବତ୍ୟ ସମୟ (ସିଉଡାଡ୍ ଜୁଆରେଜ୍)',
         'America/Coral_Harbour' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ଆଟିକୋକାନ୍)',
+        'America/Atikokan' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ଆଟିକୋକାନ୍)',
         'America/Cordoba' => 'ଆର୍ଜେଣ୍ଟିନା ସମୟ (କୋର୍ଡୋବା)',
+        'America/Argentina/Cordoba' => 'ଆର୍ଜେଣ୍ଟିନା ସମୟ (କୋର୍ଡୋବା)',
         'America/Costa_Rica' => 'କେନ୍ଦ୍ରୀୟ ସମୟ (କୋଷ୍ଟା ରିକା)',
+        'America/Coyhaique' => 'ଚିଲି ସମୟ (କୋୟାଇକେ)',
         'America/Creston' => 'ପାର୍ବତ୍ୟ ସମୟ (କ୍ରେଷ୍ଟୋନ୍)',
         'America/Cuiaba' => 'ଆମାଜନ୍ ସମୟ (କୁଇବା)',
         'America/Curacao' => 'ଆଟଲାଣ୍ଟିକ୍ ସମୟ (କୁରାକୋ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ବ୍ରାସିଲିଆ ସମୟ (ଫୋର୍ଟେଲେଜା)',
         'America/Glace_Bay' => 'ଆଟଲାଣ୍ଟିକ୍ ସମୟ (ଗ୍ଲାସେ ବେ)',
         'America/Godthab' => 'ଗ୍ରୀନଲ୍ୟାଣ୍ଡ ସମୟ (ନୁଉକ୍)',
+        'America/Nuuk' => 'ଗ୍ରୀନଲ୍ୟାଣ୍ଡ ସମୟ (ନୁଉକ୍)',
         'America/Goose_Bay' => 'ଆଟଲାଣ୍ଟିକ୍ ସମୟ (ଗୁସ୍ ବେ)',
         'America/Grand_Turk' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ଗ୍ରାଣ୍ଡ୍ ଟର୍କ୍)',
         'America/Grenada' => 'ଆଟଲାଣ୍ଟିକ୍ ସମୟ (ଗ୍ରେନାଡା)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ଭିନସେନ୍ନେସ୍, ଇଣ୍ଡିଆନା)',
         'America/Indiana/Winamac' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ୱିନାମାକ୍, ଇଣ୍ଡିଆନା)',
         'America/Indianapolis' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ଇଣ୍ଡିଆନାପୋଲିସ୍)',
+        'America/Indiana/Indianapolis' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ଇଣ୍ଡିଆନାପୋଲିସ୍)',
         'America/Inuvik' => 'ପାର୍ବତ୍ୟ ସମୟ (ଇନୁଭିକ୍)',
         'America/Iqaluit' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ଇକ୍ଵାଲୁଇଟ୍)',
         'America/Jamaica' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ଜାମାଇକା)',
         'America/Jujuy' => 'ଆର୍ଜେଣ୍ଟିନା ସମୟ (ଜୁଜୁଇ)',
+        'America/Argentina/Jujuy' => 'ଆର୍ଜେଣ୍ଟିନା ସମୟ (ଜୁଜୁଇ)',
         'America/Juneau' => 'ଆଲାସ୍କା ସମୟ (ଜୁନେଆଉ)',
         'America/Kentucky/Monticello' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ମୋଣ୍ଟିସେଲୋ, କେଣ୍ଟଉକିକେ)',
         'America/Kralendijk' => 'ଆଟଲାଣ୍ଟିକ୍ ସମୟ (କ୍ରାଲେଣ୍ଡଜିକ)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'ପେରୁ ସମୟ (ଲିମା)',
         'America/Los_Angeles' => 'ପାସିଫିକ୍ ସମୟ (ଲସ୍ ଏଞ୍ଜେଲେସ୍)',
         'America/Louisville' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ଲୁଇଭିଲ୍ଲେ)',
+        'America/Kentucky/Louisville' => 'ପୂର୍ବାଞ୍ଚଳ ସମୟ (ଲୁଇଭିଲ୍ଲେ)',
         'America/Lower_Princes' => 'ଆଟଲାଣ୍ଟିକ୍ ସମୟ (ନିମ୍ନ ପ୍ରିନ୍ସ’ର କ୍ଵାଟର୍)',
         'America/Maceio' => 'ବ୍ରାସିଲିଆ ସମୟ (ମାସିଓ)',
         'America/Managua' => 'କେନ୍ଦ୍ରୀୟ ସମୟ (ମାନାଗୁଆ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'କେନ୍ଦ୍ରୀୟ ସମୟ (ମାଟାମୋରୋସ୍)',
         'America/Mazatlan' => 'ମେକ୍ସିକାନ୍ ପାସିଫିକ୍ ସମୟ (ମାନାଟଲାନ୍)',
         'America/Mendoza' => 'ଆର୍ଜେଣ୍ଟିନା ସମୟ (ମେଣ୍ଡୋଜା)',
+        'America/Argentina/Mendoza' => 'ଆର୍ଜେଣ୍ଟିନା ସମୟ (ମେଣ୍ଡୋଜା)',
         'America/Menominee' => 'କେନ୍ଦ୍ରୀୟ ସମୟ (ମେନୋମିନି)',
         'America/Merida' => 'କେନ୍ଦ୍ରୀୟ ସମୟ (ମେରିଡା)',
         'America/Metlakatla' => 'ଆଲାସ୍କା ସମୟ (ମାଟଲାକାଟଲା)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'ଆରବୀୟ ସମୟ (ଏଡେନ୍‌)',
         'Asia/Almaty' => 'କାଜାକସ୍ତାନ୍ ସମୟ (ଅଲମାଟି)',
         'Asia/Amman' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ଅମ୍ମାନ)',
-        'Asia/Anadyr' => 'ଅନାଡିର୍ ସମୟ (ଆନାଡୟାର୍)',
+        'Asia/Anadyr' => 'ପେଟ୍ରୋପାଭଲୋଭ୍ସକ-କମଚଟସ୍କି ସମୟ (ଆନାଡୟାର୍)',
         'Asia/Aqtau' => 'କାଜାକସ୍ତାନ୍ ସମୟ (ଆକଟାଉ)',
         'Asia/Aqtobe' => 'କାଜାକସ୍ତାନ୍ ସମୟ (ଆକଟୋବ୍‌)',
         'Asia/Ashgabat' => 'ତୁର୍କମେନିସ୍ତାନ ସମୟ (ଆଶ୍‌ଗାବୋଟ୍‌)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'ଆରବୀୟ ସମୟ (ବାହାରିନ୍)',
         'Asia/Baku' => 'ଆଜେରବାଇଜାନ ସମୟ (ବାକୁ)',
         'Asia/Bangkok' => 'ଇଣ୍ଡୋଚାଇନା ସମୟ (ବ୍ୟାଙ୍ଗକକ୍‌)',
-        'Asia/Barnaul' => 'ରୁଷିଆ ସମୟ (ବାରନାଉଲ୍)',
+        'Asia/Barnaul' => 'କ୍ରାସନୋୟାରସ୍କ ସମୟ (ବାରନାଉଲ୍)',
         'Asia/Beirut' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ବୀରୁଟ୍‌)',
         'Asia/Bishkek' => 'କିର୍ଗିସ୍ତାନ ସମୟ (ବିଶକେକ୍‌)',
         'Asia/Brunei' => 'ବ୍ରୁନେଇ ଡାରୁସାଲାମ ସମୟ',
         'Asia/Calcutta' => 'ଭାରତୀୟ ମାନକ ସମୟ (କୋଲକାତା)',
+        'Asia/Kolkata' => 'ଭାରତୀୟ ମାନକ ସମୟ (କୋଲକାତା)',
         'Asia/Chita' => 'ୟାକୁଟସ୍କ ସମୟ (ଚିଟା)',
         'Asia/Colombo' => 'ଭାରତୀୟ ମାନକ ସମୟ (କଲମ୍ବୋ)',
         'Asia/Damascus' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ଡାମାସକସ୍‌)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ପେଟ୍ରୋପାଭଲୋଭ୍ସକ-କମଚଟସ୍କି ସମୟ (କାମଚାଟକା)',
         'Asia/Karachi' => 'ପାକିସ୍ତାନ ସମୟ (କରାଚି)',
         'Asia/Katmandu' => 'ନେପାଳ ସମୟ (କାଠମାଣ୍ଡୁ)',
+        'Asia/Kathmandu' => 'ନେପାଳ ସମୟ (କାଠମାଣ୍ଡୁ)',
         'Asia/Khandyga' => 'ୟାକୁଟସ୍କ ସମୟ (ଖାନଡ୍ୟାଗା)',
         'Asia/Krasnoyarsk' => 'କ୍ରାସନୋୟାରସ୍କ ସମୟ',
         'Asia/Kuala_Lumpur' => 'ମାଲେସିଆ ସମୟ (କ୍ୱାଲାଲମ୍ପୁର)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ଗଲ୍ଫ ମାନାଙ୍କ ସମୟ (ମସ୍କାଟ୍‌)',
         'Asia/Nicosia' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ନିକୋସିଆ)',
         'Asia/Novokuznetsk' => 'କ୍ରାସନୋୟାରସ୍କ ସମୟ (ନୋଭୋକୁଜନେଟସ୍କ)',
-        'Asia/Novosibirsk' => 'ନୋଭୋସିବିରସ୍କ ସମୟ',
+        'Asia/Novosibirsk' => 'କ୍ରାସନୋୟାରସ୍କ ସମୟ (ନୋଭୋସିବିରସ୍କ)',
         'Asia/Omsk' => 'ଓମସ୍କ ସମୟ',
         'Asia/Oral' => 'କାଜାକସ୍ତାନ୍ ସମୟ (ଓରାଲ୍‌)',
         'Asia/Phnom_Penh' => 'ଇଣ୍ଡୋଚାଇନା ସମୟ (ଫନୋମ୍‌ ପେନହ)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'କାଜାକସ୍ତାନ୍ ସମୟ (କୋଷ୍ଟନେ)',
         'Asia/Qyzylorda' => 'କାଜାକସ୍ତାନ୍ ସମୟ (କୀଜିଲୋର୍ଡା)',
         'Asia/Rangoon' => 'ମିଆଁମାର୍‌ ସମୟ (ୟାଙ୍ଗୁନ୍‌)',
+        'Asia/Yangon' => 'ମିଆଁମାର୍‌ ସମୟ (ୟାଙ୍ଗୁନ୍‌)',
         'Asia/Riyadh' => 'ଆରବୀୟ ସମୟ (ରିଆଦ)',
         'Asia/Saigon' => 'ଇଣ୍ଡୋଚାଇନା ସମୟ (ହୋ ଚି ମିନ୍‌ ସିଟି)',
-        'Asia/Sakhalin' => 'ସଖାଲିନ୍ ସମୟ',
+        'Asia/Ho_Chi_Minh' => 'ଇଣ୍ଡୋଚାଇନା ସମୟ (ହୋ ଚି ମିନ୍‌ ସିଟି)',
+        'Asia/Sakhalin' => 'ମାଗାଡାନ୍ ସମୟ (ସଖାଲିନ୍)',
         'Asia/Samarkand' => 'ଉଜବେକିସ୍ତାନ ସମୟ (ସମରକନ୍ଦ)',
         'Asia/Seoul' => 'କୋରିୟ ସମୟ (ସିଓଲ)',
         'Asia/Shanghai' => 'ଚୀନ ସମୟ (ସାଂଘାଇ)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ଇରାନ ସମୟ (ତେହେରାନ୍)',
         'Asia/Thimphu' => 'ଭୁଟାନ ସମୟ (ଥିମ୍ପୁ)',
         'Asia/Tokyo' => 'ଜାପାନ ସମୟ (ଟୋକିଓ)',
-        'Asia/Tomsk' => 'ରୁଷିଆ ସମୟ (ଟୋମସ୍କ)',
+        'Asia/Tomsk' => 'କ୍ରାସନୋୟାରସ୍କ ସମୟ (ଟୋମସ୍କ)',
         'Asia/Ulaanbaatar' => 'ଉଲାନ୍‌ବାଟର୍‌ ସମୟ',
         'Asia/Urumqi' => 'ଚୀନ୍‌ ସମୟ (ଉରୁମକି)',
         'Asia/Ust-Nera' => 'ଭ୍ଲାଡିଭୋଷ୍ଟୋକ୍ ସମୟ (ୟୁଷ୍ଟ-ନେରା)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'ପଶ୍ଚିମାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (କାନାରେ)',
         'Atlantic/Cape_Verde' => 'କେପ୍‌ ଭର୍ଦେ ସମୟ',
         'Atlantic/Faeroe' => 'ପଶ୍ଚିମାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ଫାରୋଏ)',
+        'Atlantic/Faroe' => 'ପଶ୍ଚିମାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ଫାରୋଏ)',
         'Atlantic/Madeira' => 'ପଶ୍ଚିମାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ମାଡେଇରା)',
         'Atlantic/Reykjavik' => 'ଗ୍ରୀନୱିଚ୍ ମିନ୍ ସମୟ (ରେୟକଜାଭିକ୍)',
         'Atlantic/South_Georgia' => 'ଦକ୍ଷିଣ ଜର୍ଜିଆ ସମୟ',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'ସମନ୍ୱିତ ସାର୍ବଜନୀନ ସମୟ',
         'Europe/Amsterdam' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଆମଷ୍ଟରଡାମ୍)',
         'Europe/Andorra' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଆନଡୋରା)',
-        'Europe/Astrakhan' => 'ମସ୍କୋ ସମୟ (ଆଷ୍ଟ୍ରାଖାନ୍)',
+        'Europe/Astrakhan' => 'ସମାରା ସମୟ (ଆଷ୍ଟ୍ରାଖାନ୍)',
         'Europe/Athens' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ଏଥେନ୍ସ)',
         'Europe/Belgrade' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ବେଲଗ୍ରେଡ୍‌)',
         'Europe/Berlin' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ବର୍ଲିନ୍)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ଗ୍ରୀନୱିଚ୍ ମିନ୍ ସମୟ (ଜର୍ସି)',
         'Europe/Kaliningrad' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (କାଲିନିନଗ୍ରାଡ୍)',
         'Europe/Kiev' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (କିଏଭ୍)',
-        'Europe/Kirov' => 'ରୁଷିଆ ସମୟ (କିରୋଭ)',
+        'Europe/Kyiv' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (କିଏଭ୍)',
+        'Europe/Kirov' => 'ମସ୍କୋ ସମୟ (କିରୋଭ)',
         'Europe/Lisbon' => 'ପଶ୍ଚିମାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ଲିସବୋନ୍)',
         'Europe/Ljubljana' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଲଜୁବ୍ଲଜାନ୍)',
         'Europe/London' => 'ଗ୍ରୀନୱିଚ୍ ମିନ୍ ସମୟ (ଲଣ୍ଡନ୍)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'ସମାରା ସମୟ (ସାମାରା)',
         'Europe/San_Marino' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ସାନ୍ ମାରିନୋ)',
         'Europe/Sarajevo' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ସାରାଜେଭୋ)',
-        'Europe/Saratov' => 'ମସ୍କୋ ସମୟ (ସାରାଟୋଭ୍)',
+        'Europe/Saratov' => 'ସମାରା ସମୟ (ସାରାଟୋଭ୍)',
         'Europe/Simferopol' => 'ମସ୍କୋ ସମୟ (ସିମଫେରୋପୋଲ୍)',
         'Europe/Skopje' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ସ୍କୋପଜେ)',
         'Europe/Sofia' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ସୋଫିଆ)',
         'Europe/Stockholm' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଷ୍ଟକହୋମ୍‌)',
         'Europe/Tallinn' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ଟାଲିନ୍ନ)',
         'Europe/Tirane' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଟିରାନେ)',
-        'Europe/Ulyanovsk' => 'ମସ୍କୋ ସମୟ (ୟୁଲୟାନୋଭସ୍କ)',
+        'Europe/Ulyanovsk' => 'ସମାରା ସମୟ (ୟୁଲୟାନୋଭସ୍କ)',
         'Europe/Vaduz' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଭାଡୁଜ)',
         'Europe/Vatican' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଭାଟିକାନ୍)',
         'Europe/Vienna' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଭିଏନା)',
         'Europe/Vilnius' => 'ପୂର୍ବାଞ୍ଚଳ ୟୁରୋପୀୟ ସମୟ (ଭିଲନିଉସ୍)',
-        'Europe/Volgograd' => 'ଭୋଲଗୋଗ୍ରାଡ୍ ସମୟ',
+        'Europe/Volgograd' => 'ମସ୍କୋ ସମୟ (ଭୋଲଗୋଗ୍ରାଡ୍)',
         'Europe/Warsaw' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ୱାରସୱା)',
         'Europe/Zagreb' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଜାଗ୍ରେବ୍)',
         'Europe/Zurich' => 'କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ (ଜୁରିକ୍)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'ଚାଥାମ୍‌ ସମୟ',
         'Pacific/Easter' => 'ଇଷ୍ଟର୍‌ ଆଇଲ୍ୟାଣ୍ଡ ସମୟ',
         'Pacific/Efate' => 'ଭାନୁଆଟୁ ସମୟ (ଇଫେଟ୍‌)',
-        'Pacific/Enderbury' => 'ଫିନିକ୍ସ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ (ଏଣ୍ଡେରବୁରି)',
+        'Pacific/Enderbury' => 'ଫିନିକ୍ସ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ (କ୍ୟାଣ୍ଟନ)',
+        'Pacific/Kanton' => 'ଫିନିକ୍ସ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ (କ୍ୟାଣ୍ଟନ)',
         'Pacific/Fakaofo' => 'ଟୋକେଲାଉ ସମୟ (ଫାକାଓଫୋ)',
         'Pacific/Fiji' => 'ଫିଜି ସମୟ',
         'Pacific/Funafuti' => 'ତୁଭାଲୁ ସମୟ (ଫୁନାଫୁଟି)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ଗାମ୍ବିୟର୍ ସମୟ (ଗାମ୍ବିୟର୍‌)',
         'Pacific/Guadalcanal' => 'ସୋଲୋମନ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ (ଗୁଆଡାଲକାନାଲ)',
         'Pacific/Guam' => 'ଚାମୋରୋ ମାନକ ସମୟ (ଗୁଆମ)',
-        'Pacific/Honolulu' => 'ହୱାଇ-ଆଲେଉଟିୟ ସମୟ (ହୋନୋଲୁଲୁ)',
+        'Pacific/Honolulu' => 'ହୱାଇ-ଆଲେଉଟିୟ ମାନାଙ୍କ ସମୟ (ହୋନୋଲୁଲୁ)',
         'Pacific/Kiritimati' => 'ଲାଇନ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ (କିରିତିମାଟି)',
         'Pacific/Kosrae' => 'କୋସରେଇ ସମୟ',
         'Pacific/Kwajalein' => 'ମାର୍ଶାଲ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ (କ୍ୱାଜାଲେଇନ୍)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'ପାଲାଉ ସମୟ',
         'Pacific/Pitcairn' => 'ପିଟକେର୍ନ୍‌ ସମୟ (ପିଟକାରିନ୍‌)',
         'Pacific/Ponape' => 'ପୋନାପେ ସମୟ (ପୋହନପେଇ)',
+        'Pacific/Pohnpei' => 'ପୋନାପେ ସମୟ (ପୋହନପେଇ)',
         'Pacific/Port_Moresby' => 'ପପୁଆ ନ୍ୟୁ ଗିନି ସମୟ (ପୋର୍ଟ୍‌ ମୋରେସବି)',
         'Pacific/Rarotonga' => 'କୁକ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ (ରାରୋଟୋଙ୍ଗା)',
         'Pacific/Saipan' => 'ଚାମୋରୋ ମାନକ ସମୟ (ସାଇପାନ୍)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'ଗିଲବର୍ଟ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ (ତାରୱା)',
         'Pacific/Tongatapu' => 'ଟୋଙ୍ଗା ସମୟ (ଟୋଙ୍ଗାଟାପୁ)',
         'Pacific/Truk' => 'ଚୂକ୍‌ ସମୟ',
+        'Pacific/Chuuk' => 'ଚୂକ୍‌ ସମୟ',
         'Pacific/Wake' => 'ୱେକ୍‌ ଦ୍ୱୀପ ସମୟ',
         'Pacific/Wallis' => 'ୱାଲିସ୍‌ ଏବଂ ଫୁଟୁନା ସମୟ',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/os.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/os.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/os.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/os.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,9 +13,9 @@
         'Africa/Ceuta' => 'Астӕуккаг Европӕйаг рӕстӕг (Ceuta)',
         'Africa/Conakry' => 'Гринвичы рӕстӕмбис рӕстӕг (Conakry)',
         'Africa/Dakar' => 'Гринвичы рӕстӕмбис рӕстӕг (Dakar)',
-        'Africa/El_Aaiun' => 'Ныгъуылӕн Европӕйаг рӕстӕг (El Aaiun)',
+        'Africa/El_Aaiun' => 'Ныгъуылӕн Европӕйаг рӕстӕг (El Aaiún)',
         'Africa/Freetown' => 'Гринвичы рӕстӕмбис рӕстӕг (Freetown)',
-        'Africa/Lome' => 'Гринвичы рӕстӕмбис рӕстӕг (Lome)',
+        'Africa/Lome' => 'Гринвичы рӕстӕмбис рӕстӕг (Lomé)',
         'Africa/Monrovia' => 'Гринвичы рӕстӕмбис рӕстӕг (Monrovia)',
         'Africa/Nouakchott' => 'Гринвичы рӕстӕмбис рӕстӕг (Nouakchott)',
         'Africa/Ouagadougou' => 'Гринвичы рӕстӕмбис рӕстӕг (Ouagadougou)',
@@ -24,18 +24,18 @@
         'Africa/Tunis' => 'Астӕуккаг Европӕйаг рӕстӕг (Tunis)',
         'America/Adak' => 'АИШ рӕстӕг (Adak)',
         'America/Anchorage' => 'АИШ рӕстӕг (Anchorage)',
-        'America/Araguaina' => 'Бразили рӕстӕг (Araguaina)',
+        'America/Araguaina' => 'Бразили рӕстӕг (Araguaína)',
         'America/Bahia' => 'Бразили рӕстӕг (Bahia)',
-        'America/Belem' => 'Бразили рӕстӕг (Belem)',
+        'America/Belem' => 'Бразили рӕстӕг (Belém)',
         'America/Boa_Vista' => 'Бразили рӕстӕг (Boa Vista)',
         'America/Boise' => 'АИШ рӕстӕг (Boise)',
         'America/Campo_Grande' => 'Бразили рӕстӕг (Campo Grande)',
         'America/Chicago' => 'АИШ рӕстӕг (Chicago)',
-        'America/Cuiaba' => 'Бразили рӕстӕг (Cuiaba)',
+        'America/Cuiaba' => 'Бразили рӕстӕг (Cuiabá)',
         'America/Danmarkshavn' => 'Гринвичы рӕстӕмбис рӕстӕг (Danmarkshavn)',
         'America/Denver' => 'АИШ рӕстӕг (Denver)',
         'America/Detroit' => 'АИШ рӕстӕг (Detroit)',
-        'America/Eirunepe' => 'Бразили рӕстӕг (Eirunepe)',
+        'America/Eirunepe' => 'Бразили рӕстӕг (Eirunepé)',
         'America/Fortaleza' => 'Бразили рӕстӕг (Fortaleza)',
         'America/Indiana/Knox' => 'АИШ рӕстӕг (Knox, Indiana)',
         'America/Indiana/Marengo' => 'АИШ рӕстӕг (Marengo, Indiana)',
@@ -45,11 +45,13 @@
         'America/Indiana/Vincennes' => 'АИШ рӕстӕг (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'АИШ рӕстӕг (Winamac, Indiana)',
         'America/Indianapolis' => 'АИШ рӕстӕг (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'АИШ рӕстӕг (Indianapolis)',
         'America/Juneau' => 'АИШ рӕстӕг (Juneau)',
         'America/Kentucky/Monticello' => 'АИШ рӕстӕг (Monticello, Kentucky)',
         'America/Los_Angeles' => 'АИШ рӕстӕг (Los Angeles)',
         'America/Louisville' => 'АИШ рӕстӕг (Louisville)',
-        'America/Maceio' => 'Бразили рӕстӕг (Maceio)',
+        'America/Kentucky/Louisville' => 'АИШ рӕстӕг (Louisville)',
+        'America/Maceio' => 'Бразили рӕстӕг (Maceió)',
         'America/Manaus' => 'Бразили рӕстӕг (Manaus)',
         'America/Menominee' => 'АИШ рӕстӕг (Menominee)',
         'America/Metlakatla' => 'АИШ рӕстӕг (Metlakatla)',
@@ -63,8 +65,8 @@
         'America/Porto_Velho' => 'Бразили рӕстӕг (Porto Velho)',
         'America/Recife' => 'Бразили рӕстӕг (Recife)',
         'America/Rio_Branco' => 'Бразили рӕстӕг (Rio Branco)',
-        'America/Santarem' => 'Бразили рӕстӕг (Santarem)',
-        'America/Sao_Paulo' => 'Бразили рӕстӕг (Sao Paulo)',
+        'America/Santarem' => 'Бразили рӕстӕг (Santarém)',
+        'America/Sao_Paulo' => 'Бразили рӕстӕг (São Paulo)',
         'America/Sitka' => 'АИШ рӕстӕг (Sitka)',
         'America/Yakutat' => 'АИШ рӕстӕг (Yakutat)',
         'Antarctica/Troll' => 'Гринвичы рӕстӕмбис рӕстӕг (Troll)',
@@ -74,6 +76,7 @@
         'Asia/Barnaul' => 'Уӕрӕсе рӕстӕг (Barnaul)',
         'Asia/Beirut' => 'Скӕсӕн Европӕйаг рӕстӕг (Beirut)',
         'Asia/Calcutta' => 'Инди рӕстӕг (Kolkata)',
+        'Asia/Kolkata' => 'Инди рӕстӕг (Kolkata)',
         'Asia/Chita' => 'Уӕрӕсе рӕстӕг (Chita)',
         'Asia/Damascus' => 'Скӕсӕн Европӕйаг рӕстӕг (Damascus)',
         'Asia/Famagusta' => 'Скӕсӕн Европӕйаг рӕстӕг (Famagusta)',
@@ -94,20 +97,21 @@
         'Asia/Tbilisi' => 'Гуырдзыстоны рӕстӕг (Тбилис)',
         'Asia/Tokyo' => 'Япон рӕстӕг (Tokyo)',
         'Asia/Tomsk' => 'Уӕрӕсе рӕстӕг (Tomsk)',
-        'Asia/Urumqi' => 'Китай рӕстӕг (Urumqi)',
+        'Asia/Urumqi' => 'Китай рӕстӕг (Ürümqi)',
         'Asia/Ust-Nera' => 'Уӕрӕсе рӕстӕг (Ust-Nera)',
         'Asia/Vladivostok' => 'Уӕрӕсе рӕстӕг (Vladivostok)',
         'Asia/Yakutsk' => 'Уӕрӕсе рӕстӕг (Yakutsk)',
         'Asia/Yekaterinburg' => 'Уӕрӕсе рӕстӕг (Yekaterinburg)',
-        'Atlantic/Canary' => 'Ныгъуылӕн Европӕйаг рӕстӕг (Canary)',
+        'Atlantic/Canary' => 'Ныгъуылӕн Европӕйаг рӕстӕг (Canarias)',
         'Atlantic/Faeroe' => 'Ныгъуылӕн Европӕйаг рӕстӕг (Faroe)',
+        'Atlantic/Faroe' => 'Ныгъуылӕн Европӕйаг рӕстӕг (Faroe)',
         'Atlantic/Madeira' => 'Ныгъуылӕн Европӕйаг рӕстӕг (Madeira)',
         'Atlantic/Reykjavik' => 'Гринвичы рӕстӕмбис рӕстӕг (Reykjavik)',
         'Atlantic/St_Helena' => 'Гринвичы рӕстӕмбис рӕстӕг (St. Helena)',
         'Etc/GMT' => 'Гринвичы рӕстӕмбис рӕстӕг',
         'Europe/Amsterdam' => 'Астӕуккаг Европӕйаг рӕстӕг (Amsterdam)',
         'Europe/Andorra' => 'Астӕуккаг Европӕйаг рӕстӕг (Andorra)',
-        'Europe/Astrakhan' => 'Мӕскуыйы рӕстӕг (Astrakhan)',
+        'Europe/Astrakhan' => 'Уӕрӕсе рӕстӕг (Astrakhan)',
         'Europe/Athens' => 'Скӕсӕн Европӕйаг рӕстӕг (Athens)',
         'Europe/Belgrade' => 'Астӕуккаг Европӕйаг рӕстӕг (Belgrade)',
         'Europe/Berlin' => 'Астӕуккаг Европӕйаг рӕстӕг (Berlin)',
@@ -115,8 +119,8 @@
         'Europe/Brussels' => 'Астӕуккаг Европӕйаг рӕстӕг (Brussels)',
         'Europe/Bucharest' => 'Скӕсӕн Европӕйаг рӕстӕг (Bucharest)',
         'Europe/Budapest' => 'Астӕуккаг Европӕйаг рӕстӕг (Budapest)',
-        'Europe/Busingen' => 'Астӕуккаг Европӕйаг рӕстӕг (Busingen)',
-        'Europe/Chisinau' => 'Скӕсӕн Европӕйаг рӕстӕг (Chisinau)',
+        'Europe/Busingen' => 'Астӕуккаг Европӕйаг рӕстӕг (Büsingen)',
+        'Europe/Chisinau' => 'Скӕсӕн Европӕйаг рӕстӕг (Chișinău)',
         'Europe/Copenhagen' => 'Астӕуккаг Европӕйаг рӕстӕг (Copenhagen)',
         'Europe/Dublin' => 'Гринвичы рӕстӕмбис рӕстӕг (Dublin)',
         'Europe/Gibraltar' => 'Астӕуккаг Европӕйаг рӕстӕг (Gibraltar)',
@@ -126,7 +130,8 @@
         'Europe/Jersey' => 'Гринвичы рӕстӕмбис рӕстӕг (Jersey)',
         'Europe/Kaliningrad' => 'Скӕсӕн Европӕйаг рӕстӕг (Kaliningrad)',
         'Europe/Kiev' => 'Скӕсӕн Европӕйаг рӕстӕг (Kyiv)',
-        'Europe/Kirov' => 'Уӕрӕсе рӕстӕг (Kirov)',
+        'Europe/Kyiv' => 'Скӕсӕн Европӕйаг рӕстӕг (Kyiv)',
+        'Europe/Kirov' => 'Мӕскуыйы рӕстӕг (Kirov)',
         'Europe/Lisbon' => 'Ныгъуылӕн Европӕйаг рӕстӕг (Lisbon)',
         'Europe/Ljubljana' => 'Астӕуккаг Европӕйаг рӕстӕг (Ljubljana)',
         'Europe/London' => 'Гринвичы рӕстӕмбис рӕстӕг (London)',
@@ -146,19 +151,19 @@
         'Europe/Samara' => 'Уӕрӕсе рӕстӕг (Samara)',
         'Europe/San_Marino' => 'Астӕуккаг Европӕйаг рӕстӕг (San Marino)',
         'Europe/Sarajevo' => 'Астӕуккаг Европӕйаг рӕстӕг (Sarajevo)',
-        'Europe/Saratov' => 'Мӕскуыйы рӕстӕг (Saratov)',
+        'Europe/Saratov' => 'Уӕрӕсе рӕстӕг (Saratov)',
         'Europe/Simferopol' => 'Мӕскуыйы рӕстӕг (Simferopol)',
         'Europe/Skopje' => 'Астӕуккаг Европӕйаг рӕстӕг (Skopje)',
         'Europe/Sofia' => 'Скӕсӕн Европӕйаг рӕстӕг (Sofia)',
         'Europe/Stockholm' => 'Астӕуккаг Европӕйаг рӕстӕг (Stockholm)',
         'Europe/Tallinn' => 'Скӕсӕн Европӕйаг рӕстӕг (Tallinn)',
-        'Europe/Tirane' => 'Астӕуккаг Европӕйаг рӕстӕг (Tirane)',
-        'Europe/Ulyanovsk' => 'Мӕскуыйы рӕстӕг (Ulyanovsk)',
+        'Europe/Tirane' => 'Астӕуккаг Европӕйаг рӕстӕг (Tirana)',
+        'Europe/Ulyanovsk' => 'Уӕрӕсе рӕстӕг (Ulyanovsk)',
         'Europe/Vaduz' => 'Астӕуккаг Европӕйаг рӕстӕг (Vaduz)',
         'Europe/Vatican' => 'Астӕуккаг Европӕйаг рӕстӕг (Vatican)',
         'Europe/Vienna' => 'Астӕуккаг Европӕйаг рӕстӕг (Vienna)',
         'Europe/Vilnius' => 'Скӕсӕн Европӕйаг рӕстӕг (Vilnius)',
-        'Europe/Volgograd' => 'Уӕрӕсе рӕстӕг (Volgograd)',
+        'Europe/Volgograd' => 'Мӕскуыйы рӕстӕг (Volgograd)',
         'Europe/Warsaw' => 'Астӕуккаг Европӕйаг рӕстӕг (Warsaw)',
         'Europe/Zagreb' => 'Астӕуккаг Европӕйаг рӕстӕг (Zagreb)',
         'Europe/Zurich' => 'Астӕуккаг Европӕйаг рӕстӕг (Zurich)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pa.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,47 +4,48 @@
     'Names' => [
         'Africa/Abidjan' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਅਬੀਦਜਾਨ)',
         'Africa/Accra' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਅੱਕਰਾ)',
-        'Africa/Addis_Ababa' => 'ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਐਡਿਸ ਅਬਾਬਾ)',
+        'Africa/Addis_Ababa' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਐਡਿਸ ਅਬਾਬਾ)',
         'Africa/Algiers' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਅਲਜੀਅਰਸ)',
-        'Africa/Asmera' => 'ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਅਸਮਾਰਾ)',
+        'Africa/Asmera' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਅਸਮਾਰਾ)',
+        'Africa/Asmara' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਅਸਮਾਰਾ)',
         'Africa/Bamako' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਬਮੇਕੋ)',
         'Africa/Bangui' => 'ਪੱਛਮੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਬਾਂਗੁਈ)',
         'Africa/Banjul' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਬਾਂਜੁਲ)',
         'Africa/Bissau' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਬਿਸਾਉ)',
-        'Africa/Blantyre' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਬਲੰਟਾਇਰ)',
+        'Africa/Blantyre' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਬਲੰਟਾਇਰ)',
         'Africa/Brazzaville' => 'ਪੱਛਮੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਬ੍ਰਾਜ਼ਾਵਿਲੇ)',
-        'Africa/Bujumbura' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਬੁਜੁੰਬੁਰਾ)',
+        'Africa/Bujumbura' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਬੁਜੁੰਬੁਰਾ)',
         'Africa/Cairo' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਕੈਰੋ)',
         'Africa/Casablanca' => 'ਪੱਛਮੀ ਯੂਰਪੀ ਵੇਲਾ (ਕਾਸਾਬਲਾਂਕਾ)',
         'Africa/Ceuta' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਸੀਊਟਾ)',
         'Africa/Conakry' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਕੋਨੇਕਰੀ)',
         'Africa/Dakar' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਡਕਾਰ)',
-        'Africa/Dar_es_Salaam' => 'ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਦਾਰ ਏਸ ਸਲਾਮ)',
-        'Africa/Djibouti' => 'ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਜਿਬੂਤੀ)',
+        'Africa/Dar_es_Salaam' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਦਾਰ ਏਸ ਸਲਾਮ)',
+        'Africa/Djibouti' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਜਿਬੂਤੀ)',
         'Africa/Douala' => 'ਪੱਛਮੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਡੌਆਲਾ)',
         'Africa/El_Aaiun' => 'ਪੱਛਮੀ ਯੂਰਪੀ ਵੇਲਾ (ਅਲ ਅਯੂਨ)',
         'Africa/Freetown' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਫਰੀਟਾਉਨ)',
-        'Africa/Gaborone' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਗਾਬੋਰੋਨ)',
-        'Africa/Harare' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਹਰਾਰੇ)',
+        'Africa/Gaborone' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਗਾਬੋਰੋਨ)',
+        'Africa/Harare' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਹਰਾਰੇ)',
         'Africa/Johannesburg' => 'ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ (ਜੋਹਨਸਬਰਗ)',
-        'Africa/Juba' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਜੂਬਾ)',
-        'Africa/Kampala' => 'ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਕੰਪਾਲਾ)',
-        'Africa/Khartoum' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਖਾਰਟੌਮ)',
-        'Africa/Kigali' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਕਿਗਾਲੀ)',
+        'Africa/Juba' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਜੂਬਾ)',
+        'Africa/Kampala' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਕੰਪਾਲਾ)',
+        'Africa/Khartoum' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਖਾਰਟੌਮ)',
+        'Africa/Kigali' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਕਿਗਾਲੀ)',
         'Africa/Kinshasa' => 'ਪੱਛਮੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਕਿੰਸ਼ਾਸਾ)',
         'Africa/Lagos' => 'ਪੱਛਮੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਲਾਗੋਸ)',
         'Africa/Libreville' => 'ਪੱਛਮੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਲਿਬਰਵਿਲੇ)',
         'Africa/Lome' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਲੋਮ)',
         'Africa/Luanda' => 'ਪੱਛਮੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਲੁਆਂਡਾ)',
-        'Africa/Lubumbashi' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਲੁਬੁਮਬਾਸ਼ੀ)',
-        'Africa/Lusaka' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਲੁਸਾਕਾ)',
+        'Africa/Lubumbashi' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਲੁਬੁਮਬਾਸ਼ੀ)',
+        'Africa/Lusaka' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਲੁਸਾਕਾ)',
         'Africa/Malabo' => 'ਪੱਛਮੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਮਾਲਾਬੋ)',
-        'Africa/Maputo' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਮਾਪੁਟੋ)',
+        'Africa/Maputo' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਮਾਪੁਟੋ)',
         'Africa/Maseru' => 'ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ (ਮਸੇਰੂ)',
         'Africa/Mbabane' => 'ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ (ਏਮਬਾਬਾਨੇ)',
-        'Africa/Mogadishu' => 'ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਮੋਗਾਦਿਸ਼ੂ)',
+        'Africa/Mogadishu' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਮੋਗਾਦਿਸ਼ੂ)',
         'Africa/Monrovia' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਮੋਨਰੋਵੀਆ)',
-        'Africa/Nairobi' => 'ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਨੈਰੋਬੀ)',
+        'Africa/Nairobi' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਨੈਰੋਬੀ)',
         'Africa/Ndjamena' => 'ਪੱਛਮੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਐਂਜਾਮੇਨਾ)',
         'Africa/Niamey' => 'ਪੱਛਮੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਨਿਆਮੇ)',
         'Africa/Nouakchott' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਨੌਆਕਸ਼ਾਟ)',
@@ -53,7 +54,7 @@
         'Africa/Sao_Tome' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਸਾਓ ਟੋਮ)',
         'Africa/Tripoli' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਤ੍ਰਿਪੋਲੀ)',
         'Africa/Tunis' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਟੁਨਿਸ)',
-        'Africa/Windhoek' => 'ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਵਿੰਡਹੋਇਕ)',
+        'Africa/Windhoek' => 'ਕੇਂਦਰੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਵਿੰਡਹੋਇਕ)',
         'America/Adak' => 'ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਵੇਲਾ (ਏਡਕ)',
         'America/Anchorage' => 'ਅਲਾਸਕਾ ਵੇਲਾ (ਐਂਕਰੇਜ)',
         'America/Anguilla' => 'ਅਟਲਾਂਟਿਕ ਵੇਲਾ (ਅੰਗੁਇਲਾ)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'ਕੋਲੰਬੀਆ ਵੇਲਾ (ਬੋਗੋਟਾ)',
         'America/Boise' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਵੇਲਾ (ਬੋਇਸ)',
         'America/Buenos_Aires' => 'ਅਰਜਨਟੀਨਾ ਵੇਲਾ (ਬੂਈਨਸ ਆਇਰਸ)',
+        'America/Argentina/Buenos_Aires' => 'ਅਰਜਨਟੀਨਾ ਵੇਲਾ (ਬੂਈਨਸ ਆਇਰਸ)',
         'America/Cambridge_Bay' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਵੇਲਾ (ਕੈਮਬ੍ਰਿਜ ਬੇ)',
         'America/Campo_Grande' => 'ਅਮੇਜ਼ਨ ਵੇਲਾ (ਕੈਂਪੋ ਗ੍ਰਾਂਡੇ)',
         'America/Cancun' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਕੈਨਕੁਨ)',
         'America/Caracas' => 'ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ (ਕੈਰਾਕਾਸ)',
         'America/Catamarca' => 'ਅਰਜਨਟੀਨਾ ਵੇਲਾ (ਕੈਟਾਮਾਰਕਾ)',
+        'America/Argentina/Catamarca' => 'ਅਰਜਨਟੀਨਾ ਵੇਲਾ (ਕੈਟਾਮਾਰਕਾ)',
         'America/Cayenne' => 'ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ (ਕੇਯੇਨੇ)',
         'America/Cayman' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਕੇਮੈਨ)',
         'America/Chicago' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਵੇਲਾ (ਸ਼ਿਕਾਗੋ)',
         'America/Chihuahua' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਵੇਲਾ (ਚਿਹੁਆਹੁਆ)',
         'America/Ciudad_Juarez' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਵੇਲਾ (ਸਿਉਡਾਡ ਹੁਆਰੇਜ਼)',
         'America/Coral_Harbour' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਐਟੀਕੋਕਨ)',
+        'America/Atikokan' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਐਟੀਕੋਕਨ)',
         'America/Cordoba' => 'ਅਰਜਨਟੀਨਾ ਵੇਲਾ (ਕੋਰਡੋਬਾ)',
+        'America/Argentina/Cordoba' => 'ਅਰਜਨਟੀਨਾ ਵੇਲਾ (ਕੋਰਡੋਬਾ)',
         'America/Costa_Rica' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਵੇਲਾ (ਕੋਸਟਾ ਰੀਕਾ)',
+        'America/Coyhaique' => 'ਚਿਲੀ ਵੇਲਾ (ਕੋਹੇਕੇ)',
         'America/Creston' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਵੇਲਾ (ਕ੍ਰੈਸਟਨ)',
         'America/Cuiaba' => 'ਅਮੇਜ਼ਨ ਵੇਲਾ (ਕਯੁਏਬਾ)',
         'America/Curacao' => 'ਅਟਲਾਂਟਿਕ ਵੇਲਾ (ਕੁਰਾਕਾਓ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ਬ੍ਰਾਜ਼ੀਲੀਆ ਵੇਲਾ (ਫੋਰਟਾਲੇਜ਼ਾ)',
         'America/Glace_Bay' => 'ਅਟਲਾਂਟਿਕ ਵੇਲਾ (ਗਲੇਸ ਬੇ)',
         'America/Godthab' => 'ਗ੍ਰੀਨਲੈਂਡ ਵੇਲਾ (ਨੂਕ)',
+        'America/Nuuk' => 'ਗ੍ਰੀਨਲੈਂਡ ਵੇਲਾ (ਨੂਕ)',
         'America/Goose_Bay' => 'ਅਟਲਾਂਟਿਕ ਵੇਲਾ (ਗੂਜ਼ ਬੇ)',
         'America/Grand_Turk' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਗਰਾਂਡ ਤੁਰਕ)',
         'America/Grenada' => 'ਅਟਲਾਂਟਿਕ ਵੇਲਾ (ਗ੍ਰੇਨਾਡਾ)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਵਿੰਸੇਨੇਸ, ਇੰਡੀਆਨਾ)',
         'America/Indiana/Winamac' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਵਿਨਮੈਕ, ਇੰਡੀਆਨਾ)',
         'America/Indianapolis' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਇੰਡੀਆਨਾਪੋਲਿਸ)',
+        'America/Indiana/Indianapolis' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਇੰਡੀਆਨਾਪੋਲਿਸ)',
         'America/Inuvik' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਵੇਲਾ (ਇਨੁਵਿਕ)',
         'America/Iqaluit' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਇਕਾਲੁਈਟ)',
         'America/Jamaica' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਜਮਾਇਕਾ)',
         'America/Jujuy' => 'ਅਰਜਨਟੀਨਾ ਵੇਲਾ (ਜੂਜੁਏ)',
+        'America/Argentina/Jujuy' => 'ਅਰਜਨਟੀਨਾ ਵੇਲਾ (ਜੂਜੁਏ)',
         'America/Juneau' => 'ਅਲਾਸਕਾ ਵੇਲਾ (ਜਯੂਨੋ)',
         'America/Kentucky/Monticello' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਮੋਂਟੀਸੈਲੋ, ਕੈਂਟਕੀ)',
         'America/Kralendijk' => 'ਅਟਲਾਂਟਿਕ ਵੇਲਾ (ਕ੍ਰਾਲੇਂਦਿਜਕ)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'ਪੇਰੂ ਵੇਲਾ (ਲੀਮਾ)',
         'America/Los_Angeles' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਵੇਲਾ (ਲਾਸ ਐਂਜਲਸ)',
         'America/Louisville' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਲੁਈਸਵਿਲੇ)',
+        'America/Kentucky/Louisville' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਵੇਲਾ (ਲੁਈਸਵਿਲੇ)',
         'America/Lower_Princes' => 'ਅਟਲਾਂਟਿਕ ਵੇਲਾ (ਲੋਅਰ ਪ੍ਰਿੰਸ’ਸ ਕਵਾਰਟਰ)',
         'America/Maceio' => 'ਬ੍ਰਾਜ਼ੀਲੀਆ ਵੇਲਾ (ਮੈਸੀਓ)',
         'America/Managua' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਵੇਲਾ (ਮਨਾਗੁਆ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਵੇਲਾ (ਮਾਟਾਮੋਰਸ)',
         'America/Mazatlan' => 'ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਵੇਲਾ (ਮਜ਼ੇਤਲਾਨ)',
         'America/Mendoza' => 'ਅਰਜਨਟੀਨਾ ਵੇਲਾ (ਮੈਂਡੋਜ਼ਾ)',
+        'America/Argentina/Mendoza' => 'ਅਰਜਨਟੀਨਾ ਵੇਲਾ (ਮੈਂਡੋਜ਼ਾ)',
         'America/Menominee' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਵੇਲਾ (ਮੈਨੋਮਿਨੀ)',
         'America/Merida' => 'ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਵੇਲਾ (ਮੇਰਿਡਾ)',
         'America/Metlakatla' => 'ਅਲਾਸਕਾ ਵੇਲਾ (ਮੇਟਲਾਕਾਟਲਾ)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'ਅਰਬੀ ਵੇਲਾ (ਬਹਿਰੀਨ)',
         'Asia/Baku' => 'ਅਜ਼ਰਬਾਈਜਾਨ ਵੇਲਾ (ਬਾਕੂ)',
         'Asia/Bangkok' => 'ਇੰਡੋਚਾਈਨਾ ਵੇਲਾ (ਬੈਂਕਾਕ)',
-        'Asia/Barnaul' => 'ਰੂਸ ਵੇਲਾ (ਬਰਨੌਲ)',
+        'Asia/Barnaul' => 'ਕ੍ਰਾਸਨੋਯਾਰਸਕ ਵੇਲਾ (ਬਰਨੌਲ)',
         'Asia/Beirut' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਬੈਰੂਤ)',
         'Asia/Bishkek' => 'ਕਿਰਗਿਸਤਾਨ ਵੇਲਾ (ਬਿਸ਼ਕੇਕ)',
         'Asia/Brunei' => 'ਬਰੂਨੇਈ ਦਾਰੂਸਲਾਮ ਵੇਲਾ',
         'Asia/Calcutta' => 'ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ (ਕੋਲਕਾਤਾ)',
+        'Asia/Kolkata' => 'ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ (ਕੋਲਕਾਤਾ)',
         'Asia/Chita' => 'ਯਕੁਤਸਕ ਵੇਲਾ (ਚਿਤਾ)',
         'Asia/Colombo' => 'ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ (ਕੋਲੰਬੋ)',
         'Asia/Damascus' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਡੈਮਸਕਸ)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ਰੂਸ ਵੇਲਾ (ਕਮਚਟਕਾ)',
         'Asia/Karachi' => 'ਪਾਕਿਸਤਾਨ ਵੇਲਾ (ਕਰਾਚੀ)',
         'Asia/Katmandu' => 'ਨੇਪਾਲ ਵੇਲਾ (ਕਾਠਮਾਂਡੂ)',
+        'Asia/Kathmandu' => 'ਨੇਪਾਲ ਵੇਲਾ (ਕਾਠਮਾਂਡੂ)',
         'Asia/Khandyga' => 'ਯਕੁਤਸਕ ਵੇਲਾ (ਖਾਨਡਿਗਾ)',
         'Asia/Krasnoyarsk' => 'ਕ੍ਰਾਸਨੋਯਾਰਸਕ ਵੇਲਾ (ਕਰੈਸਨੇਜਰਸ)',
         'Asia/Kuala_Lumpur' => 'ਮਲੇਸ਼ੀਆ ਵੇਲਾ (ਕੁਆਲਾਲੰਪੁਰ)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ਖਾੜੀ ਮਿਆਰੀ ਵੇਲਾ (ਮਸਕਟ)',
         'Asia/Nicosia' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਨਿਕੋਸੀਆ)',
         'Asia/Novokuznetsk' => 'ਕ੍ਰਾਸਨੋਯਾਰਸਕ ਵੇਲਾ (ਨੋਵੋਕੁਜ਼ਨੇਟਸਕ)',
-        'Asia/Novosibirsk' => 'ਨੌਵੋਸਿਬੀਰਸਕ ਵੇਲਾ (ਨੋਵੋਸਿਬੀਰਸਕ)',
+        'Asia/Novosibirsk' => 'ਕ੍ਰਾਸਨੋਯਾਰਸਕ ਵੇਲਾ (ਨੋਵੋਸਿਬੀਰਸਕ)',
         'Asia/Omsk' => 'ਓਮਸਕ ਵੇਲਾ',
         'Asia/Oral' => 'ਕਜ਼ਾਖ਼ਸਤਾਨ ਵੇਲਾ (ਓਰਲ)',
         'Asia/Phnom_Penh' => 'ਇੰਡੋਚਾਈਨਾ ਵੇਲਾ (ਫਨੋਮ ਪੇਨਹ)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'ਕਜ਼ਾਖ਼ਸਤਾਨ ਵੇਲਾ (ਕੋਸਤਾਨਾਏ)',
         'Asia/Qyzylorda' => 'ਕਜ਼ਾਖ਼ਸਤਾਨ ਵੇਲਾ (ਕਿਜ਼ੀਲੋਰਡਾ)',
         'Asia/Rangoon' => 'ਮਿਆਂਮਾਰ ਵੇਲਾ (ਰੰਗੂਨ)',
+        'Asia/Yangon' => 'ਮਿਆਂਮਾਰ ਵੇਲਾ (ਰੰਗੂਨ)',
         'Asia/Riyadh' => 'ਅਰਬੀ ਵੇਲਾ (ਰਿਆਧ)',
         'Asia/Saigon' => 'ਇੰਡੋਚਾਈਨਾ ਵੇਲਾ (ਹੋ ਚੀ ਮਿਨ੍ਹ ਸਿਟੀ)',
-        'Asia/Sakhalin' => 'ਸਖਲੀਨ ਵੇਲਾ',
+        'Asia/Ho_Chi_Minh' => 'ਇੰਡੋਚਾਈਨਾ ਵੇਲਾ (ਹੋ ਚੀ ਮਿਨ੍ਹ ਸਿਟੀ)',
+        'Asia/Sakhalin' => 'ਮੈਗੇਡਨ ਵੇਲਾ (ਸਖਲੀਨ)',
         'Asia/Samarkand' => 'ਉਜ਼ਬੇਕਿਸਤਾਨ ਵੇਲਾ (ਸਮਰਕੰਦ)',
         'Asia/Seoul' => 'ਕੋਰੀਆਈ ਵੇਲਾ (ਸਿਉਲ)',
         'Asia/Shanghai' => 'ਚੀਨ ਵੇਲਾ (ਸ਼ੰਘਾਈ)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ਈਰਾਨ ਵੇਲਾ (ਤੇਹਰਾਨ)',
         'Asia/Thimphu' => 'ਭੂਟਾਨ ਵੇਲਾ (ਥਿੰਫੂ)',
         'Asia/Tokyo' => 'ਜਪਾਨ ਵੇਲਾ (ਟੋਕੀਓ)',
-        'Asia/Tomsk' => 'ਰੂਸ ਵੇਲਾ (ਟੋਮਸਕ)',
+        'Asia/Tomsk' => 'ਕ੍ਰਾਸਨੋਯਾਰਸਕ ਵੇਲਾ (ਟੋਮਸਕ)',
         'Asia/Ulaanbaatar' => 'ਉਲਨ ਬਟੋਰ ਵੇਲਾ (ਉਲਾਨਬਾਤਰ)',
         'Asia/Urumqi' => 'ਚੀਨ ਵੇਲਾ (ਊਰੂਮਕੀ)',
         'Asia/Ust-Nera' => 'ਵਲਾਦੀਵੋਸਤਕ ਵੇਲਾ (ਉਸਤ-ਨੇਰਾ)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'ਪੱਛਮੀ ਯੂਰਪੀ ਵੇਲਾ (ਕੇਨੇਰੀ)',
         'Atlantic/Cape_Verde' => 'ਕੇਪ ਵਰਡ ਵੇਲਾ',
         'Atlantic/Faeroe' => 'ਪੱਛਮੀ ਯੂਰਪੀ ਵੇਲਾ (ਫੈਰੋ)',
+        'Atlantic/Faroe' => 'ਪੱਛਮੀ ਯੂਰਪੀ ਵੇਲਾ (ਫੈਰੋ)',
         'Atlantic/Madeira' => 'ਪੱਛਮੀ ਯੂਰਪੀ ਵੇਲਾ (ਮਡੀਅਰਾ)',
         'Atlantic/Reykjavik' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਰੇਕਜਾਵਿਕ)',
         'Atlantic/South_Georgia' => 'ਦੱਖਣੀ ਜਾਰਜੀਆ ਵੇਲਾ',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'ਕੋਔਰਡੀਨੇਟੇਡ ਵਿਆਪਕ ਵੇਲਾ',
         'Europe/Amsterdam' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਐਮਸਟਰਡਮ)',
         'Europe/Andorra' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਅੰਡੋਰਾ)',
-        'Europe/Astrakhan' => 'ਮਾਸਕੋ ਵੇਲਾ (ਆਸਟ੍ਰਾਖਾਨ)',
+        'Europe/Astrakhan' => 'ਰੂਸ ਵੇਲਾ (ਆਸਟ੍ਰਾਖਾਨ)',
         'Europe/Athens' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਏਥਨਸ)',
         'Europe/Belgrade' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਬੈਲਗ੍ਰੇਡ)',
         'Europe/Berlin' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਬਰਲਿਨ)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਜਰਸੀ)',
         'Europe/Kaliningrad' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਕਲੀਨਿੰਗ੍ਰੇਡ)',
         'Europe/Kiev' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਕੀਵ)',
-        'Europe/Kirov' => 'ਰੂਸ ਵੇਲਾ (ਕੀਰੋਵ)',
+        'Europe/Kyiv' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਕੀਵ)',
+        'Europe/Kirov' => 'ਮਾਸਕੋ ਵੇਲਾ (ਕੀਰੋਵ)',
         'Europe/Lisbon' => 'ਪੱਛਮੀ ਯੂਰਪੀ ਵੇਲਾ (ਲਿਸਬਨ)',
         'Europe/Ljubljana' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਲਜੁਬਲਜਾਨਾ)',
         'Europe/London' => 'ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ (ਲੰਡਨ)',
@@ -356,32 +373,32 @@
         'Europe/Samara' => 'ਰੂਸ ਵੇਲਾ (ਸਮਾਰਾ)',
         'Europe/San_Marino' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਸੈਨ ਮਰੀਨੋ)',
         'Europe/Sarajevo' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਸਾਰਾਜੇਵੋ)',
-        'Europe/Saratov' => 'ਮਾਸਕੋ ਵੇਲਾ (ਸੈਰਾਟੋਵ)',
+        'Europe/Saratov' => 'ਰੂਸ ਵੇਲਾ (ਸੈਰਾਟੋਵ)',
         'Europe/Simferopol' => 'ਮਾਸਕੋ ਵੇਲਾ (ਸਿਮਫਰੋਪੋਲ)',
         'Europe/Skopje' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਸਕੋਪਜੇ)',
         'Europe/Sofia' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਸੋਫੀਆ)',
         'Europe/Stockholm' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਸਟਾਕਹੋਮ)',
         'Europe/Tallinn' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਟੱਲਿਨ)',
         'Europe/Tirane' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਤਿਰਾਨੇ)',
-        'Europe/Ulyanovsk' => 'ਮਾਸਕੋ ਵੇਲਾ (ਯੁਲਿਆਨੋਸਕ)',
+        'Europe/Ulyanovsk' => 'ਰੂਸ ਵੇਲਾ (ਯੁਲਿਆਨੋਸਕ)',
         'Europe/Vaduz' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਵਾਡੁਜ਼)',
         'Europe/Vatican' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਵੈਟਿਕਨ)',
         'Europe/Vienna' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਵਿਆਨਾ)',
         'Europe/Vilnius' => 'ਪੂਰਬੀ ਯੂਰਪੀ ਵੇਲਾ (ਵਿਲਨਿਅਸ)',
-        'Europe/Volgograd' => 'ਵੋਲਗੋਗ੍ਰੇਡ ਵੇਲਾ',
+        'Europe/Volgograd' => 'ਮਾਸਕੋ ਵੇਲਾ (ਵੋਲਗੋਗ੍ਰੇਡ)',
         'Europe/Warsaw' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਵਾਰਸਾਅ)',
         'Europe/Zagreb' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਜ਼ਗਰੇਬ)',
         'Europe/Zurich' => 'ਮੱਧ ਯੂਰਪੀ ਵੇਲਾ (ਜਿਊਰਿਖ)',
-        'Indian/Antananarivo' => 'ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਅੰਟਾਨਨੇਰਿਵੋ)',
+        'Indian/Antananarivo' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਅੰਟਾਨਨੇਰਿਵੋ)',
         'Indian/Chagos' => 'ਹਿੰਦ ਮਹਾਂਸਾਗਰ ਵੇਲਾ (ਚਾਗੋਸ)',
         'Indian/Christmas' => 'ਕ੍ਰਿਸਮਸ ਆਈਲੈਂਡ ਵੇਲਾ',
         'Indian/Cocos' => 'ਕੋਕਸ ਆਈਲੈਂਡ ਵੇਲਾ (ਕੋਕੋਜ਼)',
-        'Indian/Comoro' => 'ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਕੋਮੋਰੋ)',
+        'Indian/Comoro' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਕੋਮੋਰੋ)',
         'Indian/Kerguelen' => 'ਫ੍ਰੈਂਚ ਦੱਖਣੀ ਅਤੇ ਐਂਟਾਰਟਿਕ ਵੇਲਾ (ਕਰਗਯੂਲੇਨ)',
         'Indian/Mahe' => 'ਸੇਸ਼ਲਸ ਵੇਲਾ (ਮਾਹੇ)',
         'Indian/Maldives' => 'ਮਾਲਦੀਵ ਵੇਲਾ',
         'Indian/Mauritius' => 'ਮੌਰਿਸ਼ਸ ਵੇਲਾ',
-        'Indian/Mayotte' => 'ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ (ਮਾਯੋਟੀ)',
+        'Indian/Mayotte' => 'ਪੂਰਬੀ ਅਫ਼ਰੀਕਾ ਵੇਲਾ (ਮਾਯੋਟੀ)',
         'Indian/Reunion' => 'ਰਿਯੂਨੀਅਨ ਵੇਲਾ',
         'Pacific/Apia' => 'ਐਪੀਆ ਵੇਲਾ',
         'Pacific/Auckland' => 'ਨਿਊਜ਼ੀਲੈਂਡ ਵੇਲਾ (ਆਕਲੈਂਡ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'ਚੈਥਮ ਵੇਲਾ',
         'Pacific/Easter' => 'ਈਸਟਰ ਆਈਲੈਂਡ ਵੇਲਾ',
         'Pacific/Efate' => 'ਵਾਨੂਆਟੂ ਵੇਲਾ (ਇਫੇਟ)',
-        'Pacific/Enderbury' => 'ਫਿਨਿਕਸ ਆਈਲੈਂਡ ਵੇਲਾ (ਏਂਡਰਬਰੀ)',
+        'Pacific/Enderbury' => 'ਫਿਨਿਕਸ ਆਈਲੈਂਡ ਵੇਲਾ (ਕੈਂਟੋਨ)',
+        'Pacific/Kanton' => 'ਫਿਨਿਕਸ ਆਈਲੈਂਡ ਵੇਲਾ (ਕੈਂਟੋਨ)',
         'Pacific/Fakaofo' => 'ਟੋਕੇਲਾਉ ਵੇਲਾ (ਫਕਾਉਫੋ)',
         'Pacific/Fiji' => 'ਫ਼ਿਜ਼ੀ ਵੇਲਾ (ਫ਼ਿਜੀ)',
         'Pacific/Funafuti' => 'ਟੁਵਾਲੂ ਵੇਲਾ (ਫੁਨਾਫੁਟੀ)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ਗੈਂਬੀਅਰ ਵੇਲਾ',
         'Pacific/Guadalcanal' => 'ਸੋਲੋਮਨ ਆਈਲੈਂਡਸ ਵੇਲਾ (ਗੁਆਡਾਕੇਨਲ)',
         'Pacific/Guam' => 'ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ (ਗੁਆਮ)',
-        'Pacific/Honolulu' => 'ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਵੇਲਾ (ਹੋਨੋਲੁਲੂ)',
+        'Pacific/Honolulu' => 'ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ (ਹੋਨੋਲੁਲੂ)',
         'Pacific/Kiritimati' => 'ਲਾਈਨ ਆਈਲੈਂਡ ਵੇਲਾ (ਕਿਰਿਤਿਮਤੀ)',
         'Pacific/Kosrae' => 'ਕੋਸਰੇ ਵੇਲਾ (ਕੋਸ੍ਰਾਏ)',
         'Pacific/Kwajalein' => 'ਮਾਰਸ਼ਲ ਆਈਲੈਂਡ ਵੇਲਾ (ਕਵਾਜਾਲੀਨ)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'ਪਲਾਉ ਵੇਲਾ',
         'Pacific/Pitcairn' => 'ਪਿਟਕੈਰਨ ਵੇਲਾ',
         'Pacific/Ponape' => 'ਪੋਨਾਪੇ ਵੇਲਾ (ਪੋਹਨਪੇਈ)',
+        'Pacific/Pohnpei' => 'ਪੋਨਾਪੇ ਵੇਲਾ (ਪੋਹਨਪੇਈ)',
         'Pacific/Port_Moresby' => 'ਪਾਪੂਆ ਨਿਊ ਗਿਨੀ ਵੇਲਾ (ਪੋਰਟ ਮੋਰੇਸਬੀ)',
         'Pacific/Rarotonga' => 'ਕੁੱਕ ਆਈਲੈਂਡ ਵੇਲਾ (ਰਾਰੋਟੋਂਗਾ)',
         'Pacific/Saipan' => 'ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ (ਸੈਪਾਨ)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'ਗਿਲਬਰਟ ਆਈਲੈਂਡ ਵੇਲਾ (ਟਾਰਾਵਾ)',
         'Pacific/Tongatapu' => 'ਟੋਂਗਾ ਵੇਲਾ (ਟੋਂਗਾਟਾਪੂ)',
         'Pacific/Truk' => 'ਚੂਕ ਵੇਲਾ',
+        'Pacific/Chuuk' => 'ਚੂਕ ਵੇਲਾ',
         'Pacific/Wake' => 'ਵੇਕ ਆਈਲੈਂਡ ਵੇਲਾ',
         'Pacific/Wallis' => 'ਵਾਲਿਸ ਅਤੇ ਫੁਟੂਨਾ ਵੇਲਾ',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pl.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'czas wschodnioafrykański (Addis Abeba)',
         'Africa/Algiers' => 'czas środkowoeuropejski (Algier)',
         'Africa/Asmera' => 'czas wschodnioafrykański (Asmara)',
+        'Africa/Asmara' => 'czas wschodnioafrykański (Asmara)',
         'Africa/Bamako' => 'czas uniwersalny (Bamako)',
         'Africa/Bangui' => 'czas zachodnioafrykański (Bangi)',
         'Africa/Banjul' => 'czas uniwersalny (Bandżul)',
@@ -58,13 +59,13 @@
         'America/Anchorage' => 'czas Alaska (Anchorage)',
         'America/Anguilla' => 'czas atlantycki (Anguilla)',
         'America/Antigua' => 'czas atlantycki (Antigua)',
-        'America/Araguaina' => 'czas Brasília (Araguaina)',
+        'America/Araguaina' => 'czas Brasília (Araguaína)',
         'America/Argentina/La_Rioja' => 'czas Argentyna (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'czas Argentyna (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'czas Argentyna (Río Gallegos)',
         'America/Argentina/Salta' => 'czas Argentyna (Salta)',
         'America/Argentina/San_Juan' => 'czas Argentyna (San Juan)',
         'America/Argentina/San_Luis' => 'czas Argentyna (San Luis)',
-        'America/Argentina/Tucuman' => 'czas Argentyna (Tucuman)',
+        'America/Argentina/Tucuman' => 'czas Argentyna (Tucumán)',
         'America/Argentina/Ushuaia' => 'czas Argentyna (Ushuaia)',
         'America/Aruba' => 'czas atlantycki (Aruba)',
         'America/Asuncion' => 'czas Paragwaj (Asunción)',
@@ -75,22 +76,27 @@
         'America/Belize' => 'czas środkowoamerykański (Belize)',
         'America/Blanc-Sablon' => 'czas atlantycki (Blanc-Sablon)',
         'America/Boa_Vista' => 'czas amazoński (Boa Vista)',
-        'America/Bogota' => 'czas Kolumbia (Bogota)',
+        'America/Bogota' => 'czas Kolumbia (Bogotá)',
         'America/Boise' => 'czas górski (Boise)',
         'America/Buenos_Aires' => 'czas Argentyna (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'czas Argentyna (Buenos Aires)',
         'America/Cambridge_Bay' => 'czas górski (Cambridge Bay)',
         'America/Campo_Grande' => 'czas amazoński (Campo Grande)',
         'America/Cancun' => 'czas wschodnioamerykański (Cancún)',
         'America/Caracas' => 'czas Wenezuela (Caracas)',
         'America/Catamarca' => 'czas Argentyna (Catamarca)',
+        'America/Argentina/Catamarca' => 'czas Argentyna (Catamarca)',
         'America/Cayenne' => 'czas Gujana Francuska (Kajenna)',
         'America/Cayman' => 'czas wschodnioamerykański (Kajmany)',
         'America/Chicago' => 'czas środkowoamerykański (Chicago)',
         'America/Chihuahua' => 'czas środkowoamerykański (Chihuahua)',
         'America/Ciudad_Juarez' => 'czas górski (Ciudad Juárez)',
         'America/Coral_Harbour' => 'czas wschodnioamerykański (Atikokan)',
+        'America/Atikokan' => 'czas wschodnioamerykański (Atikokan)',
         'America/Cordoba' => 'czas Argentyna (Córdoba)',
+        'America/Argentina/Cordoba' => 'czas Argentyna (Córdoba)',
         'America/Costa_Rica' => 'czas środkowoamerykański (Kostaryka)',
+        'America/Coyhaique' => 'czas Chile (Coyhaique)',
         'America/Creston' => 'czas górski (Creston)',
         'America/Cuiaba' => 'czas amazoński (Cuiabá)',
         'America/Curacao' => 'czas atlantycki (Curaçao)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'czas wschodnioamerykański (Detroit)',
         'America/Dominica' => 'czas atlantycki (Dominika)',
         'America/Edmonton' => 'czas górski (Edmonton)',
-        'America/Eirunepe' => 'czas: Brazylia (Eirunepe)',
+        'America/Eirunepe' => 'czas: Brazylia (Eirunepé)',
         'America/El_Salvador' => 'czas środkowoamerykański (Salwador)',
         'America/Fort_Nelson' => 'czas górski (Fort Nelson)',
         'America/Fortaleza' => 'czas Brasília (Fortaleza)',
         'America/Glace_Bay' => 'czas atlantycki (Glace Bay)',
         'America/Godthab' => 'czas: Grenlandia (Nuuk)',
+        'America/Nuuk' => 'czas: Grenlandia (Nuuk)',
         'America/Goose_Bay' => 'czas atlantycki (Goose Bay)',
         'America/Grand_Turk' => 'czas wschodnioamerykański (Grand Turk)',
         'America/Grenada' => 'czas atlantycki (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'czas wschodnioamerykański (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'czas wschodnioamerykański (Winamac, Indiana)',
         'America/Indianapolis' => 'czas wschodnioamerykański (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'czas wschodnioamerykański (Indianapolis)',
         'America/Inuvik' => 'czas górski (Inuvik)',
         'America/Iqaluit' => 'czas wschodnioamerykański (Iqaluit)',
         'America/Jamaica' => 'czas wschodnioamerykański (Jamajka)',
         'America/Jujuy' => 'czas Argentyna (Jujuy)',
+        'America/Argentina/Jujuy' => 'czas Argentyna (Jujuy)',
         'America/Juneau' => 'czas Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'czas wschodnioamerykański (Monticello, Kentucky)',
         'America/Kralendijk' => 'czas atlantycki (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'czas Peru (Lima)',
         'America/Los_Angeles' => 'czas pacyficzny (Los Angeles)',
         'America/Louisville' => 'czas wschodnioamerykański (Louisville)',
+        'America/Kentucky/Louisville' => 'czas wschodnioamerykański (Louisville)',
         'America/Lower_Princes' => 'czas atlantycki (Lower Prince’s Quarter)',
         'America/Maceio' => 'czas Brasília (Maceió)',
         'America/Managua' => 'czas środkowoamerykański (Managua)',
@@ -143,8 +153,9 @@
         'America/Marigot' => 'czas atlantycki (Marigot)',
         'America/Martinique' => 'czas atlantycki (Martynika)',
         'America/Matamoros' => 'czas środkowoamerykański (Matamoros)',
-        'America/Mazatlan' => 'Meksyk (czas pacyficzny) (Mazatlan)',
+        'America/Mazatlan' => 'Meksyk (czas pacyficzny) (Mazatlán)',
         'America/Mendoza' => 'czas Argentyna (Mendoza)',
+        'America/Argentina/Mendoza' => 'czas Argentyna (Mendoza)',
         'America/Menominee' => 'czas środkowoamerykański (Menominee)',
         'America/Merida' => 'czas środkowoamerykański (Merida)',
         'America/Metlakatla' => 'czas Alaska (Metlakatla)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'czas środkowoamerykański (Regina)',
         'America/Resolute' => 'czas środkowoamerykański (Resolute)',
         'America/Rio_Branco' => 'czas: Brazylia (Rio Branco)',
-        'America/Santarem' => 'czas Brasília (Santarem)',
+        'America/Santarem' => 'czas Brasília (Santarém)',
         'America/Santiago' => 'czas Chile (Santiago)',
         'America/Santo_Domingo' => 'czas atlantycki (Santo Domingo)',
-        'America/Sao_Paulo' => 'czas Brasília (Sao Paulo)',
+        'America/Sao_Paulo' => 'czas Brasília (São Paulo)',
         'America/Scoresbysund' => 'czas: Grenlandia (Ittoqqortoormiit)',
         'America/Sitka' => 'czas Alaska (Sitka)',
         'America/St_Barthelemy' => 'czas atlantycki (Saint-Barthélemy)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'czas Nowa Zelandia (McMurdo)',
         'Antarctica/Palmer' => 'czas Chile (Palmer)',
         'Antarctica/Rothera' => 'czas Rothera',
-        'Antarctica/Syowa' => 'czas Syowa',
+        'Antarctica/Syowa' => 'czas Syowa (Showa)',
         'Antarctica/Troll' => 'czas uniwersalny (Troll)',
         'Antarctica/Vostok' => 'czas Wostok',
         'Arctic/Longyearbyen' => 'czas środkowoeuropejski (Longyearbyen)',
         'Asia/Aden' => 'czas Półwysep Arabski (Aden)',
         'Asia/Almaty' => 'czas Kazachstan (Ałmaty)',
         'Asia/Amman' => 'czas wschodnioeuropejski (Amman)',
-        'Asia/Anadyr' => 'czas Anadyr',
+        'Asia/Anadyr' => 'czas Pietropawłowsk Kamczacki (Anadyr)',
         'Asia/Aqtau' => 'czas Kazachstan (Aktau)',
         'Asia/Aqtobe' => 'czas Kazachstan (Aktiubińsk)',
         'Asia/Ashgabat' => 'czas Turkmenistan (Aszchabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'czas Półwysep Arabski (Bahrajn)',
         'Asia/Baku' => 'czas Azerbejdżan (Baku)',
         'Asia/Bangkok' => 'czas indochiński (Bangkok)',
-        'Asia/Barnaul' => 'czas: Rosja (Barnauł)',
+        'Asia/Barnaul' => 'czas Krasnojarsk (Barnauł)',
         'Asia/Beirut' => 'czas wschodnioeuropejski (Bejrut)',
         'Asia/Bishkek' => 'czas Kirgistan (Biszkek)',
         'Asia/Brunei' => 'czas Brunei',
         'Asia/Calcutta' => 'czas indyjski standardowy (Kalkuta)',
+        'Asia/Kolkata' => 'czas indyjski standardowy (Kalkuta)',
         'Asia/Chita' => 'czas Jakuck (Czyta)',
         'Asia/Colombo' => 'czas indyjski standardowy (Kolombo)',
         'Asia/Damascus' => 'czas wschodnioeuropejski (Damaszek)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'czas Pietropawłowsk Kamczacki (Kamczatka)',
         'Asia/Karachi' => 'czas Pakistan (Karaczi)',
         'Asia/Katmandu' => 'czas Nepal (Katmandu)',
+        'Asia/Kathmandu' => 'czas Nepal (Katmandu)',
         'Asia/Khandyga' => 'czas Jakuck (Chandyga)',
         'Asia/Krasnoyarsk' => 'czas Krasnojarsk',
         'Asia/Kuala_Lumpur' => 'czas Malezja (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'czas Zatoka Perska (Maskat)',
         'Asia/Nicosia' => 'czas wschodnioeuropejski (Nikozja)',
         'Asia/Novokuznetsk' => 'czas Krasnojarsk (Nowokuźnieck)',
-        'Asia/Novosibirsk' => 'czas Nowosybirsk',
+        'Asia/Novosibirsk' => 'czas Krasnojarsk (Nowosybirsk)',
         'Asia/Omsk' => 'czas Omsk',
         'Asia/Oral' => 'czas Kazachstan (Uralsk)',
         'Asia/Phnom_Penh' => 'czas indochiński (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'czas Kazachstan (Kustanaj)',
         'Asia/Qyzylorda' => 'czas Kazachstan (Kyzyłorda)',
         'Asia/Rangoon' => 'czas Mjanma (Rangun)',
+        'Asia/Yangon' => 'czas Mjanma (Rangun)',
         'Asia/Riyadh' => 'czas Półwysep Arabski (Rijad)',
         'Asia/Saigon' => 'czas indochiński (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'czas Sachalin',
+        'Asia/Ho_Chi_Minh' => 'czas indochiński (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'czas Magadan (Sachalin)',
         'Asia/Samarkand' => 'czas Uzbekistan (Samarkanda)',
         'Asia/Seoul' => 'czas Korea (Seul)',
         'Asia/Shanghai' => 'czas Chiny (Szanghaj)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'czas Iran (Teheran)',
         'Asia/Thimphu' => 'czas Bhutan (Thimphu)',
         'Asia/Tokyo' => 'czas Japonia (Tokio)',
-        'Asia/Tomsk' => 'czas: Rosja (Tomsk)',
+        'Asia/Tomsk' => 'czas Krasnojarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'czas Ułan Bator',
         'Asia/Urumqi' => 'czas: Chiny (Urumczi)',
         'Asia/Ust-Nera' => 'czas Władywostok (Ust-Niera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'czas zachodnioeuropejski (Wyspy Kanaryjskie)',
         'Atlantic/Cape_Verde' => 'czas Wyspy Zielonego Przylądka (Republika Zielonego Przylądka)',
         'Atlantic/Faeroe' => 'czas zachodnioeuropejski (Wyspy Owcze)',
+        'Atlantic/Faroe' => 'czas zachodnioeuropejski (Wyspy Owcze)',
         'Atlantic/Madeira' => 'czas zachodnioeuropejski (Madera)',
         'Atlantic/Reykjavik' => 'czas uniwersalny (Reykjavik)',
         'Atlantic/South_Georgia' => 'czas Georgia Południowa',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'uniwersalny czas koordynowany',
         'Europe/Amsterdam' => 'czas środkowoeuropejski (Amsterdam)',
         'Europe/Andorra' => 'czas środkowoeuropejski (Andora)',
-        'Europe/Astrakhan' => 'czas Moskwa (Astrachań)',
+        'Europe/Astrakhan' => 'czas Samara (Astrachań)',
         'Europe/Athens' => 'czas wschodnioeuropejski (Ateny)',
         'Europe/Belgrade' => 'czas środkowoeuropejski (Belgrad)',
         'Europe/Berlin' => 'czas środkowoeuropejski (Berlin)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'czas uniwersalny (Jersey)',
         'Europe/Kaliningrad' => 'czas wschodnioeuropejski (Kaliningrad)',
         'Europe/Kiev' => 'czas wschodnioeuropejski (Kijów)',
-        'Europe/Kirov' => 'czas: Rosja (Kirow)',
+        'Europe/Kyiv' => 'czas wschodnioeuropejski (Kijów)',
+        'Europe/Kirov' => 'czas Moskwa (Kirow)',
         'Europe/Lisbon' => 'czas zachodnioeuropejski (Lizbona)',
         'Europe/Ljubljana' => 'czas środkowoeuropejski (Lublana)',
         'Europe/London' => 'czas uniwersalny (Londyn)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'czas Samara',
         'Europe/San_Marino' => 'czas środkowoeuropejski (San Marino)',
         'Europe/Sarajevo' => 'czas środkowoeuropejski (Sarajewo)',
-        'Europe/Saratov' => 'czas Moskwa (Saratów)',
+        'Europe/Saratov' => 'czas Samara (Saratów)',
         'Europe/Simferopol' => 'czas Moskwa (Symferopol)',
         'Europe/Skopje' => 'czas środkowoeuropejski (Skopje)',
         'Europe/Sofia' => 'czas wschodnioeuropejski (Sofia)',
         'Europe/Stockholm' => 'czas środkowoeuropejski (Sztokholm)',
         'Europe/Tallinn' => 'czas wschodnioeuropejski (Tallin)',
         'Europe/Tirane' => 'czas środkowoeuropejski (Tirana)',
-        'Europe/Ulyanovsk' => 'czas Moskwa (Uljanowsk)',
+        'Europe/Ulyanovsk' => 'czas Samara (Uljanowsk)',
         'Europe/Vaduz' => 'czas środkowoeuropejski (Vaduz)',
         'Europe/Vatican' => 'czas środkowoeuropejski (Watykan)',
         'Europe/Vienna' => 'czas środkowoeuropejski (Wiedeń)',
         'Europe/Vilnius' => 'czas wschodnioeuropejski (Wilno)',
-        'Europe/Volgograd' => 'czas Wołgograd',
+        'Europe/Volgograd' => 'czas Moskwa (Wołgograd)',
         'Europe/Warsaw' => 'czas środkowoeuropejski (Warszawa)',
         'Europe/Zagreb' => 'czas środkowoeuropejski (Zagrzeb)',
         'Europe/Zurich' => 'czas środkowoeuropejski (Zurych)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'czas Chatham',
         'Pacific/Easter' => 'czas Wyspa Wielkanocna',
         'Pacific/Efate' => 'czas Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'czas Feniks (Enderbury)',
+        'Pacific/Enderbury' => 'czas Feniks (Kanton)',
+        'Pacific/Kanton' => 'czas Feniks (Kanton)',
         'Pacific/Fakaofo' => 'czas Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'czas Fidżi',
         'Pacific/Funafuti' => 'czas Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'czas Galapagos',
+        'Pacific/Galapagos' => 'czas Galapagos (Galápagos)',
         'Pacific/Gambier' => 'czas Wyspy Gambiera',
         'Pacific/Guadalcanal' => 'czas Wyspy Salomona (Guadalcanal)',
         'Pacific/Guam' => 'czas Czamorro (Guam)',
-        'Pacific/Honolulu' => 'czas Hawaje-Aleuty (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaje-Aleuty (czas standardowy) (Honolulu)',
         'Pacific/Kiritimati' => 'czas Line Islands (Kiritimati)',
         'Pacific/Kosrae' => 'czas Kosrae',
         'Pacific/Kwajalein' => 'czas Wyspy Marshalla (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'czas Palau',
         'Pacific/Pitcairn' => 'czas Pitcairn',
         'Pacific/Ponape' => 'czas Pohnpei',
+        'Pacific/Pohnpei' => 'czas Pohnpei',
         'Pacific/Port_Moresby' => 'czas Papua-Nowa Gwinea (Port Moresby)',
         'Pacific/Rarotonga' => 'czas Wyspy Cooka (Rarotonga)',
         'Pacific/Saipan' => 'czas Czamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'czas Wyspy Gilberta (Tarawa)',
         'Pacific/Tongatapu' => 'czas Tonga (Tongatapu)',
         'Pacific/Truk' => 'czas Chuuk',
+        'Pacific/Chuuk' => 'czas Chuuk',
         'Pacific/Wake' => 'czas Wake',
-        'Pacific/Wallis' => 'czas Wallis i Futuna',
+        'Pacific/Wallis' => 'czas Wallis i Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ps.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ps.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ps.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ps.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'ختيځ افريقا وخت (اديس ابابا)',
         'Africa/Algiers' => 'مرکزي اروپايي وخت (الجييرز)',
         'Africa/Asmera' => 'ختيځ افريقا وخت (اسماره)',
+        'Africa/Asmara' => 'ختيځ افريقا وخت (اسماره)',
         'Africa/Bamako' => 'ګرينويچ معياري وخت (بامیکو)',
         'Africa/Bangui' => 'لوېديځ افريقا وخت (بانګوي)',
         'Africa/Banjul' => 'ګرينويچ معياري وخت (بانجول)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'کولمبیا وخت (بوګټا)',
         'America/Boise' => 'د غره د وخت (بوز)',
         'America/Buenos_Aires' => 'ارجنټاین وخت (بينوس اييرز)',
+        'America/Argentina/Buenos_Aires' => 'ارجنټاین وخت (بينوس اييرز)',
         'America/Cambridge_Bay' => 'د غره د وخت (کیمبرج بي)',
         'America/Campo_Grande' => 'ایمیزون وخت (کمپو ګرډی)',
         'America/Cancun' => 'ختیځ وخت (کينکن)',
         'America/Caracas' => 'وینزویلا وخت (کاراکاس)',
         'America/Catamarca' => 'ارجنټاین وخت (کټامارکا)',
+        'America/Argentina/Catamarca' => 'ارجنټاین وخت (کټامارکا)',
         'America/Cayenne' => 'د فرانسوي ګانا وخت (کیین)',
         'America/Cayman' => 'ختیځ وخت (کیمن)',
         'America/Chicago' => 'مرکزي وخت (شیکاګو)',
         'America/Chihuahua' => 'مرکزي وخت (چھواھوا)',
         'America/Ciudad_Juarez' => 'د غره د وخت (سیوداد جیوریز)',
         'America/Coral_Harbour' => 'ختیځ وخت (اتیکوکن)',
+        'America/Atikokan' => 'ختیځ وخت (اتیکوکن)',
         'America/Cordoba' => 'ارجنټاین وخت (کورډوبا)',
+        'America/Argentina/Cordoba' => 'ارجنټاین وخت (کورډوبا)',
         'America/Costa_Rica' => 'مرکزي وخت (کوستاریکا)',
+        'America/Coyhaique' => 'چلی وخت (کوهيک)',
         'America/Creston' => 'د غره د وخت (کرسټون)',
         'America/Cuiaba' => 'ایمیزون وخت (کویابا)',
         'America/Curacao' => 'اتلانتیک وخت (کوراکاؤ)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'ختیځ وخت (ډایټروټ)',
         'America/Dominica' => 'اتلانتیک وخت (دومینیکا)',
         'America/Edmonton' => 'د غره د وخت (ایډمونټن)',
-        'America/Eirunepe' => 'د برازیل په وخت (اییرونپ)',
+        'America/Eirunepe' => 'برازیل وخت (اییرونپ)',
         'America/El_Salvador' => 'مرکزي وخت (ايل سلوادور)',
         'America/Fort_Nelson' => 'د غره د وخت (فورټ نیلسن)',
         'America/Fortaleza' => 'برسلیا وخت (فورتیلزا)',
         'America/Glace_Bay' => 'اتلانتیک وخت (ګیسس بيی)',
-        'America/Godthab' => 'د ګرینلینډ په وخت (نووک)',
+        'America/Godthab' => 'ګرینلینډ وخت (نووک)',
+        'America/Nuuk' => 'ګرینلینډ وخت (نووک)',
         'America/Goose_Bay' => 'اتلانتیک وخت (گوز بي)',
         'America/Grand_Turk' => 'ختیځ وخت (لوی ترک)',
         'America/Grenada' => 'اتلانتیک وخت (ګرنادا)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ختیځ وخت (وينسينس، انډيانا)',
         'America/Indiana/Winamac' => 'ختیځ وخت (وينامک انډيانا)',
         'America/Indianapolis' => 'ختیځ وخت (انډيانا پوليس)',
+        'America/Indiana/Indianapolis' => 'ختیځ وخت (انډيانا پوليس)',
         'America/Inuvik' => 'د غره د وخت (انوک)',
         'America/Iqaluit' => 'ختیځ وخت (اقلیټ)',
         'America/Jamaica' => 'ختیځ وخت (جمایکه)',
         'America/Jujuy' => 'ارجنټاین وخت (جوجوي)',
+        'America/Argentina/Jujuy' => 'ارجنټاین وخت (جوجوي)',
         'America/Juneau' => 'الاسکا وخت (جونو)',
         'America/Kentucky/Monticello' => 'ختیځ وخت (مونټيسيلو، کونټکی)',
         'America/Kralendijk' => 'اتلانتیک وخت (کلینډیزج)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'پیرو وخت (لیما)',
         'America/Los_Angeles' => 'پیسفک وخت (لاس اینجلس)',
         'America/Louisville' => 'ختیځ وخت (لوئس ویل)',
+        'America/Kentucky/Louisville' => 'ختیځ وخت (لوئس ویل)',
         'America/Lower_Princes' => 'اتلانتیک وخت (لوور پرنس کوارټر)',
         'America/Maceio' => 'برسلیا وخت (ماسيو)',
         'America/Managua' => 'مرکزي وخت (منګوا)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'مرکزي وخت (ميټاموروس)',
         'America/Mazatlan' => 'مکسیکن پیسفک وخت (مزاتلان)',
         'America/Mendoza' => 'ارجنټاین وخت (مینډوزا)',
+        'America/Argentina/Mendoza' => 'ارجنټاین وخت (مینډوزا)',
         'America/Menominee' => 'مرکزي وخت (مینومین)',
         'America/Merida' => 'مرکزي وخت (ميريډا)',
         'America/Metlakatla' => 'الاسکا وخت (میتلاکاټلا)',
@@ -174,12 +185,12 @@
         'America/Recife' => 'برسلیا وخت (ریسیفي)',
         'America/Regina' => 'مرکزي وخت (ریګینا)',
         'America/Resolute' => 'مرکزي وخت (ريسالوټ)',
-        'America/Rio_Branco' => 'د برازیل په وخت (ریو برانکو)',
+        'America/Rio_Branco' => 'برازیل وخت (ریو برانکو)',
         'America/Santarem' => 'برسلیا وخت (سناترم)',
         'America/Santiago' => 'چلی وخت (سنتياګو)',
         'America/Santo_Domingo' => 'اتلانتیک وخت (سنتو ډومینګو)',
         'America/Sao_Paulo' => 'برسلیا وخت (ساو پاولو)',
-        'America/Scoresbysund' => 'د ګرینلینډ په وخت (اټوکوټورمیټ)',
+        'America/Scoresbysund' => 'ګرینلینډ وخت (اټوکوټورمیټ)',
         'America/Sitka' => 'الاسکا وخت (سیټکا)',
         'America/St_Barthelemy' => 'اتلانتیک وخت (سینټ بارټیلیم)',
         'America/St_Johns' => 'نيو فاونډلېنډ وخت (سینټ جانز)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'عربي وخت (اډن)',
         'Asia/Almaty' => 'قزاقستان وخت (الماتی)',
         'Asia/Amman' => 'ختيځ اروپايي وخت (اممان)',
-        'Asia/Anadyr' => 'د روسیه په وخت (اناډير)',
+        'Asia/Anadyr' => 'روسیه وخت (اناډير)',
         'Asia/Aqtau' => 'قزاقستان وخت (اکټاو)',
         'Asia/Aqtobe' => 'قزاقستان وخت (اکتوب)',
         'Asia/Ashgabat' => 'ترکمانستان وخت (اشغ آباد)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'عربي وخت (بحرین)',
         'Asia/Baku' => 'د آذربايجان وخت (باکو)',
         'Asia/Bangkok' => 'انډوچاینه وخت (بنکاک)',
-        'Asia/Barnaul' => 'د روسیه په وخت (برنول)',
+        'Asia/Barnaul' => 'کريسنويارسک وخت (برنول)',
         'Asia/Beirut' => 'ختيځ اروپايي وخت (بیروت)',
         'Asia/Bishkek' => 'کرغیزستان وخت (بشکیک)',
         'Asia/Brunei' => 'برونايي دارالسلام وخت (برویني)',
         'Asia/Calcutta' => 'هند معیاري وخت (کولکته)',
+        'Asia/Kolkata' => 'هند معیاري وخت (کولکته)',
         'Asia/Chita' => 'ياکوټسک وخت (چيتا)',
         'Asia/Colombo' => 'هند معیاري وخت (کولمبو)',
         'Asia/Damascus' => 'ختيځ اروپايي وخت (دمشق)',
@@ -243,9 +255,10 @@
         'Asia/Jayapura' => 'اندونیزیا وخت (جاياپورا)',
         'Asia/Jerusalem' => 'اسراییل وخت (يروشلم)',
         'Asia/Kabul' => 'افغانستان وخت (کابل)',
-        'Asia/Kamchatka' => 'د روسیه په وخت (کامچاتکا)',
+        'Asia/Kamchatka' => 'روسیه وخت (کامچاتکا)',
         'Asia/Karachi' => 'پاکستان وخت (کراچي)',
         'Asia/Katmandu' => 'نیپال وخت (کټمنډو)',
+        'Asia/Kathmandu' => 'نیپال وخت (کټمنډو)',
         'Asia/Khandyga' => 'ياکوټسک وخت (خنديګا)',
         'Asia/Krasnoyarsk' => 'کريسنويارسک وخت',
         'Asia/Kuala_Lumpur' => 'ملائیشیا وخت (کولالمپور)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'خلیج معياري وخت (مسقط)',
         'Asia/Nicosia' => 'ختيځ اروپايي وخت (نیکوسیا)',
         'Asia/Novokuznetsk' => 'کريسنويارسک وخت (نووکوزنیټک)',
-        'Asia/Novosibirsk' => 'نووسيبرسک وخت',
+        'Asia/Novosibirsk' => 'کريسنويارسک وخت (نووسيبرسک)',
         'Asia/Omsk' => 'اومسک وخت',
         'Asia/Oral' => 'قزاقستان وخت (اورل)',
         'Asia/Phnom_Penh' => 'انډوچاینه وخت (پنوم پن)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'قزاقستان وخت (کوستانې)',
         'Asia/Qyzylorda' => 'قزاقستان وخت (قيزي لورډا)',
         'Asia/Rangoon' => 'میانمار وخت (یانګون)',
+        'Asia/Yangon' => 'میانمار وخت (یانګون)',
         'Asia/Riyadh' => 'عربي وخت (رياض)',
         'Asia/Saigon' => 'انډوچاینه وخت (هو چي من ښار)',
-        'Asia/Sakhalin' => 'سخلين وخت (سخالين)',
+        'Asia/Ho_Chi_Minh' => 'انډوچاینه وخت (هو چي من ښار)',
+        'Asia/Sakhalin' => 'ميګډان وخت (سخالين)',
         'Asia/Samarkand' => 'ازبکستان وخت (سمرقند)',
         'Asia/Seoul' => 'کوريايي وخت (سیول)',
         'Asia/Shanghai' => 'چين وخت (شنگھائی)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'ایران وخت (تهران)',
         'Asia/Thimphu' => 'بهوټان وخت (تهيمفو)',
         'Asia/Tokyo' => 'جاپان وخت (ټوکیو)',
-        'Asia/Tomsk' => 'د روسیه په وخت (توماس)',
+        'Asia/Tomsk' => 'کريسنويارسک وخت (توماس)',
         'Asia/Ulaanbaatar' => 'اولان باټر وخت',
-        'Asia/Urumqi' => 'د چین په وخت (اورومقي)',
+        'Asia/Urumqi' => 'چین وخت (اورومقي)',
         'Asia/Ust-Nera' => 'ولادیوستاک وخت (اوستنيرا)',
         'Asia/Vientiane' => 'انډوچاینه وخت (وينټين)',
         'Asia/Vladivostok' => 'ولادیوستاک وخت',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'لوېديځ اروپايي وخت (کناري)',
         'Atlantic/Cape_Verde' => 'کیپ وردډ وخت (کيپ ورډ)',
         'Atlantic/Faeroe' => 'لوېديځ اروپايي وخت (فارو)',
+        'Atlantic/Faroe' => 'لوېديځ اروپايي وخت (فارو)',
         'Atlantic/Madeira' => 'لوېديځ اروپايي وخت (مديرا)',
         'Atlantic/Reykjavik' => 'ګرينويچ معياري وخت (ريکجاويک)',
         'Atlantic/South_Georgia' => 'د سویل جورجیا وخت (سويلي جورجيا)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'همغږى نړیوال وخت',
         'Europe/Amsterdam' => 'مرکزي اروپايي وخت (امستردام)',
         'Europe/Andorra' => 'مرکزي اروپايي وخت (اندورا)',
-        'Europe/Astrakhan' => 'ماسکو وخت (استرا خان)',
+        'Europe/Astrakhan' => 'روسیه وخت (استرا خان)',
         'Europe/Athens' => 'ختيځ اروپايي وخت (ايتنز)',
         'Europe/Belgrade' => 'مرکزي اروپايي وخت (بلغاد)',
         'Europe/Berlin' => 'مرکزي اروپايي وخت (برلن)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'ګرينويچ معياري وخت (ګرنسي)',
         'Europe/Helsinki' => 'ختيځ اروپايي وخت (هیلسنکی)',
         'Europe/Isle_of_Man' => 'ګرينويچ معياري وخت (د آئل آف مین)',
-        'Europe/Istanbul' => 'د ترکي په وخت (استنبول)',
+        'Europe/Istanbul' => 'ترکي وخت (استنبول)',
         'Europe/Jersey' => 'ګرينويچ معياري وخت (جرسی)',
         'Europe/Kaliningrad' => 'ختيځ اروپايي وخت (کيلنينګراډ)',
         'Europe/Kiev' => 'ختيځ اروپايي وخت (کیف)',
-        'Europe/Kirov' => 'د روسیه په وخت (کیروف)',
+        'Europe/Kyiv' => 'ختيځ اروپايي وخت (کیف)',
+        'Europe/Kirov' => 'ماسکو وخت (کیروف)',
         'Europe/Lisbon' => 'لوېديځ اروپايي وخت (لیسبون)',
         'Europe/Ljubljana' => 'مرکزي اروپايي وخت (لوبجانا)',
         'Europe/London' => 'ګرينويچ معياري وخت (لندن)',
@@ -353,22 +370,22 @@
         'Europe/Prague' => 'مرکزي اروپايي وخت (پراګ)',
         'Europe/Riga' => 'ختيځ اروپايي وخت (ريګا)',
         'Europe/Rome' => 'مرکزي اروپايي وخت (روم)',
-        'Europe/Samara' => 'د روسیه په وخت (سمارا)',
+        'Europe/Samara' => 'روسیه وخت (سمارا)',
         'Europe/San_Marino' => 'مرکزي اروپايي وخت (سان مارینو)',
         'Europe/Sarajevo' => 'مرکزي اروپايي وخت (سيراجيوا)',
-        'Europe/Saratov' => 'ماسکو وخت (سراتف)',
+        'Europe/Saratov' => 'روسیه وخت (سراتف)',
         'Europe/Simferopol' => 'ماسکو وخت (سیمفروپول)',
         'Europe/Skopje' => 'مرکزي اروپايي وخت (سکپوګ)',
         'Europe/Sofia' => 'ختيځ اروپايي وخت (صوفیا)',
         'Europe/Stockholm' => 'مرکزي اروپايي وخت (استولوم)',
         'Europe/Tallinn' => 'ختيځ اروپايي وخت (تالين)',
         'Europe/Tirane' => 'مرکزي اروپايي وخت (تيران)',
-        'Europe/Ulyanovsk' => 'ماسکو وخت (اليانوسک)',
+        'Europe/Ulyanovsk' => 'روسیه وخت (اليانوسک)',
         'Europe/Vaduz' => 'مرکزي اروپايي وخت (واډوز)',
         'Europe/Vatican' => 'مرکزي اروپايي وخت (ویټیکان)',
         'Europe/Vienna' => 'مرکزي اروپايي وخت (ویانا)',
         'Europe/Vilnius' => 'ختيځ اروپايي وخت (ويلنيوس)',
-        'Europe/Volgograd' => 'والګوګراد وخت (والګوګراډ)',
+        'Europe/Volgograd' => 'ماسکو وخت (والګوګراډ)',
         'Europe/Warsaw' => 'مرکزي اروپايي وخت (وارسا)',
         'Europe/Zagreb' => 'مرکزي اروپايي وخت (زګرب)',
         'Europe/Zurich' => 'مرکزي اروپايي وخت (زریچ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'چاتام وخت',
         'Pacific/Easter' => 'ايستر ټاپو وخت (ایسټر)',
         'Pacific/Efate' => 'د وناتو وخت (عفات)',
-        'Pacific/Enderbury' => 'د فینکس ټاپو وخت (انډربري)',
+        'Pacific/Enderbury' => 'د فینکس ټاپو وخت (کانټون)',
+        'Pacific/Kanton' => 'د فینکس ټاپو وخت (کانټون)',
         'Pacific/Fakaofo' => 'توکیلاو وخت (فوکافو)',
         'Pacific/Fiji' => 'فجی وخت (فجي)',
         'Pacific/Funafuti' => 'تووالو وخت (فونافوتي)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ګيمبير وخت',
         'Pacific/Guadalcanal' => 'سلیمان ټاپوګانو وخت (ګواډلکينال)',
         'Pacific/Guam' => 'چمارو معياري وخت (ګوام)',
-        'Pacific/Honolulu' => 'هوایی الیوتین وخت (هینولولو)',
+        'Pacific/Honolulu' => 'هوایی الیوتین معیاری وخت (هینولولو)',
         'Pacific/Kiritimati' => 'لاين ټاپوګانو وخت (کيريټماټي)',
         'Pacific/Kosrae' => 'کوسراي وخت',
         'Pacific/Kwajalein' => 'مارشل ټاپوګانو وخت (کواجلين)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'پالاو وخت (پلاو)',
         'Pacific/Pitcairn' => 'پیټ کارین وخت (پيټيکيرن)',
         'Pacific/Ponape' => 'پونيپ وخت (پونپي)',
+        'Pacific/Pohnpei' => 'پونيپ وخت (پونپي)',
         'Pacific/Port_Moresby' => 'پاپوا نیو ګنی وخت (پورټ مورسبی)',
         'Pacific/Rarotonga' => 'کوک ټاپوګانو وخت (راروټونګا)',
         'Pacific/Saipan' => 'چمارو معياري وخت (سيپان)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'جلبرټ ټاپوګانو وخت (تاراوا)',
         'Pacific/Tongatapu' => 'ټونګا وخت (ټونګاتاپو)',
         'Pacific/Truk' => 'چوک وخت',
+        'Pacific/Chuuk' => 'چوک وخت',
         'Pacific/Wake' => 'ويک تاپو وخت (ویک)',
         'Pacific/Wallis' => 'والس او فوتونا وخت',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ps_PK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ps_PK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ps_PK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ps_PK.php	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
         'America/Lower_Princes' => 'اتلانتیک وخت (د کمتر شهزاده درے میاشتنۍ)',
         'Atlantic/Canary' => 'لوېديزے اروپا وخت (کناري)',
         'Atlantic/Faeroe' => 'لوېديزے اروپا وخت (فارو)',
+        'Atlantic/Faroe' => 'لوېديزے اروپا وخت (فارو)',
         'Atlantic/Madeira' => 'لوېديزے اروپا وخت (مديرا)',
         'Europe/Lisbon' => 'لوېديزے اروپا وخت (لیسبون)',
         'Indian/Kerguelen' => 'د فرانسے سویل او انټارټيک وخت (کرګولين)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pt.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Horário da África Oriental (Adis Abeba)',
         'Africa/Algiers' => 'Horário da Europa Central (Argel)',
         'Africa/Asmera' => 'Horário da África Oriental (Asmara)',
+        'Africa/Asmara' => 'Horário da África Oriental (Asmara)',
         'Africa/Bamako' => 'Horário do Meridiano de Greenwich (Bamako)',
         'Africa/Bangui' => 'Horário da África Ocidental (Bangui)',
         'Africa/Banjul' => 'Horário do Meridiano de Greenwich (Banjul)',
@@ -60,7 +61,7 @@
         'America/Antigua' => 'Horário do Atlântico (Antígua)',
         'America/Araguaina' => 'Horário de Brasília (Araguaína)',
         'America/Argentina/La_Rioja' => 'Horário da Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Horário da Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Horário da Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Horário da Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Horário da Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Horário da Argentina (San Luis)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Horário da Colômbia (Bogotá)',
         'America/Boise' => 'Horário das Montanhas (Boise)',
         'America/Buenos_Aires' => 'Horário da Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Horário da Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Horário das Montanhas (Cambridge Bay)',
         'America/Campo_Grande' => 'Horário do Amazonas (Campo Grande)',
         'America/Cancun' => 'Horário do Leste (Cancún)',
         'America/Caracas' => 'Horário da Venezuela (Caracas)',
         'America/Catamarca' => 'Horário da Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Horário da Argentina (Catamarca)',
         'America/Cayenne' => 'Horário da Guiana Francesa (Caiena)',
         'America/Cayman' => 'Horário do Leste (Cayman)',
         'America/Chicago' => 'Horário Central (Chicago)',
         'America/Chihuahua' => 'Horário Central (Chihuahua)',
         'America/Ciudad_Juarez' => 'Horário das Montanhas (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Horário do Leste (Atikokan)',
+        'America/Atikokan' => 'Horário do Leste (Atikokan)',
         'America/Cordoba' => 'Horário da Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Horário da Argentina (Córdoba)',
         'America/Costa_Rica' => 'Horário Central (Costa Rica)',
+        'America/Coyhaique' => 'Horário do Chile (Coihaique)',
         'America/Creston' => 'Horário das Montanhas (Creston)',
         'America/Cuiaba' => 'Horário do Amazonas (Cuiabá)',
         'America/Curacao' => 'Horário do Atlântico (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Horário de Brasília (Fortaleza)',
         'America/Glace_Bay' => 'Horário do Atlântico (Glace Bay)',
         'America/Godthab' => 'Horário Groenlândia (Nuuk)',
+        'America/Nuuk' => 'Horário Groenlândia (Nuuk)',
         'America/Goose_Bay' => 'Horário do Atlântico (Goose Bay)',
         'America/Grand_Turk' => 'Horário do Leste (Grand Turk)',
         'America/Grenada' => 'Horário do Atlântico (Granada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Horário do Leste (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Horário do Leste (Winamac, Indiana)',
         'America/Indianapolis' => 'Horário do Leste (Indianápolis)',
+        'America/Indiana/Indianapolis' => 'Horário do Leste (Indianápolis)',
         'America/Inuvik' => 'Horário das Montanhas (Inuvik)',
         'America/Iqaluit' => 'Horário do Leste (Iqaluit)',
         'America/Jamaica' => 'Horário do Leste (Jamaica)',
         'America/Jujuy' => 'Horário da Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Horário da Argentina (Jujuy)',
         'America/Juneau' => 'Horário do Alasca (Juneau)',
         'America/Kentucky/Monticello' => 'Horário do Leste (Monticello, Kentucky)',
         'America/Kralendijk' => 'Horário do Atlântico (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Horário do Peru (Lima)',
         'America/Los_Angeles' => 'Horário do Pacífico (Los Angeles)',
         'America/Louisville' => 'Horário do Leste (Louisville)',
+        'America/Kentucky/Louisville' => 'Horário do Leste (Louisville)',
         'America/Lower_Princes' => 'Horário do Atlântico (Lower Prince’s Quarter)',
         'America/Maceio' => 'Horário de Brasília (Maceió)',
         'America/Managua' => 'Horário Central (Manágua)',
@@ -143,13 +153,14 @@
         'America/Marigot' => 'Horário do Atlântico (Marigot)',
         'America/Martinique' => 'Horário do Atlântico (Martinica)',
         'America/Matamoros' => 'Horário Central (Matamoros)',
-        'America/Mazatlan' => 'Horário do Pacífico Mexicano (Mazatlan)',
+        'America/Mazatlan' => 'Horário do Pacífico Mexicano (Mazatlán)',
         'America/Mendoza' => 'Horário da Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Horário da Argentina (Mendoza)',
         'America/Menominee' => 'Horário Central (Menominee)',
         'America/Merida' => 'Horário Central (Mérida)',
         'America/Metlakatla' => 'Horário do Alasca (Metlakatla)',
         'America/Mexico_City' => 'Horário Central (Cidade do México)',
-        'America/Miquelon' => 'Horário de São Pedro e Miquelão (Miquelon)',
+        'America/Miquelon' => 'Horário de São Pedro e Miquelão (Saint-Pierre)',
         'America/Moncton' => 'Horário do Atlântico (Moncton)',
         'America/Monterrey' => 'Horário Central (Monterrey)',
         'America/Montevideo' => 'Horário do Uruguai (Montevidéu)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Horário da Nova Zelândia (McMurdo)',
         'Antarctica/Palmer' => 'Horário do Chile (Palmer)',
         'Antarctica/Rothera' => 'Horário de Rothera',
-        'Antarctica/Syowa' => 'Horário de Syowa',
+        'Antarctica/Syowa' => 'Horário de Syowa (Showa)',
         'Antarctica/Troll' => 'Horário do Meridiano de Greenwich (Troll)',
         'Antarctica/Vostok' => 'Horário de Vostok',
         'Arctic/Longyearbyen' => 'Horário da Europa Central (Longyearbyen)',
         'Asia/Aden' => 'Horário da Arábia (Áden)',
         'Asia/Almaty' => 'Horário do Cazaquistão (Almaty)',
         'Asia/Amman' => 'Horário da Europa Oriental (Amã)',
-        'Asia/Anadyr' => 'Horário de Anadyr',
+        'Asia/Anadyr' => 'Horário de Petropavlovsk-Kamchatski (Anadyr)',
         'Asia/Aqtau' => 'Horário do Cazaquistão (Aktau)',
         'Asia/Aqtobe' => 'Horário do Cazaquistão (Aktobe)',
         'Asia/Ashgabat' => 'Horário do Turcomenistão (Asgabate)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Horário da Arábia (Bahrein)',
         'Asia/Baku' => 'Horário do Arzeibaijão (Baku)',
         'Asia/Bangkok' => 'Horário da Indochina (Bangkok)',
-        'Asia/Barnaul' => 'Horário Rússia (Barnaul)',
+        'Asia/Barnaul' => 'Horário de Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Horário da Europa Oriental (Beirute)',
         'Asia/Bishkek' => 'Horário do Quirguistão (Bishkek)',
         'Asia/Brunei' => 'Horário de Brunei Darussalam',
         'Asia/Calcutta' => 'Horário Padrão da Índia (Calcutá)',
+        'Asia/Kolkata' => 'Horário Padrão da Índia (Calcutá)',
         'Asia/Chita' => 'Horário de Yakutsk (Chita)',
         'Asia/Colombo' => 'Horário Padrão da Índia (Colombo)',
         'Asia/Damascus' => 'Horário da Europa Oriental (Damasco)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Horário da Europa Oriental (Gaza)',
         'Asia/Hebron' => 'Horário da Europa Oriental (Hebron)',
         'Asia/Hong_Kong' => 'Horário de Hong Kong',
-        'Asia/Hovd' => 'Horário de Hovd',
+        'Asia/Hovd' => 'Horário de Hovd (Khovd)',
         'Asia/Irkutsk' => 'Horário de Irkutsk',
         'Asia/Jakarta' => 'Horário da Indonésia Ocidental (Jacarta)',
         'Asia/Jayapura' => 'Horário da Indonésia Oriental (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Horário de Petropavlovsk-Kamchatski (Kamchatka)',
         'Asia/Karachi' => 'Horário do Paquistão (Karachi)',
         'Asia/Katmandu' => 'Horário do Nepal (Katmandu)',
+        'Asia/Kathmandu' => 'Horário do Nepal (Katmandu)',
         'Asia/Khandyga' => 'Horário de Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Horário de Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Horário da Malásia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Horário do Golfo (Mascate)',
         'Asia/Nicosia' => 'Horário da Europa Oriental (Nicósia)',
         'Asia/Novokuznetsk' => 'Horário de Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Horário de Novosibirsk',
+        'Asia/Novosibirsk' => 'Horário de Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Horário de Omsk',
         'Asia/Oral' => 'Horário do Cazaquistão (Oral)',
         'Asia/Phnom_Penh' => 'Horário da Indochina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Horário do Cazaquistão (Qostanay)',
         'Asia/Qyzylorda' => 'Horário do Cazaquistão (Qyzylorda)',
         'Asia/Rangoon' => 'Horário de Mianmar (Rangum)',
+        'Asia/Yangon' => 'Horário de Mianmar (Rangum)',
         'Asia/Riyadh' => 'Horário da Arábia (Riade)',
         'Asia/Saigon' => 'Horário da Indochina (Cidade de Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Horário de Sacalina',
+        'Asia/Ho_Chi_Minh' => 'Horário da Indochina (Cidade de Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Horário de Magadan (Sacalina)',
         'Asia/Samarkand' => 'Horário do Uzbequistão (Samarcanda)',
         'Asia/Seoul' => 'Horário da Coreia (Seul)',
         'Asia/Shanghai' => 'Horário da China (Xangai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Horário do Irã (Teerã)',
         'Asia/Thimphu' => 'Horário do Butão (Thimphu)',
         'Asia/Tokyo' => 'Horário do Japão (Tóquio)',
-        'Asia/Tomsk' => 'Horário Rússia (Tomsk)',
+        'Asia/Tomsk' => 'Horário de Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Horário de Ulan Bator',
-        'Asia/Urumqi' => 'Horário China (Urumqi)',
+        'Asia/Urumqi' => 'Horário China (Ürümqi)',
         'Asia/Ust-Nera' => 'Horário de Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Horário da Indochina (Vientiane)',
         'Asia/Vladivostok' => 'Horário de Vladivostok',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Horário da Europa Ocidental (Canárias)',
         'Atlantic/Cape_Verde' => 'Horário de Cabo Verde',
         'Atlantic/Faeroe' => 'Horário da Europa Ocidental (Ilhas Faroé)',
+        'Atlantic/Faroe' => 'Horário da Europa Ocidental (Ilhas Faroé)',
         'Atlantic/Madeira' => 'Horário da Europa Ocidental (Madeira)',
         'Atlantic/Reykjavik' => 'Horário do Meridiano de Greenwich (Reykjavík)',
         'Atlantic/South_Georgia' => 'Horário da Geórgia do Sul',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Horário Universal Coordenado',
         'Europe/Amsterdam' => 'Horário da Europa Central (Amsterdã)',
         'Europe/Andorra' => 'Horário da Europa Central (Andorra)',
-        'Europe/Astrakhan' => 'Horário de Moscou (Astracã)',
+        'Europe/Astrakhan' => 'Horário de Samara (Astracã)',
         'Europe/Athens' => 'Horário da Europa Oriental (Atenas)',
         'Europe/Belgrade' => 'Horário da Europa Central (Belgrado)',
         'Europe/Berlin' => 'Horário da Europa Central (Berlim)',
@@ -325,18 +341,19 @@
         'Europe/Bucharest' => 'Horário da Europa Oriental (Bucareste)',
         'Europe/Budapest' => 'Horário da Europa Central (Budapeste)',
         'Europe/Busingen' => 'Horário da Europa Central (Büsingen)',
-        'Europe/Chisinau' => 'Horário da Europa Oriental (Chisinau)',
+        'Europe/Chisinau' => 'Horário da Europa Oriental (Chișinău)',
         'Europe/Copenhagen' => 'Horário da Europa Central (Copenhague)',
         'Europe/Dublin' => 'Horário do Meridiano de Greenwich (Dublin)',
         'Europe/Gibraltar' => 'Horário da Europa Central (Gibraltar)',
         'Europe/Guernsey' => 'Horário do Meridiano de Greenwich (Guernsey)',
         'Europe/Helsinki' => 'Horário da Europa Oriental (Helsinque)',
         'Europe/Isle_of_Man' => 'Horário do Meridiano de Greenwich (Ilha de Man)',
-        'Europe/Istanbul' => 'Horário Turquia (Istambul)',
+        'Europe/Istanbul' => 'Horário da Turquia (Istambul)',
         'Europe/Jersey' => 'Horário do Meridiano de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Horário da Europa Oriental (Kaliningrado)',
         'Europe/Kiev' => 'Horário da Europa Oriental (Kiev)',
-        'Europe/Kirov' => 'Horário Rússia (Kirov)',
+        'Europe/Kyiv' => 'Horário da Europa Oriental (Kiev)',
+        'Europe/Kirov' => 'Horário de Moscou (Kirov)',
         'Europe/Lisbon' => 'Horário da Europa Ocidental (Lisboa)',
         'Europe/Ljubljana' => 'Horário da Europa Central (Liubliana)',
         'Europe/London' => 'Horário do Meridiano de Greenwich (Londres)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Horário de Samara',
         'Europe/San_Marino' => 'Horário da Europa Central (San Marino)',
         'Europe/Sarajevo' => 'Horário da Europa Central (Sarajevo)',
-        'Europe/Saratov' => 'Horário de Moscou (Saratov)',
+        'Europe/Saratov' => 'Horário de Samara (Saratov)',
         'Europe/Simferopol' => 'Horário de Moscou (Simferopol)',
         'Europe/Skopje' => 'Horário da Europa Central (Skopje)',
         'Europe/Sofia' => 'Horário da Europa Oriental (Sófia)',
         'Europe/Stockholm' => 'Horário da Europa Central (Estocolmo)',
         'Europe/Tallinn' => 'Horário da Europa Oriental (Tallinn)',
         'Europe/Tirane' => 'Horário da Europa Central (Tirana)',
-        'Europe/Ulyanovsk' => 'Horário de Moscou (Ulianovsk)',
+        'Europe/Ulyanovsk' => 'Horário de Samara (Ulianovsk)',
         'Europe/Vaduz' => 'Horário da Europa Central (Vaduz)',
         'Europe/Vatican' => 'Horário da Europa Central (Vaticano)',
         'Europe/Vienna' => 'Horário da Europa Central (Viena)',
         'Europe/Vilnius' => 'Horário da Europa Oriental (Vilnius)',
-        'Europe/Volgograd' => 'Horário de Volgogrado',
+        'Europe/Volgograd' => 'Horário de Moscou (Volgogrado)',
         'Europe/Warsaw' => 'Horário da Europa Central (Varsóvia)',
         'Europe/Zagreb' => 'Horário da Europa Central (Zagreb)',
         'Europe/Zurich' => 'Horário da Europa Central (Zurique)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Horário de Chatham (Chatnam)',
         'Pacific/Easter' => 'Horário da Ilha de Páscoa',
         'Pacific/Efate' => 'Horário de Vanuatu (Éfaté)',
-        'Pacific/Enderbury' => 'Horário das Ilhas Fênix (Enderbury)',
+        'Pacific/Enderbury' => 'Horário das Ilhas Fênix (Ilha de Canton)',
+        'Pacific/Kanton' => 'Horário das Ilhas Fênix (Ilha de Canton)',
         'Pacific/Fakaofo' => 'Horário de Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Horário de Fiji',
         'Pacific/Funafuti' => 'Horário de Tuvalu (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Horário de Gambier',
         'Pacific/Guadalcanal' => 'Horário das Ilhas Salomão (Guadalcanal)',
         'Pacific/Guam' => 'Horário de Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Horário do Havaí e Ilhas Aleutas (Honolulu)',
+        'Pacific/Honolulu' => 'Horário Padrão do Havaí e Ilhas Aleutas (Honolulu)',
         'Pacific/Kiritimati' => 'Horário das Ilhas da Linha (Kiritimati)',
         'Pacific/Kosrae' => 'Horário de Kosrae',
         'Pacific/Kwajalein' => 'Horário das Ilhas Marshall (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Horário de Palau',
         'Pacific/Pitcairn' => 'Horário de Pitcairn',
         'Pacific/Ponape' => 'Horário de Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Horário de Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Horário de Papua-Nova Guiné (Port Moresby)',
         'Pacific/Rarotonga' => 'Horário das Ilhas Cook (Rarotonga)',
         'Pacific/Saipan' => 'Horário de Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Horário das Ilhas Gilberto (Taraua)',
         'Pacific/Tongatapu' => 'Horário de Tonga (Tongatapu)',
         'Pacific/Truk' => 'Horário de Chuuk',
+        'Pacific/Chuuk' => 'Horário de Chuuk',
         'Pacific/Wake' => 'Horário das Ilhas Wake',
-        'Pacific/Wallis' => 'Horário de Wallis e Futuna',
+        'Pacific/Wallis' => 'Horário de Wallis e Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pt_PT.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pt_PT.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pt_PT.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/pt_PT.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Hora da África Oriental (Adis-Abeba)',
         'Africa/Algiers' => 'Hora da Europa Central (Argel)',
         'Africa/Asmera' => 'Hora da África Oriental (Asmara)',
+        'Africa/Asmara' => 'Hora da África Oriental (Asmara)',
         'Africa/Bamako' => 'Hora de Greenwich (Bamaco)',
         'Africa/Bangui' => 'Hora da África Ocidental (Bangui)',
         'Africa/Banjul' => 'Hora de Greenwich (Banjul)',
@@ -58,9 +59,9 @@
         'America/Anchorage' => 'Hora do Alasca (Anchorage)',
         'America/Anguilla' => 'Hora do Atlântico (Anguila)',
         'America/Antigua' => 'Hora do Atlântico (Antígua)',
-        'America/Araguaina' => 'Hora de Brasília (Araguaina)',
+        'America/Araguaina' => 'Hora de Brasília (Araguaína)',
         'America/Argentina/La_Rioja' => 'Hora da Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Hora da Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Hora da Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Hora da Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Hora da Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Hora da Argentina (San Luis)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Hora da Colômbia (Bogotá)',
         'America/Boise' => 'Hora de montanha norte-americana (Boise)',
         'America/Buenos_Aires' => 'Hora da Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Hora da Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Hora de montanha norte-americana (Cambridge Bay)',
         'America/Campo_Grande' => 'Hora do Amazonas (Campo Grande)',
         'America/Cancun' => 'Hora oriental norte-americana (Cancun)',
         'America/Caracas' => 'Hora da Venezuela (Caracas)',
         'America/Catamarca' => 'Hora da Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Hora da Argentina (Catamarca)',
         'America/Cayenne' => 'Hora da Guiana Francesa (Caiena)',
         'America/Cayman' => 'Hora oriental norte-americana (Caimão)',
         'America/Chicago' => 'Hora central norte-americana (Chicago)',
         'America/Chihuahua' => 'Hora central norte-americana (Chihuahua)',
         'America/Ciudad_Juarez' => 'Hora de montanha norte-americana (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Hora oriental norte-americana (Atikokan)',
+        'America/Atikokan' => 'Hora oriental norte-americana (Atikokan)',
         'America/Cordoba' => 'Hora da Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Hora da Argentina (Córdoba)',
         'America/Costa_Rica' => 'Hora central norte-americana (Costa Rica)',
+        'America/Coyhaique' => 'Hora do Chile (Coihaique)',
         'America/Creston' => 'Hora de montanha norte-americana (Creston)',
         'America/Cuiaba' => 'Hora do Amazonas (Cuiabá)',
         'America/Curacao' => 'Hora do Atlântico (Curaçau)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Hora de Brasília (Fortaleza)',
         'America/Glace_Bay' => 'Hora do Atlântico (Glace Bay)',
         'America/Godthab' => 'Hora de Gronelândia (Nuuk)',
+        'America/Nuuk' => 'Hora de Gronelândia (Nuuk)',
         'America/Goose_Bay' => 'Hora do Atlântico (Goose Bay)',
         'America/Grand_Turk' => 'Hora oriental norte-americana (Grand Turk)',
         'America/Grenada' => 'Hora do Atlântico (Granada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Hora oriental norte-americana (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Hora oriental norte-americana (Winamac, Indiana)',
         'America/Indianapolis' => 'Hora oriental norte-americana (Indianápolis)',
+        'America/Indiana/Indianapolis' => 'Hora oriental norte-americana (Indianápolis)',
         'America/Inuvik' => 'Hora de montanha norte-americana (Inuvik)',
         'America/Iqaluit' => 'Hora oriental norte-americana (Iqaluit)',
         'America/Jamaica' => 'Hora oriental norte-americana (Jamaica)',
         'America/Jujuy' => 'Hora da Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Hora da Argentina (Jujuy)',
         'America/Juneau' => 'Hora do Alasca (Juneau)',
         'America/Kentucky/Monticello' => 'Hora oriental norte-americana (Monticello, Kentucky)',
         'America/Kralendijk' => 'Hora do Atlântico (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Hora do Peru (Lima)',
         'America/Los_Angeles' => 'Hora do Pacífico norte-americana (Los Angeles)',
         'America/Louisville' => 'Hora oriental norte-americana (Louisville)',
+        'America/Kentucky/Louisville' => 'Hora oriental norte-americana (Louisville)',
         'America/Lower_Princes' => 'Hora do Atlântico (Lower Prince’s Quarter)',
         'America/Maceio' => 'Hora de Brasília (Maceió)',
         'America/Managua' => 'Hora central norte-americana (Manágua)',
@@ -143,13 +153,14 @@
         'America/Marigot' => 'Hora do Atlântico (Marigot)',
         'America/Martinique' => 'Hora do Atlântico (Martinica)',
         'America/Matamoros' => 'Hora central norte-americana (Matamoros)',
-        'America/Mazatlan' => 'Hora do Pacífico Mexicano (Mazatlan)',
+        'America/Mazatlan' => 'Hora do Pacífico Mexicano (Mazatlán)',
         'America/Mendoza' => 'Hora da Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Hora da Argentina (Mendoza)',
         'America/Menominee' => 'Hora central norte-americana (Menominee)',
         'America/Merida' => 'Hora central norte-americana (Mérida)',
         'America/Metlakatla' => 'Hora do Alasca (Metlakatla)',
         'America/Mexico_City' => 'Hora central norte-americana (Cidade do México)',
-        'America/Miquelon' => 'Hora de São Pedro e Miquelão (Miquelon)',
+        'America/Miquelon' => 'Hora de São Pedro e Miquelão (Saint-Pierre)',
         'America/Moncton' => 'Hora do Atlântico (Moncton)',
         'America/Monterrey' => 'Hora central norte-americana (Monterrey)',
         'America/Montevideo' => 'Hora do Uruguai (Montevideu)',
@@ -197,22 +208,22 @@
         'America/Whitehorse' => 'Hora do Yukon (Whitehorse)',
         'America/Winnipeg' => 'Hora central norte-americana (Winnipeg)',
         'America/Yakutat' => 'Hora do Alasca (Yakutat)',
-        'Antarctica/Casey' => 'Hora da Austrália Ocidental (Casey)',
+        'Antarctica/Casey' => 'Hora da Austrália Ocidental (Estação Casey)',
         'Antarctica/Davis' => 'Hora de Davis',
-        'Antarctica/DumontDUrville' => 'Hora de Dumont-d’Urville',
-        'Antarctica/Macquarie' => 'Hora da Austrália Oriental (Macquarie)',
-        'Antarctica/Mawson' => 'Hora de Mawson',
-        'Antarctica/McMurdo' => 'Hora da Nova Zelândia (McMurdo)',
-        'Antarctica/Palmer' => 'Hora do Chile (Palmer)',
-        'Antarctica/Rothera' => 'Hora de Rothera',
-        'Antarctica/Syowa' => 'Hora de Syowa',
-        'Antarctica/Troll' => 'Hora de Greenwich (Troll)',
-        'Antarctica/Vostok' => 'Hora de Vostok',
+        'Antarctica/DumontDUrville' => 'Hora de Dumont-d’Urville (Estação Dumont-d’Urville)',
+        'Antarctica/Macquarie' => 'Hora da Austrália Oriental (Ilha Macquarie)',
+        'Antarctica/Mawson' => 'Hora de Mawson (Estação Mawson)',
+        'Antarctica/McMurdo' => 'Hora da Nova Zelândia (Estação McMurdo)',
+        'Antarctica/Palmer' => 'Hora do Chile (Terra de Palmer)',
+        'Antarctica/Rothera' => 'Hora de Rothera (Estação Rothera)',
+        'Antarctica/Syowa' => 'Hora de Syowa (Estação Showa)',
+        'Antarctica/Troll' => 'Hora de Greenwich (Estação Troll)',
+        'Antarctica/Vostok' => 'Hora de Vostok (Estação Vostok)',
         'Arctic/Longyearbyen' => 'Hora da Europa Central (Longyearbyen)',
         'Asia/Aden' => 'Hora da Arábia (Adem)',
         'Asia/Almaty' => 'Hora do Cazaquistão (Almaty)',
         'Asia/Amman' => 'Hora da Europa Oriental (Amã)',
-        'Asia/Anadyr' => 'Hora de Anadyr',
+        'Asia/Anadyr' => 'Hora de Petropavlovsk-Kamchatski (Anadyr)',
         'Asia/Aqtau' => 'Hora do Cazaquistão (Aqtau)',
         'Asia/Aqtobe' => 'Hora do Cazaquistão (Aqtobe)',
         'Asia/Ashgabat' => 'Hora do Turquemenistão (Asgabate)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Hora da Arábia (Barém)',
         'Asia/Baku' => 'Hora do Azerbaijão (Baku)',
         'Asia/Bangkok' => 'Hora da Indochina (Banguecoque)',
-        'Asia/Barnaul' => 'Hora de Rússia (Barnaul)',
+        'Asia/Barnaul' => 'Hora de Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Hora da Europa Oriental (Beirute)',
         'Asia/Bishkek' => 'Hora do Quirguistão (Bishkek)',
-        'Asia/Brunei' => 'Hora do Brunei Darussalam',
+        'Asia/Brunei' => 'Hora do Brunei',
         'Asia/Calcutta' => 'Hora padrão da Índia (Calcutá)',
+        'Asia/Kolkata' => 'Hora padrão da Índia (Calcutá)',
         'Asia/Chita' => 'Hora de Yakutsk (Chita)',
         'Asia/Colombo' => 'Hora padrão da Índia (Colombo)',
         'Asia/Damascus' => 'Hora da Europa Oriental (Damasco)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Hora da Europa Oriental (Gaza)',
         'Asia/Hebron' => 'Hora da Europa Oriental (Hebron)',
         'Asia/Hong_Kong' => 'Hora de Hong Kong',
-        'Asia/Hovd' => 'Hora de Hovd',
+        'Asia/Hovd' => 'Hora de Khovd',
         'Asia/Irkutsk' => 'Hora de Irkutsk',
         'Asia/Jakarta' => 'Hora da Indonésia Ocidental (Jacarta)',
         'Asia/Jayapura' => 'Hora da Indonésia Oriental (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Hora de Petropavlovsk-Kamchatski (Kamchatka)',
         'Asia/Karachi' => 'Hora do Paquistão (Carachi)',
         'Asia/Katmandu' => 'Hora do Nepal (Catmandu)',
+        'Asia/Kathmandu' => 'Hora do Nepal (Catmandu)',
         'Asia/Khandyga' => 'Hora de Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Hora de Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Hora da Malásia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Hora padrão do Golfo (Mascate)',
         'Asia/Nicosia' => 'Hora da Europa Oriental (Nicósia)',
         'Asia/Novokuznetsk' => 'Hora de Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Hora de Novosibirsk',
+        'Asia/Novosibirsk' => 'Hora de Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Hora de Omsk',
         'Asia/Oral' => 'Hora do Cazaquistão (Oral)',
         'Asia/Phnom_Penh' => 'Hora da Indochina (Phnom Penh)',
@@ -268,23 +281,25 @@
         'Asia/Qostanay' => 'Hora do Cazaquistão (Kostanay)',
         'Asia/Qyzylorda' => 'Hora do Cazaquistão (Qyzylorda)',
         'Asia/Rangoon' => 'Hora de Mianmar (Yangon)',
+        'Asia/Yangon' => 'Hora de Mianmar (Yangon)',
         'Asia/Riyadh' => 'Hora da Arábia (Riade)',
         'Asia/Saigon' => 'Hora da Indochina (Cidade de Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Hora de Sacalina',
+        'Asia/Ho_Chi_Minh' => 'Hora da Indochina (Cidade de Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Hora de Magadan (Sacalina)',
         'Asia/Samarkand' => 'Hora do Uzbequistão (Samarcanda)',
         'Asia/Seoul' => 'Hora da Coreia (Seul)',
         'Asia/Shanghai' => 'Hora da China (Xangai)',
         'Asia/Singapore' => 'Hora padrão de Singapura',
         'Asia/Srednekolymsk' => 'Hora de Magadan (Srednekolymsk)',
-        'Asia/Taipei' => 'Hora de Taipé',
+        'Asia/Taipei' => 'Hora de Taiwan (Taipé)',
         'Asia/Tashkent' => 'Hora do Uzbequistão (Tashkent)',
         'Asia/Tbilisi' => 'Hora da Geórgia (Tbilisi)',
         'Asia/Tehran' => 'Hora do Irão (Teerão)',
         'Asia/Thimphu' => 'Hora do Butão (Timphu)',
         'Asia/Tokyo' => 'Hora do Japão (Tóquio)',
-        'Asia/Tomsk' => 'Hora de Rússia (Tomsk)',
+        'Asia/Tomsk' => 'Hora de Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Hora de Ulan Bator',
-        'Asia/Urumqi' => 'Hora de China (Urumqi)',
+        'Asia/Urumqi' => 'Hora de China (Ürümqi)',
         'Asia/Ust-Nera' => 'Hora de Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Hora da Indochina (Vientiane)',
         'Asia/Vladivostok' => 'Hora de Vladivostok',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Hora da Europa Ocidental (Canárias)',
         'Atlantic/Cape_Verde' => 'Hora de Cabo Verde',
         'Atlantic/Faeroe' => 'Hora da Europa Ocidental (Faroé)',
+        'Atlantic/Faroe' => 'Hora da Europa Ocidental (Faroé)',
         'Atlantic/Madeira' => 'Hora da Europa Ocidental (Madeira)',
         'Atlantic/Reykjavik' => 'Hora de Greenwich (Reiquiavique)',
         'Atlantic/South_Georgia' => 'Hora da Geórgia do Sul',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Hora Coordenada Universal',
         'Europe/Amsterdam' => 'Hora da Europa Central (Amesterdão)',
         'Europe/Andorra' => 'Hora da Europa Central (Andorra)',
-        'Europe/Astrakhan' => 'Hora de Moscovo (Astracã)',
+        'Europe/Astrakhan' => 'Hora de Samara (Astracã)',
         'Europe/Athens' => 'Hora da Europa Oriental (Atenas)',
         'Europe/Belgrade' => 'Hora da Europa Central (Belgrado)',
         'Europe/Berlin' => 'Hora da Europa Central (Berlim)',
@@ -324,19 +340,20 @@
         'Europe/Brussels' => 'Hora da Europa Central (Bruxelas)',
         'Europe/Bucharest' => 'Hora da Europa Oriental (Bucareste)',
         'Europe/Budapest' => 'Hora da Europa Central (Budapeste)',
-        'Europe/Busingen' => 'Hora da Europa Central (Busingen)',
-        'Europe/Chisinau' => 'Hora da Europa Oriental (Chisinau)',
+        'Europe/Busingen' => 'Hora da Europa Central (Büsingen)',
+        'Europe/Chisinau' => 'Hora da Europa Oriental (Chișinău)',
         'Europe/Copenhagen' => 'Hora da Europa Central (Copenhaga)',
         'Europe/Dublin' => 'Hora de Greenwich (Dublin)',
         'Europe/Gibraltar' => 'Hora da Europa Central (Gibraltar)',
         'Europe/Guernsey' => 'Hora de Greenwich (Guernsey)',
         'Europe/Helsinki' => 'Hora da Europa Oriental (Helsínquia)',
         'Europe/Isle_of_Man' => 'Hora de Greenwich (Ilha de Man)',
-        'Europe/Istanbul' => 'Hora de Turquia (Istambul)',
+        'Europe/Istanbul' => 'Hora da Turquia (Istambul)',
         'Europe/Jersey' => 'Hora de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Hora da Europa Oriental (Caliningrado)',
         'Europe/Kiev' => 'Hora da Europa Oriental (Kiev)',
-        'Europe/Kirov' => 'Hora de Rússia (Kirov)',
+        'Europe/Kyiv' => 'Hora da Europa Oriental (Kiev)',
+        'Europe/Kirov' => 'Hora de Moscovo (Kirov)',
         'Europe/Lisbon' => 'Hora da Europa Ocidental (Lisboa)',
         'Europe/Ljubljana' => 'Hora da Europa Central (Liubliana)',
         'Europe/London' => 'Hora de Greenwich (Londres)',
@@ -356,62 +373,64 @@
         'Europe/Samara' => 'Hora de Samara',
         'Europe/San_Marino' => 'Hora da Europa Central (São Marinho)',
         'Europe/Sarajevo' => 'Hora da Europa Central (Sarajevo)',
-        'Europe/Saratov' => 'Hora de Moscovo (Saratov)',
+        'Europe/Saratov' => 'Hora de Samara (Saratov)',
         'Europe/Simferopol' => 'Hora de Moscovo (Simferopol)',
         'Europe/Skopje' => 'Hora da Europa Central (Skopje)',
         'Europe/Sofia' => 'Hora da Europa Oriental (Sófia)',
         'Europe/Stockholm' => 'Hora da Europa Central (Estocolmo)',
         'Europe/Tallinn' => 'Hora da Europa Oriental (Talim)',
         'Europe/Tirane' => 'Hora da Europa Central (Tirana)',
-        'Europe/Ulyanovsk' => 'Hora de Moscovo (Ulianovsk)',
+        'Europe/Ulyanovsk' => 'Hora de Samara (Ulianovsk)',
         'Europe/Vaduz' => 'Hora da Europa Central (Vaduz)',
         'Europe/Vatican' => 'Hora da Europa Central (Vaticano)',
         'Europe/Vienna' => 'Hora da Europa Central (Viena)',
         'Europe/Vilnius' => 'Hora da Europa Oriental (Vilnius)',
-        'Europe/Volgograd' => 'Hora de Volgogrado',
+        'Europe/Volgograd' => 'Hora de Moscovo (Volgogrado)',
         'Europe/Warsaw' => 'Hora da Europa Central (Varsóvia)',
         'Europe/Zagreb' => 'Hora da Europa Central (Zagreb)',
         'Europe/Zurich' => 'Hora da Europa Central (Zurique)',
         'Indian/Antananarivo' => 'Hora da África Oriental (Antananarivo)',
-        'Indian/Chagos' => 'Hora do Oceano Índico (Chagos)',
+        'Indian/Chagos' => 'Hora do Oceano Índico (Arquipélago de Chagos)',
         'Indian/Christmas' => 'Hora da Ilha do Natal',
         'Indian/Cocos' => 'Hora das Ilhas Cocos',
         'Indian/Comoro' => 'Hora da África Oriental (Comores)',
-        'Indian/Kerguelen' => 'Hora das Terras Austrais e Antárcticas Francesas (Kerguelen)',
-        'Indian/Mahe' => 'Hora das Seicheles (Mahe)',
+        'Indian/Kerguelen' => 'Hora das Terras Austrais e Antárcticas Francesas (Ilhas Kerguelen)',
+        'Indian/Mahe' => 'Hora das Seicheles (Mahé)',
         'Indian/Maldives' => 'Hora das Maldivas',
         'Indian/Mauritius' => 'Hora da Maurícia',
         'Indian/Mayotte' => 'Hora da África Oriental (Mayotte)',
         'Indian/Reunion' => 'Hora de Reunião',
-        'Pacific/Apia' => 'Hora de Apia',
+        'Pacific/Apia' => 'Hora de Samoa (Apia)',
         'Pacific/Auckland' => 'Hora da Nova Zelândia (Auckland)',
         'Pacific/Bougainville' => 'Hora de Papua Nova Guiné (Bougainville)',
-        'Pacific/Chatham' => 'Hora de Chatham',
+        'Pacific/Chatham' => 'Hora de Chatham (Ilhas Chatham)',
         'Pacific/Easter' => 'Hora da Ilha da Páscoa',
         'Pacific/Efate' => 'Hora do Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Hora das Ilhas Fénix (Enderbury)',
+        'Pacific/Enderbury' => 'Hora das Ilhas Fénix (Ilha Canton)',
+        'Pacific/Kanton' => 'Hora das Ilhas Fénix (Ilha Canton)',
         'Pacific/Fakaofo' => 'Hora de Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Hora de Fiji',
         'Pacific/Funafuti' => 'Hora de Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Hora das Galápagos',
+        'Pacific/Galapagos' => 'Hora das Galápagos (Ilhas Galápagos)',
         'Pacific/Gambier' => 'Hora de Gambier',
         'Pacific/Guadalcanal' => 'Hora das Ilhas Salomão (Guadalcanal)',
         'Pacific/Guam' => 'Hora padrão de Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Hora do Havai e Aleutas (Honolulu)',
+        'Pacific/Honolulu' => 'Hora padrão do Havai e Aleutas (Honolulu)',
         'Pacific/Kiritimati' => 'Hora das Ilhas Line (Kiritimati)',
         'Pacific/Kosrae' => 'Hora de Kosrae',
-        'Pacific/Kwajalein' => 'Hora das Ilhas Marshall (Kwajalein)',
+        'Pacific/Kwajalein' => 'Hora das Ilhas Marshall (Atol de Kwajalein)',
         'Pacific/Majuro' => 'Hora das Ilhas Marshall (Majuro)',
         'Pacific/Marquesas' => 'Hora das Ilhas Marquesas',
-        'Pacific/Midway' => 'Hora de Samoa (Midway)',
+        'Pacific/Midway' => 'Hora de Samoa Americana (Atol de Midway)',
         'Pacific/Nauru' => 'Hora de Nauru',
         'Pacific/Niue' => 'Hora de Niuê (Niue)',
         'Pacific/Norfolk' => 'Hora da Ilha Norfolk',
         'Pacific/Noumea' => 'Hora da Nova Caledónia (Nouméa)',
-        'Pacific/Pago_Pago' => 'Hora de Samoa (Pago Pago)',
+        'Pacific/Pago_Pago' => 'Hora de Samoa Americana (Pago Pago)',
         'Pacific/Palau' => 'Hora de Palau',
         'Pacific/Pitcairn' => 'Hora de Pitcairn (Ilhas Pitcairn)',
-        'Pacific/Ponape' => 'Hora de Ponape (Pohnpei)',
+        'Pacific/Ponape' => 'Hora de Pohnpei',
+        'Pacific/Pohnpei' => 'Hora de Pohnpei',
         'Pacific/Port_Moresby' => 'Hora de Papua Nova Guiné (Port Moresby)',
         'Pacific/Rarotonga' => 'Hora das Ilhas Cook (Rarotonga)',
         'Pacific/Saipan' => 'Hora padrão de Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Hora das Ilhas Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Hora de Tonga (Tongatapu)',
         'Pacific/Truk' => 'Hora de Chuuk',
+        'Pacific/Chuuk' => 'Hora de Chuuk',
         'Pacific/Wake' => 'Hora da Ilha Wake',
-        'Pacific/Wallis' => 'Hora de Wallis e Futuna',
+        'Pacific/Wallis' => 'Hora de Wallis e Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/qu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/qu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/qu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/qu.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Hora de Africa Oriental (Adís Abeba)',
         'Africa/Algiers' => 'Hora de Europa Central (Argel)',
         'Africa/Asmera' => 'Hora de Africa Oriental (Asmara)',
+        'Africa/Asmara' => 'Hora de Africa Oriental (Asmara)',
         'Africa/Bamako' => 'Hora del Meridiano de Greenwich (Bamako)',
         'Africa/Bangui' => 'Hora de Africa Occidental (Bangui)',
         'Africa/Banjul' => 'Hora del Meridiano de Greenwich (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Hora de Africa Oriental (Dar es Salaam)',
         'Africa/Djibouti' => 'Hora de Africa Oriental (Yibuti)',
         'Africa/Douala' => 'Hora de Africa Occidental (Duala)',
-        'Africa/El_Aaiun' => 'Hora de Europa Occidental (El Aaiun)',
+        'Africa/El_Aaiun' => 'Hora de Europa Occidental (El Aaiún)',
         'Africa/Freetown' => 'Hora del Meridiano de Greenwich (Freetown)',
         'Africa/Gaborone' => 'Hora de Africa Central (Gaborone)',
         'Africa/Harare' => 'Hora de Africa Central (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Hora de Africa Occidental (Kinshasa)',
         'Africa/Lagos' => 'Hora de Africa Occidental (Lagos)',
         'Africa/Libreville' => 'Hora de Africa Occidental (Libreville)',
-        'Africa/Lome' => 'Hora del Meridiano de Greenwich (Lome)',
+        'Africa/Lome' => 'Hora del Meridiano de Greenwich (Lomé)',
         'Africa/Luanda' => 'Hora de Africa Occidental (Luanda)',
         'Africa/Lubumbashi' => 'Hora de Africa Central (Lubumbashi)',
         'Africa/Lusaka' => 'Hora de Africa Central (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Hora de Africa Oriental (Mogadiscio)',
         'Africa/Monrovia' => 'Hora del Meridiano de Greenwich (Monrovia)',
         'Africa/Nairobi' => 'Hora de Africa Oriental (Nairobi)',
-        'Africa/Ndjamena' => 'Hora de Africa Occidental (Ndjamena)',
+        'Africa/Ndjamena' => 'Hora de Africa Occidental (N’Djamena)',
         'Africa/Niamey' => 'Hora de Africa Occidental (Niamey)',
         'Africa/Nouakchott' => 'Hora del Meridiano de Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'Hora del Meridiano de Greenwich (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Hora de Alaska (Anchorage)',
         'America/Anguilla' => 'Hora del Atlántico (Anguila)',
         'America/Antigua' => 'Hora del Atlántico (Antigua)',
-        'America/Araguaina' => 'Hora de Brasilia (Araguaina)',
+        'America/Araguaina' => 'Hora de Brasilia (Araguaína)',
         'America/Argentina/La_Rioja' => 'Hora de Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Hora de Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Hora de Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Hora de Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Hora de Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Hora de Argentina (San Luis)',
-        'America/Argentina/Tucuman' => 'Hora de Argentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Hora de Argentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Hora de Argentina (Ushuaia)',
         'America/Aruba' => 'Hora del Atlántico (Aruba)',
         'America/Asuncion' => 'Hora de Paraguay (Asunción)',
         'America/Bahia' => 'Hora de Brasilia (Bahia)',
         'America/Bahia_Banderas' => 'Hora Central (Bahia Banderas)',
         'America/Barbados' => 'Hora del Atlántico (Barbados)',
-        'America/Belem' => 'Hora de Brasilia (Belem)',
+        'America/Belem' => 'Hora de Brasilia (Belém)',
         'America/Belize' => 'Hora Central (Belice)',
         'America/Blanc-Sablon' => 'Hora del Atlántico (Blanc-Sablon)',
         'America/Boa_Vista' => 'Hora de Amazonas (Boa Vista)',
-        'America/Bogota' => 'Hora de Colombia (Bogota)',
+        'America/Bogota' => 'Hora de Colombia (Bogotá)',
         'America/Boise' => 'Hora de la Montaña (Boise)',
         'America/Buenos_Aires' => 'Hora de Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Hora de Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Hora de la Montaña (Cambridge Bay)',
         'America/Campo_Grande' => 'Hora de Amazonas (Campo Grande)',
         'America/Cancun' => 'Hora del Este (Cancun)',
         'America/Caracas' => 'Hora de Venezuela (Caracas)',
         'America/Catamarca' => 'Hora de Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Hora de Argentina (Catamarca)',
         'America/Cayenne' => 'Hora de Guayana Francesa (Cayenne)',
         'America/Cayman' => 'Hora del Este (Cayman)',
         'America/Chicago' => 'Hora Central (Chicago)',
         'America/Chihuahua' => 'Hora Central (Chihuahua)',
         'America/Ciudad_Juarez' => 'Hora de la Montaña (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Hora del Este (Atikokan)',
-        'America/Cordoba' => 'Hora de Argentina (Cordoba)',
+        'America/Atikokan' => 'Hora del Este (Atikokan)',
+        'America/Cordoba' => 'Hora de Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Hora de Argentina (Córdoba)',
         'America/Costa_Rica' => 'Hora Central (Costa Rica)',
+        'America/Coyhaique' => 'Hora de Chile (Coyhaique)',
         'America/Creston' => 'Hora de la Montaña (Creston)',
-        'America/Cuiaba' => 'Hora de Amazonas (Cuiaba)',
+        'America/Cuiaba' => 'Hora de Amazonas (Cuiabá)',
         'America/Curacao' => 'Hora del Atlántico (Curazao)',
         'America/Danmarkshavn' => 'Hora del Meridiano de Greenwich (Danmarkshavn)',
         'America/Dawson' => 'Yukon Ura (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Hora del Este (Detroit)',
         'America/Dominica' => 'Hora del Atlántico (Dominica)',
         'America/Edmonton' => 'Hora de la Montaña (Edmonton)',
-        'America/Eirunepe' => 'Brasil (Eirunepe)',
+        'America/Eirunepe' => 'Brasil (Eirunepé)',
         'America/El_Salvador' => 'Hora Central (El Salvador)',
         'America/Fort_Nelson' => 'Hora de la Montaña (Fort Nelson)',
         'America/Fortaleza' => 'Hora de Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'Hora del Atlántico (Glace Bay)',
         'America/Godthab' => 'Groenlandia (Nuuk)',
+        'America/Nuuk' => 'Groenlandia (Nuuk)',
         'America/Goose_Bay' => 'Hora del Atlántico (Goose Bay)',
         'America/Grand_Turk' => 'Hora del Este (Grand Turk)',
         'America/Grenada' => 'Hora del Atlántico (Granada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Hora del Este (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Hora del Este (Winamac, Indiana)',
         'America/Indianapolis' => 'Hora del Este (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Hora del Este (Indianapolis)',
         'America/Inuvik' => 'Hora de la Montaña (Inuvik)',
         'America/Iqaluit' => 'Hora del Este (Iqaluit)',
         'America/Jamaica' => 'Hora del Este (Jamaica)',
         'America/Jujuy' => 'Hora de Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Hora de Argentina (Jujuy)',
         'America/Juneau' => 'Hora de Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Hora del Este (Monticello, Kentucky)',
         'America/Kralendijk' => 'Hora del Atlántico (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Hora de Perú (Lima)',
         'America/Los_Angeles' => 'Hora del Pacífico (Los Angeles)',
         'America/Louisville' => 'Hora del Este (Louisville)',
+        'America/Kentucky/Louisville' => 'Hora del Este (Louisville)',
         'America/Lower_Princes' => 'Hora del Atlántico (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Hora de Brasilia (Maceio)',
+        'America/Maceio' => 'Hora de Brasilia (Maceió)',
         'America/Managua' => 'Hora Central (Managua)',
         'America/Manaus' => 'Hora de Amazonas (Manaus)',
         'America/Marigot' => 'Hora del Atlántico (Marigot)',
         'America/Martinique' => 'Hora del Atlántico (Martinica)',
         'America/Matamoros' => 'Hora Central (Matamoros)',
-        'America/Mazatlan' => 'Hora del Pacífico Mexicano (Mazatlan)',
+        'America/Mazatlan' => 'Hora del Pacífico Mexicano (Mazatlán)',
         'America/Mendoza' => 'Hora de Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Hora de Argentina (Mendoza)',
         'America/Menominee' => 'Hora Central (Menominee)',
         'America/Merida' => 'Hora Central (Merida)',
         'America/Metlakatla' => 'Hora de Alaska (Metlakatla)',
         'America/Mexico_City' => 'Hora Central (Ciudad de Mexico)',
-        'America/Miquelon' => 'Hora de San Pedro y Miquelón (Miquelon)',
+        'America/Miquelon' => 'Hora de San Pedro y Miquelón (Saint-Pierre)',
         'America/Moncton' => 'Hora del Atlántico (Moncton)',
         'America/Monterrey' => 'Hora Central (Monterrey)',
         'America/Montevideo' => 'Hora de Uruguay (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Hora Central (Regina)',
         'America/Resolute' => 'Hora Central (Resolute)',
         'America/Rio_Branco' => 'Brasil (Rio Branco)',
-        'America/Santarem' => 'Hora de Brasilia (Santarem)',
+        'America/Santarem' => 'Hora de Brasilia (Santarém)',
         'America/Santiago' => 'Hora de Chile (Santiago)',
         'America/Santo_Domingo' => 'Hora del Atlántico (Santo Domingo)',
-        'America/Sao_Paulo' => 'Hora de Brasilia (Sao Paulo)',
+        'America/Sao_Paulo' => 'Hora de Brasilia (São Paulo)',
         'America/Scoresbysund' => 'Groenlandia (Ittoqqortoormiit)',
         'America/Sitka' => 'Hora de Alaska (Sitka)',
         'America/St_Barthelemy' => 'Hora del Atlántico (San Bartolomé)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Hora de Nueva Zelanda (McMurdo)',
         'Antarctica/Palmer' => 'Hora de Chile (Palmer)',
         'Antarctica/Rothera' => 'Hora de Rothera',
-        'Antarctica/Syowa' => 'Hora de Syowa',
+        'Antarctica/Syowa' => 'Hora de Syowa (Showa)',
         'Antarctica/Troll' => 'Hora del Meridiano de Greenwich (Troll)',
         'Antarctica/Vostok' => 'Hora de Vostok',
         'Arctic/Longyearbyen' => 'Hora de Europa Central (Longyearbyen)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Hora de Arabia (Baréin)',
         'Asia/Baku' => 'Hora de Azerbaiyán (Baku)',
         'Asia/Bangkok' => 'Hora de Indochina (Bangkok)',
-        'Asia/Barnaul' => 'Rusia (Barnaul)',
+        'Asia/Barnaul' => 'Hora de Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Hora de Europa Oriental (Beirut)',
         'Asia/Bishkek' => 'Hora de Kirguistán (Bishkek)',
         'Asia/Brunei' => 'Hora de Brunei Darussalam',
         'Asia/Calcutta' => 'Hora Estandar de India (Kolkata)',
+        'Asia/Kolkata' => 'Hora Estandar de India (Kolkata)',
         'Asia/Chita' => 'Hora de Yakutsk (Chita)',
         'Asia/Colombo' => 'Hora Estandar de India (Colombo)',
         'Asia/Damascus' => 'Hora de Europa Oriental (Damasco)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Hora de Europa Oriental (Gaza)',
         'Asia/Hebron' => 'Hora de Europa Oriental (Hebron)',
         'Asia/Hong_Kong' => 'Hora de Hong Kong',
-        'Asia/Hovd' => 'Hora de Hovd',
+        'Asia/Hovd' => 'Hora de Hovd (Khovd)',
         'Asia/Irkutsk' => 'Hora de Irkutsk',
         'Asia/Jakarta' => 'Hora de Indonesia Occidental (Yakarta)',
         'Asia/Jayapura' => 'Hora de Indonesia Oriental (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Rusia (Kamchatka)',
         'Asia/Karachi' => 'Hora de Pakistán (Karachi)',
         'Asia/Katmandu' => 'Hora de Nepal (Katmandú)',
+        'Asia/Kathmandu' => 'Hora de Nepal (Katmandú)',
         'Asia/Khandyga' => 'Hora de Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Hora de Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Hora de Malasia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Hora Estandar del Golfo (Mascate)',
         'Asia/Nicosia' => 'Hora de Europa Oriental (Nicosia)',
         'Asia/Novokuznetsk' => 'Hora de Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Hora de Novosibirsk',
+        'Asia/Novosibirsk' => 'Hora de Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Hora de Omsk',
         'Asia/Oral' => 'Hora de Kazajistán (Oral)',
         'Asia/Phnom_Penh' => 'Hora de Indochina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Hora de Kazajistán (Kostanái)',
         'Asia/Qyzylorda' => 'Hora de Kazajistán (Kyzylorda)',
         'Asia/Rangoon' => 'Hora de Myanmar (Rangún)',
+        'Asia/Yangon' => 'Hora de Myanmar (Rangún)',
         'Asia/Riyadh' => 'Hora de Arabia (Riad)',
         'Asia/Saigon' => 'Hora de Indochina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Hora de Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Hora de Indochina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Hora de Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Hora de Uzbekistán (Samarcanda)',
         'Asia/Seoul' => 'Hora de Corea (Seúl)',
         'Asia/Shanghai' => 'Hora de China (Shangái)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Hora de Irán (Teherán)',
         'Asia/Thimphu' => 'Hora de Bután (Thimphu)',
         'Asia/Tokyo' => 'Hora de Japón (Tokio)',
-        'Asia/Tomsk' => 'Rusia (Tomsk)',
+        'Asia/Tomsk' => 'Hora de Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Hora de Ulán Bator (Ulan Bator)',
-        'Asia/Urumqi' => 'China (Urumqi)',
+        'Asia/Urumqi' => 'China (Ürümqi)',
         'Asia/Ust-Nera' => 'Hora de Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Hora de Indochina (Vientiane)',
         'Asia/Vladivostok' => 'Hora de Vladivostok',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Hora de Europa Occidental (Canarias)',
         'Atlantic/Cape_Verde' => 'Hora de Cabo Verde',
         'Atlantic/Faeroe' => 'Hora de Europa Occidental (Faroe)',
+        'Atlantic/Faroe' => 'Hora de Europa Occidental (Faroe)',
         'Atlantic/Madeira' => 'Hora de Europa Occidental (Madeira)',
         'Atlantic/Reykjavik' => 'Hora del Meridiano de Greenwich (Reykjavik)',
         'Atlantic/South_Georgia' => 'Hora de Georgia del Sur',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Tiqsimuyuntin Tupachisqa Hora',
         'Europe/Amsterdam' => 'Hora de Europa Central (Amsterdam)',
         'Europe/Andorra' => 'Hora de Europa Central (Andorra)',
-        'Europe/Astrakhan' => 'Hora de Moscú (Astrakhan)',
+        'Europe/Astrakhan' => 'Rusia (Astrakhan)',
         'Europe/Athens' => 'Hora de Europa Oriental (Athens)',
         'Europe/Belgrade' => 'Hora de Europa Central (Belgrade)',
         'Europe/Berlin' => 'Hora de Europa Central (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Hora de Europa Central (Bruselas)',
         'Europe/Bucharest' => 'Hora de Europa Oriental (Bucarest)',
         'Europe/Budapest' => 'Hora de Europa Central (Budapest)',
-        'Europe/Busingen' => 'Hora de Europa Central (Busingen)',
-        'Europe/Chisinau' => 'Hora de Europa Oriental (Chisinau)',
+        'Europe/Busingen' => 'Hora de Europa Central (Büsingen)',
+        'Europe/Chisinau' => 'Hora de Europa Oriental (Chișinău)',
         'Europe/Copenhagen' => 'Hora de Europa Central (Copenhague)',
         'Europe/Dublin' => 'Hora del Meridiano de Greenwich (Dublin)',
         'Europe/Gibraltar' => 'Hora de Europa Central (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Hora del Meridiano de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Hora de Europa Oriental (Kaliningrado)',
         'Europe/Kiev' => 'Hora de Europa Oriental (Kiev)',
-        'Europe/Kirov' => 'Rusia (Kirov)',
+        'Europe/Kyiv' => 'Hora de Europa Oriental (Kiev)',
+        'Europe/Kirov' => 'Hora de Moscú (Kirov)',
         'Europe/Lisbon' => 'Hora de Europa Occidental (Lisboa)',
         'Europe/Ljubljana' => 'Hora de Europa Central (Liubliana)',
         'Europe/London' => 'Hora del Meridiano de Greenwich (Londres)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Rusia (Samara)',
         'Europe/San_Marino' => 'Hora de Europa Central (San Marino)',
         'Europe/Sarajevo' => 'Hora de Europa Central (Sarajevo)',
-        'Europe/Saratov' => 'Hora de Moscú (Saratov)',
+        'Europe/Saratov' => 'Rusia (Saratov)',
         'Europe/Simferopol' => 'Hora de Moscú (Simferopol)',
         'Europe/Skopje' => 'Hora de Europa Central (Skopje)',
         'Europe/Sofia' => 'Hora de Europa Oriental (Sofia)',
         'Europe/Stockholm' => 'Hora de Europa Central (Estocolmo)',
         'Europe/Tallinn' => 'Hora de Europa Oriental (Tallinn)',
         'Europe/Tirane' => 'Hora de Europa Central (Tirana)',
-        'Europe/Ulyanovsk' => 'Hora de Moscú (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Rusia (Ulyanovsk)',
         'Europe/Vaduz' => 'Hora de Europa Central (Vaduz)',
         'Europe/Vatican' => 'Hora de Europa Central (El Vaticano)',
         'Europe/Vienna' => 'Hora de Europa Central (Viena)',
         'Europe/Vilnius' => 'Hora de Europa Oriental (Vilnius)',
-        'Europe/Volgograd' => 'Hora de Volgogrado',
+        'Europe/Volgograd' => 'Hora de Moscú (Volgogrado)',
         'Europe/Warsaw' => 'Hora de Europa Central (Varsovia)',
         'Europe/Zagreb' => 'Hora de Europa Central (Zagreb)',
         'Europe/Zurich' => 'Hora de Europa Central (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Hora del Oceano Índico (Chagos)',
         'Indian/Christmas' => 'Hora de Isla Christmas',
         'Indian/Cocos' => 'Hora de Islas Cocos',
-        'Indian/Comoro' => 'Hora de Africa Oriental (Comoro)',
+        'Indian/Comoro' => 'Hora de Africa Oriental (Comores)',
         'Indian/Kerguelen' => 'Hora Francés meridional y antártico (Kerguelen)',
-        'Indian/Mahe' => 'Hora de Seychelles (Mahe)',
+        'Indian/Mahe' => 'Hora de Seychelles (Mahé)',
         'Indian/Maldives' => 'Hora de Maldivas',
         'Indian/Mauritius' => 'Hora de Mauricio (Mauritius)',
         'Indian/Mayotte' => 'Hora de Africa Oriental (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Hora de Chatham',
         'Pacific/Easter' => 'Hora de Isla de Pascua (Easter)',
         'Pacific/Efate' => 'Hora de Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Hora de Islas Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Hora de Islas Phoenix (Canton)',
+        'Pacific/Kanton' => 'Hora de Islas Phoenix (Canton)',
         'Pacific/Fakaofo' => 'Hora de Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Hora de Fiji',
         'Pacific/Funafuti' => 'Hora de Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Hora de Islas Galápagos (Galapagos)',
+        'Pacific/Galapagos' => 'Hora de Islas Galápagos',
         'Pacific/Gambier' => 'Hora de Gambier',
         'Pacific/Guadalcanal' => 'Hora de Islas Salomón (Guadalcanal)',
         'Pacific/Guam' => 'Hora Estandar de Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Hora de Hawai-Aleutiano (Honolulu)',
+        'Pacific/Honolulu' => 'Hora Estandar de Hawai-Aleutiano (Honolulu)',
         'Pacific/Kiritimati' => 'Hora de Espóradas Ecuatoriales (Kiritimati)',
         'Pacific/Kosrae' => 'Hora de Kosrae',
         'Pacific/Kwajalein' => 'Hora de Islas Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Hora de Nauru',
         'Pacific/Niue' => 'Hora de Niue',
         'Pacific/Norfolk' => 'Hora de la Isla Norfolk',
-        'Pacific/Noumea' => 'Hora de Nueva Caledonia (Noumea)',
+        'Pacific/Noumea' => 'Hora de Nueva Caledonia (Nouméa)',
         'Pacific/Pago_Pago' => 'Hora de Samoa (Pago Pago)',
         'Pacific/Palau' => 'Hora de Palau',
         'Pacific/Pitcairn' => 'Hora de Pitcairn',
         'Pacific/Ponape' => 'Hora de Pohnpei',
+        'Pacific/Pohnpei' => 'Hora de Pohnpei',
         'Pacific/Port_Moresby' => 'Hora de Papua Nueva Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'Hora de Islas Cook (Rarotonga)',
         'Pacific/Saipan' => 'Hora Estandar de Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Hora de Islas Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Hora de Tonga (Tongatapu)',
         'Pacific/Truk' => 'Hora de Chuuk',
+        'Pacific/Chuuk' => 'Hora de Chuuk',
         'Pacific/Wake' => 'Hora de Isla Wake',
-        'Pacific/Wallis' => 'Hora de Wallis y Futuna',
+        'Pacific/Wallis' => 'Hora de Wallis y Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/rm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/rm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/rm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/rm.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,424 +2,445 @@
 
 return [
     'Names' => [
-        'Africa/Abidjan' => 'Temp Greenwich (Abidjan)',
-        'Africa/Accra' => 'Temp Greenwich (Accra)',
-        'Africa/Addis_Ababa' => 'temp: Etiopia (Addis Abeba)',
-        'Africa/Algiers' => 'Temp da l’Europa Centrala (Algier)',
-        'Africa/Asmera' => 'temp: Eritrea (Asmara)',
-        'Africa/Bamako' => 'Temp Greenwich (Bamako)',
-        'Africa/Bangui' => 'temp: Republica Centralafricana (Bangui)',
-        'Africa/Banjul' => 'Temp Greenwich (Banjul)',
-        'Africa/Bissau' => 'Temp Greenwich (Bissau)',
-        'Africa/Blantyre' => 'temp: Malawi (Blantyre)',
-        'Africa/Brazzaville' => 'temp: Congo (Brazzaville)',
-        'Africa/Bujumbura' => 'temp: Burundi (Bujumbura)',
-        'Africa/Cairo' => 'Temp da l’Europa Orientala (Cairo)',
-        'Africa/Casablanca' => 'Temp da l’Europa dal Vest (Casablanca)',
-        'Africa/Ceuta' => 'Temp da l’Europa Centrala (Ceuta)',
-        'Africa/Conakry' => 'Temp Greenwich (Conakry)',
-        'Africa/Dakar' => 'Temp Greenwich (Dakar)',
-        'Africa/Dar_es_Salaam' => 'temp: Tansania (Daressalam)',
-        'Africa/Djibouti' => 'temp: Dschibuti (Dschibuti)',
-        'Africa/Douala' => 'temp: Camerun (Douala)',
-        'Africa/El_Aaiun' => 'Temp da l’Europa dal Vest (El Aaiún)',
-        'Africa/Freetown' => 'Temp Greenwich (Freetown)',
-        'Africa/Gaborone' => 'temp: Botswana (Gaborone)',
-        'Africa/Harare' => 'temp: Simbabwe (Harare)',
-        'Africa/Johannesburg' => 'temp: Africa dal Sid (Johannesburg)',
-        'Africa/Juba' => 'temp: Sudan dal Sid (Juba)',
-        'Africa/Kampala' => 'temp: Uganda (Kampala)',
-        'Africa/Khartoum' => 'temp: Sudan (Khartum)',
-        'Africa/Kigali' => 'temp: Ruanda (Kigali)',
-        'Africa/Kinshasa' => 'temp: Congo - Kinshasa (Kinshasa)',
-        'Africa/Lagos' => 'temp: Nigeria (Lagos)',
-        'Africa/Libreville' => 'temp: Gabun (Libreville)',
-        'Africa/Lome' => 'Temp Greenwich (Lomé)',
-        'Africa/Luanda' => 'temp: Angola (Luanda)',
-        'Africa/Lubumbashi' => 'temp: Congo - Kinshasa (Lubumbashi)',
-        'Africa/Lusaka' => 'temp: Sambia (Lusaka)',
-        'Africa/Malabo' => 'temp: Guinea Equatoriala (Malabo)',
-        'Africa/Maputo' => 'temp: Mosambic (Maputo)',
-        'Africa/Maseru' => 'temp: Lesotho (Maseru)',
-        'Africa/Mbabane' => 'temp: Eswatini (Mbabane)',
-        'Africa/Mogadishu' => 'temp: Somalia (Mogadischu)',
-        'Africa/Monrovia' => 'Temp Greenwich (Monrovia)',
-        'Africa/Nairobi' => 'temp: Kenia (Nairobi)',
-        'Africa/Ndjamena' => 'temp: Tschad (Ndjamena)',
-        'Africa/Niamey' => 'temp: Niger (Niamey)',
-        'Africa/Nouakchott' => 'Temp Greenwich (Nouakchott)',
-        'Africa/Ouagadougou' => 'Temp Greenwich (Ouagadougou)',
-        'Africa/Porto-Novo' => 'temp: Benin (Porto-Novo)',
-        'Africa/Sao_Tome' => 'Temp Greenwich (São Tomé)',
-        'Africa/Tripoli' => 'Temp da l’Europa Orientala (Tripoli)',
-        'Africa/Tunis' => 'Temp da l’Europa Centrala (Tunis)',
-        'Africa/Windhoek' => 'temp: Namibia (Windhoek)',
-        'America/Adak' => 'temp: Stadis Unids da l’America (Adak)',
-        'America/Anchorage' => 'temp: Stadis Unids da l’America (Alasca)',
-        'America/Anguilla' => 'Temp atlantic (The Valley)',
-        'America/Antigua' => 'Temp atlantic (Antigua)',
-        'America/Araguaina' => 'temp: Brasilia (Araguaína)',
-        'America/Argentina/La_Rioja' => 'temp: Argentinia (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'temp: Argentinia (Rio Gallegos)',
-        'America/Argentina/Salta' => 'temp: Argentinia (Salta)',
-        'America/Argentina/San_Juan' => 'temp: Argentinia (San Juan, Argentinia)',
-        'America/Argentina/San_Luis' => 'temp: Argentinia (San Luis)',
-        'America/Argentina/Tucuman' => 'temp: Argentinia (Tucumán)',
-        'America/Argentina/Ushuaia' => 'temp: Argentinia (Ushuaïa)',
-        'America/Aruba' => 'Temp atlantic (Oranjestad)',
-        'America/Asuncion' => 'temp: Paraguai (Asunción)',
-        'America/Bahia' => 'temp: Brasilia (Bahia)',
-        'America/Bahia_Banderas' => 'Temp central (Bahía de Banderas)',
-        'America/Barbados' => 'Temp atlantic (Barbados)',
-        'America/Belem' => 'temp: Brasilia (Belém)',
-        'America/Belize' => 'Temp central (Belmopan)',
-        'America/Blanc-Sablon' => 'Temp atlantic (Blanc-Sablon)',
-        'America/Boa_Vista' => 'temp: Brasilia (Boa Vista)',
-        'America/Bogota' => 'temp: Columbia (Bogota)',
-        'America/Boise' => 'Temp da muntogna (Boise)',
-        'America/Buenos_Aires' => 'temp: Argentinia (Buenos Aires)',
-        'America/Cambridge_Bay' => 'Temp da muntogna (Cambridge Bay)',
-        'America/Campo_Grande' => 'temp: Brasilia (Campo Grande)',
-        'America/Cancun' => 'Temp oriental (Cancún)',
-        'America/Caracas' => 'temp: Venezuela (Caracas)',
-        'America/Catamarca' => 'temp: Argentinia (Catamarca)',
-        'America/Cayenne' => 'temp: Guyana Franzosa (Cayenne)',
-        'America/Cayman' => 'Temp oriental (Inslas Cayman)',
-        'America/Chicago' => 'Temp central (Chicago)',
-        'America/Chihuahua' => 'Temp central (Chihuahua)',
-        'America/Ciudad_Juarez' => 'Temp da muntogna (Ciudad Juárez)',
-        'America/Coral_Harbour' => 'Temp oriental (Atikokan)',
-        'America/Cordoba' => 'temp: Argentinia (Córdoba)',
-        'America/Costa_Rica' => 'Temp central (Costa Rica)',
-        'America/Creston' => 'Temp da muntogna (Creston)',
-        'America/Cuiaba' => 'temp: Brasilia (Cuiabá)',
-        'America/Curacao' => 'Temp atlantic (Curaçao)',
-        'America/Danmarkshavn' => 'Temp Greenwich (Danmarkshavn)',
-        'America/Dawson' => 'temp: Canada (Dawson)',
-        'America/Dawson_Creek' => 'Temp da muntogna (Dawson Creek)',
-        'America/Denver' => 'Temp da muntogna (Denver)',
-        'America/Detroit' => 'Temp oriental (Detroit)',
-        'America/Dominica' => 'Temp atlantic (Dominica)',
-        'America/Edmonton' => 'Temp da muntogna (Edmonton)',
-        'America/Eirunepe' => 'temp: Brasilia (Eirunepé)',
-        'America/El_Salvador' => 'Temp central (Salvador)',
-        'America/Fort_Nelson' => 'Temp da muntogna (Fort Nelson)',
-        'America/Fortaleza' => 'temp: Brasilia (Fortaleza)',
-        'America/Glace_Bay' => 'Temp atlantic (Glace Bay)',
-        'America/Godthab' => 'temp: Grönlanda (Godthåb)',
-        'America/Goose_Bay' => 'Temp atlantic (Goose Bay)',
-        'America/Grand_Turk' => 'Temp oriental (Cockburn Town)',
-        'America/Grenada' => 'Temp atlantic (Grenada)',
-        'America/Guadeloupe' => 'Temp atlantic (Basse-Terre)',
-        'America/Guatemala' => 'Temp central (Guatemala)',
-        'America/Guayaquil' => 'temp: Ecuador (Guayaquil)',
-        'America/Guyana' => 'temp: Guyana (Guyana)',
-        'America/Halifax' => 'Temp atlantic (Halifax)',
-        'America/Havana' => 'temp: Cuba (Havana)',
-        'America/Hermosillo' => 'temp: Mexico (Hermosillo)',
-        'America/Indiana/Knox' => 'Temp central (Knox)',
-        'America/Indiana/Marengo' => 'Temp oriental (Marengo)',
-        'America/Indiana/Petersburg' => 'Temp oriental (Petersburg)',
-        'America/Indiana/Tell_City' => 'Temp central (Tell City)',
-        'America/Indiana/Vevay' => 'Temp oriental (Vevay)',
-        'America/Indiana/Vincennes' => 'Temp oriental (Vincennes)',
-        'America/Indiana/Winamac' => 'Temp oriental (Winamac)',
-        'America/Indianapolis' => 'Temp oriental (Indianapolis)',
-        'America/Inuvik' => 'Temp da muntogna (Inuvik)',
-        'America/Iqaluit' => 'Temp oriental (Iqaluit)',
-        'America/Jamaica' => 'Temp oriental (Giamaica)',
-        'America/Jujuy' => 'temp: Argentinia (San Salvador de Jujuy)',
-        'America/Juneau' => 'temp: Stadis Unids da l’America (Juneau)',
-        'America/Kentucky/Monticello' => 'Temp oriental (Monticello)',
-        'America/Kralendijk' => 'Temp atlantic (Kralendijk)',
-        'America/La_Paz' => 'temp: Bolivia (La Paz)',
-        'America/Lima' => 'temp: Peru (Lima)',
-        'America/Los_Angeles' => 'Temp pacific (Los Angeles)',
-        'America/Louisville' => 'Temp oriental (Louisville)',
-        'America/Lower_Princes' => 'Temp atlantic (Lower Prince’s Quarter)',
-        'America/Maceio' => 'temp: Brasilia (Maceio)',
-        'America/Managua' => 'Temp central (Managua)',
-        'America/Manaus' => 'temp: Brasilia (Manaus)',
-        'America/Marigot' => 'Temp atlantic (Marigot)',
-        'America/Martinique' => 'Temp atlantic (Martinique)',
-        'America/Matamoros' => 'Temp central (Matamoros)',
-        'America/Mazatlan' => 'temp: Mexico (Mazatlán)',
-        'America/Mendoza' => 'temp: Argentinia (Mendoza)',
-        'America/Menominee' => 'Temp central (Menominee)',
-        'America/Merida' => 'Temp central (Mérida)',
-        'America/Metlakatla' => 'temp: Stadis Unids da l’America (Metlakatla)',
-        'America/Mexico_City' => 'Temp central (Citad da Mexico)',
-        'America/Miquelon' => 'temp: Saint Pierre e Miquelon (Saint Pierre)',
-        'America/Moncton' => 'Temp atlantic (Moncton)',
-        'America/Monterrey' => 'Temp central (Monterrey)',
-        'America/Montevideo' => 'temp: Uruguay (Montevideo)',
-        'America/Montserrat' => 'Temp atlantic (Brades)',
-        'America/Nassau' => 'Temp oriental (Nassau)',
-        'America/New_York' => 'Temp oriental (New York)',
-        'America/Nome' => 'temp: Stadis Unids da l’America (Nome)',
-        'America/Noronha' => 'temp: Brasilia (Fernando de Noronha)',
-        'America/North_Dakota/Beulah' => 'Temp central (Beulah, North Dakota)',
-        'America/North_Dakota/Center' => 'Temp central (North Dakota (Central))',
-        'America/North_Dakota/New_Salem' => 'Temp central (North Dakota (New Salem))',
-        'America/Ojinaga' => 'Temp central (Ojinaga)',
-        'America/Panama' => 'Temp oriental (Panama)',
-        'America/Paramaribo' => 'temp: Surinam (Paramaribo)',
-        'America/Phoenix' => 'Temp da muntogna (Phoenix)',
-        'America/Port-au-Prince' => 'Temp oriental (Port-au-Prince)',
-        'America/Port_of_Spain' => 'Temp atlantic (Port of Spain)',
-        'America/Porto_Velho' => 'temp: Brasilia (Porto Velho)',
-        'America/Puerto_Rico' => 'Temp atlantic (Puerto Rico)',
-        'America/Punta_Arenas' => 'temp: Chile (Punta Arenas)',
-        'America/Rankin_Inlet' => 'Temp central (Rankin Inlet)',
-        'America/Recife' => 'temp: Brasilia (Recife)',
-        'America/Regina' => 'Temp central (Regina)',
-        'America/Resolute' => 'Temp central (Resolute)',
-        'America/Rio_Branco' => 'temp: Brasilia (Rio Branco)',
-        'America/Santarem' => 'temp: Brasilia (Santarem)',
-        'America/Santiago' => 'temp: Chile (Santiago)',
-        'America/Santo_Domingo' => 'Temp atlantic (Santo Domingo)',
-        'America/Sao_Paulo' => 'temp: Brasilia (São Paulo)',
-        'America/Scoresbysund' => 'temp: Grönlanda (Ittoqqortoormiit)',
-        'America/Sitka' => 'temp: Stadis Unids da l’America (Sitka)',
-        'America/St_Barthelemy' => 'Temp atlantic (St. Barthélemy)',
-        'America/St_Johns' => 'temp: Canada (Saint John’s)',
-        'America/St_Kitts' => 'Temp atlantic (Saint Kitts)',
-        'America/St_Lucia' => 'Temp atlantic (Santa Lucia)',
-        'America/St_Thomas' => 'Temp atlantic (Saint Thomas)',
-        'America/St_Vincent' => 'Temp atlantic (Saint Vincent)',
-        'America/Swift_Current' => 'Temp central (Swift Current)',
-        'America/Tegucigalpa' => 'Temp central (Tegucigalpa)',
-        'America/Thule' => 'Temp atlantic (Thule)',
-        'America/Tijuana' => 'Temp pacific (Tijuana)',
-        'America/Toronto' => 'Temp oriental (Toronto)',
-        'America/Tortola' => 'Temp atlantic (Road Town)',
-        'America/Vancouver' => 'Temp pacific (Vancouver)',
-        'America/Whitehorse' => 'temp: Canada (Whitehorse)',
-        'America/Winnipeg' => 'Temp central (Winnipeg)',
-        'America/Yakutat' => 'temp: Stadis Unids da l’America (Yakutat)',
-        'Antarctica/Casey' => 'temp: Antarctica (Casey)',
-        'Antarctica/Davis' => 'temp: Antarctica (Davis)',
-        'Antarctica/DumontDUrville' => 'temp: Antarctica (Dumont-d’Urville)',
-        'Antarctica/Macquarie' => 'temp: Australia (Macquarie)',
-        'Antarctica/Mawson' => 'temp: Antarctica (Mawson)',
-        'Antarctica/McMurdo' => 'temp: Antarctica (Mac Murdo)',
-        'Antarctica/Palmer' => 'temp: Antarctica (Palmer)',
-        'Antarctica/Rothera' => 'temp: Antarctica (Rothera)',
-        'Antarctica/Syowa' => 'temp: Antarctica (Showa)',
-        'Antarctica/Troll' => 'Temp Greenwich (Troll)',
-        'Antarctica/Vostok' => 'temp: Antarctica (Vostok)',
-        'Arctic/Longyearbyen' => 'Temp da l’Europa Centrala (Longyearbyen)',
-        'Asia/Aden' => 'temp: Jemen (Aden)',
-        'Asia/Almaty' => 'temp: Kasachstan (Almaty)',
-        'Asia/Amman' => 'Temp da l’Europa Orientala (Amman)',
-        'Asia/Anadyr' => 'temp: Russia (Anadyr)',
-        'Asia/Aqtau' => 'temp: Kasachstan (Aqtau)',
-        'Asia/Aqtobe' => 'temp: Kasachstan (Aqtöbe)',
-        'Asia/Ashgabat' => 'temp: Turkmenistan (Aşgabat)',
-        'Asia/Atyrau' => 'temp: Kasachstan (Atyrau)',
-        'Asia/Baghdad' => 'temp: Irac (Bagdad)',
-        'Asia/Bahrain' => 'temp: Bahrain (Bahrain)',
-        'Asia/Baku' => 'temp: Aserbaidschan (Baku)',
-        'Asia/Bangkok' => 'temp: Tailanda (Bangkok)',
-        'Asia/Barnaul' => 'temp: Russia (Barnaul)',
-        'Asia/Beirut' => 'Temp da l’Europa Orientala (Beirut)',
-        'Asia/Bishkek' => 'temp: Kirgisistan (Bischkek)',
-        'Asia/Brunei' => 'temp: Brunei (Bandar Seri Begawan)',
-        'Asia/Calcutta' => 'temp: India (Kolkata)',
-        'Asia/Chita' => 'temp: Russia (Chita)',
-        'Asia/Colombo' => 'temp: Sri Lanka (Colombo)',
-        'Asia/Damascus' => 'Temp da l’Europa Orientala (Damascus)',
-        'Asia/Dhaka' => 'temp: Bangladesch (Dhaka)',
-        'Asia/Dili' => 'temp: Timor da l’Ost (Dili)',
-        'Asia/Dubai' => 'temp: Emirats Arabs Unids (Dubai)',
-        'Asia/Dushanbe' => 'temp: Tadschikistan (Duschanbe)',
-        'Asia/Famagusta' => 'Temp da l’Europa Orientala (Famagusta)',
-        'Asia/Gaza' => 'Temp da l’Europa Orientala (Gaza)',
-        'Asia/Hebron' => 'Temp da l’Europa Orientala (Hebron)',
-        'Asia/Hong_Kong' => 'temp: Regiun d’administraziun speziala da Hongkong, China (Hongkong)',
-        'Asia/Hovd' => 'temp: Mongolia (Hovd)',
-        'Asia/Irkutsk' => 'temp: Russia (Irkutsk)',
-        'Asia/Jakarta' => 'temp: Indonesia (Jakarta)',
-        'Asia/Jayapura' => 'temp: Indonesia (Jayapura)',
-        'Asia/Jerusalem' => 'temp: Israel (Jerusalem)',
-        'Asia/Kabul' => 'temp: Afghanistan (Kabul)',
-        'Asia/Kamchatka' => 'temp: Russia (Kamtschatka)',
-        'Asia/Karachi' => 'temp: Pakistan (Karatschi)',
-        'Asia/Katmandu' => 'temp: Nepal (Kathmandu)',
-        'Asia/Khandyga' => 'temp: Russia (Khandyga)',
-        'Asia/Krasnoyarsk' => 'temp: Russia (Krasnojarsk)',
-        'Asia/Kuala_Lumpur' => 'temp: Malaisia (Kuala Lumpur)',
-        'Asia/Kuching' => 'temp: Malaisia (Kuching)',
-        'Asia/Kuwait' => 'temp: Kuwait (Kuwait)',
-        'Asia/Macau' => 'temp: Regiun d’administraziun speziala Macao, China (Macao)',
-        'Asia/Magadan' => 'temp: Russia (Magadan)',
-        'Asia/Makassar' => 'temp: Indonesia (Macassar)',
-        'Asia/Manila' => 'temp: Filippinas (Manila)',
-        'Asia/Muscat' => 'temp: Oman (Mascate)',
-        'Asia/Nicosia' => 'Temp da l’Europa Orientala (Nicosia)',
-        'Asia/Novokuznetsk' => 'temp: Russia (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'temp: Russia (Nowosibirsk)',
-        'Asia/Omsk' => 'temp: Russia (Omsk)',
-        'Asia/Oral' => 'temp: Kasachstan (Oral)',
-        'Asia/Phnom_Penh' => 'temp: Cambodscha (Phnom Penh)',
-        'Asia/Pontianak' => 'temp: Indonesia (Pontianak)',
-        'Asia/Pyongyang' => 'temp: Corea dal Nord (Pyongyang)',
-        'Asia/Qatar' => 'temp: Katar (Qatar)',
-        'Asia/Qostanay' => 'temp: Kasachstan (Qostanay)',
-        'Asia/Qyzylorda' => 'temp: Kasachstan (Qyzylorda)',
-        'Asia/Rangoon' => 'temp: Myanmar (Burma) (Yangon)',
-        'Asia/Riyadh' => 'temp: Arabia Saudita (Riyad)',
-        'Asia/Saigon' => 'temp: Vietnam (Citad da Ho Chi Minh)',
-        'Asia/Sakhalin' => 'temp: Russia (Sachalin)',
-        'Asia/Samarkand' => 'temp: Usbekistan (Samarcanda)',
-        'Asia/Seoul' => 'temp: Corea dal Sid (Seul)',
-        'Asia/Shanghai' => 'temp: China (Shanghai)',
-        'Asia/Singapore' => 'temp: Singapur (Singapur)',
-        'Asia/Srednekolymsk' => 'temp: Russia (Srednekolymsk)',
-        'Asia/Taipei' => 'temp: Taiwan (Taipei)',
-        'Asia/Tashkent' => 'temp: Usbekistan (Taschkent)',
-        'Asia/Tbilisi' => 'temp: Georgia (Tbilisi)',
-        'Asia/Tehran' => 'temp: Iran (Teheran)',
-        'Asia/Thimphu' => 'temp: Bhutan (Thimphu)',
-        'Asia/Tokyo' => 'temp: Giapun (Tokio)',
-        'Asia/Tomsk' => 'temp: Russia (Tomsk)',
-        'Asia/Ulaanbaatar' => 'temp: Mongolia (Ulaanbaatar)',
-        'Asia/Urumqi' => 'temp: China (Ürümqi)',
-        'Asia/Ust-Nera' => 'temp: Russia (Ust-Nera)',
-        'Asia/Vientiane' => 'temp: Laos (Vientiane)',
-        'Asia/Vladivostok' => 'temp: Russia (Vladivostok)',
-        'Asia/Yakutsk' => 'temp: Russia (Jakutsk)',
-        'Asia/Yekaterinburg' => 'temp: Russia (Jekaterinburg)',
-        'Asia/Yerevan' => 'temp: Armenia (Jerevan)',
-        'Atlantic/Azores' => 'temp: Portugal (Azoras)',
-        'Atlantic/Bermuda' => 'Temp atlantic (Bermudas)',
-        'Atlantic/Canary' => 'Temp da l’Europa dal Vest (Inslas Canarias)',
-        'Atlantic/Cape_Verde' => 'temp: Cap Verd (Cap Verd)',
-        'Atlantic/Faeroe' => 'Temp da l’Europa dal Vest (Inslas Feroe)',
-        'Atlantic/Madeira' => 'Temp da l’Europa dal Vest (Madeira)',
-        'Atlantic/Reykjavik' => 'Temp Greenwich (Reykjavik)',
-        'Atlantic/South_Georgia' => 'temp: Georgia dal Sid e las Inslas Sandwich dal Sid (Georgia dal Sid)',
-        'Atlantic/St_Helena' => 'Temp Greenwich (Sontg’elena)',
-        'Atlantic/Stanley' => 'temp: Inslas dal Falkland (Port Stanley)',
-        'Australia/Adelaide' => 'temp: Australia (Adelaide)',
-        'Australia/Brisbane' => 'temp: Australia (Brisbane)',
-        'Australia/Broken_Hill' => 'temp: Australia (Broken Hill)',
-        'Australia/Darwin' => 'temp: Australia (Darwin)',
-        'Australia/Eucla' => 'temp: Australia (Eucla)',
-        'Australia/Hobart' => 'temp: Australia (Hobart)',
-        'Australia/Lindeman' => 'temp: Australia (Lindeman)',
-        'Australia/Lord_Howe' => 'temp: Australia (Lord Howe)',
-        'Australia/Melbourne' => 'temp: Australia (Melbourne)',
-        'Australia/Perth' => 'temp: Australia (Perth)',
-        'Australia/Sydney' => 'temp: Australia (Sydney)',
-        'Etc/GMT' => 'Temp Greenwich',
-        'Etc/UTC' => 'Temp universal coordinà',
-        'Europe/Amsterdam' => 'Temp da l’Europa Centrala (Amsterdam)',
-        'Europe/Andorra' => 'Temp da l’Europa Centrala (Andorra)',
-        'Europe/Astrakhan' => 'temp: Russia (Astrakhan)',
-        'Europe/Athens' => 'Temp da l’Europa Orientala (Athen)',
-        'Europe/Belgrade' => 'Temp da l’Europa Centrala (Belgrade)',
-        'Europe/Berlin' => 'Temp da l’Europa Centrala (Berlin)',
-        'Europe/Bratislava' => 'Temp da l’Europa Centrala (Bratislava)',
-        'Europe/Brussels' => 'Temp da l’Europa Centrala (Bruxelles)',
-        'Europe/Bucharest' => 'Temp da l’Europa Orientala (Bucarest)',
-        'Europe/Budapest' => 'Temp da l’Europa Centrala (Budapest)',
-        'Europe/Busingen' => 'Temp da l’Europa Centrala (Busingen)',
-        'Europe/Chisinau' => 'Temp da l’Europa Orientala (Chisinau)',
-        'Europe/Copenhagen' => 'Temp da l’Europa Centrala (Copenhagen)',
-        'Europe/Dublin' => 'Temp Greenwich (Dublin)',
-        'Europe/Gibraltar' => 'Temp da l’Europa Centrala (Gibraltar)',
-        'Europe/Guernsey' => 'Temp Greenwich (Saint Peter Port)',
-        'Europe/Helsinki' => 'Temp da l’Europa Orientala (Helsinki)',
-        'Europe/Isle_of_Man' => 'Temp Greenwich (Douglas)',
-        'Europe/Istanbul' => 'temp: Tirchia (Istanbul)',
-        'Europe/Jersey' => 'Temp Greenwich (Saint Helier)',
-        'Europe/Kaliningrad' => 'Temp da l’Europa Orientala (Kaliningrad)',
-        'Europe/Kiev' => 'Temp da l’Europa Orientala (Kyiv)',
-        'Europe/Kirov' => 'temp: Russia (Kirov)',
-        'Europe/Lisbon' => 'Temp da l’Europa dal Vest (Lissabon)',
-        'Europe/Ljubljana' => 'Temp da l’Europa Centrala (Ljubljana)',
-        'Europe/London' => 'Temp Greenwich (Londra)',
-        'Europe/Luxembourg' => 'Temp da l’Europa Centrala (Luxemburg)',
-        'Europe/Madrid' => 'Temp da l’Europa Centrala (Madrid)',
-        'Europe/Malta' => 'Temp da l’Europa Centrala (Malta)',
-        'Europe/Mariehamn' => 'Temp da l’Europa Orientala (Mariehamn)',
-        'Europe/Minsk' => 'temp: Bielorussia (Minsk)',
-        'Europe/Monaco' => 'Temp da l’Europa Centrala (Monaco)',
-        'Europe/Moscow' => 'temp: Russia (Moscau)',
-        'Europe/Oslo' => 'Temp da l’Europa Centrala (Oslo)',
-        'Europe/Paris' => 'Temp da l’Europa Centrala (Paris)',
-        'Europe/Podgorica' => 'Temp da l’Europa Centrala (Podgorica)',
-        'Europe/Prague' => 'Temp da l’Europa Centrala (Prague)',
-        'Europe/Riga' => 'Temp da l’Europa Orientala (Riga)',
-        'Europe/Rome' => 'Temp da l’Europa Centrala (Roma)',
-        'Europe/Samara' => 'temp: Russia (Samara)',
-        'Europe/San_Marino' => 'Temp da l’Europa Centrala (San Marino)',
-        'Europe/Sarajevo' => 'Temp da l’Europa Centrala (Sarajevo)',
-        'Europe/Saratov' => 'temp: Russia (Saratov)',
-        'Europe/Simferopol' => 'temp: Ucraina (Simferopol)',
-        'Europe/Skopje' => 'Temp da l’Europa Centrala (Skopje)',
-        'Europe/Sofia' => 'Temp da l’Europa Orientala (Sofia)',
-        'Europe/Stockholm' => 'Temp da l’Europa Centrala (Stockholm)',
-        'Europe/Tallinn' => 'Temp da l’Europa Orientala (Tallinn)',
-        'Europe/Tirane' => 'Temp da l’Europa Centrala (Tirana)',
-        'Europe/Ulyanovsk' => 'temp: Russia (Ulyanovsk)',
-        'Europe/Vaduz' => 'Temp da l’Europa Centrala (Vaduz)',
-        'Europe/Vatican' => 'Temp da l’Europa Centrala (Vatican)',
-        'Europe/Vienna' => 'Temp da l’Europa Centrala (Vienna)',
-        'Europe/Vilnius' => 'Temp da l’Europa Orientala (Vilnius)',
-        'Europe/Volgograd' => 'temp: Russia (Volgograd)',
-        'Europe/Warsaw' => 'Temp da l’Europa Centrala (Varsovia)',
-        'Europe/Zagreb' => 'Temp da l’Europa Centrala (Zagreb)',
-        'Europe/Zurich' => 'Temp da l’Europa Centrala (Turitg)',
-        'Indian/Antananarivo' => 'temp: Madagascar (Antananarivo)',
-        'Indian/Christmas' => 'temp: Insla da Nadal (Flying Fish Cove)',
-        'Indian/Cocos' => 'temp: Inslas Cocos (West Island)',
-        'Indian/Comoro' => 'temp: Comoras (Comoras)',
-        'Indian/Kerguelen' => 'temp: Territoris Franzos Meridiunals (Kerguelen)',
-        'Indian/Mahe' => 'temp: Seychellas (Mahe)',
-        'Indian/Maldives' => 'temp: Maldivas (Maldivas)',
-        'Indian/Mauritius' => 'temp: Mauritius (Mauritius)',
-        'Indian/Mayotte' => 'temp: Mayotte (Mayotte)',
-        'Indian/Reunion' => 'temp: Réunion (Réunion)',
-        'Pacific/Apia' => 'temp: Samoa (Apia)',
-        'Pacific/Auckland' => 'temp: Nova Zelanda (Auckland)',
-        'Pacific/Bougainville' => 'temp: Papua Nova Guinea (Bougainville)',
-        'Pacific/Chatham' => 'temp: Nova Zelanda (Chatham)',
-        'Pacific/Easter' => 'temp: Chile (Insla da Pasca)',
-        'Pacific/Efate' => 'temp: Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'temp: Kiribati (Enderbury)',
-        'Pacific/Fakaofo' => 'temp: Tokelau (Fakaofo)',
-        'Pacific/Fiji' => 'temp: Fidschi (Fidschi)',
-        'Pacific/Funafuti' => 'temp: Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'temp: Ecuador (Galápagos)',
-        'Pacific/Gambier' => 'temp: Polinesia Franzosa (Rikitea)',
-        'Pacific/Guadalcanal' => 'temp: Inslas Salomonas (Honiara)',
-        'Pacific/Guam' => 'temp: Guam (Hagåtña)',
-        'Pacific/Honolulu' => 'temp: Stadis Unids da l’America (Honolulu)',
-        'Pacific/Kiritimati' => 'temp: Kiribati (Kiritimati)',
-        'Pacific/Kosrae' => 'temp: Micronesia (Tofol)',
-        'Pacific/Kwajalein' => 'temp: Inslas da Marshall (Kwajalein)',
-        'Pacific/Majuro' => 'temp: Inslas da Marshall (Majuro)',
-        'Pacific/Marquesas' => 'temp: Polinesia Franzosa (Marquesas)',
-        'Pacific/Midway' => 'temp: Inslas Pitschnas Perifericas dals Stadis Unids da l’America (Midway)',
-        'Pacific/Nauru' => 'temp: Nauru (Yaren)',
-        'Pacific/Niue' => 'temp: Niue (Alofi)',
-        'Pacific/Norfolk' => 'temp: Insla Norfolk (Kingston)',
-        'Pacific/Noumea' => 'temp: Nova Caledonia (Nouméa)',
-        'Pacific/Pago_Pago' => 'temp: Samoa Americana (Pago Pago)',
-        'Pacific/Palau' => 'temp: Palau (Melekok)',
-        'Pacific/Pitcairn' => 'temp: Pitcairn (Pitcairn)',
-        'Pacific/Ponape' => 'temp: Micronesia (Palikir)',
-        'Pacific/Port_Moresby' => 'temp: Papua Nova Guinea (Port Moresby)',
-        'Pacific/Rarotonga' => 'temp: Inslas Cook (Rarotonga)',
-        'Pacific/Saipan' => 'temp: Inslas Mariannas dal Nord (Saipan)',
-        'Pacific/Tahiti' => 'temp: Polinesia Franzosa (Tahiti)',
-        'Pacific/Tarawa' => 'temp: Kiribati (South Tarawa)',
-        'Pacific/Tongatapu' => 'temp: Tonga (Nukuʻalofa)',
-        'Pacific/Truk' => 'temp: Micronesia (Weno)',
-        'Pacific/Wake' => 'temp: Inslas Pitschnas Perifericas dals Stadis Unids da l’America (Wake)',
-        'Pacific/Wallis' => 'temp: Wallis & Futuna (Matāʻutu)',
+        'Africa/Abidjan' => 'temp dal meridian da Greenwich (Abidjan)',
+        'Africa/Accra' => 'temp dal meridian da Greenwich (Accra)',
+        'Africa/Addis_Ababa' => 'temp da l’Africa Orientala (Addis Abeba)',
+        'Africa/Algiers' => 'temp da l’Europa Centrala (Algier)',
+        'Africa/Asmera' => 'temp da l’Africa Orientala (Asmara)',
+        'Africa/Asmara' => 'temp da l’Africa Orientala (Asmara)',
+        'Africa/Bamako' => 'temp dal meridian da Greenwich (Bamako)',
+        'Africa/Bangui' => 'temp da l’Africa Occidentala (Bangui)',
+        'Africa/Banjul' => 'temp dal meridian da Greenwich (Banjul)',
+        'Africa/Bissau' => 'temp dal meridian da Greenwich (Bissau)',
+        'Africa/Blantyre' => 'temp da l’Africa Centrala (Blantyre)',
+        'Africa/Brazzaville' => 'temp da l’Africa Occidentala (Brazzaville)',
+        'Africa/Bujumbura' => 'temp da l’Africa Centrala (Bujumbura)',
+        'Africa/Cairo' => 'temp da l’Europa Orientala (Cairo)',
+        'Africa/Casablanca' => 'temp da l’Europa dal Vest (Casablanca)',
+        'Africa/Ceuta' => 'temp da l’Europa Centrala (Ceuta)',
+        'Africa/Conakry' => 'temp dal meridian da Greenwich (Conakry)',
+        'Africa/Dakar' => 'temp dal meridian da Greenwich (Dakar)',
+        'Africa/Dar_es_Salaam' => 'temp da l’Africa Orientala (Daressalam)',
+        'Africa/Djibouti' => 'temp da l’Africa Orientala (Dschibuti)',
+        'Africa/Douala' => 'temp da l’Africa Occidentala (Douala)',
+        'Africa/El_Aaiun' => 'temp da l’Europa dal Vest (El Aaiún)',
+        'Africa/Freetown' => 'temp dal meridian da Greenwich (Freetown)',
+        'Africa/Gaborone' => 'temp da l’Africa Centrala (Gaborone)',
+        'Africa/Harare' => 'temp da l’Africa Centrala (Harare)',
+        'Africa/Johannesburg' => 'temp normal da l’Africa Meridiunala (Johannesburg)',
+        'Africa/Juba' => 'temp da l’Africa Centrala (Juba)',
+        'Africa/Kampala' => 'temp da l’Africa Orientala (Kampala)',
+        'Africa/Khartoum' => 'temp da l’Africa Centrala (Khartum)',
+        'Africa/Kigali' => 'temp da l’Africa Centrala (Kigali)',
+        'Africa/Kinshasa' => 'temp da l’Africa Occidentala (Kinshasa)',
+        'Africa/Lagos' => 'temp da l’Africa Occidentala (Lagos)',
+        'Africa/Libreville' => 'temp da l’Africa Occidentala (Libreville)',
+        'Africa/Lome' => 'temp dal meridian da Greenwich (Lomé)',
+        'Africa/Luanda' => 'temp da l’Africa Occidentala (Luanda)',
+        'Africa/Lubumbashi' => 'temp da l’Africa Centrala (Lubumbashi)',
+        'Africa/Lusaka' => 'temp da l’Africa Centrala (Lusaka)',
+        'Africa/Malabo' => 'temp da l’Africa Occidentala (Malabo)',
+        'Africa/Maputo' => 'temp da l’Africa Centrala (Maputo)',
+        'Africa/Maseru' => 'temp normal da l’Africa Meridiunala (Maseru)',
+        'Africa/Mbabane' => 'temp normal da l’Africa Meridiunala (Mbabane)',
+        'Africa/Mogadishu' => 'temp da l’Africa Orientala (Mogadischu)',
+        'Africa/Monrovia' => 'temp dal meridian da Greenwich (Monrovia)',
+        'Africa/Nairobi' => 'temp da l’Africa Orientala (Nairobi)',
+        'Africa/Ndjamena' => 'temp da l’Africa Occidentala (N’Djamena)',
+        'Africa/Niamey' => 'temp da l’Africa Occidentala (Niamey)',
+        'Africa/Nouakchott' => 'temp dal meridian da Greenwich (Nouakchott)',
+        'Africa/Ouagadougou' => 'temp dal meridian da Greenwich (Ouagadougou)',
+        'Africa/Porto-Novo' => 'temp da l’Africa Occidentala (Porto-Novo)',
+        'Africa/Sao_Tome' => 'temp dal meridian da Greenwich (São Tomé)',
+        'Africa/Tripoli' => 'temp da l’Europa Orientala (Tripolis)',
+        'Africa/Tunis' => 'temp da l’Europa Centrala (Tunis)',
+        'Africa/Windhoek' => 'temp da l’Africa Centrala (Windhoek)',
+        'America/Adak' => 'temp dal Hawai e las Aleutinas (Adak)',
+        'America/Anchorage' => 'temp da l’Alasca (Anchorage)',
+        'America/Anguilla' => 'temp da l’Atlantic USA (Anguilla)',
+        'America/Antigua' => 'temp da l’Atlantic USA (Antigua)',
+        'America/Araguaina' => 'temp da la Brasilia (Araguaína)',
+        'America/Argentina/La_Rioja' => 'temp da l’Argentina (La Rioja)',
+        'America/Argentina/Rio_Gallegos' => 'temp da l’Argentina (Río Gallegos)',
+        'America/Argentina/Salta' => 'temp da l’Argentina (Salta)',
+        'America/Argentina/San_Juan' => 'temp da l’Argentina (San Juan)',
+        'America/Argentina/San_Luis' => 'temp da l’Argentina (San Luis)',
+        'America/Argentina/Tucuman' => 'temp da l’Argentina (Tucumán)',
+        'America/Argentina/Ushuaia' => 'temp da l’Argentina (Ushuaia)',
+        'America/Aruba' => 'temp da l’Atlantic USA (Aruba)',
+        'America/Asuncion' => 'temp dal Paraguai (Asunción)',
+        'America/Bahia' => 'temp da la Brasilia (Bahia)',
+        'America/Bahia_Banderas' => 'temp dal center USA (Bahía de Banderas)',
+        'America/Barbados' => 'temp da l’Atlantic USA (Barbados)',
+        'America/Belem' => 'temp da la Brasilia (Belém)',
+        'America/Belize' => 'temp dal center USA (Belize)',
+        'America/Blanc-Sablon' => 'temp da l’Atlantic USA (Blanc-Sablon)',
+        'America/Boa_Vista' => 'temp da l’Amazonas (Boa Vista)',
+        'America/Bogota' => 'temp da la Columbia (Bogotá)',
+        'America/Boise' => 'temp dals Rocky Mountains (Boise)',
+        'America/Buenos_Aires' => 'temp da l’Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'temp da l’Argentina (Buenos Aires)',
+        'America/Cambridge_Bay' => 'temp dals Rocky Mountains (Cambridge Bay)',
+        'America/Campo_Grande' => 'temp da l’Amazonas (Campo Grande)',
+        'America/Cancun' => 'temp da l’ost USA (Cancún)',
+        'America/Caracas' => 'temp da la Venezuela (Caracas)',
+        'America/Catamarca' => 'temp da l’Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'temp da l’Argentina (Catamarca)',
+        'America/Cayenne' => 'temp da la Guyana Franzosa (Cayenne)',
+        'America/Cayman' => 'temp da l’ost USA (Inslas Cayman)',
+        'America/Chicago' => 'temp dal center USA (Chicago)',
+        'America/Chihuahua' => 'temp dal center USA (Chihuahua)',
+        'America/Ciudad_Juarez' => 'temp dals Rocky Mountains (Ciudad Juárez)',
+        'America/Coral_Harbour' => 'temp da l’ost USA (Atikokan)',
+        'America/Atikokan' => 'temp da l’ost USA (Atikokan)',
+        'America/Cordoba' => 'temp da l’Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'temp da l’Argentina (Córdoba)',
+        'America/Costa_Rica' => 'temp dal center USA (Costa Rica)',
+        'America/Coyhaique' => 'temp dal Chile (Coyhaique)',
+        'America/Creston' => 'temp dals Rocky Mountains (Creston)',
+        'America/Cuiaba' => 'temp da l’Amazonas (Cuiabá)',
+        'America/Curacao' => 'temp da l’Atlantic USA (Curaçao)',
+        'America/Danmarkshavn' => 'temp dal meridian da Greenwich (Danmarkshavn)',
+        'America/Dawson' => 'temp dal Yukon (Dawson)',
+        'America/Dawson_Creek' => 'temp dals Rocky Mountains (Dawson Creek)',
+        'America/Denver' => 'temp dals Rocky Mountains (Denver)',
+        'America/Detroit' => 'temp da l’ost USA (Detroit)',
+        'America/Dominica' => 'temp da l’Atlantic USA (Dominica)',
+        'America/Edmonton' => 'temp dals Rocky Mountains (Edmonton)',
+        'America/Eirunepe' => 'Brasilia (temp local) (Eirunepé)',
+        'America/El_Salvador' => 'temp dal center USA (El Salvador)',
+        'America/Fort_Nelson' => 'temp dals Rocky Mountains (Fort Nelson)',
+        'America/Fortaleza' => 'temp da la Brasilia (Fortaleza)',
+        'America/Glace_Bay' => 'temp da l’Atlantic USA (Glace Bay)',
+        'America/Godthab' => 'Grönlanda (temp local) (Nuuk)',
+        'America/Nuuk' => 'Grönlanda (temp local) (Nuuk)',
+        'America/Goose_Bay' => 'temp da l’Atlantic USA (Goose Bay)',
+        'America/Grand_Turk' => 'temp da l’ost USA (Grand Turk)',
+        'America/Grenada' => 'temp da l’Atlantic USA (Grenada)',
+        'America/Guadeloupe' => 'temp da l’Atlantic USA (Guadalupa)',
+        'America/Guatemala' => 'temp dal center USA (Guatemala)',
+        'America/Guayaquil' => 'temp da l’Ecuador (Guayaquil)',
+        'America/Guyana' => 'temp da la Guyana',
+        'America/Halifax' => 'temp da l’Atlantic USA (Halifax)',
+        'America/Havana' => 'temp da la Cuba (Havanna)',
+        'America/Hermosillo' => 'temp mexican dal Pacific (Hermosillo)',
+        'America/Indiana/Knox' => 'temp dal center USA (Knox, Indiana)',
+        'America/Indiana/Marengo' => 'temp da l’ost USA (Marengo, Indiana)',
+        'America/Indiana/Petersburg' => 'temp da l’ost USA (Petersburg, Indiana)',
+        'America/Indiana/Tell_City' => 'temp dal center USA (Tell City, Indiana)',
+        'America/Indiana/Vevay' => 'temp da l’ost USA (Vevay, Indiana)',
+        'America/Indiana/Vincennes' => 'temp da l’ost USA (Vincennes, Indiana)',
+        'America/Indiana/Winamac' => 'temp da l’ost USA (Winamac, Indiana)',
+        'America/Indianapolis' => 'temp da l’ost USA (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'temp da l’ost USA (Indianapolis)',
+        'America/Inuvik' => 'temp dals Rocky Mountains (Inuvik)',
+        'America/Iqaluit' => 'temp da l’ost USA (Iqaluit)',
+        'America/Jamaica' => 'temp da l’ost USA (Giamaica)',
+        'America/Jujuy' => 'temp da l’Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'temp da l’Argentina (Jujuy)',
+        'America/Juneau' => 'temp da l’Alasca (Juneau)',
+        'America/Kentucky/Monticello' => 'temp da l’ost USA (Monticello, Kentucky)',
+        'America/Kralendijk' => 'temp da l’Atlantic USA (Kralendijk)',
+        'America/La_Paz' => 'temp da la Bolivia (La Paz)',
+        'America/Lima' => 'temp dal Peru (Lima)',
+        'America/Los_Angeles' => 'temp dal Pacific USA (Los Angeles)',
+        'America/Louisville' => 'temp da l’ost USA (Louisville)',
+        'America/Kentucky/Louisville' => 'temp da l’ost USA (Louisville)',
+        'America/Lower_Princes' => 'temp da l’Atlantic USA (Lower Prince’s Quarter)',
+        'America/Maceio' => 'temp da la Brasilia (Maceió)',
+        'America/Managua' => 'temp dal center USA (Managua)',
+        'America/Manaus' => 'temp da l’Amazonas (Manaus)',
+        'America/Marigot' => 'temp da l’Atlantic USA (Marigot)',
+        'America/Martinique' => 'temp da l’Atlantic USA (Martinica)',
+        'America/Matamoros' => 'temp dal center USA (Matamoros)',
+        'America/Mazatlan' => 'temp mexican dal Pacific (Mazatlán)',
+        'America/Mendoza' => 'temp da l’Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'temp da l’Argentina (Mendoza)',
+        'America/Menominee' => 'temp dal center USA (Menominee)',
+        'America/Merida' => 'temp dal center USA (Mérida)',
+        'America/Metlakatla' => 'temp da l’Alasca (Metlakatla)',
+        'America/Mexico_City' => 'temp dal center USA (Citad dal Mexico)',
+        'America/Miquelon' => 'temp da Saint Pierre e Miquelon',
+        'America/Moncton' => 'temp da l’Atlantic USA (Moncton)',
+        'America/Monterrey' => 'temp dal center USA (Monterrey)',
+        'America/Montevideo' => 'temp da l’Uruguai (Montevideo)',
+        'America/Montserrat' => 'temp da l’Atlantic USA (Montserrat)',
+        'America/Nassau' => 'temp da l’ost USA (Nassau)',
+        'America/New_York' => 'temp da l’ost USA (New York)',
+        'America/Nome' => 'temp da l’Alasca (Nome)',
+        'America/Noronha' => 'temp da Fernando de Noronha',
+        'America/North_Dakota/Beulah' => 'temp dal center USA (Beulah, Dakota dal Nord)',
+        'America/North_Dakota/Center' => 'temp dal center USA (Center, Dakota dal Nord)',
+        'America/North_Dakota/New_Salem' => 'temp dal center USA (New Salem, Dakota dal Nord)',
+        'America/Ojinaga' => 'temp dal center USA (Ojinaga)',
+        'America/Panama' => 'temp da l’ost USA (Panama)',
+        'America/Paramaribo' => 'temp dal Surinam (Paramaribo)',
+        'America/Phoenix' => 'temp dals Rocky Mountains (Phoenix)',
+        'America/Port-au-Prince' => 'temp da l’ost USA (Port-au-Prince)',
+        'America/Port_of_Spain' => 'temp da l’Atlantic USA (Port of Spain)',
+        'America/Porto_Velho' => 'temp da l’Amazonas (Porto Velho)',
+        'America/Puerto_Rico' => 'temp da l’Atlantic USA (Puerto Rico)',
+        'America/Punta_Arenas' => 'temp dal Chile (Punta Arenas)',
+        'America/Rankin_Inlet' => 'temp dal center USA (Rankin Inlet)',
+        'America/Recife' => 'temp da la Brasilia (Recife)',
+        'America/Regina' => 'temp dal center USA (Regina)',
+        'America/Resolute' => 'temp dal center USA (Resolute)',
+        'America/Rio_Branco' => 'Brasilia (temp local) (Rio Branco)',
+        'America/Santarem' => 'temp da la Brasilia (Santarém)',
+        'America/Santiago' => 'temp dal Chile (Santiago)',
+        'America/Santo_Domingo' => 'temp da l’Atlantic USA (Santo Domingo)',
+        'America/Sao_Paulo' => 'temp da la Brasilia (São Paulo)',
+        'America/Scoresbysund' => 'Grönlanda (temp local) (Ittoqqortoormiit)',
+        'America/Sitka' => 'temp da l’Alasca (Sitka)',
+        'America/St_Barthelemy' => 'temp da l’Atlantic USA (Son Barthélemy)',
+        'America/St_Johns' => 'temp da la Terranova (St. John’s)',
+        'America/St_Kitts' => 'temp da l’Atlantic USA (Saint Kitts)',
+        'America/St_Lucia' => 'temp da l’Atlantic USA (Sontga Lucia)',
+        'America/St_Thomas' => 'temp da l’Atlantic USA (Saint Thomas)',
+        'America/St_Vincent' => 'temp da l’Atlantic USA (Son Vincenz)',
+        'America/Swift_Current' => 'temp dal center USA (Swift Current)',
+        'America/Tegucigalpa' => 'temp dal center USA (Tegucigalpa)',
+        'America/Thule' => 'temp da l’Atlantic USA (Thule)',
+        'America/Tijuana' => 'temp dal Pacific USA (Tijuana)',
+        'America/Toronto' => 'temp da l’ost USA (Toronto)',
+        'America/Tortola' => 'temp da l’Atlantic USA (Tortola)',
+        'America/Vancouver' => 'temp dal Pacific USA (Vancouver)',
+        'America/Whitehorse' => 'temp dal Yukon (Whitehorse)',
+        'America/Winnipeg' => 'temp dal center USA (Winnipeg)',
+        'America/Yakutat' => 'temp da l’Alasca (Yakutat)',
+        'Antarctica/Casey' => 'temp dal vest da l’Australia (Casey)',
+        'Antarctica/Davis' => 'temp da Davis',
+        'Antarctica/DumontDUrville' => 'temp da Dumont d’Urville',
+        'Antarctica/Macquarie' => 'temp da l’ost da l’Australia (Macquarie)',
+        'Antarctica/Mawson' => 'temp da Mawson',
+        'Antarctica/McMurdo' => 'temp da la Nova Zelanda (McMurdo)',
+        'Antarctica/Palmer' => 'temp dal Chile (Palmer)',
+        'Antarctica/Rothera' => 'temp da Rothera',
+        'Antarctica/Syowa' => 'temp da Shōwa (Showa)',
+        'Antarctica/Troll' => 'temp dal meridian da Greenwich (Troll)',
+        'Antarctica/Vostok' => 'temp da Vostok',
+        'Arctic/Longyearbyen' => 'temp da l’Europa Centrala (Longyearbyen)',
+        'Asia/Aden' => 'temp arab (Aden)',
+        'Asia/Almaty' => 'temp dal Kasachstan (Almaty)',
+        'Asia/Amman' => 'temp da l’Europa Orientala (Amman)',
+        'Asia/Anadyr' => 'Russia (temp local) (Anadyr)',
+        'Asia/Aqtau' => 'temp dal Kasachstan (Aqtau)',
+        'Asia/Aqtobe' => 'temp dal Kasachstan (Aqtobe)',
+        'Asia/Ashgabat' => 'temp dal Turkmenistan (Aşgabat)',
+        'Asia/Atyrau' => 'temp dal Kasachstan (Atyrau)',
+        'Asia/Baghdad' => 'temp arab (Bagdad)',
+        'Asia/Bahrain' => 'temp arab (Bahrain)',
+        'Asia/Baku' => 'temp da l’Aserbaidschan (Baku)',
+        'Asia/Bangkok' => 'temp da l’Indochina (Bangkok)',
+        'Asia/Barnaul' => 'temp da Krasnojarsk (Barnaul)',
+        'Asia/Beirut' => 'temp da l’Europa Orientala (Beirut)',
+        'Asia/Bishkek' => 'temp dal Kirghistan (Bischkek)',
+        'Asia/Brunei' => 'temp dal Brunei',
+        'Asia/Calcutta' => 'temp normal da l’India (Calcutta)',
+        'Asia/Kolkata' => 'temp normal da l’India (Calcutta)',
+        'Asia/Chita' => 'temp da Jakutsk (Tschita)',
+        'Asia/Colombo' => 'temp normal da l’India (Colombo)',
+        'Asia/Damascus' => 'temp da l’Europa Orientala (Damascus)',
+        'Asia/Dhaka' => 'temp dal Bangladesch (Dhaka)',
+        'Asia/Dili' => 'temp dal Timor da l’Ost (Dili)',
+        'Asia/Dubai' => 'temp normal dal Golf (Dubai)',
+        'Asia/Dushanbe' => 'temp dal Tadschikistan (Duschanbe)',
+        'Asia/Famagusta' => 'temp da l’Europa Orientala (Famagusta)',
+        'Asia/Gaza' => 'temp da l’Europa Orientala (Gaza)',
+        'Asia/Hebron' => 'temp da l’Europa Orientala (Hebron)',
+        'Asia/Hong_Kong' => 'temp dal Hongkong',
+        'Asia/Hovd' => 'temp da Hovd (Khovd)',
+        'Asia/Irkutsk' => 'temp dad Irkutsk',
+        'Asia/Jakarta' => 'temp dal vest da l’Indonesia (Jakarta)',
+        'Asia/Jayapura' => 'temp da l’ost da l’Indonesia (Jayapura)',
+        'Asia/Jerusalem' => 'temp da l’Israel (Jerusalem)',
+        'Asia/Kabul' => 'temp da l’Afganistan (Kabul)',
+        'Asia/Kamchatka' => 'Russia (temp local) (Kamtschatka)',
+        'Asia/Karachi' => 'temp dal Pakistan (Karatschi)',
+        'Asia/Katmandu' => 'temp dal Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'temp dal Nepal (Kathmandu)',
+        'Asia/Khandyga' => 'temp da Jakutsk (Chandyga)',
+        'Asia/Krasnoyarsk' => 'temp da Krasnojarsk',
+        'Asia/Kuala_Lumpur' => 'temp da la Malaisia (Kuala Lumpur)',
+        'Asia/Kuching' => 'temp da la Malaisia (Kuching)',
+        'Asia/Kuwait' => 'temp arab (Kuwait)',
+        'Asia/Macau' => 'temp da la China (Macao)',
+        'Asia/Magadan' => 'temp da Magadan',
+        'Asia/Makassar' => 'temp dal center da l’Indonesia (Makassar)',
+        'Asia/Manila' => 'temp da las Filippinas (Manila)',
+        'Asia/Muscat' => 'temp normal dal Golf (Mascat)',
+        'Asia/Nicosia' => 'temp da l’Europa Orientala (Nicosia)',
+        'Asia/Novokuznetsk' => 'temp da Krasnojarsk (Novokuznetsk)',
+        'Asia/Novosibirsk' => 'temp da Krasnojarsk (Novosibirsk)',
+        'Asia/Omsk' => 'temp dad Omsk',
+        'Asia/Oral' => 'temp dal Kasachstan (Oral)',
+        'Asia/Phnom_Penh' => 'temp da l’Indochina (Phnom Penh)',
+        'Asia/Pontianak' => 'temp dal vest da l’Indonesia (Pontianak)',
+        'Asia/Pyongyang' => 'temp da la Corea (Pjöngjang)',
+        'Asia/Qatar' => 'temp arab (Qatar)',
+        'Asia/Qostanay' => 'temp dal Kasachstan (Qostanai)',
+        'Asia/Qyzylorda' => 'temp dal Kasachstan (Qysylorda)',
+        'Asia/Rangoon' => 'temp dal Myanmar (Yangon)',
+        'Asia/Yangon' => 'temp dal Myanmar (Yangon)',
+        'Asia/Riyadh' => 'temp arab (Riad)',
+        'Asia/Saigon' => 'temp da l’Indochina (Citad da Ho Chi Minh)',
+        'Asia/Ho_Chi_Minh' => 'temp da l’Indochina (Citad da Ho Chi Minh)',
+        'Asia/Sakhalin' => 'temp da Magadan (Sachalin)',
+        'Asia/Samarkand' => 'temp da l’Usbekistan (Samarcanda)',
+        'Asia/Seoul' => 'temp da la Corea (Seoul)',
+        'Asia/Shanghai' => 'temp da la China (Schanghai)',
+        'Asia/Singapore' => 'temp normal dal Singapur',
+        'Asia/Srednekolymsk' => 'temp da Magadan (Srednekolymsk)',
+        'Asia/Taipei' => 'temp dal Taiwan (Taipei)',
+        'Asia/Tashkent' => 'temp da l’Usbekistan (Taschkent)',
+        'Asia/Tbilisi' => 'temp da la Georgia (Tiflis)',
+        'Asia/Tehran' => 'temp da l’Iran (Teheran)',
+        'Asia/Thimphu' => 'temp dal Butan (Thimphu)',
+        'Asia/Tokyo' => 'temp dal Giapun (Tokio)',
+        'Asia/Tomsk' => 'temp da Krasnojarsk (Tomsk)',
+        'Asia/Ulaanbaatar' => 'temp dad Ulaanbaatar',
+        'Asia/Urumqi' => 'China (temp local) (Ürümqi)',
+        'Asia/Ust-Nera' => 'temp da Vladivostok (Ust-Nera)',
+        'Asia/Vientiane' => 'temp da l’Indochina (Vientiane)',
+        'Asia/Vladivostok' => 'temp da Vladivostok',
+        'Asia/Yakutsk' => 'temp da Jakutsk',
+        'Asia/Yekaterinburg' => 'temp da Jekaterinburg',
+        'Asia/Yerevan' => 'temp da l’Armenia (Jerevan)',
+        'Atlantic/Azores' => 'temp da las Azoras',
+        'Atlantic/Bermuda' => 'temp da l’Atlantic USA (Bermudas)',
+        'Atlantic/Canary' => 'temp da l’Europa dal Vest (Inslas Canarias)',
+        'Atlantic/Cape_Verde' => 'temp dal Cap Verd',
+        'Atlantic/Faeroe' => 'temp da l’Europa dal Vest (Inslas Feroe)',
+        'Atlantic/Faroe' => 'temp da l’Europa dal Vest (Inslas Feroe)',
+        'Atlantic/Madeira' => 'temp da l’Europa dal Vest (Madeira)',
+        'Atlantic/Reykjavik' => 'temp dal meridian da Greenwich (Reykjavík)',
+        'Atlantic/South_Georgia' => 'temp da la Georgia dal Sid',
+        'Atlantic/St_Helena' => 'temp dal meridian da Greenwich (Sontg’elena)',
+        'Atlantic/Stanley' => 'temp da las Inslas Falkland (Stanley)',
+        'Australia/Adelaide' => 'temp dal center da l’Australia (Adelaide)',
+        'Australia/Brisbane' => 'temp da l’ost da l’Australia (Brisbane)',
+        'Australia/Broken_Hill' => 'temp dal center da l’Australia (Broken Hill)',
+        'Australia/Darwin' => 'temp dal center da l’Australia (Darwin)',
+        'Australia/Eucla' => 'temp dal center-vest da l’Australia (Eucla)',
+        'Australia/Hobart' => 'temp da l’ost da l’Australia (Hobart)',
+        'Australia/Lindeman' => 'temp da l’ost da l’Australia (Lindeman)',
+        'Australia/Lord_Howe' => 'temp da Lord Howe',
+        'Australia/Melbourne' => 'temp da l’ost da l’Australia (Melbourne)',
+        'Australia/Perth' => 'temp dal vest da l’Australia (Perth)',
+        'Australia/Sydney' => 'temp da l’ost da l’Australia (Sydney)',
+        'Etc/GMT' => 'temp dal meridian da Greenwich',
+        'Etc/UTC' => 'temp universal coordinà',
+        'Europe/Amsterdam' => 'temp da l’Europa Centrala (Amsterdam)',
+        'Europe/Andorra' => 'temp da l’Europa Centrala (Andorra)',
+        'Europe/Astrakhan' => 'Russia (temp local) (Astrachan)',
+        'Europe/Athens' => 'temp da l’Europa Orientala (Athen)',
+        'Europe/Belgrade' => 'temp da l’Europa Centrala (Belgrad)',
+        'Europe/Berlin' => 'temp da l’Europa Centrala (Berlin)',
+        'Europe/Bratislava' => 'temp da l’Europa Centrala (Bratislava)',
+        'Europe/Brussels' => 'temp da l’Europa Centrala (Brüssel)',
+        'Europe/Bucharest' => 'temp da l’Europa Orientala (Bucarest)',
+        'Europe/Budapest' => 'temp da l’Europa Centrala (Budapest)',
+        'Europe/Busingen' => 'temp da l’Europa Centrala (Büsingen)',
+        'Europe/Chisinau' => 'temp da l’Europa Orientala (Chișinău)',
+        'Europe/Copenhagen' => 'temp da l’Europa Centrala (Copenhagen)',
+        'Europe/Dublin' => 'temp dal meridian da Greenwich (Dublin)',
+        'Europe/Gibraltar' => 'temp da l’Europa Centrala (Gibraltar)',
+        'Europe/Guernsey' => 'temp dal meridian da Greenwich (Guernsey)',
+        'Europe/Helsinki' => 'temp da l’Europa Orientala (Helsinki)',
+        'Europe/Isle_of_Man' => 'temp dal meridian da Greenwich (Insla da Man)',
+        'Europe/Istanbul' => 'Tirchia (temp local) (Istanbul)',
+        'Europe/Jersey' => 'temp dal meridian da Greenwich (Jersey)',
+        'Europe/Kaliningrad' => 'temp da l’Europa Orientala (Kaliningrad)',
+        'Europe/Kiev' => 'temp da l’Europa Orientala (Kiev)',
+        'Europe/Kyiv' => 'temp da l’Europa Orientala (Kiev)',
+        'Europe/Kirov' => 'temp da Moscau (Kirov)',
+        'Europe/Lisbon' => 'temp da l’Europa dal Vest (Lissabon)',
+        'Europe/Ljubljana' => 'temp da l’Europa Centrala (Ljubljana)',
+        'Europe/London' => 'temp dal meridian da Greenwich (Londra)',
+        'Europe/Luxembourg' => 'temp da l’Europa Centrala (Luxemburg)',
+        'Europe/Madrid' => 'temp da l’Europa Centrala (Madrid)',
+        'Europe/Malta' => 'temp da l’Europa Centrala (Malta)',
+        'Europe/Mariehamn' => 'temp da l’Europa Orientala (Mariehamn)',
+        'Europe/Minsk' => 'temp da Moscau (Minsk)',
+        'Europe/Monaco' => 'temp da l’Europa Centrala (Monaco)',
+        'Europe/Moscow' => 'temp da Moscau',
+        'Europe/Oslo' => 'temp da l’Europa Centrala (Oslo)',
+        'Europe/Paris' => 'temp da l’Europa Centrala (Paris)',
+        'Europe/Podgorica' => 'temp da l’Europa Centrala (Podgorica)',
+        'Europe/Prague' => 'temp da l’Europa Centrala (Prag)',
+        'Europe/Riga' => 'temp da l’Europa Orientala (Riga)',
+        'Europe/Rome' => 'temp da l’Europa Centrala (Roma)',
+        'Europe/Samara' => 'Russia (temp local) (Samara)',
+        'Europe/San_Marino' => 'temp da l’Europa Centrala (San Marino)',
+        'Europe/Sarajevo' => 'temp da l’Europa Centrala (Sarajevo)',
+        'Europe/Saratov' => 'Russia (temp local) (Saratov)',
+        'Europe/Simferopol' => 'temp da Moscau (Simferopol)',
+        'Europe/Skopje' => 'temp da l’Europa Centrala (Skopje)',
+        'Europe/Sofia' => 'temp da l’Europa Orientala (Sofia)',
+        'Europe/Stockholm' => 'temp da l’Europa Centrala (Stockholm)',
+        'Europe/Tallinn' => 'temp da l’Europa Orientala (Tallinn)',
+        'Europe/Tirane' => 'temp da l’Europa Centrala (Tirana)',
+        'Europe/Ulyanovsk' => 'Russia (temp local) (Ulyanovsk)',
+        'Europe/Vaduz' => 'temp da l’Europa Centrala (Vaduz)',
+        'Europe/Vatican' => 'temp da l’Europa Centrala (Vatican)',
+        'Europe/Vienna' => 'temp da l’Europa Centrala (Vienna)',
+        'Europe/Vilnius' => 'temp da l’Europa Orientala (Vilnius)',
+        'Europe/Volgograd' => 'temp da Moscau (Volgograd)',
+        'Europe/Warsaw' => 'temp da l’Europa Centrala (Varsovia)',
+        'Europe/Zagreb' => 'temp da l’Europa Centrala (Zagreb)',
+        'Europe/Zurich' => 'temp da l’Europa Centrala (Turitg)',
+        'Indian/Antananarivo' => 'temp da l’Africa Orientala (Antananarivo)',
+        'Indian/Chagos' => 'temp da l’Ocean Indic (Chagos)',
+        'Indian/Christmas' => 'temp da l’Insla da Nadal',
+        'Indian/Cocos' => 'temp da las Inslas Cocos',
+        'Indian/Comoro' => 'temp da l’Africa Orientala (Comoras)',
+        'Indian/Kerguelen' => 'temp dals Territoris Franzos Meridiunals ed Antarctics (Kerguelen)',
+        'Indian/Mahe' => 'temp da las Seychellas (Mahé)',
+        'Indian/Maldives' => 'temp da las Maledivas',
+        'Indian/Mauritius' => 'temp dal Mauritius',
+        'Indian/Mayotte' => 'temp da l’Africa Orientala (Mayotte)',
+        'Indian/Reunion' => 'temp da la Réunion',
+        'Pacific/Apia' => 'temp da la Samoa (Apia)',
+        'Pacific/Auckland' => 'temp da la Nova Zelanda (Auckland)',
+        'Pacific/Bougainville' => 'temp da la Papua Nova Guinea (Bougainville)',
+        'Pacific/Chatham' => 'temp da las Inslas Chatham',
+        'Pacific/Easter' => 'temp da l’Insla da Pasca',
+        'Pacific/Efate' => 'temp dal Vanuatu (Efate)',
+        'Pacific/Enderbury' => 'temp da las Inslas Fenix (Canton)',
+        'Pacific/Kanton' => 'temp da las Inslas Fenix (Canton)',
+        'Pacific/Fakaofo' => 'temp da Tokelau (Fakaofo)',
+        'Pacific/Fiji' => 'temp dal Fidschi',
+        'Pacific/Funafuti' => 'temp da las Inslas da Tuvalu (Funafuti)',
+        'Pacific/Galapagos' => 'temp da las Inslas Galápagos',
+        'Pacific/Gambier' => 'temp da las Inslas Gambier',
+        'Pacific/Guadalcanal' => 'temp da las Inslas da Salomon (Guadalcanal)',
+        'Pacific/Guam' => 'temp dals Chamorro (Guam)',
+        'Pacific/Honolulu' => 'temp normal dal Hawai e las Aleutinas (Honolulu)',
+        'Pacific/Kiritimati' => 'temp da las Inslas da la Lingia (Kiritimati)',
+        'Pacific/Kosrae' => 'temp da Kosrae',
+        'Pacific/Kwajalein' => 'temp da las Inslas da Marshall (Kwajalein)',
+        'Pacific/Majuro' => 'temp da las Inslas da Marshall (Majuro)',
+        'Pacific/Marquesas' => 'temp da las Inslas Marquesas',
+        'Pacific/Midway' => 'temp da la Samoa Americana (Midway)',
+        'Pacific/Nauru' => 'temp da Nauru',
+        'Pacific/Niue' => 'temp da Niue',
+        'Pacific/Norfolk' => 'temp da l’Insla Norfolk',
+        'Pacific/Noumea' => 'temp da la Nova Caledonia (Nouméa)',
+        'Pacific/Pago_Pago' => 'temp da la Samoa Americana (Pago Pago)',
+        'Pacific/Palau' => 'temp da Palau',
+        'Pacific/Pitcairn' => 'temp da las Inslas Pitcairn',
+        'Pacific/Ponape' => 'temp da Pohnpei',
+        'Pacific/Pohnpei' => 'temp da Pohnpei',
+        'Pacific/Port_Moresby' => 'temp da la Papua Nova Guinea (Port Moresby)',
+        'Pacific/Rarotonga' => 'temp da las Inslas Cook (Rarotonga)',
+        'Pacific/Saipan' => 'temp dals Chamorro (Saipan)',
+        'Pacific/Tahiti' => 'temp da Tahiti',
+        'Pacific/Tarawa' => 'temp da las Inslas Gilbert (Tarawa)',
+        'Pacific/Tongatapu' => 'temp da Tonga (Tongatapu)',
+        'Pacific/Truk' => 'temp da Chuuk',
+        'Pacific/Chuuk' => 'temp da Chuuk',
+        'Pacific/Wake' => 'temp da l’Insla Wake',
+        'Pacific/Wallis' => 'temp da Wallis e Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ro.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ro.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ro.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ro.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,28 +2,29 @@
 
 return [
     'Names' => [
-        'Africa/Abidjan' => 'Ora de Greenwhich (Abidjan)',
-        'Africa/Accra' => 'Ora de Greenwhich (Accra)',
+        'Africa/Abidjan' => 'Ora de Greenwich (Abidjan)',
+        'Africa/Accra' => 'Ora de Greenwich (Accra)',
         'Africa/Addis_Ababa' => 'Ora Africii Orientale (Addis Abeba)',
         'Africa/Algiers' => 'Ora Europei Centrale (Alger)',
         'Africa/Asmera' => 'Ora Africii Orientale (Asmara)',
-        'Africa/Bamako' => 'Ora de Greenwhich (Bamako)',
+        'Africa/Asmara' => 'Ora Africii Orientale (Asmara)',
+        'Africa/Bamako' => 'Ora de Greenwich (Bamako)',
         'Africa/Bangui' => 'Ora Africii Occidentale (Bangui)',
-        'Africa/Banjul' => 'Ora de Greenwhich (Banjul)',
-        'Africa/Bissau' => 'Ora de Greenwhich (Bissau)',
+        'Africa/Banjul' => 'Ora de Greenwich (Banjul)',
+        'Africa/Bissau' => 'Ora de Greenwich (Bissau)',
         'Africa/Blantyre' => 'Ora Africii Centrale (Blantyre)',
         'Africa/Brazzaville' => 'Ora Africii Occidentale (Brazzaville)',
         'Africa/Bujumbura' => 'Ora Africii Centrale (Bujumbura)',
         'Africa/Cairo' => 'Ora Europei de Est (Cairo)',
         'Africa/Casablanca' => 'Ora Europei de Vest (Casablanca)',
         'Africa/Ceuta' => 'Ora Europei Centrale (Ceuta)',
-        'Africa/Conakry' => 'Ora de Greenwhich (Conakry)',
-        'Africa/Dakar' => 'Ora de Greenwhich (Dakar)',
+        'Africa/Conakry' => 'Ora de Greenwich (Conakry)',
+        'Africa/Dakar' => 'Ora de Greenwich (Dakar)',
         'Africa/Dar_es_Salaam' => 'Ora Africii Orientale (Dar es Salaam)',
         'Africa/Djibouti' => 'Ora Africii Orientale (Djibouti)',
         'Africa/Douala' => 'Ora Africii Occidentale (Douala)',
-        'Africa/El_Aaiun' => 'Ora Europei de Vest (El Aaiun)',
-        'Africa/Freetown' => 'Ora de Greenwhich (Freetown)',
+        'Africa/El_Aaiun' => 'Ora Europei de Vest (El Aaiún)',
+        'Africa/Freetown' => 'Ora de Greenwich (Freetown)',
         'Africa/Gaborone' => 'Ora Africii Centrale (Gaborone)',
         'Africa/Harare' => 'Ora Africii Centrale (Harare)',
         'Africa/Johannesburg' => 'Ora Africii Meridionale (Johannesburg)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Ora Africii Occidentale (Kinshasa)',
         'Africa/Lagos' => 'Ora Africii Occidentale (Lagos)',
         'Africa/Libreville' => 'Ora Africii Occidentale (Libreville)',
-        'Africa/Lome' => 'Ora de Greenwhich (Lome)',
+        'Africa/Lome' => 'Ora de Greenwich (Lomé)',
         'Africa/Luanda' => 'Ora Africii Occidentale (Luanda)',
         'Africa/Lubumbashi' => 'Ora Africii Centrale (Lubumbashi)',
         'Africa/Lusaka' => 'Ora Africii Centrale (Lusaka)',
@@ -43,14 +44,14 @@
         'Africa/Maseru' => 'Ora Africii Meridionale (Maseru)',
         'Africa/Mbabane' => 'Ora Africii Meridionale (Mbabane)',
         'Africa/Mogadishu' => 'Ora Africii Orientale (Mogadiscio)',
-        'Africa/Monrovia' => 'Ora de Greenwhich (Monrovia)',
+        'Africa/Monrovia' => 'Ora de Greenwich (Monrovia)',
         'Africa/Nairobi' => 'Ora Africii Orientale (Nairobi)',
         'Africa/Ndjamena' => 'Ora Africii Occidentale (N’Djamena)',
         'Africa/Niamey' => 'Ora Africii Occidentale (Niamey)',
-        'Africa/Nouakchott' => 'Ora de Greenwhich (Nouakchott)',
-        'Africa/Ouagadougou' => 'Ora de Greenwhich (Ouagadougou)',
+        'Africa/Nouakchott' => 'Ora de Greenwich (Nouakchott)',
+        'Africa/Ouagadougou' => 'Ora de Greenwich (Ouagadougou)',
         'Africa/Porto-Novo' => 'Ora Africii Occidentale (Porto-Novo)',
-        'Africa/Sao_Tome' => 'Ora de Greenwhich (Sao Tomé)',
+        'Africa/Sao_Tome' => 'Ora de Greenwich (Sao Tomé)',
         'Africa/Tripoli' => 'Ora Europei de Est (Tripoli)',
         'Africa/Tunis' => 'Ora Europei Centrale (Tunis)',
         'Africa/Windhoek' => 'Ora Africii Centrale (Windhoek)',
@@ -58,55 +59,61 @@
         'America/Anchorage' => 'Ora din Alaska (Anchorage)',
         'America/Anguilla' => 'Ora zonei Atlantic nord-americane (Anguilla)',
         'America/Antigua' => 'Ora zonei Atlantic nord-americane (Antigua)',
-        'America/Araguaina' => 'Ora Brasiliei (Araguaina)',
+        'America/Araguaina' => 'Ora Brasiliei (Araguaína)',
         'America/Argentina/La_Rioja' => 'Ora Argentinei (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Ora Argentinei (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Ora Argentinei (Río Gallegos)',
         'America/Argentina/Salta' => 'Ora Argentinei (Salta)',
         'America/Argentina/San_Juan' => 'Ora Argentinei (San Juan)',
         'America/Argentina/San_Luis' => 'Ora Argentinei (San Luis)',
-        'America/Argentina/Tucuman' => 'Ora Argentinei (Tucuman)',
+        'America/Argentina/Tucuman' => 'Ora Argentinei (Tucumán)',
         'America/Argentina/Ushuaia' => 'Ora Argentinei (Ushuaia)',
         'America/Aruba' => 'Ora zonei Atlantic nord-americane (Aruba)',
         'America/Asuncion' => 'Ora din Paraguay (Asunción)',
         'America/Bahia' => 'Ora Brasiliei (Bahia)',
         'America/Bahia_Banderas' => 'Ora centrală nord-americană (Bahia Banderas)',
         'America/Barbados' => 'Ora zonei Atlantic nord-americane (Barbados)',
-        'America/Belem' => 'Ora Brasiliei (Belem)',
+        'America/Belem' => 'Ora Brasiliei (Belém)',
         'America/Belize' => 'Ora centrală nord-americană (Belize)',
         'America/Blanc-Sablon' => 'Ora zonei Atlantic nord-americane (Blanc-Sablon)',
         'America/Boa_Vista' => 'Ora Amazonului (Boa Vista)',
-        'America/Bogota' => 'Ora Columbiei (Bogota)',
+        'America/Bogota' => 'Ora Columbiei (Bogotá)',
         'America/Boise' => 'Ora zonei montane nord-americane (Boise)',
         'America/Buenos_Aires' => 'Ora Argentinei (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Ora Argentinei (Buenos Aires)',
         'America/Cambridge_Bay' => 'Ora zonei montane nord-americane (Cambridge Bay)',
         'America/Campo_Grande' => 'Ora Amazonului (Campo Grande)',
         'America/Cancun' => 'Ora orientală nord-americană (Cancun)',
         'America/Caracas' => 'Ora Venezuelei (Caracas)',
         'America/Catamarca' => 'Ora Argentinei (Catamarca)',
+        'America/Argentina/Catamarca' => 'Ora Argentinei (Catamarca)',
         'America/Cayenne' => 'Ora din Guyana Franceză (Cayenne)',
         'America/Cayman' => 'Ora orientală nord-americană (Cayman)',
         'America/Chicago' => 'Ora centrală nord-americană (Chicago)',
         'America/Chihuahua' => 'Ora centrală nord-americană (Chihuahua)',
         'America/Ciudad_Juarez' => 'Ora zonei montane nord-americane (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Ora orientală nord-americană (Atikokan)',
-        'America/Cordoba' => 'Ora Argentinei (Cordoba)',
+        'America/Atikokan' => 'Ora orientală nord-americană (Atikokan)',
+        'America/Cordoba' => 'Ora Argentinei (Córdoba)',
+        'America/Argentina/Cordoba' => 'Ora Argentinei (Córdoba)',
         'America/Costa_Rica' => 'Ora centrală nord-americană (Costa Rica)',
+        'America/Coyhaique' => 'Ora din Chile (Coyhaique)',
         'America/Creston' => 'Ora zonei montane nord-americane (Creston)',
-        'America/Cuiaba' => 'Ora Amazonului (Cuiaba)',
+        'America/Cuiaba' => 'Ora Amazonului (Cuiabá)',
         'America/Curacao' => 'Ora zonei Atlantic nord-americane (Curaçao)',
-        'America/Danmarkshavn' => 'Ora de Greenwhich (Danmarkshavn)',
+        'America/Danmarkshavn' => 'Ora de Greenwich (Danmarkshavn)',
         'America/Dawson' => 'Ora din Yukon (Dawson)',
         'America/Dawson_Creek' => 'Ora zonei montane nord-americane (Dawson Creek)',
         'America/Denver' => 'Ora zonei montane nord-americane (Denver)',
         'America/Detroit' => 'Ora orientală nord-americană (Detroit)',
         'America/Dominica' => 'Ora zonei Atlantic nord-americane (Dominica)',
         'America/Edmonton' => 'Ora zonei montane nord-americane (Edmonton)',
-        'America/Eirunepe' => 'Ora Acre (Eirunepe)',
+        'America/Eirunepe' => 'Ora Acre (Eirunepé)',
         'America/El_Salvador' => 'Ora centrală nord-americană (El Salvador)',
         'America/Fort_Nelson' => 'Ora zonei montane nord-americane (Fort Nelson)',
         'America/Fortaleza' => 'Ora Brasiliei (Fortaleza)',
         'America/Glace_Bay' => 'Ora zonei Atlantic nord-americane (Glace Bay)',
         'America/Godthab' => 'Ora din Groenlanda (Nuuk)',
+        'America/Nuuk' => 'Ora din Groenlanda (Nuuk)',
         'America/Goose_Bay' => 'Ora zonei Atlantic nord-americane (Goose Bay)',
         'America/Grand_Turk' => 'Ora orientală nord-americană (Grand Turk)',
         'America/Grenada' => 'Ora zonei Atlantic nord-americane (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Ora orientală nord-americană (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Ora orientală nord-americană (Winamac, Indiana)',
         'America/Indianapolis' => 'Ora orientală nord-americană (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Ora orientală nord-americană (Indianapolis)',
         'America/Inuvik' => 'Ora zonei montane nord-americane (Inuvik)',
         'America/Iqaluit' => 'Ora orientală nord-americană (Iqaluit)',
         'America/Jamaica' => 'Ora orientală nord-americană (Jamaica)',
         'America/Jujuy' => 'Ora Argentinei (Jujuy)',
+        'America/Argentina/Jujuy' => 'Ora Argentinei (Jujuy)',
         'America/Juneau' => 'Ora din Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Ora orientală nord-americană (Monticello, Kentucky)',
         'America/Kralendijk' => 'Ora zonei Atlantic nord-americane (Kralendijk)',
@@ -136,15 +145,17 @@
         'America/Lima' => 'Ora din Peru (Lima)',
         'America/Los_Angeles' => 'Ora zonei Pacific nord-americane (Los Angeles)',
         'America/Louisville' => 'Ora orientală nord-americană (Louisville)',
+        'America/Kentucky/Louisville' => 'Ora orientală nord-americană (Louisville)',
         'America/Lower_Princes' => 'Ora zonei Atlantic nord-americane (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Ora Brasiliei (Maceio)',
+        'America/Maceio' => 'Ora Brasiliei (Maceió)',
         'America/Managua' => 'Ora centrală nord-americană (Managua)',
         'America/Manaus' => 'Ora Amazonului (Manaus)',
         'America/Marigot' => 'Ora zonei Atlantic nord-americane (Marigot)',
         'America/Martinique' => 'Ora zonei Atlantic nord-americane (Martinica)',
         'America/Matamoros' => 'Ora centrală nord-americană (Matamoros)',
-        'America/Mazatlan' => 'Ora zonei Pacific mexicane (Mazatlan)',
+        'America/Mazatlan' => 'Ora zonei Pacific mexicane (Mazatlán)',
         'America/Mendoza' => 'Ora Argentinei (Mendoza)',
+        'America/Argentina/Mendoza' => 'Ora Argentinei (Mendoza)',
         'America/Menominee' => 'Ora centrală nord-americană (Menominee)',
         'America/Merida' => 'Ora centrală nord-americană (Merida)',
         'America/Metlakatla' => 'Ora din Alaska (Metlakatla)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Ora centrală nord-americană (Regina)',
         'America/Resolute' => 'Ora centrală nord-americană (Resolute)',
         'America/Rio_Branco' => 'Ora Acre (Rio Branco)',
-        'America/Santarem' => 'Ora Brasiliei (Santarem)',
+        'America/Santarem' => 'Ora Brasiliei (Santarém)',
         'America/Santiago' => 'Ora din Chile (Santiago)',
         'America/Santo_Domingo' => 'Ora zonei Atlantic nord-americane (Santo Domingo)',
-        'America/Sao_Paulo' => 'Ora Brasiliei (Sao Paulo)',
+        'America/Sao_Paulo' => 'Ora Brasiliei (São Paulo)',
         'America/Scoresbysund' => 'Ora din Groenlanda (Ittoqqortoormiit)',
         'America/Sitka' => 'Ora din Alaska (Sitka)',
         'America/St_Barthelemy' => 'Ora zonei Atlantic nord-americane (Saint Barthélemy)',
@@ -206,13 +217,13 @@
         'Antarctica/Palmer' => 'Ora din Chile (Palmer)',
         'Antarctica/Rothera' => 'Ora din Rothera',
         'Antarctica/Syowa' => 'Ora din Syowa (Showa)',
-        'Antarctica/Troll' => 'Ora de Greenwhich (Troll)',
+        'Antarctica/Troll' => 'Ora de Greenwich (Troll)',
         'Antarctica/Vostok' => 'Ora din Vostok',
         'Arctic/Longyearbyen' => 'Ora Europei Centrale (Longyearbyen)',
         'Asia/Aden' => 'Ora arabă (Aden)',
         'Asia/Almaty' => 'Ora din Kazahstan (Almatî)',
         'Asia/Amman' => 'Ora Europei de Est (Amman)',
-        'Asia/Anadyr' => 'Ora din Anadyr (Anadir)',
+        'Asia/Anadyr' => 'Ora din Petropavlovsk-Kamciațki (Anadir)',
         'Asia/Aqtau' => 'Ora din Kazahstan (Aktau)',
         'Asia/Aqtobe' => 'Ora din Kazahstan (Aktobe)',
         'Asia/Ashgabat' => 'Ora din Turkmenistan (Așgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Ora arabă (Bahrain)',
         'Asia/Baku' => 'Ora Azerbaidjanului (Baku)',
         'Asia/Bangkok' => 'Ora Indochinei (Bangkok)',
-        'Asia/Barnaul' => 'Ora din Rusia (Barnaul)',
+        'Asia/Barnaul' => 'Ora din Krasnoiarsk (Barnaul)',
         'Asia/Beirut' => 'Ora Europei de Est (Beirut)',
         'Asia/Bishkek' => 'Ora din Kârgâzstan (Bișkek)',
         'Asia/Brunei' => 'Ora din Brunei Darussalam',
         'Asia/Calcutta' => 'Ora Indiei (Calcutta)',
+        'Asia/Kolkata' => 'Ora Indiei (Calcutta)',
         'Asia/Chita' => 'Ora din Iakuțk (Cita)',
         'Asia/Colombo' => 'Ora Indiei (Colombo)',
         'Asia/Damascus' => 'Ora Europei de Est (Damasc)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Ora Europei de Est (Gaza)',
         'Asia/Hebron' => 'Ora Europei de Est (Hebron)',
         'Asia/Hong_Kong' => 'Ora din Hong Kong',
-        'Asia/Hovd' => 'Ora din Hovd',
+        'Asia/Hovd' => 'Ora din Hovd (Khovd)',
         'Asia/Irkutsk' => 'Ora din Irkuțk',
         'Asia/Jakarta' => 'Ora Indoneziei de Vest (Jakarta)',
         'Asia/Jayapura' => 'Ora Indoneziei de Est (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Ora din Petropavlovsk-Kamciațki (Kamciatka)',
         'Asia/Karachi' => 'Ora Pakistanului (Karachi)',
         'Asia/Katmandu' => 'Ora Nepalului (Kathmandu)',
+        'Asia/Kathmandu' => 'Ora Nepalului (Kathmandu)',
         'Asia/Khandyga' => 'Ora din Iakuțk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Ora din Krasnoiarsk',
         'Asia/Kuala_Lumpur' => 'Ora din Malaysia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Ora standard a Golfului (Muscat)',
         'Asia/Nicosia' => 'Ora Europei de Est (Nicosia)',
         'Asia/Novokuznetsk' => 'Ora din Krasnoiarsk (Novokuznețk)',
-        'Asia/Novosibirsk' => 'Ora din Novosibirsk',
+        'Asia/Novosibirsk' => 'Ora din Krasnoiarsk (Novosibirsk)',
         'Asia/Omsk' => 'Ora din Omsk',
         'Asia/Oral' => 'Ora din Kazahstan (Uralsk)',
         'Asia/Phnom_Penh' => 'Ora Indochinei (Phnom Penh)',
@@ -268,11 +281,13 @@
         'Asia/Qostanay' => 'Ora din Kazahstan (Kostanay)',
         'Asia/Qyzylorda' => 'Ora din Kazahstan (Kyzylorda)',
         'Asia/Rangoon' => 'Ora Myanmarului (Yangon)',
+        'Asia/Yangon' => 'Ora Myanmarului (Yangon)',
         'Asia/Riyadh' => 'Ora arabă (Riad)',
         'Asia/Saigon' => 'Ora Indochinei (Ho Și Min)',
-        'Asia/Sakhalin' => 'Ora din Sahalin',
+        'Asia/Ho_Chi_Minh' => 'Ora Indochinei (Ho Și Min)',
+        'Asia/Sakhalin' => 'Ora din Magadan (Sahalin)',
         'Asia/Samarkand' => 'Ora din Uzbekistan (Samarkand)',
-        'Asia/Seoul' => 'Ora Coreei (Seoul)',
+        'Asia/Seoul' => 'Ora Coreei (Seul)',
         'Asia/Shanghai' => 'Ora Chinei (Shanghai)',
         'Asia/Singapore' => 'Ora din Singapore',
         'Asia/Srednekolymsk' => 'Ora din Magadan (Srednekolimsk)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Ora Iranului (Teheran)',
         'Asia/Thimphu' => 'Ora Bhutanului (Thimphu)',
         'Asia/Tokyo' => 'Ora Japoniei (Tokyo)',
-        'Asia/Tomsk' => 'Ora din Rusia (Tomsk)',
+        'Asia/Tomsk' => 'Ora din Krasnoiarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ora din Ulan Bator',
-        'Asia/Urumqi' => 'Ora din China (Urumqi)',
+        'Asia/Urumqi' => 'Ora din China (Ürümqi)',
         'Asia/Ust-Nera' => 'Ora din Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Ora Indochinei (Vientiane)',
         'Asia/Vladivostok' => 'Ora din Vladivostok',
@@ -296,10 +311,11 @@
         'Atlantic/Canary' => 'Ora Europei de Vest (Canare)',
         'Atlantic/Cape_Verde' => 'Ora din Capul Verde',
         'Atlantic/Faeroe' => 'Ora Europei de Vest (Feroe)',
+        'Atlantic/Faroe' => 'Ora Europei de Vest (Feroe)',
         'Atlantic/Madeira' => 'Ora Europei de Vest (Madeira)',
-        'Atlantic/Reykjavik' => 'Ora de Greenwhich (Reykjavik)',
+        'Atlantic/Reykjavik' => 'Ora de Greenwich (Reykjavik)',
         'Atlantic/South_Georgia' => 'Ora Georgiei de Sud (Georgia de Sud)',
-        'Atlantic/St_Helena' => 'Ora de Greenwhich (Sf. Elena)',
+        'Atlantic/St_Helena' => 'Ora de Greenwich (Sf. Elena)',
         'Atlantic/Stanley' => 'Ora din Insulele Falkland (Stanley)',
         'Australia/Adelaide' => 'Ora Australiei Centrale (Adelaide)',
         'Australia/Brisbane' => 'Ora Australiei Orientale (Brisbane)',
@@ -312,11 +328,11 @@
         'Australia/Melbourne' => 'Ora Australiei Orientale (Melbourne)',
         'Australia/Perth' => 'Ora Australiei Occidentale (Perth)',
         'Australia/Sydney' => 'Ora Australiei Orientale (Sydney)',
-        'Etc/GMT' => 'Ora de Greenwhich',
+        'Etc/GMT' => 'Ora de Greenwich',
         'Etc/UTC' => 'Timpul universal coordonat',
         'Europe/Amsterdam' => 'Ora Europei Centrale (Amsterdam)',
         'Europe/Andorra' => 'Ora Europei Centrale (Andorra)',
-        'Europe/Astrakhan' => 'Ora Moscovei (Astrahan)',
+        'Europe/Astrakhan' => 'Ora din Samara (Astrahan)',
         'Europe/Athens' => 'Ora Europei de Est (Atena)',
         'Europe/Belgrade' => 'Ora Europei Centrale (Belgrad)',
         'Europe/Berlin' => 'Ora Europei Centrale (Berlin)',
@@ -324,22 +340,23 @@
         'Europe/Brussels' => 'Ora Europei Centrale (Bruxelles)',
         'Europe/Bucharest' => 'Ora Europei de Est (București)',
         'Europe/Budapest' => 'Ora Europei Centrale (Budapesta)',
-        'Europe/Busingen' => 'Ora Europei Centrale (Busingen)',
+        'Europe/Busingen' => 'Ora Europei Centrale (Büsingen)',
         'Europe/Chisinau' => 'Ora Europei de Est (Chișinău)',
         'Europe/Copenhagen' => 'Ora Europei Centrale (Copenhaga)',
-        'Europe/Dublin' => 'Ora de Greenwhich (Dublin)',
+        'Europe/Dublin' => 'Ora de Greenwich (Dublin)',
         'Europe/Gibraltar' => 'Ora Europei Centrale (Gibraltar)',
-        'Europe/Guernsey' => 'Ora de Greenwhich (Guernsey)',
+        'Europe/Guernsey' => 'Ora de Greenwich (Guernsey)',
         'Europe/Helsinki' => 'Ora Europei de Est (Helsinki)',
-        'Europe/Isle_of_Man' => 'Ora de Greenwhich (Insula Man)',
+        'Europe/Isle_of_Man' => 'Ora de Greenwich (Insula Man)',
         'Europe/Istanbul' => 'Ora din Turcia (Istanbul)',
-        'Europe/Jersey' => 'Ora de Greenwhich (Jersey)',
+        'Europe/Jersey' => 'Ora de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Ora Europei de Est (Kaliningrad)',
         'Europe/Kiev' => 'Ora Europei de Est (Kiev)',
-        'Europe/Kirov' => 'Ora din Rusia (Kirov)',
+        'Europe/Kyiv' => 'Ora Europei de Est (Kiev)',
+        'Europe/Kirov' => 'Ora Moscovei (Kirov)',
         'Europe/Lisbon' => 'Ora Europei de Vest (Lisabona)',
         'Europe/Ljubljana' => 'Ora Europei Centrale (Ljubljana)',
-        'Europe/London' => 'Ora de Greenwhich (Londra)',
+        'Europe/London' => 'Ora de Greenwich (Londra)',
         'Europe/Luxembourg' => 'Ora Europei Centrale (Luxemburg)',
         'Europe/Madrid' => 'Ora Europei Centrale (Madrid)',
         'Europe/Malta' => 'Ora Europei Centrale (Malta)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Ora din Samara',
         'Europe/San_Marino' => 'Ora Europei Centrale (San Marino)',
         'Europe/Sarajevo' => 'Ora Europei Centrale (Sarajevo)',
-        'Europe/Saratov' => 'Ora Moscovei (Saratov)',
+        'Europe/Saratov' => 'Ora din Samara (Saratov)',
         'Europe/Simferopol' => 'Ora Moscovei (Simferopol)',
         'Europe/Skopje' => 'Ora Europei Centrale (Skopje)',
         'Europe/Sofia' => 'Ora Europei de Est (Sofia)',
         'Europe/Stockholm' => 'Ora Europei Centrale (Stockholm)',
         'Europe/Tallinn' => 'Ora Europei de Est (Tallinn)',
         'Europe/Tirane' => 'Ora Europei Centrale (Tirana)',
-        'Europe/Ulyanovsk' => 'Ora Moscovei (Ulianovsk)',
+        'Europe/Ulyanovsk' => 'Ora din Samara (Ulianovsk)',
         'Europe/Vaduz' => 'Ora Europei Centrale (Vaduz)',
         'Europe/Vatican' => 'Ora Europei Centrale (Vatican)',
         'Europe/Vienna' => 'Ora Europei Centrale (Viena)',
         'Europe/Vilnius' => 'Ora Europei de Est (Vilnius)',
-        'Europe/Volgograd' => 'Ora din Volgograd',
+        'Europe/Volgograd' => 'Ora Moscovei (Volgograd)',
         'Europe/Warsaw' => 'Ora Europei Centrale (Varșovia)',
         'Europe/Zagreb' => 'Ora Europei Centrale (Zagreb)',
         'Europe/Zurich' => 'Ora Europei Centrale (Zürich)',
@@ -378,26 +395,27 @@
         'Indian/Cocos' => 'Ora Insulelor Cocos',
         'Indian/Comoro' => 'Ora Africii Orientale (Comore)',
         'Indian/Kerguelen' => 'Ora din Teritoriile Australe și Antarctice Franceze (Kerguelen)',
-        'Indian/Mahe' => 'Ora din Seychelles (Mahe)',
+        'Indian/Mahe' => 'Ora din Seychelles (Mahé)',
         'Indian/Maldives' => 'Ora din Maldive',
         'Indian/Mauritius' => 'Ora din Mauritius',
         'Indian/Mayotte' => 'Ora Africii Orientale (Mayotte)',
         'Indian/Reunion' => 'Ora din Reunion (Réunion)',
-        'Pacific/Apia' => 'Ora din Apia',
+        'Pacific/Apia' => 'Ora din Samoa (Apia)',
         'Pacific/Auckland' => 'Ora Noii Zeelande (Auckland)',
         'Pacific/Bougainville' => 'Ora din Papua Noua Guinee (Bougainville)',
         'Pacific/Chatham' => 'Ora din Chatham',
         'Pacific/Easter' => 'Ora din Insula Paștelui',
         'Pacific/Efate' => 'Ora din Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Ora Insulelor Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Ora Insulelor Phoenix (Insula Canton)',
+        'Pacific/Kanton' => 'Ora Insulelor Phoenix (Insula Canton)',
         'Pacific/Fakaofo' => 'Ora din Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Ora din Fiji',
         'Pacific/Funafuti' => 'Ora din Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Ora din Galapagos',
+        'Pacific/Galapagos' => 'Ora din Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Ora din Gambier',
         'Pacific/Guadalcanal' => 'Ora Insulelor Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Ora din Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Ora din Hawaii-Aleutine (Honolulu)',
+        'Pacific/Honolulu' => 'Ora standard din Hawaii-Aleutine (Honolulu)',
         'Pacific/Kiritimati' => 'Ora din Insulele Line (Kiritimati)',
         'Pacific/Kosrae' => 'Ora din Kosrae',
         'Pacific/Kwajalein' => 'Ora Insulelor Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Ora din Nauru',
         'Pacific/Niue' => 'Ora din Niue',
         'Pacific/Norfolk' => 'Ora Insulei Norfolk',
-        'Pacific/Noumea' => 'Ora Noii Caledonii (Noumea)',
+        'Pacific/Noumea' => 'Ora Noii Caledonii (Nouméa)',
         'Pacific/Pago_Pago' => 'Ora din Samoa (Pago Pago)',
         'Pacific/Palau' => 'Ora din Palau',
         'Pacific/Pitcairn' => 'Ora din Pitcairn (Insula Pitcairn)',
         'Pacific/Ponape' => 'Ora din Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ora din Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Ora din Papua Noua Guinee (Port Moresby)',
         'Pacific/Rarotonga' => 'Ora Insulelor Cook (Rarotonga)',
         'Pacific/Saipan' => 'Ora din Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Ora Insulelor Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Ora din Tonga (Tongatapu)',
         'Pacific/Truk' => 'Ora din Chuuk',
-        'Pacific/Wake' => 'Ora Insulei Wake',
-        'Pacific/Wallis' => 'Ora din Wallis și Futuna',
+        'Pacific/Chuuk' => 'Ora din Chuuk',
+        'Pacific/Wake' => 'Ora Insulei Wake (Insula Wake)',
+        'Pacific/Wallis' => 'Ora din Wallis și Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ru.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ru.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ru.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ru.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Восточная Африка (Аддис-Абеба)',
         'Africa/Algiers' => 'Центральная Европа (Алжир)',
         'Africa/Asmera' => 'Восточная Африка (Асмэра)',
+        'Africa/Asmara' => 'Восточная Африка (Асмэра)',
         'Africa/Bamako' => 'Среднее время по Гринвичу (Бамако)',
         'Africa/Bangui' => 'Западная Африка (Банги)',
         'Africa/Banjul' => 'Среднее время по Гринвичу (Банжул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Колумбия (Богота)',
         'America/Boise' => 'Горное время (Северная Америка) (Бойсе)',
         'America/Buenos_Aires' => 'Аргентина (Буэнос-Айрес)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина (Буэнос-Айрес)',
         'America/Cambridge_Bay' => 'Горное время (Северная Америка) (Кеймбридж-Бей)',
         'America/Campo_Grande' => 'Амазонка (Кампу-Гранди)',
         'America/Cancun' => 'Восточная Америка (Канкун)',
         'America/Caracas' => 'Венесуэла (Каракас)',
         'America/Catamarca' => 'Аргентина (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргентина (Катамарка)',
         'America/Cayenne' => 'Французская Гвиана (Кайенна)',
         'America/Cayman' => 'Восточная Америка (Острова Кайман)',
         'America/Chicago' => 'Центральная Америка (Чикаго)',
         'America/Chihuahua' => 'Центральная Америка (Чиуауа)',
         'America/Ciudad_Juarez' => 'Горное время (Северная Америка) (Сьюдад-Хуарес)',
         'America/Coral_Harbour' => 'Восточная Америка (Корал-Харбор)',
+        'America/Atikokan' => 'Восточная Америка (Корал-Харбор)',
         'America/Cordoba' => 'Аргентина (Кордова)',
+        'America/Argentina/Cordoba' => 'Аргентина (Кордова)',
         'America/Costa_Rica' => 'Центральная Америка (Коста-Рика)',
+        'America/Coyhaique' => 'Чили (Койайке)',
         'America/Creston' => 'Горное время (Северная Америка) (Крестон)',
         'America/Cuiaba' => 'Амазонка (Куяба)',
         'America/Curacao' => 'Атлантическое время (Кюрасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразилия (Форталеза)',
         'America/Glace_Bay' => 'Атлантическое время (Глейс-Бей)',
         'America/Godthab' => 'Гренландия (Нуук)',
+        'America/Nuuk' => 'Гренландия (Нуук)',
         'America/Goose_Bay' => 'Атлантическое время (Гус-Бей)',
         'America/Grand_Turk' => 'Восточная Америка (Гранд-Терк)',
         'America/Grenada' => 'Атлантическое время (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Восточная Америка (Винсеннес)',
         'America/Indiana/Winamac' => 'Восточная Америка (Уинамак)',
         'America/Indianapolis' => 'Восточная Америка (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Восточная Америка (Индианаполис)',
         'America/Inuvik' => 'Горное время (Северная Америка) (Инувик)',
         'America/Iqaluit' => 'Восточная Америка (Икалуит)',
         'America/Jamaica' => 'Восточная Америка (Ямайка)',
         'America/Jujuy' => 'Аргентина (Жужуй)',
+        'America/Argentina/Jujuy' => 'Аргентина (Жужуй)',
         'America/Juneau' => 'Аляска (Джуно)',
         'America/Kentucky/Monticello' => 'Восточная Америка (Монтиселло, Кентукки)',
         'America/Kralendijk' => 'Атлантическое время (Кралендейк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перу (Лима)',
         'America/Los_Angeles' => 'Тихоокеанское время (Лос-Анджелес)',
         'America/Louisville' => 'Восточная Америка (Луисвилл)',
+        'America/Kentucky/Louisville' => 'Восточная Америка (Луисвилл)',
         'America/Lower_Princes' => 'Атлантическое время (Лоуэр-Принс-Куотер)',
         'America/Maceio' => 'Бразилия (Масейо)',
         'America/Managua' => 'Центральная Америка (Манагуа)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Центральная Америка (Матаморос)',
         'America/Mazatlan' => 'Тихоокеанское мексиканское время (Масатлан)',
         'America/Mendoza' => 'Аргентина (Мендоса)',
+        'America/Argentina/Mendoza' => 'Аргентина (Мендоса)',
         'America/Menominee' => 'Центральная Америка (Меномини)',
         'America/Merida' => 'Центральная Америка (Мерида)',
         'America/Metlakatla' => 'Аляска (Метлакатла)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Саудовская Аравия (Аден)',
         'Asia/Almaty' => 'Казахстан (Алматы)',
         'Asia/Amman' => 'Восточная Европа (Амман)',
-        'Asia/Anadyr' => 'Время по Анадырю (Анадырь)',
+        'Asia/Anadyr' => 'Петропавловск-Камчатский (Анадырь)',
         'Asia/Aqtau' => 'Казахстан (Актау)',
         'Asia/Aqtobe' => 'Казахстан (Актобе)',
         'Asia/Ashgabat' => 'Туркменистан (Ашхабад)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Саудовская Аравия (Бахрейн)',
         'Asia/Baku' => 'Азербайджан (Баку)',
         'Asia/Bangkok' => 'Индокитай (Бангкок)',
-        'Asia/Barnaul' => 'Россия (Барнаул)',
+        'Asia/Barnaul' => 'Красноярск (Барнаул)',
         'Asia/Beirut' => 'Восточная Европа (Бейрут)',
         'Asia/Bishkek' => 'Киргизия (Бишкек)',
         'Asia/Brunei' => 'Бруней-Даруссалам',
         'Asia/Calcutta' => 'Индия (Калькутта)',
+        'Asia/Kolkata' => 'Индия (Калькутта)',
         'Asia/Chita' => 'Якутск (Чита)',
         'Asia/Colombo' => 'Индия (Коломбо)',
         'Asia/Damascus' => 'Восточная Европа (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Петропавловск-Камчатский',
         'Asia/Karachi' => 'Пакистан (Карачи)',
         'Asia/Katmandu' => 'Непал (Катманду)',
+        'Asia/Kathmandu' => 'Непал (Катманду)',
         'Asia/Khandyga' => 'Якутск (Хандыга)',
         'Asia/Krasnoyarsk' => 'Красноярск',
         'Asia/Kuala_Lumpur' => 'Малайзия (Куала-Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Персидский залив (Маскат)',
         'Asia/Nicosia' => 'Восточная Европа (Никосия)',
         'Asia/Novokuznetsk' => 'Красноярск (Новокузнецк)',
-        'Asia/Novosibirsk' => 'Новосибирск',
+        'Asia/Novosibirsk' => 'Красноярск (Новосибирск)',
         'Asia/Omsk' => 'Омск',
         'Asia/Oral' => 'Казахстан (Уральск)',
         'Asia/Phnom_Penh' => 'Индокитай (Пномпень)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Казахстан (Костанай)',
         'Asia/Qyzylorda' => 'Казахстан (Кызылорда)',
         'Asia/Rangoon' => 'Мьянма (Янгон)',
+        'Asia/Yangon' => 'Мьянма (Янгон)',
         'Asia/Riyadh' => 'Саудовская Аравия (Эр-Рияд)',
         'Asia/Saigon' => 'Индокитай (Хошимин)',
-        'Asia/Sakhalin' => 'Сахалин (о-в Сахалин)',
+        'Asia/Ho_Chi_Minh' => 'Индокитай (Хошимин)',
+        'Asia/Sakhalin' => 'Магадан (о-в Сахалин)',
         'Asia/Samarkand' => 'Узбекистан (Самарканд)',
         'Asia/Seoul' => 'Корея (Сеул)',
         'Asia/Shanghai' => 'Китай (Шанхай)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Иран (Тегеран)',
         'Asia/Thimphu' => 'Бутан (Тхимпху)',
         'Asia/Tokyo' => 'Япония (Токио)',
-        'Asia/Tomsk' => 'Россия (Томск)',
+        'Asia/Tomsk' => 'Красноярск (Томск)',
         'Asia/Ulaanbaatar' => 'Улан-Батор',
         'Asia/Urumqi' => 'Китай (Урумчи)',
         'Asia/Ust-Nera' => 'Владивосток (Усть-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Западная Европа (Канарские о-ва)',
         'Atlantic/Cape_Verde' => 'Кабо-Верде',
         'Atlantic/Faeroe' => 'Западная Европа (Фарерские о-ва)',
+        'Atlantic/Faroe' => 'Западная Европа (Фарерские о-ва)',
         'Atlantic/Madeira' => 'Западная Европа (Мадейра)',
         'Atlantic/Reykjavik' => 'Среднее время по Гринвичу (Рейкьявик)',
         'Atlantic/South_Georgia' => 'Южная Георгия',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Всемирное координированное время',
         'Europe/Amsterdam' => 'Центральная Европа (Амстердам)',
         'Europe/Andorra' => 'Центральная Европа (Андорра)',
-        'Europe/Astrakhan' => 'Москва (Астрахань)',
+        'Europe/Astrakhan' => 'Время в Самаре (Астрахань)',
         'Europe/Athens' => 'Восточная Европа (Афины)',
         'Europe/Belgrade' => 'Центральная Европа (Белград)',
         'Europe/Berlin' => 'Центральная Европа (Берлин)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Среднее время по Гринвичу (Гернси)',
         'Europe/Helsinki' => 'Восточная Европа (Хельсинки)',
         'Europe/Isle_of_Man' => 'Среднее время по Гринвичу (о-в Мэн)',
-        'Europe/Istanbul' => 'Турция (Стамбул)',
+        'Europe/Istanbul' => 'Турецкое время (Стамбул)',
         'Europe/Jersey' => 'Среднее время по Гринвичу (Джерси)',
         'Europe/Kaliningrad' => 'Восточная Европа (Калининград)',
         'Europe/Kiev' => 'Восточная Европа (Киев)',
-        'Europe/Kirov' => 'Россия (Киров)',
+        'Europe/Kyiv' => 'Восточная Европа (Киев)',
+        'Europe/Kirov' => 'Москва (Киров)',
         'Europe/Lisbon' => 'Западная Европа (Лиссабон)',
         'Europe/Ljubljana' => 'Центральная Европа (Любляна)',
         'Europe/London' => 'Среднее время по Гринвичу (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Время в Самаре (Самара)',
         'Europe/San_Marino' => 'Центральная Европа (Сан-Марино)',
         'Europe/Sarajevo' => 'Центральная Европа (Сараево)',
-        'Europe/Saratov' => 'Москва (Саратов)',
+        'Europe/Saratov' => 'Время в Самаре (Саратов)',
         'Europe/Simferopol' => 'Москва (Симферополь)',
         'Europe/Skopje' => 'Центральная Европа (Скопье)',
         'Europe/Sofia' => 'Восточная Европа (София)',
         'Europe/Stockholm' => 'Центральная Европа (Стокгольм)',
         'Europe/Tallinn' => 'Восточная Европа (Таллин)',
         'Europe/Tirane' => 'Центральная Европа (Тирана)',
-        'Europe/Ulyanovsk' => 'Москва (Ульяновск)',
+        'Europe/Ulyanovsk' => 'Время в Самаре (Ульяновск)',
         'Europe/Vaduz' => 'Центральная Европа (Вадуц)',
         'Europe/Vatican' => 'Центральная Европа (Ватикан)',
         'Europe/Vienna' => 'Центральная Европа (Вена)',
         'Europe/Vilnius' => 'Восточная Европа (Вильнюс)',
-        'Europe/Volgograd' => 'Волгоград',
+        'Europe/Volgograd' => 'Москва (Волгоград)',
         'Europe/Warsaw' => 'Центральная Европа (Варшава)',
         'Europe/Zagreb' => 'Центральная Европа (Загреб)',
         'Europe/Zurich' => 'Центральная Европа (Цюрих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Чатем',
         'Pacific/Easter' => 'О-в Пасхи',
         'Pacific/Efate' => 'Вануату (Эфате)',
-        'Pacific/Enderbury' => 'о-ва Феникс (о-в Эндербери)',
+        'Pacific/Enderbury' => 'о-ва Феникс (о-в Кантон)',
+        'Pacific/Kanton' => 'о-ва Феникс (о-в Кантон)',
         'Pacific/Fakaofo' => 'Токелау (Факаофо)',
         'Pacific/Fiji' => 'Фиджи',
         'Pacific/Funafuti' => 'Тувалу (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Гамбье (о-ва Гамбье)',
         'Pacific/Guadalcanal' => 'Соломоновы Острова (Гуадалканал)',
         'Pacific/Guam' => 'Чаморро (Гуам)',
-        'Pacific/Honolulu' => 'Гавайско-алеутское время (Гонолулу)',
+        'Pacific/Honolulu' => 'Гавайско-алеутское стандартное время (Гонолулу)',
         'Pacific/Kiritimati' => 'о-ва Лайн (Киритимати)',
         'Pacific/Kosrae' => 'Косрае',
         'Pacific/Kwajalein' => 'Маршалловы Острова (Кваджалейн)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Палау',
         'Pacific/Pitcairn' => 'Питкэрн',
         'Pacific/Ponape' => 'Понпеи',
+        'Pacific/Pohnpei' => 'Понпеи',
         'Pacific/Port_Moresby' => 'Папуа – Новая Гвинея (Порт-Морсби)',
         'Pacific/Rarotonga' => 'Острова Кука (Раротонга)',
         'Pacific/Saipan' => 'Чаморро (Сайпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'о-ва Гилберта (Тарава)',
         'Pacific/Tongatapu' => 'Тонга (Тонгатапу)',
         'Pacific/Truk' => 'Трук',
+        'Pacific/Chuuk' => 'Трук',
         'Pacific/Wake' => 'Уэйк',
         'Pacific/Wallis' => 'Уоллис и Футуна',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/rw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/rw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/rw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/rw.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
         'Africa/Dakar' => 'Greenwich Mean Time (Dakar)',
         'Africa/Freetown' => 'Greenwich Mean Time (Freetown)',
         'Africa/Kigali' => 'U Rwanda (Kigali)',
-        'Africa/Lome' => 'Greenwich Mean Time (Lome)',
+        'Africa/Lome' => 'Greenwich Mean Time (Lomé)',
         'Africa/Monrovia' => 'Greenwich Mean Time (Monrovia)',
         'Africa/Nouakchott' => 'Greenwich Mean Time (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich Mean Time (Ouagadougou)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sa.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,9 +13,9 @@
         'Africa/Ceuta' => 'मध्य यूरोपीय समयः (Ceuta)',
         'Africa/Conakry' => 'ग्रीनविच मीन समयः (Conakry)',
         'Africa/Dakar' => 'ग्रीनविच मीन समयः (Dakar)',
-        'Africa/El_Aaiun' => 'पाश्चात्य यूरोपीय समयः (El Aaiun)',
+        'Africa/El_Aaiun' => 'पाश्चात्य यूरोपीय समयः (El Aaiún)',
         'Africa/Freetown' => 'ग्रीनविच मीन समयः (Freetown)',
-        'Africa/Lome' => 'ग्रीनविच मीन समयः (Lome)',
+        'Africa/Lome' => 'ग्रीनविच मीन समयः (Lomé)',
         'Africa/Monrovia' => 'ग्रीनविच मीन समयः (Monrovia)',
         'Africa/Nouakchott' => 'ग्रीनविच मीन समयः (Nouakchott)',
         'Africa/Ouagadougou' => 'ग्रीनविच मीन समयः (Ouagadougou)',
@@ -26,12 +26,12 @@
         'America/Anchorage' => 'संयुक्त राज्य: समय: (Anchorage)',
         'America/Anguilla' => 'अटलाण्टिक समयः (Anguilla)',
         'America/Antigua' => 'अटलाण्टिक समयः (Antigua)',
-        'America/Araguaina' => 'ब्राजील समय: (Araguaina)',
+        'America/Araguaina' => 'ब्राजील समय: (Araguaína)',
         'America/Aruba' => 'अटलाण्टिक समयः (Aruba)',
         'America/Bahia' => 'ब्राजील समय: (Bahia)',
         'America/Bahia_Banderas' => 'उत्तर अमेरिका: मध्य समयः (Bahía de Banderas)',
         'America/Barbados' => 'अटलाण्टिक समयः (Barbados)',
-        'America/Belem' => 'ब्राजील समय: (Belem)',
+        'America/Belem' => 'ब्राजील समय: (Belém)',
         'America/Belize' => 'उत्तर अमेरिका: मध्य समयः (Belize)',
         'America/Blanc-Sablon' => 'अटलाण्टिक समयः (Blanc-Sablon)',
         'America/Boa_Vista' => 'ब्राजील समय: (Boa Vista)',
@@ -44,9 +44,10 @@
         'America/Chihuahua' => 'उत्तर अमेरिका: मध्य समयः (Chihuahua)',
         'America/Ciudad_Juarez' => 'उत्तर अमेरिका: शैल समयः (Ciudad Juárez)',
         'America/Coral_Harbour' => 'उत्तर अमेरिका: पौर्व समयः (Atikokan)',
+        'America/Atikokan' => 'उत्तर अमेरिका: पौर्व समयः (Atikokan)',
         'America/Costa_Rica' => 'उत्तर अमेरिका: मध्य समयः (Costa Rica)',
         'America/Creston' => 'उत्तर अमेरिका: शैल समयः (Creston)',
-        'America/Cuiaba' => 'ब्राजील समय: (Cuiaba)',
+        'America/Cuiaba' => 'ब्राजील समय: (Cuiabá)',
         'America/Curacao' => 'अटलाण्टिक समयः (Curaçao)',
         'America/Danmarkshavn' => 'ग्रीनविच मीन समयः (Danmarkshavn)',
         'America/Dawson_Creek' => 'उत्तर अमेरिका: शैल समयः (Dawson Creek)',
@@ -54,7 +55,7 @@
         'America/Detroit' => 'उत्तर अमेरिका: पौर्व समयः (Detroit)',
         'America/Dominica' => 'अटलाण्टिक समयः (Dominica)',
         'America/Edmonton' => 'उत्तर अमेरिका: शैल समयः (Edmonton)',
-        'America/Eirunepe' => 'ब्राजील समय: (Eirunepe)',
+        'America/Eirunepe' => 'ब्राजील समय: (Eirunepé)',
         'America/El_Salvador' => 'उत्तर अमेरिका: मध्य समयः (El Salvador)',
         'America/Fort_Nelson' => 'उत्तर अमेरिका: शैल समयः (Fort Nelson)',
         'America/Fortaleza' => 'ब्राजील समय: (Fortaleza)',
@@ -73,6 +74,7 @@
         'America/Indiana/Vincennes' => 'उत्तर अमेरिका: पौर्व समयः (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'उत्तर अमेरिका: पौर्व समयः (Winamac, Indiana)',
         'America/Indianapolis' => 'उत्तर अमेरिका: पौर्व समयः (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'उत्तर अमेरिका: पौर्व समयः (Indianapolis)',
         'America/Inuvik' => 'उत्तर अमेरिका: शैल समयः (Inuvik)',
         'America/Iqaluit' => 'उत्तर अमेरिका: पौर्व समयः (Iqaluit)',
         'America/Jamaica' => 'उत्तर अमेरिका: पौर्व समयः (Jamaica)',
@@ -81,8 +83,9 @@
         'America/Kralendijk' => 'अटलाण्टिक समयः (Kralendijk)',
         'America/Los_Angeles' => 'उत्तर अमेरिका: सन्धिप्रिय समयः (Los Angeles)',
         'America/Louisville' => 'उत्तर अमेरिका: पौर्व समयः (Louisville)',
+        'America/Kentucky/Louisville' => 'उत्तर अमेरिका: पौर्व समयः (Louisville)',
         'America/Lower_Princes' => 'अटलाण्टिक समयः (Lower Prince’s Quarter)',
-        'America/Maceio' => 'ब्राजील समय: (Maceio)',
+        'America/Maceio' => 'ब्राजील समय: (Maceió)',
         'America/Managua' => 'उत्तर अमेरिका: मध्य समयः (Managua)',
         'America/Manaus' => 'ब्राजील समय: (Manaus)',
         'America/Marigot' => 'अटलाण्टिक समयः (Marigot)',
@@ -91,7 +94,7 @@
         'America/Menominee' => 'उत्तर अमेरिका: मध्य समयः (Menominee)',
         'America/Merida' => 'उत्तर अमेरिका: मध्य समयः (Mérida)',
         'America/Metlakatla' => 'संयुक्त राज्य: समय: (Metlakatla)',
-        'America/Mexico_City' => 'उत्तर अमेरिका: मध्य समयः (Mexico City)',
+        'America/Mexico_City' => 'उत्तर अमेरिका: मध्य समयः (Ciudad de México)',
         'America/Moncton' => 'अटलाण्टिक समयः (Moncton)',
         'America/Monterrey' => 'उत्तर अमेरिका: मध्य समयः (Monterrey)',
         'America/Montserrat' => 'अटलाण्टिक समयः (Montserrat)',
@@ -114,9 +117,9 @@
         'America/Regina' => 'उत्तर अमेरिका: मध्य समयः (Regina)',
         'America/Resolute' => 'उत्तर अमेरिका: मध्य समयः (Resolute)',
         'America/Rio_Branco' => 'ब्राजील समय: (Rio Branco)',
-        'America/Santarem' => 'ब्राजील समय: (Santarem)',
+        'America/Santarem' => 'ब्राजील समय: (Santarém)',
         'America/Santo_Domingo' => 'अटलाण्टिक समयः (Santo Domingo)',
-        'America/Sao_Paulo' => 'ब्राजील समय: (Sao Paulo)',
+        'America/Sao_Paulo' => 'ब्राजील समय: (São Paulo)',
         'America/Sitka' => 'संयुक्त राज्य: समय: (Sitka)',
         'America/St_Barthelemy' => 'अटलाण्टिक समयः (St. Barthélemy)',
         'America/St_Kitts' => 'अटलाण्टिक समयः (St. Kitts)',
@@ -139,6 +142,7 @@
         'Asia/Barnaul' => 'रष्यदेश: समय: (Barnaul)',
         'Asia/Beirut' => 'पौर्व यूरोपीय समयः (Beirut)',
         'Asia/Calcutta' => 'भारतः समय: (Kolkata)',
+        'Asia/Kolkata' => 'भारतः समय: (Kolkata)',
         'Asia/Chita' => 'रष्यदेश: समय: (Chita)',
         'Asia/Damascus' => 'पौर्व यूरोपीय समयः (Damascus)',
         'Asia/Famagusta' => 'पौर्व यूरोपीय समयः (Famagusta)',
@@ -158,14 +162,15 @@
         'Asia/Srednekolymsk' => 'रष्यदेश: समय: (Srednekolymsk)',
         'Asia/Tokyo' => 'जापन: समय: (Tokyo)',
         'Asia/Tomsk' => 'रष्यदेश: समय: (Tomsk)',
-        'Asia/Urumqi' => 'चीन: समय: (Urumqi)',
+        'Asia/Urumqi' => 'चीन: समय: (Ürümqi)',
         'Asia/Ust-Nera' => 'रष्यदेश: समय: (Ust-Nera)',
         'Asia/Vladivostok' => 'रष्यदेश: समय: (Vladivostok)',
         'Asia/Yakutsk' => 'रष्यदेश: समय: (Yakutsk)',
         'Asia/Yekaterinburg' => 'रष्यदेश: समय: (Yekaterinburg)',
         'Atlantic/Bermuda' => 'अटलाण्टिक समयः (Bermuda)',
-        'Atlantic/Canary' => 'पाश्चात्य यूरोपीय समयः (Canary)',
+        'Atlantic/Canary' => 'पाश्चात्य यूरोपीय समयः (Canarias)',
         'Atlantic/Faeroe' => 'पाश्चात्य यूरोपीय समयः (Faroe)',
+        'Atlantic/Faroe' => 'पाश्चात्य यूरोपीय समयः (Faroe)',
         'Atlantic/Madeira' => 'पाश्चात्य यूरोपीय समयः (Madeira)',
         'Atlantic/Reykjavik' => 'ग्रीनविच मीन समयः (Reykjavik)',
         'Atlantic/St_Helena' => 'ग्रीनविच मीन समयः (St. Helena)',
@@ -181,8 +186,8 @@
         'Europe/Brussels' => 'मध्य यूरोपीय समयः (Brussels)',
         'Europe/Bucharest' => 'पौर्व यूरोपीय समयः (Bucharest)',
         'Europe/Budapest' => 'मध्य यूरोपीय समयः (Budapest)',
-        'Europe/Busingen' => 'मध्य यूरोपीय समयः (Busingen)',
-        'Europe/Chisinau' => 'पौर्व यूरोपीय समयः (Chisinau)',
+        'Europe/Busingen' => 'मध्य यूरोपीय समयः (Büsingen)',
+        'Europe/Chisinau' => 'पौर्व यूरोपीय समयः (Chișinău)',
         'Europe/Copenhagen' => 'मध्य यूरोपीय समयः (Copenhagen)',
         'Europe/Dublin' => 'ग्रीनविच मीन समयः (Dublin)',
         'Europe/Gibraltar' => 'मध्य यूरोपीय समयः (Gibraltar)',
@@ -192,6 +197,7 @@
         'Europe/Jersey' => 'ग्रीनविच मीन समयः (Jersey)',
         'Europe/Kaliningrad' => 'पौर्व यूरोपीय समयः (Kaliningrad)',
         'Europe/Kiev' => 'पौर्व यूरोपीय समयः (Kyiv)',
+        'Europe/Kyiv' => 'पौर्व यूरोपीय समयः (Kyiv)',
         'Europe/Kirov' => 'रष्यदेश: समय: (Kirov)',
         'Europe/Lisbon' => 'पाश्चात्य यूरोपीय समयः (Lisbon)',
         'Europe/Ljubljana' => 'मध्य यूरोपीय समयः (Ljubljana)',
@@ -216,7 +222,7 @@
         'Europe/Sofia' => 'पौर्व यूरोपीय समयः (Sofia)',
         'Europe/Stockholm' => 'मध्य यूरोपीय समयः (Stockholm)',
         'Europe/Tallinn' => 'पौर्व यूरोपीय समयः (Tallinn)',
-        'Europe/Tirane' => 'मध्य यूरोपीय समयः (Tirane)',
+        'Europe/Tirane' => 'मध्य यूरोपीय समयः (Tirana)',
         'Europe/Ulyanovsk' => 'रष्यदेश: समय: (Ulyanovsk)',
         'Europe/Vaduz' => 'मध्य यूरोपीय समयः (Vaduz)',
         'Europe/Vatican' => 'मध्य यूरोपीय समयः (Vatican)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sc.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sc.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sc.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sc.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Ora de s’Àfrica orientale (Addis Abeba)',
         'Africa/Algiers' => 'Ora de s’Europa tzentrale (Algeri)',
         'Africa/Asmera' => 'Ora de s’Àfrica orientale (Asmara)',
+        'Africa/Asmara' => 'Ora de s’Àfrica orientale (Asmara)',
         'Africa/Bamako' => 'Ora de su meridianu de Greenwich (Bamako)',
         'Africa/Bangui' => 'Ora de s’Àfrica otzidentale (Bangui)',
         'Africa/Banjul' => 'Ora de su meridianu de Greenwich (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Ora de s’Àfrica orientale (Dar es Salaam)',
         'Africa/Djibouti' => 'Ora de s’Àfrica orientale (Djibouti)',
         'Africa/Douala' => 'Ora de s’Àfrica otzidentale (Douala)',
-        'Africa/El_Aaiun' => 'Ora de s’Europa otzidentale (El Aaiun)',
+        'Africa/El_Aaiun' => 'Ora de s’Europa otzidentale (El Aaiún)',
         'Africa/Freetown' => 'Ora de su meridianu de Greenwich (Freetown)',
         'Africa/Gaborone' => 'Ora de s’Àfrica tzentrale (Gaborone)',
         'Africa/Harare' => 'Ora de s’Àfrica tzentrale (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Ora de s’Àfrica otzidentale (Kinshasa)',
         'Africa/Lagos' => 'Ora de s’Àfrica otzidentale (Lagos)',
         'Africa/Libreville' => 'Ora de s’Àfrica otzidentale (Libreville)',
-        'Africa/Lome' => 'Ora de su meridianu de Greenwich (Lome)',
+        'Africa/Lome' => 'Ora de su meridianu de Greenwich (Lomé)',
         'Africa/Luanda' => 'Ora de s’Àfrica otzidentale (Luanda)',
         'Africa/Lubumbashi' => 'Ora de s’Àfrica tzentrale (Lubumbashi)',
         'Africa/Lusaka' => 'Ora de s’Àfrica tzentrale (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Ora de s’Àfrica orientale (Mogadìsciu)',
         'Africa/Monrovia' => 'Ora de su meridianu de Greenwich (Monròvia)',
         'Africa/Nairobi' => 'Ora de s’Àfrica orientale (Nairobi)',
-        'Africa/Ndjamena' => 'Ora de s’Àfrica otzidentale (Ndjamena)',
+        'Africa/Ndjamena' => 'Ora de s’Àfrica otzidentale (N’Djamena)',
         'Africa/Niamey' => 'Ora de s’Àfrica otzidentale (Niamey)',
         'Africa/Nouakchott' => 'Ora de su meridianu de Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'Ora de su meridianu de Greenwich (Ouagadougou)',
@@ -58,9 +59,9 @@
         'America/Anchorage' => 'Ora de s’Alaska (Anchorage)',
         'America/Anguilla' => 'Ora de s’Atlànticu (Anguilla)',
         'America/Antigua' => 'Ora de s’Atlànticu (Antigua)',
-        'America/Araguaina' => 'Ora de Brasìlia (Araguaina)',
+        'America/Araguaina' => 'Ora de Brasìlia (Araguaína)',
         'America/Argentina/La_Rioja' => 'Ora de s’Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Ora de s’Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Ora de s’Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Ora de s’Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Ora de s’Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Ora de s’Argentina (San Luis)',
@@ -71,28 +72,33 @@
         'America/Bahia' => 'Ora de Brasìlia (Bahia)',
         'America/Bahia_Banderas' => 'Ora tzentrale USA (Bahía de Banderas)',
         'America/Barbados' => 'Ora de s’Atlànticu (Barbados)',
-        'America/Belem' => 'Ora de Brasìlia (Belem)',
+        'America/Belem' => 'Ora de Brasìlia (Belém)',
         'America/Belize' => 'Ora tzentrale USA (Belize)',
         'America/Blanc-Sablon' => 'Ora de s’Atlànticu (Blanc-Sablon)',
         'America/Boa_Vista' => 'Ora de s’Amatzònia (Boa Vista)',
-        'America/Bogota' => 'Ora de sa Colòmbia (Bogota)',
+        'America/Bogota' => 'Ora de sa Colòmbia (Bogotá)',
         'America/Boise' => 'Ora Montes Pedrosos USA (Boise)',
         'America/Buenos_Aires' => 'Ora de s’Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Ora de s’Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Ora Montes Pedrosos USA (Cambridge Bay)',
         'America/Campo_Grande' => 'Ora de s’Amatzònia (Campo Grande)',
         'America/Cancun' => 'Ora orientale USA (Cancún)',
         'America/Caracas' => 'Ora de su Venetzuela (Caracas)',
         'America/Catamarca' => 'Ora de s’Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Ora de s’Argentina (Catamarca)',
         'America/Cayenne' => 'Ora de sa Guiana Frantzesa (Cayenne)',
         'America/Cayman' => 'Ora orientale USA (Cayman)',
         'America/Chicago' => 'Ora tzentrale USA (Chicago)',
         'America/Chihuahua' => 'Ora tzentrale USA (Chihuahua)',
         'America/Ciudad_Juarez' => 'Ora Montes Pedrosos USA (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Ora orientale USA (Atikokan)',
-        'America/Cordoba' => 'Ora de s’Argentina (Cordoba)',
+        'America/Atikokan' => 'Ora orientale USA (Atikokan)',
+        'America/Cordoba' => 'Ora de s’Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Ora de s’Argentina (Córdoba)',
         'America/Costa_Rica' => 'Ora tzentrale USA (Costa Rica)',
+        'America/Coyhaique' => 'Ora de su Tzile (Coyhaique)',
         'America/Creston' => 'Ora Montes Pedrosos USA (Creston)',
-        'America/Cuiaba' => 'Ora de s’Amatzònia (Cuiaba)',
+        'America/Cuiaba' => 'Ora de s’Amatzònia (Cuiabá)',
         'America/Curacao' => 'Ora de s’Atlànticu (Curaçao)',
         'America/Danmarkshavn' => 'Ora de su meridianu de Greenwich (Danmarkshavn)',
         'America/Dawson' => 'Ora de su Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Ora orientale USA (Detroit)',
         'America/Dominica' => 'Ora de s’Atlànticu (Dominica)',
         'America/Edmonton' => 'Ora Montes Pedrosos USA (Edmonton)',
-        'America/Eirunepe' => 'Ora de Acre (Eirunepe)',
+        'America/Eirunepe' => 'Ora de Acre (Eirunepé)',
         'America/El_Salvador' => 'Ora tzentrale USA (El Salvador)',
         'America/Fort_Nelson' => 'Ora Montes Pedrosos USA (Fort Nelson)',
         'America/Fortaleza' => 'Ora de Brasìlia (Fortaleza)',
         'America/Glace_Bay' => 'Ora de s’Atlànticu (Glace Bay)',
-        'America/Godthab' => 'Ora Groenlàndia (Nuuk)',
+        'America/Godthab' => 'Ora de sa Groenlàndia (Nuuk)',
+        'America/Nuuk' => 'Ora de sa Groenlàndia (Nuuk)',
         'America/Goose_Bay' => 'Ora de s’Atlànticu (Goose Bay)',
         'America/Grand_Turk' => 'Ora orientale USA (Grand Turk)',
         'America/Grenada' => 'Ora de s’Atlànticu (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Ora orientale USA (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Ora orientale USA (Winamac, Indiana)',
         'America/Indianapolis' => 'Ora orientale USA (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Ora orientale USA (Indianapolis)',
         'America/Inuvik' => 'Ora Montes Pedrosos USA (Inuvik)',
         'America/Iqaluit' => 'Ora orientale USA (Iqaluit)',
         'America/Jamaica' => 'Ora orientale USA (Jamaica)',
         'America/Jujuy' => 'Ora de s’Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Ora de s’Argentina (Jujuy)',
         'America/Juneau' => 'Ora de s’Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Ora orientale USA (Monticello, Kentucky)',
         'America/Kralendijk' => 'Ora de s’Atlànticu (Kralendijk)',
@@ -136,15 +145,17 @@
         'America/Lima' => 'Ora de su Perù (Lima)',
         'America/Los_Angeles' => 'Ora de su Patzìficu USA (Los Angeles)',
         'America/Louisville' => 'Ora orientale USA (Louisville)',
+        'America/Kentucky/Louisville' => 'Ora orientale USA (Louisville)',
         'America/Lower_Princes' => 'Ora de s’Atlànticu (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Ora de Brasìlia (Maceio)',
+        'America/Maceio' => 'Ora de Brasìlia (Maceió)',
         'America/Managua' => 'Ora tzentrale USA (Managua)',
         'America/Manaus' => 'Ora de s’Amatzònia (Manaus)',
         'America/Marigot' => 'Ora de s’Atlànticu (Marigot)',
         'America/Martinique' => 'Ora de s’Atlànticu (Martinica)',
         'America/Matamoros' => 'Ora tzentrale USA (Matamoros)',
-        'America/Mazatlan' => 'Ora de su Patzìficu (Mèssicu) (Mazatlan)',
+        'America/Mazatlan' => 'Ora de su Patzìficu (Mèssicu) (Mazatlán)',
         'America/Mendoza' => 'Ora de s’Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Ora de s’Argentina (Mendoza)',
         'America/Menominee' => 'Ora tzentrale USA (Menominee)',
         'America/Merida' => 'Ora tzentrale USA (Mérida)',
         'America/Metlakatla' => 'Ora de s’Alaska (Metlakatla)',
@@ -175,11 +186,11 @@
         'America/Regina' => 'Ora tzentrale USA (Regina)',
         'America/Resolute' => 'Ora tzentrale USA (Resolute)',
         'America/Rio_Branco' => 'Ora de Acre (Rio Branco)',
-        'America/Santarem' => 'Ora de Brasìlia (Santarem)',
+        'America/Santarem' => 'Ora de Brasìlia (Santarém)',
         'America/Santiago' => 'Ora de su Tzile (Santiago)',
         'America/Santo_Domingo' => 'Ora de s’Atlànticu (Santo Domingo)',
-        'America/Sao_Paulo' => 'Ora de Brasìlia (Sao Paulo)',
-        'America/Scoresbysund' => 'Ora Groenlàndia (Ittoqqortoormiit)',
+        'America/Sao_Paulo' => 'Ora de Brasìlia (São Paulo)',
+        'America/Scoresbysund' => 'Ora de sa Groenlàndia (Ittoqqortoormiit)',
         'America/Sitka' => 'Ora de s’Alaska (Sitka)',
         'America/St_Barthelemy' => 'Ora de s’Atlànticu (Santu Bartolomeu)',
         'America/St_Johns' => 'Ora de Terranova (Santu Giuanne)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Ora de sa Zelanda Noa (McMurdo)',
         'Antarctica/Palmer' => 'Ora de su Tzile (Palmer)',
         'Antarctica/Rothera' => 'Ora de Rothera',
-        'Antarctica/Syowa' => 'Ora de Syowa',
+        'Antarctica/Syowa' => 'Ora de Syowa (Showa)',
         'Antarctica/Troll' => 'Ora de su meridianu de Greenwich (Troll)',
         'Antarctica/Vostok' => 'Ora de Vostok',
         'Arctic/Longyearbyen' => 'Ora de s’Europa tzentrale (Longyearbyen)',
         'Asia/Aden' => 'Ora àraba (Aden)',
         'Asia/Almaty' => 'Ora de su Kazàkistan (Almaty)',
         'Asia/Amman' => 'Ora de s’Europa orientale (Amman)',
-        'Asia/Anadyr' => 'Ora de Anadyr',
+        'Asia/Anadyr' => 'Ora de Petropavlovsk-Kamchatski (Anadyr)',
         'Asia/Aqtau' => 'Ora de su Kazàkistan (Aktau)',
         'Asia/Aqtobe' => 'Ora de su Kazàkistan (Aktobe)',
         'Asia/Ashgabat' => 'Ora de su Turkmènistan (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Ora àraba (Bahrein)',
         'Asia/Baku' => 'Ora de s’Azerbaigiàn (Baku)',
         'Asia/Bangkok' => 'Ora de s’Indotzina (Bangkok)',
-        'Asia/Barnaul' => 'Ora Rùssia (Barnaul)',
+        'Asia/Barnaul' => 'Ora de Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Ora de s’Europa orientale (Beirut)',
         'Asia/Bishkek' => 'Ora de su Kirghìzistan (Bishkek)',
         'Asia/Brunei' => 'Ora de su Brunei',
         'Asia/Calcutta' => 'Ora istandard de s’Ìndia (Calcuta)',
+        'Asia/Kolkata' => 'Ora istandard de s’Ìndia (Calcuta)',
         'Asia/Chita' => 'Ora de Yakutsk (Čita)',
         'Asia/Colombo' => 'Ora istandard de s’Ìndia (Colombo)',
         'Asia/Damascus' => 'Ora de s’Europa orientale (Damascu)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Ora de s’Europa orientale (Gaza)',
         'Asia/Hebron' => 'Ora de s’Europa orientale (Hebron)',
         'Asia/Hong_Kong' => 'Ora de Hong Kong',
-        'Asia/Hovd' => 'Ora de Hovd',
+        'Asia/Hovd' => 'Ora de Hovd (Khovd)',
         'Asia/Irkutsk' => 'Ora de Irkutsk',
         'Asia/Jakarta' => 'Ora de s’Indonèsia otzidentale (Giacarta)',
         'Asia/Jayapura' => 'Ora de s’Indonèsia orientale (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Ora de Petropavlovsk-Kamchatski (Kamchatka)',
         'Asia/Karachi' => 'Ora de su Pàkistan (Karachi)',
         'Asia/Katmandu' => 'Ora de su Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Ora de su Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Ora de Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Ora de Krasnoyarsk (Krasnojarsk)',
         'Asia/Kuala_Lumpur' => 'Ora de sa Malèsia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Ora istandard de su Gulfu (Mascate)',
         'Asia/Nicosia' => 'Ora de s’Europa orientale (Nicosia)',
         'Asia/Novokuznetsk' => 'Ora de Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Ora de Novosibirsk',
+        'Asia/Novosibirsk' => 'Ora de Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Ora de Omsk',
         'Asia/Oral' => 'Ora de su Kazàkistan (Oral)',
         'Asia/Phnom_Penh' => 'Ora de s’Indotzina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Ora de su Kazàkistan (Qostanay)',
         'Asia/Qyzylorda' => 'Ora de su Kazàkistan (Kyzylorda)',
         'Asia/Rangoon' => 'Ora de su Myanmàr (Yangon)',
+        'Asia/Yangon' => 'Ora de su Myanmàr (Yangon)',
         'Asia/Riyadh' => 'Ora àraba (Riyàd)',
         'Asia/Saigon' => 'Ora de s’Indotzina (Tzitade de Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Ora de Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Ora de s’Indotzina (Tzitade de Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Ora de Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Ora de s’Uzbèkistan (Samarcanda)',
         'Asia/Seoul' => 'Ora coreana (Seùl)',
         'Asia/Shanghai' => 'Ora de sa Tzina (Shanghai)',
@@ -281,10 +296,10 @@
         'Asia/Tbilisi' => 'Ora de sa Geòrgia (Tbilisi)',
         'Asia/Tehran' => 'Ora de s’Iràn (Teheràn)',
         'Asia/Thimphu' => 'Ora de su Bhutàn (Thimphu)',
-        'Asia/Tokyo' => 'Ora de su Giapone (Tokyo)',
-        'Asia/Tomsk' => 'Ora Rùssia (Tomsk)',
+        'Asia/Tokyo' => 'Ora de su Giapone (Tòkyo)',
+        'Asia/Tomsk' => 'Ora de Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ora de Ulàn Bator',
-        'Asia/Urumqi' => 'Ora Tzina (Urumqi)',
+        'Asia/Urumqi' => 'Ora Tzina (Ürümqi)',
         'Asia/Ust-Nera' => 'Ora de Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Ora de s’Indotzina (Vientiane)',
         'Asia/Vladivostok' => 'Ora de Vladivostok',
@@ -296,7 +311,8 @@
         'Atlantic/Canary' => 'Ora de s’Europa otzidentale (Ìsulas Canàrias)',
         'Atlantic/Cape_Verde' => 'Ora de su Cabu Birde',
         'Atlantic/Faeroe' => 'Ora de s’Europa otzidentale (Ìsulas Føroyar)',
-        'Atlantic/Madeira' => 'Ora de s’Europa otzidentale (Madeira)',
+        'Atlantic/Faroe' => 'Ora de s’Europa otzidentale (Ìsulas Føroyar)',
+        'Atlantic/Madeira' => 'Ora de s’Europa otzidentale (Madèira)',
         'Atlantic/Reykjavik' => 'Ora de su meridianu de Greenwich (Reykjavik)',
         'Atlantic/South_Georgia' => 'Ora de sa Geòrgia de su Sud',
         'Atlantic/St_Helena' => 'Ora de su meridianu de Greenwich (Sant’Elene)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Tempus coordinadu universale',
         'Europe/Amsterdam' => 'Ora de s’Europa tzentrale (Amsterdam)',
         'Europe/Andorra' => 'Ora de s’Europa tzentrale (Andorra)',
-        'Europe/Astrakhan' => 'Ora de Mosca (Astrakhan)',
+        'Europe/Astrakhan' => 'Ora de Samara (Astrakhan)',
         'Europe/Athens' => 'Ora de s’Europa orientale (Atene)',
         'Europe/Belgrade' => 'Ora de s’Europa tzentrale (Belgradu)',
         'Europe/Berlin' => 'Ora de s’Europa tzentrale (Berlinu)',
@@ -325,7 +341,7 @@
         'Europe/Bucharest' => 'Ora de s’Europa orientale (Bùcarest)',
         'Europe/Budapest' => 'Ora de s’Europa tzentrale (Bùdapest)',
         'Europe/Busingen' => 'Ora de s’Europa tzentrale (Büsingen)',
-        'Europe/Chisinau' => 'Ora de s’Europa orientale (Chisinau)',
+        'Europe/Chisinau' => 'Ora de s’Europa orientale (Chișinău)',
         'Europe/Copenhagen' => 'Ora de s’Europa tzentrale (Copenhagen)',
         'Europe/Dublin' => 'Ora de su meridianu de Greenwich (Dublinu)',
         'Europe/Gibraltar' => 'Ora de s’Europa tzentrale (Gibilterra)',
@@ -335,13 +351,14 @@
         'Europe/Istanbul' => 'Ora Turchia (Ìstanbul)',
         'Europe/Jersey' => 'Ora de su meridianu de Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Ora de s’Europa orientale (Kaliningrad)',
-        'Europe/Kiev' => 'Ora de s’Europa orientale (Kyiv)',
-        'Europe/Kirov' => 'Ora Rùssia (Kirov)',
+        'Europe/Kiev' => 'Ora de s’Europa orientale (Kiev)',
+        'Europe/Kyiv' => 'Ora de s’Europa orientale (Kiev)',
+        'Europe/Kirov' => 'Ora de Mosca (Kirov)',
         'Europe/Lisbon' => 'Ora de s’Europa otzidentale (Lisbona)',
-        'Europe/Ljubljana' => 'Ora de s’Europa tzentrale (Ljubljana)',
+        'Europe/Ljubljana' => 'Ora de s’Europa tzentrale (Lubiana)',
         'Europe/London' => 'Ora de su meridianu de Greenwich (Londra)',
         'Europe/Luxembourg' => 'Ora de s’Europa tzentrale (Lussemburgu)',
-        'Europe/Madrid' => 'Ora de s’Europa tzentrale (Madrid)',
+        'Europe/Madrid' => 'Ora de s’Europa tzentrale (Madrìd)',
         'Europe/Malta' => 'Ora de s’Europa tzentrale (Malta)',
         'Europe/Mariehamn' => 'Ora de s’Europa orientale (Mariehamn)',
         'Europe/Minsk' => 'Ora de Mosca (Minsk)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Ora de Samara',
         'Europe/San_Marino' => 'Ora de s’Europa tzentrale (Santu Marinu)',
         'Europe/Sarajevo' => 'Ora de s’Europa tzentrale (Sarajevo)',
-        'Europe/Saratov' => 'Ora de Mosca (Saratov)',
+        'Europe/Saratov' => 'Ora de Samara (Saratov)',
         'Europe/Simferopol' => 'Ora de Mosca (Simferopol)',
         'Europe/Skopje' => 'Ora de s’Europa tzentrale (Skopje)',
         'Europe/Sofia' => 'Ora de s’Europa orientale (Sofia)',
         'Europe/Stockholm' => 'Ora de s’Europa tzentrale (Istocolma)',
         'Europe/Tallinn' => 'Ora de s’Europa orientale (Tallinn)',
         'Europe/Tirane' => 'Ora de s’Europa tzentrale (Tirana)',
-        'Europe/Ulyanovsk' => 'Ora de Mosca (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Ora de Samara (Ulyanovsk)',
         'Europe/Vaduz' => 'Ora de s’Europa tzentrale (Vaduz)',
         'Europe/Vatican' => 'Ora de s’Europa tzentrale (Tzitade de su Vaticanu)',
         'Europe/Vienna' => 'Ora de s’Europa tzentrale (Vienna)',
-        'Europe/Vilnius' => 'Ora de s’Europa orientale (Vilnius)',
-        'Europe/Volgograd' => 'Ora de Volgograd',
+        'Europe/Vilnius' => 'Ora de s’Europa orientale (Vìlnius)',
+        'Europe/Volgograd' => 'Ora de Mosca (Volgograd)',
         'Europe/Warsaw' => 'Ora de s’Europa tzentrale (Varsàvia)',
         'Europe/Zagreb' => 'Ora de s’Europa tzentrale (Zagàbria)',
         'Europe/Zurich' => 'Ora de s’Europa tzentrale (Zurigu)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Ora de s’Otzèanu Indianu (Chagos)',
         'Indian/Christmas' => 'Ora de s’Ìsula de sa Natividade',
         'Indian/Cocos' => 'Ora de sas Ìsulas Cocos',
-        'Indian/Comoro' => 'Ora de s’Àfrica orientale (Comoro)',
+        'Indian/Comoro' => 'Ora de s’Àfrica orientale (Comores)',
         'Indian/Kerguelen' => 'Ora de sa Terras australes e antàrticas frantzesas (Kerguelen)',
-        'Indian/Mahe' => 'Ora de sas Seychelles (Mahe)',
+        'Indian/Mahe' => 'Ora de sas Seychelles (Mahé)',
         'Indian/Maldives' => 'Ora de sas Maldivas',
         'Indian/Mauritius' => 'Ora de sas Maurìtzius',
         'Indian/Mayotte' => 'Ora de s’Àfrica orientale (Maiota)',
@@ -387,17 +404,18 @@
         'Pacific/Auckland' => 'Ora de sa Zelanda Noa (Auckland)',
         'Pacific/Bougainville' => 'Ora de sa Pàpua Guinea Noa (Bougainville)',
         'Pacific/Chatham' => 'Ora de sas Chatham',
-        'Pacific/Easter' => 'Ora de s’Ìsula de Pasca (Easter)',
+        'Pacific/Easter' => 'Ora de s’Ìsula de Pasca',
         'Pacific/Efate' => 'Ora de su Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Ora de sas Ìsulas de sa Fenìtzie (Enderbury)',
+        'Pacific/Enderbury' => 'Ora de sas Ìsulas de sa Fenìtzie (Canton)',
+        'Pacific/Kanton' => 'Ora de sas Ìsulas de sa Fenìtzie (Canton)',
         'Pacific/Fakaofo' => 'Ora de su Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Ora de sas Fiji',
         'Pacific/Funafuti' => 'Ora de su Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Ora de sas Galàpagos (Galapagos)',
+        'Pacific/Galapagos' => 'Ora de sas Galàpagos (Ìsulas Galàpagos)',
         'Pacific/Gambier' => 'Ora de Gambier',
         'Pacific/Guadalcanal' => 'Ora de sas Ìsulas Salomone (Guadalcanal)',
         'Pacific/Guam' => 'Ora istandard de Chamorro (Guàm)',
-        'Pacific/Honolulu' => 'Ora de sas ìsulas Hawaii-Aleutinas (Honolulu)',
+        'Pacific/Honolulu' => 'Ora istandard de sas ìsulas Hawaii-Aleutinas (Honolulu)',
         'Pacific/Kiritimati' => 'Ora de sas Ìsulas de sa Lìnia (Kiritimati)',
         'Pacific/Kosrae' => 'Ora de Kosrae',
         'Pacific/Kwajalein' => 'Ora de sas Ìsulas Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Ora de Nauru',
         'Pacific/Niue' => 'Ora de Niue',
         'Pacific/Norfolk' => 'Ora de s’Ìsula Norfolk',
-        'Pacific/Noumea' => 'Ora de sa Caledònia Noa (Noumea)',
+        'Pacific/Noumea' => 'Ora de sa Caledònia Noa (Nouméa)',
         'Pacific/Pago_Pago' => 'Ora de sas Samoa (Pago Pago)',
         'Pacific/Palau' => 'Ora de Palau',
         'Pacific/Pitcairn' => 'Ora de sas Pitcairn',
         'Pacific/Ponape' => 'Ora de Pohnpei',
+        'Pacific/Pohnpei' => 'Ora de Pohnpei',
         'Pacific/Port_Moresby' => 'Ora de sa Pàpua Guinea Noa (Port Moresby)',
         'Pacific/Rarotonga' => 'Ora de sas Ìsulas Cook (Rarotonga)',
         'Pacific/Saipan' => 'Ora istandard de Chamorro (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Ora de sas Ìsulas Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Ora de su Tonga (Tongatapu)',
         'Pacific/Truk' => 'Ora de su Chuuk',
+        'Pacific/Chuuk' => 'Ora de su Chuuk',
         'Pacific/Wake' => 'Ora de sas Ìsulas Wake',
         'Pacific/Wallis' => 'Ora de Wallis e Futuna',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sd_Deva.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sd_Deva.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sd_Deva.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sd_Deva.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,6 +37,7 @@
         'America/Chihuahua' => 'मरकज़ी वक्त (چي هوا هوا)',
         'America/Ciudad_Juarez' => 'पहाड़ी वक्त (سوڊيڊ جوريز)',
         'America/Coral_Harbour' => 'ओभरी वक्त (اٽيڪوڪن)',
+        'America/Atikokan' => 'ओभरी वक्त (اٽيڪوڪن)',
         'America/Costa_Rica' => 'मरकज़ी वक्त (ڪوسٽا ريڪا)',
         'America/Creston' => 'पहाड़ी वक्त (ڪريسٽن)',
         'America/Curacao' => 'अटलांटिक वक्त (ڪيوراسائو)',
@@ -51,6 +52,7 @@
         'America/Fort_Nelson' => 'पहाड़ी वक्त (فورٽ نيلسن)',
         'America/Glace_Bay' => 'अटलांटिक वक्त (گليس بي)',
         'America/Godthab' => 'گرين لينڊ वक़्तु (نيوڪ)',
+        'America/Nuuk' => 'گرين لينڊ वक़्तु (نيوڪ)',
         'America/Goose_Bay' => 'अटलांटिक वक्त (گوز بي)',
         'America/Grand_Turk' => 'ओभरी वक्त (گرانڊ ترڪ)',
         'America/Grenada' => 'अटलांटिक वक्त (گريناڊا)',
@@ -65,6 +67,7 @@
         'America/Indiana/Vincennes' => 'ओभरी वक्त (ونسینیز، انڊیانا)',
         'America/Indiana/Winamac' => 'ओभरी वक्त (ويناميڪ، انڊيانا)',
         'America/Indianapolis' => 'ओभरी वक्त (انڊيانا پولس)',
+        'America/Indiana/Indianapolis' => 'ओभरी वक्त (انڊيانا پولس)',
         'America/Inuvik' => 'पहाड़ी वक्त (انووڪ)',
         'America/Iqaluit' => 'ओभरी वक्त (اڪالوئٽ)',
         'America/Jamaica' => 'ओभरी वक्त (جمائڪا)',
@@ -72,6 +75,7 @@
         'America/Kralendijk' => 'अटलांटिक वक्त (ڪرالينڊڪ)',
         'America/Los_Angeles' => 'पेसिफिक वक्त (لاس اينجلس)',
         'America/Louisville' => 'ओभरी वक्त (لوئي ويل)',
+        'America/Kentucky/Louisville' => 'ओभरी वक्त (لوئي ويل)',
         'America/Lower_Princes' => 'अटलांटिक वक्त (لوئر پرنسز ڪوارٽر)',
         'America/Managua' => 'मरकज़ी वक्त (ماناگوا)',
         'America/Marigot' => 'अटलांटिक वक्त (ميريگوٽ)',
@@ -117,7 +121,6 @@
         'Arctic/Longyearbyen' => 'मरकज़ी यूरोपी वक्त (لانگ ائيربن)',
         'Asia/Amman' => 'ओभरी यूरोपी वक्तु (امان)',
         'Asia/Anadyr' => 'रशिया वक़्तु (انيدر)',
-        'Asia/Barnaul' => 'रशिया वक़्तु (برنل)',
         'Asia/Beirut' => 'ओभरी यूरोपी वक्तु (بيروت)',
         'Asia/Damascus' => 'ओभरी यूरोपी वक्तु (دمشق)',
         'Asia/Famagusta' => 'ओभरी यूरोपी वक्तु (فاماگوستا)',
@@ -125,11 +128,12 @@
         'Asia/Hebron' => 'ओभरी यूरोपी वक्तु (هيبرون)',
         'Asia/Kamchatka' => 'रशिया वक़्तु (ڪمچاسڪي)',
         'Asia/Nicosia' => 'ओभरी यूरोपी वक्तु (نيڪوسيا)',
-        'Asia/Tomsk' => 'रशिया वक़्तु (تمسڪ)',
         'Asia/Urumqi' => 'चीन वक़्तु (يورمڪي)',
+        'Atlantic/Azores' => 'वक़्तु (ازورز)',
         'Atlantic/Bermuda' => 'अटलांटिक वक्त (برمودا)',
         'Atlantic/Canary' => 'उलहंदो यूरोपी वक्तु (ڪينري)',
         'Atlantic/Faeroe' => 'उलहंदो यूरोपी वक्तु (فيرو)',
+        'Atlantic/Faroe' => 'उलहंदो यूरोपी वक्तु (فيرو)',
         'Atlantic/Madeira' => 'उलहंदो यूरोपी वक्तु (ماڊيرا)',
         'Atlantic/Reykjavik' => 'ग्रीनविच मीन वक़्तु (ريڪيوڪ)',
         'Atlantic/St_Helena' => 'ग्रीनविच मीन वक़्तु (سينٽ هيلينا)',
@@ -137,6 +141,7 @@
         'Etc/UTC' => 'गदि॒यल आलमी वक्तु',
         'Europe/Amsterdam' => 'मरकज़ी यूरोपी वक्त (ايمسٽرڊيم)',
         'Europe/Andorra' => 'मरकज़ी यूरोपी वक्त (اندورا)',
+        'Europe/Astrakhan' => 'रशिया वक़्तु (آستراخان)',
         'Europe/Athens' => 'ओभरी यूरोपी वक्तु (ايٿنز)',
         'Europe/Belgrade' => 'मरकज़ी यूरोपी वक्त (بلغراد)',
         'Europe/Berlin' => 'मरकज़ी यूरोपी वक्त (برلن)',
@@ -156,7 +161,7 @@
         'Europe/Jersey' => 'ग्रीनविच मीन वक़्तु (جرسي)',
         'Europe/Kaliningrad' => 'ओभरी यूरोपी वक्तु (ڪلينن گراڊ)',
         'Europe/Kiev' => 'ओभरी यूरोपी वक्तु (ڪِيو)',
-        'Europe/Kirov' => 'रशिया वक़्तु (ڪيروف)',
+        'Europe/Kyiv' => 'ओभरी यूरोपी वक्तु (ڪِيو)',
         'Europe/Lisbon' => 'उलहंदो यूरोपी वक्तु (لسبن)',
         'Europe/Ljubljana' => 'मरकज़ी यूरोपी वक्त (لبليانا)',
         'Europe/London' => 'ग्रीनविच मीन वक़्तु (لنڊن)',
@@ -174,14 +179,16 @@
         'Europe/Samara' => 'रशिया वक़्तु (سمارا)',
         'Europe/San_Marino' => 'मरकज़ी यूरोपी वक्त (سين مرينو)',
         'Europe/Sarajevo' => 'मरकज़ी यूरोपी वक्त (سراجیوو)',
+        'Europe/Saratov' => 'रशिया वक़्तु (سراتو)',
         'Europe/Skopje' => 'मरकज़ी यूरोपी वक्त (اسڪوپي)',
         'Europe/Sofia' => 'ओभरी यूरोपी वक्तु (سوفيا)',
         'Europe/Stockholm' => 'मरकज़ी यूरोपी वक्त (اسٽاڪ هوم)',
         'Europe/Tallinn' => 'ओभरी यूरोपी वक्तु (ٽالن)',
         'Europe/Tirane' => 'मरकज़ी यूरोपी वक्त (تراني)',
+        'Europe/Ulyanovsk' => 'रशिया वक़्तु (اليانوسڪ)',
         'Europe/Vaduz' => 'मरकज़ी यूरोपी वक्त (وڊوز)',
         'Europe/Vatican' => 'मरकज़ी यूरोपी वक्त (وئٽيڪن)',
-        'Europe/Vienna' => 'मरकज़ी यूरोपी वक्त (وينا)',
+        'Europe/Vienna' => 'मरकज़ी यूरोपी वक्त (ويئينا)',
         'Europe/Vilnius' => 'ओभरी यूरोपी वक्तु (ويلنيس)',
         'Europe/Warsaw' => 'मरकज़ी यूरोपी वक्त (وارسا)',
         'Europe/Zagreb' => 'मरकज़ी यूरोपी वक्त (زغرب)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sd.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'اوڀر آفريڪا جو وقت (ايڊيس اببا)',
         'Africa/Algiers' => 'مرڪزي يورپي وقت (الجيرز)',
         'Africa/Asmera' => 'اوڀر آفريڪا جو وقت (ازمارا)',
+        'Africa/Asmara' => 'اوڀر آفريڪا جو وقت (ازمارا)',
         'Africa/Bamako' => 'گرين وچ مين ٽائيم (باماڪو)',
         'Africa/Bangui' => 'اولهه آفريقا جو وقت (بنگي)',
         'Africa/Banjul' => 'گرين وچ مين ٽائيم (بينجال)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'ڪولمبيا جو وقت (بگوٽا)',
         'America/Boise' => 'پهاڙي وقت (بوئس)',
         'America/Buenos_Aires' => 'ارجنٽينا جو وقت (بيونوس ايئرس)',
+        'America/Argentina/Buenos_Aires' => 'ارجنٽينا جو وقت (بيونوس ايئرس)',
         'America/Cambridge_Bay' => 'پهاڙي وقت (ڪيمبرج بي)',
         'America/Campo_Grande' => 'ايميزون جو وقت (ڪيمپو گرانڊي)',
         'America/Cancun' => 'مشرقي وقت (ڪانڪون)',
         'America/Caracas' => 'وينزويلا جو وقت (ڪراڪس)',
         'America/Catamarca' => 'ارجنٽينا جو وقت (ڪيٽا مارڪا)',
+        'America/Argentina/Catamarca' => 'ارجنٽينا جو وقت (ڪيٽا مارڪا)',
         'America/Cayenne' => 'فرانسيسي گيانا جو وقت (ڪائين)',
         'America/Cayman' => 'مشرقي وقت (سيامن)',
         'America/Chicago' => 'مرڪزي وقت (شڪاگو)',
         'America/Chihuahua' => 'مرڪزي وقت (چي هوا هوا)',
         'America/Ciudad_Juarez' => 'پهاڙي وقت (سوڊيڊ جوريز)',
         'America/Coral_Harbour' => 'مشرقي وقت (اٽيڪوڪن)',
+        'America/Atikokan' => 'مشرقي وقت (اٽيڪوڪن)',
         'America/Cordoba' => 'ارجنٽينا جو وقت (ڪارڊوبا)',
+        'America/Argentina/Cordoba' => 'ارجنٽينا جو وقت (ڪارڊوبا)',
         'America/Costa_Rica' => 'مرڪزي وقت (ڪوسٽا ريڪا)',
+        'America/Coyhaique' => 'چلي جو وقت (ڪوئيئيڪي)',
         'America/Creston' => 'پهاڙي وقت (ڪريسٽن)',
         'America/Cuiaba' => 'ايميزون جو وقت (ڪوئيابا)',
         'America/Curacao' => 'ايٽلانٽڪ جو وقت (ڪيوراسائو)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'بريسيليائي وقت (فورٽاليزا)',
         'America/Glace_Bay' => 'ايٽلانٽڪ جو وقت (گليس بي)',
         'America/Godthab' => 'گرين لينڊ وقت (نيوڪ)',
+        'America/Nuuk' => 'گرين لينڊ وقت (نيوڪ)',
         'America/Goose_Bay' => 'ايٽلانٽڪ جو وقت (گوز بي)',
         'America/Grand_Turk' => 'مشرقي وقت (گرانڊ ترڪ)',
         'America/Grenada' => 'ايٽلانٽڪ جو وقت (گريناڊا)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'مشرقي وقت (ونسینیز، انڊیانا)',
         'America/Indiana/Winamac' => 'مشرقي وقت (ويناميڪ، انڊيانا)',
         'America/Indianapolis' => 'مشرقي وقت (انڊيانا پولس)',
+        'America/Indiana/Indianapolis' => 'مشرقي وقت (انڊيانا پولس)',
         'America/Inuvik' => 'پهاڙي وقت (انووڪ)',
         'America/Iqaluit' => 'مشرقي وقت (اڪالوئٽ)',
         'America/Jamaica' => 'مشرقي وقت (جمائڪا)',
         'America/Jujuy' => 'ارجنٽينا جو وقت (ڪوڪوئي)',
+        'America/Argentina/Jujuy' => 'ارجنٽينا جو وقت (ڪوڪوئي)',
         'America/Juneau' => 'الاسڪا جو وقت (جونئو)',
         'America/Kentucky/Monticello' => 'مشرقي وقت (مونٽيسيلو، ڪينٽڪي)',
         'America/Kralendijk' => 'ايٽلانٽڪ جو وقت (ڪرالينڊڪ)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'پيرو جو وقت (ليما)',
         'America/Los_Angeles' => 'پيسيفڪ وقت (لاس اينجلس)',
         'America/Louisville' => 'مشرقي وقت (لوئي ويل)',
+        'America/Kentucky/Louisville' => 'مشرقي وقت (لوئي ويل)',
         'America/Lower_Princes' => 'ايٽلانٽڪ جو وقت (لوئر پرنسز ڪوارٽر)',
         'America/Maceio' => 'بريسيليائي وقت (میسیئو)',
         'America/Managua' => 'مرڪزي وقت (ماناگوا)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'مرڪزي وقت (متاموروس)',
         'America/Mazatlan' => 'ميڪسيڪن پيسيفڪ وقت (مزاٽلان)',
         'America/Mendoza' => 'ارجنٽينا جو وقت (مينڊوزا)',
+        'America/Argentina/Mendoza' => 'ارجنٽينا جو وقت (مينڊوزا)',
         'America/Menominee' => 'مرڪزي وقت (مینومیني)',
         'America/Merida' => 'مرڪزي وقت (ميريڊا)',
         'America/Metlakatla' => 'الاسڪا جو وقت (ميٽلاڪاٽالا)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'عربين جو وقت (بحرين)',
         'Asia/Baku' => 'آذربائيجان جو وقت (باڪو)',
         'Asia/Bangkok' => 'انڊو چائنا جو وقت (بئنڪاڪ)',
-        'Asia/Barnaul' => 'روس وقت (برنل)',
+        'Asia/Barnaul' => 'ڪریسنویارسڪ جو وقت (برنل)',
         'Asia/Beirut' => 'مشرقي يورپي وقت (بيروت)',
         'Asia/Bishkek' => 'ڪرغزستان جو وقت (بشڪيڪ)',
         'Asia/Brunei' => 'برونائي دارالسلام جو وقت',
         'Asia/Calcutta' => 'ڀارت جو معياري وقت (ڪلڪتا)',
+        'Asia/Kolkata' => 'ڀارت جو معياري وقت (ڪلڪتا)',
         'Asia/Chita' => 'ياڪتسڪ جو وقت (چيتا)',
         'Asia/Colombo' => 'ڀارت جو معياري وقت (ڪولمبو)',
         'Asia/Damascus' => 'مشرقي يورپي وقت (دمشق)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'روس وقت (ڪمچاسڪي)',
         'Asia/Karachi' => 'پاڪستان جو وقت (ڪراچي)',
         'Asia/Katmandu' => 'نيپال جو وقت (کٽمنڊو)',
+        'Asia/Kathmandu' => 'نيپال جو وقت (کٽمنڊو)',
         'Asia/Khandyga' => 'ياڪتسڪ جو وقت (کندياگا)',
         'Asia/Krasnoyarsk' => 'ڪریسنویارسڪ جو وقت (ڪريسنويارسڪ)',
         'Asia/Kuala_Lumpur' => 'ملائيشيا جو وقت (ڪوالالمپور)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'خليجي معياري وقت (مسقط)',
         'Asia/Nicosia' => 'مشرقي يورپي وقت (نيڪوسيا)',
         'Asia/Novokuznetsk' => 'ڪریسنویارسڪ جو وقت (نووڪزنيتسڪ)',
-        'Asia/Novosibirsk' => 'نوواسبئيرسڪ جو وقت',
+        'Asia/Novosibirsk' => 'ڪریسنویارسڪ جو وقت (نوواسبئيرسڪ)',
         'Asia/Omsk' => 'اومسڪ جو وقت',
         'Asia/Oral' => 'قزاقستان وقت (زباني)',
         'Asia/Phnom_Penh' => 'انڊو چائنا جو وقت (فنام پينه)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'قزاقستان وقت (ڪوٽانسي)',
         'Asia/Qyzylorda' => 'قزاقستان وقت (ڪيزلورڊا)',
         'Asia/Rangoon' => 'ميانمار جو وقت (رنگون)',
+        'Asia/Yangon' => 'ميانمار جو وقت (رنگون)',
         'Asia/Riyadh' => 'عربين جو وقت (رياض)',
         'Asia/Saigon' => 'انڊو چائنا جو وقت (هوچي من)',
-        'Asia/Sakhalin' => 'سخالين جو وقت (شخالين)',
+        'Asia/Ho_Chi_Minh' => 'انڊو چائنا جو وقت (هوچي من)',
+        'Asia/Sakhalin' => 'مگادان جو وقت (شخالين)',
         'Asia/Samarkand' => 'ازبڪستان جو وقت (سمرقند)',
         'Asia/Seoul' => 'ڪوريا جو وقت (سيول)',
         'Asia/Shanghai' => 'چين جو وقت (شنگهائي)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ايران جو وقت (تهران)',
         'Asia/Thimphu' => 'ڀوٽان جو وقت (ٿمفو)',
         'Asia/Tokyo' => 'جاپان جو وقت (ٽوڪيو)',
-        'Asia/Tomsk' => 'روس وقت (تمسڪ)',
+        'Asia/Tomsk' => 'ڪریسنویارسڪ جو وقت (تمسڪ)',
         'Asia/Ulaanbaatar' => 'اولان باتر جو وقت',
         'Asia/Urumqi' => 'چين وقت (يورمڪي)',
         'Asia/Ust-Nera' => 'ولادووستوڪ جو وقت (اسٽ نيرا)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'اولهه يورپي وقت (ڪينري)',
         'Atlantic/Cape_Verde' => 'ڪيپ ورڊ جو وقت (ڪيپ ورڊي)',
         'Atlantic/Faeroe' => 'اولهه يورپي وقت (فيرو)',
+        'Atlantic/Faroe' => 'اولهه يورپي وقت (فيرو)',
         'Atlantic/Madeira' => 'اولهه يورپي وقت (ماڊيرا)',
         'Atlantic/Reykjavik' => 'گرين وچ مين ٽائيم (ريڪيوڪ)',
         'Atlantic/South_Georgia' => 'ڏکڻ جارجيا جو وقت (ڏکڻ جورجيا)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'گڏيل دنياوي وقت',
         'Europe/Amsterdam' => 'مرڪزي يورپي وقت (ايمسٽرڊيم)',
         'Europe/Andorra' => 'مرڪزي يورپي وقت (اندورا)',
-        'Europe/Astrakhan' => 'ماسڪو جو وقت (آستراخان)',
+        'Europe/Astrakhan' => 'روس وقت (آستراخان)',
         'Europe/Athens' => 'مشرقي يورپي وقت (ايٿنز)',
         'Europe/Belgrade' => 'مرڪزي يورپي وقت (بلغراد)',
         'Europe/Berlin' => 'مرڪزي يورپي وقت (برلن)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'گرين وچ مين ٽائيم (جرسي)',
         'Europe/Kaliningrad' => 'مشرقي يورپي وقت (ڪلينن گراڊ)',
         'Europe/Kiev' => 'مشرقي يورپي وقت (ڪِيو)',
-        'Europe/Kirov' => 'روس وقت (ڪيروف)',
+        'Europe/Kyiv' => 'مشرقي يورپي وقت (ڪِيو)',
+        'Europe/Kirov' => 'ماسڪو جو وقت (ڪيروف)',
         'Europe/Lisbon' => 'اولهه يورپي وقت (لسبن)',
         'Europe/Ljubljana' => 'مرڪزي يورپي وقت (لبليانا)',
         'Europe/London' => 'گرين وچ مين ٽائيم (لنڊن)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'روس وقت (سمارا)',
         'Europe/San_Marino' => 'مرڪزي يورپي وقت (سين مرينو)',
         'Europe/Sarajevo' => 'مرڪزي يورپي وقت (سراجیوو)',
-        'Europe/Saratov' => 'ماسڪو جو وقت (سراتو)',
+        'Europe/Saratov' => 'روس وقت (سراتو)',
         'Europe/Simferopol' => 'ماسڪو جو وقت (سمفروپول)',
         'Europe/Skopje' => 'مرڪزي يورپي وقت (اسڪوپي)',
         'Europe/Sofia' => 'مشرقي يورپي وقت (سوفيا)',
         'Europe/Stockholm' => 'مرڪزي يورپي وقت (اسٽاڪ هوم)',
         'Europe/Tallinn' => 'مشرقي يورپي وقت (ٽالن)',
         'Europe/Tirane' => 'مرڪزي يورپي وقت (تراني)',
-        'Europe/Ulyanovsk' => 'ماسڪو جو وقت (اليانوسڪ)',
+        'Europe/Ulyanovsk' => 'روس وقت (اليانوسڪ)',
         'Europe/Vaduz' => 'مرڪزي يورپي وقت (وڊوز)',
         'Europe/Vatican' => 'مرڪزي يورپي وقت (وئٽيڪن)',
-        'Europe/Vienna' => 'مرڪزي يورپي وقت (وينا)',
+        'Europe/Vienna' => 'مرڪزي يورپي وقت (ويئينا)',
         'Europe/Vilnius' => 'مشرقي يورپي وقت (ويلنيس)',
-        'Europe/Volgograd' => 'وولگوگراد جو وقت',
+        'Europe/Volgograd' => 'ماسڪو جو وقت (وولگوگراد)',
         'Europe/Warsaw' => 'مرڪزي يورپي وقت (وارسا)',
         'Europe/Zagreb' => 'مرڪزي يورپي وقت (زغرب)',
         'Europe/Zurich' => 'مرڪزي يورپي وقت (زيورخ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'چئٿم جو وقت',
         'Pacific/Easter' => 'ايسٽر آئي لينڊ جو وقت',
         'Pacific/Efate' => 'وانواتو جو وقت (افاتي)',
-        'Pacific/Enderbury' => 'فونيڪس آئي لينڊ جو وقت (اينڊربري)',
+        'Pacific/Enderbury' => 'فونيڪس آئي لينڊ جو وقت (ڪانٽن ٻيٽ)',
+        'Pacific/Kanton' => 'فونيڪس آئي لينڊ جو وقت (ڪانٽن ٻيٽ)',
         'Pacific/Fakaofo' => 'ٽوڪيلائو جو وقت (فڪائوفو)',
         'Pacific/Fiji' => 'فجي جو وقت',
         'Pacific/Funafuti' => 'تووالو جو وقت (فنافوٽي)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'گيمبيئر جو وقت',
         'Pacific/Guadalcanal' => 'سولومن آئي لينڊ جو وقت (گواڊل ڪينال)',
         'Pacific/Guam' => 'چمورو جو معياري وقت (گوام)',
-        'Pacific/Honolulu' => 'هوائي اليوٽين جو وقت (هونو لولو)',
+        'Pacific/Honolulu' => 'هوائي اليوٽين جو معياري وقت (هونو لولو)',
         'Pacific/Kiritimati' => 'لائن آئي لينڊ جو وقت (ڪريٽمٽي)',
         'Pacific/Kosrae' => 'ڪوسرائي جو وقت',
         'Pacific/Kwajalein' => 'مارشل آئي لينڊ جو وقت (ڪواجلين)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'پلائو جو وقت',
         'Pacific/Pitcairn' => 'پٽڪيرن جو وقت',
         'Pacific/Ponape' => 'پوناپي جو وقت (پونپیئي)',
+        'Pacific/Pohnpei' => 'پوناپي جو وقت (پونپیئي)',
         'Pacific/Port_Moresby' => 'پاپوا نيو گني جو وقت (پورٽ مورسبي)',
         'Pacific/Rarotonga' => 'ڪوڪ آئي لينڊ جو وقت (راروٽونگا)',
         'Pacific/Saipan' => 'چمورو جو معياري وقت (سيپن)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'گلبرٽ آئي لينڊ جو وقت (تراوا)',
         'Pacific/Tongatapu' => 'ٽونگا جو وقت (ٽونگاٽاپو)',
         'Pacific/Truk' => 'چيوڪ جو وقت',
+        'Pacific/Chuuk' => 'چيوڪ جو وقت',
         'Pacific/Wake' => 'ويڪ آئي لينڊ جو وقت',
         'Pacific/Wallis' => 'ويلس ۽ فتونا جو وقت',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/se_FI.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/se_FI.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/se_FI.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/se_FI.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Addis Ababa (Nuorta-Afrihká áigi)',
         'Africa/Algiers' => 'Algiers (Gaska-Eurohpá áigi)',
         'Africa/Asmera' => 'Asmara (Nuorta-Afrihká áigi)',
+        'Africa/Asmara' => 'Asmara (Nuorta-Afrihká áigi)',
         'Africa/Bamako' => 'Bamako (Greenwicha áigi)',
         'Africa/Bangui' => 'Bangui (Oarje-Afrihká áigi)',
         'Africa/Banjul' => 'Banjul (Greenwicha áigi)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Dar es Salaam (Nuorta-Afrihká áigi)',
         'Africa/Djibouti' => 'Djibouti (Nuorta-Afrihká áigi)',
         'Africa/Douala' => 'Douala (Oarje-Afrihká áigi)',
-        'Africa/El_Aaiun' => 'El Aaiun (Oarje-Eurohpá áigi)',
+        'Africa/El_Aaiun' => 'El Aaiún (Oarje-Eurohpá áigi)',
         'Africa/Freetown' => 'Freetown (Greenwicha áigi)',
         'Africa/Gaborone' => 'Gaborone (Gaska-Afrihká áigi)',
         'Africa/Harare' => 'Harare (Gaska-Afrihká áigi)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Kinshasa (Oarje-Afrihká áigi)',
         'Africa/Lagos' => 'Lagos (Oarje-Afrihká áigi)',
         'Africa/Libreville' => 'Libreville (Oarje-Afrihká áigi)',
-        'Africa/Lome' => 'Lome (Greenwicha áigi)',
+        'Africa/Lome' => 'Lomé (Greenwicha áigi)',
         'Africa/Luanda' => 'Luanda (Oarje-Afrihká áigi)',
         'Africa/Lubumbashi' => 'Lubumbashi (Gaska-Afrihká áigi)',
         'Africa/Lusaka' => 'Lusaka (Gaska-Afrihká áigi)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Mogadishu (Nuorta-Afrihká áigi)',
         'Africa/Monrovia' => 'Monrovia (Greenwicha áigi)',
         'Africa/Nairobi' => 'Nairobi (Nuorta-Afrihká áigi)',
-        'Africa/Ndjamena' => 'Ndjamena (Oarje-Afrihká áigi)',
+        'Africa/Ndjamena' => 'N’Djamena (Oarje-Afrihká áigi)',
         'Africa/Niamey' => 'Niamey (Oarje-Afrihká áigi)',
         'Africa/Nouakchott' => 'Nouakchott (Greenwicha áigi)',
         'Africa/Ouagadougou' => 'Ouagadougou (Greenwicha áigi)',
@@ -58,17 +59,17 @@
         'America/Anchorage' => 'Anchorage (Alaska áigi)',
         'America/Anguilla' => 'Anguilla (atlántalaš áigi)',
         'America/Antigua' => 'Antigua (atlántalaš áigi)',
-        'America/Araguaina' => 'Araguaina (Brasilia áigi)',
+        'America/Araguaina' => 'Araguaína (Brasilia áigi)',
         'America/Aruba' => 'Aruba (atlántalaš áigi)',
         'America/Asuncion' => 'Asunción (Paraguaya áigi)',
         'America/Bahia' => 'Bahia (Brasilia áigi)',
         'America/Bahia_Banderas' => 'Bahía de Banderas (dábálašáigi)',
         'America/Barbados' => 'Barbados (atlántalaš áigi)',
-        'America/Belem' => 'Belem (Brasilia áigi)',
+        'America/Belem' => 'Belém (Brasilia áigi)',
         'America/Belize' => 'Belize (dábálašáigi)',
         'America/Blanc-Sablon' => 'Blanc-Sablon (atlántalaš áigi)',
         'America/Boa_Vista' => 'Boa Vista (Amazona áigi)',
-        'America/Bogota' => 'Bogota (Colombia áigi)',
+        'America/Bogota' => 'Bogotá (Colombia áigi)',
         'America/Boise' => 'Boise (duottaráigi)',
         'America/Cambridge_Bay' => 'Cambridge Bay (duottaráigi)',
         'America/Campo_Grande' => 'Campo Grande (Amazona áigi)',
@@ -79,9 +80,11 @@
         'America/Chihuahua' => 'Chihuahua (dábálašáigi)',
         'America/Ciudad_Juarez' => 'Ciudad Juárez (duottaráigi)',
         'America/Coral_Harbour' => 'Atikokan (áigi nuortan)',
+        'America/Atikokan' => 'Atikokan (áigi nuortan)',
         'America/Costa_Rica' => 'Costa Rica (dábálašáigi)',
+        'America/Coyhaique' => 'Coyhaique (Chile áigi)',
         'America/Creston' => 'Creston (duottaráigi)',
-        'America/Cuiaba' => 'Cuiaba (Amazona áigi)',
+        'America/Cuiaba' => 'Cuiabá (Amazona áigi)',
         'America/Curacao' => 'Curaçao (atlántalaš áigi)',
         'America/Danmarkshavn' => 'Dánmárkkuhámman (Greenwicha áigi)',
         'America/Dawson_Creek' => 'Dawson Creek (duottaráigi)',
@@ -111,6 +114,7 @@
         'America/Indiana/Vincennes' => 'Vincennes, Indiana (áigi nuortan)',
         'America/Indiana/Winamac' => 'Winamac, Indiana (áigi nuortan)',
         'America/Indianapolis' => 'Indianapolis (áigi nuortan)',
+        'America/Indiana/Indianapolis' => 'Indianapolis (áigi nuortan)',
         'America/Inuvik' => 'Inuvik (duottaráigi)',
         'America/Iqaluit' => 'Iqaluit (áigi nuortan)',
         'America/Jamaica' => 'Jamaica (áigi nuortan)',
@@ -119,19 +123,20 @@
         'America/Kralendijk' => 'Kralendijk (atlántalaš áigi)',
         'America/Los_Angeles' => 'Los Angeles (Jaskesábi áigi)',
         'America/Louisville' => 'Louisville (áigi nuortan)',
+        'America/Kentucky/Louisville' => 'Louisville (áigi nuortan)',
         'America/Lower_Princes' => 'Lower Prince’s Quarter (atlántalaš áigi)',
-        'America/Maceio' => 'Maceio (Brasilia áigi)',
+        'America/Maceio' => 'Maceió (Brasilia áigi)',
         'America/Managua' => 'Managua (dábálašáigi)',
         'America/Manaus' => 'Manaus (Amazona áigi)',
         'America/Marigot' => 'Marigot (atlántalaš áigi)',
         'America/Martinique' => 'Martinique (atlántalaš áigi)',
         'America/Matamoros' => 'Matamoros (dábálašáigi)',
-        'America/Mazatlan' => 'Mazatlan (Meksiko Jáskesábi áigi)',
+        'America/Mazatlan' => 'Mazatlán (Meksiko Jáskesábi áigi)',
         'America/Menominee' => 'Menominee (dábálašáigi)',
         'America/Merida' => 'Mérida (dábálašáigi)',
         'America/Metlakatla' => 'Metlakatla (Alaska áigi)',
-        'America/Mexico_City' => 'Mexico City (dábálašáigi)',
-        'America/Miquelon' => 'Miquelon (St. Pierre & Miquelo áigi)',
+        'America/Mexico_City' => 'Ciudad de México (dábálašáigi)',
+        'America/Miquelon' => 'Saint-Pierre (St. Pierre & Miquelo áigi)',
         'America/Moncton' => 'Moncton (atlántalaš áigi)',
         'America/Monterrey' => 'Monterrey (dábálašáigi)',
         'America/Montevideo' => 'Montevideo (Uruguaya áigi)',
@@ -156,7 +161,7 @@
         'America/Recife' => 'Recife (Brasilia áigi)',
         'America/Regina' => 'Regina (dábálašáigi)',
         'America/Resolute' => 'Resolute (dábálašáigi)',
-        'America/Santarem' => 'Santarem (Brasilia áigi)',
+        'America/Santarem' => 'Santarém (Brasilia áigi)',
         'America/Santiago' => 'Santiago (Chile áigi)',
         'America/Santo_Domingo' => 'Santo Domingo (atlántalaš áigi)',
         'America/Sao_Paulo' => 'São Paulo (Brasilia áigi)',
@@ -184,7 +189,7 @@
         'Antarctica/McMurdo' => 'McMurdo (Ođđa-Selánda áigi)',
         'Antarctica/Palmer' => 'Palmer (Chile áigi)',
         'Antarctica/Rothera' => 'Rothera áigi',
-        'Antarctica/Syowa' => 'Syowa áigi',
+        'Antarctica/Syowa' => 'Showa (Syowa áigi)',
         'Antarctica/Troll' => 'Troll (Greenwicha áigi)',
         'Antarctica/Vostok' => 'Vostoka áigi',
         'Arctic/Longyearbyen' => 'Longyearbyen (Gaska-Eurohpá áigi)',
@@ -195,10 +200,12 @@
         'Asia/Bahrain' => 'Bahrain (Arábia áigi)',
         'Asia/Baku' => 'Baku (Aserbaižana áigi)',
         'Asia/Bangkok' => 'Bangkok (Indokiinná áigi)',
+        'Asia/Barnaul' => 'Barnaul (Krasnojarska áigi)',
         'Asia/Beirut' => 'Beirut (Nuorta-Eurohpa áigi)',
         'Asia/Bishkek' => 'Bishkek (Kirgisia áigi)',
         'Asia/Brunei' => 'Brunei Darussalama áigi',
         'Asia/Calcutta' => 'Kolkata (India dálveáigi)',
+        'Asia/Kolkata' => 'Kolkata (India dálveáigi)',
         'Asia/Chita' => 'Chita (Jakucka áigi)',
         'Asia/Colombo' => 'Colombo (India dálveáigi)',
         'Asia/Damascus' => 'Damaskos (Nuorta-Eurohpa áigi)',
@@ -210,7 +217,7 @@
         'Asia/Gaza' => 'Gaza (Nuorta-Eurohpa áigi)',
         'Asia/Hebron' => 'Hebron (Nuorta-Eurohpa áigi)',
         'Asia/Hong_Kong' => 'Hong Konga áigi',
-        'Asia/Hovd' => 'Hovda áigi',
+        'Asia/Hovd' => 'Khovd (Hovda áigi)',
         'Asia/Irkutsk' => 'Irkucka áigi',
         'Asia/Jakarta' => 'Jakarta (Oarje-Indonesia áigi)',
         'Asia/Jayapura' => 'Jayapura (Nuorta-Indonesia áigi)',
@@ -219,6 +226,7 @@
         'Asia/Kamchatka' => 'Kamčatka (Ruošša áigi)',
         'Asia/Karachi' => 'Karachi (Pakistana áigi)',
         'Asia/Katmandu' => 'Kathmandu (Nepala áigi)',
+        'Asia/Kathmandu' => 'Kathmandu (Nepala áigi)',
         'Asia/Khandyga' => 'Khandyga (Jakucka áigi)',
         'Asia/Krasnoyarsk' => 'Krasnojarska áigi',
         'Asia/Kuwait' => 'Kuwait (Arábia áigi)',
@@ -229,16 +237,18 @@
         'Asia/Muscat' => 'Muscat (Golfa dálveáigi)',
         'Asia/Nicosia' => 'Nicosia (Nuorta-Eurohpa áigi)',
         'Asia/Novokuznetsk' => 'Novokusneck (Krasnojarska áigi)',
-        'Asia/Novosibirsk' => 'Novosibirska áigi',
+        'Asia/Novosibirsk' => 'Novosibirsk (Krasnojarska áigi)',
         'Asia/Omsk' => 'Omska áigi',
         'Asia/Phnom_Penh' => 'Phnom Penh (Indokiinná áigi)',
         'Asia/Pontianak' => 'Pontianak (Oarje-Indonesia áigi)',
         'Asia/Pyongyang' => 'Pyongyang (Korea áigi)',
         'Asia/Qatar' => 'Qatar (Arábia áigi)',
         'Asia/Rangoon' => 'Rangoon (Myanmara áigi)',
+        'Asia/Yangon' => 'Rangoon (Myanmara áigi)',
         'Asia/Riyadh' => 'Riyadh (Arábia áigi)',
         'Asia/Saigon' => 'Ho Chi Minh (Indokiinná áigi)',
-        'Asia/Sakhalin' => 'Sahalina áigi',
+        'Asia/Ho_Chi_Minh' => 'Ho Chi Minh (Indokiinná áigi)',
+        'Asia/Sakhalin' => 'Sahalin (Magadana áigi)',
         'Asia/Samarkand' => 'Samarkand (Usbekistana áigi)',
         'Asia/Seoul' => 'Seoul (Korea áigi)',
         'Asia/Singapore' => 'Singapore dálveáigi',
@@ -247,6 +257,7 @@
         'Asia/Tashkent' => 'Tashkent (Usbekistana áigi)',
         'Asia/Tehran' => 'Teheran (Irana áigi)',
         'Asia/Thimphu' => 'Thimphu (Bhutana áigi)',
+        'Asia/Tomsk' => 'Tomsk (Krasnojarska áigi)',
         'Asia/Ulaanbaatar' => 'Ulan-Batora áigi',
         'Asia/Ust-Nera' => 'Ust-Nera (Vladivostoka áigi)',
         'Asia/Vientiane' => 'Vientiane (Indokiinná áigi)',
@@ -259,6 +270,7 @@
         'Atlantic/Canary' => 'Kanária (Oarje-Eurohpá áigi)',
         'Atlantic/Cape_Verde' => 'Kap Verde áigi',
         'Atlantic/Faeroe' => 'Faroe (Oarje-Eurohpá áigi)',
+        'Atlantic/Faroe' => 'Faroe (Oarje-Eurohpá áigi)',
         'Atlantic/Madeira' => 'Madeira (Oarje-Eurohpá áigi)',
         'Atlantic/Reykjavik' => 'Reykjavik (Greenwicha áigi)',
         'Atlantic/South_Georgia' => 'Lulli-Georgia áigi',
@@ -279,7 +291,6 @@
         'Etc/UTC' => 'koordinerejuvvon oktasaš áigi',
         'Europe/Amsterdam' => 'Amsterdam (Gaska-Eurohpá áigi)',
         'Europe/Andorra' => 'Andorra (Gaska-Eurohpá áigi)',
-        'Europe/Astrakhan' => 'Astrakhan (Moskva áigi)',
         'Europe/Athens' => 'Athena (Nuorta-Eurohpa áigi)',
         'Europe/Belgrade' => 'Belgrad (Gaska-Eurohpá áigi)',
         'Europe/Berlin' => 'Berlin (Gaska-Eurohpá áigi)',
@@ -287,8 +298,8 @@
         'Europe/Brussels' => 'Brüssel (Gaska-Eurohpá áigi)',
         'Europe/Bucharest' => 'Bukarest (Nuorta-Eurohpa áigi)',
         'Europe/Budapest' => 'Budapest (Gaska-Eurohpá áigi)',
-        'Europe/Busingen' => 'Busingen (Gaska-Eurohpá áigi)',
-        'Europe/Chisinau' => 'Chisinau (Nuorta-Eurohpa áigi)',
+        'Europe/Busingen' => 'Büsingen (Gaska-Eurohpá áigi)',
+        'Europe/Chisinau' => 'Chișinău (Nuorta-Eurohpa áigi)',
         'Europe/Copenhagen' => 'København (Gaska-Eurohpá áigi)',
         'Europe/Dublin' => 'Dublin (Greenwicha áigi)',
         'Europe/Gibraltar' => 'Gibraltar (Gaska-Eurohpá áigi)',
@@ -298,6 +309,8 @@
         'Europe/Jersey' => 'Jersey (Greenwicha áigi)',
         'Europe/Kaliningrad' => 'Kaliningrad (Nuorta-Eurohpa áigi)',
         'Europe/Kiev' => 'Kyiv (Nuorta-Eurohpa áigi)',
+        'Europe/Kyiv' => 'Kyiv (Nuorta-Eurohpa áigi)',
+        'Europe/Kirov' => 'Kirov (Moskva áigi)',
         'Europe/Lisbon' => 'Lisboa (Oarje-Eurohpá áigi)',
         'Europe/Ljubljana' => 'Ljubljana (Gaska-Eurohpá áigi)',
         'Europe/London' => 'London (Greenwicha áigi)',
@@ -316,19 +329,18 @@
         'Europe/Rome' => 'Roma (Gaska-Eurohpá áigi)',
         'Europe/San_Marino' => 'San Marino (Gaska-Eurohpá áigi)',
         'Europe/Sarajevo' => 'Sarajevo (Gaska-Eurohpá áigi)',
-        'Europe/Saratov' => 'Saratov (Moskva áigi)',
         'Europe/Simferopol' => 'Simferopol (Moskva áigi)',
         'Europe/Skopje' => 'Skopje (Gaska-Eurohpá áigi)',
         'Europe/Sofia' => 'Sofia (Nuorta-Eurohpa áigi)',
         'Europe/Stockholm' => 'Stockholm (Gaska-Eurohpá áigi)',
         'Europe/Tallinn' => 'Tallinn (Nuorta-Eurohpa áigi)',
         'Europe/Tirane' => 'Tirana (Gaska-Eurohpá áigi)',
-        'Europe/Ulyanovsk' => 'Uljanovsk (Moskva áigi)',
+        'Europe/Ulyanovsk' => 'Uljanovsk (Ruošša áigi)',
         'Europe/Vaduz' => 'Vaduz (Gaska-Eurohpá áigi)',
         'Europe/Vatican' => 'Vatican (Gaska-Eurohpá áigi)',
         'Europe/Vienna' => 'Wien (Gaska-Eurohpá áigi)',
         'Europe/Vilnius' => 'Vilnius (Nuorta-Eurohpa áigi)',
-        'Europe/Volgograd' => 'Volgograda áigi',
+        'Europe/Volgograd' => 'Volgograd (Moskva áigi)',
         'Europe/Warsaw' => 'Warsawa (Gaska-Eurohpá áigi)',
         'Europe/Zagreb' => 'Zagreb (Gaska-Eurohpá áigi)',
         'Europe/Zurich' => 'Zürich (Gaska-Eurohpá áigi)',
@@ -336,9 +348,9 @@
         'Indian/Chagos' => 'Chagos (Indiaábi áigi)',
         'Indian/Christmas' => 'Juovlasuolu (Juovlasullo áigi)',
         'Indian/Cocos' => 'Kokossulloid áigi',
-        'Indian/Comoro' => 'Comoro (Nuorta-Afrihká áigi)',
+        'Indian/Comoro' => 'Comores (Nuorta-Afrihká áigi)',
         'Indian/Kerguelen' => 'Kerguelen (Frankriikka lulli & antárktisa áigi)',
-        'Indian/Mahe' => 'Mahe (Seychellaid áigi)',
+        'Indian/Mahe' => 'Mahé (Seychellaid áigi)',
         'Indian/Maldives' => 'Malediivvat (Malediivvaid áigi)',
         'Indian/Mauritius' => 'Mauritiusa áigi',
         'Indian/Mayotte' => 'Mayotte (Nuorta-Afrihká áigi)',
@@ -347,14 +359,15 @@
         'Pacific/Bougainville' => 'Bougainville (Papua Ođđa-Guinea áigi)',
         'Pacific/Chatham' => 'Chathama áigi',
         'Pacific/Easter' => 'Easter (Beassášsullo áigi)',
-        'Pacific/Enderbury' => 'Enderbury (Phoenixsulloid áigi)',
+        'Pacific/Enderbury' => 'Canton (Phoenixsulloid áigi)',
+        'Pacific/Kanton' => 'Canton (Phoenixsulloid áigi)',
         'Pacific/Fakaofo' => 'Fakaofo (Tokelaua áigi)',
         'Pacific/Fiji' => 'Fiji áigi',
-        'Pacific/Galapagos' => 'Galapagosa áigi',
+        'Pacific/Galapagos' => 'Galápagos (Galapagosa áigi)',
         'Pacific/Gambier' => 'Gambiera áigi',
         'Pacific/Guadalcanal' => 'Guadalcanal (Salomonsulloid áigi)',
         'Pacific/Guam' => 'Guam (Čamorro dálveáigi)',
-        'Pacific/Honolulu' => 'Honolulu (Hawaii-aleuhtalaš áigi)',
+        'Pacific/Honolulu' => 'Honolulu (Hawaii-aleuhtalaš dálveáigi)',
         'Pacific/Kiritimati' => 'Kiritimati (Linesulloid áigi)',
         'Pacific/Kosrae' => 'Kosraea áigi',
         'Pacific/Kwajalein' => 'Kwajalein (Marshallsulloid áigi)',
@@ -368,14 +381,16 @@
         'Pacific/Palau' => 'Palaua áigi',
         'Pacific/Pitcairn' => 'Pitcairnsulloid áigi',
         'Pacific/Ponape' => 'Pohnpei (Ponape áigi)',
+        'Pacific/Pohnpei' => 'Pohnpei (Ponape áigi)',
         'Pacific/Port_Moresby' => 'Port Moresby (Papua Ođđa-Guinea áigi)',
         'Pacific/Rarotonga' => 'Rarotonga (Cooksulloid áigi)',
         'Pacific/Saipan' => 'Saipan (Čamorro dálveáigi)',
         'Pacific/Tahiti' => 'Tahiti áigi',
         'Pacific/Tarawa' => 'Tarawa (Gilbertsulloid áigi)',
         'Pacific/Truk' => 'Chuuka áigi',
+        'Pacific/Chuuk' => 'Chuuka áigi',
         'Pacific/Wake' => 'Wakesullo áigi',
-        'Pacific/Wallis' => 'Wallis- ja Futuna áigi',
+        'Pacific/Wallis' => 'Wallis & Futuna (Wallis- ja Futuna áigi)',
     ],
     'Meta' => [
         'GmtFormat' => '%s GMT',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/se.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/se.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/se.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/se.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Addis Ababa (Etiopia áigi)',
         'Africa/Algiers' => 'Algiers (gaska-Eurohpá áigi)',
         'Africa/Asmera' => 'Asmara (Eritrea áigi)',
+        'Africa/Asmara' => 'Asmara (Eritrea áigi)',
         'Africa/Bamako' => 'Bamako (Greenwich gaskka áigi)',
         'Africa/Bangui' => 'Bangui (Gaska-Afrihká dásseváldi áigi)',
         'Africa/Banjul' => 'Banjul (Greenwich gaskka áigi)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Dar es Salaam (Tanzánia áigi)',
         'Africa/Djibouti' => 'Djibouti (Djibouti áigi)',
         'Africa/Douala' => 'Douala (Kamerun áigi)',
-        'Africa/El_Aaiun' => 'El Aaiun (oarje-Eurohpá áigi)',
+        'Africa/El_Aaiun' => 'El Aaiún (oarje-Eurohpá áigi)',
         'Africa/Freetown' => 'Freetown (Greenwich gaskka áigi)',
         'Africa/Gaborone' => 'Gaborone (Botswana áigi)',
         'Africa/Harare' => 'Harare (Zimbabwe áigi)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Kinshasa (Kongo-Kinshasa áigi)',
         'Africa/Lagos' => 'Lagos (Nigeria áigi)',
         'Africa/Libreville' => 'Libreville (Gabon áigi)',
-        'Africa/Lome' => 'Lome (Greenwich gaskka áigi)',
+        'Africa/Lome' => 'Lomé (Greenwich gaskka áigi)',
         'Africa/Luanda' => 'Luanda (Angola áigi)',
         'Africa/Lubumbashi' => 'Lubumbashi (Kongo-Kinshasa áigi)',
         'Africa/Lusaka' => 'Lusaka (Zambia áigi)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Mogadishu (Somália áigi)',
         'Africa/Monrovia' => 'Monrovia (Greenwich gaskka áigi)',
         'Africa/Nairobi' => 'Nairobi (Kenia áigi)',
-        'Africa/Ndjamena' => 'Ndjamena (Tčad áigi)',
+        'Africa/Ndjamena' => 'N’Djamena (Tčad áigi)',
         'Africa/Niamey' => 'Niamey (Niger áigi)',
         'Africa/Nouakchott' => 'Nouakchott (Greenwich gaskka áigi)',
         'Africa/Ouagadougou' => 'Ouagadougou (Greenwich gaskka áigi)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Anchorage (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Anguilla' => 'Anguilla (Anguilla áigi)',
         'America/Antigua' => 'Antigua (Antigua ja Barbuda áigi)',
-        'America/Araguaina' => 'Araguaina (Brasil áigi)',
+        'America/Araguaina' => 'Araguaína (Brasil áigi)',
         'America/Argentina/La_Rioja' => 'La Rioja (Argentina áigi)',
-        'America/Argentina/Rio_Gallegos' => 'Rio Gallegos (Argentina áigi)',
+        'America/Argentina/Rio_Gallegos' => 'Río Gallegos (Argentina áigi)',
         'America/Argentina/Salta' => 'Salta (Argentina áigi)',
         'America/Argentina/San_Juan' => 'San Juan (Argentina áigi)',
         'America/Argentina/San_Luis' => 'San Luis (Argentina áigi)',
-        'America/Argentina/Tucuman' => 'Tucuman (Argentina áigi)',
+        'America/Argentina/Tucuman' => 'Tucumán (Argentina áigi)',
         'America/Argentina/Ushuaia' => 'Ushuaia (Argentina áigi)',
         'America/Aruba' => 'Aruba (Aruba áigi)',
         'America/Asuncion' => 'Asunción (Paraguay áigi)',
         'America/Bahia' => 'Bahia (Brasil áigi)',
         'America/Bahia_Banderas' => 'Bahía de Banderas (Meksiko áigi)',
         'America/Barbados' => 'Barbados (Barbados áigi)',
-        'America/Belem' => 'Belem (Brasil áigi)',
+        'America/Belem' => 'Belém (Brasil áigi)',
         'America/Belize' => 'Belize (Belize áigi)',
         'America/Blanc-Sablon' => 'Blanc-Sablon (Kanáda áigi)',
         'America/Boa_Vista' => 'Boa Vista (Brasil áigi)',
-        'America/Bogota' => 'Bogota (Kolombia áigi)',
+        'America/Bogota' => 'Bogotá (Kolombia áigi)',
         'America/Boise' => 'Boise (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Buenos_Aires' => 'Buenos Aires (Argentina áigi)',
+        'America/Argentina/Buenos_Aires' => 'Buenos Aires (Argentina áigi)',
         'America/Cambridge_Bay' => 'Cambridge Bay (Kanáda áigi)',
         'America/Campo_Grande' => 'Campo Grande (Brasil áigi)',
         'America/Cancun' => 'Cancún (Meksiko áigi)',
         'America/Caracas' => 'Caracas (Venezuela áigi)',
         'America/Catamarca' => 'Catamarca (Argentina áigi)',
+        'America/Argentina/Catamarca' => 'Catamarca (Argentina áigi)',
         'America/Cayenne' => 'Cayenne (Frankriikka Guayana áigi)',
         'America/Cayman' => 'Cayman (Cayman-sullot áigi)',
         'America/Chicago' => 'Chicago (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Chihuahua' => 'Chihuahua (Meksiko áigi)',
         'America/Ciudad_Juarez' => 'Ciudad Juárez (Meksiko áigi)',
         'America/Coral_Harbour' => 'Atikokan (Kanáda áigi)',
-        'America/Cordoba' => 'Cordoba (Argentina áigi)',
+        'America/Atikokan' => 'Atikokan (Kanáda áigi)',
+        'America/Cordoba' => 'Córdoba (Argentina áigi)',
+        'America/Argentina/Cordoba' => 'Córdoba (Argentina áigi)',
         'America/Costa_Rica' => 'Costa Rica (Costa Rica áigi)',
+        'America/Coyhaique' => 'Coyhaique (Čiile áigi)',
         'America/Creston' => 'Creston (Kanáda áigi)',
-        'America/Cuiaba' => 'Cuiaba (Brasil áigi)',
+        'America/Cuiaba' => 'Cuiabá (Brasil áigi)',
         'America/Curacao' => 'Curaçao (Curaçao áigi)',
         'America/Danmarkshavn' => 'Danmarkshavn (Greenwich gaskka áigi)',
         'America/Dawson' => 'Dawson (Kanáda áigi)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Detroit (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Dominica' => 'Dominica (Dominica áigi)',
         'America/Edmonton' => 'Edmonton (Kanáda áigi)',
-        'America/Eirunepe' => 'Eirunepe (Brasil áigi)',
+        'America/Eirunepe' => 'Eirunepé (Brasil áigi)',
         'America/El_Salvador' => 'El Salvador (El Salvador áigi)',
         'America/Fort_Nelson' => 'Fort Nelson (Kanáda áigi)',
         'America/Fortaleza' => 'Fortaleza (Brasil áigi)',
         'America/Glace_Bay' => 'Glace Bay (Kanáda áigi)',
         'America/Godthab' => 'Nuuk (Kalaallit Nunaat áigi)',
+        'America/Nuuk' => 'Nuuk (Kalaallit Nunaat áigi)',
         'America/Goose_Bay' => 'Goose Bay (Kanáda áigi)',
         'America/Grand_Turk' => 'Grand Turk (Turks ja Caicos-sullot áigi)',
         'America/Grenada' => 'Grenada (Grenada áigi)',
@@ -125,30 +132,34 @@
         'America/Indiana/Vincennes' => 'Vincennes, Indiana (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Indiana/Winamac' => 'Winamac, Indiana (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Indianapolis' => 'Indianapolis (Amerihká ovttastuvvan stáhtat áigi)',
+        'America/Indiana/Indianapolis' => 'Indianapolis (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Inuvik' => 'Inuvik (Kanáda áigi)',
         'America/Iqaluit' => 'Iqaluit (Kanáda áigi)',
         'America/Jamaica' => 'Jamaica (Jamaica áigi)',
         'America/Jujuy' => 'Jujuy (Argentina áigi)',
+        'America/Argentina/Jujuy' => 'Jujuy (Argentina áigi)',
         'America/Juneau' => 'Juneau (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Kentucky/Monticello' => 'Monticello, Kentucky (Amerihká ovttastuvvan stáhtat áigi)',
         'America/La_Paz' => 'La Paz (Bolivia áigi)',
         'America/Lima' => 'Lima (Peru áigi)',
         'America/Los_Angeles' => 'Los Angeles (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Louisville' => 'Louisville (Amerihká ovttastuvvan stáhtat áigi)',
+        'America/Kentucky/Louisville' => 'Louisville (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Lower_Princes' => 'Lower Prince’s Quarter (Vuolleeatnamat Saint Martin áigi)',
-        'America/Maceio' => 'Maceio (Brasil áigi)',
+        'America/Maceio' => 'Maceió (Brasil áigi)',
         'America/Managua' => 'Managua (Nicaragua áigi)',
         'America/Manaus' => 'Manaus (Brasil áigi)',
         'America/Marigot' => 'Marigot (Frankriikka Saint Martin áigi)',
         'America/Martinique' => 'Martinique (Martinique áigi)',
         'America/Matamoros' => 'Matamoros (Meksiko áigi)',
-        'America/Mazatlan' => 'Mazatlan (Meksiko áigi)',
+        'America/Mazatlan' => 'Mazatlán (Meksiko áigi)',
         'America/Mendoza' => 'Mendoza (Argentina áigi)',
+        'America/Argentina/Mendoza' => 'Mendoza (Argentina áigi)',
         'America/Menominee' => 'Menominee (Amerihká ovttastuvvan stáhtat áigi)',
         'America/Merida' => 'Mérida (Meksiko áigi)',
         'America/Metlakatla' => 'Metlakatla (Amerihká ovttastuvvan stáhtat áigi)',
-        'America/Mexico_City' => 'Mexico City (Meksiko áigi)',
-        'America/Miquelon' => 'Miquelon (Saint Pierre ja Miquelon áigi)',
+        'America/Mexico_City' => 'Ciudad de México (Meksiko áigi)',
+        'America/Miquelon' => 'Saint-Pierre (Saint Pierre ja Miquelon áigi)',
         'America/Moncton' => 'Moncton (Kanáda áigi)',
         'America/Monterrey' => 'Monterrey (Meksiko áigi)',
         'America/Montevideo' => 'Montevideo (Uruguay áigi)',
@@ -174,7 +185,7 @@
         'America/Regina' => 'Regina (Kanáda áigi)',
         'America/Resolute' => 'Resolute (Kanáda áigi)',
         'America/Rio_Branco' => 'Rio Branco (Brasil áigi)',
-        'America/Santarem' => 'Santarem (Brasil áigi)',
+        'America/Santarem' => 'Santarém (Brasil áigi)',
         'America/Santiago' => 'Santiago (Čiile áigi)',
         'America/Santo_Domingo' => 'Santo Domingo (Dominikána dásseváldi áigi)',
         'America/Sao_Paulo' => 'São Paulo (Brasil áigi)',
@@ -204,7 +215,7 @@
         'Antarctica/McMurdo' => 'McMurdo (Antárktis áigi)',
         'Antarctica/Palmer' => 'Palmer (Antárktis áigi)',
         'Antarctica/Rothera' => 'Rothera (Antárktis áigi)',
-        'Antarctica/Syowa' => 'Syowa (Antárktis áigi)',
+        'Antarctica/Syowa' => 'Showa (Antárktis áigi)',
         'Antarctica/Troll' => 'Troll (Greenwich gaskka áigi)',
         'Antarctica/Vostok' => 'Vostok (Antárktis áigi)',
         'Arctic/Longyearbyen' => 'Longyearbyen (gaska-Eurohpá áigi)',
@@ -225,6 +236,7 @@
         'Asia/Bishkek' => 'Bishkek (Kirgisistan áigi)',
         'Asia/Brunei' => 'Brunei (Brunei áigi)',
         'Asia/Calcutta' => 'Kolkata (India áigi)',
+        'Asia/Kolkata' => 'Kolkata (India áigi)',
         'Asia/Chita' => 'Chita (Ruošša áigi)',
         'Asia/Colombo' => 'Colombo (Sri Lanka áigi)',
         'Asia/Damascus' => 'Damascus (nuorti-Eurohpá áigi)',
@@ -236,7 +248,7 @@
         'Asia/Gaza' => 'Gaza (nuorti-Eurohpá áigi)',
         'Asia/Hebron' => 'Hebron (nuorti-Eurohpá áigi)',
         'Asia/Hong_Kong' => 'Hong Kong (Hongkong áigi)',
-        'Asia/Hovd' => 'Hovd (Mongolia áigi)',
+        'Asia/Hovd' => 'Khovd (Mongolia áigi)',
         'Asia/Irkutsk' => 'Irkutsk (Ruošša áigi)',
         'Asia/Jakarta' => 'Jakarta (Indonesia áigi)',
         'Asia/Jayapura' => 'Jayapura (Indonesia áigi)',
@@ -245,6 +257,7 @@
         'Asia/Kamchatka' => 'Kamchatka (Ruošša áigi)',
         'Asia/Karachi' => 'Karachi (Pakistan áigi)',
         'Asia/Katmandu' => 'Kathmandu (Nepal áigi)',
+        'Asia/Kathmandu' => 'Kathmandu (Nepal áigi)',
         'Asia/Khandyga' => 'Khandyga (Ruošša áigi)',
         'Asia/Krasnoyarsk' => 'Krasnoyarsk (Ruošša áigi)',
         'Asia/Kuala_Lumpur' => 'Kuala Lumpur (Malesia áigi)',
@@ -267,8 +280,10 @@
         'Asia/Qostanay' => 'Qostanay (Kasakstan áigi)',
         'Asia/Qyzylorda' => 'Qyzylorda (Kasakstan áigi)',
         'Asia/Rangoon' => 'Yangon (Burma áigi)',
+        'Asia/Yangon' => 'Yangon (Burma áigi)',
         'Asia/Riyadh' => 'Riyadh (Saudi-Arábia áigi)',
         'Asia/Saigon' => 'Ho Chi Minh (Vietnam áigi)',
+        'Asia/Ho_Chi_Minh' => 'Ho Chi Minh (Vietnam áigi)',
         'Asia/Sakhalin' => 'Sakhalin (Ruošša áigi)',
         'Asia/Samarkand' => 'Samarkand (Usbekistan áigi)',
         'Asia/Seoul' => 'Seoul (Mátta-Korea áigi)',
@@ -283,7 +298,7 @@
         'Asia/Tokyo' => 'Tokyo (Japána áigi)',
         'Asia/Tomsk' => 'Tomsk (Ruošša áigi)',
         'Asia/Ulaanbaatar' => 'Ulaanbaatar (Mongolia áigi)',
-        'Asia/Urumqi' => 'Urumqi (Kiinná áigi)',
+        'Asia/Urumqi' => 'Ürümqi (Kiinná áigi)',
         'Asia/Ust-Nera' => 'Ust-Nera (Ruošša áigi)',
         'Asia/Vientiane' => 'Vientiane (Laos áigi)',
         'Asia/Vladivostok' => 'Vladivostok (Ruošša áigi)',
@@ -292,9 +307,10 @@
         'Asia/Yerevan' => 'Yerevan (Armenia áigi)',
         'Atlantic/Azores' => 'Azores (Portugála áigi)',
         'Atlantic/Bermuda' => 'Bermuda (Bermuda áigi)',
-        'Atlantic/Canary' => 'Canary (oarje-Eurohpá áigi)',
+        'Atlantic/Canary' => 'Canarias (oarje-Eurohpá áigi)',
         'Atlantic/Cape_Verde' => 'Cape Verde (Kap Verde áigi)',
         'Atlantic/Faeroe' => 'Faroe (oarje-Eurohpá áigi)',
+        'Atlantic/Faroe' => 'Faroe (oarje-Eurohpá áigi)',
         'Atlantic/Madeira' => 'Madeira (oarje-Eurohpá áigi)',
         'Atlantic/Reykjavik' => 'Reykjavik (Greenwich gaskka áigi)',
         'Atlantic/South_Georgia' => 'South Georgia (Lulli Georgia ja Lulli Sandwich-sullot áigi)',
@@ -314,7 +330,7 @@
         'Etc/GMT' => 'Greenwich gaskka áigi',
         'Europe/Amsterdam' => 'Amsterdam (gaska-Eurohpá áigi)',
         'Europe/Andorra' => 'Andorra (gaska-Eurohpá áigi)',
-        'Europe/Astrakhan' => 'Astrakhan (Moskva-áigi)',
+        'Europe/Astrakhan' => 'Astrakhan (Ruošša áigi)',
         'Europe/Athens' => 'Athens (nuorti-Eurohpá áigi)',
         'Europe/Belgrade' => 'Belgrade (gaska-Eurohpá áigi)',
         'Europe/Berlin' => 'Berlin (gaska-Eurohpá áigi)',
@@ -322,8 +338,8 @@
         'Europe/Brussels' => 'Brussels (gaska-Eurohpá áigi)',
         'Europe/Bucharest' => 'Bucharest (nuorti-Eurohpá áigi)',
         'Europe/Budapest' => 'Budapest (gaska-Eurohpá áigi)',
-        'Europe/Busingen' => 'Busingen (gaska-Eurohpá áigi)',
-        'Europe/Chisinau' => 'Chisinau (nuorti-Eurohpá áigi)',
+        'Europe/Busingen' => 'Büsingen (gaska-Eurohpá áigi)',
+        'Europe/Chisinau' => 'Chișinău (nuorti-Eurohpá áigi)',
         'Europe/Copenhagen' => 'Copenhagen (gaska-Eurohpá áigi)',
         'Europe/Dublin' => 'Dublin (Greenwich gaskka áigi)',
         'Europe/Gibraltar' => 'Gibraltar (gaska-Eurohpá áigi)',
@@ -334,7 +350,8 @@
         'Europe/Jersey' => 'Jersey (Greenwich gaskka áigi)',
         'Europe/Kaliningrad' => 'Kaliningrad (nuorti-Eurohpá áigi)',
         'Europe/Kiev' => 'Kyiv (nuorti-Eurohpá áigi)',
-        'Europe/Kirov' => 'Kirov (Ruošša áigi)',
+        'Europe/Kyiv' => 'Kyiv (nuorti-Eurohpá áigi)',
+        'Europe/Kirov' => 'Kirov (Moskva-áigi)',
         'Europe/Lisbon' => 'Lisbon (oarje-Eurohpá áigi)',
         'Europe/Ljubljana' => 'Ljubljana (gaska-Eurohpá áigi)',
         'Europe/London' => 'London (Greenwich gaskka áigi)',
@@ -354,27 +371,27 @@
         'Europe/Samara' => 'Samara (Ruošša áigi)',
         'Europe/San_Marino' => 'San Marino (gaska-Eurohpá áigi)',
         'Europe/Sarajevo' => 'Sarajevo (gaska-Eurohpá áigi)',
-        'Europe/Saratov' => 'Saratov (Moskva-áigi)',
+        'Europe/Saratov' => 'Saratov (Ruošša áigi)',
         'Europe/Simferopol' => 'Simferopol (Moskva-áigi)',
         'Europe/Skopje' => 'Skopje (gaska-Eurohpá áigi)',
         'Europe/Sofia' => 'Sofia (nuorti-Eurohpá áigi)',
         'Europe/Stockholm' => 'Stockholm (gaska-Eurohpá áigi)',
         'Europe/Tallinn' => 'Tallinn (nuorti-Eurohpá áigi)',
-        'Europe/Tirane' => 'Tirane (gaska-Eurohpá áigi)',
-        'Europe/Ulyanovsk' => 'Ulyanovsk (Moskva-áigi)',
+        'Europe/Tirane' => 'Tirana (gaska-Eurohpá áigi)',
+        'Europe/Ulyanovsk' => 'Ulyanovsk (Ruošša áigi)',
         'Europe/Vaduz' => 'Vaduz (gaska-Eurohpá áigi)',
         'Europe/Vatican' => 'Vatican (gaska-Eurohpá áigi)',
         'Europe/Vienna' => 'Vienna (gaska-Eurohpá áigi)',
         'Europe/Vilnius' => 'Vilnius (nuorti-Eurohpá áigi)',
-        'Europe/Volgograd' => 'Volgograd (Ruošša áigi)',
+        'Europe/Volgograd' => 'Volgograd (Moskva-áigi)',
         'Europe/Warsaw' => 'Warsaw (gaska-Eurohpá áigi)',
         'Europe/Zagreb' => 'Zagreb (gaska-Eurohpá áigi)',
         'Europe/Zurich' => 'Zurich (gaska-Eurohpá áigi)',
         'Indian/Antananarivo' => 'Antananarivo (Madagaskar áigi)',
         'Indian/Christmas' => 'Christmas (Juovllat-sullot áigi)',
         'Indian/Cocos' => 'Cocos (Cocos-sullot áigi)',
-        'Indian/Comoro' => 'Comoro (Komoros áigi)',
-        'Indian/Mahe' => 'Mahe (Seychellsullot áigi)',
+        'Indian/Comoro' => 'Comores (Komoros áigi)',
+        'Indian/Mahe' => 'Mahé (Seychellsullot áigi)',
         'Indian/Maldives' => 'Maldives (Malediivvat áigi)',
         'Indian/Mauritius' => 'Mauritius (Mauritius áigi)',
         'Indian/Mayotte' => 'Mayotte (Mayotte áigi)',
@@ -385,11 +402,12 @@
         'Pacific/Chatham' => 'Chatham (Ođđa-Selánda áigi)',
         'Pacific/Easter' => 'Easter (Čiile áigi)',
         'Pacific/Efate' => 'Efate (Vanuatu áigi)',
-        'Pacific/Enderbury' => 'Enderbury (Kiribati áigi)',
+        'Pacific/Enderbury' => 'Canton (Kiribati áigi)',
+        'Pacific/Kanton' => 'Canton (Kiribati áigi)',
         'Pacific/Fakaofo' => 'Fakaofo (Tokelau áigi)',
         'Pacific/Fiji' => 'Fiji (Fijisullot áigi)',
         'Pacific/Funafuti' => 'Funafuti (Tuvalu áigi)',
-        'Pacific/Galapagos' => 'Galapagos (Ecuador áigi)',
+        'Pacific/Galapagos' => 'Galápagos (Ecuador áigi)',
         'Pacific/Gambier' => 'Gambier (Frankriikka Polynesia áigi)',
         'Pacific/Guadalcanal' => 'Guadalcanal (Salomon-sullot áigi)',
         'Pacific/Guam' => 'Guam (Guam áigi)',
@@ -402,11 +420,12 @@
         'Pacific/Nauru' => 'Nauru (Nauru áigi)',
         'Pacific/Niue' => 'Niue (Niue áigi)',
         'Pacific/Norfolk' => 'Norfolk (Norfolksullot áigi)',
-        'Pacific/Noumea' => 'Noumea (Ođđa-Kaledonia áigi)',
+        'Pacific/Noumea' => 'Nouméa (Ođđa-Kaledonia áigi)',
         'Pacific/Pago_Pago' => 'Pago Pago (Amerihká Samoa áigi)',
         'Pacific/Palau' => 'Palau (Palau áigi)',
         'Pacific/Pitcairn' => 'Pitcairn (Pitcairn áigi)',
         'Pacific/Ponape' => 'Pohnpei (Mikronesia áigi)',
+        'Pacific/Pohnpei' => 'Pohnpei (Mikronesia áigi)',
         'Pacific/Port_Moresby' => 'Port Moresby (Papua-Ođđa-Guinea áigi)',
         'Pacific/Rarotonga' => 'Rarotonga (Cook-sullot áigi)',
         'Pacific/Saipan' => 'Saipan (Davvi-Mariánat áigi)',
@@ -414,7 +433,8 @@
         'Pacific/Tarawa' => 'Tarawa (Kiribati áigi)',
         'Pacific/Tongatapu' => 'Tongatapu (Tonga áigi)',
         'Pacific/Truk' => 'Chuuk (Mikronesia áigi)',
-        'Pacific/Wallis' => 'Wallis (Wallis ja Futuna áigi)',
+        'Pacific/Chuuk' => 'Chuuk (Mikronesia áigi)',
+        'Pacific/Wallis' => 'Wallis & Futuna (Wallis ja Futuna áigi)',
     ],
     'Meta' => [
         'GmtFormat' => 'UTC%s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/si.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/si.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/si.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/si.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'නැගෙනහිර අප්‍රිකානු වේලාව (අඩිස් අබාබා)',
         'Africa/Algiers' => 'මධ්‍යම යුරෝපීය වේලාව (ඇල්ජියර්ස්)',
         'Africa/Asmera' => 'නැගෙනහිර අප්‍රිකානු වේලාව (අස්මාරා)',
+        'Africa/Asmara' => 'නැගෙනහිර අප්‍රිකානු වේලාව (අස්මාරා)',
         'Africa/Bamako' => 'ග්‍රිනිච් මධ්‍යම වේලාව (බමකො)',
         'Africa/Bangui' => 'බටහිර අප්‍රිකානු වේලාව (බන්ගුයි)',
         'Africa/Banjul' => 'ග්‍රිනිච් මධ්‍යම වේලාව (බන්ජුල්)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'කොලොම්බියා වේලාව (බොගොටා)',
         'America/Boise' => 'උතුරු ඇමරිකානු කඳුකර වේලාව (බොයිසි)',
         'America/Buenos_Aires' => 'ආර්ජන්ටිනා වේලාව (බුවනෝස් අයර්ස්)',
+        'America/Argentina/Buenos_Aires' => 'ආර්ජන්ටිනා වේලාව (බුවනෝස් අයර්ස්)',
         'America/Cambridge_Bay' => 'උතුරු ඇමරිකානු කඳුකර වේලාව (කේම්බ්‍රිජ් බොක්ක)',
         'America/Campo_Grande' => 'ඇමර්සන් වේලාව (කම්පෝ ග්‍රෑන්ඩ්)',
         'America/Cancun' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (කැන්කුන්)',
         'America/Caracas' => 'වෙනිසියුලා වේලාව (කරකස්)',
         'America/Catamarca' => 'ආර්ජන්ටිනා වේලාව (කටමර්කා)',
+        'America/Argentina/Catamarca' => 'ආර්ජන්ටිනා වේලාව (කටමර්කා)',
         'America/Cayenne' => 'ප්‍රංශ ගයනා වේලාව (කේයෙන්)',
         'America/Cayman' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (කේමන්)',
         'America/Chicago' => 'උතුරු ඇමරිකානු මධ්‍යම වේලාව (චිකාගෝ)',
         'America/Chihuahua' => 'උතුරු ඇමරිකානු මධ්‍යම වේලාව (චිහුආහුආ)',
         'America/Ciudad_Juarez' => 'උතුරු ඇමරිකානු කඳුකර වේලාව (සියුඩාඩ් ජුවාරෙස්)',
         'America/Coral_Harbour' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (ඇටිකොකන්)',
+        'America/Atikokan' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (ඇටිකොකන්)',
         'America/Cordoba' => 'ආර්ජන්ටිනා වේලාව (කොර්දොබා)',
+        'America/Argentina/Cordoba' => 'ආර්ජන්ටිනා වේලාව (කොර්දොබා)',
         'America/Costa_Rica' => 'උතුරු ඇමරිකානු මධ්‍යම වේලාව (කොස්ටරිකා)',
+        'America/Coyhaique' => 'චිලී වේලාව (කොයිහයික්)',
         'America/Creston' => 'උතුරු ඇමරිකානු කඳුකර වේලාව (ක්‍රෙස්ටන්)',
         'America/Cuiaba' => 'ඇමර්සන් වේලාව (කුයිඅබා)',
         'America/Curacao' => 'අත්ලාන්තික් වේලාව (කුරකාවෝ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'බ්‍රසීල වේලාව (ෆොර්ටලේසා)',
         'America/Glace_Bay' => 'අත්ලාන්තික් වේලාව (ග්ලේස් බොක්ක)',
         'America/Godthab' => 'ග්‍රීන්ලන්තය වේලාව (නූක්)',
+        'America/Nuuk' => 'ග්‍රීන්ලන්තය වේලාව (නූක්)',
         'America/Goose_Bay' => 'අත්ලාන්තික් වේලාව (ගූස් බොක්ක)',
         'America/Grand_Turk' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (ග්රෑන්ඩ් ටර්ක්)',
         'America/Grenada' => 'අත්ලාන්තික් වේලාව (ග්‍රැනඩා)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (වින්සනස්, ඉන්දියානා)',
         'America/Indiana/Winamac' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (විනමැක්, ඉන්දියානා)',
         'America/Indianapolis' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (ඉන්ඩියානපොලිස්)',
+        'America/Indiana/Indianapolis' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (ඉන්ඩියානපොලිස්)',
         'America/Inuvik' => 'උතුරු ඇමරිකානු කඳුකර වේලාව (ඉනුවික්)',
         'America/Iqaluit' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (ඉකාලුයිට්)',
         'America/Jamaica' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (ජැමෙයිකා)',
         'America/Jujuy' => 'ආර්ජන්ටිනා වේලාව (ජුජුයි)',
+        'America/Argentina/Jujuy' => 'ආර්ජන්ටිනා වේලාව (ජුජුයි)',
         'America/Juneau' => 'ඇලස්කා වේලාව (ජූනෝ)',
         'America/Kentucky/Monticello' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (මොන්ටිසෙලෝ, කෙන්ටකි)',
         'America/Kralendijk' => 'අත්ලාන්තික් වේලාව (ක්‍රලෙන්දිජ්ක්)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'පේරු වේලාව (ලීමා)',
         'America/Los_Angeles' => 'උතුරු ඇමරිකානු පැසිෆික් වේලාව (ලොස් ඇන්ජලීස්)',
         'America/Louisville' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (ලුවිස්විල්)',
+        'America/Kentucky/Louisville' => 'උතුරු ඇමරිකානු නැගෙනහිර වේලාව (ලුවිස්විල්)',
         'America/Lower_Princes' => 'අත්ලාන්තික් වේලාව (ලෝවර් ප්‍රින්සස් ක්වාටර්)',
         'America/Maceio' => 'බ්‍රසීල වේලාව (මසේයියෝ)',
         'America/Managua' => 'උතුරු ඇමරිකානු මධ්‍යම වේලාව (මනගුආ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'උතුරු ඇමරිකානු මධ්‍යම වේලාව (මටමොරොස්)',
         'America/Mazatlan' => 'මෙක්සිකෝ පැසිෆික් වේලාව (මසට්ලාන්)',
         'America/Mendoza' => 'ආර්ජන්ටිනා වේලාව (මෙන්ඩෝසා)',
+        'America/Argentina/Mendoza' => 'ආර්ජන්ටිනා වේලාව (මෙන්ඩෝසා)',
         'America/Menominee' => 'උතුරු ඇමරිකානු මධ්‍යම වේලාව (මෙනොමිනී)',
         'America/Merida' => 'උතුරු ඇමරිකානු මධ්‍යම වේලාව (මෙරිඩා)',
         'America/Metlakatla' => 'ඇලස්කා වේලාව (මෙට්ලකට්ලා)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'අරාබි වේලාව (බහරේන්)',
         'Asia/Baku' => 'අසර්බයිජාන් වේලාව (බාකු)',
         'Asia/Bangkok' => 'ඉන්දුචීන වේලාව (බැංකොක්)',
-        'Asia/Barnaul' => 'රුසියාව වේලාව (බර්නෞල්)',
+        'Asia/Barnaul' => 'ක්‍රස්නොයාර්ස්ක් වේලාව (බර්නෞල්)',
         'Asia/Beirut' => 'නැගෙනහිර යුරෝපීය වේලාව (බීරුට්)',
         'Asia/Bishkek' => 'කිර්ගිස්තාන වේලාව (බිශ්කෙක්)',
         'Asia/Brunei' => 'බෘනායි දරුස්සලාම් වේලාව (බෲනායි)',
         'Asia/Calcutta' => 'ඉන්දියානු වේලාව (කල්කටා)',
+        'Asia/Kolkata' => 'ඉන්දියානු වේලාව (කල්කටා)',
         'Asia/Chita' => 'යකුට්ස්ක් වේලාව (චිටා)',
         'Asia/Colombo' => 'ඉන්දියානු වේලාව (කොළඹ)',
         'Asia/Damascus' => 'නැගෙනහිර යුරෝපීය වේලාව (ඩැමස්කස්)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'රුසියාව වේලාව (කම්චට්කා)',
         'Asia/Karachi' => 'පාකිස්ථාන වේලාව (කරච්චිචි)',
         'Asia/Katmandu' => 'නේපාල වේලාව (කත්මන්ඩු)',
+        'Asia/Kathmandu' => 'නේපාල වේලාව (කත්මන්ඩු)',
         'Asia/Khandyga' => 'යකුට්ස්ක් වේලාව (ඛන්ඩිගා)',
         'Asia/Krasnoyarsk' => 'ක්‍රස්නොයාර්ස්ක් වේලාව (ක්‍රස්නෝයාර්ස්ක්)',
         'Asia/Kuala_Lumpur' => 'මැලේසියානු වේලාව (ක්වාලාලම්පූර්)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ගල්ෆ් වේලාව (මස්කට්)',
         'Asia/Nicosia' => 'නැගෙනහිර යුරෝපීය වේලාව (නිකෝසියා)',
         'Asia/Novokuznetsk' => 'ක්‍රස්නොයාර්ස්ක් වේලාව (නොවොකුස්නේට්ස්ක්)',
-        'Asia/Novosibirsk' => 'නොවසිබිර්ස්ක් වේලාව (නොවොසිබර්ස්ක්)',
+        'Asia/Novosibirsk' => 'ක්‍රස්නොයාර්ස්ක් වේලාව (නොවොසිබර්ස්ක්)',
         'Asia/Omsk' => 'ඔම්ස්ක් වේලාව',
         'Asia/Oral' => 'කසකස්තාන වේලාව (ඔරාල්)',
         'Asia/Phnom_Penh' => 'ඉන්දුචීන වේලාව (නොම් පෙන්)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'කසකස්තාන වේලාව (කොස්තානේ)',
         'Asia/Qyzylorda' => 'කසකස්තාන වේලාව (ක්යිසිලෝර්ඩා)',
         'Asia/Rangoon' => 'මියන්මාර් වේලාව (රැංගුන්)',
+        'Asia/Yangon' => 'මියන්මාර් වේලාව (රැංගුන්)',
         'Asia/Riyadh' => 'අරාබි වේලාව (රියාද්)',
         'Asia/Saigon' => 'ඉන්දුචීන වේලාව (හෝචි මිං නගරය)',
-        'Asia/Sakhalin' => 'සඛලින් වේලාව (සක්හලින්)',
+        'Asia/Ho_Chi_Minh' => 'ඉන්දුචීන වේලාව (හෝචි මිං නගරය)',
+        'Asia/Sakhalin' => 'මෙගඩන් වේලාව (සක්හලින්)',
         'Asia/Samarkand' => 'උස්බෙකිස්තාන වේලාව (සාමාර්කන්ඩ්)',
         'Asia/Seoul' => 'කොරියානු වේලාව (සෝල්)',
         'Asia/Shanghai' => 'චීන වේලාව (ෂැන්හයි)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ඉරාන වේලාව (ටෙහෙරාන්)',
         'Asia/Thimphu' => 'භුතාන වේලාව (තිම්පු)',
         'Asia/Tokyo' => 'ජපාන වේලාව (ටෝකියෝ)',
-        'Asia/Tomsk' => 'රුසියාව වේලාව (ටොම්ස්ක්)',
+        'Asia/Tomsk' => 'ක්‍රස්නොයාර්ස්ක් වේලාව (ටොම්ස්ක්)',
         'Asia/Ulaanbaatar' => 'උලාන් බාටර් වේලාව (උලාන්බාටර්)',
         'Asia/Urumqi' => 'චීනය වේලාව (උරුම්කි)',
         'Asia/Ust-Nera' => 'ව්ලදිවෝස්ටෝක් වේලාව (උස්ට්-නෙරා)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'බටහිර යුරෝපීය වේලාව (කැනරි)',
         'Atlantic/Cape_Verde' => 'කේප්වේඩ් වේලාව (කේප් වර්ඩ්)',
         'Atlantic/Faeroe' => 'බටහිර යුරෝපීය වේලාව (ෆාරෝ)',
+        'Atlantic/Faroe' => 'බටහිර යුරෝපීය වේලාව (ෆාරෝ)',
         'Atlantic/Madeira' => 'බටහිර යුරෝපීය වේලාව (මඩෙයිරා)',
         'Atlantic/Reykjavik' => 'ග්‍රිනිච් මධ්‍යම වේලාව (රෙයික්ජාවික්)',
         'Atlantic/South_Georgia' => 'දකුණු ජෝජියා වේලාව (දකුණු ජෝර්ජියාව)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'සමකක්ෂ සාර්ව වේලාව',
         'Europe/Amsterdam' => 'මධ්‍යම යුරෝපීය වේලාව (ඇම්ස්ටර්ඩෑම්)',
         'Europe/Andorra' => 'මධ්‍යම යුරෝපීය වේලාව (ඇන්ඩෝරාව)',
-        'Europe/Astrakhan' => 'මොස්කව් වේලාව (අස්ට්‍රඛාන්)',
+        'Europe/Astrakhan' => 'රුසියාව වේලාව (අස්ට්‍රඛාන්)',
         'Europe/Athens' => 'නැගෙනහිර යුරෝපීය වේලාව (ඇතැන්ස්)',
         'Europe/Belgrade' => 'මධ්‍යම යුරෝපීය වේලාව (බෙල්ග්‍රේඩ්ඩ්)',
         'Europe/Berlin' => 'මධ්‍යම යුරෝපීය වේලාව (බර්ලින්)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'ග්‍රිනිච් මධ්‍යම වේලාව (ජර්සි)',
         'Europe/Kaliningrad' => 'නැගෙනහිර යුරෝපීය වේලාව (කලිනින්ග්‍රෑඩ්)',
         'Europe/Kiev' => 'නැගෙනහිර යුරෝපීය වේලාව (කිව්)',
-        'Europe/Kirov' => 'රුසියාව වේලාව (කිරොව්)',
+        'Europe/Kyiv' => 'නැගෙනහිර යුරෝපීය වේලාව (කිව්)',
+        'Europe/Kirov' => 'මොස්කව් වේලාව (කිරොව්)',
         'Europe/Lisbon' => 'බටහිර යුරෝපීය වේලාව (ලිස්බන්)',
         'Europe/Ljubljana' => 'මධ්‍යම යුරෝපීය වේලාව (ල්ජුබුල්ජනා)',
         'Europe/London' => 'ග්‍රිනිච් මධ්‍යම වේලාව (ලන්ඩන්)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'රුසියාව වේලාව (සමරා)',
         'Europe/San_Marino' => 'මධ්‍යම යුරෝපීය වේලාව (සැන් මැරිනෝ)',
         'Europe/Sarajevo' => 'මධ්‍යම යුරෝපීය වේලාව (සරාජෙවෝ)',
-        'Europe/Saratov' => 'මොස්කව් වේලාව (සරටොව්)',
+        'Europe/Saratov' => 'රුසියාව වේලාව (සරටොව්)',
         'Europe/Simferopol' => 'මොස්කව් වේලාව (සිම්ෆෙරෝපොල්)',
         'Europe/Skopje' => 'මධ්‍යම යුරෝපීය වේලාව (ස්කොප්ජේ)',
         'Europe/Sofia' => 'නැගෙනහිර යුරෝපීය වේලාව (සොෆියා)',
         'Europe/Stockholm' => 'මධ්‍යම යුරෝපීය වේලාව (ස්ටොක්හෝම්)',
         'Europe/Tallinn' => 'නැගෙනහිර යුරෝපීය වේලාව (ටලින්)',
         'Europe/Tirane' => 'මධ්‍යම යුරෝපීය වේලාව (ටිරානේ)',
-        'Europe/Ulyanovsk' => 'මොස්කව් වේලාව (උල්යනොව්ස්ක්)',
+        'Europe/Ulyanovsk' => 'රුසියාව වේලාව (උල්යනොව්ස්ක්)',
         'Europe/Vaduz' => 'මධ්‍යම යුරෝපීය වේලාව (වඩුස්)',
         'Europe/Vatican' => 'මධ්‍යම යුරෝපීය වේලාව (වතිකානුව)',
         'Europe/Vienna' => 'මධ්‍යම යුරෝපීය වේලාව (වියනා)',
         'Europe/Vilnius' => 'නැගෙනහිර යුරෝපීය වේලාව (විල්නියුස්)',
-        'Europe/Volgograd' => 'වොල්ගොග්‍රාඩ් වේලාව (වොල්ගොග්‍රෑඩ්)',
+        'Europe/Volgograd' => 'මොස්කව් වේලාව (වොල්ගොග්‍රෑඩ්)',
         'Europe/Warsaw' => 'මධ්‍යම යුරෝපීය වේලාව (වර්සෝ)',
         'Europe/Zagreb' => 'මධ්‍යම යුරෝපීය වේලාව (සග්රෙබ්)',
         'Europe/Zurich' => 'මධ්‍යම යුරෝපීය වේලාව (සූරිච්)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'චැතම් වේලාව',
         'Pacific/Easter' => 'ඊස්ටර් දූපත් වේලාව',
         'Pacific/Efate' => 'වනුආටු වේලාව (එෆාත්)',
-        'Pacific/Enderbury' => 'ෆීනික්ස් දුපත් වේලාව (එන්ඩර්බරි)',
+        'Pacific/Enderbury' => 'ෆීනික්ස් දුපත් වේලාව (කැන්ටන්)',
+        'Pacific/Kanton' => 'ෆීනික්ස් දුපත් වේලාව (කැන්ටන්)',
         'Pacific/Fakaofo' => 'ටොකෙලාවු වේලාව (ෆාකාඕෆෝ)',
         'Pacific/Fiji' => 'ෆිජි වේලාව (ෆීජි)',
         'Pacific/Funafuti' => 'ටුවාලු වේලාව (ෆුනෆුටි)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ගැම්බියර් වේලාව (ගම්බියෙර්)',
         'Pacific/Guadalcanal' => 'සොලොමන් දූපත් වේලාව (ගුවාඩල්කැනල්)',
         'Pacific/Guam' => 'චමොරෝ වේලාව (ගුවාම්)',
-        'Pacific/Honolulu' => 'හවායි-අලෙයුතියාන් වේලාව (හොනොලුලු)',
+        'Pacific/Honolulu' => 'හවායි-අලෙයුතියාන් සම්මත වේලාව (හොනොලුලු)',
         'Pacific/Kiritimati' => 'ලයින් දුපත් වේලාව (කිරිමටි)',
         'Pacific/Kosrae' => 'කොස්රේ වේලාව',
         'Pacific/Kwajalein' => 'මාර්ෂල් දුපත් වේලාව (ක්වාජලෙයින්)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'පලාවු වේලාව',
         'Pacific/Pitcairn' => 'පිට්කෙයාන් වේලාව',
         'Pacific/Ponape' => 'පොනපේ වේලාව (පොන්පෙයි)',
+        'Pacific/Pohnpei' => 'පොනපේ වේලාව (පොන්පෙයි)',
         'Pacific/Port_Moresby' => 'පැපුවා නිව් ගිනීයා වේලාව (පොර්ට් මොරෙස්බි)',
         'Pacific/Rarotonga' => 'කුක් දුපත් වේලාව (රරෝටෝන්ගා)',
         'Pacific/Saipan' => 'චමොරෝ වේලාව (සයිපාන්)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'ගිල්බර්ට් දුපත් වේලාව (ටරාවා)',
         'Pacific/Tongatapu' => 'ටොංගා වේලාව (ටොන්ගටාපු)',
         'Pacific/Truk' => 'චුක් වේලාව (චූක්)',
+        'Pacific/Chuuk' => 'චුක් වේලාව (චූක්)',
         'Pacific/Wake' => 'වේක් දූපත් වේලාව',
         'Pacific/Wallis' => 'වැලිස් සහ ෆුටුනා වේලාව',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sk.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'východoafrický čas (Addis Abeba)',
         'Africa/Algiers' => 'stredoeurópsky čas (Alžír)',
         'Africa/Asmera' => 'východoafrický čas (Asmara)',
+        'Africa/Asmara' => 'východoafrický čas (Asmara)',
         'Africa/Bamako' => 'greenwichský čas (Bamako)',
         'Africa/Bangui' => 'západoafrický čas (Bangui)',
         'Africa/Banjul' => 'greenwichský čas (Banjul)',
@@ -58,13 +59,13 @@
         'America/Anchorage' => 'aljašský čas (Anchorage)',
         'America/Anguilla' => 'atlantický čas (Anguilla)',
         'America/Antigua' => 'atlantický čas (Antigua)',
-        'America/Araguaina' => 'brazílsky čas (Araguaina)',
+        'America/Araguaina' => 'brazílsky čas (Araguaína)',
         'America/Argentina/La_Rioja' => 'argentínsky čas (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'argentínsky čas (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'argentínsky čas (Río Gallegos)',
         'America/Argentina/Salta' => 'argentínsky čas (Salta)',
         'America/Argentina/San_Juan' => 'argentínsky čas (San Juan)',
         'America/Argentina/San_Luis' => 'argentínsky čas (San Luis)',
-        'America/Argentina/Tucuman' => 'argentínsky čas (Tucuman)',
+        'America/Argentina/Tucuman' => 'argentínsky čas (Tucumán)',
         'America/Argentina/Ushuaia' => 'argentínsky čas (Ushuaia)',
         'America/Aruba' => 'atlantický čas (Aruba)',
         'America/Asuncion' => 'paraguajský čas (Asunción)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'kolumbijský čas (Bogotá)',
         'America/Boise' => 'severoamerický horský čas (Boise)',
         'America/Buenos_Aires' => 'argentínsky čas (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'argentínsky čas (Buenos Aires)',
         'America/Cambridge_Bay' => 'severoamerický horský čas (Cambridge Bay)',
         'America/Campo_Grande' => 'amazonský čas (Campo Grande)',
         'America/Cancun' => 'severoamerický východný čas (Cancún)',
         'America/Caracas' => 'venezuelský čas (Caracas)',
         'America/Catamarca' => 'argentínsky čas (Catamarca)',
+        'America/Argentina/Catamarca' => 'argentínsky čas (Catamarca)',
         'America/Cayenne' => 'francúzskoguyanský čas (Cayenne)',
         'America/Cayman' => 'severoamerický východný čas (Kajmanie ostrovy)',
         'America/Chicago' => 'severoamerický centrálny čas (Chicago)',
         'America/Chihuahua' => 'severoamerický centrálny čas (Chihuahua)',
         'America/Ciudad_Juarez' => 'severoamerický horský čas (Ciudad Juárez)',
         'America/Coral_Harbour' => 'severoamerický východný čas (Atikokan)',
+        'America/Atikokan' => 'severoamerický východný čas (Atikokan)',
         'America/Cordoba' => 'argentínsky čas (Córdoba)',
+        'America/Argentina/Cordoba' => 'argentínsky čas (Córdoba)',
         'America/Costa_Rica' => 'severoamerický centrálny čas (Kostarika)',
+        'America/Coyhaique' => 'čilský čas (Coyhaique)',
         'America/Creston' => 'severoamerický horský čas (Creston)',
         'America/Cuiaba' => 'amazonský čas (Cuiabá)',
         'America/Curacao' => 'atlantický čas (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'brazílsky čas (Fortaleza)',
         'America/Glace_Bay' => 'atlantický čas (Glace Bay)',
         'America/Godthab' => 'časové pásmo Grónsko (Nuuk)',
+        'America/Nuuk' => 'časové pásmo Grónsko (Nuuk)',
         'America/Goose_Bay' => 'atlantický čas (Goose Bay)',
         'America/Grand_Turk' => 'severoamerický východný čas (Grand Turk)',
         'America/Grenada' => 'atlantický čas (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'severoamerický východný čas (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'severoamerický východný čas (Winamac, Indiana)',
         'America/Indianapolis' => 'severoamerický východný čas (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'severoamerický východný čas (Indianapolis)',
         'America/Inuvik' => 'severoamerický horský čas (Inuvik)',
         'America/Iqaluit' => 'severoamerický východný čas (Iqaluit)',
         'America/Jamaica' => 'severoamerický východný čas (Jamajka)',
         'America/Jujuy' => 'argentínsky čas (Jujuy)',
+        'America/Argentina/Jujuy' => 'argentínsky čas (Jujuy)',
         'America/Juneau' => 'aljašský čas (Juneau)',
         'America/Kentucky/Monticello' => 'severoamerický východný čas (Monticello, Kentucky)',
         'America/Kralendijk' => 'atlantický čas (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'peruánsky čas (Lima)',
         'America/Los_Angeles' => 'severoamerický tichomorský čas (Los Angeles)',
         'America/Louisville' => 'severoamerický východný čas (Louisville)',
+        'America/Kentucky/Louisville' => 'severoamerický východný čas (Louisville)',
         'America/Lower_Princes' => 'atlantický čas (Lower Prince’s Quarter)',
         'America/Maceio' => 'brazílsky čas (Maceió)',
         'America/Managua' => 'severoamerický centrálny čas (Managua)',
@@ -145,11 +155,12 @@
         'America/Matamoros' => 'severoamerický centrálny čas (Matamoros)',
         'America/Mazatlan' => 'mexický tichomorský čas (Mazatlán)',
         'America/Mendoza' => 'argentínsky čas (Mendoza)',
+        'America/Argentina/Mendoza' => 'argentínsky čas (Mendoza)',
         'America/Menominee' => 'severoamerický centrálny čas (Menominee)',
         'America/Merida' => 'severoamerický centrálny čas (Mérida)',
         'America/Metlakatla' => 'aljašský čas (Metlakatla)',
         'America/Mexico_City' => 'severoamerický centrálny čas (México)',
-        'America/Miquelon' => 'pierre-miquelonský čas',
+        'America/Miquelon' => 'pierre-miquelonský čas (Saint-Pierre)',
         'America/Moncton' => 'atlantický čas (Moncton)',
         'America/Monterrey' => 'severoamerický centrálny čas (Monterrey)',
         'America/Montevideo' => 'uruguajský čas (Montevideo)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'arabský čas (Aden)',
         'Asia/Almaty' => 'kazachstanský čas (Alma‑Ata)',
         'Asia/Amman' => 'východoeurópsky čas (Ammán)',
-        'Asia/Anadyr' => 'Anadyrský čas',
+        'Asia/Anadyr' => 'Petropavlovsk-Kamčatský čas (Anadyr)',
         'Asia/Aqtau' => 'kazachstanský čas (Aktau)',
         'Asia/Aqtobe' => 'kazachstanský čas (Aktobe)',
         'Asia/Ashgabat' => 'turkménsky čas (Ašchabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'arabský čas (Bahrajn)',
         'Asia/Baku' => 'azerbajdžanský čas (Baku)',
         'Asia/Bangkok' => 'indočínsky čas (Bangkok)',
-        'Asia/Barnaul' => 'časové pásmo Rusko (Barnaul)',
+        'Asia/Barnaul' => 'krasnojarský čas (Barnaul)',
         'Asia/Beirut' => 'východoeurópsky čas (Bejrút)',
         'Asia/Bishkek' => 'kirgizský čas (Biškek)',
         'Asia/Brunei' => 'brunejský čas',
         'Asia/Calcutta' => 'indický čas (Kalkata)',
+        'Asia/Kolkata' => 'indický čas (Kalkata)',
         'Asia/Chita' => 'jakutský čas (Čita)',
         'Asia/Colombo' => 'indický čas (Kolombo)',
         'Asia/Damascus' => 'východoeurópsky čas (Damask)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-Kamčatský čas (Kamčatka)',
         'Asia/Karachi' => 'pakistanský čas (Karáči)',
         'Asia/Katmandu' => 'nepálsky čas (Káthmandu)',
+        'Asia/Kathmandu' => 'nepálsky čas (Káthmandu)',
         'Asia/Khandyga' => 'jakutský čas (Chandyga)',
         'Asia/Krasnoyarsk' => 'krasnojarský čas',
         'Asia/Kuala_Lumpur' => 'malajzijský čas (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'štandardný čas Perzského zálivu (Maskat)',
         'Asia/Nicosia' => 'východoeurópsky čas (Nikózia)',
         'Asia/Novokuznetsk' => 'krasnojarský čas (Novokuzneck)',
-        'Asia/Novosibirsk' => 'novosibirský čas',
+        'Asia/Novosibirsk' => 'krasnojarský čas (Novosibirsk)',
         'Asia/Omsk' => 'omský čas',
         'Asia/Oral' => 'kazachstanský čas (Uraľsk)',
         'Asia/Phnom_Penh' => 'indočínsky čas (Phnom Pénh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'kazachstanský čas (Kostanaj)',
         'Asia/Qyzylorda' => 'kazachstanský čas (Kyzylorda)',
         'Asia/Rangoon' => 'mjanmarský čas (Rangún)',
+        'Asia/Yangon' => 'mjanmarský čas (Rangún)',
         'Asia/Riyadh' => 'arabský čas (Rijád)',
         'Asia/Saigon' => 'indočínsky čas (Hočiminovo Mesto)',
-        'Asia/Sakhalin' => 'sachalinský čas',
+        'Asia/Ho_Chi_Minh' => 'indočínsky čas (Hočiminovo Mesto)',
+        'Asia/Sakhalin' => 'magadanský čas (Sachalin)',
         'Asia/Samarkand' => 'uzbecký čas (Samarkand)',
         'Asia/Seoul' => 'kórejský čas (Soul)',
         'Asia/Shanghai' => 'čínsky čas (Šanghaj)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'iránsky čas (Teherán)',
         'Asia/Thimphu' => 'bhutánsky čas (Thimphu)',
         'Asia/Tokyo' => 'japonský čas (Tokio)',
-        'Asia/Tomsk' => 'časové pásmo Rusko (Tomsk)',
+        'Asia/Tomsk' => 'krasnojarský čas (Tomsk)',
         'Asia/Ulaanbaatar' => 'ulanbátarský čas',
         'Asia/Urumqi' => 'časové pásmo Čína (Urumči)',
         'Asia/Ust-Nera' => 'vladivostocký čas (Usť-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'západoeurópsky čas (Kanárske ostrovy)',
         'Atlantic/Cape_Verde' => 'kapverdský čas (Kapverdy)',
         'Atlantic/Faeroe' => 'západoeurópsky čas (Faerské ostrovy)',
+        'Atlantic/Faroe' => 'západoeurópsky čas (Faerské ostrovy)',
         'Atlantic/Madeira' => 'západoeurópsky čas (Madeira)',
         'Atlantic/Reykjavik' => 'greenwichský čas (Reykjavík)',
         'Atlantic/South_Georgia' => 'čas Južnej Georgie (Južná Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'koordinovaný svetový čas',
         'Europe/Amsterdam' => 'stredoeurópsky čas (Amsterdam)',
         'Europe/Andorra' => 'stredoeurópsky čas (Andorra)',
-        'Europe/Astrakhan' => 'moskovský čas (Astrachán)',
+        'Europe/Astrakhan' => 'Samarský čas (Astrachán)',
         'Europe/Athens' => 'východoeurópsky čas (Atény)',
         'Europe/Belgrade' => 'stredoeurópsky čas (Belehrad)',
         'Europe/Berlin' => 'stredoeurópsky čas (Berlín)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'greenwichský čas (Jersey)',
         'Europe/Kaliningrad' => 'východoeurópsky čas (Kaliningrad)',
         'Europe/Kiev' => 'východoeurópsky čas (Kyjev)',
-        'Europe/Kirov' => 'časové pásmo Rusko (Kirov)',
+        'Europe/Kyiv' => 'východoeurópsky čas (Kyjev)',
+        'Europe/Kirov' => 'moskovský čas (Kirov)',
         'Europe/Lisbon' => 'západoeurópsky čas (Lisabon)',
         'Europe/Ljubljana' => 'stredoeurópsky čas (Ľubľana)',
         'Europe/London' => 'greenwichský čas (Londýn)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samarský čas (Samara)',
         'Europe/San_Marino' => 'stredoeurópsky čas (San Maríno)',
         'Europe/Sarajevo' => 'stredoeurópsky čas (Sarajevo)',
-        'Europe/Saratov' => 'moskovský čas (Saratov)',
+        'Europe/Saratov' => 'Samarský čas (Saratov)',
         'Europe/Simferopol' => 'moskovský čas (Simferopol)',
         'Europe/Skopje' => 'stredoeurópsky čas (Skopje)',
         'Europe/Sofia' => 'východoeurópsky čas (Sofia)',
         'Europe/Stockholm' => 'stredoeurópsky čas (Štokholm)',
         'Europe/Tallinn' => 'východoeurópsky čas (Tallinn)',
         'Europe/Tirane' => 'stredoeurópsky čas (Tirana)',
-        'Europe/Ulyanovsk' => 'moskovský čas (Uľjanovsk)',
+        'Europe/Ulyanovsk' => 'Samarský čas (Uľjanovsk)',
         'Europe/Vaduz' => 'stredoeurópsky čas (Vaduz)',
         'Europe/Vatican' => 'stredoeurópsky čas (Vatikán)',
         'Europe/Vienna' => 'stredoeurópsky čas (Viedeň)',
         'Europe/Vilnius' => 'východoeurópsky čas (Vilnius)',
-        'Europe/Volgograd' => 'volgogradský čas',
+        'Europe/Volgograd' => 'moskovský čas (Volgograd)',
         'Europe/Warsaw' => 'stredoeurópsky čas (Varšava)',
         'Europe/Zagreb' => 'stredoeurópsky čas (Záhreb)',
         'Europe/Zurich' => 'stredoeurópsky čas (Zürich)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'chathamský čas',
         'Pacific/Easter' => 'čas Veľkonočného ostrova (Veľkonočný ostrov)',
         'Pacific/Efate' => 'vanuatský čas (Efate)',
-        'Pacific/Enderbury' => 'čas Fénixových ostrovov (Enderbury)',
+        'Pacific/Enderbury' => 'čas Fénixových ostrovov (Canton)',
+        'Pacific/Kanton' => 'čas Fénixových ostrovov (Canton)',
         'Pacific/Fakaofo' => 'tokelauský čas (Fakaofo)',
         'Pacific/Fiji' => 'fidžijský čas',
         'Pacific/Funafuti' => 'tuvalský čas (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'gambierský čas',
         'Pacific/Guadalcanal' => 'čas Šalamúnových ostrovov (Guadalcanal)',
         'Pacific/Guam' => 'chamorrský čas (Guam)',
-        'Pacific/Honolulu' => 'havajsko-aleutský čas (Honolulu)',
+        'Pacific/Honolulu' => 'havajsko-aleutský štandardný čas (Honolulu)',
         'Pacific/Kiritimati' => 'čas Rovníkových ostrovov (Kiritimati)',
         'Pacific/Kosrae' => 'kosrajský čas (Kosrae)',
         'Pacific/Kwajalein' => 'čas Marshallových ostrovov (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'palauský čas',
         'Pacific/Pitcairn' => 'čas Pitcairnových ostrovov',
         'Pacific/Ponape' => 'ponapský čas (Pohnpei)',
+        'Pacific/Pohnpei' => 'ponapský čas (Pohnpei)',
         'Pacific/Port_Moresby' => 'čas Papuy-Novej Guiney (Port Moresby)',
         'Pacific/Rarotonga' => 'čas Cookových ostrovov (Rarotonga)',
         'Pacific/Saipan' => 'chamorrský čas (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'čas Gilbertových ostrovov (Tarawa)',
         'Pacific/Tongatapu' => 'tonžský čas (Tongatapu)',
         'Pacific/Truk' => 'chuukský čas',
+        'Pacific/Chuuk' => 'chuukský čas',
         'Pacific/Wake' => 'čas ostrova Wake',
-        'Pacific/Wallis' => 'čas ostrovov Wallis a Futuna',
+        'Pacific/Wallis' => 'čas ostrovov Wallis a Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sl.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Vzhodnoafriški čas (Adis Abeba)',
         'Africa/Algiers' => 'Srednjeevropski čas (Alžir)',
         'Africa/Asmera' => 'Vzhodnoafriški čas (Asmara)',
+        'Africa/Asmara' => 'Vzhodnoafriški čas (Asmara)',
         'Africa/Bamako' => 'Greenwiški srednji čas (Bamako)',
         'Africa/Bangui' => 'Zahodnoafriški čas (Bangui)',
         'Africa/Banjul' => 'Greenwiški srednji čas (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Vzhodnoafriški čas (Dar es Salaam)',
         'Africa/Djibouti' => 'Vzhodnoafriški čas (Džibuti)',
         'Africa/Douala' => 'Zahodnoafriški čas (Douala)',
-        'Africa/El_Aaiun' => 'Zahodnoevropski čas (El Aaiun)',
+        'Africa/El_Aaiun' => 'Zahodnoevropski čas (El Aaiún)',
         'Africa/Freetown' => 'Greenwiški srednji čas (Freetown)',
         'Africa/Gaborone' => 'Centralnoafriški čas (Gaborone)',
         'Africa/Harare' => 'Centralnoafriški čas (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Zahodnoafriški čas (Kinšasa)',
         'Africa/Lagos' => 'Zahodnoafriški čas (Lagos)',
         'Africa/Libreville' => 'Zahodnoafriški čas (Libreville)',
-        'Africa/Lome' => 'Greenwiški srednji čas (Lome)',
+        'Africa/Lome' => 'Greenwiški srednji čas (Lomé)',
         'Africa/Luanda' => 'Zahodnoafriški čas (Luanda)',
         'Africa/Lubumbashi' => 'Centralnoafriški čas (Lubumbaši)',
         'Africa/Lusaka' => 'Centralnoafriški čas (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Vzhodnoafriški čas (Mogadišu)',
         'Africa/Monrovia' => 'Greenwiški srednji čas (Monrovia)',
         'Africa/Nairobi' => 'Vzhodnoafriški čas (Nairobi)',
-        'Africa/Ndjamena' => 'Zahodnoafriški čas (Ndjamena)',
+        'Africa/Ndjamena' => 'Zahodnoafriški čas (N’Djamena)',
         'Africa/Niamey' => 'Zahodnoafriški čas (Niamey)',
         'Africa/Nouakchott' => 'Greenwiški srednji čas (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwiški srednji čas (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Aljaški čas (Anchorage)',
         'America/Anguilla' => 'Atlantski čas (Angvila)',
         'America/Antigua' => 'Atlantski čas (Antigua)',
-        'America/Araguaina' => 'Brasilski čas (Araguaina)',
+        'America/Araguaina' => 'Brasilski čas (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentinski čas (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentinski čas (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentinski čas (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentinski čas (Salta)',
         'America/Argentina/San_Juan' => 'Argentinski čas (San Juan)',
         'America/Argentina/San_Luis' => 'Argentinski čas (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentinski čas (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentinski čas (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentinski čas (Ushuaia)',
         'America/Aruba' => 'Atlantski čas (Aruba)',
         'America/Asuncion' => 'Paragvajski čas (Asunción)',
         'America/Bahia' => 'Brasilski čas (Bahia)',
         'America/Bahia_Banderas' => 'Centralni čas (Bahia de Banderas)',
         'America/Barbados' => 'Atlantski čas (Barbados)',
-        'America/Belem' => 'Brasilski čas (Belem)',
+        'America/Belem' => 'Brasilski čas (Belém)',
         'America/Belize' => 'Centralni čas (Belize)',
         'America/Blanc-Sablon' => 'Atlantski čas (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazonski čas (Boa Vista)',
-        'America/Bogota' => 'Kolumbijski čas (Bogota)',
+        'America/Bogota' => 'Kolumbijski čas (Bogotá)',
         'America/Boise' => 'Gorski čas (Boise)',
         'America/Buenos_Aires' => 'Argentinski čas (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentinski čas (Buenos Aires)',
         'America/Cambridge_Bay' => 'Gorski čas (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazonski čas (Campo Grande)',
         'America/Cancun' => 'Vzhodni čas (Cancun)',
         'America/Caracas' => 'Venezuelski čas (Caracas)',
         'America/Catamarca' => 'Argentinski čas (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentinski čas (Catamarca)',
         'America/Cayenne' => 'Čas: Francoska Gvajana (Cayenne)',
         'America/Cayman' => 'Vzhodni čas (Kajman)',
         'America/Chicago' => 'Centralni čas (Chicago)',
         'America/Chihuahua' => 'Centralni čas (Chihuahua)',
         'America/Ciudad_Juarez' => 'Gorski čas (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Vzhodni čas (Atikokan)',
-        'America/Cordoba' => 'Argentinski čas (Cordoba)',
+        'America/Atikokan' => 'Vzhodni čas (Atikokan)',
+        'America/Cordoba' => 'Argentinski čas (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentinski čas (Córdoba)',
         'America/Costa_Rica' => 'Centralni čas (Kostarika)',
+        'America/Coyhaique' => 'Čilski čas (Coyhaique)',
         'America/Creston' => 'Gorski čas (Creston)',
-        'America/Cuiaba' => 'Amazonski čas (Cuiaba)',
+        'America/Cuiaba' => 'Amazonski čas (Cuiabá)',
         'America/Curacao' => 'Atlantski čas (Curaçao)',
         'America/Danmarkshavn' => 'Greenwiški srednji čas (Danmarkshavn)',
         'America/Dawson' => 'Jukonski čas (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Vzhodni čas (Detroit)',
         'America/Dominica' => 'Atlantski čas (Dominika)',
         'America/Edmonton' => 'Gorski čas (Edmonton)',
-        'America/Eirunepe' => 'Brazilija čas (Eirunepe)',
+        'America/Eirunepe' => 'Brazilija (lokalni čas) (Eirunepé)',
         'America/El_Salvador' => 'Centralni čas (Salvador)',
         'America/Fort_Nelson' => 'Gorski čas (Fort Nelson)',
         'America/Fortaleza' => 'Brasilski čas (Fortaleza)',
         'America/Glace_Bay' => 'Atlantski čas (Glace Bay)',
-        'America/Godthab' => 'Grenlandija čas (Nuuk)',
+        'America/Godthab' => 'Grenlandija (lokalni čas) (Nuuk)',
+        'America/Nuuk' => 'Grenlandija (lokalni čas) (Nuuk)',
         'America/Goose_Bay' => 'Atlantski čas (Goose Bay)',
         'America/Grand_Turk' => 'Vzhodni čas (Grand Turk)',
         'America/Grenada' => 'Atlantski čas (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Vzhodni čas (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Vzhodni čas (Winamac, Indiana)',
         'America/Indianapolis' => 'Vzhodni čas (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Vzhodni čas (Indianapolis)',
         'America/Inuvik' => 'Gorski čas (Inuvik)',
         'America/Iqaluit' => 'Vzhodni čas (Iqaluit)',
         'America/Jamaica' => 'Vzhodni čas (Jamajka)',
         'America/Jujuy' => 'Argentinski čas (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentinski čas (Jujuy)',
         'America/Juneau' => 'Aljaški čas (Juneau)',
         'America/Kentucky/Monticello' => 'Vzhodni čas (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantski čas (Kralendijk)',
@@ -136,15 +145,17 @@
         'America/Lima' => 'Perujski čas (Lima)',
         'America/Los_Angeles' => 'Pacifiški čas (Los Angeles)',
         'America/Louisville' => 'Vzhodni čas (Louisville)',
+        'America/Kentucky/Louisville' => 'Vzhodni čas (Louisville)',
         'America/Lower_Princes' => 'Atlantski čas (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasilski čas (Maceio)',
+        'America/Maceio' => 'Brasilski čas (Maceió)',
         'America/Managua' => 'Centralni čas (Managua)',
         'America/Manaus' => 'Amazonski čas (Manaus)',
         'America/Marigot' => 'Atlantski čas (Marigot)',
         'America/Martinique' => 'Atlantski čas (Martinik)',
         'America/Matamoros' => 'Centralni čas (Matamoros)',
-        'America/Mazatlan' => 'Mehiški pacifiški čas (Mazatlan)',
+        'America/Mazatlan' => 'Mehiški pacifiški čas (Mazatlán)',
         'America/Mendoza' => 'Argentinski čas (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentinski čas (Mendoza)',
         'America/Menominee' => 'Centralni čas (Menominee)',
         'America/Merida' => 'Centralni čas (Merida)',
         'America/Metlakatla' => 'Aljaški čas (Metlakatla)',
@@ -174,12 +185,12 @@
         'America/Recife' => 'Brasilski čas (Recife)',
         'America/Regina' => 'Centralni čas (Regina)',
         'America/Resolute' => 'Centralni čas (Resolute)',
-        'America/Rio_Branco' => 'Brazilija čas (Rio Branco)',
-        'America/Santarem' => 'Brasilski čas (Santarem)',
+        'America/Rio_Branco' => 'Brazilija (lokalni čas) (Rio Branco)',
+        'America/Santarem' => 'Brasilski čas (Santarém)',
         'America/Santiago' => 'Čilski čas (Santiago)',
         'America/Santo_Domingo' => 'Atlantski čas (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasilski čas (Sao Paulo)',
-        'America/Scoresbysund' => 'Grenlandija čas (Ittoqqortoormiit)',
+        'America/Sao_Paulo' => 'Brasilski čas (São Paulo)',
+        'America/Scoresbysund' => 'Grenlandija (lokalni čas) (Ittoqqortoormiit)',
         'America/Sitka' => 'Aljaški čas (Sitka)',
         'America/St_Barthelemy' => 'Atlantski čas (Sv. Bartolomej)',
         'America/St_Johns' => 'Novofundlandski čas (St. John’s)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Novozelandski čas (McMurdo)',
         'Antarctica/Palmer' => 'Čilski čas (Palmer)',
         'Antarctica/Rothera' => 'Rotherski čas (Rothera)',
-        'Antarctica/Syowa' => 'Čas: Syowa',
+        'Antarctica/Syowa' => 'Čas: Syowa (Showa)',
         'Antarctica/Troll' => 'Greenwiški srednji čas (Troll)',
         'Antarctica/Vostok' => 'Vostoški čas (Vostok)',
         'Arctic/Longyearbyen' => 'Srednjeevropski čas (Longyearbyen)',
         'Asia/Aden' => 'Arabski čas (Aden)',
         'Asia/Almaty' => 'Kazahstanski čas (Almati)',
         'Asia/Amman' => 'Vzhodnoevropski čas (Aman)',
-        'Asia/Anadyr' => 'Anadirski čas',
+        'Asia/Anadyr' => 'Petropavlovsk-Kamčatski čas (Anadir)',
         'Asia/Aqtau' => 'Kazahstanski čas (Aktau)',
         'Asia/Aqtobe' => 'Kazahstanski čas (Aktobe)',
         'Asia/Ashgabat' => 'Turkmenistanski čas (Ašhabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabski čas (Bahrajn)',
         'Asia/Baku' => 'Azerbajdžanski čas (Baku)',
         'Asia/Bangkok' => 'Indokitajski čas (Bangkok)',
-        'Asia/Barnaul' => 'Rusija čas (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarski čas (Barnaul)',
         'Asia/Beirut' => 'Vzhodnoevropski čas (Bejrut)',
         'Asia/Bishkek' => 'Kirgizistanski čas (Biškek)',
         'Asia/Brunei' => 'Brunejski čas',
         'Asia/Calcutta' => 'Indijski standardni čas (Kalkuta)',
+        'Asia/Kolkata' => 'Indijski standardni čas (Kalkuta)',
         'Asia/Chita' => 'Jakutski čas (Čita)',
         'Asia/Colombo' => 'Indijski standardni čas (Kolombo)',
         'Asia/Damascus' => 'Vzhodnoevropski čas (Damask)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Vzhodnoevropski čas (Gaza)',
         'Asia/Hebron' => 'Vzhodnoevropski čas (Hebron)',
         'Asia/Hong_Kong' => 'Hongkonški čas (Hongkong)',
-        'Asia/Hovd' => 'Hovdski čas',
+        'Asia/Hovd' => 'Hovdski čas (Khovd)',
         'Asia/Irkutsk' => 'Irkutski čas',
         'Asia/Jakarta' => 'Indonezijski zahodni čas (Džakarta)',
         'Asia/Jayapura' => 'Indonezijski vzhodni čas (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-Kamčatski čas (Kamčatka)',
         'Asia/Karachi' => 'Pakistanski čas (Karači)',
         'Asia/Katmandu' => 'Nepalski čas (Katmandu)',
+        'Asia/Kathmandu' => 'Nepalski čas (Katmandu)',
         'Asia/Khandyga' => 'Jakutski čas (Handiga)',
         'Asia/Krasnoyarsk' => 'Krasnojarski čas',
         'Asia/Kuala_Lumpur' => 'Malezijski čas (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Zalivski standardni čas (Muškat)',
         'Asia/Nicosia' => 'Vzhodnoevropski čas (Nikozija)',
         'Asia/Novokuznetsk' => 'Krasnojarski čas (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirski čas',
+        'Asia/Novosibirsk' => 'Krasnojarski čas (Novosibirsk)',
         'Asia/Omsk' => 'Omski čas',
         'Asia/Oral' => 'Kazahstanski čas (Uralsk)',
         'Asia/Phnom_Penh' => 'Indokitajski čas (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazahstanski čas (Kostanaj)',
         'Asia/Qyzylorda' => 'Kazahstanski čas (Kizlorda)',
         'Asia/Rangoon' => 'Mjanmarski čas (Rangun)',
+        'Asia/Yangon' => 'Mjanmarski čas (Rangun)',
         'Asia/Riyadh' => 'Arabski čas (Rijad)',
         'Asia/Saigon' => 'Indokitajski čas (Hošiminh)',
-        'Asia/Sakhalin' => 'Sahalinski čas',
+        'Asia/Ho_Chi_Minh' => 'Indokitajski čas (Hošiminh)',
+        'Asia/Sakhalin' => 'Magadanski čas (Sahalin)',
         'Asia/Samarkand' => 'Uzbekistanski čas (Samarkand)',
         'Asia/Seoul' => 'Korejski čas (Seul)',
         'Asia/Shanghai' => 'Kitajski čas (Šanghaj)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Iranski čas (Teheran)',
         'Asia/Thimphu' => 'Butanski čas (Timpu)',
         'Asia/Tokyo' => 'Japonski čas (Tokio)',
-        'Asia/Tomsk' => 'Rusija čas (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarski čas (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulanbatorski čas (Ulan Bator)',
-        'Asia/Urumqi' => 'Kitajska čas (Urumči)',
+        'Asia/Urumqi' => 'Kitajska (lokalni čas) (Urumči)',
         'Asia/Ust-Nera' => 'Vladivostoški čas (Ust-Nera)',
         'Asia/Vientiane' => 'Indokitajski čas (Vientiane)',
         'Asia/Vladivostok' => 'Vladivostoški čas (Vladivostok)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Zahodnoevropski čas (Kanarski otoki)',
         'Atlantic/Cape_Verde' => 'Kapverdski čas (Zelenortski otoki)',
         'Atlantic/Faeroe' => 'Zahodnoevropski čas (Ferski otoki)',
+        'Atlantic/Faroe' => 'Zahodnoevropski čas (Ferski otoki)',
         'Atlantic/Madeira' => 'Zahodnoevropski čas (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwiški srednji čas (Reykjavik)',
         'Atlantic/South_Georgia' => 'Južnogeorgijski čas (Južna Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'univerzalni koordinirani čas',
         'Europe/Amsterdam' => 'Srednjeevropski čas (Amsterdam)',
         'Europe/Andorra' => 'Srednjeevropski čas (Andora)',
-        'Europe/Astrakhan' => 'Moskovski čas (Astrahan)',
+        'Europe/Astrakhan' => 'Samarski čas (Astrahan)',
         'Europe/Athens' => 'Vzhodnoevropski čas (Atene)',
         'Europe/Belgrade' => 'Srednjeevropski čas (Beograd)',
         'Europe/Berlin' => 'Srednjeevropski čas (Berlin)',
@@ -324,7 +340,7 @@
         'Europe/Brussels' => 'Srednjeevropski čas (Bruselj)',
         'Europe/Bucharest' => 'Vzhodnoevropski čas (Bukarešta)',
         'Europe/Budapest' => 'Srednjeevropski čas (Budimpešta)',
-        'Europe/Busingen' => 'Srednjeevropski čas (Busingen)',
+        'Europe/Busingen' => 'Srednjeevropski čas (Büsingen)',
         'Europe/Chisinau' => 'Vzhodnoevropski čas (Kišinjev)',
         'Europe/Copenhagen' => 'Srednjeevropski čas (Köbenhavn)',
         'Europe/Dublin' => 'Greenwiški srednji čas (Dublin)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Greenwiški srednji čas (Guernsey)',
         'Europe/Helsinki' => 'Vzhodnoevropski čas (Helsinki)',
         'Europe/Isle_of_Man' => 'Greenwiški srednji čas (Otok Man)',
-        'Europe/Istanbul' => 'Turčija čas (Istanbul)',
+        'Europe/Istanbul' => 'Turški čas (Istanbul)',
         'Europe/Jersey' => 'Greenwiški srednji čas (Jersey)',
         'Europe/Kaliningrad' => 'Vzhodnoevropski čas (Kaliningrad)',
         'Europe/Kiev' => 'Vzhodnoevropski čas (Kijev)',
-        'Europe/Kirov' => 'Rusija čas (Kirov)',
+        'Europe/Kyiv' => 'Vzhodnoevropski čas (Kijev)',
+        'Europe/Kirov' => 'Moskovski čas (Kirov)',
         'Europe/Lisbon' => 'Zahodnoevropski čas (Lizbona)',
         'Europe/Ljubljana' => 'Srednjeevropski čas (Ljubljana)',
         'Europe/London' => 'Greenwiški srednji čas (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samarski čas (Samara)',
         'Europe/San_Marino' => 'Srednjeevropski čas (San Marino)',
         'Europe/Sarajevo' => 'Srednjeevropski čas (Sarajevo)',
-        'Europe/Saratov' => 'Moskovski čas (Saratov)',
+        'Europe/Saratov' => 'Samarski čas (Saratov)',
         'Europe/Simferopol' => 'Moskovski čas (Simferopol)',
         'Europe/Skopje' => 'Srednjeevropski čas (Skopje)',
         'Europe/Sofia' => 'Vzhodnoevropski čas (Sofija)',
         'Europe/Stockholm' => 'Srednjeevropski čas (Stockholm)',
         'Europe/Tallinn' => 'Vzhodnoevropski čas (Talin)',
         'Europe/Tirane' => 'Srednjeevropski čas (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskovski čas (Uljanovsk)',
+        'Europe/Ulyanovsk' => 'Samarski čas (Uljanovsk)',
         'Europe/Vaduz' => 'Srednjeevropski čas (Vaduz)',
         'Europe/Vatican' => 'Srednjeevropski čas (Vatikan)',
         'Europe/Vienna' => 'Srednjeevropski čas (Dunaj)',
         'Europe/Vilnius' => 'Vzhodnoevropski čas (Vilna)',
-        'Europe/Volgograd' => 'Volgograjski čas (Volgograd)',
+        'Europe/Volgograd' => 'Moskovski čas (Volgograd)',
         'Europe/Warsaw' => 'Srednjeevropski čas (Varšava)',
         'Europe/Zagreb' => 'Srednjeevropski čas (Zagreb)',
         'Europe/Zurich' => 'Srednjeevropski čas (Zürich)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Čas: Kokosovi otoki',
         'Indian/Comoro' => 'Vzhodnoafriški čas (Komori)',
         'Indian/Kerguelen' => 'Francoski južni in antarktični čas (Kerguelen)',
-        'Indian/Mahe' => 'Sejšelski čas (Mahe)',
+        'Indian/Mahe' => 'Sejšelski čas (Mahé)',
         'Indian/Maldives' => 'Maldivski čas (Maldivi)',
         'Indian/Mauritius' => 'Mauricijski čas (Mauritius)',
         'Indian/Mayotte' => 'Vzhodnoafriški čas (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Čatamski čas (Chatham)',
         'Pacific/Easter' => 'Čas: Velikonočni otok',
         'Pacific/Efate' => 'Vanuatujski čas (Efate)',
-        'Pacific/Enderbury' => 'Čas: Otočje Feniks (Enderbury)',
+        'Pacific/Enderbury' => 'Čas: Otočje Feniks (Kanton)',
+        'Pacific/Kanton' => 'Čas: Otočje Feniks (Kanton)',
         'Pacific/Fakaofo' => 'Tokelavski čas (Fakaofo)',
         'Pacific/Fiji' => 'Fidžijski čas',
         'Pacific/Funafuti' => 'Tuvalujski čas (Funafuti)',
-        'Pacific/Galapagos' => 'Galapaški čas (Galapagos)',
+        'Pacific/Galapagos' => 'Galapaški čas (Galápagos)',
         'Pacific/Gambier' => 'Gambierski čas',
         'Pacific/Guadalcanal' => 'Salomonovootoški čas (Guadalcanal)',
         'Pacific/Guam' => 'Čamorski standardni čas (Guam)',
-        'Pacific/Honolulu' => 'Havajski aleutski čas (Honolulu)',
+        'Pacific/Honolulu' => 'Havajski aleutski standardni čas (Honolulu)',
         'Pacific/Kiritimati' => 'Čas: Ekvatorski otoki (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrajški čas (Kosrae)',
         'Pacific/Kwajalein' => 'Čas: Marshallovi otoki (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Naurujski čas',
         'Pacific/Niue' => 'Niuejski čas',
         'Pacific/Norfolk' => 'Čas: Norfolški otoki (Norfolk)',
-        'Pacific/Noumea' => 'Novokaledonijski čas (Noumea)',
+        'Pacific/Noumea' => 'Novokaledonijski čas (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoanski čas (Pago Pago)',
         'Pacific/Palau' => 'Palavski čas (Palau)',
         'Pacific/Pitcairn' => 'Pitcairnski čas',
         'Pacific/Ponape' => 'Ponapski čas (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponapski čas (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papuanski čas (Port Moresby)',
         'Pacific/Rarotonga' => 'Cookovootoški čas (Rarotonga)',
         'Pacific/Saipan' => 'Čamorski standardni čas (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Čas: Gilbertovi otoki (Tarawa)',
         'Pacific/Tongatapu' => 'Tongovski čas (Tongatapu)',
         'Pacific/Truk' => 'Čas: Otok Chuuk',
+        'Pacific/Chuuk' => 'Čas: Otok Chuuk',
         'Pacific/Wake' => 'Čas: Otok Wake',
-        'Pacific/Wallis' => 'Čas: Wallis in Futuna',
+        'Pacific/Wallis' => 'Čas: Wallis in Futuna (Wallis & Futuna)',
     ],
     'Meta' => [
         'GmtFormat' => 'GMT %s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/so.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/so.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/so.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/so.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Waqtiga Bariga Afrika (Addis Ababa)',
         'Africa/Algiers' => 'Waqtiga Bartamaha Yurub (Aljeeris)',
         'Africa/Asmera' => 'Waqtiga Bariga Afrika (Asmara)',
+        'Africa/Asmara' => 'Waqtiga Bariga Afrika (Asmara)',
         'Africa/Bamako' => 'Wakhtiga Giriinwij (Bamaako)',
         'Africa/Bangui' => 'Waqtiga Galbeedka Afrika (Baagi)',
         'Africa/Banjul' => 'Wakhtiga Giriinwij (Banjul)',
@@ -71,26 +72,31 @@
         'America/Bahia' => 'Waqtiga Baraasiliya (Baahiya)',
         'America/Bahia_Banderas' => 'Waqtiga Bartamaha Waqooyiga Ameerika (Bahiya Banderas)',
         'America/Barbados' => 'Waqtiga Atlantika ee Waqooyiga Ameerika (Barbados)',
-        'America/Belem' => 'Waqtiga Baraasiliya (Belem)',
+        'America/Belem' => 'Waqtiga Baraasiliya (Belém)',
         'America/Belize' => 'Waqtiga Bartamaha Waqooyiga Ameerika (Beliise)',
         'America/Blanc-Sablon' => 'Waqtiga Atlantika ee Waqooyiga Ameerika (Balank-Sablon)',
         'America/Boa_Vista' => 'Waqtiga Amason (Bow Fista)',
-        'America/Bogota' => 'Waqtiga Kolambiya (Bogota)',
+        'America/Bogota' => 'Waqtiga Kolambiya (Bogotá)',
         'America/Boise' => 'Waqtiga Buuraleyda ee Waqooyiga Ameerika (Boyse)',
         'America/Buenos_Aires' => 'Waqtia Arjentiina (Buwenos Ayris)',
+        'America/Argentina/Buenos_Aires' => 'Waqtia Arjentiina (Buwenos Ayris)',
         'America/Cambridge_Bay' => 'Waqtiga Buuraleyda ee Waqooyiga Ameerika (Kambiriij Baay)',
         'America/Campo_Grande' => 'Waqtiga Amason (Kaambo Garandi)',
         'America/Cancun' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Kaankuun)',
         'America/Caracas' => 'Waqtiga Fenezuweela (Karakaas)',
         'America/Catamarca' => 'Waqtia Arjentiina (Katamaarka)',
+        'America/Argentina/Catamarca' => 'Waqtia Arjentiina (Katamaarka)',
         'America/Cayenne' => 'Waqtiga Ferenj Guyana (Kayeen)',
         'America/Cayman' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Keymaan)',
         'America/Chicago' => 'Waqtiga Bartamaha Waqooyiga Ameerika (Jikaago)',
         'America/Chihuahua' => 'Waqtiga Bartamaha Waqooyiga Ameerika (Jiwaahuu)',
         'America/Ciudad_Juarez' => 'Waqtiga Buuraleyda ee Waqooyiga Ameerika (Magaalada Juarez)',
         'America/Coral_Harbour' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Atikokaan)',
+        'America/Atikokan' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Atikokaan)',
         'America/Cordoba' => 'Waqtia Arjentiina (Kordooba)',
+        'America/Argentina/Cordoba' => 'Waqtia Arjentiina (Kordooba)',
         'America/Costa_Rica' => 'Waqtiga Bartamaha Waqooyiga Ameerika (Kosta Riika)',
+        'America/Coyhaique' => 'Waqtiga Jili (Coyhaique)',
         'America/Creston' => 'Waqtiga Buuraleyda ee Waqooyiga Ameerika (Karestoon)',
         'America/Cuiaba' => 'Waqtiga Amason (Kuyaaba)',
         'America/Curacao' => 'Waqtiga Atlantika ee Waqooyiga Ameerika (Kurakoow)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Waqtiga Baraasiliya (Footalesa)',
         'America/Glace_Bay' => 'Waqtiga Atlantika ee Waqooyiga Ameerika (Galeys Baay)',
         'America/Godthab' => 'Waqtiga Greenland (Nuuk)',
+        'America/Nuuk' => 'Waqtiga Greenland (Nuuk)',
         'America/Goose_Bay' => 'Waqtiga Atlantika ee Waqooyiga Ameerika (Guus Baay)',
         'America/Grand_Turk' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Garaan Turk)',
         'America/Grenada' => 'Waqtiga Atlantika ee Waqooyiga Ameerika (Garenaada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Finseenes, Indiyaana)',
         'America/Indiana/Winamac' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Winaamak, Indiyaana)',
         'America/Indianapolis' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Indiyaanabolis)',
+        'America/Indiana/Indianapolis' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Indiyaanabolis)',
         'America/Inuvik' => 'Waqtiga Buuraleyda ee Waqooyiga Ameerika (Inuufik)',
         'America/Iqaluit' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Iqaaluut)',
         'America/Jamaica' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Jamayka)',
         'America/Jujuy' => 'Waqtia Arjentiina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Waqtia Arjentiina (Jujuy)',
         'America/Juneau' => 'Waqtiga Alaska (Juniyuu)',
         'America/Kentucky/Monticello' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Montiseelo, Kentaki)',
         'America/Kralendijk' => 'Waqtiga Atlantika ee Waqooyiga Ameerika (Kiraalendik)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Waqtiga Beeru (Liima)',
         'America/Los_Angeles' => 'Waqtiga Basifika ee Waqooyiga Ameerika (Loos Anjalis)',
         'America/Louisville' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Luusfile)',
+        'America/Kentucky/Louisville' => 'Waqtiga Bariga ee Waqooyiga Ameerika (Luusfile)',
         'America/Lower_Princes' => 'Waqtiga Atlantika ee Waqooyiga Ameerika (Loowa Birinses Kuwaata)',
         'America/Maceio' => 'Waqtiga Baraasiliya (Maasiiyo)',
         'America/Managua' => 'Waqtiga Bartamaha Waqooyiga Ameerika (Manaaguwa)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Waqtiga Bartamaha Waqooyiga Ameerika (Matamoros)',
         'America/Mazatlan' => 'Waqtiga Baasifikada Meksiko (Mazaatlan)',
         'America/Mendoza' => 'Waqtia Arjentiina (Meendoosa)',
+        'America/Argentina/Mendoza' => 'Waqtia Arjentiina (Meendoosa)',
         'America/Menominee' => 'Waqtiga Bartamaha Waqooyiga Ameerika (Menoominee)',
         'America/Merida' => 'Waqtiga Bartamaha Waqooyiga Ameerika (Meriida)',
         'America/Metlakatla' => 'Waqtiga Alaska (Metlaakatla)',
@@ -198,7 +209,7 @@
         'America/Winnipeg' => 'Waqtiga Bartamaha Waqooyiga Ameerika (Winibeg)',
         'America/Yakutat' => 'Waqtiga Alaska (Yakutaat)',
         'Antarctica/Casey' => 'Waqtiga Galbeedka Astaraaliya (Kaysee)',
-        'Antarctica/Davis' => 'Waqtiga Dafis',
+        'Antarctica/Davis' => 'Wakhtiga Davis (Dafis)',
         'Antarctica/DumontDUrville' => 'Waqtiga Dumont - d’urfille (Dumont d’urfile)',
         'Antarctica/Macquarie' => 'Waqtiga Bariga Astaraaliya (Makquwariy)',
         'Antarctica/Mawson' => 'Waqtiga Mawson',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Waqtiga Carabta (Cadan)',
         'Asia/Almaty' => 'Wakhtiga Kazakhistan (Almati)',
         'Asia/Amman' => 'Waqtiga Bariga Yurub (Ammaan)',
-        'Asia/Anadyr' => 'Wakhtiga Anadyr (Anadiyr)',
+        'Asia/Anadyr' => 'Wakhtiga Petropavlovsk-Kamchatski (Anadiyr)',
         'Asia/Aqtau' => 'Wakhtiga Kazakhistan (Aktaw)',
         'Asia/Aqtobe' => 'Wakhtiga Kazakhistan (Aqtobe)',
         'Asia/Ashgabat' => 'Waqtiga Turkmenistaan (Ashgabat)',
@@ -220,24 +231,25 @@
         'Asia/Baghdad' => 'Waqtiga Carabta (Baqdaad)',
         'Asia/Bahrain' => 'Waqtiga Carabta (Baxreyn)',
         'Asia/Baku' => 'Waqtiga Asarbeyjan (Baku)',
-        'Asia/Bangkok' => 'Waqtiga Indoshiina (Bangkook)',
-        'Asia/Barnaul' => 'Waqtiga Ruush (Barnaauul)',
+        'Asia/Bangkok' => 'Wakhtiga Indochina (Bangkook)',
+        'Asia/Barnaul' => 'Waqtiga Karasnoyarsik (Barnaauul)',
         'Asia/Beirut' => 'Waqtiga Bariga Yurub (Beyruud)',
         'Asia/Bishkek' => 'Waqtiga Kiyrigistaan (Bishkek)',
-        'Asia/Brunei' => 'Waqtiga Buruney Daarusalaam',
+        'Asia/Brunei' => 'Wakhtiga Brunei (Buruney)',
         'Asia/Calcutta' => 'Waqtiga Caadiga Ah ee Hindiya (Kolkaata)',
+        'Asia/Kolkata' => 'Waqtiga Caadiga Ah ee Hindiya (Kolkaata)',
         'Asia/Chita' => 'Waqtiyada Yakut (Jiita)',
         'Asia/Colombo' => 'Waqtiga Caadiga Ah ee Hindiya (Kolombo)',
         'Asia/Damascus' => 'Waqtiga Bariga Yurub (Dimishiq)',
         'Asia/Dhaka' => 'Waqtiga Bangledeesh (Dhaaka)',
-        'Asia/Dili' => 'Waqtiga Iist Timoor (Dili)',
+        'Asia/Dili' => 'Wakhtiga Timor-Leste (Dili)',
         'Asia/Dubai' => 'Waqtiga Gacanka (Dubay)',
         'Asia/Dushanbe' => 'Waqtiga Tajikistan (Dushanbe)',
         'Asia/Famagusta' => 'Waqtiga Bariga Yurub (Famagusta)',
         'Asia/Gaza' => 'Waqtiga Bariga Yurub (Qasa)',
         'Asia/Hebron' => 'Waqtiga Bariga Yurub (Hebron)',
-        'Asia/Hong_Kong' => 'Waqtiga Hoong Koong',
-        'Asia/Hovd' => 'Waqtiga Hofud',
+        'Asia/Hong_Kong' => 'Waqtiga Hoong Koong (Hong Kong)',
+        'Asia/Hovd' => 'Waqtiga Hofud (Khovd)',
         'Asia/Irkutsk' => 'Waqtiga Irkutsik',
         'Asia/Jakarta' => 'Waqtiga Galbeedka Indoneeysiya (Jakaarta)',
         'Asia/Jayapura' => 'Waqtiga Indoneeysiya (Jayabura)',
@@ -246,47 +258,50 @@
         'Asia/Kamchatka' => 'Wakhtiga Petropavlovsk-Kamchatski (Kamkatka)',
         'Asia/Karachi' => 'Waqtiga Bakistaan (Karaaji)',
         'Asia/Katmandu' => 'Waqtiga Neebaal (Katmandu)',
+        'Asia/Kathmandu' => 'Waqtiga Neebaal (Katmandu)',
         'Asia/Khandyga' => 'Waqtiyada Yakut (Khandiyga)',
         'Asia/Krasnoyarsk' => 'Waqtiga Karasnoyarsik (Karasnoyarska)',
         'Asia/Kuala_Lumpur' => 'Waqtiga Maleyshiya (Kuala Lambuur)',
         'Asia/Kuching' => 'Waqtiga Maleyshiya (Kujing)',
         'Asia/Kuwait' => 'Waqtiga Carabta (Kuweyt)',
-        'Asia/Macau' => 'Waqtiga Shiinaha (Makow)',
+        'Asia/Macau' => 'Waqtiga Shiinaha (Macao)',
         'Asia/Magadan' => 'Watiga Magedan',
         'Asia/Makassar' => 'Waqtiga Bartamaha Indoneeysiya (Makasar)',
         'Asia/Manila' => 'Waqtiga Filibiin (Maniila)',
         'Asia/Muscat' => 'Waqtiga Gacanka (Muskat)',
         'Asia/Nicosia' => 'Waqtiga Bariga Yurub (Nikosiya)',
         'Asia/Novokuznetsk' => 'Waqtiga Karasnoyarsik (Nofokusnetsik)',
-        'Asia/Novosibirsk' => 'Waqtiga Nofosibirsik',
+        'Asia/Novosibirsk' => 'Waqtiga Karasnoyarsik (Nofosibirsik)',
         'Asia/Omsk' => 'Waqtiga Omsk',
         'Asia/Oral' => 'Wakhtiga Kazakhistan (Oral)',
-        'Asia/Phnom_Penh' => 'Waqtiga Indoshiina (Benom Ben)',
+        'Asia/Phnom_Penh' => 'Wakhtiga Indochina (Benom Ben)',
         'Asia/Pontianak' => 'Waqtiga Galbeedka Indoneeysiya (Botiyaanak)',
-        'Asia/Pyongyang' => 'Waqtiga Kuuriya (Boyongyang)',
+        'Asia/Pyongyang' => 'Waqtiga Kuuriya (Pyongyang)',
         'Asia/Qatar' => 'Waqtiga Carabta (Qaddar)',
         'Asia/Qostanay' => 'Wakhtiga Kazakhistan (Kostanay)',
         'Asia/Qyzylorda' => 'Wakhtiga Kazakhistan (Qiyslorda)',
         'Asia/Rangoon' => 'Waqtiga Mayanmaar (Yangon)',
+        'Asia/Yangon' => 'Waqtiga Mayanmaar (Yangon)',
         'Asia/Riyadh' => 'Waqtiga Carabta (Riyaad)',
-        'Asia/Saigon' => 'Waqtiga Indoshiina (Hoo Ji Mih Siti)',
-        'Asia/Sakhalin' => 'Waqtiga Sakhalin',
+        'Asia/Saigon' => 'Wakhtiga Indochina (Hoo Ji Mih Siti)',
+        'Asia/Ho_Chi_Minh' => 'Wakhtiga Indochina (Hoo Ji Mih Siti)',
+        'Asia/Sakhalin' => 'Watiga Magedan (Sakhalin)',
         'Asia/Samarkand' => 'Waqtiga Usbekistan (Samarkaan)',
-        'Asia/Seoul' => 'Waqtiga Kuuriya (Soul)',
-        'Asia/Shanghai' => 'Waqtiga Shiinaha (Shanghaay)',
+        'Asia/Seoul' => 'Waqtiga Kuuriya (Seoul)',
+        'Asia/Shanghai' => 'Waqtiga Shiinaha (Shanghai)',
         'Asia/Singapore' => 'Waqtiga Singabuur',
         'Asia/Srednekolymsk' => 'Watiga Magedan (Sarednokoleymisk)',
-        'Asia/Taipei' => 'Waqtiga Teybey',
+        'Asia/Taipei' => 'Waqtiga Taiwan (Taipei)',
         'Asia/Tashkent' => 'Waqtiga Usbekistan (Toshkeent)',
         'Asia/Tbilisi' => 'Waqtiga Joorjiya (Tibilisi)',
         'Asia/Tehran' => 'Waqtiga Iiraan (Tehraan)',
         'Asia/Thimphu' => 'Waqtiga Butaan (Timbu)',
         'Asia/Tokyo' => 'Waqtiga Jabaan (Tokyo)',
-        'Asia/Tomsk' => 'Waqtiga Ruush (Tomsk)',
+        'Asia/Tomsk' => 'Waqtiga Karasnoyarsik (Tomsk)',
         'Asia/Ulaanbaatar' => 'Waqtiga Ulaanbaataar (Ulaanbaatar)',
-        'Asia/Urumqi' => 'Waqtiga Shiinaha (Urumqi)',
+        'Asia/Urumqi' => 'Waqtiga Shiinaha (Ürümqi)',
         'Asia/Ust-Nera' => 'Waqtiga Faladifostok (Ust-Nera)',
-        'Asia/Vientiane' => 'Waqtiga Indoshiina (Fiyaantiyaan)',
+        'Asia/Vientiane' => 'Wakhtiga Indochina (Fiyaantiyaan)',
         'Asia/Vladivostok' => 'Waqtiga Faladifostok',
         'Asia/Yakutsk' => 'Waqtiyada Yakut',
         'Asia/Yekaterinburg' => 'Waqtiga Yekaterinbaag',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Waqtiga Galbeedka Yurub (Kanari)',
         'Atlantic/Cape_Verde' => 'Waqtiga Keyb Faarde',
         'Atlantic/Faeroe' => 'Waqtiga Galbeedka Yurub (Farow)',
+        'Atlantic/Faroe' => 'Waqtiga Galbeedka Yurub (Farow)',
         'Atlantic/Madeira' => 'Waqtiga Galbeedka Yurub (Madira)',
         'Atlantic/Reykjavik' => 'Wakhtiga Giriinwij (Reykjafik)',
         'Atlantic/South_Georgia' => 'Waqtiga Sowt Joorjiya',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Waqtiga Isku-xiran ee Caalamka',
         'Europe/Amsterdam' => 'Waqtiga Bartamaha Yurub (Amsterdaam)',
         'Europe/Andorra' => 'Waqtiga Bartamaha Yurub (Andoora)',
-        'Europe/Astrakhan' => 'Waqtiga Moskow (Astarakhaan)',
+        'Europe/Astrakhan' => 'Wakhtiga Samara (Astarakhaan)',
         'Europe/Athens' => 'Waqtiga Bariga Yurub (Atens)',
         'Europe/Belgrade' => 'Waqtiga Bartamaha Yurub (Belgaraydh)',
         'Europe/Berlin' => 'Waqtiga Bartamaha Yurub (Barliin)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Wakhtiga Giriinwij (Jaarsey)',
         'Europe/Kaliningrad' => 'Waqtiga Bariga Yurub (Kaliningrad)',
         'Europe/Kiev' => 'Waqtiga Bariga Yurub (Kiyeef)',
-        'Europe/Kirov' => 'Waqtiga Ruush (Kiroof)',
+        'Europe/Kyiv' => 'Waqtiga Bariga Yurub (Kiyeef)',
+        'Europe/Kirov' => 'Waqtiga Moskow (Kiroof)',
         'Europe/Lisbon' => 'Waqtiga Galbeedka Yurub (Lisbon)',
         'Europe/Ljubljana' => 'Waqtiga Bartamaha Yurub (Lubalaana)',
         'Europe/London' => 'Wakhtiga Giriinwij (Landan)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Wakhtiga Samara',
         'Europe/San_Marino' => 'Waqtiga Bartamaha Yurub (San Mariino)',
         'Europe/Sarajevo' => 'Waqtiga Bartamaha Yurub (Sarayeefo)',
-        'Europe/Saratov' => 'Waqtiga Moskow (Saratoof)',
+        'Europe/Saratov' => 'Wakhtiga Samara (Saratoof)',
         'Europe/Simferopol' => 'Waqtiga Moskow (Simferobol)',
         'Europe/Skopje' => 'Waqtiga Bartamaha Yurub (Iskoobje)',
         'Europe/Sofia' => 'Waqtiga Bariga Yurub (Sofiya)',
         'Europe/Stockholm' => 'Waqtiga Bartamaha Yurub (Istokhoom)',
         'Europe/Tallinn' => 'Waqtiga Bariga Yurub (Taalin)',
         'Europe/Tirane' => 'Waqtiga Bartamaha Yurub (Tiraane)',
-        'Europe/Ulyanovsk' => 'Waqtiga Moskow (Ulyanofisk)',
+        'Europe/Ulyanovsk' => 'Wakhtiga Samara (Ulyanofisk)',
         'Europe/Vaduz' => 'Waqtiga Bartamaha Yurub (Faduus)',
         'Europe/Vatican' => 'Waqtiga Bartamaha Yurub (Fatikaan)',
         'Europe/Vienna' => 'Waqtiga Bartamaha Yurub (Fiyeena)',
         'Europe/Vilnius' => 'Waqtiga Bariga Yurub (Finiyuus)',
-        'Europe/Volgograd' => 'Waqtiga Folgograd',
+        'Europe/Volgograd' => 'Waqtiga Moskow (Folgograd)',
         'Europe/Warsaw' => 'Waqtiga Bartamaha Yurub (Warsaw)',
         'Europe/Zagreb' => 'Waqtiga Bartamaha Yurub (Saqrib)',
         'Europe/Zurich' => 'Waqtiga Bartamaha Yurub (Suurikh)',
@@ -378,47 +395,50 @@
         'Indian/Cocos' => 'Waqtiga Kokos Aylaan',
         'Indian/Comoro' => 'Waqtiga Bariga Afrika (Komoro)',
         'Indian/Kerguelen' => 'Waqtiga Koonfurta Faransiiska & Antaarktik (Kergalen)',
-        'Indian/Mahe' => 'Waqtiga Siishalis (Mahe)',
+        'Indian/Mahe' => 'Waqtiga Siishalis (Mahé)',
         'Indian/Maldives' => 'Waqtiga Maldifis',
         'Indian/Mauritius' => 'Waqtiga Morishiyaas',
         'Indian/Mayotte' => 'Waqtiga Bariga Afrika (Mayoote)',
         'Indian/Reunion' => 'Waqtiga Riyuuniyon',
-        'Pacific/Apia' => 'Waqtiga Abiya',
+        'Pacific/Apia' => 'Wakhtiga Samoa (Abiya)',
         'Pacific/Auckland' => 'Waqtiga Niyuu Si’laan (Owklaan)',
         'Pacific/Bougainville' => 'Waqtiga Babuw Niyuu Giniya (Boogaynfil)',
         'Pacific/Chatham' => 'Waqtiga Jaatam (Jatam)',
         'Pacific/Easter' => 'Waqtiga Iistar Aylaan',
         'Pacific/Efate' => 'Waqtiga Fanuutu (Efate)',
-        'Pacific/Enderbury' => 'Waqtiga Foonikis Aylaanis (Enderburi)',
+        'Pacific/Enderbury' => 'Waqtiga Foonikis Aylaanis (Kantoon)',
+        'Pacific/Kanton' => 'Waqtiga Foonikis Aylaanis (Kantoon)',
         'Pacific/Fakaofo' => 'Waqtiga Tokeluu (fakofo)',
         'Pacific/Fiji' => 'Waqtiga Fiji',
         'Pacific/Funafuti' => 'Waqtiga Tufalu (Funafuti)',
         'Pacific/Galapagos' => 'Waqtiga Galabagos',
         'Pacific/Gambier' => 'Waqtiga Gambiyar (Gambiyr)',
         'Pacific/Guadalcanal' => 'Waqtiga Solomon Aylaanis (Cuadalkanal)',
-        'Pacific/Guam' => 'Waqtiga Jamoro (Guwam)',
-        'Pacific/Honolulu' => 'Waqtiga Hawaay-Alutiyaan (Honolulu)',
+        'Pacific/Guam' => 'Wakhtiga Caadiga ah ee Chamorro (Guwam)',
+        'Pacific/Honolulu' => 'Waqtiga Caadiga Ah ee Hawaay-Alutiyaan (Honolulu)',
         'Pacific/Kiritimati' => 'Waqtiga Leyn Aylaan (Kiritimaati)',
         'Pacific/Kosrae' => 'Waqtiga Kosriy (Kosrii)',
         'Pacific/Kwajalein' => 'Waqtiga Maarshaal Aylaanis (Kuwajaleyn)',
         'Pacific/Majuro' => 'Waqtiga Maarshaal Aylaanis (Majro)',
         'Pacific/Marquesas' => 'Waqtiga Marquwesas',
-        'Pacific/Midway' => 'Waqtiga Samoa (Midway)',
+        'Pacific/Midway' => 'Wakhtiga American Samoa (Midway)',
         'Pacific/Nauru' => 'Waqtiga Nawroo',
         'Pacific/Niue' => 'Waqtiga Niyuu',
         'Pacific/Norfolk' => 'Waqtiga Norfolk Island (Noorfek)',
         'Pacific/Noumea' => 'Waqtiga Niyuu Kaledonya (Noomiya)',
-        'Pacific/Pago_Pago' => 'Waqtiga Samoa (Bago Bago)',
+        'Pacific/Pago_Pago' => 'Wakhtiga American Samoa (Bago Bago)',
         'Pacific/Palau' => 'Waqtiga Balaw',
         'Pacific/Pitcairn' => 'Waqtiga Bitkeen (Bitkayrn)',
-        'Pacific/Ponape' => 'Waqtiga Bonabe (Bonbey)',
+        'Pacific/Ponape' => 'Wakhtiga Pohnpei (Bonbey)',
+        'Pacific/Pohnpei' => 'Wakhtiga Pohnpei (Bonbey)',
         'Pacific/Port_Moresby' => 'Waqtiga Babuw Niyuu Giniya (Boort Moresbi)',
-        'Pacific/Rarotonga' => 'Waqtiga Kuuk Aylaanis (Rarotonga)',
-        'Pacific/Saipan' => 'Waqtiga Jamoro (Seyban)',
+        'Pacific/Rarotonga' => 'Wakhtiga Jasiiradaha Cook (Rarotonga)',
+        'Pacific/Saipan' => 'Wakhtiga Caadiga ah ee Chamorro (Seyban)',
         'Pacific/Tahiti' => 'Waqtiga Tahiti',
         'Pacific/Tarawa' => 'Waqtiga Jilbeert Aylaan (Tarawa)',
         'Pacific/Tongatapu' => 'Waqtiga Tonga (Tongatabu)',
         'Pacific/Truk' => 'Waqtiga Juuk',
+        'Pacific/Chuuk' => 'Waqtiga Juuk',
         'Pacific/Wake' => 'Waqtiga Wayk Iylaanis (Wake)',
         'Pacific/Wallis' => 'Waqtiga Walis & Futuna',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sq.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sq.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sq.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sq.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Ora e Afrikës Lindore (Adis-Ababë)',
         'Africa/Algiers' => 'Ora e Evropës Qendrore (Algjer)',
         'Africa/Asmera' => 'Ora e Afrikës Lindore (Asmarë)',
+        'Africa/Asmara' => 'Ora e Afrikës Lindore (Asmarë)',
         'Africa/Bamako' => 'Ora e Grinuiçit (Bamako)',
         'Africa/Bangui' => 'Ora e Afrikës Perëndimore (Bangui)',
         'Africa/Banjul' => 'Ora e Grinuiçit (Banxhul)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Ora e Afrikës Perëndimore (Kinshasa)',
         'Africa/Lagos' => 'Ora e Afrikës Perëndimore (Lagos)',
         'Africa/Libreville' => 'Ora e Afrikës Perëndimore (Librevilë)',
-        'Africa/Lome' => 'Ora e Grinuiçit (Lome)',
+        'Africa/Lome' => 'Ora e Grinuiçit (Lomé)',
         'Africa/Luanda' => 'Ora e Afrikës Perëndimore (Luanda)',
         'Africa/Lubumbashi' => 'Ora e Afrikës Qendrore (Lubumbashi)',
         'Africa/Lusaka' => 'Ora e Afrikës Qendrore (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Ora e Afrikës Lindore (Mogadishu)',
         'Africa/Monrovia' => 'Ora e Grinuiçit (Monrovia)',
         'Africa/Nairobi' => 'Ora e Afrikës Lindore (Nairobi)',
-        'Africa/Ndjamena' => 'Ora e Afrikës Perëndimore (Ndjamena)',
+        'Africa/Ndjamena' => 'Ora e Afrikës Perëndimore (N’Djamena)',
         'Africa/Niamey' => 'Ora e Afrikës Perëndimore (Niamej)',
         'Africa/Nouakchott' => 'Ora e Grinuiçit (Nouakot)',
         'Africa/Ouagadougou' => 'Ora e Grinuiçit (Uagëdugu)',
@@ -71,26 +72,31 @@
         'America/Bahia' => 'Ora e Brazilisë (Bahia)',
         'America/Bahia_Banderas' => 'Ora e SHBA-së Qendrore (Bahia-Banderas)',
         'America/Barbados' => 'Ora e Atlantikut (Barbados)',
-        'America/Belem' => 'Ora e Brazilisë (Belem)',
+        'America/Belem' => 'Ora e Brazilisë (Belém)',
         'America/Belize' => 'Ora e SHBA-së Qendrore (Belizë)',
         'America/Blanc-Sablon' => 'Ora e Atlantikut (Blank-Sablon)',
         'America/Boa_Vista' => 'Ora e Amazonës (Boa-Vista)',
         'America/Bogota' => 'Ora e Kolumbisë (Bogotë)',
         'America/Boise' => 'Ora e Territoreve Amerikane të Brezit Malor (Boizë)',
         'America/Buenos_Aires' => 'Ora e Argjentinës (Buenos-Ajres)',
+        'America/Argentina/Buenos_Aires' => 'Ora e Argjentinës (Buenos-Ajres)',
         'America/Cambridge_Bay' => 'Ora e Territoreve Amerikane të Brezit Malor (Gjiri i Kembrixhit)',
         'America/Campo_Grande' => 'Ora e Amazonës (Kampo-Grande)',
         'America/Cancun' => 'Ora e SHBA-së Lindore (Kankun)',
         'America/Caracas' => 'Ora e Venezuelës (Karakas)',
         'America/Catamarca' => 'Ora e Argjentinës (Katamarka)',
+        'America/Argentina/Catamarca' => 'Ora e Argjentinës (Katamarka)',
         'America/Cayenne' => 'Ora e Guajanës Franceze (Kajenë)',
         'America/Cayman' => 'Ora e SHBA-së Lindore (Kajman)',
         'America/Chicago' => 'Ora e SHBA-së Qendrore (Çikago)',
         'America/Chihuahua' => 'Ora e SHBA-së Qendrore (Çihahua)',
         'America/Ciudad_Juarez' => 'Ora e Territoreve Amerikane të Brezit Malor (Siudad-Huarez)',
         'America/Coral_Harbour' => 'Ora e SHBA-së Lindore (Atikokan)',
+        'America/Atikokan' => 'Ora e SHBA-së Lindore (Atikokan)',
         'America/Cordoba' => 'Ora e Argjentinës (Kordoba)',
+        'America/Argentina/Cordoba' => 'Ora e Argjentinës (Kordoba)',
         'America/Costa_Rica' => 'Ora e SHBA-së Qendrore (Kosta-Rikë)',
+        'America/Coyhaique' => 'Ora e Kilit (Koihaiku)',
         'America/Creston' => 'Ora e Territoreve Amerikane të Brezit Malor (Kreston)',
         'America/Cuiaba' => 'Ora e Amazonës (Kujaba)',
         'America/Curacao' => 'Ora e Atlantikut (Kurasao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Ora e Brazilisë (Fortaleza)',
         'America/Glace_Bay' => 'Ora e Atlantikut (Gjiri i Ngrirë)',
         'America/Godthab' => 'Ora: Grënlandë (Njuk)',
+        'America/Nuuk' => 'Ora: Grënlandë (Njuk)',
         'America/Goose_Bay' => 'Ora e Atlantikut (Gjiri i Patës)',
         'America/Grand_Turk' => 'Ora e SHBA-së Lindore (Turku i Madh)',
         'America/Grenada' => 'Ora e Atlantikut (Granadë)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Ora e SHBA-së Lindore (Vincenes, Indiana)',
         'America/Indiana/Winamac' => 'Ora e SHBA-së Lindore (Uinamak, Indiana)',
         'America/Indianapolis' => 'Ora e SHBA-së Lindore (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Ora e SHBA-së Lindore (Indianapolis)',
         'America/Inuvik' => 'Ora e Territoreve Amerikane të Brezit Malor (Inuvik)',
         'America/Iqaluit' => 'Ora e SHBA-së Lindore (Ikaluit)',
         'America/Jamaica' => 'Ora e SHBA-së Lindore (Xhamajkë)',
         'America/Jujuy' => 'Ora e Argjentinës (Huhui)',
+        'America/Argentina/Jujuy' => 'Ora e Argjentinës (Huhui)',
         'America/Juneau' => 'Ora e Alaskës (Xhunou)',
         'America/Kentucky/Monticello' => 'Ora e SHBA-së Lindore (Montiçelo, Kentaki)',
         'America/Kralendijk' => 'Ora e Atlantikut (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Ora e Perusë (Limë)',
         'America/Los_Angeles' => 'Ora e Territoreve Amerikane të Bregut të Paqësorit (Los Anxhelos)',
         'America/Louisville' => 'Ora e SHBA-së Lindore (Luizvilë)',
+        'America/Kentucky/Louisville' => 'Ora e SHBA-së Lindore (Luizvilë)',
         'America/Lower_Princes' => 'Ora e Atlantikut (Louer-Prinsis-Kuortër)',
         'America/Maceio' => 'Ora e Brazilisë (Makejo)',
         'America/Managua' => 'Ora e SHBA-së Qendrore (Managua)',
@@ -143,8 +153,9 @@
         'America/Marigot' => 'Ora e Atlantikut (Marigot)',
         'America/Martinique' => 'Ora e Atlantikut (Martinikë)',
         'America/Matamoros' => 'Ora e SHBA-së Qendrore (Matamoros)',
-        'America/Mazatlan' => 'Ora e Territoreve Meksikane të Bregut të Paqësorit (Mazatlan)',
+        'America/Mazatlan' => 'Ora e Territoreve Meksikane të Bregut të Paqësorit (Mazatlán)',
         'America/Mendoza' => 'Ora e Argjentinës (Mendoza)',
+        'America/Argentina/Mendoza' => 'Ora e Argjentinës (Mendoza)',
         'America/Menominee' => 'Ora e SHBA-së Qendrore (Menomini)',
         'America/Merida' => 'Ora e SHBA-së Qendrore (Merida)',
         'America/Metlakatla' => 'Ora e Alaskës (Metlakatla)',
@@ -175,7 +186,7 @@
         'America/Regina' => 'Ora e SHBA-së Qendrore (Rexhina)',
         'America/Resolute' => 'Ora e SHBA-së Qendrore (Resolute)',
         'America/Rio_Branco' => 'Ora e Ejkrit [Ako] (Rio-Branko)',
-        'America/Santarem' => 'Ora e Brazilisë (Santarem)',
+        'America/Santarem' => 'Ora e Brazilisë (Santarém)',
         'America/Santiago' => 'Ora e Kilit (Santiago)',
         'America/Santo_Domingo' => 'Ora e Atlantikut (Santo-Domingo)',
         'America/Sao_Paulo' => 'Ora e Brazilisë (Sao-Paulo)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Ora arabe (Aden)',
         'Asia/Almaty' => 'Ora e Kazakistanit (Almati)',
         'Asia/Amman' => 'Ora e Evropës Lindore (Aman)',
-        'Asia/Anadyr' => 'Ora e Anadirit',
+        'Asia/Anadyr' => 'Ora e Petropavllovsk-Kamçatkës (Anadir)',
         'Asia/Aqtau' => 'Ora e Kazakistanit (Aktau)',
         'Asia/Aqtobe' => 'Ora e Kazakistanit (Aktobe)',
         'Asia/Ashgabat' => 'Ora e Turkmenistanit (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Ora arabe (Bahrejn)',
         'Asia/Baku' => 'Ora e Azerbajxhanit (Baku)',
         'Asia/Bangkok' => 'Ora e Indokinës (Bangkok)',
-        'Asia/Barnaul' => 'Ora: Rusi (Barnaul)',
+        'Asia/Barnaul' => 'Ora e Krasnojarskut (Barnaul)',
         'Asia/Beirut' => 'Ora e Evropës Lindore (Bejrut)',
         'Asia/Bishkek' => 'Ora e Kirgizisë (Bishkek)',
         'Asia/Brunei' => 'Ora e Brunei-Durasalamit',
         'Asia/Calcutta' => 'Ora standarde e Indisë (Kalkutë)',
+        'Asia/Kolkata' => 'Ora standarde e Indisë (Kalkutë)',
         'Asia/Chita' => 'Ora e Jakutskut (Çita)',
         'Asia/Colombo' => 'Ora standarde e Indisë (Kolombo)',
         'Asia/Damascus' => 'Ora e Evropës Lindore (Damask)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Ora e Evropës Lindore (Gaza)',
         'Asia/Hebron' => 'Ora e Evropës Lindore (Hebron)',
         'Asia/Hong_Kong' => 'Ora e Hong-Kongut',
-        'Asia/Hovd' => 'Ora e Hovdit',
+        'Asia/Hovd' => 'Ora e Hovdit (Khovd)',
         'Asia/Irkutsk' => 'Ora e Irkutskut',
         'Asia/Jakarta' => 'Ora e Indonezisë Perëndimore (Xhakartë)',
         'Asia/Jayapura' => 'Ora e Indonezisë Lindore (Xhajapurë)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Ora e Petropavllovsk-Kamçatkës',
         'Asia/Karachi' => 'Ora e Pakistanit (Karaçi)',
         'Asia/Katmandu' => 'Ora e Nepalit (Katmandu)',
+        'Asia/Kathmandu' => 'Ora e Nepalit (Katmandu)',
         'Asia/Khandyga' => 'Ora e Jakutskut (Kandigë)',
         'Asia/Krasnoyarsk' => 'Ora e Krasnojarskut',
         'Asia/Kuala_Lumpur' => 'Ora e Malajzisë (Kuala-Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Ora e Gjirit (Muskat)',
         'Asia/Nicosia' => 'Ora e Evropës Lindore (Nikozia)',
         'Asia/Novokuznetsk' => 'Ora e Krasnojarskut (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Ora e Novosibirskut',
+        'Asia/Novosibirsk' => 'Ora e Krasnojarskut (Novosibirsk)',
         'Asia/Omsk' => 'Ora e Omskut',
         'Asia/Oral' => 'Ora e Kazakistanit (Oral)',
         'Asia/Phnom_Penh' => 'Ora e Indokinës (Pnom-Pen)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Ora e Kazakistanit (Kostanaj)',
         'Asia/Qyzylorda' => 'Ora e Kazakistanit (Kizilorda)',
         'Asia/Rangoon' => 'Ora e Mianmarit (Rangun)',
+        'Asia/Yangon' => 'Ora e Mianmarit (Rangun)',
         'Asia/Riyadh' => 'Ora arabe (Riad)',
         'Asia/Saigon' => 'Ora e Indokinës (Ho-Çi-Min)',
-        'Asia/Sakhalin' => 'Ora e Sakalinit',
+        'Asia/Ho_Chi_Minh' => 'Ora e Indokinës (Ho-Çi-Min)',
+        'Asia/Sakhalin' => 'Ora e Magadanit (Sakalin)',
         'Asia/Samarkand' => 'Ora e Uzbekistanit (Samarkand)',
         'Asia/Seoul' => 'Ora koreane (Seul)',
         'Asia/Shanghai' => 'Ora e Kinës (Shangai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Ora e Iranit (Teheran)',
         'Asia/Thimphu' => 'Ora e Butanit (Thimpu)',
         'Asia/Tokyo' => 'Ora e Japonisë (Tokio)',
-        'Asia/Tomsk' => 'Ora: Rusi (Tomsk)',
+        'Asia/Tomsk' => 'Ora e Krasnojarskut (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ora e Ulan-Batorit (Ulanbatar)',
-        'Asia/Urumqi' => 'Ora: Kinë (Urumqi)',
+        'Asia/Urumqi' => 'Ora: Kinë (Ürümqi)',
         'Asia/Ust-Nera' => 'Ora e Vladivostokut (Ust-Nera)',
         'Asia/Vientiane' => 'Ora e Indokinës (Vjentianë)',
         'Asia/Vladivostok' => 'Ora e Vladivostokut',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Ora e Evropës Perëndimore (Kanari)',
         'Atlantic/Cape_Verde' => 'Ora e Kepit të Gjelbër (Kepi i Gjelbër)',
         'Atlantic/Faeroe' => 'Ora e Evropës Perëndimore (Faroe)',
+        'Atlantic/Faroe' => 'Ora e Evropës Perëndimore (Faroe)',
         'Atlantic/Madeira' => 'Ora e Evropës Perëndimore (Madeira)',
         'Atlantic/Reykjavik' => 'Ora e Grinuiçit (Reikjavik)',
         'Atlantic/South_Georgia' => 'Ora e Xhorxhas të Jugut (Xhorxha e Jugut)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Ora universale e koordinuar',
         'Europe/Amsterdam' => 'Ora e Evropës Qendrore (Amsterdam)',
         'Europe/Andorra' => 'Ora e Evropës Qendrore (Andorrë)',
-        'Europe/Astrakhan' => 'Ora e Moskës (Astrakan)',
+        'Europe/Astrakhan' => 'Ora e Samarës (Astrakan)',
         'Europe/Athens' => 'Ora e Evropës Lindore (Athinë)',
         'Europe/Belgrade' => 'Ora e Evropës Qendrore (Beograd)',
         'Europe/Berlin' => 'Ora e Evropës Qendrore (Berlin)',
@@ -324,7 +340,7 @@
         'Europe/Brussels' => 'Ora e Evropës Qendrore (Bruksel)',
         'Europe/Bucharest' => 'Ora e Evropës Lindore (Bukuresht)',
         'Europe/Budapest' => 'Ora e Evropës Qendrore (Budapest)',
-        'Europe/Busingen' => 'Ora e Evropës Qendrore (Busingen)',
+        'Europe/Busingen' => 'Ora e Evropës Qendrore (Büsingen)',
         'Europe/Chisinau' => 'Ora e Evropës Lindore (Kishineu)',
         'Europe/Copenhagen' => 'Ora e Evropës Qendrore (Kopenhagen)',
         'Europe/Dublin' => 'Ora e Grinuiçit (Dublin)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Ora e Grinuiçit (Xhersej)',
         'Europe/Kaliningrad' => 'Ora e Evropës Lindore (Kaliningrad)',
         'Europe/Kiev' => 'Ora e Evropës Lindore (Kiev)',
-        'Europe/Kirov' => 'Ora: Rusi (Kirov)',
+        'Europe/Kyiv' => 'Ora e Evropës Lindore (Kiev)',
+        'Europe/Kirov' => 'Ora e Moskës (Kirov)',
         'Europe/Lisbon' => 'Ora e Evropës Perëndimore (Lisbonë)',
         'Europe/Ljubljana' => 'Ora e Evropës Qendrore (Lubjanë)',
         'Europe/London' => 'Ora e Grinuiçit (Londër)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Ora e Samarës (Samara)',
         'Europe/San_Marino' => 'Ora e Evropës Qendrore (San-Marino)',
         'Europe/Sarajevo' => 'Ora e Evropës Qendrore (Sarajevë)',
-        'Europe/Saratov' => 'Ora e Moskës (Saratov)',
+        'Europe/Saratov' => 'Ora e Samarës (Saratov)',
         'Europe/Simferopol' => 'Ora e Moskës (Simferopol)',
         'Europe/Skopje' => 'Ora e Evropës Qendrore (Shkup)',
         'Europe/Sofia' => 'Ora e Evropës Lindore (Sofje)',
         'Europe/Stockholm' => 'Ora e Evropës Qendrore (Stokholm)',
         'Europe/Tallinn' => 'Ora e Evropës Lindore (Talin)',
         'Europe/Tirane' => 'Ora e Evropës Qendrore (Tiranë)',
-        'Europe/Ulyanovsk' => 'Ora e Moskës (Uljanovsk)',
+        'Europe/Ulyanovsk' => 'Ora e Samarës (Uljanovsk)',
         'Europe/Vaduz' => 'Ora e Evropës Qendrore (Vaduz)',
         'Europe/Vatican' => 'Ora e Evropës Qendrore (Vatikan)',
         'Europe/Vienna' => 'Ora e Evropës Qendrore (Vjenë)',
         'Europe/Vilnius' => 'Ora e Evropës Lindore (Vilnius)',
-        'Europe/Volgograd' => 'Ora e Volgogradit',
+        'Europe/Volgograd' => 'Ora e Moskës (Volgograd)',
         'Europe/Warsaw' => 'Ora e Evropës Qendrore (Varshavë)',
         'Europe/Zagreb' => 'Ora e Evropës Qendrore (Zagreb)',
         'Europe/Zurich' => 'Ora e Evropës Qendrore (Zyrih)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Ora e Ishujve Kokos',
         'Indian/Comoro' => 'Ora e Afrikës Lindore (Komore)',
         'Indian/Kerguelen' => 'Ora e Territoreve Jugore dhe Antarktike Franceze (Kerguelen)',
-        'Indian/Mahe' => 'Ora e Sejshelleve (Mahe)',
+        'Indian/Mahe' => 'Ora e Sejshelleve (Mahé)',
         'Indian/Maldives' => 'Ora e Maldiveve',
         'Indian/Mauritius' => 'Ora e Mauritiusit',
         'Indian/Mayotte' => 'Ora e Afrikës Lindore (Majotë)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Ora e Katamit (Çatman)',
         'Pacific/Easter' => 'Ora e Ishullit të Pashkës',
         'Pacific/Efate' => 'Ora e Vanuatusë (Efate)',
-        'Pacific/Enderbury' => 'Ora e Ishujve Feniks (Enderbur)',
+        'Pacific/Enderbury' => 'Ora e Ishujve Feniks (Ishulli i Kantonit)',
+        'Pacific/Kanton' => 'Ora e Ishujve Feniks (Ishulli i Kantonit)',
         'Pacific/Fakaofo' => 'Ora e Tokelaut (Fakaofo)',
         'Pacific/Fiji' => 'Ora e Fixhit',
         'Pacific/Funafuti' => 'Ora e Tuvalusë (Funafuti)',
-        'Pacific/Galapagos' => 'Ora e Galapagosit',
+        'Pacific/Galapagos' => 'Ora e Galapagosit (Galápagos)',
         'Pacific/Gambier' => 'Ora e Gambierit',
         'Pacific/Guadalcanal' => 'Ora e Ishujve Solomon (Guadalkanal)',
         'Pacific/Guam' => 'Ora e Kamorros (Guam)',
-        'Pacific/Honolulu' => 'Ora e Ishujve Hauai-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Ora standarde e Ishujve Hauai-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Ora e Ishujve Sporadikë Ekuatorialë (Kiritimat)',
         'Pacific/Kosrae' => 'Ora e Kosrës (Kosre)',
         'Pacific/Kwajalein' => 'Ora e Ishujve Marshall (Kuaxhalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Ora e Naurusë',
         'Pacific/Niue' => 'Ora e Niuesë',
         'Pacific/Norfolk' => 'Ora e Ishullit Norfolk',
-        'Pacific/Noumea' => 'Ora e Kaledonisë së Re (Noumea)',
+        'Pacific/Noumea' => 'Ora e Kaledonisë së Re (Nouméa)',
         'Pacific/Pago_Pago' => 'Ora e Samoas (Pago-Pago)',
         'Pacific/Palau' => 'Ora e Palaut',
         'Pacific/Pitcairn' => 'Ora e Pitkernit',
         'Pacific/Ponape' => 'Ora e Ponapeit',
+        'Pacific/Pohnpei' => 'Ora e Ponapeit',
         'Pacific/Port_Moresby' => 'Ora e Guinesë së Re-Papua (Port-Moresbi)',
         'Pacific/Rarotonga' => 'Ora e Ishujve Kuk (Rarotongë)',
         'Pacific/Saipan' => 'Ora e Kamorros (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Ora e Ishujve Gilbert (Taravë)',
         'Pacific/Tongatapu' => 'Ora e Tongës (Tongatapu)',
         'Pacific/Truk' => 'Ora e Çukut',
+        'Pacific/Chuuk' => 'Ora e Çukut',
         'Pacific/Wake' => 'Ora e Ishullit Uejk',
         'Pacific/Wallis' => 'Ora e Uollisit dhe Futunës',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Cyrl_BA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Cyrl_BA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Cyrl_BA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Cyrl_BA.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Источно-афричко вријеме (Адис Абеба)',
         'Africa/Algiers' => 'Средњоевропско вријеме (Алжир)',
         'Africa/Asmera' => 'Источно-афричко вријеме (Асмера)',
+        'Africa/Asmara' => 'Источно-афричко вријеме (Асмера)',
         'Africa/Bamako' => 'Средње вријеме по Гриничу (Бамако)',
         'Africa/Bangui' => 'Западно-афричко вријеме (Бангуи)',
         'Africa/Banjul' => 'Средње вријеме по Гриничу (Банжул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Колумбија вријеме (Богота)',
         'America/Boise' => 'Сјеверноамеричко планинско вријеме (Бојзи)',
         'America/Buenos_Aires' => 'Аргентина вријеме (Буенос Ајрес)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина вријеме (Буенос Ајрес)',
         'America/Cambridge_Bay' => 'Сјеверноамеричко планинско вријеме (Кембриџ Беј)',
         'America/Campo_Grande' => 'Амазон вријеме (Кампо Гранде)',
         'America/Cancun' => 'Сјеверноамеричко источно вријеме (Канкун)',
         'America/Caracas' => 'Венецуела вријеме (Каракас)',
         'America/Catamarca' => 'Аргентина вријеме (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргентина вријеме (Катамарка)',
         'America/Cayenne' => 'Француска Гвајана вријеме (Кајен)',
         'America/Cayman' => 'Сјеверноамеричко источно вријеме (Кајманска Острва)',
         'America/Chicago' => 'Сјеверноамеричко централно вријеме (Чикаго)',
         'America/Chihuahua' => 'Сјеверноамеричко централно вријеме (Чихуахуа)',
         'America/Ciudad_Juarez' => 'Сјеверноамеричко планинско вријеме (Сиудад Хуарез)',
         'America/Coral_Harbour' => 'Сјеверноамеричко источно вријеме (Корал Харбур)',
+        'America/Atikokan' => 'Сјеверноамеричко источно вријеме (Корал Харбур)',
         'America/Cordoba' => 'Аргентина вријеме (Кордоба)',
+        'America/Argentina/Cordoba' => 'Аргентина вријеме (Кордоба)',
         'America/Costa_Rica' => 'Сјеверноамеричко централно вријеме (Костарика)',
+        'America/Coyhaique' => 'Чиле вријеме (Којајке)',
         'America/Creston' => 'Сјеверноамеричко планинско вријеме (Крестон)',
         'America/Cuiaba' => 'Амазон вријеме (Куиаба)',
         'America/Curacao' => 'Атлантско вријеме (Курасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразилија вријеме (Форталеза)',
         'America/Glace_Bay' => 'Атлантско вријеме (Глејс Беј)',
         'America/Godthab' => 'Гренланд (Готхаб)',
+        'America/Nuuk' => 'Гренланд (Готхаб)',
         'America/Goose_Bay' => 'Атлантско вријеме (Гус Беј)',
         'America/Grand_Turk' => 'Сјеверноамеричко источно вријеме (Гранд Турк)',
         'America/Grenada' => 'Атлантско вријеме (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Сјеверноамеричко источно вријеме (Винсенс, Индијана)',
         'America/Indiana/Winamac' => 'Сјеверноамеричко источно вријеме (Винамак, Индијана)',
         'America/Indianapolis' => 'Сјеверноамеричко источно вријеме (Индијанаполис)',
+        'America/Indiana/Indianapolis' => 'Сјеверноамеричко источно вријеме (Индијанаполис)',
         'America/Inuvik' => 'Сјеверноамеричко планинско вријеме (Инувик)',
         'America/Iqaluit' => 'Сјеверноамеричко источно вријеме (Иквалуит)',
         'America/Jamaica' => 'Сјеверноамеричко источно вријеме (Јамајка)',
         'America/Jujuy' => 'Аргентина вријеме (Жужуи)',
+        'America/Argentina/Jujuy' => 'Аргентина вријеме (Жужуи)',
         'America/Juneau' => 'Аљаска (Жуно)',
         'America/Kentucky/Monticello' => 'Сјеверноамеричко источно вријеме (Монтичело, Кентаки)',
         'America/Kralendijk' => 'Атлантско вријеме (Кралендајк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перу вријеме (Лима)',
         'America/Los_Angeles' => 'Сјеверноамеричко пацифичко вријеме (Лос Анђелес)',
         'America/Louisville' => 'Сјеверноамеричко источно вријеме (Луивил)',
+        'America/Kentucky/Louisville' => 'Сјеверноамеричко источно вријеме (Луивил)',
         'America/Lower_Princes' => 'Атлантско вријеме (Лоуер Принсиз Квортер)',
         'America/Maceio' => 'Бразилија вријеме (Масејо)',
         'America/Managua' => 'Сјеверноамеричко централно вријеме (Манагва)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Сјеверноамеричко централно вријеме (Матаморос)',
         'America/Mazatlan' => 'Мексички Пацифик (Мазатлан)',
         'America/Mendoza' => 'Аргентина вријеме (Мендоса)',
+        'America/Argentina/Mendoza' => 'Аргентина вријеме (Мендоса)',
         'America/Menominee' => 'Сјеверноамеричко централно вријеме (Меномини)',
         'America/Merida' => 'Сјеверноамеричко централно вријеме (Мерида)',
         'America/Metlakatla' => 'Аљаска (Метлакатла)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Арабијско вријеме (Аден)',
         'Asia/Almaty' => 'Казахстанско вријеме (Алмати)',
         'Asia/Amman' => 'Источноевропско вријеме (Аман)',
-        'Asia/Anadyr' => 'Анадир време',
+        'Asia/Anadyr' => 'Петропавловско-камчатско време (Анадир)',
         'Asia/Aqtau' => 'Казахстанско вријеме (Актау)',
         'Asia/Aqtobe' => 'Казахстанско вријеме (Акутобе)',
         'Asia/Ashgabat' => 'Туркменистан вријеме (Ашхабад)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Арабијско вријеме (Бахреин)',
         'Asia/Baku' => 'Азербејџан вријеме (Баку)',
         'Asia/Bangkok' => 'Индокина вријеме (Бангкок)',
-        'Asia/Barnaul' => 'Русија (Барнаул)',
+        'Asia/Barnaul' => 'Краснојарск вријеме (Барнаул)',
         'Asia/Beirut' => 'Источноевропско вријеме (Бејрут)',
         'Asia/Bishkek' => 'Киргистан вријеме (Бишкек)',
         'Asia/Brunei' => 'Брунеј Дарусалум вријеме',
         'Asia/Calcutta' => 'Индијско стандардно вријеме (Калкута)',
+        'Asia/Kolkata' => 'Индијско стандардно вријеме (Калкута)',
         'Asia/Chita' => 'Јакутск вријеме (Чита)',
         'Asia/Colombo' => 'Индијско стандардно вријеме (Коломбо)',
         'Asia/Damascus' => 'Источноевропско вријеме (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Петропавловско-камчатско време (Камчатка)',
         'Asia/Karachi' => 'Пакистан вријеме (Карачи)',
         'Asia/Katmandu' => 'Непал вријеме (Катманду)',
+        'Asia/Kathmandu' => 'Непал вријеме (Катманду)',
         'Asia/Khandyga' => 'Јакутск вријеме (Хандига)',
         'Asia/Krasnoyarsk' => 'Краснојарск вријеме',
         'Asia/Kuala_Lumpur' => 'Малезија вријеме (Куала Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Заливско вријеме (Мускат)',
         'Asia/Nicosia' => 'Источноевропско вријеме (Никозија)',
         'Asia/Novokuznetsk' => 'Краснојарск вријеме (Новокузњецк)',
-        'Asia/Novosibirsk' => 'Новосибирск вријеме',
+        'Asia/Novosibirsk' => 'Краснојарск вријеме (Новосибирск)',
         'Asia/Omsk' => 'Омск вријеме',
         'Asia/Oral' => 'Казахстанско вријеме (Орал)',
         'Asia/Phnom_Penh' => 'Индокина вријеме (Пном Пен)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Казахстанско вријеме (Костанај)',
         'Asia/Qyzylorda' => 'Казахстанско вријеме (Кизилорда)',
         'Asia/Rangoon' => 'Мјанмар вријеме (Рангун)',
+        'Asia/Yangon' => 'Мјанмар вријеме (Рангун)',
         'Asia/Riyadh' => 'Арабијско вријеме (Ријад)',
         'Asia/Saigon' => 'Индокина вријеме (Хо Ши Мин)',
-        'Asia/Sakhalin' => 'Сахалин вријеме',
+        'Asia/Ho_Chi_Minh' => 'Индокина вријеме (Хо Ши Мин)',
+        'Asia/Sakhalin' => 'Магадан вријеме (Сахалин)',
         'Asia/Samarkand' => 'Узбекистан вријеме (Самарканд)',
         'Asia/Seoul' => 'Корејско вријеме (Сеул)',
         'Asia/Shanghai' => 'Кина вријеме (Шангај)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Иран вријеме (Техеран)',
         'Asia/Thimphu' => 'Бутан вријеме (Тимпу)',
         'Asia/Tokyo' => 'Јапанско вријеме (Токио)',
-        'Asia/Tomsk' => 'Русија (Томск)',
+        'Asia/Tomsk' => 'Краснојарск вријеме (Томск)',
         'Asia/Ulaanbaatar' => 'Улан Батор вријеме',
         'Asia/Urumqi' => 'Кина (Урумћи)',
         'Asia/Ust-Nera' => 'Владивосток вријеме (Уст-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Западноевропско вријеме (Канарска острва)',
         'Atlantic/Cape_Verde' => 'Зеленортска Острва вријеме',
         'Atlantic/Faeroe' => 'Западноевропско вријеме (Фарска Острва)',
+        'Atlantic/Faroe' => 'Западноевропско вријеме (Фарска Острва)',
         'Atlantic/Madeira' => 'Западноевропско вријеме (Мадеира)',
         'Atlantic/Reykjavik' => 'Средње вријеме по Гриничу (Рејкјавик)',
         'Atlantic/South_Georgia' => 'Јужна Џорџија вријеме',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Координисано универзално вријеме',
         'Europe/Amsterdam' => 'Средњоевропско вријеме (Амстердам)',
         'Europe/Andorra' => 'Средњоевропско вријеме (Андора)',
-        'Europe/Astrakhan' => 'Москва вријеме (Астракан)',
+        'Europe/Astrakhan' => 'Самара време (Астракан)',
         'Europe/Athens' => 'Источноевропско вријеме (Атина)',
         'Europe/Belgrade' => 'Средњоевропско вријеме (Београд)',
         'Europe/Berlin' => 'Средњоевропско вријеме (Берлин)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Средње вријеме по Гриничу (Гернзи)',
         'Europe/Helsinki' => 'Источноевропско вријеме (Хелсинки)',
         'Europe/Isle_of_Man' => 'Средње вријеме по Гриничу (Острво Ман)',
-        'Europe/Istanbul' => 'Турска (Истанбул)',
+        'Europe/Istanbul' => 'Турска време (Истанбул)',
         'Europe/Jersey' => 'Средње вријеме по Гриничу (Џерзи)',
         'Europe/Kaliningrad' => 'Источноевропско вријеме (Калињинград)',
         'Europe/Kiev' => 'Источноевропско вријеме (Кијев)',
-        'Europe/Kirov' => 'Русија (Киров)',
+        'Europe/Kyiv' => 'Источноевропско вријеме (Кијев)',
+        'Europe/Kirov' => 'Москва вријеме (Киров)',
         'Europe/Lisbon' => 'Западноевропско вријеме (Лисабон)',
         'Europe/Ljubljana' => 'Средњоевропско вријеме (Љубљана)',
         'Europe/London' => 'Средње вријеме по Гриничу (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Самара време',
         'Europe/San_Marino' => 'Средњоевропско вријеме (Сан Марино)',
         'Europe/Sarajevo' => 'Средњоевропско вријеме (Сарајево)',
-        'Europe/Saratov' => 'Москва вријеме (Саратов)',
+        'Europe/Saratov' => 'Самара време (Саратов)',
         'Europe/Simferopol' => 'Москва вријеме (Симферопољ)',
         'Europe/Skopje' => 'Средњоевропско вријеме (Скопље)',
         'Europe/Sofia' => 'Источноевропско вријеме (Софија)',
         'Europe/Stockholm' => 'Средњоевропско вријеме (Стокхолм)',
         'Europe/Tallinn' => 'Источноевропско вријеме (Талин)',
         'Europe/Tirane' => 'Средњоевропско вријеме (Тирана)',
-        'Europe/Ulyanovsk' => 'Москва вријеме (Уљановск)',
+        'Europe/Ulyanovsk' => 'Самара време (Уљановск)',
         'Europe/Vaduz' => 'Средњоевропско вријеме (Вадуз)',
         'Europe/Vatican' => 'Средњоевропско вријеме (Ватикан)',
         'Europe/Vienna' => 'Средњоевропско вријеме (Беч)',
         'Europe/Vilnius' => 'Источноевропско вријеме (Вилњус)',
-        'Europe/Volgograd' => 'Волгоград вријеме',
+        'Europe/Volgograd' => 'Москва вријеме (Волгоград)',
         'Europe/Warsaw' => 'Средњоевропско вријеме (Варшава)',
         'Europe/Zagreb' => 'Средњоевропско вријеме (Загреб)',
         'Europe/Zurich' => 'Средњоевропско вријеме (Цирих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Чатам вријеме',
         'Pacific/Easter' => 'Ускршња острва вријеме (Ускршње острво)',
         'Pacific/Efate' => 'Вануату вријеме (Ефат)',
-        'Pacific/Enderbury' => 'Феникс острва вријеме (Ендербери)',
+        'Pacific/Enderbury' => 'Феникс острва вријеме (Кантон)',
+        'Pacific/Kanton' => 'Феникс острва вријеме (Кантон)',
         'Pacific/Fakaofo' => 'Токелау вријеме (Факаофо)',
         'Pacific/Fiji' => 'Фиџи вријеме',
         'Pacific/Funafuti' => 'Тувалу вријеме (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Гамбије вријеме',
         'Pacific/Guadalcanal' => 'Соломонска Острва вријеме (Гвадалканал)',
         'Pacific/Guam' => 'Чаморо вријеме (Гуам)',
-        'Pacific/Honolulu' => 'Хавајско-алеутско вријеме (Хонолулу)',
+        'Pacific/Honolulu' => 'Хавајско-алеутско стандардно вријеме (Хонолулу)',
         'Pacific/Kiritimati' => 'Линијска острва вријеме (Киритимати)',
         'Pacific/Kosrae' => 'Кошре вријеме',
         'Pacific/Kwajalein' => 'Маршалска Острва вријеме (Кваџалејин)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Палау вријеме',
         'Pacific/Pitcairn' => 'Питкерн вријеме',
         'Pacific/Ponape' => 'Понпеј вријеме (Понапе)',
+        'Pacific/Pohnpei' => 'Понпеј вријеме (Понапе)',
         'Pacific/Port_Moresby' => 'Папуа Нова Гвинеја вријеме (Порт Морзби)',
         'Pacific/Rarotonga' => 'Кукова Острва вријеме (Раротонга)',
         'Pacific/Saipan' => 'Чаморо вријеме (Сајпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Гилбертова острва вријеме (Тарава)',
         'Pacific/Tongatapu' => 'Тонга вријеме (Тонгатапу)',
         'Pacific/Truk' => 'Чук вријеме (Трук)',
+        'Pacific/Chuuk' => 'Чук вријеме (Трук)',
         'Pacific/Wake' => 'острво Вејк вријеме',
         'Pacific/Wallis' => 'острва Валис и Футуна вријеме',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Latn_BA.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Latn_BA.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Latn_BA.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Latn_BA.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Istočno-afričko vrijeme (Adis Abeba)',
         'Africa/Algiers' => 'Srednjoevropsko vrijeme (Alžir)',
         'Africa/Asmera' => 'Istočno-afričko vrijeme (Asmera)',
+        'Africa/Asmara' => 'Istočno-afričko vrijeme (Asmera)',
         'Africa/Bamako' => 'Srednje vrijeme po Griniču (Bamako)',
         'Africa/Bangui' => 'Zapadno-afričko vrijeme (Bangui)',
         'Africa/Banjul' => 'Srednje vrijeme po Griniču (Banžul)',
@@ -77,19 +78,24 @@
         'America/Bogota' => 'Kolumbija vrijeme (Bogota)',
         'America/Boise' => 'Sjevernoameričko planinsko vrijeme (Bojzi)',
         'America/Buenos_Aires' => 'Argentina vrijeme (Buenos Ajres)',
+        'America/Argentina/Buenos_Aires' => 'Argentina vrijeme (Buenos Ajres)',
         'America/Cambridge_Bay' => 'Sjevernoameričko planinsko vrijeme (Kembridž Bej)',
         'America/Campo_Grande' => 'Amazon vrijeme (Kampo Grande)',
         'America/Cancun' => 'Sjevernoameričko istočno vrijeme (Kankun)',
         'America/Caracas' => 'Venecuela vrijeme (Karakas)',
         'America/Catamarca' => 'Argentina vrijeme (Katamarka)',
+        'America/Argentina/Catamarca' => 'Argentina vrijeme (Katamarka)',
         'America/Cayenne' => 'Francuska Gvajana vrijeme (Kajen)',
         'America/Cayman' => 'Sjevernoameričko istočno vrijeme (Kajmanska Ostrva)',
         'America/Chicago' => 'Sjevernoameričko centralno vrijeme (Čikago)',
         'America/Chihuahua' => 'Sjevernoameričko centralno vrijeme (Čihuahua)',
         'America/Ciudad_Juarez' => 'Sjevernoameričko planinsko vrijeme (Siudad Huarez)',
         'America/Coral_Harbour' => 'Sjevernoameričko istočno vrijeme (Koral Harbur)',
+        'America/Atikokan' => 'Sjevernoameričko istočno vrijeme (Koral Harbur)',
         'America/Cordoba' => 'Argentina vrijeme (Kordoba)',
+        'America/Argentina/Cordoba' => 'Argentina vrijeme (Kordoba)',
         'America/Costa_Rica' => 'Sjevernoameričko centralno vrijeme (Kostarika)',
+        'America/Coyhaique' => 'Čile vrijeme (Kojajke)',
         'America/Creston' => 'Sjevernoameričko planinsko vrijeme (Kreston)',
         'America/Cuiaba' => 'Amazon vrijeme (Kuiaba)',
         'America/Curacao' => 'Atlantsko vrijeme (Kurasao)',
@@ -119,16 +125,19 @@
         'America/Indiana/Vincennes' => 'Sjevernoameričko istočno vrijeme (Vinsens, Indijana)',
         'America/Indiana/Winamac' => 'Sjevernoameričko istočno vrijeme (Vinamak, Indijana)',
         'America/Indianapolis' => 'Sjevernoameričko istočno vrijeme (Indijanapolis)',
+        'America/Indiana/Indianapolis' => 'Sjevernoameričko istočno vrijeme (Indijanapolis)',
         'America/Inuvik' => 'Sjevernoameričko planinsko vrijeme (Inuvik)',
         'America/Iqaluit' => 'Sjevernoameričko istočno vrijeme (Ikvaluit)',
         'America/Jamaica' => 'Sjevernoameričko istočno vrijeme (Jamajka)',
         'America/Jujuy' => 'Argentina vrijeme (Žužui)',
+        'America/Argentina/Jujuy' => 'Argentina vrijeme (Žužui)',
         'America/Kentucky/Monticello' => 'Sjevernoameričko istočno vrijeme (Montičelo, Kentaki)',
         'America/Kralendijk' => 'Atlantsko vrijeme (Kralendajk)',
         'America/La_Paz' => 'Bolivija vrijeme (La Paz)',
         'America/Lima' => 'Peru vrijeme (Lima)',
         'America/Los_Angeles' => 'Sjevernoameričko pacifičko vrijeme (Los Anđeles)',
         'America/Louisville' => 'Sjevernoameričko istočno vrijeme (Luivil)',
+        'America/Kentucky/Louisville' => 'Sjevernoameričko istočno vrijeme (Luivil)',
         'America/Lower_Princes' => 'Atlantsko vrijeme (Louer Prinsiz Kvorter)',
         'America/Maceio' => 'Brazilija vrijeme (Masejo)',
         'America/Managua' => 'Sjevernoameričko centralno vrijeme (Managva)',
@@ -137,6 +146,7 @@
         'America/Martinique' => 'Atlantsko vrijeme (Martinik)',
         'America/Matamoros' => 'Sjevernoameričko centralno vrijeme (Matamoros)',
         'America/Mendoza' => 'Argentina vrijeme (Mendosa)',
+        'America/Argentina/Mendoza' => 'Argentina vrijeme (Mendosa)',
         'America/Menominee' => 'Sjevernoameričko centralno vrijeme (Menomini)',
         'America/Merida' => 'Sjevernoameričko centralno vrijeme (Merida)',
         'America/Mexico_City' => 'Sjevernoameričko centralno vrijeme (Meksiko Siti)',
@@ -205,10 +215,12 @@
         'Asia/Bahrain' => 'Arabijsko vrijeme (Bahrein)',
         'Asia/Baku' => 'Azerbejdžan vrijeme (Baku)',
         'Asia/Bangkok' => 'Indokina vrijeme (Bangkok)',
+        'Asia/Barnaul' => 'Krasnojarsk vrijeme (Barnaul)',
         'Asia/Beirut' => 'Istočnoevropsko vrijeme (Bejrut)',
         'Asia/Bishkek' => 'Kirgistan vrijeme (Biškek)',
         'Asia/Brunei' => 'Brunej Darusalum vrijeme',
         'Asia/Calcutta' => 'Indijsko standardno vrijeme (Kalkuta)',
+        'Asia/Kolkata' => 'Indijsko standardno vrijeme (Kalkuta)',
         'Asia/Chita' => 'Jakutsk vrijeme (Čita)',
         'Asia/Colombo' => 'Indijsko standardno vrijeme (Kolombo)',
         'Asia/Damascus' => 'Istočnoevropsko vrijeme (Damask)',
@@ -228,6 +240,7 @@
         'Asia/Kabul' => 'Avganistan vrijeme (Kabul)',
         'Asia/Karachi' => 'Pakistan vrijeme (Karači)',
         'Asia/Katmandu' => 'Nepal vrijeme (Katmandu)',
+        'Asia/Kathmandu' => 'Nepal vrijeme (Katmandu)',
         'Asia/Khandyga' => 'Jakutsk vrijeme (Handiga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsk vrijeme',
         'Asia/Kuala_Lumpur' => 'Malezija vrijeme (Kuala Lumpur)',
@@ -240,7 +253,7 @@
         'Asia/Muscat' => 'Zalivsko vrijeme (Muskat)',
         'Asia/Nicosia' => 'Istočnoevropsko vrijeme (Nikozija)',
         'Asia/Novokuznetsk' => 'Krasnojarsk vrijeme (Novokuznjeck)',
-        'Asia/Novosibirsk' => 'Novosibirsk vrijeme',
+        'Asia/Novosibirsk' => 'Krasnojarsk vrijeme (Novosibirsk)',
         'Asia/Omsk' => 'Omsk vrijeme',
         'Asia/Oral' => 'Kazahstansko vrijeme (Oral)',
         'Asia/Phnom_Penh' => 'Indokina vrijeme (Pnom Pen)',
@@ -250,9 +263,11 @@
         'Asia/Qostanay' => 'Kazahstansko vrijeme (Kostanaj)',
         'Asia/Qyzylorda' => 'Kazahstansko vrijeme (Kizilorda)',
         'Asia/Rangoon' => 'Mjanmar vrijeme (Rangun)',
+        'Asia/Yangon' => 'Mjanmar vrijeme (Rangun)',
         'Asia/Riyadh' => 'Arabijsko vrijeme (Rijad)',
         'Asia/Saigon' => 'Indokina vrijeme (Ho Ši Min)',
-        'Asia/Sakhalin' => 'Sahalin vrijeme',
+        'Asia/Ho_Chi_Minh' => 'Indokina vrijeme (Ho Ši Min)',
+        'Asia/Sakhalin' => 'Magadan vrijeme (Sahalin)',
         'Asia/Samarkand' => 'Uzbekistan vrijeme (Samarkand)',
         'Asia/Seoul' => 'Korejsko vrijeme (Seul)',
         'Asia/Shanghai' => 'Kina vrijeme (Šangaj)',
@@ -264,6 +279,7 @@
         'Asia/Tehran' => 'Iran vrijeme (Teheran)',
         'Asia/Thimphu' => 'Butan vrijeme (Timpu)',
         'Asia/Tokyo' => 'Japansko vrijeme (Tokio)',
+        'Asia/Tomsk' => 'Krasnojarsk vrijeme (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulan Bator vrijeme',
         'Asia/Ust-Nera' => 'Vladivostok vrijeme (Ust-Nera)',
         'Asia/Vientiane' => 'Indokina vrijeme (Vijentijan)',
@@ -276,6 +292,7 @@
         'Atlantic/Canary' => 'Zapadnoevropsko vrijeme (Kanarska ostrva)',
         'Atlantic/Cape_Verde' => 'Zelenortska Ostrva vrijeme',
         'Atlantic/Faeroe' => 'Zapadnoevropsko vrijeme (Farska Ostrva)',
+        'Atlantic/Faroe' => 'Zapadnoevropsko vrijeme (Farska Ostrva)',
         'Atlantic/Madeira' => 'Zapadnoevropsko vrijeme (Madeira)',
         'Atlantic/Reykjavik' => 'Srednje vrijeme po Griniču (Rejkjavik)',
         'Atlantic/South_Georgia' => 'Južna Džordžija vrijeme',
@@ -296,7 +313,6 @@
         'Etc/UTC' => 'Koordinisano univerzalno vrijeme',
         'Europe/Amsterdam' => 'Srednjoevropsko vrijeme (Amsterdam)',
         'Europe/Andorra' => 'Srednjoevropsko vrijeme (Andora)',
-        'Europe/Astrakhan' => 'Moskva vrijeme (Astrakan)',
         'Europe/Athens' => 'Istočnoevropsko vrijeme (Atina)',
         'Europe/Belgrade' => 'Srednjoevropsko vrijeme (Beograd)',
         'Europe/Berlin' => 'Srednjoevropsko vrijeme (Berlin)',
@@ -315,6 +331,8 @@
         'Europe/Jersey' => 'Srednje vrijeme po Griniču (Džerzi)',
         'Europe/Kaliningrad' => 'Istočnoevropsko vrijeme (Kalinjingrad)',
         'Europe/Kiev' => 'Istočnoevropsko vrijeme (Kijev)',
+        'Europe/Kyiv' => 'Istočnoevropsko vrijeme (Kijev)',
+        'Europe/Kirov' => 'Moskva vrijeme (Kirov)',
         'Europe/Lisbon' => 'Zapadnoevropsko vrijeme (Lisabon)',
         'Europe/Ljubljana' => 'Srednjoevropsko vrijeme (Ljubljana)',
         'Europe/London' => 'Srednje vrijeme po Griniču (London)',
@@ -333,19 +351,17 @@
         'Europe/Rome' => 'Srednjoevropsko vrijeme (Rim)',
         'Europe/San_Marino' => 'Srednjoevropsko vrijeme (San Marino)',
         'Europe/Sarajevo' => 'Srednjoevropsko vrijeme (Sarajevo)',
-        'Europe/Saratov' => 'Moskva vrijeme (Saratov)',
         'Europe/Simferopol' => 'Moskva vrijeme (Simferopolj)',
         'Europe/Skopje' => 'Srednjoevropsko vrijeme (Skoplje)',
         'Europe/Sofia' => 'Istočnoevropsko vrijeme (Sofija)',
         'Europe/Stockholm' => 'Srednjoevropsko vrijeme (Stokholm)',
         'Europe/Tallinn' => 'Istočnoevropsko vrijeme (Talin)',
         'Europe/Tirane' => 'Srednjoevropsko vrijeme (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskva vrijeme (Uljanovsk)',
         'Europe/Vaduz' => 'Srednjoevropsko vrijeme (Vaduz)',
         'Europe/Vatican' => 'Srednjoevropsko vrijeme (Vatikan)',
         'Europe/Vienna' => 'Srednjoevropsko vrijeme (Beč)',
         'Europe/Vilnius' => 'Istočnoevropsko vrijeme (Vilnjus)',
-        'Europe/Volgograd' => 'Volgograd vrijeme',
+        'Europe/Volgograd' => 'Moskva vrijeme (Volgograd)',
         'Europe/Warsaw' => 'Srednjoevropsko vrijeme (Varšava)',
         'Europe/Zagreb' => 'Srednjoevropsko vrijeme (Zagreb)',
         'Europe/Zurich' => 'Srednjoevropsko vrijeme (Cirih)',
@@ -366,7 +382,8 @@
         'Pacific/Chatham' => 'Čatam vrijeme',
         'Pacific/Easter' => 'Uskršnja ostrva vrijeme (Uskršnje ostrvo)',
         'Pacific/Efate' => 'Vanuatu vrijeme (Efat)',
-        'Pacific/Enderbury' => 'Feniks ostrva vrijeme (Enderberi)',
+        'Pacific/Enderbury' => 'Feniks ostrva vrijeme (Kanton)',
+        'Pacific/Kanton' => 'Feniks ostrva vrijeme (Kanton)',
         'Pacific/Fakaofo' => 'Tokelau vrijeme (Fakaofo)',
         'Pacific/Fiji' => 'Fidži vrijeme',
         'Pacific/Funafuti' => 'Tuvalu vrijeme (Funafuti)',
@@ -374,7 +391,7 @@
         'Pacific/Gambier' => 'Gambije vrijeme',
         'Pacific/Guadalcanal' => 'Solomonska Ostrva vrijeme (Gvadalkanal)',
         'Pacific/Guam' => 'Čamoro vrijeme (Guam)',
-        'Pacific/Honolulu' => 'Havajsko-aleutsko vrijeme (Honolulu)',
+        'Pacific/Honolulu' => 'Havajsko-aleutsko standardno vrijeme (Honolulu)',
         'Pacific/Kiritimati' => 'Linijska ostrva vrijeme (Kiritimati)',
         'Pacific/Kosrae' => 'Košre vrijeme',
         'Pacific/Kwajalein' => 'Maršalska Ostrva vrijeme (Kvadžalejin)',
@@ -389,6 +406,7 @@
         'Pacific/Palau' => 'Palau vrijeme',
         'Pacific/Pitcairn' => 'Pitkern vrijeme',
         'Pacific/Ponape' => 'Ponpej vrijeme (Ponape)',
+        'Pacific/Pohnpei' => 'Ponpej vrijeme (Ponape)',
         'Pacific/Port_Moresby' => 'Papua Nova Gvineja vrijeme (Port Morzbi)',
         'Pacific/Rarotonga' => 'Kukova Ostrva vrijeme (Rarotonga)',
         'Pacific/Saipan' => 'Čamoro vrijeme (Sajpan)',
@@ -396,6 +414,7 @@
         'Pacific/Tarawa' => 'Gilbertova ostrva vrijeme (Tarava)',
         'Pacific/Tongatapu' => 'Tonga vrijeme (Tongatapu)',
         'Pacific/Truk' => 'Čuk vrijeme (Truk)',
+        'Pacific/Chuuk' => 'Čuk vrijeme (Truk)',
         'Pacific/Wake' => 'ostrvo Vejk vrijeme',
         'Pacific/Wallis' => 'ostrva Valis i Futuna vrijeme',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr_Latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Istočno-afričko vreme (Adis Abeba)',
         'Africa/Algiers' => 'Srednjeevropsko vreme (Alžir)',
         'Africa/Asmera' => 'Istočno-afričko vreme (Asmera)',
+        'Africa/Asmara' => 'Istočno-afričko vreme (Asmera)',
         'Africa/Bamako' => 'Srednje vreme po Griniču (Bamako)',
         'Africa/Bangui' => 'Zapadno-afričko vreme (Bangui)',
         'Africa/Banjul' => 'Srednje vreme po Griniču (Banžul)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Kolumbija vreme (Bogota)',
         'America/Boise' => 'Severnoameričko planinsko vreme (Bojzi)',
         'America/Buenos_Aires' => 'Argentina vreme (Buenos Ajres)',
+        'America/Argentina/Buenos_Aires' => 'Argentina vreme (Buenos Ajres)',
         'America/Cambridge_Bay' => 'Severnoameričko planinsko vreme (Kembridž Bej)',
         'America/Campo_Grande' => 'Amazon vreme (Kampo Grande)',
         'America/Cancun' => 'Severnoameričko istočno vreme (Kankun)',
         'America/Caracas' => 'Venecuela vreme (Karakas)',
         'America/Catamarca' => 'Argentina vreme (Katamarka)',
+        'America/Argentina/Catamarca' => 'Argentina vreme (Katamarka)',
         'America/Cayenne' => 'Francuska Gvajana vreme (Kajen)',
         'America/Cayman' => 'Severnoameričko istočno vreme (Kajmanska Ostrva)',
         'America/Chicago' => 'Severnoameričko centralno vreme (Čikago)',
         'America/Chihuahua' => 'Severnoameričko centralno vreme (Čihuahua)',
         'America/Ciudad_Juarez' => 'Severnoameričko planinsko vreme (Siudad Huarez)',
         'America/Coral_Harbour' => 'Severnoameričko istočno vreme (Koral Harbur)',
+        'America/Atikokan' => 'Severnoameričko istočno vreme (Koral Harbur)',
         'America/Cordoba' => 'Argentina vreme (Kordoba)',
+        'America/Argentina/Cordoba' => 'Argentina vreme (Kordoba)',
         'America/Costa_Rica' => 'Severnoameričko centralno vreme (Kostarika)',
+        'America/Coyhaique' => 'Čile vreme (Kojajke)',
         'America/Creston' => 'Severnoameričko planinsko vreme (Kreston)',
         'America/Cuiaba' => 'Amazon vreme (Kuiaba)',
         'America/Curacao' => 'Atlantsko vreme (Kurasao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Brazilija vreme (Fortaleza)',
         'America/Glace_Bay' => 'Atlantsko vreme (Glejs Bej)',
         'America/Godthab' => 'Grenland (Gothab)',
+        'America/Nuuk' => 'Grenland (Gothab)',
         'America/Goose_Bay' => 'Atlantsko vreme (Gus Bej)',
         'America/Grand_Turk' => 'Severnoameričko istočno vreme (Grand Turk)',
         'America/Grenada' => 'Atlantsko vreme (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Severnoameričko istočno vreme (Vincenes, Indijana)',
         'America/Indiana/Winamac' => 'Severnoameričko istočno vreme (Vinamak, Indijana)',
         'America/Indianapolis' => 'Severnoameričko istočno vreme (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Severnoameričko istočno vreme (Indianapolis)',
         'America/Inuvik' => 'Severnoameričko planinsko vreme (Inuvik)',
         'America/Iqaluit' => 'Severnoameričko istočno vreme (Ikvaluit)',
         'America/Jamaica' => 'Severnoameričko istočno vreme (Jamajka)',
         'America/Jujuy' => 'Argentina vreme (Žužui)',
+        'America/Argentina/Jujuy' => 'Argentina vreme (Žužui)',
         'America/Juneau' => 'Aljaska (Žuno)',
         'America/Kentucky/Monticello' => 'Severnoameričko istočno vreme (Montičelo, Kentaki)',
         'America/Kralendijk' => 'Atlantsko vreme (Kralendajk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Peru vreme (Lima)',
         'America/Los_Angeles' => 'Severnoameričko pacifičko vreme (Los Anđeles)',
         'America/Louisville' => 'Severnoameričko istočno vreme (Luivile)',
+        'America/Kentucky/Louisville' => 'Severnoameričko istočno vreme (Luivile)',
         'America/Lower_Princes' => 'Atlantsko vreme (Louer Prinsiz Kvorter)',
         'America/Maceio' => 'Brazilija vreme (Masejo)',
         'America/Managua' => 'Severnoameričko centralno vreme (Managva)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Severnoameričko centralno vreme (Matamoros)',
         'America/Mazatlan' => 'Meksički Pacifik (Mazatlan)',
         'America/Mendoza' => 'Argentina vreme (Mendosa)',
+        'America/Argentina/Mendoza' => 'Argentina vreme (Mendosa)',
         'America/Menominee' => 'Severnoameričko centralno vreme (Menomini)',
         'America/Merida' => 'Severnoameričko centralno vreme (Merida)',
         'America/Metlakatla' => 'Aljaska (Metlakatla)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Arabijsko vreme (Aden)',
         'Asia/Almaty' => 'Kazahstansko vreme (Almati)',
         'Asia/Amman' => 'Istočnoevropsko vreme (Aman)',
-        'Asia/Anadyr' => 'Anadir vreme',
+        'Asia/Anadyr' => 'Petropavlovsko-kamčatsko vreme (Anadir)',
         'Asia/Aqtau' => 'Kazahstansko vreme (Aktau)',
         'Asia/Aqtobe' => 'Kazahstansko vreme (Akutobe)',
         'Asia/Ashgabat' => 'Turkmenistan vreme (Ašhabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabijsko vreme (Bahrein)',
         'Asia/Baku' => 'Azerbejdžan vreme (Baku)',
         'Asia/Bangkok' => 'Indokina vreme (Bangkok)',
-        'Asia/Barnaul' => 'Rusija (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarsk vreme (Barnaul)',
         'Asia/Beirut' => 'Istočnoevropsko vreme (Bejrut)',
         'Asia/Bishkek' => 'Kirgistan vreme (Biškek)',
         'Asia/Brunei' => 'Brunej Darusalum vreme',
         'Asia/Calcutta' => 'Indijsko standardno vreme (Kalkuta)',
+        'Asia/Kolkata' => 'Indijsko standardno vreme (Kalkuta)',
         'Asia/Chita' => 'Jakutsk vreme (Čita)',
         'Asia/Colombo' => 'Indijsko standardno vreme (Kolombo)',
         'Asia/Damascus' => 'Istočnoevropsko vreme (Damask)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsko-kamčatsko vreme (Kamčatka)',
         'Asia/Karachi' => 'Pakistan vreme (Karači)',
         'Asia/Katmandu' => 'Nepal vreme (Katmandu)',
+        'Asia/Kathmandu' => 'Nepal vreme (Katmandu)',
         'Asia/Khandyga' => 'Jakutsk vreme (Handiga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsk vreme',
         'Asia/Kuala_Lumpur' => 'Malezija vreme (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Zalivsko vreme (Muskat)',
         'Asia/Nicosia' => 'Istočnoevropsko vreme (Nikozija)',
         'Asia/Novokuznetsk' => 'Krasnojarsk vreme (Novokuznjeck)',
-        'Asia/Novosibirsk' => 'Novosibirsk vreme',
+        'Asia/Novosibirsk' => 'Krasnojarsk vreme (Novosibirsk)',
         'Asia/Omsk' => 'Omsk vreme',
         'Asia/Oral' => 'Kazahstansko vreme (Oral)',
         'Asia/Phnom_Penh' => 'Indokina vreme (Pnom Pen)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazahstansko vreme (Kostanaj)',
         'Asia/Qyzylorda' => 'Kazahstansko vreme (Kizilorda)',
         'Asia/Rangoon' => 'Mijanmar vreme (Rangun)',
+        'Asia/Yangon' => 'Mijanmar vreme (Rangun)',
         'Asia/Riyadh' => 'Arabijsko vreme (Rijad)',
         'Asia/Saigon' => 'Indokina vreme (Ho Ši Min)',
-        'Asia/Sakhalin' => 'Sahalin vreme',
+        'Asia/Ho_Chi_Minh' => 'Indokina vreme (Ho Ši Min)',
+        'Asia/Sakhalin' => 'Magadan vreme (Sahalin)',
         'Asia/Samarkand' => 'Uzbekistan vreme (Samarkand)',
         'Asia/Seoul' => 'Korejsko vreme (Seul)',
         'Asia/Shanghai' => 'Kina vreme (Šangaj)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Iran vreme (Teheran)',
         'Asia/Thimphu' => 'Butan vreme (Timpu)',
         'Asia/Tokyo' => 'Japansko vreme (Tokio)',
-        'Asia/Tomsk' => 'Rusija (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarsk vreme (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulan Bator vreme',
         'Asia/Urumqi' => 'Kina (Urumći)',
         'Asia/Ust-Nera' => 'Vladivostok vreme (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Zapadnoevropsko vreme (Kanarska ostrva)',
         'Atlantic/Cape_Verde' => 'Zelenortska Ostrva vreme',
         'Atlantic/Faeroe' => 'Zapadnoevropsko vreme (Farska Ostrva)',
+        'Atlantic/Faroe' => 'Zapadnoevropsko vreme (Farska Ostrva)',
         'Atlantic/Madeira' => 'Zapadnoevropsko vreme (Madeira)',
         'Atlantic/Reykjavik' => 'Srednje vreme po Griniču (Rejkjavik)',
         'Atlantic/South_Georgia' => 'Južna Džordžija vreme',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Koordinisano univerzalno vreme',
         'Europe/Amsterdam' => 'Srednjeevropsko vreme (Amsterdam)',
         'Europe/Andorra' => 'Srednjeevropsko vreme (Andora)',
-        'Europe/Astrakhan' => 'Moskva vreme (Astrakan)',
+        'Europe/Astrakhan' => 'Samara vreme (Astrakan)',
         'Europe/Athens' => 'Istočnoevropsko vreme (Atina)',
         'Europe/Belgrade' => 'Srednjeevropsko vreme (Beograd)',
         'Europe/Berlin' => 'Srednjeevropsko vreme (Berlin)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Srednje vreme po Griniču (Gernzi)',
         'Europe/Helsinki' => 'Istočnoevropsko vreme (Helsinki)',
         'Europe/Isle_of_Man' => 'Srednje vreme po Griniču (Ostrvo Man)',
-        'Europe/Istanbul' => 'Turska (Istanbul)',
+        'Europe/Istanbul' => 'Turska vreme (Istanbul)',
         'Europe/Jersey' => 'Srednje vreme po Griniču (Džerzi)',
         'Europe/Kaliningrad' => 'Istočnoevropsko vreme (Kalinjingrad)',
         'Europe/Kiev' => 'Istočnoevropsko vreme (Kijev)',
-        'Europe/Kirov' => 'Rusija (Kirov)',
+        'Europe/Kyiv' => 'Istočnoevropsko vreme (Kijev)',
+        'Europe/Kirov' => 'Moskva vreme (Kirov)',
         'Europe/Lisbon' => 'Zapadnoevropsko vreme (Lisabon)',
         'Europe/Ljubljana' => 'Srednjeevropsko vreme (Ljubljana)',
         'Europe/London' => 'Srednje vreme po Griniču (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samara vreme',
         'Europe/San_Marino' => 'Srednjeevropsko vreme (San Marino)',
         'Europe/Sarajevo' => 'Srednjeevropsko vreme (Sarajevo)',
-        'Europe/Saratov' => 'Moskva vreme (Saratov)',
+        'Europe/Saratov' => 'Samara vreme (Saratov)',
         'Europe/Simferopol' => 'Moskva vreme (Simferopolj)',
         'Europe/Skopje' => 'Srednjeevropsko vreme (Skoplje)',
         'Europe/Sofia' => 'Istočnoevropsko vreme (Sofija)',
         'Europe/Stockholm' => 'Srednjeevropsko vreme (Stokholm)',
         'Europe/Tallinn' => 'Istočnoevropsko vreme (Talin)',
         'Europe/Tirane' => 'Srednjeevropsko vreme (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskva vreme (Uljanovsk)',
+        'Europe/Ulyanovsk' => 'Samara vreme (Uljanovsk)',
         'Europe/Vaduz' => 'Srednjeevropsko vreme (Vaduz)',
         'Europe/Vatican' => 'Srednjeevropsko vreme (Vatikan)',
         'Europe/Vienna' => 'Srednjeevropsko vreme (Beč)',
         'Europe/Vilnius' => 'Istočnoevropsko vreme (Vilnjus)',
-        'Europe/Volgograd' => 'Volgograd vreme',
+        'Europe/Volgograd' => 'Moskva vreme (Volgograd)',
         'Europe/Warsaw' => 'Srednjeevropsko vreme (Varšava)',
         'Europe/Zagreb' => 'Srednjeevropsko vreme (Zagreb)',
         'Europe/Zurich' => 'Srednjeevropsko vreme (Cirih)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Čatam vreme',
         'Pacific/Easter' => 'Uskršnja ostrva vreme (Uskršnje ostrvo)',
         'Pacific/Efate' => 'Vanuatu vreme (Efat)',
-        'Pacific/Enderbury' => 'Feniks ostrva vreme (Enderberi)',
+        'Pacific/Enderbury' => 'Feniks ostrva vreme (Kanton)',
+        'Pacific/Kanton' => 'Feniks ostrva vreme (Kanton)',
         'Pacific/Fakaofo' => 'Tokelau vreme (Fakaofo)',
         'Pacific/Fiji' => 'Fidži vreme',
         'Pacific/Funafuti' => 'Tuvalu vreme (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Gambije vreme',
         'Pacific/Guadalcanal' => 'Solomonska Ostrva vreme (Gvadalkanal)',
         'Pacific/Guam' => 'Čamoro vreme (Guam)',
-        'Pacific/Honolulu' => 'Havajsko-aleutsko vreme (Honolulu)',
+        'Pacific/Honolulu' => 'Havajsko-aleutsko standardno vreme (Honolulu)',
         'Pacific/Kiritimati' => 'Ostrva Lajn vreme (Kiritimati)',
         'Pacific/Kosrae' => 'Košre vreme',
         'Pacific/Kwajalein' => 'Maršalska Ostrva vreme (Kvadžalejin)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Palau vreme',
         'Pacific/Pitcairn' => 'Pitkern vreme',
         'Pacific/Ponape' => 'Ponpej vreme (Ponape)',
+        'Pacific/Pohnpei' => 'Ponpej vreme (Ponape)',
         'Pacific/Port_Moresby' => 'Papua Nova Gvineja vreme (Port Morzbi)',
         'Pacific/Rarotonga' => 'Kukova ostrva vreme (Rarotonga)',
         'Pacific/Saipan' => 'Čamoro vreme (Sajpan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Gilbert ostrva vreme (Tarava)',
         'Pacific/Tongatapu' => 'Tonga vreme (Tongatapu)',
         'Pacific/Truk' => 'Čuuk vreme (Truk)',
+        'Pacific/Chuuk' => 'Čuuk vreme (Truk)',
         'Pacific/Wake' => 'Vejk ostrvo vreme',
         'Pacific/Wallis' => 'Valis i Futuna Ostrva vreme',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sr.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Источно-афричко време (Адис Абеба)',
         'Africa/Algiers' => 'Средњеевропско време (Алжир)',
         'Africa/Asmera' => 'Источно-афричко време (Асмера)',
+        'Africa/Asmara' => 'Источно-афричко време (Асмера)',
         'Africa/Bamako' => 'Средње време по Гриничу (Бамако)',
         'Africa/Bangui' => 'Западно-афричко време (Бангуи)',
         'Africa/Banjul' => 'Средње време по Гриничу (Банжул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Колумбија време (Богота)',
         'America/Boise' => 'Северноамеричко планинско време (Бојзи)',
         'America/Buenos_Aires' => 'Аргентина време (Буенос Ајрес)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина време (Буенос Ајрес)',
         'America/Cambridge_Bay' => 'Северноамеричко планинско време (Кембриџ Беј)',
         'America/Campo_Grande' => 'Амазон време (Кампо Гранде)',
         'America/Cancun' => 'Северноамеричко источно време (Канкун)',
         'America/Caracas' => 'Венецуела време (Каракас)',
         'America/Catamarca' => 'Аргентина време (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргентина време (Катамарка)',
         'America/Cayenne' => 'Француска Гвајана време (Кајен)',
         'America/Cayman' => 'Северноамеричко источно време (Кајманска Острва)',
         'America/Chicago' => 'Северноамеричко централно време (Чикаго)',
         'America/Chihuahua' => 'Северноамеричко централно време (Чихуахуа)',
         'America/Ciudad_Juarez' => 'Северноамеричко планинско време (Сиудад Хуарез)',
         'America/Coral_Harbour' => 'Северноамеричко источно време (Корал Харбур)',
+        'America/Atikokan' => 'Северноамеричко источно време (Корал Харбур)',
         'America/Cordoba' => 'Аргентина време (Кордоба)',
+        'America/Argentina/Cordoba' => 'Аргентина време (Кордоба)',
         'America/Costa_Rica' => 'Северноамеричко централно време (Костарика)',
+        'America/Coyhaique' => 'Чиле време (Којајке)',
         'America/Creston' => 'Северноамеричко планинско време (Крестон)',
         'America/Cuiaba' => 'Амазон време (Куиаба)',
         'America/Curacao' => 'Атлантско време (Курасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразилија време (Форталеза)',
         'America/Glace_Bay' => 'Атлантско време (Глејс Беј)',
         'America/Godthab' => 'Гренланд (Готхаб)',
+        'America/Nuuk' => 'Гренланд (Готхаб)',
         'America/Goose_Bay' => 'Атлантско време (Гус Беј)',
         'America/Grand_Turk' => 'Северноамеричко источно време (Гранд Турк)',
         'America/Grenada' => 'Атлантско време (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Северноамеричко источно време (Винценес, Индијана)',
         'America/Indiana/Winamac' => 'Северноамеричко источно време (Винамак, Индијана)',
         'America/Indianapolis' => 'Северноамеричко источно време (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Северноамеричко источно време (Индианаполис)',
         'America/Inuvik' => 'Северноамеричко планинско време (Инувик)',
         'America/Iqaluit' => 'Северноамеричко источно време (Иквалуит)',
         'America/Jamaica' => 'Северноамеричко источно време (Јамајка)',
         'America/Jujuy' => 'Аргентина време (Жужуи)',
+        'America/Argentina/Jujuy' => 'Аргентина време (Жужуи)',
         'America/Juneau' => 'Аљаска (Жуно)',
         'America/Kentucky/Monticello' => 'Северноамеричко источно време (Монтичело, Кентаки)',
         'America/Kralendijk' => 'Атлантско време (Кралендајк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перу време (Лима)',
         'America/Los_Angeles' => 'Северноамеричко пацифичко време (Лос Анђелес)',
         'America/Louisville' => 'Северноамеричко источно време (Луивиле)',
+        'America/Kentucky/Louisville' => 'Северноамеричко источно време (Луивиле)',
         'America/Lower_Princes' => 'Атлантско време (Лоуер Принсиз Квортер)',
         'America/Maceio' => 'Бразилија време (Масејо)',
         'America/Managua' => 'Северноамеричко централно време (Манагва)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Северноамеричко централно време (Матаморос)',
         'America/Mazatlan' => 'Мексички Пацифик (Мазатлан)',
         'America/Mendoza' => 'Аргентина време (Мендоса)',
+        'America/Argentina/Mendoza' => 'Аргентина време (Мендоса)',
         'America/Menominee' => 'Северноамеричко централно време (Меномини)',
         'America/Merida' => 'Северноамеричко централно време (Мерида)',
         'America/Metlakatla' => 'Аљаска (Метлакатла)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Арабијско време (Аден)',
         'Asia/Almaty' => 'Казахстанско време (Алмати)',
         'Asia/Amman' => 'Источноевропско време (Аман)',
-        'Asia/Anadyr' => 'Анадир време',
+        'Asia/Anadyr' => 'Петропавловско-камчатско време (Анадир)',
         'Asia/Aqtau' => 'Казахстанско време (Актау)',
         'Asia/Aqtobe' => 'Казахстанско време (Акутобе)',
         'Asia/Ashgabat' => 'Туркменистан време (Ашхабад)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Арабијско време (Бахреин)',
         'Asia/Baku' => 'Азербејџан време (Баку)',
         'Asia/Bangkok' => 'Индокина време (Бангкок)',
-        'Asia/Barnaul' => 'Русија (Барнаул)',
+        'Asia/Barnaul' => 'Краснојарск време (Барнаул)',
         'Asia/Beirut' => 'Источноевропско време (Бејрут)',
         'Asia/Bishkek' => 'Киргистан време (Бишкек)',
         'Asia/Brunei' => 'Брунеј Дарусалум време',
         'Asia/Calcutta' => 'Индијско стандардно време (Калкута)',
+        'Asia/Kolkata' => 'Индијско стандардно време (Калкута)',
         'Asia/Chita' => 'Јакутск време (Чита)',
         'Asia/Colombo' => 'Индијско стандардно време (Коломбо)',
         'Asia/Damascus' => 'Источноевропско време (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Петропавловско-камчатско време (Камчатка)',
         'Asia/Karachi' => 'Пакистан време (Карачи)',
         'Asia/Katmandu' => 'Непал време (Катманду)',
+        'Asia/Kathmandu' => 'Непал време (Катманду)',
         'Asia/Khandyga' => 'Јакутск време (Хандига)',
         'Asia/Krasnoyarsk' => 'Краснојарск време',
         'Asia/Kuala_Lumpur' => 'Малезија време (Куала Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Заливско време (Мускат)',
         'Asia/Nicosia' => 'Источноевропско време (Никозија)',
         'Asia/Novokuznetsk' => 'Краснојарск време (Новокузњецк)',
-        'Asia/Novosibirsk' => 'Новосибирск време',
+        'Asia/Novosibirsk' => 'Краснојарск време (Новосибирск)',
         'Asia/Omsk' => 'Омск време',
         'Asia/Oral' => 'Казахстанско време (Орал)',
         'Asia/Phnom_Penh' => 'Индокина време (Пном Пен)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Казахстанско време (Костанај)',
         'Asia/Qyzylorda' => 'Казахстанско време (Кизилорда)',
         'Asia/Rangoon' => 'Мијанмар време (Рангун)',
+        'Asia/Yangon' => 'Мијанмар време (Рангун)',
         'Asia/Riyadh' => 'Арабијско време (Ријад)',
         'Asia/Saigon' => 'Индокина време (Хо Ши Мин)',
-        'Asia/Sakhalin' => 'Сахалин време',
+        'Asia/Ho_Chi_Minh' => 'Индокина време (Хо Ши Мин)',
+        'Asia/Sakhalin' => 'Магадан време (Сахалин)',
         'Asia/Samarkand' => 'Узбекистан време (Самарканд)',
         'Asia/Seoul' => 'Корејско време (Сеул)',
         'Asia/Shanghai' => 'Кина време (Шангај)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Иран време (Техеран)',
         'Asia/Thimphu' => 'Бутан време (Тимпу)',
         'Asia/Tokyo' => 'Јапанско време (Токио)',
-        'Asia/Tomsk' => 'Русија (Томск)',
+        'Asia/Tomsk' => 'Краснојарск време (Томск)',
         'Asia/Ulaanbaatar' => 'Улан Батор време',
         'Asia/Urumqi' => 'Кина (Урумћи)',
         'Asia/Ust-Nera' => 'Владивосток време (Уст-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Западноевропско време (Канарска острва)',
         'Atlantic/Cape_Verde' => 'Зеленортска Острва време',
         'Atlantic/Faeroe' => 'Западноевропско време (Фарска Острва)',
+        'Atlantic/Faroe' => 'Западноевропско време (Фарска Острва)',
         'Atlantic/Madeira' => 'Западноевропско време (Мадеира)',
         'Atlantic/Reykjavik' => 'Средње време по Гриничу (Рејкјавик)',
         'Atlantic/South_Georgia' => 'Јужна Џорџија време',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Координисано универзално време',
         'Europe/Amsterdam' => 'Средњеевропско време (Амстердам)',
         'Europe/Andorra' => 'Средњеевропско време (Андора)',
-        'Europe/Astrakhan' => 'Москва време (Астракан)',
+        'Europe/Astrakhan' => 'Самара време (Астракан)',
         'Europe/Athens' => 'Источноевропско време (Атина)',
         'Europe/Belgrade' => 'Средњеевропско време (Београд)',
         'Europe/Berlin' => 'Средњеевропско време (Берлин)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Средње време по Гриничу (Гернзи)',
         'Europe/Helsinki' => 'Источноевропско време (Хелсинки)',
         'Europe/Isle_of_Man' => 'Средње време по Гриничу (Острво Ман)',
-        'Europe/Istanbul' => 'Турска (Истанбул)',
+        'Europe/Istanbul' => 'Турска време (Истанбул)',
         'Europe/Jersey' => 'Средње време по Гриничу (Џерзи)',
         'Europe/Kaliningrad' => 'Источноевропско време (Калињинград)',
         'Europe/Kiev' => 'Источноевропско време (Кијев)',
-        'Europe/Kirov' => 'Русија (Киров)',
+        'Europe/Kyiv' => 'Источноевропско време (Кијев)',
+        'Europe/Kirov' => 'Москва време (Киров)',
         'Europe/Lisbon' => 'Западноевропско време (Лисабон)',
         'Europe/Ljubljana' => 'Средњеевропско време (Љубљана)',
         'Europe/London' => 'Средње време по Гриничу (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Самара време',
         'Europe/San_Marino' => 'Средњеевропско време (Сан Марино)',
         'Europe/Sarajevo' => 'Средњеевропско време (Сарајево)',
-        'Europe/Saratov' => 'Москва време (Саратов)',
+        'Europe/Saratov' => 'Самара време (Саратов)',
         'Europe/Simferopol' => 'Москва време (Симферопољ)',
         'Europe/Skopje' => 'Средњеевропско време (Скопље)',
         'Europe/Sofia' => 'Источноевропско време (Софија)',
         'Europe/Stockholm' => 'Средњеевропско време (Стокхолм)',
         'Europe/Tallinn' => 'Источноевропско време (Талин)',
         'Europe/Tirane' => 'Средњеевропско време (Тирана)',
-        'Europe/Ulyanovsk' => 'Москва време (Уљановск)',
+        'Europe/Ulyanovsk' => 'Самара време (Уљановск)',
         'Europe/Vaduz' => 'Средњеевропско време (Вадуз)',
         'Europe/Vatican' => 'Средњеевропско време (Ватикан)',
         'Europe/Vienna' => 'Средњеевропско време (Беч)',
         'Europe/Vilnius' => 'Источноевропско време (Вилњус)',
-        'Europe/Volgograd' => 'Волгоград време',
+        'Europe/Volgograd' => 'Москва време (Волгоград)',
         'Europe/Warsaw' => 'Средњеевропско време (Варшава)',
         'Europe/Zagreb' => 'Средњеевропско време (Загреб)',
         'Europe/Zurich' => 'Средњеевропско време (Цирих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Чатам време',
         'Pacific/Easter' => 'Ускршња острва време (Ускршње острво)',
         'Pacific/Efate' => 'Вануату време (Ефат)',
-        'Pacific/Enderbury' => 'Феникс острва време (Ендербери)',
+        'Pacific/Enderbury' => 'Феникс острва време (Кантон)',
+        'Pacific/Kanton' => 'Феникс острва време (Кантон)',
         'Pacific/Fakaofo' => 'Токелау време (Факаофо)',
         'Pacific/Fiji' => 'Фиџи време',
         'Pacific/Funafuti' => 'Тувалу време (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Гамбије време',
         'Pacific/Guadalcanal' => 'Соломонска Острва време (Гвадалканал)',
         'Pacific/Guam' => 'Чаморо време (Гуам)',
-        'Pacific/Honolulu' => 'Хавајско-алеутско време (Хонолулу)',
+        'Pacific/Honolulu' => 'Хавајско-алеутско стандардно време (Хонолулу)',
         'Pacific/Kiritimati' => 'Острва Лајн време (Киритимати)',
         'Pacific/Kosrae' => 'Кошре време',
         'Pacific/Kwajalein' => 'Маршалска Острва време (Кваџалејин)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Палау време',
         'Pacific/Pitcairn' => 'Питкерн време',
         'Pacific/Ponape' => 'Понпеј време (Понапе)',
+        'Pacific/Pohnpei' => 'Понпеј време (Понапе)',
         'Pacific/Port_Moresby' => 'Папуа Нова Гвинеја време (Порт Морзби)',
         'Pacific/Rarotonga' => 'Кукова острва време (Раротонга)',
         'Pacific/Saipan' => 'Чаморо време (Сајпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Гилберт острва време (Тарава)',
         'Pacific/Tongatapu' => 'Тонга време (Тонгатапу)',
         'Pacific/Truk' => 'Чуук време (Трук)',
+        'Pacific/Chuuk' => 'Чуук време (Трук)',
         'Pacific/Wake' => 'Вејк острво време',
         'Pacific/Wallis' => 'Валис и Футуна Острва време',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/st.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/st.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/st.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/st.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
         'Africa/Dakar' => 'Greenwich Mean Time (Dakar)',
         'Africa/Freetown' => 'Greenwich Mean Time (Freetown)',
         'Africa/Johannesburg' => 'Afrika Borwa Nako (Johannesburg)',
-        'Africa/Lome' => 'Greenwich Mean Time (Lome)',
+        'Africa/Lome' => 'Greenwich Mean Time (Lomé)',
         'Africa/Maseru' => 'Lesotho Nako (Maseru)',
         'Africa/Monrovia' => 'Greenwich Mean Time (Monrovia)',
         'Africa/Nouakchott' => 'Greenwich Mean Time (Nouakchott)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/su.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/su.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/su.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/su.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,9 +13,9 @@
         'Africa/Ceuta' => 'Waktu Éropa Tengah (Ceuta)',
         'Africa/Conakry' => 'Waktu Greenwich (Conakry)',
         'Africa/Dakar' => 'Waktu Greenwich (Dakar)',
-        'Africa/El_Aaiun' => 'Waktu Éropa Barat (El Aaiun)',
+        'Africa/El_Aaiun' => 'Waktu Éropa Barat (El Aaiún)',
         'Africa/Freetown' => 'Waktu Greenwich (Freetown)',
-        'Africa/Lome' => 'Waktu Greenwich (Lome)',
+        'Africa/Lome' => 'Waktu Greenwich (Lomé)',
         'Africa/Monrovia' => 'Waktu Greenwich (Monrovia)',
         'Africa/Nouakchott' => 'Waktu Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'Waktu Greenwich (Ouagadougou)',
@@ -26,16 +26,16 @@
         'America/Anchorage' => 'Amérika Sarikat (Anchorage)',
         'America/Anguilla' => 'Waktu Atlantik (Anguilla)',
         'America/Antigua' => 'Waktu Atlantik (Antigua)',
-        'America/Araguaina' => 'Brasil (Araguaina)',
+        'America/Araguaina' => 'Brasil (Araguaína)',
         'America/Aruba' => 'Waktu Atlantik (Aruba)',
         'America/Bahia' => 'Brasil (Bahia)',
         'America/Bahia_Banderas' => 'Waktu Tengah (Bahía de Banderas)',
         'America/Barbados' => 'Waktu Atlantik (Barbados)',
-        'America/Belem' => 'Brasil (Belem)',
+        'America/Belem' => 'Brasil (Belém)',
         'America/Belize' => 'Waktu Tengah (Belize)',
         'America/Blanc-Sablon' => 'Waktu Atlantik (Blanc-Sablon)',
         'America/Boa_Vista' => 'Brasil (Boa Vista)',
-        'America/Bogota' => 'Waktu Kolombia (Bogota)',
+        'America/Bogota' => 'Waktu Kolombia (Bogotá)',
         'America/Boise' => 'Waktu Pagunungan (Boise)',
         'America/Cambridge_Bay' => 'Waktu Pagunungan (Cambridge Bay)',
         'America/Campo_Grande' => 'Brasil (Campo Grande)',
@@ -45,9 +45,10 @@
         'America/Chihuahua' => 'Waktu Tengah (Chihuahua)',
         'America/Ciudad_Juarez' => 'Waktu Pagunungan (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Waktu Wétan (Atikokan)',
+        'America/Atikokan' => 'Waktu Wétan (Atikokan)',
         'America/Costa_Rica' => 'Waktu Tengah (Costa Rica)',
         'America/Creston' => 'Waktu Pagunungan (Creston)',
-        'America/Cuiaba' => 'Brasil (Cuiaba)',
+        'America/Cuiaba' => 'Brasil (Cuiabá)',
         'America/Curacao' => 'Waktu Atlantik (Curaçao)',
         'America/Danmarkshavn' => 'Waktu Greenwich (Danmarkshavn)',
         'America/Dawson_Creek' => 'Waktu Pagunungan (Dawson Creek)',
@@ -55,7 +56,7 @@
         'America/Detroit' => 'Waktu Wétan (Detroit)',
         'America/Dominica' => 'Waktu Atlantik (Dominica)',
         'America/Edmonton' => 'Waktu Pagunungan (Edmonton)',
-        'America/Eirunepe' => 'Brasil (Eirunepe)',
+        'America/Eirunepe' => 'Brasil (Eirunepé)',
         'America/El_Salvador' => 'Waktu Tengah (El Salvador)',
         'America/Fort_Nelson' => 'Waktu Pagunungan (Fort Nelson)',
         'America/Fortaleza' => 'Brasil (Fortaleza)',
@@ -74,6 +75,7 @@
         'America/Indiana/Vincennes' => 'Waktu Wétan (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Waktu Wétan (Winamac, Indiana)',
         'America/Indianapolis' => 'Waktu Wétan (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Waktu Wétan (Indianapolis)',
         'America/Inuvik' => 'Waktu Pagunungan (Inuvik)',
         'America/Iqaluit' => 'Waktu Wétan (Iqaluit)',
         'America/Jamaica' => 'Waktu Wétan (Jamaica)',
@@ -82,8 +84,9 @@
         'America/Kralendijk' => 'Waktu Atlantik (Kralendijk)',
         'America/Los_Angeles' => 'Waktu Pasifik (Los Angeles)',
         'America/Louisville' => 'Waktu Wétan (Louisville)',
+        'America/Kentucky/Louisville' => 'Waktu Wétan (Louisville)',
         'America/Lower_Princes' => 'Waktu Atlantik (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasil (Maceio)',
+        'America/Maceio' => 'Brasil (Maceió)',
         'America/Managua' => 'Waktu Tengah (Managua)',
         'America/Manaus' => 'Brasil (Manaus)',
         'America/Marigot' => 'Waktu Atlantik (Marigot)',
@@ -92,7 +95,7 @@
         'America/Menominee' => 'Waktu Tengah (Menominee)',
         'America/Merida' => 'Waktu Tengah (Mérida)',
         'America/Metlakatla' => 'Amérika Sarikat (Metlakatla)',
-        'America/Mexico_City' => 'Waktu Tengah (Mexico City)',
+        'America/Mexico_City' => 'Waktu Tengah (Ciudad de México)',
         'America/Moncton' => 'Waktu Atlantik (Moncton)',
         'America/Monterrey' => 'Waktu Tengah (Monterrey)',
         'America/Montserrat' => 'Waktu Atlantik (Montserrat)',
@@ -115,9 +118,9 @@
         'America/Regina' => 'Waktu Tengah (Regina)',
         'America/Resolute' => 'Waktu Tengah (Resolute)',
         'America/Rio_Branco' => 'Brasil (Rio Branco)',
-        'America/Santarem' => 'Brasil (Santarem)',
+        'America/Santarem' => 'Brasil (Santarém)',
         'America/Santo_Domingo' => 'Waktu Atlantik (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasil (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brasil (São Paulo)',
         'America/Sitka' => 'Amérika Sarikat (Sitka)',
         'America/St_Barthelemy' => 'Waktu Atlantik (St. Barthélemy)',
         'America/St_Kitts' => 'Waktu Atlantik (St. Kitts)',
@@ -140,6 +143,7 @@
         'Asia/Barnaul' => 'Rusia (Barnaul)',
         'Asia/Beirut' => 'Waktu Éropa Timur (Beirut)',
         'Asia/Calcutta' => 'India (Kolkata)',
+        'Asia/Kolkata' => 'India (Kolkata)',
         'Asia/Chita' => 'Rusia (Chita)',
         'Asia/Damascus' => 'Waktu Éropa Timur (Damascus)',
         'Asia/Famagusta' => 'Waktu Éropa Timur (Famagusta)',
@@ -163,14 +167,15 @@
         'Asia/Srednekolymsk' => 'Rusia (Srednekolymsk)',
         'Asia/Tokyo' => 'Jepang (Tokyo)',
         'Asia/Tomsk' => 'Rusia (Tomsk)',
-        'Asia/Urumqi' => 'Tiongkok (Urumqi)',
+        'Asia/Urumqi' => 'Tiongkok (Ürümqi)',
         'Asia/Ust-Nera' => 'Rusia (Ust-Nera)',
         'Asia/Vladivostok' => 'Rusia (Vladivostok)',
         'Asia/Yakutsk' => 'Rusia (Yakutsk)',
         'Asia/Yekaterinburg' => 'Rusia (Yekaterinburg)',
         'Atlantic/Bermuda' => 'Waktu Atlantik (Bermuda)',
-        'Atlantic/Canary' => 'Waktu Éropa Barat (Canary)',
+        'Atlantic/Canary' => 'Waktu Éropa Barat (Canarias)',
         'Atlantic/Faeroe' => 'Waktu Éropa Barat (Faroe)',
+        'Atlantic/Faroe' => 'Waktu Éropa Barat (Faroe)',
         'Atlantic/Madeira' => 'Waktu Éropa Barat (Madeira)',
         'Atlantic/Reykjavik' => 'Waktu Greenwich (Reykjavik)',
         'Atlantic/St_Helena' => 'Waktu Greenwich (St. Helena)',
@@ -186,8 +191,8 @@
         'Europe/Brussels' => 'Waktu Éropa Tengah (Brussels)',
         'Europe/Bucharest' => 'Waktu Éropa Timur (Bucharest)',
         'Europe/Budapest' => 'Waktu Éropa Tengah (Budapest)',
-        'Europe/Busingen' => 'Waktu Éropa Tengah (Busingen)',
-        'Europe/Chisinau' => 'Waktu Éropa Timur (Chisinau)',
+        'Europe/Busingen' => 'Waktu Éropa Tengah (Büsingen)',
+        'Europe/Chisinau' => 'Waktu Éropa Timur (Chișinău)',
         'Europe/Copenhagen' => 'Waktu Éropa Tengah (Copenhagen)',
         'Europe/Dublin' => 'Waktu Greenwich (Dublin)',
         'Europe/Gibraltar' => 'Waktu Éropa Tengah (Gibraltar)',
@@ -197,6 +202,7 @@
         'Europe/Jersey' => 'Waktu Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Waktu Éropa Timur (Kaliningrad)',
         'Europe/Kiev' => 'Waktu Éropa Timur (Kyiv)',
+        'Europe/Kyiv' => 'Waktu Éropa Timur (Kyiv)',
         'Europe/Kirov' => 'Rusia (Kirov)',
         'Europe/Lisbon' => 'Waktu Éropa Barat (Lisbon)',
         'Europe/Ljubljana' => 'Waktu Éropa Tengah (Ljubljana)',
@@ -221,7 +227,7 @@
         'Europe/Sofia' => 'Waktu Éropa Timur (Sofia)',
         'Europe/Stockholm' => 'Waktu Éropa Tengah (Stockholm)',
         'Europe/Tallinn' => 'Waktu Éropa Timur (Tallinn)',
-        'Europe/Tirane' => 'Waktu Éropa Tengah (Tirane)',
+        'Europe/Tirane' => 'Waktu Éropa Tengah (Tirana)',
         'Europe/Ulyanovsk' => 'Rusia (Ulyanovsk)',
         'Europe/Vaduz' => 'Waktu Éropa Tengah (Vaduz)',
         'Europe/Vatican' => 'Waktu Éropa Tengah (Vatican)',
@@ -231,7 +237,7 @@
         'Europe/Warsaw' => 'Waktu Éropa Tengah (Warsaw)',
         'Europe/Zagreb' => 'Waktu Éropa Tengah (Zagreb)',
         'Europe/Zurich' => 'Waktu Éropa Tengah (Zurich)',
-        'Pacific/Galapagos' => 'Waktu Galapagos',
+        'Pacific/Galapagos' => 'Waktu Galapagos (Galápagos)',
         'Pacific/Honolulu' => 'Amérika Sarikat (Honolulu)',
     ],
     'Meta' => [],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sv.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'östafrikansk tid (Addis Abeba)',
         'Africa/Algiers' => 'centraleuropeisk tid (Alger)',
         'Africa/Asmera' => 'östafrikansk tid (Asmara)',
+        'Africa/Asmara' => 'östafrikansk tid (Asmara)',
         'Africa/Bamako' => 'Greenwichtid (Bamako)',
         'Africa/Bangui' => 'västafrikansk tid (Bangui)',
         'Africa/Banjul' => 'Greenwichtid (Banjul)',
@@ -54,7 +55,7 @@
         'Africa/Tripoli' => 'östeuropeisk tid (Tripoli)',
         'Africa/Tunis' => 'centraleuropeisk tid (Tunis)',
         'Africa/Windhoek' => 'centralafrikansk tid (Windhoek)',
-        'America/Adak' => 'Honolulutid (Adak)',
+        'America/Adak' => 'aleutisk tid (Adak)',
         'America/Anchorage' => 'Alaskatid (Anchorage)',
         'America/Anguilla' => 'nordamerikansk atlanttid (Anguilla)',
         'America/Antigua' => 'nordamerikansk atlanttid (Antigua)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'colombiansk tid (Bogotá)',
         'America/Boise' => 'Klippiga bergentid (Boise)',
         'America/Buenos_Aires' => 'östargentinsk tid (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'östargentinsk tid (Buenos Aires)',
         'America/Cambridge_Bay' => 'Klippiga bergentid (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazonastid (Campo Grande)',
         'America/Cancun' => 'östnordamerikansk tid (Cancún)',
         'America/Caracas' => 'venezuelansk tid (Caracas)',
         'America/Catamarca' => 'östargentinsk tid (Catamarca)',
+        'America/Argentina/Catamarca' => 'östargentinsk tid (Catamarca)',
         'America/Cayenne' => 'Franska Guyanatid (Cayenne)',
         'America/Cayman' => 'östnordamerikansk tid (Caymanöarna)',
         'America/Chicago' => 'centralnordamerikansk tid (Chicago)',
         'America/Chihuahua' => 'centralnordamerikansk tid (Chihuahua)',
         'America/Ciudad_Juarez' => 'Klippiga bergentid (Ciudad Juárez)',
         'America/Coral_Harbour' => 'östnordamerikansk tid (Atikokan)',
+        'America/Atikokan' => 'östnordamerikansk tid (Atikokan)',
         'America/Cordoba' => 'östargentinsk tid (Córdoba)',
+        'America/Argentina/Cordoba' => 'östargentinsk tid (Córdoba)',
         'America/Costa_Rica' => 'centralnordamerikansk tid (Costa Rica)',
+        'America/Coyhaique' => 'chilensk tid (Coyhaique)',
         'America/Creston' => 'Klippiga bergentid (Creston)',
         'America/Cuiaba' => 'Amazonastid (Cuiabá)',
         'America/Curacao' => 'nordamerikansk atlanttid (Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Brasiliatid (Fortaleza)',
         'America/Glace_Bay' => 'nordamerikansk atlanttid (Glace Bay)',
         'America/Godthab' => 'Grönlandtid (Nuuk)',
+        'America/Nuuk' => 'Grönlandtid (Nuuk)',
         'America/Goose_Bay' => 'nordamerikansk atlanttid (Goose Bay)',
         'America/Grand_Turk' => 'östnordamerikansk tid (Grand Turk)',
         'America/Grenada' => 'nordamerikansk atlanttid (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'östnordamerikansk tid (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'östnordamerikansk tid (Winamac, Indiana)',
         'America/Indianapolis' => 'östnordamerikansk tid (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'östnordamerikansk tid (Indianapolis)',
         'America/Inuvik' => 'Klippiga bergentid (Inuvik)',
         'America/Iqaluit' => 'östnordamerikansk tid (Iqaluit)',
         'America/Jamaica' => 'östnordamerikansk tid (Jamaica)',
         'America/Jujuy' => 'östargentinsk tid (San Salvador de Jujuy)',
+        'America/Argentina/Jujuy' => 'östargentinsk tid (San Salvador de Jujuy)',
         'America/Juneau' => 'Alaskatid (Juneau)',
         'America/Kentucky/Monticello' => 'östnordamerikansk tid (Monticello, Kentucky)',
         'America/Kralendijk' => 'nordamerikansk atlanttid (Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'peruansk tid (Lima)',
         'America/Los_Angeles' => 'västnordamerikansk tid (Los Angeles)',
         'America/Louisville' => 'östnordamerikansk tid (Louisville)',
+        'America/Kentucky/Louisville' => 'östnordamerikansk tid (Louisville)',
         'America/Lower_Princes' => 'nordamerikansk atlanttid (Lower Prince’s Quarter)',
         'America/Maceio' => 'Brasiliatid (Maceió)',
         'America/Managua' => 'centralnordamerikansk tid (Managua)',
@@ -145,10 +155,11 @@
         'America/Matamoros' => 'centralnordamerikansk tid (Matamoros)',
         'America/Mazatlan' => 'mexikansk stillahavstid (Mazatlán)',
         'America/Mendoza' => 'östargentinsk tid (Mendoza)',
+        'America/Argentina/Mendoza' => 'östargentinsk tid (Mendoza)',
         'America/Menominee' => 'centralnordamerikansk tid (Menominee)',
         'America/Merida' => 'centralnordamerikansk tid (Mérida)',
         'America/Metlakatla' => 'Alaskatid (Metlakatla)',
-        'America/Mexico_City' => 'centralnordamerikansk tid (Mexico City)',
+        'America/Mexico_City' => 'centralnordamerikansk tid (Ciudad de México)',
         'America/Miquelon' => 'Saint-Pierre-et-Miquelon-tid',
         'America/Moncton' => 'nordamerikansk atlanttid (Moncton)',
         'America/Monterrey' => 'centralnordamerikansk tid (Monterrey)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'nyzeeländsk tid (McMurdo)',
         'Antarctica/Palmer' => 'chilensk tid (Palmer)',
         'Antarctica/Rothera' => 'Rotheratid',
-        'Antarctica/Syowa' => 'Syowatid',
+        'Antarctica/Syowa' => 'Syowatid (Showa)',
         'Antarctica/Troll' => 'Greenwichtid (Troll)',
         'Antarctica/Vostok' => 'Vostoktid',
         'Arctic/Longyearbyen' => 'centraleuropeisk tid (Longyearbyen)',
         'Asia/Aden' => 'saudiarabisk tid (Aden)',
         'Asia/Almaty' => 'kazakstansk tid (Almaty)',
         'Asia/Amman' => 'östeuropeisk tid (Amman)',
-        'Asia/Anadyr' => 'Anadyrtid',
+        'Asia/Anadyr' => 'Kamtjatkatid (Anadyr)',
         'Asia/Aqtau' => 'kazakstansk tid (Aktau)',
         'Asia/Aqtobe' => 'kazakstansk tid (Aqtöbe)',
         'Asia/Ashgabat' => 'turkmensk tid (Asjchabad)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'saudiarabisk tid (Bahrain)',
         'Asia/Baku' => 'azerbajdzjansk tid (Baku)',
         'Asia/Bangkok' => 'indokinesisk tid (Bangkok)',
-        'Asia/Barnaul' => 'Rysslandtid (Barnaul)',
+        'Asia/Barnaul' => 'Krasnojarsktid (Barnaul)',
         'Asia/Beirut' => 'östeuropeisk tid (Beirut)',
         'Asia/Bishkek' => 'kirgizisk tid (Bisjkek)',
         'Asia/Brunei' => 'Bruneitid',
         'Asia/Calcutta' => 'indisk tid (Kolkata)',
+        'Asia/Kolkata' => 'indisk tid (Kolkata)',
         'Asia/Chita' => 'Jakutsktid (Tjita)',
         'Asia/Colombo' => 'indisk tid (Colombo)',
         'Asia/Damascus' => 'östeuropeisk tid (Damaskus)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Kamtjatkatid',
         'Asia/Karachi' => 'pakistansk tid (Karachi)',
         'Asia/Katmandu' => 'nepalesisk tid (Katmandu)',
+        'Asia/Kathmandu' => 'nepalesisk tid (Katmandu)',
         'Asia/Khandyga' => 'Jakutsktid (Chandyga)',
         'Asia/Krasnoyarsk' => 'Krasnojarsktid',
         'Asia/Kuala_Lumpur' => 'malaysisk tid (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Persiska vikentid (Muskat)',
         'Asia/Nicosia' => 'östeuropeisk tid (Nicosia)',
         'Asia/Novokuznetsk' => 'Krasnojarsktid (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsktid',
+        'Asia/Novosibirsk' => 'Krasnojarsktid (Novosibirsk)',
         'Asia/Omsk' => 'Omsktid',
         'Asia/Oral' => 'kazakstansk tid (Oral)',
         'Asia/Phnom_Penh' => 'indokinesisk tid (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'kazakstansk tid (Kostanaj)',
         'Asia/Qyzylorda' => 'kazakstansk tid (Qyzylorda)',
         'Asia/Rangoon' => 'burmesisk tid (Yangon)',
+        'Asia/Yangon' => 'burmesisk tid (Yangon)',
         'Asia/Riyadh' => 'saudiarabisk tid (Riyadh)',
         'Asia/Saigon' => 'indokinesisk tid (Ho Chi Minh-staden)',
-        'Asia/Sakhalin' => 'Sachalintid',
+        'Asia/Ho_Chi_Minh' => 'indokinesisk tid (Ho Chi Minh-staden)',
+        'Asia/Sakhalin' => 'Magadantid (Sachalin)',
         'Asia/Samarkand' => 'uzbekisk tid (Samarkand)',
         'Asia/Seoul' => 'koreansk tid (Seoul)',
         'Asia/Shanghai' => 'kinesisk tid (Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'iransk tid (Teheran)',
         'Asia/Thimphu' => 'bhutansk tid (Thimphu)',
         'Asia/Tokyo' => 'japansk tid (Tokyo)',
-        'Asia/Tomsk' => 'Rysslandtid (Tomsk)',
+        'Asia/Tomsk' => 'Krasnojarsktid (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulaanbaatartid',
         'Asia/Urumqi' => 'Kinatid (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostoktid (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'västeuropeisk tid (Kanarieöarna)',
         'Atlantic/Cape_Verde' => 'Kap Verdetid',
         'Atlantic/Faeroe' => 'västeuropeisk tid (Torshamn)',
+        'Atlantic/Faroe' => 'västeuropeisk tid (Torshamn)',
         'Atlantic/Madeira' => 'västeuropeisk tid (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwichtid (Reykjavik)',
         'Atlantic/South_Georgia' => 'sydgeorgisk tid (Sydgeorgien)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'koordinerad universell tid',
         'Europe/Amsterdam' => 'centraleuropeisk tid (Amsterdam)',
         'Europe/Andorra' => 'centraleuropeisk tid (Andorra)',
-        'Europe/Astrakhan' => 'Moskvatid (Astrakhan)',
+        'Europe/Astrakhan' => 'Samaratid (Astrakhan)',
         'Europe/Athens' => 'östeuropeisk tid (Aten)',
         'Europe/Belgrade' => 'centraleuropeisk tid (Belgrad)',
         'Europe/Berlin' => 'centraleuropeisk tid (Berlin)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'Greenwichtid (Guernsey)',
         'Europe/Helsinki' => 'östeuropeisk tid (Helsingfors)',
         'Europe/Isle_of_Man' => 'Greenwichtid (Isle of Man)',
-        'Europe/Istanbul' => 'Turkiettid (Istanbul)',
+        'Europe/Istanbul' => 'turkisk tid (Istanbul)',
         'Europe/Jersey' => 'Greenwichtid (Jersey)',
         'Europe/Kaliningrad' => 'östeuropeisk tid (Kaliningrad)',
         'Europe/Kiev' => 'östeuropeisk tid (Kiev)',
-        'Europe/Kirov' => 'Rysslandtid (Kirov)',
+        'Europe/Kyiv' => 'östeuropeisk tid (Kiev)',
+        'Europe/Kirov' => 'Moskvatid (Kirov)',
         'Europe/Lisbon' => 'västeuropeisk tid (Lissabon)',
         'Europe/Ljubljana' => 'centraleuropeisk tid (Ljubljana)',
         'Europe/London' => 'Greenwichtid (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samaratid',
         'Europe/San_Marino' => 'centraleuropeisk tid (San Marino)',
         'Europe/Sarajevo' => 'centraleuropeisk tid (Sarajevo)',
-        'Europe/Saratov' => 'Moskvatid (Saratov)',
+        'Europe/Saratov' => 'Samaratid (Saratov)',
         'Europe/Simferopol' => 'Moskvatid (Simferopol)',
         'Europe/Skopje' => 'centraleuropeisk tid (Skopje)',
         'Europe/Sofia' => 'östeuropeisk tid (Sofia)',
         'Europe/Stockholm' => 'centraleuropeisk tid (Stockholm)',
         'Europe/Tallinn' => 'östeuropeisk tid (Tallinn)',
         'Europe/Tirane' => 'centraleuropeisk tid (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskvatid (Uljanovsk)',
+        'Europe/Ulyanovsk' => 'Samaratid (Uljanovsk)',
         'Europe/Vaduz' => 'centraleuropeisk tid (Vaduz)',
         'Europe/Vatican' => 'centraleuropeisk tid (Vatikanen)',
         'Europe/Vienna' => 'centraleuropeisk tid (Wien)',
         'Europe/Vilnius' => 'östeuropeisk tid (Vilnius)',
-        'Europe/Volgograd' => 'Volgogradtid',
+        'Europe/Volgograd' => 'Moskvatid (Volgograd)',
         'Europe/Warsaw' => 'centraleuropeisk tid (Warszawa)',
         'Europe/Zagreb' => 'centraleuropeisk tid (Zagreb)',
         'Europe/Zurich' => 'centraleuropeisk tid (Zürich)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Chathamtid',
         'Pacific/Easter' => 'Påskötid (Påskön)',
         'Pacific/Efate' => 'Vanuatutid (Efate)',
-        'Pacific/Enderbury' => 'Enderburytid',
+        'Pacific/Enderbury' => 'Enderburytid (Kantonatollen)',
+        'Pacific/Kanton' => 'Enderburytid (Kantonatollen)',
         'Pacific/Fakaofo' => 'Tokelautid (Fakaofo)',
         'Pacific/Fiji' => 'Fijitid',
         'Pacific/Funafuti' => 'Tuvalutid (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Gambiertid (Gambieröarna)',
         'Pacific/Guadalcanal' => 'Salomonöarnas tid (Guadalcanal)',
         'Pacific/Guam' => 'Chamorrotid (Guam)',
-        'Pacific/Honolulu' => 'Honolulutid',
+        'Pacific/Honolulu' => 'Honolulu, normaltid',
         'Pacific/Kiritimati' => 'Lineöarnas tid (Kiritimati)',
         'Pacific/Kosrae' => 'Kosraetid',
         'Pacific/Kwajalein' => 'Marshallöarnas tid (Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Palautid',
         'Pacific/Pitcairn' => 'Pitcairntid (Pitcairnöarna)',
         'Pacific/Ponape' => 'Ponapetid (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponapetid (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papua Nya Guineas tid (Port Moresby)',
         'Pacific/Rarotonga' => 'Cooköarnas tid (Rarotonga)',
         'Pacific/Saipan' => 'Chamorrotid (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Kiribatitid (Tarawa)',
         'Pacific/Tongatapu' => 'Tongatid (Tongatapu)',
         'Pacific/Truk' => 'Chuuktid',
+        'Pacific/Chuuk' => 'Chuuktid',
         'Pacific/Wake' => 'Wakeöarnas tid',
         'Pacific/Wallis' => 'Wallis- och Futunaöarnas tid (Wallisön)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sw_KE.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sw_KE.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sw_KE.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sw_KE.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,21 +2,24 @@
 
 return [
     'Names' => [
-        'America/Araguaina' => 'Saa za Brazili (Araguaina)',
+        'America/Araguaina' => 'Saa za Brazili (Araguaína)',
         'America/Argentina/La_Rioja' => 'Saa za Ajentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Saa za Ajentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Saa za Ajentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Saa za Ajentina (Salta)',
         'America/Argentina/San_Juan' => 'Saa za Ajentina (San Juan)',
         'America/Argentina/San_Luis' => 'Saa za Ajentina (San Luis)',
-        'America/Argentina/Tucuman' => 'Saa za Ajentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Saa za Ajentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Saa za Ajentina (Ushuaia)',
         'America/Bahia' => 'Saa za Brazili (Bahia)',
         'America/Barbados' => 'Saa za Atlantiki (Babados)',
-        'America/Belem' => 'Saa za Brazili (Belem)',
+        'America/Belem' => 'Saa za Brazili (Belém)',
         'America/Buenos_Aires' => 'Saa za Ajentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Saa za Ajentina (Buenos Aires)',
         'America/Catamarca' => 'Saa za Ajentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Saa za Ajentina (Catamarca)',
         'America/Cayenne' => 'Saa za Guiana (Cayenne)',
-        'America/Cordoba' => 'Saa za Ajentina (Cordoba)',
+        'America/Cordoba' => 'Saa za Ajentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Saa za Ajentina (Córdoba)',
         'America/Costa_Rica' => 'Saa za Kati (Kostarika)',
         'America/Curacao' => 'Saa za Atlantiki (kurakao)',
         'America/Dominica' => 'Saa za Atlantiki (Dominika)',
@@ -25,16 +28,18 @@
         'America/Guadeloupe' => 'Saa za Atlantiki (Guadalupe)',
         'America/Jamaica' => 'Saa za Mashariki (Jamaika)',
         'America/Jujuy' => 'Saa za Ajentina (Jujuy)',
-        'America/Maceio' => 'Saa za Brazili (Maceio)',
+        'America/Argentina/Jujuy' => 'Saa za Ajentina (Jujuy)',
+        'America/Maceio' => 'Saa za Brazili (Maceió)',
         'America/Mendoza' => 'Saa za Ajentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Saa za Ajentina (Mendoza)',
         'America/North_Dakota/Beulah' => 'Saa za Kati (Beulah, Dakota Kaskazini)',
         'America/North_Dakota/Center' => 'Saa za Kati (Center, Dakota Kaskazini)',
         'America/North_Dakota/New_Salem' => 'Saa za Kati (New Salem, Dakota Kaskazini)',
         'America/Port_of_Spain' => 'Saa za Atlantiki (Bandari ya Uhispania)',
         'America/Puerto_Rico' => 'Saa za Atlantiki (Pwetoriko)',
         'America/Recife' => 'Saa za Brazili (Recife)',
-        'America/Santarem' => 'Saa za Brazili (Santarem)',
-        'America/Sao_Paulo' => 'Saa za Brazili (Sao Paulo)',
+        'America/Santarem' => 'Saa za Brazili (Santarém)',
+        'America/Sao_Paulo' => 'Saa za Brazili (São Paulo)',
         'Antarctica/McMurdo' => 'Saa za Nyuzilandi (McMurdo)',
         'Asia/Ashgabat' => 'Saa za Turkmenistani (Ashgabat)',
         'Asia/Baku' => 'Saa za Azabajani (Baku)',
@@ -45,12 +50,15 @@
         'Asia/Kabul' => 'Saa za Afghanistani (Kabul)',
         'Asia/Karachi' => 'Saa za Pakistani (Karachi)',
         'Asia/Katmandu' => 'Saa za Nepali (Kathmandu)',
+        'Asia/Kathmandu' => 'Saa za Nepali (Kathmandu)',
         'Asia/Kuala_Lumpur' => 'Saa za Malesia (Kuala Lumpur)',
         'Asia/Kuching' => 'Saa za Malesia (Kuching)',
         'Asia/Macau' => 'Saa za Uchina (Makao)',
         'Asia/Muscat' => 'Saa za Wastani za Ghuba (Muscat)',
         'Asia/Rangoon' => 'Saa za Myanma (Yangon)',
+        'Asia/Yangon' => 'Saa za Myanma (Yangon)',
         'Asia/Saigon' => 'Saa za Indochina (Jiji la Ho Chi Minh)',
+        'Asia/Ho_Chi_Minh' => 'Saa za Indochina (Jiji la Ho Chi Minh)',
         'Asia/Samarkand' => 'Saa za Uzbekistani (Samarkand)',
         'Asia/Singapore' => 'Saa za Wastani za Singapoo',
         'Asia/Tashkent' => 'Saa za Uzbekistani (Tashkent)',
@@ -68,8 +76,9 @@
         'Indian/Maldives' => 'Saa za Maldivi',
         'Pacific/Auckland' => 'Saa za Nyuzilandi (Auckland)',
         'Pacific/Bougainville' => 'Saa za Papua (Bougainville)',
-        'Pacific/Enderbury' => 'Saa za Visiwa vya Finiksi (Enderbury)',
-        'Pacific/Noumea' => 'Saa za Kaledonia Mpya (Noumea)',
+        'Pacific/Enderbury' => 'Saa za Visiwa vya Finiksi (Canton)',
+        'Pacific/Kanton' => 'Saa za Visiwa vya Finiksi (Canton)',
+        'Pacific/Noumea' => 'Saa za Kaledonia Mpya (Nouméa)',
         'Pacific/Port_Moresby' => 'Saa za Papua (Port Moresby)',
     ],
     'Meta' => [],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/sw.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Saa za Afrika Mashariki (Addis Ababa)',
         'Africa/Algiers' => 'Saa za Ulaya ya Kati (Algiers)',
         'Africa/Asmera' => 'Saa za Afrika Mashariki (Asmara)',
+        'Africa/Asmara' => 'Saa za Afrika Mashariki (Asmara)',
         'Africa/Bamako' => 'Saa za Greenwich (Bamako)',
         'Africa/Bangui' => 'Saa za Afrika Magharibi (Bangui)',
         'Africa/Banjul' => 'Saa za Greenwich (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Saa za Afrika Mashariki (Dar es Salaam)',
         'Africa/Djibouti' => 'Saa za Afrika Mashariki (Djibouti)',
         'Africa/Douala' => 'Saa za Afrika Magharibi (Douala)',
-        'Africa/El_Aaiun' => 'Saa za Magharibi mwa Ulaya (El Aaiun)',
+        'Africa/El_Aaiun' => 'Saa za Magharibi mwa Ulaya (El Aaiún)',
         'Africa/Freetown' => 'Saa za Greenwich (Freetown)',
         'Africa/Gaborone' => 'Saa za Afrika ya Kati (Gaborone)',
         'Africa/Harare' => 'Saa za Afrika ya Kati (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Saa za Afrika Magharibi (Kinshasa)',
         'Africa/Lagos' => 'Saa za Afrika Magharibi (Lagos)',
         'Africa/Libreville' => 'Saa za Afrika Magharibi (Libreville)',
-        'Africa/Lome' => 'Saa za Greenwich (Lome)',
+        'Africa/Lome' => 'Saa za Greenwich (Lomé)',
         'Africa/Luanda' => 'Saa za Afrika Magharibi (Luanda)',
         'Africa/Lubumbashi' => 'Saa za Afrika ya Kati (Lubumbashi)',
         'Africa/Lusaka' => 'Saa za Afrika ya Kati (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Saa za Afrika Mashariki (Mogadishu)',
         'Africa/Monrovia' => 'Saa za Greenwich (Monrovia)',
         'Africa/Nairobi' => 'Saa za Afrika Mashariki (Nairobi)',
-        'Africa/Ndjamena' => 'Saa za Afrika Magharibi (Ndjamena)',
+        'Africa/Ndjamena' => 'Saa za Afrika Magharibi (N’Djamena)',
         'Africa/Niamey' => 'Saa za Afrika Magharibi (Niamey)',
         'Africa/Nouakchott' => 'Saa za Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'Saa za Greenwich (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Saa za Alaska (Anchorage)',
         'America/Anguilla' => 'Saa za Atlantiki (Anguilla)',
         'America/Antigua' => 'Saa za Atlantiki (Antigua)',
-        'America/Araguaina' => 'Saa za Brasilia (Araguaina)',
+        'America/Araguaina' => 'Saa za Brasilia (Araguaína)',
         'America/Argentina/La_Rioja' => 'Saa za Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Saa za Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Saa za Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Saa za Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Saa za Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Saa za Argentina (San Luis)',
-        'America/Argentina/Tucuman' => 'Saa za Argentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Saa za Argentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Saa za Argentina (Ushuaia)',
         'America/Aruba' => 'Saa za Atlantiki (Aruba)',
         'America/Asuncion' => 'Saa za Paragwai (Asunción)',
         'America/Bahia' => 'Saa za Brasilia (Bahia)',
         'America/Bahia_Banderas' => 'Saa za Kati (Bahia Banderas)',
         'America/Barbados' => 'Saa za Atlantiki (Barbados)',
-        'America/Belem' => 'Saa za Brasilia (Belem)',
+        'America/Belem' => 'Saa za Brasilia (Belém)',
         'America/Belize' => 'Saa za Kati (Belize)',
         'America/Blanc-Sablon' => 'Saa za Atlantiki (Blanc-Sablon)',
         'America/Boa_Vista' => 'Saa za Amazon (Boa Vista)',
-        'America/Bogota' => 'Saa za Kolombia (Bogota)',
+        'America/Bogota' => 'Saa za Kolombia (Bogotá)',
         'America/Boise' => 'Saa za Mountain (Boise)',
         'America/Buenos_Aires' => 'Saa za Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Saa za Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Saa za Mountain (Cambridge Bay)',
         'America/Campo_Grande' => 'Saa za Amazon (Campo Grande)',
         'America/Cancun' => 'Saa za Mashariki (Cancun)',
         'America/Caracas' => 'Saa za Venezuela (Caracas)',
         'America/Catamarca' => 'Saa za Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Saa za Argentina (Catamarca)',
         'America/Cayenne' => 'Saa za Guiana ya Ufaransa (Cayenne)',
         'America/Cayman' => 'Saa za Mashariki (Cayman)',
         'America/Chicago' => 'Saa za Kati (Chicago)',
         'America/Chihuahua' => 'Saa za Kati (Chihuahua)',
         'America/Ciudad_Juarez' => 'Saa za Mountain (Ciudad Juarez)',
         'America/Coral_Harbour' => 'Saa za Mashariki (Atikokan)',
-        'America/Cordoba' => 'Saa za Argentina (Cordoba)',
+        'America/Atikokan' => 'Saa za Mashariki (Atikokan)',
+        'America/Cordoba' => 'Saa za Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Saa za Argentina (Córdoba)',
         'America/Costa_Rica' => 'Saa za Kati (Costa Rica)',
+        'America/Coyhaique' => 'Saa za Chile (Coyhaique)',
         'America/Creston' => 'Saa za Mountain (Creston)',
-        'America/Cuiaba' => 'Saa za Amazon (Cuiaba)',
+        'America/Cuiaba' => 'Saa za Amazon (Cuiabá)',
         'America/Curacao' => 'Saa za Atlantiki (Curaçao)',
         'America/Danmarkshavn' => 'Saa za Greenwich (Danmarkshavn)',
         'America/Dawson' => 'Saa za Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Saa za Mashariki (Detroit)',
         'America/Dominica' => 'Saa za Atlantiki (Dominica)',
         'America/Edmonton' => 'Saa za Mountain (Edmonton)',
-        'America/Eirunepe' => 'Saa za Brazil (Eirunepe)',
+        'America/Eirunepe' => 'Saa za Brazil (Eirunepé)',
         'America/El_Salvador' => 'Saa za Kati (El Salvador)',
         'America/Fort_Nelson' => 'Saa za Mountain (Fort Nelson)',
         'America/Fortaleza' => 'Saa za Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'Saa za Atlantiki (Glace Bay)',
         'America/Godthab' => 'Saa za Greenland (Nuuk)',
+        'America/Nuuk' => 'Saa za Greenland (Nuuk)',
         'America/Goose_Bay' => 'Saa za Atlantiki (Goose Bay)',
         'America/Grand_Turk' => 'Saa za Mashariki (Grand Turk)',
         'America/Grenada' => 'Saa za Atlantiki (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Saa za Mashariki (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Saa za Mashariki (Winamac, Indiana)',
         'America/Indianapolis' => 'Saa za Mashariki (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Saa za Mashariki (Indianapolis)',
         'America/Inuvik' => 'Saa za Mountain (Inuvik)',
         'America/Iqaluit' => 'Saa za Mashariki (Iqaluit)',
         'America/Jamaica' => 'Saa za Mashariki (Jamaica)',
         'America/Jujuy' => 'Saa za Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Saa za Argentina (Jujuy)',
         'America/Juneau' => 'Saa za Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Saa za Mashariki (Monticello, Kentucky)',
         'America/Kralendijk' => 'Saa za Atlantiki (Kralendijk)',
@@ -136,15 +145,17 @@
         'America/Lima' => 'Saa za Peru (Lima)',
         'America/Los_Angeles' => 'Saa za Pasifiki (Los Angeles)',
         'America/Louisville' => 'Saa za Mashariki (Louisville)',
+        'America/Kentucky/Louisville' => 'Saa za Mashariki (Louisville)',
         'America/Lower_Princes' => 'Saa za Atlantiki (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Saa za Brasilia (Maceio)',
+        'America/Maceio' => 'Saa za Brasilia (Maceió)',
         'America/Managua' => 'Saa za Kati (Managua)',
         'America/Manaus' => 'Saa za Amazon (Manaus)',
         'America/Marigot' => 'Saa za Atlantiki (Marigot)',
         'America/Martinique' => 'Saa za Atlantiki (Martinique)',
         'America/Matamoros' => 'Saa za Kati (Matamoros)',
-        'America/Mazatlan' => 'Saa za pasifiki za Meksiko (Mazatlan)',
+        'America/Mazatlan' => 'Saa za pasifiki za Meksiko (Mazatlán)',
         'America/Mendoza' => 'Saa za Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Saa za Argentina (Mendoza)',
         'America/Menominee' => 'Saa za Kati (Menominee)',
         'America/Merida' => 'Saa za Kati (Merida)',
         'America/Metlakatla' => 'Saa za Alaska (Metlakatla)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Saa za Kati (Regina)',
         'America/Resolute' => 'Saa za Kati (Resolute)',
         'America/Rio_Branco' => 'Saa za Brazil (Rio Branco)',
-        'America/Santarem' => 'Saa za Brasilia (Santarem)',
+        'America/Santarem' => 'Saa za Brasilia (Santarém)',
         'America/Santiago' => 'Saa za Chile (Santiago)',
         'America/Santo_Domingo' => 'Saa za Atlantiki (Santo Domingo)',
-        'America/Sao_Paulo' => 'Saa za Brasilia (Sao Paulo)',
+        'America/Sao_Paulo' => 'Saa za Brasilia (São Paulo)',
         'America/Scoresbysund' => 'Saa za Greenland (Ittoqqortoormiit)',
         'America/Sitka' => 'Saa za Alaska (Sitka)',
         'America/St_Barthelemy' => 'Saa za Atlantiki (St. Barthélemy)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Saa za New Zealand (McMurdo)',
         'Antarctica/Palmer' => 'Saa za Chile (Palmer)',
         'Antarctica/Rothera' => 'Saa za Rothera',
-        'Antarctica/Syowa' => 'Saa za Syowa',
+        'Antarctica/Syowa' => 'Saa za Syowa (Showa)',
         'Antarctica/Troll' => 'Saa za Greenwich (Troll)',
         'Antarctica/Vostok' => 'Saa za Vostok',
         'Arctic/Longyearbyen' => 'Saa za Ulaya ya Kati (Longyearbyen)',
         'Asia/Aden' => 'Saa za Uarabuni (Aden)',
         'Asia/Almaty' => 'Saa za Kazakhstan (Almaty)',
         'Asia/Amman' => 'Saa za Mashariki mwa Ulaya (Amman)',
-        'Asia/Anadyr' => 'Saa za Anadyr',
+        'Asia/Anadyr' => 'Saa za Petropavlovsk-Kamchatski (Anadyr)',
         'Asia/Aqtau' => 'Saa za Kazakhstan (Aqtau)',
         'Asia/Aqtobe' => 'Saa za Kazakhstan (Aqtobe)',
         'Asia/Ashgabat' => 'Saa za Turkmenistan (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Saa za Uarabuni (Bahrain)',
         'Asia/Baku' => 'Saa za Azerbaijan (Baku)',
         'Asia/Bangkok' => 'Saa za Indochina (Bangkok)',
-        'Asia/Barnaul' => 'Saa za Urusi (Barnaul)',
+        'Asia/Barnaul' => 'Saa za Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Saa za Mashariki mwa Ulaya (Beirut)',
         'Asia/Bishkek' => 'Saa za Kyrgystan (Bishkek)',
         'Asia/Brunei' => 'Saa za Brunei Darussalam',
         'Asia/Calcutta' => 'Saa za Wastani za India (Kolkata)',
+        'Asia/Kolkata' => 'Saa za Wastani za India (Kolkata)',
         'Asia/Chita' => 'Saa za Yakutsk (Chita)',
         'Asia/Colombo' => 'Saa za Wastani za India (Colombo)',
         'Asia/Damascus' => 'Saa za Mashariki mwa Ulaya (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Saa za Mashariki mwa Ulaya (Gaza)',
         'Asia/Hebron' => 'Saa za Mashariki mwa Ulaya (Hebron)',
         'Asia/Hong_Kong' => 'Saa za Hong Kong',
-        'Asia/Hovd' => 'Saa za Hovd',
+        'Asia/Hovd' => 'Saa za Hovd (Khovd)',
         'Asia/Irkutsk' => 'Saa za Irkutsk',
         'Asia/Jakarta' => 'Saa za Magharibi mwa Indonesia (Jakarta)',
         'Asia/Jayapura' => 'Saa za Mashariki mwa Indonesia (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Saa za Petropavlovsk-Kamchatski (Kamchatka)',
         'Asia/Karachi' => 'Saa za Pakistan (Karachi)',
         'Asia/Katmandu' => 'Saa za Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Saa za Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Saa za Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Saa za Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Saa za Malaysia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Saa za Wastani za Gulf (Muscat)',
         'Asia/Nicosia' => 'Saa za Mashariki mwa Ulaya (Nicosia)',
         'Asia/Novokuznetsk' => 'Saa za Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Saa za Novosibirsk',
+        'Asia/Novosibirsk' => 'Saa za Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Saa za Omsk',
         'Asia/Oral' => 'Saa za Kazakhstan (Oral)',
         'Asia/Phnom_Penh' => 'Saa za Indochina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Saa za Kazakhstan (Kostanay)',
         'Asia/Qyzylorda' => 'Saa za Kazakhstan (Qyzylorda)',
         'Asia/Rangoon' => 'Saa za Myanmar (Rangoon)',
+        'Asia/Yangon' => 'Saa za Myanmar (Rangoon)',
         'Asia/Riyadh' => 'Saa za Uarabuni (Riyadh)',
         'Asia/Saigon' => 'Saa za Indochina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Saa za Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Saa za Indochina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Saa za Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Saa za Uzbekistan (Samarkand)',
         'Asia/Seoul' => 'Saa za Korea (Seoul)',
         'Asia/Shanghai' => 'Saa za Uchina (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Saa za Iran (Tehran)',
         'Asia/Thimphu' => 'Saa za Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Saa za Japan (Tokyo)',
-        'Asia/Tomsk' => 'Saa za Urusi (Tomsk)',
+        'Asia/Tomsk' => 'Saa za Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Saa za Ulan Bator (Ulaanbaatar)',
-        'Asia/Urumqi' => 'Saa za Uchina (Urumqi)',
+        'Asia/Urumqi' => 'Saa za Uchina (Ürümqi)',
         'Asia/Ust-Nera' => 'Saa za Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Saa za Indochina (Vientiane)',
         'Asia/Vladivostok' => 'Saa za Vladivostok',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Saa za Armenia (Yerevan)',
         'Atlantic/Azores' => 'Saa za Azores',
         'Atlantic/Bermuda' => 'Saa za Atlantiki (Bermuda)',
-        'Atlantic/Canary' => 'Saa za Magharibi mwa Ulaya (Canary)',
+        'Atlantic/Canary' => 'Saa za Magharibi mwa Ulaya (Canarias)',
         'Atlantic/Cape_Verde' => 'Saa za Cape Verde',
         'Atlantic/Faeroe' => 'Saa za Magharibi mwa Ulaya (Faroe)',
+        'Atlantic/Faroe' => 'Saa za Magharibi mwa Ulaya (Faroe)',
         'Atlantic/Madeira' => 'Saa za Magharibi mwa Ulaya (Madeira)',
         'Atlantic/Reykjavik' => 'Saa za Greenwich (Reykjavik)',
         'Atlantic/South_Georgia' => 'Saa za Georgia Kusini',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Mfumo wa kuratibu saa ulimwenguni',
         'Europe/Amsterdam' => 'Saa za Ulaya ya Kati (Amsterdam)',
         'Europe/Andorra' => 'Saa za Ulaya ya Kati (Andorra)',
-        'Europe/Astrakhan' => 'Saa za Moscow (Astrakhan)',
+        'Europe/Astrakhan' => 'Saa za Samara (Astrakhan)',
         'Europe/Athens' => 'Saa za Mashariki mwa Ulaya (Athens)',
         'Europe/Belgrade' => 'Saa za Ulaya ya Kati (Belgrade)',
         'Europe/Berlin' => 'Saa za Ulaya ya Kati (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Saa za Ulaya ya Kati (Brussels)',
         'Europe/Bucharest' => 'Saa za Mashariki mwa Ulaya (Bucharest)',
         'Europe/Budapest' => 'Saa za Ulaya ya Kati (Budapest)',
-        'Europe/Busingen' => 'Saa za Ulaya ya Kati (Busingen)',
-        'Europe/Chisinau' => 'Saa za Mashariki mwa Ulaya (Chisinau)',
+        'Europe/Busingen' => 'Saa za Ulaya ya Kati (Büsingen)',
+        'Europe/Chisinau' => 'Saa za Mashariki mwa Ulaya (Chișinău)',
         'Europe/Copenhagen' => 'Saa za Ulaya ya Kati (Copenhagen)',
         'Europe/Dublin' => 'Saa za Greenwich (Dublin)',
         'Europe/Gibraltar' => 'Saa za Ulaya ya Kati (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Saa za Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Saa za Mashariki mwa Ulaya (Kaliningrad)',
         'Europe/Kiev' => 'Saa za Mashariki mwa Ulaya (Kiev)',
-        'Europe/Kirov' => 'Saa za Urusi (Kirov)',
+        'Europe/Kyiv' => 'Saa za Mashariki mwa Ulaya (Kiev)',
+        'Europe/Kirov' => 'Saa za Moscow (Kirov)',
         'Europe/Lisbon' => 'Saa za Magharibi mwa Ulaya (Lisbon)',
         'Europe/Ljubljana' => 'Saa za Ulaya ya Kati (Ljubljana)',
         'Europe/London' => 'Saa za Greenwich (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Saa za Samara',
         'Europe/San_Marino' => 'Saa za Ulaya ya Kati (San Marino)',
         'Europe/Sarajevo' => 'Saa za Ulaya ya Kati (Sarajevo)',
-        'Europe/Saratov' => 'Saa za Moscow (Saratov)',
+        'Europe/Saratov' => 'Saa za Samara (Saratov)',
         'Europe/Simferopol' => 'Saa za Moscow (Simferopol)',
         'Europe/Skopje' => 'Saa za Ulaya ya Kati (Skopje)',
         'Europe/Sofia' => 'Saa za Mashariki mwa Ulaya (Sofia)',
         'Europe/Stockholm' => 'Saa za Ulaya ya Kati (Stockholm)',
         'Europe/Tallinn' => 'Saa za Mashariki mwa Ulaya (Tallinn)',
-        'Europe/Tirane' => 'Saa za Ulaya ya Kati (Tirane)',
-        'Europe/Ulyanovsk' => 'Saa za Moscow (Ulyanovsk)',
+        'Europe/Tirane' => 'Saa za Ulaya ya Kati (Tirana)',
+        'Europe/Ulyanovsk' => 'Saa za Samara (Ulyanovsk)',
         'Europe/Vaduz' => 'Saa za Ulaya ya Kati (Vaduz)',
         'Europe/Vatican' => 'Saa za Ulaya ya Kati (Vatican)',
         'Europe/Vienna' => 'Saa za Ulaya ya Kati (Vienna)',
         'Europe/Vilnius' => 'Saa za Mashariki mwa Ulaya (Vilnius)',
-        'Europe/Volgograd' => 'Saa za Volgograd',
+        'Europe/Volgograd' => 'Saa za Moscow (Volgograd)',
         'Europe/Warsaw' => 'Saa za Ulaya ya Kati (Warsaw)',
         'Europe/Zagreb' => 'Saa za Ulaya ya Kati (Zagreb)',
         'Europe/Zurich' => 'Saa za Ulaya ya Kati (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Saa za Bahari Hindi (Chagos)',
         'Indian/Christmas' => 'Saa za Kisiwa cha Krismasi (Christmas)',
         'Indian/Cocos' => 'Saa za Visiwa vya Cocos',
-        'Indian/Comoro' => 'Saa za Afrika Mashariki (Comoro)',
+        'Indian/Comoro' => 'Saa za Afrika Mashariki (Comores)',
         'Indian/Kerguelen' => 'Saa za Kusini mwa Ufaransa na Antaktiki (Kerguelen)',
-        'Indian/Mahe' => 'Saa za Ushelisheli (Mahe)',
+        'Indian/Mahe' => 'Saa za Ushelisheli (Mahé)',
         'Indian/Maldives' => 'Saa za Maldives',
         'Indian/Mauritius' => 'Saa za Morisi (Mauritius)',
         'Indian/Mayotte' => 'Saa za Afrika Mashariki (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Saa za Chatham',
         'Pacific/Easter' => 'Saa za Kisiwa cha Easter',
         'Pacific/Efate' => 'Saa za Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Saa za Visiwa vya Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Saa za Visiwa vya Phoenix (Canton)',
+        'Pacific/Kanton' => 'Saa za Visiwa vya Phoenix (Canton)',
         'Pacific/Fakaofo' => 'Saa za Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Saa za Fiji',
         'Pacific/Funafuti' => 'Saa za Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Saa za Galapagos',
+        'Pacific/Galapagos' => 'Saa za Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Saa za Gambier',
         'Pacific/Guadalcanal' => 'Saa za Visiwa vya Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Saa za Wastani za Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Saa za Hawaii-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Saa za Wastani za Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Saa za Visiwa vya Line (Kiritimati)',
         'Pacific/Kosrae' => 'Saa za Kosrae',
         'Pacific/Kwajalein' => 'Saa za Visiwa vya Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Saa za Nauru',
         'Pacific/Niue' => 'Saa za Niue',
         'Pacific/Norfolk' => 'Saa za Kisiwa cha Norfolk',
-        'Pacific/Noumea' => 'Saa za New Caledonia (Noumea)',
+        'Pacific/Noumea' => 'Saa za New Caledonia (Nouméa)',
         'Pacific/Pago_Pago' => 'Saa za Samoa (Pago Pago)',
         'Pacific/Palau' => 'Saa za Palau',
         'Pacific/Pitcairn' => 'Saa za Pitcairn',
         'Pacific/Ponape' => 'Saa za Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Saa za Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Saa za Papua New Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'Saa za Visiwa vya Cook (Rarotonga)',
         'Pacific/Saipan' => 'Saa za Wastani za Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Saa za Visiwa vya Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Saa za Tonga (Tongatapu)',
         'Pacific/Truk' => 'Saa za Chuuk',
+        'Pacific/Chuuk' => 'Saa za Chuuk',
         'Pacific/Wake' => 'Saa za Kisiwa cha Wake',
-        'Pacific/Wallis' => 'Saa za Wallis na Futuna',
+        'Pacific/Wallis' => 'Saa za Wallis na Futuna (Wallis & Futuna)',
     ],
     'Meta' => [
         'GmtFormat' => 'GMT %s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ta.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'கிழக்கு ஆப்பிரிக்க நேரம் (அடிஸ் அபாபா)',
         'Africa/Algiers' => 'மத்திய ஐரோப்பிய நேரம் (அல்ஜியர்ஸ்)',
         'Africa/Asmera' => 'கிழக்கு ஆப்பிரிக்க நேரம் (அஸ்மாரா)',
+        'Africa/Asmara' => 'கிழக்கு ஆப்பிரிக்க நேரம் (அஸ்மாரா)',
         'Africa/Bamako' => 'கிரீன்விச் சராசரி நேரம் (பமாகோ)',
         'Africa/Bangui' => 'மேற்கு ஆப்பிரிக்க நேரம் (பாங்குயீ)',
         'Africa/Banjul' => 'கிரீன்விச் சராசரி நேரம் (பஞ்சுல்)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'கொலம்பியா நேரம் (போகோடா)',
         'America/Boise' => 'மவுன்டைன் நேரம் (போய்ஸ்)',
         'America/Buenos_Aires' => 'அர்ஜென்டினா நேரம் (ப்யூனோஸ் ஏர்ஸ்)',
+        'America/Argentina/Buenos_Aires' => 'அர்ஜென்டினா நேரம் (ப்யூனோஸ் ஏர்ஸ்)',
         'America/Cambridge_Bay' => 'மவுன்டைன் நேரம் (கேம்பிரிட்ஜ் வளைகுடா)',
         'America/Campo_Grande' => 'அமேசான் நேரம் (கேம்போ கிராண்டே)',
         'America/Cancun' => 'கிழக்கத்திய நேரம் (கன்குன்)',
         'America/Caracas' => 'வெனிசுலா நேரம் (கரகாஸ்)',
         'America/Catamarca' => 'அர்ஜென்டினா நேரம் (கடமார்கா)',
+        'America/Argentina/Catamarca' => 'அர்ஜென்டினா நேரம் (கடமார்கா)',
         'America/Cayenne' => 'ஃபிரஞ்சு கயானா நேரம் (கெய்ன்)',
         'America/Cayman' => 'கிழக்கத்திய நேரம் (கேமன்)',
         'America/Chicago' => 'மத்திய நேரம் (சிகாகோ)',
         'America/Chihuahua' => 'மத்திய நேரம் (சுவாவா)',
         'America/Ciudad_Juarez' => 'மவுன்டைன் நேரம் (சியுடாட் வாரஸ்)',
         'America/Coral_Harbour' => 'கிழக்கத்திய நேரம் (அடிகோகன்)',
+        'America/Atikokan' => 'கிழக்கத்திய நேரம் (அடிகோகன்)',
         'America/Cordoba' => 'அர்ஜென்டினா நேரம் (கார்டோபா)',
+        'America/Argentina/Cordoba' => 'அர்ஜென்டினா நேரம் (கார்டோபா)',
         'America/Costa_Rica' => 'மத்திய நேரம் (கோஸ்டா ரிகா)',
+        'America/Coyhaique' => 'சிலி நேரம் (கொயாய்கே)',
         'America/Creston' => 'மவுன்டைன் நேரம் (க்ரெஸ்டான்)',
         'America/Cuiaba' => 'அமேசான் நேரம் (குயாபே)',
         'America/Curacao' => 'அட்லாண்டிக் நேரம் (க்யூராகோ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'பிரேசிலியா நேரம் (ஃபோர்டாலெசா)',
         'America/Glace_Bay' => 'அட்லாண்டிக் நேரம் (கிலேஸ் வளைகுடா)',
         'America/Godthab' => 'கிரீன்லாந்து நேரம் (நூக்)',
+        'America/Nuuk' => 'கிரீன்லாந்து நேரம் (நூக்)',
         'America/Goose_Bay' => 'அட்லாண்டிக் நேரம் (கூஸ் பே)',
         'America/Grand_Turk' => 'கிழக்கத்திய நேரம் (கிராண்ட் டர்க்)',
         'America/Grenada' => 'அட்லாண்டிக் நேரம் (கிரனடா)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'கிழக்கத்திய நேரம் (வின்செனேஸ், இண்டியானா)',
         'America/Indiana/Winamac' => 'கிழக்கத்திய நேரம் (வினாமேக், இண்டியானா)',
         'America/Indianapolis' => 'கிழக்கத்திய நேரம் (இண்டியானாபொலிஸ்)',
+        'America/Indiana/Indianapolis' => 'கிழக்கத்திய நேரம் (இண்டியானாபொலிஸ்)',
         'America/Inuvik' => 'மவுன்டைன் நேரம் (இனுவிக்)',
         'America/Iqaluit' => 'கிழக்கத்திய நேரம் (இகாலூயித்)',
         'America/Jamaica' => 'கிழக்கத்திய நேரம் (ஜமைக்கா)',
         'America/Jujuy' => 'அர்ஜென்டினா நேரம் (ஜூஜுய்)',
+        'America/Argentina/Jujuy' => 'அர்ஜென்டினா நேரம் (ஜூஜுய்)',
         'America/Juneau' => 'அலாஸ்கா நேரம் (ஜுனியூ)',
         'America/Kentucky/Monticello' => 'கிழக்கத்திய நேரம் (மான்டிசெல்லோ, கென்டகி)',
         'America/Kralendijk' => 'அட்லாண்டிக் நேரம் (கிரெலன்டிஜ்)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'பெரு நேரம் (லிமா)',
         'America/Los_Angeles' => 'பசிபிக் நேரம் (லாஸ் ஏஞ்சல்ஸ்)',
         'America/Louisville' => 'கிழக்கத்திய நேரம் (லூயிஸ்வில்லே)',
+        'America/Kentucky/Louisville' => 'கிழக்கத்திய நேரம் (லூயிஸ்வில்லே)',
         'America/Lower_Princes' => 'அட்லாண்டிக் நேரம் (லோயர் பிரின்ஸஸ் குவார்ட்டர்)',
         'America/Maceio' => 'பிரேசிலியா நேரம் (மேசியோ)',
         'America/Managua' => 'மத்திய நேரம் (மானாகுவா)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'மத்திய நேரம் (மடமோராஸ்)',
         'America/Mazatlan' => 'மெக்ஸிகன் பசிபிக் நேரம் (மஸட்லன்)',
         'America/Mendoza' => 'அர்ஜென்டினா நேரம் (மென்டோஸா)',
+        'America/Argentina/Mendoza' => 'அர்ஜென்டினா நேரம் (மென்டோஸா)',
         'America/Menominee' => 'மத்திய நேரம் (மெனோமினி)',
         'America/Merida' => 'மத்திய நேரம் (மெரிடா)',
         'America/Metlakatla' => 'அலாஸ்கா நேரம் (மெட்லகட்லா)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'அரேபிய நேரம் (ஏடன்)',
         'Asia/Almaty' => 'கஜகஸ்தான் நேரம் (அல்மாதி)',
         'Asia/Amman' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (அம்மான்)',
-        'Asia/Anadyr' => 'அனடீர் நேரம்',
+        'Asia/Anadyr' => 'பெட்ரோபவ்லோவ்ஸ்க் கம்சட்ஸ்கி நேரம் (அனடீர்)',
         'Asia/Aqtau' => 'கஜகஸ்தான் நேரம் (அக்தவ்)',
         'Asia/Aqtobe' => 'கஜகஸ்தான் நேரம் (அக்டோப்)',
         'Asia/Ashgabat' => 'துர்க்மெனிஸ்தான் நேரம் (அஷ்காபாத்)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'அரேபிய நேரம் (பஹ்ரைன்)',
         'Asia/Baku' => 'அசர்பைஜான் நேரம் (பாக்கூ)',
         'Asia/Bangkok' => 'இந்தோசீன நேரம் (பாங்காக்)',
-        'Asia/Barnaul' => 'ரஷ்யா நேரம் (பார்னால்)',
+        'Asia/Barnaul' => 'க்ரஸ்னோயார்ஸ்க் நேரம் (பார்னால்)',
         'Asia/Beirut' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (பெய்ரூட்)',
         'Asia/Bishkek' => 'கிர்கிஸ்தான் நேரம் (பிஷ்கெக்)',
         'Asia/Brunei' => 'புருனே டருஸ்ஸலாம் நேரம்',
         'Asia/Calcutta' => 'இந்திய நிலையான நேரம் (கொல்கத்தா)',
+        'Asia/Kolkata' => 'இந்திய நிலையான நேரம் (கொல்கத்தா)',
         'Asia/Chita' => 'யகுட்ஸ்க் நேரம் (சிடா)',
         'Asia/Colombo' => 'இந்திய நிலையான நேரம் (கொழும்பு)',
         'Asia/Damascus' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (டமாஸ்கஸ்)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'பெட்ரோபவ்லோவ்ஸ்க் கம்சட்ஸ்கி நேரம் (காம்சட்கா)',
         'Asia/Karachi' => 'பாகிஸ்தான் நேரம் (கராச்சி)',
         'Asia/Katmandu' => 'நேபாள நேரம் (காத்மாண்டு)',
+        'Asia/Kathmandu' => 'நேபாள நேரம் (காத்மாண்டு)',
         'Asia/Khandyga' => 'யகுட்ஸ்க் நேரம் (கான்டிகா)',
         'Asia/Krasnoyarsk' => 'க்ரஸ்னோயார்ஸ்க் நேரம் (கிராஸ்னோயார்க்ஸ்)',
         'Asia/Kuala_Lumpur' => 'மலேஷிய நேரம் (கோலாலம்பூர்)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'வளைகுடா நிலையான நேரம் (மஸ்கட்)',
         'Asia/Nicosia' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (நிகோசியா)',
         'Asia/Novokuznetsk' => 'க்ரஸ்னோயார்ஸ்க் நேரம் (நோவோகுஸ்நெட்ஸ்க்)',
-        'Asia/Novosibirsk' => 'நோவோசிபிரிஸ்க் நேரம் (நோவோசீபிர்ஸ்க்)',
+        'Asia/Novosibirsk' => 'க்ரஸ்னோயார்ஸ்க் நேரம் (நோவோசீபிர்ஸ்க்)',
         'Asia/Omsk' => 'ஓம்ஸ்க் நேரம்',
         'Asia/Oral' => 'கஜகஸ்தான் நேரம் (ஓரல்)',
         'Asia/Phnom_Penh' => 'இந்தோசீன நேரம் (ஃப்னோம் பென்)',
@@ -268,21 +281,23 @@
         'Asia/Qostanay' => 'கஜகஸ்தான் நேரம் (கோஸ்டானே)',
         'Asia/Qyzylorda' => 'கஜகஸ்தான் நேரம் (கிஸிலோர்டா)',
         'Asia/Rangoon' => 'மியான்மர் நேரம் (ரங்கூன்)',
+        'Asia/Yangon' => 'மியான்மர் நேரம் (ரங்கூன்)',
         'Asia/Riyadh' => 'அரேபிய நேரம் (ரியாத்)',
         'Asia/Saigon' => 'இந்தோசீன நேரம் (ஹோ சி மின் சிட்டி)',
-        'Asia/Sakhalin' => 'சகலின் நேரம்',
+        'Asia/Ho_Chi_Minh' => 'இந்தோசீன நேரம் (ஹோ சி மின் சிட்டி)',
+        'Asia/Sakhalin' => 'மகதன் நேரம் (சகலின்)',
         'Asia/Samarkand' => 'உஸ்பெகிஸ்தான் நேரம் (சமார்கண்ட்)',
         'Asia/Seoul' => 'கொரிய நேரம் (சியோல்)',
         'Asia/Shanghai' => 'சீன நேரம் (ஷாங்காய்)',
         'Asia/Singapore' => 'சிங்கப்பூர் நிலையான நேரம்',
         'Asia/Srednekolymsk' => 'மகதன் நேரம் (ஸ்ரெட்நிகோலிம்ஸ்க்)',
-        'Asia/Taipei' => 'தாய்பே நேரம்',
+        'Asia/Taipei' => 'தைவான் நேரம் (தாய்பே)',
         'Asia/Tashkent' => 'உஸ்பெகிஸ்தான் நேரம் (தாஷ்கண்ட்)',
         'Asia/Tbilisi' => 'ஜார்ஜியா நேரம் (த்பிலிசி)',
         'Asia/Tehran' => 'ஈரான் நேரம் (டெஹ்ரான்)',
         'Asia/Thimphu' => 'பூடான் நேரம் (திம்பு)',
         'Asia/Tokyo' => 'ஜப்பான் நேரம் (டோக்கியோ)',
-        'Asia/Tomsk' => 'ரஷ்யா நேரம் (டாம்ஸ்க்)',
+        'Asia/Tomsk' => 'க்ரஸ்னோயார்ஸ்க் நேரம் (டாம்ஸ்க்)',
         'Asia/Ulaanbaatar' => 'உலன் பாடர் நேரம் (உலான்பாட்டர்)',
         'Asia/Urumqi' => 'சீனா நேரம் (உரும்கி)',
         'Asia/Ust-Nera' => 'விளாடிவோஸ்டோக் நேரம் (உஸ்ட்-நேரா)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'மேற்கத்திய ஐரோப்பிய நேரம் (கேனரி)',
         'Atlantic/Cape_Verde' => 'கேப் வெர்டே நேரம்',
         'Atlantic/Faeroe' => 'மேற்கத்திய ஐரோப்பிய நேரம் (ஃபரோ)',
+        'Atlantic/Faroe' => 'மேற்கத்திய ஐரோப்பிய நேரம் (ஃபரோ)',
         'Atlantic/Madeira' => 'மேற்கத்திய ஐரோப்பிய நேரம் (மடிரா)',
         'Atlantic/Reykjavik' => 'கிரீன்விச் சராசரி நேரம் (ரேக்ஜாவிக்)',
         'Atlantic/South_Georgia' => 'தெற்கு ஜார்ஜியா நேரம்',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'ஒருங்கிணைந்த சர்வதேச நேரம்',
         'Europe/Amsterdam' => 'மத்திய ஐரோப்பிய நேரம் (ஆம்ஸ்ட்ரடாம்)',
         'Europe/Andorra' => 'மத்திய ஐரோப்பிய நேரம் (அண்டோரா)',
-        'Europe/Astrakhan' => 'மாஸ்கோ நேரம் (அஸ்ட்ராகான்)',
+        'Europe/Astrakhan' => 'சமரா நேரம் (அஸ்ட்ராகான்)',
         'Europe/Athens' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (ஏதன்ஸ்)',
         'Europe/Belgrade' => 'மத்திய ஐரோப்பிய நேரம் (பெல்கிரேட்)',
         'Europe/Berlin' => 'மத்திய ஐரோப்பிய நேரம் (பெர்லின்)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'கிரீன்விச் சராசரி நேரம் (கர்னஸே)',
         'Europe/Helsinki' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (ஹெல்சிங்கி)',
         'Europe/Isle_of_Man' => 'கிரீன்விச் சராசரி நேரம் (ஐல் ஆஃப் மேன்)',
-        'Europe/Istanbul' => 'துருக்கியே நேரம் (இஸ்தான்புல்)',
+        'Europe/Istanbul' => 'துருக்கி நேரம் (இஸ்தான்புல்)',
         'Europe/Jersey' => 'கிரீன்விச் சராசரி நேரம் (ஜெர்சி)',
         'Europe/Kaliningrad' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (கலினின்கிராட்)',
         'Europe/Kiev' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (கீவ்)',
-        'Europe/Kirov' => 'ரஷ்யா நேரம் (கிரோவ்)',
+        'Europe/Kyiv' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (கீவ்)',
+        'Europe/Kirov' => 'மாஸ்கோ நேரம் (கிரோவ்)',
         'Europe/Lisbon' => 'மேற்கத்திய ஐரோப்பிய நேரம் (லிஸ்பன்)',
         'Europe/Ljubljana' => 'மத்திய ஐரோப்பிய நேரம் (ஜுப்லானா)',
         'Europe/London' => 'கிரீன்விச் சராசரி நேரம் (லண்டன்)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'சமரா நேரம் (சமாரா)',
         'Europe/San_Marino' => 'மத்திய ஐரோப்பிய நேரம் (சான் மரினோ)',
         'Europe/Sarajevo' => 'மத்திய ஐரோப்பிய நேரம் (சரயேவோ)',
-        'Europe/Saratov' => 'மாஸ்கோ நேரம் (சரடோவ்)',
+        'Europe/Saratov' => 'சமரா நேரம் (சரடோவ்)',
         'Europe/Simferopol' => 'மாஸ்கோ நேரம் (சிம்ஃபெரோபோல்)',
         'Europe/Skopje' => 'மத்திய ஐரோப்பிய நேரம் (ஸ்கோப்ஜே)',
         'Europe/Sofia' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (சோஃபியா)',
         'Europe/Stockholm' => 'மத்திய ஐரோப்பிய நேரம் (ஸ்டாக்ஹோம்)',
         'Europe/Tallinn' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (டலின்)',
         'Europe/Tirane' => 'மத்திய ஐரோப்பிய நேரம் (திரானே)',
-        'Europe/Ulyanovsk' => 'மாஸ்கோ நேரம் (உல்யானோஸ்க்)',
+        'Europe/Ulyanovsk' => 'சமரா நேரம் (உல்யானோஸ்க்)',
         'Europe/Vaduz' => 'மத்திய ஐரோப்பிய நேரம் (வதுஸ்)',
         'Europe/Vatican' => 'மத்திய ஐரோப்பிய நேரம் (வாடிகன்)',
         'Europe/Vienna' => 'மத்திய ஐரோப்பிய நேரம் (வியன்னா)',
         'Europe/Vilnius' => 'கிழக்கத்திய ஐரோப்பிய நேரம் (வில்னியஸ்)',
-        'Europe/Volgograd' => 'வோல்கோக்ராட் நேரம் (வோல்கோகிராட்)',
+        'Europe/Volgograd' => 'மாஸ்கோ நேரம் (வோல்கோகிராட்)',
         'Europe/Warsaw' => 'மத்திய ஐரோப்பிய நேரம் (வார்ஸா)',
         'Europe/Zagreb' => 'மத்திய ஐரோப்பிய நேரம் (ஸக்ரெப்)',
         'Europe/Zurich' => 'மத்திய ஐரோப்பிய நேரம் (ஜூரிச்)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'சத்தாம் நேரம்',
         'Pacific/Easter' => 'ஈஸ்டர் தீவு நேரம்',
         'Pacific/Efate' => 'வனுவாட்டு நேரம் (ஈஃபேட்)',
-        'Pacific/Enderbury' => 'ஃபோனிக்ஸ் தீவுகள் நேரம் (எண்டர்பரி)',
+        'Pacific/Enderbury' => 'ஃபோனிக்ஸ் தீவுகள் நேரம் (கேன்டன்)',
+        'Pacific/Kanton' => 'ஃபோனிக்ஸ் தீவுகள் நேரம் (கேன்டன்)',
         'Pacific/Fakaofo' => 'டோக்கெலாவ் நேரம் (ஃபகாஃபோ)',
         'Pacific/Fiji' => 'ஃபிஜி நேரம்',
         'Pacific/Funafuti' => 'துவாலு நேரம் (ஃபுனாஃபுடி)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'கேம்பியர் நேரம்',
         'Pacific/Guadalcanal' => 'சாலமன் தீவுகள் நேரம் (க்வாடால்கேனல்)',
         'Pacific/Guam' => 'சாமோரோ நிலையான நேரம் (குவாம்)',
-        'Pacific/Honolulu' => 'ஹவாய்-அலேஷியன் நேரம் (ஹோனோலூலூ)',
+        'Pacific/Honolulu' => 'ஹவாய்-அலேஷியன் நிலையான நேரம் (ஹோனோலூலூ)',
         'Pacific/Kiritimati' => 'லைன் தீவுகள் நேரம் (கிரிடிமாட்டி)',
         'Pacific/Kosrae' => 'கோஸ்ரே நேரம்',
         'Pacific/Kwajalein' => 'மார்ஷல் தீவுகள் நேரம் (க்வாஜாலீயன்)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'பாலவ் நேரம்',
         'Pacific/Pitcairn' => 'பிட்கெய்ர்ன் நேரம்',
         'Pacific/Ponape' => 'போனாபே நேரம் (ஃபோன்பெய்)',
+        'Pacific/Pohnpei' => 'போனாபே நேரம் (ஃபோன்பெய்)',
         'Pacific/Port_Moresby' => 'பபுவா நியூ கினியா நேரம் (போர்ட் மோர்ஸ்பை)',
         'Pacific/Rarotonga' => 'குக் தீவுகள் நேரம் (ரரோடோங்கா)',
         'Pacific/Saipan' => 'சாமோரோ நிலையான நேரம் (சைபன்)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'கில்பர்ட் தீவுகள் நேரம் (தராவா)',
         'Pacific/Tongatapu' => 'டோங்கா நேரம் (டோன்கடப்பு)',
         'Pacific/Truk' => 'சுக் நேரம்',
+        'Pacific/Chuuk' => 'சுக் நேரம்',
         'Pacific/Wake' => 'வேக் தீவு நேரம்',
         'Pacific/Wallis' => 'வாலிஸ் மற்றும் ஃப்யூடுனா நேரம்',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/te.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/te.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/te.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/te.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'తూర్పు ఆఫ్రికా సమయం (యాడిస్ అబాబా)',
         'Africa/Algiers' => 'సెంట్రల్ యూరోపియన్ సమయం (అల్జియర్స్)',
         'Africa/Asmera' => 'తూర్పు ఆఫ్రికా సమయం (అస్మారా)',
+        'Africa/Asmara' => 'తూర్పు ఆఫ్రికా సమయం (అస్మారా)',
         'Africa/Bamako' => 'గ్రీన్‌విచ్ సగటు సమయం (బామాకో)',
         'Africa/Bangui' => 'పశ్చిమ ఆఫ్రికా సమయం (బాంగుయ్)',
         'Africa/Banjul' => 'గ్రీన్‌విచ్ సగటు సమయం (బంజూల్)',
@@ -20,7 +21,7 @@
         'Africa/Conakry' => 'గ్రీన్‌విచ్ సగటు సమయం (కోనాక్రీ)',
         'Africa/Dakar' => 'గ్రీన్‌విచ్ సగటు సమయం (డకార్)',
         'Africa/Dar_es_Salaam' => 'తూర్పు ఆఫ్రికా సమయం (దార్ ఎస్ సలామ్)',
-        'Africa/Djibouti' => 'తూర్పు ఆఫ్రికా సమయం (డిజ్బౌటి)',
+        'Africa/Djibouti' => 'తూర్పు ఆఫ్రికా సమయం (జిబూటి)',
         'Africa/Douala' => 'పశ్చిమ ఆఫ్రికా సమయం (డౌలా)',
         'Africa/El_Aaiun' => 'పశ్చిమ యూరోపియన్ సమయం (ఎల్ ఎయున్)',
         'Africa/Freetown' => 'గ్రీన్‌విచ్ సగటు సమయం (ఫ్రీటౌన్)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'కొలంబియా సమయం (బగోటా)',
         'America/Boise' => 'మౌంటెయిన్ సమయం (బొయిసీ)',
         'America/Buenos_Aires' => 'అర్జెంటీనా సమయం (బ్యూనోస్ ఎయిర్స్)',
+        'America/Argentina/Buenos_Aires' => 'అర్జెంటీనా సమయం (బ్యూనోస్ ఎయిర్స్)',
         'America/Cambridge_Bay' => 'మౌంటెయిన్ సమయం (కేంబ్రిడ్జ్ బే)',
         'America/Campo_Grande' => 'అమెజాన్ సమయం (కాంపో గ్రాండ్)',
         'America/Cancun' => 'తూర్పు సమయం (కన్‌కూన్)',
         'America/Caracas' => 'వెనిజులా సమయం (కారాకస్)',
         'America/Catamarca' => 'అర్జెంటీనా సమయం (కటమార్కా)',
+        'America/Argentina/Catamarca' => 'అర్జెంటీనా సమయం (కటమార్కా)',
         'America/Cayenne' => 'ఫ్రెంచ్ గయానా సమయం (కయేన్)',
         'America/Cayman' => 'తూర్పు సమయం (కేమాన్)',
         'America/Chicago' => 'మధ్యమ సమయం (చికాగో)',
         'America/Chihuahua' => 'మధ్యమ సమయం (చువావా)',
         'America/Ciudad_Juarez' => 'మౌంటెయిన్ సమయం (సియుదాద్ హ్వారెజ్)',
         'America/Coral_Harbour' => 'తూర్పు సమయం (అటికోకన్)',
+        'America/Atikokan' => 'తూర్పు సమయం (అటికోకన్)',
         'America/Cordoba' => 'అర్జెంటీనా సమయం (కోర్డోబా)',
+        'America/Argentina/Cordoba' => 'అర్జెంటీనా సమయం (కోర్డోబా)',
         'America/Costa_Rica' => 'మధ్యమ సమయం (కోస్టా రికా)',
+        'America/Coyhaique' => 'చిలీ సమయం (కొయాయ్కె)',
         'America/Creston' => 'మౌంటెయిన్ సమయం (క్రెస్టన్)',
         'America/Cuiaba' => 'అమెజాన్ సమయం (కుయబా)',
         'America/Curacao' => 'అట్లాంటిక్ సమయం (కురాకవో)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'బ్రెజిలియా సమయం (ఫోర్టలేజా)',
         'America/Glace_Bay' => 'అట్లాంటిక్ సమయం (గ్లేస్ బే)',
         'America/Godthab' => 'గ్రీన్‌ల్యాండ్ సమయం (నూక్)',
+        'America/Nuuk' => 'గ్రీన్‌ల్యాండ్ సమయం (నూక్)',
         'America/Goose_Bay' => 'అట్లాంటిక్ సమయం (గూస్ బే)',
         'America/Grand_Turk' => 'తూర్పు సమయం (గ్రాండ్ టర్క్)',
         'America/Grenada' => 'అట్లాంటిక్ సమయం (గ్రెనడా)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'తూర్పు సమయం (విన్‌సెన్నెస్, ఇండియాన)',
         'America/Indiana/Winamac' => 'తూర్పు సమయం (వినామాక్, ఇండియాన)',
         'America/Indianapolis' => 'తూర్పు సమయం (ఇండియానపోలిస్)',
+        'America/Indiana/Indianapolis' => 'తూర్పు సమయం (ఇండియానపోలిస్)',
         'America/Inuvik' => 'మౌంటెయిన్ సమయం (ఇనువిక్)',
         'America/Iqaluit' => 'తూర్పు సమయం (ఇక్వాలిట్)',
         'America/Jamaica' => 'తూర్పు సమయం (జమైకా)',
         'America/Jujuy' => 'అర్జెంటీనా సమయం (జుజుయ్)',
+        'America/Argentina/Jujuy' => 'అర్జెంటీనా సమయం (జుజుయ్)',
         'America/Juneau' => 'అలాస్కా సమయం (జూనో)',
         'America/Kentucky/Monticello' => 'తూర్పు సమయం (మోంటిసెల్లో, కెన్‌టుక్కీ)',
         'America/Kralendijk' => 'అట్లాంటిక్ సమయం (క్రలెండ్జిక్)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'పెరూ సమయం (లిమా)',
         'America/Los_Angeles' => 'పసిఫిక్ సమయం (లాస్ ఏంజల్స్)',
         'America/Louisville' => 'తూర్పు సమయం (లూయివిల్)',
+        'America/Kentucky/Louisville' => 'తూర్పు సమయం (లూయివిల్)',
         'America/Lower_Princes' => 'అట్లాంటిక్ సమయం (లోయర్ ప్రిన్స్ క్వార్టర్)',
         'America/Maceio' => 'బ్రెజిలియా సమయం (మాసియో)',
         'America/Managua' => 'మధ్యమ సమయం (మనాగువా)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'మధ్యమ సమయం (మాటమొరోస్)',
         'America/Mazatlan' => 'మెక్సికన్ పసిఫిక్ సమయం (మాసట్‌లాన్)',
         'America/Mendoza' => 'అర్జెంటీనా సమయం (మెండోజా)',
+        'America/Argentina/Mendoza' => 'అర్జెంటీనా సమయం (మెండోజా)',
         'America/Menominee' => 'మధ్యమ సమయం (మెనోమినీ)',
         'America/Merida' => 'మధ్యమ సమయం (మెరిడా)',
         'America/Metlakatla' => 'అలాస్కా సమయం (మెట్లకట్ల)',
@@ -200,7 +211,7 @@
         'Antarctica/Casey' => 'పశ్చిమ ఆస్ట్రేలియా సమయం (కేసీ)',
         'Antarctica/Davis' => 'డేవిస్ సమయం (డెవిస్)',
         'Antarctica/DumontDUrville' => 'డ్యూమాంట్-డి’ఉర్విల్లే సమయం',
-        'Antarctica/Macquarie' => 'తూర్పు ఆస్ట్రేలియా సమయం (మకారీ)',
+        'Antarctica/Macquarie' => 'తూర్పు ఆస్ట్రేలియా సమయం (మకారీ దీవి)',
         'Antarctica/Mawson' => 'మాసన్ సమయం',
         'Antarctica/McMurdo' => 'న్యూజిల్యాండ్ సమయం (మెక్‌ముర్డో)',
         'Antarctica/Palmer' => 'చిలీ సమయం (పాల్మర్)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'అరేబియన్ సమయం (ఎడెన్)',
         'Asia/Almaty' => 'కజకిస్తాన్ సమయం (ఆల్మాటి)',
         'Asia/Amman' => 'తూర్పు యూరోపియన్ సమయం (అమ్మన్)',
-        'Asia/Anadyr' => 'అనడైర్ సమయం',
+        'Asia/Anadyr' => 'పెట్రోపావ్లోవ్స్క్-కామ్ఛాట్స్కి సమయం (అనడైర్)',
         'Asia/Aqtau' => 'కజకిస్తాన్ సమయం (అక్టావ్)',
         'Asia/Aqtobe' => 'కజకిస్తాన్ సమయం (అక్టోబ్)',
         'Asia/Ashgabat' => 'తుర్క్‌మెనిస్తాన్ సమయం (యాష్గాబాట్)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'అరేబియన్ సమయం (బహ్రెయిన్)',
         'Asia/Baku' => 'అజర్బైజాన్ సమయం (బాకు)',
         'Asia/Bangkok' => 'ఇండోచైనా సమయం (బ్యాంకాక్)',
-        'Asia/Barnaul' => 'రష్యా సమయం (బార్నాల్)',
+        'Asia/Barnaul' => 'క్రాస్నోయార్స్క్ సమయం (బార్నాల్)',
         'Asia/Beirut' => 'తూర్పు యూరోపియన్ సమయం (బీరట్)',
         'Asia/Bishkek' => 'కిర్గిస్తాన్ సమయం (బిష్కెక్)',
-        'Asia/Brunei' => 'బ్రూనే దరుసలామ్ సమయం (బ్రూనై)',
+        'Asia/Brunei' => 'బ్రూనై దారుసలామ్ సమయం',
         'Asia/Calcutta' => 'భారతదేశ ప్రామాణిక సమయం (కోల్‌కతా)',
+        'Asia/Kolkata' => 'భారతదేశ ప్రామాణిక సమయం (కోల్‌కతా)',
         'Asia/Chita' => 'యాకుట్స్క్ సమయం (చితా)',
         'Asia/Colombo' => 'భారతదేశ ప్రామాణిక సమయం (కొలంబో)',
         'Asia/Damascus' => 'తూర్పు యూరోపియన్ సమయం (డమాస్కస్)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'పెట్రోపావ్లోవ్స్క్-కామ్ఛాట్స్కి సమయం (కమ్‌చత్కా)',
         'Asia/Karachi' => 'పాకిస్తాన్ సమయం (కరాచీ)',
         'Asia/Katmandu' => 'నేపాల్ సమయం (ఖాట్మండు)',
+        'Asia/Kathmandu' => 'నేపాల్ సమయం (ఖాట్మండు)',
         'Asia/Khandyga' => 'యాకుట్స్క్ సమయం (కంద్యాగ)',
         'Asia/Krasnoyarsk' => 'క్రాస్నోయార్స్క్ సమయం (క్రసనోయార్స్క్)',
         'Asia/Kuala_Lumpur' => 'మలేషియా సమయం (కౌలాలంపూర్)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'గల్ఫ్ ప్రామాణిక సమయం (మస్కట్)',
         'Asia/Nicosia' => 'తూర్పు యూరోపియన్ సమయం (నికోసియా)',
         'Asia/Novokuznetsk' => 'క్రాస్నోయార్స్క్ సమయం (నొవొకుజ్‌నెట్‌స్క్)',
-        'Asia/Novosibirsk' => 'నోవోసిబిర్స్క్ సమయం (నవోసిబిర్స్క్)',
+        'Asia/Novosibirsk' => 'క్రాస్నోయార్స్క్ సమయం (నవోసిబిర్స్క్)',
         'Asia/Omsk' => 'ఓమ్స్క్ సమయం',
         'Asia/Oral' => 'కజకిస్తాన్ సమయం (ఓరల్)',
         'Asia/Phnom_Penh' => 'ఇండోచైనా సమయం (నోమ్‌పెన్హ్)',
@@ -268,21 +281,23 @@
         'Asia/Qostanay' => 'కజకిస్తాన్ సమయం (కోస్తానే)',
         'Asia/Qyzylorda' => 'కజకిస్తాన్ సమయం (క్విజిలోర్డా)',
         'Asia/Rangoon' => 'మయన్మార్ సమయం (యాంగన్)',
+        'Asia/Yangon' => 'మయన్మార్ సమయం (యాంగన్)',
         'Asia/Riyadh' => 'అరేబియన్ సమయం (రియాధ్)',
         'Asia/Saigon' => 'ఇండోచైనా సమయం (హో చి మిన్హ్ నగరం)',
-        'Asia/Sakhalin' => 'సఖాలిన్ సమయం',
+        'Asia/Ho_Chi_Minh' => 'ఇండోచైనా సమయం (హో చి మిన్హ్ నగరం)',
+        'Asia/Sakhalin' => 'మగడాన్ సమయం (సఖాలిన్)',
         'Asia/Samarkand' => 'ఉజ్బెకిస్తాన్ సమయం (సమర్కాండ్)',
         'Asia/Seoul' => 'కొరియన్ సమయం (సియోల్)',
         'Asia/Shanghai' => 'చైనా సమయం (షాంఘై)',
         'Asia/Singapore' => 'సింగపూర్ ప్రామాణిక సమయం',
         'Asia/Srednekolymsk' => 'మగడాన్ సమయం (స్రెడ్నెకొలిమ్స్క్)',
-        'Asia/Taipei' => 'తైపీ సమయం',
+        'Asia/Taipei' => 'తైవాన్ సమయం (తైపీ)',
         'Asia/Tashkent' => 'ఉజ్బెకిస్తాన్ సమయం (తాష్కెంట్)',
         'Asia/Tbilisi' => 'జార్జియా సమయం (టిబిలిసి)',
         'Asia/Tehran' => 'ఇరాన్ సమయం (టెహ్రాన్)',
         'Asia/Thimphu' => 'భూటాన్ సమయం (థింఫు)',
         'Asia/Tokyo' => 'జపాన్ సమయం (టోక్యో)',
-        'Asia/Tomsk' => 'రష్యా సమయం (టామ్స్క్)',
+        'Asia/Tomsk' => 'క్రాస్నోయార్స్క్ సమయం (టామ్స్క్)',
         'Asia/Ulaanbaatar' => 'ఉలన్ బతోర్ సమయం (ఉలాన్బాటర్)',
         'Asia/Urumqi' => 'చైనా సమయం (ఉరుమ్‌కీ)',
         'Asia/Ust-Nera' => 'వ్లాడివోస్టోక్ సమయం (అస్ట్-నెరా)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'పశ్చిమ యూరోపియన్ సమయం (కెనరీ)',
         'Atlantic/Cape_Verde' => 'కేప్ వెర్డె సమయం',
         'Atlantic/Faeroe' => 'పశ్చిమ యూరోపియన్ సమయం (ఫారో)',
+        'Atlantic/Faroe' => 'పశ్చిమ యూరోపియన్ సమయం (ఫారో)',
         'Atlantic/Madeira' => 'పశ్చిమ యూరోపియన్ సమయం (మదైరా)',
         'Atlantic/Reykjavik' => 'గ్రీన్‌విచ్ సగటు సమయం (రెక్జావిక్)',
         'Atlantic/South_Georgia' => 'దక్షిణ జార్జియా సమయం',
@@ -308,7 +324,7 @@
         'Australia/Eucla' => 'ఆస్ట్రేలియా మధ్యమ పశ్చిమ సమయం (యుక్లా)',
         'Australia/Hobart' => 'తూర్పు ఆస్ట్రేలియా సమయం (హోబర్ట్)',
         'Australia/Lindeman' => 'తూర్పు ఆస్ట్రేలియా సమయం (లిండెమాన్)',
-        'Australia/Lord_Howe' => 'లార్డ్ హోవ్ సమయం (లార్డ్ హౌ)',
+        'Australia/Lord_Howe' => 'లార్డ్ హోవ్ సమయం (లార్డ్ హౌ దీవి)',
         'Australia/Melbourne' => 'తూర్పు ఆస్ట్రేలియా సమయం (మెల్బోర్న్)',
         'Australia/Perth' => 'పశ్చిమ ఆస్ట్రేలియా సమయం (పెర్త్)',
         'Australia/Sydney' => 'తూర్పు ఆస్ట్రేలియా సమయం (సిడ్నీ)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'సమన్వయ సార్వజనీన సమయం',
         'Europe/Amsterdam' => 'సెంట్రల్ యూరోపియన్ సమయం (ఆమ్‌స్టర్‌డామ్)',
         'Europe/Andorra' => 'సెంట్రల్ యూరోపియన్ సమయం (అండోరా)',
-        'Europe/Astrakhan' => 'మాస్కో సమయం (అస్ట్రఖాన్)',
+        'Europe/Astrakhan' => 'సమారా సమయం (అస్ట్రఖాన్)',
         'Europe/Athens' => 'తూర్పు యూరోపియన్ సమయం (ఏథెన్స్)',
         'Europe/Belgrade' => 'సెంట్రల్ యూరోపియన్ సమయం (బెల్‌గ్రేడ్)',
         'Europe/Berlin' => 'సెంట్రల్ యూరోపియన్ సమయం (బెర్లిన్)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'గ్రీన్‌విచ్ సగటు సమయం (గ్వెర్న్సే)',
         'Europe/Helsinki' => 'తూర్పు యూరోపియన్ సమయం (హెల్సింకి)',
         'Europe/Isle_of_Man' => 'గ్రీన్‌విచ్ సగటు సమయం (ఐల్ ఆఫ్ మేన్)',
-        'Europe/Istanbul' => 'తుర్కియె సమయం (ఇస్తాంబుల్)',
+        'Europe/Istanbul' => 'టర్కీ సమయం (ఇస్తాంబుల్)',
         'Europe/Jersey' => 'గ్రీన్‌విచ్ సగటు సమయం (జెర్సీ)',
         'Europe/Kaliningrad' => 'తూర్పు యూరోపియన్ సమయం (కలినిన్‌గ్రద్)',
         'Europe/Kiev' => 'తూర్పు యూరోపియన్ సమయం (కీవ్)',
-        'Europe/Kirov' => 'రష్యా సమయం (కిరోవ్)',
+        'Europe/Kyiv' => 'తూర్పు యూరోపియన్ సమయం (కీవ్)',
+        'Europe/Kirov' => 'మాస్కో సమయం (కిరోవ్)',
         'Europe/Lisbon' => 'పశ్చిమ యూరోపియన్ సమయం (లిస్బన్)',
         'Europe/Ljubljana' => 'సెంట్రల్ యూరోపియన్ సమయం (ల్యూబ్ల్యానా)',
         'Europe/London' => 'గ్రీన్‌విచ్ సగటు సమయం (లండన్)',
@@ -356,26 +373,26 @@
         'Europe/Samara' => 'సమారా సమయం',
         'Europe/San_Marino' => 'సెంట్రల్ యూరోపియన్ సమయం (శాన్ మారినో)',
         'Europe/Sarajevo' => 'సెంట్రల్ యూరోపియన్ సమయం (సరాజోవో)',
-        'Europe/Saratov' => 'మాస్కో సమయం (సరాటవ్)',
+        'Europe/Saratov' => 'సమారా సమయం (సరాటవ్)',
         'Europe/Simferopol' => 'మాస్కో సమయం (సిమ్‌ఫెరోపోల్)',
         'Europe/Skopje' => 'సెంట్రల్ యూరోపియన్ సమయం (స్కోప్‌యే)',
         'Europe/Sofia' => 'తూర్పు యూరోపియన్ సమయం (సోఫియా)',
         'Europe/Stockholm' => 'సెంట్రల్ యూరోపియన్ సమయం (స్టాక్హోమ్)',
         'Europe/Tallinn' => 'తూర్పు యూరోపియన్ సమయం (తాల్లిన్)',
         'Europe/Tirane' => 'సెంట్రల్ యూరోపియన్ సమయం (టిరేన్)',
-        'Europe/Ulyanovsk' => 'మాస్కో సమయం (ఉల్యనోవ్స్క్)',
+        'Europe/Ulyanovsk' => 'సమారా సమయం (ఉల్యనోవ్స్క్)',
         'Europe/Vaduz' => 'సెంట్రల్ యూరోపియన్ సమయం (వాడుజ్)',
         'Europe/Vatican' => 'సెంట్రల్ యూరోపియన్ సమయం (వాటికన్)',
         'Europe/Vienna' => 'సెంట్రల్ యూరోపియన్ సమయం (వియన్నా)',
         'Europe/Vilnius' => 'తూర్పు యూరోపియన్ సమయం (విల్నియస్)',
-        'Europe/Volgograd' => 'వోల్గోగ్రాడ్ సమయం',
+        'Europe/Volgograd' => 'మాస్కో సమయం (వోల్గోగ్రాడ్)',
         'Europe/Warsaw' => 'సెంట్రల్ యూరోపియన్ సమయం (వార్షా)',
         'Europe/Zagreb' => 'సెంట్రల్ యూరోపియన్ సమయం (జాగ్రెబ్)',
         'Europe/Zurich' => 'సెంట్రల్ యూరోపియన్ సమయం (జ్యూరిచ్)',
         'Indian/Antananarivo' => 'తూర్పు ఆఫ్రికా సమయం (అంటానానారివో)',
         'Indian/Chagos' => 'హిందూ మహా సముద్ర సమయం (చాగోస్)',
         'Indian/Christmas' => 'క్రిస్మస్ దీవి సమయం',
-        'Indian/Cocos' => 'కోకోస్ దీవుల సమయం',
+        'Indian/Cocos' => 'కోకోస్ దీవుల సమయం (కోకోస్ దీవులు)',
         'Indian/Comoro' => 'తూర్పు ఆఫ్రికా సమయం (కొమోరో)',
         'Indian/Kerguelen' => 'ఫ్రెంచ్ దక్షిణ మరియు అంటార్కిటిక్ సమయం (కెర్గ్యూలెన్)',
         'Indian/Mahe' => 'సీషెల్స్ సమయం (మాహె)',
@@ -383,13 +400,14 @@
         'Indian/Mauritius' => 'మారిషస్ సమయం',
         'Indian/Mayotte' => 'తూర్పు ఆఫ్రికా సమయం (మయోట్)',
         'Indian/Reunion' => 'రీయూనియన్ సమయం',
-        'Pacific/Apia' => 'ఏపియా సమయం',
+        'Pacific/Apia' => 'సమోవా సమయం (ఏపియా)',
         'Pacific/Auckland' => 'న్యూజిల్యాండ్ సమయం (ఆక్లాండ్)',
         'Pacific/Bougainville' => 'పాపువా న్యూ గినియా సమయం (బొగెయిన్‌విల్లే)',
-        'Pacific/Chatham' => 'చాథమ్ సమయం',
+        'Pacific/Chatham' => 'చాథమ్ సమయం (చాథమ్ దీవులు)',
         'Pacific/Easter' => 'ఈస్టర్ దీవి సమయం',
         'Pacific/Efate' => 'వనౌటు సమయం (ఇఫేట్)',
-        'Pacific/Enderbury' => 'ఫినిక్స్ దీవుల సమయం (ఎండర్బెరీ)',
+        'Pacific/Enderbury' => 'ఫినిక్స్ దీవుల సమయం (క్యాంటన్ దీవి)',
+        'Pacific/Kanton' => 'ఫినిక్స్ దీవుల సమయం (క్యాంటన్ దీవి)',
         'Pacific/Fakaofo' => 'టోకెలావ్ సమయం (ఫాకోఫో)',
         'Pacific/Fiji' => 'ఫిజీ సమయం (ఫీజీ)',
         'Pacific/Funafuti' => 'తువాలు సమయం (ఫునాఫుటి)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'గాంబియర్ సమయం (గాంబియేర్)',
         'Pacific/Guadalcanal' => 'సోలమన్ దీవుల సమయం (గ్వాడల్కెనాల్)',
         'Pacific/Guam' => 'చామర్రో ప్రామాణిక సమయం (గ్వామ్)',
-        'Pacific/Honolulu' => 'హవాయ్-అల్యూషియన్ సమయం (హోనోలులు)',
+        'Pacific/Honolulu' => 'హవాయ్-అల్యూషియన్ ప్రామాణిక సమయం (హోనోలులు)',
         'Pacific/Kiritimati' => 'లైన్ దీవుల సమయం (కిరీటిమాటి)',
         'Pacific/Kosrae' => 'కోస్రాయి సమయం (కోస్రే)',
         'Pacific/Kwajalein' => 'మార్షల్ దీవుల సమయం (క్వాజాలైన్)',
@@ -406,12 +424,13 @@
         'Pacific/Midway' => 'సమోవా సమయం (మిడ్వే)',
         'Pacific/Nauru' => 'నౌరు సమయం',
         'Pacific/Niue' => 'నియూ సమయం',
-        'Pacific/Norfolk' => 'నార్ఫోక్ దీవి సమయం (నోర్ఫోక్)',
+        'Pacific/Norfolk' => 'నార్ఫోక్ దీవి సమయం (నార్ఫక్ దీవి)',
         'Pacific/Noumea' => 'న్యూ కాలెడోనియా సమయం (నౌమియా)',
         'Pacific/Pago_Pago' => 'సమోవా సమయం (పాగో పాగో)',
         'Pacific/Palau' => 'పాలావ్ సమయం',
         'Pacific/Pitcairn' => 'పిట్‌కైర్న్ సమయం',
         'Pacific/Ponape' => 'పొనేప్ సమయం (పోన్‌పై)',
+        'Pacific/Pohnpei' => 'పొనేప్ సమయం (పోన్‌పై)',
         'Pacific/Port_Moresby' => 'పాపువా న్యూ గినియా సమయం (పోర్ట్ మోరెస్బే)',
         'Pacific/Rarotonga' => 'కుక్ దీవుల సమయం (రరోటోంగా)',
         'Pacific/Saipan' => 'చామర్రో ప్రామాణిక సమయం (సాయ్పాన్)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'గిల్బర్ట్ దీవుల సమయం (టరావా)',
         'Pacific/Tongatapu' => 'టాంగా సమయం (టోంగాటాపు)',
         'Pacific/Truk' => 'చక్ సమయం (చుక్)',
+        'Pacific/Chuuk' => 'చక్ సమయం (చుక్)',
         'Pacific/Wake' => 'వేక్ దీవి సమయం',
-        'Pacific/Wallis' => 'వాలీస్ మరియు ఫుటునా సమయం (వాల్లిస్)',
+        'Pacific/Wallis' => 'వాలీస్ మరియు ఫుటునా సమయం (వాల్లిస్ & ఫ్యూటునా)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tg.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Вақти Африқои Шарқӣ (Аддис-Абеба)',
         'Africa/Algiers' => 'Вақти Аврупоии Марказӣ (Алҷазоир)',
         'Africa/Asmera' => 'Вақти Африқои Шарқӣ (Асмара)',
+        'Africa/Asmara' => 'Вақти Африқои Шарқӣ (Асмара)',
         'Africa/Bamako' => 'Вақти миёнаи Гринвич (Бамако)',
         'Africa/Bangui' => 'Вақти Африқои Ғарбӣ (Бангуи)',
         'Africa/Banjul' => 'Вақти миёнаи Гринвич (Банҷул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Вақти Колумбия (Богота)',
         'America/Boise' => 'Вақти кӯҳӣ (Бойз)',
         'America/Buenos_Aires' => 'Вақти Аргентина (Буэнос-Айрес)',
+        'America/Argentina/Buenos_Aires' => 'Вақти Аргентина (Буэнос-Айрес)',
         'America/Cambridge_Bay' => 'Вақти кӯҳӣ (Кембриҷ Бэй)',
         'America/Campo_Grande' => 'Вақти Амазон (Кампо Гранде)',
         'America/Cancun' => 'Вақти шарқӣ (Канкун)',
         'America/Caracas' => 'Вақти Венесуэла (Каракас)',
         'America/Catamarca' => 'Вақти Аргентина (Катамарка)',
+        'America/Argentina/Catamarca' => 'Вақти Аргентина (Катамарка)',
         'America/Cayenne' => 'Вақти Гвианаи Фаронса (Кайен)',
         'America/Cayman' => 'Вақти шарқӣ (Кайман)',
         'America/Chicago' => 'Вақти марказӣ (Чикаго)',
         'America/Chihuahua' => 'Вақти марказӣ (Чихуахуа)',
         'America/Ciudad_Juarez' => 'Вақти кӯҳӣ (Сюдад Хуарес)',
         'America/Coral_Harbour' => 'Вақти шарқӣ (Атикокан)',
+        'America/Atikokan' => 'Вақти шарқӣ (Атикокан)',
         'America/Cordoba' => 'Вақти Аргентина (Кордоба)',
+        'America/Argentina/Cordoba' => 'Вақти Аргентина (Кордоба)',
         'America/Costa_Rica' => 'Вақти марказӣ (Коста Рика)',
+        'America/Coyhaique' => 'Вақти Чили (Койҳайке)',
         'America/Creston' => 'Вақти кӯҳӣ (Крестон)',
         'America/Cuiaba' => 'Вақти Амазон (Куяба)',
         'America/Curacao' => 'Вақти атлантикӣ (Кюрасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Вақти Бразилия (Форталеза)',
         'America/Glace_Bay' => 'Вақти атлантикӣ (Глэйс Бэй)',
         'America/Godthab' => 'Вақти Гренландия (Нуук)',
+        'America/Nuuk' => 'Вақти Гренландия (Нуук)',
         'America/Goose_Bay' => 'Вақти атлантикӣ (Гус Бэй)',
         'America/Grand_Turk' => 'Вақти шарқӣ (Гранд Терк)',
         'America/Grenada' => 'Вақти атлантикӣ (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Вақти шарқӣ (Винсенс, Индиана)',
         'America/Indiana/Winamac' => 'Вақти шарқӣ (Винамак, Индиана)',
         'America/Indianapolis' => 'Вақти шарқӣ (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Вақти шарқӣ (Индианаполис)',
         'America/Inuvik' => 'Вақти кӯҳӣ (Инувик)',
         'America/Iqaluit' => 'Вақти шарқӣ (Икалуит)',
         'America/Jamaica' => 'Вақти шарқӣ (Ямайка)',
         'America/Jujuy' => 'Вақти Аргентина (Ҷуҷуй)',
+        'America/Argentina/Jujuy' => 'Вақти Аргентина (Ҷуҷуй)',
         'America/Juneau' => 'Вақти Аляска (Ҷуно)',
         'America/Kentucky/Monticello' => 'Вақти шарқӣ (Монтичелло, Кентукки)',
         'America/Kralendijk' => 'Вақти атлантикӣ (Кралендйк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Вақти Перу (Лима)',
         'America/Los_Angeles' => 'Вақти Уқёнуси Ором (Лос-Анҷелес)',
         'America/Louisville' => 'Вақти шарқӣ (Луисвилл)',
+        'America/Kentucky/Louisville' => 'Вақти шарқӣ (Луисвилл)',
         'America/Lower_Princes' => 'Вақти атлантикӣ (Квартали Поёни Принс)',
         'America/Maceio' => 'Вақти Бразилия (Масейо)',
         'America/Managua' => 'Вақти марказӣ (Манагуа)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Вақти марказӣ (Матаморос)',
         'America/Mazatlan' => 'Вақти Уқёнуси Ором Мексика (Мазатлан)',
         'America/Mendoza' => 'Вақти Аргентина (Мендоза)',
+        'America/Argentina/Mendoza' => 'Вақти Аргентина (Мендоза)',
         'America/Menominee' => 'Вақти марказӣ (Меномин)',
         'America/Merida' => 'Вақти марказӣ (Мерида)',
         'America/Metlakatla' => 'Вақти Аляска (Метлакатла)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Вақти Арабистон (Баҳрайн)',
         'Asia/Baku' => 'Вақти Озарбойҷон (Боку)',
         'Asia/Bangkok' => 'Вақти Ҳиндучин (Бангкок)',
-        'Asia/Barnaul' => 'Вақти Русия (Барнаул)',
+        'Asia/Barnaul' => 'Вақти Красноярск (Барнаул)',
         'Asia/Beirut' => 'Вақти аврупоии шарқӣ (Бейрут)',
         'Asia/Bishkek' => 'Вақти Қирғизистон (Бишкек)',
         'Asia/Brunei' => 'Вақти Бруней Доруссалом',
         'Asia/Calcutta' => 'Вақти стандартии Ҳиндустон (Колката)',
+        'Asia/Kolkata' => 'Вақти стандартии Ҳиндустон (Колката)',
         'Asia/Chita' => 'Вақти Якутск (Чита)',
         'Asia/Colombo' => 'Вақти стандартии Ҳиндустон (Коломбо)',
         'Asia/Damascus' => 'Вақти аврупоии шарқӣ (Димишқ)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Вақти Русия (Камчатка)',
         'Asia/Karachi' => 'Вақти Покистон (Карачи)',
         'Asia/Katmandu' => 'Вақти Непал (Катманду)',
+        'Asia/Kathmandu' => 'Вақти Непал (Катманду)',
         'Asia/Khandyga' => 'Вақти Якутск (Хандига)',
         'Asia/Krasnoyarsk' => 'Вақти Красноярск',
         'Asia/Kuala_Lumpur' => 'Вақти Малайзия (Куала Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Вақти стандартии Халиҷи Форс (Маскат)',
         'Asia/Nicosia' => 'Вақти аврупоии шарқӣ (Никосия)',
         'Asia/Novokuznetsk' => 'Вақти Красноярск (Новокузнетск)',
-        'Asia/Novosibirsk' => 'Вақти Новосибирск',
+        'Asia/Novosibirsk' => 'Вақти Красноярск (Новосибирск)',
         'Asia/Omsk' => 'Вақти Омск',
         'Asia/Oral' => 'Вақти Қазоқистон (Орал)',
         'Asia/Phnom_Penh' => 'Вақти Ҳиндучин (Пномпен)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Вақти Қазоқистон (Кустанай)',
         'Asia/Qyzylorda' => 'Вақти Қазоқистон (Қизилорда)',
         'Asia/Rangoon' => 'Вақти Мянма (Янгон)',
+        'Asia/Yangon' => 'Вақти Мянма (Янгон)',
         'Asia/Riyadh' => 'Вақти Арабистон (Риёз)',
         'Asia/Saigon' => 'Вақти Ҳиндучин (Хо Ши Мин)',
-        'Asia/Sakhalin' => 'Вақти Сахалин',
+        'Asia/Ho_Chi_Minh' => 'Вақти Ҳиндучин (Хо Ши Мин)',
+        'Asia/Sakhalin' => 'Вақти Магадан (Сахалин)',
         'Asia/Samarkand' => 'Вақти Ӯзбекистон (Самарқанд)',
         'Asia/Seoul' => 'Вақти Корея (Сеул)',
         'Asia/Shanghai' => 'Вақти Чин (Шанхай)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Вақти Эрон (Теҳрон)',
         'Asia/Thimphu' => 'Вақти Бутан (Тимфу)',
         'Asia/Tokyo' => 'Вақти Ҷопон (Токио)',
-        'Asia/Tomsk' => 'Вақти Русия (Томск)',
+        'Asia/Tomsk' => 'Вақти Красноярск (Томск)',
         'Asia/Ulaanbaatar' => 'Вақти Улан-Батор',
         'Asia/Urumqi' => 'Вақти Хитой (Урумчи)',
         'Asia/Ust-Nera' => 'Вақти Владивосток (Уст-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Вақти аврупоии ғарбӣ (Канария)',
         'Atlantic/Cape_Verde' => 'Вақти Кабо Верде',
         'Atlantic/Faeroe' => 'Вақти аврупоии ғарбӣ (Фарер)',
+        'Atlantic/Faroe' => 'Вақти аврупоии ғарбӣ (Фарер)',
         'Atlantic/Madeira' => 'Вақти аврупоии ғарбӣ (Мадейра)',
         'Atlantic/Reykjavik' => 'Вақти миёнаи Гринвич (Рейкявик)',
         'Atlantic/South_Georgia' => 'Вақти Ҷорҷияи Ҷанубӣ',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Вақти ҷаҳонии ҳамоҳангсозӣ',
         'Europe/Amsterdam' => 'Вақти Аврупоии Марказӣ (Амстердам)',
         'Europe/Andorra' => 'Вақти Аврупоии Марказӣ (Андорра)',
-        'Europe/Astrakhan' => 'Вақти Москва (Астрахань)',
+        'Europe/Astrakhan' => 'Вақти Русия (Астрахань)',
         'Europe/Athens' => 'Вақти аврупоии шарқӣ (Афина)',
         'Europe/Belgrade' => 'Вақти Аврупоии Марказӣ (Белград)',
         'Europe/Berlin' => 'Вақти Аврупоии Марказӣ (Берлин)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Вақти миёнаи Гринвич (Ҷерси)',
         'Europe/Kaliningrad' => 'Вақти аврупоии шарқӣ (Калининград)',
         'Europe/Kiev' => 'Вақти аврупоии шарқӣ (Киев)',
-        'Europe/Kirov' => 'Вақти Русия (Киров)',
+        'Europe/Kyiv' => 'Вақти аврупоии шарқӣ (Киев)',
+        'Europe/Kirov' => 'Вақти Москва (Киров)',
         'Europe/Lisbon' => 'Вақти аврупоии ғарбӣ (Лиссабон)',
         'Europe/Ljubljana' => 'Вақти Аврупоии Марказӣ (Любляна)',
         'Europe/London' => 'Вақти миёнаи Гринвич (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Вақти Русия (Самара)',
         'Europe/San_Marino' => 'Вақти Аврупоии Марказӣ (Сан-Марино)',
         'Europe/Sarajevo' => 'Вақти Аврупоии Марказӣ (Сараево)',
-        'Europe/Saratov' => 'Вақти Москва (Саратов)',
+        'Europe/Saratov' => 'Вақти Русия (Саратов)',
         'Europe/Simferopol' => 'Вақти Москва (Симферопол)',
         'Europe/Skopje' => 'Вақти Аврупоии Марказӣ (Скопйе)',
         'Europe/Sofia' => 'Вақти аврупоии шарқӣ (София)',
         'Europe/Stockholm' => 'Вақти Аврупоии Марказӣ (Стокголм)',
         'Europe/Tallinn' => 'Вақти аврупоии шарқӣ (Таллин)',
         'Europe/Tirane' => 'Вақти Аврупоии Марказӣ (Тиран)',
-        'Europe/Ulyanovsk' => 'Вақти Москва (Уляновск)',
+        'Europe/Ulyanovsk' => 'Вақти Русия (Уляновск)',
         'Europe/Vaduz' => 'Вақти Аврупоии Марказӣ (Вадуз)',
         'Europe/Vatican' => 'Вақти Аврупоии Марказӣ (Ватикан)',
         'Europe/Vienna' => 'Вақти Аврупоии Марказӣ (Вена)',
         'Europe/Vilnius' => 'Вақти аврупоии шарқӣ (Вилнюс)',
-        'Europe/Volgograd' => 'Вақти Волгоград',
+        'Europe/Volgograd' => 'Вақти Москва (Волгоград)',
         'Europe/Warsaw' => 'Вақти Аврупоии Марказӣ (Варшава)',
         'Europe/Zagreb' => 'Вақти Аврупоии Марказӣ (Загреб)',
         'Europe/Zurich' => 'Вақти Аврупоии Марказӣ (Сюрих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Вақти Чатам',
         'Pacific/Easter' => 'Вақти ҷазираи Пасха (Истер)',
         'Pacific/Efate' => 'Вақти Вануату (Эфате)',
-        'Pacific/Enderbury' => 'Вақти Ҷазираҳои Финикс (Enderbury)',
+        'Pacific/Enderbury' => 'Вақти Ҷазираҳои Финикс (Кантон)',
+        'Pacific/Kanton' => 'Вақти Ҷазираҳои Финикс (Кантон)',
         'Pacific/Fakaofo' => 'Вақти Токелау (Факаофо)',
         'Pacific/Fiji' => 'Вақти Фиҷи',
         'Pacific/Funafuti' => 'Вақти Тувалу (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Вақти Гамбир',
         'Pacific/Guadalcanal' => 'Вақти Ҷазираҳои Соломон (Гвадалканал)',
         'Pacific/Guam' => 'Вақти стандартии Чаморро (Гуам)',
-        'Pacific/Honolulu' => 'Вақти Ҳавайӣ-Алеутӣ (Honolulu)',
+        'Pacific/Honolulu' => 'Вақти стандартии Ҳавайӣ-Алеутӣ (Honolulu)',
         'Pacific/Kiritimati' => 'Вақти Ҷазираҳои Лин (Киритимати)',
         'Pacific/Kosrae' => 'Вақти Косрае',
         'Pacific/Kwajalein' => 'Вақти Ҷазираҳои Маршалл (Кважалейн)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Вақти Палау',
         'Pacific/Pitcairn' => 'Вақти Питкэрн',
         'Pacific/Ponape' => 'Ponape Time (Понпей)',
+        'Pacific/Pohnpei' => 'Ponape Time (Понпей)',
         'Pacific/Port_Moresby' => 'Вақти Папуа Гвинеяи Нав (Порт Морсби)',
         'Pacific/Rarotonga' => 'Вақти ҷазираҳои Кук (Раротонга)',
         'Pacific/Saipan' => 'Вақти стандартии Чаморро (Сайпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Вақти Ҷазираҳои Гилберт (Тарава)',
         'Pacific/Tongatapu' => 'Вақти Тонга (Тонгатапу)',
         'Pacific/Truk' => 'Вақти Чук',
+        'Pacific/Chuuk' => 'Вақти Чук',
         'Pacific/Wake' => 'Вақти бедории ҷазира (Вейк)',
         'Pacific/Wallis' => 'Вақти Уоллис ва Футуна',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/th.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/th.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/th.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/th.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'เวลาแอฟริกาตะวันออก (แอดดิสอาบาบา)',
         'Africa/Algiers' => 'เวลายุโรปกลาง (แอลเจียร์)',
         'Africa/Asmera' => 'เวลาแอฟริกาตะวันออก (แอสมารา)',
+        'Africa/Asmara' => 'เวลาแอฟริกาตะวันออก (แอสมารา)',
         'Africa/Bamako' => 'เวลามาตรฐานกรีนิช (บามาโก)',
         'Africa/Bangui' => 'เวลาแอฟริกาตะวันตก (บังกี)',
         'Africa/Banjul' => 'เวลามาตรฐานกรีนิช (บันจูล)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'เวลาโคลอมเบีย (โบโกตา)',
         'America/Boise' => 'เวลาแถบภูเขาในอเมริกาเหนือ (บอยซี)',
         'America/Buenos_Aires' => 'เวลาอาร์เจนตินา (บัวโนสไอเรส)',
+        'America/Argentina/Buenos_Aires' => 'เวลาอาร์เจนตินา (บัวโนสไอเรส)',
         'America/Cambridge_Bay' => 'เวลาแถบภูเขาในอเมริกาเหนือ (อ่าวแคมบริดจ์)',
         'America/Campo_Grande' => 'เวลาแอมะซอน (กัมปูกรันดี)',
         'America/Cancun' => 'เวลาทางตะวันออกในอเมริกาเหนือ (แคนคุน)',
         'America/Caracas' => 'เวลาเวเนซุเอลา (คาราคัส)',
         'America/Catamarca' => 'เวลาอาร์เจนตินา (กาตามาร์กา)',
+        'America/Argentina/Catamarca' => 'เวลาอาร์เจนตินา (กาตามาร์กา)',
         'America/Cayenne' => 'เวลาเฟรนช์เกียนา (กาแยน)',
         'America/Cayman' => 'เวลาทางตะวันออกในอเมริกาเหนือ (เคย์แมน)',
         'America/Chicago' => 'เวลาตอนกลางในอเมริกาเหนือ (ชิคาโก)',
         'America/Chihuahua' => 'เวลาตอนกลางในอเมริกาเหนือ (ชีวาวา)',
         'America/Ciudad_Juarez' => 'เวลาแถบภูเขาในอเมริกาเหนือ (ซิวดัดฮัวเรซ)',
         'America/Coral_Harbour' => 'เวลาทางตะวันออกในอเมริกาเหนือ (คอรัลฮาร์เบอร์)',
+        'America/Atikokan' => 'เวลาทางตะวันออกในอเมริกาเหนือ (คอรัลฮาร์เบอร์)',
         'America/Cordoba' => 'เวลาอาร์เจนตินา (คอร์โดบา)',
+        'America/Argentina/Cordoba' => 'เวลาอาร์เจนตินา (คอร์โดบา)',
         'America/Costa_Rica' => 'เวลาตอนกลางในอเมริกาเหนือ (คอสตาริกา)',
+        'America/Coyhaique' => 'เวลาชิลี (โกไยเก)',
         'America/Creston' => 'เวลาแถบภูเขาในอเมริกาเหนือ (เครสตัน)',
         'America/Cuiaba' => 'เวลาแอมะซอน (กุยาบา)',
         'America/Curacao' => 'เวลาแอตแลนติก (คูราเซา)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'เวลาบราซิเลีย (ฟอร์ตาเลซา)',
         'America/Glace_Bay' => 'เวลาแอตแลนติก (เกลซเบย์)',
         'America/Godthab' => 'เวลากรีนแลนด์ (กอดแธบ)',
+        'America/Nuuk' => 'เวลากรีนแลนด์ (กอดแธบ)',
         'America/Goose_Bay' => 'เวลาแอตแลนติก (กูสเบย์)',
         'America/Grand_Turk' => 'เวลาทางตะวันออกในอเมริกาเหนือ (แกรนด์เติร์ก)',
         'America/Grenada' => 'เวลาแอตแลนติก (เกรนาดา)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'เวลาทางตะวันออกในอเมริกาเหนือ (วินเซนเนส, อินดีแอนา)',
         'America/Indiana/Winamac' => 'เวลาทางตะวันออกในอเมริกาเหนือ (วินาแมค, อินดีแอนา)',
         'America/Indianapolis' => 'เวลาทางตะวันออกในอเมริกาเหนือ (อินเดียแนโพลิส)',
+        'America/Indiana/Indianapolis' => 'เวลาทางตะวันออกในอเมริกาเหนือ (อินเดียแนโพลิส)',
         'America/Inuvik' => 'เวลาแถบภูเขาในอเมริกาเหนือ (อินูวิก)',
         'America/Iqaluit' => 'เวลาทางตะวันออกในอเมริกาเหนือ (อีกวาลิต)',
         'America/Jamaica' => 'เวลาทางตะวันออกในอเมริกาเหนือ (จาเมกา)',
         'America/Jujuy' => 'เวลาอาร์เจนตินา (จูจิว)',
+        'America/Argentina/Jujuy' => 'เวลาอาร์เจนตินา (จูจิว)',
         'America/Juneau' => 'เวลาอะแลสกา (จูโน)',
         'America/Kentucky/Monticello' => 'เวลาทางตะวันออกในอเมริกาเหนือ (มอนติเซลโล, เคนตักกี)',
         'America/Kralendijk' => 'เวลาแอตแลนติก (คราเลนดิจค์)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'เวลาเปรู (ลิมา)',
         'America/Los_Angeles' => 'เวลาแปซิฟิกในอเมริกาเหนือ (ลอสแองเจลิส)',
         'America/Louisville' => 'เวลาทางตะวันออกในอเมริกาเหนือ (ลูส์วิลล์)',
+        'America/Kentucky/Louisville' => 'เวลาทางตะวันออกในอเมริกาเหนือ (ลูส์วิลล์)',
         'America/Lower_Princes' => 'เวลาแอตแลนติก (โลเวอร์พรินซ์ ควอเตอร์)',
         'America/Maceio' => 'เวลาบราซิเลีย (มาเซโอ)',
         'America/Managua' => 'เวลาตอนกลางในอเมริกาเหนือ (มานากัว)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'เวลาตอนกลางในอเมริกาเหนือ (มาตาโมรอส)',
         'America/Mazatlan' => 'เวลาแปซิฟิกเม็กซิโก (มาซาทลาน)',
         'America/Mendoza' => 'เวลาอาร์เจนตินา (เมนดูซา)',
+        'America/Argentina/Mendoza' => 'เวลาอาร์เจนตินา (เมนดูซา)',
         'America/Menominee' => 'เวลาตอนกลางในอเมริกาเหนือ (เมโนมินี)',
         'America/Merida' => 'เวลาตอนกลางในอเมริกาเหนือ (เมรีดา)',
         'America/Metlakatla' => 'เวลาอะแลสกา (เมทลากาตละ)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'เวลาอาหรับ (เอเดน)',
         'Asia/Almaty' => 'เวลาคาซัคสถาน (อัลมาตี)',
         'Asia/Amman' => 'เวลายุโรปตะวันออก (อัมมาน)',
-        'Asia/Anadyr' => 'เวลาอะนาดีร์ (อานาดีร์)',
+        'Asia/Anadyr' => 'เวลาคัมชัตคา (อานาดีร์)',
         'Asia/Aqtau' => 'เวลาคาซัคสถาน (อัคตาอู)',
         'Asia/Aqtobe' => 'เวลาคาซัคสถาน (อัคโทบี)',
         'Asia/Ashgabat' => 'เวลาเติร์กเมนิสถาน (อาชกาบัต)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'เวลาอาหรับ (บาห์เรน)',
         'Asia/Baku' => 'เวลาอาเซอร์ไบจาน (บากู)',
         'Asia/Bangkok' => 'เวลาอินโดจีน (กรุงเทพ)',
-        'Asia/Barnaul' => 'เวลารัสเซีย (บาร์เนาว์)',
+        'Asia/Barnaul' => 'เวลาครัสโนยาสค์ (บาร์เนาว์)',
         'Asia/Beirut' => 'เวลายุโรปตะวันออก (เบรุต)',
         'Asia/Bishkek' => 'เวลาคีร์กีซสถาน (บิชเคก)',
         'Asia/Brunei' => 'เวลาบรูไนดารุสซาลาม',
         'Asia/Calcutta' => 'เวลาอินเดีย (โกลกาตา)',
+        'Asia/Kolkata' => 'เวลาอินเดีย (โกลกาตา)',
         'Asia/Chita' => 'เวลายาคุตสค์ (ชิตา)',
         'Asia/Colombo' => 'เวลาอินเดีย (โคลัมโบ)',
         'Asia/Damascus' => 'เวลายุโรปตะวันออก (ดามัสกัส)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'เวลาคัมชัตคา (คามชัตกา)',
         'Asia/Karachi' => 'เวลาปากีสถาน (การาจี)',
         'Asia/Katmandu' => 'เวลาเนปาล (กาตมันดุ)',
+        'Asia/Kathmandu' => 'เวลาเนปาล (กาตมันดุ)',
         'Asia/Khandyga' => 'เวลายาคุตสค์ (ฮันดืยกา)',
         'Asia/Krasnoyarsk' => 'เวลาครัสโนยาสค์ (ครัสโนยาร์สก์)',
         'Asia/Kuala_Lumpur' => 'เวลามาเลเซีย (กัวลาลัมเปอร์)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'เวลากัลฟ์ (มัสกัต)',
         'Asia/Nicosia' => 'เวลายุโรปตะวันออก (นิโคเซีย)',
         'Asia/Novokuznetsk' => 'เวลาครัสโนยาสค์ (โนโวคุซเนตสค์)',
-        'Asia/Novosibirsk' => 'เวลาโนโวซีบีสค์ (โนโวซิบิร์สก์)',
+        'Asia/Novosibirsk' => 'เวลาครัสโนยาสค์ (โนโวซิบิร์สก์)',
         'Asia/Omsk' => 'เวลาออมสค์ (โอมสก์)',
         'Asia/Oral' => 'เวลาคาซัคสถาน (ออรัล)',
         'Asia/Phnom_Penh' => 'เวลาอินโดจีน (พนมเปญ)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'เวลาคาซัคสถาน (คอสตาเนย์)',
         'Asia/Qyzylorda' => 'เวลาคาซัคสถาน (ไคซีลอร์ดา)',
         'Asia/Rangoon' => 'เวลาพม่า (ย่างกุ้ง)',
+        'Asia/Yangon' => 'เวลาพม่า (ย่างกุ้ง)',
         'Asia/Riyadh' => 'เวลาอาหรับ (ริยาร์ด)',
         'Asia/Saigon' => 'เวลาอินโดจีน (นครโฮจิมินห์)',
-        'Asia/Sakhalin' => 'เวลาซาคาลิน',
+        'Asia/Ho_Chi_Minh' => 'เวลาอินโดจีน (นครโฮจิมินห์)',
+        'Asia/Sakhalin' => 'เวลามากาดาน (ซาคาลิน)',
         'Asia/Samarkand' => 'เวลาอุซเบกิสถาน (ซามาร์กานด์)',
         'Asia/Seoul' => 'เวลาเกาหลี (โซล)',
         'Asia/Shanghai' => 'เวลาจีน (เซี่ยงไฮ้)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'เวลาอิหร่าน (เตหะราน)',
         'Asia/Thimphu' => 'เวลาภูฏาน (ทิมพู)',
         'Asia/Tokyo' => 'เวลาญี่ปุ่น (โตเกียว)',
-        'Asia/Tomsk' => 'เวลารัสเซีย (ตอมสค์)',
+        'Asia/Tomsk' => 'เวลาครัสโนยาสค์ (ตอมสค์)',
         'Asia/Ulaanbaatar' => 'เวลาอูลานบาตอร์',
         'Asia/Urumqi' => 'เวลาจีน (อุรุมชี)',
         'Asia/Ust-Nera' => 'เวลาวลาดีวอสตอค (อุสต์เนรา)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'เวลายุโรปตะวันตก (คะเนรี)',
         'Atlantic/Cape_Verde' => 'เวลาเคปเวิร์ด',
         'Atlantic/Faeroe' => 'เวลายุโรปตะวันตก (แฟโร)',
+        'Atlantic/Faroe' => 'เวลายุโรปตะวันตก (แฟโร)',
         'Atlantic/Madeira' => 'เวลายุโรปตะวันตก (มาเดรา)',
         'Atlantic/Reykjavik' => 'เวลามาตรฐานกรีนิช (เรคยาวิก)',
         'Atlantic/South_Georgia' => 'เวลาเซาท์จอร์เจีย (เซาท์ จอร์เจีย)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'เวลาสากลเชิงพิกัด',
         'Europe/Amsterdam' => 'เวลายุโรปกลาง (อัมสเตอดัม)',
         'Europe/Andorra' => 'เวลายุโรปกลาง (อันดอร์รา)',
-        'Europe/Astrakhan' => 'เวลามอสโก (แอสตราคาน)',
+        'Europe/Astrakhan' => 'เวลาซามารา (แอสตราคาน)',
         'Europe/Athens' => 'เวลายุโรปตะวันออก (เอเธนส์)',
         'Europe/Belgrade' => 'เวลายุโรปกลาง (เบลเกรด)',
         'Europe/Berlin' => 'เวลายุโรปกลาง (เบอร์ลิน)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'เวลามาตรฐานกรีนิช (เจอร์ซีย์)',
         'Europe/Kaliningrad' => 'เวลายุโรปตะวันออก (คาลินิงกราด)',
         'Europe/Kiev' => 'เวลายุโรปตะวันออก (เคียฟ)',
-        'Europe/Kirov' => 'เวลารัสเซีย (คิรอฟ)',
+        'Europe/Kyiv' => 'เวลายุโรปตะวันออก (เคียฟ)',
+        'Europe/Kirov' => 'เวลามอสโก (คิรอฟ)',
         'Europe/Lisbon' => 'เวลายุโรปตะวันตก (ลิสบอน)',
         'Europe/Ljubljana' => 'เวลายุโรปกลาง (ลูบลิยานา)',
         'Europe/London' => 'เวลามาตรฐานกรีนิช (ลอนดอน)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'เวลาซามารา',
         'Europe/San_Marino' => 'เวลายุโรปกลาง (ซานมารีโน)',
         'Europe/Sarajevo' => 'เวลายุโรปกลาง (ซาราเยโว)',
-        'Europe/Saratov' => 'เวลามอสโก (ซาราทอฟ)',
+        'Europe/Saratov' => 'เวลาซามารา (ซาราทอฟ)',
         'Europe/Simferopol' => 'เวลามอสโก (ซิมเฟอโรโปล)',
         'Europe/Skopje' => 'เวลายุโรปกลาง (สโกเปีย)',
         'Europe/Sofia' => 'เวลายุโรปตะวันออก (โซเฟีย)',
         'Europe/Stockholm' => 'เวลายุโรปกลาง (สตอกโฮล์ม)',
         'Europe/Tallinn' => 'เวลายุโรปตะวันออก (ทาลลินน์)',
         'Europe/Tirane' => 'เวลายุโรปกลาง (ติรานา)',
-        'Europe/Ulyanovsk' => 'เวลามอสโก (อะลิยานอฟ)',
+        'Europe/Ulyanovsk' => 'เวลาซามารา (อะลิยานอฟ)',
         'Europe/Vaduz' => 'เวลายุโรปกลาง (วาดุซ)',
         'Europe/Vatican' => 'เวลายุโรปกลาง (วาติกัน)',
         'Europe/Vienna' => 'เวลายุโรปกลาง (เวียนนา)',
         'Europe/Vilnius' => 'เวลายุโรปตะวันออก (วิลนีอุส)',
-        'Europe/Volgograd' => 'เวลาวอลโกกราด',
+        'Europe/Volgograd' => 'เวลามอสโก (วอลโกกราด)',
         'Europe/Warsaw' => 'เวลายุโรปกลาง (วอร์ซอ)',
         'Europe/Zagreb' => 'เวลายุโรปกลาง (ซาเกร็บ)',
         'Europe/Zurich' => 'เวลายุโรปกลาง (ซูริค)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'เวลาแชทัม',
         'Pacific/Easter' => 'เวลาเกาะอีสเตอร์',
         'Pacific/Efate' => 'เวลาวานูอาตู (เอฟาเต)',
-        'Pacific/Enderbury' => 'เวลาหมู่เกาะฟินิกซ์ (เอนเดอร์เบอรี)',
+        'Pacific/Enderbury' => 'เวลาหมู่เกาะฟินิกซ์ (แคนทอน)',
+        'Pacific/Kanton' => 'เวลาหมู่เกาะฟินิกซ์ (แคนทอน)',
         'Pacific/Fakaofo' => 'เวลาโตเกเลา (ฟาเคาโฟ)',
         'Pacific/Fiji' => 'เวลาฟิจิ',
         'Pacific/Funafuti' => 'เวลาตูวาลู (ฟูนะฟูตี)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'เวลาแกมเบียร์',
         'Pacific/Guadalcanal' => 'เวลาหมู่เกาะโซโลมอน (กัวดัลคานัล)',
         'Pacific/Guam' => 'เวลาชามอร์โร (กวม)',
-        'Pacific/Honolulu' => 'เวลาฮาวาย-อะลูเชียน (โฮโนลูลู)',
+        'Pacific/Honolulu' => 'เวลามาตรฐานฮาวาย-อะลูเชียน (โฮโนลูลู)',
         'Pacific/Kiritimati' => 'เวลาหมู่เกาะไลน์ (คิริทิมาตี)',
         'Pacific/Kosrae' => 'เวลาคอสไร',
         'Pacific/Kwajalein' => 'เวลาหมู่เกาะมาร์แชลล์ (ควาจาเลน)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'เวลาปาเลา',
         'Pacific/Pitcairn' => 'เวลาพิตแคร์น',
         'Pacific/Ponape' => 'เวลาโปนาเป',
+        'Pacific/Pohnpei' => 'เวลาโปนาเป',
         'Pacific/Port_Moresby' => 'เวลาปาปัวนิวกินี (พอร์ตมอร์สบี)',
         'Pacific/Rarotonga' => 'เวลาหมู่เกาะคุก (ราโรตองกา)',
         'Pacific/Saipan' => 'เวลาชามอร์โร (ไซปัน)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'เวลาหมู่เกาะกิลเบิร์ต (ตาระวา)',
         'Pacific/Tongatapu' => 'เวลาตองกา (ตองกาตาปู)',
         'Pacific/Truk' => 'เวลาชุก (ทรัก)',
+        'Pacific/Chuuk' => 'เวลาชุก (ทรัก)',
         'Pacific/Wake' => 'เวลาเกาะเวก',
         'Pacific/Wallis' => 'เวลาวาลลิสและฟุตูนา',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ti.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ti.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ti.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ti.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'ግዜ ምብራቕ ኣፍሪቃ (ኣዲስ ኣበባ)',
         'Africa/Algiers' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ኣልጀርስ)',
         'Africa/Asmera' => 'ግዜ ምብራቕ ኣፍሪቃ (ኣስመራ)',
+        'Africa/Asmara' => 'ግዜ ምብራቕ ኣፍሪቃ (ኣስመራ)',
         'Africa/Bamako' => 'GMT (ባማኮ)',
         'Africa/Bangui' => 'ግዜ ምዕራብ ኣፍሪቃ (ባንጊ)',
         'Africa/Banjul' => 'GMT (ባንጁል)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'ግዜ ኮሎምብያ (ቦጎታ)',
         'America/Boise' => 'ናይ ጎቦ ግዘ (ቦይዚ)',
         'America/Buenos_Aires' => 'ግዜ ኣርጀንቲና (ብወኖስ ኣይረስ)',
+        'America/Argentina/Buenos_Aires' => 'ግዜ ኣርጀንቲና (ብወኖስ ኣይረስ)',
         'America/Cambridge_Bay' => 'ናይ ጎቦ ግዘ (ካምብሪጅ በይ)',
         'America/Campo_Grande' => 'ግዜ ኣማዞን (ካምፖ ግራንደ)',
         'America/Cancun' => 'ናይ ምብራቓዊ ግዘ (ካንኩን)',
         'America/Caracas' => 'ግዜ ቬኔዝዌላ (ካራካስ)',
         'America/Catamarca' => 'ግዜ ኣርጀንቲና (ካታማርካ)',
+        'America/Argentina/Catamarca' => 'ግዜ ኣርጀንቲና (ካታማርካ)',
         'America/Cayenne' => 'ግዜ ፈረንሳዊት ጊያና (ካየን)',
         'America/Cayman' => 'ናይ ምብራቓዊ ግዘ (ካይማን)',
         'America/Chicago' => 'ማእከላይ አመሪካ ግዘ (ቺካጎ)',
         'America/Chihuahua' => 'ማእከላይ አመሪካ ግዘ (ቺዋዋ)',
         'America/Ciudad_Juarez' => 'ናይ ጎቦ ግዘ (ሲዩዳድ ጁዋረዝ)',
         'America/Coral_Harbour' => 'ናይ ምብራቓዊ ግዘ (ኣቲኮካን)',
+        'America/Atikokan' => 'ናይ ምብራቓዊ ግዘ (ኣቲኮካን)',
         'America/Cordoba' => 'ግዜ ኣርጀንቲና (ኮርዶባ)',
+        'America/Argentina/Cordoba' => 'ግዜ ኣርጀንቲና (ኮርዶባ)',
         'America/Costa_Rica' => 'ማእከላይ አመሪካ ግዘ (ኮስታ ሪካ)',
+        'America/Coyhaique' => 'ግዜ ቺሌ (ኮሃይክ)',
         'America/Creston' => 'ናይ ጎቦ ግዘ (ክረስተን)',
         'America/Cuiaba' => 'ግዜ ኣማዞን (ኩያባ)',
         'America/Curacao' => 'ናይ አትላንቲክ ግዘ (ኩራሳው)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'ግዜ ብራዚልያ (ፎርታለዛ)',
         'America/Glace_Bay' => 'ናይ አትላንቲክ ግዘ (ግሌስ በይ)',
         'America/Godthab' => 'ግዘ ግሪንላንድ (ኑክ)',
+        'America/Nuuk' => 'ግዘ ግሪንላንድ (ኑክ)',
         'America/Goose_Bay' => 'ናይ አትላንቲክ ግዘ (ጉዝ በይ)',
         'America/Grand_Turk' => 'ናይ ምብራቓዊ ግዘ (ግራንድ ቱርክ)',
         'America/Grenada' => 'ናይ አትላንቲክ ግዘ (ግረናዳ)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ናይ ምብራቓዊ ግዘ (ቪንሰንስ፣ ኢንድያና)',
         'America/Indiana/Winamac' => 'ናይ ምብራቓዊ ግዘ (ዊናማክ፣ ኢንድያና)',
         'America/Indianapolis' => 'ናይ ምብራቓዊ ግዘ (ኢንድያናፖሊስ)',
+        'America/Indiana/Indianapolis' => 'ናይ ምብራቓዊ ግዘ (ኢንድያናፖሊስ)',
         'America/Inuvik' => 'ናይ ጎቦ ግዘ (ኢኑቪክ)',
         'America/Iqaluit' => 'ናይ ምብራቓዊ ግዘ (ኢቃልዊት)',
         'America/Jamaica' => 'ናይ ምብራቓዊ ግዘ (ጃማይካ)',
         'America/Jujuy' => 'ግዜ ኣርጀንቲና (ሁሁይ)',
+        'America/Argentina/Jujuy' => 'ግዜ ኣርጀንቲና (ሁሁይ)',
         'America/Juneau' => 'ግዘ አላስካ (ጁነው)',
         'America/Kentucky/Monticello' => 'ናይ ምብራቓዊ ግዘ (ሞንቲቸሎ፣ ከንታኪ)',
         'America/Kralendijk' => 'ናይ አትላንቲክ ግዘ (ክራለንዳይክ)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'ግዜ ፔሩ (ሊማ)',
         'America/Los_Angeles' => 'ናይ ፓስፊክ ግዘ (ሎስ ኣንጀለስ)',
         'America/Louisville' => 'ናይ ምብራቓዊ ግዘ (ልዊቪል)',
+        'America/Kentucky/Louisville' => 'ናይ ምብራቓዊ ግዘ (ልዊቪል)',
         'America/Lower_Princes' => 'ናይ አትላንቲክ ግዘ (ለወር ፕሪንሰስ ኳርተር)',
         'America/Maceio' => 'ግዜ ብራዚልያ (ማሰዮ)',
         'America/Managua' => 'ማእከላይ አመሪካ ግዘ (ማናጓ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'ማእከላይ አመሪካ ግዘ (ማታሞሮስ)',
         'America/Mazatlan' => 'ናይ ሜክሲኮ ፓስፊክ ግዘ (ማዛትላን)',
         'America/Mendoza' => 'ግዜ ኣርጀንቲና (መንዶዛ)',
+        'America/Argentina/Mendoza' => 'ግዜ ኣርጀንቲና (መንዶዛ)',
         'America/Menominee' => 'ማእከላይ አመሪካ ግዘ (ሜኖሚኒ)',
         'America/Merida' => 'ማእከላይ አመሪካ ግዘ (መሪዳ)',
         'America/Metlakatla' => 'ግዘ አላስካ (መትላካትላ)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'ናይ አረብ ግዘ (ባሕሬን)',
         'Asia/Baku' => 'ናይ አዘርባዣን ግዘ (ባኩ)',
         'Asia/Bangkok' => 'ናይ ኢንዶቻይና ግዘ (ባንግኮክ)',
-        'Asia/Barnaul' => 'ግዘ ሩስያ (ባርናውል)',
+        'Asia/Barnaul' => 'ናይ ክራንስኖያርክ ግዘ (ባርናውል)',
         'Asia/Beirut' => 'ናይ ምብራቕ ኤውሮጳ ግዘ (በይሩት)',
         'Asia/Bishkek' => 'ናይ ክርጅስታን ግዘ (ቢሽኬክ)',
         'Asia/Brunei' => 'ናይ ብሩኔ ዳሩሳሌም ግዘ (ብሩነይ)',
         'Asia/Calcutta' => 'ናይ መደበኛ ህንድ ግዘ (ኮልካታ)',
+        'Asia/Kolkata' => 'ናይ መደበኛ ህንድ ግዘ (ኮልካታ)',
         'Asia/Chita' => 'ናይ ያኩትስክ ግዘ (ቺታ)',
         'Asia/Colombo' => 'ናይ መደበኛ ህንድ ግዘ (ኮሎምቦ)',
         'Asia/Damascus' => 'ናይ ምብራቕ ኤውሮጳ ግዘ (ደማስቆ)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ግዘ ሩስያ (ካምቻትካ)',
         'Asia/Karachi' => 'ናይ ፓኪስታን ግዘ (ካራቺ)',
         'Asia/Katmandu' => 'ናይ ኔፓል ግዘ (ካትማንዱ)',
+        'Asia/Kathmandu' => 'ናይ ኔፓል ግዘ (ካትማንዱ)',
         'Asia/Khandyga' => 'ናይ ያኩትስክ ግዘ (ካንዲጋ)',
         'Asia/Krasnoyarsk' => 'ናይ ክራንስኖያርክ ግዘ (ክራስኖያርስክ)',
         'Asia/Kuala_Lumpur' => 'ናይ ማሌዢያ ግዘ (ኳላ ሉምፑር)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'ናይ መደበኛ ገልፍ ግዘ (ሙስካት)',
         'Asia/Nicosia' => 'ናይ ምብራቕ ኤውሮጳ ግዘ (ኒኮስያ)',
         'Asia/Novokuznetsk' => 'ናይ ክራንስኖያርክ ግዘ (ኖቮኩዝነትስክ)',
-        'Asia/Novosibirsk' => 'ናይ ኖቮሲሪስክ ግዘ (ኖቮሲቢርስክ)',
+        'Asia/Novosibirsk' => 'ናይ ክራንስኖያርክ ግዘ (ኖቮሲቢርስክ)',
         'Asia/Omsk' => 'ናይ ኦምስክ ግዘ',
         'Asia/Oral' => 'ናይ ካዛኪስታን ግዘ (ኦራል)',
         'Asia/Phnom_Penh' => 'ናይ ኢንዶቻይና ግዘ (ፕኖም ፐን)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'ናይ ካዛኪስታን ግዘ (ኮስታናይ)',
         'Asia/Qyzylorda' => 'ናይ ካዛኪስታን ግዘ (ኪዚሎርዳ)',
         'Asia/Rangoon' => 'ናይ ምያንማር ግዘ (ያንጎን)',
+        'Asia/Yangon' => 'ናይ ምያንማር ግዘ (ያንጎን)',
         'Asia/Riyadh' => 'ናይ አረብ ግዘ (ርያድ)',
         'Asia/Saigon' => 'ናይ ኢንዶቻይና ግዘ (ከተማ ሆ ቺ ሚን)',
-        'Asia/Sakhalin' => 'ናይ ሳክሃሊን ግዘ (ሳካሊን)',
+        'Asia/Ho_Chi_Minh' => 'ናይ ኢንዶቻይና ግዘ (ከተማ ሆ ቺ ሚን)',
+        'Asia/Sakhalin' => 'ናይ ሜጋዳን ግዘ (ሳካሊን)',
         'Asia/Samarkand' => 'ናይ ኡዝቤኪስታን ግዘ (ሳማርካንድ)',
         'Asia/Seoul' => 'ናይ ኮሪያን ግዘ (ሶውል)',
         'Asia/Shanghai' => 'ናይ ቻይና ግዘ (ሻንግሃይ)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ናይ ኢራን ግዘ (ተህራን)',
         'Asia/Thimphu' => 'ናይ ቡህታን ግዘ (ቲምፉ)',
         'Asia/Tokyo' => 'ናይ ጃፓን ግዘ (ቶክዮ)',
-        'Asia/Tomsk' => 'ግዘ ሩስያ (ቶምስክ)',
+        'Asia/Tomsk' => 'ናይ ክራንስኖያርክ ግዘ (ቶምስክ)',
         'Asia/Ulaanbaatar' => 'ናይ ኡላንባታር ግዘ (ኡላን ባቶር)',
         'Asia/Urumqi' => 'ግዘ ቻይና (ኡሩምኪ)',
         'Asia/Ust-Nera' => 'ናይ ቭላዲቮስቶክ ግዘ (ኡስት-ኔራ)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'ናይ ምዕራባዊ ኤውሮጳዊ ግዘ (ካናሪ)',
         'Atlantic/Cape_Verde' => 'ግዜ ኬፕ ቨርደ',
         'Atlantic/Faeroe' => 'ናይ ምዕራባዊ ኤውሮጳዊ ግዘ (ደሴታት ፋሮ)',
+        'Atlantic/Faroe' => 'ናይ ምዕራባዊ ኤውሮጳዊ ግዘ (ደሴታት ፋሮ)',
         'Atlantic/Madeira' => 'ናይ ምዕራባዊ ኤውሮጳዊ ግዘ (ማደይራ)',
         'Atlantic/Reykjavik' => 'GMT (ረይክያቪክ)',
         'Atlantic/South_Georgia' => 'ግዜ ደቡብ ጆርጅያ',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'ዝተሳነየ ኣድማሳዊ ግዜ',
         'Europe/Amsterdam' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ኣምስተርዳም)',
         'Europe/Andorra' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ኣንዶራ)',
-        'Europe/Astrakhan' => 'ናይ ሞስኮው ግዘ (ኣስትራካን)',
+        'Europe/Astrakhan' => 'ግዘ ሩስያ (ኣስትራካን)',
         'Europe/Athens' => 'ናይ ምብራቕ ኤውሮጳ ግዘ (ኣቴንስ)',
         'Europe/Belgrade' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (በልግሬድ)',
         'Europe/Berlin' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (በርሊን)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'GMT (ጀርዚ)',
         'Europe/Kaliningrad' => 'ናይ ምብራቕ ኤውሮጳ ግዘ (ካሊኒንግራድ)',
         'Europe/Kiev' => 'ናይ ምብራቕ ኤውሮጳ ግዘ (ክየቭ)',
-        'Europe/Kirov' => 'ግዘ ሩስያ (ኪሮቭ)',
+        'Europe/Kyiv' => 'ናይ ምብራቕ ኤውሮጳ ግዘ (ክየቭ)',
+        'Europe/Kirov' => 'ናይ ሞስኮው ግዘ (ኪሮቭ)',
         'Europe/Lisbon' => 'ናይ ምዕራባዊ ኤውሮጳዊ ግዘ (ሊዝበን)',
         'Europe/Ljubljana' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ልዩብልያና)',
         'Europe/London' => 'GMT (ሎንደን)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'ግዘ ሩስያ (ሳማራ)',
         'Europe/San_Marino' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ሳን ማሪኖ)',
         'Europe/Sarajevo' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ሳራየቮ)',
-        'Europe/Saratov' => 'ናይ ሞስኮው ግዘ (ሳራቶቭ)',
+        'Europe/Saratov' => 'ግዘ ሩስያ (ሳራቶቭ)',
         'Europe/Simferopol' => 'ናይ ሞስኮው ግዘ (ሲምፈሮፖል)',
         'Europe/Skopje' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ስኮፕየ)',
         'Europe/Sofia' => 'ናይ ምብራቕ ኤውሮጳ ግዘ (ሶፍያ)',
         'Europe/Stockholm' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ስቶክሆልም)',
         'Europe/Tallinn' => 'ናይ ምብራቕ ኤውሮጳ ግዘ (ታሊን)',
         'Europe/Tirane' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ቲራና)',
-        'Europe/Ulyanovsk' => 'ናይ ሞስኮው ግዘ (ኡልያኖቭስክ)',
+        'Europe/Ulyanovsk' => 'ግዘ ሩስያ (ኡልያኖቭስክ)',
         'Europe/Vaduz' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ቫዱዝ)',
         'Europe/Vatican' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ቫቲካን)',
         'Europe/Vienna' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ቭየና)',
         'Europe/Vilnius' => 'ናይ ምብራቕ ኤውሮጳ ግዘ (ቪልንየስ)',
-        'Europe/Volgograd' => 'ናይ ቮልጎግራድ ግዘ',
+        'Europe/Volgograd' => 'ናይ ሞስኮው ግዘ (ቮልጎግራድ)',
         'Europe/Warsaw' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ዋርሳው)',
         'Europe/Zagreb' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ዛግረብ)',
         'Europe/Zurich' => 'ናይ ማእከላይ ኤውሮጳ ግዘ (ዙሪክ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'ናይ ቻትሃም ግዘ (ቻታም)',
         'Pacific/Easter' => 'ግዜ ደሴት ፋሲካ',
         'Pacific/Efate' => 'ናይ ቫኗታው ግዘ (ኤፋቴ)',
-        'Pacific/Enderbury' => 'ናይ ፊኒክስ ደሴታት ግዘ (ኤንደርበሪ)',
+        'Pacific/Enderbury' => 'ናይ ፊኒክስ ደሴታት ግዘ (ካንቶን)',
+        'Pacific/Kanton' => 'ናይ ፊኒክስ ደሴታት ግዘ (ካንቶን)',
         'Pacific/Fakaofo' => 'ናይ ቶኬላው ግዘ (ፋካኦፎ)',
         'Pacific/Fiji' => 'ናይ ፊጂ ግዘ',
         'Pacific/Funafuti' => 'ናይ ቱቫሉ ግዘ (ፉናፉቲ)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'ናይ ጋምቢየር ግዘ (ጋምብየር)',
         'Pacific/Guadalcanal' => 'ናይ ሶሎሞን ደሴታት ግዘ (ጓዳልካናል)',
         'Pacific/Guam' => 'ናይ መደበኛ ቻሞሮ ግዘ (ጓም)',
-        'Pacific/Honolulu' => 'ናይ ሃዋይ-ኣሌውቲያን ግዘ (ሆኖሉሉ)',
+        'Pacific/Honolulu' => 'ናይ መደበኛ ሃዋይ-ኣሌውቲያን ግዘ (ሆኖሉሉ)',
         'Pacific/Kiritimati' => 'ናይ ላይን ደሴታት ግዘ (ኪሪቲማቲ)',
         'Pacific/Kosrae' => 'ናይ ኮርሳይ ግዘ (ኮስሬ)',
         'Pacific/Kwajalein' => 'ናይ ማርሻል ደሴታት ግዘ (ክዋጃሊን)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'ናይ ፓላው ግዘ',
         'Pacific/Pitcairn' => 'ናይ ፒትቻይርን ግዘ (ፒትከርን)',
         'Pacific/Ponape' => 'ናይ ፖናፔ ግዘ (ፖንፐይ)',
+        'Pacific/Pohnpei' => 'ናይ ፖናፔ ግዘ (ፖንፐይ)',
         'Pacific/Port_Moresby' => 'ናይ ፓፗ ኒው ጊኒ ግዘ (ፖርት ሞርስቢ)',
         'Pacific/Rarotonga' => 'ናይ ኩክ ደሴት ግዘ (ራሮቶንጋ)',
         'Pacific/Saipan' => 'ናይ መደበኛ ቻሞሮ ግዘ (ሳይፓን)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'ናይ ጊልበርት ደሴታት ግዘ (ታራዋ)',
         'Pacific/Tongatapu' => 'ናይ ቶንጋ ግዘ (ቶንጋታፑ)',
         'Pacific/Truk' => 'ናይ ቹክ ግዘ',
+        'Pacific/Chuuk' => 'ናይ ቹክ ግዘ',
         'Pacific/Wake' => 'ናይ ዌክ ደሴት ግዘ',
         'Pacific/Wallis' => 'ናይ ዌልስን ፉቷ ግዘ (ዋሊስ)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tk.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Gündogar Afrika wagty (Addis-Abeba)',
         'Africa/Algiers' => 'Merkezi Ýewropa wagty (Alžir)',
         'Africa/Asmera' => 'Gündogar Afrika wagty (Asmara)',
+        'Africa/Asmara' => 'Gündogar Afrika wagty (Asmara)',
         'Africa/Bamako' => 'Grinwiç ortaça wagty (Bamako)',
         'Africa/Bangui' => 'Günbatar Afrika wagty (Bangi)',
         'Africa/Banjul' => 'Grinwiç ortaça wagty (Banjul)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Günbatar Afrika wagty (Kinşasa)',
         'Africa/Lagos' => 'Günbatar Afrika wagty (Lagos)',
         'Africa/Libreville' => 'Günbatar Afrika wagty (Librewil)',
-        'Africa/Lome' => 'Grinwiç ortaça wagty (Lome)',
+        'Africa/Lome' => 'Grinwiç ortaça wagty (Lomé)',
         'Africa/Luanda' => 'Günbatar Afrika wagty (Luanda)',
         'Africa/Lubumbashi' => 'Merkezi Afrika wagty (Lubumbaşi)',
         'Africa/Lusaka' => 'Merkezi Afrika wagty (Lusaka)',
@@ -75,22 +76,27 @@
         'America/Belize' => 'Merkezi Amerika (Beliz)',
         'America/Blanc-Sablon' => 'Atlantik wagty (Blank-Sablon)',
         'America/Boa_Vista' => 'Amazon wagty (Boa-Wista)',
-        'America/Bogota' => 'Kolumbiýa wagty (Bogota)',
+        'America/Bogota' => 'Kolumbiýa wagty (Bogotá)',
         'America/Boise' => 'Demirgazyk Amerika dag wagty (Boýse)',
         'America/Buenos_Aires' => 'Argentina wagty (Buenos-Aýres)',
+        'America/Argentina/Buenos_Aires' => 'Argentina wagty (Buenos-Aýres)',
         'America/Cambridge_Bay' => 'Demirgazyk Amerika dag wagty (Kembrij-Beý)',
         'America/Campo_Grande' => 'Amazon wagty (Kampu-Grandi)',
         'America/Cancun' => 'Demirgazyk Amerika gündogar wagty (Kankun)',
         'America/Caracas' => 'Wenesuela wagty (Karakas)',
         'America/Catamarca' => 'Argentina wagty (Katamarka)',
+        'America/Argentina/Catamarca' => 'Argentina wagty (Katamarka)',
         'America/Cayenne' => 'Fransuz Gwianasy wagty (Kaýenna)',
         'America/Cayman' => 'Demirgazyk Amerika gündogar wagty (Kaýman adalary)',
         'America/Chicago' => 'Merkezi Amerika (Çikago)',
         'America/Chihuahua' => 'Merkezi Amerika (Çihuahua)',
         'America/Ciudad_Juarez' => 'Demirgazyk Amerika dag wagty (Sýudad-Huares)',
         'America/Coral_Harbour' => 'Demirgazyk Amerika gündogar wagty (Atikokan)',
+        'America/Atikokan' => 'Demirgazyk Amerika gündogar wagty (Atikokan)',
         'America/Cordoba' => 'Argentina wagty (Kordowa)',
+        'America/Argentina/Cordoba' => 'Argentina wagty (Kordowa)',
         'America/Costa_Rica' => 'Merkezi Amerika (Kosta-Rika)',
+        'America/Coyhaique' => 'Çili wagty (Koýýaik)',
         'America/Creston' => 'Demirgazyk Amerika dag wagty (Kreston)',
         'America/Cuiaba' => 'Amazon wagty (Kuýaba)',
         'America/Curacao' => 'Atlantik wagty (Kýurasao)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Demirgazyk Amerika gündogar wagty (Detroýt)',
         'America/Dominica' => 'Atlantik wagty (Dominika)',
         'America/Edmonton' => 'Demirgazyk Amerika dag wagty (Edmonton)',
-        'America/Eirunepe' => 'Braziliýa wagty (Eýrunepe)',
+        'America/Eirunepe' => 'Akri wagty (Eýrunepe)',
         'America/El_Salvador' => 'Merkezi Amerika (Salwador)',
         'America/Fort_Nelson' => 'Demirgazyk Amerika dag wagty (Fort Nelson)',
         'America/Fortaleza' => 'Braziliýa wagty (Fortaleza)',
         'America/Glace_Bay' => 'Atlantik wagty (Gleýs-Beý)',
         'America/Godthab' => 'Grenlandiýa wagty (Nuuk)',
+        'America/Nuuk' => 'Grenlandiýa wagty (Nuuk)',
         'America/Goose_Bay' => 'Atlantik wagty (Gus-Beý)',
         'America/Grand_Turk' => 'Demirgazyk Amerika gündogar wagty (Grand-Terk)',
         'America/Grenada' => 'Atlantik wagty (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Demirgazyk Amerika gündogar wagty (Winsens, Indiana)',
         'America/Indiana/Winamac' => 'Demirgazyk Amerika gündogar wagty (Winamak, Indiana)',
         'America/Indianapolis' => 'Demirgazyk Amerika gündogar wagty (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Demirgazyk Amerika gündogar wagty (Indianapolis)',
         'America/Inuvik' => 'Demirgazyk Amerika dag wagty (Inuwik)',
         'America/Iqaluit' => 'Demirgazyk Amerika gündogar wagty (Ikaluit)',
         'America/Jamaica' => 'Demirgazyk Amerika gündogar wagty (Ýamaýka)',
         'America/Jujuy' => 'Argentina wagty (Žužuý)',
+        'America/Argentina/Jujuy' => 'Argentina wagty (Žužuý)',
         'America/Juneau' => 'Alýaska wagty (Džuno)',
         'America/Kentucky/Monticello' => 'Demirgazyk Amerika gündogar wagty (Montisello, Kentuki)',
         'America/Kralendijk' => 'Atlantik wagty (Kralendeýk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Peru wagty (Lima)',
         'America/Los_Angeles' => 'Demirgazyk Amerika Ýuwaş umman wagty (Los-Anjeles)',
         'America/Louisville' => 'Demirgazyk Amerika gündogar wagty (Luiswill)',
+        'America/Kentucky/Louisville' => 'Demirgazyk Amerika gündogar wagty (Luiswill)',
         'America/Lower_Princes' => 'Atlantik wagty (Lower-Prinses-Kuorter)',
         'America/Maceio' => 'Braziliýa wagty (Maseýo)',
         'America/Managua' => 'Merkezi Amerika (Managua)',
@@ -143,8 +153,9 @@
         'America/Marigot' => 'Atlantik wagty (Marigo)',
         'America/Martinique' => 'Atlantik wagty (Martinika)',
         'America/Matamoros' => 'Merkezi Amerika (Matamoros)',
-        'America/Mazatlan' => 'Meksikan Ýuwaş umman wagty (Mazatlan)',
+        'America/Mazatlan' => 'Meksikan Ýuwaş umman wagty (Mazatlán)',
         'America/Mendoza' => 'Argentina wagty (Mendosa)',
+        'America/Argentina/Mendoza' => 'Argentina wagty (Mendosa)',
         'America/Menominee' => 'Merkezi Amerika (Menomini)',
         'America/Merida' => 'Merkezi Amerika (Merida)',
         'America/Metlakatla' => 'Alýaska wagty (Metlakatla)',
@@ -174,8 +185,8 @@
         'America/Recife' => 'Braziliýa wagty (Resifi)',
         'America/Regina' => 'Merkezi Amerika (Rejaýna)',
         'America/Resolute' => 'Merkezi Amerika (Rezolýut)',
-        'America/Rio_Branco' => 'Braziliýa wagty (Riu-Branku)',
-        'America/Santarem' => 'Braziliýa wagty (Santarem)',
+        'America/Rio_Branco' => 'Akri wagty (Riu-Branku)',
+        'America/Santarem' => 'Braziliýa wagty (Santarém)',
         'America/Santiago' => 'Çili wagty (Santýago)',
         'America/Santo_Domingo' => 'Atlantik wagty (Santo-Domingo)',
         'America/Sao_Paulo' => 'Braziliýa wagty (San-Paulu)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Arap ýurtlary wagty (Aden)',
         'Asia/Almaty' => 'Gazagystan wagty (Almaty)',
         'Asia/Amman' => 'Gündogar Ýewropa wagty (Amman)',
-        'Asia/Anadyr' => 'Anadyr wagty',
+        'Asia/Anadyr' => 'Petropavlowsk-Kamçatskiý wagty (Anadyr)',
         'Asia/Aqtau' => 'Gazagystan wagty (Aktau)',
         'Asia/Aqtobe' => 'Gazagystan wagty (Aktobe)',
         'Asia/Ashgabat' => 'Türkmenistan wagty (Aşgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arap ýurtlary wagty (Bahreýn)',
         'Asia/Baku' => 'Azerbaýjan wagty (Baku)',
         'Asia/Bangkok' => 'Hindihytaý wagty (Bangkok)',
-        'Asia/Barnaul' => 'Russiýa wagty (Barnaul)',
+        'Asia/Barnaul' => 'Krasnoýarsk wagty (Barnaul)',
         'Asia/Beirut' => 'Gündogar Ýewropa wagty (Beýrut)',
         'Asia/Bishkek' => 'Gyrgyzystan wagty (Bişkek)',
         'Asia/Brunei' => 'Bruneý-Darussalam wagty',
         'Asia/Calcutta' => 'Hindistan standart wagty (Kalkutta)',
+        'Asia/Kolkata' => 'Hindistan standart wagty (Kalkutta)',
         'Asia/Chita' => 'Ýakutsk wagty (Çita)',
         'Asia/Colombo' => 'Hindistan standart wagty (Kolombo)',
         'Asia/Damascus' => 'Gündogar Ýewropa wagty (Damask)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlowsk-Kamçatskiý wagty (Kamçatka)',
         'Asia/Karachi' => 'Pakistan wagty (Karaçi)',
         'Asia/Katmandu' => 'Nepal wagty (Katmandu)',
+        'Asia/Kathmandu' => 'Nepal wagty (Katmandu)',
         'Asia/Khandyga' => 'Ýakutsk wagty (Handyga)',
         'Asia/Krasnoyarsk' => 'Krasnoýarsk wagty',
         'Asia/Kuala_Lumpur' => 'Malaýziýa wagty (Kuala-Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Pars aýlagy standart wagty (Maskat)',
         'Asia/Nicosia' => 'Gündogar Ýewropa wagty (Nikosiýa)',
         'Asia/Novokuznetsk' => 'Krasnoýarsk wagty (Nowokuznesk)',
-        'Asia/Novosibirsk' => 'Nowosibirsk wagty',
+        'Asia/Novosibirsk' => 'Krasnoýarsk wagty (Nowosibirsk)',
         'Asia/Omsk' => 'Omsk wagty',
         'Asia/Oral' => 'Gazagystan wagty (Oral)',
         'Asia/Phnom_Penh' => 'Hindihytaý wagty (Pnompen)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Gazagystan wagty (Kostanaý)',
         'Asia/Qyzylorda' => 'Gazagystan wagty (Gyzylorda)',
         'Asia/Rangoon' => 'Mýanma wagty (Ýangon)',
+        'Asia/Yangon' => 'Mýanma wagty (Ýangon)',
         'Asia/Riyadh' => 'Arap ýurtlary wagty (Er-Riýad)',
         'Asia/Saigon' => 'Hindihytaý wagty (Hoşimin)',
-        'Asia/Sakhalin' => 'Sahalin wagty',
+        'Asia/Ho_Chi_Minh' => 'Hindihytaý wagty (Hoşimin)',
+        'Asia/Sakhalin' => 'Magadan wagty (Sahalin)',
         'Asia/Samarkand' => 'Özbegistan wagty (Samarkand)',
         'Asia/Seoul' => 'Koreýa wagty (Seul)',
         'Asia/Shanghai' => 'Hytaý wagty (Şanhaý)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Eýran wagty (Tähran)',
         'Asia/Thimphu' => 'Butan wagty (Timpu)',
         'Asia/Tokyo' => 'Ýaponiýa wagty (Tokio)',
-        'Asia/Tomsk' => 'Russiýa wagty (Tomsk)',
+        'Asia/Tomsk' => 'Krasnoýarsk wagty (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulan-Bator wagty',
         'Asia/Urumqi' => 'Hytaý wagty (Urumçi)',
         'Asia/Ust-Nera' => 'Wladiwostok wagty (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Günbatar Ýewropa wagty (Kanar adalary)',
         'Atlantic/Cape_Verde' => 'Kabo-Werde wagty',
         'Atlantic/Faeroe' => 'Günbatar Ýewropa wagty (Farer adalary)',
+        'Atlantic/Faroe' => 'Günbatar Ýewropa wagty (Farer adalary)',
         'Atlantic/Madeira' => 'Günbatar Ýewropa wagty (Madeýra adalary)',
         'Atlantic/Reykjavik' => 'Grinwiç ortaça wagty (Reýkýawik)',
         'Atlantic/South_Georgia' => 'Günorta Georgiýa wagty',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Utgaşdyrylýan ähliumumy wagt',
         'Europe/Amsterdam' => 'Merkezi Ýewropa wagty (Amsterdam)',
         'Europe/Andorra' => 'Merkezi Ýewropa wagty (Andorra)',
-        'Europe/Astrakhan' => 'Moskwa wagty (Astrahan)',
+        'Europe/Astrakhan' => 'Samara wagty (Astrahan)',
         'Europe/Athens' => 'Gündogar Ýewropa wagty (Afiny)',
         'Europe/Belgrade' => 'Merkezi Ýewropa wagty (Belgrad)',
         'Europe/Berlin' => 'Merkezi Ýewropa wagty (Berlin)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Grinwiç ortaça wagty (Jersi)',
         'Europe/Kaliningrad' => 'Gündogar Ýewropa wagty (Kaliningrad)',
         'Europe/Kiev' => 'Gündogar Ýewropa wagty (Kiýew)',
-        'Europe/Kirov' => 'Russiýa wagty (Kirow)',
+        'Europe/Kyiv' => 'Gündogar Ýewropa wagty (Kiýew)',
+        'Europe/Kirov' => 'Moskwa wagty (Kirow)',
         'Europe/Lisbon' => 'Günbatar Ýewropa wagty (Lissabon)',
         'Europe/Ljubljana' => 'Merkezi Ýewropa wagty (Lýublýana)',
         'Europe/London' => 'Grinwiç ortaça wagty (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samara wagty',
         'Europe/San_Marino' => 'Merkezi Ýewropa wagty (San-Marino)',
         'Europe/Sarajevo' => 'Merkezi Ýewropa wagty (Saraýewo)',
-        'Europe/Saratov' => 'Moskwa wagty (Saratow)',
+        'Europe/Saratov' => 'Samara wagty (Saratow)',
         'Europe/Simferopol' => 'Moskwa wagty (Simferopol)',
         'Europe/Skopje' => 'Merkezi Ýewropa wagty (Skopýe)',
         'Europe/Sofia' => 'Gündogar Ýewropa wagty (Sofiýa)',
         'Europe/Stockholm' => 'Merkezi Ýewropa wagty (Stokgolm)',
         'Europe/Tallinn' => 'Gündogar Ýewropa wagty (Tallin)',
         'Europe/Tirane' => 'Merkezi Ýewropa wagty (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskwa wagty (Ulýanowsk)',
+        'Europe/Ulyanovsk' => 'Samara wagty (Ulýanowsk)',
         'Europe/Vaduz' => 'Merkezi Ýewropa wagty (Waduz)',
         'Europe/Vatican' => 'Merkezi Ýewropa wagty (Watikan)',
         'Europe/Vienna' => 'Merkezi Ýewropa wagty (Wena)',
         'Europe/Vilnius' => 'Gündogar Ýewropa wagty (Wilnýus)',
-        'Europe/Volgograd' => 'Wolgograd wagty',
+        'Europe/Volgograd' => 'Moskwa wagty (Wolgograd)',
         'Europe/Warsaw' => 'Merkezi Ýewropa wagty (Warşawa)',
         'Europe/Zagreb' => 'Merkezi Ýewropa wagty (Zagreb)',
         'Europe/Zurich' => 'Merkezi Ýewropa wagty (Sýurih)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Çatem wagty',
         'Pacific/Easter' => 'Pasha adasy wagty',
         'Pacific/Efate' => 'Wanuatu wagty (Efate)',
-        'Pacific/Enderbury' => 'Feniks adalary wagty (Enderberi)',
+        'Pacific/Enderbury' => 'Feniks adalary wagty (Kanton adasy)',
+        'Pacific/Kanton' => 'Feniks adalary wagty (Kanton adasy)',
         'Pacific/Fakaofo' => 'Tokelau wagty (Fakaofo)',
         'Pacific/Fiji' => 'Fiji wagty',
         'Pacific/Funafuti' => 'Tuwalu wagty (Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Gambýe wagty',
         'Pacific/Guadalcanal' => 'Solomon adalary wagty (Gwadalkanal)',
         'Pacific/Guam' => 'Çamorro wagty (Guam)',
-        'Pacific/Honolulu' => 'Gawaý-Aleut wagty (Gonolulu)',
+        'Pacific/Honolulu' => 'Gawaý-Aleut standart wagty (Gonolulu)',
         'Pacific/Kiritimati' => 'Laýn adalary wagty (Kiritimati)',
         'Pacific/Kosrae' => 'Kosraýe wagty',
         'Pacific/Kwajalein' => 'Marşall adalary wagty (Kwajaleýn)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Palau wagty',
         'Pacific/Pitcairn' => 'Pitkern wagty',
         'Pacific/Ponape' => 'Ponape wagty',
+        'Pacific/Pohnpei' => 'Ponape wagty',
         'Pacific/Port_Moresby' => 'Papua - Täze Gwineýa wagty (Port-Morsbi)',
         'Pacific/Rarotonga' => 'Kuk adalary wagty (Rarotonga)',
         'Pacific/Saipan' => 'Çamorro wagty (Saýpan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Gilbert adalary wagty (Tarawa)',
         'Pacific/Tongatapu' => 'Tonga wagty (Tongatapu)',
         'Pacific/Truk' => 'Çuuk wagty',
+        'Pacific/Chuuk' => 'Çuuk wagty',
         'Pacific/Wake' => 'Weýk adasy wagty',
         'Pacific/Wallis' => 'Uollis we Futuna wagty',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tn.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
         'Africa/Freetown' => 'Palogare ya nako ya ngwaga le ngwaga ya Greenwich (Freetown)',
         'Africa/Gaborone' => 'Botswana (Gaborone)',
         'Africa/Johannesburg' => 'Aforika Borwa (Johannesburg)',
-        'Africa/Lome' => 'Palogare ya nako ya ngwaga le ngwaga ya Greenwich (Lome)',
+        'Africa/Lome' => 'Palogare ya nako ya ngwaga le ngwaga ya Greenwich (Lomé)',
         'Africa/Monrovia' => 'Palogare ya nako ya ngwaga le ngwaga ya Greenwich (Monrovia)',
         'Africa/Nouakchott' => 'Palogare ya nako ya ngwaga le ngwaga ya Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'Palogare ya nako ya ngwaga le ngwaga ya Greenwich (Ouagadougou)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/to.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/to.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/to.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/to.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'houa fakaʻafelika-hahake (Addis Ababa)',
         'Africa/Algiers' => 'houa fakaʻeulope-loto (Algiers)',
         'Africa/Asmera' => 'houa fakaʻafelika-hahake (Asmara)',
+        'Africa/Asmara' => 'houa fakaʻafelika-hahake (Asmara)',
         'Africa/Bamako' => 'houa fakakiliniuisi mālie (Bamako)',
         'Africa/Bangui' => 'houa fakaʻafelika-hihifo (Bangui)',
         'Africa/Banjul' => 'houa fakakiliniuisi mālie (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'houa fakaʻafelika-hahake (Dar es Salaam)',
         'Africa/Djibouti' => 'houa fakaʻafelika-hahake (Djibouti)',
         'Africa/Douala' => 'houa fakaʻafelika-hihifo (Douala)',
-        'Africa/El_Aaiun' => 'houa fakaʻeulope-hihifo (El Aaiun)',
+        'Africa/El_Aaiun' => 'houa fakaʻeulope-hihifo (El Aaiún)',
         'Africa/Freetown' => 'houa fakakiliniuisi mālie (Freetown)',
         'Africa/Gaborone' => 'houa fakaʻafelika-loto (Gaborone)',
         'Africa/Harare' => 'houa fakaʻafelika-loto (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'houa fakaʻafelika-hihifo (Kinshasa)',
         'Africa/Lagos' => 'houa fakaʻafelika-hihifo (Lagos)',
         'Africa/Libreville' => 'houa fakaʻafelika-hihifo (Libreville)',
-        'Africa/Lome' => 'houa fakakiliniuisi mālie (Lome)',
+        'Africa/Lome' => 'houa fakakiliniuisi mālie (Lomé)',
         'Africa/Luanda' => 'houa fakaʻafelika-hihifo (Luanda)',
         'Africa/Lubumbashi' => 'houa fakaʻafelika-loto (Lubumbashi)',
         'Africa/Lusaka' => 'houa fakaʻafelika-loto (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'houa fakaʻafelika-hahake (Mogadishu)',
         'Africa/Monrovia' => 'houa fakakiliniuisi mālie (Monrovia)',
         'Africa/Nairobi' => 'houa fakaʻafelika-hahake (Nairobi)',
-        'Africa/Ndjamena' => 'houa fakaʻafelika-hihifo (Ndjamena)',
+        'Africa/Ndjamena' => 'houa fakaʻafelika-hihifo (N’Djamena)',
         'Africa/Niamey' => 'houa fakaʻafelika-hihifo (Niamey)',
         'Africa/Nouakchott' => 'houa fakakiliniuisi mālie (Nouakchott)',
         'Africa/Ouagadougou' => 'houa fakakiliniuisi mālie (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'houa fakaʻalasika (Anchorage)',
         'America/Anguilla' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Anguilla)',
         'America/Antigua' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Antigua)',
-        'America/Araguaina' => 'houa fakapalāsila (Araguaina)',
+        'America/Araguaina' => 'houa fakapalāsila (Araguaína)',
         'America/Argentina/La_Rioja' => 'houa fakaʻasenitina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'houa fakaʻasenitina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'houa fakaʻasenitina (Río Gallegos)',
         'America/Argentina/Salta' => 'houa fakaʻasenitina (Salta)',
         'America/Argentina/San_Juan' => 'houa fakaʻasenitina (San Juan)',
         'America/Argentina/San_Luis' => 'houa fakaʻasenitina (San Luis)',
-        'America/Argentina/Tucuman' => 'houa fakaʻasenitina (Tucuman)',
+        'America/Argentina/Tucuman' => 'houa fakaʻasenitina (Tucumán)',
         'America/Argentina/Ushuaia' => 'houa fakaʻasenitina (Ushuaia)',
         'America/Aruba' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Aruba)',
         'America/Asuncion' => 'houa fakapalakuai (Asunción)',
         'America/Bahia' => 'houa fakapalāsila (Bahia)',
         'America/Bahia_Banderas' => 'houa fakaʻamelika-tokelau loto (Bahia Banderas)',
         'America/Barbados' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Barbados)',
-        'America/Belem' => 'houa fakapalāsila (Belem)',
+        'America/Belem' => 'houa fakapalāsila (Belém)',
         'America/Belize' => 'houa fakaʻamelika-tokelau loto (Belize)',
         'America/Blanc-Sablon' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Blanc-Sablon)',
         'America/Boa_Vista' => 'houa fakaʻamasōne (Boa Vista)',
-        'America/Bogota' => 'houa fakakolomipia (Bogota)',
+        'America/Bogota' => 'houa fakakolomipia (Bogotá)',
         'America/Boise' => 'houa fakaʻamelika-tokelau moʻunga (Boise)',
         'America/Buenos_Aires' => 'houa fakaʻasenitina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'houa fakaʻasenitina (Buenos Aires)',
         'America/Cambridge_Bay' => 'houa fakaʻamelika-tokelau moʻunga (Cambridge Bay)',
         'America/Campo_Grande' => 'houa fakaʻamasōne (Campo Grande)',
         'America/Cancun' => 'houa fakaʻamelika-tokelau hahake (Cancun)',
         'America/Caracas' => 'houa fakavenesuela (Caracas)',
         'America/Catamarca' => 'houa fakaʻasenitina (Catamarca)',
+        'America/Argentina/Catamarca' => 'houa fakaʻasenitina (Catamarca)',
         'America/Cayenne' => 'houa fakakuiana-fakafalanisē (Cayenne)',
         'America/Cayman' => 'houa fakaʻamelika-tokelau hahake (Cayman)',
         'America/Chicago' => 'houa fakaʻamelika-tokelau loto (Chicago)',
         'America/Chihuahua' => 'houa fakaʻamelika-tokelau loto (Chihuahua)',
         'America/Ciudad_Juarez' => 'houa fakaʻamelika-tokelau moʻunga (Ciudad Juárez)',
         'America/Coral_Harbour' => 'houa fakaʻamelika-tokelau hahake (Atikokan)',
-        'America/Cordoba' => 'houa fakaʻasenitina (Cordoba)',
+        'America/Atikokan' => 'houa fakaʻamelika-tokelau hahake (Atikokan)',
+        'America/Cordoba' => 'houa fakaʻasenitina (Córdoba)',
+        'America/Argentina/Cordoba' => 'houa fakaʻasenitina (Córdoba)',
         'America/Costa_Rica' => 'houa fakaʻamelika-tokelau loto (Costa Rica)',
+        'America/Coyhaique' => 'houa fakasili (Coyhaique)',
         'America/Creston' => 'houa fakaʻamelika-tokelau moʻunga (Creston)',
-        'America/Cuiaba' => 'houa fakaʻamasōne (Cuiaba)',
+        'America/Cuiaba' => 'houa fakaʻamasōne (Cuiabá)',
         'America/Curacao' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Curaçao)',
         'America/Danmarkshavn' => 'houa fakakiliniuisi mālie (Danmarkshavn)',
         'America/Dawson' => 'houa fakaiukoni (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'houa fakaʻamelika-tokelau hahake (Detroit)',
         'America/Dominica' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Dominica)',
         'America/Edmonton' => 'houa fakaʻamelika-tokelau moʻunga (Edmonton)',
-        'America/Eirunepe' => 'houa fakaʻakelī (Eirunepe)',
+        'America/Eirunepe' => 'houa fakaʻakelī (Eirunepé)',
         'America/El_Salvador' => 'houa fakaʻamelika-tokelau loto (El Salvador)',
         'America/Fort_Nelson' => 'houa fakaʻamelika-tokelau moʻunga (Fort Nelson)',
         'America/Fortaleza' => 'houa fakapalāsila (Fortaleza)',
         'America/Glace_Bay' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Glace Bay)',
         'America/Godthab' => 'Taimi Kulinilani (Nuuk)',
+        'America/Nuuk' => 'Taimi Kulinilani (Nuuk)',
         'America/Goose_Bay' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Goose Bay)',
         'America/Grand_Turk' => 'houa fakaʻamelika-tokelau hahake (Grand Turk)',
         'America/Grenada' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'houa fakaʻamelika-tokelau hahake (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'houa fakaʻamelika-tokelau hahake (Winamac, Indiana)',
         'America/Indianapolis' => 'houa fakaʻamelika-tokelau hahake (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'houa fakaʻamelika-tokelau hahake (Indianapolis)',
         'America/Inuvik' => 'houa fakaʻamelika-tokelau moʻunga (Inuvik)',
         'America/Iqaluit' => 'houa fakaʻamelika-tokelau hahake (Iqaluit)',
         'America/Jamaica' => 'houa fakaʻamelika-tokelau hahake (Jamaica)',
         'America/Jujuy' => 'houa fakaʻasenitina (Jujuy)',
+        'America/Argentina/Jujuy' => 'houa fakaʻasenitina (Jujuy)',
         'America/Juneau' => 'houa fakaʻalasika (Juneau)',
         'America/Kentucky/Monticello' => 'houa fakaʻamelika-tokelau hahake (Monticello, Kentucky)',
         'America/Kralendijk' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'houa fakapelū (Lima)',
         'America/Los_Angeles' => 'houa fakaʻamelika-tokelau pasifika (Los Angeles)',
         'America/Louisville' => 'houa fakaʻamelika-tokelau hahake (Louisville)',
+        'America/Kentucky/Louisville' => 'houa fakaʻamelika-tokelau hahake (Louisville)',
         'America/Lower_Princes' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Lower Prince’s Quarter)',
-        'America/Maceio' => 'houa fakapalāsila (Maceio)',
+        'America/Maceio' => 'houa fakapalāsila (Maceió)',
         'America/Managua' => 'houa fakaʻamelika-tokelau loto (Managua)',
         'America/Manaus' => 'houa fakaʻamasōne (Manaus)',
         'America/Marigot' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Marigot)',
         'America/Martinique' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Martinique)',
         'America/Matamoros' => 'houa fakaʻamelika-tokelau loto (Matamoros)',
-        'America/Mazatlan' => 'houa fakamekisikou-pasifika (Mazatlan)',
+        'America/Mazatlan' => 'houa fakamekisikou-pasifika (Mazatlán)',
         'America/Mendoza' => 'houa fakaʻasenitina (Mendoza)',
+        'America/Argentina/Mendoza' => 'houa fakaʻasenitina (Mendoza)',
         'America/Menominee' => 'houa fakaʻamelika-tokelau loto (Menominee)',
         'America/Merida' => 'houa fakaʻamelika-tokelau loto (Merida)',
         'America/Metlakatla' => 'houa fakaʻalasika (Metlakatla)',
-        'America/Mexico_City' => 'houa fakaʻamelika-tokelau loto (Mexico City)',
-        'America/Miquelon' => 'houa fakasā-piea-mo-mikeloni (Miquelon)',
+        'America/Mexico_City' => 'houa fakaʻamelika-tokelau loto (Ciudad de México)',
+        'America/Miquelon' => 'houa fakasā-piea-mo-mikeloni (Saint-Pierre)',
         'America/Moncton' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Moncton)',
         'America/Monterrey' => 'houa fakaʻamelika-tokelau loto (Monterrey)',
         'America/Montevideo' => 'houa fakaʻulukuai (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'houa fakaʻamelika-tokelau loto (Regina)',
         'America/Resolute' => 'houa fakaʻamelika-tokelau loto (Resolute)',
         'America/Rio_Branco' => 'houa fakaʻakelī (Rio Branco)',
-        'America/Santarem' => 'houa fakapalāsila (Santarem)',
+        'America/Santarem' => 'houa fakapalāsila (Santarém)',
         'America/Santiago' => 'houa fakasili (Santiago)',
         'America/Santo_Domingo' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Santo Domingo)',
-        'America/Sao_Paulo' => 'houa fakapalāsila (Sao Paulo)',
+        'America/Sao_Paulo' => 'houa fakapalāsila (São Paulo)',
         'America/Scoresbysund' => 'Taimi Kulinilani (Ittoqqortoormiit)',
         'America/Sitka' => 'houa fakaʻalasika (Sitka)',
         'America/St_Barthelemy' => 'houa fakaʻamelika-tokelau ʻatalanitiki (St. Barthélemy)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'houa fakanuʻusila (McMurdo)',
         'Antarctica/Palmer' => 'houa fakasili (Palmer)',
         'Antarctica/Rothera' => 'houa fakalotela (Rothera)',
-        'Antarctica/Syowa' => 'houa fakasioua (Syowa)',
+        'Antarctica/Syowa' => 'houa fakasioua (Showa)',
         'Antarctica/Troll' => 'houa fakakiliniuisi mālie (Troll)',
         'Antarctica/Vostok' => 'houa fakavositoki (Vostok)',
         'Arctic/Longyearbyen' => 'houa fakaʻeulope-loto (Longyearbyen)',
         'Asia/Aden' => 'houa fakaʻalepea (Aden)',
         'Asia/Almaty' => 'houa fakakasakitani (Almaty)',
         'Asia/Amman' => 'houa fakaʻeulope-hahake (Amman)',
-        'Asia/Anadyr' => 'houa fakalūsia-ʻanatili (Anadyr)',
+        'Asia/Anadyr' => 'houa fakalūsia-petelopavilovisiki (Anadyr)',
         'Asia/Aqtau' => 'houa fakakasakitani (Aqtau)',
         'Asia/Aqtobe' => 'houa fakakasakitani (Aqtobe)',
         'Asia/Ashgabat' => 'houa fakatūkimenisitani (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'houa fakaʻalepea (Bahrain)',
         'Asia/Baku' => 'houa fakaʻasapaisani (Baku)',
         'Asia/Bangkok' => 'houa fakaʻinitosiaina (Bangkok)',
-        'Asia/Barnaul' => 'Taimi Lūsia (Barnaul)',
+        'Asia/Barnaul' => 'houa fakalūsia-kalasinoiāsiki (Barnaul)',
         'Asia/Beirut' => 'houa fakaʻeulope-hahake (Beirut)',
         'Asia/Bishkek' => 'houa fakakīkisitani (Bishkek)',
         'Asia/Brunei' => 'houa fakapulunei (Brunei)',
         'Asia/Calcutta' => 'houa fakaʻinitia (Kolkata)',
+        'Asia/Kolkata' => 'houa fakaʻinitia (Kolkata)',
         'Asia/Chita' => 'houa fakalūsia-ʻiākutisiki (Chita)',
         'Asia/Colombo' => 'houa fakaʻinitia (Colombo)',
         'Asia/Damascus' => 'houa fakaʻeulope-hahake (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'houa fakaʻeulope-hahake (Gaza)',
         'Asia/Hebron' => 'houa fakaʻeulope-hahake (Hepeloni)',
         'Asia/Hong_Kong' => 'houa fakahongi-kongi (Hong Kong)',
-        'Asia/Hovd' => 'houa fakahovite (Hovd)',
+        'Asia/Hovd' => 'houa fakahovite (Khovd)',
         'Asia/Irkutsk' => 'houa fakalūsia-ʻīkutisiki (Irkutsk)',
         'Asia/Jakarta' => 'houa fakaʻinitonisia-hihifo (Jakarta)',
         'Asia/Jayapura' => 'houa fakaʻinitonisia-hahake (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'houa fakalūsia-petelopavilovisiki (Kamchatka)',
         'Asia/Karachi' => 'houa fakapākisitani (Karachi)',
         'Asia/Katmandu' => 'houa fakanepali (Kathmandu)',
+        'Asia/Kathmandu' => 'houa fakanepali (Kathmandu)',
         'Asia/Khandyga' => 'houa fakalūsia-ʻiākutisiki (Khandyga)',
         'Asia/Krasnoyarsk' => 'houa fakalūsia-kalasinoiāsiki (Krasnoyarsk)',
         'Asia/Kuala_Lumpur' => 'houa fakamaleisia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'houa fakakūlifi (Muscat)',
         'Asia/Nicosia' => 'houa fakaʻeulope-hahake (Nicosia)',
         'Asia/Novokuznetsk' => 'houa fakalūsia-kalasinoiāsiki (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'houa fakalūsia-novosipīsiki (Novosibirsk)',
+        'Asia/Novosibirsk' => 'houa fakalūsia-kalasinoiāsiki (Novosibirsk)',
         'Asia/Omsk' => 'houa fakalūsia-ʻomisiki (Omsk)',
         'Asia/Oral' => 'houa fakakasakitani (Oral)',
         'Asia/Phnom_Penh' => 'houa fakaʻinitosiaina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'houa fakakasakitani (Qostanay)',
         'Asia/Qyzylorda' => 'houa fakakasakitani (Qyzylorda)',
         'Asia/Rangoon' => 'houa fakapema (Rangoon)',
+        'Asia/Yangon' => 'houa fakapema (Rangoon)',
         'Asia/Riyadh' => 'houa fakaʻalepea (Riyadh)',
         'Asia/Saigon' => 'houa fakaʻinitosiaina (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'houa fakalūsia-sakāline (Sakhalin)',
+        'Asia/Ho_Chi_Minh' => 'houa fakaʻinitosiaina (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'houa fakalūsia-makatani (Sakhalin)',
         'Asia/Samarkand' => 'houa fakaʻusipekitani (Samarkand)',
         'Asia/Seoul' => 'houa fakakōlea (Seoul)',
         'Asia/Shanghai' => 'houa fakasiaina (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'houa fakaʻilaani (Tehran)',
         'Asia/Thimphu' => 'houa fakapūtani (Thimphu)',
         'Asia/Tokyo' => 'houa fakasiapani (Tokyo)',
-        'Asia/Tomsk' => 'Taimi Lūsia (Tomsk)',
+        'Asia/Tomsk' => 'houa fakalūsia-kalasinoiāsiki (Tomsk)',
         'Asia/Ulaanbaatar' => 'houa fakaʻulānipātā (Ulaanbaatar)',
-        'Asia/Urumqi' => 'Taimi Siaina (Urumqi)',
+        'Asia/Urumqi' => 'Taimi Siaina (Ürümqi)',
         'Asia/Ust-Nera' => 'houa fakalūsia-valativositoki (Ust-Nera)',
         'Asia/Vientiane' => 'houa fakaʻinitosiaina (Vientiane)',
         'Asia/Vladivostok' => 'houa fakalūsia-valativositoki (Vladivostok)',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'houa fakaʻāmenia (Yerevan)',
         'Atlantic/Azores' => 'houa fakaʻāsolesi (Azores)',
         'Atlantic/Bermuda' => 'houa fakaʻamelika-tokelau ʻatalanitiki (Bermuda)',
-        'Atlantic/Canary' => 'houa fakaʻeulope-hihifo (Canary)',
+        'Atlantic/Canary' => 'houa fakaʻeulope-hihifo (Canarias)',
         'Atlantic/Cape_Verde' => 'houa fakamuiʻi-vēte (Cape Verde)',
         'Atlantic/Faeroe' => 'houa fakaʻeulope-hihifo (Faroe)',
+        'Atlantic/Faroe' => 'houa fakaʻeulope-hihifo (Faroe)',
         'Atlantic/Madeira' => 'houa fakaʻeulope-hihifo (Madeira)',
         'Atlantic/Reykjavik' => 'houa fakakiliniuisi mālie (Reykjavik)',
         'Atlantic/South_Georgia' => 'houa fakasiosiatonga (South Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'taimi fakaemāmani',
         'Europe/Amsterdam' => 'houa fakaʻeulope-loto (Amsterdam)',
         'Europe/Andorra' => 'houa fakaʻeulope-loto (Andorra)',
-        'Europe/Astrakhan' => 'houa fakalūsia-mosikou (Astrakhan)',
+        'Europe/Astrakhan' => 'houa fakalūsia-samala (Astrakhan)',
         'Europe/Athens' => 'houa fakaʻeulope-hahake (ʻAtenisi)',
         'Europe/Belgrade' => 'houa fakaʻeulope-loto (Belgrade)',
         'Europe/Berlin' => 'houa fakaʻeulope-loto (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'houa fakaʻeulope-loto (Brussels)',
         'Europe/Bucharest' => 'houa fakaʻeulope-hahake (Bucharest)',
         'Europe/Budapest' => 'houa fakaʻeulope-loto (Budapest)',
-        'Europe/Busingen' => 'houa fakaʻeulope-loto (Busingen)',
-        'Europe/Chisinau' => 'houa fakaʻeulope-hahake (Chisinau)',
+        'Europe/Busingen' => 'houa fakaʻeulope-loto (Büsingen)',
+        'Europe/Chisinau' => 'houa fakaʻeulope-hahake (Chișinău)',
         'Europe/Copenhagen' => 'houa fakaʻeulope-loto (Copenhagen)',
         'Europe/Dublin' => 'houa fakakiliniuisi mālie (Dublin)',
         'Europe/Gibraltar' => 'houa fakaʻeulope-loto (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'houa fakakiliniuisi mālie (Jersey)',
         'Europe/Kaliningrad' => 'houa fakaʻeulope-hahake (Kaliningrad)',
         'Europe/Kiev' => 'houa fakaʻeulope-hahake (Kiev)',
-        'Europe/Kirov' => 'Taimi Lūsia (Kirov)',
+        'Europe/Kyiv' => 'houa fakaʻeulope-hahake (Kiev)',
+        'Europe/Kirov' => 'houa fakalūsia-mosikou (Kirov)',
         'Europe/Lisbon' => 'houa fakaʻeulope-hihifo (Lisbon)',
         'Europe/Ljubljana' => 'houa fakaʻeulope-loto (Ljubljana)',
         'Europe/London' => 'houa fakakiliniuisi mālie (Lonitoni)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'houa fakalūsia-samala (Samara)',
         'Europe/San_Marino' => 'houa fakaʻeulope-loto (San Marino)',
         'Europe/Sarajevo' => 'houa fakaʻeulope-loto (Sarajevo)',
-        'Europe/Saratov' => 'houa fakalūsia-mosikou (Saratov)',
+        'Europe/Saratov' => 'houa fakalūsia-samala (Saratov)',
         'Europe/Simferopol' => 'houa fakalūsia-mosikou (Simferopol)',
         'Europe/Skopje' => 'houa fakaʻeulope-loto (Skopje)',
         'Europe/Sofia' => 'houa fakaʻeulope-hahake (Sofia)',
         'Europe/Stockholm' => 'houa fakaʻeulope-loto (Stockholm)',
         'Europe/Tallinn' => 'houa fakaʻeulope-hahake (Tallinn)',
-        'Europe/Tirane' => 'houa fakaʻeulope-loto (Tirane)',
-        'Europe/Ulyanovsk' => 'houa fakalūsia-mosikou (Ulyanovsk)',
+        'Europe/Tirane' => 'houa fakaʻeulope-loto (Tirana)',
+        'Europe/Ulyanovsk' => 'houa fakalūsia-samala (Ulyanovsk)',
         'Europe/Vaduz' => 'houa fakaʻeulope-loto (Vaduz)',
         'Europe/Vatican' => 'houa fakaʻeulope-loto (Vatikani)',
         'Europe/Vienna' => 'houa fakaʻeulope-loto (Vienna)',
         'Europe/Vilnius' => 'houa fakaʻeulope-hahake (Vilnius)',
-        'Europe/Volgograd' => 'houa fakalūsia-volikokalati (Volgograd)',
+        'Europe/Volgograd' => 'houa fakalūsia-mosikou (Volgograd)',
         'Europe/Warsaw' => 'houa fakaʻeulope-loto (Warsaw)',
         'Europe/Zagreb' => 'houa fakaʻeulope-loto (Zagreb)',
         'Europe/Zurich' => 'houa fakaʻeulope-loto (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'houa fakamoanaʻinitia (Chagos)',
         'Indian/Christmas' => 'houa fakamotukilisimasi (Christmas)',
         'Indian/Cocos' => 'houa fakamotukokosi (Cocos)',
-        'Indian/Comoro' => 'houa fakaʻafelika-hahake (Comoro)',
+        'Indian/Comoro' => 'houa fakaʻafelika-hahake (Comores)',
         'Indian/Kerguelen' => 'houa fakaʻanetātikafalanisē (Kerguelen)',
-        'Indian/Mahe' => 'houa fakaʻotumotu-seiseli (Mahe)',
+        'Indian/Mahe' => 'houa fakaʻotumotu-seiseli (Mahé)',
         'Indian/Maldives' => 'houa fakamalativisi (Maldives)',
         'Indian/Mauritius' => 'houa fakamaulitiusi (Mauritius)',
         'Indian/Mayotte' => 'houa fakaʻafelika-hahake (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'houa fakasatihami (Chatham)',
         'Pacific/Easter' => 'houa fakalapanui',
         'Pacific/Efate' => 'houa fakavanuatu (Efate)',
-        'Pacific/Enderbury' => 'houa fakaʻotumotufoinikisi (ʻEnitipulī)',
+        'Pacific/Enderbury' => 'houa fakaʻotumotufoinikisi (Kanitoni)',
+        'Pacific/Kanton' => 'houa fakaʻotumotufoinikisi (Kanitoni)',
         'Pacific/Fakaofo' => 'houa fakatokelau (Fakaofo)',
         'Pacific/Fiji' => 'houa fakafisi',
         'Pacific/Funafuti' => 'houa fakatūvalu (Funafuti)',
-        'Pacific/Galapagos' => 'houa fakakalapakosi (Galapagos)',
+        'Pacific/Galapagos' => 'houa fakakalapakosi (Galápagos)',
         'Pacific/Gambier' => 'houa fakakamipiē',
         'Pacific/Guadalcanal' => 'houa fakaʻotumotusolomone (Kuatākanali)',
         'Pacific/Guam' => 'houa fakakamolo (Kuami)',
-        'Pacific/Honolulu' => 'houa fakahauaiʻi-aleuti (Honolulu)',
+        'Pacific/Honolulu' => 'houa fakahauaiʻi-aleuti taimi totonu (Honolulu)',
         'Pacific/Kiritimati' => 'houa fakaʻotumotulaine (Kilisimasi)',
         'Pacific/Kosrae' => 'houa fakakosilae',
         'Pacific/Kwajalein' => 'houa fakaʻotumotumasolo (Kuasaleni)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'houa fakapalau',
         'Pacific/Pitcairn' => 'houa fakapitikani (Pitikeni)',
         'Pacific/Ponape' => 'houa fakapōnapē (Ponapē)',
+        'Pacific/Pohnpei' => 'houa fakapōnapē (Ponapē)',
         'Pacific/Port_Moresby' => 'houa fakapapuaniukini (Taulanga Molesipi)',
         'Pacific/Rarotonga' => 'houa fakaʻotumotukuki (Lalotonga)',
         'Pacific/Saipan' => 'houa fakakamolo (Saʻipani)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'houa fakakilipasi (Talava)',
         'Pacific/Tongatapu' => 'houa fakatonga (Tongatapu)',
         'Pacific/Truk' => 'houa fakatūke',
+        'Pacific/Chuuk' => 'houa fakatūke',
         'Pacific/Wake' => 'houa fakamotuueke',
         'Pacific/Wallis' => 'houa fakaʻuvea mo futuna',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tr.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Doğu Afrika Saati (Addis Ababa)',
         'Africa/Algiers' => 'Orta Avrupa Saati (Cezayir)',
         'Africa/Asmera' => 'Doğu Afrika Saati (Asmara)',
+        'Africa/Asmara' => 'Doğu Afrika Saati (Asmara)',
         'Africa/Bamako' => 'Greenwich Ortalama Saati (Bamako)',
         'Africa/Bangui' => 'Batı Afrika Saati (Bangui)',
         'Africa/Banjul' => 'Greenwich Ortalama Saati (Banjul)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Batı Afrika Saati (Kinşasa)',
         'Africa/Lagos' => 'Batı Afrika Saati (Lagos)',
         'Africa/Libreville' => 'Batı Afrika Saati (Librevil)',
-        'Africa/Lome' => 'Greenwich Ortalama Saati (Lome)',
+        'Africa/Lome' => 'Greenwich Ortalama Saati (Lomé)',
         'Africa/Luanda' => 'Batı Afrika Saati (Luanda)',
         'Africa/Lubumbashi' => 'Orta Afrika Saati (Lubumbashi)',
         'Africa/Lusaka' => 'Orta Afrika Saati (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Doğu Afrika Saati (Mogadişu)',
         'Africa/Monrovia' => 'Greenwich Ortalama Saati (Monrovia)',
         'Africa/Nairobi' => 'Doğu Afrika Saati (Nairobi)',
-        'Africa/Ndjamena' => 'Batı Afrika Saati (Ndjamena)',
+        'Africa/Ndjamena' => 'Batı Afrika Saati (N’Djamena)',
         'Africa/Niamey' => 'Batı Afrika Saati (Niamey)',
         'Africa/Nouakchott' => 'Greenwich Ortalama Saati (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich Ortalama Saati (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Alaska Saati (Anchorage)',
         'America/Anguilla' => 'Atlantik Saati (Anguilla)',
         'America/Antigua' => 'Atlantik Saati (Antigua)',
-        'America/Araguaina' => 'Brasilia Saati (Araguaina)',
+        'America/Araguaina' => 'Brasilia Saati (Araguaína)',
         'America/Argentina/La_Rioja' => 'Arjantin Saati (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Arjantin Saati (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Arjantin Saati (Río Gallegos)',
         'America/Argentina/Salta' => 'Arjantin Saati (Salta)',
         'America/Argentina/San_Juan' => 'Arjantin Saati (San Juan)',
         'America/Argentina/San_Luis' => 'Arjantin Saati (San Luis)',
-        'America/Argentina/Tucuman' => 'Arjantin Saati (Tucuman)',
+        'America/Argentina/Tucuman' => 'Arjantin Saati (Tucumán)',
         'America/Argentina/Ushuaia' => 'Arjantin Saati (Ushuaia)',
         'America/Aruba' => 'Atlantik Saati (Aruba)',
         'America/Asuncion' => 'Paraguay Saati (Asunción)',
         'America/Bahia' => 'Brasilia Saati (Bahia)',
         'America/Bahia_Banderas' => 'Kuzey Amerika Merkezi Saati (Bahia Banderas)',
         'America/Barbados' => 'Atlantik Saati (Barbados)',
-        'America/Belem' => 'Brasilia Saati (Belem)',
+        'America/Belem' => 'Brasilia Saati (Belém)',
         'America/Belize' => 'Kuzey Amerika Merkezi Saati (Belize)',
         'America/Blanc-Sablon' => 'Atlantik Saati (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazon Saati (Boa Vista)',
-        'America/Bogota' => 'Kolombiya Saati (Bogota)',
+        'America/Bogota' => 'Kolombiya Saati (Bogotá)',
         'America/Boise' => 'Kuzey Amerika Dağ Saati (Boise)',
         'America/Buenos_Aires' => 'Arjantin Saati (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Arjantin Saati (Buenos Aires)',
         'America/Cambridge_Bay' => 'Kuzey Amerika Dağ Saati (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazon Saati (Campo Grande)',
         'America/Cancun' => 'Kuzey Amerika Doğu Saati (Cancun)',
         'America/Caracas' => 'Venezuela Saati (Caracas)',
         'America/Catamarca' => 'Arjantin Saati (Catamarca)',
+        'America/Argentina/Catamarca' => 'Arjantin Saati (Catamarca)',
         'America/Cayenne' => 'Fransız Guyanası Saati (Cayenne)',
         'America/Cayman' => 'Kuzey Amerika Doğu Saati (Cayman)',
         'America/Chicago' => 'Kuzey Amerika Merkezi Saati (Chicago)',
         'America/Chihuahua' => 'Kuzey Amerika Merkezi Saati (Chihuahua)',
         'America/Ciudad_Juarez' => 'Kuzey Amerika Dağ Saati (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Kuzey Amerika Doğu Saati (Atikokan)',
-        'America/Cordoba' => 'Arjantin Saati (Cordoba)',
+        'America/Atikokan' => 'Kuzey Amerika Doğu Saati (Atikokan)',
+        'America/Cordoba' => 'Arjantin Saati (Córdoba)',
+        'America/Argentina/Cordoba' => 'Arjantin Saati (Córdoba)',
         'America/Costa_Rica' => 'Kuzey Amerika Merkezi Saati (Kosta Rika)',
+        'America/Coyhaique' => 'Şili Saati (Coyhaique)',
         'America/Creston' => 'Kuzey Amerika Dağ Saati (Creston)',
-        'America/Cuiaba' => 'Amazon Saati (Cuiaba)',
+        'America/Cuiaba' => 'Amazon Saati (Cuiabá)',
         'America/Curacao' => 'Atlantik Saati (Curaçao)',
         'America/Danmarkshavn' => 'Greenwich Ortalama Saati (Danmarkshavn)',
         'America/Dawson' => 'Yukon Saati (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Kuzey Amerika Doğu Saati (Detroit)',
         'America/Dominica' => 'Atlantik Saati (Dominika)',
         'America/Edmonton' => 'Kuzey Amerika Dağ Saati (Edmonton)',
-        'America/Eirunepe' => 'Acre Saati (Eirunepe)',
+        'America/Eirunepe' => 'Acre Saati (Eirunepé)',
         'America/El_Salvador' => 'Kuzey Amerika Merkezi Saati (El Salvador)',
         'America/Fort_Nelson' => 'Kuzey Amerika Dağ Saati (Fort Nelson)',
         'America/Fortaleza' => 'Brasilia Saati (Fortaleza)',
         'America/Glace_Bay' => 'Atlantik Saati (Glace Bay)',
         'America/Godthab' => 'Grönland Saati (Nuuk)',
+        'America/Nuuk' => 'Grönland Saati (Nuuk)',
         'America/Goose_Bay' => 'Atlantik Saati (Goose Bay)',
         'America/Grand_Turk' => 'Kuzey Amerika Doğu Saati (Grand Turk)',
         'America/Grenada' => 'Atlantik Saati (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Kuzey Amerika Doğu Saati (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Kuzey Amerika Doğu Saati (Winamac, Indiana)',
         'America/Indianapolis' => 'Kuzey Amerika Doğu Saati (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Kuzey Amerika Doğu Saati (Indianapolis)',
         'America/Inuvik' => 'Kuzey Amerika Dağ Saati (Inuvik)',
         'America/Iqaluit' => 'Kuzey Amerika Doğu Saati (Iqaluit)',
         'America/Jamaica' => 'Kuzey Amerika Doğu Saati (Jamaika)',
         'America/Jujuy' => 'Arjantin Saati (Jujuy)',
+        'America/Argentina/Jujuy' => 'Arjantin Saati (Jujuy)',
         'America/Juneau' => 'Alaska Saati (Juneau)',
         'America/Kentucky/Monticello' => 'Kuzey Amerika Doğu Saati (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantik Saati (Kralendijk)',
@@ -136,19 +145,21 @@
         'America/Lima' => 'Peru Saati (Lima)',
         'America/Los_Angeles' => 'Kuzey Amerika Pasifik Saati (Los Angeles)',
         'America/Louisville' => 'Kuzey Amerika Doğu Saati (Louisville)',
+        'America/Kentucky/Louisville' => 'Kuzey Amerika Doğu Saati (Louisville)',
         'America/Lower_Princes' => 'Atlantik Saati (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasilia Saati (Maceio)',
+        'America/Maceio' => 'Brasilia Saati (Maceió)',
         'America/Managua' => 'Kuzey Amerika Merkezi Saati (Managua)',
         'America/Manaus' => 'Amazon Saati (Manaus)',
         'America/Marigot' => 'Atlantik Saati (Marigot)',
         'America/Martinique' => 'Atlantik Saati (Martinique)',
         'America/Matamoros' => 'Kuzey Amerika Merkezi Saati (Matamoros)',
-        'America/Mazatlan' => 'Meksika Pasifik Kıyısı Saati (Mazatlan)',
+        'America/Mazatlan' => 'Meksika Pasifik Kıyısı Saati (Mazatlán)',
         'America/Mendoza' => 'Arjantin Saati (Mendoza)',
+        'America/Argentina/Mendoza' => 'Arjantin Saati (Mendoza)',
         'America/Menominee' => 'Kuzey Amerika Merkezi Saati (Menominee)',
         'America/Merida' => 'Kuzey Amerika Merkezi Saati (Merida)',
         'America/Metlakatla' => 'Alaska Saati (Metlakatla)',
-        'America/Mexico_City' => 'Kuzey Amerika Merkezi Saati (Mexico City)',
+        'America/Mexico_City' => 'Kuzey Amerika Merkezi Saati (Ciudad de México)',
         'America/Miquelon' => 'Saint Pierre ve Miquelon Saati',
         'America/Moncton' => 'Atlantik Saati (Moncton)',
         'America/Monterrey' => 'Kuzey Amerika Merkezi Saati (Monterrey)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Kuzey Amerika Merkezi Saati (Regina)',
         'America/Resolute' => 'Kuzey Amerika Merkezi Saati (Resolute)',
         'America/Rio_Branco' => 'Acre Saati (Rio Branco)',
-        'America/Santarem' => 'Brasilia Saati (Santarem)',
+        'America/Santarem' => 'Brasilia Saati (Santarém)',
         'America/Santiago' => 'Şili Saati (Santiago)',
         'America/Santo_Domingo' => 'Atlantik Saati (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasilia Saati (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brasilia Saati (São Paulo)',
         'America/Scoresbysund' => 'Grönland Saati (Ittoqqortoormiit)',
         'America/Sitka' => 'Alaska Saati (Sitka)',
         'America/St_Barthelemy' => 'Atlantik Saati (Saint Barthelemy)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Arabistan Saati (Aden)',
         'Asia/Almaty' => 'Kazakistan Saati (Almatı)',
         'Asia/Amman' => 'Doğu Avrupa Saati (Amman)',
-        'Asia/Anadyr' => 'Anadyr Saati (Anadır)',
+        'Asia/Anadyr' => 'Petropavlovsk-Kamçatski Saati (Anadır)',
         'Asia/Aqtau' => 'Kazakistan Saati (Aktav)',
         'Asia/Aqtobe' => 'Kazakistan Saati (Aktöbe)',
         'Asia/Ashgabat' => 'Türkmenistan Saati (Aşkabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabistan Saati (Bahreyn)',
         'Asia/Baku' => 'Azerbaycan Saati (Bakü)',
         'Asia/Bangkok' => 'Hindiçin Saati (Bangkok)',
-        'Asia/Barnaul' => 'Rusya Saati (Barnaul)',
+        'Asia/Barnaul' => 'Krasnoyarsk Saati (Barnaul)',
         'Asia/Beirut' => 'Doğu Avrupa Saati (Beyrut)',
         'Asia/Bishkek' => 'Kırgızistan Saati (Bişkek)',
         'Asia/Brunei' => 'Brunei Darü’s-Selam Saati',
         'Asia/Calcutta' => 'Hindistan Standart Saati (Kalküta)',
+        'Asia/Kolkata' => 'Hindistan Standart Saati (Kalküta)',
         'Asia/Chita' => 'Yakutsk Saati (Çita)',
         'Asia/Colombo' => 'Hindistan Standart Saati (Kolombo)',
         'Asia/Damascus' => 'Doğu Avrupa Saati (Şam)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Doğu Avrupa Saati (Gazze)',
         'Asia/Hebron' => 'Doğu Avrupa Saati (El Halil)',
         'Asia/Hong_Kong' => 'Hong Kong Saati',
-        'Asia/Hovd' => 'Hovd Saati',
+        'Asia/Hovd' => 'Hovd Saati (Khovd)',
         'Asia/Irkutsk' => 'İrkutsk Saati',
         'Asia/Jakarta' => 'Batı Endonezya Saati (Cakarta)',
         'Asia/Jayapura' => 'Doğu Endonezya Saati (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Petropavlovsk-Kamçatski Saati (Kamçatka)',
         'Asia/Karachi' => 'Pakistan Saati (Karaçi)',
         'Asia/Katmandu' => 'Nepal Saati (Katmandu)',
+        'Asia/Kathmandu' => 'Nepal Saati (Katmandu)',
         'Asia/Khandyga' => 'Yakutsk Saati (Handiga)',
         'Asia/Krasnoyarsk' => 'Krasnoyarsk Saati',
         'Asia/Kuala_Lumpur' => 'Malezya Saati (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Körfez Saati (Maskat)',
         'Asia/Nicosia' => 'Doğu Avrupa Saati (Lefkoşa)',
         'Asia/Novokuznetsk' => 'Krasnoyarsk Saati (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk Saati',
+        'Asia/Novosibirsk' => 'Krasnoyarsk Saati (Novosibirsk)',
         'Asia/Omsk' => 'Omsk Saati',
         'Asia/Oral' => 'Kazakistan Saati (Oral)',
         'Asia/Phnom_Penh' => 'Hindiçin Saati (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazakistan Saati (Kostanay)',
         'Asia/Qyzylorda' => 'Kazakistan Saati (Kızılorda)',
         'Asia/Rangoon' => 'Myanmar Saati (Yangon)',
+        'Asia/Yangon' => 'Myanmar Saati (Yangon)',
         'Asia/Riyadh' => 'Arabistan Saati (Riyad)',
         'Asia/Saigon' => 'Hindiçin Saati (Ho Chi Minh Kenti)',
-        'Asia/Sakhalin' => 'Sahalin Saati',
+        'Asia/Ho_Chi_Minh' => 'Hindiçin Saati (Ho Chi Minh Kenti)',
+        'Asia/Sakhalin' => 'Magadan Saati (Sahalin)',
         'Asia/Samarkand' => 'Özbekistan Saati (Semerkand)',
         'Asia/Seoul' => 'Kore Saati (Seul)',
         'Asia/Shanghai' => 'Çin Saati (Şanghay)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'İran Saati (Tahran)',
         'Asia/Thimphu' => 'Butan Saati (Thimphu)',
         'Asia/Tokyo' => 'Japonya Saati (Tokyo)',
-        'Asia/Tomsk' => 'Rusya Saati (Tomsk)',
+        'Asia/Tomsk' => 'Krasnoyarsk Saati (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulan Batur Saati',
         'Asia/Urumqi' => 'Çin Saati (Urumçi)',
         'Asia/Ust-Nera' => 'Vladivostok Saati (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Batı Avrupa Saati (Kanarya Adaları)',
         'Atlantic/Cape_Verde' => 'Cape Verde Saati',
         'Atlantic/Faeroe' => 'Batı Avrupa Saati (Faroe)',
+        'Atlantic/Faroe' => 'Batı Avrupa Saati (Faroe)',
         'Atlantic/Madeira' => 'Batı Avrupa Saati (Madeira Adaları)',
         'Atlantic/Reykjavik' => 'Greenwich Ortalama Saati (Reykjavik)',
         'Atlantic/South_Georgia' => 'Güney Georgia Saati',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Eş Güdümlü Evrensel Zaman',
         'Europe/Amsterdam' => 'Orta Avrupa Saati (Amsterdam)',
         'Europe/Andorra' => 'Orta Avrupa Saati (Andorra)',
-        'Europe/Astrakhan' => 'Moskova Saati (Astrahan)',
+        'Europe/Astrakhan' => 'Samara Saati (Astrahan)',
         'Europe/Athens' => 'Doğu Avrupa Saati (Atina)',
         'Europe/Belgrade' => 'Orta Avrupa Saati (Belgrad)',
         'Europe/Berlin' => 'Orta Avrupa Saati (Berlin)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwich Ortalama Saati (Jersey)',
         'Europe/Kaliningrad' => 'Doğu Avrupa Saati (Kaliningrad)',
         'Europe/Kiev' => 'Doğu Avrupa Saati (Kiev)',
-        'Europe/Kirov' => 'Rusya Saati (Kirov)',
+        'Europe/Kyiv' => 'Doğu Avrupa Saati (Kiev)',
+        'Europe/Kirov' => 'Moskova Saati (Kirov)',
         'Europe/Lisbon' => 'Batı Avrupa Saati (Lizbon)',
         'Europe/Ljubljana' => 'Orta Avrupa Saati (Ljubljana)',
         'Europe/London' => 'Greenwich Ortalama Saati (Londra)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Samara Saati',
         'Europe/San_Marino' => 'Orta Avrupa Saati (San Marino)',
         'Europe/Sarajevo' => 'Orta Avrupa Saati (Saraybosna)',
-        'Europe/Saratov' => 'Moskova Saati (Saratov)',
+        'Europe/Saratov' => 'Samara Saati (Saratov)',
         'Europe/Simferopol' => 'Moskova Saati (Simferopol)',
         'Europe/Skopje' => 'Orta Avrupa Saati (Üsküp)',
         'Europe/Sofia' => 'Doğu Avrupa Saati (Sofya)',
         'Europe/Stockholm' => 'Orta Avrupa Saati (Stokholm)',
         'Europe/Tallinn' => 'Doğu Avrupa Saati (Tallinn)',
         'Europe/Tirane' => 'Orta Avrupa Saati (Tiran)',
-        'Europe/Ulyanovsk' => 'Moskova Saati (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Samara Saati (Ulyanovsk)',
         'Europe/Vaduz' => 'Orta Avrupa Saati (Vaduz)',
         'Europe/Vatican' => 'Orta Avrupa Saati (Vatikan)',
         'Europe/Vienna' => 'Orta Avrupa Saati (Viyana)',
         'Europe/Vilnius' => 'Doğu Avrupa Saati (Vilnius)',
-        'Europe/Volgograd' => 'Volgograd Saati',
+        'Europe/Volgograd' => 'Moskova Saati (Volgograd)',
         'Europe/Warsaw' => 'Orta Avrupa Saati (Varşova)',
         'Europe/Zagreb' => 'Orta Avrupa Saati (Zagreb)',
         'Europe/Zurich' => 'Orta Avrupa Saati (Zürih)',
@@ -378,7 +395,7 @@
         'Indian/Cocos' => 'Cocos Adaları Saati',
         'Indian/Comoro' => 'Doğu Afrika Saati (Komor)',
         'Indian/Kerguelen' => 'Fransız Güney ve Antarktika Saati (Kerguelen)',
-        'Indian/Mahe' => 'Seyşeller Saati (Mahe)',
+        'Indian/Mahe' => 'Seyşeller Saati (Mahé)',
         'Indian/Maldives' => 'Maldivler Saati',
         'Indian/Mauritius' => 'Mauritius Saati',
         'Indian/Mayotte' => 'Doğu Afrika Saati (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Chatham Saati',
         'Pacific/Easter' => 'Paskalya Adası Saati',
         'Pacific/Efate' => 'Vanuatu Saati (Efate)',
-        'Pacific/Enderbury' => 'Phoenix Adaları Saati (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenix Adaları Saati (Canton Adası)',
+        'Pacific/Kanton' => 'Phoenix Adaları Saati (Canton Adası)',
         'Pacific/Fakaofo' => 'Tokelau Saati (Fakaofo)',
         'Pacific/Fiji' => 'Fiji Saati',
         'Pacific/Funafuti' => 'Tuvalu Saati (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos Saati',
+        'Pacific/Galapagos' => 'Galapagos Saati (Galápagos)',
         'Pacific/Gambier' => 'Gambier Saati',
         'Pacific/Guadalcanal' => 'Solomon Adaları Saati (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro Saati (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleut Saati (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleut Standart Saati (Honolulu)',
         'Pacific/Kiritimati' => 'Line Adaları Saati (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae Saati',
         'Pacific/Kwajalein' => 'Marshall Adaları Saati (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Nauru Saati',
         'Pacific/Niue' => 'Niue Saati',
         'Pacific/Norfolk' => 'Norfolk Adası Saati',
-        'Pacific/Noumea' => 'Yeni Kaledonya Saati (Noumea)',
+        'Pacific/Noumea' => 'Yeni Kaledonya Saati (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoa Saati (Pago Pago)',
         'Pacific/Palau' => 'Palau Saati',
         'Pacific/Pitcairn' => 'Pitcairn Saati',
         'Pacific/Ponape' => 'Ponape Saati (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponape Saati (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papua Yeni Gine Saati (Port Moresby)',
         'Pacific/Rarotonga' => 'Cook Adaları Saati (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro Saati (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Gilbert Adaları Saati (Tarawa)',
         'Pacific/Tongatapu' => 'Tonga Saati (Tongatapu)',
         'Pacific/Truk' => 'Chuuk Saati',
+        'Pacific/Chuuk' => 'Chuuk Saati',
         'Pacific/Wake' => 'Wake Adası Saati',
-        'Pacific/Wallis' => 'Wallis ve Futuna Saati',
+        'Pacific/Wallis' => 'Wallis ve Futuna Saati (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/tt.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Көнчыгыш Африка вакыты (Аддис-Абеба)',
         'Africa/Algiers' => 'Үзәк Европа вакыты (Алжир)',
         'Africa/Asmera' => 'Көнчыгыш Африка вакыты (Асмэра)',
+        'Africa/Asmara' => 'Көнчыгыш Африка вакыты (Асмэра)',
         'Africa/Bamako' => 'Гринвич уртача вакыты (Бамако)',
         'Africa/Bangui' => 'Көнбатыш Африка вакыты (Банги)',
         'Africa/Banjul' => 'Гринвич уртача вакыты (Банҗул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Колумбия вакыты (Богота)',
         'America/Boise' => 'Төньяк Америка тау вакыты (Бойсе)',
         'America/Buenos_Aires' => 'Аргентина вакыты (Буэнос-Айрес)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина вакыты (Буэнос-Айрес)',
         'America/Cambridge_Bay' => 'Төньяк Америка тау вакыты (Кембридж Бэй)',
         'America/Campo_Grande' => 'Амазонка вакыты (Кампо-Гранде)',
         'America/Cancun' => 'Төньяк Америка көнчыгыш вакыты (Канкун)',
         'America/Caracas' => 'Венесуэла вакыты (Каракас)',
         'America/Catamarca' => 'Аргентина вакыты (Катамарка)',
+        'America/Argentina/Catamarca' => 'Аргентина вакыты (Катамарка)',
         'America/Cayenne' => 'Француз Гвиана вакыты (Кайенна)',
         'America/Cayman' => 'Төньяк Америка көнчыгыш вакыты (Кайман утраулары)',
         'America/Chicago' => 'Төньяк Америка үзәк вакыты (Чикаго)',
         'America/Chihuahua' => 'Төньяк Америка үзәк вакыты (Чихуахуа)',
         'America/Ciudad_Juarez' => 'Төньяк Америка тау вакыты (Сьюдад-Хуарес)',
         'America/Coral_Harbour' => 'Төньяк Америка көнчыгыш вакыты (Атикокан)',
+        'America/Atikokan' => 'Төньяк Америка көнчыгыш вакыты (Атикокан)',
         'America/Cordoba' => 'Аргентина вакыты (Кордоба)',
+        'America/Argentina/Cordoba' => 'Аргентина вакыты (Кордоба)',
         'America/Costa_Rica' => 'Төньяк Америка үзәк вакыты (Коста-Рика)',
+        'America/Coyhaique' => 'Чили вакыты (Куяйкә)',
         'America/Creston' => 'Төньяк Америка тау вакыты (Крестон)',
         'America/Cuiaba' => 'Амазонка вакыты (Куяба)',
         'America/Curacao' => 'Төньяк Америка атлантик вакыты (Кюрасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Бразилиа вакыты (Форталеза)',
         'America/Glace_Bay' => 'Төньяк Америка атлантик вакыты (Глейс Бэй)',
         'America/Godthab' => 'Гренландия вакыты (Нуук)',
+        'America/Nuuk' => 'Гренландия вакыты (Нуук)',
         'America/Goose_Bay' => 'Төньяк Америка атлантик вакыты (Каз бухтасы)',
         'America/Grand_Turk' => 'Төньяк Америка көнчыгыш вакыты (Гранд Терк)',
         'America/Grenada' => 'Төньяк Америка атлантик вакыты (Гренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Төньяк Америка көнчыгыш вакыты (Винсеннес, Индиана)',
         'America/Indiana/Winamac' => 'Төньяк Америка көнчыгыш вакыты (Уинамак, Индиана)',
         'America/Indianapolis' => 'Төньяк Америка көнчыгыш вакыты (Индианаполис)',
+        'America/Indiana/Indianapolis' => 'Төньяк Америка көнчыгыш вакыты (Индианаполис)',
         'America/Inuvik' => 'Төньяк Америка тау вакыты (Инувик)',
         'America/Iqaluit' => 'Төньяк Америка көнчыгыш вакыты (Икалуит)',
         'America/Jamaica' => 'Төньяк Америка көнчыгыш вакыты (Ямайка)',
         'America/Jujuy' => 'Аргентина вакыты (Жужуй)',
+        'America/Argentina/Jujuy' => 'Аргентина вакыты (Жужуй)',
         'America/Juneau' => 'Аляска вакыты (Джуно)',
         'America/Kentucky/Monticello' => 'Төньяк Америка көнчыгыш вакыты (Монтичелло, Кентукки)',
         'America/Kralendijk' => 'Төньяк Америка атлантик вакыты (Кралендейк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Перу вакыты (Лима)',
         'America/Los_Angeles' => 'Төньяк Америка Тын океан вакыты (Лос-Анджелес)',
         'America/Louisville' => 'Төньяк Америка көнчыгыш вакыты (Луисвиль)',
+        'America/Kentucky/Louisville' => 'Төньяк Америка көнчыгыш вакыты (Луисвиль)',
         'America/Lower_Princes' => 'Төньяк Америка атлантик вакыты (Түбәнге Кенәз кварталы)',
         'America/Maceio' => 'Бразилиа вакыты (Масейо)',
         'America/Managua' => 'Төньяк Америка үзәк вакыты (Манагуа)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Төньяк Америка үзәк вакыты (Матаморос)',
         'America/Mazatlan' => 'Мексика Тыныч океан вакыты (Масатлан)',
         'America/Mendoza' => 'Аргентина вакыты (Мендоса)',
+        'America/Argentina/Mendoza' => 'Аргентина вакыты (Мендоса)',
         'America/Menominee' => 'Төньяк Америка үзәк вакыты (Меномини)',
         'America/Merida' => 'Төньяк Америка үзәк вакыты (Мерида)',
         'America/Metlakatla' => 'Аляска вакыты (Метлакатла)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Гарәп вакыты (Аден)',
         'Asia/Almaty' => 'Казахстан вакыты (Алма-Ата)',
         'Asia/Amman' => 'Көнчыгыш Европа вакыты (Әмман)',
-        'Asia/Anadyr' => 'Анадырь вакыты',
+        'Asia/Anadyr' => 'Петропавловск-Камчатский вакыты (Анадырь)',
         'Asia/Aqtau' => 'Казахстан вакыты (Актау)',
         'Asia/Aqtobe' => 'Казахстан вакыты (Актобе)',
         'Asia/Ashgabat' => 'Төркмәнстан вакыты (Ашхабад)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Гарәп вакыты (Бахрейн)',
         'Asia/Baku' => 'Әзербайҗан вакыты (Баку)',
         'Asia/Bangkok' => 'Һинд-кытай вакыты (Бангкок)',
-        'Asia/Barnaul' => 'Россия вакыты (Барнаул)',
+        'Asia/Barnaul' => 'Красноярск вакыты (Барнаул)',
         'Asia/Beirut' => 'Көнчыгыш Европа вакыты (Бәйрүт)',
         'Asia/Bishkek' => 'Кыргызстан вакыты (Бишкек)',
         'Asia/Brunei' => 'Бруней-Даруссалам вакыты',
         'Asia/Calcutta' => 'Һинд стандарт вакыты (Калькутта)',
+        'Asia/Kolkata' => 'Һинд стандарт вакыты (Калькутта)',
         'Asia/Chita' => 'Якутск вакыты (Чита)',
         'Asia/Colombo' => 'Һинд стандарт вакыты (Коломбо)',
         'Asia/Damascus' => 'Көнчыгыш Европа вакыты (Дәмәшкъ)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Петропавловск-Камчатский вакыты (Камчатка)',
         'Asia/Karachi' => 'Пакистан вакыты (Карачи)',
         'Asia/Katmandu' => 'Непал вакыты (Катманду)',
+        'Asia/Kathmandu' => 'Непал вакыты (Катманду)',
         'Asia/Khandyga' => 'Якутск вакыты (Хандыга)',
         'Asia/Krasnoyarsk' => 'Красноярск вакыты',
         'Asia/Kuala_Lumpur' => 'Малайзия вакыты (Куала-Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Фарсы култыгының стандарт вакыты (Маскат)',
         'Asia/Nicosia' => 'Көнчыгыш Европа вакыты (Никосия)',
         'Asia/Novokuznetsk' => 'Красноярск вакыты (Новокузнецк)',
-        'Asia/Novosibirsk' => 'Новосибирск вакыты',
+        'Asia/Novosibirsk' => 'Красноярск вакыты (Новосибирск)',
         'Asia/Omsk' => 'Омск вакыты',
         'Asia/Oral' => 'Казахстан вакыты (Орал)',
         'Asia/Phnom_Penh' => 'Һинд-кытай вакыты (Пномпень)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Казахстан вакыты (Костанай)',
         'Asia/Qyzylorda' => 'Казахстан вакыты (Кызылорда)',
         'Asia/Rangoon' => 'Мьянма вакыты (Янгон)',
+        'Asia/Yangon' => 'Мьянма вакыты (Янгон)',
         'Asia/Riyadh' => 'Гарәп вакыты (Эр-Рияд)',
         'Asia/Saigon' => 'Һинд-кытай вакыты (Хо Ши Мин)',
-        'Asia/Sakhalin' => 'Сахалин вакыты',
+        'Asia/Ho_Chi_Minh' => 'Һинд-кытай вакыты (Хо Ши Мин)',
+        'Asia/Sakhalin' => 'Магадан вакыты (Сахалин)',
         'Asia/Samarkand' => 'Үзбәкстан вакыты (Сәмәрканд)',
         'Asia/Seoul' => 'Корея вакыты (Сеул)',
         'Asia/Shanghai' => 'Кытай вакыты (Шанхай)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Иран вакыты (Тәһран)',
         'Asia/Thimphu' => 'Бутан вакыты (Тхимпху)',
         'Asia/Tokyo' => 'Япон вакыты (Токио)',
-        'Asia/Tomsk' => 'Россия вакыты (Томск)',
+        'Asia/Tomsk' => 'Красноярск вакыты (Томск)',
         'Asia/Ulaanbaatar' => 'Улан-Батор вакыты',
         'Asia/Urumqi' => 'Кытай вакыты (Урумчи)',
         'Asia/Ust-Nera' => 'Владивосток вакыты (Усть-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Көнбатыш Европа вакыты (Канар утраулары)',
         'Atlantic/Cape_Verde' => 'Кабо-Верде вакыты',
         'Atlantic/Faeroe' => 'Көнбатыш Европа вакыты (Фарер утраулары)',
+        'Atlantic/Faroe' => 'Көнбатыш Европа вакыты (Фарер утраулары)',
         'Atlantic/Madeira' => 'Көнбатыш Европа вакыты (Мадейра)',
         'Atlantic/Reykjavik' => 'Гринвич уртача вакыты (Рейкьявик)',
         'Atlantic/South_Georgia' => 'Көньяк Джорджия вакыты',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Бөтендөнья килештерелгән вакыты',
         'Europe/Amsterdam' => 'Үзәк Европа вакыты (Амстердам)',
         'Europe/Andorra' => 'Үзәк Европа вакыты (Андорра)',
-        'Europe/Astrakhan' => 'Мәскәү вакыты (Әстерхан)',
+        'Europe/Astrakhan' => 'Самара вакыты (Әстерхан)',
         'Europe/Athens' => 'Көнчыгыш Европа вакыты (Афин)',
         'Europe/Belgrade' => 'Үзәк Европа вакыты (Белград)',
         'Europe/Berlin' => 'Үзәк Европа вакыты (Берлин)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Гринвич уртача вакыты (Джерси)',
         'Europe/Kaliningrad' => 'Көнчыгыш Европа вакыты (Калининград)',
         'Europe/Kiev' => 'Көнчыгыш Европа вакыты (Киев)',
-        'Europe/Kirov' => 'Россия вакыты (Киров)',
+        'Europe/Kyiv' => 'Көнчыгыш Европа вакыты (Киев)',
+        'Europe/Kirov' => 'Мәскәү вакыты (Киров)',
         'Europe/Lisbon' => 'Көнбатыш Европа вакыты (Лиссабон)',
         'Europe/Ljubljana' => 'Үзәк Европа вакыты (Любляна)',
         'Europe/London' => 'Гринвич уртача вакыты (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Самара вакыты',
         'Europe/San_Marino' => 'Үзәк Европа вакыты (Сан-Марино)',
         'Europe/Sarajevo' => 'Үзәк Европа вакыты (Сараево)',
-        'Europe/Saratov' => 'Мәскәү вакыты (Саратов)',
+        'Europe/Saratov' => 'Самара вакыты (Саратов)',
         'Europe/Simferopol' => 'Мәскәү вакыты (Симферополь)',
         'Europe/Skopje' => 'Үзәк Европа вакыты (Скопье)',
         'Europe/Sofia' => 'Көнчыгыш Европа вакыты (София)',
         'Europe/Stockholm' => 'Үзәк Европа вакыты (Стокгольм)',
         'Europe/Tallinn' => 'Көнчыгыш Европа вакыты (Таллин)',
         'Europe/Tirane' => 'Үзәк Европа вакыты (Тиран)',
-        'Europe/Ulyanovsk' => 'Мәскәү вакыты (Ульяновск)',
+        'Europe/Ulyanovsk' => 'Самара вакыты (Ульяновск)',
         'Europe/Vaduz' => 'Үзәк Европа вакыты (Вадуц)',
         'Europe/Vatican' => 'Үзәк Европа вакыты (Ватикан)',
         'Europe/Vienna' => 'Үзәк Европа вакыты (Вена)',
         'Europe/Vilnius' => 'Көнчыгыш Европа вакыты (Вильнюс)',
-        'Europe/Volgograd' => 'Волгоград вакыты',
+        'Europe/Volgograd' => 'Мәскәү вакыты (Волгоград)',
         'Europe/Warsaw' => 'Үзәк Европа вакыты (Варшава)',
         'Europe/Zagreb' => 'Үзәк Европа вакыты (Загреб)',
         'Europe/Zurich' => 'Үзәк Европа вакыты (Цюрих)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Чатем вакыты',
         'Pacific/Easter' => 'Пасха утравы вакыты',
         'Pacific/Efate' => 'Вануату вакыты (Эфате)',
-        'Pacific/Enderbury' => 'Феникс утраулары вакыты (Enderbury)',
+        'Pacific/Enderbury' => 'Феникс утраулары вакыты (Кантон)',
+        'Pacific/Kanton' => 'Феникс утраулары вакыты (Кантон)',
         'Pacific/Fakaofo' => 'Токелау вакыты (Факаофо)',
         'Pacific/Fiji' => 'Фиджи вакыты',
         'Pacific/Funafuti' => 'Тувалу вакыты (Фунафути)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Гамбье вакыты',
         'Pacific/Guadalcanal' => 'Соломон утраулары вакыты (Гуадалканал)',
         'Pacific/Guam' => 'Чаморро стандарт вакыты (Гуам)',
-        'Pacific/Honolulu' => 'Гавай-Алеут вакыты (Honolulu)',
+        'Pacific/Honolulu' => 'Гавай-Алеут стандарт вакыты (Honolulu)',
         'Pacific/Kiritimati' => 'Лайн утраулары вакыты (Киритимати)',
         'Pacific/Kosrae' => 'Косраэ вакыты',
         'Pacific/Kwajalein' => 'Маршалл утраулары вакыты (Кваджалейн)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Палау вакыты',
         'Pacific/Pitcairn' => 'Питкэрн вакыты',
         'Pacific/Ponape' => 'Понапе вакыты (Понпеи)',
+        'Pacific/Pohnpei' => 'Понапе вакыты (Понпеи)',
         'Pacific/Port_Moresby' => 'Папуа Яңа Гвинея вакыты (Порт-Морсби)',
         'Pacific/Rarotonga' => 'Кук утраулары вакыты (Раротонга)',
         'Pacific/Saipan' => 'Чаморро стандарт вакыты (Сайпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Гилберт утраулары вакыты (Тарава)',
         'Pacific/Tongatapu' => 'Тонга вакыты (Тонгатапу)',
         'Pacific/Truk' => 'Чуук вакыты',
+        'Pacific/Chuuk' => 'Чуук вакыты',
         'Pacific/Wake' => 'Уэйк утравы вакыты (Вейк)',
         'Pacific/Wallis' => 'Уоллис һәм Футуна вакыты',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ug.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ug.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ug.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ug.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'شەرقىي ئافرىقا ۋاقتى (Addis Ababa)',
         'Africa/Algiers' => 'ئوتتۇرا ياۋروپا ۋاقتى (Algiers)',
         'Africa/Asmera' => 'شەرقىي ئافرىقا ۋاقتى (Asmara)',
+        'Africa/Asmara' => 'شەرقىي ئافرىقا ۋاقتى (Asmara)',
         'Africa/Bamako' => 'گىرىنۋىچ ۋاقتى (Bamako)',
         'Africa/Bangui' => 'غەربىي ئافرىقا ۋاقتى (Bangui)',
         'Africa/Banjul' => 'گىرىنۋىچ ۋاقتى (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'شەرقىي ئافرىقا ۋاقتى (Dar es Salaam)',
         'Africa/Djibouti' => 'شەرقىي ئافرىقا ۋاقتى (Djibouti)',
         'Africa/Douala' => 'غەربىي ئافرىقا ۋاقتى (Douala)',
-        'Africa/El_Aaiun' => 'غەربىي ياۋروپا ۋاقتى (El Aaiun)',
+        'Africa/El_Aaiun' => 'غەربىي ياۋروپا ۋاقتى (El Aaiún)',
         'Africa/Freetown' => 'گىرىنۋىچ ۋاقتى (Freetown)',
         'Africa/Gaborone' => 'ئوتتۇرا ئافرىقا ۋاقتى (Gaborone)',
         'Africa/Harare' => 'ئوتتۇرا ئافرىقا ۋاقتى (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'غەربىي ئافرىقا ۋاقتى (Kinshasa)',
         'Africa/Lagos' => 'غەربىي ئافرىقا ۋاقتى (Lagos)',
         'Africa/Libreville' => 'غەربىي ئافرىقا ۋاقتى (Libreville)',
-        'Africa/Lome' => 'گىرىنۋىچ ۋاقتى (Lome)',
+        'Africa/Lome' => 'گىرىنۋىچ ۋاقتى (Lomé)',
         'Africa/Luanda' => 'غەربىي ئافرىقا ۋاقتى (Luanda)',
         'Africa/Lubumbashi' => 'ئوتتۇرا ئافرىقا ۋاقتى (Lubumbashi)',
         'Africa/Lusaka' => 'ئوتتۇرا ئافرىقا ۋاقتى (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'شەرقىي ئافرىقا ۋاقتى (Mogadishu)',
         'Africa/Monrovia' => 'گىرىنۋىچ ۋاقتى (Monrovia)',
         'Africa/Nairobi' => 'شەرقىي ئافرىقا ۋاقتى (Nairobi)',
-        'Africa/Ndjamena' => 'غەربىي ئافرىقا ۋاقتى (Ndjamena)',
+        'Africa/Ndjamena' => 'غەربىي ئافرىقا ۋاقتى (N’Djamena)',
         'Africa/Niamey' => 'غەربىي ئافرىقا ۋاقتى (Niamey)',
         'Africa/Nouakchott' => 'گىرىنۋىچ ۋاقتى (Nouakchott)',
         'Africa/Ouagadougou' => 'گىرىنۋىچ ۋاقتى (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'ئالياسكا ۋاقتى (Anchorage)',
         'America/Anguilla' => 'ئاتلانتىك ئوكيان ۋاقتى (Anguilla)',
         'America/Antigua' => 'ئاتلانتىك ئوكيان ۋاقتى (Antigua)',
-        'America/Araguaina' => 'بىرازىلىيە ۋاقتى (Araguaina)',
+        'America/Araguaina' => 'بىرازىلىيە ۋاقتى (Araguaína)',
         'America/Argentina/La_Rioja' => 'ئارگېنتىنا ۋاقتى (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'ئارگېنتىنا ۋاقتى (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'ئارگېنتىنا ۋاقتى (Río Gallegos)',
         'America/Argentina/Salta' => 'ئارگېنتىنا ۋاقتى (Salta)',
         'America/Argentina/San_Juan' => 'ئارگېنتىنا ۋاقتى (San Juan)',
         'America/Argentina/San_Luis' => 'ئارگېنتىنا ۋاقتى (San Luis)',
-        'America/Argentina/Tucuman' => 'ئارگېنتىنا ۋاقتى (Tucuman)',
+        'America/Argentina/Tucuman' => 'ئارگېنتىنا ۋاقتى (Tucumán)',
         'America/Argentina/Ushuaia' => 'ئارگېنتىنا ۋاقتى (Ushuaia)',
         'America/Aruba' => 'ئاتلانتىك ئوكيان ۋاقتى (Aruba)',
         'America/Asuncion' => 'پاراگۋاي ۋاقتى (ئاسۇنسىيون)',
         'America/Bahia' => 'بىرازىلىيە ۋاقتى (Bahia)',
         'America/Bahia_Banderas' => 'ئوتتۇرا قىسىم ۋاقتى (Bahía de Banderas)',
         'America/Barbados' => 'ئاتلانتىك ئوكيان ۋاقتى (Barbados)',
-        'America/Belem' => 'بىرازىلىيە ۋاقتى (Belem)',
+        'America/Belem' => 'بىرازىلىيە ۋاقتى (Belém)',
         'America/Belize' => 'ئوتتۇرا قىسىم ۋاقتى (Belize)',
         'America/Blanc-Sablon' => 'ئاتلانتىك ئوكيان ۋاقتى (Blanc-Sablon)',
         'America/Boa_Vista' => 'ئامازون ۋاقتى (Boa Vista)',
-        'America/Bogota' => 'كولومبىيە ۋاقتى (Bogota)',
+        'America/Bogota' => 'كولومبىيە ۋاقتى (Bogotá)',
         'America/Boise' => 'تاغ ۋاقتى (Boise)',
         'America/Buenos_Aires' => 'ئارگېنتىنا ۋاقتى (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'ئارگېنتىنا ۋاقتى (Buenos Aires)',
         'America/Cambridge_Bay' => 'تاغ ۋاقتى (Cambridge Bay)',
         'America/Campo_Grande' => 'ئامازون ۋاقتى (Campo Grande)',
         'America/Cancun' => 'شەرقىي قىسىم ۋاقتى (Cancún)',
         'America/Caracas' => 'ۋېنېزۇئېلا ۋاقتى (Caracas)',
         'America/Catamarca' => 'ئارگېنتىنا ۋاقتى (Catamarca)',
+        'America/Argentina/Catamarca' => 'ئارگېنتىنا ۋاقتى (Catamarca)',
         'America/Cayenne' => 'فىرانسىيەگە قاراشلىق گىۋىيانا ۋاقتى (Cayenne)',
         'America/Cayman' => 'شەرقىي قىسىم ۋاقتى (Cayman)',
         'America/Chicago' => 'ئوتتۇرا قىسىم ۋاقتى (Chicago)',
         'America/Chihuahua' => 'ئوتتۇرا قىسىم ۋاقتى (Chihuahua)',
         'America/Ciudad_Juarez' => 'تاغ ۋاقتى (Ciudad Juárez)',
         'America/Coral_Harbour' => 'شەرقىي قىسىم ۋاقتى (Atikokan)',
-        'America/Cordoba' => 'ئارگېنتىنا ۋاقتى (Cordoba)',
+        'America/Atikokan' => 'شەرقىي قىسىم ۋاقتى (Atikokan)',
+        'America/Cordoba' => 'ئارگېنتىنا ۋاقتى (Córdoba)',
+        'America/Argentina/Cordoba' => 'ئارگېنتىنا ۋاقتى (Córdoba)',
         'America/Costa_Rica' => 'ئوتتۇرا قىسىم ۋاقتى (Costa Rica)',
+        'America/Coyhaique' => 'چىلى ۋاقتى (Coyhaique)',
         'America/Creston' => 'تاغ ۋاقتى (Creston)',
-        'America/Cuiaba' => 'ئامازون ۋاقتى (Cuiaba)',
+        'America/Cuiaba' => 'ئامازون ۋاقتى (Cuiabá)',
         'America/Curacao' => 'ئاتلانتىك ئوكيان ۋاقتى (كۇراسو)',
         'America/Danmarkshavn' => 'گىرىنۋىچ ۋاقتى (Danmarkshavn)',
         'America/Dawson' => 'كانادا ۋاقتى (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'شەرقىي قىسىم ۋاقتى (Detroit)',
         'America/Dominica' => 'ئاتلانتىك ئوكيان ۋاقتى (Dominica)',
         'America/Edmonton' => 'تاغ ۋاقتى (Edmonton)',
-        'America/Eirunepe' => 'ئاكرې ۋاقتى (Eirunepe)',
+        'America/Eirunepe' => 'ئاكرې ۋاقتى (Eirunepé)',
         'America/El_Salvador' => 'ئوتتۇرا قىسىم ۋاقتى (El Salvador)',
         'America/Fort_Nelson' => 'تاغ ۋاقتى (Fort Nelson)',
         'America/Fortaleza' => 'بىرازىلىيە ۋاقتى (Fortaleza)',
         'America/Glace_Bay' => 'ئاتلانتىك ئوكيان ۋاقتى (Glace Bay)',
         'America/Godthab' => 'گىرېنلاندىيە ۋاقتى (Nuuk)',
+        'America/Nuuk' => 'گىرېنلاندىيە ۋاقتى (Nuuk)',
         'America/Goose_Bay' => 'ئاتلانتىك ئوكيان ۋاقتى (Goose Bay)',
         'America/Grand_Turk' => 'شەرقىي قىسىم ۋاقتى (Grand Turk)',
         'America/Grenada' => 'ئاتلانتىك ئوكيان ۋاقتى (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'شەرقىي قىسىم ۋاقتى (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'شەرقىي قىسىم ۋاقتى (Winamac, Indiana)',
         'America/Indianapolis' => 'شەرقىي قىسىم ۋاقتى (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'شەرقىي قىسىم ۋاقتى (Indianapolis)',
         'America/Inuvik' => 'تاغ ۋاقتى (Inuvik)',
         'America/Iqaluit' => 'شەرقىي قىسىم ۋاقتى (Iqaluit)',
         'America/Jamaica' => 'شەرقىي قىسىم ۋاقتى (Jamaica)',
         'America/Jujuy' => 'ئارگېنتىنا ۋاقتى (Jujuy)',
+        'America/Argentina/Jujuy' => 'ئارگېنتىنا ۋاقتى (Jujuy)',
         'America/Juneau' => 'ئالياسكا ۋاقتى (Juneau)',
         'America/Kentucky/Monticello' => 'شەرقىي قىسىم ۋاقتى (Monticello, Kentucky)',
         'America/Kralendijk' => 'ئاتلانتىك ئوكيان ۋاقتى (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'پېرۇ ۋاقتى (Lima)',
         'America/Los_Angeles' => 'تىنچ ئوكيان ۋاقتى (Los Angeles)',
         'America/Louisville' => 'شەرقىي قىسىم ۋاقتى (Louisville)',
+        'America/Kentucky/Louisville' => 'شەرقىي قىسىم ۋاقتى (Louisville)',
         'America/Lower_Princes' => 'ئاتلانتىك ئوكيان ۋاقتى (Lower Prince’s Quarter)',
-        'America/Maceio' => 'بىرازىلىيە ۋاقتى (Maceio)',
+        'America/Maceio' => 'بىرازىلىيە ۋاقتى (Maceió)',
         'America/Managua' => 'ئوتتۇرا قىسىم ۋاقتى (Managua)',
         'America/Manaus' => 'ئامازون ۋاقتى (Manaus)',
         'America/Marigot' => 'ئاتلانتىك ئوكيان ۋاقتى (Marigot)',
         'America/Martinique' => 'ئاتلانتىك ئوكيان ۋاقتى (Martinique)',
         'America/Matamoros' => 'ئوتتۇرا قىسىم ۋاقتى (Matamoros)',
-        'America/Mazatlan' => 'مېكسىكا تىنچ ئوكيان ۋاقتى (Mazatlan)',
+        'America/Mazatlan' => 'مېكسىكا تىنچ ئوكيان ۋاقتى (Mazatlán)',
         'America/Mendoza' => 'ئارگېنتىنا ۋاقتى (Mendoza)',
+        'America/Argentina/Mendoza' => 'ئارگېنتىنا ۋاقتى (Mendoza)',
         'America/Menominee' => 'ئوتتۇرا قىسىم ۋاقتى (Menominee)',
         'America/Merida' => 'ئوتتۇرا قىسىم ۋاقتى (Mérida)',
         'America/Metlakatla' => 'ئالياسكا ۋاقتى (Metlakatla)',
-        'America/Mexico_City' => 'ئوتتۇرا قىسىم ۋاقتى (Mexico City)',
-        'America/Miquelon' => 'ساينىت پىئېر ۋە مىكېلون ۋاقتى (Miquelon)',
+        'America/Mexico_City' => 'ئوتتۇرا قىسىم ۋاقتى (Ciudad de México)',
+        'America/Miquelon' => 'ساينىت پىئېر ۋە مىكېلون ۋاقتى (Saint-Pierre)',
         'America/Moncton' => 'ئاتلانتىك ئوكيان ۋاقتى (Moncton)',
         'America/Monterrey' => 'ئوتتۇرا قىسىم ۋاقتى (Monterrey)',
         'America/Montevideo' => 'ئۇرۇگۋاي ۋاقتى (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'ئوتتۇرا قىسىم ۋاقتى (Regina)',
         'America/Resolute' => 'ئوتتۇرا قىسىم ۋاقتى (Resolute)',
         'America/Rio_Branco' => 'ئاكرې ۋاقتى (Rio Branco)',
-        'America/Santarem' => 'بىرازىلىيە ۋاقتى (Santarem)',
+        'America/Santarem' => 'بىرازىلىيە ۋاقتى (Santarém)',
         'America/Santiago' => 'چىلى ۋاقتى (Santiago)',
         'America/Santo_Domingo' => 'ئاتلانتىك ئوكيان ۋاقتى (Santo Domingo)',
-        'America/Sao_Paulo' => 'بىرازىلىيە ۋاقتى (Sao Paulo)',
+        'America/Sao_Paulo' => 'بىرازىلىيە ۋاقتى (São Paulo)',
         'America/Scoresbysund' => 'گىرېنلاندىيە ۋاقتى (Ittoqqortoormiit)',
         'America/Sitka' => 'ئالياسكا ۋاقتى (Sitka)',
         'America/St_Barthelemy' => 'ئاتلانتىك ئوكيان ۋاقتى (ساينىت-بارتھېلەمىي)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'يېڭى زېلاندىيە ۋاقتى (McMurdo)',
         'Antarctica/Palmer' => 'چىلى ۋاقتى (Palmer)',
         'Antarctica/Rothera' => 'روتېرا ۋاقتى (Rothera)',
-        'Antarctica/Syowa' => 'شوۋا ۋاقتى (Syowa)',
+        'Antarctica/Syowa' => 'شوۋا ۋاقتى (Showa)',
         'Antarctica/Troll' => 'گىرىنۋىچ ۋاقتى (Troll)',
         'Antarctica/Vostok' => 'ۋوستوك ۋاقتى (Vostok)',
         'Arctic/Longyearbyen' => 'ئوتتۇرا ياۋروپا ۋاقتى (Longyearbyen)',
         'Asia/Aden' => 'ئەرەب ۋاقتى (Aden)',
         'Asia/Almaty' => 'قازاقىستان ۋاقتى (Almaty)',
         'Asia/Amman' => 'شەرقىي ياۋروپا ۋاقتى (Amman)',
-        'Asia/Anadyr' => 'ئانادىر ۋاقتى (Anadyr)',
+        'Asia/Anadyr' => 'پېتروپاۋلوۋسك-كامچاتكسكى ۋاقتى (Anadyr)',
         'Asia/Aqtau' => 'قازاقىستان ۋاقتى (Aqtau)',
         'Asia/Aqtobe' => 'قازاقىستان ۋاقتى (Aqtobe)',
         'Asia/Ashgabat' => 'تۈركمەنىستان ۋاقتى (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'ئەرەب ۋاقتى (Bahrain)',
         'Asia/Baku' => 'ئەزەربەيجان ۋاقتى (Baku)',
         'Asia/Bangkok' => 'ھىندى چىنى ۋاقتى (Bangkok)',
-        'Asia/Barnaul' => 'رۇسىيە ۋاقتى (Barnaul)',
+        'Asia/Barnaul' => 'كىراسنويارسك ۋاقتى (Barnaul)',
         'Asia/Beirut' => 'شەرقىي ياۋروپا ۋاقتى (Beirut)',
         'Asia/Bishkek' => 'قىرغىزىستان ۋاقتى (Bishkek)',
         'Asia/Brunei' => 'بىرۇنىي دارۇسسالام ۋاقتى (Brunei)',
         'Asia/Calcutta' => 'ھىندىستان ئۆلچەملىك ۋاقتى (Kolkata)',
+        'Asia/Kolkata' => 'ھىندىستان ئۆلچەملىك ۋاقتى (Kolkata)',
         'Asia/Chita' => 'ياكۇتسك ۋاقتى (Chita)',
         'Asia/Colombo' => 'ھىندىستان ئۆلچەملىك ۋاقتى (Colombo)',
         'Asia/Damascus' => 'شەرقىي ياۋروپا ۋاقتى (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'شەرقىي ياۋروپا ۋاقتى (Gaza)',
         'Asia/Hebron' => 'شەرقىي ياۋروپا ۋاقتى (Hebron)',
         'Asia/Hong_Kong' => 'شياڭگاڭ ۋاقتى (Hong Kong)',
-        'Asia/Hovd' => 'خوۋد ۋاقتى (Hovd)',
+        'Asia/Hovd' => 'خوۋد ۋاقتى (Khovd)',
         'Asia/Irkutsk' => 'ئىركۇتسك ۋاقتى (Irkutsk)',
         'Asia/Jakarta' => 'غەربىي ھىندونېزىيە ۋاقتى (Jakarta)',
         'Asia/Jayapura' => 'شەرقىي ھىندونېزىيە ۋاقتى (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'پېتروپاۋلوۋسك-كامچاتكسكى ۋاقتى (Kamchatka)',
         'Asia/Karachi' => 'پاكىستان ۋاقتى (Karachi)',
         'Asia/Katmandu' => 'نېپال ۋاقتى (Kathmandu)',
+        'Asia/Kathmandu' => 'نېپال ۋاقتى (Kathmandu)',
         'Asia/Khandyga' => 'ياكۇتسك ۋاقتى (Khandyga)',
         'Asia/Krasnoyarsk' => 'كىراسنويارسك ۋاقتى (Krasnoyarsk)',
         'Asia/Kuala_Lumpur' => 'مالايشىيا ۋاقتى (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'گۇلف ئۆلچەملىك ۋاقتى (Muscat)',
         'Asia/Nicosia' => 'شەرقىي ياۋروپا ۋاقتى (Nicosia)',
         'Asia/Novokuznetsk' => 'كىراسنويارسك ۋاقتى (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'نوۋوسىبىرسك ۋاقتى (Novosibirsk)',
+        'Asia/Novosibirsk' => 'كىراسنويارسك ۋاقتى (Novosibirsk)',
         'Asia/Omsk' => 'ئومسك ۋاقتى (Omsk)',
         'Asia/Oral' => 'قازاقىستان ۋاقتى (Oral)',
         'Asia/Phnom_Penh' => 'ھىندى چىنى ۋاقتى (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'قازاقىستان ۋاقتى (Qostanay)',
         'Asia/Qyzylorda' => 'قازاقىستان ۋاقتى (Qyzylorda)',
         'Asia/Rangoon' => 'بىرما ۋاقتى (Yangon)',
+        'Asia/Yangon' => 'بىرما ۋاقتى (Yangon)',
         'Asia/Riyadh' => 'ئەرەب ۋاقتى (Riyadh)',
         'Asia/Saigon' => 'ھىندى چىنى ۋاقتى (خوچىمىن شەھىرى)',
-        'Asia/Sakhalin' => 'ساخارىن ۋاقتى (Sakhalin)',
+        'Asia/Ho_Chi_Minh' => 'ھىندى چىنى ۋاقتى (خوچىمىن شەھىرى)',
+        'Asia/Sakhalin' => 'ماگادان ۋاقتى (Sakhalin)',
         'Asia/Samarkand' => 'ئۆزبېكىستان ۋاقتى (Samarkand)',
         'Asia/Seoul' => 'كورىيە ۋاقتى (Seoul)',
         'Asia/Shanghai' => 'جۇڭگو ۋاقتى (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'ئىران ۋاقتى (Tehran)',
         'Asia/Thimphu' => 'بۇتان ۋاقتى (Thimphu)',
         'Asia/Tokyo' => 'ياپونىيە ۋاقتى (Tokyo)',
-        'Asia/Tomsk' => 'رۇسىيە ۋاقتى (Tomsk)',
+        'Asia/Tomsk' => 'كىراسنويارسك ۋاقتى (Tomsk)',
         'Asia/Ulaanbaatar' => 'ئۇلانباتور ۋاقتى (Ulaanbaatar)',
-        'Asia/Urumqi' => 'جۇڭگو ۋاقتى (Urumqi)',
+        'Asia/Urumqi' => 'جۇڭگو ۋاقتى (Ürümqi)',
         'Asia/Ust-Nera' => 'ۋىلادىۋوستوك ۋاقتى (Ust-Nera)',
         'Asia/Vientiane' => 'ھىندى چىنى ۋاقتى (Vientiane)',
         'Asia/Vladivostok' => 'ۋىلادىۋوستوك ۋاقتى (Vladivostok)',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'ئەرمېنىيە ۋاقتى (Yerevan)',
         'Atlantic/Azores' => 'ئازور ۋاقتى (Azores)',
         'Atlantic/Bermuda' => 'ئاتلانتىك ئوكيان ۋاقتى (Bermuda)',
-        'Atlantic/Canary' => 'غەربىي ياۋروپا ۋاقتى (Canary)',
+        'Atlantic/Canary' => 'غەربىي ياۋروپا ۋاقتى (Canarias)',
         'Atlantic/Cape_Verde' => 'يېشىل تۇمشۇق ۋاقتى (Cape Verde)',
         'Atlantic/Faeroe' => 'غەربىي ياۋروپا ۋاقتى (Faroe)',
+        'Atlantic/Faroe' => 'غەربىي ياۋروپا ۋاقتى (Faroe)',
         'Atlantic/Madeira' => 'غەربىي ياۋروپا ۋاقتى (Madeira)',
         'Atlantic/Reykjavik' => 'گىرىنۋىچ ۋاقتى (Reykjavik)',
         'Atlantic/South_Georgia' => 'جەنۇبىي جورجىيە ۋاقتى (South Georgia)',
@@ -315,7 +331,7 @@
         'Etc/GMT' => 'گىرىنۋىچ ۋاقتى',
         'Europe/Amsterdam' => 'ئوتتۇرا ياۋروپا ۋاقتى (Amsterdam)',
         'Europe/Andorra' => 'ئوتتۇرا ياۋروپا ۋاقتى (Andorra)',
-        'Europe/Astrakhan' => 'موسكۋا ۋاقتى (Astrakhan)',
+        'Europe/Astrakhan' => 'سامارا ۋاقتى (Astrakhan)',
         'Europe/Athens' => 'شەرقىي ياۋروپا ۋاقتى (Athens)',
         'Europe/Belgrade' => 'ئوتتۇرا ياۋروپا ۋاقتى (Belgrade)',
         'Europe/Berlin' => 'ئوتتۇرا ياۋروپا ۋاقتى (Berlin)',
@@ -323,8 +339,8 @@
         'Europe/Brussels' => 'ئوتتۇرا ياۋروپا ۋاقتى (Brussels)',
         'Europe/Bucharest' => 'شەرقىي ياۋروپا ۋاقتى (Bucharest)',
         'Europe/Budapest' => 'ئوتتۇرا ياۋروپا ۋاقتى (Budapest)',
-        'Europe/Busingen' => 'ئوتتۇرا ياۋروپا ۋاقتى (Busingen)',
-        'Europe/Chisinau' => 'شەرقىي ياۋروپا ۋاقتى (Chisinau)',
+        'Europe/Busingen' => 'ئوتتۇرا ياۋروپا ۋاقتى (Büsingen)',
+        'Europe/Chisinau' => 'شەرقىي ياۋروپا ۋاقتى (Chișinău)',
         'Europe/Copenhagen' => 'ئوتتۇرا ياۋروپا ۋاقتى (Copenhagen)',
         'Europe/Dublin' => 'گىرىنۋىچ ۋاقتى (Dublin)',
         'Europe/Gibraltar' => 'ئوتتۇرا ياۋروپا ۋاقتى (Gibraltar)',
@@ -335,7 +351,8 @@
         'Europe/Jersey' => 'گىرىنۋىچ ۋاقتى (Jersey)',
         'Europe/Kaliningrad' => 'شەرقىي ياۋروپا ۋاقتى (Kaliningrad)',
         'Europe/Kiev' => 'شەرقىي ياۋروپا ۋاقتى (Kyiv)',
-        'Europe/Kirov' => 'رۇسىيە ۋاقتى (Kirov)',
+        'Europe/Kyiv' => 'شەرقىي ياۋروپا ۋاقتى (Kyiv)',
+        'Europe/Kirov' => 'موسكۋا ۋاقتى (Kirov)',
         'Europe/Lisbon' => 'غەربىي ياۋروپا ۋاقتى (Lisbon)',
         'Europe/Ljubljana' => 'ئوتتۇرا ياۋروپا ۋاقتى (Ljubljana)',
         'Europe/London' => 'گىرىنۋىچ ۋاقتى (London)',
@@ -355,19 +372,19 @@
         'Europe/Samara' => 'سامارا ۋاقتى (Samara)',
         'Europe/San_Marino' => 'ئوتتۇرا ياۋروپا ۋاقتى (San Marino)',
         'Europe/Sarajevo' => 'ئوتتۇرا ياۋروپا ۋاقتى (Sarajevo)',
-        'Europe/Saratov' => 'موسكۋا ۋاقتى (Saratov)',
+        'Europe/Saratov' => 'سامارا ۋاقتى (Saratov)',
         'Europe/Simferopol' => 'موسكۋا ۋاقتى (Simferopol)',
         'Europe/Skopje' => 'ئوتتۇرا ياۋروپا ۋاقتى (Skopje)',
         'Europe/Sofia' => 'شەرقىي ياۋروپا ۋاقتى (Sofia)',
         'Europe/Stockholm' => 'ئوتتۇرا ياۋروپا ۋاقتى (Stockholm)',
         'Europe/Tallinn' => 'شەرقىي ياۋروپا ۋاقتى (Tallinn)',
-        'Europe/Tirane' => 'ئوتتۇرا ياۋروپا ۋاقتى (Tirane)',
-        'Europe/Ulyanovsk' => 'موسكۋا ۋاقتى (Ulyanovsk)',
+        'Europe/Tirane' => 'ئوتتۇرا ياۋروپا ۋاقتى (Tirana)',
+        'Europe/Ulyanovsk' => 'سامارا ۋاقتى (Ulyanovsk)',
         'Europe/Vaduz' => 'ئوتتۇرا ياۋروپا ۋاقتى (Vaduz)',
         'Europe/Vatican' => 'ئوتتۇرا ياۋروپا ۋاقتى (Vatican)',
         'Europe/Vienna' => 'ئوتتۇرا ياۋروپا ۋاقتى (Vienna)',
         'Europe/Vilnius' => 'شەرقىي ياۋروپا ۋاقتى (Vilnius)',
-        'Europe/Volgograd' => 'ۋولگاگراد ۋاقتى (Volgograd)',
+        'Europe/Volgograd' => 'موسكۋا ۋاقتى (Volgograd)',
         'Europe/Warsaw' => 'ئوتتۇرا ياۋروپا ۋاقتى (Warsaw)',
         'Europe/Zagreb' => 'ئوتتۇرا ياۋروپا ۋاقتى (Zagreb)',
         'Europe/Zurich' => 'ئوتتۇرا ياۋروپا ۋاقتى (Zurich)',
@@ -375,9 +392,9 @@
         'Indian/Chagos' => 'ھىندى ئوكيان ۋاقتى (Chagos)',
         'Indian/Christmas' => 'روژدېستۋو ئارىلى ۋاقتى (Christmas)',
         'Indian/Cocos' => 'كوكۇس ئارىلى ۋاقتى (Cocos)',
-        'Indian/Comoro' => 'شەرقىي ئافرىقا ۋاقتى (Comoro)',
+        'Indian/Comoro' => 'شەرقىي ئافرىقا ۋاقتى (Comores)',
         'Indian/Kerguelen' => 'فىرانسىيەگە قاراشلىق جەنۇبىي ۋە ئانتاركتىكا ۋاقتى (Kerguelen)',
-        'Indian/Mahe' => 'سېيشېل ۋاقتى (Mahe)',
+        'Indian/Mahe' => 'سېيشېل ۋاقتى (Mahé)',
         'Indian/Maldives' => 'مالدىۋې ۋاقتى (Maldives)',
         'Indian/Mauritius' => 'ماۋرىتىئۇس ۋاقتى (Mauritius)',
         'Indian/Mayotte' => 'شەرقىي ئافرىقا ۋاقتى (Mayotte)',
@@ -388,15 +405,16 @@
         'Pacific/Chatham' => 'چاتام ۋاقتى (Chatham)',
         'Pacific/Easter' => 'ئېستېر ئارىلى ۋاقتى (Easter)',
         'Pacific/Efate' => 'ۋانۇئاتۇ ۋاقتى (Efate)',
-        'Pacific/Enderbury' => 'فېنىكس ئاراللىرى ۋاقتى (Enderbury)',
+        'Pacific/Enderbury' => 'فېنىكس ئاراللىرى ۋاقتى (Canton)',
+        'Pacific/Kanton' => 'فېنىكس ئاراللىرى ۋاقتى (Canton)',
         'Pacific/Fakaofo' => 'توكېلاۋ ۋاقتى (Fakaofo)',
         'Pacific/Fiji' => 'فىجى ۋاقتى (Fiji)',
         'Pacific/Funafuti' => 'تۇۋالۇ ۋاقتى (Funafuti)',
-        'Pacific/Galapagos' => 'گالاپاگوس ۋاقتى (Galapagos)',
+        'Pacific/Galapagos' => 'گالاپاگوس ۋاقتى (Galápagos)',
         'Pacific/Gambier' => 'گامبىيېر ۋاقتى (Gambier)',
         'Pacific/Guadalcanal' => 'سولومون ئاراللىرى ۋاقتى (Guadalcanal)',
         'Pacific/Guam' => 'چاموررو ئۆلچەملىك ۋاقتى (Guam)',
-        'Pacific/Honolulu' => 'ھاۋاي-ئالېيۇت ۋاقتى (Honolulu)',
+        'Pacific/Honolulu' => 'ھاۋاي-ئالېيۇت ئۆلچەملىك ۋاقتى (Honolulu)',
         'Pacific/Kiritimati' => 'لاين ئاراللىرى ۋاقتى (Kiritimati)',
         'Pacific/Kosrae' => 'كوسرائې ۋاقتى (Kosrae)',
         'Pacific/Kwajalein' => 'مارشال ئاراللىرى ۋاقتى (Kwajalein)',
@@ -406,11 +424,12 @@
         'Pacific/Nauru' => 'ناۋرۇ ۋاقتى (Nauru)',
         'Pacific/Niue' => 'نىيۇئې ۋاقتى (Niue)',
         'Pacific/Norfolk' => 'نورفولك ئاراللىرى ۋاقتى (Norfolk)',
-        'Pacific/Noumea' => 'يېڭى كالېدونىيە ۋاقتى (Noumea)',
+        'Pacific/Noumea' => 'يېڭى كالېدونىيە ۋاقتى (Nouméa)',
         'Pacific/Pago_Pago' => 'ساموئا ۋاقتى (Pago Pago)',
         'Pacific/Palau' => 'پالاۋ ۋاقتى (Palau)',
         'Pacific/Pitcairn' => 'پىتكاير ۋاقتى (Pitcairn)',
         'Pacific/Ponape' => 'پونپېي ۋاقتى (Pohnpei)',
+        'Pacific/Pohnpei' => 'پونپېي ۋاقتى (Pohnpei)',
         'Pacific/Port_Moresby' => 'پاپۇئا يېڭى گىۋىنېيەسى ۋاقتى (Port Moresby)',
         'Pacific/Rarotonga' => 'كۇك ئاراللىرى ۋاقتى (Rarotonga)',
         'Pacific/Saipan' => 'چاموررو ئۆلچەملىك ۋاقتى (Saipan)',
@@ -418,8 +437,9 @@
         'Pacific/Tarawa' => 'گىلبېرت ئاراللىرى ۋاقتى (Tarawa)',
         'Pacific/Tongatapu' => 'تونگا ۋاقتى (Tongatapu)',
         'Pacific/Truk' => 'چۇك ۋاقتى (Chuuk)',
+        'Pacific/Chuuk' => 'چۇك ۋاقتى (Chuuk)',
         'Pacific/Wake' => 'ۋېيك ئارىلى ۋاقتى (Wake)',
-        'Pacific/Wallis' => 'ۋاللىس ۋە فۇتۇنا ۋاقتى (Wallis)',
+        'Pacific/Wallis' => 'ۋاللىس ۋە فۇتۇنا ۋاقتى (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uk.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'за східноафриканським часом (Аддис-Абеба)',
         'Africa/Algiers' => 'за центральноєвропейським часом (Алжир)',
         'Africa/Asmera' => 'за східноафриканським часом (Асмера)',
+        'Africa/Asmara' => 'за східноафриканським часом (Асмера)',
         'Africa/Bamako' => 'за Гринвічем (Бамако)',
         'Africa/Bangui' => 'за західноафриканським часом (Банґі)',
         'Africa/Banjul' => 'за Гринвічем (Банжул)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'за колумбійським часом (Боґота)',
         'America/Boise' => 'за північноамериканським гірським часом (Бойсе)',
         'America/Buenos_Aires' => 'за аргентинським часом (Буенос-Айрес)',
+        'America/Argentina/Buenos_Aires' => 'за аргентинським часом (Буенос-Айрес)',
         'America/Cambridge_Bay' => 'за північноамериканським гірським часом (Кеймбрідж-Бей)',
         'America/Campo_Grande' => 'за часом на Амазонці (Кампу-Ґранді)',
         'America/Cancun' => 'за північноамериканським східним часом (Канкун)',
         'America/Caracas' => 'за часом у Венесуелі (Каракас)',
         'America/Catamarca' => 'за аргентинським часом (Катамарка)',
+        'America/Argentina/Catamarca' => 'за аргентинським часом (Катамарка)',
         'America/Cayenne' => 'за часом Французької Ґвіани (Каєнна)',
         'America/Cayman' => 'за північноамериканським східним часом (Кайманові Острови)',
         'America/Chicago' => 'за північноамериканським центральним часом (Чікаґо)',
         'America/Chihuahua' => 'за північноамериканським центральним часом (Чіуауа)',
         'America/Ciudad_Juarez' => 'за північноамериканським гірським часом (С’юдад-Хуарес)',
         'America/Coral_Harbour' => 'за північноамериканським східним часом (Атікокан)',
+        'America/Atikokan' => 'за північноамериканським східним часом (Атікокан)',
         'America/Cordoba' => 'за аргентинським часом (Кордова)',
+        'America/Argentina/Cordoba' => 'за аргентинським часом (Кордова)',
         'America/Costa_Rica' => 'за північноамериканським центральним часом (Коста-Ріка)',
+        'America/Coyhaique' => 'за чилійським часом (Кояїке)',
         'America/Creston' => 'за північноамериканським гірським часом (Крестон)',
         'America/Cuiaba' => 'за часом на Амазонці (Куяба)',
         'America/Curacao' => 'за атлантичним часом (Кюрасао)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'за бразильським часом (Форталеза)',
         'America/Glace_Bay' => 'за атлантичним часом (Ґлейс-Бей)',
         'America/Godthab' => 'час: Гренландія (Нуук)',
+        'America/Nuuk' => 'час: Гренландія (Нуук)',
         'America/Goose_Bay' => 'за атлантичним часом (Ґус-Бей)',
         'America/Grand_Turk' => 'за північноамериканським східним часом (Ґранд-Терк)',
         'America/Grenada' => 'за атлантичним часом (Ґренада)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'за північноамериканським східним часом (Вінсенс, Індіана)',
         'America/Indiana/Winamac' => 'за північноамериканським східним часом (Вінамак, Індіана)',
         'America/Indianapolis' => 'за північноамериканським східним часом (Індіанаполіс)',
+        'America/Indiana/Indianapolis' => 'за північноамериканським східним часом (Індіанаполіс)',
         'America/Inuvik' => 'за північноамериканським гірським часом (Інувік)',
         'America/Iqaluit' => 'за північноамериканським східним часом (Ікалуїт)',
         'America/Jamaica' => 'за північноамериканським східним часом (Ямайка)',
         'America/Jujuy' => 'за аргентинським часом (Жужуй)',
+        'America/Argentina/Jujuy' => 'за аргентинським часом (Жужуй)',
         'America/Juneau' => 'за часом на Алясці (Джуно)',
         'America/Kentucky/Monticello' => 'за північноамериканським східним часом (Монтіселло, Кентуккі)',
         'America/Kralendijk' => 'за атлантичним часом (Кралендейк)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'за часом у Перу (Ліма)',
         'America/Los_Angeles' => 'за північноамериканським тихоокеанським часом (Лос-Анджелес)',
         'America/Louisville' => 'за північноамериканським східним часом (Луїсвілл)',
+        'America/Kentucky/Louisville' => 'за північноамериканським східним часом (Луїсвілл)',
         'America/Lower_Princes' => 'за атлантичним часом (Лоуер-Принсес-Квотер)',
         'America/Maceio' => 'за бразильським часом (Масейо)',
         'America/Managua' => 'за північноамериканським центральним часом (Манаґуа)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'за північноамериканським центральним часом (Матаморос)',
         'America/Mazatlan' => 'за тихоокеанським часом у Мексиці (Масатлан)',
         'America/Mendoza' => 'за аргентинським часом (Мендоса)',
+        'America/Argentina/Mendoza' => 'за аргентинським часом (Мендоса)',
         'America/Menominee' => 'за північноамериканським центральним часом (Меноміні)',
         'America/Merida' => 'за північноамериканським центральним часом (Меріда)',
         'America/Metlakatla' => 'за часом на Алясці (Метлакатла)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'за арабським часом (Аден)',
         'Asia/Almaty' => 'за часом у Казахстані (Алмати)',
         'Asia/Amman' => 'за східноєвропейським часом (Амман)',
-        'Asia/Anadyr' => 'час: Анадир',
+        'Asia/Anadyr' => 'за камчатським часом (Анадир)',
         'Asia/Aqtau' => 'за часом у Казахстані (Актау)',
         'Asia/Aqtobe' => 'за часом у Казахстані (Актобе)',
         'Asia/Ashgabat' => 'за часом у Туркменістані (Ашгабат)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'за арабським часом (Бахрейн)',
         'Asia/Baku' => 'за азербайджанським часом (Баку)',
         'Asia/Bangkok' => 'за часом в Індокитаї (Бангкок)',
-        'Asia/Barnaul' => 'час: Росія (Барнаул)',
+        'Asia/Barnaul' => 'за красноярським часом (Барнаул)',
         'Asia/Beirut' => 'за східноєвропейським часом (Бейрут)',
         'Asia/Bishkek' => 'за часом у Киргизстані (Бішкек)',
         'Asia/Brunei' => 'за часом у Брунеї (Бруней)',
         'Asia/Calcutta' => 'за індійським стандартним часом (Колката)',
+        'Asia/Kolkata' => 'за індійським стандартним часом (Колката)',
         'Asia/Chita' => 'за якутським часом (Чита)',
         'Asia/Colombo' => 'за індійським стандартним часом (Коломбо)',
         'Asia/Damascus' => 'за східноєвропейським часом (Дамаск)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'за камчатським часом (Камчатка)',
         'Asia/Karachi' => 'за часом у Пакистані (Карачі)',
         'Asia/Katmandu' => 'за часом у Непалі (Катманду)',
+        'Asia/Kathmandu' => 'за часом у Непалі (Катманду)',
         'Asia/Khandyga' => 'за якутським часом (Хандига)',
         'Asia/Krasnoyarsk' => 'за красноярським часом',
         'Asia/Kuala_Lumpur' => 'за часом у Малайзії (Куала-Лумпур)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'за часом Перської затоки (Маскат)',
         'Asia/Nicosia' => 'за східноєвропейським часом (Нікосія)',
         'Asia/Novokuznetsk' => 'за красноярським часом (Новокузнецьк)',
-        'Asia/Novosibirsk' => 'за новосибірським часом',
+        'Asia/Novosibirsk' => 'за красноярським часом (Новосибірськ)',
         'Asia/Omsk' => 'за омським часом',
         'Asia/Oral' => 'за часом у Казахстані (Орал)',
         'Asia/Phnom_Penh' => 'за часом в Індокитаї (Пномпень)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'за часом у Казахстані (Костанай)',
         'Asia/Qyzylorda' => 'за часом у Казахстані (Кизилорда)',
         'Asia/Rangoon' => 'за часом у Мʼянмі (Янгон)',
+        'Asia/Yangon' => 'за часом у Мʼянмі (Янгон)',
         'Asia/Riyadh' => 'за арабським часом (Ер-Ріяд)',
         'Asia/Saigon' => 'за часом в Індокитаї (Хошимін)',
-        'Asia/Sakhalin' => 'за сахалінським часом',
+        'Asia/Ho_Chi_Minh' => 'за часом в Індокитаї (Хошимін)',
+        'Asia/Sakhalin' => 'за магаданським часом (Сахалін)',
         'Asia/Samarkand' => 'за часом в Узбекистані (Самарканд)',
         'Asia/Seoul' => 'за корейським часом (Сеул)',
         'Asia/Shanghai' => 'за китайським часом (Шанхай)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'за іранським часом (Тегеран)',
         'Asia/Thimphu' => 'за часом у Бутані (Тхімпху)',
         'Asia/Tokyo' => 'за японським часом (Токіо)',
-        'Asia/Tomsk' => 'час: Росія (Томськ)',
+        'Asia/Tomsk' => 'за красноярським часом (Томськ)',
         'Asia/Ulaanbaatar' => 'за часом в Улан-Баторі',
         'Asia/Urumqi' => 'час: Китай (Урумчі)',
         'Asia/Ust-Nera' => 'за владивостоцьким часом (Усть-Нера)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'за західноєвропейським часом (Канарські острови)',
         'Atlantic/Cape_Verde' => 'за часом на островах Кабо-Верде',
         'Atlantic/Faeroe' => 'за західноєвропейським часом (Фарерські острови)',
+        'Atlantic/Faroe' => 'за західноєвропейським часом (Фарерські острови)',
         'Atlantic/Madeira' => 'за західноєвропейським часом (Мадейра)',
         'Atlantic/Reykjavik' => 'за Гринвічем (Рейкʼявік)',
         'Atlantic/South_Georgia' => 'за часом на острові Південна Джорджія',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'за всесвітнім координованим часом',
         'Europe/Amsterdam' => 'за центральноєвропейським часом (Амстердам)',
         'Europe/Andorra' => 'за центральноєвропейським часом (Андорра)',
-        'Europe/Astrakhan' => 'за московським часом (Астрахань)',
+        'Europe/Astrakhan' => 'за самарським часом (Астрахань)',
         'Europe/Athens' => 'за східноєвропейським часом (Афіни)',
         'Europe/Belgrade' => 'за центральноєвропейським часом (Белград)',
         'Europe/Berlin' => 'за центральноєвропейським часом (Берлін)',
@@ -332,11 +348,12 @@
         'Europe/Guernsey' => 'за Гринвічем (Гернсі)',
         'Europe/Helsinki' => 'за східноєвропейським часом (Гельсінкі)',
         'Europe/Isle_of_Man' => 'за Гринвічем (Острів Мен)',
-        'Europe/Istanbul' => 'час: Туреччина (Стамбул)',
+        'Europe/Istanbul' => 'за турецьким часом (Стамбул)',
         'Europe/Jersey' => 'за Гринвічем (Джерсі)',
         'Europe/Kaliningrad' => 'за східноєвропейським часом (Калінінград)',
         'Europe/Kiev' => 'за східноєвропейським часом (Київ)',
-        'Europe/Kirov' => 'час: Росія (Кіров)',
+        'Europe/Kyiv' => 'за східноєвропейським часом (Київ)',
+        'Europe/Kirov' => 'за московським часом (Кіров)',
         'Europe/Lisbon' => 'за західноєвропейським часом (Лісабон)',
         'Europe/Ljubljana' => 'за центральноєвропейським часом (Любляна)',
         'Europe/London' => 'за Гринвічем (Лондон)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'за самарським часом (Самара)',
         'Europe/San_Marino' => 'за центральноєвропейським часом (Сан-Марино)',
         'Europe/Sarajevo' => 'за центральноєвропейським часом (Сараєво)',
-        'Europe/Saratov' => 'за московським часом (Саратов)',
+        'Europe/Saratov' => 'за самарським часом (Саратов)',
         'Europe/Simferopol' => 'за московським часом (Сімферополь)',
         'Europe/Skopje' => 'за центральноєвропейським часом (Скопʼє)',
         'Europe/Sofia' => 'за східноєвропейським часом (Софія)',
         'Europe/Stockholm' => 'за центральноєвропейським часом (Стокгольм)',
         'Europe/Tallinn' => 'за східноєвропейським часом (Таллінн)',
         'Europe/Tirane' => 'за центральноєвропейським часом (Тирана)',
-        'Europe/Ulyanovsk' => 'за московським часом (Ульянівськ)',
+        'Europe/Ulyanovsk' => 'за самарським часом (Ульянівськ)',
         'Europe/Vaduz' => 'за центральноєвропейським часом (Вадуц)',
         'Europe/Vatican' => 'за центральноєвропейським часом (Ватикан)',
         'Europe/Vienna' => 'за центральноєвропейським часом (Відень)',
         'Europe/Vilnius' => 'за східноєвропейським часом (Вільнюс)',
-        'Europe/Volgograd' => 'за волгоградським часом',
+        'Europe/Volgograd' => 'за московським часом (Волгоград)',
         'Europe/Warsaw' => 'за центральноєвропейським часом (Варшава)',
         'Europe/Zagreb' => 'за центральноєвропейським часом (Загреб)',
         'Europe/Zurich' => 'за центральноєвропейським часом (Цюріх)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'за часом на архіпелазі Чатем',
         'Pacific/Easter' => 'за часом на острові Пасхи (Острів Пасхи)',
         'Pacific/Efate' => 'за часом на островах Вануату (Ефате)',
-        'Pacific/Enderbury' => 'за часом на островах Фенікс (Ендербері)',
+        'Pacific/Enderbury' => 'за часом на островах Фенікс (Кантон)',
+        'Pacific/Kanton' => 'за часом на островах Фенікс (Кантон)',
         'Pacific/Fakaofo' => 'за часом на островах Токелау (Факаофо)',
         'Pacific/Fiji' => 'за часом у Фіджі',
         'Pacific/Funafuti' => 'за часом на островах Тувалу (Фунафуті)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'за часом на острові Ґамбʼє (Гамбʼє)',
         'Pacific/Guadalcanal' => 'за часом на Соломонових Островах (Гуадалканал)',
         'Pacific/Guam' => 'за часом на Північних Маріанських островах (Гуам)',
-        'Pacific/Honolulu' => 'за гавайсько-алеутським часом (Гонолулу)',
+        'Pacific/Honolulu' => 'за стандартним гавайсько-алеутським часом (Гонолулу)',
         'Pacific/Kiritimati' => 'за часом на острові Лайн (Кірітіматі)',
         'Pacific/Kosrae' => 'за часом на острові Косрае',
         'Pacific/Kwajalein' => 'за часом на Маршаллових Островах (Кваджалейн)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'за часом на острові Палау',
         'Pacific/Pitcairn' => 'за часом на островах Піткерн',
         'Pacific/Ponape' => 'за часом на острові Понапе',
+        'Pacific/Pohnpei' => 'за часом на острові Понапе',
         'Pacific/Port_Moresby' => 'за часом на островах Папуа-Нова Ґвінея (Порт-Морсбі)',
         'Pacific/Rarotonga' => 'за часом на Островах Кука (Раротонга)',
         'Pacific/Saipan' => 'за часом на Північних Маріанських островах (Сайпан)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'за часом на островах Гілберта (Тарава)',
         'Pacific/Tongatapu' => 'за часом на островах Тонга (Тонгатапу)',
         'Pacific/Truk' => 'за часом на островах Чуук',
+        'Pacific/Chuuk' => 'за часом на островах Чуук',
         'Pacific/Wake' => 'за часом на острові Вейк',
         'Pacific/Wallis' => 'за часом на островах Уолліс і Футуна',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ur_IN.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ur_IN.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ur_IN.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ur_IN.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,6 +24,7 @@
         'America/Campo_Grande' => 'ایمیزون ٹائم (کیمپو گرینڈ)',
         'America/Caracas' => 'وینزوئیلا ٹائم (کراکاس)',
         'America/Cayenne' => 'فرینچ گیانا ٹائم (کائین)',
+        'America/Coyhaique' => 'چلی ٹائم (کویائیکے)',
         'America/Cuiaba' => 'ایمیزون ٹائم (کوئیابا)',
         'America/Danmarkshavn' => 'گرین وچ مین ٹائم (ڈنمارک شاون)',
         'America/Glace_Bay' => 'اٹلانٹک ٹائم (گلیس بے)',
@@ -55,6 +56,7 @@
         'Asia/Baku' => 'آذربائیجان ٹائم (باکو)',
         'Asia/Bishkek' => 'کرغستان ٹائم (بشکیک)',
         'Asia/Calcutta' => 'انڈیا سٹینڈرڈ ٹائم (کولکاتا)',
+        'Asia/Kolkata' => 'انڈیا سٹینڈرڈ ٹائم (کولکاتا)',
         'Asia/Colombo' => 'انڈیا سٹینڈرڈ ٹائم (کولمبو)',
         'Asia/Dhaka' => 'بنگلہ دیش ٹائم (ڈھاکہ)',
         'Asia/Dubai' => 'خلیج سٹینڈرڈ ٹائم (دبئی)',
@@ -63,6 +65,7 @@
         'Asia/Kabul' => 'افغانستان ٹائم (کابل)',
         'Asia/Karachi' => 'پاکستان ٹائم (کراچی)',
         'Asia/Katmandu' => 'نیپال ٹائم (کاٹھمنڈو)',
+        'Asia/Kathmandu' => 'نیپال ٹائم (کاٹھمنڈو)',
         'Asia/Kuwait' => 'عرب ٹائم (کویت)',
         'Asia/Muscat' => 'خلیج سٹینڈرڈ ٹائم (مسقط)',
         'Asia/Qatar' => 'عرب ٹائم (قطر)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ur.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ur.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ur.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/ur.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'مشرقی افریقہ ٹائم (عدیس ابابا)',
         'Africa/Algiers' => 'وسط یورپ کا وقت (الجیئرس)',
         'Africa/Asmera' => 'مشرقی افریقہ ٹائم (اسمارا)',
+        'Africa/Asmara' => 'مشرقی افریقہ ٹائم (اسمارا)',
         'Africa/Bamako' => 'گرین وچ کا اصل وقت (بماکو)',
         'Africa/Bangui' => 'مغربی افریقہ ٹائم (بنگوئی)',
         'Africa/Banjul' => 'گرین وچ کا اصل وقت (بنجول)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'کولمبیا ٹائم (بگوٹا)',
         'America/Boise' => 'ماؤنٹین ٹائم (بوائس)',
         'America/Buenos_Aires' => 'ارجنٹینا کا وقت (بیونس آئرس)',
+        'America/Argentina/Buenos_Aires' => 'ارجنٹینا کا وقت (بیونس آئرس)',
         'America/Cambridge_Bay' => 'ماؤنٹین ٹائم (کیمبرج کی کھاڑی)',
         'America/Campo_Grande' => 'امیزون ٹائم (کیمپو گرینڈ)',
         'America/Cancun' => 'ایسٹرن ٹائم (کنکیون)',
         'America/Caracas' => 'وینزوئیلا کا وقت (کراکاس)',
         'America/Catamarca' => 'ارجنٹینا کا وقت (کیٹامارکا)',
+        'America/Argentina/Catamarca' => 'ارجنٹینا کا وقت (کیٹامارکا)',
         'America/Cayenne' => 'فرینچ گیانا کا وقت (کائین)',
         'America/Cayman' => 'ایسٹرن ٹائم (کیمین)',
         'America/Chicago' => 'سنٹرل ٹائم (شکاگو)',
         'America/Chihuahua' => 'سنٹرل ٹائم (چیہوآہوآ)',
         'America/Ciudad_Juarez' => 'ماؤنٹین ٹائم (سیوداد جیوریز)',
         'America/Coral_Harbour' => 'ایسٹرن ٹائم (اٹیکوکن)',
+        'America/Atikokan' => 'ایسٹرن ٹائم (اٹیکوکن)',
         'America/Cordoba' => 'ارجنٹینا کا وقت (کورڈوبا)',
+        'America/Argentina/Cordoba' => 'ارجنٹینا کا وقت (کورڈوبا)',
         'America/Costa_Rica' => 'سنٹرل ٹائم (کوسٹا ریکا)',
+        'America/Coyhaique' => 'چلی کا وقت (کویائیکے)',
         'America/Creston' => 'ماؤنٹین ٹائم (کریسٹون)',
         'America/Cuiaba' => 'امیزون ٹائم (کوئیابا)',
         'America/Curacao' => 'اٹلانٹک ٹائم (کیوراکاؤ)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'برازیلیا ٹائم (فورٹالیزا)',
         'America/Glace_Bay' => 'اٹلانٹک ٹائم (گلیس کی کھاڑی)',
         'America/Godthab' => 'گرین لینڈ وقت (نوک)',
+        'America/Nuuk' => 'گرین لینڈ وقت (نوک)',
         'America/Goose_Bay' => 'اٹلانٹک ٹائم (گوس کی کھاڑی)',
         'America/Grand_Turk' => 'ایسٹرن ٹائم (عظیم ترک)',
         'America/Grenada' => 'اٹلانٹک ٹائم (غرناطہ)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ایسٹرن ٹائم (ونسینیز، انڈیانا)',
         'America/Indiana/Winamac' => 'ایسٹرن ٹائم (وینامیک، انڈیانا)',
         'America/Indianapolis' => 'ایسٹرن ٹائم (انڈیاناپولس)',
+        'America/Indiana/Indianapolis' => 'ایسٹرن ٹائم (انڈیاناپولس)',
         'America/Inuvik' => 'ماؤنٹین ٹائم (انووِک)',
         'America/Iqaluit' => 'ایسٹرن ٹائم (ایکالوئٹ)',
         'America/Jamaica' => 'ایسٹرن ٹائم (جمائیکا)',
         'America/Jujuy' => 'ارجنٹینا کا وقت (جوجوئی)',
+        'America/Argentina/Jujuy' => 'ارجنٹینا کا وقت (جوجوئی)',
         'America/Juneau' => 'الاسکا ٹائم (جونیئو)',
         'America/Kentucky/Monticello' => 'ایسٹرن ٹائم (مونٹیسیلو، کینٹوکی)',
         'America/Kralendijk' => 'اٹلانٹک ٹائم (کرالینڈیجک)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'پیرو کا وقت (لیما)',
         'America/Los_Angeles' => 'پیسفک ٹائم (لاس اینجلس)',
         'America/Louisville' => 'ایسٹرن ٹائم (لوئس ویلے)',
+        'America/Kentucky/Louisville' => 'ایسٹرن ٹائم (لوئس ویلے)',
         'America/Lower_Princes' => 'اٹلانٹک ٹائم (لوور پرنسس کوارٹر)',
         'America/Maceio' => 'برازیلیا ٹائم (میسیئو)',
         'America/Managua' => 'سنٹرل ٹائم (مناگوآ)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'سنٹرل ٹائم (میٹاموروس)',
         'America/Mazatlan' => 'میکسیکن پیسفک ٹائم (میزٹلان)',
         'America/Mendoza' => 'ارجنٹینا کا وقت (مینڈوزا)',
+        'America/Argentina/Mendoza' => 'ارجنٹینا کا وقت (مینڈوزا)',
         'America/Menominee' => 'سنٹرل ٹائم (مینومینی)',
         'America/Merida' => 'سنٹرل ٹائم (میریڈا)',
         'America/Metlakatla' => 'الاسکا ٹائم (میٹلا کاٹلا)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'عرب کا وقت (عدن)',
         'Asia/Almaty' => 'قازقستان کا وقت (الماٹی)',
         'Asia/Amman' => 'مشرقی یورپ کا وقت (امّان)',
-        'Asia/Anadyr' => 'انیدر ٹائم',
+        'Asia/Anadyr' => 'پیٹروپاؤلووسک-کیمچسکی ٹائم (انیدر)',
         'Asia/Aqtau' => 'قازقستان کا وقت (اکتاؤ)',
         'Asia/Aqtobe' => 'قازقستان کا وقت (اکٹوب)',
         'Asia/Ashgabat' => 'ترکمانستان کا وقت (اشغبت)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'عرب کا وقت (بحرین)',
         'Asia/Baku' => 'آذربائیجان کا وقت (باکو)',
         'Asia/Bangkok' => 'ہند چین ٹائم (بنکاک)',
-        'Asia/Barnaul' => 'روس وقت (برنال)',
+        'Asia/Barnaul' => 'کریسنویارسک ٹائم (برنال)',
         'Asia/Beirut' => 'مشرقی یورپ کا وقت (بیروت)',
         'Asia/Bishkek' => 'کرغستان کا وقت (بشکیک)',
         'Asia/Brunei' => 'برونئی دارالسلام ٹائم',
         'Asia/Calcutta' => 'ہندوستان کا معیاری وقت (کولکاتا)',
+        'Asia/Kolkata' => 'ہندوستان کا معیاری وقت (کولکاتا)',
         'Asia/Chita' => 'یکوتسک ٹائم (چیتا)',
         'Asia/Colombo' => 'ہندوستان کا معیاری وقت (کولمبو)',
         'Asia/Damascus' => 'مشرقی یورپ کا وقت (دمشق)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'پیٹروپاؤلووسک-کیمچسکی ٹائم (کیمچٹکا)',
         'Asia/Karachi' => 'پاکستان کا وقت (کراچی)',
         'Asia/Katmandu' => 'نیپال کا وقت (کاٹھمنڈو)',
+        'Asia/Kathmandu' => 'نیپال کا وقت (کاٹھمنڈو)',
         'Asia/Khandyga' => 'یکوتسک ٹائم (خندیگا)',
         'Asia/Krasnoyarsk' => 'کریسنویارسک ٹائم',
         'Asia/Kuala_Lumpur' => 'ملیشیا ٹائم (کوالا لمپور)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'خلیج کا معیاری وقت (مسقط)',
         'Asia/Nicosia' => 'مشرقی یورپ کا وقت (نکوسیا)',
         'Asia/Novokuznetsk' => 'کریسنویارسک ٹائم (نوووکیوزنیسک)',
-        'Asia/Novosibirsk' => 'نوووسیبرسک ٹائم (نوووسِبِرسک)',
+        'Asia/Novosibirsk' => 'کریسنویارسک ٹائم (نوووسِبِرسک)',
         'Asia/Omsk' => 'اومسک ٹائم',
         'Asia/Oral' => 'قازقستان کا وقت (اورال)',
         'Asia/Phnom_Penh' => 'ہند چین ٹائم (پنوم پن)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'قازقستان کا وقت (کوستانے)',
         'Asia/Qyzylorda' => 'قازقستان کا وقت (کیزیلورڈا)',
         'Asia/Rangoon' => 'میانمار ٹائم (رنگون)',
+        'Asia/Yangon' => 'میانمار ٹائم (رنگون)',
         'Asia/Riyadh' => 'عرب کا وقت (ریاض)',
         'Asia/Saigon' => 'ہند چین ٹائم (ہو چی منہ سٹی)',
-        'Asia/Sakhalin' => 'سخالین ٹائم',
+        'Asia/Ho_Chi_Minh' => 'ہند چین ٹائم (ہو چی منہ سٹی)',
+        'Asia/Sakhalin' => 'میگیدن ٹائم (سخالین)',
         'Asia/Samarkand' => 'ازبکستان کا وقت (سمرقند)',
         'Asia/Seoul' => 'کوریا ٹائم (سیئول)',
         'Asia/Shanghai' => 'چین کا وقت (شنگھائی)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'ایران کا وقت (تہران)',
         'Asia/Thimphu' => 'بھوٹان کا وقت (تھمپو)',
         'Asia/Tokyo' => 'جاپان ٹائم (ٹوکیو)',
-        'Asia/Tomsk' => 'روس وقت (ٹامسک)',
+        'Asia/Tomsk' => 'کریسنویارسک ٹائم (ٹامسک)',
         'Asia/Ulaanbaatar' => 'یولان بیتور ٹائم (اولان باتار)',
         'Asia/Urumqi' => 'چین وقت (یورومکی)',
         'Asia/Ust-Nera' => 'ولادی ووستک ٹائم (اوست-نیرا)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'مغربی یورپ کا وقت (کینری)',
         'Atlantic/Cape_Verde' => 'کیپ ورڈی ٹائم',
         'Atlantic/Faeroe' => 'مغربی یورپ کا وقت (فارو)',
+        'Atlantic/Faroe' => 'مغربی یورپ کا وقت (فارو)',
         'Atlantic/Madeira' => 'مغربی یورپ کا وقت (مڈیئرا)',
         'Atlantic/Reykjavik' => 'گرین وچ کا اصل وقت (ریکجاوک)',
         'Atlantic/South_Georgia' => 'جنوبی جارجیا ٹائم',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'کوآرڈینیٹڈ یونیورسل ٹائم',
         'Europe/Amsterdam' => 'وسط یورپ کا وقت (ایمسٹرڈم)',
         'Europe/Andorra' => 'وسط یورپ کا وقت (انڈورا)',
-        'Europe/Astrakhan' => 'ماسکو ٹائم (استراخان)',
+        'Europe/Astrakhan' => 'سمارا ٹائم (استراخان)',
         'Europe/Athens' => 'مشرقی یورپ کا وقت (ایتھنز)',
         'Europe/Belgrade' => 'وسط یورپ کا وقت (بلغراد)',
         'Europe/Berlin' => 'وسط یورپ کا وقت (برلن)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'گرین وچ کا اصل وقت (جرسی)',
         'Europe/Kaliningrad' => 'مشرقی یورپ کا وقت (کالينينغراد)',
         'Europe/Kiev' => 'مشرقی یورپ کا وقت (کیو)',
-        'Europe/Kirov' => 'روس وقت (کیروف)',
+        'Europe/Kyiv' => 'مشرقی یورپ کا وقت (کیو)',
+        'Europe/Kirov' => 'ماسکو ٹائم (کیروف)',
         'Europe/Lisbon' => 'مغربی یورپ کا وقت (لسبن)',
         'Europe/Ljubljana' => 'وسط یورپ کا وقت (لیوبلیانا)',
         'Europe/London' => 'گرین وچ کا اصل وقت (لندن)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'سمارا ٹائم',
         'Europe/San_Marino' => 'وسط یورپ کا وقت (سان ماریانو)',
         'Europe/Sarajevo' => 'وسط یورپ کا وقت (سراجیوو)',
-        'Europe/Saratov' => 'ماسکو ٹائم (سیراٹو)',
+        'Europe/Saratov' => 'سمارا ٹائم (سیراٹو)',
         'Europe/Simferopol' => 'ماسکو ٹائم (سمفروپول)',
         'Europe/Skopje' => 'وسط یورپ کا وقت (اسکوپجے)',
         'Europe/Sofia' => 'مشرقی یورپ کا وقت (صوفیہ)',
         'Europe/Stockholm' => 'وسط یورپ کا وقت (اسٹاک ہوم)',
         'Europe/Tallinn' => 'مشرقی یورپ کا وقت (ٹالن)',
         'Europe/Tirane' => 'وسط یورپ کا وقت (ٹیرانی)',
-        'Europe/Ulyanovsk' => 'ماسکو ٹائم (الیانوسک)',
+        'Europe/Ulyanovsk' => 'سمارا ٹائم (الیانوسک)',
         'Europe/Vaduz' => 'وسط یورپ کا وقت (ویڈوز)',
         'Europe/Vatican' => 'وسط یورپ کا وقت (واٹیکن)',
         'Europe/Vienna' => 'وسط یورپ کا وقت (ویانا)',
         'Europe/Vilnius' => 'مشرقی یورپ کا وقت (وِلنیئس)',
-        'Europe/Volgograd' => 'وولگوگراد ٹائم',
+        'Europe/Volgograd' => 'ماسکو ٹائم (وولگوگراد)',
         'Europe/Warsaw' => 'وسط یورپ کا وقت (وارسا)',
         'Europe/Zagreb' => 'وسط یورپ کا وقت (زیگریب)',
         'Europe/Zurich' => 'وسط یورپ کا وقت (زیورخ)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'چیتھم ٹائم',
         'Pacific/Easter' => 'ایسٹر آئلینڈ کا وقت',
         'Pacific/Efate' => 'وانوآٹو ٹائم (ایفیٹ)',
-        'Pacific/Enderbury' => 'فینکس آئلینڈز ٹائم (اینڈربری)',
+        'Pacific/Enderbury' => 'فینکس آئلینڈز ٹائم (کانٹن)',
+        'Pacific/Kanton' => 'فینکس آئلینڈز ٹائم (کانٹن)',
         'Pacific/Fakaofo' => 'ٹوکیلاؤ ٹائم (فکاؤفو)',
         'Pacific/Fiji' => 'فجی ٹائم',
         'Pacific/Funafuti' => 'ٹوالو ٹائم (فیونافیوٹی)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'گیمبیئر ٹائم (گامبیئر)',
         'Pacific/Guadalcanal' => 'سولمن آئلینڈز ٹائم (گواڈل کینال)',
         'Pacific/Guam' => 'چامورو سٹینڈرڈ ٹائم (گوآم)',
-        'Pacific/Honolulu' => 'ہوائی الیوٹیئن ٹائم (ہونولولو)',
+        'Pacific/Honolulu' => 'ہوائی الیوٹیئن اسٹینڈرڈ ٹائم (ہونولولو)',
         'Pacific/Kiritimati' => 'لائن آئلینڈز ٹائم (کریتیماٹی)',
         'Pacific/Kosrae' => 'کوسرے ٹائم (کوسرائی)',
         'Pacific/Kwajalein' => 'مارشل آئلینڈز ٹائم (کواجیلین)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'پلاؤ ٹائم',
         'Pacific/Pitcairn' => 'پٹکائرن ٹائم',
         'Pacific/Ponape' => 'پوناپے ٹائم (پونپیئی)',
+        'Pacific/Pohnpei' => 'پوناپے ٹائم (پونپیئی)',
         'Pacific/Port_Moresby' => 'پاپوآ نیو گنی ٹائم (پورٹ موریسبی)',
         'Pacific/Rarotonga' => 'کک آئلینڈز ٹائم (راروٹونگا)',
         'Pacific/Saipan' => 'چامورو سٹینڈرڈ ٹائم (سائپین)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'جلبرٹ آئلینڈز ٹائم (ٹراوا)',
         'Pacific/Tongatapu' => 'ٹونگا ٹائم (ٹونگاٹاپو)',
         'Pacific/Truk' => 'چوک ٹائم (چیوک)',
+        'Pacific/Chuuk' => 'چوک ٹائم (چیوک)',
         'Pacific/Wake' => 'ویک آئلینڈ ٹائم',
         'Pacific/Wallis' => 'والیز اور فٹونا ٹائم (ولّیس)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uz_Cyrl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uz_Cyrl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uz_Cyrl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uz_Cyrl.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Шарқий Африка вақти (Addis-Abeba)',
         'Africa/Algiers' => 'Марказий Европа вақти (Jazoir)',
         'Africa/Asmera' => 'Шарқий Африка вақти (Asmera)',
+        'Africa/Asmara' => 'Шарқий Африка вақти (Asmera)',
         'Africa/Bamako' => 'Гринвич вақти (Bamako)',
         'Africa/Bangui' => 'Ғарбий Африка вақти (Bangi)',
         'Africa/Banjul' => 'Гринвич вақти (Banjul)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Ғарбий Африка вақти (Kinshasa)',
         'Africa/Lagos' => 'Ғарбий Африка вақти (Lagos)',
         'Africa/Libreville' => 'Ғарбий Африка вақти (Librevil)',
-        'Africa/Lome' => 'Гринвич вақти (Lome)',
+        'Africa/Lome' => 'Гринвич вақти (Lomé)',
         'Africa/Luanda' => 'Ғарбий Африка вақти (Luanda)',
         'Africa/Lubumbashi' => 'Марказий Африка вақти (Lubumbashi)',
         'Africa/Lusaka' => 'Марказий Африка вақти (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Шарқий Африка вақти (Mogadisho)',
         'Africa/Monrovia' => 'Гринвич вақти (Monroviya)',
         'Africa/Nairobi' => 'Шарқий Африка вақти (Nayrobi)',
-        'Africa/Ndjamena' => 'Ғарбий Африка вақти (Ndjamena)',
+        'Africa/Ndjamena' => 'Ғарбий Африка вақти (N’Djamena)',
         'Africa/Niamey' => 'Ғарбий Африка вақти (Niamey)',
         'Africa/Nouakchott' => 'Гринвич вақти (Nouakchott)',
         'Africa/Ouagadougou' => 'Гринвич вақти (Uagadugu)',
@@ -58,7 +59,7 @@
         'America/Anchorage' => 'Аляска вақти (Ankorij)',
         'America/Anguilla' => 'Атлантика вақти (Angilya)',
         'America/Antigua' => 'Атлантика вақти (Antigua)',
-        'America/Araguaina' => 'Бразилия вақти (Araguaina)',
+        'America/Araguaina' => 'Бразилия вақти (Araguaína)',
         'America/Argentina/La_Rioja' => 'Аргентина вақти (La-Rioxa)',
         'America/Argentina/Rio_Gallegos' => 'Аргентина вақти (Rio-Galyegos)',
         'America/Argentina/Salta' => 'Аргентина вақти (Salta)',
@@ -71,26 +72,31 @@
         'America/Bahia' => 'Бразилия вақти (Baiya)',
         'America/Bahia_Banderas' => 'Шимолий Америка (Bahiya-Banderas)',
         'America/Barbados' => 'Атлантика вақти (Barbados)',
-        'America/Belem' => 'Бразилия вақти (Belem)',
+        'America/Belem' => 'Бразилия вақти (Belém)',
         'America/Belize' => 'Шимолий Америка (Beliz)',
         'America/Blanc-Sablon' => 'Атлантика вақти (Blank-Sablon)',
         'America/Boa_Vista' => 'Амазонка вақти (Boa-Vista)',
-        'America/Bogota' => 'Колумбия вақти (Bogota)',
+        'America/Bogota' => 'Колумбия вақти (Bogotá)',
         'America/Boise' => 'Шимолий Америка тоғ вақти (Boyse)',
         'America/Buenos_Aires' => 'Аргентина вақти (Buenos-Ayres)',
+        'America/Argentina/Buenos_Aires' => 'Аргентина вақти (Buenos-Ayres)',
         'America/Cambridge_Bay' => 'Шимолий Америка тоғ вақти (Kembrij-Bey)',
         'America/Campo_Grande' => 'Амазонка вақти (Kampu-Grandi)',
         'America/Cancun' => 'Шимолий Америка шарқий вақти (Kankun)',
         'America/Caracas' => 'Венесуэла вақти (Karakas)',
         'America/Catamarca' => 'Аргентина вақти (Katamarka)',
+        'America/Argentina/Catamarca' => 'Аргентина вақти (Katamarka)',
         'America/Cayenne' => 'Француз Гвианаси вақти (Kayenna)',
         'America/Cayman' => 'Шимолий Америка шарқий вақти (Kayman orollari)',
         'America/Chicago' => 'Шимолий Америка (Chikago)',
         'America/Chihuahua' => 'Шимолий Америка (Chihuahua)',
         'America/Ciudad_Juarez' => 'Шимолий Америка тоғ вақти (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Шимолий Америка шарқий вақти (Koral-Xarbor)',
+        'America/Atikokan' => 'Шимолий Америка шарқий вақти (Koral-Xarbor)',
         'America/Cordoba' => 'Аргентина вақти (Kordoba)',
+        'America/Argentina/Cordoba' => 'Аргентина вақти (Kordoba)',
         'America/Costa_Rica' => 'Шимолий Америка (Kosta-Rika)',
+        'America/Coyhaique' => 'Чили вақти (Coyhaique)',
         'America/Creston' => 'Шимолий Америка тоғ вақти (Kreston)',
         'America/Cuiaba' => 'Амазонка вақти (Kuyaba)',
         'America/Curacao' => 'Атлантика вақти (Kyurasao)',
@@ -106,6 +112,7 @@
         'America/Fortaleza' => 'Бразилия вақти (Fortaleza)',
         'America/Glace_Bay' => 'Атлантика вақти (Gleys-Bey)',
         'America/Godthab' => 'Гренландия вақти (Gotxob)',
+        'America/Nuuk' => 'Гренландия вақти (Gotxob)',
         'America/Goose_Bay' => 'Атлантика вақти (Gus-Bey)',
         'America/Grand_Turk' => 'Шимолий Америка шарқий вақти (Grand Turk)',
         'America/Grenada' => 'Атлантика вақти (Grenada)',
@@ -123,10 +130,12 @@
         'America/Indiana/Vincennes' => 'Шимолий Америка шарқий вақти (Vinsens, Indiana)',
         'America/Indiana/Winamac' => 'Шимолий Америка шарқий вақти (Vinamak, Indiana)',
         'America/Indianapolis' => 'Шимолий Америка шарқий вақти (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Шимолий Америка шарқий вақти (Indianapolis)',
         'America/Inuvik' => 'Шимолий Америка тоғ вақти (Inuvik)',
         'America/Iqaluit' => 'Шимолий Америка шарқий вақти (Ikaluit)',
         'America/Jamaica' => 'Шимолий Америка шарқий вақти (Yamayka)',
         'America/Jujuy' => 'Аргентина вақти (Jujuy)',
+        'America/Argentina/Jujuy' => 'Аргентина вақти (Jujuy)',
         'America/Juneau' => 'Аляска вақти (Juno)',
         'America/Kentucky/Monticello' => 'Шимолий Америка шарқий вақти (Montisello, Kentukki)',
         'America/Kralendijk' => 'Атлантика вақти (Kralendeyk)',
@@ -134,6 +143,7 @@
         'America/Lima' => 'Перу вақти (Lima)',
         'America/Los_Angeles' => 'Шимолий Америка тинч океани вақти (Los-Anjeles)',
         'America/Louisville' => 'Шимолий Америка шарқий вақти (Luisvill)',
+        'America/Kentucky/Louisville' => 'Шимолий Америка шарқий вақти (Luisvill)',
         'America/Lower_Princes' => 'Атлантика вақти (Lower Princeʼs Quarter)',
         'America/Maceio' => 'Бразилия вақти (Maseyo)',
         'America/Managua' => 'Шимолий Америка (Managua)',
@@ -142,6 +152,7 @@
         'America/Martinique' => 'Атлантика вақти (Martinika)',
         'America/Matamoros' => 'Шимолий Америка (Matamoros)',
         'America/Mendoza' => 'Аргентина вақти (Mendoza)',
+        'America/Argentina/Mendoza' => 'Аргентина вақти (Mendoza)',
         'America/Menominee' => 'Шимолий Америка (Menomini)',
         'America/Merida' => 'Шимолий Америка (Merida)',
         'America/Metlakatla' => 'Аляска вақти (Metlakatla)',
@@ -172,7 +183,7 @@
         'America/Regina' => 'Шимолий Америка (Rejayna)',
         'America/Resolute' => 'Шимолий Америка (Rezolyut)',
         'America/Rio_Branco' => 'Бразилия вақти (Riu-Branku)',
-        'America/Santarem' => 'Бразилия вақти (Santarem)',
+        'America/Santarem' => 'Бразилия вақти (Santarém)',
         'America/Santiago' => 'Чили вақти (Santyago)',
         'America/Santo_Domingo' => 'Атлантика вақти (Santo-Domingo)',
         'America/Sao_Paulo' => 'Бразилия вақти (San-Paulu)',
@@ -213,11 +224,12 @@
         'Asia/Bahrain' => 'Арабистон вақти (Bahrayn)',
         'Asia/Baku' => 'Озарбайжон вақти (Boku)',
         'Asia/Bangkok' => 'Ҳинд-Хитой вақти (Bangkok)',
-        'Asia/Barnaul' => 'Россия вақти (Barnaul)',
+        'Asia/Barnaul' => 'Красноярск вақти (Barnaul)',
         'Asia/Beirut' => 'Шарқий Европа вақти (Bayrut)',
         'Asia/Bishkek' => 'Қирғизистон вақти (Bishkek)',
         'Asia/Brunei' => 'Бруней Даруссалом вақти (Bruney)',
         'Asia/Calcutta' => 'Ҳиндистон вақти (Kalkutta)',
+        'Asia/Kolkata' => 'Ҳиндистон вақти (Kalkutta)',
         'Asia/Chita' => 'Якутск вақти (Chita)',
         'Asia/Colombo' => 'Ҳиндистон вақти (Kolombo)',
         'Asia/Damascus' => 'Шарқий Европа вақти (Damashq)',
@@ -238,6 +250,7 @@
         'Asia/Kamchatka' => 'Россия вақти (Kamchatka)',
         'Asia/Karachi' => 'Покистон вақти (Karachi)',
         'Asia/Katmandu' => 'Непал вақти (Katmandu)',
+        'Asia/Kathmandu' => 'Непал вақти (Katmandu)',
         'Asia/Khandyga' => 'Якутск вақти (Xandiga)',
         'Asia/Krasnoyarsk' => 'Красноярск вақти (Krasnoyarsk)',
         'Asia/Kuala_Lumpur' => 'Малайзия вақти (Kuala-Lumpur)',
@@ -250,16 +263,18 @@
         'Asia/Muscat' => 'Кўрфаз вақти (Maskat)',
         'Asia/Nicosia' => 'Шарқий Европа вақти (Nikosiya)',
         'Asia/Novokuznetsk' => 'Красноярск вақти (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Новосибирск вақти (Novosibirsk)',
+        'Asia/Novosibirsk' => 'Красноярск вақти (Novosibirsk)',
         'Asia/Omsk' => 'Омск вақти (Omsk)',
         'Asia/Phnom_Penh' => 'Ҳинд-Хитой вақти (Pnompen)',
         'Asia/Pontianak' => 'Ғарбий Индонезия вақти (Pontianak)',
         'Asia/Pyongyang' => 'Корея вақти (Pxenyan)',
         'Asia/Qatar' => 'Арабистон вақти (Qatar)',
         'Asia/Rangoon' => 'Мьянма вақти (Rangun)',
+        'Asia/Yangon' => 'Мьянма вақти (Rangun)',
         'Asia/Riyadh' => 'Арабистон вақти (Ar-Riyod)',
         'Asia/Saigon' => 'Ҳинд-Хитой вақти (Xoshimin)',
-        'Asia/Sakhalin' => 'Сахалин вақти (Saxalin)',
+        'Asia/Ho_Chi_Minh' => 'Ҳинд-Хитой вақти (Xoshimin)',
+        'Asia/Sakhalin' => 'Магадан вақти (Saxalin)',
         'Asia/Samarkand' => 'Ўзбекистон вақти (Samarqand)',
         'Asia/Seoul' => 'Корея вақти (Seul)',
         'Asia/Shanghai' => 'Хитой вақти (Shanxay)',
@@ -271,7 +286,7 @@
         'Asia/Tehran' => 'Эрон вақти (Tehron)',
         'Asia/Thimphu' => 'Бутан вақти (Thimphu)',
         'Asia/Tokyo' => 'Япония вақти (Tokio)',
-        'Asia/Tomsk' => 'Россия вақти (Tomsk)',
+        'Asia/Tomsk' => 'Красноярск вақти (Tomsk)',
         'Asia/Ulaanbaatar' => 'Улан-Батор вақти (Ulan-Bator)',
         'Asia/Urumqi' => 'Хитой вақти (Urumchi)',
         'Asia/Ust-Nera' => 'Владивосток вақти (Ust-Nera)',
@@ -285,6 +300,7 @@
         'Atlantic/Canary' => 'Ғарбий Европа вақти (Kanar orollari)',
         'Atlantic/Cape_Verde' => 'Кабо-Верде вақти (Kabo-Verde)',
         'Atlantic/Faeroe' => 'Ғарбий Европа вақти (Farer orollari)',
+        'Atlantic/Faroe' => 'Ғарбий Европа вақти (Farer orollari)',
         'Atlantic/Madeira' => 'Ғарбий Европа вақти (Madeyra oroli)',
         'Atlantic/Reykjavik' => 'Гринвич вақти (Reykyavik)',
         'Atlantic/South_Georgia' => 'Жанубий Джорджия вақти (Janubiy Georgiya)',
@@ -304,7 +320,7 @@
         'Etc/GMT' => 'Гринвич вақти',
         'Europe/Amsterdam' => 'Марказий Европа вақти (Amsterdam)',
         'Europe/Andorra' => 'Марказий Европа вақти (Andorra)',
-        'Europe/Astrakhan' => 'Москва вақти (Astraxan)',
+        'Europe/Astrakhan' => 'Россия вақти (Astraxan)',
         'Europe/Athens' => 'Шарқий Европа вақти (Afina)',
         'Europe/Belgrade' => 'Марказий Европа вақти (Belgrad)',
         'Europe/Berlin' => 'Марказий Европа вақти (Berlin)',
@@ -324,7 +340,8 @@
         'Europe/Jersey' => 'Гринвич вақти (Jersi)',
         'Europe/Kaliningrad' => 'Шарқий Европа вақти (Kaliningrad)',
         'Europe/Kiev' => 'Шарқий Европа вақти (Kiyev)',
-        'Europe/Kirov' => 'Россия вақти (Kirov)',
+        'Europe/Kyiv' => 'Шарқий Европа вақти (Kiyev)',
+        'Europe/Kirov' => 'Москва вақти (Kirov)',
         'Europe/Lisbon' => 'Ғарбий Европа вақти (Lissabon)',
         'Europe/Ljubljana' => 'Марказий Европа вақти (Lyublyana)',
         'Europe/London' => 'Гринвич вақти (London)',
@@ -344,19 +361,19 @@
         'Europe/Samara' => 'Россия вақти (Samara)',
         'Europe/San_Marino' => 'Марказий Европа вақти (San-Marino)',
         'Europe/Sarajevo' => 'Марказий Европа вақти (Sarayevo)',
-        'Europe/Saratov' => 'Москва вақти (Saratov)',
+        'Europe/Saratov' => 'Россия вақти (Saratov)',
         'Europe/Simferopol' => 'Москва вақти (Simferopol)',
         'Europe/Skopje' => 'Марказий Европа вақти (Skopye)',
         'Europe/Sofia' => 'Шарқий Европа вақти (Sofiya)',
         'Europe/Stockholm' => 'Марказий Европа вақти (Stokgolm)',
         'Europe/Tallinn' => 'Шарқий Европа вақти (Tallin)',
         'Europe/Tirane' => 'Марказий Европа вақти (Tirana)',
-        'Europe/Ulyanovsk' => 'Москва вақти (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Россия вақти (Ulyanovsk)',
         'Europe/Vaduz' => 'Марказий Европа вақти (Vaduts)',
         'Europe/Vatican' => 'Марказий Европа вақти (Vatikan)',
         'Europe/Vienna' => 'Марказий Европа вақти (Vena)',
         'Europe/Vilnius' => 'Шарқий Европа вақти (Vilnyus)',
-        'Europe/Volgograd' => 'Волгоград вақти (Volgograd)',
+        'Europe/Volgograd' => 'Москва вақти (Volgograd)',
         'Europe/Warsaw' => 'Марказий Европа вақти (Varshava)',
         'Europe/Zagreb' => 'Марказий Европа вақти (Zagreb)',
         'Europe/Zurich' => 'Марказий Европа вақти (Syurix)',
@@ -376,15 +393,16 @@
         'Pacific/Chatham' => 'Чатхам вақти (Chatem oroli)',
         'Pacific/Easter' => 'Пасхи Ороли вақти (Pasxa oroli)',
         'Pacific/Efate' => 'Вануату вақти (Efate)',
-        'Pacific/Enderbury' => 'Феникс ороллари вақти (Enderberi oroli)',
+        'Pacific/Enderbury' => 'Феникс ороллари вақти (Canton)',
+        'Pacific/Kanton' => 'Феникс ороллари вақти (Canton)',
         'Pacific/Fakaofo' => 'Токелау вақти (Fakaofo)',
         'Pacific/Fiji' => 'Фижи вақти (Fiji)',
         'Pacific/Funafuti' => 'Тувалу вақти (Funafuti)',
-        'Pacific/Galapagos' => 'Галапагос вақти (Galapagos)',
+        'Pacific/Galapagos' => 'Галапагос вақти (Galápagos)',
         'Pacific/Gambier' => 'Гамбиер вақти (Gambye oroli)',
         'Pacific/Guadalcanal' => 'Соломон ороллари вақти (Gvadalkanal)',
         'Pacific/Guam' => 'Каморро вақти (Guam)',
-        'Pacific/Honolulu' => 'Гавайи-алеут вақти (Gonolulu)',
+        'Pacific/Honolulu' => 'Гавайи-алеут стандарт вақти (Gonolulu)',
         'Pacific/Kiritimati' => 'Лайн ороллари вақти (Kiritimati)',
         'Pacific/Kosrae' => 'Косрае вақти (Kosrae)',
         'Pacific/Kwajalein' => 'Маршалл ороллари вақти (Kvajaleyn)',
@@ -399,6 +417,7 @@
         'Pacific/Palau' => 'Палау вақти (Palau)',
         'Pacific/Pitcairn' => 'Питкерн вақти (Pitkern)',
         'Pacific/Ponape' => 'Понапе вақти (Ponpei oroli)',
+        'Pacific/Pohnpei' => 'Понапе вақти (Ponpei oroli)',
         'Pacific/Port_Moresby' => 'Папуа-Янги Гвинея вақти (Port-Morsbi)',
         'Pacific/Rarotonga' => 'Кук ороллари вақти (Rarotonga)',
         'Pacific/Saipan' => 'Каморро вақти (Saypan)',
@@ -406,6 +425,7 @@
         'Pacific/Tarawa' => 'Гилберт ороллари вақти (Tarava)',
         'Pacific/Tongatapu' => 'Тонга вақти (Tongatapu)',
         'Pacific/Truk' => 'Чуук вақти (Truk orollari)',
+        'Pacific/Chuuk' => 'Чуук вақти (Truk orollari)',
         'Pacific/Wake' => 'Уэйк ороли вақти (Ueyk oroli)',
         'Pacific/Wallis' => 'Уэллис ва Футуна вақти (Uollis)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uz.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uz.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uz.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/uz.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Sharqiy Afrika vaqti (Addis-Abeba)',
         'Africa/Algiers' => 'Markaziy Yevropa vaqti (Jazoir)',
         'Africa/Asmera' => 'Sharqiy Afrika vaqti (Asmera)',
+        'Africa/Asmara' => 'Sharqiy Afrika vaqti (Asmera)',
         'Africa/Bamako' => 'Grinvich o‘rtacha vaqti (Bamako)',
         'Africa/Bangui' => 'Gʻarbiy Afrika vaqti (Bangi)',
         'Africa/Banjul' => 'Grinvich o‘rtacha vaqti (Banjul)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Gʻarbiy Afrika vaqti (Kinshasa)',
         'Africa/Lagos' => 'Gʻarbiy Afrika vaqti (Lagos)',
         'Africa/Libreville' => 'Gʻarbiy Afrika vaqti (Librevil)',
-        'Africa/Lome' => 'Grinvich o‘rtacha vaqti (Lome)',
+        'Africa/Lome' => 'Grinvich o‘rtacha vaqti (Lomé)',
         'Africa/Luanda' => 'Gʻarbiy Afrika vaqti (Luanda)',
         'Africa/Lubumbashi' => 'Markaziy Afrika vaqti (Lubumbashi)',
         'Africa/Lusaka' => 'Markaziy Afrika vaqti (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Sharqiy Afrika vaqti (Mogadisho)',
         'Africa/Monrovia' => 'Grinvich o‘rtacha vaqti (Monroviya)',
         'Africa/Nairobi' => 'Sharqiy Afrika vaqti (Nayrobi)',
-        'Africa/Ndjamena' => 'Gʻarbiy Afrika vaqti (Ndjamena)',
+        'Africa/Ndjamena' => 'Gʻarbiy Afrika vaqti (N’Djamena)',
         'Africa/Niamey' => 'Gʻarbiy Afrika vaqti (Niamey)',
         'Africa/Nouakchott' => 'Grinvich o‘rtacha vaqti (Nouakchott)',
         'Africa/Ouagadougou' => 'Grinvich o‘rtacha vaqti (Uagadugu)',
@@ -58,7 +59,7 @@
         'America/Anchorage' => 'Alyaska vaqti (Ankorij)',
         'America/Anguilla' => 'Atlantika vaqti (Angilya)',
         'America/Antigua' => 'Atlantika vaqti (Antigua)',
-        'America/Araguaina' => 'Braziliya vaqti (Araguaina)',
+        'America/Araguaina' => 'Braziliya vaqti (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentina vaqti (La-Rioxa)',
         'America/Argentina/Rio_Gallegos' => 'Argentina vaqti (Rio-Galyegos)',
         'America/Argentina/Salta' => 'Argentina vaqti (Salta)',
@@ -71,26 +72,31 @@
         'America/Bahia' => 'Braziliya vaqti (Baiya)',
         'America/Bahia_Banderas' => 'Markaziy Amerika vaqti (Bahiya-Banderas)',
         'America/Barbados' => 'Atlantika vaqti (Barbados)',
-        'America/Belem' => 'Braziliya vaqti (Belem)',
+        'America/Belem' => 'Braziliya vaqti (Belém)',
         'America/Belize' => 'Markaziy Amerika vaqti (Beliz)',
         'America/Blanc-Sablon' => 'Atlantika vaqti (Blank-Sablon)',
         'America/Boa_Vista' => 'Amazonka vaqti (Boa-Vista)',
-        'America/Bogota' => 'Kolumbiya vaqti (Bogota)',
+        'America/Bogota' => 'Kolumbiya vaqti (Bogotá)',
         'America/Boise' => 'Tog‘ vaqti (AQSH) (Boyse)',
         'America/Buenos_Aires' => 'Argentina vaqti (Buenos-Ayres)',
+        'America/Argentina/Buenos_Aires' => 'Argentina vaqti (Buenos-Ayres)',
         'America/Cambridge_Bay' => 'Tog‘ vaqti (AQSH) (Kembrij-Bey)',
         'America/Campo_Grande' => 'Amazonka vaqti (Kampu-Grandi)',
         'America/Cancun' => 'Sharqiy Amerika vaqti (Kankun)',
         'America/Caracas' => 'Venesuela vaqti (Karakas)',
         'America/Catamarca' => 'Argentina vaqti (Katamarka)',
+        'America/Argentina/Catamarca' => 'Argentina vaqti (Katamarka)',
         'America/Cayenne' => 'Fransuz Gvianasi vaqti (Kayenna)',
         'America/Cayman' => 'Sharqiy Amerika vaqti (Kayman orollari)',
         'America/Chicago' => 'Markaziy Amerika vaqti (Chikago)',
         'America/Chihuahua' => 'Markaziy Amerika vaqti (Chihuahua)',
         'America/Ciudad_Juarez' => 'Tog‘ vaqti (AQSH) (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Sharqiy Amerika vaqti (Koral-Xarbor)',
+        'America/Atikokan' => 'Sharqiy Amerika vaqti (Koral-Xarbor)',
         'America/Cordoba' => 'Argentina vaqti (Kordoba)',
+        'America/Argentina/Cordoba' => 'Argentina vaqti (Kordoba)',
         'America/Costa_Rica' => 'Markaziy Amerika vaqti (Kosta-Rika)',
+        'America/Coyhaique' => 'Chili vaqti (Coyhaique)',
         'America/Creston' => 'Tog‘ vaqti (AQSH) (Kreston)',
         'America/Cuiaba' => 'Amazonka vaqti (Kuyaba)',
         'America/Curacao' => 'Atlantika vaqti (Kyurasao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Braziliya vaqti (Fortaleza)',
         'America/Glace_Bay' => 'Atlantika vaqti (Gleys-Bey)',
         'America/Godthab' => 'Grenlandiya (Gotxob)',
+        'America/Nuuk' => 'Grenlandiya (Gotxob)',
         'America/Goose_Bay' => 'Atlantika vaqti (Gus-Bey)',
         'America/Grand_Turk' => 'Sharqiy Amerika vaqti (Grand Turk)',
         'America/Grenada' => 'Atlantika vaqti (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Sharqiy Amerika vaqti (Vinsens, Indiana)',
         'America/Indiana/Winamac' => 'Sharqiy Amerika vaqti (Vinamak, Indiana)',
         'America/Indianapolis' => 'Sharqiy Amerika vaqti (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Sharqiy Amerika vaqti (Indianapolis)',
         'America/Inuvik' => 'Tog‘ vaqti (AQSH) (Inuvik)',
         'America/Iqaluit' => 'Sharqiy Amerika vaqti (Ikaluit)',
         'America/Jamaica' => 'Sharqiy Amerika vaqti (Yamayka)',
         'America/Jujuy' => 'Argentina vaqti (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentina vaqti (Jujuy)',
         'America/Juneau' => 'Alyaska vaqti (Juno)',
         'America/Kentucky/Monticello' => 'Sharqiy Amerika vaqti (Montisello, Kentukki)',
         'America/Kralendijk' => 'Atlantika vaqti (Kralendeyk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Peru vaqti (Lima)',
         'America/Los_Angeles' => 'Tinch okeani vaqti (Los-Anjeles)',
         'America/Louisville' => 'Sharqiy Amerika vaqti (Luisvill)',
+        'America/Kentucky/Louisville' => 'Sharqiy Amerika vaqti (Luisvill)',
         'America/Lower_Princes' => 'Atlantika vaqti (Louer-Prinses-Kuorter)',
         'America/Maceio' => 'Braziliya vaqti (Maseyo)',
         'America/Managua' => 'Markaziy Amerika vaqti (Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Markaziy Amerika vaqti (Matamoros)',
         'America/Mazatlan' => 'Meksika Tinch okeani vaqti (Masatlan)',
         'America/Mendoza' => 'Argentina vaqti (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentina vaqti (Mendoza)',
         'America/Menominee' => 'Markaziy Amerika vaqti (Menomini)',
         'America/Merida' => 'Markaziy Amerika vaqti (Merida)',
         'America/Metlakatla' => 'Alyaska vaqti (Metlakatla)',
@@ -175,7 +186,7 @@
         'America/Regina' => 'Markaziy Amerika vaqti (Rejayna)',
         'America/Resolute' => 'Markaziy Amerika vaqti (Rezolyut)',
         'America/Rio_Branco' => 'Braziliya (Riu-Branku)',
-        'America/Santarem' => 'Braziliya vaqti (Santarem)',
+        'America/Santarem' => 'Braziliya vaqti (Santarém)',
         'America/Santiago' => 'Chili vaqti (Santyago)',
         'America/Santo_Domingo' => 'Atlantika vaqti (Santo-Domingo)',
         'America/Sao_Paulo' => 'Braziliya vaqti (San-Paulu)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Saudiya Arabistoni vaqti (Bahrayn)',
         'Asia/Baku' => 'Ozarbayjon vaqti (Boku)',
         'Asia/Bangkok' => 'Hindixitoy vaqti (Bangkok)',
-        'Asia/Barnaul' => 'Rossiya (Barnaul)',
+        'Asia/Barnaul' => 'Krasnoyarsk vaqti (Barnaul)',
         'Asia/Beirut' => 'Sharqiy Yevropa vaqti (Bayrut)',
         'Asia/Bishkek' => 'Qirgʻiziston vaqti (Bishkek)',
         'Asia/Brunei' => 'Bruney-Dorussalom vaqti',
         'Asia/Calcutta' => 'Hindiston standart vaqti (Kalkutta)',
+        'Asia/Kolkata' => 'Hindiston standart vaqti (Kalkutta)',
         'Asia/Chita' => 'Yakutsk vaqti (Chita)',
         'Asia/Colombo' => 'Hindiston standart vaqti (Kolombo)',
         'Asia/Damascus' => 'Sharqiy Yevropa vaqti (Damashq)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Rossiya (Kamchatka)',
         'Asia/Karachi' => 'Pokiston vaqti (Karachi)',
         'Asia/Katmandu' => 'Nepal vaqti (Katmandu)',
+        'Asia/Kathmandu' => 'Nepal vaqti (Katmandu)',
         'Asia/Khandyga' => 'Yakutsk vaqti (Xandiga)',
         'Asia/Krasnoyarsk' => 'Krasnoyarsk vaqti',
         'Asia/Kuala_Lumpur' => 'Malayziya vaqti (Kuala-Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Fors ko‘rfazi standart vaqti (Maskat)',
         'Asia/Nicosia' => 'Sharqiy Yevropa vaqti (Nikosiya)',
         'Asia/Novokuznetsk' => 'Krasnoyarsk vaqti (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk vaqti',
+        'Asia/Novosibirsk' => 'Krasnoyarsk vaqti (Novosibirsk)',
         'Asia/Omsk' => 'Omsk vaqti',
         'Asia/Oral' => 'Qozogʻiston vaqti (Uralsk)',
         'Asia/Phnom_Penh' => 'Hindixitoy vaqti (Pnompen)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Qozogʻiston vaqti (Qoʻstanay)',
         'Asia/Qyzylorda' => 'Qozogʻiston vaqti (Qizilo‘rda)',
         'Asia/Rangoon' => 'Myanma vaqti (Rangun)',
+        'Asia/Yangon' => 'Myanma vaqti (Rangun)',
         'Asia/Riyadh' => 'Saudiya Arabistoni vaqti (Ar-Riyod)',
         'Asia/Saigon' => 'Hindixitoy vaqti (Xoshimin)',
-        'Asia/Sakhalin' => 'Saxalin vaqti',
+        'Asia/Ho_Chi_Minh' => 'Hindixitoy vaqti (Xoshimin)',
+        'Asia/Sakhalin' => 'Magadan vaqti (Saxalin)',
         'Asia/Samarkand' => 'O‘zbekiston vaqti (Samarqand)',
         'Asia/Seoul' => 'Koreya vaqti (Seul)',
         'Asia/Shanghai' => 'Xitoy vaqti (Shanxay)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Eron vaqti (Tehron)',
         'Asia/Thimphu' => 'Butan vaqti (Thimphu)',
         'Asia/Tokyo' => 'Yaponiya vaqti (Tokio)',
-        'Asia/Tomsk' => 'Rossiya (Tomsk)',
+        'Asia/Tomsk' => 'Krasnoyarsk vaqti (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulan-Bator vaqti',
         'Asia/Urumqi' => 'Xitoy (Urumchi)',
         'Asia/Ust-Nera' => 'Vladivostok vaqti (Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'G‘arbiy Yevropa vaqti (Kanar orollari)',
         'Atlantic/Cape_Verde' => 'Kabo-Verde vaqti',
         'Atlantic/Faeroe' => 'G‘arbiy Yevropa vaqti (Farer orollari)',
+        'Atlantic/Faroe' => 'G‘arbiy Yevropa vaqti (Farer orollari)',
         'Atlantic/Madeira' => 'G‘arbiy Yevropa vaqti (Madeyra oroli)',
         'Atlantic/Reykjavik' => 'Grinvich o‘rtacha vaqti (Reykyavik)',
         'Atlantic/South_Georgia' => 'Janubiy Georgiya vaqti',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Koordinatali universal vaqt',
         'Europe/Amsterdam' => 'Markaziy Yevropa vaqti (Amsterdam)',
         'Europe/Andorra' => 'Markaziy Yevropa vaqti (Andorra)',
-        'Europe/Astrakhan' => 'Moskva vaqti (Astraxan)',
+        'Europe/Astrakhan' => 'Rossiya (Astraxan)',
         'Europe/Athens' => 'Sharqiy Yevropa vaqti (Afina)',
         'Europe/Belgrade' => 'Markaziy Yevropa vaqti (Belgrad)',
         'Europe/Berlin' => 'Markaziy Yevropa vaqti (Berlin)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Grinvich o‘rtacha vaqti (Jersi)',
         'Europe/Kaliningrad' => 'Sharqiy Yevropa vaqti (Kaliningrad)',
         'Europe/Kiev' => 'Sharqiy Yevropa vaqti (Kiyev)',
-        'Europe/Kirov' => 'Rossiya (Kirov)',
+        'Europe/Kyiv' => 'Sharqiy Yevropa vaqti (Kiyev)',
+        'Europe/Kirov' => 'Moskva vaqti (Kirov)',
         'Europe/Lisbon' => 'G‘arbiy Yevropa vaqti (Lissabon)',
         'Europe/Ljubljana' => 'Markaziy Yevropa vaqti (Lyublyana)',
         'Europe/London' => 'Grinvich o‘rtacha vaqti (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Rossiya (Samara)',
         'Europe/San_Marino' => 'Markaziy Yevropa vaqti (San-Marino)',
         'Europe/Sarajevo' => 'Markaziy Yevropa vaqti (Sarayevo)',
-        'Europe/Saratov' => 'Moskva vaqti (Saratov)',
+        'Europe/Saratov' => 'Rossiya (Saratov)',
         'Europe/Simferopol' => 'Moskva vaqti (Simferopol)',
         'Europe/Skopje' => 'Markaziy Yevropa vaqti (Skopye)',
         'Europe/Sofia' => 'Sharqiy Yevropa vaqti (Sofiya)',
         'Europe/Stockholm' => 'Markaziy Yevropa vaqti (Stokgolm)',
         'Europe/Tallinn' => 'Sharqiy Yevropa vaqti (Tallin)',
         'Europe/Tirane' => 'Markaziy Yevropa vaqti (Tirana)',
-        'Europe/Ulyanovsk' => 'Moskva vaqti (Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'Rossiya (Ulyanovsk)',
         'Europe/Vaduz' => 'Markaziy Yevropa vaqti (Vaduts)',
         'Europe/Vatican' => 'Markaziy Yevropa vaqti (Vatikan)',
         'Europe/Vienna' => 'Markaziy Yevropa vaqti (Vena)',
         'Europe/Vilnius' => 'Sharqiy Yevropa vaqti (Vilnyus)',
-        'Europe/Volgograd' => 'Volgograd vaqti',
+        'Europe/Volgograd' => 'Moskva vaqti (Volgograd)',
         'Europe/Warsaw' => 'Markaziy Yevropa vaqti (Varshava)',
         'Europe/Zagreb' => 'Markaziy Yevropa vaqti (Zagreb)',
         'Europe/Zurich' => 'Markaziy Yevropa vaqti (Syurix)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Chatem vaqti (Chatem oroli)',
         'Pacific/Easter' => 'Pasxa oroli vaqti',
         'Pacific/Efate' => 'Vanuatu vaqti (Efate)',
-        'Pacific/Enderbury' => 'Feniks orollari vaqti (Enderberi oroli)',
+        'Pacific/Enderbury' => 'Feniks orollari vaqti (Canton)',
+        'Pacific/Kanton' => 'Feniks orollari vaqti (Canton)',
         'Pacific/Fakaofo' => 'Tokelau vaqti (Fakaofo)',
         'Pacific/Fiji' => 'Fiji vaqti',
         'Pacific/Funafuti' => 'Tuvalu vaqti (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos vaqti',
+        'Pacific/Galapagos' => 'Galapagos vaqti (Galápagos)',
         'Pacific/Gambier' => 'Gambye vaqti (Gambye oroli)',
         'Pacific/Guadalcanal' => 'Solomon orollari vaqti (Gvadalkanal)',
         'Pacific/Guam' => 'Chamorro standart vaqti (Guam)',
-        'Pacific/Honolulu' => 'Gavayi-aleut vaqti (Gonolulu)',
+        'Pacific/Honolulu' => 'Gavayi-aleut standart vaqti (Gonolulu)',
         'Pacific/Kiritimati' => 'Layn orollari vaqti (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae vaqti',
         'Pacific/Kwajalein' => 'Marshall orollari vaqti (Kvajaleyn)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Palau vaqti',
         'Pacific/Pitcairn' => 'Pitkern vaqti',
         'Pacific/Ponape' => 'Ponape vaqti (Ponpei oroli)',
+        'Pacific/Pohnpei' => 'Ponape vaqti (Ponpei oroli)',
         'Pacific/Port_Moresby' => 'Papua-Yangi Gvineya vaqti (Port-Morsbi)',
         'Pacific/Rarotonga' => 'Kuk orollari vaqti (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro standart vaqti (Saypan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Gilbert orollari vaqti (Tarava)',
         'Pacific/Tongatapu' => 'Tonga vaqti (Tongatapu)',
         'Pacific/Truk' => 'Chuuk vaqti (Truk orollari)',
+        'Pacific/Chuuk' => 'Chuuk vaqti (Truk orollari)',
         'Pacific/Wake' => 'Ueyk oroli vaqti',
         'Pacific/Wallis' => 'Uollis va Futuna vaqti',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/vi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/vi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/vi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/vi.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Giờ Đông Phi (Addis Ababa)',
         'Africa/Algiers' => 'Giờ Trung Âu (Algiers)',
         'Africa/Asmera' => 'Giờ Đông Phi (Asmara)',
+        'Africa/Asmara' => 'Giờ Đông Phi (Asmara)',
         'Africa/Bamako' => 'Giờ Trung bình Greenwich (Bamako)',
         'Africa/Bangui' => 'Giờ Tây Phi (Bangui)',
         'Africa/Banjul' => 'Giờ Trung bình Greenwich (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Giờ Đông Phi (Dar es Salaam)',
         'Africa/Djibouti' => 'Giờ Đông Phi (Djibouti)',
         'Africa/Douala' => 'Giờ Tây Phi (Douala)',
-        'Africa/El_Aaiun' => 'Giờ Tây Âu (El Aaiun)',
+        'Africa/El_Aaiun' => 'Giờ Tây Âu (El Aaiún)',
         'Africa/Freetown' => 'Giờ Trung bình Greenwich (Freetown)',
         'Africa/Gaborone' => 'Giờ Trung Phi (Gaborone)',
         'Africa/Harare' => 'Giờ Trung Phi (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Giờ Tây Phi (Kinshasa)',
         'Africa/Lagos' => 'Giờ Tây Phi (Lagos)',
         'Africa/Libreville' => 'Giờ Tây Phi (Libreville)',
-        'Africa/Lome' => 'Giờ Trung bình Greenwich (Lome)',
+        'Africa/Lome' => 'Giờ Trung bình Greenwich (Lomé)',
         'Africa/Luanda' => 'Giờ Tây Phi (Luanda)',
         'Africa/Lubumbashi' => 'Giờ Trung Phi (Lubumbashi)',
         'Africa/Lusaka' => 'Giờ Trung Phi (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Giờ Đông Phi (Mogadishu)',
         'Africa/Monrovia' => 'Giờ Trung bình Greenwich (Monrovia)',
         'Africa/Nairobi' => 'Giờ Đông Phi (Nairobi)',
-        'Africa/Ndjamena' => 'Giờ Tây Phi (Ndjamena)',
+        'Africa/Ndjamena' => 'Giờ Tây Phi (N’Djamena)',
         'Africa/Niamey' => 'Giờ Tây Phi (Niamey)',
         'Africa/Nouakchott' => 'Giờ Trung bình Greenwich (Nouakchott)',
         'Africa/Ouagadougou' => 'Giờ Trung bình Greenwich (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Giờ Alaska (Anchorage)',
         'America/Anguilla' => 'Giờ Đại Tây Dương (Anguilla)',
         'America/Antigua' => 'Giờ Đại Tây Dương (Antigua)',
-        'America/Araguaina' => 'Giờ Brasilia (Araguaina)',
+        'America/Araguaina' => 'Giờ Brasilia (Araguaína)',
         'America/Argentina/La_Rioja' => 'Giờ Argentina (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Giờ Argentina (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Giờ Argentina (Río Gallegos)',
         'America/Argentina/Salta' => 'Giờ Argentina (Salta)',
         'America/Argentina/San_Juan' => 'Giờ Argentina (San Juan)',
         'America/Argentina/San_Luis' => 'Giờ Argentina (San Luis)',
-        'America/Argentina/Tucuman' => 'Giờ Argentina (Tucuman)',
+        'America/Argentina/Tucuman' => 'Giờ Argentina (Tucumán)',
         'America/Argentina/Ushuaia' => 'Giờ Argentina (Ushuaia)',
         'America/Aruba' => 'Giờ Đại Tây Dương (Aruba)',
         'America/Asuncion' => 'Giờ Paraguay (Asunción)',
         'America/Bahia' => 'Giờ Brasilia (Bahia)',
         'America/Bahia_Banderas' => 'Giờ miền Trung (Bahia Banderas)',
         'America/Barbados' => 'Giờ Đại Tây Dương (Barbados)',
-        'America/Belem' => 'Giờ Brasilia (Belem)',
+        'America/Belem' => 'Giờ Brasilia (Belém)',
         'America/Belize' => 'Giờ miền Trung (Belize)',
         'America/Blanc-Sablon' => 'Giờ Đại Tây Dương (Blanc-Sablon)',
         'America/Boa_Vista' => 'Giờ Amazon (Boa Vista)',
-        'America/Bogota' => 'Giờ Colombia (Bogota)',
+        'America/Bogota' => 'Giờ Colombia (Bogotá)',
         'America/Boise' => 'Giờ miền núi (Boise)',
         'America/Buenos_Aires' => 'Giờ Argentina (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Giờ Argentina (Buenos Aires)',
         'America/Cambridge_Bay' => 'Giờ miền núi (Cambridge Bay)',
         'America/Campo_Grande' => 'Giờ Amazon (Campo Grande)',
         'America/Cancun' => 'Giờ miền Đông (Cancun)',
         'America/Caracas' => 'Giờ Venezuela (Caracas)',
         'America/Catamarca' => 'Giờ Argentina (Catamarca)',
+        'America/Argentina/Catamarca' => 'Giờ Argentina (Catamarca)',
         'America/Cayenne' => 'Giờ Guiana thuộc Pháp (Cayenne)',
         'America/Cayman' => 'Giờ miền Đông (Cayman)',
         'America/Chicago' => 'Giờ miền Trung (Chicago)',
         'America/Chihuahua' => 'Giờ miền Trung (Chihuahua)',
         'America/Ciudad_Juarez' => 'Giờ miền núi (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Giờ miền Đông (Atikokan)',
-        'America/Cordoba' => 'Giờ Argentina (Cordoba)',
+        'America/Atikokan' => 'Giờ miền Đông (Atikokan)',
+        'America/Cordoba' => 'Giờ Argentina (Córdoba)',
+        'America/Argentina/Cordoba' => 'Giờ Argentina (Córdoba)',
         'America/Costa_Rica' => 'Giờ miền Trung (Costa Rica)',
+        'America/Coyhaique' => 'Giờ Chile (Coyhaique)',
         'America/Creston' => 'Giờ miền núi (Creston)',
-        'America/Cuiaba' => 'Giờ Amazon (Cuiaba)',
+        'America/Cuiaba' => 'Giờ Amazon (Cuiabá)',
         'America/Curacao' => 'Giờ Đại Tây Dương (Curaçao)',
         'America/Danmarkshavn' => 'Giờ Trung bình Greenwich (Danmarkshavn)',
         'America/Dawson' => 'Giờ Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Giờ miền Đông (Detroit)',
         'America/Dominica' => 'Giờ Đại Tây Dương (Dominica)',
         'America/Edmonton' => 'Giờ miền núi (Edmonton)',
-        'America/Eirunepe' => 'Giờ Acre (Eirunepe)',
+        'America/Eirunepe' => 'Giờ Acre (Eirunepé)',
         'America/El_Salvador' => 'Giờ miền Trung (El Salvador)',
         'America/Fort_Nelson' => 'Giờ miền núi (Fort Nelson)',
         'America/Fortaleza' => 'Giờ Brasilia (Fortaleza)',
         'America/Glace_Bay' => 'Giờ Đại Tây Dương (Glace Bay)',
         'America/Godthab' => 'Giờ Greenland (Nuuk)',
+        'America/Nuuk' => 'Giờ Greenland (Nuuk)',
         'America/Goose_Bay' => 'Giờ Đại Tây Dương (Goose Bay)',
         'America/Grand_Turk' => 'Giờ miền Đông (Grand Turk)',
         'America/Grenada' => 'Giờ Đại Tây Dương (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Giờ miền Đông (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Giờ miền Đông (Winamac, Indiana)',
         'America/Indianapolis' => 'Giờ miền Đông (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Giờ miền Đông (Indianapolis)',
         'America/Inuvik' => 'Giờ miền núi (Inuvik)',
         'America/Iqaluit' => 'Giờ miền Đông (Iqaluit)',
         'America/Jamaica' => 'Giờ miền Đông (Jamaica)',
         'America/Jujuy' => 'Giờ Argentina (Jujuy)',
+        'America/Argentina/Jujuy' => 'Giờ Argentina (Jujuy)',
         'America/Juneau' => 'Giờ Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'Giờ miền Đông (Monticello, Kentucky)',
         'America/Kralendijk' => 'Giờ Đại Tây Dương (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Giờ Peru (Lima)',
         'America/Los_Angeles' => 'Giờ Thái Bình Dương (Los Angeles)',
         'America/Louisville' => 'Giờ miền Đông (Louisville)',
+        'America/Kentucky/Louisville' => 'Giờ miền Đông (Louisville)',
         'America/Lower_Princes' => 'Giờ Đại Tây Dương (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Giờ Brasilia (Maceio)',
+        'America/Maceio' => 'Giờ Brasilia (Maceió)',
         'America/Managua' => 'Giờ miền Trung (Managua)',
         'America/Manaus' => 'Giờ Amazon (Manaus)',
         'America/Marigot' => 'Giờ Đại Tây Dương (Marigot)',
         'America/Martinique' => 'Giờ Đại Tây Dương (Martinique)',
         'America/Matamoros' => 'Giờ miền Trung (Matamoros)',
-        'America/Mazatlan' => 'Giờ Thái Bình Dương Mexico (Mazatlan)',
+        'America/Mazatlan' => 'Giờ Thái Bình Dương Mexico (Mazatlán)',
         'America/Mendoza' => 'Giờ Argentina (Mendoza)',
+        'America/Argentina/Mendoza' => 'Giờ Argentina (Mendoza)',
         'America/Menominee' => 'Giờ miền Trung (Menominee)',
         'America/Merida' => 'Giờ miền Trung (Merida)',
         'America/Metlakatla' => 'Giờ Alaska (Metlakatla)',
-        'America/Mexico_City' => 'Giờ miền Trung (Mexico City)',
-        'America/Miquelon' => 'Giờ St. Pierre và Miquelon',
+        'America/Mexico_City' => 'Giờ miền Trung (Ciudad de México)',
+        'America/Miquelon' => 'Giờ St. Pierre và Miquelon (Saint-Pierre)',
         'America/Moncton' => 'Giờ Đại Tây Dương (Moncton)',
         'America/Monterrey' => 'Giờ miền Trung (Monterrey)',
         'America/Montevideo' => 'Giờ Uruguay (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Giờ miền Trung (Regina)',
         'America/Resolute' => 'Giờ miền Trung (Resolute)',
         'America/Rio_Branco' => 'Giờ Acre (Rio Branco)',
-        'America/Santarem' => 'Giờ Brasilia (Santarem)',
+        'America/Santarem' => 'Giờ Brasilia (Santarém)',
         'America/Santiago' => 'Giờ Chile (Santiago)',
         'America/Santo_Domingo' => 'Giờ Đại Tây Dương (Santo Domingo)',
-        'America/Sao_Paulo' => 'Giờ Brasilia (Sao Paulo)',
+        'America/Sao_Paulo' => 'Giờ Brasilia (São Paulo)',
         'America/Scoresbysund' => 'Giờ Greenland (Ittoqqortoormiit)',
         'America/Sitka' => 'Giờ Alaska (Sitka)',
         'America/St_Barthelemy' => 'Giờ Đại Tây Dương (St. Barthélemy)',
@@ -205,14 +216,14 @@
         'Antarctica/McMurdo' => 'Giờ New Zealand (McMurdo)',
         'Antarctica/Palmer' => 'Giờ Chile (Palmer)',
         'Antarctica/Rothera' => 'Giờ Rothera',
-        'Antarctica/Syowa' => 'Giờ Syowa',
+        'Antarctica/Syowa' => 'Giờ Syowa (Showa)',
         'Antarctica/Troll' => 'Giờ Trung bình Greenwich (Troll)',
         'Antarctica/Vostok' => 'Giờ Vostok',
         'Arctic/Longyearbyen' => 'Giờ Trung Âu (Longyearbyen)',
         'Asia/Aden' => 'Giờ Ả Rập (Aden)',
         'Asia/Almaty' => 'Giờ Kazakhstan (Almaty)',
         'Asia/Amman' => 'Giờ Đông Âu (Amman)',
-        'Asia/Anadyr' => 'Giờ Anadyr',
+        'Asia/Anadyr' => 'Giờ Petropavlovsk-Kamchatski (Anadyr)',
         'Asia/Aqtau' => 'Giờ Kazakhstan (Aqtau)',
         'Asia/Aqtobe' => 'Giờ Kazakhstan (Aqtobe)',
         'Asia/Ashgabat' => 'Giờ Turkmenistan (Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Giờ Ả Rập (Bahrain)',
         'Asia/Baku' => 'Giờ Azerbaijan (Baku)',
         'Asia/Bangkok' => 'Giờ Đông Dương (Bangkok)',
-        'Asia/Barnaul' => 'Giờ Nga (Barnaul)',
+        'Asia/Barnaul' => 'Giờ Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'Giờ Đông Âu (Beirut)',
         'Asia/Bishkek' => 'Giờ Kyrgystan (Bishkek)',
         'Asia/Brunei' => 'Giờ Brunei Darussalam',
         'Asia/Calcutta' => 'Giờ Chuẩn Ấn Độ (Kolkata)',
+        'Asia/Kolkata' => 'Giờ Chuẩn Ấn Độ (Kolkata)',
         'Asia/Chita' => 'Giờ Yakutsk (Chita)',
         'Asia/Colombo' => 'Giờ Chuẩn Ấn Độ (Colombo)',
         'Asia/Damascus' => 'Giờ Đông Âu (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Giờ Đông Âu (Gaza)',
         'Asia/Hebron' => 'Giờ Đông Âu (Hebron)',
         'Asia/Hong_Kong' => 'Giờ Hồng Kông',
-        'Asia/Hovd' => 'Giờ Hovd',
+        'Asia/Hovd' => 'Giờ Hovd (Khovd)',
         'Asia/Irkutsk' => 'Giờ Irkutsk',
         'Asia/Jakarta' => 'Giờ Miền Tây Indonesia (Jakarta)',
         'Asia/Jayapura' => 'Giờ Miền Đông Indonesia (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Giờ Petropavlovsk-Kamchatski (Kamchatka)',
         'Asia/Karachi' => 'Giờ Pakistan (Karachi)',
         'Asia/Katmandu' => 'Giờ Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'Giờ Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Giờ Yakutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Giờ Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Giờ Malaysia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Giờ Chuẩn Vùng Vịnh (Muscat)',
         'Asia/Nicosia' => 'Giờ Đông Âu (Nicosia)',
         'Asia/Novokuznetsk' => 'Giờ Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Giờ Novosibirsk',
+        'Asia/Novosibirsk' => 'Giờ Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Giờ Omsk',
         'Asia/Oral' => 'Giờ Kazakhstan (Oral)',
         'Asia/Phnom_Penh' => 'Giờ Đông Dương (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Giờ Kazakhstan (Kostanay)',
         'Asia/Qyzylorda' => 'Giờ Kazakhstan (Qyzylorda)',
         'Asia/Rangoon' => 'Giờ Myanmar (Rangoon)',
+        'Asia/Yangon' => 'Giờ Myanmar (Rangoon)',
         'Asia/Riyadh' => 'Giờ Ả Rập (Riyadh)',
         'Asia/Saigon' => 'Giờ Đông Dương (TP Hồ Chí Minh)',
-        'Asia/Sakhalin' => 'Giờ Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Giờ Đông Dương (TP Hồ Chí Minh)',
+        'Asia/Sakhalin' => 'Giờ Magadan (Sakhalin)',
         'Asia/Samarkand' => 'Giờ Uzbekistan (Samarkand)',
         'Asia/Seoul' => 'Giờ Hàn Quốc (Seoul)',
         'Asia/Shanghai' => 'Giờ Trung Quốc (Thượng Hải)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Giờ Iran (Tehran)',
         'Asia/Thimphu' => 'Giờ Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Giờ Nhật Bản (Tokyo)',
-        'Asia/Tomsk' => 'Giờ Nga (Tomsk)',
+        'Asia/Tomsk' => 'Giờ Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Giờ Ulan Bator',
-        'Asia/Urumqi' => 'Giờ Trung Quốc (Urumqi)',
+        'Asia/Urumqi' => 'Giờ Trung Quốc (Ürümqi)',
         'Asia/Ust-Nera' => 'Giờ Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'Giờ Đông Dương (Viêng Chăn)',
         'Asia/Vladivostok' => 'Giờ Vladivostok',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Giờ Armenia (Yerevan)',
         'Atlantic/Azores' => 'Giờ Azores',
         'Atlantic/Bermuda' => 'Giờ Đại Tây Dương (Bermuda)',
-        'Atlantic/Canary' => 'Giờ Tây Âu (Canary)',
+        'Atlantic/Canary' => 'Giờ Tây Âu (Canarias)',
         'Atlantic/Cape_Verde' => 'Giờ Cape Verde',
         'Atlantic/Faeroe' => 'Giờ Tây Âu (Faroe)',
+        'Atlantic/Faroe' => 'Giờ Tây Âu (Faroe)',
         'Atlantic/Madeira' => 'Giờ Tây Âu (Madeira)',
         'Atlantic/Reykjavik' => 'Giờ Trung bình Greenwich (Reykjavik)',
         'Atlantic/South_Georgia' => 'Giờ Nam Georgia',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Giờ Phối hợp Quốc tế',
         'Europe/Amsterdam' => 'Giờ Trung Âu (Amsterdam)',
         'Europe/Andorra' => 'Giờ Trung Âu (Andorra)',
-        'Europe/Astrakhan' => 'Giờ Matxcơva (Astrakhan)',
+        'Europe/Astrakhan' => 'Giờ Samara (Astrakhan)',
         'Europe/Athens' => 'Giờ Đông Âu (Athens)',
         'Europe/Belgrade' => 'Giờ Trung Âu (Belgrade)',
         'Europe/Berlin' => 'Giờ Trung Âu (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Giờ Trung Âu (Brussels)',
         'Europe/Bucharest' => 'Giờ Đông Âu (Bucharest)',
         'Europe/Budapest' => 'Giờ Trung Âu (Budapest)',
-        'Europe/Busingen' => 'Giờ Trung Âu (Busingen)',
-        'Europe/Chisinau' => 'Giờ Đông Âu (Chisinau)',
+        'Europe/Busingen' => 'Giờ Trung Âu (Büsingen)',
+        'Europe/Chisinau' => 'Giờ Đông Âu (Chișinău)',
         'Europe/Copenhagen' => 'Giờ Trung Âu (Copenhagen)',
         'Europe/Dublin' => 'Giờ Trung bình Greenwich (Dublin)',
         'Europe/Gibraltar' => 'Giờ Trung Âu (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Giờ Trung bình Greenwich (Jersey)',
         'Europe/Kaliningrad' => 'Giờ Đông Âu (Kaliningrad)',
         'Europe/Kiev' => 'Giờ Đông Âu (Kiev)',
-        'Europe/Kirov' => 'Giờ Nga (Kirov)',
+        'Europe/Kyiv' => 'Giờ Đông Âu (Kiev)',
+        'Europe/Kirov' => 'Giờ Matxcơva (Kirov)',
         'Europe/Lisbon' => 'Giờ Tây Âu (Lisbon)',
         'Europe/Ljubljana' => 'Giờ Trung Âu (Ljubljana)',
         'Europe/London' => 'Giờ Trung bình Greenwich (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Giờ Samara',
         'Europe/San_Marino' => 'Giờ Trung Âu (San Marino)',
         'Europe/Sarajevo' => 'Giờ Trung Âu (Sarajevo)',
-        'Europe/Saratov' => 'Giờ Matxcơva (Saratov)',
+        'Europe/Saratov' => 'Giờ Samara (Saratov)',
         'Europe/Simferopol' => 'Giờ Matxcơva (Simferopol)',
         'Europe/Skopje' => 'Giờ Trung Âu (Skopje)',
         'Europe/Sofia' => 'Giờ Đông Âu (Sofia)',
         'Europe/Stockholm' => 'Giờ Trung Âu (Stockholm)',
         'Europe/Tallinn' => 'Giờ Đông Âu (Tallinn)',
-        'Europe/Tirane' => 'Giờ Trung Âu (Tirane)',
-        'Europe/Ulyanovsk' => 'Giờ Matxcơva (Ulyanovsk)',
+        'Europe/Tirane' => 'Giờ Trung Âu (Tirana)',
+        'Europe/Ulyanovsk' => 'Giờ Samara (Ulyanovsk)',
         'Europe/Vaduz' => 'Giờ Trung Âu (Vaduz)',
         'Europe/Vatican' => 'Giờ Trung Âu (Vatican)',
         'Europe/Vienna' => 'Giờ Trung Âu (Vienna)',
         'Europe/Vilnius' => 'Giờ Đông Âu (Vilnius)',
-        'Europe/Volgograd' => 'Giờ Volgograd',
+        'Europe/Volgograd' => 'Giờ Matxcơva (Volgograd)',
         'Europe/Warsaw' => 'Giờ Trung Âu (Warsaw)',
         'Europe/Zagreb' => 'Giờ Trung Âu (Zagreb)',
         'Europe/Zurich' => 'Giờ Trung Âu (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Giờ Ấn Độ Dương (Chagos)',
         'Indian/Christmas' => 'Giờ Đảo Christmas',
         'Indian/Cocos' => 'Giờ Quần Đảo Cocos',
-        'Indian/Comoro' => 'Giờ Đông Phi (Comoro)',
+        'Indian/Comoro' => 'Giờ Đông Phi (Comores)',
         'Indian/Kerguelen' => 'Giờ Nam Cực và Nam Nước Pháp (Kerguelen)',
-        'Indian/Mahe' => 'Giờ Seychelles (Mahe)',
+        'Indian/Mahe' => 'Giờ Seychelles (Mahé)',
         'Indian/Maldives' => 'Giờ Maldives',
         'Indian/Mauritius' => 'Giờ Mauritius',
         'Indian/Mayotte' => 'Giờ Đông Phi (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Giờ Chatham',
         'Pacific/Easter' => 'Giờ Đảo Phục Sinh (Easter)',
         'Pacific/Efate' => 'Giờ Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'Giờ Quần Đảo Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Giờ Quần Đảo Phoenix (Đảo Canton)',
+        'Pacific/Kanton' => 'Giờ Quần Đảo Phoenix (Đảo Canton)',
         'Pacific/Fakaofo' => 'Giờ Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Giờ Fiji',
         'Pacific/Funafuti' => 'Giờ Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'Giờ Galapagos',
+        'Pacific/Galapagos' => 'Giờ Galapagos (Galápagos)',
         'Pacific/Gambier' => 'Giờ Gambier',
         'Pacific/Guadalcanal' => 'Giờ Quần Đảo Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Giờ Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Giờ Hawaii-Aleut (Honolulu)',
+        'Pacific/Honolulu' => 'Giờ Chuẩn Hawaii-Aleut (Honolulu)',
         'Pacific/Kiritimati' => 'Giờ Quần Đảo Line (Kiritimati)',
         'Pacific/Kosrae' => 'Giờ Kosrae',
         'Pacific/Kwajalein' => 'Giờ Quần Đảo Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Giờ Nauru',
         'Pacific/Niue' => 'Giờ Niue',
         'Pacific/Norfolk' => 'Giờ Đảo Norfolk',
-        'Pacific/Noumea' => 'Giờ New Caledonia (Noumea)',
+        'Pacific/Noumea' => 'Giờ New Caledonia (Nouméa)',
         'Pacific/Pago_Pago' => 'Giờ Samoa (Pago Pago)',
         'Pacific/Palau' => 'Giờ Palau',
         'Pacific/Pitcairn' => 'Giờ Pitcairn',
         'Pacific/Ponape' => 'Giờ Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Giờ Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Giờ Papua New Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'Giờ Quần Đảo Cook (Rarotonga)',
         'Pacific/Saipan' => 'Giờ Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Giờ Quần Đảo Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Giờ Tonga (Tongatapu)',
         'Pacific/Truk' => 'Giờ Chuuk',
+        'Pacific/Chuuk' => 'Giờ Chuuk',
         'Pacific/Wake' => 'Giờ Đảo Wake',
-        'Pacific/Wallis' => 'Giờ Wallis và Futuna',
+        'Pacific/Wallis' => 'Giờ Wallis và Futuna (Wallis & Futuna)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/wo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/wo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/wo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/wo.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Waxtu Afrique sowwu jant (Addis Ababa)',
         'Africa/Algiers' => 'CTE (waxtu ëroop sàntaraal) (Algiers)',
         'Africa/Asmera' => 'Waxtu Afrique sowwu jant (Asmara)',
+        'Africa/Asmara' => 'Waxtu Afrique sowwu jant (Asmara)',
         'Africa/Bamako' => 'GMT (waxtu Greenwich) (Bamako)',
         'Africa/Bangui' => 'Waxtu sowwu Afrique (Bangui)',
         'Africa/Banjul' => 'GMT (waxtu Greenwich) (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Waxtu Afrique sowwu jant (Dar es Salaam)',
         'Africa/Djibouti' => 'Waxtu Afrique sowwu jant (Djibouti)',
         'Africa/Douala' => 'Waxtu sowwu Afrique (Douala)',
-        'Africa/El_Aaiun' => 'WET (waxtu ëroop u sowwu-jant (El Aaiun)',
+        'Africa/El_Aaiun' => 'WET (waxtu ëroop u sowwu-jant (El Aaiún)',
         'Africa/Freetown' => 'GMT (waxtu Greenwich) (Freetown)',
         'Africa/Gaborone' => 'Waxtu Afrique Centrale (Gaborone)',
         'Africa/Harare' => 'Waxtu Afrique Centrale (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Waxtu sowwu Afrique (Kinshasa)',
         'Africa/Lagos' => 'Waxtu sowwu Afrique (Lagos)',
         'Africa/Libreville' => 'Waxtu sowwu Afrique (Libreville)',
-        'Africa/Lome' => 'GMT (waxtu Greenwich) (Lome)',
+        'Africa/Lome' => 'GMT (waxtu Greenwich) (Lomé)',
         'Africa/Luanda' => 'Waxtu sowwu Afrique (Luanda)',
         'Africa/Lubumbashi' => 'Waxtu Afrique Centrale (Lubumbashi)',
         'Africa/Lusaka' => 'Waxtu Afrique Centrale (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Waxtu Afrique sowwu jant (Mogadishu)',
         'Africa/Monrovia' => 'GMT (waxtu Greenwich) (Monrovia)',
         'Africa/Nairobi' => 'Waxtu Afrique sowwu jant (Nairobi)',
-        'Africa/Ndjamena' => 'Waxtu sowwu Afrique (Ndjamena)',
+        'Africa/Ndjamena' => 'Waxtu sowwu Afrique (N’Djamena)',
         'Africa/Niamey' => 'Waxtu sowwu Afrique (Niamey)',
         'Africa/Nouakchott' => 'GMT (waxtu Greenwich) (Nouakchott)',
         'Africa/Ouagadougou' => 'GMT (waxtu Greenwich) (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Waxtu Alaska (Anchorage)',
         'America/Anguilla' => 'AT (waxtu atlàntik) (Anguilla)',
         'America/Antigua' => 'AT (waxtu atlàntik) (Antigua)',
-        'America/Araguaina' => 'Waxtu Bresil (Araguaina)',
+        'America/Araguaina' => 'Waxtu Bresil (Araguaína)',
         'America/Argentina/La_Rioja' => 'Waxtu Arsantiin (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Waxtu Arsantiin (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Waxtu Arsantiin (Río Gallegos)',
         'America/Argentina/Salta' => 'Waxtu Arsantiin (Salta)',
         'America/Argentina/San_Juan' => 'Waxtu Arsantiin (San Juan)',
         'America/Argentina/San_Luis' => 'Waxtu Arsantiin (San Luis)',
-        'America/Argentina/Tucuman' => 'Waxtu Arsantiin (Tucuman)',
+        'America/Argentina/Tucuman' => 'Waxtu Arsantiin (Tucumán)',
         'America/Argentina/Ushuaia' => 'Waxtu Arsantiin (Ushuaia)',
         'America/Aruba' => 'AT (waxtu atlàntik) (Aruba)',
         'America/Asuncion' => 'Waxtu Paraguay (Asunción)',
         'America/Bahia' => 'Waxtu Bresil (Bahia)',
         'America/Bahia_Banderas' => 'CT (waxtu sàntaral) (Bahía de Banderas)',
         'America/Barbados' => 'AT (waxtu atlàntik) (Barbados)',
-        'America/Belem' => 'Waxtu Bresil (Belem)',
+        'America/Belem' => 'Waxtu Bresil (Belém)',
         'America/Belize' => 'CT (waxtu sàntaral) (Belize)',
         'America/Blanc-Sablon' => 'AT (waxtu atlàntik) (Blanc-Sablon)',
         'America/Boa_Vista' => 'Waxtu Amazon (Boa Vista)',
-        'America/Bogota' => 'Waxtu Kolombi (Bogota)',
+        'America/Bogota' => 'Waxtu Kolombi (Bogotá)',
         'America/Boise' => 'MT (waxtu tundu) (Boise)',
         'America/Buenos_Aires' => 'Waxtu Arsantiin (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Waxtu Arsantiin (Buenos Aires)',
         'America/Cambridge_Bay' => 'MT (waxtu tundu) (Cambridge Bay)',
         'America/Campo_Grande' => 'Waxtu Amazon (Campo Grande)',
         'America/Cancun' => 'ET waxtu penku (Cancún)',
         'America/Caracas' => 'Waxtu Venezuela (Caracas)',
         'America/Catamarca' => 'Waxtu Arsantiin (Catamarca)',
+        'America/Argentina/Catamarca' => 'Waxtu Arsantiin (Catamarca)',
         'America/Cayenne' => 'Guyane française (Cayenne)',
         'America/Cayman' => 'ET waxtu penku (Cayman)',
         'America/Chicago' => 'CT (waxtu sàntaral) (Chicago)',
         'America/Chihuahua' => 'CT (waxtu sàntaral) (Chihuahua)',
         'America/Ciudad_Juarez' => 'MT (waxtu tundu) (Ciudad Juárez)',
         'America/Coral_Harbour' => 'ET waxtu penku (Atikokan)',
-        'America/Cordoba' => 'Waxtu Arsantiin (Cordoba)',
+        'America/Atikokan' => 'ET waxtu penku (Atikokan)',
+        'America/Cordoba' => 'Waxtu Arsantiin (Córdoba)',
+        'America/Argentina/Cordoba' => 'Waxtu Arsantiin (Córdoba)',
         'America/Costa_Rica' => 'CT (waxtu sàntaral) (Costa Rica)',
+        'America/Coyhaique' => 'Waxtu Sili (Coyhaique)',
         'America/Creston' => 'MT (waxtu tundu) (Creston)',
-        'America/Cuiaba' => 'Waxtu Amazon (Cuiaba)',
+        'America/Cuiaba' => 'Waxtu Amazon (Cuiabá)',
         'America/Curacao' => 'AT (waxtu atlàntik) (Curaçao)',
         'America/Danmarkshavn' => 'GMT (waxtu Greenwich) (Danmarkshavn)',
         'America/Dawson' => 'Waxtu Yukon (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'ET waxtu penku (Detroit)',
         'America/Dominica' => 'AT (waxtu atlàntik) (Dominica)',
         'America/Edmonton' => 'MT (waxtu tundu) (Edmonton)',
-        'America/Eirunepe' => 'Beresil (Eirunepe)',
+        'America/Eirunepe' => 'Beresil (Eirunepé)',
         'America/El_Salvador' => 'CT (waxtu sàntaral) (El Salvador)',
         'America/Fort_Nelson' => 'MT (waxtu tundu) (Fort Nelson)',
         'America/Fortaleza' => 'Waxtu Bresil (Fortaleza)',
         'America/Glace_Bay' => 'AT (waxtu atlàntik) (Glace Bay)',
         'America/Godthab' => 'Girinlànd (Nuuk)',
+        'America/Nuuk' => 'Girinlànd (Nuuk)',
         'America/Goose_Bay' => 'AT (waxtu atlàntik) (Goose Bay)',
         'America/Grand_Turk' => 'ET waxtu penku (Grand Turk)',
         'America/Grenada' => 'AT (waxtu atlàntik) (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'ET waxtu penku (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'ET waxtu penku (Winamac, Indiana)',
         'America/Indianapolis' => 'ET waxtu penku (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'ET waxtu penku (Indianapolis)',
         'America/Inuvik' => 'MT (waxtu tundu) (Inuvik)',
         'America/Iqaluit' => 'ET waxtu penku (Iqaluit)',
         'America/Jamaica' => 'ET waxtu penku (Jamaica)',
         'America/Jujuy' => 'Waxtu Arsantiin (Jujuy)',
+        'America/Argentina/Jujuy' => 'Waxtu Arsantiin (Jujuy)',
         'America/Juneau' => 'Waxtu Alaska (Juneau)',
         'America/Kentucky/Monticello' => 'ET waxtu penku (Monticello, Kentucky)',
         'America/Kralendijk' => 'AT (waxtu atlàntik) (Kralendijk)',
@@ -136,19 +145,21 @@
         'America/Lima' => 'Peru waxtu (Lima)',
         'America/Los_Angeles' => 'PT (waxtu pasifik) (Los Angeles)',
         'America/Louisville' => 'ET waxtu penku (Louisville)',
+        'America/Kentucky/Louisville' => 'ET waxtu penku (Louisville)',
         'America/Lower_Princes' => 'AT (waxtu atlàntik) (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Waxtu Bresil (Maceio)',
+        'America/Maceio' => 'Waxtu Bresil (Maceió)',
         'America/Managua' => 'CT (waxtu sàntaral) (Managua)',
         'America/Manaus' => 'Waxtu Amazon (Manaus)',
         'America/Marigot' => 'AT (waxtu atlàntik) (Marigot)',
         'America/Martinique' => 'AT (waxtu atlàntik) (Martinique)',
         'America/Matamoros' => 'CT (waxtu sàntaral) (Matamoros)',
-        'America/Mazatlan' => 'waxtu pasifik bu Mexik (Mazatlan)',
+        'America/Mazatlan' => 'waxtu pasifik bu Mexik (Mazatlán)',
         'America/Mendoza' => 'Waxtu Arsantiin (Mendoza)',
+        'America/Argentina/Mendoza' => 'Waxtu Arsantiin (Mendoza)',
         'America/Menominee' => 'CT (waxtu sàntaral) (Menominee)',
         'America/Merida' => 'CT (waxtu sàntaral) (Mérida)',
         'America/Metlakatla' => 'Waxtu Alaska (Metlakatla)',
-        'America/Mexico_City' => 'CT (waxtu sàntaral) (Mexico City)',
+        'America/Mexico_City' => 'CT (waxtu sàntaral) (Ciudad de México)',
         'America/Miquelon' => 'Saint Pierre ak Miquelon',
         'America/Moncton' => 'AT (waxtu atlàntik) (Moncton)',
         'America/Monterrey' => 'CT (waxtu sàntaral) (Monterrey)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'CT (waxtu sàntaral) (Regina)',
         'America/Resolute' => 'CT (waxtu sàntaral) (Resolute)',
         'America/Rio_Branco' => 'Beresil (Rio Branco)',
-        'America/Santarem' => 'Waxtu Bresil (Santarem)',
+        'America/Santarem' => 'Waxtu Bresil (Santarém)',
         'America/Santiago' => 'Waxtu Sili (Santiago)',
         'America/Santo_Domingo' => 'AT (waxtu atlàntik) (Santo Domingo)',
-        'America/Sao_Paulo' => 'Waxtu Bresil (Sao Paulo)',
+        'America/Sao_Paulo' => 'Waxtu Bresil (São Paulo)',
         'America/Scoresbysund' => 'Girinlànd (Ittoqqortoormiit)',
         'America/Sitka' => 'Waxtu Alaska (Sitka)',
         'America/St_Barthelemy' => 'AT (waxtu atlàntik) (St. Barthélemy)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Waxtu Nouvelle-Zélande (McMurdo)',
         'Antarctica/Palmer' => 'Waxtu Sili (Palmer)',
         'Antarctica/Rothera' => 'Waxtu Rotera (Rothera)',
-        'Antarctica/Syowa' => 'waxtu syowa',
+        'Antarctica/Syowa' => 'waxtu syowa (Showa)',
         'Antarctica/Troll' => 'GMT (waxtu Greenwich) (Troll)',
         'Antarctica/Vostok' => 'Waxtu Vostok',
         'Arctic/Longyearbyen' => 'CTE (waxtu ëroop sàntaraal) (Longyearbyen)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Waxtu araab yi (Bahrain)',
         'Asia/Baku' => 'Azerbaïdjan Waxtu (Baku)',
         'Asia/Bangkok' => 'waxtu Indochine (Bangkok)',
-        'Asia/Barnaul' => 'Risi (Barnaul)',
+        'Asia/Barnaul' => 'Waxtu Krasnoyarsk (Barnaul)',
         'Asia/Beirut' => 'EET (waxtu ëroop u penku) (Beirut)',
         'Asia/Bishkek' => 'Waxtu Kirgistan (Bishkek)',
         'Asia/Brunei' => 'Brunei Darussalam',
         'Asia/Calcutta' => 'Waxtu Inde (Kolkata)',
+        'Asia/Kolkata' => 'Waxtu Inde (Kolkata)',
         'Asia/Chita' => 'Yakutsk Waxtu (Chita)',
         'Asia/Colombo' => 'Waxtu Inde (Colombo)',
         'Asia/Damascus' => 'EET (waxtu ëroop u penku) (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'EET (waxtu ëroop u penku) (Gaza)',
         'Asia/Hebron' => 'EET (waxtu ëroop u penku) (Hebron)',
         'Asia/Hong_Kong' => 'waxtu Hong Kong',
-        'Asia/Hovd' => 'Hovd waxtu',
+        'Asia/Hovd' => 'Hovd waxtu (Khovd)',
         'Asia/Irkutsk' => 'Waxtu rkutsk (Irkutsk)',
         'Asia/Jakarta' => 'waxtu sowwu Enndonesi (Jakarta)',
         'Asia/Jayapura' => 'waxtu penku Enndonesi (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Risi (Kamchatka)',
         'Asia/Karachi' => 'Waxtu Pakistan (Karachi)',
         'Asia/Katmandu' => 'waxtu Nepal (Kathmandu)',
+        'Asia/Kathmandu' => 'waxtu Nepal (Kathmandu)',
         'Asia/Khandyga' => 'Yakutsk Waxtu (Khandyga)',
         'Asia/Krasnoyarsk' => 'Waxtu Krasnoyarsk',
         'Asia/Kuala_Lumpur' => 'Malaysie (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Waxtu Golf (Muscat)',
         'Asia/Nicosia' => 'EET (waxtu ëroop u penku) (Nicosia)',
         'Asia/Novokuznetsk' => 'Waxtu Krasnoyarsk (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Waxtu Nowosibirsk (Novosibirsk)',
+        'Asia/Novosibirsk' => 'Waxtu Krasnoyarsk (Novosibirsk)',
         'Asia/Omsk' => 'Waxtu Omsk',
         'Asia/Oral' => 'Waxtu Kazakhstaan (Oral)',
         'Asia/Phnom_Penh' => 'waxtu Indochine (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Waxtu Kazakhstaan (Qostanay)',
         'Asia/Qyzylorda' => 'Waxtu Kazakhstaan (Qyzylorda)',
         'Asia/Rangoon' => 'waxtu Myanmar (Yangon)',
+        'Asia/Yangon' => 'waxtu Myanmar (Yangon)',
         'Asia/Riyadh' => 'Waxtu araab yi (Riyadh)',
         'Asia/Saigon' => 'waxtu Indochine (Ho Chi Minh)',
-        'Asia/Sakhalin' => 'waxtu Saxalin (Sakhalin)',
+        'Asia/Ho_Chi_Minh' => 'waxtu Indochine (Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Waxtu Magadaan (Sakhalin)',
         'Asia/Samarkand' => 'Waxtu Ouzbékistan (Samarkand)',
         'Asia/Seoul' => 'waxtu Kore (Seoul)',
         'Asia/Shanghai' => 'Waxtu Chine (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Waxtu Iran (Tehran)',
         'Asia/Thimphu' => 'waxtu Bhoutan (Thimphu)',
         'Asia/Tokyo' => 'Japon (Tokyo)',
-        'Asia/Tomsk' => 'Risi (Tomsk)',
+        'Asia/Tomsk' => 'Waxtu Krasnoyarsk (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulaan Baatar (Ulaanbaatar)',
-        'Asia/Urumqi' => 'Siin (Urumqi)',
+        'Asia/Urumqi' => 'Siin (Ürümqi)',
         'Asia/Ust-Nera' => 'Waxtu Vladivostok (Ust-Nera)',
         'Asia/Vientiane' => 'waxtu Indochine (Vientiane)',
         'Asia/Vladivostok' => 'Waxtu Vladivostok',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Waxtu Armeni (Yerevan)',
         'Atlantic/Azores' => 'Waxtu Azores',
         'Atlantic/Bermuda' => 'AT (waxtu atlàntik) (Bermuda)',
-        'Atlantic/Canary' => 'WET (waxtu ëroop u sowwu-jant (Canary)',
+        'Atlantic/Canary' => 'WET (waxtu ëroop u sowwu-jant (Canarias)',
         'Atlantic/Cape_Verde' => 'Cape Verde',
         'Atlantic/Faeroe' => 'WET (waxtu ëroop u sowwu-jant (Faroe)',
+        'Atlantic/Faroe' => 'WET (waxtu ëroop u sowwu-jant (Faroe)',
         'Atlantic/Madeira' => 'WET (waxtu ëroop u sowwu-jant (Madeira)',
         'Atlantic/Reykjavik' => 'GMT (waxtu Greenwich) (Reykjavik)',
         'Atlantic/South_Georgia' => 'Georgie du Sud (South Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'CUT (waxtu iniwelsel yuñ boole)',
         'Europe/Amsterdam' => 'CTE (waxtu ëroop sàntaraal) (Amsterdam)',
         'Europe/Andorra' => 'CTE (waxtu ëroop sàntaraal) (Andorra)',
-        'Europe/Astrakhan' => 'Waxtu Moscow (Astrakhan)',
+        'Europe/Astrakhan' => 'Risi (Astrakhan)',
         'Europe/Athens' => 'EET (waxtu ëroop u penku) (Athens)',
         'Europe/Belgrade' => 'CTE (waxtu ëroop sàntaraal) (Belgrade)',
         'Europe/Berlin' => 'CTE (waxtu ëroop sàntaraal) (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'CTE (waxtu ëroop sàntaraal) (Brussels)',
         'Europe/Bucharest' => 'EET (waxtu ëroop u penku) (Bucharest)',
         'Europe/Budapest' => 'CTE (waxtu ëroop sàntaraal) (Budapest)',
-        'Europe/Busingen' => 'CTE (waxtu ëroop sàntaraal) (Busingen)',
-        'Europe/Chisinau' => 'EET (waxtu ëroop u penku) (Chisinau)',
+        'Europe/Busingen' => 'CTE (waxtu ëroop sàntaraal) (Büsingen)',
+        'Europe/Chisinau' => 'EET (waxtu ëroop u penku) (Chișinău)',
         'Europe/Copenhagen' => 'CTE (waxtu ëroop sàntaraal) (Copenhagen)',
         'Europe/Dublin' => 'GMT (waxtu Greenwich) (Dublin)',
         'Europe/Gibraltar' => 'CTE (waxtu ëroop sàntaraal) (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'GMT (waxtu Greenwich) (Jersey)',
         'Europe/Kaliningrad' => 'EET (waxtu ëroop u penku) (Kaliningrad)',
         'Europe/Kiev' => 'EET (waxtu ëroop u penku) (Kyiv)',
-        'Europe/Kirov' => 'Risi (Kirov)',
+        'Europe/Kyiv' => 'EET (waxtu ëroop u penku) (Kyiv)',
+        'Europe/Kirov' => 'Waxtu Moscow (Kirov)',
         'Europe/Lisbon' => 'WET (waxtu ëroop u sowwu-jant (Lisbon)',
         'Europe/Ljubljana' => 'CTE (waxtu ëroop sàntaraal) (Ljubljana)',
         'Europe/London' => 'GMT (waxtu Greenwich) (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Risi (Samara)',
         'Europe/San_Marino' => 'CTE (waxtu ëroop sàntaraal) (San Marino)',
         'Europe/Sarajevo' => 'CTE (waxtu ëroop sàntaraal) (Sarajevo)',
-        'Europe/Saratov' => 'Waxtu Moscow (Saratov)',
+        'Europe/Saratov' => 'Risi (Saratov)',
         'Europe/Simferopol' => 'Waxtu Moscow (Simferopol)',
         'Europe/Skopje' => 'CTE (waxtu ëroop sàntaraal) (Skopje)',
         'Europe/Sofia' => 'EET (waxtu ëroop u penku) (Sofia)',
         'Europe/Stockholm' => 'CTE (waxtu ëroop sàntaraal) (Stockholm)',
         'Europe/Tallinn' => 'EET (waxtu ëroop u penku) (Tallinn)',
-        'Europe/Tirane' => 'CTE (waxtu ëroop sàntaraal) (Tirane)',
-        'Europe/Ulyanovsk' => 'Waxtu Moscow (Ulyanovsk)',
+        'Europe/Tirane' => 'CTE (waxtu ëroop sàntaraal) (Tirana)',
+        'Europe/Ulyanovsk' => 'Risi (Ulyanovsk)',
         'Europe/Vaduz' => 'CTE (waxtu ëroop sàntaraal) (Vaduz)',
         'Europe/Vatican' => 'CTE (waxtu ëroop sàntaraal) (Vatican)',
         'Europe/Vienna' => 'CTE (waxtu ëroop sàntaraal) (Vienna)',
         'Europe/Vilnius' => 'EET (waxtu ëroop u penku) (Vilnius)',
-        'Europe/Volgograd' => 'Waxtu Volgograd',
+        'Europe/Volgograd' => 'Waxtu Moscow (Volgograd)',
         'Europe/Warsaw' => 'CTE (waxtu ëroop sàntaraal) (Warsaw)',
         'Europe/Zagreb' => 'CTE (waxtu ëroop sàntaraal) (Zagreb)',
         'Europe/Zurich' => 'CTE (waxtu ëroop sàntaraal) (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Waxtu géeju Inde (Chagos)',
         'Indian/Christmas' => 'waxtu ile bu noel (Christmas)',
         'Indian/Cocos' => 'Waxtu ile Cocos',
-        'Indian/Comoro' => 'Waxtu Afrique sowwu jant (Comoro)',
+        'Indian/Comoro' => 'Waxtu Afrique sowwu jant (Comores)',
         'Indian/Kerguelen' => 'Waxtu Sud ak Antarctique bu Français (Kerguelen)',
-        'Indian/Mahe' => 'Waxtu Seychelles (Mahe)',
+        'Indian/Mahe' => 'Waxtu Seychelles (Mahé)',
         'Indian/Maldives' => 'Waxtu Maldives',
         'Indian/Mauritius' => 'waxtu Maurice (Mauritius)',
         'Indian/Mayotte' => 'Waxtu Afrique sowwu jant (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'waxtu Chatham',
         'Pacific/Easter' => 'Waxtu ile bu Pâques (Easter)',
         'Pacific/Efate' => 'Waxtu Vanuatu (Efate)',
-        'Pacific/Enderbury' => 'waxtu ile Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'waxtu ile Phoenix (Canton)',
+        'Pacific/Kanton' => 'waxtu ile Phoenix (Canton)',
         'Pacific/Fakaofo' => 'Tokelau time (Fakaofo)',
         'Pacific/Fiji' => 'waxtu Fidji (Fiji)',
         'Pacific/Funafuti' => 'Waxtu Tuvalu (Funafuti)',
-        'Pacific/Galapagos' => 'waxtu galapagos',
+        'Pacific/Galapagos' => 'waxtu galapagos (Galápagos)',
         'Pacific/Gambier' => 'Waxtu Gambier',
         'Pacific/Guadalcanal' => 'Waxtu Ile Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro Standard Time (Guam)',
-        'Pacific/Honolulu' => 'Waxtu Hawaii-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Waxtu buñ jagleel Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Waxtu Ile Line (Kiritimati)',
         'Pacific/Kosrae' => 'Waxtu Kosrae',
         'Pacific/Kwajalein' => 'Waxtu Ile Marshall (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'waxtu Nauru',
         'Pacific/Niue' => 'Waxtu Niue',
         'Pacific/Norfolk' => 'waxtu ile Norfolk',
-        'Pacific/Noumea' => 'Waxtu New Caledonie (Noumea)',
+        'Pacific/Noumea' => 'Waxtu New Caledonie (Nouméa)',
         'Pacific/Pago_Pago' => 'waxtu Samoa (Pago Pago)',
         'Pacific/Palau' => 'waxtu Palau',
         'Pacific/Pitcairn' => 'Waxtu Pitcairn',
         'Pacific/Ponape' => 'Waxtu Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Waxtu Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papouasie-Nouvelle-Guiné (Port Moresby)',
         'Pacific/Rarotonga' => 'Waxtu Ile Cook (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro Standard Time (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'waxtu ile Gilbert (Tarawa)',
         'Pacific/Tongatapu' => 'Waxtu Tonga (Tongatapu)',
         'Pacific/Truk' => 'Waxtu Chuuk',
+        'Pacific/Chuuk' => 'Waxtu Chuuk',
         'Pacific/Wake' => 'Waxtu Ile Wake',
         'Pacific/Wallis' => 'Wallis & Futuna Time',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/xh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/xh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/xh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/xh.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'East Africa Time (Addis Ababa)',
         'Africa/Algiers' => 'Central European Time (Algiers)',
         'Africa/Asmera' => 'East Africa Time (Asmara)',
+        'Africa/Asmara' => 'East Africa Time (Asmara)',
         'Africa/Bamako' => 'Greenwich Mean Time (Bamako)',
         'Africa/Bangui' => 'West Africa Time (Bangui)',
         'Africa/Banjul' => 'Greenwich Mean Time (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'East Africa Time (Dar es Salaam)',
         'Africa/Djibouti' => 'East Africa Time (Djibouti)',
         'Africa/Douala' => 'West Africa Time (Douala)',
-        'Africa/El_Aaiun' => 'Western European Time (El Aaiun)',
+        'Africa/El_Aaiun' => 'Western European Time (El Aaiún)',
         'Africa/Freetown' => 'Greenwich Mean Time (Freetown)',
         'Africa/Gaborone' => 'Central Africa Time (Gaborone)',
         'Africa/Harare' => 'Central Africa Time (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'West Africa Time (Kinshasa)',
         'Africa/Lagos' => 'West Africa Time (Lagos)',
         'Africa/Libreville' => 'West Africa Time (Libreville)',
-        'Africa/Lome' => 'Greenwich Mean Time (Lome)',
+        'Africa/Lome' => 'Greenwich Mean Time (Lomé)',
         'Africa/Luanda' => 'West Africa Time (Luanda)',
         'Africa/Lubumbashi' => 'Central Africa Time (Lubumbashi)',
         'Africa/Lusaka' => 'Central Africa Time (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'East Africa Time (Mogadishu)',
         'Africa/Monrovia' => 'Greenwich Mean Time (Monrovia)',
         'Africa/Nairobi' => 'East Africa Time (Nairobi)',
-        'Africa/Ndjamena' => 'West Africa Time (Ndjamena)',
+        'Africa/Ndjamena' => 'West Africa Time (N’Djamena)',
         'Africa/Niamey' => 'West Africa Time (Niamey)',
         'Africa/Nouakchott' => 'Greenwich Mean Time (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich Mean Time (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Alaska Time (Anchorage)',
         'America/Anguilla' => 'Atlantic Time (Anguilla)',
         'America/Antigua' => 'Atlantic Time (Antigua)',
-        'America/Araguaina' => 'Brasilia Time (Araguaina)',
+        'America/Araguaina' => 'Brasilia Time (Araguaína)',
         'America/Argentina/La_Rioja' => 'Argentina Time (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Argentina Time (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Argentina Time (Río Gallegos)',
         'America/Argentina/Salta' => 'Argentina Time (Salta)',
         'America/Argentina/San_Juan' => 'Argentina Time (San Juan)',
         'America/Argentina/San_Luis' => 'Argentina Time (San Luis)',
-        'America/Argentina/Tucuman' => 'Argentina Time (Tucuman)',
+        'America/Argentina/Tucuman' => 'Argentina Time (Tucumán)',
         'America/Argentina/Ushuaia' => 'Argentina Time (Ushuaia)',
         'America/Aruba' => 'Atlantic Time (Aruba)',
         'America/Asuncion' => 'Paraguay Time (Asunción)',
         'America/Bahia' => 'Brasilia Time (Bahia)',
         'America/Bahia_Banderas' => 'Central Time (Bahia Banderas)',
         'America/Barbados' => 'Atlantic Time (Barbados)',
-        'America/Belem' => 'Brasilia Time (Belem)',
+        'America/Belem' => 'Brasilia Time (Belém)',
         'America/Belize' => 'Central Time (Belize)',
         'America/Blanc-Sablon' => 'Atlantic Time (Blanc-Sablon)',
         'America/Boa_Vista' => 'Amazon Time (Boa Vista)',
-        'America/Bogota' => 'Colombia Time (Bogota)',
+        'America/Bogota' => 'Colombia Time (Bogotá)',
         'America/Boise' => 'Mountain Time (Boise)',
         'America/Buenos_Aires' => 'Argentina Time (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Argentina Time (Buenos Aires)',
         'America/Cambridge_Bay' => 'Mountain Time (Cambridge Bay)',
         'America/Campo_Grande' => 'Amazon Time (Campo Grande)',
         'America/Cancun' => 'Eastern Time (Cancun)',
         'America/Caracas' => 'Venezuela Time (Caracas)',
         'America/Catamarca' => 'Argentina Time (Catamarca)',
+        'America/Argentina/Catamarca' => 'Argentina Time (Catamarca)',
         'America/Cayenne' => 'French Guiana Time (Cayenne)',
         'America/Cayman' => 'Eastern Time (Cayman)',
         'America/Chicago' => 'Central Time (Chicago)',
         'America/Chihuahua' => 'Central Time (Chihuahua)',
         'America/Ciudad_Juarez' => 'Mountain Time (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Eastern Time (Atikokan)',
-        'America/Cordoba' => 'Argentina Time (Cordoba)',
+        'America/Atikokan' => 'Eastern Time (Atikokan)',
+        'America/Cordoba' => 'Argentina Time (Córdoba)',
+        'America/Argentina/Cordoba' => 'Argentina Time (Córdoba)',
         'America/Costa_Rica' => 'Central Time (Costa Rica)',
+        'America/Coyhaique' => 'Chile Time (Coyhaique)',
         'America/Creston' => 'Mountain Time (Creston)',
-        'America/Cuiaba' => 'Amazon Time (Cuiaba)',
+        'America/Cuiaba' => 'Amazon Time (Cuiabá)',
         'America/Curacao' => 'Atlantic Time (Curaçao)',
         'America/Danmarkshavn' => 'Greenwich Mean Time (Danmarkshavn)',
         'America/Dawson' => 'Yukon Time (Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Eastern Time (Detroit)',
         'America/Dominica' => 'Atlantic Time (Dominica)',
         'America/Edmonton' => 'Mountain Time (Edmonton)',
-        'America/Eirunepe' => 'EBrazil Time (Eirunepe)',
+        'America/Eirunepe' => 'EBrazil Time (Eirunepé)',
         'America/El_Salvador' => 'Central Time (El Salvador)',
         'America/Fort_Nelson' => 'Mountain Time (Fort Nelson)',
         'America/Fortaleza' => 'Brasilia Time (Fortaleza)',
         'America/Glace_Bay' => 'Atlantic Time (Glace Bay)',
         'America/Godthab' => 'EGreenland Time (Nuuk)',
+        'America/Nuuk' => 'EGreenland Time (Nuuk)',
         'America/Goose_Bay' => 'Atlantic Time (Goose Bay)',
         'America/Grand_Turk' => 'Eastern Time (Grand Turk)',
         'America/Grenada' => 'Atlantic Time (Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Eastern Time (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Eastern Time (Winamac, Indiana)',
         'America/Indianapolis' => 'Eastern Time (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Eastern Time (Indianapolis)',
         'America/Inuvik' => 'Mountain Time (Inuvik)',
         'America/Iqaluit' => 'Eastern Time (Iqaluit)',
         'America/Jamaica' => 'Eastern Time (Jamaica)',
         'America/Jujuy' => 'Argentina Time (Jujuy)',
+        'America/Argentina/Jujuy' => 'Argentina Time (Jujuy)',
         'America/Juneau' => 'Alaska Time (Juneau)',
         'America/Kentucky/Monticello' => 'Eastern Time (Monticello, Kentucky)',
         'America/Kralendijk' => 'Atlantic Time (Kralendijk)',
@@ -136,20 +145,22 @@
         'America/Lima' => 'Peru Time (Lima)',
         'America/Los_Angeles' => 'Pacific Time (Los Angeles)',
         'America/Louisville' => 'Eastern Time (Louisville)',
+        'America/Kentucky/Louisville' => 'Eastern Time (Louisville)',
         'America/Lower_Princes' => 'Atlantic Time (Lower Prince’s Quarter)',
-        'America/Maceio' => 'Brasilia Time (Maceio)',
+        'America/Maceio' => 'Brasilia Time (Maceió)',
         'America/Managua' => 'Central Time (Managua)',
         'America/Manaus' => 'Amazon Time (Manaus)',
         'America/Marigot' => 'Atlantic Time (Marigot)',
         'America/Martinique' => 'Atlantic Time (Martinique)',
         'America/Matamoros' => 'Central Time (Matamoros)',
-        'America/Mazatlan' => 'Mexican Pacific Time (Mazatlan)',
+        'America/Mazatlan' => 'Mexican Pacific Time (Mazatlán)',
         'America/Mendoza' => 'Argentina Time (Mendoza)',
+        'America/Argentina/Mendoza' => 'Argentina Time (Mendoza)',
         'America/Menominee' => 'Central Time (Menominee)',
         'America/Merida' => 'Central Time (Merida)',
         'America/Metlakatla' => 'Alaska Time (Metlakatla)',
-        'America/Mexico_City' => 'Central Time (Mexico City)',
-        'America/Miquelon' => 'St. Pierre & Miquelon Time',
+        'America/Mexico_City' => 'Central Time (Ciudad de México)',
+        'America/Miquelon' => 'St. Pierre & Miquelon Time (Saint-Pierre)',
         'America/Moncton' => 'Atlantic Time (Moncton)',
         'America/Monterrey' => 'Central Time (Monterrey)',
         'America/Montevideo' => 'Uruguay Time (Montevideo)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'Central Time (Regina)',
         'America/Resolute' => 'Central Time (Resolute)',
         'America/Rio_Branco' => 'EBrazil Time (Rio Branco)',
-        'America/Santarem' => 'Brasilia Time (Santarem)',
+        'America/Santarem' => 'Brasilia Time (Santarém)',
         'America/Santiago' => 'Chile Time (Santiago)',
         'America/Santo_Domingo' => 'Atlantic Time (Santo Domingo)',
-        'America/Sao_Paulo' => 'Brasilia Time (Sao Paulo)',
+        'America/Sao_Paulo' => 'Brasilia Time (São Paulo)',
         'America/Scoresbysund' => 'EGreenland Time (Ittoqqortoormiit)',
         'America/Sitka' => 'Alaska Time (Sitka)',
         'America/St_Barthelemy' => 'Atlantic Time (St. Barthélemy)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'New Zealand Time (McMurdo)',
         'Antarctica/Palmer' => 'Chile Time (Palmer)',
         'Antarctica/Rothera' => 'Rothera Time',
-        'Antarctica/Syowa' => 'Syowa Time',
+        'Antarctica/Syowa' => 'Syowa Time (Showa)',
         'Antarctica/Troll' => 'Greenwich Mean Time (Troll)',
         'Antarctica/Vostok' => 'Vostok Time',
         'Arctic/Longyearbyen' => 'Central European Time (Longyearbyen)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Arabian Time (Bahrain)',
         'Asia/Baku' => 'Azerbaijan Time (Baku)',
         'Asia/Bangkok' => 'Indochina Time (Bangkok)',
-        'Asia/Barnaul' => 'ERashiya Time (Barnaul)',
+        'Asia/Barnaul' => 'Krasnoyarsk Time (Barnaul)',
         'Asia/Beirut' => 'Eastern European Time (Beirut)',
         'Asia/Bishkek' => 'Kyrgyzstan Time (Bishkek)',
         'Asia/Brunei' => 'Brunei Darussalam Time',
         'Asia/Calcutta' => 'India Standard Time (Kolkata)',
+        'Asia/Kolkata' => 'India Standard Time (Kolkata)',
         'Asia/Chita' => 'Yakutsk Time (Chita)',
         'Asia/Colombo' => 'India Standard Time (Colombo)',
         'Asia/Damascus' => 'Eastern European Time (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Eastern European Time (Gaza)',
         'Asia/Hebron' => 'Eastern European Time (Hebron)',
         'Asia/Hong_Kong' => 'Hong Kong Time',
-        'Asia/Hovd' => 'Hovd Time',
+        'Asia/Hovd' => 'Hovd Time (Khovd)',
         'Asia/Irkutsk' => 'Irkutsk Time',
         'Asia/Jakarta' => 'Western Indonesia Time (Jakarta)',
         'Asia/Jayapura' => 'Eastern Indonesia Time (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'ERashiya Time (Kamchatka)',
         'Asia/Karachi' => 'Pakistan Time (Karachi)',
         'Asia/Katmandu' => 'Nepal Time (Kathmandu)',
+        'Asia/Kathmandu' => 'Nepal Time (Kathmandu)',
         'Asia/Khandyga' => 'Yakutsk Time (Khandyga)',
         'Asia/Krasnoyarsk' => 'Krasnoyarsk Time',
         'Asia/Kuala_Lumpur' => 'Malaysia Time (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Gulf Standard Time (Muscat)',
         'Asia/Nicosia' => 'Eastern European Time (Nicosia)',
         'Asia/Novokuznetsk' => 'Krasnoyarsk Time (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Novosibirsk Time',
+        'Asia/Novosibirsk' => 'Krasnoyarsk Time (Novosibirsk)',
         'Asia/Omsk' => 'Omsk Time',
         'Asia/Oral' => 'Kazakhstan Time (Oral)',
         'Asia/Phnom_Penh' => 'Indochina Time (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Kazakhstan Time (Kostanay)',
         'Asia/Qyzylorda' => 'Kazakhstan Time (Qyzylorda)',
         'Asia/Rangoon' => 'Myanmar Time (Yangon)',
+        'Asia/Yangon' => 'Myanmar Time (Yangon)',
         'Asia/Riyadh' => 'Arabian Time (Riyadh)',
         'Asia/Saigon' => 'Indochina Time (Ho Chi Minh City)',
-        'Asia/Sakhalin' => 'Sakhalin Time',
+        'Asia/Ho_Chi_Minh' => 'Indochina Time (Ho Chi Minh City)',
+        'Asia/Sakhalin' => 'Magadan Time (Sakhalin)',
         'Asia/Samarkand' => 'Uzbekistan Time (Samarkand)',
         'Asia/Seoul' => 'Korean Time (Seoul)',
         'Asia/Shanghai' => 'China Time (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Iran Time (Tehran)',
         'Asia/Thimphu' => 'Bhutan Time (Thimphu)',
         'Asia/Tokyo' => 'Japan Time (Tokyo)',
-        'Asia/Tomsk' => 'ERashiya Time (Tomsk)',
+        'Asia/Tomsk' => 'Krasnoyarsk Time (Tomsk)',
         'Asia/Ulaanbaatar' => 'Ulaanbaatar Time',
-        'Asia/Urumqi' => 'ETshayina Time (Urumqi)',
+        'Asia/Urumqi' => 'ETshayina Time (Ürümqi)',
         'Asia/Ust-Nera' => 'Vladivostok Time (Ust-Nera)',
         'Asia/Vientiane' => 'Indochina Time (Vientiane)',
         'Asia/Vladivostok' => 'Vladivostok Time',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Armenia Time (Yerevan)',
         'Atlantic/Azores' => 'Azores Time',
         'Atlantic/Bermuda' => 'Atlantic Time (Bermuda)',
-        'Atlantic/Canary' => 'Western European Time (Canary)',
+        'Atlantic/Canary' => 'Western European Time (Canarias)',
         'Atlantic/Cape_Verde' => 'Cape Verde Time',
         'Atlantic/Faeroe' => 'Western European Time (Faroe)',
+        'Atlantic/Faroe' => 'Western European Time (Faroe)',
         'Atlantic/Madeira' => 'Western European Time (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich Mean Time (Reykjavik)',
         'Atlantic/South_Georgia' => 'South Georgia Time',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Coordinated Universal Time',
         'Europe/Amsterdam' => 'Central European Time (Amsterdam)',
         'Europe/Andorra' => 'Central European Time (Andorra)',
-        'Europe/Astrakhan' => 'Moscow Time (Astrakhan)',
+        'Europe/Astrakhan' => 'ERashiya Time (Astrakhan)',
         'Europe/Athens' => 'Eastern European Time (Athens)',
         'Europe/Belgrade' => 'Central European Time (Belgrade)',
         'Europe/Berlin' => 'Central European Time (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Central European Time (Brussels)',
         'Europe/Bucharest' => 'Eastern European Time (Bucharest)',
         'Europe/Budapest' => 'Central European Time (Budapest)',
-        'Europe/Busingen' => 'Central European Time (Busingen)',
-        'Europe/Chisinau' => 'Eastern European Time (Chisinau)',
+        'Europe/Busingen' => 'Central European Time (Büsingen)',
+        'Europe/Chisinau' => 'Eastern European Time (Chișinău)',
         'Europe/Copenhagen' => 'Central European Time (Copenhagen)',
         'Europe/Dublin' => 'Greenwich Mean Time (Dublin)',
         'Europe/Gibraltar' => 'Central European Time (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwich Mean Time (Jersey)',
         'Europe/Kaliningrad' => 'Eastern European Time (Kaliningrad)',
         'Europe/Kiev' => 'Eastern European Time (Kyiv)',
-        'Europe/Kirov' => 'ERashiya Time (Kirov)',
+        'Europe/Kyiv' => 'Eastern European Time (Kyiv)',
+        'Europe/Kirov' => 'Moscow Time (Kirov)',
         'Europe/Lisbon' => 'Western European Time (Lisbon)',
         'Europe/Ljubljana' => 'Central European Time (Ljubljana)',
         'Europe/London' => 'Greenwich Mean Time (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'ERashiya Time (Samara)',
         'Europe/San_Marino' => 'Central European Time (San Marino)',
         'Europe/Sarajevo' => 'Central European Time (Sarajevo)',
-        'Europe/Saratov' => 'Moscow Time (Saratov)',
+        'Europe/Saratov' => 'ERashiya Time (Saratov)',
         'Europe/Simferopol' => 'Moscow Time (Simferopol)',
         'Europe/Skopje' => 'Central European Time (Skopje)',
         'Europe/Sofia' => 'Eastern European Time (Sofia)',
         'Europe/Stockholm' => 'Central European Time (Stockholm)',
         'Europe/Tallinn' => 'Eastern European Time (Tallinn)',
-        'Europe/Tirane' => 'Central European Time (Tirane)',
-        'Europe/Ulyanovsk' => 'Moscow Time (Ulyanovsk)',
+        'Europe/Tirane' => 'Central European Time (Tirana)',
+        'Europe/Ulyanovsk' => 'ERashiya Time (Ulyanovsk)',
         'Europe/Vaduz' => 'Central European Time (Vaduz)',
         'Europe/Vatican' => 'Central European Time (Vatican)',
         'Europe/Vienna' => 'Central European Time (Vienna)',
         'Europe/Vilnius' => 'Eastern European Time (Vilnius)',
-        'Europe/Volgograd' => 'Volgograd Time',
+        'Europe/Volgograd' => 'Moscow Time (Volgograd)',
         'Europe/Warsaw' => 'Central European Time (Warsaw)',
         'Europe/Zagreb' => 'Central European Time (Zagreb)',
         'Europe/Zurich' => 'Central European Time (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Indian Ocean Time (Chagos)',
         'Indian/Christmas' => 'Christmas Island Time',
         'Indian/Cocos' => 'Cocos Islands Time',
-        'Indian/Comoro' => 'East Africa Time (Comoro)',
+        'Indian/Comoro' => 'East Africa Time (Comores)',
         'Indian/Kerguelen' => 'French Southern & Antarctic Time (Kerguelen)',
-        'Indian/Mahe' => 'Seychelles Time (Mahe)',
+        'Indian/Mahe' => 'Seychelles Time (Mahé)',
         'Indian/Maldives' => 'Maldives Time',
         'Indian/Mauritius' => 'Mauritius Time',
         'Indian/Mayotte' => 'East Africa Time (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Chatham Time',
         'Pacific/Easter' => 'Easter Island Time',
         'Pacific/Efate' => 'Vanuatu Time (Efate)',
-        'Pacific/Enderbury' => 'Phoenix Islands Time (Enderbury)',
+        'Pacific/Enderbury' => 'Phoenix Islands Time (ICanton Island)',
+        'Pacific/Kanton' => 'Phoenix Islands Time (ICanton Island)',
         'Pacific/Fakaofo' => 'Tokelau Time (Fakaofo)',
         'Pacific/Fiji' => 'Fiji Time',
         'Pacific/Funafuti' => 'Tuvalu Time (Funafuti)',
-        'Pacific/Galapagos' => 'Galapagos Time',
+        'Pacific/Galapagos' => 'Galapagos Time (Galápagos)',
         'Pacific/Gambier' => 'Gambier Time',
         'Pacific/Guadalcanal' => 'Solomon Islands Time (Guadalcanal)',
         'Pacific/Guam' => 'Chamorro Standard Time (Guam)',
-        'Pacific/Honolulu' => 'Hawaii-Aleutian Time (Honolulu)',
+        'Pacific/Honolulu' => 'Hawaii-Aleutian Standard Time (Honolulu)',
         'Pacific/Kiritimati' => 'Line Islands Time (Kiritimati)',
         'Pacific/Kosrae' => 'Kosrae Time',
         'Pacific/Kwajalein' => 'Marshall Islands Time (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Nauru Time',
         'Pacific/Niue' => 'Niue Time',
         'Pacific/Norfolk' => 'Norfolk Island Time',
-        'Pacific/Noumea' => 'New Caledonia Time (Noumea)',
+        'Pacific/Noumea' => 'New Caledonia Time (Nouméa)',
         'Pacific/Pago_Pago' => 'Samoa Time (Pago Pago)',
         'Pacific/Palau' => 'Palau Time',
         'Pacific/Pitcairn' => 'Pitcairn Time',
         'Pacific/Ponape' => 'Ponape Time (Pohnpei)',
+        'Pacific/Pohnpei' => 'Ponape Time (Pohnpei)',
         'Pacific/Port_Moresby' => 'Papua New Guinea Time (Port Moresby)',
         'Pacific/Rarotonga' => 'Cook Islands Time (Rarotonga)',
         'Pacific/Saipan' => 'Chamorro Standard Time (Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Gilbert Islands Time (Tarawa)',
         'Pacific/Tongatapu' => 'Tonga Time (Tongatapu)',
         'Pacific/Truk' => 'Chuuk Time',
+        'Pacific/Chuuk' => 'Chuuk Time',
         'Pacific/Wake' => 'Wake Island Time',
         'Pacific/Wallis' => 'Wallis & Futuna Time',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yi.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,6 +6,7 @@
         'Africa/Accra' => 'גהאַנע (Accra)',
         'Africa/Addis_Ababa' => 'עטיאפּיע (Addis Ababa)',
         'Africa/Asmera' => 'עריטרעע (אַסמאַראַ)',
+        'Africa/Asmara' => 'עריטרעע (אַסמאַראַ)',
         'Africa/Bamako' => 'מאַלי (Bamako)',
         'Africa/Bangui' => 'צענטראַל־אַפֿריקאַנישע רעפּובליק (Bangui)',
         'Africa/Banjul' => 'גאַמביע (Banjul)',
@@ -31,7 +32,7 @@
         'Africa/Kinshasa' => 'קאנגא־קינשאַזע (Kinshasa)',
         'Africa/Lagos' => 'ניגעריע (Lagos)',
         'Africa/Libreville' => 'גאַבאן (Libreville)',
-        'Africa/Lome' => 'טאגא (Lome)',
+        'Africa/Lome' => 'טאגא (Lomé)',
         'Africa/Luanda' => 'אַנגאלע (Luanda)',
         'Africa/Lubumbashi' => 'קאנגא־קינשאַזע (Lubumbashi)',
         'Africa/Lusaka' => 'זאַמביע (Lusaka)',
@@ -42,7 +43,7 @@
         'Africa/Mogadishu' => 'סאמאַליע (Mogadishu)',
         'Africa/Monrovia' => 'ליבעריע (Monrovia)',
         'Africa/Nairobi' => 'קעניע (Nairobi)',
-        'Africa/Ndjamena' => 'טשאַד (Ndjamena)',
+        'Africa/Ndjamena' => 'טשאַד (N’Djamena)',
         'Africa/Niamey' => 'ניזשער (Niamey)',
         'Africa/Nouakchott' => 'מאַריטאַניע (Nouakchott)',
         'Africa/Ouagadougou' => 'בורקינע פֿאַסא (Ouagadougou)',
@@ -54,41 +55,46 @@
         'America/Adak' => 'פֿאַראייניגטע שטאַטן (Adak)',
         'America/Anchorage' => 'פֿאַראייניגטע שטאַטן (Anchorage)',
         'America/Antigua' => 'אַנטיגוע און באַרבודע (Antigua)',
-        'America/Araguaina' => 'בראַזיל (Araguaina)',
+        'America/Araguaina' => 'בראַזיל (Araguaína)',
         'America/Argentina/La_Rioja' => 'אַרגענטינע (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'אַרגענטינע (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'אַרגענטינע (Río Gallegos)',
         'America/Argentina/Salta' => 'אַרגענטינע (Salta)',
         'America/Argentina/San_Juan' => 'אַרגענטינע (San Juan)',
         'America/Argentina/San_Luis' => 'אַרגענטינע (San Luis)',
-        'America/Argentina/Tucuman' => 'אַרגענטינע (Tucuman)',
+        'America/Argentina/Tucuman' => 'אַרגענטינע (Tucumán)',
         'America/Argentina/Ushuaia' => 'אַרגענטינע (Ushuaia)',
         'America/Aruba' => 'אַרובאַ (Aruba)',
         'America/Asuncion' => 'פּאַראַגווײַ (Asunción)',
         'America/Bahia' => 'בראַזיל (Bahia)',
         'America/Bahia_Banderas' => 'מעקסיקע (Bahía de Banderas)',
         'America/Barbados' => 'באַרבאַדאס (Barbados)',
-        'America/Belem' => 'בראַזיל (Belem)',
+        'America/Belem' => 'בראַזיל (Belém)',
         'America/Belize' => 'בעליז (Belize)',
         'America/Blanc-Sablon' => 'קאַנאַדע (Blanc-Sablon)',
         'America/Boa_Vista' => 'בראַזיל (Boa Vista)',
-        'America/Bogota' => 'קאלאמביע (Bogota)',
+        'America/Bogota' => 'קאלאמביע (Bogotá)',
         'America/Boise' => 'פֿאַראייניגטע שטאַטן (Boise)',
         'America/Buenos_Aires' => 'אַרגענטינע (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'אַרגענטינע (Buenos Aires)',
         'America/Cambridge_Bay' => 'קאַנאַדע (Cambridge Bay)',
         'America/Campo_Grande' => 'בראַזיל (Campo Grande)',
         'America/Cancun' => 'מעקסיקע (Cancún)',
         'America/Caracas' => 'ווענעזועלע (Caracas)',
         'America/Catamarca' => 'אַרגענטינע (Catamarca)',
+        'America/Argentina/Catamarca' => 'אַרגענטינע (Catamarca)',
         'America/Cayenne' => 'פֿראַנצויזישע גויאַנע (Cayenne)',
         'America/Cayman' => 'קיימאַן אינזלען (Cayman)',
         'America/Chicago' => 'פֿאַראייניגטע שטאַטן (Chicago)',
         'America/Chihuahua' => 'מעקסיקע (Chihuahua)',
         'America/Ciudad_Juarez' => 'מעקסיקע (Ciudad Juárez)',
         'America/Coral_Harbour' => 'קאַנאַדע (Atikokan)',
-        'America/Cordoba' => 'אַרגענטינע (Cordoba)',
+        'America/Atikokan' => 'קאַנאַדע (Atikokan)',
+        'America/Cordoba' => 'אַרגענטינע (Córdoba)',
+        'America/Argentina/Cordoba' => 'אַרגענטינע (Córdoba)',
         'America/Costa_Rica' => 'קאסטאַ ריקאַ (Costa Rica)',
+        'America/Coyhaique' => 'טשילע (Coyhaique)',
         'America/Creston' => 'קאַנאַדע (Creston)',
-        'America/Cuiaba' => 'בראַזיל (Cuiaba)',
+        'America/Cuiaba' => 'בראַזיל (Cuiabá)',
         'America/Curacao' => 'קוראַסאַא (Curaçao)',
         'America/Danmarkshavn' => 'גרינלאַנד (Danmarkshavn)',
         'America/Dawson' => 'קאַנאַדע (Dawson)',
@@ -97,12 +103,13 @@
         'America/Detroit' => 'פֿאַראייניגטע שטאַטן (Detroit)',
         'America/Dominica' => 'דאמיניקע (Dominica)',
         'America/Edmonton' => 'קאַנאַדע (Edmonton)',
-        'America/Eirunepe' => 'בראַזיל (Eirunepe)',
+        'America/Eirunepe' => 'בראַזיל (Eirunepé)',
         'America/El_Salvador' => 'על סאַלוואַדאר (El Salvador)',
         'America/Fort_Nelson' => 'קאַנאַדע (Fort Nelson)',
         'America/Fortaleza' => 'בראַזיל (Fortaleza)',
         'America/Glace_Bay' => 'קאַנאַדע (Glace Bay)',
         'America/Godthab' => 'גרינלאַנד (Nuuk)',
+        'America/Nuuk' => 'גרינלאַנד (Nuuk)',
         'America/Goose_Bay' => 'קאַנאַדע (Goose Bay)',
         'America/Grenada' => 'גרענאַדאַ (Grenada)',
         'America/Guadeloupe' => 'גוואַדעלופ (Guadeloupe)',
@@ -120,27 +127,31 @@
         'America/Indiana/Vincennes' => 'פֿאַראייניגטע שטאַטן (Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'פֿאַראייניגטע שטאַטן (Winamac, Indiana)',
         'America/Indianapolis' => 'פֿאַראייניגטע שטאַטן (Indianapolis)',
+        'America/Indiana/Indianapolis' => 'פֿאַראייניגטע שטאַטן (Indianapolis)',
         'America/Inuvik' => 'קאַנאַדע (Inuvik)',
         'America/Iqaluit' => 'קאַנאַדע (Iqaluit)',
         'America/Jamaica' => 'דזשאַמייקע (Jamaica)',
         'America/Jujuy' => 'אַרגענטינע (Jujuy)',
+        'America/Argentina/Jujuy' => 'אַרגענטינע (Jujuy)',
         'America/Juneau' => 'פֿאַראייניגטע שטאַטן (Juneau)',
         'America/Kentucky/Monticello' => 'פֿאַראייניגטע שטאַטן (Monticello, Kentucky)',
         'America/La_Paz' => 'באליוויע (La Paz)',
         'America/Lima' => 'פּערו (Lima)',
         'America/Los_Angeles' => 'פֿאַראייניגטע שטאַטן (Los Angeles)',
         'America/Louisville' => 'פֿאַראייניגטע שטאַטן (Louisville)',
-        'America/Maceio' => 'בראַזיל (Maceio)',
+        'America/Kentucky/Louisville' => 'פֿאַראייניגטע שטאַטן (Louisville)',
+        'America/Maceio' => 'בראַזיל (Maceió)',
         'America/Managua' => 'ניקאַראַגוע (Managua)',
         'America/Manaus' => 'בראַזיל (Manaus)',
         'America/Martinique' => 'מאַרטיניק (Martinique)',
         'America/Matamoros' => 'מעקסיקע (Matamoros)',
-        'America/Mazatlan' => 'מעקסיקע (Mazatlan)',
+        'America/Mazatlan' => 'מעקסיקע (Mazatlán)',
         'America/Mendoza' => 'אַרגענטינע (Mendoza)',
+        'America/Argentina/Mendoza' => 'אַרגענטינע (Mendoza)',
         'America/Menominee' => 'פֿאַראייניגטע שטאַטן (Menominee)',
         'America/Merida' => 'מעקסיקע (Mérida)',
         'America/Metlakatla' => 'פֿאַראייניגטע שטאַטן (Metlakatla)',
-        'America/Mexico_City' => 'מעקסיקע (Mexico City)',
+        'America/Mexico_City' => 'מעקסיקע (Ciudad de México)',
         'America/Moncton' => 'קאַנאַדע (Moncton)',
         'America/Monterrey' => 'מעקסיקע (Monterrey)',
         'America/Montevideo' => 'אורוגוויי (Montevideo)',
@@ -166,10 +177,10 @@
         'America/Regina' => 'קאַנאַדע (Regina)',
         'America/Resolute' => 'קאַנאַדע (Resolute)',
         'America/Rio_Branco' => 'בראַזיל (Rio Branco)',
-        'America/Santarem' => 'בראַזיל (Santarem)',
+        'America/Santarem' => 'בראַזיל (Santarém)',
         'America/Santiago' => 'טשילע (Santiago)',
         'America/Santo_Domingo' => 'דאמיניקאַנישע רעפּובליק (Santo Domingo)',
-        'America/Sao_Paulo' => 'בראַזיל (Sao Paulo)',
+        'America/Sao_Paulo' => 'בראַזיל (São Paulo)',
         'America/Scoresbysund' => 'גרינלאַנד (Ittoqqortoormiit)',
         'America/Sitka' => 'פֿאַראייניגטע שטאַטן (Sitka)',
         'America/St_Johns' => 'קאַנאַדע (St. John’s)',
@@ -190,7 +201,7 @@
         'Antarctica/McMurdo' => 'אַנטאַרקטיקע (McMurdo)',
         'Antarctica/Palmer' => 'אַנטאַרקטיקע (Palmer)',
         'Antarctica/Rothera' => 'אַנטאַרקטיקע (Rothera)',
-        'Antarctica/Syowa' => 'אַנטאַרקטיקע (Syowa)',
+        'Antarctica/Syowa' => 'אַנטאַרקטיקע (Showa)',
         'Antarctica/Troll' => 'Troll',
         'Antarctica/Vostok' => 'אַנטאַרקטיקע (Vostok)',
         'Asia/Aden' => 'תימן (Aden)',
@@ -201,12 +212,13 @@
         'Asia/Beirut' => 'לבנון (Beirut)',
         'Asia/Brunei' => 'ברוניי (Brunei)',
         'Asia/Calcutta' => 'אינדיע (Kolkata)',
+        'Asia/Kolkata' => 'אינדיע (Kolkata)',
         'Asia/Chita' => 'רוסלאַנד (Chita)',
         'Asia/Colombo' => 'סרי־לאַנקאַ (Colombo)',
         'Asia/Damascus' => 'סיריע (Damascus)',
         'Asia/Dhaka' => 'באַנגלאַדעש (Dhaka)',
         'Asia/Dili' => 'מזרח טימאר (Dili)',
-        'Asia/Hovd' => 'מאנגאליי (Hovd)',
+        'Asia/Hovd' => 'מאנגאליי (Khovd)',
         'Asia/Irkutsk' => 'רוסלאַנד (Irkutsk)',
         'Asia/Jakarta' => 'אינדאנעזיע (Jakarta)',
         'Asia/Jayapura' => 'אינדאנעזיע (Jayapura)',
@@ -215,6 +227,7 @@
         'Asia/Kamchatka' => 'רוסלאַנד (Kamchatka)',
         'Asia/Karachi' => 'פּאַקיסטאַן (Karachi)',
         'Asia/Katmandu' => 'נעפּאַל (Kathmandu)',
+        'Asia/Kathmandu' => 'נעפּאַל (Kathmandu)',
         'Asia/Khandyga' => 'רוסלאַנד (Khandyga)',
         'Asia/Krasnoyarsk' => 'רוסלאַנד (Krasnoyarsk)',
         'Asia/Kuala_Lumpur' => 'מאַלייזיע (Kuala Lumpur)',
@@ -229,7 +242,9 @@
         'Asia/Pontianak' => 'אינדאנעזיע (Pontianak)',
         'Asia/Qatar' => 'קאַטאַר (Qatar)',
         'Asia/Rangoon' => 'מיאַנמאַר (Yangon)',
+        'Asia/Yangon' => 'מיאַנמאַר (Yangon)',
         'Asia/Saigon' => 'וויעטנאַם (הא טשי מין שטאָט)',
+        'Asia/Ho_Chi_Minh' => 'וויעטנאַם (הא טשי מין שטאָט)',
         'Asia/Sakhalin' => 'רוסלאַנד (Sakhalin)',
         'Asia/Shanghai' => 'כינע (Shanghai)',
         'Asia/Singapore' => 'סינגאַפּור (Singapore)',
@@ -240,7 +255,7 @@
         'Asia/Tokyo' => 'יאַפּאַן (Tokyo)',
         'Asia/Tomsk' => 'רוסלאַנד (Tomsk)',
         'Asia/Ulaanbaatar' => 'מאנגאליי (Ulaanbaatar)',
-        'Asia/Urumqi' => 'כינע (Urumqi)',
+        'Asia/Urumqi' => 'כינע (Ürümqi)',
         'Asia/Ust-Nera' => 'רוסלאַנד (Ust-Nera)',
         'Asia/Vientiane' => 'לאַאס (Vientiane)',
         'Asia/Vladivostok' => 'רוסלאַנד (Vladivostok)',
@@ -249,9 +264,10 @@
         'Asia/Yerevan' => 'אַרמעניע (Yerevan)',
         'Atlantic/Azores' => 'פּארטוגאַל (Azores)',
         'Atlantic/Bermuda' => 'בערמודע (Bermuda)',
-        'Atlantic/Canary' => 'שפּאַניע (Canary)',
+        'Atlantic/Canary' => 'שפּאַניע (Canarias)',
         'Atlantic/Cape_Verde' => 'קאַפּווערדישע אינזלען (Cape Verde)',
         'Atlantic/Faeroe' => 'פֿאַרא אינזלען (Faroe)',
+        'Atlantic/Faroe' => 'פֿאַרא אינזלען (Faroe)',
         'Atlantic/Madeira' => 'פּארטוגאַל (Madeira)',
         'Atlantic/Reykjavik' => 'איסלאַנד (Reykjavik)',
         'Atlantic/St_Helena' => 'סט העלענע (St. Helena)',
@@ -277,8 +293,8 @@
         'Europe/Brussels' => 'בעלגיע (Brussels)',
         'Europe/Bucharest' => 'רומעניע (Bucharest)',
         'Europe/Budapest' => 'אונגערן (Budapest)',
-        'Europe/Busingen' => 'דייטשלאַנד (Busingen)',
-        'Europe/Chisinau' => 'מאלדאווע (Chisinau)',
+        'Europe/Busingen' => 'דייטשלאַנד (Büsingen)',
+        'Europe/Chisinau' => 'מאלדאווע (Chișinău)',
         'Europe/Copenhagen' => 'דענמאַרק (Copenhagen)',
         'Europe/Dublin' => 'אירלאַנד (Dublin)',
         'Europe/Gibraltar' => 'גיבראַלטאַר (Gibraltar)',
@@ -288,6 +304,7 @@
         'Europe/Jersey' => 'דזשערזי (Jersey)',
         'Europe/Kaliningrad' => 'רוסלאַנד (Kaliningrad)',
         'Europe/Kiev' => 'אוקראַינע (Kyiv)',
+        'Europe/Kyiv' => 'אוקראַינע (Kyiv)',
         'Europe/Kirov' => 'רוסלאַנד (Kirov)',
         'Europe/Lisbon' => 'פּארטוגאַל (Lisbon)',
         'Europe/Ljubljana' => 'סלאוועניע (Ljubljana)',
@@ -312,7 +329,7 @@
         'Europe/Sofia' => 'בולגאַריע (Sofia)',
         'Europe/Stockholm' => 'שוועדן (Stockholm)',
         'Europe/Tallinn' => 'עסטלאַנד (Tallinn)',
-        'Europe/Tirane' => 'אַלבאַניע (Tirane)',
+        'Europe/Tirane' => 'אַלבאַניע (Tirana)',
         'Europe/Ulyanovsk' => 'רוסלאַנד (Ulyanovsk)',
         'Europe/Vaduz' => 'ליכטנשטיין (Vaduz)',
         'Europe/Vatican' => 'וואַטיקאַן שטאָט (Vatican)',
@@ -323,8 +340,8 @@
         'Europe/Zagreb' => 'קראאַטיע (Zagreb)',
         'Europe/Zurich' => 'שווייץ (Zurich)',
         'Indian/Antananarivo' => 'מאַדאַגאַסקאַר (Antananarivo)',
-        'Indian/Comoro' => 'קאמאראס (Comoro)',
-        'Indian/Mahe' => 'סיישעל (Mahe)',
+        'Indian/Comoro' => 'קאמאראס (Comores)',
+        'Indian/Mahe' => 'סיישעל (Mahé)',
         'Indian/Maldives' => 'מאַלדיוון (Maldives)',
         'Indian/Mauritius' => 'מאריציוס (Mauritius)',
         'Indian/Mayotte' => 'מאַיאט (Mayotte)',
@@ -335,10 +352,11 @@
         'Pacific/Chatham' => 'ניו זילאַנד (Chatham)',
         'Pacific/Easter' => 'טשילע (Easter)',
         'Pacific/Efate' => 'וואַנואַטו (Efate)',
-        'Pacific/Enderbury' => 'קיריבאַטי (Enderbury)',
+        'Pacific/Enderbury' => 'קיריבאַטי (Canton)',
+        'Pacific/Kanton' => 'קיריבאַטי (Canton)',
         'Pacific/Fiji' => 'פֿידזשי (Fiji)',
         'Pacific/Funafuti' => 'טואוואַלו (Funafuti)',
-        'Pacific/Galapagos' => 'עקוואַדאר (Galapagos)',
+        'Pacific/Galapagos' => 'עקוואַדאר (Galápagos)',
         'Pacific/Gambier' => 'פֿראַנצויזישע פּאלינעזיע (Gambier)',
         'Pacific/Guadalcanal' => 'סאלאמאן אינזלען (Guadalcanal)',
         'Pacific/Guam' => 'גוואַם (Guam)',
@@ -349,15 +367,17 @@
         'Pacific/Majuro' => 'מאַרשאַל אינזלען (Majuro)',
         'Pacific/Marquesas' => 'פֿראַנצויזישע פּאלינעזיע (Marquesas)',
         'Pacific/Norfolk' => 'נארפֿאלק אינזל (Norfolk)',
-        'Pacific/Noumea' => 'נײַ קאַלעדאניע (Noumea)',
+        'Pacific/Noumea' => 'נײַ קאַלעדאניע (Nouméa)',
         'Pacific/Pitcairn' => 'פּיטקערן אינזלען (Pitcairn)',
         'Pacific/Ponape' => 'מיקראנעזיע (Pohnpei)',
+        'Pacific/Pohnpei' => 'מיקראנעזיע (Pohnpei)',
         'Pacific/Port_Moresby' => 'פּאַפּואַ נײַ גינע (Port Moresby)',
         'Pacific/Rarotonga' => 'קוק אינזלען (Rarotonga)',
         'Pacific/Tahiti' => 'פֿראַנצויזישע פּאלינעזיע (Tahiti)',
         'Pacific/Tarawa' => 'קיריבאַטי (Tarawa)',
         'Pacific/Tongatapu' => 'טאנגאַ (Tongatapu)',
         'Pacific/Truk' => 'מיקראנעזיע (Chuuk)',
+        'Pacific/Chuuk' => 'מיקראנעזיע (Chuuk)',
     ],
     'Meta' => [],
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yo_BJ.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yo_BJ.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yo_BJ.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yo_BJ.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,22 +6,22 @@
         'Africa/Brazzaville' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (Brazzaville)',
         'Africa/Casablanca' => 'Àkókò Ìwɔ Oòrùn Europe (Casablanca)',
         'Africa/Douala' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (Douala)',
-        'Africa/El_Aaiun' => 'Àkókò Ìwɔ Oòrùn Europe (El Aaiun)',
+        'Africa/El_Aaiun' => 'Àkókò Ìwɔ Oòrùn Europe (El Aaiún)',
         'Africa/Kinshasa' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (Kinshasa)',
         'Africa/Lagos' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (Lagos)',
         'Africa/Libreville' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (Libreville)',
         'Africa/Luanda' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (Luanda)',
         'Africa/Malabo' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (Malabo)',
-        'Africa/Ndjamena' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (Ndjamena)',
+        'Africa/Ndjamena' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (N’Djamena)',
         'Africa/Niamey' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (Niamey)',
         'Africa/Porto-Novo' => 'Àkókò Ìwɔ̀-Oòrùn Afírikà (Porto-Novo)',
         'America/Anchorage' => 'Àkókò Alásíkà (ìlú Ankɔ́réèjì)',
         'America/Argentina/La_Rioja' => 'Aago Ajɛntìnà (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Aago Ajɛntìnà (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Aago Ajɛntìnà (Río Gallegos)',
         'America/Argentina/Salta' => 'Aago Ajɛntìnà (Salta)',
         'America/Argentina/San_Juan' => 'Aago Ajɛntìnà (San Juan)',
         'America/Argentina/San_Luis' => 'Aago Ajɛntìnà (San Luis)',
-        'America/Argentina/Tucuman' => 'Aago Ajɛntìnà (Tucuman)',
+        'America/Argentina/Tucuman' => 'Aago Ajɛntìnà (Tucumán)',
         'America/Argentina/Ushuaia' => 'Aago Ajɛntìnà (Ushuaia)',
         'America/Bahia_Banderas' => 'àkókò àárín gbùngbùn (ìlú Báhì Bándɛ́rásì)',
         'America/Barbados' => 'Àkókò Àtìláńtíìkì (ìlú Bábádɔ́ɔ̀sì)',
@@ -30,25 +30,32 @@
         'America/Boa_Vista' => 'Àkókò Amásɔ́nì (Boa Vista)',
         'America/Boise' => 'Àkókò òkè (ìlú Bɔ́isè)',
         'America/Buenos_Aires' => 'Aago Ajɛntìnà (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Aago Ajɛntìnà (Buenos Aires)',
         'America/Campo_Grande' => 'Àkókò Amásɔ́nì (Campo Grande)',
         'America/Catamarca' => 'Aago Ajɛntìnà (Catamarca)',
+        'America/Argentina/Catamarca' => 'Aago Ajɛntìnà (Catamarca)',
         'America/Chihuahua' => 'àkókò àárín gbùngbùn (ìlú Shihuahua)',
         'America/Coral_Harbour' => 'Àkókò ìhà ìlà oòrùn (ìlú àtikɔkàn)',
-        'America/Cordoba' => 'Aago Ajɛntìnà (Cordoba)',
+        'America/Atikokan' => 'Àkókò ìhà ìlà oòrùn (ìlú àtikɔkàn)',
+        'America/Cordoba' => 'Aago Ajɛntìnà (Córdoba)',
+        'America/Argentina/Cordoba' => 'Aago Ajɛntìnà (Córdoba)',
+        'America/Coyhaique' => 'Àkókò Shílè (Coyhaique)',
         'America/Creston' => 'Àkókò òkè (ìlú Kírɛstɔ́ɔ̀nù)',
-        'America/Cuiaba' => 'Àkókò Amásɔ́nì (Cuiaba)',
+        'America/Cuiaba' => 'Àkókò Amásɔ́nì (Cuiabá)',
         'America/Curacao' => 'Àkókò Àtìláńtíìkì (ìlú Kurashao)',
         'America/Dawson' => 'Àkókò Yúkɔ́nì (ìlú Dawson)',
         'America/Hermosillo' => 'Àkókò Pásífíìkì Mɛ́shíkò (ìlú Hermosilo)',
         'America/Indiana/Knox' => 'àkókò àárín gbùngbùn (ìlú nɔ́sì)',
         'America/Indiana/Marengo' => 'Àkókò ìhà ìlà oòrùn (ìlú Marɛ́ngo)',
         'America/Jujuy' => 'Aago Ajɛntìnà (Jujuy)',
+        'America/Argentina/Jujuy' => 'Aago Ajɛntìnà (Jujuy)',
         'America/Kentucky/Monticello' => 'Àkókò ìhà ìlà oòrùn (ìlú Montisɛ́lò)',
         'America/Kralendijk' => 'Àkókò Àtìláńtíìkì (ìlú Kíralɛ́ndáikì)',
         'America/Manaus' => 'Àkókò Amásɔ́nì (Manaus)',
         'America/Marigot' => 'Àkókò Àtìláńtíìkì (ìlú Marigɔ́ɔ̀tì)',
         'America/Mazatlan' => 'Àkókò Pásífíìkì Mɛ́shíkò (ìlú Masatiani)',
         'America/Mendoza' => 'Aago Ajɛntìnà (Mendoza)',
+        'America/Argentina/Mendoza' => 'Aago Ajɛntìnà (Mendoza)',
         'America/Mexico_City' => 'àkókò àárín gbùngbùn (ìlú Mɛ́síkò)',
         'America/Miquelon' => 'Àkókò Pierre & Miquelon (ìlú Mikulɔ́nì)',
         'America/Porto_Velho' => 'Àkókò Amásɔ́nì (Porto Velho)',
@@ -61,8 +68,8 @@
         'Antarctica/Casey' => 'Àkókò Ìwɔ̀-Oòrùn Australia (Casey)',
         'Antarctica/Palmer' => 'Àkókò Shílè (Palmer)',
         'Asia/Anadyr' => 'Ìgbà Rɔshia (Anadyr)',
-        'Asia/Barnaul' => 'Ìgbà Rɔshia (Barnaul)',
         'Asia/Calcutta' => 'Àkókò Àfɛnukò India (Kolkata)',
+        'Asia/Kolkata' => 'Àkókò Àfɛnukò India (Kolkata)',
         'Asia/Colombo' => 'Àkókò Àfɛnukò India (Colombo)',
         'Asia/Dubai' => 'Àkókò Àfɛnukò Gulf (Dubai)',
         'Asia/Jakarta' => 'Àkókò Ìwɔ̀ oorùn Indonesia (Jakarta)',
@@ -72,28 +79,32 @@
         'Asia/Pontianak' => 'Àkókò Ìwɔ̀ oorùn Indonesia (Pontianak)',
         'Asia/Shanghai' => 'Àkókò Sháínà (Shanghai)',
         'Asia/Singapore' => 'Àkókò Àfɛnukò Singapore',
-        'Asia/Tomsk' => 'Ìgbà Rɔshia (Tomsk)',
-        'Asia/Urumqi' => 'Ìgbà Sháínà (Urumqi)',
+        'Asia/Urumqi' => 'Ìgbà Sháínà (Ürümqi)',
         'Atlantic/Azores' => 'Àkókò Ásɔ́sì (Azores)',
         'Atlantic/Bermuda' => 'Àkókò Àtìláńtíìkì (ìlú Bɛ̀múdà)',
-        'Atlantic/Canary' => 'Àkókò Ìwɔ Oòrùn Europe (Canary)',
+        'Atlantic/Canary' => 'Àkókò Ìwɔ Oòrùn Europe (Canarias)',
         'Atlantic/Faeroe' => 'Àkókò Ìwɔ Oòrùn Europe (Faroe)',
+        'Atlantic/Faroe' => 'Àkókò Ìwɔ Oòrùn Europe (Faroe)',
         'Atlantic/Madeira' => 'Àkókò Ìwɔ Oòrùn Europe (Madeira)',
         'Atlantic/South_Georgia' => 'Àkókò Gúsù Jɔ́jíà (South Georgia)',
         'Australia/Eucla' => 'Àkókò Ààrin Gùngùn Ìwɔ̀-Oòrùn Australia (Eucla)',
         'Australia/Perth' => 'Àkókò Ìwɔ̀-Oòrùn Australia (Perth)',
         'Etc/UTC' => 'Àpapɔ̀ Àkókò Àgbáyé',
+        'Europe/Astrakhan' => 'Ìgbà Rɔshia (Astrakhan)',
         'Europe/Istanbul' => 'Ìgbà Tɔɔki (Istanbul)',
-        'Europe/Kirov' => 'Ìgbà Rɔshia (Kirov)',
         'Europe/Lisbon' => 'Àkókò Ìwɔ Oòrùn Europe (Lisbon)',
         'Europe/Samara' => 'Ìgbà Rɔshia (Samara)',
+        'Europe/Saratov' => 'Ìgbà Rɔshia (Saratov)',
+        'Europe/Ulyanovsk' => 'Ìgbà Rɔshia (Ulyanovsk)',
         'Indian/Cocos' => 'Àkókò Àwɔn Erékùsù Cocos',
-        'Indian/Mahe' => 'Àkókò Sèshɛ́ɛ̀lì (Mahe)',
+        'Indian/Mahe' => 'Àkókò Sèshɛ́ɛ̀lì (Mahé)',
         'Indian/Mauritius' => 'Àkókò Máríshúshì (Mauritius)',
         'Indian/Reunion' => 'Àkókò Rɛ́yúníɔ́nì (Réunion)',
-        'Pacific/Enderbury' => 'Àkókò Àwɔn Erékùsù Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Àkókò Àwɔn Erékùsù Phoenix (Canton)',
+        'Pacific/Kanton' => 'Àkókò Àwɔn Erékùsù Phoenix (Canton)',
         'Pacific/Guadalcanal' => 'Àkókò Àwɔn Erekusu Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Àkókò Àfɛnukò Chamorro (Guam)',
+        'Pacific/Honolulu' => 'Àkókò Àfɛnukò Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Àkókò Àwɔn Erekusu Laini (Kiritimati)',
         'Pacific/Kwajalein' => 'Àkókò Àwɔn Erekusu Masaali (Kwajalein)',
         'Pacific/Majuro' => 'Àkókò Àwɔn Erekusu Masaali (Majuro)',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/yo.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Àkókò Ìlà-Oòrùn Afírikà (Addis Ababa)',
         'Africa/Algiers' => 'Àkókò Àárin Europe (Algiers)',
         'Africa/Asmera' => 'Àkókò Ìlà-Oòrùn Afírikà (Asmara)',
+        'Africa/Asmara' => 'Àkókò Ìlà-Oòrùn Afírikà (Asmara)',
         'Africa/Bamako' => 'Greenwich Mean Time (Bamako)',
         'Africa/Bangui' => 'Àkókò Ìwọ̀-Oòrùn Afírikà (Bangui)',
         'Africa/Banjul' => 'Greenwich Mean Time (Banjul)',
@@ -22,7 +23,7 @@
         'Africa/Dar_es_Salaam' => 'Àkókò Ìlà-Oòrùn Afírikà (Dar es Salaam)',
         'Africa/Djibouti' => 'Àkókò Ìlà-Oòrùn Afírikà (Djibouti)',
         'Africa/Douala' => 'Àkókò Ìwọ̀-Oòrùn Afírikà (Douala)',
-        'Africa/El_Aaiun' => 'Àkókò Ìwọ Oòrùn Europe (El Aaiun)',
+        'Africa/El_Aaiun' => 'Àkókò Ìwọ Oòrùn Europe (El Aaiún)',
         'Africa/Freetown' => 'Greenwich Mean Time (Freetown)',
         'Africa/Gaborone' => 'Àkókò Àárín Afírikà (Gaborone)',
         'Africa/Harare' => 'Àkókò Àárín Afírikà (Harare)',
@@ -34,7 +35,7 @@
         'Africa/Kinshasa' => 'Àkókò Ìwọ̀-Oòrùn Afírikà (Kinshasa)',
         'Africa/Lagos' => 'Àkókò Ìwọ̀-Oòrùn Afírikà (Lagos)',
         'Africa/Libreville' => 'Àkókò Ìwọ̀-Oòrùn Afírikà (Libreville)',
-        'Africa/Lome' => 'Greenwich Mean Time (Lome)',
+        'Africa/Lome' => 'Greenwich Mean Time (Lomé)',
         'Africa/Luanda' => 'Àkókò Ìwọ̀-Oòrùn Afírikà (Luanda)',
         'Africa/Lubumbashi' => 'Àkókò Àárín Afírikà (Lubumbashi)',
         'Africa/Lusaka' => 'Àkókò Àárín Afírikà (Lusaka)',
@@ -45,7 +46,7 @@
         'Africa/Mogadishu' => 'Àkókò Ìlà-Oòrùn Afírikà (Mogadishu)',
         'Africa/Monrovia' => 'Greenwich Mean Time (Monrovia)',
         'Africa/Nairobi' => 'Àkókò Ìlà-Oòrùn Afírikà (Nairobi)',
-        'Africa/Ndjamena' => 'Àkókò Ìwọ̀-Oòrùn Afírikà (Ndjamena)',
+        'Africa/Ndjamena' => 'Àkókò Ìwọ̀-Oòrùn Afírikà (N’Djamena)',
         'Africa/Niamey' => 'Àkókò Ìwọ̀-Oòrùn Afírikà (Niamey)',
         'Africa/Nouakchott' => 'Greenwich Mean Time (Nouakchott)',
         'Africa/Ouagadougou' => 'Greenwich Mean Time (Ouagadougou)',
@@ -58,41 +59,46 @@
         'America/Anchorage' => 'Àkókò Alásíkà (ìlú Ankọ́réèjì)',
         'America/Anguilla' => 'Àkókò Àtìláńtíìkì (ìlú Angúílà)',
         'America/Antigua' => 'Àkókò Àtìláńtíìkì (ìlú Antígùà)',
-        'America/Araguaina' => 'Aago Bùràsílíà (Araguaina)',
+        'America/Araguaina' => 'Aago Bùràsílíà (Araguaína)',
         'America/Argentina/La_Rioja' => 'Aago Ajẹntìnà (La Rioja)',
-        'America/Argentina/Rio_Gallegos' => 'Aago Ajẹntìnà (Rio Gallegos)',
+        'America/Argentina/Rio_Gallegos' => 'Aago Ajẹntìnà (Río Gallegos)',
         'America/Argentina/Salta' => 'Aago Ajẹntìnà (Salta)',
         'America/Argentina/San_Juan' => 'Aago Ajẹntìnà (San Juan)',
         'America/Argentina/San_Luis' => 'Aago Ajẹntìnà (San Luis)',
-        'America/Argentina/Tucuman' => 'Aago Ajẹntìnà (Tucuman)',
+        'America/Argentina/Tucuman' => 'Aago Ajẹntìnà (Tucumán)',
         'America/Argentina/Ushuaia' => 'Aago Ajẹntìnà (Ushuaia)',
         'America/Aruba' => 'Àkókò Àtìláńtíìkì (ìlú Arúbá)',
         'America/Asuncion' => 'Àkókò Párágúwè (Asunción)',
         'America/Bahia' => 'Aago Bùràsílíà (Bahia)',
         'America/Bahia_Banderas' => 'àkókò àárín gbùngbùn (ìlú Báhì Bándẹ́rásì)',
         'America/Barbados' => 'Àkókò Àtìláńtíìkì (ìlú Bábádọ́ọ̀sì)',
-        'America/Belem' => 'Aago Bùràsílíà (Belem)',
+        'America/Belem' => 'Aago Bùràsílíà (Belém)',
         'America/Belize' => 'àkókò àárín gbùngbùn (ìlú Bẹ̀líìsì)',
         'America/Blanc-Sablon' => 'Àkókò Àtìláńtíìkì (ìlú Blank Sabulọ́ọ̀nì)',
         'America/Boa_Vista' => 'Àkókò Amásọ́nì (Boa Vista)',
-        'America/Bogota' => 'Aago Kolombia (Bogota)',
+        'America/Bogota' => 'Aago Kolombia (Bogotá)',
         'America/Boise' => 'Àkókò òkè (ìlú Bọ́isè)',
         'America/Buenos_Aires' => 'Aago Ajẹntìnà (Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Aago Ajẹntìnà (Buenos Aires)',
         'America/Cambridge_Bay' => 'Àkókò òkè (ìlú òkun kambíríìjì)',
         'America/Campo_Grande' => 'Àkókò Amásọ́nì (Campo Grande)',
         'America/Cancun' => 'Àkókò ìhà ìlà oòrùn (ìlú Kancun)',
         'America/Caracas' => 'Aago Venezuela (Caracas)',
         'America/Catamarca' => 'Aago Ajẹntìnà (Catamarca)',
+        'America/Argentina/Catamarca' => 'Aago Ajẹntìnà (Catamarca)',
         'America/Cayenne' => 'Àkókò Gúyánà Fáránsè (Cayenne)',
         'America/Cayman' => 'Àkókò ìhà ìlà oòrùn (ilú Kayman)',
         'America/Chicago' => 'àkókò àárín gbùngbùn (ìlú Chicago)',
         'America/Chihuahua' => 'àkókò àárín gbùngbùn (ìlú Ṣihuahua)',
         'America/Ciudad_Juarez' => 'Àkókò òkè (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Àkókò ìhà ìlà oòrùn (ìlú àtikọkàn)',
-        'America/Cordoba' => 'Aago Ajẹntìnà (Cordoba)',
+        'America/Atikokan' => 'Àkókò ìhà ìlà oòrùn (ìlú àtikọkàn)',
+        'America/Cordoba' => 'Aago Ajẹntìnà (Córdoba)',
+        'America/Argentina/Cordoba' => 'Aago Ajẹntìnà (Córdoba)',
         'America/Costa_Rica' => 'àkókò àárín gbùngbùn (ìlú Kosta Ríkà)',
+        'America/Coyhaique' => 'Àkókò Ṣílè (Coyhaique)',
         'America/Creston' => 'Àkókò òkè (ìlú Kírẹstọ́ọ̀nù)',
-        'America/Cuiaba' => 'Àkókò Amásọ́nì (Cuiaba)',
+        'America/Cuiaba' => 'Àkókò Amásọ́nì (Cuiabá)',
         'America/Curacao' => 'Àkókò Àtìláńtíìkì (ìlú Kuraṣao)',
         'America/Danmarkshavn' => 'Greenwich Mean Time (ìlú Banmarkshan)',
         'America/Dawson' => 'Àkókò Yúkọ́nì (ìlú Dawson)',
@@ -101,12 +107,13 @@
         'America/Detroit' => 'Àkókò ìhà ìlà oòrùn (ìlú Detroit)',
         'America/Dominica' => 'Àkókò Àtìláńtíìkì (ìlú Dominika)',
         'America/Edmonton' => 'Àkókò òkè (ìlú Edmonton)',
-        'America/Eirunepe' => 'Ìgbà Bàràsílì (Eirunepe)',
+        'America/Eirunepe' => 'Ìgbà Bàràsílì (Eirunepé)',
         'America/El_Salvador' => 'àkókò àárín gbùngbùn (ìlú El Savador)',
         'America/Fort_Nelson' => 'Àkókò òkè (ìlú Fort Nelson)',
         'America/Fortaleza' => 'Aago Bùràsílíà (Fortaleza)',
         'America/Glace_Bay' => 'Àkókò Àtìláńtíìkì (ìlú omi Glace)',
         'America/Godthab' => 'Ìgbà Gerelandi (ìlú Nuuk)',
+        'America/Nuuk' => 'Ìgbà Gerelandi (ìlú Nuuk)',
         'America/Goose_Bay' => 'Àkókò Àtìláńtíìkì (ìlú omi Goosù)',
         'America/Grand_Turk' => 'Àkókò ìhà ìlà oòrùn (ìlú Grand Turk)',
         'America/Grenada' => 'Àkókò Àtìláńtíìkì (ìlú Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Àkókò ìhà ìlà oòrùn (ìlú Vincennes ní Indiana)',
         'America/Indiana/Winamac' => 'Àkókò ìhà ìlà oòrùn (ìlú Winamak ní Indiana)',
         'America/Indianapolis' => 'Àkókò ìhà ìlà oòrùn (ìlú Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Àkókò ìhà ìlà oòrùn (ìlú Indianapolis)',
         'America/Inuvik' => 'Àkókò òkè (ìlú Inuvik)',
         'America/Iqaluit' => 'Àkókò ìhà ìlà oòrùn (ìlú Iqaluit)',
         'America/Jamaica' => 'Àkókò ìhà ìlà oòrùn (ìlú Jamaikà)',
         'America/Jujuy' => 'Aago Ajẹntìnà (Jujuy)',
+        'America/Argentina/Jujuy' => 'Aago Ajẹntìnà (Jujuy)',
         'America/Juneau' => 'Àkókò Alásíkà (ìlú Junu)',
         'America/Kentucky/Monticello' => 'Àkókò ìhà ìlà oòrùn (ìlú Montisẹ́lò)',
         'America/Kralendijk' => 'Àkókò Àtìláńtíìkì (ìlú Kíralẹ́ndáikì)',
@@ -136,8 +145,9 @@
         'America/Lima' => 'Àkókò Pérù (Lima)',
         'America/Los_Angeles' => 'Àkókò Pàsífíìkì (ìlú Los Angeles)',
         'America/Louisville' => 'Àkókò ìhà ìlà oòrùn (ìlú Lúífíìlì)',
+        'America/Kentucky/Louisville' => 'Àkókò ìhà ìlà oòrùn (ìlú Lúífíìlì)',
         'America/Lower_Princes' => 'Àkókò Àtìláńtíìkì (ìlú Lower Prince’s Quarter)',
-        'America/Maceio' => 'Aago Bùràsílíà (Maceio)',
+        'America/Maceio' => 'Aago Bùràsílíà (Maceió)',
         'America/Managua' => 'àkókò àárín gbùngbùn (ìlú Managua)',
         'America/Manaus' => 'Àkókò Amásọ́nì (Manaus)',
         'America/Marigot' => 'Àkókò Àtìláńtíìkì (ìlú Marigọ́ọ̀tì)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'àkókò àárín gbùngbùn (ìlú Matamorosì)',
         'America/Mazatlan' => 'Àkókò Pásífíìkì Mẹ́ṣíkò (ìlú Masatiani)',
         'America/Mendoza' => 'Aago Ajẹntìnà (Mendoza)',
+        'America/Argentina/Mendoza' => 'Aago Ajẹntìnà (Mendoza)',
         'America/Menominee' => 'àkókò àárín gbùngbùn (ìlú Menominì)',
         'America/Merida' => 'àkókò àárín gbùngbùn (ìlú Merida)',
         'America/Metlakatla' => 'Àkókò Alásíkà (ìlú Metilakatila)',
@@ -175,10 +186,10 @@
         'America/Regina' => 'àkókò àárín gbùngbùn (ìlú Regina)',
         'America/Resolute' => 'àkókò àárín gbùngbùn (ìlú Resolútì)',
         'America/Rio_Branco' => 'Ìgbà Bàràsílì (Rio Branco)',
-        'America/Santarem' => 'Aago Bùràsílíà (Santarem)',
+        'America/Santarem' => 'Aago Bùràsílíà (Santarém)',
         'America/Santiago' => 'Àkókò Ṣílè (Santiago)',
         'America/Santo_Domingo' => 'Àkókò Àtìláńtíìkì (ìlú Santo Domigo)',
-        'America/Sao_Paulo' => 'Aago Bùràsílíà (Sao Paulo)',
+        'America/Sao_Paulo' => 'Aago Bùràsílíà (São Paulo)',
         'America/Scoresbysund' => 'Ìgbà Gerelandi (ìlú Itokotomiti)',
         'America/Sitka' => 'Àkókò Alásíkà (ìlú Sika)',
         'America/St_Barthelemy' => 'Àkókò Àtìláńtíìkì (ìlú Batilemì)',
@@ -205,7 +216,7 @@
         'Antarctica/McMurdo' => 'Àkókò New Zealand (McMurdo)',
         'Antarctica/Palmer' => 'Àkókò Ṣílè (Palmer)',
         'Antarctica/Rothera' => 'Àkókò Rothera',
-        'Antarctica/Syowa' => 'Àkókò Syowa',
+        'Antarctica/Syowa' => 'Àkókò Syowa (Showa)',
         'Antarctica/Troll' => 'Greenwich Mean Time (Troll)',
         'Antarctica/Vostok' => 'Àkókò Vostok',
         'Arctic/Longyearbyen' => 'Àkókò Àárin Europe (Longyearbyen)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Àkókò Arabia (Bahrain)',
         'Asia/Baku' => 'Àkókò Azerbaijan (Baku)',
         'Asia/Bangkok' => 'Àkókò Indochina (Bangkok)',
-        'Asia/Barnaul' => 'Ìgbà Rọṣia (Barnaul)',
+        'Asia/Barnaul' => 'Àkókò Krasinoyasiki (Barnaul)',
         'Asia/Beirut' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Beirut)',
         'Asia/Bishkek' => 'Àkókò Kirigisitaani (Bishkek)',
         'Asia/Brunei' => 'Brunei Darussalam Time',
         'Asia/Calcutta' => 'Àkókò Àfẹnukò India (Kolkata)',
+        'Asia/Kolkata' => 'Àkókò Àfẹnukò India (Kolkata)',
         'Asia/Chita' => 'Àkókò Yatutsk (Chita)',
         'Asia/Colombo' => 'Àkókò Àfẹnukò India (Colombo)',
         'Asia/Damascus' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Damascus)',
@@ -237,7 +249,7 @@
         'Asia/Gaza' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Gaza)',
         'Asia/Hebron' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Hebron)',
         'Asia/Hong_Kong' => 'Àkókò Hong Kong',
-        'Asia/Hovd' => 'Àkókò Hofidi (Hovd)',
+        'Asia/Hovd' => 'Àkókò Hofidi (Khovd)',
         'Asia/Irkutsk' => 'Àkókò Íkósíkì (Irkutsk)',
         'Asia/Jakarta' => 'Àkókò Ìwọ̀ oorùn Indonesia (Jakarta)',
         'Asia/Jayapura' => 'Àkókò Ìlà oorùn Indonesia (Jayapura)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'Ìgbà Rọṣia (Kamchatka)',
         'Asia/Karachi' => 'Àkókò Pakistani (Karachi)',
         'Asia/Katmandu' => 'Àkókò Nepali (Kathmandu)',
+        'Asia/Kathmandu' => 'Àkókò Nepali (Kathmandu)',
         'Asia/Khandyga' => 'Àkókò Yatutsk (Khandyga)',
         'Asia/Krasnoyarsk' => 'Àkókò Krasinoyasiki (Krasnoyarsk)',
         'Asia/Kuala_Lumpur' => 'Àkókò Malaysia (Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Àkókò Àfẹnukò Gulf (Muscat)',
         'Asia/Nicosia' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Nicosia)',
         'Asia/Novokuznetsk' => 'Àkókò Krasinoyasiki (Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Àkókò Nofosibiriski (Novosibirsk)',
+        'Asia/Novosibirsk' => 'Àkókò Krasinoyasiki (Novosibirsk)',
         'Asia/Omsk' => 'Àkókò Omisiki (Omsk)',
         'Asia/Oral' => 'Aago Kasasitáànì (Oral)',
         'Asia/Phnom_Penh' => 'Àkókò Indochina (Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Aago Kasasitáànì (Qostanay)',
         'Asia/Qyzylorda' => 'Aago Kasasitáànì (Qyzylorda)',
         'Asia/Rangoon' => 'Àkókò Ìlà Myanmar (Yangon)',
+        'Asia/Yangon' => 'Àkókò Ìlà Myanmar (Yangon)',
         'Asia/Riyadh' => 'Àkókò Arabia (Riyadh)',
         'Asia/Saigon' => 'Àkókò Indochina (Ilu Ho Chi Minh)',
-        'Asia/Sakhalin' => 'Àkókò Sakhalin',
+        'Asia/Ho_Chi_Minh' => 'Àkókò Indochina (Ilu Ho Chi Minh)',
+        'Asia/Sakhalin' => 'Àkókò Magadani (Sakhalin)',
         'Asia/Samarkand' => 'Àkókò Usibekistani (Samarkand)',
         'Asia/Seoul' => 'Àkókò Koria (Seoul)',
         'Asia/Shanghai' => 'Àkókò Ṣáínà (Shanghai)',
@@ -282,9 +297,9 @@
         'Asia/Tehran' => 'Àkókò Irani (Tehran)',
         'Asia/Thimphu' => 'Àkókò Bhutan (Thimphu)',
         'Asia/Tokyo' => 'Àkókò Japan (Tokyo)',
-        'Asia/Tomsk' => 'Ìgbà Rọṣia (Tomsk)',
+        'Asia/Tomsk' => 'Àkókò Krasinoyasiki (Tomsk)',
         'Asia/Ulaanbaatar' => 'Àkókò Ulaanbaatar',
-        'Asia/Urumqi' => 'Ìgbà Ṣáínà (Urumqi)',
+        'Asia/Urumqi' => 'Ìgbà Ṣáínà (Ürümqi)',
         'Asia/Ust-Nera' => 'Àkókò Filadifositoki (Ust-Nera)',
         'Asia/Vientiane' => 'Àkókò Indochina (Vientiane)',
         'Asia/Vladivostok' => 'Àkókò Filadifositoki (Vladivostok)',
@@ -293,9 +308,10 @@
         'Asia/Yerevan' => 'Àkókò Armenia (Yerevan)',
         'Atlantic/Azores' => 'Àkókò Ásọ́sì (Azores)',
         'Atlantic/Bermuda' => 'Àkókò Àtìláńtíìkì (ìlú Bẹ̀múdà)',
-        'Atlantic/Canary' => 'Àkókò Ìwọ Oòrùn Europe (Canary)',
+        'Atlantic/Canary' => 'Àkókò Ìwọ Oòrùn Europe (Canarias)',
         'Atlantic/Cape_Verde' => 'Àkókò Képú Fáàdì (Cape Verde)',
         'Atlantic/Faeroe' => 'Àkókò Ìwọ Oòrùn Europe (Faroe)',
+        'Atlantic/Faroe' => 'Àkókò Ìwọ Oòrùn Europe (Faroe)',
         'Atlantic/Madeira' => 'Àkókò Ìwọ Oòrùn Europe (Madeira)',
         'Atlantic/Reykjavik' => 'Greenwich Mean Time (Reykjavik)',
         'Atlantic/South_Georgia' => 'Àkókò Gúsù Jọ́jíà (South Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'Àpapọ̀ Àkókò Àgbáyé',
         'Europe/Amsterdam' => 'Àkókò Àárin Europe (Amsterdam)',
         'Europe/Andorra' => 'Àkókò Àárin Europe (Andorra)',
-        'Europe/Astrakhan' => 'Àkókò Mosiko (Astrakhan)',
+        'Europe/Astrakhan' => 'Ìgbà Rọṣia (Astrakhan)',
         'Europe/Athens' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Athens)',
         'Europe/Belgrade' => 'Àkókò Àárin Europe (Belgrade)',
         'Europe/Berlin' => 'Àkókò Àárin Europe (Berlin)',
@@ -324,8 +340,8 @@
         'Europe/Brussels' => 'Àkókò Àárin Europe (Brussels)',
         'Europe/Bucharest' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Bucharest)',
         'Europe/Budapest' => 'Àkókò Àárin Europe (Budapest)',
-        'Europe/Busingen' => 'Àkókò Àárin Europe (Busingen)',
-        'Europe/Chisinau' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Chisinau)',
+        'Europe/Busingen' => 'Àkókò Àárin Europe (Büsingen)',
+        'Europe/Chisinau' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Chișinău)',
         'Europe/Copenhagen' => 'Àkókò Àárin Europe (Copenhagen)',
         'Europe/Dublin' => 'Greenwich Mean Time (Dublin)',
         'Europe/Gibraltar' => 'Àkókò Àárin Europe (Gibraltar)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Greenwich Mean Time (Jersey)',
         'Europe/Kaliningrad' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Kaliningrad)',
         'Europe/Kiev' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Kyiv)',
-        'Europe/Kirov' => 'Ìgbà Rọṣia (Kirov)',
+        'Europe/Kyiv' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Kyiv)',
+        'Europe/Kirov' => 'Àkókò Mosiko (Kirov)',
         'Europe/Lisbon' => 'Àkókò Ìwọ Oòrùn Europe (Lisbon)',
         'Europe/Ljubljana' => 'Àkókò Àárin Europe (Ljubljana)',
         'Europe/London' => 'Greenwich Mean Time (London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'Ìgbà Rọṣia (Samara)',
         'Europe/San_Marino' => 'Àkókò Àárin Europe (San Marino)',
         'Europe/Sarajevo' => 'Àkókò Àárin Europe (Sarajevo)',
-        'Europe/Saratov' => 'Àkókò Mosiko (Saratov)',
+        'Europe/Saratov' => 'Ìgbà Rọṣia (Saratov)',
         'Europe/Simferopol' => 'Àkókò Mosiko (Simferopol)',
         'Europe/Skopje' => 'Àkókò Àárin Europe (Skopje)',
         'Europe/Sofia' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Sofia)',
         'Europe/Stockholm' => 'Àkókò Àárin Europe (Stockholm)',
         'Europe/Tallinn' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Tallinn)',
-        'Europe/Tirane' => 'Àkókò Àárin Europe (Tirane)',
-        'Europe/Ulyanovsk' => 'Àkókò Mosiko (Ulyanovsk)',
+        'Europe/Tirane' => 'Àkókò Àárin Europe (Tirana)',
+        'Europe/Ulyanovsk' => 'Ìgbà Rọṣia (Ulyanovsk)',
         'Europe/Vaduz' => 'Àkókò Àárin Europe (Vaduz)',
         'Europe/Vatican' => 'Àkókò Àárin Europe (Vatican)',
         'Europe/Vienna' => 'Àkókò Àárin Europe (Vienna)',
         'Europe/Vilnius' => 'Àkókò Ìhà Ìlà Oòrùn Europe (Vilnius)',
-        'Europe/Volgograd' => 'Àkókò Foligogiradi (Volgograd)',
+        'Europe/Volgograd' => 'Àkókò Mosiko (Volgograd)',
         'Europe/Warsaw' => 'Àkókò Àárin Europe (Warsaw)',
         'Europe/Zagreb' => 'Àkókò Àárin Europe (Zagreb)',
         'Europe/Zurich' => 'Àkókò Àárin Europe (Zurich)',
@@ -376,9 +393,9 @@
         'Indian/Chagos' => 'Àkókò Etíkun Índíà (Chagos)',
         'Indian/Christmas' => 'Àkókò Erékùsù Christmas',
         'Indian/Cocos' => 'Àkókò Àwọn Erékùsù Cocos',
-        'Indian/Comoro' => 'Àkókò Ìlà-Oòrùn Afírikà (Comoro)',
+        'Indian/Comoro' => 'Àkókò Ìlà-Oòrùn Afírikà (Comores)',
         'Indian/Kerguelen' => 'Àkókò Gúsù Fáransé àti Àntátíìkì (Kerguelen)',
-        'Indian/Mahe' => 'Àkókò Sèṣẹ́ẹ̀lì (Mahe)',
+        'Indian/Mahe' => 'Àkókò Sèṣẹ́ẹ̀lì (Mahé)',
         'Indian/Maldives' => 'Àkókò Maldives',
         'Indian/Mauritius' => 'Àkókò Máríṣúṣì (Mauritius)',
         'Indian/Mayotte' => 'Àkókò Ìlà-Oòrùn Afírikà (Mayotte)',
@@ -389,15 +406,16 @@
         'Pacific/Chatham' => 'Àkókò Chatam (Chatham)',
         'Pacific/Easter' => 'Aago Ajnde Ibùgbé Omi (Easter)',
         'Pacific/Efate' => 'Àkókò Fanuatu (Efate)',
-        'Pacific/Enderbury' => 'Àkókò Àwọn Erékùsù Phoenix (Enderbury)',
+        'Pacific/Enderbury' => 'Àkókò Àwọn Erékùsù Phoenix (Canton)',
+        'Pacific/Kanton' => 'Àkókò Àwọn Erékùsù Phoenix (Canton)',
         'Pacific/Fakaofo' => 'Àkókò Tokelau (Fakaofo)',
         'Pacific/Fiji' => 'Àkókò Fiji',
         'Pacific/Funafuti' => 'Àkókò Tufalu (Funafuti)',
-        'Pacific/Galapagos' => 'Aago Galapago (Galapagos)',
+        'Pacific/Galapagos' => 'Aago Galapago (Galápagos)',
         'Pacific/Gambier' => 'Àkókò Gambia (Gambier)',
         'Pacific/Guadalcanal' => 'Àkókò Àwọn Erekusu Solomon (Guadalcanal)',
         'Pacific/Guam' => 'Àkókò Àfẹnukò Chamorro (Guam)',
-        'Pacific/Honolulu' => 'Àkókò Hawaii-Aleutian (Honolulu)',
+        'Pacific/Honolulu' => 'Àkókò Àfẹnukò Hawaii-Aleutian (Honolulu)',
         'Pacific/Kiritimati' => 'Àkókò Àwọn Erekusu Laini (Kiritimati)',
         'Pacific/Kosrae' => 'Àkókò Kosirai (Kosrae)',
         'Pacific/Kwajalein' => 'Àkókò Àwọn Erekusu Masaali (Kwajalein)',
@@ -407,11 +425,12 @@
         'Pacific/Nauru' => 'Àkókò Nauru',
         'Pacific/Niue' => 'Àkókò Niue',
         'Pacific/Norfolk' => 'Àkókò Erékùsù Norfolk',
-        'Pacific/Noumea' => 'Àkókò Kalidonia Tuntun (Noumea)',
+        'Pacific/Noumea' => 'Àkókò Kalidonia Tuntun (Nouméa)',
         'Pacific/Pago_Pago' => 'Àkókò Samoa (Pago Pago)',
         'Pacific/Palau' => 'Àkókò Palau',
         'Pacific/Pitcairn' => 'Àkókò Pitcairn',
         'Pacific/Ponape' => 'Àkókò Ponape (Pohnpei)',
+        'Pacific/Pohnpei' => 'Àkókò Ponape (Pohnpei)',
         'Pacific/Port_Moresby' => 'Àkókò Papua New Guinea (Port Moresby)',
         'Pacific/Rarotonga' => 'Àkókò Àwọn Erekusu Kuuku (Rarotonga)',
         'Pacific/Saipan' => 'Àkókò Àfẹnukò Chamorro (Saipan)',
@@ -419,8 +438,9 @@
         'Pacific/Tarawa' => 'Àkókò Àwọn Erekusu Gilibati (Tarawa)',
         'Pacific/Tongatapu' => 'Àkókò Tonga (Tongatapu)',
         'Pacific/Truk' => 'Àkókò Chuuk',
+        'Pacific/Chuuk' => 'Àkókò Chuuk',
         'Pacific/Wake' => 'Àkókò Erékùsù Wake',
-        'Pacific/Wallis' => 'Àkókò Wallis & Futuina',
+        'Pacific/Wallis' => 'Àkókò Wallis & Futuina (Wallis & Futuna)',
     ],
     'Meta' => [
         'GmtFormat' => 'WAT%s',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/za.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/za.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/za.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/za.php	2026-05-20 10:56:49.000000000 +0200
@@ -10,7 +10,7 @@
         'Africa/Conakry' => 'Gwzlinzveihci Byauhcunj Sizgenh (Conakry)',
         'Africa/Dakar' => 'Gwzlinzveihci Byauhcunj Sizgenh (Dakar)',
         'Africa/Freetown' => 'Gwzlinzveihci Byauhcunj Sizgenh (Freetown)',
-        'Africa/Lome' => 'Gwzlinzveihci Byauhcunj Sizgenh (Lome)',
+        'Africa/Lome' => 'Gwzlinzveihci Byauhcunj Sizgenh (Lomé)',
         'Africa/Monrovia' => 'Gwzlinzveihci Byauhcunj Sizgenh (Monrovia)',
         'Africa/Nouakchott' => 'Gwzlinzveihci Byauhcunj Sizgenh (Nouakchott)',
         'Africa/Ouagadougou' => 'Gwzlinzveihci Byauhcunj Sizgenh (Ouagadougou)',
@@ -18,7 +18,7 @@
         'America/Danmarkshavn' => 'Gwzlinzveihci Byauhcunj Sizgenh (Danmarkshavn)',
         'Antarctica/Troll' => 'Gwzlinzveihci Byauhcunj Sizgenh (Troll)',
         'Asia/Shanghai' => 'Cunghgoz Sizgenh (Shanghai)',
-        'Asia/Urumqi' => 'Cunghgoz Sizgenh (Urumqi)',
+        'Asia/Urumqi' => 'Cunghgoz Sizgenh (Ürümqi)',
         'Atlantic/Reykjavik' => 'Gwzlinzveihci Byauhcunj Sizgenh (Reykjavik)',
         'Atlantic/St_Helena' => 'Gwzlinzveihci Byauhcunj Sizgenh (St. Helena)',
         'Etc/GMT' => 'Gwzlinzveihci Byauhcunj Sizgenh',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hans_SG.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hans_SG.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hans_SG.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hans_SG.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => '东部非洲时间（亚的斯亚贝巴）',
         'Africa/Algiers' => '中欧时间（阿尔及尔）',
         'Africa/Asmera' => '东部非洲时间（阿斯马拉）',
+        'Africa/Asmara' => '东部非洲时间（阿斯马拉）',
         'Africa/Bamako' => '格林尼治标准时间（巴马科）',
         'Africa/Bangui' => '西部非洲时间（班吉）',
         'Africa/Banjul' => '格林尼治标准时间（班珠尔）',
@@ -78,19 +79,24 @@
         'America/Bogota' => '哥伦比亚时间（波哥大）',
         'America/Boise' => '北美山区时间（博伊西）',
         'America/Buenos_Aires' => '阿根廷时间（布宜诺斯艾利斯）',
+        'America/Argentina/Buenos_Aires' => '阿根廷时间（布宜诺斯艾利斯）',
         'America/Cambridge_Bay' => '北美山区时间（剑桥湾）',
         'America/Campo_Grande' => '亚马逊时间（大坎普）',
         'America/Cancun' => '北美东部时间（坎昆）',
         'America/Caracas' => '委内瑞拉时间（加拉加斯）',
         'America/Catamarca' => '阿根廷时间（卡塔马卡）',
+        'America/Argentina/Catamarca' => '阿根廷时间（卡塔马卡）',
         'America/Cayenne' => '法属圭亚那标准时间（卡宴）',
         'America/Cayman' => '北美东部时间（开曼）',
         'America/Chicago' => '北美中部时间（芝加哥）',
         'America/Chihuahua' => '北美中部时间（奇瓦瓦）',
         'America/Ciudad_Juarez' => '北美山区时间（华雷斯城）',
         'America/Coral_Harbour' => '北美东部时间（阿蒂科肯）',
+        'America/Atikokan' => '北美东部时间（阿蒂科肯）',
         'America/Cordoba' => '阿根廷时间（科尔多瓦）',
+        'America/Argentina/Cordoba' => '阿根廷时间（科尔多瓦）',
         'America/Costa_Rica' => '北美中部时间（哥斯达黎加）',
+        'America/Coyhaique' => '智利时间（科伊艾克）',
         'America/Creston' => '北美山区时间（克雷斯顿）',
         'America/Cuiaba' => '亚马逊时间（库亚巴）',
         'America/Curacao' => '大西洋时间（库拉索）',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => '巴西利亚时间（福塔雷萨）',
         'America/Glace_Bay' => '大西洋时间（格莱斯贝）',
         'America/Godthab' => '格陵兰时间（努克）',
+        'America/Nuuk' => '格陵兰时间（努克）',
         'America/Goose_Bay' => '大西洋时间（古斯湾）',
         'America/Grand_Turk' => '北美东部时间（大特克）',
         'America/Grenada' => '大西洋时间（格林纳达）',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => '北美东部时间（印第安纳州温森斯）',
         'America/Indiana/Winamac' => '北美东部时间（印第安纳州威纳马克）',
         'America/Indianapolis' => '北美东部时间（印第安纳波利斯）',
+        'America/Indiana/Indianapolis' => '北美东部时间（印第安纳波利斯）',
         'America/Inuvik' => '北美山区时间（伊努维克）',
         'America/Iqaluit' => '北美东部时间（伊魁特）',
         'America/Jamaica' => '北美东部时间（牙买加）',
         'America/Jujuy' => '阿根廷时间（胡胡伊）',
+        'America/Argentina/Jujuy' => '阿根廷时间（胡胡伊）',
         'America/Juneau' => '阿拉斯加时间（朱诺）',
         'America/Kentucky/Monticello' => '北美东部时间（肯塔基州蒙蒂塞洛）',
         'America/Kralendijk' => '大西洋时间（克拉伦代克）',
@@ -136,6 +145,7 @@
         'America/Lima' => '秘鲁时间（利马）',
         'America/Los_Angeles' => '北美太平洋时间（洛杉矶）',
         'America/Louisville' => '北美东部时间（路易斯维尔）',
+        'America/Kentucky/Louisville' => '北美东部时间（路易斯维尔）',
         'America/Lower_Princes' => '大西洋时间（下太子区）',
         'America/Maceio' => '巴西利亚时间（马塞约）',
         'America/Managua' => '北美中部时间（马那瓜）',
@@ -145,6 +155,7 @@
         'America/Matamoros' => '北美中部时间（马塔莫罗斯）',
         'America/Mazatlan' => '墨西哥太平洋时间（马萨特兰）',
         'America/Mendoza' => '阿根廷时间（门多萨）',
+        'America/Argentina/Mendoza' => '阿根廷时间（门多萨）',
         'America/Menominee' => '北美中部时间（梅诺米尼）',
         'America/Merida' => '北美中部时间（梅里达）',
         'America/Metlakatla' => '阿拉斯加时间（梅特拉卡特拉）',
@@ -200,7 +211,7 @@
         'Antarctica/Casey' => '澳大利亚西部时间（卡塞）',
         'Antarctica/Davis' => '戴维斯时间',
         'Antarctica/DumontDUrville' => '迪蒙·迪维尔时间',
-        'Antarctica/Macquarie' => '澳大利亚东部时间（麦格理）',
+        'Antarctica/Macquarie' => '澳大利亚东部时间（麦夸里岛）',
         'Antarctica/Mawson' => '莫森时间',
         'Antarctica/McMurdo' => '新西兰时间（麦克默多）',
         'Antarctica/Palmer' => '智利时间（帕尔默）',
@@ -212,7 +223,7 @@
         'Asia/Aden' => '阿拉伯时间（亚丁）',
         'Asia/Almaty' => '哈萨克斯坦时间（阿拉木图）',
         'Asia/Amman' => '东欧时间（安曼）',
-        'Asia/Anadyr' => '阿纳德尔时间',
+        'Asia/Anadyr' => '彼得罗巴甫洛夫斯克-堪察加时间（阿纳德尔）',
         'Asia/Aqtau' => '哈萨克斯坦时间（阿克套）',
         'Asia/Aqtobe' => '哈萨克斯坦时间（阿克托别）',
         'Asia/Ashgabat' => '土库曼斯坦时间（阿什哈巴德）',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => '阿拉伯时间（巴林）',
         'Asia/Baku' => '阿塞拜疆时间（巴库）',
         'Asia/Bangkok' => '中南半岛时间（曼谷）',
-        'Asia/Barnaul' => '俄罗斯时间（巴尔瑙尔）',
+        'Asia/Barnaul' => '克拉斯诺亚尔斯克时间（巴尔瑙尔）',
         'Asia/Beirut' => '东欧时间（贝鲁特）',
         'Asia/Bishkek' => '吉尔吉斯斯坦时间（比什凯克）',
         'Asia/Brunei' => '文莱达鲁萨兰时间',
         'Asia/Calcutta' => '印度时间（加尔各答）',
+        'Asia/Kolkata' => '印度时间（加尔各答）',
         'Asia/Chita' => '雅库茨克时间（赤塔）',
         'Asia/Colombo' => '印度时间（科伦坡）',
         'Asia/Damascus' => '东欧时间（大马士革）',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => '彼得罗巴甫洛夫斯克-堪察加时间',
         'Asia/Karachi' => '巴基斯坦时间（卡拉奇）',
         'Asia/Katmandu' => '尼泊尔时间（加德满都）',
+        'Asia/Kathmandu' => '尼泊尔时间（加德满都）',
         'Asia/Khandyga' => '雅库茨克时间（汉德加）',
         'Asia/Krasnoyarsk' => '克拉斯诺亚尔斯克时间',
         'Asia/Kuala_Lumpur' => '马来西亚时间（吉隆坡）',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => '海湾标准时间（马斯喀特）',
         'Asia/Nicosia' => '东欧时间（尼科西亚）',
         'Asia/Novokuznetsk' => '克拉斯诺亚尔斯克时间（新库兹涅茨克）',
-        'Asia/Novosibirsk' => '新西伯利亚时间',
+        'Asia/Novosibirsk' => '克拉斯诺亚尔斯克时间（新西伯利亚）',
         'Asia/Omsk' => '鄂木斯克时间',
         'Asia/Oral' => '哈萨克斯坦时间（乌拉尔）',
         'Asia/Phnom_Penh' => '中南半岛时间（金边）',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => '哈萨克斯坦时间（库斯塔奈）',
         'Asia/Qyzylorda' => '哈萨克斯坦时间（克孜洛尔达）',
         'Asia/Rangoon' => '缅甸时间（仰光）',
+        'Asia/Yangon' => '缅甸时间（仰光）',
         'Asia/Riyadh' => '阿拉伯时间（利雅得）',
         'Asia/Saigon' => '中南半岛时间（胡志明市）',
-        'Asia/Sakhalin' => '库页岛时间（萨哈林）',
+        'Asia/Ho_Chi_Minh' => '中南半岛时间（胡志明市）',
+        'Asia/Sakhalin' => '马加丹时间（萨哈林）',
         'Asia/Samarkand' => '乌兹别克斯坦时间（撒马尔罕）',
         'Asia/Seoul' => '韩国时间（首尔）',
         'Asia/Shanghai' => '中国时间（上海）',
@@ -282,12 +297,12 @@
         'Asia/Tehran' => '伊朗时间（德黑兰）',
         'Asia/Thimphu' => '不丹时间（廷布）',
         'Asia/Tokyo' => '日本时间（东京）',
-        'Asia/Tomsk' => '俄罗斯时间（托木斯克）',
+        'Asia/Tomsk' => '克拉斯诺亚尔斯克时间（托木斯克）',
         'Asia/Ulaanbaatar' => '乌兰巴托时间',
         'Asia/Urumqi' => '中国时间（乌鲁木齐）',
         'Asia/Ust-Nera' => '海参崴时间（乌斯内拉）',
         'Asia/Vientiane' => '中南半岛时间（万象）',
-        'Asia/Vladivostok' => '海参崴时间（符拉迪沃斯托克）',
+        'Asia/Vladivostok' => '海参崴时间',
         'Asia/Yakutsk' => '雅库茨克时间',
         'Asia/Yekaterinburg' => '叶卡捷琳堡时间',
         'Asia/Yerevan' => '亚美尼亚时间（埃里温）',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => '西欧时间（加那利）',
         'Atlantic/Cape_Verde' => '佛得角时间',
         'Atlantic/Faeroe' => '西欧时间（法罗）',
+        'Atlantic/Faroe' => '西欧时间（法罗）',
         'Atlantic/Madeira' => '西欧时间（马德拉）',
         'Atlantic/Reykjavik' => '格林尼治标准时间（雷克雅未克）',
         'Atlantic/South_Georgia' => '南乔治亚岛时间',
@@ -316,7 +332,7 @@
         'Etc/UTC' => '协调世界时',
         'Europe/Amsterdam' => '中欧时间（阿姆斯特丹）',
         'Europe/Andorra' => '中欧时间（安道尔）',
-        'Europe/Astrakhan' => '莫斯科时间（阿斯特拉罕）',
+        'Europe/Astrakhan' => '萨马拉时间（阿斯特拉罕）',
         'Europe/Athens' => '东欧时间（雅典）',
         'Europe/Belgrade' => '中欧时间（贝尔格莱德）',
         'Europe/Berlin' => '中欧时间（柏林）',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => '格林尼治标准时间（泽西岛）',
         'Europe/Kaliningrad' => '东欧时间（加里宁格勒）',
         'Europe/Kiev' => '东欧时间（基辅）',
-        'Europe/Kirov' => '俄罗斯时间（基洛夫）',
+        'Europe/Kyiv' => '东欧时间（基辅）',
+        'Europe/Kirov' => '莫斯科时间（基洛夫）',
         'Europe/Lisbon' => '西欧时间（里斯本）',
         'Europe/Ljubljana' => '中欧时间（卢布尔雅那）',
         'Europe/London' => '格林尼治标准时间（伦敦）',
@@ -356,19 +373,19 @@
         'Europe/Samara' => '萨马拉时间',
         'Europe/San_Marino' => '中欧时间（圣马力诺）',
         'Europe/Sarajevo' => '中欧时间（萨拉热窝）',
-        'Europe/Saratov' => '莫斯科时间（萨拉托夫）',
+        'Europe/Saratov' => '萨马拉时间（萨拉托夫）',
         'Europe/Simferopol' => '莫斯科时间（辛菲罗波尔）',
         'Europe/Skopje' => '中欧时间（斯科普里）',
         'Europe/Sofia' => '东欧时间（索非亚）',
         'Europe/Stockholm' => '中欧时间（斯德哥尔摩）',
         'Europe/Tallinn' => '东欧时间（塔林）',
         'Europe/Tirane' => '中欧时间（地拉那）',
-        'Europe/Ulyanovsk' => '莫斯科时间（乌里扬诺夫斯克）',
+        'Europe/Ulyanovsk' => '萨马拉时间（乌里扬诺夫斯克）',
         'Europe/Vaduz' => '中欧时间（瓦杜兹）',
         'Europe/Vatican' => '中欧时间（梵蒂冈）',
         'Europe/Vienna' => '中欧时间（维也纳）',
         'Europe/Vilnius' => '东欧时间（维尔纽斯）',
-        'Europe/Volgograd' => '伏尔加格勒时间',
+        'Europe/Volgograd' => '莫斯科时间（伏尔加格勒）',
         'Europe/Warsaw' => '中欧时间（华沙）',
         'Europe/Zagreb' => '中欧时间（萨格勒布）',
         'Europe/Zurich' => '中欧时间（苏黎世）',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => '查塔姆时间',
         'Pacific/Easter' => '复活节岛时间',
         'Pacific/Efate' => '瓦努阿图时间（埃法特）',
-        'Pacific/Enderbury' => '菲尼克斯群岛时间（恩德伯里）',
+        'Pacific/Enderbury' => '菲尼克斯群岛时间（坎顿岛）',
+        'Pacific/Kanton' => '菲尼克斯群岛时间（坎顿岛）',
         'Pacific/Fakaofo' => '托克劳时间（法考福）',
         'Pacific/Fiji' => '斐济时间',
         'Pacific/Funafuti' => '图瓦卢时间（富纳富提）',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => '甘比尔时间',
         'Pacific/Guadalcanal' => '所罗门群岛时间（瓜达尔卡纳尔）',
         'Pacific/Guam' => '查莫罗时间（关岛）',
-        'Pacific/Honolulu' => '夏威夷-阿留申时间（檀香山）',
+        'Pacific/Honolulu' => '夏威夷-阿留申标准时间（檀香山）',
         'Pacific/Kiritimati' => '莱恩群岛时间（基里地马地岛）',
         'Pacific/Kosrae' => '科斯雷时间（库赛埃）',
         'Pacific/Kwajalein' => '马绍尔群岛时间（夸贾林）',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => '帕劳时间',
         'Pacific/Pitcairn' => '皮特凯恩时间',
         'Pacific/Ponape' => '波纳佩时间（波纳佩岛）',
+        'Pacific/Pohnpei' => '波纳佩时间（波纳佩岛）',
         'Pacific/Port_Moresby' => '巴布亚新几内亚时间（莫尔兹比港）',
         'Pacific/Rarotonga' => '库克群岛时间（拉罗汤加）',
         'Pacific/Saipan' => '查莫罗时间（塞班）',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => '吉尔伯特群岛时间（塔拉瓦）',
         'Pacific/Tongatapu' => '汤加时间（东加塔布）',
         'Pacific/Truk' => '楚克时间（特鲁克群岛）',
+        'Pacific/Chuuk' => '楚克时间（特鲁克群岛）',
         'Pacific/Wake' => '威克岛时间',
         'Pacific/Wallis' => '瓦利斯和富图纳时间',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hant_HK.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hant_HK.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hant_HK.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hant_HK.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,6 +4,7 @@
     'Names' => [
         'Africa/Abidjan' => '格林威治標準時間（阿比贊）',
         'Africa/Asmera' => '東非時間（阿斯馬拉）',
+        'Africa/Asmara' => '東非時間（阿斯馬拉）',
         'Africa/Bangui' => '西非時間（班基）',
         'Africa/Conakry' => '格林威治標準時間（科納克里）',
         'Africa/Dar_es_Salaam' => '東非時間（達累斯薩拉姆）',
@@ -44,7 +45,9 @@
         'America/Chihuahua' => '北美中部時間（芝娃娃）',
         'America/Ciudad_Juarez' => '北美山區時間（華雷斯城）',
         'America/Coral_Harbour' => '北美東部時間（阿蒂科肯）',
+        'America/Atikokan' => '北美東部時間（阿蒂科肯）',
         'America/Cordoba' => '阿根廷時間（科爾多瓦）',
+        'America/Argentina/Cordoba' => '阿根廷時間（科爾多瓦）',
         'America/Costa_Rica' => '北美中部時間（哥斯達黎加）',
         'America/Creston' => '北美山區時間（克雷斯頓）',
         'America/Cuiaba' => '亞馬遜時間（庫亞巴）',
@@ -72,12 +75,14 @@
         'America/Indiana/Vincennes' => '北美東部時間（印第安納州溫森斯）',
         'America/Indiana/Winamac' => '北美東部時間（印第安納州威納馬克）',
         'America/Indianapolis' => '北美東部時間（印第安納波利斯）',
+        'America/Indiana/Indianapolis' => '北美東部時間（印第安納波利斯）',
         'America/Inuvik' => '北美山區時間（伊努維克）',
         'America/Iqaluit' => '北美東部時間（伊魁特）',
         'America/Jamaica' => '北美東部時間（牙買加）',
         'America/Kentucky/Monticello' => '北美東部時間（肯塔基州蒙地卻羅）',
         'America/Los_Angeles' => '北美太平洋時間（洛杉磯）',
         'America/Louisville' => '北美東部時間（路易維爾）',
+        'America/Kentucky/Louisville' => '北美東部時間（路易維爾）',
         'America/Maceio' => '巴西利亞時間（馬塞約）',
         'America/Managua' => '北美中部時間（馬那瓜）',
         'America/Martinique' => '大西洋時間（馬提尼克）',
@@ -132,11 +137,12 @@
         'Antarctica/Syowa' => '昭和基地時間（昭和站）',
         'Antarctica/Troll' => '格林威治標準時間（特羅爾站）',
         'Arctic/Longyearbyen' => '中歐時間（朗伊爾城）',
-        'Asia/Anadyr' => '阿納德爾時間',
+        'Asia/Anadyr' => '彼得羅巴甫洛夫斯克時間（阿納德爾）',
         'Asia/Ashgabat' => '土庫曼時間（阿什哈巴德）',
         'Asia/Baku' => '亞塞拜疆時間（巴庫）',
         'Asia/Bishkek' => '吉爾吉斯時間（比斯凱克）',
         'Asia/Calcutta' => '印度時間（加爾各答）',
+        'Asia/Kolkata' => '印度時間（加爾各答）',
         'Asia/Chita' => '雅庫茨克時間（赤塔）',
         'Asia/Colombo' => '印度時間（科倫坡）',
         'Asia/Dubai' => '波斯灣海域時間（杜拜）',
@@ -192,7 +198,6 @@
         'Pacific/Bougainville' => '巴布亞新畿內亞時間（布干維爾島）',
         'Pacific/Chatham' => '查坦群島時間（查塔姆）',
         'Pacific/Efate' => '瓦努阿圖時間（埃法特）',
-        'Pacific/Enderbury' => '鳳凰群島時間（恩德伯里島）',
         'Pacific/Fakaofo' => '托克勞群島時間（法考福環礁）',
         'Pacific/Funafuti' => '圖瓦盧時間（富那富提）',
         'Pacific/Galapagos' => '加拉帕戈群島時間（加拉巴哥群島）',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hant.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hant.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hant.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh_Hant.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => '東非時間（阿迪斯阿貝巴）',
         'Africa/Algiers' => '中歐時間（阿爾及爾）',
         'Africa/Asmera' => '東非時間（阿斯瑪拉）',
+        'Africa/Asmara' => '東非時間（阿斯瑪拉）',
         'Africa/Bamako' => '格林威治標準時間（巴馬科）',
         'Africa/Bangui' => '西非時間（班吉）',
         'Africa/Banjul' => '格林威治標準時間（班竹）',
@@ -78,19 +79,24 @@
         'America/Bogota' => '哥倫比亞時間（波哥大）',
         'America/Boise' => '山區時間（波夕）',
         'America/Buenos_Aires' => '阿根廷時間（布宜諾斯艾利斯）',
+        'America/Argentina/Buenos_Aires' => '阿根廷時間（布宜諾斯艾利斯）',
         'America/Cambridge_Bay' => '山區時間（劍橋灣）',
         'America/Campo_Grande' => '亞馬遜時間（格蘭場）',
         'America/Cancun' => '東部時間（坎昆）',
         'America/Caracas' => '委內瑞拉時間（卡拉卡斯）',
         'America/Catamarca' => '阿根廷時間（卡塔馬卡）',
+        'America/Argentina/Catamarca' => '阿根廷時間（卡塔馬卡）',
         'America/Cayenne' => '法屬圭亞那時間（開雲）',
         'America/Cayman' => '東部時間（開曼群島）',
         'America/Chicago' => '中部時間（芝加哥）',
         'America/Chihuahua' => '中部時間（奇華華）',
         'America/Ciudad_Juarez' => '山區時間（華雷斯）',
         'America/Coral_Harbour' => '東部時間（阿蒂科肯）',
+        'America/Atikokan' => '東部時間（阿蒂科肯）',
         'America/Cordoba' => '阿根廷時間（哥多華）',
+        'America/Argentina/Cordoba' => '阿根廷時間（哥多華）',
         'America/Costa_Rica' => '中部時間（哥斯大黎加）',
+        'America/Coyhaique' => '智利時間（科伊艾克）',
         'America/Creston' => '山區時間（克雷斯頓）',
         'America/Cuiaba' => '亞馬遜時間（古雅巴）',
         'America/Curacao' => '大西洋時間（庫拉索）',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => '巴西利亞時間（福塔力莎）',
         'America/Glace_Bay' => '大西洋時間（格雷斯貝）',
         'America/Godthab' => '格陵蘭時間（努克）',
+        'America/Nuuk' => '格陵蘭時間（努克）',
         'America/Goose_Bay' => '大西洋時間（鵝灣）',
         'America/Grand_Turk' => '東部時間（大特克島）',
         'America/Grenada' => '大西洋時間（格瑞納達）',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => '東部時間（印第安那州溫森斯）',
         'America/Indiana/Winamac' => '東部時間（印第安那州威納馬克）',
         'America/Indianapolis' => '東部時間（印第安那波里斯）',
+        'America/Indiana/Indianapolis' => '東部時間（印第安那波里斯）',
         'America/Inuvik' => '山區時間（伊奴維克）',
         'America/Iqaluit' => '東部時間（伊魁特）',
         'America/Jamaica' => '東部時間（牙買加）',
         'America/Jujuy' => '阿根廷時間（胡胡伊）',
+        'America/Argentina/Jujuy' => '阿根廷時間（胡胡伊）',
         'America/Juneau' => '阿拉斯加時間（朱諾）',
         'America/Kentucky/Monticello' => '東部時間（肯塔基州蒙地卻羅）',
         'America/Kralendijk' => '大西洋時間（克拉倫代克）',
@@ -136,6 +145,7 @@
         'America/Lima' => '秘魯時間（利馬）',
         'America/Los_Angeles' => '太平洋時間（洛杉磯）',
         'America/Louisville' => '東部時間（路易斯維爾）',
+        'America/Kentucky/Louisville' => '東部時間（路易斯維爾）',
         'America/Lower_Princes' => '大西洋時間（下太子區）',
         'America/Maceio' => '巴西利亞時間（馬瑟歐）',
         'America/Managua' => '中部時間（馬拿瓜）',
@@ -145,6 +155,7 @@
         'America/Matamoros' => '中部時間（馬塔莫羅斯）',
         'America/Mazatlan' => '墨西哥太平洋時間（馬薩特蘭）',
         'America/Mendoza' => '阿根廷時間（門多薩）',
+        'America/Argentina/Mendoza' => '阿根廷時間（門多薩）',
         'America/Menominee' => '中部時間（美諾米尼）',
         'America/Merida' => '中部時間（梅里達）',
         'America/Metlakatla' => '阿拉斯加時間（梅特拉卡特拉）',
@@ -212,7 +223,7 @@
         'Asia/Aden' => '阿拉伯時間（亞丁）',
         'Asia/Almaty' => '哈薩克時間（阿拉木圖）',
         'Asia/Amman' => '東歐時間（安曼）',
-        'Asia/Anadyr' => '阿納德爾時間（阿那底）',
+        'Asia/Anadyr' => '彼得羅巴甫洛夫斯克時間（阿那底）',
         'Asia/Aqtau' => '哈薩克時間（阿克套）',
         'Asia/Aqtobe' => '哈薩克時間（阿克托比）',
         'Asia/Ashgabat' => '土庫曼時間（阿什哈巴特）',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => '阿拉伯時間（巴林）',
         'Asia/Baku' => '亞塞拜然時間（巴庫）',
         'Asia/Bangkok' => '中南半島時間（曼谷）',
-        'Asia/Barnaul' => '俄羅斯時間（巴爾瑙爾）',
+        'Asia/Barnaul' => '克拉斯諾亞爾斯克時間（巴爾瑙爾）',
         'Asia/Beirut' => '東歐時間（貝魯特）',
         'Asia/Bishkek' => '吉爾吉斯時間（比什凱克）',
         'Asia/Brunei' => '汶萊時間',
         'Asia/Calcutta' => '印度標準時間（加爾各答）',
+        'Asia/Kolkata' => '印度標準時間（加爾各答）',
         'Asia/Chita' => '雅庫次克時間（赤塔）',
         'Asia/Colombo' => '印度標準時間（可倫坡）',
         'Asia/Damascus' => '東歐時間（大馬士革）',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => '彼得羅巴甫洛夫斯克時間（堪察加）',
         'Asia/Karachi' => '巴基斯坦時間（喀拉蚩）',
         'Asia/Katmandu' => '尼泊爾時間（加德滿都）',
+        'Asia/Kathmandu' => '尼泊爾時間（加德滿都）',
         'Asia/Khandyga' => '雅庫次克時間（堪地加）',
         'Asia/Krasnoyarsk' => '克拉斯諾亞爾斯克時間',
         'Asia/Kuala_Lumpur' => '馬來西亞時間（吉隆坡）',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => '波斯灣海域標準時間（馬斯開特）',
         'Asia/Nicosia' => '東歐時間（尼古西亞）',
         'Asia/Novokuznetsk' => '克拉斯諾亞爾斯克時間（新庫茲涅茨克）',
-        'Asia/Novosibirsk' => '新西伯利亞時間',
+        'Asia/Novosibirsk' => '克拉斯諾亞爾斯克時間（新西伯利亞）',
         'Asia/Omsk' => '鄂木斯克時間',
         'Asia/Oral' => '哈薩克時間（烏拉爾）',
         'Asia/Phnom_Penh' => '中南半島時間（金邊）',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => '哈薩克時間（庫斯塔奈）',
         'Asia/Qyzylorda' => '哈薩克時間（克孜勒奧爾達）',
         'Asia/Rangoon' => '緬甸時間（仰光）',
+        'Asia/Yangon' => '緬甸時間（仰光）',
         'Asia/Riyadh' => '阿拉伯時間（利雅德）',
         'Asia/Saigon' => '中南半島時間（胡志明市）',
-        'Asia/Sakhalin' => '庫頁島時間',
+        'Asia/Ho_Chi_Minh' => '中南半島時間（胡志明市）',
+        'Asia/Sakhalin' => '馬加丹時間（庫頁島）',
         'Asia/Samarkand' => '烏茲別克時間（撒馬爾罕）',
         'Asia/Seoul' => '韓國時間（首爾）',
         'Asia/Shanghai' => '中國時間（上海）',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => '伊朗時間（德黑蘭）',
         'Asia/Thimphu' => '不丹時間（廷布）',
         'Asia/Tokyo' => '日本時間（東京）',
-        'Asia/Tomsk' => '俄羅斯時間（托木斯克）',
+        'Asia/Tomsk' => '克拉斯諾亞爾斯克時間（托木斯克）',
         'Asia/Ulaanbaatar' => '烏蘭巴托時間',
         'Asia/Urumqi' => '中國時間（烏魯木齊）',
         'Asia/Ust-Nera' => '海參崴時間（烏斯內拉）',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => '西歐時間（加納利）',
         'Atlantic/Cape_Verde' => '維德角時間',
         'Atlantic/Faeroe' => '西歐時間（法羅群島）',
+        'Atlantic/Faroe' => '西歐時間（法羅群島）',
         'Atlantic/Madeira' => '西歐時間（馬得拉群島）',
         'Atlantic/Reykjavik' => '格林威治標準時間（雷克雅維克）',
         'Atlantic/South_Georgia' => '南喬治亞時間',
@@ -316,7 +332,7 @@
         'Etc/UTC' => '世界標準時間',
         'Europe/Amsterdam' => '中歐時間（阿姆斯特丹）',
         'Europe/Andorra' => '中歐時間（安道爾）',
-        'Europe/Astrakhan' => '莫斯科時間（阿斯特拉罕）',
+        'Europe/Astrakhan' => '薩馬拉時間（阿斯特拉罕）',
         'Europe/Athens' => '東歐時間（雅典）',
         'Europe/Belgrade' => '中歐時間（貝爾格勒）',
         'Europe/Berlin' => '中歐時間（柏林）',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => '格林威治標準時間（澤西島）',
         'Europe/Kaliningrad' => '東歐時間（加里寧格勒）',
         'Europe/Kiev' => '東歐時間（基輔）',
-        'Europe/Kirov' => '俄羅斯時間（基洛夫）',
+        'Europe/Kyiv' => '東歐時間（基輔）',
+        'Europe/Kirov' => '莫斯科時間（基洛夫）',
         'Europe/Lisbon' => '西歐時間（里斯本）',
         'Europe/Ljubljana' => '中歐時間（盧比安納）',
         'Europe/London' => '格林威治標準時間（倫敦）',
@@ -356,19 +373,19 @@
         'Europe/Samara' => '薩馬拉時間（沙馬拉）',
         'Europe/San_Marino' => '中歐時間（聖馬利諾）',
         'Europe/Sarajevo' => '中歐時間（塞拉耶佛）',
-        'Europe/Saratov' => '莫斯科時間（薩拉托夫）',
+        'Europe/Saratov' => '薩馬拉時間（薩拉托夫）',
         'Europe/Simferopol' => '莫斯科時間（辛非洛浦）',
         'Europe/Skopje' => '中歐時間（史高比耶）',
         'Europe/Sofia' => '東歐時間（索菲亞）',
         'Europe/Stockholm' => '中歐時間（斯德哥爾摩）',
         'Europe/Tallinn' => '東歐時間（塔林）',
         'Europe/Tirane' => '中歐時間（地拉那）',
-        'Europe/Ulyanovsk' => '莫斯科時間（烏里揚諾夫斯克）',
+        'Europe/Ulyanovsk' => '薩馬拉時間（烏里揚諾夫斯克）',
         'Europe/Vaduz' => '中歐時間（瓦都茲）',
         'Europe/Vatican' => '中歐時間（梵蒂岡）',
         'Europe/Vienna' => '中歐時間（維也納）',
         'Europe/Vilnius' => '東歐時間（維爾紐斯）',
-        'Europe/Volgograd' => '伏爾加格勒時間',
+        'Europe/Volgograd' => '莫斯科時間（伏爾加格勒）',
         'Europe/Warsaw' => '中歐時間（華沙）',
         'Europe/Zagreb' => '中歐時間（札格瑞布）',
         'Europe/Zurich' => '中歐時間（蘇黎世）',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => '查坦群島時間',
         'Pacific/Easter' => '復活節島時間（復活島）',
         'Pacific/Efate' => '萬那杜時間（埃法特）',
-        'Pacific/Enderbury' => '鳳凰群島時間（恩得伯理島）',
+        'Pacific/Enderbury' => '鳳凰群島時間（坎頓島）',
+        'Pacific/Kanton' => '鳳凰群島時間（坎頓島）',
         'Pacific/Fakaofo' => '托克勞群島時間（法考福）',
         'Pacific/Fiji' => '斐濟時間',
         'Pacific/Funafuti' => '吐瓦魯時間（富那富提）',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => '甘比爾群島時間',
         'Pacific/Guadalcanal' => '索羅門群島時間（瓜達康納爾島）',
         'Pacific/Guam' => '查莫洛時間（關島）',
-        'Pacific/Honolulu' => '夏威夷-阿留申時間（檀香山）',
+        'Pacific/Honolulu' => '夏威夷-阿留申標準時間（檀香山）',
         'Pacific/Kiritimati' => '萊恩群島時間（基里地馬地島）',
         'Pacific/Kosrae' => '科斯瑞時間',
         'Pacific/Kwajalein' => '馬紹爾群島時間（瓜加林島）',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => '帛琉時間',
         'Pacific/Pitcairn' => '皮特肯時間（皮特肯群島）',
         'Pacific/Ponape' => '波納佩時間',
+        'Pacific/Pohnpei' => '波納佩時間',
         'Pacific/Port_Moresby' => '巴布亞紐幾內亞時間（莫士比港）',
         'Pacific/Rarotonga' => '庫克群島時間（拉羅湯加）',
         'Pacific/Saipan' => '查莫洛時間（塞班）',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => '吉爾伯特群島時間（塔拉瓦）',
         'Pacific/Tongatapu' => '東加時間（東加塔布島）',
         'Pacific/Truk' => '楚克島時間',
+        'Pacific/Chuuk' => '楚克島時間',
         'Pacific/Wake' => '威克島時間',
         'Pacific/Wallis' => '瓦利斯和富圖納群島時間',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zh.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => '东部非洲时间（亚的斯亚贝巴）',
         'Africa/Algiers' => '中欧时间（阿尔及尔）',
         'Africa/Asmera' => '东部非洲时间（阿斯马拉）',
+        'Africa/Asmara' => '东部非洲时间（阿斯马拉）',
         'Africa/Bamako' => '格林尼治标准时间（巴马科）',
         'Africa/Bangui' => '西部非洲时间（班吉）',
         'Africa/Banjul' => '格林尼治标准时间（班珠尔）',
@@ -78,19 +79,24 @@
         'America/Bogota' => '哥伦比亚时间（波哥大）',
         'America/Boise' => '北美山区时间（博伊西）',
         'America/Buenos_Aires' => '阿根廷时间（布宜诺斯艾利斯）',
+        'America/Argentina/Buenos_Aires' => '阿根廷时间（布宜诺斯艾利斯）',
         'America/Cambridge_Bay' => '北美山区时间（剑桥湾）',
         'America/Campo_Grande' => '亚马逊时间（大坎普）',
         'America/Cancun' => '北美东部时间（坎昆）',
         'America/Caracas' => '委内瑞拉时间（加拉加斯）',
         'America/Catamarca' => '阿根廷时间（卡塔马卡）',
+        'America/Argentina/Catamarca' => '阿根廷时间（卡塔马卡）',
         'America/Cayenne' => '法属圭亚那标准时间（卡宴）',
         'America/Cayman' => '北美东部时间（开曼）',
         'America/Chicago' => '北美中部时间（芝加哥）',
         'America/Chihuahua' => '北美中部时间（奇瓦瓦）',
         'America/Ciudad_Juarez' => '北美山区时间（华雷斯城）',
         'America/Coral_Harbour' => '北美东部时间（阿蒂科肯）',
+        'America/Atikokan' => '北美东部时间（阿蒂科肯）',
         'America/Cordoba' => '阿根廷时间（科尔多瓦）',
+        'America/Argentina/Cordoba' => '阿根廷时间（科尔多瓦）',
         'America/Costa_Rica' => '北美中部时间（哥斯达黎加）',
+        'America/Coyhaique' => '智利时间（科伊艾克）',
         'America/Creston' => '北美山区时间（克雷斯顿）',
         'America/Cuiaba' => '亚马逊时间（库亚巴）',
         'America/Curacao' => '大西洋时间（库拉索）',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => '巴西利亚时间（福塔雷萨）',
         'America/Glace_Bay' => '大西洋时间（格莱斯贝）',
         'America/Godthab' => '格陵兰时间（努克）',
+        'America/Nuuk' => '格陵兰时间（努克）',
         'America/Goose_Bay' => '大西洋时间（古斯湾）',
         'America/Grand_Turk' => '北美东部时间（大特克）',
         'America/Grenada' => '大西洋时间（格林纳达）',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => '北美东部时间（印第安纳州温森斯）',
         'America/Indiana/Winamac' => '北美东部时间（印第安纳州威纳马克）',
         'America/Indianapolis' => '北美东部时间（印第安纳波利斯）',
+        'America/Indiana/Indianapolis' => '北美东部时间（印第安纳波利斯）',
         'America/Inuvik' => '北美山区时间（伊努维克）',
         'America/Iqaluit' => '北美东部时间（伊魁特）',
         'America/Jamaica' => '北美东部时间（牙买加）',
         'America/Jujuy' => '阿根廷时间（胡胡伊）',
+        'America/Argentina/Jujuy' => '阿根廷时间（胡胡伊）',
         'America/Juneau' => '阿拉斯加时间（朱诺）',
         'America/Kentucky/Monticello' => '北美东部时间（肯塔基州蒙蒂塞洛）',
         'America/Kralendijk' => '大西洋时间（克拉伦代克）',
@@ -136,6 +145,7 @@
         'America/Lima' => '秘鲁时间（利马）',
         'America/Los_Angeles' => '北美太平洋时间（洛杉矶）',
         'America/Louisville' => '北美东部时间（路易斯维尔）',
+        'America/Kentucky/Louisville' => '北美东部时间（路易斯维尔）',
         'America/Lower_Princes' => '大西洋时间（下太子区）',
         'America/Maceio' => '巴西利亚时间（马塞约）',
         'America/Managua' => '北美中部时间（马那瓜）',
@@ -145,6 +155,7 @@
         'America/Matamoros' => '北美中部时间（马塔莫罗斯）',
         'America/Mazatlan' => '墨西哥太平洋时间（马萨特兰）',
         'America/Mendoza' => '阿根廷时间（门多萨）',
+        'America/Argentina/Mendoza' => '阿根廷时间（门多萨）',
         'America/Menominee' => '北美中部时间（梅诺米尼）',
         'America/Merida' => '北美中部时间（梅里达）',
         'America/Metlakatla' => '阿拉斯加时间（梅特拉卡特拉）',
@@ -200,7 +211,7 @@
         'Antarctica/Casey' => '澳大利亚西部时间（卡塞）',
         'Antarctica/Davis' => '戴维斯时间',
         'Antarctica/DumontDUrville' => '迪蒙·迪维尔时间',
-        'Antarctica/Macquarie' => '澳大利亚东部时间（麦格理）',
+        'Antarctica/Macquarie' => '澳大利亚东部时间（麦夸里岛）',
         'Antarctica/Mawson' => '莫森时间',
         'Antarctica/McMurdo' => '新西兰时间（麦克默多）',
         'Antarctica/Palmer' => '智利时间（帕尔默）',
@@ -212,7 +223,7 @@
         'Asia/Aden' => '阿拉伯时间（亚丁）',
         'Asia/Almaty' => '哈萨克斯坦时间（阿拉木图）',
         'Asia/Amman' => '东欧时间（安曼）',
-        'Asia/Anadyr' => '阿纳德尔时间',
+        'Asia/Anadyr' => '彼得罗巴甫洛夫斯克-堪察加时间（阿纳德尔）',
         'Asia/Aqtau' => '哈萨克斯坦时间（阿克套）',
         'Asia/Aqtobe' => '哈萨克斯坦时间（阿克托别）',
         'Asia/Ashgabat' => '土库曼斯坦时间（阿什哈巴德）',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => '阿拉伯时间（巴林）',
         'Asia/Baku' => '阿塞拜疆时间（巴库）',
         'Asia/Bangkok' => '中南半岛时间（曼谷）',
-        'Asia/Barnaul' => '俄罗斯时间（巴尔瑙尔）',
+        'Asia/Barnaul' => '克拉斯诺亚尔斯克时间（巴尔瑙尔）',
         'Asia/Beirut' => '东欧时间（贝鲁特）',
         'Asia/Bishkek' => '吉尔吉斯斯坦时间（比什凯克）',
         'Asia/Brunei' => '文莱达鲁萨兰时间',
         'Asia/Calcutta' => '印度时间（加尔各答）',
+        'Asia/Kolkata' => '印度时间（加尔各答）',
         'Asia/Chita' => '雅库茨克时间（赤塔）',
         'Asia/Colombo' => '印度时间（科伦坡）',
         'Asia/Damascus' => '东欧时间（大马士革）',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => '彼得罗巴甫洛夫斯克-堪察加时间',
         'Asia/Karachi' => '巴基斯坦时间（卡拉奇）',
         'Asia/Katmandu' => '尼泊尔时间（加德满都）',
+        'Asia/Kathmandu' => '尼泊尔时间（加德满都）',
         'Asia/Khandyga' => '雅库茨克时间（汉德加）',
         'Asia/Krasnoyarsk' => '克拉斯诺亚尔斯克时间',
         'Asia/Kuala_Lumpur' => '马来西亚时间（吉隆坡）',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => '海湾标准时间（马斯喀特）',
         'Asia/Nicosia' => '东欧时间（尼科西亚）',
         'Asia/Novokuznetsk' => '克拉斯诺亚尔斯克时间（新库兹涅茨克）',
-        'Asia/Novosibirsk' => '新西伯利亚时间',
+        'Asia/Novosibirsk' => '克拉斯诺亚尔斯克时间（新西伯利亚）',
         'Asia/Omsk' => '鄂木斯克时间',
         'Asia/Oral' => '哈萨克斯坦时间（乌拉尔）',
         'Asia/Phnom_Penh' => '中南半岛时间（金边）',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => '哈萨克斯坦时间（库斯塔奈）',
         'Asia/Qyzylorda' => '哈萨克斯坦时间（克孜洛尔达）',
         'Asia/Rangoon' => '缅甸时间（仰光）',
+        'Asia/Yangon' => '缅甸时间（仰光）',
         'Asia/Riyadh' => '阿拉伯时间（利雅得）',
         'Asia/Saigon' => '中南半岛时间（胡志明市）',
-        'Asia/Sakhalin' => '库页岛时间（萨哈林）',
+        'Asia/Ho_Chi_Minh' => '中南半岛时间（胡志明市）',
+        'Asia/Sakhalin' => '马加丹时间（萨哈林）',
         'Asia/Samarkand' => '乌兹别克斯坦时间（撒马尔罕）',
         'Asia/Seoul' => '韩国时间（首尔）',
         'Asia/Shanghai' => '中国时间（上海）',
@@ -282,12 +297,12 @@
         'Asia/Tehran' => '伊朗时间（德黑兰）',
         'Asia/Thimphu' => '不丹时间（廷布）',
         'Asia/Tokyo' => '日本时间（东京）',
-        'Asia/Tomsk' => '俄罗斯时间（托木斯克）',
+        'Asia/Tomsk' => '克拉斯诺亚尔斯克时间（托木斯克）',
         'Asia/Ulaanbaatar' => '乌兰巴托时间',
         'Asia/Urumqi' => '中国时间（乌鲁木齐）',
         'Asia/Ust-Nera' => '海参崴时间（乌斯内拉）',
         'Asia/Vientiane' => '中南半岛时间（万象）',
-        'Asia/Vladivostok' => '海参崴时间（符拉迪沃斯托克）',
+        'Asia/Vladivostok' => '海参崴时间',
         'Asia/Yakutsk' => '雅库茨克时间',
         'Asia/Yekaterinburg' => '叶卡捷琳堡时间',
         'Asia/Yerevan' => '亚美尼亚时间（埃里温）',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => '西欧时间（加那利）',
         'Atlantic/Cape_Verde' => '佛得角时间',
         'Atlantic/Faeroe' => '西欧时间（法罗）',
+        'Atlantic/Faroe' => '西欧时间（法罗）',
         'Atlantic/Madeira' => '西欧时间（马德拉）',
         'Atlantic/Reykjavik' => '格林尼治标准时间（雷克雅未克）',
         'Atlantic/South_Georgia' => '南乔治亚岛时间',
@@ -316,7 +332,7 @@
         'Etc/UTC' => '协调世界时',
         'Europe/Amsterdam' => '中欧时间（阿姆斯特丹）',
         'Europe/Andorra' => '中欧时间（安道尔）',
-        'Europe/Astrakhan' => '莫斯科时间（阿斯特拉罕）',
+        'Europe/Astrakhan' => '萨马拉时间（阿斯特拉罕）',
         'Europe/Athens' => '东欧时间（雅典）',
         'Europe/Belgrade' => '中欧时间（贝尔格莱德）',
         'Europe/Berlin' => '中欧时间（柏林）',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => '格林尼治标准时间（泽西岛）',
         'Europe/Kaliningrad' => '东欧时间（加里宁格勒）',
         'Europe/Kiev' => '东欧时间（基辅）',
-        'Europe/Kirov' => '俄罗斯时间（基洛夫）',
+        'Europe/Kyiv' => '东欧时间（基辅）',
+        'Europe/Kirov' => '莫斯科时间（基洛夫）',
         'Europe/Lisbon' => '西欧时间（里斯本）',
         'Europe/Ljubljana' => '中欧时间（卢布尔雅那）',
         'Europe/London' => '格林尼治标准时间（伦敦）',
@@ -356,19 +373,19 @@
         'Europe/Samara' => '萨马拉时间',
         'Europe/San_Marino' => '中欧时间（圣马力诺）',
         'Europe/Sarajevo' => '中欧时间（萨拉热窝）',
-        'Europe/Saratov' => '莫斯科时间（萨拉托夫）',
+        'Europe/Saratov' => '萨马拉时间（萨拉托夫）',
         'Europe/Simferopol' => '莫斯科时间（辛菲罗波尔）',
         'Europe/Skopje' => '中欧时间（斯科普里）',
         'Europe/Sofia' => '东欧时间（索非亚）',
         'Europe/Stockholm' => '中欧时间（斯德哥尔摩）',
         'Europe/Tallinn' => '东欧时间（塔林）',
         'Europe/Tirane' => '中欧时间（地拉那）',
-        'Europe/Ulyanovsk' => '莫斯科时间（乌里扬诺夫斯克）',
+        'Europe/Ulyanovsk' => '萨马拉时间（乌里扬诺夫斯克）',
         'Europe/Vaduz' => '中欧时间（瓦杜兹）',
         'Europe/Vatican' => '中欧时间（梵蒂冈）',
         'Europe/Vienna' => '中欧时间（维也纳）',
         'Europe/Vilnius' => '东欧时间（维尔纽斯）',
-        'Europe/Volgograd' => '伏尔加格勒时间',
+        'Europe/Volgograd' => '莫斯科时间（伏尔加格勒）',
         'Europe/Warsaw' => '中欧时间（华沙）',
         'Europe/Zagreb' => '中欧时间（萨格勒布）',
         'Europe/Zurich' => '中欧时间（苏黎世）',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => '查塔姆时间',
         'Pacific/Easter' => '复活节岛时间',
         'Pacific/Efate' => '瓦努阿图时间（埃法特）',
-        'Pacific/Enderbury' => '菲尼克斯群岛时间（恩德伯里）',
+        'Pacific/Enderbury' => '菲尼克斯群岛时间（坎顿岛）',
+        'Pacific/Kanton' => '菲尼克斯群岛时间（坎顿岛）',
         'Pacific/Fakaofo' => '托克劳时间（法考福）',
         'Pacific/Fiji' => '斐济时间',
         'Pacific/Funafuti' => '图瓦卢时间（富纳富提）',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => '甘比尔时间',
         'Pacific/Guadalcanal' => '所罗门群岛时间（瓜达尔卡纳尔）',
         'Pacific/Guam' => '查莫罗时间（关岛）',
-        'Pacific/Honolulu' => '夏威夷-阿留申时间（檀香山）',
+        'Pacific/Honolulu' => '夏威夷-阿留申标准时间（檀香山）',
         'Pacific/Kiritimati' => '莱恩群岛时间（基里地马地岛）',
         'Pacific/Kosrae' => '科斯雷时间（库赛埃）',
         'Pacific/Kwajalein' => '马绍尔群岛时间（夸贾林）',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => '帕劳时间',
         'Pacific/Pitcairn' => '皮特凯恩时间',
         'Pacific/Ponape' => '波纳佩时间（波纳佩岛）',
+        'Pacific/Pohnpei' => '波纳佩时间（波纳佩岛）',
         'Pacific/Port_Moresby' => '巴布亚新几内亚时间（莫尔兹比港）',
         'Pacific/Rarotonga' => '库克群岛时间（拉罗汤加）',
         'Pacific/Saipan' => '查莫罗时间（塞班）',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => '吉尔伯特群岛时间（塔拉瓦）',
         'Pacific/Tongatapu' => '汤加时间（东加塔布）',
         'Pacific/Truk' => '楚克时间（特鲁克群岛）',
+        'Pacific/Chuuk' => '楚克时间（特鲁克群岛）',
         'Pacific/Wake' => '威克岛时间',
         'Pacific/Wallis' => '瓦利斯和富图纳时间',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/timezones/zu.php	2026-05-20 10:56:49.000000000 +0200
@@ -7,6 +7,7 @@
         'Africa/Addis_Ababa' => 'Isikhathi saseMpumalanga Afrika (i-Addis Ababa)',
         'Africa/Algiers' => 'Isikhathi sase-Central Europe (i-Algiers)',
         'Africa/Asmera' => 'Isikhathi saseMpumalanga Afrika (i-Asmara)',
+        'Africa/Asmara' => 'Isikhathi saseMpumalanga Afrika (i-Asmara)',
         'Africa/Bamako' => 'Isikhathi sase-Greenwich Mean (i-Bamako)',
         'Africa/Bangui' => 'Isikhathi saseNtshonalanga Afrika (i-Bangui)',
         'Africa/Banjul' => 'Isikhathi sase-Greenwich Mean (i-Banjul)',
@@ -78,19 +79,24 @@
         'America/Bogota' => 'Isikhathi sase-Colombia (i-Bogota)',
         'America/Boise' => 'Isikhathi sase-North American Mountain (i-Boise)',
         'America/Buenos_Aires' => 'Isikhathi sase-Argentina (i-Buenos Aires)',
+        'America/Argentina/Buenos_Aires' => 'Isikhathi sase-Argentina (i-Buenos Aires)',
         'America/Cambridge_Bay' => 'Isikhathi sase-North American Mountain (i-Cambridge Bay)',
         'America/Campo_Grande' => 'Isikhathi sase-Amazon (i-Campo Grande)',
         'America/Cancun' => 'Isikhathi sase-North American East (i-Cancun)',
         'America/Caracas' => 'Isikhathi sase-Venezuela (i-Caracas)',
         'America/Catamarca' => 'Isikhathi sase-Argentina (i-Catamarca)',
+        'America/Argentina/Catamarca' => 'Isikhathi sase-Argentina (i-Catamarca)',
         'America/Cayenne' => 'Isikhathi sase-French Guiana (i-Cayenne)',
         'America/Cayman' => 'Isikhathi sase-North American East (i-Cayman)',
         'America/Chicago' => 'Isikhathi sase-North American Central (i-Chicago)',
         'America/Chihuahua' => 'Isikhathi sase-North American Central (i-Chihuahua)',
         'America/Ciudad_Juarez' => 'Isikhathi sase-North American Mountain (Ciudad Juárez)',
         'America/Coral_Harbour' => 'Isikhathi sase-North American East (i-Atikokan)',
+        'America/Atikokan' => 'Isikhathi sase-North American East (i-Atikokan)',
         'America/Cordoba' => 'Isikhathi sase-Argentina (i-Cordoba)',
+        'America/Argentina/Cordoba' => 'Isikhathi sase-Argentina (i-Cordoba)',
         'America/Costa_Rica' => 'Isikhathi sase-North American Central (i-Costa Rica)',
+        'America/Coyhaique' => 'Isikhathi sase-Chile (Coyhaique)',
         'America/Creston' => 'Isikhathi sase-North American Mountain (i-Creston)',
         'America/Cuiaba' => 'Isikhathi sase-Amazon (i-Cuiaba)',
         'America/Curacao' => 'Isikhathi sase-Atlantic (i-Curaçao)',
@@ -107,6 +113,7 @@
         'America/Fortaleza' => 'Isikhathi sase-Brasilia (i-Fortaleza)',
         'America/Glace_Bay' => 'Isikhathi sase-Atlantic (i-Glace Bay)',
         'America/Godthab' => 'Isikhathi sase-i-Greenland (i-Nuuk)',
+        'America/Nuuk' => 'Isikhathi sase-i-Greenland (i-Nuuk)',
         'America/Goose_Bay' => 'Isikhathi sase-Atlantic (i-Goose Bay)',
         'America/Grand_Turk' => 'Isikhathi sase-North American East (i-Grand Turk)',
         'America/Grenada' => 'Isikhathi sase-Atlantic (i-Grenada)',
@@ -125,10 +132,12 @@
         'America/Indiana/Vincennes' => 'Isikhathi sase-North American East (i-Vincennes, Indiana)',
         'America/Indiana/Winamac' => 'Isikhathi sase-North American East (i-Winamac, Indiana)',
         'America/Indianapolis' => 'Isikhathi sase-North American East (i-Indianapolis)',
+        'America/Indiana/Indianapolis' => 'Isikhathi sase-North American East (i-Indianapolis)',
         'America/Inuvik' => 'Isikhathi sase-North American Mountain (i-Inuvik)',
         'America/Iqaluit' => 'Isikhathi sase-North American East (i-Iqaluit)',
         'America/Jamaica' => 'Isikhathi sase-North American East (i-Jamaica)',
         'America/Jujuy' => 'Isikhathi sase-Argentina (i-Jujuy)',
+        'America/Argentina/Jujuy' => 'Isikhathi sase-Argentina (i-Jujuy)',
         'America/Juneau' => 'Isikhathi sase-Alaska (i-Juneau)',
         'America/Kentucky/Monticello' => 'Isikhathi sase-North American East (i-Monticello, Kentucky)',
         'America/Kralendijk' => 'Isikhathi sase-Atlantic (i-Kralendijk)',
@@ -136,6 +145,7 @@
         'America/Lima' => 'Isikhathi sase-Peru (i-Lima)',
         'America/Los_Angeles' => 'Isikhathi sase-North American Pacific (i-Los Angeles)',
         'America/Louisville' => 'Isikhathi sase-North American East (i-Louisville)',
+        'America/Kentucky/Louisville' => 'Isikhathi sase-North American East (i-Louisville)',
         'America/Lower_Princes' => 'Isikhathi sase-Atlantic (i-Lower Prince’s Quarter)',
         'America/Maceio' => 'Isikhathi sase-Brasilia (i-Maceio)',
         'America/Managua' => 'Isikhathi sase-North American Central (i-Managua)',
@@ -145,6 +155,7 @@
         'America/Matamoros' => 'Isikhathi sase-North American Central (i-Matamoros)',
         'America/Mazatlan' => 'Isikhathi sase-Mexican Pacific (i-Mazatlan)',
         'America/Mendoza' => 'Isikhathi sase-Argentina (i-Mendoza)',
+        'America/Argentina/Mendoza' => 'Isikhathi sase-Argentina (i-Mendoza)',
         'America/Menominee' => 'Isikhathi sase-North American Central (i-Menominee)',
         'America/Merida' => 'Isikhathi sase-North American Central (i-Merida)',
         'America/Metlakatla' => 'Isikhathi sase-Alaska (i-Metlakatla)',
@@ -212,7 +223,7 @@
         'Asia/Aden' => 'Isikhathi sase-Arabian (i-Aden)',
         'Asia/Almaty' => 'Isikhathi saseKazakhstan (i-Almaty)',
         'Asia/Amman' => 'Isikhathi sase-Eastern Europe (i-Amman)',
-        'Asia/Anadyr' => 'esase-Anadyr Time (i-Anadyr)',
+        'Asia/Anadyr' => 'esase-Petropavlovsk-Kamchatski Time (i-Anadyr)',
         'Asia/Aqtau' => 'Isikhathi saseKazakhstan (i-Aqtau)',
         'Asia/Aqtobe' => 'Isikhathi saseKazakhstan (i-Aqtobe)',
         'Asia/Ashgabat' => 'Isikhathi sase-Turkmenistan (i-Ashgabat)',
@@ -221,11 +232,12 @@
         'Asia/Bahrain' => 'Isikhathi sase-Arabian (i-Bahrain)',
         'Asia/Baku' => 'Isikhathi sase-Azerbaijan (i-Baku)',
         'Asia/Bangkok' => 'Isikhathi sase-Indochina (i-Bangkok)',
-        'Asia/Barnaul' => 'Isikhathi sase-i-Russia (i-Barnaul)',
+        'Asia/Barnaul' => 'Isikhathi sase-Krasnoyarsk (i-Barnaul)',
         'Asia/Beirut' => 'Isikhathi sase-Eastern Europe (i-Beirut)',
         'Asia/Bishkek' => 'Isikhathi sase-Kyrgystan (i-Bishkek)',
         'Asia/Brunei' => 'Isikhathi sase-Brunei Darussalam (i-Brunei)',
         'Asia/Calcutta' => 'Isikhathi sase-India esivamile (i-Kolkata)',
+        'Asia/Kolkata' => 'Isikhathi sase-India esivamile (i-Kolkata)',
         'Asia/Chita' => 'Isikhathi sase-Yakutsk (i-Chita)',
         'Asia/Colombo' => 'Isikhathi sase-India esivamile (i-Colombo)',
         'Asia/Damascus' => 'Isikhathi sase-Eastern Europe (i-Damascus)',
@@ -246,6 +258,7 @@
         'Asia/Kamchatka' => 'esase-Petropavlovsk-Kamchatski Time (i-Kamchatka)',
         'Asia/Karachi' => 'Isikhathi sase-Pakistan (i-Karachi)',
         'Asia/Katmandu' => 'Isikhathi sase-Nepal (i-Kathmandu)',
+        'Asia/Kathmandu' => 'Isikhathi sase-Nepal (i-Kathmandu)',
         'Asia/Khandyga' => 'Isikhathi sase-Yakutsk (i-Khandyga)',
         'Asia/Krasnoyarsk' => 'Isikhathi sase-Krasnoyarsk (i-Krasnoyarsk)',
         'Asia/Kuala_Lumpur' => 'Isikhathi sase-Malaysia (i-Kuala Lumpur)',
@@ -258,7 +271,7 @@
         'Asia/Muscat' => 'Isikhathi esivamile sase-Gulf (i-Muscat)',
         'Asia/Nicosia' => 'Isikhathi sase-Eastern Europe (i-Nicosia)',
         'Asia/Novokuznetsk' => 'Isikhathi sase-Krasnoyarsk (i-Novokuznetsk)',
-        'Asia/Novosibirsk' => 'Isikhathi sase-Novosibirsk (i-Novosibirsk)',
+        'Asia/Novosibirsk' => 'Isikhathi sase-Krasnoyarsk (i-Novosibirsk)',
         'Asia/Omsk' => 'Isikhathi sase-Omsk (i-Omsk)',
         'Asia/Oral' => 'Isikhathi saseKazakhstan (i-Oral)',
         'Asia/Phnom_Penh' => 'Isikhathi sase-Indochina (i-Phnom Penh)',
@@ -268,9 +281,11 @@
         'Asia/Qostanay' => 'Isikhathi saseKazakhstan (I-Kostanay)',
         'Asia/Qyzylorda' => 'Isikhathi saseKazakhstan (i-Qyzylorda)',
         'Asia/Rangoon' => 'Isikhathi sase-Myanmar (i-Rangoon)',
+        'Asia/Yangon' => 'Isikhathi sase-Myanmar (i-Rangoon)',
         'Asia/Riyadh' => 'Isikhathi sase-Arabian (i-Riyadh)',
         'Asia/Saigon' => 'Isikhathi sase-Indochina (i-Ho Chi Minh City)',
-        'Asia/Sakhalin' => 'Isikhathi sase-Sakhalin (i-Sakhalin)',
+        'Asia/Ho_Chi_Minh' => 'Isikhathi sase-Indochina (i-Ho Chi Minh City)',
+        'Asia/Sakhalin' => 'Isikhathi sase-Magadan (i-Sakhalin)',
         'Asia/Samarkand' => 'Isikhathi sase-Uzbekistan (i-Samarkand)',
         'Asia/Seoul' => 'Isikhathi sase-Korea (i-Seoul)',
         'Asia/Shanghai' => 'Isikhathi sase-China (i-Shanghai)',
@@ -282,7 +297,7 @@
         'Asia/Tehran' => 'Isikhathi sase-Iran (i-Tehran)',
         'Asia/Thimphu' => 'Isikhathi sase-Bhutan (i-Thimphu)',
         'Asia/Tokyo' => 'Isikhathi sase-Japan (i-Tokyo)',
-        'Asia/Tomsk' => 'Isikhathi sase-i-Russia (i-Tomsk)',
+        'Asia/Tomsk' => 'Isikhathi sase-Krasnoyarsk (i-Tomsk)',
         'Asia/Ulaanbaatar' => 'Isikhathi sase-Ulan Bator (i-Ulaanbaatar)',
         'Asia/Urumqi' => 'Isikhathi sase-i-China (i-Urumqi)',
         'Asia/Ust-Nera' => 'Isikhathi sase-Vladivostok (i-Ust-Nera)',
@@ -296,6 +311,7 @@
         'Atlantic/Canary' => 'Isikhathi sase-Western Europe (i-Canary)',
         'Atlantic/Cape_Verde' => 'Isikhathi sase-Cape Verde (i-Cape Verde)',
         'Atlantic/Faeroe' => 'Isikhathi sase-Western Europe (i-Faroe)',
+        'Atlantic/Faroe' => 'Isikhathi sase-Western Europe (i-Faroe)',
         'Atlantic/Madeira' => 'Isikhathi sase-Western Europe (i-Madeira)',
         'Atlantic/Reykjavik' => 'Isikhathi sase-Greenwich Mean (i-Reykjavik)',
         'Atlantic/South_Georgia' => 'Isikhathi sase-South Georgia (i-South Georgia)',
@@ -316,7 +332,7 @@
         'Etc/UTC' => 'isikhathi somhlaba esididiyelwe',
         'Europe/Amsterdam' => 'Isikhathi sase-Central Europe (i-Amsterdam)',
         'Europe/Andorra' => 'Isikhathi sase-Central Europe (i-Andorra)',
-        'Europe/Astrakhan' => 'Isikhathi sase-Moscow (i-Astrakhan)',
+        'Europe/Astrakhan' => 'esase-Samara Time (i-Astrakhan)',
         'Europe/Athens' => 'Isikhathi sase-Eastern Europe (i-Athens)',
         'Europe/Belgrade' => 'Isikhathi sase-Central Europe (i-Belgrade)',
         'Europe/Berlin' => 'Isikhathi sase-Central Europe (i-Berlin)',
@@ -336,7 +352,8 @@
         'Europe/Jersey' => 'Isikhathi sase-Greenwich Mean (i-Jersey)',
         'Europe/Kaliningrad' => 'Isikhathi sase-Eastern Europe (i-Kaliningrad)',
         'Europe/Kiev' => 'Isikhathi sase-Eastern Europe (i-Kiev)',
-        'Europe/Kirov' => 'Isikhathi sase-i-Russia (i-Kirov)',
+        'Europe/Kyiv' => 'Isikhathi sase-Eastern Europe (i-Kiev)',
+        'Europe/Kirov' => 'Isikhathi sase-Moscow (i-Kirov)',
         'Europe/Lisbon' => 'Isikhathi sase-Western Europe (i-Lisbon)',
         'Europe/Ljubljana' => 'Isikhathi sase-Central Europe (i-Ljubljana)',
         'Europe/London' => 'Isikhathi sase-Greenwich Mean (i-London)',
@@ -356,19 +373,19 @@
         'Europe/Samara' => 'esase-Samara Time (i-Samara)',
         'Europe/San_Marino' => 'Isikhathi sase-Central Europe (i-San Marino)',
         'Europe/Sarajevo' => 'Isikhathi sase-Central Europe (i-Sarajevo)',
-        'Europe/Saratov' => 'Isikhathi sase-Moscow (i-Saratov)',
+        'Europe/Saratov' => 'esase-Samara Time (i-Saratov)',
         'Europe/Simferopol' => 'Isikhathi sase-Moscow (i-Simferopol)',
         'Europe/Skopje' => 'Isikhathi sase-Central Europe (i-Skopje)',
         'Europe/Sofia' => 'Isikhathi sase-Eastern Europe (i-Sofia)',
         'Europe/Stockholm' => 'Isikhathi sase-Central Europe (i-Stockholm)',
         'Europe/Tallinn' => 'Isikhathi sase-Eastern Europe (i-Tallinn)',
         'Europe/Tirane' => 'Isikhathi sase-Central Europe (i-Tirane)',
-        'Europe/Ulyanovsk' => 'Isikhathi sase-Moscow (i-Ulyanovsk)',
+        'Europe/Ulyanovsk' => 'esase-Samara Time (i-Ulyanovsk)',
         'Europe/Vaduz' => 'Isikhathi sase-Central Europe (i-Vaduz)',
         'Europe/Vatican' => 'Isikhathi sase-Central Europe (i-Vatican)',
         'Europe/Vienna' => 'Isikhathi sase-Central Europe (i-Vienna)',
         'Europe/Vilnius' => 'Isikhathi sase-Eastern Europe (i-Vilnius)',
-        'Europe/Volgograd' => 'Isikhathi sase-Volgograd (i-Volgograd)',
+        'Europe/Volgograd' => 'Isikhathi sase-Moscow (i-Volgograd)',
         'Europe/Warsaw' => 'Isikhathi sase-Central Europe (i-Warsaw)',
         'Europe/Zagreb' => 'Isikhathi sase-Central Europe (i-Zagreb)',
         'Europe/Zurich' => 'Isikhathi sase-Central Europe (i-Zurich)',
@@ -389,7 +406,8 @@
         'Pacific/Chatham' => 'Isikhathi sase-Chatham (i-Chatham)',
         'Pacific/Easter' => 'Isikhathi sase-Easter Island (i-Easter)',
         'Pacific/Efate' => 'Isikhathi sase-Vanuatu (i-Efate)',
-        'Pacific/Enderbury' => 'Isikhathi sase-Phoenix Islands (i-Enderbury)',
+        'Pacific/Enderbury' => 'Isikhathi sase-Phoenix Islands (Canton)',
+        'Pacific/Kanton' => 'Isikhathi sase-Phoenix Islands (Canton)',
         'Pacific/Fakaofo' => 'Isikhathi sase-Tokelau (i-Fakaofo)',
         'Pacific/Fiji' => 'Isikhathi sase-Fiji (i-Fiji)',
         'Pacific/Funafuti' => 'Isikhathi sase-Tuvalu (i-Funafuti)',
@@ -397,7 +415,7 @@
         'Pacific/Gambier' => 'Isikhathi sase-Gambier (i-Gambier)',
         'Pacific/Guadalcanal' => 'Isikhathi sase-Solomon Islands (i-Guadalcanal)',
         'Pacific/Guam' => 'Isikhathi esivamile sase-Chamorro (i-Guam)',
-        'Pacific/Honolulu' => 'Isikhathi sase-Hawaii-Aleutia (i-Honolulu)',
+        'Pacific/Honolulu' => 'Isikhathi sase-Hawaii-Aleutia esijwayelekile (i-Honolulu)',
         'Pacific/Kiritimati' => 'Isikhathi sase-Line Islands (i-Kiritimati)',
         'Pacific/Kosrae' => 'Isikhathi sase-Kosrae (i-Kosrae)',
         'Pacific/Kwajalein' => 'Isikhathi sase-Marshall Islands (i-Kwajalein)',
@@ -412,6 +430,7 @@
         'Pacific/Palau' => 'Isikhathi sase-Palau (i-Palau)',
         'Pacific/Pitcairn' => 'Isikhathi sase-Pitcairn (i-Pitcairn)',
         'Pacific/Ponape' => 'Isikhathi sase-Ponape (i-Pohnpei)',
+        'Pacific/Pohnpei' => 'Isikhathi sase-Ponape (i-Pohnpei)',
         'Pacific/Port_Moresby' => 'Isikhathi sase-Papua New Guinea (i-Port Moresby)',
         'Pacific/Rarotonga' => 'Isikhathi sase-Cook Islands (i-Rarotonga)',
         'Pacific/Saipan' => 'Isikhathi esivamile sase-Chamorro (i-Saipan)',
@@ -419,6 +438,7 @@
         'Pacific/Tarawa' => 'Isikhathi sase-Gilbert Islands (i-Tarawa)',
         'Pacific/Tongatapu' => 'Isikhathi sase-Tonga (i-Tongatapu)',
         'Pacific/Truk' => 'Isikhathi sase-Chuuk (i-Chuuk)',
+        'Pacific/Chuuk' => 'Isikhathi sase-Chuuk (i-Chuuk)',
         'Pacific/Wake' => 'Isikhathi sase-Wake Island (i-Wake)',
         'Pacific/Wallis' => 'Isikhathi sase-Wallis nase-Futuna (i-Wallis)',
     ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-af.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-af.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-af.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-af.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'soen: vrou, vrou, donker velkleur, medium velkleur',
     '👩🏿‍❤‍💋‍👩🏾' => 'soen: vrou, vrou, donker velkleur, medium-donker velkleur',
     '👩🏿‍❤‍💋‍👩🏿' => 'soen: vrou, vrou, donker velkleur',
+    '🧑🏻‍🫯‍🧑🏼' => 'stoeiers: ligte velkleur, medium-ligte velkleur',
+    '🧑🏻‍🫯‍🧑🏽' => 'stoeiers: ligte velkleur, medium velkleur',
+    '🧑🏻‍🫯‍🧑🏾' => 'stoeiers: ligte velkleur, medium-donker velkleur',
+    '🧑🏻‍🫯‍🧑🏿' => 'stoeiers: ligte velkleur, donker velkleur',
+    '🧑🏼‍🫯‍🧑🏻' => 'stoeiers: medium-ligte velkleur, ligte velkleur',
+    '🧑🏼‍🫯‍🧑🏽' => 'stoeiers: medium-ligte velkleur, medium velkleur',
+    '🧑🏼‍🫯‍🧑🏾' => 'stoeiers: medium-ligte velkleur, medium-donker velkleur',
+    '🧑🏼‍🫯‍🧑🏿' => 'stoeiers: medium-ligte velkleur, donker velkleur',
+    '🧑🏽‍🫯‍🧑🏻' => 'stoeiers: medium velkleur, ligte velkleur',
+    '🧑🏽‍🫯‍🧑🏼' => 'stoeiers: medium velkleur, medium-ligte velkleur',
+    '🧑🏽‍🫯‍🧑🏾' => 'stoeiers: medium velkleur, medium-donker velkleur',
+    '🧑🏽‍🫯‍🧑🏿' => 'stoeiers: medium velkleur, donker velkleur',
+    '🧑🏾‍🫯‍🧑🏻' => 'stoeiers: medium-donker velkleur, ligte velkleur',
+    '🧑🏾‍🫯‍🧑🏼' => 'stoeiers: medium-donker velkleur, medium-ligte velkleur',
+    '🧑🏾‍🫯‍🧑🏽' => 'stoeiers: medium-donker velkleur, medium velkleur',
+    '🧑🏾‍🫯‍🧑🏿' => 'stoeiers: medium-donker velkleur, donker velkleur',
+    '🧑🏿‍🫯‍🧑🏻' => 'stoeiers: donker velkleur, ligte velkleur',
+    '🧑🏿‍🫯‍🧑🏼' => 'stoeiers: donker velkleur, medium-ligte velkleur',
+    '🧑🏿‍🫯‍🧑🏽' => 'stoeiers: donker velkleur, medium velkleur',
+    '🧑🏿‍🫯‍🧑🏾' => 'stoeiers: donker velkleur, medium-donker velkleur',
     '🧑🏻‍❤‍🧑🏼' => 'paartjie met hartjie: volwassene, volwassene, ligte velkleur, medium-ligte velkleur',
     '🧑🏻‍❤‍🧑🏽' => 'paartjie met hartjie: volwassene, volwassene, ligte velkleur, medium velkleur',
     '🧑🏻‍❤‍🧑🏾' => 'paartjie met hartjie: volwassene, volwassene, ligte velkleur, medium-donker velkleur',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'paartjie met hartjie: volwassene, volwassene, donker velkleur, medium-ligte velkleur',
     '🧑🏿‍❤‍🧑🏽' => 'paartjie met hartjie: volwassene, volwassene, donker velkleur, medium velkleur',
     '🧑🏿‍❤‍🧑🏾' => 'paartjie met hartjie: volwassene, volwassene, donker velkleur, medium-donker velkleur',
+    '🧑🏻‍🐰‍🧑🏼' => 'mense met haasore: ligte velkleur, medium-ligte velkleur',
+    '🧑🏻‍🐰‍🧑🏽' => 'mense met haasore: ligte velkleur, medium velkleur',
+    '🧑🏻‍🐰‍🧑🏾' => 'mense met haasore: ligte velkleur, medium-donker velkleur',
+    '🧑🏻‍🐰‍🧑🏿' => 'mense met haasore: ligte velkleur, donker velkleur',
+    '🧑🏼‍🐰‍🧑🏻' => 'mense met haasore: medium-ligte velkleur, ligte velkleur',
+    '🧑🏼‍🐰‍🧑🏽' => 'mense met haasore: medium-ligte velkleur, medium velkleur',
+    '🧑🏼‍🐰‍🧑🏾' => 'mense met haasore: medium-ligte velkleur, medium-donker velkleur',
+    '🧑🏼‍🐰‍🧑🏿' => 'mense met haasore: medium-ligte velkleur, donker velkleur',
+    '🧑🏽‍🐰‍🧑🏻' => 'mense met haasore: medium velkleur, ligte velkleur',
+    '🧑🏽‍🐰‍🧑🏼' => 'mense met haasore: medium velkleur, medium-ligte velkleur',
+    '🧑🏽‍🐰‍🧑🏾' => 'mense met haasore: medium velkleur, medium-donker velkleur',
+    '🧑🏽‍🐰‍🧑🏿' => 'mense met haasore: medium velkleur, donker velkleur',
+    '🧑🏾‍🐰‍🧑🏻' => 'mense met haasore: medium-donker velkleur, ligte velkleur',
+    '🧑🏾‍🐰‍🧑🏼' => 'mense met haasore: medium-donker velkleur, medium-ligte velkleur',
+    '🧑🏾‍🐰‍🧑🏽' => 'mense met haasore: medium-donker velkleur, medium velkleur',
+    '🧑🏾‍🐰‍🧑🏿' => 'mense met haasore: medium-donker velkleur, donker velkleur',
+    '🧑🏿‍🐰‍🧑🏻' => 'mense met haasore: donker velkleur, ligte velkleur',
+    '🧑🏿‍🐰‍🧑🏼' => 'mense met haasore: donker velkleur, medium-ligte velkleur',
+    '🧑🏿‍🐰‍🧑🏽' => 'mense met haasore: donker velkleur, medium velkleur',
+    '🧑🏿‍🐰‍🧑🏾' => 'mense met haasore: donker velkleur, medium-donker velkleur',
+    '👨🏻‍🫯‍👨🏼' => 'manlike stoeiers: ligte velkleur, medium-ligte velkleur',
+    '👨🏻‍🫯‍👨🏽' => 'manlike stoeiers: ligte velkleur, medium velkleur',
+    '👨🏻‍🫯‍👨🏾' => 'manlike stoeiers: ligte velkleur, medium-donker velkleur',
+    '👨🏻‍🫯‍👨🏿' => 'manlike stoeiers: ligte velkleur, donker velkleur',
+    '👨🏼‍🫯‍👨🏻' => 'manlike stoeiers: medium-ligte velkleur, ligte velkleur',
+    '👨🏼‍🫯‍👨🏽' => 'manlike stoeiers: medium-ligte velkleur, medium velkleur',
+    '👨🏼‍🫯‍👨🏾' => 'manlike stoeiers: medium-ligte velkleur, medium-donker velkleur',
+    '👨🏼‍🫯‍👨🏿' => 'manlike stoeiers: medium-ligte velkleur, donker velkleur',
+    '👨🏽‍🫯‍👨🏻' => 'manlike stoeiers: medium velkleur, ligte velkleur',
+    '👨🏽‍🫯‍👨🏼' => 'manlike stoeiers: medium velkleur, medium-ligte velkleur',
+    '👨🏽‍🫯‍👨🏾' => 'manlike stoeiers: medium velkleur, medium-donker velkleur',
+    '👨🏽‍🫯‍👨🏿' => 'manlike stoeiers: medium velkleur, donker velkleur',
+    '👨🏾‍🫯‍👨🏻' => 'manlike stoeiers: medium-donker velkleur, ligte velkleur',
+    '👨🏾‍🫯‍👨🏼' => 'manlike stoeiers: medium-donker velkleur, medium-ligte velkleur',
+    '👨🏾‍🫯‍👨🏽' => 'manlike stoeiers: medium-donker velkleur, medium velkleur',
+    '👨🏾‍🫯‍👨🏿' => 'manlike stoeiers: medium-donker velkleur, donker velkleur',
+    '👨🏿‍🫯‍👨🏻' => 'manlike stoeiers: donker velkleur, ligte velkleur',
+    '👨🏿‍🫯‍👨🏼' => 'manlike stoeiers: donker velkleur, medium-ligte velkleur',
+    '👨🏿‍🫯‍👨🏽' => 'manlike stoeiers: donker velkleur, medium velkleur',
+    '👨🏿‍🫯‍👨🏾' => 'manlike stoeiers: donker velkleur, medium-donker velkleur',
     '👨🏻‍❤‍👨🏻' => 'paartjie met hartjie: man, man, ligte velkleur',
     '👨🏻‍❤‍👨🏼' => 'paartjie met hartjie: man, man, ligte velkleur, medium-ligte velkleur',
     '👨🏻‍❤‍👨🏽' => 'paartjie met hartjie: man, man, ligte velkleur, medium velkleur',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'paartjie met hartjie: man, man, donker velkleur, medium velkleur',
     '👨🏿‍❤‍👨🏾' => 'paartjie met hartjie: man, man, donker velkleur, medium-donker velkleur',
     '👨🏿‍❤‍👨🏿' => 'paartjie met hartjie: man, man, donker velkleur',
+    '👨🏻‍🐰‍👨🏼' => 'mans met haasore: ligte velkleur, medium-ligte velkleur',
+    '👨🏻‍🐰‍👨🏽' => 'mans met haasore: ligte velkleur, medium velkleur',
+    '👨🏻‍🐰‍👨🏾' => 'mans met haasore: ligte velkleur, medium-donker velkleur',
+    '👨🏻‍🐰‍👨🏿' => 'mans met haasore: ligte velkleur, donker velkleur',
+    '👨🏼‍🐰‍👨🏻' => 'mans met haasore: medium-ligte velkleur, ligte velkleur',
+    '👨🏼‍🐰‍👨🏽' => 'mans met haasore: medium-ligte velkleur, medium velkleur',
+    '👨🏼‍🐰‍👨🏾' => 'mans met haasore: medium-ligte velkleur, medium-donker velkleur',
+    '👨🏼‍🐰‍👨🏿' => 'mans met haasore: medium-ligte velkleur, donker velkleur',
+    '👨🏽‍🐰‍👨🏻' => 'mans met haasore: medium velkleur, ligte velkleur',
+    '👨🏽‍🐰‍👨🏼' => 'mans met haasore: medium velkleur, medium-ligte velkleur',
+    '👨🏽‍🐰‍👨🏾' => 'mans met haasore: medium velkleur, medium-donker velkleur',
+    '👨🏽‍🐰‍👨🏿' => 'mans met haasore: medium velkleur, donker velkleur',
+    '👨🏾‍🐰‍👨🏻' => 'mans met haasore: medium-donker velkleur, ligte velkleur',
+    '👨🏾‍🐰‍👨🏼' => 'mans met haasore: medium-donker velkleur, medium-ligte velkleur',
+    '👨🏾‍🐰‍👨🏽' => 'mans met haasore: medium-donker velkleur, medium velkleur',
+    '👨🏾‍🐰‍👨🏿' => 'mans met haasore: medium-donker velkleur, donker velkleur',
+    '👨🏿‍🐰‍👨🏻' => 'mans met haasore: donker velkleur, ligte velkleur',
+    '👨🏿‍🐰‍👨🏼' => 'mans met haasore: donker velkleur, medium-ligte velkleur',
+    '👨🏿‍🐰‍👨🏽' => 'mans met haasore: donker velkleur, medium velkleur',
+    '👨🏿‍🐰‍👨🏾' => 'mans met haasore: donker velkleur, medium-donker velkleur',
+    '👩🏻‍🫯‍👩🏼' => 'vroulike stoeiers: ligte velkleur, medium-ligte velkleur',
+    '👩🏻‍🫯‍👩🏽' => 'vroulike stoeiers: ligte velkleur, medium velkleur',
+    '👩🏻‍🫯‍👩🏾' => 'vroulike stoeiers: ligte velkleur, medium-donker velkleur',
+    '👩🏻‍🫯‍👩🏿' => 'vroulike stoeiers: ligte velkleur, donker velkleur',
+    '👩🏼‍🫯‍👩🏻' => 'vroulike stoeiers: medium-ligte velkleur, ligte velkleur',
+    '👩🏼‍🫯‍👩🏽' => 'vroulike stoeiers: medium-ligte velkleur, medium velkleur',
+    '👩🏼‍🫯‍👩🏾' => 'vroulike stoeiers: medium-ligte velkleur, medium-donker velkleur',
+    '👩🏼‍🫯‍👩🏿' => 'vroulike stoeiers: medium-ligte velkleur, donker velkleur',
+    '👩🏽‍🫯‍👩🏻' => 'vroulike stoeiers: medium velkleur, ligte velkleur',
+    '👩🏽‍🫯‍👩🏼' => 'vroulike stoeiers: medium velkleur, medium-ligte velkleur',
+    '👩🏽‍🫯‍👩🏾' => 'vroulike stoeiers: medium velkleur, medium-donker velkleur',
+    '👩🏽‍🫯‍👩🏿' => 'vroulike stoeiers: medium velkleur, donker velkleur',
+    '👩🏾‍🫯‍👩🏻' => 'vroulike stoeiers: medium-donker velkleur, ligte velkleur',
+    '👩🏾‍🫯‍👩🏼' => 'vroulike stoeiers: medium-donker velkleur, medium-ligte velkleur',
+    '👩🏾‍🫯‍👩🏽' => 'vroulike stoeiers: medium-donker velkleur, medium velkleur',
+    '👩🏾‍🫯‍👩🏿' => 'vroulike stoeiers: medium-donker velkleur, donker velkleur',
+    '👩🏿‍🫯‍👩🏻' => 'vroulike stoeiers: donker velkleur, ligte velkleur',
+    '👩🏿‍🫯‍👩🏼' => 'vroulike stoeiers: donker velkleur, medium-ligte velkleur',
+    '👩🏿‍🫯‍👩🏽' => 'vroulike stoeiers: donker velkleur, medium velkleur',
+    '👩🏿‍🫯‍👩🏾' => 'vroulike stoeiers: donker velkleur, medium-donker velkleur',
     '👩🏻‍❤‍👨🏻' => 'paartjie met hartjie: vrou, man, ligte velkleur',
     '👩🏻‍❤‍👨🏼' => 'paartjie met hartjie: vrou, man, ligte velkleur, medium-ligte velkleur',
     '👩🏻‍❤‍👨🏽' => 'paartjie met hartjie: vrou, man, ligte velkleur, medium velkleur',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'paartjie met hartjie: vrou, vrou, donker velkleur, medium velkleur',
     '👩🏿‍❤‍👩🏾' => 'paartjie met hartjie: vrou, vrou, donker velkleur, medium-donker velkleur',
     '👩🏿‍❤‍👩🏿' => 'paartjie met hartjie: vrou, vrou, donker velkleur',
+    '👩🏻‍🐰‍👩🏼' => 'vroue met haasore: ligte velkleur, medium-ligte velkleur',
+    '👩🏻‍🐰‍👩🏽' => 'vroue met haasore: ligte velkleur, medium velkleur',
+    '👩🏻‍🐰‍👩🏾' => 'vroue met haasore: ligte velkleur, medium-donker velkleur',
+    '👩🏻‍🐰‍👩🏿' => 'vroue met haasore: ligte velkleur, donker velkleur',
+    '👩🏼‍🐰‍👩🏻' => 'vroue met haasore: medium-ligte velkleur, ligte velkleur',
+    '👩🏼‍🐰‍👩🏽' => 'vroue met haasore: medium-ligte velkleur, medium velkleur',
+    '👩🏼‍🐰‍👩🏾' => 'vroue met haasore: medium-ligte velkleur, medium-donker velkleur',
+    '👩🏼‍🐰‍👩🏿' => 'vroue met haasore: medium-ligte velkleur, donker velkleur',
+    '👩🏽‍🐰‍👩🏻' => 'vroue met haasore: medium velkleur, ligte velkleur',
+    '👩🏽‍🐰‍👩🏼' => 'vroue met haasore: medium velkleur, medium-ligte velkleur',
+    '👩🏽‍🐰‍👩🏾' => 'vroue met haasore: medium velkleur, medium-donker velkleur',
+    '👩🏽‍🐰‍👩🏿' => 'vroue met haasore: medium velkleur, donker velkleur',
+    '👩🏾‍🐰‍👩🏻' => 'vroue met haasore: medium-donker velkleur, ligte velkleur',
+    '👩🏾‍🐰‍👩🏼' => 'vroue met haasore: medium-donker velkleur, medium-ligte velkleur',
+    '👩🏾‍🐰‍👩🏽' => 'vroue met haasore: medium-donker velkleur, medium velkleur',
+    '👩🏾‍🐰‍👩🏿' => 'vroue met haasore: medium-donker velkleur, donker velkleur',
+    '👩🏿‍🐰‍👩🏻' => 'vroue met haasore: donker velkleur, ligte velkleur',
+    '👩🏿‍🐰‍👩🏼' => 'vroue met haasore: donker velkleur, medium-ligte velkleur',
+    '👩🏿‍🐰‍👩🏽' => 'vroue met haasore: donker velkleur, medium velkleur',
+    '👩🏿‍🐰‍👩🏾' => 'vroue met haasore: donker velkleur, medium-donker velkleur',
     '🧑🏻‍🤝‍🧑🏻' => 'mense wat hande vashou: ligte velkleur',
     '🧑🏻‍🤝‍🧑🏼' => 'mense wat hande vashou: ligte velkleur, medium-ligte velkleur',
     '🧑🏻‍🤝‍🧑🏽' => 'mense wat hande vashou: ligte velkleur, medium velkleur',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'vlag: Skotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'vlag: Wallis',
     '🧑‍🧑‍🧒‍🧒' => 'gesin: grootmens, volwasse, kind, kind',
-    '🚶🏻‍♀‍➡' => 'vrou stap kyk na regs',
-    '🚶🏼‍♀‍➡' => 'vrou stap kyk na regs',
-    '🚶🏽‍♀‍➡' => 'vrou stap kyk na regs',
-    '🚶🏾‍♀‍➡' => 'vrou stap kyk na regs',
-    '🚶🏿‍♀‍➡' => 'vrou stap kyk na regs',
-    '🚶🏻‍♂‍➡' => 'man stap kyk na regs',
-    '🚶🏼‍♂‍➡' => 'man stap kyk na regs',
-    '🚶🏽‍♂‍➡' => 'man stap kyk na regs',
-    '🚶🏾‍♂‍➡' => 'man stap kyk na regs',
-    '🚶🏿‍♂‍➡' => 'man stap kyk na regs',
-    '🧎🏻‍♀‍➡' => 'vrou wat kniel kyk na regs',
-    '🧎🏼‍♀‍➡' => 'vrou wat kniel kyk na regs',
-    '🧎🏽‍♀‍➡' => 'vrou wat kniel kyk na regs',
-    '🧎🏾‍♀‍➡' => 'vrou wat kniel kyk na regs',
-    '🧎🏿‍♀‍➡' => 'vrou wat kniel kyk na regs',
-    '🧎🏻‍♂‍➡' => 'man wat kniel kyk na regs',
-    '🧎🏼‍♂‍➡' => 'man wat kniel kyk na regs',
-    '🧎🏽‍♂‍➡' => 'man wat kniel kyk na regs',
-    '🧎🏾‍♂‍➡' => 'man wat kniel kyk na regs',
-    '🧎🏿‍♂‍➡' => 'man wat kniel kyk na regs',
-    '🧑🏻‍🦯‍➡' => 'persoon met gidsstok kyk na regs',
-    '🧑🏼‍🦯‍➡' => 'persoon met gidsstok kyk na regs',
-    '🧑🏽‍🦯‍➡' => 'persoon met gidsstok kyk na regs',
-    '🧑🏾‍🦯‍➡' => 'persoon met gidsstok kyk na regs',
-    '🧑🏿‍🦯‍➡' => 'persoon met gidsstok kyk na regs',
-    '👨🏻‍🦯‍➡' => 'man met gidsstok kyk na regs',
-    '👨🏼‍🦯‍➡' => 'man met gidsstok kyk na regs',
-    '👨🏽‍🦯‍➡' => 'man met gidsstok kyk na regs',
-    '👨🏾‍🦯‍➡' => 'man met gidsstok kyk na regs',
-    '👨🏿‍🦯‍➡' => 'man met gidsstok kyk na regs',
-    '👩🏻‍🦯‍➡' => 'vrou met gidsstok kyk na regs',
-    '👩🏼‍🦯‍➡' => 'vrou met gidsstok kyk na regs',
-    '👩🏽‍🦯‍➡' => 'vrou met gidsstok kyk na regs',
-    '👩🏾‍🦯‍➡' => 'vrou met gidsstok kyk na regs',
-    '👩🏿‍🦯‍➡' => 'vrou met gidsstok kyk na regs',
-    '🧑🏻‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel kyk na regs',
-    '🧑🏼‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel kyk na regs',
-    '🧑🏽‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel kyk na regs',
-    '🧑🏾‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel kyk na regs',
-    '🧑🏿‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel kyk na regs',
-    '👨🏻‍🦼‍➡' => 'man in motoraangedrewe rolstoel kyk na regs',
-    '👨🏼‍🦼‍➡' => 'man in motoraangedrewe rolstoel kyk na regs',
-    '👨🏽‍🦼‍➡' => 'man in motoraangedrewe rolstoel kyk na regs',
-    '👨🏾‍🦼‍➡' => 'man in motoraangedrewe rolstoel kyk na regs',
-    '👨🏿‍🦼‍➡' => 'man in motoraangedrewe rolstoel kyk na regs',
-    '👩🏻‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel kyk na regs',
-    '👩🏼‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel kyk na regs',
-    '👩🏽‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel kyk na regs',
-    '👩🏾‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel kyk na regs',
-    '👩🏿‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel kyk na regs',
-    '🧑🏻‍🦽‍➡' => 'persoon in handgedrewe rolstoel kyk na regs',
-    '🧑🏼‍🦽‍➡' => 'persoon in handgedrewe rolstoel kyk na regs',
-    '🧑🏽‍🦽‍➡' => 'persoon in handgedrewe rolstoel kyk na regs',
-    '🧑🏾‍🦽‍➡' => 'persoon in handgedrewe rolstoel kyk na regs',
-    '🧑🏿‍🦽‍➡' => 'persoon in handgedrewe rolstoel kyk na regs',
-    '👨🏻‍🦽‍➡' => 'man in handgedrewe rolstoel kyk na regs',
-    '👨🏼‍🦽‍➡' => 'man in handgedrewe rolstoel kyk na regs',
-    '👨🏽‍🦽‍➡' => 'man in handgedrewe rolstoel kyk na regs',
-    '👨🏾‍🦽‍➡' => 'man in handgedrewe rolstoel kyk na regs',
-    '👨🏿‍🦽‍➡' => 'man in handgedrewe rolstoel kyk na regs',
-    '👩🏻‍🦽‍➡' => 'vrou in handgedrewe rolstoel kyk na regs',
-    '👩🏼‍🦽‍➡' => 'vrou in handgedrewe rolstoel kyk na regs',
-    '👩🏽‍🦽‍➡' => 'vrou in handgedrewe rolstoel kyk na regs',
-    '👩🏾‍🦽‍➡' => 'vrou in handgedrewe rolstoel kyk na regs',
-    '👩🏿‍🦽‍➡' => 'vrou in handgedrewe rolstoel kyk na regs',
-    '🏃🏻‍♀‍➡' => 'vrou hardloop kyk na regs',
-    '🏃🏼‍♀‍➡' => 'vrou hardloop kyk na regs',
-    '🏃🏽‍♀‍➡' => 'vrou hardloop kyk na regs',
-    '🏃🏾‍♀‍➡' => 'vrou hardloop kyk na regs',
-    '🏃🏿‍♀‍➡' => 'vrou hardloop kyk na regs',
-    '🏃🏻‍♂‍➡' => 'man hardloop kyk na regs',
-    '🏃🏼‍♂‍➡' => 'man hardloop kyk na regs',
-    '🏃🏽‍♂‍➡' => 'man hardloop kyk na regs',
-    '🏃🏾‍♂‍➡' => 'man hardloop kyk na regs',
-    '🏃🏿‍♂‍➡' => 'man hardloop kyk na regs',
+    '🚶🏻‍♀‍➡' => 'vrou stap: ligte velkleur, kyk na regs',
+    '🚶🏼‍♀‍➡' => 'vrou stap: medium-ligte velkleur, kyk na regs',
+    '🚶🏽‍♀‍➡' => 'vrou stap: medium velkleur, kyk na regs',
+    '🚶🏾‍♀‍➡' => 'vrou stap: medium-donker velkleur, kyk na regs',
+    '🚶🏿‍♀‍➡' => 'vrou stap: donker velkleur, kyk na regs',
+    '🚶🏻‍♂‍➡' => 'man stap: ligte velkleur, kyk na regs',
+    '🚶🏼‍♂‍➡' => 'man stap: medium-ligte velkleur, kyk na regs',
+    '🚶🏽‍♂‍➡' => 'man stap: medium velkleur, kyk na regs',
+    '🚶🏾‍♂‍➡' => 'man stap: medium-donker velkleur, kyk na regs',
+    '🚶🏿‍♂‍➡' => 'man stap: donker velkleur, kyk na regs',
+    '🧎🏻‍♀‍➡' => 'vrou wat kniel: ligte velkleur, kyk na regs',
+    '🧎🏼‍♀‍➡' => 'vrou wat kniel: medium-ligte velkleur, kyk na regs',
+    '🧎🏽‍♀‍➡' => 'vrou wat kniel: medium velkleur, kyk na regs',
+    '🧎🏾‍♀‍➡' => 'vrou wat kniel: medium-donker velkleur, kyk na regs',
+    '🧎🏿‍♀‍➡' => 'vrou wat kniel: donker velkleur, kyk na regs',
+    '🧎🏻‍♂‍➡' => 'man wat kniel: ligte velkleur, kyk na regs',
+    '🧎🏼‍♂‍➡' => 'man wat kniel: medium-ligte velkleur, kyk na regs',
+    '🧎🏽‍♂‍➡' => 'man wat kniel: medium velkleur, kyk na regs',
+    '🧎🏾‍♂‍➡' => 'man wat kniel: medium-donker velkleur, kyk na regs',
+    '🧎🏿‍♂‍➡' => 'man wat kniel: donker velkleur, kyk na regs',
+    '🧑🏻‍🦯‍➡' => 'persoon met gidsstok: ligte velkleur, kyk na regs',
+    '🧑🏼‍🦯‍➡' => 'persoon met gidsstok: medium-ligte velkleur, kyk na regs',
+    '🧑🏽‍🦯‍➡' => 'persoon met gidsstok: medium velkleur, kyk na regs',
+    '🧑🏾‍🦯‍➡' => 'persoon met gidsstok: medium-donker velkleur, kyk na regs',
+    '🧑🏿‍🦯‍➡' => 'persoon met gidsstok: donker velkleur, kyk na regs',
+    '👨🏻‍🦯‍➡' => 'man met gidsstok: ligte velkleur, kyk na regs',
+    '👨🏼‍🦯‍➡' => 'man met gidsstok: medium-ligte velkleur, kyk na regs',
+    '👨🏽‍🦯‍➡' => 'man met gidsstok: medium velkleur, kyk na regs',
+    '👨🏾‍🦯‍➡' => 'man met gidsstok: medium-donker velkleur, kyk na regs',
+    '👨🏿‍🦯‍➡' => 'man met gidsstok: donker velkleur, kyk na regs',
+    '👩🏻‍🦯‍➡' => 'vrou met gidsstok: ligte velkleur, kyk na regs',
+    '👩🏼‍🦯‍➡' => 'vrou met gidsstok: medium-ligte velkleur, kyk na regs',
+    '👩🏽‍🦯‍➡' => 'vrou met gidsstok: medium velkleur, kyk na regs',
+    '👩🏾‍🦯‍➡' => 'vrou met gidsstok: medium-donker velkleur, kyk na regs',
+    '👩🏿‍🦯‍➡' => 'vrou met gidsstok: donker velkleur, kyk na regs',
+    '🧑🏻‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel: ligte velkleur, kyk na regs',
+    '🧑🏼‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel: medium-ligte velkleur, kyk na regs',
+    '🧑🏽‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel: medium velkleur, kyk na regs',
+    '🧑🏾‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel: medium-donker velkleur, kyk na regs',
+    '🧑🏿‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel: donker velkleur, kyk na regs',
+    '👨🏻‍🦼‍➡' => 'man in motoraangedrewe rolstoel: ligte velkleur, kyk na regs',
+    '👨🏼‍🦼‍➡' => 'man in motoraangedrewe rolstoel: medium-ligte velkleur, kyk na regs',
+    '👨🏽‍🦼‍➡' => 'man in motoraangedrewe rolstoel: medium velkleur, kyk na regs',
+    '👨🏾‍🦼‍➡' => 'man in motoraangedrewe rolstoel: medium-donker velkleur, kyk na regs',
+    '👨🏿‍🦼‍➡' => 'man in motoraangedrewe rolstoel: donker velkleur, kyk na regs',
+    '👩🏻‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel: ligte velkleur, kyk na regs',
+    '👩🏼‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel: medium-ligte velkleur, kyk na regs',
+    '👩🏽‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel: medium velkleur, kyk na regs',
+    '👩🏾‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel: medium-donker velkleur, kyk na regs',
+    '👩🏿‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel: donker velkleur, kyk na regs',
+    '🧑🏻‍🦽‍➡' => 'persoon in handgedrewe rolstoel: ligte velkleur, kyk na regs',
+    '🧑🏼‍🦽‍➡' => 'persoon in handgedrewe rolstoel: medium-ligte velkleur, kyk na regs',
+    '🧑🏽‍🦽‍➡' => 'persoon in handgedrewe rolstoel: medium velkleur, kyk na regs',
+    '🧑🏾‍🦽‍➡' => 'persoon in handgedrewe rolstoel: medium-donker velkleur, kyk na regs',
+    '🧑🏿‍🦽‍➡' => 'persoon in handgedrewe rolstoel: donker velkleur, kyk na regs',
+    '👨🏻‍🦽‍➡' => 'man in handgedrewe rolstoel: ligte velkleur, kyk na regs',
+    '👨🏼‍🦽‍➡' => 'man in handgedrewe rolstoel: medium-ligte velkleur, kyk na regs',
+    '👨🏽‍🦽‍➡' => 'man in handgedrewe rolstoel: medium velkleur, kyk na regs',
+    '👨🏾‍🦽‍➡' => 'man in handgedrewe rolstoel: medium-donker velkleur, kyk na regs',
+    '👨🏿‍🦽‍➡' => 'man in handgedrewe rolstoel: donker velkleur, kyk na regs',
+    '👩🏻‍🦽‍➡' => 'vrou in handgedrewe rolstoel: ligte velkleur, kyk na regs',
+    '👩🏼‍🦽‍➡' => 'vrou in handgedrewe rolstoel: medium-ligte velkleur, kyk na regs',
+    '👩🏽‍🦽‍➡' => 'vrou in handgedrewe rolstoel: medium velkleur, kyk na regs',
+    '👩🏾‍🦽‍➡' => 'vrou in handgedrewe rolstoel: medium-donker velkleur, kyk na regs',
+    '👩🏿‍🦽‍➡' => 'vrou in handgedrewe rolstoel: donker velkleur, kyk na regs',
+    '🏃🏻‍♀‍➡' => 'vrou hardloop: ligte velkleur, kyk na regs',
+    '🏃🏼‍♀‍➡' => 'vrou hardloop: medium-ligte velkleur, kyk na regs',
+    '🏃🏽‍♀‍➡' => 'vrou hardloop: medium velkleur, kyk na regs',
+    '🏃🏾‍♀‍➡' => 'vrou hardloop: medium-donker velkleur, kyk na regs',
+    '🏃🏿‍♀‍➡' => 'vrou hardloop: donker velkleur, kyk na regs',
+    '🏃🏻‍♂‍➡' => 'man hardloop: ligte velkleur, kyk na regs',
+    '🏃🏼‍♂‍➡' => 'man hardloop: medium-ligte velkleur, kyk na regs',
+    '🏃🏽‍♂‍➡' => 'man hardloop: medium velkleur, kyk na regs',
+    '🏃🏾‍♂‍➡' => 'man hardloop: medium-donker velkleur, kyk na regs',
+    '🏃🏿‍♂‍➡' => 'man hardloop: donker velkleur, kyk na regs',
     '🫱🏻‍🫲🏼' => 'handskud: ligte velkleur, medium-ligte velkleur',
     '🫱🏻‍🫲🏽' => 'handskud: ligte velkleur, medium velkleur',
     '🫱🏻‍🫲🏾' => 'handskud: ligte velkleur, medium-donker velkleur',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handskud: donker velkleur, medium-ligte velkleur',
     '🫱🏿‍🫲🏽' => 'handskud: donker velkleur, medium velkleur',
     '🫱🏿‍🫲🏾' => 'handskud: donker velkleur, medium-donker velkleur',
-    '🚶‍♀‍➡' => 'vrou stap kyk na regs',
-    '🚶‍♂‍➡' => 'man stap kyk na regs',
-    '🧎‍♀‍➡' => 'vrou wat kniel kyk na regs',
-    '🧎‍♂‍➡' => 'man wat kniel kyk na regs',
-    '🧑‍🦯‍➡' => 'persoon met gidsstok kyk na regs',
-    '👨‍🦯‍➡' => 'man met gidsstok kyk na regs',
-    '👩‍🦯‍➡' => 'vrou met gidsstok kyk na regs',
-    '🧑‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel kyk na regs',
-    '👨‍🦼‍➡' => 'man in motoraangedrewe rolstoel kyk na regs',
-    '👩‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel kyk na regs',
-    '🧑‍🦽‍➡' => 'persoon in handgedrewe rolstoel kyk na regs',
-    '👨‍🦽‍➡' => 'man in handgedrewe rolstoel kyk na regs',
-    '👩‍🦽‍➡' => 'vrou in handgedrewe rolstoel kyk na regs',
-    '🏃‍♀‍➡' => 'vrou hardloop kyk na regs',
-    '🏃‍♂‍➡' => 'man hardloop kyk na regs',
+    '🚶‍♀‍➡' => 'vrou stap: kyk na regs',
+    '🚶‍♂‍➡' => 'man stap: kyk na regs',
+    '🧎‍♀‍➡' => 'vrou wat kniel: kyk na regs',
+    '🧎‍♂‍➡' => 'man wat kniel: kyk na regs',
+    '🧑‍🦯‍➡' => 'persoon met gidsstok: kyk na regs',
+    '👨‍🦯‍➡' => 'man met gidsstok: kyk na regs',
+    '👩‍🦯‍➡' => 'vrou met gidsstok: kyk na regs',
+    '🧑‍🦼‍➡' => 'persoon in motoraangedrewe rolstoel: kyk na regs',
+    '👨‍🦼‍➡' => 'man in motoraangedrewe rolstoel: kyk na regs',
+    '👩‍🦼‍➡' => 'vrou in motoraangedrewe rolstoel: kyk na regs',
+    '🧑‍🦽‍➡' => 'persoon in handgedrewe rolstoel: kyk na regs',
+    '👨‍🦽‍➡' => 'man in handgedrewe rolstoel: kyk na regs',
+    '👩‍🦽‍➡' => 'vrou in handgedrewe rolstoel: kyk na regs',
+    '🏃‍♀‍➡' => 'vrou hardloop: kyk na regs',
+    '🏃‍♂‍➡' => 'man hardloop: kyk na regs',
     '👩‍❤‍👨' => 'paartjie met hartjie: vrou, man',
     '👨‍❤‍👨' => 'paartjie met hartjie: man, man',
     '👩‍❤‍👩' => 'paartjie met hartjie: vrou, vrou',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'volwassene: medium velkleur, bles',
     '🧑🏾‍🦲' => 'volwassene: medium-donker velkleur, bles',
     '🧑🏿‍🦲' => 'volwassene: donker velkleur, bles',
+    '🧑🏻‍🩰' => 'balletdanser: ligte velkleur',
+    '🧑🏼‍🩰' => 'balletdanser: medium-ligte velkleur',
+    '🧑🏽‍🩰' => 'balletdanser: medium velkleur',
+    '🧑🏾‍🩰' => 'balletdanser: medium-donker velkleur',
+    '🧑🏿‍🩰' => 'balletdanser: donker velkleur',
     '🧔🏻‍♂' => 'man: ligte velkleur, baard',
     '🧔🏼‍♂' => 'man: medium-ligte velkleur, baard',
     '🧔🏽‍♂' => 'man: medium velkleur, baard',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'vrou stap: medium velkleur',
     '🚶🏾‍♀' => 'vrou stap: medium-donker velkleur',
     '🚶🏿‍♀' => 'vrou stap: donker velkleur',
-    '🚶🏻‍➡' => 'voetganger kyk na regs',
-    '🚶🏼‍➡' => 'voetganger kyk na regs',
-    '🚶🏽‍➡' => 'voetganger kyk na regs',
-    '🚶🏾‍➡' => 'voetganger kyk na regs',
-    '🚶🏿‍➡' => 'voetganger kyk na regs',
+    '🚶🏻‍➡' => 'voetganger: ligte velkleur, kyk na regs',
+    '🚶🏼‍➡' => 'voetganger: medium-ligte velkleur, kyk na regs',
+    '🚶🏽‍➡' => 'voetganger: medium velkleur, kyk na regs',
+    '🚶🏾‍➡' => 'voetganger: medium-donker velkleur, kyk na regs',
+    '🚶🏿‍➡' => 'voetganger: donker velkleur, kyk na regs',
     '🧍🏻‍♂' => 'man wat staan: ligte velkleur',
     '🧍🏼‍♂' => 'man wat staan: medium-ligte velkleur',
     '🧍🏽‍♂' => 'man wat staan: medium velkleur',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'vrou wat kniel: medium velkleur',
     '🧎🏾‍♀' => 'vrou wat kniel: medium-donker velkleur',
     '🧎🏿‍♀' => 'vrou wat kniel: donker velkleur',
-    '🧎🏻‍➡' => 'persoon wat kniel kyk na regs',
-    '🧎🏼‍➡' => 'persoon wat kniel kyk na regs',
-    '🧎🏽‍➡' => 'persoon wat kniel kyk na regs',
-    '🧎🏾‍➡' => 'persoon wat kniel kyk na regs',
-    '🧎🏿‍➡' => 'persoon wat kniel kyk na regs',
+    '🧎🏻‍➡' => 'persoon wat kniel: ligte velkleur, kyk na regs',
+    '🧎🏼‍➡' => 'persoon wat kniel: medium-ligte velkleur, kyk na regs',
+    '🧎🏽‍➡' => 'persoon wat kniel: medium velkleur, kyk na regs',
+    '🧎🏾‍➡' => 'persoon wat kniel: medium-donker velkleur, kyk na regs',
+    '🧎🏿‍➡' => 'persoon wat kniel: donker velkleur, kyk na regs',
     '🧑🏻‍🦯' => 'persoon met gidsstok: ligte velkleur',
     '🧑🏼‍🦯' => 'persoon met gidsstok: medium-ligte velkleur',
     '🧑🏽‍🦯' => 'persoon met gidsstok: medium velkleur',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'vrou hardloop: medium velkleur',
     '🏃🏾‍♀' => 'vrou hardloop: medium-donker velkleur',
     '🏃🏿‍♀' => 'vrou hardloop: donker velkleur',
-    '🏃🏻‍➡' => 'persoon wat hardloop kyk na regs',
-    '🏃🏼‍➡' => 'persoon wat hardloop kyk na regs',
-    '🏃🏽‍➡' => 'persoon wat hardloop kyk na regs',
-    '🏃🏾‍➡' => 'persoon wat hardloop kyk na regs',
-    '🏃🏿‍➡' => 'persoon wat hardloop kyk na regs',
+    '🏃🏻‍➡' => 'persoon wat hardloop: ligte velkleur, kyk na regs',
+    '🏃🏼‍➡' => 'persoon wat hardloop: medium-ligte velkleur, kyk na regs',
+    '🏃🏽‍➡' => 'persoon wat hardloop: medium velkleur, kyk na regs',
+    '🏃🏾‍➡' => 'persoon wat hardloop: medium-donker velkleur, kyk na regs',
+    '🏃🏿‍➡' => 'persoon wat hardloop: donker velkleur, kyk na regs',
+    '👯🏻‍♀' => 'vroue met haasore: ligte velkleur',
+    '👯🏼‍♀' => 'vroue met haasore: medium-ligte velkleur',
+    '👯🏽‍♀' => 'vroue met haasore: medium velkleur',
+    '👯🏾‍♀' => 'vroue met haasore: medium-donker velkleur',
+    '👯🏿‍♀' => 'vroue met haasore: donker velkleur',
+    '👯🏻‍♂' => 'mans met haasore: ligte velkleur',
+    '👯🏼‍♂' => 'mans met haasore: medium-ligte velkleur',
+    '👯🏽‍♂' => 'mans met haasore: medium velkleur',
+    '👯🏾‍♂' => 'mans met haasore: medium-donker velkleur',
+    '👯🏿‍♂' => 'mans met haasore: donker velkleur',
     '🧖🏻‍♂' => 'man in stoomkamer: ligte velkleur',
     '🧖🏼‍♂' => 'man in stoomkamer: medium-ligte velkleur',
     '🧖🏽‍♂' => 'man in stoomkamer: medium velkleur',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'vrou doen wawiel: medium velkleur',
     '🤸🏾‍♀' => 'vrou doen wawiel: medium-donker velkleur',
     '🤸🏿‍♀' => 'vrou doen wawiel: donker velkleur',
+    '🤼🏻‍♀' => 'vroulike stoeiers: ligte velkleur',
+    '🤼🏼‍♀' => 'vroulike stoeiers: medium-ligte velkleur',
+    '🤼🏽‍♀' => 'vroulike stoeiers: medium velkleur',
+    '🤼🏾‍♀' => 'vroulike stoeiers: medium-donker velkleur',
+    '🤼🏿‍♀' => 'vroulike stoeiers: donker velkleur',
+    '🤼🏻‍♂' => 'manlike stoeiers: ligte velkleur',
+    '🤼🏼‍♂' => 'manlike stoeiers: medium-ligte velkleur',
+    '🤼🏽‍♂' => 'manlike stoeiers: medium velkleur',
+    '🤼🏾‍♂' => 'manlike stoeiers: medium-donker velkleur',
+    '🤼🏿‍♂' => 'manlike stoeiers: donker velkleur',
     '🤽🏻‍♂' => 'manlike waterpolospeler: ligte velkleur',
     '🤽🏼‍♂' => 'manlike waterpolospeler: medium-ligte velkleur',
     '🤽🏽‍♂' => 'manlike waterpolospeler: medium velkleur',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'vrou: krulhare',
     '👩‍🦳' => 'vrou: wit hare',
     '👩‍🦲' => 'vrou: bles',
-    '🚶‍➡' => 'voetganger kyk na regs',
-    '🧎‍➡' => 'persoon wat kniel kyk na regs',
-    '🏃‍➡' => 'persoon wat hardloop kyk na regs',
+    '🚶‍➡' => 'voetganger: kyk na regs',
+    '🧎‍➡' => 'persoon wat kniel: kyk na regs',
+    '🏃‍➡' => 'persoon wat hardloop: kyk na regs',
     '👨‍👦' => 'gesin: man, seun',
     '👨‍👧' => 'gesin: man, meisie',
     '👩‍👦' => 'gesin: vrou, seun',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'vrou in handgedrewe rolstoel',
     '🏃‍♂' => 'man hardloop',
     '🏃‍♀' => 'vrou hardloop',
+    '🧑‍🩰' => 'balletdanser',
     '👯‍♂' => 'mans met haasore',
     '👯‍♀' => 'vroue met haasore',
     '🧖‍♂' => 'man in stoomkamer',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'man in sakepak wat sweef: medium velkleur',
     '🕴🏾' => 'man in sakepak wat sweef: medium-donker velkleur',
     '🕴🏿' => 'man in sakepak wat sweef: donker velkleur',
+    '👯🏻' => 'mense met haasore: ligte velkleur',
+    '👯🏼' => 'mense met haasore: medium-ligte velkleur',
+    '👯🏽' => 'mense met haasore: medium velkleur',
+    '👯🏾' => 'mense met haasore: medium-donker velkleur',
+    '👯🏿' => 'mense met haasore: donker velkleur',
     '🧖🏻' => 'persoon in stoomkamer: ligte velkleur',
     '🧖🏼' => 'persoon in stoomkamer: medium-ligte velkleur',
     '🧖🏽' => 'persoon in stoomkamer: medium velkleur',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persoon wat ‘n wawiel doen: medium velkleur',
     '🤸🏾' => 'persoon wat ‘n wawiel doen: medium-donker velkleur',
     '🤸🏿' => 'persoon wat ‘n wawiel doen: donker velkleur',
+    '🤼🏻' => 'stoeiers: ligte velkleur',
+    '🤼🏼' => 'stoeiers: medium-ligte velkleur',
+    '🤼🏽' => 'stoeiers: medium velkleur',
+    '🤼🏾' => 'stoeiers: medium-donker velkleur',
+    '🤼🏿' => 'stoeiers: donker velkleur',
     '🤽🏻' => 'waterpolo: ligte velkleur',
     '🤽🏼' => 'waterpolo: medium-ligte velkleur',
     '🤽🏽' => 'waterpolo: medium velkleur',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'vlag: China',
     '🇨🇴' => 'vlag: Colombië',
     '🇨🇵' => 'vlag: Clippertoneiland',
+    '🇨🇶' => 'vlag: Sark',
     '🇨🇷' => 'vlag: Costa Rica',
     '🇨🇺' => 'vlag: Kuba',
     '🇨🇻' => 'vlag: Kaap Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'medium velkleur',
     '🏾' => 'medium-donker velkleur',
     '🏿' => 'donker velkleur',
-    '🪉' => 'harp',
-    '🪏' => 'graaf',
-    '🪾' => 'blaarlose boom',
-    '🫆' => 'vingerafdruk',
-    '🫜' => 'wortelgroente',
-    '🫟' => 'spat',
-    '🫩' => 'gesig met sakke onder oë',
     '😀' => 'grinnikende gesig',
     '😃' => 'grinnikende gesiggie met groot oë',
     '😄' => 'grinnikende gesiggie met glimlaggende oë',
@@ -2450,6 +2600,7 @@
     '😪' => 'vaak gesig',
     '🤤' => 'gesig wat kwyl',
     '😴' => 'gesig wat slaap',
+    '🫩' => 'gesig met sakke onder oë',
     '😷' => 'gesig met mediese masker',
     '🤒' => 'gesig met koorspen',
     '🤕' => 'gesig met kopverband',
@@ -2476,6 +2627,7 @@
     '😯' => 'gedempte gesig',
     '😲' => 'verstomde gesig',
     '😳' => 'blosende gesig',
+    '🫪' => 'verwronge gesiggie',
     '🥺' => 'soebat gesig',
     '🥹' => 'gesig wat wil huil',
     '😦' => 'fronsende gesig met oop mond',
@@ -2547,6 +2699,7 @@
     '💋' => 'soenmerk',
     '💯' => 'honderd punte',
     '💢' => 'woedesimbool',
+    '🫯' => 'bakleiwolkie',
     '💥' => 'botsing',
     '💫' => 'duiselig',
     '💦' => 'sweetdruppels',
@@ -2670,6 +2823,7 @@
     '🧞' => 'towergees',
     '🧟' => 'zombie',
     '🧌' => 'trol',
+    '🫈' => 'harige skepsel',
     '💆' => 'persoon kry massering',
     '💇' => 'haarsny',
     '🚶' => 'voetganger',
@@ -2713,6 +2867,7 @@
     '🫂' => 'mense wat mekaar druk',
     '👪' => 'gesin',
     '👣' => 'voetspore',
+    '🫆' => 'vingerafdruk',
     '🦰' => 'rooi hare',
     '🦱' => 'krulhare',
     '🦳' => 'wit hare',
@@ -2812,6 +2967,7 @@
     '🐳' => 'walvis wat spuit',
     '🐋' => 'walvis',
     '🐬' => 'dolfyn',
+    '🫍' => 'moordvis',
     '🦭' => 'rob',
     '🐟' => 'vis',
     '🐠' => 'tropiese vis',
@@ -2821,6 +2977,11 @@
     '🐚' => 'spiraalskulp',
     '🪸' => 'koraal',
     '🪼' => 'jellievis',
+    '🦀' => 'krap',
+    '🦞' => 'kreef',
+    '🦐' => 'garnaal',
+    '🦑' => 'inkvis',
+    '🦪' => 'oester',
     '🐌' => 'slak',
     '🦋' => 'skoenlapper',
     '🐛' => 'gogga',
@@ -2865,6 +3026,7 @@
     '🪹' => 'leë nes',
     '🪺' => 'nes met eiers',
     '🍄' => 'sampioen',
+    '🪾' => 'blaarlose boom',
     '🍇' => 'druiwe',
     '🍈' => 'spanspek',
     '🍉' => 'waatlemoen',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kastaiing',
     '🫚' => 'gemmerwortel',
     '🫛' => 'ertjiepeul',
+    '🫜' => 'wortelgroente',
     '🍞' => 'brood',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2952,11 +3115,6 @@
     '🥟' => 'kluitjie',
     '🥠' => 'fortuinkoekie',
     '🥡' => 'wegneemeteboks',
-    '🦀' => 'krap',
-    '🦞' => 'kreef',
-    '🦐' => 'garnaal',
-    '🦑' => 'inkvis',
-    '🦪' => 'oester',
     '🍦' => 'sagte roomys',
     '🍧' => 'ysskaafsels',
     '🍨' => 'roomys',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'berg met sneeu op',
     '⛰' => 'berg',
+    '🛘' => 'grondstorting',
     '🌋' => 'vulkaan',
     '🗻' => 'berg foedji',
     '🏕' => 'kampeer',
@@ -3026,7 +3185,7 @@
     '🏠' => 'huis',
     '🏡' => 'huis met tuin',
     '🏢' => 'kantoorgebou',
-    '🏣' => 'japanse poskantoor',
+    '🏣' => 'Japanse poskantoor',
     '🏤' => 'poskantoor',
     '🏥' => 'hospitaal',
     '🏦' => 'bank',
@@ -3367,16 +3526,18 @@
     '🎧' => 'oorfoon',
     '📻' => 'radio',
     '🎷' => 'saxofoon',
+    '🎺' => 'trompet',
+    '🪊' => 'tromboon',
     '🪗' => 'trekklavier',
     '🎸' => 'kitaar',
     '🎹' => 'klawerbord',
-    '🎺' => 'trompet',
     '🎻' => 'viool',
     '🪕' => 'banjo',
     '🥁' => 'trom',
     '🪘' => 'lang drom',
     '🪇' => 'marakkas',
     '🪈' => 'fluit',
+    '🪉' => 'harp',
     '📱' => 'selfoon',
     '📲' => 'selfoon met pyl',
     '☎' => 'telefoon',
@@ -3430,8 +3591,9 @@
     '📑' => 'boekmerkoortjies',
     '🔖' => 'boekmerk',
     '🏷' => 'etiket',
-    '💰' => 'geldsak',
     '🪙' => 'muntstuk',
+    '💰' => 'geldsak',
+    '🪎' => 'skatkis',
     '💴' => 'jenbanknoot',
     '💵' => 'dollarbanknoot',
     '💶' => 'eurobanknoot',
@@ -3514,6 +3676,7 @@
     '🧰' => 'gereedskaptrommel',
     '🧲' => 'magneet',
     '🪜' => 'leer',
+    '🪏' => 'graaf',
     '⚗' => 'alembiek',
     '🧪' => 'proefbuis',
     '🧫' => 'petribakkie',
@@ -3697,6 +3860,7 @@
     '✴' => 'agtpuntster',
     '❇' => 'vonkster',
     '™' => 'handelmerk',
+    '🫟' => 'spat',
     '🔠' => 'invoer- Latynse bokas',
     '🔡' => 'invoer- Latynse onderkas',
     '🔢' => 'invoersyfers',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ak.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ak.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ak.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ak.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,401 @@
 <?php
 
 return [
+    '🧑🏻‍❤‍💋‍🧑🏼' => 'Mfeano: onipa, onipa, wedeε ani a εda so, ne wedeε ani a εda so kakra',
+    '🧑🏻‍❤‍💋‍🧑🏽' => 'Mfeano: onipa, onipa, wedeε ani a εda so, ne wedeε ani a εda hᴐ kakra',
+    '🧑🏻‍❤‍💋‍🧑🏾' => 'Mfeano: onipa, onipa, wedeε ani a εda so, ne wedeε ani tuntum kakra',
+    '🧑🏻‍❤‍💋‍🧑🏿' => 'Mfeano: onipa, onipa, wedeε ani a εda so, ne wedeε ani tuntum',
+    '🧑🏼‍❤‍💋‍🧑🏻' => 'Mfeano: onipa, onipa, wedeε ani a εda so kakra, ne wedeε ani a εda so',
+    '🧑🏼‍❤‍💋‍🧑🏽' => 'Mfeano: onipa, onipa, wedeε ani a εda so kakra, ne wedeε ani a εda hᴐ kakra',
+    '🧑🏼‍❤‍💋‍🧑🏾' => 'Mfeano: onipa, onipa, wedeε ani a εda so kakra, ne wedeε ani tuntum kakra',
+    '🧑🏼‍❤‍💋‍🧑🏿' => 'Mfeano: onipa, onipa, wedeε ani a εda so kakra, ne wedeε ani tuntum',
+    '🧑🏽‍❤‍💋‍🧑🏻' => 'Mfeano: onipa, onipa, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so',
+    '🧑🏽‍❤‍💋‍🧑🏼' => 'Mfeano: onipa, onipa, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so kakra',
+    '🧑🏽‍❤‍💋‍🧑🏾' => 'Mfeano: onipa, onipa, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum kakra',
+    '🧑🏽‍❤‍💋‍🧑🏿' => 'Mfeano: onipa, onipa, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum',
+    '🧑🏾‍❤‍💋‍🧑🏻' => 'Mfeano: onipa, onipa, wedeε ani tuntum kakra, ne wedeε ani a εda so',
+    '🧑🏾‍❤‍💋‍🧑🏼' => 'Mfeano: onipa, onipa, wedeε ani tuntum kakra, ne wedeε ani a εda so kakra',
+    '🧑🏾‍❤‍💋‍🧑🏽' => 'Mfeano: onipa, onipa, wedeε ani tuntum kakra, ne wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍❤‍💋‍🧑🏿' => 'Mfeano: onipa, onipa, wedeε ani tuntum kakra, ne wedeε ani tuntum',
+    '🧑🏿‍❤‍💋‍🧑🏻' => 'Mfeano: onipa, onipa, wedeε ani tuntum, ne wedeε ani a εda so',
+    '🧑🏿‍❤‍💋‍🧑🏼' => 'Mfeano: onipa, onipa, wedeε ani tuntum, ne wedeε ani a εda so kakra',
+    '🧑🏿‍❤‍💋‍🧑🏽' => 'Mfeano: onipa, onipa, wedeε ani tuntum, ne wedeε ani a εda hᴐ kakra',
+    '🧑🏿‍❤‍💋‍🧑🏾' => 'Mfeano: onipa, onipa, wedeε ani tuntum, ne wedeε ani tuntum kakra',
+    '👨🏻‍❤‍💋‍👨🏻' => 'Mfeano: ɔbarima, ɔbarima, ne wedeε ani a εda so',
+    '👨🏻‍❤‍💋‍👨🏼' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda so, ne wedeε ani a εda so kakra',
+    '👨🏻‍❤‍💋‍👨🏽' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda so, ne wedeε ani a εda hᴐ kakra',
+    '👨🏻‍❤‍💋‍👨🏾' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda so, ne wedeε ani tuntum kakra',
+    '👨🏻‍❤‍💋‍👨🏿' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda so, ne wedeε ani tuntum',
+    '👨🏼‍❤‍💋‍👨🏻' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani a εda so',
+    '👨🏼‍❤‍💋‍👨🏼' => 'Mfeano: ɔbarima, ɔbarima, ne wedeε ani a εda so kakra',
+    '👨🏼‍❤‍💋‍👨🏽' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani a εda hᴐ kakra',
+    '👨🏼‍❤‍💋‍👨🏾' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani tuntum kakra',
+    '👨🏼‍❤‍💋‍👨🏿' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani tuntum',
+    '👨🏽‍❤‍💋‍👨🏻' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so',
+    '👨🏽‍❤‍💋‍👨🏼' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so kakra',
+    '👨🏽‍❤‍💋‍👨🏽' => 'Mfeano: ɔbarima, ɔbarima, ne wedeε ani a εda hᴐ kakra',
+    '👨🏽‍❤‍💋‍👨🏾' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum kakra',
+    '👨🏽‍❤‍💋‍👨🏿' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum',
+    '👨🏾‍❤‍💋‍👨🏻' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda so',
+    '👨🏾‍❤‍💋‍👨🏼' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda so kakra',
+    '👨🏾‍❤‍💋‍👨🏽' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda hᴐ kakra',
+    '👨🏾‍❤‍💋‍👨🏾' => 'Mfeano: ɔbarima, ɔbarima, ne wedeε ani tuntum kakra',
+    '👨🏾‍❤‍💋‍👨🏿' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani tuntum',
+    '👨🏿‍❤‍💋‍👨🏻' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda so',
+    '👨🏿‍❤‍💋‍👨🏼' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda so kakra',
+    '👨🏿‍❤‍💋‍👨🏽' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda hᴐ kakra',
+    '👨🏿‍❤‍💋‍👨🏾' => 'Mfeano: ɔbarima, ɔbarima, wedeε ani tuntum, ne wedeε ani tuntum kakra',
+    '👨🏿‍❤‍💋‍👨🏿' => 'Mfeano: ɔbarima, ɔbarima, ne wedeε ani tuntum',
+    '👩🏻‍❤‍💋‍👨🏻' => 'Mfeano: maame, ɔbarima, ne wedeε ani a εda so',
+    '👩🏻‍❤‍💋‍👨🏼' => 'Mfeano: maame, ɔbarima, wedeε ani a εda so, ne wedeε ani a εda so kakra',
+    '👩🏻‍❤‍💋‍👨🏽' => 'Mfeano: maame, ɔbarima, wedeε ani a εda so, ne wedeε ani a εda hᴐ kakra',
+    '👩🏻‍❤‍💋‍👨🏾' => 'Mfeano: maame, ɔbarima, wedeε ani a εda so, ne wedeε ani tuntum kakra',
+    '👩🏻‍❤‍💋‍👨🏿' => 'Mfeano: maame, ɔbarima, wedeε ani a εda so, ne wedeε ani tuntum',
+    '👩🏼‍❤‍💋‍👨🏻' => 'Mfeano: maame, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani a εda so',
+    '👩🏼‍❤‍💋‍👨🏼' => 'Mfeano: maame, ɔbarima, ne wedeε ani a εda so kakra',
+    '👩🏼‍❤‍💋‍👨🏽' => 'Mfeano: maame, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani a εda hᴐ kakra',
+    '👩🏼‍❤‍💋‍👨🏾' => 'Mfeano: maame, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani tuntum kakra',
+    '👩🏼‍❤‍💋‍👨🏿' => 'Mfeano: maame, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani tuntum',
+    '👩🏽‍❤‍💋‍👨🏻' => 'Mfeano: maame, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so',
+    '👩🏽‍❤‍💋‍👨🏼' => 'Mfeano: maame, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so kakra',
+    '👩🏽‍❤‍💋‍👨🏽' => 'Mfeano: maame, ɔbarima, ne wedeε ani a εda hᴐ kakra',
+    '👩🏽‍❤‍💋‍👨🏾' => 'Mfeano: maame, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum kakra',
+    '👩🏽‍❤‍💋‍👨🏿' => 'Mfeano: maame, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum',
+    '👩🏾‍❤‍💋‍👨🏻' => 'Mfeano: maame, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda so',
+    '👩🏾‍❤‍💋‍👨🏼' => 'Mfeano: maame, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda so kakra',
+    '👩🏾‍❤‍💋‍👨🏽' => 'Mfeano: maame, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda hᴐ kakra',
+    '👩🏾‍❤‍💋‍👨🏾' => 'Mfeano: maame, ɔbarima, ne wedeε ani tuntum kakra',
+    '👩🏾‍❤‍💋‍👨🏿' => 'Mfeano: maame, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani tuntum',
+    '👩🏿‍❤‍💋‍👨🏻' => 'Mfeano: maame, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda so',
+    '👩🏿‍❤‍💋‍👨🏼' => 'Mfeano: maame, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda so kakra',
+    '👩🏿‍❤‍💋‍👨🏽' => 'Mfeano: maame, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda hᴐ kakra',
+    '👩🏿‍❤‍💋‍👨🏾' => 'Mfeano: maame, ɔbarima, wedeε ani tuntum, ne wedeε ani tuntum kakra',
+    '👩🏿‍❤‍💋‍👨🏿' => 'Mfeano: maame, ɔbarima, ne wedeε ani tuntum',
+    '👩🏻‍❤‍💋‍👩🏻' => 'Mfeano: maame, maame, ne wedeε ani a εda so',
+    '👩🏻‍❤‍💋‍👩🏼' => 'Mfeano: maame, maame, wedeε ani a εda so, ne wedeε ani a εda so kakra',
+    '👩🏻‍❤‍💋‍👩🏽' => 'Mfeano: maame, maame, wedeε ani a εda so, ne wedeε ani a εda hᴐ kakra',
+    '👩🏻‍❤‍💋‍👩🏾' => 'Mfeano: maame, maame, wedeε ani a εda so, ne wedeε ani tuntum kakra',
+    '👩🏻‍❤‍💋‍👩🏿' => 'Mfeano: maame, maame, wedeε ani a εda so, ne wedeε ani tuntum',
+    '👩🏼‍❤‍💋‍👩🏻' => 'Mfeano: maame, maame, wedeε ani a εda so kakra, ne wedeε ani a εda so',
+    '👩🏼‍❤‍💋‍👩🏼' => 'Mfeano: maame, maame, ne wedeε ani a εda so kakra',
+    '👩🏼‍❤‍💋‍👩🏽' => 'Mfeano: maame, maame, wedeε ani a εda so kakra, ne wedeε ani a εda hᴐ kakra',
+    '👩🏼‍❤‍💋‍👩🏾' => 'Mfeano: maame, maame, wedeε ani a εda so kakra, ne wedeε ani tuntum kakra',
+    '👩🏼‍❤‍💋‍👩🏿' => 'Mfeano: maame, maame, wedeε ani a εda so kakra, ne wedeε ani tuntum',
+    '👩🏽‍❤‍💋‍👩🏻' => 'Mfeano: maame, maame, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so',
+    '👩🏽‍❤‍💋‍👩🏼' => 'Mfeano: maame, maame, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so kakra',
+    '👩🏽‍❤‍💋‍👩🏽' => 'Mfeano: maame, maame, ne wedeε ani a εda hᴐ kakra',
+    '👩🏽‍❤‍💋‍👩🏾' => 'Mfeano: maame, maame, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum kakra',
+    '👩🏽‍❤‍💋‍👩🏿' => 'Mfeano: maame, maame, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum',
+    '👩🏾‍❤‍💋‍👩🏻' => 'Mfeano: maame, maame, wedeε ani tuntum kakra, ne wedeε ani a εda so',
+    '👩🏾‍❤‍💋‍👩🏼' => 'Mfeano: maame, maame, wedeε ani tuntum kakra, ne wedeε ani a εda so kakra',
+    '👩🏾‍❤‍💋‍👩🏽' => 'Mfeano: maame, maame, wedeε ani tuntum kakra, ne wedeε ani a εda hᴐ kakra',
+    '👩🏾‍❤‍💋‍👩🏾' => 'Mfeano: maame, maame, ne wedeε ani tuntum kakra',
+    '👩🏾‍❤‍💋‍👩🏿' => 'Mfeano: maame, maame, wedeε ani tuntum kakra, ne wedeε ani tuntum',
+    '👩🏿‍❤‍💋‍👩🏻' => 'Mfeano: maame, maame, wedeε ani tuntum, ne wedeε ani a εda so',
+    '👩🏿‍❤‍💋‍👩🏼' => 'Mfeano: maame, maame, wedeε ani tuntum, ne wedeε ani a εda so kakra',
+    '👩🏿‍❤‍💋‍👩🏽' => 'Mfeano: maame, maame, wedeε ani tuntum, ne wedeε ani a εda hᴐ kakra',
+    '👩🏿‍❤‍💋‍👩🏾' => 'Mfeano: maame, maame, wedeε ani tuntum, ne wedeε ani tuntum kakra',
+    '👩🏿‍❤‍💋‍👩🏿' => 'Mfeano: maame, maame, ne wedeε ani tuntum',
+    '🧑🏻‍🫯‍🧑🏼' => 'Nkurɔfoɔ retentam: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '🧑🏻‍🫯‍🧑🏽' => 'Nkurɔfoɔ retentam: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '🧑🏻‍🫯‍🧑🏾' => 'Nkurɔfoɔ retentam: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '🧑🏻‍🫯‍🧑🏿' => 'Nkurɔfoɔ retentam: wedeε ani a εda so ne wedeε ani tuntum',
+    '🧑🏼‍🫯‍🧑🏻' => 'Nkurɔfoɔ retentam: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '🧑🏼‍🫯‍🧑🏽' => 'Nkurɔfoɔ retentam: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '🧑🏼‍🫯‍🧑🏾' => 'Nkurɔfoɔ retentam: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '🧑🏼‍🫯‍🧑🏿' => 'Nkurɔfoɔ retentam: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '🧑🏽‍🫯‍🧑🏻' => 'Nkurɔfoɔ retentam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '🧑🏽‍🫯‍🧑🏼' => 'Nkurɔfoɔ retentam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '🧑🏽‍🫯‍🧑🏾' => 'Nkurɔfoɔ retentam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '🧑🏽‍🫯‍🧑🏿' => 'Nkurɔfoɔ retentam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '🧑🏾‍🫯‍🧑🏻' => 'Nkurɔfoɔ retentam: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '🧑🏾‍🫯‍🧑🏼' => 'Nkurɔfoɔ retentam: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '🧑🏾‍🫯‍🧑🏽' => 'Nkurɔfoɔ retentam: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🫯‍🧑🏿' => 'Nkurɔfoɔ retentam: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '🧑🏿‍🫯‍🧑🏻' => 'Nkurɔfoɔ retentam: wedeε ani tuntum ne wedeε ani a εda so',
+    '🧑🏿‍🫯‍🧑🏼' => 'Nkurɔfoɔ retentam: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '🧑🏿‍🫯‍🧑🏽' => 'Nkurɔfoɔ retentam: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '🧑🏿‍🫯‍🧑🏾' => 'Nkurɔfoɔ retentam: wedeε ani tuntum ne wedeε ani tuntum kakra',
+    '🧑🏻‍❤‍🧑🏼' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda so, ne wedeε ani a εda so kakra',
+    '🧑🏻‍❤‍🧑🏽' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda so, ne wedeε ani a εda hᴐ kakra',
+    '🧑🏻‍❤‍🧑🏾' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda so, ne wedeε ani tuntum kakra',
+    '🧑🏻‍❤‍🧑🏿' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda so, ne wedeε ani tuntum',
+    '🧑🏼‍❤‍🧑🏻' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda so kakra, ne wedeε ani a εda so',
+    '🧑🏼‍❤‍🧑🏽' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda so kakra, ne wedeε ani a εda hᴐ kakra',
+    '🧑🏼‍❤‍🧑🏾' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda so kakra, ne wedeε ani tuntum kakra',
+    '🧑🏼‍❤‍🧑🏿' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda so kakra, ne wedeε ani tuntum',
+    '🧑🏽‍❤‍🧑🏻' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so',
+    '🧑🏽‍❤‍🧑🏼' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so kakra',
+    '🧑🏽‍❤‍🧑🏾' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum kakra',
+    '🧑🏽‍❤‍🧑🏿' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum',
+    '🧑🏾‍❤‍🧑🏻' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani tuntum kakra, ne wedeε ani a εda so',
+    '🧑🏾‍❤‍🧑🏼' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani tuntum kakra, ne wedeε ani a εda so kakra',
+    '🧑🏾‍❤‍🧑🏽' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani tuntum kakra, ne wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍❤‍🧑🏿' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani tuntum kakra, ne wedeε ani tuntum',
+    '🧑🏿‍❤‍🧑🏻' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani tuntum, ne wedeε ani a εda so',
+    '🧑🏿‍❤‍🧑🏼' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani tuntum, ne wedeε ani a εda so kakra',
+    '🧑🏿‍❤‍🧑🏽' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani tuntum, ne wedeε ani a εda hᴐ kakra',
+    '🧑🏿‍❤‍🧑🏾' => 'Awarefoɔ ne akoma: onipa, onipa, wedeε ani tuntum, ne wedeε ani tuntum kakra',
+    '🧑🏻‍🐰‍🧑🏼' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '🧑🏻‍🐰‍🧑🏽' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '🧑🏻‍🐰‍🧑🏾' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '🧑🏻‍🐰‍🧑🏿' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda so ne wedeε ani tuntum',
+    '🧑🏼‍🐰‍🧑🏻' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '🧑🏼‍🐰‍🧑🏽' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '🧑🏼‍🐰‍🧑🏾' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '🧑🏼‍🐰‍🧑🏿' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '🧑🏽‍🐰‍🧑🏻' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '🧑🏽‍🐰‍🧑🏼' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '🧑🏽‍🐰‍🧑🏾' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '🧑🏽‍🐰‍🧑🏿' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '🧑🏾‍🐰‍🧑🏻' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '🧑🏾‍🐰‍🧑🏼' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '🧑🏾‍🐰‍🧑🏽' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🐰‍🧑🏿' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '🧑🏿‍🐰‍🧑🏻' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani tuntum ne wedeε ani a εda so',
+    '🧑🏿‍🐰‍🧑🏼' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '🧑🏿‍🐰‍🧑🏽' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '🧑🏿‍🐰‍🧑🏾' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani tuntum ne wedeε ani tuntum kakra',
+    '👨🏻‍🫯‍👨🏼' => 'Mmarima retentam: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '👨🏻‍🫯‍👨🏽' => 'Mmarima retentam: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '👨🏻‍🫯‍👨🏾' => 'Mmarima retentam: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '👨🏻‍🫯‍👨🏿' => 'Mmarima retentam: wedeε ani a εda so ne wedeε ani tuntum',
+    '👨🏼‍🫯‍👨🏻' => 'Mmarima retentam: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '👨🏼‍🫯‍👨🏽' => 'Mmarima retentam: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '👨🏼‍🫯‍👨🏾' => 'Mmarima retentam: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '👨🏼‍🫯‍👨🏿' => 'Mmarima retentam: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '👨🏽‍🫯‍👨🏻' => 'Mmarima retentam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '👨🏽‍🫯‍👨🏼' => 'Mmarima retentam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '👨🏽‍🫯‍👨🏾' => 'Mmarima retentam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '👨🏽‍🫯‍👨🏿' => 'Mmarima retentam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '👨🏾‍🫯‍👨🏻' => 'Mmarima retentam: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '👨🏾‍🫯‍👨🏼' => 'Mmarima retentam: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '👨🏾‍🫯‍👨🏽' => 'Mmarima retentam: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🫯‍👨🏿' => 'Mmarima retentam: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '👨🏿‍🫯‍👨🏻' => 'Mmarima retentam: wedeε ani tuntum ne wedeε ani a εda so',
+    '👨🏿‍🫯‍👨🏼' => 'Mmarima retentam: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '👨🏿‍🫯‍👨🏽' => 'Mmarima retentam: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '👨🏿‍🫯‍👨🏾' => 'Mmarima retentam: wedeε ani tuntum ne wedeε ani tuntum kakra',
+    '👨🏻‍❤‍👨🏻' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, ne wedeε ani a εda so',
+    '👨🏻‍❤‍👨🏼' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda so, ne wedeε ani a εda so kakra',
+    '👨🏻‍❤‍👨🏽' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda so, ne wedeε ani a εda hᴐ kakra',
+    '👨🏻‍❤‍👨🏾' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda so, ne wedeε ani tuntum kakra',
+    '👨🏻‍❤‍👨🏿' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda so, ne wedeε ani tuntum',
+    '👨🏼‍❤‍👨🏻' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani a εda so',
+    '👨🏼‍❤‍👨🏼' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, ne wedeε ani a εda so kakra',
+    '👨🏼‍❤‍👨🏽' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani a εda hᴐ kakra',
+    '👨🏼‍❤‍👨🏾' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani tuntum kakra',
+    '👨🏼‍❤‍👨🏿' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani tuntum',
+    '👨🏽‍❤‍👨🏻' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so',
+    '👨🏽‍❤‍👨🏼' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so kakra',
+    '👨🏽‍❤‍👨🏽' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, ne wedeε ani a εda hᴐ kakra',
+    '👨🏽‍❤‍👨🏾' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum kakra',
+    '👨🏽‍❤‍👨🏿' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum',
+    '👨🏾‍❤‍👨🏻' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda so',
+    '👨🏾‍❤‍👨🏼' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda so kakra',
+    '👨🏾‍❤‍👨🏽' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda hᴐ kakra',
+    '👨🏾‍❤‍👨🏾' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, ne wedeε ani tuntum kakra',
+    '👨🏾‍❤‍👨🏿' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani tuntum',
+    '👨🏿‍❤‍👨🏻' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda so',
+    '👨🏿‍❤‍👨🏼' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda so kakra',
+    '👨🏿‍❤‍👨🏽' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda hᴐ kakra',
+    '👨🏿‍❤‍👨🏾' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, wedeε ani tuntum, ne wedeε ani tuntum kakra',
+    '👨🏿‍❤‍👨🏿' => 'Awarefoɔ ne akoma: ɔbarima, ɔbarima, ne wedeε ani tuntum',
+    '👨🏻‍🐰‍👨🏼' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '👨🏻‍🐰‍👨🏽' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '👨🏻‍🐰‍👨🏾' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '👨🏻‍🐰‍👨🏿' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda so ne wedeε ani tuntum',
+    '👨🏼‍🐰‍👨🏻' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '👨🏼‍🐰‍👨🏽' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '👨🏼‍🐰‍👨🏾' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '👨🏼‍🐰‍👨🏿' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '👨🏽‍🐰‍👨🏻' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '👨🏽‍🐰‍👨🏼' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '👨🏽‍🐰‍👨🏾' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '👨🏽‍🐰‍👨🏿' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '👨🏾‍🐰‍👨🏻' => 'Mmarima a wɔwɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '👨🏾‍🐰‍👨🏼' => 'Mmarima a wɔwɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '👨🏾‍🐰‍👨🏽' => 'Mmarima a wɔwɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🐰‍👨🏿' => 'Mmarima a wɔwɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '👨🏿‍🐰‍👨🏻' => 'Mmarima a wɔwɔ adanko aso: wedeε ani tuntum ne wedeε ani a εda so',
+    '👨🏿‍🐰‍👨🏼' => 'Mmarima a wɔwɔ adanko aso: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '👨🏿‍🐰‍👨🏽' => 'Mmarima a wɔwɔ adanko aso: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '👨🏿‍🐰‍👨🏾' => 'Mmarima a wɔwɔ adanko aso: wedeε ani tuntum ne wedeε ani tuntum kakra',
+    '👩🏻‍🫯‍👩🏼' => 'Mmaa retentam: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '👩🏻‍🫯‍👩🏽' => 'Mmaa retentam: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '👩🏻‍🫯‍👩🏾' => 'Mmaa retentam: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '👩🏻‍🫯‍👩🏿' => 'Mmaa retentam: wedeε ani a εda so ne wedeε ani tuntum',
+    '👩🏼‍🫯‍👩🏻' => 'Mmaa retentam: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '👩🏼‍🫯‍👩🏽' => 'Mmaa retentam: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '👩🏼‍🫯‍👩🏾' => 'Mmaa retentam: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '👩🏼‍🫯‍👩🏿' => 'Mmaa retentam: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '👩🏽‍🫯‍👩🏻' => 'Mmaa retentam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '👩🏽‍🫯‍👩🏼' => 'Mmaa retentam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '👩🏽‍🫯‍👩🏾' => 'Mmaa retentam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '👩🏽‍🫯‍👩🏿' => 'Mmaa retentam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '👩🏾‍🫯‍👩🏻' => 'Mmaa retentam: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '👩🏾‍🫯‍👩🏼' => 'Mmaa retentam: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '👩🏾‍🫯‍👩🏽' => 'Mmaa retentam: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🫯‍👩🏿' => 'Mmaa retentam: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '👩🏿‍🫯‍👩🏻' => 'Mmaa retentam: wedeε ani tuntum ne wedeε ani a εda so',
+    '👩🏿‍🫯‍👩🏼' => 'Mmaa retentam: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '👩🏿‍🫯‍👩🏽' => 'Mmaa retentam: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '👩🏿‍🫯‍👩🏾' => 'Mmaa retentam: wedeε ani tuntum ne wedeε ani tuntum kakra',
+    '👩🏻‍❤‍👨🏻' => 'Awarefoɔ ne akoma: maame, ɔbarima, ne wedeε ani a εda so',
+    '👩🏻‍❤‍👨🏼' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda so, ne wedeε ani a εda so kakra',
+    '👩🏻‍❤‍👨🏽' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda so, ne wedeε ani a εda hᴐ kakra',
+    '👩🏻‍❤‍👨🏾' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda so, ne wedeε ani tuntum kakra',
+    '👩🏻‍❤‍👨🏿' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda so, ne wedeε ani tuntum',
+    '👩🏼‍❤‍👨🏻' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani a εda so',
+    '👩🏼‍❤‍👨🏼' => 'Awarefoɔ ne akoma: maame, ɔbarima, ne wedeε ani a εda so kakra',
+    '👩🏼‍❤‍👨🏽' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani a εda hᴐ kakra',
+    '👩🏼‍❤‍👨🏾' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani tuntum kakra',
+    '👩🏼‍❤‍👨🏿' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda so kakra, ne wedeε ani tuntum',
+    '👩🏽‍❤‍👨🏻' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so',
+    '👩🏽‍❤‍👨🏼' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so kakra',
+    '👩🏽‍❤‍👨🏽' => 'Awarefoɔ ne akoma: maame, ɔbarima, ne wedeε ani a εda hᴐ kakra',
+    '👩🏽‍❤‍👨🏾' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum kakra',
+    '👩🏽‍❤‍👨🏿' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum',
+    '👩🏾‍❤‍👨🏻' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda so',
+    '👩🏾‍❤‍👨🏼' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda so kakra',
+    '👩🏾‍❤‍👨🏽' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani a εda hᴐ kakra',
+    '👩🏾‍❤‍👨🏾' => 'Awarefoɔ ne akoma: maame, ɔbarima, ne wedeε ani tuntum kakra',
+    '👩🏾‍❤‍👨🏿' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani tuntum kakra, ne wedeε ani tuntum',
+    '👩🏿‍❤‍👨🏻' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda so',
+    '👩🏿‍❤‍👨🏼' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda so kakra',
+    '👩🏿‍❤‍👨🏽' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani tuntum, ne wedeε ani a εda hᴐ kakra',
+    '👩🏿‍❤‍👨🏾' => 'Awarefoɔ ne akoma: maame, ɔbarima, wedeε ani tuntum, ne wedeε ani tuntum kakra',
+    '👩🏿‍❤‍👨🏿' => 'Awarefoɔ ne akoma: maame, ɔbarima, ne wedeε ani tuntum',
+    '👩🏻‍❤‍👩🏻' => 'Awarefoɔ ne akoma: maame, maame, ne wedeε ani a εda so',
+    '👩🏻‍❤‍👩🏼' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda so, ne wedeε ani a εda so kakra',
+    '👩🏻‍❤‍👩🏽' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda so, ne wedeε ani a εda hᴐ kakra',
+    '👩🏻‍❤‍👩🏾' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda so, ne wedeε ani tuntum kakra',
+    '👩🏻‍❤‍👩🏿' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda so, ne wedeε ani tuntum',
+    '👩🏼‍❤‍👩🏻' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda so kakra, ne wedeε ani a εda so',
+    '👩🏼‍❤‍👩🏼' => 'Awarefoɔ ne akoma: maame, maame, ne wedeε ani a εda so kakra',
+    '👩🏼‍❤‍👩🏽' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda so kakra, ne wedeε ani a εda hᴐ kakra',
+    '👩🏼‍❤‍👩🏾' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda so kakra, ne wedeε ani tuntum kakra',
+    '👩🏼‍❤‍👩🏿' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda so kakra, ne wedeε ani tuntum',
+    '👩🏽‍❤‍👩🏻' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so',
+    '👩🏽‍❤‍👩🏼' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda hᴐ kakra, ne wedeε ani a εda so kakra',
+    '👩🏽‍❤‍👩🏽' => 'Awarefoɔ ne akoma: maame, maame, ne wedeε ani a εda hᴐ kakra',
+    '👩🏽‍❤‍👩🏾' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum kakra',
+    '👩🏽‍❤‍👩🏿' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani a εda hᴐ kakra, ne wedeε ani tuntum',
+    '👩🏾‍❤‍👩🏻' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani tuntum kakra, ne wedeε ani a εda so',
+    '👩🏾‍❤‍👩🏼' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani tuntum kakra, ne wedeε ani a εda so kakra',
+    '👩🏾‍❤‍👩🏽' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani tuntum kakra, ne wedeε ani a εda hᴐ kakra',
+    '👩🏾‍❤‍👩🏾' => 'Awarefoɔ ne akoma: maame, maame, ne wedeε ani tuntum kakra',
+    '👩🏾‍❤‍👩🏿' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani tuntum kakra, ne wedeε ani tuntum',
+    '👩🏿‍❤‍👩🏻' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani tuntum, ne wedeε ani a εda so',
+    '👩🏿‍❤‍👩🏼' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani tuntum, ne wedeε ani a εda so kakra',
+    '👩🏿‍❤‍👩🏽' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani tuntum, ne wedeε ani a εda hᴐ kakra',
+    '👩🏿‍❤‍👩🏾' => 'Awarefoɔ ne akoma: maame, maame, wedeε ani tuntum, ne wedeε ani tuntum kakra',
+    '👩🏿‍❤‍👩🏿' => 'Awarefoɔ ne akoma: maame, maame, ne wedeε ani tuntum',
+    '👩🏻‍🐰‍👩🏼' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '👩🏻‍🐰‍👩🏽' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '👩🏻‍🐰‍👩🏾' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '👩🏻‍🐰‍👩🏿' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda so ne wedeε ani tuntum',
+    '👩🏼‍🐰‍👩🏻' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '👩🏼‍🐰‍👩🏽' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '👩🏼‍🐰‍👩🏾' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '👩🏼‍🐰‍👩🏿' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '👩🏽‍🐰‍👩🏻' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '👩🏽‍🐰‍👩🏼' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '👩🏽‍🐰‍👩🏾' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '👩🏽‍🐰‍👩🏿' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '👩🏾‍🐰‍👩🏻' => 'Mmaa a wɔwɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '👩🏾‍🐰‍👩🏼' => 'Mmaa a wɔwɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '👩🏾‍🐰‍👩🏽' => 'Mmaa a wɔwɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🐰‍👩🏿' => 'Mmaa a wɔwɔ adanko aso: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '👩🏿‍🐰‍👩🏻' => 'Mmaa a wɔwɔ adanko aso: wedeε ani tuntum ne wedeε ani a εda so',
+    '👩🏿‍🐰‍👩🏼' => 'Mmaa a wɔwɔ adanko aso: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '👩🏿‍🐰‍👩🏽' => 'Mmaa a wɔwɔ adanko aso: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '👩🏿‍🐰‍👩🏾' => 'Mmaa a wɔwɔ adanko aso: wedeε ani tuntum ne wedeε ani tuntum kakra',
+    '🧑🏻‍🤝‍🧑🏻' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda so',
+    '🧑🏻‍🤝‍🧑🏼' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '🧑🏻‍🤝‍🧑🏽' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '🧑🏻‍🤝‍🧑🏾' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '🧑🏻‍🤝‍🧑🏿' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda so ne wedeε ani tuntum',
+    '🧑🏼‍🤝‍🧑🏻' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '🧑🏼‍🤝‍🧑🏼' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda so kakra',
+    '🧑🏼‍🤝‍🧑🏽' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '🧑🏼‍🤝‍🧑🏾' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '🧑🏼‍🤝‍🧑🏿' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '🧑🏽‍🤝‍🧑🏻' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '🧑🏽‍🤝‍🧑🏼' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '🧑🏽‍🤝‍🧑🏽' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda hᴐ kakra',
+    '🧑🏽‍🤝‍🧑🏾' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '🧑🏽‍🤝‍🧑🏿' => 'Nkurɔfoɔ asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '🧑🏾‍🤝‍🧑🏻' => 'Nkurɔfoɔ asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '🧑🏾‍🤝‍🧑🏼' => 'Nkurɔfoɔ asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '🧑🏾‍🤝‍🧑🏽' => 'Nkurɔfoɔ asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🤝‍🧑🏾' => 'Nkurɔfoɔ asɔ nsam: wedeε ani tuntum kakra',
+    '🧑🏾‍🤝‍🧑🏿' => 'Nkurɔfoɔ asɔ nsam: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '🧑🏿‍🤝‍🧑🏻' => 'Nkurɔfoɔ asɔ nsam: wedeε ani tuntum ne wedeε ani a εda so',
+    '🧑🏿‍🤝‍🧑🏼' => 'Nkurɔfoɔ asɔ nsam: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '🧑🏿‍🤝‍🧑🏽' => 'Nkurɔfoɔ asɔ nsam: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '🧑🏿‍🤝‍🧑🏾' => 'Nkurɔfoɔ asɔ nsam: wedeε ani tuntum ne wedeε ani tuntum kakra',
+    '🧑🏿‍🤝‍🧑🏿' => 'Nkurɔfoɔ asɔ nsam: wedeε ani tuntum',
+    '👩🏻‍🤝‍👩🏼' => 'Mmaa asɔ nsam: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '👩🏻‍🤝‍👩🏽' => 'Mmaa asɔ nsam: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '👩🏻‍🤝‍👩🏾' => 'Mmaa asɔ nsam: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '👩🏻‍🤝‍👩🏿' => 'Mmaa asɔ nsam: wedeε ani a εda so ne wedeε ani tuntum',
+    '👩🏼‍🤝‍👩🏻' => 'Mmaa asɔ nsam: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '👩🏼‍🤝‍👩🏽' => 'Mmaa asɔ nsam: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '👩🏼‍🤝‍👩🏾' => 'Mmaa asɔ nsam: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '👩🏼‍🤝‍👩🏿' => 'Mmaa asɔ nsam: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '👩🏽‍🤝‍👩🏻' => 'Mmaa asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '👩🏽‍🤝‍👩🏼' => 'Mmaa asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '👩🏽‍🤝‍👩🏾' => 'Mmaa asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '👩🏽‍🤝‍👩🏿' => 'Mmaa asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '👩🏾‍🤝‍👩🏻' => 'Mmaa asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '👩🏾‍🤝‍👩🏼' => 'Mmaa asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '👩🏾‍🤝‍👩🏽' => 'Mmaa asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🤝‍👩🏿' => 'Mmaa asɔ nsam: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '👩🏿‍🤝‍👩🏻' => 'Mmaa asɔ nsam: wedeε ani tuntum ne wedeε ani a εda so',
+    '👩🏿‍🤝‍👩🏼' => 'Mmaa asɔ nsam: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '👩🏿‍🤝‍👩🏽' => 'Mmaa asɔ nsam: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '👩🏿‍🤝‍👩🏾' => 'Mmaa asɔ nsam: wedeε ani tuntum ne wedeε ani tuntum kakra',
+    '👩🏻‍🤝‍👨🏼' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '👩🏻‍🤝‍👨🏽' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '👩🏻‍🤝‍👨🏾' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '👩🏻‍🤝‍👨🏿' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda so ne wedeε ani tuntum',
+    '👩🏼‍🤝‍👨🏻' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '👩🏼‍🤝‍👨🏽' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '👩🏼‍🤝‍👨🏾' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '👩🏼‍🤝‍👨🏿' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '👩🏽‍🤝‍👨🏻' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '👩🏽‍🤝‍👨🏼' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '👩🏽‍🤝‍👨🏾' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '👩🏽‍🤝‍👨🏿' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '👩🏾‍🤝‍👨🏻' => 'Ɔbaa ne barima asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '👩🏾‍🤝‍👨🏼' => 'Ɔbaa ne barima asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '👩🏾‍🤝‍👨🏽' => 'Ɔbaa ne barima asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🤝‍👨🏿' => 'Ɔbaa ne barima asɔ nsam: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '👩🏿‍🤝‍👨🏻' => 'Ɔbaa ne barima asɔ nsam: wedeε ani tuntum ne wedeε ani a εda so',
+    '👩🏿‍🤝‍👨🏼' => 'Ɔbaa ne barima asɔ nsam: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '👩🏿‍🤝‍👨🏽' => 'Ɔbaa ne barima asɔ nsam: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '👩🏿‍🤝‍👨🏾' => 'Ɔbaa ne barima asɔ nsam: wedeε ani tuntum ne wedeε ani tuntum kakra',
+    '👨🏻‍🤝‍👨🏼' => 'Mmarima asɔ nsam: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '👨🏻‍🤝‍👨🏽' => 'Mmarima asɔ nsam: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '👨🏻‍🤝‍👨🏾' => 'Mmarima asɔ nsam: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '👨🏻‍🤝‍👨🏿' => 'Mmarima asɔ nsam: wedeε ani a εda so ne wedeε ani tuntum',
+    '👨🏼‍🤝‍👨🏻' => 'Mmarima asɔ nsam: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '👨🏼‍🤝‍👨🏽' => 'Mmarima asɔ nsam: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '👨🏼‍🤝‍👨🏾' => 'Mmarima asɔ nsam: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '👨🏼‍🤝‍👨🏿' => 'Mmarima asɔ nsam: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '👨🏽‍🤝‍👨🏻' => 'Mmarima asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '👨🏽‍🤝‍👨🏼' => 'Mmarima asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '👨🏽‍🤝‍👨🏾' => 'Mmarima asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '👨🏽‍🤝‍👨🏿' => 'Mmarima asɔ nsam: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '👨🏾‍🤝‍👨🏻' => 'Mmarima asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '👨🏾‍🤝‍👨🏼' => 'Mmarima asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '👨🏾‍🤝‍👨🏽' => 'Mmarima asɔ nsam: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🤝‍👨🏿' => 'Mmarima asɔ nsam: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '👨🏿‍🤝‍👨🏻' => 'Mmarima asɔ nsam: wedeε ani tuntum ne wedeε ani a εda so',
+    '👨🏿‍🤝‍👨🏼' => 'Mmarima asɔ nsam: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '👨🏿‍🤝‍👨🏽' => 'Mmarima asɔ nsam: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '👨🏿‍🤝‍👨🏾' => 'Mmarima asɔ nsam: wedeε ani tuntum ne wedeε ani tuntum kakra',
     '👩‍❤‍💋‍👨' => 'Mfeano: maame ne ɔbarima',
     '👨‍❤‍💋‍👨' => 'Mfeano: ɔbarima ne ɔbarima',
     '👩‍❤‍💋‍👩' => 'Mfeano: maame ne maame',
@@ -14,96 +409,116 @@
     '👩‍👩‍👦‍👦' => 'Abusua: maame, maame, barima, ne barima',
     '👩‍👩‍👧‍👧' => 'Abusua: maame, maame, ɔbaa, ne ɔbaa',
     '🧑‍🧑‍🧒‍🧒' => 'Abusua: panin, panin, akwadaa, akwadaa',
-    '🚶🏻‍♀‍➡' => 'Ɔbaa renante rehwɛ nifa',
-    '🚶🏼‍♀‍➡' => 'Ɔbaa renante rehwɛ nifa',
-    '🚶🏽‍♀‍➡' => 'Ɔbaa renante rehwɛ nifa',
-    '🚶🏾‍♀‍➡' => 'Ɔbaa renante rehwɛ nifa',
-    '🚶🏿‍♀‍➡' => 'Ɔbaa renante rehwɛ nifa',
-    '🚶🏻‍♂‍➡' => 'Barima renante rehwɛ nifa',
-    '🚶🏼‍♂‍➡' => 'Barima renante rehwɛ nifa',
-    '🚶🏽‍♂‍➡' => 'Barima renante rehwɛ nifa',
-    '🚶🏾‍♂‍➡' => 'Barima renante rehwɛ nifa',
-    '🚶🏿‍♂‍➡' => 'Barima renante rehwɛ nifa',
-    '🧎🏻‍♀‍➡' => 'Ɔbaa abu nkotodwe rehwɛ nifa',
-    '🧎🏼‍♀‍➡' => 'Ɔbaa abu nkotodwe rehwɛ nifa',
-    '🧎🏽‍♀‍➡' => 'Ɔbaa abu nkotodwe rehwɛ nifa',
-    '🧎🏾‍♀‍➡' => 'Ɔbaa abu nkotodwe rehwɛ nifa',
-    '🧎🏿‍♀‍➡' => 'Ɔbaa abu nkotodwe rehwɛ nifa',
-    '🧎🏻‍♂‍➡' => 'Barima abu nkotodwe rehwɛ nifa',
-    '🧎🏼‍♂‍➡' => 'Barima abu nkotodwe rehwɛ nifa',
-    '🧎🏽‍♂‍➡' => 'Barima abu nkotodwe rehwɛ nifa',
-    '🧎🏾‍♂‍➡' => 'Barima abu nkotodwe rehwɛ nifa',
-    '🧎🏿‍♂‍➡' => 'Barima abu nkotodwe rehwɛ nifa',
-    '🧑🏻‍🦯‍➡' => 'Obi kura abaa fitaa rehwɛ nifa',
-    '🧑🏼‍🦯‍➡' => 'Obi kura abaa fitaa rehwɛ nifa',
-    '🧑🏽‍🦯‍➡' => 'Obi kura abaa fitaa rehwɛ nifa',
-    '🧑🏾‍🦯‍➡' => 'Obi kura abaa fitaa rehwɛ nifa',
-    '🧑🏿‍🦯‍➡' => 'Obi kura abaa fitaa rehwɛ nifa',
-    '👨🏻‍🦯‍➡' => 'Barima kura abaa fitaa rehwɛ nifa',
-    '👨🏼‍🦯‍➡' => 'Barima kura abaa fitaa rehwɛ nifa',
-    '👨🏽‍🦯‍➡' => 'Barima kura abaa fitaa rehwɛ nifa',
-    '👨🏾‍🦯‍➡' => 'Barima kura abaa fitaa rehwɛ nifa',
-    '👨🏿‍🦯‍➡' => 'Barima kura abaa fitaa rehwɛ nifa',
-    '👩🏻‍🦯‍➡' => 'Ɔbaa kura abaa fitaa rehwɛ nifa',
-    '👩🏼‍🦯‍➡' => 'Ɔbaa kura abaa fitaa rehwɛ nifa',
-    '👩🏽‍🦯‍➡' => 'Ɔbaa kura abaa fitaa rehwɛ nifa',
-    '👩🏾‍🦯‍➡' => 'Ɔbaa kura abaa fitaa rehwɛ nifa',
-    '👩🏿‍🦯‍➡' => 'Ɔbaa kura abaa fitaa rehwɛ nifa',
-    '🧑🏻‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu rehwɛ nifa',
-    '🧑🏼‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu rehwɛ nifa',
-    '🧑🏽‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu rehwɛ nifa',
-    '🧑🏾‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu rehwɛ nifa',
-    '🧑🏿‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👨🏻‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👨🏼‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👨🏽‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👨🏾‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👨🏿‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👩🏻‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👩🏼‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👩🏽‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👩🏾‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👩🏿‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu rehwɛ nifa',
-    '🧑🏻‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '🧑🏼‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '🧑🏽‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '🧑🏾‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '🧑🏿‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👨🏻‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👨🏼‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👨🏽‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👨🏾‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👨🏿‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👩🏻‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👩🏼‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👩🏽‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👩🏾‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👩🏿‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '🏃🏻‍♀‍➡' => 'Ɔbaa retu mmirika rehwɛ nifa',
-    '🏃🏼‍♀‍➡' => 'Ɔbaa retu mmirika rehwɛ nifa',
-    '🏃🏽‍♀‍➡' => 'Ɔbaa retu mmirika rehwɛ nifa',
-    '🏃🏾‍♀‍➡' => 'Ɔbaa retu mmirika rehwɛ nifa',
-    '🏃🏿‍♀‍➡' => 'Ɔbaa retu mmirika rehwɛ nifa',
-    '🏃🏻‍♂‍➡' => 'Barima retu mmirika rehwɛ nifa',
-    '🏃🏼‍♂‍➡' => 'Barima retu mmirika rehwɛ nifa',
-    '🏃🏽‍♂‍➡' => 'Barima retu mmirika rehwɛ nifa',
-    '🏃🏾‍♂‍➡' => 'Barima retu mmirika rehwɛ nifa',
-    '🏃🏿‍♂‍➡' => 'Barima retu mmirika rehwɛ nifa',
-    '🚶‍♀‍➡' => 'Ɔbaa renante rehwɛ nifa',
-    '🚶‍♂‍➡' => 'Barima renante rehwɛ nifa',
-    '🧎‍♀‍➡' => 'Ɔbaa abu nkotodwe rehwɛ nifa',
-    '🧎‍♂‍➡' => 'Barima abu nkotodwe rehwɛ nifa',
-    '🧑‍🦯‍➡' => 'Obi kura abaa fitaa rehwɛ nifa',
-    '👨‍🦯‍➡' => 'Barima kura abaa fitaa rehwɛ nifa',
-    '👩‍🦯‍➡' => 'Ɔbaa kura abaa fitaa rehwɛ nifa',
-    '🧑‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👨‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu rehwɛ nifa',
-    '👩‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu rehwɛ nifa',
-    '🧑‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👨‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '👩‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu rehwɛ nifa',
-    '🏃‍♀‍➡' => 'Ɔbaa retu mmirika rehwɛ nifa',
-    '🏃‍♂‍➡' => 'Barima retu mmirika rehwɛ nifa',
+    '🚶🏻‍♀‍➡' => 'Ɔbaa renante: wedeε ani a εda so ne rehwɛ nifa',
+    '🚶🏼‍♀‍➡' => 'Ɔbaa renante: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🚶🏽‍♀‍➡' => 'Ɔbaa renante: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🚶🏾‍♀‍➡' => 'Ɔbaa renante: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🚶🏿‍♀‍➡' => 'Ɔbaa renante: wedeε ani tuntum ne rehwɛ nifa',
+    '🚶🏻‍♂‍➡' => 'Barima renante: wedeε ani a εda so ne rehwɛ nifa',
+    '🚶🏼‍♂‍➡' => 'Barima renante: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🚶🏽‍♂‍➡' => 'Barima renante: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🚶🏾‍♂‍➡' => 'Barima renante: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🚶🏿‍♂‍➡' => 'Barima renante: wedeε ani tuntum ne rehwɛ nifa',
+    '🧎🏻‍♀‍➡' => 'Ɔbaa abu nkotodwe: wedeε ani a εda so ne rehwɛ nifa',
+    '🧎🏼‍♀‍➡' => 'Ɔbaa abu nkotodwe: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🧎🏽‍♀‍➡' => 'Ɔbaa abu nkotodwe: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🧎🏾‍♀‍➡' => 'Ɔbaa abu nkotodwe: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🧎🏿‍♀‍➡' => 'Ɔbaa abu nkotodwe: wedeε ani tuntum ne rehwɛ nifa',
+    '🧎🏻‍♂‍➡' => 'Barima abu nkotodwe: wedeε ani a εda so ne rehwɛ nifa',
+    '🧎🏼‍♂‍➡' => 'Barima abu nkotodwe: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🧎🏽‍♂‍➡' => 'Barima abu nkotodwe: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🧎🏾‍♂‍➡' => 'Barima abu nkotodwe: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🧎🏿‍♂‍➡' => 'Barima abu nkotodwe: wedeε ani tuntum ne rehwɛ nifa',
+    '🧑🏻‍🦯‍➡' => 'Obi kura abaa fitaa: wedeε ani a εda so ne rehwɛ nifa',
+    '🧑🏼‍🦯‍➡' => 'Obi kura abaa fitaa: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🧑🏽‍🦯‍➡' => 'Obi kura abaa fitaa: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🧑🏾‍🦯‍➡' => 'Obi kura abaa fitaa: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🧑🏿‍🦯‍➡' => 'Obi kura abaa fitaa: wedeε ani tuntum ne rehwɛ nifa',
+    '👨🏻‍🦯‍➡' => 'Barima kura abaa fitaa: wedeε ani a εda so ne rehwɛ nifa',
+    '👨🏼‍🦯‍➡' => 'Barima kura abaa fitaa: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '👨🏽‍🦯‍➡' => 'Barima kura abaa fitaa: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '👨🏾‍🦯‍➡' => 'Barima kura abaa fitaa: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '👨🏿‍🦯‍➡' => 'Barima kura abaa fitaa: wedeε ani tuntum ne rehwɛ nifa',
+    '👩🏻‍🦯‍➡' => 'Ɔbaa kura abaa fitaa: wedeε ani a εda so ne rehwɛ nifa',
+    '👩🏼‍🦯‍➡' => 'Ɔbaa kura abaa fitaa: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '👩🏽‍🦯‍➡' => 'Ɔbaa kura abaa fitaa: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '👩🏾‍🦯‍➡' => 'Ɔbaa kura abaa fitaa: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '👩🏿‍🦯‍➡' => 'Ɔbaa kura abaa fitaa: wedeε ani tuntum ne rehwɛ nifa',
+    '🧑🏻‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu: wedeε ani a εda so ne rehwɛ nifa',
+    '🧑🏼‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🧑🏽‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🧑🏾‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🧑🏿‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu: wedeε ani tuntum ne rehwɛ nifa',
+    '👨🏻‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu: wedeε ani a εda so ne rehwɛ nifa',
+    '👨🏼‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '👨🏽‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '👨🏾‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '👨🏿‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu: wedeε ani tuntum ne rehwɛ nifa',
+    '👩🏻‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu: wedeε ani a εda so ne rehwɛ nifa',
+    '👩🏼‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '👩🏽‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '👩🏾‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '👩🏿‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu: wedeε ani tuntum ne rehwɛ nifa',
+    '🧑🏻‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu: wedeε ani a εda so ne rehwɛ nifa',
+    '🧑🏼‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🧑🏽‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🧑🏾‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🧑🏿‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu: wedeε ani tuntum ne rehwɛ nifa',
+    '👨🏻‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu: wedeε ani a εda so ne rehwɛ nifa',
+    '👨🏼‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '👨🏽‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '👨🏾‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '👨🏿‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu: wedeε ani tuntum ne rehwɛ nifa',
+    '👩🏻‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu: wedeε ani a εda so ne rehwɛ nifa',
+    '👩🏼‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '👩🏽‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '👩🏾‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '👩🏿‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu: wedeε ani tuntum ne rehwɛ nifa',
+    '🏃🏻‍♀‍➡' => 'Ɔbaa retu mmirika: wedeε ani a εda so ne rehwɛ nifa',
+    '🏃🏼‍♀‍➡' => 'Ɔbaa retu mmirika: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🏃🏽‍♀‍➡' => 'Ɔbaa retu mmirika: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🏃🏾‍♀‍➡' => 'Ɔbaa retu mmirika: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🏃🏿‍♀‍➡' => 'Ɔbaa retu mmirika: wedeε ani tuntum ne rehwɛ nifa',
+    '🏃🏻‍♂‍➡' => 'Barima retu mmirika: wedeε ani a εda so ne rehwɛ nifa',
+    '🏃🏼‍♂‍➡' => 'Barima retu mmirika: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🏃🏽‍♂‍➡' => 'Barima retu mmirika: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🏃🏾‍♂‍➡' => 'Barima retu mmirika: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🏃🏿‍♂‍➡' => 'Barima retu mmirika: wedeε ani tuntum ne rehwɛ nifa',
+    '🫱🏻‍🫲🏼' => 'nsamkyea: wedeε ani a εda so ne wedeε ani a εda so kakra',
+    '🫱🏻‍🫲🏽' => 'nsamkyea: wedeε ani a εda so ne wedeε ani a εda hᴐ kakra',
+    '🫱🏻‍🫲🏾' => 'nsamkyea: wedeε ani a εda so ne wedeε ani tuntum kakra',
+    '🫱🏻‍🫲🏿' => 'nsamkyea: wedeε ani a εda so ne wedeε ani tuntum',
+    '🫱🏼‍🫲🏻' => 'nsamkyea: wedeε ani a εda so kakra ne wedeε ani a εda so',
+    '🫱🏼‍🫲🏽' => 'nsamkyea: wedeε ani a εda so kakra ne wedeε ani a εda hᴐ kakra',
+    '🫱🏼‍🫲🏾' => 'nsamkyea: wedeε ani a εda so kakra ne wedeε ani tuntum kakra',
+    '🫱🏼‍🫲🏿' => 'nsamkyea: wedeε ani a εda so kakra ne wedeε ani tuntum',
+    '🫱🏽‍🫲🏻' => 'nsamkyea: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so',
+    '🫱🏽‍🫲🏼' => 'nsamkyea: wedeε ani a εda hᴐ kakra ne wedeε ani a εda so kakra',
+    '🫱🏽‍🫲🏾' => 'nsamkyea: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum kakra',
+    '🫱🏽‍🫲🏿' => 'nsamkyea: wedeε ani a εda hᴐ kakra ne wedeε ani tuntum',
+    '🫱🏾‍🫲🏻' => 'nsamkyea: wedeε ani tuntum kakra ne wedeε ani a εda so',
+    '🫱🏾‍🫲🏼' => 'nsamkyea: wedeε ani tuntum kakra ne wedeε ani a εda so kakra',
+    '🫱🏾‍🫲🏽' => 'nsamkyea: wedeε ani tuntum kakra ne wedeε ani a εda hᴐ kakra',
+    '🫱🏾‍🫲🏿' => 'nsamkyea: wedeε ani tuntum kakra ne wedeε ani tuntum',
+    '🫱🏿‍🫲🏻' => 'nsamkyea: wedeε ani tuntum ne wedeε ani a εda so',
+    '🫱🏿‍🫲🏼' => 'nsamkyea: wedeε ani tuntum ne wedeε ani a εda so kakra',
+    '🫱🏿‍🫲🏽' => 'nsamkyea: wedeε ani tuntum ne wedeε ani a εda hᴐ kakra',
+    '🫱🏿‍🫲🏾' => 'nsamkyea: wedeε ani tuntum ne wedeε ani tuntum kakra',
+    '🚶‍♀‍➡' => 'Ɔbaa renante: rehwɛ nifa',
+    '🚶‍♂‍➡' => 'Barima renante: rehwɛ nifa',
+    '🧎‍♀‍➡' => 'Ɔbaa abu nkotodwe: rehwɛ nifa',
+    '🧎‍♂‍➡' => 'Barima abu nkotodwe: rehwɛ nifa',
+    '🧑‍🦯‍➡' => 'Obi kura abaa fitaa: rehwɛ nifa',
+    '👨‍🦯‍➡' => 'Barima kura abaa fitaa: rehwɛ nifa',
+    '👩‍🦯‍➡' => 'Ɔbaa kura abaa fitaa: rehwɛ nifa',
+    '🧑‍🦼‍➡' => 'Obi te moto hwiikyɛɛ mu: rehwɛ nifa',
+    '👨‍🦼‍➡' => 'Barima te moto hwiikyɛɛ mu: rehwɛ nifa',
+    '👩‍🦼‍➡' => 'Ɔbaa te moto hwiikyɛɛ mu: rehwɛ nifa',
+    '🧑‍🦽‍➡' => 'Obi te manuaa hwiikyɛɛ mu: rehwɛ nifa',
+    '👨‍🦽‍➡' => 'Barima te manuaa hwiikyɛɛ mu: rehwɛ nifa',
+    '👩‍🦽‍➡' => 'Ɔbaa te manuaa hwiikyɛɛ mu: rehwɛ nifa',
+    '🏃‍♀‍➡' => 'Ɔbaa retu mmirika: rehwɛ nifa',
+    '🏃‍♂‍➡' => 'Barima retu mmirika: rehwɛ nifa',
     '👩‍❤‍👨' => 'Awarefoɔ ne akoma: maame ne ɔbarima',
     '👨‍❤‍👨' => 'Awarefoɔ ne akoma: ɔbarima ne ɔbarima',
     '👩‍❤‍👩' => 'Awarefoɔ ne akoma: maame ne maame',
@@ -122,33 +537,896 @@
     '🧑‍🤝‍🧑' => 'Nkurɔfoɔ asɔ nsam',
     '🧑‍🧑‍🧒' => 'Abusua: panin, panin, akwadaa',
     '🧑‍🧒‍🧒' => 'Abusua: panin, akwadaa, akwadaa',
-    '🚶🏻‍➡' => 'Onipa renante rehwɛ nifa',
-    '🚶🏼‍➡' => 'Onipa renante rehwɛ nifa',
-    '🚶🏽‍➡' => 'Onipa renante rehwɛ nifa',
-    '🚶🏾‍➡' => 'Onipa renante rehwɛ nifa',
-    '🚶🏿‍➡' => 'Onipa renante rehwɛ nifa',
-    '🧎🏻‍➡' => 'Obi abu nkotodwe rehwɛ nifa',
-    '🧎🏼‍➡' => 'Obi abu nkotodwe rehwɛ nifa',
-    '🧎🏽‍➡' => 'Obi abu nkotodwe rehwɛ nifa',
-    '🧎🏾‍➡' => 'Obi abu nkotodwe rehwɛ nifa',
-    '🧎🏿‍➡' => 'Obi abu nkotodwe rehwɛ nifa',
-    '🏃🏻‍➡' => 'Obi retu mmirika rehwɛ nifa',
-    '🏃🏼‍➡' => 'Obi retu mmirika rehwɛ nifa',
-    '🏃🏽‍➡' => 'Obi retu mmirika rehwɛ nifa',
-    '🏃🏾‍➡' => 'Obi retu mmirika rehwɛ nifa',
-    '🏃🏿‍➡' => 'Obi retu mmirika rehwɛ nifa',
+    '🧑🏻‍🦰' => 'onipa: wedeε ani a εda so ne nwi kͻkͻͻ',
+    '🧑🏼‍🦰' => 'onipa: wedeε ani a εda so kakra ne nwi kͻkͻͻ',
+    '🧑🏽‍🦰' => 'onipa: wedeε ani a εda hᴐ kakra ne nwi kͻkͻͻ',
+    '🧑🏾‍🦰' => 'onipa: wedeε ani tuntum kakra ne nwi kͻkͻͻ',
+    '🧑🏿‍🦰' => 'onipa: wedeε ani tuntum ne nwi kͻkͻͻ',
+    '🧑🏻‍🦱' => 'onipa: wedeε ani a εda so ne enwi a akyinkyim',
+    '🧑🏼‍🦱' => 'onipa: wedeε ani a εda so kakra ne enwi a akyinkyim',
+    '🧑🏽‍🦱' => 'onipa: wedeε ani a εda hᴐ kakra ne enwi a akyinkyim',
+    '🧑🏾‍🦱' => 'onipa: wedeε ani tuntum kakra ne enwi a akyinkyim',
+    '🧑🏿‍🦱' => 'onipa: wedeε ani tuntum ne enwi a akyinkyim',
+    '🧑🏻‍🦳' => 'onipa: wedeε ani a εda so ne nwi fitaa',
+    '🧑🏼‍🦳' => 'onipa: wedeε ani a εda so kakra ne nwi fitaa',
+    '🧑🏽‍🦳' => 'onipa: wedeε ani a εda hᴐ kakra ne nwi fitaa',
+    '🧑🏾‍🦳' => 'onipa: wedeε ani tuntum kakra ne nwi fitaa',
+    '🧑🏿‍🦳' => 'onipa: wedeε ani tuntum ne nwi fitaa',
+    '🧑🏻‍🦲' => 'onipa: wedeε ani a εda so ne tipa',
+    '🧑🏼‍🦲' => 'onipa: wedeε ani a εda so kakra ne tipa',
+    '🧑🏽‍🦲' => 'onipa: wedeε ani a εda hᴐ kakra ne tipa',
+    '🧑🏾‍🦲' => 'onipa: wedeε ani tuntum kakra ne tipa',
+    '🧑🏿‍🦲' => 'onipa: wedeε ani tuntum ne tipa',
+    '🧑🏻‍🩰' => 'balee safoᴐ: wedeε ani a εda so',
+    '🧑🏼‍🩰' => 'balee safoᴐ: wedeε ani a εda so kakra',
+    '🧑🏽‍🩰' => 'balee safoᴐ: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🩰' => 'balee safoᴐ: wedeε ani tuntum kakra',
+    '🧑🏿‍🩰' => 'balee safoᴐ: wedeε ani tuntum',
+    '🧔🏻‍♂' => 'barima: wedeε ani a εda so ne abodwesɛ',
+    '🧔🏼‍♂' => 'barima: wedeε ani a εda so kakra ne abodwesɛ',
+    '🧔🏽‍♂' => 'barima: wedeε ani a εda hᴐ kakra ne abodwesɛ',
+    '🧔🏾‍♂' => 'barima: wedeε ani tuntum kakra ne abodwesɛ',
+    '🧔🏿‍♂' => 'barima: wedeε ani tuntum ne abodwesɛ',
+    '👱🏻‍♂' => 'barima: wedeε ani a εda so ne nwii kɔkɔɔ',
+    '👱🏼‍♂' => 'barima: wedeε ani a εda so kakra ne nwii kɔkɔɔ',
+    '👱🏽‍♂' => 'barima: wedeε ani a εda hᴐ kakra ne nwii kɔkɔɔ',
+    '👱🏾‍♂' => 'barima: wedeε ani tuntum kakra ne nwii kɔkɔɔ',
+    '👱🏿‍♂' => 'barima: wedeε ani tuntum ne nwii kɔkɔɔ',
+    '👨🏻‍🦰' => 'ɔbarima: wedeε ani a εda so ne nwi kͻkͻͻ',
+    '👨🏼‍🦰' => 'ɔbarima: wedeε ani a εda so kakra ne nwi kͻkͻͻ',
+    '👨🏽‍🦰' => 'ɔbarima: wedeε ani a εda hᴐ kakra ne nwi kͻkͻͻ',
+    '👨🏾‍🦰' => 'ɔbarima: wedeε ani tuntum kakra ne nwi kͻkͻͻ',
+    '👨🏿‍🦰' => 'ɔbarima: wedeε ani tuntum ne nwi kͻkͻͻ',
+    '👨🏻‍🦱' => 'ɔbarima: wedeε ani a εda so ne enwi a akyinkyim',
+    '👨🏼‍🦱' => 'ɔbarima: wedeε ani a εda so kakra ne enwi a akyinkyim',
+    '👨🏽‍🦱' => 'ɔbarima: wedeε ani a εda hᴐ kakra ne enwi a akyinkyim',
+    '👨🏾‍🦱' => 'ɔbarima: wedeε ani tuntum kakra ne enwi a akyinkyim',
+    '👨🏿‍🦱' => 'ɔbarima: wedeε ani tuntum ne enwi a akyinkyim',
+    '👨🏻‍🦳' => 'ɔbarima: wedeε ani a εda so ne nwi fitaa',
+    '👨🏼‍🦳' => 'ɔbarima: wedeε ani a εda so kakra ne nwi fitaa',
+    '👨🏽‍🦳' => 'ɔbarima: wedeε ani a εda hᴐ kakra ne nwi fitaa',
+    '👨🏾‍🦳' => 'ɔbarima: wedeε ani tuntum kakra ne nwi fitaa',
+    '👨🏿‍🦳' => 'ɔbarima: wedeε ani tuntum ne nwi fitaa',
+    '👨🏻‍🦲' => 'ɔbarima: wedeε ani a εda so ne tipa',
+    '👨🏼‍🦲' => 'ɔbarima: wedeε ani a εda so kakra ne tipa',
+    '👨🏽‍🦲' => 'ɔbarima: wedeε ani a εda hᴐ kakra ne tipa',
+    '👨🏾‍🦲' => 'ɔbarima: wedeε ani tuntum kakra ne tipa',
+    '👨🏿‍🦲' => 'ɔbarima: wedeε ani tuntum ne tipa',
+    '🧔🏻‍♀' => 'ɔbaa: wedeε ani a εda so ne abodwesɛ',
+    '🧔🏼‍♀' => 'ɔbaa: wedeε ani a εda so kakra ne abodwesɛ',
+    '🧔🏽‍♀' => 'ɔbaa: wedeε ani a εda hᴐ kakra ne abodwesɛ',
+    '🧔🏾‍♀' => 'ɔbaa: wedeε ani tuntum kakra ne abodwesɛ',
+    '🧔🏿‍♀' => 'ɔbaa: wedeε ani tuntum ne abodwesɛ',
+    '👱🏻‍♀' => 'ɔbaa: wedeε ani a εda so ne nwii kɔkɔɔ',
+    '👱🏼‍♀' => 'ɔbaa: wedeε ani a εda so kakra ne nwii kɔkɔɔ',
+    '👱🏽‍♀' => 'ɔbaa: wedeε ani a εda hᴐ kakra ne nwii kɔkɔɔ',
+    '👱🏾‍♀' => 'ɔbaa: wedeε ani tuntum kakra ne nwii kɔkɔɔ',
+    '👱🏿‍♀' => 'ɔbaa: wedeε ani tuntum ne nwii kɔkɔɔ',
+    '👩🏻‍🦰' => 'maame: wedeε ani a εda so ne nwi kͻkͻͻ',
+    '👩🏼‍🦰' => 'maame: wedeε ani a εda so kakra ne nwi kͻkͻͻ',
+    '👩🏽‍🦰' => 'maame: wedeε ani a εda hᴐ kakra ne nwi kͻkͻͻ',
+    '👩🏾‍🦰' => 'maame: wedeε ani tuntum kakra ne nwi kͻkͻͻ',
+    '👩🏿‍🦰' => 'maame: wedeε ani tuntum ne nwi kͻkͻͻ',
+    '👩🏻‍🦱' => 'maame: wedeε ani a εda so ne enwi a akyinkyim',
+    '👩🏼‍🦱' => 'maame: wedeε ani a εda so kakra ne enwi a akyinkyim',
+    '👩🏽‍🦱' => 'maame: wedeε ani a εda hᴐ kakra ne enwi a akyinkyim',
+    '👩🏾‍🦱' => 'maame: wedeε ani tuntum kakra ne enwi a akyinkyim',
+    '👩🏿‍🦱' => 'maame: wedeε ani tuntum ne enwi a akyinkyim',
+    '👩🏻‍🦳' => 'maame: wedeε ani a εda so ne nwi fitaa',
+    '👩🏼‍🦳' => 'maame: wedeε ani a εda so kakra ne nwi fitaa',
+    '👩🏽‍🦳' => 'maame: wedeε ani a εda hᴐ kakra ne nwi fitaa',
+    '👩🏾‍🦳' => 'maame: wedeε ani tuntum kakra ne nwi fitaa',
+    '👩🏿‍🦳' => 'maame: wedeε ani tuntum ne nwi fitaa',
+    '👩🏻‍🦲' => 'maame: wedeε ani a εda so ne tipa',
+    '👩🏼‍🦲' => 'maame: wedeε ani a εda so kakra ne tipa',
+    '👩🏽‍🦲' => 'maame: wedeε ani a εda hᴐ kakra ne tipa',
+    '👩🏾‍🦲' => 'maame: wedeε ani tuntum kakra ne tipa',
+    '👩🏿‍🦲' => 'maame: wedeε ani tuntum ne tipa',
+    '🙍🏻‍♂' => 'barima remuna: wedeε ani a εda so',
+    '🙍🏼‍♂' => 'barima remuna: wedeε ani a εda so kakra',
+    '🙍🏽‍♂' => 'barima remuna: wedeε ani a εda hᴐ kakra',
+    '🙍🏾‍♂' => 'barima remuna: wedeε ani tuntum kakra',
+    '🙍🏿‍♂' => 'barima remuna: wedeε ani tuntum',
+    '🙍🏻‍♀' => 'ɔbaa remuna: wedeε ani a εda so',
+    '🙍🏼‍♀' => 'ɔbaa remuna: wedeε ani a εda so kakra',
+    '🙍🏽‍♀' => 'ɔbaa remuna: wedeε ani a εda hᴐ kakra',
+    '🙍🏾‍♀' => 'ɔbaa remuna: wedeε ani tuntum kakra',
+    '🙍🏿‍♀' => 'ɔbaa remuna: wedeε ani tuntum',
+    '🙎🏻‍♂' => 'barima pɔɔtine: wedeε ani a εda so',
+    '🙎🏼‍♂' => 'barima pɔɔtine: wedeε ani a εda so kakra',
+    '🙎🏽‍♂' => 'barima pɔɔtine: wedeε ani a εda hᴐ kakra',
+    '🙎🏾‍♂' => 'barima pɔɔtine: wedeε ani tuntum kakra',
+    '🙎🏿‍♂' => 'barima pɔɔtine: wedeε ani tuntum',
+    '🙎🏻‍♀' => 'ɔbaa pɔɔtine: wedeε ani a εda so',
+    '🙎🏼‍♀' => 'ɔbaa pɔɔtine: wedeε ani a εda so kakra',
+    '🙎🏽‍♀' => 'ɔbaa pɔɔtine: wedeε ani a εda hᴐ kakra',
+    '🙎🏾‍♀' => 'ɔbaa pɔɔtine: wedeε ani tuntum kakra',
+    '🙎🏿‍♀' => 'ɔbaa pɔɔtine: wedeε ani tuntum',
+    '🙅🏻‍♂' => 'barima reyɛ DAABI nsɛnkyerɛnne: wedeε ani a εda so',
+    '🙅🏼‍♂' => 'barima reyɛ DAABI nsɛnkyerɛnne: wedeε ani a εda so kakra',
+    '🙅🏽‍♂' => 'barima reyɛ DAABI nsɛnkyerɛnne: wedeε ani a εda hᴐ kakra',
+    '🙅🏾‍♂' => 'barima reyɛ DAABI nsɛnkyerɛnne: wedeε ani tuntum kakra',
+    '🙅🏿‍♂' => 'barima reyɛ DAABI nsɛnkyerɛnne: wedeε ani tuntum',
+    '🙅🏻‍♀' => 'ɔbaa reyɛ DAABI nsɛnkyerɛnne: wedeε ani a εda so',
+    '🙅🏼‍♀' => 'ɔbaa reyɛ DAABI nsɛnkyerɛnne: wedeε ani a εda so kakra',
+    '🙅🏽‍♀' => 'ɔbaa reyɛ DAABI nsɛnkyerɛnne: wedeε ani a εda hᴐ kakra',
+    '🙅🏾‍♀' => 'ɔbaa reyɛ DAABI nsɛnkyerɛnne: wedeε ani tuntum kakra',
+    '🙅🏿‍♀' => 'ɔbaa reyɛ DAABI nsɛnkyerɛnne: wedeε ani tuntum',
+    '🙆🏻‍♂' => 'barima reyɛ OK nsɛnkyerɛnne: wedeε ani a εda so',
+    '🙆🏼‍♂' => 'barima reyɛ OK nsɛnkyerɛnne: wedeε ani a εda so kakra',
+    '🙆🏽‍♂' => 'barima reyɛ OK nsɛnkyerɛnne: wedeε ani a εda hᴐ kakra',
+    '🙆🏾‍♂' => 'barima reyɛ OK nsɛnkyerɛnne: wedeε ani tuntum kakra',
+    '🙆🏿‍♂' => 'barima reyɛ OK nsɛnkyerɛnne: wedeε ani tuntum',
+    '🙆🏻‍♀' => 'ɔbaa reyɛ OK nsɛnkyerɛnne: wedeε ani a εda so',
+    '🙆🏼‍♀' => 'ɔbaa reyɛ OK nsɛnkyerɛnne: wedeε ani a εda so kakra',
+    '🙆🏽‍♀' => 'ɔbaa reyɛ OK nsɛnkyerɛnne: wedeε ani a εda hᴐ kakra',
+    '🙆🏾‍♀' => 'ɔbaa reyɛ OK nsɛnkyerɛnne: wedeε ani tuntum kakra',
+    '🙆🏿‍♀' => 'ɔbaa reyɛ OK nsɛnkyerɛnne: wedeε ani tuntum',
+    '💁🏻‍♂' => 'barima tiipi nsa: wedeε ani a εda so',
+    '💁🏼‍♂' => 'barima tiipi nsa: wedeε ani a εda so kakra',
+    '💁🏽‍♂' => 'barima tiipi nsa: wedeε ani a εda hᴐ kakra',
+    '💁🏾‍♂' => 'barima tiipi nsa: wedeε ani tuntum kakra',
+    '💁🏿‍♂' => 'barima tiipi nsa: wedeε ani tuntum',
+    '💁🏻‍♀' => 'ɔbaa tiipi nsa: wedeε ani a εda so',
+    '💁🏼‍♀' => 'ɔbaa tiipi nsa: wedeε ani a εda so kakra',
+    '💁🏽‍♀' => 'ɔbaa tiipi nsa: wedeε ani a εda hᴐ kakra',
+    '💁🏾‍♀' => 'ɔbaa tiipi nsa: wedeε ani tuntum kakra',
+    '💁🏿‍♀' => 'ɔbaa tiipi nsa: wedeε ani tuntum',
+    '🙋🏻‍♂' => 'barima repagya nsa: wedeε ani a εda so',
+    '🙋🏼‍♂' => 'barima repagya nsa: wedeε ani a εda so kakra',
+    '🙋🏽‍♂' => 'barima repagya nsa: wedeε ani a εda hᴐ kakra',
+    '🙋🏾‍♂' => 'barima repagya nsa: wedeε ani tuntum kakra',
+    '🙋🏿‍♂' => 'barima repagya nsa: wedeε ani tuntum',
+    '🙋🏻‍♀' => 'ɔbaa repagya ne nsa: wedeε ani a εda so',
+    '🙋🏼‍♀' => 'ɔbaa repagya ne nsa: wedeε ani a εda so kakra',
+    '🙋🏽‍♀' => 'ɔbaa repagya ne nsa: wedeε ani a εda hᴐ kakra',
+    '🙋🏾‍♀' => 'ɔbaa repagya ne nsa: wedeε ani tuntum kakra',
+    '🙋🏿‍♀' => 'ɔbaa repagya ne nsa: wedeε ani tuntum',
+    '🧏🏻‍♂' => 'mum barima: wedeε ani a εda so',
+    '🧏🏼‍♂' => 'mum barima: wedeε ani a εda so kakra',
+    '🧏🏽‍♂' => 'mum barima: wedeε ani a εda hᴐ kakra',
+    '🧏🏾‍♂' => 'mum barima: wedeε ani tuntum kakra',
+    '🧏🏿‍♂' => 'mum barima: wedeε ani tuntum',
+    '🧏🏻‍♀' => 'ɔbaa mum: wedeε ani a εda so',
+    '🧏🏼‍♀' => 'ɔbaa mum: wedeε ani a εda so kakra',
+    '🧏🏽‍♀' => 'ɔbaa mum: wedeε ani a εda hᴐ kakra',
+    '🧏🏾‍♀' => 'ɔbaa mum: wedeε ani tuntum kakra',
+    '🧏🏿‍♀' => 'ɔbaa mum: wedeε ani tuntum',
+    '🙇🏻‍♂' => 'barima rebɔ ne mu ase: wedeε ani a εda so',
+    '🙇🏼‍♂' => 'barima rebɔ ne mu ase: wedeε ani a εda so kakra',
+    '🙇🏽‍♂' => 'barima rebɔ ne mu ase: wedeε ani a εda hᴐ kakra',
+    '🙇🏾‍♂' => 'barima rebɔ ne mu ase: wedeε ani tuntum kakra',
+    '🙇🏿‍♂' => 'barima rebɔ ne mu ase: wedeε ani tuntum',
+    '🙇🏻‍♀' => 'ɔbaa rebɔ ne mu ase: wedeε ani a εda so',
+    '🙇🏼‍♀' => 'ɔbaa rebɔ ne mu ase: wedeε ani a εda so kakra',
+    '🙇🏽‍♀' => 'ɔbaa rebɔ ne mu ase: wedeε ani a εda hᴐ kakra',
+    '🙇🏾‍♀' => 'ɔbaa rebɔ ne mu ase: wedeε ani tuntum kakra',
+    '🙇🏿‍♀' => 'ɔbaa rebɔ ne mu ase: wedeε ani tuntum',
+    '🤦🏻‍♂' => 'barima de ne nsam ato n’anim: wedeε ani a εda so',
+    '🤦🏼‍♂' => 'barima de ne nsam ato n’anim: wedeε ani a εda so kakra',
+    '🤦🏽‍♂' => 'barima de ne nsam ato n’anim: wedeε ani a εda hᴐ kakra',
+    '🤦🏾‍♂' => 'barima de ne nsam ato n’anim: wedeε ani tuntum kakra',
+    '🤦🏿‍♂' => 'barima de ne nsam ato n’anim: wedeε ani tuntum',
+    '🤦🏻‍♀' => 'ɔbaa de ne nsa rebɔ n’anim: wedeε ani a εda so',
+    '🤦🏼‍♀' => 'ɔbaa de ne nsa rebɔ n’anim: wedeε ani a εda so kakra',
+    '🤦🏽‍♀' => 'ɔbaa de ne nsa rebɔ n’anim: wedeε ani a εda hᴐ kakra',
+    '🤦🏾‍♀' => 'ɔbaa de ne nsa rebɔ n’anim: wedeε ani tuntum kakra',
+    '🤦🏿‍♀' => 'ɔbaa de ne nsa rebɔ n’anim: wedeε ani tuntum',
+    '🤷🏻‍♂' => 'barima repagya ne mmati: wedeε ani a εda so',
+    '🤷🏼‍♂' => 'barima repagya ne mmati: wedeε ani a εda so kakra',
+    '🤷🏽‍♂' => 'barima repagya ne mmati: wedeε ani a εda hᴐ kakra',
+    '🤷🏾‍♂' => 'barima repagya ne mmati: wedeε ani tuntum kakra',
+    '🤷🏿‍♂' => 'barima repagya ne mmati: wedeε ani tuntum',
+    '🤷🏻‍♀' => 'ɔbaa repagya ne mmati: wedeε ani a εda so',
+    '🤷🏼‍♀' => 'ɔbaa repagya ne mmati: wedeε ani a εda so kakra',
+    '🤷🏽‍♀' => 'ɔbaa repagya ne mmati: wedeε ani a εda hᴐ kakra',
+    '🤷🏾‍♀' => 'ɔbaa repagya ne mmati: wedeε ani tuntum kakra',
+    '🤷🏿‍♀' => 'ɔbaa repagya ne mmati: wedeε ani tuntum',
+    '🧑🏻‍⚕' => 'apomuden dwumayɛfoɔ: wedeε ani a εda so',
+    '🧑🏼‍⚕' => 'apomuden dwumayɛfoɔ: wedeε ani a εda so kakra',
+    '🧑🏽‍⚕' => 'apomuden dwumayɛfoɔ: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍⚕' => 'apomuden dwumayɛfoɔ: wedeε ani tuntum kakra',
+    '🧑🏿‍⚕' => 'apomuden dwumayɛfoɔ: wedeε ani tuntum',
+    '👨🏻‍⚕' => 'apomuden dwumayɛfoɔ barima: wedeε ani a εda so',
+    '👨🏼‍⚕' => 'apomuden dwumayɛfoɔ barima: wedeε ani a εda so kakra',
+    '👨🏽‍⚕' => 'apomuden dwumayɛfoɔ barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍⚕' => 'apomuden dwumayɛfoɔ barima: wedeε ani tuntum kakra',
+    '👨🏿‍⚕' => 'apomuden dwumayɛfoɔ barima: wedeε ani tuntum',
+    '👩🏻‍⚕' => 'apomuden dwumayɛfoɔ ɔbaa: wedeε ani a εda so',
+    '👩🏼‍⚕' => 'apomuden dwumayɛfoɔ ɔbaa: wedeε ani a εda so kakra',
+    '👩🏽‍⚕' => 'apomuden dwumayɛfoɔ ɔbaa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍⚕' => 'apomuden dwumayɛfoɔ ɔbaa: wedeε ani tuntum kakra',
+    '👩🏿‍⚕' => 'apomuden dwumayɛfoɔ ɔbaa: wedeε ani tuntum',
+    '🧑🏻‍🎓' => 'sukuuni: wedeε ani a εda so',
+    '🧑🏼‍🎓' => 'sukuuni: wedeε ani a εda so kakra',
+    '🧑🏽‍🎓' => 'sukuuni: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🎓' => 'sukuuni: wedeε ani tuntum kakra',
+    '🧑🏿‍🎓' => 'sukuuni: wedeε ani tuntum',
+    '👨🏻‍🎓' => 'sukuuni barima: wedeε ani a εda so',
+    '👨🏼‍🎓' => 'sukuuni barima: wedeε ani a εda so kakra',
+    '👨🏽‍🎓' => 'sukuuni barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🎓' => 'sukuuni barima: wedeε ani tuntum kakra',
+    '👨🏿‍🎓' => 'sukuuni barima: wedeε ani tuntum',
+    '👩🏻‍🎓' => 'sukuuni baa: wedeε ani a εda so',
+    '👩🏼‍🎓' => 'sukuuni baa: wedeε ani a εda so kakra',
+    '👩🏽‍🎓' => 'sukuuni baa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🎓' => 'sukuuni baa: wedeε ani tuntum kakra',
+    '👩🏿‍🎓' => 'sukuuni baa: wedeε ani tuntum',
+    '🧑🏻‍🏫' => 'tikya: wedeε ani a εda so',
+    '🧑🏼‍🏫' => 'tikya: wedeε ani a εda so kakra',
+    '🧑🏽‍🏫' => 'tikya: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🏫' => 'tikya: wedeε ani tuntum kakra',
+    '🧑🏿‍🏫' => 'tikya: wedeε ani tuntum',
+    '👨🏻‍🏫' => 'tikyani barima: wedeε ani a εda so',
+    '👨🏼‍🏫' => 'tikyani barima: wedeε ani a εda so kakra',
+    '👨🏽‍🏫' => 'tikyani barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🏫' => 'tikyani barima: wedeε ani tuntum kakra',
+    '👨🏿‍🏫' => 'tikyani barima: wedeε ani tuntum',
+    '👩🏻‍🏫' => 'tikyani baa: wedeε ani a εda so',
+    '👩🏼‍🏫' => 'tikyani baa: wedeε ani a εda so kakra',
+    '👩🏽‍🏫' => 'tikyani baa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🏫' => 'tikyani baa: wedeε ani tuntum kakra',
+    '👩🏿‍🏫' => 'tikyani baa: wedeε ani tuntum',
+    '🧑🏻‍⚖' => 'gyaagye: wedeε ani a εda so',
+    '🧑🏼‍⚖' => 'gyaagye: wedeε ani a εda so kakra',
+    '🧑🏽‍⚖' => 'gyaagye: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍⚖' => 'gyaagye: wedeε ani tuntum kakra',
+    '🧑🏿‍⚖' => 'gyaagye: wedeε ani tuntum',
+    '👨🏻‍⚖' => 'Barima gyaagye: wedeε ani a εda so',
+    '👨🏼‍⚖' => 'Barima gyaagye: wedeε ani a εda so kakra',
+    '👨🏽‍⚖' => 'Barima gyaagye: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍⚖' => 'Barima gyaagye: wedeε ani tuntum kakra',
+    '👨🏿‍⚖' => 'Barima gyaagye: wedeε ani tuntum',
+    '👩🏻‍⚖' => 'ɔbaa gyaagye: wedeε ani a εda so',
+    '👩🏼‍⚖' => 'ɔbaa gyaagye: wedeε ani a εda so kakra',
+    '👩🏽‍⚖' => 'ɔbaa gyaagye: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍⚖' => 'ɔbaa gyaagye: wedeε ani tuntum kakra',
+    '👩🏿‍⚖' => 'ɔbaa gyaagye: wedeε ani tuntum',
+    '🧑🏻‍🌾' => 'Okuani: wedeε ani a εda so',
+    '🧑🏼‍🌾' => 'Okuani: wedeε ani a εda so kakra',
+    '🧑🏽‍🌾' => 'Okuani: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🌾' => 'Okuani: wedeε ani tuntum kakra',
+    '🧑🏿‍🌾' => 'Okuani: wedeε ani tuntum',
+    '👨🏻‍🌾' => 'Okuani barima: wedeε ani a εda so',
+    '👨🏼‍🌾' => 'Okuani barima: wedeε ani a εda so kakra',
+    '👨🏽‍🌾' => 'Okuani barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🌾' => 'Okuani barima: wedeε ani tuntum kakra',
+    '👨🏿‍🌾' => 'Okuani barima: wedeε ani tuntum',
+    '👩🏻‍🌾' => 'Okuani baa: wedeε ani a εda so',
+    '👩🏼‍🌾' => 'Okuani baa: wedeε ani a εda so kakra',
+    '👩🏽‍🌾' => 'Okuani baa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🌾' => 'Okuani baa: wedeε ani tuntum kakra',
+    '👩🏿‍🌾' => 'Okuani baa: wedeε ani tuntum',
+    '🧑🏻‍🍳' => 'kuk: wedeε ani a εda so',
+    '🧑🏼‍🍳' => 'kuk: wedeε ani a εda so kakra',
+    '🧑🏽‍🍳' => 'kuk: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🍳' => 'kuk: wedeε ani tuntum kakra',
+    '🧑🏿‍🍳' => 'kuk: wedeε ani tuntum',
+    '👨🏻‍🍳' => 'Barima kuk: wedeε ani a εda so',
+    '👨🏼‍🍳' => 'Barima kuk: wedeε ani a εda so kakra',
+    '👨🏽‍🍳' => 'Barima kuk: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🍳' => 'Barima kuk: wedeε ani tuntum kakra',
+    '👨🏿‍🍳' => 'Barima kuk: wedeε ani tuntum',
+    '👩🏻‍🍳' => 'Ɔbaa kuk: wedeε ani a εda so',
+    '👩🏼‍🍳' => 'Ɔbaa kuk: wedeε ani a εda so kakra',
+    '👩🏽‍🍳' => 'Ɔbaa kuk: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🍳' => 'Ɔbaa kuk: wedeε ani tuntum kakra',
+    '👩🏿‍🍳' => 'Ɔbaa kuk: wedeε ani tuntum',
+    '🧑🏻‍🔧' => 'Mɛkanike: wedeε ani a εda so',
+    '🧑🏼‍🔧' => 'Mɛkanike: wedeε ani a εda so kakra',
+    '🧑🏽‍🔧' => 'Mɛkanike: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🔧' => 'Mɛkanike: wedeε ani tuntum kakra',
+    '🧑🏿‍🔧' => 'Mɛkanike: wedeε ani tuntum',
+    '👨🏻‍🔧' => 'Barima mɛkanike: wedeε ani a εda so',
+    '👨🏼‍🔧' => 'Barima mɛkanike: wedeε ani a εda so kakra',
+    '👨🏽‍🔧' => 'Barima mɛkanike: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🔧' => 'Barima mɛkanike: wedeε ani tuntum kakra',
+    '👨🏿‍🔧' => 'Barima mɛkanike: wedeε ani tuntum',
+    '👩🏻‍🔧' => 'Ɔbaa mɛkanike: wedeε ani a εda so',
+    '👩🏼‍🔧' => 'Ɔbaa mɛkanike: wedeε ani a εda so kakra',
+    '👩🏽‍🔧' => 'Ɔbaa mɛkanike: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🔧' => 'Ɔbaa mɛkanike: wedeε ani tuntum kakra',
+    '👩🏿‍🔧' => 'Ɔbaa mɛkanike: wedeε ani tuntum',
+    '🧑🏻‍🏭' => 'Faktre dwumayɛni: wedeε ani a εda so',
+    '🧑🏼‍🏭' => 'Faktre dwumayɛni: wedeε ani a εda so kakra',
+    '🧑🏽‍🏭' => 'Faktre dwumayɛni: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🏭' => 'Faktre dwumayɛni: wedeε ani tuntum kakra',
+    '🧑🏿‍🏭' => 'Faktre dwumayɛni: wedeε ani tuntum',
+    '👨🏻‍🏭' => 'Faktre dwumayɛni barima: wedeε ani a εda so',
+    '👨🏼‍🏭' => 'Faktre dwumayɛni barima: wedeε ani a εda so kakra',
+    '👨🏽‍🏭' => 'Faktre dwumayɛni barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🏭' => 'Faktre dwumayɛni barima: wedeε ani tuntum kakra',
+    '👨🏿‍🏭' => 'Faktre dwumayɛni barima: wedeε ani tuntum',
+    '👩🏻‍🏭' => 'Faktre dwumayɛni baa: wedeε ani a εda so',
+    '👩🏼‍🏭' => 'Faktre dwumayɛni baa: wedeε ani a εda so kakra',
+    '👩🏽‍🏭' => 'Faktre dwumayɛni baa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🏭' => 'Faktre dwumayɛni baa: wedeε ani tuntum kakra',
+    '👩🏿‍🏭' => 'Faktre dwumayɛni baa: wedeε ani tuntum',
+    '🧑🏻‍💼' => 'ɔfese dwumayɛni: wedeε ani a εda so',
+    '🧑🏼‍💼' => 'ɔfese dwumayɛni: wedeε ani a εda so kakra',
+    '🧑🏽‍💼' => 'ɔfese dwumayɛni: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍💼' => 'ɔfese dwumayɛni: wedeε ani tuntum kakra',
+    '🧑🏿‍💼' => 'ɔfese dwumayɛni: wedeε ani tuntum',
+    '👨🏻‍💼' => 'ɔfese dwumayɛni barima: wedeε ani a εda so',
+    '👨🏼‍💼' => 'ɔfese dwumayɛni barima: wedeε ani a εda so kakra',
+    '👨🏽‍💼' => 'ɔfese dwumayɛni barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍💼' => 'ɔfese dwumayɛni barima: wedeε ani tuntum kakra',
+    '👨🏿‍💼' => 'ɔfese dwumayɛni barima: wedeε ani tuntum',
+    '👩🏻‍💼' => 'Ɔfese dwumayɛni baa: wedeε ani a εda so',
+    '👩🏼‍💼' => 'Ɔfese dwumayɛni baa: wedeε ani a εda so kakra',
+    '👩🏽‍💼' => 'Ɔfese dwumayɛni baa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍💼' => 'Ɔfese dwumayɛni baa: wedeε ani tuntum kakra',
+    '👩🏿‍💼' => 'Ɔfese dwumayɛni baa: wedeε ani tuntum',
+    '🧑🏻‍🔬' => 'Seantise: wedeε ani a εda so',
+    '🧑🏼‍🔬' => 'Seantise: wedeε ani a εda so kakra',
+    '🧑🏽‍🔬' => 'Seantise: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🔬' => 'Seantise: wedeε ani tuntum kakra',
+    '🧑🏿‍🔬' => 'Seantise: wedeε ani tuntum',
+    '👨🏻‍🔬' => 'Seantise barima: wedeε ani a εda so',
+    '👨🏼‍🔬' => 'Seantise barima: wedeε ani a εda so kakra',
+    '👨🏽‍🔬' => 'Seantise barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🔬' => 'Seantise barima: wedeε ani tuntum kakra',
+    '👨🏿‍🔬' => 'Seantise barima: wedeε ani tuntum',
+    '👩🏻‍🔬' => 'Seantise ɔbaa: wedeε ani a εda so',
+    '👩🏼‍🔬' => 'Seantise ɔbaa: wedeε ani a εda so kakra',
+    '👩🏽‍🔬' => 'Seantise ɔbaa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🔬' => 'Seantise ɔbaa: wedeε ani tuntum kakra',
+    '👩🏿‍🔬' => 'Seantise ɔbaa: wedeε ani tuntum',
+    '🧑🏻‍💻' => 'tɛknologiste: wedeε ani a εda so',
+    '🧑🏼‍💻' => 'tɛknologiste: wedeε ani a εda so kakra',
+    '🧑🏽‍💻' => 'tɛknologiste: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍💻' => 'tɛknologiste: wedeε ani tuntum kakra',
+    '🧑🏿‍💻' => 'tɛknologiste: wedeε ani tuntum',
+    '👨🏻‍💻' => 'Tɛknologiste barima: wedeε ani a εda so',
+    '👨🏼‍💻' => 'Tɛknologiste barima: wedeε ani a εda so kakra',
+    '👨🏽‍💻' => 'Tɛknologiste barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍💻' => 'Tɛknologiste barima: wedeε ani tuntum kakra',
+    '👨🏿‍💻' => 'Tɛknologiste barima: wedeε ani tuntum',
+    '👩🏻‍💻' => 'Tɛknologiste ɔbaa: wedeε ani a εda so',
+    '👩🏼‍💻' => 'Tɛknologiste ɔbaa: wedeε ani a εda so kakra',
+    '👩🏽‍💻' => 'Tɛknologiste ɔbaa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍💻' => 'Tɛknologiste ɔbaa: wedeε ani tuntum kakra',
+    '👩🏿‍💻' => 'Tɛknologiste ɔbaa: wedeε ani tuntum',
+    '🧑🏻‍🎤' => 'Nnwomtoni: wedeε ani a εda so',
+    '🧑🏼‍🎤' => 'Nnwomtoni: wedeε ani a εda so kakra',
+    '🧑🏽‍🎤' => 'Nnwomtoni: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🎤' => 'Nnwomtoni: wedeε ani tuntum kakra',
+    '🧑🏿‍🎤' => 'Nnwomtoni: wedeε ani tuntum',
+    '👨🏻‍🎤' => 'Nnwomtoni barima: wedeε ani a εda so',
+    '👨🏼‍🎤' => 'Nnwomtoni barima: wedeε ani a εda so kakra',
+    '👨🏽‍🎤' => 'Nnwomtoni barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🎤' => 'Nnwomtoni barima: wedeε ani tuntum kakra',
+    '👨🏿‍🎤' => 'Nnwomtoni barima: wedeε ani tuntum',
+    '👩🏻‍🎤' => 'Nnwomtoni baa: wedeε ani a εda so',
+    '👩🏼‍🎤' => 'Nnwomtoni baa: wedeε ani a εda so kakra',
+    '👩🏽‍🎤' => 'Nnwomtoni baa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🎤' => 'Nnwomtoni baa: wedeε ani tuntum kakra',
+    '👩🏿‍🎤' => 'Nnwomtoni baa: wedeε ani tuntum',
+    '🧑🏻‍🎨' => 'Aatise: wedeε ani a εda so',
+    '🧑🏼‍🎨' => 'Aatise: wedeε ani a εda so kakra',
+    '🧑🏽‍🎨' => 'Aatise: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🎨' => 'Aatise: wedeε ani tuntum kakra',
+    '🧑🏿‍🎨' => 'Aatise: wedeε ani tuntum',
+    '👨🏻‍🎨' => 'Aatise barima: wedeε ani a εda so',
+    '👨🏼‍🎨' => 'Aatise barima: wedeε ani a εda so kakra',
+    '👨🏽‍🎨' => 'Aatise barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🎨' => 'Aatise barima: wedeε ani tuntum kakra',
+    '👨🏿‍🎨' => 'Aatise barima: wedeε ani tuntum',
+    '👩🏻‍🎨' => 'Aatise ɔbaa: wedeε ani a εda so',
+    '👩🏼‍🎨' => 'Aatise ɔbaa: wedeε ani a εda so kakra',
+    '👩🏽‍🎨' => 'Aatise ɔbaa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🎨' => 'Aatise ɔbaa: wedeε ani tuntum kakra',
+    '👩🏿‍🎨' => 'Aatise ɔbaa: wedeε ani tuntum',
+    '🧑🏻‍✈' => 'Pailɔt: wedeε ani a εda so',
+    '🧑🏼‍✈' => 'Pailɔt: wedeε ani a εda so kakra',
+    '🧑🏽‍✈' => 'Pailɔt: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍✈' => 'Pailɔt: wedeε ani tuntum kakra',
+    '🧑🏿‍✈' => 'Pailɔt: wedeε ani tuntum',
+    '👨🏻‍✈' => 'Barima pailɔt: wedeε ani a εda so',
+    '👨🏼‍✈' => 'Barima pailɔt: wedeε ani a εda so kakra',
+    '👨🏽‍✈' => 'Barima pailɔt: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍✈' => 'Barima pailɔt: wedeε ani tuntum kakra',
+    '👨🏿‍✈' => 'Barima pailɔt: wedeε ani tuntum',
+    '👩🏻‍✈' => 'Pailɔt ɔbaa: wedeε ani a εda so',
+    '👩🏼‍✈' => 'Pailɔt ɔbaa: wedeε ani a εda so kakra',
+    '👩🏽‍✈' => 'Pailɔt ɔbaa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍✈' => 'Pailɔt ɔbaa: wedeε ani tuntum kakra',
+    '👩🏿‍✈' => 'Pailɔt ɔbaa: wedeε ani tuntum',
+    '🧑🏻‍🚀' => 'Astrɔnɔt: wedeε ani a εda so',
+    '🧑🏼‍🚀' => 'Astrɔnɔt: wedeε ani a εda so kakra',
+    '🧑🏽‍🚀' => 'Astrɔnɔt: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🚀' => 'Astrɔnɔt: wedeε ani tuntum kakra',
+    '🧑🏿‍🚀' => 'Astrɔnɔt: wedeε ani tuntum',
+    '👨🏻‍🚀' => 'Astrɔnɔt barima: wedeε ani a εda so',
+    '👨🏼‍🚀' => 'Astrɔnɔt barima: wedeε ani a εda so kakra',
+    '👨🏽‍🚀' => 'Astrɔnɔt barima: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🚀' => 'Astrɔnɔt barima: wedeε ani tuntum kakra',
+    '👨🏿‍🚀' => 'Astrɔnɔt barima: wedeε ani tuntum',
+    '👩🏻‍🚀' => 'Astrɔnɔto ɔbaa: wedeε ani a εda so',
+    '👩🏼‍🚀' => 'Astrɔnɔto ɔbaa: wedeε ani a εda so kakra',
+    '👩🏽‍🚀' => 'Astrɔnɔto ɔbaa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🚀' => 'Astrɔnɔto ɔbaa: wedeε ani tuntum kakra',
+    '👩🏿‍🚀' => 'Astrɔnɔto ɔbaa: wedeε ani tuntum',
+    '🧑🏻‍🚒' => 'Gyadumfoɔ: wedeε ani a εda so',
+    '🧑🏼‍🚒' => 'Gyadumfoɔ: wedeε ani a εda so kakra',
+    '🧑🏽‍🚒' => 'Gyadumfoɔ: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🚒' => 'Gyadumfoɔ: wedeε ani tuntum kakra',
+    '🧑🏿‍🚒' => 'Gyadumfoɔ: wedeε ani tuntum',
+    '👨🏻‍🚒' => 'Barima gyadumfoɔ: wedeε ani a εda so',
+    '👨🏼‍🚒' => 'Barima gyadumfoɔ: wedeε ani a εda so kakra',
+    '👨🏽‍🚒' => 'Barima gyadumfoɔ: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🚒' => 'Barima gyadumfoɔ: wedeε ani tuntum kakra',
+    '👨🏿‍🚒' => 'Barima gyadumfoɔ: wedeε ani tuntum',
+    '👩🏻‍🚒' => 'Ɔbaa gyadumfoɔ: wedeε ani a εda so',
+    '👩🏼‍🚒' => 'Ɔbaa gyadumfoɔ: wedeε ani a εda so kakra',
+    '👩🏽‍🚒' => 'Ɔbaa gyadumfoɔ: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🚒' => 'Ɔbaa gyadumfoɔ: wedeε ani tuntum kakra',
+    '👩🏿‍🚒' => 'Ɔbaa gyadumfoɔ: wedeε ani tuntum',
+    '👮🏻‍♂' => 'Polisi ɔfesa barima: wedeε ani a εda so',
+    '👮🏼‍♂' => 'Polisi ɔfesa barima: wedeε ani a εda so kakra',
+    '👮🏽‍♂' => 'Polisi ɔfesa barima: wedeε ani a εda hᴐ kakra',
+    '👮🏾‍♂' => 'Polisi ɔfesa barima: wedeε ani tuntum kakra',
+    '👮🏿‍♂' => 'Polisi ɔfesa barima: wedeε ani tuntum',
+    '👮🏻‍♀' => 'Polisi ɔfesa ɔbaa: wedeε ani a εda so',
+    '👮🏼‍♀' => 'Polisi ɔfesa ɔbaa: wedeε ani a εda so kakra',
+    '👮🏽‍♀' => 'Polisi ɔfesa ɔbaa: wedeε ani a εda hᴐ kakra',
+    '👮🏾‍♀' => 'Polisi ɔfesa ɔbaa: wedeε ani tuntum kakra',
+    '👮🏿‍♀' => 'Polisi ɔfesa ɔbaa: wedeε ani tuntum',
+    '🕵🏻‍♂' => 'Detɛketifo barima: wedeε ani a εda so',
+    '🕵🏼‍♂' => 'Detɛketifo barima: wedeε ani a εda so kakra',
+    '🕵🏽‍♂' => 'Detɛketifo barima: wedeε ani a εda hᴐ kakra',
+    '🕵🏾‍♂' => 'Detɛketifo barima: wedeε ani tuntum kakra',
+    '🕵🏿‍♂' => 'Detɛketifo barima: wedeε ani tuntum',
+    '🕵🏻‍♀' => 'Detɛketifo ɔbaa: wedeε ani a εda so',
+    '🕵🏼‍♀' => 'Detɛketifo ɔbaa: wedeε ani a εda so kakra',
+    '🕵🏽‍♀' => 'Detɛketifo ɔbaa: wedeε ani a εda hᴐ kakra',
+    '🕵🏾‍♀' => 'Detɛketifo ɔbaa: wedeε ani tuntum kakra',
+    '🕵🏿‍♀' => 'Detɛketifo ɔbaa: wedeε ani tuntum',
+    '💂🏻‍♂' => 'Barima banbɔfo: wedeε ani a εda so',
+    '💂🏼‍♂' => 'Barima banbɔfo: wedeε ani a εda so kakra',
+    '💂🏽‍♂' => 'Barima banbɔfo: wedeε ani a εda hᴐ kakra',
+    '💂🏾‍♂' => 'Barima banbɔfo: wedeε ani tuntum kakra',
+    '💂🏿‍♂' => 'Barima banbɔfo: wedeε ani tuntum',
+    '💂🏻‍♀' => 'Ɔbaa banbɔfo: wedeε ani a εda so',
+    '💂🏼‍♀' => 'Ɔbaa banbɔfo: wedeε ani a εda so kakra',
+    '💂🏽‍♀' => 'Ɔbaa banbɔfo: wedeε ani a εda hᴐ kakra',
+    '💂🏾‍♀' => 'Ɔbaa banbɔfo: wedeε ani tuntum kakra',
+    '💂🏿‍♀' => 'Ɔbaa banbɔfo: wedeε ani tuntum',
+    '👷🏻‍♂' => 'Adansie dwumayɛni barima: wedeε ani a εda so',
+    '👷🏼‍♂' => 'Adansie dwumayɛni barima: wedeε ani a εda so kakra',
+    '👷🏽‍♂' => 'Adansie dwumayɛni barima: wedeε ani a εda hᴐ kakra',
+    '👷🏾‍♂' => 'Adansie dwumayɛni barima: wedeε ani tuntum kakra',
+    '👷🏿‍♂' => 'Adansie dwumayɛni barima: wedeε ani tuntum',
+    '👷🏻‍♀' => 'Adansie dwumayɛni baa: wedeε ani a εda so',
+    '👷🏼‍♀' => 'Adansie dwumayɛni baa: wedeε ani a εda so kakra',
+    '👷🏽‍♀' => 'Adansie dwumayɛni baa: wedeε ani a εda hᴐ kakra',
+    '👷🏾‍♀' => 'Adansie dwumayɛni baa: wedeε ani tuntum kakra',
+    '👷🏿‍♀' => 'Adansie dwumayɛni baa: wedeε ani tuntum',
+    '👳🏻‍♂' => 'Barima hyɛ tɛɛban: wedeε ani a εda so',
+    '👳🏼‍♂' => 'Barima hyɛ tɛɛban: wedeε ani a εda so kakra',
+    '👳🏽‍♂' => 'Barima hyɛ tɛɛban: wedeε ani a εda hᴐ kakra',
+    '👳🏾‍♂' => 'Barima hyɛ tɛɛban: wedeε ani tuntum kakra',
+    '👳🏿‍♂' => 'Barima hyɛ tɛɛban: wedeε ani tuntum',
+    '👳🏻‍♀' => 'ɔbaa a ɔhyɛ tɛɛban: wedeε ani a εda so',
+    '👳🏼‍♀' => 'ɔbaa a ɔhyɛ tɛɛban: wedeε ani a εda so kakra',
+    '👳🏽‍♀' => 'ɔbaa a ɔhyɛ tɛɛban: wedeε ani a εda hᴐ kakra',
+    '👳🏾‍♀' => 'ɔbaa a ɔhyɛ tɛɛban: wedeε ani tuntum kakra',
+    '👳🏿‍♀' => 'ɔbaa a ɔhyɛ tɛɛban: wedeε ani tuntum',
+    '🤵🏻‍♂' => 'Barima a ɔhyɛ tɔseedo: wedeε ani a εda so',
+    '🤵🏼‍♂' => 'Barima a ɔhyɛ tɔseedo: wedeε ani a εda so kakra',
+    '🤵🏽‍♂' => 'Barima a ɔhyɛ tɔseedo: wedeε ani a εda hᴐ kakra',
+    '🤵🏾‍♂' => 'Barima a ɔhyɛ tɔseedo: wedeε ani tuntum kakra',
+    '🤵🏿‍♂' => 'Barima a ɔhyɛ tɔseedo: wedeε ani tuntum',
+    '🤵🏻‍♀' => 'Ɔbaa a ɔhyɛ tɔseedo: wedeε ani a εda so',
+    '🤵🏼‍♀' => 'Ɔbaa a ɔhyɛ tɔseedo: wedeε ani a εda so kakra',
+    '🤵🏽‍♀' => 'Ɔbaa a ɔhyɛ tɔseedo: wedeε ani a εda hᴐ kakra',
+    '🤵🏾‍♀' => 'Ɔbaa a ɔhyɛ tɔseedo: wedeε ani tuntum kakra',
+    '🤵🏿‍♀' => 'Ɔbaa a ɔhyɛ tɔseedo: wedeε ani tuntum',
+    '👰🏻‍♂' => 'Barima ne veil: wedeε ani a εda so',
+    '👰🏼‍♂' => 'Barima ne veil: wedeε ani a εda so kakra',
+    '👰🏽‍♂' => 'Barima ne veil: wedeε ani a εda hᴐ kakra',
+    '👰🏾‍♂' => 'Barima ne veil: wedeε ani tuntum kakra',
+    '👰🏿‍♂' => 'Barima ne veil: wedeε ani tuntum',
+    '👰🏻‍♀' => 'Ɔbaa ne veil: wedeε ani a εda so',
+    '👰🏼‍♀' => 'Ɔbaa ne veil: wedeε ani a εda so kakra',
+    '👰🏽‍♀' => 'Ɔbaa ne veil: wedeε ani a εda hᴐ kakra',
+    '👰🏾‍♀' => 'Ɔbaa ne veil: wedeε ani tuntum kakra',
+    '👰🏿‍♀' => 'Ɔbaa ne veil: wedeε ani tuntum',
+    '👩🏻‍🍼' => 'Ɔbaa rema akwadaa aduane: wedeε ani a εda so',
+    '👩🏼‍🍼' => 'Ɔbaa rema akwadaa aduane: wedeε ani a εda so kakra',
+    '👩🏽‍🍼' => 'Ɔbaa rema akwadaa aduane: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🍼' => 'Ɔbaa rema akwadaa aduane: wedeε ani tuntum kakra',
+    '👩🏿‍🍼' => 'Ɔbaa rema akwadaa aduane: wedeε ani tuntum',
+    '👨🏻‍🍼' => 'Barima rema akwadaa aduane: wedeε ani a εda so',
+    '👨🏼‍🍼' => 'Barima rema akwadaa aduane: wedeε ani a εda so kakra',
+    '👨🏽‍🍼' => 'Barima rema akwadaa aduane: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🍼' => 'Barima rema akwadaa aduane: wedeε ani tuntum kakra',
+    '👨🏿‍🍼' => 'Barima rema akwadaa aduane: wedeε ani tuntum',
+    '🧑🏻‍🍼' => 'obi rema akwadaa nufoɔ: wedeε ani a εda so',
+    '🧑🏼‍🍼' => 'obi rema akwadaa nufoɔ: wedeε ani a εda so kakra',
+    '🧑🏽‍🍼' => 'obi rema akwadaa nufoɔ: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🍼' => 'obi rema akwadaa nufoɔ: wedeε ani tuntum kakra',
+    '🧑🏿‍🍼' => 'obi rema akwadaa nufoɔ: wedeε ani tuntum',
+    '🧑🏻‍🎄' => 'Mx Klauso: wedeε ani a εda so',
+    '🧑🏼‍🎄' => 'Mx Klauso: wedeε ani a εda so kakra',
+    '🧑🏽‍🎄' => 'Mx Klauso: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🎄' => 'Mx Klauso: wedeε ani tuntum kakra',
+    '🧑🏿‍🎄' => 'Mx Klauso: wedeε ani tuntum',
+    '🦸🏻‍♂' => 'Supahero barima: wedeε ani a εda so',
+    '🦸🏼‍♂' => 'Supahero barima: wedeε ani a εda so kakra',
+    '🦸🏽‍♂' => 'Supahero barima: wedeε ani a εda hᴐ kakra',
+    '🦸🏾‍♂' => 'Supahero barima: wedeε ani tuntum kakra',
+    '🦸🏿‍♂' => 'Supahero barima: wedeε ani tuntum',
+    '🦸🏻‍♀' => 'Supahero ɔbaa: wedeε ani a εda so',
+    '🦸🏼‍♀' => 'Supahero ɔbaa: wedeε ani a εda so kakra',
+    '🦸🏽‍♀' => 'Supahero ɔbaa: wedeε ani a εda hᴐ kakra',
+    '🦸🏾‍♀' => 'Supahero ɔbaa: wedeε ani tuntum kakra',
+    '🦸🏿‍♀' => 'Supahero ɔbaa: wedeε ani tuntum',
+    '🦹🏻‍♂' => 'Supaviliane barima: wedeε ani a εda so',
+    '🦹🏼‍♂' => 'Supaviliane barima: wedeε ani a εda so kakra',
+    '🦹🏽‍♂' => 'Supaviliane barima: wedeε ani a εda hᴐ kakra',
+    '🦹🏾‍♂' => 'Supaviliane barima: wedeε ani tuntum kakra',
+    '🦹🏿‍♂' => 'Supaviliane barima: wedeε ani tuntum',
+    '🦹🏻‍♀' => 'Supaviliane ɔbaa: wedeε ani a εda so',
+    '🦹🏼‍♀' => 'Supaviliane ɔbaa: wedeε ani a εda so kakra',
+    '🦹🏽‍♀' => 'Supaviliane ɔbaa: wedeε ani a εda hᴐ kakra',
+    '🦹🏾‍♀' => 'Supaviliane ɔbaa: wedeε ani tuntum kakra',
+    '🦹🏿‍♀' => 'Supaviliane ɔbaa: wedeε ani tuntum',
+    '🧙🏻‍♂' => 'barima nknyaayifoͻ: wedeε ani a εda so',
+    '🧙🏼‍♂' => 'barima nknyaayifoͻ: wedeε ani a εda so kakra',
+    '🧙🏽‍♂' => 'barima nknyaayifoͻ: wedeε ani a εda hᴐ kakra',
+    '🧙🏾‍♂' => 'barima nknyaayifoͻ: wedeε ani tuntum kakra',
+    '🧙🏿‍♂' => 'barima nknyaayifoͻ: wedeε ani tuntum',
+    '🧙🏻‍♀' => 'ͻbaa nkonyaayifoͻ: wedeε ani a εda so',
+    '🧙🏼‍♀' => 'ͻbaa nkonyaayifoͻ: wedeε ani a εda so kakra',
+    '🧙🏽‍♀' => 'ͻbaa nkonyaayifoͻ: wedeε ani a εda hᴐ kakra',
+    '🧙🏾‍♀' => 'ͻbaa nkonyaayifoͻ: wedeε ani tuntum kakra',
+    '🧙🏿‍♀' => 'ͻbaa nkonyaayifoͻ: wedeε ani tuntum',
+    '🧚🏻‍♂' => 'Fɛɛre barima: wedeε ani a εda so',
+    '🧚🏼‍♂' => 'Fɛɛre barima: wedeε ani a εda so kakra',
+    '🧚🏽‍♂' => 'Fɛɛre barima: wedeε ani a εda hᴐ kakra',
+    '🧚🏾‍♂' => 'Fɛɛre barima: wedeε ani tuntum kakra',
+    '🧚🏿‍♂' => 'Fɛɛre barima: wedeε ani tuntum',
+    '🧚🏻‍♀' => 'Ɔbaa fɛɛre: wedeε ani a εda so',
+    '🧚🏼‍♀' => 'Ɔbaa fɛɛre: wedeε ani a εda so kakra',
+    '🧚🏽‍♀' => 'Ɔbaa fɛɛre: wedeε ani a εda hᴐ kakra',
+    '🧚🏾‍♀' => 'Ɔbaa fɛɛre: wedeε ani tuntum kakra',
+    '🧚🏿‍♀' => 'Ɔbaa fɛɛre: wedeε ani tuntum',
+    '🧛🏻‍♂' => 'Barima vampaya: wedeε ani a εda so',
+    '🧛🏼‍♂' => 'Barima vampaya: wedeε ani a εda so kakra',
+    '🧛🏽‍♂' => 'Barima vampaya: wedeε ani a εda hᴐ kakra',
+    '🧛🏾‍♂' => 'Barima vampaya: wedeε ani tuntum kakra',
+    '🧛🏿‍♂' => 'Barima vampaya: wedeε ani tuntum',
+    '🧛🏻‍♀' => 'Ɔbaa vampaya: wedeε ani a εda so',
+    '🧛🏼‍♀' => 'Ɔbaa vampaya: wedeε ani a εda so kakra',
+    '🧛🏽‍♀' => 'Ɔbaa vampaya: wedeε ani a εda hᴐ kakra',
+    '🧛🏾‍♀' => 'Ɔbaa vampaya: wedeε ani tuntum kakra',
+    '🧛🏿‍♀' => 'Ɔbaa vampaya: wedeε ani tuntum',
+    '🧜🏻‍♂' => 'Mɛɛbarima: wedeε ani a εda so',
+    '🧜🏼‍♂' => 'Mɛɛbarima: wedeε ani a εda so kakra',
+    '🧜🏽‍♂' => 'Mɛɛbarima: wedeε ani a εda hᴐ kakra',
+    '🧜🏾‍♂' => 'Mɛɛbarima: wedeε ani tuntum kakra',
+    '🧜🏿‍♂' => 'Mɛɛbarima: wedeε ani tuntum',
+    '🧜🏻‍♀' => 'Mɛɛmeede: wedeε ani a εda so',
+    '🧜🏼‍♀' => 'Mɛɛmeede: wedeε ani a εda so kakra',
+    '🧜🏽‍♀' => 'Mɛɛmeede: wedeε ani a εda hᴐ kakra',
+    '🧜🏾‍♀' => 'Mɛɛmeede: wedeε ani tuntum kakra',
+    '🧜🏿‍♀' => 'Mɛɛmeede: wedeε ani tuntum',
+    '🧝🏻‍♂' => 'Ɛlefo barima: wedeε ani a εda so',
+    '🧝🏼‍♂' => 'Ɛlefo barima: wedeε ani a εda so kakra',
+    '🧝🏽‍♂' => 'Ɛlefo barima: wedeε ani a εda hᴐ kakra',
+    '🧝🏾‍♂' => 'Ɛlefo barima: wedeε ani tuntum kakra',
+    '🧝🏿‍♂' => 'Ɛlefo barima: wedeε ani tuntum',
+    '🧝🏻‍♀' => 'Ɛlefo ɔbaa: wedeε ani a εda so',
+    '🧝🏼‍♀' => 'Ɛlefo ɔbaa: wedeε ani a εda so kakra',
+    '🧝🏽‍♀' => 'Ɛlefo ɔbaa: wedeε ani a εda hᴐ kakra',
+    '🧝🏾‍♀' => 'Ɛlefo ɔbaa: wedeε ani tuntum kakra',
+    '🧝🏿‍♀' => 'Ɛlefo ɔbaa: wedeε ani tuntum',
+    '💆🏻‍♂' => 'Barima renya amiamia: wedeε ani a εda so',
+    '💆🏼‍♂' => 'Barima renya amiamia: wedeε ani a εda so kakra',
+    '💆🏽‍♂' => 'Barima renya amiamia: wedeε ani a εda hᴐ kakra',
+    '💆🏾‍♂' => 'Barima renya amiamia: wedeε ani tuntum kakra',
+    '💆🏿‍♂' => 'Barima renya amiamia: wedeε ani tuntum',
+    '💆🏻‍♀' => 'Ɔbaa renya amiamia: wedeε ani a εda so',
+    '💆🏼‍♀' => 'Ɔbaa renya amiamia: wedeε ani a εda so kakra',
+    '💆🏽‍♀' => 'Ɔbaa renya amiamia: wedeε ani a εda hᴐ kakra',
+    '💆🏾‍♀' => 'Ɔbaa renya amiamia: wedeε ani tuntum kakra',
+    '💆🏿‍♀' => 'Ɔbaa renya amiamia: wedeε ani tuntum',
+    '💇🏻‍♂' => 'Wɔretwa barima nwii: wedeε ani a εda so',
+    '💇🏼‍♂' => 'Wɔretwa barima nwii: wedeε ani a εda so kakra',
+    '💇🏽‍♂' => 'Wɔretwa barima nwii: wedeε ani a εda hᴐ kakra',
+    '💇🏾‍♂' => 'Wɔretwa barima nwii: wedeε ani tuntum kakra',
+    '💇🏿‍♂' => 'Wɔretwa barima nwii: wedeε ani tuntum',
+    '💇🏻‍♀' => 'Wɔretwa ɔbaa nwii: wedeε ani a εda so',
+    '💇🏼‍♀' => 'Wɔretwa ɔbaa nwii: wedeε ani a εda so kakra',
+    '💇🏽‍♀' => 'Wɔretwa ɔbaa nwii: wedeε ani a εda hᴐ kakra',
+    '💇🏾‍♀' => 'Wɔretwa ɔbaa nwii: wedeε ani tuntum kakra',
+    '💇🏿‍♀' => 'Wɔretwa ɔbaa nwii: wedeε ani tuntum',
+    '🚶🏻‍♂' => 'Barima renante: wedeε ani a εda so',
+    '🚶🏼‍♂' => 'Barima renante: wedeε ani a εda so kakra',
+    '🚶🏽‍♂' => 'Barima renante: wedeε ani a εda hᴐ kakra',
+    '🚶🏾‍♂' => 'Barima renante: wedeε ani tuntum kakra',
+    '🚶🏿‍♂' => 'Barima renante: wedeε ani tuntum',
+    '🚶🏻‍♀' => 'Ɔbaa renante: wedeε ani a εda so',
+    '🚶🏼‍♀' => 'Ɔbaa renante: wedeε ani a εda so kakra',
+    '🚶🏽‍♀' => 'Ɔbaa renante: wedeε ani a εda hᴐ kakra',
+    '🚶🏾‍♀' => 'Ɔbaa renante: wedeε ani tuntum kakra',
+    '🚶🏿‍♀' => 'Ɔbaa renante: wedeε ani tuntum',
+    '🚶🏻‍➡' => 'Onipa renante: wedeε ani a εda so ne rehwɛ nifa',
+    '🚶🏼‍➡' => 'Onipa renante: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🚶🏽‍➡' => 'Onipa renante: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🚶🏾‍➡' => 'Onipa renante: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🚶🏿‍➡' => 'Onipa renante: wedeε ani tuntum ne rehwɛ nifa',
+    '🧍🏻‍♂' => 'Barima gyina hɔ: wedeε ani a εda so',
+    '🧍🏼‍♂' => 'Barima gyina hɔ: wedeε ani a εda so kakra',
+    '🧍🏽‍♂' => 'Barima gyina hɔ: wedeε ani a εda hᴐ kakra',
+    '🧍🏾‍♂' => 'Barima gyina hɔ: wedeε ani tuntum kakra',
+    '🧍🏿‍♂' => 'Barima gyina hɔ: wedeε ani tuntum',
+    '🧍🏻‍♀' => 'Ɔbaa regyina hɔ: wedeε ani a εda so',
+    '🧍🏼‍♀' => 'Ɔbaa regyina hɔ: wedeε ani a εda so kakra',
+    '🧍🏽‍♀' => 'Ɔbaa regyina hɔ: wedeε ani a εda hᴐ kakra',
+    '🧍🏾‍♀' => 'Ɔbaa regyina hɔ: wedeε ani tuntum kakra',
+    '🧍🏿‍♀' => 'Ɔbaa regyina hɔ: wedeε ani tuntum',
+    '🧎🏻‍♂' => 'Barima abu nkotodwe: wedeε ani a εda so',
+    '🧎🏼‍♂' => 'Barima abu nkotodwe: wedeε ani a εda so kakra',
+    '🧎🏽‍♂' => 'Barima abu nkotodwe: wedeε ani a εda hᴐ kakra',
+    '🧎🏾‍♂' => 'Barima abu nkotodwe: wedeε ani tuntum kakra',
+    '🧎🏿‍♂' => 'Barima abu nkotodwe: wedeε ani tuntum',
+    '🧎🏻‍♀' => 'Ɔbaa abu nkotodwe: wedeε ani a εda so',
+    '🧎🏼‍♀' => 'Ɔbaa abu nkotodwe: wedeε ani a εda so kakra',
+    '🧎🏽‍♀' => 'Ɔbaa abu nkotodwe: wedeε ani a εda hᴐ kakra',
+    '🧎🏾‍♀' => 'Ɔbaa abu nkotodwe: wedeε ani tuntum kakra',
+    '🧎🏿‍♀' => 'Ɔbaa abu nkotodwe: wedeε ani tuntum',
+    '🧎🏻‍➡' => 'Obi abu nkotodwe: wedeε ani a εda so ne rehwɛ nifa',
+    '🧎🏼‍➡' => 'Obi abu nkotodwe: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🧎🏽‍➡' => 'Obi abu nkotodwe: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🧎🏾‍➡' => 'Obi abu nkotodwe: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🧎🏿‍➡' => 'Obi abu nkotodwe: wedeε ani tuntum ne rehwɛ nifa',
+    '🧑🏻‍🦯' => 'Obi kura abaa fitaa: wedeε ani a εda so',
+    '🧑🏼‍🦯' => 'Obi kura abaa fitaa: wedeε ani a εda so kakra',
+    '🧑🏽‍🦯' => 'Obi kura abaa fitaa: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🦯' => 'Obi kura abaa fitaa: wedeε ani tuntum kakra',
+    '🧑🏿‍🦯' => 'Obi kura abaa fitaa: wedeε ani tuntum',
+    '👨🏻‍🦯' => 'Barima kura abaa fitaa: wedeε ani a εda so',
+    '👨🏼‍🦯' => 'Barima kura abaa fitaa: wedeε ani a εda so kakra',
+    '👨🏽‍🦯' => 'Barima kura abaa fitaa: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🦯' => 'Barima kura abaa fitaa: wedeε ani tuntum kakra',
+    '👨🏿‍🦯' => 'Barima kura abaa fitaa: wedeε ani tuntum',
+    '👩🏻‍🦯' => 'Ɔbaa kura abaa fitaa: wedeε ani a εda so',
+    '👩🏼‍🦯' => 'Ɔbaa kura abaa fitaa: wedeε ani a εda so kakra',
+    '👩🏽‍🦯' => 'Ɔbaa kura abaa fitaa: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🦯' => 'Ɔbaa kura abaa fitaa: wedeε ani tuntum kakra',
+    '👩🏿‍🦯' => 'Ɔbaa kura abaa fitaa: wedeε ani tuntum',
+    '🧑🏻‍🦼' => 'Obi te moto hwiikyɛɛ mu: wedeε ani a εda so',
+    '🧑🏼‍🦼' => 'Obi te moto hwiikyɛɛ mu: wedeε ani a εda so kakra',
+    '🧑🏽‍🦼' => 'Obi te moto hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🦼' => 'Obi te moto hwiikyɛɛ mu: wedeε ani tuntum kakra',
+    '🧑🏿‍🦼' => 'Obi te moto hwiikyɛɛ mu: wedeε ani tuntum',
+    '👨🏻‍🦼' => 'Barima te moto hwiikyɛɛ mu: wedeε ani a εda so',
+    '👨🏼‍🦼' => 'Barima te moto hwiikyɛɛ mu: wedeε ani a εda so kakra',
+    '👨🏽‍🦼' => 'Barima te moto hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🦼' => 'Barima te moto hwiikyɛɛ mu: wedeε ani tuntum kakra',
+    '👨🏿‍🦼' => 'Barima te moto hwiikyɛɛ mu: wedeε ani tuntum',
+    '👩🏻‍🦼' => 'Ɔbaa te moto hwiikyɛɛ mu: wedeε ani a εda so',
+    '👩🏼‍🦼' => 'Ɔbaa te moto hwiikyɛɛ mu: wedeε ani a εda so kakra',
+    '👩🏽‍🦼' => 'Ɔbaa te moto hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🦼' => 'Ɔbaa te moto hwiikyɛɛ mu: wedeε ani tuntum kakra',
+    '👩🏿‍🦼' => 'Ɔbaa te moto hwiikyɛɛ mu: wedeε ani tuntum',
+    '🧑🏻‍🦽' => 'Obi te manuaa hwiikyɛɛ mu: wedeε ani a εda so',
+    '🧑🏼‍🦽' => 'Obi te manuaa hwiikyɛɛ mu: wedeε ani a εda so kakra',
+    '🧑🏽‍🦽' => 'Obi te manuaa hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra',
+    '🧑🏾‍🦽' => 'Obi te manuaa hwiikyɛɛ mu: wedeε ani tuntum kakra',
+    '🧑🏿‍🦽' => 'Obi te manuaa hwiikyɛɛ mu: wedeε ani tuntum',
+    '👨🏻‍🦽' => 'Barima te manuaa hwiikyɛɛ mu: wedeε ani a εda so',
+    '👨🏼‍🦽' => 'Barima te manuaa hwiikyɛɛ mu: wedeε ani a εda so kakra',
+    '👨🏽‍🦽' => 'Barima te manuaa hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra',
+    '👨🏾‍🦽' => 'Barima te manuaa hwiikyɛɛ mu: wedeε ani tuntum kakra',
+    '👨🏿‍🦽' => 'Barima te manuaa hwiikyɛɛ mu: wedeε ani tuntum',
+    '👩🏻‍🦽' => 'Ɔbaa te manuaa hwiikyɛɛ mu: wedeε ani a εda so',
+    '👩🏼‍🦽' => 'Ɔbaa te manuaa hwiikyɛɛ mu: wedeε ani a εda so kakra',
+    '👩🏽‍🦽' => 'Ɔbaa te manuaa hwiikyɛɛ mu: wedeε ani a εda hᴐ kakra',
+    '👩🏾‍🦽' => 'Ɔbaa te manuaa hwiikyɛɛ mu: wedeε ani tuntum kakra',
+    '👩🏿‍🦽' => 'Ɔbaa te manuaa hwiikyɛɛ mu: wedeε ani tuntum',
+    '🏃🏻‍♂' => 'Barima retu mmirika: wedeε ani a εda so',
+    '🏃🏼‍♂' => 'Barima retu mmirika: wedeε ani a εda so kakra',
+    '🏃🏽‍♂' => 'Barima retu mmirika: wedeε ani a εda hᴐ kakra',
+    '🏃🏾‍♂' => 'Barima retu mmirika: wedeε ani tuntum kakra',
+    '🏃🏿‍♂' => 'Barima retu mmirika: wedeε ani tuntum',
+    '🏃🏻‍♀' => 'Ɔbaa retu mmirika: wedeε ani a εda so',
+    '🏃🏼‍♀' => 'Ɔbaa retu mmirika: wedeε ani a εda so kakra',
+    '🏃🏽‍♀' => 'Ɔbaa retu mmirika: wedeε ani a εda hᴐ kakra',
+    '🏃🏾‍♀' => 'Ɔbaa retu mmirika: wedeε ani tuntum kakra',
+    '🏃🏿‍♀' => 'Ɔbaa retu mmirika: wedeε ani tuntum',
+    '🏃🏻‍➡' => 'Obi retu mmirika: wedeε ani a εda so ne rehwɛ nifa',
+    '🏃🏼‍➡' => 'Obi retu mmirika: wedeε ani a εda so kakra ne rehwɛ nifa',
+    '🏃🏽‍➡' => 'Obi retu mmirika: wedeε ani a εda hᴐ kakra ne rehwɛ nifa',
+    '🏃🏾‍➡' => 'Obi retu mmirika: wedeε ani tuntum kakra ne rehwɛ nifa',
+    '🏃🏿‍➡' => 'Obi retu mmirika: wedeε ani tuntum ne rehwɛ nifa',
+    '👯🏻‍♀' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda so',
+    '👯🏼‍♀' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda so kakra',
+    '👯🏽‍♀' => 'Mmaa a wɔwɔ adanko aso: wedeε ani a εda hᴐ kakra',
+    '👯🏾‍♀' => 'Mmaa a wɔwɔ adanko aso: wedeε ani tuntum kakra',
+    '👯🏿‍♀' => 'Mmaa a wɔwɔ adanko aso: wedeε ani tuntum',
+    '👯🏻‍♂' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda so',
+    '👯🏼‍♂' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda so kakra',
+    '👯🏽‍♂' => 'Mmarima a wɔwɔ adanko aso: wedeε ani a εda hᴐ kakra',
+    '👯🏾‍♂' => 'Mmarima a wɔwɔ adanko aso: wedeε ani tuntum kakra',
+    '👯🏿‍♂' => 'Mmarima a wɔwɔ adanko aso: wedeε ani tuntum',
+    '🧖🏻‍♂' => 'Barima wɔ ɛhyew dan mu: wedeε ani a εda so',
+    '🧖🏼‍♂' => 'Barima wɔ ɛhyew dan mu: wedeε ani a εda so kakra',
+    '🧖🏽‍♂' => 'Barima wɔ ɛhyew dan mu: wedeε ani a εda hᴐ kakra',
+    '🧖🏾‍♂' => 'Barima wɔ ɛhyew dan mu: wedeε ani tuntum kakra',
+    '🧖🏿‍♂' => 'Barima wɔ ɛhyew dan mu: wedeε ani tuntum',
+    '🧖🏻‍♀' => 'Ɔbaa wɔ ɛhyew dan mu: wedeε ani a εda so',
+    '🧖🏼‍♀' => 'Ɔbaa wɔ ɛhyew dan mu: wedeε ani a εda so kakra',
+    '🧖🏽‍♀' => 'Ɔbaa wɔ ɛhyew dan mu: wedeε ani a εda hᴐ kakra',
+    '🧖🏾‍♀' => 'Ɔbaa wɔ ɛhyew dan mu: wedeε ani tuntum kakra',
+    '🧖🏿‍♀' => 'Ɔbaa wɔ ɛhyew dan mu: wedeε ani tuntum',
+    '🧗🏻‍♂' => 'Barima reforo: wedeε ani a εda so',
+    '🧗🏼‍♂' => 'Barima reforo: wedeε ani a εda so kakra',
+    '🧗🏽‍♂' => 'Barima reforo: wedeε ani a εda hᴐ kakra',
+    '🧗🏾‍♂' => 'Barima reforo: wedeε ani tuntum kakra',
+    '🧗🏿‍♂' => 'Barima reforo: wedeε ani tuntum',
+    '🧗🏻‍♀' => 'Ɔbaa reforo: wedeε ani a εda so',
+    '🧗🏼‍♀' => 'Ɔbaa reforo: wedeε ani a εda so kakra',
+    '🧗🏽‍♀' => 'Ɔbaa reforo: wedeε ani a εda hᴐ kakra',
+    '🧗🏾‍♀' => 'Ɔbaa reforo: wedeε ani tuntum kakra',
+    '🧗🏿‍♀' => 'Ɔbaa reforo: wedeε ani tuntum',
+    '🏌🏻‍♂' => 'Barima regɔɔfo: wedeε ani a εda so',
+    '🏌🏼‍♂' => 'Barima regɔɔfo: wedeε ani a εda so kakra',
+    '🏌🏽‍♂' => 'Barima regɔɔfo: wedeε ani a εda hᴐ kakra',
+    '🏌🏾‍♂' => 'Barima regɔɔfo: wedeε ani tuntum kakra',
+    '🏌🏿‍♂' => 'Barima regɔɔfo: wedeε ani tuntum',
+    '🏌🏻‍♀' => 'Ɔbaa regɔɔfo: wedeε ani a εda so',
+    '🏌🏼‍♀' => 'Ɔbaa regɔɔfo: wedeε ani a εda so kakra',
+    '🏌🏽‍♀' => 'Ɔbaa regɔɔfo: wedeε ani a εda hᴐ kakra',
+    '🏌🏾‍♀' => 'Ɔbaa regɔɔfo: wedeε ani tuntum kakra',
+    '🏌🏿‍♀' => 'Ɔbaa regɔɔfo: wedeε ani tuntum',
+    '🏄🏻‍♂' => 'Barima resɔɔfo: wedeε ani a εda so',
+    '🏄🏼‍♂' => 'Barima resɔɔfo: wedeε ani a εda so kakra',
+    '🏄🏽‍♂' => 'Barima resɔɔfo: wedeε ani a εda hᴐ kakra',
+    '🏄🏾‍♂' => 'Barima resɔɔfo: wedeε ani tuntum kakra',
+    '🏄🏿‍♂' => 'Barima resɔɔfo: wedeε ani tuntum',
+    '🏄🏻‍♀' => 'Ɔbaa resɔɔfo: wedeε ani a εda so',
+    '🏄🏼‍♀' => 'Ɔbaa resɔɔfo: wedeε ani a εda so kakra',
+    '🏄🏽‍♀' => 'Ɔbaa resɔɔfo: wedeε ani a εda hᴐ kakra',
+    '🏄🏾‍♀' => 'Ɔbaa resɔɔfo: wedeε ani tuntum kakra',
+    '🏄🏿‍♀' => 'Ɔbaa resɔɔfo: wedeε ani tuntum',
+    '🚣🏻‍♂' => 'Barima reka kodoɔ: wedeε ani a εda so',
+    '🚣🏼‍♂' => 'Barima reka kodoɔ: wedeε ani a εda so kakra',
+    '🚣🏽‍♂' => 'Barima reka kodoɔ: wedeε ani a εda hᴐ kakra',
+    '🚣🏾‍♂' => 'Barima reka kodoɔ: wedeε ani tuntum kakra',
+    '🚣🏿‍♂' => 'Barima reka kodoɔ: wedeε ani tuntum',
+    '🚣🏻‍♀' => 'Ɔbaa reka kodoɔ: wedeε ani a εda so',
+    '🚣🏼‍♀' => 'Ɔbaa reka kodoɔ: wedeε ani a εda so kakra',
+    '🚣🏽‍♀' => 'Ɔbaa reka kodoɔ: wedeε ani a εda hᴐ kakra',
+    '🚣🏾‍♀' => 'Ɔbaa reka kodoɔ: wedeε ani tuntum kakra',
+    '🚣🏿‍♀' => 'Ɔbaa reka kodoɔ: wedeε ani tuntum',
+    '🏊🏻‍♂' => 'Barima reboro nsuo: wedeε ani a εda so',
+    '🏊🏼‍♂' => 'Barima reboro nsuo: wedeε ani a εda so kakra',
+    '🏊🏽‍♂' => 'Barima reboro nsuo: wedeε ani a εda hᴐ kakra',
+    '🏊🏾‍♂' => 'Barima reboro nsuo: wedeε ani tuntum kakra',
+    '🏊🏿‍♂' => 'Barima reboro nsuo: wedeε ani tuntum',
+    '🏊🏻‍♀' => 'Ɔbaa reboro nsuo: wedeε ani a εda so',
+    '🏊🏼‍♀' => 'Ɔbaa reboro nsuo: wedeε ani a εda so kakra',
+    '🏊🏽‍♀' => 'Ɔbaa reboro nsuo: wedeε ani a εda hᴐ kakra',
+    '🏊🏾‍♀' => 'Ɔbaa reboro nsuo: wedeε ani tuntum kakra',
+    '🏊🏿‍♀' => 'Ɔbaa reboro nsuo: wedeε ani tuntum',
+    '⛹🏻‍♂' => 'Barima rebɔ bɔɔlo: wedeε ani a εda so',
+    '⛹🏼‍♂' => 'Barima rebɔ bɔɔlo: wedeε ani a εda so kakra',
+    '⛹🏽‍♂' => 'Barima rebɔ bɔɔlo: wedeε ani a εda hᴐ kakra',
+    '⛹🏾‍♂' => 'Barima rebɔ bɔɔlo: wedeε ani tuntum kakra',
+    '⛹🏿‍♂' => 'Barima rebɔ bɔɔlo: wedeε ani tuntum',
+    '⛹🏻‍♀' => 'Ɔbaa rebɔ bɔɔlo: wedeε ani a εda so',
+    '⛹🏼‍♀' => 'Ɔbaa rebɔ bɔɔlo: wedeε ani a εda so kakra',
+    '⛹🏽‍♀' => 'Ɔbaa rebɔ bɔɔlo: wedeε ani a εda hᴐ kakra',
+    '⛹🏾‍♀' => 'Ɔbaa rebɔ bɔɔlo: wedeε ani tuntum kakra',
+    '⛹🏿‍♀' => 'Ɔbaa rebɔ bɔɔlo: wedeε ani tuntum',
+    '🏋🏻‍♂' => 'Barima repagya nnadeɛ: wedeε ani a εda so',
+    '🏋🏼‍♂' => 'Barima repagya nnadeɛ: wedeε ani a εda so kakra',
+    '🏋🏽‍♂' => 'Barima repagya nnadeɛ: wedeε ani a εda hᴐ kakra',
+    '🏋🏾‍♂' => 'Barima repagya nnadeɛ: wedeε ani tuntum kakra',
+    '🏋🏿‍♂' => 'Barima repagya nnadeɛ: wedeε ani tuntum',
+    '🏋🏻‍♀' => 'Ɔbaa repagya nnadeɛ: wedeε ani a εda so',
+    '🏋🏼‍♀' => 'Ɔbaa repagya nnadeɛ: wedeε ani a εda so kakra',
+    '🏋🏽‍♀' => 'Ɔbaa repagya nnadeɛ: wedeε ani a εda hᴐ kakra',
+    '🏋🏾‍♀' => 'Ɔbaa repagya nnadeɛ: wedeε ani tuntum kakra',
+    '🏋🏿‍♀' => 'Ɔbaa repagya nnadeɛ: wedeε ani tuntum',
+    '🚴🏻‍♂' => 'Barima retwi sakre: wedeε ani a εda so',
+    '🚴🏼‍♂' => 'Barima retwi sakre: wedeε ani a εda so kakra',
+    '🚴🏽‍♂' => 'Barima retwi sakre: wedeε ani a εda hᴐ kakra',
+    '🚴🏾‍♂' => 'Barima retwi sakre: wedeε ani tuntum kakra',
+    '🚴🏿‍♂' => 'Barima retwi sakre: wedeε ani tuntum',
+    '🚴🏻‍♀' => 'Ɔbaa retwi sakre: wedeε ani a εda so',
+    '🚴🏼‍♀' => 'Ɔbaa retwi sakre: wedeε ani a εda so kakra',
+    '🚴🏽‍♀' => 'Ɔbaa retwi sakre: wedeε ani a εda hᴐ kakra',
+    '🚴🏾‍♀' => 'Ɔbaa retwi sakre: wedeε ani tuntum kakra',
+    '🚴🏿‍♀' => 'Ɔbaa retwi sakre: wedeε ani tuntum',
+    '🚵🏻‍♂' => 'Barima a ɔtwi sakre wɔ bepɔ so: wedeε ani a εda so',
+    '🚵🏼‍♂' => 'Barima a ɔtwi sakre wɔ bepɔ so: wedeε ani a εda so kakra',
+    '🚵🏽‍♂' => 'Barima a ɔtwi sakre wɔ bepɔ so: wedeε ani a εda hᴐ kakra',
+    '🚵🏾‍♂' => 'Barima a ɔtwi sakre wɔ bepɔ so: wedeε ani tuntum kakra',
+    '🚵🏿‍♂' => 'Barima a ɔtwi sakre wɔ bepɔ so: wedeε ani tuntum',
+    '🚵🏻‍♀' => 'Ɔbaa retwi sakre wɔ bepɔ so: wedeε ani a εda so',
+    '🚵🏼‍♀' => 'Ɔbaa retwi sakre wɔ bepɔ so: wedeε ani a εda so kakra',
+    '🚵🏽‍♀' => 'Ɔbaa retwi sakre wɔ bepɔ so: wedeε ani a εda hᴐ kakra',
+    '🚵🏾‍♀' => 'Ɔbaa retwi sakre wɔ bepɔ so: wedeε ani tuntum kakra',
+    '🚵🏿‍♀' => 'Ɔbaa retwi sakre wɔ bepɔ so: wedeε ani tuntum',
+    '🤸🏻‍♂' => 'Batima retwi kaate: wedeε ani a εda so',
+    '🤸🏼‍♂' => 'Batima retwi kaate: wedeε ani a εda so kakra',
+    '🤸🏽‍♂' => 'Batima retwi kaate: wedeε ani a εda hᴐ kakra',
+    '🤸🏾‍♂' => 'Batima retwi kaate: wedeε ani tuntum kakra',
+    '🤸🏿‍♂' => 'Batima retwi kaate: wedeε ani tuntum',
+    '🤸🏻‍♀' => 'Ɔbaa retwi kaate: wedeε ani a εda so',
+    '🤸🏼‍♀' => 'Ɔbaa retwi kaate: wedeε ani a εda so kakra',
+    '🤸🏽‍♀' => 'Ɔbaa retwi kaate: wedeε ani a εda hᴐ kakra',
+    '🤸🏾‍♀' => 'Ɔbaa retwi kaate: wedeε ani tuntum kakra',
+    '🤸🏿‍♀' => 'Ɔbaa retwi kaate: wedeε ani tuntum',
+    '🤼🏻‍♀' => 'Mmaa retentam: wedeε ani a εda so',
+    '🤼🏼‍♀' => 'Mmaa retentam: wedeε ani a εda so kakra',
+    '🤼🏽‍♀' => 'Mmaa retentam: wedeε ani a εda hᴐ kakra',
+    '🤼🏾‍♀' => 'Mmaa retentam: wedeε ani tuntum kakra',
+    '🤼🏿‍♀' => 'Mmaa retentam: wedeε ani tuntum',
+    '🤼🏻‍♂' => 'Mmarima retentam: wedeε ani a εda so',
+    '🤼🏼‍♂' => 'Mmarima retentam: wedeε ani a εda so kakra',
+    '🤼🏽‍♂' => 'Mmarima retentam: wedeε ani a εda hᴐ kakra',
+    '🤼🏾‍♂' => 'Mmarima retentam: wedeε ani tuntum kakra',
+    '🤼🏿‍♂' => 'Mmarima retentam: wedeε ani tuntum',
+    '🤽🏻‍♂' => 'Barima rebɔ polo nsuo: wedeε ani a εda so',
+    '🤽🏼‍♂' => 'Barima rebɔ polo nsuo: wedeε ani a εda so kakra',
+    '🤽🏽‍♂' => 'Barima rebɔ polo nsuo: wedeε ani a εda hᴐ kakra',
+    '🤽🏾‍♂' => 'Barima rebɔ polo nsuo: wedeε ani tuntum kakra',
+    '🤽🏿‍♂' => 'Barima rebɔ polo nsuo: wedeε ani tuntum',
+    '🤽🏻‍♀' => 'Ɔbaa rebɔ polo nsuo: wedeε ani a εda so',
+    '🤽🏼‍♀' => 'Ɔbaa rebɔ polo nsuo: wedeε ani a εda so kakra',
+    '🤽🏽‍♀' => 'Ɔbaa rebɔ polo nsuo: wedeε ani a εda hᴐ kakra',
+    '🤽🏾‍♀' => 'Ɔbaa rebɔ polo nsuo: wedeε ani tuntum kakra',
+    '🤽🏿‍♀' => 'Ɔbaa rebɔ polo nsuo: wedeε ani tuntum',
+    '🤾🏻‍♂' => 'Barima rebɔ nsabɔɔlo: wedeε ani a εda so',
+    '🤾🏼‍♂' => 'Barima rebɔ nsabɔɔlo: wedeε ani a εda so kakra',
+    '🤾🏽‍♂' => 'Barima rebɔ nsabɔɔlo: wedeε ani a εda hᴐ kakra',
+    '🤾🏾‍♂' => 'Barima rebɔ nsabɔɔlo: wedeε ani tuntum kakra',
+    '🤾🏿‍♂' => 'Barima rebɔ nsabɔɔlo: wedeε ani tuntum',
+    '🤾🏻‍♀' => 'Ɔbaa rebɔ nsabɔɔlo: wedeε ani a εda so',
+    '🤾🏼‍♀' => 'Ɔbaa rebɔ nsabɔɔlo: wedeε ani a εda so kakra',
+    '🤾🏽‍♀' => 'Ɔbaa rebɔ nsabɔɔlo: wedeε ani a εda hᴐ kakra',
+    '🤾🏾‍♀' => 'Ɔbaa rebɔ nsabɔɔlo: wedeε ani tuntum kakra',
+    '🤾🏿‍♀' => 'Ɔbaa rebɔ nsabɔɔlo: wedeε ani tuntum',
+    '🤹🏻‍♂' => 'Barima retoto bɔɔlo: wedeε ani a εda so',
+    '🤹🏼‍♂' => 'Barima retoto bɔɔlo: wedeε ani a εda so kakra',
+    '🤹🏽‍♂' => 'Barima retoto bɔɔlo: wedeε ani a εda hᴐ kakra',
+    '🤹🏾‍♂' => 'Barima retoto bɔɔlo: wedeε ani tuntum kakra',
+    '🤹🏿‍♂' => 'Barima retoto bɔɔlo: wedeε ani tuntum',
+    '🤹🏻‍♀' => 'Ɔbaa retoto bɔɔlo: wedeε ani a εda so',
+    '🤹🏼‍♀' => 'Ɔbaa retoto bɔɔlo: wedeε ani a εda so kakra',
+    '🤹🏽‍♀' => 'Ɔbaa retoto bɔɔlo: wedeε ani a εda hᴐ kakra',
+    '🤹🏾‍♀' => 'Ɔbaa retoto bɔɔlo: wedeε ani tuntum kakra',
+    '🤹🏿‍♀' => 'Ɔbaa retoto bɔɔlo: wedeε ani tuntum',
+    '🧘🏻‍♂' => 'Barima ayɛ lɔtusu posihyen: wedeε ani a εda so',
+    '🧘🏼‍♂' => 'Barima ayɛ lɔtusu posihyen: wedeε ani a εda so kakra',
+    '🧘🏽‍♂' => 'Barima ayɛ lɔtusu posihyen: wedeε ani a εda hᴐ kakra',
+    '🧘🏾‍♂' => 'Barima ayɛ lɔtusu posihyen: wedeε ani tuntum kakra',
+    '🧘🏿‍♂' => 'Barima ayɛ lɔtusu posihyen: wedeε ani tuntum',
+    '🧘🏻‍♀' => 'Ɔbaa ayɛ lɔtusu posihyen: wedeε ani a εda so',
+    '🧘🏼‍♀' => 'Ɔbaa ayɛ lɔtusu posihyen: wedeε ani a εda so kakra',
+    '🧘🏽‍♀' => 'Ɔbaa ayɛ lɔtusu posihyen: wedeε ani a εda hᴐ kakra',
+    '🧘🏾‍♀' => 'Ɔbaa ayɛ lɔtusu posihyen: wedeε ani tuntum kakra',
+    '🧘🏿‍♀' => 'Ɔbaa ayɛ lɔtusu posihyen: wedeε ani tuntum',
     '🧑‍🦰' => 'onipa: nwi kͻkͻͻ',
+    '🧑‍🦱' => 'onipa: enwi a akyinkyim',
     '🧑‍🦳' => 'onipa: nwi fitaa',
     '🧑‍🦲' => 'onipa: tipa',
     '👨‍🦰' => 'ɔbarima: nwi kͻkͻͻ',
+    '👨‍🦱' => 'ɔbarima: enwi a akyinkyim',
     '👨‍🦳' => 'ɔbarima: nwi fitaa',
     '👨‍🦲' => 'ɔbarima: tipa',
     '👩‍🦰' => 'maame: nwi kͻkͻͻ',
+    '👩‍🦱' => 'maame: enwi a akyinkyim',
     '👩‍🦳' => 'maame: nwi fitaa',
     '👩‍🦲' => 'maame: tipa',
-    '🚶‍➡' => 'Onipa renante rehwɛ nifa',
-    '🧎‍➡' => 'Obi abu nkotodwe rehwɛ nifa',
-    '🏃‍➡' => 'Obi retu mmirika rehwɛ nifa',
+    '🚶‍➡' => 'Onipa renante: rehwɛ nifa',
+    '🧎‍➡' => 'Obi abu nkotodwe: rehwɛ nifa',
+    '🏃‍➡' => 'Obi retu mmirika: rehwɛ nifa',
     '👨‍👦' => 'Abusua: ɔbarima ne barima',
     '👨‍👧' => 'Abusua: ɔbarima ne ɔbaa',
     '👩‍👦' => 'Abusua: maame ne barima',
@@ -289,6 +1567,7 @@
     '👩‍🦽' => 'Ɔbaa te manuaa hwiikyɛɛ mu',
     '🏃‍♂' => 'Barima retu mmirika',
     '🏃‍♀' => 'Ɔbaa retu mmirika',
+    '🧑‍🩰' => 'balee safoᴐ',
     '👯‍♂' => 'Mmarima a wɔwɔ adanko aso',
     '👯‍♀' => 'Mmaa a wɔwɔ adanko aso',
     '🧖‍♂' => 'Barima wɔ ɛhyew dan mu',
@@ -333,15 +1612,679 @@
     '🍄‍🟫' => 'mmire dodoe',
     '⛓‍💥' => 'nkyerewa a abubu',
     '🏳‍🌈' => 'nyankontͻn frankaa',
+    '🏳‍⚧' => 'transgender frankaa',
     '🏴‍☠' => 'ɛpo so korͻmfoͻ frankaa',
+    '👋🏻' => 'nsa a ɛrehim: wedeε ani a εda so',
+    '👋🏼' => 'nsa a ɛrehim: wedeε ani a εda so kakra',
+    '👋🏽' => 'nsa a ɛrehim: wedeε ani a εda hᴐ kakra',
+    '👋🏾' => 'nsa a ɛrehim: wedeε ani tuntum kakra',
+    '👋🏿' => 'nsa a ɛrehim: wedeε ani tuntum',
+    '🤚🏻' => 'nsa akyi a apagya: wedeε ani a εda so',
+    '🤚🏼' => 'nsa akyi a apagya: wedeε ani a εda so kakra',
+    '🤚🏽' => 'nsa akyi a apagya: wedeε ani a εda hᴐ kakra',
+    '🤚🏾' => 'nsa akyi a apagya: wedeε ani tuntum kakra',
+    '🤚🏿' => 'nsa akyi a apagya: wedeε ani tuntum',
+    '🖐🏻' => 'nsa ne nsateaa a abue: wedeε ani a εda so',
+    '🖐🏼' => 'nsa ne nsateaa a abue: wedeε ani a εda so kakra',
+    '🖐🏽' => 'nsa ne nsateaa a abue: wedeε ani a εda hᴐ kakra',
+    '🖐🏾' => 'nsa ne nsateaa a abue: wedeε ani tuntum kakra',
+    '🖐🏿' => 'nsa ne nsateaa a abue: wedeε ani tuntum',
+    '✋🏻' => 'nsa a apagya: wedeε ani a εda so',
+    '✋🏼' => 'nsa a apagya: wedeε ani a εda so kakra',
+    '✋🏽' => 'nsa a apagya: wedeε ani a εda hᴐ kakra',
+    '✋🏾' => 'nsa a apagya: wedeε ani tuntum kakra',
+    '✋🏿' => 'nsa a apagya: wedeε ani tuntum',
+    '🖖🏻' => 'vulcan nkyea: wedeε ani a εda so',
+    '🖖🏼' => 'vulcan nkyea: wedeε ani a εda so kakra',
+    '🖖🏽' => 'vulcan nkyea: wedeε ani a εda hᴐ kakra',
+    '🖖🏾' => 'vulcan nkyea: wedeε ani tuntum kakra',
+    '🖖🏿' => 'vulcan nkyea: wedeε ani tuntum',
+    '🫱🏻' => 'nsa nifa: wedeε ani a εda so',
+    '🫱🏼' => 'nsa nifa: wedeε ani a εda so kakra',
+    '🫱🏽' => 'nsa nifa: wedeε ani a εda hᴐ kakra',
+    '🫱🏾' => 'nsa nifa: wedeε ani tuntum kakra',
+    '🫱🏿' => 'nsa nifa: wedeε ani tuntum',
+    '🫲🏻' => 'nsa benkum: wedeε ani a εda so',
+    '🫲🏼' => 'nsa benkum: wedeε ani a εda so kakra',
+    '🫲🏽' => 'nsa benkum: wedeε ani a εda hᴐ kakra',
+    '🫲🏾' => 'nsa benkum: wedeε ani tuntum kakra',
+    '🫲🏿' => 'nsa benkum: wedeε ani tuntum',
+    '🫳🏻' => 'nsam hwɛ fam: wedeε ani a εda so',
+    '🫳🏼' => 'nsam hwɛ fam: wedeε ani a εda so kakra',
+    '🫳🏽' => 'nsam hwɛ fam: wedeε ani a εda hᴐ kakra',
+    '🫳🏾' => 'nsam hwɛ fam: wedeε ani tuntum kakra',
+    '🫳🏿' => 'nsam hwɛ fam: wedeε ani tuntum',
+    '🫴🏻' => 'nsam a ɛhwɛ soro: wedeε ani a εda so',
+    '🫴🏼' => 'nsam a ɛhwɛ soro: wedeε ani a εda so kakra',
+    '🫴🏽' => 'nsam a ɛhwɛ soro: wedeε ani a εda hᴐ kakra',
+    '🫴🏾' => 'nsam a ɛhwɛ soro: wedeε ani tuntum kakra',
+    '🫴🏿' => 'nsam a ɛhwɛ soro: wedeε ani tuntum',
+    '🫷🏻' => 'nsa repia kɔ benkum: wedeε ani a εda so',
+    '🫷🏼' => 'nsa repia kɔ benkum: wedeε ani a εda so kakra',
+    '🫷🏽' => 'nsa repia kɔ benkum: wedeε ani a εda hᴐ kakra',
+    '🫷🏾' => 'nsa repia kɔ benkum: wedeε ani tuntum kakra',
+    '🫷🏿' => 'nsa repia kɔ benkum: wedeε ani tuntum',
+    '🫸🏻' => 'nsa repia kɔ nifa: wedeε ani a εda so',
+    '🫸🏼' => 'nsa repia kɔ nifa: wedeε ani a εda so kakra',
+    '🫸🏽' => 'nsa repia kɔ nifa: wedeε ani a εda hᴐ kakra',
+    '🫸🏾' => 'nsa repia kɔ nifa: wedeε ani tuntum kakra',
+    '🫸🏿' => 'nsa repia kɔ nifa: wedeε ani tuntum',
+    '👌🏻' => 'OK nsa: wedeε ani a εda so',
+    '👌🏼' => 'OK nsa: wedeε ani a εda so kakra',
+    '👌🏽' => 'OK nsa: wedeε ani a εda hᴐ kakra',
+    '👌🏾' => 'OK nsa: wedeε ani tuntum kakra',
+    '👌🏿' => 'OK nsa: wedeε ani tuntum',
+    '🤌🏻' => 'nsateaa a amia: wedeε ani a εda so',
+    '🤌🏼' => 'nsateaa a amia: wedeε ani a εda so kakra',
+    '🤌🏽' => 'nsateaa a amia: wedeε ani a εda hᴐ kakra',
+    '🤌🏾' => 'nsateaa a amia: wedeε ani tuntum kakra',
+    '🤌🏿' => 'nsateaa a amia: wedeε ani tuntum',
+    '🤏🏻' => 'nsa a amia: wedeε ani a εda so',
+    '🤏🏼' => 'nsa a amia: wedeε ani a εda so kakra',
+    '🤏🏽' => 'nsa a amia: wedeε ani a εda hᴐ kakra',
+    '🤏🏾' => 'nsa a amia: wedeε ani tuntum kakra',
+    '🤏🏿' => 'nsa a amia: wedeε ani tuntum',
+    '✌🏻' => 'nkonimdie nsa: wedeε ani a εda so',
+    '✌🏼' => 'nkonimdie nsa: wedeε ani a εda so kakra',
+    '✌🏽' => 'nkonimdie nsa: wedeε ani a εda hᴐ kakra',
+    '✌🏾' => 'nkonimdie nsa: wedeε ani tuntum kakra',
+    '✌🏿' => 'nkonimdie nsa: wedeε ani tuntum',
+    '🤞🏻' => 'nsateaa a wɔde abankyere ho: wedeε ani a εda so',
+    '🤞🏼' => 'nsateaa a wɔde abankyere ho: wedeε ani a εda so kakra',
+    '🤞🏽' => 'nsateaa a wɔde abankyere ho: wedeε ani a εda hᴐ kakra',
+    '🤞🏾' => 'nsateaa a wɔde abankyere ho: wedeε ani tuntum kakra',
+    '🤞🏿' => 'nsateaa a wɔde abankyere ho: wedeε ani tuntum',
+    '🫰🏻' => 'nsa a wɔde akyerɛkyerɛkwan nsateaa ne kokuromotie abɔ mu: wedeε ani a εda so',
+    '🫰🏼' => 'nsa a wɔde akyerɛkyerɛkwan nsateaa ne kokuromotie abɔ mu: wedeε ani a εda so kakra',
+    '🫰🏽' => 'nsa a wɔde akyerɛkyerɛkwan nsateaa ne kokuromotie abɔ mu: wedeε ani a εda hᴐ kakra',
+    '🫰🏾' => 'nsa a wɔde akyerɛkyerɛkwan nsateaa ne kokuromotie abɔ mu: wedeε ani tuntum kakra',
+    '🫰🏿' => 'nsa a wɔde akyerɛkyerɛkwan nsateaa ne kokuromotie abɔ mu: wedeε ani tuntum',
+    '🤟🏻' => 'ɔdɔ-wo sɛnkyerɛnne: wedeε ani a εda so',
+    '🤟🏼' => 'ɔdɔ-wo sɛnkyerɛnne: wedeε ani a εda so kakra',
+    '🤟🏽' => 'ɔdɔ-wo sɛnkyerɛnne: wedeε ani a εda hᴐ kakra',
+    '🤟🏾' => 'ɔdɔ-wo sɛnkyerɛnne: wedeε ani tuntum kakra',
+    '🤟🏿' => 'ɔdɔ-wo sɛnkyerɛnne: wedeε ani tuntum',
+    '🤘🏻' => 'mmɛn no ho sɛnkyerɛnne: wedeε ani a εda so',
+    '🤘🏼' => 'mmɛn no ho sɛnkyerɛnne: wedeε ani a εda so kakra',
+    '🤘🏽' => 'mmɛn no ho sɛnkyerɛnne: wedeε ani a εda hᴐ kakra',
+    '🤘🏾' => 'mmɛn no ho sɛnkyerɛnne: wedeε ani tuntum kakra',
+    '🤘🏿' => 'mmɛn no ho sɛnkyerɛnne: wedeε ani tuntum',
+    '🤙🏻' => 'frɛ me nsa: wedeε ani a εda so',
+    '🤙🏼' => 'frɛ me nsa: wedeε ani a εda so kakra',
+    '🤙🏽' => 'frɛ me nsa: wedeε ani a εda hᴐ kakra',
+    '🤙🏾' => 'frɛ me nsa: wedeε ani tuntum kakra',
+    '🤙🏿' => 'frɛ me nsa: wedeε ani tuntum',
+    '👈🏻' => 'nsaakyi indɛse a ɛkyerɛ benkum so: wedeε ani a εda so',
+    '👈🏼' => 'nsaakyi indɛse a ɛkyerɛ benkum so: wedeε ani a εda so kakra',
+    '👈🏽' => 'nsaakyi indɛse a ɛkyerɛ benkum so: wedeε ani a εda hᴐ kakra',
+    '👈🏾' => 'nsaakyi indɛse a ɛkyerɛ benkum so: wedeε ani tuntum kakra',
+    '👈🏿' => 'nsaakyi indɛse a ɛkyerɛ benkum so: wedeε ani tuntum',
+    '👉🏻' => 'nsaakyi indɛse a ɛkyerɛ nifa so: wedeε ani a εda so',
+    '👉🏼' => 'nsaakyi indɛse a ɛkyerɛ nifa so: wedeε ani a εda so kakra',
+    '👉🏽' => 'nsaakyi indɛse a ɛkyerɛ nifa so: wedeε ani a εda hᴐ kakra',
+    '👉🏾' => 'nsaakyi indɛse a ɛkyerɛ nifa so: wedeε ani tuntum kakra',
+    '👉🏿' => 'nsaakyi indɛse a ɛkyerɛ nifa so: wedeε ani tuntum',
+    '👆🏻' => 'nsaakyi indɛse a ɛkyerɛ soro so: wedeε ani a εda so',
+    '👆🏼' => 'nsaakyi indɛse a ɛkyerɛ soro so: wedeε ani a εda so kakra',
+    '👆🏽' => 'nsaakyi indɛse a ɛkyerɛ soro so: wedeε ani a εda hᴐ kakra',
+    '👆🏾' => 'nsaakyi indɛse a ɛkyerɛ soro so: wedeε ani tuntum kakra',
+    '👆🏿' => 'nsaakyi indɛse a ɛkyerɛ soro so: wedeε ani tuntum',
+    '🖕🏻' => 'mfinimfini nsateaa: wedeε ani a εda so',
+    '🖕🏼' => 'mfinimfini nsateaa: wedeε ani a εda so kakra',
+    '🖕🏽' => 'mfinimfini nsateaa: wedeε ani a εda hᴐ kakra',
+    '🖕🏾' => 'mfinimfini nsateaa: wedeε ani tuntum kakra',
+    '🖕🏿' => 'mfinimfini nsateaa: wedeε ani tuntum',
+    '👇🏻' => 'nsaakyi indɛse rekyerɛ fam: wedeε ani a εda so',
+    '👇🏼' => 'nsaakyi indɛse rekyerɛ fam: wedeε ani a εda so kakra',
+    '👇🏽' => 'nsaakyi indɛse rekyerɛ fam: wedeε ani a εda hᴐ kakra',
+    '👇🏾' => 'nsaakyi indɛse rekyerɛ fam: wedeε ani tuntum kakra',
+    '👇🏿' => 'nsaakyi indɛse rekyerɛ fam: wedeε ani tuntum',
+    '☝🏻' => 'indɛse rekyerɛ soro: wedeε ani a εda so',
+    '☝🏼' => 'indɛse rekyerɛ soro: wedeε ani a εda so kakra',
+    '☝🏽' => 'indɛse rekyerɛ soro: wedeε ani a εda hᴐ kakra',
+    '☝🏾' => 'indɛse rekyerɛ soro: wedeε ani tuntum kakra',
+    '☝🏿' => 'indɛse rekyerɛ soro: wedeε ani tuntum',
+    '🫵🏻' => 'indɛse rekyerɛ ɔhwɛfoɔ no so: wedeε ani a εda so',
+    '🫵🏼' => 'indɛse rekyerɛ ɔhwɛfoɔ no so: wedeε ani a εda so kakra',
+    '🫵🏽' => 'indɛse rekyerɛ ɔhwɛfoɔ no so: wedeε ani a εda hᴐ kakra',
+    '🫵🏾' => 'indɛse rekyerɛ ɔhwɛfoɔ no so: wedeε ani tuntum kakra',
+    '🫵🏿' => 'indɛse rekyerɛ ɔhwɛfoɔ no so: wedeε ani tuntum',
+    '👍🏻' => 'kokuromotie a ɛkɔ soro: wedeε ani a εda so',
+    '👍🏼' => 'kokuromotie a ɛkɔ soro: wedeε ani a εda so kakra',
+    '👍🏽' => 'kokuromotie a ɛkɔ soro: wedeε ani a εda hᴐ kakra',
+    '👍🏾' => 'kokuromotie a ɛkɔ soro: wedeε ani tuntum kakra',
+    '👍🏿' => 'kokuromotie a ɛkɔ soro: wedeε ani tuntum',
+    '👎🏻' => 'kokuromotie a ɛkɔ fam: wedeε ani a εda so',
+    '👎🏼' => 'kokuromotie a ɛkɔ fam: wedeε ani a εda so kakra',
+    '👎🏽' => 'kokuromotie a ɛkɔ fam: wedeε ani a εda hᴐ kakra',
+    '👎🏾' => 'kokuromotie a ɛkɔ fam: wedeε ani tuntum kakra',
+    '👎🏿' => 'kokuromotie a ɛkɔ fam: wedeε ani tuntum',
+    '✊🏻' => 'twɛdeɛ a apagya: wedeε ani a εda so',
+    '✊🏼' => 'twɛdeɛ a apagya: wedeε ani a εda so kakra',
+    '✊🏽' => 'twɛdeɛ a apagya: wedeε ani a εda hᴐ kakra',
+    '✊🏾' => 'twɛdeɛ a apagya: wedeε ani tuntum kakra',
+    '✊🏿' => 'twɛdeɛ a apagya: wedeε ani tuntum',
+    '👊🏻' => 'twɛdeɛ a ɛreba: wedeε ani a εda so',
+    '👊🏼' => 'twɛdeɛ a ɛreba: wedeε ani a εda so kakra',
+    '👊🏽' => 'twɛdeɛ a ɛreba: wedeε ani a εda hᴐ kakra',
+    '👊🏾' => 'twɛdeɛ a ɛreba: wedeε ani tuntum kakra',
+    '👊🏿' => 'twɛdeɛ a ɛreba: wedeε ani tuntum',
+    '🤛🏻' => 'twɛdeɛ a ɛhwɛ benkum: wedeε ani a εda so',
+    '🤛🏼' => 'twɛdeɛ a ɛhwɛ benkum: wedeε ani a εda so kakra',
+    '🤛🏽' => 'twɛdeɛ a ɛhwɛ benkum: wedeε ani a εda hᴐ kakra',
+    '🤛🏾' => 'twɛdeɛ a ɛhwɛ benkum: wedeε ani tuntum kakra',
+    '🤛🏿' => 'twɛdeɛ a ɛhwɛ benkum: wedeε ani tuntum',
+    '🤜🏻' => 'twɛdeɛ a ɛhwɛ nifa: wedeε ani a εda so',
+    '🤜🏼' => 'twɛdeɛ a ɛhwɛ nifa: wedeε ani a εda so kakra',
+    '🤜🏽' => 'twɛdeɛ a ɛhwɛ nifa: wedeε ani a εda hᴐ kakra',
+    '🤜🏾' => 'twɛdeɛ a ɛhwɛ nifa: wedeε ani tuntum kakra',
+    '🤜🏿' => 'twɛdeɛ a ɛhwɛ nifa: wedeε ani tuntum',
+    '👏🏻' => 'nsa a ɛrebom: wedeε ani a εda so',
+    '👏🏼' => 'nsa a ɛrebom: wedeε ani a εda so kakra',
+    '👏🏽' => 'nsa a ɛrebom: wedeε ani a εda hᴐ kakra',
+    '👏🏾' => 'nsa a ɛrebom: wedeε ani tuntum kakra',
+    '👏🏿' => 'nsa a ɛrebom: wedeε ani tuntum',
+    '🙌🏻' => 'nsa a ɛrepagya: wedeε ani a εda so',
+    '🙌🏼' => 'nsa a ɛrepagya: wedeε ani a εda so kakra',
+    '🙌🏽' => 'nsa a ɛrepagya: wedeε ani a εda hᴐ kakra',
+    '🙌🏾' => 'nsa a ɛrepagya: wedeε ani tuntum kakra',
+    '🙌🏿' => 'nsa a ɛrepagya: wedeε ani tuntum',
+    '🫶🏻' => 'akoma nsa: wedeε ani a εda so',
+    '🫶🏼' => 'akoma nsa: wedeε ani a εda so kakra',
+    '🫶🏽' => 'akoma nsa: wedeε ani a εda hᴐ kakra',
+    '🫶🏾' => 'akoma nsa: wedeε ani tuntum kakra',
+    '🫶🏿' => 'akoma nsa: wedeε ani tuntum',
+    '👐🏻' => 'nsa a abue: wedeε ani a εda so',
+    '👐🏼' => 'nsa a abue: wedeε ani a εda so kakra',
+    '👐🏽' => 'nsa a abue: wedeε ani a εda hᴐ kakra',
+    '👐🏾' => 'nsa a abue: wedeε ani tuntum kakra',
+    '👐🏿' => 'nsa a abue: wedeε ani tuntum',
+    '🤲🏻' => 'nsateaa a ɛkɔ soro bom: wedeε ani a εda so',
+    '🤲🏼' => 'nsateaa a ɛkɔ soro bom: wedeε ani a εda so kakra',
+    '🤲🏽' => 'nsateaa a ɛkɔ soro bom: wedeε ani a εda hᴐ kakra',
+    '🤲🏾' => 'nsateaa a ɛkɔ soro bom: wedeε ani tuntum kakra',
+    '🤲🏿' => 'nsateaa a ɛkɔ soro bom: wedeε ani tuntum',
+    '🤝🏻' => 'nsamkyea: wedeε ani a εda so',
+    '🤝🏼' => 'nsamkyea: wedeε ani a εda so kakra',
+    '🤝🏽' => 'nsamkyea: wedeε ani a εda hᴐ kakra',
+    '🤝🏾' => 'nsamkyea: wedeε ani tuntum kakra',
+    '🤝🏿' => 'nsamkyea: wedeε ani tuntum',
+    '🙏🏻' => 'nsa a aka abom: wedeε ani a εda so',
+    '🙏🏼' => 'nsa a aka abom: wedeε ani a εda so kakra',
+    '🙏🏽' => 'nsa a aka abom: wedeε ani a εda hᴐ kakra',
+    '🙏🏾' => 'nsa a aka abom: wedeε ani tuntum kakra',
+    '🙏🏿' => 'nsa a aka abom: wedeε ani tuntum',
+    '✍🏻' => 'nsa a wɔde twerɛ nsɛm: wedeε ani a εda so',
+    '✍🏼' => 'nsa a wɔde twerɛ nsɛm: wedeε ani a εda so kakra',
+    '✍🏽' => 'nsa a wɔde twerɛ nsɛm: wedeε ani a εda hᴐ kakra',
+    '✍🏾' => 'nsa a wɔde twerɛ nsɛm: wedeε ani tuntum kakra',
+    '✍🏿' => 'nsa a wɔde twerɛ nsɛm: wedeε ani tuntum',
+    '💅🏻' => 'mmɔwerɛ pɔlihye: wedeε ani a εda so',
+    '💅🏼' => 'mmɔwerɛ pɔlihye: wedeε ani a εda so kakra',
+    '💅🏽' => 'mmɔwerɛ pɔlihye: wedeε ani a εda hᴐ kakra',
+    '💅🏾' => 'mmɔwerɛ pɔlihye: wedeε ani tuntum kakra',
+    '💅🏿' => 'mmɔwerɛ pɔlihye: wedeε ani tuntum',
+    '🤳🏻' => 'selfie: wedeε ani a εda so',
+    '🤳🏼' => 'selfie: wedeε ani a εda so kakra',
+    '🤳🏽' => 'selfie: wedeε ani a εda hᴐ kakra',
+    '🤳🏾' => 'selfie: wedeε ani tuntum kakra',
+    '🤳🏿' => 'selfie: wedeε ani tuntum',
+    '💪🏻' => 'baasɛpse a aflɛse: wedeε ani a εda so',
+    '💪🏼' => 'baasɛpse a aflɛse: wedeε ani a εda so kakra',
+    '💪🏽' => 'baasɛpse a aflɛse: wedeε ani a εda hᴐ kakra',
+    '💪🏾' => 'baasɛpse a aflɛse: wedeε ani tuntum kakra',
+    '💪🏿' => 'baasɛpse a aflɛse: wedeε ani tuntum',
+    '🦵🏻' => 'nan: wedeε ani a εda so',
+    '🦵🏼' => 'nan: wedeε ani a εda so kakra',
+    '🦵🏽' => 'nan: wedeε ani a εda hᴐ kakra',
+    '🦵🏾' => 'nan: wedeε ani tuntum kakra',
+    '🦵🏿' => 'nan: wedeε ani tuntum',
+    '🦶🏻' => 'nan ase: wedeε ani a εda so',
+    '🦶🏼' => 'nan ase: wedeε ani a εda so kakra',
+    '🦶🏽' => 'nan ase: wedeε ani a εda hᴐ kakra',
+    '🦶🏾' => 'nan ase: wedeε ani tuntum kakra',
+    '🦶🏿' => 'nan ase: wedeε ani tuntum',
+    '👂🏻' => 'aso: wedeε ani a εda so',
+    '👂🏼' => 'aso: wedeε ani a εda so kakra',
+    '👂🏽' => 'aso: wedeε ani a εda hᴐ kakra',
+    '👂🏾' => 'aso: wedeε ani tuntum kakra',
+    '👂🏿' => 'aso: wedeε ani tuntum',
+    '🦻🏻' => 'aso ne otie eede: wedeε ani a εda so',
+    '🦻🏼' => 'aso ne otie eede: wedeε ani a εda so kakra',
+    '🦻🏽' => 'aso ne otie eede: wedeε ani a εda hᴐ kakra',
+    '🦻🏾' => 'aso ne otie eede: wedeε ani tuntum kakra',
+    '🦻🏿' => 'aso ne otie eede: wedeε ani tuntum',
+    '👃🏻' => 'hwene: wedeε ani a εda so',
+    '👃🏼' => 'hwene: wedeε ani a εda so kakra',
+    '👃🏽' => 'hwene: wedeε ani a εda hᴐ kakra',
+    '👃🏾' => 'hwene: wedeε ani tuntum kakra',
+    '👃🏿' => 'hwene: wedeε ani tuntum',
+    '👶🏻' => 'abɔfra: wedeε ani a εda so',
+    '👶🏼' => 'abɔfra: wedeε ani a εda so kakra',
+    '👶🏽' => 'abɔfra: wedeε ani a εda hᴐ kakra',
+    '👶🏾' => 'abɔfra: wedeε ani tuntum kakra',
+    '👶🏿' => 'abɔfra: wedeε ani tuntum',
+    '🧒🏻' => 'akwadaa: wedeε ani a εda so',
+    '🧒🏼' => 'akwadaa: wedeε ani a εda so kakra',
+    '🧒🏽' => 'akwadaa: wedeε ani a εda hᴐ kakra',
+    '🧒🏾' => 'akwadaa: wedeε ani tuntum kakra',
+    '🧒🏿' => 'akwadaa: wedeε ani tuntum',
+    '👦🏻' => 'barima: wedeε ani a εda so',
+    '👦🏼' => 'barima: wedeε ani a εda so kakra',
+    '👦🏽' => 'barima: wedeε ani a εda hᴐ kakra',
+    '👦🏾' => 'barima: wedeε ani tuntum kakra',
+    '👦🏿' => 'barima: wedeε ani tuntum',
+    '👧🏻' => 'ɔbaa: wedeε ani a εda so',
+    '👧🏼' => 'ɔbaa: wedeε ani a εda so kakra',
+    '👧🏽' => 'ɔbaa: wedeε ani a εda hᴐ kakra',
+    '👧🏾' => 'ɔbaa: wedeε ani tuntum kakra',
+    '👧🏿' => 'ɔbaa: wedeε ani tuntum',
+    '🧑🏻' => 'onipa: wedeε ani a εda so',
+    '🧑🏼' => 'onipa: wedeε ani a εda so kakra',
+    '🧑🏽' => 'onipa: wedeε ani a εda hᴐ kakra',
+    '🧑🏾' => 'onipa: wedeε ani tuntum kakra',
+    '🧑🏿' => 'onipa: wedeε ani tuntum',
+    '👱🏻' => 'onipa: wedeε ani a εda so ne nwii kɔkɔɔ',
+    '👱🏼' => 'onipa: wedeε ani a εda so kakra ne nwii kɔkɔɔ',
+    '👱🏽' => 'onipa: wedeε ani a εda hᴐ kakra ne nwii kɔkɔɔ',
+    '👱🏾' => 'onipa: wedeε ani tuntum kakra ne nwii kɔkɔɔ',
+    '👱🏿' => 'onipa: wedeε ani tuntum ne nwii kɔkɔɔ',
+    '👨🏻' => 'ɔbarima: wedeε ani a εda so',
+    '👨🏼' => 'ɔbarima: wedeε ani a εda so kakra',
+    '👨🏽' => 'ɔbarima: wedeε ani a εda hᴐ kakra',
+    '👨🏾' => 'ɔbarima: wedeε ani tuntum kakra',
+    '👨🏿' => 'ɔbarima: wedeε ani tuntum',
+    '🧔🏻' => 'onipa: wedeε ani a εda so ne abodwesɛ',
+    '🧔🏼' => 'onipa: wedeε ani a εda so kakra ne abodwesɛ',
+    '🧔🏽' => 'onipa: wedeε ani a εda hᴐ kakra ne abodwesɛ',
+    '🧔🏾' => 'onipa: wedeε ani tuntum kakra ne abodwesɛ',
+    '🧔🏿' => 'onipa: wedeε ani tuntum ne abodwesɛ',
+    '👩🏻' => 'maame: wedeε ani a εda so',
+    '👩🏼' => 'maame: wedeε ani a εda so kakra',
+    '👩🏽' => 'maame: wedeε ani a εda hᴐ kakra',
+    '👩🏾' => 'maame: wedeε ani tuntum kakra',
+    '👩🏿' => 'maame: wedeε ani tuntum',
+    '🧓🏻' => 'Onipa a wanyini: wedeε ani a εda so',
+    '🧓🏼' => 'Onipa a wanyini: wedeε ani a εda so kakra',
+    '🧓🏽' => 'Onipa a wanyini: wedeε ani a εda hᴐ kakra',
+    '🧓🏾' => 'Onipa a wanyini: wedeε ani tuntum kakra',
+    '🧓🏿' => 'Onipa a wanyini: wedeε ani tuntum',
+    '👴🏻' => 'akwakora: wedeε ani a εda so',
+    '👴🏼' => 'akwakora: wedeε ani a εda so kakra',
+    '👴🏽' => 'akwakora: wedeε ani a εda hᴐ kakra',
+    '👴🏾' => 'akwakora: wedeε ani tuntum kakra',
+    '👴🏿' => 'akwakora: wedeε ani tuntum',
+    '👵🏻' => 'abrewa: wedeε ani a εda so',
+    '👵🏼' => 'abrewa: wedeε ani a εda so kakra',
+    '👵🏽' => 'abrewa: wedeε ani a εda hᴐ kakra',
+    '👵🏾' => 'abrewa: wedeε ani tuntum kakra',
+    '👵🏿' => 'abrewa: wedeε ani tuntum',
+    '🙍🏻' => 'onipa a wamuna: wedeε ani a εda so',
+    '🙍🏼' => 'onipa a wamuna: wedeε ani a εda so kakra',
+    '🙍🏽' => 'onipa a wamuna: wedeε ani a εda hᴐ kakra',
+    '🙍🏾' => 'onipa a wamuna: wedeε ani tuntum kakra',
+    '🙍🏿' => 'onipa a wamuna: wedeε ani tuntum',
+    '🙎🏻' => 'onipa pɔɔtine: wedeε ani a εda so',
+    '🙎🏼' => 'onipa pɔɔtine: wedeε ani a εda so kakra',
+    '🙎🏽' => 'onipa pɔɔtine: wedeε ani a εda hᴐ kakra',
+    '🙎🏾' => 'onipa pɔɔtine: wedeε ani tuntum kakra',
+    '🙎🏿' => 'onipa pɔɔtine: wedeε ani tuntum',
+    '🙅🏻' => 'onipa reyɛ DAABI nsɛnkyerɛnne: wedeε ani a εda so',
+    '🙅🏼' => 'onipa reyɛ DAABI nsɛnkyerɛnne: wedeε ani a εda so kakra',
+    '🙅🏽' => 'onipa reyɛ DAABI nsɛnkyerɛnne: wedeε ani a εda hᴐ kakra',
+    '🙅🏾' => 'onipa reyɛ DAABI nsɛnkyerɛnne: wedeε ani tuntum kakra',
+    '🙅🏿' => 'onipa reyɛ DAABI nsɛnkyerɛnne: wedeε ani tuntum',
+    '🙆🏻' => 'onipa reyɛ OK nsɛnkyerɛnne: wedeε ani a εda so',
+    '🙆🏼' => 'onipa reyɛ OK nsɛnkyerɛnne: wedeε ani a εda so kakra',
+    '🙆🏽' => 'onipa reyɛ OK nsɛnkyerɛnne: wedeε ani a εda hᴐ kakra',
+    '🙆🏾' => 'onipa reyɛ OK nsɛnkyerɛnne: wedeε ani tuntum kakra',
+    '🙆🏿' => 'onipa reyɛ OK nsɛnkyerɛnne: wedeε ani tuntum',
+    '💁🏻' => 'onipa tiipi nsa: wedeε ani a εda so',
+    '💁🏼' => 'onipa tiipi nsa: wedeε ani a εda so kakra',
+    '💁🏽' => 'onipa tiipi nsa: wedeε ani a εda hᴐ kakra',
+    '💁🏾' => 'onipa tiipi nsa: wedeε ani tuntum kakra',
+    '💁🏿' => 'onipa tiipi nsa: wedeε ani tuntum',
+    '🙋🏻' => 'onipa repagya nsa: wedeε ani a εda so',
+    '🙋🏼' => 'onipa repagya nsa: wedeε ani a εda so kakra',
+    '🙋🏽' => 'onipa repagya nsa: wedeε ani a εda hᴐ kakra',
+    '🙋🏾' => 'onipa repagya nsa: wedeε ani tuntum kakra',
+    '🙋🏿' => 'onipa repagya nsa: wedeε ani tuntum',
+    '🧏🏻' => 'ɛmum: wedeε ani a εda so',
+    '🧏🏼' => 'ɛmum: wedeε ani a εda so kakra',
+    '🧏🏽' => 'ɛmum: wedeε ani a εda hᴐ kakra',
+    '🧏🏾' => 'ɛmum: wedeε ani tuntum kakra',
+    '🧏🏿' => 'ɛmum: wedeε ani tuntum',
+    '🙇🏻' => 'onipa rebɔ ne mu ase: wedeε ani a εda so',
+    '🙇🏼' => 'onipa rebɔ ne mu ase: wedeε ani a εda so kakra',
+    '🙇🏽' => 'onipa rebɔ ne mu ase: wedeε ani a εda hᴐ kakra',
+    '🙇🏾' => 'onipa rebɔ ne mu ase: wedeε ani tuntum kakra',
+    '🙇🏿' => 'onipa rebɔ ne mu ase: wedeε ani tuntum',
+    '🤦🏻' => 'onipa de ne nsam ato n’anim: wedeε ani a εda so',
+    '🤦🏼' => 'onipa de ne nsam ato n’anim: wedeε ani a εda so kakra',
+    '🤦🏽' => 'onipa de ne nsam ato n’anim: wedeε ani a εda hᴐ kakra',
+    '🤦🏾' => 'onipa de ne nsam ato n’anim: wedeε ani tuntum kakra',
+    '🤦🏿' => 'onipa de ne nsam ato n’anim: wedeε ani tuntum',
+    '🤷🏻' => 'onipa repagya ne mmati: wedeε ani a εda so',
+    '🤷🏼' => 'onipa repagya ne mmati: wedeε ani a εda so kakra',
+    '🤷🏽' => 'onipa repagya ne mmati: wedeε ani a εda hᴐ kakra',
+    '🤷🏾' => 'onipa repagya ne mmati: wedeε ani tuntum kakra',
+    '🤷🏿' => 'onipa repagya ne mmati: wedeε ani tuntum',
+    '👮🏻' => 'Polisi ɔfesa: wedeε ani a εda so',
+    '👮🏼' => 'Polisi ɔfesa: wedeε ani a εda so kakra',
+    '👮🏽' => 'Polisi ɔfesa: wedeε ani a εda hᴐ kakra',
+    '👮🏾' => 'Polisi ɔfesa: wedeε ani tuntum kakra',
+    '👮🏿' => 'Polisi ɔfesa: wedeε ani tuntum',
+    '🕵🏻' => 'detɛketifo: wedeε ani a εda so',
+    '🕵🏼' => 'detɛketifo: wedeε ani a εda so kakra',
+    '🕵🏽' => 'detɛketifo: wedeε ani a εda hᴐ kakra',
+    '🕵🏾' => 'detɛketifo: wedeε ani tuntum kakra',
+    '🕵🏿' => 'detɛketifo: wedeε ani tuntum',
+    '💂🏻' => 'Banbɔfo: wedeε ani a εda so',
+    '💂🏼' => 'Banbɔfo: wedeε ani a εda so kakra',
+    '💂🏽' => 'Banbɔfo: wedeε ani a εda hᴐ kakra',
+    '💂🏾' => 'Banbɔfo: wedeε ani tuntum kakra',
+    '💂🏿' => 'Banbɔfo: wedeε ani tuntum',
+    '🥷🏻' => 'Ningya: wedeε ani a εda so',
+    '🥷🏼' => 'Ningya: wedeε ani a εda so kakra',
+    '🥷🏽' => 'Ningya: wedeε ani a εda hᴐ kakra',
+    '🥷🏾' => 'Ningya: wedeε ani tuntum kakra',
+    '🥷🏿' => 'Ningya: wedeε ani tuntum',
+    '👷🏻' => 'Adansie dwumayɛni: wedeε ani a εda so',
+    '👷🏼' => 'Adansie dwumayɛni: wedeε ani a εda so kakra',
+    '👷🏽' => 'Adansie dwumayɛni: wedeε ani a εda hᴐ kakra',
+    '👷🏾' => 'Adansie dwumayɛni: wedeε ani tuntum kakra',
+    '👷🏿' => 'Adansie dwumayɛni: wedeε ani tuntum',
+    '🫅🏻' => 'Obi a ɔhyɛ ahenkyɛ: wedeε ani a εda so',
+    '🫅🏼' => 'Obi a ɔhyɛ ahenkyɛ: wedeε ani a εda so kakra',
+    '🫅🏽' => 'Obi a ɔhyɛ ahenkyɛ: wedeε ani a εda hᴐ kakra',
+    '🫅🏾' => 'Obi a ɔhyɛ ahenkyɛ: wedeε ani tuntum kakra',
+    '🫅🏿' => 'Obi a ɔhyɛ ahenkyɛ: wedeε ani tuntum',
+    '🤴🏻' => 'Prense: wedeε ani a εda so',
+    '🤴🏼' => 'Prense: wedeε ani a εda so kakra',
+    '🤴🏽' => 'Prense: wedeε ani a εda hᴐ kakra',
+    '🤴🏾' => 'Prense: wedeε ani tuntum kakra',
+    '🤴🏿' => 'Prense: wedeε ani tuntum',
+    '👸🏻' => 'prensɛse: wedeε ani a εda so',
+    '👸🏼' => 'prensɛse: wedeε ani a εda so kakra',
+    '👸🏽' => 'prensɛse: wedeε ani a εda hᴐ kakra',
+    '👸🏾' => 'prensɛse: wedeε ani tuntum kakra',
+    '👸🏿' => 'prensɛse: wedeε ani tuntum',
+    '👳🏻' => 'Obi hyɛ tɛɛban: wedeε ani a εda so',
+    '👳🏼' => 'Obi hyɛ tɛɛban: wedeε ani a εda so kakra',
+    '👳🏽' => 'Obi hyɛ tɛɛban: wedeε ani a εda hᴐ kakra',
+    '👳🏾' => 'Obi hyɛ tɛɛban: wedeε ani tuntum kakra',
+    '👳🏿' => 'Obi hyɛ tɛɛban: wedeε ani tuntum',
+    '👲🏻' => 'Obi a ɔhyɛ skɔɔlekap: wedeε ani a εda so',
+    '👲🏼' => 'Obi a ɔhyɛ skɔɔlekap: wedeε ani a εda so kakra',
+    '👲🏽' => 'Obi a ɔhyɛ skɔɔlekap: wedeε ani a εda hᴐ kakra',
+    '👲🏾' => 'Obi a ɔhyɛ skɔɔlekap: wedeε ani tuntum kakra',
+    '👲🏿' => 'Obi a ɔhyɛ skɔɔlekap: wedeε ani tuntum',
+    '🧕🏻' => 'Ɔbaa wabɔ duku: wedeε ani a εda so',
+    '🧕🏼' => 'Ɔbaa wabɔ duku: wedeε ani a εda so kakra',
+    '🧕🏽' => 'Ɔbaa wabɔ duku: wedeε ani a εda hᴐ kakra',
+    '🧕🏾' => 'Ɔbaa wabɔ duku: wedeε ani tuntum kakra',
+    '🧕🏿' => 'Ɔbaa wabɔ duku: wedeε ani tuntum',
+    '🤵🏻' => 'Obi a ɔhyɛ tɔseedo: wedeε ani a εda so',
+    '🤵🏼' => 'Obi a ɔhyɛ tɔseedo: wedeε ani a εda so kakra',
+    '🤵🏽' => 'Obi a ɔhyɛ tɔseedo: wedeε ani a εda hᴐ kakra',
+    '🤵🏾' => 'Obi a ɔhyɛ tɔseedo: wedeε ani tuntum kakra',
+    '🤵🏿' => 'Obi a ɔhyɛ tɔseedo: wedeε ani tuntum',
+    '👰🏻' => 'Obi ne veil: wedeε ani a εda so',
+    '👰🏼' => 'Obi ne veil: wedeε ani a εda so kakra',
+    '👰🏽' => 'Obi ne veil: wedeε ani a εda hᴐ kakra',
+    '👰🏾' => 'Obi ne veil: wedeε ani tuntum kakra',
+    '👰🏿' => 'Obi ne veil: wedeε ani tuntum',
+    '🤰🏻' => 'Ɔbaa a ɔnyem: wedeε ani a εda so',
+    '🤰🏼' => 'Ɔbaa a ɔnyem: wedeε ani a εda so kakra',
+    '🤰🏽' => 'Ɔbaa a ɔnyem: wedeε ani a εda hᴐ kakra',
+    '🤰🏾' => 'Ɔbaa a ɔnyem: wedeε ani tuntum kakra',
+    '🤰🏿' => 'Ɔbaa a ɔnyem: wedeε ani tuntum',
+    '🫃🏻' => 'Barima a ɔnyem: wedeε ani a εda so',
+    '🫃🏼' => 'Barima a ɔnyem: wedeε ani a εda so kakra',
+    '🫃🏽' => 'Barima a ɔnyem: wedeε ani a εda hᴐ kakra',
+    '🫃🏾' => 'Barima a ɔnyem: wedeε ani tuntum kakra',
+    '🫃🏿' => 'Barima a ɔnyem: wedeε ani tuntum',
+    '🫄🏻' => 'Obi a ɔnyem: wedeε ani a εda so',
+    '🫄🏼' => 'Obi a ɔnyem: wedeε ani a εda so kakra',
+    '🫄🏽' => 'Obi a ɔnyem: wedeε ani a εda hᴐ kakra',
+    '🫄🏾' => 'Obi a ɔnyem: wedeε ani tuntum kakra',
+    '🫄🏿' => 'Obi a ɔnyem: wedeε ani tuntum',
+    '🤱🏻' => 'nufuoɔma: wedeε ani a εda so',
+    '🤱🏼' => 'nufuoɔma: wedeε ani a εda so kakra',
+    '🤱🏽' => 'nufuoɔma: wedeε ani a εda hᴐ kakra',
+    '🤱🏾' => 'nufuoɔma: wedeε ani tuntum kakra',
+    '🤱🏿' => 'nufuoɔma: wedeε ani tuntum',
+    '👼🏻' => 'Ɔbɔfoɔ akwadaa: wedeε ani a εda so',
+    '👼🏼' => 'Ɔbɔfoɔ akwadaa: wedeε ani a εda so kakra',
+    '👼🏽' => 'Ɔbɔfoɔ akwadaa: wedeε ani a εda hᴐ kakra',
+    '👼🏾' => 'Ɔbɔfoɔ akwadaa: wedeε ani tuntum kakra',
+    '👼🏿' => 'Ɔbɔfoɔ akwadaa: wedeε ani tuntum',
+    '🎅🏻' => 'Santa Klauso: wedeε ani a εda so',
+    '🎅🏼' => 'Santa Klauso: wedeε ani a εda so kakra',
+    '🎅🏽' => 'Santa Klauso: wedeε ani a εda hᴐ kakra',
+    '🎅🏾' => 'Santa Klauso: wedeε ani tuntum kakra',
+    '🎅🏿' => 'Santa Klauso: wedeε ani tuntum',
+    '🤶🏻' => 'Mrs. Klauso: wedeε ani a εda so',
+    '🤶🏼' => 'Mrs. Klauso: wedeε ani a εda so kakra',
+    '🤶🏽' => 'Mrs. Klauso: wedeε ani a εda hᴐ kakra',
+    '🤶🏾' => 'Mrs. Klauso: wedeε ani tuntum kakra',
+    '🤶🏿' => 'Mrs. Klauso: wedeε ani tuntum',
+    '🦸🏻' => 'Supahero: wedeε ani a εda so',
+    '🦸🏼' => 'Supahero: wedeε ani a εda so kakra',
+    '🦸🏽' => 'Supahero: wedeε ani a εda hᴐ kakra',
+    '🦸🏾' => 'Supahero: wedeε ani tuntum kakra',
+    '🦸🏿' => 'Supahero: wedeε ani tuntum',
+    '🦹🏻' => 'Supaviliane: wedeε ani a εda so',
+    '🦹🏼' => 'Supaviliane: wedeε ani a εda so kakra',
+    '🦹🏽' => 'Supaviliane: wedeε ani a εda hᴐ kakra',
+    '🦹🏾' => 'Supaviliane: wedeε ani tuntum kakra',
+    '🦹🏿' => 'Supaviliane: wedeε ani tuntum',
+    '🧙🏻' => 'nkonyaayifoͻ: wedeε ani a εda so',
+    '🧙🏼' => 'nkonyaayifoͻ: wedeε ani a εda so kakra',
+    '🧙🏽' => 'nkonyaayifoͻ: wedeε ani a εda hᴐ kakra',
+    '🧙🏾' => 'nkonyaayifoͻ: wedeε ani tuntum kakra',
+    '🧙🏿' => 'nkonyaayifoͻ: wedeε ani tuntum',
+    '🧚🏻' => 'Fɛɛre: wedeε ani a εda so',
+    '🧚🏼' => 'Fɛɛre: wedeε ani a εda so kakra',
+    '🧚🏽' => 'Fɛɛre: wedeε ani a εda hᴐ kakra',
+    '🧚🏾' => 'Fɛɛre: wedeε ani tuntum kakra',
+    '🧚🏿' => 'Fɛɛre: wedeε ani tuntum',
+    '🧛🏻' => 'Vampaya: wedeε ani a εda so',
+    '🧛🏼' => 'Vampaya: wedeε ani a εda so kakra',
+    '🧛🏽' => 'Vampaya: wedeε ani a εda hᴐ kakra',
+    '🧛🏾' => 'Vampaya: wedeε ani tuntum kakra',
+    '🧛🏿' => 'Vampaya: wedeε ani tuntum',
+    '🧜🏻' => 'Mɛɛnipa: wedeε ani a εda so',
+    '🧜🏼' => 'Mɛɛnipa: wedeε ani a εda so kakra',
+    '🧜🏽' => 'Mɛɛnipa: wedeε ani a εda hᴐ kakra',
+    '🧜🏾' => 'Mɛɛnipa: wedeε ani tuntum kakra',
+    '🧜🏿' => 'Mɛɛnipa: wedeε ani tuntum',
+    '🧝🏻' => 'ɛlefo: wedeε ani a εda so',
+    '🧝🏼' => 'ɛlefo: wedeε ani a εda so kakra',
+    '🧝🏽' => 'ɛlefo: wedeε ani a εda hᴐ kakra',
+    '🧝🏾' => 'ɛlefo: wedeε ani tuntum kakra',
+    '🧝🏿' => 'ɛlefo: wedeε ani tuntum',
+    '💆🏻' => 'Onipa renya amiamia: wedeε ani a εda so',
+    '💆🏼' => 'Onipa renya amiamia: wedeε ani a εda so kakra',
+    '💆🏽' => 'Onipa renya amiamia: wedeε ani a εda hᴐ kakra',
+    '💆🏾' => 'Onipa renya amiamia: wedeε ani tuntum kakra',
+    '💆🏿' => 'Onipa renya amiamia: wedeε ani tuntum',
+    '💇🏻' => 'Wɔretwa obi nwii: wedeε ani a εda so',
+    '💇🏼' => 'Wɔretwa obi nwii: wedeε ani a εda so kakra',
+    '💇🏽' => 'Wɔretwa obi nwii: wedeε ani a εda hᴐ kakra',
+    '💇🏾' => 'Wɔretwa obi nwii: wedeε ani tuntum kakra',
+    '💇🏿' => 'Wɔretwa obi nwii: wedeε ani tuntum',
+    '🚶🏻' => 'Onipa renante: wedeε ani a εda so',
+    '🚶🏼' => 'Onipa renante: wedeε ani a εda so kakra',
+    '🚶🏽' => 'Onipa renante: wedeε ani a εda hᴐ kakra',
+    '🚶🏾' => 'Onipa renante: wedeε ani tuntum kakra',
+    '🚶🏿' => 'Onipa renante: wedeε ani tuntum',
+    '🧍🏻' => 'Onipa gyina hɔ: wedeε ani a εda so',
+    '🧍🏼' => 'Onipa gyina hɔ: wedeε ani a εda so kakra',
+    '🧍🏽' => 'Onipa gyina hɔ: wedeε ani a εda hᴐ kakra',
+    '🧍🏾' => 'Onipa gyina hɔ: wedeε ani tuntum kakra',
+    '🧍🏿' => 'Onipa gyina hɔ: wedeε ani tuntum',
+    '🧎🏻' => 'Obi abu nkotodwe: wedeε ani a εda so',
+    '🧎🏼' => 'Obi abu nkotodwe: wedeε ani a εda so kakra',
+    '🧎🏽' => 'Obi abu nkotodwe: wedeε ani a εda hᴐ kakra',
+    '🧎🏾' => 'Obi abu nkotodwe: wedeε ani tuntum kakra',
+    '🧎🏿' => 'Obi abu nkotodwe: wedeε ani tuntum',
+    '🏃🏻' => 'Obi retu mmirika: wedeε ani a εda so',
+    '🏃🏼' => 'Obi retu mmirika: wedeε ani a εda so kakra',
+    '🏃🏽' => 'Obi retu mmirika: wedeε ani a εda hᴐ kakra',
+    '🏃🏾' => 'Obi retu mmirika: wedeε ani tuntum kakra',
+    '🏃🏿' => 'Obi retu mmirika: wedeε ani tuntum',
+    '💃🏻' => 'Ɔbaa resa: wedeε ani a εda so',
+    '💃🏼' => 'Ɔbaa resa: wedeε ani a εda so kakra',
+    '💃🏽' => 'Ɔbaa resa: wedeε ani a εda hᴐ kakra',
+    '💃🏾' => 'Ɔbaa resa: wedeε ani tuntum kakra',
+    '💃🏿' => 'Ɔbaa resa: wedeε ani tuntum',
+    '🕺🏻' => 'Barima resa: wedeε ani a εda so',
+    '🕺🏼' => 'Barima resa: wedeε ani a εda so kakra',
+    '🕺🏽' => 'Barima resa: wedeε ani a εda hᴐ kakra',
+    '🕺🏾' => 'Barima resa: wedeε ani tuntum kakra',
+    '🕺🏿' => 'Barima resa: wedeε ani tuntum',
+    '🕴🏻' => 'Obi hyɛ suutu retu kɔ soro: wedeε ani a εda so',
+    '🕴🏼' => 'Obi hyɛ suutu retu kɔ soro: wedeε ani a εda so kakra',
+    '🕴🏽' => 'Obi hyɛ suutu retu kɔ soro: wedeε ani a εda hᴐ kakra',
+    '🕴🏾' => 'Obi hyɛ suutu retu kɔ soro: wedeε ani tuntum kakra',
+    '🕴🏿' => 'Obi hyɛ suutu retu kɔ soro: wedeε ani tuntum',
+    '👯🏻' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda so',
+    '👯🏼' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda so kakra',
+    '👯🏽' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani a εda hᴐ kakra',
+    '👯🏾' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani tuntum kakra',
+    '👯🏿' => 'Nkurɔfoɔ wɔ adanko aso: wedeε ani tuntum',
+    '🧖🏻' => 'Obi wɔ ɛhyew dan mu: wedeε ani a εda so',
+    '🧖🏼' => 'Obi wɔ ɛhyew dan mu: wedeε ani a εda so kakra',
+    '🧖🏽' => 'Obi wɔ ɛhyew dan mu: wedeε ani a εda hᴐ kakra',
+    '🧖🏾' => 'Obi wɔ ɛhyew dan mu: wedeε ani tuntum kakra',
+    '🧖🏿' => 'Obi wɔ ɛhyew dan mu: wedeε ani tuntum',
+    '🧗🏻' => 'Obi reforo: wedeε ani a εda so',
+    '🧗🏼' => 'Obi reforo: wedeε ani a εda so kakra',
+    '🧗🏽' => 'Obi reforo: wedeε ani a εda hᴐ kakra',
+    '🧗🏾' => 'Obi reforo: wedeε ani tuntum kakra',
+    '🧗🏿' => 'Obi reforo: wedeε ani tuntum',
+    '🏇🏻' => 'Pɔnko akansie: wedeε ani a εda so',
+    '🏇🏼' => 'Pɔnko akansie: wedeε ani a εda so kakra',
+    '🏇🏽' => 'Pɔnko akansie: wedeε ani a εda hᴐ kakra',
+    '🏇🏾' => 'Pɔnko akansie: wedeε ani tuntum kakra',
+    '🏇🏿' => 'Pɔnko akansie: wedeε ani tuntum',
+    '🏂🏻' => 'Sonoobɔda: wedeε ani a εda so',
+    '🏂🏼' => 'Sonoobɔda: wedeε ani a εda so kakra',
+    '🏂🏽' => 'Sonoobɔda: wedeε ani a εda hᴐ kakra',
+    '🏂🏾' => 'Sonoobɔda: wedeε ani tuntum kakra',
+    '🏂🏿' => 'Sonoobɔda: wedeε ani tuntum',
+    '🏌🏻' => 'Obi regɔɔfo: wedeε ani a εda so',
+    '🏌🏼' => 'Obi regɔɔfo: wedeε ani a εda so kakra',
+    '🏌🏽' => 'Obi regɔɔfo: wedeε ani a εda hᴐ kakra',
+    '🏌🏾' => 'Obi regɔɔfo: wedeε ani tuntum kakra',
+    '🏌🏿' => 'Obi regɔɔfo: wedeε ani tuntum',
+    '🏄🏻' => 'obi resεεfe: wedeε ani a εda so',
+    '🏄🏼' => 'obi resεεfe: wedeε ani a εda so kakra',
+    '🏄🏽' => 'obi resεεfe: wedeε ani a εda hᴐ kakra',
+    '🏄🏾' => 'obi resεεfe: wedeε ani tuntum kakra',
+    '🏄🏿' => 'obi resεεfe: wedeε ani tuntum',
+    '🚣🏻' => 'Obi reka kodoɔ: wedeε ani a εda so',
+    '🚣🏼' => 'Obi reka kodoɔ: wedeε ani a εda so kakra',
+    '🚣🏽' => 'Obi reka kodoɔ: wedeε ani a εda hᴐ kakra',
+    '🚣🏾' => 'Obi reka kodoɔ: wedeε ani tuntum kakra',
+    '🚣🏿' => 'Obi reka kodoɔ: wedeε ani tuntum',
+    '🏊🏻' => 'Obi reboro nsuo: wedeε ani a εda so',
+    '🏊🏼' => 'Obi reboro nsuo: wedeε ani a εda so kakra',
+    '🏊🏽' => 'Obi reboro nsuo: wedeε ani a εda hᴐ kakra',
+    '🏊🏾' => 'Obi reboro nsuo: wedeε ani tuntum kakra',
+    '🏊🏿' => 'Obi reboro nsuo: wedeε ani tuntum',
+    '⛹🏻' => 'Obi rebɔ bɔɔlo: wedeε ani a εda so',
+    '⛹🏼' => 'Obi rebɔ bɔɔlo: wedeε ani a εda so kakra',
+    '⛹🏽' => 'Obi rebɔ bɔɔlo: wedeε ani a εda hᴐ kakra',
+    '⛹🏾' => 'Obi rebɔ bɔɔlo: wedeε ani tuntum kakra',
+    '⛹🏿' => 'Obi rebɔ bɔɔlo: wedeε ani tuntum',
+    '🏋🏻' => 'Obi repagya nnadeɛ: wedeε ani a εda so',
+    '🏋🏼' => 'Obi repagya nnadeɛ: wedeε ani a εda so kakra',
+    '🏋🏽' => 'Obi repagya nnadeɛ: wedeε ani a εda hᴐ kakra',
+    '🏋🏾' => 'Obi repagya nnadeɛ: wedeε ani tuntum kakra',
+    '🏋🏿' => 'Obi repagya nnadeɛ: wedeε ani tuntum',
+    '🚴🏻' => 'Obi retwi sakre: wedeε ani a εda so',
+    '🚴🏼' => 'Obi retwi sakre: wedeε ani a εda so kakra',
+    '🚴🏽' => 'Obi retwi sakre: wedeε ani a εda hᴐ kakra',
+    '🚴🏾' => 'Obi retwi sakre: wedeε ani tuntum kakra',
+    '🚴🏿' => 'Obi retwi sakre: wedeε ani tuntum',
+    '🚵🏻' => 'Obi retwi sakre wɔ bepɔ so: wedeε ani a εda so',
+    '🚵🏼' => 'Obi retwi sakre wɔ bepɔ so: wedeε ani a εda so kakra',
+    '🚵🏽' => 'Obi retwi sakre wɔ bepɔ so: wedeε ani a εda hᴐ kakra',
+    '🚵🏾' => 'Obi retwi sakre wɔ bepɔ so: wedeε ani tuntum kakra',
+    '🚵🏿' => 'Obi retwi sakre wɔ bepɔ so: wedeε ani tuntum',
+    '🤸🏻' => 'Obi retwi kaate: wedeε ani a εda so',
+    '🤸🏼' => 'Obi retwi kaate: wedeε ani a εda so kakra',
+    '🤸🏽' => 'Obi retwi kaate: wedeε ani a εda hᴐ kakra',
+    '🤸🏾' => 'Obi retwi kaate: wedeε ani tuntum kakra',
+    '🤸🏿' => 'Obi retwi kaate: wedeε ani tuntum',
+    '🤼🏻' => 'Nkurɔfoɔ retentam: wedeε ani a εda so',
+    '🤼🏼' => 'Nkurɔfoɔ retentam: wedeε ani a εda so kakra',
+    '🤼🏽' => 'Nkurɔfoɔ retentam: wedeε ani a εda hᴐ kakra',
+    '🤼🏾' => 'Nkurɔfoɔ retentam: wedeε ani tuntum kakra',
+    '🤼🏿' => 'Nkurɔfoɔ retentam: wedeε ani tuntum',
+    '🤽🏻' => 'Obi rebɔ polo nsuo: wedeε ani a εda so',
+    '🤽🏼' => 'Obi rebɔ polo nsuo: wedeε ani a εda so kakra',
+    '🤽🏽' => 'Obi rebɔ polo nsuo: wedeε ani a εda hᴐ kakra',
+    '🤽🏾' => 'Obi rebɔ polo nsuo: wedeε ani tuntum kakra',
+    '🤽🏿' => 'Obi rebɔ polo nsuo: wedeε ani tuntum',
+    '🤾🏻' => 'Obi rebɔ nsabɔɔlo: wedeε ani a εda so',
+    '🤾🏼' => 'Obi rebɔ nsabɔɔlo: wedeε ani a εda so kakra',
+    '🤾🏽' => 'Obi rebɔ nsabɔɔlo: wedeε ani a εda hᴐ kakra',
+    '🤾🏾' => 'Obi rebɔ nsabɔɔlo: wedeε ani tuntum kakra',
+    '🤾🏿' => 'Obi rebɔ nsabɔɔlo: wedeε ani tuntum',
+    '🤹🏻' => 'Obi retoto bɔɔlo: wedeε ani a εda so',
+    '🤹🏼' => 'Obi retoto bɔɔlo: wedeε ani a εda so kakra',
+    '🤹🏽' => 'Obi retoto bɔɔlo: wedeε ani a εda hᴐ kakra',
+    '🤹🏾' => 'Obi retoto bɔɔlo: wedeε ani tuntum kakra',
+    '🤹🏿' => 'Obi retoto bɔɔlo: wedeε ani tuntum',
+    '🧘🏻' => 'Obi ayɛ lɔtusu posihyen: wedeε ani a εda so',
+    '🧘🏼' => 'Obi ayɛ lɔtusu posihyen: wedeε ani a εda so kakra',
+    '🧘🏽' => 'Obi ayɛ lɔtusu posihyen: wedeε ani a εda hᴐ kakra',
+    '🧘🏾' => 'Obi ayɛ lɔtusu posihyen: wedeε ani tuntum kakra',
+    '🧘🏿' => 'Obi ayɛ lɔtusu posihyen: wedeε ani tuntum',
+    '🛀🏻' => 'Obi redware: wedeε ani a εda so',
+    '🛀🏼' => 'Obi redware: wedeε ani a εda so kakra',
+    '🛀🏽' => 'Obi redware: wedeε ani a εda hᴐ kakra',
+    '🛀🏾' => 'Obi redware: wedeε ani tuntum kakra',
+    '🛀🏿' => 'Obi redware: wedeε ani tuntum',
+    '🛌🏻' => 'Onipa da mpa mu: wedeε ani a εda so',
+    '🛌🏼' => 'Onipa da mpa mu: wedeε ani a εda so kakra',
+    '🛌🏽' => 'Onipa da mpa mu: wedeε ani a εda hᴐ kakra',
+    '🛌🏾' => 'Onipa da mpa mu: wedeε ani tuntum kakra',
+    '🛌🏿' => 'Onipa da mpa mu: wedeε ani tuntum',
+    '👭🏻' => 'Mmaa asɔ nsam: wedeε ani a εda so',
+    '👭🏼' => 'Mmaa asɔ nsam: wedeε ani a εda so kakra',
+    '👭🏽' => 'Mmaa asɔ nsam: wedeε ani a εda hᴐ kakra',
+    '👭🏾' => 'Mmaa asɔ nsam: wedeε ani tuntum kakra',
+    '👭🏿' => 'Mmaa asɔ nsam: wedeε ani tuntum',
+    '👫🏻' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda so',
+    '👫🏼' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda so kakra',
+    '👫🏽' => 'Ɔbaa ne barima asɔ nsam: wedeε ani a εda hᴐ kakra',
+    '👫🏾' => 'Ɔbaa ne barima asɔ nsam: wedeε ani tuntum kakra',
+    '👫🏿' => 'Ɔbaa ne barima asɔ nsam: wedeε ani tuntum',
+    '👬🏻' => 'Mmarima asɔ nsam: wedeε ani a εda so',
+    '👬🏼' => 'Mmarima asɔ nsam: wedeε ani a εda so kakra',
+    '👬🏽' => 'Mmarima asɔ nsam: wedeε ani a εda hᴐ kakra',
+    '👬🏾' => 'Mmarima asɔ nsam: wedeε ani tuntum kakra',
+    '👬🏿' => 'Mmarima asɔ nsam: wedeε ani tuntum',
+    '💏🏻' => 'Mfeano: wedeε ani a εda so',
+    '💏🏼' => 'Mfeano: wedeε ani a εda so kakra',
+    '💏🏽' => 'Mfeano: wedeε ani a εda hᴐ kakra',
+    '💏🏾' => 'Mfeano: wedeε ani tuntum kakra',
+    '💏🏿' => 'Mfeano: wedeε ani tuntum',
+    '💑🏻' => 'Awarefoɔ ne akoma: wedeε ani a εda so',
+    '💑🏼' => 'Awarefoɔ ne akoma: wedeε ani a εda so kakra',
+    '💑🏽' => 'Awarefoɔ ne akoma: wedeε ani a εda hᴐ kakra',
+    '💑🏾' => 'Awarefoɔ ne akoma: wedeε ani tuntum kakra',
+    '💑🏿' => 'Awarefoɔ ne akoma: wedeε ani tuntum',
     '🔟' => 'kiikape: 10',
-    '🪉' => 'haapo',
-    '🪏' => 'sofi',
-    '🪾' => 'ɛnni nhaban dua',
-    '🫆' => 'Fingaperente',
-    '🫜' => 'nhini atosodeɛ',
-    '🫟' => 'to pete',
-    '🫩' => 'anim a baage wɔ n’ani ase',
+    '🏻' => 'wedeε ani a εda so',
+    '🏼' => 'wedeε ani a εda so kakra',
+    '🏽' => 'wedeε ani a εda hᴐ kakra',
+    '🏾' => 'wedeε ani tuntum kakra',
+    '🏿' => 'wedeε ani tuntum',
     '😀' => 'anim a ԑresere',
     '😃' => 'anim a ɛseresere a na’ni yɛ akɛseɛ',
     '😄' => 'sereɛ anim ne aniwa a ɛsere',
@@ -395,6 +2338,7 @@
     '😪' => 'anikum anim',
     '🤤' => 'anosuo anim',
     '😴' => 'nna anim',
+    '🫩' => 'anim a baage wɔ n’ani ase',
     '😷' => 'anim ne mɛdikaa nkatanim',
     '🤒' => 'anim ne tɛmɔmita',
     '🤕' => 'anim ne ti baanegye',
@@ -421,6 +2365,7 @@
     '😯' => 'ahodwiri anim',
     '😲' => 'nwanwa anim',
     '😳' => 'flɔhye anim',
+    '🫪' => 'anim a asɛe',
     '🥺' => 'akyɛwpa anim',
     '🥹' => 'anim a ɛretwe nisuo san',
     '😦' => 'anim a amuna ne ano a abue',
@@ -492,8 +2437,9 @@
     '💋' => 'anofeɛ agyinahyɛdeɛ',
     '💯' => 'pɔnse ɔha',
     '💢' => 'abufuo agyinahyɛdeɛ',
+    '🫯' => 'ᴐko klawdo',
     '💥' => 'kɔɔlihyen',
-    '💫' => 'diisi',
+    '💫' => 'anisobirie',
     '💦' => 'mfifire',
     '💨' => 'dahyeen awee',
     '🕳' => 'tokuro',
@@ -614,7 +2560,8 @@
     '🧝' => 'ɛlefo',
     '🧞' => 'gyeeni',
     '🧟' => 'Sɔmbi',
-    '🧌' => 'Trɔɔlo',
+    '🧌' => 'Trol',
+    '🫈' => 'abᴐdeε a enwi wᴐ ne ho',
     '💆' => 'Onipa renya amiamia',
     '💇' => 'Wɔretwa obi nwii',
     '🚶' => 'Onipa renante',
@@ -632,7 +2579,7 @@
     '⛷' => 'Skiya',
     '🏂' => 'Sonoobɔda',
     '🏌' => 'Obi regɔɔfo',
-    '🏄' => 'Obi resɔɔfo',
+    '🏄' => 'obi resεεfe',
     '🚣' => 'Obi reka kodoɔ',
     '🏊' => 'Obi reboro nsuo',
     '⛹' => 'Obi rebɔ bɔɔlo',
@@ -658,7 +2605,9 @@
     '🫂' => 'Nkurɔfoɔ rebam',
     '👪' => 'Abusua',
     '👣' => 'Ananmɔn',
+    '🫆' => 'Fingaperente',
     '🦰' => 'nwi kͻkͻͻ',
+    '🦱' => 'enwi a akyinkyim',
     '🦳' => 'nwi fitaa',
     '🦲' => 'tipa',
     '🐵' => 'adoe anim',
@@ -756,8 +2705,9 @@
     '🐳' => 'sepuutin bonsu',
     '🐋' => 'bonsu',
     '🐬' => 'Dɔɔfin',
+    '🫍' => 'bonsu kεse',
     '🦭' => 'Siili',
-    '🐟' => 'Apataa',
+    '🐟' => 'nsunam',
     '🐠' => 'Trɔpikaa apataa',
     '🐡' => 'Bolooapataa',
     '🦈' => 'Aboodede',
@@ -765,11 +2715,16 @@
     '🐚' => 'Ntwaho konkora',
     '🪸' => 'Kɔraa',
     '🪼' => 'Gyɛliapataa',
+    '🦀' => 'Kɔtɔ',
+    '🦞' => 'Lɔboseta',
+    '🦐' => 'mɔnko',
+    '🦑' => 'Sekwede',
+    '🦪' => 'Ɔeseta',
     '🐌' => 'nwa',
     '🦋' => 'afrafrantͻ',
     '🐛' => 'Bɔɔgo',
     '🐜' => 'kakapɛ',
-    '🐝' => 'Hɔnibii',
+    '🐝' => 'nwowa',
     '🪲' => 'biitil',
     '🐞' => 'ledi biitil',
     '🦗' => 'aketekyere',
@@ -809,6 +2764,7 @@
     '🪹' => 'Ɛbuo a hwee nni mu',
     '🪺' => 'Ɛbuo ne nkosua',
     '🍄' => 'mmire',
+    '🪾' => 'ɛnni nhaban dua',
     '🍇' => 'bobeaba',
     '🍈' => 'Mɛlɔn',
     '🍉' => 'wͻtamɛlͻn',
@@ -821,7 +2777,7 @@
     '🍏' => 'Aprɛ ahabanmono',
     '🍐' => 'paya',
     '🍑' => 'Piikye',
-    '🍒' => 'Hyɛrii',
+    '🍒' => 'kyεrisi',
     '🍓' => 'Setrɔbɛɛrii',
     '🫐' => 'bruubɛɛrii',
     '🥝' => 'kiwi aduaba',
@@ -840,11 +2796,12 @@
     '🥦' => 'brokoli',
     '🧄' => 'galeke',
     '🧅' => 'gyeene',
-    '🥜' => 'nkatea',
+    '🥜' => 'nkateε',
     '🫘' => 'adua',
     '🌰' => 'kyɛstenɔt',
     '🫚' => 'akekaduru nhini',
     '🫛' => 'adua pɔd',
+    '🫜' => 'nhini atosodeɛ',
     '🍞' => 'paanoo',
     '🥐' => 'krɔsaa',
     '🥖' => 'bagɛte paanoo',
@@ -896,11 +2853,6 @@
     '🥟' => 'dɔmpiline',
     '🥠' => 'yiedie kooki',
     '🥡' => 'fakɔfie adaka',
-    '🦀' => 'Kɔtɔ',
-    '🦞' => 'Lɔboseta',
-    '🦐' => 'mɔnko',
-    '🦑' => 'Sekwede',
-    '🦪' => 'Ɔeseta',
     '🍦' => 'aese kirim mmerɛmmerɛ',
     '🍧' => 'aese a wɔawerɛwerɛ',
     '🍨' => 'aese kirim',
@@ -911,7 +2863,7 @@
     '🧁' => 'kuruwakeeki',
     '🥧' => 'pae',
     '🍫' => 'kyokolɛɛte baa',
-    '🍬' => 'kandy',
+    '🍬' => 'kandi',
     '🍭' => 'lɔlipɔɔpo',
     '🍮' => 'kastaade',
     '🍯' => 'ɛwoɔ kukuo',
@@ -951,6 +2903,7 @@
     '🧭' => 'kɔmpase',
     '🏔' => 'bepͻ a asukɔtwea akata so',
     '⛰' => 'bepͻ',
+    '🛘' => 'asasehwie',
     '🌋' => 'ogya bepɔ',
     '🗻' => 'bepͻ fuji',
     '🏕' => 'nwuram nna',
@@ -1215,6 +3168,7 @@
     '🛷' => 'sled',
     '🥌' => 'ͻboͻ a akyinkyim',
     '🎯' => 'buusei',
+    '🪀' => 'yo-yo',
     '🪁' => 'kaete',
     '🔫' => 'nsuo tuo',
     '🎱' => 'puu 8 bͻͻlo',
@@ -1310,16 +3264,18 @@
     '🎧' => 'hɛdfon',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'totorobɛnto',
+    '🪊' => 'trombone',
     '🪗' => 'akͻͻdion',
     '🎸' => 'gitae',
     '🎹' => 'nnwom kiibͻͻdo',
-    '🎺' => 'totorobɛnto',
     '🎻' => 'violin',
     '🪕' => 'bandwo',
     '🥁' => 'twene',
     '🪘' => 'twene tentene',
     '🪇' => 'malakas',
     '🪈' => 'abɛn',
+    '🪉' => 'haapo',
     '📱' => 'mobaa fon',
     '📲' => 'mobaa fon a akyerɛkyerɛkwan da so',
     '☎' => 'tɛlefon',
@@ -1373,8 +3329,9 @@
     '📑' => 'bukmake taabo',
     '🔖' => 'bukmake',
     '🏷' => 'ahyɛnsodeɛ',
-    '💰' => 'sika bͻtͻ',
     '🪙' => 'kͻin',
+    '💰' => 'sika bͻtͻ',
+    '🪎' => 'agudiε adaka',
     '💴' => 'yen sika krataa',
     '💵' => 'dͻla sika krataa',
     '💶' => 'yuro sikakorabea krataa',
@@ -1457,6 +3414,7 @@
     '🧰' => 'akadeԑ adaka',
     '🧲' => 'tweboͻ',
     '🪜' => 'atwedeɛ',
+    '🪏' => 'sofi',
     '⚗' => 'alɛmbeke',
     '🧪' => 'sͻhwɛ',
     '🧫' => 'petri aduane',
@@ -1640,6 +3598,7 @@
     '✴' => 'ano nwɔtwe nsoroma',
     '❇' => 'yerɛwyerɛw',
     '™' => 'adwadie ahyɛnsodeɛ',
+    '🫟' => 'to pete',
     '🔠' => 'input laatin atwerɛdeɛ akɛseɛ',
     '🔡' => 'input laatin atwerɛdeɛ nketewa',
     '🔢' => 'input nͻma',
@@ -1713,6 +3672,9 @@
     '🔘' => 'kasafidie bͻtom',
     '🔳' => 'fitaa sokwɛɛ bͻtom',
     '🔲' => 'tuntum sokwɛɛ bͻtom',
+    '🏁' => 'damedame frankaa',
+    '🚩' => 'ahiniasa frankaa',
+    '🎌' => 'frankaa a yεasensan mu',
     '🏴' => 'frankaa tuntum',
     '🏳' => 'frankaa fitaa',
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-am.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-am.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-am.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-am.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'መሳም: ሴት፣ ሴት፣ የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-4',
     '👩🏿‍❤‍💋‍👩🏾' => 'መሳም: ሴት፣ ሴት፣ የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-5',
     '👩🏿‍❤‍💋‍👩🏿' => 'መሳም: ሴት፣ ሴት እና የቆዳ ዓይነት-6',
+    '🧑🏻‍🫯‍🧑🏼' => 'ነጻ ትግል: የቆዳ ዓይነት-1-2 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🧑🏻‍🫯‍🧑🏽' => 'ነጻ ትግል: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-4',
+    '🧑🏻‍🫯‍🧑🏾' => 'ነጻ ትግል: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-5',
+    '🧑🏻‍🫯‍🧑🏿' => 'ነጻ ትግል: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-6',
+    '🧑🏼‍🫯‍🧑🏻' => 'ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-1-2',
+    '🧑🏼‍🫯‍🧑🏽' => 'ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-4',
+    '🧑🏼‍🫯‍🧑🏾' => 'ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-5',
+    '🧑🏼‍🫯‍🧑🏿' => 'ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-6',
+    '🧑🏽‍🫯‍🧑🏻' => 'ነጻ ትግል: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-1-2',
+    '🧑🏽‍🫯‍🧑🏼' => 'ነጻ ትግል: የቆዳ ዓይነት-4 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🧑🏽‍🫯‍🧑🏾' => 'ነጻ ትግል: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-5',
+    '🧑🏽‍🫯‍🧑🏿' => 'ነጻ ትግል: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-6',
+    '🧑🏾‍🫯‍🧑🏻' => 'ነጻ ትግል: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-1-2',
+    '🧑🏾‍🫯‍🧑🏼' => 'ነጻ ትግል: የቆዳ ዓይነት-5 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🧑🏾‍🫯‍🧑🏽' => 'ነጻ ትግል: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-4',
+    '🧑🏾‍🫯‍🧑🏿' => 'ነጻ ትግል: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-6',
+    '🧑🏿‍🫯‍🧑🏻' => 'ነጻ ትግል: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-1-2',
+    '🧑🏿‍🫯‍🧑🏼' => 'ነጻ ትግል: የቆዳ ዓይነት-6 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🧑🏿‍🫯‍🧑🏽' => 'ነጻ ትግል: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-4',
+    '🧑🏿‍🫯‍🧑🏾' => 'ነጻ ትግል: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-5',
     '🧑🏻‍❤‍🧑🏼' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ጎልማሳ፣ ጎልማሳ፣ የቆዳ ዓይነት-1-2 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
     '🧑🏻‍❤‍🧑🏽' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ጎልማሳ፣ ጎልማሳ፣ የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-4',
     '🧑🏻‍❤‍🧑🏾' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ጎልማሳ፣ ጎልማሳ፣ የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-5',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ጎልማሳ፣ ጎልማሳ፣ የቆዳ ዓይነት-6 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
     '🧑🏿‍❤‍🧑🏽' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ጎልማሳ፣ ጎልማሳ፣ የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-4',
     '🧑🏿‍❤‍🧑🏾' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ጎልማሳ፣ ጎልማሳ፣ የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-5',
+    '🧑🏻‍🐰‍🧑🏼' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🧑🏻‍🐰‍🧑🏽' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-4',
+    '🧑🏻‍🐰‍🧑🏾' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-5',
+    '🧑🏻‍🐰‍🧑🏿' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-6',
+    '🧑🏼‍🐰‍🧑🏻' => 'ሰዎች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-1-2',
+    '🧑🏼‍🐰‍🧑🏽' => 'ሰዎች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-4',
+    '🧑🏼‍🐰‍🧑🏾' => 'ሰዎች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-5',
+    '🧑🏼‍🐰‍🧑🏿' => 'ሰዎች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-6',
+    '🧑🏽‍🐰‍🧑🏻' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-1-2',
+    '🧑🏽‍🐰‍🧑🏼' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-4 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🧑🏽‍🐰‍🧑🏾' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-5',
+    '🧑🏽‍🐰‍🧑🏿' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-6',
+    '🧑🏾‍🐰‍🧑🏻' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-1-2',
+    '🧑🏾‍🐰‍🧑🏼' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-5 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🧑🏾‍🐰‍🧑🏽' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-4',
+    '🧑🏾‍🐰‍🧑🏿' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-6',
+    '🧑🏿‍🐰‍🧑🏻' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-1-2',
+    '🧑🏿‍🐰‍🧑🏼' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-6 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🧑🏿‍🐰‍🧑🏽' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-4',
+    '🧑🏿‍🐰‍🧑🏾' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-5',
+    '👨🏻‍🫯‍👨🏼' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-1-2 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👨🏻‍🫯‍👨🏽' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-4',
+    '👨🏻‍🫯‍👨🏾' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-5',
+    '👨🏻‍🫯‍👨🏿' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-6',
+    '👨🏼‍🫯‍👨🏻' => 'የወንድ ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-1-2',
+    '👨🏼‍🫯‍👨🏽' => 'የወንድ ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-4',
+    '👨🏼‍🫯‍👨🏾' => 'የወንድ ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-5',
+    '👨🏼‍🫯‍👨🏿' => 'የወንድ ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-6',
+    '👨🏽‍🫯‍👨🏻' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-1-2',
+    '👨🏽‍🫯‍👨🏼' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-4 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👨🏽‍🫯‍👨🏾' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-5',
+    '👨🏽‍🫯‍👨🏿' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-6',
+    '👨🏾‍🫯‍👨🏻' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-1-2',
+    '👨🏾‍🫯‍👨🏼' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-5 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👨🏾‍🫯‍👨🏽' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-4',
+    '👨🏾‍🫯‍👨🏿' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-6',
+    '👨🏿‍🫯‍👨🏻' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-1-2',
+    '👨🏿‍🫯‍👨🏼' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-6 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👨🏿‍🫯‍👨🏽' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-4',
+    '👨🏿‍🫯‍👨🏾' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-5',
     '👨🏻‍❤‍👨🏻' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሰው፣ ሰው እና የቆዳ ዓይነት-1-2',
     '👨🏻‍❤‍👨🏼' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሰው፣ ሰው፣ የቆዳ ዓይነት-1-2 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
     '👨🏻‍❤‍👨🏽' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሰው፣ ሰው፣ የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-4',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሰው፣ ሰው፣ የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-4',
     '👨🏿‍❤‍👨🏾' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሰው፣ ሰው፣ የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-5',
     '👨🏿‍❤‍👨🏿' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሰው፣ ሰው እና የቆዳ ዓይነት-6',
+    '👨🏻‍🐰‍👨🏼' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👨🏻‍🐰‍👨🏽' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-4',
+    '👨🏻‍🐰‍👨🏾' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-5',
+    '👨🏻‍🐰‍👨🏿' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-6',
+    '👨🏼‍🐰‍👨🏻' => 'ወንዶች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-1-2',
+    '👨🏼‍🐰‍👨🏽' => 'ወንዶች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-4',
+    '👨🏼‍🐰‍👨🏾' => 'ወንዶች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-5',
+    '👨🏼‍🐰‍👨🏿' => 'ወንዶች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-6',
+    '👨🏽‍🐰‍👨🏻' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-1-2',
+    '👨🏽‍🐰‍👨🏼' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-4 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👨🏽‍🐰‍👨🏾' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-5',
+    '👨🏽‍🐰‍👨🏿' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-6',
+    '👨🏾‍🐰‍👨🏻' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-1-2',
+    '👨🏾‍🐰‍👨🏼' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-5 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👨🏾‍🐰‍👨🏽' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-4',
+    '👨🏾‍🐰‍👨🏿' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-6',
+    '👨🏿‍🐰‍👨🏻' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-1-2',
+    '👨🏿‍🐰‍👨🏼' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-6 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👨🏿‍🐰‍👨🏽' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-4',
+    '👨🏿‍🐰‍👨🏾' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-5',
+    '👩🏻‍🫯‍👩🏼' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-1-2 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👩🏻‍🫯‍👩🏽' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-4',
+    '👩🏻‍🫯‍👩🏾' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-5',
+    '👩🏻‍🫯‍👩🏿' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-6',
+    '👩🏼‍🫯‍👩🏻' => 'የሴት ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-1-2',
+    '👩🏼‍🫯‍👩🏽' => 'የሴት ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-4',
+    '👩🏼‍🫯‍👩🏾' => 'የሴት ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-5',
+    '👩🏼‍🫯‍👩🏿' => 'የሴት ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-6',
+    '👩🏽‍🫯‍👩🏻' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-1-2',
+    '👩🏽‍🫯‍👩🏼' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-4 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👩🏽‍🫯‍👩🏾' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-5',
+    '👩🏽‍🫯‍👩🏿' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-6',
+    '👩🏾‍🫯‍👩🏻' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-1-2',
+    '👩🏾‍🫯‍👩🏼' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-5 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👩🏾‍🫯‍👩🏽' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-4',
+    '👩🏾‍🫯‍👩🏿' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-6',
+    '👩🏿‍🫯‍👩🏻' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-1-2',
+    '👩🏿‍🫯‍👩🏼' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-6 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👩🏿‍🫯‍👩🏽' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-4',
+    '👩🏿‍🫯‍👩🏾' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-5',
     '👩🏻‍❤‍👨🏻' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሴት፣ ሰው እና የቆዳ ዓይነት-1-2',
     '👩🏻‍❤‍👨🏼' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሴት፣ ሰው፣ የቆዳ ዓይነት-1-2 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
     '👩🏻‍❤‍👨🏽' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሴት፣ ሰው፣ የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-4',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሴት፣ ሴት፣ የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-4',
     '👩🏿‍❤‍👩🏾' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሴት፣ ሴት፣ የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-5',
     '👩🏿‍❤‍👩🏿' => 'ልብ በመሃላቸው ያሉ ጥንዶች: ሴት፣ ሴት እና የቆዳ ዓይነት-6',
+    '👩🏻‍🐰‍👩🏼' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👩🏻‍🐰‍👩🏽' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-4',
+    '👩🏻‍🐰‍👩🏾' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-5',
+    '👩🏻‍🐰‍👩🏿' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-6',
+    '👩🏼‍🐰‍👩🏻' => 'ሴቶች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-1-2',
+    '👩🏼‍🐰‍👩🏽' => 'ሴቶች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-4',
+    '👩🏼‍🐰‍👩🏾' => 'ሴቶች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-5',
+    '👩🏼‍🐰‍👩🏿' => 'ሴቶች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና የቆዳ ዓይነት-6',
+    '👩🏽‍🐰‍👩🏻' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-1-2',
+    '👩🏽‍🐰‍👩🏼' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-4 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👩🏽‍🐰‍👩🏾' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-5',
+    '👩🏽‍🐰‍👩🏿' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-4 እና የቆዳ ዓይነት-6',
+    '👩🏾‍🐰‍👩🏻' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-1-2',
+    '👩🏾‍🐰‍👩🏼' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-5 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👩🏾‍🐰‍👩🏽' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-4',
+    '👩🏾‍🐰‍👩🏿' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-5 እና የቆዳ ዓይነት-6',
+    '👩🏿‍🐰‍👩🏻' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-1-2',
+    '👩🏿‍🐰‍👩🏼' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-6 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👩🏿‍🐰‍👩🏽' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-4',
+    '👩🏿‍🐰‍👩🏾' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-6 እና የቆዳ ዓይነት-5',
     '🧑🏻‍🤝‍🧑🏻' => 'ሰዎች እጅ ለእጅ ተያይዘው: የቆዳ ዓይነት-1-2',
     '🧑🏻‍🤝‍🧑🏼' => 'ሰዎች እጅ ለእጅ ተያይዘው: የቆዳ ዓይነት-1-2 እና መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
     '🧑🏻‍🤝‍🧑🏽' => 'ሰዎች እጅ ለእጅ ተያይዘው: የቆዳ ዓይነት-1-2 እና የቆዳ ዓይነት-4',
@@ -350,6 +470,11 @@
     '🧑🏽‍🦲' => 'ጎልማሳ: የቆዳ ዓይነት-4 እና መላጣ',
     '🧑🏾‍🦲' => 'ጎልማሳ: የቆዳ ዓይነት-5 እና መላጣ',
     '🧑🏿‍🦲' => 'ጎልማሳ: የቆዳ ዓይነት-6 እና መላጣ',
+    '🧑🏻‍🩰' => 'የባሌት ዳንሰኛ: የቆዳ ዓይነት-1-2',
+    '🧑🏼‍🩰' => 'የባሌት ዳንሰኛ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🧑🏽‍🩰' => 'የባሌት ዳንሰኛ: የቆዳ ዓይነት-4',
+    '🧑🏾‍🩰' => 'የባሌት ዳንሰኛ: የቆዳ ዓይነት-5',
+    '🧑🏿‍🩰' => 'የባሌት ዳንሰኛ: የቆዳ ዓይነት-6',
     '🧔🏻‍♂' => 'ሰው: የቆዳ ዓይነት-1-2 እና ጺም',
     '🧔🏼‍♂' => 'ሰው: መሃከለኛ ቀላ ያለ የቆዳ ቀለም እና ጺም',
     '🧔🏽‍♂' => 'ሰው: የቆዳ ዓይነት-4 እና ጺም',
@@ -1015,6 +1140,16 @@
     '🏃🏽‍♀' => 'የሴት ሩጫ: የቆዳ ዓይነት-4',
     '🏃🏾‍♀' => 'የሴት ሩጫ: የቆዳ ዓይነት-5',
     '🏃🏿‍♀' => 'የሴት ሩጫ: የቆዳ ዓይነት-6',
+    '👯🏻‍♀' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-1-2',
+    '👯🏼‍♀' => 'ሴቶች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👯🏽‍♀' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-4',
+    '👯🏾‍♀' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-5',
+    '👯🏿‍♀' => 'ሴቶች ሲጨፍሩ: የቆዳ ዓይነት-6',
+    '👯🏻‍♂' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-1-2',
+    '👯🏼‍♂' => 'ወንዶች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👯🏽‍♂' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-4',
+    '👯🏾‍♂' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-5',
+    '👯🏿‍♂' => 'ወንዶች ሲጨፍሩ: የቆዳ ዓይነት-6',
     '🧖🏻‍♂' => 'ወንድ በእንፋሎት ክፍል ውስጥ: የቆዳ ዓይነት-1-2',
     '🧖🏼‍♂' => 'ወንድ በእንፋሎት ክፍል ውስጥ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
     '🧖🏽‍♂' => 'ወንድ በእንፋሎት ክፍል ውስጥ: የቆዳ ዓይነት-4',
@@ -1125,6 +1260,16 @@
     '🤸🏽‍♀' => 'የሴት አክሮባት: የቆዳ ዓይነት-4',
     '🤸🏾‍♀' => 'የሴት አክሮባት: የቆዳ ዓይነት-5',
     '🤸🏿‍♀' => 'የሴት አክሮባት: የቆዳ ዓይነት-6',
+    '🤼🏻‍♀' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-1-2',
+    '🤼🏼‍♀' => 'የሴት ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🤼🏽‍♀' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-4',
+    '🤼🏾‍♀' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-5',
+    '🤼🏿‍♀' => 'የሴት ነጻ ትግል: የቆዳ ዓይነት-6',
+    '🤼🏻‍♂' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-1-2',
+    '🤼🏼‍♂' => 'የወንድ ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🤼🏽‍♂' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-4',
+    '🤼🏾‍♂' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-5',
+    '🤼🏿‍♂' => 'የወንድ ነጻ ትግል: የቆዳ ዓይነት-6',
     '🤽🏻‍♂' => 'የወንድ የውሃ ላይ ገና ጨዋታ: የቆዳ ዓይነት-1-2',
     '🤽🏼‍♂' => 'የወንድ የውሃ ላይ ገና ጨዋታ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
     '🤽🏽‍♂' => 'የወንድ የውሃ ላይ ገና ጨዋታ: የቆዳ ዓይነት-4',
@@ -1317,6 +1462,7 @@
     '👩‍🦽' => 'ሴት በእጅ ተሽከርካሪ ወንበር',
     '🏃‍♂' => 'የወንድ ሩጫ',
     '🏃‍♀' => 'የሴት ሩጫ',
+    '🧑‍🩰' => 'የባሌት ዳንሰኛ',
     '👯‍♂' => 'ወንዶች ሲጨፍሩ',
     '👯‍♀' => 'ሴቶች ሲጨፍሩ',
     '🧖‍♂' => 'ወንድ በእንፋሎት ክፍል ውስጥ',
@@ -1898,6 +2044,11 @@
     '🕴🏽' => 'ሽክ ብሎ የለበሰ የሥራ ሰው: የቆዳ ዓይነት-4',
     '🕴🏾' => 'ሽክ ብሎ የለበሰ የሥራ ሰው: የቆዳ ዓይነት-5',
     '🕴🏿' => 'ሽክ ብሎ የለበሰ የሥራ ሰው: የቆዳ ዓይነት-6',
+    '👯🏻' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-1-2',
+    '👯🏼' => 'ሰዎች ሲጨፍሩ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '👯🏽' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-4',
+    '👯🏾' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-5',
+    '👯🏿' => 'ሰዎች ሲጨፍሩ: የቆዳ ዓይነት-6',
     '🧖🏻' => 'ሰው በእንፋሎት ክፍል ውስጥ: የቆዳ ዓይነት-1-2',
     '🧖🏼' => 'ሰው በእንፋሎት ክፍል ውስጥ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
     '🧖🏽' => 'ሰው በእንፋሎት ክፍል ውስጥ: የቆዳ ዓይነት-4',
@@ -1963,6 +2114,11 @@
     '🤸🏽' => 'አክሮባት: የቆዳ ዓይነት-4',
     '🤸🏾' => 'አክሮባት: የቆዳ ዓይነት-5',
     '🤸🏿' => 'አክሮባት: የቆዳ ዓይነት-6',
+    '🤼🏻' => 'ነጻ ትግል: የቆዳ ዓይነት-1-2',
+    '🤼🏼' => 'ነጻ ትግል: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
+    '🤼🏽' => 'ነጻ ትግል: የቆዳ ዓይነት-4',
+    '🤼🏾' => 'ነጻ ትግል: የቆዳ ዓይነት-5',
+    '🤼🏿' => 'ነጻ ትግል: የቆዳ ዓይነት-6',
     '🤽🏻' => 'የውሃ ላይ ገና ጨዋታ: የቆዳ ዓይነት-1-2',
     '🤽🏼' => 'የውሃ ላይ ገና ጨዋታ: መሃከለኛ ቀላ ያለ የቆዳ ቀለም',
     '🤽🏽' => 'የውሃ ላይ ገና ጨዋታ: የቆዳ ዓይነት-4',
@@ -2069,6 +2225,7 @@
     '🇨🇳' => 'ባንዲራ: ቻይና',
     '🇨🇴' => 'ባንዲራ: ኮሎምቢያ',
     '🇨🇵' => 'ባንዲራ: ክሊፐርቶን ደሴት',
+    '🇨🇶' => 'ባንዲራ: ሳርክ',
     '🇨🇷' => 'ባንዲራ: ኮስታሪካ',
     '🇨🇺' => 'ባንዲራ: ኩባ',
     '🇨🇻' => 'ባንዲራ: ኬፕቨርዴ',
@@ -2282,13 +2439,6 @@
     '🏽' => 'የቆዳ ዓይነት-4',
     '🏾' => 'የቆዳ ዓይነት-5',
     '🏿' => 'የቆዳ ዓይነት-6',
-    '🪉' => 'በገና',
-    '🪏' => 'አካፋ',
-    '🪾' => 'ቅጠል የሌለው ዛፍ',
-    '🫆' => 'የጣት አሻራ',
-    '🫜' => 'ሥር አትክልቶች',
-    '🫟' => 'የውሃ መረጨት',
-    '🫩' => 'ከዓይኖች በታች ከረጢቶች ጋር ፊት',
     '😀' => 'ፈገግ ያለ ፊት',
     '😃' => 'አፉ የተከፈተ ሣቂታ ፊት',
     '😄' => 'ከተከፈተ አፍ ጋር ሣቂታ ፊት እና ሣቂታ ዓይኖች',
@@ -2342,6 +2492,7 @@
     '😪' => 'እንቅልፉ የመጣ ፊት',
     '🤤' => 'የለሀጭ ፊት',
     '😴' => 'የሚያንቀላፋ ፊት',
+    '🫩' => 'ከዓይኖች በታች ከረጢቶች ጋር ፊት',
     '😷' => 'የሕክምና ጭንብል ያደረገ ፊት',
     '🤒' => 'ቴርሞሜትር የያዘ ፊት',
     '🤕' => 'እራሱ ላይ ፋሻ የጠቀለለ ፊት',
@@ -2368,6 +2519,7 @@
     '😯' => 'አንሾካሿኪ ፊት',
     '😲' => 'የተገረመ ፊት',
     '😳' => 'የደነበረ ፊት',
+    '🫪' => 'የተዛባ ፊት',
     '🥺' => 'የሙግት ፊት',
     '🥹' => 'እንባ ያቀረረ ፊት',
     '😦' => 'አፉ የተከፈተ የተኮሳተረ ፊት',
@@ -2439,6 +2591,7 @@
     '💋' => 'የመሳም ምልክት',
     '💯' => 'መቶ ነጥቦች',
     '💢' => 'የንዴት ምልክት',
+    '🫯' => 'ደመናን መዋጋት',
     '💥' => 'ግጭት',
     '💫' => 'ድብት',
     '💦' => 'ጣፋጭ ጠብታዎች',
@@ -2562,6 +2715,7 @@
     '🧞' => 'ጅኒ',
     '🧟' => 'ዞምቢ',
     '🧌' => 'አስቃያሚ ጭራቅ',
+    '🫈' => 'ፀጉራማ ፍጥረት',
     '💆' => 'የፊት ማሳጅ',
     '💇' => 'ጸጉር መቆረጥ',
     '🚶' => 'እግረኛ',
@@ -2605,6 +2759,7 @@
     '🫂' => 'ሰዎች ሲተቃቀፉ',
     '👪' => 'ቤተሰብ',
     '👣' => 'የእግር ዱካ',
+    '🫆' => 'የጣት አሻራ',
     '🦰' => 'ቀይ ጸጉር',
     '🦱' => 'የተጠቀለለ ጸጉር',
     '🦳' => 'ነጭ ጸጉር',
@@ -2704,6 +2859,7 @@
     '🐳' => 'ውሃ የሚያንቦጫርቅ ዓሣ ነባሪ',
     '🐋' => 'አሣ ነባሪ',
     '🐬' => 'ዶልፊን',
+    '🫍' => 'ኦርካ',
     '🦭' => 'ምልክት',
     '🐟' => 'ዓሣ',
     '🐠' => 'የምድር ወገብ አካባቢ ዓሣ',
@@ -2713,6 +2869,11 @@
     '🐚' => 'ሽብልል የቀንድ አውጣ ሼል',
     '🪸' => 'ቋጥኝ',
     '🪼' => 'ጄሊፊሽ',
+    '🦀' => 'ሸርጣን',
+    '🦞' => 'ሎብስተር',
+    '🦐' => 'ትንሽ አሣ',
+    '🦑' => 'ስክዊድ',
+    '🦪' => 'ሼል',
     '🐌' => 'ቀንድ አውጣ',
     '🦋' => 'ቢራቢሮ',
     '🐛' => 'ትኋን',
@@ -2757,6 +2918,7 @@
     '🪹' => 'ባዶ የወፍ ጎጆ',
     '🪺' => 'እንቁላል የያዘ ጎጆ',
     '🍄' => 'እንጉዳይ',
+    '🪾' => 'ቅጠል የሌለው ዛፍ',
     '🍇' => 'የወይን ዛላዎች',
     '🍈' => 'ሆምጣጤ',
     '🍉' => 'ሐብሐብ',
@@ -2793,6 +2955,7 @@
     '🌰' => 'የለውዝ ፍሬ',
     '🫚' => 'የዝንጅብል ሥር',
     '🫛' => 'የአተር ፖድ',
+    '🫜' => 'ሥር አትክልቶች',
     '🍞' => 'ዳቦ',
     '🥐' => 'ክሬሰንት',
     '🥖' => 'የፈረንሳይ ዳቦ',
@@ -2844,11 +3007,6 @@
     '🥟' => 'ፍራፍሬ',
     '🥠' => 'ፎርቹን ኩኪ',
     '🥡' => 'ምግብ መውሰጃ እቃ',
-    '🦀' => 'ሸርጣን',
-    '🦞' => 'ሎብስተር',
-    '🦐' => 'ትንሽ አሣ',
-    '🦑' => 'ስክዊድ',
-    '🦪' => 'ሼል',
     '🍦' => 'ቀላል አይስክሬም',
     '🍧' => 'የተሸለተ አይስክሬም',
     '🍨' => 'አይስክሬም',
@@ -2899,6 +3057,7 @@
     '🧭' => 'ኮምፓስ',
     '🏔' => 'ጫፉ በረዶ ያለበት ተራራ',
     '⛰' => 'ተራራ',
+    '🛘' => 'የመሬት መንሸራተት',
     '🌋' => 'እሳተ ጎመራ',
     '🗻' => 'የፉጂ ተራራ',
     '🏕' => 'ሰፈራ',
@@ -3259,16 +3418,18 @@
     '🎧' => 'የጆሮ ማዳመጫ',
     '📻' => 'ሬዲዮ',
     '🎷' => 'ሳክስፎን',
+    '🎺' => 'ትራምፔት',
+    '🪊' => 'ትሮምቦን',
     '🪗' => 'አኮርዲዮን',
     '🎸' => 'ጊታር',
     '🎹' => 'የሙዚቃ ቁልፍ ሰሌዳ',
-    '🎺' => 'ትራምፔት',
     '🎻' => 'ቫዮሊን',
     '🪕' => 'ባንጆ',
     '🥁' => 'ከበሮ',
     '🪘' => 'ረጅም ከበሮ',
     '🪇' => 'ማራካ',
     '🪈' => 'ዋሽንት',
+    '🪉' => 'በገና',
     '📱' => 'ሞባይል ስልክ',
     '📲' => 'ሞባይል ስልክ ከቀስት ጋር',
     '☎' => 'ቴሌፎን',
@@ -3322,8 +3483,9 @@
     '📑' => 'እልባት ማድረጊያ ትሮች',
     '🔖' => 'እልባት',
     '🏷' => 'መለያ',
-    '💰' => 'የገንዘብ ከረጢት',
     '🪙' => 'ሳንቲም',
+    '💰' => 'የገንዘብ ከረጢት',
+    '🪎' => 'ግምጃ ቤት',
     '💴' => 'የን የወረቀት ገንዘብ',
     '💵' => 'ዶላር የወረቀት ገንዘብ',
     '💶' => 'ዩሮ የወረቀት ገንዘብ',
@@ -3406,6 +3568,7 @@
     '🧰' => 'የመፍቻ ሳጥን',
     '🧲' => 'ማግኔት',
     '🪜' => 'መሰላል',
+    '🪏' => 'አካፋ',
     '⚗' => 'አለምቢክ',
     '🧪' => 'መፈተኛ ቱቦ',
     '🧫' => 'የፔትሪ ዲሽ',
@@ -3589,6 +3752,7 @@
     '✴' => 'ባለስምንት ነጥብ ኮከብ',
     '❇' => 'አንጸባራቂ',
     '™' => 'የንግድ ምልክት',
+    '🫟' => 'የውሃ መረጨት',
     '🔠' => 'የላቲን ዓቢይ ፊደል ግቤት',
     '🔡' => 'የላቲን ንዑስ ፊደል ግቤት',
     '🔢' => 'የቁጥር ግቤት',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ar.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ar.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ar.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ar.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'قبلة: سيدة، وسيدة، وبشرة بلون غامق، وبشرة بلون معتدل',
     '👩🏿‍❤‍💋‍👩🏾' => 'قبلة: سيدة، وسيدة، وبشرة بلون غامق، وبشرة بلون معتدل مائل للغامق',
     '👩🏿‍❤‍💋‍👩🏿' => 'قبلة: سيدة، وسيدة، وبشرة بلون غامق',
+    '🧑🏻‍🫯‍🧑🏼' => 'مصارعون: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '🧑🏻‍🫯‍🧑🏽' => 'مصارعون: بشرة بلون فاتح وبشرة بلون معتدل',
+    '🧑🏻‍🫯‍🧑🏾' => 'مصارعون: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '🧑🏻‍🫯‍🧑🏿' => 'مصارعون: بشرة بلون فاتح وبشرة بلون غامق',
+    '🧑🏼‍🫯‍🧑🏻' => 'مصارعون: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '🧑🏼‍🫯‍🧑🏽' => 'مصارعون: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '🧑🏼‍🫯‍🧑🏾' => 'مصارعون: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '🧑🏼‍🫯‍🧑🏿' => 'مصارعون: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '🧑🏽‍🫯‍🧑🏻' => 'مصارعون: بشرة بلون معتدل وبشرة بلون فاتح',
+    '🧑🏽‍🫯‍🧑🏼' => 'مصارعون: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '🧑🏽‍🫯‍🧑🏾' => 'مصارعون: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '🧑🏽‍🫯‍🧑🏿' => 'مصارعون: بشرة بلون معتدل وبشرة بلون غامق',
+    '🧑🏾‍🫯‍🧑🏻' => 'مصارعون: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '🧑🏾‍🫯‍🧑🏼' => 'مصارعون: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '🧑🏾‍🫯‍🧑🏽' => 'مصارعون: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '🧑🏾‍🫯‍🧑🏿' => 'مصارعون: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '🧑🏿‍🫯‍🧑🏻' => 'مصارعون: بشرة بلون غامق وبشرة بلون فاتح',
+    '🧑🏿‍🫯‍🧑🏼' => 'مصارعون: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '🧑🏿‍🫯‍🧑🏽' => 'مصارعون: بشرة بلون غامق وبشرة بلون معتدل',
+    '🧑🏿‍🫯‍🧑🏾' => 'مصارعون: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
     '🧑🏻‍❤‍🧑🏼' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون فاتح، وبشرة بلون فاتح ومعتدل',
     '🧑🏻‍❤‍🧑🏽' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون فاتح، وبشرة بلون معتدل',
     '🧑🏻‍❤‍🧑🏾' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون فاتح، وبشرة بلون معتدل مائل للغامق',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون غامق، وبشرة بلون فاتح ومعتدل',
     '🧑🏿‍❤‍🧑🏽' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون غامق، وبشرة بلون معتدل',
     '🧑🏿‍❤‍🧑🏾' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون غامق، وبشرة بلون معتدل مائل للغامق',
+    '🧑🏻‍🐰‍🧑🏼' => 'شخصان يرقصان: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '🧑🏻‍🐰‍🧑🏽' => 'شخصان يرقصان: بشرة بلون فاتح وبشرة بلون معتدل',
+    '🧑🏻‍🐰‍🧑🏾' => 'شخصان يرقصان: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '🧑🏻‍🐰‍🧑🏿' => 'شخصان يرقصان: بشرة بلون فاتح وبشرة بلون غامق',
+    '🧑🏼‍🐰‍🧑🏻' => 'شخصان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '🧑🏼‍🐰‍🧑🏽' => 'شخصان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '🧑🏼‍🐰‍🧑🏾' => 'شخصان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '🧑🏼‍🐰‍🧑🏿' => 'شخصان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '🧑🏽‍🐰‍🧑🏻' => 'شخصان يرقصان: بشرة بلون معتدل وبشرة بلون فاتح',
+    '🧑🏽‍🐰‍🧑🏼' => 'شخصان يرقصان: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '🧑🏽‍🐰‍🧑🏾' => 'شخصان يرقصان: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '🧑🏽‍🐰‍🧑🏿' => 'شخصان يرقصان: بشرة بلون معتدل وبشرة بلون غامق',
+    '🧑🏾‍🐰‍🧑🏻' => 'شخصان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '🧑🏾‍🐰‍🧑🏼' => 'شخصان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '🧑🏾‍🐰‍🧑🏽' => 'شخصان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '🧑🏾‍🐰‍🧑🏿' => 'شخصان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '🧑🏿‍🐰‍🧑🏻' => 'شخصان يرقصان: بشرة بلون غامق وبشرة بلون فاتح',
+    '🧑🏿‍🐰‍🧑🏼' => 'شخصان يرقصان: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '🧑🏿‍🐰‍🧑🏽' => 'شخصان يرقصان: بشرة بلون غامق وبشرة بلون معتدل',
+    '🧑🏿‍🐰‍🧑🏾' => 'شخصان يرقصان: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
+    '👨🏻‍🫯‍👨🏼' => 'مصارعة رجال: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '👨🏻‍🫯‍👨🏽' => 'مصارعة رجال: بشرة بلون فاتح وبشرة بلون معتدل',
+    '👨🏻‍🫯‍👨🏾' => 'مصارعة رجال: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '👨🏻‍🫯‍👨🏿' => 'مصارعة رجال: بشرة بلون فاتح وبشرة بلون غامق',
+    '👨🏼‍🫯‍👨🏻' => 'مصارعة رجال: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '👨🏼‍🫯‍👨🏽' => 'مصارعة رجال: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '👨🏼‍🫯‍👨🏾' => 'مصارعة رجال: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '👨🏼‍🫯‍👨🏿' => 'مصارعة رجال: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '👨🏽‍🫯‍👨🏻' => 'مصارعة رجال: بشرة بلون معتدل وبشرة بلون فاتح',
+    '👨🏽‍🫯‍👨🏼' => 'مصارعة رجال: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '👨🏽‍🫯‍👨🏾' => 'مصارعة رجال: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '👨🏽‍🫯‍👨🏿' => 'مصارعة رجال: بشرة بلون معتدل وبشرة بلون غامق',
+    '👨🏾‍🫯‍👨🏻' => 'مصارعة رجال: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '👨🏾‍🫯‍👨🏼' => 'مصارعة رجال: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '👨🏾‍🫯‍👨🏽' => 'مصارعة رجال: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '👨🏾‍🫯‍👨🏿' => 'مصارعة رجال: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '👨🏿‍🫯‍👨🏻' => 'مصارعة رجال: بشرة بلون غامق وبشرة بلون فاتح',
+    '👨🏿‍🫯‍👨🏼' => 'مصارعة رجال: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '👨🏿‍🫯‍👨🏽' => 'مصارعة رجال: بشرة بلون غامق وبشرة بلون معتدل',
+    '👨🏿‍🫯‍👨🏾' => 'مصارعة رجال: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
     '👨🏻‍❤‍👨🏻' => 'زوج وقلب: رجل، ورجل، وبشرة بلون فاتح',
     '👨🏻‍❤‍👨🏼' => 'زوج وقلب: رجل، ورجل، وبشرة بلون فاتح، وبشرة بلون فاتح ومعتدل',
     '👨🏻‍❤‍👨🏽' => 'زوج وقلب: رجل، ورجل، وبشرة بلون فاتح، وبشرة بلون معتدل',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'زوج وقلب: رجل، ورجل، وبشرة بلون غامق، وبشرة بلون معتدل',
     '👨🏿‍❤‍👨🏾' => 'زوج وقلب: رجل، ورجل، وبشرة بلون غامق، وبشرة بلون معتدل مائل للغامق',
     '👨🏿‍❤‍👨🏿' => 'زوج وقلب: رجل، ورجل، وبشرة بلون غامق',
+    '👨🏻‍🐰‍👨🏼' => 'رجلان يرقصان: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '👨🏻‍🐰‍👨🏽' => 'رجلان يرقصان: بشرة بلون فاتح وبشرة بلون معتدل',
+    '👨🏻‍🐰‍👨🏾' => 'رجلان يرقصان: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '👨🏻‍🐰‍👨🏿' => 'رجلان يرقصان: بشرة بلون فاتح وبشرة بلون غامق',
+    '👨🏼‍🐰‍👨🏻' => 'رجلان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '👨🏼‍🐰‍👨🏽' => 'رجلان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '👨🏼‍🐰‍👨🏾' => 'رجلان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '👨🏼‍🐰‍👨🏿' => 'رجلان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '👨🏽‍🐰‍👨🏻' => 'رجلان يرقصان: بشرة بلون معتدل وبشرة بلون فاتح',
+    '👨🏽‍🐰‍👨🏼' => 'رجلان يرقصان: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '👨🏽‍🐰‍👨🏾' => 'رجلان يرقصان: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '👨🏽‍🐰‍👨🏿' => 'رجلان يرقصان: بشرة بلون معتدل وبشرة بلون غامق',
+    '👨🏾‍🐰‍👨🏻' => 'رجلان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '👨🏾‍🐰‍👨🏼' => 'رجلان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '👨🏾‍🐰‍👨🏽' => 'رجلان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '👨🏾‍🐰‍👨🏿' => 'رجلان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '👨🏿‍🐰‍👨🏻' => 'رجلان يرقصان: بشرة بلون غامق وبشرة بلون فاتح',
+    '👨🏿‍🐰‍👨🏼' => 'رجلان يرقصان: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '👨🏿‍🐰‍👨🏽' => 'رجلان يرقصان: بشرة بلون غامق وبشرة بلون معتدل',
+    '👨🏿‍🐰‍👨🏾' => 'رجلان يرقصان: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
+    '👩🏻‍🫯‍👩🏼' => 'مصارعة سيدات: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '👩🏻‍🫯‍👩🏽' => 'مصارعة سيدات: بشرة بلون فاتح وبشرة بلون معتدل',
+    '👩🏻‍🫯‍👩🏾' => 'مصارعة سيدات: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '👩🏻‍🫯‍👩🏿' => 'مصارعة سيدات: بشرة بلون فاتح وبشرة بلون غامق',
+    '👩🏼‍🫯‍👩🏻' => 'مصارعة سيدات: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '👩🏼‍🫯‍👩🏽' => 'مصارعة سيدات: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '👩🏼‍🫯‍👩🏾' => 'مصارعة سيدات: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '👩🏼‍🫯‍👩🏿' => 'مصارعة سيدات: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '👩🏽‍🫯‍👩🏻' => 'مصارعة سيدات: بشرة بلون معتدل وبشرة بلون فاتح',
+    '👩🏽‍🫯‍👩🏼' => 'مصارعة سيدات: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '👩🏽‍🫯‍👩🏾' => 'مصارعة سيدات: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '👩🏽‍🫯‍👩🏿' => 'مصارعة سيدات: بشرة بلون معتدل وبشرة بلون غامق',
+    '👩🏾‍🫯‍👩🏻' => 'مصارعة سيدات: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '👩🏾‍🫯‍👩🏼' => 'مصارعة سيدات: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '👩🏾‍🫯‍👩🏽' => 'مصارعة سيدات: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '👩🏾‍🫯‍👩🏿' => 'مصارعة سيدات: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '👩🏿‍🫯‍👩🏻' => 'مصارعة سيدات: بشرة بلون غامق وبشرة بلون فاتح',
+    '👩🏿‍🫯‍👩🏼' => 'مصارعة سيدات: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '👩🏿‍🫯‍👩🏽' => 'مصارعة سيدات: بشرة بلون غامق وبشرة بلون معتدل',
+    '👩🏿‍🫯‍👩🏾' => 'مصارعة سيدات: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
     '👩🏻‍❤‍👨🏻' => 'زوج وقلب: سيدة، ورجل، وبشرة بلون فاتح',
     '👩🏻‍❤‍👨🏼' => 'زوج وقلب: سيدة، ورجل، وبشرة بلون فاتح، وبشرة بلون فاتح ومعتدل',
     '👩🏻‍❤‍👨🏽' => 'زوج وقلب: سيدة، ورجل، وبشرة بلون فاتح، وبشرة بلون معتدل',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'زوج وقلب: سيدة، وسيدة، وبشرة بلون غامق، وبشرة بلون معتدل',
     '👩🏿‍❤‍👩🏾' => 'زوج وقلب: سيدة، وسيدة، وبشرة بلون غامق، وبشرة بلون معتدل مائل للغامق',
     '👩🏿‍❤‍👩🏿' => 'زوج وقلب: سيدة، وسيدة، وبشرة بلون غامق',
+    '👩🏻‍🐰‍👩🏼' => 'امرأتان ترقصان: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '👩🏻‍🐰‍👩🏽' => 'امرأتان ترقصان: بشرة بلون فاتح وبشرة بلون معتدل',
+    '👩🏻‍🐰‍👩🏾' => 'امرأتان ترقصان: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '👩🏻‍🐰‍👩🏿' => 'امرأتان ترقصان: بشرة بلون فاتح وبشرة بلون غامق',
+    '👩🏼‍🐰‍👩🏻' => 'امرأتان ترقصان: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '👩🏼‍🐰‍👩🏽' => 'امرأتان ترقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '👩🏼‍🐰‍👩🏾' => 'امرأتان ترقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '👩🏼‍🐰‍👩🏿' => 'امرأتان ترقصان: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '👩🏽‍🐰‍👩🏻' => 'امرأتان ترقصان: بشرة بلون معتدل وبشرة بلون فاتح',
+    '👩🏽‍🐰‍👩🏼' => 'امرأتان ترقصان: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '👩🏽‍🐰‍👩🏾' => 'امرأتان ترقصان: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '👩🏽‍🐰‍👩🏿' => 'امرأتان ترقصان: بشرة بلون معتدل وبشرة بلون غامق',
+    '👩🏾‍🐰‍👩🏻' => 'امرأتان ترقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '👩🏾‍🐰‍👩🏼' => 'امرأتان ترقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '👩🏾‍🐰‍👩🏽' => 'امرأتان ترقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '👩🏾‍🐰‍👩🏿' => 'امرأتان ترقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '👩🏿‍🐰‍👩🏻' => 'امرأتان ترقصان: بشرة بلون غامق وبشرة بلون فاتح',
+    '👩🏿‍🐰‍👩🏼' => 'امرأتان ترقصان: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '👩🏿‍🐰‍👩🏽' => 'امرأتان ترقصان: بشرة بلون غامق وبشرة بلون معتدل',
+    '👩🏿‍🐰‍👩🏾' => 'امرأتان ترقصان: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
     '🧑🏻‍🤝‍🧑🏻' => 'أشخاص يمسكون بأيدي بعضهم: بشرة بلون فاتح',
     '🧑🏻‍🤝‍🧑🏼' => 'أشخاص يمسكون بأيدي بعضهم: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
     '🧑🏻‍🤝‍🧑🏽' => 'أشخاص يمسكون بأيدي بعضهم: بشرة بلون فاتح وبشرة بلون معتدل',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'علم: اسكتلندا',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'علم: ويلز',
     '🧑‍🧑‍🧒‍🧒' => 'أسرة: بالغ، بالغة، طفل، طفلة',
-    '🚶🏻‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶🏼‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶🏽‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶🏾‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶🏿‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶🏻‍♂‍➡' => 'سائر متجه لليمين',
-    '🚶🏼‍♂‍➡' => 'سائر متجه لليمين',
-    '🚶🏽‍♂‍➡' => 'سائر متجه لليمين',
-    '🚶🏾‍♂‍➡' => 'سائر متجه لليمين',
-    '🚶🏿‍♂‍➡' => 'سائر متجه لليمين',
-    '🧎🏻‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎🏼‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎🏽‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎🏾‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎🏿‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎🏻‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧎🏼‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧎🏽‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧎🏾‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧎🏿‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧑🏻‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '🧑🏼‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '🧑🏽‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '🧑🏾‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '🧑🏿‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '👨🏻‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👨🏼‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👨🏽‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👨🏾‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👨🏿‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👩🏻‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '👩🏼‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '👩🏽‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '👩🏾‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '👩🏿‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '🧑🏻‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '🧑🏼‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '🧑🏽‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '🧑🏾‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '🧑🏿‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '👨🏻‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👨🏼‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👨🏽‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👨🏾‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👨🏿‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👩🏻‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '👩🏼‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '👩🏽‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '👩🏾‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '👩🏿‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '🧑🏻‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '🧑🏼‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '🧑🏽‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '🧑🏾‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '🧑🏿‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '👨🏻‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👨🏼‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👨🏽‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👨🏾‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👨🏿‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👩🏻‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '👩🏼‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '👩🏽‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '👩🏾‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '👩🏿‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '🏃🏻‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃🏼‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃🏽‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃🏾‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃🏿‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃🏻‍♂‍➡' => 'راكض متجه لليمين',
-    '🏃🏼‍♂‍➡' => 'راكض متجه لليمين',
-    '🏃🏽‍♂‍➡' => 'راكض متجه لليمين',
-    '🏃🏾‍♂‍➡' => 'راكض متجه لليمين',
-    '🏃🏿‍♂‍➡' => 'راكض متجه لليمين',
+    '🚶🏻‍♀‍➡' => 'سائرة: بشرة بلون فاتح ومتجه لليمين',
+    '🚶🏼‍♀‍➡' => 'سائرة: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🚶🏽‍♀‍➡' => 'سائرة: بشرة بلون معتدل ومتجه لليمين',
+    '🚶🏾‍♀‍➡' => 'سائرة: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🚶🏿‍♀‍➡' => 'سائرة: بشرة بلون غامق ومتجه لليمين',
+    '🚶🏻‍♂‍➡' => 'سائر: بشرة بلون فاتح ومتجه لليمين',
+    '🚶🏼‍♂‍➡' => 'سائر: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🚶🏽‍♂‍➡' => 'سائر: بشرة بلون معتدل ومتجه لليمين',
+    '🚶🏾‍♂‍➡' => 'سائر: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🚶🏿‍♂‍➡' => 'سائر: بشرة بلون غامق ومتجه لليمين',
+    '🧎🏻‍♀‍➡' => 'سيدة جالسة على ركبتيها: بشرة بلون فاتح ومتجه لليمين',
+    '🧎🏼‍♀‍➡' => 'سيدة جالسة على ركبتيها: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧎🏽‍♀‍➡' => 'سيدة جالسة على ركبتيها: بشرة بلون معتدل ومتجه لليمين',
+    '🧎🏾‍♀‍➡' => 'سيدة جالسة على ركبتيها: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧎🏿‍♀‍➡' => 'سيدة جالسة على ركبتيها: بشرة بلون غامق ومتجه لليمين',
+    '🧎🏻‍♂‍➡' => 'رجل جالس على ركبتيه: بشرة بلون فاتح ومتجه لليمين',
+    '🧎🏼‍♂‍➡' => 'رجل جالس على ركبتيه: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧎🏽‍♂‍➡' => 'رجل جالس على ركبتيه: بشرة بلون معتدل ومتجه لليمين',
+    '🧎🏾‍♂‍➡' => 'رجل جالس على ركبتيه: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧎🏿‍♂‍➡' => 'رجل جالس على ركبتيه: بشرة بلون غامق ومتجه لليمين',
+    '🧑🏻‍🦯‍➡' => 'شخص مع عصا سير: بشرة بلون فاتح ومتجه لليمين',
+    '🧑🏼‍🦯‍➡' => 'شخص مع عصا سير: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧑🏽‍🦯‍➡' => 'شخص مع عصا سير: بشرة بلون معتدل ومتجه لليمين',
+    '🧑🏾‍🦯‍➡' => 'شخص مع عصا سير: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧑🏿‍🦯‍➡' => 'شخص مع عصا سير: بشرة بلون غامق ومتجه لليمين',
+    '👨🏻‍🦯‍➡' => 'رجل بعصا سير: بشرة بلون فاتح ومتجه لليمين',
+    '👨🏼‍🦯‍➡' => 'رجل بعصا سير: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👨🏽‍🦯‍➡' => 'رجل بعصا سير: بشرة بلون معتدل ومتجه لليمين',
+    '👨🏾‍🦯‍➡' => 'رجل بعصا سير: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👨🏿‍🦯‍➡' => 'رجل بعصا سير: بشرة بلون غامق ومتجه لليمين',
+    '👩🏻‍🦯‍➡' => 'سيدة بعصا سير: بشرة بلون فاتح ومتجه لليمين',
+    '👩🏼‍🦯‍➡' => 'سيدة بعصا سير: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👩🏽‍🦯‍➡' => 'سيدة بعصا سير: بشرة بلون معتدل ومتجه لليمين',
+    '👩🏾‍🦯‍➡' => 'سيدة بعصا سير: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👩🏿‍🦯‍➡' => 'سيدة بعصا سير: بشرة بلون غامق ومتجه لليمين',
+    '🧑🏻‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: بشرة بلون فاتح ومتجه لليمين',
+    '🧑🏼‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧑🏽‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: بشرة بلون معتدل ومتجه لليمين',
+    '🧑🏾‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧑🏿‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: بشرة بلون غامق ومتجه لليمين',
+    '👨🏻‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: بشرة بلون فاتح ومتجه لليمين',
+    '👨🏼‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👨🏽‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: بشرة بلون معتدل ومتجه لليمين',
+    '👨🏾‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👨🏿‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: بشرة بلون غامق ومتجه لليمين',
+    '👩🏻‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: بشرة بلون فاتح ومتجه لليمين',
+    '👩🏼‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👩🏽‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: بشرة بلون معتدل ومتجه لليمين',
+    '👩🏾‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👩🏿‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: بشرة بلون غامق ومتجه لليمين',
+    '🧑🏻‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: بشرة بلون فاتح ومتجه لليمين',
+    '🧑🏼‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧑🏽‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: بشرة بلون معتدل ومتجه لليمين',
+    '🧑🏾‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧑🏿‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: بشرة بلون غامق ومتجه لليمين',
+    '👨🏻‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: بشرة بلون فاتح ومتجه لليمين',
+    '👨🏼‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👨🏽‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: بشرة بلون معتدل ومتجه لليمين',
+    '👨🏾‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👨🏿‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: بشرة بلون غامق ومتجه لليمين',
+    '👩🏻‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: بشرة بلون فاتح ومتجه لليمين',
+    '👩🏼‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👩🏽‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: بشرة بلون معتدل ومتجه لليمين',
+    '👩🏾‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👩🏿‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: بشرة بلون غامق ومتجه لليمين',
+    '🏃🏻‍♀‍➡' => 'راكضة: بشرة بلون فاتح ومتجه لليمين',
+    '🏃🏼‍♀‍➡' => 'راكضة: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🏃🏽‍♀‍➡' => 'راكضة: بشرة بلون معتدل ومتجه لليمين',
+    '🏃🏾‍♀‍➡' => 'راكضة: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🏃🏿‍♀‍➡' => 'راكضة: بشرة بلون غامق ومتجه لليمين',
+    '🏃🏻‍♂‍➡' => 'راكض: بشرة بلون فاتح ومتجه لليمين',
+    '🏃🏼‍♂‍➡' => 'راكض: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🏃🏽‍♂‍➡' => 'راكض: بشرة بلون معتدل ومتجه لليمين',
+    '🏃🏾‍♂‍➡' => 'راكض: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🏃🏿‍♂‍➡' => 'راكض: بشرة بلون غامق ومتجه لليمين',
     '🫱🏻‍🫲🏼' => 'مصافحة: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
     '🫱🏻‍🫲🏽' => 'مصافحة: بشرة بلون فاتح وبشرة بلون معتدل',
     '🫱🏻‍🫲🏾' => 'مصافحة: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'مصافحة: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
     '🫱🏿‍🫲🏽' => 'مصافحة: بشرة بلون غامق وبشرة بلون معتدل',
     '🫱🏿‍🫲🏾' => 'مصافحة: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
-    '🚶‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶‍♂‍➡' => 'سائر متجه لليمين',
-    '🧎‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧑‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '👨‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👩‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '🧑‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '👨‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👩‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '🧑‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '👨‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👩‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '🏃‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃‍♂‍➡' => 'راكض متجه لليمين',
+    '🚶‍♀‍➡' => 'سائرة: متجه لليمين',
+    '🚶‍♂‍➡' => 'سائر: متجه لليمين',
+    '🧎‍♀‍➡' => 'سيدة جالسة على ركبتيها: متجه لليمين',
+    '🧎‍♂‍➡' => 'رجل جالس على ركبتيه: متجه لليمين',
+    '🧑‍🦯‍➡' => 'شخص مع عصا سير: متجه لليمين',
+    '👨‍🦯‍➡' => 'رجل بعصا سير: متجه لليمين',
+    '👩‍🦯‍➡' => 'سيدة بعصا سير: متجه لليمين',
+    '🧑‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: متجه لليمين',
+    '👨‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: متجه لليمين',
+    '👩‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: متجه لليمين',
+    '🧑‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: متجه لليمين',
+    '👨‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: متجه لليمين',
+    '👩‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: متجه لليمين',
+    '🏃‍♀‍➡' => 'راكضة: متجه لليمين',
+    '🏃‍♂‍➡' => 'راكض: متجه لليمين',
     '👩‍❤‍👨' => 'زوج وقلب: سيدة ورجل',
     '👨‍❤‍👨' => 'زوج وقلب: رجل ورجل',
     '👩‍❤‍👩' => 'زوج وقلب: سيدة وسيدة',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'بالغ: بشرة بلون معتدل وأصلع',
     '🧑🏾‍🦲' => 'بالغ: بشرة بلون معتدل مائل للغامق وأصلع',
     '🧑🏿‍🦲' => 'بالغ: بشرة بلون غامق وأصلع',
+    '🧑🏻‍🩰' => 'راقصة باليه: بشرة بلون فاتح',
+    '🧑🏼‍🩰' => 'راقصة باليه: بشرة بلون فاتح ومعتدل',
+    '🧑🏽‍🩰' => 'راقصة باليه: بشرة بلون معتدل',
+    '🧑🏾‍🩰' => 'راقصة باليه: بشرة بلون معتدل مائل للغامق',
+    '🧑🏿‍🩰' => 'راقصة باليه: بشرة بلون غامق',
     '🧔🏻‍♂' => 'رجل بلحية: بشرة بلون فاتح',
     '🧔🏼‍♂' => 'رجل بلحية: بشرة بلون فاتح ومعتدل',
     '🧔🏽‍♂' => 'رجل بلحية: بشرة بلون معتدل',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'سائرة: بشرة بلون معتدل',
     '🚶🏾‍♀' => 'سائرة: بشرة بلون معتدل مائل للغامق',
     '🚶🏿‍♀' => 'سائرة: بشرة بلون غامق',
-    '🚶🏻‍➡' => 'شخص يسير متجه لليمين',
-    '🚶🏼‍➡' => 'شخص يسير متجه لليمين',
-    '🚶🏽‍➡' => 'شخص يسير متجه لليمين',
-    '🚶🏾‍➡' => 'شخص يسير متجه لليمين',
-    '🚶🏿‍➡' => 'شخص يسير متجه لليمين',
+    '🚶🏻‍➡' => 'شخص يسير: بشرة بلون فاتح ومتجه لليمين',
+    '🚶🏼‍➡' => 'شخص يسير: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🚶🏽‍➡' => 'شخص يسير: بشرة بلون معتدل ومتجه لليمين',
+    '🚶🏾‍➡' => 'شخص يسير: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🚶🏿‍➡' => 'شخص يسير: بشرة بلون غامق ومتجه لليمين',
     '🧍🏻‍♂' => 'رجل واقف: بشرة بلون فاتح',
     '🧍🏼‍♂' => 'رجل واقف: بشرة بلون فاتح ومعتدل',
     '🧍🏽‍♂' => 'رجل واقف: بشرة بلون معتدل',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'سيدة جالسة على ركبتيها: بشرة بلون معتدل',
     '🧎🏾‍♀' => 'سيدة جالسة على ركبتيها: بشرة بلون معتدل مائل للغامق',
     '🧎🏿‍♀' => 'سيدة جالسة على ركبتيها: بشرة بلون غامق',
-    '🧎🏻‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
-    '🧎🏼‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
-    '🧎🏽‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
-    '🧎🏾‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
-    '🧎🏿‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
+    '🧎🏻‍➡' => 'شخص جالس على ركبتيه: بشرة بلون فاتح ومتجه لليمين',
+    '🧎🏼‍➡' => 'شخص جالس على ركبتيه: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧎🏽‍➡' => 'شخص جالس على ركبتيه: بشرة بلون معتدل ومتجه لليمين',
+    '🧎🏾‍➡' => 'شخص جالس على ركبتيه: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧎🏿‍➡' => 'شخص جالس على ركبتيه: بشرة بلون غامق ومتجه لليمين',
     '🧑🏻‍🦯' => 'شخص مع عصا سير: بشرة بلون فاتح',
     '🧑🏼‍🦯' => 'شخص مع عصا سير: بشرة بلون فاتح ومعتدل',
     '🧑🏽‍🦯' => 'شخص مع عصا سير: بشرة بلون معتدل',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'راكضة: بشرة بلون معتدل',
     '🏃🏾‍♀' => 'راكضة: بشرة بلون معتدل مائل للغامق',
     '🏃🏿‍♀' => 'راكضة: بشرة بلون غامق',
-    '🏃🏻‍➡' => 'شخص يجري متجه لليمين',
-    '🏃🏼‍➡' => 'شخص يجري متجه لليمين',
-    '🏃🏽‍➡' => 'شخص يجري متجه لليمين',
-    '🏃🏾‍➡' => 'شخص يجري متجه لليمين',
-    '🏃🏿‍➡' => 'شخص يجري متجه لليمين',
+    '🏃🏻‍➡' => 'شخص يجري: بشرة بلون فاتح ومتجه لليمين',
+    '🏃🏼‍➡' => 'شخص يجري: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🏃🏽‍➡' => 'شخص يجري: بشرة بلون معتدل ومتجه لليمين',
+    '🏃🏾‍➡' => 'شخص يجري: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🏃🏿‍➡' => 'شخص يجري: بشرة بلون غامق ومتجه لليمين',
+    '👯🏻‍♀' => 'امرأتان ترقصان: بشرة بلون فاتح',
+    '👯🏼‍♀' => 'امرأتان ترقصان: بشرة بلون فاتح ومعتدل',
+    '👯🏽‍♀' => 'امرأتان ترقصان: بشرة بلون معتدل',
+    '👯🏾‍♀' => 'امرأتان ترقصان: بشرة بلون معتدل مائل للغامق',
+    '👯🏿‍♀' => 'امرأتان ترقصان: بشرة بلون غامق',
+    '👯🏻‍♂' => 'رجلان يرقصان: بشرة بلون فاتح',
+    '👯🏼‍♂' => 'رجلان يرقصان: بشرة بلون فاتح ومعتدل',
+    '👯🏽‍♂' => 'رجلان يرقصان: بشرة بلون معتدل',
+    '👯🏾‍♂' => 'رجلان يرقصان: بشرة بلون معتدل مائل للغامق',
+    '👯🏿‍♂' => 'رجلان يرقصان: بشرة بلون غامق',
     '🧖🏻‍♂' => 'رجل في حمّام بخار: بشرة بلون فاتح',
     '🧖🏼‍♂' => 'رجل في حمّام بخار: بشرة بلون فاتح ومعتدل',
     '🧖🏽‍♂' => 'رجل في حمّام بخار: بشرة بلون معتدل',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'سيدة تفعل حركة العجلة: بشرة بلون معتدل',
     '🤸🏾‍♀' => 'سيدة تفعل حركة العجلة: بشرة بلون معتدل مائل للغامق',
     '🤸🏿‍♀' => 'سيدة تفعل حركة العجلة: بشرة بلون غامق',
+    '🤼🏻‍♀' => 'مصارعة سيدات: بشرة بلون فاتح',
+    '🤼🏼‍♀' => 'مصارعة سيدات: بشرة بلون فاتح ومعتدل',
+    '🤼🏽‍♀' => 'مصارعة سيدات: بشرة بلون معتدل',
+    '🤼🏾‍♀' => 'مصارعة سيدات: بشرة بلون معتدل مائل للغامق',
+    '🤼🏿‍♀' => 'مصارعة سيدات: بشرة بلون غامق',
+    '🤼🏻‍♂' => 'مصارعة رجال: بشرة بلون فاتح',
+    '🤼🏼‍♂' => 'مصارعة رجال: بشرة بلون فاتح ومعتدل',
+    '🤼🏽‍♂' => 'مصارعة رجال: بشرة بلون معتدل',
+    '🤼🏾‍♂' => 'مصارعة رجال: بشرة بلون معتدل مائل للغامق',
+    '🤼🏿‍♂' => 'مصارعة رجال: بشرة بلون غامق',
     '🤽🏻‍♂' => 'لاعب كرة ماء: بشرة بلون فاتح',
     '🤽🏼‍♂' => 'لاعب كرة ماء: بشرة بلون فاتح ومعتدل',
     '🤽🏽‍♂' => 'لاعب كرة ماء: بشرة بلون معتدل',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'سيدة: شعر مجعد',
     '👩‍🦳' => 'سيدة: شعر أبيض',
     '👩‍🦲' => 'سيدة: أصلع',
-    '🚶‍➡' => 'شخص يسير متجه لليمين',
-    '🧎‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
-    '🏃‍➡' => 'شخص يجري متجه لليمين',
+    '🚶‍➡' => 'شخص يسير: متجه لليمين',
+    '🧎‍➡' => 'شخص جالس على ركبتيه: متجه لليمين',
+    '🏃‍➡' => 'شخص يجري: متجه لليمين',
     '👨‍👦' => 'أسرة: رجل وصبي',
     '👨‍👧' => 'أسرة: رجل وفتاة',
     '👩‍👦' => 'أسرة: سيدة وصبي',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'سيدة على كرسي متحرك يدوي',
     '🏃‍♂' => 'راكض',
     '🏃‍♀' => 'راكضة',
+    '🧑‍🩰' => 'راقصة باليه',
     '👯‍♂' => 'رجلان يرقصان',
     '👯‍♀' => 'امرأتان ترقصان',
     '🧖‍♂' => 'رجل في حمّام بخار',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'رجل أعمال يرتقي: بشرة بلون معتدل',
     '🕴🏾' => 'رجل أعمال يرتقي: بشرة بلون معتدل مائل للغامق',
     '🕴🏿' => 'رجل أعمال يرتقي: بشرة بلون غامق',
+    '👯🏻' => 'شخصان يرقصان: بشرة بلون فاتح',
+    '👯🏼' => 'شخصان يرقصان: بشرة بلون فاتح ومعتدل',
+    '👯🏽' => 'شخصان يرقصان: بشرة بلون معتدل',
+    '👯🏾' => 'شخصان يرقصان: بشرة بلون معتدل مائل للغامق',
+    '👯🏿' => 'شخصان يرقصان: بشرة بلون غامق',
     '🧖🏻' => 'شخص في حمّام بخار: بشرة بلون فاتح',
     '🧖🏼' => 'شخص في حمّام بخار: بشرة بلون فاتح ومعتدل',
     '🧖🏽' => 'شخص في حمّام بخار: بشرة بلون معتدل',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'شخص يؤدي حركة العجلة: بشرة بلون معتدل',
     '🤸🏾' => 'شخص يؤدي حركة العجلة: بشرة بلون معتدل مائل للغامق',
     '🤸🏿' => 'شخص يؤدي حركة العجلة: بشرة بلون غامق',
+    '🤼🏻' => 'مصارعون: بشرة بلون فاتح',
+    '🤼🏼' => 'مصارعون: بشرة بلون فاتح ومعتدل',
+    '🤼🏽' => 'مصارعون: بشرة بلون معتدل',
+    '🤼🏾' => 'مصارعون: بشرة بلون معتدل مائل للغامق',
+    '🤼🏿' => 'مصارعون: بشرة بلون غامق',
     '🤽🏻' => 'شخص يلعب كرة ماء: بشرة بلون فاتح',
     '🤽🏼' => 'شخص يلعب كرة ماء: بشرة بلون فاتح ومعتدل',
     '🤽🏽' => 'شخص يلعب كرة ماء: بشرة بلون معتدل',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'علم: الصين',
     '🇨🇴' => 'علم: كولومبيا',
     '🇨🇵' => 'علم: جزيرة كليبيرتون',
+    '🇨🇶' => 'علم: سارك',
     '🇨🇷' => 'علم: كوستاريكا',
     '🇨🇺' => 'علم: كوبا',
     '🇨🇻' => 'علم: الرأس الأخضر',
@@ -2390,13 +2547,6 @@
     '🏽' => 'بشرة بلون معتدل',
     '🏾' => 'بشرة بلون معتدل مائل للغامق',
     '🏿' => 'بشرة بلون غامق',
-    '🪉' => 'قيثارة',
-    '🪏' => 'جاروف',
-    '🪾' => 'شجرة بلا أوراق',
-    '🫆' => 'بصمة',
-    '🫜' => 'خضراوات جذرية',
-    '🫟' => 'بقعة',
-    '🫩' => 'وجه بانتفاخ تحت العين',
     '😀' => 'وجه بابتسامة عريضة',
     '😃' => 'وجه مبتسم بعينين كبيرتين',
     '😄' => 'وجه مبتسم بعينين باسمتين',
@@ -2450,6 +2600,7 @@
     '😪' => 'وجه ناعس',
     '🤤' => 'وجه بلعاب سائل',
     '😴' => 'وجه نائم',
+    '🫩' => 'وجه بانتفاخ تحت العين',
     '😷' => 'وجه بكمامة',
     '🤒' => 'وجه مع ميزان للحرارة',
     '🤕' => 'وجه بعصابة رأس',
@@ -2476,6 +2627,7 @@
     '😯' => 'وجه مخفوت الصوت',
     '😲' => 'وجه مندهش',
     '😳' => 'وجه متورد',
+    '🫪' => 'وجه بأعين زائعة',
     '🥺' => 'وجه ملتمس',
     '🥹' => 'وجه يحبس دموعه',
     '😦' => 'وجه عابس بفم مفتوح',
@@ -2547,6 +2699,7 @@
     '💋' => 'علامة قبلة',
     '💯' => '100 درجة',
     '💢' => 'رمز الغضب',
+    '🫯' => 'سحابة اقتتال',
     '💥' => 'تصادم',
     '💫' => 'دوار',
     '💦' => 'عرق يتصبب',
@@ -2670,6 +2823,7 @@
     '🧞' => 'مارد سحري',
     '🧟' => 'زومبي',
     '🧌' => 'الترول',
+    '🫈' => 'كائن مشعر',
     '💆' => 'شخص يحصل على مساج',
     '💇' => 'شخص يُقص شعره',
     '🚶' => 'شخص يسير',
@@ -2713,6 +2867,7 @@
     '🫂' => 'شخصان يتعانقان',
     '👪' => 'أسرة',
     '👣' => 'أثر قدمين',
+    '🫆' => 'بصمة',
     '🦰' => 'شعر أحمر',
     '🦱' => 'شعر مجعد',
     '🦳' => 'شعر أبيض',
@@ -2812,6 +2967,7 @@
     '🐳' => 'حوت بنافورة',
     '🐋' => 'حوت',
     '🐬' => 'دولفين',
+    '🫍' => 'الحوت القاتل',
     '🦭' => 'فقمة',
     '🐟' => 'سمكة',
     '🐠' => 'سمكة استوائية',
@@ -2821,6 +2977,11 @@
     '🐚' => 'صدفة حلزونية',
     '🪸' => 'مرجان',
     '🪼' => 'قنديل بحر',
+    '🦀' => 'سرطان',
+    '🦞' => 'كركند',
+    '🦐' => 'جمبري',
+    '🦑' => 'حبار',
+    '🦪' => 'محار',
     '🐌' => 'حلزون',
     '🦋' => 'فراشة',
     '🐛' => 'بق',
@@ -2865,6 +3026,7 @@
     '🪹' => 'عش فارغ',
     '🪺' => 'عش به بيض',
     '🍄' => 'عيش الغراب',
+    '🪾' => 'شجرة بلا أوراق',
     '🍇' => 'عنب',
     '🍈' => 'شمام',
     '🍉' => 'بطيخ',
@@ -2901,6 +3063,7 @@
     '🌰' => 'كستناء',
     '🫚' => 'جذر الزنجبيل',
     '🫛' => 'قرن بازلاء',
+    '🫜' => 'خضراوات جذرية',
     '🍞' => 'خبز',
     '🥐' => 'كرواسون',
     '🥖' => 'الخبز الفرنسي',
@@ -2952,11 +3115,6 @@
     '🥟' => 'زلابية صينية',
     '🥠' => 'كعكة الحظ',
     '🥡' => 'علبة طعام للخارج',
-    '🦀' => 'سرطان',
-    '🦞' => 'كركند',
-    '🦐' => 'جمبري',
-    '🦑' => 'حبار',
-    '🦪' => 'محار',
     '🍦' => 'آيس كريم مخفف',
     '🍧' => 'آيس كريم مجروش',
     '🍨' => 'آيس كريم',
@@ -3007,6 +3165,7 @@
     '🧭' => 'بوصلة',
     '🏔' => 'جبل بقمة ثلجية',
     '⛰' => 'جبل',
+    '🛘' => 'انزلاق أرضي',
     '🌋' => 'بركان',
     '🗻' => 'جبل فوجي',
     '🏕' => 'تخييم',
@@ -3367,16 +3526,18 @@
     '🎧' => 'سماعة رأس',
     '📻' => 'راديو',
     '🎷' => 'ساكسفون',
+    '🎺' => 'آلة نفخ',
+    '🪊' => 'ترومبون',
     '🪗' => 'أكورديون',
     '🎸' => 'غيتار',
     '🎹' => 'بيانو',
-    '🎺' => 'آلة نفخ',
     '🎻' => 'كمان',
     '🪕' => 'آلة بانجو',
     '🥁' => 'طبلة',
     '🪘' => 'طبل طويل',
     '🪇' => 'مركاس',
     '🪈' => 'فلوت',
+    '🪉' => 'قيثارة',
     '📱' => 'هاتف جوال',
     '📲' => 'هاتف جوال مع سهم',
     '☎' => 'هاتف أرضي',
@@ -3430,8 +3591,9 @@
     '📑' => 'لصاقات علامات توقف قراءة',
     '🔖' => 'علامة توقف قراءة',
     '🏷' => 'ملصق',
-    '💰' => 'حقيبة نقود',
     '🪙' => 'عملة معدنية',
+    '💰' => 'حقيبة نقود',
+    '🪎' => 'صندوق كنز',
     '💴' => 'ورقة ين',
     '💵' => 'ورقة دولار',
     '💶' => 'ورقة يورو',
@@ -3514,6 +3676,7 @@
     '🧰' => 'صندوق أدوات',
     '🧲' => 'مغناطيس',
     '🪜' => 'سلّم',
+    '🪏' => 'جاروف',
     '⚗' => 'أمبيق',
     '🧪' => 'أنبوب اختبار',
     '🧫' => 'صحفة بتري',
@@ -3697,6 +3860,7 @@
     '✴' => 'نجمة بثمان نقاط',
     '❇' => 'ومضة',
     '™' => 'إشارة علامة تجارية',
+    '🫟' => 'بقعة',
     '🔠' => 'أحرف كبيرة',
     '🔡' => 'أحرف صغيرة',
     '🔢' => 'أرقام',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ar_sa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ar_sa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ar_sa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ar_sa.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'قبلة: سيدة، وسيدة، وبشرة بلون غامق، وبشرة بلون معتدل',
     '👩🏿‍❤‍💋‍👩🏾' => 'قبلة: سيدة، وسيدة، وبشرة بلون غامق، وبشرة بلون معتدل مائل للغامق',
     '👩🏿‍❤‍💋‍👩🏿' => 'قبلة: سيدة، وسيدة، وبشرة بلون غامق',
+    '🧑🏻‍🫯‍🧑🏼' => 'مصارعون: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '🧑🏻‍🫯‍🧑🏽' => 'مصارعون: بشرة بلون فاتح وبشرة بلون معتدل',
+    '🧑🏻‍🫯‍🧑🏾' => 'مصارعون: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '🧑🏻‍🫯‍🧑🏿' => 'مصارعون: بشرة بلون فاتح وبشرة بلون غامق',
+    '🧑🏼‍🫯‍🧑🏻' => 'مصارعون: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '🧑🏼‍🫯‍🧑🏽' => 'مصارعون: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '🧑🏼‍🫯‍🧑🏾' => 'مصارعون: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '🧑🏼‍🫯‍🧑🏿' => 'مصارعون: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '🧑🏽‍🫯‍🧑🏻' => 'مصارعون: بشرة بلون معتدل وبشرة بلون فاتح',
+    '🧑🏽‍🫯‍🧑🏼' => 'مصارعون: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '🧑🏽‍🫯‍🧑🏾' => 'مصارعون: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '🧑🏽‍🫯‍🧑🏿' => 'مصارعون: بشرة بلون معتدل وبشرة بلون غامق',
+    '🧑🏾‍🫯‍🧑🏻' => 'مصارعون: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '🧑🏾‍🫯‍🧑🏼' => 'مصارعون: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '🧑🏾‍🫯‍🧑🏽' => 'مصارعون: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '🧑🏾‍🫯‍🧑🏿' => 'مصارعون: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '🧑🏿‍🫯‍🧑🏻' => 'مصارعون: بشرة بلون غامق وبشرة بلون فاتح',
+    '🧑🏿‍🫯‍🧑🏼' => 'مصارعون: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '🧑🏿‍🫯‍🧑🏽' => 'مصارعون: بشرة بلون غامق وبشرة بلون معتدل',
+    '🧑🏿‍🫯‍🧑🏾' => 'مصارعون: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
     '🧑🏻‍❤‍🧑🏼' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون فاتح، وبشرة بلون فاتح ومعتدل',
     '🧑🏻‍❤‍🧑🏽' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون فاتح، وبشرة بلون معتدل',
     '🧑🏻‍❤‍🧑🏾' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون فاتح، وبشرة بلون معتدل مائل للغامق',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون غامق، وبشرة بلون فاتح ومعتدل',
     '🧑🏿‍❤‍🧑🏽' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون غامق، وبشرة بلون معتدل',
     '🧑🏿‍❤‍🧑🏾' => 'زوج وقلب: بالغ، وبالغ، وبشرة بلون غامق، وبشرة بلون معتدل مائل للغامق',
+    '🧑🏻‍🐰‍🧑🏼' => 'شخصان يرقصان: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '🧑🏻‍🐰‍🧑🏽' => 'شخصان يرقصان: بشرة بلون فاتح وبشرة بلون معتدل',
+    '🧑🏻‍🐰‍🧑🏾' => 'شخصان يرقصان: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '🧑🏻‍🐰‍🧑🏿' => 'شخصان يرقصان: بشرة بلون فاتح وبشرة بلون غامق',
+    '🧑🏼‍🐰‍🧑🏻' => 'شخصان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '🧑🏼‍🐰‍🧑🏽' => 'شخصان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '🧑🏼‍🐰‍🧑🏾' => 'شخصان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '🧑🏼‍🐰‍🧑🏿' => 'شخصان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '🧑🏽‍🐰‍🧑🏻' => 'شخصان يرقصان: بشرة بلون معتدل وبشرة بلون فاتح',
+    '🧑🏽‍🐰‍🧑🏼' => 'شخصان يرقصان: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '🧑🏽‍🐰‍🧑🏾' => 'شخصان يرقصان: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '🧑🏽‍🐰‍🧑🏿' => 'شخصان يرقصان: بشرة بلون معتدل وبشرة بلون غامق',
+    '🧑🏾‍🐰‍🧑🏻' => 'شخصان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '🧑🏾‍🐰‍🧑🏼' => 'شخصان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '🧑🏾‍🐰‍🧑🏽' => 'شخصان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '🧑🏾‍🐰‍🧑🏿' => 'شخصان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '🧑🏿‍🐰‍🧑🏻' => 'شخصان يرقصان: بشرة بلون غامق وبشرة بلون فاتح',
+    '🧑🏿‍🐰‍🧑🏼' => 'شخصان يرقصان: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '🧑🏿‍🐰‍🧑🏽' => 'شخصان يرقصان: بشرة بلون غامق وبشرة بلون معتدل',
+    '🧑🏿‍🐰‍🧑🏾' => 'شخصان يرقصان: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
+    '👨🏻‍🫯‍👨🏼' => 'مصارعة رجال: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '👨🏻‍🫯‍👨🏽' => 'مصارعة رجال: بشرة بلون فاتح وبشرة بلون معتدل',
+    '👨🏻‍🫯‍👨🏾' => 'مصارعة رجال: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '👨🏻‍🫯‍👨🏿' => 'مصارعة رجال: بشرة بلون فاتح وبشرة بلون غامق',
+    '👨🏼‍🫯‍👨🏻' => 'مصارعة رجال: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '👨🏼‍🫯‍👨🏽' => 'مصارعة رجال: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '👨🏼‍🫯‍👨🏾' => 'مصارعة رجال: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '👨🏼‍🫯‍👨🏿' => 'مصارعة رجال: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '👨🏽‍🫯‍👨🏻' => 'مصارعة رجال: بشرة بلون معتدل وبشرة بلون فاتح',
+    '👨🏽‍🫯‍👨🏼' => 'مصارعة رجال: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '👨🏽‍🫯‍👨🏾' => 'مصارعة رجال: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '👨🏽‍🫯‍👨🏿' => 'مصارعة رجال: بشرة بلون معتدل وبشرة بلون غامق',
+    '👨🏾‍🫯‍👨🏻' => 'مصارعة رجال: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '👨🏾‍🫯‍👨🏼' => 'مصارعة رجال: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '👨🏾‍🫯‍👨🏽' => 'مصارعة رجال: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '👨🏾‍🫯‍👨🏿' => 'مصارعة رجال: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '👨🏿‍🫯‍👨🏻' => 'مصارعة رجال: بشرة بلون غامق وبشرة بلون فاتح',
+    '👨🏿‍🫯‍👨🏼' => 'مصارعة رجال: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '👨🏿‍🫯‍👨🏽' => 'مصارعة رجال: بشرة بلون غامق وبشرة بلون معتدل',
+    '👨🏿‍🫯‍👨🏾' => 'مصارعة رجال: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
     '👨🏻‍❤‍👨🏻' => 'زوج وقلب: رجل، ورجل، وبشرة بلون فاتح',
     '👨🏻‍❤‍👨🏼' => 'زوج وقلب: رجل، ورجل، وبشرة بلون فاتح، وبشرة بلون فاتح ومعتدل',
     '👨🏻‍❤‍👨🏽' => 'زوج وقلب: رجل، ورجل، وبشرة بلون فاتح، وبشرة بلون معتدل',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'زوج وقلب: رجل، ورجل، وبشرة بلون غامق، وبشرة بلون معتدل',
     '👨🏿‍❤‍👨🏾' => 'زوج وقلب: رجل، ورجل، وبشرة بلون غامق، وبشرة بلون معتدل مائل للغامق',
     '👨🏿‍❤‍👨🏿' => 'زوج وقلب: رجل، ورجل، وبشرة بلون غامق',
+    '👨🏻‍🐰‍👨🏼' => 'رجلان يرقصان: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '👨🏻‍🐰‍👨🏽' => 'رجلان يرقصان: بشرة بلون فاتح وبشرة بلون معتدل',
+    '👨🏻‍🐰‍👨🏾' => 'رجلان يرقصان: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '👨🏻‍🐰‍👨🏿' => 'رجلان يرقصان: بشرة بلون فاتح وبشرة بلون غامق',
+    '👨🏼‍🐰‍👨🏻' => 'رجلان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '👨🏼‍🐰‍👨🏽' => 'رجلان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '👨🏼‍🐰‍👨🏾' => 'رجلان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '👨🏼‍🐰‍👨🏿' => 'رجلان يرقصان: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '👨🏽‍🐰‍👨🏻' => 'رجلان يرقصان: بشرة بلون معتدل وبشرة بلون فاتح',
+    '👨🏽‍🐰‍👨🏼' => 'رجلان يرقصان: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '👨🏽‍🐰‍👨🏾' => 'رجلان يرقصان: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '👨🏽‍🐰‍👨🏿' => 'رجلان يرقصان: بشرة بلون معتدل وبشرة بلون غامق',
+    '👨🏾‍🐰‍👨🏻' => 'رجلان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '👨🏾‍🐰‍👨🏼' => 'رجلان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '👨🏾‍🐰‍👨🏽' => 'رجلان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '👨🏾‍🐰‍👨🏿' => 'رجلان يرقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '👨🏿‍🐰‍👨🏻' => 'رجلان يرقصان: بشرة بلون غامق وبشرة بلون فاتح',
+    '👨🏿‍🐰‍👨🏼' => 'رجلان يرقصان: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '👨🏿‍🐰‍👨🏽' => 'رجلان يرقصان: بشرة بلون غامق وبشرة بلون معتدل',
+    '👨🏿‍🐰‍👨🏾' => 'رجلان يرقصان: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
+    '👩🏻‍🫯‍👩🏼' => 'مصارعة سيدات: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '👩🏻‍🫯‍👩🏽' => 'مصارعة سيدات: بشرة بلون فاتح وبشرة بلون معتدل',
+    '👩🏻‍🫯‍👩🏾' => 'مصارعة سيدات: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '👩🏻‍🫯‍👩🏿' => 'مصارعة سيدات: بشرة بلون فاتح وبشرة بلون غامق',
+    '👩🏼‍🫯‍👩🏻' => 'مصارعة سيدات: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '👩🏼‍🫯‍👩🏽' => 'مصارعة سيدات: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '👩🏼‍🫯‍👩🏾' => 'مصارعة سيدات: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '👩🏼‍🫯‍👩🏿' => 'مصارعة سيدات: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '👩🏽‍🫯‍👩🏻' => 'مصارعة سيدات: بشرة بلون معتدل وبشرة بلون فاتح',
+    '👩🏽‍🫯‍👩🏼' => 'مصارعة سيدات: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '👩🏽‍🫯‍👩🏾' => 'مصارعة سيدات: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '👩🏽‍🫯‍👩🏿' => 'مصارعة سيدات: بشرة بلون معتدل وبشرة بلون غامق',
+    '👩🏾‍🫯‍👩🏻' => 'مصارعة سيدات: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '👩🏾‍🫯‍👩🏼' => 'مصارعة سيدات: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '👩🏾‍🫯‍👩🏽' => 'مصارعة سيدات: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '👩🏾‍🫯‍👩🏿' => 'مصارعة سيدات: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '👩🏿‍🫯‍👩🏻' => 'مصارعة سيدات: بشرة بلون غامق وبشرة بلون فاتح',
+    '👩🏿‍🫯‍👩🏼' => 'مصارعة سيدات: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '👩🏿‍🫯‍👩🏽' => 'مصارعة سيدات: بشرة بلون غامق وبشرة بلون معتدل',
+    '👩🏿‍🫯‍👩🏾' => 'مصارعة سيدات: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
     '👩🏻‍❤‍👨🏻' => 'زوج وقلب: سيدة، ورجل، وبشرة بلون فاتح',
     '👩🏻‍❤‍👨🏼' => 'زوج وقلب: سيدة، ورجل، وبشرة بلون فاتح، وبشرة بلون فاتح ومعتدل',
     '👩🏻‍❤‍👨🏽' => 'زوج وقلب: سيدة، ورجل، وبشرة بلون فاتح، وبشرة بلون معتدل',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'زوج وقلب: سيدة، وسيدة، وبشرة بلون غامق، وبشرة بلون معتدل',
     '👩🏿‍❤‍👩🏾' => 'زوج وقلب: سيدة، وسيدة، وبشرة بلون غامق، وبشرة بلون معتدل مائل للغامق',
     '👩🏿‍❤‍👩🏿' => 'زوج وقلب: سيدة، وسيدة، وبشرة بلون غامق',
+    '👩🏻‍🐰‍👩🏼' => 'امرأتان ترقصان: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
+    '👩🏻‍🐰‍👩🏽' => 'امرأتان ترقصان: بشرة بلون فاتح وبشرة بلون معتدل',
+    '👩🏻‍🐰‍👩🏾' => 'امرأتان ترقصان: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
+    '👩🏻‍🐰‍👩🏿' => 'امرأتان ترقصان: بشرة بلون فاتح وبشرة بلون غامق',
+    '👩🏼‍🐰‍👩🏻' => 'امرأتان ترقصان: بشرة بلون فاتح ومعتدل وبشرة بلون فاتح',
+    '👩🏼‍🐰‍👩🏽' => 'امرأتان ترقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل',
+    '👩🏼‍🐰‍👩🏾' => 'امرأتان ترقصان: بشرة بلون فاتح ومعتدل وبشرة بلون معتدل مائل للغامق',
+    '👩🏼‍🐰‍👩🏿' => 'امرأتان ترقصان: بشرة بلون فاتح ومعتدل وبشرة بلون غامق',
+    '👩🏽‍🐰‍👩🏻' => 'امرأتان ترقصان: بشرة بلون معتدل وبشرة بلون فاتح',
+    '👩🏽‍🐰‍👩🏼' => 'امرأتان ترقصان: بشرة بلون معتدل وبشرة بلون فاتح ومعتدل',
+    '👩🏽‍🐰‍👩🏾' => 'امرأتان ترقصان: بشرة بلون معتدل وبشرة بلون معتدل مائل للغامق',
+    '👩🏽‍🐰‍👩🏿' => 'امرأتان ترقصان: بشرة بلون معتدل وبشرة بلون غامق',
+    '👩🏾‍🐰‍👩🏻' => 'امرأتان ترقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح',
+    '👩🏾‍🐰‍👩🏼' => 'امرأتان ترقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون فاتح ومعتدل',
+    '👩🏾‍🐰‍👩🏽' => 'امرأتان ترقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون معتدل',
+    '👩🏾‍🐰‍👩🏿' => 'امرأتان ترقصان: بشرة بلون معتدل مائل للغامق وبشرة بلون غامق',
+    '👩🏿‍🐰‍👩🏻' => 'امرأتان ترقصان: بشرة بلون غامق وبشرة بلون فاتح',
+    '👩🏿‍🐰‍👩🏼' => 'امرأتان ترقصان: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
+    '👩🏿‍🐰‍👩🏽' => 'امرأتان ترقصان: بشرة بلون غامق وبشرة بلون معتدل',
+    '👩🏿‍🐰‍👩🏾' => 'امرأتان ترقصان: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
     '🧑🏻‍🤝‍🧑🏻' => 'أشخاص يمسكون بأيدي بعضهم: بشرة بلون فاتح',
     '🧑🏻‍🤝‍🧑🏼' => 'أشخاص يمسكون بأيدي بعضهم: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
     '🧑🏻‍🤝‍🧑🏽' => 'أشخاص يمسكون بأيدي بعضهم: بشرة بلون فاتح وبشرة بلون معتدل',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'علم: اسكتلندا',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'علم: ويلز',
     '🧑‍🧑‍🧒‍🧒' => 'أسرة: بالغ، بالغة، طفل، طفلة',
-    '🚶🏻‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶🏼‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶🏽‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶🏾‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶🏿‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶🏻‍♂‍➡' => 'سائر متجه لليمين',
-    '🚶🏼‍♂‍➡' => 'سائر متجه لليمين',
-    '🚶🏽‍♂‍➡' => 'سائر متجه لليمين',
-    '🚶🏾‍♂‍➡' => 'سائر متجه لليمين',
-    '🚶🏿‍♂‍➡' => 'سائر متجه لليمين',
-    '🧎🏻‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎🏼‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎🏽‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎🏾‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎🏿‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎🏻‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧎🏼‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧎🏽‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧎🏾‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧎🏿‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧑🏻‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '🧑🏼‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '🧑🏽‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '🧑🏾‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '🧑🏿‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '👨🏻‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👨🏼‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👨🏽‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👨🏾‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👨🏿‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👩🏻‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '👩🏼‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '👩🏽‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '👩🏾‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '👩🏿‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '🧑🏻‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '🧑🏼‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '🧑🏽‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '🧑🏾‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '🧑🏿‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '👨🏻‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👨🏼‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👨🏽‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👨🏾‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👨🏿‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👩🏻‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '👩🏼‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '👩🏽‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '👩🏾‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '👩🏿‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '🧑🏻‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '🧑🏼‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '🧑🏽‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '🧑🏾‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '🧑🏿‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '👨🏻‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👨🏼‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👨🏽‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👨🏾‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👨🏿‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👩🏻‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '👩🏼‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '👩🏽‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '👩🏾‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '👩🏿‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '🏃🏻‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃🏼‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃🏽‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃🏾‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃🏿‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃🏻‍♂‍➡' => 'راكض متجه لليمين',
-    '🏃🏼‍♂‍➡' => 'راكض متجه لليمين',
-    '🏃🏽‍♂‍➡' => 'راكض متجه لليمين',
-    '🏃🏾‍♂‍➡' => 'راكض متجه لليمين',
-    '🏃🏿‍♂‍➡' => 'راكض متجه لليمين',
+    '🚶🏻‍♀‍➡' => 'سائرة: بشرة بلون فاتح ومتجه لليمين',
+    '🚶🏼‍♀‍➡' => 'سائرة: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🚶🏽‍♀‍➡' => 'سائرة: بشرة بلون معتدل ومتجه لليمين',
+    '🚶🏾‍♀‍➡' => 'سائرة: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🚶🏿‍♀‍➡' => 'سائرة: بشرة بلون غامق ومتجه لليمين',
+    '🚶🏻‍♂‍➡' => 'سائر: بشرة بلون فاتح ومتجه لليمين',
+    '🚶🏼‍♂‍➡' => 'سائر: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🚶🏽‍♂‍➡' => 'سائر: بشرة بلون معتدل ومتجه لليمين',
+    '🚶🏾‍♂‍➡' => 'سائر: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🚶🏿‍♂‍➡' => 'سائر: بشرة بلون غامق ومتجه لليمين',
+    '🧎🏻‍♀‍➡' => 'سيدة جالسة على ركبتيها: بشرة بلون فاتح ومتجه لليمين',
+    '🧎🏼‍♀‍➡' => 'سيدة جالسة على ركبتيها: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧎🏽‍♀‍➡' => 'سيدة جالسة على ركبتيها: بشرة بلون معتدل ومتجه لليمين',
+    '🧎🏾‍♀‍➡' => 'سيدة جالسة على ركبتيها: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧎🏿‍♀‍➡' => 'سيدة جالسة على ركبتيها: بشرة بلون غامق ومتجه لليمين',
+    '🧎🏻‍♂‍➡' => 'رجل جالس على ركبتيه: بشرة بلون فاتح ومتجه لليمين',
+    '🧎🏼‍♂‍➡' => 'رجل جالس على ركبتيه: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧎🏽‍♂‍➡' => 'رجل جالس على ركبتيه: بشرة بلون معتدل ومتجه لليمين',
+    '🧎🏾‍♂‍➡' => 'رجل جالس على ركبتيه: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧎🏿‍♂‍➡' => 'رجل جالس على ركبتيه: بشرة بلون غامق ومتجه لليمين',
+    '🧑🏻‍🦯‍➡' => 'شخص مع عصا سير: بشرة بلون فاتح ومتجه لليمين',
+    '🧑🏼‍🦯‍➡' => 'شخص مع عصا سير: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧑🏽‍🦯‍➡' => 'شخص مع عصا سير: بشرة بلون معتدل ومتجه لليمين',
+    '🧑🏾‍🦯‍➡' => 'شخص مع عصا سير: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧑🏿‍🦯‍➡' => 'شخص مع عصا سير: بشرة بلون غامق ومتجه لليمين',
+    '👨🏻‍🦯‍➡' => 'رجل بعصا سير: بشرة بلون فاتح ومتجه لليمين',
+    '👨🏼‍🦯‍➡' => 'رجل بعصا سير: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👨🏽‍🦯‍➡' => 'رجل بعصا سير: بشرة بلون معتدل ومتجه لليمين',
+    '👨🏾‍🦯‍➡' => 'رجل بعصا سير: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👨🏿‍🦯‍➡' => 'رجل بعصا سير: بشرة بلون غامق ومتجه لليمين',
+    '👩🏻‍🦯‍➡' => 'سيدة بعصا سير: بشرة بلون فاتح ومتجه لليمين',
+    '👩🏼‍🦯‍➡' => 'سيدة بعصا سير: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👩🏽‍🦯‍➡' => 'سيدة بعصا سير: بشرة بلون معتدل ومتجه لليمين',
+    '👩🏾‍🦯‍➡' => 'سيدة بعصا سير: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👩🏿‍🦯‍➡' => 'سيدة بعصا سير: بشرة بلون غامق ومتجه لليمين',
+    '🧑🏻‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: بشرة بلون فاتح ومتجه لليمين',
+    '🧑🏼‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧑🏽‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: بشرة بلون معتدل ومتجه لليمين',
+    '🧑🏾‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧑🏿‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: بشرة بلون غامق ومتجه لليمين',
+    '👨🏻‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: بشرة بلون فاتح ومتجه لليمين',
+    '👨🏼‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👨🏽‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: بشرة بلون معتدل ومتجه لليمين',
+    '👨🏾‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👨🏿‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: بشرة بلون غامق ومتجه لليمين',
+    '👩🏻‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: بشرة بلون فاتح ومتجه لليمين',
+    '👩🏼‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👩🏽‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: بشرة بلون معتدل ومتجه لليمين',
+    '👩🏾‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👩🏿‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: بشرة بلون غامق ومتجه لليمين',
+    '🧑🏻‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: بشرة بلون فاتح ومتجه لليمين',
+    '🧑🏼‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧑🏽‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: بشرة بلون معتدل ومتجه لليمين',
+    '🧑🏾‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧑🏿‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: بشرة بلون غامق ومتجه لليمين',
+    '👨🏻‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: بشرة بلون فاتح ومتجه لليمين',
+    '👨🏼‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👨🏽‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: بشرة بلون معتدل ومتجه لليمين',
+    '👨🏾‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👨🏿‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: بشرة بلون غامق ومتجه لليمين',
+    '👩🏻‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: بشرة بلون فاتح ومتجه لليمين',
+    '👩🏼‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '👩🏽‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: بشرة بلون معتدل ومتجه لليمين',
+    '👩🏾‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '👩🏿‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: بشرة بلون غامق ومتجه لليمين',
+    '🏃🏻‍♀‍➡' => 'راكضة: بشرة بلون فاتح ومتجه لليمين',
+    '🏃🏼‍♀‍➡' => 'راكضة: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🏃🏽‍♀‍➡' => 'راكضة: بشرة بلون معتدل ومتجه لليمين',
+    '🏃🏾‍♀‍➡' => 'راكضة: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🏃🏿‍♀‍➡' => 'راكضة: بشرة بلون غامق ومتجه لليمين',
+    '🏃🏻‍♂‍➡' => 'راكض: بشرة بلون فاتح ومتجه لليمين',
+    '🏃🏼‍♂‍➡' => 'راكض: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🏃🏽‍♂‍➡' => 'راكض: بشرة بلون معتدل ومتجه لليمين',
+    '🏃🏾‍♂‍➡' => 'راكض: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🏃🏿‍♂‍➡' => 'راكض: بشرة بلون غامق ومتجه لليمين',
     '🫱🏻‍🫲🏼' => 'مصافحة: بشرة بلون فاتح وبشرة بلون فاتح ومعتدل',
     '🫱🏻‍🫲🏽' => 'مصافحة: بشرة بلون فاتح وبشرة بلون معتدل',
     '🫱🏻‍🫲🏾' => 'مصافحة: بشرة بلون فاتح وبشرة بلون معتدل مائل للغامق',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'مصافحة: بشرة بلون غامق وبشرة بلون فاتح ومعتدل',
     '🫱🏿‍🫲🏽' => 'مصافحة: بشرة بلون غامق وبشرة بلون معتدل',
     '🫱🏿‍🫲🏾' => 'مصافحة: بشرة بلون غامق وبشرة بلون معتدل مائل للغامق',
-    '🚶‍♀‍➡' => 'سائرة متجه لليمين',
-    '🚶‍♂‍➡' => 'سائر متجه لليمين',
-    '🧎‍♀‍➡' => 'سيدة جالسة على ركبتيها متجه لليمين',
-    '🧎‍♂‍➡' => 'رجل جالس على ركبتيه متجه لليمين',
-    '🧑‍🦯‍➡' => 'شخص مع عصا سير متجه لليمين',
-    '👨‍🦯‍➡' => 'رجل بعصا سير متجه لليمين',
-    '👩‍🦯‍➡' => 'سيدة بعصا سير متجه لليمين',
-    '🧑‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي متجه لليمين',
-    '👨‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي متجه لليمين',
-    '👩‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي متجه لليمين',
-    '🧑‍🦽‍➡' => 'شخص على كرسي متحرك يدوي متجه لليمين',
-    '👨‍🦽‍➡' => 'رجل على كرسي متحرك يدوي متجه لليمين',
-    '👩‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي متجه لليمين',
-    '🏃‍♀‍➡' => 'راكضة متجه لليمين',
-    '🏃‍♂‍➡' => 'راكض متجه لليمين',
+    '🚶‍♀‍➡' => 'سائرة: متجه لليمين',
+    '🚶‍♂‍➡' => 'سائر: متجه لليمين',
+    '🧎‍♀‍➡' => 'سيدة جالسة على ركبتيها: متجه لليمين',
+    '🧎‍♂‍➡' => 'رجل جالس على ركبتيه: متجه لليمين',
+    '🧑‍🦯‍➡' => 'شخص مع عصا سير: متجه لليمين',
+    '👨‍🦯‍➡' => 'رجل بعصا سير: متجه لليمين',
+    '👩‍🦯‍➡' => 'سيدة بعصا سير: متجه لليمين',
+    '🧑‍🦼‍➡' => 'شخص على كرسي متحرك كهربائي: متجه لليمين',
+    '👨‍🦼‍➡' => 'رجل على كرسي متحرك كهربائي: متجه لليمين',
+    '👩‍🦼‍➡' => 'سيدة على كرسي متحرك كهربائي: متجه لليمين',
+    '🧑‍🦽‍➡' => 'شخص على كرسي متحرك يدوي: متجه لليمين',
+    '👨‍🦽‍➡' => 'رجل على كرسي متحرك يدوي: متجه لليمين',
+    '👩‍🦽‍➡' => 'سيدة على كرسي متحرك يدوي: متجه لليمين',
+    '🏃‍♀‍➡' => 'راكضة: متجه لليمين',
+    '🏃‍♂‍➡' => 'راكض: متجه لليمين',
     '👩‍❤‍👨' => 'زوج وقلب: سيدة ورجل',
     '👨‍❤‍👨' => 'زوج وقلب: رجل ورجل',
     '👩‍❤‍👩' => 'زوج وقلب: سيدة وسيدة',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'بالغ: بشرة بلون معتدل وأصلع',
     '🧑🏾‍🦲' => 'بالغ: بشرة بلون معتدل مائل للغامق وأصلع',
     '🧑🏿‍🦲' => 'بالغ: بشرة بلون غامق وأصلع',
+    '🧑🏻‍🩰' => 'راقصة باليه: بشرة بلون فاتح',
+    '🧑🏼‍🩰' => 'راقصة باليه: بشرة بلون فاتح ومعتدل',
+    '🧑🏽‍🩰' => 'راقصة باليه: بشرة بلون معتدل',
+    '🧑🏾‍🩰' => 'راقصة باليه: بشرة بلون معتدل مائل للغامق',
+    '🧑🏿‍🩰' => 'راقصة باليه: بشرة بلون غامق',
     '🧔🏻‍♂' => 'رجل بلحية: بشرة بلون فاتح',
     '🧔🏼‍♂' => 'رجل بلحية: بشرة بلون فاتح ومعتدل',
     '🧔🏽‍♂' => 'رجل بلحية: بشرة بلون معتدل',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'سائرة: بشرة بلون معتدل',
     '🚶🏾‍♀' => 'سائرة: بشرة بلون معتدل مائل للغامق',
     '🚶🏿‍♀' => 'سائرة: بشرة بلون غامق',
-    '🚶🏻‍➡' => 'شخص يسير متجه لليمين',
-    '🚶🏼‍➡' => 'شخص يسير متجه لليمين',
-    '🚶🏽‍➡' => 'شخص يسير متجه لليمين',
-    '🚶🏾‍➡' => 'شخص يسير متجه لليمين',
-    '🚶🏿‍➡' => 'شخص يسير متجه لليمين',
+    '🚶🏻‍➡' => 'شخص يسير: بشرة بلون فاتح ومتجه لليمين',
+    '🚶🏼‍➡' => 'شخص يسير: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🚶🏽‍➡' => 'شخص يسير: بشرة بلون معتدل ومتجه لليمين',
+    '🚶🏾‍➡' => 'شخص يسير: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🚶🏿‍➡' => 'شخص يسير: بشرة بلون غامق ومتجه لليمين',
     '🧍🏻‍♂' => 'رجل واقف: بشرة بلون فاتح',
     '🧍🏼‍♂' => 'رجل واقف: بشرة بلون فاتح ومعتدل',
     '🧍🏽‍♂' => 'رجل واقف: بشرة بلون معتدل',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'سيدة جالسة على ركبتيها: بشرة بلون معتدل',
     '🧎🏾‍♀' => 'سيدة جالسة على ركبتيها: بشرة بلون معتدل مائل للغامق',
     '🧎🏿‍♀' => 'سيدة جالسة على ركبتيها: بشرة بلون غامق',
-    '🧎🏻‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
-    '🧎🏼‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
-    '🧎🏽‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
-    '🧎🏾‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
-    '🧎🏿‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
+    '🧎🏻‍➡' => 'شخص جالس على ركبتيه: بشرة بلون فاتح ومتجه لليمين',
+    '🧎🏼‍➡' => 'شخص جالس على ركبتيه: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🧎🏽‍➡' => 'شخص جالس على ركبتيه: بشرة بلون معتدل ومتجه لليمين',
+    '🧎🏾‍➡' => 'شخص جالس على ركبتيه: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🧎🏿‍➡' => 'شخص جالس على ركبتيه: بشرة بلون غامق ومتجه لليمين',
     '🧑🏻‍🦯' => 'شخص مع عصا سير: بشرة بلون فاتح',
     '🧑🏼‍🦯' => 'شخص مع عصا سير: بشرة بلون فاتح ومعتدل',
     '🧑🏽‍🦯' => 'شخص مع عصا سير: بشرة بلون معتدل',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'راكضة: بشرة بلون معتدل',
     '🏃🏾‍♀' => 'راكضة: بشرة بلون معتدل مائل للغامق',
     '🏃🏿‍♀' => 'راكضة: بشرة بلون غامق',
-    '🏃🏻‍➡' => 'شخص يجري متجه لليمين',
-    '🏃🏼‍➡' => 'شخص يجري متجه لليمين',
-    '🏃🏽‍➡' => 'شخص يجري متجه لليمين',
-    '🏃🏾‍➡' => 'شخص يجري متجه لليمين',
-    '🏃🏿‍➡' => 'شخص يجري متجه لليمين',
+    '🏃🏻‍➡' => 'شخص يجري: بشرة بلون فاتح ومتجه لليمين',
+    '🏃🏼‍➡' => 'شخص يجري: بشرة بلون فاتح ومعتدل ومتجه لليمين',
+    '🏃🏽‍➡' => 'شخص يجري: بشرة بلون معتدل ومتجه لليمين',
+    '🏃🏾‍➡' => 'شخص يجري: بشرة بلون معتدل مائل للغامق ومتجه لليمين',
+    '🏃🏿‍➡' => 'شخص يجري: بشرة بلون غامق ومتجه لليمين',
+    '👯🏻‍♀' => 'امرأتان ترقصان: بشرة بلون فاتح',
+    '👯🏼‍♀' => 'امرأتان ترقصان: بشرة بلون فاتح ومعتدل',
+    '👯🏽‍♀' => 'امرأتان ترقصان: بشرة بلون معتدل',
+    '👯🏾‍♀' => 'امرأتان ترقصان: بشرة بلون معتدل مائل للغامق',
+    '👯🏿‍♀' => 'امرأتان ترقصان: بشرة بلون غامق',
+    '👯🏻‍♂' => 'رجلان يرقصان: بشرة بلون فاتح',
+    '👯🏼‍♂' => 'رجلان يرقصان: بشرة بلون فاتح ومعتدل',
+    '👯🏽‍♂' => 'رجلان يرقصان: بشرة بلون معتدل',
+    '👯🏾‍♂' => 'رجلان يرقصان: بشرة بلون معتدل مائل للغامق',
+    '👯🏿‍♂' => 'رجلان يرقصان: بشرة بلون غامق',
     '🧖🏻‍♂' => 'رجل في حمّام بخار: بشرة بلون فاتح',
     '🧖🏼‍♂' => 'رجل في حمّام بخار: بشرة بلون فاتح ومعتدل',
     '🧖🏽‍♂' => 'رجل في حمّام بخار: بشرة بلون معتدل',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'سيدة تفعل حركة العجلة: بشرة بلون معتدل',
     '🤸🏾‍♀' => 'سيدة تفعل حركة العجلة: بشرة بلون معتدل مائل للغامق',
     '🤸🏿‍♀' => 'سيدة تفعل حركة العجلة: بشرة بلون غامق',
+    '🤼🏻‍♀' => 'مصارعة سيدات: بشرة بلون فاتح',
+    '🤼🏼‍♀' => 'مصارعة سيدات: بشرة بلون فاتح ومعتدل',
+    '🤼🏽‍♀' => 'مصارعة سيدات: بشرة بلون معتدل',
+    '🤼🏾‍♀' => 'مصارعة سيدات: بشرة بلون معتدل مائل للغامق',
+    '🤼🏿‍♀' => 'مصارعة سيدات: بشرة بلون غامق',
+    '🤼🏻‍♂' => 'مصارعة رجال: بشرة بلون فاتح',
+    '🤼🏼‍♂' => 'مصارعة رجال: بشرة بلون فاتح ومعتدل',
+    '🤼🏽‍♂' => 'مصارعة رجال: بشرة بلون معتدل',
+    '🤼🏾‍♂' => 'مصارعة رجال: بشرة بلون معتدل مائل للغامق',
+    '🤼🏿‍♂' => 'مصارعة رجال: بشرة بلون غامق',
     '🤽🏻‍♂' => 'لاعب كرة ماء: بشرة بلون فاتح',
     '🤽🏼‍♂' => 'لاعب كرة ماء: بشرة بلون فاتح ومعتدل',
     '🤽🏽‍♂' => 'لاعب كرة ماء: بشرة بلون معتدل',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'سيدة: شعر مجعد',
     '👩‍🦳' => 'سيدة: شعر أبيض',
     '👩‍🦲' => 'سيدة: أصلع',
-    '🚶‍➡' => 'شخص يسير متجه لليمين',
-    '🧎‍➡' => 'شخص جالس على ركبتيه متجه لليمين',
-    '🏃‍➡' => 'شخص يجري متجه لليمين',
+    '🚶‍➡' => 'شخص يسير: متجه لليمين',
+    '🧎‍➡' => 'شخص جالس على ركبتيه: متجه لليمين',
+    '🏃‍➡' => 'شخص يجري: متجه لليمين',
     '👨‍👦' => 'أسرة: رجل وصبي',
     '👨‍👧' => 'أسرة: رجل وفتاة',
     '👩‍👦' => 'أسرة: سيدة وصبي',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'سيدة على كرسي متحرك يدوي',
     '🏃‍♂' => 'راكض',
     '🏃‍♀' => 'راكضة',
+    '🧑‍🩰' => 'راقصة باليه',
     '👯‍♂' => 'رجلان يرقصان',
     '👯‍♀' => 'امرأتان ترقصان',
     '🧖‍♂' => 'رجل في حمّام بخار',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'رجل أعمال يرتقي: بشرة بلون معتدل',
     '🕴🏾' => 'رجل أعمال يرتقي: بشرة بلون معتدل مائل للغامق',
     '🕴🏿' => 'رجل أعمال يرتقي: بشرة بلون غامق',
+    '👯🏻' => 'شخصان يرقصان: بشرة بلون فاتح',
+    '👯🏼' => 'شخصان يرقصان: بشرة بلون فاتح ومعتدل',
+    '👯🏽' => 'شخصان يرقصان: بشرة بلون معتدل',
+    '👯🏾' => 'شخصان يرقصان: بشرة بلون معتدل مائل للغامق',
+    '👯🏿' => 'شخصان يرقصان: بشرة بلون غامق',
     '🧖🏻' => 'شخص في حمّام بخار: بشرة بلون فاتح',
     '🧖🏼' => 'شخص في حمّام بخار: بشرة بلون فاتح ومعتدل',
     '🧖🏽' => 'شخص في حمّام بخار: بشرة بلون معتدل',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'شخص يؤدي حركة العجلة: بشرة بلون معتدل',
     '🤸🏾' => 'شخص يؤدي حركة العجلة: بشرة بلون معتدل مائل للغامق',
     '🤸🏿' => 'شخص يؤدي حركة العجلة: بشرة بلون غامق',
+    '🤼🏻' => 'مصارعون: بشرة بلون فاتح',
+    '🤼🏼' => 'مصارعون: بشرة بلون فاتح ومعتدل',
+    '🤼🏽' => 'مصارعون: بشرة بلون معتدل',
+    '🤼🏾' => 'مصارعون: بشرة بلون معتدل مائل للغامق',
+    '🤼🏿' => 'مصارعون: بشرة بلون غامق',
     '🤽🏻' => 'شخص يلعب كرة ماء: بشرة بلون فاتح',
     '🤽🏼' => 'شخص يلعب كرة ماء: بشرة بلون فاتح ومعتدل',
     '🤽🏽' => 'شخص يلعب كرة ماء: بشرة بلون معتدل',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'علم: الصين',
     '🇨🇴' => 'علم: كولومبيا',
     '🇨🇵' => 'علم: جزيرة كليبيرتون',
+    '🇨🇶' => 'علم: سارك',
     '🇨🇷' => 'علم: كوستاريكا',
     '🇨🇺' => 'علم: كوبا',
     '🇨🇻' => 'علم: الرأس الأخضر',
@@ -2390,13 +2547,6 @@
     '🏽' => 'بشرة بلون معتدل',
     '🏾' => 'بشرة بلون معتدل مائل للغامق',
     '🏿' => 'بشرة بلون غامق',
-    '🪉' => 'قيثارة',
-    '🪏' => 'جاروف',
-    '🪾' => 'شجرة بلا أوراق',
-    '🫆' => 'بصمة',
-    '🫜' => 'خضراوات جذرية',
-    '🫟' => 'بقعة',
-    '🫩' => 'وجه بانتفاخ تحت العين',
     '😀' => 'وجه بابتسامة عريضة',
     '😃' => 'وجه مبتسم بعينين كبيرتين',
     '😄' => 'وجه مبتسم بعينين باسمتين',
@@ -2450,6 +2600,7 @@
     '😪' => 'وجه ناعس',
     '🤤' => 'وجه بلعاب سائل',
     '😴' => 'وجه نائم',
+    '🫩' => 'وجه بانتفاخ تحت العين',
     '😷' => 'وجه بكمامة',
     '🤒' => 'وجه مع ميزان للحرارة',
     '🤕' => 'وجه بعصابة رأس',
@@ -2476,6 +2627,7 @@
     '😯' => 'وجه مخفوت الصوت',
     '😲' => 'وجه مندهش',
     '😳' => 'وجه متورد',
+    '🫪' => 'وجه بأعين زائعة',
     '🥺' => 'وجه ملتمس',
     '🥹' => 'وجه يحبس دموعه',
     '😦' => 'وجه عابس بفم مفتوح',
@@ -2547,6 +2699,7 @@
     '💋' => 'علامة قبلة',
     '💯' => '100 درجة',
     '💢' => 'رمز الغضب',
+    '🫯' => 'سحابة اقتتال',
     '💥' => 'تصادم',
     '💫' => 'دوار',
     '💦' => 'عرق يتصبب',
@@ -2670,6 +2823,7 @@
     '🧞' => 'مارد سحري',
     '🧟' => 'زومبي',
     '🧌' => 'الترول',
+    '🫈' => 'كائن مشعر',
     '💆' => 'شخص يحصل على مساج',
     '💇' => 'شخص يُقص شعره',
     '🚶' => 'شخص يسير',
@@ -2713,6 +2867,7 @@
     '🫂' => 'شخصان يتعانقان',
     '👪' => 'أسرة',
     '👣' => 'أثر قدمين',
+    '🫆' => 'بصمة',
     '🦰' => 'شعر أحمر',
     '🦱' => 'شعر مجعد',
     '🦳' => 'شعر أبيض',
@@ -2812,6 +2967,7 @@
     '🐳' => 'حوت بنافورة',
     '🐋' => 'حوت',
     '🐬' => 'دولفين',
+    '🫍' => 'الحوت القاتل',
     '🦭' => 'فقمة',
     '🐟' => 'سمكة',
     '🐠' => 'سمكة استوائية',
@@ -2821,6 +2977,11 @@
     '🐚' => 'صدفة حلزونية',
     '🪸' => 'مرجان',
     '🪼' => 'قنديل بحر',
+    '🦀' => 'سرطان',
+    '🦞' => 'كركند',
+    '🦐' => 'جمبري',
+    '🦑' => 'حبار',
+    '🦪' => 'محار',
     '🐌' => 'حلزون',
     '🦋' => 'فراشة',
     '🐛' => 'بق',
@@ -2865,6 +3026,7 @@
     '🪹' => 'عش فارغ',
     '🪺' => 'عش به بيض',
     '🍄' => 'عيش الغراب',
+    '🪾' => 'شجرة بلا أوراق',
     '🍇' => 'عنب',
     '🍈' => 'شمام',
     '🍉' => 'بطيخ',
@@ -2901,6 +3063,7 @@
     '🌰' => 'كستناء',
     '🫚' => 'جذر الزنجبيل',
     '🫛' => 'قرن بازلاء',
+    '🫜' => 'خضراوات جذرية',
     '🍞' => 'خبز',
     '🥐' => 'كرواسون',
     '🥖' => 'الخبز الفرنسي',
@@ -2952,11 +3115,6 @@
     '🥟' => 'زلابية صينية',
     '🥠' => 'كعكة الحظ',
     '🥡' => 'علبة طعام للخارج',
-    '🦀' => 'سرطان',
-    '🦞' => 'كركند',
-    '🦐' => 'جمبري',
-    '🦑' => 'حبار',
-    '🦪' => 'محار',
     '🍦' => 'آيس كريم مخفف',
     '🍧' => 'آيس كريم مجروش',
     '🍨' => 'آيس كريم',
@@ -3007,6 +3165,7 @@
     '🧭' => 'بوصلة',
     '🏔' => 'جبل بقمة ثلجية',
     '⛰' => 'جبل',
+    '🛘' => 'انزلاق أرضي',
     '🌋' => 'بركان',
     '🗻' => 'جبل فوجي',
     '🏕' => 'تخييم',
@@ -3367,16 +3526,18 @@
     '🎧' => 'سماعة رأس',
     '📻' => 'راديو',
     '🎷' => 'ساكسفون',
+    '🎺' => 'آلة نفخ',
+    '🪊' => 'ترومبون',
     '🪗' => 'أكورديون',
     '🎸' => 'غيتار',
     '🎹' => 'بيانو',
-    '🎺' => 'آلة نفخ',
     '🎻' => 'كمان',
     '🪕' => 'آلة بانجو',
     '🥁' => 'طبلة',
     '🪘' => 'طبل طويل',
     '🪇' => 'مركاس',
     '🪈' => 'فلوت',
+    '🪉' => 'قيثارة',
     '📱' => 'هاتف جوال',
     '📲' => 'هاتف جوال مع سهم',
     '☎' => 'هاتف أرضي',
@@ -3430,8 +3591,9 @@
     '📑' => 'لصاقات علامات توقف قراءة',
     '🔖' => 'علامة توقف قراءة',
     '🏷' => 'ملصق',
-    '💰' => 'حقيبة نقود',
     '🪙' => 'عملة معدنية',
+    '💰' => 'حقيبة نقود',
+    '🪎' => 'صندوق كنز',
     '💴' => 'ورقة ين',
     '💵' => 'ورقة دولار',
     '💶' => 'ورقة يورو',
@@ -3514,6 +3676,7 @@
     '🧰' => 'صندوق أدوات',
     '🧲' => 'مغناطيس',
     '🪜' => 'سلّم',
+    '🪏' => 'جاروف',
     '⚗' => 'أمبيق',
     '🧪' => 'أنبوب اختبار',
     '🧫' => 'صحفة بتري',
@@ -3697,6 +3860,7 @@
     '✴' => 'نجمة بثمان نقاط',
     '❇' => 'ومضة',
     '™' => 'إشارة علامة تجارية',
+    '🫟' => 'بقعة',
     '🔠' => 'أحرف كبيرة',
     '🔡' => 'أحرف صغيرة',
     '🔢' => 'أرقام',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-as.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-as.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-as.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-as.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'চুমা: তিৰোতা, তিৰোতা, ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
     '👩🏿‍❤‍💋‍👩🏾' => 'চুমা: তিৰোতা, তিৰোতা, ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '👩🏿‍❤‍💋‍👩🏿' => 'চুমা: তিৰোতা, তিৰোতা, ক’লা ছালৰ ৰং',
+    '🧑🏻‍🫯‍🧑🏼' => 'মল্লযুদ্ধ কৰা ব্যক্তি: পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🧑🏻‍🫯‍🧑🏽' => 'মল্লযুদ্ধ কৰা ব্যক্তি: পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '🧑🏻‍🫯‍🧑🏾' => 'মল্লযুদ্ধ কৰা ব্যক্তি: পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🧑🏻‍🫯‍🧑🏿' => 'মল্লযুদ্ধ কৰা ব্যক্তি: পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '🧑🏼‍🫯‍🧑🏻' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '🧑🏼‍🫯‍🧑🏽' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '🧑🏼‍🫯‍🧑🏾' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🧑🏼‍🫯‍🧑🏿' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '🧑🏽‍🫯‍🧑🏻' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '🧑🏽‍🫯‍🧑🏼' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🧑🏽‍🫯‍🧑🏾' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🧑🏽‍🫯‍🧑🏿' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '🧑🏾‍🫯‍🧑🏻' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '🧑🏾‍🫯‍🧑🏼' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🧑🏾‍🫯‍🧑🏽' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '🧑🏾‍🫯‍🧑🏿' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '🧑🏿‍🫯‍🧑🏻' => 'মল্লযুদ্ধ কৰা ব্যক্তি: ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '🧑🏿‍🫯‍🧑🏼' => 'মল্লযুদ্ধ কৰা ব্যক্তি: ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🧑🏿‍🫯‍🧑🏽' => 'মল্লযুদ্ধ কৰা ব্যক্তি: ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '🧑🏿‍🫯‍🧑🏾' => 'মল্লযুদ্ধ কৰা ব্যক্তি: ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '🧑🏻‍❤‍🧑🏼' => 'হাৰ্টৰ সৈতে দম্পতি: প্ৰাপ্তবয়স্ক, প্ৰাপ্তবয়স্ক, পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🧑🏻‍❤‍🧑🏽' => 'হাৰ্টৰ সৈতে দম্পতি: প্ৰাপ্তবয়স্ক, প্ৰাপ্তবয়স্ক, পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
     '🧑🏻‍❤‍🧑🏾' => 'হাৰ্টৰ সৈতে দম্পতি: প্ৰাপ্তবয়স্ক, প্ৰাপ্তবয়স্ক, পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'হাৰ্টৰ সৈতে দম্পতি: প্ৰাপ্তবয়স্ক, প্ৰাপ্তবয়স্ক, ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🧑🏿‍❤‍🧑🏽' => 'হাৰ্টৰ সৈতে দম্পতি: প্ৰাপ্তবয়স্ক, প্ৰাপ্তবয়স্ক, ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
     '🧑🏿‍❤‍🧑🏾' => 'হাৰ্টৰ সৈতে দম্পতি: প্ৰাপ্তবয়স্ক, প্ৰাপ্তবয়স্ক, ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🧑🏻‍🐰‍🧑🏼' => 'শহাপহুৰ কাণৰ ব্যক্তি: পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🧑🏻‍🐰‍🧑🏽' => 'শহাপহুৰ কাণৰ ব্যক্তি: পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '🧑🏻‍🐰‍🧑🏾' => 'শহাপহুৰ কাণৰ ব্যক্তি: পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🧑🏻‍🐰‍🧑🏿' => 'শহাপহুৰ কাণৰ ব্যক্তি: পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '🧑🏼‍🐰‍🧑🏻' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '🧑🏼‍🐰‍🧑🏽' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '🧑🏼‍🐰‍🧑🏾' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🧑🏼‍🐰‍🧑🏿' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '🧑🏽‍🐰‍🧑🏻' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '🧑🏽‍🐰‍🧑🏼' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🧑🏽‍🐰‍🧑🏾' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🧑🏽‍🐰‍🧑🏿' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '🧑🏾‍🐰‍🧑🏻' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '🧑🏾‍🐰‍🧑🏼' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🧑🏾‍🐰‍🧑🏽' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '🧑🏾‍🐰‍🧑🏿' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '🧑🏿‍🐰‍🧑🏻' => 'শহাপহুৰ কাণৰ ব্যক্তি: ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '🧑🏿‍🐰‍🧑🏼' => 'শহাপহুৰ কাণৰ ব্যক্তি: ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🧑🏿‍🐰‍🧑🏽' => 'শহাপহুৰ কাণৰ ব্যক্তি: ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '🧑🏿‍🐰‍🧑🏾' => 'শহাপহুৰ কাণৰ ব্যক্তি: ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👨🏻‍🫯‍👨🏼' => 'পুৰুষৰ মল্লযুদ্ধ: পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👨🏻‍🫯‍👨🏽' => 'পুৰুষৰ মল্লযুদ্ধ: পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👨🏻‍🫯‍👨🏾' => 'পুৰুষৰ মল্লযুদ্ধ: পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👨🏻‍🫯‍👨🏿' => 'পুৰুষৰ মল্লযুদ্ধ: পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👨🏼‍🫯‍👨🏻' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া-পাতল ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👨🏼‍🫯‍👨🏽' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👨🏼‍🫯‍👨🏾' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👨🏼‍🫯‍👨🏿' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া-পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👨🏽‍🫯‍👨🏻' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👨🏽‍🫯‍👨🏼' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👨🏽‍🫯‍👨🏾' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👨🏽‍🫯‍👨🏿' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👨🏾‍🫯‍👨🏻' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া-ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👨🏾‍🫯‍👨🏼' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👨🏾‍🫯‍👨🏽' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👨🏾‍🫯‍👨🏿' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া-ক’লা ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👨🏿‍🫯‍👨🏻' => 'পুৰুষৰ মল্লযুদ্ধ: ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👨🏿‍🫯‍👨🏼' => 'পুৰুষৰ মল্লযুদ্ধ: ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👨🏿‍🫯‍👨🏽' => 'পুৰুষৰ মল্লযুদ্ধ: ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👨🏿‍🫯‍👨🏾' => 'পুৰুষৰ মল্লযুদ্ধ: ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '👨🏻‍❤‍👨🏻' => 'হাৰ্টৰ সৈতে দম্পতি: মুনিহ, মুনিহ, পাতল ছালৰ ৰং',
     '👨🏻‍❤‍👨🏼' => 'হাৰ্টৰ সৈতে দম্পতি: মুনিহ, মুনিহ, পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
     '👨🏻‍❤‍👨🏽' => 'হাৰ্টৰ সৈতে দম্পতি: মুনিহ, মুনিহ, পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'হাৰ্টৰ সৈতে দম্পতি: মুনিহ, মুনিহ, ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
     '👨🏿‍❤‍👨🏾' => 'হাৰ্টৰ সৈতে দম্পতি: মুনিহ, মুনিহ, ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '👨🏿‍❤‍👨🏿' => 'হাৰ্টৰ সৈতে দম্পতি: মুনিহ, মুনিহ, ক’লা ছালৰ ৰং',
+    '👨🏻‍🐰‍👨🏼' => 'শহাপহুৰ কাণৰ পুৰুষ: পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👨🏻‍🐰‍👨🏽' => 'শহাপহুৰ কাণৰ পুৰুষ: পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👨🏻‍🐰‍👨🏾' => 'শহাপহুৰ কাণৰ পুৰুষ: পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👨🏻‍🐰‍👨🏿' => 'শহাপহুৰ কাণৰ পুৰুষ: পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👨🏼‍🐰‍👨🏻' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া-পাতল ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👨🏼‍🐰‍👨🏽' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👨🏼‍🐰‍👨🏾' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👨🏼‍🐰‍👨🏿' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া-পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👨🏽‍🐰‍👨🏻' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👨🏽‍🐰‍👨🏼' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👨🏽‍🐰‍👨🏾' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👨🏽‍🐰‍👨🏿' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👨🏾‍🐰‍👨🏻' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া-ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👨🏾‍🐰‍👨🏼' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👨🏾‍🐰‍👨🏽' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👨🏾‍🐰‍👨🏿' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া-ক’লা ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👨🏿‍🐰‍👨🏻' => 'শহাপহুৰ কাণৰ পুৰুষ: ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👨🏿‍🐰‍👨🏼' => 'শহাপহুৰ কাণৰ পুৰুষ: ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👨🏿‍🐰‍👨🏽' => 'শহাপহুৰ কাণৰ পুৰুষ: ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👨🏿‍🐰‍👨🏾' => 'শহাপহুৰ কাণৰ পুৰুষ: ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👩🏻‍🫯‍👩🏼' => 'মহিলাৰ মল্লযুদ্ধ: পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👩🏻‍🫯‍👩🏽' => 'মহিলাৰ মল্লযুদ্ধ: পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👩🏻‍🫯‍👩🏾' => 'মহিলাৰ মল্লযুদ্ধ: পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👩🏻‍🫯‍👩🏿' => 'মহিলাৰ মল্লযুদ্ধ: পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👩🏼‍🫯‍👩🏻' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া-পাতল ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👩🏼‍🫯‍👩🏽' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👩🏼‍🫯‍👩🏾' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👩🏼‍🫯‍👩🏿' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া-পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👩🏽‍🫯‍👩🏻' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👩🏽‍🫯‍👩🏼' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👩🏽‍🫯‍👩🏾' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👩🏽‍🫯‍👩🏿' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👩🏾‍🫯‍👩🏻' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া-ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👩🏾‍🫯‍👩🏼' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👩🏾‍🫯‍👩🏽' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👩🏾‍🫯‍👩🏿' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া-ক’লা ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👩🏿‍🫯‍👩🏻' => 'মহিলাৰ মল্লযুদ্ধ: ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👩🏿‍🫯‍👩🏼' => 'মহিলাৰ মল্লযুদ্ধ: ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👩🏿‍🫯‍👩🏽' => 'মহিলাৰ মল্লযুদ্ধ: ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👩🏿‍🫯‍👩🏾' => 'মহিলাৰ মল্লযুদ্ধ: ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '👩🏻‍❤‍👨🏻' => 'হাৰ্টৰ সৈতে দম্পতি: তিৰোতা, মুনিহ, পাতল ছালৰ ৰং',
     '👩🏻‍❤‍👨🏼' => 'হাৰ্টৰ সৈতে দম্পতি: তিৰোতা, মুনিহ, পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
     '👩🏻‍❤‍👨🏽' => 'হাৰ্টৰ সৈতে দম্পতি: তিৰোতা, মুনিহ, পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'হাৰ্টৰ সৈতে দম্পতি: তিৰোতা, তিৰোতা, ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
     '👩🏿‍❤‍👩🏾' => 'হাৰ্টৰ সৈতে দম্পতি: তিৰোতা, তিৰোতা, ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '👩🏿‍❤‍👩🏿' => 'হাৰ্টৰ সৈতে দম্পতি: তিৰোতা, তিৰোতা, ক’লা ছালৰ ৰং',
+    '👩🏻‍🐰‍👩🏼' => 'শহাপহুৰ কাণৰ মহিলা: পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👩🏻‍🐰‍👩🏽' => 'শহাপহুৰ কাণৰ মহিলা: পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👩🏻‍🐰‍👩🏾' => 'শহাপহুৰ কাণৰ মহিলা: পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👩🏻‍🐰‍👩🏿' => 'শহাপহুৰ কাণৰ মহিলা: পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👩🏼‍🐰‍👩🏻' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া-পাতল ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👩🏼‍🐰‍👩🏽' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👩🏼‍🐰‍👩🏾' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া-পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👩🏼‍🐰‍👩🏿' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া-পাতল ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👩🏽‍🐰‍👩🏻' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👩🏽‍🐰‍👩🏼' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👩🏽‍🐰‍👩🏾' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👩🏽‍🐰‍👩🏿' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👩🏾‍🐰‍👩🏻' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👩🏾‍🐰‍👩🏼' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👩🏾‍🐰‍👩🏽' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👩🏾‍🐰‍👩🏿' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং, ক’লা ছালৰ ৰং',
+    '👩🏿‍🐰‍👩🏻' => 'শহাপহুৰ কাণৰ মহিলা: ক’লা ছালৰ ৰং, পাতল ছালৰ ৰং',
+    '👩🏿‍🐰‍👩🏼' => 'শহাপহুৰ কাণৰ মহিলা: ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👩🏿‍🐰‍👩🏽' => 'শহাপহুৰ কাণৰ মহিলা: ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
+    '👩🏿‍🐰‍👩🏾' => 'শহাপহুৰ কাণৰ মহিলা: ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '🧑🏻‍🤝‍🧑🏻' => 'হাতে হাতে ধৰি থকা মানুহৰ ছবি: পাতল ছালৰ ৰং',
     '🧑🏻‍🤝‍🧑🏼' => 'হাতে হাতে ধৰি থকা মানুহৰ ছবি: পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🧑🏻‍🤝‍🧑🏽' => 'হাতে হাতে ধৰি থকা মানুহৰ ছবি: পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'পতাকা: স্কটলেণ্ড',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'পতাকা: ৱেলছ্',
     '🧑‍🧑‍🧒‍🧒' => 'পৰিয়াল: প্ৰাপ্তবয়স্ক, বয়স্ক, শিশু, সন্তান',
-    '🚶🏻‍♀‍➡' => 'খোজ কঢ়া মহিলা সোঁফালে মুখ কৰা',
-    '🚶🏼‍♀‍➡' => 'খোজ কঢ়া মহিলা সোঁফালে মুখ কৰা',
-    '🚶🏽‍♀‍➡' => 'খোজ কঢ়া মহিলা সোঁফালে মুখ কৰা',
-    '🚶🏾‍♀‍➡' => 'খোজ কঢ়া মহিলা সোঁফালে মুখ কৰা',
-    '🚶🏿‍♀‍➡' => 'খোজ কঢ়া মহিলা সোঁফালে মুখ কৰা',
-    '🚶🏻‍♂‍➡' => 'খোজ কঢ়া পুৰুষ সোঁফালে মুখ কৰা',
-    '🚶🏼‍♂‍➡' => 'খোজ কঢ়া পুৰুষ সোঁফালে মুখ কৰা',
-    '🚶🏽‍♂‍➡' => 'খোজ কঢ়া পুৰুষ সোঁফালে মুখ কৰা',
-    '🚶🏾‍♂‍➡' => 'খোজ কঢ়া পুৰুষ সোঁফালে মুখ কৰা',
-    '🚶🏿‍♂‍➡' => 'খোজ কঢ়া পুৰুষ সোঁফালে মুখ কৰা',
-    '🧎🏻‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🧎🏼‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🧎🏽‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🧎🏾‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🧎🏿‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🧎🏻‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ সোঁফালে মুখ কৰা',
-    '🧎🏼‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ সোঁফালে মুখ কৰা',
-    '🧎🏽‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ সোঁফালে মুখ কৰা',
-    '🧎🏾‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ সোঁফালে মুখ কৰা',
-    '🧎🏿‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ সোঁফালে মুখ কৰা',
-    '🧑🏻‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏼‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏽‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏾‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏿‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '👨🏻‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏼‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏽‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏾‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏿‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏻‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏼‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏽‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏾‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏿‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '🧑🏻‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏼‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏽‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏾‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏿‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '👨🏻‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏼‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏽‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏾‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏿‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏻‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏼‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏽‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏾‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏿‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '🧑🏻‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏼‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏽‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏾‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧑🏿‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '👨🏻‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏼‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏽‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏾‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👨🏿‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏻‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏼‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏽‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏾‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '👩🏿‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '🏃🏻‍♀‍➡' => 'দৌৰি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🏃🏼‍♀‍➡' => 'দৌৰি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🏃🏽‍♀‍➡' => 'দৌৰি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🏃🏾‍♀‍➡' => 'দৌৰি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🏃🏿‍♀‍➡' => 'দৌৰি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🏃🏻‍♂‍➡' => 'দৌৰি থকা পুৰুষ সোঁফালে মুখ কৰা',
-    '🏃🏼‍♂‍➡' => 'দৌৰি থকা পুৰুষ সোঁফালে মুখ কৰা',
-    '🏃🏽‍♂‍➡' => 'দৌৰি থকা পুৰুষ সোঁফালে মুখ কৰা',
-    '🏃🏾‍♂‍➡' => 'দৌৰি থকা পুৰুষ সোঁফালে মুখ কৰা',
-    '🏃🏿‍♂‍➡' => 'দৌৰি থকা পুৰুষ সোঁফালে মুখ কৰা',
+    '🚶🏻‍♀‍➡' => 'খোজ কঢ়া মহিলা: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏼‍♀‍➡' => 'খোজ কঢ়া মহিলা: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏽‍♀‍➡' => 'খোজ কঢ়া মহিলা: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏾‍♀‍➡' => 'খোজ কঢ়া মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏿‍♀‍➡' => 'খোজ কঢ়া মহিলা: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏻‍♂‍➡' => 'খোজ কঢ়া পুৰুষ: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏼‍♂‍➡' => 'খোজ কঢ়া পুৰুষ: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏽‍♂‍➡' => 'খোজ কঢ়া পুৰুষ: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏾‍♂‍➡' => 'খোজ কঢ়া পুৰুষ: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏿‍♂‍➡' => 'খোজ কঢ়া পুৰুষ: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏻‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏼‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏽‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏾‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏿‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏻‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏼‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏽‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏾‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏿‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏻‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏼‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏽‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏾‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏿‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏻‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏼‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏽‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏾‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏿‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏻‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏼‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏽‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏾‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏿‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏻‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏼‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏽‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏾‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏿‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏻‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏼‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏽‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏾‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏿‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏻‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏼‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏽‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏾‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏿‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏻‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏼‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏽‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏾‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧑🏿‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏻‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏼‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏽‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏾‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👨🏿‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏻‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏼‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏽‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏾‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👩🏿‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏻‍♀‍➡' => 'দৌৰি থকা মহিলা: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏼‍♀‍➡' => 'দৌৰি থকা মহিলা: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏽‍♀‍➡' => 'দৌৰি থকা মহিলা: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏾‍♀‍➡' => 'দৌৰি থকা মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏿‍♀‍➡' => 'দৌৰি থকা মহিলা: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏻‍♂‍➡' => 'দৌৰি থকা পুৰুষ: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏼‍♂‍➡' => 'দৌৰি থকা পুৰুষ: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏽‍♂‍➡' => 'দৌৰি থকা পুৰুষ: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏾‍♂‍➡' => 'দৌৰি থকা পুৰুষ: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏿‍♂‍➡' => 'দৌৰি থকা পুৰুষ: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
     '🫱🏻‍🫲🏼' => 'কৰমৰ্দন: পাতল ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🫱🏻‍🫲🏽' => 'কৰমৰ্দন: পাতল ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
     '🫱🏻‍🫲🏾' => 'কৰমৰ্দন: পাতল ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'কৰমৰ্দন: ক’লা ছালৰ ৰং, মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🫱🏿‍🫲🏽' => 'কৰমৰ্দন: ক’লা ছালৰ ৰং, মধ্যমীয়া ছালৰ ৰং',
     '🫱🏿‍🫲🏾' => 'কৰমৰ্দন: ক’লা ছালৰ ৰং, মধ্যমীয়া-ক’লা ছালৰ ৰং',
-    '🚶‍♀‍➡' => 'খোজ কঢ়া মহিলা সোঁফালে মুখ কৰা',
-    '🚶‍♂‍➡' => 'খোজ কঢ়া পুৰুষ সোঁফালে মুখ কৰা',
-    '🧎‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🧎‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ সোঁফালে মুখ কৰা',
-    '🧑‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '👨‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👩‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '🧑‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '👨‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👩‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '🧑‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '👨‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি সোঁফালে মুখ কৰা',
-    '👩‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি সোঁফালে মুখ কৰা',
-    '🏃‍♀‍➡' => 'দৌৰি থকা মহিলা সোঁফালে মুখ কৰা',
-    '🏃‍♂‍➡' => 'দৌৰি থকা পুৰুষ সোঁফালে মুখ কৰা',
+    '🚶‍♀‍➡' => 'খোজ কঢ়া মহিলা: সোঁফালে মুখ কৰা',
+    '🚶‍♂‍➡' => 'খোজ কঢ়া পুৰুষ: সোঁফালে মুখ কৰা',
+    '🧎‍♀‍➡' => 'আঁঠু কাঢ়ি থকা মহিলা: সোঁফালে মুখ কৰা',
+    '🧎‍♂‍➡' => 'আঁঠু কাঢ়ি থকা মানুহ: সোঁফালে মুখ কৰা',
+    '🧑‍🦯‍➡' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি: সোঁফালে মুখ কৰা',
+    '👨‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মানুহৰ ছবি: সোঁফালে মুখ কৰা',
+    '👩‍🦯‍➡' => 'হাতত বেতৰ লাখুটি লৈ থকা মহিলাৰ ছবি: সোঁফালে মুখ কৰা',
+    '🧑‍🦼‍➡' => 'মটৰ চালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: সোঁফালে মুখ কৰা',
+    '👨‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: সোঁফালে মুখ কৰা',
+    '👩‍🦼‍➡' => 'মটৰ চালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: সোঁফালে মুখ কৰা',
+    '🧑‍🦽‍➡' => 'হস্তচালিত হুইলচেয়াৰত বহি থকা ব্যক্তি: সোঁফালে মুখ কৰা',
+    '👨‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মানুহৰ ছবি: সোঁফালে মুখ কৰা',
+    '👩‍🦽‍➡' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি: সোঁফালে মুখ কৰা',
+    '🏃‍♀‍➡' => 'দৌৰি থকা মহিলা: সোঁফালে মুখ কৰা',
+    '🏃‍♂‍➡' => 'দৌৰি থকা পুৰুষ: সোঁফালে মুখ কৰা',
     '👩‍❤‍👨' => 'হাৰ্টৰ সৈতে দম্পতি: তিৰোতা, মুনিহ',
     '👨‍❤‍👨' => 'হাৰ্টৰ সৈতে দম্পতি: মুনিহ, মুনিহ',
     '👩‍❤‍👩' => 'হাৰ্টৰ সৈতে দম্পতি: তিৰোতা, তিৰোতা',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'প্ৰাপ্তবয়স্ক: মধ্যমীয়া ছালৰ ৰং, টপা মূৰীয়া',
     '🧑🏾‍🦲' => 'প্ৰাপ্তবয়স্ক: মধ্যমীয়া-ক’লা ছালৰ ৰং, টপা মূৰীয়া',
     '🧑🏿‍🦲' => 'প্ৰাপ্তবয়স্ক: ক’লা ছালৰ ৰং, টপা মূৰীয়া',
+    '🧑🏻‍🩰' => 'বেলে নৃত্যশিল্পী: পাতল ছালৰ ৰং',
+    '🧑🏼‍🩰' => 'বেলে নৃত্যশিল্পী: মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🧑🏽‍🩰' => 'বেলে নৃত্যশিল্পী: মধ্যমীয়া ছালৰ ৰং',
+    '🧑🏾‍🩰' => 'বেলে নৃত্যশিল্পী: মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🧑🏿‍🩰' => 'বেলে নৃত্যশিল্পী: ক’লা ছালৰ ৰং',
     '🧔🏻‍♂' => 'পুৰুষ: পাতল ছালৰ ৰং, দাড়ি',
     '🧔🏼‍♂' => 'পুৰুষ: মধ্যমীয়া-পাতল ছালৰ ৰং, দাড়ি',
     '🧔🏽‍♂' => 'পুৰুষ: মধ্যমীয়া ছালৰ ৰং, দাড়ি',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'খোজ কঢ়া মহিলা: মধ্যমীয়া ছালৰ ৰং',
     '🚶🏾‍♀' => 'খোজ কঢ়া মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '🚶🏿‍♀' => 'খোজ কঢ়া মহিলা: ক’লা ছালৰ ৰং',
-    '🚶🏻‍➡' => 'খোজ কঢ়া ব্যক্তি সোঁফালে মুখ কৰা',
-    '🚶🏼‍➡' => 'খোজ কঢ়া ব্যক্তি সোঁফালে মুখ কৰা',
-    '🚶🏽‍➡' => 'খোজ কঢ়া ব্যক্তি সোঁফালে মুখ কৰা',
-    '🚶🏾‍➡' => 'খোজ কঢ়া ব্যক্তি সোঁফালে মুখ কৰা',
-    '🚶🏿‍➡' => 'খোজ কঢ়া ব্যক্তি সোঁফালে মুখ কৰা',
+    '🚶🏻‍➡' => 'খোজ কঢ়া ব্যক্তি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏼‍➡' => 'খোজ কঢ়া ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏽‍➡' => 'খোজ কঢ়া ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏾‍➡' => 'খোজ কঢ়া ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🚶🏿‍➡' => 'খোজ কঢ়া ব্যক্তি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
     '🧍🏻‍♂' => 'ঠিয় হৈ থকা মানুহ: পাতল ছালৰ ৰং',
     '🧍🏼‍♂' => 'ঠিয় হৈ থকা মানুহ: মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🧍🏽‍♂' => 'ঠিয় হৈ থকা মানুহ: মধ্যমীয়া ছালৰ ৰং',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'আঁঠু কাঢ়ি থকা মহিলা: মধ্যমীয়া ছালৰ ৰং',
     '🧎🏾‍♀' => 'আঁঠু কাঢ়ি থকা মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '🧎🏿‍♀' => 'আঁঠু কাঢ়ি থকা মহিলা: ক’লা ছালৰ ৰং',
-    '🧎🏻‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧎🏼‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧎🏽‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧎🏾‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧎🏿‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি সোঁফালে মুখ কৰা',
+    '🧎🏻‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏼‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏽‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏾‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🧎🏿‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
     '🧑🏻‍🦯' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি: পাতল ছালৰ ৰং',
     '🧑🏼‍🦯' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🧑🏽‍🦯' => 'বেতৰ লাখুটি লৈ থকা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'দৌৰি থকা মহিলা: মধ্যমীয়া ছালৰ ৰং',
     '🏃🏾‍♀' => 'দৌৰি থকা মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '🏃🏿‍♀' => 'দৌৰি থকা মহিলা: ক’লা ছালৰ ৰং',
-    '🏃🏻‍➡' => 'দৌৰি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🏃🏼‍➡' => 'দৌৰি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🏃🏽‍➡' => 'দৌৰি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🏃🏾‍➡' => 'দৌৰি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🏃🏿‍➡' => 'দৌৰি থকা ব্যক্তি সোঁফালে মুখ কৰা',
+    '🏃🏻‍➡' => 'দৌৰি থকা ব্যক্তি: পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏼‍➡' => 'দৌৰি থকা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏽‍➡' => 'দৌৰি থকা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏾‍➡' => 'দৌৰি থকা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '🏃🏿‍➡' => 'দৌৰি থকা ব্যক্তি: ক’লা ছালৰ ৰং, সোঁফালে মুখ কৰা',
+    '👯🏻‍♀' => 'শহাপহুৰ কাণৰ মহিলা: পাতল ছালৰ ৰং',
+    '👯🏼‍♀' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👯🏽‍♀' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া ছালৰ ৰং',
+    '👯🏾‍♀' => 'শহাপহুৰ কাণৰ মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👯🏿‍♀' => 'শহাপহুৰ কাণৰ মহিলা: ক’লা ছালৰ ৰং',
+    '👯🏻‍♂' => 'শহাপহুৰ কাণৰ পুৰুষ: পাতল ছালৰ ৰং',
+    '👯🏼‍♂' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👯🏽‍♂' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া ছালৰ ৰং',
+    '👯🏾‍♂' => 'শহাপহুৰ কাণৰ পুৰুষ: মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👯🏿‍♂' => 'শহাপহুৰ কাণৰ পুৰুষ: ক’লা ছালৰ ৰং',
     '🧖🏻‍♂' => 'বাষ্পৰ কোঠাত থকা পুৰুষ: পাতল ছালৰ ৰং',
     '🧖🏼‍♂' => 'বাষ্পৰ কোঠাত থকা পুৰুষ: মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🧖🏽‍♂' => 'বাষ্পৰ কোঠাত থকা পুৰুষ: মধ্যমীয়া ছালৰ ৰং',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'কাৰ্টহুইলিং কৰা মহিলা: মধ্যমীয়া ছালৰ ৰং',
     '🤸🏾‍♀' => 'কাৰ্টহুইলিং কৰা মহিলা: মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '🤸🏿‍♀' => 'কাৰ্টহুইলিং কৰা মহিলা: ক’লা ছালৰ ৰং',
+    '🤼🏻‍♀' => 'মহিলাৰ মল্লযুদ্ধ: পাতল ছালৰ ৰং',
+    '🤼🏼‍♀' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🤼🏽‍♀' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া ছালৰ ৰং',
+    '🤼🏾‍♀' => 'মহিলাৰ মল্লযুদ্ধ: মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🤼🏿‍♀' => 'মহিলাৰ মল্লযুদ্ধ: ক’লা ছালৰ ৰং',
+    '🤼🏻‍♂' => 'পুৰুষৰ মল্লযুদ্ধ: পাতল ছালৰ ৰং',
+    '🤼🏼‍♂' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🤼🏽‍♂' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া ছালৰ ৰং',
+    '🤼🏾‍♂' => 'পুৰুষৰ মল্লযুদ্ধ: মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🤼🏿‍♂' => 'পুৰুষৰ মল্লযুদ্ধ: ক’লা ছালৰ ৰং',
     '🤽🏻‍♂' => 'ৱাটাৰ প’ল’ খেলি থকা পুৰুষ: পাতল ছালৰ ৰং',
     '🤽🏼‍♂' => 'ৱাটাৰ প’ল’ খেলি থকা পুৰুষ: মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🤽🏽‍♂' => 'ৱাটাৰ প’ল’ খেলি থকা পুৰুষ: মধ্যমীয়া ছালৰ ৰং',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'তিৰোতা: কেঁকোৰা চুলি',
     '👩‍🦳' => 'তিৰোতা: বগা চুলি',
     '👩‍🦲' => 'তিৰোতা: টপা মূৰীয়া',
-    '🚶‍➡' => 'খোজ কঢ়া ব্যক্তি সোঁফালে মুখ কৰা',
-    '🧎‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি সোঁফালে মুখ কৰা',
-    '🏃‍➡' => 'দৌৰি থকা ব্যক্তি সোঁফালে মুখ কৰা',
+    '🚶‍➡' => 'খোজ কঢ়া ব্যক্তি: সোঁফালে মুখ কৰা',
+    '🧎‍➡' => 'আঠুকাঢ়ি থকা ব্যক্তি: সোঁফালে মুখ কৰা',
+    '🏃‍➡' => 'দৌৰি থকা ব্যক্তি: সোঁফালে মুখ কৰা',
     '👨‍👦' => 'পৰিয়াল: মুনিহ, ল’ৰা',
     '👨‍👧' => 'পৰিয়াল: মুনিহ, ছোৱালী',
     '👩‍👦' => 'পৰিয়াল: তিৰোতা, ল’ৰা',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'হস্তচালিত হুইলশ্বেয়াৰত বহি থকা মহিলাৰ ছবি',
     '🏃‍♂' => 'দৌৰি থকা পুৰুষ',
     '🏃‍♀' => 'দৌৰি থকা মহিলা',
+    '🧑‍🩰' => 'বেলে নৃত্যশিল্পী',
     '👯‍♂' => 'শহাপহুৰ কাণৰ পুৰুষ',
     '👯‍♀' => 'শহাপহুৰ কাণৰ মহিলা',
     '🧖‍♂' => 'বাষ্পৰ কোঠাত থকা পুৰুষ',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'চুট পৰিহিত পুৰুষ: মধ্যমীয়া ছালৰ ৰং',
     '🕴🏾' => 'চুট পৰিহিত পুৰুষ: মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '🕴🏿' => 'চুট পৰিহিত পুৰুষ: ক’লা ছালৰ ৰং',
+    '👯🏻' => 'শহাপহুৰ কাণৰ ব্যক্তি: পাতল ছালৰ ৰং',
+    '👯🏼' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '👯🏽' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া ছালৰ ৰং',
+    '👯🏾' => 'শহাপহুৰ কাণৰ ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '👯🏿' => 'শহাপহুৰ কাণৰ ব্যক্তি: ক’লা ছালৰ ৰং',
     '🧖🏻' => 'বাষ্পৰ কোঠাত থকা ব্যক্তি: পাতল ছালৰ ৰং',
     '🧖🏼' => 'বাষ্পৰ কোঠাত থকা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🧖🏽' => 'বাষ্পৰ কোঠাত থকা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'কাৰ্টহুইলিং কৰা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং',
     '🤸🏾' => 'কাৰ্টহুইলিং কৰা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '🤸🏿' => 'কাৰ্টহুইলিং কৰা ব্যক্তি: ক’লা ছালৰ ৰং',
+    '🤼🏻' => 'মল্লযুদ্ধ কৰা ব্যক্তি: পাতল ছালৰ ৰং',
+    '🤼🏼' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং',
+    '🤼🏽' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং',
+    '🤼🏾' => 'মল্লযুদ্ধ কৰা ব্যক্তি: মধ্যমীয়া-ক’লা ছালৰ ৰং',
+    '🤼🏿' => 'মল্লযুদ্ধ কৰা ব্যক্তি: ক’লা ছালৰ ৰং',
     '🤽🏻' => 'ৱাটাৰ প’ল’ খেলি থকা ব্যক্তি: পাতল ছালৰ ৰং',
     '🤽🏼' => 'ৱাটাৰ প’ল’ খেলি থকা ব্যক্তি: মধ্যমীয়া-পাতল ছালৰ ৰং',
     '🤽🏽' => 'ৱাটাৰ প’ল’ খেলি থকা ব্যক্তি: মধ্যমীয়া ছালৰ ৰং',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'পতাকা: চীন',
     '🇨🇴' => 'পতাকা: কলম্বিয়া',
     '🇨🇵' => 'পতাকা: ক্লিপাৰটোন দ্বীপ',
+    '🇨🇶' => 'পতাকা: চাৰ্ক',
     '🇨🇷' => 'পতাকা: কোষ্টা ৰিকা',
     '🇨🇺' => 'পতাকা: কিউবা',
     '🇨🇻' => 'পতাকা: কেপ ভার্দে',
@@ -2390,13 +2547,6 @@
     '🏽' => 'মধ্যমীয়া ছালৰ ৰং',
     '🏾' => 'মধ্যমীয়া-ক’লা ছালৰ ৰং',
     '🏿' => 'ক’লা ছালৰ ৰং',
-    '🪉' => 'বীণা',
-    '🪏' => 'বেলচা',
-    '🪾' => 'পাতবিহীন গছ',
-    '🫆' => 'আঙুলিৰ ছাপ',
-    '🫜' => 'শিপা থকা শাক-পাচলি',
-    '🫟' => 'ছিটিকনি',
-    '🫩' => 'চকুৰ তলত মোনা থকা চেহেৰা',
     '😀' => 'হাস্য মুখী',
     '😃' => 'উজ্জ্বল চকুৰে হাস্যমুখ',
     '😄' => 'হাস্যমুখী চকুৰে উজ্জ্বল মুখ',
@@ -2450,6 +2600,7 @@
     '😪' => 'নিদ্ৰালু মুখ',
     '🤤' => 'জিভাৰ পানী পৰি থকা মুখ',
     '😴' => 'নিদ্ৰামগ্ন মুখ',
+    '🫩' => 'চকুৰ তলত মোনা থকা চেহেৰা',
     '😷' => 'চিকিৎসা মুখা পৰিহিত মুখ',
     '🤒' => 'থাৰ্মোমিটাৰ লগাই থোৱা মুখ',
     '🤕' => 'মুৰত বেণ্ডেজৰ সৈতে চেহেৰা',
@@ -2547,6 +2698,7 @@
     '💋' => 'চুম্বন চিহ্ন',
     '💯' => '১০০ নম্বৰ',
     '💢' => 'খঙৰ প্ৰতীক',
+    '🫯' => 'কাজিয়াৰ ডাৱৰ',
     '💥' => 'সংঘৰ্ষ',
     '💫' => 'হতবুদ্ধি',
     '💦' => 'ঘামৰ টোপাল',
@@ -2670,6 +2822,7 @@
     '🧞' => 'জিন',
     '🧟' => 'জম্বি',
     '🧌' => 'ট্ৰোল',
+    '🫈' => 'নোমাল জীৱ',
     '💆' => 'মালিচ কৰাই থকা ব্যক্তি',
     '💇' => 'চুলি কটা ব্যক্তি',
     '🚶' => 'খোজ কঢ়া ব্যক্তি',
@@ -2713,6 +2866,7 @@
     '🫂' => 'ব্যক্তিয়ে সাবটি ধৰি আছে',
     '👪' => 'পৰিয়াল',
     '👣' => 'পদচিহ্ন',
+    '🫆' => 'আঙুলিৰ ছাপ',
     '🦰' => 'ৰঙা চুলি',
     '🦱' => 'কেঁকোৰা চুলি',
     '🦳' => 'বগা চুলি',
@@ -2812,6 +2966,7 @@
     '🐳' => 'ফোঁৱাৰা মৰা তিমি মাছ',
     '🐋' => 'তিমি মাছ',
     '🐬' => 'ডলফিন',
+    '🫍' => 'অৰ্কা',
     '🦭' => 'চীল',
     '🐟' => 'মাছ',
     '🐠' => 'গ্ৰীষ্মমণ্ডলীয় মাছ',
@@ -2821,6 +2976,11 @@
     '🐚' => 'শামুকৰ খোলা',
     '🪸' => 'পোৱাল',
     '🪼' => 'জেলীফিশ্ব',
+    '🦀' => 'কেকোৰা',
+    '🦞' => 'মিছামাছ',
+    '🦐' => 'শিঙি',
+    '🦑' => 'স্কুইড',
+    '🦪' => 'ঐষ্টাৰ',
     '🐌' => 'শামুক',
     '🦋' => 'পখিলা',
     '🐛' => 'পোক',
@@ -2865,6 +3025,7 @@
     '🪹' => 'খালী বাহ',
     '🪺' => 'কণী থকা বাহ',
     '🍄' => 'কাঠফুলা',
+    '🪾' => 'পাতবিহীন গছ',
     '🍇' => 'আঙুৰ',
     '🍈' => 'খৰভুজ',
     '🍉' => 'তৰমুজ',
@@ -2901,6 +3062,7 @@
     '🌰' => 'বাদাম',
     '🫚' => 'আদাৰ শিপা',
     '🫛' => 'পী প’ড',
+    '🫜' => 'শিপা থকা শাক-পাচলি',
     '🍞' => 'পাউৰুটী',
     '🥐' => 'ক্ৰইচেণ্ট',
     '🥖' => 'বাগেট পাওৰুটী',
@@ -2952,11 +3114,6 @@
     '🥟' => 'ডাম্পলিং',
     '🥠' => 'ফৰ্চুন কুকি',
     '🥡' => 'টেকআউট বক্স',
-    '🦀' => 'কেকোৰা',
-    '🦞' => 'মিছামাছ',
-    '🦐' => 'শিঙি',
-    '🦑' => 'স্কুইড',
-    '🦪' => 'ঐষ্টাৰ',
     '🍦' => 'চ’ফ্ট আইচ ক্ৰীম',
     '🍧' => 'চেভড আইচ',
     '🍨' => 'আইচ ক্ৰীম',
@@ -3007,6 +3164,7 @@
     '🧭' => 'কম্পাছ',
     '🏔' => 'বৰফাবৃত পৰ্ব্বত',
     '⛰' => 'পৰ্ব্বত',
+    '🛘' => 'ভূমিস্খলন',
     '🌋' => 'আগ্নেয়গিৰি',
     '🗻' => 'মাউণ্ট ফুজি',
     '🏕' => 'কেম্পিং',
@@ -3367,16 +3525,18 @@
     '🎧' => 'হেডফোন',
     '📻' => 'ৰেডিঅ’',
     '🎷' => 'ছেক্স’ফোন',
+    '🎺' => 'শিঙা',
+    '🪊' => 'ট্ৰমব’ন',
     '🪗' => 'এক’ৰডিয়ান',
     '🎸' => 'গীটাৰ',
     '🎹' => 'সাংগীতিক কীব’ৰ্ড',
-    '🎺' => 'শিঙা',
     '🎻' => 'বেহেলা',
     '🪕' => 'বাঞ্জো',
     '🥁' => 'ঢোল',
     '🪘' => 'দীঘল ড্ৰাম',
     '🪇' => 'মাৰাকাছ',
     '🪈' => 'বাঁহী',
+    '🪉' => 'বীণা',
     '📱' => 'মোবাইল ফোন',
     '📲' => 'কাঁড় চিনযুক্ত মোবাইল ফোন',
     '☎' => 'টেলিফোন',
@@ -3430,8 +3590,9 @@
     '📑' => 'বুকমাৰ্ক টেব',
     '🔖' => 'বুকমাৰ্ক',
     '🏷' => 'লেবেল',
-    '💰' => 'ধনৰ মোনা',
     '🪙' => 'মুদ্ৰা',
+    '💰' => 'ধনৰ মোনা',
+    '🪎' => 'গুপ্তধনৰ বাকচ',
     '💴' => 'য়েন বেংকনোট',
     '💵' => 'ডলাৰ বেংকনোট',
     '💶' => 'ইউৰ’ বেংকনোট',
@@ -3514,6 +3675,7 @@
     '🧰' => 'টুলবক্স',
     '🧲' => 'চুম্বক',
     '🪜' => 'জখলা',
+    '🪏' => 'বেলচা',
     '⚗' => 'আলেম্বিক',
     '🧪' => 'টেষ্ট টিউব',
     '🧫' => 'পেট্ৰি ডিশ্ব',
@@ -3697,6 +3859,7 @@
     '✴' => 'অষ্টাগ্ৰবিশিষ্ট তৰা চিন',
     '❇' => 'তিৰবিৰণি',
     '™' => 'পণ্যচিহ্ন',
+    '🫟' => 'ছিটিকনি',
     '🔠' => 'লেটিন বৰফলাৰ আখৰ দিয়ক',
     '🔡' => 'লেটিন সৰুফলাৰ আখৰ দিয়ক',
     '🔢' => 'সংখ্যা দিয়ক',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-az.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-az.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-az.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-az.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'öpüş: qadın, qadın, tünd dəri tonu, orta dəri tonu',
     '👩🏿‍❤‍💋‍👩🏾' => 'öpüş: qadın, qadın, tünd dəri tonu, orta-tünd dəri tonu',
     '👩🏿‍❤‍💋‍👩🏿' => 'öpüş: qadın, qadın, tünd dəri tonu',
+    '🧑🏻‍🫯‍🧑🏼' => 'güləş: açıq dəri tonu, orta-açıq dəri tonu',
+    '🧑🏻‍🫯‍🧑🏽' => 'güləş: açıq dəri tonu, orta dəri tonu',
+    '🧑🏻‍🫯‍🧑🏾' => 'güləş: açıq dəri tonu, orta-tünd dəri tonu',
+    '🧑🏻‍🫯‍🧑🏿' => 'güləş: açıq dəri tonu, tünd dəri tonu',
+    '🧑🏼‍🫯‍🧑🏻' => 'güləş: orta-açıq dəri tonu, açıq dəri tonu',
+    '🧑🏼‍🫯‍🧑🏽' => 'güləş: orta-açıq dəri tonu, orta dəri tonu',
+    '🧑🏼‍🫯‍🧑🏾' => 'güləş: orta-açıq dəri tonu, orta-tünd dəri tonu',
+    '🧑🏼‍🫯‍🧑🏿' => 'güləş: orta-açıq dəri tonu, tünd dəri tonu',
+    '🧑🏽‍🫯‍🧑🏻' => 'güləş: orta dəri tonu, açıq dəri tonu',
+    '🧑🏽‍🫯‍🧑🏼' => 'güləş: orta dəri tonu, orta-açıq dəri tonu',
+    '🧑🏽‍🫯‍🧑🏾' => 'güləş: orta dəri tonu, orta-tünd dəri tonu',
+    '🧑🏽‍🫯‍🧑🏿' => 'güləş: orta dəri tonu, tünd dəri tonu',
+    '🧑🏾‍🫯‍🧑🏻' => 'güləş: orta-tünd dəri tonu, açıq dəri tonu',
+    '🧑🏾‍🫯‍🧑🏼' => 'güləş: orta-tünd dəri tonu, orta-açıq dəri tonu',
+    '🧑🏾‍🫯‍🧑🏽' => 'güləş: orta-tünd dəri tonu, orta dəri tonu',
+    '🧑🏾‍🫯‍🧑🏿' => 'güləş: orta-tünd dəri tonu, tünd dəri tonu',
+    '🧑🏿‍🫯‍🧑🏻' => 'güləş: tünd dəri tonu, açıq dəri tonu',
+    '🧑🏿‍🫯‍🧑🏼' => 'güləş: tünd dəri tonu, orta-açıq dəri tonu',
+    '🧑🏿‍🫯‍🧑🏽' => 'güləş: tünd dəri tonu, orta dəri tonu',
+    '🧑🏿‍🫯‍🧑🏾' => 'güləş: tünd dəri tonu, orta-tünd dəri tonu',
     '🧑🏻‍❤‍🧑🏼' => 'ürəkli cütlük: böyük, böyük, açıq dəri tonu, orta-açıq dəri tonu',
     '🧑🏻‍❤‍🧑🏽' => 'ürəkli cütlük: böyük, böyük, açıq dəri tonu, orta dəri tonu',
     '🧑🏻‍❤‍🧑🏾' => 'ürəkli cütlük: böyük, böyük, açıq dəri tonu, orta-tünd dəri tonu',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ürəkli cütlük: böyük, böyük, tünd dəri tonu, orta-açıq dəri tonu',
     '🧑🏿‍❤‍🧑🏽' => 'ürəkli cütlük: böyük, böyük, tünd dəri tonu, orta dəri tonu',
     '🧑🏿‍❤‍🧑🏾' => 'ürəkli cütlük: böyük, böyük, tünd dəri tonu, orta-tünd dəri tonu',
+    '🧑🏻‍🐰‍🧑🏼' => 'şənlənən qadınlar: açıq dəri tonu, orta-açıq dəri tonu',
+    '🧑🏻‍🐰‍🧑🏽' => 'şənlənən qadınlar: açıq dəri tonu, orta dəri tonu',
+    '🧑🏻‍🐰‍🧑🏾' => 'şənlənən qadınlar: açıq dəri tonu, orta-tünd dəri tonu',
+    '🧑🏻‍🐰‍🧑🏿' => 'şənlənən qadınlar: açıq dəri tonu, tünd dəri tonu',
+    '🧑🏼‍🐰‍🧑🏻' => 'şənlənən qadınlar: orta-açıq dəri tonu, açıq dəri tonu',
+    '🧑🏼‍🐰‍🧑🏽' => 'şənlənən qadınlar: orta-açıq dəri tonu, orta dəri tonu',
+    '🧑🏼‍🐰‍🧑🏾' => 'şənlənən qadınlar: orta-açıq dəri tonu, orta-tünd dəri tonu',
+    '🧑🏼‍🐰‍🧑🏿' => 'şənlənən qadınlar: orta-açıq dəri tonu, tünd dəri tonu',
+    '🧑🏽‍🐰‍🧑🏻' => 'şənlənən qadınlar: orta dəri tonu, açıq dəri tonu',
+    '🧑🏽‍🐰‍🧑🏼' => 'şənlənən qadınlar: orta dəri tonu, orta-açıq dəri tonu',
+    '🧑🏽‍🐰‍🧑🏾' => 'şənlənən qadınlar: orta dəri tonu, orta-tünd dəri tonu',
+    '🧑🏽‍🐰‍🧑🏿' => 'şənlənən qadınlar: orta dəri tonu, tünd dəri tonu',
+    '🧑🏾‍🐰‍🧑🏻' => 'şənlənən qadınlar: orta-tünd dəri tonu, açıq dəri tonu',
+    '🧑🏾‍🐰‍🧑🏼' => 'şənlənən qadınlar: orta-tünd dəri tonu, orta-açıq dəri tonu',
+    '🧑🏾‍🐰‍🧑🏽' => 'şənlənən qadınlar: orta-tünd dəri tonu, orta dəri tonu',
+    '🧑🏾‍🐰‍🧑🏿' => 'şənlənən qadınlar: orta-tünd dəri tonu, tünd dəri tonu',
+    '🧑🏿‍🐰‍🧑🏻' => 'şənlənən qadınlar: tünd dəri tonu, açıq dəri tonu',
+    '🧑🏿‍🐰‍🧑🏼' => 'şənlənən qadınlar: tünd dəri tonu, orta-açıq dəri tonu',
+    '🧑🏿‍🐰‍🧑🏽' => 'şənlənən qadınlar: tünd dəri tonu, orta dəri tonu',
+    '🧑🏿‍🐰‍🧑🏾' => 'şənlənən qadınlar: tünd dəri tonu, orta-tünd dəri tonu',
+    '👨🏻‍🫯‍👨🏼' => 'güləşçi kişi: açıq dəri tonu, orta-açıq dəri tonu',
+    '👨🏻‍🫯‍👨🏽' => 'güləşçi kişi: açıq dəri tonu, orta dəri tonu',
+    '👨🏻‍🫯‍👨🏾' => 'güləşçi kişi: açıq dəri tonu, orta-tünd dəri tonu',
+    '👨🏻‍🫯‍👨🏿' => 'güləşçi kişi: açıq dəri tonu, tünd dəri tonu',
+    '👨🏼‍🫯‍👨🏻' => 'güləşçi kişi: orta-açıq dəri tonu, açıq dəri tonu',
+    '👨🏼‍🫯‍👨🏽' => 'güləşçi kişi: orta-açıq dəri tonu, orta dəri tonu',
+    '👨🏼‍🫯‍👨🏾' => 'güləşçi kişi: orta-açıq dəri tonu, orta-tünd dəri tonu',
+    '👨🏼‍🫯‍👨🏿' => 'güləşçi kişi: orta-açıq dəri tonu, tünd dəri tonu',
+    '👨🏽‍🫯‍👨🏻' => 'güləşçi kişi: orta dəri tonu, açıq dəri tonu',
+    '👨🏽‍🫯‍👨🏼' => 'güləşçi kişi: orta dəri tonu, orta-açıq dəri tonu',
+    '👨🏽‍🫯‍👨🏾' => 'güləşçi kişi: orta dəri tonu, orta-tünd dəri tonu',
+    '👨🏽‍🫯‍👨🏿' => 'güləşçi kişi: orta dəri tonu, tünd dəri tonu',
+    '👨🏾‍🫯‍👨🏻' => 'güləşçi kişi: orta-tünd dəri tonu, açıq dəri tonu',
+    '👨🏾‍🫯‍👨🏼' => 'güləşçi kişi: orta-tünd dəri tonu, orta-açıq dəri tonu',
+    '👨🏾‍🫯‍👨🏽' => 'güləşçi kişi: orta-tünd dəri tonu, orta dəri tonu',
+    '👨🏾‍🫯‍👨🏿' => 'güləşçi kişi: orta-tünd dəri tonu, tünd dəri tonu',
+    '👨🏿‍🫯‍👨🏻' => 'güləşçi kişi: tünd dəri tonu, açıq dəri tonu',
+    '👨🏿‍🫯‍👨🏼' => 'güləşçi kişi: tünd dəri tonu, orta-açıq dəri tonu',
+    '👨🏿‍🫯‍👨🏽' => 'güləşçi kişi: tünd dəri tonu, orta dəri tonu',
+    '👨🏿‍🫯‍👨🏾' => 'güləşçi kişi: tünd dəri tonu, orta-tünd dəri tonu',
     '👨🏻‍❤‍👨🏻' => 'ürəkli cütlük: kişi, kişi, açıq dəri tonu',
     '👨🏻‍❤‍👨🏼' => 'ürəkli cütlük: kişi, kişi, açıq dəri tonu, orta-açıq dəri tonu',
     '👨🏻‍❤‍👨🏽' => 'ürəkli cütlük: kişi, kişi, açıq dəri tonu, orta dəri tonu',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ürəkli cütlük: kişi, kişi, tünd dəri tonu, orta dəri tonu',
     '👨🏿‍❤‍👨🏾' => 'ürəkli cütlük: kişi, kişi, tünd dəri tonu, orta-tünd dəri tonu',
     '👨🏿‍❤‍👨🏿' => 'ürəkli cütlük: kişi, kişi, tünd dəri tonu',
+    '👨🏻‍🐰‍👨🏼' => 'rəqs edən kişi: açıq dəri tonu, orta-açıq dəri tonu',
+    '👨🏻‍🐰‍👨🏽' => 'rəqs edən kişi: açıq dəri tonu, orta dəri tonu',
+    '👨🏻‍🐰‍👨🏾' => 'rəqs edən kişi: açıq dəri tonu, orta-tünd dəri tonu',
+    '👨🏻‍🐰‍👨🏿' => 'rəqs edən kişi: açıq dəri tonu, tünd dəri tonu',
+    '👨🏼‍🐰‍👨🏻' => 'rəqs edən kişi: orta-açıq dəri tonu, açıq dəri tonu',
+    '👨🏼‍🐰‍👨🏽' => 'rəqs edən kişi: orta-açıq dəri tonu, orta dəri tonu',
+    '👨🏼‍🐰‍👨🏾' => 'rəqs edən kişi: orta-açıq dəri tonu, orta-tünd dəri tonu',
+    '👨🏼‍🐰‍👨🏿' => 'rəqs edən kişi: orta-açıq dəri tonu, tünd dəri tonu',
+    '👨🏽‍🐰‍👨🏻' => 'rəqs edən kişi: orta dəri tonu, açıq dəri tonu',
+    '👨🏽‍🐰‍👨🏼' => 'rəqs edən kişi: orta dəri tonu, orta-açıq dəri tonu',
+    '👨🏽‍🐰‍👨🏾' => 'rəqs edən kişi: orta dəri tonu, orta-tünd dəri tonu',
+    '👨🏽‍🐰‍👨🏿' => 'rəqs edən kişi: orta dəri tonu, tünd dəri tonu',
+    '👨🏾‍🐰‍👨🏻' => 'rəqs edən kişi: orta-tünd dəri tonu, açıq dəri tonu',
+    '👨🏾‍🐰‍👨🏼' => 'rəqs edən kişi: orta-tünd dəri tonu, orta-açıq dəri tonu',
+    '👨🏾‍🐰‍👨🏽' => 'rəqs edən kişi: orta-tünd dəri tonu, orta dəri tonu',
+    '👨🏾‍🐰‍👨🏿' => 'rəqs edən kişi: orta-tünd dəri tonu, tünd dəri tonu',
+    '👨🏿‍🐰‍👨🏻' => 'rəqs edən kişi: tünd dəri tonu, açıq dəri tonu',
+    '👨🏿‍🐰‍👨🏼' => 'rəqs edən kişi: tünd dəri tonu, orta-açıq dəri tonu',
+    '👨🏿‍🐰‍👨🏽' => 'rəqs edən kişi: tünd dəri tonu, orta dəri tonu',
+    '👨🏿‍🐰‍👨🏾' => 'rəqs edən kişi: tünd dəri tonu, orta-tünd dəri tonu',
+    '👩🏻‍🫯‍👩🏼' => 'güləşçi qadın: açıq dəri tonu, orta-açıq dəri tonu',
+    '👩🏻‍🫯‍👩🏽' => 'güləşçi qadın: açıq dəri tonu, orta dəri tonu',
+    '👩🏻‍🫯‍👩🏾' => 'güləşçi qadın: açıq dəri tonu, orta-tünd dəri tonu',
+    '👩🏻‍🫯‍👩🏿' => 'güləşçi qadın: açıq dəri tonu, tünd dəri tonu',
+    '👩🏼‍🫯‍👩🏻' => 'güləşçi qadın: orta-açıq dəri tonu, açıq dəri tonu',
+    '👩🏼‍🫯‍👩🏽' => 'güləşçi qadın: orta-açıq dəri tonu, orta dəri tonu',
+    '👩🏼‍🫯‍👩🏾' => 'güləşçi qadın: orta-açıq dəri tonu, orta-tünd dəri tonu',
+    '👩🏼‍🫯‍👩🏿' => 'güləşçi qadın: orta-açıq dəri tonu, tünd dəri tonu',
+    '👩🏽‍🫯‍👩🏻' => 'güləşçi qadın: orta dəri tonu, açıq dəri tonu',
+    '👩🏽‍🫯‍👩🏼' => 'güləşçi qadın: orta dəri tonu, orta-açıq dəri tonu',
+    '👩🏽‍🫯‍👩🏾' => 'güləşçi qadın: orta dəri tonu, orta-tünd dəri tonu',
+    '👩🏽‍🫯‍👩🏿' => 'güləşçi qadın: orta dəri tonu, tünd dəri tonu',
+    '👩🏾‍🫯‍👩🏻' => 'güləşçi qadın: orta-tünd dəri tonu, açıq dəri tonu',
+    '👩🏾‍🫯‍👩🏼' => 'güləşçi qadın: orta-tünd dəri tonu, orta-açıq dəri tonu',
+    '👩🏾‍🫯‍👩🏽' => 'güləşçi qadın: orta-tünd dəri tonu, orta dəri tonu',
+    '👩🏾‍🫯‍👩🏿' => 'güləşçi qadın: orta-tünd dəri tonu, tünd dəri tonu',
+    '👩🏿‍🫯‍👩🏻' => 'güləşçi qadın: tünd dəri tonu, açıq dəri tonu',
+    '👩🏿‍🫯‍👩🏼' => 'güləşçi qadın: tünd dəri tonu, orta-açıq dəri tonu',
+    '👩🏿‍🫯‍👩🏽' => 'güləşçi qadın: tünd dəri tonu, orta dəri tonu',
+    '👩🏿‍🫯‍👩🏾' => 'güləşçi qadın: tünd dəri tonu, orta-tünd dəri tonu',
     '👩🏻‍❤‍👨🏻' => 'ürəkli cütlük: qadın, kişi, açıq dəri tonu',
     '👩🏻‍❤‍👨🏼' => 'ürəkli cütlük: qadın, kişi, açıq dəri tonu, orta-açıq dəri tonu',
     '👩🏻‍❤‍👨🏽' => 'ürəkli cütlük: qadın, kişi, açıq dəri tonu, orta dəri tonu',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ürəkli cütlük: qadın, qadın, tünd dəri tonu, orta dəri tonu',
     '👩🏿‍❤‍👩🏾' => 'ürəkli cütlük: qadın, qadın, tünd dəri tonu, orta-tünd dəri tonu',
     '👩🏿‍❤‍👩🏿' => 'ürəkli cütlük: qadın, qadın, tünd dəri tonu',
+    '👩🏻‍🐰‍👩🏼' => 'rəqs edən qadınlar: açıq dəri tonu, orta-açıq dəri tonu',
+    '👩🏻‍🐰‍👩🏽' => 'rəqs edən qadınlar: açıq dəri tonu, orta dəri tonu',
+    '👩🏻‍🐰‍👩🏾' => 'rəqs edən qadınlar: açıq dəri tonu, orta-tünd dəri tonu',
+    '👩🏻‍🐰‍👩🏿' => 'rəqs edən qadınlar: açıq dəri tonu, tünd dəri tonu',
+    '👩🏼‍🐰‍👩🏻' => 'rəqs edən qadınlar: orta-açıq dəri tonu, açıq dəri tonu',
+    '👩🏼‍🐰‍👩🏽' => 'rəqs edən qadınlar: orta-açıq dəri tonu, orta dəri tonu',
+    '👩🏼‍🐰‍👩🏾' => 'rəqs edən qadınlar: orta-açıq dəri tonu, orta-tünd dəri tonu',
+    '👩🏼‍🐰‍👩🏿' => 'rəqs edən qadınlar: orta-açıq dəri tonu, tünd dəri tonu',
+    '👩🏽‍🐰‍👩🏻' => 'rəqs edən qadınlar: orta dəri tonu, açıq dəri tonu',
+    '👩🏽‍🐰‍👩🏼' => 'rəqs edən qadınlar: orta dəri tonu, orta-açıq dəri tonu',
+    '👩🏽‍🐰‍👩🏾' => 'rəqs edən qadınlar: orta dəri tonu, orta-tünd dəri tonu',
+    '👩🏽‍🐰‍👩🏿' => 'rəqs edən qadınlar: orta dəri tonu, tünd dəri tonu',
+    '👩🏾‍🐰‍👩🏻' => 'rəqs edən qadınlar: orta-tünd dəri tonu, açıq dəri tonu',
+    '👩🏾‍🐰‍👩🏼' => 'rəqs edən qadınlar: orta-tünd dəri tonu, orta-açıq dəri tonu',
+    '👩🏾‍🐰‍👩🏽' => 'rəqs edən qadınlar: orta-tünd dəri tonu, orta dəri tonu',
+    '👩🏾‍🐰‍👩🏿' => 'rəqs edən qadınlar: orta-tünd dəri tonu, tünd dəri tonu',
+    '👩🏿‍🐰‍👩🏻' => 'rəqs edən qadınlar: tünd dəri tonu, açıq dəri tonu',
+    '👩🏿‍🐰‍👩🏼' => 'rəqs edən qadınlar: tünd dəri tonu, orta-açıq dəri tonu',
+    '👩🏿‍🐰‍👩🏽' => 'rəqs edən qadınlar: tünd dəri tonu, orta dəri tonu',
+    '👩🏿‍🐰‍👩🏾' => 'rəqs edən qadınlar: tünd dəri tonu, orta-tünd dəri tonu',
     '🧑🏻‍🤝‍🧑🏻' => 'əl-ələ tutan adamlar: açıq dəri tonu',
     '🧑🏻‍🤝‍🧑🏼' => 'əl-ələ tutan adamlar: açıq dəri tonu, orta-açıq dəri tonu',
     '🧑🏻‍🤝‍🧑🏽' => 'əl-ələ tutan adamlar: açıq dəri tonu, orta dəri tonu',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bayraq: Şotlandiya',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bayraq: Uels',
     '🧑‍🧑‍🧒‍🧒' => 'ailə: yetkin, yetkin, uşaq, uşaq',
-    '🚶🏻‍♀‍➡' => 'gəzən qadın sağa baxan',
-    '🚶🏼‍♀‍➡' => 'gəzən qadın sağa baxan',
-    '🚶🏽‍♀‍➡' => 'gəzən qadın sağa baxan',
-    '🚶🏾‍♀‍➡' => 'gəzən qadın sağa baxan',
-    '🚶🏿‍♀‍➡' => 'gəzən qadın sağa baxan',
-    '🚶🏻‍♂‍➡' => 'gəzən kişi sağa baxan',
-    '🚶🏼‍♂‍➡' => 'gəzən kişi sağa baxan',
-    '🚶🏽‍♂‍➡' => 'gəzən kişi sağa baxan',
-    '🚶🏾‍♂‍➡' => 'gəzən kişi sağa baxan',
-    '🚶🏿‍♂‍➡' => 'gəzən kişi sağa baxan',
-    '🧎🏻‍♀‍➡' => 'dizi üstündə qadın sağa baxan',
-    '🧎🏼‍♀‍➡' => 'dizi üstündə qadın sağa baxan',
-    '🧎🏽‍♀‍➡' => 'dizi üstündə qadın sağa baxan',
-    '🧎🏾‍♀‍➡' => 'dizi üstündə qadın sağa baxan',
-    '🧎🏿‍♀‍➡' => 'dizi üstündə qadın sağa baxan',
-    '🧎🏻‍♂‍➡' => 'dizi üstündə kişi sağa baxan',
-    '🧎🏼‍♂‍➡' => 'dizi üstündə kişi sağa baxan',
-    '🧎🏽‍♂‍➡' => 'dizi üstündə kişi sağa baxan',
-    '🧎🏾‍♂‍➡' => 'dizi üstündə kişi sağa baxan',
-    '🧎🏿‍♂‍➡' => 'dizi üstündə kişi sağa baxan',
-    '🧑🏻‍🦯‍➡' => 'zondlayan çəlikli adam sağa baxan',
-    '🧑🏼‍🦯‍➡' => 'zondlayan çəlikli adam sağa baxan',
-    '🧑🏽‍🦯‍➡' => 'zondlayan çəlikli adam sağa baxan',
-    '🧑🏾‍🦯‍➡' => 'zondlayan çəlikli adam sağa baxan',
-    '🧑🏿‍🦯‍➡' => 'zondlayan çəlikli adam sağa baxan',
-    '👨🏻‍🦯‍➡' => 'zond ilə kişi sağa baxan',
-    '👨🏼‍🦯‍➡' => 'zond ilə kişi sağa baxan',
-    '👨🏽‍🦯‍➡' => 'zond ilə kişi sağa baxan',
-    '👨🏾‍🦯‍➡' => 'zond ilə kişi sağa baxan',
-    '👨🏿‍🦯‍➡' => 'zond ilə kişi sağa baxan',
-    '👩🏻‍🦯‍➡' => 'zond ilə qadın sağa baxan',
-    '👩🏼‍🦯‍➡' => 'zond ilə qadın sağa baxan',
-    '👩🏽‍🦯‍➡' => 'zond ilə qadın sağa baxan',
-    '👩🏾‍🦯‍➡' => 'zond ilə qadın sağa baxan',
-    '👩🏿‍🦯‍➡' => 'zond ilə qadın sağa baxan',
-    '🧑🏻‍🦼‍➡' => 'motorlu kresloda oturmuş adam sağa baxan',
-    '🧑🏼‍🦼‍➡' => 'motorlu kresloda oturmuş adam sağa baxan',
-    '🧑🏽‍🦼‍➡' => 'motorlu kresloda oturmuş adam sağa baxan',
-    '🧑🏾‍🦼‍➡' => 'motorlu kresloda oturmuş adam sağa baxan',
-    '🧑🏿‍🦼‍➡' => 'motorlu kresloda oturmuş adam sağa baxan',
-    '👨🏻‍🦼‍➡' => 'motorlu oturacaqda kişi sağa baxan',
-    '👨🏼‍🦼‍➡' => 'motorlu oturacaqda kişi sağa baxan',
-    '👨🏽‍🦼‍➡' => 'motorlu oturacaqda kişi sağa baxan',
-    '👨🏾‍🦼‍➡' => 'motorlu oturacaqda kişi sağa baxan',
-    '👨🏿‍🦼‍➡' => 'motorlu oturacaqda kişi sağa baxan',
-    '👩🏻‍🦼‍➡' => 'motorlu oturacaqda qadın sağa baxan',
-    '👩🏼‍🦼‍➡' => 'motorlu oturacaqda qadın sağa baxan',
-    '👩🏽‍🦼‍➡' => 'motorlu oturacaqda qadın sağa baxan',
-    '👩🏾‍🦼‍➡' => 'motorlu oturacaqda qadın sağa baxan',
-    '👩🏿‍🦼‍➡' => 'motorlu oturacaqda qadın sağa baxan',
-    '🧑🏻‍🦽‍➡' => 'əl arabasında adam sağa baxan',
-    '🧑🏼‍🦽‍➡' => 'əl arabasında adam sağa baxan',
-    '🧑🏽‍🦽‍➡' => 'əl arabasında adam sağa baxan',
-    '🧑🏾‍🦽‍➡' => 'əl arabasında adam sağa baxan',
-    '🧑🏿‍🦽‍➡' => 'əl arabasında adam sağa baxan',
-    '👨🏻‍🦽‍➡' => 'manual oturacaqda kişi sağa baxan',
-    '👨🏼‍🦽‍➡' => 'manual oturacaqda kişi sağa baxan',
-    '👨🏽‍🦽‍➡' => 'manual oturacaqda kişi sağa baxan',
-    '👨🏾‍🦽‍➡' => 'manual oturacaqda kişi sağa baxan',
-    '👨🏿‍🦽‍➡' => 'manual oturacaqda kişi sağa baxan',
-    '👩🏻‍🦽‍➡' => 'manual oturacaqda qadın sağa baxan',
-    '👩🏼‍🦽‍➡' => 'manual oturacaqda qadın sağa baxan',
-    '👩🏽‍🦽‍➡' => 'manual oturacaqda qadın sağa baxan',
-    '👩🏾‍🦽‍➡' => 'manual oturacaqda qadın sağa baxan',
-    '👩🏿‍🦽‍➡' => 'manual oturacaqda qadın sağa baxan',
-    '🏃🏻‍♀‍➡' => 'qaçan qadın sağa baxan',
-    '🏃🏼‍♀‍➡' => 'qaçan qadın sağa baxan',
-    '🏃🏽‍♀‍➡' => 'qaçan qadın sağa baxan',
-    '🏃🏾‍♀‍➡' => 'qaçan qadın sağa baxan',
-    '🏃🏿‍♀‍➡' => 'qaçan qadın sağa baxan',
-    '🏃🏻‍♂‍➡' => 'qaçan kişi sağa baxan',
-    '🏃🏼‍♂‍➡' => 'qaçan kişi sağa baxan',
-    '🏃🏽‍♂‍➡' => 'qaçan kişi sağa baxan',
-    '🏃🏾‍♂‍➡' => 'qaçan kişi sağa baxan',
-    '🏃🏿‍♂‍➡' => 'qaçan kişi sağa baxan',
+    '🚶🏻‍♀‍➡' => 'gəzən qadın: açıq dəri tonu, sağa baxan',
+    '🚶🏼‍♀‍➡' => 'gəzən qadın: orta-açıq dəri tonu, sağa baxan',
+    '🚶🏽‍♀‍➡' => 'gəzən qadın: orta dəri tonu, sağa baxan',
+    '🚶🏾‍♀‍➡' => 'gəzən qadın: orta-tünd dəri tonu, sağa baxan',
+    '🚶🏿‍♀‍➡' => 'gəzən qadın: tünd dəri tonu, sağa baxan',
+    '🚶🏻‍♂‍➡' => 'gəzən kişi: açıq dəri tonu, sağa baxan',
+    '🚶🏼‍♂‍➡' => 'gəzən kişi: orta-açıq dəri tonu, sağa baxan',
+    '🚶🏽‍♂‍➡' => 'gəzən kişi: orta dəri tonu, sağa baxan',
+    '🚶🏾‍♂‍➡' => 'gəzən kişi: orta-tünd dəri tonu, sağa baxan',
+    '🚶🏿‍♂‍➡' => 'gəzən kişi: tünd dəri tonu, sağa baxan',
+    '🧎🏻‍♀‍➡' => 'dizi üstündə qadın: açıq dəri tonu, sağa baxan',
+    '🧎🏼‍♀‍➡' => 'dizi üstündə qadın: orta-açıq dəri tonu, sağa baxan',
+    '🧎🏽‍♀‍➡' => 'dizi üstündə qadın: orta dəri tonu, sağa baxan',
+    '🧎🏾‍♀‍➡' => 'dizi üstündə qadın: orta-tünd dəri tonu, sağa baxan',
+    '🧎🏿‍♀‍➡' => 'dizi üstündə qadın: tünd dəri tonu, sağa baxan',
+    '🧎🏻‍♂‍➡' => 'dizi üstündə kişi: açıq dəri tonu, sağa baxan',
+    '🧎🏼‍♂‍➡' => 'dizi üstündə kişi: orta-açıq dəri tonu, sağa baxan',
+    '🧎🏽‍♂‍➡' => 'dizi üstündə kişi: orta dəri tonu, sağa baxan',
+    '🧎🏾‍♂‍➡' => 'dizi üstündə kişi: orta-tünd dəri tonu, sağa baxan',
+    '🧎🏿‍♂‍➡' => 'dizi üstündə kişi: tünd dəri tonu, sağa baxan',
+    '🧑🏻‍🦯‍➡' => 'zondlayan çəlikli adam: açıq dəri tonu, sağa baxan',
+    '🧑🏼‍🦯‍➡' => 'zondlayan çəlikli adam: orta-açıq dəri tonu, sağa baxan',
+    '🧑🏽‍🦯‍➡' => 'zondlayan çəlikli adam: orta dəri tonu, sağa baxan',
+    '🧑🏾‍🦯‍➡' => 'zondlayan çəlikli adam: orta-tünd dəri tonu, sağa baxan',
+    '🧑🏿‍🦯‍➡' => 'zondlayan çəlikli adam: tünd dəri tonu, sağa baxan',
+    '👨🏻‍🦯‍➡' => 'zond ilə kişi: açıq dəri tonu, sağa baxan',
+    '👨🏼‍🦯‍➡' => 'zond ilə kişi: orta-açıq dəri tonu, sağa baxan',
+    '👨🏽‍🦯‍➡' => 'zond ilə kişi: orta dəri tonu, sağa baxan',
+    '👨🏾‍🦯‍➡' => 'zond ilə kişi: orta-tünd dəri tonu, sağa baxan',
+    '👨🏿‍🦯‍➡' => 'zond ilə kişi: tünd dəri tonu, sağa baxan',
+    '👩🏻‍🦯‍➡' => 'zond ilə qadın: açıq dəri tonu, sağa baxan',
+    '👩🏼‍🦯‍➡' => 'zond ilə qadın: orta-açıq dəri tonu, sağa baxan',
+    '👩🏽‍🦯‍➡' => 'zond ilə qadın: orta dəri tonu, sağa baxan',
+    '👩🏾‍🦯‍➡' => 'zond ilə qadın: orta-tünd dəri tonu, sağa baxan',
+    '👩🏿‍🦯‍➡' => 'zond ilə qadın: tünd dəri tonu, sağa baxan',
+    '🧑🏻‍🦼‍➡' => 'motorlu kresloda oturmuş adam: açıq dəri tonu, sağa baxan',
+    '🧑🏼‍🦼‍➡' => 'motorlu kresloda oturmuş adam: orta-açıq dəri tonu, sağa baxan',
+    '🧑🏽‍🦼‍➡' => 'motorlu kresloda oturmuş adam: orta dəri tonu, sağa baxan',
+    '🧑🏾‍🦼‍➡' => 'motorlu kresloda oturmuş adam: orta-tünd dəri tonu, sağa baxan',
+    '🧑🏿‍🦼‍➡' => 'motorlu kresloda oturmuş adam: tünd dəri tonu, sağa baxan',
+    '👨🏻‍🦼‍➡' => 'motorlu oturacaqda kişi: açıq dəri tonu, sağa baxan',
+    '👨🏼‍🦼‍➡' => 'motorlu oturacaqda kişi: orta-açıq dəri tonu, sağa baxan',
+    '👨🏽‍🦼‍➡' => 'motorlu oturacaqda kişi: orta dəri tonu, sağa baxan',
+    '👨🏾‍🦼‍➡' => 'motorlu oturacaqda kişi: orta-tünd dəri tonu, sağa baxan',
+    '👨🏿‍🦼‍➡' => 'motorlu oturacaqda kişi: tünd dəri tonu, sağa baxan',
+    '👩🏻‍🦼‍➡' => 'motorlu oturacaqda qadın: açıq dəri tonu, sağa baxan',
+    '👩🏼‍🦼‍➡' => 'motorlu oturacaqda qadın: orta-açıq dəri tonu, sağa baxan',
+    '👩🏽‍🦼‍➡' => 'motorlu oturacaqda qadın: orta dəri tonu, sağa baxan',
+    '👩🏾‍🦼‍➡' => 'motorlu oturacaqda qadın: orta-tünd dəri tonu, sağa baxan',
+    '👩🏿‍🦼‍➡' => 'motorlu oturacaqda qadın: tünd dəri tonu, sağa baxan',
+    '🧑🏻‍🦽‍➡' => 'əl arabasında adam: açıq dəri tonu, sağa baxan',
+    '🧑🏼‍🦽‍➡' => 'əl arabasında adam: orta-açıq dəri tonu, sağa baxan',
+    '🧑🏽‍🦽‍➡' => 'əl arabasında adam: orta dəri tonu, sağa baxan',
+    '🧑🏾‍🦽‍➡' => 'əl arabasında adam: orta-tünd dəri tonu, sağa baxan',
+    '🧑🏿‍🦽‍➡' => 'əl arabasında adam: tünd dəri tonu, sağa baxan',
+    '👨🏻‍🦽‍➡' => 'manual oturacaqda kişi: açıq dəri tonu, sağa baxan',
+    '👨🏼‍🦽‍➡' => 'manual oturacaqda kişi: orta-açıq dəri tonu, sağa baxan',
+    '👨🏽‍🦽‍➡' => 'manual oturacaqda kişi: orta dəri tonu, sağa baxan',
+    '👨🏾‍🦽‍➡' => 'manual oturacaqda kişi: orta-tünd dəri tonu, sağa baxan',
+    '👨🏿‍🦽‍➡' => 'manual oturacaqda kişi: tünd dəri tonu, sağa baxan',
+    '👩🏻‍🦽‍➡' => 'manual oturacaqda qadın: açıq dəri tonu, sağa baxan',
+    '👩🏼‍🦽‍➡' => 'manual oturacaqda qadın: orta-açıq dəri tonu, sağa baxan',
+    '👩🏽‍🦽‍➡' => 'manual oturacaqda qadın: orta dəri tonu, sağa baxan',
+    '👩🏾‍🦽‍➡' => 'manual oturacaqda qadın: orta-tünd dəri tonu, sağa baxan',
+    '👩🏿‍🦽‍➡' => 'manual oturacaqda qadın: tünd dəri tonu, sağa baxan',
+    '🏃🏻‍♀‍➡' => 'qaçan qadın: açıq dəri tonu, sağa baxan',
+    '🏃🏼‍♀‍➡' => 'qaçan qadın: orta-açıq dəri tonu, sağa baxan',
+    '🏃🏽‍♀‍➡' => 'qaçan qadın: orta dəri tonu, sağa baxan',
+    '🏃🏾‍♀‍➡' => 'qaçan qadın: orta-tünd dəri tonu, sağa baxan',
+    '🏃🏿‍♀‍➡' => 'qaçan qadın: tünd dəri tonu, sağa baxan',
+    '🏃🏻‍♂‍➡' => 'qaçan kişi: açıq dəri tonu, sağa baxan',
+    '🏃🏼‍♂‍➡' => 'qaçan kişi: orta-açıq dəri tonu, sağa baxan',
+    '🏃🏽‍♂‍➡' => 'qaçan kişi: orta dəri tonu, sağa baxan',
+    '🏃🏾‍♂‍➡' => 'qaçan kişi: orta-tünd dəri tonu, sağa baxan',
+    '🏃🏿‍♂‍➡' => 'qaçan kişi: tünd dəri tonu, sağa baxan',
     '🫱🏻‍🫲🏼' => 'salamlaşmaq: açıq dəri tonu, orta-açıq dəri tonu',
     '🫱🏻‍🫲🏽' => 'salamlaşmaq: açıq dəri tonu, orta dəri tonu',
     '🫱🏻‍🫲🏾' => 'salamlaşmaq: açıq dəri tonu, orta-tünd dəri tonu',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'salamlaşmaq: tünd dəri tonu, orta-açıq dəri tonu',
     '🫱🏿‍🫲🏽' => 'salamlaşmaq: tünd dəri tonu, orta dəri tonu',
     '🫱🏿‍🫲🏾' => 'salamlaşmaq: tünd dəri tonu, orta-tünd dəri tonu',
-    '🚶‍♀‍➡' => 'gəzən qadın sağa baxan',
-    '🚶‍♂‍➡' => 'gəzən kişi sağa baxan',
-    '🧎‍♀‍➡' => 'dizi üstündə qadın sağa baxan',
-    '🧎‍♂‍➡' => 'dizi üstündə kişi sağa baxan',
-    '🧑‍🦯‍➡' => 'zondlayan çəlikli adam sağa baxan',
-    '👨‍🦯‍➡' => 'zond ilə kişi sağa baxan',
-    '👩‍🦯‍➡' => 'zond ilə qadın sağa baxan',
-    '🧑‍🦼‍➡' => 'motorlu kresloda oturmuş adam sağa baxan',
-    '👨‍🦼‍➡' => 'motorlu oturacaqda kişi sağa baxan',
-    '👩‍🦼‍➡' => 'motorlu oturacaqda qadın sağa baxan',
-    '🧑‍🦽‍➡' => 'əl arabasında adam sağa baxan',
-    '👨‍🦽‍➡' => 'manual oturacaqda kişi sağa baxan',
-    '👩‍🦽‍➡' => 'manual oturacaqda qadın sağa baxan',
-    '🏃‍♀‍➡' => 'qaçan qadın sağa baxan',
-    '🏃‍♂‍➡' => 'qaçan kişi sağa baxan',
+    '🚶‍♀‍➡' => 'gəzən qadın: sağa baxan',
+    '🚶‍♂‍➡' => 'gəzən kişi: sağa baxan',
+    '🧎‍♀‍➡' => 'dizi üstündə qadın: sağa baxan',
+    '🧎‍♂‍➡' => 'dizi üstündə kişi: sağa baxan',
+    '🧑‍🦯‍➡' => 'zondlayan çəlikli adam: sağa baxan',
+    '👨‍🦯‍➡' => 'zond ilə kişi: sağa baxan',
+    '👩‍🦯‍➡' => 'zond ilə qadın: sağa baxan',
+    '🧑‍🦼‍➡' => 'motorlu kresloda oturmuş adam: sağa baxan',
+    '👨‍🦼‍➡' => 'motorlu oturacaqda kişi: sağa baxan',
+    '👩‍🦼‍➡' => 'motorlu oturacaqda qadın: sağa baxan',
+    '🧑‍🦽‍➡' => 'əl arabasında adam: sağa baxan',
+    '👨‍🦽‍➡' => 'manual oturacaqda kişi: sağa baxan',
+    '👩‍🦽‍➡' => 'manual oturacaqda qadın: sağa baxan',
+    '🏃‍♀‍➡' => 'qaçan qadın: sağa baxan',
+    '🏃‍♂‍➡' => 'qaçan kişi: sağa baxan',
     '👩‍❤‍👨' => 'ürəkli cütlük: qadın, kişi',
     '👨‍❤‍👨' => 'ürəkli cütlük: kişi, kişi',
     '👩‍❤‍👩' => 'ürəkli cütlük: qadın, qadın',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'böyük: orta dəri tonu, keçəl',
     '🧑🏾‍🦲' => 'böyük: orta-tünd dəri tonu, keçəl',
     '🧑🏿‍🦲' => 'böyük: tünd dəri tonu, keçəl',
+    '🧑🏻‍🩰' => 'balet rəqqası: açıq dəri tonu',
+    '🧑🏼‍🩰' => 'balet rəqqası: orta-açıq dəri tonu',
+    '🧑🏽‍🩰' => 'balet rəqqası: orta dəri tonu',
+    '🧑🏾‍🩰' => 'balet rəqqası: orta-tünd dəri tonu',
+    '🧑🏿‍🩰' => 'balet rəqqası: tünd dəri tonu',
     '🧔🏻‍♂' => 'kişi; saqqal: açıq dəri tonu',
     '🧔🏼‍♂' => 'kişi; saqqal: orta-açıq dəri tonu',
     '🧔🏽‍♂' => 'kişi; saqqal: orta dəri tonu',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'gəzən qadın: orta dəri tonu',
     '🚶🏾‍♀' => 'gəzən qadın: orta-tünd dəri tonu',
     '🚶🏿‍♀' => 'gəzən qadın: tünd dəri tonu',
-    '🚶🏻‍➡' => 'piyada sağa baxan',
-    '🚶🏼‍➡' => 'piyada sağa baxan',
-    '🚶🏽‍➡' => 'piyada sağa baxan',
-    '🚶🏾‍➡' => 'piyada sağa baxan',
-    '🚶🏿‍➡' => 'piyada sağa baxan',
+    '🚶🏻‍➡' => 'piyada: açıq dəri tonu, sağa baxan',
+    '🚶🏼‍➡' => 'piyada: orta-açıq dəri tonu, sağa baxan',
+    '🚶🏽‍➡' => 'piyada: orta dəri tonu, sağa baxan',
+    '🚶🏾‍➡' => 'piyada: orta-tünd dəri tonu, sağa baxan',
+    '🚶🏿‍➡' => 'piyada: tünd dəri tonu, sağa baxan',
     '🧍🏻‍♂' => 'duran kişi: açıq dəri tonu',
     '🧍🏼‍♂' => 'duran kişi: orta-açıq dəri tonu',
     '🧍🏽‍♂' => 'duran kişi: orta dəri tonu',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'dizi üstündə qadın: orta dəri tonu',
     '🧎🏾‍♀' => 'dizi üstündə qadın: orta-tünd dəri tonu',
     '🧎🏿‍♀' => 'dizi üstündə qadın: tünd dəri tonu',
-    '🧎🏻‍➡' => 'dizi üstündə adam sağa baxan',
-    '🧎🏼‍➡' => 'dizi üstündə adam sağa baxan',
-    '🧎🏽‍➡' => 'dizi üstündə adam sağa baxan',
-    '🧎🏾‍➡' => 'dizi üstündə adam sağa baxan',
-    '🧎🏿‍➡' => 'dizi üstündə adam sağa baxan',
+    '🧎🏻‍➡' => 'dizi üstündə adam: açıq dəri tonu, sağa baxan',
+    '🧎🏼‍➡' => 'dizi üstündə adam: orta-açıq dəri tonu, sağa baxan',
+    '🧎🏽‍➡' => 'dizi üstündə adam: orta dəri tonu, sağa baxan',
+    '🧎🏾‍➡' => 'dizi üstündə adam: orta-tünd dəri tonu, sağa baxan',
+    '🧎🏿‍➡' => 'dizi üstündə adam: tünd dəri tonu, sağa baxan',
     '🧑🏻‍🦯' => 'zondlayan çəlikli adam: açıq dəri tonu',
     '🧑🏼‍🦯' => 'zondlayan çəlikli adam: orta-açıq dəri tonu',
     '🧑🏽‍🦯' => 'zondlayan çəlikli adam: orta dəri tonu',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'qaçan qadın: orta dəri tonu',
     '🏃🏾‍♀' => 'qaçan qadın: orta-tünd dəri tonu',
     '🏃🏿‍♀' => 'qaçan qadın: tünd dəri tonu',
-    '🏃🏻‍➡' => 'atlet sağa baxan',
-    '🏃🏼‍➡' => 'atlet sağa baxan',
-    '🏃🏽‍➡' => 'atlet sağa baxan',
-    '🏃🏾‍➡' => 'atlet sağa baxan',
-    '🏃🏿‍➡' => 'atlet sağa baxan',
+    '🏃🏻‍➡' => 'atlet: açıq dəri tonu, sağa baxan',
+    '🏃🏼‍➡' => 'atlet: orta-açıq dəri tonu, sağa baxan',
+    '🏃🏽‍➡' => 'atlet: orta dəri tonu, sağa baxan',
+    '🏃🏾‍➡' => 'atlet: orta-tünd dəri tonu, sağa baxan',
+    '🏃🏿‍➡' => 'atlet: tünd dəri tonu, sağa baxan',
+    '👯🏻‍♀' => 'rəqs edən qadınlar: açıq dəri tonu',
+    '👯🏼‍♀' => 'rəqs edən qadınlar: orta-açıq dəri tonu',
+    '👯🏽‍♀' => 'rəqs edən qadınlar: orta dəri tonu',
+    '👯🏾‍♀' => 'rəqs edən qadınlar: orta-tünd dəri tonu',
+    '👯🏿‍♀' => 'rəqs edən qadınlar: tünd dəri tonu',
+    '👯🏻‍♂' => 'rəqs edən kişi: açıq dəri tonu',
+    '👯🏼‍♂' => 'rəqs edən kişi: orta-açıq dəri tonu',
+    '👯🏽‍♂' => 'rəqs edən kişi: orta dəri tonu',
+    '👯🏾‍♂' => 'rəqs edən kişi: orta-tünd dəri tonu',
+    '👯🏿‍♂' => 'rəqs edən kişi: tünd dəri tonu',
     '🧖🏻‍♂' => 'buxarlı otaqda kişi: açıq dəri tonu',
     '🧖🏼‍♂' => 'buxarlı otaqda kişi: orta-açıq dəri tonu',
     '🧖🏽‍♂' => 'buxarlı otaqda kişi: orta dəri tonu',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'aktobat qadın: orta dəri tonu',
     '🤸🏾‍♀' => 'aktobat qadın: orta-tünd dəri tonu',
     '🤸🏿‍♀' => 'aktobat qadın: tünd dəri tonu',
+    '🤼🏻‍♀' => 'güləşçi qadın: açıq dəri tonu',
+    '🤼🏼‍♀' => 'güləşçi qadın: orta-açıq dəri tonu',
+    '🤼🏽‍♀' => 'güləşçi qadın: orta dəri tonu',
+    '🤼🏾‍♀' => 'güləşçi qadın: orta-tünd dəri tonu',
+    '🤼🏿‍♀' => 'güləşçi qadın: tünd dəri tonu',
+    '🤼🏻‍♂' => 'güləşçi kişi: açıq dəri tonu',
+    '🤼🏼‍♂' => 'güləşçi kişi: orta-açıq dəri tonu',
+    '🤼🏽‍♂' => 'güləşçi kişi: orta dəri tonu',
+    '🤼🏾‍♂' => 'güləşçi kişi: orta-tünd dəri tonu',
+    '🤼🏿‍♂' => 'güləşçi kişi: tünd dəri tonu',
     '🤽🏻‍♂' => 'su poloçusu kişi: açıq dəri tonu',
     '🤽🏼‍♂' => 'su poloçusu kişi: orta-açıq dəri tonu',
     '🤽🏽‍♂' => 'su poloçusu kişi: orta dəri tonu',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'qadın: buruq saç',
     '👩‍🦳' => 'qadın: ağ saç',
     '👩‍🦲' => 'qadın: keçəl',
-    '🚶‍➡' => 'piyada sağa baxan',
-    '🧎‍➡' => 'dizi üstündə adam sağa baxan',
-    '🏃‍➡' => 'atlet sağa baxan',
+    '🚶‍➡' => 'piyada: sağa baxan',
+    '🧎‍➡' => 'dizi üstündə adam: sağa baxan',
+    '🏃‍➡' => 'atlet: sağa baxan',
     '👨‍👦' => 'ailə: kişi, oğlan',
     '👨‍👧' => 'ailə: kişi, qız uşağı',
     '👩‍👦' => 'ailə: qadın, oğlan',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'manual oturacaqda qadın',
     '🏃‍♂' => 'qaçan kişi',
     '🏃‍♀' => 'qaçan qadın',
+    '🧑‍🩰' => 'balet rəqqası',
     '👯‍♂' => 'rəqs edən kişi',
     '👯‍♀' => 'rəqs edən qadınlar',
     '🧖‍♂' => 'buxarlı otaqda kişi',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'işgüzar kostyumlu kişi: orta dəri tonu',
     '🕴🏾' => 'işgüzar kostyumlu kişi: orta-tünd dəri tonu',
     '🕴🏿' => 'işgüzar kostyumlu kişi: tünd dəri tonu',
+    '👯🏻' => 'şənlənən qadınlar: açıq dəri tonu',
+    '👯🏼' => 'şənlənən qadınlar: orta-açıq dəri tonu',
+    '👯🏽' => 'şənlənən qadınlar: orta dəri tonu',
+    '👯🏾' => 'şənlənən qadınlar: orta-tünd dəri tonu',
+    '👯🏿' => 'şənlənən qadınlar: tünd dəri tonu',
     '🧖🏻' => 'buxarlı otaqda adam: açıq dəri tonu',
     '🧖🏼' => 'buxarlı otaqda adam: orta-açıq dəri tonu',
     '🧖🏽' => 'buxarlı otaqda adam: orta dəri tonu',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'akrobatik hərəkət: orta dəri tonu',
     '🤸🏾' => 'akrobatik hərəkət: orta-tünd dəri tonu',
     '🤸🏿' => 'akrobatik hərəkət: tünd dəri tonu',
+    '🤼🏻' => 'güləş: açıq dəri tonu',
+    '🤼🏼' => 'güləş: orta-açıq dəri tonu',
+    '🤼🏽' => 'güləş: orta dəri tonu',
+    '🤼🏾' => 'güləş: orta-tünd dəri tonu',
+    '🤼🏿' => 'güləş: tünd dəri tonu',
     '🤽🏻' => 'su polosu: açıq dəri tonu',
     '🤽🏼' => 'su polosu: orta-açıq dəri tonu',
     '🤽🏽' => 'su polosu: orta dəri tonu',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bayraq: Çin',
     '🇨🇴' => 'bayraq: Kolumbiya',
     '🇨🇵' => 'bayraq: Klipperton adası',
+    '🇨🇶' => 'bayraq: sark (ingilis dili) dialekti',
     '🇨🇷' => 'bayraq: Kosta Rika',
     '🇨🇺' => 'bayraq: Kuba',
     '🇨🇻' => 'bayraq: Kabo-Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'orta dəri tonu',
     '🏾' => 'orta-tünd dəri tonu',
     '🏿' => 'tünd dəri tonu',
-    '🪉' => 'arfa',
-    '🪏' => 'bel',
-    '🪾' => 'yarpaqsız ağac',
-    '🫆' => 'barmaq izi',
-    '🫜' => 'meyvəköklü',
-    '🫟' => 'sıçratmaq',
-    '🫩' => 'altı torbalanmış gözləri olan üz',
     '😀' => 'gülən üz',
     '😃' => 'açıq ağızla gülən üz',
     '😄' => 'açıq ağız və gülən gözlərlə gülən üz',
@@ -2450,6 +2600,7 @@
     '😪' => 'yuxulu üz',
     '🤤' => 'ağız sulanan üz',
     '😴' => 'yatan üz',
+    '🫩' => 'altı torbalanmış gözləri olan üz',
     '😷' => 'tibbi maskalı üz',
     '🤒' => 'termometrli',
     '🤕' => 'baş sarğılı üz',
@@ -2476,6 +2627,7 @@
     '😯' => 'heyrətlənmiş üz',
     '😲' => 'təəccüblənmiş üz',
     '😳' => 'qızarmış üz',
+    '🫪' => 'əyilmiş üz',
     '🥺' => 'yalvaran üz',
     '🥹' => 'dolmuş gözləri olan üz',
     '😦' => 'ağzı açıq qaşqabaqlı üz',
@@ -2547,6 +2699,7 @@
     '💋' => 'öpüş işarəsi',
     '💯' => '100 xal',
     '💢' => 'qəzəb simvolu',
+    '🫯' => 'savaş buludu',
     '💥' => 'toqquşma',
     '💫' => 'başgicəllənməsi',
     '💦' => 'tər damcıları',
@@ -2670,6 +2823,7 @@
     '🧞' => 'cin',
     '🧟' => 'zombi',
     '🧌' => 'troll',
+    '🫈' => 'tüklü məxluq',
     '💆' => 'üz masajı',
     '💇' => 'saç kəsimi',
     '🚶' => 'piyada',
@@ -2713,6 +2867,7 @@
     '🫂' => 'qucaqlaşan insanlar',
     '👪' => 'ailə',
     '👣' => 'ayaq izləri',
+    '🫆' => 'barmaq izi',
     '🦰' => 'qırmızı saç',
     '🦱' => 'buruq saç',
     '🦳' => 'ağ saç',
@@ -2812,6 +2967,7 @@
     '🐳' => 'su püskürdən balina',
     '🐋' => 'kit',
     '🐬' => 'delfin',
+    '🫍' => 'orka',
     '🦭' => 'suiti',
     '🐟' => 'balıq',
     '🐠' => 'tropik balıq',
@@ -2821,6 +2977,11 @@
     '🐚' => 'spiral balıqqulağı',
     '🪸' => 'mərcan',
     '🪼' => 'meduza',
+    '🦀' => 'qırmızı xərçəng',
+    '🦞' => 'lobster',
+    '🦐' => 'krevet',
+    '🦑' => 'səkkiz ayaq',
+    '🦪' => 'stridiya',
     '🐌' => 'ilbiz',
     '🦋' => 'kəpənək',
     '🐛' => 'böcək',
@@ -2865,6 +3026,7 @@
     '🪹' => 'boş yuva',
     '🪺' => 'yumurtalı yuva',
     '🍄' => 'göbələk',
+    '🪾' => 'yarpaqsız ağac',
     '🍇' => 'üzüm',
     '🍈' => 'yemiş',
     '🍉' => 'qarpız',
@@ -2901,6 +3063,7 @@
     '🌰' => 'şabalıd',
     '🫚' => 'zəncəfil kökü',
     '🫛' => 'noxud qabığı',
+    '🫜' => 'meyvəköklü',
     '🍞' => 'çörək',
     '🥐' => 'kruasan',
     '🥖' => 'kərpic çörək',
@@ -2952,11 +3115,6 @@
     '🥟' => 'klyotek',
     '🥠' => 'bəxt peçenyesi',
     '🥡' => 'özünlə aparmaq qutusu',
-    '🦀' => 'qırmızı xərçəng',
-    '🦞' => 'lobster',
-    '🦐' => 'krevet',
-    '🦑' => 'səkkiz ayaq',
-    '🦪' => 'stridiya',
     '🍦' => 'yumşaq dondurma',
     '🍧' => 'rəndələnmiş dondurma',
     '🍨' => 'dondurma',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'başı qarla örtülmüş dağ',
     '⛰' => 'dağ',
+    '🛘' => 'torpaq sürüşməsi',
     '🌋' => 'vulkan',
     '🗻' => 'fuji dağı',
     '🏕' => 'kempinq',
@@ -3303,11 +3462,11 @@
     '🪢' => 'düyün',
     '👓' => 'eynək',
     '🕶' => 'gün eynəyi',
-    '🥽' => 'su eynəyi',
+    '🥽' => 'qoruyucu eynək',
     '🥼' => 'laboratoriya geyimi',
     '🦺' => 'güvənlik jaketi',
     '👔' => 'qalstuk',
-    '👕' => 'köynək',
+    '👕' => 'qısaqol köynək',
     '👖' => 'cins',
     '🧣' => 'şərf',
     '🧤' => 'əlcəklər',
@@ -3367,16 +3526,18 @@
     '🎧' => 'qulaqlıq',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'şeypur',
+    '🪊' => 'trombon',
     '🪗' => 'akkordeon',
     '🎸' => 'gitara',
     '🎹' => 'musiqi klaviaturası',
-    '🎺' => 'şeypur',
     '🎻' => 'skripka',
     '🪕' => 'banco',
     '🥁' => 'davul',
     '🪘' => 'uzun baraban',
     '🪇' => 'marakas',
     '🪈' => 'fleyta',
+    '🪉' => 'arfa',
     '📱' => 'mobil telefon',
     '📲' => 'oxlu mobil telefon',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'əlfəcin tabları',
     '🔖' => 'əlfəcin',
     '🏷' => 'etiket',
-    '💰' => 'pul torbası',
     '🪙' => 'xırda pul',
+    '💰' => 'pul torbası',
+    '🪎' => 'xəzinə sandığı',
     '💴' => 'iena banknotu',
     '💵' => 'dollar əskinazı',
     '💶' => 'avro əskinazı',
@@ -3514,6 +3676,7 @@
     '🧰' => 'alətlər qutusu',
     '🧲' => 'maqnit',
     '🪜' => 'nərdivan',
+    '🪏' => 'bel',
     '⚗' => 'distillə qazanı',
     '🧪' => 'sınaq şüşəsi',
     '🧫' => 'Petri qabı',
@@ -3697,6 +3860,7 @@
     '✴' => 'səkkiz guşəli ulduz',
     '❇' => 'qığılcım',
     '™' => 'ticarət nişanı',
+    '🫟' => 'sıçratmaq',
     '🔠' => 'böyük hərflərlə latın daxiletməsi',
     '🔡' => 'kiçik hərflərlə latın daxiletməsi',
     '🔢' => 'daxiletmə rəqəmləri',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ba.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ba.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ba.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ba.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,3915 @@
+<?php
+
+return [
+    '🧑🏻‍❤‍💋‍🧑🏼' => 'үбеү: өлкән, өлкән, аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏻‍❤‍💋‍🧑🏽' => 'үбеү: өлкән, өлкән, аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🧑🏻‍❤‍💋‍🧑🏾' => 'үбеү: өлкән, өлкән, аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏻‍❤‍💋‍🧑🏿' => 'үбеү: өлкән, өлкән, аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🧑🏼‍❤‍💋‍🧑🏻' => 'үбеү: өлкән, өлкән, уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏼‍❤‍💋‍🧑🏽' => 'үбеү: өлкән, өлкән, уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🧑🏼‍❤‍💋‍🧑🏾' => 'үбеү: өлкән, өлкән, уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏼‍❤‍💋‍🧑🏿' => 'үбеү: өлкән, өлкән, уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🧑🏽‍❤‍💋‍🧑🏻' => 'үбеү: өлкән, өлкән, уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏽‍❤‍💋‍🧑🏼' => 'үбеү: өлкән, өлкән, уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏽‍❤‍💋‍🧑🏾' => 'үбеү: өлкән, өлкән, уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏽‍❤‍💋‍🧑🏿' => 'үбеү: өлкән, өлкән, уртаса тән төҫө һәм ҡара тән төҫө',
+    '🧑🏾‍❤‍💋‍🧑🏻' => 'үбеү: өлкән, өлкән, уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏾‍❤‍💋‍🧑🏼' => 'үбеү: өлкән, өлкән, уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏾‍❤‍💋‍🧑🏽' => 'үбеү: өлкән, өлкән, уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '🧑🏾‍❤‍💋‍🧑🏿' => 'үбеү: өлкән, өлкән, уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '🧑🏿‍❤‍💋‍🧑🏻' => 'үбеү: өлкән, өлкән, ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏿‍❤‍💋‍🧑🏼' => 'үбеү: өлкән, өлкән, ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏿‍❤‍💋‍🧑🏽' => 'үбеү: өлкән, өлкән, ҡара тән төҫө һәм уртаса тән төҫө',
+    '🧑🏿‍❤‍💋‍🧑🏾' => 'үбеү: өлкән, өлкән, ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏻‍❤‍💋‍👨🏻' => 'үбеү: ир, ир һәм аҡһыл тән төҫө',
+    '👨🏻‍❤‍💋‍👨🏼' => 'үбеү: ир, ир, аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏻‍❤‍💋‍👨🏽' => 'үбеү: ир, ир, аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👨🏻‍❤‍💋‍👨🏾' => 'үбеү: ир, ир, аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏻‍❤‍💋‍👨🏿' => 'үбеү: ир, ир, аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👨🏼‍❤‍💋‍👨🏻' => 'үбеү: ир, ир, уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏼‍❤‍💋‍👨🏼' => 'үбеү: ир, ир һәм уртаса аҡһыл тән төҫө',
+    '👨🏼‍❤‍💋‍👨🏽' => 'үбеү: ир, ир, уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👨🏼‍❤‍💋‍👨🏾' => 'үбеү: ир, ир, уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏼‍❤‍💋‍👨🏿' => 'үбеү: ир, ир, уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👨🏽‍❤‍💋‍👨🏻' => 'үбеү: ир, ир, уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏽‍❤‍💋‍👨🏼' => 'үбеү: ир, ир, уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏽‍❤‍💋‍👨🏽' => 'үбеү: ир, ир һәм уртаса тән төҫө',
+    '👨🏽‍❤‍💋‍👨🏾' => 'үбеү: ир, ир, уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏽‍❤‍💋‍👨🏿' => 'үбеү: ир, ир, уртаса тән төҫө һәм ҡара тән төҫө',
+    '👨🏾‍❤‍💋‍👨🏻' => 'үбеү: ир, ир, уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏾‍❤‍💋‍👨🏼' => 'үбеү: ир, ир, уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏾‍❤‍💋‍👨🏽' => 'үбеү: ир, ир, уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👨🏾‍❤‍💋‍👨🏾' => 'үбеү: ир, ир һәм уртаса ҡара тән төҫө',
+    '👨🏾‍❤‍💋‍👨🏿' => 'үбеү: ир, ир, уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👨🏿‍❤‍💋‍👨🏻' => 'үбеү: ир, ир, ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏿‍❤‍💋‍👨🏼' => 'үбеү: ир, ир, ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏿‍❤‍💋‍👨🏽' => 'үбеү: ир, ир, ҡара тән төҫө һәм уртаса тән төҫө',
+    '👨🏿‍❤‍💋‍👨🏾' => 'үбеү: ир, ир, ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏿‍❤‍💋‍👨🏿' => 'үбеү: ир, ир һәм ҡара тән төҫө',
+    '👩🏻‍❤‍💋‍👨🏻' => 'үбеү: ҡатын, ир һәм аҡһыл тән төҫө',
+    '👩🏻‍❤‍💋‍👨🏼' => 'үбеү: ҡатын, ир, аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏻‍❤‍💋‍👨🏽' => 'үбеү: ҡатын, ир, аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏻‍❤‍💋‍👨🏾' => 'үбеү: ҡатын, ир, аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍❤‍💋‍👨🏿' => 'үбеү: ҡатын, ир, аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏼‍❤‍💋‍👨🏻' => 'үбеү: ҡатын, ир, уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏼‍❤‍💋‍👨🏼' => 'үбеү: ҡатын, ир һәм уртаса аҡһыл тән төҫө',
+    '👩🏼‍❤‍💋‍👨🏽' => 'үбеү: ҡатын, ир, уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏼‍❤‍💋‍👨🏾' => 'үбеү: ҡатын, ир, уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏼‍❤‍💋‍👨🏿' => 'үбеү: ҡатын, ир, уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏽‍❤‍💋‍👨🏻' => 'үбеү: ҡатын, ир, уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏽‍❤‍💋‍👨🏼' => 'үбеү: ҡатын, ир, уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏽‍❤‍💋‍👨🏽' => 'үбеү: ҡатын, ир һәм уртаса тән төҫө',
+    '👩🏽‍❤‍💋‍👨🏾' => 'үбеү: ҡатын, ир, уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏽‍❤‍💋‍👨🏿' => 'үбеү: ҡатын, ир, уртаса тән төҫө һәм ҡара тән төҫө',
+    '👩🏾‍❤‍💋‍👨🏻' => 'үбеү: ҡатын, ир, уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏾‍❤‍💋‍👨🏼' => 'үбеү: ҡатын, ир, уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏾‍❤‍💋‍👨🏽' => 'үбеү: ҡатын, ир, уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏾‍❤‍💋‍👨🏾' => 'үбеү: ҡатын, ир һәм уртаса ҡара тән төҫө',
+    '👩🏾‍❤‍💋‍👨🏿' => 'үбеү: ҡатын, ир, уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👩🏿‍❤‍💋‍👨🏻' => 'үбеү: ҡатын, ир, ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏿‍❤‍💋‍👨🏼' => 'үбеү: ҡатын, ир, ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏿‍❤‍💋‍👨🏽' => 'үбеү: ҡатын, ир, ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏿‍❤‍💋‍👨🏾' => 'үбеү: ҡатын, ир, ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏿‍❤‍💋‍👨🏿' => 'үбеү: ҡатын, ир һәм ҡара тән төҫө',
+    '👩🏻‍❤‍💋‍👩🏻' => 'үбеү: ҡатын, ҡатын һәм аҡһыл тән төҫө',
+    '👩🏻‍❤‍💋‍👩🏼' => 'үбеү: ҡатын, ҡатын, аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏻‍❤‍💋‍👩🏽' => 'үбеү: ҡатын, ҡатын, аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏻‍❤‍💋‍👩🏾' => 'үбеү: ҡатын, ҡатын, аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍❤‍💋‍👩🏿' => 'үбеү: ҡатын, ҡатын, аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏼‍❤‍💋‍👩🏻' => 'үбеү: ҡатын, ҡатын, уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏼‍❤‍💋‍👩🏼' => 'үбеү: ҡатын, ҡатын һәм уртаса аҡһыл тән төҫө',
+    '👩🏼‍❤‍💋‍👩🏽' => 'үбеү: ҡатын, ҡатын, уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏼‍❤‍💋‍👩🏾' => 'үбеү: ҡатын, ҡатын, уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏼‍❤‍💋‍👩🏿' => 'үбеү: ҡатын, ҡатын, уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏽‍❤‍💋‍👩🏻' => 'үбеү: ҡатын, ҡатын, уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏽‍❤‍💋‍👩🏼' => 'үбеү: ҡатын, ҡатын, уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏽‍❤‍💋‍👩🏽' => 'үбеү: ҡатын, ҡатын һәм уртаса тән төҫө',
+    '👩🏽‍❤‍💋‍👩🏾' => 'үбеү: ҡатын, ҡатын, уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏽‍❤‍💋‍👩🏿' => 'үбеү: ҡатын, ҡатын, уртаса тән төҫө һәм ҡара тән төҫө',
+    '👩🏾‍❤‍💋‍👩🏻' => 'үбеү: ҡатын, ҡатын, уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏾‍❤‍💋‍👩🏼' => 'үбеү: ҡатын, ҡатын, уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏾‍❤‍💋‍👩🏽' => 'үбеү: ҡатын, ҡатын, уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏾‍❤‍💋‍👩🏾' => 'үбеү: ҡатын, ҡатын һәм уртаса ҡара тән төҫө',
+    '👩🏾‍❤‍💋‍👩🏿' => 'үбеү: ҡатын, ҡатын, уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👩🏿‍❤‍💋‍👩🏻' => 'үбеү: ҡатын, ҡатын, ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏿‍❤‍💋‍👩🏼' => 'үбеү: ҡатын, ҡатын, ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏿‍❤‍💋‍👩🏽' => 'үбеү: ҡатын, ҡатын, ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏿‍❤‍💋‍👩🏾' => 'үбеү: ҡатын, ҡатын, ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏿‍❤‍💋‍👩🏿' => 'үбеү: ҡатын, ҡатын һәм ҡара тән төҫө',
+    '🧑🏻‍🫯‍🧑🏼' => 'көрәшселәр: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏻‍🫯‍🧑🏽' => 'көрәшселәр: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🧑🏻‍🫯‍🧑🏾' => 'көрәшселәр: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏻‍🫯‍🧑🏿' => 'көрәшселәр: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🧑🏼‍🫯‍🧑🏻' => 'көрәшселәр: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏼‍🫯‍🧑🏽' => 'көрәшселәр: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🧑🏼‍🫯‍🧑🏾' => 'көрәшселәр: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏼‍🫯‍🧑🏿' => 'көрәшселәр: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🧑🏽‍🫯‍🧑🏻' => 'көрәшселәр: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏽‍🫯‍🧑🏼' => 'көрәшселәр: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🫯‍🧑🏾' => 'көрәшселәр: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏽‍🫯‍🧑🏿' => 'көрәшселәр: уртаса тән төҫө һәм ҡара тән төҫө',
+    '🧑🏾‍🫯‍🧑🏻' => 'көрәшселәр: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏾‍🫯‍🧑🏼' => 'көрәшселәр: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏾‍🫯‍🧑🏽' => 'көрәшселәр: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '🧑🏾‍🫯‍🧑🏿' => 'көрәшселәр: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '🧑🏿‍🫯‍🧑🏻' => 'көрәшселәр: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏿‍🫯‍🧑🏼' => 'көрәшселәр: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏿‍🫯‍🧑🏽' => 'көрәшселәр: ҡара тән төҫө һәм уртаса тән төҫө',
+    '🧑🏿‍🫯‍🧑🏾' => 'көрәшселәр: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏻‍❤‍🧑🏼' => 'йөрәкле пар: өлкән, өлкән, аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏻‍❤‍🧑🏽' => 'йөрәкле пар: өлкән, өлкән, аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🧑🏻‍❤‍🧑🏾' => 'йөрәкле пар: өлкән, өлкән, аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏻‍❤‍🧑🏿' => 'йөрәкле пар: өлкән, өлкән, аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🧑🏼‍❤‍🧑🏻' => 'йөрәкле пар: өлкән, өлкән, уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏼‍❤‍🧑🏽' => 'йөрәкле пар: өлкән, өлкән, уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🧑🏼‍❤‍🧑🏾' => 'йөрәкле пар: өлкән, өлкән, уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏼‍❤‍🧑🏿' => 'йөрәкле пар: өлкән, өлкән, уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🧑🏽‍❤‍🧑🏻' => 'йөрәкле пар: өлкән, өлкән, уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏽‍❤‍🧑🏼' => 'йөрәкле пар: өлкән, өлкән, уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏽‍❤‍🧑🏾' => 'йөрәкле пар: өлкән, өлкән, уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏽‍❤‍🧑🏿' => 'йөрәкле пар: өлкән, өлкән, уртаса тән төҫө һәм ҡара тән төҫө',
+    '🧑🏾‍❤‍🧑🏻' => 'йөрәкле пар: өлкән, өлкән, уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏾‍❤‍🧑🏼' => 'йөрәкле пар: өлкән, өлкән, уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏾‍❤‍🧑🏽' => 'йөрәкле пар: өлкән, өлкән, уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '🧑🏾‍❤‍🧑🏿' => 'йөрәкле пар: өлкән, өлкән, уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '🧑🏿‍❤‍🧑🏻' => 'йөрәкле пар: өлкән, өлкән, ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏿‍❤‍🧑🏼' => 'йөрәкле пар: өлкән, өлкән, ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏿‍❤‍🧑🏽' => 'йөрәкле пар: өлкән, өлкән, ҡара тән төҫө һәм уртаса тән төҫө',
+    '🧑🏿‍❤‍🧑🏾' => 'йөрәкле пар: өлкән, өлкән, ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏻‍🐰‍🧑🏼' => 'ҡуян ҡолаҡлы кешеләр: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏻‍🐰‍🧑🏽' => 'ҡуян ҡолаҡлы кешеләр: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🧑🏻‍🐰‍🧑🏾' => 'ҡуян ҡолаҡлы кешеләр: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏻‍🐰‍🧑🏿' => 'ҡуян ҡолаҡлы кешеләр: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🧑🏼‍🐰‍🧑🏻' => 'ҡуян ҡолаҡлы кешеләр: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏼‍🐰‍🧑🏽' => 'ҡуян ҡолаҡлы кешеләр: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🧑🏼‍🐰‍🧑🏾' => 'ҡуян ҡолаҡлы кешеләр: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏼‍🐰‍🧑🏿' => 'ҡуян ҡолаҡлы кешеләр: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🧑🏽‍🐰‍🧑🏻' => 'ҡуян ҡолаҡлы кешеләр: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏽‍🐰‍🧑🏼' => 'ҡуян ҡолаҡлы кешеләр: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🐰‍🧑🏾' => 'ҡуян ҡолаҡлы кешеләр: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏽‍🐰‍🧑🏿' => 'ҡуян ҡолаҡлы кешеләр: уртаса тән төҫө һәм ҡара тән төҫө',
+    '🧑🏾‍🐰‍🧑🏻' => 'ҡуян ҡолаҡлы кешеләр: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏾‍🐰‍🧑🏼' => 'ҡуян ҡолаҡлы кешеләр: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏾‍🐰‍🧑🏽' => 'ҡуян ҡолаҡлы кешеләр: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '🧑🏾‍🐰‍🧑🏿' => 'ҡуян ҡолаҡлы кешеләр: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '🧑🏿‍🐰‍🧑🏻' => 'ҡуян ҡолаҡлы кешеләр: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏿‍🐰‍🧑🏼' => 'ҡуян ҡолаҡлы кешеләр: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏿‍🐰‍🧑🏽' => 'ҡуян ҡолаҡлы кешеләр: ҡара тән төҫө һәм уртаса тән төҫө',
+    '🧑🏿‍🐰‍🧑🏾' => 'ҡуян ҡолаҡлы кешеләр: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏻‍🫯‍👨🏼' => 'ир-ат көрәшселәр: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏻‍🫯‍👨🏽' => 'ир-ат көрәшселәр: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👨🏻‍🫯‍👨🏾' => 'ир-ат көрәшселәр: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏻‍🫯‍👨🏿' => 'ир-ат көрәшселәр: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👨🏼‍🫯‍👨🏻' => 'ир-ат көрәшселәр: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏼‍🫯‍👨🏽' => 'ир-ат көрәшселәр: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👨🏼‍🫯‍👨🏾' => 'ир-ат көрәшселәр: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏼‍🫯‍👨🏿' => 'ир-ат көрәшселәр: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👨🏽‍🫯‍👨🏻' => 'ир-ат көрәшселәр: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏽‍🫯‍👨🏼' => 'ир-ат көрәшселәр: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏽‍🫯‍👨🏾' => 'ир-ат көрәшселәр: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏽‍🫯‍👨🏿' => 'ир-ат көрәшселәр: уртаса тән төҫө һәм ҡара тән төҫө',
+    '👨🏾‍🫯‍👨🏻' => 'ир-ат көрәшселәр: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏾‍🫯‍👨🏼' => 'ир-ат көрәшселәр: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏾‍🫯‍👨🏽' => 'ир-ат көрәшселәр: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👨🏾‍🫯‍👨🏿' => 'ир-ат көрәшселәр: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👨🏿‍🫯‍👨🏻' => 'ир-ат көрәшселәр: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏿‍🫯‍👨🏼' => 'ир-ат көрәшселәр: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏿‍🫯‍👨🏽' => 'ир-ат көрәшселәр: ҡара тән төҫө һәм уртаса тән төҫө',
+    '👨🏿‍🫯‍👨🏾' => 'ир-ат көрәшселәр: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏻‍❤‍👨🏻' => 'йөрәкле пар: ир, ир һәм аҡһыл тән төҫө',
+    '👨🏻‍❤‍👨🏼' => 'йөрәкле пар: ир, ир, аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏻‍❤‍👨🏽' => 'йөрәкле пар: ир, ир, аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👨🏻‍❤‍👨🏾' => 'йөрәкле пар: ир, ир, аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏻‍❤‍👨🏿' => 'йөрәкле пар: ир, ир, аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👨🏼‍❤‍👨🏻' => 'йөрәкле пар: ир, ир, уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏼‍❤‍👨🏼' => 'йөрәкле пар: ир, ир һәм уртаса аҡһыл тән төҫө',
+    '👨🏼‍❤‍👨🏽' => 'йөрәкле пар: ир, ир, уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👨🏼‍❤‍👨🏾' => 'йөрәкле пар: ир, ир, уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏼‍❤‍👨🏿' => 'йөрәкле пар: ир, ир, уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👨🏽‍❤‍👨🏻' => 'йөрәкле пар: ир, ир, уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏽‍❤‍👨🏼' => 'йөрәкле пар: ир, ир, уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏽‍❤‍👨🏽' => 'йөрәкле пар: ир, ир һәм уртаса тән төҫө',
+    '👨🏽‍❤‍👨🏾' => 'йөрәкле пар: ир, ир, уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏽‍❤‍👨🏿' => 'йөрәкле пар: ир, ир, уртаса тән төҫө һәм ҡара тән төҫө',
+    '👨🏾‍❤‍👨🏻' => 'йөрәкле пар: ир, ир, уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏾‍❤‍👨🏼' => 'йөрәкле пар: ир, ир, уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏾‍❤‍👨🏽' => 'йөрәкле пар: ир, ир, уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👨🏾‍❤‍👨🏾' => 'йөрәкле пар: ир, ир һәм уртаса ҡара тән төҫө',
+    '👨🏾‍❤‍👨🏿' => 'йөрәкле пар: ир, ир, уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👨🏿‍❤‍👨🏻' => 'йөрәкле пар: ир, ир, ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏿‍❤‍👨🏼' => 'йөрәкле пар: ир, ир, ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏿‍❤‍👨🏽' => 'йөрәкле пар: ир, ир, ҡара тән төҫө һәм уртаса тән төҫө',
+    '👨🏿‍❤‍👨🏾' => 'йөрәкле пар: ир, ир, ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏿‍❤‍👨🏿' => 'йөрәкле пар: ир, ир һәм ҡара тән төҫө',
+    '👨🏻‍🐰‍👨🏼' => 'ҡуян ҡолаҡлы ирҙәр: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏻‍🐰‍👨🏽' => 'ҡуян ҡолаҡлы ирҙәр: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👨🏻‍🐰‍👨🏾' => 'ҡуян ҡолаҡлы ирҙәр: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏻‍🐰‍👨🏿' => 'ҡуян ҡолаҡлы ирҙәр: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👨🏼‍🐰‍👨🏻' => 'ҡуян ҡолаҡлы ирҙәр: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏼‍🐰‍👨🏽' => 'ҡуян ҡолаҡлы ирҙәр: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👨🏼‍🐰‍👨🏾' => 'ҡуян ҡолаҡлы ирҙәр: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏼‍🐰‍👨🏿' => 'ҡуян ҡолаҡлы ирҙәр: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👨🏽‍🐰‍👨🏻' => 'ҡуян ҡолаҡлы ирҙәр: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏽‍🐰‍👨🏼' => 'ҡуян ҡолаҡлы ирҙәр: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏽‍🐰‍👨🏾' => 'ҡуян ҡолаҡлы ирҙәр: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏽‍🐰‍👨🏿' => 'ҡуян ҡолаҡлы ирҙәр: уртаса тән төҫө һәм ҡара тән төҫө',
+    '👨🏾‍🐰‍👨🏻' => 'ҡуян ҡолаҡлы ирҙәр: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏾‍🐰‍👨🏼' => 'ҡуян ҡолаҡлы ирҙәр: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏾‍🐰‍👨🏽' => 'ҡуян ҡолаҡлы ирҙәр: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👨🏾‍🐰‍👨🏿' => 'ҡуян ҡолаҡлы ирҙәр: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👨🏿‍🐰‍👨🏻' => 'ҡуян ҡолаҡлы ирҙәр: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏿‍🐰‍👨🏼' => 'ҡуян ҡолаҡлы ирҙәр: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏿‍🐰‍👨🏽' => 'ҡуян ҡолаҡлы ирҙәр: ҡара тән төҫө һәм уртаса тән төҫө',
+    '👨🏿‍🐰‍👨🏾' => 'ҡуян ҡолаҡлы ирҙәр: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍🫯‍👩🏼' => 'ҡатын-ҡыҙ көрәшселәр: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏻‍🫯‍👩🏽' => 'ҡатын-ҡыҙ көрәшселәр: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏻‍🫯‍👩🏾' => 'ҡатын-ҡыҙ көрәшселәр: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍🫯‍👩🏿' => 'ҡатын-ҡыҙ көрәшселәр: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏼‍🫯‍👩🏻' => 'ҡатын-ҡыҙ көрәшселәр: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏼‍🫯‍👩🏽' => 'ҡатын-ҡыҙ көрәшселәр: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏼‍🫯‍👩🏾' => 'ҡатын-ҡыҙ көрәшселәр: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏼‍🫯‍👩🏿' => 'ҡатын-ҡыҙ көрәшселәр: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏽‍🫯‍👩🏻' => 'ҡатын-ҡыҙ көрәшселәр: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏽‍🫯‍👩🏼' => 'ҡатын-ҡыҙ көрәшселәр: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏽‍🫯‍👩🏾' => 'ҡатын-ҡыҙ көрәшселәр: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏽‍🫯‍👩🏿' => 'ҡатын-ҡыҙ көрәшселәр: уртаса тән төҫө һәм ҡара тән төҫө',
+    '👩🏾‍🫯‍👩🏻' => 'ҡатын-ҡыҙ көрәшселәр: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏾‍🫯‍👩🏼' => 'ҡатын-ҡыҙ көрәшселәр: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏾‍🫯‍👩🏽' => 'ҡатын-ҡыҙ көрәшселәр: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏾‍🫯‍👩🏿' => 'ҡатын-ҡыҙ көрәшселәр: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👩🏿‍🫯‍👩🏻' => 'ҡатын-ҡыҙ көрәшселәр: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏿‍🫯‍👩🏼' => 'ҡатын-ҡыҙ көрәшселәр: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏿‍🫯‍👩🏽' => 'ҡатын-ҡыҙ көрәшселәр: ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏿‍🫯‍👩🏾' => 'ҡатын-ҡыҙ көрәшселәр: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍❤‍👨🏻' => 'йөрәкле пар: ҡатын, ир һәм аҡһыл тән төҫө',
+    '👩🏻‍❤‍👨🏼' => 'йөрәкле пар: ҡатын, ир, аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏻‍❤‍👨🏽' => 'йөрәкле пар: ҡатын, ир, аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏻‍❤‍👨🏾' => 'йөрәкле пар: ҡатын, ир, аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍❤‍👨🏿' => 'йөрәкле пар: ҡатын, ир, аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏼‍❤‍👨🏻' => 'йөрәкле пар: ҡатын, ир, уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏼‍❤‍👨🏼' => 'йөрәкле пар: ҡатын, ир һәм уртаса аҡһыл тән төҫө',
+    '👩🏼‍❤‍👨🏽' => 'йөрәкле пар: ҡатын, ир, уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏼‍❤‍👨🏾' => 'йөрәкле пар: ҡатын, ир, уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏼‍❤‍👨🏿' => 'йөрәкле пар: ҡатын, ир, уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏽‍❤‍👨🏻' => 'йөрәкле пар: ҡатын, ир, уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏽‍❤‍👨🏼' => 'йөрәкле пар: ҡатын, ир, уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏽‍❤‍👨🏽' => 'йөрәкле пар: ҡатын, ир һәм уртаса тән төҫө',
+    '👩🏽‍❤‍👨🏾' => 'йөрәкле пар: ҡатын, ир, уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏽‍❤‍👨🏿' => 'йөрәкле пар: ҡатын, ир, уртаса тән төҫө һәм ҡара тән төҫө',
+    '👩🏾‍❤‍👨🏻' => 'йөрәкле пар: ҡатын, ир, уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏾‍❤‍👨🏼' => 'йөрәкле пар: ҡатын, ир, уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏾‍❤‍👨🏽' => 'йөрәкле пар: ҡатын, ир, уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏾‍❤‍👨🏾' => 'йөрәкле пар: ҡатын, ир һәм уртаса ҡара тән төҫө',
+    '👩🏾‍❤‍👨🏿' => 'йөрәкле пар: ҡатын, ир, уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👩🏿‍❤‍👨🏻' => 'йөрәкле пар: ҡатын, ир, ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏿‍❤‍👨🏼' => 'йөрәкле пар: ҡатын, ир, ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏿‍❤‍👨🏽' => 'йөрәкле пар: ҡатын, ир, ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏿‍❤‍👨🏾' => 'йөрәкле пар: ҡатын, ир, ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏿‍❤‍👨🏿' => 'йөрәкле пар: ҡатын, ир һәм ҡара тән төҫө',
+    '👩🏻‍❤‍👩🏻' => 'йөрәкле пар: ҡатын, ҡатын һәм аҡһыл тән төҫө',
+    '👩🏻‍❤‍👩🏼' => 'йөрәкле пар: ҡатын, ҡатын, аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏻‍❤‍👩🏽' => 'йөрәкле пар: ҡатын, ҡатын, аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏻‍❤‍👩🏾' => 'йөрәкле пар: ҡатын, ҡатын, аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍❤‍👩🏿' => 'йөрәкле пар: ҡатын, ҡатын, аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏼‍❤‍👩🏻' => 'йөрәкле пар: ҡатын, ҡатын, уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏼‍❤‍👩🏼' => 'йөрәкле пар: ҡатын, ҡатын һәм уртаса аҡһыл тән төҫө',
+    '👩🏼‍❤‍👩🏽' => 'йөрәкле пар: ҡатын, ҡатын, уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏼‍❤‍👩🏾' => 'йөрәкле пар: ҡатын, ҡатын, уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏼‍❤‍👩🏿' => 'йөрәкле пар: ҡатын, ҡатын, уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏽‍❤‍👩🏻' => 'йөрәкле пар: ҡатын, ҡатын, уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏽‍❤‍👩🏼' => 'йөрәкле пар: ҡатын, ҡатын, уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏽‍❤‍👩🏽' => 'йөрәкле пар: ҡатын, ҡатын һәм уртаса тән төҫө',
+    '👩🏽‍❤‍👩🏾' => 'йөрәкле пар: ҡатын, ҡатын, уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏽‍❤‍👩🏿' => 'йөрәкле пар: ҡатын, ҡатын, уртаса тән төҫө һәм ҡара тән төҫө',
+    '👩🏾‍❤‍👩🏻' => 'йөрәкле пар: ҡатын, ҡатын, уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏾‍❤‍👩🏼' => 'йөрәкле пар: ҡатын, ҡатын, уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏾‍❤‍👩🏽' => 'йөрәкле пар: ҡатын, ҡатын, уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏾‍❤‍👩🏾' => 'йөрәкле пар: ҡатын, ҡатын һәм уртаса ҡара тән төҫө',
+    '👩🏾‍❤‍👩🏿' => 'йөрәкле пар: ҡатын, ҡатын, уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👩🏿‍❤‍👩🏻' => 'йөрәкле пар: ҡатын, ҡатын, ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏿‍❤‍👩🏼' => 'йөрәкле пар: ҡатын, ҡатын, ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏿‍❤‍👩🏽' => 'йөрәкле пар: ҡатын, ҡатын, ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏿‍❤‍👩🏾' => 'йөрәкле пар: ҡатын, ҡатын, ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏿‍❤‍👩🏿' => 'йөрәкле пар: ҡатын, ҡатын һәм ҡара тән төҫө',
+    '👩🏻‍🐰‍👩🏼' => 'ҡуян ҡолаҡлы ҡатындар: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏻‍🐰‍👩🏽' => 'ҡуян ҡолаҡлы ҡатындар: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏻‍🐰‍👩🏾' => 'ҡуян ҡолаҡлы ҡатындар: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍🐰‍👩🏿' => 'ҡуян ҡолаҡлы ҡатындар: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏼‍🐰‍👩🏻' => 'ҡуян ҡолаҡлы ҡатындар: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏼‍🐰‍👩🏽' => 'ҡуян ҡолаҡлы ҡатындар: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏼‍🐰‍👩🏾' => 'ҡуян ҡолаҡлы ҡатындар: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏼‍🐰‍👩🏿' => 'ҡуян ҡолаҡлы ҡатындар: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏽‍🐰‍👩🏻' => 'ҡуян ҡолаҡлы ҡатындар: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏽‍🐰‍👩🏼' => 'ҡуян ҡолаҡлы ҡатындар: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏽‍🐰‍👩🏾' => 'ҡуян ҡолаҡлы ҡатындар: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏽‍🐰‍👩🏿' => 'ҡуян ҡолаҡлы ҡатындар: уртаса тән төҫө һәм ҡара тән төҫө',
+    '👩🏾‍🐰‍👩🏻' => 'ҡуян ҡолаҡлы ҡатындар: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏾‍🐰‍👩🏼' => 'ҡуян ҡолаҡлы ҡатындар: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏾‍🐰‍👩🏽' => 'ҡуян ҡолаҡлы ҡатындар: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏾‍🐰‍👩🏿' => 'ҡуян ҡолаҡлы ҡатындар: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👩🏿‍🐰‍👩🏻' => 'ҡуян ҡолаҡлы ҡатындар: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏿‍🐰‍👩🏼' => 'ҡуян ҡолаҡлы ҡатындар: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏿‍🐰‍👩🏽' => 'ҡуян ҡолаҡлы ҡатындар: ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏿‍🐰‍👩🏾' => 'ҡуян ҡолаҡлы ҡатындар: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏻‍🤝‍🧑🏻' => 'ҡул тотошҡан кешеләр: аҡһыл тән төҫө',
+    '🧑🏻‍🤝‍🧑🏼' => 'ҡул тотошҡан кешеләр: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏻‍🤝‍🧑🏽' => 'ҡул тотошҡан кешеләр: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🧑🏻‍🤝‍🧑🏾' => 'ҡул тотошҡан кешеләр: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏻‍🤝‍🧑🏿' => 'ҡул тотошҡан кешеләр: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🧑🏼‍🤝‍🧑🏻' => 'ҡул тотошҡан кешеләр: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏼‍🤝‍🧑🏼' => 'ҡул тотошҡан кешеләр: уртаса аҡһыл тән төҫө',
+    '🧑🏼‍🤝‍🧑🏽' => 'ҡул тотошҡан кешеләр: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🧑🏼‍🤝‍🧑🏾' => 'ҡул тотошҡан кешеләр: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏼‍🤝‍🧑🏿' => 'ҡул тотошҡан кешеләр: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🧑🏽‍🤝‍🧑🏻' => 'ҡул тотошҡан кешеләр: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏽‍🤝‍🧑🏼' => 'ҡул тотошҡан кешеләр: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🤝‍🧑🏽' => 'ҡул тотошҡан кешеләр: уртаса тән төҫө',
+    '🧑🏽‍🤝‍🧑🏾' => 'ҡул тотошҡан кешеләр: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏽‍🤝‍🧑🏿' => 'ҡул тотошҡан кешеләр: уртаса тән төҫө һәм ҡара тән төҫө',
+    '🧑🏾‍🤝‍🧑🏻' => 'ҡул тотошҡан кешеләр: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏾‍🤝‍🧑🏼' => 'ҡул тотошҡан кешеләр: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏾‍🤝‍🧑🏽' => 'ҡул тотошҡан кешеләр: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '🧑🏾‍🤝‍🧑🏾' => 'ҡул тотошҡан кешеләр: уртаса ҡара тән төҫө',
+    '🧑🏾‍🤝‍🧑🏿' => 'ҡул тотошҡан кешеләр: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '🧑🏿‍🤝‍🧑🏻' => 'ҡул тотошҡан кешеләр: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🧑🏿‍🤝‍🧑🏼' => 'ҡул тотошҡан кешеләр: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🧑🏿‍🤝‍🧑🏽' => 'ҡул тотошҡан кешеләр: ҡара тән төҫө һәм уртаса тән төҫө',
+    '🧑🏿‍🤝‍🧑🏾' => 'ҡул тотошҡан кешеләр: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '🧑🏿‍🤝‍🧑🏿' => 'ҡул тотошҡан кешеләр: ҡара тән төҫө',
+    '👩🏻‍🤝‍👩🏼' => 'ҡул тотошҡан ҡатындар: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏻‍🤝‍👩🏽' => 'ҡул тотошҡан ҡатындар: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏻‍🤝‍👩🏾' => 'ҡул тотошҡан ҡатындар: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍🤝‍👩🏿' => 'ҡул тотошҡан ҡатындар: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏼‍🤝‍👩🏻' => 'ҡул тотошҡан ҡатындар: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏼‍🤝‍👩🏽' => 'ҡул тотошҡан ҡатындар: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏼‍🤝‍👩🏾' => 'ҡул тотошҡан ҡатындар: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏼‍🤝‍👩🏿' => 'ҡул тотошҡан ҡатындар: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏽‍🤝‍👩🏻' => 'ҡул тотошҡан ҡатындар: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏽‍🤝‍👩🏼' => 'ҡул тотошҡан ҡатындар: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏽‍🤝‍👩🏾' => 'ҡул тотошҡан ҡатындар: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏽‍🤝‍👩🏿' => 'ҡул тотошҡан ҡатындар: уртаса тән төҫө һәм ҡара тән төҫө',
+    '👩🏾‍🤝‍👩🏻' => 'ҡул тотошҡан ҡатындар: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏾‍🤝‍👩🏼' => 'ҡул тотошҡан ҡатындар: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏾‍🤝‍👩🏽' => 'ҡул тотошҡан ҡатындар: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏾‍🤝‍👩🏿' => 'ҡул тотошҡан ҡатындар: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👩🏿‍🤝‍👩🏻' => 'ҡул тотошҡан ҡатындар: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏿‍🤝‍👩🏼' => 'ҡул тотошҡан ҡатындар: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏿‍🤝‍👩🏽' => 'ҡул тотошҡан ҡатындар: ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏿‍🤝‍👩🏾' => 'ҡул тотошҡан ҡатындар: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍🤝‍👨🏼' => 'ҡул тотошҡан ҡатын һәм ир: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏻‍🤝‍👨🏽' => 'ҡул тотошҡан ҡатын һәм ир: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏻‍🤝‍👨🏾' => 'ҡул тотошҡан ҡатын һәм ир: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏻‍🤝‍👨🏿' => 'ҡул тотошҡан ҡатын һәм ир: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏼‍🤝‍👨🏻' => 'ҡул тотошҡан ҡатын һәм ир: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏼‍🤝‍👨🏽' => 'ҡул тотошҡан ҡатын һәм ир: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👩🏼‍🤝‍👨🏾' => 'ҡул тотошҡан ҡатын һәм ир: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏼‍🤝‍👨🏿' => 'ҡул тотошҡан ҡатын һәм ир: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👩🏽‍🤝‍👨🏻' => 'ҡул тотошҡан ҡатын һәм ир: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏽‍🤝‍👨🏼' => 'ҡул тотошҡан ҡатын һәм ир: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏽‍🤝‍👨🏾' => 'ҡул тотошҡан ҡатын һәм ир: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩🏽‍🤝‍👨🏿' => 'ҡул тотошҡан ҡатын һәм ир: уртаса тән төҫө һәм ҡара тән төҫө',
+    '👩🏾‍🤝‍👨🏻' => 'ҡул тотошҡан ҡатын һәм ир: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏾‍🤝‍👨🏼' => 'ҡул тотошҡан ҡатын һәм ир: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏾‍🤝‍👨🏽' => 'ҡул тотошҡан ҡатын һәм ир: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏾‍🤝‍👨🏿' => 'ҡул тотошҡан ҡатын һәм ир: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👩🏿‍🤝‍👨🏻' => 'ҡул тотошҡан ҡатын һәм ир: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👩🏿‍🤝‍👨🏼' => 'ҡул тотошҡан ҡатын һәм ир: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👩🏿‍🤝‍👨🏽' => 'ҡул тотошҡан ҡатын һәм ир: ҡара тән төҫө һәм уртаса тән төҫө',
+    '👩🏿‍🤝‍👨🏾' => 'ҡул тотошҡан ҡатын һәм ир: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏻‍🤝‍👨🏼' => 'ҡул тотошҡан ирҙәр: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏻‍🤝‍👨🏽' => 'ҡул тотошҡан ирҙәр: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👨🏻‍🤝‍👨🏾' => 'ҡул тотошҡан ирҙәр: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏻‍🤝‍👨🏿' => 'ҡул тотошҡан ирҙәр: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👨🏼‍🤝‍👨🏻' => 'ҡул тотошҡан ирҙәр: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏼‍🤝‍👨🏽' => 'ҡул тотошҡан ирҙәр: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '👨🏼‍🤝‍👨🏾' => 'ҡул тотошҡан ирҙәр: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏼‍🤝‍👨🏿' => 'ҡул тотошҡан ирҙәр: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '👨🏽‍🤝‍👨🏻' => 'ҡул тотошҡан ирҙәр: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏽‍🤝‍👨🏼' => 'ҡул тотошҡан ирҙәр: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏽‍🤝‍👨🏾' => 'ҡул тотошҡан ирҙәр: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '👨🏽‍🤝‍👨🏿' => 'ҡул тотошҡан ирҙәр: уртаса тән төҫө һәм ҡара тән төҫө',
+    '👨🏾‍🤝‍👨🏻' => 'ҡул тотошҡан ирҙәр: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏾‍🤝‍👨🏼' => 'ҡул тотошҡан ирҙәр: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏾‍🤝‍👨🏽' => 'ҡул тотошҡан ирҙәр: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '👨🏾‍🤝‍👨🏿' => 'ҡул тотошҡан ирҙәр: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '👨🏿‍🤝‍👨🏻' => 'ҡул тотошҡан ирҙәр: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '👨🏿‍🤝‍👨🏼' => 'ҡул тотошҡан ирҙәр: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '👨🏿‍🤝‍👨🏽' => 'ҡул тотошҡан ирҙәр: ҡара тән төҫө һәм уртаса тән төҫө',
+    '👨🏿‍🤝‍👨🏾' => 'ҡул тотошҡан ирҙәр: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '👩‍❤‍💋‍👨' => 'үбеү: ҡатын һәм ир',
+    '👨‍❤‍💋‍👨' => 'үбеү: ир һәм ир',
+    '👩‍❤‍💋‍👩' => 'үбеү: ҡатын һәм ҡатын',
+    '👨‍👩‍👧‍👦' => 'ғаилә: ир, ҡатын, ҡыҙ һәм малай',
+    '👨‍👩‍👦‍👦' => 'ғаилә: ир, ҡатын, малай һәм малай',
+    '👨‍👩‍👧‍👧' => 'ғаилә: ир, ҡатын, ҡыҙ һәм ҡыҙ',
+    '👨‍👨‍👧‍👦' => 'ғаилә: ир, ир, ҡыҙ һәм малай',
+    '👨‍👨‍👦‍👦' => 'ғаилә: ир, ир, малай һәм малай',
+    '👨‍👨‍👧‍👧' => 'ғаилә: ир, ир, ҡыҙ һәм ҡыҙ',
+    '👩‍👩‍👧‍👦' => 'ғаилә: ҡатын, ҡатын, ҡыҙ һәм малай',
+    '👩‍👩‍👦‍👦' => 'ғаилә: ҡатын, ҡатын, малай һәм малай',
+    '👩‍👩‍👧‍👧' => 'ғаилә: ҡатын, ҡатын, ҡыҙ һәм ҡыҙ',
+    '🧑‍🧑‍🧒‍🧒' => 'ғаилә: ике өлкән һәм ике бала',
+    '🚶🏻‍♀‍➡' => 'йөрөүсе ҡатын-ҡыҙ: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🚶🏼‍♀‍➡' => 'йөрөүсе ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🚶🏽‍♀‍➡' => 'йөрөүсе ҡатын-ҡыҙ: уртаса тән төҫө һәм уңға ҡарай',
+    '🚶🏾‍♀‍➡' => 'йөрөүсе ҡатын-ҡыҙ: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🚶🏿‍♀‍➡' => 'йөрөүсе ҡатын-ҡыҙ: ҡара тән төҫө һәм уңға ҡарай',
+    '🚶🏻‍♂‍➡' => 'йөрөүсе ир-ат: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🚶🏼‍♂‍➡' => 'йөрөүсе ир-ат: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🚶🏽‍♂‍➡' => 'йөрөүсе ир-ат: уртаса тән төҫө һәм уңға ҡарай',
+    '🚶🏾‍♂‍➡' => 'йөрөүсе ир-ат: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🚶🏿‍♂‍➡' => 'йөрөүсе ир-ат: ҡара тән төҫө һәм уңға ҡарай',
+    '🧎🏻‍♀‍➡' => 'тубыҡланған ҡатын: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧎🏼‍♀‍➡' => 'тубыҡланған ҡатын: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧎🏽‍♀‍➡' => 'тубыҡланған ҡатын: уртаса тән төҫө һәм уңға ҡарай',
+    '🧎🏾‍♀‍➡' => 'тубыҡланған ҡатын: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🧎🏿‍♀‍➡' => 'тубыҡланған ҡатын: ҡара тән төҫө һәм уңға ҡарай',
+    '🧎🏻‍♂‍➡' => 'тубыҡланған ир: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧎🏼‍♂‍➡' => 'тубыҡланған ир: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧎🏽‍♂‍➡' => 'тубыҡланған ир: уртаса тән төҫө һәм уңға ҡарай',
+    '🧎🏾‍♂‍➡' => 'тубыҡланған ир: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🧎🏿‍♂‍➡' => 'тубыҡланған ир: ҡара тән төҫө һәм уңға ҡарай',
+    '🧑🏻‍🦯‍➡' => 'аҡ таяҡлы кеше: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧑🏼‍🦯‍➡' => 'аҡ таяҡлы кеше: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧑🏽‍🦯‍➡' => 'аҡ таяҡлы кеше: уртаса тән төҫө һәм уңға ҡарай',
+    '🧑🏾‍🦯‍➡' => 'аҡ таяҡлы кеше: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🧑🏿‍🦯‍➡' => 'аҡ таяҡлы кеше: ҡара тән төҫө һәм уңға ҡарай',
+    '👨🏻‍🦯‍➡' => 'аҡ таяҡлы ир: аҡһыл тән төҫө һәм уңға ҡарай',
+    '👨🏼‍🦯‍➡' => 'аҡ таяҡлы ир: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '👨🏽‍🦯‍➡' => 'аҡ таяҡлы ир: уртаса тән төҫө һәм уңға ҡарай',
+    '👨🏾‍🦯‍➡' => 'аҡ таяҡлы ир: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '👨🏿‍🦯‍➡' => 'аҡ таяҡлы ир: ҡара тән төҫө һәм уңға ҡарай',
+    '👩🏻‍🦯‍➡' => 'аҡ таяҡлы ҡатын: аҡһыл тән төҫө һәм уңға ҡарай',
+    '👩🏼‍🦯‍➡' => 'аҡ таяҡлы ҡатын: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '👩🏽‍🦯‍➡' => 'аҡ таяҡлы ҡатын: уртаса тән төҫө һәм уңға ҡарай',
+    '👩🏾‍🦯‍➡' => 'аҡ таяҡлы ҡатын: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '👩🏿‍🦯‍➡' => 'аҡ таяҡлы ҡатын: ҡара тән төҫө һәм уңға ҡарай',
+    '🧑🏻‍🦼‍➡' => 'моторлы инвалид коляскаһындағы кеше: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧑🏼‍🦼‍➡' => 'моторлы инвалид коляскаһындағы кеше: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧑🏽‍🦼‍➡' => 'моторлы инвалид коляскаһындағы кеше: уртаса тән төҫө һәм уңға ҡарай',
+    '🧑🏾‍🦼‍➡' => 'моторлы инвалид коляскаһындағы кеше: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🧑🏿‍🦼‍➡' => 'моторлы инвалид коляскаһындағы кеше: ҡара тән төҫө һәм уңға ҡарай',
+    '👨🏻‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ир: аҡһыл тән төҫө һәм уңға ҡарай',
+    '👨🏼‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ир: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '👨🏽‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ир: уртаса тән төҫө һәм уңға ҡарай',
+    '👨🏾‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ир: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '👨🏿‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ир: ҡара тән төҫө һәм уңға ҡарай',
+    '👩🏻‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ҡатын: аҡһыл тән төҫө һәм уңға ҡарай',
+    '👩🏼‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ҡатын: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '👩🏽‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ҡатын: уртаса тән төҫө һәм уңға ҡарай',
+    '👩🏾‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ҡатын: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '👩🏿‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ҡатын: ҡара тән төҫө һәм уңға ҡарай',
+    '🧑🏻‍🦽‍➡' => 'инвалид коляскаһындағы кеше: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧑🏼‍🦽‍➡' => 'инвалид коляскаһындағы кеше: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧑🏽‍🦽‍➡' => 'инвалид коляскаһындағы кеше: уртаса тән төҫө һәм уңға ҡарай',
+    '🧑🏾‍🦽‍➡' => 'инвалид коляскаһындағы кеше: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🧑🏿‍🦽‍➡' => 'инвалид коляскаһындағы кеше: ҡара тән төҫө һәм уңға ҡарай',
+    '👨🏻‍🦽‍➡' => 'инвалид коляскаһындағы ир-ат: аҡһыл тән төҫө һәм уңға ҡарай',
+    '👨🏼‍🦽‍➡' => 'инвалид коляскаһындағы ир-ат: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '👨🏽‍🦽‍➡' => 'инвалид коляскаһындағы ир-ат: уртаса тән төҫө һәм уңға ҡарай',
+    '👨🏾‍🦽‍➡' => 'инвалид коляскаһындағы ир-ат: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '👨🏿‍🦽‍➡' => 'инвалид коляскаһындағы ир-ат: ҡара тән төҫө һәм уңға ҡарай',
+    '👩🏻‍🦽‍➡' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: аҡһыл тән төҫө һәм уңға ҡарай',
+    '👩🏼‍🦽‍➡' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '👩🏽‍🦽‍➡' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: уртаса тән төҫө һәм уңға ҡарай',
+    '👩🏾‍🦽‍➡' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '👩🏿‍🦽‍➡' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: ҡара тән төҫө һәм уңға ҡарай',
+    '🏃🏻‍♀‍➡' => 'йүгереүсе ҡатын: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🏃🏼‍♀‍➡' => 'йүгереүсе ҡатын: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🏃🏽‍♀‍➡' => 'йүгереүсе ҡатын: уртаса тән төҫө һәм уңға ҡарай',
+    '🏃🏾‍♀‍➡' => 'йүгереүсе ҡатын: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🏃🏿‍♀‍➡' => 'йүгереүсе ҡатын: ҡара тән төҫө һәм уңға ҡарай',
+    '🏃🏻‍♂‍➡' => 'йүгереүсе ир: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🏃🏼‍♂‍➡' => 'йүгереүсе ир: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🏃🏽‍♂‍➡' => 'йүгереүсе ир: уртаса тән төҫө һәм уңға ҡарай',
+    '🏃🏾‍♂‍➡' => 'йүгереүсе ир: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🏃🏿‍♂‍➡' => 'йүгереүсе ир: ҡара тән төҫө һәм уңға ҡарай',
+    '🫱🏻‍🫲🏼' => 'ҡул бирешеү: аҡһыл тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🫱🏻‍🫲🏽' => 'ҡул бирешеү: аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🫱🏻‍🫲🏾' => 'ҡул бирешеү: аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🫱🏻‍🫲🏿' => 'ҡул бирешеү: аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🫱🏼‍🫲🏻' => 'ҡул бирешеү: уртаса аҡһыл тән төҫө һәм аҡһыл тән төҫө',
+    '🫱🏼‍🫲🏽' => 'ҡул бирешеү: уртаса аҡһыл тән төҫө һәм уртаса тән төҫө',
+    '🫱🏼‍🫲🏾' => 'ҡул бирешеү: уртаса аҡһыл тән төҫө һәм уртаса ҡара тән төҫө',
+    '🫱🏼‍🫲🏿' => 'ҡул бирешеү: уртаса аҡһыл тән төҫө һәм ҡара тән төҫө',
+    '🫱🏽‍🫲🏻' => 'ҡул бирешеү: уртаса тән төҫө һәм аҡһыл тән төҫө',
+    '🫱🏽‍🫲🏼' => 'ҡул бирешеү: уртаса тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🫱🏽‍🫲🏾' => 'ҡул бирешеү: уртаса тән төҫө һәм уртаса ҡара тән төҫө',
+    '🫱🏽‍🫲🏿' => 'ҡул бирешеү: уртаса тән төҫө һәм ҡара тән төҫө',
+    '🫱🏾‍🫲🏻' => 'ҡул бирешеү: уртаса ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🫱🏾‍🫲🏼' => 'ҡул бирешеү: уртаса ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🫱🏾‍🫲🏽' => 'ҡул бирешеү: уртаса ҡара тән төҫө һәм уртаса тән төҫө',
+    '🫱🏾‍🫲🏿' => 'ҡул бирешеү: уртаса ҡара тән төҫө һәм ҡара тән төҫө',
+    '🫱🏿‍🫲🏻' => 'ҡул бирешеү: ҡара тән төҫө һәм аҡһыл тән төҫө',
+    '🫱🏿‍🫲🏼' => 'ҡул бирешеү: ҡара тән төҫө һәм уртаса аҡһыл тән төҫө',
+    '🫱🏿‍🫲🏽' => 'ҡул бирешеү: ҡара тән төҫө һәм уртаса тән төҫө',
+    '🫱🏿‍🫲🏾' => 'ҡул бирешеү: ҡара тән төҫө һәм уртаса ҡара тән төҫө',
+    '🚶‍♀‍➡' => 'йөрөүсе ҡатын-ҡыҙ: уңға ҡарай',
+    '🚶‍♂‍➡' => 'йөрөүсе ир-ат: уңға ҡарай',
+    '🧎‍♀‍➡' => 'тубыҡланған ҡатын: уңға ҡарай',
+    '🧎‍♂‍➡' => 'тубыҡланған ир: уңға ҡарай',
+    '🧑‍🦯‍➡' => 'аҡ таяҡлы кеше: уңға ҡарай',
+    '👨‍🦯‍➡' => 'аҡ таяҡлы ир: уңға ҡарай',
+    '👩‍🦯‍➡' => 'аҡ таяҡлы ҡатын: уңға ҡарай',
+    '🧑‍🦼‍➡' => 'моторлы инвалид коляскаһындағы кеше: уңға ҡарай',
+    '👨‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ир: уңға ҡарай',
+    '👩‍🦼‍➡' => 'моторлы инвалид коляскаһындағы ҡатын: уңға ҡарай',
+    '🧑‍🦽‍➡' => 'инвалид коляскаһындағы кеше: уңға ҡарай',
+    '👨‍🦽‍➡' => 'инвалид коляскаһындағы ир-ат: уңға ҡарай',
+    '👩‍🦽‍➡' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: уңға ҡарай',
+    '🏃‍♀‍➡' => 'йүгереүсе ҡатын: уңға ҡарай',
+    '🏃‍♂‍➡' => 'йүгереүсе ир: уңға ҡарай',
+    '👩‍❤‍👨' => 'йөрәкле пар: ҡатын һәм ир',
+    '👨‍❤‍👨' => 'йөрәкле пар: ир һәм ир',
+    '👩‍❤‍👩' => 'йөрәкле пар: ҡатын һәм ҡатын',
+    '👨‍👩‍👦' => 'ғаилә: ир, ҡатын һәм малай',
+    '👨‍👩‍👧' => 'ғаилә: ир, ҡатын һәм ҡыҙ',
+    '👨‍👨‍👦' => 'ғаилә: ир, ир һәм малай',
+    '👨‍👨‍👧' => 'ғаилә: ир, ир һәм ҡыҙ',
+    '👩‍👩‍👦' => 'ғаилә: ҡатын, ҡатын һәм малай',
+    '👩‍👩‍👧' => 'ғаилә: ҡатын, ҡатын һәм ҡыҙ',
+    '👨‍👦‍👦' => 'ғаилә: ир, малай һәм малай',
+    '👨‍👧‍👦' => 'ғаилә: ир, ҡыҙ һәм малай',
+    '👨‍👧‍👧' => 'ғаилә: ир, ҡыҙ һәм ҡыҙ',
+    '👩‍👦‍👦' => 'ғаилә: ҡатын, малай һәм малай',
+    '👩‍👧‍👦' => 'ғаилә: ҡатын, ҡыҙ һәм малай',
+    '👩‍👧‍👧' => 'ғаилә: ҡатын, ҡыҙ һәм ҡыҙ',
+    '🧑‍🤝‍🧑' => 'ҡул тотошҡан кешеләр',
+    '🧑‍🧑‍🧒' => 'ғаилә: ике өлкән һәм бала',
+    '🧑‍🧒‍🧒' => 'ғаилә: өлкән һәм ике бала',
+    '🧑🏻‍🦰' => 'өлкән: аҡһыл тән төҫө һәм ерән сәс',
+    '🧑🏼‍🦰' => 'өлкән: уртаса аҡһыл тән төҫө һәм ерән сәс',
+    '🧑🏽‍🦰' => 'өлкән: уртаса тән төҫө һәм ерән сәс',
+    '🧑🏾‍🦰' => 'өлкән: уртаса ҡара тән төҫө һәм ерән сәс',
+    '🧑🏿‍🦰' => 'өлкән: ҡара тән төҫө һәм ерән сәс',
+    '🧑🏻‍🦱' => 'өлкән: аҡһыл тән төҫө һәм бөҙрә сәс',
+    '🧑🏼‍🦱' => 'өлкән: уртаса аҡһыл тән төҫө һәм бөҙрә сәс',
+    '🧑🏽‍🦱' => 'өлкән: уртаса тән төҫө һәм бөҙрә сәс',
+    '🧑🏾‍🦱' => 'өлкән: уртаса ҡара тән төҫө һәм бөҙрә сәс',
+    '🧑🏿‍🦱' => 'өлкән: ҡара тән төҫө һәм бөҙрә сәс',
+    '🧑🏻‍🦳' => 'өлкән: аҡһыл тән төҫө һәм аҡ сәс',
+    '🧑🏼‍🦳' => 'өлкән: уртаса аҡһыл тән төҫө һәм аҡ сәс',
+    '🧑🏽‍🦳' => 'өлкән: уртаса тән төҫө һәм аҡ сәс',
+    '🧑🏾‍🦳' => 'өлкән: уртаса ҡара тән төҫө һәм аҡ сәс',
+    '🧑🏿‍🦳' => 'өлкән: ҡара тән төҫө һәм аҡ сәс',
+    '🧑🏻‍🦲' => 'өлкән: аҡһыл тән төҫө һәм таҙ',
+    '🧑🏼‍🦲' => 'өлкән: уртаса аҡһыл тән төҫө һәм таҙ',
+    '🧑🏽‍🦲' => 'өлкән: уртаса тән төҫө һәм таҙ',
+    '🧑🏾‍🦲' => 'өлкән: уртаса ҡара тән төҫө һәм таҙ',
+    '🧑🏿‍🦲' => 'өлкән: ҡара тән төҫө һәм таҙ',
+    '🧑🏻‍🩰' => 'балет бейеүсеһе: аҡһыл тән төҫө',
+    '🧑🏼‍🩰' => 'балет бейеүсеһе: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🩰' => 'балет бейеүсеһе: уртаса тән төҫө',
+    '🧑🏾‍🩰' => 'балет бейеүсеһе: уртаса ҡара тән төҫө',
+    '🧑🏿‍🩰' => 'балет бейеүсеһе: ҡара тән төҫө',
+    '🧔🏻‍♂' => 'һаҡаллы ир: аҡһыл тән төҫө',
+    '🧔🏼‍♂' => 'һаҡаллы ир: уртаса аҡһыл тән төҫө',
+    '🧔🏽‍♂' => 'һаҡаллы ир: уртаса тән төҫө',
+    '🧔🏾‍♂' => 'һаҡаллы ир: уртаса ҡара тән төҫө',
+    '🧔🏿‍♂' => 'һаҡаллы ир: ҡара тән төҫө',
+    '👱🏻‍♂' => 'ир: аҡһыл тән төҫө һәм аҡһыл сәсле',
+    '👱🏼‍♂' => 'ир: уртаса аҡһыл тән төҫө һәм аҡһыл сәсле',
+    '👱🏽‍♂' => 'ир: уртаса тән төҫө һәм аҡһыл сәсле',
+    '👱🏾‍♂' => 'ир: уртаса ҡара тән төҫө һәм аҡһыл сәсле',
+    '👱🏿‍♂' => 'ир: ҡара тән төҫө һәм аҡһыл сәсле',
+    '👨🏻‍🦰' => 'ир: аҡһыл тән төҫө һәм ерән сәс',
+    '👨🏼‍🦰' => 'ир: уртаса аҡһыл тән төҫө һәм ерән сәс',
+    '👨🏽‍🦰' => 'ир: уртаса тән төҫө һәм ерән сәс',
+    '👨🏾‍🦰' => 'ир: уртаса ҡара тән төҫө һәм ерән сәс',
+    '👨🏿‍🦰' => 'ир: ҡара тән төҫө һәм ерән сәс',
+    '👨🏻‍🦱' => 'ир: аҡһыл тән төҫө һәм бөҙрә сәс',
+    '👨🏼‍🦱' => 'ир: уртаса аҡһыл тән төҫө һәм бөҙрә сәс',
+    '👨🏽‍🦱' => 'ир: уртаса тән төҫө һәм бөҙрә сәс',
+    '👨🏾‍🦱' => 'ир: уртаса ҡара тән төҫө һәм бөҙрә сәс',
+    '👨🏿‍🦱' => 'ир: ҡара тән төҫө һәм бөҙрә сәс',
+    '👨🏻‍🦳' => 'ир: аҡһыл тән төҫө һәм аҡ сәс',
+    '👨🏼‍🦳' => 'ир: уртаса аҡһыл тән төҫө һәм аҡ сәс',
+    '👨🏽‍🦳' => 'ир: уртаса тән төҫө һәм аҡ сәс',
+    '👨🏾‍🦳' => 'ир: уртаса ҡара тән төҫө һәм аҡ сәс',
+    '👨🏿‍🦳' => 'ир: ҡара тән төҫө һәм аҡ сәс',
+    '👨🏻‍🦲' => 'ир: аҡһыл тән төҫө һәм таҙ',
+    '👨🏼‍🦲' => 'ир: уртаса аҡһыл тән төҫө һәм таҙ',
+    '👨🏽‍🦲' => 'ир: уртаса тән төҫө һәм таҙ',
+    '👨🏾‍🦲' => 'ир: уртаса ҡара тән төҫө һәм таҙ',
+    '👨🏿‍🦲' => 'ир: ҡара тән төҫө һәм таҙ',
+    '🧔🏻‍♀' => 'һаҡаллы ҡатын: аҡһыл тән төҫө',
+    '🧔🏼‍♀' => 'һаҡаллы ҡатын: уртаса аҡһыл тән төҫө',
+    '🧔🏽‍♀' => 'һаҡаллы ҡатын: уртаса тән төҫө',
+    '🧔🏾‍♀' => 'һаҡаллы ҡатын: уртаса ҡара тән төҫө',
+    '🧔🏿‍♀' => 'һаҡаллы ҡатын: ҡара тән төҫө',
+    '👱🏻‍♀' => 'ҡатын: аҡһыл тән төҫө һәм аҡһыл сәсле',
+    '👱🏼‍♀' => 'ҡатын: уртаса аҡһыл тән төҫө һәм аҡһыл сәсле',
+    '👱🏽‍♀' => 'ҡатын: уртаса тән төҫө һәм аҡһыл сәсле',
+    '👱🏾‍♀' => 'ҡатын: уртаса ҡара тән төҫө һәм аҡһыл сәсле',
+    '👱🏿‍♀' => 'ҡатын: ҡара тән төҫө һәм аҡһыл сәсле',
+    '👩🏻‍🦰' => 'ҡатын: аҡһыл тән төҫө һәм ерән сәс',
+    '👩🏼‍🦰' => 'ҡатын: уртаса аҡһыл тән төҫө һәм ерән сәс',
+    '👩🏽‍🦰' => 'ҡатын: уртаса тән төҫө һәм ерән сәс',
+    '👩🏾‍🦰' => 'ҡатын: уртаса ҡара тән төҫө һәм ерән сәс',
+    '👩🏿‍🦰' => 'ҡатын: ҡара тән төҫө һәм ерән сәс',
+    '👩🏻‍🦱' => 'ҡатын: аҡһыл тән төҫө һәм бөҙрә сәс',
+    '👩🏼‍🦱' => 'ҡатын: уртаса аҡһыл тән төҫө һәм бөҙрә сәс',
+    '👩🏽‍🦱' => 'ҡатын: уртаса тән төҫө һәм бөҙрә сәс',
+    '👩🏾‍🦱' => 'ҡатын: уртаса ҡара тән төҫө һәм бөҙрә сәс',
+    '👩🏿‍🦱' => 'ҡатын: ҡара тән төҫө һәм бөҙрә сәс',
+    '👩🏻‍🦳' => 'ҡатын: аҡһыл тән төҫө һәм аҡ сәс',
+    '👩🏼‍🦳' => 'ҡатын: уртаса аҡһыл тән төҫө һәм аҡ сәс',
+    '👩🏽‍🦳' => 'ҡатын: уртаса тән төҫө һәм аҡ сәс',
+    '👩🏾‍🦳' => 'ҡатын: уртаса ҡара тән төҫө һәм аҡ сәс',
+    '👩🏿‍🦳' => 'ҡатын: ҡара тән төҫө һәм аҡ сәс',
+    '👩🏻‍🦲' => 'ҡатын: аҡһыл тән төҫө һәм таҙ',
+    '👩🏼‍🦲' => 'ҡатын: уртаса аҡһыл тән төҫө һәм таҙ',
+    '👩🏽‍🦲' => 'ҡатын: уртаса тән төҫө һәм таҙ',
+    '👩🏾‍🦲' => 'ҡатын: уртаса ҡара тән төҫө һәм таҙ',
+    '👩🏿‍🦲' => 'ҡатын: ҡара тән төҫө һәм таҙ',
+    '🙍🏻‍♂' => 'йөҙ сирыусы ир-ат: аҡһыл тән төҫө',
+    '🙍🏼‍♂' => 'йөҙ сирыусы ир-ат: уртаса аҡһыл тән төҫө',
+    '🙍🏽‍♂' => 'йөҙ сирыусы ир-ат: уртаса тән төҫө',
+    '🙍🏾‍♂' => 'йөҙ сирыусы ир-ат: уртаса ҡара тән төҫө',
+    '🙍🏿‍♂' => 'йөҙ сирыусы ир-ат: ҡара тән төҫө',
+    '🙍🏻‍♀' => 'йөҙ сирыусы ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🙍🏼‍♀' => 'йөҙ сирыусы ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🙍🏽‍♀' => 'йөҙ сирыусы ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🙍🏾‍♀' => 'йөҙ сирыусы ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🙍🏿‍♀' => 'йөҙ сирыусы ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🙎🏻‍♂' => 'ирен сирыусы ир-ат: аҡһыл тән төҫө',
+    '🙎🏼‍♂' => 'ирен сирыусы ир-ат: уртаса аҡһыл тән төҫө',
+    '🙎🏽‍♂' => 'ирен сирыусы ир-ат: уртаса тән төҫө',
+    '🙎🏾‍♂' => 'ирен сирыусы ир-ат: уртаса ҡара тән төҫө',
+    '🙎🏿‍♂' => 'ирен сирыусы ир-ат: ҡара тән төҫө',
+    '🙎🏻‍♀' => 'ирен сирыусы ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🙎🏼‍♀' => 'ирен сирыусы ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🙎🏽‍♀' => 'ирен сирыусы ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🙎🏾‍♀' => 'ирен сирыусы ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🙎🏿‍♀' => 'ирен сирыусы ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🙅🏻‍♂' => 'ЮҠ тип ымлаусы ир-ат: аҡһыл тән төҫө',
+    '🙅🏼‍♂' => 'ЮҠ тип ымлаусы ир-ат: уртаса аҡһыл тән төҫө',
+    '🙅🏽‍♂' => 'ЮҠ тип ымлаусы ир-ат: уртаса тән төҫө',
+    '🙅🏾‍♂' => 'ЮҠ тип ымлаусы ир-ат: уртаса ҡара тән төҫө',
+    '🙅🏿‍♂' => 'ЮҠ тип ымлаусы ир-ат: ҡара тән төҫө',
+    '🙅🏻‍♀' => 'ЮҠ тип ымлаусы ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🙅🏼‍♀' => 'ЮҠ тип ымлаусы ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🙅🏽‍♀' => 'ЮҠ тип ымлаусы ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🙅🏾‍♀' => 'ЮҠ тип ымлаусы ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🙅🏿‍♀' => 'ЮҠ тип ымлаусы ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🙆🏻‍♂' => 'ЯҠШЫ тип ымлаусы ир-ат: аҡһыл тән төҫө',
+    '🙆🏼‍♂' => 'ЯҠШЫ тип ымлаусы ир-ат: уртаса аҡһыл тән төҫө',
+    '🙆🏽‍♂' => 'ЯҠШЫ тип ымлаусы ир-ат: уртаса тән төҫө',
+    '🙆🏾‍♂' => 'ЯҠШЫ тип ымлаусы ир-ат: уртаса ҡара тән төҫө',
+    '🙆🏿‍♂' => 'ЯҠШЫ тип ымлаусы ир-ат: ҡара тән төҫө',
+    '🙆🏻‍♀' => 'ЯҠШЫ тип ымлаусы ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🙆🏼‍♀' => 'ЯҠШЫ тип ымлаусы ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🙆🏽‍♀' => 'ЯҠШЫ тип ымлаусы ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🙆🏾‍♀' => 'ЯҠШЫ тип ымлаусы ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🙆🏿‍♀' => 'ЯҠШЫ тип ымлаусы ҡатын-ҡыҙ: ҡара тән төҫө',
+    '💁🏻‍♂' => 'ҡул һуҙған ир: аҡһыл тән төҫө',
+    '💁🏼‍♂' => 'ҡул һуҙған ир: уртаса аҡһыл тән төҫө',
+    '💁🏽‍♂' => 'ҡул һуҙған ир: уртаса тән төҫө',
+    '💁🏾‍♂' => 'ҡул һуҙған ир: уртаса ҡара тән төҫө',
+    '💁🏿‍♂' => 'ҡул һуҙған ир: ҡара тән төҫө',
+    '💁🏻‍♀' => 'ҡул һуҙған ҡатын: аҡһыл тән төҫө',
+    '💁🏼‍♀' => 'ҡул һуҙған ҡатын: уртаса аҡһыл тән төҫө',
+    '💁🏽‍♀' => 'ҡул һуҙған ҡатын: уртаса тән төҫө',
+    '💁🏾‍♀' => 'ҡул һуҙған ҡатын: уртаса ҡара тән төҫө',
+    '💁🏿‍♀' => 'ҡул һуҙған ҡатын: ҡара тән төҫө',
+    '🙋🏻‍♂' => 'ҡул күтәреүсе ир-ат: аҡһыл тән төҫө',
+    '🙋🏼‍♂' => 'ҡул күтәреүсе ир-ат: уртаса аҡһыл тән төҫө',
+    '🙋🏽‍♂' => 'ҡул күтәреүсе ир-ат: уртаса тән төҫө',
+    '🙋🏾‍♂' => 'ҡул күтәреүсе ир-ат: уртаса ҡара тән төҫө',
+    '🙋🏿‍♂' => 'ҡул күтәреүсе ир-ат: ҡара тән төҫө',
+    '🙋🏻‍♀' => 'ҡул күтәреүсе ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🙋🏼‍♀' => 'ҡул күтәреүсе ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🙋🏽‍♀' => 'ҡул күтәреүсе ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🙋🏾‍♀' => 'ҡул күтәреүсе ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🙋🏿‍♀' => 'ҡул күтәреүсе ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🧏🏻‍♂' => 'һаңғырау ир: аҡһыл тән төҫө',
+    '🧏🏼‍♂' => 'һаңғырау ир: уртаса аҡһыл тән төҫө',
+    '🧏🏽‍♂' => 'һаңғырау ир: уртаса тән төҫө',
+    '🧏🏾‍♂' => 'һаңғырау ир: уртаса ҡара тән төҫө',
+    '🧏🏿‍♂' => 'һаңғырау ир: ҡара тән төҫө',
+    '🧏🏻‍♀' => 'һаңғырау ҡатын: аҡһыл тән төҫө',
+    '🧏🏼‍♀' => 'һаңғырау ҡатын: уртаса аҡһыл тән төҫө',
+    '🧏🏽‍♀' => 'һаңғырау ҡатын: уртаса тән төҫө',
+    '🧏🏾‍♀' => 'һаңғырау ҡатын: уртаса ҡара тән төҫө',
+    '🧏🏿‍♀' => 'һаңғырау ҡатын: ҡара тән төҫө',
+    '🙇🏻‍♂' => 'баш эйеүсе ир-ат: аҡһыл тән төҫө',
+    '🙇🏼‍♂' => 'баш эйеүсе ир-ат: уртаса аҡһыл тән төҫө',
+    '🙇🏽‍♂' => 'баш эйеүсе ир-ат: уртаса тән төҫө',
+    '🙇🏾‍♂' => 'баш эйеүсе ир-ат: уртаса ҡара тән төҫө',
+    '🙇🏿‍♂' => 'баш эйеүсе ир-ат: ҡара тән төҫө',
+    '🙇🏻‍♀' => 'баш эйеүсе ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🙇🏼‍♀' => 'баш эйеүсе ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🙇🏽‍♀' => 'баш эйеүсе ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🙇🏾‍♀' => 'баш эйеүсе ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🙇🏿‍♀' => 'баш эйеүсе ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🤦🏻‍♂' => 'йөҙөн ҡул менән ҡаплаусы ир-ат: аҡһыл тән төҫө',
+    '🤦🏼‍♂' => 'йөҙөн ҡул менән ҡаплаусы ир-ат: уртаса аҡһыл тән төҫө',
+    '🤦🏽‍♂' => 'йөҙөн ҡул менән ҡаплаусы ир-ат: уртаса тән төҫө',
+    '🤦🏾‍♂' => 'йөҙөн ҡул менән ҡаплаусы ир-ат: уртаса ҡара тән төҫө',
+    '🤦🏿‍♂' => 'йөҙөн ҡул менән ҡаплаусы ир-ат: ҡара тән төҫө',
+    '🤦🏻‍♀' => 'йөҙөн ҡул менән ҡаплаусы ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🤦🏼‍♀' => 'йөҙөн ҡул менән ҡаплаусы ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🤦🏽‍♀' => 'йөҙөн ҡул менән ҡаплаусы ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🤦🏾‍♀' => 'йөҙөн ҡул менән ҡаплаусы ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🤦🏿‍♀' => 'йөҙөн ҡул менән ҡаплаусы ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🤷🏻‍♂' => 'ир яурынын һикертә: аҡһыл тән төҫө',
+    '🤷🏼‍♂' => 'ир яурынын һикертә: уртаса аҡһыл тән төҫө',
+    '🤷🏽‍♂' => 'ир яурынын һикертә: уртаса тән төҫө',
+    '🤷🏾‍♂' => 'ир яурынын һикертә: уртаса ҡара тән төҫө',
+    '🤷🏿‍♂' => 'ир яурынын һикертә: ҡара тән төҫө',
+    '🤷🏻‍♀' => 'ҡатын яурынын һикертә: аҡһыл тән төҫө',
+    '🤷🏼‍♀' => 'ҡатын яурынын һикертә: уртаса аҡһыл тән төҫө',
+    '🤷🏽‍♀' => 'ҡатын яурынын һикертә: уртаса тән төҫө',
+    '🤷🏾‍♀' => 'ҡатын яурынын һикертә: уртаса ҡара тән төҫө',
+    '🤷🏿‍♀' => 'ҡатын яурынын һикертә: ҡара тән төҫө',
+    '🧑🏻‍⚕' => 'һаулыҡ һаҡлау хеҙмәткәре: аҡһыл тән төҫө',
+    '🧑🏼‍⚕' => 'һаулыҡ һаҡлау хеҙмәткәре: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍⚕' => 'һаулыҡ һаҡлау хеҙмәткәре: уртаса тән төҫө',
+    '🧑🏾‍⚕' => 'һаулыҡ һаҡлау хеҙмәткәре: уртаса ҡара тән төҫө',
+    '🧑🏿‍⚕' => 'һаулыҡ һаҡлау хеҙмәткәре: ҡара тән төҫө',
+    '👨🏻‍⚕' => 'ир-ат медицина хеҙмәткәре: аҡһыл тән төҫө',
+    '👨🏼‍⚕' => 'ир-ат медицина хеҙмәткәре: уртаса аҡһыл тән төҫө',
+    '👨🏽‍⚕' => 'ир-ат медицина хеҙмәткәре: уртаса тән төҫө',
+    '👨🏾‍⚕' => 'ир-ат медицина хеҙмәткәре: уртаса ҡара тән төҫө',
+    '👨🏿‍⚕' => 'ир-ат медицина хеҙмәткәре: ҡара тән төҫө',
+    '👩🏻‍⚕' => 'ҡатын-ҡыҙ медицина хеҙмәткәре: аҡһыл тән төҫө',
+    '👩🏼‍⚕' => 'ҡатын-ҡыҙ медицина хеҙмәткәре: уртаса аҡһыл тән төҫө',
+    '👩🏽‍⚕' => 'ҡатын-ҡыҙ медицина хеҙмәткәре: уртаса тән төҫө',
+    '👩🏾‍⚕' => 'ҡатын-ҡыҙ медицина хеҙмәткәре: уртаса ҡара тән төҫө',
+    '👩🏿‍⚕' => 'ҡатын-ҡыҙ медицина хеҙмәткәре: ҡара тән төҫө',
+    '🧑🏻‍🎓' => 'студент: аҡһыл тән төҫө',
+    '🧑🏼‍🎓' => 'студент: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🎓' => 'студент: уртаса тән төҫө',
+    '🧑🏾‍🎓' => 'студент: уртаса ҡара тән төҫө',
+    '🧑🏿‍🎓' => 'студент: ҡара тән төҫө',
+    '👨🏻‍🎓' => 'ир-ат студент: аҡһыл тән төҫө',
+    '👨🏼‍🎓' => 'ир-ат студент: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🎓' => 'ир-ат студент: уртаса тән төҫө',
+    '👨🏾‍🎓' => 'ир-ат студент: уртаса ҡара тән төҫө',
+    '👨🏿‍🎓' => 'ир-ат студент: ҡара тән төҫө',
+    '👩🏻‍🎓' => 'ҡатын-ҡыҙ студент: аҡһыл тән төҫө',
+    '👩🏼‍🎓' => 'ҡатын-ҡыҙ студент: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🎓' => 'ҡатын-ҡыҙ студент: уртаса тән төҫө',
+    '👩🏾‍🎓' => 'ҡатын-ҡыҙ студент: уртаса ҡара тән төҫө',
+    '👩🏿‍🎓' => 'ҡатын-ҡыҙ студент: ҡара тән төҫө',
+    '🧑🏻‍🏫' => 'уҡытыусы: аҡһыл тән төҫө',
+    '🧑🏼‍🏫' => 'уҡытыусы: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🏫' => 'уҡытыусы: уртаса тән төҫө',
+    '🧑🏾‍🏫' => 'уҡытыусы: уртаса ҡара тән төҫө',
+    '🧑🏿‍🏫' => 'уҡытыусы: ҡара тән төҫө',
+    '👨🏻‍🏫' => 'ир-ат уҡытыусы: аҡһыл тән төҫө',
+    '👨🏼‍🏫' => 'ир-ат уҡытыусы: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🏫' => 'ир-ат уҡытыусы: уртаса тән төҫө',
+    '👨🏾‍🏫' => 'ир-ат уҡытыусы: уртаса ҡара тән төҫө',
+    '👨🏿‍🏫' => 'ир-ат уҡытыусы: ҡара тән төҫө',
+    '👩🏻‍🏫' => 'ҡатын-ҡыҙ уҡытыусы: аҡһыл тән төҫө',
+    '👩🏼‍🏫' => 'ҡатын-ҡыҙ уҡытыусы: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🏫' => 'ҡатын-ҡыҙ уҡытыусы: уртаса тән төҫө',
+    '👩🏾‍🏫' => 'ҡатын-ҡыҙ уҡытыусы: уртаса ҡара тән төҫө',
+    '👩🏿‍🏫' => 'ҡатын-ҡыҙ уҡытыусы: ҡара тән төҫө',
+    '🧑🏻‍⚖' => 'хөкөмсө: аҡһыл тән төҫө',
+    '🧑🏼‍⚖' => 'хөкөмсө: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍⚖' => 'хөкөмсө: уртаса тән төҫө',
+    '🧑🏾‍⚖' => 'хөкөмсө: уртаса ҡара тән төҫө',
+    '🧑🏿‍⚖' => 'хөкөмсө: ҡара тән төҫө',
+    '👨🏻‍⚖' => 'ир-ат хөкөмсө: аҡһыл тән төҫө',
+    '👨🏼‍⚖' => 'ир-ат хөкөмсө: уртаса аҡһыл тән төҫө',
+    '👨🏽‍⚖' => 'ир-ат хөкөмсө: уртаса тән төҫө',
+    '👨🏾‍⚖' => 'ир-ат хөкөмсө: уртаса ҡара тән төҫө',
+    '👨🏿‍⚖' => 'ир-ат хөкөмсө: ҡара тән төҫө',
+    '👩🏻‍⚖' => 'ҡатын-ҡыҙ хөкөмсө: аҡһыл тән төҫө',
+    '👩🏼‍⚖' => 'ҡатын-ҡыҙ хөкөмсө: уртаса аҡһыл тән төҫө',
+    '👩🏽‍⚖' => 'ҡатын-ҡыҙ хөкөмсө: уртаса тән төҫө',
+    '👩🏾‍⚖' => 'ҡатын-ҡыҙ хөкөмсө: уртаса ҡара тән төҫө',
+    '👩🏿‍⚖' => 'ҡатын-ҡыҙ хөкөмсө: ҡара тән төҫө',
+    '🧑🏻‍🌾' => 'фермер: аҡһыл тән төҫө',
+    '🧑🏼‍🌾' => 'фермер: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🌾' => 'фермер: уртаса тән төҫө',
+    '🧑🏾‍🌾' => 'фермер: уртаса ҡара тән төҫө',
+    '🧑🏿‍🌾' => 'фермер: ҡара тән төҫө',
+    '👨🏻‍🌾' => 'ир-ат фермер: аҡһыл тән төҫө',
+    '👨🏼‍🌾' => 'ир-ат фермер: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🌾' => 'ир-ат фермер: уртаса тән төҫө',
+    '👨🏾‍🌾' => 'ир-ат фермер: уртаса ҡара тән төҫө',
+    '👨🏿‍🌾' => 'ир-ат фермер: ҡара тән төҫө',
+    '👩🏻‍🌾' => 'ҡатын-ҡыҙ фермер: аҡһыл тән төҫө',
+    '👩🏼‍🌾' => 'ҡатын-ҡыҙ фермер: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🌾' => 'ҡатын-ҡыҙ фермер: уртаса тән төҫө',
+    '👩🏾‍🌾' => 'ҡатын-ҡыҙ фермер: уртаса ҡара тән төҫө',
+    '👩🏿‍🌾' => 'ҡатын-ҡыҙ фермер: ҡара тән төҫө',
+    '🧑🏻‍🍳' => 'ашнаҡсы: аҡһыл тән төҫө',
+    '🧑🏼‍🍳' => 'ашнаҡсы: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🍳' => 'ашнаҡсы: уртаса тән төҫө',
+    '🧑🏾‍🍳' => 'ашнаҡсы: уртаса ҡара тән төҫө',
+    '🧑🏿‍🍳' => 'ашнаҡсы: ҡара тән төҫө',
+    '👨🏻‍🍳' => 'ир-ат ашнаҡсы: аҡһыл тән төҫө',
+    '👨🏼‍🍳' => 'ир-ат ашнаҡсы: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🍳' => 'ир-ат ашнаҡсы: уртаса тән төҫө',
+    '👨🏾‍🍳' => 'ир-ат ашнаҡсы: уртаса ҡара тән төҫө',
+    '👨🏿‍🍳' => 'ир-ат ашнаҡсы: ҡара тән төҫө',
+    '👩🏻‍🍳' => 'ҡатын-ҡыҙ ашнаҡсы: аҡһыл тән төҫө',
+    '👩🏼‍🍳' => 'ҡатын-ҡыҙ ашнаҡсы: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🍳' => 'ҡатын-ҡыҙ ашнаҡсы: уртаса тән төҫө',
+    '👩🏾‍🍳' => 'ҡатын-ҡыҙ ашнаҡсы: уртаса ҡара тән төҫө',
+    '👩🏿‍🍳' => 'ҡатын-ҡыҙ ашнаҡсы: ҡара тән төҫө',
+    '🧑🏻‍🔧' => 'механик: аҡһыл тән төҫө',
+    '🧑🏼‍🔧' => 'механик: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🔧' => 'механик: уртаса тән төҫө',
+    '🧑🏾‍🔧' => 'механик: уртаса ҡара тән төҫө',
+    '🧑🏿‍🔧' => 'механик: ҡара тән төҫө',
+    '👨🏻‍🔧' => 'ир-ат механик: аҡһыл тән төҫө',
+    '👨🏼‍🔧' => 'ир-ат механик: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🔧' => 'ир-ат механик: уртаса тән төҫө',
+    '👨🏾‍🔧' => 'ир-ат механик: уртаса ҡара тән төҫө',
+    '👨🏿‍🔧' => 'ир-ат механик: ҡара тән төҫө',
+    '👩🏻‍🔧' => 'ҡатын-ҡыҙ механик: аҡһыл тән төҫө',
+    '👩🏼‍🔧' => 'ҡатын-ҡыҙ механик: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🔧' => 'ҡатын-ҡыҙ механик: уртаса тән төҫө',
+    '👩🏾‍🔧' => 'ҡатын-ҡыҙ механик: уртаса ҡара тән төҫө',
+    '👩🏿‍🔧' => 'ҡатын-ҡыҙ механик: ҡара тән төҫө',
+    '🧑🏻‍🏭' => 'завод эшсеһе: аҡһыл тән төҫө',
+    '🧑🏼‍🏭' => 'завод эшсеһе: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🏭' => 'завод эшсеһе: уртаса тән төҫө',
+    '🧑🏾‍🏭' => 'завод эшсеһе: уртаса ҡара тән төҫө',
+    '🧑🏿‍🏭' => 'завод эшсеһе: ҡара тән төҫө',
+    '👨🏻‍🏭' => 'ир-ат завод эшсеһе: аҡһыл тән төҫө',
+    '👨🏼‍🏭' => 'ир-ат завод эшсеһе: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🏭' => 'ир-ат завод эшсеһе: уртаса тән төҫө',
+    '👨🏾‍🏭' => 'ир-ат завод эшсеһе: уртаса ҡара тән төҫө',
+    '👨🏿‍🏭' => 'ир-ат завод эшсеһе: ҡара тән төҫө',
+    '👩🏻‍🏭' => 'ҡатын-ҡыҙ завод эшсеһе: аҡһыл тән төҫө',
+    '👩🏼‍🏭' => 'ҡатын-ҡыҙ завод эшсеһе: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🏭' => 'ҡатын-ҡыҙ завод эшсеһе: уртаса тән төҫө',
+    '👩🏾‍🏭' => 'ҡатын-ҡыҙ завод эшсеһе: уртаса ҡара тән төҫө',
+    '👩🏿‍🏭' => 'ҡатын-ҡыҙ завод эшсеһе: ҡара тән төҫө',
+    '🧑🏻‍💼' => 'офис хеҙмәткәре: аҡһыл тән төҫө',
+    '🧑🏼‍💼' => 'офис хеҙмәткәре: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍💼' => 'офис хеҙмәткәре: уртаса тән төҫө',
+    '🧑🏾‍💼' => 'офис хеҙмәткәре: уртаса ҡара тән төҫө',
+    '🧑🏿‍💼' => 'офис хеҙмәткәре: ҡара тән төҫө',
+    '👨🏻‍💼' => 'ир-ат офис эшсеһе: аҡһыл тән төҫө',
+    '👨🏼‍💼' => 'ир-ат офис эшсеһе: уртаса аҡһыл тән төҫө',
+    '👨🏽‍💼' => 'ир-ат офис эшсеһе: уртаса тән төҫө',
+    '👨🏾‍💼' => 'ир-ат офис эшсеһе: уртаса ҡара тән төҫө',
+    '👨🏿‍💼' => 'ир-ат офис эшсеһе: ҡара тән төҫө',
+    '👩🏻‍💼' => 'ҡатын-ҡыҙ офис эшсеһе: аҡһыл тән төҫө',
+    '👩🏼‍💼' => 'ҡатын-ҡыҙ офис эшсеһе: уртаса аҡһыл тән төҫө',
+    '👩🏽‍💼' => 'ҡатын-ҡыҙ офис эшсеһе: уртаса тән төҫө',
+    '👩🏾‍💼' => 'ҡатын-ҡыҙ офис эшсеһе: уртаса ҡара тән төҫө',
+    '👩🏿‍💼' => 'ҡатын-ҡыҙ офис эшсеһе: ҡара тән төҫө',
+    '🧑🏻‍🔬' => 'ғалим: аҡһыл тән төҫө',
+    '🧑🏼‍🔬' => 'ғалим: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🔬' => 'ғалим: уртаса тән төҫө',
+    '🧑🏾‍🔬' => 'ғалим: уртаса ҡара тән төҫө',
+    '🧑🏿‍🔬' => 'ғалим: ҡара тән төҫө',
+    '👨🏻‍🔬' => 'ир-ат ғалим: аҡһыл тән төҫө',
+    '👨🏼‍🔬' => 'ир-ат ғалим: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🔬' => 'ир-ат ғалим: уртаса тән төҫө',
+    '👨🏾‍🔬' => 'ир-ат ғалим: уртаса ҡара тән төҫө',
+    '👨🏿‍🔬' => 'ир-ат ғалим: ҡара тән төҫө',
+    '👩🏻‍🔬' => 'ҡатын-ҡыҙ ғалим: аҡһыл тән төҫө',
+    '👩🏼‍🔬' => 'ҡатын-ҡыҙ ғалим: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🔬' => 'ҡатын-ҡыҙ ғалим: уртаса тән төҫө',
+    '👩🏾‍🔬' => 'ҡатын-ҡыҙ ғалим: уртаса ҡара тән төҫө',
+    '👩🏿‍🔬' => 'ҡатын-ҡыҙ ғалим: ҡара тән төҫө',
+    '🧑🏻‍💻' => 'технолог: аҡһыл тән төҫө',
+    '🧑🏼‍💻' => 'технолог: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍💻' => 'технолог: уртаса тән төҫө',
+    '🧑🏾‍💻' => 'технолог: уртаса ҡара тән төҫө',
+    '🧑🏿‍💻' => 'технолог: ҡара тән төҫө',
+    '👨🏻‍💻' => 'ир-ат технолог: аҡһыл тән төҫө',
+    '👨🏼‍💻' => 'ир-ат технолог: уртаса аҡһыл тән төҫө',
+    '👨🏽‍💻' => 'ир-ат технолог: уртаса тән төҫө',
+    '👨🏾‍💻' => 'ир-ат технолог: уртаса ҡара тән төҫө',
+    '👨🏿‍💻' => 'ир-ат технолог: ҡара тән төҫө',
+    '👩🏻‍💻' => 'ҡатын-ҡыҙ технолог: аҡһыл тән төҫө',
+    '👩🏼‍💻' => 'ҡатын-ҡыҙ технолог: уртаса аҡһыл тән төҫө',
+    '👩🏽‍💻' => 'ҡатын-ҡыҙ технолог: уртаса тән төҫө',
+    '👩🏾‍💻' => 'ҡатын-ҡыҙ технолог: уртаса ҡара тән төҫө',
+    '👩🏿‍💻' => 'ҡатын-ҡыҙ технолог: ҡара тән төҫө',
+    '🧑🏻‍🎤' => 'йырсы: аҡһыл тән төҫө',
+    '🧑🏼‍🎤' => 'йырсы: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🎤' => 'йырсы: уртаса тән төҫө',
+    '🧑🏾‍🎤' => 'йырсы: уртаса ҡара тән төҫө',
+    '🧑🏿‍🎤' => 'йырсы: ҡара тән төҫө',
+    '👨🏻‍🎤' => 'ир-ат йырсы: аҡһыл тән төҫө',
+    '👨🏼‍🎤' => 'ир-ат йырсы: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🎤' => 'ир-ат йырсы: уртаса тән төҫө',
+    '👨🏾‍🎤' => 'ир-ат йырсы: уртаса ҡара тән төҫө',
+    '👨🏿‍🎤' => 'ир-ат йырсы: ҡара тән төҫө',
+    '👩🏻‍🎤' => 'ҡатын-ҡыҙ йырсы: аҡһыл тән төҫө',
+    '👩🏼‍🎤' => 'ҡатын-ҡыҙ йырсы: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🎤' => 'ҡатын-ҡыҙ йырсы: уртаса тән төҫө',
+    '👩🏾‍🎤' => 'ҡатын-ҡыҙ йырсы: уртаса ҡара тән төҫө',
+    '👩🏿‍🎤' => 'ҡатын-ҡыҙ йырсы: ҡара тән төҫө',
+    '🧑🏻‍🎨' => 'рәссам: аҡһыл тән төҫө',
+    '🧑🏼‍🎨' => 'рәссам: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🎨' => 'рәссам: уртаса тән төҫө',
+    '🧑🏾‍🎨' => 'рәссам: уртаса ҡара тән төҫө',
+    '🧑🏿‍🎨' => 'рәссам: ҡара тән төҫө',
+    '👨🏻‍🎨' => 'ир-ат рәссам: аҡһыл тән төҫө',
+    '👨🏼‍🎨' => 'ир-ат рәссам: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🎨' => 'ир-ат рәссам: уртаса тән төҫө',
+    '👨🏾‍🎨' => 'ир-ат рәссам: уртаса ҡара тән төҫө',
+    '👨🏿‍🎨' => 'ир-ат рәссам: ҡара тән төҫө',
+    '👩🏻‍🎨' => 'ҡатын-ҡыҙ рәссам: аҡһыл тән төҫө',
+    '👩🏼‍🎨' => 'ҡатын-ҡыҙ рәссам: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🎨' => 'ҡатын-ҡыҙ рәссам: уртаса тән төҫө',
+    '👩🏾‍🎨' => 'ҡатын-ҡыҙ рәссам: уртаса ҡара тән төҫө',
+    '👩🏿‍🎨' => 'ҡатын-ҡыҙ рәссам: ҡара тән төҫө',
+    '🧑🏻‍✈' => 'пилот: аҡһыл тән төҫө',
+    '🧑🏼‍✈' => 'пилот: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍✈' => 'пилот: уртаса тән төҫө',
+    '🧑🏾‍✈' => 'пилот: уртаса ҡара тән төҫө',
+    '🧑🏿‍✈' => 'пилот: ҡара тән төҫө',
+    '👨🏻‍✈' => 'ир-ат пилот: аҡһыл тән төҫө',
+    '👨🏼‍✈' => 'ир-ат пилот: уртаса аҡһыл тән төҫө',
+    '👨🏽‍✈' => 'ир-ат пилот: уртаса тән төҫө',
+    '👨🏾‍✈' => 'ир-ат пилот: уртаса ҡара тән төҫө',
+    '👨🏿‍✈' => 'ир-ат пилот: ҡара тән төҫө',
+    '👩🏻‍✈' => 'ҡатын-ҡыҙ пилот: аҡһыл тән төҫө',
+    '👩🏼‍✈' => 'ҡатын-ҡыҙ пилот: уртаса аҡһыл тән төҫө',
+    '👩🏽‍✈' => 'ҡатын-ҡыҙ пилот: уртаса тән төҫө',
+    '👩🏾‍✈' => 'ҡатын-ҡыҙ пилот: уртаса ҡара тән төҫө',
+    '👩🏿‍✈' => 'ҡатын-ҡыҙ пилот: ҡара тән төҫө',
+    '🧑🏻‍🚀' => 'космонавт: аҡһыл тән төҫө',
+    '🧑🏼‍🚀' => 'космонавт: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🚀' => 'космонавт: уртаса тән төҫө',
+    '🧑🏾‍🚀' => 'космонавт: уртаса ҡара тән төҫө',
+    '🧑🏿‍🚀' => 'космонавт: ҡара тән төҫө',
+    '👨🏻‍🚀' => 'ир-ат космонавт: аҡһыл тән төҫө',
+    '👨🏼‍🚀' => 'ир-ат космонавт: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🚀' => 'ир-ат космонавт: уртаса тән төҫө',
+    '👨🏾‍🚀' => 'ир-ат космонавт: уртаса ҡара тән төҫө',
+    '👨🏿‍🚀' => 'ир-ат космонавт: ҡара тән төҫө',
+    '👩🏻‍🚀' => 'ҡатын-ҡыҙ космонавт: аҡһыл тән төҫө',
+    '👩🏼‍🚀' => 'ҡатын-ҡыҙ космонавт: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🚀' => 'ҡатын-ҡыҙ космонавт: уртаса тән төҫө',
+    '👩🏾‍🚀' => 'ҡатын-ҡыҙ космонавт: уртаса ҡара тән төҫө',
+    '👩🏿‍🚀' => 'ҡатын-ҡыҙ космонавт: ҡара тән төҫө',
+    '🧑🏻‍🚒' => 'янғын һүндереүсе: аҡһыл тән төҫө',
+    '🧑🏼‍🚒' => 'янғын һүндереүсе: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🚒' => 'янғын һүндереүсе: уртаса тән төҫө',
+    '🧑🏾‍🚒' => 'янғын һүндереүсе: уртаса ҡара тән төҫө',
+    '🧑🏿‍🚒' => 'янғын һүндереүсе: ҡара тән төҫө',
+    '👨🏻‍🚒' => 'ир-ат янғын һүндереүсе: аҡһыл тән төҫө',
+    '👨🏼‍🚒' => 'ир-ат янғын һүндереүсе: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🚒' => 'ир-ат янғын һүндереүсе: уртаса тән төҫө',
+    '👨🏾‍🚒' => 'ир-ат янғын һүндереүсе: уртаса ҡара тән төҫө',
+    '👨🏿‍🚒' => 'ир-ат янғын һүндереүсе: ҡара тән төҫө',
+    '👩🏻‍🚒' => 'ҡатын-ҡыҙ янғын һүндереүсе: аҡһыл тән төҫө',
+    '👩🏼‍🚒' => 'ҡатын-ҡыҙ янғын һүндереүсе: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🚒' => 'ҡатын-ҡыҙ янғын һүндереүсе: уртаса тән төҫө',
+    '👩🏾‍🚒' => 'ҡатын-ҡыҙ янғын һүндереүсе: уртаса ҡара тән төҫө',
+    '👩🏿‍🚒' => 'ҡатын-ҡыҙ янғын һүндереүсе: ҡара тән төҫө',
+    '👮🏻‍♂' => 'ир-ат полиция хеҙмәткәре: аҡһыл тән төҫө',
+    '👮🏼‍♂' => 'ир-ат полиция хеҙмәткәре: уртаса аҡһыл тән төҫө',
+    '👮🏽‍♂' => 'ир-ат полиция хеҙмәткәре: уртаса тән төҫө',
+    '👮🏾‍♂' => 'ир-ат полиция хеҙмәткәре: уртаса ҡара тән төҫө',
+    '👮🏿‍♂' => 'ир-ат полиция хеҙмәткәре: ҡара тән төҫө',
+    '👮🏻‍♀' => 'ҡатын-ҡыҙ полиция хеҙмәткәре: аҡһыл тән төҫө',
+    '👮🏼‍♀' => 'ҡатын-ҡыҙ полиция хеҙмәткәре: уртаса аҡһыл тән төҫө',
+    '👮🏽‍♀' => 'ҡатын-ҡыҙ полиция хеҙмәткәре: уртаса тән төҫө',
+    '👮🏾‍♀' => 'ҡатын-ҡыҙ полиция хеҙмәткәре: уртаса ҡара тән төҫө',
+    '👮🏿‍♀' => 'ҡатын-ҡыҙ полиция хеҙмәткәре: ҡара тән төҫө',
+    '🕵🏻‍♂' => 'ир-ат детектив: аҡһыл тән төҫө',
+    '🕵🏼‍♂' => 'ир-ат детектив: уртаса аҡһыл тән төҫө',
+    '🕵🏽‍♂' => 'ир-ат детектив: уртаса тән төҫө',
+    '🕵🏾‍♂' => 'ир-ат детектив: уртаса ҡара тән төҫө',
+    '🕵🏿‍♂' => 'ир-ат детектив: ҡара тән төҫө',
+    '🕵🏻‍♀' => 'ҡатын-ҡыҙ детектив: аҡһыл тән төҫө',
+    '🕵🏼‍♀' => 'ҡатын-ҡыҙ детектив: уртаса аҡһыл тән төҫө',
+    '🕵🏽‍♀' => 'ҡатын-ҡыҙ детектив: уртаса тән төҫө',
+    '🕵🏾‍♀' => 'ҡатын-ҡыҙ детектив: уртаса ҡара тән төҫө',
+    '🕵🏿‍♀' => 'ҡатын-ҡыҙ детектив: ҡара тән төҫө',
+    '💂🏻‍♂' => 'ир-ат һаҡсы: аҡһыл тән төҫө',
+    '💂🏼‍♂' => 'ир-ат һаҡсы: уртаса аҡһыл тән төҫө',
+    '💂🏽‍♂' => 'ир-ат һаҡсы: уртаса тән төҫө',
+    '💂🏾‍♂' => 'ир-ат һаҡсы: уртаса ҡара тән төҫө',
+    '💂🏿‍♂' => 'ир-ат һаҡсы: ҡара тән төҫө',
+    '💂🏻‍♀' => 'ҡатын-ҡыҙ һаҡсы: аҡһыл тән төҫө',
+    '💂🏼‍♀' => 'ҡатын-ҡыҙ һаҡсы: уртаса аҡһыл тән төҫө',
+    '💂🏽‍♀' => 'ҡатын-ҡыҙ һаҡсы: уртаса тән төҫө',
+    '💂🏾‍♀' => 'ҡатын-ҡыҙ һаҡсы: уртаса ҡара тән төҫө',
+    '💂🏿‍♀' => 'ҡатын-ҡыҙ һаҡсы: ҡара тән төҫө',
+    '👷🏻‍♂' => 'ир-ат төҙөүсе: аҡһыл тән төҫө',
+    '👷🏼‍♂' => 'ир-ат төҙөүсе: уртаса аҡһыл тән төҫө',
+    '👷🏽‍♂' => 'ир-ат төҙөүсе: уртаса тән төҫө',
+    '👷🏾‍♂' => 'ир-ат төҙөүсе: уртаса ҡара тән төҫө',
+    '👷🏿‍♂' => 'ир-ат төҙөүсе: ҡара тән төҫө',
+    '👷🏻‍♀' => 'ҡатын-ҡыҙ төҙөүсе: аҡһыл тән төҫө',
+    '👷🏼‍♀' => 'ҡатын-ҡыҙ төҙөүсе: уртаса аҡһыл тән төҫө',
+    '👷🏽‍♀' => 'ҡатын-ҡыҙ төҙөүсе: уртаса тән төҫө',
+    '👷🏾‍♀' => 'ҡатын-ҡыҙ төҙөүсе: уртаса ҡара тән төҫө',
+    '👷🏿‍♀' => 'ҡатын-ҡыҙ төҙөүсе: ҡара тән төҫө',
+    '👳🏻‍♂' => 'салма кейгән ир: аҡһыл тән төҫө',
+    '👳🏼‍♂' => 'салма кейгән ир: уртаса аҡһыл тән төҫө',
+    '👳🏽‍♂' => 'салма кейгән ир: уртаса тән төҫө',
+    '👳🏾‍♂' => 'салма кейгән ир: уртаса ҡара тән төҫө',
+    '👳🏿‍♂' => 'салма кейгән ир: ҡара тән төҫө',
+    '👳🏻‍♀' => 'салма кейгән ҡатын: аҡһыл тән төҫө',
+    '👳🏼‍♀' => 'салма кейгән ҡатын: уртаса аҡһыл тән төҫө',
+    '👳🏽‍♀' => 'салма кейгән ҡатын: уртаса тән төҫө',
+    '👳🏾‍♀' => 'салма кейгән ҡатын: уртаса ҡара тән төҫө',
+    '👳🏿‍♀' => 'салма кейгән ҡатын: ҡара тән төҫө',
+    '🤵🏻‍♂' => 'смокингтағы ир: аҡһыл тән төҫө',
+    '🤵🏼‍♂' => 'смокингтағы ир: уртаса аҡһыл тән төҫө',
+    '🤵🏽‍♂' => 'смокингтағы ир: уртаса тән төҫө',
+    '🤵🏾‍♂' => 'смокингтағы ир: уртаса ҡара тән төҫө',
+    '🤵🏿‍♂' => 'смокингтағы ир: ҡара тән төҫө',
+    '🤵🏻‍♀' => 'смокингтағы ҡатын: аҡһыл тән төҫө',
+    '🤵🏼‍♀' => 'смокингтағы ҡатын: уртаса аҡһыл тән төҫө',
+    '🤵🏽‍♀' => 'смокингтағы ҡатын: уртаса тән төҫө',
+    '🤵🏾‍♀' => 'смокингтағы ҡатын: уртаса ҡара тән төҫө',
+    '🤵🏿‍♀' => 'смокингтағы ҡатын: ҡара тән төҫө',
+    '👰🏻‍♂' => 'фаталы ир: аҡһыл тән төҫө',
+    '👰🏼‍♂' => 'фаталы ир: уртаса аҡһыл тән төҫө',
+    '👰🏽‍♂' => 'фаталы ир: уртаса тән төҫө',
+    '👰🏾‍♂' => 'фаталы ир: уртаса ҡара тән төҫө',
+    '👰🏿‍♂' => 'фаталы ир: ҡара тән төҫө',
+    '👰🏻‍♀' => 'фаталы ҡатын: аҡһыл тән төҫө',
+    '👰🏼‍♀' => 'фаталы ҡатын: уртаса аҡһыл тән төҫө',
+    '👰🏽‍♀' => 'фаталы ҡатын: уртаса тән төҫө',
+    '👰🏾‍♀' => 'фаталы ҡатын: уртаса ҡара тән төҫө',
+    '👰🏿‍♀' => 'фаталы ҡатын: ҡара тән төҫө',
+    '👩🏻‍🍼' => 'балаһын ашатҡан ҡатын: аҡһыл тән төҫө',
+    '👩🏼‍🍼' => 'балаһын ашатҡан ҡатын: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🍼' => 'балаһын ашатҡан ҡатын: уртаса тән төҫө',
+    '👩🏾‍🍼' => 'балаһын ашатҡан ҡатын: уртаса ҡара тән төҫө',
+    '👩🏿‍🍼' => 'балаһын ашатҡан ҡатын: ҡара тән төҫө',
+    '👨🏻‍🍼' => 'балаһын ашатҡан ир: аҡһыл тән төҫө',
+    '👨🏼‍🍼' => 'балаһын ашатҡан ир: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🍼' => 'балаһын ашатҡан ир: уртаса тән төҫө',
+    '👨🏾‍🍼' => 'балаһын ашатҡан ир: уртаса ҡара тән төҫө',
+    '👨🏿‍🍼' => 'балаһын ашатҡан ир: ҡара тән төҫө',
+    '🧑🏻‍🍼' => 'балаһын ашатҡан кеше: аҡһыл тән төҫө',
+    '🧑🏼‍🍼' => 'балаһын ашатҡан кеше: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🍼' => 'балаһын ашатҡан кеше: уртаса тән төҫө',
+    '🧑🏾‍🍼' => 'балаһын ашатҡан кеше: уртаса ҡара тән төҫө',
+    '🧑🏿‍🍼' => 'балаһын ашатҡан кеше: ҡара тән төҫө',
+    '🧑🏻‍🎄' => 'Mx Клаус: аҡһыл тән төҫө',
+    '🧑🏼‍🎄' => 'Mx Клаус: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🎄' => 'Mx Клаус: уртаса тән төҫө',
+    '🧑🏾‍🎄' => 'Mx Клаус: уртаса ҡара тән төҫө',
+    '🧑🏿‍🎄' => 'Mx Клаус: ҡара тән төҫө',
+    '🦸🏻‍♂' => 'ир-ат супергерой: аҡһыл тән төҫө',
+    '🦸🏼‍♂' => 'ир-ат супергерой: уртаса аҡһыл тән төҫө',
+    '🦸🏽‍♂' => 'ир-ат супергерой: уртаса тән төҫө',
+    '🦸🏾‍♂' => 'ир-ат супергерой: уртаса ҡара тән төҫө',
+    '🦸🏿‍♂' => 'ир-ат супергерой: ҡара тән төҫө',
+    '🦸🏻‍♀' => 'ҡатын-ҡыҙ супергерой: аҡһыл тән төҫө',
+    '🦸🏼‍♀' => 'ҡатын-ҡыҙ супергерой: уртаса аҡһыл тән төҫө',
+    '🦸🏽‍♀' => 'ҡатын-ҡыҙ супергерой: уртаса тән төҫө',
+    '🦸🏾‍♀' => 'ҡатын-ҡыҙ супергерой: уртаса ҡара тән төҫө',
+    '🦸🏿‍♀' => 'ҡатын-ҡыҙ супергерой: ҡара тән төҫө',
+    '🦹🏻‍♂' => 'ир-ат супер яуыз: аҡһыл тән төҫө',
+    '🦹🏼‍♂' => 'ир-ат супер яуыз: уртаса аҡһыл тән төҫө',
+    '🦹🏽‍♂' => 'ир-ат супер яуыз: уртаса тән төҫө',
+    '🦹🏾‍♂' => 'ир-ат супер яуыз: уртаса ҡара тән төҫө',
+    '🦹🏿‍♂' => 'ир-ат супер яуыз: ҡара тән төҫө',
+    '🦹🏻‍♀' => 'ҡатын-ҡыҙ супер яуыз: аҡһыл тән төҫө',
+    '🦹🏼‍♀' => 'ҡатын-ҡыҙ супер яуыз: уртаса аҡһыл тән төҫө',
+    '🦹🏽‍♀' => 'ҡатын-ҡыҙ супер яуыз: уртаса тән төҫө',
+    '🦹🏾‍♀' => 'ҡатын-ҡыҙ супер яуыз: уртаса ҡара тән төҫө',
+    '🦹🏿‍♀' => 'ҡатын-ҡыҙ супер яуыз: ҡара тән төҫө',
+    '🧙🏻‍♂' => 'тылсымсы: аҡһыл тән төҫө',
+    '🧙🏼‍♂' => 'тылсымсы: уртаса аҡһыл тән төҫө',
+    '🧙🏽‍♂' => 'тылсымсы: уртаса тән төҫө',
+    '🧙🏾‍♂' => 'тылсымсы: уртаса ҡара тән төҫө',
+    '🧙🏿‍♂' => 'тылсымсы: ҡара тән төҫө',
+    '🧙🏻‍♀' => 'ҡатын-ҡыҙ тылсымсы: аҡһыл тән төҫө',
+    '🧙🏼‍♀' => 'ҡатын-ҡыҙ тылсымсы: уртаса аҡһыл тән төҫө',
+    '🧙🏽‍♀' => 'ҡатын-ҡыҙ тылсымсы: уртаса тән төҫө',
+    '🧙🏾‍♀' => 'ҡатын-ҡыҙ тылсымсы: уртаса ҡара тән төҫө',
+    '🧙🏿‍♀' => 'ҡатын-ҡыҙ тылсымсы: ҡара тән төҫө',
+    '🧚🏻‍♂' => 'ир-ат фея: аҡһыл тән төҫө',
+    '🧚🏼‍♂' => 'ир-ат фея: уртаса аҡһыл тән төҫө',
+    '🧚🏽‍♂' => 'ир-ат фея: уртаса тән төҫө',
+    '🧚🏾‍♂' => 'ир-ат фея: уртаса ҡара тән төҫө',
+    '🧚🏿‍♂' => 'ир-ат фея: ҡара тән төҫө',
+    '🧚🏻‍♀' => 'ҡатын-ҡыҙ фея: аҡһыл тән төҫө',
+    '🧚🏼‍♀' => 'ҡатын-ҡыҙ фея: уртаса аҡһыл тән төҫө',
+    '🧚🏽‍♀' => 'ҡатын-ҡыҙ фея: уртаса тән төҫө',
+    '🧚🏾‍♀' => 'ҡатын-ҡыҙ фея: уртаса ҡара тән төҫө',
+    '🧚🏿‍♀' => 'ҡатын-ҡыҙ фея: ҡара тән төҫө',
+    '🧛🏻‍♂' => 'ир-ат вампир: аҡһыл тән төҫө',
+    '🧛🏼‍♂' => 'ир-ат вампир: уртаса аҡһыл тән төҫө',
+    '🧛🏽‍♂' => 'ир-ат вампир: уртаса тән төҫө',
+    '🧛🏾‍♂' => 'ир-ат вампир: уртаса ҡара тән төҫө',
+    '🧛🏿‍♂' => 'ир-ат вампир: ҡара тән төҫө',
+    '🧛🏻‍♀' => 'ҡатын-ҡыҙ вампир: аҡһыл тән төҫө',
+    '🧛🏼‍♀' => 'ҡатын-ҡыҙ вампир: уртаса аҡһыл тән төҫө',
+    '🧛🏽‍♀' => 'ҡатын-ҡыҙ вампир: уртаса тән төҫө',
+    '🧛🏾‍♀' => 'ҡатын-ҡыҙ вампир: уртаса ҡара тән төҫө',
+    '🧛🏿‍♀' => 'ҡатын-ҡыҙ вампир: ҡара тән төҫө',
+    '🧜🏻‍♂' => 'һыу ире: аҡһыл тән төҫө',
+    '🧜🏼‍♂' => 'һыу ире: уртаса аҡһыл тән төҫө',
+    '🧜🏽‍♂' => 'һыу ире: уртаса тән төҫө',
+    '🧜🏾‍♂' => 'һыу ире: уртаса ҡара тән төҫө',
+    '🧜🏿‍♂' => 'һыу ире: ҡара тән төҫө',
+    '🧜🏻‍♀' => 'һыу ҡыҙы: аҡһыл тән төҫө',
+    '🧜🏼‍♀' => 'һыу ҡыҙы: уртаса аҡһыл тән төҫө',
+    '🧜🏽‍♀' => 'һыу ҡыҙы: уртаса тән төҫө',
+    '🧜🏾‍♀' => 'һыу ҡыҙы: уртаса ҡара тән төҫө',
+    '🧜🏿‍♀' => 'һыу ҡыҙы: ҡара тән төҫө',
+    '🧝🏻‍♂' => 'ир-ат эльф: аҡһыл тән төҫө',
+    '🧝🏼‍♂' => 'ир-ат эльф: уртаса аҡһыл тән төҫө',
+    '🧝🏽‍♂' => 'ир-ат эльф: уртаса тән төҫө',
+    '🧝🏾‍♂' => 'ир-ат эльф: уртаса ҡара тән төҫө',
+    '🧝🏿‍♂' => 'ир-ат эльф: ҡара тән төҫө',
+    '🧝🏻‍♀' => 'ҡатын-ҡыҙ эльф: аҡһыл тән төҫө',
+    '🧝🏼‍♀' => 'ҡатын-ҡыҙ эльф: уртаса аҡһыл тән төҫө',
+    '🧝🏽‍♀' => 'ҡатын-ҡыҙ эльф: уртаса тән төҫө',
+    '🧝🏾‍♀' => 'ҡатын-ҡыҙ эльф: уртаса ҡара тән төҫө',
+    '🧝🏿‍♀' => 'ҡатын-ҡыҙ эльф: ҡара тән төҫө',
+    '💆🏻‍♂' => 'массаж яһатыусы ир: аҡһыл тән төҫө',
+    '💆🏼‍♂' => 'массаж яһатыусы ир: уртаса аҡһыл тән төҫө',
+    '💆🏽‍♂' => 'массаж яһатыусы ир: уртаса тән төҫө',
+    '💆🏾‍♂' => 'массаж яһатыусы ир: уртаса ҡара тән төҫө',
+    '💆🏿‍♂' => 'массаж яһатыусы ир: ҡара тән төҫө',
+    '💆🏻‍♀' => 'массаж яһатыусы ҡатын: аҡһыл тән төҫө',
+    '💆🏼‍♀' => 'массаж яһатыусы ҡатын: уртаса аҡһыл тән төҫө',
+    '💆🏽‍♀' => 'массаж яһатыусы ҡатын: уртаса тән төҫө',
+    '💆🏾‍♀' => 'массаж яһатыусы ҡатын: уртаса ҡара тән төҫө',
+    '💆🏿‍♀' => 'массаж яһатыусы ҡатын: ҡара тән төҫө',
+    '💇🏻‍♂' => 'сәс киҫтереүсе ир: аҡһыл тән төҫө',
+    '💇🏼‍♂' => 'сәс киҫтереүсе ир: уртаса аҡһыл тән төҫө',
+    '💇🏽‍♂' => 'сәс киҫтереүсе ир: уртаса тән төҫө',
+    '💇🏾‍♂' => 'сәс киҫтереүсе ир: уртаса ҡара тән төҫө',
+    '💇🏿‍♂' => 'сәс киҫтереүсе ир: ҡара тән төҫө',
+    '💇🏻‍♀' => 'сәс киҫтереүсе ҡатын: аҡһыл тән төҫө',
+    '💇🏼‍♀' => 'сәс киҫтереүсе ҡатын: уртаса аҡһыл тән төҫө',
+    '💇🏽‍♀' => 'сәс киҫтереүсе ҡатын: уртаса тән төҫө',
+    '💇🏾‍♀' => 'сәс киҫтереүсе ҡатын: уртаса ҡара тән төҫө',
+    '💇🏿‍♀' => 'сәс киҫтереүсе ҡатын: ҡара тән төҫө',
+    '🚶🏻‍♂' => 'йөрөүсе ир-ат: аҡһыл тән төҫө',
+    '🚶🏼‍♂' => 'йөрөүсе ир-ат: уртаса аҡһыл тән төҫө',
+    '🚶🏽‍♂' => 'йөрөүсе ир-ат: уртаса тән төҫө',
+    '🚶🏾‍♂' => 'йөрөүсе ир-ат: уртаса ҡара тән төҫө',
+    '🚶🏿‍♂' => 'йөрөүсе ир-ат: ҡара тән төҫө',
+    '🚶🏻‍♀' => 'йөрөүсе ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🚶🏼‍♀' => 'йөрөүсе ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🚶🏽‍♀' => 'йөрөүсе ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🚶🏾‍♀' => 'йөрөүсе ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🚶🏿‍♀' => 'йөрөүсе ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🚶🏻‍➡' => 'йөрөүсе кеше: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🚶🏼‍➡' => 'йөрөүсе кеше: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🚶🏽‍➡' => 'йөрөүсе кеше: уртаса тән төҫө һәм уңға ҡарай',
+    '🚶🏾‍➡' => 'йөрөүсе кеше: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🚶🏿‍➡' => 'йөрөүсе кеше: ҡара тән төҫө һәм уңға ҡарай',
+    '🧍🏻‍♂' => 'баҫып торған ир: аҡһыл тән төҫө',
+    '🧍🏼‍♂' => 'баҫып торған ир: уртаса аҡһыл тән төҫө',
+    '🧍🏽‍♂' => 'баҫып торған ир: уртаса тән төҫө',
+    '🧍🏾‍♂' => 'баҫып торған ир: уртаса ҡара тән төҫө',
+    '🧍🏿‍♂' => 'баҫып торған ир: ҡара тән төҫө',
+    '🧍🏻‍♀' => 'баҫып торған ҡатын: аҡһыл тән төҫө',
+    '🧍🏼‍♀' => 'баҫып торған ҡатын: уртаса аҡһыл тән төҫө',
+    '🧍🏽‍♀' => 'баҫып торған ҡатын: уртаса тән төҫө',
+    '🧍🏾‍♀' => 'баҫып торған ҡатын: уртаса ҡара тән төҫө',
+    '🧍🏿‍♀' => 'баҫып торған ҡатын: ҡара тән төҫө',
+    '🧎🏻‍♂' => 'тубыҡланған ир: аҡһыл тән төҫө',
+    '🧎🏼‍♂' => 'тубыҡланған ир: уртаса аҡһыл тән төҫө',
+    '🧎🏽‍♂' => 'тубыҡланған ир: уртаса тән төҫө',
+    '🧎🏾‍♂' => 'тубыҡланған ир: уртаса ҡара тән төҫө',
+    '🧎🏿‍♂' => 'тубыҡланған ир: ҡара тән төҫө',
+    '🧎🏻‍♀' => 'тубыҡланған ҡатын: аҡһыл тән төҫө',
+    '🧎🏼‍♀' => 'тубыҡланған ҡатын: уртаса аҡһыл тән төҫө',
+    '🧎🏽‍♀' => 'тубыҡланған ҡатын: уртаса тән төҫө',
+    '🧎🏾‍♀' => 'тубыҡланған ҡатын: уртаса ҡара тән төҫө',
+    '🧎🏿‍♀' => 'тубыҡланған ҡатын: ҡара тән төҫө',
+    '🧎🏻‍➡' => 'тубыҡланған кеше: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧎🏼‍➡' => 'тубыҡланған кеше: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🧎🏽‍➡' => 'тубыҡланған кеше: уртаса тән төҫө һәм уңға ҡарай',
+    '🧎🏾‍➡' => 'тубыҡланған кеше: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🧎🏿‍➡' => 'тубыҡланған кеше: ҡара тән төҫө һәм уңға ҡарай',
+    '🧑🏻‍🦯' => 'аҡ таяҡлы кеше: аҡһыл тән төҫө',
+    '🧑🏼‍🦯' => 'аҡ таяҡлы кеше: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🦯' => 'аҡ таяҡлы кеше: уртаса тән төҫө',
+    '🧑🏾‍🦯' => 'аҡ таяҡлы кеше: уртаса ҡара тән төҫө',
+    '🧑🏿‍🦯' => 'аҡ таяҡлы кеше: ҡара тән төҫө',
+    '👨🏻‍🦯' => 'аҡ таяҡлы ир: аҡһыл тән төҫө',
+    '👨🏼‍🦯' => 'аҡ таяҡлы ир: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🦯' => 'аҡ таяҡлы ир: уртаса тән төҫө',
+    '👨🏾‍🦯' => 'аҡ таяҡлы ир: уртаса ҡара тән төҫө',
+    '👨🏿‍🦯' => 'аҡ таяҡлы ир: ҡара тән төҫө',
+    '👩🏻‍🦯' => 'аҡ таяҡлы ҡатын: аҡһыл тән төҫө',
+    '👩🏼‍🦯' => 'аҡ таяҡлы ҡатын: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🦯' => 'аҡ таяҡлы ҡатын: уртаса тән төҫө',
+    '👩🏾‍🦯' => 'аҡ таяҡлы ҡатын: уртаса ҡара тән төҫө',
+    '👩🏿‍🦯' => 'аҡ таяҡлы ҡатын: ҡара тән төҫө',
+    '🧑🏻‍🦼' => 'моторлы инвалид коляскаһындағы кеше: аҡһыл тән төҫө',
+    '🧑🏼‍🦼' => 'моторлы инвалид коляскаһындағы кеше: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🦼' => 'моторлы инвалид коляскаһындағы кеше: уртаса тән төҫө',
+    '🧑🏾‍🦼' => 'моторлы инвалид коляскаһындағы кеше: уртаса ҡара тән төҫө',
+    '🧑🏿‍🦼' => 'моторлы инвалид коляскаһындағы кеше: ҡара тән төҫө',
+    '👨🏻‍🦼' => 'моторлы инвалид коляскаһындағы ир: аҡһыл тән төҫө',
+    '👨🏼‍🦼' => 'моторлы инвалид коляскаһындағы ир: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🦼' => 'моторлы инвалид коляскаһындағы ир: уртаса тән төҫө',
+    '👨🏾‍🦼' => 'моторлы инвалид коляскаһындағы ир: уртаса ҡара тән төҫө',
+    '👨🏿‍🦼' => 'моторлы инвалид коляскаһындағы ир: ҡара тән төҫө',
+    '👩🏻‍🦼' => 'моторлы инвалид коляскаһындағы ҡатын: аҡһыл тән төҫө',
+    '👩🏼‍🦼' => 'моторлы инвалид коляскаһындағы ҡатын: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🦼' => 'моторлы инвалид коляскаһындағы ҡатын: уртаса тән төҫө',
+    '👩🏾‍🦼' => 'моторлы инвалид коляскаһындағы ҡатын: уртаса ҡара тән төҫө',
+    '👩🏿‍🦼' => 'моторлы инвалид коляскаһындағы ҡатын: ҡара тән төҫө',
+    '🧑🏻‍🦽' => 'инвалид коляскаһындағы кеше: аҡһыл тән төҫө',
+    '🧑🏼‍🦽' => 'инвалид коляскаһындағы кеше: уртаса аҡһыл тән төҫө',
+    '🧑🏽‍🦽' => 'инвалид коляскаһындағы кеше: уртаса тән төҫө',
+    '🧑🏾‍🦽' => 'инвалид коляскаһындағы кеше: уртаса ҡара тән төҫө',
+    '🧑🏿‍🦽' => 'инвалид коляскаһындағы кеше: ҡара тән төҫө',
+    '👨🏻‍🦽' => 'инвалид коляскаһындағы ир-ат: аҡһыл тән төҫө',
+    '👨🏼‍🦽' => 'инвалид коляскаһындағы ир-ат: уртаса аҡһыл тән төҫө',
+    '👨🏽‍🦽' => 'инвалид коляскаһындағы ир-ат: уртаса тән төҫө',
+    '👨🏾‍🦽' => 'инвалид коляскаһындағы ир-ат: уртаса ҡара тән төҫө',
+    '👨🏿‍🦽' => 'инвалид коляскаһындағы ир-ат: ҡара тән төҫө',
+    '👩🏻‍🦽' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '👩🏼‍🦽' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '👩🏽‍🦽' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: уртаса тән төҫө',
+    '👩🏾‍🦽' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '👩🏿‍🦽' => 'инвалид коляскаһындағы ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🏃🏻‍♂' => 'йүгереүсе ир: аҡһыл тән төҫө',
+    '🏃🏼‍♂' => 'йүгереүсе ир: уртаса аҡһыл тән төҫө',
+    '🏃🏽‍♂' => 'йүгереүсе ир: уртаса тән төҫө',
+    '🏃🏾‍♂' => 'йүгереүсе ир: уртаса ҡара тән төҫө',
+    '🏃🏿‍♂' => 'йүгереүсе ир: ҡара тән төҫө',
+    '🏃🏻‍♀' => 'йүгереүсе ҡатын: аҡһыл тән төҫө',
+    '🏃🏼‍♀' => 'йүгереүсе ҡатын: уртаса аҡһыл тән төҫө',
+    '🏃🏽‍♀' => 'йүгереүсе ҡатын: уртаса тән төҫө',
+    '🏃🏾‍♀' => 'йүгереүсе ҡатын: уртаса ҡара тән төҫө',
+    '🏃🏿‍♀' => 'йүгереүсе ҡатын: ҡара тән төҫө',
+    '🏃🏻‍➡' => 'йүгереүсе кеше: аҡһыл тән төҫө һәм уңға ҡарай',
+    '🏃🏼‍➡' => 'йүгереүсе кеше: уртаса аҡһыл тән төҫө һәм уңға ҡарай',
+    '🏃🏽‍➡' => 'йүгереүсе кеше: уртаса тән төҫө һәм уңға ҡарай',
+    '🏃🏾‍➡' => 'йүгереүсе кеше: уртаса ҡара тән төҫө һәм уңға ҡарай',
+    '🏃🏿‍➡' => 'йүгереүсе кеше: ҡара тән төҫө һәм уңға ҡарай',
+    '👯🏻‍♀' => 'ҡуян ҡолаҡлы ҡатындар: аҡһыл тән төҫө',
+    '👯🏼‍♀' => 'ҡуян ҡолаҡлы ҡатындар: уртаса аҡһыл тән төҫө',
+    '👯🏽‍♀' => 'ҡуян ҡолаҡлы ҡатындар: уртаса тән төҫө',
+    '👯🏾‍♀' => 'ҡуян ҡолаҡлы ҡатындар: уртаса ҡара тән төҫө',
+    '👯🏿‍♀' => 'ҡуян ҡолаҡлы ҡатындар: ҡара тән төҫө',
+    '👯🏻‍♂' => 'ҡуян ҡолаҡлы ирҙәр: аҡһыл тән төҫө',
+    '👯🏼‍♂' => 'ҡуян ҡолаҡлы ирҙәр: уртаса аҡһыл тән төҫө',
+    '👯🏽‍♂' => 'ҡуян ҡолаҡлы ирҙәр: уртаса тән төҫө',
+    '👯🏾‍♂' => 'ҡуян ҡолаҡлы ирҙәр: уртаса ҡара тән төҫө',
+    '👯🏿‍♂' => 'ҡуян ҡолаҡлы ирҙәр: ҡара тән төҫө',
+    '🧖🏻‍♂' => 'мунсалағы ир: аҡһыл тән төҫө',
+    '🧖🏼‍♂' => 'мунсалағы ир: уртаса аҡһыл тән төҫө',
+    '🧖🏽‍♂' => 'мунсалағы ир: уртаса тән төҫө',
+    '🧖🏾‍♂' => 'мунсалағы ир: уртаса ҡара тән төҫө',
+    '🧖🏿‍♂' => 'мунсалағы ир: ҡара тән төҫө',
+    '🧖🏻‍♀' => 'мунсалағы ҡатын: аҡһыл тән төҫө',
+    '🧖🏼‍♀' => 'мунсалағы ҡатын: уртаса аҡһыл тән төҫө',
+    '🧖🏽‍♀' => 'мунсалағы ҡатын: уртаса тән төҫө',
+    '🧖🏾‍♀' => 'мунсалағы ҡатын: уртаса ҡара тән төҫө',
+    '🧖🏿‍♀' => 'мунсалағы ҡатын: ҡара тән төҫө',
+    '🧗🏻‍♂' => 'ҡаяға үрмәләүсе ир: аҡһыл тән төҫө',
+    '🧗🏼‍♂' => 'ҡаяға үрмәләүсе ир: уртаса аҡһыл тән төҫө',
+    '🧗🏽‍♂' => 'ҡаяға үрмәләүсе ир: уртаса тән төҫө',
+    '🧗🏾‍♂' => 'ҡаяға үрмәләүсе ир: уртаса ҡара тән төҫө',
+    '🧗🏿‍♂' => 'ҡаяға үрмәләүсе ир: ҡара тән төҫө',
+    '🧗🏻‍♀' => 'ҡаяға үрмәләүсе ҡатын: аҡһыл тән төҫө',
+    '🧗🏼‍♀' => 'ҡаяға үрмәләүсе ҡатын: уртаса аҡһыл тән төҫө',
+    '🧗🏽‍♀' => 'ҡаяға үрмәләүсе ҡатын: уртаса тән төҫө',
+    '🧗🏾‍♀' => 'ҡаяға үрмәләүсе ҡатын: уртаса ҡара тән төҫө',
+    '🧗🏿‍♀' => 'ҡаяға үрмәләүсе ҡатын: ҡара тән төҫө',
+    '🏌🏻‍♂' => 'гольф уйнаусы ир: аҡһыл тән төҫө',
+    '🏌🏼‍♂' => 'гольф уйнаусы ир: уртаса аҡһыл тән төҫө',
+    '🏌🏽‍♂' => 'гольф уйнаусы ир: уртаса тән төҫө',
+    '🏌🏾‍♂' => 'гольф уйнаусы ир: уртаса ҡара тән төҫө',
+    '🏌🏿‍♂' => 'гольф уйнаусы ир: ҡара тән төҫө',
+    '🏌🏻‍♀' => 'гольф уйнаусы ҡатын: аҡһыл тән төҫө',
+    '🏌🏼‍♀' => 'гольф уйнаусы ҡатын: уртаса аҡһыл тән төҫө',
+    '🏌🏽‍♀' => 'гольф уйнаусы ҡатын: уртаса тән төҫө',
+    '🏌🏾‍♀' => 'гольф уйнаусы ҡатын: уртаса ҡара тән төҫө',
+    '🏌🏿‍♀' => 'гольф уйнаусы ҡатын: ҡара тән төҫө',
+    '🏄🏻‍♂' => 'серфингсы ир-ат: аҡһыл тән төҫө',
+    '🏄🏼‍♂' => 'серфингсы ир-ат: уртаса аҡһыл тән төҫө',
+    '🏄🏽‍♂' => 'серфингсы ир-ат: уртаса тән төҫө',
+    '🏄🏾‍♂' => 'серфингсы ир-ат: уртаса ҡара тән төҫө',
+    '🏄🏿‍♂' => 'серфингсы ир-ат: ҡара тән төҫө',
+    '🏄🏻‍♀' => 'серфингсы ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🏄🏼‍♀' => 'серфингсы ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🏄🏽‍♀' => 'серфингсы ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🏄🏾‍♀' => 'серфингсы ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🏄🏿‍♀' => 'серфингсы ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🚣🏻‍♂' => 'кәмә ишеүсе ир: аҡһыл тән төҫө',
+    '🚣🏼‍♂' => 'кәмә ишеүсе ир: уртаса аҡһыл тән төҫө',
+    '🚣🏽‍♂' => 'кәмә ишеүсе ир: уртаса тән төҫө',
+    '🚣🏾‍♂' => 'кәмә ишеүсе ир: уртаса ҡара тән төҫө',
+    '🚣🏿‍♂' => 'кәмә ишеүсе ир: ҡара тән төҫө',
+    '🚣🏻‍♀' => 'кәмә ишеүсе ҡатын: аҡһыл тән төҫө',
+    '🚣🏼‍♀' => 'кәмә ишеүсе ҡатын: уртаса аҡһыл тән төҫө',
+    '🚣🏽‍♀' => 'кәмә ишеүсе ҡатын: уртаса тән төҫө',
+    '🚣🏾‍♀' => 'кәмә ишеүсе ҡатын: уртаса ҡара тән төҫө',
+    '🚣🏿‍♀' => 'кәмә ишеүсе ҡатын: ҡара тән төҫө',
+    '🏊🏻‍♂' => 'йөҙөүсе ир: аҡһыл тән төҫө',
+    '🏊🏼‍♂' => 'йөҙөүсе ир: уртаса аҡһыл тән төҫө',
+    '🏊🏽‍♂' => 'йөҙөүсе ир: уртаса тән төҫө',
+    '🏊🏾‍♂' => 'йөҙөүсе ир: уртаса ҡара тән төҫө',
+    '🏊🏿‍♂' => 'йөҙөүсе ир: ҡара тән төҫө',
+    '🏊🏻‍♀' => 'йөҙөүсе ҡатын: аҡһыл тән төҫө',
+    '🏊🏼‍♀' => 'йөҙөүсе ҡатын: уртаса аҡһыл тән төҫө',
+    '🏊🏽‍♀' => 'йөҙөүсе ҡатын: уртаса тән төҫө',
+    '🏊🏾‍♀' => 'йөҙөүсе ҡатын: уртаса ҡара тән төҫө',
+    '🏊🏿‍♀' => 'йөҙөүсе ҡатын: ҡара тән төҫө',
+    '⛹🏻‍♂' => 'туп һуғыусы ир: аҡһыл тән төҫө',
+    '⛹🏼‍♂' => 'туп һуғыусы ир: уртаса аҡһыл тән төҫө',
+    '⛹🏽‍♂' => 'туп һуғыусы ир: уртаса тән төҫө',
+    '⛹🏾‍♂' => 'туп һуғыусы ир: уртаса ҡара тән төҫө',
+    '⛹🏿‍♂' => 'туп һуғыусы ир: ҡара тән төҫө',
+    '⛹🏻‍♀' => 'туп һуғыусы ҡатын: аҡһыл тән төҫө',
+    '⛹🏼‍♀' => 'туп һуғыусы ҡатын: уртаса аҡһыл тән төҫө',
+    '⛹🏽‍♀' => 'туп һуғыусы ҡатын: уртаса тән төҫө',
+    '⛹🏾‍♀' => 'туп һуғыусы ҡатын: уртаса ҡара тән төҫө',
+    '⛹🏿‍♀' => 'туп һуғыусы ҡатын: ҡара тән төҫө',
+    '🏋🏻‍♂' => 'ауыр атлетика менән шөғөлләнеүсе ир: аҡһыл тән төҫө',
+    '🏋🏼‍♂' => 'ауыр атлетика менән шөғөлләнеүсе ир: уртаса аҡһыл тән төҫө',
+    '🏋🏽‍♂' => 'ауыр атлетика менән шөғөлләнеүсе ир: уртаса тән төҫө',
+    '🏋🏾‍♂' => 'ауыр атлетика менән шөғөлләнеүсе ир: уртаса ҡара тән төҫө',
+    '🏋🏿‍♂' => 'ауыр атлетика менән шөғөлләнеүсе ир: ҡара тән төҫө',
+    '🏋🏻‍♀' => 'ауыр атлетика менән шөғөлләнеүсе ҡатын: аҡһыл тән төҫө',
+    '🏋🏼‍♀' => 'ауыр атлетика менән шөғөлләнеүсе ҡатын: уртаса аҡһыл тән төҫө',
+    '🏋🏽‍♀' => 'ауыр атлетика менән шөғөлләнеүсе ҡатын: уртаса тән төҫө',
+    '🏋🏾‍♀' => 'ауыр атлетика менән шөғөлләнеүсе ҡатын: уртаса ҡара тән төҫө',
+    '🏋🏿‍♀' => 'ауыр атлетика менән шөғөлләнеүсе ҡатын: ҡара тән төҫө',
+    '🚴🏻‍♂' => 'велосипедта йөрөүсе ир-ат: аҡһыл тән төҫө',
+    '🚴🏼‍♂' => 'велосипедта йөрөүсе ир-ат: уртаса аҡһыл тән төҫө',
+    '🚴🏽‍♂' => 'велосипедта йөрөүсе ир-ат: уртаса тән төҫө',
+    '🚴🏾‍♂' => 'велосипедта йөрөүсе ир-ат: уртаса ҡара тән төҫө',
+    '🚴🏿‍♂' => 'велосипедта йөрөүсе ир-ат: ҡара тән төҫө',
+    '🚴🏻‍♀' => 'велосипедта йөрөүсе ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🚴🏼‍♀' => 'велосипедта йөрөүсе ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🚴🏽‍♀' => 'велосипедта йөрөүсе ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🚴🏾‍♀' => 'велосипедта йөрөүсе ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🚴🏿‍♀' => 'велосипедта йөрөүсе ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🚵🏻‍♂' => 'тау велосипедында йөрөүсе ир-ат: аҡһыл тән төҫө',
+    '🚵🏼‍♂' => 'тау велосипедында йөрөүсе ир-ат: уртаса аҡһыл тән төҫө',
+    '🚵🏽‍♂' => 'тау велосипедында йөрөүсе ир-ат: уртаса тән төҫө',
+    '🚵🏾‍♂' => 'тау велосипедында йөрөүсе ир-ат: уртаса ҡара тән төҫө',
+    '🚵🏿‍♂' => 'тау велосипедында йөрөүсе ир-ат: ҡара тән төҫө',
+    '🚵🏻‍♀' => 'тау велосипедында йөрөүсе ҡатын-ҡыҙ: аҡһыл тән төҫө',
+    '🚵🏼‍♀' => 'тау велосипедында йөрөүсе ҡатын-ҡыҙ: уртаса аҡһыл тән төҫө',
+    '🚵🏽‍♀' => 'тау велосипедында йөрөүсе ҡатын-ҡыҙ: уртаса тән төҫө',
+    '🚵🏾‍♀' => 'тау велосипедында йөрөүсе ҡатын-ҡыҙ: уртаса ҡара тән төҫө',
+    '🚵🏿‍♀' => 'тау велосипедында йөрөүсе ҡатын-ҡыҙ: ҡара тән төҫө',
+    '🤸🏻‍♂' => 'ир ҡулдан ҡулға әйләнә: аҡһыл тән төҫө',
+    '🤸🏼‍♂' => 'ир ҡулдан ҡулға әйләнә: уртаса аҡһыл тән төҫө',
+    '🤸🏽‍♂' => 'ир ҡулдан ҡулға әйләнә: уртаса тән төҫө',
+    '🤸🏾‍♂' => 'ир ҡулдан ҡулға әйләнә: уртаса ҡара тән төҫө',
+    '🤸🏿‍♂' => 'ир ҡулдан ҡулға әйләнә: ҡара тән төҫө',
+    '🤸🏻‍♀' => 'ҡатын ҡулдан ҡулға әйләнә: аҡһыл тән төҫө',
+    '🤸🏼‍♀' => 'ҡатын ҡулдан ҡулға әйләнә: уртаса аҡһыл тән төҫө',
+    '🤸🏽‍♀' => 'ҡатын ҡулдан ҡулға әйләнә: уртаса тән төҫө',
+    '🤸🏾‍♀' => 'ҡатын ҡулдан ҡулға әйләнә: уртаса ҡара тән төҫө',
+    '🤸🏿‍♀' => 'ҡатын ҡулдан ҡулға әйләнә: ҡара тән төҫө',
+    '🤼🏻‍♀' => 'ҡатын-ҡыҙ көрәшселәр: аҡһыл тән төҫө',
+    '🤼🏼‍♀' => 'ҡатын-ҡыҙ көрәшселәр: уртаса аҡһыл тән төҫө',
+    '🤼🏽‍♀' => 'ҡатын-ҡыҙ көрәшселәр: уртаса тән төҫө',
+    '🤼🏾‍♀' => 'ҡатын-ҡыҙ көрәшселәр: уртаса ҡара тән төҫө',
+    '🤼🏿‍♀' => 'ҡатын-ҡыҙ көрәшселәр: ҡара тән төҫө',
+    '🤼🏻‍♂' => 'ир-ат көрәшселәр: аҡһыл тән төҫө',
+    '🤼🏼‍♂' => 'ир-ат көрәшселәр: уртаса аҡһыл тән төҫө',
+    '🤼🏽‍♂' => 'ир-ат көрәшселәр: уртаса тән төҫө',
+    '🤼🏾‍♂' => 'ир-ат көрәшселәр: уртаса ҡара тән төҫө',
+    '🤼🏿‍♂' => 'ир-ат көрәшселәр: ҡара тән төҫө',
+    '🤽🏻‍♂' => 'ир һыу полоһы уйнай: аҡһыл тән төҫө',
+    '🤽🏼‍♂' => 'ир һыу полоһы уйнай: уртаса аҡһыл тән төҫө',
+    '🤽🏽‍♂' => 'ир һыу полоһы уйнай: уртаса тән төҫө',
+    '🤽🏾‍♂' => 'ир һыу полоһы уйнай: уртаса ҡара тән төҫө',
+    '🤽🏿‍♂' => 'ир һыу полоһы уйнай: ҡара тән төҫө',
+    '🤽🏻‍♀' => 'ҡатын һыу полоһы уйнай: аҡһыл тән төҫө',
+    '🤽🏼‍♀' => 'ҡатын һыу полоһы уйнай: уртаса аҡһыл тән төҫө',
+    '🤽🏽‍♀' => 'ҡатын һыу полоһы уйнай: уртаса тән төҫө',
+    '🤽🏾‍♀' => 'ҡатын һыу полоһы уйнай: уртаса ҡара тән төҫө',
+    '🤽🏿‍♀' => 'ҡатын һыу полоһы уйнай: ҡара тән төҫө',
+    '🤾🏻‍♂' => 'ир гандбол уйнай: аҡһыл тән төҫө',
+    '🤾🏼‍♂' => 'ир гандбол уйнай: уртаса аҡһыл тән төҫө',
+    '🤾🏽‍♂' => 'ир гандбол уйнай: уртаса тән төҫө',
+    '🤾🏾‍♂' => 'ир гандбол уйнай: уртаса ҡара тән төҫө',
+    '🤾🏿‍♂' => 'ир гандбол уйнай: ҡара тән төҫө',
+    '🤾🏻‍♀' => 'ҡатын гандбол уйнай: аҡһыл тән төҫө',
+    '🤾🏼‍♀' => 'ҡатын гандбол уйнай: уртаса аҡһыл тән төҫө',
+    '🤾🏽‍♀' => 'ҡатын гандбол уйнай: уртаса тән төҫө',
+    '🤾🏾‍♀' => 'ҡатын гандбол уйнай: уртаса ҡара тән төҫө',
+    '🤾🏿‍♀' => 'ҡатын гандбол уйнай: ҡара тән төҫө',
+    '🤹🏻‍♂' => 'ир жонглерлыҡ итә: аҡһыл тән төҫө',
+    '🤹🏼‍♂' => 'ир жонглерлыҡ итә: уртаса аҡһыл тән төҫө',
+    '🤹🏽‍♂' => 'ир жонглерлыҡ итә: уртаса тән төҫө',
+    '🤹🏾‍♂' => 'ир жонглерлыҡ итә: уртаса ҡара тән төҫө',
+    '🤹🏿‍♂' => 'ир жонглерлыҡ итә: ҡара тән төҫө',
+    '🤹🏻‍♀' => 'ҡатын жонглерлыҡ итә: аҡһыл тән төҫө',
+    '🤹🏼‍♀' => 'ҡатын жонглерлыҡ итә: уртаса аҡһыл тән төҫө',
+    '🤹🏽‍♀' => 'ҡатын жонглерлыҡ итә: уртаса тән төҫө',
+    '🤹🏾‍♀' => 'ҡатын жонглерлыҡ итә: уртаса ҡара тән төҫө',
+    '🤹🏿‍♀' => 'ҡатын жонглерлыҡ итә: ҡара тән төҫө',
+    '🧘🏻‍♂' => 'лотос позаһындағы ир: аҡһыл тән төҫө',
+    '🧘🏼‍♂' => 'лотос позаһындағы ир: уртаса аҡһыл тән төҫө',
+    '🧘🏽‍♂' => 'лотос позаһындағы ир: уртаса тән төҫө',
+    '🧘🏾‍♂' => 'лотос позаһындағы ир: уртаса ҡара тән төҫө',
+    '🧘🏿‍♂' => 'лотос позаһындағы ир: ҡара тән төҫө',
+    '🧘🏻‍♀' => 'лотос позаһындағы ҡатын: аҡһыл тән төҫө',
+    '🧘🏼‍♀' => 'лотос позаһындағы ҡатын: уртаса аҡһыл тән төҫө',
+    '🧘🏽‍♀' => 'лотос позаһындағы ҡатын: уртаса тән төҫө',
+    '🧘🏾‍♀' => 'лотос позаһындағы ҡатын: уртаса ҡара тән төҫө',
+    '🧘🏿‍♀' => 'лотос позаһындағы ҡатын: ҡара тән төҫө',
+    '🧑‍🦰' => 'өлкән: ерән сәс',
+    '🧑‍🦱' => 'өлкән: бөҙрә сәс',
+    '🧑‍🦳' => 'өлкән: аҡ сәс',
+    '🧑‍🦲' => 'өлкән: таҙ',
+    '👨‍🦰' => 'ир: ерән сәс',
+    '👨‍🦱' => 'ир: бөҙрә сәс',
+    '👨‍🦳' => 'ир: аҡ сәс',
+    '👨‍🦲' => 'ир: таҙ',
+    '👩‍🦰' => 'ҡатын: ерән сәс',
+    '👩‍🦱' => 'ҡатын: бөҙрә сәс',
+    '👩‍🦳' => 'ҡатын: аҡ сәс',
+    '👩‍🦲' => 'ҡатын: таҙ',
+    '🚶‍➡' => 'йөрөүсе кеше: уңға ҡарай',
+    '🧎‍➡' => 'тубыҡланған кеше: уңға ҡарай',
+    '🏃‍➡' => 'йүгереүсе кеше: уңға ҡарай',
+    '👨‍👦' => 'ғаилә: ир һәм малай',
+    '👨‍👧' => 'ғаилә: ир һәм ҡыҙ',
+    '👩‍👦' => 'ғаилә: ҡатын һәм малай',
+    '👩‍👧' => 'ғаилә: ҡатын һәм ҡыҙ',
+    '😮‍💨' => 'һулыш сығарыусы йөҙ',
+    '🙂‍↕' => 'вертикаль баш сайҡау',
+    '😵‍💫' => 'спираль күҙҙәр менән йөҙ',
+    '❤‍🔥' => 'янған йөрәк',
+    '❤‍🩹' => 'төҙәлеүсе йөрәк',
+    '👁‍🗨' => 'һөйләшеү ҡыуығында күҙ',
+    '🧔‍♂' => 'һаҡаллы ир',
+    '👱‍♂' => 'ир: аҡһыл сәсле',
+    '🧔‍♀' => 'һаҡаллы ҡатын',
+    '👱‍♀' => 'ҡатын: аҡһыл сәсле',
+    '🙍‍♂' => 'йөҙ сирыусы ир-ат',
+    '🙍‍♀' => 'йөҙ сирыусы ҡатын-ҡыҙ',
+    '🙎‍♂' => 'ирен сирыусы ир-ат',
+    '🙎‍♀' => 'ирен сирыусы ҡатын-ҡыҙ',
+    '🙅‍♂' => 'ЮҠ тип ымлаусы ир-ат',
+    '🙅‍♀' => 'ЮҠ тип ымлаусы ҡатын-ҡыҙ',
+    '🙆‍♂' => 'ЯҠШЫ тип ымлаусы ир-ат',
+    '🙆‍♀' => 'ЯҠШЫ тип ымлаусы ҡатын-ҡыҙ',
+    '💁‍♂' => 'ҡул һуҙған ир',
+    '💁‍♀' => 'ҡул һуҙған ҡатын',
+    '🙋‍♂' => 'ҡул күтәреүсе ир-ат',
+    '🙋‍♀' => 'ҡул күтәреүсе ҡатын-ҡыҙ',
+    '🧏‍♂' => 'һаңғырау ир',
+    '🧏‍♀' => 'һаңғырау ҡатын',
+    '🙇‍♂' => 'баш эйеүсе ир-ат',
+    '🙇‍♀' => 'баш эйеүсе ҡатын-ҡыҙ',
+    '🤦‍♂' => 'йөҙөн ҡул менән ҡаплаусы ир-ат',
+    '🤦‍♀' => 'йөҙөн ҡул менән ҡаплаусы ҡатын-ҡыҙ',
+    '🤷‍♂' => 'ир яурынын һикертә',
+    '🤷‍♀' => 'ҡатын яурынын һикертә',
+    '🧑‍⚕' => 'һаулыҡ һаҡлау хеҙмәткәре',
+    '👨‍⚕' => 'ир-ат медицина хеҙмәткәре',
+    '👩‍⚕' => 'ҡатын-ҡыҙ медицина хеҙмәткәре',
+    '🧑‍🎓' => 'студент',
+    '👨‍🎓' => 'ир-ат студент',
+    '👩‍🎓' => 'ҡатын-ҡыҙ студент',
+    '🧑‍🏫' => 'уҡытыусы',
+    '👨‍🏫' => 'ир-ат уҡытыусы',
+    '👩‍🏫' => 'ҡатын-ҡыҙ уҡытыусы',
+    '🧑‍⚖' => 'хөкөмсө',
+    '👨‍⚖' => 'ир-ат хөкөмсө',
+    '👩‍⚖' => 'ҡатын-ҡыҙ хөкөмсө',
+    '🧑‍🌾' => 'фермер',
+    '👨‍🌾' => 'ир-ат фермер',
+    '👩‍🌾' => 'ҡатын-ҡыҙ фермер',
+    '🧑‍🍳' => 'ашнаҡсы',
+    '👨‍🍳' => 'ир-ат ашнаҡсы',
+    '👩‍🍳' => 'ҡатын-ҡыҙ ашнаҡсы',
+    '🧑‍🔧' => 'механик',
+    '👨‍🔧' => 'ир-ат механик',
+    '👩‍🔧' => 'ҡатын-ҡыҙ механик',
+    '🧑‍🏭' => 'завод эшсеһе',
+    '👨‍🏭' => 'ир-ат завод эшсеһе',
+    '👩‍🏭' => 'ҡатын-ҡыҙ завод эшсеһе',
+    '🧑‍💼' => 'офис хеҙмәткәре',
+    '👨‍💼' => 'ир-ат офис эшсеһе',
+    '👩‍💼' => 'ҡатын-ҡыҙ офис эшсеһе',
+    '🧑‍🔬' => 'ғалим',
+    '👨‍🔬' => 'ир-ат ғалим',
+    '👩‍🔬' => 'ҡатын-ҡыҙ ғалим',
+    '🧑‍💻' => 'технолог',
+    '👨‍💻' => 'ир-ат технолог',
+    '👩‍💻' => 'ҡатын-ҡыҙ технолог',
+    '🧑‍🎤' => 'йырсы',
+    '👨‍🎤' => 'ир-ат йырсы',
+    '👩‍🎤' => 'ҡатын-ҡыҙ йырсы',
+    '🧑‍🎨' => 'рәссам',
+    '👨‍🎨' => 'ир-ат рәссам',
+    '👩‍🎨' => 'ҡатын-ҡыҙ рәссам',
+    '🧑‍✈' => 'пилот',
+    '👨‍✈' => 'ир-ат пилот',
+    '👩‍✈' => 'ҡатын-ҡыҙ пилот',
+    '🧑‍🚀' => 'космонавт',
+    '👨‍🚀' => 'ир-ат космонавт',
+    '👩‍🚀' => 'ҡатын-ҡыҙ космонавт',
+    '🧑‍🚒' => 'янғын һүндереүсе',
+    '👨‍🚒' => 'ир-ат янғын һүндереүсе',
+    '👩‍🚒' => 'ҡатын-ҡыҙ янғын һүндереүсе',
+    '👮‍♂' => 'ир-ат полиция хеҙмәткәре',
+    '👮‍♀' => 'ҡатын-ҡыҙ полиция хеҙмәткәре',
+    '🕵‍♂' => 'ир-ат детектив',
+    '🕵‍♀' => 'ҡатын-ҡыҙ детектив',
+    '💂‍♂' => 'ир-ат һаҡсы',
+    '💂‍♀' => 'ҡатын-ҡыҙ һаҡсы',
+    '👷‍♂' => 'ир-ат төҙөүсе',
+    '👷‍♀' => 'ҡатын-ҡыҙ төҙөүсе',
+    '👳‍♂' => 'салма кейгән ир',
+    '👳‍♀' => 'салма кейгән ҡатын',
+    '🤵‍♂' => 'смокингтағы ир',
+    '🤵‍♀' => 'смокингтағы ҡатын',
+    '👰‍♂' => 'фаталы ир',
+    '👰‍♀' => 'фаталы ҡатын',
+    '👩‍🍼' => 'балаһын ашатҡан ҡатын',
+    '👨‍🍼' => 'балаһын ашатҡан ир',
+    '🧑‍🍼' => 'балаһын ашатҡан кеше',
+    '🧑‍🎄' => 'Mx Клаус',
+    '🦸‍♂' => 'ир-ат супергерой',
+    '🦸‍♀' => 'ҡатын-ҡыҙ супергерой',
+    '🦹‍♂' => 'ир-ат супер яуыз',
+    '🦹‍♀' => 'ҡатын-ҡыҙ супер яуыз',
+    '🧙‍♂' => 'тылсымсы',
+    '🧙‍♀' => 'ҡатын-ҡыҙ тылсымсы',
+    '🧚‍♂' => 'ир-ат фея',
+    '🧚‍♀' => 'ҡатын-ҡыҙ фея',
+    '🧛‍♂' => 'ир-ат вампир',
+    '🧛‍♀' => 'ҡатын-ҡыҙ вампир',
+    '🧜‍♂' => 'һыу ире',
+    '🧜‍♀' => 'һыу ҡыҙы',
+    '🧝‍♂' => 'ир-ат эльф',
+    '🧝‍♀' => 'ҡатын-ҡыҙ эльф',
+    '🧞‍♂' => 'ир-ат джин',
+    '🧞‍♀' => 'ҡатын-ҡыҙ джин',
+    '🧟‍♂' => 'ир-ат зомби',
+    '🧟‍♀' => 'ҡатын-ҡыҙ зомби',
+    '💆‍♂' => 'массаж яһатыусы ир',
+    '💆‍♀' => 'массаж яһатыусы ҡатын',
+    '💇‍♂' => 'сәс киҫтереүсе ир',
+    '💇‍♀' => 'сәс киҫтереүсе ҡатын',
+    '🚶‍♂' => 'йөрөүсе ир-ат',
+    '🚶‍♀' => 'йөрөүсе ҡатын-ҡыҙ',
+    '🧍‍♂' => 'баҫып торған ир',
+    '🧍‍♀' => 'баҫып торған ҡатын',
+    '🧎‍♂' => 'тубыҡланған ир',
+    '🧎‍♀' => 'тубыҡланған ҡатын',
+    '🧑‍🦯' => 'аҡ таяҡлы кеше',
+    '👨‍🦯' => 'аҡ таяҡлы ир',
+    '👩‍🦯' => 'аҡ таяҡлы ҡатын',
+    '🧑‍🦼' => 'моторлы инвалид коляскаһындағы кеше',
+    '👨‍🦼' => 'моторлы инвалид коляскаһындағы ир',
+    '👩‍🦼' => 'моторлы инвалид коляскаһындағы ҡатын',
+    '🧑‍🦽' => 'инвалид коляскаһындағы кеше',
+    '👨‍🦽' => 'инвалид коляскаһындағы ир-ат',
+    '👩‍🦽' => 'инвалид коляскаһындағы ҡатын-ҡыҙ',
+    '🏃‍♂' => 'йүгереүсе ир',
+    '🏃‍♀' => 'йүгереүсе ҡатын',
+    '🧑‍🩰' => 'балет бейеүсеһе',
+    '👯‍♂' => 'ҡуян ҡолаҡлы ирҙәр',
+    '👯‍♀' => 'ҡуян ҡолаҡлы ҡатындар',
+    '🧖‍♂' => 'мунсалағы ир',
+    '🧖‍♀' => 'мунсалағы ҡатын',
+    '🧗‍♂' => 'ҡаяға үрмәләүсе ир',
+    '🧗‍♀' => 'ҡаяға үрмәләүсе ҡатын',
+    '🏌‍♂' => 'гольф уйнаусы ир',
+    '🏌‍♀' => 'гольф уйнаусы ҡатын',
+    '🏄‍♂' => 'серфингсы ир-ат',
+    '🏄‍♀' => 'серфингсы ҡатын-ҡыҙ',
+    '🚣‍♂' => 'кәмә ишеүсе ир',
+    '🚣‍♀' => 'кәмә ишеүсе ҡатын',
+    '🏊‍♂' => 'йөҙөүсе ир',
+    '🏊‍♀' => 'йөҙөүсе ҡатын',
+    '⛹‍♂' => 'туп һуғыусы ир',
+    '⛹‍♀' => 'туп һуғыусы ҡатын',
+    '🏋‍♂' => 'ауыр атлетика менән шөғөлләнеүсе ир',
+    '🏋‍♀' => 'ауыр атлетика менән шөғөлләнеүсе ҡатын',
+    '🚴‍♂' => 'велосипедта йөрөүсе ир-ат',
+    '🚴‍♀' => 'велосипедта йөрөүсе ҡатын-ҡыҙ',
+    '🚵‍♂' => 'тау велосипедында йөрөүсе ир-ат',
+    '🚵‍♀' => 'тау велосипедында йөрөүсе ҡатын-ҡыҙ',
+    '🤸‍♂' => 'ир ҡулдан ҡулға әйләнә',
+    '🤸‍♀' => 'ҡатын ҡулдан ҡулға әйләнә',
+    '🤼‍♂' => 'ир-ат көрәшселәр',
+    '🤼‍♀' => 'ҡатын-ҡыҙ көрәшселәр',
+    '🤽‍♂' => 'ир һыу полоһы уйнай',
+    '🤽‍♀' => 'ҡатын һыу полоһы уйнай',
+    '🤾‍♂' => 'ир гандбол уйнай',
+    '🤾‍♀' => 'ҡатын гандбол уйнай',
+    '🤹‍♂' => 'ир жонглерлыҡ итә',
+    '🤹‍♀' => 'ҡатын жонглерлыҡ итә',
+    '🧘‍♂' => 'лотос позаһындағы ир',
+    '🧘‍♀' => 'лотос позаһындағы ҡатын',
+    '🧑‍🧒' => 'ғаилә: өлкән һәм бала',
+    '🐕‍🦺' => 'хеҙмәт эте',
+    '🐈‍⬛' => 'ҡара бесәй',
+    '🐻‍❄' => 'аҡ айыу башы',
+    '🐦‍⬛' => 'ҡара ҡош',
+    '🐦‍🔥' => 'феникс',
+    '🍋‍🟩' => 'лайм',
+    '🍄‍🟫' => 'көрән бәшмәк',
+    '⛓‍💥' => 'эшләмәгән һылтанма',
+    '🏳‍🌈' => 'йәйғор флагы',
+    '🏳‍⚧' => 'трансгендер флагы',
+    '🏴‍☠' => 'пират флагы',
+    '👋🏻' => 'ҡул болғау: аҡһыл тән төҫө',
+    '👋🏼' => 'ҡул болғау: уртаса аҡһыл тән төҫө',
+    '👋🏽' => 'ҡул болғау: уртаса тән төҫө',
+    '👋🏾' => 'ҡул болғау: уртаса ҡара тән төҫө',
+    '👋🏿' => 'ҡул болғау: ҡара тән төҫө',
+    '🤚🏻' => 'күтәрелгән ҡул арҡаһы: аҡһыл тән төҫө',
+    '🤚🏼' => 'күтәрелгән ҡул арҡаһы: уртаса аҡһыл тән төҫө',
+    '🤚🏽' => 'күтәрелгән ҡул арҡаһы: уртаса тән төҫө',
+    '🤚🏾' => 'күтәрелгән ҡул арҡаһы: уртаса ҡара тән төҫө',
+    '🤚🏿' => 'күтәрелгән ҡул арҡаһы: ҡара тән төҫө',
+    '🖐🏻' => 'бармаҡтары йәйелгән ҡул: аҡһыл тән төҫө',
+    '🖐🏼' => 'бармаҡтары йәйелгән ҡул: уртаса аҡһыл тән төҫө',
+    '🖐🏽' => 'бармаҡтары йәйелгән ҡул: уртаса тән төҫө',
+    '🖐🏾' => 'бармаҡтары йәйелгән ҡул: уртаса ҡара тән төҫө',
+    '🖐🏿' => 'бармаҡтары йәйелгән ҡул: ҡара тән төҫө',
+    '✋🏻' => 'күтәрелгән ҡул: аҡһыл тән төҫө',
+    '✋🏼' => 'күтәрелгән ҡул: уртаса аҡһыл тән төҫө',
+    '✋🏽' => 'күтәрелгән ҡул: уртаса тән төҫө',
+    '✋🏾' => 'күтәрелгән ҡул: уртаса ҡара тән төҫө',
+    '✋🏿' => 'күтәрелгән ҡул: ҡара тән төҫө',
+    '🖖🏻' => 'вулкан сәләме: аҡһыл тән төҫө',
+    '🖖🏼' => 'вулкан сәләме: уртаса аҡһыл тән төҫө',
+    '🖖🏽' => 'вулкан сәләме: уртаса тән төҫө',
+    '🖖🏾' => 'вулкан сәләме: уртаса ҡара тән төҫө',
+    '🖖🏿' => 'вулкан сәләме: ҡара тән төҫө',
+    '🫱🏻' => 'уңға ҡул: аҡһыл тән төҫө',
+    '🫱🏼' => 'уңға ҡул: уртаса аҡһыл тән төҫө',
+    '🫱🏽' => 'уңға ҡул: уртаса тән төҫө',
+    '🫱🏾' => 'уңға ҡул: уртаса ҡара тән төҫө',
+    '🫱🏿' => 'уңға ҡул: ҡара тән төҫө',
+    '🫲🏻' => 'һулға ҡул: аҡһыл тән төҫө',
+    '🫲🏼' => 'һулға ҡул: уртаса аҡһыл тән төҫө',
+    '🫲🏽' => 'һулға ҡул: уртаса тән төҫө',
+    '🫲🏾' => 'һулға ҡул: уртаса ҡара тән төҫө',
+    '🫲🏿' => 'һулға ҡул: ҡара тән төҫө',
+    '🫳🏻' => 'ус төбө аҫҡа ҡараған ҡул: аҡһыл тән төҫө',
+    '🫳🏼' => 'ус төбө аҫҡа ҡараған ҡул: уртаса аҡһыл тән төҫө',
+    '🫳🏽' => 'ус төбө аҫҡа ҡараған ҡул: уртаса тән төҫө',
+    '🫳🏾' => 'ус төбө аҫҡа ҡараған ҡул: уртаса ҡара тән төҫө',
+    '🫳🏿' => 'ус төбө аҫҡа ҡараған ҡул: ҡара тән төҫө',
+    '🫴🏻' => 'ус төбө өҫкә ҡараған ҡул: аҡһыл тән төҫө',
+    '🫴🏼' => 'ус төбө өҫкә ҡараған ҡул: уртаса аҡһыл тән төҫө',
+    '🫴🏽' => 'ус төбө өҫкә ҡараған ҡул: уртаса тән төҫө',
+    '🫴🏾' => 'ус төбө өҫкә ҡараған ҡул: уртаса ҡара тән төҫө',
+    '🫴🏿' => 'ус төбө өҫкә ҡараған ҡул: ҡара тән төҫө',
+    '🫷🏻' => 'һулға этәреүсе ҡул: аҡһыл тән төҫө',
+    '🫷🏼' => 'һулға этәреүсе ҡул: уртаса аҡһыл тән төҫө',
+    '🫷🏽' => 'һулға этәреүсе ҡул: уртаса тән төҫө',
+    '🫷🏾' => 'һулға этәреүсе ҡул: уртаса ҡара тән төҫө',
+    '🫷🏿' => 'һулға этәреүсе ҡул: ҡара тән төҫө',
+    '🫸🏻' => 'уңға этәреүсе ҡул: аҡһыл тән төҫө',
+    '🫸🏼' => 'уңға этәреүсе ҡул: уртаса аҡһыл тән төҫө',
+    '🫸🏽' => 'уңға этәреүсе ҡул: уртаса тән төҫө',
+    '🫸🏾' => 'уңға этәреүсе ҡул: уртаса ҡара тән төҫө',
+    '🫸🏿' => 'уңға этәреүсе ҡул: ҡара тән төҫө',
+    '👌🏻' => 'OK ҡул: аҡһыл тән төҫө',
+    '👌🏼' => 'OK ҡул: уртаса аҡһыл тән төҫө',
+    '👌🏽' => 'OK ҡул: уртаса тән төҫө',
+    '👌🏾' => 'OK ҡул: уртаса ҡара тән төҫө',
+    '👌🏿' => 'OK ҡул: ҡара тән төҫө',
+    '🤌🏻' => 'ҡыҫылған бармаҡтар: аҡһыл тән төҫө',
+    '🤌🏼' => 'ҡыҫылған бармаҡтар: уртаса аҡһыл тән төҫө',
+    '🤌🏽' => 'ҡыҫылған бармаҡтар: уртаса тән төҫө',
+    '🤌🏾' => 'ҡыҫылған бармаҡтар: уртаса ҡара тән төҫө',
+    '🤌🏿' => 'ҡыҫылған бармаҡтар: ҡара тән төҫө',
+    '🤏🏻' => 'ҡыҫыусы ҡул: аҡһыл тән төҫө',
+    '🤏🏼' => 'ҡыҫыусы ҡул: уртаса аҡһыл тән төҫө',
+    '🤏🏽' => 'ҡыҫыусы ҡул: уртаса тән төҫө',
+    '🤏🏾' => 'ҡыҫыусы ҡул: уртаса ҡара тән төҫө',
+    '🤏🏿' => 'ҡыҫыусы ҡул: ҡара тән төҫө',
+    '✌🏻' => 'еңеү ҡулы: аҡһыл тән төҫө',
+    '✌🏼' => 'еңеү ҡулы: уртаса аҡһыл тән төҫө',
+    '✌🏽' => 'еңеү ҡулы: уртаса тән төҫө',
+    '✌🏾' => 'еңеү ҡулы: уртаса ҡара тән төҫө',
+    '✌🏿' => 'еңеү ҡулы: ҡара тән төҫө',
+    '🤞🏻' => 'киҫешкән бармаҡтар: аҡһыл тән төҫө',
+    '🤞🏼' => 'киҫешкән бармаҡтар: уртаса аҡһыл тән төҫө',
+    '🤞🏽' => 'киҫешкән бармаҡтар: уртаса тән төҫө',
+    '🤞🏾' => 'киҫешкән бармаҡтар: уртаса ҡара тән төҫө',
+    '🤞🏿' => 'киҫешкән бармаҡтар: ҡара тән төҫө',
+    '🫰🏻' => 'аҡса ишаралаусы ҡул: аҡһыл тән төҫө',
+    '🫰🏼' => 'аҡса ишаралаусы ҡул: уртаса аҡһыл тән төҫө',
+    '🫰🏽' => 'аҡса ишаралаусы ҡул: уртаса тән төҫө',
+    '🫰🏾' => 'аҡса ишаралаусы ҡул: уртаса ҡара тән төҫө',
+    '🫰🏿' => 'аҡса ишаралаусы ҡул: ҡара тән төҫө',
+    '🤟🏻' => 'мин һине яратам ымлауы: аҡһыл тән төҫө',
+    '🤟🏼' => 'мин һине яратам ымлауы: уртаса аҡһыл тән төҫө',
+    '🤟🏽' => 'мин һине яратам ымлауы: уртаса тән төҫө',
+    '🤟🏾' => 'мин һине яратам ымлауы: уртаса ҡара тән төҫө',
+    '🤟🏿' => 'мин һине яратам ымлауы: ҡара тән төҫө',
+    '🤘🏻' => 'мөгөҙ билдәһе: аҡһыл тән төҫө',
+    '🤘🏼' => 'мөгөҙ билдәһе: уртаса аҡһыл тән төҫө',
+    '🤘🏽' => 'мөгөҙ билдәһе: уртаса тән төҫө',
+    '🤘🏾' => 'мөгөҙ билдәһе: уртаса ҡара тән төҫө',
+    '🤘🏿' => 'мөгөҙ билдәһе: ҡара тән төҫө',
+    '🤙🏻' => 'миңә шылтырат ҡулы: аҡһыл тән төҫө',
+    '🤙🏼' => 'миңә шылтырат ҡулы: уртаса аҡһыл тән төҫө',
+    '🤙🏽' => 'миңә шылтырат ҡулы: уртаса тән төҫө',
+    '🤙🏾' => 'миңә шылтырат ҡулы: уртаса ҡара тән төҫө',
+    '🤙🏿' => 'миңә шылтырат ҡулы: ҡара тән төҫө',
+    '👈🏻' => 'һулға күрһәтеүсе ҡул арты: аҡһыл тән төҫө',
+    '👈🏼' => 'һулға күрһәтеүсе ҡул арты: уртаса аҡһыл тән төҫө',
+    '👈🏽' => 'һулға күрһәтеүсе ҡул арты: уртаса тән төҫө',
+    '👈🏾' => 'һулға күрһәтеүсе ҡул арты: уртаса ҡара тән төҫө',
+    '👈🏿' => 'һулға күрһәтеүсе ҡул арты: ҡара тән төҫө',
+    '👉🏻' => 'уңға күрһәтеүсе ҡул арты: аҡһыл тән төҫө',
+    '👉🏼' => 'уңға күрһәтеүсе ҡул арты: уртаса аҡһыл тән төҫө',
+    '👉🏽' => 'уңға күрһәтеүсе ҡул арты: уртаса тән төҫө',
+    '👉🏾' => 'уңға күрһәтеүсе ҡул арты: уртаса ҡара тән төҫө',
+    '👉🏿' => 'уңға күрһәтеүсе ҡул арты: ҡара тән төҫө',
+    '👆🏻' => 'өҫкә күрһәтеүсе ҡул арты: аҡһыл тән төҫө',
+    '👆🏼' => 'өҫкә күрһәтеүсе ҡул арты: уртаса аҡһыл тән төҫө',
+    '👆🏽' => 'өҫкә күрһәтеүсе ҡул арты: уртаса тән төҫө',
+    '👆🏾' => 'өҫкә күрһәтеүсе ҡул арты: уртаса ҡара тән төҫө',
+    '👆🏿' => 'өҫкә күрһәтеүсе ҡул арты: ҡара тән төҫө',
+    '🖕🏻' => 'урта бармаҡ: аҡһыл тән төҫө',
+    '🖕🏼' => 'урта бармаҡ: уртаса аҡһыл тән төҫө',
+    '🖕🏽' => 'урта бармаҡ: уртаса тән төҫө',
+    '🖕🏾' => 'урта бармаҡ: уртаса ҡара тән төҫө',
+    '🖕🏿' => 'урта бармаҡ: ҡара тән төҫө',
+    '👇🏻' => 'аҫҡа күрһәтеүсе ҡул арты: аҡһыл тән төҫө',
+    '👇🏼' => 'аҫҡа күрһәтеүсе ҡул арты: уртаса аҡһыл тән төҫө',
+    '👇🏽' => 'аҫҡа күрһәтеүсе ҡул арты: уртаса тән төҫө',
+    '👇🏾' => 'аҫҡа күрһәтеүсе ҡул арты: уртаса ҡара тән төҫө',
+    '👇🏿' => 'аҫҡа күрһәтеүсе ҡул арты: ҡара тән төҫө',
+    '☝🏻' => 'өҫкә күрһәтеүсе һуҡ бармаҡ: аҡһыл тән төҫө',
+    '☝🏼' => 'өҫкә күрһәтеүсе һуҡ бармаҡ: уртаса аҡһыл тән төҫө',
+    '☝🏽' => 'өҫкә күрһәтеүсе һуҡ бармаҡ: уртаса тән төҫө',
+    '☝🏾' => 'өҫкә күрһәтеүсе һуҡ бармаҡ: уртаса ҡара тән төҫө',
+    '☝🏿' => 'өҫкә күрһәтеүсе һуҡ бармаҡ: ҡара тән төҫө',
+    '🫵🏻' => 'ҡараусыға күрһәтеүсе бармаҡ: аҡһыл тән төҫө',
+    '🫵🏼' => 'ҡараусыға күрһәтеүсе бармаҡ: уртаса аҡһыл тән төҫө',
+    '🫵🏽' => 'ҡараусыға күрһәтеүсе бармаҡ: уртаса тән төҫө',
+    '🫵🏾' => 'ҡараусыға күрһәтеүсе бармаҡ: уртаса ҡара тән төҫө',
+    '🫵🏿' => 'ҡараусыға күрһәтеүсе бармаҡ: ҡара тән төҫө',
+    '👍🏻' => 'баш бармаҡ өҫкә: аҡһыл тән төҫө',
+    '👍🏼' => 'баш бармаҡ өҫкә: уртаса аҡһыл тән төҫө',
+    '👍🏽' => 'баш бармаҡ өҫкә: уртаса тән төҫө',
+    '👍🏾' => 'баш бармаҡ өҫкә: уртаса ҡара тән төҫө',
+    '👍🏿' => 'баш бармаҡ өҫкә: ҡара тән төҫө',
+    '👎🏻' => 'баш бармаҡ аҫҡа: аҡһыл тән төҫө',
+    '👎🏼' => 'баш бармаҡ аҫҡа: уртаса аҡһыл тән төҫө',
+    '👎🏽' => 'баш бармаҡ аҫҡа: уртаса тән төҫө',
+    '👎🏾' => 'баш бармаҡ аҫҡа: уртаса ҡара тән төҫө',
+    '👎🏿' => 'баш бармаҡ аҫҡа: ҡара тән төҫө',
+    '✊🏻' => 'күтәрелгән йоҙроҡ: аҡһыл тән төҫө',
+    '✊🏼' => 'күтәрелгән йоҙроҡ: уртаса аҡһыл тән төҫө',
+    '✊🏽' => 'күтәрелгән йоҙроҡ: уртаса тән төҫө',
+    '✊🏾' => 'күтәрелгән йоҙроҡ: уртаса ҡара тән төҫө',
+    '✊🏿' => 'күтәрелгән йоҙроҡ: ҡара тән төҫө',
+    '👊🏻' => 'ҡаршы килеүсе йоҙроҡ: аҡһыл тән төҫө',
+    '👊🏼' => 'ҡаршы килеүсе йоҙроҡ: уртаса аҡһыл тән төҫө',
+    '👊🏽' => 'ҡаршы килеүсе йоҙроҡ: уртаса тән төҫө',
+    '👊🏾' => 'ҡаршы килеүсе йоҙроҡ: уртаса ҡара тән төҫө',
+    '👊🏿' => 'ҡаршы килеүсе йоҙроҡ: ҡара тән төҫө',
+    '🤛🏻' => 'һулға ҡараған йоҙроҡ: аҡһыл тән төҫө',
+    '🤛🏼' => 'һулға ҡараған йоҙроҡ: уртаса аҡһыл тән төҫө',
+    '🤛🏽' => 'һулға ҡараған йоҙроҡ: уртаса тән төҫө',
+    '🤛🏾' => 'һулға ҡараған йоҙроҡ: уртаса ҡара тән төҫө',
+    '🤛🏿' => 'һулға ҡараған йоҙроҡ: ҡара тән төҫө',
+    '🤜🏻' => 'уңға ҡараған йоҙроҡ: аҡһыл тән төҫө',
+    '🤜🏼' => 'уңға ҡараған йоҙроҡ: уртаса аҡһыл тән төҫө',
+    '🤜🏽' => 'уңға ҡараған йоҙроҡ: уртаса тән төҫө',
+    '🤜🏾' => 'уңға ҡараған йоҙроҡ: уртаса ҡара тән төҫө',
+    '🤜🏿' => 'уңға ҡараған йоҙроҡ: ҡара тән төҫө',
+    '👏🏻' => 'ҡул сабыу: аҡһыл тән төҫө',
+    '👏🏼' => 'ҡул сабыу: уртаса аҡһыл тән төҫө',
+    '👏🏽' => 'ҡул сабыу: уртаса тән төҫө',
+    '👏🏾' => 'ҡул сабыу: уртаса ҡара тән төҫө',
+    '👏🏿' => 'ҡул сабыу: ҡара тән төҫө',
+    '🙌🏻' => 'ҡулдарҙы күтәреү: аҡһыл тән төҫө',
+    '🙌🏼' => 'ҡулдарҙы күтәреү: уртаса аҡһыл тән төҫө',
+    '🙌🏽' => 'ҡулдарҙы күтәреү: уртаса тән төҫө',
+    '🙌🏾' => 'ҡулдарҙы күтәреү: уртаса ҡара тән төҫө',
+    '🙌🏿' => 'ҡулдарҙы күтәреү: ҡара тән төҫө',
+    '🫶🏻' => 'йөрәк ҡулдар: аҡһыл тән төҫө',
+    '🫶🏼' => 'йөрәк ҡулдар: уртаса аҡһыл тән төҫө',
+    '🫶🏽' => 'йөрәк ҡулдар: уртаса тән төҫө',
+    '🫶🏾' => 'йөрәк ҡулдар: уртаса ҡара тән төҫө',
+    '🫶🏿' => 'йөрәк ҡулдар: ҡара тән төҫө',
+    '👐🏻' => 'асыҡ ҡулдар: аҡһыл тән төҫө',
+    '👐🏼' => 'асыҡ ҡулдар: уртаса аҡһыл тән төҫө',
+    '👐🏽' => 'асыҡ ҡулдар: уртаса тән төҫө',
+    '👐🏾' => 'асыҡ ҡулдар: уртаса ҡара тән төҫө',
+    '👐🏿' => 'асыҡ ҡулдар: ҡара тән төҫө',
+    '🤲🏻' => 'ус төптәре бергә: аҡһыл тән төҫө',
+    '🤲🏼' => 'ус төптәре бергә: уртаса аҡһыл тән төҫө',
+    '🤲🏽' => 'ус төптәре бергә: уртаса тән төҫө',
+    '🤲🏾' => 'ус төптәре бергә: уртаса ҡара тән төҫө',
+    '🤲🏿' => 'ус төптәре бергә: ҡара тән төҫө',
+    '🤝🏻' => 'ҡул бирешеү: аҡһыл тән төҫө',
+    '🤝🏼' => 'ҡул бирешеү: уртаса аҡһыл тән төҫө',
+    '🤝🏽' => 'ҡул бирешеү: уртаса тән төҫө',
+    '🤝🏾' => 'ҡул бирешеү: уртаса ҡара тән төҫө',
+    '🤝🏿' => 'ҡул бирешеү: ҡара тән төҫө',
+    '🙏🏻' => 'ҡулдарҙы бергә тотоу: аҡһыл тән төҫө',
+    '🙏🏼' => 'ҡулдарҙы бергә тотоу: уртаса аҡһыл тән төҫө',
+    '🙏🏽' => 'ҡулдарҙы бергә тотоу: уртаса тән төҫө',
+    '🙏🏾' => 'ҡулдарҙы бергә тотоу: уртаса ҡара тән төҫө',
+    '🙏🏿' => 'ҡулдарҙы бергә тотоу: ҡара тән төҫө',
+    '✍🏻' => 'яҙыусы ҡул: аҡһыл тән төҫө',
+    '✍🏼' => 'яҙыусы ҡул: уртаса аҡһыл тән төҫө',
+    '✍🏽' => 'яҙыусы ҡул: уртаса тән төҫө',
+    '✍🏾' => 'яҙыусы ҡул: уртаса ҡара тән төҫө',
+    '✍🏿' => 'яҙыусы ҡул: ҡара тән төҫө',
+    '💅🏻' => 'тырнаҡтарҙы буяу: аҡһыл тән төҫө',
+    '💅🏼' => 'тырнаҡтарҙы буяу: уртаса аҡһыл тән төҫө',
+    '💅🏽' => 'тырнаҡтарҙы буяу: уртаса тән төҫө',
+    '💅🏾' => 'тырнаҡтарҙы буяу: уртаса ҡара тән төҫө',
+    '💅🏿' => 'тырнаҡтарҙы буяу: ҡара тән төҫө',
+    '🤳🏻' => 'селфи: аҡһыл тән төҫө',
+    '🤳🏼' => 'селфи: уртаса аҡһыл тән төҫө',
+    '🤳🏽' => 'селфи: уртаса тән төҫө',
+    '🤳🏾' => 'селфи: уртаса ҡара тән төҫө',
+    '🤳🏿' => 'селфи: ҡара тән төҫө',
+    '💪🏻' => 'бицепс күрһәтеүсе ҡул: аҡһыл тән төҫө',
+    '💪🏼' => 'бицепс күрһәтеүсе ҡул: уртаса аҡһыл тән төҫө',
+    '💪🏽' => 'бицепс күрһәтеүсе ҡул: уртаса тән төҫө',
+    '💪🏾' => 'бицепс күрһәтеүсе ҡул: уртаса ҡара тән төҫө',
+    '💪🏿' => 'бицепс күрһәтеүсе ҡул: ҡара тән төҫө',
+    '🦵🏻' => 'аяҡ: аҡһыл тән төҫө',
+    '🦵🏼' => 'аяҡ: уртаса аҡһыл тән төҫө',
+    '🦵🏽' => 'аяҡ: уртаса тән төҫө',
+    '🦵🏾' => 'аяҡ: уртаса ҡара тән төҫө',
+    '🦵🏿' => 'аяҡ: ҡара тән төҫө',
+    '👂🏻' => 'ҡолаҡ: аҡһыл тән төҫө',
+    '👂🏼' => 'ҡолаҡ: уртаса аҡһыл тән төҫө',
+    '👂🏽' => 'ҡолаҡ: уртаса тән төҫө',
+    '👂🏾' => 'ҡолаҡ: уртаса ҡара тән төҫө',
+    '👂🏿' => 'ҡолаҡ: ҡара тән төҫө',
+    '🦻🏻' => 'ишетеү аппараты менән ҡолаҡ: аҡһыл тән төҫө',
+    '🦻🏼' => 'ишетеү аппараты менән ҡолаҡ: уртаса аҡһыл тән төҫө',
+    '🦻🏽' => 'ишетеү аппараты менән ҡолаҡ: уртаса тән төҫө',
+    '🦻🏾' => 'ишетеү аппараты менән ҡолаҡ: уртаса ҡара тән төҫө',
+    '🦻🏿' => 'ишетеү аппараты менән ҡолаҡ: ҡара тән төҫө',
+    '👃🏻' => 'танау: аҡһыл тән төҫө',
+    '👃🏼' => 'танау: уртаса аҡһыл тән төҫө',
+    '👃🏽' => 'танау: уртаса тән төҫө',
+    '👃🏾' => 'танау: уртаса ҡара тән төҫө',
+    '👃🏿' => 'танау: ҡара тән төҫө',
+    '👶🏻' => 'сабый: аҡһыл тән төҫө',
+    '👶🏼' => 'сабый: уртаса аҡһыл тән төҫө',
+    '👶🏽' => 'сабый: уртаса тән төҫө',
+    '👶🏾' => 'сабый: уртаса ҡара тән төҫө',
+    '👶🏿' => 'сабый: ҡара тән төҫө',
+    '🧒🏻' => 'бала: аҡһыл тән төҫө',
+    '🧒🏼' => 'бала: уртаса аҡһыл тән төҫө',
+    '🧒🏽' => 'бала: уртаса тән төҫө',
+    '🧒🏾' => 'бала: уртаса ҡара тән төҫө',
+    '🧒🏿' => 'бала: ҡара тән төҫө',
+    '👦🏻' => 'малай: аҡһыл тән төҫө',
+    '👦🏼' => 'малай: уртаса аҡһыл тән төҫө',
+    '👦🏽' => 'малай: уртаса тән төҫө',
+    '👦🏾' => 'малай: уртаса ҡара тән төҫө',
+    '👦🏿' => 'малай: ҡара тән төҫө',
+    '👧🏻' => 'ҡыҙ: аҡһыл тән төҫө',
+    '👧🏼' => 'ҡыҙ: уртаса аҡһыл тән төҫө',
+    '👧🏽' => 'ҡыҙ: уртаса тән төҫө',
+    '👧🏾' => 'ҡыҙ: уртаса ҡара тән төҫө',
+    '👧🏿' => 'ҡыҙ: ҡара тән төҫө',
+    '🧑🏻' => 'өлкән: аҡһыл тән төҫө',
+    '🧑🏼' => 'өлкән: уртаса аҡһыл тән төҫө',
+    '🧑🏽' => 'өлкән: уртаса тән төҫө',
+    '🧑🏾' => 'өлкән: уртаса ҡара тән төҫө',
+    '🧑🏿' => 'өлкән: ҡара тән төҫө',
+    '👱🏻' => 'кеше: аҡһыл тән төҫө һәм аҡһыл сәсле',
+    '👱🏼' => 'кеше: уртаса аҡһыл тән төҫө һәм аҡһыл сәсле',
+    '👱🏽' => 'кеше: уртаса тән төҫө һәм аҡһыл сәсле',
+    '👱🏾' => 'кеше: уртаса ҡара тән төҫө һәм аҡһыл сәсле',
+    '👱🏿' => 'кеше: ҡара тән төҫө һәм аҡһыл сәсле',
+    '👨🏻' => 'ир: аҡһыл тән төҫө',
+    '👨🏼' => 'ир: уртаса аҡһыл тән төҫө',
+    '👨🏽' => 'ир: уртаса тән төҫө',
+    '👨🏾' => 'ир: уртаса ҡара тән төҫө',
+    '👨🏿' => 'ир: ҡара тән төҫө',
+    '🧔🏻' => 'һаҡаллы кеше: аҡһыл тән төҫө',
+    '🧔🏼' => 'һаҡаллы кеше: уртаса аҡһыл тән төҫө',
+    '🧔🏽' => 'һаҡаллы кеше: уртаса тән төҫө',
+    '🧔🏾' => 'һаҡаллы кеше: уртаса ҡара тән төҫө',
+    '🧔🏿' => 'һаҡаллы кеше: ҡара тән төҫө',
+    '👩🏻' => 'ҡатын: аҡһыл тән төҫө',
+    '👩🏼' => 'ҡатын: уртаса аҡһыл тән төҫө',
+    '👩🏽' => 'ҡатын: уртаса тән төҫө',
+    '👩🏾' => 'ҡатын: уртаса ҡара тән төҫө',
+    '👩🏿' => 'ҡатын: ҡара тән төҫө',
+    '🧓🏻' => 'оло кеше: аҡһыл тән төҫө',
+    '🧓🏼' => 'оло кеше: уртаса аҡһыл тән төҫө',
+    '🧓🏽' => 'оло кеше: уртаса тән төҫө',
+    '🧓🏾' => 'оло кеше: уртаса ҡара тән төҫө',
+    '🧓🏿' => 'оло кеше: ҡара тән төҫө',
+    '👴🏻' => 'ҡарт ир: аҡһыл тән төҫө',
+    '👴🏼' => 'ҡарт ир: уртаса аҡһыл тән төҫө',
+    '👴🏽' => 'ҡарт ир: уртаса тән төҫө',
+    '👴🏾' => 'ҡарт ир: уртаса ҡара тән төҫө',
+    '👴🏿' => 'ҡарт ир: ҡара тән төҫө',
+    '👵🏻' => 'ҡарт ҡатын: аҡһыл тән төҫө',
+    '👵🏼' => 'ҡарт ҡатын: уртаса аҡһыл тән төҫө',
+    '👵🏽' => 'ҡарт ҡатын: уртаса тән төҫө',
+    '👵🏾' => 'ҡарт ҡатын: уртаса ҡара тән төҫө',
+    '👵🏿' => 'ҡарт ҡатын: ҡара тән төҫө',
+    '🙍🏻' => 'йөҙ сирыусы кеше: аҡһыл тән төҫө',
+    '🙍🏼' => 'йөҙ сирыусы кеше: уртаса аҡһыл тән төҫө',
+    '🙍🏽' => 'йөҙ сирыусы кеше: уртаса тән төҫө',
+    '🙍🏾' => 'йөҙ сирыусы кеше: уртаса ҡара тән төҫө',
+    '🙍🏿' => 'йөҙ сирыусы кеше: ҡара тән төҫө',
+    '🙎🏻' => 'ирен сирыусы кеше: аҡһыл тән төҫө',
+    '🙎🏼' => 'ирен сирыусы кеше: уртаса аҡһыл тән төҫө',
+    '🙎🏽' => 'ирен сирыусы кеше: уртаса тән төҫө',
+    '🙎🏾' => 'ирен сирыусы кеше: уртаса ҡара тән төҫө',
+    '🙎🏿' => 'ирен сирыусы кеше: ҡара тән төҫө',
+    '🙅🏻' => 'ЮҠ тип ымлаусы кеше: аҡһыл тән төҫө',
+    '🙅🏼' => 'ЮҠ тип ымлаусы кеше: уртаса аҡһыл тән төҫө',
+    '🙅🏽' => 'ЮҠ тип ымлаусы кеше: уртаса тән төҫө',
+    '🙅🏾' => 'ЮҠ тип ымлаусы кеше: уртаса ҡара тән төҫө',
+    '🙅🏿' => 'ЮҠ тип ымлаусы кеше: ҡара тән төҫө',
+    '🙆🏻' => 'ЯҠШЫ тип ымлаусы кеше: аҡһыл тән төҫө',
+    '🙆🏼' => 'ЯҠШЫ тип ымлаусы кеше: уртаса аҡһыл тән төҫө',
+    '🙆🏽' => 'ЯҠШЫ тип ымлаусы кеше: уртаса тән төҫө',
+    '🙆🏾' => 'ЯҠШЫ тип ымлаусы кеше: уртаса ҡара тән төҫө',
+    '🙆🏿' => 'ЯҠШЫ тип ымлаусы кеше: ҡара тән төҫө',
+    '💁🏻' => 'ҡул һуҙған кеше: аҡһыл тән төҫө',
+    '💁🏼' => 'ҡул һуҙған кеше: уртаса аҡһыл тән төҫө',
+    '💁🏽' => 'ҡул һуҙған кеше: уртаса тән төҫө',
+    '💁🏾' => 'ҡул һуҙған кеше: уртаса ҡара тән төҫө',
+    '💁🏿' => 'ҡул һуҙған кеше: ҡара тән төҫө',
+    '🙋🏻' => 'ҡул күтәреүсе кеше: аҡһыл тән төҫө',
+    '🙋🏼' => 'ҡул күтәреүсе кеше: уртаса аҡһыл тән төҫө',
+    '🙋🏽' => 'ҡул күтәреүсе кеше: уртаса тән төҫө',
+    '🙋🏾' => 'ҡул күтәреүсе кеше: уртаса ҡара тән төҫө',
+    '🙋🏿' => 'ҡул күтәреүсе кеше: ҡара тән төҫө',
+    '🧏🏻' => 'һаңғырау кеше: аҡһыл тән төҫө',
+    '🧏🏼' => 'һаңғырау кеше: уртаса аҡһыл тән төҫө',
+    '🧏🏽' => 'һаңғырау кеше: уртаса тән төҫө',
+    '🧏🏾' => 'һаңғырау кеше: уртаса ҡара тән төҫө',
+    '🧏🏿' => 'һаңғырау кеше: ҡара тән төҫө',
+    '🙇🏻' => 'баш эйеүсе кеше: аҡһыл тән төҫө',
+    '🙇🏼' => 'баш эйеүсе кеше: уртаса аҡһыл тән төҫө',
+    '🙇🏽' => 'баш эйеүсе кеше: уртаса тән төҫө',
+    '🙇🏾' => 'баш эйеүсе кеше: уртаса ҡара тән төҫө',
+    '🙇🏿' => 'баш эйеүсе кеше: ҡара тән төҫө',
+    '🤦🏻' => 'йөҙөн ҡул менән ҡаплаусы кеше: аҡһыл тән төҫө',
+    '🤦🏼' => 'йөҙөн ҡул менән ҡаплаусы кеше: уртаса аҡһыл тән төҫө',
+    '🤦🏽' => 'йөҙөн ҡул менән ҡаплаусы кеше: уртаса тән төҫө',
+    '🤦🏾' => 'йөҙөн ҡул менән ҡаплаусы кеше: уртаса ҡара тән төҫө',
+    '🤦🏿' => 'йөҙөн ҡул менән ҡаплаусы кеше: ҡара тән төҫө',
+    '🤷🏻' => 'кеше яурынын һикертә: аҡһыл тән төҫө',
+    '🤷🏼' => 'кеше яурынын һикертә: уртаса аҡһыл тән төҫө',
+    '🤷🏽' => 'кеше яурынын һикертә: уртаса тән төҫө',
+    '🤷🏾' => 'кеше яурынын һикертә: уртаса ҡара тән төҫө',
+    '🤷🏿' => 'кеше яурынын һикертә: ҡара тән төҫө',
+    '👮🏻' => 'полиция хеҙмәткәре: аҡһыл тән төҫө',
+    '👮🏼' => 'полиция хеҙмәткәре: уртаса аҡһыл тән төҫө',
+    '👮🏽' => 'полиция хеҙмәткәре: уртаса тән төҫө',
+    '👮🏾' => 'полиция хеҙмәткәре: уртаса ҡара тән төҫө',
+    '👮🏿' => 'полиция хеҙмәткәре: ҡара тән төҫө',
+    '🕵🏻' => 'детектив: аҡһыл тән төҫө',
+    '🕵🏼' => 'детектив: уртаса аҡһыл тән төҫө',
+    '🕵🏽' => 'детектив: уртаса тән төҫө',
+    '🕵🏾' => 'детектив: уртаса ҡара тән төҫө',
+    '🕵🏿' => 'детектив: ҡара тән төҫө',
+    '💂🏻' => 'һаҡсы: аҡһыл тән төҫө',
+    '💂🏼' => 'һаҡсы: уртаса аҡһыл тән төҫө',
+    '💂🏽' => 'һаҡсы: уртаса тән төҫө',
+    '💂🏾' => 'һаҡсы: уртаса ҡара тән төҫө',
+    '💂🏿' => 'һаҡсы: ҡара тән төҫө',
+    '🥷🏻' => 'ниндзя: аҡһыл тән төҫө',
+    '🥷🏼' => 'ниндзя: уртаса аҡһыл тән төҫө',
+    '🥷🏽' => 'ниндзя: уртаса тән төҫө',
+    '🥷🏾' => 'ниндзя: уртаса ҡара тән төҫө',
+    '🥷🏿' => 'ниндзя: ҡара тән төҫө',
+    '👷🏻' => 'төҙөүсе: аҡһыл тән төҫө',
+    '👷🏼' => 'төҙөүсе: уртаса аҡһыл тән төҫө',
+    '👷🏽' => 'төҙөүсе: уртаса тән төҫө',
+    '👷🏾' => 'төҙөүсе: уртаса ҡара тән төҫө',
+    '👷🏿' => 'төҙөүсе: ҡара тән төҫө',
+    '🫅🏻' => 'тажлы кеше: аҡһыл тән төҫө',
+    '🫅🏼' => 'тажлы кеше: уртаса аҡһыл тән төҫө',
+    '🫅🏽' => 'тажлы кеше: уртаса тән төҫө',
+    '🫅🏾' => 'тажлы кеше: уртаса ҡара тән төҫө',
+    '🫅🏿' => 'тажлы кеше: ҡара тән төҫө',
+    '🤴🏻' => 'принц: аҡһыл тән төҫө',
+    '🤴🏼' => 'принц: уртаса аҡһыл тән төҫө',
+    '🤴🏽' => 'принц: уртаса тән төҫө',
+    '🤴🏾' => 'принц: уртаса ҡара тән төҫө',
+    '🤴🏿' => 'принц: ҡара тән төҫө',
+    '👸🏻' => 'принцесса: аҡһыл тән төҫө',
+    '👸🏼' => 'принцесса: уртаса аҡһыл тән төҫө',
+    '👸🏽' => 'принцесса: уртаса тән төҫө',
+    '👸🏾' => 'принцесса: уртаса ҡара тән төҫө',
+    '👸🏿' => 'принцесса: ҡара тән төҫө',
+    '👳🏻' => 'салма кейгән кеше: аҡһыл тән төҫө',
+    '👳🏼' => 'салма кейгән кеше: уртаса аҡһыл тән төҫө',
+    '👳🏽' => 'салма кейгән кеше: уртаса тән төҫө',
+    '👳🏾' => 'салма кейгән кеше: уртаса ҡара тән төҫө',
+    '👳🏿' => 'салма кейгән кеше: ҡара тән төҫө',
+    '👲🏻' => 'түбәтәй кейгән кеше: аҡһыл тән төҫө',
+    '👲🏼' => 'түбәтәй кейгән кеше: уртаса аҡһыл тән төҫө',
+    '👲🏽' => 'түбәтәй кейгән кеше: уртаса тән төҫө',
+    '👲🏾' => 'түбәтәй кейгән кеше: уртаса ҡара тән төҫө',
+    '👲🏿' => 'түбәтәй кейгән кеше: ҡара тән төҫө',
+    '🧕🏻' => 'яулыҡлы ҡатын: аҡһыл тән төҫө',
+    '🧕🏼' => 'яулыҡлы ҡатын: уртаса аҡһыл тән төҫө',
+    '🧕🏽' => 'яулыҡлы ҡатын: уртаса тән төҫө',
+    '🧕🏾' => 'яулыҡлы ҡатын: уртаса ҡара тән төҫө',
+    '🧕🏿' => 'яулыҡлы ҡатын: ҡара тән төҫө',
+    '🤵🏻' => 'смокингтағы кеше: аҡһыл тән төҫө',
+    '🤵🏼' => 'смокингтағы кеше: уртаса аҡһыл тән төҫө',
+    '🤵🏽' => 'смокингтағы кеше: уртаса тән төҫө',
+    '🤵🏾' => 'смокингтағы кеше: уртаса ҡара тән төҫө',
+    '🤵🏿' => 'смокингтағы кеше: ҡара тән төҫө',
+    '👰🏻' => 'фаталы кеше: аҡһыл тән төҫө',
+    '👰🏼' => 'фаталы кеше: уртаса аҡһыл тән төҫө',
+    '👰🏽' => 'фаталы кеше: уртаса тән төҫө',
+    '👰🏾' => 'фаталы кеше: уртаса ҡара тән төҫө',
+    '👰🏿' => 'фаталы кеше: ҡара тән төҫө',
+    '🤰🏻' => 'йөклө ҡатын: аҡһыл тән төҫө',
+    '🤰🏼' => 'йөклө ҡатын: уртаса аҡһыл тән төҫө',
+    '🤰🏽' => 'йөклө ҡатын: уртаса тән төҫө',
+    '🤰🏾' => 'йөклө ҡатын: уртаса ҡара тән төҫө',
+    '🤰🏿' => 'йөклө ҡатын: ҡара тән төҫө',
+    '🫃🏻' => 'йөклө ир: аҡһыл тән төҫө',
+    '🫃🏼' => 'йөклө ир: уртаса аҡһыл тән төҫө',
+    '🫃🏽' => 'йөклө ир: уртаса тән төҫө',
+    '🫃🏾' => 'йөклө ир: уртаса ҡара тән төҫө',
+    '🫃🏿' => 'йөклө ир: ҡара тән төҫө',
+    '🫄🏻' => 'йөклө кеше: аҡһыл тән төҫө',
+    '🫄🏼' => 'йөклө кеше: уртаса аҡһыл тән төҫө',
+    '🫄🏽' => 'йөклө кеше: уртаса тән төҫө',
+    '🫄🏾' => 'йөклө кеше: уртаса ҡара тән төҫө',
+    '🫄🏿' => 'йөклө кеше: ҡара тән төҫө',
+    '🤱🏻' => 'имеҙеү: аҡһыл тән төҫө',
+    '🤱🏼' => 'имеҙеү: уртаса аҡһыл тән төҫө',
+    '🤱🏽' => 'имеҙеү: уртаса тән төҫө',
+    '🤱🏾' => 'имеҙеү: уртаса ҡара тән төҫө',
+    '🤱🏿' => 'имеҙеү: ҡара тән төҫө',
+    '👼🏻' => 'сабый фәрештә: аҡһыл тән төҫө',
+    '👼🏼' => 'сабый фәрештә: уртаса аҡһыл тән төҫө',
+    '👼🏽' => 'сабый фәрештә: уртаса тән төҫө',
+    '👼🏾' => 'сабый фәрештә: уртаса ҡара тән төҫө',
+    '👼🏿' => 'сабый фәрештә: ҡара тән төҫө',
+    '🎅🏻' => 'Ҡыш бабай: аҡһыл тән төҫө',
+    '🎅🏼' => 'Ҡыш бабай: уртаса аҡһыл тән төҫө',
+    '🎅🏽' => 'Ҡыш бабай: уртаса тән төҫө',
+    '🎅🏾' => 'Ҡыш бабай: уртаса ҡара тән төҫө',
+    '🎅🏿' => 'Ҡыш бабай: ҡара тән төҫө',
+    '🤶🏻' => 'Клаус ханым: аҡһыл тән төҫө',
+    '🤶🏼' => 'Клаус ханым: уртаса аҡһыл тән төҫө',
+    '🤶🏽' => 'Клаус ханым: уртаса тән төҫө',
+    '🤶🏾' => 'Клаус ханым: уртаса ҡара тән төҫө',
+    '🤶🏿' => 'Клаус ханым: ҡара тән төҫө',
+    '🦸🏻' => 'супергерой: аҡһыл тән төҫө',
+    '🦸🏼' => 'супергерой: уртаса аҡһыл тән төҫө',
+    '🦸🏽' => 'супергерой: уртаса тән төҫө',
+    '🦸🏾' => 'супергерой: уртаса ҡара тән төҫө',
+    '🦸🏿' => 'супергерой: ҡара тән төҫө',
+    '🦹🏻' => 'супер яуыз: аҡһыл тән төҫө',
+    '🦹🏼' => 'супер яуыз: уртаса аҡһыл тән төҫө',
+    '🦹🏽' => 'супер яуыз: уртаса тән төҫө',
+    '🦹🏾' => 'супер яуыз: уртаса ҡара тән төҫө',
+    '🦹🏿' => 'супер яуыз: ҡара тән төҫө',
+    '🧚🏻' => 'фея: аҡһыл тән төҫө',
+    '🧚🏼' => 'фея: уртаса аҡһыл тән төҫө',
+    '🧚🏽' => 'фея: уртаса тән төҫө',
+    '🧚🏾' => 'фея: уртаса ҡара тән төҫө',
+    '🧚🏿' => 'фея: ҡара тән төҫө',
+    '🧛🏻' => 'вампир: аҡһыл тән төҫө',
+    '🧛🏼' => 'вампир: уртаса аҡһыл тән төҫө',
+    '🧛🏽' => 'вампир: уртаса тән төҫө',
+    '🧛🏾' => 'вампир: уртаса ҡара тән төҫө',
+    '🧛🏿' => 'вампир: ҡара тән төҫө',
+    '🧜🏻' => 'һыу кешеһе: аҡһыл тән төҫө',
+    '🧜🏼' => 'һыу кешеһе: уртаса аҡһыл тән төҫө',
+    '🧜🏽' => 'һыу кешеһе: уртаса тән төҫө',
+    '🧜🏾' => 'һыу кешеһе: уртаса ҡара тән төҫө',
+    '🧜🏿' => 'һыу кешеһе: ҡара тән төҫө',
+    '🧝🏻' => 'эльф: аҡһыл тән төҫө',
+    '🧝🏼' => 'эльф: уртаса аҡһыл тән төҫө',
+    '🧝🏽' => 'эльф: уртаса тән төҫө',
+    '🧝🏾' => 'эльф: уртаса ҡара тән төҫө',
+    '🧝🏿' => 'эльф: ҡара тән төҫө',
+    '💆🏻' => 'массаж алыусы кеше: аҡһыл тән төҫө',
+    '💆🏼' => 'массаж алыусы кеше: уртаса аҡһыл тән төҫө',
+    '💆🏽' => 'массаж алыусы кеше: уртаса тән төҫө',
+    '💆🏾' => 'массаж алыусы кеше: уртаса ҡара тән төҫө',
+    '💆🏿' => 'массаж алыусы кеше: ҡара тән төҫө',
+    '💇🏻' => 'сәс киҫтереүсе кеше: аҡһыл тән төҫө',
+    '💇🏼' => 'сәс киҫтереүсе кеше: уртаса аҡһыл тән төҫө',
+    '💇🏽' => 'сәс киҫтереүсе кеше: уртаса тән төҫө',
+    '💇🏾' => 'сәс киҫтереүсе кеше: уртаса ҡара тән төҫө',
+    '💇🏿' => 'сәс киҫтереүсе кеше: ҡара тән төҫө',
+    '🚶🏻' => 'йөрөүсе кеше: аҡһыл тән төҫө',
+    '🚶🏼' => 'йөрөүсе кеше: уртаса аҡһыл тән төҫө',
+    '🚶🏽' => 'йөрөүсе кеше: уртаса тән төҫө',
+    '🚶🏾' => 'йөрөүсе кеше: уртаса ҡара тән төҫө',
+    '🚶🏿' => 'йөрөүсе кеше: ҡара тән төҫө',
+    '🧍🏻' => 'баҫып торған кеше: аҡһыл тән төҫө',
+    '🧍🏼' => 'баҫып торған кеше: уртаса аҡһыл тән төҫө',
+    '🧍🏽' => 'баҫып торған кеше: уртаса тән төҫө',
+    '🧍🏾' => 'баҫып торған кеше: уртаса ҡара тән төҫө',
+    '🧍🏿' => 'баҫып торған кеше: ҡара тән төҫө',
+    '🧎🏻' => 'тубыҡланған кеше: аҡһыл тән төҫө',
+    '🧎🏼' => 'тубыҡланған кеше: уртаса аҡһыл тән төҫө',
+    '🧎🏽' => 'тубыҡланған кеше: уртаса тән төҫө',
+    '🧎🏾' => 'тубыҡланған кеше: уртаса ҡара тән төҫө',
+    '🧎🏿' => 'тубыҡланған кеше: ҡара тән төҫө',
+    '🏃🏻' => 'йүгереүсе кеше: аҡһыл тән төҫө',
+    '🏃🏼' => 'йүгереүсе кеше: уртаса аҡһыл тән төҫө',
+    '🏃🏽' => 'йүгереүсе кеше: уртаса тән төҫө',
+    '🏃🏾' => 'йүгереүсе кеше: уртаса ҡара тән төҫө',
+    '🏃🏿' => 'йүгереүсе кеше: ҡара тән төҫө',
+    '💃🏻' => 'бейеүсе ҡатын: аҡһыл тән төҫө',
+    '💃🏼' => 'бейеүсе ҡатын: уртаса аҡһыл тән төҫө',
+    '💃🏽' => 'бейеүсе ҡатын: уртаса тән төҫө',
+    '💃🏾' => 'бейеүсе ҡатын: уртаса ҡара тән төҫө',
+    '💃🏿' => 'бейеүсе ҡатын: ҡара тән төҫө',
+    '🕺🏻' => 'бейеүсе ир-ат: аҡһыл тән төҫө',
+    '🕺🏼' => 'бейеүсе ир-ат: уртаса аҡһыл тән төҫө',
+    '🕺🏽' => 'бейеүсе ир-ат: уртаса тән төҫө',
+    '🕺🏾' => 'бейеүсе ир-ат: уртаса ҡара тән төҫө',
+    '🕺🏿' => 'бейеүсе ир-ат: ҡара тән төҫө',
+    '🕴🏻' => 'һауала осоусы костюмлы кеше: аҡһыл тән төҫө',
+    '🕴🏼' => 'һауала осоусы костюмлы кеше: уртаса аҡһыл тән төҫө',
+    '🕴🏽' => 'һауала осоусы костюмлы кеше: уртаса тән төҫө',
+    '🕴🏾' => 'һауала осоусы костюмлы кеше: уртаса ҡара тән төҫө',
+    '🕴🏿' => 'һауала осоусы костюмлы кеше: ҡара тән төҫө',
+    '👯🏻' => 'ҡуян ҡолаҡлы кешеләр: аҡһыл тән төҫө',
+    '👯🏼' => 'ҡуян ҡолаҡлы кешеләр: уртаса аҡһыл тән төҫө',
+    '👯🏽' => 'ҡуян ҡолаҡлы кешеләр: уртаса тән төҫө',
+    '👯🏾' => 'ҡуян ҡолаҡлы кешеләр: уртаса ҡара тән төҫө',
+    '👯🏿' => 'ҡуян ҡолаҡлы кешеләр: ҡара тән төҫө',
+    '🧖🏻' => 'мунсалағы кеше: аҡһыл тән төҫө',
+    '🧖🏼' => 'мунсалағы кеше: уртаса аҡһыл тән төҫө',
+    '🧖🏽' => 'мунсалағы кеше: уртаса тән төҫө',
+    '🧖🏾' => 'мунсалағы кеше: уртаса ҡара тән төҫө',
+    '🧖🏿' => 'мунсалағы кеше: ҡара тән төҫө',
+    '🧗🏻' => 'ҡаяға үрмәләүсе кеше: аҡһыл тән төҫө',
+    '🧗🏼' => 'ҡаяға үрмәләүсе кеше: уртаса аҡһыл тән төҫө',
+    '🧗🏽' => 'ҡаяға үрмәләүсе кеше: уртаса тән төҫө',
+    '🧗🏾' => 'ҡаяға үрмәләүсе кеше: уртаса ҡара тән төҫө',
+    '🧗🏿' => 'ҡаяға үрмәләүсе кеше: ҡара тән төҫө',
+    '🏇🏻' => 'ат сабышы: аҡһыл тән төҫө',
+    '🏇🏼' => 'ат сабышы: уртаса аҡһыл тән төҫө',
+    '🏇🏽' => 'ат сабышы: уртаса тән төҫө',
+    '🏇🏾' => 'ат сабышы: уртаса ҡара тән төҫө',
+    '🏇🏿' => 'ат сабышы: ҡара тән төҫө',
+    '🏂🏻' => 'сноубордсы: аҡһыл тән төҫө',
+    '🏂🏼' => 'сноубордсы: уртаса аҡһыл тән төҫө',
+    '🏂🏽' => 'сноубордсы: уртаса тән төҫө',
+    '🏂🏾' => 'сноубордсы: уртаса ҡара тән төҫө',
+    '🏂🏿' => 'сноубордсы: ҡара тән төҫө',
+    '🏌🏻' => 'гольф уйнаусы кеше: аҡһыл тән төҫө',
+    '🏌🏼' => 'гольф уйнаусы кеше: уртаса аҡһыл тән төҫө',
+    '🏌🏽' => 'гольф уйнаусы кеше: уртаса тән төҫө',
+    '🏌🏾' => 'гольф уйнаусы кеше: уртаса ҡара тән төҫө',
+    '🏌🏿' => 'гольф уйнаусы кеше: ҡара тән төҫө',
+    '🏄🏻' => 'серфингсы кеше: аҡһыл тән төҫө',
+    '🏄🏼' => 'серфингсы кеше: уртаса аҡһыл тән төҫө',
+    '🏄🏽' => 'серфингсы кеше: уртаса тән төҫө',
+    '🏄🏾' => 'серфингсы кеше: уртаса ҡара тән төҫө',
+    '🏄🏿' => 'серфингсы кеше: ҡара тән төҫө',
+    '🚣🏻' => 'кәмә ишеүсе кеше: аҡһыл тән төҫө',
+    '🚣🏼' => 'кәмә ишеүсе кеше: уртаса аҡһыл тән төҫө',
+    '🚣🏽' => 'кәмә ишеүсе кеше: уртаса тән төҫө',
+    '🚣🏾' => 'кәмә ишеүсе кеше: уртаса ҡара тән төҫө',
+    '🚣🏿' => 'кәмә ишеүсе кеше: ҡара тән төҫө',
+    '🏊🏻' => 'йөҙөүсе кеше: аҡһыл тән төҫө',
+    '🏊🏼' => 'йөҙөүсе кеше: уртаса аҡһыл тән төҫө',
+    '🏊🏽' => 'йөҙөүсе кеше: уртаса тән төҫө',
+    '🏊🏾' => 'йөҙөүсе кеше: уртаса ҡара тән төҫө',
+    '🏊🏿' => 'йөҙөүсе кеше: ҡара тән төҫө',
+    '⛹🏻' => 'туп һуғыусы кеше: аҡһыл тән төҫө',
+    '⛹🏼' => 'туп һуғыусы кеше: уртаса аҡһыл тән төҫө',
+    '⛹🏽' => 'туп һуғыусы кеше: уртаса тән төҫө',
+    '⛹🏾' => 'туп һуғыусы кеше: уртаса ҡара тән төҫө',
+    '⛹🏿' => 'туп һуғыусы кеше: ҡара тән төҫө',
+    '🏋🏻' => 'ауыр атлетика менән шөғөлләнеүсе кеше: аҡһыл тән төҫө',
+    '🏋🏼' => 'ауыр атлетика менән шөғөлләнеүсе кеше: уртаса аҡһыл тән төҫө',
+    '🏋🏽' => 'ауыр атлетика менән шөғөлләнеүсе кеше: уртаса тән төҫө',
+    '🏋🏾' => 'ауыр атлетика менән шөғөлләнеүсе кеше: уртаса ҡара тән төҫө',
+    '🏋🏿' => 'ауыр атлетика менән шөғөлләнеүсе кеше: ҡара тән төҫө',
+    '🚴🏻' => 'велосипедта йөрөүсе кеше: аҡһыл тән төҫө',
+    '🚴🏼' => 'велосипедта йөрөүсе кеше: уртаса аҡһыл тән төҫө',
+    '🚴🏽' => 'велосипедта йөрөүсе кеше: уртаса тән төҫө',
+    '🚴🏾' => 'велосипедта йөрөүсе кеше: уртаса ҡара тән төҫө',
+    '🚴🏿' => 'велосипедта йөрөүсе кеше: ҡара тән төҫө',
+    '🚵🏻' => 'тау велосипедында йөрөүсе кеше: аҡһыл тән төҫө',
+    '🚵🏼' => 'тау велосипедында йөрөүсе кеше: уртаса аҡһыл тән төҫө',
+    '🚵🏽' => 'тау велосипедында йөрөүсе кеше: уртаса тән төҫө',
+    '🚵🏾' => 'тау велосипедында йөрөүсе кеше: уртаса ҡара тән төҫө',
+    '🚵🏿' => 'тау велосипедында йөрөүсе кеше: ҡара тән төҫө',
+    '🤸🏻' => 'кеше ҡулдан ҡулға әйләнә: аҡһыл тән төҫө',
+    '🤸🏼' => 'кеше ҡулдан ҡулға әйләнә: уртаса аҡһыл тән төҫө',
+    '🤸🏽' => 'кеше ҡулдан ҡулға әйләнә: уртаса тән төҫө',
+    '🤸🏾' => 'кеше ҡулдан ҡулға әйләнә: уртаса ҡара тән төҫө',
+    '🤸🏿' => 'кеше ҡулдан ҡулға әйләнә: ҡара тән төҫө',
+    '🤼🏻' => 'көрәшселәр: аҡһыл тән төҫө',
+    '🤼🏼' => 'көрәшселәр: уртаса аҡһыл тән төҫө',
+    '🤼🏽' => 'көрәшселәр: уртаса тән төҫө',
+    '🤼🏾' => 'көрәшселәр: уртаса ҡара тән төҫө',
+    '🤼🏿' => 'көрәшселәр: ҡара тән төҫө',
+    '🤽🏻' => 'кеше һыу полоһы уйнай: аҡһыл тән төҫө',
+    '🤽🏼' => 'кеше һыу полоһы уйнай: уртаса аҡһыл тән төҫө',
+    '🤽🏽' => 'кеше һыу полоһы уйнай: уртаса тән төҫө',
+    '🤽🏾' => 'кеше һыу полоһы уйнай: уртаса ҡара тән төҫө',
+    '🤽🏿' => 'кеше һыу полоһы уйнай: ҡара тән төҫө',
+    '🤾🏻' => 'кеше гандбол уйнай: аҡһыл тән төҫө',
+    '🤾🏼' => 'кеше гандбол уйнай: уртаса аҡһыл тән төҫө',
+    '🤾🏽' => 'кеше гандбол уйнай: уртаса тән төҫө',
+    '🤾🏾' => 'кеше гандбол уйнай: уртаса ҡара тән төҫө',
+    '🤾🏿' => 'кеше гандбол уйнай: ҡара тән төҫө',
+    '🤹🏻' => 'кеше жонглерлыҡ итә: аҡһыл тән төҫө',
+    '🤹🏼' => 'кеше жонглерлыҡ итә: уртаса аҡһыл тән төҫө',
+    '🤹🏽' => 'кеше жонглерлыҡ итә: уртаса тән төҫө',
+    '🤹🏾' => 'кеше жонглерлыҡ итә: уртаса ҡара тән төҫө',
+    '🤹🏿' => 'кеше жонглерлыҡ итә: ҡара тән төҫө',
+    '🧘🏻' => 'лотос позаһындағы кеше: аҡһыл тән төҫө',
+    '🧘🏼' => 'лотос позаһындағы кеше: уртаса аҡһыл тән төҫө',
+    '🧘🏽' => 'лотос позаһындағы кеше: уртаса тән төҫө',
+    '🧘🏾' => 'лотос позаһындағы кеше: уртаса ҡара тән төҫө',
+    '🧘🏿' => 'лотос позаһындағы кеше: ҡара тән төҫө',
+    '🛀🏻' => 'ванна инеүсе кеше: аҡһыл тән төҫө',
+    '🛀🏼' => 'ванна инеүсе кеше: уртаса аҡһыл тән төҫө',
+    '🛀🏽' => 'ванна инеүсе кеше: уртаса тән төҫө',
+    '🛀🏾' => 'ванна инеүсе кеше: уртаса ҡара тән төҫө',
+    '🛀🏿' => 'ванна инеүсе кеше: ҡара тән төҫө',
+    '🛌🏻' => 'карауаттағы кеше: аҡһыл тән төҫө',
+    '🛌🏼' => 'карауаттағы кеше: уртаса аҡһыл тән төҫө',
+    '🛌🏽' => 'карауаттағы кеше: уртаса тән төҫө',
+    '🛌🏾' => 'карауаттағы кеше: уртаса ҡара тән төҫө',
+    '🛌🏿' => 'карауаттағы кеше: ҡара тән төҫө',
+    '👭🏻' => 'ҡул тотошҡан ҡатындар: аҡһыл тән төҫө',
+    '👭🏼' => 'ҡул тотошҡан ҡатындар: уртаса аҡһыл тән төҫө',
+    '👭🏽' => 'ҡул тотошҡан ҡатындар: уртаса тән төҫө',
+    '👭🏾' => 'ҡул тотошҡан ҡатындар: уртаса ҡара тән төҫө',
+    '👭🏿' => 'ҡул тотошҡан ҡатындар: ҡара тән төҫө',
+    '👫🏻' => 'ҡул тотошҡан ҡатын һәм ир: аҡһыл тән төҫө',
+    '👫🏼' => 'ҡул тотошҡан ҡатын һәм ир: уртаса аҡһыл тән төҫө',
+    '👫🏽' => 'ҡул тотошҡан ҡатын һәм ир: уртаса тән төҫө',
+    '👫🏾' => 'ҡул тотошҡан ҡатын һәм ир: уртаса ҡара тән төҫө',
+    '👫🏿' => 'ҡул тотошҡан ҡатын һәм ир: ҡара тән төҫө',
+    '👬🏻' => 'ҡул тотошҡан ирҙәр: аҡһыл тән төҫө',
+    '👬🏼' => 'ҡул тотошҡан ирҙәр: уртаса аҡһыл тән төҫө',
+    '👬🏽' => 'ҡул тотошҡан ирҙәр: уртаса тән төҫө',
+    '👬🏾' => 'ҡул тотошҡан ирҙәр: уртаса ҡара тән төҫө',
+    '👬🏿' => 'ҡул тотошҡан ирҙәр: ҡара тән төҫө',
+    '💏🏻' => 'үбеү: аҡһыл тән төҫө',
+    '💏🏼' => 'үбеү: уртаса аҡһыл тән төҫө',
+    '💏🏽' => 'үбеү: уртаса тән төҫө',
+    '💏🏾' => 'үбеү: уртаса ҡара тән төҫө',
+    '💏🏿' => 'үбеү: ҡара тән төҫө',
+    '💑🏻' => 'йөрәкле пар: аҡһыл тән төҫө',
+    '💑🏼' => 'йөрәкле пар: уртаса аҡһыл тән төҫө',
+    '💑🏽' => 'йөрәкле пар: уртаса тән төҫө',
+    '💑🏾' => 'йөрәкле пар: уртаса ҡара тән төҫө',
+    '💑🏿' => 'йөрәкле пар: ҡара тән төҫө',
+    '🇦🇨' => 'флаг: Асеншен утрауы',
+    '🇦🇩' => 'флаг: Андорра',
+    '🇦🇪' => 'флаг: Берләшкән Ғәрәп Әмирлектәре',
+    '🇦🇫' => 'флаг: Афғанстан',
+    '🇦🇬' => 'флаг: Антигуа һәм Барбуда',
+    '🇦🇮' => 'флаг: Ангилья',
+    '🇦🇱' => 'флаг: Албания',
+    '🇦🇲' => 'флаг: Әрмәнстан',
+    '🇦🇴' => 'флаг: Ангола',
+    '🇦🇶' => 'флаг: Антарктида',
+    '🇦🇷' => 'флаг: Аргентина',
+    '🇦🇸' => 'флаг: Америка Самоаһы',
+    '🇦🇹' => 'флаг: Австрия',
+    '🇦🇺' => 'флаг: Австралия',
+    '🇦🇼' => 'флаг: Аруба',
+    '🇦🇽' => 'флаг: Аланд утрауҙары',
+    '🇦🇿' => 'флаг: Әзербайжан',
+    '🇧🇦' => 'флаг: Босния һәм Герцеговина',
+    '🇧🇧' => 'флаг: Барбадос',
+    '🇧🇩' => 'флаг: Бангладеш',
+    '🇧🇪' => 'флаг: Бельгия',
+    '🇧🇫' => 'флаг: Буркина-Фасо',
+    '🇧🇬' => 'флаг: Болгария',
+    '🇧🇭' => 'флаг: Бәхрәйн',
+    '🇧🇮' => 'флаг: Бурунди',
+    '🇧🇯' => 'флаг: Бенин',
+    '🇧🇱' => 'флаг: Сен-Бартелеми',
+    '🇧🇲' => 'флаг: Бермуд утрауҙары',
+    '🇧🇳' => 'флаг: Бруней',
+    '🇧🇴' => 'флаг: Боливия',
+    '🇧🇶' => 'флаг: Карибтағы Нидерланд',
+    '🇧🇷' => 'флаг: Бразилия',
+    '🇧🇸' => 'флаг: Багам утрауҙары',
+    '🇧🇹' => 'флаг: Бутан',
+    '🇧🇻' => 'флаг: Буве утрауы',
+    '🇧🇼' => 'флаг: Ботсвана',
+    '🇧🇾' => 'флаг: Беларусь',
+    '🇧🇿' => 'флаг: Белиз',
+    '🇨🇦' => 'флаг: Канада',
+    '🇨🇨' => 'флаг: Кокос утрауҙары',
+    '🇨🇩' => 'флаг: Конго - Киншаса',
+    '🇨🇫' => 'флаг: Үҙәк Африка Республикаһы',
+    '🇨🇬' => 'флаг: Конго - Браззавиль',
+    '🇨🇭' => 'флаг: Швейцария',
+    '🇨🇮' => 'флаг: Кот-д’Ивуар',
+    '🇨🇰' => 'флаг: Кук утрауҙары',
+    '🇨🇱' => 'флаг: Чили',
+    '🇨🇲' => 'флаг: Камерун',
+    '🇨🇳' => 'флаг: Ҡытай',
+    '🇨🇴' => 'флаг: Колумбия',
+    '🇨🇵' => 'флаг: Клиппертон утрауы',
+    '🇨🇶' => 'флаг: Сарк',
+    '🇨🇷' => 'флаг: Коста-Рика',
+    '🇨🇺' => 'флаг: Куба',
+    '🇨🇻' => 'флаг: Кабо-Верде',
+    '🇨🇼' => 'флаг: Кюрасао',
+    '🇨🇽' => 'флаг: Раштыуа Утрауы',
+    '🇨🇾' => 'флаг: Кипр',
+    '🇨🇿' => 'флаг: Чехия',
+    '🇩🇪' => 'флаг: Германия',
+    '🇩🇬' => 'флаг: Диего-Гарсия',
+    '🇩🇯' => 'флаг: Джибути',
+    '🇩🇰' => 'флаг: Дания',
+    '🇩🇲' => 'флаг: Доминика',
+    '🇩🇴' => 'флаг: Доминикан Республикаһы',
+    '🇩🇿' => 'флаг: Алжир',
+    '🇪🇦' => 'флаг: Сеута һәм Мелилья',
+    '🇪🇨' => 'флаг: Эквадор',
+    '🇪🇪' => 'флаг: Эстония',
+    '🇪🇬' => 'флаг: Мысыр',
+    '🇪🇭' => 'флаг: Көнбайыш Сахара',
+    '🇪🇷' => 'флаг: Эритрея',
+    '🇪🇸' => 'флаг: Испания',
+    '🇪🇹' => 'флаг: Эфиопия',
+    '🇪🇺' => 'флаг: Европа Берлеге',
+    '🇫🇮' => 'флаг: Финляндия',
+    '🇫🇯' => 'флаг: Фиджи',
+    '🇫🇰' => 'флаг: Фолкленд утрауҙары',
+    '🇫🇲' => 'флаг: Микронезия',
+    '🇫🇴' => 'флаг: Фарер утрауҙары',
+    '🇫🇷' => 'флаг: Франция',
+    '🇬🇦' => 'флаг: Габон',
+    '🇬🇧' => 'флаг: Бөйөк Британия',
+    '🇬🇩' => 'флаг: Гренада',
+    '🇬🇪' => 'флаг: Грузия',
+    '🇬🇫' => 'флаг: Француз Гвианаһы',
+    '🇬🇬' => 'флаг: Гернси',
+    '🇬🇭' => 'флаг: Гана',
+    '🇬🇮' => 'флаг: Гибралтар',
+    '🇬🇱' => 'флаг: Гренландия',
+    '🇬🇲' => 'флаг: Гамбия',
+    '🇬🇳' => 'флаг: Гвинея',
+    '🇬🇵' => 'флаг: Гваделупа',
+    '🇬🇶' => 'флаг: Экваториаль Гвинея',
+    '🇬🇷' => 'флаг: Греция',
+    '🇬🇸' => 'флаг: Көньяҡ Георгия һәм Көньяҡ Сандвич утрауҙары',
+    '🇬🇹' => 'флаг: Гватемала',
+    '🇬🇺' => 'флаг: Гуам',
+    '🇬🇼' => 'флаг: Гвинея-Бисау',
+    '🇬🇾' => 'флаг: Гайана',
+    '🇭🇰' => 'флаг: Гонконг, Ҡытай МАР-ы',
+    '🇭🇲' => 'флаг: Херд һәм Макдональд утрауҙары',
+    '🇭🇳' => 'флаг: Гондурас',
+    '🇭🇷' => 'флаг: Хорватия',
+    '🇭🇹' => 'флаг: Гаити',
+    '🇭🇺' => 'флаг: Венгрия',
+    '🇮🇨' => 'флаг: Канар утрауҙары',
+    '🇮🇩' => 'флаг: Индонезия',
+    '🇮🇪' => 'флаг: Ирландия',
+    '🇮🇱' => 'флаг: Израиль',
+    '🇮🇲' => 'флаг: Мэн утрауы',
+    '🇮🇳' => 'флаг: Һиндостан',
+    '🇮🇴' => 'флаг: Британияның Һинд океанындағы биләмәһе',
+    '🇮🇶' => 'флаг: Ираҡ',
+    '🇮🇷' => 'флаг: Иран',
+    '🇮🇸' => 'флаг: Исландия',
+    '🇮🇹' => 'флаг: Италия',
+    '🇯🇪' => 'флаг: Джерси',
+    '🇯🇲' => 'флаг: Ямайка',
+    '🇯🇴' => 'флаг: Иордания',
+    '🇯🇵' => 'флаг: Япония',
+    '🇰🇪' => 'флаг: Кения',
+    '🇰🇬' => 'флаг: Ҡырғыҙстан',
+    '🇰🇭' => 'флаг: Камбоджа',
+    '🇰🇮' => 'флаг: Кирибати',
+    '🇰🇲' => 'флаг: Комор утрауҙары',
+    '🇰🇳' => 'флаг: Сент-Китс һәм Невис',
+    '🇰🇵' => 'флаг: Төньяҡ Корея',
+    '🇰🇷' => 'флаг: Көньяҡ Корея',
+    '🇰🇼' => 'флаг: Кувейт',
+    '🇰🇾' => 'флаг: Кайман утрауҙары',
+    '🇰🇿' => 'флаг: Ҡаҙағстан',
+    '🇱🇦' => 'флаг: Лаос',
+    '🇱🇧' => 'флаг: Ливан',
+    '🇱🇨' => 'флаг: Сент-Люсия',
+    '🇱🇮' => 'флаг: Лихтенштейн',
+    '🇱🇰' => 'флаг: Шри-Ланка',
+    '🇱🇷' => 'флаг: Либерия',
+    '🇱🇸' => 'флаг: Лесото',
+    '🇱🇹' => 'флаг: Литва',
+    '🇱🇺' => 'флаг: Люксембург',
+    '🇱🇻' => 'флаг: Латвия',
+    '🇱🇾' => 'флаг: Ливия',
+    '🇲🇦' => 'флаг: Марокко',
+    '🇲🇨' => 'флаг: Монако',
+    '🇲🇩' => 'флаг: Молдова',
+    '🇲🇪' => 'флаг: Черногория',
+    '🇲🇫' => 'флаг: Сен-Мартен',
+    '🇲🇬' => 'флаг: Мадагаскар',
+    '🇲🇭' => 'флаг: Маршалл утрауҙары',
+    '🇲🇰' => 'флаг: Төньяҡ Македония',
+    '🇲🇱' => 'флаг: Мали',
+    '🇲🇲' => 'флаг: Мьянма (Бирма)',
+    '🇲🇳' => 'флаг: Монголия',
+    '🇲🇴' => 'флаг: Макао, Ҡытай МАР-ы',
+    '🇲🇵' => 'флаг: Төньяҡ Мариан утрауҙары',
+    '🇲🇶' => 'флаг: Мартиника',
+    '🇲🇷' => 'флаг: Мавритания',
+    '🇲🇸' => 'флаг: Монтсеррат',
+    '🇲🇹' => 'флаг: Мальта',
+    '🇲🇺' => 'флаг: Маврикий',
+    '🇲🇻' => 'флаг: Мальдив утрауҙары',
+    '🇲🇼' => 'флаг: Малави',
+    '🇲🇽' => 'флаг: Мексика',
+    '🇲🇾' => 'флаг: Малайзия',
+    '🇲🇿' => 'флаг: Мозамбик',
+    '🇳🇦' => 'флаг: Намибия',
+    '🇳🇨' => 'флаг: Яңы Каледония',
+    '🇳🇪' => 'флаг: Нигер',
+    '🇳🇫' => 'флаг: Норфолк утрауы',
+    '🇳🇬' => 'флаг: Нигерия',
+    '🇳🇮' => 'флаг: Никарагуа',
+    '🇳🇱' => 'флаг: Нидерланд',
+    '🇳🇴' => 'флаг: Норвегия',
+    '🇳🇵' => 'флаг: Непал',
+    '🇳🇷' => 'флаг: Науру',
+    '🇳🇺' => 'флаг: Ниуэ',
+    '🇳🇿' => 'флаг: Яңы Зеландия',
+    '🇴🇲' => 'флаг: Оман',
+    '🇵🇦' => 'флаг: Панама',
+    '🇵🇪' => 'флаг: Перу',
+    '🇵🇫' => 'флаг: Француз Полинезияһы',
+    '🇵🇬' => 'флаг: Папуа – Яңы Гвинея',
+    '🇵🇭' => 'флаг: Филиппин',
+    '🇵🇰' => 'флаг: Пакистан',
+    '🇵🇱' => 'флаг: Польша',
+    '🇵🇲' => 'флаг: Сен-Пьер һәм Микелон',
+    '🇵🇳' => 'флаг: Питкэрн утрауҙары',
+    '🇵🇷' => 'флаг: Пуэрто-Рико',
+    '🇵🇸' => 'флаг: Фәләстин территориялары',
+    '🇵🇹' => 'флаг: Португалия',
+    '🇵🇼' => 'флаг: Палау',
+    '🇵🇾' => 'флаг: Парагвай',
+    '🇶🇦' => 'флаг: Катар',
+    '🇷🇪' => 'флаг: Реюньон',
+    '🇷🇴' => 'флаг: Румыния',
+    '🇷🇸' => 'флаг: Сербия',
+    '🇷🇺' => 'флаг: Рәсәй',
+    '🇷🇼' => 'флаг: Руанда',
+    '🇸🇦' => 'флаг: Сәғүд Ғәрәбстаны',
+    '🇸🇧' => 'флаг: Соломон утрауҙары',
+    '🇸🇨' => 'флаг: Сейшель утрауҙары',
+    '🇸🇩' => 'флаг: Судан',
+    '🇸🇪' => 'флаг: Швеция',
+    '🇸🇬' => 'флаг: Сингапур',
+    '🇸🇭' => 'флаг: Изге Елена утрауы',
+    '🇸🇮' => 'флаг: Словения',
+    '🇸🇯' => 'флаг: Шпицберген һәм Ян-Майен',
+    '🇸🇰' => 'флаг: Словакия',
+    '🇸🇱' => 'флаг: Сьерра-Леоне',
+    '🇸🇲' => 'флаг: Сан-Марино',
+    '🇸🇳' => 'флаг: Сенегал',
+    '🇸🇴' => 'флаг: Сомали',
+    '🇸🇷' => 'флаг: Суринам',
+    '🇸🇸' => 'флаг: Көньяҡ Судан',
+    '🇸🇹' => 'флаг: Сан-Томе һәм Принсипи',
+    '🇸🇻' => 'флаг: Сальвадор',
+    '🇸🇽' => 'флаг: Синт-Мартен',
+    '🇸🇾' => 'флаг: Сүриә',
+    '🇸🇿' => 'флаг: Эсватини',
+    '🇹🇦' => 'флаг: Тристан-да-Кунья',
+    '🇹🇨' => 'флаг: Төркс һәм Кайкос утрауҙары',
+    '🇹🇩' => 'флаг: Чад',
+    '🇹🇫' => 'флаг: Францияның Көньяҡ Биләмәләре',
+    '🇹🇬' => 'флаг: Того',
+    '🇹🇭' => 'флаг: Тайланд',
+    '🇹🇯' => 'флаг: Тажикстан',
+    '🇹🇰' => 'флаг: Токелау',
+    '🇹🇱' => 'флаг: Тимор-Лесте',
+    '🇹🇲' => 'флаг: Төркмәнстан',
+    '🇹🇳' => 'флаг: Тунис',
+    '🇹🇴' => 'флаг: Тонга',
+    '🇹🇷' => 'флаг: Төркиә',
+    '🇹🇹' => 'флаг: Тринидад һәм Тобаго',
+    '🇹🇻' => 'флаг: Тувалу',
+    '🇹🇼' => 'флаг: Тайвань',
+    '🇹🇿' => 'флаг: Танзания',
+    '🇺🇦' => 'флаг: Украина',
+    '🇺🇬' => 'флаг: Уганда',
+    '🇺🇲' => 'флаг: АҠШ-ның ситтәге утрауҙары',
+    '🇺🇳' => 'флаг: Берләшкән Милләттәр Ойошмаһы',
+    '🇺🇸' => 'флаг: Америка Ҡушма Штаттары',
+    '🇺🇾' => 'флаг: Уругвай',
+    '🇺🇿' => 'флаг: Үзбәкстан',
+    '🇻🇦' => 'флаг: Ватикан',
+    '🇻🇨' => 'флаг: Сент-Винсент һәм Гренадиндар',
+    '🇻🇪' => 'флаг: Венесуэла',
+    '🇻🇬' => 'флаг: Британия Виргин утрауҙары',
+    '🇻🇮' => 'флаг: АҠШ Виргин утрауҙары',
+    '🇻🇳' => 'флаг: Вьетнам',
+    '🇻🇺' => 'флаг: Вануату',
+    '🇼🇫' => 'флаг: Уоллис һәм Футуна',
+    '🇼🇸' => 'флаг: Самоа',
+    '🇽🇰' => 'флаг: Косово',
+    '🇾🇪' => 'флаг: Йәмән',
+    '🇾🇹' => 'флаг: Майотта',
+    '🇿🇦' => 'флаг: Көньяҡ Африка Республикаһы',
+    '🇿🇲' => 'флаг: Замбия',
+    '🇿🇼' => 'флаг: Зимбабве',
+    '🔟' => 'клавиша: 10',
+    '🏻' => 'аҡһыл тән төҫө',
+    '🏼' => 'уртаса аҡһыл тән төҫө',
+    '🏽' => 'уртаса тән төҫө',
+    '🏾' => 'уртаса ҡара тән төҫө',
+    '🏿' => 'ҡара тән төҫө',
+    '😃' => 'ҙур күҙле йылмайыусы йөҙ',
+    '😄' => 'ҡыҫыҡ күҙле йылмайыусы йөҙ',
+    '😁' => 'тештәре менән йылмайыусы йөҙ',
+    '😆' => 'ҡыҫылған күҙҙәр менән йылмайыусы йөҙ',
+    '😅' => 'тирләгән йылмайыусы йөҙ',
+    '🤣' => 'иҙәндә көлөү',
+    '😂' => 'йәш түгеп шатланған йөҙ',
+    '🙂' => 'аҙ ғына йылмайыусы йөҙ',
+    '🙃' => 'баштүбән йөҙ',
+    '🫠' => 'иреүсе йөҙ',
+    '😉' => 'күҙ ҡыҫыусы йөҙ',
+    '😊' => 'йылмайыусы күҙҙәр менән йылмайыусы йөҙ',
+    '😇' => 'нимблы йылмайыусы йөҙ',
+    '🥰' => 'йөрәктәр менән йылмайыусы йөҙ',
+    '😍' => 'йөрәк күҙҙәре менән йылмайыусы йөҙ',
+    '🤩' => 'йондоҙҙар менән һуғылған',
+    '😘' => 'һауа үбеүе ебәреүсе йөҙ',
+    '😗' => 'үбеүсе йөҙ',
+    '☺' => 'йылмайыусы йөҙ',
+    '😚' => 'йомоҡ күҙҙәр менән үбеүсе йөҙ',
+    '😙' => 'йылмайыусы күҙҙәр менән үбеүсе йөҙ',
+    '🥲' => 'күҙ йәше менән йылмайыусы йөҙ',
+    '😋' => 'ашамлыҡтан ләззәтләнеүсе йөҙ',
+    '😛' => 'тел менән йөҙ',
+    '😜' => 'тел менән күҙ ҡыҫыусы йөҙ',
+    '🤪' => 'аҡылһыҙ йөҙ',
+    '😝' => 'тел менән ҡыҫылған йөҙ',
+    '🤑' => 'аҡса ауыҙлы йөҙ',
+    '🤗' => 'асыҡ ҡулдар менән йылмайыусы йөҙ',
+    '🤭' => 'ауыҙын ҡулы менән ҡаплаған йөҙ',
+    '🫢' => 'асыҡ күҙле һәм ауыҙын ҡулы менән ҡаплаған йөҙ',
+    '🫣' => 'күҙ һалып торған йөҙ',
+    '🤫' => 'шым бул йөҙө',
+    '🤔' => 'уйланыусы йөҙ',
+    '🫡' => 'сәләмләүсе йөҙ',
+    '🤐' => 'эләктергес ауыҙлы йөҙ',
+    '🤨' => 'күтәрелгән ҡашлы йөҙ',
+    '😐' => 'нейтраль йөҙ',
+    '😑' => 'хистәрһеҙ йөҙ',
+    '😶' => 'ауыҙһыҙ йөҙ',
+    '🫥' => 'пунктир һыҙыҡлы йөҙ',
+    '😏' => 'мыҫҡыллы йөҙ',
+    '😒' => 'ҡәнәғәтһеҙ йөҙ',
+    '🙄' => 'күҙ әйләнеүсе йөҙ',
+    '🤥' => 'алдаусы йөҙ',
+    '🫨' => 'ҡалтыраусы йөҙ',
+    '😌' => 'еңеллек тойған йөҙ',
+    '😔' => 'уйсан йөҙ',
+    '😪' => 'йоҡоһо килгән йөҙ',
+    '🤤' => 'шайыҡ ағыусы ауыҙ',
+    '😴' => 'йоҡлаусы йөҙ',
+    '🫩' => 'күҙ аҫтында тоҡсайҙар булған йөҙ',
+    '😷' => 'медицина битлеге менән йөҙ',
+    '🤒' => 'термометрлы йөҙ',
+    '🤕' => 'баш бәйләгес менән йөҙ',
+    '🤢' => 'ҡоҫҡоһо килгән йөҙ',
+    '🤮' => 'ҡоҫҡан йөҙ',
+    '🤧' => 'сөскөрөүсе йөҙ',
+    '🥵' => 'ҡайнар йөҙ',
+    '🥶' => 'һыуыҡ йөҙ',
+    '🥴' => 'баш әйләнеүсе йөҙ',
+    '😵' => 'күҙҙәре крест менән һыҙылған йөҙ',
+    '🤯' => 'баш шартлауы',
+    '🤠' => 'ковбой шляпалы йөҙ',
+    '🥳' => 'кисәләге йөҙ',
+    '🥸' => 'йәшерелгән йөҙ',
+    '😎' => 'ҡояш күҙлеге менән йылмайыусы йөҙ',
+    '🤓' => 'күҙлекле йөҙ',
+    '🧐' => 'монокль менән йөҙ',
+    '😕' => 'буталған йөҙ',
+    '🫤' => 'диагональ ауыҙлы йөҙ',
+    '😟' => 'борсоулы йөҙ',
+    '🙁' => 'әҙ генә ҡашын йыйырған йөҙ',
+    '☹' => 'йөҙөн йыйырыу',
+    '😮' => 'асыҡ ауыҙлы йөҙ',
+    '😯' => 'тауышһыҙ йөҙ',
+    '😲' => 'шаҡ ҡатҡан йөҙ',
+    '😳' => 'ҡыҙарған йөҙ',
+    '🫪' => 'бәлшәйгән йөҙ',
+    '🥺' => 'ялбарыусы йөҙ',
+    '🥹' => 'күҙ йәштәрен тыйыусы йөҙ',
+    '😦' => 'асыҡ ауыҙлы ҡаш йыйған йөҙ',
+    '😧' => 'ғазаплы йөҙ',
+    '😨' => 'ҡурҡҡан йөҙ',
+    '😰' => 'тирләгән борсоулы йөҙ',
+    '😥' => 'моңһоу, әммә еңеллек тойған йөҙ',
+    '😢' => 'илаусы йөҙ',
+    '😭' => 'ҡысҡырып илаусы йөҙ',
+    '😱' => 'ҡурҡыуҙан ҡысҡырыусы йөҙ',
+    '😖' => 'аптыраған йөҙ',
+    '😣' => 'ныҡышмалы йөҙ',
+    '😞' => 'күңеле ҡайтҡан йөҙ',
+    '😓' => 'тирләгән төшөнкө йөҙ',
+    '😩' => 'арыған йөҙ',
+    '🥱' => 'иҫнәүсе йөҙ',
+    '😤' => 'танауҙан пар сыҡҡан йөҙ',
+    '😡' => 'ярһыған йөҙ',
+    '😠' => 'асыулы йөҙ',
+    '🤬' => 'ауыҙында символдар булған йөҙ',
+    '😈' => 'мөгөҙлө йылмайыусы йөҙ',
+    '👿' => 'мөгөҙлө асыулы йөҙ',
+    '💀' => 'баш һөйәге',
+    '☠' => 'баш һөйәге һәм һөйәктәр',
+    '💩' => 'тиҙәк өйөмө',
+    '🤡' => 'клоун йөҙө',
+    '👹' => 'огр',
+    '👺' => 'гоблин',
+    '👻' => 'өрәк',
+    '👽' => 'сит планета кешеһе',
+    '👾' => 'сит планеталы монстр',
+    '🤖' => 'робот',
+    '😺' => 'йылмайыусы бесәй',
+    '😸' => 'көлөүсе бесәй',
+    '😹' => 'шатлыҡ йәштәре менән бесәй',
+    '😻' => 'йөрәк күҙҙәре менән йылмайыусы бесәй',
+    '😼' => 'мыҫҡыллы йылмайыусы бесәй',
+    '😽' => 'үбеүсе бесәй',
+    '🙀' => 'арыған бесәй',
+    '😿' => 'илаусы бесәй',
+    '😾' => 'үпкәләгән бесәй',
+    '🙈' => 'күрмәҫкә тырышҡан маймыл',
+    '🙉' => 'ишетмәҫкә тырышҡан маймыл',
+    '🙊' => 'ауыҙын япҡан маймыл',
+    '💌' => 'мөхәббәт хаты',
+    '💘' => 'уҡлы йөрәк',
+    '💝' => 'таҫмалы йөрәк',
+    '💖' => 'ялтырауыҡлы йөрәк',
+    '💗' => 'үҫеүсе йөрәк',
+    '💓' => 'тибеүсе йөрәк',
+    '💞' => 'әйләнеүсе йөрәктәр',
+    '💕' => 'ике йөрәк',
+    '💟' => 'йөрәк биҙәге',
+    '❣' => 'йөрәк өндәүе',
+    '💔' => 'ватыҡ йөрәк',
+    '❤' => 'ҡыҙыл йөрәк',
+    '🩷' => 'алһыу йөрәк',
+    '🧡' => 'ҡыҙғылт һары йөрәк',
+    '💛' => 'һары йөрәк',
+    '💚' => 'йәшел йөрәк',
+    '💙' => 'күк йөрәк',
+    '🩵' => 'зәңгәр йөрәк',
+    '💜' => 'шәмәхә йөрәк',
+    '🤎' => 'көрән йөрәк',
+    '🖤' => 'ҡара йөрәк',
+    '🩶' => 'һоро йөрәк',
+    '🤍' => 'аҡ йөрәк',
+    '💋' => 'үбешеү эҙе',
+    '💯' => 'йөҙ балл',
+    '💢' => 'асыуланыу символы',
+    '🫯' => 'һуғыш болото',
+    '💥' => 'шартлау',
+    '💫' => 'өйөрөлөүсе йондоҙ',
+    '💦' => 'тир тамсылары',
+    '💨' => 'йүгереп китеү',
+    '🕳' => 'тишек',
+    '💬' => 'һөйләшеү ҡыуығы',
+    '🗨' => 'һул һөйләм ҡыуығы',
+    '🗯' => 'уң яҡ асыулы ҡыуыҡ',
+    '💭' => 'уй ҡыуығы',
+    '💤' => 'ZZZ',
+    '👋' => 'ҡул болғау',
+    '🤚' => 'күтәрелгән ҡул арҡаһы',
+    '🖐' => 'бармаҡтары йәйелгән ҡул',
+    '✋' => 'күтәрелгән ҡул',
+    '🖖' => 'вулкан сәләме',
+    '🫱' => 'уңға ҡул',
+    '🫲' => 'һулға ҡул',
+    '🫳' => 'ус төбө аҫҡа ҡараған ҡул',
+    '🫴' => 'ус төбө өҫкә ҡараған ҡул',
+    '🫷' => 'һулға этәреүсе ҡул',
+    '🫸' => 'уңға этәреүсе ҡул',
+    '👌' => 'OK ҡул',
+    '🤌' => 'ҡыҫылған бармаҡтар',
+    '🤏' => 'ҡыҫыусы ҡул',
+    '✌' => 'еңеү ҡулы',
+    '🤞' => 'киҫешкән бармаҡтар',
+    '🫰' => 'аҡса ишаралаусы ҡул',
+    '🤟' => 'мин һине яратам ымлауы',
+    '🤘' => 'мөгөҙ билдәһе',
+    '🤙' => 'миңә шылтырат ҡулы',
+    '👈' => 'һулға күрһәтеүсе ҡул арты',
+    '👉' => 'уңға күрһәтеүсе ҡул арты',
+    '👆' => 'өҫкә күрһәтеүсе ҡул арты',
+    '🖕' => 'урта бармаҡ',
+    '👇' => 'аҫҡа күрһәтеүсе ҡул арты',
+    '☝' => 'өҫкә күрһәтеүсе һуҡ бармаҡ',
+    '🫵' => 'ҡараусыға күрһәтеүсе бармаҡ',
+    '👍' => 'баш бармаҡ өҫкә',
+    '👎' => 'баш бармаҡ аҫҡа',
+    '✊' => 'күтәрелгән йоҙроҡ',
+    '👊' => 'ҡаршы килеүсе йоҙроҡ',
+    '🤛' => 'һулға ҡараған йоҙроҡ',
+    '🤜' => 'уңға ҡараған йоҙроҡ',
+    '👏' => 'ҡул сабыу',
+    '🙌' => 'ҡулдарҙы күтәреү',
+    '🫶' => 'йөрәк ҡулдар',
+    '👐' => 'асыҡ ҡулдар',
+    '🤲' => 'ус төптәре бергә',
+    '🤝' => 'ҡул бирешеү',
+    '🙏' => 'ҡулдарҙы бергә тотоу',
+    '✍' => 'яҙыусы ҡул',
+    '💅' => 'тырнаҡтарҙы буяу',
+    '🤳' => 'селфи',
+    '💪' => 'бицепс күрһәтеүсе ҡул',
+    '🦾' => 'механик ҡул',
+    '🦿' => 'механик аяҡ',
+    '🦵' => 'аяҡ',
+    '👂' => 'ҡолаҡ',
+    '🦻' => 'ишетеү аппараты менән ҡолаҡ',
+    '👃' => 'танау',
+    '🧠' => 'мейе',
+    '🫀' => 'кеше йөрәге',
+    '🫁' => 'үпкә',
+    '🦷' => 'теш',
+    '🦴' => 'һөйәк',
+    '👀' => 'күҙҙәр',
+    '👁' => 'күҙ',
+    '👅' => 'тел',
+    '👄' => 'ауыҙ',
+    '🫦' => 'ирен тешләү',
+    '👶' => 'сабый',
+    '🧒' => 'бала',
+    '👦' => 'малай',
+    '👧' => 'ҡыҙ',
+    '🧑' => 'өлкән',
+    '👱' => 'кеше: аҡһыл сәсле',
+    '👨' => 'ир',
+    '🧔' => 'һаҡаллы кеше',
+    '👩' => 'ҡатын',
+    '🧓' => 'оло кеше',
+    '👴' => 'ҡарт ир',
+    '👵' => 'ҡарт ҡатын',
+    '🙍' => 'йөҙ сирыусы кеше',
+    '🙎' => 'ирен сирыусы кеше',
+    '🙅' => 'ЮҠ тип ымлаусы кеше',
+    '🙆' => 'ЯҠШЫ тип ымлаусы кеше',
+    '💁' => 'ҡул һуҙған кеше',
+    '🙋' => 'ҡул күтәреүсе кеше',
+    '🧏' => 'һаңғырау кеше',
+    '🙇' => 'баш эйеүсе кеше',
+    '🤦' => 'йөҙөн ҡул менән ҡаплаусы кеше',
+    '🤷' => 'кеше яурынын һикертә',
+    '👮' => 'полиция хеҙмәткәре',
+    '🕵' => 'детектив',
+    '💂' => 'һаҡсы',
+    '🥷' => 'ниндзя',
+    '👷' => 'төҙөүсе',
+    '🫅' => 'тажлы кеше',
+    '🤴' => 'принц',
+    '👸' => 'принцесса',
+    '👳' => 'салма кейгән кеше',
+    '👲' => 'түбәтәй кейгән кеше',
+    '🧕' => 'яулыҡлы ҡатын',
+    '🤵' => 'смокингтағы кеше',
+    '👰' => 'фаталы кеше',
+    '🤰' => 'йөклө ҡатын',
+    '🫃' => 'йөклө ир',
+    '🫄' => 'йөклө кеше',
+    '🤱' => 'имеҙеү',
+    '👼' => 'сабый фәрештә',
+    '🎅' => 'Ҡыш бабай',
+    '🤶' => 'Клаус ханым',
+    '🦸' => 'супергерой',
+    '🦹' => 'супер яуыз',
+    '🧚' => 'фея',
+    '🧛' => 'вампир',
+    '🧜' => 'һыу кешеһе',
+    '🧝' => 'эльф',
+    '🧞' => 'джин',
+    '🧟' => 'зомби',
+    '🧌' => 'тролль',
+    '🫈' => 'йөнлө йән эйәһе',
+    '💆' => 'массаж алыусы кеше',
+    '💇' => 'сәс киҫтереүсе кеше',
+    '🚶' => 'йөрөүсе кеше',
+    '🧍' => 'баҫып торған кеше',
+    '🧎' => 'тубыҡланған кеше',
+    '🏃' => 'йүгереүсе кеше',
+    '💃' => 'бейеүсе ҡатын',
+    '🕺' => 'бейеүсе ир-ат',
+    '🕴' => 'һауала осоусы костюмлы кеше',
+    '👯' => 'ҡуян ҡолаҡлы кешеләр',
+    '🧖' => 'мунсалағы кеше',
+    '🧗' => 'ҡаяға үрмәләүсе кеше',
+    '🤺' => 'кеше фехтование менән шөғөлләнә',
+    '🏇' => 'ат сабышы',
+    '⛷' => 'саңғысы',
+    '🏂' => 'сноубордсы',
+    '🏌' => 'гольф уйнаусы кеше',
+    '🏄' => 'серфингсы кеше',
+    '🚣' => 'кәмә ишеүсе кеше',
+    '🏊' => 'йөҙөүсе кеше',
+    '⛹' => 'туп һуғыусы кеше',
+    '🏋' => 'ауыр атлетика менән шөғөлләнеүсе кеше',
+    '🚴' => 'велосипедта йөрөүсе кеше',
+    '🚵' => 'тау велосипедында йөрөүсе кеше',
+    '🤸' => 'кеше ҡулдан ҡулға әйләнә',
+    '🤼' => 'көрәшселәр',
+    '🤽' => 'кеше һыу полоһы уйнай',
+    '🤾' => 'кеше гандбол уйнай',
+    '🤹' => 'кеше жонглерлыҡ итә',
+    '🧘' => 'лотос позаһындағы кеше',
+    '🛀' => 'ванна инеүсе кеше',
+    '🛌' => 'карауаттағы кеше',
+    '👭' => 'ҡул тотошҡан ҡатындар',
+    '👫' => 'ҡул тотошҡан ҡатын һәм ир',
+    '👬' => 'ҡул тотошҡан ирҙәр',
+    '💏' => 'үбеү',
+    '💑' => 'йөрәкле пар',
+    '🗣' => 'һөйләшеүсе баш',
+    '👤' => 'кеше силуэты',
+    '👥' => 'ике силуэт',
+    '🫂' => 'ҡосаҡлашҡан кешеләр',
+    '👪' => 'ғаилә',
+    '👣' => 'аяҡ эҙҙәре',
+    '🫆' => 'бармаҡ эҙе',
+    '🦰' => 'ерән сәс',
+    '🦱' => 'бөҙрә сәс',
+    '🦳' => 'аҡ сәс',
+    '🦲' => 'таҙ',
+    '🐵' => 'маймыл башы',
+    '🐒' => 'маймыл',
+    '🦍' => 'горилла',
+    '🦧' => 'орангутан',
+    '🐶' => 'эт башы',
+    '🐕' => 'эт',
+    '🦮' => 'юл күрһәтеүсе эт',
+    '🐩' => 'пудель',
+    '🐺' => 'бүре башы',
+    '🦊' => 'төлкө башы',
+    '🦝' => 'янут башы',
+    '🐱' => 'бесәй башы',
+    '🐈' => 'бесәй',
+    '🦁' => 'арыҫлан башы',
+    '🐯' => 'юлбарыҫ башы',
+    '🐅' => 'юлбарыҫ',
+    '🐆' => 'леопард',
+    '🐴' => 'ат башы',
+    '🫎' => 'мышы',
+    '🫏' => 'ишәк',
+    '🐎' => 'ат',
+    '🦄' => 'һыңармөгөҙ башы',
+    '🦓' => 'зебра',
+    '🦌' => 'болан',
+    '🦬' => 'бизон',
+    '🐮' => 'һыйыр башы',
+    '🐂' => 'үгеҙ',
+    '🐃' => 'азия буйволы',
+    '🐄' => 'һыйыр',
+    '🐷' => 'сусҡа башы',
+    '🐖' => 'сусҡа',
+    '🐗' => 'ҡабан башы',
+    '🐽' => 'сусҡа танауы',
+    '🐏' => 'һарыҡ тәкәһе',
+    '🐑' => 'һарыҡ',
+    '🐐' => 'кәзә',
+    '🐪' => 'дөйә',
+    '🐫' => 'ике үркәсле дөйә',
+    '🦙' => 'лама',
+    '🦒' => 'жираф',
+    '🐘' => 'фил',
+    '🦣' => 'мамонт',
+    '🦏' => 'мөгөҙморон',
+    '🦛' => 'гиппопотам',
+    '🐭' => 'сысҡан башы',
+    '🐀' => 'сысҡан',
+    '🐹' => 'алйырҙан',
+    '🐰' => 'ҡуян башы',
+    '🐇' => 'ҡуян',
+    '🐿' => 'әлгәнйәк',
+    '🦫' => 'ҡондоҙ',
+    '🦔' => 'терпе',
+    '🦇' => 'ярғанат',
+    '🐻' => 'айыу башы',
+    '🐨' => 'коала башы',
+    '🐼' => 'панда башы',
+    '🦥' => 'ялҡау маймыл',
+    '🦦' => 'ҡама',
+    '🦨' => 'скунс',
+    '🦘' => 'кенгуру',
+    '🦡' => 'бурһыҡ',
+    '🐾' => 'тәпәй эҙҙәре',
+    '🦃' => 'күркә',
+    '🐔' => 'тауыҡ',
+    '🐓' => 'әтәс',
+    '🐣' => 'йомортҡанан сыҡҡан себеш',
+    '🐤' => 'себеш',
+    '🐥' => 'алға ҡараған себеш',
+    '🐦' => 'ҡош',
+    '🐧' => 'пингвин',
+    '🕊' => 'күгәрсен',
+    '🦅' => 'бөркөт',
+    '🦆' => 'өйрәк',
+    '🦢' => 'аҡҡош',
+    '🦉' => 'өкө',
+    '🦤' => 'додо',
+    '🪶' => 'ҡауырһын',
+    '🦩' => 'фламинго',
+    '🦚' => 'тауис',
+    '🦜' => 'тутыйғош',
+    '🪽' => 'ҡанат',
+    '🪿' => 'ҡаҙ',
+    '🐸' => 'тәлмәрйен башы',
+    '🐊' => 'крокодил',
+    '🐢' => 'ташбаҡа',
+    '🦎' => 'кеҫәртке',
+    '🐍' => 'йылан',
+    '🐲' => 'аждаһа башы',
+    '🐉' => 'аждаһа',
+    '🦕' => 'зауропод',
+    '🦖' => 'Ти-Рекс',
+    '🐳' => 'фонтанлы кит',
+    '🐋' => 'кит',
+    '🐬' => 'дельфин',
+    '🫍' => 'косатка',
+    '🦭' => 'тюлень',
+    '🐟' => 'балыҡ',
+    '🐠' => 'тропик балыҡ',
+    '🐡' => 'энәбалыҡ',
+    '🦈' => 'акула',
+    '🐙' => 'һигеҙаяҡ',
+    '🐚' => 'спираль ҡабырсаҡ',
+    '🪸' => 'коралл',
+    '🪼' => 'медуза',
+    '🦀' => 'краб',
+    '🦞' => 'омар',
+    '🦐' => 'креветка',
+    '🦑' => 'кальмар',
+    '🦪' => 'устрица',
+    '🐌' => 'ҡусҡар',
+    '🦋' => 'күбәләк',
+    '🐛' => 'ҡарышлауыҡ',
+    '🐜' => 'ҡырмыҫҡа',
+    '🐝' => 'бал ҡорто',
+    '🐞' => 'ҡуңыҙ',
+    '🦗' => 'сиңерткә',
+    '🪳' => 'тараҡан',
+    '🕷' => 'үрмәксе',
+    '🕸' => 'үрмәксе ауы',
+    '🦂' => 'саян',
+    '🦟' => 'серәкәй',
+    '🪰' => 'себен',
+    '🪱' => 'селәүсен',
+    '🦠' => 'микроб',
+    '💐' => 'букет',
+    '🌸' => 'сейә сәскәһе',
+    '💮' => 'аҡ сәскә',
+    '🪷' => 'лотос',
+    '🏵' => 'розетка',
+    '🌹' => 'рауза',
+    '🥀' => 'һулыған сәскә',
+    '🌺' => 'гибискус',
+    '🌻' => 'көнбағыш',
+    '🌼' => 'сәскә',
+    '🌷' => 'ләлә',
+    '🪻' => 'гиацинт',
+    '🌱' => 'үҫенте',
+    '🪴' => 'һауыттағы үҫемлек',
+    '🌲' => 'мәңге йәшел ағас',
+    '🌳' => 'япраҡлы ағас',
+    '🌴' => 'пальма',
+    '🌵' => 'кактус',
+    '🌾' => 'дөгө көлтәһе',
+    '🌿' => 'үлән',
+    '☘' => 'өсъяпраҡ',
+    '🍀' => 'дүрт япраҡлы клевер',
+    '🍁' => 'саған япрағы',
+    '🍂' => 'ҡойолған япраҡ',
+    '🍃' => 'елдә еблерләгән япраҡ',
+    '🪹' => 'буш оя',
+    '🪺' => 'йомортҡалы оя',
+    '🍄' => 'бәшмәк',
+    '🪾' => 'япраҡһыҙ ағас',
+    '🍇' => 'йөҙөм',
+    '🍈' => 'ҡауын',
+    '🍉' => 'ҡарбуз',
+    '🍊' => 'мандарин',
+    '🍋' => 'лимон',
+    '🍌' => 'банан',
+    '🍍' => 'ананас',
+    '🥭' => 'манго',
+    '🍎' => 'ҡыҙыл алма',
+    '🍏' => 'йәшел алма',
+    '🍐' => 'армыт',
+    '🍑' => 'шафталы',
+    '🍒' => 'сейә',
+    '🍓' => 'еләк',
+    '🫐' => 'күк көртмәле',
+    '🥝' => 'киви емеше',
+    '🍅' => 'помидор',
+    '🫒' => 'зәйтүн',
+    '🥥' => 'кокос',
+    '🥑' => 'авокадо',
+    '🍆' => 'баклажан',
+    '🥔' => 'картуф',
+    '🥕' => 'кишер',
+    '🌽' => 'кукуруз башағы',
+    '🌶' => 'әсе борос',
+    '🫑' => 'болгар боросо',
+    '🥒' => 'ҡыяр',
+    '🥬' => 'япраҡлы йәшелсә',
+    '🥦' => 'брокколи',
+    '🧄' => 'һарымһаҡ',
+    '🧅' => 'һуған',
+    '🥜' => 'ҡытай сәтләүеге',
+    '🫘' => 'фасоль',
+    '🌰' => 'каштан',
+    '🫚' => 'имбир тамыры',
+    '🫛' => 'борсаҡ ҡуҙағы',
+    '🫜' => 'сөгөлдөр',
+    '🍞' => 'икмәк',
+    '🥐' => 'круассан',
+    '🥖' => 'багет',
+    '🫓' => 'йәйпәк икмәк',
+    '🥨' => 'крендель',
+    '🥯' => 'бублик',
+    '🥞' => 'ҡоймаҡ',
+    '🧇' => 'вафли',
+    '🧀' => 'сыр киҫәге',
+    '🍖' => 'һөйәкле ит',
+    '🍗' => 'ҡош ите аяғы',
+    '🥩' => 'ит киҫәге',
+    '🥓' => 'бекон',
+    '🍔' => 'гамбургер',
+    '🍟' => 'фри картуфы',
+    '🍕' => 'пицца',
+    '🌭' => 'хот-дог',
+    '🥪' => 'сэндвич',
+    '🌮' => 'тако',
+    '🌯' => 'буррито',
+    '🫔' => 'тамале',
+    '🥙' => 'көбәп',
+    '🧆' => 'фалафель',
+    '🥚' => 'йомортҡа',
+    '🍳' => 'ашарға әҙерләү',
+    '🥘' => 'ризыҡ һалынған таба',
+    '🍲' => 'аш һауыты',
+    '🫕' => 'фондю',
+    '🥣' => 'ҡалаҡлы һауыт',
+    '🥗' => 'йәшел салат',
+    '🍿' => 'попкорн',
+    '🧈' => 'май',
+    '🧂' => 'тоҙ һауыты',
+    '🥫' => 'консерва',
+    '🍱' => 'бенто йәшниге',
+    '🍘' => 'дөгө крекеры',
+    '🍙' => 'дөгө тубы',
+    '🍚' => 'бешерелгән дөгө',
+    '🍛' => 'карри дөгөһө',
+    '🍜' => 'парлы һауыт',
+    '🍝' => 'спагетти',
+    '🍠' => 'ҡыҙҙырылған татлы картуф',
+    '🍢' => 'одэн',
+    '🍣' => 'суши',
+    '🍤' => 'ҡурылған креветка',
+    '🍥' => 'балыҡ торты',
+    '🥮' => 'ай бәлеше',
+    '🍡' => 'данго',
+    '🥟' => 'билмән',
+    '🥠' => 'күрәҙәлек печеньеһы',
+    '🥡' => 'алып китеү өсөн ҡумта',
+    '🍦' => 'йомшаҡ туңдырма',
+    '🍧' => 'ҡырылған туңдырма',
+    '🍨' => 'туңдырма',
+    '🍩' => 'пончик',
+    '🍪' => 'печенье',
+    '🎂' => 'тыуған көн торты',
+    '🍰' => 'торт киҫәге',
+    '🧁' => 'капкейк',
+    '🥧' => 'бәлеш',
+    '🍫' => 'шоколад',
+    '🍬' => 'кәнфит',
+    '🍭' => 'таяҡта кәнфит',
+    '🍮' => 'пудинг',
+    '🍯' => 'бал һауыты',
+    '🍼' => 'бала шешәһе',
+    '🥛' => 'стәкән һөт',
+    '☕' => 'эҫе эсемлек',
+    '🫖' => 'сәйгүн',
+    '🍵' => 'тотҡаһыҙ сәй сынаяғы',
+    '🍶' => 'саке',
+    '🍾' => 'шампан шешәһе',
+    '🍷' => 'шарап бокалы',
+    '🍸' => 'коктейль бокалы',
+    '🍹' => 'тропик эсемлек',
+    '🍺' => 'һыра көрөшкәһе',
+    '🍻' => 'һыра көрөшкәләрен сәкешеү',
+    '🥂' => 'сәкешеүсе бокалдар',
+    '🥃' => 'виски стаканы',
+    '🫗' => 'шыйыҡса ҡойоу',
+    '🥤' => 'һаламлы сынаяҡ',
+    '🧋' => 'ҡыуыҡлы сәй',
+    '🧃' => 'эсемлектәр йәшниге',
+    '🧉' => 'мате',
+    '🧊' => 'боҙ киҫәге',
+    '🥢' => 'таяҡсалар',
+    '🍽' => 'тәрилкәле сәнске һәм бысаҡ',
+    '🍴' => 'сәнске һәм бысаҡ',
+    '🥄' => 'ҡалаҡ',
+    '🔪' => 'бысаҡ',
+    '🫙' => 'банка',
+    '🏺' => 'амфора',
+    '🌍' => 'Европа-Африканы күрһәтеүсе глобус',
+    '🌎' => 'Американы күрһәтеүсе глобус',
+    '🌏' => 'Азия-Австралияны күрһәтеүсе глобус',
+    '🌐' => 'меридиандар менән глобус',
+    '🗺' => 'донъя картаһы',
+    '🗾' => 'Япония картаһы',
+    '🧭' => 'компас',
+    '🏔' => 'ҡарлы тау',
+    '⛰' => 'тау',
+    '🛘' => 'ер ишелеүе',
+    '🌋' => 'вулкан',
+    '🗻' => 'Фудзияма тауы',
+    '🏕' => 'кемпинг',
+    '🏖' => 'зонт менән пляж',
+    '🏜' => 'сүл',
+    '🏝' => 'сүл утрауы',
+    '🏞' => 'милли парк',
+    '🏟' => 'стадион',
+    '🏛' => 'классик бина',
+    '🏗' => 'бина төҙөлөшө',
+    '🧱' => 'кирбестәр',
+    '🪨' => 'таш',
+    '🪵' => 'ағас',
+    '🛖' => 'аласыҡ',
+    '🏘' => 'йорттар',
+    '🏚' => 'ташландыҡ йорт',
+    '🏠' => 'йорт',
+    '🏡' => 'баҡсалы йорт',
+    '🏢' => 'офис бинаһы',
+    '🏣' => 'япон почтаһы',
+    '🏤' => 'почта',
+    '🏥' => 'дауахана',
+    '🏦' => 'банк',
+    '🏨' => 'ҡунаҡхана',
+    '🏩' => 'мөхәббәт ҡунаҡханаһы',
+    '🏪' => 'уңайлыҡ магазины',
+    '🏫' => 'мәктәп',
+    '🏬' => 'универмаг',
+    '🏭' => 'завод',
+    '🏯' => 'япон һарайы',
+    '🏰' => 'һарай',
+    '💒' => 'туй',
+    '🗼' => 'Токио башняһы',
+    '🗽' => 'Азатлыҡ статуяһы',
+    '⛪' => 'сиркәү',
+    '🕌' => 'мәсет',
+    '🛕' => 'индус ғибәҙәтханаһы',
+    '🕍' => 'синагога',
+    '⛩' => 'синтоист ғибәҙәтханаһы',
+    '🕋' => 'Ҡәғбә',
+    '⛲' => 'фонтан',
+    '⛺' => 'сатыр',
+    '🌁' => 'томанлы',
+    '🌃' => 'йондоҙло төн',
+    '🏙' => 'ҡала күренеше',
+    '🌄' => 'тауҙар өҫтөндә ҡояш сығыуы',
+    '🌅' => 'ҡояш сығыуы',
+    '🌆' => 'ҡала пейзажы эңерҙә',
+    '🌇' => 'ҡояш байыуы',
+    '🌉' => 'төнгө күпер',
+    '♨' => 'эҫе сығанаҡтар',
+    '🎠' => 'карусель аты',
+    '🛝' => 'балалар майҙансығы шыуғысы',
+    '🎡' => 'күҙәтеү тәгәрмәсе',
+    '🎢' => 'шыуыу тауы',
+    '💈' => 'парикмахер бағанаһы',
+    '🎪' => 'цирк сатыры',
+    '🚂' => 'локомотив',
+    '🚃' => 'тимер юл вагоны',
+    '🚄' => 'тиҙ йөрөшлө поезд',
+    '🚅' => 'пуля поезд',
+    '🚆' => 'поезд',
+    '🚇' => 'метро',
+    '🚈' => 'еңел тимер юл',
+    '🚉' => 'тимер юл станцияһы',
+    '🚊' => 'трамвай',
+    '🚝' => 'монорельс',
+    '🚞' => 'тау тимер юлы',
+    '🚋' => 'трамвай вагоны',
+    '🚌' => 'автобус',
+    '🚍' => 'ҡаршы килеүсе автобус',
+    '🚎' => 'троллейбус',
+    '🚐' => 'микроавтобус',
+    '🚑' => 'ашығыс ярҙам машинаһы',
+    '🚒' => 'янғын һүндереү машинаһы',
+    '🚓' => 'полиция машинаһы',
+    '🚔' => 'ҡаршы килеүсе полиция машинаһы',
+    '🚕' => 'такси',
+    '🚖' => 'ҡаршы килеүсе такси',
+    '🚗' => 'автомобиль',
+    '🚘' => 'ҡаршы килеүсе автомобиль',
+    '🚙' => 'джип',
+    '🛻' => 'пикап',
+    '🚚' => 'йөк машинаһы',
+    '🚛' => 'фура',
+    '🚜' => 'трактор',
+    '🏎' => 'ярыш автомобиле',
+    '🏍' => 'мотоцикл',
+    '🦽' => 'инвалид коляскаһы',
+    '🦼' => 'моторлы инвалид коляскаһы',
+    '🛺' => 'авторикша',
+    '🚲' => 'велосипед',
+    '🛴' => 'скутер',
+    '🛹' => 'скейтборд',
+    '🛼' => 'роликлы коньки',
+    '🚏' => 'автобус туҡталышы',
+    '🛣' => 'автомагистраль',
+    '🛤' => 'тимер юл',
+    '🛢' => 'нефть мискәһе',
+    '⛽' => 'яғыулыҡ насосы',
+    '🛞' => 'тәгәрмәс',
+    '🚨' => 'полиция яҡтырғысы',
+    '🚥' => 'горизонталь светофор',
+    '🚦' => 'вертикаль светофор',
+    '🛑' => 'туҡтау билдәһе',
+    '🚧' => 'төҙөлөш',
+    '⚓' => 'якорь',
+    '🛟' => 'ҡотҡарыу түңәрәге',
+    '⛵' => 'елкәнле кәмә',
+    '🛶' => 'каноэ',
+    '🚤' => 'тиҙ йөрөшлө кәмә',
+    '🛳' => 'пассажир карабы',
+    '⛴' => 'паром',
+    '🛥' => 'моторлы кәмә',
+    '🚢' => 'карап',
+    '✈' => 'самолет',
+    '🛩' => 'бәләкәй самолет',
+    '🛫' => 'самолет осоуы',
+    '🛬' => 'самолет килеүе',
+    '🪂' => 'парашют',
+    '💺' => 'урындыҡ',
+    '🚁' => 'вертолет',
+    '🚟' => 'аҫылмалы тимер юлы',
+    '🚠' => 'тау кабелле юлы',
+    '🚡' => 'һауа трамвай юлы',
+    '🛰' => 'юлдаш',
+    '🚀' => 'ракета',
+    '🛸' => 'осоусы тәрилкә',
+    '🛎' => 'ҡунаҡхана ҡыңғырауы',
+    '🧳' => 'багаж',
+    '⌛' => 'ҡом сәғәте тамам',
+    '⏳' => 'ҡом сәғәте тамамланмаған',
+    '⌚' => 'ҡул сәғәте',
+    '⏰' => 'уятҡыс',
+    '⏱' => 'секундомер',
+    '⏲' => 'таймер сәғәте',
+    '🕰' => 'камин сәғәте',
+    '🕛' => 'сәғәт ун ике',
+    '🕧' => 'беренсе ярты',
+    '🕐' => 'сәғәт бер',
+    '🕜' => 'икенсе ярты',
+    '🕑' => 'сәғәт ике',
+    '🕝' => 'өсөнсө ярты',
+    '🕒' => 'сәғәт өс',
+    '🕞' => 'дүртенсе ярты',
+    '🕓' => 'сәғәт дүрт',
+    '🕟' => 'бишенсе ярты',
+    '🕔' => 'сәғәт биш',
+    '🕠' => 'алтынсы ярты',
+    '🕕' => 'сәғәт алты',
+    '🕡' => 'етенсе ярты',
+    '🕖' => 'сәғәт ете',
+    '🕢' => 'һигеҙенсе ярты',
+    '🕗' => 'сәғәт һигеҙ',
+    '🕣' => 'туғыҙынсы ярты',
+    '🕘' => 'сәғәт туғыҙ',
+    '🕤' => 'унынсы ярты',
+    '🕙' => 'сәғәт ун',
+    '🕥' => 'ун беренсе ярты',
+    '🕚' => 'сәғәт ун бер',
+    '🕦' => 'ун икенсе ярты',
+    '🌑' => 'яңы ай',
+    '🌒' => 'үҫеүсе ярым ай',
+    '🌓' => 'беренсе сирек ай',
+    '🌔' => 'үҫеүсе тулы ай',
+    '🌕' => 'тулы ай',
+    '🌖' => 'кәмеүсе тулы ай',
+    '🌗' => 'һуңғы сирек ай',
+    '🌘' => 'кәмеүсе ярым ай',
+    '🌙' => 'ярым ай',
+    '🌚' => 'йөҙлө яңы ай',
+    '🌛' => 'йөҙлө беренсе сирек ай',
+    '🌜' => 'йөҙлө һуңғы сирек ай',
+    '🌡' => 'термометр',
+    '☀' => 'ҡояш',
+    '🌝' => 'йөҙлө тулы ай',
+    '🌞' => 'йөҙлө ҡояш',
+    '🪐' => 'ҡулсалы планета',
+    '⭐' => 'йондоҙ',
+    '🌟' => 'яҡты йондоҙ',
+    '🌠' => 'атыусы йондоҙ',
+    '🌌' => 'Ҡош юлы',
+    '☁' => 'болот',
+    '⛅' => 'болот артындағы ҡояш',
+    '⛈' => 'йәшенле һәм ямғырлы болот',
+    '🌤' => 'бәләкәй болот артында ҡояш',
+    '🌥' => 'ҙур болот артында ҡояш',
+    '🌦' => 'ямғырлы болот артында ҡояш',
+    '🌧' => 'ямғырлы болот',
+    '🌨' => 'ҡарлы болот',
+    '🌩' => 'йәшенле болот',
+    '🌪' => 'торнадо',
+    '🌬' => 'ел йөҙө',
+    '🌀' => 'циклон',
+    '🌈' => 'йәйғор',
+    '🌂' => 'ябыҡ зонт',
+    '☂' => 'зонт',
+    '☔' => 'ямғыр тамсылары менән зонт',
+    '⛱' => 'ерҙәге зонт',
+    '⚡' => 'юғары көсөргәнеш',
+    '❄' => 'ҡар бөртөгө',
+    '☃' => 'ҡар бабай',
+    '⛄' => 'ҡарһыҙ ҡар бабай',
+    '☄' => 'комета',
+    '🔥' => 'ут',
+    '💧' => 'тамсы',
+    '🌊' => 'һыу тулҡыны',
+    '🎃' => 'фонарь-ҡабаҡ',
+    '🎄' => 'раштыуа ағасы',
+    '🎆' => 'фейерверк',
+    '🎇' => 'бенгаль уты',
+    '🧨' => 'динамит',
+    '✨' => 'осҡондар',
+    '🎈' => 'һауа шары',
+    '🎊' => 'конфетти тубы',
+    '🎋' => 'танабата ағасы',
+    '🎍' => 'ҡарағай биҙәүесе',
+    '🎎' => 'япон ҡурсаҡтары',
+    '🎏' => 'карп флагы',
+    '🎐' => 'ел ҡыңғырауы',
+    '🎑' => 'ай ҡарау тантанаһы',
+    '🧧' => 'ҡыҙыл конверт',
+    '🎀' => 'таҫма',
+    '🎁' => 'төрөлгән бүләк',
+    '🎗' => 'иҫкә төшөрөү таҫмаһы',
+    '🎟' => 'инеү билеттары',
+    '🎫' => 'билет',
+    '🎖' => 'хәрби миҙал',
+    '🏆' => 'кубок',
+    '🏅' => 'спорт миҙалы',
+    '🥇' => '1-се урын миҙалы',
+    '🥈' => '2-се урын миҙалы',
+    '🥉' => '3-сө урын миҙалы',
+    '⚽' => 'футбол тубы',
+    '⚾' => 'бейсбол',
+    '🥎' => 'софтбол',
+    '🏀' => 'баскетбол',
+    '🏐' => 'волейбол',
+    '🏈' => 'америка футболы',
+    '🏉' => 'регби тубы',
+    '🎾' => 'теннис',
+    '🥏' => 'осоусы диск',
+    '🎳' => 'боулинг',
+    '🏏' => 'крикет уйыны',
+    '🏑' => 'үлән хоккейы',
+    '🏒' => 'хоккей',
+    '🥍' => 'лакросс',
+    '🏓' => 'пинг-понг',
+    '🏸' => 'бадминтон',
+    '🥊' => 'бокс бирсәткәһе',
+    '🥋' => 'хәрби сәнғәт кейеме',
+    '🥅' => 'ҡапҡа селтәре',
+    '⛳' => 'соҡорҙағы флаг',
+    '⛸' => 'коньки',
+    '🎣' => 'балыҡ менән ҡармаҡ',
+    '🤿' => 'һыу аҫтында йөҙөү өсөн битлек',
+    '🎽' => 'йүгереү футболкаһы',
+    '🎿' => 'саңғы',
+    '🛷' => 'сана',
+    '🥌' => 'керлинг ташы',
+    '🎯' => 'дартс',
+    '🪀' => 'йо-йо',
+    '🪁' => 'ҡағыҙ осорғос',
+    '🔫' => 'һыу пистолеты',
+    '🎱' => 'бильярд шары',
+    '🔮' => 'гәлсәр шар',
+    '🪄' => 'тылсымлы таяҡ',
+    '🎮' => 'видеоуйын',
+    '🕹' => 'джойстик',
+    '🎰' => 'уйын автоматы',
+    '🎲' => 'уйын һөйәге',
+    '🧩' => 'башватҡыс киҫәге',
+    '🧸' => 'йомшаҡ айыу',
+    '🪅' => 'пиньята',
+    '🪩' => 'көҙгө шар',
+    '🪆' => 'матрешка',
+    '♠' => 'ҡарға тамғаһы',
+    '♥' => 'йөрәк тамғаһы',
+    '♦' => 'бубий тамғаһы',
+    '♣' => 'тәре тамғаһы',
+    '♟' => 'шахмат пешкаһы',
+    '🃏' => 'джокер',
+    '🀄' => 'маджонг ҡыҙыл аждаһа',
+    '🎴' => 'сәскәле уйын кәрттәре',
+    '🎭' => 'театр маскалары',
+    '🖼' => 'рамлы һүрәт',
+    '🎨' => 'рәссам палитраһы',
+    '🧵' => 'еп',
+    '🪡' => 'тегеү энәһе',
+    '🧶' => 'йөн йомғағы',
+    '🪢' => 'төйөн',
+    '👓' => 'күҙлек',
+    '🕶' => 'ҡояш күҙлеге',
+    '🥽' => 'һаҡлағыс күҙлек',
+    '🥼' => 'лаборатория халаты',
+    '🦺' => 'ҡотҡарыу жилеты',
+    '👔' => 'галстук',
+    '👕' => 'футболка',
+    '👖' => 'джинсы',
+    '🧣' => 'шарф',
+    '🧤' => 'бирсәткә',
+    '🧥' => 'пальто',
+    '🧦' => 'ойоҡ',
+    '👗' => 'күлдәк',
+    '👘' => 'кимоно',
+    '🥻' => 'сари',
+    '🩱' => 'бер өлөшлө һыу кейеме',
+    '🩲' => 'трусик',
+    '🩳' => 'шорты',
+    '👙' => 'бикини',
+    '👚' => 'ҡатын-ҡыҙ кейеме',
+    '🪭' => 'ҡул елпеүесе',
+    '👛' => 'янсыҡ',
+    '👜' => 'сумка',
+    '👝' => 'клатч',
+    '🛍' => 'һатып алыу сумкалары',
+    '🎒' => 'рюкзак',
+    '🩴' => 'вьетнамка',
+    '👞' => 'ир-ат аяҡ кейеме',
+    '👟' => 'кроссовка',
+    '🥾' => 'поход ботинкаһы',
+    '🥿' => 'яҫы аяҡ кейеме',
+    '👠' => 'бейек үксәле аяҡ кейеме',
+    '👡' => 'ҡатын-ҡыҙ сандалы',
+    '🩰' => 'балет аяҡ кейеме',
+    '👢' => 'ҡатын-ҡыҙ итеге',
+    '🪮' => 'афро-тараҡ',
+    '👑' => 'таж',
+    '👒' => 'ҡатын-ҡыҙ эшләпәһе',
+    '🎩' => 'цилиндр',
+    '🎓' => 'сығарылыш башлығы',
+    '🧢' => 'бейсболка',
+    '🪖' => 'хәрби шлем',
+    '⛑' => 'ҡотҡарыусының шлемы',
+    '📿' => 'доға йөҙөгө',
+    '💄' => 'ирен буяуы',
+    '💍' => 'балдаҡ',
+    '💎' => 'аҫыл таш',
+    '🔇' => 'тауышһыҙ динамик',
+    '🔈' => 'динамиктың тауышы түбән',
+    '🔉' => 'динамиктың уртаса тауышы',
+    '🔊' => 'динамиктың юғары тауышы',
+    '📢' => 'тауыш көсәйткес',
+    '📣' => 'мегафон',
+    '📯' => 'почта мөгөҙө',
+    '🔔' => 'ҡыңғырау',
+    '🔕' => 'һыҙыҡлы ҡыңғырау',
+    '🎼' => 'музыкаль партитура',
+    '🎵' => 'музыкаль нота',
+    '🎶' => 'музыкаль ноталар',
+    '🎙' => 'студия микрофоны',
+    '🎚' => 'кимәл слайдеры',
+    '🎛' => 'идара итеү тотҡалары',
+    '🎤' => 'микрофон',
+    '🎧' => 'ҡолаҡса',
+    '📻' => 'радио',
+    '🎷' => 'саксофон',
+    '🎺' => 'торба',
+    '🪊' => 'тромбон',
+    '🪗' => 'аккордеон',
+    '🎸' => 'гитара',
+    '🎹' => 'музыкаль баҫмаҡтар',
+    '🎻' => 'скрипка',
+    '🪕' => 'банджо',
+    '🥁' => 'барабан',
+    '🪘' => 'оҙон барабан',
+    '🪇' => 'маракас',
+    '🪈' => 'флейта',
+    '🪉' => 'арфа',
+    '📱' => 'кәрәҙле телефон',
+    '📲' => 'уҡ менән кәрәҙле телефон',
+    '☎' => 'телефон',
+    '📞' => 'телефон трубкаһы',
+    '📟' => 'пейджер',
+    '📠' => 'факс аппараты',
+    '🔋' => 'батарейка',
+    '🪫' => 'түбән заряд',
+    '🔌' => 'электр вилкаһы',
+    '💻' => 'ноутбук',
+    '🖥' => 'өҫтәл компьютеры',
+    '🖨' => 'принтер',
+    '⌨' => 'баҫмаҡтар',
+    '🖱' => 'компьютер сысҡаны',
+    '🖲' => 'трекбол',
+    '💽' => 'компьютер дискы',
+    '💾' => 'дискета',
+    '💿' => 'оптик диск',
+    '📀' => 'DVD',
+    '🧮' => 'иҫәпләү таҡтаһы',
+    '🎥' => 'кинокамера',
+    '🎞' => 'кино кадрҙары',
+    '📽' => 'кинопроектор',
+    '🎬' => 'кино таҡтаһы',
+    '📺' => 'телевизор',
+    '📷' => 'фотоаппарат',
+    '📸' => 'балҡышлы фотоаппарат',
+    '📹' => 'видеокамера',
+    '📼' => 'видеокассета',
+    '🔍' => 'һулға эйелгән лупа',
+    '🔎' => 'уңға эйелгән лупа',
+    '🕯' => 'шәм',
+    '💡' => 'лампочка',
+    '🔦' => 'фонарик',
+    '🏮' => 'ҡыҙыл ҡағыҙ фонарь',
+    '🪔' => 'дия лампаһы',
+    '📔' => 'биҙәкле тышлы дәфтәр',
+    '📕' => 'ябыҡ китап',
+    '📖' => 'асыҡ китап',
+    '📗' => 'йәшел китап',
+    '📘' => 'зәңгәр китап',
+    '📙' => 'ҡыҙғылт һары китап',
+    '📚' => 'китаптар',
+    '📓' => 'дәфтәр',
+    '📒' => 'иҫәп китабы',
+    '📃' => 'бөгөлгән бит',
+    '📜' => 'төргәк',
+    '📄' => 'өҫкә ҡараған бит',
+    '📰' => 'гәзит',
+    '🗞' => 'төрөлгән гәзит',
+    '📑' => 'билдәләү ҡулланмалары',
+    '🔖' => 'билдәләү',
+    '🏷' => 'бирка',
+    '🪙' => 'тәңкә',
+    '💰' => 'аҡса тоҡсаһы',
+    '🪎' => 'хазина һандығы',
+    '💴' => 'иена банкнотаһы',
+    '💵' => 'доллар банкнотаһы',
+    '💶' => 'евро банкнотаһы',
+    '💷' => 'фунт банкнотаһы',
+    '💸' => 'ҡанатлы аҡса',
+    '💳' => 'кредит картаһы',
+    '🧾' => 'чек',
+    '💹' => 'иена менән үҫеүсе график',
+    '✉' => 'конверт',
+    '📧' => 'электрон почта',
+    '📨' => 'килгән конверт',
+    '📩' => 'уҡлы конверт',
+    '📤' => 'китеүсе хат тартмаһы',
+    '📥' => 'килеүсе хат тартмаһы',
+    '📦' => 'посылка',
+    '📫' => 'флагы күтәрелгән ябыҡ почта йәшниге',
+    '📪' => 'флагы төшөрөлгән ябыҡ почта йәшниге',
+    '📬' => 'флагы күтәрелгән асыҡ почта йәшниге',
+    '📭' => 'флагы төшөрөлгән асыҡ почта йәшниге',
+    '📮' => 'почта йәшниге',
+    '🗳' => 'һайлау йәшниге',
+    '✏' => 'ҡәләм',
+    '✒' => 'перо',
+    '🖋' => 'перолы ручка',
+    '🖊' => 'ручка',
+    '🖌' => 'бумала',
+    '📝' => 'яҙма',
+    '💼' => 'портфель',
+    '📁' => 'папка',
+    '📂' => 'асыҡ папка',
+    '🗂' => 'картотека бүлгестәре',
+    '📅' => 'календарь',
+    '📆' => 'йыртыу календары',
+    '🗒' => 'спираль блокнот',
+    '🗓' => 'спираль календарь',
+    '📇' => 'картотека',
+    '📈' => 'үҫеүсе график',
+    '📉' => 'кәмеүсе график',
+    '📊' => 'бағаналы диаграмма',
+    '📋' => 'ҡыҫҡыслы планшет',
+    '📌' => 'төймә',
+    '📍' => 'түңәрәк төймә',
+    '📎' => 'ҡыҫтырғыс',
+    '🖇' => 'тоташтырылған ҡағыҙ ҡыҫтырғыстар',
+    '📏' => 'тура линейка',
+    '📐' => 'өсмөйөш һыҙғыс',
+    '✂' => 'ҡайсы',
+    '🗃' => 'картотека тартмаһы',
+    '🗄' => 'файл шкафы',
+    '🗑' => 'сүп-сар кәрзине',
+    '🔒' => 'бикле йоҙаҡ',
+    '🔓' => 'асыҡ йоҙаҡ',
+    '🔏' => 'ручка менән бикле йоҙаҡ',
+    '🔐' => 'асҡыс менән бикле йоҙаҡ',
+    '🔑' => 'асҡыс',
+    '🗝' => 'иҫке асҡыс',
+    '🔨' => 'сүкеш',
+    '🪓' => 'балта',
+    '⛏' => 'кирка',
+    '⚒' => 'сүкеш һәм кирка',
+    '🛠' => 'сүкеш һәм гайка асҡысы',
+    '🗡' => 'хәнйәр',
+    '⚔' => 'киҫешкән ҡылыстар',
+    '💣' => 'бомба',
+    '🪃' => 'бумеранг',
+    '🏹' => 'йәйә һәм уҡ',
+    '🛡' => 'ҡалҡан',
+    '🪚' => 'ағас бысҡыһы',
+    '🔧' => 'гайка асҡысы',
+    '🪛' => 'отвертка',
+    '🔩' => 'гайка һәм болт',
+    '⚙' => 'шестерня',
+    '🗜' => 'ҡыҫҡыс',
+    '⚖' => 'үлсәү',
+    '🦯' => 'аҡ таяҡ',
+    '🔗' => 'һылтанма',
+    '⛓' => 'сылбырҙар',
+    '🪝' => 'ҡармаҡ',
+    '🧰' => 'ҡоралдар йәшниге',
+    '🧲' => 'магнит',
+    '🪜' => 'баҫҡыс',
+    '🪏' => 'көрәк',
+    '⚗' => 'алембик',
+    '🧪' => 'пробирка',
+    '🧫' => 'Петри сынаяғы',
+    '🧬' => 'ДНК',
+    '🔬' => 'микроскоп',
+    '🔭' => 'телескоп',
+    '📡' => 'спутник антеннаһы',
+    '💉' => 'шприц',
+    '🩸' => 'ҡан тамсыһы',
+    '💊' => 'дарыу',
+    '🩹' => 'йәбештереү бинты',
+    '🩼' => 'ҡултыҡ таяғы',
+    '🩺' => 'стетоскоп',
+    '🩻' => 'рентген',
+    '🚪' => 'ишек',
+    '🛗' => 'лифт',
+    '🪞' => 'көҙгө',
+    '🪟' => 'тәҙрә',
+    '🛏' => 'карауат',
+    '🛋' => 'диван һәм лампа',
+    '🪑' => 'ултырғыс',
+    '🚽' => 'унитаз',
+    '🪠' => 'вантуз',
+    '🚿' => 'душ',
+    '🛁' => 'ванна',
+    '🪤' => 'сысҡан ҡапҡаны',
+    '🪒' => 'ҡырынғыс',
+    '🧴' => 'лосьон шешәһе',
+    '🧷' => 'инглиз төйрәүесе',
+    '🧹' => 'һепертке',
+    '🧺' => 'кәрзин',
+    '🧻' => 'ҡағыҙ рулоны',
+    '🪣' => 'биҙрә',
+    '🧼' => 'һабын',
+    '🫧' => 'ҡыуыҡтар',
+    '🪥' => 'теш щеткаһы',
+    '🧽' => 'губка',
+    '🧯' => 'янғын һүндергес',
+    '🛒' => 'һатып алыу арбаһы',
+    '🚬' => 'сигәрит',
+    '⚰' => 'табут',
+    '🪦' => 'ҡәбер ташы',
+    '⚱' => 'ерләү урнаһы',
+    '🧿' => 'назар амулеты',
+    '🪬' => 'хамса',
+    '🗿' => 'моаи',
+    '🪧' => 'плакат',
+    '🪪' => 'шәхес таныҡлығы',
+    '🏧' => 'банкомат билдәһе',
+    '🚮' => 'сүп-сар һауыты билдәһе',
+    '🚰' => 'эсәр һыу',
+    '♿' => 'инвалид коляскаһы символы',
+    '🚹' => 'ирҙәр бүлмәһе',
+    '🚺' => 'ҡатын-ҡыҙҙар бүлмәһе',
+    '🚻' => 'бәҙрәф',
+    '🚼' => 'бала билдәһе',
+    '🛂' => 'паспорт контроле',
+    '🛃' => 'таможня',
+    '🛄' => 'багаж алыу',
+    '🛅' => 'ҡалдырылған багаж',
+    '⚠' => 'иҫкәртеү',
+    '🚸' => 'балалар үткәүеле',
+    '⛔' => 'инеү тыйылған',
+    '🚫' => 'тыйылған',
+    '🚳' => 'велосипедтар тыйылған',
+    '🚭' => 'тәмәке тартыу тыйылған',
+    '🚯' => 'сүпләмәгеҙ',
+    '🚱' => 'эсәр булмаған һыу',
+    '🚷' => 'йәйәүлеләр тыйылған',
+    '📵' => 'мобиль телефондар тыйылған',
+    '🔞' => 'ун һигеҙ йәшкә тиклемгеләргә ярамай',
+    '☢' => 'радиоактив',
+    '☣' => 'биохәүеф',
+    '⬆' => 'өҫкә уҡ',
+    '↗' => 'өҫкә-уңға уҡ',
+    '➡' => 'уңға уҡ',
+    '↘' => 'аҫҡа-уң уҡ',
+    '⬇' => 'аҫҡа уҡ',
+    '↙' => 'аҫҡа-һул уҡ',
+    '⬅' => 'һулға уҡ',
+    '↖' => 'өҫкә-һул уҡ',
+    '↕' => 'өҫкә-аҫҡа уҡ',
+    '↔' => 'һул-уң уҡ',
+    '↩' => 'уң уҡ һулға бөгөлгән',
+    '↪' => 'һул уҡ уңға бөгөлгән',
+    '⤴' => 'өҫкә бөгөлгән уңға уҡ',
+    '⤵' => 'аҫҡа бөгөлгән уңға уҡ',
+    '🔃' => 'сәғәт йүнәлешендә вертикаль уҡтар',
+    '🔄' => 'сәғәт йүнәлешенә ҡаршы уҡтар төймәһе',
+    '🔙' => 'АРТҠА уғы',
+    '🔚' => 'АХЫР уғы',
+    '🔛' => 'ҠАБЫНҒАН! уғы',
+    '🔜' => 'ОҘАҠЛАМАЙ уғы',
+    '🔝' => 'ӨҪ уғы',
+    '🛐' => 'ғибәҙәт урыны',
+    '⚛' => 'атом символы',
+    '🕉' => 'ом',
+    '✡' => 'Дауыт йондоҙо',
+    '☸' => 'дхарма тәгәрмәсе',
+    '☯' => 'инь-ян',
+    '✝' => 'латин тәреһе',
+    '☦' => 'православие тәреһе',
+    '☪' => 'йондоҙ һәм ярым ай',
+    '☮' => 'тыныслыҡ символы',
+    '🕎' => 'менора',
+    '🔯' => 'нөктәле алты мөйөшлө йондоҙ',
+    '🪯' => 'кханда',
+    '♈' => 'Ҡуҙы',
+    '♉' => 'Буға',
+    '♊' => 'Игеҙәктәр',
+    '♋' => 'Ҡыҫала',
+    '♌' => 'Арыҫлан',
+    '♍' => 'Ҡыҙ',
+    '♎' => 'Үлсәү',
+    '♏' => 'Саян',
+    '♐' => 'Уҡсы',
+    '♑' => 'Ылаҡ',
+    '♒' => 'Һыуғояр',
+    '♓' => 'Балыҡ',
+    '⛎' => 'Йылан тотоусы',
+    '🔀' => 'тректарҙы бутау төймәһе',
+    '🔁' => 'ҡабатлау төймәһе',
+    '🔂' => 'бер тапҡыр ҡабатлау төймәһе',
+    '▶' => 'уйнау төймәһе',
+    '⏩' => 'алға тиҙләтеү төймәһе',
+    '⏭' => 'киләһе трек төймәһе',
+    '⏯' => 'уйнау йәки пауза төймәһе',
+    '◀' => 'кирегә төймәһе',
+    '⏪' => 'кире тиҙләтеү төймәһе',
+    '⏮' => 'үткән трек төймәһе',
+    '🔼' => 'өҫкә төймәһе',
+    '⏫' => 'өҫкә тиҙләтеү төймәһе',
+    '🔽' => 'аҫҡа төймә',
+    '⏬' => 'аҫҡа тиҙләтеү төймәһе',
+    '⏸' => 'пауза төймәһе',
+    '⏹' => 'туҡтатыу төймәһе',
+    '⏺' => 'яҙыу төймәһе',
+    '⏏' => 'сығарыу төймәһе',
+    '🎦' => 'кино',
+    '🔅' => 'тоноҡ төймәһе',
+    '🔆' => 'яҡты төймәһе',
+    '📶' => 'антенна һыҙаттары',
+    '🛜' => 'сымһыҙ',
+    '📳' => 'вибрация режимы',
+    '📴' => 'мобиль телефон һүндерелгән',
+    '♀' => 'ҡатын-ҡыҙ билдәһе',
+    '♂' => 'ир-ат билдәһе',
+    '⚧' => 'трансгендер символы',
+    '✖' => 'ҡабатлау',
+    '➕' => 'плюс',
+    '➖' => 'минус',
+    '➗' => 'бүлеү',
+    '🟰' => 'ҡуйы тигеҙлек билдәһе',
+    '♾' => 'сикһеҙлек',
+    '‼' => 'ике өндәү билдәһе',
+    '⁉' => 'өндәү һорау билдәһе',
+    '❓' => 'ҡыҙыл һорау билдәһе',
+    '❔' => 'аҡ һорау билдәһе',
+    '❕' => 'аҡ өндәү билдәһе',
+    '❗' => 'ҡыҙыл өндәү билдәһе',
+    '〰' => 'тулҡынлы һыҙыҡ',
+    '💱' => 'валюта алмашыу',
+    '💲' => 'ҡалын доллар билдәһе',
+    '⚕' => 'медицина символы',
+    '♻' => 'эшкәртеү символы',
+    '⚜' => 'геральдик ләлә',
+    '🔱' => 'өс тешле герб',
+    '📛' => 'бейдж',
+    '🔰' => 'япон яңы башлаусы символы',
+    '⭕' => 'эсе буш ҡыҙыл түңәрәк',
+    '✅' => 'билдә ҡуйыу төймәһе',
+    '☑' => 'квадратҡа ҡуйылған билдә',
+    '✔' => 'билдә',
+    '❌' => 'тәре билдәһе',
+    '❎' => 'тәре билдәһе төймәһе',
+    '➰' => 'элмәк',
+    '➿' => 'икеләтә элмәк',
+    '〽' => 'өлөш алмашыу билдәһе',
+    '✳' => 'һигеҙ нурлы йондоҙ',
+    '✴' => 'һигеҙ осло йондоҙ',
+    '❇' => 'осҡон',
+    '™' => 'тауар билдәһе',
+    '🫟' => 'тап',
+    '🔠' => 'латин баш хәрефтәрен индереү',
+    '🔡' => 'латин бәләкәй хәрефтәрен индереү',
+    '🔢' => 'һандарҙы индереү',
+    '🔣' => 'символдарҙы индереү',
+    '🔤' => 'латин хәрефтәрен индереү',
+    '🅰' => 'A ҡан төркөмө',
+    '🆎' => 'AB ҡан төркөмө',
+    '🅱' => 'B ҡан төркөмө',
+    '🆑' => '"таҙартыу" төймәһе',
+    '🆒' => '"шәп" төймәһе',
+    '🆓' => '"бушлай" төймәһе',
+    'ℹ' => 'мәғлүмәт билдәһе',
+    '🆔' => '"асыҡлау" төймәһе',
+    'Ⓜ' => 'түңәрәкләнгән M',
+    '🆕' => '"яңы" төймәһе',
+    '🆖' => '"ярамай" төймәһе',
+    '🅾' => '0 ҡаң төркөмө',
+    '🆗' => 'OK төймәһе',
+    '🅿' => '"парковка" төймәһе',
+    '🆘' => 'SOS төймәһе',
+    '🆙' => 'UP! төймәһе',
+    '🆚' => '"ҡаршы" төймәһе',
+    '🈁' => 'японса «бында» төймәһе',
+    '🈂' => 'японса «хеҙмәт хаҡы» төймәһе',
+    '🈷' => 'японса «айлыҡ сумма» төймәһе',
+    '🈶' => 'японса «бушлай түгел» төймәһе',
+    '🈯' => 'японса «броньланған» төймәһе',
+    '🉐' => 'японса «килешеү» төймәһе',
+    '🈹' => 'японса «ташлама» төймәһе',
+    '🈚' => 'японса «бушлай» төймәһе',
+    '🈲' => 'японса «тыйылған» төймәһе',
+    '🉑' => 'японса «ҡабул ителә» төймәһе',
+    '🈸' => 'японса «ғариза» төймәһе',
+    '🈴' => 'японса «үтеү баллы» төймәһе',
+    '🈳' => 'японса «буш урын» төймәһе',
+    '㊗' => 'японса «ҡотлауҙар» төймәһе',
+    '㊙' => 'японса «сер» төймәһе',
+    '🈺' => 'японса «эш өсөн асыҡ» төймәһе',
+    '🈵' => 'японса «буш урын юҡ» төймәһе',
+    '🔴' => 'ҡыҙыл түңәрәк',
+    '🟠' => 'ҡыҙғылт һары түңәрәк',
+    '🟡' => 'һары түңәрәк',
+    '🟢' => 'йәшел түңәрәк',
+    '🔵' => 'күк түңәрәк',
+    '🟣' => 'шәмәхә түңәрәк',
+    '🟤' => 'көрән түңәрәк',
+    '⚫' => 'ҡара түңәрәк',
+    '⚪' => 'аҡ түңәрәк',
+    '🟥' => 'ҡыҙыл квадрат',
+    '🟧' => 'ҡыҙғылт һары квадрат',
+    '🟨' => 'һары квадрат',
+    '🟩' => 'йәшел квадрат',
+    '🟦' => 'күк квадрат',
+    '🟪' => 'шәмәхә квадрат',
+    '🟫' => 'көрән квадрат',
+    '⬛' => 'ҙур ҡара квадрат',
+    '⬜' => 'ҙур аҡ квадрат',
+    '◼' => 'ҡара уртаса квадрат',
+    '◻' => 'аҡ уртаса квадрат',
+    '◾' => 'ҡара уртаса-бәләкәй квадрат',
+    '◽' => 'аҡ уртаса-бәләкәй квадрат',
+    '▪' => 'ҡара бәләкәй квадрат',
+    '▫' => 'аҡ бәләкәй квадрат',
+    '🔶' => 'ҙур ҡыҙғылт һары ромб',
+    '🔷' => 'ҙур күк ромб',
+    '🔸' => 'бәләкәй ҡыҙғылт һары ромб',
+    '🔹' => 'бәләкәй күк ромб',
+    '🔺' => 'өҫкә йүнәлтелгән ҡыҙыл өсмөйөш',
+    '🔻' => 'аҫҡа йүнәлтелгән ҡыҙыл өсмөйөш',
+    '💠' => 'нөктәле ромб',
+    '🔳' => 'аҡ квадрат төймә',
+    '🔲' => 'ҡара квадрат төймә',
+    '🏁' => 'шашкалы флаг',
+    '🚩' => 'өсмөйөшлө флаг',
+    '🎌' => 'киҫешеүсе флагтар',
+    '🏴' => 'ҡара флаг',
+    '🏳' => 'аҡ флаг',
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-be.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-be.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-be.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-be.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'пацалунак: жанчына жанчына цёмны тон скуры сярэдні тон скуры',
     '👩🏿‍❤‍💋‍👩🏾' => 'пацалунак: жанчына жанчына цёмны тон скуры сярэдняцёмны тон скуры',
     '👩🏿‍❤‍💋‍👩🏿' => 'пацалунак: жанчына жанчына цёмны тон скуры',
+    '🧑🏻‍🫯‍🧑🏼' => 'барцы: светлы тон скуры сярэднясветлы тон скуры',
+    '🧑🏻‍🫯‍🧑🏽' => 'барцы: светлы тон скуры сярэдні тон скуры',
+    '🧑🏻‍🫯‍🧑🏾' => 'барцы: светлы тон скуры сярэдняцёмны тон скуры',
+    '🧑🏻‍🫯‍🧑🏿' => 'барцы: светлы тон скуры цёмны тон скуры',
+    '🧑🏼‍🫯‍🧑🏻' => 'барцы: сярэднясветлы тон скуры светлы тон скуры',
+    '🧑🏼‍🫯‍🧑🏽' => 'барцы: сярэднясветлы тон скуры сярэдні тон скуры',
+    '🧑🏼‍🫯‍🧑🏾' => 'барцы: сярэднясветлы тон скуры сярэдняцёмны тон скуры',
+    '🧑🏼‍🫯‍🧑🏿' => 'барцы: сярэднясветлы тон скуры цёмны тон скуры',
+    '🧑🏽‍🫯‍🧑🏻' => 'барцы: сярэдні тон скуры светлы тон скуры',
+    '🧑🏽‍🫯‍🧑🏼' => 'барцы: сярэдні тон скуры сярэднясветлы тон скуры',
+    '🧑🏽‍🫯‍🧑🏾' => 'барцы: сярэдні тон скуры сярэдняцёмны тон скуры',
+    '🧑🏽‍🫯‍🧑🏿' => 'барцы: сярэдні тон скуры цёмны тон скуры',
+    '🧑🏾‍🫯‍🧑🏻' => 'барцы: сярэдняцёмны тон скуры светлы тон скуры',
+    '🧑🏾‍🫯‍🧑🏼' => 'барцы: сярэдняцёмны тон скуры сярэднясветлы тон скуры',
+    '🧑🏾‍🫯‍🧑🏽' => 'барцы: сярэдняцёмны тон скуры сярэдні тон скуры',
+    '🧑🏾‍🫯‍🧑🏿' => 'барцы: сярэдняцёмны тон скуры цёмны тон скуры',
+    '🧑🏿‍🫯‍🧑🏻' => 'барцы: цёмны тон скуры светлы тон скуры',
+    '🧑🏿‍🫯‍🧑🏼' => 'барцы: цёмны тон скуры сярэднясветлы тон скуры',
+    '🧑🏿‍🫯‍🧑🏽' => 'барцы: цёмны тон скуры сярэдні тон скуры',
+    '🧑🏿‍🫯‍🧑🏾' => 'барцы: цёмны тон скуры сярэдняцёмны тон скуры',
     '🧑🏻‍❤‍🧑🏼' => 'закаханая пара: дарослы дарослы светлы тон скуры сярэднясветлы тон скуры',
     '🧑🏻‍❤‍🧑🏽' => 'закаханая пара: дарослы дарослы светлы тон скуры сярэдні тон скуры',
     '🧑🏻‍❤‍🧑🏾' => 'закаханая пара: дарослы дарослы светлы тон скуры сярэдняцёмны тон скуры',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'закаханая пара: дарослы дарослы цёмны тон скуры сярэднясветлы тон скуры',
     '🧑🏿‍❤‍🧑🏽' => 'закаханая пара: дарослы дарослы цёмны тон скуры сярэдні тон скуры',
     '🧑🏿‍❤‍🧑🏾' => 'закаханая пара: дарослы дарослы цёмны тон скуры сярэдняцёмны тон скуры',
+    '🧑🏻‍🐰‍🧑🏼' => 'людзі весяляцца: светлы тон скуры сярэднясветлы тон скуры',
+    '🧑🏻‍🐰‍🧑🏽' => 'людзі весяляцца: светлы тон скуры сярэдні тон скуры',
+    '🧑🏻‍🐰‍🧑🏾' => 'людзі весяляцца: светлы тон скуры сярэдняцёмны тон скуры',
+    '🧑🏻‍🐰‍🧑🏿' => 'людзі весяляцца: светлы тон скуры цёмны тон скуры',
+    '🧑🏼‍🐰‍🧑🏻' => 'людзі весяляцца: сярэднясветлы тон скуры светлы тон скуры',
+    '🧑🏼‍🐰‍🧑🏽' => 'людзі весяляцца: сярэднясветлы тон скуры сярэдні тон скуры',
+    '🧑🏼‍🐰‍🧑🏾' => 'людзі весяляцца: сярэднясветлы тон скуры сярэдняцёмны тон скуры',
+    '🧑🏼‍🐰‍🧑🏿' => 'людзі весяляцца: сярэднясветлы тон скуры цёмны тон скуры',
+    '🧑🏽‍🐰‍🧑🏻' => 'людзі весяляцца: сярэдні тон скуры светлы тон скуры',
+    '🧑🏽‍🐰‍🧑🏼' => 'людзі весяляцца: сярэдні тон скуры сярэднясветлы тон скуры',
+    '🧑🏽‍🐰‍🧑🏾' => 'людзі весяляцца: сярэдні тон скуры сярэдняцёмны тон скуры',
+    '🧑🏽‍🐰‍🧑🏿' => 'людзі весяляцца: сярэдні тон скуры цёмны тон скуры',
+    '🧑🏾‍🐰‍🧑🏻' => 'людзі весяляцца: сярэдняцёмны тон скуры светлы тон скуры',
+    '🧑🏾‍🐰‍🧑🏼' => 'людзі весяляцца: сярэдняцёмны тон скуры сярэднясветлы тон скуры',
+    '🧑🏾‍🐰‍🧑🏽' => 'людзі весяляцца: сярэдняцёмны тон скуры сярэдні тон скуры',
+    '🧑🏾‍🐰‍🧑🏿' => 'людзі весяляцца: сярэдняцёмны тон скуры цёмны тон скуры',
+    '🧑🏿‍🐰‍🧑🏻' => 'людзі весяляцца: цёмны тон скуры светлы тон скуры',
+    '🧑🏿‍🐰‍🧑🏼' => 'людзі весяляцца: цёмны тон скуры сярэднясветлы тон скуры',
+    '🧑🏿‍🐰‍🧑🏽' => 'людзі весяляцца: цёмны тон скуры сярэдні тон скуры',
+    '🧑🏿‍🐰‍🧑🏾' => 'людзі весяляцца: цёмны тон скуры сярэдняцёмны тон скуры',
+    '👨🏻‍🫯‍👨🏼' => 'барацьба мужчын: светлы тон скуры сярэднясветлы тон скуры',
+    '👨🏻‍🫯‍👨🏽' => 'барацьба мужчын: светлы тон скуры сярэдні тон скуры',
+    '👨🏻‍🫯‍👨🏾' => 'барацьба мужчын: светлы тон скуры сярэдняцёмны тон скуры',
+    '👨🏻‍🫯‍👨🏿' => 'барацьба мужчын: светлы тон скуры цёмны тон скуры',
+    '👨🏼‍🫯‍👨🏻' => 'барацьба мужчын: сярэднясветлы тон скуры светлы тон скуры',
+    '👨🏼‍🫯‍👨🏽' => 'барацьба мужчын: сярэднясветлы тон скуры сярэдні тон скуры',
+    '👨🏼‍🫯‍👨🏾' => 'барацьба мужчын: сярэднясветлы тон скуры сярэдняцёмны тон скуры',
+    '👨🏼‍🫯‍👨🏿' => 'барацьба мужчын: сярэднясветлы тон скуры цёмны тон скуры',
+    '👨🏽‍🫯‍👨🏻' => 'барацьба мужчын: сярэдні тон скуры светлы тон скуры',
+    '👨🏽‍🫯‍👨🏼' => 'барацьба мужчын: сярэдні тон скуры сярэднясветлы тон скуры',
+    '👨🏽‍🫯‍👨🏾' => 'барацьба мужчын: сярэдні тон скуры сярэдняцёмны тон скуры',
+    '👨🏽‍🫯‍👨🏿' => 'барацьба мужчын: сярэдні тон скуры цёмны тон скуры',
+    '👨🏾‍🫯‍👨🏻' => 'барацьба мужчын: сярэдняцёмны тон скуры светлы тон скуры',
+    '👨🏾‍🫯‍👨🏼' => 'барацьба мужчын: сярэдняцёмны тон скуры сярэднясветлы тон скуры',
+    '👨🏾‍🫯‍👨🏽' => 'барацьба мужчын: сярэдняцёмны тон скуры сярэдні тон скуры',
+    '👨🏾‍🫯‍👨🏿' => 'барацьба мужчын: сярэдняцёмны тон скуры цёмны тон скуры',
+    '👨🏿‍🫯‍👨🏻' => 'барацьба мужчын: цёмны тон скуры светлы тон скуры',
+    '👨🏿‍🫯‍👨🏼' => 'барацьба мужчын: цёмны тон скуры сярэднясветлы тон скуры',
+    '👨🏿‍🫯‍👨🏽' => 'барацьба мужчын: цёмны тон скуры сярэдні тон скуры',
+    '👨🏿‍🫯‍👨🏾' => 'барацьба мужчын: цёмны тон скуры сярэдняцёмны тон скуры',
     '👨🏻‍❤‍👨🏻' => 'закаханая пара: мужчына мужчына светлы тон скуры',
     '👨🏻‍❤‍👨🏼' => 'закаханая пара: мужчына мужчына светлы тон скуры сярэднясветлы тон скуры',
     '👨🏻‍❤‍👨🏽' => 'закаханая пара: мужчына мужчына светлы тон скуры сярэдні тон скуры',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'закаханая пара: мужчына мужчына цёмны тон скуры сярэдні тон скуры',
     '👨🏿‍❤‍👨🏾' => 'закаханая пара: мужчына мужчына цёмны тон скуры сярэдняцёмны тон скуры',
     '👨🏿‍❤‍👨🏿' => 'закаханая пара: мужчына мужчына цёмны тон скуры',
+    '👨🏻‍🐰‍👨🏼' => 'мужчыны весяляцца: светлы тон скуры сярэднясветлы тон скуры',
+    '👨🏻‍🐰‍👨🏽' => 'мужчыны весяляцца: светлы тон скуры сярэдні тон скуры',
+    '👨🏻‍🐰‍👨🏾' => 'мужчыны весяляцца: светлы тон скуры сярэдняцёмны тон скуры',
+    '👨🏻‍🐰‍👨🏿' => 'мужчыны весяляцца: светлы тон скуры цёмны тон скуры',
+    '👨🏼‍🐰‍👨🏻' => 'мужчыны весяляцца: сярэднясветлы тон скуры светлы тон скуры',
+    '👨🏼‍🐰‍👨🏽' => 'мужчыны весяляцца: сярэднясветлы тон скуры сярэдні тон скуры',
+    '👨🏼‍🐰‍👨🏾' => 'мужчыны весяляцца: сярэднясветлы тон скуры сярэдняцёмны тон скуры',
+    '👨🏼‍🐰‍👨🏿' => 'мужчыны весяляцца: сярэднясветлы тон скуры цёмны тон скуры',
+    '👨🏽‍🐰‍👨🏻' => 'мужчыны весяляцца: сярэдні тон скуры светлы тон скуры',
+    '👨🏽‍🐰‍👨🏼' => 'мужчыны весяляцца: сярэдні тон скуры сярэднясветлы тон скуры',
+    '👨🏽‍🐰‍👨🏾' => 'мужчыны весяляцца: сярэдні тон скуры сярэдняцёмны тон скуры',
+    '👨🏽‍🐰‍👨🏿' => 'мужчыны весяляцца: сярэдні тон скуры цёмны тон скуры',
+    '👨🏾‍🐰‍👨🏻' => 'мужчыны весяляцца: сярэдняцёмны тон скуры светлы тон скуры',
+    '👨🏾‍🐰‍👨🏼' => 'мужчыны весяляцца: сярэдняцёмны тон скуры сярэднясветлы тон скуры',
+    '👨🏾‍🐰‍👨🏽' => 'мужчыны весяляцца: сярэдняцёмны тон скуры сярэдні тон скуры',
+    '👨🏾‍🐰‍👨🏿' => 'мужчыны весяляцца: сярэдняцёмны тон скуры цёмны тон скуры',
+    '👨🏿‍🐰‍👨🏻' => 'мужчыны весяляцца: цёмны тон скуры светлы тон скуры',
+    '👨🏿‍🐰‍👨🏼' => 'мужчыны весяляцца: цёмны тон скуры сярэднясветлы тон скуры',
+    '👨🏿‍🐰‍👨🏽' => 'мужчыны весяляцца: цёмны тон скуры сярэдні тон скуры',
+    '👨🏿‍🐰‍👨🏾' => 'мужчыны весяляцца: цёмны тон скуры сярэдняцёмны тон скуры',
+    '👩🏻‍🫯‍👩🏼' => 'жанчыны-барцы: светлы тон скуры сярэднясветлы тон скуры',
+    '👩🏻‍🫯‍👩🏽' => 'жанчыны-барцы: светлы тон скуры сярэдні тон скуры',
+    '👩🏻‍🫯‍👩🏾' => 'жанчыны-барцы: светлы тон скуры сярэдняцёмны тон скуры',
+    '👩🏻‍🫯‍👩🏿' => 'жанчыны-барцы: светлы тон скуры цёмны тон скуры',
+    '👩🏼‍🫯‍👩🏻' => 'жанчыны-барцы: сярэднясветлы тон скуры светлы тон скуры',
+    '👩🏼‍🫯‍👩🏽' => 'жанчыны-барцы: сярэднясветлы тон скуры сярэдні тон скуры',
+    '👩🏼‍🫯‍👩🏾' => 'жанчыны-барцы: сярэднясветлы тон скуры сярэдняцёмны тон скуры',
+    '👩🏼‍🫯‍👩🏿' => 'жанчыны-барцы: сярэднясветлы тон скуры цёмны тон скуры',
+    '👩🏽‍🫯‍👩🏻' => 'жанчыны-барцы: сярэдні тон скуры светлы тон скуры',
+    '👩🏽‍🫯‍👩🏼' => 'жанчыны-барцы: сярэдні тон скуры сярэднясветлы тон скуры',
+    '👩🏽‍🫯‍👩🏾' => 'жанчыны-барцы: сярэдні тон скуры сярэдняцёмны тон скуры',
+    '👩🏽‍🫯‍👩🏿' => 'жанчыны-барцы: сярэдні тон скуры цёмны тон скуры',
+    '👩🏾‍🫯‍👩🏻' => 'жанчыны-барцы: сярэдняцёмны тон скуры светлы тон скуры',
+    '👩🏾‍🫯‍👩🏼' => 'жанчыны-барцы: сярэдняцёмны тон скуры сярэднясветлы тон скуры',
+    '👩🏾‍🫯‍👩🏽' => 'жанчыны-барцы: сярэдняцёмны тон скуры сярэдні тон скуры',
+    '👩🏾‍🫯‍👩🏿' => 'жанчыны-барцы: сярэдняцёмны тон скуры цёмны тон скуры',
+    '👩🏿‍🫯‍👩🏻' => 'жанчыны-барцы: цёмны тон скуры светлы тон скуры',
+    '👩🏿‍🫯‍👩🏼' => 'жанчыны-барцы: цёмны тон скуры сярэднясветлы тон скуры',
+    '👩🏿‍🫯‍👩🏽' => 'жанчыны-барцы: цёмны тон скуры сярэдні тон скуры',
+    '👩🏿‍🫯‍👩🏾' => 'жанчыны-барцы: цёмны тон скуры сярэдняцёмны тон скуры',
     '👩🏻‍❤‍👨🏻' => 'закаханая пара: жанчына мужчына светлы тон скуры',
     '👩🏻‍❤‍👨🏼' => 'закаханая пара: жанчына мужчына светлы тон скуры сярэднясветлы тон скуры',
     '👩🏻‍❤‍👨🏽' => 'закаханая пара: жанчына мужчына светлы тон скуры сярэдні тон скуры',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'закаханая пара: жанчына жанчына цёмны тон скуры сярэдні тон скуры',
     '👩🏿‍❤‍👩🏾' => 'закаханая пара: жанчына жанчына цёмны тон скуры сярэдняцёмны тон скуры',
     '👩🏿‍❤‍👩🏿' => 'закаханая пара: жанчына жанчына цёмны тон скуры',
+    '👩🏻‍🐰‍👩🏼' => 'жанчыны весяляцца: светлы тон скуры сярэднясветлы тон скуры',
+    '👩🏻‍🐰‍👩🏽' => 'жанчыны весяляцца: светлы тон скуры сярэдні тон скуры',
+    '👩🏻‍🐰‍👩🏾' => 'жанчыны весяляцца: светлы тон скуры сярэдняцёмны тон скуры',
+    '👩🏻‍🐰‍👩🏿' => 'жанчыны весяляцца: светлы тон скуры цёмны тон скуры',
+    '👩🏼‍🐰‍👩🏻' => 'жанчыны весяляцца: сярэднясветлы тон скуры светлы тон скуры',
+    '👩🏼‍🐰‍👩🏽' => 'жанчыны весяляцца: сярэднясветлы тон скуры сярэдні тон скуры',
+    '👩🏼‍🐰‍👩🏾' => 'жанчыны весяляцца: сярэднясветлы тон скуры сярэдняцёмны тон скуры',
+    '👩🏼‍🐰‍👩🏿' => 'жанчыны весяляцца: сярэднясветлы тон скуры цёмны тон скуры',
+    '👩🏽‍🐰‍👩🏻' => 'жанчыны весяляцца: сярэдні тон скуры светлы тон скуры',
+    '👩🏽‍🐰‍👩🏼' => 'жанчыны весяляцца: сярэдні тон скуры сярэднясветлы тон скуры',
+    '👩🏽‍🐰‍👩🏾' => 'жанчыны весяляцца: сярэдні тон скуры сярэдняцёмны тон скуры',
+    '👩🏽‍🐰‍👩🏿' => 'жанчыны весяляцца: сярэдні тон скуры цёмны тон скуры',
+    '👩🏾‍🐰‍👩🏻' => 'жанчыны весяляцца: сярэдняцёмны тон скуры светлы тон скуры',
+    '👩🏾‍🐰‍👩🏼' => 'жанчыны весяляцца: сярэдняцёмны тон скуры сярэднясветлы тон скуры',
+    '👩🏾‍🐰‍👩🏽' => 'жанчыны весяляцца: сярэдняцёмны тон скуры сярэдні тон скуры',
+    '👩🏾‍🐰‍👩🏿' => 'жанчыны весяляцца: сярэдняцёмны тон скуры цёмны тон скуры',
+    '👩🏿‍🐰‍👩🏻' => 'жанчыны весяляцца: цёмны тон скуры светлы тон скуры',
+    '👩🏿‍🐰‍👩🏼' => 'жанчыны весяляцца: цёмны тон скуры сярэднясветлы тон скуры',
+    '👩🏿‍🐰‍👩🏽' => 'жанчыны весяляцца: цёмны тон скуры сярэдні тон скуры',
+    '👩🏿‍🐰‍👩🏾' => 'жанчыны весяляцца: цёмны тон скуры сярэдняцёмны тон скуры',
     '🧑🏻‍🤝‍🧑🏻' => 'людзі трымаюцца за рукі: светлы тон скуры',
     '🧑🏻‍🤝‍🧑🏼' => 'людзі трымаюцца за рукі: светлы тон скуры сярэднясветлы тон скуры',
     '🧑🏻‍🤝‍🧑🏽' => 'людзі трымаюцца за рукі: светлы тон скуры сярэдні тон скуры',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'Сцяг: Шатландыя',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'Сцяг: Уэльс',
     '🧑‍🧑‍🧒‍🧒' => 'сям’я: двое дарослых і двое дзяцей',
-    '🚶🏻‍♀‍➡' => 'жанчына ідзе, накіраваныя ўправа',
-    '🚶🏼‍♀‍➡' => 'жанчына ідзе, накіраваныя ўправа',
-    '🚶🏽‍♀‍➡' => 'жанчына ідзе, накіраваныя ўправа',
-    '🚶🏾‍♀‍➡' => 'жанчына ідзе, накіраваныя ўправа',
-    '🚶🏿‍♀‍➡' => 'жанчына ідзе, накіраваныя ўправа',
-    '🚶🏻‍♂‍➡' => 'мужчына ідзе, накіраваныя ўправа',
-    '🚶🏼‍♂‍➡' => 'мужчына ідзе, накіраваныя ўправа',
-    '🚶🏽‍♂‍➡' => 'мужчына ідзе, накіраваныя ўправа',
-    '🚶🏾‍♂‍➡' => 'мужчына ідзе, накіраваныя ўправа',
-    '🚶🏿‍♂‍➡' => 'мужчына ідзе, накіраваныя ўправа',
-    '🧎🏻‍♀‍➡' => 'жанчына стаіць на каленях, накіраваныя ўправа',
-    '🧎🏼‍♀‍➡' => 'жанчына стаіць на каленях, накіраваныя ўправа',
-    '🧎🏽‍♀‍➡' => 'жанчына стаіць на каленях, накіраваныя ўправа',
-    '🧎🏾‍♀‍➡' => 'жанчына стаіць на каленях, накіраваныя ўправа',
-    '🧎🏿‍♀‍➡' => 'жанчына стаіць на каленях, накіраваныя ўправа',
-    '🧎🏻‍♂‍➡' => 'мужчына стаіць на каленях, накіраваныя ўправа',
-    '🧎🏼‍♂‍➡' => 'мужчына стаіць на каленях, накіраваныя ўправа',
-    '🧎🏽‍♂‍➡' => 'мужчына стаіць на каленях, накіраваныя ўправа',
-    '🧎🏾‍♂‍➡' => 'мужчына стаіць на каленях, накіраваныя ўправа',
-    '🧎🏿‍♂‍➡' => 'мужчына стаіць на каленях, накіраваныя ўправа',
-    '🧑🏻‍🦯‍➡' => 'чалавек з палкай, накіраваныя ўправа',
-    '🧑🏼‍🦯‍➡' => 'чалавек з палкай, накіраваныя ўправа',
-    '🧑🏽‍🦯‍➡' => 'чалавек з палкай, накіраваныя ўправа',
-    '🧑🏾‍🦯‍➡' => 'чалавек з палкай, накіраваныя ўправа',
-    '🧑🏿‍🦯‍➡' => 'чалавек з палкай, накіраваныя ўправа',
-    '👨🏻‍🦯‍➡' => 'мужчына з палкай, накіраваныя ўправа',
-    '👨🏼‍🦯‍➡' => 'мужчына з палкай, накіраваныя ўправа',
-    '👨🏽‍🦯‍➡' => 'мужчына з палкай, накіраваныя ўправа',
-    '👨🏾‍🦯‍➡' => 'мужчына з палкай, накіраваныя ўправа',
-    '👨🏿‍🦯‍➡' => 'мужчына з палкай, накіраваныя ўправа',
-    '👩🏻‍🦯‍➡' => 'жанчына з палкай, накіраваныя ўправа',
-    '👩🏼‍🦯‍➡' => 'жанчына з палкай, накіраваныя ўправа',
-    '👩🏽‍🦯‍➡' => 'жанчына з палкай, накіраваныя ўправа',
-    '👩🏾‍🦯‍➡' => 'жанчына з палкай, накіраваныя ўправа',
-    '👩🏿‍🦯‍➡' => 'жанчына з палкай, накіраваныя ўправа',
-    '🧑🏻‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам, накіраваныя ўправа',
-    '🧑🏼‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам, накіраваныя ўправа',
-    '🧑🏽‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам, накіраваныя ўправа',
-    '🧑🏾‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам, накіраваныя ўправа',
-    '🧑🏿‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👨🏻‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👨🏼‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👨🏽‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👨🏾‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👨🏿‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👩🏻‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👩🏼‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👩🏽‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👩🏾‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👩🏿‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '🧑🏻‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам, накіраваныя ўправа',
-    '🧑🏼‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам, накіраваныя ўправа',
-    '🧑🏽‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам, накіраваныя ўправа',
-    '🧑🏾‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам, накіраваныя ўправа',
-    '🧑🏿‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам, накіраваныя ўправа',
-    '👨🏻‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '👨🏼‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '👨🏽‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '👨🏾‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '👨🏿‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '👩🏻‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '👩🏼‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '👩🏽‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '👩🏾‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '👩🏿‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '🏃🏻‍♀‍➡' => 'жанчына бяжыць, накіраваныя ўправа',
-    '🏃🏼‍♀‍➡' => 'жанчына бяжыць, накіраваныя ўправа',
-    '🏃🏽‍♀‍➡' => 'жанчына бяжыць, накіраваныя ўправа',
-    '🏃🏾‍♀‍➡' => 'жанчына бяжыць, накіраваныя ўправа',
-    '🏃🏿‍♀‍➡' => 'жанчына бяжыць, накіраваныя ўправа',
-    '🏃🏻‍♂‍➡' => 'мужчына бяжыць, накіраваныя ўправа',
-    '🏃🏼‍♂‍➡' => 'мужчына бяжыць, накіраваныя ўправа',
-    '🏃🏽‍♂‍➡' => 'мужчына бяжыць, накіраваныя ўправа',
-    '🏃🏾‍♂‍➡' => 'мужчына бяжыць, накіраваныя ўправа',
-    '🏃🏿‍♂‍➡' => 'мужчына бяжыць, накіраваныя ўправа',
+    '🚶🏻‍♀‍➡' => 'жанчына ідзе: светлы тон скуры , накіраваныя ўправа',
+    '🚶🏼‍♀‍➡' => 'жанчына ідзе: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🚶🏽‍♀‍➡' => 'жанчына ідзе: сярэдні тон скуры , накіраваныя ўправа',
+    '🚶🏾‍♀‍➡' => 'жанчына ідзе: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🚶🏿‍♀‍➡' => 'жанчына ідзе: цёмны тон скуры , накіраваныя ўправа',
+    '🚶🏻‍♂‍➡' => 'мужчына ідзе: светлы тон скуры , накіраваныя ўправа',
+    '🚶🏼‍♂‍➡' => 'мужчына ідзе: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🚶🏽‍♂‍➡' => 'мужчына ідзе: сярэдні тон скуры , накіраваныя ўправа',
+    '🚶🏾‍♂‍➡' => 'мужчына ідзе: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🚶🏿‍♂‍➡' => 'мужчына ідзе: цёмны тон скуры , накіраваныя ўправа',
+    '🧎🏻‍♀‍➡' => 'жанчына стаіць на каленях: светлы тон скуры , накіраваныя ўправа',
+    '🧎🏼‍♀‍➡' => 'жанчына стаіць на каленях: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🧎🏽‍♀‍➡' => 'жанчына стаіць на каленях: сярэдні тон скуры , накіраваныя ўправа',
+    '🧎🏾‍♀‍➡' => 'жанчына стаіць на каленях: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🧎🏿‍♀‍➡' => 'жанчына стаіць на каленях: цёмны тон скуры , накіраваныя ўправа',
+    '🧎🏻‍♂‍➡' => 'мужчына стаіць на каленях: светлы тон скуры , накіраваныя ўправа',
+    '🧎🏼‍♂‍➡' => 'мужчына стаіць на каленях: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🧎🏽‍♂‍➡' => 'мужчына стаіць на каленях: сярэдні тон скуры , накіраваныя ўправа',
+    '🧎🏾‍♂‍➡' => 'мужчына стаіць на каленях: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🧎🏿‍♂‍➡' => 'мужчына стаіць на каленях: цёмны тон скуры , накіраваныя ўправа',
+    '🧑🏻‍🦯‍➡' => 'чалавек з палкай: светлы тон скуры , накіраваныя ўправа',
+    '🧑🏼‍🦯‍➡' => 'чалавек з палкай: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🧑🏽‍🦯‍➡' => 'чалавек з палкай: сярэдні тон скуры , накіраваныя ўправа',
+    '🧑🏾‍🦯‍➡' => 'чалавек з палкай: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🧑🏿‍🦯‍➡' => 'чалавек з палкай: цёмны тон скуры , накіраваныя ўправа',
+    '👨🏻‍🦯‍➡' => 'мужчына з палкай: светлы тон скуры , накіраваныя ўправа',
+    '👨🏼‍🦯‍➡' => 'мужчына з палкай: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '👨🏽‍🦯‍➡' => 'мужчына з палкай: сярэдні тон скуры , накіраваныя ўправа',
+    '👨🏾‍🦯‍➡' => 'мужчына з палкай: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '👨🏿‍🦯‍➡' => 'мужчына з палкай: цёмны тон скуры , накіраваныя ўправа',
+    '👩🏻‍🦯‍➡' => 'жанчына з палкай: светлы тон скуры , накіраваныя ўправа',
+    '👩🏼‍🦯‍➡' => 'жанчына з палкай: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '👩🏽‍🦯‍➡' => 'жанчына з палкай: сярэдні тон скуры , накіраваныя ўправа',
+    '👩🏾‍🦯‍➡' => 'жанчына з палкай: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '👩🏿‍🦯‍➡' => 'жанчына з палкай: цёмны тон скуры , накіраваныя ўправа',
+    '🧑🏻‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам: светлы тон скуры , накіраваныя ўправа',
+    '🧑🏼‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🧑🏽‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам: сярэдні тон скуры , накіраваныя ўправа',
+    '🧑🏾‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🧑🏿‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам: цёмны тон скуры , накіраваныя ўправа',
+    '👨🏻‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам: светлы тон скуры , накіраваныя ўправа',
+    '👨🏼‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '👨🏽‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам: сярэдні тон скуры , накіраваныя ўправа',
+    '👨🏾‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '👨🏿‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам: цёмны тон скуры , накіраваныя ўправа',
+    '👩🏻‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам: светлы тон скуры , накіраваныя ўправа',
+    '👩🏼‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '👩🏽‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам: сярэдні тон скуры , накіраваныя ўправа',
+    '👩🏾‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '👩🏿‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам: цёмны тон скуры , накіраваныя ўправа',
+    '🧑🏻‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам: светлы тон скуры , накіраваныя ўправа',
+    '🧑🏼‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🧑🏽‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам: сярэдні тон скуры , накіраваныя ўправа',
+    '🧑🏾‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🧑🏿‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам: цёмны тон скуры , накіраваныя ўправа',
+    '👨🏻‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам: светлы тон скуры , накіраваныя ўправа',
+    '👨🏼‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '👨🏽‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам: сярэдні тон скуры , накіраваныя ўправа',
+    '👨🏾‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '👨🏿‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам: цёмны тон скуры , накіраваныя ўправа',
+    '👩🏻‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам: светлы тон скуры , накіраваныя ўправа',
+    '👩🏼‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '👩🏽‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам: сярэдні тон скуры , накіраваныя ўправа',
+    '👩🏾‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '👩🏿‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам: цёмны тон скуры , накіраваныя ўправа',
+    '🏃🏻‍♀‍➡' => 'жанчына бяжыць: светлы тон скуры , накіраваныя ўправа',
+    '🏃🏼‍♀‍➡' => 'жанчына бяжыць: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🏃🏽‍♀‍➡' => 'жанчына бяжыць: сярэдні тон скуры , накіраваныя ўправа',
+    '🏃🏾‍♀‍➡' => 'жанчына бяжыць: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🏃🏿‍♀‍➡' => 'жанчына бяжыць: цёмны тон скуры , накіраваныя ўправа',
+    '🏃🏻‍♂‍➡' => 'мужчына бяжыць: светлы тон скуры , накіраваныя ўправа',
+    '🏃🏼‍♂‍➡' => 'мужчына бяжыць: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🏃🏽‍♂‍➡' => 'мужчына бяжыць: сярэдні тон скуры , накіраваныя ўправа',
+    '🏃🏾‍♂‍➡' => 'мужчына бяжыць: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🏃🏿‍♂‍➡' => 'мужчына бяжыць: цёмны тон скуры , накіраваныя ўправа',
     '🫱🏻‍🫲🏼' => 'поціск рук: светлы тон скуры сярэднясветлы тон скуры',
     '🫱🏻‍🫲🏽' => 'поціск рук: светлы тон скуры сярэдні тон скуры',
     '🫱🏻‍🫲🏾' => 'поціск рук: светлы тон скуры сярэдняцёмны тон скуры',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'поціск рук: цёмны тон скуры сярэднясветлы тон скуры',
     '🫱🏿‍🫲🏽' => 'поціск рук: цёмны тон скуры сярэдні тон скуры',
     '🫱🏿‍🫲🏾' => 'поціск рук: цёмны тон скуры сярэдняцёмны тон скуры',
-    '🚶‍♀‍➡' => 'жанчына ідзе, накіраваныя ўправа',
-    '🚶‍♂‍➡' => 'мужчына ідзе, накіраваныя ўправа',
-    '🧎‍♀‍➡' => 'жанчына стаіць на каленях, накіраваныя ўправа',
-    '🧎‍♂‍➡' => 'мужчына стаіць на каленях, накіраваныя ўправа',
-    '🧑‍🦯‍➡' => 'чалавек з палкай, накіраваныя ўправа',
-    '👨‍🦯‍➡' => 'мужчына з палкай, накіраваныя ўправа',
-    '👩‍🦯‍➡' => 'жанчына з палкай, накіраваныя ўправа',
-    '🧑‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👨‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '👩‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам, накіраваныя ўправа',
-    '🧑‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам, накіраваныя ўправа',
-    '👨‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '👩‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам, накіраваныя ўправа',
-    '🏃‍♀‍➡' => 'жанчына бяжыць, накіраваныя ўправа',
-    '🏃‍♂‍➡' => 'мужчына бяжыць, накіраваныя ўправа',
+    '🚶‍♀‍➡' => 'жанчына ідзе: , накіраваныя ўправа',
+    '🚶‍♂‍➡' => 'мужчына ідзе: , накіраваныя ўправа',
+    '🧎‍♀‍➡' => 'жанчына стаіць на каленях: , накіраваныя ўправа',
+    '🧎‍♂‍➡' => 'мужчына стаіць на каленях: , накіраваныя ўправа',
+    '🧑‍🦯‍➡' => 'чалавек з палкай: , накіраваныя ўправа',
+    '👨‍🦯‍➡' => 'мужчына з палкай: , накіраваныя ўправа',
+    '👩‍🦯‍➡' => 'жанчына з палкай: , накіраваныя ўправа',
+    '🧑‍🦼‍➡' => 'чалавек у інваліднай калясцы з маторам: , накіраваныя ўправа',
+    '👨‍🦼‍➡' => 'мужчына ў інваліднай калясцы з маторам: , накіраваныя ўправа',
+    '👩‍🦼‍➡' => 'жанчына ў інваліднай калясцы з маторам: , накіраваныя ўправа',
+    '🧑‍🦽‍➡' => 'чалавек у калясцы з ручным прывадам: , накіраваныя ўправа',
+    '👨‍🦽‍➡' => 'мужчына ў калясцы з ручным прывадам: , накіраваныя ўправа',
+    '👩‍🦽‍➡' => 'жанчына ў калясцы з ручным прывадам: , накіраваныя ўправа',
+    '🏃‍♀‍➡' => 'жанчына бяжыць: , накіраваныя ўправа',
+    '🏃‍♂‍➡' => 'мужчына бяжыць: , накіраваныя ўправа',
     '👩‍❤‍👨' => 'закаханая пара: жанчына мужчына',
     '👨‍❤‍👨' => 'закаханая пара: мужчына мужчына',
     '👩‍❤‍👩' => 'закаханая пара: жанчына жанчына',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'дарослы: сярэдні тон скуры лысы',
     '🧑🏾‍🦲' => 'дарослы: сярэдняцёмны тон скуры лысы',
     '🧑🏿‍🦲' => 'дарослы: цёмны тон скуры лысы',
+    '🧑🏻‍🩰' => 'балерына: светлы тон скуры',
+    '🧑🏼‍🩰' => 'балерына: сярэднясветлы тон скуры',
+    '🧑🏽‍🩰' => 'балерына: сярэдні тон скуры',
+    '🧑🏾‍🩰' => 'балерына: сярэдняцёмны тон скуры',
+    '🧑🏿‍🩰' => 'балерына: цёмны тон скуры',
     '🧔🏻‍♂' => 'мужчына: светлы тон скуры барада',
     '🧔🏼‍♂' => 'мужчына: сярэднясветлы тон скуры барада',
     '🧔🏽‍♂' => 'мужчына: сярэдні тон скуры барада',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'жанчына ідзе: сярэдні тон скуры',
     '🚶🏾‍♀' => 'жанчына ідзе: сярэдняцёмны тон скуры',
     '🚶🏿‍♀' => 'жанчына ідзе: цёмны тон скуры',
-    '🚶🏻‍➡' => 'чалавек ідзе, накіраваныя ўправа',
-    '🚶🏼‍➡' => 'чалавек ідзе, накіраваныя ўправа',
-    '🚶🏽‍➡' => 'чалавек ідзе, накіраваныя ўправа',
-    '🚶🏾‍➡' => 'чалавек ідзе, накіраваныя ўправа',
-    '🚶🏿‍➡' => 'чалавек ідзе, накіраваныя ўправа',
+    '🚶🏻‍➡' => 'чалавек ідзе: светлы тон скуры , накіраваныя ўправа',
+    '🚶🏼‍➡' => 'чалавек ідзе: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🚶🏽‍➡' => 'чалавек ідзе: сярэдні тон скуры , накіраваныя ўправа',
+    '🚶🏾‍➡' => 'чалавек ідзе: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🚶🏿‍➡' => 'чалавек ідзе: цёмны тон скуры , накіраваныя ўправа',
     '🧍🏻‍♂' => 'мужчына стаіць: светлы тон скуры',
     '🧍🏼‍♂' => 'мужчына стаіць: сярэднясветлы тон скуры',
     '🧍🏽‍♂' => 'мужчына стаіць: сярэдні тон скуры',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'жанчына стаіць на каленях: сярэдні тон скуры',
     '🧎🏾‍♀' => 'жанчына стаіць на каленях: сярэдняцёмны тон скуры',
     '🧎🏿‍♀' => 'жанчына стаіць на каленях: цёмны тон скуры',
-    '🧎🏻‍➡' => 'чалавек на каленях, накіраваныя ўправа',
-    '🧎🏼‍➡' => 'чалавек на каленях, накіраваныя ўправа',
-    '🧎🏽‍➡' => 'чалавек на каленях, накіраваныя ўправа',
-    '🧎🏾‍➡' => 'чалавек на каленях, накіраваныя ўправа',
-    '🧎🏿‍➡' => 'чалавек на каленях, накіраваныя ўправа',
+    '🧎🏻‍➡' => 'чалавек на каленях: светлы тон скуры , накіраваныя ўправа',
+    '🧎🏼‍➡' => 'чалавек на каленях: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🧎🏽‍➡' => 'чалавек на каленях: сярэдні тон скуры , накіраваныя ўправа',
+    '🧎🏾‍➡' => 'чалавек на каленях: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🧎🏿‍➡' => 'чалавек на каленях: цёмны тон скуры , накіраваныя ўправа',
     '🧑🏻‍🦯' => 'чалавек з палкай: светлы тон скуры',
     '🧑🏼‍🦯' => 'чалавек з палкай: сярэднясветлы тон скуры',
     '🧑🏽‍🦯' => 'чалавек з палкай: сярэдні тон скуры',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'жанчына бяжыць: сярэдні тон скуры',
     '🏃🏾‍♀' => 'жанчына бяжыць: сярэдняцёмны тон скуры',
     '🏃🏿‍♀' => 'жанчына бяжыць: цёмны тон скуры',
-    '🏃🏻‍➡' => 'чалавек бяжыць, накіраваныя ўправа',
-    '🏃🏼‍➡' => 'чалавек бяжыць, накіраваныя ўправа',
-    '🏃🏽‍➡' => 'чалавек бяжыць, накіраваныя ўправа',
-    '🏃🏾‍➡' => 'чалавек бяжыць, накіраваныя ўправа',
-    '🏃🏿‍➡' => 'чалавек бяжыць, накіраваныя ўправа',
+    '🏃🏻‍➡' => 'чалавек бяжыць: светлы тон скуры , накіраваныя ўправа',
+    '🏃🏼‍➡' => 'чалавек бяжыць: сярэднясветлы тон скуры , накіраваныя ўправа',
+    '🏃🏽‍➡' => 'чалавек бяжыць: сярэдні тон скуры , накіраваныя ўправа',
+    '🏃🏾‍➡' => 'чалавек бяжыць: сярэдняцёмны тон скуры , накіраваныя ўправа',
+    '🏃🏿‍➡' => 'чалавек бяжыць: цёмны тон скуры , накіраваныя ўправа',
+    '👯🏻‍♀' => 'жанчыны весяляцца: светлы тон скуры',
+    '👯🏼‍♀' => 'жанчыны весяляцца: сярэднясветлы тон скуры',
+    '👯🏽‍♀' => 'жанчыны весяляцца: сярэдні тон скуры',
+    '👯🏾‍♀' => 'жанчыны весяляцца: сярэдняцёмны тон скуры',
+    '👯🏿‍♀' => 'жанчыны весяляцца: цёмны тон скуры',
+    '👯🏻‍♂' => 'мужчыны весяляцца: светлы тон скуры',
+    '👯🏼‍♂' => 'мужчыны весяляцца: сярэднясветлы тон скуры',
+    '👯🏽‍♂' => 'мужчыны весяляцца: сярэдні тон скуры',
+    '👯🏾‍♂' => 'мужчыны весяляцца: сярэдняцёмны тон скуры',
+    '👯🏿‍♂' => 'мужчыны весяляцца: цёмны тон скуры',
     '🧖🏻‍♂' => 'мужчына ў лазні: светлы тон скуры',
     '🧖🏼‍♂' => 'мужчына ў лазні: сярэднясветлы тон скуры',
     '🧖🏽‍♂' => 'мужчына ў лазні: сярэдні тон скуры',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'жанчына ходзіць колам: сярэдні тон скуры',
     '🤸🏾‍♀' => 'жанчына ходзіць колам: сярэдняцёмны тон скуры',
     '🤸🏿‍♀' => 'жанчына ходзіць колам: цёмны тон скуры',
+    '🤼🏻‍♀' => 'жанчыны-барцы: светлы тон скуры',
+    '🤼🏼‍♀' => 'жанчыны-барцы: сярэднясветлы тон скуры',
+    '🤼🏽‍♀' => 'жанчыны-барцы: сярэдні тон скуры',
+    '🤼🏾‍♀' => 'жанчыны-барцы: сярэдняцёмны тон скуры',
+    '🤼🏿‍♀' => 'жанчыны-барцы: цёмны тон скуры',
+    '🤼🏻‍♂' => 'барацьба мужчын: светлы тон скуры',
+    '🤼🏼‍♂' => 'барацьба мужчын: сярэднясветлы тон скуры',
+    '🤼🏽‍♂' => 'барацьба мужчын: сярэдні тон скуры',
+    '🤼🏾‍♂' => 'барацьба мужчын: сярэдняцёмны тон скуры',
+    '🤼🏿‍♂' => 'барацьба мужчын: цёмны тон скуры',
     '🤽🏻‍♂' => 'мужчына гуляе ў воднае пола: светлы тон скуры',
     '🤽🏼‍♂' => 'мужчына гуляе ў воднае пола: сярэднясветлы тон скуры',
     '🤽🏽‍♂' => 'мужчына гуляе ў воднае пола: сярэдні тон скуры',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'жанчына: курчавыя валасы',
     '👩‍🦳' => 'жанчына: сівыя валасы',
     '👩‍🦲' => 'жанчына: лысы',
-    '🚶‍➡' => 'чалавек ідзе, накіраваныя ўправа',
-    '🧎‍➡' => 'чалавек на каленях, накіраваныя ўправа',
-    '🏃‍➡' => 'чалавек бяжыць, накіраваныя ўправа',
+    '🚶‍➡' => 'чалавек ідзе: , накіраваныя ўправа',
+    '🧎‍➡' => 'чалавек на каленях: , накіраваныя ўправа',
+    '🏃‍➡' => 'чалавек бяжыць: , накіраваныя ўправа',
     '👨‍👦' => 'сям’я: мужчына хлопчык',
     '👨‍👧' => 'сям’я: мужчына дзяўчынка',
     '👩‍👦' => 'сям’я: жанчына хлопчык',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'жанчына ў калясцы з ручным прывадам',
     '🏃‍♂' => 'мужчына бяжыць',
     '🏃‍♀' => 'жанчына бяжыць',
+    '🧑‍🩰' => 'балерына',
     '👯‍♂' => 'мужчыны весяляцца',
     '👯‍♀' => 'жанчыны весяляцца',
     '🧖‍♂' => 'мужчына ў лазні',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'мужчына ў дзелавым касцюме левітуе: сярэдні тон скуры',
     '🕴🏾' => 'мужчына ў дзелавым касцюме левітуе: сярэдняцёмны тон скуры',
     '🕴🏿' => 'мужчына ў дзелавым касцюме левітуе: цёмны тон скуры',
+    '👯🏻' => 'людзі весяляцца: светлы тон скуры',
+    '👯🏼' => 'людзі весяляцца: сярэднясветлы тон скуры',
+    '👯🏽' => 'людзі весяляцца: сярэдні тон скуры',
+    '👯🏾' => 'людзі весяляцца: сярэдняцёмны тон скуры',
+    '👯🏿' => 'людзі весяляцца: цёмны тон скуры',
     '🧖🏻' => 'чалавек у лазні: светлы тон скуры',
     '🧖🏼' => 'чалавек у лазні: сярэднясветлы тон скуры',
     '🧖🏽' => 'чалавек у лазні: сярэдні тон скуры',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ходзіць колам: сярэдні тон скуры',
     '🤸🏾' => 'ходзіць колам: сярэдняцёмны тон скуры',
     '🤸🏿' => 'ходзіць колам: цёмны тон скуры',
+    '🤼🏻' => 'барцы: светлы тон скуры',
+    '🤼🏼' => 'барцы: сярэднясветлы тон скуры',
+    '🤼🏽' => 'барцы: сярэдні тон скуры',
+    '🤼🏾' => 'барцы: сярэдняцёмны тон скуры',
+    '🤼🏿' => 'барцы: цёмны тон скуры',
     '🤽🏻' => 'воднае пола: светлы тон скуры',
     '🤽🏼' => 'воднае пола: сярэднясветлы тон скуры',
     '🤽🏽' => 'воднае пола: сярэдні тон скуры',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'Сцяг: Кітай',
     '🇨🇴' => 'Сцяг: Калумбія',
     '🇨🇵' => 'Сцяг: Востраў Кліпертан',
+    '🇨🇶' => 'Сцяг: Сарк',
     '🇨🇷' => 'Сцяг: Коста-Рыка',
     '🇨🇺' => 'Сцяг: Куба',
     '🇨🇻' => 'Сцяг: Каба-Вердэ',
@@ -2390,18 +2547,11 @@
     '🏽' => 'сярэдні тон скуры',
     '🏾' => 'сярэдняцёмны тон скуры',
     '🏿' => 'цёмны тон скуры',
-    '🪉' => 'арфа',
-    '🪏' => 'шуфель',
-    '🪾' => 'бязлістае дрэва',
-    '🫆' => 'адбітак пальца',
-    '🫜' => 'караняплод',
-    '🫟' => 'пырскі',
-    '🫩' => 'твар з мяшкамі пад вачамі',
     '😀' => 'шырока ўсміхаецца',
     '😃' => 'усміхаецца з адкрытым ротам',
-    '😄' => 'усміхаецца, адкрыўшы рот і прыплюшчыўшы вочы',
-    '😁' => 'шырока ўсміхаецца, прыплюшчыўшы вочы',
-    '😆' => 'смяецца, адкрыўшы рот і заплюшчыўшы вочы',
+    '😄' => 'твар, які ўсміхаецца, адкрыўшы рот і прыплюшчыўшы вочы',
+    '😁' => 'твар, які шырока ўсміхаецца, прыплюшчыўшы вочы',
+    '😆' => 'твар, які смяецца, адкрыўшы рот і заплюшчыўшы вочы',
     '😅' => 'усміхаецца адкрытым ротам з халодным потам на лбе',
     '🤣' => 'качаюся са смеху',
     '😂' => 'слёзы шчасця',
@@ -2450,6 +2600,7 @@
     '😪' => 'сонны твар',
     '🤤' => 'пускае сліну',
     '😴' => 'спіць',
+    '🫩' => 'твар з мяшкамі пад вачамі',
     '😷' => 'твар у медыцынскай масцы',
     '🤒' => 'твар з тэрмометрам',
     '🤕' => 'твар з павязкай на галаве',
@@ -2476,6 +2627,7 @@
     '😯' => 'ашаломлены твар',
     '😲' => 'здзіўлены твар',
     '😳' => 'здранцвелы твар',
+    '🫪' => 'перакошаны твар',
     '🥺' => 'упрошвае',
     '🥹' => 'стрымлівае слёзы',
     '😦' => 'засмучаны твар з адкрытым ротам',
@@ -2510,7 +2662,7 @@
     '👾' => 'монстр-іншапланецянін',
     '🤖' => 'робат',
     '😺' => 'кот усміхаецца, адкрыўшы рот',
-    '😸' => 'кот шырока ўсміхаецца, прыплюснуўшы вочы',
+    '😸' => 'кот шырока ўсміхаецца, зажмурыўшы вочы',
     '😹' => 'кот плача ад шчасця',
     '😻' => 'закаханы кот',
     '😼' => 'кот са скрыўленай усмешкай',
@@ -2547,6 +2699,7 @@
     '💋' => 'след ад пацалунку',
     '💯' => 'сто ачкоў',
     '💢' => 'сімвал злосці',
+    '🫯' => 'бойка',
     '💥' => 'выбух',
     '💫' => 'галавакружэнне',
     '💦' => 'пырскі поту',
@@ -2670,6 +2823,7 @@
     '🧞' => 'джын',
     '🧟' => 'зомбі',
     '🧌' => 'троль',
+    '🫈' => 'снежны чалавек',
     '💆' => 'чалавека масажуюць',
     '💇' => 'чалавеку стрыгуць валоссе',
     '🚶' => 'чалавек ідзе',
@@ -2713,6 +2867,7 @@
     '🫂' => 'людзі абдымаюцца',
     '👪' => 'сям’я',
     '👣' => 'сляды ног',
+    '🫆' => 'адбітак пальца',
     '🦰' => 'рыжыя валасы',
     '🦱' => 'курчавыя валасы',
     '🦳' => 'сівыя валасы',
@@ -2812,6 +2967,7 @@
     '🐳' => 'фантануючы кіт',
     '🐋' => 'кіт',
     '🐬' => 'дэльфін',
+    '🫍' => 'касатка',
     '🦭' => 'цюлень',
     '🐟' => 'рыба',
     '🐠' => 'трапічная рыба',
@@ -2821,6 +2977,11 @@
     '🐚' => 'спіральная ракушка',
     '🪸' => 'карал',
     '🪼' => 'медуза',
+    '🦀' => 'краб',
+    '🦞' => 'амар',
+    '🦐' => 'крэветка',
+    '🦑' => 'кальмар',
+    '🦪' => 'вустрыца',
     '🐌' => 'смоўж',
     '🦋' => 'матылёк',
     '🐛' => 'кузурка',
@@ -2865,6 +3026,7 @@
     '🪹' => 'пустое гняздо',
     '🪺' => 'гняздо з яйкамі',
     '🍄' => 'грыб',
+    '🪾' => 'бязлістае дрэва',
     '🍇' => 'вінаград',
     '🍈' => 'дыня',
     '🍉' => 'кавун',
@@ -2901,6 +3063,7 @@
     '🌰' => 'каштан',
     '🫚' => 'корань імбіру',
     '🫛' => 'гарохавы стручок',
+    '🫜' => 'караняплод',
     '🍞' => 'хлеб',
     '🥐' => 'круасан',
     '🥖' => 'багет',
@@ -2952,11 +3115,6 @@
     '🥟' => 'пельмені',
     '🥠' => 'пячэнне з прадказаннем',
     '🥡' => 'ежа на вынас',
-    '🦀' => 'краб',
-    '🦞' => 'амар',
-    '🦐' => 'крэветка',
-    '🦑' => 'кальмар',
-    '🦪' => 'вустрыца',
     '🍦' => 'мяккае марожанае',
     '🍧' => 'фруктовы лёд',
     '🍨' => 'марожанае',
@@ -3007,6 +3165,7 @@
     '🧭' => 'компас',
     '🏔' => 'заснежаная гара',
     '⛰' => 'гара',
+    '🛘' => 'апоўзень',
     '🌋' => 'вулкан',
     '🗻' => 'гара фудзі',
     '🏕' => 'кемпінг',
@@ -3367,16 +3526,18 @@
     '🎧' => 'навушнікі',
     '📻' => 'радыё',
     '🎷' => 'саксафон',
+    '🎺' => 'труба',
+    '🪊' => 'трамбон',
     '🪗' => 'акардэон',
     '🎸' => 'гітара',
     '🎹' => 'музычная клавіятура',
-    '🎺' => 'труба',
     '🎻' => 'скрыпка',
     '🪕' => 'банджа',
     '🥁' => 'барабан',
     '🪘' => 'выцягнуты барабан',
     '🪇' => 'маракасы',
     '🪈' => 'флейта',
+    '🪉' => 'арфа',
     '📱' => 'мабільны тэлефон',
     '📲' => 'мабільны тэлефон са стрэлкай',
     '☎' => 'хатні тэлефон',
@@ -3430,8 +3591,9 @@
     '📑' => 'закладкі',
     '🔖' => 'закладка',
     '🏷' => 'бірка',
-    '💰' => 'мяшок з грашыма',
     '🪙' => 'манета',
+    '💰' => 'мяшок з грашыма',
+    '🪎' => 'скрыня са скарбамі',
     '💴' => 'банкнот іены',
     '💵' => 'банкнот долара',
     '💶' => 'банкнот еўра',
@@ -3514,6 +3676,7 @@
     '🧰' => 'скрыня з інструментамі',
     '🧲' => 'магніт',
     '🪜' => 'драбіны',
+    '🪏' => 'шуфель',
     '⚗' => 'перагонны куб',
     '🧪' => 'прабірка',
     '🧫' => 'чашка Петры',
@@ -3697,6 +3860,7 @@
     '✴' => 'васьміканцовая зорка',
     '❇' => 'іскра',
     '™' => 'таварны знак',
+    '🫟' => 'пырскі',
     '🔠' => 'увод лацінскіх літар верхнім рэгістрам',
     '🔡' => 'увод лацінскіх літар ніжнім рэгістрам',
     '🔢' => 'увод лічбаў',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bew.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bew.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bew.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bew.php	2026-05-20 10:56:49.000000000 +0200
@@ -151,7 +151,7 @@
     '🇲🇫' => 'bendèra: Sint-Martèn (Prasman)',
     '🇲🇬' => 'bendèra: Madagaskar',
     '🇲🇭' => 'bendèra: Pulo Marsal',
-    '🇲🇰' => 'bendèra: Makèdoni Lor',
+    '🇲🇰' => 'bendèra: Makédoni Lor',
     '🇲🇱' => 'bendèra: Mali',
     '🇲🇲' => 'bendèra: Mianmar (Birma)',
     '🇲🇳' => 'bendèra: Monggoli',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bg.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'целувка: жена, жена, тъмна кожа, средна на цвят кожа',
     '👩🏿‍❤‍💋‍👩🏾' => 'целувка: жена, жена, тъмна кожа, средно тъмна кожа',
     '👩🏿‍❤‍💋‍👩🏿' => 'целувка: жена, жена, тъмна кожа',
+    '🧑🏻‍🫯‍🧑🏼' => 'борци: светла кожа и средно светла кожа',
+    '🧑🏻‍🫯‍🧑🏽' => 'борци: светла кожа и средна на цвят кожа',
+    '🧑🏻‍🫯‍🧑🏾' => 'борци: светла кожа и средно тъмна кожа',
+    '🧑🏻‍🫯‍🧑🏿' => 'борци: светла кожа и тъмна кожа',
+    '🧑🏼‍🫯‍🧑🏻' => 'борци: средно светла кожа и светла кожа',
+    '🧑🏼‍🫯‍🧑🏽' => 'борци: средно светла кожа и средна на цвят кожа',
+    '🧑🏼‍🫯‍🧑🏾' => 'борци: средно светла кожа и средно тъмна кожа',
+    '🧑🏼‍🫯‍🧑🏿' => 'борци: средно светла кожа и тъмна кожа',
+    '🧑🏽‍🫯‍🧑🏻' => 'борци: средна на цвят кожа и светла кожа',
+    '🧑🏽‍🫯‍🧑🏼' => 'борци: средна на цвят кожа и средно светла кожа',
+    '🧑🏽‍🫯‍🧑🏾' => 'борци: средна на цвят кожа и средно тъмна кожа',
+    '🧑🏽‍🫯‍🧑🏿' => 'борци: средна на цвят кожа и тъмна кожа',
+    '🧑🏾‍🫯‍🧑🏻' => 'борци: средно тъмна кожа и светла кожа',
+    '🧑🏾‍🫯‍🧑🏼' => 'борци: средно тъмна кожа и средно светла кожа',
+    '🧑🏾‍🫯‍🧑🏽' => 'борци: средно тъмна кожа и средна на цвят кожа',
+    '🧑🏾‍🫯‍🧑🏿' => 'борци: средно тъмна кожа и тъмна кожа',
+    '🧑🏿‍🫯‍🧑🏻' => 'борци: тъмна кожа и светла кожа',
+    '🧑🏿‍🫯‍🧑🏼' => 'борци: тъмна кожа и средно светла кожа',
+    '🧑🏿‍🫯‍🧑🏽' => 'борци: тъмна кожа и средна на цвят кожа',
+    '🧑🏿‍🫯‍🧑🏾' => 'борци: тъмна кожа и средно тъмна кожа',
     '🧑🏻‍❤‍🧑🏼' => 'Двойка и сърце: възрастен, възрастен, светла кожа, средно светла кожа',
     '🧑🏻‍❤‍🧑🏽' => 'Двойка и сърце: възрастен, възрастен, светла кожа, средна на цвят кожа',
     '🧑🏻‍❤‍🧑🏾' => 'Двойка и сърце: възрастен, възрастен, светла кожа, средно тъмна кожа',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'Двойка и сърце: възрастен, възрастен, тъмна кожа, средно светла кожа',
     '🧑🏿‍❤‍🧑🏽' => 'Двойка и сърце: възрастен, възрастен, тъмна кожа, средна на цвят кожа',
     '🧑🏿‍❤‍🧑🏾' => 'Двойка и сърце: възрастен, възрастен, тъмна кожа, средно тъмна кожа',
+    '🧑🏻‍🐰‍🧑🏼' => 'забавляващи се хора: светла кожа и средно светла кожа',
+    '🧑🏻‍🐰‍🧑🏽' => 'забавляващи се хора: светла кожа и средна на цвят кожа',
+    '🧑🏻‍🐰‍🧑🏾' => 'забавляващи се хора: светла кожа и средно тъмна кожа',
+    '🧑🏻‍🐰‍🧑🏿' => 'забавляващи се хора: светла кожа и тъмна кожа',
+    '🧑🏼‍🐰‍🧑🏻' => 'забавляващи се хора: средно светла кожа и светла кожа',
+    '🧑🏼‍🐰‍🧑🏽' => 'забавляващи се хора: средно светла кожа и средна на цвят кожа',
+    '🧑🏼‍🐰‍🧑🏾' => 'забавляващи се хора: средно светла кожа и средно тъмна кожа',
+    '🧑🏼‍🐰‍🧑🏿' => 'забавляващи се хора: средно светла кожа и тъмна кожа',
+    '🧑🏽‍🐰‍🧑🏻' => 'забавляващи се хора: средна на цвят кожа и светла кожа',
+    '🧑🏽‍🐰‍🧑🏼' => 'забавляващи се хора: средна на цвят кожа и средно светла кожа',
+    '🧑🏽‍🐰‍🧑🏾' => 'забавляващи се хора: средна на цвят кожа и средно тъмна кожа',
+    '🧑🏽‍🐰‍🧑🏿' => 'забавляващи се хора: средна на цвят кожа и тъмна кожа',
+    '🧑🏾‍🐰‍🧑🏻' => 'забавляващи се хора: средно тъмна кожа и светла кожа',
+    '🧑🏾‍🐰‍🧑🏼' => 'забавляващи се хора: средно тъмна кожа и средно светла кожа',
+    '🧑🏾‍🐰‍🧑🏽' => 'забавляващи се хора: средно тъмна кожа и средна на цвят кожа',
+    '🧑🏾‍🐰‍🧑🏿' => 'забавляващи се хора: средно тъмна кожа и тъмна кожа',
+    '🧑🏿‍🐰‍🧑🏻' => 'забавляващи се хора: тъмна кожа и светла кожа',
+    '🧑🏿‍🐰‍🧑🏼' => 'забавляващи се хора: тъмна кожа и средно светла кожа',
+    '🧑🏿‍🐰‍🧑🏽' => 'забавляващи се хора: тъмна кожа и средна на цвят кожа',
+    '🧑🏿‍🐰‍🧑🏾' => 'забавляващи се хора: тъмна кожа и средно тъмна кожа',
+    '👨🏻‍🫯‍👨🏼' => 'борещи се мъже: светла кожа и средно светла кожа',
+    '👨🏻‍🫯‍👨🏽' => 'борещи се мъже: светла кожа и средна на цвят кожа',
+    '👨🏻‍🫯‍👨🏾' => 'борещи се мъже: светла кожа и средно тъмна кожа',
+    '👨🏻‍🫯‍👨🏿' => 'борещи се мъже: светла кожа и тъмна кожа',
+    '👨🏼‍🫯‍👨🏻' => 'борещи се мъже: средно светла кожа и светла кожа',
+    '👨🏼‍🫯‍👨🏽' => 'борещи се мъже: средно светла кожа и средна на цвят кожа',
+    '👨🏼‍🫯‍👨🏾' => 'борещи се мъже: средно светла кожа и средно тъмна кожа',
+    '👨🏼‍🫯‍👨🏿' => 'борещи се мъже: средно светла кожа и тъмна кожа',
+    '👨🏽‍🫯‍👨🏻' => 'борещи се мъже: средна на цвят кожа и светла кожа',
+    '👨🏽‍🫯‍👨🏼' => 'борещи се мъже: средна на цвят кожа и средно светла кожа',
+    '👨🏽‍🫯‍👨🏾' => 'борещи се мъже: средна на цвят кожа и средно тъмна кожа',
+    '👨🏽‍🫯‍👨🏿' => 'борещи се мъже: средна на цвят кожа и тъмна кожа',
+    '👨🏾‍🫯‍👨🏻' => 'борещи се мъже: средно тъмна кожа и светла кожа',
+    '👨🏾‍🫯‍👨🏼' => 'борещи се мъже: средно тъмна кожа и средно светла кожа',
+    '👨🏾‍🫯‍👨🏽' => 'борещи се мъже: средно тъмна кожа и средна на цвят кожа',
+    '👨🏾‍🫯‍👨🏿' => 'борещи се мъже: средно тъмна кожа и тъмна кожа',
+    '👨🏿‍🫯‍👨🏻' => 'борещи се мъже: тъмна кожа и светла кожа',
+    '👨🏿‍🫯‍👨🏼' => 'борещи се мъже: тъмна кожа и средно светла кожа',
+    '👨🏿‍🫯‍👨🏽' => 'борещи се мъже: тъмна кожа и средна на цвят кожа',
+    '👨🏿‍🫯‍👨🏾' => 'борещи се мъже: тъмна кожа и средно тъмна кожа',
     '👨🏻‍❤‍👨🏻' => 'Двойка и сърце: мъж, мъж, светла кожа',
     '👨🏻‍❤‍👨🏼' => 'Двойка и сърце: мъж, мъж, светла кожа, средно светла кожа',
     '👨🏻‍❤‍👨🏽' => 'Двойка и сърце: мъж, мъж, светла кожа, средна на цвят кожа',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'Двойка и сърце: мъж, мъж, тъмна кожа, средна на цвят кожа',
     '👨🏿‍❤‍👨🏾' => 'Двойка и сърце: мъж, мъж, тъмна кожа, средно тъмна кожа',
     '👨🏿‍❤‍👨🏿' => 'Двойка и сърце: мъж, мъж, тъмна кожа',
+    '👨🏻‍🐰‍👨🏼' => 'веселящи се мъже със заешки уши: светла кожа и средно светла кожа',
+    '👨🏻‍🐰‍👨🏽' => 'веселящи се мъже със заешки уши: светла кожа и средна на цвят кожа',
+    '👨🏻‍🐰‍👨🏾' => 'веселящи се мъже със заешки уши: светла кожа и средно тъмна кожа',
+    '👨🏻‍🐰‍👨🏿' => 'веселящи се мъже със заешки уши: светла кожа и тъмна кожа',
+    '👨🏼‍🐰‍👨🏻' => 'веселящи се мъже със заешки уши: средно светла кожа и светла кожа',
+    '👨🏼‍🐰‍👨🏽' => 'веселящи се мъже със заешки уши: средно светла кожа и средна на цвят кожа',
+    '👨🏼‍🐰‍👨🏾' => 'веселящи се мъже със заешки уши: средно светла кожа и средно тъмна кожа',
+    '👨🏼‍🐰‍👨🏿' => 'веселящи се мъже със заешки уши: средно светла кожа и тъмна кожа',
+    '👨🏽‍🐰‍👨🏻' => 'веселящи се мъже със заешки уши: средна на цвят кожа и светла кожа',
+    '👨🏽‍🐰‍👨🏼' => 'веселящи се мъже със заешки уши: средна на цвят кожа и средно светла кожа',
+    '👨🏽‍🐰‍👨🏾' => 'веселящи се мъже със заешки уши: средна на цвят кожа и средно тъмна кожа',
+    '👨🏽‍🐰‍👨🏿' => 'веселящи се мъже със заешки уши: средна на цвят кожа и тъмна кожа',
+    '👨🏾‍🐰‍👨🏻' => 'веселящи се мъже със заешки уши: средно тъмна кожа и светла кожа',
+    '👨🏾‍🐰‍👨🏼' => 'веселящи се мъже със заешки уши: средно тъмна кожа и средно светла кожа',
+    '👨🏾‍🐰‍👨🏽' => 'веселящи се мъже със заешки уши: средно тъмна кожа и средна на цвят кожа',
+    '👨🏾‍🐰‍👨🏿' => 'веселящи се мъже със заешки уши: средно тъмна кожа и тъмна кожа',
+    '👨🏿‍🐰‍👨🏻' => 'веселящи се мъже със заешки уши: тъмна кожа и светла кожа',
+    '👨🏿‍🐰‍👨🏼' => 'веселящи се мъже със заешки уши: тъмна кожа и средно светла кожа',
+    '👨🏿‍🐰‍👨🏽' => 'веселящи се мъже със заешки уши: тъмна кожа и средна на цвят кожа',
+    '👨🏿‍🐰‍👨🏾' => 'веселящи се мъже със заешки уши: тъмна кожа и средно тъмна кожа',
+    '👩🏻‍🫯‍👩🏼' => 'борещи се жени: светла кожа и средно светла кожа',
+    '👩🏻‍🫯‍👩🏽' => 'борещи се жени: светла кожа и средна на цвят кожа',
+    '👩🏻‍🫯‍👩🏾' => 'борещи се жени: светла кожа и средно тъмна кожа',
+    '👩🏻‍🫯‍👩🏿' => 'борещи се жени: светла кожа и тъмна кожа',
+    '👩🏼‍🫯‍👩🏻' => 'борещи се жени: средно светла кожа и светла кожа',
+    '👩🏼‍🫯‍👩🏽' => 'борещи се жени: средно светла кожа и средна на цвят кожа',
+    '👩🏼‍🫯‍👩🏾' => 'борещи се жени: средно светла кожа и средно тъмна кожа',
+    '👩🏼‍🫯‍👩🏿' => 'борещи се жени: средно светла кожа и тъмна кожа',
+    '👩🏽‍🫯‍👩🏻' => 'борещи се жени: средна на цвят кожа и светла кожа',
+    '👩🏽‍🫯‍👩🏼' => 'борещи се жени: средна на цвят кожа и средно светла кожа',
+    '👩🏽‍🫯‍👩🏾' => 'борещи се жени: средна на цвят кожа и средно тъмна кожа',
+    '👩🏽‍🫯‍👩🏿' => 'борещи се жени: средна на цвят кожа и тъмна кожа',
+    '👩🏾‍🫯‍👩🏻' => 'борещи се жени: средно тъмна кожа и светла кожа',
+    '👩🏾‍🫯‍👩🏼' => 'борещи се жени: средно тъмна кожа и средно светла кожа',
+    '👩🏾‍🫯‍👩🏽' => 'борещи се жени: средно тъмна кожа и средна на цвят кожа',
+    '👩🏾‍🫯‍👩🏿' => 'борещи се жени: средно тъмна кожа и тъмна кожа',
+    '👩🏿‍🫯‍👩🏻' => 'борещи се жени: тъмна кожа и светла кожа',
+    '👩🏿‍🫯‍👩🏼' => 'борещи се жени: тъмна кожа и средно светла кожа',
+    '👩🏿‍🫯‍👩🏽' => 'борещи се жени: тъмна кожа и средна на цвят кожа',
+    '👩🏿‍🫯‍👩🏾' => 'борещи се жени: тъмна кожа и средно тъмна кожа',
     '👩🏻‍❤‍👨🏻' => 'Двойка и сърце: жена, мъж, светла кожа',
     '👩🏻‍❤‍👨🏼' => 'Двойка и сърце: жена, мъж, светла кожа, средно светла кожа',
     '👩🏻‍❤‍👨🏽' => 'Двойка и сърце: жена, мъж, светла кожа, средна на цвят кожа',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'Двойка и сърце: жена, жена, тъмна кожа, средна на цвят кожа',
     '👩🏿‍❤‍👩🏾' => 'Двойка и сърце: жена, жена, тъмна кожа, средно тъмна кожа',
     '👩🏿‍❤‍👩🏿' => 'Двойка и сърце: жена, жена, тъмна кожа',
+    '👩🏻‍🐰‍👩🏼' => 'забавляващи се жени със заешки уши: светла кожа и средно светла кожа',
+    '👩🏻‍🐰‍👩🏽' => 'забавляващи се жени със заешки уши: светла кожа и средна на цвят кожа',
+    '👩🏻‍🐰‍👩🏾' => 'забавляващи се жени със заешки уши: светла кожа и средно тъмна кожа',
+    '👩🏻‍🐰‍👩🏿' => 'забавляващи се жени със заешки уши: светла кожа и тъмна кожа',
+    '👩🏼‍🐰‍👩🏻' => 'забавляващи се жени със заешки уши: средно светла кожа и светла кожа',
+    '👩🏼‍🐰‍👩🏽' => 'забавляващи се жени със заешки уши: средно светла кожа и средна на цвят кожа',
+    '👩🏼‍🐰‍👩🏾' => 'забавляващи се жени със заешки уши: средно светла кожа и средно тъмна кожа',
+    '👩🏼‍🐰‍👩🏿' => 'забавляващи се жени със заешки уши: средно светла кожа и тъмна кожа',
+    '👩🏽‍🐰‍👩🏻' => 'забавляващи се жени със заешки уши: средна на цвят кожа и светла кожа',
+    '👩🏽‍🐰‍👩🏼' => 'забавляващи се жени със заешки уши: средна на цвят кожа и средно светла кожа',
+    '👩🏽‍🐰‍👩🏾' => 'забавляващи се жени със заешки уши: средна на цвят кожа и средно тъмна кожа',
+    '👩🏽‍🐰‍👩🏿' => 'забавляващи се жени със заешки уши: средна на цвят кожа и тъмна кожа',
+    '👩🏾‍🐰‍👩🏻' => 'забавляващи се жени със заешки уши: средно тъмна кожа и светла кожа',
+    '👩🏾‍🐰‍👩🏼' => 'забавляващи се жени със заешки уши: средно тъмна кожа и средно светла кожа',
+    '👩🏾‍🐰‍👩🏽' => 'забавляващи се жени със заешки уши: средно тъмна кожа и средна на цвят кожа',
+    '👩🏾‍🐰‍👩🏿' => 'забавляващи се жени със заешки уши: средно тъмна кожа и тъмна кожа',
+    '👩🏿‍🐰‍👩🏻' => 'забавляващи се жени със заешки уши: тъмна кожа и светла кожа',
+    '👩🏿‍🐰‍👩🏼' => 'забавляващи се жени със заешки уши: тъмна кожа и средно светла кожа',
+    '👩🏿‍🐰‍👩🏽' => 'забавляващи се жени със заешки уши: тъмна кожа и средна на цвят кожа',
+    '👩🏿‍🐰‍👩🏾' => 'забавляващи се жени със заешки уши: тъмна кожа и средно тъмна кожа',
     '🧑🏻‍🤝‍🧑🏻' => 'хора, които се държат за ръце: светла кожа',
     '🧑🏻‍🤝‍🧑🏼' => 'хора, които се държат за ръце: светла кожа и средно светла кожа',
     '🧑🏻‍🤝‍🧑🏽' => 'хора, които се държат за ръце: светла кожа и средна на цвят кожа',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'Флаг: Шотландия',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'Флаг: Уелс',
     '🧑‍🧑‍🧒‍🧒' => 'семейство: възрастен, възрастен, дете, дете',
-    '🚶🏻‍♀‍➡' => 'ходеща жена в посока надясно',
-    '🚶🏼‍♀‍➡' => 'ходеща жена в посока надясно',
-    '🚶🏽‍♀‍➡' => 'ходеща жена в посока надясно',
-    '🚶🏾‍♀‍➡' => 'ходеща жена в посока надясно',
-    '🚶🏿‍♀‍➡' => 'ходеща жена в посока надясно',
-    '🚶🏻‍♂‍➡' => 'ходещ мъж в посока надясно',
-    '🚶🏼‍♂‍➡' => 'ходещ мъж в посока надясно',
-    '🚶🏽‍♂‍➡' => 'ходещ мъж в посока надясно',
-    '🚶🏾‍♂‍➡' => 'ходещ мъж в посока надясно',
-    '🚶🏿‍♂‍➡' => 'ходещ мъж в посока надясно',
-    '🧎🏻‍♀‍➡' => 'коленичила жена в посока надясно',
-    '🧎🏼‍♀‍➡' => 'коленичила жена в посока надясно',
-    '🧎🏽‍♀‍➡' => 'коленичила жена в посока надясно',
-    '🧎🏾‍♀‍➡' => 'коленичила жена в посока надясно',
-    '🧎🏿‍♀‍➡' => 'коленичила жена в посока надясно',
-    '🧎🏻‍♂‍➡' => 'коленичил мъж в посока надясно',
-    '🧎🏼‍♂‍➡' => 'коленичил мъж в посока надясно',
-    '🧎🏽‍♂‍➡' => 'коленичил мъж в посока надясно',
-    '🧎🏾‍♂‍➡' => 'коленичил мъж в посока надясно',
-    '🧎🏿‍♂‍➡' => 'коленичил мъж в посока надясно',
-    '🧑🏻‍🦯‍➡' => 'човек с бял бастун в посока надясно',
-    '🧑🏼‍🦯‍➡' => 'човек с бял бастун в посока надясно',
-    '🧑🏽‍🦯‍➡' => 'човек с бял бастун в посока надясно',
-    '🧑🏾‍🦯‍➡' => 'човек с бял бастун в посока надясно',
-    '🧑🏿‍🦯‍➡' => 'човек с бял бастун в посока надясно',
-    '👨🏻‍🦯‍➡' => 'мъж с бял бастун в посока надясно',
-    '👨🏼‍🦯‍➡' => 'мъж с бял бастун в посока надясно',
-    '👨🏽‍🦯‍➡' => 'мъж с бял бастун в посока надясно',
-    '👨🏾‍🦯‍➡' => 'мъж с бял бастун в посока надясно',
-    '👨🏿‍🦯‍➡' => 'мъж с бял бастун в посока надясно',
-    '👩🏻‍🦯‍➡' => 'жена с бял бастун в посока надясно',
-    '👩🏼‍🦯‍➡' => 'жена с бял бастун в посока надясно',
-    '👩🏽‍🦯‍➡' => 'жена с бял бастун в посока надясно',
-    '👩🏾‍🦯‍➡' => 'жена с бял бастун в посока надясно',
-    '👩🏿‍🦯‍➡' => 'жена с бял бастун в посока надясно',
-    '🧑🏻‍🦼‍➡' => 'човек в моторизирана инвалидна количка в посока надясно',
-    '🧑🏼‍🦼‍➡' => 'човек в моторизирана инвалидна количка в посока надясно',
-    '🧑🏽‍🦼‍➡' => 'човек в моторизирана инвалидна количка в посока надясно',
-    '🧑🏾‍🦼‍➡' => 'човек в моторизирана инвалидна количка в посока надясно',
-    '🧑🏿‍🦼‍➡' => 'човек в моторизирана инвалидна количка в посока надясно',
-    '👨🏻‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка в посока надясно',
-    '👨🏼‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка в посока надясно',
-    '👨🏽‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка в посока надясно',
-    '👨🏾‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка в посока надясно',
-    '👨🏿‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка в посока надясно',
-    '👩🏻‍🦼‍➡' => 'жена в акумулаторна инвалидна количка в посока надясно',
-    '👩🏼‍🦼‍➡' => 'жена в акумулаторна инвалидна количка в посока надясно',
-    '👩🏽‍🦼‍➡' => 'жена в акумулаторна инвалидна количка в посока надясно',
-    '👩🏾‍🦼‍➡' => 'жена в акумулаторна инвалидна количка в посока надясно',
-    '👩🏿‍🦼‍➡' => 'жена в акумулаторна инвалидна количка в посока надясно',
-    '🧑🏻‍🦽‍➡' => 'човек в инвалидна количка в посока надясно',
-    '🧑🏼‍🦽‍➡' => 'човек в инвалидна количка в посока надясно',
-    '🧑🏽‍🦽‍➡' => 'човек в инвалидна количка в посока надясно',
-    '🧑🏾‍🦽‍➡' => 'човек в инвалидна количка в посока надясно',
-    '🧑🏿‍🦽‍➡' => 'човек в инвалидна количка в посока надясно',
-    '👨🏻‍🦽‍➡' => 'мъж в инвалидна количка в посока надясно',
-    '👨🏼‍🦽‍➡' => 'мъж в инвалидна количка в посока надясно',
-    '👨🏽‍🦽‍➡' => 'мъж в инвалидна количка в посока надясно',
-    '👨🏾‍🦽‍➡' => 'мъж в инвалидна количка в посока надясно',
-    '👨🏿‍🦽‍➡' => 'мъж в инвалидна количка в посока надясно',
-    '👩🏻‍🦽‍➡' => 'жена в инвалидна количка в посока надясно',
-    '👩🏼‍🦽‍➡' => 'жена в инвалидна количка в посока надясно',
-    '👩🏽‍🦽‍➡' => 'жена в инвалидна количка в посока надясно',
-    '👩🏾‍🦽‍➡' => 'жена в инвалидна количка в посока надясно',
-    '👩🏿‍🦽‍➡' => 'жена в инвалидна количка в посока надясно',
-    '🏃🏻‍♀‍➡' => 'тичаща жена в посока надясно',
-    '🏃🏼‍♀‍➡' => 'тичаща жена в посока надясно',
-    '🏃🏽‍♀‍➡' => 'тичаща жена в посока надясно',
-    '🏃🏾‍♀‍➡' => 'тичаща жена в посока надясно',
-    '🏃🏿‍♀‍➡' => 'тичаща жена в посока надясно',
-    '🏃🏻‍♂‍➡' => 'тичащ мъж в посока надясно',
-    '🏃🏼‍♂‍➡' => 'тичащ мъж в посока надясно',
-    '🏃🏽‍♂‍➡' => 'тичащ мъж в посока надясно',
-    '🏃🏾‍♂‍➡' => 'тичащ мъж в посока надясно',
-    '🏃🏿‍♂‍➡' => 'тичащ мъж в посока надясно',
+    '🚶🏻‍♀‍➡' => 'ходеща жена: светла кожа и в посока надясно',
+    '🚶🏼‍♀‍➡' => 'ходеща жена: средно светла кожа и в посока надясно',
+    '🚶🏽‍♀‍➡' => 'ходеща жена: средна на цвят кожа и в посока надясно',
+    '🚶🏾‍♀‍➡' => 'ходеща жена: средно тъмна кожа и в посока надясно',
+    '🚶🏿‍♀‍➡' => 'ходеща жена: тъмна кожа и в посока надясно',
+    '🚶🏻‍♂‍➡' => 'ходещ мъж: светла кожа и в посока надясно',
+    '🚶🏼‍♂‍➡' => 'ходещ мъж: средно светла кожа и в посока надясно',
+    '🚶🏽‍♂‍➡' => 'ходещ мъж: средна на цвят кожа и в посока надясно',
+    '🚶🏾‍♂‍➡' => 'ходещ мъж: средно тъмна кожа и в посока надясно',
+    '🚶🏿‍♂‍➡' => 'ходещ мъж: тъмна кожа и в посока надясно',
+    '🧎🏻‍♀‍➡' => 'коленичила жена: светла кожа и в посока надясно',
+    '🧎🏼‍♀‍➡' => 'коленичила жена: средно светла кожа и в посока надясно',
+    '🧎🏽‍♀‍➡' => 'коленичила жена: средна на цвят кожа и в посока надясно',
+    '🧎🏾‍♀‍➡' => 'коленичила жена: средно тъмна кожа и в посока надясно',
+    '🧎🏿‍♀‍➡' => 'коленичила жена: тъмна кожа и в посока надясно',
+    '🧎🏻‍♂‍➡' => 'коленичил мъж: светла кожа и в посока надясно',
+    '🧎🏼‍♂‍➡' => 'коленичил мъж: средно светла кожа и в посока надясно',
+    '🧎🏽‍♂‍➡' => 'коленичил мъж: средна на цвят кожа и в посока надясно',
+    '🧎🏾‍♂‍➡' => 'коленичил мъж: средно тъмна кожа и в посока надясно',
+    '🧎🏿‍♂‍➡' => 'коленичил мъж: тъмна кожа и в посока надясно',
+    '🧑🏻‍🦯‍➡' => 'човек с бял бастун: светла кожа и в посока надясно',
+    '🧑🏼‍🦯‍➡' => 'човек с бял бастун: средно светла кожа и в посока надясно',
+    '🧑🏽‍🦯‍➡' => 'човек с бял бастун: средна на цвят кожа и в посока надясно',
+    '🧑🏾‍🦯‍➡' => 'човек с бял бастун: средно тъмна кожа и в посока надясно',
+    '🧑🏿‍🦯‍➡' => 'човек с бял бастун: тъмна кожа и в посока надясно',
+    '👨🏻‍🦯‍➡' => 'мъж с бял бастун: светла кожа и в посока надясно',
+    '👨🏼‍🦯‍➡' => 'мъж с бял бастун: средно светла кожа и в посока надясно',
+    '👨🏽‍🦯‍➡' => 'мъж с бял бастун: средна на цвят кожа и в посока надясно',
+    '👨🏾‍🦯‍➡' => 'мъж с бял бастун: средно тъмна кожа и в посока надясно',
+    '👨🏿‍🦯‍➡' => 'мъж с бял бастун: тъмна кожа и в посока надясно',
+    '👩🏻‍🦯‍➡' => 'жена с бял бастун: светла кожа и в посока надясно',
+    '👩🏼‍🦯‍➡' => 'жена с бял бастун: средно светла кожа и в посока надясно',
+    '👩🏽‍🦯‍➡' => 'жена с бял бастун: средна на цвят кожа и в посока надясно',
+    '👩🏾‍🦯‍➡' => 'жена с бял бастун: средно тъмна кожа и в посока надясно',
+    '👩🏿‍🦯‍➡' => 'жена с бял бастун: тъмна кожа и в посока надясно',
+    '🧑🏻‍🦼‍➡' => 'човек в моторизирана инвалидна количка: светла кожа и в посока надясно',
+    '🧑🏼‍🦼‍➡' => 'човек в моторизирана инвалидна количка: средно светла кожа и в посока надясно',
+    '🧑🏽‍🦼‍➡' => 'човек в моторизирана инвалидна количка: средна на цвят кожа и в посока надясно',
+    '🧑🏾‍🦼‍➡' => 'човек в моторизирана инвалидна количка: средно тъмна кожа и в посока надясно',
+    '🧑🏿‍🦼‍➡' => 'човек в моторизирана инвалидна количка: тъмна кожа и в посока надясно',
+    '👨🏻‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка: светла кожа и в посока надясно',
+    '👨🏼‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка: средно светла кожа и в посока надясно',
+    '👨🏽‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка: средна на цвят кожа и в посока надясно',
+    '👨🏾‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка: средно тъмна кожа и в посока надясно',
+    '👨🏿‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка: тъмна кожа и в посока надясно',
+    '👩🏻‍🦼‍➡' => 'жена в акумулаторна инвалидна количка: светла кожа и в посока надясно',
+    '👩🏼‍🦼‍➡' => 'жена в акумулаторна инвалидна количка: средно светла кожа и в посока надясно',
+    '👩🏽‍🦼‍➡' => 'жена в акумулаторна инвалидна количка: средна на цвят кожа и в посока надясно',
+    '👩🏾‍🦼‍➡' => 'жена в акумулаторна инвалидна количка: средно тъмна кожа и в посока надясно',
+    '👩🏿‍🦼‍➡' => 'жена в акумулаторна инвалидна количка: тъмна кожа и в посока надясно',
+    '🧑🏻‍🦽‍➡' => 'човек в инвалидна количка: светла кожа и в посока надясно',
+    '🧑🏼‍🦽‍➡' => 'човек в инвалидна количка: средно светла кожа и в посока надясно',
+    '🧑🏽‍🦽‍➡' => 'човек в инвалидна количка: средна на цвят кожа и в посока надясно',
+    '🧑🏾‍🦽‍➡' => 'човек в инвалидна количка: средно тъмна кожа и в посока надясно',
+    '🧑🏿‍🦽‍➡' => 'човек в инвалидна количка: тъмна кожа и в посока надясно',
+    '👨🏻‍🦽‍➡' => 'мъж в инвалидна количка: светла кожа и в посока надясно',
+    '👨🏼‍🦽‍➡' => 'мъж в инвалидна количка: средно светла кожа и в посока надясно',
+    '👨🏽‍🦽‍➡' => 'мъж в инвалидна количка: средна на цвят кожа и в посока надясно',
+    '👨🏾‍🦽‍➡' => 'мъж в инвалидна количка: средно тъмна кожа и в посока надясно',
+    '👨🏿‍🦽‍➡' => 'мъж в инвалидна количка: тъмна кожа и в посока надясно',
+    '👩🏻‍🦽‍➡' => 'жена в инвалидна количка: светла кожа и в посока надясно',
+    '👩🏼‍🦽‍➡' => 'жена в инвалидна количка: средно светла кожа и в посока надясно',
+    '👩🏽‍🦽‍➡' => 'жена в инвалидна количка: средна на цвят кожа и в посока надясно',
+    '👩🏾‍🦽‍➡' => 'жена в инвалидна количка: средно тъмна кожа и в посока надясно',
+    '👩🏿‍🦽‍➡' => 'жена в инвалидна количка: тъмна кожа и в посока надясно',
+    '🏃🏻‍♀‍➡' => 'тичаща жена: светла кожа и в посока надясно',
+    '🏃🏼‍♀‍➡' => 'тичаща жена: средно светла кожа и в посока надясно',
+    '🏃🏽‍♀‍➡' => 'тичаща жена: средна на цвят кожа и в посока надясно',
+    '🏃🏾‍♀‍➡' => 'тичаща жена: средно тъмна кожа и в посока надясно',
+    '🏃🏿‍♀‍➡' => 'тичаща жена: тъмна кожа и в посока надясно',
+    '🏃🏻‍♂‍➡' => 'тичащ мъж: светла кожа и в посока надясно',
+    '🏃🏼‍♂‍➡' => 'тичащ мъж: средно светла кожа и в посока надясно',
+    '🏃🏽‍♂‍➡' => 'тичащ мъж: средна на цвят кожа и в посока надясно',
+    '🏃🏾‍♂‍➡' => 'тичащ мъж: средно тъмна кожа и в посока надясно',
+    '🏃🏿‍♂‍➡' => 'тичащ мъж: тъмна кожа и в посока надясно',
     '🫱🏻‍🫲🏼' => 'ръкостискане: светла кожа и средно светла кожа',
     '🫱🏻‍🫲🏽' => 'ръкостискане: светла кожа и средна на цвят кожа',
     '🫱🏻‍🫲🏾' => 'ръкостискане: светла кожа и средно тъмна кожа',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ръкостискане: тъмна кожа и средно светла кожа',
     '🫱🏿‍🫲🏽' => 'ръкостискане: тъмна кожа и средна на цвят кожа',
     '🫱🏿‍🫲🏾' => 'ръкостискане: тъмна кожа и средно тъмна кожа',
-    '🚶‍♀‍➡' => 'ходеща жена в посока надясно',
-    '🚶‍♂‍➡' => 'ходещ мъж в посока надясно',
-    '🧎‍♀‍➡' => 'коленичила жена в посока надясно',
-    '🧎‍♂‍➡' => 'коленичил мъж в посока надясно',
-    '🧑‍🦯‍➡' => 'човек с бял бастун в посока надясно',
-    '👨‍🦯‍➡' => 'мъж с бял бастун в посока надясно',
-    '👩‍🦯‍➡' => 'жена с бял бастун в посока надясно',
-    '🧑‍🦼‍➡' => 'човек в моторизирана инвалидна количка в посока надясно',
-    '👨‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка в посока надясно',
-    '👩‍🦼‍➡' => 'жена в акумулаторна инвалидна количка в посока надясно',
-    '🧑‍🦽‍➡' => 'човек в инвалидна количка в посока надясно',
-    '👨‍🦽‍➡' => 'мъж в инвалидна количка в посока надясно',
-    '👩‍🦽‍➡' => 'жена в инвалидна количка в посока надясно',
-    '🏃‍♀‍➡' => 'тичаща жена в посока надясно',
-    '🏃‍♂‍➡' => 'тичащ мъж в посока надясно',
+    '🚶‍♀‍➡' => 'ходеща жена: в посока надясно',
+    '🚶‍♂‍➡' => 'ходещ мъж: в посока надясно',
+    '🧎‍♀‍➡' => 'коленичила жена: в посока надясно',
+    '🧎‍♂‍➡' => 'коленичил мъж: в посока надясно',
+    '🧑‍🦯‍➡' => 'човек с бял бастун: в посока надясно',
+    '👨‍🦯‍➡' => 'мъж с бял бастун: в посока надясно',
+    '👩‍🦯‍➡' => 'жена с бял бастун: в посока надясно',
+    '🧑‍🦼‍➡' => 'човек в моторизирана инвалидна количка: в посока надясно',
+    '👨‍🦼‍➡' => 'мъж в акумулаторна инвалидна количка: в посока надясно',
+    '👩‍🦼‍➡' => 'жена в акумулаторна инвалидна количка: в посока надясно',
+    '🧑‍🦽‍➡' => 'човек в инвалидна количка: в посока надясно',
+    '👨‍🦽‍➡' => 'мъж в инвалидна количка: в посока надясно',
+    '👩‍🦽‍➡' => 'жена в инвалидна количка: в посока надясно',
+    '🏃‍♀‍➡' => 'тичаща жена: в посока надясно',
+    '🏃‍♂‍➡' => 'тичащ мъж: в посока надясно',
     '👩‍❤‍👨' => 'Двойка и сърце: жена и мъж',
     '👨‍❤‍👨' => 'Двойка и сърце: мъж и мъж',
     '👩‍❤‍👩' => 'Двойка и сърце: жена и жена',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'възрастен: средна на цвят кожа и плешив човек',
     '🧑🏾‍🦲' => 'възрастен: средно тъмна кожа и плешив човек',
     '🧑🏿‍🦲' => 'възрастен: тъмна кожа и плешив човек',
+    '🧑🏻‍🩰' => 'балерина: светла кожа',
+    '🧑🏼‍🩰' => 'балерина: средно светла кожа',
+    '🧑🏽‍🩰' => 'балерина: средна на цвят кожа',
+    '🧑🏾‍🩰' => 'балерина: средно тъмна кожа',
+    '🧑🏿‍🩰' => 'балерина: тъмна кожа',
     '🧔🏻‍♂' => 'мъж: светла кожа и брада',
     '🧔🏼‍♂' => 'мъж: средно светла кожа и брада',
     '🧔🏽‍♂' => 'мъж: средна на цвят кожа и брада',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'ходеща жена: средна на цвят кожа',
     '🚶🏾‍♀' => 'ходеща жена: средно тъмна кожа',
     '🚶🏿‍♀' => 'ходеща жена: тъмна кожа',
-    '🚶🏻‍➡' => 'пешеходец в посока надясно',
-    '🚶🏼‍➡' => 'пешеходец в посока надясно',
-    '🚶🏽‍➡' => 'пешеходец в посока надясно',
-    '🚶🏾‍➡' => 'пешеходец в посока надясно',
-    '🚶🏿‍➡' => 'пешеходец в посока надясно',
+    '🚶🏻‍➡' => 'пешеходец: светла кожа и в посока надясно',
+    '🚶🏼‍➡' => 'пешеходец: средно светла кожа и в посока надясно',
+    '🚶🏽‍➡' => 'пешеходец: средна на цвят кожа и в посока надясно',
+    '🚶🏾‍➡' => 'пешеходец: средно тъмна кожа и в посока надясно',
+    '🚶🏿‍➡' => 'пешеходец: тъмна кожа и в посока надясно',
     '🧍🏻‍♂' => 'изправен мъж: светла кожа',
     '🧍🏼‍♂' => 'изправен мъж: средно светла кожа',
     '🧍🏽‍♂' => 'изправен мъж: средна на цвят кожа',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'коленичила жена: средна на цвят кожа',
     '🧎🏾‍♀' => 'коленичила жена: средно тъмна кожа',
     '🧎🏿‍♀' => 'коленичила жена: тъмна кожа',
-    '🧎🏻‍➡' => 'коленичил човек в посока надясно',
-    '🧎🏼‍➡' => 'коленичил човек в посока надясно',
-    '🧎🏽‍➡' => 'коленичил човек в посока надясно',
-    '🧎🏾‍➡' => 'коленичил човек в посока надясно',
-    '🧎🏿‍➡' => 'коленичил човек в посока надясно',
+    '🧎🏻‍➡' => 'коленичил човек: светла кожа и в посока надясно',
+    '🧎🏼‍➡' => 'коленичил човек: средно светла кожа и в посока надясно',
+    '🧎🏽‍➡' => 'коленичил човек: средна на цвят кожа и в посока надясно',
+    '🧎🏾‍➡' => 'коленичил човек: средно тъмна кожа и в посока надясно',
+    '🧎🏿‍➡' => 'коленичил човек: тъмна кожа и в посока надясно',
     '🧑🏻‍🦯' => 'човек с бял бастун: светла кожа',
     '🧑🏼‍🦯' => 'човек с бял бастун: средно светла кожа',
     '🧑🏽‍🦯' => 'човек с бял бастун: средна на цвят кожа',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'тичаща жена: средна на цвят кожа',
     '🏃🏾‍♀' => 'тичаща жена: средно тъмна кожа',
     '🏃🏿‍♀' => 'тичаща жена: тъмна кожа',
-    '🏃🏻‍➡' => 'бегач в посока надясно',
-    '🏃🏼‍➡' => 'бегач в посока надясно',
-    '🏃🏽‍➡' => 'бегач в посока надясно',
-    '🏃🏾‍➡' => 'бегач в посока надясно',
-    '🏃🏿‍➡' => 'бегач в посока надясно',
+    '🏃🏻‍➡' => 'бегач: светла кожа и в посока надясно',
+    '🏃🏼‍➡' => 'бегач: средно светла кожа и в посока надясно',
+    '🏃🏽‍➡' => 'бегач: средна на цвят кожа и в посока надясно',
+    '🏃🏾‍➡' => 'бегач: средно тъмна кожа и в посока надясно',
+    '🏃🏿‍➡' => 'бегач: тъмна кожа и в посока надясно',
+    '👯🏻‍♀' => 'забавляващи се жени със заешки уши: светла кожа',
+    '👯🏼‍♀' => 'забавляващи се жени със заешки уши: средно светла кожа',
+    '👯🏽‍♀' => 'забавляващи се жени със заешки уши: средна на цвят кожа',
+    '👯🏾‍♀' => 'забавляващи се жени със заешки уши: средно тъмна кожа',
+    '👯🏿‍♀' => 'забавляващи се жени със заешки уши: тъмна кожа',
+    '👯🏻‍♂' => 'веселящи се мъже със заешки уши: светла кожа',
+    '👯🏼‍♂' => 'веселящи се мъже със заешки уши: средно светла кожа',
+    '👯🏽‍♂' => 'веселящи се мъже със заешки уши: средна на цвят кожа',
+    '👯🏾‍♂' => 'веселящи се мъже със заешки уши: средно тъмна кожа',
+    '👯🏿‍♂' => 'веселящи се мъже със заешки уши: тъмна кожа',
     '🧖🏻‍♂' => 'мъж в помещение с пара: светла кожа',
     '🧖🏼‍♂' => 'мъж в помещение с пара: средно светла кожа',
     '🧖🏽‍♂' => 'мъж в помещение с пара: средна на цвят кожа',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'акробатка: средна на цвят кожа',
     '🤸🏾‍♀' => 'акробатка: средно тъмна кожа',
     '🤸🏿‍♀' => 'акробатка: тъмна кожа',
+    '🤼🏻‍♀' => 'борещи се жени: светла кожа',
+    '🤼🏼‍♀' => 'борещи се жени: средно светла кожа',
+    '🤼🏽‍♀' => 'борещи се жени: средна на цвят кожа',
+    '🤼🏾‍♀' => 'борещи се жени: средно тъмна кожа',
+    '🤼🏿‍♀' => 'борещи се жени: тъмна кожа',
+    '🤼🏻‍♂' => 'борещи се мъже: светла кожа',
+    '🤼🏼‍♂' => 'борещи се мъже: средно светла кожа',
+    '🤼🏽‍♂' => 'борещи се мъже: средна на цвят кожа',
+    '🤼🏾‍♂' => 'борещи се мъже: средно тъмна кожа',
+    '🤼🏿‍♂' => 'борещи се мъже: тъмна кожа',
     '🤽🏻‍♂' => 'мъж, играещ водна топка: светла кожа',
     '🤽🏼‍♂' => 'мъж, играещ водна топка: средно светла кожа',
     '🤽🏽‍♂' => 'мъж, играещ водна топка: средна на цвят кожа',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'жена: къдрава коса',
     '👩‍🦳' => 'жена: побеляла коса',
     '👩‍🦲' => 'жена: плешив човек',
-    '🚶‍➡' => 'пешеходец в посока надясно',
-    '🧎‍➡' => 'коленичил човек в посока надясно',
-    '🏃‍➡' => 'бегач в посока надясно',
+    '🚶‍➡' => 'пешеходец: в посока надясно',
+    '🧎‍➡' => 'коленичил човек: в посока надясно',
+    '🏃‍➡' => 'бегач: в посока надясно',
     '👨‍👦' => 'семейство: мъж и момче',
     '👨‍👧' => 'семейство: мъж и момиче',
     '👩‍👦' => 'семейство: жена и момче',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'жена в инвалидна количка',
     '🏃‍♂' => 'тичащ мъж',
     '🏃‍♀' => 'тичаща жена',
+    '🧑‍🩰' => 'балерина',
     '👯‍♂' => 'веселящи се мъже със заешки уши',
     '👯‍♀' => 'забавляващи се жени със заешки уши',
     '🧖‍♂' => 'мъж в помещение с пара',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'Левитиращ мъж в костюм: средна на цвят кожа',
     '🕴🏾' => 'Левитиращ мъж в костюм: средно тъмна кожа',
     '🕴🏿' => 'Левитиращ мъж в костюм: тъмна кожа',
+    '👯🏻' => 'забавляващи се хора: светла кожа',
+    '👯🏼' => 'забавляващи се хора: средно светла кожа',
+    '👯🏽' => 'забавляващи се хора: средна на цвят кожа',
+    '👯🏾' => 'забавляващи се хора: средно тъмна кожа',
+    '👯🏿' => 'забавляващи се хора: тъмна кожа',
     '🧖🏻' => 'човек в помещение с пара: светла кожа',
     '🧖🏼' => 'човек в помещение с пара: средно светла кожа',
     '🧖🏽' => 'човек в помещение с пара: средна на цвят кожа',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'циганско колело: средна на цвят кожа',
     '🤸🏾' => 'циганско колело: средно тъмна кожа',
     '🤸🏿' => 'циганско колело: тъмна кожа',
+    '🤼🏻' => 'борци: светла кожа',
+    '🤼🏼' => 'борци: средно светла кожа',
+    '🤼🏽' => 'борци: средна на цвят кожа',
+    '🤼🏾' => 'борци: средно тъмна кожа',
+    '🤼🏿' => 'борци: тъмна кожа',
     '🤽🏻' => 'водна топка: светла кожа',
     '🤽🏼' => 'водна топка: средно светла кожа',
     '🤽🏽' => 'водна топка: средна на цвят кожа',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'Флаг: Китай',
     '🇨🇴' => 'Флаг: Колумбия',
     '🇨🇵' => 'Флаг: остров Клипертон',
+    '🇨🇶' => 'Флаг: Сарк',
     '🇨🇷' => 'Флаг: Коста Рика',
     '🇨🇺' => 'Флаг: Куба',
     '🇨🇻' => 'Флаг: Кабо Верде',
@@ -2390,13 +2547,6 @@
     '🏽' => 'средна на цвят кожа',
     '🏾' => 'средно тъмна кожа',
     '🏿' => 'тъмна кожа',
-    '🪉' => 'арфа',
-    '🪏' => 'лопата',
-    '🪾' => 'дърво без листа',
-    '🫆' => 'пръстов отпечатък',
-    '🫜' => 'кореноплоден зеленчук',
-    '🫟' => 'петно',
-    '🫩' => 'лице с торбички под очите',
     '😀' => 'Широко усмихнато лице',
     '😃' => 'Широко усмихнато лице с големи очи',
     '😄' => 'Широко усмихнато лице с усмихнати очи',
@@ -2450,6 +2600,7 @@
     '😪' => 'Сънено лице',
     '🤤' => 'лице с капеща слюнка',
     '😴' => 'Спящо лице',
+    '🫩' => 'лице с торбички под очите',
     '😷' => 'Лице с медицинска маска',
     '🤒' => 'Лице с термометър',
     '🤕' => 'Лице с превръзка на главата',
@@ -2476,6 +2627,7 @@
     '😯' => 'Изненадано лице',
     '😲' => 'изумено лице',
     '😳' => 'Изчервено лице',
+    '🫪' => 'изкривено лице',
     '🥺' => 'умоляващо лице',
     '🥹' => 'лице, което сдържа сълзите си',
     '😦' => 'Намръщено лице с отворена уста',
@@ -2547,6 +2699,7 @@
     '💋' => 'Отпечатък от целувка',
     '💯' => 'сто точки',
     '💢' => 'Символ за гняв',
+    '🫯' => 'облак от бой',
     '💥' => 'сблъсък',
     '💫' => 'замайване',
     '💦' => 'капки пот',
@@ -2670,6 +2823,7 @@
     '🧞' => 'женски джин',
     '🧟' => 'зомби',
     '🧌' => 'трол',
+    '🫈' => 'космато същество',
     '💆' => 'Масаж на лицето',
     '💇' => 'прическа',
     '🚶' => 'пешеходец',
@@ -2713,6 +2867,7 @@
     '🫂' => 'прегръщащи се хора',
     '👪' => 'семейство',
     '👣' => 'стъпки',
+    '🫆' => 'пръстов отпечатък',
     '🦰' => 'рижа коса',
     '🦱' => 'къдрава коса',
     '🦳' => 'побеляла коса',
@@ -2812,6 +2967,7 @@
     '🐳' => 'пръскащ кит',
     '🐋' => 'кит',
     '🐬' => 'делфин',
+    '🫍' => 'косатка',
     '🦭' => 'тюлен',
     '🐟' => 'риба',
     '🐠' => 'тропическа риба',
@@ -2821,6 +2977,11 @@
     '🐚' => 'спирална раковина',
     '🪸' => 'корал',
     '🪼' => 'медуза',
+    '🦀' => 'рак',
+    '🦞' => 'омар',
+    '🦐' => 'скарида',
+    '🦑' => 'калмар',
+    '🦪' => 'стрида',
     '🐌' => 'охлюв',
     '🦋' => 'пеперуда',
     '🐛' => 'буболечка',
@@ -2865,6 +3026,7 @@
     '🪹' => 'празно гнездо',
     '🪺' => 'гнездо с яйца',
     '🍄' => 'гъба',
+    '🪾' => 'дърво без листа',
     '🍇' => 'грозде',
     '🍈' => 'пъпеш',
     '🍉' => 'диня',
@@ -2901,6 +3063,7 @@
     '🌰' => 'кестен',
     '🫚' => 'корен от джинджифил',
     '🫛' => 'грахова шушулка',
+    '🫜' => 'кореноплоден зеленчук',
     '🍞' => 'хляб',
     '🥐' => 'кроасан',
     '🥖' => 'багета',
@@ -2952,11 +3115,6 @@
     '🥟' => 'пелмен',
     '🥠' => 'бисквита с късметче',
     '🥡' => 'кутия за храна за вкъщи',
-    '🦀' => 'рак',
-    '🦞' => 'омар',
-    '🦐' => 'скарида',
-    '🦑' => 'калмар',
-    '🦪' => 'стрида',
     '🍦' => 'крем сладолед',
     '🍧' => 'леден десерт',
     '🍨' => 'сладолед',
@@ -3007,6 +3165,7 @@
     '🧭' => 'компас',
     '🏔' => 'покрита със сняг планина',
     '⛰' => 'планина',
+    '🛘' => 'свлачище',
     '🌋' => 'вулкан',
     '🗻' => 'връх Фуджи',
     '🏕' => 'къмпинг',
@@ -3367,16 +3526,18 @@
     '🎧' => 'слушалки',
     '📻' => 'радио',
     '🎷' => 'саксофон',
+    '🎺' => 'тромпет',
+    '🪊' => 'тромбон',
     '🪗' => 'акордеон',
     '🎸' => 'китара',
     '🎹' => 'клавиатура на музикален инструмент',
-    '🎺' => 'тромпет',
     '🎻' => 'цигулка',
     '🪕' => 'банджо',
     '🥁' => 'барабан',
     '🪘' => 'висок барабан',
     '🪇' => 'маракаси',
     '🪈' => 'флейта',
+    '🪉' => 'арфа',
     '📱' => 'мобилен телефон',
     '📲' => 'мобилен телефон със стрелка',
     '☎' => 'телефон',
@@ -3430,8 +3591,9 @@
     '📑' => 'отметки',
     '🔖' => 'отметка',
     '🏷' => 'етикет',
-    '💰' => 'торба с пари',
     '🪙' => 'монета',
+    '💰' => 'торба с пари',
+    '🪎' => 'сандък със съкровища',
     '💴' => 'банкнота със знак за йена',
     '💵' => 'банкнота със знак за долар',
     '💶' => 'банкнота със знак за евро',
@@ -3514,6 +3676,7 @@
     '🧰' => 'кутия за инструменти',
     '🧲' => 'магнит',
     '🪜' => 'стълба',
+    '🪏' => 'лопата',
     '⚗' => 'аламбик',
     '🧪' => 'епруветка',
     '🧫' => 'блюдо на Петри',
@@ -3697,6 +3860,7 @@
     '✴' => 'осмолъчна звезда',
     '❇' => 'искра',
     '™' => 'търговска марка',
+    '🫟' => 'петно',
     '🔠' => 'въвеждане на главни букви на латиница',
     '🔡' => 'въвеждане на малки букви на латиница',
     '🔢' => 'въвеждане на цифри',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-blo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-blo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-blo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-blo.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,112 @@
 <?php
 
 return [
+    '🐕‍🦺' => 'asǝŋkaŋakanama',
+    '🐈‍⬛' => 'ganyaʊ gaɖono',
+    '🐻‍❄' => 'ursifɔnɔ',
+    '🐦‍⬛' => 'gasapɩ́ gaɖono',
+    '🐦‍🔥' => 'gasapɩ́ fenis',
+    '🦵' => 'ʊkei',
+    '👂' => 'gʊtɔ',
+    '👃' => 'gɩŋʊnʊ',
+    '🧠' => 'gʊfaŋa',
+    '🫀' => 'gɩfolu',
+    '🫁' => 'akufɛrɛfɛrɛ',
+    '🦷' => 'gʊnyoo',
+    '🦴' => 'ŋkǝwa',
+    '👀' => 'ɩnyine',
+    '👁' => 'gɩnyine',
+    '👅' => 'gɩɖanʊ',
+    '👄' => 'ganɔ',
+    '🐵' => 'akʊná agayɛ',
+    '🐒' => 'akʊná',
+    '🦍' => 'goril',
+    '🦧' => 'ʊrantan',
+    '🐶' => 'asna agayɛ',
     '🐕' => 'asna',
+    '🦮' => 'asǝntoŋokafɔnɔrɛ',
+    '🐩' => 'asna ɩsana pùùù',
+    '🐺' => 'Asnaŋɔnja abʊmbɔnɔ',
+    '🦊' => 'asnaŋɔnja ajala',
+    '🦝' => 'ursijalɩ',
+    '🐱' => 'ganyaʊ kaayɛ',
+    '🐈' => 'ganyaʊ',
+    '🦁' => 'guuni agayɛ',
+    '🐯' => 'atabɩyarɩ ɩsǝnayar agayɛ',
+    '🐅' => 'atabɩyarɩ ɩsǝnayar',
+    '🐆' => 'atabɩyarɩ',
+    '🐴' => 'asuko agayɛ',
+    '🫎' => 'ayʊlʊkpatɩ',
+    '🫏' => 'gakɔŋkɔŋɔ́',
+    '🐎' => 'asuko',
+    '🦄' => 'asuko gʊyʊlʊyar',
+    '🦓' => 'gakɔŋkɔŋɔ́ ɩsǝnayar',
+    '🦌' => 'gajagʊyʊlʊ',
+    '🦬' => 'bisɔn',
+    '🐮' => 'nnanarɩ kaayɛ',
+    '🐂' => 'nnakoro',
+    '🐃' => 'ʊkó',
+    '🐄' => 'nnanarɩ',
+    '🐷' => 'ʊkuruci agayɛ',
+    '🐖' => 'ʊkuruci',
+    '🐗' => 'ʊkuruci aŋɔnja',
+    '🐽' => 'ʊkuruci agɩŋʊnʊ',
+    '🐏' => 'nraŋkoro',
+    '🐑' => 'arama',
+    '🐐' => 'ʊce',
+    '🐪' => 'Raakum',
+    '🐫' => 'Raakum ɩjɩmaajɩmaayar',
+    '🦙' => 'lamaa',
+    '🦒' => 'abɔrɩ ʊɖɔlamakayar',
+    '🐘' => 'abʊrʊ',
+    '🦣' => 'mamuuf',
+    '🦏' => 'abʊrʊ gɩŋʊnʊyʊlʊyar',
+    '🦛' => 'atubʊrʊ',
+    '🐭' => 'ʊfulǝ agayɛ',
+    '🐁' => 'ʊfulǝ',
+    '🐀' => 'ʊshiresʊra',
+    '🐹' => 'ʊfulǝɖǝuka',
+    '🐰' => 'garomo kaayɛ',
+    '🐇' => 'Garomo',
+    '🐿' => 'gakɔmbɩlɩ',
+    '🦔' => 'gasǝnɩshɩnʊ',
+    '🦇' => 'gʊjǝmasʊra',
+    '🐻' => 'ursi',
+    '🐨' => 'ursi koalaa',
+    '🐼' => 'ursi panɖaa',
+    '🦥' => 'gafunfambɔrɩ',
+    '🦦' => 'lutǝr',
+    '🦨' => 'mufɛɛtɩ',
+    '🦘' => 'abɔrɩ ncǝnfǝlǝyar',
+    '🦡' => 'bɩlɛroo',
+    '🐾' => 'ɩbɔrɩ banaŋa',
+    '🦃' => 'tolotolo',
+    '🐔' => 'ncɩrɩnarɩ',
+    '🐓' => 'acɩrɩsoro',
+    '🐣' => 'gacɩrɩpiri gapika',
+    '🐤' => 'gacɩrɩpiri',
+    '🐥' => 'gacɩrɩpiri kaayɛ',
+    '🐦' => 'gasapɩ́',
+    '🐧' => 'gaprakǝlisapɩ',
+    '🕊' => 'alikuku afɔnɔ',
+    '🦅' => 'asáʊ',
+    '🦆' => 'kpakpafɩʊ',
+    '🦢' => 'kpakpafɩʊ ʊɖɔlamakayar',
+    '🦉' => 'nrǝnrǝmǝ',
+    '🦤' => 'kpakpafɩʊ ɖoóɖoó',
+    '🪶' => 'gɩsanà',
+    '🦩' => 'fǝlamiŋgo',
+    '🦚' => 'tolotolo bʊcǝma',
+    '🦜' => 'akoo',
+    '🪽' => 'gʊpra',
+    '🪿' => 'kpakpafɩʊ atuja',
+    '🐸' => 'gʊromò',
+    '🐊' => 'ayɩwa',
+    '🐢' => 'abʊŋajakpa',
+    '🦎' => 'ʊwǝgǝu',
+    '🐍' => 'ʊbu',
+    '🐲' => 'nsampǝnnyanawili kaayɛ',
+    '🐉' => 'nsampǝnnyanawili',
+    '🦕' => 'asampǝmbʊrʊ soropooɖɩ',
+    '🦖' => 'gʊyarɩsampǝmbʊrʊ',
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bn.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'চুম্বন: মহিলা, মহিলা, কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
     '👩🏿‍❤‍💋‍👩🏾' => 'চুম্বন: মহিলা, মহিলা, কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
     '👩🏿‍❤‍💋‍👩🏿' => 'চুম্বন: মহিলা, মহিলা, কালো ত্বকের রঙ',
+    '🧑🏻‍🫯‍🧑🏼' => 'কুস্তিগীর: হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '🧑🏻‍🫯‍🧑🏽' => 'কুস্তিগীর: হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '🧑🏻‍🫯‍🧑🏾' => 'কুস্তিগীর: হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '🧑🏻‍🫯‍🧑🏿' => 'কুস্তিগীর: হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '🧑🏼‍🫯‍🧑🏻' => 'কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '🧑🏼‍🫯‍🧑🏽' => 'কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '🧑🏼‍🫯‍🧑🏾' => 'কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '🧑🏼‍🫯‍🧑🏿' => 'কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '🧑🏽‍🫯‍🧑🏻' => 'কুস্তিগীর: মাঝারি ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '🧑🏽‍🫯‍🧑🏼' => 'কুস্তিগীর: মাঝারি ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '🧑🏽‍🫯‍🧑🏾' => 'কুস্তিগীর: মাঝারি ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '🧑🏽‍🫯‍🧑🏿' => 'কুস্তিগীর: মাঝারি ত্বকের রঙ, কালো ত্বকের রঙ',
+    '🧑🏾‍🫯‍🧑🏻' => 'কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '🧑🏾‍🫯‍🧑🏼' => 'কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '🧑🏾‍🫯‍🧑🏽' => 'কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '🧑🏾‍🫯‍🧑🏿' => 'কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, কালো ত্বকের রঙ',
+    '🧑🏿‍🫯‍🧑🏻' => 'কুস্তিগীর: কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '🧑🏿‍🫯‍🧑🏼' => 'কুস্তিগীর: কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '🧑🏿‍🫯‍🧑🏽' => 'কুস্তিগীর: কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '🧑🏿‍🫯‍🧑🏾' => 'কুস্তিগীর: কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
     '🧑🏻‍❤‍🧑🏼' => 'হার্ট সহ দম্পতি: প্রাপ্তবয়স্ক, প্রাপ্তবয়স্ক, হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
     '🧑🏻‍❤‍🧑🏽' => 'হার্ট সহ দম্পতি: প্রাপ্তবয়স্ক, প্রাপ্তবয়স্ক, হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
     '🧑🏻‍❤‍🧑🏾' => 'হার্ট সহ দম্পতি: প্রাপ্তবয়স্ক, প্রাপ্তবয়স্ক, হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'হার্ট সহ দম্পতি: প্রাপ্তবয়স্ক, প্রাপ্তবয়স্ক, কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
     '🧑🏿‍❤‍🧑🏽' => 'হার্ট সহ দম্পতি: প্রাপ্তবয়স্ক, প্রাপ্তবয়স্ক, কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
     '🧑🏿‍❤‍🧑🏾' => 'হার্ট সহ দম্পতি: প্রাপ্তবয়স্ক, প্রাপ্তবয়স্ক, কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '🧑🏻‍🐰‍🧑🏼' => 'ঝোলা কানযুক্ত লোক: হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '🧑🏻‍🐰‍🧑🏽' => 'ঝোলা কানযুক্ত লোক: হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '🧑🏻‍🐰‍🧑🏾' => 'ঝোলা কানযুক্ত লোক: হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '🧑🏻‍🐰‍🧑🏿' => 'ঝোলা কানযুক্ত লোক: হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '🧑🏼‍🐰‍🧑🏻' => 'ঝোলা কানযুক্ত লোক: মাঝারি-হালকা ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '🧑🏼‍🐰‍🧑🏽' => 'ঝোলা কানযুক্ত লোক: মাঝারি-হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '🧑🏼‍🐰‍🧑🏾' => 'ঝোলা কানযুক্ত লোক: মাঝারি-হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '🧑🏼‍🐰‍🧑🏿' => 'ঝোলা কানযুক্ত লোক: মাঝারি-হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '🧑🏽‍🐰‍🧑🏻' => 'ঝোলা কানযুক্ত লোক: মাঝারি ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '🧑🏽‍🐰‍🧑🏼' => 'ঝোলা কানযুক্ত লোক: মাঝারি ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '🧑🏽‍🐰‍🧑🏾' => 'ঝোলা কানযুক্ত লোক: মাঝারি ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '🧑🏽‍🐰‍🧑🏿' => 'ঝোলা কানযুক্ত লোক: মাঝারি ত্বকের রঙ, কালো ত্বকের রঙ',
+    '🧑🏾‍🐰‍🧑🏻' => 'ঝোলা কানযুক্ত লোক: মাঝারি-কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '🧑🏾‍🐰‍🧑🏼' => 'ঝোলা কানযুক্ত লোক: মাঝারি-কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '🧑🏾‍🐰‍🧑🏽' => 'ঝোলা কানযুক্ত লোক: মাঝারি-কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '🧑🏾‍🐰‍🧑🏿' => 'ঝোলা কানযুক্ত লোক: মাঝারি-কালো ত্বকের রঙ, কালো ত্বকের রঙ',
+    '🧑🏿‍🐰‍🧑🏻' => 'ঝোলা কানযুক্ত লোক: কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '🧑🏿‍🐰‍🧑🏼' => 'ঝোলা কানযুক্ত লোক: কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '🧑🏿‍🐰‍🧑🏽' => 'ঝোলা কানযুক্ত লোক: কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '🧑🏿‍🐰‍🧑🏾' => 'ঝোলা কানযুক্ত লোক: কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👨🏻‍🫯‍👨🏼' => 'পুরুষ কুস্তিগীর: হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👨🏻‍🫯‍👨🏽' => 'পুরুষ কুস্তিগীর: হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👨🏻‍🫯‍👨🏾' => 'পুরুষ কুস্তিগীর: হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👨🏻‍🫯‍👨🏿' => 'পুরুষ কুস্তিগীর: হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👨🏼‍🫯‍👨🏻' => 'পুরুষ কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👨🏼‍🫯‍👨🏽' => 'পুরুষ কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👨🏼‍🫯‍👨🏾' => 'পুরুষ কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👨🏼‍🫯‍👨🏿' => 'পুরুষ কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👨🏽‍🫯‍👨🏻' => 'পুরুষ কুস্তিগীর: মাঝারি ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👨🏽‍🫯‍👨🏼' => 'পুরুষ কুস্তিগীর: মাঝারি ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👨🏽‍🫯‍👨🏾' => 'পুরুষ কুস্তিগীর: মাঝারি ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👨🏽‍🫯‍👨🏿' => 'পুরুষ কুস্তিগীর: মাঝারি ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👨🏾‍🫯‍👨🏻' => 'পুরুষ কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👨🏾‍🫯‍👨🏼' => 'পুরুষ কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👨🏾‍🫯‍👨🏽' => 'পুরুষ কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👨🏾‍🫯‍👨🏿' => 'পুরুষ কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👨🏿‍🫯‍👨🏻' => 'পুরুষ কুস্তিগীর: কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👨🏿‍🫯‍👨🏼' => 'পুরুষ কুস্তিগীর: কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👨🏿‍🫯‍👨🏽' => 'পুরুষ কুস্তিগীর: কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👨🏿‍🫯‍👨🏾' => 'পুরুষ কুস্তিগীর: কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
     '👨🏻‍❤‍👨🏻' => 'হার্ট সহ দম্পতি: পুরুষ, পুরুষ, হালকা ত্বকের রঙ',
     '👨🏻‍❤‍👨🏼' => 'হার্ট সহ দম্পতি: পুরুষ, পুরুষ, হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
     '👨🏻‍❤‍👨🏽' => 'হার্ট সহ দম্পতি: পুরুষ, পুরুষ, হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'হার্ট সহ দম্পতি: পুরুষ, পুরুষ, কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
     '👨🏿‍❤‍👨🏾' => 'হার্ট সহ দম্পতি: পুরুষ, পুরুষ, কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
     '👨🏿‍❤‍👨🏿' => 'হার্ট সহ দম্পতি: পুরুষ, পুরুষ, কালো ত্বকের রঙ',
+    '👨🏻‍🐰‍👨🏼' => 'ঝোলা কানযুক্ত পুরুষ: হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👨🏻‍🐰‍👨🏽' => 'ঝোলা কানযুক্ত পুরুষ: হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👨🏻‍🐰‍👨🏾' => 'ঝোলা কানযুক্ত পুরুষ: হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👨🏻‍🐰‍👨🏿' => 'ঝোলা কানযুক্ত পুরুষ: হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👨🏼‍🐰‍👨🏻' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি-হালকা ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👨🏼‍🐰‍👨🏽' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি-হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👨🏼‍🐰‍👨🏾' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি-হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👨🏼‍🐰‍👨🏿' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি-হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👨🏽‍🐰‍👨🏻' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👨🏽‍🐰‍👨🏼' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👨🏽‍🐰‍👨🏾' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👨🏽‍🐰‍👨🏿' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👨🏾‍🐰‍👨🏻' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি-কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👨🏾‍🐰‍👨🏼' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি-কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👨🏾‍🐰‍👨🏽' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি-কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👨🏾‍🐰‍👨🏿' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি-কালো ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👨🏿‍🐰‍👨🏻' => 'ঝোলা কানযুক্ত পুরুষ: কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👨🏿‍🐰‍👨🏼' => 'ঝোলা কানযুক্ত পুরুষ: কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👨🏿‍🐰‍👨🏽' => 'ঝোলা কানযুক্ত পুরুষ: কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👨🏿‍🐰‍👨🏾' => 'ঝোলা কানযুক্ত পুরুষ: কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👩🏻‍🫯‍👩🏼' => 'মহিলা কুস্তিগীর: হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👩🏻‍🫯‍👩🏽' => 'মহিলা কুস্তিগীর: হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👩🏻‍🫯‍👩🏾' => 'মহিলা কুস্তিগীর: হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👩🏻‍🫯‍👩🏿' => 'মহিলা কুস্তিগীর: হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👩🏼‍🫯‍👩🏻' => 'মহিলা কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👩🏼‍🫯‍👩🏽' => 'মহিলা কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👩🏼‍🫯‍👩🏾' => 'মহিলা কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👩🏼‍🫯‍👩🏿' => 'মহিলা কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👩🏽‍🫯‍👩🏻' => 'মহিলা কুস্তিগীর: মাঝারি ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👩🏽‍🫯‍👩🏼' => 'মহিলা কুস্তিগীর: মাঝারি ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👩🏽‍🫯‍👩🏾' => 'মহিলা কুস্তিগীর: মাঝারি ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👩🏽‍🫯‍👩🏿' => 'মহিলা কুস্তিগীর: মাঝারি ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👩🏾‍🫯‍👩🏻' => 'মহিলা কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👩🏾‍🫯‍👩🏼' => 'মহিলা কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👩🏾‍🫯‍👩🏽' => 'মহিলা কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👩🏾‍🫯‍👩🏿' => 'মহিলা কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👩🏿‍🫯‍👩🏻' => 'মহিলা কুস্তিগীর: কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👩🏿‍🫯‍👩🏼' => 'মহিলা কুস্তিগীর: কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👩🏿‍🫯‍👩🏽' => 'মহিলা কুস্তিগীর: কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👩🏿‍🫯‍👩🏾' => 'মহিলা কুস্তিগীর: কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
     '👩🏻‍❤‍👨🏻' => 'হার্ট সহ দম্পতি: মহিলা, পুরুষ, হালকা ত্বকের রঙ',
     '👩🏻‍❤‍👨🏼' => 'হার্ট সহ দম্পতি: মহিলা, পুরুষ, হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
     '👩🏻‍❤‍👨🏽' => 'হার্ট সহ দম্পতি: মহিলা, পুরুষ, হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'হার্ট সহ দম্পতি: মহিলা, মহিলা, কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
     '👩🏿‍❤‍👩🏾' => 'হার্ট সহ দম্পতি: মহিলা, মহিলা, কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
     '👩🏿‍❤‍👩🏿' => 'হার্ট সহ দম্পতি: মহিলা, মহিলা, কালো ত্বকের রঙ',
+    '👩🏻‍🐰‍👩🏼' => 'ঝোলা কানযুক্ত নারি: হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👩🏻‍🐰‍👩🏽' => 'ঝোলা কানযুক্ত নারি: হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👩🏻‍🐰‍👩🏾' => 'ঝোলা কানযুক্ত নারি: হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👩🏻‍🐰‍👩🏿' => 'ঝোলা কানযুক্ত নারি: হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👩🏼‍🐰‍👩🏻' => 'ঝোলা কানযুক্ত নারি: মাঝারি-হালকা ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👩🏼‍🐰‍👩🏽' => 'ঝোলা কানযুক্ত নারি: মাঝারি-হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👩🏼‍🐰‍👩🏾' => 'ঝোলা কানযুক্ত নারি: মাঝারি-হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👩🏼‍🐰‍👩🏿' => 'ঝোলা কানযুক্ত নারি: মাঝারি-হালকা ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👩🏽‍🐰‍👩🏻' => 'ঝোলা কানযুক্ত নারি: মাঝারি ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👩🏽‍🐰‍👩🏼' => 'ঝোলা কানযুক্ত নারি: মাঝারি ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👩🏽‍🐰‍👩🏾' => 'ঝোলা কানযুক্ত নারি: মাঝারি ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
+    '👩🏽‍🐰‍👩🏿' => 'ঝোলা কানযুক্ত নারি: মাঝারি ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👩🏾‍🐰‍👩🏻' => 'ঝোলা কানযুক্ত নারি: মাঝারি-কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👩🏾‍🐰‍👩🏼' => 'ঝোলা কানযুক্ত নারি: মাঝারি-কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👩🏾‍🐰‍👩🏽' => 'ঝোলা কানযুক্ত নারি: মাঝারি-কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👩🏾‍🐰‍👩🏿' => 'ঝোলা কানযুক্ত নারি: মাঝারি-কালো ত্বকের রঙ, কালো ত্বকের রঙ',
+    '👩🏿‍🐰‍👩🏻' => 'ঝোলা কানযুক্ত নারি: কালো ত্বকের রঙ, হালকা ত্বকের রঙ',
+    '👩🏿‍🐰‍👩🏼' => 'ঝোলা কানযুক্ত নারি: কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
+    '👩🏿‍🐰‍👩🏽' => 'ঝোলা কানযুক্ত নারি: কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
+    '👩🏿‍🐰‍👩🏾' => 'ঝোলা কানযুক্ত নারি: কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
     '🧑🏻‍🤝‍🧑🏻' => 'হাত ধরে থাকা লোকেরা: হালকা ত্বকের রঙ',
     '🧑🏻‍🤝‍🧑🏼' => 'হাত ধরে থাকা লোকেরা: হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
     '🧑🏻‍🤝‍🧑🏽' => 'হাত ধরে থাকা লোকেরা: হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'পতাকা: স্কটল্যান্ড',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'পতাকা: ওয়েল্স',
     '🧑‍🧑‍🧒‍🧒' => 'পরিবার: প্রাপ্তবয়স্ক, সাবালক, শিশু, সন্তান',
-    '🚶🏻‍♀‍➡' => 'মেয়েদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏼‍♀‍➡' => 'মেয়েদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏽‍♀‍➡' => 'মেয়েদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏾‍♀‍➡' => 'মেয়েদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏿‍♀‍➡' => 'মেয়েদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏻‍♂‍➡' => 'ছেলেদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏼‍♂‍➡' => 'ছেলেদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏽‍♂‍➡' => 'ছেলেদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏾‍♂‍➡' => 'ছেলেদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏿‍♂‍➡' => 'ছেলেদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🧎🏻‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা ডান দিকে মুখ করে আছে',
-    '🧎🏼‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা ডান দিকে মুখ করে আছে',
-    '🧎🏽‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা ডান দিকে মুখ করে আছে',
-    '🧎🏾‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা ডান দিকে মুখ করে আছে',
-    '🧎🏿‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা ডান দিকে মুখ করে আছে',
-    '🧎🏻‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ ডান দিকে মুখ করে আছে',
-    '🧎🏼‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ ডান দিকে মুখ করে আছে',
-    '🧎🏽‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ ডান দিকে মুখ করে আছে',
-    '🧎🏾‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ ডান দিকে মুখ করে আছে',
-    '🧎🏿‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ ডান দিকে মুখ করে আছে',
-    '🧑🏻‍🦯‍➡' => 'অন্ধের ছড়ি ডান দিকে মুখ করে আছে',
-    '🧑🏼‍🦯‍➡' => 'অন্ধের ছড়ি ডান দিকে মুখ করে আছে',
-    '🧑🏽‍🦯‍➡' => 'অন্ধের ছড়ি ডান দিকে মুখ করে আছে',
-    '🧑🏾‍🦯‍➡' => 'অন্ধের ছড়ি ডান দিকে মুখ করে আছে',
-    '🧑🏿‍🦯‍➡' => 'অন্ধের ছড়ি ডান দিকে মুখ করে আছে',
-    '👨🏻‍🦯‍➡' => 'ছড়ি হাতে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏼‍🦯‍➡' => 'ছড়ি হাতে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏽‍🦯‍➡' => 'ছড়ি হাতে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏾‍🦯‍➡' => 'ছড়ি হাতে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏿‍🦯‍➡' => 'ছড়ি হাতে পুরুষ ডান দিকে মুখ করে আছে',
-    '👩🏻‍🦯‍➡' => 'ছড়ি হাতে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏼‍🦯‍➡' => 'ছড়ি হাতে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏽‍🦯‍➡' => 'ছড়ি হাতে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏾‍🦯‍➡' => 'ছড়ি হাতে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏿‍🦯‍➡' => 'ছড়ি হাতে মহিলা ডান দিকে মুখ করে আছে',
-    '🧑🏻‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার ডান দিকে মুখ করে আছে',
-    '🧑🏼‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার ডান দিকে মুখ করে আছে',
-    '🧑🏽‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার ডান দিকে মুখ করে আছে',
-    '🧑🏾‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার ডান দিকে মুখ করে আছে',
-    '🧑🏿‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার ডান দিকে মুখ করে আছে',
-    '👨🏻‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏼‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏽‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏾‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏿‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👩🏻‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏼‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏽‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏾‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏿‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '🧑🏻‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি ডান দিকে মুখ করে আছে',
-    '🧑🏼‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি ডান দিকে মুখ করে আছে',
-    '🧑🏽‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি ডান দিকে মুখ করে আছে',
-    '🧑🏾‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি ডান দিকে মুখ করে আছে',
-    '🧑🏿‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি ডান দিকে মুখ করে আছে',
-    '👨🏻‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏼‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏽‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏾‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👨🏿‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👩🏻‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏼‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏽‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏾‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '👩🏿‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '🏃🏻‍♀‍➡' => 'মেয়েদের দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏼‍♀‍➡' => 'মেয়েদের দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏽‍♀‍➡' => 'মেয়েদের দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏾‍♀‍➡' => 'মেয়েদের দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏿‍♀‍➡' => 'মেয়েদের দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏻‍♂‍➡' => 'ছেলেদের দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏼‍♂‍➡' => 'ছেলেদের দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏽‍♂‍➡' => 'ছেলেদের দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏾‍♂‍➡' => 'ছেলেদের দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏿‍♂‍➡' => 'ছেলেদের দৌড় ডান দিকে মুখ করে আছে',
+    '🚶🏻‍♀‍➡' => 'মেয়েদের হাঁটা: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏼‍♀‍➡' => 'মেয়েদের হাঁটা: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏽‍♀‍➡' => 'মেয়েদের হাঁটা: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏾‍♀‍➡' => 'মেয়েদের হাঁটা: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏿‍♀‍➡' => 'মেয়েদের হাঁটা: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏻‍♂‍➡' => 'ছেলেদের হাঁটা: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏼‍♂‍➡' => 'ছেলেদের হাঁটা: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏽‍♂‍➡' => 'ছেলেদের হাঁটা: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏾‍♂‍➡' => 'ছেলেদের হাঁটা: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏿‍♂‍➡' => 'ছেলেদের হাঁটা: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏻‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏼‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏽‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏾‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏿‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏻‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏼‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏽‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏾‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏿‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏻‍🦯‍➡' => 'অন্ধের ছড়ি: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏼‍🦯‍➡' => 'অন্ধের ছড়ি: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏽‍🦯‍➡' => 'অন্ধের ছড়ি: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏾‍🦯‍➡' => 'অন্ধের ছড়ি: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏿‍🦯‍➡' => 'অন্ধের ছড়ি: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏻‍🦯‍➡' => 'ছড়ি হাতে পুরুষ: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏼‍🦯‍➡' => 'ছড়ি হাতে পুরুষ: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏽‍🦯‍➡' => 'ছড়ি হাতে পুরুষ: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏾‍🦯‍➡' => 'ছড়ি হাতে পুরুষ: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏿‍🦯‍➡' => 'ছড়ি হাতে পুরুষ: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏻‍🦯‍➡' => 'ছড়ি হাতে মহিলা: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏼‍🦯‍➡' => 'ছড়ি হাতে মহিলা: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏽‍🦯‍➡' => 'ছড়ি হাতে মহিলা: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏾‍🦯‍➡' => 'ছড়ি হাতে মহিলা: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏿‍🦯‍➡' => 'ছড়ি হাতে মহিলা: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏻‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏼‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏽‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏾‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏿‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏻‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏼‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏽‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏾‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏿‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏻‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏼‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏽‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏾‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏿‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏻‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏼‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏽‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏾‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧑🏿‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏻‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏼‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏽‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏾‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👨🏿‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏻‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏼‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏽‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏾‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👩🏿‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏻‍♀‍➡' => 'মেয়েদের দৌড়: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏼‍♀‍➡' => 'মেয়েদের দৌড়: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏽‍♀‍➡' => 'মেয়েদের দৌড়: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏾‍♀‍➡' => 'মেয়েদের দৌড়: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏿‍♀‍➡' => 'মেয়েদের দৌড়: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏻‍♂‍➡' => 'ছেলেদের দৌড়: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏼‍♂‍➡' => 'ছেলেদের দৌড়: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏽‍♂‍➡' => 'ছেলেদের দৌড়: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏾‍♂‍➡' => 'ছেলেদের দৌড়: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏿‍♂‍➡' => 'ছেলেদের দৌড়: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
     '🫱🏻‍🫲🏼' => 'করমর্দন: হালকা ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
     '🫱🏻‍🫲🏽' => 'করমর্দন: হালকা ত্বকের রঙ, মাঝারি ত্বকের রঙ',
     '🫱🏻‍🫲🏾' => 'করমর্দন: হালকা ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'করমর্দন: কালো ত্বকের রঙ, মাঝারি-হালকা ত্বকের রঙ',
     '🫱🏿‍🫲🏽' => 'করমর্দন: কালো ত্বকের রঙ, মাঝারি ত্বকের রঙ',
     '🫱🏿‍🫲🏾' => 'করমর্দন: কালো ত্বকের রঙ, মাঝারি-কালো ত্বকের রঙ',
-    '🚶‍♀‍➡' => 'মেয়েদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶‍♂‍➡' => 'ছেলেদের হাঁটা ডান দিকে মুখ করে আছে',
-    '🧎‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা ডান দিকে মুখ করে আছে',
-    '🧎‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ ডান দিকে মুখ করে আছে',
-    '🧑‍🦯‍➡' => 'অন্ধের ছড়ি ডান দিকে মুখ করে আছে',
-    '👨‍🦯‍➡' => 'ছড়ি হাতে পুরুষ ডান দিকে মুখ করে আছে',
-    '👩‍🦯‍➡' => 'ছড়ি হাতে মহিলা ডান দিকে মুখ করে আছে',
-    '🧑‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার ডান দিকে মুখ করে আছে',
-    '👨‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👩‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '🧑‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি ডান দিকে মুখ করে আছে',
-    '👨‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ ডান দিকে মুখ করে আছে',
-    '👩‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা ডান দিকে মুখ করে আছে',
-    '🏃‍♀‍➡' => 'মেয়েদের দৌড় ডান দিকে মুখ করে আছে',
-    '🏃‍♂‍➡' => 'ছেলেদের দৌড় ডান দিকে মুখ করে আছে',
+    '🚶‍♀‍➡' => 'মেয়েদের হাঁটা: ডান দিকে মুখ করে আছে',
+    '🚶‍♂‍➡' => 'ছেলেদের হাঁটা: ডান দিকে মুখ করে আছে',
+    '🧎‍♀‍➡' => 'হাঁটু গেড়ে বসা মহিলা: ডান দিকে মুখ করে আছে',
+    '🧎‍♂‍➡' => 'হাঁটু গেড়ে বসা পুরুষ: ডান দিকে মুখ করে আছে',
+    '🧑‍🦯‍➡' => 'অন্ধের ছড়ি: ডান দিকে মুখ করে আছে',
+    '👨‍🦯‍➡' => 'ছড়ি হাতে পুরুষ: ডান দিকে মুখ করে আছে',
+    '👩‍🦯‍➡' => 'ছড়ি হাতে মহিলা: ডান দিকে মুখ করে আছে',
+    '🧑‍🦼‍➡' => 'মনিটর করা হুইলচেয়ার: ডান দিকে মুখ করে আছে',
+    '👨‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে পুরুষ: ডান দিকে মুখ করে আছে',
+    '👩‍🦼‍➡' => 'যান্ত্রিক হুইলচেয়ারে মহিলা: ডান দিকে মুখ করে আছে',
+    '🧑‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে বসা ব্যক্তি: ডান দিকে মুখ করে আছে',
+    '👨‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে পুরুষ: ডান দিকে মুখ করে আছে',
+    '👩‍🦽‍➡' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা: ডান দিকে মুখ করে আছে',
+    '🏃‍♀‍➡' => 'মেয়েদের দৌড়: ডান দিকে মুখ করে আছে',
+    '🏃‍♂‍➡' => 'ছেলেদের দৌড়: ডান দিকে মুখ করে আছে',
     '👩‍❤‍👨' => 'হার্ট সহ দম্পতি: মহিলা, পুরুষ',
     '👨‍❤‍👨' => 'হার্ট সহ দম্পতি: পুরুষ, পুরুষ',
     '👩‍❤‍👩' => 'হার্ট সহ দম্পতি: মহিলা, মহিলা',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'প্রাপ্তবয়স্ক: মাঝারি ত্বকের রঙ, নেড়া',
     '🧑🏾‍🦲' => 'প্রাপ্তবয়স্ক: মাঝারি-কালো ত্বকের রঙ, নেড়া',
     '🧑🏿‍🦲' => 'প্রাপ্তবয়স্ক: কালো ত্বকের রঙ, নেড়া',
+    '🧑🏻‍🩰' => 'ব্যালে ড্যান্সার: হালকা ত্বকের রঙ',
+    '🧑🏼‍🩰' => 'ব্যালে ড্যান্সার: মাঝারি-হালকা ত্বকের রঙ',
+    '🧑🏽‍🩰' => 'ব্যালে ড্যান্সার: মাঝারি ত্বকের রঙ',
+    '🧑🏾‍🩰' => 'ব্যালে ড্যান্সার: মাঝারি-কালো ত্বকের রঙ',
+    '🧑🏿‍🩰' => 'ব্যালে ড্যান্সার: কালো ত্বকের রঙ',
     '🧔🏻‍♂' => 'পুরুষ: হালকা ত্বকের রঙ, দাড়ি',
     '🧔🏼‍♂' => 'পুরুষ: মাঝারি-হালকা ত্বকের রঙ, দাড়ি',
     '🧔🏽‍♂' => 'পুরুষ: মাঝারি ত্বকের রঙ, দাড়ি',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'মেয়েদের হাঁটা: মাঝারি ত্বকের রঙ',
     '🚶🏾‍♀' => 'মেয়েদের হাঁটা: মাঝারি-কালো ত্বকের রঙ',
     '🚶🏿‍♀' => 'মেয়েদের হাঁটা: কালো ত্বকের রঙ',
-    '🚶🏻‍➡' => 'হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏼‍➡' => 'হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏽‍➡' => 'হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏾‍➡' => 'হাঁটা ডান দিকে মুখ করে আছে',
-    '🚶🏿‍➡' => 'হাঁটা ডান দিকে মুখ করে আছে',
+    '🚶🏻‍➡' => 'হাঁটা: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏼‍➡' => 'হাঁটা: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏽‍➡' => 'হাঁটা: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏾‍➡' => 'হাঁটা: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🚶🏿‍➡' => 'হাঁটা: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
     '🧍🏻‍♂' => 'দাঁড়িয়ে থাকা পুরুষ: হালকা ত্বকের রঙ',
     '🧍🏼‍♂' => 'দাঁড়িয়ে থাকা পুরুষ: মাঝারি-হালকা ত্বকের রঙ',
     '🧍🏽‍♂' => 'দাঁড়িয়ে থাকা পুরুষ: মাঝারি ত্বকের রঙ',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'হাঁটু গেড়ে বসা মহিলা: মাঝারি ত্বকের রঙ',
     '🧎🏾‍♀' => 'হাঁটু গেড়ে বসা মহিলা: মাঝারি-কালো ত্বকের রঙ',
     '🧎🏿‍♀' => 'হাঁটু গেড়ে বসা মহিলা: কালো ত্বকের রঙ',
-    '🧎🏻‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা ডান দিকে মুখ করে আছে',
-    '🧎🏼‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা ডান দিকে মুখ করে আছে',
-    '🧎🏽‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা ডান দিকে মুখ করে আছে',
-    '🧎🏾‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা ডান দিকে মুখ করে আছে',
-    '🧎🏿‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা ডান দিকে মুখ করে আছে',
+    '🧎🏻‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏼‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏽‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏾‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🧎🏿‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
     '🧑🏻‍🦯' => 'অন্ধের ছড়ি: হালকা ত্বকের রঙ',
     '🧑🏼‍🦯' => 'অন্ধের ছড়ি: মাঝারি-হালকা ত্বকের রঙ',
     '🧑🏽‍🦯' => 'অন্ধের ছড়ি: মাঝারি ত্বকের রঙ',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'মেয়েদের দৌড়: মাঝারি ত্বকের রঙ',
     '🏃🏾‍♀' => 'মেয়েদের দৌড়: মাঝারি-কালো ত্বকের রঙ',
     '🏃🏿‍♀' => 'মেয়েদের দৌড়: কালো ত্বকের রঙ',
-    '🏃🏻‍➡' => 'দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏼‍➡' => 'দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏽‍➡' => 'দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏾‍➡' => 'দৌড় ডান দিকে মুখ করে আছে',
-    '🏃🏿‍➡' => 'দৌড় ডান দিকে মুখ করে আছে',
+    '🏃🏻‍➡' => 'দৌড়: হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏼‍➡' => 'দৌড়: মাঝারি-হালকা ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏽‍➡' => 'দৌড়: মাঝারি ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏾‍➡' => 'দৌড়: মাঝারি-কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '🏃🏿‍➡' => 'দৌড়: কালো ত্বকের রঙ, ডান দিকে মুখ করে আছে',
+    '👯🏻‍♀' => 'ঝোলা কানযুক্ত নারি: হালকা ত্বকের রঙ',
+    '👯🏼‍♀' => 'ঝোলা কানযুক্ত নারি: মাঝারি-হালকা ত্বকের রঙ',
+    '👯🏽‍♀' => 'ঝোলা কানযুক্ত নারি: মাঝারি ত্বকের রঙ',
+    '👯🏾‍♀' => 'ঝোলা কানযুক্ত নারি: মাঝারি-কালো ত্বকের রঙ',
+    '👯🏿‍♀' => 'ঝোলা কানযুক্ত নারি: কালো ত্বকের রঙ',
+    '👯🏻‍♂' => 'ঝোলা কানযুক্ত পুরুষ: হালকা ত্বকের রঙ',
+    '👯🏼‍♂' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি-হালকা ত্বকের রঙ',
+    '👯🏽‍♂' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি ত্বকের রঙ',
+    '👯🏾‍♂' => 'ঝোলা কানযুক্ত পুরুষ: মাঝারি-কালো ত্বকের রঙ',
+    '👯🏿‍♂' => 'ঝোলা কানযুক্ত পুরুষ: কালো ত্বকের রঙ',
     '🧖🏻‍♂' => 'বাষ্পীয় রুমে পুরুষ: হালকা ত্বকের রঙ',
     '🧖🏼‍♂' => 'বাষ্পীয় রুমে পুরুষ: মাঝারি-হালকা ত্বকের রঙ',
     '🧖🏽‍♂' => 'বাষ্পীয় রুমে পুরুষ: মাঝারি ত্বকের রঙ',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'একজন মেয়ে কার্টহুইল করছে: মাঝারি ত্বকের রঙ',
     '🤸🏾‍♀' => 'একজন মেয়ে কার্টহুইল করছে: মাঝারি-কালো ত্বকের রঙ',
     '🤸🏿‍♀' => 'একজন মেয়ে কার্টহুইল করছে: কালো ত্বকের রঙ',
+    '🤼🏻‍♀' => 'মহিলা কুস্তিগীর: হালকা ত্বকের রঙ',
+    '🤼🏼‍♀' => 'মহিলা কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ',
+    '🤼🏽‍♀' => 'মহিলা কুস্তিগীর: মাঝারি ত্বকের রঙ',
+    '🤼🏾‍♀' => 'মহিলা কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ',
+    '🤼🏿‍♀' => 'মহিলা কুস্তিগীর: কালো ত্বকের রঙ',
+    '🤼🏻‍♂' => 'পুরুষ কুস্তিগীর: হালকা ত্বকের রঙ',
+    '🤼🏼‍♂' => 'পুরুষ কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ',
+    '🤼🏽‍♂' => 'পুরুষ কুস্তিগীর: মাঝারি ত্বকের রঙ',
+    '🤼🏾‍♂' => 'পুরুষ কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ',
+    '🤼🏿‍♂' => 'পুরুষ কুস্তিগীর: কালো ত্বকের রঙ',
     '🤽🏻‍♂' => 'ওয়াটার পোলো খেলছে এমন পুরুষ: হালকা ত্বকের রঙ',
     '🤽🏼‍♂' => 'ওয়াটার পোলো খেলছে এমন পুরুষ: মাঝারি-হালকা ত্বকের রঙ',
     '🤽🏽‍♂' => 'ওয়াটার পোলো খেলছে এমন পুরুষ: মাঝারি ত্বকের রঙ',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'মহিলা: কোঁকড়া চুল',
     '👩‍🦳' => 'মহিলা: সাদা চুল',
     '👩‍🦲' => 'মহিলা: নেড়া',
-    '🚶‍➡' => 'হাঁটা ডান দিকে মুখ করে আছে',
-    '🧎‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা ডান দিকে মুখ করে আছে',
-    '🏃‍➡' => 'দৌড় ডান দিকে মুখ করে আছে',
+    '🚶‍➡' => 'হাঁটা: ডান দিকে মুখ করে আছে',
+    '🧎‍➡' => 'হাঁটু গেড়ে বসে থাকা মহিলা: ডান দিকে মুখ করে আছে',
+    '🏃‍➡' => 'দৌড়: ডান দিকে মুখ করে আছে',
     '👨‍👦' => 'পরিবার: পুরুষ, ছেলে',
     '👨‍👧' => 'পরিবার: পুরুষ, মেয়ে',
     '👩‍👦' => 'পরিবার: মহিলা, ছেলে',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ম্যানুয়াল হুইলচেয়ারে মহিলা',
     '🏃‍♂' => 'ছেলেদের দৌড়',
     '🏃‍♀' => 'মেয়েদের দৌড়',
+    '🧑‍🩰' => 'ব্যালে ড্যান্সার',
     '👯‍♂' => 'ঝোলা কানযুক্ত পুরুষ',
     '👯‍♀' => 'ঝোলা কানযুক্ত নারি',
     '🧖‍♂' => 'বাষ্পীয় রুমে পুরুষ',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'ব্যবসার স্যুট পরিহিত ভাসমান মানুষ: মাঝারি ত্বকের রঙ',
     '🕴🏾' => 'ব্যবসার স্যুট পরিহিত ভাসমান মানুষ: মাঝারি-কালো ত্বকের রঙ',
     '🕴🏿' => 'ব্যবসার স্যুট পরিহিত ভাসমান মানুষ: কালো ত্বকের রঙ',
+    '👯🏻' => 'ঝোলা কানযুক্ত লোক: হালকা ত্বকের রঙ',
+    '👯🏼' => 'ঝোলা কানযুক্ত লোক: মাঝারি-হালকা ত্বকের রঙ',
+    '👯🏽' => 'ঝোলা কানযুক্ত লোক: মাঝারি ত্বকের রঙ',
+    '👯🏾' => 'ঝোলা কানযুক্ত লোক: মাঝারি-কালো ত্বকের রঙ',
+    '👯🏿' => 'ঝোলা কানযুক্ত লোক: কালো ত্বকের রঙ',
     '🧖🏻' => 'বাষ্পীয় রুমে একজন: হালকা ত্বকের রঙ',
     '🧖🏼' => 'বাষ্পীয় রুমে একজন: মাঝারি-হালকা ত্বকের রঙ',
     '🧖🏽' => 'বাষ্পীয় রুমে একজন: মাঝারি ত্বকের রঙ',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'কার্টহুইল: মাঝারি ত্বকের রঙ',
     '🤸🏾' => 'কার্টহুইল: মাঝারি-কালো ত্বকের রঙ',
     '🤸🏿' => 'কার্টহুইল: কালো ত্বকের রঙ',
+    '🤼🏻' => 'কুস্তিগীর: হালকা ত্বকের রঙ',
+    '🤼🏼' => 'কুস্তিগীর: মাঝারি-হালকা ত্বকের রঙ',
+    '🤼🏽' => 'কুস্তিগীর: মাঝারি ত্বকের রঙ',
+    '🤼🏾' => 'কুস্তিগীর: মাঝারি-কালো ত্বকের রঙ',
+    '🤼🏿' => 'কুস্তিগীর: কালো ত্বকের রঙ',
     '🤽🏻' => 'ওয়াটার পোলো: হালকা ত্বকের রঙ',
     '🤽🏼' => 'ওয়াটার পোলো: মাঝারি-হালকা ত্বকের রঙ',
     '🤽🏽' => 'ওয়াটার পোলো: মাঝারি ত্বকের রঙ',
@@ -2167,7 +2323,7 @@
     '🇨🇦' => 'পতাকা: কানাডা',
     '🇨🇨' => 'পতাকা: কোকোস (কিলিং) দ্বীপপুঞ্জ',
     '🇨🇩' => 'পতাকা: কঙ্গো-কিনশাসা',
-    '🇨🇫' => 'পতাকা: মধ্য আফ্রিকার প্রজাতন্ত্র',
+    '🇨🇫' => 'পতাকা: মধ্য আফ্রিকান প্রজাতন্ত্র',
     '🇨🇬' => 'পতাকা: কঙ্গো - ব্রাজাভিল',
     '🇨🇭' => 'পতাকা: সুইজারল্যান্ড',
     '🇨🇮' => 'পতাকা: কোট ডি‘আইভোর',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'পতাকা: চীন',
     '🇨🇴' => 'পতাকা: কলম্বিয়া',
     '🇨🇵' => 'পতাকা: ক্লিপারটন দ্বীপপুঞ্জ',
+    '🇨🇶' => 'পতাকা: সার্ক দ্বীপ',
     '🇨🇷' => 'পতাকা: কোস্টারিকা',
     '🇨🇺' => 'পতাকা: কিউবা',
     '🇨🇻' => 'পতাকা: কেপ ভার্দে',
@@ -2268,7 +2425,7 @@
     '🇱🇺' => 'পতাকা: লাক্সেমবার্গ',
     '🇱🇻' => 'পতাকা: লাটভিয়া',
     '🇱🇾' => 'পতাকা: লিবিয়া',
-    '🇲🇦' => 'পতাকা: মোরক্কো',
+    '🇲🇦' => 'পতাকা: মরক্কো',
     '🇲🇨' => 'পতাকা: মোনাকো',
     '🇲🇩' => 'পতাকা: মলডোভা',
     '🇲🇪' => 'পতাকা: মন্টিনিগ্রো',
@@ -2358,7 +2515,7 @@
     '🇹🇳' => 'পতাকা: তিউনিসিয়া',
     '🇹🇴' => 'পতাকা: টোঙ্গা',
     '🇹🇷' => 'পতাকা: তুরস্ক',
-    '🇹🇹' => 'পতাকা: ত্রিনিনাদ ও টোব্যাগো',
+    '🇹🇹' => 'পতাকা: ত্রিনিদাদ ও টোবাগো',
     '🇹🇻' => 'পতাকা: টুভালু',
     '🇹🇼' => 'পতাকা: তাইওয়ান',
     '🇹🇿' => 'পতাকা: তাঞ্জানিয়া',
@@ -2390,13 +2547,6 @@
     '🏽' => 'মাঝারি ত্বকের রঙ',
     '🏾' => 'মাঝারি-কালো ত্বকের রঙ',
     '🏿' => 'কালো ত্বকের রঙ',
-    '🪉' => 'হার্প (বীণা)',
-    '🪏' => 'বেলচা',
-    '🪾' => 'পাতাহীন গাছ',
-    '🫆' => 'ফিঙ্গারপ্রিন্ট',
-    '🫜' => 'মূলজ সব্জি',
-    '🫟' => 'ছপাত',
-    '🫩' => 'ক্লান্তি',
     '😀' => 'মুখে দেঁতো হাসি',
     '😃' => 'বড় বড় চোখ করে হাসি মুখ',
     '😄' => 'খোলা মুখে চোখে হাসির সাথে মুখে হাসি',
@@ -2450,6 +2600,7 @@
     '😪' => 'ঘুম ঘুম ভাব',
     '🤤' => 'লোভী মুখ',
     '😴' => 'ঘুমন্ত মুখ',
+    '🫩' => 'ক্লান্তি',
     '😷' => 'মুখের মধ্যে মেডিক্যাল মাস্ক',
     '🤒' => 'মুখের মধ্যে থার্মোমিটার',
     '🤕' => 'মাথায় ব্যান্ডেজ করা মুখ',
@@ -2476,6 +2627,7 @@
     '😯' => 'নিস্তব্ধ মুখ',
     '😲' => 'অবাক হয়ে যাওয়া মুখ',
     '😳' => 'রক্তিম মুখ',
+    '🫪' => 'অবাক',
     '🥺' => 'অনুনয়কারী মুখ',
     '🥹' => 'কান্না চেপে রাখা মুখ',
     '😦' => 'খোলা মুখের সাথে ভ্রুকুটি মুখমণ্ডল',
@@ -2547,6 +2699,7 @@
     '💋' => 'চুম্বনের চিহ্ন',
     '💯' => 'একশো পয়েন্ট',
     '💢' => 'ক্রোধের প্রতীক',
+    '🫯' => 'মারামারি',
     '💥' => 'সংঘর্ষ',
     '💫' => 'হতবুদ্ধি',
     '💦' => 'ঘামের ফোঁটা',
@@ -2670,6 +2823,7 @@
     '🧞' => 'জীনি',
     '🧟' => 'জম্বি',
     '🧌' => 'অতিমানবিক জীব',
+    '🫈' => 'লোমশ দ্বিপদ',
     '💆' => 'ফেস ম্যাসেজ',
     '💇' => 'চুল কাটা',
     '🚶' => 'হাঁটা',
@@ -2713,6 +2867,7 @@
     '🫂' => 'আলিঙ্গন',
     '👪' => 'পরিবার',
     '👣' => 'পায়ের ছাপ',
+    '🫆' => 'ফিঙ্গারপ্রিন্ট',
     '🦰' => 'লাল চুল',
     '🦱' => 'কোঁকড়া চুল',
     '🦳' => 'সাদা চুল',
@@ -2812,6 +2967,7 @@
     '🐳' => 'উৎসারিত তিমি',
     '🐋' => 'তিমি',
     '🐬' => 'ডলফিন',
+    '🫍' => 'অর্কা',
     '🦭' => 'সিল',
     '🐟' => 'মাছ',
     '🐠' => 'ট্রপিক্যাল মাছ',
@@ -2821,6 +2977,11 @@
     '🐚' => 'ঝিনুকের খোলস',
     '🪸' => 'প্রবাল',
     '🪼' => 'জেলিফিশ',
+    '🦀' => 'কাঁকড়া',
+    '🦞' => 'গলদা চিংড়ি',
+    '🦐' => 'চিংড়ি',
+    '🦑' => 'স্কুইড',
+    '🦪' => 'ওয়েস্টার',
     '🐌' => 'শামুক',
     '🦋' => 'প্রজাপতি',
     '🐛' => 'ক্ষুদ্র কীট',
@@ -2865,6 +3026,7 @@
     '🪹' => 'শূন্য পাখির বাসা',
     '🪺' => 'পাখির ডিম সহ পাখির বাসা',
     '🍄' => 'মাশরুম',
+    '🪾' => 'পাতাহীন গাছ',
     '🍇' => 'আঙুর',
     '🍈' => 'ফুটি',
     '🍉' => 'তরমুজ',
@@ -2901,6 +3063,7 @@
     '🌰' => 'একপ্রকারের বাদাম',
     '🫚' => 'আদা মূল',
     '🫛' => 'মটর শুঁটি',
+    '🫜' => 'মূলজ সব্জি',
     '🍞' => 'পাউরুটি',
     '🥐' => 'ক্রোসিয়ান্ট',
     '🥖' => 'ব্যাগ্যাট',
@@ -2952,11 +3115,6 @@
     '🥟' => 'মোমো',
     '🥠' => 'ফরচুন কুকি',
     '🥡' => 'খাবার নিয়ে যাওয়ার বক্স',
-    '🦀' => 'কাঁকড়া',
-    '🦞' => 'গলদা চিংড়ি',
-    '🦐' => 'চিংড়ি',
-    '🦑' => 'স্কুইড',
-    '🦪' => 'ওয়েস্টার',
     '🍦' => 'সফ্ট আইস ক্রিম',
     '🍧' => 'শেভড আইস',
     '🍨' => 'আইস ক্রিম',
@@ -3007,6 +3165,7 @@
     '🧭' => 'কম্পাস',
     '🏔' => 'তুষারাবৃত পর্বত',
     '⛰' => 'পর্বত',
+    '🛘' => 'ধস',
     '🌋' => 'আগ্নেয়গিরি',
     '🗻' => 'মাউন্ট ফুজি',
     '🏕' => 'তাবু খাঁটানো',
@@ -3367,16 +3526,18 @@
     '🎧' => 'হেডফোন',
     '📻' => 'রেডিও',
     '🎷' => 'স্যাক্সোফোন',
+    '🎺' => 'ভেঁপু',
+    '🪊' => 'ট্রম্বন',
     '🪗' => 'একর্ডিয়ন',
     '🎸' => 'গিটার',
     '🎹' => 'মিউজিক্যাল কীবোর্ড',
-    '🎺' => 'ভেঁপু',
     '🎻' => 'বেহালা',
     '🪕' => 'ব্যাঞ্জো',
     '🥁' => 'ড্রাম',
     '🪘' => 'লং ড্রাম',
     '🪇' => 'মারাকাস',
     '🪈' => 'বাঁশি',
+    '🪉' => 'হার্প (বীণা)',
     '📱' => 'মোবাইল ফোন',
     '📲' => 'তীর সহ মোবাইল ফোন',
     '☎' => 'টেলিফোন',
@@ -3430,8 +3591,9 @@
     '📑' => 'বুকমমার্ক ট্যাব',
     '🔖' => 'বুকমার্ক',
     '🏷' => 'লেবেল',
-    '💰' => 'টাকার ব্যাগ',
     '🪙' => 'কয়েন',
+    '💰' => 'টাকার ব্যাগ',
+    '🪎' => 'গুপ্তধন',
     '💴' => 'ইয়েন ব্যাঙ্কনোট',
     '💵' => 'ডলার ব্যাঙ্কনোট',
     '💶' => 'ইউরো ব্যাঙ্কনোট',
@@ -3514,6 +3676,7 @@
     '🧰' => 'টুলবক্স',
     '🧲' => 'চুম্বক',
     '🪜' => 'মই',
+    '🪏' => 'বেলচা',
     '⚗' => 'অ্যালেমবিক',
     '🧪' => 'টেস্ট টিউব',
     '🧫' => 'পেট্রি ডিশ',
@@ -3697,6 +3860,7 @@
     '✴' => 'আটটি পয়েন্টের তারা',
     '❇' => 'জ্বলজ্বল করা',
     '™' => 'ট্রেড মার্ক',
+    '🫟' => 'ছপাত',
     '🔠' => 'ইনপুট লাতিন বড় হাতের অক্ষর',
     '🔡' => 'ইনপুট লাতিন ছোট হাতের অক্ষর',
     '🔢' => 'ইনপুট নম্বর',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-br.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-br.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-br.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-br.php	2026-05-20 10:56:49.000000000 +0200
@@ -178,9 +178,9 @@
     '🧛🏿' => 'suner/ez-gwad : krocʼhen teñval',
     '🇦🇨' => 'banniel : Enez Ascension',
     '🇦🇩' => 'banniel : Andorra',
-    '🇦🇪' => 'banniel : Emirelezhioù Arab Unanet',
+    '🇦🇪' => 'banniel : Emirelezhioù-Arab-Unanet',
     '🇦🇫' => 'banniel : Afghanistan',
-    '🇦🇬' => 'banniel : Antigua ha Barbuda',
+    '🇦🇬' => 'banniel : Antigua-ha-Barbuda',
     '🇦🇮' => 'banniel : Anguilla',
     '🇦🇱' => 'banniel : Albania',
     '🇦🇲' => 'banniel : Armenia',
@@ -193,7 +193,7 @@
     '🇦🇼' => 'banniel : Aruba',
     '🇦🇽' => 'banniel : Inizi Åland',
     '🇦🇿' => 'banniel : Azerbaidjan',
-    '🇧🇦' => 'banniel : Bosnia ha Herzegovina',
+    '🇧🇦' => 'banniel : Bosnia-ha-Herzegovina',
     '🇧🇧' => 'banniel : Barbados',
     '🇧🇩' => 'banniel : Bangladesh',
     '🇧🇪' => 'banniel : Belgia',
@@ -202,8 +202,8 @@
     '🇧🇭' => 'banniel : Bahrein',
     '🇧🇮' => 'banniel : Burundi',
     '🇧🇯' => 'banniel : Benin',
-    '🇧🇱' => 'banniel : Saint Barthélemy',
-    '🇧🇲' => 'banniel : Bermuda',
+    '🇧🇱' => 'banniel : Sant-Bertele',
+    '🇧🇲' => 'banniel : Bermudez',
     '🇧🇳' => 'banniel : Brunei',
     '🇧🇴' => 'banniel : Bolivia',
     '🇧🇶' => 'banniel : Karib Nederlandat',
@@ -220,13 +220,14 @@
     '🇨🇫' => 'banniel : Republik Kreizafrikan',
     '🇨🇬' => 'banniel : Kongo - Brazzaville',
     '🇨🇭' => 'banniel : Suis',
-    '🇨🇮' => 'banniel : Aod an Olifant',
+    '🇨🇮' => 'banniel : Aod-an-Olifant',
     '🇨🇰' => 'banniel : Inizi Cook',
     '🇨🇱' => 'banniel : Chile',
     '🇨🇲' => 'banniel : Kameroun',
     '🇨🇳' => 'banniel : Sina',
     '🇨🇴' => 'banniel : Kolombia',
     '🇨🇵' => 'banniel : Enez Clipperton',
+    '🇨🇶' => 'banniel : Sark',
     '🇨🇷' => 'banniel : Costa Rica',
     '🇨🇺' => 'banniel : Kuba',
     '🇨🇻' => 'banniel : Kab-Glas',
@@ -268,7 +269,7 @@
     '🇬🇲' => 'banniel : Gambia',
     '🇬🇳' => 'banniel : Ginea',
     '🇬🇵' => 'banniel : Gwadeloup',
-    '🇬🇶' => 'banniel : Ginea ar Cʼheheder',
+    '🇬🇶' => 'banniel : Ginea-ar-Cʼheheder',
     '🇬🇷' => 'banniel : Gres',
     '🇬🇸' => 'banniel : Inizi Georgia ar Su hag Inizi Sandwich ar Su',
     '🇬🇹' => 'banniel : Guatemala',
@@ -276,7 +277,7 @@
     '🇬🇼' => 'banniel : Ginea-Bissau',
     '🇬🇾' => 'banniel : Guyana',
     '🇭🇰' => 'banniel : Hong Kong RMD Sina',
-    '🇭🇲' => 'banniel : Inizi Heard ha McDonald',
+    '🇭🇲' => 'banniel : Inizi Heard-ha-McDonald',
     '🇭🇳' => 'banniel : Honduras',
     '🇭🇷' => 'banniel : Kroatia',
     '🇭🇹' => 'banniel : Haiti',
@@ -285,7 +286,7 @@
     '🇮🇩' => 'banniel : Indonezia',
     '🇮🇪' => 'banniel : Iwerzhon',
     '🇮🇱' => 'banniel : Israel',
-    '🇮🇲' => 'banniel : Enez Vanav',
+    '🇮🇲' => 'banniel : Enez-Vanav',
     '🇮🇳' => 'banniel : India',
     '🇮🇴' => 'banniel : Tiriad breizhveurat Meurvor Indez',
     '🇮🇶' => 'banniel : Iraq',
@@ -301,9 +302,9 @@
     '🇰🇭' => 'banniel : Kambodja',
     '🇰🇮' => 'banniel : Kiribati',
     '🇰🇲' => 'banniel : Komorez',
-    '🇰🇳' => 'banniel : Saint Kitts ha Nevis',
-    '🇰🇵' => 'banniel : Korea an Norzh',
-    '🇰🇷' => 'banniel : Korea ar Su',
+    '🇰🇳' => 'banniel : Saint Kitts-ha-Nevis',
+    '🇰🇵' => 'banniel : Norzhkorea',
+    '🇰🇷' => 'banniel : Sukorea',
     '🇰🇼' => 'banniel : Koweit',
     '🇰🇾' => 'banniel : Inizi Cayman',
     '🇰🇿' => 'banniel : Kazakstan',
@@ -322,14 +323,14 @@
     '🇲🇨' => 'banniel : Monaco',
     '🇲🇩' => 'banniel : Moldova',
     '🇲🇪' => 'banniel : Montenegro',
-    '🇲🇫' => 'banniel : Saint Martin',
+    '🇲🇫' => 'banniel : Sant-Martin',
     '🇲🇬' => 'banniel : Madagaskar',
     '🇲🇭' => 'banniel : Inizi Marshall',
     '🇲🇰' => 'banniel : Makedonia an Norzh',
     '🇲🇱' => 'banniel : Mali',
     '🇲🇲' => 'banniel : Myanmar (Birmania)',
     '🇲🇳' => 'banniel : Mongolia',
-    '🇲🇴' => 'banniel : Macau RMD Sina',
+    '🇲🇴' => 'banniel : Makao RMD Sina',
     '🇲🇵' => 'banniel : Inizi Mariana an Norzh',
     '🇲🇶' => 'banniel : Martinik',
     '🇲🇷' => 'banniel : Maouritania',
@@ -342,7 +343,7 @@
     '🇲🇾' => 'banniel : Malaysia',
     '🇲🇿' => 'banniel : Mozambik',
     '🇳🇦' => 'banniel : Namibia',
-    '🇳🇨' => 'banniel : Kaledonia Nevez',
+    '🇳🇨' => 'banniel : Kaledonia-Nevez',
     '🇳🇪' => 'banniel : Niger',
     '🇳🇫' => 'banniel : Enez Norfolk',
     '🇳🇬' => 'banniel : Nigeria',
@@ -379,7 +380,7 @@
     '🇸🇨' => 'banniel : Sechelez',
     '🇸🇩' => 'banniel : Soudan',
     '🇸🇪' => 'banniel : Sveden',
-    '🇸🇬' => 'banniel : Singapour',
+    '🇸🇬' => 'banniel : Singapoura',
     '🇸🇭' => 'banniel : Saint-Helena',
     '🇸🇮' => 'banniel : Slovenia',
     '🇸🇯' => 'banniel : Svalbard',
@@ -389,14 +390,14 @@
     '🇸🇳' => 'banniel : Senegal',
     '🇸🇴' => 'banniel : Somalia',
     '🇸🇷' => 'banniel : Surinam',
-    '🇸🇸' => 'banniel : Susoudan',
-    '🇸🇹' => 'banniel : São Tomé ha Príncipe',
+    '🇸🇸' => 'banniel : Soudan ar Su',
+    '🇸🇹' => 'banniel : São-Tomé-ha-Príncipe',
     '🇸🇻' => 'banniel : Salvador',
     '🇸🇽' => 'banniel : Sint Maarten',
     '🇸🇾' => 'banniel : Siria',
     '🇸🇿' => 'banniel : Eswatini',
     '🇹🇦' => 'banniel : Tristan da Cunha',
-    '🇹🇨' => 'banniel : Inizi Turks ha Caicos',
+    '🇹🇨' => 'banniel : Inizi Turks-ha-Caicos',
     '🇹🇩' => 'banniel : Tchad',
     '🇹🇫' => 'banniel : Douaroù aostral Frañs',
     '🇹🇬' => 'banniel : Togo',
@@ -408,7 +409,7 @@
     '🇹🇳' => 'banniel : Tunizia',
     '🇹🇴' => 'banniel : Tonga',
     '🇹🇷' => 'banniel : Turkia',
-    '🇹🇹' => 'banniel : Trinidad ha Tobago',
+    '🇹🇹' => 'banniel : Trinidad-ha-Tobago',
     '🇹🇻' => 'banniel : Tuvalu',
     '🇹🇼' => 'banniel : Taiwan',
     '🇹🇿' => 'banniel : Tanzania',
@@ -420,13 +421,13 @@
     '🇺🇾' => 'banniel : Uruguay',
     '🇺🇿' => 'banniel : Ouzbekistan',
     '🇻🇦' => 'banniel : Vatikan',
-    '🇻🇨' => 'banniel : Sant Visant hag ar Grenadinez',
+    '🇻🇨' => 'banniel : Sant-Visant hag ar Grenadinez',
     '🇻🇪' => 'banniel : Venezuela',
     '🇻🇬' => 'banniel : Inizi Gwercʼh Breizh-Veur',
     '🇻🇮' => 'banniel : Inizi Gwercʼh ar Stadoù-Unanet',
     '🇻🇳' => 'banniel : Viêt Nam',
     '🇻🇺' => 'banniel : Vanuatu',
-    '🇼🇫' => 'banniel : Wallis ha Futuna',
+    '🇼🇫' => 'banniel : Wallis-ha-Futuna',
     '🇼🇸' => 'banniel : Samoa',
     '🇽🇰' => 'banniel : Kosovo',
     '🇾🇪' => 'banniel : Yemen',
@@ -458,17 +459,17 @@
     '💯' => 'kant poent',
     '💥' => 'tarzhadenn',
     '🕳' => 'toull',
-    '💤' => 'zzz',
+    '💤' => 'ZZZ',
     '🤳' => 'emboltred',
     '💪' => 'kigenn daoubennek argrezet',
-    '🦾' => 'brecʼh mekanikel',
-    '🦿' => 'gar mekanikel',
+    '🦾' => 'brecʼh vekanikel',
+    '🦿' => 'gar vekanikel',
     '🦵' => 'gar',
     '🦶' => 'troad',
     '👂' => 'skouarn',
     '👃' => 'fri',
     '🧠' => 'empenn',
-    '🫀' => 'kalon',
+    '🫀' => 'kalon korfadurel',
     '🫁' => 'skevent',
     '🦷' => 'dant',
     '🦴' => 'askorn',
@@ -543,7 +544,7 @@
     '🦙' => 'lama',
     '🦒' => 'jirafenn',
     '🐘' => 'olifant',
-    '🦣' => 'mamout',
+    '🦣' => 'mammout',
     '🦏' => 'frikorneg',
     '🦛' => 'dourvarc’h',
     '🐭' => 'penn logodenn',
@@ -556,7 +557,7 @@
     '🦫' => 'avank',
     '🦔' => 'heureuchin',
     '🦇' => 'logodenn-zall',
-    '🐻' => 'penn arzh',
+    '🐻' => 'arzh',
     '🐨' => 'koala',
     '🐼' => 'panda',
     '🦥' => 'lezireg',
@@ -592,6 +593,7 @@
     '🦖' => 'tiranosaor roue',
     '🐋' => 'balum',
     '🐬' => 'delfin',
+    '🫍' => 'skoazog',
     '🦭' => 'reunig',
     '🐟' => 'pesk',
     '🐠' => 'pesk trovanel',
@@ -599,6 +601,11 @@
     '🦈' => 'rinkin',
     '🐙' => 'morgazh',
     '🐚' => 'krogenn droellennek',
+    '🦀' => 'krank',
+    '🦞' => 'legestr',
+    '🦐' => 'chevr',
+    '🦑' => 'stivell',
+    '🦪' => 'istr',
     '🐌' => 'maligorn',
     '🦋' => 'balafenn',
     '🐛' => 'biskoulenn',
@@ -721,11 +728,6 @@
     '🥮' => 'gwastell-loar',
     '🍡' => 'beriad madigoù',
     '🥟' => 'pouloud',
-    '🦀' => 'krank',
-    '🦞' => 'legestr',
-    '🦐' => 'chevr',
-    '🦑' => 'stivell',
-    '🦪' => 'istr',
     '🍦' => 'dienn-skorn mod Italia',
     '🍧' => 'greunitad',
     '🍨' => 'dienn-skorn',
@@ -771,6 +773,7 @@
     '🧭' => 'nadoz-vor',
     '🏔' => 'menez ercʼhek',
     '⛰' => 'menez',
+    '🛘' => 'riskladur douar',
     '🌋' => 'menez-tan',
     '🗻' => 'menez Fuji',
     '🏕' => 'kampiñ',
@@ -1091,10 +1094,11 @@
     '🎧' => 'selaouelloù',
     '📻' => 'skingomzer',
     '🎷' => 'saksofon',
+    '🎺' => 'trompilh',
+    '🪊' => 'trombon',
     '🪗' => 'akordeoñs',
     '🎸' => 'gitar',
     '🎹' => 'klavier sonerezh',
-    '🎺' => 'trompilh',
     '🎻' => 'violoñs',
     '🪕' => 'banjo',
     '🥁' => 'taboulin',
@@ -1150,8 +1154,8 @@
     '📑' => 'sinedoù',
     '🔖' => 'merk-pajenn',
     '🏷' => 'tikedenn',
-    '💰' => 'sacʼhad moneiz',
     '🪙' => 'pezh moneiz',
+    '💰' => 'sacʼhad moneiz',
     '💴' => 'bilhed e yenoù',
     '💵' => 'bilhed e dollaroù',
     '💶' => 'bilhed en euroioù',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-bs.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'poljubac: žena, žena, tamna boja kože i umjerena boja kože',
     '👩🏿‍❤‍💋‍👩🏾' => 'poljubac: žena, žena, tamna boja kože i umjereno tamna boja kože',
     '👩🏿‍❤‍💋‍👩🏿' => 'poljubac: žena, žena i tamna boja kože',
+    '🧑🏻‍🫯‍🧑🏼' => 'hrvanje: svijetla boja kože i umjereno svijetla boja kože',
+    '🧑🏻‍🫯‍🧑🏽' => 'hrvanje: svijetla boja kože i umjerena boja kože',
+    '🧑🏻‍🫯‍🧑🏾' => 'hrvanje: svijetla boja kože i umjereno tamna boja kože',
+    '🧑🏻‍🫯‍🧑🏿' => 'hrvanje: svijetla boja kože i tamna boja kože',
+    '🧑🏼‍🫯‍🧑🏻' => 'hrvanje: umjereno svijetla boja kože i svijetla boja kože',
+    '🧑🏼‍🫯‍🧑🏽' => 'hrvanje: umjereno svijetla boja kože i umjerena boja kože',
+    '🧑🏼‍🫯‍🧑🏾' => 'hrvanje: umjereno svijetla boja kože i umjereno tamna boja kože',
+    '🧑🏼‍🫯‍🧑🏿' => 'hrvanje: umjereno svijetla boja kože i tamna boja kože',
+    '🧑🏽‍🫯‍🧑🏻' => 'hrvanje: umjerena boja kože i svijetla boja kože',
+    '🧑🏽‍🫯‍🧑🏼' => 'hrvanje: umjerena boja kože i umjereno svijetla boja kože',
+    '🧑🏽‍🫯‍🧑🏾' => 'hrvanje: umjerena boja kože i umjereno tamna boja kože',
+    '🧑🏽‍🫯‍🧑🏿' => 'hrvanje: umjerena boja kože i tamna boja kože',
+    '🧑🏾‍🫯‍🧑🏻' => 'hrvanje: umjereno tamna boja kože i svijetla boja kože',
+    '🧑🏾‍🫯‍🧑🏼' => 'hrvanje: umjereno tamna boja kože i umjereno svijetla boja kože',
+    '🧑🏾‍🫯‍🧑🏽' => 'hrvanje: umjereno tamna boja kože i umjerena boja kože',
+    '🧑🏾‍🫯‍🧑🏿' => 'hrvanje: umjereno tamna boja kože i tamna boja kože',
+    '🧑🏿‍🫯‍🧑🏻' => 'hrvanje: tamna boja kože i svijetla boja kože',
+    '🧑🏿‍🫯‍🧑🏼' => 'hrvanje: tamna boja kože i umjereno svijetla boja kože',
+    '🧑🏿‍🫯‍🧑🏽' => 'hrvanje: tamna boja kože i umjerena boja kože',
+    '🧑🏿‍🫯‍🧑🏾' => 'hrvanje: tamna boja kože i umjereno tamna boja kože',
     '🧑🏻‍❤‍🧑🏼' => 'par i srce: osoba, osoba, svijetla boja kože i umjereno svijetla boja kože',
     '🧑🏻‍❤‍🧑🏽' => 'par i srce: osoba, osoba, svijetla boja kože i umjerena boja kože',
     '🧑🏻‍❤‍🧑🏾' => 'par i srce: osoba, osoba, svijetla boja kože i umjereno tamna boja kože',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par i srce: osoba, osoba, tamna boja kože i umjereno svijetla boja kože',
     '🧑🏿‍❤‍🧑🏽' => 'par i srce: osoba, osoba, tamna boja kože i umjerena boja kože',
     '🧑🏿‍❤‍🧑🏾' => 'par i srce: osoba, osoba, tamna boja kože i umjereno tamna boja kože',
+    '🧑🏻‍🐰‍🧑🏼' => 'osobe u provodu: svijetla boja kože i umjereno svijetla boja kože',
+    '🧑🏻‍🐰‍🧑🏽' => 'osobe u provodu: svijetla boja kože i umjerena boja kože',
+    '🧑🏻‍🐰‍🧑🏾' => 'osobe u provodu: svijetla boja kože i umjereno tamna boja kože',
+    '🧑🏻‍🐰‍🧑🏿' => 'osobe u provodu: svijetla boja kože i tamna boja kože',
+    '🧑🏼‍🐰‍🧑🏻' => 'osobe u provodu: umjereno svijetla boja kože i svijetla boja kože',
+    '🧑🏼‍🐰‍🧑🏽' => 'osobe u provodu: umjereno svijetla boja kože i umjerena boja kože',
+    '🧑🏼‍🐰‍🧑🏾' => 'osobe u provodu: umjereno svijetla boja kože i umjereno tamna boja kože',
+    '🧑🏼‍🐰‍🧑🏿' => 'osobe u provodu: umjereno svijetla boja kože i tamna boja kože',
+    '🧑🏽‍🐰‍🧑🏻' => 'osobe u provodu: umjerena boja kože i svijetla boja kože',
+    '🧑🏽‍🐰‍🧑🏼' => 'osobe u provodu: umjerena boja kože i umjereno svijetla boja kože',
+    '🧑🏽‍🐰‍🧑🏾' => 'osobe u provodu: umjerena boja kože i umjereno tamna boja kože',
+    '🧑🏽‍🐰‍🧑🏿' => 'osobe u provodu: umjerena boja kože i tamna boja kože',
+    '🧑🏾‍🐰‍🧑🏻' => 'osobe u provodu: umjereno tamna boja kože i svijetla boja kože',
+    '🧑🏾‍🐰‍🧑🏼' => 'osobe u provodu: umjereno tamna boja kože i umjereno svijetla boja kože',
+    '🧑🏾‍🐰‍🧑🏽' => 'osobe u provodu: umjereno tamna boja kože i umjerena boja kože',
+    '🧑🏾‍🐰‍🧑🏿' => 'osobe u provodu: umjereno tamna boja kože i tamna boja kože',
+    '🧑🏿‍🐰‍🧑🏻' => 'osobe u provodu: tamna boja kože i svijetla boja kože',
+    '🧑🏿‍🐰‍🧑🏼' => 'osobe u provodu: tamna boja kože i umjereno svijetla boja kože',
+    '🧑🏿‍🐰‍🧑🏽' => 'osobe u provodu: tamna boja kože i umjerena boja kože',
+    '🧑🏿‍🐰‍🧑🏾' => 'osobe u provodu: tamna boja kože i umjereno tamna boja kože',
+    '👨🏻‍🫯‍👨🏼' => 'hrvač: svijetla boja kože i umjereno svijetla boja kože',
+    '👨🏻‍🫯‍👨🏽' => 'hrvač: svijetla boja kože i umjerena boja kože',
+    '👨🏻‍🫯‍👨🏾' => 'hrvač: svijetla boja kože i umjereno tamna boja kože',
+    '👨🏻‍🫯‍👨🏿' => 'hrvač: svijetla boja kože i tamna boja kože',
+    '👨🏼‍🫯‍👨🏻' => 'hrvač: umjereno svijetla boja kože i svijetla boja kože',
+    '👨🏼‍🫯‍👨🏽' => 'hrvač: umjereno svijetla boja kože i umjerena boja kože',
+    '👨🏼‍🫯‍👨🏾' => 'hrvač: umjereno svijetla boja kože i umjereno tamna boja kože',
+    '👨🏼‍🫯‍👨🏿' => 'hrvač: umjereno svijetla boja kože i tamna boja kože',
+    '👨🏽‍🫯‍👨🏻' => 'hrvač: umjerena boja kože i svijetla boja kože',
+    '👨🏽‍🫯‍👨🏼' => 'hrvač: umjerena boja kože i umjereno svijetla boja kože',
+    '👨🏽‍🫯‍👨🏾' => 'hrvač: umjerena boja kože i umjereno tamna boja kože',
+    '👨🏽‍🫯‍👨🏿' => 'hrvač: umjerena boja kože i tamna boja kože',
+    '👨🏾‍🫯‍👨🏻' => 'hrvač: umjereno tamna boja kože i svijetla boja kože',
+    '👨🏾‍🫯‍👨🏼' => 'hrvač: umjereno tamna boja kože i umjereno svijetla boja kože',
+    '👨🏾‍🫯‍👨🏽' => 'hrvač: umjereno tamna boja kože i umjerena boja kože',
+    '👨🏾‍🫯‍👨🏿' => 'hrvač: umjereno tamna boja kože i tamna boja kože',
+    '👨🏿‍🫯‍👨🏻' => 'hrvač: tamna boja kože i svijetla boja kože',
+    '👨🏿‍🫯‍👨🏼' => 'hrvač: tamna boja kože i umjereno svijetla boja kože',
+    '👨🏿‍🫯‍👨🏽' => 'hrvač: tamna boja kože i umjerena boja kože',
+    '👨🏿‍🫯‍👨🏾' => 'hrvač: tamna boja kože i umjereno tamna boja kože',
     '👨🏻‍❤‍👨🏻' => 'par i srce: muškarac, muškarac i svijetla boja kože',
     '👨🏻‍❤‍👨🏼' => 'par i srce: muškarac, muškarac, svijetla boja kože i umjereno svijetla boja kože',
     '👨🏻‍❤‍👨🏽' => 'par i srce: muškarac, muškarac, svijetla boja kože i umjerena boja kože',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'par i srce: muškarac, muškarac, tamna boja kože i umjerena boja kože',
     '👨🏿‍❤‍👨🏾' => 'par i srce: muškarac, muškarac, tamna boja kože i umjereno tamna boja kože',
     '👨🏿‍❤‍👨🏿' => 'par i srce: muškarac, muškarac i tamna boja kože',
+    '👨🏻‍🐰‍👨🏼' => 'muškarci u provodu: svijetla boja kože i umjereno svijetla boja kože',
+    '👨🏻‍🐰‍👨🏽' => 'muškarci u provodu: svijetla boja kože i umjerena boja kože',
+    '👨🏻‍🐰‍👨🏾' => 'muškarci u provodu: svijetla boja kože i umjereno tamna boja kože',
+    '👨🏻‍🐰‍👨🏿' => 'muškarci u provodu: svijetla boja kože i tamna boja kože',
+    '👨🏼‍🐰‍👨🏻' => 'muškarci u provodu: umjereno svijetla boja kože i svijetla boja kože',
+    '👨🏼‍🐰‍👨🏽' => 'muškarci u provodu: umjereno svijetla boja kože i umjerena boja kože',
+    '👨🏼‍🐰‍👨🏾' => 'muškarci u provodu: umjereno svijetla boja kože i umjereno tamna boja kože',
+    '👨🏼‍🐰‍👨🏿' => 'muškarci u provodu: umjereno svijetla boja kože i tamna boja kože',
+    '👨🏽‍🐰‍👨🏻' => 'muškarci u provodu: umjerena boja kože i svijetla boja kože',
+    '👨🏽‍🐰‍👨🏼' => 'muškarci u provodu: umjerena boja kože i umjereno svijetla boja kože',
+    '👨🏽‍🐰‍👨🏾' => 'muškarci u provodu: umjerena boja kože i umjereno tamna boja kože',
+    '👨🏽‍🐰‍👨🏿' => 'muškarci u provodu: umjerena boja kože i tamna boja kože',
+    '👨🏾‍🐰‍👨🏻' => 'muškarci u provodu: umjereno tamna boja kože i svijetla boja kože',
+    '👨🏾‍🐰‍👨🏼' => 'muškarci u provodu: umjereno tamna boja kože i umjereno svijetla boja kože',
+    '👨🏾‍🐰‍👨🏽' => 'muškarci u provodu: umjereno tamna boja kože i umjerena boja kože',
+    '👨🏾‍🐰‍👨🏿' => 'muškarci u provodu: umjereno tamna boja kože i tamna boja kože',
+    '👨🏿‍🐰‍👨🏻' => 'muškarci u provodu: tamna boja kože i svijetla boja kože',
+    '👨🏿‍🐰‍👨🏼' => 'muškarci u provodu: tamna boja kože i umjereno svijetla boja kože',
+    '👨🏿‍🐰‍👨🏽' => 'muškarci u provodu: tamna boja kože i umjerena boja kože',
+    '👨🏿‍🐰‍👨🏾' => 'muškarci u provodu: tamna boja kože i umjereno tamna boja kože',
+    '👩🏻‍🫯‍👩🏼' => 'hrvačica: svijetla boja kože i umjereno svijetla boja kože',
+    '👩🏻‍🫯‍👩🏽' => 'hrvačica: svijetla boja kože i umjerena boja kože',
+    '👩🏻‍🫯‍👩🏾' => 'hrvačica: svijetla boja kože i umjereno tamna boja kože',
+    '👩🏻‍🫯‍👩🏿' => 'hrvačica: svijetla boja kože i tamna boja kože',
+    '👩🏼‍🫯‍👩🏻' => 'hrvačica: umjereno svijetla boja kože i svijetla boja kože',
+    '👩🏼‍🫯‍👩🏽' => 'hrvačica: umjereno svijetla boja kože i umjerena boja kože',
+    '👩🏼‍🫯‍👩🏾' => 'hrvačica: umjereno svijetla boja kože i umjereno tamna boja kože',
+    '👩🏼‍🫯‍👩🏿' => 'hrvačica: umjereno svijetla boja kože i tamna boja kože',
+    '👩🏽‍🫯‍👩🏻' => 'hrvačica: umjerena boja kože i svijetla boja kože',
+    '👩🏽‍🫯‍👩🏼' => 'hrvačica: umjerena boja kože i umjereno svijetla boja kože',
+    '👩🏽‍🫯‍👩🏾' => 'hrvačica: umjerena boja kože i umjereno tamna boja kože',
+    '👩🏽‍🫯‍👩🏿' => 'hrvačica: umjerena boja kože i tamna boja kože',
+    '👩🏾‍🫯‍👩🏻' => 'hrvačica: umjereno tamna boja kože i svijetla boja kože',
+    '👩🏾‍🫯‍👩🏼' => 'hrvačica: umjereno tamna boja kože i umjereno svijetla boja kože',
+    '👩🏾‍🫯‍👩🏽' => 'hrvačica: umjereno tamna boja kože i umjerena boja kože',
+    '👩🏾‍🫯‍👩🏿' => 'hrvačica: umjereno tamna boja kože i tamna boja kože',
+    '👩🏿‍🫯‍👩🏻' => 'hrvačica: tamna boja kože i svijetla boja kože',
+    '👩🏿‍🫯‍👩🏼' => 'hrvačica: tamna boja kože i umjereno svijetla boja kože',
+    '👩🏿‍🫯‍👩🏽' => 'hrvačica: tamna boja kože i umjerena boja kože',
+    '👩🏿‍🫯‍👩🏾' => 'hrvačica: tamna boja kože i umjereno tamna boja kože',
     '👩🏻‍❤‍👨🏻' => 'par i srce: žena, muškarac i svijetla boja kože',
     '👩🏻‍❤‍👨🏼' => 'par i srce: žena, muškarac, svijetla boja kože i umjereno svijetla boja kože',
     '👩🏻‍❤‍👨🏽' => 'par i srce: žena, muškarac, svijetla boja kože i umjerena boja kože',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'par i srce: žena, žena, tamna boja kože i umjerena boja kože',
     '👩🏿‍❤‍👩🏾' => 'par i srce: žena, žena, tamna boja kože i umjereno tamna boja kože',
     '👩🏿‍❤‍👩🏿' => 'par i srce: žena, žena i tamna boja kože',
+    '👩🏻‍🐰‍👩🏼' => 'žene u provodu: svijetla boja kože i umjereno svijetla boja kože',
+    '👩🏻‍🐰‍👩🏽' => 'žene u provodu: svijetla boja kože i umjerena boja kože',
+    '👩🏻‍🐰‍👩🏾' => 'žene u provodu: svijetla boja kože i umjereno tamna boja kože',
+    '👩🏻‍🐰‍👩🏿' => 'žene u provodu: svijetla boja kože i tamna boja kože',
+    '👩🏼‍🐰‍👩🏻' => 'žene u provodu: umjereno svijetla boja kože i svijetla boja kože',
+    '👩🏼‍🐰‍👩🏽' => 'žene u provodu: umjereno svijetla boja kože i umjerena boja kože',
+    '👩🏼‍🐰‍👩🏾' => 'žene u provodu: umjereno svijetla boja kože i umjereno tamna boja kože',
+    '👩🏼‍🐰‍👩🏿' => 'žene u provodu: umjereno svijetla boja kože i tamna boja kože',
+    '👩🏽‍🐰‍👩🏻' => 'žene u provodu: umjerena boja kože i svijetla boja kože',
+    '👩🏽‍🐰‍👩🏼' => 'žene u provodu: umjerena boja kože i umjereno svijetla boja kože',
+    '👩🏽‍🐰‍👩🏾' => 'žene u provodu: umjerena boja kože i umjereno tamna boja kože',
+    '👩🏽‍🐰‍👩🏿' => 'žene u provodu: umjerena boja kože i tamna boja kože',
+    '👩🏾‍🐰‍👩🏻' => 'žene u provodu: umjereno tamna boja kože i svijetla boja kože',
+    '👩🏾‍🐰‍👩🏼' => 'žene u provodu: umjereno tamna boja kože i umjereno svijetla boja kože',
+    '👩🏾‍🐰‍👩🏽' => 'žene u provodu: umjereno tamna boja kože i umjerena boja kože',
+    '👩🏾‍🐰‍👩🏿' => 'žene u provodu: umjereno tamna boja kože i tamna boja kože',
+    '👩🏿‍🐰‍👩🏻' => 'žene u provodu: tamna boja kože i svijetla boja kože',
+    '👩🏿‍🐰‍👩🏼' => 'žene u provodu: tamna boja kože i umjereno svijetla boja kože',
+    '👩🏿‍🐰‍👩🏽' => 'žene u provodu: tamna boja kože i umjerena boja kože',
+    '👩🏿‍🐰‍👩🏾' => 'žene u provodu: tamna boja kože i umjereno tamna boja kože',
     '🧑🏻‍🤝‍🧑🏻' => 'ljudi se drže za ruke: svijetla boja kože',
     '🧑🏻‍🤝‍🧑🏼' => 'ljudi se drže za ruke: svijetla boja kože i umjereno svijetla boja kože',
     '🧑🏻‍🤝‍🧑🏽' => 'ljudi se drže za ruke: svijetla boja kože i umjerena boja kože',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'zastava: Škotska',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'zastava: Vels',
     '🧑‍🧑‍🧒‍🧒' => 'porodica: odrasla osoba, odrasla osoba, dijete, dijete',
-    '🚶🏻‍♀‍➡' => 'žena hoda nadesno',
-    '🚶🏼‍♀‍➡' => 'žena hoda nadesno',
-    '🚶🏽‍♀‍➡' => 'žena hoda nadesno',
-    '🚶🏾‍♀‍➡' => 'žena hoda nadesno',
-    '🚶🏿‍♀‍➡' => 'žena hoda nadesno',
-    '🚶🏻‍♂‍➡' => 'muškarac hoda nadesno',
-    '🚶🏼‍♂‍➡' => 'muškarac hoda nadesno',
-    '🚶🏽‍♂‍➡' => 'muškarac hoda nadesno',
-    '🚶🏾‍♂‍➡' => 'muškarac hoda nadesno',
-    '🚶🏿‍♂‍➡' => 'muškarac hoda nadesno',
-    '🧎🏻‍♀‍➡' => 'žena kleči nadesno',
-    '🧎🏼‍♀‍➡' => 'žena kleči nadesno',
-    '🧎🏽‍♀‍➡' => 'žena kleči nadesno',
-    '🧎🏾‍♀‍➡' => 'žena kleči nadesno',
-    '🧎🏿‍♀‍➡' => 'žena kleči nadesno',
-    '🧎🏻‍♂‍➡' => 'muškarac kleči nadesno',
-    '🧎🏼‍♂‍➡' => 'muškarac kleči nadesno',
-    '🧎🏽‍♂‍➡' => 'muškarac kleči nadesno',
-    '🧎🏾‍♂‍➡' => 'muškarac kleči nadesno',
-    '🧎🏿‍♂‍➡' => 'muškarac kleči nadesno',
-    '🧑🏻‍🦯‍➡' => 'osoba sa štapom za hodanje nadesno',
-    '🧑🏼‍🦯‍➡' => 'osoba sa štapom za hodanje nadesno',
-    '🧑🏽‍🦯‍➡' => 'osoba sa štapom za hodanje nadesno',
-    '🧑🏾‍🦯‍➡' => 'osoba sa štapom za hodanje nadesno',
-    '🧑🏿‍🦯‍➡' => 'osoba sa štapom za hodanje nadesno',
-    '👨🏻‍🦯‍➡' => 'muškarac sa štapom za hodanje nadesno',
-    '👨🏼‍🦯‍➡' => 'muškarac sa štapom za hodanje nadesno',
-    '👨🏽‍🦯‍➡' => 'muškarac sa štapom za hodanje nadesno',
-    '👨🏾‍🦯‍➡' => 'muškarac sa štapom za hodanje nadesno',
-    '👨🏿‍🦯‍➡' => 'muškarac sa štapom za hodanje nadesno',
-    '👩🏻‍🦯‍➡' => 'žena sa štapom za hodanje nadesno',
-    '👩🏼‍🦯‍➡' => 'žena sa štapom za hodanje nadesno',
-    '👩🏽‍🦯‍➡' => 'žena sa štapom za hodanje nadesno',
-    '👩🏾‍🦯‍➡' => 'žena sa štapom za hodanje nadesno',
-    '👩🏿‍🦯‍➡' => 'žena sa štapom za hodanje nadesno',
-    '🧑🏻‍🦼‍➡' => 'osoba u motornim invalidskim kolicima nadesno',
-    '🧑🏼‍🦼‍➡' => 'osoba u motornim invalidskim kolicima nadesno',
-    '🧑🏽‍🦼‍➡' => 'osoba u motornim invalidskim kolicima nadesno',
-    '🧑🏾‍🦼‍➡' => 'osoba u motornim invalidskim kolicima nadesno',
-    '🧑🏿‍🦼‍➡' => 'osoba u motornim invalidskim kolicima nadesno',
-    '👨🏻‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima nadesno',
-    '👨🏼‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima nadesno',
-    '👨🏽‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima nadesno',
-    '👨🏾‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima nadesno',
-    '👨🏿‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima nadesno',
-    '👩🏻‍🦼‍➡' => 'žena u motornim invalidskim kolicima nadesno',
-    '👩🏼‍🦼‍➡' => 'žena u motornim invalidskim kolicima nadesno',
-    '👩🏽‍🦼‍➡' => 'žena u motornim invalidskim kolicima nadesno',
-    '👩🏾‍🦼‍➡' => 'žena u motornim invalidskim kolicima nadesno',
-    '👩🏿‍🦼‍➡' => 'žena u motornim invalidskim kolicima nadesno',
-    '🧑🏻‍🦽‍➡' => 'osoba u invalidskim kolicima nadesno',
-    '🧑🏼‍🦽‍➡' => 'osoba u invalidskim kolicima nadesno',
-    '🧑🏽‍🦽‍➡' => 'osoba u invalidskim kolicima nadesno',
-    '🧑🏾‍🦽‍➡' => 'osoba u invalidskim kolicima nadesno',
-    '🧑🏿‍🦽‍➡' => 'osoba u invalidskim kolicima nadesno',
-    '👨🏻‍🦽‍➡' => 'muškarac u invalidskim kolicima nadesno',
-    '👨🏼‍🦽‍➡' => 'muškarac u invalidskim kolicima nadesno',
-    '👨🏽‍🦽‍➡' => 'muškarac u invalidskim kolicima nadesno',
-    '👨🏾‍🦽‍➡' => 'muškarac u invalidskim kolicima nadesno',
-    '👨🏿‍🦽‍➡' => 'muškarac u invalidskim kolicima nadesno',
-    '👩🏻‍🦽‍➡' => 'žena u invalidskim kolicima nadesno',
-    '👩🏼‍🦽‍➡' => 'žena u invalidskim kolicima nadesno',
-    '👩🏽‍🦽‍➡' => 'žena u invalidskim kolicima nadesno',
-    '👩🏾‍🦽‍➡' => 'žena u invalidskim kolicima nadesno',
-    '👩🏿‍🦽‍➡' => 'žena u invalidskim kolicima nadesno',
-    '🏃🏻‍♀‍➡' => 'žena trči nadesno',
-    '🏃🏼‍♀‍➡' => 'žena trči nadesno',
-    '🏃🏽‍♀‍➡' => 'žena trči nadesno',
-    '🏃🏾‍♀‍➡' => 'žena trči nadesno',
-    '🏃🏿‍♀‍➡' => 'žena trči nadesno',
-    '🏃🏻‍♂‍➡' => 'muškarac trči nadesno',
-    '🏃🏼‍♂‍➡' => 'muškarac trči nadesno',
-    '🏃🏽‍♂‍➡' => 'muškarac trči nadesno',
-    '🏃🏾‍♂‍➡' => 'muškarac trči nadesno',
-    '🏃🏿‍♂‍➡' => 'muškarac trči nadesno',
+    '🚶🏻‍♀‍➡' => 'žena hoda: svijetla boja kože i nadesno',
+    '🚶🏼‍♀‍➡' => 'žena hoda: umjereno svijetla boja kože i nadesno',
+    '🚶🏽‍♀‍➡' => 'žena hoda: umjerena boja kože i nadesno',
+    '🚶🏾‍♀‍➡' => 'žena hoda: umjereno tamna boja kože i nadesno',
+    '🚶🏿‍♀‍➡' => 'žena hoda: tamna boja kože i nadesno',
+    '🚶🏻‍♂‍➡' => 'muškarac hoda: svijetla boja kože i nadesno',
+    '🚶🏼‍♂‍➡' => 'muškarac hoda: umjereno svijetla boja kože i nadesno',
+    '🚶🏽‍♂‍➡' => 'muškarac hoda: umjerena boja kože i nadesno',
+    '🚶🏾‍♂‍➡' => 'muškarac hoda: umjereno tamna boja kože i nadesno',
+    '🚶🏿‍♂‍➡' => 'muškarac hoda: tamna boja kože i nadesno',
+    '🧎🏻‍♀‍➡' => 'žena kleči: svijetla boja kože i nadesno',
+    '🧎🏼‍♀‍➡' => 'žena kleči: umjereno svijetla boja kože i nadesno',
+    '🧎🏽‍♀‍➡' => 'žena kleči: umjerena boja kože i nadesno',
+    '🧎🏾‍♀‍➡' => 'žena kleči: umjereno tamna boja kože i nadesno',
+    '🧎🏿‍♀‍➡' => 'žena kleči: tamna boja kože i nadesno',
+    '🧎🏻‍♂‍➡' => 'muškarac kleči: svijetla boja kože i nadesno',
+    '🧎🏼‍♂‍➡' => 'muškarac kleči: umjereno svijetla boja kože i nadesno',
+    '🧎🏽‍♂‍➡' => 'muškarac kleči: umjerena boja kože i nadesno',
+    '🧎🏾‍♂‍➡' => 'muškarac kleči: umjereno tamna boja kože i nadesno',
+    '🧎🏿‍♂‍➡' => 'muškarac kleči: tamna boja kože i nadesno',
+    '🧑🏻‍🦯‍➡' => 'osoba sa štapom za hodanje: svijetla boja kože i nadesno',
+    '🧑🏼‍🦯‍➡' => 'osoba sa štapom za hodanje: umjereno svijetla boja kože i nadesno',
+    '🧑🏽‍🦯‍➡' => 'osoba sa štapom za hodanje: umjerena boja kože i nadesno',
+    '🧑🏾‍🦯‍➡' => 'osoba sa štapom za hodanje: umjereno tamna boja kože i nadesno',
+    '🧑🏿‍🦯‍➡' => 'osoba sa štapom za hodanje: tamna boja kože i nadesno',
+    '👨🏻‍🦯‍➡' => 'muškarac sa štapom za hodanje: svijetla boja kože i nadesno',
+    '👨🏼‍🦯‍➡' => 'muškarac sa štapom za hodanje: umjereno svijetla boja kože i nadesno',
+    '👨🏽‍🦯‍➡' => 'muškarac sa štapom za hodanje: umjerena boja kože i nadesno',
+    '👨🏾‍🦯‍➡' => 'muškarac sa štapom za hodanje: umjereno tamna boja kože i nadesno',
+    '👨🏿‍🦯‍➡' => 'muškarac sa štapom za hodanje: tamna boja kože i nadesno',
+    '👩🏻‍🦯‍➡' => 'žena sa štapom za hodanje: svijetla boja kože i nadesno',
+    '👩🏼‍🦯‍➡' => 'žena sa štapom za hodanje: umjereno svijetla boja kože i nadesno',
+    '👩🏽‍🦯‍➡' => 'žena sa štapom za hodanje: umjerena boja kože i nadesno',
+    '👩🏾‍🦯‍➡' => 'žena sa štapom za hodanje: umjereno tamna boja kože i nadesno',
+    '👩🏿‍🦯‍➡' => 'žena sa štapom za hodanje: tamna boja kože i nadesno',
+    '🧑🏻‍🦼‍➡' => 'osoba u motornim invalidskim kolicima: svijetla boja kože i nadesno',
+    '🧑🏼‍🦼‍➡' => 'osoba u motornim invalidskim kolicima: umjereno svijetla boja kože i nadesno',
+    '🧑🏽‍🦼‍➡' => 'osoba u motornim invalidskim kolicima: umjerena boja kože i nadesno',
+    '🧑🏾‍🦼‍➡' => 'osoba u motornim invalidskim kolicima: umjereno tamna boja kože i nadesno',
+    '🧑🏿‍🦼‍➡' => 'osoba u motornim invalidskim kolicima: tamna boja kože i nadesno',
+    '👨🏻‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: svijetla boja kože i nadesno',
+    '👨🏼‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: umjereno svijetla boja kože i nadesno',
+    '👨🏽‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: umjerena boja kože i nadesno',
+    '👨🏾‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: umjereno tamna boja kože i nadesno',
+    '👨🏿‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: tamna boja kože i nadesno',
+    '👩🏻‍🦼‍➡' => 'žena u motornim invalidskim kolicima: svijetla boja kože i nadesno',
+    '👩🏼‍🦼‍➡' => 'žena u motornim invalidskim kolicima: umjereno svijetla boja kože i nadesno',
+    '👩🏽‍🦼‍➡' => 'žena u motornim invalidskim kolicima: umjerena boja kože i nadesno',
+    '👩🏾‍🦼‍➡' => 'žena u motornim invalidskim kolicima: umjereno tamna boja kože i nadesno',
+    '👩🏿‍🦼‍➡' => 'žena u motornim invalidskim kolicima: tamna boja kože i nadesno',
+    '🧑🏻‍🦽‍➡' => 'osoba u invalidskim kolicima: svijetla boja kože i nadesno',
+    '🧑🏼‍🦽‍➡' => 'osoba u invalidskim kolicima: umjereno svijetla boja kože i nadesno',
+    '🧑🏽‍🦽‍➡' => 'osoba u invalidskim kolicima: umjerena boja kože i nadesno',
+    '🧑🏾‍🦽‍➡' => 'osoba u invalidskim kolicima: umjereno tamna boja kože i nadesno',
+    '🧑🏿‍🦽‍➡' => 'osoba u invalidskim kolicima: tamna boja kože i nadesno',
+    '👨🏻‍🦽‍➡' => 'muškarac u invalidskim kolicima: svijetla boja kože i nadesno',
+    '👨🏼‍🦽‍➡' => 'muškarac u invalidskim kolicima: umjereno svijetla boja kože i nadesno',
+    '👨🏽‍🦽‍➡' => 'muškarac u invalidskim kolicima: umjerena boja kože i nadesno',
+    '👨🏾‍🦽‍➡' => 'muškarac u invalidskim kolicima: umjereno tamna boja kože i nadesno',
+    '👨🏿‍🦽‍➡' => 'muškarac u invalidskim kolicima: tamna boja kože i nadesno',
+    '👩🏻‍🦽‍➡' => 'žena u invalidskim kolicima: svijetla boja kože i nadesno',
+    '👩🏼‍🦽‍➡' => 'žena u invalidskim kolicima: umjereno svijetla boja kože i nadesno',
+    '👩🏽‍🦽‍➡' => 'žena u invalidskim kolicima: umjerena boja kože i nadesno',
+    '👩🏾‍🦽‍➡' => 'žena u invalidskim kolicima: umjereno tamna boja kože i nadesno',
+    '👩🏿‍🦽‍➡' => 'žena u invalidskim kolicima: tamna boja kože i nadesno',
+    '🏃🏻‍♀‍➡' => 'žena trči: svijetla boja kože i nadesno',
+    '🏃🏼‍♀‍➡' => 'žena trči: umjereno svijetla boja kože i nadesno',
+    '🏃🏽‍♀‍➡' => 'žena trči: umjerena boja kože i nadesno',
+    '🏃🏾‍♀‍➡' => 'žena trči: umjereno tamna boja kože i nadesno',
+    '🏃🏿‍♀‍➡' => 'žena trči: tamna boja kože i nadesno',
+    '🏃🏻‍♂‍➡' => 'muškarac trči: svijetla boja kože i nadesno',
+    '🏃🏼‍♂‍➡' => 'muškarac trči: umjereno svijetla boja kože i nadesno',
+    '🏃🏽‍♂‍➡' => 'muškarac trči: umjerena boja kože i nadesno',
+    '🏃🏾‍♂‍➡' => 'muškarac trči: umjereno tamna boja kože i nadesno',
+    '🏃🏿‍♂‍➡' => 'muškarac trči: tamna boja kože i nadesno',
     '🫱🏻‍🫲🏼' => 'rukovanje: svijetla boja kože i umjereno svijetla boja kože',
     '🫱🏻‍🫲🏽' => 'rukovanje: svijetla boja kože i umjerena boja kože',
     '🫱🏻‍🫲🏾' => 'rukovanje: svijetla boja kože i umjereno tamna boja kože',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'rukovanje: tamna boja kože i umjereno svijetla boja kože',
     '🫱🏿‍🫲🏽' => 'rukovanje: tamna boja kože i umjerena boja kože',
     '🫱🏿‍🫲🏾' => 'rukovanje: tamna boja kože i umjereno tamna boja kože',
-    '🚶‍♀‍➡' => 'žena hoda nadesno',
-    '🚶‍♂‍➡' => 'muškarac hoda nadesno',
-    '🧎‍♀‍➡' => 'žena kleči nadesno',
-    '🧎‍♂‍➡' => 'muškarac kleči nadesno',
-    '🧑‍🦯‍➡' => 'osoba sa štapom za hodanje nadesno',
-    '👨‍🦯‍➡' => 'muškarac sa štapom za hodanje nadesno',
-    '👩‍🦯‍➡' => 'žena sa štapom za hodanje nadesno',
-    '🧑‍🦼‍➡' => 'osoba u motornim invalidskim kolicima nadesno',
-    '👨‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima nadesno',
-    '👩‍🦼‍➡' => 'žena u motornim invalidskim kolicima nadesno',
-    '🧑‍🦽‍➡' => 'osoba u invalidskim kolicima nadesno',
-    '👨‍🦽‍➡' => 'muškarac u invalidskim kolicima nadesno',
-    '👩‍🦽‍➡' => 'žena u invalidskim kolicima nadesno',
-    '🏃‍♀‍➡' => 'žena trči nadesno',
-    '🏃‍♂‍➡' => 'muškarac trči nadesno',
+    '🚶‍♀‍➡' => 'žena hoda: nadesno',
+    '🚶‍♂‍➡' => 'muškarac hoda: nadesno',
+    '🧎‍♀‍➡' => 'žena kleči: nadesno',
+    '🧎‍♂‍➡' => 'muškarac kleči: nadesno',
+    '🧑‍🦯‍➡' => 'osoba sa štapom za hodanje: nadesno',
+    '👨‍🦯‍➡' => 'muškarac sa štapom za hodanje: nadesno',
+    '👩‍🦯‍➡' => 'žena sa štapom za hodanje: nadesno',
+    '🧑‍🦼‍➡' => 'osoba u motornim invalidskim kolicima: nadesno',
+    '👨‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: nadesno',
+    '👩‍🦼‍➡' => 'žena u motornim invalidskim kolicima: nadesno',
+    '🧑‍🦽‍➡' => 'osoba u invalidskim kolicima: nadesno',
+    '👨‍🦽‍➡' => 'muškarac u invalidskim kolicima: nadesno',
+    '👩‍🦽‍➡' => 'žena u invalidskim kolicima: nadesno',
+    '🏃‍♀‍➡' => 'žena trči: nadesno',
+    '🏃‍♂‍➡' => 'muškarac trči: nadesno',
     '👩‍❤‍👨' => 'par i srce: žena i muškarac',
     '👨‍❤‍👨' => 'par i srce: muškarac i muškarac',
     '👩‍❤‍👩' => 'par i srce: žena i žena',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'osoba: umjerena boja kože i ćelavo',
     '🧑🏾‍🦲' => 'osoba: umjereno tamna boja kože i ćelavo',
     '🧑🏿‍🦲' => 'osoba: tamna boja kože i ćelavo',
+    '🧑🏻‍🩰' => 'plesač baleta: svijetla boja kože',
+    '🧑🏼‍🩰' => 'plesač baleta: umjereno svijetla boja kože',
+    '🧑🏽‍🩰' => 'plesač baleta: umjerena boja kože',
+    '🧑🏾‍🩰' => 'plesač baleta: umjereno tamna boja kože',
+    '🧑🏿‍🩰' => 'plesač baleta: tamna boja kože',
     '🧔🏻‍♂' => 'muškarac s bradom: svijetla boja kože',
     '🧔🏼‍♂' => 'muškarac s bradom: umjereno svijetla boja kože',
     '🧔🏽‍♂' => 'muškarac s bradom: umjerena boja kože',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'žena hoda: umjerena boja kože',
     '🚶🏾‍♀' => 'žena hoda: umjereno tamna boja kože',
     '🚶🏿‍♀' => 'žena hoda: tamna boja kože',
-    '🚶🏻‍➡' => 'osoba hoda nadesno',
-    '🚶🏼‍➡' => 'osoba hoda nadesno',
-    '🚶🏽‍➡' => 'osoba hoda nadesno',
-    '🚶🏾‍➡' => 'osoba hoda nadesno',
-    '🚶🏿‍➡' => 'osoba hoda nadesno',
+    '🚶🏻‍➡' => 'osoba hoda: svijetla boja kože i nadesno',
+    '🚶🏼‍➡' => 'osoba hoda: umjereno svijetla boja kože i nadesno',
+    '🚶🏽‍➡' => 'osoba hoda: umjerena boja kože i nadesno',
+    '🚶🏾‍➡' => 'osoba hoda: umjereno tamna boja kože i nadesno',
+    '🚶🏿‍➡' => 'osoba hoda: tamna boja kože i nadesno',
     '🧍🏻‍♂' => 'čovjek stoji: svijetla boja kože',
     '🧍🏼‍♂' => 'čovjek stoji: umjereno svijetla boja kože',
     '🧍🏽‍♂' => 'čovjek stoji: umjerena boja kože',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'žena kleči: umjerena boja kože',
     '🧎🏾‍♀' => 'žena kleči: umjereno tamna boja kože',
     '🧎🏿‍♀' => 'žena kleči: tamna boja kože',
-    '🧎🏻‍➡' => 'osoba kleči nadesno',
-    '🧎🏼‍➡' => 'osoba kleči nadesno',
-    '🧎🏽‍➡' => 'osoba kleči nadesno',
-    '🧎🏾‍➡' => 'osoba kleči nadesno',
-    '🧎🏿‍➡' => 'osoba kleči nadesno',
+    '🧎🏻‍➡' => 'osoba kleči: svijetla boja kože i nadesno',
+    '🧎🏼‍➡' => 'osoba kleči: umjereno svijetla boja kože i nadesno',
+    '🧎🏽‍➡' => 'osoba kleči: umjerena boja kože i nadesno',
+    '🧎🏾‍➡' => 'osoba kleči: umjereno tamna boja kože i nadesno',
+    '🧎🏿‍➡' => 'osoba kleči: tamna boja kože i nadesno',
     '🧑🏻‍🦯' => 'osoba sa štapom za hodanje: svijetla boja kože',
     '🧑🏼‍🦯' => 'osoba sa štapom za hodanje: umjereno svijetla boja kože',
     '🧑🏽‍🦯' => 'osoba sa štapom za hodanje: umjerena boja kože',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'žena trči: umjerena boja kože',
     '🏃🏾‍♀' => 'žena trči: umjereno tamna boja kože',
     '🏃🏿‍♀' => 'žena trči: tamna boja kože',
-    '🏃🏻‍➡' => 'osoba trči nadesno',
-    '🏃🏼‍➡' => 'osoba trči nadesno',
-    '🏃🏽‍➡' => 'osoba trči nadesno',
-    '🏃🏾‍➡' => 'osoba trči nadesno',
-    '🏃🏿‍➡' => 'osoba trči nadesno',
+    '🏃🏻‍➡' => 'osoba trči: svijetla boja kože i nadesno',
+    '🏃🏼‍➡' => 'osoba trči: umjereno svijetla boja kože i nadesno',
+    '🏃🏽‍➡' => 'osoba trči: umjerena boja kože i nadesno',
+    '🏃🏾‍➡' => 'osoba trči: umjereno tamna boja kože i nadesno',
+    '🏃🏿‍➡' => 'osoba trči: tamna boja kože i nadesno',
+    '👯🏻‍♀' => 'žene u provodu: svijetla boja kože',
+    '👯🏼‍♀' => 'žene u provodu: umjereno svijetla boja kože',
+    '👯🏽‍♀' => 'žene u provodu: umjerena boja kože',
+    '👯🏾‍♀' => 'žene u provodu: umjereno tamna boja kože',
+    '👯🏿‍♀' => 'žene u provodu: tamna boja kože',
+    '👯🏻‍♂' => 'muškarci u provodu: svijetla boja kože',
+    '👯🏼‍♂' => 'muškarci u provodu: umjereno svijetla boja kože',
+    '👯🏽‍♂' => 'muškarci u provodu: umjerena boja kože',
+    '👯🏾‍♂' => 'muškarci u provodu: umjereno tamna boja kože',
+    '👯🏿‍♂' => 'muškarci u provodu: tamna boja kože',
     '🧖🏻‍♂' => 'muškarac u prostoriji s parom: svijetla boja kože',
     '🧖🏼‍♂' => 'muškarac u prostoriji s parom: umjereno svijetla boja kože',
     '🧖🏽‍♂' => 'muškarac u prostoriji s parom: umjerena boja kože',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'žena pravi premet: umjerena boja kože',
     '🤸🏾‍♀' => 'žena pravi premet: umjereno tamna boja kože',
     '🤸🏿‍♀' => 'žena pravi premet: tamna boja kože',
+    '🤼🏻‍♀' => 'hrvačica: svijetla boja kože',
+    '🤼🏼‍♀' => 'hrvačica: umjereno svijetla boja kože',
+    '🤼🏽‍♀' => 'hrvačica: umjerena boja kože',
+    '🤼🏾‍♀' => 'hrvačica: umjereno tamna boja kože',
+    '🤼🏿‍♀' => 'hrvačica: tamna boja kože',
+    '🤼🏻‍♂' => 'hrvač: svijetla boja kože',
+    '🤼🏼‍♂' => 'hrvač: umjereno svijetla boja kože',
+    '🤼🏽‍♂' => 'hrvač: umjerena boja kože',
+    '🤼🏾‍♂' => 'hrvač: umjereno tamna boja kože',
+    '🤼🏿‍♂' => 'hrvač: tamna boja kože',
     '🤽🏻‍♂' => 'vaterpolista: svijetla boja kože',
     '🤽🏼‍♂' => 'vaterpolista: umjereno svijetla boja kože',
     '🤽🏽‍♂' => 'vaterpolista: umjerena boja kože',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'žena: kovrdžava kosa',
     '👩‍🦳' => 'žena: sijeda kosa',
     '👩‍🦲' => 'žena: ćelavo',
-    '🚶‍➡' => 'osoba hoda nadesno',
-    '🧎‍➡' => 'osoba kleči nadesno',
-    '🏃‍➡' => 'osoba trči nadesno',
+    '🚶‍➡' => 'osoba hoda: nadesno',
+    '🧎‍➡' => 'osoba kleči: nadesno',
+    '🏃‍➡' => 'osoba trči: nadesno',
     '👨‍👦' => 'porodica: muškarac i dječak',
     '👨‍👧' => 'porodica: muškarac i djevojčica',
     '👩‍👦' => 'porodica: žena i dječak',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'žena u invalidskim kolicima',
     '🏃‍♂' => 'muškarac trči',
     '🏃‍♀' => 'žena trči',
+    '🧑‍🩰' => 'plesač baleta',
     '👯‍♂' => 'muškarci u provodu',
     '👯‍♀' => 'žene u provodu',
     '🧖‍♂' => 'muškarac u prostoriji s parom',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'osoba u odijelu levitira: umjerena boja kože',
     '🕴🏾' => 'osoba u odijelu levitira: umjereno tamna boja kože',
     '🕴🏿' => 'osoba u odijelu levitira: tamna boja kože',
+    '👯🏻' => 'osobe u provodu: svijetla boja kože',
+    '👯🏼' => 'osobe u provodu: umjereno svijetla boja kože',
+    '👯🏽' => 'osobe u provodu: umjerena boja kože',
+    '👯🏾' => 'osobe u provodu: umjereno tamna boja kože',
+    '👯🏿' => 'osobe u provodu: tamna boja kože',
     '🧖🏻' => 'osoba u prostoriji s parom: svijetla boja kože',
     '🧖🏼' => 'osoba u prostoriji s parom: umjereno svijetla boja kože',
     '🧖🏽' => 'osoba u prostoriji s parom: umjerena boja kože',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'osoba pravi premet: umjerena boja kože',
     '🤸🏾' => 'osoba pravi premet: umjereno tamna boja kože',
     '🤸🏿' => 'osoba pravi premet: tamna boja kože',
+    '🤼🏻' => 'hrvanje: svijetla boja kože',
+    '🤼🏼' => 'hrvanje: umjereno svijetla boja kože',
+    '🤼🏽' => 'hrvanje: umjerena boja kože',
+    '🤼🏾' => 'hrvanje: umjereno tamna boja kože',
+    '🤼🏿' => 'hrvanje: tamna boja kože',
     '🤽🏻' => 'vaterpolo: svijetla boja kože',
     '🤽🏼' => 'vaterpolo: umjereno svijetla boja kože',
     '🤽🏽' => 'vaterpolo: umjerena boja kože',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'zastava: Kina',
     '🇨🇴' => 'zastava: Kolumbija',
     '🇨🇵' => 'zastava: Ostrvo Clipperton',
+    '🇨🇶' => 'zastava: Sark',
     '🇨🇷' => 'zastava: Kostarika',
     '🇨🇺' => 'zastava: Kuba',
     '🇨🇻' => 'zastava: Zelenortska Ostrva',
@@ -2390,13 +2547,6 @@
     '🏽' => 'umjerena boja kože',
     '🏾' => 'umjereno tamna boja kože',
     '🏿' => 'tamna boja kože',
-    '🪉' => 'harfa',
-    '🪏' => 'lopata',
-    '🪾' => 'drvo bez lišća',
-    '🫆' => 'otisak prsta',
-    '🫜' => 'korjenasto povrće',
-    '🫟' => 'brćkanje',
-    '🫩' => 'lice s podočnjacima',
     '😀' => 'cerenje',
     '😃' => 'kez',
     '😄' => 'kez sa škiljenjem',
@@ -2450,6 +2600,7 @@
     '😪' => 'pospanost',
     '🤤' => 'slinjenje',
     '😴' => 'lice koje spava',
+    '🫩' => 'lice s podočnjacima',
     '😷' => 'nosi medicinsku masku',
     '🤒' => 'toplomjer u ustima',
     '🤕' => 'zavoj na glavi',
@@ -2476,6 +2627,7 @@
     '😯' => 'zanijemio',
     '😲' => 'zapanjenost',
     '😳' => 'ispranost',
+    '🫪' => 'iskrivljeno lice',
     '🥺' => 'molećivo lice',
     '🥹' => 'lice samo što ne zaplače',
     '😦' => 'namrštenost s otvorenim ustima',
@@ -2547,6 +2699,7 @@
     '💋' => 'otisak poljupca',
     '💯' => 'sto poena',
     '💢' => 'simbol ljutnje',
+    '🫯' => 'oblak za borbe',
     '💥' => 'eksplozija',
     '💫' => 'ošamućen',
     '💦' => 'kapljice znoja',
@@ -2670,6 +2823,7 @@
     '🧞' => 'duh iz boce',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'dlakavo čudovište',
     '💆' => 'osoba prima masažu',
     '💇' => 'šišanje osobe',
     '🚶' => 'osoba hoda',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ljudi se grle',
     '👪' => 'porodica',
     '👣' => 'otisci stopala',
+    '🫆' => 'otisak prsta',
     '🦰' => 'crvena kosa',
     '🦱' => 'kovrdžava kosa',
     '🦳' => 'sijeda kosa',
@@ -2812,6 +2967,7 @@
     '🐳' => 'kit koji izdiše',
     '🐋' => 'kit',
     '🐬' => 'delfin',
+    '🫍' => 'orka',
     '🦭' => 'foka',
     '🐟' => 'riba',
     '🐠' => 'tropska riba',
@@ -2821,6 +2977,11 @@
     '🐚' => 'spiralna školjka',
     '🪸' => 'koral',
     '🪼' => 'meduza',
+    '🦀' => 'rak',
+    '🦞' => 'jastog',
+    '🦐' => 'škamp',
+    '🦑' => 'lignja',
+    '🦪' => 'kamenica',
     '🐌' => 'puž',
     '🦋' => 'leptir',
     '🐛' => 'buba',
@@ -2865,6 +3026,7 @@
     '🪹' => 'prazno gnijezdo',
     '🪺' => 'gnijezdo s jajima',
     '🍄' => 'gljiva',
+    '🪾' => 'drvo bez lišća',
     '🍇' => 'grožđe',
     '🍈' => 'dinja',
     '🍉' => 'lubenica',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kesten',
     '🫚' => 'korijen đumbira',
     '🫛' => 'mahuna graška',
+    '🫜' => 'korjenasto povrće',
     '🍞' => 'hljeb',
     '🥐' => 'kroasan',
     '🥖' => 'francuski hljeb',
@@ -2952,11 +3115,6 @@
     '🥟' => 'knedla',
     '🥠' => 'kolačić sreće',
     '🥡' => 'kutija s hranom za ponijeti',
-    '🦀' => 'rak',
-    '🦞' => 'jastog',
-    '🦐' => 'škamp',
-    '🦑' => 'lignja',
-    '🦪' => 'kamenica',
     '🍦' => 'sladoled na točenje',
     '🍧' => 'havajski sladoled',
     '🍨' => 'sladoled',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'sniježni planinski vrh',
     '⛰' => 'planina',
+    '🛘' => 'klizište',
     '🌋' => 'vulkan',
     '🗻' => 'planina fudži',
     '🏕' => 'kampovanje',
@@ -3367,16 +3526,18 @@
     '🎧' => 'slušalice',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'truba',
+    '🪊' => 'trombon',
     '🪗' => 'harmonika',
     '🎸' => 'gitara',
     '🎹' => 'klavijature',
-    '🎺' => 'truba',
     '🎻' => 'violina',
     '🪕' => 'bendžo',
     '🥁' => 'bubanj',
     '🪘' => 'kongo bubnjevi',
     '🪇' => 'marake',
     '🪈' => 'flauta',
+    '🪉' => 'harfa',
     '📱' => 'mobitel',
     '📲' => 'strelica pokazuje mobitel',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'markeri za knjige',
     '🔖' => 'marker',
     '🏷' => 'etiketa',
-    '💰' => 'vreća novca',
     '🪙' => 'novčić',
+    '💰' => 'vreća novca',
+    '🪎' => 'škrinja s blagom',
     '💴' => 'novčanica jena',
     '💵' => 'novčanica dolara',
     '💶' => 'novčanica eura',
@@ -3514,6 +3676,7 @@
     '🧰' => 'kutija za alat',
     '🧲' => 'magnet',
     '🪜' => 'ljestve',
+    '🪏' => 'lopata',
     '⚗' => 'alembik',
     '🧪' => 'epruveta',
     '🧫' => 'petri jelo',
@@ -3697,6 +3860,7 @@
     '✴' => 'osmerokraka zvijezda',
     '❇' => 'iskra',
     '™' => 'zaštitni znak',
+    '🫟' => 'brćkanje',
     '🔠' => 'unos latinica veliko slovo',
     '🔡' => 'unos latinica malo slovo',
     '🔢' => 'unos brojeva',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca_es.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca_es.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca_es.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca_es.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'petó: dona, dona, pell molt fosca i pell morena',
     '👩🏿‍❤‍💋‍👩🏾' => 'petó: dona, dona, pell molt fosca i pell fosca',
     '👩🏿‍❤‍💋‍👩🏿' => 'petó: dona, dona i pell molt fosca',
+    '🧑🏻‍🫯‍🧑🏼' => 'persones que lluiten: pell molt clara i pell bastant clara',
+    '🧑🏻‍🫯‍🧑🏽' => 'persones que lluiten: pell molt clara i pell morena',
+    '🧑🏻‍🫯‍🧑🏾' => 'persones que lluiten: pell molt clara i pell fosca',
+    '🧑🏻‍🫯‍🧑🏿' => 'persones que lluiten: pell molt clara i pell molt fosca',
+    '🧑🏼‍🫯‍🧑🏻' => 'persones que lluiten: pell bastant clara i pell molt clara',
+    '🧑🏼‍🫯‍🧑🏽' => 'persones que lluiten: pell bastant clara i pell morena',
+    '🧑🏼‍🫯‍🧑🏾' => 'persones que lluiten: pell bastant clara i pell fosca',
+    '🧑🏼‍🫯‍🧑🏿' => 'persones que lluiten: pell bastant clara i pell molt fosca',
+    '🧑🏽‍🫯‍🧑🏻' => 'persones que lluiten: pell morena i pell molt clara',
+    '🧑🏽‍🫯‍🧑🏼' => 'persones que lluiten: pell morena i pell bastant clara',
+    '🧑🏽‍🫯‍🧑🏾' => 'persones que lluiten: pell morena i pell fosca',
+    '🧑🏽‍🫯‍🧑🏿' => 'persones que lluiten: pell morena i pell molt fosca',
+    '🧑🏾‍🫯‍🧑🏻' => 'persones que lluiten: pell fosca i pell molt clara',
+    '🧑🏾‍🫯‍🧑🏼' => 'persones que lluiten: pell fosca i pell bastant clara',
+    '🧑🏾‍🫯‍🧑🏽' => 'persones que lluiten: pell fosca i pell morena',
+    '🧑🏾‍🫯‍🧑🏿' => 'persones que lluiten: pell fosca i pell molt fosca',
+    '🧑🏿‍🫯‍🧑🏻' => 'persones que lluiten: pell molt fosca i pell molt clara',
+    '🧑🏿‍🫯‍🧑🏼' => 'persones que lluiten: pell molt fosca i pell bastant clara',
+    '🧑🏿‍🫯‍🧑🏽' => 'persones que lluiten: pell molt fosca i pell morena',
+    '🧑🏿‍🫯‍🧑🏾' => 'persones que lluiten: pell molt fosca i pell fosca',
     '🧑🏻‍❤‍🧑🏼' => 'parella amb un cor: persona, persona, pell molt clara i pell bastant clara',
     '🧑🏻‍❤‍🧑🏽' => 'parella amb un cor: persona, persona, pell molt clara i pell morena',
     '🧑🏻‍❤‍🧑🏾' => 'parella amb un cor: persona, persona, pell molt clara i pell fosca',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'parella amb un cor: persona, persona, pell molt fosca i pell bastant clara',
     '🧑🏿‍❤‍🧑🏽' => 'parella amb un cor: persona, persona, pell molt fosca i pell morena',
     '🧑🏿‍❤‍🧑🏾' => 'parella amb un cor: persona, persona, pell molt fosca i pell fosca',
+    '🧑🏻‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell molt clara i pell bastant clara',
+    '🧑🏻‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell molt clara i pell morena',
+    '🧑🏻‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell molt clara i pell fosca',
+    '🧑🏻‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell molt clara i pell molt fosca',
+    '🧑🏼‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell bastant clara i pell molt clara',
+    '🧑🏼‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell bastant clara i pell morena',
+    '🧑🏼‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell bastant clara i pell fosca',
+    '🧑🏼‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell bastant clara i pell molt fosca',
+    '🧑🏽‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell morena i pell molt clara',
+    '🧑🏽‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell morena i pell bastant clara',
+    '🧑🏽‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell morena i pell fosca',
+    '🧑🏽‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell morena i pell molt fosca',
+    '🧑🏾‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell fosca i pell molt clara',
+    '🧑🏾‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell fosca i pell bastant clara',
+    '🧑🏾‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell fosca i pell morena',
+    '🧑🏾‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell fosca i pell molt fosca',
+    '🧑🏿‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell molt fosca i pell molt clara',
+    '🧑🏿‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell molt fosca i pell bastant clara',
+    '🧑🏿‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell molt fosca i pell morena',
+    '🧑🏿‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell molt fosca i pell fosca',
+    '👨🏻‍🫯‍👨🏼' => 'jugadors de lluita: pell molt clara i pell bastant clara',
+    '👨🏻‍🫯‍👨🏽' => 'jugadors de lluita: pell molt clara i pell morena',
+    '👨🏻‍🫯‍👨🏾' => 'jugadors de lluita: pell molt clara i pell fosca',
+    '👨🏻‍🫯‍👨🏿' => 'jugadors de lluita: pell molt clara i pell molt fosca',
+    '👨🏼‍🫯‍👨🏻' => 'jugadors de lluita: pell bastant clara i pell molt clara',
+    '👨🏼‍🫯‍👨🏽' => 'jugadors de lluita: pell bastant clara i pell morena',
+    '👨🏼‍🫯‍👨🏾' => 'jugadors de lluita: pell bastant clara i pell fosca',
+    '👨🏼‍🫯‍👨🏿' => 'jugadors de lluita: pell bastant clara i pell molt fosca',
+    '👨🏽‍🫯‍👨🏻' => 'jugadors de lluita: pell morena i pell molt clara',
+    '👨🏽‍🫯‍👨🏼' => 'jugadors de lluita: pell morena i pell bastant clara',
+    '👨🏽‍🫯‍👨🏾' => 'jugadors de lluita: pell morena i pell fosca',
+    '👨🏽‍🫯‍👨🏿' => 'jugadors de lluita: pell morena i pell molt fosca',
+    '👨🏾‍🫯‍👨🏻' => 'jugadors de lluita: pell fosca i pell molt clara',
+    '👨🏾‍🫯‍👨🏼' => 'jugadors de lluita: pell fosca i pell bastant clara',
+    '👨🏾‍🫯‍👨🏽' => 'jugadors de lluita: pell fosca i pell morena',
+    '👨🏾‍🫯‍👨🏿' => 'jugadors de lluita: pell fosca i pell molt fosca',
+    '👨🏿‍🫯‍👨🏻' => 'jugadors de lluita: pell molt fosca i pell molt clara',
+    '👨🏿‍🫯‍👨🏼' => 'jugadors de lluita: pell molt fosca i pell bastant clara',
+    '👨🏿‍🫯‍👨🏽' => 'jugadors de lluita: pell molt fosca i pell morena',
+    '👨🏿‍🫯‍👨🏾' => 'jugadors de lluita: pell molt fosca i pell fosca',
     '👨🏻‍❤‍👨🏻' => 'parella amb un cor: home, home i pell molt clara',
     '👨🏻‍❤‍👨🏼' => 'parella amb un cor: home, home, pell molt clara i pell bastant clara',
     '👨🏻‍❤‍👨🏽' => 'parella amb un cor: home, home, pell molt clara i pell morena',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'parella amb un cor: home, home, pell molt fosca i pell morena',
     '👨🏿‍❤‍👨🏾' => 'parella amb un cor: home, home, pell molt fosca i pell fosca',
     '👨🏿‍❤‍👨🏿' => 'parella amb un cor: home, home i pell molt fosca',
+    '👨🏻‍🐰‍👨🏼' => 'homes que ballen disfressats: pell molt clara i pell bastant clara',
+    '👨🏻‍🐰‍👨🏽' => 'homes que ballen disfressats: pell molt clara i pell morena',
+    '👨🏻‍🐰‍👨🏾' => 'homes que ballen disfressats: pell molt clara i pell fosca',
+    '👨🏻‍🐰‍👨🏿' => 'homes que ballen disfressats: pell molt clara i pell molt fosca',
+    '👨🏼‍🐰‍👨🏻' => 'homes que ballen disfressats: pell bastant clara i pell molt clara',
+    '👨🏼‍🐰‍👨🏽' => 'homes que ballen disfressats: pell bastant clara i pell morena',
+    '👨🏼‍🐰‍👨🏾' => 'homes que ballen disfressats: pell bastant clara i pell fosca',
+    '👨🏼‍🐰‍👨🏿' => 'homes que ballen disfressats: pell bastant clara i pell molt fosca',
+    '👨🏽‍🐰‍👨🏻' => 'homes que ballen disfressats: pell morena i pell molt clara',
+    '👨🏽‍🐰‍👨🏼' => 'homes que ballen disfressats: pell morena i pell bastant clara',
+    '👨🏽‍🐰‍👨🏾' => 'homes que ballen disfressats: pell morena i pell fosca',
+    '👨🏽‍🐰‍👨🏿' => 'homes que ballen disfressats: pell morena i pell molt fosca',
+    '👨🏾‍🐰‍👨🏻' => 'homes que ballen disfressats: pell fosca i pell molt clara',
+    '👨🏾‍🐰‍👨🏼' => 'homes que ballen disfressats: pell fosca i pell bastant clara',
+    '👨🏾‍🐰‍👨🏽' => 'homes que ballen disfressats: pell fosca i pell morena',
+    '👨🏾‍🐰‍👨🏿' => 'homes que ballen disfressats: pell fosca i pell molt fosca',
+    '👨🏿‍🐰‍👨🏻' => 'homes que ballen disfressats: pell molt fosca i pell molt clara',
+    '👨🏿‍🐰‍👨🏼' => 'homes que ballen disfressats: pell molt fosca i pell bastant clara',
+    '👨🏿‍🐰‍👨🏽' => 'homes que ballen disfressats: pell molt fosca i pell morena',
+    '👨🏿‍🐰‍👨🏾' => 'homes que ballen disfressats: pell molt fosca i pell fosca',
+    '👩🏻‍🫯‍👩🏼' => 'jugadores de lluita: pell molt clara i pell bastant clara',
+    '👩🏻‍🫯‍👩🏽' => 'jugadores de lluita: pell molt clara i pell morena',
+    '👩🏻‍🫯‍👩🏾' => 'jugadores de lluita: pell molt clara i pell fosca',
+    '👩🏻‍🫯‍👩🏿' => 'jugadores de lluita: pell molt clara i pell molt fosca',
+    '👩🏼‍🫯‍👩🏻' => 'jugadores de lluita: pell bastant clara i pell molt clara',
+    '👩🏼‍🫯‍👩🏽' => 'jugadores de lluita: pell bastant clara i pell morena',
+    '👩🏼‍🫯‍👩🏾' => 'jugadores de lluita: pell bastant clara i pell fosca',
+    '👩🏼‍🫯‍👩🏿' => 'jugadores de lluita: pell bastant clara i pell molt fosca',
+    '👩🏽‍🫯‍👩🏻' => 'jugadores de lluita: pell morena i pell molt clara',
+    '👩🏽‍🫯‍👩🏼' => 'jugadores de lluita: pell morena i pell bastant clara',
+    '👩🏽‍🫯‍👩🏾' => 'jugadores de lluita: pell morena i pell fosca',
+    '👩🏽‍🫯‍👩🏿' => 'jugadores de lluita: pell morena i pell molt fosca',
+    '👩🏾‍🫯‍👩🏻' => 'jugadores de lluita: pell fosca i pell molt clara',
+    '👩🏾‍🫯‍👩🏼' => 'jugadores de lluita: pell fosca i pell bastant clara',
+    '👩🏾‍🫯‍👩🏽' => 'jugadores de lluita: pell fosca i pell morena',
+    '👩🏾‍🫯‍👩🏿' => 'jugadores de lluita: pell fosca i pell molt fosca',
+    '👩🏿‍🫯‍👩🏻' => 'jugadores de lluita: pell molt fosca i pell molt clara',
+    '👩🏿‍🫯‍👩🏼' => 'jugadores de lluita: pell molt fosca i pell bastant clara',
+    '👩🏿‍🫯‍👩🏽' => 'jugadores de lluita: pell molt fosca i pell morena',
+    '👩🏿‍🫯‍👩🏾' => 'jugadores de lluita: pell molt fosca i pell fosca',
     '👩🏻‍❤‍👨🏻' => 'parella amb un cor: dona, home i pell molt clara',
     '👩🏻‍❤‍👨🏼' => 'parella amb un cor: dona, home, pell molt clara i pell bastant clara',
     '👩🏻‍❤‍👨🏽' => 'parella amb un cor: dona, home, pell molt clara i pell morena',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'parella amb un cor: dona, dona, pell molt fosca i pell morena',
     '👩🏿‍❤‍👩🏾' => 'parella amb un cor: dona, dona, pell molt fosca i pell fosca',
     '👩🏿‍❤‍👩🏿' => 'parella amb un cor: dona, dona i pell molt fosca',
+    '👩🏻‍🐰‍👩🏼' => 'dones que ballen disfressades: pell molt clara i pell bastant clara',
+    '👩🏻‍🐰‍👩🏽' => 'dones que ballen disfressades: pell molt clara i pell morena',
+    '👩🏻‍🐰‍👩🏾' => 'dones que ballen disfressades: pell molt clara i pell fosca',
+    '👩🏻‍🐰‍👩🏿' => 'dones que ballen disfressades: pell molt clara i pell molt fosca',
+    '👩🏼‍🐰‍👩🏻' => 'dones que ballen disfressades: pell bastant clara i pell molt clara',
+    '👩🏼‍🐰‍👩🏽' => 'dones que ballen disfressades: pell bastant clara i pell morena',
+    '👩🏼‍🐰‍👩🏾' => 'dones que ballen disfressades: pell bastant clara i pell fosca',
+    '👩🏼‍🐰‍👩🏿' => 'dones que ballen disfressades: pell bastant clara i pell molt fosca',
+    '👩🏽‍🐰‍👩🏻' => 'dones que ballen disfressades: pell morena i pell molt clara',
+    '👩🏽‍🐰‍👩🏼' => 'dones que ballen disfressades: pell morena i pell bastant clara',
+    '👩🏽‍🐰‍👩🏾' => 'dones que ballen disfressades: pell morena i pell fosca',
+    '👩🏽‍🐰‍👩🏿' => 'dones que ballen disfressades: pell morena i pell molt fosca',
+    '👩🏾‍🐰‍👩🏻' => 'dones que ballen disfressades: pell fosca i pell molt clara',
+    '👩🏾‍🐰‍👩🏼' => 'dones que ballen disfressades: pell fosca i pell bastant clara',
+    '👩🏾‍🐰‍👩🏽' => 'dones que ballen disfressades: pell fosca i pell morena',
+    '👩🏾‍🐰‍👩🏿' => 'dones que ballen disfressades: pell fosca i pell molt fosca',
+    '👩🏿‍🐰‍👩🏻' => 'dones que ballen disfressades: pell molt fosca i pell molt clara',
+    '👩🏿‍🐰‍👩🏼' => 'dones que ballen disfressades: pell molt fosca i pell bastant clara',
+    '👩🏿‍🐰‍👩🏽' => 'dones que ballen disfressades: pell molt fosca i pell morena',
+    '👩🏿‍🐰‍👩🏾' => 'dones que ballen disfressades: pell molt fosca i pell fosca',
     '🧑🏻‍🤝‍🧑🏻' => 'persones que s’agafen de la mà: pell molt clara',
     '🧑🏻‍🤝‍🧑🏼' => 'persones que s’agafen de la mà: pell molt clara i pell bastant clara',
     '🧑🏻‍🤝‍🧑🏽' => 'persones que s’agafen de la mà: pell molt clara i pell morena',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bandera: Escòcia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bandera: Gal·les',
     '🧑‍🧑‍🧒‍🧒' => 'família: adult, adult, infant, infant',
-    '🚶🏻‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏼‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏽‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏾‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏿‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏻‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏼‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏽‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏾‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏿‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🧎🏻‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏼‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏽‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏾‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏿‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏻‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏼‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏽‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏾‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏿‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧑🏻‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏼‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏽‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏾‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏿‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '👨🏻‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏼‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏽‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏾‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏿‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👩🏻‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏼‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏽‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏾‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏿‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏻‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏼‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏽‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏾‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏿‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏻‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏼‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏽‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏾‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏿‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏻‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏼‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏽‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏾‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏿‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏻‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏼‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏽‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏾‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏿‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '👨🏻‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏼‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏽‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏾‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏿‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👩🏻‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏼‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏽‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏾‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏿‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '🏃🏻‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏼‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏽‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏾‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏿‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏻‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏼‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏽‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏾‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏿‍♂‍➡' => 'home que corre que mira a la dreta',
+    '🚶🏻‍♀‍➡' => 'dona que camina: pell molt clara i que mira a la dreta',
+    '🚶🏼‍♀‍➡' => 'dona que camina: pell bastant clara i que mira a la dreta',
+    '🚶🏽‍♀‍➡' => 'dona que camina: pell morena i que mira a la dreta',
+    '🚶🏾‍♀‍➡' => 'dona que camina: pell fosca i que mira a la dreta',
+    '🚶🏿‍♀‍➡' => 'dona que camina: pell molt fosca i que mira a la dreta',
+    '🚶🏻‍♂‍➡' => 'home que camina: pell molt clara i que mira a la dreta',
+    '🚶🏼‍♂‍➡' => 'home que camina: pell bastant clara i que mira a la dreta',
+    '🚶🏽‍♂‍➡' => 'home que camina: pell morena i que mira a la dreta',
+    '🚶🏾‍♂‍➡' => 'home que camina: pell fosca i que mira a la dreta',
+    '🚶🏿‍♂‍➡' => 'home que camina: pell molt fosca i que mira a la dreta',
+    '🧎🏻‍♀‍➡' => 'dona agenollada: pell molt clara i que mira a la dreta',
+    '🧎🏼‍♀‍➡' => 'dona agenollada: pell bastant clara i que mira a la dreta',
+    '🧎🏽‍♀‍➡' => 'dona agenollada: pell morena i que mira a la dreta',
+    '🧎🏾‍♀‍➡' => 'dona agenollada: pell fosca i que mira a la dreta',
+    '🧎🏿‍♀‍➡' => 'dona agenollada: pell molt fosca i que mira a la dreta',
+    '🧎🏻‍♂‍➡' => 'home agenollat: pell molt clara i que mira a la dreta',
+    '🧎🏼‍♂‍➡' => 'home agenollat: pell bastant clara i que mira a la dreta',
+    '🧎🏽‍♂‍➡' => 'home agenollat: pell morena i que mira a la dreta',
+    '🧎🏾‍♂‍➡' => 'home agenollat: pell fosca i que mira a la dreta',
+    '🧎🏿‍♂‍➡' => 'home agenollat: pell molt fosca i que mira a la dreta',
+    '🧑🏻‍🦯‍➡' => 'persona amb un bastó per a invidents: pell molt clara i que mira a la dreta',
+    '🧑🏼‍🦯‍➡' => 'persona amb un bastó per a invidents: pell bastant clara i que mira a la dreta',
+    '🧑🏽‍🦯‍➡' => 'persona amb un bastó per a invidents: pell morena i que mira a la dreta',
+    '🧑🏾‍🦯‍➡' => 'persona amb un bastó per a invidents: pell fosca i que mira a la dreta',
+    '🧑🏿‍🦯‍➡' => 'persona amb un bastó per a invidents: pell molt fosca i que mira a la dreta',
+    '👨🏻‍🦯‍➡' => 'home amb un bastó per a invidents: pell molt clara i que mira a la dreta',
+    '👨🏼‍🦯‍➡' => 'home amb un bastó per a invidents: pell bastant clara i que mira a la dreta',
+    '👨🏽‍🦯‍➡' => 'home amb un bastó per a invidents: pell morena i que mira a la dreta',
+    '👨🏾‍🦯‍➡' => 'home amb un bastó per a invidents: pell fosca i que mira a la dreta',
+    '👨🏿‍🦯‍➡' => 'home amb un bastó per a invidents: pell molt fosca i que mira a la dreta',
+    '👩🏻‍🦯‍➡' => 'dona amb un bastó per a invidents: pell molt clara i que mira a la dreta',
+    '👩🏼‍🦯‍➡' => 'dona amb un bastó per a invidents: pell bastant clara i que mira a la dreta',
+    '👩🏽‍🦯‍➡' => 'dona amb un bastó per a invidents: pell morena i que mira a la dreta',
+    '👩🏾‍🦯‍➡' => 'dona amb un bastó per a invidents: pell fosca i que mira a la dreta',
+    '👩🏿‍🦯‍➡' => 'dona amb un bastó per a invidents: pell molt fosca i que mira a la dreta',
+    '🧑🏻‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell molt clara i que mira a la dreta',
+    '🧑🏼‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell bastant clara i que mira a la dreta',
+    '🧑🏽‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell morena i que mira a la dreta',
+    '🧑🏾‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell fosca i que mira a la dreta',
+    '🧑🏿‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell molt fosca i que mira a la dreta',
+    '👨🏻‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell molt clara i que mira a la dreta',
+    '👨🏼‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell bastant clara i que mira a la dreta',
+    '👨🏽‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell morena i que mira a la dreta',
+    '👨🏾‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell fosca i que mira a la dreta',
+    '👨🏿‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell molt fosca i que mira a la dreta',
+    '👩🏻‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell molt clara i que mira a la dreta',
+    '👩🏼‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell bastant clara i que mira a la dreta',
+    '👩🏽‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell morena i que mira a la dreta',
+    '👩🏾‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell fosca i que mira a la dreta',
+    '👩🏿‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell molt fosca i que mira a la dreta',
+    '🧑🏻‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell molt clara i que mira a la dreta',
+    '🧑🏼‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell bastant clara i que mira a la dreta',
+    '🧑🏽‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell morena i que mira a la dreta',
+    '🧑🏾‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell fosca i que mira a la dreta',
+    '🧑🏿‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell molt fosca i que mira a la dreta',
+    '👨🏻‍🦽‍➡' => 'home amb una cadira de rodes manual: pell molt clara i que mira a la dreta',
+    '👨🏼‍🦽‍➡' => 'home amb una cadira de rodes manual: pell bastant clara i que mira a la dreta',
+    '👨🏽‍🦽‍➡' => 'home amb una cadira de rodes manual: pell morena i que mira a la dreta',
+    '👨🏾‍🦽‍➡' => 'home amb una cadira de rodes manual: pell fosca i que mira a la dreta',
+    '👨🏿‍🦽‍➡' => 'home amb una cadira de rodes manual: pell molt fosca i que mira a la dreta',
+    '👩🏻‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell molt clara i que mira a la dreta',
+    '👩🏼‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell bastant clara i que mira a la dreta',
+    '👩🏽‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell morena i que mira a la dreta',
+    '👩🏾‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell fosca i que mira a la dreta',
+    '👩🏿‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell molt fosca i que mira a la dreta',
+    '🏃🏻‍♀‍➡' => 'dona que corre: pell molt clara i que mira a la dreta',
+    '🏃🏼‍♀‍➡' => 'dona que corre: pell bastant clara i que mira a la dreta',
+    '🏃🏽‍♀‍➡' => 'dona que corre: pell morena i que mira a la dreta',
+    '🏃🏾‍♀‍➡' => 'dona que corre: pell fosca i que mira a la dreta',
+    '🏃🏿‍♀‍➡' => 'dona que corre: pell molt fosca i que mira a la dreta',
+    '🏃🏻‍♂‍➡' => 'home que corre: pell molt clara i que mira a la dreta',
+    '🏃🏼‍♂‍➡' => 'home que corre: pell bastant clara i que mira a la dreta',
+    '🏃🏽‍♂‍➡' => 'home que corre: pell morena i que mira a la dreta',
+    '🏃🏾‍♂‍➡' => 'home que corre: pell fosca i que mira a la dreta',
+    '🏃🏿‍♂‍➡' => 'home que corre: pell molt fosca i que mira a la dreta',
     '🫱🏻‍🫲🏼' => 'encaixada de mans: pell molt clara i pell bastant clara',
     '🫱🏻‍🫲🏽' => 'encaixada de mans: pell molt clara i pell morena',
     '🫱🏻‍🫲🏾' => 'encaixada de mans: pell molt clara i pell fosca',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'encaixada de mans: pell molt fosca i pell bastant clara',
     '🫱🏿‍🫲🏽' => 'encaixada de mans: pell molt fosca i pell morena',
     '🫱🏿‍🫲🏾' => 'encaixada de mans: pell molt fosca i pell fosca',
-    '🚶‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🧎‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧑‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '👨‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👩‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '🧑‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '👨‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👩‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '🏃‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃‍♂‍➡' => 'home que corre que mira a la dreta',
+    '🚶‍♀‍➡' => 'dona que camina: que mira a la dreta',
+    '🚶‍♂‍➡' => 'home que camina: que mira a la dreta',
+    '🧎‍♀‍➡' => 'dona agenollada: que mira a la dreta',
+    '🧎‍♂‍➡' => 'home agenollat: que mira a la dreta',
+    '🧑‍🦯‍➡' => 'persona amb un bastó per a invidents: que mira a la dreta',
+    '👨‍🦯‍➡' => 'home amb un bastó per a invidents: que mira a la dreta',
+    '👩‍🦯‍➡' => 'dona amb un bastó per a invidents: que mira a la dreta',
+    '🧑‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: que mira a la dreta',
+    '👨‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: que mira a la dreta',
+    '👩‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: que mira a la dreta',
+    '🧑‍🦽‍➡' => 'persona amb una cadira de rodes manual: que mira a la dreta',
+    '👨‍🦽‍➡' => 'home amb una cadira de rodes manual: que mira a la dreta',
+    '👩‍🦽‍➡' => 'dona amb una cadira de rodes manual: que mira a la dreta',
+    '🏃‍♀‍➡' => 'dona que corre: que mira a la dreta',
+    '🏃‍♂‍➡' => 'home que corre: que mira a la dreta',
     '👩‍❤‍👨' => 'parella amb un cor: dona i home',
     '👨‍❤‍👨' => 'parella amb un cor: home i home',
     '👩‍❤‍👩' => 'parella amb un cor: dona i dona',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'persona: pell morena i calvície',
     '🧑🏾‍🦲' => 'persona: pell fosca i calvície',
     '🧑🏿‍🦲' => 'persona: pell molt fosca i calvície',
+    '🧑🏻‍🩰' => 'ballarí de ballet: pell molt clara',
+    '🧑🏼‍🩰' => 'ballarí de ballet: pell bastant clara',
+    '🧑🏽‍🩰' => 'ballarí de ballet: pell morena',
+    '🧑🏾‍🩰' => 'ballarí de ballet: pell fosca',
+    '🧑🏿‍🩰' => 'ballarí de ballet: pell molt fosca',
     '🧔🏻‍♂' => 'home: pell molt clara i barba',
     '🧔🏼‍♂' => 'home: pell bastant clara i barba',
     '🧔🏽‍♂' => 'home: pell morena i barba',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'dona que camina: pell morena',
     '🚶🏾‍♀' => 'dona que camina: pell fosca',
     '🚶🏿‍♀' => 'dona que camina: pell molt fosca',
-    '🚶🏻‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏼‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏽‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏾‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏿‍➡' => 'persona que camina que mira a la dreta',
+    '🚶🏻‍➡' => 'persona que camina: pell molt clara i que mira a la dreta',
+    '🚶🏼‍➡' => 'persona que camina: pell bastant clara i que mira a la dreta',
+    '🚶🏽‍➡' => 'persona que camina: pell morena i que mira a la dreta',
+    '🚶🏾‍➡' => 'persona que camina: pell fosca i que mira a la dreta',
+    '🚶🏿‍➡' => 'persona que camina: pell molt fosca i que mira a la dreta',
     '🧍🏻‍♂' => 'home dret: pell molt clara',
     '🧍🏼‍♂' => 'home dret: pell bastant clara',
     '🧍🏽‍♂' => 'home dret: pell morena',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'dona agenollada: pell morena',
     '🧎🏾‍♀' => 'dona agenollada: pell fosca',
     '🧎🏿‍♀' => 'dona agenollada: pell molt fosca',
-    '🧎🏻‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏼‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏽‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏾‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏿‍➡' => 'persona agenollada que mira a la dreta',
+    '🧎🏻‍➡' => 'persona agenollada: pell molt clara i que mira a la dreta',
+    '🧎🏼‍➡' => 'persona agenollada: pell bastant clara i que mira a la dreta',
+    '🧎🏽‍➡' => 'persona agenollada: pell morena i que mira a la dreta',
+    '🧎🏾‍➡' => 'persona agenollada: pell fosca i que mira a la dreta',
+    '🧎🏿‍➡' => 'persona agenollada: pell molt fosca i que mira a la dreta',
     '🧑🏻‍🦯' => 'persona amb un bastó per a invidents: pell molt clara',
     '🧑🏼‍🦯' => 'persona amb un bastó per a invidents: pell bastant clara',
     '🧑🏽‍🦯' => 'persona amb un bastó per a invidents: pell morena',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'dona que corre: pell morena',
     '🏃🏾‍♀' => 'dona que corre: pell fosca',
     '🏃🏿‍♀' => 'dona que corre: pell molt fosca',
-    '🏃🏻‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏼‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏽‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏾‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏿‍➡' => 'persona que corre que mira a la dreta',
+    '🏃🏻‍➡' => 'persona que corre: pell molt clara i que mira a la dreta',
+    '🏃🏼‍➡' => 'persona que corre: pell bastant clara i que mira a la dreta',
+    '🏃🏽‍➡' => 'persona que corre: pell morena i que mira a la dreta',
+    '🏃🏾‍➡' => 'persona que corre: pell fosca i que mira a la dreta',
+    '🏃🏿‍➡' => 'persona que corre: pell molt fosca i que mira a la dreta',
+    '👯🏻‍♀' => 'dones que ballen disfressades: pell molt clara',
+    '👯🏼‍♀' => 'dones que ballen disfressades: pell bastant clara',
+    '👯🏽‍♀' => 'dones que ballen disfressades: pell morena',
+    '👯🏾‍♀' => 'dones que ballen disfressades: pell fosca',
+    '👯🏿‍♀' => 'dones que ballen disfressades: pell molt fosca',
+    '👯🏻‍♂' => 'homes que ballen disfressats: pell molt clara',
+    '👯🏼‍♂' => 'homes que ballen disfressats: pell bastant clara',
+    '👯🏽‍♂' => 'homes que ballen disfressats: pell morena',
+    '👯🏾‍♂' => 'homes que ballen disfressats: pell fosca',
+    '👯🏿‍♂' => 'homes que ballen disfressats: pell molt fosca',
     '🧖🏻‍♂' => 'home a la sauna: pell molt clara',
     '🧖🏼‍♂' => 'home a la sauna: pell bastant clara',
     '🧖🏽‍♂' => 'home a la sauna: pell morena',
@@ -1190,16 +1325,16 @@
     '⛹🏽‍♀' => 'dona amb una pilota: pell morena',
     '⛹🏾‍♀' => 'dona amb una pilota: pell fosca',
     '⛹🏿‍♀' => 'dona amb una pilota: pell molt fosca',
-    '🏋🏻‍♂' => 'home que aixeca peses: pell molt clara',
-    '🏋🏼‍♂' => 'home que aixeca peses: pell bastant clara',
-    '🏋🏽‍♂' => 'home que aixeca peses: pell morena',
-    '🏋🏾‍♂' => 'home que aixeca peses: pell fosca',
-    '🏋🏿‍♂' => 'home que aixeca peses: pell molt fosca',
-    '🏋🏻‍♀' => 'dona que aixeca peses: pell molt clara',
-    '🏋🏼‍♀' => 'dona que aixeca peses: pell bastant clara',
-    '🏋🏽‍♀' => 'dona que aixeca peses: pell morena',
-    '🏋🏾‍♀' => 'dona que aixeca peses: pell fosca',
-    '🏋🏿‍♀' => 'dona que aixeca peses: pell molt fosca',
+    '🏋🏻‍♂' => 'home que aixeca pesos: pell molt clara',
+    '🏋🏼‍♂' => 'home que aixeca pesos: pell bastant clara',
+    '🏋🏽‍♂' => 'home que aixeca pesos: pell morena',
+    '🏋🏾‍♂' => 'home que aixeca pesos: pell fosca',
+    '🏋🏿‍♂' => 'home que aixeca pesos: pell molt fosca',
+    '🏋🏻‍♀' => 'dona que aixeca pesos: pell molt clara',
+    '🏋🏼‍♀' => 'dona que aixeca pesos: pell bastant clara',
+    '🏋🏽‍♀' => 'dona que aixeca pesos: pell morena',
+    '🏋🏾‍♀' => 'dona que aixeca pesos: pell fosca',
+    '🏋🏿‍♀' => 'dona que aixeca pesos: pell molt fosca',
     '🚴🏻‍♂' => 'ciclista home: pell molt clara',
     '🚴🏼‍♂' => 'ciclista home: pell bastant clara',
     '🚴🏽‍♂' => 'ciclista home: pell morena',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'dona que fa la roda: pell morena',
     '🤸🏾‍♀' => 'dona que fa la roda: pell fosca',
     '🤸🏿‍♀' => 'dona que fa la roda: pell molt fosca',
+    '🤼🏻‍♀' => 'jugadores de lluita: pell molt clara',
+    '🤼🏼‍♀' => 'jugadores de lluita: pell bastant clara',
+    '🤼🏽‍♀' => 'jugadores de lluita: pell morena',
+    '🤼🏾‍♀' => 'jugadores de lluita: pell fosca',
+    '🤼🏿‍♀' => 'jugadores de lluita: pell molt fosca',
+    '🤼🏻‍♂' => 'jugadors de lluita: pell molt clara',
+    '🤼🏼‍♂' => 'jugadors de lluita: pell bastant clara',
+    '🤼🏽‍♂' => 'jugadors de lluita: pell morena',
+    '🤼🏾‍♂' => 'jugadors de lluita: pell fosca',
+    '🤼🏿‍♂' => 'jugadors de lluita: pell molt fosca',
     '🤽🏻‍♂' => 'jugador de waterpolo: pell molt clara',
     '🤽🏼‍♂' => 'jugador de waterpolo: pell bastant clara',
     '🤽🏽‍♂' => 'jugador de waterpolo: pell morena',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'dona: cabells arrissats',
     '👩‍🦳' => 'dona: cabells blancs',
     '👩‍🦲' => 'dona: calvície',
-    '🚶‍➡' => 'persona que camina que mira a la dreta',
-    '🧎‍➡' => 'persona agenollada que mira a la dreta',
-    '🏃‍➡' => 'persona que corre que mira a la dreta',
+    '🚶‍➡' => 'persona que camina: que mira a la dreta',
+    '🧎‍➡' => 'persona agenollada: que mira a la dreta',
+    '🏃‍➡' => 'persona que corre: que mira a la dreta',
     '👨‍👦' => 'família: home i noi',
     '👨‍👧' => 'família: home i noia',
     '👩‍👦' => 'família: dona i noi',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'dona amb una cadira de rodes manual',
     '🏃‍♂' => 'home que corre',
     '🏃‍♀' => 'dona que corre',
+    '🧑‍🩰' => 'ballarí de ballet',
     '👯‍♂' => 'homes que ballen disfressats',
     '👯‍♀' => 'dones que ballen disfressades',
     '🧖‍♂' => 'home a la sauna',
@@ -1441,8 +1587,8 @@
     '🏊‍♀' => 'dona que neda',
     '⛹‍♂' => 'home amb una pilota',
     '⛹‍♀' => 'dona amb una pilota',
-    '🏋‍♂' => 'home que aixeca peses',
-    '🏋‍♀' => 'dona que aixeca peses',
+    '🏋‍♂' => 'home que aixeca pesos',
+    '🏋‍♀' => 'dona que aixeca pesos',
     '🚴‍♂' => 'ciclista home',
     '🚴‍♀' => 'ciclista dona',
     '🚵‍♂' => 'ciclista de muntanya home',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'home de negocis que levita: pell morena',
     '🕴🏾' => 'home de negocis que levita: pell fosca',
     '🕴🏿' => 'home de negocis que levita: pell molt fosca',
+    '👯🏻' => 'persones que ballen disfressades: pell molt clara',
+    '👯🏼' => 'persones que ballen disfressades: pell bastant clara',
+    '👯🏽' => 'persones que ballen disfressades: pell morena',
+    '👯🏾' => 'persones que ballen disfressades: pell fosca',
+    '👯🏿' => 'persones que ballen disfressades: pell molt fosca',
     '🧖🏻' => 'persona a la sauna: pell molt clara',
     '🧖🏼' => 'persona a la sauna: pell bastant clara',
     '🧖🏽' => 'persona a la sauna: pell morena',
@@ -2051,11 +2202,11 @@
     '⛹🏽' => 'persona amb una pilota: pell morena',
     '⛹🏾' => 'persona amb una pilota: pell fosca',
     '⛹🏿' => 'persona amb una pilota: pell molt fosca',
-    '🏋🏻' => 'persona que aixeca peses: pell molt clara',
-    '🏋🏼' => 'persona que aixeca peses: pell bastant clara',
-    '🏋🏽' => 'persona que aixeca peses: pell morena',
-    '🏋🏾' => 'persona que aixeca peses: pell fosca',
-    '🏋🏿' => 'persona que aixeca peses: pell molt fosca',
+    '🏋🏻' => 'persona que aixeca pesos: pell molt clara',
+    '🏋🏼' => 'persona que aixeca pesos: pell bastant clara',
+    '🏋🏽' => 'persona que aixeca pesos: pell morena',
+    '🏋🏾' => 'persona que aixeca pesos: pell fosca',
+    '🏋🏿' => 'persona que aixeca pesos: pell molt fosca',
     '🚴🏻' => 'ciclista: pell molt clara',
     '🚴🏼' => 'ciclista: pell bastant clara',
     '🚴🏽' => 'ciclista: pell morena',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persona que fa la roda: pell morena',
     '🤸🏾' => 'persona que fa la roda: pell fosca',
     '🤸🏿' => 'persona que fa la roda: pell molt fosca',
+    '🤼🏻' => 'persones que lluiten: pell molt clara',
+    '🤼🏼' => 'persones que lluiten: pell bastant clara',
+    '🤼🏽' => 'persones que lluiten: pell morena',
+    '🤼🏾' => 'persones que lluiten: pell fosca',
+    '🤼🏿' => 'persones que lluiten: pell molt fosca',
     '🤽🏻' => 'persona que juga a waterpolo: pell molt clara',
     '🤽🏼' => 'persona que juga a waterpolo: pell bastant clara',
     '🤽🏽' => 'persona que juga a waterpolo: pell morena',
@@ -2391,13 +2547,6 @@
     '🏽' => 'pell morena',
     '🏾' => 'pell fosca',
     '🏿' => 'pell molt fosca',
-    '🪉' => 'arpa',
-    '🪏' => 'pala',
-    '🪾' => 'arbre sense fulles',
-    '🫆' => 'empremta dactilar',
-    '🫜' => 'tubercle',
-    '🫟' => 'esquitx',
-    '🫩' => 'cara ullerosa',
     '😀' => 'cara molt somrient',
     '😃' => 'cara molt somrient amb els ulls ben oberts',
     '😄' => 'cara amb rialla i els ulls somrients',
@@ -2451,6 +2600,7 @@
     '😪' => 'cara de son',
     '🤤' => 'cara que baveja',
     '😴' => 'cara de dormir',
+    '🫩' => 'cara ullerosa',
     '😷' => 'cara amb mascareta',
     '🤒' => 'cara amb termòmetre',
     '🤕' => 'cara amb el cap embenat',
@@ -2477,6 +2627,7 @@
     '😯' => 'cara de sorpresa',
     '😲' => 'cara estupefacta',
     '😳' => 'cara enrojolada',
+    '🫪' => 'cara distorsionada',
     '🥺' => 'cara de súplica',
     '🥹' => 'cara que s’aguanta les llàgrimes',
     '😦' => 'cara emmurriada amb la boca oberta',
@@ -2548,6 +2699,7 @@
     '💋' => 'marca de petó',
     '💯' => '100 punts',
     '💢' => 'símbol d’enuig',
+    '🫯' => 'núvol de baralla',
     '💥' => 'col·lisió',
     '💫' => 'mareig',
     '💦' => 'gotes de suor',
@@ -2671,6 +2823,7 @@
     '🧞' => 'geni',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'criatura peluda',
     '💆' => 'persona que rep un massatge al cap',
     '💇' => 'persona que es talla els cabells',
     '🚶' => 'persona que camina',
@@ -2692,7 +2845,7 @@
     '🚣' => 'persona que rema en una barca',
     '🏊' => 'persona que neda',
     '⛹' => 'persona amb una pilota',
-    '🏋' => 'persona que aixeca peses',
+    '🏋' => 'persona que aixeca pesos',
     '🚴' => 'ciclista',
     '🚵' => 'ciclista de muntanya',
     '🤸' => 'persona que fa la roda',
@@ -2714,6 +2867,7 @@
     '🫂' => 'persones que s’abracen',
     '👪' => 'família',
     '👣' => 'petjades',
+    '🫆' => 'empremta dactilar',
     '🦰' => 'cabells vermells',
     '🦱' => 'cabells arrissats',
     '🦳' => 'cabells blancs',
@@ -2813,6 +2967,7 @@
     '🐳' => 'balena que treu aigua',
     '🐋' => 'balena',
     '🐬' => 'dofí',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'peix',
     '🐠' => 'peix tropical',
@@ -2822,6 +2977,11 @@
     '🐚' => 'cargol de mar',
     '🪸' => 'corall',
     '🪼' => 'medusa',
+    '🦀' => 'cranc',
+    '🦞' => 'llagosta',
+    '🦐' => 'gamba',
+    '🦑' => 'calamar',
+    '🦪' => 'ostra',
     '🐌' => 'cargol',
     '🦋' => 'papallona',
     '🐛' => 'eruga',
@@ -2866,6 +3026,7 @@
     '🪹' => 'niu buit',
     '🪺' => 'niu amb ous',
     '🍄' => 'bolet',
+    '🪾' => 'arbre sense fulles',
     '🍇' => 'raïm',
     '🍈' => 'meló',
     '🍉' => 'síndria',
@@ -2902,6 +3063,7 @@
     '🌰' => 'castanya',
     '🫚' => 'arrel de gingebre',
     '🫛' => 'beina de pèsol',
+    '🫜' => 'tubercle',
     '🍞' => 'pa',
     '🥐' => 'croissant',
     '🥖' => 'baguet',
@@ -2953,11 +3115,6 @@
     '🥟' => 'cresta xinesa',
     '🥠' => 'galeta de la sort',
     '🥡' => 'menjar per emportar',
-    '🦀' => 'cranc',
-    '🦞' => 'llagosta',
-    '🦐' => 'gamba',
-    '🦑' => 'calamar',
-    '🦪' => 'ostra',
     '🍦' => 'gelat de màquina',
     '🍧' => 'granissat',
     '🍨' => 'gelat',
@@ -3008,6 +3165,7 @@
     '🧭' => 'brúixola',
     '🏔' => 'muntanya amb neu al cim',
     '⛰' => 'muntanya',
+    '🛘' => 'esllevissada',
     '🌋' => 'volcà',
     '🗻' => 'mont Fuji',
     '🏕' => 'acampada',
@@ -3368,16 +3526,18 @@
     '🎧' => 'auricular',
     '📻' => 'ràdio',
     '🎷' => 'saxofon',
+    '🎺' => 'trompeta',
+    '🪊' => 'trombó',
     '🪗' => 'acordió',
     '🎸' => 'guitarra',
     '🎹' => 'teclat musical',
-    '🎺' => 'trompeta',
     '🎻' => 'violí',
     '🪕' => 'banjo',
     '🥁' => 'tambor',
     '🪘' => 'conga',
     '🪇' => 'maraques',
     '🪈' => 'flauta',
+    '🪉' => 'arpa',
     '📱' => 'telèfon mòbil',
     '📲' => 'telèfon mòbil amb fletxa',
     '☎' => 'telèfon',
@@ -3431,8 +3591,9 @@
     '📑' => 'marcadors',
     '🔖' => 'punt de llibre',
     '🏷' => 'etiqueta',
-    '💰' => 'bossa de diners',
     '🪙' => 'moneda',
+    '💰' => 'bossa de diners',
+    '🪎' => 'bagul del tresor',
     '💴' => 'bitllets de ien',
     '💵' => 'bitllets de dòlar',
     '💶' => 'bitllets d’euro',
@@ -3473,7 +3634,7 @@
     '📈' => 'gràfic d’augment',
     '📉' => 'gràfic de disminució',
     '📊' => 'gràfic de barres',
-    '📋' => 'porta-retalls',
+    '📋' => 'portanotes',
     '📌' => 'xinxeta',
     '📍' => 'xinxeta rodona',
     '📎' => 'clip',
@@ -3515,6 +3676,7 @@
     '🧰' => 'caixa d’eines',
     '🧲' => 'imant',
     '🪜' => 'escala de mà',
+    '🪏' => 'pala',
     '⚗' => 'alambí',
     '🧪' => 'tub d’assaig',
     '🧫' => 'placa de Petri',
@@ -3698,6 +3860,7 @@
     '✴' => 'estrella de vuit puntes',
     '❇' => 'espurna',
     '™' => 'marca comercial',
+    '🫟' => 'esquitx',
     '🔠' => 'botó de lletres llatines en majúscules',
     '🔡' => 'botó de lletres llatines en minúscules',
     '🔢' => 'botó de números',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca_es_valencia.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca_es_valencia.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca_es_valencia.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca_es_valencia.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'petó: dona, dona, pell molt fosca i pell morena',
     '👩🏿‍❤‍💋‍👩🏾' => 'petó: dona, dona, pell molt fosca i pell fosca',
     '👩🏿‍❤‍💋‍👩🏿' => 'petó: dona, dona i pell molt fosca',
+    '🧑🏻‍🫯‍🧑🏼' => 'persones que lluiten: pell molt clara i pell bastant clara',
+    '🧑🏻‍🫯‍🧑🏽' => 'persones que lluiten: pell molt clara i pell morena',
+    '🧑🏻‍🫯‍🧑🏾' => 'persones que lluiten: pell molt clara i pell fosca',
+    '🧑🏻‍🫯‍🧑🏿' => 'persones que lluiten: pell molt clara i pell molt fosca',
+    '🧑🏼‍🫯‍🧑🏻' => 'persones que lluiten: pell bastant clara i pell molt clara',
+    '🧑🏼‍🫯‍🧑🏽' => 'persones que lluiten: pell bastant clara i pell morena',
+    '🧑🏼‍🫯‍🧑🏾' => 'persones que lluiten: pell bastant clara i pell fosca',
+    '🧑🏼‍🫯‍🧑🏿' => 'persones que lluiten: pell bastant clara i pell molt fosca',
+    '🧑🏽‍🫯‍🧑🏻' => 'persones que lluiten: pell morena i pell molt clara',
+    '🧑🏽‍🫯‍🧑🏼' => 'persones que lluiten: pell morena i pell bastant clara',
+    '🧑🏽‍🫯‍🧑🏾' => 'persones que lluiten: pell morena i pell fosca',
+    '🧑🏽‍🫯‍🧑🏿' => 'persones que lluiten: pell morena i pell molt fosca',
+    '🧑🏾‍🫯‍🧑🏻' => 'persones que lluiten: pell fosca i pell molt clara',
+    '🧑🏾‍🫯‍🧑🏼' => 'persones que lluiten: pell fosca i pell bastant clara',
+    '🧑🏾‍🫯‍🧑🏽' => 'persones que lluiten: pell fosca i pell morena',
+    '🧑🏾‍🫯‍🧑🏿' => 'persones que lluiten: pell fosca i pell molt fosca',
+    '🧑🏿‍🫯‍🧑🏻' => 'persones que lluiten: pell molt fosca i pell molt clara',
+    '🧑🏿‍🫯‍🧑🏼' => 'persones que lluiten: pell molt fosca i pell bastant clara',
+    '🧑🏿‍🫯‍🧑🏽' => 'persones que lluiten: pell molt fosca i pell morena',
+    '🧑🏿‍🫯‍🧑🏾' => 'persones que lluiten: pell molt fosca i pell fosca',
     '🧑🏻‍❤‍🧑🏼' => 'parella amb un cor: persona, persona, pell molt clara i pell bastant clara',
     '🧑🏻‍❤‍🧑🏽' => 'parella amb un cor: persona, persona, pell molt clara i pell morena',
     '🧑🏻‍❤‍🧑🏾' => 'parella amb un cor: persona, persona, pell molt clara i pell fosca',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'parella amb un cor: persona, persona, pell molt fosca i pell bastant clara',
     '🧑🏿‍❤‍🧑🏽' => 'parella amb un cor: persona, persona, pell molt fosca i pell morena',
     '🧑🏿‍❤‍🧑🏾' => 'parella amb un cor: persona, persona, pell molt fosca i pell fosca',
+    '🧑🏻‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell molt clara i pell bastant clara',
+    '🧑🏻‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell molt clara i pell morena',
+    '🧑🏻‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell molt clara i pell fosca',
+    '🧑🏻‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell molt clara i pell molt fosca',
+    '🧑🏼‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell bastant clara i pell molt clara',
+    '🧑🏼‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell bastant clara i pell morena',
+    '🧑🏼‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell bastant clara i pell fosca',
+    '🧑🏼‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell bastant clara i pell molt fosca',
+    '🧑🏽‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell morena i pell molt clara',
+    '🧑🏽‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell morena i pell bastant clara',
+    '🧑🏽‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell morena i pell fosca',
+    '🧑🏽‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell morena i pell molt fosca',
+    '🧑🏾‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell fosca i pell molt clara',
+    '🧑🏾‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell fosca i pell bastant clara',
+    '🧑🏾‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell fosca i pell morena',
+    '🧑🏾‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell fosca i pell molt fosca',
+    '🧑🏿‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell molt fosca i pell molt clara',
+    '🧑🏿‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell molt fosca i pell bastant clara',
+    '🧑🏿‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell molt fosca i pell morena',
+    '🧑🏿‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell molt fosca i pell fosca',
+    '👨🏻‍🫯‍👨🏼' => 'jugadors de lluita: pell molt clara i pell bastant clara',
+    '👨🏻‍🫯‍👨🏽' => 'jugadors de lluita: pell molt clara i pell morena',
+    '👨🏻‍🫯‍👨🏾' => 'jugadors de lluita: pell molt clara i pell fosca',
+    '👨🏻‍🫯‍👨🏿' => 'jugadors de lluita: pell molt clara i pell molt fosca',
+    '👨🏼‍🫯‍👨🏻' => 'jugadors de lluita: pell bastant clara i pell molt clara',
+    '👨🏼‍🫯‍👨🏽' => 'jugadors de lluita: pell bastant clara i pell morena',
+    '👨🏼‍🫯‍👨🏾' => 'jugadors de lluita: pell bastant clara i pell fosca',
+    '👨🏼‍🫯‍👨🏿' => 'jugadors de lluita: pell bastant clara i pell molt fosca',
+    '👨🏽‍🫯‍👨🏻' => 'jugadors de lluita: pell morena i pell molt clara',
+    '👨🏽‍🫯‍👨🏼' => 'jugadors de lluita: pell morena i pell bastant clara',
+    '👨🏽‍🫯‍👨🏾' => 'jugadors de lluita: pell morena i pell fosca',
+    '👨🏽‍🫯‍👨🏿' => 'jugadors de lluita: pell morena i pell molt fosca',
+    '👨🏾‍🫯‍👨🏻' => 'jugadors de lluita: pell fosca i pell molt clara',
+    '👨🏾‍🫯‍👨🏼' => 'jugadors de lluita: pell fosca i pell bastant clara',
+    '👨🏾‍🫯‍👨🏽' => 'jugadors de lluita: pell fosca i pell morena',
+    '👨🏾‍🫯‍👨🏿' => 'jugadors de lluita: pell fosca i pell molt fosca',
+    '👨🏿‍🫯‍👨🏻' => 'jugadors de lluita: pell molt fosca i pell molt clara',
+    '👨🏿‍🫯‍👨🏼' => 'jugadors de lluita: pell molt fosca i pell bastant clara',
+    '👨🏿‍🫯‍👨🏽' => 'jugadors de lluita: pell molt fosca i pell morena',
+    '👨🏿‍🫯‍👨🏾' => 'jugadors de lluita: pell molt fosca i pell fosca',
     '👨🏻‍❤‍👨🏻' => 'parella amb un cor: home, home i pell molt clara',
     '👨🏻‍❤‍👨🏼' => 'parella amb un cor: home, home, pell molt clara i pell bastant clara',
     '👨🏻‍❤‍👨🏽' => 'parella amb un cor: home, home, pell molt clara i pell morena',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'parella amb un cor: home, home, pell molt fosca i pell morena',
     '👨🏿‍❤‍👨🏾' => 'parella amb un cor: home, home, pell molt fosca i pell fosca',
     '👨🏿‍❤‍👨🏿' => 'parella amb un cor: home, home i pell molt fosca',
+    '👨🏻‍🐰‍👨🏼' => 'homes que ballen disfressats: pell molt clara i pell bastant clara',
+    '👨🏻‍🐰‍👨🏽' => 'homes que ballen disfressats: pell molt clara i pell morena',
+    '👨🏻‍🐰‍👨🏾' => 'homes que ballen disfressats: pell molt clara i pell fosca',
+    '👨🏻‍🐰‍👨🏿' => 'homes que ballen disfressats: pell molt clara i pell molt fosca',
+    '👨🏼‍🐰‍👨🏻' => 'homes que ballen disfressats: pell bastant clara i pell molt clara',
+    '👨🏼‍🐰‍👨🏽' => 'homes que ballen disfressats: pell bastant clara i pell morena',
+    '👨🏼‍🐰‍👨🏾' => 'homes que ballen disfressats: pell bastant clara i pell fosca',
+    '👨🏼‍🐰‍👨🏿' => 'homes que ballen disfressats: pell bastant clara i pell molt fosca',
+    '👨🏽‍🐰‍👨🏻' => 'homes que ballen disfressats: pell morena i pell molt clara',
+    '👨🏽‍🐰‍👨🏼' => 'homes que ballen disfressats: pell morena i pell bastant clara',
+    '👨🏽‍🐰‍👨🏾' => 'homes que ballen disfressats: pell morena i pell fosca',
+    '👨🏽‍🐰‍👨🏿' => 'homes que ballen disfressats: pell morena i pell molt fosca',
+    '👨🏾‍🐰‍👨🏻' => 'homes que ballen disfressats: pell fosca i pell molt clara',
+    '👨🏾‍🐰‍👨🏼' => 'homes que ballen disfressats: pell fosca i pell bastant clara',
+    '👨🏾‍🐰‍👨🏽' => 'homes que ballen disfressats: pell fosca i pell morena',
+    '👨🏾‍🐰‍👨🏿' => 'homes que ballen disfressats: pell fosca i pell molt fosca',
+    '👨🏿‍🐰‍👨🏻' => 'homes que ballen disfressats: pell molt fosca i pell molt clara',
+    '👨🏿‍🐰‍👨🏼' => 'homes que ballen disfressats: pell molt fosca i pell bastant clara',
+    '👨🏿‍🐰‍👨🏽' => 'homes que ballen disfressats: pell molt fosca i pell morena',
+    '👨🏿‍🐰‍👨🏾' => 'homes que ballen disfressats: pell molt fosca i pell fosca',
+    '👩🏻‍🫯‍👩🏼' => 'jugadores de lluita: pell molt clara i pell bastant clara',
+    '👩🏻‍🫯‍👩🏽' => 'jugadores de lluita: pell molt clara i pell morena',
+    '👩🏻‍🫯‍👩🏾' => 'jugadores de lluita: pell molt clara i pell fosca',
+    '👩🏻‍🫯‍👩🏿' => 'jugadores de lluita: pell molt clara i pell molt fosca',
+    '👩🏼‍🫯‍👩🏻' => 'jugadores de lluita: pell bastant clara i pell molt clara',
+    '👩🏼‍🫯‍👩🏽' => 'jugadores de lluita: pell bastant clara i pell morena',
+    '👩🏼‍🫯‍👩🏾' => 'jugadores de lluita: pell bastant clara i pell fosca',
+    '👩🏼‍🫯‍👩🏿' => 'jugadores de lluita: pell bastant clara i pell molt fosca',
+    '👩🏽‍🫯‍👩🏻' => 'jugadores de lluita: pell morena i pell molt clara',
+    '👩🏽‍🫯‍👩🏼' => 'jugadores de lluita: pell morena i pell bastant clara',
+    '👩🏽‍🫯‍👩🏾' => 'jugadores de lluita: pell morena i pell fosca',
+    '👩🏽‍🫯‍👩🏿' => 'jugadores de lluita: pell morena i pell molt fosca',
+    '👩🏾‍🫯‍👩🏻' => 'jugadores de lluita: pell fosca i pell molt clara',
+    '👩🏾‍🫯‍👩🏼' => 'jugadores de lluita: pell fosca i pell bastant clara',
+    '👩🏾‍🫯‍👩🏽' => 'jugadores de lluita: pell fosca i pell morena',
+    '👩🏾‍🫯‍👩🏿' => 'jugadores de lluita: pell fosca i pell molt fosca',
+    '👩🏿‍🫯‍👩🏻' => 'jugadores de lluita: pell molt fosca i pell molt clara',
+    '👩🏿‍🫯‍👩🏼' => 'jugadores de lluita: pell molt fosca i pell bastant clara',
+    '👩🏿‍🫯‍👩🏽' => 'jugadores de lluita: pell molt fosca i pell morena',
+    '👩🏿‍🫯‍👩🏾' => 'jugadores de lluita: pell molt fosca i pell fosca',
     '👩🏻‍❤‍👨🏻' => 'parella amb un cor: dona, home i pell molt clara',
     '👩🏻‍❤‍👨🏼' => 'parella amb un cor: dona, home, pell molt clara i pell bastant clara',
     '👩🏻‍❤‍👨🏽' => 'parella amb un cor: dona, home, pell molt clara i pell morena',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'parella amb un cor: dona, dona, pell molt fosca i pell morena',
     '👩🏿‍❤‍👩🏾' => 'parella amb un cor: dona, dona, pell molt fosca i pell fosca',
     '👩🏿‍❤‍👩🏿' => 'parella amb un cor: dona, dona i pell molt fosca',
+    '👩🏻‍🐰‍👩🏼' => 'dones que ballen disfressades: pell molt clara i pell bastant clara',
+    '👩🏻‍🐰‍👩🏽' => 'dones que ballen disfressades: pell molt clara i pell morena',
+    '👩🏻‍🐰‍👩🏾' => 'dones que ballen disfressades: pell molt clara i pell fosca',
+    '👩🏻‍🐰‍👩🏿' => 'dones que ballen disfressades: pell molt clara i pell molt fosca',
+    '👩🏼‍🐰‍👩🏻' => 'dones que ballen disfressades: pell bastant clara i pell molt clara',
+    '👩🏼‍🐰‍👩🏽' => 'dones que ballen disfressades: pell bastant clara i pell morena',
+    '👩🏼‍🐰‍👩🏾' => 'dones que ballen disfressades: pell bastant clara i pell fosca',
+    '👩🏼‍🐰‍👩🏿' => 'dones que ballen disfressades: pell bastant clara i pell molt fosca',
+    '👩🏽‍🐰‍👩🏻' => 'dones que ballen disfressades: pell morena i pell molt clara',
+    '👩🏽‍🐰‍👩🏼' => 'dones que ballen disfressades: pell morena i pell bastant clara',
+    '👩🏽‍🐰‍👩🏾' => 'dones que ballen disfressades: pell morena i pell fosca',
+    '👩🏽‍🐰‍👩🏿' => 'dones que ballen disfressades: pell morena i pell molt fosca',
+    '👩🏾‍🐰‍👩🏻' => 'dones que ballen disfressades: pell fosca i pell molt clara',
+    '👩🏾‍🐰‍👩🏼' => 'dones que ballen disfressades: pell fosca i pell bastant clara',
+    '👩🏾‍🐰‍👩🏽' => 'dones que ballen disfressades: pell fosca i pell morena',
+    '👩🏾‍🐰‍👩🏿' => 'dones que ballen disfressades: pell fosca i pell molt fosca',
+    '👩🏿‍🐰‍👩🏻' => 'dones que ballen disfressades: pell molt fosca i pell molt clara',
+    '👩🏿‍🐰‍👩🏼' => 'dones que ballen disfressades: pell molt fosca i pell bastant clara',
+    '👩🏿‍🐰‍👩🏽' => 'dones que ballen disfressades: pell molt fosca i pell morena',
+    '👩🏿‍🐰‍👩🏾' => 'dones que ballen disfressades: pell molt fosca i pell fosca',
     '🧑🏻‍🤝‍🧑🏻' => 'persones que s’agafen de la mà: pell molt clara',
     '🧑🏻‍🤝‍🧑🏼' => 'persones que s’agafen de la mà: pell molt clara i pell bastant clara',
     '🧑🏻‍🤝‍🧑🏽' => 'persones que s’agafen de la mà: pell molt clara i pell morena',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bandera: Escòcia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bandera: Gal·les',
     '🧑‍🧑‍🧒‍🧒' => 'família: adult, adult, infant, infant',
-    '🚶🏻‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏼‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏽‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏾‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏿‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏻‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏼‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏽‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏾‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏿‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🧎🏻‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏼‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏽‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏾‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏿‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏻‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏼‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏽‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏾‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏿‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧑🏻‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏼‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏽‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏾‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏿‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '👨🏻‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏼‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏽‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏾‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏿‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👩🏻‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏼‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏽‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏾‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏿‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏻‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏼‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏽‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏾‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏿‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏻‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏼‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏽‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏾‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏿‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏻‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏼‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏽‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏾‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏿‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏻‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏼‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏽‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏾‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏿‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '👨🏻‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏼‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏽‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏾‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏿‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👩🏻‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏼‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏽‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏾‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏿‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '🏃🏻‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏼‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏽‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏾‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏿‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏻‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏼‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏽‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏾‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏿‍♂‍➡' => 'home que corre que mira a la dreta',
+    '🚶🏻‍♀‍➡' => 'dona que camina: pell molt clara i que mira a la dreta',
+    '🚶🏼‍♀‍➡' => 'dona que camina: pell bastant clara i que mira a la dreta',
+    '🚶🏽‍♀‍➡' => 'dona que camina: pell morena i que mira a la dreta',
+    '🚶🏾‍♀‍➡' => 'dona que camina: pell fosca i que mira a la dreta',
+    '🚶🏿‍♀‍➡' => 'dona que camina: pell molt fosca i que mira a la dreta',
+    '🚶🏻‍♂‍➡' => 'home que camina: pell molt clara i que mira a la dreta',
+    '🚶🏼‍♂‍➡' => 'home que camina: pell bastant clara i que mira a la dreta',
+    '🚶🏽‍♂‍➡' => 'home que camina: pell morena i que mira a la dreta',
+    '🚶🏾‍♂‍➡' => 'home que camina: pell fosca i que mira a la dreta',
+    '🚶🏿‍♂‍➡' => 'home que camina: pell molt fosca i que mira a la dreta',
+    '🧎🏻‍♀‍➡' => 'dona agenollada: pell molt clara i que mira a la dreta',
+    '🧎🏼‍♀‍➡' => 'dona agenollada: pell bastant clara i que mira a la dreta',
+    '🧎🏽‍♀‍➡' => 'dona agenollada: pell morena i que mira a la dreta',
+    '🧎🏾‍♀‍➡' => 'dona agenollada: pell fosca i que mira a la dreta',
+    '🧎🏿‍♀‍➡' => 'dona agenollada: pell molt fosca i que mira a la dreta',
+    '🧎🏻‍♂‍➡' => 'home agenollat: pell molt clara i que mira a la dreta',
+    '🧎🏼‍♂‍➡' => 'home agenollat: pell bastant clara i que mira a la dreta',
+    '🧎🏽‍♂‍➡' => 'home agenollat: pell morena i que mira a la dreta',
+    '🧎🏾‍♂‍➡' => 'home agenollat: pell fosca i que mira a la dreta',
+    '🧎🏿‍♂‍➡' => 'home agenollat: pell molt fosca i que mira a la dreta',
+    '🧑🏻‍🦯‍➡' => 'persona amb un bastó per a invidents: pell molt clara i que mira a la dreta',
+    '🧑🏼‍🦯‍➡' => 'persona amb un bastó per a invidents: pell bastant clara i que mira a la dreta',
+    '🧑🏽‍🦯‍➡' => 'persona amb un bastó per a invidents: pell morena i que mira a la dreta',
+    '🧑🏾‍🦯‍➡' => 'persona amb un bastó per a invidents: pell fosca i que mira a la dreta',
+    '🧑🏿‍🦯‍➡' => 'persona amb un bastó per a invidents: pell molt fosca i que mira a la dreta',
+    '👨🏻‍🦯‍➡' => 'home amb un bastó per a invidents: pell molt clara i que mira a la dreta',
+    '👨🏼‍🦯‍➡' => 'home amb un bastó per a invidents: pell bastant clara i que mira a la dreta',
+    '👨🏽‍🦯‍➡' => 'home amb un bastó per a invidents: pell morena i que mira a la dreta',
+    '👨🏾‍🦯‍➡' => 'home amb un bastó per a invidents: pell fosca i que mira a la dreta',
+    '👨🏿‍🦯‍➡' => 'home amb un bastó per a invidents: pell molt fosca i que mira a la dreta',
+    '👩🏻‍🦯‍➡' => 'dona amb un bastó per a invidents: pell molt clara i que mira a la dreta',
+    '👩🏼‍🦯‍➡' => 'dona amb un bastó per a invidents: pell bastant clara i que mira a la dreta',
+    '👩🏽‍🦯‍➡' => 'dona amb un bastó per a invidents: pell morena i que mira a la dreta',
+    '👩🏾‍🦯‍➡' => 'dona amb un bastó per a invidents: pell fosca i que mira a la dreta',
+    '👩🏿‍🦯‍➡' => 'dona amb un bastó per a invidents: pell molt fosca i que mira a la dreta',
+    '🧑🏻‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell molt clara i que mira a la dreta',
+    '🧑🏼‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell bastant clara i que mira a la dreta',
+    '🧑🏽‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell morena i que mira a la dreta',
+    '🧑🏾‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell fosca i que mira a la dreta',
+    '🧑🏿‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell molt fosca i que mira a la dreta',
+    '👨🏻‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell molt clara i que mira a la dreta',
+    '👨🏼‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell bastant clara i que mira a la dreta',
+    '👨🏽‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell morena i que mira a la dreta',
+    '👨🏾‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell fosca i que mira a la dreta',
+    '👨🏿‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell molt fosca i que mira a la dreta',
+    '👩🏻‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell molt clara i que mira a la dreta',
+    '👩🏼‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell bastant clara i que mira a la dreta',
+    '👩🏽‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell morena i que mira a la dreta',
+    '👩🏾‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell fosca i que mira a la dreta',
+    '👩🏿‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell molt fosca i que mira a la dreta',
+    '🧑🏻‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell molt clara i que mira a la dreta',
+    '🧑🏼‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell bastant clara i que mira a la dreta',
+    '🧑🏽‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell morena i que mira a la dreta',
+    '🧑🏾‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell fosca i que mira a la dreta',
+    '🧑🏿‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell molt fosca i que mira a la dreta',
+    '👨🏻‍🦽‍➡' => 'home amb una cadira de rodes manual: pell molt clara i que mira a la dreta',
+    '👨🏼‍🦽‍➡' => 'home amb una cadira de rodes manual: pell bastant clara i que mira a la dreta',
+    '👨🏽‍🦽‍➡' => 'home amb una cadira de rodes manual: pell morena i que mira a la dreta',
+    '👨🏾‍🦽‍➡' => 'home amb una cadira de rodes manual: pell fosca i que mira a la dreta',
+    '👨🏿‍🦽‍➡' => 'home amb una cadira de rodes manual: pell molt fosca i que mira a la dreta',
+    '👩🏻‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell molt clara i que mira a la dreta',
+    '👩🏼‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell bastant clara i que mira a la dreta',
+    '👩🏽‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell morena i que mira a la dreta',
+    '👩🏾‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell fosca i que mira a la dreta',
+    '👩🏿‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell molt fosca i que mira a la dreta',
+    '🏃🏻‍♀‍➡' => 'dona que corre: pell molt clara i que mira a la dreta',
+    '🏃🏼‍♀‍➡' => 'dona que corre: pell bastant clara i que mira a la dreta',
+    '🏃🏽‍♀‍➡' => 'dona que corre: pell morena i que mira a la dreta',
+    '🏃🏾‍♀‍➡' => 'dona que corre: pell fosca i que mira a la dreta',
+    '🏃🏿‍♀‍➡' => 'dona que corre: pell molt fosca i que mira a la dreta',
+    '🏃🏻‍♂‍➡' => 'home que corre: pell molt clara i que mira a la dreta',
+    '🏃🏼‍♂‍➡' => 'home que corre: pell bastant clara i que mira a la dreta',
+    '🏃🏽‍♂‍➡' => 'home que corre: pell morena i que mira a la dreta',
+    '🏃🏾‍♂‍➡' => 'home que corre: pell fosca i que mira a la dreta',
+    '🏃🏿‍♂‍➡' => 'home que corre: pell molt fosca i que mira a la dreta',
     '🫱🏻‍🫲🏼' => 'encaixada de mans: pell molt clara i pell bastant clara',
     '🫱🏻‍🫲🏽' => 'encaixada de mans: pell molt clara i pell morena',
     '🫱🏻‍🫲🏾' => 'encaixada de mans: pell molt clara i pell fosca',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'encaixada de mans: pell molt fosca i pell bastant clara',
     '🫱🏿‍🫲🏽' => 'encaixada de mans: pell molt fosca i pell morena',
     '🫱🏿‍🫲🏾' => 'encaixada de mans: pell molt fosca i pell fosca',
-    '🚶‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🧎‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧑‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '👨‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👩‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '🧑‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '👨‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👩‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '🏃‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃‍♂‍➡' => 'home que corre que mira a la dreta',
+    '🚶‍♀‍➡' => 'dona que camina: que mira a la dreta',
+    '🚶‍♂‍➡' => 'home que camina: que mira a la dreta',
+    '🧎‍♀‍➡' => 'dona agenollada: que mira a la dreta',
+    '🧎‍♂‍➡' => 'home agenollat: que mira a la dreta',
+    '🧑‍🦯‍➡' => 'persona amb un bastó per a invidents: que mira a la dreta',
+    '👨‍🦯‍➡' => 'home amb un bastó per a invidents: que mira a la dreta',
+    '👩‍🦯‍➡' => 'dona amb un bastó per a invidents: que mira a la dreta',
+    '🧑‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: que mira a la dreta',
+    '👨‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: que mira a la dreta',
+    '👩‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: que mira a la dreta',
+    '🧑‍🦽‍➡' => 'persona amb una cadira de rodes manual: que mira a la dreta',
+    '👨‍🦽‍➡' => 'home amb una cadira de rodes manual: que mira a la dreta',
+    '👩‍🦽‍➡' => 'dona amb una cadira de rodes manual: que mira a la dreta',
+    '🏃‍♀‍➡' => 'dona que corre: que mira a la dreta',
+    '🏃‍♂‍➡' => 'home que corre: que mira a la dreta',
     '👩‍❤‍👨' => 'parella amb un cor: dona i home',
     '👨‍❤‍👨' => 'parella amb un cor: home i home',
     '👩‍❤‍👩' => 'parella amb un cor: dona i dona',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'persona: pell morena i calvície',
     '🧑🏾‍🦲' => 'persona: pell fosca i calvície',
     '🧑🏿‍🦲' => 'persona: pell molt fosca i calvície',
+    '🧑🏻‍🩰' => 'ballarí de ballet: pell molt clara',
+    '🧑🏼‍🩰' => 'ballarí de ballet: pell bastant clara',
+    '🧑🏽‍🩰' => 'ballarí de ballet: pell morena',
+    '🧑🏾‍🩰' => 'ballarí de ballet: pell fosca',
+    '🧑🏿‍🩰' => 'ballarí de ballet: pell molt fosca',
     '🧔🏻‍♂' => 'home: pell molt clara i barba',
     '🧔🏼‍♂' => 'home: pell bastant clara i barba',
     '🧔🏽‍♂' => 'home: pell morena i barba',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'dona que camina: pell morena',
     '🚶🏾‍♀' => 'dona que camina: pell fosca',
     '🚶🏿‍♀' => 'dona que camina: pell molt fosca',
-    '🚶🏻‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏼‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏽‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏾‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏿‍➡' => 'persona que camina que mira a la dreta',
+    '🚶🏻‍➡' => 'persona que camina: pell molt clara i que mira a la dreta',
+    '🚶🏼‍➡' => 'persona que camina: pell bastant clara i que mira a la dreta',
+    '🚶🏽‍➡' => 'persona que camina: pell morena i que mira a la dreta',
+    '🚶🏾‍➡' => 'persona que camina: pell fosca i que mira a la dreta',
+    '🚶🏿‍➡' => 'persona que camina: pell molt fosca i que mira a la dreta',
     '🧍🏻‍♂' => 'home dret: pell molt clara',
     '🧍🏼‍♂' => 'home dret: pell bastant clara',
     '🧍🏽‍♂' => 'home dret: pell morena',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'dona agenollada: pell morena',
     '🧎🏾‍♀' => 'dona agenollada: pell fosca',
     '🧎🏿‍♀' => 'dona agenollada: pell molt fosca',
-    '🧎🏻‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏼‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏽‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏾‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏿‍➡' => 'persona agenollada que mira a la dreta',
+    '🧎🏻‍➡' => 'persona agenollada: pell molt clara i que mira a la dreta',
+    '🧎🏼‍➡' => 'persona agenollada: pell bastant clara i que mira a la dreta',
+    '🧎🏽‍➡' => 'persona agenollada: pell morena i que mira a la dreta',
+    '🧎🏾‍➡' => 'persona agenollada: pell fosca i que mira a la dreta',
+    '🧎🏿‍➡' => 'persona agenollada: pell molt fosca i que mira a la dreta',
     '🧑🏻‍🦯' => 'persona amb un bastó per a invidents: pell molt clara',
     '🧑🏼‍🦯' => 'persona amb un bastó per a invidents: pell bastant clara',
     '🧑🏽‍🦯' => 'persona amb un bastó per a invidents: pell morena',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'dona que corre: pell morena',
     '🏃🏾‍♀' => 'dona que corre: pell fosca',
     '🏃🏿‍♀' => 'dona que corre: pell molt fosca',
-    '🏃🏻‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏼‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏽‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏾‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏿‍➡' => 'persona que corre que mira a la dreta',
+    '🏃🏻‍➡' => 'persona que corre: pell molt clara i que mira a la dreta',
+    '🏃🏼‍➡' => 'persona que corre: pell bastant clara i que mira a la dreta',
+    '🏃🏽‍➡' => 'persona que corre: pell morena i que mira a la dreta',
+    '🏃🏾‍➡' => 'persona que corre: pell fosca i que mira a la dreta',
+    '🏃🏿‍➡' => 'persona que corre: pell molt fosca i que mira a la dreta',
+    '👯🏻‍♀' => 'dones que ballen disfressades: pell molt clara',
+    '👯🏼‍♀' => 'dones que ballen disfressades: pell bastant clara',
+    '👯🏽‍♀' => 'dones que ballen disfressades: pell morena',
+    '👯🏾‍♀' => 'dones que ballen disfressades: pell fosca',
+    '👯🏿‍♀' => 'dones que ballen disfressades: pell molt fosca',
+    '👯🏻‍♂' => 'homes que ballen disfressats: pell molt clara',
+    '👯🏼‍♂' => 'homes que ballen disfressats: pell bastant clara',
+    '👯🏽‍♂' => 'homes que ballen disfressats: pell morena',
+    '👯🏾‍♂' => 'homes que ballen disfressats: pell fosca',
+    '👯🏿‍♂' => 'homes que ballen disfressats: pell molt fosca',
     '🧖🏻‍♂' => 'home a la sauna: pell molt clara',
     '🧖🏼‍♂' => 'home a la sauna: pell bastant clara',
     '🧖🏽‍♂' => 'home a la sauna: pell morena',
@@ -1190,16 +1325,16 @@
     '⛹🏽‍♀' => 'dona amb una pilota: pell morena',
     '⛹🏾‍♀' => 'dona amb una pilota: pell fosca',
     '⛹🏿‍♀' => 'dona amb una pilota: pell molt fosca',
-    '🏋🏻‍♂' => 'home que aixeca peses: pell molt clara',
-    '🏋🏼‍♂' => 'home que aixeca peses: pell bastant clara',
-    '🏋🏽‍♂' => 'home que aixeca peses: pell morena',
-    '🏋🏾‍♂' => 'home que aixeca peses: pell fosca',
-    '🏋🏿‍♂' => 'home que aixeca peses: pell molt fosca',
-    '🏋🏻‍♀' => 'dona que aixeca peses: pell molt clara',
-    '🏋🏼‍♀' => 'dona que aixeca peses: pell bastant clara',
-    '🏋🏽‍♀' => 'dona que aixeca peses: pell morena',
-    '🏋🏾‍♀' => 'dona que aixeca peses: pell fosca',
-    '🏋🏿‍♀' => 'dona que aixeca peses: pell molt fosca',
+    '🏋🏻‍♂' => 'home que aixeca pesos: pell molt clara',
+    '🏋🏼‍♂' => 'home que aixeca pesos: pell bastant clara',
+    '🏋🏽‍♂' => 'home que aixeca pesos: pell morena',
+    '🏋🏾‍♂' => 'home que aixeca pesos: pell fosca',
+    '🏋🏿‍♂' => 'home que aixeca pesos: pell molt fosca',
+    '🏋🏻‍♀' => 'dona que aixeca pesos: pell molt clara',
+    '🏋🏼‍♀' => 'dona que aixeca pesos: pell bastant clara',
+    '🏋🏽‍♀' => 'dona que aixeca pesos: pell morena',
+    '🏋🏾‍♀' => 'dona que aixeca pesos: pell fosca',
+    '🏋🏿‍♀' => 'dona que aixeca pesos: pell molt fosca',
     '🚴🏻‍♂' => 'ciclista home: pell molt clara',
     '🚴🏼‍♂' => 'ciclista home: pell bastant clara',
     '🚴🏽‍♂' => 'ciclista home: pell morena',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'dona que fa la roda: pell morena',
     '🤸🏾‍♀' => 'dona que fa la roda: pell fosca',
     '🤸🏿‍♀' => 'dona que fa la roda: pell molt fosca',
+    '🤼🏻‍♀' => 'jugadores de lluita: pell molt clara',
+    '🤼🏼‍♀' => 'jugadores de lluita: pell bastant clara',
+    '🤼🏽‍♀' => 'jugadores de lluita: pell morena',
+    '🤼🏾‍♀' => 'jugadores de lluita: pell fosca',
+    '🤼🏿‍♀' => 'jugadores de lluita: pell molt fosca',
+    '🤼🏻‍♂' => 'jugadors de lluita: pell molt clara',
+    '🤼🏼‍♂' => 'jugadors de lluita: pell bastant clara',
+    '🤼🏽‍♂' => 'jugadors de lluita: pell morena',
+    '🤼🏾‍♂' => 'jugadors de lluita: pell fosca',
+    '🤼🏿‍♂' => 'jugadors de lluita: pell molt fosca',
     '🤽🏻‍♂' => 'jugador de waterpolo: pell molt clara',
     '🤽🏼‍♂' => 'jugador de waterpolo: pell bastant clara',
     '🤽🏽‍♂' => 'jugador de waterpolo: pell morena',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'dona: cabells arrissats',
     '👩‍🦳' => 'dona: cabells blancs',
     '👩‍🦲' => 'dona: calvície',
-    '🚶‍➡' => 'persona que camina que mira a la dreta',
-    '🧎‍➡' => 'persona agenollada que mira a la dreta',
-    '🏃‍➡' => 'persona que corre que mira a la dreta',
+    '🚶‍➡' => 'persona que camina: que mira a la dreta',
+    '🧎‍➡' => 'persona agenollada: que mira a la dreta',
+    '🏃‍➡' => 'persona que corre: que mira a la dreta',
     '👨‍👦' => 'família: home i noi',
     '👨‍👧' => 'família: home i noia',
     '👩‍👦' => 'família: dona i noi',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'dona amb una cadira de rodes manual',
     '🏃‍♂' => 'home que corre',
     '🏃‍♀' => 'dona que corre',
+    '🧑‍🩰' => 'ballarí de ballet',
     '👯‍♂' => 'homes que ballen disfressats',
     '👯‍♀' => 'dones que ballen disfressades',
     '🧖‍♂' => 'home a la sauna',
@@ -1441,8 +1587,8 @@
     '🏊‍♀' => 'dona que neda',
     '⛹‍♂' => 'home amb una pilota',
     '⛹‍♀' => 'dona amb una pilota',
-    '🏋‍♂' => 'home que aixeca peses',
-    '🏋‍♀' => 'dona que aixeca peses',
+    '🏋‍♂' => 'home que aixeca pesos',
+    '🏋‍♀' => 'dona que aixeca pesos',
     '🚴‍♂' => 'ciclista home',
     '🚴‍♀' => 'ciclista dona',
     '🚵‍♂' => 'ciclista de muntanya home',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'home de negocis que levita: pell morena',
     '🕴🏾' => 'home de negocis que levita: pell fosca',
     '🕴🏿' => 'home de negocis que levita: pell molt fosca',
+    '👯🏻' => 'persones que ballen disfressades: pell molt clara',
+    '👯🏼' => 'persones que ballen disfressades: pell bastant clara',
+    '👯🏽' => 'persones que ballen disfressades: pell morena',
+    '👯🏾' => 'persones que ballen disfressades: pell fosca',
+    '👯🏿' => 'persones que ballen disfressades: pell molt fosca',
     '🧖🏻' => 'persona a la sauna: pell molt clara',
     '🧖🏼' => 'persona a la sauna: pell bastant clara',
     '🧖🏽' => 'persona a la sauna: pell morena',
@@ -2051,11 +2202,11 @@
     '⛹🏽' => 'persona amb una pilota: pell morena',
     '⛹🏾' => 'persona amb una pilota: pell fosca',
     '⛹🏿' => 'persona amb una pilota: pell molt fosca',
-    '🏋🏻' => 'persona que aixeca peses: pell molt clara',
-    '🏋🏼' => 'persona que aixeca peses: pell bastant clara',
-    '🏋🏽' => 'persona que aixeca peses: pell morena',
-    '🏋🏾' => 'persona que aixeca peses: pell fosca',
-    '🏋🏿' => 'persona que aixeca peses: pell molt fosca',
+    '🏋🏻' => 'persona que aixeca pesos: pell molt clara',
+    '🏋🏼' => 'persona que aixeca pesos: pell bastant clara',
+    '🏋🏽' => 'persona que aixeca pesos: pell morena',
+    '🏋🏾' => 'persona que aixeca pesos: pell fosca',
+    '🏋🏿' => 'persona que aixeca pesos: pell molt fosca',
     '🚴🏻' => 'ciclista: pell molt clara',
     '🚴🏼' => 'ciclista: pell bastant clara',
     '🚴🏽' => 'ciclista: pell morena',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persona que fa la roda: pell morena',
     '🤸🏾' => 'persona que fa la roda: pell fosca',
     '🤸🏿' => 'persona que fa la roda: pell molt fosca',
+    '🤼🏻' => 'persones que lluiten: pell molt clara',
+    '🤼🏼' => 'persones que lluiten: pell bastant clara',
+    '🤼🏽' => 'persones que lluiten: pell morena',
+    '🤼🏾' => 'persones que lluiten: pell fosca',
+    '🤼🏿' => 'persones que lluiten: pell molt fosca',
     '🤽🏻' => 'persona que juga a waterpolo: pell molt clara',
     '🤽🏼' => 'persona que juga a waterpolo: pell bastant clara',
     '🤽🏽' => 'persona que juga a waterpolo: pell morena',
@@ -2391,13 +2547,6 @@
     '🏽' => 'pell morena',
     '🏾' => 'pell fosca',
     '🏿' => 'pell molt fosca',
-    '🪉' => 'arpa',
-    '🪏' => 'pala',
-    '🪾' => 'arbre sense fulles',
-    '🫆' => 'empremta dactilar',
-    '🫜' => 'tubercle',
-    '🫟' => 'esquitx',
-    '🫩' => 'cara ullerosa',
     '😀' => 'cara molt somrient',
     '😃' => 'cara molt somrient amb els ulls ben oberts',
     '😄' => 'cara amb rialla i els ulls somrients',
@@ -2451,6 +2600,7 @@
     '😪' => 'cara de son',
     '🤤' => 'cara que baveja',
     '😴' => 'cara de dormir',
+    '🫩' => 'cara ullerosa',
     '😷' => 'cara amb mascareta',
     '🤒' => 'cara amb termòmetre',
     '🤕' => 'cara amb el cap embenat',
@@ -2477,6 +2627,7 @@
     '😯' => 'cara de sorpresa',
     '😲' => 'cara estupefacta',
     '😳' => 'cara enrojolada',
+    '🫪' => 'cara distorsionada',
     '🥺' => 'cara de súplica',
     '🥹' => 'cara que s’aguanta les llàgrimes',
     '😦' => 'cara emmurriada amb la boca oberta',
@@ -2548,6 +2699,7 @@
     '💋' => 'marca de petó',
     '💯' => '100 punts',
     '💢' => 'símbol d’enuig',
+    '🫯' => 'núvol de baralla',
     '💥' => 'col·lisió',
     '💫' => 'mareig',
     '💦' => 'gotes de suor',
@@ -2671,6 +2823,7 @@
     '🧞' => 'geni',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'criatura peluda',
     '💆' => 'persona que rep un massatge al cap',
     '💇' => 'persona que es talla els cabells',
     '🚶' => 'persona que camina',
@@ -2692,7 +2845,7 @@
     '🚣' => 'persona que rema en una barca',
     '🏊' => 'persona que neda',
     '⛹' => 'persona amb una pilota',
-    '🏋' => 'persona que aixeca peses',
+    '🏋' => 'persona que aixeca pesos',
     '🚴' => 'ciclista',
     '🚵' => 'ciclista de muntanya',
     '🤸' => 'persona que fa la roda',
@@ -2714,6 +2867,7 @@
     '🫂' => 'persones que s’abracen',
     '👪' => 'família',
     '👣' => 'petjades',
+    '🫆' => 'empremta dactilar',
     '🦰' => 'cabells vermells',
     '🦱' => 'cabells arrissats',
     '🦳' => 'cabells blancs',
@@ -2813,6 +2967,7 @@
     '🐳' => 'balena que treu aigua',
     '🐋' => 'balena',
     '🐬' => 'dofí',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'peix',
     '🐠' => 'peix tropical',
@@ -2822,6 +2977,11 @@
     '🐚' => 'cargol de mar',
     '🪸' => 'corall',
     '🪼' => 'medusa',
+    '🦀' => 'cranc',
+    '🦞' => 'llagosta',
+    '🦐' => 'gamba',
+    '🦑' => 'calamar',
+    '🦪' => 'ostra',
     '🐌' => 'cargol',
     '🦋' => 'papallona',
     '🐛' => 'eruga',
@@ -2866,6 +3026,7 @@
     '🪹' => 'niu buit',
     '🪺' => 'niu amb ous',
     '🍄' => 'bolet',
+    '🪾' => 'arbre sense fulles',
     '🍇' => 'raïm',
     '🍈' => 'meló',
     '🍉' => 'síndria',
@@ -2902,6 +3063,7 @@
     '🌰' => 'castanya',
     '🫚' => 'arrel de gingebre',
     '🫛' => 'beina de pèsol',
+    '🫜' => 'tubercle',
     '🍞' => 'pa',
     '🥐' => 'croissant',
     '🥖' => 'baguet',
@@ -2953,11 +3115,6 @@
     '🥟' => 'cresta xinesa',
     '🥠' => 'galeta de la sort',
     '🥡' => 'menjar per emportar',
-    '🦀' => 'cranc',
-    '🦞' => 'llagosta',
-    '🦐' => 'gamba',
-    '🦑' => 'calamar',
-    '🦪' => 'ostra',
     '🍦' => 'gelat de màquina',
     '🍧' => 'granissat',
     '🍨' => 'gelat',
@@ -3008,6 +3165,7 @@
     '🧭' => 'brúixola',
     '🏔' => 'muntanya amb neu al cim',
     '⛰' => 'muntanya',
+    '🛘' => 'esllevissada',
     '🌋' => 'volcà',
     '🗻' => 'mont Fuji',
     '🏕' => 'acampada',
@@ -3368,16 +3526,18 @@
     '🎧' => 'auricular',
     '📻' => 'ràdio',
     '🎷' => 'saxofon',
+    '🎺' => 'trompeta',
+    '🪊' => 'trombó',
     '🪗' => 'acordió',
     '🎸' => 'guitarra',
     '🎹' => 'teclat musical',
-    '🎺' => 'trompeta',
     '🎻' => 'violí',
     '🪕' => 'banjo',
     '🥁' => 'tambor',
     '🪘' => 'conga',
     '🪇' => 'maraques',
     '🪈' => 'flauta',
+    '🪉' => 'arpa',
     '📱' => 'telèfon mòbil',
     '📲' => 'telèfon mòbil amb fletxa',
     '☎' => 'telèfon',
@@ -3431,8 +3591,9 @@
     '📑' => 'marcadors',
     '🔖' => 'punt de llibre',
     '🏷' => 'etiqueta',
-    '💰' => 'bossa de diners',
     '🪙' => 'moneda',
+    '💰' => 'bossa de diners',
+    '🪎' => 'bagul del tresor',
     '💴' => 'bitllets de ien',
     '💵' => 'bitllets de dòlar',
     '💶' => 'bitllets d’euro',
@@ -3473,7 +3634,7 @@
     '📈' => 'gràfic d’augment',
     '📉' => 'gràfic de disminució',
     '📊' => 'gràfic de barres',
-    '📋' => 'porta-retalls',
+    '📋' => 'portanotes',
     '📌' => 'xinxeta',
     '📍' => 'xinxeta rodona',
     '📎' => 'clip',
@@ -3515,6 +3676,7 @@
     '🧰' => 'caixa d’eines',
     '🧲' => 'imant',
     '🪜' => 'escala de mà',
+    '🪏' => 'pala',
     '⚗' => 'alambí',
     '🧪' => 'tub d’assaig',
     '🧫' => 'placa de Petri',
@@ -3698,6 +3860,7 @@
     '✴' => 'estrella de vuit puntes',
     '❇' => 'espurna',
     '™' => 'marca comercial',
+    '🫟' => 'esquitx',
     '🔠' => 'botó de lletres llatines en majúscules',
     '🔡' => 'botó de lletres llatines en minúscules',
     '🔢' => 'botó de números',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ca.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'petó: dona, dona, pell molt fosca i pell morena',
     '👩🏿‍❤‍💋‍👩🏾' => 'petó: dona, dona, pell molt fosca i pell fosca',
     '👩🏿‍❤‍💋‍👩🏿' => 'petó: dona, dona i pell molt fosca',
+    '🧑🏻‍🫯‍🧑🏼' => 'persones que lluiten: pell molt clara i pell bastant clara',
+    '🧑🏻‍🫯‍🧑🏽' => 'persones que lluiten: pell molt clara i pell morena',
+    '🧑🏻‍🫯‍🧑🏾' => 'persones que lluiten: pell molt clara i pell fosca',
+    '🧑🏻‍🫯‍🧑🏿' => 'persones que lluiten: pell molt clara i pell molt fosca',
+    '🧑🏼‍🫯‍🧑🏻' => 'persones que lluiten: pell bastant clara i pell molt clara',
+    '🧑🏼‍🫯‍🧑🏽' => 'persones que lluiten: pell bastant clara i pell morena',
+    '🧑🏼‍🫯‍🧑🏾' => 'persones que lluiten: pell bastant clara i pell fosca',
+    '🧑🏼‍🫯‍🧑🏿' => 'persones que lluiten: pell bastant clara i pell molt fosca',
+    '🧑🏽‍🫯‍🧑🏻' => 'persones que lluiten: pell morena i pell molt clara',
+    '🧑🏽‍🫯‍🧑🏼' => 'persones que lluiten: pell morena i pell bastant clara',
+    '🧑🏽‍🫯‍🧑🏾' => 'persones que lluiten: pell morena i pell fosca',
+    '🧑🏽‍🫯‍🧑🏿' => 'persones que lluiten: pell morena i pell molt fosca',
+    '🧑🏾‍🫯‍🧑🏻' => 'persones que lluiten: pell fosca i pell molt clara',
+    '🧑🏾‍🫯‍🧑🏼' => 'persones que lluiten: pell fosca i pell bastant clara',
+    '🧑🏾‍🫯‍🧑🏽' => 'persones que lluiten: pell fosca i pell morena',
+    '🧑🏾‍🫯‍🧑🏿' => 'persones que lluiten: pell fosca i pell molt fosca',
+    '🧑🏿‍🫯‍🧑🏻' => 'persones que lluiten: pell molt fosca i pell molt clara',
+    '🧑🏿‍🫯‍🧑🏼' => 'persones que lluiten: pell molt fosca i pell bastant clara',
+    '🧑🏿‍🫯‍🧑🏽' => 'persones que lluiten: pell molt fosca i pell morena',
+    '🧑🏿‍🫯‍🧑🏾' => 'persones que lluiten: pell molt fosca i pell fosca',
     '🧑🏻‍❤‍🧑🏼' => 'parella amb un cor: persona, persona, pell molt clara i pell bastant clara',
     '🧑🏻‍❤‍🧑🏽' => 'parella amb un cor: persona, persona, pell molt clara i pell morena',
     '🧑🏻‍❤‍🧑🏾' => 'parella amb un cor: persona, persona, pell molt clara i pell fosca',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'parella amb un cor: persona, persona, pell molt fosca i pell bastant clara',
     '🧑🏿‍❤‍🧑🏽' => 'parella amb un cor: persona, persona, pell molt fosca i pell morena',
     '🧑🏿‍❤‍🧑🏾' => 'parella amb un cor: persona, persona, pell molt fosca i pell fosca',
+    '🧑🏻‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell molt clara i pell bastant clara',
+    '🧑🏻‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell molt clara i pell morena',
+    '🧑🏻‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell molt clara i pell fosca',
+    '🧑🏻‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell molt clara i pell molt fosca',
+    '🧑🏼‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell bastant clara i pell molt clara',
+    '🧑🏼‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell bastant clara i pell morena',
+    '🧑🏼‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell bastant clara i pell fosca',
+    '🧑🏼‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell bastant clara i pell molt fosca',
+    '🧑🏽‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell morena i pell molt clara',
+    '🧑🏽‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell morena i pell bastant clara',
+    '🧑🏽‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell morena i pell fosca',
+    '🧑🏽‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell morena i pell molt fosca',
+    '🧑🏾‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell fosca i pell molt clara',
+    '🧑🏾‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell fosca i pell bastant clara',
+    '🧑🏾‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell fosca i pell morena',
+    '🧑🏾‍🐰‍🧑🏿' => 'persones que ballen disfressades: pell fosca i pell molt fosca',
+    '🧑🏿‍🐰‍🧑🏻' => 'persones que ballen disfressades: pell molt fosca i pell molt clara',
+    '🧑🏿‍🐰‍🧑🏼' => 'persones que ballen disfressades: pell molt fosca i pell bastant clara',
+    '🧑🏿‍🐰‍🧑🏽' => 'persones que ballen disfressades: pell molt fosca i pell morena',
+    '🧑🏿‍🐰‍🧑🏾' => 'persones que ballen disfressades: pell molt fosca i pell fosca',
+    '👨🏻‍🫯‍👨🏼' => 'jugadors de lluita: pell molt clara i pell bastant clara',
+    '👨🏻‍🫯‍👨🏽' => 'jugadors de lluita: pell molt clara i pell morena',
+    '👨🏻‍🫯‍👨🏾' => 'jugadors de lluita: pell molt clara i pell fosca',
+    '👨🏻‍🫯‍👨🏿' => 'jugadors de lluita: pell molt clara i pell molt fosca',
+    '👨🏼‍🫯‍👨🏻' => 'jugadors de lluita: pell bastant clara i pell molt clara',
+    '👨🏼‍🫯‍👨🏽' => 'jugadors de lluita: pell bastant clara i pell morena',
+    '👨🏼‍🫯‍👨🏾' => 'jugadors de lluita: pell bastant clara i pell fosca',
+    '👨🏼‍🫯‍👨🏿' => 'jugadors de lluita: pell bastant clara i pell molt fosca',
+    '👨🏽‍🫯‍👨🏻' => 'jugadors de lluita: pell morena i pell molt clara',
+    '👨🏽‍🫯‍👨🏼' => 'jugadors de lluita: pell morena i pell bastant clara',
+    '👨🏽‍🫯‍👨🏾' => 'jugadors de lluita: pell morena i pell fosca',
+    '👨🏽‍🫯‍👨🏿' => 'jugadors de lluita: pell morena i pell molt fosca',
+    '👨🏾‍🫯‍👨🏻' => 'jugadors de lluita: pell fosca i pell molt clara',
+    '👨🏾‍🫯‍👨🏼' => 'jugadors de lluita: pell fosca i pell bastant clara',
+    '👨🏾‍🫯‍👨🏽' => 'jugadors de lluita: pell fosca i pell morena',
+    '👨🏾‍🫯‍👨🏿' => 'jugadors de lluita: pell fosca i pell molt fosca',
+    '👨🏿‍🫯‍👨🏻' => 'jugadors de lluita: pell molt fosca i pell molt clara',
+    '👨🏿‍🫯‍👨🏼' => 'jugadors de lluita: pell molt fosca i pell bastant clara',
+    '👨🏿‍🫯‍👨🏽' => 'jugadors de lluita: pell molt fosca i pell morena',
+    '👨🏿‍🫯‍👨🏾' => 'jugadors de lluita: pell molt fosca i pell fosca',
     '👨🏻‍❤‍👨🏻' => 'parella amb un cor: home, home i pell molt clara',
     '👨🏻‍❤‍👨🏼' => 'parella amb un cor: home, home, pell molt clara i pell bastant clara',
     '👨🏻‍❤‍👨🏽' => 'parella amb un cor: home, home, pell molt clara i pell morena',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'parella amb un cor: home, home, pell molt fosca i pell morena',
     '👨🏿‍❤‍👨🏾' => 'parella amb un cor: home, home, pell molt fosca i pell fosca',
     '👨🏿‍❤‍👨🏿' => 'parella amb un cor: home, home i pell molt fosca',
+    '👨🏻‍🐰‍👨🏼' => 'homes que ballen disfressats: pell molt clara i pell bastant clara',
+    '👨🏻‍🐰‍👨🏽' => 'homes que ballen disfressats: pell molt clara i pell morena',
+    '👨🏻‍🐰‍👨🏾' => 'homes que ballen disfressats: pell molt clara i pell fosca',
+    '👨🏻‍🐰‍👨🏿' => 'homes que ballen disfressats: pell molt clara i pell molt fosca',
+    '👨🏼‍🐰‍👨🏻' => 'homes que ballen disfressats: pell bastant clara i pell molt clara',
+    '👨🏼‍🐰‍👨🏽' => 'homes que ballen disfressats: pell bastant clara i pell morena',
+    '👨🏼‍🐰‍👨🏾' => 'homes que ballen disfressats: pell bastant clara i pell fosca',
+    '👨🏼‍🐰‍👨🏿' => 'homes que ballen disfressats: pell bastant clara i pell molt fosca',
+    '👨🏽‍🐰‍👨🏻' => 'homes que ballen disfressats: pell morena i pell molt clara',
+    '👨🏽‍🐰‍👨🏼' => 'homes que ballen disfressats: pell morena i pell bastant clara',
+    '👨🏽‍🐰‍👨🏾' => 'homes que ballen disfressats: pell morena i pell fosca',
+    '👨🏽‍🐰‍👨🏿' => 'homes que ballen disfressats: pell morena i pell molt fosca',
+    '👨🏾‍🐰‍👨🏻' => 'homes que ballen disfressats: pell fosca i pell molt clara',
+    '👨🏾‍🐰‍👨🏼' => 'homes que ballen disfressats: pell fosca i pell bastant clara',
+    '👨🏾‍🐰‍👨🏽' => 'homes que ballen disfressats: pell fosca i pell morena',
+    '👨🏾‍🐰‍👨🏿' => 'homes que ballen disfressats: pell fosca i pell molt fosca',
+    '👨🏿‍🐰‍👨🏻' => 'homes que ballen disfressats: pell molt fosca i pell molt clara',
+    '👨🏿‍🐰‍👨🏼' => 'homes que ballen disfressats: pell molt fosca i pell bastant clara',
+    '👨🏿‍🐰‍👨🏽' => 'homes que ballen disfressats: pell molt fosca i pell morena',
+    '👨🏿‍🐰‍👨🏾' => 'homes que ballen disfressats: pell molt fosca i pell fosca',
+    '👩🏻‍🫯‍👩🏼' => 'jugadores de lluita: pell molt clara i pell bastant clara',
+    '👩🏻‍🫯‍👩🏽' => 'jugadores de lluita: pell molt clara i pell morena',
+    '👩🏻‍🫯‍👩🏾' => 'jugadores de lluita: pell molt clara i pell fosca',
+    '👩🏻‍🫯‍👩🏿' => 'jugadores de lluita: pell molt clara i pell molt fosca',
+    '👩🏼‍🫯‍👩🏻' => 'jugadores de lluita: pell bastant clara i pell molt clara',
+    '👩🏼‍🫯‍👩🏽' => 'jugadores de lluita: pell bastant clara i pell morena',
+    '👩🏼‍🫯‍👩🏾' => 'jugadores de lluita: pell bastant clara i pell fosca',
+    '👩🏼‍🫯‍👩🏿' => 'jugadores de lluita: pell bastant clara i pell molt fosca',
+    '👩🏽‍🫯‍👩🏻' => 'jugadores de lluita: pell morena i pell molt clara',
+    '👩🏽‍🫯‍👩🏼' => 'jugadores de lluita: pell morena i pell bastant clara',
+    '👩🏽‍🫯‍👩🏾' => 'jugadores de lluita: pell morena i pell fosca',
+    '👩🏽‍🫯‍👩🏿' => 'jugadores de lluita: pell morena i pell molt fosca',
+    '👩🏾‍🫯‍👩🏻' => 'jugadores de lluita: pell fosca i pell molt clara',
+    '👩🏾‍🫯‍👩🏼' => 'jugadores de lluita: pell fosca i pell bastant clara',
+    '👩🏾‍🫯‍👩🏽' => 'jugadores de lluita: pell fosca i pell morena',
+    '👩🏾‍🫯‍👩🏿' => 'jugadores de lluita: pell fosca i pell molt fosca',
+    '👩🏿‍🫯‍👩🏻' => 'jugadores de lluita: pell molt fosca i pell molt clara',
+    '👩🏿‍🫯‍👩🏼' => 'jugadores de lluita: pell molt fosca i pell bastant clara',
+    '👩🏿‍🫯‍👩🏽' => 'jugadores de lluita: pell molt fosca i pell morena',
+    '👩🏿‍🫯‍👩🏾' => 'jugadores de lluita: pell molt fosca i pell fosca',
     '👩🏻‍❤‍👨🏻' => 'parella amb un cor: dona, home i pell molt clara',
     '👩🏻‍❤‍👨🏼' => 'parella amb un cor: dona, home, pell molt clara i pell bastant clara',
     '👩🏻‍❤‍👨🏽' => 'parella amb un cor: dona, home, pell molt clara i pell morena',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'parella amb un cor: dona, dona, pell molt fosca i pell morena',
     '👩🏿‍❤‍👩🏾' => 'parella amb un cor: dona, dona, pell molt fosca i pell fosca',
     '👩🏿‍❤‍👩🏿' => 'parella amb un cor: dona, dona i pell molt fosca',
+    '👩🏻‍🐰‍👩🏼' => 'dones que ballen disfressades: pell molt clara i pell bastant clara',
+    '👩🏻‍🐰‍👩🏽' => 'dones que ballen disfressades: pell molt clara i pell morena',
+    '👩🏻‍🐰‍👩🏾' => 'dones que ballen disfressades: pell molt clara i pell fosca',
+    '👩🏻‍🐰‍👩🏿' => 'dones que ballen disfressades: pell molt clara i pell molt fosca',
+    '👩🏼‍🐰‍👩🏻' => 'dones que ballen disfressades: pell bastant clara i pell molt clara',
+    '👩🏼‍🐰‍👩🏽' => 'dones que ballen disfressades: pell bastant clara i pell morena',
+    '👩🏼‍🐰‍👩🏾' => 'dones que ballen disfressades: pell bastant clara i pell fosca',
+    '👩🏼‍🐰‍👩🏿' => 'dones que ballen disfressades: pell bastant clara i pell molt fosca',
+    '👩🏽‍🐰‍👩🏻' => 'dones que ballen disfressades: pell morena i pell molt clara',
+    '👩🏽‍🐰‍👩🏼' => 'dones que ballen disfressades: pell morena i pell bastant clara',
+    '👩🏽‍🐰‍👩🏾' => 'dones que ballen disfressades: pell morena i pell fosca',
+    '👩🏽‍🐰‍👩🏿' => 'dones que ballen disfressades: pell morena i pell molt fosca',
+    '👩🏾‍🐰‍👩🏻' => 'dones que ballen disfressades: pell fosca i pell molt clara',
+    '👩🏾‍🐰‍👩🏼' => 'dones que ballen disfressades: pell fosca i pell bastant clara',
+    '👩🏾‍🐰‍👩🏽' => 'dones que ballen disfressades: pell fosca i pell morena',
+    '👩🏾‍🐰‍👩🏿' => 'dones que ballen disfressades: pell fosca i pell molt fosca',
+    '👩🏿‍🐰‍👩🏻' => 'dones que ballen disfressades: pell molt fosca i pell molt clara',
+    '👩🏿‍🐰‍👩🏼' => 'dones que ballen disfressades: pell molt fosca i pell bastant clara',
+    '👩🏿‍🐰‍👩🏽' => 'dones que ballen disfressades: pell molt fosca i pell morena',
+    '👩🏿‍🐰‍👩🏾' => 'dones que ballen disfressades: pell molt fosca i pell fosca',
     '🧑🏻‍🤝‍🧑🏻' => 'persones que s’agafen de la mà: pell molt clara',
     '🧑🏻‍🤝‍🧑🏼' => 'persones que s’agafen de la mà: pell molt clara i pell bastant clara',
     '🧑🏻‍🤝‍🧑🏽' => 'persones que s’agafen de la mà: pell molt clara i pell morena',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bandera: Escòcia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bandera: Gal·les',
     '🧑‍🧑‍🧒‍🧒' => 'família: adult, adult, infant, infant',
-    '🚶🏻‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏼‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏽‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏾‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏿‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶🏻‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏼‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏽‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏾‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🚶🏿‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🧎🏻‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏼‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏽‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏾‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏿‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎🏻‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏼‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏽‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏾‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧎🏿‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧑🏻‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏼‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏽‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏾‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏿‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '👨🏻‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏼‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏽‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏾‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👨🏿‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👩🏻‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏼‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏽‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏾‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '👩🏿‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '🧑🏻‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏼‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏽‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏾‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏿‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏻‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏼‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏽‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏾‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨🏿‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏻‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏼‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏽‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏾‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩🏿‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑🏻‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏼‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏽‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏾‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '🧑🏿‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '👨🏻‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏼‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏽‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏾‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👨🏿‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👩🏻‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏼‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏽‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏾‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '👩🏿‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '🏃🏻‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏼‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏽‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏾‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏿‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃🏻‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏼‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏽‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏾‍♂‍➡' => 'home que corre que mira a la dreta',
-    '🏃🏿‍♂‍➡' => 'home que corre que mira a la dreta',
+    '🚶🏻‍♀‍➡' => 'dona que camina: pell molt clara i que mira a la dreta',
+    '🚶🏼‍♀‍➡' => 'dona que camina: pell bastant clara i que mira a la dreta',
+    '🚶🏽‍♀‍➡' => 'dona que camina: pell morena i que mira a la dreta',
+    '🚶🏾‍♀‍➡' => 'dona que camina: pell fosca i que mira a la dreta',
+    '🚶🏿‍♀‍➡' => 'dona que camina: pell molt fosca i que mira a la dreta',
+    '🚶🏻‍♂‍➡' => 'home que camina: pell molt clara i que mira a la dreta',
+    '🚶🏼‍♂‍➡' => 'home que camina: pell bastant clara i que mira a la dreta',
+    '🚶🏽‍♂‍➡' => 'home que camina: pell morena i que mira a la dreta',
+    '🚶🏾‍♂‍➡' => 'home que camina: pell fosca i que mira a la dreta',
+    '🚶🏿‍♂‍➡' => 'home que camina: pell molt fosca i que mira a la dreta',
+    '🧎🏻‍♀‍➡' => 'dona agenollada: pell molt clara i que mira a la dreta',
+    '🧎🏼‍♀‍➡' => 'dona agenollada: pell bastant clara i que mira a la dreta',
+    '🧎🏽‍♀‍➡' => 'dona agenollada: pell morena i que mira a la dreta',
+    '🧎🏾‍♀‍➡' => 'dona agenollada: pell fosca i que mira a la dreta',
+    '🧎🏿‍♀‍➡' => 'dona agenollada: pell molt fosca i que mira a la dreta',
+    '🧎🏻‍♂‍➡' => 'home agenollat: pell molt clara i que mira a la dreta',
+    '🧎🏼‍♂‍➡' => 'home agenollat: pell bastant clara i que mira a la dreta',
+    '🧎🏽‍♂‍➡' => 'home agenollat: pell morena i que mira a la dreta',
+    '🧎🏾‍♂‍➡' => 'home agenollat: pell fosca i que mira a la dreta',
+    '🧎🏿‍♂‍➡' => 'home agenollat: pell molt fosca i que mira a la dreta',
+    '🧑🏻‍🦯‍➡' => 'persona amb un bastó per a invidents: pell molt clara i que mira a la dreta',
+    '🧑🏼‍🦯‍➡' => 'persona amb un bastó per a invidents: pell bastant clara i que mira a la dreta',
+    '🧑🏽‍🦯‍➡' => 'persona amb un bastó per a invidents: pell morena i que mira a la dreta',
+    '🧑🏾‍🦯‍➡' => 'persona amb un bastó per a invidents: pell fosca i que mira a la dreta',
+    '🧑🏿‍🦯‍➡' => 'persona amb un bastó per a invidents: pell molt fosca i que mira a la dreta',
+    '👨🏻‍🦯‍➡' => 'home amb un bastó per a invidents: pell molt clara i que mira a la dreta',
+    '👨🏼‍🦯‍➡' => 'home amb un bastó per a invidents: pell bastant clara i que mira a la dreta',
+    '👨🏽‍🦯‍➡' => 'home amb un bastó per a invidents: pell morena i que mira a la dreta',
+    '👨🏾‍🦯‍➡' => 'home amb un bastó per a invidents: pell fosca i que mira a la dreta',
+    '👨🏿‍🦯‍➡' => 'home amb un bastó per a invidents: pell molt fosca i que mira a la dreta',
+    '👩🏻‍🦯‍➡' => 'dona amb un bastó per a invidents: pell molt clara i que mira a la dreta',
+    '👩🏼‍🦯‍➡' => 'dona amb un bastó per a invidents: pell bastant clara i que mira a la dreta',
+    '👩🏽‍🦯‍➡' => 'dona amb un bastó per a invidents: pell morena i que mira a la dreta',
+    '👩🏾‍🦯‍➡' => 'dona amb un bastó per a invidents: pell fosca i que mira a la dreta',
+    '👩🏿‍🦯‍➡' => 'dona amb un bastó per a invidents: pell molt fosca i que mira a la dreta',
+    '🧑🏻‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell molt clara i que mira a la dreta',
+    '🧑🏼‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell bastant clara i que mira a la dreta',
+    '🧑🏽‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell morena i que mira a la dreta',
+    '🧑🏾‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell fosca i que mira a la dreta',
+    '🧑🏿‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: pell molt fosca i que mira a la dreta',
+    '👨🏻‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell molt clara i que mira a la dreta',
+    '👨🏼‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell bastant clara i que mira a la dreta',
+    '👨🏽‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell morena i que mira a la dreta',
+    '👨🏾‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell fosca i que mira a la dreta',
+    '👨🏿‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: pell molt fosca i que mira a la dreta',
+    '👩🏻‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell molt clara i que mira a la dreta',
+    '👩🏼‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell bastant clara i que mira a la dreta',
+    '👩🏽‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell morena i que mira a la dreta',
+    '👩🏾‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell fosca i que mira a la dreta',
+    '👩🏿‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: pell molt fosca i que mira a la dreta',
+    '🧑🏻‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell molt clara i que mira a la dreta',
+    '🧑🏼‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell bastant clara i que mira a la dreta',
+    '🧑🏽‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell morena i que mira a la dreta',
+    '🧑🏾‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell fosca i que mira a la dreta',
+    '🧑🏿‍🦽‍➡' => 'persona amb una cadira de rodes manual: pell molt fosca i que mira a la dreta',
+    '👨🏻‍🦽‍➡' => 'home amb una cadira de rodes manual: pell molt clara i que mira a la dreta',
+    '👨🏼‍🦽‍➡' => 'home amb una cadira de rodes manual: pell bastant clara i que mira a la dreta',
+    '👨🏽‍🦽‍➡' => 'home amb una cadira de rodes manual: pell morena i que mira a la dreta',
+    '👨🏾‍🦽‍➡' => 'home amb una cadira de rodes manual: pell fosca i que mira a la dreta',
+    '👨🏿‍🦽‍➡' => 'home amb una cadira de rodes manual: pell molt fosca i que mira a la dreta',
+    '👩🏻‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell molt clara i que mira a la dreta',
+    '👩🏼‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell bastant clara i que mira a la dreta',
+    '👩🏽‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell morena i que mira a la dreta',
+    '👩🏾‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell fosca i que mira a la dreta',
+    '👩🏿‍🦽‍➡' => 'dona amb una cadira de rodes manual: pell molt fosca i que mira a la dreta',
+    '🏃🏻‍♀‍➡' => 'dona que corre: pell molt clara i que mira a la dreta',
+    '🏃🏼‍♀‍➡' => 'dona que corre: pell bastant clara i que mira a la dreta',
+    '🏃🏽‍♀‍➡' => 'dona que corre: pell morena i que mira a la dreta',
+    '🏃🏾‍♀‍➡' => 'dona que corre: pell fosca i que mira a la dreta',
+    '🏃🏿‍♀‍➡' => 'dona que corre: pell molt fosca i que mira a la dreta',
+    '🏃🏻‍♂‍➡' => 'home que corre: pell molt clara i que mira a la dreta',
+    '🏃🏼‍♂‍➡' => 'home que corre: pell bastant clara i que mira a la dreta',
+    '🏃🏽‍♂‍➡' => 'home que corre: pell morena i que mira a la dreta',
+    '🏃🏾‍♂‍➡' => 'home que corre: pell fosca i que mira a la dreta',
+    '🏃🏿‍♂‍➡' => 'home que corre: pell molt fosca i que mira a la dreta',
     '🫱🏻‍🫲🏼' => 'encaixada de mans: pell molt clara i pell bastant clara',
     '🫱🏻‍🫲🏽' => 'encaixada de mans: pell molt clara i pell morena',
     '🫱🏻‍🫲🏾' => 'encaixada de mans: pell molt clara i pell fosca',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'encaixada de mans: pell molt fosca i pell bastant clara',
     '🫱🏿‍🫲🏽' => 'encaixada de mans: pell molt fosca i pell morena',
     '🫱🏿‍🫲🏾' => 'encaixada de mans: pell molt fosca i pell fosca',
-    '🚶‍♀‍➡' => 'dona que camina que mira a la dreta',
-    '🚶‍♂‍➡' => 'home que camina que mira a la dreta',
-    '🧎‍♀‍➡' => 'dona agenollada que mira a la dreta',
-    '🧎‍♂‍➡' => 'home agenollat que mira a la dreta',
-    '🧑‍🦯‍➡' => 'persona amb un bastó per a invidents que mira a la dreta',
-    '👨‍🦯‍➡' => 'home amb un bastó per a invidents que mira a la dreta',
-    '👩‍🦯‍➡' => 'dona amb un bastó per a invidents que mira a la dreta',
-    '🧑‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica que mira a la dreta',
-    '👨‍🦼‍➡' => 'home amb una cadira de rodes elèctrica que mira a la dreta',
-    '👩‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica que mira a la dreta',
-    '🧑‍🦽‍➡' => 'persona amb una cadira de rodes manual que mira a la dreta',
-    '👨‍🦽‍➡' => 'home amb una cadira de rodes manual que mira a la dreta',
-    '👩‍🦽‍➡' => 'dona amb una cadira de rodes manual que mira a la dreta',
-    '🏃‍♀‍➡' => 'dona que corre que mira a la dreta',
-    '🏃‍♂‍➡' => 'home que corre que mira a la dreta',
+    '🚶‍♀‍➡' => 'dona que camina: que mira a la dreta',
+    '🚶‍♂‍➡' => 'home que camina: que mira a la dreta',
+    '🧎‍♀‍➡' => 'dona agenollada: que mira a la dreta',
+    '🧎‍♂‍➡' => 'home agenollat: que mira a la dreta',
+    '🧑‍🦯‍➡' => 'persona amb un bastó per a invidents: que mira a la dreta',
+    '👨‍🦯‍➡' => 'home amb un bastó per a invidents: que mira a la dreta',
+    '👩‍🦯‍➡' => 'dona amb un bastó per a invidents: que mira a la dreta',
+    '🧑‍🦼‍➡' => 'persona amb una cadira de rodes elèctrica: que mira a la dreta',
+    '👨‍🦼‍➡' => 'home amb una cadira de rodes elèctrica: que mira a la dreta',
+    '👩‍🦼‍➡' => 'dona amb una cadira de rodes elèctrica: que mira a la dreta',
+    '🧑‍🦽‍➡' => 'persona amb una cadira de rodes manual: que mira a la dreta',
+    '👨‍🦽‍➡' => 'home amb una cadira de rodes manual: que mira a la dreta',
+    '👩‍🦽‍➡' => 'dona amb una cadira de rodes manual: que mira a la dreta',
+    '🏃‍♀‍➡' => 'dona que corre: que mira a la dreta',
+    '🏃‍♂‍➡' => 'home que corre: que mira a la dreta',
     '👩‍❤‍👨' => 'parella amb un cor: dona i home',
     '👨‍❤‍👨' => 'parella amb un cor: home i home',
     '👩‍❤‍👩' => 'parella amb un cor: dona i dona',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'persona: pell morena i calvície',
     '🧑🏾‍🦲' => 'persona: pell fosca i calvície',
     '🧑🏿‍🦲' => 'persona: pell molt fosca i calvície',
+    '🧑🏻‍🩰' => 'ballarí de ballet: pell molt clara',
+    '🧑🏼‍🩰' => 'ballarí de ballet: pell bastant clara',
+    '🧑🏽‍🩰' => 'ballarí de ballet: pell morena',
+    '🧑🏾‍🩰' => 'ballarí de ballet: pell fosca',
+    '🧑🏿‍🩰' => 'ballarí de ballet: pell molt fosca',
     '🧔🏻‍♂' => 'home: pell molt clara i barba',
     '🧔🏼‍♂' => 'home: pell bastant clara i barba',
     '🧔🏽‍♂' => 'home: pell morena i barba',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'dona que camina: pell morena',
     '🚶🏾‍♀' => 'dona que camina: pell fosca',
     '🚶🏿‍♀' => 'dona que camina: pell molt fosca',
-    '🚶🏻‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏼‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏽‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏾‍➡' => 'persona que camina que mira a la dreta',
-    '🚶🏿‍➡' => 'persona que camina que mira a la dreta',
+    '🚶🏻‍➡' => 'persona que camina: pell molt clara i que mira a la dreta',
+    '🚶🏼‍➡' => 'persona que camina: pell bastant clara i que mira a la dreta',
+    '🚶🏽‍➡' => 'persona que camina: pell morena i que mira a la dreta',
+    '🚶🏾‍➡' => 'persona que camina: pell fosca i que mira a la dreta',
+    '🚶🏿‍➡' => 'persona que camina: pell molt fosca i que mira a la dreta',
     '🧍🏻‍♂' => 'home dret: pell molt clara',
     '🧍🏼‍♂' => 'home dret: pell bastant clara',
     '🧍🏽‍♂' => 'home dret: pell morena',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'dona agenollada: pell morena',
     '🧎🏾‍♀' => 'dona agenollada: pell fosca',
     '🧎🏿‍♀' => 'dona agenollada: pell molt fosca',
-    '🧎🏻‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏼‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏽‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏾‍➡' => 'persona agenollada que mira a la dreta',
-    '🧎🏿‍➡' => 'persona agenollada que mira a la dreta',
+    '🧎🏻‍➡' => 'persona agenollada: pell molt clara i que mira a la dreta',
+    '🧎🏼‍➡' => 'persona agenollada: pell bastant clara i que mira a la dreta',
+    '🧎🏽‍➡' => 'persona agenollada: pell morena i que mira a la dreta',
+    '🧎🏾‍➡' => 'persona agenollada: pell fosca i que mira a la dreta',
+    '🧎🏿‍➡' => 'persona agenollada: pell molt fosca i que mira a la dreta',
     '🧑🏻‍🦯' => 'persona amb un bastó per a invidents: pell molt clara',
     '🧑🏼‍🦯' => 'persona amb un bastó per a invidents: pell bastant clara',
     '🧑🏽‍🦯' => 'persona amb un bastó per a invidents: pell morena',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'dona que corre: pell morena',
     '🏃🏾‍♀' => 'dona que corre: pell fosca',
     '🏃🏿‍♀' => 'dona que corre: pell molt fosca',
-    '🏃🏻‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏼‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏽‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏾‍➡' => 'persona que corre que mira a la dreta',
-    '🏃🏿‍➡' => 'persona que corre que mira a la dreta',
+    '🏃🏻‍➡' => 'persona que corre: pell molt clara i que mira a la dreta',
+    '🏃🏼‍➡' => 'persona que corre: pell bastant clara i que mira a la dreta',
+    '🏃🏽‍➡' => 'persona que corre: pell morena i que mira a la dreta',
+    '🏃🏾‍➡' => 'persona que corre: pell fosca i que mira a la dreta',
+    '🏃🏿‍➡' => 'persona que corre: pell molt fosca i que mira a la dreta',
+    '👯🏻‍♀' => 'dones que ballen disfressades: pell molt clara',
+    '👯🏼‍♀' => 'dones que ballen disfressades: pell bastant clara',
+    '👯🏽‍♀' => 'dones que ballen disfressades: pell morena',
+    '👯🏾‍♀' => 'dones que ballen disfressades: pell fosca',
+    '👯🏿‍♀' => 'dones que ballen disfressades: pell molt fosca',
+    '👯🏻‍♂' => 'homes que ballen disfressats: pell molt clara',
+    '👯🏼‍♂' => 'homes que ballen disfressats: pell bastant clara',
+    '👯🏽‍♂' => 'homes que ballen disfressats: pell morena',
+    '👯🏾‍♂' => 'homes que ballen disfressats: pell fosca',
+    '👯🏿‍♂' => 'homes que ballen disfressats: pell molt fosca',
     '🧖🏻‍♂' => 'home a la sauna: pell molt clara',
     '🧖🏼‍♂' => 'home a la sauna: pell bastant clara',
     '🧖🏽‍♂' => 'home a la sauna: pell morena',
@@ -1190,16 +1325,16 @@
     '⛹🏽‍♀' => 'dona amb una pilota: pell morena',
     '⛹🏾‍♀' => 'dona amb una pilota: pell fosca',
     '⛹🏿‍♀' => 'dona amb una pilota: pell molt fosca',
-    '🏋🏻‍♂' => 'home que aixeca peses: pell molt clara',
-    '🏋🏼‍♂' => 'home que aixeca peses: pell bastant clara',
-    '🏋🏽‍♂' => 'home que aixeca peses: pell morena',
-    '🏋🏾‍♂' => 'home que aixeca peses: pell fosca',
-    '🏋🏿‍♂' => 'home que aixeca peses: pell molt fosca',
-    '🏋🏻‍♀' => 'dona que aixeca peses: pell molt clara',
-    '🏋🏼‍♀' => 'dona que aixeca peses: pell bastant clara',
-    '🏋🏽‍♀' => 'dona que aixeca peses: pell morena',
-    '🏋🏾‍♀' => 'dona que aixeca peses: pell fosca',
-    '🏋🏿‍♀' => 'dona que aixeca peses: pell molt fosca',
+    '🏋🏻‍♂' => 'home que aixeca pesos: pell molt clara',
+    '🏋🏼‍♂' => 'home que aixeca pesos: pell bastant clara',
+    '🏋🏽‍♂' => 'home que aixeca pesos: pell morena',
+    '🏋🏾‍♂' => 'home que aixeca pesos: pell fosca',
+    '🏋🏿‍♂' => 'home que aixeca pesos: pell molt fosca',
+    '🏋🏻‍♀' => 'dona que aixeca pesos: pell molt clara',
+    '🏋🏼‍♀' => 'dona que aixeca pesos: pell bastant clara',
+    '🏋🏽‍♀' => 'dona que aixeca pesos: pell morena',
+    '🏋🏾‍♀' => 'dona que aixeca pesos: pell fosca',
+    '🏋🏿‍♀' => 'dona que aixeca pesos: pell molt fosca',
     '🚴🏻‍♂' => 'ciclista home: pell molt clara',
     '🚴🏼‍♂' => 'ciclista home: pell bastant clara',
     '🚴🏽‍♂' => 'ciclista home: pell morena',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'dona que fa la roda: pell morena',
     '🤸🏾‍♀' => 'dona que fa la roda: pell fosca',
     '🤸🏿‍♀' => 'dona que fa la roda: pell molt fosca',
+    '🤼🏻‍♀' => 'jugadores de lluita: pell molt clara',
+    '🤼🏼‍♀' => 'jugadores de lluita: pell bastant clara',
+    '🤼🏽‍♀' => 'jugadores de lluita: pell morena',
+    '🤼🏾‍♀' => 'jugadores de lluita: pell fosca',
+    '🤼🏿‍♀' => 'jugadores de lluita: pell molt fosca',
+    '🤼🏻‍♂' => 'jugadors de lluita: pell molt clara',
+    '🤼🏼‍♂' => 'jugadors de lluita: pell bastant clara',
+    '🤼🏽‍♂' => 'jugadors de lluita: pell morena',
+    '🤼🏾‍♂' => 'jugadors de lluita: pell fosca',
+    '🤼🏿‍♂' => 'jugadors de lluita: pell molt fosca',
     '🤽🏻‍♂' => 'jugador de waterpolo: pell molt clara',
     '🤽🏼‍♂' => 'jugador de waterpolo: pell bastant clara',
     '🤽🏽‍♂' => 'jugador de waterpolo: pell morena',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'dona: cabells arrissats',
     '👩‍🦳' => 'dona: cabells blancs',
     '👩‍🦲' => 'dona: calvície',
-    '🚶‍➡' => 'persona que camina que mira a la dreta',
-    '🧎‍➡' => 'persona agenollada que mira a la dreta',
-    '🏃‍➡' => 'persona que corre que mira a la dreta',
+    '🚶‍➡' => 'persona que camina: que mira a la dreta',
+    '🧎‍➡' => 'persona agenollada: que mira a la dreta',
+    '🏃‍➡' => 'persona que corre: que mira a la dreta',
     '👨‍👦' => 'família: home i noi',
     '👨‍👧' => 'família: home i noia',
     '👩‍👦' => 'família: dona i noi',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'dona amb una cadira de rodes manual',
     '🏃‍♂' => 'home que corre',
     '🏃‍♀' => 'dona que corre',
+    '🧑‍🩰' => 'ballarí de ballet',
     '👯‍♂' => 'homes que ballen disfressats',
     '👯‍♀' => 'dones que ballen disfressades',
     '🧖‍♂' => 'home a la sauna',
@@ -1441,8 +1587,8 @@
     '🏊‍♀' => 'dona que neda',
     '⛹‍♂' => 'home amb una pilota',
     '⛹‍♀' => 'dona amb una pilota',
-    '🏋‍♂' => 'home que aixeca peses',
-    '🏋‍♀' => 'dona que aixeca peses',
+    '🏋‍♂' => 'home que aixeca pesos',
+    '🏋‍♀' => 'dona que aixeca pesos',
     '🚴‍♂' => 'ciclista home',
     '🚴‍♀' => 'ciclista dona',
     '🚵‍♂' => 'ciclista de muntanya home',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'home de negocis que levita: pell morena',
     '🕴🏾' => 'home de negocis que levita: pell fosca',
     '🕴🏿' => 'home de negocis que levita: pell molt fosca',
+    '👯🏻' => 'persones que ballen disfressades: pell molt clara',
+    '👯🏼' => 'persones que ballen disfressades: pell bastant clara',
+    '👯🏽' => 'persones que ballen disfressades: pell morena',
+    '👯🏾' => 'persones que ballen disfressades: pell fosca',
+    '👯🏿' => 'persones que ballen disfressades: pell molt fosca',
     '🧖🏻' => 'persona a la sauna: pell molt clara',
     '🧖🏼' => 'persona a la sauna: pell bastant clara',
     '🧖🏽' => 'persona a la sauna: pell morena',
@@ -2051,11 +2202,11 @@
     '⛹🏽' => 'persona amb una pilota: pell morena',
     '⛹🏾' => 'persona amb una pilota: pell fosca',
     '⛹🏿' => 'persona amb una pilota: pell molt fosca',
-    '🏋🏻' => 'persona que aixeca peses: pell molt clara',
-    '🏋🏼' => 'persona que aixeca peses: pell bastant clara',
-    '🏋🏽' => 'persona que aixeca peses: pell morena',
-    '🏋🏾' => 'persona que aixeca peses: pell fosca',
-    '🏋🏿' => 'persona que aixeca peses: pell molt fosca',
+    '🏋🏻' => 'persona que aixeca pesos: pell molt clara',
+    '🏋🏼' => 'persona que aixeca pesos: pell bastant clara',
+    '🏋🏽' => 'persona que aixeca pesos: pell morena',
+    '🏋🏾' => 'persona que aixeca pesos: pell fosca',
+    '🏋🏿' => 'persona que aixeca pesos: pell molt fosca',
     '🚴🏻' => 'ciclista: pell molt clara',
     '🚴🏼' => 'ciclista: pell bastant clara',
     '🚴🏽' => 'ciclista: pell morena',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persona que fa la roda: pell morena',
     '🤸🏾' => 'persona que fa la roda: pell fosca',
     '🤸🏿' => 'persona que fa la roda: pell molt fosca',
+    '🤼🏻' => 'persones que lluiten: pell molt clara',
+    '🤼🏼' => 'persones que lluiten: pell bastant clara',
+    '🤼🏽' => 'persones que lluiten: pell morena',
+    '🤼🏾' => 'persones que lluiten: pell fosca',
+    '🤼🏿' => 'persones que lluiten: pell molt fosca',
     '🤽🏻' => 'persona que juga a waterpolo: pell molt clara',
     '🤽🏼' => 'persona que juga a waterpolo: pell bastant clara',
     '🤽🏽' => 'persona que juga a waterpolo: pell morena',
@@ -2391,13 +2547,6 @@
     '🏽' => 'pell morena',
     '🏾' => 'pell fosca',
     '🏿' => 'pell molt fosca',
-    '🪉' => 'arpa',
-    '🪏' => 'pala',
-    '🪾' => 'arbre sense fulles',
-    '🫆' => 'empremta dactilar',
-    '🫜' => 'tubercle',
-    '🫟' => 'esquitx',
-    '🫩' => 'cara ullerosa',
     '😀' => 'cara molt somrient',
     '😃' => 'cara molt somrient amb els ulls ben oberts',
     '😄' => 'cara amb rialla i els ulls somrients',
@@ -2451,6 +2600,7 @@
     '😪' => 'cara de son',
     '🤤' => 'cara que baveja',
     '😴' => 'cara de dormir',
+    '🫩' => 'cara ullerosa',
     '😷' => 'cara amb mascareta',
     '🤒' => 'cara amb termòmetre',
     '🤕' => 'cara amb el cap embenat',
@@ -2477,6 +2627,7 @@
     '😯' => 'cara de sorpresa',
     '😲' => 'cara estupefacta',
     '😳' => 'cara enrojolada',
+    '🫪' => 'cara distorsionada',
     '🥺' => 'cara de súplica',
     '🥹' => 'cara que s’aguanta les llàgrimes',
     '😦' => 'cara emmurriada amb la boca oberta',
@@ -2548,6 +2699,7 @@
     '💋' => 'marca de petó',
     '💯' => '100 punts',
     '💢' => 'símbol d’enuig',
+    '🫯' => 'núvol de baralla',
     '💥' => 'col·lisió',
     '💫' => 'mareig',
     '💦' => 'gotes de suor',
@@ -2671,6 +2823,7 @@
     '🧞' => 'geni',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'criatura peluda',
     '💆' => 'persona que rep un massatge al cap',
     '💇' => 'persona que es talla els cabells',
     '🚶' => 'persona que camina',
@@ -2692,7 +2845,7 @@
     '🚣' => 'persona que rema en una barca',
     '🏊' => 'persona que neda',
     '⛹' => 'persona amb una pilota',
-    '🏋' => 'persona que aixeca peses',
+    '🏋' => 'persona que aixeca pesos',
     '🚴' => 'ciclista',
     '🚵' => 'ciclista de muntanya',
     '🤸' => 'persona que fa la roda',
@@ -2714,6 +2867,7 @@
     '🫂' => 'persones que s’abracen',
     '👪' => 'família',
     '👣' => 'petjades',
+    '🫆' => 'empremta dactilar',
     '🦰' => 'cabells vermells',
     '🦱' => 'cabells arrissats',
     '🦳' => 'cabells blancs',
@@ -2813,6 +2967,7 @@
     '🐳' => 'balena que treu aigua',
     '🐋' => 'balena',
     '🐬' => 'dofí',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'peix',
     '🐠' => 'peix tropical',
@@ -2822,6 +2977,11 @@
     '🐚' => 'cargol de mar',
     '🪸' => 'corall',
     '🪼' => 'medusa',
+    '🦀' => 'cranc',
+    '🦞' => 'llagosta',
+    '🦐' => 'gamba',
+    '🦑' => 'calamar',
+    '🦪' => 'ostra',
     '🐌' => 'cargol',
     '🦋' => 'papallona',
     '🐛' => 'eruga',
@@ -2866,6 +3026,7 @@
     '🪹' => 'niu buit',
     '🪺' => 'niu amb ous',
     '🍄' => 'bolet',
+    '🪾' => 'arbre sense fulles',
     '🍇' => 'raïm',
     '🍈' => 'meló',
     '🍉' => 'síndria',
@@ -2902,6 +3063,7 @@
     '🌰' => 'castanya',
     '🫚' => 'arrel de gingebre',
     '🫛' => 'beina de pèsol',
+    '🫜' => 'tubercle',
     '🍞' => 'pa',
     '🥐' => 'croissant',
     '🥖' => 'baguet',
@@ -2953,11 +3115,6 @@
     '🥟' => 'cresta xinesa',
     '🥠' => 'galeta de la sort',
     '🥡' => 'menjar per emportar',
-    '🦀' => 'cranc',
-    '🦞' => 'llagosta',
-    '🦐' => 'gamba',
-    '🦑' => 'calamar',
-    '🦪' => 'ostra',
     '🍦' => 'gelat de màquina',
     '🍧' => 'granissat',
     '🍨' => 'gelat',
@@ -3008,6 +3165,7 @@
     '🧭' => 'brúixola',
     '🏔' => 'muntanya amb neu al cim',
     '⛰' => 'muntanya',
+    '🛘' => 'esllevissada',
     '🌋' => 'volcà',
     '🗻' => 'mont Fuji',
     '🏕' => 'acampada',
@@ -3368,16 +3526,18 @@
     '🎧' => 'auricular',
     '📻' => 'ràdio',
     '🎷' => 'saxofon',
+    '🎺' => 'trompeta',
+    '🪊' => 'trombó',
     '🪗' => 'acordió',
     '🎸' => 'guitarra',
     '🎹' => 'teclat musical',
-    '🎺' => 'trompeta',
     '🎻' => 'violí',
     '🪕' => 'banjo',
     '🥁' => 'tambor',
     '🪘' => 'conga',
     '🪇' => 'maraques',
     '🪈' => 'flauta',
+    '🪉' => 'arpa',
     '📱' => 'telèfon mòbil',
     '📲' => 'telèfon mòbil amb fletxa',
     '☎' => 'telèfon',
@@ -3431,8 +3591,9 @@
     '📑' => 'marcadors',
     '🔖' => 'punt de llibre',
     '🏷' => 'etiqueta',
-    '💰' => 'bossa de diners',
     '🪙' => 'moneda',
+    '💰' => 'bossa de diners',
+    '🪎' => 'bagul del tresor',
     '💴' => 'bitllets de ien',
     '💵' => 'bitllets de dòlar',
     '💶' => 'bitllets d’euro',
@@ -3473,7 +3634,7 @@
     '📈' => 'gràfic d’augment',
     '📉' => 'gràfic de disminució',
     '📊' => 'gràfic de barres',
-    '📋' => 'porta-retalls',
+    '📋' => 'portanotes',
     '📌' => 'xinxeta',
     '📍' => 'xinxeta rodona',
     '📎' => 'clip',
@@ -3515,6 +3676,7 @@
     '🧰' => 'caixa d’eines',
     '🧲' => 'imant',
     '🪜' => 'escala de mà',
+    '🪏' => 'pala',
     '⚗' => 'alambí',
     '🧪' => 'tub d’assaig',
     '🧫' => 'placa de Petri',
@@ -3698,6 +3860,7 @@
     '✴' => 'estrella de vuit puntes',
     '❇' => 'espurna',
     '™' => 'marca comercial',
+    '🫟' => 'esquitx',
     '🔠' => 'botó de lletres llatines en majúscules',
     '🔡' => 'botó de lletres llatines en minúscules',
     '🔢' => 'botó de números',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ccp.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ccp.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ccp.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ccp.php	2026-05-20 10:56:49.000000000 +0200
@@ -375,6 +375,8 @@
     '🐟' => '𑄟𑄌𑄴',
     '🦈' => '𑄦𑄋𑄮𑄢𑄴 𑄟𑄌𑄴',
     '🐙' => '𑄃𑄧𑄇𑄴𑄑𑄮𑄛𑄌𑄴',
+    '🦀' => '𑄇𑄋𑄢',
+    '🦐' => '𑄄𑄎𑄳𑄠',
     '🐌' => '𑄥𑄟𑄪𑄇𑄴',
     '🦋' => '𑄛𑄖𑄳𑄦𑄴𑄛𑄧𑄖𑄴𑄨',
     '🐛' => '𑄇𑄧𑄢𑄧𑄢𑄴 𑄛𑄪𑄇𑄴',
@@ -437,8 +439,6 @@
     '🥗' => '𑄇𑄎 𑄣𑄘𑄖𑄴',
     '🍙' => '𑄞𑄖𑄴 𑄉𑄟𑄣',
     '🍚' => '𑄢𑄚𑄳𑄠𑄴 𑄞𑄖𑄴',
-    '🦀' => '𑄇𑄋𑄢',
-    '🦐' => '𑄄𑄎𑄳𑄠',
     '🍨' => '𑄃𑄌𑄴𑄇𑄳𑄢𑄨𑄟𑄴',
     '🍯' => '𑄟𑄧𑄙𑄪 𑄛𑄧𑄖𑄴',
     '🍼' => '𑄇𑄪𑄏𑄨 𑄌𑄨𑄌𑄴𑄨𑄇𑄴𑄮𑄢𑄴 𑄝𑄧𑄘𑄧𑄣𑄴',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-chr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-chr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-chr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-chr.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ᎠᏔᏪᏙᎢᏍᏗ: ᎠᎨᏯ, ᎠᎨᏯ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '👩🏿‍❤‍💋‍👩🏾' => 'ᎠᏔᏪᏙᎢᏍᏗ: ᎠᎨᏯ, ᎠᎨᏯ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '👩🏿‍❤‍💋‍👩🏿' => 'ᎠᏔᏪᏙᎢᏍᏗ: ᎠᎨᏯ, ᎠᎨᏯ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏻‍🫯‍🧑🏼' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🧑🏻‍🫯‍🧑🏽' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏻‍🫯‍🧑🏾' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏻‍🫯‍🧑🏿' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏼‍🫯‍🧑🏻' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🧑🏼‍🫯‍🧑🏽' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏼‍🫯‍🧑🏾' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏼‍🫯‍🧑🏿' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏽‍🫯‍🧑🏻' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🧑🏽‍🫯‍🧑🏼' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🧑🏽‍🫯‍🧑🏾' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏽‍🫯‍🧑🏿' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏾‍🫯‍🧑🏻' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🧑🏾‍🫯‍🧑🏼' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🧑🏾‍🫯‍🧑🏽' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏾‍🫯‍🧑🏿' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏿‍🫯‍🧑🏻' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🧑🏿‍🫯‍🧑🏼' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🧑🏿‍🫯‍🧑🏽' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏿‍🫯‍🧑🏾' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🧑🏻‍❤‍🧑🏼' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎤᏔᎾ, ᎤᏔᎾ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🧑🏻‍❤‍🧑🏽' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎤᏔᎾ, ᎤᏔᎾ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🧑🏻‍❤‍🧑🏾' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎤᏔᎾ, ᎤᏔᎾ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎤᏔᎾ, ᎤᏔᎾ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🧑🏿‍❤‍🧑🏽' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎤᏔᎾ, ᎤᏔᎾ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🧑🏿‍❤‍🧑🏾' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎤᏔᎾ, ᎤᏔᎾ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏻‍🐰‍🧑🏼' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🧑🏻‍🐰‍🧑🏽' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏻‍🐰‍🧑🏾' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏻‍🐰‍🧑🏿' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏼‍🐰‍🧑🏻' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🧑🏼‍🐰‍🧑🏽' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏼‍🐰‍🧑🏾' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏼‍🐰‍🧑🏿' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏽‍🐰‍🧑🏻' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🧑🏽‍🐰‍🧑🏼' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🧑🏽‍🐰‍🧑🏾' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏽‍🐰‍🧑🏿' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏾‍🐰‍🧑🏻' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🧑🏾‍🐰‍🧑🏼' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🧑🏾‍🐰‍🧑🏽' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏾‍🐰‍🧑🏿' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏿‍🐰‍🧑🏻' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🧑🏿‍🐰‍🧑🏼' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🧑🏿‍🐰‍🧑🏽' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏿‍🐰‍🧑🏾' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏻‍🫯‍👨🏼' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👨🏻‍🫯‍👨🏽' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏻‍🫯‍👨🏾' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏻‍🫯‍👨🏿' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏼‍🫯‍👨🏻' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👨🏼‍🫯‍👨🏽' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏼‍🫯‍👨🏾' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏼‍🫯‍👨🏿' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏽‍🫯‍👨🏻' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👨🏽‍🫯‍👨🏼' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👨🏽‍🫯‍👨🏾' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏽‍🫯‍👨🏿' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏾‍🫯‍👨🏻' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👨🏾‍🫯‍👨🏼' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👨🏾‍🫯‍👨🏽' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏾‍🫯‍👨🏿' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏿‍🫯‍👨🏻' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👨🏿‍🫯‍👨🏼' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👨🏿‍🫯‍👨🏽' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏿‍🫯‍👨🏾' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '👨🏻‍❤‍👨🏻' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᏍᎦᏯ, ᎠᏍᎦᏯ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
     '👨🏻‍❤‍👨🏼' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᏍᎦᏯ, ᎠᏍᎦᏯ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '👨🏻‍❤‍👨🏽' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᏍᎦᏯ, ᎠᏍᎦᏯ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᏍᎦᏯ, ᎠᏍᎦᏯ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '👨🏿‍❤‍👨🏾' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᏍᎦᏯ, ᎠᏍᎦᏯ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '👨🏿‍❤‍👨🏿' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᏍᎦᏯ, ᎠᏍᎦᏯ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏻‍🐰‍👨🏼' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👨🏻‍🐰‍👨🏽' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏻‍🐰‍👨🏾' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏻‍🐰‍👨🏿' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏼‍🐰‍👨🏻' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👨🏼‍🐰‍👨🏽' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏼‍🐰‍👨🏾' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏼‍🐰‍👨🏿' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏽‍🐰‍👨🏻' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👨🏽‍🐰‍👨🏼' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👨🏽‍🐰‍👨🏾' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏽‍🐰‍👨🏿' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏾‍🐰‍👨🏻' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👨🏾‍🐰‍👨🏼' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👨🏾‍🐰‍👨🏽' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏾‍🐰‍👨🏿' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏿‍🐰‍👨🏻' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👨🏿‍🐰‍👨🏼' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👨🏿‍🐰‍👨🏽' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👨🏿‍🐰‍👨🏾' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏻‍🫯‍👩🏼' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👩🏻‍🫯‍👩🏽' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏻‍🫯‍👩🏾' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏻‍🫯‍👩🏿' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏼‍🫯‍👩🏻' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👩🏼‍🫯‍👩🏽' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏼‍🫯‍👩🏾' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏼‍🫯‍👩🏿' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏽‍🫯‍👩🏻' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👩🏽‍🫯‍👩🏼' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👩🏽‍🫯‍👩🏾' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏽‍🫯‍👩🏿' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏾‍🫯‍👩🏻' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👩🏾‍🫯‍👩🏼' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👩🏾‍🫯‍👩🏽' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏾‍🫯‍👩🏿' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏿‍🫯‍👩🏻' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👩🏿‍🫯‍👩🏼' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👩🏿‍🫯‍👩🏽' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏿‍🫯‍👩🏾' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '👩🏻‍❤‍👨🏻' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᎨᏯ, ᎠᏍᎦᏯ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
     '👩🏻‍❤‍👨🏼' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᎨᏯ, ᎠᏍᎦᏯ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '👩🏻‍❤‍👨🏽' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᎨᏯ, ᎠᏍᎦᏯ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᎨᏯ, ᎠᎨᏯ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '👩🏿‍❤‍👩🏾' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᎨᏯ, ᎠᎨᏯ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '👩🏿‍❤‍👩🏿' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᎨᏯ, ᎠᎨᏯ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏻‍🐰‍👩🏼' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👩🏻‍🐰‍👩🏽' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏻‍🐰‍👩🏾' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏻‍🐰‍👩🏿' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏼‍🐰‍👩🏻' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👩🏼‍🐰‍👩🏽' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏼‍🐰‍👩🏾' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏼‍🐰‍👩🏿' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏽‍🐰‍👩🏻' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👩🏽‍🐰‍👩🏼' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👩🏽‍🐰‍👩🏾' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏽‍🐰‍👩🏿' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏾‍🐰‍👩🏻' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👩🏾‍🐰‍👩🏼' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👩🏾‍🐰‍👩🏽' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏾‍🐰‍👩🏿' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏿‍🐰‍👩🏻' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👩🏿‍🐰‍👩🏼' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👩🏿‍🐰‍👩🏽' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👩🏿‍🐰‍👩🏾' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🧑🏻‍🤝‍🧑🏻' => 'ᎠᏂᏴᏫ ᏚᎾᏙᏯᏂᎠ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
     '🧑🏻‍🤝‍🧑🏼' => 'ᎠᏂᏴᏫ ᏚᎾᏙᏯᏂᎠ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🧑🏻‍🤝‍🧑🏽' => 'ᎠᏂᏴᏫ ᏚᎾᏙᏯᏂᎠ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'ᏏᏓᏁᎸᎢ: ᎠᎨᏯ, ᎠᎨᏯ, ᎠᏧᏣ, ᎠᏧᏣ',
     '👩‍👩‍👧‍👧' => 'ᏏᏓᏁᎸᎢ: ᎠᎨᏯ, ᎠᎨᏯ, ᎠᎨᏳᏣ, ᎠᎨᏳᏣ',
     '🧑‍🧑‍🧒‍🧒' => 'ᏏᏓᏁᎸ: ᎠᏅᏓ, ᎠᏅᏓ, ᎠᏲᏟ, ᎠᏲᏟ',
-    '🚶🏻‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏼‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏽‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏾‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏿‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏻‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏼‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏽‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏾‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏿‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏻‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏼‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏽‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏾‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏿‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏻‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏼‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏽‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏾‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏿‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏻‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏼‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏽‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏾‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏿‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏻‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏼‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏽‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏾‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏿‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏻‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏼‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏽‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏾‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏿‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏻‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏼‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏽‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏾‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏿‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏻‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏼‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏽‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏾‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏿‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏻‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏼‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏽‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏾‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏿‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏻‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏼‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏽‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏾‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑🏿‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏻‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏼‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏽‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏾‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨🏿‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏻‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏼‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏽‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏾‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩🏿‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏻‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏼‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏽‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏾‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏿‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏻‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏼‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏽‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏾‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏿‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏻‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏼‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏽‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏾‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏿‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏻‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏼‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏽‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏾‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏿‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏻‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏼‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏽‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏾‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏿‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏻‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏼‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏽‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏾‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏿‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏻‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏼‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏽‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏾‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏿‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏻‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏼‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏽‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏾‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏿‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏻‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏼‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏽‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏾‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏿‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏻‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏼‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏽‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏾‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏿‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏻‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏼‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏽‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏾‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏿‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏻‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏼‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏽‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏾‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏿‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏻‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏼‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏽‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏾‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑🏿‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏻‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏼‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏽‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏾‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨🏿‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏻‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏼‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏽‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏾‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩🏿‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏻‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏼‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏽‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏾‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏿‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏻‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏼‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏽‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏾‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏿‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
     '🫱🏻‍🫲🏼' => 'ᎠᏓᏲᎵᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🫱🏻‍🫲🏽' => 'ᎠᏓᏲᎵᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🫱🏻‍🫲🏾' => 'ᎠᏓᏲᎵᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'ᎠᏓᏲᎵᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🫱🏿‍🫲🏽' => 'ᎠᏓᏲᎵᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🫱🏿‍🫲🏾' => 'ᎠᏓᏲᎵᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
-    '🚶‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧑‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👨‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '👩‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶‍♀‍➡' => 'ᎠᎨᏯ ᎠᏨᏏᏰ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏨᏏᏰ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎‍♀‍➡' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎‍♂‍➡' => 'ᎠᏍᎦᏯ ᏕᏥᎾᏆᎾ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑‍🦯‍➡' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨‍🦯‍➡' => 'ᎠᏍᎦᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩‍🦯‍➡' => 'ᎠᎨᏯ ᏗᎨᏫ ᎦᏅᏍᏓ ᎬᏗ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑‍🦼‍➡' => 'ᏴᏫ ᎠᎾᎦᎵᏍᎩ ᎦᏆᏘᏗ ᎦᏍᏗᎶ ᎬᏗ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨‍🦼‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩‍🦼‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎠᏂᎩᏍᏗᏍᎩ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧑‍🦽‍➡' => 'ᏴᏫ ᎦᏆᏘᏗ ᎦᏍᎩᎶ ᎬᏗ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👨‍🦽‍➡' => 'ᎠᏍᎦᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👩‍🦽‍➡' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃‍♀‍➡' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃‍♂‍➡' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ: ᎠᎦᏘᏏ ᎢᏗᏢ',
     '👩‍❤‍👨' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᎨᏯ, ᎠᏍᎦᏯ',
     '👨‍❤‍👨' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᏍᎦᏯ, ᎠᏍᎦᏯ',
     '👩‍❤‍👩' => 'ᏗᎾᏤᎯ ᏧᏂᎿᏫ: ᎠᎨᏯ, ᎠᎨᏯ',
@@ -437,6 +557,11 @@
     '🧑🏽‍🦲' => 'ᎤᏔᎾ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎨᏬᏗ',
     '🧑🏾‍🦲' => 'ᎤᏔᎾ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎨᏬᏗ',
     '🧑🏿‍🦲' => 'ᎤᏔᎾ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎤᎨᏬᏗ',
+    '🧑🏻‍🩰' => 'ᏆᎴ ᎠᎵᏍᎩᏍᎩ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🧑🏼‍🩰' => 'ᏆᎴ ᎠᎵᏍᎩᏍᎩ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🧑🏽‍🩰' => 'ᏆᎴ ᎠᎵᏍᎩᏍᎩ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏾‍🩰' => 'ᏆᎴ ᎠᎵᏍᎩᏍᎩ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🧑🏿‍🩰' => 'ᏆᎴ ᎠᎵᏍᎩᏍᎩ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🧔🏻‍♂' => 'ᎠᏍᎦᏯ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎭᏄᎸᏒ',
     '🧔🏼‍♂' => 'ᎠᏍᎦᏯ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎭᏄᎸᏒ',
     '🧔🏽‍♂' => 'ᎠᏍᎦᏯ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎭᏄᎸᏒ',
@@ -1027,11 +1152,11 @@
     '🚶🏽‍♀' => 'ᎠᎨᏯ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🚶🏾‍♀' => 'ᎠᎨᏯ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🚶🏿‍♀' => 'ᎠᎨᏯ ᎠᏨᏏᏰ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
-    '🚶🏻‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏼‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏽‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏾‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🚶🏿‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏻‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏼‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏽‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏾‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶🏿‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
     '🧍🏻‍♂' => 'ᎠᏍᎦᏯ ᎦᏙᎦ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
     '🧍🏼‍♂' => 'ᎠᏍᎦᏯ ᎦᏙᎦ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🧍🏽‍♂' => 'ᎠᏍᎦᏯ ᎦᏙᎦ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -1052,11 +1177,11 @@
     '🧎🏽‍♀' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🧎🏾‍♀' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🧎🏿‍♀' => 'ᎠᎨᏯ ᏕᏥᎾᏆᎾ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
-    '🧎🏻‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏼‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏽‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏾‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎🏿‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏻‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏼‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏽‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏾‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎🏿‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
     '🧑🏻‍🦯' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
     '🧑🏼‍🦯' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🧑🏽‍🦯' => 'ᏴᏫ ᏗᎨᏫ ᎬᏂᏍᏓ ᎬᏗ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -1112,11 +1237,21 @@
     '🏃🏽‍♀' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🏃🏾‍♀' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🏃🏿‍♀' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
-    '🏃🏻‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏼‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏽‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏾‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃🏿‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏻‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏼‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏽‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏾‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃🏿‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ, ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '👯🏻‍♀' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👯🏼‍♀' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👯🏽‍♀' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👯🏾‍♀' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👯🏿‍♀' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👯🏻‍♂' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👯🏼‍♂' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👯🏽‍♂' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👯🏾‍♂' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👯🏿‍♂' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🧖🏻‍♂' => 'ᎠᏍᎦᏯ ᎠᏯᎠ ᎠᏔᎶᎴᎬ ᎧᏅᏑᎸ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
     '🧖🏼‍♂' => 'ᎠᏍᎦᏯ ᎠᏯᎠ ᎠᏔᎶᎴᎬ ᎧᏅᏑᎸ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🧖🏽‍♂' => 'ᎠᏍᎦᏯ ᎠᏯᎠ ᎠᏔᎶᎴᎬ ᎧᏅᏑᎸ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -1227,6 +1362,16 @@
     '🤸🏽‍♀' => 'ᎠᎨᏯ ᏓᏁᏍᏆᏕᎬ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🤸🏾‍♀' => 'ᎠᎨᏯ ᏓᏁᏍᏆᏕᎬ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🤸🏿‍♀' => 'ᎠᎨᏯ ᏓᏁᏍᏆᏕᎬ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🤼🏻‍♀' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🤼🏼‍♀' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🤼🏽‍♀' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🤼🏾‍♀' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🤼🏿‍♀' => 'ᎠᎨᏯ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🤼🏻‍♂' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🤼🏼‍♂' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🤼🏽‍♂' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🤼🏾‍♂' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🤼🏿‍♂' => 'ᎠᏂᏍᎦᏯ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🤽🏻‍♂' => 'ᎠᏍᎦᏯ ᎠᎹ ᎠᎳᏍᎦᎵᏙᏗ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
     '🤽🏼‍♂' => 'ᎠᏍᎦᏯ ᎠᎹ ᎠᎳᏍᎦᎵᏙᏗ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🤽🏽‍♂' => 'ᎠᏍᎦᏯ ᎠᎹ ᎠᎳᏍᎦᎵᏙᏗ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -1279,9 +1424,9 @@
     '👩‍🦱' => 'ᎠᎨᏯ: ᎤᎵᏥᏍᏆᏁᏓ ᎤᏍᏘᎦ',
     '👩‍🦳' => 'ᎠᎨᏯ: ᎤᏁᎦ ᎤᏍᏘᎦ',
     '👩‍🦲' => 'ᎠᎨᏯ: ᎤᎨᏬᏗ',
-    '🚶‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🧎‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ ᎠᎦᏘᏏ ᎢᏗᏢ',
-    '🏃‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🚶‍➡' => 'ᏴᏫ ᎠᏨᏏᏰ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🧎‍➡' => 'ᏴᏫ ᏕᏥᎾᏆᎾ: ᎠᎦᏘᏏ ᎢᏗᏢ',
+    '🏃‍➡' => 'ᏴᏫ ᎠᏛᏟᏒᎢ: ᎠᎦᏘᏏ ᎢᏗᏢ',
     '👨‍👦' => 'ᏏᏓᏁᎸᎢ: ᎠᏍᎦᏯ, ᎠᏧᏣ',
     '👨‍👧' => 'ᏏᏓᏁᎸᎢ: ᎠᏍᎦᏯ, ᎠᎨᏳᏣ',
     '👩‍👦' => 'ᏏᏓᏁᎸᎢ: ᎠᎨᏯ, ᎠᏧᏣ',
@@ -1422,6 +1567,7 @@
     '👩‍🦽' => 'ᎠᎨᏯ ᎬᏗ ᎦᏆᏙᏗ ᎦᏍᎩᎶ',
     '🏃‍♂' => 'ᎠᏍᎦᏯ ᎠᏛᏟᏒᎢ',
     '🏃‍♀' => 'ᎠᎨᏯ ᎠᏛᏟᏒᎢ',
+    '🧑‍🩰' => 'ᏆᎴ ᎠᎵᏍᎩᏍᎩ',
     '👯‍♂' => 'ᎠᏍᎦᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ',
     '👯‍♀' => 'ᎠᎨᏯ ᏥᏍᏚ ᏗᎦᎴ ᎣᏍᏓ ᎤᏍᏆᎸᎡᎲᎢ',
     '🧖‍♂' => 'ᎠᏍᎦᏯ ᎠᏯᎠ ᎠᏔᎶᎴᎬ ᎧᏅᏑᎸ',
@@ -2003,6 +2149,11 @@
     '🕴🏽' => 'ᎠᏍᎦᏯ ᏚᎸᏫᏍᏓᏁᎯ ᏧᏠᏱᎭ ᏓᎴᎲᏍᎬᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🕴🏾' => 'ᎠᏍᎦᏯ ᏚᎸᏫᏍᏓᏁᎯ ᏧᏠᏱᎭ ᏓᎴᎲᏍᎬᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🕴🏿' => 'ᎠᏍᎦᏯ ᏚᎸᏫᏍᏓᏁᎯ ᏧᏠᏱᎭ ᏓᎴᎲᏍᎬᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👯🏻' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '👯🏼' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '👯🏽' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👯🏾' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '👯🏿' => 'ᏴᏫ ᏥᏍᏚ ᏗᎦᎴ ᎤᏂᏍᏆᎸᎡᎲᎢ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🧖🏻' => 'ᎩᎶ ᎠᏯᎠ ᎠᏔᎶᎴᎬ ᎧᏅᏑᎸ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
     '🧖🏼' => 'ᎩᎶ ᎠᏯᎠ ᎠᏔᎶᎴᎬ ᎧᏅᏑᎸ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🧖🏽' => 'ᎩᎶ ᎠᏯᎠ ᎠᏔᎶᎴᎬ ᎧᏅᏑᎸ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -2068,6 +2219,11 @@
     '🤸🏽' => 'ᏴᏫ ᏓᏁᏍᏆᏕᎬ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🤸🏾' => 'ᏴᏫ ᏓᏁᏍᏆᏕᎬ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🤸🏿' => 'ᏴᏫ ᏓᏁᏍᏆᏕᎬ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🤼🏻' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
+    '🤼🏼' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
+    '🤼🏽' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🤼🏾' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
+    '🤼🏿' => 'ᎠᏂᏴᏫ ᏓᏁᎯᎲ: ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🤽🏻' => 'ᏴᏫ ᏓᏁᎶᎲᏍᎬ ᎠᎹ ᎠᎳᏍᎦᎵᏙᏗ: ᎤᏗᏴᎳᏘ ᎤᏁᎦᎵ ᏄᏍᏛᎢ',
     '🤽🏼' => 'ᏴᏫ ᏓᏁᎶᎲᏍᎬ ᎠᎹ ᎠᎳᏍᎦᎵᏙᏗ: ᎠᏲᏟᎨ-ᎤᏗᏴᎳᏘ ᎤᏁᎦᎸ ᏄᎿᏍᏛᎢ',
     '🤽🏽' => 'ᏴᏫ ᏓᏁᎶᎲᏍᎬ ᎠᎹ ᎠᎳᏍᎦᎵᏙᏗ: ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
@@ -2174,6 +2330,7 @@
     '🇨🇳' => 'ᎦᏓᏗ: ᏓᎶᏂᎨᏍᏛ',
     '🇨🇴' => 'ᎦᏓᏗ: ᎪᎸᎻᏈᎢᎠ',
     '🇨🇵' => 'ᎦᏓᏗ: ᎦᏂᏴᏔᏅᎣᏓᎸ ᎤᎦᏚᏛᎢ',
+    '🇨🇶' => 'ᎦᏓᏗ: ᏌᎬ',
     '🇨🇷' => 'ᎦᏓᏗ: ᎪᏍᏓ ᎵᎧ',
     '🇨🇺' => 'ᎦᏓᏗ: ᎫᏆ',
     '🇨🇻' => 'ᎦᏓᏗ: ᎢᎬᎾᏕᎾ ᎢᏤᏳᏍᏗ',
@@ -2387,13 +2544,6 @@
     '🏽' => 'ᎠᏲᏟᎨ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🏾' => 'ᎠᏲᏟᎨ-ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
     '🏿' => 'ᎤᎵᏏᎩ ᎣᏁᎦᎸ ᏄᏍᏛᎢ',
-    '🪉' => 'ᏗᎧᏃᎩᏍᏙᏗ',
-    '🪏' => 'ᎠᎪᏕᏍᏗ',
-    '🪾' => 'ᎤᏲᎱᏒ ᎢᏡᎬᎢ',
-    '🫆' => 'ᎦᏰᏌᏛ ᏚᏙᏪᎸᎢ',
-    '🫜' => 'ᎤᎾᏍᏕᏢ ᎠᎩᏍᏗ',
-    '🫟' => 'ᏩᏍᏚᏟᏥᎯ',
-    '🫩' => 'ᎤᎧᏛ ᏧᎵᏏᎩ ᏗᎦᏙᎵ',
     '😀' => 'ᎤᏤᏣᏍᏗ ᎤᎧᏛ',
     '😃' => 'ᎤᏤᏣᏍᏗ ᎤᎧᏛ ᎾᏍᎩ ᎤᏔᎾ ᏗᎦᏙᎵ',
     '😄' => 'ᎤᏤᏣᏍᏗ ᎤᎧᏛ ᎾᏍᎩ ᎤᏤᏣᏍᏗ ᏗᎦᏙᎵ',
@@ -2447,6 +2597,7 @@
     '😪' => 'ᎦᏢᏍᎩ ᎤᎧᏛ',
     '🤤' => 'ᏗᎭᏬᎢᎭ ᎤᎧᏛ',
     '😴' => 'ᎦᏟᎯ ᎤᎧᏛ',
+    '🫩' => 'ᎤᎧᏛ ᏧᎵᏏᎩ ᏗᎦᏙᎵ',
     '😷' => 'ᎤᎧᏛᎢ ᎤᏠᏯᏍᏗ ᎦᏃᏢᎩᏅᏬᏘ ᎠᎵᎬᏚᎶᏗ',
     '🤒' => 'ᎤᎧᏛᎢ ᎤᏠᏯᏍᏗ ᎤᏗᏞᎬ ᎤᎦᏅᏮ ᎠᏎᎯᎯ',
     '🤕' => 'ᎤᎧᏛᎢ ᎤᏠᏯᏍᏗ ᎠᏍᎪᎳ-ᎤᏐᏅᏅ ᎦᏇᏅᏙᏗ',
@@ -2473,6 +2624,7 @@
     '😯' => 'ᎡᎶᏪ ᎤᎧᏛ',
     '😲' => 'ᎠᏥᏎᎦᏍᏔᏅᎢ ᎤᎧᏛ',
     '😳' => 'ᎦᏃᎱᎪᏗ ᎤᎧᏛ',
+    '🫪' => 'ᏗᏍᏙᏖᏗ ᎤᎧᏛ',
     '🥺' => 'ᎦᏂᎳᏗᎠ ᎤᎧᏛ',
     '🥹' => 'ᏧᎦᏌᏬᏛ ᎤᎧᏛ',
     '😦' => 'ᎤᏓᏁᎪᏳᎲᎢ ᎤᎧᏛ ᎤᏔᏠᎩ',
@@ -2544,6 +2696,7 @@
     '💋' => 'ᎠᏔᏪᏙᏅᎢ ᎤᏙᏪᎸᎢ',
     '💯' => 'ᎠᎪᎯᏧᏈ ᎬᏅᏅᎢ',
     '💢' => 'ᎤᎿᎸᎯ ᏓᏟᎶᏍᏛᎢ',
+    '🫯' => 'ᎠᏥᎳᎱ ᎠᎶᎩᎸ',
     '💥' => 'ᏚᎾᏓᏛᏂᎸ',
     '💫' => 'ᎤᎸᏕᎯᏓ',
     '💦' => 'ᎠᎵ ᏧᏩᏬᏨ',
@@ -2667,6 +2820,7 @@
     '🧞' => 'ᏥᎾᏱ',
     '🧟' => 'ᎤᏲᎱᏒ ᎤᏗᏛᏓ',
     '🧌' => 'ᎦᎾᏰᎩ ᏴᏫ ᎢᏳᏍᏗ',
+    '🫈' => 'ᎠᏍᏖᎬᎢ ᏍᎩᎵ',
     '💆' => 'ᏴᏫ ᎠᏥᏓᏍᎪᎵᏰᏍᎬᎢ',
     '💇' => 'ᏴᏫ ᎾᏛᏁᎲ ᎠᎵᏍᏙᏰᏗ',
     '🚶' => 'ᏴᏫ ᎠᏨᏏᏰ',
@@ -2710,6 +2864,7 @@
     '🫂' => 'ᎠᏂᏴᏫ ᏓᏓᏍᏆᏂᏱᏍᎬ',
     '👪' => 'ᏏᏓᏁᎸᎢ',
     '👣' => 'ᏚᎳᏏᏅᎢ ᏚᏙᏪᎸᎢ',
+    '🫆' => 'ᎦᏰᏌᏛ ᏚᏙᏪᎸᎢ',
     '🦰' => 'ᎩᎦᎨ ᎤᏍᏘᎦ',
     '🦱' => 'ᎤᎵᏥᏍᏆᏁᏓ ᎤᏍᏘᎦ',
     '🦳' => 'ᎤᏁᎦ ᎤᏍᏘᎦ',
@@ -2809,6 +2964,7 @@
     '🐳' => 'ᎧᏬᎵᏕᏍᎬ ᏓᏆ',
     '🐋' => 'ᏓᏆ',
     '🐬' => 'ᏗᎵᏆᏕᎩ',
+    '🫍' => 'ᎣᎧ',
     '🦭' => 'ᏗᏏᏫᏍᎩ',
     '🐟' => 'ᎠᏣᏗ',
     '🐠' => 'ᎤᏗᏞᎦ ᎠᏣᏗ',
@@ -2818,6 +2974,11 @@
     '🐚' => 'ᎠᏕᏲᎯ ᎠᏯᏍᎦᎸᎢ',
     '🪸' => 'ᏅᏯ ᎠᎹᏱ',
     '🪼' => 'ᏩᏂᎨ ᎠᏣᏗ',
+    '🦀' => 'ᎤᏯᏍᎦᏬᏗ',
+    '🦞' => 'ᎤᏔᎾ ᏥᏍᏛᎾ',
+    '🦐' => 'ᏥᏅᏅ',
+    '🦑' => 'ᏍᏈᏗ',
+    '🦪' => 'ᎤᏔᎾ ᏓᎬᎾ',
     '🐌' => 'ᎡᎳᏆ',
     '🦋' => 'ᎤᏍᏗ ᎧᎹᎹ',
     '🐛' => 'ᏥᏍᎪᏯ',
@@ -2862,6 +3023,7 @@
     '🪹' => 'ᎧᏁᏍᏓᎳᎲᎢ',
     '🪺' => 'ᎧᏁᏍᏓᎳᎲᎢ ᎠᎴ ᏧᏪᏥ',
     '🍄' => 'ᏓᏬᎵ',
+    '🪾' => 'ᎤᏲᎱᏒ ᎢᏡᎬᎢ',
     '🍇' => 'ᎤᏂᏖᎸᎳᏗ',
     '🍈' => 'ᎬᎩᏍᏗ',
     '🍉' => 'ᎠᎹ ᎬᎩᏍᏗ',
@@ -2898,6 +3060,7 @@
     '🌰' => 'ᏘᎵ',
     '🫚' => 'ᏄᏱᎦᎵ',
     '🫛' => 'ᎤᏅᏢᏓᎵ',
+    '🫜' => 'ᎤᎾᏍᏕᏢ ᎠᎩᏍᏗ',
     '🍞' => 'ᎦᏚ',
     '🥐' => 'ᎦᎸᏥ ᎦᏚ',
     '🥖' => 'ᎦᏅᎯᏓ ᏌᎨ ᎦᏚ',
@@ -2949,11 +3112,6 @@
     '🥟' => 'ᎦᎸᏅᎢ',
     '🥠' => 'ᏣᏂᏏ ᎦᏚ ᎤᎦᎾᏍᏓ',
     '🥡' => 'ᎠᏫᏛᏗ ᎧᏁᏌ',
-    '🦀' => 'ᎤᏯᏍᎦᏬᏗ',
-    '🦞' => 'ᎤᏔᎾ ᏥᏍᏛᎾ',
-    '🦐' => 'ᏥᏅᏅ',
-    '🦑' => 'ᏍᏈᏗ',
-    '🦪' => 'ᎤᏔᎾ ᏓᎬᎾ',
     '🍦' => 'ᎦᏁᏍᏓᎵᏗᏍᏓᏅ ᎤᏅᏗ',
     '🍧' => 'ᎤᏁᏍᏓᎳ ᎠᏍᏙᏰᏓ',
     '🍨' => 'ᎤᏅᏗ ᎦᏁᏍᏓᎳᏗᏍᏔᏅ',
@@ -3004,6 +3162,7 @@
     '🧭' => 'ᎠᎳᏂ ᎠᎦᏙᏗ',
     '🏔' => 'ᎥᏃᏥ-ᏚᏭᏝᎥᎢ ᎤᏓᎳ',
     '⛰' => 'ᎤᏅᏓᏢᎢ',
+    '🛘' => 'ᎦᏙᎯ ᎠᏠᎳᏙᏗ',
     '🌋' => 'ᎦᏙ ᎠᏔᎴᏒ ᎠᏔᏍᎩᏍᎩ',
     '🗻' => 'ᏡᏥ ᎣᏓᎸ',
     '🏕' => 'ᏓᏂᎵᏦᏛᏍᎬᎢ',
@@ -3364,16 +3523,18 @@
     '🎧' => 'ᏗᏟᎤᏍᏙᏗ',
     '📻' => 'ᏗᎧᏃᎩᏍᎩ',
     '🎷' => 'ᏌᎦᎪᏁ',
+    '🎺' => 'ᏢᏇᏘ',
+    '🪊' => 'ᏚᏉᏂ',
     '🪗' => 'ᎠᎪᏗᎠᏂ',
     '🎸' => 'ᏗᏇᏄᎩᏍᏗ',
     '🎹' => 'ᏗᎧᏃᎩᏍᏙᏗ ᏗᏐᏅᏍᏙᏗ',
-    '🎺' => 'ᏢᏇᏘ',
     '🎻' => 'ᎠᏰᏟᏰᏗ',
     '🪕' => 'ᏗᏍᏗ ᏗᎧᏃᎩᏍᏗ',
     '🥁' => 'ᎱᎵ',
     '🪘' => 'ᎱᎵ ᎦᏅᎯᏓ',
     '🪇' => 'ᎠᏂᏍᏆᏂ ᎦᎾᏤᏘ',
     '🪈' => 'ᎠᏤᎷᎯᏍᏗ',
+    '🪉' => 'ᏗᎧᏃᎩᏍᏙᏗ',
     '📱' => 'ᏙᎴᎳᏊ ᏗᎵᏃᎮᏓ',
     '📲' => 'ᏙᎴᎳᏊ ᏗᎵᏃᎮᏓ ᎤᎵᎪᏗ ᎦᏟᏓ',
     '☎' => 'ᏴᏫ ᏗᏟᏃᎮᏗ',
@@ -3427,8 +3588,9 @@
     '📑' => 'ᎪᏪᎵᎪᏣᎸᏗ ᏗᎦᏗ',
     '🔖' => 'ᎪᏪᎵᎪᏣᎸᏗ',
     '🏷' => 'ᎪᏪᎸᎢ',
-    '💰' => 'ᎠᏕᎳ ᏕᎦᎶᏗ',
     '🪙' => 'ᎢᏯᏓᏅᏖᏗ',
+    '💰' => 'ᎠᏕᎳ ᏕᎦᎶᏗ',
+    '🪎' => 'ᏧᎬᏩᎶᏗ ᎠᏍᏆᏂᎪᏛ ᎦᏁᏥ',
     '💴' => 'ᏤᏈᏂᏏ ᎠᏕᎳ ᏧᏂᏗᎢ ᎪᏪᎵ',
     '💵' => 'ᎤᏃᏍᏓ ᎠᏕᎳ ᏧᏂᏗᎢ ᎪᏪᎵ',
     '💶' => 'ᏳᎳᏈ ᎠᏕᎳ ᏧᏂᏗᎢ ᎪᏪᎵ',
@@ -3511,6 +3673,7 @@
     '🧰' => 'ᎬᏔᏂᏓᏍᏗ ᎦᎵᏔᏅᏙᏗ ᎧᏁᏌᎢ',
     '🧲' => 'ᏔᎷᎩᏍᎩ ᎦᏌᏁᏍᎩ',
     '🪜' => 'ᎠᏴᏠ',
+    '🪏' => 'ᎠᎪᏕᏍᏗ',
     '⚗' => 'ᎠᎪᏙᏗ',
     '🧪' => 'ᎠᎦᏛᏗ ᎤᏒᏙᏂ',
     '🧫' => 'ᎤᏩᎾᏬᏍᏒ ᏒᏙᏂ ᎤᎸᏌᏗ',
@@ -3694,6 +3857,7 @@
     '✴' => 'ᏧᏁᎳ-ᏗᎪᏍᏓᏱ ᏃᏈᏏ',
     '❇' => 'ᎤᏥᏍᏓᎷᎩᏍᎩ',
     '™' => 'ᎠᎵᏱᏛᎢ ᎪᏪᎸ',
+    '🫟' => 'ᏩᏍᏚᏟᏥᎯ',
     '🔠' => 'ᏗᎦᏘᏅᏗᏍᏗ ᎳᏔᏂ ᎦᎸᎳᏗᏗᎪᏪᎵ',
     '🔡' => 'ᏗᎦᏘᏅᏗᏍᏗ ᎴᏔᏂ ᎡᎳᏗᏗᎪᏪᎵ',
     '🔢' => 'ᏗᎦᏘᏅᏗᏍᏗ ᏗᏎᏍᏗ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cs.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cs.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cs.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cs.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'polibek: žena, žena, tmavý odstín pleti a střední odstín pleti',
     '👩🏿‍❤‍💋‍👩🏾' => 'polibek: žena, žena, tmavý odstín pleti a středně tmavý odstín pleti',
     '👩🏿‍❤‍💋‍👩🏿' => 'polibek: žena, žena a tmavý odstín pleti',
+    '🧑🏻‍🫯‍🧑🏼' => 'zápasící dvojice: světlý odstín pleti, středně světlý odstín pleti',
+    '🧑🏻‍🫯‍🧑🏽' => 'zápasící dvojice: světlý odstín pleti, střední odstín pleti',
+    '🧑🏻‍🫯‍🧑🏾' => 'zápasící dvojice: světlý odstín pleti, středně tmavý odstín pleti',
+    '🧑🏻‍🫯‍🧑🏿' => 'zápasící dvojice: světlý odstín pleti, tmavý odstín pleti',
+    '🧑🏼‍🫯‍🧑🏻' => 'zápasící dvojice: středně světlý odstín pleti, světlý odstín pleti',
+    '🧑🏼‍🫯‍🧑🏽' => 'zápasící dvojice: středně světlý odstín pleti, střední odstín pleti',
+    '🧑🏼‍🫯‍🧑🏾' => 'zápasící dvojice: středně světlý odstín pleti, středně tmavý odstín pleti',
+    '🧑🏼‍🫯‍🧑🏿' => 'zápasící dvojice: středně světlý odstín pleti, tmavý odstín pleti',
+    '🧑🏽‍🫯‍🧑🏻' => 'zápasící dvojice: střední odstín pleti, světlý odstín pleti',
+    '🧑🏽‍🫯‍🧑🏼' => 'zápasící dvojice: střední odstín pleti, středně světlý odstín pleti',
+    '🧑🏽‍🫯‍🧑🏾' => 'zápasící dvojice: střední odstín pleti, středně tmavý odstín pleti',
+    '🧑🏽‍🫯‍🧑🏿' => 'zápasící dvojice: střední odstín pleti, tmavý odstín pleti',
+    '🧑🏾‍🫯‍🧑🏻' => 'zápasící dvojice: středně tmavý odstín pleti, světlý odstín pleti',
+    '🧑🏾‍🫯‍🧑🏼' => 'zápasící dvojice: středně tmavý odstín pleti, středně světlý odstín pleti',
+    '🧑🏾‍🫯‍🧑🏽' => 'zápasící dvojice: středně tmavý odstín pleti, střední odstín pleti',
+    '🧑🏾‍🫯‍🧑🏿' => 'zápasící dvojice: středně tmavý odstín pleti, tmavý odstín pleti',
+    '🧑🏿‍🫯‍🧑🏻' => 'zápasící dvojice: tmavý odstín pleti, světlý odstín pleti',
+    '🧑🏿‍🫯‍🧑🏼' => 'zápasící dvojice: tmavý odstín pleti, středně světlý odstín pleti',
+    '🧑🏿‍🫯‍🧑🏽' => 'zápasící dvojice: tmavý odstín pleti, střední odstín pleti',
+    '🧑🏿‍🫯‍🧑🏾' => 'zápasící dvojice: tmavý odstín pleti, středně tmavý odstín pleti',
     '🧑🏻‍❤‍🧑🏼' => 'pár se srdcem: dospělý člověk, dospělý člověk, světlý odstín pleti a středně světlý odstín pleti',
     '🧑🏻‍❤‍🧑🏽' => 'pár se srdcem: dospělý člověk, dospělý člověk, světlý odstín pleti a střední odstín pleti',
     '🧑🏻‍❤‍🧑🏾' => 'pár se srdcem: dospělý člověk, dospělý člověk, světlý odstín pleti a středně tmavý odstín pleti',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pár se srdcem: dospělý člověk, dospělý člověk, tmavý odstín pleti a středně světlý odstín pleti',
     '🧑🏿‍❤‍🧑🏽' => 'pár se srdcem: dospělý člověk, dospělý člověk, tmavý odstín pleti a střední odstín pleti',
     '🧑🏿‍❤‍🧑🏾' => 'pár se srdcem: dospělý člověk, dospělý člověk, tmavý odstín pleti a středně tmavý odstín pleti',
+    '🧑🏻‍🐰‍🧑🏼' => 'osoby se zaječími oušky: světlý odstín pleti, středně světlý odstín pleti',
+    '🧑🏻‍🐰‍🧑🏽' => 'osoby se zaječími oušky: světlý odstín pleti, střední odstín pleti',
+    '🧑🏻‍🐰‍🧑🏾' => 'osoby se zaječími oušky: světlý odstín pleti, středně tmavý odstín pleti',
+    '🧑🏻‍🐰‍🧑🏿' => 'osoby se zaječími oušky: světlý odstín pleti, tmavý odstín pleti',
+    '🧑🏼‍🐰‍🧑🏻' => 'osoby se zaječími oušky: středně světlý odstín pleti, světlý odstín pleti',
+    '🧑🏼‍🐰‍🧑🏽' => 'osoby se zaječími oušky: středně světlý odstín pleti, střední odstín pleti',
+    '🧑🏼‍🐰‍🧑🏾' => 'osoby se zaječími oušky: středně světlý odstín pleti, středně tmavý odstín pleti',
+    '🧑🏼‍🐰‍🧑🏿' => 'osoby se zaječími oušky: středně světlý odstín pleti, tmavý odstín pleti',
+    '🧑🏽‍🐰‍🧑🏻' => 'osoby se zaječími oušky: střední odstín pleti, světlý odstín pleti',
+    '🧑🏽‍🐰‍🧑🏼' => 'osoby se zaječími oušky: střední odstín pleti, středně světlý odstín pleti',
+    '🧑🏽‍🐰‍🧑🏾' => 'osoby se zaječími oušky: střední odstín pleti, středně tmavý odstín pleti',
+    '🧑🏽‍🐰‍🧑🏿' => 'osoby se zaječími oušky: střední odstín pleti, tmavý odstín pleti',
+    '🧑🏾‍🐰‍🧑🏻' => 'osoby se zaječími oušky: středně tmavý odstín pleti, světlý odstín pleti',
+    '🧑🏾‍🐰‍🧑🏼' => 'osoby se zaječími oušky: středně tmavý odstín pleti, středně světlý odstín pleti',
+    '🧑🏾‍🐰‍🧑🏽' => 'osoby se zaječími oušky: středně tmavý odstín pleti, střední odstín pleti',
+    '🧑🏾‍🐰‍🧑🏿' => 'osoby se zaječími oušky: středně tmavý odstín pleti, tmavý odstín pleti',
+    '🧑🏿‍🐰‍🧑🏻' => 'osoby se zaječími oušky: tmavý odstín pleti, světlý odstín pleti',
+    '🧑🏿‍🐰‍🧑🏼' => 'osoby se zaječími oušky: tmavý odstín pleti, středně světlý odstín pleti',
+    '🧑🏿‍🐰‍🧑🏽' => 'osoby se zaječími oušky: tmavý odstín pleti, střední odstín pleti',
+    '🧑🏿‍🐰‍🧑🏾' => 'osoby se zaječími oušky: tmavý odstín pleti, středně tmavý odstín pleti',
+    '👨🏻‍🫯‍👨🏼' => 'zápasící muži: světlý odstín pleti, středně světlý odstín pleti',
+    '👨🏻‍🫯‍👨🏽' => 'zápasící muži: světlý odstín pleti, střední odstín pleti',
+    '👨🏻‍🫯‍👨🏾' => 'zápasící muži: světlý odstín pleti, středně tmavý odstín pleti',
+    '👨🏻‍🫯‍👨🏿' => 'zápasící muži: světlý odstín pleti, tmavý odstín pleti',
+    '👨🏼‍🫯‍👨🏻' => 'zápasící muži: středně světlý odstín pleti, světlý odstín pleti',
+    '👨🏼‍🫯‍👨🏽' => 'zápasící muži: středně světlý odstín pleti, střední odstín pleti',
+    '👨🏼‍🫯‍👨🏾' => 'zápasící muži: středně světlý odstín pleti, středně tmavý odstín pleti',
+    '👨🏼‍🫯‍👨🏿' => 'zápasící muži: středně světlý odstín pleti, tmavý odstín pleti',
+    '👨🏽‍🫯‍👨🏻' => 'zápasící muži: střední odstín pleti, světlý odstín pleti',
+    '👨🏽‍🫯‍👨🏼' => 'zápasící muži: střední odstín pleti, středně světlý odstín pleti',
+    '👨🏽‍🫯‍👨🏾' => 'zápasící muži: střední odstín pleti, středně tmavý odstín pleti',
+    '👨🏽‍🫯‍👨🏿' => 'zápasící muži: střední odstín pleti, tmavý odstín pleti',
+    '👨🏾‍🫯‍👨🏻' => 'zápasící muži: středně tmavý odstín pleti, světlý odstín pleti',
+    '👨🏾‍🫯‍👨🏼' => 'zápasící muži: středně tmavý odstín pleti, středně světlý odstín pleti',
+    '👨🏾‍🫯‍👨🏽' => 'zápasící muži: středně tmavý odstín pleti, střední odstín pleti',
+    '👨🏾‍🫯‍👨🏿' => 'zápasící muži: středně tmavý odstín pleti, tmavý odstín pleti',
+    '👨🏿‍🫯‍👨🏻' => 'zápasící muži: tmavý odstín pleti, světlý odstín pleti',
+    '👨🏿‍🫯‍👨🏼' => 'zápasící muži: tmavý odstín pleti, středně světlý odstín pleti',
+    '👨🏿‍🫯‍👨🏽' => 'zápasící muži: tmavý odstín pleti, střední odstín pleti',
+    '👨🏿‍🫯‍👨🏾' => 'zápasící muži: tmavý odstín pleti, středně tmavý odstín pleti',
     '👨🏻‍❤‍👨🏻' => 'pár se srdcem: muž, muž a světlý odstín pleti',
     '👨🏻‍❤‍👨🏼' => 'pár se srdcem: muž, muž, světlý odstín pleti a středně světlý odstín pleti',
     '👨🏻‍❤‍👨🏽' => 'pár se srdcem: muž, muž, světlý odstín pleti a střední odstín pleti',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pár se srdcem: muž, muž, tmavý odstín pleti a střední odstín pleti',
     '👨🏿‍❤‍👨🏾' => 'pár se srdcem: muž, muž, tmavý odstín pleti a středně tmavý odstín pleti',
     '👨🏿‍❤‍👨🏿' => 'pár se srdcem: muž, muž a tmavý odstín pleti',
+    '👨🏻‍🐰‍👨🏼' => 'muži se zaječími oušky: světlý odstín pleti, středně světlý odstín pleti',
+    '👨🏻‍🐰‍👨🏽' => 'muži se zaječími oušky: světlý odstín pleti, střední odstín pleti',
+    '👨🏻‍🐰‍👨🏾' => 'muži se zaječími oušky: světlý odstín pleti, středně tmavý odstín pleti',
+    '👨🏻‍🐰‍👨🏿' => 'muži se zaječími oušky: světlý odstín pleti, tmavý odstín pleti',
+    '👨🏼‍🐰‍👨🏻' => 'muži se zaječími oušky: středně světlý odstín pleti, světlý odstín pleti',
+    '👨🏼‍🐰‍👨🏽' => 'muži se zaječími oušky: středně světlý odstín pleti, střední odstín pleti',
+    '👨🏼‍🐰‍👨🏾' => 'muži se zaječími oušky: středně světlý odstín pleti, středně tmavý odstín pleti',
+    '👨🏼‍🐰‍👨🏿' => 'muži se zaječími oušky: středně světlý odstín pleti, tmavý odstín pleti',
+    '👨🏽‍🐰‍👨🏻' => 'muži se zaječími oušky: střední odstín pleti, světlý odstín pleti',
+    '👨🏽‍🐰‍👨🏼' => 'muži se zaječími oušky: střední odstín pleti, středně světlý odstín pleti',
+    '👨🏽‍🐰‍👨🏾' => 'muži se zaječími oušky: střední odstín pleti, středně tmavý odstín pleti',
+    '👨🏽‍🐰‍👨🏿' => 'muži se zaječími oušky: střední odstín pleti, tmavý odstín pleti',
+    '👨🏾‍🐰‍👨🏻' => 'muži se zaječími oušky: středně tmavý odstín pleti, světlý odstín pleti',
+    '👨🏾‍🐰‍👨🏼' => 'muži se zaječími oušky: středně tmavý odstín pleti, středně světlý odstín pleti',
+    '👨🏾‍🐰‍👨🏽' => 'muži se zaječími oušky: středně tmavý odstín pleti, střední odstín pleti',
+    '👨🏾‍🐰‍👨🏿' => 'muži se zaječími oušky: středně tmavý odstín pleti, tmavý odstín pleti',
+    '👨🏿‍🐰‍👨🏻' => 'muži se zaječími oušky: tmavý odstín pleti, světlý odstín pleti',
+    '👨🏿‍🐰‍👨🏼' => 'muži se zaječími oušky: tmavý odstín pleti, středně světlý odstín pleti',
+    '👨🏿‍🐰‍👨🏽' => 'muži se zaječími oušky: tmavý odstín pleti, střední odstín pleti',
+    '👨🏿‍🐰‍👨🏾' => 'muži se zaječími oušky: tmavý odstín pleti, středně tmavý odstín pleti',
+    '👩🏻‍🫯‍👩🏼' => 'zápasící ženy: světlý odstín pleti, středně světlý odstín pleti',
+    '👩🏻‍🫯‍👩🏽' => 'zápasící ženy: světlý odstín pleti, střední odstín pleti',
+    '👩🏻‍🫯‍👩🏾' => 'zápasící ženy: světlý odstín pleti, středně tmavý odstín pleti',
+    '👩🏻‍🫯‍👩🏿' => 'zápasící ženy: světlý odstín pleti, tmavý odstín pleti',
+    '👩🏼‍🫯‍👩🏻' => 'zápasící ženy: středně světlý odstín pleti, světlý odstín pleti',
+    '👩🏼‍🫯‍👩🏽' => 'zápasící ženy: středně světlý odstín pleti, střední odstín pleti',
+    '👩🏼‍🫯‍👩🏾' => 'zápasící ženy: středně světlý odstín pleti, středně tmavý odstín pleti',
+    '👩🏼‍🫯‍👩🏿' => 'zápasící ženy: středně světlý odstín pleti, tmavý odstín pleti',
+    '👩🏽‍🫯‍👩🏻' => 'zápasící ženy: střední odstín pleti, světlý odstín pleti',
+    '👩🏽‍🫯‍👩🏼' => 'zápasící ženy: střední odstín pleti, středně světlý odstín pleti',
+    '👩🏽‍🫯‍👩🏾' => 'zápasící ženy: střední odstín pleti, středně tmavý odstín pleti',
+    '👩🏽‍🫯‍👩🏿' => 'zápasící ženy: střední odstín pleti, tmavý odstín pleti',
+    '👩🏾‍🫯‍👩🏻' => 'zápasící ženy: středně tmavý odstín pleti, světlý odstín pleti',
+    '👩🏾‍🫯‍👩🏼' => 'zápasící ženy: středně tmavý odstín pleti, středně světlý odstín pleti',
+    '👩🏾‍🫯‍👩🏽' => 'zápasící ženy: středně tmavý odstín pleti, střední odstín pleti',
+    '👩🏾‍🫯‍👩🏿' => 'zápasící ženy: středně tmavý odstín pleti, tmavý odstín pleti',
+    '👩🏿‍🫯‍👩🏻' => 'zápasící ženy: tmavý odstín pleti, světlý odstín pleti',
+    '👩🏿‍🫯‍👩🏼' => 'zápasící ženy: tmavý odstín pleti, středně světlý odstín pleti',
+    '👩🏿‍🫯‍👩🏽' => 'zápasící ženy: tmavý odstín pleti, střední odstín pleti',
+    '👩🏿‍🫯‍👩🏾' => 'zápasící ženy: tmavý odstín pleti, středně tmavý odstín pleti',
     '👩🏻‍❤‍👨🏻' => 'pár se srdcem: žena, muž a světlý odstín pleti',
     '👩🏻‍❤‍👨🏼' => 'pár se srdcem: žena, muž, světlý odstín pleti a středně světlý odstín pleti',
     '👩🏻‍❤‍👨🏽' => 'pár se srdcem: žena, muž, světlý odstín pleti a střední odstín pleti',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pár se srdcem: žena, žena, tmavý odstín pleti a střední odstín pleti',
     '👩🏿‍❤‍👩🏾' => 'pár se srdcem: žena, žena, tmavý odstín pleti a středně tmavý odstín pleti',
     '👩🏿‍❤‍👩🏿' => 'pár se srdcem: žena, žena a tmavý odstín pleti',
+    '👩🏻‍🐰‍👩🏼' => 'ženy se zaječími oušky: světlý odstín pleti, středně světlý odstín pleti',
+    '👩🏻‍🐰‍👩🏽' => 'ženy se zaječími oušky: světlý odstín pleti, střední odstín pleti',
+    '👩🏻‍🐰‍👩🏾' => 'ženy se zaječími oušky: světlý odstín pleti, středně tmavý odstín pleti',
+    '👩🏻‍🐰‍👩🏿' => 'ženy se zaječími oušky: světlý odstín pleti, tmavý odstín pleti',
+    '👩🏼‍🐰‍👩🏻' => 'ženy se zaječími oušky: středně světlý odstín pleti, světlý odstín pleti',
+    '👩🏼‍🐰‍👩🏽' => 'ženy se zaječími oušky: středně světlý odstín pleti, střední odstín pleti',
+    '👩🏼‍🐰‍👩🏾' => 'ženy se zaječími oušky: středně světlý odstín pleti, středně tmavý odstín pleti',
+    '👩🏼‍🐰‍👩🏿' => 'ženy se zaječími oušky: středně světlý odstín pleti, tmavý odstín pleti',
+    '👩🏽‍🐰‍👩🏻' => 'ženy se zaječími oušky: střední odstín pleti, světlý odstín pleti',
+    '👩🏽‍🐰‍👩🏼' => 'ženy se zaječími oušky: střední odstín pleti, středně světlý odstín pleti',
+    '👩🏽‍🐰‍👩🏾' => 'ženy se zaječími oušky: střední odstín pleti, středně tmavý odstín pleti',
+    '👩🏽‍🐰‍👩🏿' => 'ženy se zaječími oušky: střední odstín pleti, tmavý odstín pleti',
+    '👩🏾‍🐰‍👩🏻' => 'ženy se zaječími oušky: středně tmavý odstín pleti, světlý odstín pleti',
+    '👩🏾‍🐰‍👩🏼' => 'ženy se zaječími oušky: středně tmavý odstín pleti, středně světlý odstín pleti',
+    '👩🏾‍🐰‍👩🏽' => 'ženy se zaječími oušky: středně tmavý odstín pleti, střední odstín pleti',
+    '👩🏾‍🐰‍👩🏿' => 'ženy se zaječími oušky: středně tmavý odstín pleti, tmavý odstín pleti',
+    '👩🏿‍🐰‍👩🏻' => 'ženy se zaječími oušky: tmavý odstín pleti, světlý odstín pleti',
+    '👩🏿‍🐰‍👩🏼' => 'ženy se zaječími oušky: tmavý odstín pleti, středně světlý odstín pleti',
+    '👩🏿‍🐰‍👩🏽' => 'ženy se zaječími oušky: tmavý odstín pleti, střední odstín pleti',
+    '👩🏿‍🐰‍👩🏾' => 'ženy se zaječími oušky: tmavý odstín pleti, středně tmavý odstín pleti',
     '🧑🏻‍🤝‍🧑🏻' => 'dva lidé držící se za ruce: světlý odstín pleti',
     '🧑🏻‍🤝‍🧑🏼' => 'dva lidé držící se za ruce: světlý odstín pleti, středně světlý odstín pleti',
     '🧑🏻‍🤝‍🧑🏽' => 'dva lidé držící se za ruce: světlý odstín pleti, střední odstín pleti',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'vlajka: Skotsko',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'vlajka: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'rodina: dospělý, dospělý, dítě, dítě',
-    '🚶🏻‍♀‍➡' => 'kráčející žena – směr doprava',
-    '🚶🏼‍♀‍➡' => 'kráčející žena – směr doprava',
-    '🚶🏽‍♀‍➡' => 'kráčející žena – směr doprava',
-    '🚶🏾‍♀‍➡' => 'kráčející žena – směr doprava',
-    '🚶🏿‍♀‍➡' => 'kráčející žena – směr doprava',
-    '🚶🏻‍♂‍➡' => 'kráčející muž – směr doprava',
-    '🚶🏼‍♂‍➡' => 'kráčející muž – směr doprava',
-    '🚶🏽‍♂‍➡' => 'kráčející muž – směr doprava',
-    '🚶🏾‍♂‍➡' => 'kráčející muž – směr doprava',
-    '🚶🏿‍♂‍➡' => 'kráčející muž – směr doprava',
-    '🧎🏻‍♀‍➡' => 'klečící žena – směr doprava',
-    '🧎🏼‍♀‍➡' => 'klečící žena – směr doprava',
-    '🧎🏽‍♀‍➡' => 'klečící žena – směr doprava',
-    '🧎🏾‍♀‍➡' => 'klečící žena – směr doprava',
-    '🧎🏿‍♀‍➡' => 'klečící žena – směr doprava',
-    '🧎🏻‍♂‍➡' => 'klečící muž – směr doprava',
-    '🧎🏼‍♂‍➡' => 'klečící muž – směr doprava',
-    '🧎🏽‍♂‍➡' => 'klečící muž – směr doprava',
-    '🧎🏾‍♂‍➡' => 'klečící muž – směr doprava',
-    '🧎🏿‍♂‍➡' => 'klečící muž – směr doprava',
-    '🧑🏻‍🦯‍➡' => 'člověk se slepeckou holí – směr doprava',
-    '🧑🏼‍🦯‍➡' => 'člověk se slepeckou holí – směr doprava',
-    '🧑🏽‍🦯‍➡' => 'člověk se slepeckou holí – směr doprava',
-    '🧑🏾‍🦯‍➡' => 'člověk se slepeckou holí – směr doprava',
-    '🧑🏿‍🦯‍➡' => 'člověk se slepeckou holí – směr doprava',
-    '👨🏻‍🦯‍➡' => 'muž se slepeckou holí – směr doprava',
-    '👨🏼‍🦯‍➡' => 'muž se slepeckou holí – směr doprava',
-    '👨🏽‍🦯‍➡' => 'muž se slepeckou holí – směr doprava',
-    '👨🏾‍🦯‍➡' => 'muž se slepeckou holí – směr doprava',
-    '👨🏿‍🦯‍➡' => 'muž se slepeckou holí – směr doprava',
-    '👩🏻‍🦯‍➡' => 'žena se slepeckou holí – směr doprava',
-    '👩🏼‍🦯‍➡' => 'žena se slepeckou holí – směr doprava',
-    '👩🏽‍🦯‍➡' => 'žena se slepeckou holí – směr doprava',
-    '👩🏾‍🦯‍➡' => 'žena se slepeckou holí – směr doprava',
-    '👩🏿‍🦯‍➡' => 'žena se slepeckou holí – směr doprava',
-    '🧑🏻‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku – směr doprava',
-    '🧑🏼‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku – směr doprava',
-    '🧑🏽‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku – směr doprava',
-    '🧑🏾‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku – směr doprava',
-    '🧑🏿‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku – směr doprava',
-    '👨🏻‍🦼‍➡' => 'muž na elektrickém invalidním vozíku – směr doprava',
-    '👨🏼‍🦼‍➡' => 'muž na elektrickém invalidním vozíku – směr doprava',
-    '👨🏽‍🦼‍➡' => 'muž na elektrickém invalidním vozíku – směr doprava',
-    '👨🏾‍🦼‍➡' => 'muž na elektrickém invalidním vozíku – směr doprava',
-    '👨🏿‍🦼‍➡' => 'muž na elektrickém invalidním vozíku – směr doprava',
-    '👩🏻‍🦼‍➡' => 'žena na elektrickém invalidním vozíku – směr doprava',
-    '👩🏼‍🦼‍➡' => 'žena na elektrickém invalidním vozíku – směr doprava',
-    '👩🏽‍🦼‍➡' => 'žena na elektrickém invalidním vozíku – směr doprava',
-    '👩🏾‍🦼‍➡' => 'žena na elektrickém invalidním vozíku – směr doprava',
-    '👩🏿‍🦼‍➡' => 'žena na elektrickém invalidním vozíku – směr doprava',
-    '🧑🏻‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku – směr doprava',
-    '🧑🏼‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku – směr doprava',
-    '🧑🏽‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku – směr doprava',
-    '🧑🏾‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku – směr doprava',
-    '🧑🏿‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku – směr doprava',
-    '👨🏻‍🦽‍➡' => 'muž na mechanickém invalidním vozíku – směr doprava',
-    '👨🏼‍🦽‍➡' => 'muž na mechanickém invalidním vozíku – směr doprava',
-    '👨🏽‍🦽‍➡' => 'muž na mechanickém invalidním vozíku – směr doprava',
-    '👨🏾‍🦽‍➡' => 'muž na mechanickém invalidním vozíku – směr doprava',
-    '👨🏿‍🦽‍➡' => 'muž na mechanickém invalidním vozíku – směr doprava',
-    '👩🏻‍🦽‍➡' => 'žena na mechanickém invalidním vozíku – směr doprava',
-    '👩🏼‍🦽‍➡' => 'žena na mechanickém invalidním vozíku – směr doprava',
-    '👩🏽‍🦽‍➡' => 'žena na mechanickém invalidním vozíku – směr doprava',
-    '👩🏾‍🦽‍➡' => 'žena na mechanickém invalidním vozíku – směr doprava',
-    '👩🏿‍🦽‍➡' => 'žena na mechanickém invalidním vozíku – směr doprava',
-    '🏃🏻‍♀‍➡' => 'běžící žena – směr doprava',
-    '🏃🏼‍♀‍➡' => 'běžící žena – směr doprava',
-    '🏃🏽‍♀‍➡' => 'běžící žena – směr doprava',
-    '🏃🏾‍♀‍➡' => 'běžící žena – směr doprava',
-    '🏃🏿‍♀‍➡' => 'běžící žena – směr doprava',
-    '🏃🏻‍♂‍➡' => 'běžící muž – směr doprava',
-    '🏃🏼‍♂‍➡' => 'běžící muž – směr doprava',
-    '🏃🏽‍♂‍➡' => 'běžící muž – směr doprava',
-    '🏃🏾‍♂‍➡' => 'běžící muž – směr doprava',
-    '🏃🏿‍♂‍➡' => 'běžící muž – směr doprava',
+    '🚶🏻‍♀‍➡' => 'kráčející žena: světlý odstín pleti, – směr doprava',
+    '🚶🏼‍♀‍➡' => 'kráčející žena: středně světlý odstín pleti, – směr doprava',
+    '🚶🏽‍♀‍➡' => 'kráčející žena: střední odstín pleti, – směr doprava',
+    '🚶🏾‍♀‍➡' => 'kráčející žena: středně tmavý odstín pleti, – směr doprava',
+    '🚶🏿‍♀‍➡' => 'kráčející žena: tmavý odstín pleti, – směr doprava',
+    '🚶🏻‍♂‍➡' => 'kráčející muž: světlý odstín pleti, – směr doprava',
+    '🚶🏼‍♂‍➡' => 'kráčející muž: středně světlý odstín pleti, – směr doprava',
+    '🚶🏽‍♂‍➡' => 'kráčející muž: střední odstín pleti, – směr doprava',
+    '🚶🏾‍♂‍➡' => 'kráčející muž: středně tmavý odstín pleti, – směr doprava',
+    '🚶🏿‍♂‍➡' => 'kráčející muž: tmavý odstín pleti, – směr doprava',
+    '🧎🏻‍♀‍➡' => 'klečící žena: světlý odstín pleti, – směr doprava',
+    '🧎🏼‍♀‍➡' => 'klečící žena: středně světlý odstín pleti, – směr doprava',
+    '🧎🏽‍♀‍➡' => 'klečící žena: střední odstín pleti, – směr doprava',
+    '🧎🏾‍♀‍➡' => 'klečící žena: středně tmavý odstín pleti, – směr doprava',
+    '🧎🏿‍♀‍➡' => 'klečící žena: tmavý odstín pleti, – směr doprava',
+    '🧎🏻‍♂‍➡' => 'klečící muž: světlý odstín pleti, – směr doprava',
+    '🧎🏼‍♂‍➡' => 'klečící muž: středně světlý odstín pleti, – směr doprava',
+    '🧎🏽‍♂‍➡' => 'klečící muž: střední odstín pleti, – směr doprava',
+    '🧎🏾‍♂‍➡' => 'klečící muž: středně tmavý odstín pleti, – směr doprava',
+    '🧎🏿‍♂‍➡' => 'klečící muž: tmavý odstín pleti, – směr doprava',
+    '🧑🏻‍🦯‍➡' => 'člověk se slepeckou holí: světlý odstín pleti, – směr doprava',
+    '🧑🏼‍🦯‍➡' => 'člověk se slepeckou holí: středně světlý odstín pleti, – směr doprava',
+    '🧑🏽‍🦯‍➡' => 'člověk se slepeckou holí: střední odstín pleti, – směr doprava',
+    '🧑🏾‍🦯‍➡' => 'člověk se slepeckou holí: středně tmavý odstín pleti, – směr doprava',
+    '🧑🏿‍🦯‍➡' => 'člověk se slepeckou holí: tmavý odstín pleti, – směr doprava',
+    '👨🏻‍🦯‍➡' => 'muž se slepeckou holí: světlý odstín pleti, – směr doprava',
+    '👨🏼‍🦯‍➡' => 'muž se slepeckou holí: středně světlý odstín pleti, – směr doprava',
+    '👨🏽‍🦯‍➡' => 'muž se slepeckou holí: střední odstín pleti, – směr doprava',
+    '👨🏾‍🦯‍➡' => 'muž se slepeckou holí: středně tmavý odstín pleti, – směr doprava',
+    '👨🏿‍🦯‍➡' => 'muž se slepeckou holí: tmavý odstín pleti, – směr doprava',
+    '👩🏻‍🦯‍➡' => 'žena se slepeckou holí: světlý odstín pleti, – směr doprava',
+    '👩🏼‍🦯‍➡' => 'žena se slepeckou holí: středně světlý odstín pleti, – směr doprava',
+    '👩🏽‍🦯‍➡' => 'žena se slepeckou holí: střední odstín pleti, – směr doprava',
+    '👩🏾‍🦯‍➡' => 'žena se slepeckou holí: středně tmavý odstín pleti, – směr doprava',
+    '👩🏿‍🦯‍➡' => 'žena se slepeckou holí: tmavý odstín pleti, – směr doprava',
+    '🧑🏻‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku: světlý odstín pleti, – směr doprava',
+    '🧑🏼‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku: středně světlý odstín pleti, – směr doprava',
+    '🧑🏽‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku: střední odstín pleti, – směr doprava',
+    '🧑🏾‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku: středně tmavý odstín pleti, – směr doprava',
+    '🧑🏿‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku: tmavý odstín pleti, – směr doprava',
+    '👨🏻‍🦼‍➡' => 'muž na elektrickém invalidním vozíku: světlý odstín pleti, – směr doprava',
+    '👨🏼‍🦼‍➡' => 'muž na elektrickém invalidním vozíku: středně světlý odstín pleti, – směr doprava',
+    '👨🏽‍🦼‍➡' => 'muž na elektrickém invalidním vozíku: střední odstín pleti, – směr doprava',
+    '👨🏾‍🦼‍➡' => 'muž na elektrickém invalidním vozíku: středně tmavý odstín pleti, – směr doprava',
+    '👨🏿‍🦼‍➡' => 'muž na elektrickém invalidním vozíku: tmavý odstín pleti, – směr doprava',
+    '👩🏻‍🦼‍➡' => 'žena na elektrickém invalidním vozíku: světlý odstín pleti, – směr doprava',
+    '👩🏼‍🦼‍➡' => 'žena na elektrickém invalidním vozíku: středně světlý odstín pleti, – směr doprava',
+    '👩🏽‍🦼‍➡' => 'žena na elektrickém invalidním vozíku: střední odstín pleti, – směr doprava',
+    '👩🏾‍🦼‍➡' => 'žena na elektrickém invalidním vozíku: středně tmavý odstín pleti, – směr doprava',
+    '👩🏿‍🦼‍➡' => 'žena na elektrickém invalidním vozíku: tmavý odstín pleti, – směr doprava',
+    '🧑🏻‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku: světlý odstín pleti, – směr doprava',
+    '🧑🏼‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku: středně světlý odstín pleti, – směr doprava',
+    '🧑🏽‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku: střední odstín pleti, – směr doprava',
+    '🧑🏾‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku: středně tmavý odstín pleti, – směr doprava',
+    '🧑🏿‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku: tmavý odstín pleti, – směr doprava',
+    '👨🏻‍🦽‍➡' => 'muž na mechanickém invalidním vozíku: světlý odstín pleti, – směr doprava',
+    '👨🏼‍🦽‍➡' => 'muž na mechanickém invalidním vozíku: středně světlý odstín pleti, – směr doprava',
+    '👨🏽‍🦽‍➡' => 'muž na mechanickém invalidním vozíku: střední odstín pleti, – směr doprava',
+    '👨🏾‍🦽‍➡' => 'muž na mechanickém invalidním vozíku: středně tmavý odstín pleti, – směr doprava',
+    '👨🏿‍🦽‍➡' => 'muž na mechanickém invalidním vozíku: tmavý odstín pleti, – směr doprava',
+    '👩🏻‍🦽‍➡' => 'žena na mechanickém invalidním vozíku: světlý odstín pleti, – směr doprava',
+    '👩🏼‍🦽‍➡' => 'žena na mechanickém invalidním vozíku: středně světlý odstín pleti, – směr doprava',
+    '👩🏽‍🦽‍➡' => 'žena na mechanickém invalidním vozíku: střední odstín pleti, – směr doprava',
+    '👩🏾‍🦽‍➡' => 'žena na mechanickém invalidním vozíku: středně tmavý odstín pleti, – směr doprava',
+    '👩🏿‍🦽‍➡' => 'žena na mechanickém invalidním vozíku: tmavý odstín pleti, – směr doprava',
+    '🏃🏻‍♀‍➡' => 'běžící žena: světlý odstín pleti, – směr doprava',
+    '🏃🏼‍♀‍➡' => 'běžící žena: středně světlý odstín pleti, – směr doprava',
+    '🏃🏽‍♀‍➡' => 'běžící žena: střední odstín pleti, – směr doprava',
+    '🏃🏾‍♀‍➡' => 'běžící žena: středně tmavý odstín pleti, – směr doprava',
+    '🏃🏿‍♀‍➡' => 'běžící žena: tmavý odstín pleti, – směr doprava',
+    '🏃🏻‍♂‍➡' => 'běžící muž: světlý odstín pleti, – směr doprava',
+    '🏃🏼‍♂‍➡' => 'běžící muž: středně světlý odstín pleti, – směr doprava',
+    '🏃🏽‍♂‍➡' => 'běžící muž: střední odstín pleti, – směr doprava',
+    '🏃🏾‍♂‍➡' => 'běžící muž: středně tmavý odstín pleti, – směr doprava',
+    '🏃🏿‍♂‍➡' => 'běžící muž: tmavý odstín pleti, – směr doprava',
     '🫱🏻‍🫲🏼' => 'stisk rukou: světlý odstín pleti, středně světlý odstín pleti',
     '🫱🏻‍🫲🏽' => 'stisk rukou: světlý odstín pleti, střední odstín pleti',
     '🫱🏻‍🫲🏾' => 'stisk rukou: světlý odstín pleti, středně tmavý odstín pleti',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'stisk rukou: tmavý odstín pleti, středně světlý odstín pleti',
     '🫱🏿‍🫲🏽' => 'stisk rukou: tmavý odstín pleti, střední odstín pleti',
     '🫱🏿‍🫲🏾' => 'stisk rukou: tmavý odstín pleti, středně tmavý odstín pleti',
-    '🚶‍♀‍➡' => 'kráčející žena – směr doprava',
-    '🚶‍♂‍➡' => 'kráčející muž – směr doprava',
-    '🧎‍♀‍➡' => 'klečící žena – směr doprava',
-    '🧎‍♂‍➡' => 'klečící muž – směr doprava',
-    '🧑‍🦯‍➡' => 'člověk se slepeckou holí – směr doprava',
-    '👨‍🦯‍➡' => 'muž se slepeckou holí – směr doprava',
-    '👩‍🦯‍➡' => 'žena se slepeckou holí – směr doprava',
-    '🧑‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku – směr doprava',
-    '👨‍🦼‍➡' => 'muž na elektrickém invalidním vozíku – směr doprava',
-    '👩‍🦼‍➡' => 'žena na elektrickém invalidním vozíku – směr doprava',
-    '🧑‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku – směr doprava',
-    '👨‍🦽‍➡' => 'muž na mechanickém invalidním vozíku – směr doprava',
-    '👩‍🦽‍➡' => 'žena na mechanickém invalidním vozíku – směr doprava',
-    '🏃‍♀‍➡' => 'běžící žena – směr doprava',
-    '🏃‍♂‍➡' => 'běžící muž – směr doprava',
+    '🚶‍♀‍➡' => 'kráčející žena: – směr doprava',
+    '🚶‍♂‍➡' => 'kráčející muž: – směr doprava',
+    '🧎‍♀‍➡' => 'klečící žena: – směr doprava',
+    '🧎‍♂‍➡' => 'klečící muž: – směr doprava',
+    '🧑‍🦯‍➡' => 'člověk se slepeckou holí: – směr doprava',
+    '👨‍🦯‍➡' => 'muž se slepeckou holí: – směr doprava',
+    '👩‍🦯‍➡' => 'žena se slepeckou holí: – směr doprava',
+    '🧑‍🦼‍➡' => 'člověk na elektrickém invalidním vozíku: – směr doprava',
+    '👨‍🦼‍➡' => 'muž na elektrickém invalidním vozíku: – směr doprava',
+    '👩‍🦼‍➡' => 'žena na elektrickém invalidním vozíku: – směr doprava',
+    '🧑‍🦽‍➡' => 'člověk na mechanickém invalidním vozíku: – směr doprava',
+    '👨‍🦽‍➡' => 'muž na mechanickém invalidním vozíku: – směr doprava',
+    '👩‍🦽‍➡' => 'žena na mechanickém invalidním vozíku: – směr doprava',
+    '🏃‍♀‍➡' => 'běžící žena: – směr doprava',
+    '🏃‍♂‍➡' => 'běžící muž: – směr doprava',
     '👩‍❤‍👨' => 'pár se srdcem: žena, muž',
     '👨‍❤‍👨' => 'pár se srdcem: muž, muž',
     '👩‍❤‍👩' => 'pár se srdcem: žena, žena',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'dospělý člověk: střední odstín pleti, bez vlasů',
     '🧑🏾‍🦲' => 'dospělý člověk: středně tmavý odstín pleti, bez vlasů',
     '🧑🏿‍🦲' => 'dospělý člověk: tmavý odstín pleti, bez vlasů',
+    '🧑🏻‍🩰' => 'baletní tanečník: světlý odstín pleti',
+    '🧑🏼‍🩰' => 'baletní tanečník: středně světlý odstín pleti',
+    '🧑🏽‍🩰' => 'baletní tanečník: střední odstín pleti',
+    '🧑🏾‍🩰' => 'baletní tanečník: středně tmavý odstín pleti',
+    '🧑🏿‍🩰' => 'baletní tanečník: tmavý odstín pleti',
     '🧔🏻‍♂' => 'muž s plnovousem: světlý odstín pleti',
     '🧔🏼‍♂' => 'muž s plnovousem: středně světlý odstín pleti',
     '🧔🏽‍♂' => 'muž s plnovousem: střední odstín pleti',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'kráčející žena: střední odstín pleti',
     '🚶🏾‍♀' => 'kráčející žena: středně tmavý odstín pleti',
     '🚶🏿‍♀' => 'kráčející žena: tmavý odstín pleti',
-    '🚶🏻‍➡' => 'kráčející osoba – směr doprava',
-    '🚶🏼‍➡' => 'kráčející osoba – směr doprava',
-    '🚶🏽‍➡' => 'kráčející osoba – směr doprava',
-    '🚶🏾‍➡' => 'kráčející osoba – směr doprava',
-    '🚶🏿‍➡' => 'kráčející osoba – směr doprava',
+    '🚶🏻‍➡' => 'kráčející osoba: světlý odstín pleti, – směr doprava',
+    '🚶🏼‍➡' => 'kráčející osoba: středně světlý odstín pleti, – směr doprava',
+    '🚶🏽‍➡' => 'kráčející osoba: střední odstín pleti, – směr doprava',
+    '🚶🏾‍➡' => 'kráčející osoba: středně tmavý odstín pleti, – směr doprava',
+    '🚶🏿‍➡' => 'kráčející osoba: tmavý odstín pleti, – směr doprava',
     '🧍🏻‍♂' => 'stojící muž: světlý odstín pleti',
     '🧍🏼‍♂' => 'stojící muž: středně světlý odstín pleti',
     '🧍🏽‍♂' => 'stojící muž: střední odstín pleti',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'klečící žena: střední odstín pleti',
     '🧎🏾‍♀' => 'klečící žena: středně tmavý odstín pleti',
     '🧎🏿‍♀' => 'klečící žena: tmavý odstín pleti',
-    '🧎🏻‍➡' => 'klečící osoba – směr doprava',
-    '🧎🏼‍➡' => 'klečící osoba – směr doprava',
-    '🧎🏽‍➡' => 'klečící osoba – směr doprava',
-    '🧎🏾‍➡' => 'klečící osoba – směr doprava',
-    '🧎🏿‍➡' => 'klečící osoba – směr doprava',
+    '🧎🏻‍➡' => 'klečící osoba: světlý odstín pleti, – směr doprava',
+    '🧎🏼‍➡' => 'klečící osoba: středně světlý odstín pleti, – směr doprava',
+    '🧎🏽‍➡' => 'klečící osoba: střední odstín pleti, – směr doprava',
+    '🧎🏾‍➡' => 'klečící osoba: středně tmavý odstín pleti, – směr doprava',
+    '🧎🏿‍➡' => 'klečící osoba: tmavý odstín pleti, – směr doprava',
     '🧑🏻‍🦯' => 'člověk se slepeckou holí: světlý odstín pleti',
     '🧑🏼‍🦯' => 'člověk se slepeckou holí: středně světlý odstín pleti',
     '🧑🏽‍🦯' => 'člověk se slepeckou holí: střední odstín pleti',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'běžící žena: střední odstín pleti',
     '🏃🏾‍♀' => 'běžící žena: středně tmavý odstín pleti',
     '🏃🏿‍♀' => 'běžící žena: tmavý odstín pleti',
-    '🏃🏻‍➡' => 'běžící osoba – směr doprava',
-    '🏃🏼‍➡' => 'běžící osoba – směr doprava',
-    '🏃🏽‍➡' => 'běžící osoba – směr doprava',
-    '🏃🏾‍➡' => 'běžící osoba – směr doprava',
-    '🏃🏿‍➡' => 'běžící osoba – směr doprava',
+    '🏃🏻‍➡' => 'běžící osoba: světlý odstín pleti, – směr doprava',
+    '🏃🏼‍➡' => 'běžící osoba: středně světlý odstín pleti, – směr doprava',
+    '🏃🏽‍➡' => 'běžící osoba: střední odstín pleti, – směr doprava',
+    '🏃🏾‍➡' => 'běžící osoba: středně tmavý odstín pleti, – směr doprava',
+    '🏃🏿‍➡' => 'běžící osoba: tmavý odstín pleti, – směr doprava',
+    '👯🏻‍♀' => 'ženy se zaječími oušky: světlý odstín pleti',
+    '👯🏼‍♀' => 'ženy se zaječími oušky: středně světlý odstín pleti',
+    '👯🏽‍♀' => 'ženy se zaječími oušky: střední odstín pleti',
+    '👯🏾‍♀' => 'ženy se zaječími oušky: středně tmavý odstín pleti',
+    '👯🏿‍♀' => 'ženy se zaječími oušky: tmavý odstín pleti',
+    '👯🏻‍♂' => 'muži se zaječími oušky: světlý odstín pleti',
+    '👯🏼‍♂' => 'muži se zaječími oušky: středně světlý odstín pleti',
+    '👯🏽‍♂' => 'muži se zaječími oušky: střední odstín pleti',
+    '👯🏾‍♂' => 'muži se zaječími oušky: středně tmavý odstín pleti',
+    '👯🏿‍♂' => 'muži se zaječími oušky: tmavý odstín pleti',
     '🧖🏻‍♂' => 'muž v sauně: světlý odstín pleti',
     '🧖🏼‍♂' => 'muž v sauně: středně světlý odstín pleti',
     '🧖🏽‍♂' => 'muž v sauně: střední odstín pleti',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'žena dělající přemet stranou: střední odstín pleti',
     '🤸🏾‍♀' => 'žena dělající přemet stranou: středně tmavý odstín pleti',
     '🤸🏿‍♀' => 'žena dělající přemet stranou: tmavý odstín pleti',
+    '🤼🏻‍♀' => 'zápasící ženy: světlý odstín pleti',
+    '🤼🏼‍♀' => 'zápasící ženy: středně světlý odstín pleti',
+    '🤼🏽‍♀' => 'zápasící ženy: střední odstín pleti',
+    '🤼🏾‍♀' => 'zápasící ženy: středně tmavý odstín pleti',
+    '🤼🏿‍♀' => 'zápasící ženy: tmavý odstín pleti',
+    '🤼🏻‍♂' => 'zápasící muži: světlý odstín pleti',
+    '🤼🏼‍♂' => 'zápasící muži: středně světlý odstín pleti',
+    '🤼🏽‍♂' => 'zápasící muži: střední odstín pleti',
+    '🤼🏾‍♂' => 'zápasící muži: středně tmavý odstín pleti',
+    '🤼🏿‍♂' => 'zápasící muži: tmavý odstín pleti',
     '🤽🏻‍♂' => 'hráč vodního póla: světlý odstín pleti',
     '🤽🏼‍♂' => 'hráč vodního póla: středně světlý odstín pleti',
     '🤽🏽‍♂' => 'hráč vodního póla: střední odstín pleti',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'žena: kudrnaté vlasy',
     '👩‍🦳' => 'žena: bílé vlasy',
     '👩‍🦲' => 'žena: bez vlasů',
-    '🚶‍➡' => 'kráčející osoba – směr doprava',
-    '🧎‍➡' => 'klečící osoba – směr doprava',
-    '🏃‍➡' => 'běžící osoba – směr doprava',
+    '🚶‍➡' => 'kráčející osoba: – směr doprava',
+    '🧎‍➡' => 'klečící osoba: – směr doprava',
+    '🏃‍➡' => 'běžící osoba: – směr doprava',
     '👨‍👦' => 'rodina: muž, chlapec',
     '👨‍👧' => 'rodina: muž, dívka',
     '👩‍👦' => 'rodina: žena, chlapec',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'žena na mechanickém invalidním vozíku',
     '🏃‍♂' => 'běžící muž',
     '🏃‍♀' => 'běžící žena',
+    '🧑‍🩰' => 'baletní tanečník',
     '👯‍♂' => 'muži se zaječími oušky',
     '👯‍♀' => 'ženy se zaječími oušky',
     '🧖‍♂' => 'muž v sauně',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'levitující byznysmen: střední odstín pleti',
     '🕴🏾' => 'levitující byznysmen: středně tmavý odstín pleti',
     '🕴🏿' => 'levitující byznysmen: tmavý odstín pleti',
+    '👯🏻' => 'osoby se zaječími oušky: světlý odstín pleti',
+    '👯🏼' => 'osoby se zaječími oušky: středně světlý odstín pleti',
+    '👯🏽' => 'osoby se zaječími oušky: střední odstín pleti',
+    '👯🏾' => 'osoby se zaječími oušky: středně tmavý odstín pleti',
+    '👯🏿' => 'osoby se zaječími oušky: tmavý odstín pleti',
     '🧖🏻' => 'osoba v sauně: světlý odstín pleti',
     '🧖🏼' => 'osoba v sauně: středně světlý odstín pleti',
     '🧖🏽' => 'osoba v sauně: střední odstín pleti',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'osoba dělající přemet stranou: střední odstín pleti',
     '🤸🏾' => 'osoba dělající přemet stranou: středně tmavý odstín pleti',
     '🤸🏿' => 'osoba dělající přemet stranou: tmavý odstín pleti',
+    '🤼🏻' => 'zápasící dvojice: světlý odstín pleti',
+    '🤼🏼' => 'zápasící dvojice: středně světlý odstín pleti',
+    '🤼🏽' => 'zápasící dvojice: střední odstín pleti',
+    '🤼🏾' => 'zápasící dvojice: středně tmavý odstín pleti',
+    '🤼🏿' => 'zápasící dvojice: tmavý odstín pleti',
     '🤽🏻' => 'osoba hrající vodní pólo: světlý odstín pleti',
     '🤽🏼' => 'osoba hrající vodní pólo: středně světlý odstín pleti',
     '🤽🏽' => 'osoba hrající vodní pólo: střední odstín pleti',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'vlajka: Čína',
     '🇨🇴' => 'vlajka: Kolumbie',
     '🇨🇵' => 'vlajka: Clippertonův ostrov',
+    '🇨🇶' => 'vlajka: Sark',
     '🇨🇷' => 'vlajka: Kostarika',
     '🇨🇺' => 'vlajka: Kuba',
     '🇨🇻' => 'vlajka: Kapverdy',
@@ -2390,13 +2547,6 @@
     '🏽' => 'střední odstín pleti',
     '🏾' => 'středně tmavý odstín pleti',
     '🏿' => 'tmavý odstín pleti',
-    '🪉' => 'harfa',
-    '🪏' => 'lopata',
-    '🪾' => 'strom bez listí',
-    '🫆' => 'otisk prstu',
-    '🫜' => 'kořenová zelenina',
-    '🫟' => 'skvrna',
-    '🫩' => 'obličej s kruhy pod očima',
     '😀' => 'zubící se obličej',
     '😃' => 'zubící se obličej s velkýma očima',
     '😄' => 'zubící se obličej s usměvavýma očima',
@@ -2450,6 +2600,7 @@
     '😪' => 'ospalý obličej',
     '🤤' => 'slintající obličej',
     '😴' => 'spící obličej',
+    '🫩' => 'obličej s kruhy pod očima',
     '😷' => 'obličej s lékařskou rouškou',
     '🤒' => 'obličej s teploměrem',
     '🤕' => 'obličej s ovázanou hlavou',
@@ -2476,6 +2627,7 @@
     '😯' => 'obličej se zaraženým výrazem',
     '😲' => 'užaslý obličej',
     '😳' => 'červenající se obličej',
+    '🫪' => 'pokřivený obličej',
     '🥺' => 'prosebný obličej',
     '🥹' => 'obličej se slzami na krajíčku',
     '😦' => 'zamračený obličej s otevřenou pusou',
@@ -2547,6 +2699,7 @@
     '💋' => 'otisk rtů',
     '💯' => 'sto bodů',
     '💢' => 'japonský symbol hněvu',
+    '🫯' => 'oblak sršící hádkou',
     '💥' => 'srážka',
     '💫' => 'závrať',
     '💦' => 'kapky potu',
@@ -2670,6 +2823,7 @@
     '🧞' => 'duch z lahve',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'chlupatý tvor',
     '💆' => 'osoba na masáži obličeje',
     '💇' => 'osoba u kadeřníka',
     '🚶' => 'kráčející osoba',
@@ -2713,6 +2867,7 @@
     '🫂' => 'objímající se lidé',
     '👪' => 'rodina',
     '👣' => 'stopy',
+    '🫆' => 'otisk prstu',
     '🦰' => 'zrzavé vlasy',
     '🦱' => 'kudrnaté vlasy',
     '🦳' => 'bílé vlasy',
@@ -2812,6 +2967,7 @@
     '🐳' => 'velryba stříkající vodu',
     '🐋' => 'velryba',
     '🐬' => 'delfín',
+    '🫍' => 'kosatka',
     '🦭' => 'tuleň',
     '🐟' => 'ryba',
     '🐠' => 'tropická ryba',
@@ -2821,6 +2977,11 @@
     '🐚' => 'ulita',
     '🪸' => 'korál',
     '🪼' => 'medúza',
+    '🦀' => 'krab',
+    '🦞' => 'humr',
+    '🦐' => 'kreveta',
+    '🦑' => 'oliheň',
+    '🦪' => 'ústřice',
     '🐌' => 'hlemýžď',
     '🦋' => 'motýl',
     '🐛' => 'housenka',
@@ -2865,6 +3026,7 @@
     '🪹' => 'prázdné hnízdo',
     '🪺' => 'hnízdo s vejci',
     '🍄' => 'houba',
+    '🪾' => 'strom bez listí',
     '🍇' => 'hrozny',
     '🍈' => 'cukrový meloun',
     '🍉' => 'meloun',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kaštan',
     '🫚' => 'zázvor',
     '🫛' => 'hrachový lusk',
+    '🫜' => 'kořenová zelenina',
     '🍞' => 'chleba',
     '🥐' => 'croissant',
     '🥖' => 'bageta',
@@ -2952,11 +3115,6 @@
     '🥟' => 'piroh',
     '🥠' => 'čínský koláček štěstí',
     '🥡' => 'krabice na jídlo',
-    '🦀' => 'krab',
-    '🦞' => 'humr',
-    '🦐' => 'kreveta',
-    '🦑' => 'oliheň',
-    '🦪' => 'ústřice',
     '🍦' => 'točená zmrzlina',
     '🍧' => 'ledová tříšť',
     '🍨' => 'kopečková zmrzlina',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'zasněžená hora',
     '⛰' => 'hora',
+    '🛘' => 'sesuv půdy',
     '🌋' => 'sopka',
     '🗻' => 'hora Fudži',
     '🏕' => 'tábor',
@@ -3367,16 +3526,18 @@
     '🎧' => 'sluchátka',
     '📻' => 'rádio',
     '🎷' => 'saxofon',
+    '🎺' => 'trubka',
+    '🪊' => 'pozoun',
     '🪗' => 'akordeon',
     '🎸' => 'kytara',
     '🎹' => 'klávesy',
-    '🎺' => 'trubka',
     '🎻' => 'housle',
     '🪕' => 'banjo',
     '🥁' => 'buben',
     '🪘' => 'protáhlý buben',
     '🪇' => 'rumbakoule',
     '🪈' => 'flétna',
+    '🪉' => 'harfa',
     '📱' => 'mobil',
     '📲' => 'mobil se šipkou',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'stránky se záložkami',
     '🔖' => 'záložka',
     '🏷' => 'visačka',
-    '💰' => 'pytel peněz',
     '🪙' => 'mince',
+    '💰' => 'pytel peněz',
+    '🪎' => 'truhla s pokladem',
     '💴' => 'jenová bankovka',
     '💵' => 'dolarová bankovka',
     '💶' => 'eurobankovka',
@@ -3514,6 +3676,7 @@
     '🧰' => 'box na nářadí',
     '🧲' => 'magnet',
     '🪜' => 'žebřík',
+    '🪏' => 'lopata',
     '⚗' => 'křivule',
     '🧪' => 'zkumavka',
     '🧫' => 'Petriho miska',
@@ -3697,6 +3860,7 @@
     '✴' => 'osmicípá hvězda',
     '❇' => 'jiskra',
     '™' => 'znak ochranné známky',
+    '🫟' => 'skvrna',
     '🔠' => 'zadávání v latince, velká písmena',
     '🔡' => 'zadávání v latince, malá písmena',
     '🔢' => 'zadávání čísel',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cv.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'чупту: хӗрарӑм хӗрарӑм сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
     '👩🏿‍❤‍💋‍👩🏾' => 'чупту: хӗрарӑм хӗрарӑм сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
     '👩🏿‍❤‍💋‍👩🏿' => 'чупту: хӗрарӑм хӗрарӑм сӑран тӗксӗм тонӗ',
+    '🧑🏻‍🫯‍🧑🏼' => 'кӗрешӳҫӗсем: сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🧑🏻‍🫯‍🧑🏽' => 'кӗрешӳҫӗсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '🧑🏻‍🫯‍🧑🏾' => 'кӗрешӳҫӗсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '🧑🏻‍🫯‍🧑🏿' => 'кӗрешӳҫӗсем: сӑран ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '🧑🏼‍🫯‍🧑🏻' => 'кӗрешӳҫӗсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран ҫутӑ тӗсӗ',
+    '🧑🏼‍🫯‍🧑🏽' => 'кӗрешӳҫӗсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '🧑🏼‍🫯‍🧑🏾' => 'кӗрешӳҫӗсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '🧑🏼‍🫯‍🧑🏿' => 'кӗрешӳҫӗсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '🧑🏽‍🫯‍🧑🏻' => 'кӗрешӳҫӗсем: сӑран вӑтам тонӗ сӑран ҫутӑ тӗсӗ',
+    '🧑🏽‍🫯‍🧑🏼' => 'кӗрешӳҫӗсем: сӑран вӑтам тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🧑🏽‍🫯‍🧑🏾' => 'кӗрешӳҫӗсем: сӑран вӑтам тонӗ сӑран вӑтам тӗксӗм тонӗ',
+    '🧑🏽‍🫯‍🧑🏿' => 'кӗрешӳҫӗсем: сӑран вӑтам тонӗ сӑран тӗксӗм тонӗ',
+    '🧑🏾‍🫯‍🧑🏻' => 'кӗрешӳҫӗсем: сӑран вӑтам тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '🧑🏾‍🫯‍🧑🏼' => 'кӗрешӳҫӗсем: сӑран вӑтам тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🧑🏾‍🫯‍🧑🏽' => 'кӗрешӳҫӗсем: сӑран вӑтам тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '🧑🏾‍🫯‍🧑🏿' => 'кӗрешӳҫӗсем: сӑран вӑтам тӗксӗм тонӗ сӑран тӗксӗм тонӗ',
+    '🧑🏿‍🫯‍🧑🏻' => 'кӗрешӳҫӗсем: сӑран тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '🧑🏿‍🫯‍🧑🏼' => 'кӗрешӳҫӗсем: сӑран тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🧑🏿‍🫯‍🧑🏽' => 'кӗрешӳҫӗсем: сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '🧑🏿‍🫯‍🧑🏾' => 'кӗрешӳҫӗсем: сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
     '🧑🏻‍❤‍🧑🏼' => 'юратса пӑрахнӑ мӑшӑр: ҫитӗннӗ ҫын ҫитӗннӗ ҫын сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🧑🏻‍❤‍🧑🏽' => 'юратса пӑрахнӑ мӑшӑр: ҫитӗннӗ ҫын ҫитӗннӗ ҫын сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
     '🧑🏻‍❤‍🧑🏾' => 'юратса пӑрахнӑ мӑшӑр: ҫитӗннӗ ҫын ҫитӗннӗ ҫын сӑран ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'юратса пӑрахнӑ мӑшӑр: ҫитӗннӗ ҫын ҫитӗннӗ ҫын сӑран тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🧑🏿‍❤‍🧑🏽' => 'юратса пӑрахнӑ мӑшӑр: ҫитӗннӗ ҫын ҫитӗннӗ ҫын сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
     '🧑🏿‍❤‍🧑🏾' => 'юратса пӑрахнӑ мӑшӑр: ҫитӗннӗ ҫын ҫитӗннӗ ҫын сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
+    '🧑🏻‍🐰‍🧑🏼' => 'мулкач хӑлхаллӑ ҫынсем: сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🧑🏻‍🐰‍🧑🏽' => 'мулкач хӑлхаллӑ ҫынсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '🧑🏻‍🐰‍🧑🏾' => 'мулкач хӑлхаллӑ ҫынсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '🧑🏻‍🐰‍🧑🏿' => 'мулкач хӑлхаллӑ ҫынсем: сӑран ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '🧑🏼‍🐰‍🧑🏻' => 'мулкач хӑлхаллӑ ҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран ҫутӑ тӗсӗ',
+    '🧑🏼‍🐰‍🧑🏽' => 'мулкач хӑлхаллӑ ҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '🧑🏼‍🐰‍🧑🏾' => 'мулкач хӑлхаллӑ ҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '🧑🏼‍🐰‍🧑🏿' => 'мулкач хӑлхаллӑ ҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '🧑🏽‍🐰‍🧑🏻' => 'мулкач хӑлхаллӑ ҫынсем: сӑран вӑтам тонӗ сӑран ҫутӑ тӗсӗ',
+    '🧑🏽‍🐰‍🧑🏼' => 'мулкач хӑлхаллӑ ҫынсем: сӑран вӑтам тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🧑🏽‍🐰‍🧑🏾' => 'мулкач хӑлхаллӑ ҫынсем: сӑран вӑтам тонӗ сӑран вӑтам тӗксӗм тонӗ',
+    '🧑🏽‍🐰‍🧑🏿' => 'мулкач хӑлхаллӑ ҫынсем: сӑран вӑтам тонӗ сӑран тӗксӗм тонӗ',
+    '🧑🏾‍🐰‍🧑🏻' => 'мулкач хӑлхаллӑ ҫынсем: сӑран вӑтам тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '🧑🏾‍🐰‍🧑🏼' => 'мулкач хӑлхаллӑ ҫынсем: сӑран вӑтам тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🧑🏾‍🐰‍🧑🏽' => 'мулкач хӑлхаллӑ ҫынсем: сӑран вӑтам тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '🧑🏾‍🐰‍🧑🏿' => 'мулкач хӑлхаллӑ ҫынсем: сӑран вӑтам тӗксӗм тонӗ сӑран тӗксӗм тонӗ',
+    '🧑🏿‍🐰‍🧑🏻' => 'мулкач хӑлхаллӑ ҫынсем: сӑран тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '🧑🏿‍🐰‍🧑🏼' => 'мулкач хӑлхаллӑ ҫынсем: сӑран тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🧑🏿‍🐰‍🧑🏽' => 'мулкач хӑлхаллӑ ҫынсем: сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '🧑🏿‍🐰‍🧑🏾' => 'мулкач хӑлхаллӑ ҫынсем: сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👨🏻‍🫯‍👨🏼' => 'кӗрешӳҫӗ арҫынсем: сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👨🏻‍🫯‍👨🏽' => 'кӗрешӳҫӗ арҫынсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '👨🏻‍🫯‍👨🏾' => 'кӗрешӳҫӗ арҫынсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👨🏻‍🫯‍👨🏿' => 'кӗрешӳҫӗ арҫынсем: сӑран ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '👨🏼‍🫯‍👨🏻' => 'кӗрешӳҫӗ арҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран ҫутӑ тӗсӗ',
+    '👨🏼‍🫯‍👨🏽' => 'кӗрешӳҫӗ арҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '👨🏼‍🫯‍👨🏾' => 'кӗрешӳҫӗ арҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👨🏼‍🫯‍👨🏿' => 'кӗрешӳҫӗ арҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '👨🏽‍🫯‍👨🏻' => 'кӗрешӳҫӗ арҫынсем: сӑран вӑтам тонӗ сӑран ҫутӑ тӗсӗ',
+    '👨🏽‍🫯‍👨🏼' => 'кӗрешӳҫӗ арҫынсем: сӑран вӑтам тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👨🏽‍🫯‍👨🏾' => 'кӗрешӳҫӗ арҫынсем: сӑран вӑтам тонӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👨🏽‍🫯‍👨🏿' => 'кӗрешӳҫӗ арҫынсем: сӑран вӑтам тонӗ сӑран тӗксӗм тонӗ',
+    '👨🏾‍🫯‍👨🏻' => 'кӗрешӳҫӗ арҫынсем: сӑран вӑтам тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '👨🏾‍🫯‍👨🏼' => 'кӗрешӳҫӗ арҫынсем: сӑран вӑтам тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👨🏾‍🫯‍👨🏽' => 'кӗрешӳҫӗ арҫынсем: сӑран вӑтам тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '👨🏾‍🫯‍👨🏿' => 'кӗрешӳҫӗ арҫынсем: сӑран вӑтам тӗксӗм тонӗ сӑран тӗксӗм тонӗ',
+    '👨🏿‍🫯‍👨🏻' => 'кӗрешӳҫӗ арҫынсем: сӑран тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '👨🏿‍🫯‍👨🏼' => 'кӗрешӳҫӗ арҫынсем: сӑран тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👨🏿‍🫯‍👨🏽' => 'кӗрешӳҫӗ арҫынсем: сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '👨🏿‍🫯‍👨🏾' => 'кӗрешӳҫӗ арҫынсем: сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
     '👨🏻‍❤‍👨🏻' => 'юратса пӑрахнӑ мӑшӑр: арҫын арҫын сӑран ҫутӑ тӗсӗ',
     '👨🏻‍❤‍👨🏼' => 'юратса пӑрахнӑ мӑшӑр: арҫын арҫын сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '👨🏻‍❤‍👨🏽' => 'юратса пӑрахнӑ мӑшӑр: арҫын арҫын сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'юратса пӑрахнӑ мӑшӑр: арҫын арҫын сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
     '👨🏿‍❤‍👨🏾' => 'юратса пӑрахнӑ мӑшӑр: арҫын арҫын сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
     '👨🏿‍❤‍👨🏿' => 'юратса пӑрахнӑ мӑшӑр: арҫын арҫын сӑран тӗксӗм тонӗ',
+    '👨🏻‍🐰‍👨🏼' => 'мулкач хӑлхаллӑ арҫынсем: сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👨🏻‍🐰‍👨🏽' => 'мулкач хӑлхаллӑ арҫынсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '👨🏻‍🐰‍👨🏾' => 'мулкач хӑлхаллӑ арҫынсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👨🏻‍🐰‍👨🏿' => 'мулкач хӑлхаллӑ арҫынсем: сӑран ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '👨🏼‍🐰‍👨🏻' => 'мулкач хӑлхаллӑ арҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран ҫутӑ тӗсӗ',
+    '👨🏼‍🐰‍👨🏽' => 'мулкач хӑлхаллӑ арҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '👨🏼‍🐰‍👨🏾' => 'мулкач хӑлхаллӑ арҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👨🏼‍🐰‍👨🏿' => 'мулкач хӑлхаллӑ арҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '👨🏽‍🐰‍👨🏻' => 'мулкач хӑлхаллӑ арҫынсем: сӑран вӑтам тонӗ сӑран ҫутӑ тӗсӗ',
+    '👨🏽‍🐰‍👨🏼' => 'мулкач хӑлхаллӑ арҫынсем: сӑран вӑтам тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👨🏽‍🐰‍👨🏾' => 'мулкач хӑлхаллӑ арҫынсем: сӑран вӑтам тонӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👨🏽‍🐰‍👨🏿' => 'мулкач хӑлхаллӑ арҫынсем: сӑран вӑтам тонӗ сӑран тӗксӗм тонӗ',
+    '👨🏾‍🐰‍👨🏻' => 'мулкач хӑлхаллӑ арҫынсем: сӑран вӑтам тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '👨🏾‍🐰‍👨🏼' => 'мулкач хӑлхаллӑ арҫынсем: сӑран вӑтам тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👨🏾‍🐰‍👨🏽' => 'мулкач хӑлхаллӑ арҫынсем: сӑран вӑтам тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '👨🏾‍🐰‍👨🏿' => 'мулкач хӑлхаллӑ арҫынсем: сӑран вӑтам тӗксӗм тонӗ сӑран тӗксӗм тонӗ',
+    '👨🏿‍🐰‍👨🏻' => 'мулкач хӑлхаллӑ арҫынсем: сӑран тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '👨🏿‍🐰‍👨🏼' => 'мулкач хӑлхаллӑ арҫынсем: сӑран тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👨🏿‍🐰‍👨🏽' => 'мулкач хӑлхаллӑ арҫынсем: сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '👨🏿‍🐰‍👨🏾' => 'мулкач хӑлхаллӑ арҫынсем: сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👩🏻‍🫯‍👩🏼' => 'хӗрарӑм кӗрешӗвӗ: сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👩🏻‍🫯‍👩🏽' => 'хӗрарӑм кӗрешӗвӗ: сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '👩🏻‍🫯‍👩🏾' => 'хӗрарӑм кӗрешӗвӗ: сӑран ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👩🏻‍🫯‍👩🏿' => 'хӗрарӑм кӗрешӗвӗ: сӑран ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '👩🏼‍🫯‍👩🏻' => 'хӗрарӑм кӗрешӗвӗ: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран ҫутӑ тӗсӗ',
+    '👩🏼‍🫯‍👩🏽' => 'хӗрарӑм кӗрешӗвӗ: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '👩🏼‍🫯‍👩🏾' => 'хӗрарӑм кӗрешӗвӗ: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👩🏼‍🫯‍👩🏿' => 'хӗрарӑм кӗрешӗвӗ: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '👩🏽‍🫯‍👩🏻' => 'хӗрарӑм кӗрешӗвӗ: сӑран вӑтам тонӗ сӑран ҫутӑ тӗсӗ',
+    '👩🏽‍🫯‍👩🏼' => 'хӗрарӑм кӗрешӗвӗ: сӑран вӑтам тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👩🏽‍🫯‍👩🏾' => 'хӗрарӑм кӗрешӗвӗ: сӑран вӑтам тонӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👩🏽‍🫯‍👩🏿' => 'хӗрарӑм кӗрешӗвӗ: сӑран вӑтам тонӗ сӑран тӗксӗм тонӗ',
+    '👩🏾‍🫯‍👩🏻' => 'хӗрарӑм кӗрешӗвӗ: сӑран вӑтам тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '👩🏾‍🫯‍👩🏼' => 'хӗрарӑм кӗрешӗвӗ: сӑран вӑтам тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👩🏾‍🫯‍👩🏽' => 'хӗрарӑм кӗрешӗвӗ: сӑран вӑтам тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '👩🏾‍🫯‍👩🏿' => 'хӗрарӑм кӗрешӗвӗ: сӑран вӑтам тӗксӗм тонӗ сӑран тӗксӗм тонӗ',
+    '👩🏿‍🫯‍👩🏻' => 'хӗрарӑм кӗрешӗвӗ: сӑран тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '👩🏿‍🫯‍👩🏼' => 'хӗрарӑм кӗрешӗвӗ: сӑран тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👩🏿‍🫯‍👩🏽' => 'хӗрарӑм кӗрешӗвӗ: сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '👩🏿‍🫯‍👩🏾' => 'хӗрарӑм кӗрешӗвӗ: сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
     '👩🏻‍❤‍👨🏻' => 'юратса пӑрахнӑ мӑшӑр: хӗрарӑм арҫын сӑран ҫутӑ тӗсӗ',
     '👩🏻‍❤‍👨🏼' => 'юратса пӑрахнӑ мӑшӑр: хӗрарӑм арҫын сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '👩🏻‍❤‍👨🏽' => 'юратса пӑрахнӑ мӑшӑр: хӗрарӑм арҫын сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'юратса пӑрахнӑ мӑшӑр: хӗрарӑм хӗрарӑм сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
     '👩🏿‍❤‍👩🏾' => 'юратса пӑрахнӑ мӑшӑр: хӗрарӑм хӗрарӑм сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
     '👩🏿‍❤‍👩🏿' => 'юратса пӑрахнӑ мӑшӑр: хӗрарӑм хӗрарӑм сӑран тӗксӗм тонӗ',
+    '👩🏻‍🐰‍👩🏼' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👩🏻‍🐰‍👩🏽' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '👩🏻‍🐰‍👩🏾' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👩🏻‍🐰‍👩🏿' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '👩🏼‍🐰‍👩🏻' => 'мулкач хӑлхаллӑ хӗрарӑмсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран ҫутӑ тӗсӗ',
+    '👩🏼‍🐰‍👩🏽' => 'мулкач хӑлхаллӑ хӗрарӑмсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
+    '👩🏼‍🐰‍👩🏾' => 'мулкач хӑлхаллӑ хӗрарӑмсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👩🏼‍🐰‍👩🏿' => 'мулкач хӑлхаллӑ хӗрарӑмсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сӑран тӗксӗм тонӗ',
+    '👩🏽‍🐰‍👩🏻' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран вӑтам тонӗ сӑран ҫутӑ тӗсӗ',
+    '👩🏽‍🐰‍👩🏼' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран вӑтам тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👩🏽‍🐰‍👩🏾' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран вӑтам тонӗ сӑран вӑтам тӗксӗм тонӗ',
+    '👩🏽‍🐰‍👩🏿' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран вӑтам тонӗ сӑран тӗксӗм тонӗ',
+    '👩🏾‍🐰‍👩🏻' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран вӑтам тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '👩🏾‍🐰‍👩🏼' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран вӑтам тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👩🏾‍🐰‍👩🏽' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран вӑтам тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '👩🏾‍🐰‍👩🏿' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран вӑтам тӗксӗм тонӗ сӑран тӗксӗм тонӗ',
+    '👩🏿‍🐰‍👩🏻' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран тӗксӗм тонӗ сӑран ҫутӑ тӗсӗ',
+    '👩🏿‍🐰‍👩🏼' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👩🏿‍🐰‍👩🏽' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
+    '👩🏿‍🐰‍👩🏾' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
     '🧑🏻‍🤝‍🧑🏻' => 'алӑран тытнӑ ҫынсем: сӑран ҫутӑ тӗсӗ',
     '🧑🏻‍🤝‍🧑🏼' => 'алӑран тытнӑ ҫынсем: сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🧑🏻‍🤝‍🧑🏽' => 'алӑран тытнӑ ҫынсем: сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'ҫемье: хӗрарӑм хӗрарӑм арçын ача арçын ача',
     '👩‍👩‍👧‍👧' => 'ҫемье: хӗрарӑм хӗрарӑм хӗрача хӗрача',
     '🧑‍🧑‍🧒‍🧒' => 'ҫемье: икӗ асли тата икӗ ача',
-    '🚶🏻‍♀‍➡' => 'хӗрарӑм килет сылтӑмалла',
-    '🚶🏼‍♀‍➡' => 'хӗрарӑм килет сылтӑмалла',
-    '🚶🏽‍♀‍➡' => 'хӗрарӑм килет сылтӑмалла',
-    '🚶🏾‍♀‍➡' => 'хӗрарӑм килет сылтӑмалла',
-    '🚶🏿‍♀‍➡' => 'хӗрарӑм килет сылтӑмалла',
-    '🚶🏻‍♂‍➡' => 'арҫын килет сылтӑмалла',
-    '🚶🏼‍♂‍➡' => 'арҫын килет сылтӑмалла',
-    '🚶🏽‍♂‍➡' => 'арҫын килет сылтӑмалла',
-    '🚶🏾‍♂‍➡' => 'арҫын килет сылтӑмалла',
-    '🚶🏿‍♂‍➡' => 'арҫын килет сылтӑмалла',
-    '🧎🏻‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм сылтӑмалла',
-    '🧎🏼‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм сылтӑмалла',
-    '🧎🏽‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм сылтӑмалла',
-    '🧎🏾‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм сылтӑмалла',
-    '🧎🏿‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм сылтӑмалла',
-    '🧎🏻‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче сылтӑмалла',
-    '🧎🏼‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче сылтӑмалла',
-    '🧎🏽‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче сылтӑмалла',
-    '🧎🏾‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче сылтӑмалла',
-    '🧎🏿‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче сылтӑмалла',
-    '🧑🏻‍🦯‍➡' => 'шурӑ туялӑ ҫын сылтӑмалла',
-    '🧑🏼‍🦯‍➡' => 'шурӑ туялӑ ҫын сылтӑмалла',
-    '🧑🏽‍🦯‍➡' => 'шурӑ туялӑ ҫын сылтӑмалла',
-    '🧑🏾‍🦯‍➡' => 'шурӑ туялӑ ҫын сылтӑмалла',
-    '🧑🏿‍🦯‍➡' => 'шурӑ туялӑ ҫын сылтӑмалла',
-    '👨🏻‍🦯‍➡' => 'утмалли туя сылтӑмалла',
-    '👨🏼‍🦯‍➡' => 'утмалли туя сылтӑмалла',
-    '👨🏽‍🦯‍➡' => 'утмалли туя сылтӑмалла',
-    '👨🏾‍🦯‍➡' => 'утмалли туя сылтӑмалла',
-    '👨🏿‍🦯‍➡' => 'утмалли туя сылтӑмалла',
-    '👩🏻‍🦯‍➡' => 'шур патаклӑ хӗрарӑм сылтӑмалла',
-    '👩🏼‍🦯‍➡' => 'шур патаклӑ хӗрарӑм сылтӑмалла',
-    '👩🏽‍🦯‍➡' => 'шур патаклӑ хӗрарӑм сылтӑмалла',
-    '👩🏾‍🦯‍➡' => 'шур патаклӑ хӗрарӑм сылтӑмалла',
-    '👩🏿‍🦯‍➡' => 'шур патаклӑ хӗрарӑм сылтӑмалла',
-    '🧑🏻‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '🧑🏼‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '🧑🏽‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '🧑🏾‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '🧑🏿‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '👨🏻‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👨🏼‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👨🏽‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👨🏾‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👨🏿‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👩🏻‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм сылтӑмалла',
-    '👩🏼‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм сылтӑмалла',
-    '👩🏽‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм сылтӑмалла',
-    '👩🏾‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм сылтӑмалла',
-    '👩🏿‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм сылтӑмалла',
-    '🧑🏻‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '🧑🏼‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '🧑🏽‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '🧑🏾‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '🧑🏿‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '👨🏻‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👨🏼‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👨🏽‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👨🏾‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👨🏿‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👩🏻‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм сылтӑмалла',
-    '👩🏼‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм сылтӑмалла',
-    '👩🏽‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм сылтӑмалла',
-    '👩🏾‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм сылтӑмалла',
-    '👩🏿‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм сылтӑмалла',
-    '🏃🏻‍♀‍➡' => 'чупакан хӗрарӑм сылтӑмалла',
-    '🏃🏼‍♀‍➡' => 'чупакан хӗрарӑм сылтӑмалла',
-    '🏃🏽‍♀‍➡' => 'чупакан хӗрарӑм сылтӑмалла',
-    '🏃🏾‍♀‍➡' => 'чупакан хӗрарӑм сылтӑмалла',
-    '🏃🏿‍♀‍➡' => 'чупакан хӗрарӑм сылтӑмалла',
-    '🏃🏻‍♂‍➡' => 'арҫын чупать сылтӑмалла',
-    '🏃🏼‍♂‍➡' => 'арҫын чупать сылтӑмалла',
-    '🏃🏽‍♂‍➡' => 'арҫын чупать сылтӑмалла',
-    '🏃🏾‍♂‍➡' => 'арҫын чупать сылтӑмалла',
-    '🏃🏿‍♂‍➡' => 'арҫын чупать сылтӑмалла',
+    '🚶🏻‍♀‍➡' => 'хӗрарӑм килет: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🚶🏼‍♀‍➡' => 'хӗрарӑм килет: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🚶🏽‍♀‍➡' => 'хӗрарӑм килет: сӑран вӑтам тонӗ сылтӑмалла',
+    '🚶🏾‍♀‍➡' => 'хӗрарӑм килет: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🚶🏿‍♀‍➡' => 'хӗрарӑм килет: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '🚶🏻‍♂‍➡' => 'арҫын килет: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🚶🏼‍♂‍➡' => 'арҫын килет: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🚶🏽‍♂‍➡' => 'арҫын килет: сӑран вӑтам тонӗ сылтӑмалла',
+    '🚶🏾‍♂‍➡' => 'арҫын килет: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🚶🏿‍♂‍➡' => 'арҫын килет: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '🧎🏻‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🧎🏼‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🧎🏽‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм: сӑран вӑтам тонӗ сылтӑмалла',
+    '🧎🏾‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🧎🏿‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '🧎🏻‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🧎🏼‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🧎🏽‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче: сӑран вӑтам тонӗ сылтӑмалла',
+    '🧎🏾‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🧎🏿‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '🧑🏻‍🦯‍➡' => 'шурӑ туялӑ ҫын: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🧑🏼‍🦯‍➡' => 'шурӑ туялӑ ҫын: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🧑🏽‍🦯‍➡' => 'шурӑ туялӑ ҫын: сӑран вӑтам тонӗ сылтӑмалла',
+    '🧑🏾‍🦯‍➡' => 'шурӑ туялӑ ҫын: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🧑🏿‍🦯‍➡' => 'шурӑ туялӑ ҫын: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '👨🏻‍🦯‍➡' => 'утмалли туя: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '👨🏼‍🦯‍➡' => 'утмалли туя: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '👨🏽‍🦯‍➡' => 'утмалли туя: сӑран вӑтам тонӗ сылтӑмалла',
+    '👨🏾‍🦯‍➡' => 'утмалли туя: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '👨🏿‍🦯‍➡' => 'утмалли туя: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '👩🏻‍🦯‍➡' => 'шур патаклӑ хӗрарӑм: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '👩🏼‍🦯‍➡' => 'шур патаклӑ хӗрарӑм: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '👩🏽‍🦯‍➡' => 'шур патаклӑ хӗрарӑм: сӑран вӑтам тонӗ сылтӑмалла',
+    '👩🏾‍🦯‍➡' => 'шур патаклӑ хӗрарӑм: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '👩🏿‍🦯‍➡' => 'шур патаклӑ хӗрарӑм: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '🧑🏻‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🧑🏼‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🧑🏽‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын: сӑран вӑтам тонӗ сылтӑмалла',
+    '🧑🏾‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🧑🏿‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '👨🏻‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '👨🏼‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '👨🏽‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын: сӑран вӑтам тонӗ сылтӑмалла',
+    '👨🏾‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '👨🏿‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '👩🏻‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '👩🏼‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '👩🏽‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм: сӑран вӑтам тонӗ сылтӑмалла',
+    '👩🏾‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '👩🏿‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '🧑🏻‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🧑🏼‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🧑🏽‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын: сӑран вӑтам тонӗ сылтӑмалла',
+    '🧑🏾‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🧑🏿‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '👨🏻‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '👨🏼‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '👨🏽‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын: сӑран вӑтам тонӗ сылтӑмалла',
+    '👨🏾‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '👨🏿‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '👩🏻‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '👩🏼‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '👩🏽‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм: сӑран вӑтам тонӗ сылтӑмалла',
+    '👩🏾‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '👩🏿‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '🏃🏻‍♀‍➡' => 'чупакан хӗрарӑм: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🏃🏼‍♀‍➡' => 'чупакан хӗрарӑм: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🏃🏽‍♀‍➡' => 'чупакан хӗрарӑм: сӑран вӑтам тонӗ сылтӑмалла',
+    '🏃🏾‍♀‍➡' => 'чупакан хӗрарӑм: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🏃🏿‍♀‍➡' => 'чупакан хӗрарӑм: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '🏃🏻‍♂‍➡' => 'арҫын чупать: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🏃🏼‍♂‍➡' => 'арҫын чупать: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🏃🏽‍♂‍➡' => 'арҫын чупать: сӑран вӑтам тонӗ сылтӑмалла',
+    '🏃🏾‍♂‍➡' => 'арҫын чупать: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🏃🏿‍♂‍➡' => 'арҫын чупать: сӑран тӗксӗм тонӗ сылтӑмалла',
     '🫱🏻‍🫲🏼' => 'алӑ тытни: сӑран ҫутӑ тӗсӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🫱🏻‍🫲🏽' => 'алӑ тытни: сӑран ҫутӑ тӗсӗ сӑран вӑтам тонӗ',
     '🫱🏻‍🫲🏾' => 'алӑ тытни: сӑран ҫутӑ тӗсӗ сӑран вӑтам тӗксӗм тонӗ',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'алӑ тытни: сӑран тӗксӗм тонӗ ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🫱🏿‍🫲🏽' => 'алӑ тытни: сӑран тӗксӗм тонӗ сӑран вӑтам тонӗ',
     '🫱🏿‍🫲🏾' => 'алӑ тытни: сӑран тӗксӗм тонӗ сӑран вӑтам тӗксӗм тонӗ',
-    '🚶‍♀‍➡' => 'хӗрарӑм килет сылтӑмалла',
-    '🚶‍♂‍➡' => 'арҫын килет сылтӑмалла',
-    '🧎‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм сылтӑмалла',
-    '🧎‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче сылтӑмалла',
-    '🧑‍🦯‍➡' => 'шурӑ туялӑ ҫын сылтӑмалла',
-    '👨‍🦯‍➡' => 'утмалли туя сылтӑмалла',
-    '👩‍🦯‍➡' => 'шур патаклӑ хӗрарӑм сылтӑмалла',
-    '🧑‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '👨‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👩‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм сылтӑмалла',
-    '🧑‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын сылтӑмалла',
-    '👨‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын сылтӑмалла',
-    '👩‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм сылтӑмалла',
-    '🏃‍♀‍➡' => 'чупакан хӗрарӑм сылтӑмалла',
-    '🏃‍♂‍➡' => 'арҫын чупать сылтӑмалла',
+    '🚶‍♀‍➡' => 'хӗрарӑм килет: сылтӑмалла',
+    '🚶‍♂‍➡' => 'арҫын килет: сылтӑмалла',
+    '🧎‍♀‍➡' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм: сылтӑмалла',
+    '🧎‍♂‍➡' => 'арҫын чӗркуҫҫи ҫинче: сылтӑмалла',
+    '🧑‍🦯‍➡' => 'шурӑ туялӑ ҫын: сылтӑмалла',
+    '👨‍🦯‍➡' => 'утмалли туя: сылтӑмалла',
+    '👩‍🦯‍➡' => 'шур патаклӑ хӗрарӑм: сылтӑмалла',
+    '🧑‍🦼‍➡' => 'моторлӑ кресло-коляска тӑхӑннӑ ҫын: сылтӑмалла',
+    '👨‍🦼‍➡' => 'электричество кресли-коляска тӑхӑннӑ арҫын: сылтӑмалла',
+    '👩‍🦼‍➡' => 'инвалид кресли ҫинче моторлӑ хӗрарӑм: сылтӑмалла',
+    '🧑‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ ҫын: сылтӑмалла',
+    '👨‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ арҫын: сылтӑмалла',
+    '👩‍🦽‍➡' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм: сылтӑмалла',
+    '🏃‍♀‍➡' => 'чупакан хӗрарӑм: сылтӑмалла',
+    '🏃‍♂‍➡' => 'арҫын чупать: сылтӑмалла',
     '👩‍❤‍👨' => 'юратса пӑрахнӑ мӑшӑр: хӗрарӑм арҫын',
     '👨‍❤‍👨' => 'юратса пӑрахнӑ мӑшӑр: арҫын арҫын',
     '👩‍❤‍👩' => 'юратса пӑрахнӑ мӑшӑр: хӗрарӑм хӗрарӑм',
@@ -437,6 +557,11 @@
     '🧑🏽‍🦲' => 'ҫитӗннӗ ҫын: сӑран вӑтам тонӗ кукша пуҫ',
     '🧑🏾‍🦲' => 'ҫитӗннӗ ҫын: сӑран вӑтам тӗксӗм тонӗ кукша пуҫ',
     '🧑🏿‍🦲' => 'ҫитӗннӗ ҫын: сӑран тӗксӗм тонӗ кукша пуҫ',
+    '🧑🏻‍🩰' => 'балет ташӑҫи: сӑран ҫутӑ тӗсӗ',
+    '🧑🏼‍🩰' => 'балет ташӑҫи: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🧑🏽‍🩰' => 'балет ташӑҫи: сӑран вӑтам тонӗ',
+    '🧑🏾‍🩰' => 'балет ташӑҫи: сӑран вӑтам тӗксӗм тонӗ',
+    '🧑🏿‍🩰' => 'балет ташӑҫи: сӑран тӗксӗм тонӗ',
     '🧔🏻‍♂' => 'сухаллӑ арҫын: сӑран ҫутӑ тӗсӗ',
     '🧔🏼‍♂' => 'сухаллӑ арҫын: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🧔🏽‍♂' => 'сухаллӑ арҫын: сӑран вӑтам тонӗ',
@@ -1027,11 +1152,11 @@
     '🚶🏽‍♀' => 'хӗрарӑм килет: сӑран вӑтам тонӗ',
     '🚶🏾‍♀' => 'хӗрарӑм килет: сӑран вӑтам тӗксӗм тонӗ',
     '🚶🏿‍♀' => 'хӗрарӑм килет: сӑран тӗксӗм тонӗ',
-    '🚶🏻‍➡' => 'ҫын килет сылтӑмалла',
-    '🚶🏼‍➡' => 'ҫын килет сылтӑмалла',
-    '🚶🏽‍➡' => 'ҫын килет сылтӑмалла',
-    '🚶🏾‍➡' => 'ҫын килет сылтӑмалла',
-    '🚶🏿‍➡' => 'ҫын килет сылтӑмалла',
+    '🚶🏻‍➡' => 'ҫын килет: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🚶🏼‍➡' => 'ҫын килет: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🚶🏽‍➡' => 'ҫын килет: сӑран вӑтам тонӗ сылтӑмалла',
+    '🚶🏾‍➡' => 'ҫын килет: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🚶🏿‍➡' => 'ҫын килет: сӑран тӗксӗм тонӗ сылтӑмалла',
     '🧍🏻‍♂' => 'арҫын тӑрать: сӑран ҫутӑ тӗсӗ',
     '🧍🏼‍♂' => 'арҫын тӑрать: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🧍🏽‍♂' => 'арҫын тӑрать: сӑран вӑтам тонӗ',
@@ -1052,11 +1177,11 @@
     '🧎🏽‍♀' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм: сӑран вӑтам тонӗ',
     '🧎🏾‍♀' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм: сӑран вӑтам тӗксӗм тонӗ',
     '🧎🏿‍♀' => 'чӗркуҫҫи ҫинче тӑракан хӗрарӑм: сӑран тӗксӗм тонӗ',
-    '🧎🏻‍➡' => 'чӗркуҫленсе ларнӑ ҫын сылтӑмалла',
-    '🧎🏼‍➡' => 'чӗркуҫленсе ларнӑ ҫын сылтӑмалла',
-    '🧎🏽‍➡' => 'чӗркуҫленсе ларнӑ ҫын сылтӑмалла',
-    '🧎🏾‍➡' => 'чӗркуҫленсе ларнӑ ҫын сылтӑмалла',
-    '🧎🏿‍➡' => 'чӗркуҫленсе ларнӑ ҫын сылтӑмалла',
+    '🧎🏻‍➡' => 'чӗркуҫленсе ларнӑ ҫын: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🧎🏼‍➡' => 'чӗркуҫленсе ларнӑ ҫын: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🧎🏽‍➡' => 'чӗркуҫленсе ларнӑ ҫын: сӑран вӑтам тонӗ сылтӑмалла',
+    '🧎🏾‍➡' => 'чӗркуҫленсе ларнӑ ҫын: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🧎🏿‍➡' => 'чӗркуҫленсе ларнӑ ҫын: сӑран тӗксӗм тонӗ сылтӑмалла',
     '🧑🏻‍🦯' => 'шурӑ туялӑ ҫын: сӑран ҫутӑ тӗсӗ',
     '🧑🏼‍🦯' => 'шурӑ туялӑ ҫын: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🧑🏽‍🦯' => 'шурӑ туялӑ ҫын: сӑран вӑтам тонӗ',
@@ -1112,11 +1237,21 @@
     '🏃🏽‍♀' => 'чупакан хӗрарӑм: сӑран вӑтам тонӗ',
     '🏃🏾‍♀' => 'чупакан хӗрарӑм: сӑран вӑтам тӗксӗм тонӗ',
     '🏃🏿‍♀' => 'чупакан хӗрарӑм: сӑран тӗксӗм тонӗ',
-    '🏃🏻‍➡' => 'ҫын чупать сылтӑмалла',
-    '🏃🏼‍➡' => 'ҫын чупать сылтӑмалла',
-    '🏃🏽‍➡' => 'ҫын чупать сылтӑмалла',
-    '🏃🏾‍➡' => 'ҫын чупать сылтӑмалла',
-    '🏃🏿‍➡' => 'ҫын чупать сылтӑмалла',
+    '🏃🏻‍➡' => 'ҫын чупать: сӑран ҫутӑ тӗсӗ сылтӑмалла',
+    '🏃🏼‍➡' => 'ҫын чупать: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ сылтӑмалла',
+    '🏃🏽‍➡' => 'ҫын чупать: сӑран вӑтам тонӗ сылтӑмалла',
+    '🏃🏾‍➡' => 'ҫын чупать: сӑран вӑтам тӗксӗм тонӗ сылтӑмалла',
+    '🏃🏿‍➡' => 'ҫын чупать: сӑран тӗксӗм тонӗ сылтӑмалла',
+    '👯🏻‍♀' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран ҫутӑ тӗсӗ',
+    '👯🏼‍♀' => 'мулкач хӑлхаллӑ хӗрарӑмсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👯🏽‍♀' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран вӑтам тонӗ',
+    '👯🏾‍♀' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран вӑтам тӗксӗм тонӗ',
+    '👯🏿‍♀' => 'мулкач хӑлхаллӑ хӗрарӑмсем: сӑран тӗксӗм тонӗ',
+    '👯🏻‍♂' => 'мулкач хӑлхаллӑ арҫынсем: сӑран ҫутӑ тӗсӗ',
+    '👯🏼‍♂' => 'мулкач хӑлхаллӑ арҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👯🏽‍♂' => 'мулкач хӑлхаллӑ арҫынсем: сӑран вӑтам тонӗ',
+    '👯🏾‍♂' => 'мулкач хӑлхаллӑ арҫынсем: сӑран вӑтам тӗксӗм тонӗ',
+    '👯🏿‍♂' => 'мулкач хӑлхаллӑ арҫынсем: сӑран тӗксӗм тонӗ',
     '🧖🏻‍♂' => 'мунча арҫын: сӑран ҫутӑ тӗсӗ',
     '🧖🏼‍♂' => 'мунча арҫын: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🧖🏽‍♂' => 'мунча арҫын: сӑран вӑтам тонӗ',
@@ -1227,6 +1362,16 @@
     '🤸🏽‍♀' => 'кустӑрма туса кӑтартакан хӗрарӑм: сӑран вӑтам тонӗ',
     '🤸🏾‍♀' => 'кустӑрма туса кӑтартакан хӗрарӑм: сӑран вӑтам тӗксӗм тонӗ',
     '🤸🏿‍♀' => 'кустӑрма туса кӑтартакан хӗрарӑм: сӑран тӗксӗм тонӗ',
+    '🤼🏻‍♀' => 'хӗрарӑм кӗрешӗвӗ: сӑран ҫутӑ тӗсӗ',
+    '🤼🏼‍♀' => 'хӗрарӑм кӗрешӗвӗ: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🤼🏽‍♀' => 'хӗрарӑм кӗрешӗвӗ: сӑран вӑтам тонӗ',
+    '🤼🏾‍♀' => 'хӗрарӑм кӗрешӗвӗ: сӑран вӑтам тӗксӗм тонӗ',
+    '🤼🏿‍♀' => 'хӗрарӑм кӗрешӗвӗ: сӑран тӗксӗм тонӗ',
+    '🤼🏻‍♂' => 'кӗрешӳҫӗ арҫынсем: сӑран ҫутӑ тӗсӗ',
+    '🤼🏼‍♂' => 'кӗрешӳҫӗ арҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🤼🏽‍♂' => 'кӗрешӳҫӗ арҫынсем: сӑран вӑтам тонӗ',
+    '🤼🏾‍♂' => 'кӗрешӳҫӗ арҫынсем: сӑран вӑтам тӗксӗм тонӗ',
+    '🤼🏿‍♂' => 'кӗрешӳҫӗ арҫынсем: сӑран тӗксӗм тонӗ',
     '🤽🏻‍♂' => 'арҫын шыв урай вылять: сӑран ҫутӑ тӗсӗ',
     '🤽🏼‍♂' => 'арҫын шыв урай вылять: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🤽🏽‍♂' => 'арҫын шыв урай вылять: сӑран вӑтам тонӗ',
@@ -1279,9 +1424,9 @@
     '👩‍🦱' => 'хӗрарӑм: явӑнчӑк ҫӳҫ',
     '👩‍🦳' => 'хӗрарӑм: шурӑ ҫӳҫ',
     '👩‍🦲' => 'хӗрарӑм: кукша пуҫ',
-    '🚶‍➡' => 'ҫын килет сылтӑмалла',
-    '🧎‍➡' => 'чӗркуҫленсе ларнӑ ҫын сылтӑмалла',
-    '🏃‍➡' => 'ҫын чупать сылтӑмалла',
+    '🚶‍➡' => 'ҫын килет: сылтӑмалла',
+    '🧎‍➡' => 'чӗркуҫленсе ларнӑ ҫын: сылтӑмалла',
+    '🏃‍➡' => 'ҫын чупать: сылтӑмалла',
     '👨‍👦' => 'ҫемье: арҫын арçын ача',
     '👨‍👧' => 'ҫемье: арҫын хӗрача',
     '👩‍👦' => 'ҫемье: хӗрарӑм арçын ача',
@@ -1422,6 +1567,7 @@
     '👩‍🦽' => 'алă привочĕ кресло-коляска тӑхӑннӑ хӗрарӑм',
     '🏃‍♂' => 'арҫын чупать',
     '🏃‍♀' => 'чупакан хӗрарӑм',
+    '🧑‍🩰' => 'балет ташӑҫи',
     '👯‍♂' => 'мулкач хӑлхаллӑ арҫынсем',
     '👯‍♀' => 'мулкач хӑлхаллӑ хӗрарӑмсем',
     '🧖‍♂' => 'мунча арҫын',
@@ -2003,6 +2149,11 @@
     '🕴🏽' => 'сывлӑшра бизнесмен: сӑран вӑтам тонӗ',
     '🕴🏾' => 'сывлӑшра бизнесмен: сӑран вӑтам тӗксӗм тонӗ',
     '🕴🏿' => 'сывлӑшра бизнесмен: сӑран тӗксӗм тонӗ',
+    '👯🏻' => 'мулкач хӑлхаллӑ ҫынсем: сӑран ҫутӑ тӗсӗ',
+    '👯🏼' => 'мулкач хӑлхаллӑ ҫынсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '👯🏽' => 'мулкач хӑлхаллӑ ҫынсем: сӑран вӑтам тонӗ',
+    '👯🏾' => 'мулкач хӑлхаллӑ ҫынсем: сӑран вӑтам тӗксӗм тонӗ',
+    '👯🏿' => 'мулкач хӑлхаллӑ ҫынсем: сӑран тӗксӗм тонӗ',
     '🧖🏻' => 'мунча ҫынни: сӑран ҫутӑ тӗсӗ',
     '🧖🏼' => 'мунча ҫынни: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🧖🏽' => 'мунча ҫынни: сӑран вӑтам тонӗ',
@@ -2068,6 +2219,11 @@
     '🤸🏽' => 'акробат трюкӗ: сӑран вӑтам тонӗ',
     '🤸🏾' => 'акробат трюкӗ: сӑран вӑтам тӗксӗм тонӗ',
     '🤸🏿' => 'акробат трюкӗ: сӑран тӗксӗм тонӗ',
+    '🤼🏻' => 'кӗрешӳҫӗсем: сӑран ҫутӑ тӗсӗ',
+    '🤼🏼' => 'кӗрешӳҫӗсем: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
+    '🤼🏽' => 'кӗрешӳҫӗсем: сӑран вӑтам тонӗ',
+    '🤼🏾' => 'кӗрешӳҫӗсем: сӑран вӑтам тӗксӗм тонӗ',
+    '🤼🏿' => 'кӗрешӳҫӗсем: сӑран тӗксӗм тонӗ',
     '🤽🏻' => 'шыв урай: сӑран ҫутӑ тӗсӗ',
     '🤽🏼' => 'шыв урай: ӳт-тирӗн вӑтам-ҫутӑ тӗсӗ',
     '🤽🏽' => 'шыв урай: сӑран вӑтам тонӗ',
@@ -2125,20 +2281,20 @@
     '💑🏿' => 'юратса пӑрахнӑ мӑшӑр: сӑран тӗксӗм тонӗ',
     '🇦🇨' => 'ялав: Вознесени утравӗ',
     '🇦🇩' => 'ялав: Андорра',
-    '🇦🇪' => 'ялав: Арапсен Пӗрлешӳллӗ Эмирачӗ',
+    '🇦🇪' => 'ялав: Пӗрлешнӗ Араб Эмирачӗсем',
     '🇦🇫' => 'ялав: Афганистан',
-    '🇦🇬' => 'ялав: Антигуа тата Барбуда',
+    '🇦🇬' => 'ялав: Антигуапа Барбуда',
     '🇦🇮' => 'ялав: Ангилья',
     '🇦🇱' => 'ялав: Албани',
     '🇦🇲' => 'ялав: Армени',
     '🇦🇴' => 'ялав: Ангола',
     '🇦🇶' => 'ялав: Антарктида',
     '🇦🇷' => 'ялав: Аргентина',
-    '🇦🇸' => 'ялав: Америка Самоа',
+    '🇦🇸' => 'ялав: Америка Самойи',
     '🇦🇹' => 'ялав: Австри',
     '🇦🇺' => 'ялав: Австрали',
     '🇦🇼' => 'ялав: Аруба',
-    '🇦🇽' => 'ялав: Аланди утравӗсем',
+    '🇦🇽' => 'ялав: Аланд утравӗсем',
     '🇦🇿' => 'ялав: Азербайджан',
     '🇧🇦' => 'ялав: Боснипе Герцеговина',
     '🇧🇧' => 'ялав: Барбадос',
@@ -2151,21 +2307,21 @@
     '🇧🇯' => 'ялав: Бенин',
     '🇧🇱' => 'ялав: Сен-Бартелеми',
     '🇧🇲' => 'ялав: Бермуд утравӗсем',
-    '🇧🇳' => 'ялав: Бруней-Даруссалам',
+    '🇧🇳' => 'ялав: Бруней',
     '🇧🇴' => 'ялав: Боливи',
-    '🇧🇶' => 'ялав: Бонэйр, Синт-Эстатиус тата Саба',
+    '🇧🇶' => 'ялав: Бонэйр, Синт-Эстатиуспа Саба',
     '🇧🇷' => 'ялав: Бразили',
-    '🇧🇸' => 'ялав: Пахам утравӗсем',
+    '🇧🇸' => 'ялав: Багама утравӗсем',
     '🇧🇹' => 'ялав: Бутан',
     '🇧🇻' => 'ялав: Буве утравӗ',
     '🇧🇼' => 'ялав: Ботсвана',
-    '🇧🇾' => 'ялав: Беларуҫ',
+    '🇧🇾' => 'ялав: Беларусь',
     '🇧🇿' => 'ялав: Белиз',
     '🇨🇦' => 'ялав: Канада',
     '🇨🇨' => 'ялав: Кокос утравӗсем',
-    '🇨🇩' => 'ялав: Конго - Киншаса',
-    '🇨🇫' => 'ялав: Тӗп Африка Республики',
-    '🇨🇬' => 'ялав: Конго - Браззавиль',
+    '🇨🇩' => 'ялав: Конго',
+    '🇨🇫' => 'ялав: Вӑта Африка Республики',
+    '🇨🇬' => 'ялав: Конго-Браззавиль',
     '🇨🇭' => 'ялав: Швейцари',
     '🇨🇮' => 'ялав: Кот-д’Ивуар',
     '🇨🇰' => 'ялав: Кук утравӗсем',
@@ -2183,13 +2339,13 @@
     '🇨🇾' => 'ялав: Кипр',
     '🇨🇿' => 'ялав: Чехи',
     '🇩🇪' => 'ялав: Германи',
-    '🇩🇬' => 'ялав: Диего-Гарсия',
+    '🇩🇬' => 'ялав: Диего-Гарси',
     '🇩🇯' => 'ялав: Джибути',
     '🇩🇰' => 'ялав: Дани',
     '🇩🇲' => 'ялав: Доминика',
-    '🇩🇴' => 'ялав: Доминикан Республики',
+    '🇩🇴' => 'ялав: Доминика Республики',
     '🇩🇿' => 'ялав: Алжир',
-    '🇪🇦' => 'ялав: Сеута тата Мелилья',
+    '🇪🇦' => 'ялав: Сеутӑпа Мелили',
     '🇪🇨' => 'ялав: Эквадор',
     '🇪🇪' => 'ялав: Эстони',
     '🇪🇬' => 'ялав: Египет',
@@ -2197,7 +2353,7 @@
     '🇪🇷' => 'ялав: Эритрей',
     '🇪🇸' => 'ялав: Испани',
     '🇪🇹' => 'ялав: Эфиопи',
-    '🇪🇺' => 'ялав: Европа пӗрлешӗвӗ',
+    '🇪🇺' => 'ялав: Европа Пӗрлешӗвӗ',
     '🇫🇮' => 'ялав: Финлянди',
     '🇫🇯' => 'ялав: Фиджи',
     '🇫🇰' => 'ялав: Фолкленд утравӗсем',
@@ -2208,7 +2364,7 @@
     '🇬🇧' => 'ялав: Аслӑ Британи',
     '🇬🇩' => 'ялав: Гренада',
     '🇬🇪' => 'ялав: Грузи',
-    '🇬🇫' => 'ялав: Франци Гвиана',
+    '🇬🇫' => 'ялав: Франци Гвиани',
     '🇬🇬' => 'ялав: Гернси',
     '🇬🇭' => 'ялав: Гана',
     '🇬🇮' => 'ялав: Гибралтар',
@@ -2216,15 +2372,15 @@
     '🇬🇲' => 'ялав: Гамби',
     '🇬🇳' => 'ялав: Гвиней',
     '🇬🇵' => 'ялав: Гваделупа',
-    '🇬🇶' => 'ялав: Экваториаллӑ Гвиней',
+    '🇬🇶' => 'ялав: Экваторти Гвинея',
     '🇬🇷' => 'ялав: Греци',
-    '🇬🇸' => 'ялав: Кӑнтӑр Георги тата Сандвичев утравӗсем',
+    '🇬🇸' => 'ялав: Кӑнтӑр Георгипе Кӑнтӑр Сандвич утравӗсем',
     '🇬🇹' => 'ялав: Гватемала',
     '🇬🇺' => 'ялав: Гуам',
     '🇬🇼' => 'ялав: Гвиней-Бисау',
     '🇬🇾' => 'ялав: Гайана',
-    '🇭🇰' => 'ялав: Гонконг (САР)',
-    '🇭🇲' => 'ялав: Херд тата Макдональд утравӗ',
+    '🇭🇰' => 'ялав: Гонконг (ЯАР)',
+    '🇭🇲' => 'ялав: Хердпа Макдональд утравӗсем',
     '🇭🇳' => 'ялав: Гондурас',
     '🇭🇷' => 'ялав: Хорвати',
     '🇭🇹' => 'ялав: Гаити',
@@ -2235,7 +2391,7 @@
     '🇮🇱' => 'ялав: Израиль',
     '🇮🇲' => 'ялав: Мэн утравӗ',
     '🇮🇳' => 'ялав: Инди',
-    '🇮🇴' => 'ялав: Британин территори Инди океанӗре',
+    '🇮🇴' => 'ялав: Инди океанӗнчи Британи территорийӗ',
     '🇮🇶' => 'ялав: Ирак',
     '🇮🇷' => 'ялав: Иран',
     '🇮🇸' => 'ялав: Исланди',
@@ -2245,19 +2401,19 @@
     '🇯🇴' => 'ялав: Иордани',
     '🇯🇵' => 'ялав: Япони',
     '🇰🇪' => 'ялав: Кени',
-    '🇰🇬' => 'ялав: Киргизи',
+    '🇰🇬' => 'ялав: Кӑркӑсстан',
     '🇰🇭' => 'ялав: Камбоджа',
     '🇰🇮' => 'ялав: Кирибати',
     '🇰🇲' => 'ялав: Комор утравӗсем',
-    '🇰🇳' => 'ялав: Сент-Китс тата Невис',
-    '🇰🇵' => 'ялав: КХДР',
-    '🇰🇷' => 'ялав: Корей Республики',
+    '🇰🇳' => 'ялав: Сент-Китспа Невис',
+    '🇰🇵' => 'ялав: Ҫур ҫӗр Корея',
+    '🇰🇷' => 'ялав: Кӑнтӑр Корея',
     '🇰🇼' => 'ялав: Кувейт',
     '🇰🇾' => 'ялав: Кайман утравӗсем',
     '🇰🇿' => 'ялав: Казахстан',
     '🇱🇦' => 'ялав: Лаос',
     '🇱🇧' => 'ялав: Ливан',
-    '🇱🇨' => 'ялав: Сент-Люсия',
+    '🇱🇨' => 'ялав: Сент-Люси',
     '🇱🇮' => 'ялав: Лихтенштейн',
     '🇱🇰' => 'ялав: Шри-Ланка',
     '🇱🇷' => 'ялав: Либери',
@@ -2272,19 +2428,19 @@
     '🇲🇪' => 'ялав: Черногори',
     '🇲🇫' => 'ялав: Сен-Мартен',
     '🇲🇬' => 'ялав: Мадагаскар',
-    '🇲🇭' => 'ялав: Маршаллов утравӗсем',
-    '🇲🇰' => 'ялав: Ҫурҫӗр Македони',
+    '🇲🇭' => 'ялав: Маршалл утравӗсем',
+    '🇲🇰' => 'ялав: Ҫур ҫӗр Македони',
     '🇲🇱' => 'ялав: Мали',
     '🇲🇲' => 'ялав: Мьянма (Бирма)',
     '🇲🇳' => 'ялав: Монголи',
-    '🇲🇴' => 'ялав: Макао (САР)',
-    '🇲🇵' => 'ялав: Ҫурҫӗр Мариан утравӗсем',
+    '🇲🇴' => 'ялав: Макао (ЯАР)',
+    '🇲🇵' => 'ялав: Ҫур ҫӗр Мариан утравӗсем',
     '🇲🇶' => 'ялав: Мартиника',
     '🇲🇷' => 'ялав: Мавритани',
     '🇲🇸' => 'ялав: Монтсеррат',
     '🇲🇹' => 'ялав: Мальта',
     '🇲🇺' => 'ялав: Маврики',
-    '🇲🇻' => 'ялав: Мальдивсем',
+    '🇲🇻' => 'ялав: Мальдив',
     '🇲🇼' => 'ялав: Малави',
     '🇲🇽' => 'ялав: Мексика',
     '🇲🇾' => 'ялав: Малайзи',
@@ -2304,15 +2460,15 @@
     '🇴🇲' => 'ялав: Оман',
     '🇵🇦' => 'ялав: Панама',
     '🇵🇪' => 'ялав: Перу',
-    '🇵🇫' => 'ялав: Франци Полинези',
-    '🇵🇬' => 'ялав: Папуа — Ҫӗнӗ Гвиней',
-    '🇵🇭' => 'ялав: Филиппинсем',
+    '🇵🇫' => 'ялав: Франци Полинезийӗ',
+    '🇵🇬' => 'ялав: Папуа — Ҫӗнӗ Гвинея',
+    '🇵🇭' => 'ялав: Филиппин',
     '🇵🇰' => 'ялав: Пакистан',
     '🇵🇱' => 'ялав: Польша',
-    '🇵🇲' => 'ялав: Сен-Пьер & Микелон',
+    '🇵🇲' => 'ялав: Сен-Пьерпа Микелон',
     '🇵🇳' => 'ялав: Питкэрн утравӗсем',
     '🇵🇷' => 'ялав: Пуэрто-Рико',
-    '🇵🇸' => 'ялав: Палестинӑн территорийӗсем',
+    '🇵🇸' => 'ялав: Палестина территорийӗсем',
     '🇵🇹' => 'ялав: Португали',
     '🇵🇼' => 'ялав: Палау',
     '🇵🇾' => 'ялав: Парагвай',
@@ -2330,7 +2486,7 @@
     '🇸🇬' => 'ялав: Сингапур',
     '🇸🇭' => 'ялав: Сӑваплӑ Елена утравӗ',
     '🇸🇮' => 'ялав: Словени',
-    '🇸🇯' => 'ялав: Шпицберген тата Ян-Майен',
+    '🇸🇯' => 'ялав: Шпицбергенпа Ян-Майен',
     '🇸🇰' => 'ялав: Словаки',
     '🇸🇱' => 'ялав: Сьерра-Леоне',
     '🇸🇲' => 'ялав: Сан-Марино',
@@ -2338,43 +2494,43 @@
     '🇸🇴' => 'ялав: Сомали',
     '🇸🇷' => 'ялав: Суринам',
     '🇸🇸' => 'ялав: Кӑнтӑр Судан',
-    '🇸🇹' => 'ялав: Сан-Томе тата Принсипи',
+    '🇸🇹' => 'ялав: Сан-Томепе Принсипи',
     '🇸🇻' => 'ялав: Сальвадор',
     '🇸🇽' => 'ялав: Синт-Мартен',
     '🇸🇾' => 'ялав: Сири',
     '🇸🇿' => 'ялав: Эсватини',
-    '🇹🇦' => 'ялав: Тристан-да-Кунья',
-    '🇹🇨' => 'ялав: Тёркс тата Кайкос утравӗсем',
+    '🇹🇦' => 'ялав: Тристан-да-Куни',
+    '🇹🇨' => 'ялав: Тёркспа Кайкос утравӗсем',
     '🇹🇩' => 'ялав: Чад',
-    '🇹🇫' => 'ялав: Франци Кӑнтӑр территорийӗсем',
+    '🇹🇫' => 'ялав: Францин Кӑнтӑр территорийӗсем',
     '🇹🇬' => 'ялав: Того',
     '🇹🇭' => 'ялав: Таиланд',
     '🇹🇯' => 'ялав: Таджикистан',
     '🇹🇰' => 'ялав: Токелау',
-    '🇹🇱' => 'ялав: Хӗвелтухӑҫ Тимор',
+    '🇹🇱' => 'ялав: Тухӑҫ Тимор',
     '🇹🇲' => 'ялав: Туркменистан',
     '🇹🇳' => 'ялав: Тунис',
     '🇹🇴' => 'ялав: Тонга',
     '🇹🇷' => 'ялав: Турци',
-    '🇹🇹' => 'ялав: Тринидад тата Тобаго',
+    '🇹🇹' => 'ялав: Тринидадпа Тобаго',
     '🇹🇻' => 'ялав: Тувалу',
     '🇹🇼' => 'ялав: Тайвань',
     '🇹🇿' => 'ялав: Танзани',
     '🇺🇦' => 'ялав: Украина',
     '🇺🇬' => 'ялав: Уганда',
-    '🇺🇲' => 'ялав: Тулашӗнчи утравӗсем (АПШ)',
-    '🇺🇳' => 'ялав: Пӗрлешӳллӗ Нацисен Организацийӗ',
-    '🇺🇸' => 'ялав: Пӗрлешӗннӗ Штатсем',
+    '🇺🇲' => 'ялав: АПШ-н тулаш пӗчӗк утравӗсем',
+    '🇺🇳' => 'ялав: Пӗрлешнӗ Нацисен Организацийӗ',
+    '🇺🇸' => 'ялав: Пӗрлешнӗ Штатсем',
     '🇺🇾' => 'ялав: Уругвай',
     '🇺🇿' => 'ялав: Узбекистан',
     '🇻🇦' => 'ялав: Ватикан',
-    '🇻🇨' => 'ялав: Сент-Винсент тата Гренадины',
+    '🇻🇨' => 'ялав: Сент-Винсентпа Гренада',
     '🇻🇪' => 'ялав: Венесуэла',
-    '🇻🇬' => 'ялав: Британин Виргини утравӗсем',
-    '🇻🇮' => 'ялав: Виргини утравӗсем (АПШ)',
+    '🇻🇬' => 'ялав: Виргин утравӗсем (Британи)',
+    '🇻🇮' => 'ялав: Виргин утравӗсем (АПШ)',
     '🇻🇳' => 'ялав: Вьетнам',
     '🇻🇺' => 'ялав: Вануату',
-    '🇼🇫' => 'ялав: Уоллис тата Футуна',
+    '🇼🇫' => 'ялав: Уоллиспа Футуна',
     '🇼🇸' => 'ялав: Самоа',
     '🇽🇰' => 'ялав: Косово',
     '🇾🇪' => 'ялав: Йемен',
@@ -2388,13 +2544,6 @@
     '🏽' => 'сӑран вӑтам тонӗ',
     '🏾' => 'сӑран вӑтам тӗксӗм тонӗ',
     '🏿' => 'сӑран тӗксӗм тонӗ',
-    '🪉' => 'арфа',
-    '🪏' => 'кӗреҫе',
-    '🪾' => 'ҫулҫӑсӑр йывӑҫ',
-    '🫆' => 'пӳрне йӗрӗ',
-    '🫜' => 'тымар-ҫимӗҫ',
-    '🫟' => 'вараланчӑк',
-    '🫩' => 'куҫ айӗнчи михӗсем',
     '😀' => 'анлӑн кулать',
     '😃' => 'кулать',
     '😄' => 'куҫне хупса кулать',
@@ -2431,7 +2580,7 @@
     '🤫' => 'тс-с-с.',
     '🤔' => 'шухӑшлать',
     '🫡' => 'ҫар саламӗ',
-    '🤐' => 'Калаçмасть',
+    '🤐' => 'калаçмасть',
     '🤨' => 'ӗненмест',
     '😐' => 'пурпӗрех',
     '😑' => 'эмоцисӗр',
@@ -2448,6 +2597,7 @@
     '😪' => 'ҫывӑрас килет',
     '🤤' => 'сӗлеке юхтарать',
     '😴' => 'ҫывӑрать',
+    '🫩' => 'куҫ айӗнчи михӗсем',
     '😷' => 'медицина маскипе',
     '🤒' => 'ҫӑвара градусник хыпнӑ',
     '🤕' => 'пуҫне ҫыхнӑ',
@@ -2474,6 +2624,7 @@
     '😯' => 'илемсӗр сюрприз',
     '😲' => 'шокра',
     '😳' => 'хӗрелет',
+    '🫪' => 'пӑсӑк сӑн-пит',
     '🥺' => 'тархаслать',
     '🥹' => 'куҫҫульне аран чарать',
     '😦' => 'тӗлӗннипе',
@@ -2545,6 +2696,7 @@
     '💋' => 'чуптӑву йӗрӗ',
     '💯' => 'ҫӗр балл',
     '💢' => '"ҫилли" палли',
+    '🫯' => 'пӗлӗтпе тытӑҫ',
     '💥' => 'шартлату',
     '💫' => 'ҫаврӑнакан ҫӑлтӑр',
     '💦' => 'тар тумламӗсем',
@@ -2668,6 +2820,7 @@
     '🧞' => 'джинн',
     '🧟' => 'Зомби',
     '🧌' => 'троллӗ',
+    '🫈' => 'ҫӑмлӑ чӗрчун',
     '💆' => 'ҫынна пит массӑлаҫҫӗ',
     '💇' => 'парикмахер ҫынни',
     '🚶' => 'ҫын килет',
@@ -2711,6 +2864,7 @@
     '🫂' => 'ыталашакан ҫынсем',
     '👪' => 'ҫемье',
     '👣' => 'йӗрсем',
+    '🫆' => 'пӳрне йӗрӗ',
     '🦰' => 'хӗрлӗ ҫӳҫ',
     '🦱' => 'явӑнчӑк ҫӳҫ',
     '🦳' => 'шурӑ ҫӳҫ',
@@ -2810,6 +2964,7 @@
     '🐳' => 'фонтанлӑ кит',
     '🐋' => 'кит',
     '🐬' => 'дельфин',
+    '🫍' => 'косатка',
     '🦭' => 'тюлень',
     '🐟' => 'пулӑ',
     '🐠' => 'тропик пулли',
@@ -2819,6 +2974,11 @@
     '🐚' => 'рак хуранӗ',
     '🪸' => 'корал',
     '🪼' => 'медуза',
+    '🦀' => 'краб',
+    '🦞' => 'лобстер',
+    '🦐' => 'креветка',
+    '🦑' => 'кальмар',
+    '🦪' => 'устрис',
     '🐌' => 'улитка',
     '🦋' => 'лӗпӗш',
     '🐛' => 'лĕпĕш хурчĕ',
@@ -2863,6 +3023,7 @@
     '🪹' => 'пушӑ йӑва',
     '🪺' => 'ҫӑмарта йӑви',
     '🍄' => 'кӑмпа',
+    '🪾' => 'ҫулҫӑсӑр йывӑҫ',
     '🍇' => 'иҫӗм ҫырли',
     '🍈' => 'дыньӑ',
     '🍉' => 'арпус',
@@ -2899,6 +3060,7 @@
     '🌰' => 'каштан',
     '🫚' => 'импир тымарӗ',
     '🫛' => 'пӑрҫа хутаҫҫи',
+    '🫜' => 'тымар-ҫимӗҫ',
     '🍞' => 'ҫӑкӑр',
     '🥐' => 'круассан',
     '🥖' => 'багет',
@@ -2950,11 +3112,6 @@
     '🥟' => 'ҫӑмах',
     '🥠' => 'ытарлӑ печени',
     '🥡' => 'искаймалли хутӑҫ',
-    '🦀' => 'краб',
-    '🦞' => 'лобстер',
-    '🦐' => 'креветка',
-    '🦑' => 'кальмар',
-    '🦪' => 'устрис',
     '🍦' => 'ҫемҫе пылак пӑр',
     '🍧' => 'пӑр саваланчӑк',
     '🍨' => 'пылак пӑр',
@@ -3005,6 +3162,7 @@
     '🧭' => 'компас',
     '🏔' => 'юр ҫӗлӗклӗ ту',
     '⛰' => 'ту',
+    '🛘' => 'упаленӳ',
     '🌋' => 'вулккан',
     '🗻' => 'Фудзи тӑвӗ',
     '🏕' => 'уйлӑх',
@@ -3365,16 +3523,18 @@
     '🎧' => 'хӑлхалӑх',
     '📻' => 'радио',
     '🎷' => 'саксофон',
+    '🎺' => 'труба',
+    '🪊' => 'тромбон',
     '🪗' => 'аккордеон',
     '🎸' => 'гитар',
     '🎹' => 'мусӑк клавиатури',
-    '🎺' => 'труба',
     '🎻' => 'сӗрме купӑс',
     '🪕' => 'панчо',
     '🥁' => 'параппан',
     '🪘' => 'вӑрӑм параппан',
     '🪇' => 'мараккас',
     '🪈' => 'флейта',
+    '🪉' => 'арфа',
     '📱' => 'мобиллӗ телефон',
     '📲' => 'кӗрекенни',
     '☎' => 'телефон',
@@ -3428,8 +3588,9 @@
     '📑' => 'заклад стикерӗсем',
     '🔖' => 'саклат хуни',
     '🏷' => 'бирка',
-    '💰' => 'укҫа хутаҫи',
     '🪙' => 'укҫа',
+    '💰' => 'укҫа хутаҫи',
+    '🪎' => 'мул арчи',
     '💴' => 'йӑн банкноти',
     '💵' => 'доллар банкноти',
     '💶' => 'евро банкноти',
@@ -3512,6 +3673,7 @@
     '🧰' => 'инструмент ещӗкӗ',
     '🧲' => 'магнит',
     '🪜' => 'пусма',
+    '🪏' => 'кӗреҫе',
     '⚗' => 'йухтаркӑч',
     '🧪' => 'пробирка',
     '🧫' => 'петри чашки',
@@ -3695,6 +3857,7 @@
     '✴' => 'сакӑр кӗтеслӗ ҫӑлтӑр',
     '❇' => 'хӗлхем',
     '™' => 'тавар палли',
+    '🫟' => 'вараланчӑк',
     '🔠' => 'прописк кӗртни',
     '🔡' => 'йӗркепе кӳрт',
     '🔢' => 'цифрӑсем кӗртни',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-cy.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'cusan: menyw, menyw, arlliw croen tywyll, arlliw croen canolog',
     '👩🏿‍❤‍💋‍👩🏾' => 'cusan: menyw, menyw, arlliw croen tywyll, arlliw croen canolig-tywyll',
     '👩🏿‍❤‍💋‍👩🏿' => 'cusan: menyw, menyw, arlliw croen tywyll',
+    '🧑🏻‍🫯‍🧑🏼' => 'taflwyr codwm: arlliw croen golau, arlliw croen canolig-golau',
+    '🧑🏻‍🫯‍🧑🏽' => 'taflwyr codwm: arlliw croen golau, arlliw croen canolog',
+    '🧑🏻‍🫯‍🧑🏾' => 'taflwyr codwm: arlliw croen golau, arlliw croen canolig-tywyll',
+    '🧑🏻‍🫯‍🧑🏿' => 'taflwyr codwm: arlliw croen golau, arlliw croen tywyll',
+    '🧑🏼‍🫯‍🧑🏻' => 'taflwyr codwm: arlliw croen canolig-golau, arlliw croen golau',
+    '🧑🏼‍🫯‍🧑🏽' => 'taflwyr codwm: arlliw croen canolig-golau, arlliw croen canolog',
+    '🧑🏼‍🫯‍🧑🏾' => 'taflwyr codwm: arlliw croen canolig-golau, arlliw croen canolig-tywyll',
+    '🧑🏼‍🫯‍🧑🏿' => 'taflwyr codwm: arlliw croen canolig-golau, arlliw croen tywyll',
+    '🧑🏽‍🫯‍🧑🏻' => 'taflwyr codwm: arlliw croen canolog, arlliw croen golau',
+    '🧑🏽‍🫯‍🧑🏼' => 'taflwyr codwm: arlliw croen canolog, arlliw croen canolig-golau',
+    '🧑🏽‍🫯‍🧑🏾' => 'taflwyr codwm: arlliw croen canolog, arlliw croen canolig-tywyll',
+    '🧑🏽‍🫯‍🧑🏿' => 'taflwyr codwm: arlliw croen canolog, arlliw croen tywyll',
+    '🧑🏾‍🫯‍🧑🏻' => 'taflwyr codwm: arlliw croen canolig-tywyll, arlliw croen golau',
+    '🧑🏾‍🫯‍🧑🏼' => 'taflwyr codwm: arlliw croen canolig-tywyll, arlliw croen canolig-golau',
+    '🧑🏾‍🫯‍🧑🏽' => 'taflwyr codwm: arlliw croen canolig-tywyll, arlliw croen canolog',
+    '🧑🏾‍🫯‍🧑🏿' => 'taflwyr codwm: arlliw croen canolig-tywyll, arlliw croen tywyll',
+    '🧑🏿‍🫯‍🧑🏻' => 'taflwyr codwm: arlliw croen tywyll, arlliw croen golau',
+    '🧑🏿‍🫯‍🧑🏼' => 'taflwyr codwm: arlliw croen tywyll, arlliw croen canolig-golau',
+    '🧑🏿‍🫯‍🧑🏽' => 'taflwyr codwm: arlliw croen tywyll, arlliw croen canolog',
+    '🧑🏿‍🫯‍🧑🏾' => 'taflwyr codwm: arlliw croen tywyll, arlliw croen canolig-tywyll',
     '🧑🏻‍❤‍🧑🏼' => 'pâr a chalon: person, person, arlliw croen golau, arlliw croen canolig-golau',
     '🧑🏻‍❤‍🧑🏽' => 'pâr a chalon: person, person, arlliw croen golau, arlliw croen canolog',
     '🧑🏻‍❤‍🧑🏾' => 'pâr a chalon: person, person, arlliw croen golau, arlliw croen canolig-tywyll',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pâr a chalon: person, person, arlliw croen tywyll, arlliw croen canolig-golau',
     '🧑🏿‍❤‍🧑🏽' => 'pâr a chalon: person, person, arlliw croen tywyll, arlliw croen canolog',
     '🧑🏿‍❤‍🧑🏾' => 'pâr a chalon: person, person, arlliw croen tywyll, arlliw croen canolig-tywyll',
+    '🧑🏻‍🐰‍🧑🏼' => 'pobl mewn parti: arlliw croen golau, arlliw croen canolig-golau',
+    '🧑🏻‍🐰‍🧑🏽' => 'pobl mewn parti: arlliw croen golau, arlliw croen canolog',
+    '🧑🏻‍🐰‍🧑🏾' => 'pobl mewn parti: arlliw croen golau, arlliw croen canolig-tywyll',
+    '🧑🏻‍🐰‍🧑🏿' => 'pobl mewn parti: arlliw croen golau, arlliw croen tywyll',
+    '🧑🏼‍🐰‍🧑🏻' => 'pobl mewn parti: arlliw croen canolig-golau, arlliw croen golau',
+    '🧑🏼‍🐰‍🧑🏽' => 'pobl mewn parti: arlliw croen canolig-golau, arlliw croen canolog',
+    '🧑🏼‍🐰‍🧑🏾' => 'pobl mewn parti: arlliw croen canolig-golau, arlliw croen canolig-tywyll',
+    '🧑🏼‍🐰‍🧑🏿' => 'pobl mewn parti: arlliw croen canolig-golau, arlliw croen tywyll',
+    '🧑🏽‍🐰‍🧑🏻' => 'pobl mewn parti: arlliw croen canolog, arlliw croen golau',
+    '🧑🏽‍🐰‍🧑🏼' => 'pobl mewn parti: arlliw croen canolog, arlliw croen canolig-golau',
+    '🧑🏽‍🐰‍🧑🏾' => 'pobl mewn parti: arlliw croen canolog, arlliw croen canolig-tywyll',
+    '🧑🏽‍🐰‍🧑🏿' => 'pobl mewn parti: arlliw croen canolog, arlliw croen tywyll',
+    '🧑🏾‍🐰‍🧑🏻' => 'pobl mewn parti: arlliw croen canolig-tywyll, arlliw croen golau',
+    '🧑🏾‍🐰‍🧑🏼' => 'pobl mewn parti: arlliw croen canolig-tywyll, arlliw croen canolig-golau',
+    '🧑🏾‍🐰‍🧑🏽' => 'pobl mewn parti: arlliw croen canolig-tywyll, arlliw croen canolog',
+    '🧑🏾‍🐰‍🧑🏿' => 'pobl mewn parti: arlliw croen canolig-tywyll, arlliw croen tywyll',
+    '🧑🏿‍🐰‍🧑🏻' => 'pobl mewn parti: arlliw croen tywyll, arlliw croen golau',
+    '🧑🏿‍🐰‍🧑🏼' => 'pobl mewn parti: arlliw croen tywyll, arlliw croen canolig-golau',
+    '🧑🏿‍🐰‍🧑🏽' => 'pobl mewn parti: arlliw croen tywyll, arlliw croen canolog',
+    '🧑🏿‍🐰‍🧑🏾' => 'pobl mewn parti: arlliw croen tywyll, arlliw croen canolig-tywyll',
+    '👨🏻‍🫯‍👨🏼' => 'dynion yn reslo: arlliw croen golau, arlliw croen canolig-golau',
+    '👨🏻‍🫯‍👨🏽' => 'dynion yn reslo: arlliw croen golau, arlliw croen canolog',
+    '👨🏻‍🫯‍👨🏾' => 'dynion yn reslo: arlliw croen golau, arlliw croen canolig-tywyll',
+    '👨🏻‍🫯‍👨🏿' => 'dynion yn reslo: arlliw croen golau, arlliw croen tywyll',
+    '👨🏼‍🫯‍👨🏻' => 'dynion yn reslo: arlliw croen canolig-golau, arlliw croen golau',
+    '👨🏼‍🫯‍👨🏽' => 'dynion yn reslo: arlliw croen canolig-golau, arlliw croen canolog',
+    '👨🏼‍🫯‍👨🏾' => 'dynion yn reslo: arlliw croen canolig-golau, arlliw croen canolig-tywyll',
+    '👨🏼‍🫯‍👨🏿' => 'dynion yn reslo: arlliw croen canolig-golau, arlliw croen tywyll',
+    '👨🏽‍🫯‍👨🏻' => 'dynion yn reslo: arlliw croen canolog, arlliw croen golau',
+    '👨🏽‍🫯‍👨🏼' => 'dynion yn reslo: arlliw croen canolog, arlliw croen canolig-golau',
+    '👨🏽‍🫯‍👨🏾' => 'dynion yn reslo: arlliw croen canolog, arlliw croen canolig-tywyll',
+    '👨🏽‍🫯‍👨🏿' => 'dynion yn reslo: arlliw croen canolog, arlliw croen tywyll',
+    '👨🏾‍🫯‍👨🏻' => 'dynion yn reslo: arlliw croen canolig-tywyll, arlliw croen golau',
+    '👨🏾‍🫯‍👨🏼' => 'dynion yn reslo: arlliw croen canolig-tywyll, arlliw croen canolig-golau',
+    '👨🏾‍🫯‍👨🏽' => 'dynion yn reslo: arlliw croen canolig-tywyll, arlliw croen canolog',
+    '👨🏾‍🫯‍👨🏿' => 'dynion yn reslo: arlliw croen canolig-tywyll, arlliw croen tywyll',
+    '👨🏿‍🫯‍👨🏻' => 'dynion yn reslo: arlliw croen tywyll, arlliw croen golau',
+    '👨🏿‍🫯‍👨🏼' => 'dynion yn reslo: arlliw croen tywyll, arlliw croen canolig-golau',
+    '👨🏿‍🫯‍👨🏽' => 'dynion yn reslo: arlliw croen tywyll, arlliw croen canolog',
+    '👨🏿‍🫯‍👨🏾' => 'dynion yn reslo: arlliw croen tywyll, arlliw croen canolig-tywyll',
     '👨🏻‍❤‍👨🏻' => 'pâr a chalon: dyn, dyn, arlliw croen golau',
     '👨🏻‍❤‍👨🏼' => 'pâr a chalon: dyn, dyn, arlliw croen golau, arlliw croen canolig-golau',
     '👨🏻‍❤‍👨🏽' => 'pâr a chalon: dyn, dyn, arlliw croen golau, arlliw croen canolog',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pâr a chalon: dyn, dyn, arlliw croen tywyll, arlliw croen canolog',
     '👨🏿‍❤‍👨🏾' => 'pâr a chalon: dyn, dyn, arlliw croen tywyll, arlliw croen canolig-tywyll',
     '👨🏿‍❤‍👨🏿' => 'pâr a chalon: dyn, dyn, arlliw croen tywyll',
+    '👨🏻‍🐰‍👨🏼' => 'dyn mewn parti: arlliw croen golau, arlliw croen canolig-golau',
+    '👨🏻‍🐰‍👨🏽' => 'dyn mewn parti: arlliw croen golau, arlliw croen canolog',
+    '👨🏻‍🐰‍👨🏾' => 'dyn mewn parti: arlliw croen golau, arlliw croen canolig-tywyll',
+    '👨🏻‍🐰‍👨🏿' => 'dyn mewn parti: arlliw croen golau, arlliw croen tywyll',
+    '👨🏼‍🐰‍👨🏻' => 'dyn mewn parti: arlliw croen canolig-golau, arlliw croen golau',
+    '👨🏼‍🐰‍👨🏽' => 'dyn mewn parti: arlliw croen canolig-golau, arlliw croen canolog',
+    '👨🏼‍🐰‍👨🏾' => 'dyn mewn parti: arlliw croen canolig-golau, arlliw croen canolig-tywyll',
+    '👨🏼‍🐰‍👨🏿' => 'dyn mewn parti: arlliw croen canolig-golau, arlliw croen tywyll',
+    '👨🏽‍🐰‍👨🏻' => 'dyn mewn parti: arlliw croen canolog, arlliw croen golau',
+    '👨🏽‍🐰‍👨🏼' => 'dyn mewn parti: arlliw croen canolog, arlliw croen canolig-golau',
+    '👨🏽‍🐰‍👨🏾' => 'dyn mewn parti: arlliw croen canolog, arlliw croen canolig-tywyll',
+    '👨🏽‍🐰‍👨🏿' => 'dyn mewn parti: arlliw croen canolog, arlliw croen tywyll',
+    '👨🏾‍🐰‍👨🏻' => 'dyn mewn parti: arlliw croen canolig-tywyll, arlliw croen golau',
+    '👨🏾‍🐰‍👨🏼' => 'dyn mewn parti: arlliw croen canolig-tywyll, arlliw croen canolig-golau',
+    '👨🏾‍🐰‍👨🏽' => 'dyn mewn parti: arlliw croen canolig-tywyll, arlliw croen canolog',
+    '👨🏾‍🐰‍👨🏿' => 'dyn mewn parti: arlliw croen canolig-tywyll, arlliw croen tywyll',
+    '👨🏿‍🐰‍👨🏻' => 'dyn mewn parti: arlliw croen tywyll, arlliw croen golau',
+    '👨🏿‍🐰‍👨🏼' => 'dyn mewn parti: arlliw croen tywyll, arlliw croen canolig-golau',
+    '👨🏿‍🐰‍👨🏽' => 'dyn mewn parti: arlliw croen tywyll, arlliw croen canolog',
+    '👨🏿‍🐰‍👨🏾' => 'dyn mewn parti: arlliw croen tywyll, arlliw croen canolig-tywyll',
+    '👩🏻‍🫯‍👩🏼' => 'menywod yn reslo: arlliw croen golau, arlliw croen canolig-golau',
+    '👩🏻‍🫯‍👩🏽' => 'menywod yn reslo: arlliw croen golau, arlliw croen canolog',
+    '👩🏻‍🫯‍👩🏾' => 'menywod yn reslo: arlliw croen golau, arlliw croen canolig-tywyll',
+    '👩🏻‍🫯‍👩🏿' => 'menywod yn reslo: arlliw croen golau, arlliw croen tywyll',
+    '👩🏼‍🫯‍👩🏻' => 'menywod yn reslo: arlliw croen canolig-golau, arlliw croen golau',
+    '👩🏼‍🫯‍👩🏽' => 'menywod yn reslo: arlliw croen canolig-golau, arlliw croen canolog',
+    '👩🏼‍🫯‍👩🏾' => 'menywod yn reslo: arlliw croen canolig-golau, arlliw croen canolig-tywyll',
+    '👩🏼‍🫯‍👩🏿' => 'menywod yn reslo: arlliw croen canolig-golau, arlliw croen tywyll',
+    '👩🏽‍🫯‍👩🏻' => 'menywod yn reslo: arlliw croen canolog, arlliw croen golau',
+    '👩🏽‍🫯‍👩🏼' => 'menywod yn reslo: arlliw croen canolog, arlliw croen canolig-golau',
+    '👩🏽‍🫯‍👩🏾' => 'menywod yn reslo: arlliw croen canolog, arlliw croen canolig-tywyll',
+    '👩🏽‍🫯‍👩🏿' => 'menywod yn reslo: arlliw croen canolog, arlliw croen tywyll',
+    '👩🏾‍🫯‍👩🏻' => 'menywod yn reslo: arlliw croen canolig-tywyll, arlliw croen golau',
+    '👩🏾‍🫯‍👩🏼' => 'menywod yn reslo: arlliw croen canolig-tywyll, arlliw croen canolig-golau',
+    '👩🏾‍🫯‍👩🏽' => 'menywod yn reslo: arlliw croen canolig-tywyll, arlliw croen canolog',
+    '👩🏾‍🫯‍👩🏿' => 'menywod yn reslo: arlliw croen canolig-tywyll, arlliw croen tywyll',
+    '👩🏿‍🫯‍👩🏻' => 'menywod yn reslo: arlliw croen tywyll, arlliw croen golau',
+    '👩🏿‍🫯‍👩🏼' => 'menywod yn reslo: arlliw croen tywyll, arlliw croen canolig-golau',
+    '👩🏿‍🫯‍👩🏽' => 'menywod yn reslo: arlliw croen tywyll, arlliw croen canolog',
+    '👩🏿‍🫯‍👩🏾' => 'menywod yn reslo: arlliw croen tywyll, arlliw croen canolig-tywyll',
     '👩🏻‍❤‍👨🏻' => 'pâr a chalon: menyw, dyn, arlliw croen golau',
     '👩🏻‍❤‍👨🏼' => 'pâr a chalon: menyw, dyn, arlliw croen golau, arlliw croen canolig-golau',
     '👩🏻‍❤‍👨🏽' => 'pâr a chalon: menyw, dyn, arlliw croen golau, arlliw croen canolog',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pâr a chalon: menyw, menyw, arlliw croen tywyll, arlliw croen canolog',
     '👩🏿‍❤‍👩🏾' => 'pâr a chalon: menyw, menyw, arlliw croen tywyll, arlliw croen canolig-tywyll',
     '👩🏿‍❤‍👩🏿' => 'pâr a chalon: menyw, menyw, arlliw croen tywyll',
+    '👩🏻‍🐰‍👩🏼' => 'menyw mewn parti: arlliw croen golau, arlliw croen canolig-golau',
+    '👩🏻‍🐰‍👩🏽' => 'menyw mewn parti: arlliw croen golau, arlliw croen canolog',
+    '👩🏻‍🐰‍👩🏾' => 'menyw mewn parti: arlliw croen golau, arlliw croen canolig-tywyll',
+    '👩🏻‍🐰‍👩🏿' => 'menyw mewn parti: arlliw croen golau, arlliw croen tywyll',
+    '👩🏼‍🐰‍👩🏻' => 'menyw mewn parti: arlliw croen canolig-golau, arlliw croen golau',
+    '👩🏼‍🐰‍👩🏽' => 'menyw mewn parti: arlliw croen canolig-golau, arlliw croen canolog',
+    '👩🏼‍🐰‍👩🏾' => 'menyw mewn parti: arlliw croen canolig-golau, arlliw croen canolig-tywyll',
+    '👩🏼‍🐰‍👩🏿' => 'menyw mewn parti: arlliw croen canolig-golau, arlliw croen tywyll',
+    '👩🏽‍🐰‍👩🏻' => 'menyw mewn parti: arlliw croen canolog, arlliw croen golau',
+    '👩🏽‍🐰‍👩🏼' => 'menyw mewn parti: arlliw croen canolog, arlliw croen canolig-golau',
+    '👩🏽‍🐰‍👩🏾' => 'menyw mewn parti: arlliw croen canolog, arlliw croen canolig-tywyll',
+    '👩🏽‍🐰‍👩🏿' => 'menyw mewn parti: arlliw croen canolog, arlliw croen tywyll',
+    '👩🏾‍🐰‍👩🏻' => 'menyw mewn parti: arlliw croen canolig-tywyll, arlliw croen golau',
+    '👩🏾‍🐰‍👩🏼' => 'menyw mewn parti: arlliw croen canolig-tywyll, arlliw croen canolig-golau',
+    '👩🏾‍🐰‍👩🏽' => 'menyw mewn parti: arlliw croen canolig-tywyll, arlliw croen canolog',
+    '👩🏾‍🐰‍👩🏿' => 'menyw mewn parti: arlliw croen canolig-tywyll, arlliw croen tywyll',
+    '👩🏿‍🐰‍👩🏻' => 'menyw mewn parti: arlliw croen tywyll, arlliw croen golau',
+    '👩🏿‍🐰‍👩🏼' => 'menyw mewn parti: arlliw croen tywyll, arlliw croen canolig-golau',
+    '👩🏿‍🐰‍👩🏽' => 'menyw mewn parti: arlliw croen tywyll, arlliw croen canolog',
+    '👩🏿‍🐰‍👩🏾' => 'menyw mewn parti: arlliw croen tywyll, arlliw croen canolig-tywyll',
     '🧑🏻‍🤝‍🧑🏻' => 'pobl yn dal dwylo: arlliw croen golau',
     '🧑🏻‍🤝‍🧑🏼' => 'pobl yn dal dwylo: arlliw croen golau, arlliw croen canolig-golau',
     '🧑🏻‍🤝‍🧑🏽' => 'pobl yn dal dwylo: arlliw croen golau, arlliw croen canolog',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'baner: Yr Alban',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'baner: Cymru',
     '🧑‍🧑‍🧒‍🧒' => 'teulu: oedolyn, oedolyn, plentyn, plentyn',
-    '🚶🏻‍♀‍➡' => 'menyw yn cerdded wynebu i’r dde',
-    '🚶🏼‍♀‍➡' => 'menyw yn cerdded wynebu i’r dde',
-    '🚶🏽‍♀‍➡' => 'menyw yn cerdded wynebu i’r dde',
-    '🚶🏾‍♀‍➡' => 'menyw yn cerdded wynebu i’r dde',
-    '🚶🏿‍♀‍➡' => 'menyw yn cerdded wynebu i’r dde',
-    '🚶🏻‍♂‍➡' => 'dyn yn cerdded wynebu i’r dde',
-    '🚶🏼‍♂‍➡' => 'dyn yn cerdded wynebu i’r dde',
-    '🚶🏽‍♂‍➡' => 'dyn yn cerdded wynebu i’r dde',
-    '🚶🏾‍♂‍➡' => 'dyn yn cerdded wynebu i’r dde',
-    '🚶🏿‍♂‍➡' => 'dyn yn cerdded wynebu i’r dde',
-    '🧎🏻‍♀‍➡' => 'menyw yn penlinio wynebu i’r dde',
-    '🧎🏼‍♀‍➡' => 'menyw yn penlinio wynebu i’r dde',
-    '🧎🏽‍♀‍➡' => 'menyw yn penlinio wynebu i’r dde',
-    '🧎🏾‍♀‍➡' => 'menyw yn penlinio wynebu i’r dde',
-    '🧎🏿‍♀‍➡' => 'menyw yn penlinio wynebu i’r dde',
-    '🧎🏻‍♂‍➡' => 'dyn yn penlinio wynebu i’r dde',
-    '🧎🏼‍♂‍➡' => 'dyn yn penlinio wynebu i’r dde',
-    '🧎🏽‍♂‍➡' => 'dyn yn penlinio wynebu i’r dde',
-    '🧎🏾‍♂‍➡' => 'dyn yn penlinio wynebu i’r dde',
-    '🧎🏿‍♂‍➡' => 'dyn yn penlinio wynebu i’r dde',
-    '🧑🏻‍🦯‍➡' => 'person â ffon gerdded wynebu i’r dde',
-    '🧑🏼‍🦯‍➡' => 'person â ffon gerdded wynebu i’r dde',
-    '🧑🏽‍🦯‍➡' => 'person â ffon gerdded wynebu i’r dde',
-    '🧑🏾‍🦯‍➡' => 'person â ffon gerdded wynebu i’r dde',
-    '🧑🏿‍🦯‍➡' => 'person â ffon gerdded wynebu i’r dde',
-    '👨🏻‍🦯‍➡' => 'dyn â ffon wen wynebu i’r dde',
-    '👨🏼‍🦯‍➡' => 'dyn â ffon wen wynebu i’r dde',
-    '👨🏽‍🦯‍➡' => 'dyn â ffon wen wynebu i’r dde',
-    '👨🏾‍🦯‍➡' => 'dyn â ffon wen wynebu i’r dde',
-    '👨🏿‍🦯‍➡' => 'dyn â ffon wen wynebu i’r dde',
-    '👩🏻‍🦯‍➡' => 'menyw â ffon wen wynebu i’r dde',
-    '👩🏼‍🦯‍➡' => 'menyw â ffon wen wynebu i’r dde',
-    '👩🏽‍🦯‍➡' => 'menyw â ffon wen wynebu i’r dde',
-    '👩🏾‍🦯‍➡' => 'menyw â ffon wen wynebu i’r dde',
-    '👩🏿‍🦯‍➡' => 'menyw â ffon wen wynebu i’r dde',
-    '🧑🏻‍🦼‍➡' => 'person mewn cadair olwyn drydan wynebu i’r dde',
-    '🧑🏼‍🦼‍➡' => 'person mewn cadair olwyn drydan wynebu i’r dde',
-    '🧑🏽‍🦼‍➡' => 'person mewn cadair olwyn drydan wynebu i’r dde',
-    '🧑🏾‍🦼‍➡' => 'person mewn cadair olwyn drydan wynebu i’r dde',
-    '🧑🏿‍🦼‍➡' => 'person mewn cadair olwyn drydan wynebu i’r dde',
-    '👨🏻‍🦼‍➡' => 'dyn mewn cadair olwyn fodur wynebu i’r dde',
-    '👨🏼‍🦼‍➡' => 'dyn mewn cadair olwyn fodur wynebu i’r dde',
-    '👨🏽‍🦼‍➡' => 'dyn mewn cadair olwyn fodur wynebu i’r dde',
-    '👨🏾‍🦼‍➡' => 'dyn mewn cadair olwyn fodur wynebu i’r dde',
-    '👨🏿‍🦼‍➡' => 'dyn mewn cadair olwyn fodur wynebu i’r dde',
-    '👩🏻‍🦼‍➡' => 'menyw mewn cadair olwyn fodur wynebu i’r dde',
-    '👩🏼‍🦼‍➡' => 'menyw mewn cadair olwyn fodur wynebu i’r dde',
-    '👩🏽‍🦼‍➡' => 'menyw mewn cadair olwyn fodur wynebu i’r dde',
-    '👩🏾‍🦼‍➡' => 'menyw mewn cadair olwyn fodur wynebu i’r dde',
-    '👩🏿‍🦼‍➡' => 'menyw mewn cadair olwyn fodur wynebu i’r dde',
-    '🧑🏻‍🦽‍➡' => 'person mewn cadair olwyn â llaw wynebu i’r dde',
-    '🧑🏼‍🦽‍➡' => 'person mewn cadair olwyn â llaw wynebu i’r dde',
-    '🧑🏽‍🦽‍➡' => 'person mewn cadair olwyn â llaw wynebu i’r dde',
-    '🧑🏾‍🦽‍➡' => 'person mewn cadair olwyn â llaw wynebu i’r dde',
-    '🧑🏿‍🦽‍➡' => 'person mewn cadair olwyn â llaw wynebu i’r dde',
-    '👨🏻‍🦽‍➡' => 'dyn mewn cadair olwyn wynebu i’r dde',
-    '👨🏼‍🦽‍➡' => 'dyn mewn cadair olwyn wynebu i’r dde',
-    '👨🏽‍🦽‍➡' => 'dyn mewn cadair olwyn wynebu i’r dde',
-    '👨🏾‍🦽‍➡' => 'dyn mewn cadair olwyn wynebu i’r dde',
-    '👨🏿‍🦽‍➡' => 'dyn mewn cadair olwyn wynebu i’r dde',
-    '👩🏻‍🦽‍➡' => 'menyw mewn cadair olwyn wynebu i’r dde',
-    '👩🏼‍🦽‍➡' => 'menyw mewn cadair olwyn wynebu i’r dde',
-    '👩🏽‍🦽‍➡' => 'menyw mewn cadair olwyn wynebu i’r dde',
-    '👩🏾‍🦽‍➡' => 'menyw mewn cadair olwyn wynebu i’r dde',
-    '👩🏿‍🦽‍➡' => 'menyw mewn cadair olwyn wynebu i’r dde',
-    '🏃🏻‍♀‍➡' => 'menyw yn rhedeg wynebu i’r dde',
-    '🏃🏼‍♀‍➡' => 'menyw yn rhedeg wynebu i’r dde',
-    '🏃🏽‍♀‍➡' => 'menyw yn rhedeg wynebu i’r dde',
-    '🏃🏾‍♀‍➡' => 'menyw yn rhedeg wynebu i’r dde',
-    '🏃🏿‍♀‍➡' => 'menyw yn rhedeg wynebu i’r dde',
-    '🏃🏻‍♂‍➡' => 'dyn yn rhedeg wynebu i’r dde',
-    '🏃🏼‍♂‍➡' => 'dyn yn rhedeg wynebu i’r dde',
-    '🏃🏽‍♂‍➡' => 'dyn yn rhedeg wynebu i’r dde',
-    '🏃🏾‍♂‍➡' => 'dyn yn rhedeg wynebu i’r dde',
-    '🏃🏿‍♂‍➡' => 'dyn yn rhedeg wynebu i’r dde',
+    '🚶🏻‍♀‍➡' => 'menyw yn cerdded: arlliw croen golau, wynebu i’r dde',
+    '🚶🏼‍♀‍➡' => 'menyw yn cerdded: arlliw croen canolig-golau, wynebu i’r dde',
+    '🚶🏽‍♀‍➡' => 'menyw yn cerdded: arlliw croen canolog, wynebu i’r dde',
+    '🚶🏾‍♀‍➡' => 'menyw yn cerdded: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🚶🏿‍♀‍➡' => 'menyw yn cerdded: arlliw croen tywyll, wynebu i’r dde',
+    '🚶🏻‍♂‍➡' => 'dyn yn cerdded: arlliw croen golau, wynebu i’r dde',
+    '🚶🏼‍♂‍➡' => 'dyn yn cerdded: arlliw croen canolig-golau, wynebu i’r dde',
+    '🚶🏽‍♂‍➡' => 'dyn yn cerdded: arlliw croen canolog, wynebu i’r dde',
+    '🚶🏾‍♂‍➡' => 'dyn yn cerdded: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🚶🏿‍♂‍➡' => 'dyn yn cerdded: arlliw croen tywyll, wynebu i’r dde',
+    '🧎🏻‍♀‍➡' => 'menyw yn penlinio: arlliw croen golau, wynebu i’r dde',
+    '🧎🏼‍♀‍➡' => 'menyw yn penlinio: arlliw croen canolig-golau, wynebu i’r dde',
+    '🧎🏽‍♀‍➡' => 'menyw yn penlinio: arlliw croen canolog, wynebu i’r dde',
+    '🧎🏾‍♀‍➡' => 'menyw yn penlinio: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🧎🏿‍♀‍➡' => 'menyw yn penlinio: arlliw croen tywyll, wynebu i’r dde',
+    '🧎🏻‍♂‍➡' => 'dyn yn penlinio: arlliw croen golau, wynebu i’r dde',
+    '🧎🏼‍♂‍➡' => 'dyn yn penlinio: arlliw croen canolig-golau, wynebu i’r dde',
+    '🧎🏽‍♂‍➡' => 'dyn yn penlinio: arlliw croen canolog, wynebu i’r dde',
+    '🧎🏾‍♂‍➡' => 'dyn yn penlinio: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🧎🏿‍♂‍➡' => 'dyn yn penlinio: arlliw croen tywyll, wynebu i’r dde',
+    '🧑🏻‍🦯‍➡' => 'person â ffon gerdded: arlliw croen golau, wynebu i’r dde',
+    '🧑🏼‍🦯‍➡' => 'person â ffon gerdded: arlliw croen canolig-golau, wynebu i’r dde',
+    '🧑🏽‍🦯‍➡' => 'person â ffon gerdded: arlliw croen canolog, wynebu i’r dde',
+    '🧑🏾‍🦯‍➡' => 'person â ffon gerdded: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🧑🏿‍🦯‍➡' => 'person â ffon gerdded: arlliw croen tywyll, wynebu i’r dde',
+    '👨🏻‍🦯‍➡' => 'dyn â ffon wen: arlliw croen golau, wynebu i’r dde',
+    '👨🏼‍🦯‍➡' => 'dyn â ffon wen: arlliw croen canolig-golau, wynebu i’r dde',
+    '👨🏽‍🦯‍➡' => 'dyn â ffon wen: arlliw croen canolog, wynebu i’r dde',
+    '👨🏾‍🦯‍➡' => 'dyn â ffon wen: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '👨🏿‍🦯‍➡' => 'dyn â ffon wen: arlliw croen tywyll, wynebu i’r dde',
+    '👩🏻‍🦯‍➡' => 'menyw â ffon wen: arlliw croen golau, wynebu i’r dde',
+    '👩🏼‍🦯‍➡' => 'menyw â ffon wen: arlliw croen canolig-golau, wynebu i’r dde',
+    '👩🏽‍🦯‍➡' => 'menyw â ffon wen: arlliw croen canolog, wynebu i’r dde',
+    '👩🏾‍🦯‍➡' => 'menyw â ffon wen: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '👩🏿‍🦯‍➡' => 'menyw â ffon wen: arlliw croen tywyll, wynebu i’r dde',
+    '🧑🏻‍🦼‍➡' => 'person mewn cadair olwyn drydan: arlliw croen golau, wynebu i’r dde',
+    '🧑🏼‍🦼‍➡' => 'person mewn cadair olwyn drydan: arlliw croen canolig-golau, wynebu i’r dde',
+    '🧑🏽‍🦼‍➡' => 'person mewn cadair olwyn drydan: arlliw croen canolog, wynebu i’r dde',
+    '🧑🏾‍🦼‍➡' => 'person mewn cadair olwyn drydan: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🧑🏿‍🦼‍➡' => 'person mewn cadair olwyn drydan: arlliw croen tywyll, wynebu i’r dde',
+    '👨🏻‍🦼‍➡' => 'dyn mewn cadair olwyn fodur: arlliw croen golau, wynebu i’r dde',
+    '👨🏼‍🦼‍➡' => 'dyn mewn cadair olwyn fodur: arlliw croen canolig-golau, wynebu i’r dde',
+    '👨🏽‍🦼‍➡' => 'dyn mewn cadair olwyn fodur: arlliw croen canolog, wynebu i’r dde',
+    '👨🏾‍🦼‍➡' => 'dyn mewn cadair olwyn fodur: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '👨🏿‍🦼‍➡' => 'dyn mewn cadair olwyn fodur: arlliw croen tywyll, wynebu i’r dde',
+    '👩🏻‍🦼‍➡' => 'menyw mewn cadair olwyn fodur: arlliw croen golau, wynebu i’r dde',
+    '👩🏼‍🦼‍➡' => 'menyw mewn cadair olwyn fodur: arlliw croen canolig-golau, wynebu i’r dde',
+    '👩🏽‍🦼‍➡' => 'menyw mewn cadair olwyn fodur: arlliw croen canolog, wynebu i’r dde',
+    '👩🏾‍🦼‍➡' => 'menyw mewn cadair olwyn fodur: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '👩🏿‍🦼‍➡' => 'menyw mewn cadair olwyn fodur: arlliw croen tywyll, wynebu i’r dde',
+    '🧑🏻‍🦽‍➡' => 'person mewn cadair olwyn â llaw: arlliw croen golau, wynebu i’r dde',
+    '🧑🏼‍🦽‍➡' => 'person mewn cadair olwyn â llaw: arlliw croen canolig-golau, wynebu i’r dde',
+    '🧑🏽‍🦽‍➡' => 'person mewn cadair olwyn â llaw: arlliw croen canolog, wynebu i’r dde',
+    '🧑🏾‍🦽‍➡' => 'person mewn cadair olwyn â llaw: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🧑🏿‍🦽‍➡' => 'person mewn cadair olwyn â llaw: arlliw croen tywyll, wynebu i’r dde',
+    '👨🏻‍🦽‍➡' => 'dyn mewn cadair olwyn: arlliw croen golau, wynebu i’r dde',
+    '👨🏼‍🦽‍➡' => 'dyn mewn cadair olwyn: arlliw croen canolig-golau, wynebu i’r dde',
+    '👨🏽‍🦽‍➡' => 'dyn mewn cadair olwyn: arlliw croen canolog, wynebu i’r dde',
+    '👨🏾‍🦽‍➡' => 'dyn mewn cadair olwyn: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '👨🏿‍🦽‍➡' => 'dyn mewn cadair olwyn: arlliw croen tywyll, wynebu i’r dde',
+    '👩🏻‍🦽‍➡' => 'menyw mewn cadair olwyn: arlliw croen golau, wynebu i’r dde',
+    '👩🏼‍🦽‍➡' => 'menyw mewn cadair olwyn: arlliw croen canolig-golau, wynebu i’r dde',
+    '👩🏽‍🦽‍➡' => 'menyw mewn cadair olwyn: arlliw croen canolog, wynebu i’r dde',
+    '👩🏾‍🦽‍➡' => 'menyw mewn cadair olwyn: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '👩🏿‍🦽‍➡' => 'menyw mewn cadair olwyn: arlliw croen tywyll, wynebu i’r dde',
+    '🏃🏻‍♀‍➡' => 'menyw yn rhedeg: arlliw croen golau, wynebu i’r dde',
+    '🏃🏼‍♀‍➡' => 'menyw yn rhedeg: arlliw croen canolig-golau, wynebu i’r dde',
+    '🏃🏽‍♀‍➡' => 'menyw yn rhedeg: arlliw croen canolog, wynebu i’r dde',
+    '🏃🏾‍♀‍➡' => 'menyw yn rhedeg: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🏃🏿‍♀‍➡' => 'menyw yn rhedeg: arlliw croen tywyll, wynebu i’r dde',
+    '🏃🏻‍♂‍➡' => 'dyn yn rhedeg: arlliw croen golau, wynebu i’r dde',
+    '🏃🏼‍♂‍➡' => 'dyn yn rhedeg: arlliw croen canolig-golau, wynebu i’r dde',
+    '🏃🏽‍♂‍➡' => 'dyn yn rhedeg: arlliw croen canolog, wynebu i’r dde',
+    '🏃🏾‍♂‍➡' => 'dyn yn rhedeg: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🏃🏿‍♂‍➡' => 'dyn yn rhedeg: arlliw croen tywyll, wynebu i’r dde',
     '🫱🏻‍🫲🏼' => 'ysgwyd dwylo: arlliw croen golau, arlliw croen canolig-golau',
     '🫱🏻‍🫲🏽' => 'ysgwyd dwylo: arlliw croen golau, arlliw croen canolog',
     '🫱🏻‍🫲🏾' => 'ysgwyd dwylo: arlliw croen golau, arlliw croen canolig-tywyll',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ysgwyd dwylo: arlliw croen tywyll, arlliw croen canolig-golau',
     '🫱🏿‍🫲🏽' => 'ysgwyd dwylo: arlliw croen tywyll, arlliw croen canolog',
     '🫱🏿‍🫲🏾' => 'ysgwyd dwylo: arlliw croen tywyll, arlliw croen canolig-tywyll',
-    '🚶‍♀‍➡' => 'menyw yn cerdded wynebu i’r dde',
-    '🚶‍♂‍➡' => 'dyn yn cerdded wynebu i’r dde',
-    '🧎‍♀‍➡' => 'menyw yn penlinio wynebu i’r dde',
-    '🧎‍♂‍➡' => 'dyn yn penlinio wynebu i’r dde',
-    '🧑‍🦯‍➡' => 'person â ffon gerdded wynebu i’r dde',
-    '👨‍🦯‍➡' => 'dyn â ffon wen wynebu i’r dde',
-    '👩‍🦯‍➡' => 'menyw â ffon wen wynebu i’r dde',
-    '🧑‍🦼‍➡' => 'person mewn cadair olwyn drydan wynebu i’r dde',
-    '👨‍🦼‍➡' => 'dyn mewn cadair olwyn fodur wynebu i’r dde',
-    '👩‍🦼‍➡' => 'menyw mewn cadair olwyn fodur wynebu i’r dde',
-    '🧑‍🦽‍➡' => 'person mewn cadair olwyn â llaw wynebu i’r dde',
-    '👨‍🦽‍➡' => 'dyn mewn cadair olwyn wynebu i’r dde',
-    '👩‍🦽‍➡' => 'menyw mewn cadair olwyn wynebu i’r dde',
-    '🏃‍♀‍➡' => 'menyw yn rhedeg wynebu i’r dde',
-    '🏃‍♂‍➡' => 'dyn yn rhedeg wynebu i’r dde',
+    '🚶‍♀‍➡' => 'menyw yn cerdded: wynebu i’r dde',
+    '🚶‍♂‍➡' => 'dyn yn cerdded: wynebu i’r dde',
+    '🧎‍♀‍➡' => 'menyw yn penlinio: wynebu i’r dde',
+    '🧎‍♂‍➡' => 'dyn yn penlinio: wynebu i’r dde',
+    '🧑‍🦯‍➡' => 'person â ffon gerdded: wynebu i’r dde',
+    '👨‍🦯‍➡' => 'dyn â ffon wen: wynebu i’r dde',
+    '👩‍🦯‍➡' => 'menyw â ffon wen: wynebu i’r dde',
+    '🧑‍🦼‍➡' => 'person mewn cadair olwyn drydan: wynebu i’r dde',
+    '👨‍🦼‍➡' => 'dyn mewn cadair olwyn fodur: wynebu i’r dde',
+    '👩‍🦼‍➡' => 'menyw mewn cadair olwyn fodur: wynebu i’r dde',
+    '🧑‍🦽‍➡' => 'person mewn cadair olwyn â llaw: wynebu i’r dde',
+    '👨‍🦽‍➡' => 'dyn mewn cadair olwyn: wynebu i’r dde',
+    '👩‍🦽‍➡' => 'menyw mewn cadair olwyn: wynebu i’r dde',
+    '🏃‍♀‍➡' => 'menyw yn rhedeg: wynebu i’r dde',
+    '🏃‍♂‍➡' => 'dyn yn rhedeg: wynebu i’r dde',
     '👩‍❤‍👨' => 'pâr a chalon: menyw, dyn',
     '👨‍❤‍👨' => 'pâr a chalon: dyn, dyn',
     '👩‍❤‍👩' => 'pâr a chalon: menyw, menyw',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'person: arlliw croen canolog, moel',
     '🧑🏾‍🦲' => 'person: arlliw croen canolig-tywyll, moel',
     '🧑🏿‍🦲' => 'person: arlliw croen tywyll, moel',
+    '🧑🏻‍🩰' => 'dawnsiwr/dawnswraig bale: arlliw croen golau',
+    '🧑🏼‍🩰' => 'dawnsiwr/dawnswraig bale: arlliw croen canolig-golau',
+    '🧑🏽‍🩰' => 'dawnsiwr/dawnswraig bale: arlliw croen canolog',
+    '🧑🏾‍🩰' => 'dawnsiwr/dawnswraig bale: arlliw croen canolig-tywyll',
+    '🧑🏿‍🩰' => 'dawnsiwr/dawnswraig bale: arlliw croen tywyll',
     '🧔🏻‍♂' => 'dyn: arlliw croen golau, barf',
     '🧔🏼‍♂' => 'dyn: arlliw croen canolig-golau, barf',
     '🧔🏽‍♂' => 'dyn: arlliw croen canolog, barf',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'menyw yn cerdded: arlliw croen canolog',
     '🚶🏾‍♀' => 'menyw yn cerdded: arlliw croen canolig-tywyll',
     '🚶🏿‍♀' => 'menyw yn cerdded: arlliw croen tywyll',
-    '🚶🏻‍➡' => 'person yn cerdded wynebu i’r dde',
-    '🚶🏼‍➡' => 'person yn cerdded wynebu i’r dde',
-    '🚶🏽‍➡' => 'person yn cerdded wynebu i’r dde',
-    '🚶🏾‍➡' => 'person yn cerdded wynebu i’r dde',
-    '🚶🏿‍➡' => 'person yn cerdded wynebu i’r dde',
+    '🚶🏻‍➡' => 'person yn cerdded: arlliw croen golau, wynebu i’r dde',
+    '🚶🏼‍➡' => 'person yn cerdded: arlliw croen canolig-golau, wynebu i’r dde',
+    '🚶🏽‍➡' => 'person yn cerdded: arlliw croen canolog, wynebu i’r dde',
+    '🚶🏾‍➡' => 'person yn cerdded: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🚶🏿‍➡' => 'person yn cerdded: arlliw croen tywyll, wynebu i’r dde',
     '🧍🏻‍♂' => 'dyn yn sefyll: arlliw croen golau',
     '🧍🏼‍♂' => 'dyn yn sefyll: arlliw croen canolig-golau',
     '🧍🏽‍♂' => 'dyn yn sefyll: arlliw croen canolog',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'menyw yn penlinio: arlliw croen canolog',
     '🧎🏾‍♀' => 'menyw yn penlinio: arlliw croen canolig-tywyll',
     '🧎🏿‍♀' => 'menyw yn penlinio: arlliw croen tywyll',
-    '🧎🏻‍➡' => 'person yn penlinio wynebu i’r dde',
-    '🧎🏼‍➡' => 'person yn penlinio wynebu i’r dde',
-    '🧎🏽‍➡' => 'person yn penlinio wynebu i’r dde',
-    '🧎🏾‍➡' => 'person yn penlinio wynebu i’r dde',
-    '🧎🏿‍➡' => 'person yn penlinio wynebu i’r dde',
+    '🧎🏻‍➡' => 'person yn penlinio: arlliw croen golau, wynebu i’r dde',
+    '🧎🏼‍➡' => 'person yn penlinio: arlliw croen canolig-golau, wynebu i’r dde',
+    '🧎🏽‍➡' => 'person yn penlinio: arlliw croen canolog, wynebu i’r dde',
+    '🧎🏾‍➡' => 'person yn penlinio: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🧎🏿‍➡' => 'person yn penlinio: arlliw croen tywyll, wynebu i’r dde',
     '🧑🏻‍🦯' => 'person â ffon gerdded: arlliw croen golau',
     '🧑🏼‍🦯' => 'person â ffon gerdded: arlliw croen canolig-golau',
     '🧑🏽‍🦯' => 'person â ffon gerdded: arlliw croen canolog',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'menyw yn rhedeg: arlliw croen canolog',
     '🏃🏾‍♀' => 'menyw yn rhedeg: arlliw croen canolig-tywyll',
     '🏃🏿‍♀' => 'menyw yn rhedeg: arlliw croen tywyll',
-    '🏃🏻‍➡' => 'person yn rhedeg wynebu i’r dde',
-    '🏃🏼‍➡' => 'person yn rhedeg wynebu i’r dde',
-    '🏃🏽‍➡' => 'person yn rhedeg wynebu i’r dde',
-    '🏃🏾‍➡' => 'person yn rhedeg wynebu i’r dde',
-    '🏃🏿‍➡' => 'person yn rhedeg wynebu i’r dde',
+    '🏃🏻‍➡' => 'person yn rhedeg: arlliw croen golau, wynebu i’r dde',
+    '🏃🏼‍➡' => 'person yn rhedeg: arlliw croen canolig-golau, wynebu i’r dde',
+    '🏃🏽‍➡' => 'person yn rhedeg: arlliw croen canolog, wynebu i’r dde',
+    '🏃🏾‍➡' => 'person yn rhedeg: arlliw croen canolig-tywyll, wynebu i’r dde',
+    '🏃🏿‍➡' => 'person yn rhedeg: arlliw croen tywyll, wynebu i’r dde',
+    '👯🏻‍♀' => 'menyw mewn parti: arlliw croen golau',
+    '👯🏼‍♀' => 'menyw mewn parti: arlliw croen canolig-golau',
+    '👯🏽‍♀' => 'menyw mewn parti: arlliw croen canolog',
+    '👯🏾‍♀' => 'menyw mewn parti: arlliw croen canolig-tywyll',
+    '👯🏿‍♀' => 'menyw mewn parti: arlliw croen tywyll',
+    '👯🏻‍♂' => 'dyn mewn parti: arlliw croen golau',
+    '👯🏼‍♂' => 'dyn mewn parti: arlliw croen canolig-golau',
+    '👯🏽‍♂' => 'dyn mewn parti: arlliw croen canolog',
+    '👯🏾‍♂' => 'dyn mewn parti: arlliw croen canolig-tywyll',
+    '👯🏿‍♂' => 'dyn mewn parti: arlliw croen tywyll',
     '🧖🏻‍♂' => 'dyn mewn ystafell llawn stêm: arlliw croen golau',
     '🧖🏼‍♂' => 'dyn mewn ystafell llawn stêm: arlliw croen canolig-golau',
     '🧖🏽‍♂' => 'dyn mewn ystafell llawn stêm: arlliw croen canolog',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'menyw yn gwneud olwyn dro: arlliw croen canolog',
     '🤸🏾‍♀' => 'menyw yn gwneud olwyn dro: arlliw croen canolig-tywyll',
     '🤸🏿‍♀' => 'menyw yn gwneud olwyn dro: arlliw croen tywyll',
+    '🤼🏻‍♀' => 'menywod yn reslo: arlliw croen golau',
+    '🤼🏼‍♀' => 'menywod yn reslo: arlliw croen canolig-golau',
+    '🤼🏽‍♀' => 'menywod yn reslo: arlliw croen canolog',
+    '🤼🏾‍♀' => 'menywod yn reslo: arlliw croen canolig-tywyll',
+    '🤼🏿‍♀' => 'menywod yn reslo: arlliw croen tywyll',
+    '🤼🏻‍♂' => 'dynion yn reslo: arlliw croen golau',
+    '🤼🏼‍♂' => 'dynion yn reslo: arlliw croen canolig-golau',
+    '🤼🏽‍♂' => 'dynion yn reslo: arlliw croen canolog',
+    '🤼🏾‍♂' => 'dynion yn reslo: arlliw croen canolig-tywyll',
+    '🤼🏿‍♂' => 'dynion yn reslo: arlliw croen tywyll',
     '🤽🏻‍♂' => 'dyn yn chwarae polo dŵr: arlliw croen golau',
     '🤽🏼‍♂' => 'dyn yn chwarae polo dŵr: arlliw croen canolig-golau',
     '🤽🏽‍♂' => 'dyn yn chwarae polo dŵr: arlliw croen canolog',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'menyw: gwallt cyrliog',
     '👩‍🦳' => 'menyw: gwallt gwyn',
     '👩‍🦲' => 'menyw: moel',
-    '🚶‍➡' => 'person yn cerdded wynebu i’r dde',
-    '🧎‍➡' => 'person yn penlinio wynebu i’r dde',
-    '🏃‍➡' => 'person yn rhedeg wynebu i’r dde',
+    '🚶‍➡' => 'person yn cerdded: wynebu i’r dde',
+    '🧎‍➡' => 'person yn penlinio: wynebu i’r dde',
+    '🏃‍➡' => 'person yn rhedeg: wynebu i’r dde',
     '👨‍👦' => 'teulu: dyn, bachgen',
     '👨‍👧' => 'teulu: dyn, merch',
     '👩‍👦' => 'teulu: menyw, bachgen',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'menyw mewn cadair olwyn',
     '🏃‍♂' => 'dyn yn rhedeg',
     '🏃‍♀' => 'menyw yn rhedeg',
+    '🧑‍🩰' => 'dawnsiwr/dawnswraig bale',
     '👯‍♂' => 'dyn mewn parti',
     '👯‍♀' => 'menyw mewn parti',
     '🧖‍♂' => 'dyn mewn ystafell llawn stêm',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'dyn mewn gwisg fusnes yn ymddyrchafu: arlliw croen canolog',
     '🕴🏾' => 'dyn mewn gwisg fusnes yn ymddyrchafu: arlliw croen canolig-tywyll',
     '🕴🏿' => 'dyn mewn gwisg fusnes yn ymddyrchafu: arlliw croen tywyll',
+    '👯🏻' => 'pobl mewn parti: arlliw croen golau',
+    '👯🏼' => 'pobl mewn parti: arlliw croen canolig-golau',
+    '👯🏽' => 'pobl mewn parti: arlliw croen canolog',
+    '👯🏾' => 'pobl mewn parti: arlliw croen canolig-tywyll',
+    '👯🏿' => 'pobl mewn parti: arlliw croen tywyll',
     '🧖🏻' => 'person mewn ystafell llawn stêm: arlliw croen golau',
     '🧖🏼' => 'person mewn ystafell llawn stêm: arlliw croen canolig-golau',
     '🧖🏽' => 'person mewn ystafell llawn stêm: arlliw croen canolog',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'olwyn droi: arlliw croen canolog',
     '🤸🏾' => 'olwyn droi: arlliw croen canolig-tywyll',
     '🤸🏿' => 'olwyn droi: arlliw croen tywyll',
+    '🤼🏻' => 'taflwyr codwm: arlliw croen golau',
+    '🤼🏼' => 'taflwyr codwm: arlliw croen canolig-golau',
+    '🤼🏽' => 'taflwyr codwm: arlliw croen canolog',
+    '🤼🏾' => 'taflwyr codwm: arlliw croen canolig-tywyll',
+    '🤼🏿' => 'taflwyr codwm: arlliw croen tywyll',
     '🤽🏻' => 'polo dŵr: arlliw croen golau',
     '🤽🏼' => 'polo dŵr: arlliw croen canolig-golau',
     '🤽🏽' => 'polo dŵr: arlliw croen canolog',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'baner: Tsieina',
     '🇨🇴' => 'baner: Colombia',
     '🇨🇵' => 'baner: Ynys Clipperton',
+    '🇨🇶' => 'baner: Sarc',
     '🇨🇷' => 'baner: Costa Rica',
     '🇨🇺' => 'baner: Ciwba',
     '🇨🇻' => 'baner: Cabo Verde',
@@ -2309,7 +2466,7 @@
     '🇵🇫' => 'baner: Polynesia Ffrengig',
     '🇵🇬' => 'baner: Papua Guinea Newydd',
     '🇵🇭' => 'baner: Y Philipinau',
-    '🇵🇰' => 'baner: Pakistan',
+    '🇵🇰' => 'baner: Pacistan',
     '🇵🇱' => 'baner: Gwlad Pwyl',
     '🇵🇲' => 'baner: Saint-Pierre-et-Miquelon',
     '🇵🇳' => 'baner: Ynysoedd Pitcairn',
@@ -2390,13 +2547,6 @@
     '🏽' => 'arlliw croen canolog',
     '🏾' => 'arlliw croen canolig-tywyll',
     '🏿' => 'arlliw croen tywyll',
-    '🪉' => 'telyn',
-    '🪏' => 'rhaw',
-    '🪾' => 'coeden heb ddail',
-    '🫆' => 'ôl bys',
-    '🫜' => 'gwreiddlysieuyn',
-    '🫟' => 'slempio',
-    '🫩' => 'wyneb gyda bagiau dan y llygaid',
     '😀' => 'wyneb yn gwenu â cheg agored',
     '😃' => 'wyneb yn gwenu â cheg agored a llygaid mawr',
     '😄' => 'wyneb yn gwenu â cheg agored a gwên yn y llygaid',
@@ -2450,6 +2600,7 @@
     '😪' => 'wyneb cysglyd',
     '🤤' => 'wyneb glafoerio',
     '😴' => 'wyneb yn cysgu',
+    '🫩' => 'wyneb gyda bagiau dan y llygaid',
     '😷' => 'wyneb â mwgwd meddygol',
     '🤒' => 'wyneb â thermomedr',
     '🤕' => 'wyneb â rhwymyn i’r pen',
@@ -2476,6 +2627,7 @@
     '😯' => 'wyneb distewi',
     '😲' => 'wyneb wedi rhyfeddu',
     '😳' => 'wyneb yn gwrido',
+    '🫪' => 'wyneb wedi ystumio',
     '🥺' => 'wyneb yn pledio',
     '🥹' => 'wyneb yn dal dagrau yn ôl',
     '😦' => 'wyneb gwgus â cheg agored',
@@ -2547,6 +2699,7 @@
     '💋' => 'ôl cusan',
     '💯' => 'cant o bwyntiau',
     '💢' => 'symbol dicter',
+    '🫯' => 'cwmwl ymladd',
     '💥' => 'trawiad',
     '💫' => 'penysgafn',
     '💦' => 'defnynnau chwys',
@@ -2670,6 +2823,7 @@
     '🧞' => 'genie',
     '🧟' => 'sombi',
     '🧌' => 'ellyll',
+    '🫈' => 'creadur blewog',
     '💆' => 'person yn derbyn tyluniad',
     '💇' => 'person yn cael ei wallt wedi’u torri',
     '🚶' => 'person yn cerdded',
@@ -2713,6 +2867,7 @@
     '🫂' => 'pobl yn cofleidio',
     '👪' => 'teulu',
     '👣' => 'olion traed',
+    '🫆' => 'ôl bys',
     '🦰' => 'gwallt coch',
     '🦱' => 'gwallt cyrliog',
     '🦳' => 'gwallt gwyn',
@@ -2812,6 +2967,7 @@
     '🐳' => 'morfil yn chwythu dŵr',
     '🐋' => 'morfil',
     '🐬' => 'dolffin',
+    '🫍' => 'orca',
     '🦭' => 'morlo',
     '🐟' => 'pysgodyn',
     '🐠' => 'pysgod trofannol',
@@ -2821,6 +2977,11 @@
     '🐚' => 'cragen droellog',
     '🪸' => 'cwrel',
     '🪼' => 'slefren fôr',
+    '🦀' => 'cranc',
+    '🦞' => 'cimwch',
+    '🦐' => 'berdysyn',
+    '🦑' => 'ystifflog',
+    '🦪' => 'wystrys',
     '🐌' => 'malwoden',
     '🦋' => 'pili-pala',
     '🐛' => 'pryf',
@@ -2865,6 +3026,7 @@
     '🪹' => 'nyth gwag',
     '🪺' => 'nythu gydag wyau',
     '🍄' => 'madarch',
+    '🪾' => 'coeden heb ddail',
     '🍇' => 'grawnwin',
     '🍈' => 'melon',
     '🍉' => 'melon dŵr',
@@ -2901,6 +3063,7 @@
     '🌰' => 'castan',
     '🫚' => 'gwraidd sinsir',
     '🫛' => 'pod pys',
+    '🫜' => 'gwreiddlysieuyn',
     '🍞' => 'bara',
     '🥐' => 'croissant',
     '🥖' => 'ffon fara',
@@ -2952,11 +3115,6 @@
     '🥟' => 'twmplen',
     '🥠' => 'bisgeden lwcus',
     '🥡' => 'bocs prydau parod',
-    '🦀' => 'cranc',
-    '🦞' => 'cimwch',
-    '🦐' => 'berdysyn',
-    '🦑' => 'ystifflog',
-    '🦪' => 'wystrys',
     '🍦' => 'hufen iâ meddal',
     '🍧' => 'iâ wedi’i siafio',
     '🍨' => 'hufen iâ',
@@ -3007,6 +3165,7 @@
     '🧭' => 'cwmpawd',
     '🏔' => 'mynydd wedi’i orchuddio mewn eira',
     '⛰' => 'mynydd',
+    '🛘' => 'tirlithriad',
     '🌋' => 'llosgfynydd',
     '🗻' => 'mynydd Fuji',
     '🏕' => 'gwersyllu',
@@ -3367,16 +3526,18 @@
     '🎧' => 'clustffon',
     '📻' => 'radio',
     '🎷' => 'sacsoffon',
+    '🎺' => 'trwmped',
+    '🪊' => 'trombôn',
     '🪗' => 'acordion',
     '🎸' => 'gitâr',
     '🎹' => 'allweddell',
-    '🎺' => 'trwmped',
     '🎻' => 'ffidl',
     '🪕' => 'banjo',
     '🥁' => 'drwm',
     '🪘' => 'drwm hir',
     '🪇' => 'maracas',
     '🪈' => 'ffliwt',
+    '🪉' => 'telyn',
     '📱' => 'ffôn symudol',
     '📲' => 'ffôn symudol â saeth',
     '☎' => 'ffôn',
@@ -3430,8 +3591,9 @@
     '📑' => 'tabiau nodau tudalen',
     '🔖' => 'nod tudalen',
     '🏷' => 'label',
-    '💰' => 'bag arian',
     '🪙' => 'darn arian',
+    '💰' => 'bag arian',
+    '🪎' => 'cist drysor',
     '💴' => 'papur arian yen',
     '💵' => 'papur arian doler',
     '💶' => 'papur arian ewro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'blwch offer',
     '🧲' => 'magnet',
     '🪜' => 'ysgol ddringo',
+    '🪏' => 'rhaw',
     '⚗' => 'distyllydd',
     '🧪' => 'tiwb profi',
     '🧫' => 'dysgl petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'seren wyth pwynt',
     '❇' => 'fflachiad',
     '™' => 'nod masnach',
+    '🫟' => 'slempio',
     '🔠' => 'mewnbwn llythrennau mawr ladin',
     '🔡' => 'mewnbwn llythrennau bach lladin',
     '🔢' => 'mewnbwn rhifedd',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-da.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-da.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-da.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-da.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kys: kvinde, kvinde, mørk teint og medium teint',
     '👩🏿‍❤‍💋‍👩🏾' => 'kys: kvinde, kvinde, mørk teint og medium til mørk teint',
     '👩🏿‍❤‍💋‍👩🏿' => 'kys: kvinde, kvinde og mørk teint',
+    '🧑🏻‍🫯‍🧑🏼' => 'brydere: lys teint og medium til lys teint',
+    '🧑🏻‍🫯‍🧑🏽' => 'brydere: lys teint og medium teint',
+    '🧑🏻‍🫯‍🧑🏾' => 'brydere: lys teint og medium til mørk teint',
+    '🧑🏻‍🫯‍🧑🏿' => 'brydere: lys teint og mørk teint',
+    '🧑🏼‍🫯‍🧑🏻' => 'brydere: medium til lys teint og lys teint',
+    '🧑🏼‍🫯‍🧑🏽' => 'brydere: medium til lys teint og medium teint',
+    '🧑🏼‍🫯‍🧑🏾' => 'brydere: medium til lys teint og medium til mørk teint',
+    '🧑🏼‍🫯‍🧑🏿' => 'brydere: medium til lys teint og mørk teint',
+    '🧑🏽‍🫯‍🧑🏻' => 'brydere: medium teint og lys teint',
+    '🧑🏽‍🫯‍🧑🏼' => 'brydere: medium teint og medium til lys teint',
+    '🧑🏽‍🫯‍🧑🏾' => 'brydere: medium teint og medium til mørk teint',
+    '🧑🏽‍🫯‍🧑🏿' => 'brydere: medium teint og mørk teint',
+    '🧑🏾‍🫯‍🧑🏻' => 'brydere: medium til mørk teint og lys teint',
+    '🧑🏾‍🫯‍🧑🏼' => 'brydere: medium til mørk teint og medium til lys teint',
+    '🧑🏾‍🫯‍🧑🏽' => 'brydere: medium til mørk teint og medium teint',
+    '🧑🏾‍🫯‍🧑🏿' => 'brydere: medium til mørk teint og mørk teint',
+    '🧑🏿‍🫯‍🧑🏻' => 'brydere: mørk teint og lys teint',
+    '🧑🏿‍🫯‍🧑🏼' => 'brydere: mørk teint og medium til lys teint',
+    '🧑🏿‍🫯‍🧑🏽' => 'brydere: mørk teint og medium teint',
+    '🧑🏿‍🫯‍🧑🏾' => 'brydere: mørk teint og medium til mørk teint',
     '🧑🏻‍❤‍🧑🏼' => 'par med hjerte: voksen, voksen, lys teint og medium til lys teint',
     '🧑🏻‍❤‍🧑🏽' => 'par med hjerte: voksen, voksen, lys teint og medium teint',
     '🧑🏻‍❤‍🧑🏾' => 'par med hjerte: voksen, voksen, lys teint og medium til mørk teint',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par med hjerte: voksen, voksen, mørk teint og medium til lys teint',
     '🧑🏿‍❤‍🧑🏽' => 'par med hjerte: voksen, voksen, mørk teint og medium teint',
     '🧑🏿‍❤‍🧑🏾' => 'par med hjerte: voksen, voksen, mørk teint og medium til mørk teint',
+    '🧑🏻‍🐰‍🧑🏼' => 'personer med kaninører: lys teint og medium til lys teint',
+    '🧑🏻‍🐰‍🧑🏽' => 'personer med kaninører: lys teint og medium teint',
+    '🧑🏻‍🐰‍🧑🏾' => 'personer med kaninører: lys teint og medium til mørk teint',
+    '🧑🏻‍🐰‍🧑🏿' => 'personer med kaninører: lys teint og mørk teint',
+    '🧑🏼‍🐰‍🧑🏻' => 'personer med kaninører: medium til lys teint og lys teint',
+    '🧑🏼‍🐰‍🧑🏽' => 'personer med kaninører: medium til lys teint og medium teint',
+    '🧑🏼‍🐰‍🧑🏾' => 'personer med kaninører: medium til lys teint og medium til mørk teint',
+    '🧑🏼‍🐰‍🧑🏿' => 'personer med kaninører: medium til lys teint og mørk teint',
+    '🧑🏽‍🐰‍🧑🏻' => 'personer med kaninører: medium teint og lys teint',
+    '🧑🏽‍🐰‍🧑🏼' => 'personer med kaninører: medium teint og medium til lys teint',
+    '🧑🏽‍🐰‍🧑🏾' => 'personer med kaninører: medium teint og medium til mørk teint',
+    '🧑🏽‍🐰‍🧑🏿' => 'personer med kaninører: medium teint og mørk teint',
+    '🧑🏾‍🐰‍🧑🏻' => 'personer med kaninører: medium til mørk teint og lys teint',
+    '🧑🏾‍🐰‍🧑🏼' => 'personer med kaninører: medium til mørk teint og medium til lys teint',
+    '🧑🏾‍🐰‍🧑🏽' => 'personer med kaninører: medium til mørk teint og medium teint',
+    '🧑🏾‍🐰‍🧑🏿' => 'personer med kaninører: medium til mørk teint og mørk teint',
+    '🧑🏿‍🐰‍🧑🏻' => 'personer med kaninører: mørk teint og lys teint',
+    '🧑🏿‍🐰‍🧑🏼' => 'personer med kaninører: mørk teint og medium til lys teint',
+    '🧑🏿‍🐰‍🧑🏽' => 'personer med kaninører: mørk teint og medium teint',
+    '🧑🏿‍🐰‍🧑🏾' => 'personer med kaninører: mørk teint og medium til mørk teint',
+    '👨🏻‍🫯‍👨🏼' => 'mandlige brydere: lys teint og medium til lys teint',
+    '👨🏻‍🫯‍👨🏽' => 'mandlige brydere: lys teint og medium teint',
+    '👨🏻‍🫯‍👨🏾' => 'mandlige brydere: lys teint og medium til mørk teint',
+    '👨🏻‍🫯‍👨🏿' => 'mandlige brydere: lys teint og mørk teint',
+    '👨🏼‍🫯‍👨🏻' => 'mandlige brydere: medium til lys teint og lys teint',
+    '👨🏼‍🫯‍👨🏽' => 'mandlige brydere: medium til lys teint og medium teint',
+    '👨🏼‍🫯‍👨🏾' => 'mandlige brydere: medium til lys teint og medium til mørk teint',
+    '👨🏼‍🫯‍👨🏿' => 'mandlige brydere: medium til lys teint og mørk teint',
+    '👨🏽‍🫯‍👨🏻' => 'mandlige brydere: medium teint og lys teint',
+    '👨🏽‍🫯‍👨🏼' => 'mandlige brydere: medium teint og medium til lys teint',
+    '👨🏽‍🫯‍👨🏾' => 'mandlige brydere: medium teint og medium til mørk teint',
+    '👨🏽‍🫯‍👨🏿' => 'mandlige brydere: medium teint og mørk teint',
+    '👨🏾‍🫯‍👨🏻' => 'mandlige brydere: medium til mørk teint og lys teint',
+    '👨🏾‍🫯‍👨🏼' => 'mandlige brydere: medium til mørk teint og medium til lys teint',
+    '👨🏾‍🫯‍👨🏽' => 'mandlige brydere: medium til mørk teint og medium teint',
+    '👨🏾‍🫯‍👨🏿' => 'mandlige brydere: medium til mørk teint og mørk teint',
+    '👨🏿‍🫯‍👨🏻' => 'mandlige brydere: mørk teint og lys teint',
+    '👨🏿‍🫯‍👨🏼' => 'mandlige brydere: mørk teint og medium til lys teint',
+    '👨🏿‍🫯‍👨🏽' => 'mandlige brydere: mørk teint og medium teint',
+    '👨🏿‍🫯‍👨🏾' => 'mandlige brydere: mørk teint og medium til mørk teint',
     '👨🏻‍❤‍👨🏻' => 'par med hjerte: mand, mand og lys teint',
     '👨🏻‍❤‍👨🏼' => 'par med hjerte: mand, mand, lys teint og medium til lys teint',
     '👨🏻‍❤‍👨🏽' => 'par med hjerte: mand, mand, lys teint og medium teint',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'par med hjerte: mand, mand, mørk teint og medium teint',
     '👨🏿‍❤‍👨🏾' => 'par med hjerte: mand, mand, mørk teint og medium til mørk teint',
     '👨🏿‍❤‍👨🏿' => 'par med hjerte: mand, mand og mørk teint',
+    '👨🏻‍🐰‍👨🏼' => 'mænd med kaninører: lys teint og medium til lys teint',
+    '👨🏻‍🐰‍👨🏽' => 'mænd med kaninører: lys teint og medium teint',
+    '👨🏻‍🐰‍👨🏾' => 'mænd med kaninører: lys teint og medium til mørk teint',
+    '👨🏻‍🐰‍👨🏿' => 'mænd med kaninører: lys teint og mørk teint',
+    '👨🏼‍🐰‍👨🏻' => 'mænd med kaninører: medium til lys teint og lys teint',
+    '👨🏼‍🐰‍👨🏽' => 'mænd med kaninører: medium til lys teint og medium teint',
+    '👨🏼‍🐰‍👨🏾' => 'mænd med kaninører: medium til lys teint og medium til mørk teint',
+    '👨🏼‍🐰‍👨🏿' => 'mænd med kaninører: medium til lys teint og mørk teint',
+    '👨🏽‍🐰‍👨🏻' => 'mænd med kaninører: medium teint og lys teint',
+    '👨🏽‍🐰‍👨🏼' => 'mænd med kaninører: medium teint og medium til lys teint',
+    '👨🏽‍🐰‍👨🏾' => 'mænd med kaninører: medium teint og medium til mørk teint',
+    '👨🏽‍🐰‍👨🏿' => 'mænd med kaninører: medium teint og mørk teint',
+    '👨🏾‍🐰‍👨🏻' => 'mænd med kaninører: medium til mørk teint og lys teint',
+    '👨🏾‍🐰‍👨🏼' => 'mænd med kaninører: medium til mørk teint og medium til lys teint',
+    '👨🏾‍🐰‍👨🏽' => 'mænd med kaninører: medium til mørk teint og medium teint',
+    '👨🏾‍🐰‍👨🏿' => 'mænd med kaninører: medium til mørk teint og mørk teint',
+    '👨🏿‍🐰‍👨🏻' => 'mænd med kaninører: mørk teint og lys teint',
+    '👨🏿‍🐰‍👨🏼' => 'mænd med kaninører: mørk teint og medium til lys teint',
+    '👨🏿‍🐰‍👨🏽' => 'mænd med kaninører: mørk teint og medium teint',
+    '👨🏿‍🐰‍👨🏾' => 'mænd med kaninører: mørk teint og medium til mørk teint',
+    '👩🏻‍🫯‍👩🏼' => 'kvindelige brydere: lys teint og medium til lys teint',
+    '👩🏻‍🫯‍👩🏽' => 'kvindelige brydere: lys teint og medium teint',
+    '👩🏻‍🫯‍👩🏾' => 'kvindelige brydere: lys teint og medium til mørk teint',
+    '👩🏻‍🫯‍👩🏿' => 'kvindelige brydere: lys teint og mørk teint',
+    '👩🏼‍🫯‍👩🏻' => 'kvindelige brydere: medium til lys teint og lys teint',
+    '👩🏼‍🫯‍👩🏽' => 'kvindelige brydere: medium til lys teint og medium teint',
+    '👩🏼‍🫯‍👩🏾' => 'kvindelige brydere: medium til lys teint og medium til mørk teint',
+    '👩🏼‍🫯‍👩🏿' => 'kvindelige brydere: medium til lys teint og mørk teint',
+    '👩🏽‍🫯‍👩🏻' => 'kvindelige brydere: medium teint og lys teint',
+    '👩🏽‍🫯‍👩🏼' => 'kvindelige brydere: medium teint og medium til lys teint',
+    '👩🏽‍🫯‍👩🏾' => 'kvindelige brydere: medium teint og medium til mørk teint',
+    '👩🏽‍🫯‍👩🏿' => 'kvindelige brydere: medium teint og mørk teint',
+    '👩🏾‍🫯‍👩🏻' => 'kvindelige brydere: medium til mørk teint og lys teint',
+    '👩🏾‍🫯‍👩🏼' => 'kvindelige brydere: medium til mørk teint og medium til lys teint',
+    '👩🏾‍🫯‍👩🏽' => 'kvindelige brydere: medium til mørk teint og medium teint',
+    '👩🏾‍🫯‍👩🏿' => 'kvindelige brydere: medium til mørk teint og mørk teint',
+    '👩🏿‍🫯‍👩🏻' => 'kvindelige brydere: mørk teint og lys teint',
+    '👩🏿‍🫯‍👩🏼' => 'kvindelige brydere: mørk teint og medium til lys teint',
+    '👩🏿‍🫯‍👩🏽' => 'kvindelige brydere: mørk teint og medium teint',
+    '👩🏿‍🫯‍👩🏾' => 'kvindelige brydere: mørk teint og medium til mørk teint',
     '👩🏻‍❤‍👨🏻' => 'par med hjerte: kvinde, mand og lys teint',
     '👩🏻‍❤‍👨🏼' => 'par med hjerte: kvinde, mand, lys teint og medium til lys teint',
     '👩🏻‍❤‍👨🏽' => 'par med hjerte: kvinde, mand, lys teint og medium teint',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'par med hjerte: kvinde, kvinde, mørk teint og medium teint',
     '👩🏿‍❤‍👩🏾' => 'par med hjerte: kvinde, kvinde, mørk teint og medium til mørk teint',
     '👩🏿‍❤‍👩🏿' => 'par med hjerte: kvinde, kvinde og mørk teint',
+    '👩🏻‍🐰‍👩🏼' => 'kvinder med kaninører: lys teint og medium til lys teint',
+    '👩🏻‍🐰‍👩🏽' => 'kvinder med kaninører: lys teint og medium teint',
+    '👩🏻‍🐰‍👩🏾' => 'kvinder med kaninører: lys teint og medium til mørk teint',
+    '👩🏻‍🐰‍👩🏿' => 'kvinder med kaninører: lys teint og mørk teint',
+    '👩🏼‍🐰‍👩🏻' => 'kvinder med kaninører: medium til lys teint og lys teint',
+    '👩🏼‍🐰‍👩🏽' => 'kvinder med kaninører: medium til lys teint og medium teint',
+    '👩🏼‍🐰‍👩🏾' => 'kvinder med kaninører: medium til lys teint og medium til mørk teint',
+    '👩🏼‍🐰‍👩🏿' => 'kvinder med kaninører: medium til lys teint og mørk teint',
+    '👩🏽‍🐰‍👩🏻' => 'kvinder med kaninører: medium teint og lys teint',
+    '👩🏽‍🐰‍👩🏼' => 'kvinder med kaninører: medium teint og medium til lys teint',
+    '👩🏽‍🐰‍👩🏾' => 'kvinder med kaninører: medium teint og medium til mørk teint',
+    '👩🏽‍🐰‍👩🏿' => 'kvinder med kaninører: medium teint og mørk teint',
+    '👩🏾‍🐰‍👩🏻' => 'kvinder med kaninører: medium til mørk teint og lys teint',
+    '👩🏾‍🐰‍👩🏼' => 'kvinder med kaninører: medium til mørk teint og medium til lys teint',
+    '👩🏾‍🐰‍👩🏽' => 'kvinder med kaninører: medium til mørk teint og medium teint',
+    '👩🏾‍🐰‍👩🏿' => 'kvinder med kaninører: medium til mørk teint og mørk teint',
+    '👩🏿‍🐰‍👩🏻' => 'kvinder med kaninører: mørk teint og lys teint',
+    '👩🏿‍🐰‍👩🏼' => 'kvinder med kaninører: mørk teint og medium til lys teint',
+    '👩🏿‍🐰‍👩🏽' => 'kvinder med kaninører: mørk teint og medium teint',
+    '👩🏿‍🐰‍👩🏾' => 'kvinder med kaninører: mørk teint og medium til mørk teint',
     '🧑🏻‍🤝‍🧑🏻' => 'personer hånd i hånd: lys teint',
     '🧑🏻‍🤝‍🧑🏼' => 'personer hånd i hånd: lys teint og medium til lys teint',
     '🧑🏻‍🤝‍🧑🏽' => 'personer hånd i hånd: lys teint og medium teint',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'familie: kvinde, kvinde, dreng og dreng',
     '👩‍👩‍👧‍👧' => 'familie: kvinde, kvinde, pige og pige',
     '🧑‍🧑‍🧒‍🧒' => 'familie: voksen, voksen, barn, barn',
-    '🚶🏻‍♀‍➡' => 'kvinde går mod højre',
-    '🚶🏼‍♀‍➡' => 'kvinde går mod højre',
-    '🚶🏽‍♀‍➡' => 'kvinde går mod højre',
-    '🚶🏾‍♀‍➡' => 'kvinde går mod højre',
-    '🚶🏿‍♀‍➡' => 'kvinde går mod højre',
-    '🚶🏻‍♂‍➡' => 'mand går mod højre',
-    '🚶🏼‍♂‍➡' => 'mand går mod højre',
-    '🚶🏽‍♂‍➡' => 'mand går mod højre',
-    '🚶🏾‍♂‍➡' => 'mand går mod højre',
-    '🚶🏿‍♂‍➡' => 'mand går mod højre',
-    '🧎🏻‍♀‍➡' => 'knælende kvinde mod højre',
-    '🧎🏼‍♀‍➡' => 'knælende kvinde mod højre',
-    '🧎🏽‍♀‍➡' => 'knælende kvinde mod højre',
-    '🧎🏾‍♀‍➡' => 'knælende kvinde mod højre',
-    '🧎🏿‍♀‍➡' => 'knælende kvinde mod højre',
-    '🧎🏻‍♂‍➡' => 'knælende mand mod højre',
-    '🧎🏼‍♂‍➡' => 'knælende mand mod højre',
-    '🧎🏽‍♂‍➡' => 'knælende mand mod højre',
-    '🧎🏾‍♂‍➡' => 'knælende mand mod højre',
-    '🧎🏿‍♂‍➡' => 'knælende mand mod højre',
-    '🧑🏻‍🦯‍➡' => 'person med blindestok mod højre',
-    '🧑🏼‍🦯‍➡' => 'person med blindestok mod højre',
-    '🧑🏽‍🦯‍➡' => 'person med blindestok mod højre',
-    '🧑🏾‍🦯‍➡' => 'person med blindestok mod højre',
-    '🧑🏿‍🦯‍➡' => 'person med blindestok mod højre',
-    '👨🏻‍🦯‍➡' => 'mand med blindestok mod højre',
-    '👨🏼‍🦯‍➡' => 'mand med blindestok mod højre',
-    '👨🏽‍🦯‍➡' => 'mand med blindestok mod højre',
-    '👨🏾‍🦯‍➡' => 'mand med blindestok mod højre',
-    '👨🏿‍🦯‍➡' => 'mand med blindestok mod højre',
-    '👩🏻‍🦯‍➡' => 'kvinde med blindestok mod højre',
-    '👩🏼‍🦯‍➡' => 'kvinde med blindestok mod højre',
-    '👩🏽‍🦯‍➡' => 'kvinde med blindestok mod højre',
-    '👩🏾‍🦯‍➡' => 'kvinde med blindestok mod højre',
-    '👩🏿‍🦯‍➡' => 'kvinde med blindestok mod højre',
-    '🧑🏻‍🦼‍➡' => 'person i elkørestol mod højre',
-    '🧑🏼‍🦼‍➡' => 'person i elkørestol mod højre',
-    '🧑🏽‍🦼‍➡' => 'person i elkørestol mod højre',
-    '🧑🏾‍🦼‍➡' => 'person i elkørestol mod højre',
-    '🧑🏿‍🦼‍➡' => 'person i elkørestol mod højre',
-    '👨🏻‍🦼‍➡' => 'mand i elektrisk kørestol mod højre',
-    '👨🏼‍🦼‍➡' => 'mand i elektrisk kørestol mod højre',
-    '👨🏽‍🦼‍➡' => 'mand i elektrisk kørestol mod højre',
-    '👨🏾‍🦼‍➡' => 'mand i elektrisk kørestol mod højre',
-    '👨🏿‍🦼‍➡' => 'mand i elektrisk kørestol mod højre',
-    '👩🏻‍🦼‍➡' => 'kvinde i elektrisk kørestol mod højre',
-    '👩🏼‍🦼‍➡' => 'kvinde i elektrisk kørestol mod højre',
-    '👩🏽‍🦼‍➡' => 'kvinde i elektrisk kørestol mod højre',
-    '👩🏾‍🦼‍➡' => 'kvinde i elektrisk kørestol mod højre',
-    '👩🏿‍🦼‍➡' => 'kvinde i elektrisk kørestol mod højre',
-    '🧑🏻‍🦽‍➡' => 'person i manuel kørestol mod højre',
-    '🧑🏼‍🦽‍➡' => 'person i manuel kørestol mod højre',
-    '🧑🏽‍🦽‍➡' => 'person i manuel kørestol mod højre',
-    '🧑🏾‍🦽‍➡' => 'person i manuel kørestol mod højre',
-    '🧑🏿‍🦽‍➡' => 'person i manuel kørestol mod højre',
-    '👨🏻‍🦽‍➡' => 'mand i manuel kørestol mod højre',
-    '👨🏼‍🦽‍➡' => 'mand i manuel kørestol mod højre',
-    '👨🏽‍🦽‍➡' => 'mand i manuel kørestol mod højre',
-    '👨🏾‍🦽‍➡' => 'mand i manuel kørestol mod højre',
-    '👨🏿‍🦽‍➡' => 'mand i manuel kørestol mod højre',
-    '👩🏻‍🦽‍➡' => 'kvinde i manuel kørestol mod højre',
-    '👩🏼‍🦽‍➡' => 'kvinde i manuel kørestol mod højre',
-    '👩🏽‍🦽‍➡' => 'kvinde i manuel kørestol mod højre',
-    '👩🏾‍🦽‍➡' => 'kvinde i manuel kørestol mod højre',
-    '👩🏿‍🦽‍➡' => 'kvinde i manuel kørestol mod højre',
-    '🏃🏻‍♀‍➡' => 'kvinde løber mod højre',
-    '🏃🏼‍♀‍➡' => 'kvinde løber mod højre',
-    '🏃🏽‍♀‍➡' => 'kvinde løber mod højre',
-    '🏃🏾‍♀‍➡' => 'kvinde løber mod højre',
-    '🏃🏿‍♀‍➡' => 'kvinde løber mod højre',
-    '🏃🏻‍♂‍➡' => 'mand løber mod højre',
-    '🏃🏼‍♂‍➡' => 'mand løber mod højre',
-    '🏃🏽‍♂‍➡' => 'mand løber mod højre',
-    '🏃🏾‍♂‍➡' => 'mand løber mod højre',
-    '🏃🏿‍♂‍➡' => 'mand løber mod højre',
+    '🚶🏻‍♀‍➡' => 'kvinde går: lys teint og mod højre',
+    '🚶🏼‍♀‍➡' => 'kvinde går: medium til lys teint og mod højre',
+    '🚶🏽‍♀‍➡' => 'kvinde går: medium teint og mod højre',
+    '🚶🏾‍♀‍➡' => 'kvinde går: medium til mørk teint og mod højre',
+    '🚶🏿‍♀‍➡' => 'kvinde går: mørk teint og mod højre',
+    '🚶🏻‍♂‍➡' => 'mand går: lys teint og mod højre',
+    '🚶🏼‍♂‍➡' => 'mand går: medium til lys teint og mod højre',
+    '🚶🏽‍♂‍➡' => 'mand går: medium teint og mod højre',
+    '🚶🏾‍♂‍➡' => 'mand går: medium til mørk teint og mod højre',
+    '🚶🏿‍♂‍➡' => 'mand går: mørk teint og mod højre',
+    '🧎🏻‍♀‍➡' => 'knælende kvinde: lys teint og mod højre',
+    '🧎🏼‍♀‍➡' => 'knælende kvinde: medium til lys teint og mod højre',
+    '🧎🏽‍♀‍➡' => 'knælende kvinde: medium teint og mod højre',
+    '🧎🏾‍♀‍➡' => 'knælende kvinde: medium til mørk teint og mod højre',
+    '🧎🏿‍♀‍➡' => 'knælende kvinde: mørk teint og mod højre',
+    '🧎🏻‍♂‍➡' => 'knælende mand: lys teint og mod højre',
+    '🧎🏼‍♂‍➡' => 'knælende mand: medium til lys teint og mod højre',
+    '🧎🏽‍♂‍➡' => 'knælende mand: medium teint og mod højre',
+    '🧎🏾‍♂‍➡' => 'knælende mand: medium til mørk teint og mod højre',
+    '🧎🏿‍♂‍➡' => 'knælende mand: mørk teint og mod højre',
+    '🧑🏻‍🦯‍➡' => 'person med blindestok: lys teint og mod højre',
+    '🧑🏼‍🦯‍➡' => 'person med blindestok: medium til lys teint og mod højre',
+    '🧑🏽‍🦯‍➡' => 'person med blindestok: medium teint og mod højre',
+    '🧑🏾‍🦯‍➡' => 'person med blindestok: medium til mørk teint og mod højre',
+    '🧑🏿‍🦯‍➡' => 'person med blindestok: mørk teint og mod højre',
+    '👨🏻‍🦯‍➡' => 'mand med blindestok: lys teint og mod højre',
+    '👨🏼‍🦯‍➡' => 'mand med blindestok: medium til lys teint og mod højre',
+    '👨🏽‍🦯‍➡' => 'mand med blindestok: medium teint og mod højre',
+    '👨🏾‍🦯‍➡' => 'mand med blindestok: medium til mørk teint og mod højre',
+    '👨🏿‍🦯‍➡' => 'mand med blindestok: mørk teint og mod højre',
+    '👩🏻‍🦯‍➡' => 'kvinde med blindestok: lys teint og mod højre',
+    '👩🏼‍🦯‍➡' => 'kvinde med blindestok: medium til lys teint og mod højre',
+    '👩🏽‍🦯‍➡' => 'kvinde med blindestok: medium teint og mod højre',
+    '👩🏾‍🦯‍➡' => 'kvinde med blindestok: medium til mørk teint og mod højre',
+    '👩🏿‍🦯‍➡' => 'kvinde med blindestok: mørk teint og mod højre',
+    '🧑🏻‍🦼‍➡' => 'person i elkørestol: lys teint og mod højre',
+    '🧑🏼‍🦼‍➡' => 'person i elkørestol: medium til lys teint og mod højre',
+    '🧑🏽‍🦼‍➡' => 'person i elkørestol: medium teint og mod højre',
+    '🧑🏾‍🦼‍➡' => 'person i elkørestol: medium til mørk teint og mod højre',
+    '🧑🏿‍🦼‍➡' => 'person i elkørestol: mørk teint og mod højre',
+    '👨🏻‍🦼‍➡' => 'mand i elektrisk kørestol: lys teint og mod højre',
+    '👨🏼‍🦼‍➡' => 'mand i elektrisk kørestol: medium til lys teint og mod højre',
+    '👨🏽‍🦼‍➡' => 'mand i elektrisk kørestol: medium teint og mod højre',
+    '👨🏾‍🦼‍➡' => 'mand i elektrisk kørestol: medium til mørk teint og mod højre',
+    '👨🏿‍🦼‍➡' => 'mand i elektrisk kørestol: mørk teint og mod højre',
+    '👩🏻‍🦼‍➡' => 'kvinde i elektrisk kørestol: lys teint og mod højre',
+    '👩🏼‍🦼‍➡' => 'kvinde i elektrisk kørestol: medium til lys teint og mod højre',
+    '👩🏽‍🦼‍➡' => 'kvinde i elektrisk kørestol: medium teint og mod højre',
+    '👩🏾‍🦼‍➡' => 'kvinde i elektrisk kørestol: medium til mørk teint og mod højre',
+    '👩🏿‍🦼‍➡' => 'kvinde i elektrisk kørestol: mørk teint og mod højre',
+    '🧑🏻‍🦽‍➡' => 'person i manuel kørestol: lys teint og mod højre',
+    '🧑🏼‍🦽‍➡' => 'person i manuel kørestol: medium til lys teint og mod højre',
+    '🧑🏽‍🦽‍➡' => 'person i manuel kørestol: medium teint og mod højre',
+    '🧑🏾‍🦽‍➡' => 'person i manuel kørestol: medium til mørk teint og mod højre',
+    '🧑🏿‍🦽‍➡' => 'person i manuel kørestol: mørk teint og mod højre',
+    '👨🏻‍🦽‍➡' => 'mand i manuel kørestol: lys teint og mod højre',
+    '👨🏼‍🦽‍➡' => 'mand i manuel kørestol: medium til lys teint og mod højre',
+    '👨🏽‍🦽‍➡' => 'mand i manuel kørestol: medium teint og mod højre',
+    '👨🏾‍🦽‍➡' => 'mand i manuel kørestol: medium til mørk teint og mod højre',
+    '👨🏿‍🦽‍➡' => 'mand i manuel kørestol: mørk teint og mod højre',
+    '👩🏻‍🦽‍➡' => 'kvinde i manuel kørestol: lys teint og mod højre',
+    '👩🏼‍🦽‍➡' => 'kvinde i manuel kørestol: medium til lys teint og mod højre',
+    '👩🏽‍🦽‍➡' => 'kvinde i manuel kørestol: medium teint og mod højre',
+    '👩🏾‍🦽‍➡' => 'kvinde i manuel kørestol: medium til mørk teint og mod højre',
+    '👩🏿‍🦽‍➡' => 'kvinde i manuel kørestol: mørk teint og mod højre',
+    '🏃🏻‍♀‍➡' => 'kvinde løber: lys teint og mod højre',
+    '🏃🏼‍♀‍➡' => 'kvinde løber: medium til lys teint og mod højre',
+    '🏃🏽‍♀‍➡' => 'kvinde løber: medium teint og mod højre',
+    '🏃🏾‍♀‍➡' => 'kvinde løber: medium til mørk teint og mod højre',
+    '🏃🏿‍♀‍➡' => 'kvinde løber: mørk teint og mod højre',
+    '🏃🏻‍♂‍➡' => 'mand løber: lys teint og mod højre',
+    '🏃🏼‍♂‍➡' => 'mand løber: medium til lys teint og mod højre',
+    '🏃🏽‍♂‍➡' => 'mand løber: medium teint og mod højre',
+    '🏃🏾‍♂‍➡' => 'mand løber: medium til mørk teint og mod højre',
+    '🏃🏿‍♂‍➡' => 'mand løber: mørk teint og mod højre',
     '🫱🏻‍🫲🏼' => 'håndtryk: lys teint og medium til lys teint',
     '🫱🏻‍🫲🏽' => 'håndtryk: lys teint og medium teint',
     '🫱🏻‍🫲🏾' => 'håndtryk: lys teint og medium til mørk teint',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'håndtryk: mørk teint og medium til lys teint',
     '🫱🏿‍🫲🏽' => 'håndtryk: mørk teint og medium teint',
     '🫱🏿‍🫲🏾' => 'håndtryk: mørk teint og medium til mørk teint',
-    '🚶‍♀‍➡' => 'kvinde går mod højre',
-    '🚶‍♂‍➡' => 'mand går mod højre',
-    '🧎‍♀‍➡' => 'knælende kvinde mod højre',
-    '🧎‍♂‍➡' => 'knælende mand mod højre',
-    '🧑‍🦯‍➡' => 'person med blindestok mod højre',
-    '👨‍🦯‍➡' => 'mand med blindestok mod højre',
-    '👩‍🦯‍➡' => 'kvinde med blindestok mod højre',
-    '🧑‍🦼‍➡' => 'person i elkørestol mod højre',
-    '👨‍🦼‍➡' => 'mand i elektrisk kørestol mod højre',
-    '👩‍🦼‍➡' => 'kvinde i elektrisk kørestol mod højre',
-    '🧑‍🦽‍➡' => 'person i manuel kørestol mod højre',
-    '👨‍🦽‍➡' => 'mand i manuel kørestol mod højre',
-    '👩‍🦽‍➡' => 'kvinde i manuel kørestol mod højre',
-    '🏃‍♀‍➡' => 'kvinde løber mod højre',
-    '🏃‍♂‍➡' => 'mand løber mod højre',
+    '🚶‍♀‍➡' => 'kvinde går: mod højre',
+    '🚶‍♂‍➡' => 'mand går: mod højre',
+    '🧎‍♀‍➡' => 'knælende kvinde: mod højre',
+    '🧎‍♂‍➡' => 'knælende mand: mod højre',
+    '🧑‍🦯‍➡' => 'person med blindestok: mod højre',
+    '👨‍🦯‍➡' => 'mand med blindestok: mod højre',
+    '👩‍🦯‍➡' => 'kvinde med blindestok: mod højre',
+    '🧑‍🦼‍➡' => 'person i elkørestol: mod højre',
+    '👨‍🦼‍➡' => 'mand i elektrisk kørestol: mod højre',
+    '👩‍🦼‍➡' => 'kvinde i elektrisk kørestol: mod højre',
+    '🧑‍🦽‍➡' => 'person i manuel kørestol: mod højre',
+    '👨‍🦽‍➡' => 'mand i manuel kørestol: mod højre',
+    '👩‍🦽‍➡' => 'kvinde i manuel kørestol: mod højre',
+    '🏃‍♀‍➡' => 'kvinde løber: mod højre',
+    '🏃‍♂‍➡' => 'mand løber: mod højre',
     '👩‍❤‍👨' => 'par med hjerte: kvinde og mand',
     '👨‍❤‍👨' => 'par med hjerte: mand og mand',
     '👩‍❤‍👩' => 'par med hjerte: kvinde og kvinde',
@@ -437,6 +557,11 @@
     '🧑🏽‍🦲' => 'voksen: medium teint og skaldet',
     '🧑🏾‍🦲' => 'voksen: medium til mørk teint og skaldet',
     '🧑🏿‍🦲' => 'voksen: mørk teint og skaldet',
+    '🧑🏻‍🩰' => 'balletdanser: lys teint',
+    '🧑🏼‍🩰' => 'balletdanser: medium til lys teint',
+    '🧑🏽‍🩰' => 'balletdanser: medium teint',
+    '🧑🏾‍🩰' => 'balletdanser: medium til mørk teint',
+    '🧑🏿‍🩰' => 'balletdanser: mørk teint',
     '🧔🏻‍♂' => 'mand med skæg: lys teint',
     '🧔🏼‍♂' => 'mand med skæg: medium til lys teint',
     '🧔🏽‍♂' => 'mand med skæg: medium teint',
@@ -1027,11 +1152,11 @@
     '🚶🏽‍♀' => 'kvinde går: medium teint',
     '🚶🏾‍♀' => 'kvinde går: medium til mørk teint',
     '🚶🏿‍♀' => 'kvinde går: mørk teint',
-    '🚶🏻‍➡' => 'fodgænger mod højre',
-    '🚶🏼‍➡' => 'fodgænger mod højre',
-    '🚶🏽‍➡' => 'fodgænger mod højre',
-    '🚶🏾‍➡' => 'fodgænger mod højre',
-    '🚶🏿‍➡' => 'fodgænger mod højre',
+    '🚶🏻‍➡' => 'fodgænger: lys teint og mod højre',
+    '🚶🏼‍➡' => 'fodgænger: medium til lys teint og mod højre',
+    '🚶🏽‍➡' => 'fodgænger: medium teint og mod højre',
+    '🚶🏾‍➡' => 'fodgænger: medium til mørk teint og mod højre',
+    '🚶🏿‍➡' => 'fodgænger: mørk teint og mod højre',
     '🧍🏻‍♂' => 'stående mand: lys teint',
     '🧍🏼‍♂' => 'stående mand: medium til lys teint',
     '🧍🏽‍♂' => 'stående mand: medium teint',
@@ -1052,11 +1177,11 @@
     '🧎🏽‍♀' => 'knælende kvinde: medium teint',
     '🧎🏾‍♀' => 'knælende kvinde: medium til mørk teint',
     '🧎🏿‍♀' => 'knælende kvinde: mørk teint',
-    '🧎🏻‍➡' => 'knælende person mod højre',
-    '🧎🏼‍➡' => 'knælende person mod højre',
-    '🧎🏽‍➡' => 'knælende person mod højre',
-    '🧎🏾‍➡' => 'knælende person mod højre',
-    '🧎🏿‍➡' => 'knælende person mod højre',
+    '🧎🏻‍➡' => 'knælende person: lys teint og mod højre',
+    '🧎🏼‍➡' => 'knælende person: medium til lys teint og mod højre',
+    '🧎🏽‍➡' => 'knælende person: medium teint og mod højre',
+    '🧎🏾‍➡' => 'knælende person: medium til mørk teint og mod højre',
+    '🧎🏿‍➡' => 'knælende person: mørk teint og mod højre',
     '🧑🏻‍🦯' => 'person med blindestok: lys teint',
     '🧑🏼‍🦯' => 'person med blindestok: medium til lys teint',
     '🧑🏽‍🦯' => 'person med blindestok: medium teint',
@@ -1112,11 +1237,21 @@
     '🏃🏽‍♀' => 'kvinde løber: medium teint',
     '🏃🏾‍♀' => 'kvinde løber: medium til mørk teint',
     '🏃🏿‍♀' => 'kvinde løber: mørk teint',
-    '🏃🏻‍➡' => 'løber mod højre',
-    '🏃🏼‍➡' => 'løber mod højre',
-    '🏃🏽‍➡' => 'løber mod højre',
-    '🏃🏾‍➡' => 'løber mod højre',
-    '🏃🏿‍➡' => 'løber mod højre',
+    '🏃🏻‍➡' => 'løber: lys teint og mod højre',
+    '🏃🏼‍➡' => 'løber: medium til lys teint og mod højre',
+    '🏃🏽‍➡' => 'løber: medium teint og mod højre',
+    '🏃🏾‍➡' => 'løber: medium til mørk teint og mod højre',
+    '🏃🏿‍➡' => 'løber: mørk teint og mod højre',
+    '👯🏻‍♀' => 'kvinder med kaninører: lys teint',
+    '👯🏼‍♀' => 'kvinder med kaninører: medium til lys teint',
+    '👯🏽‍♀' => 'kvinder med kaninører: medium teint',
+    '👯🏾‍♀' => 'kvinder med kaninører: medium til mørk teint',
+    '👯🏿‍♀' => 'kvinder med kaninører: mørk teint',
+    '👯🏻‍♂' => 'mænd med kaninører: lys teint',
+    '👯🏼‍♂' => 'mænd med kaninører: medium til lys teint',
+    '👯🏽‍♂' => 'mænd med kaninører: medium teint',
+    '👯🏾‍♂' => 'mænd med kaninører: medium til mørk teint',
+    '👯🏿‍♂' => 'mænd med kaninører: mørk teint',
     '🧖🏻‍♂' => 'mand i dampbad: lys teint',
     '🧖🏼‍♂' => 'mand i dampbad: medium til lys teint',
     '🧖🏽‍♂' => 'mand i dampbad: medium teint',
@@ -1227,6 +1362,16 @@
     '🤸🏽‍♀' => 'kvinde slår vejrmøller: medium teint',
     '🤸🏾‍♀' => 'kvinde slår vejrmøller: medium til mørk teint',
     '🤸🏿‍♀' => 'kvinde slår vejrmøller: mørk teint',
+    '🤼🏻‍♀' => 'kvindelige brydere: lys teint',
+    '🤼🏼‍♀' => 'kvindelige brydere: medium til lys teint',
+    '🤼🏽‍♀' => 'kvindelige brydere: medium teint',
+    '🤼🏾‍♀' => 'kvindelige brydere: medium til mørk teint',
+    '🤼🏿‍♀' => 'kvindelige brydere: mørk teint',
+    '🤼🏻‍♂' => 'mandlige brydere: lys teint',
+    '🤼🏼‍♂' => 'mandlige brydere: medium til lys teint',
+    '🤼🏽‍♂' => 'mandlige brydere: medium teint',
+    '🤼🏾‍♂' => 'mandlige brydere: medium til mørk teint',
+    '🤼🏿‍♂' => 'mandlige brydere: mørk teint',
     '🤽🏻‍♂' => 'mandlig vandpolospiller: lys teint',
     '🤽🏼‍♂' => 'mandlig vandpolospiller: medium til lys teint',
     '🤽🏽‍♂' => 'mandlig vandpolospiller: medium teint',
@@ -1279,9 +1424,9 @@
     '👩‍🦱' => 'kvinde: krøllet hår',
     '👩‍🦳' => 'kvinde: hvidt hår',
     '👩‍🦲' => 'kvinde: skaldet',
-    '🚶‍➡' => 'fodgænger mod højre',
-    '🧎‍➡' => 'knælende person mod højre',
-    '🏃‍➡' => 'løber mod højre',
+    '🚶‍➡' => 'fodgænger: mod højre',
+    '🧎‍➡' => 'knælende person: mod højre',
+    '🏃‍➡' => 'løber: mod højre',
     '👨‍👦' => 'familie: mand og dreng',
     '👨‍👧' => 'familie: mand og pige',
     '👩‍👦' => 'familie: kvinde og dreng',
@@ -1422,6 +1567,7 @@
     '👩‍🦽' => 'kvinde i manuel kørestol',
     '🏃‍♂' => 'mand løber',
     '🏃‍♀' => 'kvinde løber',
+    '🧑‍🩰' => 'balletdanser',
     '👯‍♂' => 'mænd med kaninører',
     '👯‍♀' => 'kvinder med kaninører',
     '🧖‍♂' => 'mand i dampbad',
@@ -2003,6 +2149,11 @@
     '🕴🏽' => 'svævende forretningsmand: medium teint',
     '🕴🏾' => 'svævende forretningsmand: medium til mørk teint',
     '🕴🏿' => 'svævende forretningsmand: mørk teint',
+    '👯🏻' => 'personer med kaninører: lys teint',
+    '👯🏼' => 'personer med kaninører: medium til lys teint',
+    '👯🏽' => 'personer med kaninører: medium teint',
+    '👯🏾' => 'personer med kaninører: medium til mørk teint',
+    '👯🏿' => 'personer med kaninører: mørk teint',
     '🧖🏻' => 'person i dampbad: lys teint',
     '🧖🏼' => 'person i dampbad: medium til lys teint',
     '🧖🏽' => 'person i dampbad: medium teint',
@@ -2068,6 +2219,11 @@
     '🤸🏽' => 'person slår vejrmølle: medium teint',
     '🤸🏾' => 'person slår vejrmølle: medium til mørk teint',
     '🤸🏿' => 'person slår vejrmølle: mørk teint',
+    '🤼🏻' => 'brydere: lys teint',
+    '🤼🏼' => 'brydere: medium til lys teint',
+    '🤼🏽' => 'brydere: medium teint',
+    '🤼🏾' => 'brydere: medium til mørk teint',
+    '🤼🏿' => 'brydere: mørk teint',
     '🤽🏻' => 'vandpolospiller: lys teint',
     '🤽🏼' => 'vandpolospiller: medium til lys teint',
     '🤽🏽' => 'vandpolospiller: medium teint',
@@ -2128,13 +2284,6 @@
     '🏽' => 'medium teint',
     '🏾' => 'medium til mørk teint',
     '🏿' => 'mørk teint',
-    '🪉' => 'harpe',
-    '🪏' => 'skovl',
-    '🪾' => 'træ uden blade',
-    '🫆' => 'fingeraftryk',
-    '🫜' => 'rodfrugt',
-    '🫟' => 'klat',
-    '🫩' => 'ansigt med poser under øjnene',
     '😀' => 'grinende ansigt',
     '😃' => 'grinende ansigt med store øjne',
     '😄' => 'grinende ansigt med smilende øjne',
@@ -2188,6 +2337,7 @@
     '😪' => 'søvnigt ansigt',
     '🤤' => 'savlende ansigt',
     '😴' => 'sovende ansigt',
+    '🫩' => 'ansigt med poser under øjnene',
     '😷' => 'ansigt med mundbind',
     '🤒' => 'ansigt med termometer',
     '🤕' => 'ansigt med bandage',
@@ -2214,6 +2364,7 @@
     '😯' => 'tavst ansigt',
     '😲' => 'overrasket ansigt',
     '😳' => 'rødmende ansigt',
+    '🫪' => 'forvrænget ansigt',
     '🥺' => 'bønfaldende ansigt',
     '🥹' => 'ansigt, der holder tårer tilbage',
     '😦' => 'måbende ansigt med åben mund',
@@ -2285,6 +2436,7 @@
     '💋' => 'læbeaftryk',
     '💯' => '100 point',
     '💢' => 'vrede',
+    '🫯' => 'slagsmålssky',
     '💥' => 'kollision',
     '💫' => 'svimmel',
     '💦' => 'sveddråber',
@@ -2408,6 +2560,7 @@
     '🧞' => 'magisk ånd',
     '🧟' => 'zombie',
     '🧌' => 'trold',
+    '🫈' => 'behåret væsen',
     '💆' => 'ansigtsmassage',
     '💇' => 'bliver klippet',
     '🚶' => 'fodgænger',
@@ -2451,6 +2604,7 @@
     '🫂' => 'knus',
     '👪' => 'familie',
     '👣' => 'fodspor',
+    '🫆' => 'fingeraftryk',
     '🦰' => 'rødt hår',
     '🦱' => 'krøllet hår',
     '🦳' => 'hvidt hår',
@@ -2550,6 +2704,7 @@
     '🐳' => 'hval med vandsprøjt',
     '🐋' => 'hval',
     '🐬' => 'delfin',
+    '🫍' => 'spækhugger',
     '🦭' => 'sæl',
     '🐟' => 'fisk',
     '🐠' => 'tropisk fisk',
@@ -2559,6 +2714,11 @@
     '🐚' => 'konkylie',
     '🪸' => 'koral',
     '🪼' => 'gople',
+    '🦀' => 'krabbe',
+    '🦞' => 'hummer',
+    '🦐' => 'reje',
+    '🦑' => 'sprutte',
+    '🦪' => 'østers',
     '🐌' => 'snegl',
     '🦋' => 'sommerfugl',
     '🐛' => 'larve',
@@ -2603,6 +2763,7 @@
     '🪹' => 'tom rede',
     '🪺' => 'rede med æg',
     '🍄' => 'svamp',
+    '🪾' => 'træ uden blade',
     '🍇' => 'vindruer',
     '🍈' => 'melon',
     '🍉' => 'vandmelon',
@@ -2639,6 +2800,7 @@
     '🌰' => 'kastanje',
     '🫚' => 'ingefærrod',
     '🫛' => 'ærtebælg',
+    '🫜' => 'rodfrugt',
     '🍞' => 'brød',
     '🥐' => 'croissant',
     '🥖' => 'flute',
@@ -2690,11 +2852,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'lykkekage',
     '🥡' => 'kinesisk takeaway',
-    '🦀' => 'krabbe',
-    '🦞' => 'hummer',
-    '🦐' => 'reje',
-    '🦑' => 'sprutte',
-    '🦪' => 'østers',
     '🍦' => 'softice',
     '🍧' => 'isdessert',
     '🍨' => 'is',
@@ -2745,6 +2902,7 @@
     '🧭' => 'kompas',
     '🏔' => 'sneklædt bjerg',
     '⛰' => 'bjerg',
+    '🛘' => 'jordskred',
     '🌋' => 'vulkan',
     '🗻' => 'Fuji-bjerget',
     '🏕' => 'camping',
@@ -3105,16 +3263,18 @@
     '🎧' => 'hovedtelefon',
     '📻' => 'radio',
     '🎷' => 'saxofon',
+    '🎺' => 'trompet',
+    '🪊' => 'basun',
     '🪗' => 'akkordeon',
     '🎸' => 'guitar',
     '🎹' => 'klaver',
-    '🎺' => 'trompet',
     '🎻' => 'violin',
     '🪕' => 'banjo',
     '🥁' => 'tromme',
     '🪘' => 'høj tromme',
     '🪇' => 'maracas',
     '🪈' => 'fløjte',
+    '🪉' => 'harpe',
     '📱' => 'mobil',
     '📲' => 'mobil med pil',
     '☎' => 'telefon',
@@ -3168,8 +3328,9 @@
     '📑' => 'faner',
     '🔖' => 'bogmærke',
     '🏷' => 'mærkat',
-    '💰' => 'pengepose',
     '🪙' => 'mønt',
+    '💰' => 'pengepose',
+    '🪎' => 'skattekiste',
     '💴' => 'yenseddel',
     '💵' => 'dollarseddel',
     '💶' => 'euroseddel',
@@ -3252,6 +3413,7 @@
     '🧰' => 'værktøjskasse',
     '🧲' => 'magnet',
     '🪜' => 'stige',
+    '🪏' => 'skovl',
     '⚗' => 'kolbe',
     '🧪' => 'reagensglas',
     '🧫' => 'petriskål',
@@ -3435,6 +3597,7 @@
     '✴' => 'ottetakket stjerne',
     '❇' => 'funkle',
     '™' => 'varemærke',
+    '🫟' => 'klat',
     '🔠' => 'store bogstaver',
     '🔡' => 'små bogstaver',
     '🔢' => 'tal',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-de_ch.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-de_ch.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-de_ch.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-de_ch.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'sich küssendes Paar: Frau, Frau, dunkle Hautfarbe und mittlere Hautfarbe',
     '👩🏿‍❤‍💋‍👩🏾' => 'sich küssendes Paar: Frau, Frau, dunkle Hautfarbe und mitteldunkle Hautfarbe',
     '👩🏿‍❤‍💋‍👩🏿' => 'sich küssendes Paar: Frau, Frau und dunkle Hautfarbe',
+    '🧑🏻‍🫯‍🧑🏼' => 'Ringer(in): helle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏻‍🫯‍🧑🏽' => 'Ringer(in): helle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏻‍🫯‍🧑🏾' => 'Ringer(in): helle Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏻‍🫯‍🧑🏿' => 'Ringer(in): helle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏼‍🫯‍🧑🏻' => 'Ringer(in): mittelhelle Hautfarbe, helle Hautfarbe',
+    '🧑🏼‍🫯‍🧑🏽' => 'Ringer(in): mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏼‍🫯‍🧑🏾' => 'Ringer(in): mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏼‍🫯‍🧑🏿' => 'Ringer(in): mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏽‍🫯‍🧑🏻' => 'Ringer(in): mittlere Hautfarbe, helle Hautfarbe',
+    '🧑🏽‍🫯‍🧑🏼' => 'Ringer(in): mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏽‍🫯‍🧑🏾' => 'Ringer(in): mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏽‍🫯‍🧑🏿' => 'Ringer(in): mittlere Hautfarbe, dunkle Hautfarbe',
+    '🧑🏾‍🫯‍🧑🏻' => 'Ringer(in): mitteldunkle Hautfarbe, helle Hautfarbe',
+    '🧑🏾‍🫯‍🧑🏼' => 'Ringer(in): mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏾‍🫯‍🧑🏽' => 'Ringer(in): mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏾‍🫯‍🧑🏿' => 'Ringer(in): mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏿‍🫯‍🧑🏻' => 'Ringer(in): dunkle Hautfarbe, helle Hautfarbe',
+    '🧑🏿‍🫯‍🧑🏼' => 'Ringer(in): dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏿‍🫯‍🧑🏽' => 'Ringer(in): dunkle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏿‍🫯‍🧑🏾' => 'Ringer(in): dunkle Hautfarbe, mitteldunkle Hautfarbe',
     '🧑🏻‍❤‍🧑🏼' => 'Liebespaar: Person, Person, helle Hautfarbe und mittelhelle Hautfarbe',
     '🧑🏻‍❤‍🧑🏽' => 'Liebespaar: Person, Person, helle Hautfarbe und mittlere Hautfarbe',
     '🧑🏻‍❤‍🧑🏾' => 'Liebespaar: Person, Person, helle Hautfarbe und mitteldunkle Hautfarbe',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'Liebespaar: Person, Person, dunkle Hautfarbe und mittelhelle Hautfarbe',
     '🧑🏿‍❤‍🧑🏽' => 'Liebespaar: Person, Person, dunkle Hautfarbe und mittlere Hautfarbe',
     '🧑🏿‍❤‍🧑🏾' => 'Liebespaar: Person, Person, dunkle Hautfarbe und mitteldunkle Hautfarbe',
+    '🧑🏻‍🐰‍🧑🏼' => 'Personen mit Hasenohren: helle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏻‍🐰‍🧑🏽' => 'Personen mit Hasenohren: helle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏻‍🐰‍🧑🏾' => 'Personen mit Hasenohren: helle Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏻‍🐰‍🧑🏿' => 'Personen mit Hasenohren: helle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏼‍🐰‍🧑🏻' => 'Personen mit Hasenohren: mittelhelle Hautfarbe, helle Hautfarbe',
+    '🧑🏼‍🐰‍🧑🏽' => 'Personen mit Hasenohren: mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏼‍🐰‍🧑🏾' => 'Personen mit Hasenohren: mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏼‍🐰‍🧑🏿' => 'Personen mit Hasenohren: mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏽‍🐰‍🧑🏻' => 'Personen mit Hasenohren: mittlere Hautfarbe, helle Hautfarbe',
+    '🧑🏽‍🐰‍🧑🏼' => 'Personen mit Hasenohren: mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏽‍🐰‍🧑🏾' => 'Personen mit Hasenohren: mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏽‍🐰‍🧑🏿' => 'Personen mit Hasenohren: mittlere Hautfarbe, dunkle Hautfarbe',
+    '🧑🏾‍🐰‍🧑🏻' => 'Personen mit Hasenohren: mitteldunkle Hautfarbe, helle Hautfarbe',
+    '🧑🏾‍🐰‍🧑🏼' => 'Personen mit Hasenohren: mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏾‍🐰‍🧑🏽' => 'Personen mit Hasenohren: mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏾‍🐰‍🧑🏿' => 'Personen mit Hasenohren: mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏿‍🐰‍🧑🏻' => 'Personen mit Hasenohren: dunkle Hautfarbe, helle Hautfarbe',
+    '🧑🏿‍🐰‍🧑🏼' => 'Personen mit Hasenohren: dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏿‍🐰‍🧑🏽' => 'Personen mit Hasenohren: dunkle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏿‍🐰‍🧑🏾' => 'Personen mit Hasenohren: dunkle Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏻‍🫯‍👨🏼' => 'ringende Männer: helle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏻‍🫯‍👨🏽' => 'ringende Männer: helle Hautfarbe, mittlere Hautfarbe',
+    '👨🏻‍🫯‍👨🏾' => 'ringende Männer: helle Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏻‍🫯‍👨🏿' => 'ringende Männer: helle Hautfarbe, dunkle Hautfarbe',
+    '👨🏼‍🫯‍👨🏻' => 'ringende Männer: mittelhelle Hautfarbe, helle Hautfarbe',
+    '👨🏼‍🫯‍👨🏽' => 'ringende Männer: mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '👨🏼‍🫯‍👨🏾' => 'ringende Männer: mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏼‍🫯‍👨🏿' => 'ringende Männer: mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '👨🏽‍🫯‍👨🏻' => 'ringende Männer: mittlere Hautfarbe, helle Hautfarbe',
+    '👨🏽‍🫯‍👨🏼' => 'ringende Männer: mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏽‍🫯‍👨🏾' => 'ringende Männer: mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏽‍🫯‍👨🏿' => 'ringende Männer: mittlere Hautfarbe, dunkle Hautfarbe',
+    '👨🏾‍🫯‍👨🏻' => 'ringende Männer: mitteldunkle Hautfarbe, helle Hautfarbe',
+    '👨🏾‍🫯‍👨🏼' => 'ringende Männer: mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏾‍🫯‍👨🏽' => 'ringende Männer: mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '👨🏾‍🫯‍👨🏿' => 'ringende Männer: mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '👨🏿‍🫯‍👨🏻' => 'ringende Männer: dunkle Hautfarbe, helle Hautfarbe',
+    '👨🏿‍🫯‍👨🏼' => 'ringende Männer: dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏿‍🫯‍👨🏽' => 'ringende Männer: dunkle Hautfarbe, mittlere Hautfarbe',
+    '👨🏿‍🫯‍👨🏾' => 'ringende Männer: dunkle Hautfarbe, mitteldunkle Hautfarbe',
     '👨🏻‍❤‍👨🏻' => 'Liebespaar: Mann, Mann und helle Hautfarbe',
     '👨🏻‍❤‍👨🏼' => 'Liebespaar: Mann, Mann, helle Hautfarbe und mittelhelle Hautfarbe',
     '👨🏻‍❤‍👨🏽' => 'Liebespaar: Mann, Mann, helle Hautfarbe und mittlere Hautfarbe',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'Liebespaar: Mann, Mann, dunkle Hautfarbe und mittlere Hautfarbe',
     '👨🏿‍❤‍👨🏾' => 'Liebespaar: Mann, Mann, dunkle Hautfarbe und mitteldunkle Hautfarbe',
     '👨🏿‍❤‍👨🏿' => 'Liebespaar: Mann, Mann und dunkle Hautfarbe',
+    '👨🏻‍🐰‍👨🏼' => 'Männer mit Hasenohren: helle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏻‍🐰‍👨🏽' => 'Männer mit Hasenohren: helle Hautfarbe, mittlere Hautfarbe',
+    '👨🏻‍🐰‍👨🏾' => 'Männer mit Hasenohren: helle Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏻‍🐰‍👨🏿' => 'Männer mit Hasenohren: helle Hautfarbe, dunkle Hautfarbe',
+    '👨🏼‍🐰‍👨🏻' => 'Männer mit Hasenohren: mittelhelle Hautfarbe, helle Hautfarbe',
+    '👨🏼‍🐰‍👨🏽' => 'Männer mit Hasenohren: mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '👨🏼‍🐰‍👨🏾' => 'Männer mit Hasenohren: mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏼‍🐰‍👨🏿' => 'Männer mit Hasenohren: mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '👨🏽‍🐰‍👨🏻' => 'Männer mit Hasenohren: mittlere Hautfarbe, helle Hautfarbe',
+    '👨🏽‍🐰‍👨🏼' => 'Männer mit Hasenohren: mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏽‍🐰‍👨🏾' => 'Männer mit Hasenohren: mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏽‍🐰‍👨🏿' => 'Männer mit Hasenohren: mittlere Hautfarbe, dunkle Hautfarbe',
+    '👨🏾‍🐰‍👨🏻' => 'Männer mit Hasenohren: mitteldunkle Hautfarbe, helle Hautfarbe',
+    '👨🏾‍🐰‍👨🏼' => 'Männer mit Hasenohren: mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏾‍🐰‍👨🏽' => 'Männer mit Hasenohren: mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '👨🏾‍🐰‍👨🏿' => 'Männer mit Hasenohren: mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '👨🏿‍🐰‍👨🏻' => 'Männer mit Hasenohren: dunkle Hautfarbe, helle Hautfarbe',
+    '👨🏿‍🐰‍👨🏼' => 'Männer mit Hasenohren: dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏿‍🐰‍👨🏽' => 'Männer mit Hasenohren: dunkle Hautfarbe, mittlere Hautfarbe',
+    '👨🏿‍🐰‍👨🏾' => 'Männer mit Hasenohren: dunkle Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏻‍🫯‍👩🏼' => 'ringende Frauen: helle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏻‍🫯‍👩🏽' => 'ringende Frauen: helle Hautfarbe, mittlere Hautfarbe',
+    '👩🏻‍🫯‍👩🏾' => 'ringende Frauen: helle Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏻‍🫯‍👩🏿' => 'ringende Frauen: helle Hautfarbe, dunkle Hautfarbe',
+    '👩🏼‍🫯‍👩🏻' => 'ringende Frauen: mittelhelle Hautfarbe, helle Hautfarbe',
+    '👩🏼‍🫯‍👩🏽' => 'ringende Frauen: mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '👩🏼‍🫯‍👩🏾' => 'ringende Frauen: mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏼‍🫯‍👩🏿' => 'ringende Frauen: mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '👩🏽‍🫯‍👩🏻' => 'ringende Frauen: mittlere Hautfarbe, helle Hautfarbe',
+    '👩🏽‍🫯‍👩🏼' => 'ringende Frauen: mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏽‍🫯‍👩🏾' => 'ringende Frauen: mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏽‍🫯‍👩🏿' => 'ringende Frauen: mittlere Hautfarbe, dunkle Hautfarbe',
+    '👩🏾‍🫯‍👩🏻' => 'ringende Frauen: mitteldunkle Hautfarbe, helle Hautfarbe',
+    '👩🏾‍🫯‍👩🏼' => 'ringende Frauen: mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏾‍🫯‍👩🏽' => 'ringende Frauen: mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '👩🏾‍🫯‍👩🏿' => 'ringende Frauen: mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '👩🏿‍🫯‍👩🏻' => 'ringende Frauen: dunkle Hautfarbe, helle Hautfarbe',
+    '👩🏿‍🫯‍👩🏼' => 'ringende Frauen: dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏿‍🫯‍👩🏽' => 'ringende Frauen: dunkle Hautfarbe, mittlere Hautfarbe',
+    '👩🏿‍🫯‍👩🏾' => 'ringende Frauen: dunkle Hautfarbe, mitteldunkle Hautfarbe',
     '👩🏻‍❤‍👨🏻' => 'Liebespaar: Frau, Mann und helle Hautfarbe',
     '👩🏻‍❤‍👨🏼' => 'Liebespaar: Frau, Mann, helle Hautfarbe und mittelhelle Hautfarbe',
     '👩🏻‍❤‍👨🏽' => 'Liebespaar: Frau, Mann, helle Hautfarbe und mittlere Hautfarbe',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'Liebespaar: Frau, Frau, dunkle Hautfarbe und mittlere Hautfarbe',
     '👩🏿‍❤‍👩🏾' => 'Liebespaar: Frau, Frau, dunkle Hautfarbe und mitteldunkle Hautfarbe',
     '👩🏿‍❤‍👩🏿' => 'Liebespaar: Frau, Frau und dunkle Hautfarbe',
+    '👩🏻‍🐰‍👩🏼' => 'Frauen mit Hasenohren: helle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏻‍🐰‍👩🏽' => 'Frauen mit Hasenohren: helle Hautfarbe, mittlere Hautfarbe',
+    '👩🏻‍🐰‍👩🏾' => 'Frauen mit Hasenohren: helle Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏻‍🐰‍👩🏿' => 'Frauen mit Hasenohren: helle Hautfarbe, dunkle Hautfarbe',
+    '👩🏼‍🐰‍👩🏻' => 'Frauen mit Hasenohren: mittelhelle Hautfarbe, helle Hautfarbe',
+    '👩🏼‍🐰‍👩🏽' => 'Frauen mit Hasenohren: mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '👩🏼‍🐰‍👩🏾' => 'Frauen mit Hasenohren: mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏼‍🐰‍👩🏿' => 'Frauen mit Hasenohren: mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '👩🏽‍🐰‍👩🏻' => 'Frauen mit Hasenohren: mittlere Hautfarbe, helle Hautfarbe',
+    '👩🏽‍🐰‍👩🏼' => 'Frauen mit Hasenohren: mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏽‍🐰‍👩🏾' => 'Frauen mit Hasenohren: mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏽‍🐰‍👩🏿' => 'Frauen mit Hasenohren: mittlere Hautfarbe, dunkle Hautfarbe',
+    '👩🏾‍🐰‍👩🏻' => 'Frauen mit Hasenohren: mitteldunkle Hautfarbe, helle Hautfarbe',
+    '👩🏾‍🐰‍👩🏼' => 'Frauen mit Hasenohren: mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏾‍🐰‍👩🏽' => 'Frauen mit Hasenohren: mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '👩🏾‍🐰‍👩🏿' => 'Frauen mit Hasenohren: mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '👩🏿‍🐰‍👩🏻' => 'Frauen mit Hasenohren: dunkle Hautfarbe, helle Hautfarbe',
+    '👩🏿‍🐰‍👩🏼' => 'Frauen mit Hasenohren: dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏿‍🐰‍👩🏽' => 'Frauen mit Hasenohren: dunkle Hautfarbe, mittlere Hautfarbe',
+    '👩🏿‍🐰‍👩🏾' => 'Frauen mit Hasenohren: dunkle Hautfarbe, mitteldunkle Hautfarbe',
     '🧑🏻‍🤝‍🧑🏻' => 'sich an den Händen haltende Personen: helle Hautfarbe',
     '🧑🏻‍🤝‍🧑🏼' => 'sich an den Händen haltende Personen: helle Hautfarbe, mittelhelle Hautfarbe',
     '🧑🏻‍🤝‍🧑🏽' => 'sich an den Händen haltende Personen: helle Hautfarbe, mittlere Hautfarbe',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'Flagge: Schottland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'Flagge: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'Familie: 2 Erwachsene, 2 Kinder',
-    '🚶🏻‍♀‍➡' => 'Fussgängerin nach rechts',
-    '🚶🏼‍♀‍➡' => 'Fussgängerin nach rechts',
-    '🚶🏽‍♀‍➡' => 'Fussgängerin nach rechts',
-    '🚶🏾‍♀‍➡' => 'Fussgängerin nach rechts',
-    '🚶🏿‍♀‍➡' => 'Fussgängerin nach rechts',
-    '🚶🏻‍♂‍➡' => 'Fussgänger nach rechts',
-    '🚶🏼‍♂‍➡' => 'Fussgänger nach rechts',
-    '🚶🏽‍♂‍➡' => 'Fussgänger nach rechts',
-    '🚶🏾‍♂‍➡' => 'Fussgänger nach rechts',
-    '🚶🏿‍♂‍➡' => 'Fussgänger nach rechts',
-    '🧎🏻‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎🏼‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎🏽‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎🏾‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎🏿‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎🏻‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧎🏼‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧎🏽‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧎🏾‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧎🏿‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧑🏻‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '🧑🏼‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '🧑🏽‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '🧑🏾‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '🧑🏿‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '👨🏻‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👨🏼‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👨🏽‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👨🏾‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👨🏿‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👩🏻‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '👩🏼‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '👩🏽‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '👩🏾‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '👩🏿‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '🧑🏻‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '🧑🏼‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '🧑🏽‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '🧑🏾‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '🧑🏿‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '👨🏻‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👨🏼‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👨🏽‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👨🏾‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👨🏿‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👩🏻‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '👩🏼‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '👩🏽‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '👩🏾‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '👩🏿‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '🧑🏻‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '🧑🏼‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '🧑🏽‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '🧑🏾‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '🧑🏿‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '👨🏻‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👨🏼‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👨🏽‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👨🏾‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👨🏿‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👩🏻‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '👩🏼‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '👩🏽‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '👩🏾‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '👩🏿‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '🏃🏻‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃🏼‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃🏽‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃🏾‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃🏿‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃🏻‍♂‍➡' => 'laufender Mann nach rechts',
-    '🏃🏼‍♂‍➡' => 'laufender Mann nach rechts',
-    '🏃🏽‍♂‍➡' => 'laufender Mann nach rechts',
-    '🏃🏾‍♂‍➡' => 'laufender Mann nach rechts',
-    '🏃🏿‍♂‍➡' => 'laufender Mann nach rechts',
+    '🚶🏻‍♀‍➡' => 'Fussgängerin: helle Hautfarbe, nach rechts',
+    '🚶🏼‍♀‍➡' => 'Fussgängerin: mittelhelle Hautfarbe, nach rechts',
+    '🚶🏽‍♀‍➡' => 'Fussgängerin: mittlere Hautfarbe, nach rechts',
+    '🚶🏾‍♀‍➡' => 'Fussgängerin: mitteldunkle Hautfarbe, nach rechts',
+    '🚶🏿‍♀‍➡' => 'Fussgängerin: dunkle Hautfarbe, nach rechts',
+    '🚶🏻‍♂‍➡' => 'Fussgänger: helle Hautfarbe, nach rechts',
+    '🚶🏼‍♂‍➡' => 'Fussgänger: mittelhelle Hautfarbe, nach rechts',
+    '🚶🏽‍♂‍➡' => 'Fussgänger: mittlere Hautfarbe, nach rechts',
+    '🚶🏾‍♂‍➡' => 'Fussgänger: mitteldunkle Hautfarbe, nach rechts',
+    '🚶🏿‍♂‍➡' => 'Fussgänger: dunkle Hautfarbe, nach rechts',
+    '🧎🏻‍♀‍➡' => 'kniende Frau: helle Hautfarbe, nach rechts',
+    '🧎🏼‍♀‍➡' => 'kniende Frau: mittelhelle Hautfarbe, nach rechts',
+    '🧎🏽‍♀‍➡' => 'kniende Frau: mittlere Hautfarbe, nach rechts',
+    '🧎🏾‍♀‍➡' => 'kniende Frau: mitteldunkle Hautfarbe, nach rechts',
+    '🧎🏿‍♀‍➡' => 'kniende Frau: dunkle Hautfarbe, nach rechts',
+    '🧎🏻‍♂‍➡' => 'kniender Mann: helle Hautfarbe, nach rechts',
+    '🧎🏼‍♂‍➡' => 'kniender Mann: mittelhelle Hautfarbe, nach rechts',
+    '🧎🏽‍♂‍➡' => 'kniender Mann: mittlere Hautfarbe, nach rechts',
+    '🧎🏾‍♂‍➡' => 'kniender Mann: mitteldunkle Hautfarbe, nach rechts',
+    '🧎🏿‍♂‍➡' => 'kniender Mann: dunkle Hautfarbe, nach rechts',
+    '🧑🏻‍🦯‍➡' => 'Person mit Langstock: helle Hautfarbe, nach rechts',
+    '🧑🏼‍🦯‍➡' => 'Person mit Langstock: mittelhelle Hautfarbe, nach rechts',
+    '🧑🏽‍🦯‍➡' => 'Person mit Langstock: mittlere Hautfarbe, nach rechts',
+    '🧑🏾‍🦯‍➡' => 'Person mit Langstock: mitteldunkle Hautfarbe, nach rechts',
+    '🧑🏿‍🦯‍➡' => 'Person mit Langstock: dunkle Hautfarbe, nach rechts',
+    '👨🏻‍🦯‍➡' => 'Mann mit Langstock: helle Hautfarbe, nach rechts',
+    '👨🏼‍🦯‍➡' => 'Mann mit Langstock: mittelhelle Hautfarbe, nach rechts',
+    '👨🏽‍🦯‍➡' => 'Mann mit Langstock: mittlere Hautfarbe, nach rechts',
+    '👨🏾‍🦯‍➡' => 'Mann mit Langstock: mitteldunkle Hautfarbe, nach rechts',
+    '👨🏿‍🦯‍➡' => 'Mann mit Langstock: dunkle Hautfarbe, nach rechts',
+    '👩🏻‍🦯‍➡' => 'Frau mit Langstock: helle Hautfarbe, nach rechts',
+    '👩🏼‍🦯‍➡' => 'Frau mit Langstock: mittelhelle Hautfarbe, nach rechts',
+    '👩🏽‍🦯‍➡' => 'Frau mit Langstock: mittlere Hautfarbe, nach rechts',
+    '👩🏾‍🦯‍➡' => 'Frau mit Langstock: mitteldunkle Hautfarbe, nach rechts',
+    '👩🏿‍🦯‍➡' => 'Frau mit Langstock: dunkle Hautfarbe, nach rechts',
+    '🧑🏻‍🦼‍➡' => 'Person in elektrischem Rollstuhl: helle Hautfarbe, nach rechts',
+    '🧑🏼‍🦼‍➡' => 'Person in elektrischem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '🧑🏽‍🦼‍➡' => 'Person in elektrischem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '🧑🏾‍🦼‍➡' => 'Person in elektrischem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '🧑🏿‍🦼‍➡' => 'Person in elektrischem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '👨🏻‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: helle Hautfarbe, nach rechts',
+    '👨🏼‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '👨🏽‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '👨🏾‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '👨🏿‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '👩🏻‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: helle Hautfarbe, nach rechts',
+    '👩🏼‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '👩🏽‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '👩🏾‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '👩🏿‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '🧑🏻‍🦽‍➡' => 'Person in manuellem Rollstuhl: helle Hautfarbe, nach rechts',
+    '🧑🏼‍🦽‍➡' => 'Person in manuellem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '🧑🏽‍🦽‍➡' => 'Person in manuellem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '🧑🏾‍🦽‍➡' => 'Person in manuellem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '🧑🏿‍🦽‍➡' => 'Person in manuellem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '👨🏻‍🦽‍➡' => 'Mann in manuellem Rollstuhl: helle Hautfarbe, nach rechts',
+    '👨🏼‍🦽‍➡' => 'Mann in manuellem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '👨🏽‍🦽‍➡' => 'Mann in manuellem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '👨🏾‍🦽‍➡' => 'Mann in manuellem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '👨🏿‍🦽‍➡' => 'Mann in manuellem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '👩🏻‍🦽‍➡' => 'Frau in manuellem Rollstuhl: helle Hautfarbe, nach rechts',
+    '👩🏼‍🦽‍➡' => 'Frau in manuellem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '👩🏽‍🦽‍➡' => 'Frau in manuellem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '👩🏾‍🦽‍➡' => 'Frau in manuellem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '👩🏿‍🦽‍➡' => 'Frau in manuellem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '🏃🏻‍♀‍➡' => 'laufende Frau: helle Hautfarbe, nach rechts',
+    '🏃🏼‍♀‍➡' => 'laufende Frau: mittelhelle Hautfarbe, nach rechts',
+    '🏃🏽‍♀‍➡' => 'laufende Frau: mittlere Hautfarbe, nach rechts',
+    '🏃🏾‍♀‍➡' => 'laufende Frau: mitteldunkle Hautfarbe, nach rechts',
+    '🏃🏿‍♀‍➡' => 'laufende Frau: dunkle Hautfarbe, nach rechts',
+    '🏃🏻‍♂‍➡' => 'laufender Mann: helle Hautfarbe, nach rechts',
+    '🏃🏼‍♂‍➡' => 'laufender Mann: mittelhelle Hautfarbe, nach rechts',
+    '🏃🏽‍♂‍➡' => 'laufender Mann: mittlere Hautfarbe, nach rechts',
+    '🏃🏾‍♂‍➡' => 'laufender Mann: mitteldunkle Hautfarbe, nach rechts',
+    '🏃🏿‍♂‍➡' => 'laufender Mann: dunkle Hautfarbe, nach rechts',
     '🫱🏻‍🫲🏼' => 'Handschlag: helle Hautfarbe, mittelhelle Hautfarbe',
     '🫱🏻‍🫲🏽' => 'Handschlag: helle Hautfarbe, mittlere Hautfarbe',
     '🫱🏻‍🫲🏾' => 'Handschlag: helle Hautfarbe, mitteldunkle Hautfarbe',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'Handschlag: dunkle Hautfarbe, mittelhelle Hautfarbe',
     '🫱🏿‍🫲🏽' => 'Handschlag: dunkle Hautfarbe, mittlere Hautfarbe',
     '🫱🏿‍🫲🏾' => 'Handschlag: dunkle Hautfarbe, mitteldunkle Hautfarbe',
-    '🚶‍♀‍➡' => 'Fussgängerin nach rechts',
-    '🚶‍♂‍➡' => 'Fussgänger nach rechts',
-    '🧎‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧑‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '👨‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👩‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '🧑‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '👨‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👩‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '🧑‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '👨‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👩‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '🏃‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃‍♂‍➡' => 'laufender Mann nach rechts',
+    '🚶‍♀‍➡' => 'Fussgängerin: nach rechts',
+    '🚶‍♂‍➡' => 'Fussgänger: nach rechts',
+    '🧎‍♀‍➡' => 'kniende Frau: nach rechts',
+    '🧎‍♂‍➡' => 'kniender Mann: nach rechts',
+    '🧑‍🦯‍➡' => 'Person mit Langstock: nach rechts',
+    '👨‍🦯‍➡' => 'Mann mit Langstock: nach rechts',
+    '👩‍🦯‍➡' => 'Frau mit Langstock: nach rechts',
+    '🧑‍🦼‍➡' => 'Person in elektrischem Rollstuhl: nach rechts',
+    '👨‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: nach rechts',
+    '👩‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: nach rechts',
+    '🧑‍🦽‍➡' => 'Person in manuellem Rollstuhl: nach rechts',
+    '👨‍🦽‍➡' => 'Mann in manuellem Rollstuhl: nach rechts',
+    '👩‍🦽‍➡' => 'Frau in manuellem Rollstuhl: nach rechts',
+    '🏃‍♀‍➡' => 'laufende Frau: nach rechts',
+    '🏃‍♂‍➡' => 'laufender Mann: nach rechts',
     '👩‍❤‍👨' => 'Liebespaar: Frau, Mann',
     '👨‍❤‍👨' => 'Liebespaar: Mann, Mann',
     '👩‍❤‍👩' => 'Liebespaar: Frau, Frau',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'Person: mittlere Hautfarbe, Glatze',
     '🧑🏾‍🦲' => 'Person: mitteldunkle Hautfarbe, Glatze',
     '🧑🏿‍🦲' => 'Person: dunkle Hautfarbe, Glatze',
+    '🧑🏻‍🩰' => 'Balletttänzerin: helle Hautfarbe',
+    '🧑🏼‍🩰' => 'Balletttänzerin: mittelhelle Hautfarbe',
+    '🧑🏽‍🩰' => 'Balletttänzerin: mittlere Hautfarbe',
+    '🧑🏾‍🩰' => 'Balletttänzerin: mitteldunkle Hautfarbe',
+    '🧑🏿‍🩰' => 'Balletttänzerin: dunkle Hautfarbe',
     '🧔🏻‍♂' => 'Mann: helle Hautfarbe, Bart',
     '🧔🏼‍♂' => 'Mann: mittelhelle Hautfarbe, Bart',
     '🧔🏽‍♂' => 'Mann: mittlere Hautfarbe, Bart',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'Fussgängerin: mittlere Hautfarbe',
     '🚶🏾‍♀' => 'Fussgängerin: mitteldunkle Hautfarbe',
     '🚶🏿‍♀' => 'Fussgängerin: dunkle Hautfarbe',
-    '🚶🏻‍➡' => 'Fussgänger(in) nach rechts',
-    '🚶🏼‍➡' => 'Fussgänger(in) nach rechts',
-    '🚶🏽‍➡' => 'Fussgänger(in) nach rechts',
-    '🚶🏾‍➡' => 'Fussgänger(in) nach rechts',
-    '🚶🏿‍➡' => 'Fussgänger(in) nach rechts',
+    '🚶🏻‍➡' => 'Fussgänger(in): helle Hautfarbe, nach rechts',
+    '🚶🏼‍➡' => 'Fussgänger(in): mittelhelle Hautfarbe, nach rechts',
+    '🚶🏽‍➡' => 'Fussgänger(in): mittlere Hautfarbe, nach rechts',
+    '🚶🏾‍➡' => 'Fussgänger(in): mitteldunkle Hautfarbe, nach rechts',
+    '🚶🏿‍➡' => 'Fussgänger(in): dunkle Hautfarbe, nach rechts',
     '🧍🏻‍♂' => 'stehender Mann: helle Hautfarbe',
     '🧍🏼‍♂' => 'stehender Mann: mittelhelle Hautfarbe',
     '🧍🏽‍♂' => 'stehender Mann: mittlere Hautfarbe',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'kniende Frau: mittlere Hautfarbe',
     '🧎🏾‍♀' => 'kniende Frau: mitteldunkle Hautfarbe',
     '🧎🏿‍♀' => 'kniende Frau: dunkle Hautfarbe',
-    '🧎🏻‍➡' => 'kniende Person nach rechts',
-    '🧎🏼‍➡' => 'kniende Person nach rechts',
-    '🧎🏽‍➡' => 'kniende Person nach rechts',
-    '🧎🏾‍➡' => 'kniende Person nach rechts',
-    '🧎🏿‍➡' => 'kniende Person nach rechts',
+    '🧎🏻‍➡' => 'kniende Person: helle Hautfarbe, nach rechts',
+    '🧎🏼‍➡' => 'kniende Person: mittelhelle Hautfarbe, nach rechts',
+    '🧎🏽‍➡' => 'kniende Person: mittlere Hautfarbe, nach rechts',
+    '🧎🏾‍➡' => 'kniende Person: mitteldunkle Hautfarbe, nach rechts',
+    '🧎🏿‍➡' => 'kniende Person: dunkle Hautfarbe, nach rechts',
     '🧑🏻‍🦯' => 'Person mit Langstock: helle Hautfarbe',
     '🧑🏼‍🦯' => 'Person mit Langstock: mittelhelle Hautfarbe',
     '🧑🏽‍🦯' => 'Person mit Langstock: mittlere Hautfarbe',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'laufende Frau: mittlere Hautfarbe',
     '🏃🏾‍♀' => 'laufende Frau: mitteldunkle Hautfarbe',
     '🏃🏿‍♀' => 'laufende Frau: dunkle Hautfarbe',
-    '🏃🏻‍➡' => 'laufende Person nach rechts',
-    '🏃🏼‍➡' => 'laufende Person nach rechts',
-    '🏃🏽‍➡' => 'laufende Person nach rechts',
-    '🏃🏾‍➡' => 'laufende Person nach rechts',
-    '🏃🏿‍➡' => 'laufende Person nach rechts',
+    '🏃🏻‍➡' => 'laufende Person: helle Hautfarbe, nach rechts',
+    '🏃🏼‍➡' => 'laufende Person: mittelhelle Hautfarbe, nach rechts',
+    '🏃🏽‍➡' => 'laufende Person: mittlere Hautfarbe, nach rechts',
+    '🏃🏾‍➡' => 'laufende Person: mitteldunkle Hautfarbe, nach rechts',
+    '🏃🏿‍➡' => 'laufende Person: dunkle Hautfarbe, nach rechts',
+    '👯🏻‍♀' => 'Frauen mit Hasenohren: helle Hautfarbe',
+    '👯🏼‍♀' => 'Frauen mit Hasenohren: mittelhelle Hautfarbe',
+    '👯🏽‍♀' => 'Frauen mit Hasenohren: mittlere Hautfarbe',
+    '👯🏾‍♀' => 'Frauen mit Hasenohren: mitteldunkle Hautfarbe',
+    '👯🏿‍♀' => 'Frauen mit Hasenohren: dunkle Hautfarbe',
+    '👯🏻‍♂' => 'Männer mit Hasenohren: helle Hautfarbe',
+    '👯🏼‍♂' => 'Männer mit Hasenohren: mittelhelle Hautfarbe',
+    '👯🏽‍♂' => 'Männer mit Hasenohren: mittlere Hautfarbe',
+    '👯🏾‍♂' => 'Männer mit Hasenohren: mitteldunkle Hautfarbe',
+    '👯🏿‍♂' => 'Männer mit Hasenohren: dunkle Hautfarbe',
     '🧖🏻‍♂' => 'Mann in Dampfsauna: helle Hautfarbe',
     '🧖🏼‍♂' => 'Mann in Dampfsauna: mittelhelle Hautfarbe',
     '🧖🏽‍♂' => 'Mann in Dampfsauna: mittlere Hautfarbe',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'Rad schlagende Frau: mittlere Hautfarbe',
     '🤸🏾‍♀' => 'Rad schlagende Frau: mitteldunkle Hautfarbe',
     '🤸🏿‍♀' => 'Rad schlagende Frau: dunkle Hautfarbe',
+    '🤼🏻‍♀' => 'ringende Frauen: helle Hautfarbe',
+    '🤼🏼‍♀' => 'ringende Frauen: mittelhelle Hautfarbe',
+    '🤼🏽‍♀' => 'ringende Frauen: mittlere Hautfarbe',
+    '🤼🏾‍♀' => 'ringende Frauen: mitteldunkle Hautfarbe',
+    '🤼🏿‍♀' => 'ringende Frauen: dunkle Hautfarbe',
+    '🤼🏻‍♂' => 'ringende Männer: helle Hautfarbe',
+    '🤼🏼‍♂' => 'ringende Männer: mittelhelle Hautfarbe',
+    '🤼🏽‍♂' => 'ringende Männer: mittlere Hautfarbe',
+    '🤼🏾‍♂' => 'ringende Männer: mitteldunkle Hautfarbe',
+    '🤼🏿‍♂' => 'ringende Männer: dunkle Hautfarbe',
     '🤽🏻‍♂' => 'Wasserballspieler: helle Hautfarbe',
     '🤽🏼‍♂' => 'Wasserballspieler: mittelhelle Hautfarbe',
     '🤽🏽‍♂' => 'Wasserballspieler: mittlere Hautfarbe',
@@ -1282,19 +1427,19 @@
     '👩‍🦱' => 'Frau: lockiges Haar',
     '👩‍🦳' => 'Frau: weisses Haar',
     '👩‍🦲' => 'Frau: Glatze',
-    '🚶‍➡' => 'Fussgänger(in) nach rechts',
-    '🧎‍➡' => 'kniende Person nach rechts',
-    '🏃‍➡' => 'laufende Person nach rechts',
+    '🚶‍➡' => 'Fussgänger(in): nach rechts',
+    '🧎‍➡' => 'kniende Person: nach rechts',
+    '🏃‍➡' => 'laufende Person: nach rechts',
     '👨‍👦' => 'Familie: Mann, Junge',
     '👨‍👧' => 'Familie: Mann, Mädchen',
     '👩‍👦' => 'Familie: Frau, Junge',
     '👩‍👧' => 'Familie: Frau, Mädchen',
-    '😶‍🌫' => 'Kopf in den Wolken',
-    '😮‍💨' => 'ausatmendes Gesicht',
+    '😶‍🌫' => 'Gesicht in Wolken',
+    '😮‍💨' => 'Gesicht, das ausatmet',
     '🙂‍↕' => 'Kopfnicken',
-    '😵‍💫' => 'Gesicht mit Spiralaugen',
-    '❤‍🔥' => 'brennendes Herz',
-    '❤‍🩹' => 'Herz mit Pflaster',
+    '😵‍💫' => 'Gesicht mit Spiralen als Augen',
+    '❤‍🔥' => 'Herz in Flammen',
+    '❤‍🩹' => 'Herz mit Verband',
     '👁‍🗨' => 'Auge in Sprechblase',
     '🧔‍♂' => 'Mann: Bart',
     '👱‍♂' => 'Mann: blond',
@@ -1402,7 +1547,7 @@
     '🧝‍♀' => 'Elfe',
     '🧞‍♂' => 'männlicher Flaschengeist',
     '🧞‍♀' => 'weiblicher Flaschengeist',
-    '🧟‍♂' => 'Zombiemann',
+    '🧟‍♂' => 'männlicher Zombie',
     '🧟‍♀' => 'weiblicher Zombie',
     '💆‍♂' => 'Mann, der eine Kopfmassage bekommt',
     '💆‍♀' => 'Frau, die eine Kopfmassage bekommt',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'Frau in manuellem Rollstuhl',
     '🏃‍♂' => 'laufender Mann',
     '🏃‍♀' => 'laufende Frau',
+    '🧑‍🩰' => 'Balletttänzerin',
     '👯‍♂' => 'Männer mit Hasenohren',
     '👯‍♀' => 'Frauen mit Hasenohren',
     '🧖‍♂' => 'Mann in Dampfsauna',
@@ -1467,9 +1613,9 @@
     '🐦‍🔥' => 'Phönix',
     '🍋‍🟩' => 'Limette',
     '🍄‍🟫' => 'brauner Pilz',
-    '⛓‍💥' => 'kaputte Kette',
+    '⛓‍💥' => 'gebrochene Kette',
     '🏳‍🌈' => 'Regenbogenflagge',
-    '🏳‍⚧' => 'Transgenderflagge',
+    '🏳‍⚧' => 'Transgender-Flagge',
     '🏴‍☠' => 'Piratenflagge',
     '👋🏻' => 'winkende Hand: helle Hautfarbe',
     '👋🏼' => 'winkende Hand: mittelhelle Hautfarbe',
@@ -1491,11 +1637,11 @@
     '✋🏽' => 'erhobene Hand: mittlere Hautfarbe',
     '✋🏾' => 'erhobene Hand: mitteldunkle Hautfarbe',
     '✋🏿' => 'erhobene Hand: dunkle Hautfarbe',
-    '🖖🏻' => 'Vulkanischer Gruss: helle Hautfarbe',
-    '🖖🏼' => 'Vulkanischer Gruss: mittelhelle Hautfarbe',
-    '🖖🏽' => 'Vulkanischer Gruss: mittlere Hautfarbe',
-    '🖖🏾' => 'Vulkanischer Gruss: mitteldunkle Hautfarbe',
-    '🖖🏿' => 'Vulkanischer Gruss: dunkle Hautfarbe',
+    '🖖🏻' => 'vulkanischer Gruss: helle Hautfarbe',
+    '🖖🏼' => 'vulkanischer Gruss: mittelhelle Hautfarbe',
+    '🖖🏽' => 'vulkanischer Gruss: mittlere Hautfarbe',
+    '🖖🏾' => 'vulkanischer Gruss: mitteldunkle Hautfarbe',
+    '🖖🏿' => 'vulkanischer Gruss: dunkle Hautfarbe',
     '🫱🏻' => 'nach rechts weisende Hand: helle Hautfarbe',
     '🫱🏼' => 'nach rechts weisende Hand: mittelhelle Hautfarbe',
     '🫱🏽' => 'nach rechts weisende Hand: mittlere Hautfarbe',
@@ -1516,16 +1662,16 @@
     '🫴🏽' => 'Hand mit Handfläche nach oben: mittlere Hautfarbe',
     '🫴🏾' => 'Hand mit Handfläche nach oben: mitteldunkle Hautfarbe',
     '🫴🏿' => 'Hand mit Handfläche nach oben: dunkle Hautfarbe',
-    '🫷🏻' => 'nach links drückende Hand: helle Hautfarbe',
-    '🫷🏼' => 'nach links drückende Hand: mittelhelle Hautfarbe',
-    '🫷🏽' => 'nach links drückende Hand: mittlere Hautfarbe',
-    '🫷🏾' => 'nach links drückende Hand: mitteldunkle Hautfarbe',
-    '🫷🏿' => 'nach links drückende Hand: dunkle Hautfarbe',
-    '🫸🏻' => 'nach rechts drückende Hand: helle Hautfarbe',
-    '🫸🏼' => 'nach rechts drückende Hand: mittelhelle Hautfarbe',
-    '🫸🏽' => 'nach rechts drückende Hand: mittlere Hautfarbe',
-    '🫸🏾' => 'nach rechts drückende Hand: mitteldunkle Hautfarbe',
-    '🫸🏿' => 'nach rechts drückende Hand: dunkle Hautfarbe',
+    '🫷🏻' => 'nach links schiebende Hand: helle Hautfarbe',
+    '🫷🏼' => 'nach links schiebende Hand: mittelhelle Hautfarbe',
+    '🫷🏽' => 'nach links schiebende Hand: mittlere Hautfarbe',
+    '🫷🏾' => 'nach links schiebende Hand: mitteldunkle Hautfarbe',
+    '🫷🏿' => 'nach links schiebende Hand: dunkle Hautfarbe',
+    '🫸🏻' => 'nach rechts schiebende Hand: helle Hautfarbe',
+    '🫸🏼' => 'nach rechts schiebende Hand: mittelhelle Hautfarbe',
+    '🫸🏽' => 'nach rechts schiebende Hand: mittlere Hautfarbe',
+    '🫸🏾' => 'nach rechts schiebende Hand: mitteldunkle Hautfarbe',
+    '🫸🏿' => 'nach rechts schiebende Hand: dunkle Hautfarbe',
     '👌🏻' => 'OK-Zeichen: helle Hautfarbe',
     '👌🏼' => 'OK-Zeichen: mittelhelle Hautfarbe',
     '👌🏽' => 'OK-Zeichen: mittlere Hautfarbe',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'schwebender Mann im Anzug: mittlere Hautfarbe',
     '🕴🏾' => 'schwebender Mann im Anzug: mitteldunkle Hautfarbe',
     '🕴🏿' => 'schwebender Mann im Anzug: dunkle Hautfarbe',
+    '👯🏻' => 'Personen mit Hasenohren: helle Hautfarbe',
+    '👯🏼' => 'Personen mit Hasenohren: mittelhelle Hautfarbe',
+    '👯🏽' => 'Personen mit Hasenohren: mittlere Hautfarbe',
+    '👯🏾' => 'Personen mit Hasenohren: mitteldunkle Hautfarbe',
+    '👯🏿' => 'Personen mit Hasenohren: dunkle Hautfarbe',
     '🧖🏻' => 'Person in Dampfsauna: helle Hautfarbe',
     '🧖🏼' => 'Person in Dampfsauna: mittelhelle Hautfarbe',
     '🧖🏽' => 'Person in Dampfsauna: mittlere Hautfarbe',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'Rad schlagende Person: mittlere Hautfarbe',
     '🤸🏾' => 'Rad schlagende Person: mitteldunkle Hautfarbe',
     '🤸🏿' => 'Rad schlagende Person: dunkle Hautfarbe',
+    '🤼🏻' => 'Ringer(in): helle Hautfarbe',
+    '🤼🏼' => 'Ringer(in): mittelhelle Hautfarbe',
+    '🤼🏽' => 'Ringer(in): mittlere Hautfarbe',
+    '🤼🏾' => 'Ringer(in): mitteldunkle Hautfarbe',
+    '🤼🏿' => 'Ringer(in): dunkle Hautfarbe',
     '🤽🏻' => 'Wasserballspieler(in): helle Hautfarbe',
     '🤽🏼' => 'Wasserballspieler(in): mittelhelle Hautfarbe',
     '🤽🏽' => 'Wasserballspieler(in): mittlere Hautfarbe',
@@ -2154,14 +2310,14 @@
     '🇧🇯' => 'Flagge: Benin',
     '🇧🇱' => 'Flagge: St. Barthélemy',
     '🇧🇲' => 'Flagge: Bermuda',
-    '🇧🇳' => 'Flagge: Brunei',
+    '🇧🇳' => 'Flagge: Brunei Darussalam',
     '🇧🇴' => 'Flagge: Bolivien',
     '🇧🇶' => 'Flagge: Karibische Niederlande',
     '🇧🇷' => 'Flagge: Brasilien',
     '🇧🇸' => 'Flagge: Bahamas',
     '🇧🇹' => 'Flagge: Bhutan',
     '🇧🇻' => 'Flagge: Bouvetinsel',
-    '🇧🇼' => 'Flagge: Botswana',
+    '🇧🇼' => 'Flagge: Botsuana',
     '🇧🇾' => 'Flagge: Belarus',
     '🇧🇿' => 'Flagge: Belize',
     '🇨🇦' => 'Flagge: Kanada',
@@ -2177,9 +2333,10 @@
     '🇨🇳' => 'Flagge: China',
     '🇨🇴' => 'Flagge: Kolumbien',
     '🇨🇵' => 'Flagge: Clipperton-Insel',
+    '🇨🇶' => 'Flagge: Sark',
     '🇨🇷' => 'Flagge: Costa Rica',
     '🇨🇺' => 'Flagge: Kuba',
-    '🇨🇻' => 'Flagge: Kapverden',
+    '🇨🇻' => 'Flagge: Cabo Verde',
     '🇨🇼' => 'Flagge: Curaçao',
     '🇨🇽' => 'Flagge: Weihnachtsinsel',
     '🇨🇾' => 'Flagge: Zypern',
@@ -2325,7 +2482,7 @@
     '🇷🇺' => 'Flagge: Russland',
     '🇷🇼' => 'Flagge: Ruanda',
     '🇸🇦' => 'Flagge: Saudi-Arabien',
-    '🇸🇧' => 'Flagge: Salomon-Inseln',
+    '🇸🇧' => 'Flagge: Salomonen',
     '🇸🇨' => 'Flagge: Seychellen',
     '🇸🇩' => 'Flagge: Sudan',
     '🇸🇪' => 'Flagge: Schweden',
@@ -2353,7 +2510,7 @@
     '🇹🇭' => 'Flagge: Thailand',
     '🇹🇯' => 'Flagge: Tadschikistan',
     '🇹🇰' => 'Flagge: Tokelau',
-    '🇹🇱' => 'Flagge: Osttimor',
+    '🇹🇱' => 'Flagge: Timor-Leste',
     '🇹🇲' => 'Flagge: Turkmenistan',
     '🇹🇳' => 'Flagge: Tunesien',
     '🇹🇴' => 'Flagge: Tonga',
@@ -2383,26 +2540,19 @@
     '🇾🇹' => 'Flagge: Mayotte',
     '🇿🇦' => 'Flagge: Südafrika',
     '🇿🇲' => 'Flagge: Sambia',
-    '🇿🇼' => 'Flagge: Zimbabwe',
+    '🇿🇼' => 'Flagge: Simbabwe',
     '🔟' => 'Taste: 10',
     '🏻' => 'helle Hautfarbe',
     '🏼' => 'mittelhelle Hautfarbe',
     '🏽' => 'mittlere Hautfarbe',
     '🏾' => 'mitteldunkle Hautfarbe',
     '🏿' => 'dunkle Hautfarbe',
-    '🪉' => 'Harfe',
-    '🪏' => 'Schaufel',
-    '🪾' => 'Baum ohne Blätter',
-    '🫆' => 'Fingerabdruck',
-    '🫜' => 'Wurzelgemüse',
-    '🫟' => 'Klecks',
-    '🫩' => 'Gesicht mit Augenringen',
     '😀' => 'grinsendes Gesicht',
     '😃' => 'grinsendes Gesicht mit grossen Augen',
     '😄' => 'grinsendes Gesicht mit lachenden Augen',
     '😁' => 'strahlendes Gesicht mit lachenden Augen',
     '😆' => 'Grinsegesicht mit zugekniffenen Augen',
-    '😅' => 'Lachender Smiley mit kaltem Schweiss',
+    '😅' => 'grinsendes Gesicht mit Schweisstropfen',
     '🤣' => 'sich vor Lachen auf dem Boden wälzen',
     '😂' => 'Gesicht mit Freudentränen',
     '🙂' => 'leicht lächelndes Gesicht',
@@ -2432,8 +2582,8 @@
     '🫣' => 'Gesicht mit durch die Finger linsendem Auge',
     '🤫' => 'ermahnendes Gesicht',
     '🤔' => 'nachdenkendes Gesicht',
-    '🫡' => 'grüssendes Gesicht',
-    '🤐' => 'Smiley mit Reissverschlussmund',
+    '🫡' => 'salutierendes Gesicht',
+    '🤐' => 'Gesicht mit Reissverschlussmund',
     '🤨' => 'Gesicht mit hochgezogenen Augenbrauen',
     '😐' => 'neutrales Gesicht',
     '😑' => 'ausdrucksloses Gesicht',
@@ -2450,6 +2600,7 @@
     '😪' => 'schläfriges Gesicht',
     '🤤' => 'sabberndes Gesicht',
     '😴' => 'schlafendes Gesicht',
+    '🫩' => 'Gesicht mit Augenringen',
     '😷' => 'Gesicht mit Atemschutzmaske',
     '🤒' => 'Gesicht mit Fieberthermometer',
     '🤕' => 'Gesicht mit Kopfverband',
@@ -2463,7 +2614,7 @@
     '🤯' => 'explodierender Kopf',
     '🤠' => 'Gesicht mit Cowboyhut',
     '🥳' => 'Partygesicht',
-    '🥸' => 'Gesicht mit Maske',
+    '🥸' => 'verkleidet',
     '😎' => 'lächelndes Gesicht mit Sonnenbrille',
     '🤓' => 'Strebergesicht',
     '🧐' => 'Gesicht mit Monokel',
@@ -2475,13 +2626,14 @@
     '😮' => 'Gesicht mit offenem Mund',
     '😯' => 'verdutztes Gesicht',
     '😲' => 'erstauntes Gesicht',
-    '😳' => 'Erröteter Smiley mit grossen Augen',
+    '😳' => 'errötetes Gesicht mit grossen Augen',
+    '🫪' => 'verzerrtes Gesicht',
     '🥺' => 'bettelndes Gesicht',
     '🥹' => 'Gesicht, das Tränen zurückhält',
     '😦' => 'entsetztes Gesicht',
     '😧' => 'qualvolles Gesicht',
     '😨' => 'ängstliches Gesicht',
-    '😰' => 'Smiley mit offenem Mund und kaltem Schweiss',
+    '😰' => 'besorgtes Gesicht mit Schweisstropfen',
     '😥' => 'trauriges aber erleichtertes Gesicht',
     '😢' => 'weinendes Gesicht',
     '😭' => 'heulendes Gesicht',
@@ -2489,7 +2641,7 @@
     '😖' => 'verwirrtes Gesicht',
     '😣' => 'entschlossenes Gesicht',
     '😞' => 'enttäuschtes Gesicht',
-    '😓' => 'Smiley mit kaltem Schweiss',
+    '😓' => 'bedrücktes Gesicht mit Schweiss',
     '😩' => 'erschöpftes Gesicht',
     '😫' => 'müdes Gesicht',
     '🥱' => 'gähnendes Gesicht',
@@ -2506,7 +2658,7 @@
     '👹' => 'Ungeheuer',
     '👺' => 'Kobold',
     '👻' => 'Gespenst',
-    '👽' => 'Ausserirdisches Wesen',
+    '👽' => 'Ausserirdischer',
     '👾' => 'Computerspiel-Monster',
     '🤖' => 'Roboter',
     '😺' => 'grinsende Katze',
@@ -2547,6 +2699,7 @@
     '💋' => 'Kussabdruck',
     '💯' => '100 Punkte',
     '💢' => 'Ärger',
+    '🫯' => 'Kampfwolke',
     '💥' => 'Zusammenstoss',
     '💫' => 'schwindlig',
     '💦' => 'Schweisstropfen',
@@ -2561,13 +2714,13 @@
     '🤚' => 'erhobene Hand von hinten',
     '🖐' => 'Hand mit gespreizten Fingern',
     '✋' => 'erhobene Hand',
-    '🖖' => 'Vulkanischer Gruss',
+    '🖖' => 'vulkanischer Gruss',
     '🫱' => 'nach rechts weisende Hand',
     '🫲' => 'nach links weisende Hand',
     '🫳' => 'Hand mit Handfläche nach unten',
     '🫴' => 'Hand mit Handfläche nach oben',
-    '🫷' => 'nach links drückende Hand',
-    '🫸' => 'nach rechts drückende Hand',
+    '🫷' => 'nach links schiebende Hand',
+    '🫸' => 'nach rechts schiebende Hand',
     '👌' => 'OK-Zeichen',
     '🤌' => 'zusammengedrückte Finger',
     '🤏' => 'Wenig-Geste',
@@ -2617,7 +2770,7 @@
     '👁' => 'Auge',
     '👅' => 'Zunge',
     '👄' => 'Mund',
-    '🫦' => 'Auf Lippe beissen',
+    '🫦' => 'auf Lippe beissen',
     '👶' => 'Baby',
     '🧒' => 'Kind',
     '👦' => 'Junge',
@@ -2670,6 +2823,7 @@
     '🧞' => 'Flaschengeist',
     '🧟' => 'Zombie',
     '🧌' => 'Troll',
+    '🫈' => 'haariges Wesen',
     '💆' => 'Person, die eine Kopfmassage bekommt',
     '💇' => 'Person beim Haareschneiden',
     '🚶' => 'Fussgänger(in)',
@@ -2713,6 +2867,7 @@
     '🫂' => 'sich umarmende Personen',
     '👪' => 'Familie',
     '👣' => 'Fussabdrücke',
+    '🫆' => 'Fingerabdruck',
     '🦰' => 'rotes Haar',
     '🦱' => 'lockiges Haar',
     '🦳' => 'weisses Haar',
@@ -2812,6 +2967,7 @@
     '🐳' => 'blasender Wal',
     '🐋' => 'Wal',
     '🐬' => 'Delfin',
+    '🫍' => 'Orca',
     '🦭' => 'Seehund',
     '🐟' => 'Fisch',
     '🐠' => 'Tropenfisch',
@@ -2821,6 +2977,11 @@
     '🐚' => 'Schneckenhaus',
     '🪸' => 'Koralle',
     '🪼' => 'Qualle',
+    '🦀' => 'Krebs',
+    '🦞' => 'Hummer',
+    '🦐' => 'Garnele',
+    '🦑' => 'Tintenfisch',
+    '🦪' => 'Auster',
     '🐌' => 'Schnecke',
     '🦋' => 'Schmetterling',
     '🐛' => 'Raupe',
@@ -2865,6 +3026,7 @@
     '🪹' => 'leeres Nest',
     '🪺' => 'Nest mit Eiern',
     '🍄' => 'Fliegenpilz',
+    '🪾' => 'kahler Baum',
     '🍇' => 'Trauben',
     '🍈' => 'Honigmelone',
     '🍉' => 'Wassermelone',
@@ -2889,8 +3051,8 @@
     '🥔' => 'Kartoffel',
     '🥕' => 'Karotte',
     '🌽' => 'Maiskolben',
-    '🌶' => 'Chili',
-    '🫑' => 'Peperoni',
+    '🌶' => 'Peperoni',
+    '🫑' => 'Paprika',
     '🥒' => 'Gurke',
     '🥬' => 'Blattgemüse',
     '🥦' => 'Brokkoli',
@@ -2899,8 +3061,9 @@
     '🥜' => 'Erdnuss',
     '🫘' => 'Bohnen',
     '🌰' => 'Kastanie',
-    '🫚' => 'Ingwerwurzel',
-    '🫛' => 'Erbse',
+    '🫚' => 'Ingwer',
+    '🫛' => 'Erbsenschote',
+    '🫜' => 'Wurzelgemüse',
     '🍞' => 'Brot',
     '🥐' => 'Croissant',
     '🥖' => 'Baguette',
@@ -2911,7 +3074,7 @@
     '🧇' => 'Waffel',
     '🧀' => 'Käsestück',
     '🍖' => 'Fleischhachse',
-    '🍗' => 'Pouletschenkel',
+    '🍗' => 'Hähnchenschenkel',
     '🥩' => 'Fleischstück',
     '🥓' => 'Bacon',
     '🍔' => 'Hamburger',
@@ -2942,7 +3105,7 @@
     '🍛' => 'Reis mit Curry',
     '🍜' => 'Schüssel und Essstäbchen',
     '🍝' => 'Spaghetti',
-    '🍠' => 'Geröstete Süsskartoffel',
+    '🍠' => 'geröstete Süsskartoffel',
     '🍢' => 'Oden',
     '🍣' => 'Sushi',
     '🍤' => 'frittierte Garnele',
@@ -2952,11 +3115,6 @@
     '🥟' => 'Teigtasche',
     '🥠' => 'Glückskeks',
     '🥡' => 'Takeaway-Schachtel',
-    '🦀' => 'Krebs',
-    '🦞' => 'Hummer',
-    '🦐' => 'Garnele',
-    '🦑' => 'Tintenfisch',
-    '🦪' => 'Auster',
     '🍦' => 'Softeis',
     '🍧' => 'Wassereis',
     '🍨' => 'Eiscreme',
@@ -2974,7 +3132,7 @@
     '🍼' => 'Babyflasche',
     '🥛' => 'Glas Milch',
     '☕' => 'Heissgetränk',
-    '🫖' => 'Teekrug',
+    '🫖' => 'Teekanne',
     '🍵' => 'Teetasse ohne Henkel',
     '🍶' => 'Sake-Flasche mit Tasse',
     '🍾' => 'Flasche mit knallendem Korken',
@@ -3007,6 +3165,7 @@
     '🧭' => 'Kompass',
     '🏔' => 'schneebedeckter Berg',
     '⛰' => 'Berg',
+    '🛘' => 'Erdrutsch',
     '🌋' => 'Vulkan',
     '🗻' => 'Fuji',
     '🏕' => 'Camping',
@@ -3057,7 +3216,7 @@
     '🌆' => 'Abendstimmung in der Stadt',
     '🌇' => 'Sonnenuntergang in der Stadt',
     '🌉' => 'Brücke vor Nachthimmel',
-    '♨' => 'Heisse Quellen',
+    '♨' => 'heisse Quellen',
     '🎠' => 'Karussellpferd',
     '🛝' => 'Spielplatzrutsche',
     '🎡' => 'Riesenrad',
@@ -3075,7 +3234,7 @@
     '🚊' => 'Strassenbahn',
     '🚝' => 'Einschienenbahn',
     '🚞' => 'Bergbahn',
-    '🚋' => 'Tramwagen',
+    '🚋' => 'Strassenbahnwagen',
     '🚌' => 'Bus',
     '🚍' => 'Bus von vorne',
     '🚎' => 'Oberleitungsbus',
@@ -3321,13 +3480,13 @@
     '🩳' => 'Shorts',
     '👙' => 'Bikini',
     '👚' => 'Bluse',
-    '🪭' => 'Fächer',
+    '🪭' => 'Faltfächer',
     '👛' => 'Geldbörse',
     '👜' => 'Handtasche',
     '👝' => 'Clutch',
     '🛍' => 'Einkaufstüten',
-    '🎒' => 'Schulsack',
-    '🩴' => 'Flipflops',
+    '🎒' => 'Schulranzen',
+    '🩴' => 'Zehensandale',
     '👞' => 'Herrenschuh',
     '👟' => 'Sportschuh',
     '🥾' => 'Wanderstiefel',
@@ -3336,14 +3495,14 @@
     '👡' => 'Damensandale',
     '🩰' => 'Ballettschuhe',
     '👢' => 'Damenstiefel',
-    '🪮' => 'Afro Pick',
+    '🪮' => 'Haarkamm',
     '👑' => 'Krone',
     '👒' => 'Damenhut',
     '🎩' => 'Zylinder',
     '🎓' => 'Doktorhut',
     '🧢' => 'Baseballmütze',
     '🪖' => 'Militärhelm',
-    '⛑' => 'Helm mit weissem Kreuz',
+    '⛑' => 'Rettungshelm',
     '📿' => 'Gebetskette',
     '💄' => 'Lippenstift',
     '💍' => 'Ring',
@@ -3367,16 +3526,18 @@
     '🎧' => 'Kopfhörer',
     '📻' => 'Radio',
     '🎷' => 'Saxofon',
+    '🎺' => 'Trompete',
+    '🪊' => 'Posaune',
     '🪗' => 'Akkordeon',
     '🎸' => 'Gitarre',
     '🎹' => 'Klaviatur',
-    '🎺' => 'Trompete',
     '🎻' => 'Geige',
     '🪕' => 'Banjo',
     '🥁' => 'Trommel',
     '🪘' => 'afrikanische Trommel',
-    '🪇' => 'Maraca',
+    '🪇' => 'Maracas',
     '🪈' => 'Flöte',
+    '🪉' => 'Harfe',
     '📱' => 'Mobiltelefon',
     '📲' => 'Mobiltelefon mit Pfeil',
     '☎' => 'Telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'Pagemarker',
     '🔖' => 'Lesezeichen',
     '🏷' => 'Etikett',
-    '💰' => 'Geldsack',
     '🪙' => 'Münze',
+    '💰' => 'Geldsack',
+    '🪎' => 'Schatztruhe',
     '💴' => 'Yen-Banknote',
     '💵' => 'Dollar-Banknote',
     '💶' => 'Euro-Banknote',
@@ -3474,7 +3636,7 @@
     '📊' => 'Balkendiagramm',
     '📋' => 'Klemmbrett',
     '📌' => 'Reisszwecke',
-    '📍' => 'runde Reisszwecke',
+    '📍' => 'Stecknadel',
     '📎' => 'Büroklammer',
     '🖇' => 'verhakte Büroklammern',
     '📏' => 'Lineal',
@@ -3514,6 +3676,7 @@
     '🧰' => 'Werkzeugkasten',
     '🧲' => 'Magnet',
     '🪜' => 'Leiter',
+    '🪏' => 'Schaufel',
     '⚗' => 'Destillierapparat',
     '🧪' => 'Reagenzglas',
     '🧫' => 'Petrischale',
@@ -3527,9 +3690,9 @@
     '🩹' => 'Heftpflaster',
     '🩼' => 'Krücke',
     '🩺' => 'Stethoskop',
-    '🩻' => 'Röntgen',
+    '🩻' => 'Röntgenbild',
     '🚪' => 'Tür',
-    '🛗' => 'Lift',
+    '🛗' => 'Fahrstuhl',
     '🪞' => 'Spiegel',
     '🪟' => 'Fenster',
     '🛏' => 'Bett',
@@ -3548,7 +3711,7 @@
     '🧻' => 'Küchenrolle',
     '🪣' => 'Eimer',
     '🧼' => 'Seife',
-    '🫧' => 'Seifenblasen',
+    '🫧' => 'Blasen',
     '🪥' => 'Zahnbürste',
     '🧽' => 'Schwamm',
     '🧯' => 'Feuerlöscher',
@@ -3561,7 +3724,7 @@
     '🪬' => 'Hamsa',
     '🗿' => 'Statue',
     '🪧' => 'Protestschild',
-    '🪪' => 'ID',
+    '🪪' => 'Ausweis',
     '🏧' => 'Symbol „Geldautomat“',
     '🚮' => 'Symbol „Papierkorb“',
     '🚰' => 'Trinkwasser',
@@ -3576,17 +3739,17 @@
     '🛄' => 'Gepäckausgabe',
     '🛅' => 'Gepäckaufbewahrung',
     '⚠' => 'Warnung',
-    '🚸' => 'Kinder-queren-die-Strasse-Schild',
+    '🚸' => 'Kinder überqueren die Strasse',
     '⛔' => 'Zutritt verboten',
     '🚫' => 'Verboten',
     '🚳' => 'Fahrräder verboten',
     '🚭' => 'Rauchverbot',
     '🚯' => 'Abfall verboten',
     '🚱' => 'Kein Trinkwasser',
-    '🚷' => 'Fussgänger-verboten-Schild',
+    '🚷' => 'Fussgänger verboten',
     '📵' => 'Mobiltelefone verboten',
     '🔞' => 'Minderjährige verboten',
-    '☢' => 'radioaktiv',
+    '☢' => 'Radioaktiv',
     '☣' => 'Biogefährdung',
     '⬆' => 'Pfeil nach oben',
     '↗' => 'Pfeil nach rechts oben',
@@ -3621,7 +3784,7 @@
     '☮' => 'Friedenszeichen',
     '🕎' => 'Menora',
     '🔯' => 'Hexagramm mit Punkt',
-    '🪯' => 'Khanda-Emblem',
+    '🪯' => 'Khanda',
     '♈' => 'Widder (Sternzeichen)',
     '♉' => 'Stier (Sternzeichen)',
     '♊' => 'Zwillinge (Sternzeichen)',
@@ -3657,15 +3820,15 @@
     '🔅' => 'Taste Dimmen',
     '🔆' => 'Heller-Taste',
     '📶' => 'balkenförmige Signalstärkenanzeige',
-    '🛜' => 'drahtlos',
+    '🛜' => 'WLAN',
     '📳' => 'Vibrationsmodus',
     '📴' => 'Mobiltelefon aus',
     '♀' => 'Frauensymbol',
     '♂' => 'Männersymbol',
     '⚧' => 'Transgender-Symbol',
     '✖' => 'mal',
-    '➕' => 'Plus',
-    '➖' => 'Minus',
+    '➕' => 'plus',
+    '➖' => 'minus',
     '➗' => 'geteilt durch',
     '🟰' => 'Gleichheitszeichen extrafett',
     '♾' => 'Unendlichkeit',
@@ -3685,7 +3848,7 @@
     '📛' => 'Namensschild',
     '🔰' => 'japanisches Anfänger-Zeichen',
     '⭕' => 'hohler roter Kreis',
-    '✅' => 'Weisses Häkchen',
+    '✅' => 'weisses Häkchen',
     '☑' => 'abgehaktes Kästchen',
     '✔' => 'kräftiges Häkchen',
     '❌' => 'Kreuzzeichen',
@@ -3697,14 +3860,15 @@
     '✴' => 'achtstrahliger Stern',
     '❇' => 'Funkeln',
     '™' => 'Markenzeichen',
+    '🫟' => 'Spritzer',
     '🔠' => 'Eingabesymbol lateinische Grossbuchstaben',
     '🔡' => 'Eingabesymbol lateinische Kleinbuchstaben',
     '🔢' => 'Eingabesymbol Zahlen',
     '🔣' => 'Eingabesymbol Sonderzeichen',
     '🔤' => 'Eingabesymbol lateinische Buchstaben',
-    '🅰' => 'Grossbuchstabe A in Quadrat',
+    '🅰' => 'Grossbuchstabe A in rotem Quadrat',
     '🆎' => 'Grossbuchstaben AB in rotem Quadrat',
-    '🅱' => 'Grossbuchstabe B in Quadrat',
+    '🅱' => 'Grossbuchstabe B in rotem Quadrat',
     '🆑' => 'Grossbuchstaben CL in rotem Quadrat',
     '🆒' => 'Wort „Cool“ in blauem Quadrat',
     '🆓' => 'Wort „Free“ in blauem Quadrat',
@@ -3713,12 +3877,12 @@
     'Ⓜ' => 'Buchstabe „M“ in Kreis',
     '🆕' => 'Wort „New“ in blauem Quadrat',
     '🆖' => 'Grossbuchstaben NG in blauem Quadrat',
-    '🅾' => 'Grossbuchstabe O in Quadrat',
+    '🅾' => 'Grossbuchstabe O in rotem Quadrat',
     '🆗' => 'Grossbuchstaben OK in blauem Quadrat',
-    '🅿' => 'Grossbuchstabe P in Quadrat',
+    '🅿' => 'Grossbuchstabe P in blauem Quadrat',
     '🆘' => 'SOS-Zeichen',
     '🆙' => 'Schriftzug „UP!“ im blauen Quadrat',
-    '🆚' => 'Grossbuchstaben VS in orangefarbenem Quadrat',
+    '🆚' => 'Schriftzug VS in orangem Quadrat',
     '🈁' => 'Schriftzeichen „koko“',
     '🈂' => 'Schriftzeichen „sa“',
     '🈷' => 'Schriftzeichen für „Monatsbetrag“',
@@ -3736,15 +3900,15 @@
     '㊙' => 'Schriftzeichen für „Geheimnis“',
     '🈺' => 'Schriftzeichen für „Geöffnet“',
     '🈵' => 'Schriftzeichen für „Kein Zimmer frei“',
-    '🔴' => 'Grosser roter Kreis',
+    '🔴' => 'roter Punkt',
     '🟠' => 'oranger Punkt',
     '🟡' => 'gelber Punkt',
     '🟢' => 'grüner Punkt',
-    '🔵' => 'Grosser blauer Kreis',
+    '🔵' => 'blauer Punkt',
     '🟣' => 'lila Punkt',
     '🟤' => 'brauner Punkt',
-    '⚫' => 'Grosser schwarzer Kreis',
-    '⚪' => 'Grosser weisser Kreis',
+    '⚫' => 'schwarzer Punkt',
+    '⚪' => 'weisser Punkt',
     '🟥' => 'rotes Quadrat',
     '🟧' => 'oranges Quadrat',
     '🟨' => 'gelbes Quadrat',
@@ -3752,27 +3916,27 @@
     '🟦' => 'blaues Quadrat',
     '🟪' => 'lila Quadrat',
     '🟫' => 'braunes Quadrat',
-    '⬛' => 'Grosses schwarzes Quadrat',
-    '⬜' => 'Grosses weisses Quadrat',
-    '◼' => 'Mittelgrosses schwarzes Quadrat',
-    '◻' => 'Mittelgrosses weisses Quadrat',
+    '⬛' => 'grosses schwarzes Quadrat',
+    '⬜' => 'grosses weisses Quadrat',
+    '◼' => 'mittelgrosses schwarzes Quadrat',
+    '◻' => 'mittelgrosses weisses Quadrat',
     '◾' => 'mittelkleines schwarzes Quadrat',
-    '◽' => 'Mittelkleines weisses Quadrat',
+    '◽' => 'mittelkleines weisses Quadrat',
     '▪' => 'kleines schwarzes Quadrat',
-    '▫' => 'Kleines weisses Quadrat',
-    '🔶' => 'Grosse orangefarbene Raute',
-    '🔷' => 'Grosse blaue Raute',
+    '▫' => 'kleines weisses Quadrat',
+    '🔶' => 'grosse orangefarbene Raute',
+    '🔷' => 'grosse blaue Raute',
     '🔸' => 'kleine orangefarbene Raute',
     '🔹' => 'kleine blaue Raute',
     '🔺' => 'rotes Dreieck mit der Spitze nach oben',
     '🔻' => 'rotes Dreieck mit der Spitze nach unten',
     '💠' => 'Rautenform mit Punkt',
     '🔘' => 'Optionsfeld',
-    '🔳' => 'Weisse quadratische Schaltfläche',
+    '🔳' => 'weisse quadratische Schaltfläche',
     '🔲' => 'schwarze quadratische Schaltfläche',
     '🏁' => 'Zielflagge',
     '🚩' => 'Wimpel',
     '🎌' => 'überkreuzte Flaggen',
     '🏴' => 'schwarze Flagge',
-    '🏳' => 'Wehende weisse Fahne',
+    '🏳' => 'weisse Flagge',
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-de.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-de.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-de.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-de.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'sich küssendes Paar: Frau, Frau, dunkle Hautfarbe und mittlere Hautfarbe',
     '👩🏿‍❤‍💋‍👩🏾' => 'sich küssendes Paar: Frau, Frau, dunkle Hautfarbe und mitteldunkle Hautfarbe',
     '👩🏿‍❤‍💋‍👩🏿' => 'sich küssendes Paar: Frau, Frau und dunkle Hautfarbe',
+    '🧑🏻‍🫯‍🧑🏼' => 'Ringer(in): helle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏻‍🫯‍🧑🏽' => 'Ringer(in): helle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏻‍🫯‍🧑🏾' => 'Ringer(in): helle Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏻‍🫯‍🧑🏿' => 'Ringer(in): helle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏼‍🫯‍🧑🏻' => 'Ringer(in): mittelhelle Hautfarbe, helle Hautfarbe',
+    '🧑🏼‍🫯‍🧑🏽' => 'Ringer(in): mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏼‍🫯‍🧑🏾' => 'Ringer(in): mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏼‍🫯‍🧑🏿' => 'Ringer(in): mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏽‍🫯‍🧑🏻' => 'Ringer(in): mittlere Hautfarbe, helle Hautfarbe',
+    '🧑🏽‍🫯‍🧑🏼' => 'Ringer(in): mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏽‍🫯‍🧑🏾' => 'Ringer(in): mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏽‍🫯‍🧑🏿' => 'Ringer(in): mittlere Hautfarbe, dunkle Hautfarbe',
+    '🧑🏾‍🫯‍🧑🏻' => 'Ringer(in): mitteldunkle Hautfarbe, helle Hautfarbe',
+    '🧑🏾‍🫯‍🧑🏼' => 'Ringer(in): mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏾‍🫯‍🧑🏽' => 'Ringer(in): mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏾‍🫯‍🧑🏿' => 'Ringer(in): mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏿‍🫯‍🧑🏻' => 'Ringer(in): dunkle Hautfarbe, helle Hautfarbe',
+    '🧑🏿‍🫯‍🧑🏼' => 'Ringer(in): dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏿‍🫯‍🧑🏽' => 'Ringer(in): dunkle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏿‍🫯‍🧑🏾' => 'Ringer(in): dunkle Hautfarbe, mitteldunkle Hautfarbe',
     '🧑🏻‍❤‍🧑🏼' => 'Liebespaar: Person, Person, helle Hautfarbe und mittelhelle Hautfarbe',
     '🧑🏻‍❤‍🧑🏽' => 'Liebespaar: Person, Person, helle Hautfarbe und mittlere Hautfarbe',
     '🧑🏻‍❤‍🧑🏾' => 'Liebespaar: Person, Person, helle Hautfarbe und mitteldunkle Hautfarbe',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'Liebespaar: Person, Person, dunkle Hautfarbe und mittelhelle Hautfarbe',
     '🧑🏿‍❤‍🧑🏽' => 'Liebespaar: Person, Person, dunkle Hautfarbe und mittlere Hautfarbe',
     '🧑🏿‍❤‍🧑🏾' => 'Liebespaar: Person, Person, dunkle Hautfarbe und mitteldunkle Hautfarbe',
+    '🧑🏻‍🐰‍🧑🏼' => 'Personen mit Hasenohren: helle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏻‍🐰‍🧑🏽' => 'Personen mit Hasenohren: helle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏻‍🐰‍🧑🏾' => 'Personen mit Hasenohren: helle Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏻‍🐰‍🧑🏿' => 'Personen mit Hasenohren: helle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏼‍🐰‍🧑🏻' => 'Personen mit Hasenohren: mittelhelle Hautfarbe, helle Hautfarbe',
+    '🧑🏼‍🐰‍🧑🏽' => 'Personen mit Hasenohren: mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏼‍🐰‍🧑🏾' => 'Personen mit Hasenohren: mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏼‍🐰‍🧑🏿' => 'Personen mit Hasenohren: mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏽‍🐰‍🧑🏻' => 'Personen mit Hasenohren: mittlere Hautfarbe, helle Hautfarbe',
+    '🧑🏽‍🐰‍🧑🏼' => 'Personen mit Hasenohren: mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏽‍🐰‍🧑🏾' => 'Personen mit Hasenohren: mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '🧑🏽‍🐰‍🧑🏿' => 'Personen mit Hasenohren: mittlere Hautfarbe, dunkle Hautfarbe',
+    '🧑🏾‍🐰‍🧑🏻' => 'Personen mit Hasenohren: mitteldunkle Hautfarbe, helle Hautfarbe',
+    '🧑🏾‍🐰‍🧑🏼' => 'Personen mit Hasenohren: mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏾‍🐰‍🧑🏽' => 'Personen mit Hasenohren: mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏾‍🐰‍🧑🏿' => 'Personen mit Hasenohren: mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '🧑🏿‍🐰‍🧑🏻' => 'Personen mit Hasenohren: dunkle Hautfarbe, helle Hautfarbe',
+    '🧑🏿‍🐰‍🧑🏼' => 'Personen mit Hasenohren: dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '🧑🏿‍🐰‍🧑🏽' => 'Personen mit Hasenohren: dunkle Hautfarbe, mittlere Hautfarbe',
+    '🧑🏿‍🐰‍🧑🏾' => 'Personen mit Hasenohren: dunkle Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏻‍🫯‍👨🏼' => 'ringende Männer: helle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏻‍🫯‍👨🏽' => 'ringende Männer: helle Hautfarbe, mittlere Hautfarbe',
+    '👨🏻‍🫯‍👨🏾' => 'ringende Männer: helle Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏻‍🫯‍👨🏿' => 'ringende Männer: helle Hautfarbe, dunkle Hautfarbe',
+    '👨🏼‍🫯‍👨🏻' => 'ringende Männer: mittelhelle Hautfarbe, helle Hautfarbe',
+    '👨🏼‍🫯‍👨🏽' => 'ringende Männer: mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '👨🏼‍🫯‍👨🏾' => 'ringende Männer: mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏼‍🫯‍👨🏿' => 'ringende Männer: mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '👨🏽‍🫯‍👨🏻' => 'ringende Männer: mittlere Hautfarbe, helle Hautfarbe',
+    '👨🏽‍🫯‍👨🏼' => 'ringende Männer: mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏽‍🫯‍👨🏾' => 'ringende Männer: mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏽‍🫯‍👨🏿' => 'ringende Männer: mittlere Hautfarbe, dunkle Hautfarbe',
+    '👨🏾‍🫯‍👨🏻' => 'ringende Männer: mitteldunkle Hautfarbe, helle Hautfarbe',
+    '👨🏾‍🫯‍👨🏼' => 'ringende Männer: mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏾‍🫯‍👨🏽' => 'ringende Männer: mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '👨🏾‍🫯‍👨🏿' => 'ringende Männer: mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '👨🏿‍🫯‍👨🏻' => 'ringende Männer: dunkle Hautfarbe, helle Hautfarbe',
+    '👨🏿‍🫯‍👨🏼' => 'ringende Männer: dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏿‍🫯‍👨🏽' => 'ringende Männer: dunkle Hautfarbe, mittlere Hautfarbe',
+    '👨🏿‍🫯‍👨🏾' => 'ringende Männer: dunkle Hautfarbe, mitteldunkle Hautfarbe',
     '👨🏻‍❤‍👨🏻' => 'Liebespaar: Mann, Mann und helle Hautfarbe',
     '👨🏻‍❤‍👨🏼' => 'Liebespaar: Mann, Mann, helle Hautfarbe und mittelhelle Hautfarbe',
     '👨🏻‍❤‍👨🏽' => 'Liebespaar: Mann, Mann, helle Hautfarbe und mittlere Hautfarbe',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'Liebespaar: Mann, Mann, dunkle Hautfarbe und mittlere Hautfarbe',
     '👨🏿‍❤‍👨🏾' => 'Liebespaar: Mann, Mann, dunkle Hautfarbe und mitteldunkle Hautfarbe',
     '👨🏿‍❤‍👨🏿' => 'Liebespaar: Mann, Mann und dunkle Hautfarbe',
+    '👨🏻‍🐰‍👨🏼' => 'Männer mit Hasenohren: helle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏻‍🐰‍👨🏽' => 'Männer mit Hasenohren: helle Hautfarbe, mittlere Hautfarbe',
+    '👨🏻‍🐰‍👨🏾' => 'Männer mit Hasenohren: helle Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏻‍🐰‍👨🏿' => 'Männer mit Hasenohren: helle Hautfarbe, dunkle Hautfarbe',
+    '👨🏼‍🐰‍👨🏻' => 'Männer mit Hasenohren: mittelhelle Hautfarbe, helle Hautfarbe',
+    '👨🏼‍🐰‍👨🏽' => 'Männer mit Hasenohren: mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '👨🏼‍🐰‍👨🏾' => 'Männer mit Hasenohren: mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏼‍🐰‍👨🏿' => 'Männer mit Hasenohren: mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '👨🏽‍🐰‍👨🏻' => 'Männer mit Hasenohren: mittlere Hautfarbe, helle Hautfarbe',
+    '👨🏽‍🐰‍👨🏼' => 'Männer mit Hasenohren: mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏽‍🐰‍👨🏾' => 'Männer mit Hasenohren: mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '👨🏽‍🐰‍👨🏿' => 'Männer mit Hasenohren: mittlere Hautfarbe, dunkle Hautfarbe',
+    '👨🏾‍🐰‍👨🏻' => 'Männer mit Hasenohren: mitteldunkle Hautfarbe, helle Hautfarbe',
+    '👨🏾‍🐰‍👨🏼' => 'Männer mit Hasenohren: mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏾‍🐰‍👨🏽' => 'Männer mit Hasenohren: mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '👨🏾‍🐰‍👨🏿' => 'Männer mit Hasenohren: mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '👨🏿‍🐰‍👨🏻' => 'Männer mit Hasenohren: dunkle Hautfarbe, helle Hautfarbe',
+    '👨🏿‍🐰‍👨🏼' => 'Männer mit Hasenohren: dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👨🏿‍🐰‍👨🏽' => 'Männer mit Hasenohren: dunkle Hautfarbe, mittlere Hautfarbe',
+    '👨🏿‍🐰‍👨🏾' => 'Männer mit Hasenohren: dunkle Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏻‍🫯‍👩🏼' => 'ringende Frauen: helle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏻‍🫯‍👩🏽' => 'ringende Frauen: helle Hautfarbe, mittlere Hautfarbe',
+    '👩🏻‍🫯‍👩🏾' => 'ringende Frauen: helle Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏻‍🫯‍👩🏿' => 'ringende Frauen: helle Hautfarbe, dunkle Hautfarbe',
+    '👩🏼‍🫯‍👩🏻' => 'ringende Frauen: mittelhelle Hautfarbe, helle Hautfarbe',
+    '👩🏼‍🫯‍👩🏽' => 'ringende Frauen: mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '👩🏼‍🫯‍👩🏾' => 'ringende Frauen: mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏼‍🫯‍👩🏿' => 'ringende Frauen: mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '👩🏽‍🫯‍👩🏻' => 'ringende Frauen: mittlere Hautfarbe, helle Hautfarbe',
+    '👩🏽‍🫯‍👩🏼' => 'ringende Frauen: mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏽‍🫯‍👩🏾' => 'ringende Frauen: mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏽‍🫯‍👩🏿' => 'ringende Frauen: mittlere Hautfarbe, dunkle Hautfarbe',
+    '👩🏾‍🫯‍👩🏻' => 'ringende Frauen: mitteldunkle Hautfarbe, helle Hautfarbe',
+    '👩🏾‍🫯‍👩🏼' => 'ringende Frauen: mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏾‍🫯‍👩🏽' => 'ringende Frauen: mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '👩🏾‍🫯‍👩🏿' => 'ringende Frauen: mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '👩🏿‍🫯‍👩🏻' => 'ringende Frauen: dunkle Hautfarbe, helle Hautfarbe',
+    '👩🏿‍🫯‍👩🏼' => 'ringende Frauen: dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏿‍🫯‍👩🏽' => 'ringende Frauen: dunkle Hautfarbe, mittlere Hautfarbe',
+    '👩🏿‍🫯‍👩🏾' => 'ringende Frauen: dunkle Hautfarbe, mitteldunkle Hautfarbe',
     '👩🏻‍❤‍👨🏻' => 'Liebespaar: Frau, Mann und helle Hautfarbe',
     '👩🏻‍❤‍👨🏼' => 'Liebespaar: Frau, Mann, helle Hautfarbe und mittelhelle Hautfarbe',
     '👩🏻‍❤‍👨🏽' => 'Liebespaar: Frau, Mann, helle Hautfarbe und mittlere Hautfarbe',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'Liebespaar: Frau, Frau, dunkle Hautfarbe und mittlere Hautfarbe',
     '👩🏿‍❤‍👩🏾' => 'Liebespaar: Frau, Frau, dunkle Hautfarbe und mitteldunkle Hautfarbe',
     '👩🏿‍❤‍👩🏿' => 'Liebespaar: Frau, Frau und dunkle Hautfarbe',
+    '👩🏻‍🐰‍👩🏼' => 'Frauen mit Hasenohren: helle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏻‍🐰‍👩🏽' => 'Frauen mit Hasenohren: helle Hautfarbe, mittlere Hautfarbe',
+    '👩🏻‍🐰‍👩🏾' => 'Frauen mit Hasenohren: helle Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏻‍🐰‍👩🏿' => 'Frauen mit Hasenohren: helle Hautfarbe, dunkle Hautfarbe',
+    '👩🏼‍🐰‍👩🏻' => 'Frauen mit Hasenohren: mittelhelle Hautfarbe, helle Hautfarbe',
+    '👩🏼‍🐰‍👩🏽' => 'Frauen mit Hasenohren: mittelhelle Hautfarbe, mittlere Hautfarbe',
+    '👩🏼‍🐰‍👩🏾' => 'Frauen mit Hasenohren: mittelhelle Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏼‍🐰‍👩🏿' => 'Frauen mit Hasenohren: mittelhelle Hautfarbe, dunkle Hautfarbe',
+    '👩🏽‍🐰‍👩🏻' => 'Frauen mit Hasenohren: mittlere Hautfarbe, helle Hautfarbe',
+    '👩🏽‍🐰‍👩🏼' => 'Frauen mit Hasenohren: mittlere Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏽‍🐰‍👩🏾' => 'Frauen mit Hasenohren: mittlere Hautfarbe, mitteldunkle Hautfarbe',
+    '👩🏽‍🐰‍👩🏿' => 'Frauen mit Hasenohren: mittlere Hautfarbe, dunkle Hautfarbe',
+    '👩🏾‍🐰‍👩🏻' => 'Frauen mit Hasenohren: mitteldunkle Hautfarbe, helle Hautfarbe',
+    '👩🏾‍🐰‍👩🏼' => 'Frauen mit Hasenohren: mitteldunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏾‍🐰‍👩🏽' => 'Frauen mit Hasenohren: mitteldunkle Hautfarbe, mittlere Hautfarbe',
+    '👩🏾‍🐰‍👩🏿' => 'Frauen mit Hasenohren: mitteldunkle Hautfarbe, dunkle Hautfarbe',
+    '👩🏿‍🐰‍👩🏻' => 'Frauen mit Hasenohren: dunkle Hautfarbe, helle Hautfarbe',
+    '👩🏿‍🐰‍👩🏼' => 'Frauen mit Hasenohren: dunkle Hautfarbe, mittelhelle Hautfarbe',
+    '👩🏿‍🐰‍👩🏽' => 'Frauen mit Hasenohren: dunkle Hautfarbe, mittlere Hautfarbe',
+    '👩🏿‍🐰‍👩🏾' => 'Frauen mit Hasenohren: dunkle Hautfarbe, mitteldunkle Hautfarbe',
     '🧑🏻‍🤝‍🧑🏻' => 'sich an den Händen haltende Personen: helle Hautfarbe',
     '🧑🏻‍🤝‍🧑🏼' => 'sich an den Händen haltende Personen: helle Hautfarbe, mittelhelle Hautfarbe',
     '🧑🏻‍🤝‍🧑🏽' => 'sich an den Händen haltende Personen: helle Hautfarbe, mittlere Hautfarbe',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'Flagge: Schottland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'Flagge: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'Familie: 2 Erwachsene, 2 Kinder',
-    '🚶🏻‍♀‍➡' => 'Fußgängerin nach rechts',
-    '🚶🏼‍♀‍➡' => 'Fußgängerin nach rechts',
-    '🚶🏽‍♀‍➡' => 'Fußgängerin nach rechts',
-    '🚶🏾‍♀‍➡' => 'Fußgängerin nach rechts',
-    '🚶🏿‍♀‍➡' => 'Fußgängerin nach rechts',
-    '🚶🏻‍♂‍➡' => 'Fußgänger nach rechts',
-    '🚶🏼‍♂‍➡' => 'Fußgänger nach rechts',
-    '🚶🏽‍♂‍➡' => 'Fußgänger nach rechts',
-    '🚶🏾‍♂‍➡' => 'Fußgänger nach rechts',
-    '🚶🏿‍♂‍➡' => 'Fußgänger nach rechts',
-    '🧎🏻‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎🏼‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎🏽‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎🏾‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎🏿‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎🏻‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧎🏼‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧎🏽‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧎🏾‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧎🏿‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧑🏻‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '🧑🏼‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '🧑🏽‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '🧑🏾‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '🧑🏿‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '👨🏻‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👨🏼‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👨🏽‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👨🏾‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👨🏿‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👩🏻‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '👩🏼‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '👩🏽‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '👩🏾‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '👩🏿‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '🧑🏻‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '🧑🏼‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '🧑🏽‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '🧑🏾‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '🧑🏿‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '👨🏻‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👨🏼‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👨🏽‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👨🏾‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👨🏿‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👩🏻‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '👩🏼‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '👩🏽‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '👩🏾‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '👩🏿‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '🧑🏻‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '🧑🏼‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '🧑🏽‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '🧑🏾‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '🧑🏿‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '👨🏻‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👨🏼‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👨🏽‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👨🏾‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👨🏿‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👩🏻‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '👩🏼‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '👩🏽‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '👩🏾‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '👩🏿‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '🏃🏻‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃🏼‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃🏽‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃🏾‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃🏿‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃🏻‍♂‍➡' => 'laufender Mann nach rechts',
-    '🏃🏼‍♂‍➡' => 'laufender Mann nach rechts',
-    '🏃🏽‍♂‍➡' => 'laufender Mann nach rechts',
-    '🏃🏾‍♂‍➡' => 'laufender Mann nach rechts',
-    '🏃🏿‍♂‍➡' => 'laufender Mann nach rechts',
+    '🚶🏻‍♀‍➡' => 'Fußgängerin: helle Hautfarbe, nach rechts',
+    '🚶🏼‍♀‍➡' => 'Fußgängerin: mittelhelle Hautfarbe, nach rechts',
+    '🚶🏽‍♀‍➡' => 'Fußgängerin: mittlere Hautfarbe, nach rechts',
+    '🚶🏾‍♀‍➡' => 'Fußgängerin: mitteldunkle Hautfarbe, nach rechts',
+    '🚶🏿‍♀‍➡' => 'Fußgängerin: dunkle Hautfarbe, nach rechts',
+    '🚶🏻‍♂‍➡' => 'Fußgänger: helle Hautfarbe, nach rechts',
+    '🚶🏼‍♂‍➡' => 'Fußgänger: mittelhelle Hautfarbe, nach rechts',
+    '🚶🏽‍♂‍➡' => 'Fußgänger: mittlere Hautfarbe, nach rechts',
+    '🚶🏾‍♂‍➡' => 'Fußgänger: mitteldunkle Hautfarbe, nach rechts',
+    '🚶🏿‍♂‍➡' => 'Fußgänger: dunkle Hautfarbe, nach rechts',
+    '🧎🏻‍♀‍➡' => 'kniende Frau: helle Hautfarbe, nach rechts',
+    '🧎🏼‍♀‍➡' => 'kniende Frau: mittelhelle Hautfarbe, nach rechts',
+    '🧎🏽‍♀‍➡' => 'kniende Frau: mittlere Hautfarbe, nach rechts',
+    '🧎🏾‍♀‍➡' => 'kniende Frau: mitteldunkle Hautfarbe, nach rechts',
+    '🧎🏿‍♀‍➡' => 'kniende Frau: dunkle Hautfarbe, nach rechts',
+    '🧎🏻‍♂‍➡' => 'kniender Mann: helle Hautfarbe, nach rechts',
+    '🧎🏼‍♂‍➡' => 'kniender Mann: mittelhelle Hautfarbe, nach rechts',
+    '🧎🏽‍♂‍➡' => 'kniender Mann: mittlere Hautfarbe, nach rechts',
+    '🧎🏾‍♂‍➡' => 'kniender Mann: mitteldunkle Hautfarbe, nach rechts',
+    '🧎🏿‍♂‍➡' => 'kniender Mann: dunkle Hautfarbe, nach rechts',
+    '🧑🏻‍🦯‍➡' => 'Person mit Langstock: helle Hautfarbe, nach rechts',
+    '🧑🏼‍🦯‍➡' => 'Person mit Langstock: mittelhelle Hautfarbe, nach rechts',
+    '🧑🏽‍🦯‍➡' => 'Person mit Langstock: mittlere Hautfarbe, nach rechts',
+    '🧑🏾‍🦯‍➡' => 'Person mit Langstock: mitteldunkle Hautfarbe, nach rechts',
+    '🧑🏿‍🦯‍➡' => 'Person mit Langstock: dunkle Hautfarbe, nach rechts',
+    '👨🏻‍🦯‍➡' => 'Mann mit Langstock: helle Hautfarbe, nach rechts',
+    '👨🏼‍🦯‍➡' => 'Mann mit Langstock: mittelhelle Hautfarbe, nach rechts',
+    '👨🏽‍🦯‍➡' => 'Mann mit Langstock: mittlere Hautfarbe, nach rechts',
+    '👨🏾‍🦯‍➡' => 'Mann mit Langstock: mitteldunkle Hautfarbe, nach rechts',
+    '👨🏿‍🦯‍➡' => 'Mann mit Langstock: dunkle Hautfarbe, nach rechts',
+    '👩🏻‍🦯‍➡' => 'Frau mit Langstock: helle Hautfarbe, nach rechts',
+    '👩🏼‍🦯‍➡' => 'Frau mit Langstock: mittelhelle Hautfarbe, nach rechts',
+    '👩🏽‍🦯‍➡' => 'Frau mit Langstock: mittlere Hautfarbe, nach rechts',
+    '👩🏾‍🦯‍➡' => 'Frau mit Langstock: mitteldunkle Hautfarbe, nach rechts',
+    '👩🏿‍🦯‍➡' => 'Frau mit Langstock: dunkle Hautfarbe, nach rechts',
+    '🧑🏻‍🦼‍➡' => 'Person in elektrischem Rollstuhl: helle Hautfarbe, nach rechts',
+    '🧑🏼‍🦼‍➡' => 'Person in elektrischem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '🧑🏽‍🦼‍➡' => 'Person in elektrischem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '🧑🏾‍🦼‍➡' => 'Person in elektrischem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '🧑🏿‍🦼‍➡' => 'Person in elektrischem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '👨🏻‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: helle Hautfarbe, nach rechts',
+    '👨🏼‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '👨🏽‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '👨🏾‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '👨🏿‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '👩🏻‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: helle Hautfarbe, nach rechts',
+    '👩🏼‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '👩🏽‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '👩🏾‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '👩🏿‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '🧑🏻‍🦽‍➡' => 'Person in manuellem Rollstuhl: helle Hautfarbe, nach rechts',
+    '🧑🏼‍🦽‍➡' => 'Person in manuellem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '🧑🏽‍🦽‍➡' => 'Person in manuellem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '🧑🏾‍🦽‍➡' => 'Person in manuellem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '🧑🏿‍🦽‍➡' => 'Person in manuellem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '👨🏻‍🦽‍➡' => 'Mann in manuellem Rollstuhl: helle Hautfarbe, nach rechts',
+    '👨🏼‍🦽‍➡' => 'Mann in manuellem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '👨🏽‍🦽‍➡' => 'Mann in manuellem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '👨🏾‍🦽‍➡' => 'Mann in manuellem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '👨🏿‍🦽‍➡' => 'Mann in manuellem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '👩🏻‍🦽‍➡' => 'Frau in manuellem Rollstuhl: helle Hautfarbe, nach rechts',
+    '👩🏼‍🦽‍➡' => 'Frau in manuellem Rollstuhl: mittelhelle Hautfarbe, nach rechts',
+    '👩🏽‍🦽‍➡' => 'Frau in manuellem Rollstuhl: mittlere Hautfarbe, nach rechts',
+    '👩🏾‍🦽‍➡' => 'Frau in manuellem Rollstuhl: mitteldunkle Hautfarbe, nach rechts',
+    '👩🏿‍🦽‍➡' => 'Frau in manuellem Rollstuhl: dunkle Hautfarbe, nach rechts',
+    '🏃🏻‍♀‍➡' => 'laufende Frau: helle Hautfarbe, nach rechts',
+    '🏃🏼‍♀‍➡' => 'laufende Frau: mittelhelle Hautfarbe, nach rechts',
+    '🏃🏽‍♀‍➡' => 'laufende Frau: mittlere Hautfarbe, nach rechts',
+    '🏃🏾‍♀‍➡' => 'laufende Frau: mitteldunkle Hautfarbe, nach rechts',
+    '🏃🏿‍♀‍➡' => 'laufende Frau: dunkle Hautfarbe, nach rechts',
+    '🏃🏻‍♂‍➡' => 'laufender Mann: helle Hautfarbe, nach rechts',
+    '🏃🏼‍♂‍➡' => 'laufender Mann: mittelhelle Hautfarbe, nach rechts',
+    '🏃🏽‍♂‍➡' => 'laufender Mann: mittlere Hautfarbe, nach rechts',
+    '🏃🏾‍♂‍➡' => 'laufender Mann: mitteldunkle Hautfarbe, nach rechts',
+    '🏃🏿‍♂‍➡' => 'laufender Mann: dunkle Hautfarbe, nach rechts',
     '🫱🏻‍🫲🏼' => 'Handschlag: helle Hautfarbe, mittelhelle Hautfarbe',
     '🫱🏻‍🫲🏽' => 'Handschlag: helle Hautfarbe, mittlere Hautfarbe',
     '🫱🏻‍🫲🏾' => 'Handschlag: helle Hautfarbe, mitteldunkle Hautfarbe',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'Handschlag: dunkle Hautfarbe, mittelhelle Hautfarbe',
     '🫱🏿‍🫲🏽' => 'Handschlag: dunkle Hautfarbe, mittlere Hautfarbe',
     '🫱🏿‍🫲🏾' => 'Handschlag: dunkle Hautfarbe, mitteldunkle Hautfarbe',
-    '🚶‍♀‍➡' => 'Fußgängerin nach rechts',
-    '🚶‍♂‍➡' => 'Fußgänger nach rechts',
-    '🧎‍♀‍➡' => 'kniende Frau nach rechts',
-    '🧎‍♂‍➡' => 'kniender Mann nach rechts',
-    '🧑‍🦯‍➡' => 'Person mit Langstock nach rechts',
-    '👨‍🦯‍➡' => 'Mann mit Langstock nach rechts',
-    '👩‍🦯‍➡' => 'Frau mit Langstock nach rechts',
-    '🧑‍🦼‍➡' => 'Person in elektrischem Rollstuhl nach rechts',
-    '👨‍🦼‍➡' => 'Mann in elektrischem Rollstuhl nach rechts',
-    '👩‍🦼‍➡' => 'Frau in elektrischem Rollstuhl nach rechts',
-    '🧑‍🦽‍➡' => 'Person in manuellem Rollstuhl nach rechts',
-    '👨‍🦽‍➡' => 'Mann in manuellem Rollstuhl nach rechts',
-    '👩‍🦽‍➡' => 'Frau in manuellem Rollstuhl nach rechts',
-    '🏃‍♀‍➡' => 'laufende Frau nach rechts',
-    '🏃‍♂‍➡' => 'laufender Mann nach rechts',
+    '🚶‍♀‍➡' => 'Fußgängerin: nach rechts',
+    '🚶‍♂‍➡' => 'Fußgänger: nach rechts',
+    '🧎‍♀‍➡' => 'kniende Frau: nach rechts',
+    '🧎‍♂‍➡' => 'kniender Mann: nach rechts',
+    '🧑‍🦯‍➡' => 'Person mit Langstock: nach rechts',
+    '👨‍🦯‍➡' => 'Mann mit Langstock: nach rechts',
+    '👩‍🦯‍➡' => 'Frau mit Langstock: nach rechts',
+    '🧑‍🦼‍➡' => 'Person in elektrischem Rollstuhl: nach rechts',
+    '👨‍🦼‍➡' => 'Mann in elektrischem Rollstuhl: nach rechts',
+    '👩‍🦼‍➡' => 'Frau in elektrischem Rollstuhl: nach rechts',
+    '🧑‍🦽‍➡' => 'Person in manuellem Rollstuhl: nach rechts',
+    '👨‍🦽‍➡' => 'Mann in manuellem Rollstuhl: nach rechts',
+    '👩‍🦽‍➡' => 'Frau in manuellem Rollstuhl: nach rechts',
+    '🏃‍♀‍➡' => 'laufende Frau: nach rechts',
+    '🏃‍♂‍➡' => 'laufender Mann: nach rechts',
     '👩‍❤‍👨' => 'Liebespaar: Frau, Mann',
     '👨‍❤‍👨' => 'Liebespaar: Mann, Mann',
     '👩‍❤‍👩' => 'Liebespaar: Frau, Frau',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'Person: mittlere Hautfarbe, Glatze',
     '🧑🏾‍🦲' => 'Person: mitteldunkle Hautfarbe, Glatze',
     '🧑🏿‍🦲' => 'Person: dunkle Hautfarbe, Glatze',
+    '🧑🏻‍🩰' => 'Balletttänzerin: helle Hautfarbe',
+    '🧑🏼‍🩰' => 'Balletttänzerin: mittelhelle Hautfarbe',
+    '🧑🏽‍🩰' => 'Balletttänzerin: mittlere Hautfarbe',
+    '🧑🏾‍🩰' => 'Balletttänzerin: mitteldunkle Hautfarbe',
+    '🧑🏿‍🩰' => 'Balletttänzerin: dunkle Hautfarbe',
     '🧔🏻‍♂' => 'Mann: helle Hautfarbe, Bart',
     '🧔🏼‍♂' => 'Mann: mittelhelle Hautfarbe, Bart',
     '🧔🏽‍♂' => 'Mann: mittlere Hautfarbe, Bart',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'Fußgängerin: mittlere Hautfarbe',
     '🚶🏾‍♀' => 'Fußgängerin: mitteldunkle Hautfarbe',
     '🚶🏿‍♀' => 'Fußgängerin: dunkle Hautfarbe',
-    '🚶🏻‍➡' => 'Fußgänger(in) nach rechts',
-    '🚶🏼‍➡' => 'Fußgänger(in) nach rechts',
-    '🚶🏽‍➡' => 'Fußgänger(in) nach rechts',
-    '🚶🏾‍➡' => 'Fußgänger(in) nach rechts',
-    '🚶🏿‍➡' => 'Fußgänger(in) nach rechts',
+    '🚶🏻‍➡' => 'Fußgänger(in): helle Hautfarbe, nach rechts',
+    '🚶🏼‍➡' => 'Fußgänger(in): mittelhelle Hautfarbe, nach rechts',
+    '🚶🏽‍➡' => 'Fußgänger(in): mittlere Hautfarbe, nach rechts',
+    '🚶🏾‍➡' => 'Fußgänger(in): mitteldunkle Hautfarbe, nach rechts',
+    '🚶🏿‍➡' => 'Fußgänger(in): dunkle Hautfarbe, nach rechts',
     '🧍🏻‍♂' => 'stehender Mann: helle Hautfarbe',
     '🧍🏼‍♂' => 'stehender Mann: mittelhelle Hautfarbe',
     '🧍🏽‍♂' => 'stehender Mann: mittlere Hautfarbe',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'kniende Frau: mittlere Hautfarbe',
     '🧎🏾‍♀' => 'kniende Frau: mitteldunkle Hautfarbe',
     '🧎🏿‍♀' => 'kniende Frau: dunkle Hautfarbe',
-    '🧎🏻‍➡' => 'kniende Person nach rechts',
-    '🧎🏼‍➡' => 'kniende Person nach rechts',
-    '🧎🏽‍➡' => 'kniende Person nach rechts',
-    '🧎🏾‍➡' => 'kniende Person nach rechts',
-    '🧎🏿‍➡' => 'kniende Person nach rechts',
+    '🧎🏻‍➡' => 'kniende Person: helle Hautfarbe, nach rechts',
+    '🧎🏼‍➡' => 'kniende Person: mittelhelle Hautfarbe, nach rechts',
+    '🧎🏽‍➡' => 'kniende Person: mittlere Hautfarbe, nach rechts',
+    '🧎🏾‍➡' => 'kniende Person: mitteldunkle Hautfarbe, nach rechts',
+    '🧎🏿‍➡' => 'kniende Person: dunkle Hautfarbe, nach rechts',
     '🧑🏻‍🦯' => 'Person mit Langstock: helle Hautfarbe',
     '🧑🏼‍🦯' => 'Person mit Langstock: mittelhelle Hautfarbe',
     '🧑🏽‍🦯' => 'Person mit Langstock: mittlere Hautfarbe',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'laufende Frau: mittlere Hautfarbe',
     '🏃🏾‍♀' => 'laufende Frau: mitteldunkle Hautfarbe',
     '🏃🏿‍♀' => 'laufende Frau: dunkle Hautfarbe',
-    '🏃🏻‍➡' => 'laufende Person nach rechts',
-    '🏃🏼‍➡' => 'laufende Person nach rechts',
-    '🏃🏽‍➡' => 'laufende Person nach rechts',
-    '🏃🏾‍➡' => 'laufende Person nach rechts',
-    '🏃🏿‍➡' => 'laufende Person nach rechts',
+    '🏃🏻‍➡' => 'laufende Person: helle Hautfarbe, nach rechts',
+    '🏃🏼‍➡' => 'laufende Person: mittelhelle Hautfarbe, nach rechts',
+    '🏃🏽‍➡' => 'laufende Person: mittlere Hautfarbe, nach rechts',
+    '🏃🏾‍➡' => 'laufende Person: mitteldunkle Hautfarbe, nach rechts',
+    '🏃🏿‍➡' => 'laufende Person: dunkle Hautfarbe, nach rechts',
+    '👯🏻‍♀' => 'Frauen mit Hasenohren: helle Hautfarbe',
+    '👯🏼‍♀' => 'Frauen mit Hasenohren: mittelhelle Hautfarbe',
+    '👯🏽‍♀' => 'Frauen mit Hasenohren: mittlere Hautfarbe',
+    '👯🏾‍♀' => 'Frauen mit Hasenohren: mitteldunkle Hautfarbe',
+    '👯🏿‍♀' => 'Frauen mit Hasenohren: dunkle Hautfarbe',
+    '👯🏻‍♂' => 'Männer mit Hasenohren: helle Hautfarbe',
+    '👯🏼‍♂' => 'Männer mit Hasenohren: mittelhelle Hautfarbe',
+    '👯🏽‍♂' => 'Männer mit Hasenohren: mittlere Hautfarbe',
+    '👯🏾‍♂' => 'Männer mit Hasenohren: mitteldunkle Hautfarbe',
+    '👯🏿‍♂' => 'Männer mit Hasenohren: dunkle Hautfarbe',
     '🧖🏻‍♂' => 'Mann in Dampfsauna: helle Hautfarbe',
     '🧖🏼‍♂' => 'Mann in Dampfsauna: mittelhelle Hautfarbe',
     '🧖🏽‍♂' => 'Mann in Dampfsauna: mittlere Hautfarbe',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'Rad schlagende Frau: mittlere Hautfarbe',
     '🤸🏾‍♀' => 'Rad schlagende Frau: mitteldunkle Hautfarbe',
     '🤸🏿‍♀' => 'Rad schlagende Frau: dunkle Hautfarbe',
+    '🤼🏻‍♀' => 'ringende Frauen: helle Hautfarbe',
+    '🤼🏼‍♀' => 'ringende Frauen: mittelhelle Hautfarbe',
+    '🤼🏽‍♀' => 'ringende Frauen: mittlere Hautfarbe',
+    '🤼🏾‍♀' => 'ringende Frauen: mitteldunkle Hautfarbe',
+    '🤼🏿‍♀' => 'ringende Frauen: dunkle Hautfarbe',
+    '🤼🏻‍♂' => 'ringende Männer: helle Hautfarbe',
+    '🤼🏼‍♂' => 'ringende Männer: mittelhelle Hautfarbe',
+    '🤼🏽‍♂' => 'ringende Männer: mittlere Hautfarbe',
+    '🤼🏾‍♂' => 'ringende Männer: mitteldunkle Hautfarbe',
+    '🤼🏿‍♂' => 'ringende Männer: dunkle Hautfarbe',
     '🤽🏻‍♂' => 'Wasserballspieler: helle Hautfarbe',
     '🤽🏼‍♂' => 'Wasserballspieler: mittelhelle Hautfarbe',
     '🤽🏽‍♂' => 'Wasserballspieler: mittlere Hautfarbe',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'Frau: lockiges Haar',
     '👩‍🦳' => 'Frau: weißes Haar',
     '👩‍🦲' => 'Frau: Glatze',
-    '🚶‍➡' => 'Fußgänger(in) nach rechts',
-    '🧎‍➡' => 'kniende Person nach rechts',
-    '🏃‍➡' => 'laufende Person nach rechts',
+    '🚶‍➡' => 'Fußgänger(in): nach rechts',
+    '🧎‍➡' => 'kniende Person: nach rechts',
+    '🏃‍➡' => 'laufende Person: nach rechts',
     '👨‍👦' => 'Familie: Mann, Junge',
     '👨‍👧' => 'Familie: Mann, Mädchen',
     '👩‍👦' => 'Familie: Frau, Junge',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'Frau in manuellem Rollstuhl',
     '🏃‍♂' => 'laufender Mann',
     '🏃‍♀' => 'laufende Frau',
+    '🧑‍🩰' => 'Balletttänzerin',
     '👯‍♂' => 'Männer mit Hasenohren',
     '👯‍♀' => 'Frauen mit Hasenohren',
     '🧖‍♂' => 'Mann in Dampfsauna',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'schwebender Mann im Anzug: mittlere Hautfarbe',
     '🕴🏾' => 'schwebender Mann im Anzug: mitteldunkle Hautfarbe',
     '🕴🏿' => 'schwebender Mann im Anzug: dunkle Hautfarbe',
+    '👯🏻' => 'Personen mit Hasenohren: helle Hautfarbe',
+    '👯🏼' => 'Personen mit Hasenohren: mittelhelle Hautfarbe',
+    '👯🏽' => 'Personen mit Hasenohren: mittlere Hautfarbe',
+    '👯🏾' => 'Personen mit Hasenohren: mitteldunkle Hautfarbe',
+    '👯🏿' => 'Personen mit Hasenohren: dunkle Hautfarbe',
     '🧖🏻' => 'Person in Dampfsauna: helle Hautfarbe',
     '🧖🏼' => 'Person in Dampfsauna: mittelhelle Hautfarbe',
     '🧖🏽' => 'Person in Dampfsauna: mittlere Hautfarbe',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'Rad schlagende Person: mittlere Hautfarbe',
     '🤸🏾' => 'Rad schlagende Person: mitteldunkle Hautfarbe',
     '🤸🏿' => 'Rad schlagende Person: dunkle Hautfarbe',
+    '🤼🏻' => 'Ringer(in): helle Hautfarbe',
+    '🤼🏼' => 'Ringer(in): mittelhelle Hautfarbe',
+    '🤼🏽' => 'Ringer(in): mittlere Hautfarbe',
+    '🤼🏾' => 'Ringer(in): mitteldunkle Hautfarbe',
+    '🤼🏿' => 'Ringer(in): dunkle Hautfarbe',
     '🤽🏻' => 'Wasserballspieler(in): helle Hautfarbe',
     '🤽🏼' => 'Wasserballspieler(in): mittelhelle Hautfarbe',
     '🤽🏽' => 'Wasserballspieler(in): mittlere Hautfarbe',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'Flagge: China',
     '🇨🇴' => 'Flagge: Kolumbien',
     '🇨🇵' => 'Flagge: Clipperton-Insel',
+    '🇨🇶' => 'Flagge: Sark',
     '🇨🇷' => 'Flagge: Costa Rica',
     '🇨🇺' => 'Flagge: Kuba',
     '🇨🇻' => 'Flagge: Cabo Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'mittlere Hautfarbe',
     '🏾' => 'mitteldunkle Hautfarbe',
     '🏿' => 'dunkle Hautfarbe',
-    '🪉' => 'Harfe',
-    '🪏' => 'Schaufel',
-    '🪾' => 'kahler Baum',
-    '🫆' => 'Fingerabdruck',
-    '🫜' => 'Wurzelgemüse',
-    '🫟' => 'Spritzer',
-    '🫩' => 'Gesicht mit Augenringen',
     '😀' => 'grinsendes Gesicht',
     '😃' => 'grinsendes Gesicht mit großen Augen',
     '😄' => 'grinsendes Gesicht mit lachenden Augen',
@@ -2450,6 +2600,7 @@
     '😪' => 'schläfriges Gesicht',
     '🤤' => 'sabberndes Gesicht',
     '😴' => 'schlafendes Gesicht',
+    '🫩' => 'Gesicht mit Augenringen',
     '😷' => 'Gesicht mit Atemschutzmaske',
     '🤒' => 'Gesicht mit Fieberthermometer',
     '🤕' => 'Gesicht mit Kopfverband',
@@ -2476,6 +2627,7 @@
     '😯' => 'verdutztes Gesicht',
     '😲' => 'erstauntes Gesicht',
     '😳' => 'errötetes Gesicht mit großen Augen',
+    '🫪' => 'verzerrtes Gesicht',
     '🥺' => 'bettelndes Gesicht',
     '🥹' => 'Gesicht, das Tränen zurückhält',
     '😦' => 'entsetztes Gesicht',
@@ -2547,6 +2699,7 @@
     '💋' => 'Kussabdruck',
     '💯' => '100 Punkte',
     '💢' => 'Ärger',
+    '🫯' => 'Kampfwolke',
     '💥' => 'Zusammenstoß',
     '💫' => 'schwindlig',
     '💦' => 'Schweißtropfen',
@@ -2670,6 +2823,7 @@
     '🧞' => 'Flaschengeist',
     '🧟' => 'Zombie',
     '🧌' => 'Troll',
+    '🫈' => 'haariges Wesen',
     '💆' => 'Person, die eine Kopfmassage bekommt',
     '💇' => 'Person beim Haareschneiden',
     '🚶' => 'Fußgänger(in)',
@@ -2713,6 +2867,7 @@
     '🫂' => 'sich umarmende Personen',
     '👪' => 'Familie',
     '👣' => 'Fußabdrücke',
+    '🫆' => 'Fingerabdruck',
     '🦰' => 'rotes Haar',
     '🦱' => 'lockiges Haar',
     '🦳' => 'weißes Haar',
@@ -2812,6 +2967,7 @@
     '🐳' => 'blasender Wal',
     '🐋' => 'Wal',
     '🐬' => 'Delfin',
+    '🫍' => 'Orca',
     '🦭' => 'Seehund',
     '🐟' => 'Fisch',
     '🐠' => 'Tropenfisch',
@@ -2821,6 +2977,11 @@
     '🐚' => 'Schneckenhaus',
     '🪸' => 'Koralle',
     '🪼' => 'Qualle',
+    '🦀' => 'Krebs',
+    '🦞' => 'Hummer',
+    '🦐' => 'Garnele',
+    '🦑' => 'Tintenfisch',
+    '🦪' => 'Auster',
     '🐌' => 'Schnecke',
     '🦋' => 'Schmetterling',
     '🐛' => 'Raupe',
@@ -2865,6 +3026,7 @@
     '🪹' => 'leeres Nest',
     '🪺' => 'Nest mit Eiern',
     '🍄' => 'Fliegenpilz',
+    '🪾' => 'kahler Baum',
     '🍇' => 'Trauben',
     '🍈' => 'Honigmelone',
     '🍉' => 'Wassermelone',
@@ -2901,6 +3063,7 @@
     '🌰' => 'Kastanie',
     '🫚' => 'Ingwer',
     '🫛' => 'Erbsenschote',
+    '🫜' => 'Wurzelgemüse',
     '🍞' => 'Brot',
     '🥐' => 'Croissant',
     '🥖' => 'Baguette',
@@ -2952,11 +3115,6 @@
     '🥟' => 'Teigtasche',
     '🥠' => 'Glückskeks',
     '🥡' => 'Takeaway-Schachtel',
-    '🦀' => 'Krebs',
-    '🦞' => 'Hummer',
-    '🦐' => 'Garnele',
-    '🦑' => 'Tintenfisch',
-    '🦪' => 'Auster',
     '🍦' => 'Softeis',
     '🍧' => 'Wassereis',
     '🍨' => 'Eiscreme',
@@ -3007,6 +3165,7 @@
     '🧭' => 'Kompass',
     '🏔' => 'schneebedeckter Berg',
     '⛰' => 'Berg',
+    '🛘' => 'Erdrutsch',
     '🌋' => 'Vulkan',
     '🗻' => 'Fuji',
     '🏕' => 'Camping',
@@ -3367,16 +3526,18 @@
     '🎧' => 'Kopfhörer',
     '📻' => 'Radio',
     '🎷' => 'Saxofon',
+    '🎺' => 'Trompete',
+    '🪊' => 'Posaune',
     '🪗' => 'Akkordeon',
     '🎸' => 'Gitarre',
     '🎹' => 'Klaviatur',
-    '🎺' => 'Trompete',
     '🎻' => 'Geige',
     '🪕' => 'Banjo',
     '🥁' => 'Trommel',
     '🪘' => 'afrikanische Trommel',
     '🪇' => 'Maracas',
     '🪈' => 'Flöte',
+    '🪉' => 'Harfe',
     '📱' => 'Mobiltelefon',
     '📲' => 'Mobiltelefon mit Pfeil',
     '☎' => 'Telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'Pagemarker',
     '🔖' => 'Lesezeichen',
     '🏷' => 'Etikett',
-    '💰' => 'Geldsack',
     '🪙' => 'Münze',
+    '💰' => 'Geldsack',
+    '🪎' => 'Schatztruhe',
     '💴' => 'Yen-Banknote',
     '💵' => 'Dollar-Banknote',
     '💶' => 'Euro-Banknote',
@@ -3514,6 +3676,7 @@
     '🧰' => 'Werkzeugkasten',
     '🧲' => 'Magnet',
     '🪜' => 'Leiter',
+    '🪏' => 'Schaufel',
     '⚗' => 'Destillierapparat',
     '🧪' => 'Reagenzglas',
     '🧫' => 'Petrischale',
@@ -3697,6 +3860,7 @@
     '✴' => 'achtstrahliger Stern',
     '❇' => 'Funkeln',
     '™' => 'Markenzeichen',
+    '🫟' => 'Spritzer',
     '🔠' => 'Eingabesymbol lateinische Großbuchstaben',
     '🔡' => 'Eingabesymbol lateinische Kleinbuchstaben',
     '🔢' => 'Eingabesymbol Zahlen',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-dsb.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-dsb.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-dsb.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-dsb.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'se póškajucy pórik: žeńska, žeńska, śamna barwa kóže a wósrědna barwa kóže',
     '👩🏿‍❤‍💋‍👩🏾' => 'se póškajucy pórik: žeńska, žeńska, śamna barwa kóže a srjejźnośamna barwa kóže',
     '👩🏿‍❤‍💋‍👩🏿' => 'se póškajucy pórik: žeńska, žeńska a śamna barwa kóže',
+    '🧑🏻‍🫯‍🧑🏼' => 'se běźecej wósobje: swětła barwa kóže, srjejźnoswětła barwa kóže',
+    '🧑🏻‍🫯‍🧑🏽' => 'se běźecej wósobje: swětła barwa kóže, wósrědna barwa kóže',
+    '🧑🏻‍🫯‍🧑🏾' => 'se běźecej wósobje: swětła barwa kóže, srjejźnośamna barwa kóže',
+    '🧑🏻‍🫯‍🧑🏿' => 'se běźecej wósobje: swětła barwa kóže, śamna barwa kóže',
+    '🧑🏼‍🫯‍🧑🏻' => 'se běźecej wósobje: srjejźnoswětła barwa kóže, swětła barwa kóže',
+    '🧑🏼‍🫯‍🧑🏽' => 'se běźecej wósobje: srjejźnoswětła barwa kóže, wósrědna barwa kóže',
+    '🧑🏼‍🫯‍🧑🏾' => 'se běźecej wósobje: srjejźnoswětła barwa kóže, srjejźnośamna barwa kóže',
+    '🧑🏼‍🫯‍🧑🏿' => 'se běźecej wósobje: srjejźnoswětła barwa kóže, śamna barwa kóže',
+    '🧑🏽‍🫯‍🧑🏻' => 'se běźecej wósobje: wósrědna barwa kóže, swětła barwa kóže',
+    '🧑🏽‍🫯‍🧑🏼' => 'se běźecej wósobje: wósrědna barwa kóže, srjejźnoswětła barwa kóže',
+    '🧑🏽‍🫯‍🧑🏾' => 'se běźecej wósobje: wósrědna barwa kóže, srjejźnośamna barwa kóže',
+    '🧑🏽‍🫯‍🧑🏿' => 'se běźecej wósobje: wósrědna barwa kóže, śamna barwa kóže',
+    '🧑🏾‍🫯‍🧑🏻' => 'se běźecej wósobje: srjejźnośamna barwa kóže, swětła barwa kóže',
+    '🧑🏾‍🫯‍🧑🏼' => 'se běźecej wósobje: srjejźnośamna barwa kóže, srjejźnoswětła barwa kóže',
+    '🧑🏾‍🫯‍🧑🏽' => 'se běźecej wósobje: srjejźnośamna barwa kóže, wósrědna barwa kóže',
+    '🧑🏾‍🫯‍🧑🏿' => 'se běźecej wósobje: srjejźnośamna barwa kóže, śamna barwa kóže',
+    '🧑🏿‍🫯‍🧑🏻' => 'se běźecej wósobje: śamna barwa kóže, swětła barwa kóže',
+    '🧑🏿‍🫯‍🧑🏼' => 'se běźecej wósobje: śamna barwa kóže, srjejźnoswětła barwa kóže',
+    '🧑🏿‍🫯‍🧑🏽' => 'se běźecej wósobje: śamna barwa kóže, wósrědna barwa kóže',
+    '🧑🏿‍🫯‍🧑🏾' => 'se běźecej wósobje: śamna barwa kóže, srjejźnośamna barwa kóže',
     '🧑🏻‍❤‍🧑🏼' => 'pórik z wutšobku: dorosćony, dorosćony, swětła barwa kóže a srjejźnoswětła barwa kóže',
     '🧑🏻‍❤‍🧑🏽' => 'pórik z wutšobku: dorosćony, dorosćony, swětła barwa kóže a wósrědna barwa kóže',
     '🧑🏻‍❤‍🧑🏾' => 'pórik z wutšobku: dorosćony, dorosćony, swětła barwa kóže a srjejźnośamna barwa kóže',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pórik z wutšobku: dorosćony, dorosćony, śamna barwa kóže a srjejźnoswětła barwa kóže',
     '🧑🏿‍❤‍🧑🏽' => 'pórik z wutšobku: dorosćony, dorosćony, śamna barwa kóže a wósrědna barwa kóže',
     '🧑🏿‍❤‍🧑🏾' => 'pórik z wutšobku: dorosćony, dorosćony, śamna barwa kóže a srjejźnośamna barwa kóže',
+    '🧑🏻‍🐰‍🧑🏼' => 'wósobje z wuchacowyma wušyma: swětła barwa kóže, srjejźnoswětła barwa kóže',
+    '🧑🏻‍🐰‍🧑🏽' => 'wósobje z wuchacowyma wušyma: swětła barwa kóže, wósrědna barwa kóže',
+    '🧑🏻‍🐰‍🧑🏾' => 'wósobje z wuchacowyma wušyma: swětła barwa kóže, srjejźnośamna barwa kóže',
+    '🧑🏻‍🐰‍🧑🏿' => 'wósobje z wuchacowyma wušyma: swětła barwa kóže, śamna barwa kóže',
+    '🧑🏼‍🐰‍🧑🏻' => 'wósobje z wuchacowyma wušyma: srjejźnoswětła barwa kóže, swětła barwa kóže',
+    '🧑🏼‍🐰‍🧑🏽' => 'wósobje z wuchacowyma wušyma: srjejźnoswětła barwa kóže, wósrědna barwa kóže',
+    '🧑🏼‍🐰‍🧑🏾' => 'wósobje z wuchacowyma wušyma: srjejźnoswětła barwa kóže, srjejźnośamna barwa kóže',
+    '🧑🏼‍🐰‍🧑🏿' => 'wósobje z wuchacowyma wušyma: srjejźnoswětła barwa kóže, śamna barwa kóže',
+    '🧑🏽‍🐰‍🧑🏻' => 'wósobje z wuchacowyma wušyma: wósrědna barwa kóže, swětła barwa kóže',
+    '🧑🏽‍🐰‍🧑🏼' => 'wósobje z wuchacowyma wušyma: wósrědna barwa kóže, srjejźnoswětła barwa kóže',
+    '🧑🏽‍🐰‍🧑🏾' => 'wósobje z wuchacowyma wušyma: wósrědna barwa kóže, srjejźnośamna barwa kóže',
+    '🧑🏽‍🐰‍🧑🏿' => 'wósobje z wuchacowyma wušyma: wósrědna barwa kóže, śamna barwa kóže',
+    '🧑🏾‍🐰‍🧑🏻' => 'wósobje z wuchacowyma wušyma: srjejźnośamna barwa kóže, swětła barwa kóže',
+    '🧑🏾‍🐰‍🧑🏼' => 'wósobje z wuchacowyma wušyma: srjejźnośamna barwa kóže, srjejźnoswětła barwa kóže',
+    '🧑🏾‍🐰‍🧑🏽' => 'wósobje z wuchacowyma wušyma: srjejźnośamna barwa kóže, wósrědna barwa kóže',
+    '🧑🏾‍🐰‍🧑🏿' => 'wósobje z wuchacowyma wušyma: srjejźnośamna barwa kóže, śamna barwa kóže',
+    '🧑🏿‍🐰‍🧑🏻' => 'wósobje z wuchacowyma wušyma: śamna barwa kóže, swětła barwa kóže',
+    '🧑🏿‍🐰‍🧑🏼' => 'wósobje z wuchacowyma wušyma: śamna barwa kóže, srjejźnoswětła barwa kóže',
+    '🧑🏿‍🐰‍🧑🏽' => 'wósobje z wuchacowyma wušyma: śamna barwa kóže, wósrědna barwa kóže',
+    '🧑🏿‍🐰‍🧑🏾' => 'wósobje z wuchacowyma wušyma: śamna barwa kóže, srjejźnośamna barwa kóže',
+    '👨🏻‍🫯‍👨🏼' => 'se běźecej muskej: swětła barwa kóže, srjejźnoswětła barwa kóže',
+    '👨🏻‍🫯‍👨🏽' => 'se běźecej muskej: swětła barwa kóže, wósrědna barwa kóže',
+    '👨🏻‍🫯‍👨🏾' => 'se běźecej muskej: swětła barwa kóže, srjejźnośamna barwa kóže',
+    '👨🏻‍🫯‍👨🏿' => 'se běźecej muskej: swětła barwa kóže, śamna barwa kóže',
+    '👨🏼‍🫯‍👨🏻' => 'se běźecej muskej: srjejźnoswětła barwa kóže, swětła barwa kóže',
+    '👨🏼‍🫯‍👨🏽' => 'se běźecej muskej: srjejźnoswětła barwa kóže, wósrědna barwa kóže',
+    '👨🏼‍🫯‍👨🏾' => 'se běźecej muskej: srjejźnoswětła barwa kóže, srjejźnośamna barwa kóže',
+    '👨🏼‍🫯‍👨🏿' => 'se běźecej muskej: srjejźnoswětła barwa kóže, śamna barwa kóže',
+    '👨🏽‍🫯‍👨🏻' => 'se běźecej muskej: wósrědna barwa kóže, swětła barwa kóže',
+    '👨🏽‍🫯‍👨🏼' => 'se běźecej muskej: wósrědna barwa kóže, srjejźnoswětła barwa kóže',
+    '👨🏽‍🫯‍👨🏾' => 'se běźecej muskej: wósrědna barwa kóže, srjejźnośamna barwa kóže',
+    '👨🏽‍🫯‍👨🏿' => 'se běźecej muskej: wósrědna barwa kóže, śamna barwa kóže',
+    '👨🏾‍🫯‍👨🏻' => 'se běźecej muskej: srjejźnośamna barwa kóže, swětła barwa kóže',
+    '👨🏾‍🫯‍👨🏼' => 'se běźecej muskej: srjejźnośamna barwa kóže, srjejźnoswětła barwa kóže',
+    '👨🏾‍🫯‍👨🏽' => 'se běźecej muskej: srjejźnośamna barwa kóže, wósrědna barwa kóže',
+    '👨🏾‍🫯‍👨🏿' => 'se běźecej muskej: srjejźnośamna barwa kóže, śamna barwa kóže',
+    '👨🏿‍🫯‍👨🏻' => 'se běźecej muskej: śamna barwa kóže, swětła barwa kóže',
+    '👨🏿‍🫯‍👨🏼' => 'se běźecej muskej: śamna barwa kóže, srjejźnoswětła barwa kóže',
+    '👨🏿‍🫯‍👨🏽' => 'se běźecej muskej: śamna barwa kóže, wósrědna barwa kóže',
+    '👨🏿‍🫯‍👨🏾' => 'se běźecej muskej: śamna barwa kóže, srjejźnośamna barwa kóže',
     '👨🏻‍❤‍👨🏻' => 'pórik z wutšobku: muski, muski a swětła barwa kóže',
     '👨🏻‍❤‍👨🏼' => 'pórik z wutšobku: muski, muski, swětła barwa kóže a srjejźnoswětła barwa kóže',
     '👨🏻‍❤‍👨🏽' => 'pórik z wutšobku: muski, muski, swětła barwa kóže a wósrědna barwa kóže',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pórik z wutšobku: muski, muski, śamna barwa kóže a wósrědna barwa kóže',
     '👨🏿‍❤‍👨🏾' => 'pórik z wutšobku: muski, muski, śamna barwa kóže a srjejźnośamna barwa kóže',
     '👨🏿‍❤‍👨🏿' => 'pórik z wutšobku: muski, muski a śamna barwa kóže',
+    '👨🏻‍🐰‍👨🏼' => 'muskej z wuchacowyma wušyma: swětła barwa kóže, srjejźnoswětła barwa kóže',
+    '👨🏻‍🐰‍👨🏽' => 'muskej z wuchacowyma wušyma: swětła barwa kóže, wósrědna barwa kóže',
+    '👨🏻‍🐰‍👨🏾' => 'muskej z wuchacowyma wušyma: swětła barwa kóže, srjejźnośamna barwa kóže',
+    '👨🏻‍🐰‍👨🏿' => 'muskej z wuchacowyma wušyma: swětła barwa kóže, śamna barwa kóže',
+    '👨🏼‍🐰‍👨🏻' => 'muskej z wuchacowyma wušyma: srjejźnoswětła barwa kóže, swětła barwa kóže',
+    '👨🏼‍🐰‍👨🏽' => 'muskej z wuchacowyma wušyma: srjejźnoswětła barwa kóže, wósrědna barwa kóže',
+    '👨🏼‍🐰‍👨🏾' => 'muskej z wuchacowyma wušyma: srjejźnoswětła barwa kóže, srjejźnośamna barwa kóže',
+    '👨🏼‍🐰‍👨🏿' => 'muskej z wuchacowyma wušyma: srjejźnoswětła barwa kóže, śamna barwa kóže',
+    '👨🏽‍🐰‍👨🏻' => 'muskej z wuchacowyma wušyma: wósrědna barwa kóže, swětła barwa kóže',
+    '👨🏽‍🐰‍👨🏼' => 'muskej z wuchacowyma wušyma: wósrědna barwa kóže, srjejźnoswětła barwa kóže',
+    '👨🏽‍🐰‍👨🏾' => 'muskej z wuchacowyma wušyma: wósrědna barwa kóže, srjejźnośamna barwa kóže',
+    '👨🏽‍🐰‍👨🏿' => 'muskej z wuchacowyma wušyma: wósrědna barwa kóže, śamna barwa kóže',
+    '👨🏾‍🐰‍👨🏻' => 'muskej z wuchacowyma wušyma: srjejźnośamna barwa kóže, swětła barwa kóže',
+    '👨🏾‍🐰‍👨🏼' => 'muskej z wuchacowyma wušyma: srjejźnośamna barwa kóže, srjejźnoswětła barwa kóže',
+    '👨🏾‍🐰‍👨🏽' => 'muskej z wuchacowyma wušyma: srjejźnośamna barwa kóže, wósrědna barwa kóže',
+    '👨🏾‍🐰‍👨🏿' => 'muskej z wuchacowyma wušyma: srjejźnośamna barwa kóže, śamna barwa kóže',
+    '👨🏿‍🐰‍👨🏻' => 'muskej z wuchacowyma wušyma: śamna barwa kóže, swětła barwa kóže',
+    '👨🏿‍🐰‍👨🏼' => 'muskej z wuchacowyma wušyma: śamna barwa kóže, srjejźnoswětła barwa kóže',
+    '👨🏿‍🐰‍👨🏽' => 'muskej z wuchacowyma wušyma: śamna barwa kóže, wósrědna barwa kóže',
+    '👨🏿‍🐰‍👨🏾' => 'muskej z wuchacowyma wušyma: śamna barwa kóže, srjejźnośamna barwa kóže',
+    '👩🏻‍🫯‍👩🏼' => 'se běźecej žeńsce I: swětła barwa kóže, srjejźnoswětła barwa kóže',
+    '👩🏻‍🫯‍👩🏽' => 'se běźecej žeńsce I: swětła barwa kóže, wósrědna barwa kóže',
+    '👩🏻‍🫯‍👩🏾' => 'se běźecej žeńsce I: swětła barwa kóže, srjejźnośamna barwa kóže',
+    '👩🏻‍🫯‍👩🏿' => 'se běźecej žeńsce I: swětła barwa kóže, śamna barwa kóže',
+    '👩🏼‍🫯‍👩🏻' => 'se běźecej žeńsce I: srjejźnoswětła barwa kóže, swětła barwa kóže',
+    '👩🏼‍🫯‍👩🏽' => 'se běźecej žeńsce I: srjejźnoswětła barwa kóže, wósrědna barwa kóže',
+    '👩🏼‍🫯‍👩🏾' => 'se běźecej žeńsce I: srjejźnoswětła barwa kóže, srjejźnośamna barwa kóže',
+    '👩🏼‍🫯‍👩🏿' => 'se běźecej žeńsce I: srjejźnoswětła barwa kóže, śamna barwa kóže',
+    '👩🏽‍🫯‍👩🏻' => 'se běźecej žeńsce I: wósrědna barwa kóže, swětła barwa kóže',
+    '👩🏽‍🫯‍👩🏼' => 'se běźecej žeńsce I: wósrědna barwa kóže, srjejźnoswětła barwa kóže',
+    '👩🏽‍🫯‍👩🏾' => 'se běźecej žeńsce I: wósrědna barwa kóže, srjejźnośamna barwa kóže',
+    '👩🏽‍🫯‍👩🏿' => 'se běźecej žeńsce I: wósrědna barwa kóže, śamna barwa kóže',
+    '👩🏾‍🫯‍👩🏻' => 'se běźecej žeńsce I: srjejźnośamna barwa kóže, swětła barwa kóže',
+    '👩🏾‍🫯‍👩🏼' => 'se běźecej žeńsce I: srjejźnośamna barwa kóže, srjejźnoswětła barwa kóže',
+    '👩🏾‍🫯‍👩🏽' => 'se běźecej žeńsce I: srjejźnośamna barwa kóže, wósrědna barwa kóže',
+    '👩🏾‍🫯‍👩🏿' => 'se běźecej žeńsce I: srjejźnośamna barwa kóže, śamna barwa kóže',
+    '👩🏿‍🫯‍👩🏻' => 'se běźecej žeńsce I: śamna barwa kóže, swětła barwa kóže',
+    '👩🏿‍🫯‍👩🏼' => 'se běźecej žeńsce I: śamna barwa kóže, srjejźnoswětła barwa kóže',
+    '👩🏿‍🫯‍👩🏽' => 'se běźecej žeńsce I: śamna barwa kóže, wósrědna barwa kóže',
+    '👩🏿‍🫯‍👩🏾' => 'se běźecej žeńsce I: śamna barwa kóže, srjejźnośamna barwa kóže',
     '👩🏻‍❤‍👨🏻' => 'pórik z wutšobku: žeńska, muski a swětła barwa kóže',
     '👩🏻‍❤‍👨🏼' => 'pórik z wutšobku: žeńska, muski, swětła barwa kóže a srjejźnoswětła barwa kóže',
     '👩🏻‍❤‍👨🏽' => 'pórik z wutšobku: žeńska, muski, swětła barwa kóže a wósrědna barwa kóže',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pórik z wutšobku: žeńska, žeńska, śamna barwa kóže a wósrědna barwa kóže',
     '👩🏿‍❤‍👩🏾' => 'pórik z wutšobku: žeńska, žeńska, śamna barwa kóže a srjejźnośamna barwa kóže',
     '👩🏿‍❤‍👩🏿' => 'pórik z wutšobku: žeńska, žeńska a śamna barwa kóže',
+    '👩🏻‍🐰‍👩🏼' => 'žeńsce z wuchacowamy wušyma: swětła barwa kóže, srjejźnoswětła barwa kóže',
+    '👩🏻‍🐰‍👩🏽' => 'žeńsce z wuchacowamy wušyma: swětła barwa kóže, wósrědna barwa kóže',
+    '👩🏻‍🐰‍👩🏾' => 'žeńsce z wuchacowamy wušyma: swětła barwa kóže, srjejźnośamna barwa kóže',
+    '👩🏻‍🐰‍👩🏿' => 'žeńsce z wuchacowamy wušyma: swětła barwa kóže, śamna barwa kóže',
+    '👩🏼‍🐰‍👩🏻' => 'žeńsce z wuchacowamy wušyma: srjejźnoswětła barwa kóže, swětła barwa kóže',
+    '👩🏼‍🐰‍👩🏽' => 'žeńsce z wuchacowamy wušyma: srjejźnoswětła barwa kóže, wósrědna barwa kóže',
+    '👩🏼‍🐰‍👩🏾' => 'žeńsce z wuchacowamy wušyma: srjejźnoswětła barwa kóže, srjejźnośamna barwa kóže',
+    '👩🏼‍🐰‍👩🏿' => 'žeńsce z wuchacowamy wušyma: srjejźnoswětła barwa kóže, śamna barwa kóže',
+    '👩🏽‍🐰‍👩🏻' => 'žeńsce z wuchacowamy wušyma: wósrědna barwa kóže, swětła barwa kóže',
+    '👩🏽‍🐰‍👩🏼' => 'žeńsce z wuchacowamy wušyma: wósrědna barwa kóže, srjejźnoswětła barwa kóže',
+    '👩🏽‍🐰‍👩🏾' => 'žeńsce z wuchacowamy wušyma: wósrědna barwa kóže, srjejźnośamna barwa kóže',
+    '👩🏽‍🐰‍👩🏿' => 'žeńsce z wuchacowamy wušyma: wósrědna barwa kóže, śamna barwa kóže',
+    '👩🏾‍🐰‍👩🏻' => 'žeńsce z wuchacowamy wušyma: srjejźnośamna barwa kóže, swětła barwa kóže',
+    '👩🏾‍🐰‍👩🏼' => 'žeńsce z wuchacowamy wušyma: srjejźnośamna barwa kóže, srjejźnoswětła barwa kóže',
+    '👩🏾‍🐰‍👩🏽' => 'žeńsce z wuchacowamy wušyma: srjejźnośamna barwa kóže, wósrědna barwa kóže',
+    '👩🏾‍🐰‍👩🏿' => 'žeńsce z wuchacowamy wušyma: srjejźnośamna barwa kóže, śamna barwa kóže',
+    '👩🏿‍🐰‍👩🏻' => 'žeńsce z wuchacowamy wušyma: śamna barwa kóže, swětła barwa kóže',
+    '👩🏿‍🐰‍👩🏼' => 'žeńsce z wuchacowamy wušyma: śamna barwa kóže, srjejźnoswětła barwa kóže',
+    '👩🏿‍🐰‍👩🏽' => 'žeńsce z wuchacowamy wušyma: śamna barwa kóže, wósrědna barwa kóže',
+    '👩🏿‍🐰‍👩🏾' => 'žeńsce z wuchacowamy wušyma: śamna barwa kóže, srjejźnośamna barwa kóže',
     '🧑🏻‍🤝‍🧑🏻' => 'se za ruku źaržecej wósobje: swětła barwa kóže',
     '🧑🏻‍🤝‍🧑🏼' => 'se za ruku źaržecej wósobje: swětła barwa kóže, srjejźnoswětła barwa kóže',
     '🧑🏻‍🤝‍🧑🏽' => 'se za ruku źaržecej wósobje: swětła barwa kóže, wósrědna barwa kóže',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'familija: žeńska, žeńska, gólc a gólc',
     '👩‍👩‍👧‍👧' => 'familija: žeńska, žeńska, źowćo a źowćo',
     '🧑‍🧑‍🧒‍🧒' => 'familija: dorosćonej a góleśi',
-    '🚶🏻‍♀‍➡' => 'pěškaŕka napšawo',
-    '🚶🏼‍♀‍➡' => 'pěškaŕka napšawo',
-    '🚶🏽‍♀‍➡' => 'pěškaŕka napšawo',
-    '🚶🏾‍♀‍➡' => 'pěškaŕka napšawo',
-    '🚶🏿‍♀‍➡' => 'pěškaŕka napšawo',
-    '🚶🏻‍♂‍➡' => 'pěškaŕ napšawo',
-    '🚶🏼‍♂‍➡' => 'pěškaŕ napšawo',
-    '🚶🏽‍♂‍➡' => 'pěškaŕ napšawo',
-    '🚶🏾‍♂‍➡' => 'pěškaŕ napšawo',
-    '🚶🏿‍♂‍➡' => 'pěškaŕ napšawo',
-    '🧎🏻‍♀‍➡' => 'kólenkujuca žeńska napšawo',
-    '🧎🏼‍♀‍➡' => 'kólenkujuca žeńska napšawo',
-    '🧎🏽‍♀‍➡' => 'kólenkujuca žeńska napšawo',
-    '🧎🏾‍♀‍➡' => 'kólenkujuca žeńska napšawo',
-    '🧎🏿‍♀‍➡' => 'kólenkujuca žeńska napšawo',
-    '🧎🏻‍♂‍➡' => 'kólenkujucy muski napšawo',
-    '🧎🏼‍♂‍➡' => 'kólenkujucy muski napšawo',
-    '🧎🏽‍♂‍➡' => 'kólenkujucy muski napšawo',
-    '🧎🏾‍♂‍➡' => 'kólenkujucy muski napšawo',
-    '🧎🏿‍♂‍➡' => 'kólenkujucy muski napšawo',
-    '🧑🏻‍🦯‍➡' => 'wósoba z kijom za slěpych napšawo',
-    '🧑🏼‍🦯‍➡' => 'wósoba z kijom za slěpych napšawo',
-    '🧑🏽‍🦯‍➡' => 'wósoba z kijom za slěpych napšawo',
-    '🧑🏾‍🦯‍➡' => 'wósoba z kijom za slěpych napšawo',
-    '🧑🏿‍🦯‍➡' => 'wósoba z kijom za slěpych napšawo',
-    '👨🏻‍🦯‍➡' => 'muski z kijom za slěpych napšawo',
-    '👨🏼‍🦯‍➡' => 'muski z kijom za slěpych napšawo',
-    '👨🏽‍🦯‍➡' => 'muski z kijom za slěpych napšawo',
-    '👨🏾‍🦯‍➡' => 'muski z kijom za slěpych napšawo',
-    '👨🏿‍🦯‍➡' => 'muski z kijom za slěpych napšawo',
-    '👩🏻‍🦯‍➡' => 'žeńska z kijom za slěpych napšawo',
-    '👩🏼‍🦯‍➡' => 'žeńska z kijom za slěpych napšawo',
-    '👩🏽‍🦯‍➡' => 'žeńska z kijom za slěpych napšawo',
-    '👩🏾‍🦯‍➡' => 'žeńska z kijom za slěpych napšawo',
-    '👩🏿‍🦯‍➡' => 'žeńska z kijom za slěpych napšawo',
-    '🧑🏻‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole napšawo',
-    '🧑🏼‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole napšawo',
-    '🧑🏽‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole napšawo',
-    '🧑🏾‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole napšawo',
-    '🧑🏿‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole napšawo',
-    '👨🏻‍🦼‍➡' => 'muski w elektriskem jězdnem stole napšawo',
-    '👨🏼‍🦼‍➡' => 'muski w elektriskem jězdnem stole napšawo',
-    '👨🏽‍🦼‍➡' => 'muski w elektriskem jězdnem stole napšawo',
-    '👨🏾‍🦼‍➡' => 'muski w elektriskem jězdnem stole napšawo',
-    '👨🏿‍🦼‍➡' => 'muski w elektriskem jězdnem stole napšawo',
-    '👩🏻‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole napšawo',
-    '👩🏼‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole napšawo',
-    '👩🏽‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole napšawo',
-    '👩🏾‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole napšawo',
-    '👩🏿‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole napšawo',
-    '🧑🏻‍🦽‍➡' => 'wósoba w jězdnem stole napšawo',
-    '🧑🏼‍🦽‍➡' => 'wósoba w jězdnem stole napšawo',
-    '🧑🏽‍🦽‍➡' => 'wósoba w jězdnem stole napšawo',
-    '🧑🏾‍🦽‍➡' => 'wósoba w jězdnem stole napšawo',
-    '🧑🏿‍🦽‍➡' => 'wósoba w jězdnem stole napšawo',
-    '👨🏻‍🦽‍➡' => 'muski w jězdnem stole napšawo',
-    '👨🏼‍🦽‍➡' => 'muski w jězdnem stole napšawo',
-    '👨🏽‍🦽‍➡' => 'muski w jězdnem stole napšawo',
-    '👨🏾‍🦽‍➡' => 'muski w jězdnem stole napšawo',
-    '👨🏿‍🦽‍➡' => 'muski w jězdnem stole napšawo',
-    '👩🏻‍🦽‍➡' => 'žeńska w jězdnem stole napšawo',
-    '👩🏼‍🦽‍➡' => 'žeńska w jězdnem stole napšawo',
-    '👩🏽‍🦽‍➡' => 'žeńska w jězdnem stole napšawo',
-    '👩🏾‍🦽‍➡' => 'žeńska w jězdnem stole napšawo',
-    '👩🏿‍🦽‍➡' => 'žeńska w jězdnem stole napšawo',
-    '🏃🏻‍♀‍➡' => 'ganjajuca žeńska napšawo',
-    '🏃🏼‍♀‍➡' => 'ganjajuca žeńska napšawo',
-    '🏃🏽‍♀‍➡' => 'ganjajuca žeńska napšawo',
-    '🏃🏾‍♀‍➡' => 'ganjajuca žeńska napšawo',
-    '🏃🏿‍♀‍➡' => 'ganjajuca žeńska napšawo',
-    '🏃🏻‍♂‍➡' => 'ganjajucy muski napšawo',
-    '🏃🏼‍♂‍➡' => 'ganjajucy muski napšawo',
-    '🏃🏽‍♂‍➡' => 'ganjajucy muski napšawo',
-    '🏃🏾‍♂‍➡' => 'ganjajucy muski napšawo',
-    '🏃🏿‍♂‍➡' => 'ganjajucy muski napšawo',
+    '🚶🏻‍♀‍➡' => 'pěškaŕka: swětła barwa kóže, napšawo',
+    '🚶🏼‍♀‍➡' => 'pěškaŕka: srjejźnoswětła barwa kóže, napšawo',
+    '🚶🏽‍♀‍➡' => 'pěškaŕka: wósrědna barwa kóže, napšawo',
+    '🚶🏾‍♀‍➡' => 'pěškaŕka: srjejźnośamna barwa kóže, napšawo',
+    '🚶🏿‍♀‍➡' => 'pěškaŕka: śamna barwa kóže, napšawo',
+    '🚶🏻‍♂‍➡' => 'pěškaŕ: swětła barwa kóže, napšawo',
+    '🚶🏼‍♂‍➡' => 'pěškaŕ: srjejźnoswětła barwa kóže, napšawo',
+    '🚶🏽‍♂‍➡' => 'pěškaŕ: wósrědna barwa kóže, napšawo',
+    '🚶🏾‍♂‍➡' => 'pěškaŕ: srjejźnośamna barwa kóže, napšawo',
+    '🚶🏿‍♂‍➡' => 'pěškaŕ: śamna barwa kóže, napšawo',
+    '🧎🏻‍♀‍➡' => 'kólenkujuca žeńska: swětła barwa kóže, napšawo',
+    '🧎🏼‍♀‍➡' => 'kólenkujuca žeńska: srjejźnoswětła barwa kóže, napšawo',
+    '🧎🏽‍♀‍➡' => 'kólenkujuca žeńska: wósrědna barwa kóže, napšawo',
+    '🧎🏾‍♀‍➡' => 'kólenkujuca žeńska: srjejźnośamna barwa kóže, napšawo',
+    '🧎🏿‍♀‍➡' => 'kólenkujuca žeńska: śamna barwa kóže, napšawo',
+    '🧎🏻‍♂‍➡' => 'kólenkujucy muski: swětła barwa kóže, napšawo',
+    '🧎🏼‍♂‍➡' => 'kólenkujucy muski: srjejźnoswětła barwa kóže, napšawo',
+    '🧎🏽‍♂‍➡' => 'kólenkujucy muski: wósrědna barwa kóže, napšawo',
+    '🧎🏾‍♂‍➡' => 'kólenkujucy muski: srjejźnośamna barwa kóže, napšawo',
+    '🧎🏿‍♂‍➡' => 'kólenkujucy muski: śamna barwa kóže, napšawo',
+    '🧑🏻‍🦯‍➡' => 'wósoba z kijom za slěpych: swětła barwa kóže, napšawo',
+    '🧑🏼‍🦯‍➡' => 'wósoba z kijom za slěpych: srjejźnoswětła barwa kóže, napšawo',
+    '🧑🏽‍🦯‍➡' => 'wósoba z kijom za slěpych: wósrědna barwa kóže, napšawo',
+    '🧑🏾‍🦯‍➡' => 'wósoba z kijom za slěpych: srjejźnośamna barwa kóže, napšawo',
+    '🧑🏿‍🦯‍➡' => 'wósoba z kijom za slěpych: śamna barwa kóže, napšawo',
+    '👨🏻‍🦯‍➡' => 'muski z kijom za slěpych: swětła barwa kóže, napšawo',
+    '👨🏼‍🦯‍➡' => 'muski z kijom za slěpych: srjejźnoswětła barwa kóže, napšawo',
+    '👨🏽‍🦯‍➡' => 'muski z kijom za slěpych: wósrědna barwa kóže, napšawo',
+    '👨🏾‍🦯‍➡' => 'muski z kijom za slěpych: srjejźnośamna barwa kóže, napšawo',
+    '👨🏿‍🦯‍➡' => 'muski z kijom za slěpych: śamna barwa kóže, napšawo',
+    '👩🏻‍🦯‍➡' => 'žeńska z kijom za slěpych: swětła barwa kóže, napšawo',
+    '👩🏼‍🦯‍➡' => 'žeńska z kijom za slěpych: srjejźnoswětła barwa kóže, napšawo',
+    '👩🏽‍🦯‍➡' => 'žeńska z kijom za slěpych: wósrědna barwa kóže, napšawo',
+    '👩🏾‍🦯‍➡' => 'žeńska z kijom za slěpych: srjejźnośamna barwa kóže, napšawo',
+    '👩🏿‍🦯‍➡' => 'žeńska z kijom za slěpych: śamna barwa kóže, napšawo',
+    '🧑🏻‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole: swětła barwa kóže, napšawo',
+    '🧑🏼‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole: srjejźnoswětła barwa kóže, napšawo',
+    '🧑🏽‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole: wósrědna barwa kóže, napšawo',
+    '🧑🏾‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole: srjejźnośamna barwa kóže, napšawo',
+    '🧑🏿‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole: śamna barwa kóže, napšawo',
+    '👨🏻‍🦼‍➡' => 'muski w elektriskem jězdnem stole: swětła barwa kóže, napšawo',
+    '👨🏼‍🦼‍➡' => 'muski w elektriskem jězdnem stole: srjejźnoswětła barwa kóže, napšawo',
+    '👨🏽‍🦼‍➡' => 'muski w elektriskem jězdnem stole: wósrědna barwa kóže, napšawo',
+    '👨🏾‍🦼‍➡' => 'muski w elektriskem jězdnem stole: srjejźnośamna barwa kóže, napšawo',
+    '👨🏿‍🦼‍➡' => 'muski w elektriskem jězdnem stole: śamna barwa kóže, napšawo',
+    '👩🏻‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole: swětła barwa kóže, napšawo',
+    '👩🏼‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole: srjejźnoswětła barwa kóže, napšawo',
+    '👩🏽‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole: wósrědna barwa kóže, napšawo',
+    '👩🏾‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole: srjejźnośamna barwa kóže, napšawo',
+    '👩🏿‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole: śamna barwa kóže, napšawo',
+    '🧑🏻‍🦽‍➡' => 'wósoba w jězdnem stole: swětła barwa kóže, napšawo',
+    '🧑🏼‍🦽‍➡' => 'wósoba w jězdnem stole: srjejźnoswětła barwa kóže, napšawo',
+    '🧑🏽‍🦽‍➡' => 'wósoba w jězdnem stole: wósrědna barwa kóže, napšawo',
+    '🧑🏾‍🦽‍➡' => 'wósoba w jězdnem stole: srjejźnośamna barwa kóže, napšawo',
+    '🧑🏿‍🦽‍➡' => 'wósoba w jězdnem stole: śamna barwa kóže, napšawo',
+    '👨🏻‍🦽‍➡' => 'muski w jězdnem stole: swětła barwa kóže, napšawo',
+    '👨🏼‍🦽‍➡' => 'muski w jězdnem stole: srjejźnoswětła barwa kóže, napšawo',
+    '👨🏽‍🦽‍➡' => 'muski w jězdnem stole: wósrědna barwa kóže, napšawo',
+    '👨🏾‍🦽‍➡' => 'muski w jězdnem stole: srjejźnośamna barwa kóže, napšawo',
+    '👨🏿‍🦽‍➡' => 'muski w jězdnem stole: śamna barwa kóže, napšawo',
+    '👩🏻‍🦽‍➡' => 'žeńska w jězdnem stole: swětła barwa kóže, napšawo',
+    '👩🏼‍🦽‍➡' => 'žeńska w jězdnem stole: srjejźnoswětła barwa kóže, napšawo',
+    '👩🏽‍🦽‍➡' => 'žeńska w jězdnem stole: wósrědna barwa kóže, napšawo',
+    '👩🏾‍🦽‍➡' => 'žeńska w jězdnem stole: srjejźnośamna barwa kóže, napšawo',
+    '👩🏿‍🦽‍➡' => 'žeńska w jězdnem stole: śamna barwa kóže, napšawo',
+    '🏃🏻‍♀‍➡' => 'ganjajuca žeńska: swětła barwa kóže, napšawo',
+    '🏃🏼‍♀‍➡' => 'ganjajuca žeńska: srjejźnoswětła barwa kóže, napšawo',
+    '🏃🏽‍♀‍➡' => 'ganjajuca žeńska: wósrědna barwa kóže, napšawo',
+    '🏃🏾‍♀‍➡' => 'ganjajuca žeńska: srjejźnośamna barwa kóže, napšawo',
+    '🏃🏿‍♀‍➡' => 'ganjajuca žeńska: śamna barwa kóže, napšawo',
+    '🏃🏻‍♂‍➡' => 'ganjajucy muski: swětła barwa kóže, napšawo',
+    '🏃🏼‍♂‍➡' => 'ganjajucy muski: srjejźnoswětła barwa kóže, napšawo',
+    '🏃🏽‍♂‍➡' => 'ganjajucy muski: wósrědna barwa kóže, napšawo',
+    '🏃🏾‍♂‍➡' => 'ganjajucy muski: srjejźnośamna barwa kóže, napšawo',
+    '🏃🏿‍♂‍➡' => 'ganjajucy muski: śamna barwa kóže, napšawo',
     '🫱🏻‍🫲🏼' => 'pódaśe ruki: swětła barwa kóže, srjejźnoswětła barwa kóže',
     '🫱🏻‍🫲🏽' => 'pódaśe ruki: swětła barwa kóže, wósrědna barwa kóže',
     '🫱🏻‍🫲🏾' => 'pódaśe ruki: swětła barwa kóže, srjejźnośamna barwa kóže',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'pódaśe ruki: śamna barwa kóže, srjejźnoswětła barwa kóže',
     '🫱🏿‍🫲🏽' => 'pódaśe ruki: śamna barwa kóže, wósrědna barwa kóže',
     '🫱🏿‍🫲🏾' => 'pódaśe ruki: śamna barwa kóže, srjejźnośamna barwa kóže',
-    '🚶‍♀‍➡' => 'pěškaŕka napšawo',
-    '🚶‍♂‍➡' => 'pěškaŕ napšawo',
-    '🧎‍♀‍➡' => 'kólenkujuca žeńska napšawo',
-    '🧎‍♂‍➡' => 'kólenkujucy muski napšawo',
-    '🧑‍🦯‍➡' => 'wósoba z kijom za slěpych napšawo',
-    '👨‍🦯‍➡' => 'muski z kijom za slěpych napšawo',
-    '👩‍🦯‍➡' => 'žeńska z kijom za slěpych napšawo',
-    '🧑‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole napšawo',
-    '👨‍🦼‍➡' => 'muski w elektriskem jězdnem stole napšawo',
-    '👩‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole napšawo',
-    '🧑‍🦽‍➡' => 'wósoba w jězdnem stole napšawo',
-    '👨‍🦽‍➡' => 'muski w jězdnem stole napšawo',
-    '👩‍🦽‍➡' => 'žeńska w jězdnem stole napšawo',
-    '🏃‍♀‍➡' => 'ganjajuca žeńska napšawo',
-    '🏃‍♂‍➡' => 'ganjajucy muski napšawo',
+    '🚶‍♀‍➡' => 'pěškaŕka: napšawo',
+    '🚶‍♂‍➡' => 'pěškaŕ: napšawo',
+    '🧎‍♀‍➡' => 'kólenkujuca žeńska: napšawo',
+    '🧎‍♂‍➡' => 'kólenkujucy muski: napšawo',
+    '🧑‍🦯‍➡' => 'wósoba z kijom za slěpych: napšawo',
+    '👨‍🦯‍➡' => 'muski z kijom za slěpych: napšawo',
+    '👩‍🦯‍➡' => 'žeńska z kijom za slěpych: napšawo',
+    '🧑‍🦼‍➡' => 'wósoba w elektriskem jězdnem stole: napšawo',
+    '👨‍🦼‍➡' => 'muski w elektriskem jězdnem stole: napšawo',
+    '👩‍🦼‍➡' => 'žeńska w elektriskem jězdnem stole: napšawo',
+    '🧑‍🦽‍➡' => 'wósoba w jězdnem stole: napšawo',
+    '👨‍🦽‍➡' => 'muski w jězdnem stole: napšawo',
+    '👩‍🦽‍➡' => 'žeńska w jězdnem stole: napšawo',
+    '🏃‍♀‍➡' => 'ganjajuca žeńska: napšawo',
+    '🏃‍♂‍➡' => 'ganjajucy muski: napšawo',
     '👩‍❤‍👨' => 'pórik z wutšobku: žeńska, muski',
     '👨‍❤‍👨' => 'pórik z wutšobku: muski, muski',
     '👩‍❤‍👩' => 'pórik z wutšobku: žeńska, žeńska',
@@ -437,6 +557,11 @@
     '🧑🏽‍🦲' => 'dorosćony: wósrědna barwa kóže, plěch',
     '🧑🏾‍🦲' => 'dorosćony: srjejźnośamna barwa kóže, plěch',
     '🧑🏿‍🦲' => 'dorosćony: śamna barwa kóže, plěch',
+    '🧑🏻‍🩰' => 'baletowa rejowaŕka: swětła barwa kóže',
+    '🧑🏼‍🩰' => 'baletowa rejowaŕka: srjejźnoswětła barwa kóže',
+    '🧑🏽‍🩰' => 'baletowa rejowaŕka: wósrědna barwa kóže',
+    '🧑🏾‍🩰' => 'baletowa rejowaŕka: srjejźnośamna barwa kóže',
+    '🧑🏿‍🩰' => 'baletowa rejowaŕka: śamna barwa kóže',
     '🧔🏻‍♂' => 'muski: swětła barwa kóže, broda',
     '🧔🏼‍♂' => 'muski: srjejźnoswětła barwa kóže, broda',
     '🧔🏽‍♂' => 'muski: wósrědna barwa kóže, broda',
@@ -1027,11 +1152,11 @@
     '🚶🏽‍♀' => 'pěškaŕka: wósrědna barwa kóže',
     '🚶🏾‍♀' => 'pěškaŕka: srjejźnośamna barwa kóže',
     '🚶🏿‍♀' => 'pěškaŕka: śamna barwa kóže',
-    '🚶🏻‍➡' => 'pěšy duca wósoba napšawo',
-    '🚶🏼‍➡' => 'pěšy duca wósoba napšawo',
-    '🚶🏽‍➡' => 'pěšy duca wósoba napšawo',
-    '🚶🏾‍➡' => 'pěšy duca wósoba napšawo',
-    '🚶🏿‍➡' => 'pěšy duca wósoba napšawo',
+    '🚶🏻‍➡' => 'pěšy duca wósoba: swětła barwa kóže, napšawo',
+    '🚶🏼‍➡' => 'pěšy duca wósoba: srjejźnoswětła barwa kóže, napšawo',
+    '🚶🏽‍➡' => 'pěšy duca wósoba: wósrědna barwa kóže, napšawo',
+    '🚶🏾‍➡' => 'pěšy duca wósoba: srjejźnośamna barwa kóže, napšawo',
+    '🚶🏿‍➡' => 'pěšy duca wósoba: śamna barwa kóže, napšawo',
     '🧍🏻‍♂' => 'stojecy muski: swětła barwa kóže',
     '🧍🏼‍♂' => 'stojecy muski: srjejźnoswětła barwa kóže',
     '🧍🏽‍♂' => 'stojecy muski: wósrědna barwa kóže',
@@ -1052,11 +1177,11 @@
     '🧎🏽‍♀' => 'kólenkujuca žeńska: wósrědna barwa kóže',
     '🧎🏾‍♀' => 'kólenkujuca žeńska: srjejźnośamna barwa kóže',
     '🧎🏿‍♀' => 'kólenkujuca žeńska: śamna barwa kóže',
-    '🧎🏻‍➡' => 'kólenkujuca wósoba napšawo',
-    '🧎🏼‍➡' => 'kólenkujuca wósoba napšawo',
-    '🧎🏽‍➡' => 'kólenkujuca wósoba napšawo',
-    '🧎🏾‍➡' => 'kólenkujuca wósoba napšawo',
-    '🧎🏿‍➡' => 'kólenkujuca wósoba napšawo',
+    '🧎🏻‍➡' => 'kólenkujuca wósoba: swětła barwa kóže, napšawo',
+    '🧎🏼‍➡' => 'kólenkujuca wósoba: srjejźnoswětła barwa kóže, napšawo',
+    '🧎🏽‍➡' => 'kólenkujuca wósoba: wósrědna barwa kóže, napšawo',
+    '🧎🏾‍➡' => 'kólenkujuca wósoba: srjejźnośamna barwa kóže, napšawo',
+    '🧎🏿‍➡' => 'kólenkujuca wósoba: śamna barwa kóže, napšawo',
     '🧑🏻‍🦯' => 'wósoba z kijom za slěpych: swětła barwa kóže',
     '🧑🏼‍🦯' => 'wósoba z kijom za slěpych: srjejźnoswětła barwa kóže',
     '🧑🏽‍🦯' => 'wósoba z kijom za slěpych: wósrědna barwa kóže',
@@ -1112,11 +1237,21 @@
     '🏃🏽‍♀' => 'ganjajuca žeńska: wósrědna barwa kóže',
     '🏃🏾‍♀' => 'ganjajuca žeńska: srjejźnośamna barwa kóže',
     '🏃🏿‍♀' => 'ganjajuca žeńska: śamna barwa kóže',
-    '🏃🏻‍➡' => 'ganjajuca wósoba napšawo',
-    '🏃🏼‍➡' => 'ganjajuca wósoba napšawo',
-    '🏃🏽‍➡' => 'ganjajuca wósoba napšawo',
-    '🏃🏾‍➡' => 'ganjajuca wósoba napšawo',
-    '🏃🏿‍➡' => 'ganjajuca wósoba napšawo',
+    '🏃🏻‍➡' => 'ganjajuca wósoba: swětła barwa kóže, napšawo',
+    '🏃🏼‍➡' => 'ganjajuca wósoba: srjejźnoswětła barwa kóže, napšawo',
+    '🏃🏽‍➡' => 'ganjajuca wósoba: wósrědna barwa kóže, napšawo',
+    '🏃🏾‍➡' => 'ganjajuca wósoba: srjejźnośamna barwa kóže, napšawo',
+    '🏃🏿‍➡' => 'ganjajuca wósoba: śamna barwa kóže, napšawo',
+    '👯🏻‍♀' => 'žeńsce z wuchacowamy wušyma: swětła barwa kóže',
+    '👯🏼‍♀' => 'žeńsce z wuchacowamy wušyma: srjejźnoswětła barwa kóže',
+    '👯🏽‍♀' => 'žeńsce z wuchacowamy wušyma: wósrědna barwa kóže',
+    '👯🏾‍♀' => 'žeńsce z wuchacowamy wušyma: srjejźnośamna barwa kóže',
+    '👯🏿‍♀' => 'žeńsce z wuchacowamy wušyma: śamna barwa kóže',
+    '👯🏻‍♂' => 'muskej z wuchacowyma wušyma: swětła barwa kóže',
+    '👯🏼‍♂' => 'muskej z wuchacowyma wušyma: srjejźnoswětła barwa kóže',
+    '👯🏽‍♂' => 'muskej z wuchacowyma wušyma: wósrědna barwa kóže',
+    '👯🏾‍♂' => 'muskej z wuchacowyma wušyma: srjejźnośamna barwa kóže',
+    '👯🏿‍♂' => 'muskej z wuchacowyma wušyma: śamna barwa kóže',
     '🧖🏻‍♂' => 'muski w sawnje: swětła barwa kóže',
     '🧖🏼‍♂' => 'muski w sawnje: srjejźnoswětła barwa kóže',
     '🧖🏽‍♂' => 'muski w sawnje: wósrědna barwa kóže',
@@ -1227,6 +1362,16 @@
     '🤸🏽‍♀' => 'se na bok pśewjertujuca žeńska: wósrědna barwa kóže',
     '🤸🏾‍♀' => 'se na bok pśewjertujuca žeńska: srjejźnośamna barwa kóže',
     '🤸🏿‍♀' => 'se na bok pśewjertujuca žeńska: śamna barwa kóže',
+    '🤼🏻‍♀' => 'se běźecej žeńsce I: swětła barwa kóže',
+    '🤼🏼‍♀' => 'se běźecej žeńsce I: srjejźnoswětła barwa kóže',
+    '🤼🏽‍♀' => 'se běźecej žeńsce I: wósrědna barwa kóže',
+    '🤼🏾‍♀' => 'se běźecej žeńsce I: srjejźnośamna barwa kóže',
+    '🤼🏿‍♀' => 'se běźecej žeńsce I: śamna barwa kóže',
+    '🤼🏻‍♂' => 'se běźecej muskej: swětła barwa kóže',
+    '🤼🏼‍♂' => 'se běźecej muskej: srjejźnoswětła barwa kóže',
+    '🤼🏽‍♂' => 'se běźecej muskej: wósrědna barwa kóže',
+    '🤼🏾‍♂' => 'se běźecej muskej: srjejźnośamna barwa kóže',
+    '🤼🏿‍♂' => 'se běźecej muskej: śamna barwa kóže',
     '🤽🏻‍♂' => 'grajaŕ wódnego bala: swětła barwa kóže',
     '🤽🏼‍♂' => 'grajaŕ wódnego bala: srjejźnoswětła barwa kóže',
     '🤽🏽‍♂' => 'grajaŕ wódnego bala: wósrědna barwa kóže',
@@ -1279,9 +1424,9 @@
     '👩‍🦱' => 'žeńska: kuźerate włosy',
     '👩‍🦳' => 'žeńska: běłe włosy',
     '👩‍🦲' => 'žeńska: plěch',
-    '🚶‍➡' => 'pěšy duca wósoba napšawo',
-    '🧎‍➡' => 'kólenkujuca wósoba napšawo',
-    '🏃‍➡' => 'ganjajuca wósoba napšawo',
+    '🚶‍➡' => 'pěšy duca wósoba: napšawo',
+    '🧎‍➡' => 'kólenkujuca wósoba: napšawo',
+    '🏃‍➡' => 'ganjajuca wósoba: napšawo',
     '👨‍👦' => 'familija: muski, gólc',
     '👨‍👧' => 'familija: muski, źowćo',
     '👩‍👦' => 'familija: žeńska, gólc',
@@ -1422,6 +1567,7 @@
     '👩‍🦽' => 'žeńska w jězdnem stole',
     '🏃‍♂' => 'ganjajucy muski',
     '🏃‍♀' => 'ganjajuca žeńska',
+    '🧑‍🩰' => 'baletowa rejowaŕka',
     '👯‍♂' => 'muskej z wuchacowyma wušyma',
     '👯‍♀' => 'žeńsce z wuchacowamy wušyma',
     '🧖‍♂' => 'muski w sawnje',
@@ -2003,6 +2149,11 @@
     '🕴🏽' => 'se znosujucy muski we woblaku: wósrědna barwa kóže',
     '🕴🏾' => 'se znosujucy muski we woblaku: srjejźnośamna barwa kóže',
     '🕴🏿' => 'se znosujucy muski we woblaku: śamna barwa kóže',
+    '👯🏻' => 'wósobje z wuchacowyma wušyma: swětła barwa kóže',
+    '👯🏼' => 'wósobje z wuchacowyma wušyma: srjejźnoswětła barwa kóže',
+    '👯🏽' => 'wósobje z wuchacowyma wušyma: wósrědna barwa kóže',
+    '👯🏾' => 'wósobje z wuchacowyma wušyma: srjejźnośamna barwa kóže',
+    '👯🏿' => 'wósobje z wuchacowyma wušyma: śamna barwa kóže',
     '🧖🏻' => 'wósoba w sawnje: swětła barwa kóže',
     '🧖🏼' => 'wósoba w sawnje: srjejźnoswětła barwa kóže',
     '🧖🏽' => 'wósoba w sawnje: wósrědna barwa kóže',
@@ -2068,6 +2219,11 @@
     '🤸🏽' => 'wósoba, kenž se na bok pśewjertujo: wósrědna barwa kóže',
     '🤸🏾' => 'wósoba, kenž se na bok pśewjertujo: srjejźnośamna barwa kóže',
     '🤸🏿' => 'wósoba, kenž se na bok pśewjertujo: śamna barwa kóže',
+    '🤼🏻' => 'se běźecej wósobje: swětła barwa kóže',
+    '🤼🏼' => 'se běźecej wósobje: srjejźnoswětła barwa kóže',
+    '🤼🏽' => 'se běźecej wósobje: wósrědna barwa kóže',
+    '🤼🏾' => 'se běźecej wósobje: srjejźnośamna barwa kóže',
+    '🤼🏿' => 'se běźecej wósobje: śamna barwa kóže',
     '🤽🏻' => 'wódne balo grajuca wósoba: swětła barwa kóže',
     '🤽🏼' => 'wódne balo grajuca wósoba: srjejźnoswětła barwa kóže',
     '🤽🏽' => 'wódne balo grajuca wósoba: wósrědna barwa kóže',
@@ -2174,6 +2330,7 @@
     '🇨🇳' => 'chórgoj: China',
     '🇨🇴' => 'chórgoj: Kolumbiska',
     '🇨🇵' => 'chórgoj: Clippertonowa kupa',
+    '🇨🇶' => 'chórgoj: Sark',
     '🇨🇷' => 'chórgoj: Kosta Rika',
     '🇨🇺' => 'chórgoj: Kuba',
     '🇨🇻' => 'chórgoj: Kap Verde',
@@ -2387,13 +2544,6 @@
     '🏽' => 'wósrědna barwa kóže',
     '🏾' => 'srjejźnośamna barwa kóže',
     '🏿' => 'śamna barwa kóže',
-    '🪉' => 'harfa',
-    '🪏' => 'šupa',
-    '🪾' => 'bom bźez lista',
-    '🫆' => 'wótśišć palca',
-    '🫜' => 'kóruškata zelenina',
-    '🫟' => 'kalnjenje',
-    '🫩' => 'woblico ze łdzowyma měškoma pód wócyma',
     '😀' => 'se zubjece woblico',
     '😃' => 'se zubjece woblico z wjelikima wócyma',
     '😄' => 'se zubjece woblico ze se smjejucyma wócyma',
@@ -2447,6 +2597,7 @@
     '😪' => 'zaspane woblico',
     '🤤' => 'slinjece woblico',
     '😴' => 'spice woblico',
+    '🫩' => 'woblico ze łdzowyma měškoma pód wócyma',
     '😷' => 'woblico z dychańskeju šćitneju masku',
     '🤒' => 'woblico ze zymnicowym termometerom',
     '🤕' => 'woblico ze zawobalenim głowy',
@@ -2473,6 +2624,7 @@
     '😯' => 'zaźiwane woblico',
     '😲' => 'wjelgin zacwiblowane woblico',
     '😳' => 'zacerwjenjone woblico z wjelikima wócyma',
+    '🫪' => 'spryšćone woblico',
     '🥺' => 'pšosece woblico',
     '🥹' => 'łdzy zaźaržujuce woblico',
     '😦' => 'wuźěsone woblico',
@@ -2544,6 +2696,7 @@
     '💋' => 'wótśišć póška',
     '💯' => '100 dypkow',
     '💢' => 'górjenje',
+    '🫯' => 'mrokawa wójowanja',
     '💥' => 'kolizija',
     '💫' => 'zwity',
     '💦' => 'chrapki znoja',
@@ -2667,6 +2820,7 @@
     '🧞' => 'duch z flaše',
     '🧟' => 'combie',
     '🧌' => 'kobołt',
+    '🫈' => 'kósmata stwóŕba',
     '💆' => 'wósoba, kenž dostanjo masažu głowy',
     '💇' => 'wósoba, kenž dajo se włosy stśigaś',
     '🚶' => 'pěšy duca wósoba',
@@ -2710,6 +2864,7 @@
     '🫂' => 'se wobejmjecej wósobje',
     '👪' => 'familija',
     '👣' => 'stopje',
+    '🫆' => 'wótśišć palca',
     '🦰' => 'cerwjene włosy',
     '🦱' => 'kuźerate włosy',
     '🦳' => 'běłe włosy',
@@ -2809,6 +2964,7 @@
     '🐳' => 'wódu bryzgajuca wjelryba',
     '🐋' => 'wjelryba',
     '🐬' => 'delfin',
+    '🫍' => 'orka',
     '🦭' => 'mórski pjas',
     '🐟' => 'ryba',
     '🐠' => 'tropiska ryba',
@@ -2818,6 +2974,11 @@
     '🐚' => 'slinikowy konk',
     '🪸' => 'korala',
     '🪼' => 'kwala',
+    '🦀' => 'rak',
+    '🦞' => 'humer',
+    '🦐' => 'garnela',
+    '🦑' => 'tintowa ryba',
+    '🦪' => 'wustrica',
     '🐌' => 'slinik',
     '🦋' => 'mjatel',
     '🐛' => 'gusenica',
@@ -2862,6 +3023,7 @@
     '🪹' => 'prozne gnězdo',
     '🪺' => 'gnězdo z jajkoma',
     '🍄' => 'muchoradło',
+    '🪾' => 'bom bźez lista',
     '🍇' => 'winowa granka',
     '🍈' => 'mjodowa melona',
     '🍉' => 'wódna melona',
@@ -2898,6 +3060,7 @@
     '🌰' => 'kastanija',
     '🫚' => 'ingwer',
     '🫛' => 'tšuka grocha',
+    '🫜' => 'kóruškata zelenina',
     '🍞' => 'klěb',
     '🥐' => 'croissant',
     '🥖' => 'baguett',
@@ -2949,11 +3112,6 @@
     '🥟' => 'piroga',
     '🥠' => 'wobgluceński keks',
     '🥡' => 'tejzka za jězu',
-    '🦀' => 'rak',
-    '🦞' => 'humer',
-    '🦐' => 'garnela',
-    '🦑' => 'tintowa ryba',
-    '🦪' => 'wustrica',
     '🍦' => 'lodowa krema',
     '🍧' => 'strěty lod',
     '🍨' => 'lodowa krema w nopašku',
@@ -3004,6 +3162,7 @@
     '🧭' => 'kompas',
     '🏔' => 'góra ze zasněgowanym wjerchom',
     '⛰' => 'góra',
+    '🛘' => 'wótwalenje zemje',
     '🌋' => 'wulkan',
     '🗻' => 'góra Fuji',
     '🏕' => 'camping',
@@ -3364,16 +3523,18 @@
     '🎧' => 'nagłowne słuchatko',
     '📻' => 'radijo',
     '🎷' => 'saksofon',
+    '🎺' => 'trompeta',
+    '🪊' => 'pozawna',
     '🪗' => 'akordeon',
     '🎸' => 'gitara',
     '🎹' => 'klawiatura',
-    '🎺' => 'trompeta',
     '🎻' => 'fidle',
     '🪕' => 'banjo',
     '🥁' => 'bubon',
     '🪘' => 'afrikański bubon',
     '🪇' => 'maracasy',
     '🪈' => 'pišćałka',
+    '🪉' => 'harfa',
     '📱' => 'mobilny telefon',
     '📲' => 'mobilny telefon ze šypu',
     '☎' => 'telefon',
@@ -3427,8 +3588,9 @@
     '📑' => 'boki z cytańskim znamjenjami',
     '🔖' => 'cytańske znamje',
     '🏷' => 'etiket',
-    '💰' => 'měšk pjenjez',
     '🪙' => 'minca',
+    '💰' => 'měšk pjenjez',
+    '🪎' => 'lodka z pókładom',
     '💴' => 'yenowa bankowka',
     '💵' => 'dolarowa bankowka',
     '💶' => 'eurowa bankowka',
@@ -3511,6 +3673,7 @@
     '🧰' => 'kašćik ze źěłowym rědom',
     '🧲' => 'magnet',
     '🪜' => 'jabeŕ',
+    '🪏' => 'šupa',
     '⚗' => 'destilaciski aparat',
     '🧪' => 'reagencowy głažk',
     '🧫' => 'Petrijowa šklicka',
@@ -3694,6 +3857,7 @@
     '✴' => 'gwězda z wósym rožkami',
     '❇' => 'błyskotanje',
     '™' => 'znamje marki',
+    '🫟' => 'kalnjenje',
     '🔠' => 'zapódaj łatyńske wjelike pismiki',
     '🔡' => 'zapódaj łatyńske małe pismiki',
     '🔢' => 'zapódaj licby',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-el.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-el.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-el.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-el.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'φιλί: γυναίκα, γυναίκα, σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
     '👩🏿‍❤‍💋‍👩🏾' => 'φιλί: γυναίκα, γυναίκα, σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
     '👩🏿‍❤‍💋‍👩🏿' => 'φιλί: γυναίκα, γυναίκα, σκούρος τόνος δέρματος',
+    '🧑🏻‍🫯‍🧑🏼' => 'πάλη: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏻‍🫯‍🧑🏽' => 'πάλη: ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '🧑🏻‍🫯‍🧑🏾' => 'πάλη: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '🧑🏻‍🫯‍🧑🏿' => 'πάλη: ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '🧑🏼‍🫯‍🧑🏻' => 'πάλη: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏼‍🫯‍🧑🏽' => 'πάλη: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '🧑🏼‍🫯‍🧑🏾' => 'πάλη: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '🧑🏼‍🫯‍🧑🏿' => 'πάλη: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '🧑🏽‍🫯‍🧑🏻' => 'πάλη: μεσαίος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏽‍🫯‍🧑🏼' => 'πάλη: μεσαίος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏽‍🫯‍🧑🏾' => 'πάλη: μεσαίος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '🧑🏽‍🫯‍🧑🏿' => 'πάλη: μεσαίος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '🧑🏾‍🫯‍🧑🏻' => 'πάλη: μεσαίος-σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏾‍🫯‍🧑🏼' => 'πάλη: μεσαίος-σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏾‍🫯‍🧑🏽' => 'πάλη: μεσαίος-σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '🧑🏾‍🫯‍🧑🏿' => 'πάλη: μεσαίος-σκούρος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '🧑🏿‍🫯‍🧑🏻' => 'πάλη: σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏿‍🫯‍🧑🏼' => 'πάλη: σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏿‍🫯‍🧑🏽' => 'πάλη: σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '🧑🏿‍🫯‍🧑🏾' => 'πάλη: σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
     '🧑🏻‍❤‍🧑🏼' => 'ζευγάρι με καρδιά: ενήλικας, ενήλικας, ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🧑🏻‍❤‍🧑🏽' => 'ζευγάρι με καρδιά: ενήλικας, ενήλικας, ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
     '🧑🏻‍❤‍🧑🏾' => 'ζευγάρι με καρδιά: ενήλικας, ενήλικας, ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ζευγάρι με καρδιά: ενήλικας, ενήλικας, σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🧑🏿‍❤‍🧑🏽' => 'ζευγάρι με καρδιά: ενήλικας, ενήλικας, σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
     '🧑🏿‍❤‍🧑🏾' => 'ζευγάρι με καρδιά: ενήλικας, ενήλικας, σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '🧑🏻‍🐰‍🧑🏼' => 'άτομα με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏻‍🐰‍🧑🏽' => 'άτομα με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '🧑🏻‍🐰‍🧑🏾' => 'άτομα με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '🧑🏻‍🐰‍🧑🏿' => 'άτομα με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '🧑🏼‍🐰‍🧑🏻' => 'άτομα με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏼‍🐰‍🧑🏽' => 'άτομα με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '🧑🏼‍🐰‍🧑🏾' => 'άτομα με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '🧑🏼‍🐰‍🧑🏿' => 'άτομα με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '🧑🏽‍🐰‍🧑🏻' => 'άτομα με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏽‍🐰‍🧑🏼' => 'άτομα με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏽‍🐰‍🧑🏾' => 'άτομα με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '🧑🏽‍🐰‍🧑🏿' => 'άτομα με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '🧑🏾‍🐰‍🧑🏻' => 'άτομα με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏾‍🐰‍🧑🏼' => 'άτομα με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏾‍🐰‍🧑🏽' => 'άτομα με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '🧑🏾‍🐰‍🧑🏿' => 'άτομα με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '🧑🏿‍🐰‍🧑🏻' => 'άτομα με λαγουδένια αυτιά: σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏿‍🐰‍🧑🏼' => 'άτομα με λαγουδένια αυτιά: σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏿‍🐰‍🧑🏽' => 'άτομα με λαγουδένια αυτιά: σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '🧑🏿‍🐰‍🧑🏾' => 'άτομα με λαγουδένια αυτιά: σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👨🏻‍🫯‍👨🏼' => 'παλαιστές: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏻‍🫯‍👨🏽' => 'παλαιστές: ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👨🏻‍🫯‍👨🏾' => 'παλαιστές: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👨🏻‍🫯‍👨🏿' => 'παλαιστές: ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👨🏼‍🫯‍👨🏻' => 'παλαιστές: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏼‍🫯‍👨🏽' => 'παλαιστές: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👨🏼‍🫯‍👨🏾' => 'παλαιστές: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👨🏼‍🫯‍👨🏿' => 'παλαιστές: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👨🏽‍🫯‍👨🏻' => 'παλαιστές: μεσαίος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏽‍🫯‍👨🏼' => 'παλαιστές: μεσαίος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏽‍🫯‍👨🏾' => 'παλαιστές: μεσαίος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👨🏽‍🫯‍👨🏿' => 'παλαιστές: μεσαίος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👨🏾‍🫯‍👨🏻' => 'παλαιστές: μεσαίος-σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏾‍🫯‍👨🏼' => 'παλαιστές: μεσαίος-σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏾‍🫯‍👨🏽' => 'παλαιστές: μεσαίος-σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👨🏾‍🫯‍👨🏿' => 'παλαιστές: μεσαίος-σκούρος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👨🏿‍🫯‍👨🏻' => 'παλαιστές: σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏿‍🫯‍👨🏼' => 'παλαιστές: σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏿‍🫯‍👨🏽' => 'παλαιστές: σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👨🏿‍🫯‍👨🏾' => 'παλαιστές: σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
     '👨🏻‍❤‍👨🏻' => 'ζευγάρι με καρδιά: άντρας, άντρας, ανοιχτόχρωμος τόνος δέρματος',
     '👨🏻‍❤‍👨🏼' => 'ζευγάρι με καρδιά: άντρας, άντρας, ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '👨🏻‍❤‍👨🏽' => 'ζευγάρι με καρδιά: άντρας, άντρας, ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ζευγάρι με καρδιά: άντρας, άντρας, σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
     '👨🏿‍❤‍👨🏾' => 'ζευγάρι με καρδιά: άντρας, άντρας, σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
     '👨🏿‍❤‍👨🏿' => 'ζευγάρι με καρδιά: άντρας, άντρας, σκούρος τόνος δέρματος',
+    '👨🏻‍🐰‍👨🏼' => 'άντρες με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏻‍🐰‍👨🏽' => 'άντρες με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👨🏻‍🐰‍👨🏾' => 'άντρες με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👨🏻‍🐰‍👨🏿' => 'άντρες με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👨🏼‍🐰‍👨🏻' => 'άντρες με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏼‍🐰‍👨🏽' => 'άντρες με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👨🏼‍🐰‍👨🏾' => 'άντρες με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👨🏼‍🐰‍👨🏿' => 'άντρες με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👨🏽‍🐰‍👨🏻' => 'άντρες με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏽‍🐰‍👨🏼' => 'άντρες με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏽‍🐰‍👨🏾' => 'άντρες με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👨🏽‍🐰‍👨🏿' => 'άντρες με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👨🏾‍🐰‍👨🏻' => 'άντρες με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏾‍🐰‍👨🏼' => 'άντρες με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏾‍🐰‍👨🏽' => 'άντρες με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👨🏾‍🐰‍👨🏿' => 'άντρες με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👨🏿‍🐰‍👨🏻' => 'άντρες με λαγουδένια αυτιά: σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏿‍🐰‍👨🏼' => 'άντρες με λαγουδένια αυτιά: σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👨🏿‍🐰‍👨🏽' => 'άντρες με λαγουδένια αυτιά: σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👨🏿‍🐰‍👨🏾' => 'άντρες με λαγουδένια αυτιά: σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👩🏻‍🫯‍👩🏼' => 'παλαίστριες: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏻‍🫯‍👩🏽' => 'παλαίστριες: ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👩🏻‍🫯‍👩🏾' => 'παλαίστριες: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👩🏻‍🫯‍👩🏿' => 'παλαίστριες: ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👩🏼‍🫯‍👩🏻' => 'παλαίστριες: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏼‍🫯‍👩🏽' => 'παλαίστριες: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👩🏼‍🫯‍👩🏾' => 'παλαίστριες: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👩🏼‍🫯‍👩🏿' => 'παλαίστριες: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👩🏽‍🫯‍👩🏻' => 'παλαίστριες: μεσαίος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏽‍🫯‍👩🏼' => 'παλαίστριες: μεσαίος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏽‍🫯‍👩🏾' => 'παλαίστριες: μεσαίος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👩🏽‍🫯‍👩🏿' => 'παλαίστριες: μεσαίος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👩🏾‍🫯‍👩🏻' => 'παλαίστριες: μεσαίος-σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏾‍🫯‍👩🏼' => 'παλαίστριες: μεσαίος-σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏾‍🫯‍👩🏽' => 'παλαίστριες: μεσαίος-σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👩🏾‍🫯‍👩🏿' => 'παλαίστριες: μεσαίος-σκούρος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👩🏿‍🫯‍👩🏻' => 'παλαίστριες: σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏿‍🫯‍👩🏼' => 'παλαίστριες: σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏿‍🫯‍👩🏽' => 'παλαίστριες: σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👩🏿‍🫯‍👩🏾' => 'παλαίστριες: σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
     '👩🏻‍❤‍👨🏻' => 'ζευγάρι με καρδιά: γυναίκα, άντρας, ανοιχτόχρωμος τόνος δέρματος',
     '👩🏻‍❤‍👨🏼' => 'ζευγάρι με καρδιά: γυναίκα, άντρας, ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '👩🏻‍❤‍👨🏽' => 'ζευγάρι με καρδιά: γυναίκα, άντρας, ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ζευγάρι με καρδιά: γυναίκα, γυναίκα, σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
     '👩🏿‍❤‍👩🏾' => 'ζευγάρι με καρδιά: γυναίκα, γυναίκα, σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
     '👩🏿‍❤‍👩🏿' => 'ζευγάρι με καρδιά: γυναίκα, γυναίκα, σκούρος τόνος δέρματος',
+    '👩🏻‍🐰‍👩🏼' => 'γυναίκες με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏻‍🐰‍👩🏽' => 'γυναίκες με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👩🏻‍🐰‍👩🏾' => 'γυναίκες με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👩🏻‍🐰‍👩🏿' => 'γυναίκες με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👩🏼‍🐰‍👩🏻' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏼‍🐰‍👩🏽' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👩🏼‍🐰‍👩🏾' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👩🏼‍🐰‍👩🏿' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👩🏽‍🐰‍👩🏻' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏽‍🐰‍👩🏼' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏽‍🐰‍👩🏾' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
+    '👩🏽‍🐰‍👩🏿' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👩🏾‍🐰‍👩🏻' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏾‍🐰‍👩🏼' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏾‍🐰‍👩🏽' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👩🏾‍🐰‍👩🏿' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος, σκούρος τόνος δέρματος',
+    '👩🏿‍🐰‍👩🏻' => 'γυναίκες με λαγουδένια αυτιά: σκούρος τόνος δέρματος, ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏿‍🐰‍👩🏼' => 'γυναίκες με λαγουδένια αυτιά: σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👩🏿‍🐰‍👩🏽' => 'γυναίκες με λαγουδένια αυτιά: σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
+    '👩🏿‍🐰‍👩🏾' => 'γυναίκες με λαγουδένια αυτιά: σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
     '🧑🏻‍🤝‍🧑🏻' => 'άτομα πιασμένα χέρι-χέρι: ανοιχτόχρωμος τόνος δέρματος',
     '🧑🏻‍🤝‍🧑🏼' => 'άτομα πιασμένα χέρι-χέρι: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🧑🏻‍🤝‍🧑🏽' => 'άτομα πιασμένα χέρι-χέρι: ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'σημαία: Σκοτία',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'σημαία: Ουαλία',
     '🧑‍🧑‍🧒‍🧒' => 'οικογένεια: ενήλικας, ενήλικας, παιδί, παιδί',
-    '🚶🏻‍♀‍➡' => 'γυναίκα περπατά με κατεύθυνση προς τα δεξιά',
-    '🚶🏼‍♀‍➡' => 'γυναίκα περπατά με κατεύθυνση προς τα δεξιά',
-    '🚶🏽‍♀‍➡' => 'γυναίκα περπατά με κατεύθυνση προς τα δεξιά',
-    '🚶🏾‍♀‍➡' => 'γυναίκα περπατά με κατεύθυνση προς τα δεξιά',
-    '🚶🏿‍♀‍➡' => 'γυναίκα περπατά με κατεύθυνση προς τα δεξιά',
-    '🚶🏻‍♂‍➡' => 'άντρας περπατά με κατεύθυνση προς τα δεξιά',
-    '🚶🏼‍♂‍➡' => 'άντρας περπατά με κατεύθυνση προς τα δεξιά',
-    '🚶🏽‍♂‍➡' => 'άντρας περπατά με κατεύθυνση προς τα δεξιά',
-    '🚶🏾‍♂‍➡' => 'άντρας περπατά με κατεύθυνση προς τα δεξιά',
-    '🚶🏿‍♂‍➡' => 'άντρας περπατά με κατεύθυνση προς τα δεξιά',
-    '🧎🏻‍♀‍➡' => 'γυναίκα που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏼‍♀‍➡' => 'γυναίκα που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏽‍♀‍➡' => 'γυναίκα που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏾‍♀‍➡' => 'γυναίκα που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏿‍♀‍➡' => 'γυναίκα που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏻‍♂‍➡' => 'άντρας που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏼‍♂‍➡' => 'άντρας που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏽‍♂‍➡' => 'άντρας που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏾‍♂‍➡' => 'άντρας που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏿‍♂‍➡' => 'άντρας που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧑🏻‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '🧑🏼‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '🧑🏽‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '🧑🏾‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '🧑🏿‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👨🏻‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👨🏼‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👨🏽‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👨🏾‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👨🏿‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👩🏻‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👩🏼‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👩🏽‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👩🏾‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👩🏿‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '🧑🏻‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🧑🏼‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🧑🏽‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🧑🏾‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🧑🏿‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨🏻‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨🏼‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨🏽‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨🏾‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨🏿‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩🏻‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩🏼‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩🏽‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩🏾‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩🏿‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🧑🏻‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🧑🏼‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🧑🏽‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🧑🏾‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🧑🏿‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨🏻‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨🏼‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨🏽‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨🏾‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨🏿‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩🏻‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩🏼‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩🏽‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩🏾‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩🏿‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🏃🏻‍♀‍➡' => 'γυναίκα τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏼‍♀‍➡' => 'γυναίκα τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏽‍♀‍➡' => 'γυναίκα τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏾‍♀‍➡' => 'γυναίκα τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏿‍♀‍➡' => 'γυναίκα τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏻‍♂‍➡' => 'άντρας τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏼‍♂‍➡' => 'άντρας τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏽‍♂‍➡' => 'άντρας τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏾‍♂‍➡' => 'άντρας τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏿‍♂‍➡' => 'άντρας τρέχει με κατεύθυνση προς τα δεξιά',
+    '🚶🏻‍♀‍➡' => 'γυναίκα περπατά: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏼‍♀‍➡' => 'γυναίκα περπατά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏽‍♀‍➡' => 'γυναίκα περπατά: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏾‍♀‍➡' => 'γυναίκα περπατά: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏿‍♀‍➡' => 'γυναίκα περπατά: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏻‍♂‍➡' => 'άντρας περπατά: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏼‍♂‍➡' => 'άντρας περπατά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏽‍♂‍➡' => 'άντρας περπατά: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏾‍♂‍➡' => 'άντρας περπατά: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏿‍♂‍➡' => 'άντρας περπατά: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏻‍♀‍➡' => 'γυναίκα που γονατίζει: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏼‍♀‍➡' => 'γυναίκα που γονατίζει: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏽‍♀‍➡' => 'γυναίκα που γονατίζει: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏾‍♀‍➡' => 'γυναίκα που γονατίζει: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏿‍♀‍➡' => 'γυναίκα που γονατίζει: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏻‍♂‍➡' => 'άντρας που γονατίζει: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏼‍♂‍➡' => 'άντρας που γονατίζει: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏽‍♂‍➡' => 'άντρας που γονατίζει: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏾‍♂‍➡' => 'άντρας που γονατίζει: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏿‍♂‍➡' => 'άντρας που γονατίζει: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏻‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏼‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏽‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏾‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏿‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏻‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏼‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏽‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏾‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏿‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏻‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏼‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏽‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏾‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏿‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏻‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏼‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏽‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏾‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏿‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏻‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏼‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏽‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏾‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏿‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏻‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏼‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏽‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏾‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏿‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏻‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏼‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏽‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏾‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧑🏿‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏻‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏼‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏽‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏾‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👨🏿‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏻‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏼‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏽‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏾‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👩🏿‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏻‍♀‍➡' => 'γυναίκα τρέχει: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏼‍♀‍➡' => 'γυναίκα τρέχει: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏽‍♀‍➡' => 'γυναίκα τρέχει: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏾‍♀‍➡' => 'γυναίκα τρέχει: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏿‍♀‍➡' => 'γυναίκα τρέχει: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏻‍♂‍➡' => 'άντρας τρέχει: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏼‍♂‍➡' => 'άντρας τρέχει: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏽‍♂‍➡' => 'άντρας τρέχει: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏾‍♂‍➡' => 'άντρας τρέχει: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏿‍♂‍➡' => 'άντρας τρέχει: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
     '🫱🏻‍🫲🏼' => 'χειραψία: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🫱🏻‍🫲🏽' => 'χειραψία: ανοιχτόχρωμος τόνος δέρματος, μεσαίος τόνος δέρματος',
     '🫱🏻‍🫲🏾' => 'χειραψία: ανοιχτόχρωμος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'χειραψία: σκούρος τόνος δέρματος, μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🫱🏿‍🫲🏽' => 'χειραψία: σκούρος τόνος δέρματος, μεσαίος τόνος δέρματος',
     '🫱🏿‍🫲🏾' => 'χειραψία: σκούρος τόνος δέρματος, μεσαίος-σκούρος τόνος δέρματος',
-    '🚶‍♀‍➡' => 'γυναίκα περπατά με κατεύθυνση προς τα δεξιά',
-    '🚶‍♂‍➡' => 'άντρας περπατά με κατεύθυνση προς τα δεξιά',
-    '🧎‍♀‍➡' => 'γυναίκα που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎‍♂‍➡' => 'άντρας που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧑‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👨‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '👩‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς με κατεύθυνση προς τα δεξιά',
-    '🧑‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🧑‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👨‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '👩‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο με κατεύθυνση προς τα δεξιά',
-    '🏃‍♀‍➡' => 'γυναίκα τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃‍♂‍➡' => 'άντρας τρέχει με κατεύθυνση προς τα δεξιά',
+    '🚶‍♀‍➡' => 'γυναίκα περπατά: με κατεύθυνση προς τα δεξιά',
+    '🚶‍♂‍➡' => 'άντρας περπατά: με κατεύθυνση προς τα δεξιά',
+    '🧎‍♀‍➡' => 'γυναίκα που γονατίζει: με κατεύθυνση προς τα δεξιά',
+    '🧎‍♂‍➡' => 'άντρας που γονατίζει: με κατεύθυνση προς τα δεξιά',
+    '🧑‍🦯‍➡' => 'άτομο με μπαστούνι για τυφλούς: με κατεύθυνση προς τα δεξιά',
+    '👨‍🦯‍➡' => 'άντρας με μπαστούνι για τυφλούς: με κατεύθυνση προς τα δεξιά',
+    '👩‍🦯‍➡' => 'γυναίκα με μπαστούνι για τυφλούς: με κατεύθυνση προς τα δεξιά',
+    '🧑‍🦼‍➡' => 'άτομο σε ηλεκτρικό αναπηρικό αμαξίδιο: με κατεύθυνση προς τα δεξιά',
+    '👨‍🦼‍➡' => 'άντρας σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: με κατεύθυνση προς τα δεξιά',
+    '👩‍🦼‍➡' => 'γυναίκα σε ηλεκτροκίνητο αναπηρικό αμαξίδιο: με κατεύθυνση προς τα δεξιά',
+    '🧑‍🦽‍➡' => 'άτομο σε χειροκίνητο αναπηρικό αμαξίδιο: με κατεύθυνση προς τα δεξιά',
+    '👨‍🦽‍➡' => 'άντρας σε χειροκίνητο αναπηρικό αμαξίδιο: με κατεύθυνση προς τα δεξιά',
+    '👩‍🦽‍➡' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο: με κατεύθυνση προς τα δεξιά',
+    '🏃‍♀‍➡' => 'γυναίκα τρέχει: με κατεύθυνση προς τα δεξιά',
+    '🏃‍♂‍➡' => 'άντρας τρέχει: με κατεύθυνση προς τα δεξιά',
     '👩‍❤‍👨' => 'ζευγάρι με καρδιά: γυναίκα, άντρας',
     '👨‍❤‍👨' => 'ζευγάρι με καρδιά: άντρας, άντρας',
     '👩‍❤‍👩' => 'ζευγάρι με καρδιά: γυναίκα, γυναίκα',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'ενήλικας: μεσαίος τόνος δέρματος, καραφλός',
     '🧑🏾‍🦲' => 'ενήλικας: μεσαίος-σκούρος τόνος δέρματος, καραφλός',
     '🧑🏿‍🦲' => 'ενήλικας: σκούρος τόνος δέρματος, καραφλός',
+    '🧑🏻‍🩰' => 'χορευτής μπαλέτου: ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏼‍🩰' => 'χορευτής μπαλέτου: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🧑🏽‍🩰' => 'χορευτής μπαλέτου: μεσαίος τόνος δέρματος',
+    '🧑🏾‍🩰' => 'χορευτής μπαλέτου: μεσαίος-σκούρος τόνος δέρματος',
+    '🧑🏿‍🩰' => 'χορευτής μπαλέτου: σκούρος τόνος δέρματος',
     '🧔🏻‍♂' => 'άντρας: ανοιχτόχρωμος τόνος δέρματος, μούσι',
     '🧔🏼‍♂' => 'άντρας: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, μούσι',
     '🧔🏽‍♂' => 'άντρας: μεσαίος τόνος δέρματος, μούσι',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'γυναίκα περπατά: μεσαίος τόνος δέρματος',
     '🚶🏾‍♀' => 'γυναίκα περπατά: μεσαίος-σκούρος τόνος δέρματος',
     '🚶🏿‍♀' => 'γυναίκα περπατά: σκούρος τόνος δέρματος',
-    '🚶🏻‍➡' => 'πεζός με κατεύθυνση προς τα δεξιά',
-    '🚶🏼‍➡' => 'πεζός με κατεύθυνση προς τα δεξιά',
-    '🚶🏽‍➡' => 'πεζός με κατεύθυνση προς τα δεξιά',
-    '🚶🏾‍➡' => 'πεζός με κατεύθυνση προς τα δεξιά',
-    '🚶🏿‍➡' => 'πεζός με κατεύθυνση προς τα δεξιά',
+    '🚶🏻‍➡' => 'πεζός: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏼‍➡' => 'πεζός: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏽‍➡' => 'πεζός: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏾‍➡' => 'πεζός: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🚶🏿‍➡' => 'πεζός: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
     '🧍🏻‍♂' => 'άντρας που στέκεται: ανοιχτόχρωμος τόνος δέρματος',
     '🧍🏼‍♂' => 'άντρας που στέκεται: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🧍🏽‍♂' => 'άντρας που στέκεται: μεσαίος τόνος δέρματος',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'γυναίκα που γονατίζει: μεσαίος τόνος δέρματος',
     '🧎🏾‍♀' => 'γυναίκα που γονατίζει: μεσαίος-σκούρος τόνος δέρματος',
     '🧎🏿‍♀' => 'γυναίκα που γονατίζει: σκούρος τόνος δέρματος',
-    '🧎🏻‍➡' => 'άτομο που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏼‍➡' => 'άτομο που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏽‍➡' => 'άτομο που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏾‍➡' => 'άτομο που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🧎🏿‍➡' => 'άτομο που γονατίζει με κατεύθυνση προς τα δεξιά',
+    '🧎🏻‍➡' => 'άτομο που γονατίζει: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏼‍➡' => 'άτομο που γονατίζει: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏽‍➡' => 'άτομο που γονατίζει: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏾‍➡' => 'άτομο που γονατίζει: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🧎🏿‍➡' => 'άτομο που γονατίζει: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
     '🧑🏻‍🦯' => 'άτομο με μπαστούνι για τυφλούς: ανοιχτόχρωμος τόνος δέρματος',
     '🧑🏼‍🦯' => 'άτομο με μπαστούνι για τυφλούς: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🧑🏽‍🦯' => 'άτομο με μπαστούνι για τυφλούς: μεσαίος τόνος δέρματος',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'γυναίκα τρέχει: μεσαίος τόνος δέρματος',
     '🏃🏾‍♀' => 'γυναίκα τρέχει: μεσαίος-σκούρος τόνος δέρματος',
     '🏃🏿‍♀' => 'γυναίκα τρέχει: σκούρος τόνος δέρματος',
-    '🏃🏻‍➡' => 'άτομο τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏼‍➡' => 'άτομο τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏽‍➡' => 'άτομο τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏾‍➡' => 'άτομο τρέχει με κατεύθυνση προς τα δεξιά',
-    '🏃🏿‍➡' => 'άτομο τρέχει με κατεύθυνση προς τα δεξιά',
+    '🏃🏻‍➡' => 'άτομο τρέχει: ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏼‍➡' => 'άτομο τρέχει: μεσαίος-ανοιχτόχρωμος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏽‍➡' => 'άτομο τρέχει: μεσαίος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏾‍➡' => 'άτομο τρέχει: μεσαίος-σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '🏃🏿‍➡' => 'άτομο τρέχει: σκούρος τόνος δέρματος, με κατεύθυνση προς τα δεξιά',
+    '👯🏻‍♀' => 'γυναίκες με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος',
+    '👯🏼‍♀' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👯🏽‍♀' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος τόνος δέρματος',
+    '👯🏾‍♀' => 'γυναίκες με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος',
+    '👯🏿‍♀' => 'γυναίκες με λαγουδένια αυτιά: σκούρος τόνος δέρματος',
+    '👯🏻‍♂' => 'άντρες με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος',
+    '👯🏼‍♂' => 'άντρες με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👯🏽‍♂' => 'άντρες με λαγουδένια αυτιά: μεσαίος τόνος δέρματος',
+    '👯🏾‍♂' => 'άντρες με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος',
+    '👯🏿‍♂' => 'άντρες με λαγουδένια αυτιά: σκούρος τόνος δέρματος',
     '🧖🏻‍♂' => 'άντρας σε σάουνα: ανοιχτόχρωμος τόνος δέρματος',
     '🧖🏼‍♂' => 'άντρας σε σάουνα: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🧖🏽‍♂' => 'άντρας σε σάουνα: μεσαίος τόνος δέρματος',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'γυναίκα κάνει ρόδα: μεσαίος τόνος δέρματος',
     '🤸🏾‍♀' => 'γυναίκα κάνει ρόδα: μεσαίος-σκούρος τόνος δέρματος',
     '🤸🏿‍♀' => 'γυναίκα κάνει ρόδα: σκούρος τόνος δέρματος',
+    '🤼🏻‍♀' => 'παλαίστριες: ανοιχτόχρωμος τόνος δέρματος',
+    '🤼🏼‍♀' => 'παλαίστριες: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🤼🏽‍♀' => 'παλαίστριες: μεσαίος τόνος δέρματος',
+    '🤼🏾‍♀' => 'παλαίστριες: μεσαίος-σκούρος τόνος δέρματος',
+    '🤼🏿‍♀' => 'παλαίστριες: σκούρος τόνος δέρματος',
+    '🤼🏻‍♂' => 'παλαιστές: ανοιχτόχρωμος τόνος δέρματος',
+    '🤼🏼‍♂' => 'παλαιστές: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🤼🏽‍♂' => 'παλαιστές: μεσαίος τόνος δέρματος',
+    '🤼🏾‍♂' => 'παλαιστές: μεσαίος-σκούρος τόνος δέρματος',
+    '🤼🏿‍♂' => 'παλαιστές: σκούρος τόνος δέρματος',
     '🤽🏻‍♂' => 'πολίστας: ανοιχτόχρωμος τόνος δέρματος',
     '🤽🏼‍♂' => 'πολίστας: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🤽🏽‍♂' => 'πολίστας: μεσαίος τόνος δέρματος',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'γυναίκα: σγουρά μαλλιά',
     '👩‍🦳' => 'γυναίκα: άσπρα μαλλιά',
     '👩‍🦲' => 'γυναίκα: καραφλός',
-    '🚶‍➡' => 'πεζός με κατεύθυνση προς τα δεξιά',
-    '🧎‍➡' => 'άτομο που γονατίζει με κατεύθυνση προς τα δεξιά',
-    '🏃‍➡' => 'άτομο τρέχει με κατεύθυνση προς τα δεξιά',
+    '🚶‍➡' => 'πεζός: με κατεύθυνση προς τα δεξιά',
+    '🧎‍➡' => 'άτομο που γονατίζει: με κατεύθυνση προς τα δεξιά',
+    '🏃‍➡' => 'άτομο τρέχει: με κατεύθυνση προς τα δεξιά',
     '👨‍👦' => 'οικογένεια: άντρας, αγόρι',
     '👨‍👧' => 'οικογένεια: άντρας, κορίτσι',
     '👩‍👦' => 'οικογένεια: γυναίκα, αγόρι',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'γυναίκα σε χειροκίνητο αναπηρικό αμαξίδιο',
     '🏃‍♂' => 'άντρας τρέχει',
     '🏃‍♀' => 'γυναίκα τρέχει',
+    '🧑‍🩰' => 'χορευτής μπαλέτου',
     '👯‍♂' => 'άντρες με λαγουδένια αυτιά',
     '👯‍♀' => 'γυναίκες με λαγουδένια αυτιά',
     '🧖‍♂' => 'άντρας σε σάουνα',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'κοστουμαρισμένος άντρας που αιωρείται: μεσαίος τόνος δέρματος',
     '🕴🏾' => 'κοστουμαρισμένος άντρας που αιωρείται: μεσαίος-σκούρος τόνος δέρματος',
     '🕴🏿' => 'κοστουμαρισμένος άντρας που αιωρείται: σκούρος τόνος δέρματος',
+    '👯🏻' => 'άτομα με λαγουδένια αυτιά: ανοιχτόχρωμος τόνος δέρματος',
+    '👯🏼' => 'άτομα με λαγουδένια αυτιά: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '👯🏽' => 'άτομα με λαγουδένια αυτιά: μεσαίος τόνος δέρματος',
+    '👯🏾' => 'άτομα με λαγουδένια αυτιά: μεσαίος-σκούρος τόνος δέρματος',
+    '👯🏿' => 'άτομα με λαγουδένια αυτιά: σκούρος τόνος δέρματος',
     '🧖🏻' => 'άτομο σε σάουνα: ανοιχτόχρωμος τόνος δέρματος',
     '🧖🏼' => 'άτομο σε σάουνα: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🧖🏽' => 'άτομο σε σάουνα: μεσαίος τόνος δέρματος',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'άτομο κάνει ρόδα: μεσαίος τόνος δέρματος',
     '🤸🏾' => 'άτομο κάνει ρόδα: μεσαίος-σκούρος τόνος δέρματος',
     '🤸🏿' => 'άτομο κάνει ρόδα: σκούρος τόνος δέρματος',
+    '🤼🏻' => 'πάλη: ανοιχτόχρωμος τόνος δέρματος',
+    '🤼🏼' => 'πάλη: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
+    '🤼🏽' => 'πάλη: μεσαίος τόνος δέρματος',
+    '🤼🏾' => 'πάλη: μεσαίος-σκούρος τόνος δέρματος',
+    '🤼🏿' => 'πάλη: σκούρος τόνος δέρματος',
     '🤽🏻' => 'πόλο: ανοιχτόχρωμος τόνος δέρματος',
     '🤽🏼' => 'πόλο: μεσαίος-ανοιχτόχρωμος τόνος δέρματος',
     '🤽🏽' => 'πόλο: μεσαίος τόνος δέρματος',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'σημαία: Κίνα',
     '🇨🇴' => 'σημαία: Κολομβία',
     '🇨🇵' => 'σημαία: Νήσος Κλίπερτον',
+    '🇨🇶' => 'σημαία: Σαρκ',
     '🇨🇷' => 'σημαία: Κόστα Ρίκα',
     '🇨🇺' => 'σημαία: Κούβα',
     '🇨🇻' => 'σημαία: Πράσινο Ακρωτήριο',
@@ -2390,13 +2547,6 @@
     '🏽' => 'μεσαίος τόνος δέρματος',
     '🏾' => 'μεσαίος-σκούρος τόνος δέρματος',
     '🏿' => 'σκούρος τόνος δέρματος',
-    '🪉' => 'άρπα',
-    '🪏' => 'φτυάρι',
-    '🪾' => 'γυμνό δέντρο',
-    '🫆' => 'δακτυλικό αποτύπωμα',
-    '🫜' => 'ριζώδες λαχανικό',
-    '🫟' => 'πιτσιλιά',
-    '🫩' => 'πρόσωπο με σακούλες κάτω από τα μάτια',
     '😀' => 'πλατύ χαμόγελο',
     '😃' => 'πλατύ χαμόγελο με μεγάλα μάτια',
     '😄' => 'πλατύ χαμόγελο με γελαστά μάτια',
@@ -2450,6 +2600,7 @@
     '😪' => 'νυσταγμένο πρόσωπο',
     '🤤' => 'σαλιαρίζω',
     '😴' => 'ύπνος',
+    '🫩' => 'πρόσωπο με σακούλες κάτω από τα μάτια',
     '😷' => 'ιατρική μάσκα',
     '🤒' => 'πρόσωπο με θερμόμετρο',
     '🤕' => 'επίδεσμος στο κεφάλι',
@@ -2476,6 +2627,7 @@
     '😯' => 'έκπληκτο βλέμμα',
     '😲' => 'ξάφνιασμα',
     '😳' => 'κοκκινισμένο πρόσωπο',
+    '🫪' => 'παραμορφωμένο πρόσωπο',
     '🥺' => 'προσωπάκι παρακαλετό',
     '🥹' => 'πρόσωπο έτοιμο να κλάψει',
     '😦' => 'κατσούφιασμα με ανοικτό στόμα',
@@ -2547,6 +2699,7 @@
     '💋' => 'σημάδι από φιλί',
     '💯' => 'εκατό πόντοι',
     '💢' => 'σύμβολο θυμού',
+    '🫯' => 'σύννεφο καβγά',
     '💥' => 'σύγκρουση',
     '💫' => 'αστεράκια',
     '💦' => 'σταγόνες ιδρώτα',
@@ -2670,6 +2823,7 @@
     '🧞' => 'τζίνι',
     '🧟' => 'ζόμπι',
     '🧌' => 'τρολ',
+    '🫈' => 'τριχωτό πλάσμα',
     '💆' => 'μασάζ στο κεφάλι',
     '💇' => 'κούρεμα',
     '🚶' => 'πεζός',
@@ -2713,6 +2867,7 @@
     '🫂' => 'άτομα αγκαλιάζονται',
     '👪' => 'οικογένεια',
     '👣' => 'πατημασιές',
+    '🫆' => 'δακτυλικό αποτύπωμα',
     '🦰' => 'κόκκινα μαλλιά',
     '🦱' => 'σγουρά μαλλιά',
     '🦳' => 'άσπρα μαλλιά',
@@ -2812,6 +2967,7 @@
     '🐳' => 'φάλαινα που πετά νερό',
     '🐋' => 'φάλαινα',
     '🐬' => 'δελφίνι',
+    '🫍' => 'όρκα',
     '🦭' => 'φώκια',
     '🐟' => 'ψάρι',
     '🐠' => 'τροπικό ψάρι',
@@ -2821,6 +2977,11 @@
     '🐚' => 'σπειροειδές κοχύλι',
     '🪸' => 'κοράλλι',
     '🪼' => 'μέδουσα',
+    '🦀' => 'κάβουρας',
+    '🦞' => 'αστακός',
+    '🦐' => 'γαρίδα',
+    '🦑' => 'καλαμάρι',
+    '🦪' => 'στρείδι',
     '🐌' => 'σαλιγκάρι',
     '🦋' => 'πεταλούδα',
     '🐛' => 'κάμπια',
@@ -2865,6 +3026,7 @@
     '🪹' => 'άδεια φωλιά',
     '🪺' => 'φωλιά με αυγά',
     '🍄' => 'μανιτάρι',
+    '🪾' => 'γυμνό δέντρο',
     '🍇' => 'σταφύλι',
     '🍈' => 'πεπόνι',
     '🍉' => 'καρπούζι',
@@ -2901,6 +3063,7 @@
     '🌰' => 'κάστανο',
     '🫚' => 'πιπερόριζα',
     '🫛' => 'κέλυφος μπιζελιού',
+    '🫜' => 'ριζώδες λαχανικό',
     '🍞' => 'ψωμί',
     '🥐' => 'κρουασάν',
     '🥖' => 'μπαγκέτα',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ντάμπλινγκ',
     '🥠' => 'τυχερό μπισκότο',
     '🥡' => 'συσκευασία φαγητού σε πακέτο',
-    '🦀' => 'κάβουρας',
-    '🦞' => 'αστακός',
-    '🦐' => 'γαρίδα',
-    '🦑' => 'καλαμάρι',
-    '🦪' => 'στρείδι',
     '🍦' => 'παγωτό χωνάκι',
     '🍧' => 'γρανίτα',
     '🍨' => 'παγωτό',
@@ -3007,6 +3165,7 @@
     '🧭' => 'πυξίδα',
     '🏔' => 'χιονισμένο βουνό',
     '⛰' => 'βουνό',
+    '🛘' => 'κατολίσθηση',
     '🌋' => 'ηφαίστειο',
     '🗻' => 'ηφαίστειο Φούτζι',
     '🏕' => 'κατασκήνωση',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ακουστικά',
     '📻' => 'ραδιόφωνο',
     '🎷' => 'σαξόφωνο',
+    '🎺' => 'τρομπέτα',
+    '🪊' => 'τρομπόνι',
     '🪗' => 'ακορντεόν',
     '🎸' => 'κιθάρα',
     '🎹' => 'μουσικό πληκτρολόγιο',
-    '🎺' => 'τρομπέτα',
     '🎻' => 'βιολί',
     '🪕' => 'μπάντζο',
     '🥁' => 'τύμπανο',
     '🪘' => 'κόνγκα',
     '🪇' => 'μαράκες',
     '🪈' => 'φλάουτο',
+    '🪉' => 'άρπα',
     '📱' => 'κινητό τηλέφωνο',
     '📲' => 'κινητό τηλέφωνο με βέλος',
     '☎' => 'τηλέφωνο',
@@ -3430,8 +3591,9 @@
     '📑' => 'καρτέλες σελιδοδεικτών',
     '🔖' => 'σελιδοδείκτης',
     '🏷' => 'ετικέτα',
-    '💰' => 'σάκος με λεφτά',
     '🪙' => 'κέρμα',
+    '💰' => 'σάκος με λεφτά',
+    '🪎' => 'σεντούκι θησαυρού',
     '💴' => 'χαρτονόμισμα γιεν',
     '💵' => 'χαρτονόμισμα δολαρίου',
     '💶' => 'χαρτονόμισμα ευρώ',
@@ -3514,6 +3676,7 @@
     '🧰' => 'εργαλειοθήκη',
     '🧲' => 'μαγνήτης',
     '🪜' => 'σκάλα',
+    '🪏' => 'φτυάρι',
     '⚗' => 'αποστακτήριο',
     '🧪' => 'δοκιμαστικός σωλήνας',
     '🧫' => 'τρυβλίο καλλιέργειας',
@@ -3697,6 +3860,7 @@
     '✴' => 'οκτάκτινο αστέρι',
     '❇' => 'σπινθήρας',
     '™' => 'εμπορικό σήμα',
+    '🫟' => 'πιτσιλιά',
     '🔠' => 'κεφαλαία λατινικά',
     '🔡' => 'πεζά λατινικά',
     '🔢' => 'αριθμοί',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_001.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_001.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_001.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_001.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kiss: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍💋‍👩🏾' => 'kiss: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍💋‍👩🏿' => 'kiss: woman, woman, dark skin tone',
+    '🧑🏻‍🫯‍🧑🏼' => 'people wrestling: light skin tone, medium-light skin tone',
+    '🧑🏻‍🫯‍🧑🏽' => 'people wrestling: light skin tone, medium skin tone',
+    '🧑🏻‍🫯‍🧑🏾' => 'people wrestling: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🫯‍🧑🏿' => 'people wrestling: light skin tone, dark skin tone',
+    '🧑🏼‍🫯‍🧑🏻' => 'people wrestling: medium-light skin tone, light skin tone',
+    '🧑🏼‍🫯‍🧑🏽' => 'people wrestling: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🫯‍🧑🏾' => 'people wrestling: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🫯‍🧑🏿' => 'people wrestling: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🫯‍🧑🏻' => 'people wrestling: medium skin tone, light skin tone',
+    '🧑🏽‍🫯‍🧑🏼' => 'people wrestling: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🫯‍🧑🏾' => 'people wrestling: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🫯‍🧑🏿' => 'people wrestling: medium skin tone, dark skin tone',
+    '🧑🏾‍🫯‍🧑🏻' => 'people wrestling: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🫯‍🧑🏼' => 'people wrestling: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🫯‍🧑🏽' => 'people wrestling: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🫯‍🧑🏿' => 'people wrestling: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🫯‍🧑🏻' => 'people wrestling: dark skin tone, light skin tone',
+    '🧑🏿‍🫯‍🧑🏼' => 'people wrestling: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🫯‍🧑🏽' => 'people wrestling: dark skin tone, medium skin tone',
+    '🧑🏿‍🫯‍🧑🏾' => 'people wrestling: dark skin tone, medium-dark skin tone',
     '🧑🏻‍❤‍🧑🏼' => 'couple with heart: person, person, light skin tone, medium-light skin tone',
     '🧑🏻‍❤‍🧑🏽' => 'couple with heart: person, person, light skin tone, medium skin tone',
     '🧑🏻‍❤‍🧑🏾' => 'couple with heart: person, person, light skin tone, medium-dark skin tone',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'couple with heart: person, person, dark skin tone, medium-light skin tone',
     '🧑🏿‍❤‍🧑🏽' => 'couple with heart: person, person, dark skin tone, medium skin tone',
     '🧑🏿‍❤‍🧑🏾' => 'couple with heart: person, person, dark skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏼' => 'people with bunny ears: light skin tone, medium-light skin tone',
+    '🧑🏻‍🐰‍🧑🏽' => 'people with bunny ears: light skin tone, medium skin tone',
+    '🧑🏻‍🐰‍🧑🏾' => 'people with bunny ears: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏿' => 'people with bunny ears: light skin tone, dark skin tone',
+    '🧑🏼‍🐰‍🧑🏻' => 'people with bunny ears: medium-light skin tone, light skin tone',
+    '🧑🏼‍🐰‍🧑🏽' => 'people with bunny ears: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🐰‍🧑🏾' => 'people with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🐰‍🧑🏿' => 'people with bunny ears: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🐰‍🧑🏻' => 'people with bunny ears: medium skin tone, light skin tone',
+    '🧑🏽‍🐰‍🧑🏼' => 'people with bunny ears: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🐰‍🧑🏾' => 'people with bunny ears: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🐰‍🧑🏿' => 'people with bunny ears: medium skin tone, dark skin tone',
+    '🧑🏾‍🐰‍🧑🏻' => 'people with bunny ears: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🐰‍🧑🏼' => 'people with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🐰‍🧑🏽' => 'people with bunny ears: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🐰‍🧑🏿' => 'people with bunny ears: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🐰‍🧑🏻' => 'people with bunny ears: dark skin tone, light skin tone',
+    '🧑🏿‍🐰‍🧑🏼' => 'people with bunny ears: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🐰‍🧑🏽' => 'people with bunny ears: dark skin tone, medium skin tone',
+    '🧑🏿‍🐰‍🧑🏾' => 'people with bunny ears: dark skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏼' => 'men wrestling: light skin tone, medium-light skin tone',
+    '👨🏻‍🫯‍👨🏽' => 'men wrestling: light skin tone, medium skin tone',
+    '👨🏻‍🫯‍👨🏾' => 'men wrestling: light skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏿' => 'men wrestling: light skin tone, dark skin tone',
+    '👨🏼‍🫯‍👨🏻' => 'men wrestling: medium-light skin tone, light skin tone',
+    '👨🏼‍🫯‍👨🏽' => 'men wrestling: medium-light skin tone, medium skin tone',
+    '👨🏼‍🫯‍👨🏾' => 'men wrestling: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🫯‍👨🏿' => 'men wrestling: medium-light skin tone, dark skin tone',
+    '👨🏽‍🫯‍👨🏻' => 'men wrestling: medium skin tone, light skin tone',
+    '👨🏽‍🫯‍👨🏼' => 'men wrestling: medium skin tone, medium-light skin tone',
+    '👨🏽‍🫯‍👨🏾' => 'men wrestling: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🫯‍👨🏿' => 'men wrestling: medium skin tone, dark skin tone',
+    '👨🏾‍🫯‍👨🏻' => 'men wrestling: medium-dark skin tone, light skin tone',
+    '👨🏾‍🫯‍👨🏼' => 'men wrestling: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🫯‍👨🏽' => 'men wrestling: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🫯‍👨🏿' => 'men wrestling: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🫯‍👨🏻' => 'men wrestling: dark skin tone, light skin tone',
+    '👨🏿‍🫯‍👨🏼' => 'men wrestling: dark skin tone, medium-light skin tone',
+    '👨🏿‍🫯‍👨🏽' => 'men wrestling: dark skin tone, medium skin tone',
+    '👨🏿‍🫯‍👨🏾' => 'men wrestling: dark skin tone, medium-dark skin tone',
     '👨🏻‍❤‍👨🏻' => 'couple with heart: man, man, light skin tone',
     '👨🏻‍❤‍👨🏼' => 'couple with heart: man, man, light skin tone, medium-light skin tone',
     '👨🏻‍❤‍👨🏽' => 'couple with heart: man, man, light skin tone, medium skin tone',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'couple with heart: man, man, dark skin tone, medium skin tone',
     '👨🏿‍❤‍👨🏾' => 'couple with heart: man, man, dark skin tone, medium-dark skin tone',
     '👨🏿‍❤‍👨🏿' => 'couple with heart: man, man, dark skin tone',
+    '👨🏻‍🐰‍👨🏼' => 'men with bunny ears: light skin tone, medium-light skin tone',
+    '👨🏻‍🐰‍👨🏽' => 'men with bunny ears: light skin tone, medium skin tone',
+    '👨🏻‍🐰‍👨🏾' => 'men with bunny ears: light skin tone, medium-dark skin tone',
+    '👨🏻‍🐰‍👨🏿' => 'men with bunny ears: light skin tone, dark skin tone',
+    '👨🏼‍🐰‍👨🏻' => 'men with bunny ears: medium-light skin tone, light skin tone',
+    '👨🏼‍🐰‍👨🏽' => 'men with bunny ears: medium-light skin tone, medium skin tone',
+    '👨🏼‍🐰‍👨🏾' => 'men with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🐰‍👨🏿' => 'men with bunny ears: medium-light skin tone, dark skin tone',
+    '👨🏽‍🐰‍👨🏻' => 'men with bunny ears: medium skin tone, light skin tone',
+    '👨🏽‍🐰‍👨🏼' => 'men with bunny ears: medium skin tone, medium-light skin tone',
+    '👨🏽‍🐰‍👨🏾' => 'men with bunny ears: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🐰‍👨🏿' => 'men with bunny ears: medium skin tone, dark skin tone',
+    '👨🏾‍🐰‍👨🏻' => 'men with bunny ears: medium-dark skin tone, light skin tone',
+    '👨🏾‍🐰‍👨🏼' => 'men with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🐰‍👨🏽' => 'men with bunny ears: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🐰‍👨🏿' => 'men with bunny ears: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🐰‍👨🏻' => 'men with bunny ears: dark skin tone, light skin tone',
+    '👨🏿‍🐰‍👨🏼' => 'men with bunny ears: dark skin tone, medium-light skin tone',
+    '👨🏿‍🐰‍👨🏽' => 'men with bunny ears: dark skin tone, medium skin tone',
+    '👨🏿‍🐰‍👨🏾' => 'men with bunny ears: dark skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏼' => 'women wrestling: light skin tone, medium-light skin tone',
+    '👩🏻‍🫯‍👩🏽' => 'women wrestling: light skin tone, medium skin tone',
+    '👩🏻‍🫯‍👩🏾' => 'women wrestling: light skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏿' => 'women wrestling: light skin tone, dark skin tone',
+    '👩🏼‍🫯‍👩🏻' => 'women wrestling: medium-light skin tone, light skin tone',
+    '👩🏼‍🫯‍👩🏽' => 'women wrestling: medium-light skin tone, medium skin tone',
+    '👩🏼‍🫯‍👩🏾' => 'women wrestling: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🫯‍👩🏿' => 'women wrestling: medium-light skin tone, dark skin tone',
+    '👩🏽‍🫯‍👩🏻' => 'women wrestling: medium skin tone, light skin tone',
+    '👩🏽‍🫯‍👩🏼' => 'women wrestling: medium skin tone, medium-light skin tone',
+    '👩🏽‍🫯‍👩🏾' => 'women wrestling: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🫯‍👩🏿' => 'women wrestling: medium skin tone, dark skin tone',
+    '👩🏾‍🫯‍👩🏻' => 'women wrestling: medium-dark skin tone, light skin tone',
+    '👩🏾‍🫯‍👩🏼' => 'women wrestling: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🫯‍👩🏽' => 'women wrestling: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🫯‍👩🏿' => 'women wrestling: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🫯‍👩🏻' => 'women wrestling: dark skin tone, light skin tone',
+    '👩🏿‍🫯‍👩🏼' => 'women wrestling: dark skin tone, medium-light skin tone',
+    '👩🏿‍🫯‍👩🏽' => 'women wrestling: dark skin tone, medium skin tone',
+    '👩🏿‍🫯‍👩🏾' => 'women wrestling: dark skin tone, medium-dark skin tone',
     '👩🏻‍❤‍👨🏻' => 'couple with heart: woman, man, light skin tone',
     '👩🏻‍❤‍👨🏼' => 'couple with heart: woman, man, light skin tone, medium-light skin tone',
     '👩🏻‍❤‍👨🏽' => 'couple with heart: woman, man, light skin tone, medium skin tone',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'couple with heart: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍👩🏾' => 'couple with heart: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍👩🏿' => 'couple with heart: woman, woman, dark skin tone',
+    '👩🏻‍🐰‍👩🏼' => 'women with bunny ears: light skin tone, medium-light skin tone',
+    '👩🏻‍🐰‍👩🏽' => 'women with bunny ears: light skin tone, medium skin tone',
+    '👩🏻‍🐰‍👩🏾' => 'women with bunny ears: light skin tone, medium-dark skin tone',
+    '👩🏻‍🐰‍👩🏿' => 'women with bunny ears: light skin tone, dark skin tone',
+    '👩🏼‍🐰‍👩🏻' => 'women with bunny ears: medium-light skin tone, light skin tone',
+    '👩🏼‍🐰‍👩🏽' => 'women with bunny ears: medium-light skin tone, medium skin tone',
+    '👩🏼‍🐰‍👩🏾' => 'women with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🐰‍👩🏿' => 'women with bunny ears: medium-light skin tone, dark skin tone',
+    '👩🏽‍🐰‍👩🏻' => 'women with bunny ears: medium skin tone, light skin tone',
+    '👩🏽‍🐰‍👩🏼' => 'women with bunny ears: medium skin tone, medium-light skin tone',
+    '👩🏽‍🐰‍👩🏾' => 'women with bunny ears: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🐰‍👩🏿' => 'women with bunny ears: medium skin tone, dark skin tone',
+    '👩🏾‍🐰‍👩🏻' => 'women with bunny ears: medium-dark skin tone, light skin tone',
+    '👩🏾‍🐰‍👩🏼' => 'women with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🐰‍👩🏽' => 'women with bunny ears: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🐰‍👩🏿' => 'women with bunny ears: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🐰‍👩🏻' => 'women with bunny ears: dark skin tone, light skin tone',
+    '👩🏿‍🐰‍👩🏼' => 'women with bunny ears: dark skin tone, medium-light skin tone',
+    '👩🏿‍🐰‍👩🏽' => 'women with bunny ears: dark skin tone, medium skin tone',
+    '👩🏿‍🐰‍👩🏾' => 'women with bunny ears: dark skin tone, medium-dark skin tone',
     '🧑🏻‍🤝‍🧑🏻' => 'people holding hands: light skin tone',
     '🧑🏻‍🤝‍🧑🏼' => 'people holding hands: light skin tone, medium-light skin tone',
     '🧑🏻‍🤝‍🧑🏽' => 'people holding hands: light skin tone, medium skin tone',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flag: Scotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flag: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'family: adult, adult, child, child',
-    '🚶🏻‍♀‍➡' => 'woman walking facing right',
-    '🚶🏼‍♀‍➡' => 'woman walking facing right',
-    '🚶🏽‍♀‍➡' => 'woman walking facing right',
-    '🚶🏾‍♀‍➡' => 'woman walking facing right',
-    '🚶🏿‍♀‍➡' => 'woman walking facing right',
-    '🚶🏻‍♂‍➡' => 'man walking facing right',
-    '🚶🏼‍♂‍➡' => 'man walking facing right',
-    '🚶🏽‍♂‍➡' => 'man walking facing right',
-    '🚶🏾‍♂‍➡' => 'man walking facing right',
-    '🚶🏿‍♂‍➡' => 'man walking facing right',
-    '🧎🏻‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏼‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏽‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏾‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏿‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏻‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏼‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏽‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏾‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏿‍♂‍➡' => 'man kneeling facing right',
-    '🧑🏻‍🦯‍➡' => 'person with guide cane facing right',
-    '🧑🏼‍🦯‍➡' => 'person with guide cane facing right',
-    '🧑🏽‍🦯‍➡' => 'person with guide cane facing right',
-    '🧑🏾‍🦯‍➡' => 'person with guide cane facing right',
-    '🧑🏿‍🦯‍➡' => 'person with guide cane facing right',
-    '👨🏻‍🦯‍➡' => 'man with guide cane facing right',
-    '👨🏼‍🦯‍➡' => 'man with guide cane facing right',
-    '👨🏽‍🦯‍➡' => 'man with guide cane facing right',
-    '👨🏾‍🦯‍➡' => 'man with guide cane facing right',
-    '👨🏿‍🦯‍➡' => 'man with guide cane facing right',
-    '👩🏻‍🦯‍➡' => 'woman with guide cane facing right',
-    '👩🏼‍🦯‍➡' => 'woman with guide cane facing right',
-    '👩🏽‍🦯‍➡' => 'woman with guide cane facing right',
-    '👩🏾‍🦯‍➡' => 'woman with guide cane facing right',
-    '👩🏿‍🦯‍➡' => 'woman with guide cane facing right',
-    '🧑🏻‍🦼‍➡' => 'person in powered wheelchair facing right',
-    '🧑🏼‍🦼‍➡' => 'person in powered wheelchair facing right',
-    '🧑🏽‍🦼‍➡' => 'person in powered wheelchair facing right',
-    '🧑🏾‍🦼‍➡' => 'person in powered wheelchair facing right',
-    '🧑🏿‍🦼‍➡' => 'person in powered wheelchair facing right',
-    '👨🏻‍🦼‍➡' => 'man in powered wheelchair facing right',
-    '👨🏼‍🦼‍➡' => 'man in powered wheelchair facing right',
-    '👨🏽‍🦼‍➡' => 'man in powered wheelchair facing right',
-    '👨🏾‍🦼‍➡' => 'man in powered wheelchair facing right',
-    '👨🏿‍🦼‍➡' => 'man in powered wheelchair facing right',
-    '👩🏻‍🦼‍➡' => 'woman in powered wheelchair facing right',
-    '👩🏼‍🦼‍➡' => 'woman in powered wheelchair facing right',
-    '👩🏽‍🦼‍➡' => 'woman in powered wheelchair facing right',
-    '👩🏾‍🦼‍➡' => 'woman in powered wheelchair facing right',
-    '👩🏿‍🦼‍➡' => 'woman in powered wheelchair facing right',
-    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨🏻‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏼‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏽‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏾‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏿‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃🏻‍♀‍➡' => 'woman running facing right',
-    '🏃🏼‍♀‍➡' => 'woman running facing right',
-    '🏃🏽‍♀‍➡' => 'woman running facing right',
-    '🏃🏾‍♀‍➡' => 'woman running facing right',
-    '🏃🏿‍♀‍➡' => 'woman running facing right',
-    '🏃🏻‍♂‍➡' => 'man running facing right',
-    '🏃🏼‍♂‍➡' => 'man running facing right',
-    '🏃🏽‍♂‍➡' => 'man running facing right',
-    '🏃🏾‍♂‍➡' => 'man running facing right',
-    '🏃🏿‍♂‍➡' => 'man running facing right',
+    '🚶🏻‍♀‍➡' => 'woman walking: light skin tone, facing right',
+    '🚶🏼‍♀‍➡' => 'woman walking: medium-light skin tone, facing right',
+    '🚶🏽‍♀‍➡' => 'woman walking: medium skin tone, facing right',
+    '🚶🏾‍♀‍➡' => 'woman walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♀‍➡' => 'woman walking: dark skin tone, facing right',
+    '🚶🏻‍♂‍➡' => 'man walking: light skin tone, facing right',
+    '🚶🏼‍♂‍➡' => 'man walking: medium-light skin tone, facing right',
+    '🚶🏽‍♂‍➡' => 'man walking: medium skin tone, facing right',
+    '🚶🏾‍♂‍➡' => 'man walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♂‍➡' => 'man walking: dark skin tone, facing right',
+    '🧎🏻‍♀‍➡' => 'woman kneeling: light skin tone, facing right',
+    '🧎🏼‍♀‍➡' => 'woman kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♀‍➡' => 'woman kneeling: medium skin tone, facing right',
+    '🧎🏾‍♀‍➡' => 'woman kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♀‍➡' => 'woman kneeling: dark skin tone, facing right',
+    '🧎🏻‍♂‍➡' => 'man kneeling: light skin tone, facing right',
+    '🧎🏼‍♂‍➡' => 'man kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♂‍➡' => 'man kneeling: medium skin tone, facing right',
+    '🧎🏾‍♂‍➡' => 'man kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♂‍➡' => 'man kneeling: dark skin tone, facing right',
+    '🧑🏻‍🦯‍➡' => 'person with guide cane: light skin tone, facing right',
+    '🧑🏼‍🦯‍➡' => 'person with guide cane: medium-light skin tone, facing right',
+    '🧑🏽‍🦯‍➡' => 'person with guide cane: medium skin tone, facing right',
+    '🧑🏾‍🦯‍➡' => 'person with guide cane: medium-dark skin tone, facing right',
+    '🧑🏿‍🦯‍➡' => 'person with guide cane: dark skin tone, facing right',
+    '👨🏻‍🦯‍➡' => 'man with guide cane: light skin tone, facing right',
+    '👨🏼‍🦯‍➡' => 'man with guide cane: medium-light skin tone, facing right',
+    '👨🏽‍🦯‍➡' => 'man with guide cane: medium skin tone, facing right',
+    '👨🏾‍🦯‍➡' => 'man with guide cane: medium-dark skin tone, facing right',
+    '👨🏿‍🦯‍➡' => 'man with guide cane: dark skin tone, facing right',
+    '👩🏻‍🦯‍➡' => 'woman with guide cane: light skin tone, facing right',
+    '👩🏼‍🦯‍➡' => 'woman with guide cane: medium-light skin tone, facing right',
+    '👩🏽‍🦯‍➡' => 'woman with guide cane: medium skin tone, facing right',
+    '👩🏾‍🦯‍➡' => 'woman with guide cane: medium-dark skin tone, facing right',
+    '👩🏿‍🦯‍➡' => 'woman with guide cane: dark skin tone, facing right',
+    '🧑🏻‍🦼‍➡' => 'person in powered wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦼‍➡' => 'person in powered wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦼‍➡' => 'person in powered wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦼‍➡' => 'person in powered wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦼‍➡' => 'person in powered wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦼‍➡' => 'man in powered wheelchair: light skin tone, facing right',
+    '👨🏼‍🦼‍➡' => 'man in powered wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦼‍➡' => 'man in powered wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦼‍➡' => 'man in powered wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦼‍➡' => 'man in powered wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦼‍➡' => 'woman in powered wheelchair: light skin tone, facing right',
+    '👩🏼‍🦼‍➡' => 'woman in powered wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦼‍➡' => 'woman in powered wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦼‍➡' => 'woman in powered wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦼‍➡' => 'woman in powered wheelchair: dark skin tone, facing right',
+    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦽‍➡' => 'man in manual wheelchair: light skin tone, facing right',
+    '👨🏼‍🦽‍➡' => 'man in manual wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦽‍➡' => 'man in manual wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦽‍➡' => 'man in manual wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦽‍➡' => 'man in manual wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair: light skin tone, facing right',
+    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair: dark skin tone, facing right',
+    '🏃🏻‍♀‍➡' => 'woman running: light skin tone, facing right',
+    '🏃🏼‍♀‍➡' => 'woman running: medium-light skin tone, facing right',
+    '🏃🏽‍♀‍➡' => 'woman running: medium skin tone, facing right',
+    '🏃🏾‍♀‍➡' => 'woman running: medium-dark skin tone, facing right',
+    '🏃🏿‍♀‍➡' => 'woman running: dark skin tone, facing right',
+    '🏃🏻‍♂‍➡' => 'man running: light skin tone, facing right',
+    '🏃🏼‍♂‍➡' => 'man running: medium-light skin tone, facing right',
+    '🏃🏽‍♂‍➡' => 'man running: medium skin tone, facing right',
+    '🏃🏾‍♂‍➡' => 'man running: medium-dark skin tone, facing right',
+    '🏃🏿‍♂‍➡' => 'man running: dark skin tone, facing right',
     '🫱🏻‍🫲🏼' => 'handshake: light skin tone, medium-light skin tone',
     '🫱🏻‍🫲🏽' => 'handshake: light skin tone, medium skin tone',
     '🫱🏻‍🫲🏾' => 'handshake: light skin tone, medium-dark skin tone',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handshake: dark skin tone, medium-light skin tone',
     '🫱🏿‍🫲🏽' => 'handshake: dark skin tone, medium skin tone',
     '🫱🏿‍🫲🏾' => 'handshake: dark skin tone, medium-dark skin tone',
-    '🚶‍♀‍➡' => 'woman walking facing right',
-    '🚶‍♂‍➡' => 'man walking facing right',
-    '🧎‍♀‍➡' => 'woman kneeling facing right',
-    '🧎‍♂‍➡' => 'man kneeling facing right',
-    '🧑‍🦯‍➡' => 'person with guide cane facing right',
-    '👨‍🦯‍➡' => 'man with guide cane facing right',
-    '👩‍🦯‍➡' => 'woman with guide cane facing right',
-    '🧑‍🦼‍➡' => 'person in powered wheelchair facing right',
-    '👨‍🦼‍➡' => 'man in powered wheelchair facing right',
-    '👩‍🦼‍➡' => 'woman in powered wheelchair facing right',
-    '🧑‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃‍♀‍➡' => 'woman running facing right',
-    '🏃‍♂‍➡' => 'man running facing right',
+    '🚶‍♀‍➡' => 'woman walking: facing right',
+    '🚶‍♂‍➡' => 'man walking: facing right',
+    '🧎‍♀‍➡' => 'woman kneeling: facing right',
+    '🧎‍♂‍➡' => 'man kneeling: facing right',
+    '🧑‍🦯‍➡' => 'person with guide cane: facing right',
+    '👨‍🦯‍➡' => 'man with guide cane: facing right',
+    '👩‍🦯‍➡' => 'woman with guide cane: facing right',
+    '🧑‍🦼‍➡' => 'person in powered wheelchair: facing right',
+    '👨‍🦼‍➡' => 'man in powered wheelchair: facing right',
+    '👩‍🦼‍➡' => 'woman in powered wheelchair: facing right',
+    '🧑‍🦽‍➡' => 'person in manual wheelchair: facing right',
+    '👨‍🦽‍➡' => 'man in manual wheelchair: facing right',
+    '👩‍🦽‍➡' => 'woman in manual wheelchair: facing right',
+    '🏃‍♀‍➡' => 'woman running: facing right',
+    '🏃‍♂‍➡' => 'man running: facing right',
     '👩‍❤‍👨' => 'couple with heart: woman, man',
     '👨‍❤‍👨' => 'couple with heart: man, man',
     '👩‍❤‍👩' => 'couple with heart: woman, woman',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'person: medium skin tone, bald',
     '🧑🏾‍🦲' => 'person: medium-dark skin tone, bald',
     '🧑🏿‍🦲' => 'person: dark skin tone, bald',
+    '🧑🏻‍🩰' => 'ballet dancer: light skin tone',
+    '🧑🏼‍🩰' => 'ballet dancer: medium-light skin tone',
+    '🧑🏽‍🩰' => 'ballet dancer: medium skin tone',
+    '🧑🏾‍🩰' => 'ballet dancer: medium-dark skin tone',
+    '🧑🏿‍🩰' => 'ballet dancer: dark skin tone',
     '🧔🏻‍♂' => 'man: light skin tone, beard',
     '🧔🏼‍♂' => 'man: medium-light skin tone, beard',
     '🧔🏽‍♂' => 'man: medium skin tone, beard',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'woman walking: medium skin tone',
     '🚶🏾‍♀' => 'woman walking: medium-dark skin tone',
     '🚶🏿‍♀' => 'woman walking: dark skin tone',
-    '🚶🏻‍➡' => 'person walking facing right',
-    '🚶🏼‍➡' => 'person walking facing right',
-    '🚶🏽‍➡' => 'person walking facing right',
-    '🚶🏾‍➡' => 'person walking facing right',
-    '🚶🏿‍➡' => 'person walking facing right',
+    '🚶🏻‍➡' => 'person walking: light skin tone, facing right',
+    '🚶🏼‍➡' => 'person walking: medium-light skin tone, facing right',
+    '🚶🏽‍➡' => 'person walking: medium skin tone, facing right',
+    '🚶🏾‍➡' => 'person walking: medium-dark skin tone, facing right',
+    '🚶🏿‍➡' => 'person walking: dark skin tone, facing right',
     '🧍🏻‍♂' => 'man standing: light skin tone',
     '🧍🏼‍♂' => 'man standing: medium-light skin tone',
     '🧍🏽‍♂' => 'man standing: medium skin tone',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'woman kneeling: medium skin tone',
     '🧎🏾‍♀' => 'woman kneeling: medium-dark skin tone',
     '🧎🏿‍♀' => 'woman kneeling: dark skin tone',
-    '🧎🏻‍➡' => 'person kneeling facing right',
-    '🧎🏼‍➡' => 'person kneeling facing right',
-    '🧎🏽‍➡' => 'person kneeling facing right',
-    '🧎🏾‍➡' => 'person kneeling facing right',
-    '🧎🏿‍➡' => 'person kneeling facing right',
+    '🧎🏻‍➡' => 'person kneeling: light skin tone, facing right',
+    '🧎🏼‍➡' => 'person kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍➡' => 'person kneeling: medium skin tone, facing right',
+    '🧎🏾‍➡' => 'person kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍➡' => 'person kneeling: dark skin tone, facing right',
     '🧑🏻‍🦯' => 'person with guide cane: light skin tone',
     '🧑🏼‍🦯' => 'person with guide cane: medium-light skin tone',
     '🧑🏽‍🦯' => 'person with guide cane: medium skin tone',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'woman running: medium skin tone',
     '🏃🏾‍♀' => 'woman running: medium-dark skin tone',
     '🏃🏿‍♀' => 'woman running: dark skin tone',
-    '🏃🏻‍➡' => 'person running facing right',
-    '🏃🏼‍➡' => 'person running facing right',
-    '🏃🏽‍➡' => 'person running facing right',
-    '🏃🏾‍➡' => 'person running facing right',
-    '🏃🏿‍➡' => 'person running facing right',
+    '🏃🏻‍➡' => 'person running: light skin tone, facing right',
+    '🏃🏼‍➡' => 'person running: medium-light skin tone, facing right',
+    '🏃🏽‍➡' => 'person running: medium skin tone, facing right',
+    '🏃🏾‍➡' => 'person running: medium-dark skin tone, facing right',
+    '🏃🏿‍➡' => 'person running: dark skin tone, facing right',
+    '👯🏻‍♀' => 'women with bunny ears: light skin tone',
+    '👯🏼‍♀' => 'women with bunny ears: medium-light skin tone',
+    '👯🏽‍♀' => 'women with bunny ears: medium skin tone',
+    '👯🏾‍♀' => 'women with bunny ears: medium-dark skin tone',
+    '👯🏿‍♀' => 'women with bunny ears: dark skin tone',
+    '👯🏻‍♂' => 'men with bunny ears: light skin tone',
+    '👯🏼‍♂' => 'men with bunny ears: medium-light skin tone',
+    '👯🏽‍♂' => 'men with bunny ears: medium skin tone',
+    '👯🏾‍♂' => 'men with bunny ears: medium-dark skin tone',
+    '👯🏿‍♂' => 'men with bunny ears: dark skin tone',
     '🧖🏻‍♂' => 'man in steamy room: light skin tone',
     '🧖🏼‍♂' => 'man in steamy room: medium-light skin tone',
     '🧖🏽‍♂' => 'man in steamy room: medium skin tone',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'woman cartwheeling: medium skin tone',
     '🤸🏾‍♀' => 'woman cartwheeling: medium-dark skin tone',
     '🤸🏿‍♀' => 'woman cartwheeling: dark skin tone',
+    '🤼🏻‍♀' => 'women wrestling: light skin tone',
+    '🤼🏼‍♀' => 'women wrestling: medium-light skin tone',
+    '🤼🏽‍♀' => 'women wrestling: medium skin tone',
+    '🤼🏾‍♀' => 'women wrestling: medium-dark skin tone',
+    '🤼🏿‍♀' => 'women wrestling: dark skin tone',
+    '🤼🏻‍♂' => 'men wrestling: light skin tone',
+    '🤼🏼‍♂' => 'men wrestling: medium-light skin tone',
+    '🤼🏽‍♂' => 'men wrestling: medium skin tone',
+    '🤼🏾‍♂' => 'men wrestling: medium-dark skin tone',
+    '🤼🏿‍♂' => 'men wrestling: dark skin tone',
     '🤽🏻‍♂' => 'man playing water polo: light skin tone',
     '🤽🏼‍♂' => 'man playing water polo: medium-light skin tone',
     '🤽🏽‍♂' => 'man playing water polo: medium skin tone',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'woman: curly hair',
     '👩‍🦳' => 'woman: white hair',
     '👩‍🦲' => 'woman: bald',
-    '🚶‍➡' => 'person walking facing right',
-    '🧎‍➡' => 'person kneeling facing right',
-    '🏃‍➡' => 'person running facing right',
+    '🚶‍➡' => 'person walking: facing right',
+    '🧎‍➡' => 'person kneeling: facing right',
+    '🏃‍➡' => 'person running: facing right',
     '👨‍👦' => 'family: man, boy',
     '👨‍👧' => 'family: man, girl',
     '👩‍👦' => 'family: woman, boy',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'woman in manual wheelchair',
     '🏃‍♂' => 'man running',
     '🏃‍♀' => 'woman running',
+    '🧑‍🩰' => 'ballet dancer',
     '👯‍♂' => 'men with bunny ears',
     '👯‍♀' => 'women with bunny ears',
     '🧖‍♂' => 'man in steamy room',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'person in suit levitating: medium skin tone',
     '🕴🏾' => 'person in suit levitating: medium-dark skin tone',
     '🕴🏿' => 'person in suit levitating: dark skin tone',
+    '👯🏻' => 'people with bunny ears: light skin tone',
+    '👯🏼' => 'people with bunny ears: medium-light skin tone',
+    '👯🏽' => 'people with bunny ears: medium skin tone',
+    '👯🏾' => 'people with bunny ears: medium-dark skin tone',
+    '👯🏿' => 'people with bunny ears: dark skin tone',
     '🧖🏻' => 'person in steamy room: light skin tone',
     '🧖🏼' => 'person in steamy room: medium-light skin tone',
     '🧖🏽' => 'person in steamy room: medium skin tone',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'person cartwheeling: medium skin tone',
     '🤸🏾' => 'person cartwheeling: medium-dark skin tone',
     '🤸🏿' => 'person cartwheeling: dark skin tone',
+    '🤼🏻' => 'people wrestling: light skin tone',
+    '🤼🏼' => 'people wrestling: medium-light skin tone',
+    '🤼🏽' => 'people wrestling: medium skin tone',
+    '🤼🏾' => 'people wrestling: medium-dark skin tone',
+    '🤼🏿' => 'people wrestling: dark skin tone',
     '🤽🏻' => 'person playing water polo: light skin tone',
     '🤽🏼' => 'person playing water polo: medium-light skin tone',
     '🤽🏽' => 'person playing water polo: medium skin tone',
@@ -2391,13 +2547,6 @@
     '🏽' => 'medium skin tone',
     '🏾' => 'medium-dark skin tone',
     '🏿' => 'dark skin tone',
-    '🪉' => 'harp',
-    '🪏' => 'shovel',
-    '🪾' => 'leafless tree',
-    '🫆' => 'fingerprint',
-    '🫜' => 'root vegetable',
-    '🫟' => 'splatter',
-    '🫩' => 'face with bags under eyes',
     '😀' => 'grinning face',
     '😃' => 'grinning face with big eyes',
     '😄' => 'grinning face with smiling eyes',
@@ -2451,6 +2600,7 @@
     '😪' => 'sleepy face',
     '🤤' => 'drooling face',
     '😴' => 'sleeping face',
+    '🫩' => 'face with bags under eyes',
     '😷' => 'face with medical mask',
     '🤒' => 'face with thermometer',
     '🤕' => 'face with head-bandage',
@@ -2477,6 +2627,7 @@
     '😯' => 'hushed face',
     '😲' => 'astonished face',
     '😳' => 'flushed face',
+    '🫪' => 'distorted face',
     '🥺' => 'pleading face',
     '🥹' => 'face holding back tears',
     '😦' => 'frowning face with open mouth',
@@ -2548,6 +2699,7 @@
     '💋' => 'kiss mark',
     '💯' => 'hundred points',
     '💢' => 'anger symbol',
+    '🫯' => 'fight cloud',
     '💥' => 'collision',
     '💫' => 'dizzy',
     '💦' => 'sweat droplets',
@@ -2671,6 +2823,7 @@
     '🧞' => 'genie',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'hairy creature',
     '💆' => 'person getting massage',
     '💇' => 'person getting haircut',
     '🚶' => 'person walking',
@@ -2714,6 +2867,7 @@
     '🫂' => 'people hugging',
     '👪' => 'family',
     '👣' => 'footprints',
+    '🫆' => 'fingerprint',
     '🦰' => 'red hair',
     '🦱' => 'curly hair',
     '🦳' => 'white hair',
@@ -2813,6 +2967,7 @@
     '🐳' => 'spouting whale',
     '🐋' => 'whale',
     '🐬' => 'dolphin',
+    '🫍' => 'orca',
     '🦭' => 'seal',
     '🐟' => 'fish',
     '🐠' => 'tropical fish',
@@ -2822,6 +2977,11 @@
     '🐚' => 'spiral shell',
     '🪸' => 'coral',
     '🪼' => 'jellyfish',
+    '🦀' => 'crab',
+    '🦞' => 'lobster',
+    '🦐' => 'shrimp',
+    '🦑' => 'squid',
+    '🦪' => 'oyster',
     '🐌' => 'snail',
     '🦋' => 'butterfly',
     '🐛' => 'bug',
@@ -2866,6 +3026,7 @@
     '🪹' => 'empty nest',
     '🪺' => 'nest with eggs',
     '🍄' => 'mushroom',
+    '🪾' => 'leafless tree',
     '🍇' => 'grapes',
     '🍈' => 'melon',
     '🍉' => 'watermelon',
@@ -2886,7 +3047,7 @@
     '🫒' => 'olive',
     '🥥' => 'coconut',
     '🥑' => 'avocado',
-    '🍆' => 'eggplant',
+    '🍆' => 'aubergine',
     '🥔' => 'potato',
     '🥕' => 'carrot',
     '🌽' => 'ear of corn',
@@ -2902,6 +3063,7 @@
     '🌰' => 'chestnut',
     '🫚' => 'root ginger',
     '🫛' => 'pea pod',
+    '🫜' => 'root vegetable',
     '🍞' => 'bread',
     '🥐' => 'croissant',
     '🥖' => 'baguette bread',
@@ -2953,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'fortune cookie',
     '🥡' => 'takeout box',
-    '🦀' => 'crab',
-    '🦞' => 'lobster',
-    '🦐' => 'shrimp',
-    '🦑' => 'squid',
-    '🦪' => 'oyster',
     '🍦' => 'soft ice cream',
     '🍧' => 'shaved ice',
     '🍨' => 'ice cream',
@@ -3008,6 +3165,7 @@
     '🧭' => 'compass',
     '🏔' => 'snow-capped mountain',
     '⛰' => 'mountain',
+    '🛘' => 'landslide',
     '🌋' => 'volcano',
     '🗻' => 'Mount Fuji',
     '🏕' => 'camping',
@@ -3087,8 +3245,8 @@
     '🚔' => 'oncoming police car',
     '🚕' => 'taxi',
     '🚖' => 'oncoming taxi',
-    '🚗' => 'automobile',
-    '🚘' => 'oncoming automobile',
+    '🚗' => 'car',
+    '🚘' => 'oncoming car',
     '🚙' => 'sport utility vehicle',
     '🛻' => 'pickup truck',
     '🚚' => 'delivery truck',
@@ -3122,12 +3280,12 @@
     '🚤' => 'speedboat',
     '🛳' => 'passenger ship',
     '⛴' => 'ferry',
-    '🛥' => 'motor boat',
+    '🛥' => 'motorboat',
     '🚢' => 'ship',
-    '✈' => 'airplane',
-    '🛩' => 'small airplane',
-    '🛫' => 'airplane departure',
-    '🛬' => 'airplane arrival',
+    '✈' => 'aeroplane',
+    '🛩' => 'small aeroplane',
+    '🛫' => 'aeroplane departure',
+    '🛬' => 'aeroplane arrival',
     '🪂' => 'parachute',
     '💺' => 'seat',
     '🚁' => 'helicopter',
@@ -3137,7 +3295,7 @@
     '🛰' => 'satellite',
     '🚀' => 'rocket',
     '🛸' => 'flying saucer',
-    '🛎' => 'bellhop bell',
+    '🛎' => 'service bell',
     '🧳' => 'luggage',
     '⌛' => 'hourglass done',
     '⏳' => 'hourglass not done',
@@ -3368,16 +3526,18 @@
     '🎧' => 'headphone',
     '📻' => 'radio',
     '🎷' => 'saxophone',
+    '🎺' => 'trumpet',
+    '🪊' => 'trombone',
     '🪗' => 'accordion',
     '🎸' => 'guitar',
     '🎹' => 'musical keyboard',
-    '🎺' => 'trumpet',
     '🎻' => 'violin',
     '🪕' => 'banjo',
     '🥁' => 'drum',
     '🪘' => 'conga drum',
     '🪇' => 'maracas',
     '🪈' => 'flute',
+    '🪉' => 'harp',
     '📱' => 'mobile phone',
     '📲' => 'mobile phone with arrow',
     '☎' => 'telephone',
@@ -3431,8 +3591,9 @@
     '📑' => 'bookmark tabs',
     '🔖' => 'bookmark',
     '🏷' => 'label',
-    '💰' => 'money bag',
     '🪙' => 'coin',
+    '💰' => 'money bag',
+    '🪎' => 'treasure chest',
     '💴' => 'yen banknote',
     '💵' => 'dollar banknote',
     '💶' => 'euro banknote',
@@ -3515,6 +3676,7 @@
     '🧰' => 'toolbox',
     '🧲' => 'magnet',
     '🪜' => 'ladder',
+    '🪏' => 'shovel',
     '⚗' => 'alembic',
     '🧪' => 'test tube',
     '🧫' => 'petri dish',
@@ -3698,6 +3860,7 @@
     '✴' => 'eight-pointed star',
     '❇' => 'sparkle',
     '™' => 'trade mark',
+    '🫟' => 'splatter',
     '🔠' => 'input latin uppercase',
     '🔡' => 'input latin lowercase',
     '🔢' => 'input numbers',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_au.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_au.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_au.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_au.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kiss: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍💋‍👩🏾' => 'kiss: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍💋‍👩🏿' => 'kiss: woman, woman, dark skin tone',
+    '🧑🏻‍🫯‍🧑🏼' => 'people wrestling: light skin tone, medium-light skin tone',
+    '🧑🏻‍🫯‍🧑🏽' => 'people wrestling: light skin tone, medium skin tone',
+    '🧑🏻‍🫯‍🧑🏾' => 'people wrestling: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🫯‍🧑🏿' => 'people wrestling: light skin tone, dark skin tone',
+    '🧑🏼‍🫯‍🧑🏻' => 'people wrestling: medium-light skin tone, light skin tone',
+    '🧑🏼‍🫯‍🧑🏽' => 'people wrestling: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🫯‍🧑🏾' => 'people wrestling: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🫯‍🧑🏿' => 'people wrestling: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🫯‍🧑🏻' => 'people wrestling: medium skin tone, light skin tone',
+    '🧑🏽‍🫯‍🧑🏼' => 'people wrestling: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🫯‍🧑🏾' => 'people wrestling: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🫯‍🧑🏿' => 'people wrestling: medium skin tone, dark skin tone',
+    '🧑🏾‍🫯‍🧑🏻' => 'people wrestling: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🫯‍🧑🏼' => 'people wrestling: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🫯‍🧑🏽' => 'people wrestling: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🫯‍🧑🏿' => 'people wrestling: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🫯‍🧑🏻' => 'people wrestling: dark skin tone, light skin tone',
+    '🧑🏿‍🫯‍🧑🏼' => 'people wrestling: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🫯‍🧑🏽' => 'people wrestling: dark skin tone, medium skin tone',
+    '🧑🏿‍🫯‍🧑🏾' => 'people wrestling: dark skin tone, medium-dark skin tone',
     '🧑🏻‍❤‍🧑🏼' => 'couple with heart: person, person, light skin tone, medium-light skin tone',
     '🧑🏻‍❤‍🧑🏽' => 'couple with heart: person, person, light skin tone, medium skin tone',
     '🧑🏻‍❤‍🧑🏾' => 'couple with heart: person, person, light skin tone, medium-dark skin tone',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'couple with heart: person, person, dark skin tone, medium-light skin tone',
     '🧑🏿‍❤‍🧑🏽' => 'couple with heart: person, person, dark skin tone, medium skin tone',
     '🧑🏿‍❤‍🧑🏾' => 'couple with heart: person, person, dark skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏼' => 'people with bunny ears: light skin tone, medium-light skin tone',
+    '🧑🏻‍🐰‍🧑🏽' => 'people with bunny ears: light skin tone, medium skin tone',
+    '🧑🏻‍🐰‍🧑🏾' => 'people with bunny ears: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏿' => 'people with bunny ears: light skin tone, dark skin tone',
+    '🧑🏼‍🐰‍🧑🏻' => 'people with bunny ears: medium-light skin tone, light skin tone',
+    '🧑🏼‍🐰‍🧑🏽' => 'people with bunny ears: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🐰‍🧑🏾' => 'people with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🐰‍🧑🏿' => 'people with bunny ears: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🐰‍🧑🏻' => 'people with bunny ears: medium skin tone, light skin tone',
+    '🧑🏽‍🐰‍🧑🏼' => 'people with bunny ears: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🐰‍🧑🏾' => 'people with bunny ears: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🐰‍🧑🏿' => 'people with bunny ears: medium skin tone, dark skin tone',
+    '🧑🏾‍🐰‍🧑🏻' => 'people with bunny ears: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🐰‍🧑🏼' => 'people with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🐰‍🧑🏽' => 'people with bunny ears: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🐰‍🧑🏿' => 'people with bunny ears: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🐰‍🧑🏻' => 'people with bunny ears: dark skin tone, light skin tone',
+    '🧑🏿‍🐰‍🧑🏼' => 'people with bunny ears: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🐰‍🧑🏽' => 'people with bunny ears: dark skin tone, medium skin tone',
+    '🧑🏿‍🐰‍🧑🏾' => 'people with bunny ears: dark skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏼' => 'men wrestling: light skin tone, medium-light skin tone',
+    '👨🏻‍🫯‍👨🏽' => 'men wrestling: light skin tone, medium skin tone',
+    '👨🏻‍🫯‍👨🏾' => 'men wrestling: light skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏿' => 'men wrestling: light skin tone, dark skin tone',
+    '👨🏼‍🫯‍👨🏻' => 'men wrestling: medium-light skin tone, light skin tone',
+    '👨🏼‍🫯‍👨🏽' => 'men wrestling: medium-light skin tone, medium skin tone',
+    '👨🏼‍🫯‍👨🏾' => 'men wrestling: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🫯‍👨🏿' => 'men wrestling: medium-light skin tone, dark skin tone',
+    '👨🏽‍🫯‍👨🏻' => 'men wrestling: medium skin tone, light skin tone',
+    '👨🏽‍🫯‍👨🏼' => 'men wrestling: medium skin tone, medium-light skin tone',
+    '👨🏽‍🫯‍👨🏾' => 'men wrestling: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🫯‍👨🏿' => 'men wrestling: medium skin tone, dark skin tone',
+    '👨🏾‍🫯‍👨🏻' => 'men wrestling: medium-dark skin tone, light skin tone',
+    '👨🏾‍🫯‍👨🏼' => 'men wrestling: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🫯‍👨🏽' => 'men wrestling: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🫯‍👨🏿' => 'men wrestling: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🫯‍👨🏻' => 'men wrestling: dark skin tone, light skin tone',
+    '👨🏿‍🫯‍👨🏼' => 'men wrestling: dark skin tone, medium-light skin tone',
+    '👨🏿‍🫯‍👨🏽' => 'men wrestling: dark skin tone, medium skin tone',
+    '👨🏿‍🫯‍👨🏾' => 'men wrestling: dark skin tone, medium-dark skin tone',
     '👨🏻‍❤‍👨🏻' => 'couple with heart: man, man, light skin tone',
     '👨🏻‍❤‍👨🏼' => 'couple with heart: man, man, light skin tone, medium-light skin tone',
     '👨🏻‍❤‍👨🏽' => 'couple with heart: man, man, light skin tone, medium skin tone',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'couple with heart: man, man, dark skin tone, medium skin tone',
     '👨🏿‍❤‍👨🏾' => 'couple with heart: man, man, dark skin tone, medium-dark skin tone',
     '👨🏿‍❤‍👨🏿' => 'couple with heart: man, man, dark skin tone',
+    '👨🏻‍🐰‍👨🏼' => 'men with bunny ears: light skin tone, medium-light skin tone',
+    '👨🏻‍🐰‍👨🏽' => 'men with bunny ears: light skin tone, medium skin tone',
+    '👨🏻‍🐰‍👨🏾' => 'men with bunny ears: light skin tone, medium-dark skin tone',
+    '👨🏻‍🐰‍👨🏿' => 'men with bunny ears: light skin tone, dark skin tone',
+    '👨🏼‍🐰‍👨🏻' => 'men with bunny ears: medium-light skin tone, light skin tone',
+    '👨🏼‍🐰‍👨🏽' => 'men with bunny ears: medium-light skin tone, medium skin tone',
+    '👨🏼‍🐰‍👨🏾' => 'men with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🐰‍👨🏿' => 'men with bunny ears: medium-light skin tone, dark skin tone',
+    '👨🏽‍🐰‍👨🏻' => 'men with bunny ears: medium skin tone, light skin tone',
+    '👨🏽‍🐰‍👨🏼' => 'men with bunny ears: medium skin tone, medium-light skin tone',
+    '👨🏽‍🐰‍👨🏾' => 'men with bunny ears: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🐰‍👨🏿' => 'men with bunny ears: medium skin tone, dark skin tone',
+    '👨🏾‍🐰‍👨🏻' => 'men with bunny ears: medium-dark skin tone, light skin tone',
+    '👨🏾‍🐰‍👨🏼' => 'men with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🐰‍👨🏽' => 'men with bunny ears: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🐰‍👨🏿' => 'men with bunny ears: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🐰‍👨🏻' => 'men with bunny ears: dark skin tone, light skin tone',
+    '👨🏿‍🐰‍👨🏼' => 'men with bunny ears: dark skin tone, medium-light skin tone',
+    '👨🏿‍🐰‍👨🏽' => 'men with bunny ears: dark skin tone, medium skin tone',
+    '👨🏿‍🐰‍👨🏾' => 'men with bunny ears: dark skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏼' => 'women wrestling: light skin tone, medium-light skin tone',
+    '👩🏻‍🫯‍👩🏽' => 'women wrestling: light skin tone, medium skin tone',
+    '👩🏻‍🫯‍👩🏾' => 'women wrestling: light skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏿' => 'women wrestling: light skin tone, dark skin tone',
+    '👩🏼‍🫯‍👩🏻' => 'women wrestling: medium-light skin tone, light skin tone',
+    '👩🏼‍🫯‍👩🏽' => 'women wrestling: medium-light skin tone, medium skin tone',
+    '👩🏼‍🫯‍👩🏾' => 'women wrestling: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🫯‍👩🏿' => 'women wrestling: medium-light skin tone, dark skin tone',
+    '👩🏽‍🫯‍👩🏻' => 'women wrestling: medium skin tone, light skin tone',
+    '👩🏽‍🫯‍👩🏼' => 'women wrestling: medium skin tone, medium-light skin tone',
+    '👩🏽‍🫯‍👩🏾' => 'women wrestling: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🫯‍👩🏿' => 'women wrestling: medium skin tone, dark skin tone',
+    '👩🏾‍🫯‍👩🏻' => 'women wrestling: medium-dark skin tone, light skin tone',
+    '👩🏾‍🫯‍👩🏼' => 'women wrestling: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🫯‍👩🏽' => 'women wrestling: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🫯‍👩🏿' => 'women wrestling: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🫯‍👩🏻' => 'women wrestling: dark skin tone, light skin tone',
+    '👩🏿‍🫯‍👩🏼' => 'women wrestling: dark skin tone, medium-light skin tone',
+    '👩🏿‍🫯‍👩🏽' => 'women wrestling: dark skin tone, medium skin tone',
+    '👩🏿‍🫯‍👩🏾' => 'women wrestling: dark skin tone, medium-dark skin tone',
     '👩🏻‍❤‍👨🏻' => 'couple with heart: woman, man, light skin tone',
     '👩🏻‍❤‍👨🏼' => 'couple with heart: woman, man, light skin tone, medium-light skin tone',
     '👩🏻‍❤‍👨🏽' => 'couple with heart: woman, man, light skin tone, medium skin tone',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'couple with heart: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍👩🏾' => 'couple with heart: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍👩🏿' => 'couple with heart: woman, woman, dark skin tone',
+    '👩🏻‍🐰‍👩🏼' => 'women with bunny ears: light skin tone, medium-light skin tone',
+    '👩🏻‍🐰‍👩🏽' => 'women with bunny ears: light skin tone, medium skin tone',
+    '👩🏻‍🐰‍👩🏾' => 'women with bunny ears: light skin tone, medium-dark skin tone',
+    '👩🏻‍🐰‍👩🏿' => 'women with bunny ears: light skin tone, dark skin tone',
+    '👩🏼‍🐰‍👩🏻' => 'women with bunny ears: medium-light skin tone, light skin tone',
+    '👩🏼‍🐰‍👩🏽' => 'women with bunny ears: medium-light skin tone, medium skin tone',
+    '👩🏼‍🐰‍👩🏾' => 'women with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🐰‍👩🏿' => 'women with bunny ears: medium-light skin tone, dark skin tone',
+    '👩🏽‍🐰‍👩🏻' => 'women with bunny ears: medium skin tone, light skin tone',
+    '👩🏽‍🐰‍👩🏼' => 'women with bunny ears: medium skin tone, medium-light skin tone',
+    '👩🏽‍🐰‍👩🏾' => 'women with bunny ears: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🐰‍👩🏿' => 'women with bunny ears: medium skin tone, dark skin tone',
+    '👩🏾‍🐰‍👩🏻' => 'women with bunny ears: medium-dark skin tone, light skin tone',
+    '👩🏾‍🐰‍👩🏼' => 'women with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🐰‍👩🏽' => 'women with bunny ears: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🐰‍👩🏿' => 'women with bunny ears: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🐰‍👩🏻' => 'women with bunny ears: dark skin tone, light skin tone',
+    '👩🏿‍🐰‍👩🏼' => 'women with bunny ears: dark skin tone, medium-light skin tone',
+    '👩🏿‍🐰‍👩🏽' => 'women with bunny ears: dark skin tone, medium skin tone',
+    '👩🏿‍🐰‍👩🏾' => 'women with bunny ears: dark skin tone, medium-dark skin tone',
     '🧑🏻‍🤝‍🧑🏻' => 'people holding hands: light skin tone',
     '🧑🏻‍🤝‍🧑🏼' => 'people holding hands: light skin tone, medium-light skin tone',
     '🧑🏻‍🤝‍🧑🏽' => 'people holding hands: light skin tone, medium skin tone',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flag: Scotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flag: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'family: adult, adult, child, child',
-    '🚶🏻‍♀‍➡' => 'woman walking facing right',
-    '🚶🏼‍♀‍➡' => 'woman walking facing right',
-    '🚶🏽‍♀‍➡' => 'woman walking facing right',
-    '🚶🏾‍♀‍➡' => 'woman walking facing right',
-    '🚶🏿‍♀‍➡' => 'woman walking facing right',
-    '🚶🏻‍♂‍➡' => 'man walking facing right',
-    '🚶🏼‍♂‍➡' => 'man walking facing right',
-    '🚶🏽‍♂‍➡' => 'man walking facing right',
-    '🚶🏾‍♂‍➡' => 'man walking facing right',
-    '🚶🏿‍♂‍➡' => 'man walking facing right',
-    '🧎🏻‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏼‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏽‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏾‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏿‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏻‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏼‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏽‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏾‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏿‍♂‍➡' => 'man kneeling facing right',
-    '🧑🏻‍🦯‍➡' => 'person with long mobility cane facing right',
-    '🧑🏼‍🦯‍➡' => 'person with long mobility cane facing right',
-    '🧑🏽‍🦯‍➡' => 'person with long mobility cane facing right',
-    '🧑🏾‍🦯‍➡' => 'person with long mobility cane facing right',
-    '🧑🏿‍🦯‍➡' => 'person with long mobility cane facing right',
-    '👨🏻‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏼‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏽‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏾‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏿‍🦯‍➡' => 'man with white cane facing right',
-    '👩🏻‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏼‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏽‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏾‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏿‍🦯‍➡' => 'woman with white cane facing right',
-    '🧑🏻‍🦼‍➡' => 'person in motorised wheelchair facing right',
-    '🧑🏼‍🦼‍➡' => 'person in motorised wheelchair facing right',
-    '🧑🏽‍🦼‍➡' => 'person in motorised wheelchair facing right',
-    '🧑🏾‍🦼‍➡' => 'person in motorised wheelchair facing right',
-    '🧑🏿‍🦼‍➡' => 'person in motorised wheelchair facing right',
-    '👨🏻‍🦼‍➡' => 'man in motorised wheelchair facing right',
-    '👨🏼‍🦼‍➡' => 'man in motorised wheelchair facing right',
-    '👨🏽‍🦼‍➡' => 'man in motorised wheelchair facing right',
-    '👨🏾‍🦼‍➡' => 'man in motorised wheelchair facing right',
-    '👨🏿‍🦼‍➡' => 'man in motorised wheelchair facing right',
-    '👩🏻‍🦼‍➡' => 'woman in motorised wheelchair facing right',
-    '👩🏼‍🦼‍➡' => 'woman in motorised wheelchair facing right',
-    '👩🏽‍🦼‍➡' => 'woman in motorised wheelchair facing right',
-    '👩🏾‍🦼‍➡' => 'woman in motorised wheelchair facing right',
-    '👩🏿‍🦼‍➡' => 'woman in motorised wheelchair facing right',
-    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨🏻‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏼‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏽‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏾‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏿‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃🏻‍♀‍➡' => 'woman running facing right',
-    '🏃🏼‍♀‍➡' => 'woman running facing right',
-    '🏃🏽‍♀‍➡' => 'woman running facing right',
-    '🏃🏾‍♀‍➡' => 'woman running facing right',
-    '🏃🏿‍♀‍➡' => 'woman running facing right',
-    '🏃🏻‍♂‍➡' => 'man running facing right',
-    '🏃🏼‍♂‍➡' => 'man running facing right',
-    '🏃🏽‍♂‍➡' => 'man running facing right',
-    '🏃🏾‍♂‍➡' => 'man running facing right',
-    '🏃🏿‍♂‍➡' => 'man running facing right',
+    '🚶🏻‍♀‍➡' => 'woman walking: light skin tone, facing right',
+    '🚶🏼‍♀‍➡' => 'woman walking: medium-light skin tone, facing right',
+    '🚶🏽‍♀‍➡' => 'woman walking: medium skin tone, facing right',
+    '🚶🏾‍♀‍➡' => 'woman walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♀‍➡' => 'woman walking: dark skin tone, facing right',
+    '🚶🏻‍♂‍➡' => 'man walking: light skin tone, facing right',
+    '🚶🏼‍♂‍➡' => 'man walking: medium-light skin tone, facing right',
+    '🚶🏽‍♂‍➡' => 'man walking: medium skin tone, facing right',
+    '🚶🏾‍♂‍➡' => 'man walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♂‍➡' => 'man walking: dark skin tone, facing right',
+    '🧎🏻‍♀‍➡' => 'woman kneeling: light skin tone, facing right',
+    '🧎🏼‍♀‍➡' => 'woman kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♀‍➡' => 'woman kneeling: medium skin tone, facing right',
+    '🧎🏾‍♀‍➡' => 'woman kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♀‍➡' => 'woman kneeling: dark skin tone, facing right',
+    '🧎🏻‍♂‍➡' => 'man kneeling: light skin tone, facing right',
+    '🧎🏼‍♂‍➡' => 'man kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♂‍➡' => 'man kneeling: medium skin tone, facing right',
+    '🧎🏾‍♂‍➡' => 'man kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♂‍➡' => 'man kneeling: dark skin tone, facing right',
+    '🧑🏻‍🦯‍➡' => 'person with long mobility cane: light skin tone, facing right',
+    '🧑🏼‍🦯‍➡' => 'person with long mobility cane: medium-light skin tone, facing right',
+    '🧑🏽‍🦯‍➡' => 'person with long mobility cane: medium skin tone, facing right',
+    '🧑🏾‍🦯‍➡' => 'person with long mobility cane: medium-dark skin tone, facing right',
+    '🧑🏿‍🦯‍➡' => 'person with long mobility cane: dark skin tone, facing right',
+    '👨🏻‍🦯‍➡' => 'man with white cane: light skin tone, facing right',
+    '👨🏼‍🦯‍➡' => 'man with white cane: medium-light skin tone, facing right',
+    '👨🏽‍🦯‍➡' => 'man with white cane: medium skin tone, facing right',
+    '👨🏾‍🦯‍➡' => 'man with white cane: medium-dark skin tone, facing right',
+    '👨🏿‍🦯‍➡' => 'man with white cane: dark skin tone, facing right',
+    '👩🏻‍🦯‍➡' => 'woman with white cane: light skin tone, facing right',
+    '👩🏼‍🦯‍➡' => 'woman with white cane: medium-light skin tone, facing right',
+    '👩🏽‍🦯‍➡' => 'woman with white cane: medium skin tone, facing right',
+    '👩🏾‍🦯‍➡' => 'woman with white cane: medium-dark skin tone, facing right',
+    '👩🏿‍🦯‍➡' => 'woman with white cane: dark skin tone, facing right',
+    '🧑🏻‍🦼‍➡' => 'person in motorised wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦼‍➡' => 'person in motorised wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦼‍➡' => 'person in motorised wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦼‍➡' => 'person in motorised wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦼‍➡' => 'person in motorised wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦼‍➡' => 'man in motorised wheelchair: light skin tone, facing right',
+    '👨🏼‍🦼‍➡' => 'man in motorised wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦼‍➡' => 'man in motorised wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦼‍➡' => 'man in motorised wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦼‍➡' => 'man in motorised wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦼‍➡' => 'woman in motorised wheelchair: light skin tone, facing right',
+    '👩🏼‍🦼‍➡' => 'woman in motorised wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦼‍➡' => 'woman in motorised wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦼‍➡' => 'woman in motorised wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦼‍➡' => 'woman in motorised wheelchair: dark skin tone, facing right',
+    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦽‍➡' => 'man in manual wheelchair: light skin tone, facing right',
+    '👨🏼‍🦽‍➡' => 'man in manual wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦽‍➡' => 'man in manual wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦽‍➡' => 'man in manual wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦽‍➡' => 'man in manual wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair: light skin tone, facing right',
+    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair: dark skin tone, facing right',
+    '🏃🏻‍♀‍➡' => 'woman running: light skin tone, facing right',
+    '🏃🏼‍♀‍➡' => 'woman running: medium-light skin tone, facing right',
+    '🏃🏽‍♀‍➡' => 'woman running: medium skin tone, facing right',
+    '🏃🏾‍♀‍➡' => 'woman running: medium-dark skin tone, facing right',
+    '🏃🏿‍♀‍➡' => 'woman running: dark skin tone, facing right',
+    '🏃🏻‍♂‍➡' => 'man running: light skin tone, facing right',
+    '🏃🏼‍♂‍➡' => 'man running: medium-light skin tone, facing right',
+    '🏃🏽‍♂‍➡' => 'man running: medium skin tone, facing right',
+    '🏃🏾‍♂‍➡' => 'man running: medium-dark skin tone, facing right',
+    '🏃🏿‍♂‍➡' => 'man running: dark skin tone, facing right',
     '🫱🏻‍🫲🏼' => 'handshake: light skin tone, medium-light skin tone',
     '🫱🏻‍🫲🏽' => 'handshake: light skin tone, medium skin tone',
     '🫱🏻‍🫲🏾' => 'handshake: light skin tone, medium-dark skin tone',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handshake: dark skin tone, medium-light skin tone',
     '🫱🏿‍🫲🏽' => 'handshake: dark skin tone, medium skin tone',
     '🫱🏿‍🫲🏾' => 'handshake: dark skin tone, medium-dark skin tone',
-    '🚶‍♀‍➡' => 'woman walking facing right',
-    '🚶‍♂‍➡' => 'man walking facing right',
-    '🧎‍♀‍➡' => 'woman kneeling facing right',
-    '🧎‍♂‍➡' => 'man kneeling facing right',
-    '🧑‍🦯‍➡' => 'person with long mobility cane facing right',
-    '👨‍🦯‍➡' => 'man with white cane facing right',
-    '👩‍🦯‍➡' => 'woman with white cane facing right',
-    '🧑‍🦼‍➡' => 'person in motorised wheelchair facing right',
-    '👨‍🦼‍➡' => 'man in motorised wheelchair facing right',
-    '👩‍🦼‍➡' => 'woman in motorised wheelchair facing right',
-    '🧑‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃‍♀‍➡' => 'woman running facing right',
-    '🏃‍♂‍➡' => 'man running facing right',
+    '🚶‍♀‍➡' => 'woman walking: facing right',
+    '🚶‍♂‍➡' => 'man walking: facing right',
+    '🧎‍♀‍➡' => 'woman kneeling: facing right',
+    '🧎‍♂‍➡' => 'man kneeling: facing right',
+    '🧑‍🦯‍➡' => 'person with long mobility cane: facing right',
+    '👨‍🦯‍➡' => 'man with white cane: facing right',
+    '👩‍🦯‍➡' => 'woman with white cane: facing right',
+    '🧑‍🦼‍➡' => 'person in motorised wheelchair: facing right',
+    '👨‍🦼‍➡' => 'man in motorised wheelchair: facing right',
+    '👩‍🦼‍➡' => 'woman in motorised wheelchair: facing right',
+    '🧑‍🦽‍➡' => 'person in manual wheelchair: facing right',
+    '👨‍🦽‍➡' => 'man in manual wheelchair: facing right',
+    '👩‍🦽‍➡' => 'woman in manual wheelchair: facing right',
+    '🏃‍♀‍➡' => 'woman running: facing right',
+    '🏃‍♂‍➡' => 'man running: facing right',
     '👩‍❤‍👨' => 'couple with heart: woman, man',
     '👨‍❤‍👨' => 'couple with heart: man, man',
     '👩‍❤‍👩' => 'couple with heart: woman, woman',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'person: medium skin tone, bald',
     '🧑🏾‍🦲' => 'person: medium-dark skin tone, bald',
     '🧑🏿‍🦲' => 'person: dark skin tone, bald',
+    '🧑🏻‍🩰' => 'ballet dancer: light skin tone',
+    '🧑🏼‍🩰' => 'ballet dancer: medium-light skin tone',
+    '🧑🏽‍🩰' => 'ballet dancer: medium skin tone',
+    '🧑🏾‍🩰' => 'ballet dancer: medium-dark skin tone',
+    '🧑🏿‍🩰' => 'ballet dancer: dark skin tone',
     '🧔🏻‍♂' => 'man: light skin tone, beard',
     '🧔🏼‍♂' => 'man: medium-light skin tone, beard',
     '🧔🏽‍♂' => 'man: medium skin tone, beard',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'woman walking: medium skin tone',
     '🚶🏾‍♀' => 'woman walking: medium-dark skin tone',
     '🚶🏿‍♀' => 'woman walking: dark skin tone',
-    '🚶🏻‍➡' => 'person walking facing right',
-    '🚶🏼‍➡' => 'person walking facing right',
-    '🚶🏽‍➡' => 'person walking facing right',
-    '🚶🏾‍➡' => 'person walking facing right',
-    '🚶🏿‍➡' => 'person walking facing right',
+    '🚶🏻‍➡' => 'person walking: light skin tone, facing right',
+    '🚶🏼‍➡' => 'person walking: medium-light skin tone, facing right',
+    '🚶🏽‍➡' => 'person walking: medium skin tone, facing right',
+    '🚶🏾‍➡' => 'person walking: medium-dark skin tone, facing right',
+    '🚶🏿‍➡' => 'person walking: dark skin tone, facing right',
     '🧍🏻‍♂' => 'man standing: light skin tone',
     '🧍🏼‍♂' => 'man standing: medium-light skin tone',
     '🧍🏽‍♂' => 'man standing: medium skin tone',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'woman kneeling: medium skin tone',
     '🧎🏾‍♀' => 'woman kneeling: medium-dark skin tone',
     '🧎🏿‍♀' => 'woman kneeling: dark skin tone',
-    '🧎🏻‍➡' => 'person kneeling facing right',
-    '🧎🏼‍➡' => 'person kneeling facing right',
-    '🧎🏽‍➡' => 'person kneeling facing right',
-    '🧎🏾‍➡' => 'person kneeling facing right',
-    '🧎🏿‍➡' => 'person kneeling facing right',
+    '🧎🏻‍➡' => 'person kneeling: light skin tone, facing right',
+    '🧎🏼‍➡' => 'person kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍➡' => 'person kneeling: medium skin tone, facing right',
+    '🧎🏾‍➡' => 'person kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍➡' => 'person kneeling: dark skin tone, facing right',
     '🧑🏻‍🦯' => 'person with long mobility cane: light skin tone',
     '🧑🏼‍🦯' => 'person with long mobility cane: medium-light skin tone',
     '🧑🏽‍🦯' => 'person with long mobility cane: medium skin tone',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'woman running: medium skin tone',
     '🏃🏾‍♀' => 'woman running: medium-dark skin tone',
     '🏃🏿‍♀' => 'woman running: dark skin tone',
-    '🏃🏻‍➡' => 'person running facing right',
-    '🏃🏼‍➡' => 'person running facing right',
-    '🏃🏽‍➡' => 'person running facing right',
-    '🏃🏾‍➡' => 'person running facing right',
-    '🏃🏿‍➡' => 'person running facing right',
+    '🏃🏻‍➡' => 'person running: light skin tone, facing right',
+    '🏃🏼‍➡' => 'person running: medium-light skin tone, facing right',
+    '🏃🏽‍➡' => 'person running: medium skin tone, facing right',
+    '🏃🏾‍➡' => 'person running: medium-dark skin tone, facing right',
+    '🏃🏿‍➡' => 'person running: dark skin tone, facing right',
+    '👯🏻‍♀' => 'women with bunny ears: light skin tone',
+    '👯🏼‍♀' => 'women with bunny ears: medium-light skin tone',
+    '👯🏽‍♀' => 'women with bunny ears: medium skin tone',
+    '👯🏾‍♀' => 'women with bunny ears: medium-dark skin tone',
+    '👯🏿‍♀' => 'women with bunny ears: dark skin tone',
+    '👯🏻‍♂' => 'men with bunny ears: light skin tone',
+    '👯🏼‍♂' => 'men with bunny ears: medium-light skin tone',
+    '👯🏽‍♂' => 'men with bunny ears: medium skin tone',
+    '👯🏾‍♂' => 'men with bunny ears: medium-dark skin tone',
+    '👯🏿‍♂' => 'men with bunny ears: dark skin tone',
     '🧖🏻‍♂' => 'man in steam room: light skin tone',
     '🧖🏼‍♂' => 'man in steam room: medium-light skin tone',
     '🧖🏽‍♂' => 'man in steam room: medium skin tone',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'woman cartwheeling: medium skin tone',
     '🤸🏾‍♀' => 'woman cartwheeling: medium-dark skin tone',
     '🤸🏿‍♀' => 'woman cartwheeling: dark skin tone',
+    '🤼🏻‍♀' => 'women wrestling: light skin tone',
+    '🤼🏼‍♀' => 'women wrestling: medium-light skin tone',
+    '🤼🏽‍♀' => 'women wrestling: medium skin tone',
+    '🤼🏾‍♀' => 'women wrestling: medium-dark skin tone',
+    '🤼🏿‍♀' => 'women wrestling: dark skin tone',
+    '🤼🏻‍♂' => 'men wrestling: light skin tone',
+    '🤼🏼‍♂' => 'men wrestling: medium-light skin tone',
+    '🤼🏽‍♂' => 'men wrestling: medium skin tone',
+    '🤼🏾‍♂' => 'men wrestling: medium-dark skin tone',
+    '🤼🏿‍♂' => 'men wrestling: dark skin tone',
     '🤽🏻‍♂' => 'man playing water polo: light skin tone',
     '🤽🏼‍♂' => 'man playing water polo: medium-light skin tone',
     '🤽🏽‍♂' => 'man playing water polo: medium skin tone',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'woman: curly hair',
     '👩‍🦳' => 'woman: white hair',
     '👩‍🦲' => 'woman: bald',
-    '🚶‍➡' => 'person walking facing right',
-    '🧎‍➡' => 'person kneeling facing right',
-    '🏃‍➡' => 'person running facing right',
+    '🚶‍➡' => 'person walking: facing right',
+    '🧎‍➡' => 'person kneeling: facing right',
+    '🏃‍➡' => 'person running: facing right',
     '👨‍👦' => 'family: man, boy',
     '👨‍👧' => 'family: man, girl',
     '👩‍👦' => 'family: woman, boy',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'woman in manual wheelchair',
     '🏃‍♂' => 'man running',
     '🏃‍♀' => 'woman running',
+    '🧑‍🩰' => 'ballet dancer',
     '👯‍♂' => 'men with bunny ears',
     '👯‍♀' => 'women with bunny ears',
     '🧖‍♂' => 'man in steam room',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'person in suit levitating: medium skin tone',
     '🕴🏾' => 'person in suit levitating: medium-dark skin tone',
     '🕴🏿' => 'person in suit levitating: dark skin tone',
+    '👯🏻' => 'people with bunny ears: light skin tone',
+    '👯🏼' => 'people with bunny ears: medium-light skin tone',
+    '👯🏽' => 'people with bunny ears: medium skin tone',
+    '👯🏾' => 'people with bunny ears: medium-dark skin tone',
+    '👯🏿' => 'people with bunny ears: dark skin tone',
     '🧖🏻' => 'person in steamy room: light skin tone',
     '🧖🏼' => 'person in steamy room: medium-light skin tone',
     '🧖🏽' => 'person in steamy room: medium skin tone',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'person cartwheeling: medium skin tone',
     '🤸🏾' => 'person cartwheeling: medium-dark skin tone',
     '🤸🏿' => 'person cartwheeling: dark skin tone',
+    '🤼🏻' => 'people wrestling: light skin tone',
+    '🤼🏼' => 'people wrestling: medium-light skin tone',
+    '🤼🏽' => 'people wrestling: medium skin tone',
+    '🤼🏾' => 'people wrestling: medium-dark skin tone',
+    '🤼🏿' => 'people wrestling: dark skin tone',
     '🤽🏻' => 'person playing water polo: light skin tone',
     '🤽🏼' => 'person playing water polo: medium-light skin tone',
     '🤽🏽' => 'person playing water polo: medium skin tone',
@@ -2130,7 +2286,7 @@
     '🇦🇩' => 'flag: Andorra',
     '🇦🇪' => 'flag: United Arab Emirates',
     '🇦🇫' => 'flag: Afghanistan',
-    '🇦🇬' => 'flag: Antigua & Barbuda',
+    '🇦🇬' => 'flag: Antigua and Barbuda',
     '🇦🇮' => 'flag: Anguilla',
     '🇦🇱' => 'flag: Albania',
     '🇦🇲' => 'flag: Armenia',
@@ -2143,7 +2299,7 @@
     '🇦🇼' => 'flag: Aruba',
     '🇦🇽' => 'flag: Åland Islands',
     '🇦🇿' => 'flag: Azerbaijan',
-    '🇧🇦' => 'flag: Bosnia & Herzegovina',
+    '🇧🇦' => 'flag: Bosnia and Herzegovina',
     '🇧🇧' => 'flag: Barbados',
     '🇧🇩' => 'flag: Bangladesh',
     '🇧🇪' => 'flag: Belgium',
@@ -2192,7 +2348,7 @@
     '🇩🇲' => 'flag: Dominica',
     '🇩🇴' => 'flag: Dominican Republic',
     '🇩🇿' => 'flag: Algeria',
-    '🇪🇦' => 'flag: Ceuta & Melilla',
+    '🇪🇦' => 'flag: Ceuta and Melilla',
     '🇪🇨' => 'flag: Ecuador',
     '🇪🇪' => 'flag: Estonia',
     '🇪🇬' => 'flag: Egypt',
@@ -2221,13 +2377,13 @@
     '🇬🇵' => 'flag: Guadeloupe',
     '🇬🇶' => 'flag: Equatorial Guinea',
     '🇬🇷' => 'flag: Greece',
-    '🇬🇸' => 'flag: South Georgia & South Sandwich Islands',
+    '🇬🇸' => 'flag: South Georgia and South Sandwich Islands',
     '🇬🇹' => 'flag: Guatemala',
     '🇬🇺' => 'flag: Guam',
     '🇬🇼' => 'flag: Guinea-Bissau',
     '🇬🇾' => 'flag: Guyana',
     '🇭🇰' => 'flag: Hong Kong SAR China',
-    '🇭🇲' => 'flag: Heard & McDonald Islands',
+    '🇭🇲' => 'flag: Heard Island and McDonald Islands',
     '🇭🇳' => 'flag: Honduras',
     '🇭🇷' => 'flag: Croatia',
     '🇭🇹' => 'flag: Haiti',
@@ -2252,7 +2408,7 @@
     '🇰🇭' => 'flag: Cambodia',
     '🇰🇮' => 'flag: Kiribati',
     '🇰🇲' => 'flag: Comoros',
-    '🇰🇳' => 'flag: St. Kitts & Nevis',
+    '🇰🇳' => 'flag: St Kitts and Nevis',
     '🇰🇵' => 'flag: North Korea',
     '🇰🇷' => 'flag: South Korea',
     '🇰🇼' => 'flag: Kuwait',
@@ -2312,7 +2468,7 @@
     '🇵🇭' => 'flag: Philippines',
     '🇵🇰' => 'flag: Pakistan',
     '🇵🇱' => 'flag: Poland',
-    '🇵🇲' => 'flag: St. Pierre & Miquelon',
+    '🇵🇲' => 'flag: St Pierre and Miquelon',
     '🇵🇳' => 'flag: Pitcairn Islands',
     '🇵🇷' => 'flag: Puerto Rico',
     '🇵🇸' => 'flag: Palestinian Territories',
@@ -2333,7 +2489,7 @@
     '🇸🇬' => 'flag: Singapore',
     '🇸🇭' => 'flag: St. Helena',
     '🇸🇮' => 'flag: Slovenia',
-    '🇸🇯' => 'flag: Svalbard & Jan Mayen',
+    '🇸🇯' => 'flag: Svalbard and Jan Mayen',
     '🇸🇰' => 'flag: Slovakia',
     '🇸🇱' => 'flag: Sierra Leone',
     '🇸🇲' => 'flag: San Marino',
@@ -2341,13 +2497,13 @@
     '🇸🇴' => 'flag: Somalia',
     '🇸🇷' => 'flag: Suriname',
     '🇸🇸' => 'flag: South Sudan',
-    '🇸🇹' => 'flag: São Tomé & Príncipe',
+    '🇸🇹' => 'flag: São Tomé and Príncipe',
     '🇸🇻' => 'flag: El Salvador',
     '🇸🇽' => 'flag: Sint Maarten',
     '🇸🇾' => 'flag: Syria',
     '🇸🇿' => 'flag: Eswatini',
     '🇹🇦' => 'flag: Tristan da Cunha',
-    '🇹🇨' => 'flag: Turks & Caicos Islands',
+    '🇹🇨' => 'flag: Turks and Caicos Islands',
     '🇹🇩' => 'flag: Chad',
     '🇹🇫' => 'flag: French Southern Territories',
     '🇹🇬' => 'flag: Togo',
@@ -2359,7 +2515,7 @@
     '🇹🇳' => 'flag: Tunisia',
     '🇹🇴' => 'flag: Tonga',
     '🇹🇷' => 'flag: Türkiye',
-    '🇹🇹' => 'flag: Trinidad & Tobago',
+    '🇹🇹' => 'flag: Trinidad and Tobago',
     '🇹🇻' => 'flag: Tuvalu',
     '🇹🇼' => 'flag: Taiwan',
     '🇹🇿' => 'flag: Tanzania',
@@ -2371,13 +2527,13 @@
     '🇺🇾' => 'flag: Uruguay',
     '🇺🇿' => 'flag: Uzbekistan',
     '🇻🇦' => 'flag: Vatican City',
-    '🇻🇨' => 'flag: St. Vincent & Grenadines',
+    '🇻🇨' => 'flag: St Vincent and the Grenadines',
     '🇻🇪' => 'flag: Venezuela',
     '🇻🇬' => 'flag: British Virgin Islands',
     '🇻🇮' => 'flag: U.S. Virgin Islands',
     '🇻🇳' => 'flag: Vietnam',
     '🇻🇺' => 'flag: Vanuatu',
-    '🇼🇫' => 'flag: Wallis & Futuna',
+    '🇼🇫' => 'flag: Wallis and Futuna',
     '🇼🇸' => 'flag: Samoa',
     '🇽🇰' => 'flag: Kosovo',
     '🇾🇪' => 'flag: Yemen',
@@ -2391,13 +2547,6 @@
     '🏽' => 'medium skin tone',
     '🏾' => 'medium-dark skin tone',
     '🏿' => 'dark skin tone',
-    '🪉' => 'harp',
-    '🪏' => 'shovel',
-    '🪾' => 'leafless tree',
-    '🫆' => 'fingerprint',
-    '🫜' => 'root vegetable',
-    '🫟' => 'splatter',
-    '🫩' => 'face with bags under eyes',
     '😀' => 'grinning face',
     '😃' => 'grinning face with big eyes',
     '😄' => 'grinning face with smiling eyes',
@@ -2451,6 +2600,7 @@
     '😪' => 'sleepy face',
     '🤤' => 'drooling face',
     '😴' => 'sleeping face',
+    '🫩' => 'face with bags under eyes',
     '😷' => 'face with medical mask',
     '🤒' => 'face with thermometer',
     '🤕' => 'face with head-bandage',
@@ -2477,6 +2627,7 @@
     '😯' => 'hushed face',
     '😲' => 'astonished face',
     '😳' => 'flushed face',
+    '🫪' => 'distorted face',
     '🥺' => 'pleading face',
     '🥹' => 'face holding back tears',
     '😦' => 'frowning face with open mouth',
@@ -2548,6 +2699,7 @@
     '💋' => 'kiss mark',
     '💯' => 'hundred points',
     '💢' => 'anger symbol',
+    '🫯' => 'fight cloud',
     '💥' => 'collision',
     '💫' => 'dizzy',
     '💦' => 'sweat droplets',
@@ -2671,6 +2823,7 @@
     '🧞' => 'genie',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'hairy creature',
     '💆' => 'person getting massage',
     '💇' => 'person getting haircut',
     '🚶' => 'person walking',
@@ -2714,6 +2867,7 @@
     '🫂' => 'people hugging',
     '👪' => 'family',
     '👣' => 'footprints',
+    '🫆' => 'fingerprint',
     '🦰' => 'red hair',
     '🦱' => 'curly hair',
     '🦳' => 'white hair',
@@ -2813,6 +2967,7 @@
     '🐳' => 'spouting whale',
     '🐋' => 'whale',
     '🐬' => 'dolphin',
+    '🫍' => 'orca',
     '🦭' => 'seal',
     '🐟' => 'fish',
     '🐠' => 'reef fish',
@@ -2822,6 +2977,11 @@
     '🐚' => 'spiral shell',
     '🪸' => 'coral',
     '🪼' => 'jellyfish',
+    '🦀' => 'crab',
+    '🦞' => 'lobster',
+    '🦐' => 'prawn',
+    '🦑' => 'squid',
+    '🦪' => 'oyster',
     '🐌' => 'snail',
     '🦋' => 'butterfly',
     '🐛' => 'caterpillar',
@@ -2866,6 +3026,7 @@
     '🪹' => 'empty nest',
     '🪺' => 'nest with eggs',
     '🍄' => 'mushroom',
+    '🪾' => 'leafless tree',
     '🍇' => 'grapes',
     '🍈' => 'melon',
     '🍉' => 'watermelon',
@@ -2902,6 +3063,7 @@
     '🌰' => 'chestnut',
     '🫚' => 'ginger',
     '🫛' => 'pea pod',
+    '🫜' => 'root vegetable',
     '🍞' => 'bread',
     '🥐' => 'croissant',
     '🥖' => 'baguette bread',
@@ -2953,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'fortune cookie',
     '🥡' => 'takeaway container',
-    '🦀' => 'crab',
-    '🦞' => 'lobster',
-    '🦐' => 'prawn',
-    '🦑' => 'squid',
-    '🦪' => 'oyster',
     '🍦' => 'soft serve',
     '🍧' => 'granita',
     '🍨' => 'ice cream',
@@ -3008,6 +3165,7 @@
     '🧭' => 'compass',
     '🏔' => 'snow-capped mountain',
     '⛰' => 'mountain',
+    '🛘' => 'landslide',
     '🌋' => 'volcano',
     '🗻' => 'mount Fuji',
     '🏕' => 'camping',
@@ -3368,16 +3526,18 @@
     '🎧' => 'headphone',
     '📻' => 'radio',
     '🎷' => 'saxophone',
+    '🎺' => 'trumpet',
+    '🪊' => 'trombone',
     '🪗' => 'accordion',
     '🎸' => 'guitar',
     '🎹' => 'musical keyboard',
-    '🎺' => 'trumpet',
     '🎻' => 'violin',
     '🪕' => 'banjo',
     '🥁' => 'drum',
     '🪘' => 'long drum',
     '🪇' => 'maracas',
     '🪈' => 'flute',
+    '🪉' => 'harp',
     '📱' => 'mobile phone',
     '📲' => 'mobile phone with arrow',
     '☎' => 'telephone',
@@ -3431,8 +3591,9 @@
     '📑' => 'bookmark tabs',
     '🔖' => 'bookmark',
     '🏷' => 'label',
-    '💰' => 'money bag',
     '🪙' => 'coin',
+    '💰' => 'money bag',
+    '🪎' => 'treasure chest',
     '💴' => 'yen banknote',
     '💵' => 'dollar banknote',
     '💶' => 'euro banknote',
@@ -3515,6 +3676,7 @@
     '🧰' => 'toolbox',
     '🧲' => 'magnet',
     '🪜' => 'ladder',
+    '🪏' => 'shovel',
     '⚗' => 'alembic',
     '🧪' => 'test tube',
     '🧫' => 'petri dish',
@@ -3698,6 +3860,7 @@
     '✴' => 'eight-pointed star',
     '❇' => 'sparkle',
     '™' => 'trade mark',
+    '🫟' => 'splatter',
     '🔠' => 'input Latin uppercase',
     '🔡' => 'input Latin lowercase',
     '🔢' => 'input numbers',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_ca.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_ca.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_ca.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_ca.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kiss: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍💋‍👩🏾' => 'kiss: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍💋‍👩🏿' => 'kiss: woman, woman, dark skin tone',
+    '🧑🏻‍🫯‍🧑🏼' => 'people wrestling: light skin tone, medium-light skin tone',
+    '🧑🏻‍🫯‍🧑🏽' => 'people wrestling: light skin tone, medium skin tone',
+    '🧑🏻‍🫯‍🧑🏾' => 'people wrestling: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🫯‍🧑🏿' => 'people wrestling: light skin tone, dark skin tone',
+    '🧑🏼‍🫯‍🧑🏻' => 'people wrestling: medium-light skin tone, light skin tone',
+    '🧑🏼‍🫯‍🧑🏽' => 'people wrestling: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🫯‍🧑🏾' => 'people wrestling: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🫯‍🧑🏿' => 'people wrestling: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🫯‍🧑🏻' => 'people wrestling: medium skin tone, light skin tone',
+    '🧑🏽‍🫯‍🧑🏼' => 'people wrestling: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🫯‍🧑🏾' => 'people wrestling: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🫯‍🧑🏿' => 'people wrestling: medium skin tone, dark skin tone',
+    '🧑🏾‍🫯‍🧑🏻' => 'people wrestling: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🫯‍🧑🏼' => 'people wrestling: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🫯‍🧑🏽' => 'people wrestling: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🫯‍🧑🏿' => 'people wrestling: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🫯‍🧑🏻' => 'people wrestling: dark skin tone, light skin tone',
+    '🧑🏿‍🫯‍🧑🏼' => 'people wrestling: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🫯‍🧑🏽' => 'people wrestling: dark skin tone, medium skin tone',
+    '🧑🏿‍🫯‍🧑🏾' => 'people wrestling: dark skin tone, medium-dark skin tone',
     '🧑🏻‍❤‍🧑🏼' => 'couple with heart: person, person, light skin tone, medium-light skin tone',
     '🧑🏻‍❤‍🧑🏽' => 'couple with heart: person, person, light skin tone, medium skin tone',
     '🧑🏻‍❤‍🧑🏾' => 'couple with heart: person, person, light skin tone, medium-dark skin tone',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'couple with heart: person, person, dark skin tone, medium-light skin tone',
     '🧑🏿‍❤‍🧑🏽' => 'couple with heart: person, person, dark skin tone, medium skin tone',
     '🧑🏿‍❤‍🧑🏾' => 'couple with heart: person, person, dark skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏼' => 'people with bunny ears: light skin tone, medium-light skin tone',
+    '🧑🏻‍🐰‍🧑🏽' => 'people with bunny ears: light skin tone, medium skin tone',
+    '🧑🏻‍🐰‍🧑🏾' => 'people with bunny ears: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏿' => 'people with bunny ears: light skin tone, dark skin tone',
+    '🧑🏼‍🐰‍🧑🏻' => 'people with bunny ears: medium-light skin tone, light skin tone',
+    '🧑🏼‍🐰‍🧑🏽' => 'people with bunny ears: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🐰‍🧑🏾' => 'people with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🐰‍🧑🏿' => 'people with bunny ears: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🐰‍🧑🏻' => 'people with bunny ears: medium skin tone, light skin tone',
+    '🧑🏽‍🐰‍🧑🏼' => 'people with bunny ears: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🐰‍🧑🏾' => 'people with bunny ears: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🐰‍🧑🏿' => 'people with bunny ears: medium skin tone, dark skin tone',
+    '🧑🏾‍🐰‍🧑🏻' => 'people with bunny ears: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🐰‍🧑🏼' => 'people with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🐰‍🧑🏽' => 'people with bunny ears: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🐰‍🧑🏿' => 'people with bunny ears: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🐰‍🧑🏻' => 'people with bunny ears: dark skin tone, light skin tone',
+    '🧑🏿‍🐰‍🧑🏼' => 'people with bunny ears: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🐰‍🧑🏽' => 'people with bunny ears: dark skin tone, medium skin tone',
+    '🧑🏿‍🐰‍🧑🏾' => 'people with bunny ears: dark skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏼' => 'men wrestling: light skin tone, medium-light skin tone',
+    '👨🏻‍🫯‍👨🏽' => 'men wrestling: light skin tone, medium skin tone',
+    '👨🏻‍🫯‍👨🏾' => 'men wrestling: light skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏿' => 'men wrestling: light skin tone, dark skin tone',
+    '👨🏼‍🫯‍👨🏻' => 'men wrestling: medium-light skin tone, light skin tone',
+    '👨🏼‍🫯‍👨🏽' => 'men wrestling: medium-light skin tone, medium skin tone',
+    '👨🏼‍🫯‍👨🏾' => 'men wrestling: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🫯‍👨🏿' => 'men wrestling: medium-light skin tone, dark skin tone',
+    '👨🏽‍🫯‍👨🏻' => 'men wrestling: medium skin tone, light skin tone',
+    '👨🏽‍🫯‍👨🏼' => 'men wrestling: medium skin tone, medium-light skin tone',
+    '👨🏽‍🫯‍👨🏾' => 'men wrestling: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🫯‍👨🏿' => 'men wrestling: medium skin tone, dark skin tone',
+    '👨🏾‍🫯‍👨🏻' => 'men wrestling: medium-dark skin tone, light skin tone',
+    '👨🏾‍🫯‍👨🏼' => 'men wrestling: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🫯‍👨🏽' => 'men wrestling: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🫯‍👨🏿' => 'men wrestling: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🫯‍👨🏻' => 'men wrestling: dark skin tone, light skin tone',
+    '👨🏿‍🫯‍👨🏼' => 'men wrestling: dark skin tone, medium-light skin tone',
+    '👨🏿‍🫯‍👨🏽' => 'men wrestling: dark skin tone, medium skin tone',
+    '👨🏿‍🫯‍👨🏾' => 'men wrestling: dark skin tone, medium-dark skin tone',
     '👨🏻‍❤‍👨🏻' => 'couple with heart: man, man, light skin tone',
     '👨🏻‍❤‍👨🏼' => 'couple with heart: man, man, light skin tone, medium-light skin tone',
     '👨🏻‍❤‍👨🏽' => 'couple with heart: man, man, light skin tone, medium skin tone',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'couple with heart: man, man, dark skin tone, medium skin tone',
     '👨🏿‍❤‍👨🏾' => 'couple with heart: man, man, dark skin tone, medium-dark skin tone',
     '👨🏿‍❤‍👨🏿' => 'couple with heart: man, man, dark skin tone',
+    '👨🏻‍🐰‍👨🏼' => 'men with bunny ears: light skin tone, medium-light skin tone',
+    '👨🏻‍🐰‍👨🏽' => 'men with bunny ears: light skin tone, medium skin tone',
+    '👨🏻‍🐰‍👨🏾' => 'men with bunny ears: light skin tone, medium-dark skin tone',
+    '👨🏻‍🐰‍👨🏿' => 'men with bunny ears: light skin tone, dark skin tone',
+    '👨🏼‍🐰‍👨🏻' => 'men with bunny ears: medium-light skin tone, light skin tone',
+    '👨🏼‍🐰‍👨🏽' => 'men with bunny ears: medium-light skin tone, medium skin tone',
+    '👨🏼‍🐰‍👨🏾' => 'men with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🐰‍👨🏿' => 'men with bunny ears: medium-light skin tone, dark skin tone',
+    '👨🏽‍🐰‍👨🏻' => 'men with bunny ears: medium skin tone, light skin tone',
+    '👨🏽‍🐰‍👨🏼' => 'men with bunny ears: medium skin tone, medium-light skin tone',
+    '👨🏽‍🐰‍👨🏾' => 'men with bunny ears: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🐰‍👨🏿' => 'men with bunny ears: medium skin tone, dark skin tone',
+    '👨🏾‍🐰‍👨🏻' => 'men with bunny ears: medium-dark skin tone, light skin tone',
+    '👨🏾‍🐰‍👨🏼' => 'men with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🐰‍👨🏽' => 'men with bunny ears: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🐰‍👨🏿' => 'men with bunny ears: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🐰‍👨🏻' => 'men with bunny ears: dark skin tone, light skin tone',
+    '👨🏿‍🐰‍👨🏼' => 'men with bunny ears: dark skin tone, medium-light skin tone',
+    '👨🏿‍🐰‍👨🏽' => 'men with bunny ears: dark skin tone, medium skin tone',
+    '👨🏿‍🐰‍👨🏾' => 'men with bunny ears: dark skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏼' => 'women wrestling: light skin tone, medium-light skin tone',
+    '👩🏻‍🫯‍👩🏽' => 'women wrestling: light skin tone, medium skin tone',
+    '👩🏻‍🫯‍👩🏾' => 'women wrestling: light skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏿' => 'women wrestling: light skin tone, dark skin tone',
+    '👩🏼‍🫯‍👩🏻' => 'women wrestling: medium-light skin tone, light skin tone',
+    '👩🏼‍🫯‍👩🏽' => 'women wrestling: medium-light skin tone, medium skin tone',
+    '👩🏼‍🫯‍👩🏾' => 'women wrestling: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🫯‍👩🏿' => 'women wrestling: medium-light skin tone, dark skin tone',
+    '👩🏽‍🫯‍👩🏻' => 'women wrestling: medium skin tone, light skin tone',
+    '👩🏽‍🫯‍👩🏼' => 'women wrestling: medium skin tone, medium-light skin tone',
+    '👩🏽‍🫯‍👩🏾' => 'women wrestling: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🫯‍👩🏿' => 'women wrestling: medium skin tone, dark skin tone',
+    '👩🏾‍🫯‍👩🏻' => 'women wrestling: medium-dark skin tone, light skin tone',
+    '👩🏾‍🫯‍👩🏼' => 'women wrestling: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🫯‍👩🏽' => 'women wrestling: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🫯‍👩🏿' => 'women wrestling: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🫯‍👩🏻' => 'women wrestling: dark skin tone, light skin tone',
+    '👩🏿‍🫯‍👩🏼' => 'women wrestling: dark skin tone, medium-light skin tone',
+    '👩🏿‍🫯‍👩🏽' => 'women wrestling: dark skin tone, medium skin tone',
+    '👩🏿‍🫯‍👩🏾' => 'women wrestling: dark skin tone, medium-dark skin tone',
     '👩🏻‍❤‍👨🏻' => 'couple with heart: woman, man, light skin tone',
     '👩🏻‍❤‍👨🏼' => 'couple with heart: woman, man, light skin tone, medium-light skin tone',
     '👩🏻‍❤‍👨🏽' => 'couple with heart: woman, man, light skin tone, medium skin tone',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'couple with heart: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍👩🏾' => 'couple with heart: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍👩🏿' => 'couple with heart: woman, woman, dark skin tone',
+    '👩🏻‍🐰‍👩🏼' => 'women with bunny ears: light skin tone, medium-light skin tone',
+    '👩🏻‍🐰‍👩🏽' => 'women with bunny ears: light skin tone, medium skin tone',
+    '👩🏻‍🐰‍👩🏾' => 'women with bunny ears: light skin tone, medium-dark skin tone',
+    '👩🏻‍🐰‍👩🏿' => 'women with bunny ears: light skin tone, dark skin tone',
+    '👩🏼‍🐰‍👩🏻' => 'women with bunny ears: medium-light skin tone, light skin tone',
+    '👩🏼‍🐰‍👩🏽' => 'women with bunny ears: medium-light skin tone, medium skin tone',
+    '👩🏼‍🐰‍👩🏾' => 'women with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🐰‍👩🏿' => 'women with bunny ears: medium-light skin tone, dark skin tone',
+    '👩🏽‍🐰‍👩🏻' => 'women with bunny ears: medium skin tone, light skin tone',
+    '👩🏽‍🐰‍👩🏼' => 'women with bunny ears: medium skin tone, medium-light skin tone',
+    '👩🏽‍🐰‍👩🏾' => 'women with bunny ears: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🐰‍👩🏿' => 'women with bunny ears: medium skin tone, dark skin tone',
+    '👩🏾‍🐰‍👩🏻' => 'women with bunny ears: medium-dark skin tone, light skin tone',
+    '👩🏾‍🐰‍👩🏼' => 'women with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🐰‍👩🏽' => 'women with bunny ears: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🐰‍👩🏿' => 'women with bunny ears: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🐰‍👩🏻' => 'women with bunny ears: dark skin tone, light skin tone',
+    '👩🏿‍🐰‍👩🏼' => 'women with bunny ears: dark skin tone, medium-light skin tone',
+    '👩🏿‍🐰‍👩🏽' => 'women with bunny ears: dark skin tone, medium skin tone',
+    '👩🏿‍🐰‍👩🏾' => 'women with bunny ears: dark skin tone, medium-dark skin tone',
     '🧑🏻‍🤝‍🧑🏻' => 'people holding hands: light skin tone',
     '🧑🏻‍🤝‍🧑🏼' => 'people holding hands: light skin tone, medium-light skin tone',
     '🧑🏻‍🤝‍🧑🏽' => 'people holding hands: light skin tone, medium skin tone',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flag: Scotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flag: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'family: adult, adult, child, child',
-    '🚶🏻‍♀‍➡' => 'woman walking facing right',
-    '🚶🏼‍♀‍➡' => 'woman walking facing right',
-    '🚶🏽‍♀‍➡' => 'woman walking facing right',
-    '🚶🏾‍♀‍➡' => 'woman walking facing right',
-    '🚶🏿‍♀‍➡' => 'woman walking facing right',
-    '🚶🏻‍♂‍➡' => 'man walking facing right',
-    '🚶🏼‍♂‍➡' => 'man walking facing right',
-    '🚶🏽‍♂‍➡' => 'man walking facing right',
-    '🚶🏾‍♂‍➡' => 'man walking facing right',
-    '🚶🏿‍♂‍➡' => 'man walking facing right',
-    '🧎🏻‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏼‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏽‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏾‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏿‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏻‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏼‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏽‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏾‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏿‍♂‍➡' => 'man kneeling facing right',
-    '🧑🏻‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏼‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏽‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏾‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏿‍🦯‍➡' => 'person with white cane facing right',
-    '👨🏻‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏼‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏽‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏾‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏿‍🦯‍➡' => 'man with white cane facing right',
-    '👩🏻‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏼‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏽‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏾‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏿‍🦯‍➡' => 'woman with white cane facing right',
-    '🧑🏻‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏼‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏽‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏾‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏿‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '👨🏻‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏼‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏽‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏾‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏿‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👩🏻‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏼‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏽‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏾‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏿‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨🏻‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏼‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏽‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏾‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏿‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃🏻‍♀‍➡' => 'woman running facing right',
-    '🏃🏼‍♀‍➡' => 'woman running facing right',
-    '🏃🏽‍♀‍➡' => 'woman running facing right',
-    '🏃🏾‍♀‍➡' => 'woman running facing right',
-    '🏃🏿‍♀‍➡' => 'woman running facing right',
-    '🏃🏻‍♂‍➡' => 'man running facing right',
-    '🏃🏼‍♂‍➡' => 'man running facing right',
-    '🏃🏽‍♂‍➡' => 'man running facing right',
-    '🏃🏾‍♂‍➡' => 'man running facing right',
-    '🏃🏿‍♂‍➡' => 'man running facing right',
+    '🚶🏻‍♀‍➡' => 'woman walking: light skin tone, facing right',
+    '🚶🏼‍♀‍➡' => 'woman walking: medium-light skin tone, facing right',
+    '🚶🏽‍♀‍➡' => 'woman walking: medium skin tone, facing right',
+    '🚶🏾‍♀‍➡' => 'woman walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♀‍➡' => 'woman walking: dark skin tone, facing right',
+    '🚶🏻‍♂‍➡' => 'man walking: light skin tone, facing right',
+    '🚶🏼‍♂‍➡' => 'man walking: medium-light skin tone, facing right',
+    '🚶🏽‍♂‍➡' => 'man walking: medium skin tone, facing right',
+    '🚶🏾‍♂‍➡' => 'man walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♂‍➡' => 'man walking: dark skin tone, facing right',
+    '🧎🏻‍♀‍➡' => 'woman kneeling: light skin tone, facing right',
+    '🧎🏼‍♀‍➡' => 'woman kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♀‍➡' => 'woman kneeling: medium skin tone, facing right',
+    '🧎🏾‍♀‍➡' => 'woman kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♀‍➡' => 'woman kneeling: dark skin tone, facing right',
+    '🧎🏻‍♂‍➡' => 'man kneeling: light skin tone, facing right',
+    '🧎🏼‍♂‍➡' => 'man kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♂‍➡' => 'man kneeling: medium skin tone, facing right',
+    '🧎🏾‍♂‍➡' => 'man kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♂‍➡' => 'man kneeling: dark skin tone, facing right',
+    '🧑🏻‍🦯‍➡' => 'person with white cane: light skin tone, facing right',
+    '🧑🏼‍🦯‍➡' => 'person with white cane: medium-light skin tone, facing right',
+    '🧑🏽‍🦯‍➡' => 'person with white cane: medium skin tone, facing right',
+    '🧑🏾‍🦯‍➡' => 'person with white cane: medium-dark skin tone, facing right',
+    '🧑🏿‍🦯‍➡' => 'person with white cane: dark skin tone, facing right',
+    '👨🏻‍🦯‍➡' => 'man with white cane: light skin tone, facing right',
+    '👨🏼‍🦯‍➡' => 'man with white cane: medium-light skin tone, facing right',
+    '👨🏽‍🦯‍➡' => 'man with white cane: medium skin tone, facing right',
+    '👨🏾‍🦯‍➡' => 'man with white cane: medium-dark skin tone, facing right',
+    '👨🏿‍🦯‍➡' => 'man with white cane: dark skin tone, facing right',
+    '👩🏻‍🦯‍➡' => 'woman with white cane: light skin tone, facing right',
+    '👩🏼‍🦯‍➡' => 'woman with white cane: medium-light skin tone, facing right',
+    '👩🏽‍🦯‍➡' => 'woman with white cane: medium skin tone, facing right',
+    '👩🏾‍🦯‍➡' => 'woman with white cane: medium-dark skin tone, facing right',
+    '👩🏿‍🦯‍➡' => 'woman with white cane: dark skin tone, facing right',
+    '🧑🏻‍🦼‍➡' => 'person in motorized wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦼‍➡' => 'person in motorized wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦼‍➡' => 'person in motorized wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦼‍➡' => 'person in motorized wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦼‍➡' => 'person in motorized wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦼‍➡' => 'man in motorized wheelchair: light skin tone, facing right',
+    '👨🏼‍🦼‍➡' => 'man in motorized wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦼‍➡' => 'man in motorized wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦼‍➡' => 'man in motorized wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦼‍➡' => 'man in motorized wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦼‍➡' => 'woman in motorized wheelchair: light skin tone, facing right',
+    '👩🏼‍🦼‍➡' => 'woman in motorized wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦼‍➡' => 'woman in motorized wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦼‍➡' => 'woman in motorized wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦼‍➡' => 'woman in motorized wheelchair: dark skin tone, facing right',
+    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦽‍➡' => 'man in manual wheelchair: light skin tone, facing right',
+    '👨🏼‍🦽‍➡' => 'man in manual wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦽‍➡' => 'man in manual wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦽‍➡' => 'man in manual wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦽‍➡' => 'man in manual wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair: light skin tone, facing right',
+    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair: dark skin tone, facing right',
+    '🏃🏻‍♀‍➡' => 'woman running: light skin tone, facing right',
+    '🏃🏼‍♀‍➡' => 'woman running: medium-light skin tone, facing right',
+    '🏃🏽‍♀‍➡' => 'woman running: medium skin tone, facing right',
+    '🏃🏾‍♀‍➡' => 'woman running: medium-dark skin tone, facing right',
+    '🏃🏿‍♀‍➡' => 'woman running: dark skin tone, facing right',
+    '🏃🏻‍♂‍➡' => 'man running: light skin tone, facing right',
+    '🏃🏼‍♂‍➡' => 'man running: medium-light skin tone, facing right',
+    '🏃🏽‍♂‍➡' => 'man running: medium skin tone, facing right',
+    '🏃🏾‍♂‍➡' => 'man running: medium-dark skin tone, facing right',
+    '🏃🏿‍♂‍➡' => 'man running: dark skin tone, facing right',
     '🫱🏻‍🫲🏼' => 'handshake: light skin tone, medium-light skin tone',
     '🫱🏻‍🫲🏽' => 'handshake: light skin tone, medium skin tone',
     '🫱🏻‍🫲🏾' => 'handshake: light skin tone, medium-dark skin tone',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handshake: dark skin tone, medium-light skin tone',
     '🫱🏿‍🫲🏽' => 'handshake: dark skin tone, medium skin tone',
     '🫱🏿‍🫲🏾' => 'handshake: dark skin tone, medium-dark skin tone',
-    '🚶‍♀‍➡' => 'woman walking facing right',
-    '🚶‍♂‍➡' => 'man walking facing right',
-    '🧎‍♀‍➡' => 'woman kneeling facing right',
-    '🧎‍♂‍➡' => 'man kneeling facing right',
-    '🧑‍🦯‍➡' => 'person with white cane facing right',
-    '👨‍🦯‍➡' => 'man with white cane facing right',
-    '👩‍🦯‍➡' => 'woman with white cane facing right',
-    '🧑‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '👨‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👩‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '🧑‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃‍♀‍➡' => 'woman running facing right',
-    '🏃‍♂‍➡' => 'man running facing right',
+    '🚶‍♀‍➡' => 'woman walking: facing right',
+    '🚶‍♂‍➡' => 'man walking: facing right',
+    '🧎‍♀‍➡' => 'woman kneeling: facing right',
+    '🧎‍♂‍➡' => 'man kneeling: facing right',
+    '🧑‍🦯‍➡' => 'person with white cane: facing right',
+    '👨‍🦯‍➡' => 'man with white cane: facing right',
+    '👩‍🦯‍➡' => 'woman with white cane: facing right',
+    '🧑‍🦼‍➡' => 'person in motorized wheelchair: facing right',
+    '👨‍🦼‍➡' => 'man in motorized wheelchair: facing right',
+    '👩‍🦼‍➡' => 'woman in motorized wheelchair: facing right',
+    '🧑‍🦽‍➡' => 'person in manual wheelchair: facing right',
+    '👨‍🦽‍➡' => 'man in manual wheelchair: facing right',
+    '👩‍🦽‍➡' => 'woman in manual wheelchair: facing right',
+    '🏃‍♀‍➡' => 'woman running: facing right',
+    '🏃‍♂‍➡' => 'man running: facing right',
     '👩‍❤‍👨' => 'couple with heart: woman, man',
     '👨‍❤‍👨' => 'couple with heart: man, man',
     '👩‍❤‍👩' => 'couple with heart: woman, woman',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'person: medium skin tone, bald',
     '🧑🏾‍🦲' => 'person: medium-dark skin tone, bald',
     '🧑🏿‍🦲' => 'person: dark skin tone, bald',
+    '🧑🏻‍🩰' => 'ballet dancer: light skin tone',
+    '🧑🏼‍🩰' => 'ballet dancer: medium-light skin tone',
+    '🧑🏽‍🩰' => 'ballet dancer: medium skin tone',
+    '🧑🏾‍🩰' => 'ballet dancer: medium-dark skin tone',
+    '🧑🏿‍🩰' => 'ballet dancer: dark skin tone',
     '🧔🏻‍♂' => 'man: light skin tone, beard',
     '🧔🏼‍♂' => 'man: medium-light skin tone, beard',
     '🧔🏽‍♂' => 'man: medium skin tone, beard',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'woman walking: medium skin tone',
     '🚶🏾‍♀' => 'woman walking: medium-dark skin tone',
     '🚶🏿‍♀' => 'woman walking: dark skin tone',
-    '🚶🏻‍➡' => 'person walking facing right',
-    '🚶🏼‍➡' => 'person walking facing right',
-    '🚶🏽‍➡' => 'person walking facing right',
-    '🚶🏾‍➡' => 'person walking facing right',
-    '🚶🏿‍➡' => 'person walking facing right',
+    '🚶🏻‍➡' => 'person walking: light skin tone, facing right',
+    '🚶🏼‍➡' => 'person walking: medium-light skin tone, facing right',
+    '🚶🏽‍➡' => 'person walking: medium skin tone, facing right',
+    '🚶🏾‍➡' => 'person walking: medium-dark skin tone, facing right',
+    '🚶🏿‍➡' => 'person walking: dark skin tone, facing right',
     '🧍🏻‍♂' => 'man standing: light skin tone',
     '🧍🏼‍♂' => 'man standing: medium-light skin tone',
     '🧍🏽‍♂' => 'man standing: medium skin tone',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'woman kneeling: medium skin tone',
     '🧎🏾‍♀' => 'woman kneeling: medium-dark skin tone',
     '🧎🏿‍♀' => 'woman kneeling: dark skin tone',
-    '🧎🏻‍➡' => 'person kneeling facing right',
-    '🧎🏼‍➡' => 'person kneeling facing right',
-    '🧎🏽‍➡' => 'person kneeling facing right',
-    '🧎🏾‍➡' => 'person kneeling facing right',
-    '🧎🏿‍➡' => 'person kneeling facing right',
+    '🧎🏻‍➡' => 'person kneeling: light skin tone, facing right',
+    '🧎🏼‍➡' => 'person kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍➡' => 'person kneeling: medium skin tone, facing right',
+    '🧎🏾‍➡' => 'person kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍➡' => 'person kneeling: dark skin tone, facing right',
     '🧑🏻‍🦯' => 'person with white cane: light skin tone',
     '🧑🏼‍🦯' => 'person with white cane: medium-light skin tone',
     '🧑🏽‍🦯' => 'person with white cane: medium skin tone',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'woman running: medium skin tone',
     '🏃🏾‍♀' => 'woman running: medium-dark skin tone',
     '🏃🏿‍♀' => 'woman running: dark skin tone',
-    '🏃🏻‍➡' => 'person running facing right',
-    '🏃🏼‍➡' => 'person running facing right',
-    '🏃🏽‍➡' => 'person running facing right',
-    '🏃🏾‍➡' => 'person running facing right',
-    '🏃🏿‍➡' => 'person running facing right',
+    '🏃🏻‍➡' => 'person running: light skin tone, facing right',
+    '🏃🏼‍➡' => 'person running: medium-light skin tone, facing right',
+    '🏃🏽‍➡' => 'person running: medium skin tone, facing right',
+    '🏃🏾‍➡' => 'person running: medium-dark skin tone, facing right',
+    '🏃🏿‍➡' => 'person running: dark skin tone, facing right',
+    '👯🏻‍♀' => 'women with bunny ears: light skin tone',
+    '👯🏼‍♀' => 'women with bunny ears: medium-light skin tone',
+    '👯🏽‍♀' => 'women with bunny ears: medium skin tone',
+    '👯🏾‍♀' => 'women with bunny ears: medium-dark skin tone',
+    '👯🏿‍♀' => 'women with bunny ears: dark skin tone',
+    '👯🏻‍♂' => 'men with bunny ears: light skin tone',
+    '👯🏼‍♂' => 'men with bunny ears: medium-light skin tone',
+    '👯🏽‍♂' => 'men with bunny ears: medium skin tone',
+    '👯🏾‍♂' => 'men with bunny ears: medium-dark skin tone',
+    '👯🏿‍♂' => 'men with bunny ears: dark skin tone',
     '🧖🏻‍♂' => 'man in steamy room: light skin tone',
     '🧖🏼‍♂' => 'man in steamy room: medium-light skin tone',
     '🧖🏽‍♂' => 'man in steamy room: medium skin tone',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'woman cartwheeling: medium skin tone',
     '🤸🏾‍♀' => 'woman cartwheeling: medium-dark skin tone',
     '🤸🏿‍♀' => 'woman cartwheeling: dark skin tone',
+    '🤼🏻‍♀' => 'women wrestling: light skin tone',
+    '🤼🏼‍♀' => 'women wrestling: medium-light skin tone',
+    '🤼🏽‍♀' => 'women wrestling: medium skin tone',
+    '🤼🏾‍♀' => 'women wrestling: medium-dark skin tone',
+    '🤼🏿‍♀' => 'women wrestling: dark skin tone',
+    '🤼🏻‍♂' => 'men wrestling: light skin tone',
+    '🤼🏼‍♂' => 'men wrestling: medium-light skin tone',
+    '🤼🏽‍♂' => 'men wrestling: medium skin tone',
+    '🤼🏾‍♂' => 'men wrestling: medium-dark skin tone',
+    '🤼🏿‍♂' => 'men wrestling: dark skin tone',
     '🤽🏻‍♂' => 'man playing water polo: light skin tone',
     '🤽🏼‍♂' => 'man playing water polo: medium-light skin tone',
     '🤽🏽‍♂' => 'man playing water polo: medium skin tone',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'woman: curly hair',
     '👩‍🦳' => 'woman: white hair',
     '👩‍🦲' => 'woman: bald',
-    '🚶‍➡' => 'person walking facing right',
-    '🧎‍➡' => 'person kneeling facing right',
-    '🏃‍➡' => 'person running facing right',
+    '🚶‍➡' => 'person walking: facing right',
+    '🧎‍➡' => 'person kneeling: facing right',
+    '🏃‍➡' => 'person running: facing right',
     '👨‍👦' => 'family: man, boy',
     '👨‍👧' => 'family: man, girl',
     '👩‍👦' => 'family: woman, boy',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'woman in manual wheelchair',
     '🏃‍♂' => 'man running',
     '🏃‍♀' => 'woman running',
+    '🧑‍🩰' => 'ballet dancer',
     '👯‍♂' => 'men with bunny ears',
     '👯‍♀' => 'women with bunny ears',
     '🧖‍♂' => 'man in steamy room',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'person in suit levitating: medium skin tone',
     '🕴🏾' => 'person in suit levitating: medium-dark skin tone',
     '🕴🏿' => 'person in suit levitating: dark skin tone',
+    '👯🏻' => 'people with bunny ears: light skin tone',
+    '👯🏼' => 'people with bunny ears: medium-light skin tone',
+    '👯🏽' => 'people with bunny ears: medium skin tone',
+    '👯🏾' => 'people with bunny ears: medium-dark skin tone',
+    '👯🏿' => 'people with bunny ears: dark skin tone',
     '🧖🏻' => 'person in steamy room: light skin tone',
     '🧖🏼' => 'person in steamy room: medium-light skin tone',
     '🧖🏽' => 'person in steamy room: medium skin tone',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'person cartwheeling: medium skin tone',
     '🤸🏾' => 'person cartwheeling: medium-dark skin tone',
     '🤸🏿' => 'person cartwheeling: dark skin tone',
+    '🤼🏻' => 'people wrestling: light skin tone',
+    '🤼🏼' => 'people wrestling: medium-light skin tone',
+    '🤼🏽' => 'people wrestling: medium skin tone',
+    '🤼🏾' => 'people wrestling: medium-dark skin tone',
+    '🤼🏿' => 'people wrestling: dark skin tone',
     '🤽🏻' => 'person playing water polo: light skin tone',
     '🤽🏼' => 'person playing water polo: medium-light skin tone',
     '🤽🏽' => 'person playing water polo: medium skin tone',
@@ -2391,13 +2547,6 @@
     '🏽' => 'medium skin tone',
     '🏾' => 'medium-dark skin tone',
     '🏿' => 'dark skin tone',
-    '🪉' => 'harp',
-    '🪏' => 'shovel',
-    '🪾' => 'leafless tree',
-    '🫆' => 'fingerprint',
-    '🫜' => 'root vegetable',
-    '🫟' => 'splatter',
-    '🫩' => 'face with bags under eyes',
     '😀' => 'grinning face',
     '😃' => 'grinning face with big eyes',
     '😄' => 'grinning face with smiling eyes',
@@ -2451,6 +2600,7 @@
     '😪' => 'sleepy face',
     '🤤' => 'drooling face',
     '😴' => 'sleeping face',
+    '🫩' => 'face with bags under eyes',
     '😷' => 'face with medical mask',
     '🤒' => 'face with thermometer',
     '🤕' => 'face with head-bandage',
@@ -2477,6 +2627,7 @@
     '😯' => 'hushed face',
     '😲' => 'astonished face',
     '😳' => 'flushed face',
+    '🫪' => 'distorted face',
     '🥺' => 'pleading face',
     '🥹' => 'face holding back tears',
     '😦' => 'frowning face with open mouth',
@@ -2548,6 +2699,7 @@
     '💋' => 'kiss mark',
     '💯' => 'hundred points',
     '💢' => 'anger symbol',
+    '🫯' => 'fight cloud',
     '💥' => 'collision',
     '💫' => 'dizzy',
     '💦' => 'sweat droplets',
@@ -2671,6 +2823,7 @@
     '🧞' => 'genie',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'hairy creature',
     '💆' => 'person getting massage',
     '💇' => 'person getting haircut',
     '🚶' => 'person walking',
@@ -2714,6 +2867,7 @@
     '🫂' => 'people hugging',
     '👪' => 'family',
     '👣' => 'footprints',
+    '🫆' => 'fingerprint',
     '🦰' => 'red hair',
     '🦱' => 'curly hair',
     '🦳' => 'white hair',
@@ -2813,6 +2967,7 @@
     '🐳' => 'spouting whale',
     '🐋' => 'whale',
     '🐬' => 'dolphin',
+    '🫍' => 'orca',
     '🦭' => 'seal',
     '🐟' => 'fish',
     '🐠' => 'tropical fish',
@@ -2822,6 +2977,11 @@
     '🐚' => 'spiral shell',
     '🪸' => 'coral',
     '🪼' => 'jellyfish',
+    '🦀' => 'crab',
+    '🦞' => 'lobster',
+    '🦐' => 'shrimp',
+    '🦑' => 'squid',
+    '🦪' => 'oyster',
     '🐌' => 'snail',
     '🦋' => 'butterfly',
     '🐛' => 'bug',
@@ -2866,6 +3026,7 @@
     '🪹' => 'empty nest',
     '🪺' => 'nest with eggs',
     '🍄' => 'mushroom',
+    '🪾' => 'leafless tree',
     '🍇' => 'grapes',
     '🍈' => 'melon',
     '🍉' => 'watermelon',
@@ -2902,6 +3063,7 @@
     '🌰' => 'chestnut',
     '🫚' => 'ginger',
     '🫛' => 'pea pod',
+    '🫜' => 'root vegetable',
     '🍞' => 'bread',
     '🥐' => 'croissant',
     '🥖' => 'baguette bread',
@@ -2953,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'fortune cookie',
     '🥡' => 'takeout box',
-    '🦀' => 'crab',
-    '🦞' => 'lobster',
-    '🦐' => 'shrimp',
-    '🦑' => 'squid',
-    '🦪' => 'oyster',
     '🍦' => 'soft-serve ice cream',
     '🍧' => 'shaved ice',
     '🍨' => 'ice cream',
@@ -3008,6 +3165,7 @@
     '🧭' => 'compass',
     '🏔' => 'snow-capped mountain',
     '⛰' => 'mountain',
+    '🛘' => 'landslide',
     '🌋' => 'volcano',
     '🗻' => 'Mount Fuji',
     '🏕' => 'camping',
@@ -3368,16 +3526,18 @@
     '🎧' => 'headphone',
     '📻' => 'radio',
     '🎷' => 'saxophone',
+    '🎺' => 'trumpet',
+    '🪊' => 'trombone',
     '🪗' => 'accordion',
     '🎸' => 'guitar',
     '🎹' => 'musical keyboard',
-    '🎺' => 'trumpet',
     '🎻' => 'violin',
     '🪕' => 'banjo',
     '🥁' => 'drum',
     '🪘' => 'long drum',
     '🪇' => 'maracas',
     '🪈' => 'flute',
+    '🪉' => 'harp',
     '📱' => 'mobile phone',
     '📲' => 'mobile phone with arrow',
     '☎' => 'telephone',
@@ -3431,8 +3591,9 @@
     '📑' => 'bookmark tabs',
     '🔖' => 'bookmark',
     '🏷' => 'label',
-    '💰' => 'money bag',
     '🪙' => 'coin',
+    '💰' => 'money bag',
+    '🪎' => 'treasure chest',
     '💴' => 'yen banknote',
     '💵' => 'dollar banknote',
     '💶' => 'euro banknote',
@@ -3515,6 +3676,7 @@
     '🧰' => 'toolbox',
     '🧲' => 'magnet',
     '🪜' => 'ladder',
+    '🪏' => 'shovel',
     '⚗' => 'alembic',
     '🧪' => 'test tube',
     '🧫' => 'petri dish',
@@ -3698,6 +3860,7 @@
     '✴' => 'eight-pointed star',
     '❇' => 'sparkle',
     '™' => 'trademark',
+    '🫟' => 'splatter',
     '🔠' => 'input Latin uppercase',
     '🔡' => 'input Latin lowercase',
     '🔢' => 'input numbers',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_gb.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_gb.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_gb.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_gb.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kiss: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍💋‍👩🏾' => 'kiss: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍💋‍👩🏿' => 'kiss: woman, woman, dark skin tone',
+    '🧑🏻‍🫯‍🧑🏼' => 'people wrestling: light skin tone, medium-light skin tone',
+    '🧑🏻‍🫯‍🧑🏽' => 'people wrestling: light skin tone, medium skin tone',
+    '🧑🏻‍🫯‍🧑🏾' => 'people wrestling: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🫯‍🧑🏿' => 'people wrestling: light skin tone, dark skin tone',
+    '🧑🏼‍🫯‍🧑🏻' => 'people wrestling: medium-light skin tone, light skin tone',
+    '🧑🏼‍🫯‍🧑🏽' => 'people wrestling: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🫯‍🧑🏾' => 'people wrestling: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🫯‍🧑🏿' => 'people wrestling: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🫯‍🧑🏻' => 'people wrestling: medium skin tone, light skin tone',
+    '🧑🏽‍🫯‍🧑🏼' => 'people wrestling: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🫯‍🧑🏾' => 'people wrestling: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🫯‍🧑🏿' => 'people wrestling: medium skin tone, dark skin tone',
+    '🧑🏾‍🫯‍🧑🏻' => 'people wrestling: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🫯‍🧑🏼' => 'people wrestling: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🫯‍🧑🏽' => 'people wrestling: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🫯‍🧑🏿' => 'people wrestling: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🫯‍🧑🏻' => 'people wrestling: dark skin tone, light skin tone',
+    '🧑🏿‍🫯‍🧑🏼' => 'people wrestling: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🫯‍🧑🏽' => 'people wrestling: dark skin tone, medium skin tone',
+    '🧑🏿‍🫯‍🧑🏾' => 'people wrestling: dark skin tone, medium-dark skin tone',
     '🧑🏻‍❤‍🧑🏼' => 'couple with heart: person, person, light skin tone, medium-light skin tone',
     '🧑🏻‍❤‍🧑🏽' => 'couple with heart: person, person, light skin tone, medium skin tone',
     '🧑🏻‍❤‍🧑🏾' => 'couple with heart: person, person, light skin tone, medium-dark skin tone',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'couple with heart: person, person, dark skin tone, medium-light skin tone',
     '🧑🏿‍❤‍🧑🏽' => 'couple with heart: person, person, dark skin tone, medium skin tone',
     '🧑🏿‍❤‍🧑🏾' => 'couple with heart: person, person, dark skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏼' => 'people with bunny ears: light skin tone, medium-light skin tone',
+    '🧑🏻‍🐰‍🧑🏽' => 'people with bunny ears: light skin tone, medium skin tone',
+    '🧑🏻‍🐰‍🧑🏾' => 'people with bunny ears: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏿' => 'people with bunny ears: light skin tone, dark skin tone',
+    '🧑🏼‍🐰‍🧑🏻' => 'people with bunny ears: medium-light skin tone, light skin tone',
+    '🧑🏼‍🐰‍🧑🏽' => 'people with bunny ears: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🐰‍🧑🏾' => 'people with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🐰‍🧑🏿' => 'people with bunny ears: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🐰‍🧑🏻' => 'people with bunny ears: medium skin tone, light skin tone',
+    '🧑🏽‍🐰‍🧑🏼' => 'people with bunny ears: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🐰‍🧑🏾' => 'people with bunny ears: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🐰‍🧑🏿' => 'people with bunny ears: medium skin tone, dark skin tone',
+    '🧑🏾‍🐰‍🧑🏻' => 'people with bunny ears: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🐰‍🧑🏼' => 'people with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🐰‍🧑🏽' => 'people with bunny ears: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🐰‍🧑🏿' => 'people with bunny ears: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🐰‍🧑🏻' => 'people with bunny ears: dark skin tone, light skin tone',
+    '🧑🏿‍🐰‍🧑🏼' => 'people with bunny ears: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🐰‍🧑🏽' => 'people with bunny ears: dark skin tone, medium skin tone',
+    '🧑🏿‍🐰‍🧑🏾' => 'people with bunny ears: dark skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏼' => 'men wrestling: light skin tone, medium-light skin tone',
+    '👨🏻‍🫯‍👨🏽' => 'men wrestling: light skin tone, medium skin tone',
+    '👨🏻‍🫯‍👨🏾' => 'men wrestling: light skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏿' => 'men wrestling: light skin tone, dark skin tone',
+    '👨🏼‍🫯‍👨🏻' => 'men wrestling: medium-light skin tone, light skin tone',
+    '👨🏼‍🫯‍👨🏽' => 'men wrestling: medium-light skin tone, medium skin tone',
+    '👨🏼‍🫯‍👨🏾' => 'men wrestling: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🫯‍👨🏿' => 'men wrestling: medium-light skin tone, dark skin tone',
+    '👨🏽‍🫯‍👨🏻' => 'men wrestling: medium skin tone, light skin tone',
+    '👨🏽‍🫯‍👨🏼' => 'men wrestling: medium skin tone, medium-light skin tone',
+    '👨🏽‍🫯‍👨🏾' => 'men wrestling: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🫯‍👨🏿' => 'men wrestling: medium skin tone, dark skin tone',
+    '👨🏾‍🫯‍👨🏻' => 'men wrestling: medium-dark skin tone, light skin tone',
+    '👨🏾‍🫯‍👨🏼' => 'men wrestling: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🫯‍👨🏽' => 'men wrestling: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🫯‍👨🏿' => 'men wrestling: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🫯‍👨🏻' => 'men wrestling: dark skin tone, light skin tone',
+    '👨🏿‍🫯‍👨🏼' => 'men wrestling: dark skin tone, medium-light skin tone',
+    '👨🏿‍🫯‍👨🏽' => 'men wrestling: dark skin tone, medium skin tone',
+    '👨🏿‍🫯‍👨🏾' => 'men wrestling: dark skin tone, medium-dark skin tone',
     '👨🏻‍❤‍👨🏻' => 'couple with heart: man, man, light skin tone',
     '👨🏻‍❤‍👨🏼' => 'couple with heart: man, man, light skin tone, medium-light skin tone',
     '👨🏻‍❤‍👨🏽' => 'couple with heart: man, man, light skin tone, medium skin tone',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'couple with heart: man, man, dark skin tone, medium skin tone',
     '👨🏿‍❤‍👨🏾' => 'couple with heart: man, man, dark skin tone, medium-dark skin tone',
     '👨🏿‍❤‍👨🏿' => 'couple with heart: man, man, dark skin tone',
+    '👨🏻‍🐰‍👨🏼' => 'men with bunny ears: light skin tone, medium-light skin tone',
+    '👨🏻‍🐰‍👨🏽' => 'men with bunny ears: light skin tone, medium skin tone',
+    '👨🏻‍🐰‍👨🏾' => 'men with bunny ears: light skin tone, medium-dark skin tone',
+    '👨🏻‍🐰‍👨🏿' => 'men with bunny ears: light skin tone, dark skin tone',
+    '👨🏼‍🐰‍👨🏻' => 'men with bunny ears: medium-light skin tone, light skin tone',
+    '👨🏼‍🐰‍👨🏽' => 'men with bunny ears: medium-light skin tone, medium skin tone',
+    '👨🏼‍🐰‍👨🏾' => 'men with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🐰‍👨🏿' => 'men with bunny ears: medium-light skin tone, dark skin tone',
+    '👨🏽‍🐰‍👨🏻' => 'men with bunny ears: medium skin tone, light skin tone',
+    '👨🏽‍🐰‍👨🏼' => 'men with bunny ears: medium skin tone, medium-light skin tone',
+    '👨🏽‍🐰‍👨🏾' => 'men with bunny ears: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🐰‍👨🏿' => 'men with bunny ears: medium skin tone, dark skin tone',
+    '👨🏾‍🐰‍👨🏻' => 'men with bunny ears: medium-dark skin tone, light skin tone',
+    '👨🏾‍🐰‍👨🏼' => 'men with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🐰‍👨🏽' => 'men with bunny ears: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🐰‍👨🏿' => 'men with bunny ears: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🐰‍👨🏻' => 'men with bunny ears: dark skin tone, light skin tone',
+    '👨🏿‍🐰‍👨🏼' => 'men with bunny ears: dark skin tone, medium-light skin tone',
+    '👨🏿‍🐰‍👨🏽' => 'men with bunny ears: dark skin tone, medium skin tone',
+    '👨🏿‍🐰‍👨🏾' => 'men with bunny ears: dark skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏼' => 'women wrestling: light skin tone, medium-light skin tone',
+    '👩🏻‍🫯‍👩🏽' => 'women wrestling: light skin tone, medium skin tone',
+    '👩🏻‍🫯‍👩🏾' => 'women wrestling: light skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏿' => 'women wrestling: light skin tone, dark skin tone',
+    '👩🏼‍🫯‍👩🏻' => 'women wrestling: medium-light skin tone, light skin tone',
+    '👩🏼‍🫯‍👩🏽' => 'women wrestling: medium-light skin tone, medium skin tone',
+    '👩🏼‍🫯‍👩🏾' => 'women wrestling: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🫯‍👩🏿' => 'women wrestling: medium-light skin tone, dark skin tone',
+    '👩🏽‍🫯‍👩🏻' => 'women wrestling: medium skin tone, light skin tone',
+    '👩🏽‍🫯‍👩🏼' => 'women wrestling: medium skin tone, medium-light skin tone',
+    '👩🏽‍🫯‍👩🏾' => 'women wrestling: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🫯‍👩🏿' => 'women wrestling: medium skin tone, dark skin tone',
+    '👩🏾‍🫯‍👩🏻' => 'women wrestling: medium-dark skin tone, light skin tone',
+    '👩🏾‍🫯‍👩🏼' => 'women wrestling: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🫯‍👩🏽' => 'women wrestling: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🫯‍👩🏿' => 'women wrestling: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🫯‍👩🏻' => 'women wrestling: dark skin tone, light skin tone',
+    '👩🏿‍🫯‍👩🏼' => 'women wrestling: dark skin tone, medium-light skin tone',
+    '👩🏿‍🫯‍👩🏽' => 'women wrestling: dark skin tone, medium skin tone',
+    '👩🏿‍🫯‍👩🏾' => 'women wrestling: dark skin tone, medium-dark skin tone',
     '👩🏻‍❤‍👨🏻' => 'couple with heart: woman, man, light skin tone',
     '👩🏻‍❤‍👨🏼' => 'couple with heart: woman, man, light skin tone, medium-light skin tone',
     '👩🏻‍❤‍👨🏽' => 'couple with heart: woman, man, light skin tone, medium skin tone',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'couple with heart: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍👩🏾' => 'couple with heart: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍👩🏿' => 'couple with heart: woman, woman, dark skin tone',
+    '👩🏻‍🐰‍👩🏼' => 'women with bunny ears: light skin tone, medium-light skin tone',
+    '👩🏻‍🐰‍👩🏽' => 'women with bunny ears: light skin tone, medium skin tone',
+    '👩🏻‍🐰‍👩🏾' => 'women with bunny ears: light skin tone, medium-dark skin tone',
+    '👩🏻‍🐰‍👩🏿' => 'women with bunny ears: light skin tone, dark skin tone',
+    '👩🏼‍🐰‍👩🏻' => 'women with bunny ears: medium-light skin tone, light skin tone',
+    '👩🏼‍🐰‍👩🏽' => 'women with bunny ears: medium-light skin tone, medium skin tone',
+    '👩🏼‍🐰‍👩🏾' => 'women with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🐰‍👩🏿' => 'women with bunny ears: medium-light skin tone, dark skin tone',
+    '👩🏽‍🐰‍👩🏻' => 'women with bunny ears: medium skin tone, light skin tone',
+    '👩🏽‍🐰‍👩🏼' => 'women with bunny ears: medium skin tone, medium-light skin tone',
+    '👩🏽‍🐰‍👩🏾' => 'women with bunny ears: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🐰‍👩🏿' => 'women with bunny ears: medium skin tone, dark skin tone',
+    '👩🏾‍🐰‍👩🏻' => 'women with bunny ears: medium-dark skin tone, light skin tone',
+    '👩🏾‍🐰‍👩🏼' => 'women with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🐰‍👩🏽' => 'women with bunny ears: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🐰‍👩🏿' => 'women with bunny ears: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🐰‍👩🏻' => 'women with bunny ears: dark skin tone, light skin tone',
+    '👩🏿‍🐰‍👩🏼' => 'women with bunny ears: dark skin tone, medium-light skin tone',
+    '👩🏿‍🐰‍👩🏽' => 'women with bunny ears: dark skin tone, medium skin tone',
+    '👩🏿‍🐰‍👩🏾' => 'women with bunny ears: dark skin tone, medium-dark skin tone',
     '🧑🏻‍🤝‍🧑🏻' => 'people holding hands: light skin tone',
     '🧑🏻‍🤝‍🧑🏼' => 'people holding hands: light skin tone, medium-light skin tone',
     '🧑🏻‍🤝‍🧑🏽' => 'people holding hands: light skin tone, medium skin tone',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flag: Scotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flag: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'family: adult, adult, child, child',
-    '🚶🏻‍♀‍➡' => 'woman walking facing right',
-    '🚶🏼‍♀‍➡' => 'woman walking facing right',
-    '🚶🏽‍♀‍➡' => 'woman walking facing right',
-    '🚶🏾‍♀‍➡' => 'woman walking facing right',
-    '🚶🏿‍♀‍➡' => 'woman walking facing right',
-    '🚶🏻‍♂‍➡' => 'man walking facing right',
-    '🚶🏼‍♂‍➡' => 'man walking facing right',
-    '🚶🏽‍♂‍➡' => 'man walking facing right',
-    '🚶🏾‍♂‍➡' => 'man walking facing right',
-    '🚶🏿‍♂‍➡' => 'man walking facing right',
-    '🧎🏻‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏼‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏽‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏾‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏿‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏻‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏼‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏽‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏾‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏿‍♂‍➡' => 'man kneeling facing right',
-    '🧑🏻‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏼‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏽‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏾‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏿‍🦯‍➡' => 'person with white cane facing right',
-    '👨🏻‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏼‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏽‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏾‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏿‍🦯‍➡' => 'man with white cane facing right',
-    '👩🏻‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏼‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏽‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏾‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏿‍🦯‍➡' => 'woman with white cane facing right',
-    '🧑🏻‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏼‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏽‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏾‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏿‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '👨🏻‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏼‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏽‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏾‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏿‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👩🏻‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏼‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏽‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏾‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏿‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨🏻‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏼‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏽‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏾‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏿‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃🏻‍♀‍➡' => 'woman running facing right',
-    '🏃🏼‍♀‍➡' => 'woman running facing right',
-    '🏃🏽‍♀‍➡' => 'woman running facing right',
-    '🏃🏾‍♀‍➡' => 'woman running facing right',
-    '🏃🏿‍♀‍➡' => 'woman running facing right',
-    '🏃🏻‍♂‍➡' => 'man running facing right',
-    '🏃🏼‍♂‍➡' => 'man running facing right',
-    '🏃🏽‍♂‍➡' => 'man running facing right',
-    '🏃🏾‍♂‍➡' => 'man running facing right',
-    '🏃🏿‍♂‍➡' => 'man running facing right',
+    '🚶🏻‍♀‍➡' => 'woman walking: light skin tone, facing right',
+    '🚶🏼‍♀‍➡' => 'woman walking: medium-light skin tone, facing right',
+    '🚶🏽‍♀‍➡' => 'woman walking: medium skin tone, facing right',
+    '🚶🏾‍♀‍➡' => 'woman walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♀‍➡' => 'woman walking: dark skin tone, facing right',
+    '🚶🏻‍♂‍➡' => 'man walking: light skin tone, facing right',
+    '🚶🏼‍♂‍➡' => 'man walking: medium-light skin tone, facing right',
+    '🚶🏽‍♂‍➡' => 'man walking: medium skin tone, facing right',
+    '🚶🏾‍♂‍➡' => 'man walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♂‍➡' => 'man walking: dark skin tone, facing right',
+    '🧎🏻‍♀‍➡' => 'woman kneeling: light skin tone, facing right',
+    '🧎🏼‍♀‍➡' => 'woman kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♀‍➡' => 'woman kneeling: medium skin tone, facing right',
+    '🧎🏾‍♀‍➡' => 'woman kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♀‍➡' => 'woman kneeling: dark skin tone, facing right',
+    '🧎🏻‍♂‍➡' => 'man kneeling: light skin tone, facing right',
+    '🧎🏼‍♂‍➡' => 'man kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♂‍➡' => 'man kneeling: medium skin tone, facing right',
+    '🧎🏾‍♂‍➡' => 'man kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♂‍➡' => 'man kneeling: dark skin tone, facing right',
+    '🧑🏻‍🦯‍➡' => 'person with white cane: light skin tone, facing right',
+    '🧑🏼‍🦯‍➡' => 'person with white cane: medium-light skin tone, facing right',
+    '🧑🏽‍🦯‍➡' => 'person with white cane: medium skin tone, facing right',
+    '🧑🏾‍🦯‍➡' => 'person with white cane: medium-dark skin tone, facing right',
+    '🧑🏿‍🦯‍➡' => 'person with white cane: dark skin tone, facing right',
+    '👨🏻‍🦯‍➡' => 'man with white cane: light skin tone, facing right',
+    '👨🏼‍🦯‍➡' => 'man with white cane: medium-light skin tone, facing right',
+    '👨🏽‍🦯‍➡' => 'man with white cane: medium skin tone, facing right',
+    '👨🏾‍🦯‍➡' => 'man with white cane: medium-dark skin tone, facing right',
+    '👨🏿‍🦯‍➡' => 'man with white cane: dark skin tone, facing right',
+    '👩🏻‍🦯‍➡' => 'woman with white cane: light skin tone, facing right',
+    '👩🏼‍🦯‍➡' => 'woman with white cane: medium-light skin tone, facing right',
+    '👩🏽‍🦯‍➡' => 'woman with white cane: medium skin tone, facing right',
+    '👩🏾‍🦯‍➡' => 'woman with white cane: medium-dark skin tone, facing right',
+    '👩🏿‍🦯‍➡' => 'woman with white cane: dark skin tone, facing right',
+    '🧑🏻‍🦼‍➡' => 'person in motorized wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦼‍➡' => 'person in motorized wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦼‍➡' => 'person in motorized wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦼‍➡' => 'person in motorized wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦼‍➡' => 'person in motorized wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦼‍➡' => 'man in motorized wheelchair: light skin tone, facing right',
+    '👨🏼‍🦼‍➡' => 'man in motorized wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦼‍➡' => 'man in motorized wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦼‍➡' => 'man in motorized wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦼‍➡' => 'man in motorized wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦼‍➡' => 'woman in motorized wheelchair: light skin tone, facing right',
+    '👩🏼‍🦼‍➡' => 'woman in motorized wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦼‍➡' => 'woman in motorized wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦼‍➡' => 'woman in motorized wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦼‍➡' => 'woman in motorized wheelchair: dark skin tone, facing right',
+    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦽‍➡' => 'man in manual wheelchair: light skin tone, facing right',
+    '👨🏼‍🦽‍➡' => 'man in manual wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦽‍➡' => 'man in manual wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦽‍➡' => 'man in manual wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦽‍➡' => 'man in manual wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair: light skin tone, facing right',
+    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair: dark skin tone, facing right',
+    '🏃🏻‍♀‍➡' => 'woman running: light skin tone, facing right',
+    '🏃🏼‍♀‍➡' => 'woman running: medium-light skin tone, facing right',
+    '🏃🏽‍♀‍➡' => 'woman running: medium skin tone, facing right',
+    '🏃🏾‍♀‍➡' => 'woman running: medium-dark skin tone, facing right',
+    '🏃🏿‍♀‍➡' => 'woman running: dark skin tone, facing right',
+    '🏃🏻‍♂‍➡' => 'man running: light skin tone, facing right',
+    '🏃🏼‍♂‍➡' => 'man running: medium-light skin tone, facing right',
+    '🏃🏽‍♂‍➡' => 'man running: medium skin tone, facing right',
+    '🏃🏾‍♂‍➡' => 'man running: medium-dark skin tone, facing right',
+    '🏃🏿‍♂‍➡' => 'man running: dark skin tone, facing right',
     '🫱🏻‍🫲🏼' => 'handshake: light skin tone, medium-light skin tone',
     '🫱🏻‍🫲🏽' => 'handshake: light skin tone, medium skin tone',
     '🫱🏻‍🫲🏾' => 'handshake: light skin tone, medium-dark skin tone',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handshake: dark skin tone, medium-light skin tone',
     '🫱🏿‍🫲🏽' => 'handshake: dark skin tone, medium skin tone',
     '🫱🏿‍🫲🏾' => 'handshake: dark skin tone, medium-dark skin tone',
-    '🚶‍♀‍➡' => 'woman walking facing right',
-    '🚶‍♂‍➡' => 'man walking facing right',
-    '🧎‍♀‍➡' => 'woman kneeling facing right',
-    '🧎‍♂‍➡' => 'man kneeling facing right',
-    '🧑‍🦯‍➡' => 'person with white cane facing right',
-    '👨‍🦯‍➡' => 'man with white cane facing right',
-    '👩‍🦯‍➡' => 'woman with white cane facing right',
-    '🧑‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '👨‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👩‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '🧑‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃‍♀‍➡' => 'woman running facing right',
-    '🏃‍♂‍➡' => 'man running facing right',
+    '🚶‍♀‍➡' => 'woman walking: facing right',
+    '🚶‍♂‍➡' => 'man walking: facing right',
+    '🧎‍♀‍➡' => 'woman kneeling: facing right',
+    '🧎‍♂‍➡' => 'man kneeling: facing right',
+    '🧑‍🦯‍➡' => 'person with white cane: facing right',
+    '👨‍🦯‍➡' => 'man with white cane: facing right',
+    '👩‍🦯‍➡' => 'woman with white cane: facing right',
+    '🧑‍🦼‍➡' => 'person in motorized wheelchair: facing right',
+    '👨‍🦼‍➡' => 'man in motorized wheelchair: facing right',
+    '👩‍🦼‍➡' => 'woman in motorized wheelchair: facing right',
+    '🧑‍🦽‍➡' => 'person in manual wheelchair: facing right',
+    '👨‍🦽‍➡' => 'man in manual wheelchair: facing right',
+    '👩‍🦽‍➡' => 'woman in manual wheelchair: facing right',
+    '🏃‍♀‍➡' => 'woman running: facing right',
+    '🏃‍♂‍➡' => 'man running: facing right',
     '👩‍❤‍👨' => 'couple with heart: woman, man',
     '👨‍❤‍👨' => 'couple with heart: man, man',
     '👩‍❤‍👩' => 'couple with heart: woman, woman',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'person: medium skin tone, bald',
     '🧑🏾‍🦲' => 'person: medium-dark skin tone, bald',
     '🧑🏿‍🦲' => 'person: dark skin tone, bald',
+    '🧑🏻‍🩰' => 'ballet dancer: light skin tone',
+    '🧑🏼‍🩰' => 'ballet dancer: medium-light skin tone',
+    '🧑🏽‍🩰' => 'ballet dancer: medium skin tone',
+    '🧑🏾‍🩰' => 'ballet dancer: medium-dark skin tone',
+    '🧑🏿‍🩰' => 'ballet dancer: dark skin tone',
     '🧔🏻‍♂' => 'man: light skin tone, beard',
     '🧔🏼‍♂' => 'man: medium-light skin tone, beard',
     '🧔🏽‍♂' => 'man: medium skin tone, beard',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'woman walking: medium skin tone',
     '🚶🏾‍♀' => 'woman walking: medium-dark skin tone',
     '🚶🏿‍♀' => 'woman walking: dark skin tone',
-    '🚶🏻‍➡' => 'person walking facing right',
-    '🚶🏼‍➡' => 'person walking facing right',
-    '🚶🏽‍➡' => 'person walking facing right',
-    '🚶🏾‍➡' => 'person walking facing right',
-    '🚶🏿‍➡' => 'person walking facing right',
+    '🚶🏻‍➡' => 'person walking: light skin tone, facing right',
+    '🚶🏼‍➡' => 'person walking: medium-light skin tone, facing right',
+    '🚶🏽‍➡' => 'person walking: medium skin tone, facing right',
+    '🚶🏾‍➡' => 'person walking: medium-dark skin tone, facing right',
+    '🚶🏿‍➡' => 'person walking: dark skin tone, facing right',
     '🧍🏻‍♂' => 'man standing: light skin tone',
     '🧍🏼‍♂' => 'man standing: medium-light skin tone',
     '🧍🏽‍♂' => 'man standing: medium skin tone',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'woman kneeling: medium skin tone',
     '🧎🏾‍♀' => 'woman kneeling: medium-dark skin tone',
     '🧎🏿‍♀' => 'woman kneeling: dark skin tone',
-    '🧎🏻‍➡' => 'person kneeling facing right',
-    '🧎🏼‍➡' => 'person kneeling facing right',
-    '🧎🏽‍➡' => 'person kneeling facing right',
-    '🧎🏾‍➡' => 'person kneeling facing right',
-    '🧎🏿‍➡' => 'person kneeling facing right',
+    '🧎🏻‍➡' => 'person kneeling: light skin tone, facing right',
+    '🧎🏼‍➡' => 'person kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍➡' => 'person kneeling: medium skin tone, facing right',
+    '🧎🏾‍➡' => 'person kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍➡' => 'person kneeling: dark skin tone, facing right',
     '🧑🏻‍🦯' => 'person with white cane: light skin tone',
     '🧑🏼‍🦯' => 'person with white cane: medium-light skin tone',
     '🧑🏽‍🦯' => 'person with white cane: medium skin tone',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'woman running: medium skin tone',
     '🏃🏾‍♀' => 'woman running: medium-dark skin tone',
     '🏃🏿‍♀' => 'woman running: dark skin tone',
-    '🏃🏻‍➡' => 'person running facing right',
-    '🏃🏼‍➡' => 'person running facing right',
-    '🏃🏽‍➡' => 'person running facing right',
-    '🏃🏾‍➡' => 'person running facing right',
-    '🏃🏿‍➡' => 'person running facing right',
+    '🏃🏻‍➡' => 'person running: light skin tone, facing right',
+    '🏃🏼‍➡' => 'person running: medium-light skin tone, facing right',
+    '🏃🏽‍➡' => 'person running: medium skin tone, facing right',
+    '🏃🏾‍➡' => 'person running: medium-dark skin tone, facing right',
+    '🏃🏿‍➡' => 'person running: dark skin tone, facing right',
+    '👯🏻‍♀' => 'women with bunny ears: light skin tone',
+    '👯🏼‍♀' => 'women with bunny ears: medium-light skin tone',
+    '👯🏽‍♀' => 'women with bunny ears: medium skin tone',
+    '👯🏾‍♀' => 'women with bunny ears: medium-dark skin tone',
+    '👯🏿‍♀' => 'women with bunny ears: dark skin tone',
+    '👯🏻‍♂' => 'men with bunny ears: light skin tone',
+    '👯🏼‍♂' => 'men with bunny ears: medium-light skin tone',
+    '👯🏽‍♂' => 'men with bunny ears: medium skin tone',
+    '👯🏾‍♂' => 'men with bunny ears: medium-dark skin tone',
+    '👯🏿‍♂' => 'men with bunny ears: dark skin tone',
     '🧖🏻‍♂' => 'man in steamy room: light skin tone',
     '🧖🏼‍♂' => 'man in steamy room: medium-light skin tone',
     '🧖🏽‍♂' => 'man in steamy room: medium skin tone',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'woman cartwheeling: medium skin tone',
     '🤸🏾‍♀' => 'woman cartwheeling: medium-dark skin tone',
     '🤸🏿‍♀' => 'woman cartwheeling: dark skin tone',
+    '🤼🏻‍♀' => 'women wrestling: light skin tone',
+    '🤼🏼‍♀' => 'women wrestling: medium-light skin tone',
+    '🤼🏽‍♀' => 'women wrestling: medium skin tone',
+    '🤼🏾‍♀' => 'women wrestling: medium-dark skin tone',
+    '🤼🏿‍♀' => 'women wrestling: dark skin tone',
+    '🤼🏻‍♂' => 'men wrestling: light skin tone',
+    '🤼🏼‍♂' => 'men wrestling: medium-light skin tone',
+    '🤼🏽‍♂' => 'men wrestling: medium skin tone',
+    '🤼🏾‍♂' => 'men wrestling: medium-dark skin tone',
+    '🤼🏿‍♂' => 'men wrestling: dark skin tone',
     '🤽🏻‍♂' => 'man playing water polo: light skin tone',
     '🤽🏼‍♂' => 'man playing water polo: medium-light skin tone',
     '🤽🏽‍♂' => 'man playing water polo: medium skin tone',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'woman: curly hair',
     '👩‍🦳' => 'woman: white hair',
     '👩‍🦲' => 'woman: bald',
-    '🚶‍➡' => 'person walking facing right',
-    '🧎‍➡' => 'person kneeling facing right',
-    '🏃‍➡' => 'person running facing right',
+    '🚶‍➡' => 'person walking: facing right',
+    '🧎‍➡' => 'person kneeling: facing right',
+    '🏃‍➡' => 'person running: facing right',
     '👨‍👦' => 'family: man, boy',
     '👨‍👧' => 'family: man, girl',
     '👩‍👦' => 'family: woman, boy',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'woman in manual wheelchair',
     '🏃‍♂' => 'man running',
     '🏃‍♀' => 'woman running',
+    '🧑‍🩰' => 'ballet dancer',
     '👯‍♂' => 'men with bunny ears',
     '👯‍♀' => 'women with bunny ears',
     '🧖‍♂' => 'man in steamy room',
@@ -1463,7 +1609,7 @@
     '🐕‍🦺' => 'service dog',
     '🐈‍⬛' => 'black cat',
     '🐻‍❄' => 'polar bear',
-    '🐦‍⬛' => 'blackbird',
+    '🐦‍⬛' => 'black bird',
     '🐦‍🔥' => 'phoenix',
     '🍋‍🟩' => 'lime',
     '🍄‍🟫' => 'brown mushroom',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'person in suit levitating: medium skin tone',
     '🕴🏾' => 'person in suit levitating: medium-dark skin tone',
     '🕴🏿' => 'person in suit levitating: dark skin tone',
+    '👯🏻' => 'people with bunny ears: light skin tone',
+    '👯🏼' => 'people with bunny ears: medium-light skin tone',
+    '👯🏽' => 'people with bunny ears: medium skin tone',
+    '👯🏾' => 'people with bunny ears: medium-dark skin tone',
+    '👯🏿' => 'people with bunny ears: dark skin tone',
     '🧖🏻' => 'person in steamy room: light skin tone',
     '🧖🏼' => 'person in steamy room: medium-light skin tone',
     '🧖🏽' => 'person in steamy room: medium skin tone',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'person cartwheeling: medium skin tone',
     '🤸🏾' => 'person cartwheeling: medium-dark skin tone',
     '🤸🏿' => 'person cartwheeling: dark skin tone',
+    '🤼🏻' => 'people wrestling: light skin tone',
+    '🤼🏼' => 'people wrestling: medium-light skin tone',
+    '🤼🏽' => 'people wrestling: medium skin tone',
+    '🤼🏾' => 'people wrestling: medium-dark skin tone',
+    '🤼🏿' => 'people wrestling: dark skin tone',
     '🤽🏻' => 'person playing water polo: light skin tone',
     '🤽🏼' => 'person playing water polo: medium-light skin tone',
     '🤽🏽' => 'person playing water polo: medium skin tone',
@@ -2391,13 +2547,6 @@
     '🏽' => 'medium skin tone',
     '🏾' => 'medium-dark skin tone',
     '🏿' => 'dark skin tone',
-    '🪉' => 'harp',
-    '🪏' => 'shovel',
-    '🪾' => 'leafless tree',
-    '🫆' => 'fingerprint',
-    '🫜' => 'root vegetable',
-    '🫟' => 'splatter',
-    '🫩' => 'face with bags under eyes',
     '😀' => 'grinning face',
     '😃' => 'grinning face with big eyes',
     '😄' => 'grinning face with smiling eyes',
@@ -2451,6 +2600,7 @@
     '😪' => 'sleepy face',
     '🤤' => 'drooling face',
     '😴' => 'sleeping face',
+    '🫩' => 'face with bags under eyes',
     '😷' => 'face with medical mask',
     '🤒' => 'face with thermometer',
     '🤕' => 'face with head-bandage',
@@ -2477,6 +2627,7 @@
     '😯' => 'hushed face',
     '😲' => 'astonished face',
     '😳' => 'flushed face',
+    '🫪' => 'distorted face',
     '🥺' => 'pleading face',
     '🥹' => 'face holding back tears',
     '😦' => 'frowning face with open mouth',
@@ -2548,6 +2699,7 @@
     '💋' => 'kiss mark',
     '💯' => 'hundred points',
     '💢' => 'anger symbol',
+    '🫯' => 'fight cloud',
     '💥' => 'collision',
     '💫' => 'dizzy',
     '💦' => 'sweat droplets',
@@ -2660,7 +2812,7 @@
     '🤱' => 'breast-feeding',
     '👼' => 'baby angel',
     '🎅' => 'Santa Claus',
-    '🤶' => 'Mrs Claus',
+    '🤶' => 'Mrs. Claus',
     '🦸' => 'superhero',
     '🦹' => 'supervillain',
     '🧙' => 'mage',
@@ -2671,6 +2823,7 @@
     '🧞' => 'genie',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'hairy creature',
     '💆' => 'person getting massage',
     '💇' => 'person getting haircut',
     '🚶' => 'person walking',
@@ -2714,6 +2867,7 @@
     '🫂' => 'people hugging',
     '👪' => 'family',
     '👣' => 'footprints',
+    '🫆' => 'fingerprint',
     '🦰' => 'red hair',
     '🦱' => 'curly hair',
     '🦳' => 'white hair',
@@ -2813,6 +2967,7 @@
     '🐳' => 'spouting whale',
     '🐋' => 'whale',
     '🐬' => 'dolphin',
+    '🫍' => 'orca',
     '🦭' => 'seal',
     '🐟' => 'fish',
     '🐠' => 'tropical fish',
@@ -2822,6 +2977,11 @@
     '🐚' => 'spiral shell',
     '🪸' => 'coral',
     '🪼' => 'jellyfish',
+    '🦀' => 'crab',
+    '🦞' => 'lobster',
+    '🦐' => 'shrimp',
+    '🦑' => 'squid',
+    '🦪' => 'oyster',
     '🐌' => 'snail',
     '🦋' => 'butterfly',
     '🐛' => 'bug',
@@ -2866,6 +3026,7 @@
     '🪹' => 'empty nest',
     '🪺' => 'nest with eggs',
     '🍄' => 'mushroom',
+    '🪾' => 'leafless tree',
     '🍇' => 'grapes',
     '🍈' => 'melon',
     '🍉' => 'watermelon',
@@ -2886,7 +3047,7 @@
     '🫒' => 'olive',
     '🥥' => 'coconut',
     '🥑' => 'avocado',
-    '🍆' => 'eggplant',
+    '🍆' => 'aubergine',
     '🥔' => 'potato',
     '🥕' => 'carrot',
     '🌽' => 'ear of corn',
@@ -2900,8 +3061,9 @@
     '🥜' => 'peanuts',
     '🫘' => 'beans',
     '🌰' => 'chestnut',
-    '🫚' => 'root ginger',
+    '🫚' => 'ginger root',
     '🫛' => 'pea pod',
+    '🫜' => 'root vegetable',
     '🍞' => 'bread',
     '🥐' => 'croissant',
     '🥖' => 'baguette bread',
@@ -2935,7 +3097,7 @@
     '🍿' => 'popcorn',
     '🧈' => 'butter',
     '🧂' => 'salt',
-    '🥫' => 'tinned food',
+    '🥫' => 'canned food',
     '🍱' => 'bento box',
     '🍘' => 'rice cracker',
     '🍙' => 'rice ball',
@@ -2953,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'fortune cookie',
     '🥡' => 'takeout box',
-    '🦀' => 'crab',
-    '🦞' => 'lobster',
-    '🦐' => 'shrimp',
-    '🦑' => 'squid',
-    '🦪' => 'oyster',
     '🍦' => 'soft ice cream',
     '🍧' => 'shaved ice',
     '🍨' => 'ice cream',
@@ -2968,9 +3125,9 @@
     '🧁' => 'cupcake',
     '🥧' => 'pie',
     '🍫' => 'chocolate bar',
-    '🍬' => 'candy',
+    '🍬' => 'sweet',
     '🍭' => 'lollipop',
-    '🍮' => 'custard',
+    '🍮' => 'egg custard',
     '🍯' => 'honey pot',
     '🍼' => 'baby bottle',
     '🥛' => 'glass of milk',
@@ -2989,7 +3146,7 @@
     '🫗' => 'pouring liquid',
     '🥤' => 'cup with straw',
     '🧋' => 'bubble tea',
-    '🧃' => 'beverage box',
+    '🧃' => 'drink carton',
     '🧉' => 'mate',
     '🧊' => 'ice',
     '🥢' => 'chopsticks',
@@ -3008,6 +3165,7 @@
     '🧭' => 'compass',
     '🏔' => 'snow-capped mountain',
     '⛰' => 'mountain',
+    '🛘' => 'landslide',
     '🌋' => 'volcano',
     '🗻' => 'mount fuji',
     '🏕' => 'camping',
@@ -3046,7 +3204,7 @@
     '🕌' => 'mosque',
     '🛕' => 'hindu temple',
     '🕍' => 'synagogue',
-    '⛩' => 'shinto shrine',
+    '⛩' => 'Shinto shrine',
     '🕋' => 'kaaba',
     '⛲' => 'fountain',
     '⛺' => 'tent',
@@ -3066,7 +3224,7 @@
     '💈' => 'barber pole',
     '🎪' => 'circus tent',
     '🚂' => 'locomotive',
-    '🚃' => 'railway car',
+    '🚃' => 'railway carriage',
     '🚄' => 'high-speed train',
     '🚅' => 'bullet train',
     '🚆' => 'train',
@@ -3087,8 +3245,8 @@
     '🚔' => 'oncoming police car',
     '🚕' => 'taxi',
     '🚖' => 'oncoming taxi',
-    '🚗' => 'automobile',
-    '🚘' => 'oncoming automobile',
+    '🚗' => 'car',
+    '🚘' => 'oncoming car',
     '🚙' => 'sport utility vehicle',
     '🛻' => 'pickup truck',
     '🚚' => 'delivery truck',
@@ -3117,17 +3275,17 @@
     '🚧' => 'construction',
     '⚓' => 'anchor',
     '🛟' => 'ring buoy',
-    '⛵' => 'sailboat',
+    '⛵' => 'sailing boat',
     '🛶' => 'canoe',
     '🚤' => 'speedboat',
     '🛳' => 'passenger ship',
     '⛴' => 'ferry',
-    '🛥' => 'motor boat',
+    '🛥' => 'motorboat',
     '🚢' => 'ship',
-    '✈' => 'airplane',
-    '🛩' => 'small airplane',
-    '🛫' => 'airplane departure',
-    '🛬' => 'airplane arrival',
+    '✈' => 'aeroplane',
+    '🛩' => 'small aeroplane',
+    '🛫' => 'aeroplane departure',
+    '🛬' => 'aeroplane arrival',
     '🪂' => 'parachute',
     '💺' => 'seat',
     '🚁' => 'helicopter',
@@ -3137,7 +3295,7 @@
     '🛰' => 'satellite',
     '🚀' => 'rocket',
     '🛸' => 'flying saucer',
-    '🛎' => 'bellhop bell',
+    '🛎' => 'service bell',
     '🧳' => 'luggage',
     '⌛' => 'hourglass done',
     '⏳' => 'hourglass not done',
@@ -3244,7 +3402,7 @@
     '🥇' => '1st place medal',
     '🥈' => '2nd place medal',
     '🥉' => '3rd place medal',
-    '⚽' => 'football',
+    '⚽' => 'soccer ball',
     '⚾' => 'baseball',
     '🥎' => 'softball',
     '🏀' => 'basketball',
@@ -3258,7 +3416,7 @@
     '🏑' => 'field hockey',
     '🏒' => 'ice hockey',
     '🥍' => 'lacrosse',
-    '🏓' => 'table tennis',
+    '🏓' => 'ping pong',
     '🏸' => 'badminton',
     '🥊' => 'boxing glove',
     '🥋' => 'martial arts uniform',
@@ -3269,7 +3427,7 @@
     '🤿' => 'diving mask',
     '🎽' => 'running shirt',
     '🎿' => 'skis',
-    '🛷' => 'sledge',
+    '🛷' => 'sled',
     '🥌' => 'curling stone',
     '🎯' => 'bullseye',
     '🪀' => 'yo-yo',
@@ -3368,16 +3526,18 @@
     '🎧' => 'headphone',
     '📻' => 'radio',
     '🎷' => 'saxophone',
+    '🎺' => 'trumpet',
+    '🪊' => 'trombone',
     '🪗' => 'accordion',
     '🎸' => 'guitar',
     '🎹' => 'musical keyboard',
-    '🎺' => 'trumpet',
     '🎻' => 'violin',
     '🪕' => 'banjo',
     '🥁' => 'drum',
     '🪘' => 'long drum',
     '🪇' => 'maracas',
     '🪈' => 'flute',
+    '🪉' => 'harp',
     '📱' => 'mobile phone',
     '📲' => 'mobile phone with arrow',
     '☎' => 'telephone',
@@ -3431,8 +3591,9 @@
     '📑' => 'bookmark tabs',
     '🔖' => 'bookmark',
     '🏷' => 'label',
-    '💰' => 'money bag',
     '🪙' => 'coin',
+    '💰' => 'money bag',
+    '🪎' => 'treasure chest',
     '💴' => 'yen banknote',
     '💵' => 'dollar banknote',
     '💶' => 'euro banknote',
@@ -3515,6 +3676,7 @@
     '🧰' => 'toolbox',
     '🧲' => 'magnet',
     '🪜' => 'ladder',
+    '🪏' => 'shovel',
     '⚗' => 'alembic',
     '🧪' => 'test tube',
     '🧫' => 'petri dish',
@@ -3569,7 +3731,7 @@
     '♿' => 'wheelchair symbol',
     '🚹' => 'men’s room',
     '🚺' => 'women’s room',
-    '🚻' => 'toilets',
+    '🚻' => 'restroom',
     '🚼' => 'baby symbol',
     '🚾' => 'water closet',
     '🛂' => 'passport control',
@@ -3604,7 +3766,7 @@
     '⤴' => 'right arrow curving up',
     '⤵' => 'right arrow curving down',
     '🔃' => 'clockwise vertical arrows',
-    '🔄' => 'anticlockwise arrows button',
+    '🔄' => 'counterclockwise arrows button',
     '🔙' => 'BACK arrow',
     '🔚' => 'END arrow',
     '🔛' => 'ON! arrow',
@@ -3698,6 +3860,7 @@
     '✴' => 'eight-pointed star',
     '❇' => 'sparkle',
     '™' => 'trade mark',
+    '🫟' => 'splatter',
     '🔠' => 'input latin uppercase',
     '🔡' => 'input latin lowercase',
     '🔢' => 'input numbers',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_in.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_in.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_in.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en_in.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kiss: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍💋‍👩🏾' => 'kiss: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍💋‍👩🏿' => 'kiss: woman, woman, dark skin tone',
+    '🧑🏻‍🫯‍🧑🏼' => 'people wrestling: light skin tone, medium-light skin tone',
+    '🧑🏻‍🫯‍🧑🏽' => 'people wrestling: light skin tone, medium skin tone',
+    '🧑🏻‍🫯‍🧑🏾' => 'people wrestling: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🫯‍🧑🏿' => 'people wrestling: light skin tone, dark skin tone',
+    '🧑🏼‍🫯‍🧑🏻' => 'people wrestling: medium-light skin tone, light skin tone',
+    '🧑🏼‍🫯‍🧑🏽' => 'people wrestling: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🫯‍🧑🏾' => 'people wrestling: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🫯‍🧑🏿' => 'people wrestling: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🫯‍🧑🏻' => 'people wrestling: medium skin tone, light skin tone',
+    '🧑🏽‍🫯‍🧑🏼' => 'people wrestling: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🫯‍🧑🏾' => 'people wrestling: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🫯‍🧑🏿' => 'people wrestling: medium skin tone, dark skin tone',
+    '🧑🏾‍🫯‍🧑🏻' => 'people wrestling: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🫯‍🧑🏼' => 'people wrestling: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🫯‍🧑🏽' => 'people wrestling: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🫯‍🧑🏿' => 'people wrestling: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🫯‍🧑🏻' => 'people wrestling: dark skin tone, light skin tone',
+    '🧑🏿‍🫯‍🧑🏼' => 'people wrestling: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🫯‍🧑🏽' => 'people wrestling: dark skin tone, medium skin tone',
+    '🧑🏿‍🫯‍🧑🏾' => 'people wrestling: dark skin tone, medium-dark skin tone',
     '🧑🏻‍❤‍🧑🏼' => 'couple with heart: person, person, light skin tone, medium-light skin tone',
     '🧑🏻‍❤‍🧑🏽' => 'couple with heart: person, person, light skin tone, medium skin tone',
     '🧑🏻‍❤‍🧑🏾' => 'couple with heart: person, person, light skin tone, medium-dark skin tone',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'couple with heart: person, person, dark skin tone, medium-light skin tone',
     '🧑🏿‍❤‍🧑🏽' => 'couple with heart: person, person, dark skin tone, medium skin tone',
     '🧑🏿‍❤‍🧑🏾' => 'couple with heart: person, person, dark skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏼' => 'people with bunny ears: light skin tone, medium-light skin tone',
+    '🧑🏻‍🐰‍🧑🏽' => 'people with bunny ears: light skin tone, medium skin tone',
+    '🧑🏻‍🐰‍🧑🏾' => 'people with bunny ears: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏿' => 'people with bunny ears: light skin tone, dark skin tone',
+    '🧑🏼‍🐰‍🧑🏻' => 'people with bunny ears: medium-light skin tone, light skin tone',
+    '🧑🏼‍🐰‍🧑🏽' => 'people with bunny ears: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🐰‍🧑🏾' => 'people with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🐰‍🧑🏿' => 'people with bunny ears: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🐰‍🧑🏻' => 'people with bunny ears: medium skin tone, light skin tone',
+    '🧑🏽‍🐰‍🧑🏼' => 'people with bunny ears: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🐰‍🧑🏾' => 'people with bunny ears: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🐰‍🧑🏿' => 'people with bunny ears: medium skin tone, dark skin tone',
+    '🧑🏾‍🐰‍🧑🏻' => 'people with bunny ears: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🐰‍🧑🏼' => 'people with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🐰‍🧑🏽' => 'people with bunny ears: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🐰‍🧑🏿' => 'people with bunny ears: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🐰‍🧑🏻' => 'people with bunny ears: dark skin tone, light skin tone',
+    '🧑🏿‍🐰‍🧑🏼' => 'people with bunny ears: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🐰‍🧑🏽' => 'people with bunny ears: dark skin tone, medium skin tone',
+    '🧑🏿‍🐰‍🧑🏾' => 'people with bunny ears: dark skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏼' => 'men wrestling: light skin tone, medium-light skin tone',
+    '👨🏻‍🫯‍👨🏽' => 'men wrestling: light skin tone, medium skin tone',
+    '👨🏻‍🫯‍👨🏾' => 'men wrestling: light skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏿' => 'men wrestling: light skin tone, dark skin tone',
+    '👨🏼‍🫯‍👨🏻' => 'men wrestling: medium-light skin tone, light skin tone',
+    '👨🏼‍🫯‍👨🏽' => 'men wrestling: medium-light skin tone, medium skin tone',
+    '👨🏼‍🫯‍👨🏾' => 'men wrestling: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🫯‍👨🏿' => 'men wrestling: medium-light skin tone, dark skin tone',
+    '👨🏽‍🫯‍👨🏻' => 'men wrestling: medium skin tone, light skin tone',
+    '👨🏽‍🫯‍👨🏼' => 'men wrestling: medium skin tone, medium-light skin tone',
+    '👨🏽‍🫯‍👨🏾' => 'men wrestling: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🫯‍👨🏿' => 'men wrestling: medium skin tone, dark skin tone',
+    '👨🏾‍🫯‍👨🏻' => 'men wrestling: medium-dark skin tone, light skin tone',
+    '👨🏾‍🫯‍👨🏼' => 'men wrestling: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🫯‍👨🏽' => 'men wrestling: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🫯‍👨🏿' => 'men wrestling: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🫯‍👨🏻' => 'men wrestling: dark skin tone, light skin tone',
+    '👨🏿‍🫯‍👨🏼' => 'men wrestling: dark skin tone, medium-light skin tone',
+    '👨🏿‍🫯‍👨🏽' => 'men wrestling: dark skin tone, medium skin tone',
+    '👨🏿‍🫯‍👨🏾' => 'men wrestling: dark skin tone, medium-dark skin tone',
     '👨🏻‍❤‍👨🏻' => 'couple with heart: man, man, light skin tone',
     '👨🏻‍❤‍👨🏼' => 'couple with heart: man, man, light skin tone, medium-light skin tone',
     '👨🏻‍❤‍👨🏽' => 'couple with heart: man, man, light skin tone, medium skin tone',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'couple with heart: man, man, dark skin tone, medium skin tone',
     '👨🏿‍❤‍👨🏾' => 'couple with heart: man, man, dark skin tone, medium-dark skin tone',
     '👨🏿‍❤‍👨🏿' => 'couple with heart: man, man, dark skin tone',
+    '👨🏻‍🐰‍👨🏼' => 'men with bunny ears: light skin tone, medium-light skin tone',
+    '👨🏻‍🐰‍👨🏽' => 'men with bunny ears: light skin tone, medium skin tone',
+    '👨🏻‍🐰‍👨🏾' => 'men with bunny ears: light skin tone, medium-dark skin tone',
+    '👨🏻‍🐰‍👨🏿' => 'men with bunny ears: light skin tone, dark skin tone',
+    '👨🏼‍🐰‍👨🏻' => 'men with bunny ears: medium-light skin tone, light skin tone',
+    '👨🏼‍🐰‍👨🏽' => 'men with bunny ears: medium-light skin tone, medium skin tone',
+    '👨🏼‍🐰‍👨🏾' => 'men with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🐰‍👨🏿' => 'men with bunny ears: medium-light skin tone, dark skin tone',
+    '👨🏽‍🐰‍👨🏻' => 'men with bunny ears: medium skin tone, light skin tone',
+    '👨🏽‍🐰‍👨🏼' => 'men with bunny ears: medium skin tone, medium-light skin tone',
+    '👨🏽‍🐰‍👨🏾' => 'men with bunny ears: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🐰‍👨🏿' => 'men with bunny ears: medium skin tone, dark skin tone',
+    '👨🏾‍🐰‍👨🏻' => 'men with bunny ears: medium-dark skin tone, light skin tone',
+    '👨🏾‍🐰‍👨🏼' => 'men with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🐰‍👨🏽' => 'men with bunny ears: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🐰‍👨🏿' => 'men with bunny ears: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🐰‍👨🏻' => 'men with bunny ears: dark skin tone, light skin tone',
+    '👨🏿‍🐰‍👨🏼' => 'men with bunny ears: dark skin tone, medium-light skin tone',
+    '👨🏿‍🐰‍👨🏽' => 'men with bunny ears: dark skin tone, medium skin tone',
+    '👨🏿‍🐰‍👨🏾' => 'men with bunny ears: dark skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏼' => 'women wrestling: light skin tone, medium-light skin tone',
+    '👩🏻‍🫯‍👩🏽' => 'women wrestling: light skin tone, medium skin tone',
+    '👩🏻‍🫯‍👩🏾' => 'women wrestling: light skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏿' => 'women wrestling: light skin tone, dark skin tone',
+    '👩🏼‍🫯‍👩🏻' => 'women wrestling: medium-light skin tone, light skin tone',
+    '👩🏼‍🫯‍👩🏽' => 'women wrestling: medium-light skin tone, medium skin tone',
+    '👩🏼‍🫯‍👩🏾' => 'women wrestling: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🫯‍👩🏿' => 'women wrestling: medium-light skin tone, dark skin tone',
+    '👩🏽‍🫯‍👩🏻' => 'women wrestling: medium skin tone, light skin tone',
+    '👩🏽‍🫯‍👩🏼' => 'women wrestling: medium skin tone, medium-light skin tone',
+    '👩🏽‍🫯‍👩🏾' => 'women wrestling: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🫯‍👩🏿' => 'women wrestling: medium skin tone, dark skin tone',
+    '👩🏾‍🫯‍👩🏻' => 'women wrestling: medium-dark skin tone, light skin tone',
+    '👩🏾‍🫯‍👩🏼' => 'women wrestling: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🫯‍👩🏽' => 'women wrestling: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🫯‍👩🏿' => 'women wrestling: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🫯‍👩🏻' => 'women wrestling: dark skin tone, light skin tone',
+    '👩🏿‍🫯‍👩🏼' => 'women wrestling: dark skin tone, medium-light skin tone',
+    '👩🏿‍🫯‍👩🏽' => 'women wrestling: dark skin tone, medium skin tone',
+    '👩🏿‍🫯‍👩🏾' => 'women wrestling: dark skin tone, medium-dark skin tone',
     '👩🏻‍❤‍👨🏻' => 'couple with heart: woman, man, light skin tone',
     '👩🏻‍❤‍👨🏼' => 'couple with heart: woman, man, light skin tone, medium-light skin tone',
     '👩🏻‍❤‍👨🏽' => 'couple with heart: woman, man, light skin tone, medium skin tone',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'couple with heart: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍👩🏾' => 'couple with heart: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍👩🏿' => 'couple with heart: woman, woman, dark skin tone',
+    '👩🏻‍🐰‍👩🏼' => 'women with bunny ears: light skin tone, medium-light skin tone',
+    '👩🏻‍🐰‍👩🏽' => 'women with bunny ears: light skin tone, medium skin tone',
+    '👩🏻‍🐰‍👩🏾' => 'women with bunny ears: light skin tone, medium-dark skin tone',
+    '👩🏻‍🐰‍👩🏿' => 'women with bunny ears: light skin tone, dark skin tone',
+    '👩🏼‍🐰‍👩🏻' => 'women with bunny ears: medium-light skin tone, light skin tone',
+    '👩🏼‍🐰‍👩🏽' => 'women with bunny ears: medium-light skin tone, medium skin tone',
+    '👩🏼‍🐰‍👩🏾' => 'women with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🐰‍👩🏿' => 'women with bunny ears: medium-light skin tone, dark skin tone',
+    '👩🏽‍🐰‍👩🏻' => 'women with bunny ears: medium skin tone, light skin tone',
+    '👩🏽‍🐰‍👩🏼' => 'women with bunny ears: medium skin tone, medium-light skin tone',
+    '👩🏽‍🐰‍👩🏾' => 'women with bunny ears: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🐰‍👩🏿' => 'women with bunny ears: medium skin tone, dark skin tone',
+    '👩🏾‍🐰‍👩🏻' => 'women with bunny ears: medium-dark skin tone, light skin tone',
+    '👩🏾‍🐰‍👩🏼' => 'women with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🐰‍👩🏽' => 'women with bunny ears: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🐰‍👩🏿' => 'women with bunny ears: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🐰‍👩🏻' => 'women with bunny ears: dark skin tone, light skin tone',
+    '👩🏿‍🐰‍👩🏼' => 'women with bunny ears: dark skin tone, medium-light skin tone',
+    '👩🏿‍🐰‍👩🏽' => 'women with bunny ears: dark skin tone, medium skin tone',
+    '👩🏿‍🐰‍👩🏾' => 'women with bunny ears: dark skin tone, medium-dark skin tone',
     '🧑🏻‍🤝‍🧑🏻' => 'people holding hands: light skin tone',
     '🧑🏻‍🤝‍🧑🏼' => 'people holding hands: light skin tone, medium-light skin tone',
     '🧑🏻‍🤝‍🧑🏽' => 'people holding hands: light skin tone, medium skin tone',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flag: Scotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flag: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'family: adult, adult, child, child',
-    '🚶🏻‍♀‍➡' => 'woman walking facing right',
-    '🚶🏼‍♀‍➡' => 'woman walking facing right',
-    '🚶🏽‍♀‍➡' => 'woman walking facing right',
-    '🚶🏾‍♀‍➡' => 'woman walking facing right',
-    '🚶🏿‍♀‍➡' => 'woman walking facing right',
-    '🚶🏻‍♂‍➡' => 'man walking facing right',
-    '🚶🏼‍♂‍➡' => 'man walking facing right',
-    '🚶🏽‍♂‍➡' => 'man walking facing right',
-    '🚶🏾‍♂‍➡' => 'man walking facing right',
-    '🚶🏿‍♂‍➡' => 'man walking facing right',
-    '🧎🏻‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏼‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏽‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏾‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏿‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏻‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏼‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏽‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏾‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏿‍♂‍➡' => 'man kneeling facing right',
-    '🧑🏻‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏼‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏽‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏾‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏿‍🦯‍➡' => 'person with white cane facing right',
-    '👨🏻‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏼‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏽‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏾‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏿‍🦯‍➡' => 'man with white cane facing right',
-    '👩🏻‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏼‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏽‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏾‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏿‍🦯‍➡' => 'woman with white cane facing right',
-    '🧑🏻‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏼‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏽‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏾‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏿‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '👨🏻‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏼‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏽‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏾‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏿‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👩🏻‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏼‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏽‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏾‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏿‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨🏻‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏼‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏽‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏾‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏿‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃🏻‍♀‍➡' => 'woman running facing right',
-    '🏃🏼‍♀‍➡' => 'woman running facing right',
-    '🏃🏽‍♀‍➡' => 'woman running facing right',
-    '🏃🏾‍♀‍➡' => 'woman running facing right',
-    '🏃🏿‍♀‍➡' => 'woman running facing right',
-    '🏃🏻‍♂‍➡' => 'man running facing right',
-    '🏃🏼‍♂‍➡' => 'man running facing right',
-    '🏃🏽‍♂‍➡' => 'man running facing right',
-    '🏃🏾‍♂‍➡' => 'man running facing right',
-    '🏃🏿‍♂‍➡' => 'man running facing right',
+    '🚶🏻‍♀‍➡' => 'woman walking: light skin tone, facing right',
+    '🚶🏼‍♀‍➡' => 'woman walking: medium-light skin tone, facing right',
+    '🚶🏽‍♀‍➡' => 'woman walking: medium skin tone, facing right',
+    '🚶🏾‍♀‍➡' => 'woman walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♀‍➡' => 'woman walking: dark skin tone, facing right',
+    '🚶🏻‍♂‍➡' => 'man walking: light skin tone, facing right',
+    '🚶🏼‍♂‍➡' => 'man walking: medium-light skin tone, facing right',
+    '🚶🏽‍♂‍➡' => 'man walking: medium skin tone, facing right',
+    '🚶🏾‍♂‍➡' => 'man walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♂‍➡' => 'man walking: dark skin tone, facing right',
+    '🧎🏻‍♀‍➡' => 'woman kneeling: light skin tone, facing right',
+    '🧎🏼‍♀‍➡' => 'woman kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♀‍➡' => 'woman kneeling: medium skin tone, facing right',
+    '🧎🏾‍♀‍➡' => 'woman kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♀‍➡' => 'woman kneeling: dark skin tone, facing right',
+    '🧎🏻‍♂‍➡' => 'man kneeling: light skin tone, facing right',
+    '🧎🏼‍♂‍➡' => 'man kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♂‍➡' => 'man kneeling: medium skin tone, facing right',
+    '🧎🏾‍♂‍➡' => 'man kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♂‍➡' => 'man kneeling: dark skin tone, facing right',
+    '🧑🏻‍🦯‍➡' => 'person with white cane: light skin tone, facing right',
+    '🧑🏼‍🦯‍➡' => 'person with white cane: medium-light skin tone, facing right',
+    '🧑🏽‍🦯‍➡' => 'person with white cane: medium skin tone, facing right',
+    '🧑🏾‍🦯‍➡' => 'person with white cane: medium-dark skin tone, facing right',
+    '🧑🏿‍🦯‍➡' => 'person with white cane: dark skin tone, facing right',
+    '👨🏻‍🦯‍➡' => 'man with white cane: light skin tone, facing right',
+    '👨🏼‍🦯‍➡' => 'man with white cane: medium-light skin tone, facing right',
+    '👨🏽‍🦯‍➡' => 'man with white cane: medium skin tone, facing right',
+    '👨🏾‍🦯‍➡' => 'man with white cane: medium-dark skin tone, facing right',
+    '👨🏿‍🦯‍➡' => 'man with white cane: dark skin tone, facing right',
+    '👩🏻‍🦯‍➡' => 'woman with white cane: light skin tone, facing right',
+    '👩🏼‍🦯‍➡' => 'woman with white cane: medium-light skin tone, facing right',
+    '👩🏽‍🦯‍➡' => 'woman with white cane: medium skin tone, facing right',
+    '👩🏾‍🦯‍➡' => 'woman with white cane: medium-dark skin tone, facing right',
+    '👩🏿‍🦯‍➡' => 'woman with white cane: dark skin tone, facing right',
+    '🧑🏻‍🦼‍➡' => 'person in motorized wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦼‍➡' => 'person in motorized wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦼‍➡' => 'person in motorized wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦼‍➡' => 'person in motorized wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦼‍➡' => 'person in motorized wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦼‍➡' => 'man in motorized wheelchair: light skin tone, facing right',
+    '👨🏼‍🦼‍➡' => 'man in motorized wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦼‍➡' => 'man in motorized wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦼‍➡' => 'man in motorized wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦼‍➡' => 'man in motorized wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦼‍➡' => 'woman in motorized wheelchair: light skin tone, facing right',
+    '👩🏼‍🦼‍➡' => 'woman in motorized wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦼‍➡' => 'woman in motorized wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦼‍➡' => 'woman in motorized wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦼‍➡' => 'woman in motorized wheelchair: dark skin tone, facing right',
+    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦽‍➡' => 'man in manual wheelchair: light skin tone, facing right',
+    '👨🏼‍🦽‍➡' => 'man in manual wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦽‍➡' => 'man in manual wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦽‍➡' => 'man in manual wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦽‍➡' => 'man in manual wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair: light skin tone, facing right',
+    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair: dark skin tone, facing right',
+    '🏃🏻‍♀‍➡' => 'woman running: light skin tone, facing right',
+    '🏃🏼‍♀‍➡' => 'woman running: medium-light skin tone, facing right',
+    '🏃🏽‍♀‍➡' => 'woman running: medium skin tone, facing right',
+    '🏃🏾‍♀‍➡' => 'woman running: medium-dark skin tone, facing right',
+    '🏃🏿‍♀‍➡' => 'woman running: dark skin tone, facing right',
+    '🏃🏻‍♂‍➡' => 'man running: light skin tone, facing right',
+    '🏃🏼‍♂‍➡' => 'man running: medium-light skin tone, facing right',
+    '🏃🏽‍♂‍➡' => 'man running: medium skin tone, facing right',
+    '🏃🏾‍♂‍➡' => 'man running: medium-dark skin tone, facing right',
+    '🏃🏿‍♂‍➡' => 'man running: dark skin tone, facing right',
     '🫱🏻‍🫲🏼' => 'handshake: light skin tone, medium-light skin tone',
     '🫱🏻‍🫲🏽' => 'handshake: light skin tone, medium skin tone',
     '🫱🏻‍🫲🏾' => 'handshake: light skin tone, medium-dark skin tone',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handshake: dark skin tone, medium-light skin tone',
     '🫱🏿‍🫲🏽' => 'handshake: dark skin tone, medium skin tone',
     '🫱🏿‍🫲🏾' => 'handshake: dark skin tone, medium-dark skin tone',
-    '🚶‍♀‍➡' => 'woman walking facing right',
-    '🚶‍♂‍➡' => 'man walking facing right',
-    '🧎‍♀‍➡' => 'woman kneeling facing right',
-    '🧎‍♂‍➡' => 'man kneeling facing right',
-    '🧑‍🦯‍➡' => 'person with white cane facing right',
-    '👨‍🦯‍➡' => 'man with white cane facing right',
-    '👩‍🦯‍➡' => 'woman with white cane facing right',
-    '🧑‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '👨‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👩‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '🧑‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃‍♀‍➡' => 'woman running facing right',
-    '🏃‍♂‍➡' => 'man running facing right',
+    '🚶‍♀‍➡' => 'woman walking: facing right',
+    '🚶‍♂‍➡' => 'man walking: facing right',
+    '🧎‍♀‍➡' => 'woman kneeling: facing right',
+    '🧎‍♂‍➡' => 'man kneeling: facing right',
+    '🧑‍🦯‍➡' => 'person with white cane: facing right',
+    '👨‍🦯‍➡' => 'man with white cane: facing right',
+    '👩‍🦯‍➡' => 'woman with white cane: facing right',
+    '🧑‍🦼‍➡' => 'person in motorized wheelchair: facing right',
+    '👨‍🦼‍➡' => 'man in motorized wheelchair: facing right',
+    '👩‍🦼‍➡' => 'woman in motorized wheelchair: facing right',
+    '🧑‍🦽‍➡' => 'person in manual wheelchair: facing right',
+    '👨‍🦽‍➡' => 'man in manual wheelchair: facing right',
+    '👩‍🦽‍➡' => 'woman in manual wheelchair: facing right',
+    '🏃‍♀‍➡' => 'woman running: facing right',
+    '🏃‍♂‍➡' => 'man running: facing right',
     '👩‍❤‍👨' => 'couple with heart: woman, man',
     '👨‍❤‍👨' => 'couple with heart: man, man',
     '👩‍❤‍👩' => 'couple with heart: woman, woman',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'person: medium skin tone, bald',
     '🧑🏾‍🦲' => 'person: medium-dark skin tone, bald',
     '🧑🏿‍🦲' => 'person: dark skin tone, bald',
+    '🧑🏻‍🩰' => 'ballet dancer: light skin tone',
+    '🧑🏼‍🩰' => 'ballet dancer: medium-light skin tone',
+    '🧑🏽‍🩰' => 'ballet dancer: medium skin tone',
+    '🧑🏾‍🩰' => 'ballet dancer: medium-dark skin tone',
+    '🧑🏿‍🩰' => 'ballet dancer: dark skin tone',
     '🧔🏻‍♂' => 'man: light skin tone, beard',
     '🧔🏼‍♂' => 'man: medium-light skin tone, beard',
     '🧔🏽‍♂' => 'man: medium skin tone, beard',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'woman walking: medium skin tone',
     '🚶🏾‍♀' => 'woman walking: medium-dark skin tone',
     '🚶🏿‍♀' => 'woman walking: dark skin tone',
-    '🚶🏻‍➡' => 'person walking facing right',
-    '🚶🏼‍➡' => 'person walking facing right',
-    '🚶🏽‍➡' => 'person walking facing right',
-    '🚶🏾‍➡' => 'person walking facing right',
-    '🚶🏿‍➡' => 'person walking facing right',
+    '🚶🏻‍➡' => 'person walking: light skin tone, facing right',
+    '🚶🏼‍➡' => 'person walking: medium-light skin tone, facing right',
+    '🚶🏽‍➡' => 'person walking: medium skin tone, facing right',
+    '🚶🏾‍➡' => 'person walking: medium-dark skin tone, facing right',
+    '🚶🏿‍➡' => 'person walking: dark skin tone, facing right',
     '🧍🏻‍♂' => 'man standing: light skin tone',
     '🧍🏼‍♂' => 'man standing: medium-light skin tone',
     '🧍🏽‍♂' => 'man standing: medium skin tone',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'woman kneeling: medium skin tone',
     '🧎🏾‍♀' => 'woman kneeling: medium-dark skin tone',
     '🧎🏿‍♀' => 'woman kneeling: dark skin tone',
-    '🧎🏻‍➡' => 'person kneeling facing right',
-    '🧎🏼‍➡' => 'person kneeling facing right',
-    '🧎🏽‍➡' => 'person kneeling facing right',
-    '🧎🏾‍➡' => 'person kneeling facing right',
-    '🧎🏿‍➡' => 'person kneeling facing right',
+    '🧎🏻‍➡' => 'person kneeling: light skin tone, facing right',
+    '🧎🏼‍➡' => 'person kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍➡' => 'person kneeling: medium skin tone, facing right',
+    '🧎🏾‍➡' => 'person kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍➡' => 'person kneeling: dark skin tone, facing right',
     '🧑🏻‍🦯' => 'person with white cane: light skin tone',
     '🧑🏼‍🦯' => 'person with white cane: medium-light skin tone',
     '🧑🏽‍🦯' => 'person with white cane: medium skin tone',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'woman running: medium skin tone',
     '🏃🏾‍♀' => 'woman running: medium-dark skin tone',
     '🏃🏿‍♀' => 'woman running: dark skin tone',
-    '🏃🏻‍➡' => 'person running facing right',
-    '🏃🏼‍➡' => 'person running facing right',
-    '🏃🏽‍➡' => 'person running facing right',
-    '🏃🏾‍➡' => 'person running facing right',
-    '🏃🏿‍➡' => 'person running facing right',
+    '🏃🏻‍➡' => 'person running: light skin tone, facing right',
+    '🏃🏼‍➡' => 'person running: medium-light skin tone, facing right',
+    '🏃🏽‍➡' => 'person running: medium skin tone, facing right',
+    '🏃🏾‍➡' => 'person running: medium-dark skin tone, facing right',
+    '🏃🏿‍➡' => 'person running: dark skin tone, facing right',
+    '👯🏻‍♀' => 'women with bunny ears: light skin tone',
+    '👯🏼‍♀' => 'women with bunny ears: medium-light skin tone',
+    '👯🏽‍♀' => 'women with bunny ears: medium skin tone',
+    '👯🏾‍♀' => 'women with bunny ears: medium-dark skin tone',
+    '👯🏿‍♀' => 'women with bunny ears: dark skin tone',
+    '👯🏻‍♂' => 'men with bunny ears: light skin tone',
+    '👯🏼‍♂' => 'men with bunny ears: medium-light skin tone',
+    '👯🏽‍♂' => 'men with bunny ears: medium skin tone',
+    '👯🏾‍♂' => 'men with bunny ears: medium-dark skin tone',
+    '👯🏿‍♂' => 'men with bunny ears: dark skin tone',
     '🧖🏻‍♂' => 'man in steamy room: light skin tone',
     '🧖🏼‍♂' => 'man in steamy room: medium-light skin tone',
     '🧖🏽‍♂' => 'man in steamy room: medium skin tone',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'woman cartwheeling: medium skin tone',
     '🤸🏾‍♀' => 'woman cartwheeling: medium-dark skin tone',
     '🤸🏿‍♀' => 'woman cartwheeling: dark skin tone',
+    '🤼🏻‍♀' => 'women wrestling: light skin tone',
+    '🤼🏼‍♀' => 'women wrestling: medium-light skin tone',
+    '🤼🏽‍♀' => 'women wrestling: medium skin tone',
+    '🤼🏾‍♀' => 'women wrestling: medium-dark skin tone',
+    '🤼🏿‍♀' => 'women wrestling: dark skin tone',
+    '🤼🏻‍♂' => 'men wrestling: light skin tone',
+    '🤼🏼‍♂' => 'men wrestling: medium-light skin tone',
+    '🤼🏽‍♂' => 'men wrestling: medium skin tone',
+    '🤼🏾‍♂' => 'men wrestling: medium-dark skin tone',
+    '🤼🏿‍♂' => 'men wrestling: dark skin tone',
     '🤽🏻‍♂' => 'man playing water polo: light skin tone',
     '🤽🏼‍♂' => 'man playing water polo: medium-light skin tone',
     '🤽🏽‍♂' => 'man playing water polo: medium skin tone',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'woman: curly hair',
     '👩‍🦳' => 'woman: white hair',
     '👩‍🦲' => 'woman: bald',
-    '🚶‍➡' => 'person walking facing right',
-    '🧎‍➡' => 'person kneeling facing right',
-    '🏃‍➡' => 'person running facing right',
+    '🚶‍➡' => 'person walking: facing right',
+    '🧎‍➡' => 'person kneeling: facing right',
+    '🏃‍➡' => 'person running: facing right',
     '👨‍👦' => 'family: man, boy',
     '👨‍👧' => 'family: man, girl',
     '👩‍👦' => 'family: woman, boy',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'woman in manual wheelchair',
     '🏃‍♂' => 'man running',
     '🏃‍♀' => 'woman running',
+    '🧑‍🩰' => 'ballet dancer',
     '👯‍♂' => 'men with bunny ears',
     '👯‍♀' => 'women with bunny ears',
     '🧖‍♂' => 'man in steamy room',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'person in suit levitating: medium skin tone',
     '🕴🏾' => 'person in suit levitating: medium-dark skin tone',
     '🕴🏿' => 'person in suit levitating: dark skin tone',
+    '👯🏻' => 'people with bunny ears: light skin tone',
+    '👯🏼' => 'people with bunny ears: medium-light skin tone',
+    '👯🏽' => 'people with bunny ears: medium skin tone',
+    '👯🏾' => 'people with bunny ears: medium-dark skin tone',
+    '👯🏿' => 'people with bunny ears: dark skin tone',
     '🧖🏻' => 'person in steamy room: light skin tone',
     '🧖🏼' => 'person in steamy room: medium-light skin tone',
     '🧖🏽' => 'person in steamy room: medium skin tone',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'person cartwheeling: medium skin tone',
     '🤸🏾' => 'person cartwheeling: medium-dark skin tone',
     '🤸🏿' => 'person cartwheeling: dark skin tone',
+    '🤼🏻' => 'people wrestling: light skin tone',
+    '🤼🏼' => 'people wrestling: medium-light skin tone',
+    '🤼🏽' => 'people wrestling: medium skin tone',
+    '🤼🏾' => 'people wrestling: medium-dark skin tone',
+    '🤼🏿' => 'people wrestling: dark skin tone',
     '🤽🏻' => 'person playing water polo: light skin tone',
     '🤽🏼' => 'person playing water polo: medium-light skin tone',
     '🤽🏽' => 'person playing water polo: medium skin tone',
@@ -2391,13 +2547,6 @@
     '🏽' => 'medium skin tone',
     '🏾' => 'medium-dark skin tone',
     '🏿' => 'dark skin tone',
-    '🪉' => 'harp',
-    '🪏' => 'shovel',
-    '🪾' => 'leafless tree',
-    '🫆' => 'fingerprint',
-    '🫜' => 'root vegetable',
-    '🫟' => 'splatter',
-    '🫩' => 'face with bags under eyes',
     '😀' => 'grinning face',
     '😃' => 'grinning face with big eyes',
     '😄' => 'grinning face with smiling eyes',
@@ -2451,6 +2600,7 @@
     '😪' => 'sleepy face',
     '🤤' => 'drooling face',
     '😴' => 'sleeping face',
+    '🫩' => 'face with bags under eyes',
     '😷' => 'face with medical mask',
     '🤒' => 'face with thermometer',
     '🤕' => 'face with head-bandage',
@@ -2477,6 +2627,7 @@
     '😯' => 'hushed face',
     '😲' => 'astonished face',
     '😳' => 'flushed face',
+    '🫪' => 'distorted face',
     '🥺' => 'pleading face',
     '🥹' => 'face holding back tears',
     '😦' => 'frowning face with open mouth',
@@ -2548,6 +2699,7 @@
     '💋' => 'kiss mark',
     '💯' => 'hundred points',
     '💢' => 'anger symbol',
+    '🫯' => 'fight cloud',
     '💥' => 'collision',
     '💫' => 'dizzy',
     '💦' => 'sweat droplets',
@@ -2671,6 +2823,7 @@
     '🧞' => 'genie',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'hairy creature',
     '💆' => 'person getting massage',
     '💇' => 'person getting haircut',
     '🚶' => 'person walking',
@@ -2714,6 +2867,7 @@
     '🫂' => 'people hugging',
     '👪' => 'family',
     '👣' => 'footprints',
+    '🫆' => 'fingerprint',
     '🦰' => 'red hair',
     '🦱' => 'curly hair',
     '🦳' => 'white hair',
@@ -2813,6 +2967,7 @@
     '🐳' => 'spouting whale',
     '🐋' => 'whale',
     '🐬' => 'dolphin',
+    '🫍' => 'orca',
     '🦭' => 'seal',
     '🐟' => 'fish',
     '🐠' => 'tropical fish',
@@ -2822,6 +2977,11 @@
     '🐚' => 'spiral shell',
     '🪸' => 'coral',
     '🪼' => 'jellyfish',
+    '🦀' => 'crab',
+    '🦞' => 'lobster',
+    '🦐' => 'shrimp',
+    '🦑' => 'squid',
+    '🦪' => 'oyster',
     '🐌' => 'snail',
     '🦋' => 'butterfly',
     '🐛' => 'bug',
@@ -2866,6 +3026,7 @@
     '🪹' => 'empty nest',
     '🪺' => 'nest with eggs',
     '🍄' => 'mushroom',
+    '🪾' => 'leafless tree',
     '🍇' => 'grapes',
     '🍈' => 'melon',
     '🍉' => 'watermelon',
@@ -2902,6 +3063,7 @@
     '🌰' => 'chestnut',
     '🫚' => 'ginger root',
     '🫛' => 'pea pod',
+    '🫜' => 'root vegetable',
     '🍞' => 'bread',
     '🥐' => 'croissant',
     '🥖' => 'baguette bread',
@@ -2953,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'fortune cookie',
     '🥡' => 'takeout box',
-    '🦀' => 'crab',
-    '🦞' => 'lobster',
-    '🦐' => 'shrimp',
-    '🦑' => 'squid',
-    '🦪' => 'oyster',
     '🍦' => 'soft ice cream',
     '🍧' => 'shaved ice',
     '🍨' => 'ice cream',
@@ -3008,6 +3165,7 @@
     '🧭' => 'compass',
     '🏔' => 'snow-capped mountain',
     '⛰' => 'mountain',
+    '🛘' => 'landslide',
     '🌋' => 'volcano',
     '🗻' => 'mount fuji',
     '🏕' => 'camping',
@@ -3368,16 +3526,18 @@
     '🎧' => 'headphone',
     '📻' => 'radio',
     '🎷' => 'saxophone',
+    '🎺' => 'trumpet',
+    '🪊' => 'trombone',
     '🪗' => 'accordion',
     '🎸' => 'guitar',
     '🎹' => 'musical keyboard',
-    '🎺' => 'trumpet',
     '🎻' => 'violin',
     '🪕' => 'banjo',
     '🥁' => 'drum',
     '🪘' => 'long drum',
     '🪇' => 'maracas',
     '🪈' => 'flute',
+    '🪉' => 'harp',
     '📱' => 'mobile phone',
     '📲' => 'mobile phone with arrow',
     '☎' => 'telephone',
@@ -3431,8 +3591,9 @@
     '📑' => 'bookmark tabs',
     '🔖' => 'bookmark',
     '🏷' => 'label',
-    '💰' => 'money bag',
     '🪙' => 'coin',
+    '💰' => 'money bag',
+    '🪎' => 'treasure chest',
     '💴' => 'yen banknote',
     '💵' => 'dollar banknote',
     '💶' => 'euro banknote',
@@ -3515,6 +3676,7 @@
     '🧰' => 'toolbox',
     '🧲' => 'magnet',
     '🪜' => 'ladder',
+    '🪏' => 'shovel',
     '⚗' => 'alembic',
     '🧪' => 'test tube',
     '🧫' => 'petri dish',
@@ -3698,6 +3860,7 @@
     '✴' => 'eight-pointed star',
     '❇' => 'sparkle',
     '™' => 'trade mark',
+    '🫟' => 'splatter',
     '🔠' => 'input latin uppercase',
     '🔡' => 'input latin lowercase',
     '🔢' => 'input numbers',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-en.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kiss: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍💋‍👩🏾' => 'kiss: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍💋‍👩🏿' => 'kiss: woman, woman, dark skin tone',
+    '🧑🏻‍🫯‍🧑🏼' => 'people wrestling: light skin tone, medium-light skin tone',
+    '🧑🏻‍🫯‍🧑🏽' => 'people wrestling: light skin tone, medium skin tone',
+    '🧑🏻‍🫯‍🧑🏾' => 'people wrestling: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🫯‍🧑🏿' => 'people wrestling: light skin tone, dark skin tone',
+    '🧑🏼‍🫯‍🧑🏻' => 'people wrestling: medium-light skin tone, light skin tone',
+    '🧑🏼‍🫯‍🧑🏽' => 'people wrestling: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🫯‍🧑🏾' => 'people wrestling: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🫯‍🧑🏿' => 'people wrestling: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🫯‍🧑🏻' => 'people wrestling: medium skin tone, light skin tone',
+    '🧑🏽‍🫯‍🧑🏼' => 'people wrestling: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🫯‍🧑🏾' => 'people wrestling: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🫯‍🧑🏿' => 'people wrestling: medium skin tone, dark skin tone',
+    '🧑🏾‍🫯‍🧑🏻' => 'people wrestling: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🫯‍🧑🏼' => 'people wrestling: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🫯‍🧑🏽' => 'people wrestling: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🫯‍🧑🏿' => 'people wrestling: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🫯‍🧑🏻' => 'people wrestling: dark skin tone, light skin tone',
+    '🧑🏿‍🫯‍🧑🏼' => 'people wrestling: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🫯‍🧑🏽' => 'people wrestling: dark skin tone, medium skin tone',
+    '🧑🏿‍🫯‍🧑🏾' => 'people wrestling: dark skin tone, medium-dark skin tone',
     '🧑🏻‍❤‍🧑🏼' => 'couple with heart: person, person, light skin tone, medium-light skin tone',
     '🧑🏻‍❤‍🧑🏽' => 'couple with heart: person, person, light skin tone, medium skin tone',
     '🧑🏻‍❤‍🧑🏾' => 'couple with heart: person, person, light skin tone, medium-dark skin tone',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'couple with heart: person, person, dark skin tone, medium-light skin tone',
     '🧑🏿‍❤‍🧑🏽' => 'couple with heart: person, person, dark skin tone, medium skin tone',
     '🧑🏿‍❤‍🧑🏾' => 'couple with heart: person, person, dark skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏼' => 'people with bunny ears: light skin tone, medium-light skin tone',
+    '🧑🏻‍🐰‍🧑🏽' => 'people with bunny ears: light skin tone, medium skin tone',
+    '🧑🏻‍🐰‍🧑🏾' => 'people with bunny ears: light skin tone, medium-dark skin tone',
+    '🧑🏻‍🐰‍🧑🏿' => 'people with bunny ears: light skin tone, dark skin tone',
+    '🧑🏼‍🐰‍🧑🏻' => 'people with bunny ears: medium-light skin tone, light skin tone',
+    '🧑🏼‍🐰‍🧑🏽' => 'people with bunny ears: medium-light skin tone, medium skin tone',
+    '🧑🏼‍🐰‍🧑🏾' => 'people with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '🧑🏼‍🐰‍🧑🏿' => 'people with bunny ears: medium-light skin tone, dark skin tone',
+    '🧑🏽‍🐰‍🧑🏻' => 'people with bunny ears: medium skin tone, light skin tone',
+    '🧑🏽‍🐰‍🧑🏼' => 'people with bunny ears: medium skin tone, medium-light skin tone',
+    '🧑🏽‍🐰‍🧑🏾' => 'people with bunny ears: medium skin tone, medium-dark skin tone',
+    '🧑🏽‍🐰‍🧑🏿' => 'people with bunny ears: medium skin tone, dark skin tone',
+    '🧑🏾‍🐰‍🧑🏻' => 'people with bunny ears: medium-dark skin tone, light skin tone',
+    '🧑🏾‍🐰‍🧑🏼' => 'people with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '🧑🏾‍🐰‍🧑🏽' => 'people with bunny ears: medium-dark skin tone, medium skin tone',
+    '🧑🏾‍🐰‍🧑🏿' => 'people with bunny ears: medium-dark skin tone, dark skin tone',
+    '🧑🏿‍🐰‍🧑🏻' => 'people with bunny ears: dark skin tone, light skin tone',
+    '🧑🏿‍🐰‍🧑🏼' => 'people with bunny ears: dark skin tone, medium-light skin tone',
+    '🧑🏿‍🐰‍🧑🏽' => 'people with bunny ears: dark skin tone, medium skin tone',
+    '🧑🏿‍🐰‍🧑🏾' => 'people with bunny ears: dark skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏼' => 'men wrestling: light skin tone, medium-light skin tone',
+    '👨🏻‍🫯‍👨🏽' => 'men wrestling: light skin tone, medium skin tone',
+    '👨🏻‍🫯‍👨🏾' => 'men wrestling: light skin tone, medium-dark skin tone',
+    '👨🏻‍🫯‍👨🏿' => 'men wrestling: light skin tone, dark skin tone',
+    '👨🏼‍🫯‍👨🏻' => 'men wrestling: medium-light skin tone, light skin tone',
+    '👨🏼‍🫯‍👨🏽' => 'men wrestling: medium-light skin tone, medium skin tone',
+    '👨🏼‍🫯‍👨🏾' => 'men wrestling: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🫯‍👨🏿' => 'men wrestling: medium-light skin tone, dark skin tone',
+    '👨🏽‍🫯‍👨🏻' => 'men wrestling: medium skin tone, light skin tone',
+    '👨🏽‍🫯‍👨🏼' => 'men wrestling: medium skin tone, medium-light skin tone',
+    '👨🏽‍🫯‍👨🏾' => 'men wrestling: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🫯‍👨🏿' => 'men wrestling: medium skin tone, dark skin tone',
+    '👨🏾‍🫯‍👨🏻' => 'men wrestling: medium-dark skin tone, light skin tone',
+    '👨🏾‍🫯‍👨🏼' => 'men wrestling: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🫯‍👨🏽' => 'men wrestling: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🫯‍👨🏿' => 'men wrestling: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🫯‍👨🏻' => 'men wrestling: dark skin tone, light skin tone',
+    '👨🏿‍🫯‍👨🏼' => 'men wrestling: dark skin tone, medium-light skin tone',
+    '👨🏿‍🫯‍👨🏽' => 'men wrestling: dark skin tone, medium skin tone',
+    '👨🏿‍🫯‍👨🏾' => 'men wrestling: dark skin tone, medium-dark skin tone',
     '👨🏻‍❤‍👨🏻' => 'couple with heart: man, man, light skin tone',
     '👨🏻‍❤‍👨🏼' => 'couple with heart: man, man, light skin tone, medium-light skin tone',
     '👨🏻‍❤‍👨🏽' => 'couple with heart: man, man, light skin tone, medium skin tone',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'couple with heart: man, man, dark skin tone, medium skin tone',
     '👨🏿‍❤‍👨🏾' => 'couple with heart: man, man, dark skin tone, medium-dark skin tone',
     '👨🏿‍❤‍👨🏿' => 'couple with heart: man, man, dark skin tone',
+    '👨🏻‍🐰‍👨🏼' => 'men with bunny ears: light skin tone, medium-light skin tone',
+    '👨🏻‍🐰‍👨🏽' => 'men with bunny ears: light skin tone, medium skin tone',
+    '👨🏻‍🐰‍👨🏾' => 'men with bunny ears: light skin tone, medium-dark skin tone',
+    '👨🏻‍🐰‍👨🏿' => 'men with bunny ears: light skin tone, dark skin tone',
+    '👨🏼‍🐰‍👨🏻' => 'men with bunny ears: medium-light skin tone, light skin tone',
+    '👨🏼‍🐰‍👨🏽' => 'men with bunny ears: medium-light skin tone, medium skin tone',
+    '👨🏼‍🐰‍👨🏾' => 'men with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👨🏼‍🐰‍👨🏿' => 'men with bunny ears: medium-light skin tone, dark skin tone',
+    '👨🏽‍🐰‍👨🏻' => 'men with bunny ears: medium skin tone, light skin tone',
+    '👨🏽‍🐰‍👨🏼' => 'men with bunny ears: medium skin tone, medium-light skin tone',
+    '👨🏽‍🐰‍👨🏾' => 'men with bunny ears: medium skin tone, medium-dark skin tone',
+    '👨🏽‍🐰‍👨🏿' => 'men with bunny ears: medium skin tone, dark skin tone',
+    '👨🏾‍🐰‍👨🏻' => 'men with bunny ears: medium-dark skin tone, light skin tone',
+    '👨🏾‍🐰‍👨🏼' => 'men with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👨🏾‍🐰‍👨🏽' => 'men with bunny ears: medium-dark skin tone, medium skin tone',
+    '👨🏾‍🐰‍👨🏿' => 'men with bunny ears: medium-dark skin tone, dark skin tone',
+    '👨🏿‍🐰‍👨🏻' => 'men with bunny ears: dark skin tone, light skin tone',
+    '👨🏿‍🐰‍👨🏼' => 'men with bunny ears: dark skin tone, medium-light skin tone',
+    '👨🏿‍🐰‍👨🏽' => 'men with bunny ears: dark skin tone, medium skin tone',
+    '👨🏿‍🐰‍👨🏾' => 'men with bunny ears: dark skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏼' => 'women wrestling: light skin tone, medium-light skin tone',
+    '👩🏻‍🫯‍👩🏽' => 'women wrestling: light skin tone, medium skin tone',
+    '👩🏻‍🫯‍👩🏾' => 'women wrestling: light skin tone, medium-dark skin tone',
+    '👩🏻‍🫯‍👩🏿' => 'women wrestling: light skin tone, dark skin tone',
+    '👩🏼‍🫯‍👩🏻' => 'women wrestling: medium-light skin tone, light skin tone',
+    '👩🏼‍🫯‍👩🏽' => 'women wrestling: medium-light skin tone, medium skin tone',
+    '👩🏼‍🫯‍👩🏾' => 'women wrestling: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🫯‍👩🏿' => 'women wrestling: medium-light skin tone, dark skin tone',
+    '👩🏽‍🫯‍👩🏻' => 'women wrestling: medium skin tone, light skin tone',
+    '👩🏽‍🫯‍👩🏼' => 'women wrestling: medium skin tone, medium-light skin tone',
+    '👩🏽‍🫯‍👩🏾' => 'women wrestling: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🫯‍👩🏿' => 'women wrestling: medium skin tone, dark skin tone',
+    '👩🏾‍🫯‍👩🏻' => 'women wrestling: medium-dark skin tone, light skin tone',
+    '👩🏾‍🫯‍👩🏼' => 'women wrestling: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🫯‍👩🏽' => 'women wrestling: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🫯‍👩🏿' => 'women wrestling: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🫯‍👩🏻' => 'women wrestling: dark skin tone, light skin tone',
+    '👩🏿‍🫯‍👩🏼' => 'women wrestling: dark skin tone, medium-light skin tone',
+    '👩🏿‍🫯‍👩🏽' => 'women wrestling: dark skin tone, medium skin tone',
+    '👩🏿‍🫯‍👩🏾' => 'women wrestling: dark skin tone, medium-dark skin tone',
     '👩🏻‍❤‍👨🏻' => 'couple with heart: woman, man, light skin tone',
     '👩🏻‍❤‍👨🏼' => 'couple with heart: woman, man, light skin tone, medium-light skin tone',
     '👩🏻‍❤‍👨🏽' => 'couple with heart: woman, man, light skin tone, medium skin tone',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'couple with heart: woman, woman, dark skin tone, medium skin tone',
     '👩🏿‍❤‍👩🏾' => 'couple with heart: woman, woman, dark skin tone, medium-dark skin tone',
     '👩🏿‍❤‍👩🏿' => 'couple with heart: woman, woman, dark skin tone',
+    '👩🏻‍🐰‍👩🏼' => 'women with bunny ears: light skin tone, medium-light skin tone',
+    '👩🏻‍🐰‍👩🏽' => 'women with bunny ears: light skin tone, medium skin tone',
+    '👩🏻‍🐰‍👩🏾' => 'women with bunny ears: light skin tone, medium-dark skin tone',
+    '👩🏻‍🐰‍👩🏿' => 'women with bunny ears: light skin tone, dark skin tone',
+    '👩🏼‍🐰‍👩🏻' => 'women with bunny ears: medium-light skin tone, light skin tone',
+    '👩🏼‍🐰‍👩🏽' => 'women with bunny ears: medium-light skin tone, medium skin tone',
+    '👩🏼‍🐰‍👩🏾' => 'women with bunny ears: medium-light skin tone, medium-dark skin tone',
+    '👩🏼‍🐰‍👩🏿' => 'women with bunny ears: medium-light skin tone, dark skin tone',
+    '👩🏽‍🐰‍👩🏻' => 'women with bunny ears: medium skin tone, light skin tone',
+    '👩🏽‍🐰‍👩🏼' => 'women with bunny ears: medium skin tone, medium-light skin tone',
+    '👩🏽‍🐰‍👩🏾' => 'women with bunny ears: medium skin tone, medium-dark skin tone',
+    '👩🏽‍🐰‍👩🏿' => 'women with bunny ears: medium skin tone, dark skin tone',
+    '👩🏾‍🐰‍👩🏻' => 'women with bunny ears: medium-dark skin tone, light skin tone',
+    '👩🏾‍🐰‍👩🏼' => 'women with bunny ears: medium-dark skin tone, medium-light skin tone',
+    '👩🏾‍🐰‍👩🏽' => 'women with bunny ears: medium-dark skin tone, medium skin tone',
+    '👩🏾‍🐰‍👩🏿' => 'women with bunny ears: medium-dark skin tone, dark skin tone',
+    '👩🏿‍🐰‍👩🏻' => 'women with bunny ears: dark skin tone, light skin tone',
+    '👩🏿‍🐰‍👩🏼' => 'women with bunny ears: dark skin tone, medium-light skin tone',
+    '👩🏿‍🐰‍👩🏽' => 'women with bunny ears: dark skin tone, medium skin tone',
+    '👩🏿‍🐰‍👩🏾' => 'women with bunny ears: dark skin tone, medium-dark skin tone',
     '🧑🏻‍🤝‍🧑🏻' => 'people holding hands: light skin tone',
     '🧑🏻‍🤝‍🧑🏼' => 'people holding hands: light skin tone, medium-light skin tone',
     '🧑🏻‍🤝‍🧑🏽' => 'people holding hands: light skin tone, medium skin tone',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flag: Scotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flag: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'family: adult, adult, child, child',
-    '🚶🏻‍♀‍➡' => 'woman walking facing right',
-    '🚶🏼‍♀‍➡' => 'woman walking facing right',
-    '🚶🏽‍♀‍➡' => 'woman walking facing right',
-    '🚶🏾‍♀‍➡' => 'woman walking facing right',
-    '🚶🏿‍♀‍➡' => 'woman walking facing right',
-    '🚶🏻‍♂‍➡' => 'man walking facing right',
-    '🚶🏼‍♂‍➡' => 'man walking facing right',
-    '🚶🏽‍♂‍➡' => 'man walking facing right',
-    '🚶🏾‍♂‍➡' => 'man walking facing right',
-    '🚶🏿‍♂‍➡' => 'man walking facing right',
-    '🧎🏻‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏼‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏽‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏾‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏿‍♀‍➡' => 'woman kneeling facing right',
-    '🧎🏻‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏼‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏽‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏾‍♂‍➡' => 'man kneeling facing right',
-    '🧎🏿‍♂‍➡' => 'man kneeling facing right',
-    '🧑🏻‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏼‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏽‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏾‍🦯‍➡' => 'person with white cane facing right',
-    '🧑🏿‍🦯‍➡' => 'person with white cane facing right',
-    '👨🏻‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏼‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏽‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏾‍🦯‍➡' => 'man with white cane facing right',
-    '👨🏿‍🦯‍➡' => 'man with white cane facing right',
-    '👩🏻‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏼‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏽‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏾‍🦯‍➡' => 'woman with white cane facing right',
-    '👩🏿‍🦯‍➡' => 'woman with white cane facing right',
-    '🧑🏻‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏼‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏽‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏾‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '🧑🏿‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '👨🏻‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏼‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏽‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏾‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👨🏿‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👩🏻‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏼‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏽‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏾‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '👩🏿‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨🏻‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏼‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏽‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏾‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👨🏿‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃🏻‍♀‍➡' => 'woman running facing right',
-    '🏃🏼‍♀‍➡' => 'woman running facing right',
-    '🏃🏽‍♀‍➡' => 'woman running facing right',
-    '🏃🏾‍♀‍➡' => 'woman running facing right',
-    '🏃🏿‍♀‍➡' => 'woman running facing right',
-    '🏃🏻‍♂‍➡' => 'man running facing right',
-    '🏃🏼‍♂‍➡' => 'man running facing right',
-    '🏃🏽‍♂‍➡' => 'man running facing right',
-    '🏃🏾‍♂‍➡' => 'man running facing right',
-    '🏃🏿‍♂‍➡' => 'man running facing right',
+    '🚶🏻‍♀‍➡' => 'woman walking: light skin tone, facing right',
+    '🚶🏼‍♀‍➡' => 'woman walking: medium-light skin tone, facing right',
+    '🚶🏽‍♀‍➡' => 'woman walking: medium skin tone, facing right',
+    '🚶🏾‍♀‍➡' => 'woman walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♀‍➡' => 'woman walking: dark skin tone, facing right',
+    '🚶🏻‍♂‍➡' => 'man walking: light skin tone, facing right',
+    '🚶🏼‍♂‍➡' => 'man walking: medium-light skin tone, facing right',
+    '🚶🏽‍♂‍➡' => 'man walking: medium skin tone, facing right',
+    '🚶🏾‍♂‍➡' => 'man walking: medium-dark skin tone, facing right',
+    '🚶🏿‍♂‍➡' => 'man walking: dark skin tone, facing right',
+    '🧎🏻‍♀‍➡' => 'woman kneeling: light skin tone, facing right',
+    '🧎🏼‍♀‍➡' => 'woman kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♀‍➡' => 'woman kneeling: medium skin tone, facing right',
+    '🧎🏾‍♀‍➡' => 'woman kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♀‍➡' => 'woman kneeling: dark skin tone, facing right',
+    '🧎🏻‍♂‍➡' => 'man kneeling: light skin tone, facing right',
+    '🧎🏼‍♂‍➡' => 'man kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍♂‍➡' => 'man kneeling: medium skin tone, facing right',
+    '🧎🏾‍♂‍➡' => 'man kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍♂‍➡' => 'man kneeling: dark skin tone, facing right',
+    '🧑🏻‍🦯‍➡' => 'person with white cane: light skin tone, facing right',
+    '🧑🏼‍🦯‍➡' => 'person with white cane: medium-light skin tone, facing right',
+    '🧑🏽‍🦯‍➡' => 'person with white cane: medium skin tone, facing right',
+    '🧑🏾‍🦯‍➡' => 'person with white cane: medium-dark skin tone, facing right',
+    '🧑🏿‍🦯‍➡' => 'person with white cane: dark skin tone, facing right',
+    '👨🏻‍🦯‍➡' => 'man with white cane: light skin tone, facing right',
+    '👨🏼‍🦯‍➡' => 'man with white cane: medium-light skin tone, facing right',
+    '👨🏽‍🦯‍➡' => 'man with white cane: medium skin tone, facing right',
+    '👨🏾‍🦯‍➡' => 'man with white cane: medium-dark skin tone, facing right',
+    '👨🏿‍🦯‍➡' => 'man with white cane: dark skin tone, facing right',
+    '👩🏻‍🦯‍➡' => 'woman with white cane: light skin tone, facing right',
+    '👩🏼‍🦯‍➡' => 'woman with white cane: medium-light skin tone, facing right',
+    '👩🏽‍🦯‍➡' => 'woman with white cane: medium skin tone, facing right',
+    '👩🏾‍🦯‍➡' => 'woman with white cane: medium-dark skin tone, facing right',
+    '👩🏿‍🦯‍➡' => 'woman with white cane: dark skin tone, facing right',
+    '🧑🏻‍🦼‍➡' => 'person in motorized wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦼‍➡' => 'person in motorized wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦼‍➡' => 'person in motorized wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦼‍➡' => 'person in motorized wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦼‍➡' => 'person in motorized wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦼‍➡' => 'man in motorized wheelchair: light skin tone, facing right',
+    '👨🏼‍🦼‍➡' => 'man in motorized wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦼‍➡' => 'man in motorized wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦼‍➡' => 'man in motorized wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦼‍➡' => 'man in motorized wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦼‍➡' => 'woman in motorized wheelchair: light skin tone, facing right',
+    '👩🏼‍🦼‍➡' => 'woman in motorized wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦼‍➡' => 'woman in motorized wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦼‍➡' => 'woman in motorized wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦼‍➡' => 'woman in motorized wheelchair: dark skin tone, facing right',
+    '🧑🏻‍🦽‍➡' => 'person in manual wheelchair: light skin tone, facing right',
+    '🧑🏼‍🦽‍➡' => 'person in manual wheelchair: medium-light skin tone, facing right',
+    '🧑🏽‍🦽‍➡' => 'person in manual wheelchair: medium skin tone, facing right',
+    '🧑🏾‍🦽‍➡' => 'person in manual wheelchair: medium-dark skin tone, facing right',
+    '🧑🏿‍🦽‍➡' => 'person in manual wheelchair: dark skin tone, facing right',
+    '👨🏻‍🦽‍➡' => 'man in manual wheelchair: light skin tone, facing right',
+    '👨🏼‍🦽‍➡' => 'man in manual wheelchair: medium-light skin tone, facing right',
+    '👨🏽‍🦽‍➡' => 'man in manual wheelchair: medium skin tone, facing right',
+    '👨🏾‍🦽‍➡' => 'man in manual wheelchair: medium-dark skin tone, facing right',
+    '👨🏿‍🦽‍➡' => 'man in manual wheelchair: dark skin tone, facing right',
+    '👩🏻‍🦽‍➡' => 'woman in manual wheelchair: light skin tone, facing right',
+    '👩🏼‍🦽‍➡' => 'woman in manual wheelchair: medium-light skin tone, facing right',
+    '👩🏽‍🦽‍➡' => 'woman in manual wheelchair: medium skin tone, facing right',
+    '👩🏾‍🦽‍➡' => 'woman in manual wheelchair: medium-dark skin tone, facing right',
+    '👩🏿‍🦽‍➡' => 'woman in manual wheelchair: dark skin tone, facing right',
+    '🏃🏻‍♀‍➡' => 'woman running: light skin tone, facing right',
+    '🏃🏼‍♀‍➡' => 'woman running: medium-light skin tone, facing right',
+    '🏃🏽‍♀‍➡' => 'woman running: medium skin tone, facing right',
+    '🏃🏾‍♀‍➡' => 'woman running: medium-dark skin tone, facing right',
+    '🏃🏿‍♀‍➡' => 'woman running: dark skin tone, facing right',
+    '🏃🏻‍♂‍➡' => 'man running: light skin tone, facing right',
+    '🏃🏼‍♂‍➡' => 'man running: medium-light skin tone, facing right',
+    '🏃🏽‍♂‍➡' => 'man running: medium skin tone, facing right',
+    '🏃🏾‍♂‍➡' => 'man running: medium-dark skin tone, facing right',
+    '🏃🏿‍♂‍➡' => 'man running: dark skin tone, facing right',
     '🫱🏻‍🫲🏼' => 'handshake: light skin tone, medium-light skin tone',
     '🫱🏻‍🫲🏽' => 'handshake: light skin tone, medium skin tone',
     '🫱🏻‍🫲🏾' => 'handshake: light skin tone, medium-dark skin tone',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handshake: dark skin tone, medium-light skin tone',
     '🫱🏿‍🫲🏽' => 'handshake: dark skin tone, medium skin tone',
     '🫱🏿‍🫲🏾' => 'handshake: dark skin tone, medium-dark skin tone',
-    '🚶‍♀‍➡' => 'woman walking facing right',
-    '🚶‍♂‍➡' => 'man walking facing right',
-    '🧎‍♀‍➡' => 'woman kneeling facing right',
-    '🧎‍♂‍➡' => 'man kneeling facing right',
-    '🧑‍🦯‍➡' => 'person with white cane facing right',
-    '👨‍🦯‍➡' => 'man with white cane facing right',
-    '👩‍🦯‍➡' => 'woman with white cane facing right',
-    '🧑‍🦼‍➡' => 'person in motorized wheelchair facing right',
-    '👨‍🦼‍➡' => 'man in motorized wheelchair facing right',
-    '👩‍🦼‍➡' => 'woman in motorized wheelchair facing right',
-    '🧑‍🦽‍➡' => 'person in manual wheelchair facing right',
-    '👨‍🦽‍➡' => 'man in manual wheelchair facing right',
-    '👩‍🦽‍➡' => 'woman in manual wheelchair facing right',
-    '🏃‍♀‍➡' => 'woman running facing right',
-    '🏃‍♂‍➡' => 'man running facing right',
+    '🚶‍♀‍➡' => 'woman walking: facing right',
+    '🚶‍♂‍➡' => 'man walking: facing right',
+    '🧎‍♀‍➡' => 'woman kneeling: facing right',
+    '🧎‍♂‍➡' => 'man kneeling: facing right',
+    '🧑‍🦯‍➡' => 'person with white cane: facing right',
+    '👨‍🦯‍➡' => 'man with white cane: facing right',
+    '👩‍🦯‍➡' => 'woman with white cane: facing right',
+    '🧑‍🦼‍➡' => 'person in motorized wheelchair: facing right',
+    '👨‍🦼‍➡' => 'man in motorized wheelchair: facing right',
+    '👩‍🦼‍➡' => 'woman in motorized wheelchair: facing right',
+    '🧑‍🦽‍➡' => 'person in manual wheelchair: facing right',
+    '👨‍🦽‍➡' => 'man in manual wheelchair: facing right',
+    '👩‍🦽‍➡' => 'woman in manual wheelchair: facing right',
+    '🏃‍♀‍➡' => 'woman running: facing right',
+    '🏃‍♂‍➡' => 'man running: facing right',
     '👩‍❤‍👨' => 'couple with heart: woman, man',
     '👨‍❤‍👨' => 'couple with heart: man, man',
     '👩‍❤‍👩' => 'couple with heart: woman, woman',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'person: medium skin tone, bald',
     '🧑🏾‍🦲' => 'person: medium-dark skin tone, bald',
     '🧑🏿‍🦲' => 'person: dark skin tone, bald',
+    '🧑🏻‍🩰' => 'ballet dancer: light skin tone',
+    '🧑🏼‍🩰' => 'ballet dancer: medium-light skin tone',
+    '🧑🏽‍🩰' => 'ballet dancer: medium skin tone',
+    '🧑🏾‍🩰' => 'ballet dancer: medium-dark skin tone',
+    '🧑🏿‍🩰' => 'ballet dancer: dark skin tone',
     '🧔🏻‍♂' => 'man: light skin tone, beard',
     '🧔🏼‍♂' => 'man: medium-light skin tone, beard',
     '🧔🏽‍♂' => 'man: medium skin tone, beard',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'woman walking: medium skin tone',
     '🚶🏾‍♀' => 'woman walking: medium-dark skin tone',
     '🚶🏿‍♀' => 'woman walking: dark skin tone',
-    '🚶🏻‍➡' => 'person walking facing right',
-    '🚶🏼‍➡' => 'person walking facing right',
-    '🚶🏽‍➡' => 'person walking facing right',
-    '🚶🏾‍➡' => 'person walking facing right',
-    '🚶🏿‍➡' => 'person walking facing right',
+    '🚶🏻‍➡' => 'person walking: light skin tone, facing right',
+    '🚶🏼‍➡' => 'person walking: medium-light skin tone, facing right',
+    '🚶🏽‍➡' => 'person walking: medium skin tone, facing right',
+    '🚶🏾‍➡' => 'person walking: medium-dark skin tone, facing right',
+    '🚶🏿‍➡' => 'person walking: dark skin tone, facing right',
     '🧍🏻‍♂' => 'man standing: light skin tone',
     '🧍🏼‍♂' => 'man standing: medium-light skin tone',
     '🧍🏽‍♂' => 'man standing: medium skin tone',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'woman kneeling: medium skin tone',
     '🧎🏾‍♀' => 'woman kneeling: medium-dark skin tone',
     '🧎🏿‍♀' => 'woman kneeling: dark skin tone',
-    '🧎🏻‍➡' => 'person kneeling facing right',
-    '🧎🏼‍➡' => 'person kneeling facing right',
-    '🧎🏽‍➡' => 'person kneeling facing right',
-    '🧎🏾‍➡' => 'person kneeling facing right',
-    '🧎🏿‍➡' => 'person kneeling facing right',
+    '🧎🏻‍➡' => 'person kneeling: light skin tone, facing right',
+    '🧎🏼‍➡' => 'person kneeling: medium-light skin tone, facing right',
+    '🧎🏽‍➡' => 'person kneeling: medium skin tone, facing right',
+    '🧎🏾‍➡' => 'person kneeling: medium-dark skin tone, facing right',
+    '🧎🏿‍➡' => 'person kneeling: dark skin tone, facing right',
     '🧑🏻‍🦯' => 'person with white cane: light skin tone',
     '🧑🏼‍🦯' => 'person with white cane: medium-light skin tone',
     '🧑🏽‍🦯' => 'person with white cane: medium skin tone',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'woman running: medium skin tone',
     '🏃🏾‍♀' => 'woman running: medium-dark skin tone',
     '🏃🏿‍♀' => 'woman running: dark skin tone',
-    '🏃🏻‍➡' => 'person running facing right',
-    '🏃🏼‍➡' => 'person running facing right',
-    '🏃🏽‍➡' => 'person running facing right',
-    '🏃🏾‍➡' => 'person running facing right',
-    '🏃🏿‍➡' => 'person running facing right',
+    '🏃🏻‍➡' => 'person running: light skin tone, facing right',
+    '🏃🏼‍➡' => 'person running: medium-light skin tone, facing right',
+    '🏃🏽‍➡' => 'person running: medium skin tone, facing right',
+    '🏃🏾‍➡' => 'person running: medium-dark skin tone, facing right',
+    '🏃🏿‍➡' => 'person running: dark skin tone, facing right',
+    '👯🏻‍♀' => 'women with bunny ears: light skin tone',
+    '👯🏼‍♀' => 'women with bunny ears: medium-light skin tone',
+    '👯🏽‍♀' => 'women with bunny ears: medium skin tone',
+    '👯🏾‍♀' => 'women with bunny ears: medium-dark skin tone',
+    '👯🏿‍♀' => 'women with bunny ears: dark skin tone',
+    '👯🏻‍♂' => 'men with bunny ears: light skin tone',
+    '👯🏼‍♂' => 'men with bunny ears: medium-light skin tone',
+    '👯🏽‍♂' => 'men with bunny ears: medium skin tone',
+    '👯🏾‍♂' => 'men with bunny ears: medium-dark skin tone',
+    '👯🏿‍♂' => 'men with bunny ears: dark skin tone',
     '🧖🏻‍♂' => 'man in steamy room: light skin tone',
     '🧖🏼‍♂' => 'man in steamy room: medium-light skin tone',
     '🧖🏽‍♂' => 'man in steamy room: medium skin tone',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'woman cartwheeling: medium skin tone',
     '🤸🏾‍♀' => 'woman cartwheeling: medium-dark skin tone',
     '🤸🏿‍♀' => 'woman cartwheeling: dark skin tone',
+    '🤼🏻‍♀' => 'women wrestling: light skin tone',
+    '🤼🏼‍♀' => 'women wrestling: medium-light skin tone',
+    '🤼🏽‍♀' => 'women wrestling: medium skin tone',
+    '🤼🏾‍♀' => 'women wrestling: medium-dark skin tone',
+    '🤼🏿‍♀' => 'women wrestling: dark skin tone',
+    '🤼🏻‍♂' => 'men wrestling: light skin tone',
+    '🤼🏼‍♂' => 'men wrestling: medium-light skin tone',
+    '🤼🏽‍♂' => 'men wrestling: medium skin tone',
+    '🤼🏾‍♂' => 'men wrestling: medium-dark skin tone',
+    '🤼🏿‍♂' => 'men wrestling: dark skin tone',
     '🤽🏻‍♂' => 'man playing water polo: light skin tone',
     '🤽🏼‍♂' => 'man playing water polo: medium-light skin tone',
     '🤽🏽‍♂' => 'man playing water polo: medium skin tone',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'woman: curly hair',
     '👩‍🦳' => 'woman: white hair',
     '👩‍🦲' => 'woman: bald',
-    '🚶‍➡' => 'person walking facing right',
-    '🧎‍➡' => 'person kneeling facing right',
-    '🏃‍➡' => 'person running facing right',
+    '🚶‍➡' => 'person walking: facing right',
+    '🧎‍➡' => 'person kneeling: facing right',
+    '🏃‍➡' => 'person running: facing right',
     '👨‍👦' => 'family: man, boy',
     '👨‍👧' => 'family: man, girl',
     '👩‍👦' => 'family: woman, boy',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'woman in manual wheelchair',
     '🏃‍♂' => 'man running',
     '🏃‍♀' => 'woman running',
+    '🧑‍🩰' => 'ballet dancer',
     '👯‍♂' => 'men with bunny ears',
     '👯‍♀' => 'women with bunny ears',
     '🧖‍♂' => 'man in steamy room',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'person in suit levitating: medium skin tone',
     '🕴🏾' => 'person in suit levitating: medium-dark skin tone',
     '🕴🏿' => 'person in suit levitating: dark skin tone',
+    '👯🏻' => 'people with bunny ears: light skin tone',
+    '👯🏼' => 'people with bunny ears: medium-light skin tone',
+    '👯🏽' => 'people with bunny ears: medium skin tone',
+    '👯🏾' => 'people with bunny ears: medium-dark skin tone',
+    '👯🏿' => 'people with bunny ears: dark skin tone',
     '🧖🏻' => 'person in steamy room: light skin tone',
     '🧖🏼' => 'person in steamy room: medium-light skin tone',
     '🧖🏽' => 'person in steamy room: medium skin tone',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'person cartwheeling: medium skin tone',
     '🤸🏾' => 'person cartwheeling: medium-dark skin tone',
     '🤸🏿' => 'person cartwheeling: dark skin tone',
+    '🤼🏻' => 'people wrestling: light skin tone',
+    '🤼🏼' => 'people wrestling: medium-light skin tone',
+    '🤼🏽' => 'people wrestling: medium skin tone',
+    '🤼🏾' => 'people wrestling: medium-dark skin tone',
+    '🤼🏿' => 'people wrestling: dark skin tone',
     '🤽🏻' => 'person playing water polo: light skin tone',
     '🤽🏼' => 'person playing water polo: medium-light skin tone',
     '🤽🏽' => 'person playing water polo: medium skin tone',
@@ -2391,13 +2547,6 @@
     '🏽' => 'medium skin tone',
     '🏾' => 'medium-dark skin tone',
     '🏿' => 'dark skin tone',
-    '🪉' => 'harp',
-    '🪏' => 'shovel',
-    '🪾' => 'leafless tree',
-    '🫆' => 'fingerprint',
-    '🫜' => 'root vegetable',
-    '🫟' => 'splatter',
-    '🫩' => 'face with bags under eyes',
     '😀' => 'grinning face',
     '😃' => 'grinning face with big eyes',
     '😄' => 'grinning face with smiling eyes',
@@ -2451,6 +2600,7 @@
     '😪' => 'sleepy face',
     '🤤' => 'drooling face',
     '😴' => 'sleeping face',
+    '🫩' => 'face with bags under eyes',
     '😷' => 'face with medical mask',
     '🤒' => 'face with thermometer',
     '🤕' => 'face with head-bandage',
@@ -2477,6 +2627,7 @@
     '😯' => 'hushed face',
     '😲' => 'astonished face',
     '😳' => 'flushed face',
+    '🫪' => 'distorted face',
     '🥺' => 'pleading face',
     '🥹' => 'face holding back tears',
     '😦' => 'frowning face with open mouth',
@@ -2548,6 +2699,7 @@
     '💋' => 'kiss mark',
     '💯' => 'hundred points',
     '💢' => 'anger symbol',
+    '🫯' => 'fight cloud',
     '💥' => 'collision',
     '💫' => 'dizzy',
     '💦' => 'sweat droplets',
@@ -2671,6 +2823,7 @@
     '🧞' => 'genie',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'hairy creature',
     '💆' => 'person getting massage',
     '💇' => 'person getting haircut',
     '🚶' => 'person walking',
@@ -2714,6 +2867,7 @@
     '🫂' => 'people hugging',
     '👪' => 'family',
     '👣' => 'footprints',
+    '🫆' => 'fingerprint',
     '🦰' => 'red hair',
     '🦱' => 'curly hair',
     '🦳' => 'white hair',
@@ -2813,6 +2967,7 @@
     '🐳' => 'spouting whale',
     '🐋' => 'whale',
     '🐬' => 'dolphin',
+    '🫍' => 'orca',
     '🦭' => 'seal',
     '🐟' => 'fish',
     '🐠' => 'tropical fish',
@@ -2822,6 +2977,11 @@
     '🐚' => 'spiral shell',
     '🪸' => 'coral',
     '🪼' => 'jellyfish',
+    '🦀' => 'crab',
+    '🦞' => 'lobster',
+    '🦐' => 'shrimp',
+    '🦑' => 'squid',
+    '🦪' => 'oyster',
     '🐌' => 'snail',
     '🦋' => 'butterfly',
     '🐛' => 'bug',
@@ -2866,6 +3026,7 @@
     '🪹' => 'empty nest',
     '🪺' => 'nest with eggs',
     '🍄' => 'mushroom',
+    '🪾' => 'leafless tree',
     '🍇' => 'grapes',
     '🍈' => 'melon',
     '🍉' => 'watermelon',
@@ -2902,6 +3063,7 @@
     '🌰' => 'chestnut',
     '🫚' => 'ginger root',
     '🫛' => 'pea pod',
+    '🫜' => 'root vegetable',
     '🍞' => 'bread',
     '🥐' => 'croissant',
     '🥖' => 'baguette bread',
@@ -2953,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'fortune cookie',
     '🥡' => 'takeout box',
-    '🦀' => 'crab',
-    '🦞' => 'lobster',
-    '🦐' => 'shrimp',
-    '🦑' => 'squid',
-    '🦪' => 'oyster',
     '🍦' => 'soft ice cream',
     '🍧' => 'shaved ice',
     '🍨' => 'ice cream',
@@ -3008,6 +3165,7 @@
     '🧭' => 'compass',
     '🏔' => 'snow-capped mountain',
     '⛰' => 'mountain',
+    '🛘' => 'landslide',
     '🌋' => 'volcano',
     '🗻' => 'mount fuji',
     '🏕' => 'camping',
@@ -3368,16 +3526,18 @@
     '🎧' => 'headphone',
     '📻' => 'radio',
     '🎷' => 'saxophone',
+    '🎺' => 'trumpet',
+    '🪊' => 'trombone',
     '🪗' => 'accordion',
     '🎸' => 'guitar',
     '🎹' => 'musical keyboard',
-    '🎺' => 'trumpet',
     '🎻' => 'violin',
     '🪕' => 'banjo',
     '🥁' => 'drum',
     '🪘' => 'long drum',
     '🪇' => 'maracas',
     '🪈' => 'flute',
+    '🪉' => 'harp',
     '📱' => 'mobile phone',
     '📲' => 'mobile phone with arrow',
     '☎' => 'telephone',
@@ -3431,8 +3591,9 @@
     '📑' => 'bookmark tabs',
     '🔖' => 'bookmark',
     '🏷' => 'label',
-    '💰' => 'money bag',
     '🪙' => 'coin',
+    '💰' => 'money bag',
+    '🪎' => 'treasure chest',
     '💴' => 'yen banknote',
     '💵' => 'dollar banknote',
     '💶' => 'euro banknote',
@@ -3515,6 +3676,7 @@
     '🧰' => 'toolbox',
     '🧲' => 'magnet',
     '🪜' => 'ladder',
+    '🪏' => 'shovel',
     '⚗' => 'alembic',
     '🧪' => 'test tube',
     '🧫' => 'petri dish',
@@ -3698,6 +3860,7 @@
     '✴' => 'eight-pointed star',
     '❇' => 'sparkle',
     '™' => 'trade mark',
+    '🫟' => 'splatter',
     '🔠' => 'input latin uppercase',
     '🔡' => 'input latin lowercase',
     '🔢' => 'input numbers',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_419.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_419.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_419.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_419.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'pareja besándose: mujer, mujer, tono de piel oscuro, tono de piel medio',
     '👩🏿‍❤‍💋‍👩🏾' => 'pareja besándose: mujer, mujer, tono de piel oscuro, tono de piel oscuro medio',
     '👩🏿‍❤‍💋‍👩🏿' => 'pareja besándose: mujer, mujer, tono de piel oscuro',
+    '🧑🏻‍🫯‍🧑🏼' => 'personas luchando: tono de piel claro y tono de piel claro medio',
+    '🧑🏻‍🫯‍🧑🏽' => 'personas luchando: tono de piel claro y tono de piel medio',
+    '🧑🏻‍🫯‍🧑🏾' => 'personas luchando: tono de piel claro y tono de piel oscuro medio',
+    '🧑🏻‍🫯‍🧑🏿' => 'personas luchando: tono de piel claro y tono de piel oscuro',
+    '🧑🏼‍🫯‍🧑🏻' => 'personas luchando: tono de piel claro medio y tono de piel claro',
+    '🧑🏼‍🫯‍🧑🏽' => 'personas luchando: tono de piel claro medio y tono de piel medio',
+    '🧑🏼‍🫯‍🧑🏾' => 'personas luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '🧑🏼‍🫯‍🧑🏿' => 'personas luchando: tono de piel claro medio y tono de piel oscuro',
+    '🧑🏽‍🫯‍🧑🏻' => 'personas luchando: tono de piel medio y tono de piel claro',
+    '🧑🏽‍🫯‍🧑🏼' => 'personas luchando: tono de piel medio y tono de piel claro medio',
+    '🧑🏽‍🫯‍🧑🏾' => 'personas luchando: tono de piel medio y tono de piel oscuro medio',
+    '🧑🏽‍🫯‍🧑🏿' => 'personas luchando: tono de piel medio y tono de piel oscuro',
+    '🧑🏾‍🫯‍🧑🏻' => 'personas luchando: tono de piel oscuro medio y tono de piel claro',
+    '🧑🏾‍🫯‍🧑🏼' => 'personas luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '🧑🏾‍🫯‍🧑🏽' => 'personas luchando: tono de piel oscuro medio y tono de piel medio',
+    '🧑🏾‍🫯‍🧑🏿' => 'personas luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '🧑🏿‍🫯‍🧑🏻' => 'personas luchando: tono de piel oscuro y tono de piel claro',
+    '🧑🏿‍🫯‍🧑🏼' => 'personas luchando: tono de piel oscuro y tono de piel claro medio',
+    '🧑🏿‍🫯‍🧑🏽' => 'personas luchando: tono de piel oscuro y tono de piel medio',
+    '🧑🏿‍🫯‍🧑🏾' => 'personas luchando: tono de piel oscuro y tono de piel oscuro medio',
     '🧑🏻‍❤‍🧑🏼' => 'pareja enamorada: persona adulta, persona adulta, tono de piel claro, tono de piel claro medio',
     '🧑🏻‍❤‍🧑🏽' => 'pareja enamorada: persona adulta, persona adulta, tono de piel claro, tono de piel medio',
     '🧑🏻‍❤‍🧑🏾' => 'pareja enamorada: persona adulta, persona adulta, tono de piel claro, tono de piel oscuro medio',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pareja enamorada: persona adulta, persona adulta, tono de piel oscuro, tono de piel claro medio',
     '🧑🏿‍❤‍🧑🏽' => 'pareja enamorada: persona adulta, persona adulta, tono de piel oscuro, tono de piel medio',
     '🧑🏿‍❤‍🧑🏾' => 'pareja enamorada: persona adulta, persona adulta, tono de piel oscuro, tono de piel oscuro medio',
+    '🧑🏻‍🐰‍🧑🏼' => 'personas bailando con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '🧑🏻‍🐰‍🧑🏽' => 'personas bailando con orejas de conejo: tono de piel claro y tono de piel medio',
+    '🧑🏻‍🐰‍🧑🏾' => 'personas bailando con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '🧑🏻‍🐰‍🧑🏿' => 'personas bailando con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '🧑🏼‍🐰‍🧑🏻' => 'personas bailando con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '🧑🏼‍🐰‍🧑🏽' => 'personas bailando con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '🧑🏼‍🐰‍🧑🏾' => 'personas bailando con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '🧑🏼‍🐰‍🧑🏿' => 'personas bailando con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '🧑🏽‍🐰‍🧑🏻' => 'personas bailando con orejas de conejo: tono de piel medio y tono de piel claro',
+    '🧑🏽‍🐰‍🧑🏼' => 'personas bailando con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '🧑🏽‍🐰‍🧑🏾' => 'personas bailando con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '🧑🏽‍🐰‍🧑🏿' => 'personas bailando con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '🧑🏾‍🐰‍🧑🏻' => 'personas bailando con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '🧑🏾‍🐰‍🧑🏼' => 'personas bailando con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '🧑🏾‍🐰‍🧑🏽' => 'personas bailando con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '🧑🏾‍🐰‍🧑🏿' => 'personas bailando con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '🧑🏿‍🐰‍🧑🏻' => 'personas bailando con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '🧑🏿‍🐰‍🧑🏼' => 'personas bailando con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '🧑🏿‍🐰‍🧑🏽' => 'personas bailando con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '🧑🏿‍🐰‍🧑🏾' => 'personas bailando con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
+    '👨🏻‍🫯‍👨🏼' => 'hombres luchando: tono de piel claro y tono de piel claro medio',
+    '👨🏻‍🫯‍👨🏽' => 'hombres luchando: tono de piel claro y tono de piel medio',
+    '👨🏻‍🫯‍👨🏾' => 'hombres luchando: tono de piel claro y tono de piel oscuro medio',
+    '👨🏻‍🫯‍👨🏿' => 'hombres luchando: tono de piel claro y tono de piel oscuro',
+    '👨🏼‍🫯‍👨🏻' => 'hombres luchando: tono de piel claro medio y tono de piel claro',
+    '👨🏼‍🫯‍👨🏽' => 'hombres luchando: tono de piel claro medio y tono de piel medio',
+    '👨🏼‍🫯‍👨🏾' => 'hombres luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '👨🏼‍🫯‍👨🏿' => 'hombres luchando: tono de piel claro medio y tono de piel oscuro',
+    '👨🏽‍🫯‍👨🏻' => 'hombres luchando: tono de piel medio y tono de piel claro',
+    '👨🏽‍🫯‍👨🏼' => 'hombres luchando: tono de piel medio y tono de piel claro medio',
+    '👨🏽‍🫯‍👨🏾' => 'hombres luchando: tono de piel medio y tono de piel oscuro medio',
+    '👨🏽‍🫯‍👨🏿' => 'hombres luchando: tono de piel medio y tono de piel oscuro',
+    '👨🏾‍🫯‍👨🏻' => 'hombres luchando: tono de piel oscuro medio y tono de piel claro',
+    '👨🏾‍🫯‍👨🏼' => 'hombres luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '👨🏾‍🫯‍👨🏽' => 'hombres luchando: tono de piel oscuro medio y tono de piel medio',
+    '👨🏾‍🫯‍👨🏿' => 'hombres luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '👨🏿‍🫯‍👨🏻' => 'hombres luchando: tono de piel oscuro y tono de piel claro',
+    '👨🏿‍🫯‍👨🏼' => 'hombres luchando: tono de piel oscuro y tono de piel claro medio',
+    '👨🏿‍🫯‍👨🏽' => 'hombres luchando: tono de piel oscuro y tono de piel medio',
+    '👨🏿‍🫯‍👨🏾' => 'hombres luchando: tono de piel oscuro y tono de piel oscuro medio',
     '👨🏻‍❤‍👨🏻' => 'pareja enamorada: hombre, hombre, tono de piel claro',
     '👨🏻‍❤‍👨🏼' => 'pareja enamorada: hombre, hombre, tono de piel claro, tono de piel claro medio',
     '👨🏻‍❤‍👨🏽' => 'pareja enamorada: hombre, hombre, tono de piel claro, tono de piel medio',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pareja enamorada: hombre, hombre, tono de piel oscuro, tono de piel medio',
     '👨🏿‍❤‍👨🏾' => 'pareja enamorada: hombre, hombre, tono de piel oscuro, tono de piel oscuro medio',
     '👨🏿‍❤‍👨🏿' => 'pareja enamorada: hombre, hombre, tono de piel oscuro',
+    '👨🏻‍🐰‍👨🏼' => 'hombres bailando con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '👨🏻‍🐰‍👨🏽' => 'hombres bailando con orejas de conejo: tono de piel claro y tono de piel medio',
+    '👨🏻‍🐰‍👨🏾' => 'hombres bailando con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '👨🏻‍🐰‍👨🏿' => 'hombres bailando con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '👨🏼‍🐰‍👨🏻' => 'hombres bailando con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '👨🏼‍🐰‍👨🏽' => 'hombres bailando con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '👨🏼‍🐰‍👨🏾' => 'hombres bailando con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '👨🏼‍🐰‍👨🏿' => 'hombres bailando con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '👨🏽‍🐰‍👨🏻' => 'hombres bailando con orejas de conejo: tono de piel medio y tono de piel claro',
+    '👨🏽‍🐰‍👨🏼' => 'hombres bailando con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '👨🏽‍🐰‍👨🏾' => 'hombres bailando con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '👨🏽‍🐰‍👨🏿' => 'hombres bailando con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '👨🏾‍🐰‍👨🏻' => 'hombres bailando con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '👨🏾‍🐰‍👨🏼' => 'hombres bailando con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '👨🏾‍🐰‍👨🏽' => 'hombres bailando con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '👨🏾‍🐰‍👨🏿' => 'hombres bailando con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '👨🏿‍🐰‍👨🏻' => 'hombres bailando con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '👨🏿‍🐰‍👨🏼' => 'hombres bailando con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '👨🏿‍🐰‍👨🏽' => 'hombres bailando con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '👨🏿‍🐰‍👨🏾' => 'hombres bailando con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
+    '👩🏻‍🫯‍👩🏼' => 'mujeres luchando: tono de piel claro y tono de piel claro medio',
+    '👩🏻‍🫯‍👩🏽' => 'mujeres luchando: tono de piel claro y tono de piel medio',
+    '👩🏻‍🫯‍👩🏾' => 'mujeres luchando: tono de piel claro y tono de piel oscuro medio',
+    '👩🏻‍🫯‍👩🏿' => 'mujeres luchando: tono de piel claro y tono de piel oscuro',
+    '👩🏼‍🫯‍👩🏻' => 'mujeres luchando: tono de piel claro medio y tono de piel claro',
+    '👩🏼‍🫯‍👩🏽' => 'mujeres luchando: tono de piel claro medio y tono de piel medio',
+    '👩🏼‍🫯‍👩🏾' => 'mujeres luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '👩🏼‍🫯‍👩🏿' => 'mujeres luchando: tono de piel claro medio y tono de piel oscuro',
+    '👩🏽‍🫯‍👩🏻' => 'mujeres luchando: tono de piel medio y tono de piel claro',
+    '👩🏽‍🫯‍👩🏼' => 'mujeres luchando: tono de piel medio y tono de piel claro medio',
+    '👩🏽‍🫯‍👩🏾' => 'mujeres luchando: tono de piel medio y tono de piel oscuro medio',
+    '👩🏽‍🫯‍👩🏿' => 'mujeres luchando: tono de piel medio y tono de piel oscuro',
+    '👩🏾‍🫯‍👩🏻' => 'mujeres luchando: tono de piel oscuro medio y tono de piel claro',
+    '👩🏾‍🫯‍👩🏼' => 'mujeres luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '👩🏾‍🫯‍👩🏽' => 'mujeres luchando: tono de piel oscuro medio y tono de piel medio',
+    '👩🏾‍🫯‍👩🏿' => 'mujeres luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '👩🏿‍🫯‍👩🏻' => 'mujeres luchando: tono de piel oscuro y tono de piel claro',
+    '👩🏿‍🫯‍👩🏼' => 'mujeres luchando: tono de piel oscuro y tono de piel claro medio',
+    '👩🏿‍🫯‍👩🏽' => 'mujeres luchando: tono de piel oscuro y tono de piel medio',
+    '👩🏿‍🫯‍👩🏾' => 'mujeres luchando: tono de piel oscuro y tono de piel oscuro medio',
     '👩🏻‍❤‍👨🏻' => 'pareja enamorada: mujer, hombre, tono de piel claro',
     '👩🏻‍❤‍👨🏼' => 'pareja enamorada: mujer, hombre, tono de piel claro, tono de piel claro medio',
     '👩🏻‍❤‍👨🏽' => 'pareja enamorada: mujer, hombre, tono de piel claro, tono de piel medio',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pareja enamorada: mujer, mujer, tono de piel oscuro, tono de piel medio',
     '👩🏿‍❤‍👩🏾' => 'pareja enamorada: mujer, mujer, tono de piel oscuro, tono de piel oscuro medio',
     '👩🏿‍❤‍👩🏿' => 'pareja enamorada: mujer, mujer, tono de piel oscuro',
+    '👩🏻‍🐰‍👩🏼' => 'mujeres bailando con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '👩🏻‍🐰‍👩🏽' => 'mujeres bailando con orejas de conejo: tono de piel claro y tono de piel medio',
+    '👩🏻‍🐰‍👩🏾' => 'mujeres bailando con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '👩🏻‍🐰‍👩🏿' => 'mujeres bailando con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '👩🏼‍🐰‍👩🏻' => 'mujeres bailando con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '👩🏼‍🐰‍👩🏽' => 'mujeres bailando con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '👩🏼‍🐰‍👩🏾' => 'mujeres bailando con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '👩🏼‍🐰‍👩🏿' => 'mujeres bailando con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '👩🏽‍🐰‍👩🏻' => 'mujeres bailando con orejas de conejo: tono de piel medio y tono de piel claro',
+    '👩🏽‍🐰‍👩🏼' => 'mujeres bailando con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '👩🏽‍🐰‍👩🏾' => 'mujeres bailando con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '👩🏽‍🐰‍👩🏿' => 'mujeres bailando con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '👩🏾‍🐰‍👩🏻' => 'mujeres bailando con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '👩🏾‍🐰‍👩🏼' => 'mujeres bailando con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '👩🏾‍🐰‍👩🏽' => 'mujeres bailando con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '👩🏾‍🐰‍👩🏿' => 'mujeres bailando con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '👩🏿‍🐰‍👩🏻' => 'mujeres bailando con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '👩🏿‍🐰‍👩🏼' => 'mujeres bailando con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '👩🏿‍🐰‍👩🏽' => 'mujeres bailando con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '👩🏿‍🐰‍👩🏾' => 'mujeres bailando con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
     '🧑🏻‍🤝‍🧑🏻' => 'dos personas de la mano: tono de piel claro',
     '🧑🏻‍🤝‍🧑🏼' => 'dos personas de la mano: tono de piel claro y tono de piel claro medio',
     '🧑🏻‍🤝‍🧑🏽' => 'dos personas de la mano: tono de piel claro y tono de piel medio',
@@ -288,85 +408,85 @@
     '👩‍👩‍👧‍👦' => 'familia: mujer, mujer, niña, niño',
     '👩‍👩‍👦‍👦' => 'familia: mujer, mujer, niño, niño',
     '👩‍👩‍👧‍👧' => 'familia: mujer, mujer, niña, niña',
-    '🏴󠁧󠁢󠁥󠁮󠁧󠁿' => 'bandera: Inglaterra',
-    '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bandera: Escocia',
-    '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bandera: Gales',
+    '🏴󠁧󠁢󠁥󠁮󠁧󠁿' => 'Bandera: Inglaterra',
+    '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'Bandera: Escocia',
+    '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'Bandera: Gales',
     '🧑‍🧑‍🧒‍🧒' => 'familia: adulto, adulto, niño, niño',
-    '🚶🏻‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏼‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏽‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏾‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏿‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏻‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏼‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏽‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏾‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏿‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🧎🏻‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏼‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏽‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏾‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏿‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏻‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏼‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏽‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏾‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏿‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧑🏻‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏼‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏽‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏾‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏿‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '👨🏻‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏼‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏽‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏾‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏿‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👩🏻‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏼‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏽‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏾‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏿‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '🧑🏻‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏼‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏽‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏾‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏿‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '👨🏻‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏼‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏽‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏾‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏿‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👩🏻‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏼‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏽‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏾‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏿‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏻‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏼‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏽‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏾‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏿‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '👨🏻‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏼‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏽‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏾‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏿‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👩🏻‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏼‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏽‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏾‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏿‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '🏃🏻‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏼‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏽‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏾‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏿‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏻‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏼‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏽‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏾‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏿‍♂‍➡' => 'hombre corriendo hacia la derecha',
+    '🚶🏻‍♀‍➡' => 'mujer caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍♀‍➡' => 'mujer caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍♀‍➡' => 'mujer caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍♀‍➡' => 'mujer caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍♀‍➡' => 'mujer caminando: tono de piel oscuro y hacia la derecha',
+    '🚶🏻‍♂‍➡' => 'hombre caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍♂‍➡' => 'hombre caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍♂‍➡' => 'hombre caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍♂‍➡' => 'hombre caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍♂‍➡' => 'hombre caminando: tono de piel oscuro y hacia la derecha',
+    '🧎🏻‍♀‍➡' => 'mujer de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍♀‍➡' => 'mujer de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍♀‍➡' => 'mujer de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍♀‍➡' => 'mujer de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍♀‍➡' => 'mujer de rodillas: tono de piel oscuro y hacia la derecha',
+    '🧎🏻‍♂‍➡' => 'hombre de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍♂‍➡' => 'hombre de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍♂‍➡' => 'hombre de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍♂‍➡' => 'hombre de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍♂‍➡' => 'hombre de rodillas: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦯‍➡' => 'persona con bastón: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦯‍➡' => 'persona con bastón: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦯‍➡' => 'persona con bastón: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦯‍➡' => 'persona con bastón: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦯‍➡' => 'persona con bastón: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦯‍➡' => 'hombre con bastón: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦯‍➡' => 'hombre con bastón: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦯‍➡' => 'hombre con bastón: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦯‍➡' => 'hombre con bastón: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦯‍➡' => 'hombre con bastón: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦯‍➡' => 'mujer con bastón: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦯‍➡' => 'mujer con bastón: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦯‍➡' => 'mujer con bastón: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦯‍➡' => 'mujer con bastón: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦯‍➡' => 'mujer con bastón: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '🏃🏻‍♀‍➡' => 'mujer corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍♀‍➡' => 'mujer corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍♀‍➡' => 'mujer corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍♀‍➡' => 'mujer corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍♀‍➡' => 'mujer corriendo: tono de piel oscuro y hacia la derecha',
+    '🏃🏻‍♂‍➡' => 'hombre corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍♂‍➡' => 'hombre corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍♂‍➡' => 'hombre corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍♂‍➡' => 'hombre corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍♂‍➡' => 'hombre corriendo: tono de piel oscuro y hacia la derecha',
     '🫱🏻‍🫲🏼' => 'apretón de manos: tono de piel claro y tono de piel claro medio',
     '🫱🏻‍🫲🏽' => 'apretón de manos: tono de piel claro y tono de piel medio',
     '🫱🏻‍🫲🏾' => 'apretón de manos: tono de piel claro y tono de piel oscuro medio',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'apretón de manos: tono de piel oscuro y tono de piel claro medio',
     '🫱🏿‍🫲🏽' => 'apretón de manos: tono de piel oscuro y tono de piel medio',
     '🫱🏿‍🫲🏾' => 'apretón de manos: tono de piel oscuro y tono de piel oscuro medio',
-    '🚶‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🧎‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧑‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '👨‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👩‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '🧑‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '👨‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👩‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '🧑‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '👨‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👩‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '🏃‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃‍♂‍➡' => 'hombre corriendo hacia la derecha',
+    '🚶‍♀‍➡' => 'mujer caminando: hacia la derecha',
+    '🚶‍♂‍➡' => 'hombre caminando: hacia la derecha',
+    '🧎‍♀‍➡' => 'mujer de rodillas: hacia la derecha',
+    '🧎‍♂‍➡' => 'hombre de rodillas: hacia la derecha',
+    '🧑‍🦯‍➡' => 'persona con bastón: hacia la derecha',
+    '👨‍🦯‍➡' => 'hombre con bastón: hacia la derecha',
+    '👩‍🦯‍➡' => 'mujer con bastón: hacia la derecha',
+    '🧑‍🦼‍➡' => 'persona en silla de ruedas eléctrica: hacia la derecha',
+    '👨‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: hacia la derecha',
+    '👩‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: hacia la derecha',
+    '🧑‍🦽‍➡' => 'persona en silla de ruedas manual: hacia la derecha',
+    '👨‍🦽‍➡' => 'hombre en silla de ruedas manual: hacia la derecha',
+    '👩‍🦽‍➡' => 'mujer en silla de ruedas manual: hacia la derecha',
+    '🏃‍♀‍➡' => 'mujer corriendo: hacia la derecha',
+    '🏃‍♂‍➡' => 'hombre corriendo: hacia la derecha',
     '👩‍❤‍👨' => 'pareja enamorada: mujer y hombre',
     '👨‍❤‍👨' => 'pareja enamorada: hombre y hombre',
     '👩‍❤‍👩' => 'pareja enamorada: mujer y mujer',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'persona adulta: tono de piel medio y sin pelo',
     '🧑🏾‍🦲' => 'persona adulta: tono de piel oscuro medio y sin pelo',
     '🧑🏿‍🦲' => 'persona adulta: tono de piel oscuro y sin pelo',
+    '🧑🏻‍🩰' => 'bailarina de ballet: tono de piel claro',
+    '🧑🏼‍🩰' => 'bailarina de ballet: tono de piel claro medio',
+    '🧑🏽‍🩰' => 'bailarina de ballet: tono de piel medio',
+    '🧑🏾‍🩰' => 'bailarina de ballet: tono de piel oscuro medio',
+    '🧑🏿‍🩰' => 'bailarina de ballet: tono de piel oscuro',
     '🧔🏻‍♂' => 'hombre: tono de piel claro y barba',
     '🧔🏼‍♂' => 'hombre: tono de piel claro medio y barba',
     '🧔🏽‍♂' => 'hombre: tono de piel medio y barba',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'mujer caminando: tono de piel medio',
     '🚶🏾‍♀' => 'mujer caminando: tono de piel oscuro medio',
     '🚶🏿‍♀' => 'mujer caminando: tono de piel oscuro',
-    '🚶🏻‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏼‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏽‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏾‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏿‍➡' => 'persona caminando hacia la derecha',
+    '🚶🏻‍➡' => 'persona caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍➡' => 'persona caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍➡' => 'persona caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍➡' => 'persona caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍➡' => 'persona caminando: tono de piel oscuro y hacia la derecha',
     '🧍🏻‍♂' => 'hombre de pie: tono de piel claro',
     '🧍🏼‍♂' => 'hombre de pie: tono de piel claro medio',
     '🧍🏽‍♂' => 'hombre de pie: tono de piel medio',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'mujer de rodillas: tono de piel medio',
     '🧎🏾‍♀' => 'mujer de rodillas: tono de piel oscuro medio',
     '🧎🏿‍♀' => 'mujer de rodillas: tono de piel oscuro',
-    '🧎🏻‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏼‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏽‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏾‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏿‍➡' => 'persona de rodillas hacia la derecha',
+    '🧎🏻‍➡' => 'persona de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍➡' => 'persona de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍➡' => 'persona de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍➡' => 'persona de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍➡' => 'persona de rodillas: tono de piel oscuro y hacia la derecha',
     '🧑🏻‍🦯' => 'persona con bastón: tono de piel claro',
     '🧑🏼‍🦯' => 'persona con bastón: tono de piel claro medio',
     '🧑🏽‍🦯' => 'persona con bastón: tono de piel medio',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'mujer corriendo: tono de piel medio',
     '🏃🏾‍♀' => 'mujer corriendo: tono de piel oscuro medio',
     '🏃🏿‍♀' => 'mujer corriendo: tono de piel oscuro',
-    '🏃🏻‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏼‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏽‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏾‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏿‍➡' => 'persona corriendo hacia la derecha',
+    '🏃🏻‍➡' => 'persona corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍➡' => 'persona corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍➡' => 'persona corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍➡' => 'persona corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍➡' => 'persona corriendo: tono de piel oscuro y hacia la derecha',
+    '👯🏻‍♀' => 'mujeres bailando con orejas de conejo: tono de piel claro',
+    '👯🏼‍♀' => 'mujeres bailando con orejas de conejo: tono de piel claro medio',
+    '👯🏽‍♀' => 'mujeres bailando con orejas de conejo: tono de piel medio',
+    '👯🏾‍♀' => 'mujeres bailando con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿‍♀' => 'mujeres bailando con orejas de conejo: tono de piel oscuro',
+    '👯🏻‍♂' => 'hombres bailando con orejas de conejo: tono de piel claro',
+    '👯🏼‍♂' => 'hombres bailando con orejas de conejo: tono de piel claro medio',
+    '👯🏽‍♂' => 'hombres bailando con orejas de conejo: tono de piel medio',
+    '👯🏾‍♂' => 'hombres bailando con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿‍♂' => 'hombres bailando con orejas de conejo: tono de piel oscuro',
     '🧖🏻‍♂' => 'hombre en una sauna: tono de piel claro',
     '🧖🏼‍♂' => 'hombre en una sauna: tono de piel claro medio',
     '🧖🏽‍♂' => 'hombre en una sauna: tono de piel medio',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'mujer dando una voltereta lateral: tono de piel medio',
     '🤸🏾‍♀' => 'mujer dando una voltereta lateral: tono de piel oscuro medio',
     '🤸🏿‍♀' => 'mujer dando una voltereta lateral: tono de piel oscuro',
+    '🤼🏻‍♀' => 'mujeres luchando: tono de piel claro',
+    '🤼🏼‍♀' => 'mujeres luchando: tono de piel claro medio',
+    '🤼🏽‍♀' => 'mujeres luchando: tono de piel medio',
+    '🤼🏾‍♀' => 'mujeres luchando: tono de piel oscuro medio',
+    '🤼🏿‍♀' => 'mujeres luchando: tono de piel oscuro',
+    '🤼🏻‍♂' => 'hombres luchando: tono de piel claro',
+    '🤼🏼‍♂' => 'hombres luchando: tono de piel claro medio',
+    '🤼🏽‍♂' => 'hombres luchando: tono de piel medio',
+    '🤼🏾‍♂' => 'hombres luchando: tono de piel oscuro medio',
+    '🤼🏿‍♂' => 'hombres luchando: tono de piel oscuro',
     '🤽🏻‍♂' => 'hombre jugando al waterpolo: tono de piel claro',
     '🤽🏼‍♂' => 'hombre jugando al waterpolo: tono de piel claro medio',
     '🤽🏽‍♂' => 'hombre jugando al waterpolo: tono de piel medio',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'mujer: pelo rizado',
     '👩‍🦳' => 'mujer: pelo blanco',
     '👩‍🦲' => 'mujer: sin pelo',
-    '🚶‍➡' => 'persona caminando hacia la derecha',
-    '🧎‍➡' => 'persona de rodillas hacia la derecha',
-    '🏃‍➡' => 'persona corriendo hacia la derecha',
+    '🚶‍➡' => 'persona caminando: hacia la derecha',
+    '🧎‍➡' => 'persona de rodillas: hacia la derecha',
+    '🏃‍➡' => 'persona corriendo: hacia la derecha',
     '👨‍👦' => 'familia: hombre y niño',
     '👨‍👧' => 'familia: hombre y niña',
     '👩‍👦' => 'familia: mujer y niño',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'mujer en silla de ruedas manual',
     '🏃‍♂' => 'hombre corriendo',
     '🏃‍♀' => 'mujer corriendo',
+    '🧑‍🩰' => 'bailarina de ballet',
     '👯‍♂' => 'hombres bailando con orejas de conejo',
     '👯‍♀' => 'mujeres bailando con orejas de conejo',
     '🧖‍♂' => 'hombre en una sauna',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'persona con traje levitando: tono de piel medio',
     '🕴🏾' => 'persona con traje levitando: tono de piel oscuro medio',
     '🕴🏿' => 'persona con traje levitando: tono de piel oscuro',
+    '👯🏻' => 'personas bailando con orejas de conejo: tono de piel claro',
+    '👯🏼' => 'personas bailando con orejas de conejo: tono de piel claro medio',
+    '👯🏽' => 'personas bailando con orejas de conejo: tono de piel medio',
+    '👯🏾' => 'personas bailando con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿' => 'personas bailando con orejas de conejo: tono de piel oscuro',
     '🧖🏻' => 'persona en una sauna: tono de piel claro',
     '🧖🏼' => 'persona en una sauna: tono de piel claro medio',
     '🧖🏽' => 'persona en una sauna: tono de piel medio',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persona haciendo voltereta lateral: tono de piel medio',
     '🤸🏾' => 'persona haciendo voltereta lateral: tono de piel oscuro medio',
     '🤸🏿' => 'persona haciendo voltereta lateral: tono de piel oscuro',
+    '🤼🏻' => 'personas luchando: tono de piel claro',
+    '🤼🏼' => 'personas luchando: tono de piel claro medio',
+    '🤼🏽' => 'personas luchando: tono de piel medio',
+    '🤼🏾' => 'personas luchando: tono de piel oscuro medio',
+    '🤼🏿' => 'personas luchando: tono de piel oscuro',
     '🤽🏻' => 'persona jugando al waterpolo: tono de piel claro',
     '🤽🏼' => 'persona jugando al waterpolo: tono de piel claro medio',
     '🤽🏽' => 'persona jugando al waterpolo: tono de piel medio',
@@ -2126,277 +2282,271 @@
     '💑🏽' => 'pareja enamorada: tono de piel medio',
     '💑🏾' => 'pareja enamorada: tono de piel oscuro medio',
     '💑🏿' => 'pareja enamorada: tono de piel oscuro',
-    '🇦🇨' => 'bandera: Isla Ascensión',
-    '🇦🇩' => 'bandera: Andorra',
-    '🇦🇪' => 'bandera: Emiratos Árabes Unidos',
-    '🇦🇫' => 'bandera: Afganistán',
-    '🇦🇬' => 'bandera: Antigua y Barbuda',
-    '🇦🇮' => 'bandera: Anguila',
-    '🇦🇱' => 'bandera: Albania',
-    '🇦🇲' => 'bandera: Armenia',
-    '🇦🇴' => 'bandera: Angola',
-    '🇦🇶' => 'bandera: Antártida',
-    '🇦🇷' => 'bandera: Argentina',
-    '🇦🇸' => 'bandera: Samoa Americana',
-    '🇦🇹' => 'bandera: Austria',
-    '🇦🇺' => 'bandera: Australia',
-    '🇦🇼' => 'bandera: Aruba',
-    '🇦🇽' => 'bandera: Islas Åland',
-    '🇦🇿' => 'bandera: Azerbaiyán',
-    '🇧🇦' => 'bandera: Bosnia-Herzegovina',
-    '🇧🇧' => 'bandera: Barbados',
-    '🇧🇩' => 'bandera: Bangladés',
-    '🇧🇪' => 'bandera: Bélgica',
-    '🇧🇫' => 'bandera: Burkina Faso',
-    '🇧🇬' => 'bandera: Bulgaria',
-    '🇧🇭' => 'bandera: Baréin',
-    '🇧🇮' => 'bandera: Burundi',
-    '🇧🇯' => 'bandera: Benín',
-    '🇧🇱' => 'bandera: San Bartolomé',
-    '🇧🇲' => 'bandera: Bermudas',
-    '🇧🇳' => 'bandera: Brunéi',
-    '🇧🇴' => 'bandera: Bolivia',
-    '🇧🇶' => 'bandera: Caribe neerlandés',
-    '🇧🇷' => 'bandera: Brasil',
-    '🇧🇸' => 'bandera: Bahamas',
-    '🇧🇹' => 'bandera: Bután',
-    '🇧🇻' => 'bandera: Isla Bouvet',
-    '🇧🇼' => 'bandera: Botsuana',
-    '🇧🇾' => 'bandera: Bielorrusia',
-    '🇧🇿' => 'bandera: Belice',
-    '🇨🇦' => 'bandera: Canadá',
-    '🇨🇨' => 'bandera: Islas Cocos',
-    '🇨🇩' => 'bandera: República Democrática del Congo',
-    '🇨🇫' => 'bandera: República Centroafricana',
-    '🇨🇬' => 'bandera: República del Congo',
-    '🇨🇭' => 'bandera: Suiza',
-    '🇨🇮' => 'bandera: Costa de Marfil',
-    '🇨🇰' => 'bandera: Islas Cook',
-    '🇨🇱' => 'bandera: Chile',
-    '🇨🇲' => 'bandera: Camerún',
-    '🇨🇳' => 'bandera: China',
-    '🇨🇴' => 'bandera: Colombia',
-    '🇨🇵' => 'bandera: Isla Clipperton',
-    '🇨🇷' => 'bandera: Costa Rica',
-    '🇨🇺' => 'bandera: Cuba',
-    '🇨🇻' => 'bandera: Cabo Verde',
-    '🇨🇼' => 'bandera: Curazao',
-    '🇨🇽' => 'bandera: Isla de Navidad',
-    '🇨🇾' => 'bandera: Chipre',
-    '🇨🇿' => 'bandera: Chequia',
-    '🇩🇪' => 'bandera: Alemania',
-    '🇩🇬' => 'bandera: Diego García',
-    '🇩🇯' => 'bandera: Yibuti',
-    '🇩🇰' => 'bandera: Dinamarca',
-    '🇩🇲' => 'bandera: Dominica',
-    '🇩🇴' => 'bandera: República Dominicana',
-    '🇩🇿' => 'bandera: Argelia',
-    '🇪🇦' => 'bandera: Ceuta y Melilla',
-    '🇪🇨' => 'bandera: Ecuador',
-    '🇪🇪' => 'bandera: Estonia',
-    '🇪🇬' => 'bandera: Egipto',
-    '🇪🇭' => 'bandera: Sáhara Occidental',
-    '🇪🇷' => 'bandera: Eritrea',
-    '🇪🇸' => 'bandera: España',
-    '🇪🇹' => 'bandera: Etiopía',
-    '🇪🇺' => 'bandera: Unión Europea',
-    '🇫🇮' => 'bandera: Finlandia',
-    '🇫🇯' => 'bandera: Fiyi',
-    '🇫🇰' => 'bandera: Islas Malvinas',
-    '🇫🇲' => 'bandera: Micronesia',
-    '🇫🇴' => 'bandera: Islas Feroe',
-    '🇫🇷' => 'bandera: Francia',
-    '🇬🇦' => 'bandera: Gabón',
-    '🇬🇧' => 'bandera: Reino Unido',
-    '🇬🇩' => 'bandera: Granada',
-    '🇬🇪' => 'bandera: Georgia',
-    '🇬🇫' => 'bandera: Guayana Francesa',
-    '🇬🇬' => 'bandera: Guernesey',
-    '🇬🇭' => 'bandera: Ghana',
-    '🇬🇮' => 'bandera: Gibraltar',
-    '🇬🇱' => 'bandera: Groenlandia',
-    '🇬🇲' => 'bandera: Gambia',
-    '🇬🇳' => 'bandera: Guinea',
-    '🇬🇵' => 'bandera: Guadalupe',
-    '🇬🇶' => 'bandera: Guinea Ecuatorial',
-    '🇬🇷' => 'bandera: Grecia',
-    '🇬🇸' => 'bandera: Islas Georgia del Sur y Sándwich del Sur',
-    '🇬🇹' => 'bandera: Guatemala',
-    '🇬🇺' => 'bandera: Guam',
-    '🇬🇼' => 'bandera: Guinea-Bisáu',
-    '🇬🇾' => 'bandera: Guyana',
-    '🇭🇰' => 'bandera: RAE de Hong Kong (China)',
-    '🇭🇲' => 'bandera: Islas Heard y McDonald',
-    '🇭🇳' => 'bandera: Honduras',
-    '🇭🇷' => 'bandera: Croacia',
-    '🇭🇹' => 'bandera: Haití',
-    '🇭🇺' => 'bandera: Hungría',
-    '🇮🇨' => 'bandera: Islas Canarias',
-    '🇮🇩' => 'bandera: Indonesia',
-    '🇮🇪' => 'bandera: Irlanda',
-    '🇮🇱' => 'bandera: Israel',
-    '🇮🇲' => 'bandera: Isla de Man',
-    '🇮🇳' => 'bandera: India',
-    '🇮🇴' => 'bandera: Territorio Británico del Océano Índico',
-    '🇮🇶' => 'bandera: Irak',
-    '🇮🇷' => 'bandera: Irán',
-    '🇮🇸' => 'bandera: Islandia',
-    '🇮🇹' => 'bandera: Italia',
-    '🇯🇪' => 'bandera: Jersey',
-    '🇯🇲' => 'bandera: Jamaica',
-    '🇯🇴' => 'bandera: Jordania',
-    '🇯🇵' => 'bandera: Japón',
-    '🇰🇪' => 'bandera: Kenia',
-    '🇰🇬' => 'bandera: Kirguistán',
-    '🇰🇭' => 'bandera: Camboya',
-    '🇰🇮' => 'bandera: Kiribati',
-    '🇰🇲' => 'bandera: Comoras',
-    '🇰🇳' => 'bandera: San Cristóbal y Nieves',
-    '🇰🇵' => 'bandera: Corea del Norte',
-    '🇰🇷' => 'bandera: Corea del Sur',
-    '🇰🇼' => 'bandera: Kuwait',
-    '🇰🇾' => 'bandera: Islas Caimán',
-    '🇰🇿' => 'bandera: Kazajistán',
-    '🇱🇦' => 'bandera: Laos',
-    '🇱🇧' => 'bandera: Líbano',
-    '🇱🇨' => 'bandera: Santa Lucía',
-    '🇱🇮' => 'bandera: Liechtenstein',
-    '🇱🇰' => 'bandera: Sri Lanka',
-    '🇱🇷' => 'bandera: Liberia',
-    '🇱🇸' => 'bandera: Lesoto',
-    '🇱🇹' => 'bandera: Lituania',
-    '🇱🇺' => 'bandera: Luxemburgo',
-    '🇱🇻' => 'bandera: Letonia',
-    '🇱🇾' => 'bandera: Libia',
-    '🇲🇦' => 'bandera: Marruecos',
-    '🇲🇨' => 'bandera: Mónaco',
-    '🇲🇩' => 'bandera: Moldavia',
-    '🇲🇪' => 'bandera: Montenegro',
-    '🇲🇫' => 'bandera: San Martín',
-    '🇲🇬' => 'bandera: Madagascar',
-    '🇲🇭' => 'bandera: Islas Marshall',
-    '🇲🇰' => 'bandera: Macedonia del Norte',
-    '🇲🇱' => 'bandera: Mali',
-    '🇲🇲' => 'bandera: Myanmar (Birmania)',
-    '🇲🇳' => 'bandera: Mongolia',
-    '🇲🇴' => 'bandera: RAE de Macao (China)',
-    '🇲🇵' => 'bandera: Islas Marianas del Norte',
-    '🇲🇶' => 'bandera: Martinica',
-    '🇲🇷' => 'bandera: Mauritania',
-    '🇲🇸' => 'bandera: Montserrat',
-    '🇲🇹' => 'bandera: Malta',
-    '🇲🇺' => 'bandera: Mauricio',
-    '🇲🇻' => 'bandera: Maldivas',
-    '🇲🇼' => 'bandera: Malaui',
-    '🇲🇽' => 'bandera: México',
-    '🇲🇾' => 'bandera: Malasia',
-    '🇲🇿' => 'bandera: Mozambique',
-    '🇳🇦' => 'bandera: Namibia',
-    '🇳🇨' => 'bandera: Nueva Caledonia',
-    '🇳🇪' => 'bandera: Níger',
-    '🇳🇫' => 'bandera: Isla Norfolk',
-    '🇳🇬' => 'bandera: Nigeria',
-    '🇳🇮' => 'bandera: Nicaragua',
-    '🇳🇱' => 'bandera: Países Bajos',
-    '🇳🇴' => 'bandera: Noruega',
-    '🇳🇵' => 'bandera: Nepal',
-    '🇳🇷' => 'bandera: Nauru',
-    '🇳🇺' => 'bandera: Niue',
-    '🇳🇿' => 'bandera: Nueva Zelanda',
-    '🇴🇲' => 'bandera: Omán',
-    '🇵🇦' => 'bandera: Panamá',
-    '🇵🇪' => 'bandera: Perú',
-    '🇵🇫' => 'bandera: Polinesia Francesa',
-    '🇵🇬' => 'bandera: Papúa Nueva Guinea',
-    '🇵🇭' => 'bandera: Filipinas',
-    '🇵🇰' => 'bandera: Pakistán',
-    '🇵🇱' => 'bandera: Polonia',
-    '🇵🇲' => 'bandera: San Pedro y Miquelón',
-    '🇵🇳' => 'bandera: Islas Pitcairn',
-    '🇵🇷' => 'bandera: Puerto Rico',
-    '🇵🇸' => 'bandera: Territorios Palestinos',
-    '🇵🇹' => 'bandera: Portugal',
-    '🇵🇼' => 'bandera: Palaos',
-    '🇵🇾' => 'bandera: Paraguay',
-    '🇶🇦' => 'bandera: Catar',
-    '🇷🇪' => 'bandera: Reunión',
-    '🇷🇴' => 'bandera: Rumania',
-    '🇷🇸' => 'bandera: Serbia',
-    '🇷🇺' => 'bandera: Rusia',
-    '🇷🇼' => 'bandera: Ruanda',
-    '🇸🇦' => 'bandera: Arabia Saudita',
-    '🇸🇧' => 'bandera: Islas Salomón',
-    '🇸🇨' => 'bandera: Seychelles',
-    '🇸🇩' => 'bandera: Sudán',
-    '🇸🇪' => 'bandera: Suecia',
-    '🇸🇬' => 'bandera: Singapur',
-    '🇸🇭' => 'bandera: Santa Elena',
-    '🇸🇮' => 'bandera: Eslovenia',
-    '🇸🇯' => 'bandera: Svalbard y Jan Mayen',
-    '🇸🇰' => 'bandera: Eslovaquia',
-    '🇸🇱' => 'bandera: Sierra Leona',
-    '🇸🇲' => 'bandera: San Marino',
-    '🇸🇳' => 'bandera: Senegal',
-    '🇸🇴' => 'bandera: Somalia',
-    '🇸🇷' => 'bandera: Surinam',
-    '🇸🇸' => 'bandera: Sudán del Sur',
-    '🇸🇹' => 'bandera: Santo Tomé y Príncipe',
-    '🇸🇻' => 'bandera: El Salvador',
-    '🇸🇽' => 'bandera: Sint Maarten',
-    '🇸🇾' => 'bandera: Siria',
-    '🇸🇿' => 'bandera: Esuatini',
-    '🇹🇦' => 'bandera: Tristán de Acuña',
-    '🇹🇨' => 'bandera: Islas Turcas y Caicos',
-    '🇹🇩' => 'bandera: Chad',
-    '🇹🇫' => 'bandera: Territorios Australes Franceses',
-    '🇹🇬' => 'bandera: Togo',
-    '🇹🇭' => 'bandera: Tailandia',
-    '🇹🇯' => 'bandera: Tayikistán',
-    '🇹🇰' => 'bandera: Tokelau',
-    '🇹🇱' => 'bandera: Timor Oriental',
-    '🇹🇲' => 'bandera: Turkmenistán',
-    '🇹🇳' => 'bandera: Túnez',
-    '🇹🇴' => 'bandera: Tonga',
-    '🇹🇷' => 'bandera: Turquía',
-    '🇹🇹' => 'bandera: Trinidad y Tobago',
-    '🇹🇻' => 'bandera: Tuvalu',
-    '🇹🇼' => 'bandera: Taiwán',
-    '🇹🇿' => 'bandera: Tanzania',
-    '🇺🇦' => 'bandera: Ucrania',
-    '🇺🇬' => 'bandera: Uganda',
-    '🇺🇲' => 'bandera: Islas Ultramarinas de EE.UU.',
-    '🇺🇳' => 'bandera: Naciones Unidas',
-    '🇺🇸' => 'bandera: Estados Unidos',
-    '🇺🇾' => 'bandera: Uruguay',
-    '🇺🇿' => 'bandera: Uzbekistán',
-    '🇻🇦' => 'bandera: Ciudad del Vaticano',
-    '🇻🇨' => 'bandera: San Vicente y las Granadinas',
-    '🇻🇪' => 'bandera: Venezuela',
-    '🇻🇬' => 'bandera: Islas Vírgenes Británicas',
-    '🇻🇮' => 'bandera: Islas Vírgenes de EE. UU.',
-    '🇻🇳' => 'bandera: Vietnam',
-    '🇻🇺' => 'bandera: Vanuatu',
-    '🇼🇫' => 'bandera: Wallis y Futuna',
-    '🇼🇸' => 'bandera: Samoa',
-    '🇽🇰' => 'bandera: Kosovo',
-    '🇾🇪' => 'bandera: Yemen',
-    '🇾🇹' => 'bandera: Mayotte',
-    '🇿🇦' => 'bandera: Sudáfrica',
-    '🇿🇲' => 'bandera: Zambia',
-    '🇿🇼' => 'bandera: Zimbabue',
-    '🔟' => 'tecla mayus: 10',
+    '🇦🇨' => 'Bandera: Isla Ascensión',
+    '🇦🇩' => 'Bandera: Andorra',
+    '🇦🇪' => 'Bandera: Emiratos Árabes Unidos',
+    '🇦🇫' => 'Bandera: Afganistán',
+    '🇦🇬' => 'Bandera: Antigua y Barbuda',
+    '🇦🇮' => 'Bandera: Anguila',
+    '🇦🇱' => 'Bandera: Albania',
+    '🇦🇲' => 'Bandera: Armenia',
+    '🇦🇴' => 'Bandera: Angola',
+    '🇦🇶' => 'Bandera: Antártida',
+    '🇦🇷' => 'Bandera: Argentina',
+    '🇦🇸' => 'Bandera: Samoa Americana',
+    '🇦🇹' => 'Bandera: Austria',
+    '🇦🇺' => 'Bandera: Australia',
+    '🇦🇼' => 'Bandera: Aruba',
+    '🇦🇽' => 'Bandera: Islas Åland',
+    '🇦🇿' => 'Bandera: Azerbaiyán',
+    '🇧🇦' => 'Bandera: Bosnia-Herzegovina',
+    '🇧🇧' => 'Bandera: Barbados',
+    '🇧🇩' => 'Bandera: Bangladés',
+    '🇧🇪' => 'Bandera: Bélgica',
+    '🇧🇫' => 'Bandera: Burkina Faso',
+    '🇧🇬' => 'Bandera: Bulgaria',
+    '🇧🇭' => 'Bandera: Baréin',
+    '🇧🇮' => 'Bandera: Burundi',
+    '🇧🇯' => 'Bandera: Benín',
+    '🇧🇱' => 'Bandera: San Bartolomé',
+    '🇧🇲' => 'Bandera: Bermudas',
+    '🇧🇳' => 'Bandera: Brunéi',
+    '🇧🇴' => 'Bandera: Bolivia',
+    '🇧🇶' => 'Bandera: Caribe neerlandés',
+    '🇧🇷' => 'Bandera: Brasil',
+    '🇧🇸' => 'Bandera: Bahamas',
+    '🇧🇹' => 'Bandera: Bután',
+    '🇧🇻' => 'Bandera: Isla Bouvet',
+    '🇧🇼' => 'Bandera: Botsuana',
+    '🇧🇾' => 'Bandera: Bielorrusia',
+    '🇧🇿' => 'Bandera: Belice',
+    '🇨🇦' => 'Bandera: Canadá',
+    '🇨🇨' => 'Bandera: Islas Cocos',
+    '🇨🇩' => 'Bandera: República Democrática del Congo',
+    '🇨🇫' => 'Bandera: República Centroafricana',
+    '🇨🇬' => 'Bandera: República del Congo',
+    '🇨🇭' => 'Bandera: Suiza',
+    '🇨🇮' => 'Bandera: Costa de Marfil',
+    '🇨🇰' => 'Bandera: Islas Cook',
+    '🇨🇱' => 'Bandera: Chile',
+    '🇨🇲' => 'Bandera: Camerún',
+    '🇨🇳' => 'Bandera: China',
+    '🇨🇴' => 'Bandera: Colombia',
+    '🇨🇵' => 'Bandera: Isla Clipperton',
+    '🇨🇶' => 'Bandera: Sark',
+    '🇨🇷' => 'Bandera: Costa Rica',
+    '🇨🇺' => 'Bandera: Cuba',
+    '🇨🇻' => 'Bandera: Cabo Verde',
+    '🇨🇼' => 'Bandera: Curazao',
+    '🇨🇽' => 'Bandera: Isla de Navidad',
+    '🇨🇾' => 'Bandera: Chipre',
+    '🇨🇿' => 'Bandera: Chequia',
+    '🇩🇪' => 'Bandera: Alemania',
+    '🇩🇬' => 'Bandera: Diego García',
+    '🇩🇯' => 'Bandera: Yibuti',
+    '🇩🇰' => 'Bandera: Dinamarca',
+    '🇩🇲' => 'Bandera: Dominica',
+    '🇩🇴' => 'Bandera: República Dominicana',
+    '🇩🇿' => 'Bandera: Argelia',
+    '🇪🇦' => 'Bandera: Ceuta y Melilla',
+    '🇪🇨' => 'Bandera: Ecuador',
+    '🇪🇪' => 'Bandera: Estonia',
+    '🇪🇬' => 'Bandera: Egipto',
+    '🇪🇭' => 'Bandera: Sáhara Occidental',
+    '🇪🇷' => 'Bandera: Eritrea',
+    '🇪🇸' => 'Bandera: España',
+    '🇪🇹' => 'Bandera: Etiopía',
+    '🇪🇺' => 'Bandera: Unión Europea',
+    '🇫🇮' => 'Bandera: Finlandia',
+    '🇫🇯' => 'Bandera: Fiyi',
+    '🇫🇰' => 'Bandera: Islas Malvinas',
+    '🇫🇲' => 'Bandera: Micronesia',
+    '🇫🇴' => 'Bandera: Islas Feroe',
+    '🇫🇷' => 'Bandera: Francia',
+    '🇬🇦' => 'Bandera: Gabón',
+    '🇬🇧' => 'Bandera: Reino Unido',
+    '🇬🇩' => 'Bandera: Granada',
+    '🇬🇪' => 'Bandera: Georgia',
+    '🇬🇫' => 'Bandera: Guayana Francesa',
+    '🇬🇬' => 'Bandera: Guernesey',
+    '🇬🇭' => 'Bandera: Ghana',
+    '🇬🇮' => 'Bandera: Gibraltar',
+    '🇬🇱' => 'Bandera: Groenlandia',
+    '🇬🇲' => 'Bandera: Gambia',
+    '🇬🇳' => 'Bandera: Guinea',
+    '🇬🇵' => 'Bandera: Guadalupe',
+    '🇬🇶' => 'Bandera: Guinea Ecuatorial',
+    '🇬🇷' => 'Bandera: Grecia',
+    '🇬🇸' => 'Bandera: Islas Georgia del Sur y Sándwich del Sur',
+    '🇬🇹' => 'Bandera: Guatemala',
+    '🇬🇺' => 'Bandera: Guam',
+    '🇬🇼' => 'Bandera: Guinea-Bisáu',
+    '🇬🇾' => 'Bandera: Guyana',
+    '🇭🇰' => 'Bandera: RAE de Hong Kong (China)',
+    '🇭🇲' => 'Bandera: Islas Heard y McDonald',
+    '🇭🇳' => 'Bandera: Honduras',
+    '🇭🇷' => 'Bandera: Croacia',
+    '🇭🇹' => 'Bandera: Haití',
+    '🇭🇺' => 'Bandera: Hungría',
+    '🇮🇨' => 'Bandera: Islas Canarias',
+    '🇮🇩' => 'Bandera: Indonesia',
+    '🇮🇪' => 'Bandera: Irlanda',
+    '🇮🇱' => 'Bandera: Israel',
+    '🇮🇲' => 'Bandera: Isla de Man',
+    '🇮🇳' => 'Bandera: India',
+    '🇮🇴' => 'Bandera: Territorio Británico del Océano Índico',
+    '🇮🇶' => 'Bandera: Irak',
+    '🇮🇷' => 'Bandera: Irán',
+    '🇮🇸' => 'Bandera: Islandia',
+    '🇮🇹' => 'Bandera: Italia',
+    '🇯🇪' => 'Bandera: Jersey',
+    '🇯🇲' => 'Bandera: Jamaica',
+    '🇯🇴' => 'Bandera: Jordania',
+    '🇯🇵' => 'Bandera: Japón',
+    '🇰🇪' => 'Bandera: Kenia',
+    '🇰🇬' => 'Bandera: Kirguistán',
+    '🇰🇭' => 'Bandera: Camboya',
+    '🇰🇮' => 'Bandera: Kiribati',
+    '🇰🇲' => 'Bandera: Comoras',
+    '🇰🇳' => 'Bandera: San Cristóbal y Nieves',
+    '🇰🇵' => 'Bandera: Corea del Norte',
+    '🇰🇷' => 'Bandera: Corea del Sur',
+    '🇰🇼' => 'Bandera: Kuwait',
+    '🇰🇾' => 'Bandera: Islas Caimán',
+    '🇰🇿' => 'Bandera: Kazajistán',
+    '🇱🇦' => 'Bandera: Laos',
+    '🇱🇧' => 'Bandera: Líbano',
+    '🇱🇨' => 'Bandera: Santa Lucía',
+    '🇱🇮' => 'Bandera: Liechtenstein',
+    '🇱🇰' => 'Bandera: Sri Lanka',
+    '🇱🇷' => 'Bandera: Liberia',
+    '🇱🇸' => 'Bandera: Lesoto',
+    '🇱🇹' => 'Bandera: Lituania',
+    '🇱🇺' => 'Bandera: Luxemburgo',
+    '🇱🇻' => 'Bandera: Letonia',
+    '🇱🇾' => 'Bandera: Libia',
+    '🇲🇦' => 'Bandera: Marruecos',
+    '🇲🇨' => 'Bandera: Mónaco',
+    '🇲🇩' => 'Bandera: Moldavia',
+    '🇲🇪' => 'Bandera: Montenegro',
+    '🇲🇫' => 'Bandera: San Martín',
+    '🇲🇬' => 'Bandera: Madagascar',
+    '🇲🇭' => 'Bandera: Islas Marshall',
+    '🇲🇰' => 'Bandera: Macedonia del Norte',
+    '🇲🇱' => 'Bandera: Mali',
+    '🇲🇲' => 'Bandera: Myanmar (Birmania)',
+    '🇲🇳' => 'Bandera: Mongolia',
+    '🇲🇴' => 'Bandera: RAE de Macao (China)',
+    '🇲🇵' => 'Bandera: Islas Marianas del Norte',
+    '🇲🇶' => 'Bandera: Martinica',
+    '🇲🇷' => 'Bandera: Mauritania',
+    '🇲🇸' => 'Bandera: Montserrat',
+    '🇲🇹' => 'Bandera: Malta',
+    '🇲🇺' => 'Bandera: Mauricio',
+    '🇲🇻' => 'Bandera: Maldivas',
+    '🇲🇼' => 'Bandera: Malaui',
+    '🇲🇽' => 'Bandera: México',
+    '🇲🇾' => 'Bandera: Malasia',
+    '🇲🇿' => 'Bandera: Mozambique',
+    '🇳🇦' => 'Bandera: Namibia',
+    '🇳🇨' => 'Bandera: Nueva Caledonia',
+    '🇳🇪' => 'Bandera: Níger',
+    '🇳🇫' => 'Bandera: Isla Norfolk',
+    '🇳🇬' => 'Bandera: Nigeria',
+    '🇳🇮' => 'Bandera: Nicaragua',
+    '🇳🇱' => 'Bandera: Países Bajos',
+    '🇳🇴' => 'Bandera: Noruega',
+    '🇳🇵' => 'Bandera: Nepal',
+    '🇳🇷' => 'Bandera: Nauru',
+    '🇳🇺' => 'Bandera: Niue',
+    '🇳🇿' => 'Bandera: Nueva Zelanda',
+    '🇴🇲' => 'Bandera: Omán',
+    '🇵🇦' => 'Bandera: Panamá',
+    '🇵🇪' => 'Bandera: Perú',
+    '🇵🇫' => 'Bandera: Polinesia Francesa',
+    '🇵🇬' => 'Bandera: Papúa Nueva Guinea',
+    '🇵🇭' => 'Bandera: Filipinas',
+    '🇵🇰' => 'Bandera: Pakistán',
+    '🇵🇱' => 'Bandera: Polonia',
+    '🇵🇲' => 'Bandera: San Pedro y Miquelón',
+    '🇵🇳' => 'Bandera: Islas Pitcairn',
+    '🇵🇷' => 'Bandera: Puerto Rico',
+    '🇵🇸' => 'Bandera: Territorios Palestinos',
+    '🇵🇹' => 'Bandera: Portugal',
+    '🇵🇼' => 'Bandera: Palaos',
+    '🇵🇾' => 'Bandera: Paraguay',
+    '🇶🇦' => 'Bandera: Catar',
+    '🇷🇪' => 'Bandera: Reunión',
+    '🇷🇴' => 'Bandera: Rumania',
+    '🇷🇸' => 'Bandera: Serbia',
+    '🇷🇺' => 'Bandera: Rusia',
+    '🇷🇼' => 'Bandera: Ruanda',
+    '🇸🇦' => 'Bandera: Arabia Saudita',
+    '🇸🇧' => 'Bandera: Islas Salomón',
+    '🇸🇨' => 'Bandera: Seychelles',
+    '🇸🇩' => 'Bandera: Sudán',
+    '🇸🇪' => 'Bandera: Suecia',
+    '🇸🇬' => 'Bandera: Singapur',
+    '🇸🇭' => 'Bandera: Santa Elena',
+    '🇸🇮' => 'Bandera: Eslovenia',
+    '🇸🇯' => 'Bandera: Svalbard y Jan Mayen',
+    '🇸🇰' => 'Bandera: Eslovaquia',
+    '🇸🇱' => 'Bandera: Sierra Leona',
+    '🇸🇲' => 'Bandera: San Marino',
+    '🇸🇳' => 'Bandera: Senegal',
+    '🇸🇴' => 'Bandera: Somalia',
+    '🇸🇷' => 'Bandera: Surinam',
+    '🇸🇸' => 'Bandera: Sudán del Sur',
+    '🇸🇹' => 'Bandera: Santo Tomé y Príncipe',
+    '🇸🇻' => 'Bandera: El Salvador',
+    '🇸🇽' => 'Bandera: Sint Maarten',
+    '🇸🇾' => 'Bandera: Siria',
+    '🇸🇿' => 'Bandera: Esuatini',
+    '🇹🇦' => 'Bandera: Tristán de Acuña',
+    '🇹🇨' => 'Bandera: Islas Turcas y Caicos',
+    '🇹🇩' => 'Bandera: Chad',
+    '🇹🇫' => 'Bandera: Territorios Australes Franceses',
+    '🇹🇬' => 'Bandera: Togo',
+    '🇹🇭' => 'Bandera: Tailandia',
+    '🇹🇯' => 'Bandera: Tayikistán',
+    '🇹🇰' => 'Bandera: Tokelau',
+    '🇹🇱' => 'Bandera: Timor Oriental',
+    '🇹🇲' => 'Bandera: Turkmenistán',
+    '🇹🇳' => 'Bandera: Túnez',
+    '🇹🇴' => 'Bandera: Tonga',
+    '🇹🇷' => 'Bandera: Turquía',
+    '🇹🇹' => 'Bandera: Trinidad y Tobago',
+    '🇹🇻' => 'Bandera: Tuvalu',
+    '🇹🇼' => 'Bandera: Taiwán',
+    '🇹🇿' => 'Bandera: Tanzania',
+    '🇺🇦' => 'Bandera: Ucrania',
+    '🇺🇬' => 'Bandera: Uganda',
+    '🇺🇲' => 'Bandera: Islas Ultramarinas de EE.UU.',
+    '🇺🇳' => 'Bandera: Naciones Unidas',
+    '🇺🇸' => 'Bandera: Estados Unidos',
+    '🇺🇾' => 'Bandera: Uruguay',
+    '🇺🇿' => 'Bandera: Uzbekistán',
+    '🇻🇦' => 'Bandera: Ciudad del Vaticano',
+    '🇻🇨' => 'Bandera: San Vicente y las Granadinas',
+    '🇻🇪' => 'Bandera: Venezuela',
+    '🇻🇬' => 'Bandera: Islas Vírgenes Británicas',
+    '🇻🇮' => 'Bandera: Islas Vírgenes de EE. UU.',
+    '🇻🇳' => 'Bandera: Vietnam',
+    '🇻🇺' => 'Bandera: Vanuatu',
+    '🇼🇫' => 'Bandera: Wallis y Futuna',
+    '🇼🇸' => 'Bandera: Samoa',
+    '🇽🇰' => 'Bandera: Kosovo',
+    '🇾🇪' => 'Bandera: Yemen',
+    '🇾🇹' => 'Bandera: Mayotte',
+    '🇿🇦' => 'Bandera: Sudáfrica',
+    '🇿🇲' => 'Bandera: Zambia',
+    '🇿🇼' => 'Bandera: Zimbabue',
+    '🔟' => 'Teclas: 10',
     '🏻' => 'tono de piel claro',
     '🏼' => 'tono de piel claro medio',
     '🏽' => 'tono de piel medio',
     '🏾' => 'tono de piel oscuro medio',
     '🏿' => 'tono de piel oscuro',
-    '🪉' => 'arpa',
-    '🪏' => 'pala',
-    '🪾' => 'árbol sin hojas',
-    '🫆' => 'huella dactilar',
-    '🫜' => 'tubérculo',
-    '🫟' => 'salpicadura',
-    '🫩' => 'cara con ojeras',
     '😀' => 'cara sonriendo',
     '😃' => 'cara sonriendo con ojos grandes',
     '😄' => 'cara sonriendo con ojos sonrientes',
@@ -2450,6 +2600,7 @@
     '😪' => 'cara de sueño',
     '🤤' => 'cara babeando',
     '😴' => 'cara durmiendo',
+    '🫩' => 'cara con ojeras',
     '😷' => 'cara con barbijo',
     '🤒' => 'cara con termómetro',
     '🤕' => 'cara con la cabeza vendada',
@@ -2476,6 +2627,7 @@
     '😯' => 'cara estupefacta',
     '😲' => 'cara asombrada',
     '😳' => 'cara sonrojada',
+    '🫪' => 'cara de susto',
     '🥺' => 'cara suplicante',
     '🥹' => 'cara aguantándose las lágrimas',
     '😦' => 'cara boquiabierta',
@@ -2547,6 +2699,7 @@
     '💋' => 'marca de beso',
     '💯' => '100 puntos',
     '💢' => 'enojo',
+    '🫯' => 'nube de pelea',
     '💥' => 'colisión',
     '💫' => 'mareado',
     '💦' => 'gotas de sudor',
@@ -2670,6 +2823,7 @@
     '🧞' => 'genio',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'criatura peluda',
     '💆' => 'masaje facial',
     '💇' => 'corte de pelo',
     '🚶' => 'persona caminando',
@@ -2713,6 +2867,7 @@
     '🫂' => 'personas abrazándose',
     '👪' => 'familia',
     '👣' => 'huellas',
+    '🫆' => 'huella dactilar',
     '🦰' => 'pelo pelirrojo',
     '🦱' => 'pelo rizado',
     '🦳' => 'pelo blanco',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ballena soplando un chorro de agua',
     '🐋' => 'ballena',
     '🐬' => 'delfín',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'pez',
     '🐠' => 'pez tropical',
@@ -2821,6 +2977,11 @@
     '🐚' => 'caracola marina',
     '🪸' => 'coral',
     '🪼' => 'medusa',
+    '🦀' => 'cangrejo',
+    '🦞' => 'langosta',
+    '🦐' => 'camarón',
+    '🦑' => 'calamar',
+    '🦪' => 'ostra',
     '🐌' => 'caracol',
     '🦋' => 'mariposa',
     '🐛' => 'oruga',
@@ -2865,6 +3026,7 @@
     '🪹' => 'nido vacío',
     '🪺' => 'nido con huevos',
     '🍄' => 'champiñón',
+    '🪾' => 'árbol sin hojas',
     '🍇' => 'uvas',
     '🍈' => 'melón',
     '🍉' => 'sandía',
@@ -2901,6 +3063,7 @@
     '🌰' => 'castaña',
     '🫚' => 'raíz de jengibre',
     '🫛' => 'vaina',
+    '🫜' => 'tubérculo',
     '🍞' => 'pan',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2952,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'galleta de la fortuna',
     '🥡' => 'caja para llevar',
-    '🦀' => 'cangrejo',
-    '🦞' => 'langosta',
-    '🦐' => 'camarón',
-    '🦑' => 'calamar',
-    '🦪' => 'ostra',
     '🍦' => 'helado en cucurucho',
     '🍧' => 'hielo molido',
     '🍨' => 'helado',
@@ -3007,6 +3165,7 @@
     '🧭' => 'brújula',
     '🏔' => 'montañas nevadas',
     '⛰' => 'montañas',
+    '🛘' => 'alud',
     '🌋' => 'volcán',
     '🗻' => 'monte Fuji',
     '🏕' => 'campamento',
@@ -3364,19 +3523,21 @@
     '🎚' => 'control deslizante',
     '🎛' => 'perillas',
     '🎤' => 'micrófono',
-    '🎧' => 'auriculares',
+    '🎧' => 'audífonos',
     '📻' => 'radio',
     '🎷' => 'saxofón',
+    '🎺' => 'trompeta',
+    '🪊' => 'trombón',
     '🪗' => 'acordeón',
     '🎸' => 'guitarra',
     '🎹' => 'teclado musical',
-    '🎺' => 'trompeta',
     '🎻' => 'violín',
     '🪕' => 'banjo',
     '🥁' => 'tambor',
     '🪘' => 'tamboril',
     '🪇' => 'maracas',
     '🪈' => 'flauta',
+    '🪉' => 'arpa',
     '📱' => 'teléfono móvil',
     '📲' => 'teléfono móvil con una flecha',
     '☎' => 'teléfono de línea',
@@ -3430,8 +3591,9 @@
     '📑' => 'pestañas de marcador',
     '🔖' => 'marcapáginas',
     '🏷' => 'etiqueta',
-    '💰' => 'bolsa de dinero',
     '🪙' => 'moneda',
+    '💰' => 'bolsa de dinero',
+    '🪎' => 'cofre del tesoro',
     '💴' => 'billete de yen',
     '💵' => 'billete de dólar',
     '💶' => 'billete de euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'caja de herramientas',
     '🧲' => 'imán',
     '🪜' => 'escalera',
+    '🪏' => 'pala',
     '⚗' => 'alambique',
     '🧪' => 'tubo de ensayo',
     '🧫' => 'placa de petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'estrella de ocho puntas',
     '❇' => 'chispa',
     '™' => 'marca comercial',
+    '🫟' => 'salpicadura',
     '🔠' => 'letras latinas mayúsculas',
     '🔡' => 'letras latinas minúsculas',
     '🔢' => 'números',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_mx.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_mx.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_mx.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_mx.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'beso: mujer, mujer, tono de piel oscuro, tono de piel medio',
     '👩🏿‍❤‍💋‍👩🏾' => 'beso: mujer, mujer, tono de piel oscuro, tono de piel oscuro medio',
     '👩🏿‍❤‍💋‍👩🏿' => 'beso: mujer, mujer, tono de piel oscuro',
+    '🧑🏻‍🫯‍🧑🏼' => 'personas luchando: tono de piel claro y tono de piel claro medio',
+    '🧑🏻‍🫯‍🧑🏽' => 'personas luchando: tono de piel claro y tono de piel medio',
+    '🧑🏻‍🫯‍🧑🏾' => 'personas luchando: tono de piel claro y tono de piel oscuro medio',
+    '🧑🏻‍🫯‍🧑🏿' => 'personas luchando: tono de piel claro y tono de piel oscuro',
+    '🧑🏼‍🫯‍🧑🏻' => 'personas luchando: tono de piel claro medio y tono de piel claro',
+    '🧑🏼‍🫯‍🧑🏽' => 'personas luchando: tono de piel claro medio y tono de piel medio',
+    '🧑🏼‍🫯‍🧑🏾' => 'personas luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '🧑🏼‍🫯‍🧑🏿' => 'personas luchando: tono de piel claro medio y tono de piel oscuro',
+    '🧑🏽‍🫯‍🧑🏻' => 'personas luchando: tono de piel medio y tono de piel claro',
+    '🧑🏽‍🫯‍🧑🏼' => 'personas luchando: tono de piel medio y tono de piel claro medio',
+    '🧑🏽‍🫯‍🧑🏾' => 'personas luchando: tono de piel medio y tono de piel oscuro medio',
+    '🧑🏽‍🫯‍🧑🏿' => 'personas luchando: tono de piel medio y tono de piel oscuro',
+    '🧑🏾‍🫯‍🧑🏻' => 'personas luchando: tono de piel oscuro medio y tono de piel claro',
+    '🧑🏾‍🫯‍🧑🏼' => 'personas luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '🧑🏾‍🫯‍🧑🏽' => 'personas luchando: tono de piel oscuro medio y tono de piel medio',
+    '🧑🏾‍🫯‍🧑🏿' => 'personas luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '🧑🏿‍🫯‍🧑🏻' => 'personas luchando: tono de piel oscuro y tono de piel claro',
+    '🧑🏿‍🫯‍🧑🏼' => 'personas luchando: tono de piel oscuro y tono de piel claro medio',
+    '🧑🏿‍🫯‍🧑🏽' => 'personas luchando: tono de piel oscuro y tono de piel medio',
+    '🧑🏿‍🫯‍🧑🏾' => 'personas luchando: tono de piel oscuro y tono de piel oscuro medio',
     '🧑🏻‍❤‍🧑🏼' => 'hombre y mujer enamorados: persona, persona, tono de piel claro, tono de piel claro medio',
     '🧑🏻‍❤‍🧑🏽' => 'hombre y mujer enamorados: persona, persona, tono de piel claro, tono de piel medio',
     '🧑🏻‍❤‍🧑🏾' => 'hombre y mujer enamorados: persona, persona, tono de piel claro, tono de piel oscuro medio',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'hombre y mujer enamorados: persona, persona, tono de piel oscuro, tono de piel claro medio',
     '🧑🏿‍❤‍🧑🏽' => 'hombre y mujer enamorados: persona, persona, tono de piel oscuro, tono de piel medio',
     '🧑🏿‍❤‍🧑🏾' => 'hombre y mujer enamorados: persona, persona, tono de piel oscuro, tono de piel oscuro medio',
+    '🧑🏻‍🐰‍🧑🏼' => 'personas con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '🧑🏻‍🐰‍🧑🏽' => 'personas con orejas de conejo: tono de piel claro y tono de piel medio',
+    '🧑🏻‍🐰‍🧑🏾' => 'personas con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '🧑🏻‍🐰‍🧑🏿' => 'personas con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '🧑🏼‍🐰‍🧑🏻' => 'personas con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '🧑🏼‍🐰‍🧑🏽' => 'personas con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '🧑🏼‍🐰‍🧑🏾' => 'personas con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '🧑🏼‍🐰‍🧑🏿' => 'personas con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '🧑🏽‍🐰‍🧑🏻' => 'personas con orejas de conejo: tono de piel medio y tono de piel claro',
+    '🧑🏽‍🐰‍🧑🏼' => 'personas con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '🧑🏽‍🐰‍🧑🏾' => 'personas con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '🧑🏽‍🐰‍🧑🏿' => 'personas con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '🧑🏾‍🐰‍🧑🏻' => 'personas con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '🧑🏾‍🐰‍🧑🏼' => 'personas con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '🧑🏾‍🐰‍🧑🏽' => 'personas con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '🧑🏾‍🐰‍🧑🏿' => 'personas con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '🧑🏿‍🐰‍🧑🏻' => 'personas con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '🧑🏿‍🐰‍🧑🏼' => 'personas con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '🧑🏿‍🐰‍🧑🏽' => 'personas con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '🧑🏿‍🐰‍🧑🏾' => 'personas con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
+    '👨🏻‍🫯‍👨🏼' => 'hombres luchando: tono de piel claro y tono de piel claro medio',
+    '👨🏻‍🫯‍👨🏽' => 'hombres luchando: tono de piel claro y tono de piel medio',
+    '👨🏻‍🫯‍👨🏾' => 'hombres luchando: tono de piel claro y tono de piel oscuro medio',
+    '👨🏻‍🫯‍👨🏿' => 'hombres luchando: tono de piel claro y tono de piel oscuro',
+    '👨🏼‍🫯‍👨🏻' => 'hombres luchando: tono de piel claro medio y tono de piel claro',
+    '👨🏼‍🫯‍👨🏽' => 'hombres luchando: tono de piel claro medio y tono de piel medio',
+    '👨🏼‍🫯‍👨🏾' => 'hombres luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '👨🏼‍🫯‍👨🏿' => 'hombres luchando: tono de piel claro medio y tono de piel oscuro',
+    '👨🏽‍🫯‍👨🏻' => 'hombres luchando: tono de piel medio y tono de piel claro',
+    '👨🏽‍🫯‍👨🏼' => 'hombres luchando: tono de piel medio y tono de piel claro medio',
+    '👨🏽‍🫯‍👨🏾' => 'hombres luchando: tono de piel medio y tono de piel oscuro medio',
+    '👨🏽‍🫯‍👨🏿' => 'hombres luchando: tono de piel medio y tono de piel oscuro',
+    '👨🏾‍🫯‍👨🏻' => 'hombres luchando: tono de piel oscuro medio y tono de piel claro',
+    '👨🏾‍🫯‍👨🏼' => 'hombres luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '👨🏾‍🫯‍👨🏽' => 'hombres luchando: tono de piel oscuro medio y tono de piel medio',
+    '👨🏾‍🫯‍👨🏿' => 'hombres luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '👨🏿‍🫯‍👨🏻' => 'hombres luchando: tono de piel oscuro y tono de piel claro',
+    '👨🏿‍🫯‍👨🏼' => 'hombres luchando: tono de piel oscuro y tono de piel claro medio',
+    '👨🏿‍🫯‍👨🏽' => 'hombres luchando: tono de piel oscuro y tono de piel medio',
+    '👨🏿‍🫯‍👨🏾' => 'hombres luchando: tono de piel oscuro y tono de piel oscuro medio',
     '👨🏻‍❤‍👨🏻' => 'hombre y mujer enamorados: hombre, hombre, tono de piel claro',
     '👨🏻‍❤‍👨🏼' => 'hombre y mujer enamorados: hombre, hombre, tono de piel claro, tono de piel claro medio',
     '👨🏻‍❤‍👨🏽' => 'hombre y mujer enamorados: hombre, hombre, tono de piel claro, tono de piel medio',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'hombre y mujer enamorados: hombre, hombre, tono de piel oscuro, tono de piel medio',
     '👨🏿‍❤‍👨🏾' => 'hombre y mujer enamorados: hombre, hombre, tono de piel oscuro, tono de piel oscuro medio',
     '👨🏿‍❤‍👨🏿' => 'hombre y mujer enamorados: hombre, hombre, tono de piel oscuro',
+    '👨🏻‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '👨🏻‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel claro y tono de piel medio',
+    '👨🏻‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '👨🏻‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '👨🏼‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '👨🏼‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '👨🏼‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '👨🏼‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '👨🏽‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel medio y tono de piel claro',
+    '👨🏽‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '👨🏽‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '👨🏽‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '👨🏾‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '👨🏾‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '👨🏾‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '👨🏾‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '👨🏿‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '👨🏿‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '👨🏿‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '👨🏿‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
+    '👩🏻‍🫯‍👩🏼' => 'mujeres luchando: tono de piel claro y tono de piel claro medio',
+    '👩🏻‍🫯‍👩🏽' => 'mujeres luchando: tono de piel claro y tono de piel medio',
+    '👩🏻‍🫯‍👩🏾' => 'mujeres luchando: tono de piel claro y tono de piel oscuro medio',
+    '👩🏻‍🫯‍👩🏿' => 'mujeres luchando: tono de piel claro y tono de piel oscuro',
+    '👩🏼‍🫯‍👩🏻' => 'mujeres luchando: tono de piel claro medio y tono de piel claro',
+    '👩🏼‍🫯‍👩🏽' => 'mujeres luchando: tono de piel claro medio y tono de piel medio',
+    '👩🏼‍🫯‍👩🏾' => 'mujeres luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '👩🏼‍🫯‍👩🏿' => 'mujeres luchando: tono de piel claro medio y tono de piel oscuro',
+    '👩🏽‍🫯‍👩🏻' => 'mujeres luchando: tono de piel medio y tono de piel claro',
+    '👩🏽‍🫯‍👩🏼' => 'mujeres luchando: tono de piel medio y tono de piel claro medio',
+    '👩🏽‍🫯‍👩🏾' => 'mujeres luchando: tono de piel medio y tono de piel oscuro medio',
+    '👩🏽‍🫯‍👩🏿' => 'mujeres luchando: tono de piel medio y tono de piel oscuro',
+    '👩🏾‍🫯‍👩🏻' => 'mujeres luchando: tono de piel oscuro medio y tono de piel claro',
+    '👩🏾‍🫯‍👩🏼' => 'mujeres luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '👩🏾‍🫯‍👩🏽' => 'mujeres luchando: tono de piel oscuro medio y tono de piel medio',
+    '👩🏾‍🫯‍👩🏿' => 'mujeres luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '👩🏿‍🫯‍👩🏻' => 'mujeres luchando: tono de piel oscuro y tono de piel claro',
+    '👩🏿‍🫯‍👩🏼' => 'mujeres luchando: tono de piel oscuro y tono de piel claro medio',
+    '👩🏿‍🫯‍👩🏽' => 'mujeres luchando: tono de piel oscuro y tono de piel medio',
+    '👩🏿‍🫯‍👩🏾' => 'mujeres luchando: tono de piel oscuro y tono de piel oscuro medio',
     '👩🏻‍❤‍👨🏻' => 'hombre y mujer enamorados: mujer, hombre, tono de piel claro',
     '👩🏻‍❤‍👨🏼' => 'hombre y mujer enamorados: mujer, hombre, tono de piel claro, tono de piel claro medio',
     '👩🏻‍❤‍👨🏽' => 'hombre y mujer enamorados: mujer, hombre, tono de piel claro, tono de piel medio',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'hombre y mujer enamorados: mujer, mujer, tono de piel oscuro, tono de piel medio',
     '👩🏿‍❤‍👩🏾' => 'hombre y mujer enamorados: mujer, mujer, tono de piel oscuro, tono de piel oscuro medio',
     '👩🏿‍❤‍👩🏿' => 'hombre y mujer enamorados: mujer, mujer, tono de piel oscuro',
+    '👩🏻‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '👩🏻‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel medio',
+    '👩🏻‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '👩🏻‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '👩🏼‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '👩🏼‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '👩🏼‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '👩🏼‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '👩🏽‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel claro',
+    '👩🏽‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '👩🏽‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '👩🏽‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '👩🏾‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '👩🏾‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '👩🏾‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '👩🏾‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '👩🏿‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '👩🏿‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '👩🏿‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '👩🏿‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
     '🧑🏻‍🤝‍🧑🏻' => 'dos personas de la mano: tono de piel claro',
     '🧑🏻‍🤝‍🧑🏼' => 'dos personas de la mano: tono de piel claro y tono de piel claro medio',
     '🧑🏻‍🤝‍🧑🏽' => 'dos personas de la mano: tono de piel claro y tono de piel medio',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'Bandera: Escocia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'Bandera: Gales',
     '🧑‍🧑‍🧒‍🧒' => 'familia: adulto, adulto, niño, niño',
-    '🚶🏻‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏼‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏽‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏾‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏿‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏻‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏼‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏽‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏾‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏿‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🧎🏻‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏼‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏽‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏾‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏿‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏻‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏼‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏽‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏾‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏿‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧑🏻‍🦯‍➡' => 'Persona con bastón blanco hacia la derecha',
-    '🧑🏼‍🦯‍➡' => 'Persona con bastón blanco hacia la derecha',
-    '🧑🏽‍🦯‍➡' => 'Persona con bastón blanco hacia la derecha',
-    '🧑🏾‍🦯‍➡' => 'Persona con bastón blanco hacia la derecha',
-    '🧑🏿‍🦯‍➡' => 'Persona con bastón blanco hacia la derecha',
-    '👨🏻‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏼‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏽‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏾‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏿‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👩🏻‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏼‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏽‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏾‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏿‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '🧑🏻‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏼‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏽‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏾‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏿‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '👨🏻‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏼‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏽‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏾‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏿‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👩🏻‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏼‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏽‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏾‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏿‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏻‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏼‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏽‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏾‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏿‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '👨🏻‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏼‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏽‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏾‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏿‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👩🏻‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏼‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏽‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏾‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏿‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '🏃🏻‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏼‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏽‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏾‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏿‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏻‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏼‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏽‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏾‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏿‍♂‍➡' => 'hombre corriendo hacia la derecha',
+    '🚶🏻‍♀‍➡' => 'mujer caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍♀‍➡' => 'mujer caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍♀‍➡' => 'mujer caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍♀‍➡' => 'mujer caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍♀‍➡' => 'mujer caminando: tono de piel oscuro y hacia la derecha',
+    '🚶🏻‍♂‍➡' => 'hombre caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍♂‍➡' => 'hombre caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍♂‍➡' => 'hombre caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍♂‍➡' => 'hombre caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍♂‍➡' => 'hombre caminando: tono de piel oscuro y hacia la derecha',
+    '🧎🏻‍♀‍➡' => 'mujer de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍♀‍➡' => 'mujer de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍♀‍➡' => 'mujer de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍♀‍➡' => 'mujer de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍♀‍➡' => 'mujer de rodillas: tono de piel oscuro y hacia la derecha',
+    '🧎🏻‍♂‍➡' => 'hombre de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍♂‍➡' => 'hombre de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍♂‍➡' => 'hombre de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍♂‍➡' => 'hombre de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍♂‍➡' => 'hombre de rodillas: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦯‍➡' => 'Persona con bastón blanco: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦯‍➡' => 'Persona con bastón blanco: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦯‍➡' => 'Persona con bastón blanco: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦯‍➡' => 'Persona con bastón blanco: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦯‍➡' => 'Persona con bastón blanco: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦯‍➡' => 'hombre con bastón: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦯‍➡' => 'hombre con bastón: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦯‍➡' => 'hombre con bastón: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦯‍➡' => 'hombre con bastón: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦯‍➡' => 'hombre con bastón: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦯‍➡' => 'mujer con bastón: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦯‍➡' => 'mujer con bastón: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦯‍➡' => 'mujer con bastón: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦯‍➡' => 'mujer con bastón: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦯‍➡' => 'mujer con bastón: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '🏃🏻‍♀‍➡' => 'mujer corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍♀‍➡' => 'mujer corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍♀‍➡' => 'mujer corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍♀‍➡' => 'mujer corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍♀‍➡' => 'mujer corriendo: tono de piel oscuro y hacia la derecha',
+    '🏃🏻‍♂‍➡' => 'hombre corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍♂‍➡' => 'hombre corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍♂‍➡' => 'hombre corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍♂‍➡' => 'hombre corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍♂‍➡' => 'hombre corriendo: tono de piel oscuro y hacia la derecha',
     '🫱🏻‍🫲🏼' => 'apretón de manos: tono de piel claro y tono de piel claro medio',
     '🫱🏻‍🫲🏽' => 'apretón de manos: tono de piel claro y tono de piel medio',
     '🫱🏻‍🫲🏾' => 'apretón de manos: tono de piel claro y tono de piel oscuro medio',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'apretón de manos: tono de piel oscuro y tono de piel claro medio',
     '🫱🏿‍🫲🏽' => 'apretón de manos: tono de piel oscuro y tono de piel medio',
     '🫱🏿‍🫲🏾' => 'apretón de manos: tono de piel oscuro y tono de piel oscuro medio',
-    '🚶‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🧎‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧑‍🦯‍➡' => 'Persona con bastón blanco hacia la derecha',
-    '👨‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👩‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '🧑‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '👨‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👩‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '🧑‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '👨‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👩‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '🏃‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃‍♂‍➡' => 'hombre corriendo hacia la derecha',
+    '🚶‍♀‍➡' => 'mujer caminando: hacia la derecha',
+    '🚶‍♂‍➡' => 'hombre caminando: hacia la derecha',
+    '🧎‍♀‍➡' => 'mujer de rodillas: hacia la derecha',
+    '🧎‍♂‍➡' => 'hombre de rodillas: hacia la derecha',
+    '🧑‍🦯‍➡' => 'Persona con bastón blanco: hacia la derecha',
+    '👨‍🦯‍➡' => 'hombre con bastón: hacia la derecha',
+    '👩‍🦯‍➡' => 'mujer con bastón: hacia la derecha',
+    '🧑‍🦼‍➡' => 'persona en silla de ruedas eléctrica: hacia la derecha',
+    '👨‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: hacia la derecha',
+    '👩‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: hacia la derecha',
+    '🧑‍🦽‍➡' => 'persona en silla de ruedas manual: hacia la derecha',
+    '👨‍🦽‍➡' => 'hombre en silla de ruedas manual: hacia la derecha',
+    '👩‍🦽‍➡' => 'mujer en silla de ruedas manual: hacia la derecha',
+    '🏃‍♀‍➡' => 'mujer corriendo: hacia la derecha',
+    '🏃‍♂‍➡' => 'hombre corriendo: hacia la derecha',
     '👩‍❤‍👨' => 'hombre y mujer enamorados: mujer y hombre',
     '👨‍❤‍👨' => 'hombre y mujer enamorados: hombre y hombre',
     '👩‍❤‍👩' => 'hombre y mujer enamorados: mujer y mujer',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'persona: tono de piel medio y sin pelo',
     '🧑🏾‍🦲' => 'persona: tono de piel oscuro medio y sin pelo',
     '🧑🏿‍🦲' => 'persona: tono de piel oscuro y sin pelo',
+    '🧑🏻‍🩰' => 'bailarina de ballet: tono de piel claro',
+    '🧑🏼‍🩰' => 'bailarina de ballet: tono de piel claro medio',
+    '🧑🏽‍🩰' => 'bailarina de ballet: tono de piel medio',
+    '🧑🏾‍🩰' => 'bailarina de ballet: tono de piel oscuro medio',
+    '🧑🏿‍🩰' => 'bailarina de ballet: tono de piel oscuro',
     '🧔🏻‍♂' => 'hombre: tono de piel claro y barba',
     '🧔🏼‍♂' => 'hombre: tono de piel claro medio y barba',
     '🧔🏽‍♂' => 'hombre: tono de piel medio y barba',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'mujer caminando: tono de piel medio',
     '🚶🏾‍♀' => 'mujer caminando: tono de piel oscuro medio',
     '🚶🏿‍♀' => 'mujer caminando: tono de piel oscuro',
-    '🚶🏻‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏼‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏽‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏾‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏿‍➡' => 'persona caminando hacia la derecha',
+    '🚶🏻‍➡' => 'persona caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍➡' => 'persona caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍➡' => 'persona caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍➡' => 'persona caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍➡' => 'persona caminando: tono de piel oscuro y hacia la derecha',
     '🧍🏻‍♂' => 'hombre de pie: tono de piel claro',
     '🧍🏼‍♂' => 'hombre de pie: tono de piel claro medio',
     '🧍🏽‍♂' => 'hombre de pie: tono de piel medio',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'mujer de rodillas: tono de piel medio',
     '🧎🏾‍♀' => 'mujer de rodillas: tono de piel oscuro medio',
     '🧎🏿‍♀' => 'mujer de rodillas: tono de piel oscuro',
-    '🧎🏻‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏼‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏽‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏾‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏿‍➡' => 'persona de rodillas hacia la derecha',
+    '🧎🏻‍➡' => 'persona de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍➡' => 'persona de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍➡' => 'persona de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍➡' => 'persona de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍➡' => 'persona de rodillas: tono de piel oscuro y hacia la derecha',
     '🧑🏻‍🦯' => 'Persona con bastón blanco: tono de piel claro',
     '🧑🏼‍🦯' => 'Persona con bastón blanco: tono de piel claro medio',
     '🧑🏽‍🦯' => 'Persona con bastón blanco: tono de piel medio',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'mujer corriendo: tono de piel medio',
     '🏃🏾‍♀' => 'mujer corriendo: tono de piel oscuro medio',
     '🏃🏿‍♀' => 'mujer corriendo: tono de piel oscuro',
-    '🏃🏻‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏼‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏽‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏾‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏿‍➡' => 'persona corriendo hacia la derecha',
+    '🏃🏻‍➡' => 'persona corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍➡' => 'persona corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍➡' => 'persona corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍➡' => 'persona corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍➡' => 'persona corriendo: tono de piel oscuro y hacia la derecha',
+    '👯🏻‍♀' => 'mujeres con orejas de conejo: tono de piel claro',
+    '👯🏼‍♀' => 'mujeres con orejas de conejo: tono de piel claro medio',
+    '👯🏽‍♀' => 'mujeres con orejas de conejo: tono de piel medio',
+    '👯🏾‍♀' => 'mujeres con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿‍♀' => 'mujeres con orejas de conejo: tono de piel oscuro',
+    '👯🏻‍♂' => 'hombres con orejas de conejo: tono de piel claro',
+    '👯🏼‍♂' => 'hombres con orejas de conejo: tono de piel claro medio',
+    '👯🏽‍♂' => 'hombres con orejas de conejo: tono de piel medio',
+    '👯🏾‍♂' => 'hombres con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿‍♂' => 'hombres con orejas de conejo: tono de piel oscuro',
     '🧖🏻‍♂' => 'hombre en sauna: tono de piel claro',
     '🧖🏼‍♂' => 'hombre en sauna: tono de piel claro medio',
     '🧖🏽‍♂' => 'hombre en sauna: tono de piel medio',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'mujer haciendo una vuelta de carro: tono de piel medio',
     '🤸🏾‍♀' => 'mujer haciendo una vuelta de carro: tono de piel oscuro medio',
     '🤸🏿‍♀' => 'mujer haciendo una vuelta de carro: tono de piel oscuro',
+    '🤼🏻‍♀' => 'mujeres luchando: tono de piel claro',
+    '🤼🏼‍♀' => 'mujeres luchando: tono de piel claro medio',
+    '🤼🏽‍♀' => 'mujeres luchando: tono de piel medio',
+    '🤼🏾‍♀' => 'mujeres luchando: tono de piel oscuro medio',
+    '🤼🏿‍♀' => 'mujeres luchando: tono de piel oscuro',
+    '🤼🏻‍♂' => 'hombres luchando: tono de piel claro',
+    '🤼🏼‍♂' => 'hombres luchando: tono de piel claro medio',
+    '🤼🏽‍♂' => 'hombres luchando: tono de piel medio',
+    '🤼🏾‍♂' => 'hombres luchando: tono de piel oscuro medio',
+    '🤼🏿‍♂' => 'hombres luchando: tono de piel oscuro',
     '🤽🏻‍♂' => 'hombre jugando al waterpolo: tono de piel claro',
     '🤽🏼‍♂' => 'hombre jugando al waterpolo: tono de piel claro medio',
     '🤽🏽‍♂' => 'hombre jugando al waterpolo: tono de piel medio',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'mujer: pelo rizado',
     '👩‍🦳' => 'mujer: pelo blanco',
     '👩‍🦲' => 'mujer: sin pelo',
-    '🚶‍➡' => 'persona caminando hacia la derecha',
-    '🧎‍➡' => 'persona de rodillas hacia la derecha',
-    '🏃‍➡' => 'persona corriendo hacia la derecha',
+    '🚶‍➡' => 'persona caminando: hacia la derecha',
+    '🧎‍➡' => 'persona de rodillas: hacia la derecha',
+    '🏃‍➡' => 'persona corriendo: hacia la derecha',
     '👨‍👦' => 'familia: hombre y niño',
     '👨‍👧' => 'familia: hombre y niña',
     '👩‍👦' => 'familia: mujer y niño',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'mujer en silla de ruedas manual',
     '🏃‍♂' => 'hombre corriendo',
     '🏃‍♀' => 'mujer corriendo',
+    '🧑‍🩰' => 'bailarina de ballet',
     '👯‍♂' => 'hombres con orejas de conejo',
     '👯‍♀' => 'mujeres con orejas de conejo',
     '🧖‍♂' => 'hombre en sauna',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'persona trajeada levitando: tono de piel medio',
     '🕴🏾' => 'persona trajeada levitando: tono de piel oscuro medio',
     '🕴🏿' => 'persona trajeada levitando: tono de piel oscuro',
+    '👯🏻' => 'personas con orejas de conejo: tono de piel claro',
+    '👯🏼' => 'personas con orejas de conejo: tono de piel claro medio',
+    '👯🏽' => 'personas con orejas de conejo: tono de piel medio',
+    '👯🏾' => 'personas con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿' => 'personas con orejas de conejo: tono de piel oscuro',
     '🧖🏻' => 'persona en sauna: tono de piel claro',
     '🧖🏼' => 'persona en sauna: tono de piel claro medio',
     '🧖🏽' => 'persona en sauna: tono de piel medio',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persona haciendo una vuelta de carro: tono de piel medio',
     '🤸🏾' => 'persona haciendo una vuelta de carro: tono de piel oscuro medio',
     '🤸🏿' => 'persona haciendo una vuelta de carro: tono de piel oscuro',
+    '🤼🏻' => 'personas luchando: tono de piel claro',
+    '🤼🏼' => 'personas luchando: tono de piel claro medio',
+    '🤼🏽' => 'personas luchando: tono de piel medio',
+    '🤼🏾' => 'personas luchando: tono de piel oscuro medio',
+    '🤼🏿' => 'personas luchando: tono de piel oscuro',
     '🤽🏻' => 'persona jugando al waterpolo: tono de piel claro',
     '🤽🏼' => 'persona jugando al waterpolo: tono de piel claro medio',
     '🤽🏽' => 'persona jugando al waterpolo: tono de piel medio',
@@ -2143,7 +2299,7 @@
     '🇦🇼' => 'Bandera: Aruba',
     '🇦🇽' => 'Bandera: Islas Aland',
     '🇦🇿' => 'Bandera: Azerbaiyán',
-    '🇧🇦' => 'bandera: Bosnia y Herzegovina',
+    '🇧🇦' => 'Bandera: Bosnia y Herzegovina',
     '🇧🇧' => 'Bandera: Barbados',
     '🇧🇩' => 'Bandera: Bangladés',
     '🇧🇪' => 'Bandera: Bélgica',
@@ -2170,13 +2326,14 @@
     '🇨🇫' => 'Bandera: República Centroafricana',
     '🇨🇬' => 'Bandera: Congo',
     '🇨🇭' => 'Bandera: Suiza',
-    '🇨🇮' => 'bandera: Côte d’Ivoire',
+    '🇨🇮' => 'Bandera: Côte d’Ivoire',
     '🇨🇰' => 'Bandera: Islas Cook',
     '🇨🇱' => 'Bandera: Chile',
     '🇨🇲' => 'Bandera: Camerún',
     '🇨🇳' => 'Bandera: China',
     '🇨🇴' => 'Bandera: Colombia',
     '🇨🇵' => 'Bandera: Isla Clipperton',
+    '🇨🇶' => 'Bandera: Sark',
     '🇨🇷' => 'Bandera: Costa Rica',
     '🇨🇺' => 'Bandera: Cuba',
     '🇨🇻' => 'Bandera: Cabo Verde',
@@ -2211,7 +2368,7 @@
     '🇬🇩' => 'Bandera: Granada',
     '🇬🇪' => 'Bandera: Georgia',
     '🇬🇫' => 'Bandera: Guayana Francesa',
-    '🇬🇬' => 'bandera: Guernsey',
+    '🇬🇬' => 'Bandera: Guernsey',
     '🇬🇭' => 'Bandera: Ghana',
     '🇬🇮' => 'Bandera: Gibraltar',
     '🇬🇱' => 'Bandera: Groenlandia',
@@ -2344,7 +2501,7 @@
     '🇸🇻' => 'Bandera: El Salvador',
     '🇸🇽' => 'Bandera: Sint Maarten',
     '🇸🇾' => 'Bandera: Siria',
-    '🇸🇿' => 'bandera: Eswatini',
+    '🇸🇿' => 'Bandera: Eswatini',
     '🇹🇦' => 'Bandera: Tristán de Acuña',
     '🇹🇨' => 'Bandera: Islas Turcas y Caicos',
     '🇹🇩' => 'Bandera: Chad',
@@ -2364,7 +2521,7 @@
     '🇹🇿' => 'Bandera: Tanzania',
     '🇺🇦' => 'Bandera: Ucrania',
     '🇺🇬' => 'Bandera: Uganda',
-    '🇺🇲' => 'bandera: Islas menores alejadas de EE. UU.',
+    '🇺🇲' => 'Bandera: Islas menores alejadas de EE. UU.',
     '🇺🇳' => 'Bandera: Naciones Unidas',
     '🇺🇸' => 'Bandera: Estados Unidos',
     '🇺🇾' => 'Bandera: Uruguay',
@@ -2390,13 +2547,6 @@
     '🏽' => 'tono de piel medio',
     '🏾' => 'tono de piel oscuro medio',
     '🏿' => 'tono de piel oscuro',
-    '🪉' => 'arpa',
-    '🪏' => 'pala',
-    '🪾' => 'árbol sin hojas',
-    '🫆' => 'huella dactilar',
-    '🫜' => 'vegetal de raíz',
-    '🫟' => 'salpicadura',
-    '🫩' => 'cara con ojeras',
     '😀' => 'cara sonriendo',
     '😃' => 'cara sonriendo con ojos grandes',
     '😄' => 'cara sonriendo con ojos sonrientes',
@@ -2450,6 +2600,7 @@
     '😪' => 'cara de sueño',
     '🤤' => 'cara babeando',
     '😴' => 'cara durmiendo',
+    '🫩' => 'cara con ojeras',
     '😷' => 'cara con mascarilla médica',
     '🤒' => 'cara con termómetro',
     '🤕' => 'cara con la cabeza vendada',
@@ -2476,6 +2627,7 @@
     '😯' => 'cara estupefacta',
     '😲' => 'cara asombrada',
     '😳' => 'cara sonrojada',
+    '🫪' => 'cara deformada',
     '🥺' => 'cara de súplica',
     '🥹' => 'cara aguantándose las lágrimas',
     '😦' => 'cara con el ceño fruncido y la boca abierta',
@@ -2547,6 +2699,7 @@
     '💋' => 'marca de beso',
     '💯' => 'cien puntos',
     '💢' => 'símbolo de enfado',
+    '🫯' => 'nube de pelea',
     '💥' => 'colisión',
     '💫' => 'símbolo de mareo',
     '💦' => 'gotas de sudor',
@@ -2670,6 +2823,7 @@
     '🧞' => 'genio',
     '🧟' => 'persona zombi',
     '🧌' => 'trol',
+    '🫈' => 'criatura peluda',
     '💆' => 'persona recibiendo masaje',
     '💇' => 'persona cortándose el pelo',
     '🚶' => 'persona caminando',
@@ -2713,6 +2867,7 @@
     '🫂' => 'personas abrazándose',
     '👪' => 'familia',
     '👣' => 'huellas de pies',
+    '🫆' => 'huella dactilar',
     '🦰' => 'pelo pelirrojo',
     '🦱' => 'pelo rizado',
     '🦳' => 'pelo blanco',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ballena soltando un chorro',
     '🐋' => 'ballena',
     '🐬' => 'delfín',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'pez',
     '🐠' => 'pez tropical',
@@ -2821,6 +2977,11 @@
     '🐚' => 'caracol marino',
     '🪸' => 'coral',
     '🪼' => 'medusa',
+    '🦀' => 'cangrejo',
+    '🦞' => 'bogavante',
+    '🦐' => 'gamba',
+    '🦑' => 'calamar',
+    '🦪' => 'ostión',
     '🐌' => 'caracol',
     '🦋' => 'mariposa',
     '🐛' => 'bicho',
@@ -2865,6 +3026,7 @@
     '🪹' => 'nido vacío',
     '🪺' => 'nido con huevos',
     '🍄' => 'champiñón',
+    '🪾' => 'árbol sin hojas',
     '🍇' => 'uvas',
     '🍈' => 'melón',
     '🍉' => 'sandía',
@@ -2901,6 +3063,7 @@
     '🌰' => 'castaña',
     '🫚' => 'raíz de jengibre',
     '🫛' => 'vaina',
+    '🫜' => 'vegetal de raíz',
     '🍞' => 'pan de molde',
     '🥐' => 'cruasán',
     '🥖' => 'baguete',
@@ -2952,18 +3115,13 @@
     '🥟' => 'empanada',
     '🥠' => 'galleta de la fortuna',
     '🥡' => 'caja para llevar',
-    '🦀' => 'cangrejo',
-    '🦞' => 'langosta',
-    '🦐' => 'gamba',
-    '🦑' => 'calamar',
-    '🦪' => 'ostión',
     '🍦' => 'helado en barquillo',
     '🍧' => 'granizado hawaiano',
     '🍨' => 'helado',
     '🍩' => 'dónut',
     '🍪' => 'galleta',
-    '🎂' => 'pastel de cumpleaños',
-    '🍰' => 'rebanada de pastel',
+    '🎂' => 'tarta de cumpleaños',
+    '🍰' => 'trozo de tarta',
     '🧁' => 'pastelito',
     '🥧' => 'pay',
     '🍫' => 'tableta de chocolate',
@@ -3007,6 +3165,7 @@
     '🧭' => 'brújula',
     '🏔' => 'montaña con nieve',
     '⛰' => 'montaña',
+    '🛘' => 'desprendimiento',
     '🌋' => 'volcán',
     '🗻' => 'monte Fuji',
     '🏕' => 'camping',
@@ -3095,7 +3254,7 @@
     '🚜' => 'tractor',
     '🏎' => 'auto de carreras',
     '🏍' => 'moto',
-    '🛵' => 'motoneta',
+    '🛵' => 'scooter',
     '🦽' => 'silla de ruedas manual',
     '🦼' => 'silla de ruedas eléctrica',
     '🛺' => 'mototaxi',
@@ -3302,7 +3461,7 @@
     '🧶' => 'ovillo',
     '🪢' => 'nudo',
     '👓' => 'gafas',
-    '🕶' => 'lentes de sol',
+    '🕶' => 'gafas de sol',
     '🥽' => 'goggles',
     '🥼' => 'bata de laboratorio',
     '🦺' => 'chaleco de seguridad',
@@ -3367,16 +3526,18 @@
     '🎧' => 'audífonos',
     '📻' => 'radio',
     '🎷' => 'saxofón',
+    '🎺' => 'trompeta',
+    '🪊' => 'trombón',
     '🪗' => 'acordeón',
     '🎸' => 'guitarra',
     '🎹' => 'teclado musical',
-    '🎺' => 'trompeta',
     '🎻' => 'violín',
     '🪕' => 'banjo',
     '🥁' => 'tambor',
     '🪘' => 'tamboril',
     '🪇' => 'maracas',
     '🪈' => 'flauta',
+    '🪉' => 'arpa',
     '📱' => 'teléfono móvil',
     '📲' => 'flecha apuntado a teléfono celular',
     '☎' => 'teléfono fijo',
@@ -3409,7 +3570,7 @@
     '🔍' => 'lupa orientada hacia la izquierda',
     '🔎' => 'lupa orientada hacia la derecha',
     '🕯' => 'vela',
-    '💡' => 'foco',
+    '💡' => 'bombilla',
     '🔦' => 'linterna',
     '🏮' => 'lámpara japonesa',
     '🪔' => 'lámpara de aceite',
@@ -3430,8 +3591,9 @@
     '📑' => 'marcadores',
     '🔖' => 'marcapáginas',
     '🏷' => 'etiqueta',
-    '💰' => 'bolsa de dinero',
     '🪙' => 'moneda',
+    '💰' => 'bolsa de dinero',
+    '🪎' => 'cofre de tesoro',
     '💴' => 'billete de yen',
     '💵' => 'billete de dólar',
     '💶' => 'billete de euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'caja de herramientas',
     '🧲' => 'imán',
     '🪜' => 'escalera',
+    '🪏' => 'pala',
     '⚗' => 'alambique',
     '🧪' => 'tubo de ensayo',
     '🧫' => 'placa de Petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'estrella de ocho puntas',
     '❇' => 'chispa',
     '™' => 'marca registrada',
+    '🫟' => 'salpicadura',
     '🔠' => 'letras latinas mayúsculas',
     '🔡' => 'letras latinas minúsculas',
     '🔢' => 'números',
@@ -3763,7 +3927,7 @@
     '🔶' => 'rombo naranja grande',
     '🔷' => 'rombo azul grande',
     '🔸' => 'rombo naranja pequeño',
-    '🔹' => 'diamante azul pequeño',
+    '🔹' => 'rombo azul pequeño',
     '🔺' => 'triángulo rojo hacia arriba',
     '🔻' => 'triángulo rojo hacia abajo',
     '💠' => 'diamante en flor',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'beso: mujer, mujer, tono de piel oscuro, tono de piel medio',
     '👩🏿‍❤‍💋‍👩🏾' => 'beso: mujer, mujer, tono de piel oscuro, tono de piel oscuro medio',
     '👩🏿‍❤‍💋‍👩🏿' => 'beso: mujer, mujer, tono de piel oscuro',
+    '🧑🏻‍🫯‍🧑🏼' => 'personas luchando: tono de piel claro y tono de piel claro medio',
+    '🧑🏻‍🫯‍🧑🏽' => 'personas luchando: tono de piel claro y tono de piel medio',
+    '🧑🏻‍🫯‍🧑🏾' => 'personas luchando: tono de piel claro y tono de piel oscuro medio',
+    '🧑🏻‍🫯‍🧑🏿' => 'personas luchando: tono de piel claro y tono de piel oscuro',
+    '🧑🏼‍🫯‍🧑🏻' => 'personas luchando: tono de piel claro medio y tono de piel claro',
+    '🧑🏼‍🫯‍🧑🏽' => 'personas luchando: tono de piel claro medio y tono de piel medio',
+    '🧑🏼‍🫯‍🧑🏾' => 'personas luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '🧑🏼‍🫯‍🧑🏿' => 'personas luchando: tono de piel claro medio y tono de piel oscuro',
+    '🧑🏽‍🫯‍🧑🏻' => 'personas luchando: tono de piel medio y tono de piel claro',
+    '🧑🏽‍🫯‍🧑🏼' => 'personas luchando: tono de piel medio y tono de piel claro medio',
+    '🧑🏽‍🫯‍🧑🏾' => 'personas luchando: tono de piel medio y tono de piel oscuro medio',
+    '🧑🏽‍🫯‍🧑🏿' => 'personas luchando: tono de piel medio y tono de piel oscuro',
+    '🧑🏾‍🫯‍🧑🏻' => 'personas luchando: tono de piel oscuro medio y tono de piel claro',
+    '🧑🏾‍🫯‍🧑🏼' => 'personas luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '🧑🏾‍🫯‍🧑🏽' => 'personas luchando: tono de piel oscuro medio y tono de piel medio',
+    '🧑🏾‍🫯‍🧑🏿' => 'personas luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '🧑🏿‍🫯‍🧑🏻' => 'personas luchando: tono de piel oscuro y tono de piel claro',
+    '🧑🏿‍🫯‍🧑🏼' => 'personas luchando: tono de piel oscuro y tono de piel claro medio',
+    '🧑🏿‍🫯‍🧑🏽' => 'personas luchando: tono de piel oscuro y tono de piel medio',
+    '🧑🏿‍🫯‍🧑🏾' => 'personas luchando: tono de piel oscuro y tono de piel oscuro medio',
     '🧑🏻‍❤‍🧑🏼' => 'pareja enamorada: persona adulta, persona adulta, tono de piel claro, tono de piel claro medio',
     '🧑🏻‍❤‍🧑🏽' => 'pareja enamorada: persona adulta, persona adulta, tono de piel claro, tono de piel medio',
     '🧑🏻‍❤‍🧑🏾' => 'pareja enamorada: persona adulta, persona adulta, tono de piel claro, tono de piel oscuro medio',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pareja enamorada: persona adulta, persona adulta, tono de piel oscuro, tono de piel claro medio',
     '🧑🏿‍❤‍🧑🏽' => 'pareja enamorada: persona adulta, persona adulta, tono de piel oscuro, tono de piel medio',
     '🧑🏿‍❤‍🧑🏾' => 'pareja enamorada: persona adulta, persona adulta, tono de piel oscuro, tono de piel oscuro medio',
+    '🧑🏻‍🐰‍🧑🏼' => 'personas con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '🧑🏻‍🐰‍🧑🏽' => 'personas con orejas de conejo: tono de piel claro y tono de piel medio',
+    '🧑🏻‍🐰‍🧑🏾' => 'personas con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '🧑🏻‍🐰‍🧑🏿' => 'personas con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '🧑🏼‍🐰‍🧑🏻' => 'personas con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '🧑🏼‍🐰‍🧑🏽' => 'personas con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '🧑🏼‍🐰‍🧑🏾' => 'personas con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '🧑🏼‍🐰‍🧑🏿' => 'personas con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '🧑🏽‍🐰‍🧑🏻' => 'personas con orejas de conejo: tono de piel medio y tono de piel claro',
+    '🧑🏽‍🐰‍🧑🏼' => 'personas con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '🧑🏽‍🐰‍🧑🏾' => 'personas con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '🧑🏽‍🐰‍🧑🏿' => 'personas con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '🧑🏾‍🐰‍🧑🏻' => 'personas con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '🧑🏾‍🐰‍🧑🏼' => 'personas con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '🧑🏾‍🐰‍🧑🏽' => 'personas con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '🧑🏾‍🐰‍🧑🏿' => 'personas con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '🧑🏿‍🐰‍🧑🏻' => 'personas con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '🧑🏿‍🐰‍🧑🏼' => 'personas con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '🧑🏿‍🐰‍🧑🏽' => 'personas con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '🧑🏿‍🐰‍🧑🏾' => 'personas con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
+    '👨🏻‍🫯‍👨🏼' => 'hombres luchando: tono de piel claro y tono de piel claro medio',
+    '👨🏻‍🫯‍👨🏽' => 'hombres luchando: tono de piel claro y tono de piel medio',
+    '👨🏻‍🫯‍👨🏾' => 'hombres luchando: tono de piel claro y tono de piel oscuro medio',
+    '👨🏻‍🫯‍👨🏿' => 'hombres luchando: tono de piel claro y tono de piel oscuro',
+    '👨🏼‍🫯‍👨🏻' => 'hombres luchando: tono de piel claro medio y tono de piel claro',
+    '👨🏼‍🫯‍👨🏽' => 'hombres luchando: tono de piel claro medio y tono de piel medio',
+    '👨🏼‍🫯‍👨🏾' => 'hombres luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '👨🏼‍🫯‍👨🏿' => 'hombres luchando: tono de piel claro medio y tono de piel oscuro',
+    '👨🏽‍🫯‍👨🏻' => 'hombres luchando: tono de piel medio y tono de piel claro',
+    '👨🏽‍🫯‍👨🏼' => 'hombres luchando: tono de piel medio y tono de piel claro medio',
+    '👨🏽‍🫯‍👨🏾' => 'hombres luchando: tono de piel medio y tono de piel oscuro medio',
+    '👨🏽‍🫯‍👨🏿' => 'hombres luchando: tono de piel medio y tono de piel oscuro',
+    '👨🏾‍🫯‍👨🏻' => 'hombres luchando: tono de piel oscuro medio y tono de piel claro',
+    '👨🏾‍🫯‍👨🏼' => 'hombres luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '👨🏾‍🫯‍👨🏽' => 'hombres luchando: tono de piel oscuro medio y tono de piel medio',
+    '👨🏾‍🫯‍👨🏿' => 'hombres luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '👨🏿‍🫯‍👨🏻' => 'hombres luchando: tono de piel oscuro y tono de piel claro',
+    '👨🏿‍🫯‍👨🏼' => 'hombres luchando: tono de piel oscuro y tono de piel claro medio',
+    '👨🏿‍🫯‍👨🏽' => 'hombres luchando: tono de piel oscuro y tono de piel medio',
+    '👨🏿‍🫯‍👨🏾' => 'hombres luchando: tono de piel oscuro y tono de piel oscuro medio',
     '👨🏻‍❤‍👨🏻' => 'pareja enamorada: hombre, hombre, tono de piel claro',
     '👨🏻‍❤‍👨🏼' => 'pareja enamorada: hombre, hombre, tono de piel claro, tono de piel claro medio',
     '👨🏻‍❤‍👨🏽' => 'pareja enamorada: hombre, hombre, tono de piel claro, tono de piel medio',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pareja enamorada: hombre, hombre, tono de piel oscuro, tono de piel medio',
     '👨🏿‍❤‍👨🏾' => 'pareja enamorada: hombre, hombre, tono de piel oscuro, tono de piel oscuro medio',
     '👨🏿‍❤‍👨🏿' => 'pareja enamorada: hombre, hombre, tono de piel oscuro',
+    '👨🏻‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '👨🏻‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel claro y tono de piel medio',
+    '👨🏻‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '👨🏻‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '👨🏼‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '👨🏼‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '👨🏼‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '👨🏼‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '👨🏽‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel medio y tono de piel claro',
+    '👨🏽‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '👨🏽‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '👨🏽‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '👨🏾‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '👨🏾‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '👨🏾‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '👨🏾‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '👨🏿‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '👨🏿‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '👨🏿‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '👨🏿‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
+    '👩🏻‍🫯‍👩🏼' => 'mujeres luchando: tono de piel claro y tono de piel claro medio',
+    '👩🏻‍🫯‍👩🏽' => 'mujeres luchando: tono de piel claro y tono de piel medio',
+    '👩🏻‍🫯‍👩🏾' => 'mujeres luchando: tono de piel claro y tono de piel oscuro medio',
+    '👩🏻‍🫯‍👩🏿' => 'mujeres luchando: tono de piel claro y tono de piel oscuro',
+    '👩🏼‍🫯‍👩🏻' => 'mujeres luchando: tono de piel claro medio y tono de piel claro',
+    '👩🏼‍🫯‍👩🏽' => 'mujeres luchando: tono de piel claro medio y tono de piel medio',
+    '👩🏼‍🫯‍👩🏾' => 'mujeres luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '👩🏼‍🫯‍👩🏿' => 'mujeres luchando: tono de piel claro medio y tono de piel oscuro',
+    '👩🏽‍🫯‍👩🏻' => 'mujeres luchando: tono de piel medio y tono de piel claro',
+    '👩🏽‍🫯‍👩🏼' => 'mujeres luchando: tono de piel medio y tono de piel claro medio',
+    '👩🏽‍🫯‍👩🏾' => 'mujeres luchando: tono de piel medio y tono de piel oscuro medio',
+    '👩🏽‍🫯‍👩🏿' => 'mujeres luchando: tono de piel medio y tono de piel oscuro',
+    '👩🏾‍🫯‍👩🏻' => 'mujeres luchando: tono de piel oscuro medio y tono de piel claro',
+    '👩🏾‍🫯‍👩🏼' => 'mujeres luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '👩🏾‍🫯‍👩🏽' => 'mujeres luchando: tono de piel oscuro medio y tono de piel medio',
+    '👩🏾‍🫯‍👩🏿' => 'mujeres luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '👩🏿‍🫯‍👩🏻' => 'mujeres luchando: tono de piel oscuro y tono de piel claro',
+    '👩🏿‍🫯‍👩🏼' => 'mujeres luchando: tono de piel oscuro y tono de piel claro medio',
+    '👩🏿‍🫯‍👩🏽' => 'mujeres luchando: tono de piel oscuro y tono de piel medio',
+    '👩🏿‍🫯‍👩🏾' => 'mujeres luchando: tono de piel oscuro y tono de piel oscuro medio',
     '👩🏻‍❤‍👨🏻' => 'pareja enamorada: mujer, hombre, tono de piel claro',
     '👩🏻‍❤‍👨🏼' => 'pareja enamorada: mujer, hombre, tono de piel claro, tono de piel claro medio',
     '👩🏻‍❤‍👨🏽' => 'pareja enamorada: mujer, hombre, tono de piel claro, tono de piel medio',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pareja enamorada: mujer, mujer, tono de piel oscuro, tono de piel medio',
     '👩🏿‍❤‍👩🏾' => 'pareja enamorada: mujer, mujer, tono de piel oscuro, tono de piel oscuro medio',
     '👩🏿‍❤‍👩🏿' => 'pareja enamorada: mujer, mujer, tono de piel oscuro',
+    '👩🏻‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '👩🏻‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel medio',
+    '👩🏻‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '👩🏻‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '👩🏼‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '👩🏼‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '👩🏼‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '👩🏼‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '👩🏽‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel claro',
+    '👩🏽‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '👩🏽‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '👩🏽‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '👩🏾‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '👩🏾‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '👩🏾‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '👩🏾‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '👩🏿‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '👩🏿‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '👩🏿‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '👩🏿‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
     '🧑🏻‍🤝‍🧑🏻' => 'dos personas de la mano: tono de piel claro',
     '🧑🏻‍🤝‍🧑🏼' => 'dos personas de la mano: tono de piel claro y tono de piel claro medio',
     '🧑🏻‍🤝‍🧑🏽' => 'dos personas de la mano: tono de piel claro y tono de piel medio',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'Bandera: Escocia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'Bandera: Gales',
     '🧑‍🧑‍🧒‍🧒' => 'familia: adulto, adulto, niño, niño',
-    '🚶🏻‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏼‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏽‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏾‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏿‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏻‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏼‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏽‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏾‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏿‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🧎🏻‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏼‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏽‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏾‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏿‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏻‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏼‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏽‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏾‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏿‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧑🏻‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏼‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏽‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏾‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏿‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '👨🏻‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏼‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏽‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏾‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👨🏿‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👩🏻‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏼‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏽‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏾‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '👩🏿‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '🧑🏻‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏼‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏽‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏾‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏿‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '👨🏻‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏼‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏽‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏾‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏿‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👩🏻‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏼‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏽‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏾‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏿‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏻‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏼‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏽‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏾‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏿‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '👨🏻‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏼‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏽‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏾‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏿‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👩🏻‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏼‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏽‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏾‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏿‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '🏃🏻‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏼‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏽‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏾‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏿‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏻‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏼‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏽‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏾‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏿‍♂‍➡' => 'hombre corriendo hacia la derecha',
+    '🚶🏻‍♀‍➡' => 'mujer caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍♀‍➡' => 'mujer caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍♀‍➡' => 'mujer caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍♀‍➡' => 'mujer caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍♀‍➡' => 'mujer caminando: tono de piel oscuro y hacia la derecha',
+    '🚶🏻‍♂‍➡' => 'hombre caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍♂‍➡' => 'hombre caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍♂‍➡' => 'hombre caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍♂‍➡' => 'hombre caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍♂‍➡' => 'hombre caminando: tono de piel oscuro y hacia la derecha',
+    '🧎🏻‍♀‍➡' => 'mujer de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍♀‍➡' => 'mujer de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍♀‍➡' => 'mujer de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍♀‍➡' => 'mujer de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍♀‍➡' => 'mujer de rodillas: tono de piel oscuro y hacia la derecha',
+    '🧎🏻‍♂‍➡' => 'hombre de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍♂‍➡' => 'hombre de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍♂‍➡' => 'hombre de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍♂‍➡' => 'hombre de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍♂‍➡' => 'hombre de rodillas: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦯‍➡' => 'persona con bastón: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦯‍➡' => 'persona con bastón: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦯‍➡' => 'persona con bastón: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦯‍➡' => 'persona con bastón: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦯‍➡' => 'persona con bastón: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦯‍➡' => 'hombre con bastón: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦯‍➡' => 'hombre con bastón: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦯‍➡' => 'hombre con bastón: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦯‍➡' => 'hombre con bastón: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦯‍➡' => 'hombre con bastón: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦯‍➡' => 'mujer con bastón: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦯‍➡' => 'mujer con bastón: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦯‍➡' => 'mujer con bastón: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦯‍➡' => 'mujer con bastón: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦯‍➡' => 'mujer con bastón: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '🏃🏻‍♀‍➡' => 'mujer corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍♀‍➡' => 'mujer corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍♀‍➡' => 'mujer corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍♀‍➡' => 'mujer corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍♀‍➡' => 'mujer corriendo: tono de piel oscuro y hacia la derecha',
+    '🏃🏻‍♂‍➡' => 'hombre corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍♂‍➡' => 'hombre corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍♂‍➡' => 'hombre corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍♂‍➡' => 'hombre corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍♂‍➡' => 'hombre corriendo: tono de piel oscuro y hacia la derecha',
     '🫱🏻‍🫲🏼' => 'apretón de manos: tono de piel claro y tono de piel claro medio',
     '🫱🏻‍🫲🏽' => 'apretón de manos: tono de piel claro y tono de piel medio',
     '🫱🏻‍🫲🏾' => 'apretón de manos: tono de piel claro y tono de piel oscuro medio',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'apretón de manos: tono de piel oscuro y tono de piel claro medio',
     '🫱🏿‍🫲🏽' => 'apretón de manos: tono de piel oscuro y tono de piel medio',
     '🫱🏿‍🫲🏾' => 'apretón de manos: tono de piel oscuro y tono de piel oscuro medio',
-    '🚶‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🧎‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧑‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '👨‍🦯‍➡' => 'hombre con bastón hacia la derecha',
-    '👩‍🦯‍➡' => 'mujer con bastón hacia la derecha',
-    '🧑‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '👨‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👩‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '🧑‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '👨‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👩‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '🏃‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃‍♂‍➡' => 'hombre corriendo hacia la derecha',
+    '🚶‍♀‍➡' => 'mujer caminando: hacia la derecha',
+    '🚶‍♂‍➡' => 'hombre caminando: hacia la derecha',
+    '🧎‍♀‍➡' => 'mujer de rodillas: hacia la derecha',
+    '🧎‍♂‍➡' => 'hombre de rodillas: hacia la derecha',
+    '🧑‍🦯‍➡' => 'persona con bastón: hacia la derecha',
+    '👨‍🦯‍➡' => 'hombre con bastón: hacia la derecha',
+    '👩‍🦯‍➡' => 'mujer con bastón: hacia la derecha',
+    '🧑‍🦼‍➡' => 'persona en silla de ruedas eléctrica: hacia la derecha',
+    '👨‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: hacia la derecha',
+    '👩‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: hacia la derecha',
+    '🧑‍🦽‍➡' => 'persona en silla de ruedas manual: hacia la derecha',
+    '👨‍🦽‍➡' => 'hombre en silla de ruedas manual: hacia la derecha',
+    '👩‍🦽‍➡' => 'mujer en silla de ruedas manual: hacia la derecha',
+    '🏃‍♀‍➡' => 'mujer corriendo: hacia la derecha',
+    '🏃‍♂‍➡' => 'hombre corriendo: hacia la derecha',
     '👩‍❤‍👨' => 'pareja enamorada: mujer y hombre',
     '👨‍❤‍👨' => 'pareja enamorada: hombre y hombre',
     '👩‍❤‍👩' => 'pareja enamorada: mujer y mujer',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'persona adulta: tono de piel medio y sin pelo',
     '🧑🏾‍🦲' => 'persona adulta: tono de piel oscuro medio y sin pelo',
     '🧑🏿‍🦲' => 'persona adulta: tono de piel oscuro y sin pelo',
+    '🧑🏻‍🩰' => 'bailarina de ballet: tono de piel claro',
+    '🧑🏼‍🩰' => 'bailarina de ballet: tono de piel claro medio',
+    '🧑🏽‍🩰' => 'bailarina de ballet: tono de piel medio',
+    '🧑🏾‍🩰' => 'bailarina de ballet: tono de piel oscuro medio',
+    '🧑🏿‍🩰' => 'bailarina de ballet: tono de piel oscuro',
     '🧔🏻‍♂' => 'hombre: tono de piel claro y barba',
     '🧔🏼‍♂' => 'hombre: tono de piel claro medio y barba',
     '🧔🏽‍♂' => 'hombre: tono de piel medio y barba',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'mujer caminando: tono de piel medio',
     '🚶🏾‍♀' => 'mujer caminando: tono de piel oscuro medio',
     '🚶🏿‍♀' => 'mujer caminando: tono de piel oscuro',
-    '🚶🏻‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏼‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏽‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏾‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏿‍➡' => 'persona caminando hacia la derecha',
+    '🚶🏻‍➡' => 'persona caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍➡' => 'persona caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍➡' => 'persona caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍➡' => 'persona caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍➡' => 'persona caminando: tono de piel oscuro y hacia la derecha',
     '🧍🏻‍♂' => 'hombre de pie: tono de piel claro',
     '🧍🏼‍♂' => 'hombre de pie: tono de piel claro medio',
     '🧍🏽‍♂' => 'hombre de pie: tono de piel medio',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'mujer de rodillas: tono de piel medio',
     '🧎🏾‍♀' => 'mujer de rodillas: tono de piel oscuro medio',
     '🧎🏿‍♀' => 'mujer de rodillas: tono de piel oscuro',
-    '🧎🏻‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏼‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏽‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏾‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏿‍➡' => 'persona de rodillas hacia la derecha',
+    '🧎🏻‍➡' => 'persona de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍➡' => 'persona de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍➡' => 'persona de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍➡' => 'persona de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍➡' => 'persona de rodillas: tono de piel oscuro y hacia la derecha',
     '🧑🏻‍🦯' => 'persona con bastón: tono de piel claro',
     '🧑🏼‍🦯' => 'persona con bastón: tono de piel claro medio',
     '🧑🏽‍🦯' => 'persona con bastón: tono de piel medio',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'mujer corriendo: tono de piel medio',
     '🏃🏾‍♀' => 'mujer corriendo: tono de piel oscuro medio',
     '🏃🏿‍♀' => 'mujer corriendo: tono de piel oscuro',
-    '🏃🏻‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏼‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏽‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏾‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏿‍➡' => 'persona corriendo hacia la derecha',
+    '🏃🏻‍➡' => 'persona corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍➡' => 'persona corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍➡' => 'persona corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍➡' => 'persona corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍➡' => 'persona corriendo: tono de piel oscuro y hacia la derecha',
+    '👯🏻‍♀' => 'mujeres con orejas de conejo: tono de piel claro',
+    '👯🏼‍♀' => 'mujeres con orejas de conejo: tono de piel claro medio',
+    '👯🏽‍♀' => 'mujeres con orejas de conejo: tono de piel medio',
+    '👯🏾‍♀' => 'mujeres con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿‍♀' => 'mujeres con orejas de conejo: tono de piel oscuro',
+    '👯🏻‍♂' => 'hombres con orejas de conejo: tono de piel claro',
+    '👯🏼‍♂' => 'hombres con orejas de conejo: tono de piel claro medio',
+    '👯🏽‍♂' => 'hombres con orejas de conejo: tono de piel medio',
+    '👯🏾‍♂' => 'hombres con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿‍♂' => 'hombres con orejas de conejo: tono de piel oscuro',
     '🧖🏻‍♂' => 'hombre en una sauna: tono de piel claro',
     '🧖🏼‍♂' => 'hombre en una sauna: tono de piel claro medio',
     '🧖🏽‍♂' => 'hombre en una sauna: tono de piel medio',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'mujer dando una voltereta lateral: tono de piel medio',
     '🤸🏾‍♀' => 'mujer dando una voltereta lateral: tono de piel oscuro medio',
     '🤸🏿‍♀' => 'mujer dando una voltereta lateral: tono de piel oscuro',
+    '🤼🏻‍♀' => 'mujeres luchando: tono de piel claro',
+    '🤼🏼‍♀' => 'mujeres luchando: tono de piel claro medio',
+    '🤼🏽‍♀' => 'mujeres luchando: tono de piel medio',
+    '🤼🏾‍♀' => 'mujeres luchando: tono de piel oscuro medio',
+    '🤼🏿‍♀' => 'mujeres luchando: tono de piel oscuro',
+    '🤼🏻‍♂' => 'hombres luchando: tono de piel claro',
+    '🤼🏼‍♂' => 'hombres luchando: tono de piel claro medio',
+    '🤼🏽‍♂' => 'hombres luchando: tono de piel medio',
+    '🤼🏾‍♂' => 'hombres luchando: tono de piel oscuro medio',
+    '🤼🏿‍♂' => 'hombres luchando: tono de piel oscuro',
     '🤽🏻‍♂' => 'hombre jugando al waterpolo: tono de piel claro',
     '🤽🏼‍♂' => 'hombre jugando al waterpolo: tono de piel claro medio',
     '🤽🏽‍♂' => 'hombre jugando al waterpolo: tono de piel medio',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'mujer: pelo rizado',
     '👩‍🦳' => 'mujer: pelo blanco',
     '👩‍🦲' => 'mujer: sin pelo',
-    '🚶‍➡' => 'persona caminando hacia la derecha',
-    '🧎‍➡' => 'persona de rodillas hacia la derecha',
-    '🏃‍➡' => 'persona corriendo hacia la derecha',
+    '🚶‍➡' => 'persona caminando: hacia la derecha',
+    '🧎‍➡' => 'persona de rodillas: hacia la derecha',
+    '🏃‍➡' => 'persona corriendo: hacia la derecha',
     '👨‍👦' => 'familia: hombre y niño',
     '👨‍👧' => 'familia: hombre y niña',
     '👩‍👦' => 'familia: mujer y niño',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'mujer en silla de ruedas manual',
     '🏃‍♂' => 'hombre corriendo',
     '🏃‍♀' => 'mujer corriendo',
+    '🧑‍🩰' => 'bailarina de ballet',
     '👯‍♂' => 'hombres con orejas de conejo',
     '👯‍♀' => 'mujeres con orejas de conejo',
     '🧖‍♂' => 'hombre en una sauna',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'persona trajeada levitando: tono de piel medio',
     '🕴🏾' => 'persona trajeada levitando: tono de piel oscuro medio',
     '🕴🏿' => 'persona trajeada levitando: tono de piel oscuro',
+    '👯🏻' => 'personas con orejas de conejo: tono de piel claro',
+    '👯🏼' => 'personas con orejas de conejo: tono de piel claro medio',
+    '👯🏽' => 'personas con orejas de conejo: tono de piel medio',
+    '👯🏾' => 'personas con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿' => 'personas con orejas de conejo: tono de piel oscuro',
     '🧖🏻' => 'persona en una sauna: tono de piel claro',
     '🧖🏼' => 'persona en una sauna: tono de piel claro medio',
     '🧖🏽' => 'persona en una sauna: tono de piel medio',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persona haciendo voltereta lateral: tono de piel medio',
     '🤸🏾' => 'persona haciendo voltereta lateral: tono de piel oscuro medio',
     '🤸🏿' => 'persona haciendo voltereta lateral: tono de piel oscuro',
+    '🤼🏻' => 'personas luchando: tono de piel claro',
+    '🤼🏼' => 'personas luchando: tono de piel claro medio',
+    '🤼🏽' => 'personas luchando: tono de piel medio',
+    '🤼🏾' => 'personas luchando: tono de piel oscuro medio',
+    '🤼🏿' => 'personas luchando: tono de piel oscuro',
     '🤽🏻' => 'persona jugando al waterpolo: tono de piel claro',
     '🤽🏼' => 'persona jugando al waterpolo: tono de piel claro medio',
     '🤽🏽' => 'persona jugando al waterpolo: tono de piel medio',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'Bandera: China',
     '🇨🇴' => 'Bandera: Colombia',
     '🇨🇵' => 'Bandera: Isla Clipperton',
+    '🇨🇶' => 'Bandera: Sark',
     '🇨🇷' => 'Bandera: Costa Rica',
     '🇨🇺' => 'Bandera: Cuba',
     '🇨🇻' => 'Bandera: Cabo Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'tono de piel medio',
     '🏾' => 'tono de piel oscuro medio',
     '🏿' => 'tono de piel oscuro',
-    '🪉' => 'arpa',
-    '🪏' => 'pala',
-    '🪾' => 'árbol sin hojas',
-    '🫆' => 'huella dactilar',
-    '🫜' => 'túberculo comestible',
-    '🫟' => 'salpicadura',
-    '🫩' => 'cara con ojeras',
     '😀' => 'cara sonriendo',
     '😃' => 'cara sonriendo con ojos grandes',
     '😄' => 'cara sonriendo con ojos sonrientes',
@@ -2450,6 +2600,7 @@
     '😪' => 'cara de sueño',
     '🤤' => 'cara babeando',
     '😴' => 'cara durmiendo',
+    '🫩' => 'cara con ojeras',
     '😷' => 'cara con mascarilla médica',
     '🤒' => 'cara con termómetro',
     '🤕' => 'cara con la cabeza vendada',
@@ -2476,6 +2627,7 @@
     '😯' => 'cara estupefacta',
     '😲' => 'cara asombrada',
     '😳' => 'cara sonrojada',
+    '🫪' => 'cara deformada',
     '🥺' => 'cara suplicante',
     '🥹' => 'cara aguantándose las lágrimas',
     '😦' => 'cara con el ceño fruncido y la boca abierta',
@@ -2547,6 +2699,7 @@
     '💋' => 'marca de beso',
     '💯' => 'cien puntos',
     '💢' => 'símbolo de enfado',
+    '🫯' => 'nube de pelea',
     '💥' => 'colisión',
     '💫' => 'símbolo de mareo',
     '💦' => 'gotas de sudor',
@@ -2670,6 +2823,7 @@
     '🧞' => 'genio',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'criatura peluda',
     '💆' => 'persona recibiendo masaje',
     '💇' => 'persona cortándose el pelo',
     '🚶' => 'persona caminando',
@@ -2713,6 +2867,7 @@
     '🫂' => 'personas abrazándose',
     '👪' => 'familia',
     '👣' => 'huellas de pies',
+    '🫆' => 'huella dactilar',
     '🦰' => 'pelo pelirrojo',
     '🦱' => 'pelo rizado',
     '🦳' => 'pelo blanco',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ballena soltando un chorro',
     '🐋' => 'ballena',
     '🐬' => 'delfín',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'pez',
     '🐠' => 'pez tropical',
@@ -2821,6 +2977,11 @@
     '🐚' => 'caracola',
     '🪸' => 'coral',
     '🪼' => 'medusa',
+    '🦀' => 'cangrejo',
+    '🦞' => 'bogavante',
+    '🦐' => 'gamba',
+    '🦑' => 'calamar',
+    '🦪' => 'ostra',
     '🐌' => 'caracol',
     '🦋' => 'mariposa',
     '🐛' => 'bicho',
@@ -2865,6 +3026,7 @@
     '🪹' => 'nido vacío',
     '🪺' => 'nido con huevos',
     '🍄' => 'champiñón',
+    '🪾' => 'árbol sin hojas',
     '🍇' => 'uvas',
     '🍈' => 'melón',
     '🍉' => 'sandía',
@@ -2901,6 +3063,7 @@
     '🌰' => 'castaña',
     '🫚' => 'raíz de jengibre',
     '🫛' => 'vaina',
+    '🫜' => 'túberculo comestible',
     '🍞' => 'pan de molde',
     '🥐' => 'cruasán',
     '🥖' => 'baguete',
@@ -2952,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'galleta de la fortuna',
     '🥡' => 'caja para llevar',
-    '🦀' => 'cangrejo',
-    '🦞' => 'bogavante',
-    '🦐' => 'gamba',
-    '🦑' => 'calamar',
-    '🦪' => 'ostra',
     '🍦' => 'cucurucho de helado',
     '🍧' => 'granizado hawaiano',
     '🍨' => 'helado',
@@ -3007,6 +3165,7 @@
     '🧭' => 'brújula',
     '🏔' => 'montaña con nieve',
     '⛰' => 'montaña',
+    '🛘' => 'desprendimiento',
     '🌋' => 'volcán',
     '🗻' => 'monte Fuji',
     '🏕' => 'camping',
@@ -3367,16 +3526,18 @@
     '🎧' => 'auricular',
     '📻' => 'radio',
     '🎷' => 'saxofón',
+    '🎺' => 'trompeta',
+    '🪊' => 'trombón',
     '🪗' => 'acordeón',
     '🎸' => 'guitarra',
     '🎹' => 'teclado musical',
-    '🎺' => 'trompeta',
     '🎻' => 'violín',
     '🪕' => 'banjo',
     '🥁' => 'tambor',
     '🪘' => 'tamboril',
     '🪇' => 'maracas',
     '🪈' => 'flauta',
+    '🪉' => 'arpa',
     '📱' => 'teléfono móvil',
     '📲' => 'móvil con una flecha',
     '☎' => 'teléfono',
@@ -3430,8 +3591,9 @@
     '📑' => 'marcadores',
     '🔖' => 'marcapáginas',
     '🏷' => 'etiqueta',
-    '💰' => 'bolsa de dinero',
     '🪙' => 'moneda',
+    '💰' => 'bolsa de dinero',
+    '🪎' => 'cofre de tesoro',
     '💴' => 'billete de yen',
     '💵' => 'billete de dólar',
     '💶' => 'billete de euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'caja de herramientas',
     '🧲' => 'imán',
     '🪜' => 'escalera',
+    '🪏' => 'pala',
     '⚗' => 'alambique',
     '🧪' => 'tubo de ensayo',
     '🧫' => 'placa de petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'estrella de ocho puntas',
     '❇' => 'chispa',
     '™' => 'símbolo de marca comercial',
+    '🫟' => 'salpicadura',
     '🔠' => 'letras latinas mayúsculas',
     '🔡' => 'letras latinas minúsculas',
     '🔢' => 'números',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_us.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_us.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_us.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-es_us.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'beso: mujer, mujer, tono de piel oscuro y tono de piel medio',
     '👩🏿‍❤‍💋‍👩🏾' => 'beso: mujer, mujer, tono de piel oscuro y tono de piel oscuro medio',
     '👩🏿‍❤‍💋‍👩🏿' => 'beso: mujer, mujer y tono de piel oscuro',
+    '🧑🏻‍🫯‍🧑🏼' => 'personas luchando: tono de piel claro y tono de piel claro medio',
+    '🧑🏻‍🫯‍🧑🏽' => 'personas luchando: tono de piel claro y tono de piel medio',
+    '🧑🏻‍🫯‍🧑🏾' => 'personas luchando: tono de piel claro y tono de piel oscuro medio',
+    '🧑🏻‍🫯‍🧑🏿' => 'personas luchando: tono de piel claro y tono de piel oscuro',
+    '🧑🏼‍🫯‍🧑🏻' => 'personas luchando: tono de piel claro medio y tono de piel claro',
+    '🧑🏼‍🫯‍🧑🏽' => 'personas luchando: tono de piel claro medio y tono de piel medio',
+    '🧑🏼‍🫯‍🧑🏾' => 'personas luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '🧑🏼‍🫯‍🧑🏿' => 'personas luchando: tono de piel claro medio y tono de piel oscuro',
+    '🧑🏽‍🫯‍🧑🏻' => 'personas luchando: tono de piel medio y tono de piel claro',
+    '🧑🏽‍🫯‍🧑🏼' => 'personas luchando: tono de piel medio y tono de piel claro medio',
+    '🧑🏽‍🫯‍🧑🏾' => 'personas luchando: tono de piel medio y tono de piel oscuro medio',
+    '🧑🏽‍🫯‍🧑🏿' => 'personas luchando: tono de piel medio y tono de piel oscuro',
+    '🧑🏾‍🫯‍🧑🏻' => 'personas luchando: tono de piel oscuro medio y tono de piel claro',
+    '🧑🏾‍🫯‍🧑🏼' => 'personas luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '🧑🏾‍🫯‍🧑🏽' => 'personas luchando: tono de piel oscuro medio y tono de piel medio',
+    '🧑🏾‍🫯‍🧑🏿' => 'personas luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '🧑🏿‍🫯‍🧑🏻' => 'personas luchando: tono de piel oscuro y tono de piel claro',
+    '🧑🏿‍🫯‍🧑🏼' => 'personas luchando: tono de piel oscuro y tono de piel claro medio',
+    '🧑🏿‍🫯‍🧑🏽' => 'personas luchando: tono de piel oscuro y tono de piel medio',
+    '🧑🏿‍🫯‍🧑🏾' => 'personas luchando: tono de piel oscuro y tono de piel oscuro medio',
     '🧑🏻‍❤‍🧑🏼' => 'pareja enamorada: persona adulta, persona adulta, tono de piel claro y tono de piel claro medio',
     '🧑🏻‍❤‍🧑🏽' => 'pareja enamorada: persona adulta, persona adulta, tono de piel claro y tono de piel medio',
     '🧑🏻‍❤‍🧑🏾' => 'pareja enamorada: persona adulta, persona adulta, tono de piel claro y tono de piel oscuro medio',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pareja enamorada: persona adulta, persona adulta, tono de piel oscuro y tono de piel claro medio',
     '🧑🏿‍❤‍🧑🏽' => 'pareja enamorada: persona adulta, persona adulta, tono de piel oscuro y tono de piel medio',
     '🧑🏿‍❤‍🧑🏾' => 'pareja enamorada: persona adulta, persona adulta, tono de piel oscuro y tono de piel oscuro medio',
+    '🧑🏻‍🐰‍🧑🏼' => 'gente con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '🧑🏻‍🐰‍🧑🏽' => 'gente con orejas de conejo: tono de piel claro y tono de piel medio',
+    '🧑🏻‍🐰‍🧑🏾' => 'gente con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '🧑🏻‍🐰‍🧑🏿' => 'gente con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '🧑🏼‍🐰‍🧑🏻' => 'gente con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '🧑🏼‍🐰‍🧑🏽' => 'gente con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '🧑🏼‍🐰‍🧑🏾' => 'gente con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '🧑🏼‍🐰‍🧑🏿' => 'gente con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '🧑🏽‍🐰‍🧑🏻' => 'gente con orejas de conejo: tono de piel medio y tono de piel claro',
+    '🧑🏽‍🐰‍🧑🏼' => 'gente con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '🧑🏽‍🐰‍🧑🏾' => 'gente con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '🧑🏽‍🐰‍🧑🏿' => 'gente con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '🧑🏾‍🐰‍🧑🏻' => 'gente con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '🧑🏾‍🐰‍🧑🏼' => 'gente con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '🧑🏾‍🐰‍🧑🏽' => 'gente con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '🧑🏾‍🐰‍🧑🏿' => 'gente con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '🧑🏿‍🐰‍🧑🏻' => 'gente con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '🧑🏿‍🐰‍🧑🏼' => 'gente con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '🧑🏿‍🐰‍🧑🏽' => 'gente con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '🧑🏿‍🐰‍🧑🏾' => 'gente con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
+    '👨🏻‍🫯‍👨🏼' => 'hombres luchando: tono de piel claro y tono de piel claro medio',
+    '👨🏻‍🫯‍👨🏽' => 'hombres luchando: tono de piel claro y tono de piel medio',
+    '👨🏻‍🫯‍👨🏾' => 'hombres luchando: tono de piel claro y tono de piel oscuro medio',
+    '👨🏻‍🫯‍👨🏿' => 'hombres luchando: tono de piel claro y tono de piel oscuro',
+    '👨🏼‍🫯‍👨🏻' => 'hombres luchando: tono de piel claro medio y tono de piel claro',
+    '👨🏼‍🫯‍👨🏽' => 'hombres luchando: tono de piel claro medio y tono de piel medio',
+    '👨🏼‍🫯‍👨🏾' => 'hombres luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '👨🏼‍🫯‍👨🏿' => 'hombres luchando: tono de piel claro medio y tono de piel oscuro',
+    '👨🏽‍🫯‍👨🏻' => 'hombres luchando: tono de piel medio y tono de piel claro',
+    '👨🏽‍🫯‍👨🏼' => 'hombres luchando: tono de piel medio y tono de piel claro medio',
+    '👨🏽‍🫯‍👨🏾' => 'hombres luchando: tono de piel medio y tono de piel oscuro medio',
+    '👨🏽‍🫯‍👨🏿' => 'hombres luchando: tono de piel medio y tono de piel oscuro',
+    '👨🏾‍🫯‍👨🏻' => 'hombres luchando: tono de piel oscuro medio y tono de piel claro',
+    '👨🏾‍🫯‍👨🏼' => 'hombres luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '👨🏾‍🫯‍👨🏽' => 'hombres luchando: tono de piel oscuro medio y tono de piel medio',
+    '👨🏾‍🫯‍👨🏿' => 'hombres luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '👨🏿‍🫯‍👨🏻' => 'hombres luchando: tono de piel oscuro y tono de piel claro',
+    '👨🏿‍🫯‍👨🏼' => 'hombres luchando: tono de piel oscuro y tono de piel claro medio',
+    '👨🏿‍🫯‍👨🏽' => 'hombres luchando: tono de piel oscuro y tono de piel medio',
+    '👨🏿‍🫯‍👨🏾' => 'hombres luchando: tono de piel oscuro y tono de piel oscuro medio',
     '👨🏻‍❤‍👨🏻' => 'pareja enamorada: hombre, hombre y tono de piel claro',
     '👨🏻‍❤‍👨🏼' => 'pareja enamorada: hombre, hombre, tono de piel claro y tono de piel claro medio',
     '👨🏻‍❤‍👨🏽' => 'pareja enamorada: hombre, hombre, tono de piel claro y tono de piel medio',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pareja enamorada: hombre, hombre, tono de piel oscuro y tono de piel medio',
     '👨🏿‍❤‍👨🏾' => 'pareja enamorada: hombre, hombre, tono de piel oscuro y tono de piel oscuro medio',
     '👨🏿‍❤‍👨🏿' => 'pareja enamorada: hombre, hombre y tono de piel oscuro',
+    '👨🏻‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '👨🏻‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel claro y tono de piel medio',
+    '👨🏻‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '👨🏻‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '👨🏼‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '👨🏼‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '👨🏼‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '👨🏼‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '👨🏽‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel medio y tono de piel claro',
+    '👨🏽‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '👨🏽‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '👨🏽‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '👨🏾‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '👨🏾‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '👨🏾‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '👨🏾‍🐰‍👨🏿' => 'hombres con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '👨🏿‍🐰‍👨🏻' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '👨🏿‍🐰‍👨🏼' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '👨🏿‍🐰‍👨🏽' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '👨🏿‍🐰‍👨🏾' => 'hombres con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
+    '👩🏻‍🫯‍👩🏼' => 'mujeres luchando: tono de piel claro y tono de piel claro medio',
+    '👩🏻‍🫯‍👩🏽' => 'mujeres luchando: tono de piel claro y tono de piel medio',
+    '👩🏻‍🫯‍👩🏾' => 'mujeres luchando: tono de piel claro y tono de piel oscuro medio',
+    '👩🏻‍🫯‍👩🏿' => 'mujeres luchando: tono de piel claro y tono de piel oscuro',
+    '👩🏼‍🫯‍👩🏻' => 'mujeres luchando: tono de piel claro medio y tono de piel claro',
+    '👩🏼‍🫯‍👩🏽' => 'mujeres luchando: tono de piel claro medio y tono de piel medio',
+    '👩🏼‍🫯‍👩🏾' => 'mujeres luchando: tono de piel claro medio y tono de piel oscuro medio',
+    '👩🏼‍🫯‍👩🏿' => 'mujeres luchando: tono de piel claro medio y tono de piel oscuro',
+    '👩🏽‍🫯‍👩🏻' => 'mujeres luchando: tono de piel medio y tono de piel claro',
+    '👩🏽‍🫯‍👩🏼' => 'mujeres luchando: tono de piel medio y tono de piel claro medio',
+    '👩🏽‍🫯‍👩🏾' => 'mujeres luchando: tono de piel medio y tono de piel oscuro medio',
+    '👩🏽‍🫯‍👩🏿' => 'mujeres luchando: tono de piel medio y tono de piel oscuro',
+    '👩🏾‍🫯‍👩🏻' => 'mujeres luchando: tono de piel oscuro medio y tono de piel claro',
+    '👩🏾‍🫯‍👩🏼' => 'mujeres luchando: tono de piel oscuro medio y tono de piel claro medio',
+    '👩🏾‍🫯‍👩🏽' => 'mujeres luchando: tono de piel oscuro medio y tono de piel medio',
+    '👩🏾‍🫯‍👩🏿' => 'mujeres luchando: tono de piel oscuro medio y tono de piel oscuro',
+    '👩🏿‍🫯‍👩🏻' => 'mujeres luchando: tono de piel oscuro y tono de piel claro',
+    '👩🏿‍🫯‍👩🏼' => 'mujeres luchando: tono de piel oscuro y tono de piel claro medio',
+    '👩🏿‍🫯‍👩🏽' => 'mujeres luchando: tono de piel oscuro y tono de piel medio',
+    '👩🏿‍🫯‍👩🏾' => 'mujeres luchando: tono de piel oscuro y tono de piel oscuro medio',
     '👩🏻‍❤‍👨🏻' => 'pareja enamorada: mujer, hombre y tono de piel claro',
     '👩🏻‍❤‍👨🏼' => 'pareja enamorada: mujer, hombre, tono de piel claro y tono de piel claro medio',
     '👩🏻‍❤‍👨🏽' => 'pareja enamorada: mujer, hombre, tono de piel claro y tono de piel medio',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pareja enamorada: mujer, mujer, tono de piel oscuro y tono de piel medio',
     '👩🏿‍❤‍👩🏾' => 'pareja enamorada: mujer, mujer, tono de piel oscuro y tono de piel oscuro medio',
     '👩🏿‍❤‍👩🏿' => 'pareja enamorada: mujer, mujer y tono de piel oscuro',
+    '👩🏻‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel claro medio',
+    '👩🏻‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel medio',
+    '👩🏻‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel oscuro medio',
+    '👩🏻‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel claro y tono de piel oscuro',
+    '👩🏼‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel claro',
+    '👩🏼‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel medio',
+    '👩🏼‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel oscuro medio',
+    '👩🏼‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel claro medio y tono de piel oscuro',
+    '👩🏽‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel claro',
+    '👩🏽‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel claro medio',
+    '👩🏽‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel oscuro medio',
+    '👩🏽‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel medio y tono de piel oscuro',
+    '👩🏾‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel claro',
+    '👩🏾‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel claro medio',
+    '👩🏾‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel medio',
+    '👩🏾‍🐰‍👩🏿' => 'mujeres con orejas de conejo: tono de piel oscuro medio y tono de piel oscuro',
+    '👩🏿‍🐰‍👩🏻' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel claro',
+    '👩🏿‍🐰‍👩🏼' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel claro medio',
+    '👩🏿‍🐰‍👩🏽' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel medio',
+    '👩🏿‍🐰‍👩🏾' => 'mujeres con orejas de conejo: tono de piel oscuro y tono de piel oscuro medio',
     '🧑🏻‍🤝‍🧑🏻' => 'personas que se toman de la mano: tono de piel claro',
     '🧑🏻‍🤝‍🧑🏼' => 'personas que se toman de la mano: tono de piel claro y tono de piel claro medio',
     '🧑🏻‍🤝‍🧑🏽' => 'personas que se toman de la mano: tono de piel claro y tono de piel medio',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'Bandera: Escocia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'Bandera: Gales',
     '🧑‍🧑‍🧒‍🧒' => 'familia: adulto, adulto, infante, infante',
-    '🚶🏻‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏼‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏽‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏾‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏿‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶🏻‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏼‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏽‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏾‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🚶🏿‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🧎🏻‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏼‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏽‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏾‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏿‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎🏻‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏼‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏽‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏾‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧎🏿‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧑🏻‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏼‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏽‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏾‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '🧑🏿‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '👨🏻‍🦯‍➡' => 'hombre con bastón blanco hacia la derecha',
-    '👨🏼‍🦯‍➡' => 'hombre con bastón blanco hacia la derecha',
-    '👨🏽‍🦯‍➡' => 'hombre con bastón blanco hacia la derecha',
-    '👨🏾‍🦯‍➡' => 'hombre con bastón blanco hacia la derecha',
-    '👨🏿‍🦯‍➡' => 'hombre con bastón blanco hacia la derecha',
-    '👩🏻‍🦯‍➡' => 'mujer con bastón blanco hacia la derecha',
-    '👩🏼‍🦯‍➡' => 'mujer con bastón blanco hacia la derecha',
-    '👩🏽‍🦯‍➡' => 'mujer con bastón blanco hacia la derecha',
-    '👩🏾‍🦯‍➡' => 'mujer con bastón blanco hacia la derecha',
-    '👩🏿‍🦯‍➡' => 'mujer con bastón blanco hacia la derecha',
-    '🧑🏻‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏼‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏽‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏾‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏿‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '👨🏻‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏼‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏽‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏾‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👨🏿‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👩🏻‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏼‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏽‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏾‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '👩🏿‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '🧑🏻‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏼‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏽‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏾‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '🧑🏿‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '👨🏻‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏼‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏽‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏾‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👨🏿‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👩🏻‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏼‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏽‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏾‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '👩🏿‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '🏃🏻‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏼‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏽‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏾‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏿‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃🏻‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏼‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏽‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏾‍♂‍➡' => 'hombre corriendo hacia la derecha',
-    '🏃🏿‍♂‍➡' => 'hombre corriendo hacia la derecha',
+    '🚶🏻‍♀‍➡' => 'mujer caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍♀‍➡' => 'mujer caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍♀‍➡' => 'mujer caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍♀‍➡' => 'mujer caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍♀‍➡' => 'mujer caminando: tono de piel oscuro y hacia la derecha',
+    '🚶🏻‍♂‍➡' => 'hombre caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍♂‍➡' => 'hombre caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍♂‍➡' => 'hombre caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍♂‍➡' => 'hombre caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍♂‍➡' => 'hombre caminando: tono de piel oscuro y hacia la derecha',
+    '🧎🏻‍♀‍➡' => 'mujer de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍♀‍➡' => 'mujer de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍♀‍➡' => 'mujer de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍♀‍➡' => 'mujer de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍♀‍➡' => 'mujer de rodillas: tono de piel oscuro y hacia la derecha',
+    '🧎🏻‍♂‍➡' => 'hombre de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍♂‍➡' => 'hombre de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍♂‍➡' => 'hombre de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍♂‍➡' => 'hombre de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍♂‍➡' => 'hombre de rodillas: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦯‍➡' => 'persona con bastón: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦯‍➡' => 'persona con bastón: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦯‍➡' => 'persona con bastón: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦯‍➡' => 'persona con bastón: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦯‍➡' => 'persona con bastón: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦯‍➡' => 'hombre con bastón blanco: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦯‍➡' => 'hombre con bastón blanco: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦯‍➡' => 'hombre con bastón blanco: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦯‍➡' => 'hombre con bastón blanco: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦯‍➡' => 'hombre con bastón blanco: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦯‍➡' => 'mujer con bastón blanco: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦯‍➡' => 'mujer con bastón blanco: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦯‍➡' => 'mujer con bastón blanco: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦯‍➡' => 'mujer con bastón blanco: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦯‍➡' => 'mujer con bastón blanco: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦼‍➡' => 'persona en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: tono de piel oscuro y hacia la derecha',
+    '🧑🏻‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '🧑🏼‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '🧑🏽‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '🧑🏾‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '🧑🏿‍🦽‍➡' => 'persona en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '👨🏻‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '👨🏼‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '👨🏽‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '👨🏾‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '👨🏿‍🦽‍➡' => 'hombre en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '👩🏻‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel claro y hacia la derecha',
+    '👩🏼‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel claro medio y hacia la derecha',
+    '👩🏽‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel medio y hacia la derecha',
+    '👩🏾‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel oscuro medio y hacia la derecha',
+    '👩🏿‍🦽‍➡' => 'mujer en silla de ruedas manual: tono de piel oscuro y hacia la derecha',
+    '🏃🏻‍♀‍➡' => 'mujer corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍♀‍➡' => 'mujer corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍♀‍➡' => 'mujer corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍♀‍➡' => 'mujer corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍♀‍➡' => 'mujer corriendo: tono de piel oscuro y hacia la derecha',
+    '🏃🏻‍♂‍➡' => 'hombre corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍♂‍➡' => 'hombre corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍♂‍➡' => 'hombre corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍♂‍➡' => 'hombre corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍♂‍➡' => 'hombre corriendo: tono de piel oscuro y hacia la derecha',
     '🫱🏻‍🫲🏼' => 'apretón de manos: tono de piel claro y tono de piel claro medio',
     '🫱🏻‍🫲🏽' => 'apretón de manos: tono de piel claro y tono de piel medio',
     '🫱🏻‍🫲🏾' => 'apretón de manos: tono de piel claro y tono de piel oscuro medio',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'apretón de manos: tono de piel oscuro y tono de piel claro medio',
     '🫱🏿‍🫲🏽' => 'apretón de manos: tono de piel oscuro y tono de piel medio',
     '🫱🏿‍🫲🏾' => 'apretón de manos: tono de piel oscuro y tono de piel oscuro medio',
-    '🚶‍♀‍➡' => 'mujer caminando hacia la derecha',
-    '🚶‍♂‍➡' => 'hombre caminando hacia la derecha',
-    '🧎‍♀‍➡' => 'mujer de rodillas hacia la derecha',
-    '🧎‍♂‍➡' => 'hombre de rodillas hacia la derecha',
-    '🧑‍🦯‍➡' => 'persona con bastón hacia la derecha',
-    '👨‍🦯‍➡' => 'hombre con bastón blanco hacia la derecha',
-    '👩‍🦯‍➡' => 'mujer con bastón blanco hacia la derecha',
-    '🧑‍🦼‍➡' => 'persona en silla de ruedas eléctrica hacia la derecha',
-    '👨‍🦼‍➡' => 'hombre en silla de ruedas eléctrica hacia la derecha',
-    '👩‍🦼‍➡' => 'mujer en silla de ruedas eléctrica hacia la derecha',
-    '🧑‍🦽‍➡' => 'persona en silla de ruedas manual hacia la derecha',
-    '👨‍🦽‍➡' => 'hombre en silla de ruedas manual hacia la derecha',
-    '👩‍🦽‍➡' => 'mujer en silla de ruedas manual hacia la derecha',
-    '🏃‍♀‍➡' => 'mujer corriendo hacia la derecha',
-    '🏃‍♂‍➡' => 'hombre corriendo hacia la derecha',
+    '🚶‍♀‍➡' => 'mujer caminando: hacia la derecha',
+    '🚶‍♂‍➡' => 'hombre caminando: hacia la derecha',
+    '🧎‍♀‍➡' => 'mujer de rodillas: hacia la derecha',
+    '🧎‍♂‍➡' => 'hombre de rodillas: hacia la derecha',
+    '🧑‍🦯‍➡' => 'persona con bastón: hacia la derecha',
+    '👨‍🦯‍➡' => 'hombre con bastón blanco: hacia la derecha',
+    '👩‍🦯‍➡' => 'mujer con bastón blanco: hacia la derecha',
+    '🧑‍🦼‍➡' => 'persona en silla de ruedas eléctrica: hacia la derecha',
+    '👨‍🦼‍➡' => 'hombre en silla de ruedas eléctrica: hacia la derecha',
+    '👩‍🦼‍➡' => 'mujer en silla de ruedas eléctrica: hacia la derecha',
+    '🧑‍🦽‍➡' => 'persona en silla de ruedas manual: hacia la derecha',
+    '👨‍🦽‍➡' => 'hombre en silla de ruedas manual: hacia la derecha',
+    '👩‍🦽‍➡' => 'mujer en silla de ruedas manual: hacia la derecha',
+    '🏃‍♀‍➡' => 'mujer corriendo: hacia la derecha',
+    '🏃‍♂‍➡' => 'hombre corriendo: hacia la derecha',
     '👩‍❤‍👨' => 'pareja enamorada: mujer y hombre',
     '👨‍❤‍👨' => 'pareja enamorada: hombre y hombre',
     '👩‍❤‍👩' => 'pareja enamorada: mujer y mujer',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'persona adulta: tono de piel medio y calvo',
     '🧑🏾‍🦲' => 'persona adulta: tono de piel oscuro medio y calvo',
     '🧑🏿‍🦲' => 'persona adulta: tono de piel oscuro y calvo',
+    '🧑🏻‍🩰' => 'bailarina de ballet: tono de piel claro',
+    '🧑🏼‍🩰' => 'bailarina de ballet: tono de piel claro medio',
+    '🧑🏽‍🩰' => 'bailarina de ballet: tono de piel medio',
+    '🧑🏾‍🩰' => 'bailarina de ballet: tono de piel oscuro medio',
+    '🧑🏿‍🩰' => 'bailarina de ballet: tono de piel oscuro',
     '🧔🏻‍♂' => 'hombre: tono de piel claro y barba',
     '🧔🏼‍♂' => 'hombre: tono de piel claro medio y barba',
     '🧔🏽‍♂' => 'hombre: tono de piel medio y barba',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'mujer caminando: tono de piel medio',
     '🚶🏾‍♀' => 'mujer caminando: tono de piel oscuro medio',
     '🚶🏿‍♀' => 'mujer caminando: tono de piel oscuro',
-    '🚶🏻‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏼‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏽‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏾‍➡' => 'persona caminando hacia la derecha',
-    '🚶🏿‍➡' => 'persona caminando hacia la derecha',
+    '🚶🏻‍➡' => 'persona caminando: tono de piel claro y hacia la derecha',
+    '🚶🏼‍➡' => 'persona caminando: tono de piel claro medio y hacia la derecha',
+    '🚶🏽‍➡' => 'persona caminando: tono de piel medio y hacia la derecha',
+    '🚶🏾‍➡' => 'persona caminando: tono de piel oscuro medio y hacia la derecha',
+    '🚶🏿‍➡' => 'persona caminando: tono de piel oscuro y hacia la derecha',
     '🧍🏻‍♂' => 'hombre de pie: tono de piel claro',
     '🧍🏼‍♂' => 'hombre de pie: tono de piel claro medio',
     '🧍🏽‍♂' => 'hombre de pie: tono de piel medio',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'mujer de rodillas: tono de piel medio',
     '🧎🏾‍♀' => 'mujer de rodillas: tono de piel oscuro medio',
     '🧎🏿‍♀' => 'mujer de rodillas: tono de piel oscuro',
-    '🧎🏻‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏼‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏽‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏾‍➡' => 'persona de rodillas hacia la derecha',
-    '🧎🏿‍➡' => 'persona de rodillas hacia la derecha',
+    '🧎🏻‍➡' => 'persona de rodillas: tono de piel claro y hacia la derecha',
+    '🧎🏼‍➡' => 'persona de rodillas: tono de piel claro medio y hacia la derecha',
+    '🧎🏽‍➡' => 'persona de rodillas: tono de piel medio y hacia la derecha',
+    '🧎🏾‍➡' => 'persona de rodillas: tono de piel oscuro medio y hacia la derecha',
+    '🧎🏿‍➡' => 'persona de rodillas: tono de piel oscuro y hacia la derecha',
     '🧑🏻‍🦯' => 'persona con bastón: tono de piel claro',
     '🧑🏼‍🦯' => 'persona con bastón: tono de piel claro medio',
     '🧑🏽‍🦯' => 'persona con bastón: tono de piel medio',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'mujer corriendo: tono de piel medio',
     '🏃🏾‍♀' => 'mujer corriendo: tono de piel oscuro medio',
     '🏃🏿‍♀' => 'mujer corriendo: tono de piel oscuro',
-    '🏃🏻‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏼‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏽‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏾‍➡' => 'persona corriendo hacia la derecha',
-    '🏃🏿‍➡' => 'persona corriendo hacia la derecha',
+    '🏃🏻‍➡' => 'persona corriendo: tono de piel claro y hacia la derecha',
+    '🏃🏼‍➡' => 'persona corriendo: tono de piel claro medio y hacia la derecha',
+    '🏃🏽‍➡' => 'persona corriendo: tono de piel medio y hacia la derecha',
+    '🏃🏾‍➡' => 'persona corriendo: tono de piel oscuro medio y hacia la derecha',
+    '🏃🏿‍➡' => 'persona corriendo: tono de piel oscuro y hacia la derecha',
+    '👯🏻‍♀' => 'mujeres con orejas de conejo: tono de piel claro',
+    '👯🏼‍♀' => 'mujeres con orejas de conejo: tono de piel claro medio',
+    '👯🏽‍♀' => 'mujeres con orejas de conejo: tono de piel medio',
+    '👯🏾‍♀' => 'mujeres con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿‍♀' => 'mujeres con orejas de conejo: tono de piel oscuro',
+    '👯🏻‍♂' => 'hombres con orejas de conejo: tono de piel claro',
+    '👯🏼‍♂' => 'hombres con orejas de conejo: tono de piel claro medio',
+    '👯🏽‍♂' => 'hombres con orejas de conejo: tono de piel medio',
+    '👯🏾‍♂' => 'hombres con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿‍♂' => 'hombres con orejas de conejo: tono de piel oscuro',
     '🧖🏻‍♂' => 'hombre en una sauna: tono de piel claro',
     '🧖🏼‍♂' => 'hombre en una sauna: tono de piel claro medio',
     '🧖🏽‍♂' => 'hombre en una sauna: tono de piel medio',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'mujer dando una voltereta lateral: tono de piel medio',
     '🤸🏾‍♀' => 'mujer dando una voltereta lateral: tono de piel oscuro medio',
     '🤸🏿‍♀' => 'mujer dando una voltereta lateral: tono de piel oscuro',
+    '🤼🏻‍♀' => 'mujeres luchando: tono de piel claro',
+    '🤼🏼‍♀' => 'mujeres luchando: tono de piel claro medio',
+    '🤼🏽‍♀' => 'mujeres luchando: tono de piel medio',
+    '🤼🏾‍♀' => 'mujeres luchando: tono de piel oscuro medio',
+    '🤼🏿‍♀' => 'mujeres luchando: tono de piel oscuro',
+    '🤼🏻‍♂' => 'hombres luchando: tono de piel claro',
+    '🤼🏼‍♂' => 'hombres luchando: tono de piel claro medio',
+    '🤼🏽‍♂' => 'hombres luchando: tono de piel medio',
+    '🤼🏾‍♂' => 'hombres luchando: tono de piel oscuro medio',
+    '🤼🏿‍♂' => 'hombres luchando: tono de piel oscuro',
     '🤽🏻‍♂' => 'hombre jugando al waterpolo: tono de piel claro',
     '🤽🏼‍♂' => 'hombre jugando al waterpolo: tono de piel claro medio',
     '🤽🏽‍♂' => 'hombre jugando al waterpolo: tono de piel medio',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'mujer: pelo rizado',
     '👩‍🦳' => 'mujer: pelo canoso',
     '👩‍🦲' => 'mujer: calvo',
-    '🚶‍➡' => 'persona caminando hacia la derecha',
-    '🧎‍➡' => 'persona de rodillas hacia la derecha',
-    '🏃‍➡' => 'persona corriendo hacia la derecha',
+    '🚶‍➡' => 'persona caminando: hacia la derecha',
+    '🧎‍➡' => 'persona de rodillas: hacia la derecha',
+    '🏃‍➡' => 'persona corriendo: hacia la derecha',
     '👨‍👦' => 'familia: hombre y niño',
     '👨‍👧' => 'familia: hombre y niña',
     '👩‍👦' => 'familia: mujer y niño',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'mujer en silla de ruedas manual',
     '🏃‍♂' => 'hombre corriendo',
     '🏃‍♀' => 'mujer corriendo',
+    '🧑‍🩰' => 'bailarina de ballet',
     '👯‍♂' => 'hombres con orejas de conejo',
     '👯‍♀' => 'mujeres con orejas de conejo',
     '🧖‍♂' => 'hombre en una sauna',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'persona en traje levitando: tono de piel medio',
     '🕴🏾' => 'persona en traje levitando: tono de piel oscuro medio',
     '🕴🏿' => 'persona en traje levitando: tono de piel oscuro',
+    '👯🏻' => 'gente con orejas de conejo: tono de piel claro',
+    '👯🏼' => 'gente con orejas de conejo: tono de piel claro medio',
+    '👯🏽' => 'gente con orejas de conejo: tono de piel medio',
+    '👯🏾' => 'gente con orejas de conejo: tono de piel oscuro medio',
+    '👯🏿' => 'gente con orejas de conejo: tono de piel oscuro',
     '🧖🏻' => 'persona en una sauna: tono de piel claro',
     '🧖🏼' => 'persona en una sauna: tono de piel claro medio',
     '🧖🏽' => 'persona en una sauna: tono de piel medio',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persona haciendo vuelta de carro: tono de piel medio',
     '🤸🏾' => 'persona haciendo vuelta de carro: tono de piel oscuro medio',
     '🤸🏿' => 'persona haciendo vuelta de carro: tono de piel oscuro',
+    '🤼🏻' => 'personas luchando: tono de piel claro',
+    '🤼🏼' => 'personas luchando: tono de piel claro medio',
+    '🤼🏽' => 'personas luchando: tono de piel medio',
+    '🤼🏾' => 'personas luchando: tono de piel oscuro medio',
+    '🤼🏿' => 'personas luchando: tono de piel oscuro',
     '🤽🏻' => 'persona jugando al waterpolo: tono de piel claro',
     '🤽🏼' => 'persona jugando al waterpolo: tono de piel claro medio',
     '🤽🏽' => 'persona jugando al waterpolo: tono de piel medio',
@@ -2126,7 +2282,7 @@
     '💑🏽' => 'pareja enamorada: tono de piel medio',
     '💑🏾' => 'pareja enamorada: tono de piel oscuro medio',
     '💑🏿' => 'pareja enamorada: tono de piel oscuro',
-    '🇦🇨' => 'bandera: Isla de la Ascensión',
+    '🇦🇨' => 'Bandera: Isla de la Ascensión',
     '🇦🇩' => 'Bandera: Andorra',
     '🇦🇪' => 'Bandera: Emiratos Árabes Unidos',
     '🇦🇫' => 'Bandera: Afganistán',
@@ -2143,7 +2299,7 @@
     '🇦🇼' => 'Bandera: Aruba',
     '🇦🇽' => 'Bandera: Islas Aland',
     '🇦🇿' => 'Bandera: Azerbaiyán',
-    '🇧🇦' => 'bandera: Bosnia y Herzegovina',
+    '🇧🇦' => 'Bandera: Bosnia y Herzegovina',
     '🇧🇧' => 'Bandera: Barbados',
     '🇧🇩' => 'Bandera: Bangladés',
     '🇧🇪' => 'Bandera: Bélgica',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'Bandera: China',
     '🇨🇴' => 'Bandera: Colombia',
     '🇨🇵' => 'Bandera: Isla Clipperton',
+    '🇨🇶' => 'Bandera: Sark',
     '🇨🇷' => 'Bandera: Costa Rica',
     '🇨🇺' => 'Bandera: Cuba',
     '🇨🇻' => 'Bandera: Cabo Verde',
@@ -2195,7 +2352,7 @@
     '🇪🇨' => 'Bandera: Ecuador',
     '🇪🇪' => 'Bandera: Estonia',
     '🇪🇬' => 'Bandera: Egipto',
-    '🇪🇭' => 'bandera: Sahara Occidental',
+    '🇪🇭' => 'Bandera: Sahara Occidental',
     '🇪🇷' => 'Bandera: Eritrea',
     '🇪🇸' => 'Bandera: España',
     '🇪🇹' => 'Bandera: Etiopía',
@@ -2211,7 +2368,7 @@
     '🇬🇩' => 'Bandera: Granada',
     '🇬🇪' => 'Bandera: Georgia',
     '🇬🇫' => 'Bandera: Guayana Francesa',
-    '🇬🇬' => 'bandera: Guernsey',
+    '🇬🇬' => 'Bandera: Guernsey',
     '🇬🇭' => 'Bandera: Ghana',
     '🇬🇮' => 'Bandera: Gibraltar',
     '🇬🇱' => 'Bandera: Groenlandia',
@@ -2364,7 +2521,7 @@
     '🇹🇿' => 'Bandera: Tanzania',
     '🇺🇦' => 'Bandera: Ucrania',
     '🇺🇬' => 'Bandera: Uganda',
-    '🇺🇲' => 'bandera: Islas menores alejadas de EE. UU.',
+    '🇺🇲' => 'Bandera: Islas menores alejadas de EE. UU.',
     '🇺🇳' => 'Bandera: Naciones Unidas',
     '🇺🇸' => 'Bandera: Estados Unidos',
     '🇺🇾' => 'Bandera: Uruguay',
@@ -2390,13 +2547,6 @@
     '🏽' => 'tono de piel medio',
     '🏾' => 'tono de piel oscuro medio',
     '🏿' => 'tono de piel oscuro',
-    '🪉' => 'harpa',
-    '🪏' => 'pala',
-    '🪾' => 'árbol sin hojas',
-    '🫆' => 'huella digital',
-    '🫜' => 'betabel',
-    '🫟' => 'salpicadura',
-    '🫩' => 'cara con ojeras',
     '😀' => 'cara sonriendo',
     '😃' => 'cara sonriendo con ojos grandes',
     '😄' => 'cara sonriendo con ojos sonrientes',
@@ -2450,6 +2600,7 @@
     '😪' => 'cara de sueño',
     '🤤' => 'cara babeando',
     '😴' => 'cara durmiendo',
+    '🫩' => 'cara con ojeras',
     '😷' => 'cara con mascarilla médica',
     '🤒' => 'cara con termómetro',
     '🤕' => 'cara con la cabeza vendada',
@@ -2476,6 +2627,7 @@
     '😯' => 'cara estupefacta',
     '😲' => 'cara asombrada',
     '😳' => 'cara sonrojada',
+    '🫪' => 'cara deformada',
     '🥺' => 'cara suplicante',
     '🥹' => 'cara aguantándose las lágrimas',
     '😦' => 'cara con el ceño fruncido y la boca abierta',
@@ -2547,6 +2699,7 @@
     '💋' => 'marca de beso',
     '💯' => 'cien puntos',
     '💢' => 'símbolo de enfado',
+    '🫯' => 'nube de pelea',
     '💥' => 'colisión',
     '💫' => 'símbolo de mareo',
     '💦' => 'gotas de sudor',
@@ -2670,6 +2823,7 @@
     '🧞' => 'genio',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'criatura peluda',
     '💆' => 'persona recibiendo masaje',
     '💇' => 'persona cortándose el pelo',
     '🚶' => 'persona caminando',
@@ -2713,6 +2867,7 @@
     '🫂' => 'personas abrazándose',
     '👪' => 'familia',
     '👣' => 'huellas de pies',
+    '🫆' => 'huella digital',
     '🦰' => 'pelirrojo',
     '🦱' => 'pelo rizado',
     '🦳' => 'pelo canoso',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ballena soltando un chorro',
     '🐋' => 'ballena',
     '🐬' => 'delfín',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'pez',
     '🐠' => 'pez tropical',
@@ -2821,6 +2977,11 @@
     '🐚' => 'concha espiral',
     '🪸' => 'coral',
     '🪼' => 'medusa',
+    '🦀' => 'cangrejo',
+    '🦞' => 'bogavante',
+    '🦐' => 'gamba',
+    '🦑' => 'calamar',
+    '🦪' => 'ostra',
     '🐌' => 'caracol',
     '🦋' => 'mariposa',
     '🐛' => 'bicho',
@@ -2865,6 +3026,7 @@
     '🪹' => 'nido vacío',
     '🪺' => 'nido con huevos',
     '🍄' => 'champiñón',
+    '🪾' => 'árbol sin hojas',
     '🍇' => 'uvas',
     '🍈' => 'melón',
     '🍉' => 'sandía',
@@ -2901,6 +3063,7 @@
     '🌰' => 'castaña',
     '🫚' => 'raíz de jengibre',
     '🫛' => 'vaina',
+    '🫜' => 'betabel',
     '🍞' => 'pan de molde',
     '🥐' => 'cuernito',
     '🥖' => 'baguete',
@@ -2952,17 +3115,12 @@
     '🥟' => 'dumpling',
     '🥠' => 'galleta de la fortuna',
     '🥡' => 'caja para llevar',
-    '🦀' => 'cangrejo',
-    '🦞' => 'bogavante',
-    '🦐' => 'gamba',
-    '🦑' => 'calamar',
-    '🦪' => 'ostra',
     '🍦' => 'nieve en cono',
     '🍧' => 'raspado',
     '🍨' => 'helado',
     '🍩' => 'dónut',
     '🍪' => 'galleta',
-    '🎂' => 'pastel de cumpleaños',
+    '🎂' => 'tarta de cumpleaños',
     '🍰' => 'pastel de frutas',
     '🧁' => 'magdalena',
     '🥧' => 'pay',
@@ -3007,6 +3165,7 @@
     '🧭' => 'brújula',
     '🏔' => 'montaña con nieve',
     '⛰' => 'montaña',
+    '🛘' => 'desprendimiento',
     '🌋' => 'volcán',
     '🗻' => 'monte Fuji',
     '🏕' => 'camping',
@@ -3367,16 +3526,18 @@
     '🎧' => 'auricular',
     '📻' => 'radio',
     '🎷' => 'saxofón',
+    '🎺' => 'trompeta',
+    '🪊' => 'trombón',
     '🪗' => 'acordeón',
     '🎸' => 'guitarra',
     '🎹' => 'teclado musical',
-    '🎺' => 'trompeta',
     '🎻' => 'violín',
     '🪕' => 'banjo',
     '🥁' => 'tambor',
     '🪘' => 'tamboril',
     '🪇' => 'maracas',
     '🪈' => 'flauta',
+    '🪉' => 'harpa',
     '📱' => 'teléfono móvil',
     '📲' => 'móvil con una flecha',
     '☎' => 'teléfono',
@@ -3409,7 +3570,7 @@
     '🔍' => 'lupa orientada hacia la izquierda',
     '🔎' => 'lupa orientada hacia la derecha',
     '🕯' => 'vela',
-    '💡' => 'foco',
+    '💡' => 'bombilla',
     '🔦' => 'linterna',
     '🏮' => 'linterna de papel roja',
     '🪔' => 'lámpara de aceite',
@@ -3430,8 +3591,9 @@
     '📑' => 'etiquetas separadoras',
     '🔖' => 'separador',
     '🏷' => 'etiqueta',
-    '💰' => 'bolsa de dinero',
     '🪙' => 'moneda',
+    '💰' => 'bolsa de dinero',
+    '🪎' => 'cofre de tesoro',
     '💴' => 'billete de yen',
     '💵' => 'billete de dólar',
     '💶' => 'billete de euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'caja de herramientas',
     '🧲' => 'imán',
     '🪜' => 'escalera',
+    '🪏' => 'pala',
     '⚗' => 'alambique',
     '🧪' => 'tubo de ensayo',
     '🧫' => 'placa de Petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'estrella de ocho puntas',
     '❇' => 'chispa',
     '™' => 'símbolo de marca comercial',
+    '🫟' => 'salpicadura',
     '🔠' => 'letras latinas mayúsculas',
     '🔡' => 'letras latinas minúsculas',
     '🔢' => 'números',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-et.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-et.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-et.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-et.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'musi: naine, naine, tume nahatoon, keskmine nahatoon',
     '👩🏿‍❤‍💋‍👩🏾' => 'musi: naine, naine, tume nahatoon, keskmiselt tume nahatoon',
     '👩🏿‍❤‍💋‍👩🏿' => 'musi: naine, naine, tume nahatoon',
+    '🧑🏻‍🫯‍🧑🏼' => 'maadlejad: hele nahatoon, keskmiselt hele nahatoon',
+    '🧑🏻‍🫯‍🧑🏽' => 'maadlejad: hele nahatoon, keskmine nahatoon',
+    '🧑🏻‍🫯‍🧑🏾' => 'maadlejad: hele nahatoon, keskmiselt tume nahatoon',
+    '🧑🏻‍🫯‍🧑🏿' => 'maadlejad: hele nahatoon, tume nahatoon',
+    '🧑🏼‍🫯‍🧑🏻' => 'maadlejad: keskmiselt hele nahatoon, hele nahatoon',
+    '🧑🏼‍🫯‍🧑🏽' => 'maadlejad: keskmiselt hele nahatoon, keskmine nahatoon',
+    '🧑🏼‍🫯‍🧑🏾' => 'maadlejad: keskmiselt hele nahatoon, keskmiselt tume nahatoon',
+    '🧑🏼‍🫯‍🧑🏿' => 'maadlejad: keskmiselt hele nahatoon, tume nahatoon',
+    '🧑🏽‍🫯‍🧑🏻' => 'maadlejad: keskmine nahatoon, hele nahatoon',
+    '🧑🏽‍🫯‍🧑🏼' => 'maadlejad: keskmine nahatoon, keskmiselt hele nahatoon',
+    '🧑🏽‍🫯‍🧑🏾' => 'maadlejad: keskmine nahatoon, keskmiselt tume nahatoon',
+    '🧑🏽‍🫯‍🧑🏿' => 'maadlejad: keskmine nahatoon, tume nahatoon',
+    '🧑🏾‍🫯‍🧑🏻' => 'maadlejad: keskmiselt tume nahatoon, hele nahatoon',
+    '🧑🏾‍🫯‍🧑🏼' => 'maadlejad: keskmiselt tume nahatoon, keskmiselt hele nahatoon',
+    '🧑🏾‍🫯‍🧑🏽' => 'maadlejad: keskmiselt tume nahatoon, keskmine nahatoon',
+    '🧑🏾‍🫯‍🧑🏿' => 'maadlejad: keskmiselt tume nahatoon, tume nahatoon',
+    '🧑🏿‍🫯‍🧑🏻' => 'maadlejad: tume nahatoon, hele nahatoon',
+    '🧑🏿‍🫯‍🧑🏼' => 'maadlejad: tume nahatoon, keskmiselt hele nahatoon',
+    '🧑🏿‍🫯‍🧑🏽' => 'maadlejad: tume nahatoon, keskmine nahatoon',
+    '🧑🏿‍🫯‍🧑🏾' => 'maadlejad: tume nahatoon, keskmiselt tume nahatoon',
     '🧑🏻‍❤‍🧑🏼' => 'paarike südamega: täiskasvanu, täiskasvanu, hele nahatoon, keskmiselt hele nahatoon',
     '🧑🏻‍❤‍🧑🏽' => 'paarike südamega: täiskasvanu, täiskasvanu, hele nahatoon, keskmine nahatoon',
     '🧑🏻‍❤‍🧑🏾' => 'paarike südamega: täiskasvanu, täiskasvanu, hele nahatoon, keskmiselt tume nahatoon',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'paarike südamega: täiskasvanu, täiskasvanu, tume nahatoon, keskmiselt hele nahatoon',
     '🧑🏿‍❤‍🧑🏽' => 'paarike südamega: täiskasvanu, täiskasvanu, tume nahatoon, keskmine nahatoon',
     '🧑🏿‍❤‍🧑🏾' => 'paarike südamega: täiskasvanu, täiskasvanu, tume nahatoon, keskmiselt tume nahatoon',
+    '🧑🏻‍🐰‍🧑🏼' => 'pidutsevad jänesekõrvadega inimesed: hele nahatoon, keskmiselt hele nahatoon',
+    '🧑🏻‍🐰‍🧑🏽' => 'pidutsevad jänesekõrvadega inimesed: hele nahatoon, keskmine nahatoon',
+    '🧑🏻‍🐰‍🧑🏾' => 'pidutsevad jänesekõrvadega inimesed: hele nahatoon, keskmiselt tume nahatoon',
+    '🧑🏻‍🐰‍🧑🏿' => 'pidutsevad jänesekõrvadega inimesed: hele nahatoon, tume nahatoon',
+    '🧑🏼‍🐰‍🧑🏻' => 'pidutsevad jänesekõrvadega inimesed: keskmiselt hele nahatoon, hele nahatoon',
+    '🧑🏼‍🐰‍🧑🏽' => 'pidutsevad jänesekõrvadega inimesed: keskmiselt hele nahatoon, keskmine nahatoon',
+    '🧑🏼‍🐰‍🧑🏾' => 'pidutsevad jänesekõrvadega inimesed: keskmiselt hele nahatoon, keskmiselt tume nahatoon',
+    '🧑🏼‍🐰‍🧑🏿' => 'pidutsevad jänesekõrvadega inimesed: keskmiselt hele nahatoon, tume nahatoon',
+    '🧑🏽‍🐰‍🧑🏻' => 'pidutsevad jänesekõrvadega inimesed: keskmine nahatoon, hele nahatoon',
+    '🧑🏽‍🐰‍🧑🏼' => 'pidutsevad jänesekõrvadega inimesed: keskmine nahatoon, keskmiselt hele nahatoon',
+    '🧑🏽‍🐰‍🧑🏾' => 'pidutsevad jänesekõrvadega inimesed: keskmine nahatoon, keskmiselt tume nahatoon',
+    '🧑🏽‍🐰‍🧑🏿' => 'pidutsevad jänesekõrvadega inimesed: keskmine nahatoon, tume nahatoon',
+    '🧑🏾‍🐰‍🧑🏻' => 'pidutsevad jänesekõrvadega inimesed: keskmiselt tume nahatoon, hele nahatoon',
+    '🧑🏾‍🐰‍🧑🏼' => 'pidutsevad jänesekõrvadega inimesed: keskmiselt tume nahatoon, keskmiselt hele nahatoon',
+    '🧑🏾‍🐰‍🧑🏽' => 'pidutsevad jänesekõrvadega inimesed: keskmiselt tume nahatoon, keskmine nahatoon',
+    '🧑🏾‍🐰‍🧑🏿' => 'pidutsevad jänesekõrvadega inimesed: keskmiselt tume nahatoon, tume nahatoon',
+    '🧑🏿‍🐰‍🧑🏻' => 'pidutsevad jänesekõrvadega inimesed: tume nahatoon, hele nahatoon',
+    '🧑🏿‍🐰‍🧑🏼' => 'pidutsevad jänesekõrvadega inimesed: tume nahatoon, keskmiselt hele nahatoon',
+    '🧑🏿‍🐰‍🧑🏽' => 'pidutsevad jänesekõrvadega inimesed: tume nahatoon, keskmine nahatoon',
+    '🧑🏿‍🐰‍🧑🏾' => 'pidutsevad jänesekõrvadega inimesed: tume nahatoon, keskmiselt tume nahatoon',
+    '👨🏻‍🫯‍👨🏼' => 'maadlevad mehed: hele nahatoon, keskmiselt hele nahatoon',
+    '👨🏻‍🫯‍👨🏽' => 'maadlevad mehed: hele nahatoon, keskmine nahatoon',
+    '👨🏻‍🫯‍👨🏾' => 'maadlevad mehed: hele nahatoon, keskmiselt tume nahatoon',
+    '👨🏻‍🫯‍👨🏿' => 'maadlevad mehed: hele nahatoon, tume nahatoon',
+    '👨🏼‍🫯‍👨🏻' => 'maadlevad mehed: keskmiselt hele nahatoon, hele nahatoon',
+    '👨🏼‍🫯‍👨🏽' => 'maadlevad mehed: keskmiselt hele nahatoon, keskmine nahatoon',
+    '👨🏼‍🫯‍👨🏾' => 'maadlevad mehed: keskmiselt hele nahatoon, keskmiselt tume nahatoon',
+    '👨🏼‍🫯‍👨🏿' => 'maadlevad mehed: keskmiselt hele nahatoon, tume nahatoon',
+    '👨🏽‍🫯‍👨🏻' => 'maadlevad mehed: keskmine nahatoon, hele nahatoon',
+    '👨🏽‍🫯‍👨🏼' => 'maadlevad mehed: keskmine nahatoon, keskmiselt hele nahatoon',
+    '👨🏽‍🫯‍👨🏾' => 'maadlevad mehed: keskmine nahatoon, keskmiselt tume nahatoon',
+    '👨🏽‍🫯‍👨🏿' => 'maadlevad mehed: keskmine nahatoon, tume nahatoon',
+    '👨🏾‍🫯‍👨🏻' => 'maadlevad mehed: keskmiselt tume nahatoon, hele nahatoon',
+    '👨🏾‍🫯‍👨🏼' => 'maadlevad mehed: keskmiselt tume nahatoon, keskmiselt hele nahatoon',
+    '👨🏾‍🫯‍👨🏽' => 'maadlevad mehed: keskmiselt tume nahatoon, keskmine nahatoon',
+    '👨🏾‍🫯‍👨🏿' => 'maadlevad mehed: keskmiselt tume nahatoon, tume nahatoon',
+    '👨🏿‍🫯‍👨🏻' => 'maadlevad mehed: tume nahatoon, hele nahatoon',
+    '👨🏿‍🫯‍👨🏼' => 'maadlevad mehed: tume nahatoon, keskmiselt hele nahatoon',
+    '👨🏿‍🫯‍👨🏽' => 'maadlevad mehed: tume nahatoon, keskmine nahatoon',
+    '👨🏿‍🫯‍👨🏾' => 'maadlevad mehed: tume nahatoon, keskmiselt tume nahatoon',
     '👨🏻‍❤‍👨🏻' => 'paarike südamega: mees, mees, hele nahatoon',
     '👨🏻‍❤‍👨🏼' => 'paarike südamega: mees, mees, hele nahatoon, keskmiselt hele nahatoon',
     '👨🏻‍❤‍👨🏽' => 'paarike südamega: mees, mees, hele nahatoon, keskmine nahatoon',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'paarike südamega: mees, mees, tume nahatoon, keskmine nahatoon',
     '👨🏿‍❤‍👨🏾' => 'paarike südamega: mees, mees, tume nahatoon, keskmiselt tume nahatoon',
     '👨🏿‍❤‍👨🏿' => 'paarike südamega: mees, mees, tume nahatoon',
+    '👨🏻‍🐰‍👨🏼' => 'pidutsevad jänesekõrvadega mehed: hele nahatoon, keskmiselt hele nahatoon',
+    '👨🏻‍🐰‍👨🏽' => 'pidutsevad jänesekõrvadega mehed: hele nahatoon, keskmine nahatoon',
+    '👨🏻‍🐰‍👨🏾' => 'pidutsevad jänesekõrvadega mehed: hele nahatoon, keskmiselt tume nahatoon',
+    '👨🏻‍🐰‍👨🏿' => 'pidutsevad jänesekõrvadega mehed: hele nahatoon, tume nahatoon',
+    '👨🏼‍🐰‍👨🏻' => 'pidutsevad jänesekõrvadega mehed: keskmiselt hele nahatoon, hele nahatoon',
+    '👨🏼‍🐰‍👨🏽' => 'pidutsevad jänesekõrvadega mehed: keskmiselt hele nahatoon, keskmine nahatoon',
+    '👨🏼‍🐰‍👨🏾' => 'pidutsevad jänesekõrvadega mehed: keskmiselt hele nahatoon, keskmiselt tume nahatoon',
+    '👨🏼‍🐰‍👨🏿' => 'pidutsevad jänesekõrvadega mehed: keskmiselt hele nahatoon, tume nahatoon',
+    '👨🏽‍🐰‍👨🏻' => 'pidutsevad jänesekõrvadega mehed: keskmine nahatoon, hele nahatoon',
+    '👨🏽‍🐰‍👨🏼' => 'pidutsevad jänesekõrvadega mehed: keskmine nahatoon, keskmiselt hele nahatoon',
+    '👨🏽‍🐰‍👨🏾' => 'pidutsevad jänesekõrvadega mehed: keskmine nahatoon, keskmiselt tume nahatoon',
+    '👨🏽‍🐰‍👨🏿' => 'pidutsevad jänesekõrvadega mehed: keskmine nahatoon, tume nahatoon',
+    '👨🏾‍🐰‍👨🏻' => 'pidutsevad jänesekõrvadega mehed: keskmiselt tume nahatoon, hele nahatoon',
+    '👨🏾‍🐰‍👨🏼' => 'pidutsevad jänesekõrvadega mehed: keskmiselt tume nahatoon, keskmiselt hele nahatoon',
+    '👨🏾‍🐰‍👨🏽' => 'pidutsevad jänesekõrvadega mehed: keskmiselt tume nahatoon, keskmine nahatoon',
+    '👨🏾‍🐰‍👨🏿' => 'pidutsevad jänesekõrvadega mehed: keskmiselt tume nahatoon, tume nahatoon',
+    '👨🏿‍🐰‍👨🏻' => 'pidutsevad jänesekõrvadega mehed: tume nahatoon, hele nahatoon',
+    '👨🏿‍🐰‍👨🏼' => 'pidutsevad jänesekõrvadega mehed: tume nahatoon, keskmiselt hele nahatoon',
+    '👨🏿‍🐰‍👨🏽' => 'pidutsevad jänesekõrvadega mehed: tume nahatoon, keskmine nahatoon',
+    '👨🏿‍🐰‍👨🏾' => 'pidutsevad jänesekõrvadega mehed: tume nahatoon, keskmiselt tume nahatoon',
+    '👩🏻‍🫯‍👩🏼' => 'maadlevad naised: hele nahatoon, keskmiselt hele nahatoon',
+    '👩🏻‍🫯‍👩🏽' => 'maadlevad naised: hele nahatoon, keskmine nahatoon',
+    '👩🏻‍🫯‍👩🏾' => 'maadlevad naised: hele nahatoon, keskmiselt tume nahatoon',
+    '👩🏻‍🫯‍👩🏿' => 'maadlevad naised: hele nahatoon, tume nahatoon',
+    '👩🏼‍🫯‍👩🏻' => 'maadlevad naised: keskmiselt hele nahatoon, hele nahatoon',
+    '👩🏼‍🫯‍👩🏽' => 'maadlevad naised: keskmiselt hele nahatoon, keskmine nahatoon',
+    '👩🏼‍🫯‍👩🏾' => 'maadlevad naised: keskmiselt hele nahatoon, keskmiselt tume nahatoon',
+    '👩🏼‍🫯‍👩🏿' => 'maadlevad naised: keskmiselt hele nahatoon, tume nahatoon',
+    '👩🏽‍🫯‍👩🏻' => 'maadlevad naised: keskmine nahatoon, hele nahatoon',
+    '👩🏽‍🫯‍👩🏼' => 'maadlevad naised: keskmine nahatoon, keskmiselt hele nahatoon',
+    '👩🏽‍🫯‍👩🏾' => 'maadlevad naised: keskmine nahatoon, keskmiselt tume nahatoon',
+    '👩🏽‍🫯‍👩🏿' => 'maadlevad naised: keskmine nahatoon, tume nahatoon',
+    '👩🏾‍🫯‍👩🏻' => 'maadlevad naised: keskmiselt tume nahatoon, hele nahatoon',
+    '👩🏾‍🫯‍👩🏼' => 'maadlevad naised: keskmiselt tume nahatoon, keskmiselt hele nahatoon',
+    '👩🏾‍🫯‍👩🏽' => 'maadlevad naised: keskmiselt tume nahatoon, keskmine nahatoon',
+    '👩🏾‍🫯‍👩🏿' => 'maadlevad naised: keskmiselt tume nahatoon, tume nahatoon',
+    '👩🏿‍🫯‍👩🏻' => 'maadlevad naised: tume nahatoon, hele nahatoon',
+    '👩🏿‍🫯‍👩🏼' => 'maadlevad naised: tume nahatoon, keskmiselt hele nahatoon',
+    '👩🏿‍🫯‍👩🏽' => 'maadlevad naised: tume nahatoon, keskmine nahatoon',
+    '👩🏿‍🫯‍👩🏾' => 'maadlevad naised: tume nahatoon, keskmiselt tume nahatoon',
     '👩🏻‍❤‍👨🏻' => 'paarike südamega: naine, mees, hele nahatoon',
     '👩🏻‍❤‍👨🏼' => 'paarike südamega: naine, mees, hele nahatoon, keskmiselt hele nahatoon',
     '👩🏻‍❤‍👨🏽' => 'paarike südamega: naine, mees, hele nahatoon, keskmine nahatoon',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'paarike südamega: naine, naine, tume nahatoon, keskmine nahatoon',
     '👩🏿‍❤‍👩🏾' => 'paarike südamega: naine, naine, tume nahatoon, keskmiselt tume nahatoon',
     '👩🏿‍❤‍👩🏿' => 'paarike südamega: naine, naine, tume nahatoon',
+    '👩🏻‍🐰‍👩🏼' => 'pidutsevad jänesekõrvadega naised: hele nahatoon, keskmiselt hele nahatoon',
+    '👩🏻‍🐰‍👩🏽' => 'pidutsevad jänesekõrvadega naised: hele nahatoon, keskmine nahatoon',
+    '👩🏻‍🐰‍👩🏾' => 'pidutsevad jänesekõrvadega naised: hele nahatoon, keskmiselt tume nahatoon',
+    '👩🏻‍🐰‍👩🏿' => 'pidutsevad jänesekõrvadega naised: hele nahatoon, tume nahatoon',
+    '👩🏼‍🐰‍👩🏻' => 'pidutsevad jänesekõrvadega naised: keskmiselt hele nahatoon, hele nahatoon',
+    '👩🏼‍🐰‍👩🏽' => 'pidutsevad jänesekõrvadega naised: keskmiselt hele nahatoon, keskmine nahatoon',
+    '👩🏼‍🐰‍👩🏾' => 'pidutsevad jänesekõrvadega naised: keskmiselt hele nahatoon, keskmiselt tume nahatoon',
+    '👩🏼‍🐰‍👩🏿' => 'pidutsevad jänesekõrvadega naised: keskmiselt hele nahatoon, tume nahatoon',
+    '👩🏽‍🐰‍👩🏻' => 'pidutsevad jänesekõrvadega naised: keskmine nahatoon, hele nahatoon',
+    '👩🏽‍🐰‍👩🏼' => 'pidutsevad jänesekõrvadega naised: keskmine nahatoon, keskmiselt hele nahatoon',
+    '👩🏽‍🐰‍👩🏾' => 'pidutsevad jänesekõrvadega naised: keskmine nahatoon, keskmiselt tume nahatoon',
+    '👩🏽‍🐰‍👩🏿' => 'pidutsevad jänesekõrvadega naised: keskmine nahatoon, tume nahatoon',
+    '👩🏾‍🐰‍👩🏻' => 'pidutsevad jänesekõrvadega naised: keskmiselt tume nahatoon, hele nahatoon',
+    '👩🏾‍🐰‍👩🏼' => 'pidutsevad jänesekõrvadega naised: keskmiselt tume nahatoon, keskmiselt hele nahatoon',
+    '👩🏾‍🐰‍👩🏽' => 'pidutsevad jänesekõrvadega naised: keskmiselt tume nahatoon, keskmine nahatoon',
+    '👩🏾‍🐰‍👩🏿' => 'pidutsevad jänesekõrvadega naised: keskmiselt tume nahatoon, tume nahatoon',
+    '👩🏿‍🐰‍👩🏻' => 'pidutsevad jänesekõrvadega naised: tume nahatoon, hele nahatoon',
+    '👩🏿‍🐰‍👩🏼' => 'pidutsevad jänesekõrvadega naised: tume nahatoon, keskmiselt hele nahatoon',
+    '👩🏿‍🐰‍👩🏽' => 'pidutsevad jänesekõrvadega naised: tume nahatoon, keskmine nahatoon',
+    '👩🏿‍🐰‍👩🏾' => 'pidutsevad jänesekõrvadega naised: tume nahatoon, keskmiselt tume nahatoon',
     '🧑🏻‍🤝‍🧑🏻' => 'inimesed hoiavad käest kinni: hele nahatoon',
     '🧑🏻‍🤝‍🧑🏼' => 'inimesed hoiavad käest kinni: hele nahatoon, keskmiselt hele nahatoon',
     '🧑🏻‍🤝‍🧑🏽' => 'inimesed hoiavad käest kinni: hele nahatoon, keskmine nahatoon',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'lipp: Šotimaa',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'lipp: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'perekond: täiskasvanu, täiskasvanu, laps, laps',
-    '🚶🏻‍♀‍➡' => 'kõndiv naine suunaga paremale',
-    '🚶🏼‍♀‍➡' => 'kõndiv naine suunaga paremale',
-    '🚶🏽‍♀‍➡' => 'kõndiv naine suunaga paremale',
-    '🚶🏾‍♀‍➡' => 'kõndiv naine suunaga paremale',
-    '🚶🏿‍♀‍➡' => 'kõndiv naine suunaga paremale',
-    '🚶🏻‍♂‍➡' => 'kõndiv mees suunaga paremale',
-    '🚶🏼‍♂‍➡' => 'kõndiv mees suunaga paremale',
-    '🚶🏽‍♂‍➡' => 'kõndiv mees suunaga paremale',
-    '🚶🏾‍♂‍➡' => 'kõndiv mees suunaga paremale',
-    '🚶🏿‍♂‍➡' => 'kõndiv mees suunaga paremale',
-    '🧎🏻‍♀‍➡' => 'põlvitav naine suunaga paremale',
-    '🧎🏼‍♀‍➡' => 'põlvitav naine suunaga paremale',
-    '🧎🏽‍♀‍➡' => 'põlvitav naine suunaga paremale',
-    '🧎🏾‍♀‍➡' => 'põlvitav naine suunaga paremale',
-    '🧎🏿‍♀‍➡' => 'põlvitav naine suunaga paremale',
-    '🧎🏻‍♂‍➡' => 'põlvitav mees suunaga paremale',
-    '🧎🏼‍♂‍➡' => 'põlvitav mees suunaga paremale',
-    '🧎🏽‍♂‍➡' => 'põlvitav mees suunaga paremale',
-    '🧎🏾‍♂‍➡' => 'põlvitav mees suunaga paremale',
-    '🧎🏿‍♂‍➡' => 'põlvitav mees suunaga paremale',
-    '🧑🏻‍🦯‍➡' => 'valge kepiga inimene suunaga paremale',
-    '🧑🏼‍🦯‍➡' => 'valge kepiga inimene suunaga paremale',
-    '🧑🏽‍🦯‍➡' => 'valge kepiga inimene suunaga paremale',
-    '🧑🏾‍🦯‍➡' => 'valge kepiga inimene suunaga paremale',
-    '🧑🏿‍🦯‍➡' => 'valge kepiga inimene suunaga paremale',
-    '👨🏻‍🦯‍➡' => 'valge kepiga mees suunaga paremale',
-    '👨🏼‍🦯‍➡' => 'valge kepiga mees suunaga paremale',
-    '👨🏽‍🦯‍➡' => 'valge kepiga mees suunaga paremale',
-    '👨🏾‍🦯‍➡' => 'valge kepiga mees suunaga paremale',
-    '👨🏿‍🦯‍➡' => 'valge kepiga mees suunaga paremale',
-    '👩🏻‍🦯‍➡' => 'valge kepiga naine suunaga paremale',
-    '👩🏼‍🦯‍➡' => 'valge kepiga naine suunaga paremale',
-    '👩🏽‍🦯‍➡' => 'valge kepiga naine suunaga paremale',
-    '👩🏾‍🦯‍➡' => 'valge kepiga naine suunaga paremale',
-    '👩🏿‍🦯‍➡' => 'valge kepiga naine suunaga paremale',
-    '🧑🏻‍🦼‍➡' => 'elektrilises ratastoolis inimene suunaga paremale',
-    '🧑🏼‍🦼‍➡' => 'elektrilises ratastoolis inimene suunaga paremale',
-    '🧑🏽‍🦼‍➡' => 'elektrilises ratastoolis inimene suunaga paremale',
-    '🧑🏾‍🦼‍➡' => 'elektrilises ratastoolis inimene suunaga paremale',
-    '🧑🏿‍🦼‍➡' => 'elektrilises ratastoolis inimene suunaga paremale',
-    '👨🏻‍🦼‍➡' => 'elektriratastoolis olev mees suunaga paremale',
-    '👨🏼‍🦼‍➡' => 'elektriratastoolis olev mees suunaga paremale',
-    '👨🏽‍🦼‍➡' => 'elektriratastoolis olev mees suunaga paremale',
-    '👨🏾‍🦼‍➡' => 'elektriratastoolis olev mees suunaga paremale',
-    '👨🏿‍🦼‍➡' => 'elektriratastoolis olev mees suunaga paremale',
-    '👩🏻‍🦼‍➡' => 'elektriratastoolis olev naine suunaga paremale',
-    '👩🏼‍🦼‍➡' => 'elektriratastoolis olev naine suunaga paremale',
-    '👩🏽‍🦼‍➡' => 'elektriratastoolis olev naine suunaga paremale',
-    '👩🏾‍🦼‍➡' => 'elektriratastoolis olev naine suunaga paremale',
-    '👩🏿‍🦼‍➡' => 'elektriratastoolis olev naine suunaga paremale',
-    '🧑🏻‍🦽‍➡' => 'manuaalses ratastoolis inimene suunaga paremale',
-    '🧑🏼‍🦽‍➡' => 'manuaalses ratastoolis inimene suunaga paremale',
-    '🧑🏽‍🦽‍➡' => 'manuaalses ratastoolis inimene suunaga paremale',
-    '🧑🏾‍🦽‍➡' => 'manuaalses ratastoolis inimene suunaga paremale',
-    '🧑🏿‍🦽‍➡' => 'manuaalses ratastoolis inimene suunaga paremale',
-    '👨🏻‍🦽‍➡' => 'manuaalratastoolis olev mees suunaga paremale',
-    '👨🏼‍🦽‍➡' => 'manuaalratastoolis olev mees suunaga paremale',
-    '👨🏽‍🦽‍➡' => 'manuaalratastoolis olev mees suunaga paremale',
-    '👨🏾‍🦽‍➡' => 'manuaalratastoolis olev mees suunaga paremale',
-    '👨🏿‍🦽‍➡' => 'manuaalratastoolis olev mees suunaga paremale',
-    '👩🏻‍🦽‍➡' => 'manuaalratastoolis olev naine suunaga paremale',
-    '👩🏼‍🦽‍➡' => 'manuaalratastoolis olev naine suunaga paremale',
-    '👩🏽‍🦽‍➡' => 'manuaalratastoolis olev naine suunaga paremale',
-    '👩🏾‍🦽‍➡' => 'manuaalratastoolis olev naine suunaga paremale',
-    '👩🏿‍🦽‍➡' => 'manuaalratastoolis olev naine suunaga paremale',
-    '🏃🏻‍♀‍➡' => 'jooksev naine suunaga paremale',
-    '🏃🏼‍♀‍➡' => 'jooksev naine suunaga paremale',
-    '🏃🏽‍♀‍➡' => 'jooksev naine suunaga paremale',
-    '🏃🏾‍♀‍➡' => 'jooksev naine suunaga paremale',
-    '🏃🏿‍♀‍➡' => 'jooksev naine suunaga paremale',
-    '🏃🏻‍♂‍➡' => 'jooksev mees suunaga paremale',
-    '🏃🏼‍♂‍➡' => 'jooksev mees suunaga paremale',
-    '🏃🏽‍♂‍➡' => 'jooksev mees suunaga paremale',
-    '🏃🏾‍♂‍➡' => 'jooksev mees suunaga paremale',
-    '🏃🏿‍♂‍➡' => 'jooksev mees suunaga paremale',
+    '🚶🏻‍♀‍➡' => 'kõndiv naine: hele nahatoon, suunaga paremale',
+    '🚶🏼‍♀‍➡' => 'kõndiv naine: keskmiselt hele nahatoon, suunaga paremale',
+    '🚶🏽‍♀‍➡' => 'kõndiv naine: keskmine nahatoon, suunaga paremale',
+    '🚶🏾‍♀‍➡' => 'kõndiv naine: keskmiselt tume nahatoon, suunaga paremale',
+    '🚶🏿‍♀‍➡' => 'kõndiv naine: tume nahatoon, suunaga paremale',
+    '🚶🏻‍♂‍➡' => 'kõndiv mees: hele nahatoon, suunaga paremale',
+    '🚶🏼‍♂‍➡' => 'kõndiv mees: keskmiselt hele nahatoon, suunaga paremale',
+    '🚶🏽‍♂‍➡' => 'kõndiv mees: keskmine nahatoon, suunaga paremale',
+    '🚶🏾‍♂‍➡' => 'kõndiv mees: keskmiselt tume nahatoon, suunaga paremale',
+    '🚶🏿‍♂‍➡' => 'kõndiv mees: tume nahatoon, suunaga paremale',
+    '🧎🏻‍♀‍➡' => 'põlvitav naine: hele nahatoon, suunaga paremale',
+    '🧎🏼‍♀‍➡' => 'põlvitav naine: keskmiselt hele nahatoon, suunaga paremale',
+    '🧎🏽‍♀‍➡' => 'põlvitav naine: keskmine nahatoon, suunaga paremale',
+    '🧎🏾‍♀‍➡' => 'põlvitav naine: keskmiselt tume nahatoon, suunaga paremale',
+    '🧎🏿‍♀‍➡' => 'põlvitav naine: tume nahatoon, suunaga paremale',
+    '🧎🏻‍♂‍➡' => 'põlvitav mees: hele nahatoon, suunaga paremale',
+    '🧎🏼‍♂‍➡' => 'põlvitav mees: keskmiselt hele nahatoon, suunaga paremale',
+    '🧎🏽‍♂‍➡' => 'põlvitav mees: keskmine nahatoon, suunaga paremale',
+    '🧎🏾‍♂‍➡' => 'põlvitav mees: keskmiselt tume nahatoon, suunaga paremale',
+    '🧎🏿‍♂‍➡' => 'põlvitav mees: tume nahatoon, suunaga paremale',
+    '🧑🏻‍🦯‍➡' => 'valge kepiga inimene: hele nahatoon, suunaga paremale',
+    '🧑🏼‍🦯‍➡' => 'valge kepiga inimene: keskmiselt hele nahatoon, suunaga paremale',
+    '🧑🏽‍🦯‍➡' => 'valge kepiga inimene: keskmine nahatoon, suunaga paremale',
+    '🧑🏾‍🦯‍➡' => 'valge kepiga inimene: keskmiselt tume nahatoon, suunaga paremale',
+    '🧑🏿‍🦯‍➡' => 'valge kepiga inimene: tume nahatoon, suunaga paremale',
+    '👨🏻‍🦯‍➡' => 'valge kepiga mees: hele nahatoon, suunaga paremale',
+    '👨🏼‍🦯‍➡' => 'valge kepiga mees: keskmiselt hele nahatoon, suunaga paremale',
+    '👨🏽‍🦯‍➡' => 'valge kepiga mees: keskmine nahatoon, suunaga paremale',
+    '👨🏾‍🦯‍➡' => 'valge kepiga mees: keskmiselt tume nahatoon, suunaga paremale',
+    '👨🏿‍🦯‍➡' => 'valge kepiga mees: tume nahatoon, suunaga paremale',
+    '👩🏻‍🦯‍➡' => 'valge kepiga naine: hele nahatoon, suunaga paremale',
+    '👩🏼‍🦯‍➡' => 'valge kepiga naine: keskmiselt hele nahatoon, suunaga paremale',
+    '👩🏽‍🦯‍➡' => 'valge kepiga naine: keskmine nahatoon, suunaga paremale',
+    '👩🏾‍🦯‍➡' => 'valge kepiga naine: keskmiselt tume nahatoon, suunaga paremale',
+    '👩🏿‍🦯‍➡' => 'valge kepiga naine: tume nahatoon, suunaga paremale',
+    '🧑🏻‍🦼‍➡' => 'elektrilises ratastoolis inimene: hele nahatoon, suunaga paremale',
+    '🧑🏼‍🦼‍➡' => 'elektrilises ratastoolis inimene: keskmiselt hele nahatoon, suunaga paremale',
+    '🧑🏽‍🦼‍➡' => 'elektrilises ratastoolis inimene: keskmine nahatoon, suunaga paremale',
+    '🧑🏾‍🦼‍➡' => 'elektrilises ratastoolis inimene: keskmiselt tume nahatoon, suunaga paremale',
+    '🧑🏿‍🦼‍➡' => 'elektrilises ratastoolis inimene: tume nahatoon, suunaga paremale',
+    '👨🏻‍🦼‍➡' => 'elektriratastoolis olev mees: hele nahatoon, suunaga paremale',
+    '👨🏼‍🦼‍➡' => 'elektriratastoolis olev mees: keskmiselt hele nahatoon, suunaga paremale',
+    '👨🏽‍🦼‍➡' => 'elektriratastoolis olev mees: keskmine nahatoon, suunaga paremale',
+    '👨🏾‍🦼‍➡' => 'elektriratastoolis olev mees: keskmiselt tume nahatoon, suunaga paremale',
+    '👨🏿‍🦼‍➡' => 'elektriratastoolis olev mees: tume nahatoon, suunaga paremale',
+    '👩🏻‍🦼‍➡' => 'elektriratastoolis olev naine: hele nahatoon, suunaga paremale',
+    '👩🏼‍🦼‍➡' => 'elektriratastoolis olev naine: keskmiselt hele nahatoon, suunaga paremale',
+    '👩🏽‍🦼‍➡' => 'elektriratastoolis olev naine: keskmine nahatoon, suunaga paremale',
+    '👩🏾‍🦼‍➡' => 'elektriratastoolis olev naine: keskmiselt tume nahatoon, suunaga paremale',
+    '👩🏿‍🦼‍➡' => 'elektriratastoolis olev naine: tume nahatoon, suunaga paremale',
+    '🧑🏻‍🦽‍➡' => 'manuaalses ratastoolis inimene: hele nahatoon, suunaga paremale',
+    '🧑🏼‍🦽‍➡' => 'manuaalses ratastoolis inimene: keskmiselt hele nahatoon, suunaga paremale',
+    '🧑🏽‍🦽‍➡' => 'manuaalses ratastoolis inimene: keskmine nahatoon, suunaga paremale',
+    '🧑🏾‍🦽‍➡' => 'manuaalses ratastoolis inimene: keskmiselt tume nahatoon, suunaga paremale',
+    '🧑🏿‍🦽‍➡' => 'manuaalses ratastoolis inimene: tume nahatoon, suunaga paremale',
+    '👨🏻‍🦽‍➡' => 'manuaalratastoolis olev mees: hele nahatoon, suunaga paremale',
+    '👨🏼‍🦽‍➡' => 'manuaalratastoolis olev mees: keskmiselt hele nahatoon, suunaga paremale',
+    '👨🏽‍🦽‍➡' => 'manuaalratastoolis olev mees: keskmine nahatoon, suunaga paremale',
+    '👨🏾‍🦽‍➡' => 'manuaalratastoolis olev mees: keskmiselt tume nahatoon, suunaga paremale',
+    '👨🏿‍🦽‍➡' => 'manuaalratastoolis olev mees: tume nahatoon, suunaga paremale',
+    '👩🏻‍🦽‍➡' => 'manuaalratastoolis olev naine: hele nahatoon, suunaga paremale',
+    '👩🏼‍🦽‍➡' => 'manuaalratastoolis olev naine: keskmiselt hele nahatoon, suunaga paremale',
+    '👩🏽‍🦽‍➡' => 'manuaalratastoolis olev naine: keskmine nahatoon, suunaga paremale',
+    '👩🏾‍🦽‍➡' => 'manuaalratastoolis olev naine: keskmiselt tume nahatoon, suunaga paremale',
+    '👩🏿‍🦽‍➡' => 'manuaalratastoolis olev naine: tume nahatoon, suunaga paremale',
+    '🏃🏻‍♀‍➡' => 'jooksev naine: hele nahatoon, suunaga paremale',
+    '🏃🏼‍♀‍➡' => 'jooksev naine: keskmiselt hele nahatoon, suunaga paremale',
+    '🏃🏽‍♀‍➡' => 'jooksev naine: keskmine nahatoon, suunaga paremale',
+    '🏃🏾‍♀‍➡' => 'jooksev naine: keskmiselt tume nahatoon, suunaga paremale',
+    '🏃🏿‍♀‍➡' => 'jooksev naine: tume nahatoon, suunaga paremale',
+    '🏃🏻‍♂‍➡' => 'jooksev mees: hele nahatoon, suunaga paremale',
+    '🏃🏼‍♂‍➡' => 'jooksev mees: keskmiselt hele nahatoon, suunaga paremale',
+    '🏃🏽‍♂‍➡' => 'jooksev mees: keskmine nahatoon, suunaga paremale',
+    '🏃🏾‍♂‍➡' => 'jooksev mees: keskmiselt tume nahatoon, suunaga paremale',
+    '🏃🏿‍♂‍➡' => 'jooksev mees: tume nahatoon, suunaga paremale',
     '🫱🏻‍🫲🏼' => 'käepigistus: hele nahatoon, keskmiselt hele nahatoon',
     '🫱🏻‍🫲🏽' => 'käepigistus: hele nahatoon, keskmine nahatoon',
     '🫱🏻‍🫲🏾' => 'käepigistus: hele nahatoon, keskmiselt tume nahatoon',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'käepigistus: tume nahatoon, keskmiselt hele nahatoon',
     '🫱🏿‍🫲🏽' => 'käepigistus: tume nahatoon, keskmine nahatoon',
     '🫱🏿‍🫲🏾' => 'käepigistus: tume nahatoon, keskmiselt tume nahatoon',
-    '🚶‍♀‍➡' => 'kõndiv naine suunaga paremale',
-    '🚶‍♂‍➡' => 'kõndiv mees suunaga paremale',
-    '🧎‍♀‍➡' => 'põlvitav naine suunaga paremale',
-    '🧎‍♂‍➡' => 'põlvitav mees suunaga paremale',
-    '🧑‍🦯‍➡' => 'valge kepiga inimene suunaga paremale',
-    '👨‍🦯‍➡' => 'valge kepiga mees suunaga paremale',
-    '👩‍🦯‍➡' => 'valge kepiga naine suunaga paremale',
-    '🧑‍🦼‍➡' => 'elektrilises ratastoolis inimene suunaga paremale',
-    '👨‍🦼‍➡' => 'elektriratastoolis olev mees suunaga paremale',
-    '👩‍🦼‍➡' => 'elektriratastoolis olev naine suunaga paremale',
-    '🧑‍🦽‍➡' => 'manuaalses ratastoolis inimene suunaga paremale',
-    '👨‍🦽‍➡' => 'manuaalratastoolis olev mees suunaga paremale',
-    '👩‍🦽‍➡' => 'manuaalratastoolis olev naine suunaga paremale',
-    '🏃‍♀‍➡' => 'jooksev naine suunaga paremale',
-    '🏃‍♂‍➡' => 'jooksev mees suunaga paremale',
+    '🚶‍♀‍➡' => 'kõndiv naine: suunaga paremale',
+    '🚶‍♂‍➡' => 'kõndiv mees: suunaga paremale',
+    '🧎‍♀‍➡' => 'põlvitav naine: suunaga paremale',
+    '🧎‍♂‍➡' => 'põlvitav mees: suunaga paremale',
+    '🧑‍🦯‍➡' => 'valge kepiga inimene: suunaga paremale',
+    '👨‍🦯‍➡' => 'valge kepiga mees: suunaga paremale',
+    '👩‍🦯‍➡' => 'valge kepiga naine: suunaga paremale',
+    '🧑‍🦼‍➡' => 'elektrilises ratastoolis inimene: suunaga paremale',
+    '👨‍🦼‍➡' => 'elektriratastoolis olev mees: suunaga paremale',
+    '👩‍🦼‍➡' => 'elektriratastoolis olev naine: suunaga paremale',
+    '🧑‍🦽‍➡' => 'manuaalses ratastoolis inimene: suunaga paremale',
+    '👨‍🦽‍➡' => 'manuaalratastoolis olev mees: suunaga paremale',
+    '👩‍🦽‍➡' => 'manuaalratastoolis olev naine: suunaga paremale',
+    '🏃‍♀‍➡' => 'jooksev naine: suunaga paremale',
+    '🏃‍♂‍➡' => 'jooksev mees: suunaga paremale',
     '👩‍❤‍👨' => 'paarike südamega: naine, mees',
     '👨‍❤‍👨' => 'paarike südamega: mees, mees',
     '👩‍❤‍👩' => 'paarike südamega: naine, naine',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'täiskasvanu: keskmine nahatoon, kiilaspea',
     '🧑🏾‍🦲' => 'täiskasvanu: keskmiselt tume nahatoon, kiilaspea',
     '🧑🏿‍🦲' => 'täiskasvanu: tume nahatoon, kiilaspea',
+    '🧑🏻‍🩰' => 'balletitantsija: hele nahatoon',
+    '🧑🏼‍🩰' => 'balletitantsija: keskmiselt hele nahatoon',
+    '🧑🏽‍🩰' => 'balletitantsija: keskmine nahatoon',
+    '🧑🏾‍🩰' => 'balletitantsija: keskmiselt tume nahatoon',
+    '🧑🏿‍🩰' => 'balletitantsija: tume nahatoon',
     '🧔🏻‍♂' => 'habemega mees: hele nahatoon',
     '🧔🏼‍♂' => 'habemega mees: keskmiselt hele nahatoon',
     '🧔🏽‍♂' => 'habemega mees: keskmine nahatoon',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'kõndiv naine: keskmine nahatoon',
     '🚶🏾‍♀' => 'kõndiv naine: keskmiselt tume nahatoon',
     '🚶🏿‍♀' => 'kõndiv naine: tume nahatoon',
-    '🚶🏻‍➡' => 'jalakäija suunaga paremale',
-    '🚶🏼‍➡' => 'jalakäija suunaga paremale',
-    '🚶🏽‍➡' => 'jalakäija suunaga paremale',
-    '🚶🏾‍➡' => 'jalakäija suunaga paremale',
-    '🚶🏿‍➡' => 'jalakäija suunaga paremale',
+    '🚶🏻‍➡' => 'jalakäija: hele nahatoon, suunaga paremale',
+    '🚶🏼‍➡' => 'jalakäija: keskmiselt hele nahatoon, suunaga paremale',
+    '🚶🏽‍➡' => 'jalakäija: keskmine nahatoon, suunaga paremale',
+    '🚶🏾‍➡' => 'jalakäija: keskmiselt tume nahatoon, suunaga paremale',
+    '🚶🏿‍➡' => 'jalakäija: tume nahatoon, suunaga paremale',
     '🧍🏻‍♂' => 'seisev mees: hele nahatoon',
     '🧍🏼‍♂' => 'seisev mees: keskmiselt hele nahatoon',
     '🧍🏽‍♂' => 'seisev mees: keskmine nahatoon',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'põlvitav naine: keskmine nahatoon',
     '🧎🏾‍♀' => 'põlvitav naine: keskmiselt tume nahatoon',
     '🧎🏿‍♀' => 'põlvitav naine: tume nahatoon',
-    '🧎🏻‍➡' => 'põlvitav inimene suunaga paremale',
-    '🧎🏼‍➡' => 'põlvitav inimene suunaga paremale',
-    '🧎🏽‍➡' => 'põlvitav inimene suunaga paremale',
-    '🧎🏾‍➡' => 'põlvitav inimene suunaga paremale',
-    '🧎🏿‍➡' => 'põlvitav inimene suunaga paremale',
+    '🧎🏻‍➡' => 'põlvitav inimene: hele nahatoon, suunaga paremale',
+    '🧎🏼‍➡' => 'põlvitav inimene: keskmiselt hele nahatoon, suunaga paremale',
+    '🧎🏽‍➡' => 'põlvitav inimene: keskmine nahatoon, suunaga paremale',
+    '🧎🏾‍➡' => 'põlvitav inimene: keskmiselt tume nahatoon, suunaga paremale',
+    '🧎🏿‍➡' => 'põlvitav inimene: tume nahatoon, suunaga paremale',
     '🧑🏻‍🦯' => 'valge kepiga inimene: hele nahatoon',
     '🧑🏼‍🦯' => 'valge kepiga inimene: keskmiselt hele nahatoon',
     '🧑🏽‍🦯' => 'valge kepiga inimene: keskmine nahatoon',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'jooksev naine: keskmine nahatoon',
     '🏃🏾‍♀' => 'jooksev naine: keskmiselt tume nahatoon',
     '🏃🏿‍♀' => 'jooksev naine: tume nahatoon',
-    '🏃🏻‍➡' => 'jooksja suunaga paremale',
-    '🏃🏼‍➡' => 'jooksja suunaga paremale',
-    '🏃🏽‍➡' => 'jooksja suunaga paremale',
-    '🏃🏾‍➡' => 'jooksja suunaga paremale',
-    '🏃🏿‍➡' => 'jooksja suunaga paremale',
+    '🏃🏻‍➡' => 'jooksja: hele nahatoon, suunaga paremale',
+    '🏃🏼‍➡' => 'jooksja: keskmiselt hele nahatoon, suunaga paremale',
+    '🏃🏽‍➡' => 'jooksja: keskmine nahatoon, suunaga paremale',
+    '🏃🏾‍➡' => 'jooksja: keskmiselt tume nahatoon, suunaga paremale',
+    '🏃🏿‍➡' => 'jooksja: tume nahatoon, suunaga paremale',
+    '👯🏻‍♀' => 'pidutsevad jänesekõrvadega naised: hele nahatoon',
+    '👯🏼‍♀' => 'pidutsevad jänesekõrvadega naised: keskmiselt hele nahatoon',
+    '👯🏽‍♀' => 'pidutsevad jänesekõrvadega naised: keskmine nahatoon',
+    '👯🏾‍♀' => 'pidutsevad jänesekõrvadega naised: keskmiselt tume nahatoon',
+    '👯🏿‍♀' => 'pidutsevad jänesekõrvadega naised: tume nahatoon',
+    '👯🏻‍♂' => 'pidutsevad jänesekõrvadega mehed: hele nahatoon',
+    '👯🏼‍♂' => 'pidutsevad jänesekõrvadega mehed: keskmiselt hele nahatoon',
+    '👯🏽‍♂' => 'pidutsevad jänesekõrvadega mehed: keskmine nahatoon',
+    '👯🏾‍♂' => 'pidutsevad jänesekõrvadega mehed: keskmiselt tume nahatoon',
+    '👯🏿‍♂' => 'pidutsevad jänesekõrvadega mehed: tume nahatoon',
     '🧖🏻‍♂' => 'leiliruumis olev mees: hele nahatoon',
     '🧖🏼‍♂' => 'leiliruumis olev mees: keskmiselt hele nahatoon',
     '🧖🏽‍♂' => 'leiliruumis olev mees: keskmine nahatoon',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'hundiratast viskav naine: keskmine nahatoon',
     '🤸🏾‍♀' => 'hundiratast viskav naine: keskmiselt tume nahatoon',
     '🤸🏿‍♀' => 'hundiratast viskav naine: tume nahatoon',
+    '🤼🏻‍♀' => 'maadlevad naised: hele nahatoon',
+    '🤼🏼‍♀' => 'maadlevad naised: keskmiselt hele nahatoon',
+    '🤼🏽‍♀' => 'maadlevad naised: keskmine nahatoon',
+    '🤼🏾‍♀' => 'maadlevad naised: keskmiselt tume nahatoon',
+    '🤼🏿‍♀' => 'maadlevad naised: tume nahatoon',
+    '🤼🏻‍♂' => 'maadlevad mehed: hele nahatoon',
+    '🤼🏼‍♂' => 'maadlevad mehed: keskmiselt hele nahatoon',
+    '🤼🏽‍♂' => 'maadlevad mehed: keskmine nahatoon',
+    '🤼🏾‍♂' => 'maadlevad mehed: keskmiselt tume nahatoon',
+    '🤼🏿‍♂' => 'maadlevad mehed: tume nahatoon',
     '🤽🏻‍♂' => 'veepalli mängiv mees: hele nahatoon',
     '🤽🏼‍♂' => 'veepalli mängiv mees: keskmiselt hele nahatoon',
     '🤽🏽‍♂' => 'veepalli mängiv mees: keskmine nahatoon',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'naine: lokkis juuksed',
     '👩‍🦳' => 'naine: heledad juuksed',
     '👩‍🦲' => 'naine: kiilaspea',
-    '🚶‍➡' => 'jalakäija suunaga paremale',
-    '🧎‍➡' => 'põlvitav inimene suunaga paremale',
-    '🏃‍➡' => 'jooksja suunaga paremale',
+    '🚶‍➡' => 'jalakäija: suunaga paremale',
+    '🧎‍➡' => 'põlvitav inimene: suunaga paremale',
+    '🏃‍➡' => 'jooksja: suunaga paremale',
     '👨‍👦' => 'perekond: mees, poiss',
     '👨‍👧' => 'perekond: mees, tüdruk',
     '👩‍👦' => 'perekond: naine, poiss',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'manuaalratastoolis olev naine',
     '🏃‍♂' => 'jooksev mees',
     '🏃‍♀' => 'jooksev naine',
+    '🧑‍🩰' => 'balletitantsija',
     '👯‍♂' => 'pidutsevad jänesekõrvadega mehed',
     '👯‍♀' => 'pidutsevad jänesekõrvadega naised',
     '🧖‍♂' => 'leiliruumis olev mees',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'hõljuv ülikonnaga mees: keskmine nahatoon',
     '🕴🏾' => 'hõljuv ülikonnaga mees: keskmiselt tume nahatoon',
     '🕴🏿' => 'hõljuv ülikonnaga mees: tume nahatoon',
+    '👯🏻' => 'pidutsevad jänesekõrvadega inimesed: hele nahatoon',
+    '👯🏼' => 'pidutsevad jänesekõrvadega inimesed: keskmiselt hele nahatoon',
+    '👯🏽' => 'pidutsevad jänesekõrvadega inimesed: keskmine nahatoon',
+    '👯🏾' => 'pidutsevad jänesekõrvadega inimesed: keskmiselt tume nahatoon',
+    '👯🏿' => 'pidutsevad jänesekõrvadega inimesed: tume nahatoon',
     '🧖🏻' => 'inimene leiliruumis: hele nahatoon',
     '🧖🏼' => 'inimene leiliruumis: keskmiselt hele nahatoon',
     '🧖🏽' => 'inimene leiliruumis: keskmine nahatoon',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'hundiratast viskav inimene: keskmine nahatoon',
     '🤸🏾' => 'hundiratast viskav inimene: keskmiselt tume nahatoon',
     '🤸🏿' => 'hundiratast viskav inimene: tume nahatoon',
+    '🤼🏻' => 'maadlejad: hele nahatoon',
+    '🤼🏼' => 'maadlejad: keskmiselt hele nahatoon',
+    '🤼🏽' => 'maadlejad: keskmine nahatoon',
+    '🤼🏾' => 'maadlejad: keskmiselt tume nahatoon',
+    '🤼🏿' => 'maadlejad: tume nahatoon',
     '🤽🏻' => 'veepalli mängiv inimene: hele nahatoon',
     '🤽🏼' => 'veepalli mängiv inimene: keskmiselt hele nahatoon',
     '🤽🏽' => 'veepalli mängiv inimene: keskmine nahatoon',
@@ -2391,13 +2547,6 @@
     '🏽' => 'keskmine nahatoon',
     '🏾' => 'keskmiselt tume nahatoon',
     '🏿' => 'tume nahatoon',
-    '🪉' => 'harf',
-    '🪏' => 'labidas',
-    '🪾' => 'raagus puu',
-    '🫆' => 'sõrmejälg',
-    '🫜' => 'juurvili',
-    '🫟' => 'plärakas',
-    '🫩' => 'nägu kottidega silmade all',
     '😀' => 'laia naeratusega nägu',
     '😃' => 'suurte silmadega naerunägu',
     '😄' => 'avatud suu ja naeratavate silmadega naerunägu',
@@ -2451,6 +2600,7 @@
     '😪' => 'unine nägu',
     '🤤' => 'ilastav nägu',
     '😴' => 'magav nägu',
+    '🫩' => 'nägu kottidega silmade all',
     '😷' => 'kirurgimaskiga kaetud nägu',
     '🤒' => 'kraadiklaasiga nägu',
     '🤕' => 'kinniseotud peaga nägu',
@@ -2477,6 +2627,7 @@
     '😯' => 'vaigistatud nägu',
     '😲' => 'hämmastunud nägu',
     '😳' => 'punastav nägu',
+    '🫪' => 'moondunud nägu',
     '🥺' => 'anuv nägu',
     '🥹' => 'pisaraid tagasi hoidev nägu',
     '😦' => 'avatud suuga mossitav nägu',
@@ -2548,6 +2699,7 @@
     '💋' => 'suudluse jälg',
     '💯' => 'sada punkti',
     '💢' => 'viha sümbol',
+    '🫯' => 'kakluspilv',
     '💥' => 'piraki',
     '💫' => 'peadpööritav',
     '💦' => 'higipiisad',
@@ -2671,6 +2823,7 @@
     '🧞' => 'džinn',
     '🧟' => 'zombi',
     '🧌' => 'troll',
+    '🫈' => 'karvane olend',
     '💆' => 'näomassaaž',
     '💇' => 'juukselõikus',
     '🚶' => 'jalakäija',
@@ -2714,6 +2867,7 @@
     '🫂' => 'kallistavad inimesed',
     '👪' => 'perekond',
     '👣' => 'jalajäljed',
+    '🫆' => 'sõrmejälg',
     '🦰' => 'punased juuksed',
     '🦱' => 'lokkis juuksed',
     '🦳' => 'heledad juuksed',
@@ -2813,6 +2967,7 @@
     '🐳' => 'vett pritsiv vaal',
     '🐋' => 'vaal',
     '🐬' => 'delfiin',
+    '🫍' => 'mõõkvaal',
     '🦭' => 'hüljes',
     '🐟' => 'kala',
     '🐠' => 'troopiline kala',
@@ -2822,6 +2977,11 @@
     '🐚' => 'spiraalne teokarp',
     '🪸' => 'korall',
     '🪼' => 'meduus',
+    '🦀' => 'krabi',
+    '🦞' => 'homaar',
+    '🦐' => 'krevett',
+    '🦑' => 'kalmaar',
+    '🦪' => 'auster',
     '🐌' => 'tigu',
     '🦋' => 'liblikas',
     '🐛' => 'röövik',
@@ -2866,6 +3026,7 @@
     '🪹' => 'tühi pesa',
     '🪺' => 'munadega pesa',
     '🍄' => 'seen',
+    '🪾' => 'raagus puu',
     '🍇' => 'viinamarjad',
     '🍈' => 'melon',
     '🍉' => 'arbuus',
@@ -2902,6 +3063,7 @@
     '🌰' => 'kastan',
     '🫚' => 'ingver',
     '🫛' => 'hernekaun',
+    '🫜' => 'juurvili',
     '🍞' => 'leib',
     '🥐' => 'sarvesai',
     '🥖' => 'baguette',
@@ -2953,11 +3115,6 @@
     '🥟' => 'pelmeen',
     '🥠' => 'õnneküpsis',
     '🥡' => 'kaasamüügikarp',
-    '🦀' => 'krabi',
-    '🦞' => 'homaar',
-    '🦐' => 'krevett',
-    '🦑' => 'kalmaar',
-    '🦪' => 'auster',
     '🍦' => 'pehme jäätis',
     '🍧' => 'mahlajää',
     '🍨' => 'jäätis',
@@ -3008,6 +3165,7 @@
     '🧭' => 'kompass',
     '🏔' => 'lumine mägi',
     '⛰' => 'mägi',
+    '🛘' => 'maalihe',
     '🌋' => 'vulkaan',
     '🗻' => 'Fuji mägi',
     '🏕' => 'telkimine',
@@ -3368,16 +3526,18 @@
     '🎧' => 'kõrvaklapid',
     '📻' => 'raadio',
     '🎷' => 'saksofon',
+    '🎺' => 'trompet',
+    '🪊' => 'tromboon',
     '🪗' => 'akordion',
     '🎸' => 'kitarr',
     '🎹' => 'klahvpill',
-    '🎺' => 'trompet',
     '🎻' => 'viiul',
     '🪕' => 'bandžo',
     '🥁' => 'trumm',
     '🪘' => 'aafrika trumm',
     '🪇' => 'marakas',
     '🪈' => 'flööt',
+    '🪉' => 'harf',
     '📱' => 'mobiiltelefon',
     '📲' => 'noolega mobiiltelefon',
     '☎' => 'telefon',
@@ -3431,8 +3591,9 @@
     '📑' => 'järjehoidjad',
     '🔖' => 'järjehoidja',
     '🏷' => 'silt',
-    '💰' => 'rahapaun',
     '🪙' => 'münt',
+    '💰' => 'rahapaun',
+    '🪎' => 'aardelaegas',
     '💴' => 'jeeni rahatäht',
     '💵' => 'dollari rahatäht',
     '💶' => 'euro rahatäht',
@@ -3515,6 +3676,7 @@
     '🧰' => 'tööriistakast',
     '🧲' => 'magnet',
     '🪜' => 'redel',
+    '🪏' => 'labidas',
     '⚗' => 'destilleerimisnõu',
     '🧪' => 'katseklaas',
     '🧫' => 'Petri tass',
@@ -3698,6 +3860,7 @@
     '✴' => 'kaheksa tipuga täht',
     '❇' => 'sädelus',
     '™' => 'kaubamärk',
+    '🫟' => 'plärakas',
     '🔠' => 'ladina suurtähed',
     '🔡' => 'ladina väiketähed',
     '🔢' => 'numbrid',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-eu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-eu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-eu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-eu.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'musu: emakumea, emakumea, 6. mota eta bitarteko azal-tonua',
     '👩🏿‍❤‍💋‍👩🏾' => 'musu: emakumea, emakumea, 6. mota eta 5. mota',
     '👩🏿‍❤‍💋‍👩🏿' => 'musu: emakumea, emakumea eta 6. mota',
+    '🧑🏻‍🫯‍🧑🏼' => 'borrokalariak: 1–2. mota eta 3. mota',
+    '🧑🏻‍🫯‍🧑🏽' => 'borrokalariak: 1–2. mota eta bitarteko azal-tonua',
+    '🧑🏻‍🫯‍🧑🏾' => 'borrokalariak: 1–2. mota eta 5. mota',
+    '🧑🏻‍🫯‍🧑🏿' => 'borrokalariak: 1–2. mota eta 6. mota',
+    '🧑🏼‍🫯‍🧑🏻' => 'borrokalariak: 3. mota eta 1–2. mota',
+    '🧑🏼‍🫯‍🧑🏽' => 'borrokalariak: 3. mota eta bitarteko azal-tonua',
+    '🧑🏼‍🫯‍🧑🏾' => 'borrokalariak: 3. mota eta 5. mota',
+    '🧑🏼‍🫯‍🧑🏿' => 'borrokalariak: 3. mota eta 6. mota',
+    '🧑🏽‍🫯‍🧑🏻' => 'borrokalariak: bitarteko azal-tonua eta 1–2. mota',
+    '🧑🏽‍🫯‍🧑🏼' => 'borrokalariak: bitarteko azal-tonua eta 3. mota',
+    '🧑🏽‍🫯‍🧑🏾' => 'borrokalariak: bitarteko azal-tonua eta 5. mota',
+    '🧑🏽‍🫯‍🧑🏿' => 'borrokalariak: bitarteko azal-tonua eta 6. mota',
+    '🧑🏾‍🫯‍🧑🏻' => 'borrokalariak: 5. mota eta 1–2. mota',
+    '🧑🏾‍🫯‍🧑🏼' => 'borrokalariak: 5. mota eta 3. mota',
+    '🧑🏾‍🫯‍🧑🏽' => 'borrokalariak: 5. mota eta bitarteko azal-tonua',
+    '🧑🏾‍🫯‍🧑🏿' => 'borrokalariak: 5. mota eta 6. mota',
+    '🧑🏿‍🫯‍🧑🏻' => 'borrokalariak: 6. mota eta 1–2. mota',
+    '🧑🏿‍🫯‍🧑🏼' => 'borrokalariak: 6. mota eta 3. mota',
+    '🧑🏿‍🫯‍🧑🏽' => 'borrokalariak: 6. mota eta bitarteko azal-tonua',
+    '🧑🏿‍🫯‍🧑🏾' => 'borrokalariak: 6. mota eta 5. mota',
     '🧑🏻‍❤‍🧑🏼' => 'bihotza erdian duen bikotea: pertsona, pertsona, 1–2. mota eta 3. mota',
     '🧑🏻‍❤‍🧑🏽' => 'bihotza erdian duen bikotea: pertsona, pertsona, 1–2. mota eta bitarteko azal-tonua',
     '🧑🏻‍❤‍🧑🏾' => 'bihotza erdian duen bikotea: pertsona, pertsona, 1–2. mota eta 5. mota',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'bihotza erdian duen bikotea: pertsona, pertsona, 6. mota eta 3. mota',
     '🧑🏿‍❤‍🧑🏽' => 'bihotza erdian duen bikotea: pertsona, pertsona, 6. mota eta bitarteko azal-tonua',
     '🧑🏿‍❤‍🧑🏾' => 'bihotza erdian duen bikotea: pertsona, pertsona, 6. mota eta 5. mota',
+    '🧑🏻‍🐰‍🧑🏼' => 'jendea untxi-belarriak jantzita: 1–2. mota eta 3. mota',
+    '🧑🏻‍🐰‍🧑🏽' => 'jendea untxi-belarriak jantzita: 1–2. mota eta bitarteko azal-tonua',
+    '🧑🏻‍🐰‍🧑🏾' => 'jendea untxi-belarriak jantzita: 1–2. mota eta 5. mota',
+    '🧑🏻‍🐰‍🧑🏿' => 'jendea untxi-belarriak jantzita: 1–2. mota eta 6. mota',
+    '🧑🏼‍🐰‍🧑🏻' => 'jendea untxi-belarriak jantzita: 3. mota eta 1–2. mota',
+    '🧑🏼‍🐰‍🧑🏽' => 'jendea untxi-belarriak jantzita: 3. mota eta bitarteko azal-tonua',
+    '🧑🏼‍🐰‍🧑🏾' => 'jendea untxi-belarriak jantzita: 3. mota eta 5. mota',
+    '🧑🏼‍🐰‍🧑🏿' => 'jendea untxi-belarriak jantzita: 3. mota eta 6. mota',
+    '🧑🏽‍🐰‍🧑🏻' => 'jendea untxi-belarriak jantzita: bitarteko azal-tonua eta 1–2. mota',
+    '🧑🏽‍🐰‍🧑🏼' => 'jendea untxi-belarriak jantzita: bitarteko azal-tonua eta 3. mota',
+    '🧑🏽‍🐰‍🧑🏾' => 'jendea untxi-belarriak jantzita: bitarteko azal-tonua eta 5. mota',
+    '🧑🏽‍🐰‍🧑🏿' => 'jendea untxi-belarriak jantzita: bitarteko azal-tonua eta 6. mota',
+    '🧑🏾‍🐰‍🧑🏻' => 'jendea untxi-belarriak jantzita: 5. mota eta 1–2. mota',
+    '🧑🏾‍🐰‍🧑🏼' => 'jendea untxi-belarriak jantzita: 5. mota eta 3. mota',
+    '🧑🏾‍🐰‍🧑🏽' => 'jendea untxi-belarriak jantzita: 5. mota eta bitarteko azal-tonua',
+    '🧑🏾‍🐰‍🧑🏿' => 'jendea untxi-belarriak jantzita: 5. mota eta 6. mota',
+    '🧑🏿‍🐰‍🧑🏻' => 'jendea untxi-belarriak jantzita: 6. mota eta 1–2. mota',
+    '🧑🏿‍🐰‍🧑🏼' => 'jendea untxi-belarriak jantzita: 6. mota eta 3. mota',
+    '🧑🏿‍🐰‍🧑🏽' => 'jendea untxi-belarriak jantzita: 6. mota eta bitarteko azal-tonua',
+    '🧑🏿‍🐰‍🧑🏾' => 'jendea untxi-belarriak jantzita: 6. mota eta 5. mota',
+    '👨🏻‍🫯‍👨🏼' => 'gizonak borrokan: 1–2. mota eta 3. mota',
+    '👨🏻‍🫯‍👨🏽' => 'gizonak borrokan: 1–2. mota eta bitarteko azal-tonua',
+    '👨🏻‍🫯‍👨🏾' => 'gizonak borrokan: 1–2. mota eta 5. mota',
+    '👨🏻‍🫯‍👨🏿' => 'gizonak borrokan: 1–2. mota eta 6. mota',
+    '👨🏼‍🫯‍👨🏻' => 'gizonak borrokan: 3. mota eta 1–2. mota',
+    '👨🏼‍🫯‍👨🏽' => 'gizonak borrokan: 3. mota eta bitarteko azal-tonua',
+    '👨🏼‍🫯‍👨🏾' => 'gizonak borrokan: 3. mota eta 5. mota',
+    '👨🏼‍🫯‍👨🏿' => 'gizonak borrokan: 3. mota eta 6. mota',
+    '👨🏽‍🫯‍👨🏻' => 'gizonak borrokan: bitarteko azal-tonua eta 1–2. mota',
+    '👨🏽‍🫯‍👨🏼' => 'gizonak borrokan: bitarteko azal-tonua eta 3. mota',
+    '👨🏽‍🫯‍👨🏾' => 'gizonak borrokan: bitarteko azal-tonua eta 5. mota',
+    '👨🏽‍🫯‍👨🏿' => 'gizonak borrokan: bitarteko azal-tonua eta 6. mota',
+    '👨🏾‍🫯‍👨🏻' => 'gizonak borrokan: 5. mota eta 1–2. mota',
+    '👨🏾‍🫯‍👨🏼' => 'gizonak borrokan: 5. mota eta 3. mota',
+    '👨🏾‍🫯‍👨🏽' => 'gizonak borrokan: 5. mota eta bitarteko azal-tonua',
+    '👨🏾‍🫯‍👨🏿' => 'gizonak borrokan: 5. mota eta 6. mota',
+    '👨🏿‍🫯‍👨🏻' => 'gizonak borrokan: 6. mota eta 1–2. mota',
+    '👨🏿‍🫯‍👨🏼' => 'gizonak borrokan: 6. mota eta 3. mota',
+    '👨🏿‍🫯‍👨🏽' => 'gizonak borrokan: 6. mota eta bitarteko azal-tonua',
+    '👨🏿‍🫯‍👨🏾' => 'gizonak borrokan: 6. mota eta 5. mota',
     '👨🏻‍❤‍👨🏻' => 'bihotza erdian duen bikotea: gizona, gizona eta 1–2. mota',
     '👨🏻‍❤‍👨🏼' => 'bihotza erdian duen bikotea: gizona, gizona, 1–2. mota eta 3. mota',
     '👨🏻‍❤‍👨🏽' => 'bihotza erdian duen bikotea: gizona, gizona, 1–2. mota eta bitarteko azal-tonua',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'bihotza erdian duen bikotea: gizona, gizona, 6. mota eta bitarteko azal-tonua',
     '👨🏿‍❤‍👨🏾' => 'bihotza erdian duen bikotea: gizona, gizona, 6. mota eta 5. mota',
     '👨🏿‍❤‍👨🏿' => 'bihotza erdian duen bikotea: gizona, gizona eta 6. mota',
+    '👨🏻‍🐰‍👨🏼' => 'gizonak untxi-belarriak jantzita: 1–2. mota eta 3. mota',
+    '👨🏻‍🐰‍👨🏽' => 'gizonak untxi-belarriak jantzita: 1–2. mota eta bitarteko azal-tonua',
+    '👨🏻‍🐰‍👨🏾' => 'gizonak untxi-belarriak jantzita: 1–2. mota eta 5. mota',
+    '👨🏻‍🐰‍👨🏿' => 'gizonak untxi-belarriak jantzita: 1–2. mota eta 6. mota',
+    '👨🏼‍🐰‍👨🏻' => 'gizonak untxi-belarriak jantzita: 3. mota eta 1–2. mota',
+    '👨🏼‍🐰‍👨🏽' => 'gizonak untxi-belarriak jantzita: 3. mota eta bitarteko azal-tonua',
+    '👨🏼‍🐰‍👨🏾' => 'gizonak untxi-belarriak jantzita: 3. mota eta 5. mota',
+    '👨🏼‍🐰‍👨🏿' => 'gizonak untxi-belarriak jantzita: 3. mota eta 6. mota',
+    '👨🏽‍🐰‍👨🏻' => 'gizonak untxi-belarriak jantzita: bitarteko azal-tonua eta 1–2. mota',
+    '👨🏽‍🐰‍👨🏼' => 'gizonak untxi-belarriak jantzita: bitarteko azal-tonua eta 3. mota',
+    '👨🏽‍🐰‍👨🏾' => 'gizonak untxi-belarriak jantzita: bitarteko azal-tonua eta 5. mota',
+    '👨🏽‍🐰‍👨🏿' => 'gizonak untxi-belarriak jantzita: bitarteko azal-tonua eta 6. mota',
+    '👨🏾‍🐰‍👨🏻' => 'gizonak untxi-belarriak jantzita: 5. mota eta 1–2. mota',
+    '👨🏾‍🐰‍👨🏼' => 'gizonak untxi-belarriak jantzita: 5. mota eta 3. mota',
+    '👨🏾‍🐰‍👨🏽' => 'gizonak untxi-belarriak jantzita: 5. mota eta bitarteko azal-tonua',
+    '👨🏾‍🐰‍👨🏿' => 'gizonak untxi-belarriak jantzita: 5. mota eta 6. mota',
+    '👨🏿‍🐰‍👨🏻' => 'gizonak untxi-belarriak jantzita: 6. mota eta 1–2. mota',
+    '👨🏿‍🐰‍👨🏼' => 'gizonak untxi-belarriak jantzita: 6. mota eta 3. mota',
+    '👨🏿‍🐰‍👨🏽' => 'gizonak untxi-belarriak jantzita: 6. mota eta bitarteko azal-tonua',
+    '👨🏿‍🐰‍👨🏾' => 'gizonak untxi-belarriak jantzita: 6. mota eta 5. mota',
+    '👩🏻‍🫯‍👩🏼' => 'emakumeak borrokan: 1–2. mota eta 3. mota',
+    '👩🏻‍🫯‍👩🏽' => 'emakumeak borrokan: 1–2. mota eta bitarteko azal-tonua',
+    '👩🏻‍🫯‍👩🏾' => 'emakumeak borrokan: 1–2. mota eta 5. mota',
+    '👩🏻‍🫯‍👩🏿' => 'emakumeak borrokan: 1–2. mota eta 6. mota',
+    '👩🏼‍🫯‍👩🏻' => 'emakumeak borrokan: 3. mota eta 1–2. mota',
+    '👩🏼‍🫯‍👩🏽' => 'emakumeak borrokan: 3. mota eta bitarteko azal-tonua',
+    '👩🏼‍🫯‍👩🏾' => 'emakumeak borrokan: 3. mota eta 5. mota',
+    '👩🏼‍🫯‍👩🏿' => 'emakumeak borrokan: 3. mota eta 6. mota',
+    '👩🏽‍🫯‍👩🏻' => 'emakumeak borrokan: bitarteko azal-tonua eta 1–2. mota',
+    '👩🏽‍🫯‍👩🏼' => 'emakumeak borrokan: bitarteko azal-tonua eta 3. mota',
+    '👩🏽‍🫯‍👩🏾' => 'emakumeak borrokan: bitarteko azal-tonua eta 5. mota',
+    '👩🏽‍🫯‍👩🏿' => 'emakumeak borrokan: bitarteko azal-tonua eta 6. mota',
+    '👩🏾‍🫯‍👩🏻' => 'emakumeak borrokan: 5. mota eta 1–2. mota',
+    '👩🏾‍🫯‍👩🏼' => 'emakumeak borrokan: 5. mota eta 3. mota',
+    '👩🏾‍🫯‍👩🏽' => 'emakumeak borrokan: 5. mota eta bitarteko azal-tonua',
+    '👩🏾‍🫯‍👩🏿' => 'emakumeak borrokan: 5. mota eta 6. mota',
+    '👩🏿‍🫯‍👩🏻' => 'emakumeak borrokan: 6. mota eta 1–2. mota',
+    '👩🏿‍🫯‍👩🏼' => 'emakumeak borrokan: 6. mota eta 3. mota',
+    '👩🏿‍🫯‍👩🏽' => 'emakumeak borrokan: 6. mota eta bitarteko azal-tonua',
+    '👩🏿‍🫯‍👩🏾' => 'emakumeak borrokan: 6. mota eta 5. mota',
     '👩🏻‍❤‍👨🏻' => 'bihotza erdian duen bikotea: emakumea, gizona eta 1–2. mota',
     '👩🏻‍❤‍👨🏼' => 'bihotza erdian duen bikotea: emakumea, gizona, 1–2. mota eta 3. mota',
     '👩🏻‍❤‍👨🏽' => 'bihotza erdian duen bikotea: emakumea, gizona, 1–2. mota eta bitarteko azal-tonua',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'bihotza erdian duen bikotea: emakumea, emakumea, 6. mota eta bitarteko azal-tonua',
     '👩🏿‍❤‍👩🏾' => 'bihotza erdian duen bikotea: emakumea, emakumea, 6. mota eta 5. mota',
     '👩🏿‍❤‍👩🏿' => 'bihotza erdian duen bikotea: emakumea, emakumea eta 6. mota',
+    '👩🏻‍🐰‍👩🏼' => 'emakumeak jendea untxi-belarriak jantzita: 1–2. mota eta 3. mota',
+    '👩🏻‍🐰‍👩🏽' => 'emakumeak jendea untxi-belarriak jantzita: 1–2. mota eta bitarteko azal-tonua',
+    '👩🏻‍🐰‍👩🏾' => 'emakumeak jendea untxi-belarriak jantzita: 1–2. mota eta 5. mota',
+    '👩🏻‍🐰‍👩🏿' => 'emakumeak jendea untxi-belarriak jantzita: 1–2. mota eta 6. mota',
+    '👩🏼‍🐰‍👩🏻' => 'emakumeak jendea untxi-belarriak jantzita: 3. mota eta 1–2. mota',
+    '👩🏼‍🐰‍👩🏽' => 'emakumeak jendea untxi-belarriak jantzita: 3. mota eta bitarteko azal-tonua',
+    '👩🏼‍🐰‍👩🏾' => 'emakumeak jendea untxi-belarriak jantzita: 3. mota eta 5. mota',
+    '👩🏼‍🐰‍👩🏿' => 'emakumeak jendea untxi-belarriak jantzita: 3. mota eta 6. mota',
+    '👩🏽‍🐰‍👩🏻' => 'emakumeak jendea untxi-belarriak jantzita: bitarteko azal-tonua eta 1–2. mota',
+    '👩🏽‍🐰‍👩🏼' => 'emakumeak jendea untxi-belarriak jantzita: bitarteko azal-tonua eta 3. mota',
+    '👩🏽‍🐰‍👩🏾' => 'emakumeak jendea untxi-belarriak jantzita: bitarteko azal-tonua eta 5. mota',
+    '👩🏽‍🐰‍👩🏿' => 'emakumeak jendea untxi-belarriak jantzita: bitarteko azal-tonua eta 6. mota',
+    '👩🏾‍🐰‍👩🏻' => 'emakumeak jendea untxi-belarriak jantzita: 5. mota eta 1–2. mota',
+    '👩🏾‍🐰‍👩🏼' => 'emakumeak jendea untxi-belarriak jantzita: 5. mota eta 3. mota',
+    '👩🏾‍🐰‍👩🏽' => 'emakumeak jendea untxi-belarriak jantzita: 5. mota eta bitarteko azal-tonua',
+    '👩🏾‍🐰‍👩🏿' => 'emakumeak jendea untxi-belarriak jantzita: 5. mota eta 6. mota',
+    '👩🏿‍🐰‍👩🏻' => 'emakumeak jendea untxi-belarriak jantzita: 6. mota eta 1–2. mota',
+    '👩🏿‍🐰‍👩🏼' => 'emakumeak jendea untxi-belarriak jantzita: 6. mota eta 3. mota',
+    '👩🏿‍🐰‍👩🏽' => 'emakumeak jendea untxi-belarriak jantzita: 6. mota eta bitarteko azal-tonua',
+    '👩🏿‍🐰‍👩🏾' => 'emakumeak jendea untxi-belarriak jantzita: 6. mota eta 5. mota',
     '🧑🏻‍🤝‍🧑🏻' => 'bi pertsona elkarri eskua ematen: 1–2. mota',
     '🧑🏻‍🤝‍🧑🏼' => 'bi pertsona elkarri eskua ematen: 1–2. mota eta 3. mota',
     '🧑🏻‍🤝‍🧑🏽' => 'bi pertsona elkarri eskua ematen: 1–2. mota eta bitarteko azal-tonua',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'Bandera: Eskozia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'Bandera: Gales',
     '🧑‍🧑‍🧒‍🧒' => 'familia: nagusia, nagusia, haurra, haurra',
-    '🚶🏻‍♀‍➡' => 'oinez ari den emakumea eskuinera begira',
-    '🚶🏼‍♀‍➡' => 'oinez ari den emakumea eskuinera begira',
-    '🚶🏽‍♀‍➡' => 'oinez ari den emakumea eskuinera begira',
-    '🚶🏾‍♀‍➡' => 'oinez ari den emakumea eskuinera begira',
-    '🚶🏿‍♀‍➡' => 'oinez ari den emakumea eskuinera begira',
-    '🚶🏻‍♂‍➡' => 'oinez ari den gizona eskuinera begira',
-    '🚶🏼‍♂‍➡' => 'oinez ari den gizona eskuinera begira',
-    '🚶🏽‍♂‍➡' => 'oinez ari den gizona eskuinera begira',
-    '🚶🏾‍♂‍➡' => 'oinez ari den gizona eskuinera begira',
-    '🚶🏿‍♂‍➡' => 'oinez ari den gizona eskuinera begira',
-    '🧎🏻‍♀‍➡' => 'belauniko dagoen emakumea eskuinera begira',
-    '🧎🏼‍♀‍➡' => 'belauniko dagoen emakumea eskuinera begira',
-    '🧎🏽‍♀‍➡' => 'belauniko dagoen emakumea eskuinera begira',
-    '🧎🏾‍♀‍➡' => 'belauniko dagoen emakumea eskuinera begira',
-    '🧎🏿‍♀‍➡' => 'belauniko dagoen emakumea eskuinera begira',
-    '🧎🏻‍♂‍➡' => 'belauniko dagoen gizona eskuinera begira',
-    '🧎🏼‍♂‍➡' => 'belauniko dagoen gizona eskuinera begira',
-    '🧎🏽‍♂‍➡' => 'belauniko dagoen gizona eskuinera begira',
-    '🧎🏾‍♂‍➡' => 'belauniko dagoen gizona eskuinera begira',
-    '🧎🏿‍♂‍➡' => 'belauniko dagoen gizona eskuinera begira',
-    '🧑🏻‍🦯‍➡' => 'itsu-makila daraman pertsona eskuinera begira',
-    '🧑🏼‍🦯‍➡' => 'itsu-makila daraman pertsona eskuinera begira',
-    '🧑🏽‍🦯‍➡' => 'itsu-makila daraman pertsona eskuinera begira',
-    '🧑🏾‍🦯‍➡' => 'itsu-makila daraman pertsona eskuinera begira',
-    '🧑🏿‍🦯‍➡' => 'itsu-makila daraman pertsona eskuinera begira',
-    '👨🏻‍🦯‍➡' => 'itsu-makila daraman gizona eskuinera begira',
-    '👨🏼‍🦯‍➡' => 'itsu-makila daraman gizona eskuinera begira',
-    '👨🏽‍🦯‍➡' => 'itsu-makila daraman gizona eskuinera begira',
-    '👨🏾‍🦯‍➡' => 'itsu-makila daraman gizona eskuinera begira',
-    '👨🏿‍🦯‍➡' => 'itsu-makila daraman gizona eskuinera begira',
-    '👩🏻‍🦯‍➡' => 'itsu-makila daraman emakumea eskuinera begira',
-    '👩🏼‍🦯‍➡' => 'itsu-makila daraman emakumea eskuinera begira',
-    '👩🏽‍🦯‍➡' => 'itsu-makila daraman emakumea eskuinera begira',
-    '👩🏾‍🦯‍➡' => 'itsu-makila daraman emakumea eskuinera begira',
-    '👩🏿‍🦯‍➡' => 'itsu-makila daraman emakumea eskuinera begira',
-    '🧑🏻‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona eskuinera begira',
-    '🧑🏼‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona eskuinera begira',
-    '🧑🏽‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona eskuinera begira',
-    '🧑🏾‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona eskuinera begira',
-    '🧑🏿‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona eskuinera begira',
-    '👨🏻‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona eskuinera begira',
-    '👨🏼‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona eskuinera begira',
-    '👨🏽‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona eskuinera begira',
-    '👨🏾‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona eskuinera begira',
-    '👨🏿‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona eskuinera begira',
-    '👩🏻‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea eskuinera begira',
-    '👩🏼‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea eskuinera begira',
-    '👩🏽‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea eskuinera begira',
-    '👩🏾‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea eskuinera begira',
-    '👩🏿‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea eskuinera begira',
-    '🧑🏻‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona eskuinera begira',
-    '🧑🏼‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona eskuinera begira',
-    '🧑🏽‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona eskuinera begira',
-    '🧑🏾‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona eskuinera begira',
-    '🧑🏿‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona eskuinera begira',
-    '👨🏻‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona eskuinera begira',
-    '👨🏼‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona eskuinera begira',
-    '👨🏽‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona eskuinera begira',
-    '👨🏾‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona eskuinera begira',
-    '👨🏿‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona eskuinera begira',
-    '👩🏻‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea eskuinera begira',
-    '👩🏼‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea eskuinera begira',
-    '👩🏽‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea eskuinera begira',
-    '👩🏾‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea eskuinera begira',
-    '👩🏿‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea eskuinera begira',
-    '🏃🏻‍♀‍➡' => 'korrika ari den emakumea eskuinera begira',
-    '🏃🏼‍♀‍➡' => 'korrika ari den emakumea eskuinera begira',
-    '🏃🏽‍♀‍➡' => 'korrika ari den emakumea eskuinera begira',
-    '🏃🏾‍♀‍➡' => 'korrika ari den emakumea eskuinera begira',
-    '🏃🏿‍♀‍➡' => 'korrika ari den emakumea eskuinera begira',
-    '🏃🏻‍♂‍➡' => 'korrika ari den gizona eskuinera begira',
-    '🏃🏼‍♂‍➡' => 'korrika ari den gizona eskuinera begira',
-    '🏃🏽‍♂‍➡' => 'korrika ari den gizona eskuinera begira',
-    '🏃🏾‍♂‍➡' => 'korrika ari den gizona eskuinera begira',
-    '🏃🏿‍♂‍➡' => 'korrika ari den gizona eskuinera begira',
+    '🚶🏻‍♀‍➡' => 'oinez ari den emakumea: 1–2. mota eta eskuinera begira',
+    '🚶🏼‍♀‍➡' => 'oinez ari den emakumea: 3. mota eta eskuinera begira',
+    '🚶🏽‍♀‍➡' => 'oinez ari den emakumea: bitarteko azal-tonua eta eskuinera begira',
+    '🚶🏾‍♀‍➡' => 'oinez ari den emakumea: 5. mota eta eskuinera begira',
+    '🚶🏿‍♀‍➡' => 'oinez ari den emakumea: 6. mota eta eskuinera begira',
+    '🚶🏻‍♂‍➡' => 'oinez ari den gizona: 1–2. mota eta eskuinera begira',
+    '🚶🏼‍♂‍➡' => 'oinez ari den gizona: 3. mota eta eskuinera begira',
+    '🚶🏽‍♂‍➡' => 'oinez ari den gizona: bitarteko azal-tonua eta eskuinera begira',
+    '🚶🏾‍♂‍➡' => 'oinez ari den gizona: 5. mota eta eskuinera begira',
+    '🚶🏿‍♂‍➡' => 'oinez ari den gizona: 6. mota eta eskuinera begira',
+    '🧎🏻‍♀‍➡' => 'belauniko dagoen emakumea: 1–2. mota eta eskuinera begira',
+    '🧎🏼‍♀‍➡' => 'belauniko dagoen emakumea: 3. mota eta eskuinera begira',
+    '🧎🏽‍♀‍➡' => 'belauniko dagoen emakumea: bitarteko azal-tonua eta eskuinera begira',
+    '🧎🏾‍♀‍➡' => 'belauniko dagoen emakumea: 5. mota eta eskuinera begira',
+    '🧎🏿‍♀‍➡' => 'belauniko dagoen emakumea: 6. mota eta eskuinera begira',
+    '🧎🏻‍♂‍➡' => 'belauniko dagoen gizona: 1–2. mota eta eskuinera begira',
+    '🧎🏼‍♂‍➡' => 'belauniko dagoen gizona: 3. mota eta eskuinera begira',
+    '🧎🏽‍♂‍➡' => 'belauniko dagoen gizona: bitarteko azal-tonua eta eskuinera begira',
+    '🧎🏾‍♂‍➡' => 'belauniko dagoen gizona: 5. mota eta eskuinera begira',
+    '🧎🏿‍♂‍➡' => 'belauniko dagoen gizona: 6. mota eta eskuinera begira',
+    '🧑🏻‍🦯‍➡' => 'itsu-makila daraman pertsona: 1–2. mota eta eskuinera begira',
+    '🧑🏼‍🦯‍➡' => 'itsu-makila daraman pertsona: 3. mota eta eskuinera begira',
+    '🧑🏽‍🦯‍➡' => 'itsu-makila daraman pertsona: bitarteko azal-tonua eta eskuinera begira',
+    '🧑🏾‍🦯‍➡' => 'itsu-makila daraman pertsona: 5. mota eta eskuinera begira',
+    '🧑🏿‍🦯‍➡' => 'itsu-makila daraman pertsona: 6. mota eta eskuinera begira',
+    '👨🏻‍🦯‍➡' => 'itsu-makila daraman gizona: 1–2. mota eta eskuinera begira',
+    '👨🏼‍🦯‍➡' => 'itsu-makila daraman gizona: 3. mota eta eskuinera begira',
+    '👨🏽‍🦯‍➡' => 'itsu-makila daraman gizona: bitarteko azal-tonua eta eskuinera begira',
+    '👨🏾‍🦯‍➡' => 'itsu-makila daraman gizona: 5. mota eta eskuinera begira',
+    '👨🏿‍🦯‍➡' => 'itsu-makila daraman gizona: 6. mota eta eskuinera begira',
+    '👩🏻‍🦯‍➡' => 'itsu-makila daraman emakumea: 1–2. mota eta eskuinera begira',
+    '👩🏼‍🦯‍➡' => 'itsu-makila daraman emakumea: 3. mota eta eskuinera begira',
+    '👩🏽‍🦯‍➡' => 'itsu-makila daraman emakumea: bitarteko azal-tonua eta eskuinera begira',
+    '👩🏾‍🦯‍➡' => 'itsu-makila daraman emakumea: 5. mota eta eskuinera begira',
+    '👩🏿‍🦯‍➡' => 'itsu-makila daraman emakumea: 6. mota eta eskuinera begira',
+    '🧑🏻‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona: 1–2. mota eta eskuinera begira',
+    '🧑🏼‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona: 3. mota eta eskuinera begira',
+    '🧑🏽‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona: bitarteko azal-tonua eta eskuinera begira',
+    '🧑🏾‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona: 5. mota eta eskuinera begira',
+    '🧑🏿‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona: 6. mota eta eskuinera begira',
+    '👨🏻‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona: 1–2. mota eta eskuinera begira',
+    '👨🏼‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona: 3. mota eta eskuinera begira',
+    '👨🏽‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona: bitarteko azal-tonua eta eskuinera begira',
+    '👨🏾‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona: 5. mota eta eskuinera begira',
+    '👨🏿‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona: 6. mota eta eskuinera begira',
+    '👩🏻‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea: 1–2. mota eta eskuinera begira',
+    '👩🏼‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea: 3. mota eta eskuinera begira',
+    '👩🏽‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea: bitarteko azal-tonua eta eskuinera begira',
+    '👩🏾‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea: 5. mota eta eskuinera begira',
+    '👩🏿‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea: 6. mota eta eskuinera begira',
+    '🧑🏻‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona: 1–2. mota eta eskuinera begira',
+    '🧑🏼‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona: 3. mota eta eskuinera begira',
+    '🧑🏽‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona: bitarteko azal-tonua eta eskuinera begira',
+    '🧑🏾‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona: 5. mota eta eskuinera begira',
+    '🧑🏿‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona: 6. mota eta eskuinera begira',
+    '👨🏻‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona: 1–2. mota eta eskuinera begira',
+    '👨🏼‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona: 3. mota eta eskuinera begira',
+    '👨🏽‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona: bitarteko azal-tonua eta eskuinera begira',
+    '👨🏾‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona: 5. mota eta eskuinera begira',
+    '👨🏿‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona: 6. mota eta eskuinera begira',
+    '👩🏻‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea: 1–2. mota eta eskuinera begira',
+    '👩🏼‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea: 3. mota eta eskuinera begira',
+    '👩🏽‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea: bitarteko azal-tonua eta eskuinera begira',
+    '👩🏾‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea: 5. mota eta eskuinera begira',
+    '👩🏿‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea: 6. mota eta eskuinera begira',
+    '🏃🏻‍♀‍➡' => 'korrika ari den emakumea: 1–2. mota eta eskuinera begira',
+    '🏃🏼‍♀‍➡' => 'korrika ari den emakumea: 3. mota eta eskuinera begira',
+    '🏃🏽‍♀‍➡' => 'korrika ari den emakumea: bitarteko azal-tonua eta eskuinera begira',
+    '🏃🏾‍♀‍➡' => 'korrika ari den emakumea: 5. mota eta eskuinera begira',
+    '🏃🏿‍♀‍➡' => 'korrika ari den emakumea: 6. mota eta eskuinera begira',
+    '🏃🏻‍♂‍➡' => 'korrika ari den gizona: 1–2. mota eta eskuinera begira',
+    '🏃🏼‍♂‍➡' => 'korrika ari den gizona: 3. mota eta eskuinera begira',
+    '🏃🏽‍♂‍➡' => 'korrika ari den gizona: bitarteko azal-tonua eta eskuinera begira',
+    '🏃🏾‍♂‍➡' => 'korrika ari den gizona: 5. mota eta eskuinera begira',
+    '🏃🏿‍♂‍➡' => 'korrika ari den gizona: 6. mota eta eskuinera begira',
     '🫱🏻‍🫲🏼' => 'esku-ematea: 1–2. mota eta 3. mota',
     '🫱🏻‍🫲🏽' => 'esku-ematea: 1–2. mota eta bitarteko azal-tonua',
     '🫱🏻‍🫲🏾' => 'esku-ematea: 1–2. mota eta 5. mota',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'esku-ematea: 6. mota eta 3. mota',
     '🫱🏿‍🫲🏽' => 'esku-ematea: 6. mota eta bitarteko azal-tonua',
     '🫱🏿‍🫲🏾' => 'esku-ematea: 6. mota eta 5. mota',
-    '🚶‍♀‍➡' => 'oinez ari den emakumea eskuinera begira',
-    '🚶‍♂‍➡' => 'oinez ari den gizona eskuinera begira',
-    '🧎‍♀‍➡' => 'belauniko dagoen emakumea eskuinera begira',
-    '🧎‍♂‍➡' => 'belauniko dagoen gizona eskuinera begira',
-    '🧑‍🦯‍➡' => 'itsu-makila daraman pertsona eskuinera begira',
-    '👨‍🦯‍➡' => 'itsu-makila daraman gizona eskuinera begira',
-    '👩‍🦯‍➡' => 'itsu-makila daraman emakumea eskuinera begira',
-    '🧑‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona eskuinera begira',
-    '👨‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona eskuinera begira',
-    '👩‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea eskuinera begira',
-    '🧑‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona eskuinera begira',
-    '👨‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona eskuinera begira',
-    '👩‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea eskuinera begira',
-    '🏃‍♀‍➡' => 'korrika ari den emakumea eskuinera begira',
-    '🏃‍♂‍➡' => 'korrika ari den gizona eskuinera begira',
+    '🚶‍♀‍➡' => 'oinez ari den emakumea: eskuinera begira',
+    '🚶‍♂‍➡' => 'oinez ari den gizona: eskuinera begira',
+    '🧎‍♀‍➡' => 'belauniko dagoen emakumea: eskuinera begira',
+    '🧎‍♂‍➡' => 'belauniko dagoen gizona: eskuinera begira',
+    '🧑‍🦯‍➡' => 'itsu-makila daraman pertsona: eskuinera begira',
+    '👨‍🦯‍➡' => 'itsu-makila daraman gizona: eskuinera begira',
+    '👩‍🦯‍➡' => 'itsu-makila daraman emakumea: eskuinera begira',
+    '🧑‍🦼‍➡' => 'gurpil-aulki motordunean doan pertsona: eskuinera begira',
+    '👨‍🦼‍➡' => 'gurpil-aulki motordunean doan gizona: eskuinera begira',
+    '👩‍🦼‍➡' => 'gurpil-aulki motordunean doan emakumea: eskuinera begira',
+    '🧑‍🦽‍➡' => 'eskuzko gurpil-aulkian doan pertsona: eskuinera begira',
+    '👨‍🦽‍➡' => 'eskuzko gurpil-aulkian doan gizona: eskuinera begira',
+    '👩‍🦽‍➡' => 'eskuzko gurpil-aulkian doan emakumea: eskuinera begira',
+    '🏃‍♀‍➡' => 'korrika ari den emakumea: eskuinera begira',
+    '🏃‍♂‍➡' => 'korrika ari den gizona: eskuinera begira',
     '👩‍❤‍👨' => 'bihotza erdian duen bikotea: emakumea eta gizona',
     '👨‍❤‍👨' => 'bihotza erdian duen bikotea: gizona eta gizona',
     '👩‍❤‍👩' => 'bihotza erdian duen bikotea: emakumea eta emakumea',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'pertsona: bitarteko azal-tonua eta burusoil',
     '🧑🏾‍🦲' => 'pertsona: 5. mota eta burusoil',
     '🧑🏿‍🦲' => 'pertsona: 6. mota eta burusoil',
+    '🧑🏻‍🩰' => 'ballet-dantzaria: 1–2. mota',
+    '🧑🏼‍🩰' => 'ballet-dantzaria: 3. mota',
+    '🧑🏽‍🩰' => 'ballet-dantzaria: bitarteko azal-tonua',
+    '🧑🏾‍🩰' => 'ballet-dantzaria: 5. mota',
+    '🧑🏿‍🩰' => 'ballet-dantzaria: 6. mota',
     '🧔🏻‍♂' => 'gizona: 1–2. mota eta bizarra',
     '🧔🏼‍♂' => 'gizona: 3. mota eta bizarra',
     '🧔🏽‍♂' => 'gizona: bitarteko azal-tonua eta bizarra',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'oinez ari den emakumea: bitarteko azal-tonua',
     '🚶🏾‍♀' => 'oinez ari den emakumea: 5. mota',
     '🚶🏿‍♀' => 'oinez ari den emakumea: 6. mota',
-    '🚶🏻‍➡' => 'oinez ari den pertsona eskuinera begira',
-    '🚶🏼‍➡' => 'oinez ari den pertsona eskuinera begira',
-    '🚶🏽‍➡' => 'oinez ari den pertsona eskuinera begira',
-    '🚶🏾‍➡' => 'oinez ari den pertsona eskuinera begira',
-    '🚶🏿‍➡' => 'oinez ari den pertsona eskuinera begira',
+    '🚶🏻‍➡' => 'oinez ari den pertsona: 1–2. mota eta eskuinera begira',
+    '🚶🏼‍➡' => 'oinez ari den pertsona: 3. mota eta eskuinera begira',
+    '🚶🏽‍➡' => 'oinez ari den pertsona: bitarteko azal-tonua eta eskuinera begira',
+    '🚶🏾‍➡' => 'oinez ari den pertsona: 5. mota eta eskuinera begira',
+    '🚶🏿‍➡' => 'oinez ari den pertsona: 6. mota eta eskuinera begira',
     '🧍🏻‍♂' => 'zutik dagoen gizona: 1–2. mota',
     '🧍🏼‍♂' => 'zutik dagoen gizona: 3. mota',
     '🧍🏽‍♂' => 'zutik dagoen gizona: bitarteko azal-tonua',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'belauniko dagoen emakumea: bitarteko azal-tonua',
     '🧎🏾‍♀' => 'belauniko dagoen emakumea: 5. mota',
     '🧎🏿‍♀' => 'belauniko dagoen emakumea: 6. mota',
-    '🧎🏻‍➡' => 'belauniko dagoen pertsona eskuinera begira',
-    '🧎🏼‍➡' => 'belauniko dagoen pertsona eskuinera begira',
-    '🧎🏽‍➡' => 'belauniko dagoen pertsona eskuinera begira',
-    '🧎🏾‍➡' => 'belauniko dagoen pertsona eskuinera begira',
-    '🧎🏿‍➡' => 'belauniko dagoen pertsona eskuinera begira',
+    '🧎🏻‍➡' => 'belauniko dagoen pertsona: 1–2. mota eta eskuinera begira',
+    '🧎🏼‍➡' => 'belauniko dagoen pertsona: 3. mota eta eskuinera begira',
+    '🧎🏽‍➡' => 'belauniko dagoen pertsona: bitarteko azal-tonua eta eskuinera begira',
+    '🧎🏾‍➡' => 'belauniko dagoen pertsona: 5. mota eta eskuinera begira',
+    '🧎🏿‍➡' => 'belauniko dagoen pertsona: 6. mota eta eskuinera begira',
     '🧑🏻‍🦯' => 'itsu-makila daraman pertsona: 1–2. mota',
     '🧑🏼‍🦯' => 'itsu-makila daraman pertsona: 3. mota',
     '🧑🏽‍🦯' => 'itsu-makila daraman pertsona: bitarteko azal-tonua',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'korrika ari den emakumea: bitarteko azal-tonua',
     '🏃🏾‍♀' => 'korrika ari den emakumea: 5. mota',
     '🏃🏿‍♀' => 'korrika ari den emakumea: 6. mota',
-    '🏃🏻‍➡' => 'korrika ari den pertsona eskuinera begira',
-    '🏃🏼‍➡' => 'korrika ari den pertsona eskuinera begira',
-    '🏃🏽‍➡' => 'korrika ari den pertsona eskuinera begira',
-    '🏃🏾‍➡' => 'korrika ari den pertsona eskuinera begira',
-    '🏃🏿‍➡' => 'korrika ari den pertsona eskuinera begira',
+    '🏃🏻‍➡' => 'korrika ari den pertsona: 1–2. mota eta eskuinera begira',
+    '🏃🏼‍➡' => 'korrika ari den pertsona: 3. mota eta eskuinera begira',
+    '🏃🏽‍➡' => 'korrika ari den pertsona: bitarteko azal-tonua eta eskuinera begira',
+    '🏃🏾‍➡' => 'korrika ari den pertsona: 5. mota eta eskuinera begira',
+    '🏃🏿‍➡' => 'korrika ari den pertsona: 6. mota eta eskuinera begira',
+    '👯🏻‍♀' => 'emakumeak jendea untxi-belarriak jantzita: 1–2. mota',
+    '👯🏼‍♀' => 'emakumeak jendea untxi-belarriak jantzita: 3. mota',
+    '👯🏽‍♀' => 'emakumeak jendea untxi-belarriak jantzita: bitarteko azal-tonua',
+    '👯🏾‍♀' => 'emakumeak jendea untxi-belarriak jantzita: 5. mota',
+    '👯🏿‍♀' => 'emakumeak jendea untxi-belarriak jantzita: 6. mota',
+    '👯🏻‍♂' => 'gizonak untxi-belarriak jantzita: 1–2. mota',
+    '👯🏼‍♂' => 'gizonak untxi-belarriak jantzita: 3. mota',
+    '👯🏽‍♂' => 'gizonak untxi-belarriak jantzita: bitarteko azal-tonua',
+    '👯🏾‍♂' => 'gizonak untxi-belarriak jantzita: 5. mota',
+    '👯🏿‍♂' => 'gizonak untxi-belarriak jantzita: 6. mota',
     '🧖🏻‍♂' => 'gizon bat lurrun-gelan: 1–2. mota',
     '🧖🏼‍♂' => 'gizon bat lurrun-gelan: 3. mota',
     '🧖🏽‍♂' => 'gizon bat lurrun-gelan: bitarteko azal-tonua',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'gurpil-ariketa egiten ari den emakumea: bitarteko azal-tonua',
     '🤸🏾‍♀' => 'gurpil-ariketa egiten ari den emakumea: 5. mota',
     '🤸🏿‍♀' => 'gurpil-ariketa egiten ari den emakumea: 6. mota',
+    '🤼🏻‍♀' => 'emakumeak borrokan: 1–2. mota',
+    '🤼🏼‍♀' => 'emakumeak borrokan: 3. mota',
+    '🤼🏽‍♀' => 'emakumeak borrokan: bitarteko azal-tonua',
+    '🤼🏾‍♀' => 'emakumeak borrokan: 5. mota',
+    '🤼🏿‍♀' => 'emakumeak borrokan: 6. mota',
+    '🤼🏻‍♂' => 'gizonak borrokan: 1–2. mota',
+    '🤼🏼‍♂' => 'gizonak borrokan: 3. mota',
+    '🤼🏽‍♂' => 'gizonak borrokan: bitarteko azal-tonua',
+    '🤼🏾‍♂' => 'gizonak borrokan: 5. mota',
+    '🤼🏿‍♂' => 'gizonak borrokan: 6. mota',
     '🤽🏻‍♂' => 'gizona waterpoloan jolasten: 1–2. mota',
     '🤽🏼‍♂' => 'gizona waterpoloan jolasten: 3. mota',
     '🤽🏽‍♂' => 'gizona waterpoloan jolasten: bitarteko azal-tonua',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'emakumea: ile kizkur',
     '👩‍🦳' => 'emakumea: ilezuri',
     '👩‍🦲' => 'emakumea: burusoil',
-    '🚶‍➡' => 'oinez ari den pertsona eskuinera begira',
-    '🧎‍➡' => 'belauniko dagoen pertsona eskuinera begira',
-    '🏃‍➡' => 'korrika ari den pertsona eskuinera begira',
+    '🚶‍➡' => 'oinez ari den pertsona: eskuinera begira',
+    '🧎‍➡' => 'belauniko dagoen pertsona: eskuinera begira',
+    '🏃‍➡' => 'korrika ari den pertsona: eskuinera begira',
     '👨‍👦' => 'familia: gizona eta mutila',
     '👨‍👧' => 'familia: gizona eta neska',
     '👩‍👦' => 'familia: emakumea eta mutila',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'eskuzko gurpil-aulkian doan emakumea',
     '🏃‍♂' => 'korrika ari den gizona',
     '🏃‍♀' => 'korrika ari den emakumea',
+    '🧑‍🩰' => 'ballet-dantzaria',
     '👯‍♂' => 'gizonak untxi-belarriak jantzita',
     '👯‍♀' => 'emakumeak jendea untxi-belarriak jantzita',
     '🧖‍♂' => 'gizon bat lurrun-gelan',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'trajea daraman eta lebitatzen ari den gizona: bitarteko azal-tonua',
     '🕴🏾' => 'trajea daraman eta lebitatzen ari den gizona: 5. mota',
     '🕴🏿' => 'trajea daraman eta lebitatzen ari den gizona: 6. mota',
+    '👯🏻' => 'jendea untxi-belarriak jantzita: 1–2. mota',
+    '👯🏼' => 'jendea untxi-belarriak jantzita: 3. mota',
+    '👯🏽' => 'jendea untxi-belarriak jantzita: bitarteko azal-tonua',
+    '👯🏾' => 'jendea untxi-belarriak jantzita: 5. mota',
+    '👯🏿' => 'jendea untxi-belarriak jantzita: 6. mota',
     '🧖🏻' => 'pertsona bat lurrun-gelan: 1–2. mota',
     '🧖🏼' => 'pertsona bat lurrun-gelan: 3. mota',
     '🧖🏽' => 'pertsona bat lurrun-gelan: bitarteko azal-tonua',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'alboko gurpila: bitarteko azal-tonua',
     '🤸🏾' => 'alboko gurpila: 5. mota',
     '🤸🏿' => 'alboko gurpila: 6. mota',
+    '🤼🏻' => 'borrokalariak: 1–2. mota',
+    '🤼🏼' => 'borrokalariak: 3. mota',
+    '🤼🏽' => 'borrokalariak: bitarteko azal-tonua',
+    '🤼🏾' => 'borrokalariak: 5. mota',
+    '🤼🏿' => 'borrokalariak: 6. mota',
     '🤽🏻' => 'waterpoloa: 1–2. mota',
     '🤽🏼' => 'waterpoloa: 3. mota',
     '🤽🏽' => 'waterpoloa: bitarteko azal-tonua',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'Bandera: Txina',
     '🇨🇴' => 'Bandera: Kolonbia',
     '🇨🇵' => 'Bandera: Clipperton uhartea',
+    '🇨🇶' => 'Bandera: Sark',
     '🇨🇷' => 'Bandera: Costa Rica',
     '🇨🇺' => 'Bandera: Kuba',
     '🇨🇻' => 'Bandera: Cabo Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'bitarteko azal-tonua',
     '🏾' => '5. mota',
     '🏿' => '6. mota',
-    '🪉' => 'harpa',
-    '🪏' => 'pala',
-    '🪾' => 'hosto gabeko zuhaitza',
-    '🫆' => 'hatz-marka',
-    '🫜' => 'tuberkulua',
-    '🫟' => 'zipriztina',
-    '🫩' => 'begien azpian poltsak dituen aurpegia',
     '😀' => 'barre egiten ari den aurpegia',
     '😃' => 'barre egiten ari den aurpegia, ahoa irekita',
     '😄' => 'begiez barreka ari den aurpegia',
@@ -2450,6 +2600,7 @@
     '😪' => 'logura-aurpegia',
     '🤤' => 'aurpegia lerdea dariola',
     '😴' => 'lo dagoen aurpegia',
+    '🫩' => 'begien azpian poltsak dituen aurpegia',
     '😷' => 'mediku-maskara daraman aurpegia',
     '🤒' => 'termometroa duen aurpegia',
     '🤕' => 'buruan benda daraman aurpegia',
@@ -2476,6 +2627,7 @@
     '😯' => 'harridura-aurpegia',
     '😲' => 'harritu-aurpegia',
     '😳' => 'aurpegi gorritua',
+    '🫪' => 'aurpegi distortsionatua',
     '🥺' => 'aurpegi erregutzailea',
     '🥹' => 'malkoak dituen begiko aurpegia',
     '😦' => 'kopeta ilun eta ahoa zabalik duen aurpegia',
@@ -2547,6 +2699,7 @@
     '💋' => 'musu-aztarna',
     '💯' => 'ehun puntu',
     '💢' => 'amorruaren ikurra',
+    '🫯' => 'borroka-hodeia',
     '💥' => 'eztanda',
     '💫' => 'zorabiatuta',
     '💦' => 'izerdi-tantatxoak',
@@ -2670,6 +2823,7 @@
     '🧞' => 'iratxo',
     '🧟' => 'zonbi',
     '🧌' => 'trolla',
+    '🫈' => 'izaki iletsua',
     '💆' => 'masajea egiten ari dioten pertsona',
     '💇' => 'ilea mozten ari dioten pertsona',
     '🚶' => 'oinez ari den pertsona',
@@ -2713,6 +2867,7 @@
     '🫂' => 'elkar besarkatzen ari den jendea',
     '👪' => 'familia',
     '👣' => 'oin-aztarnak',
+    '🫆' => 'hatz-marka',
     '🦰' => 'ilegorri',
     '🦱' => 'ile kizkur',
     '🦳' => 'ilezuri',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ura jaurtitzen ari den balea',
     '🐋' => 'balea',
     '🐬' => 'izurdea',
+    '🫍' => 'Ezpalarta',
     '🦭' => 'itsas txakur',
     '🐟' => 'arrain',
     '🐠' => 'arrain tropikala',
@@ -2821,6 +2977,11 @@
     '🐚' => 'oskol espirala',
     '🪸' => 'korala',
     '🪼' => 'marmoka',
+    '🦀' => 'karramarroa',
+    '🦞' => 'otarrain',
+    '🦐' => 'ganba',
+    '🦑' => 'txibia',
+    '🦪' => 'ostra',
     '🐌' => 'barraskiloa',
     '🦋' => 'pinpilinpauxa',
     '🐛' => 'zomorroa',
@@ -2865,6 +3026,7 @@
     '🪹' => 'habi hutsa',
     '🪺' => 'habia arrautzekin',
     '🍄' => 'barrengorria',
+    '🪾' => 'hosto gabeko zuhaitza',
     '🍇' => 'mahatsa',
     '🍈' => 'meloia',
     '🍉' => 'sandia',
@@ -2901,6 +3063,7 @@
     '🌰' => 'gaztaina',
     '🫚' => 'jengibrea',
     '🫛' => 'ilar-zorroa',
+    '🫜' => 'tuberkulua',
     '🍞' => 'ogi',
     '🥐' => 'croissanta',
     '🥖' => 'baguettea',
@@ -2952,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'zortearen gaileta',
     '🥡' => 'eramateko kaxa',
-    '🦀' => 'karramarroa',
-    '🦞' => 'otarrain',
-    '🦐' => 'ganba',
-    '🦑' => 'txibia',
-    '🦪' => 'ostra',
     '🍦' => 'izozki krematsua',
     '🍧' => 'izotz arraspatua',
     '🍨' => 'izozkia',
@@ -3007,6 +3165,7 @@
     '🧭' => 'iparrorratz',
     '🏔' => 'tontorrean elurra duen mendia',
     '⛰' => 'mendia',
+    '🛘' => 'lur-jausia',
     '🌋' => 'sumendia',
     '🗻' => 'fuji mendia',
     '🏕' => 'kanpina',
@@ -3367,16 +3526,18 @@
     '🎧' => 'entzungailuak',
     '📻' => 'irratia',
     '🎷' => 'saxofoia',
+    '🎺' => 'tronpeta',
+    '🪊' => 'tronboia',
     '🪗' => 'akordeoi',
     '🎸' => 'gitarra',
     '🎹' => 'musika-teklatua',
-    '🎺' => 'tronpeta',
     '🎻' => 'biolina',
     '🪕' => 'banjoa',
     '🥁' => 'danborra',
     '🪘' => 'danbor luze',
     '🪇' => 'marakak',
     '🪈' => 'txirula',
+    '🪉' => 'harpa',
     '📱' => 'telefono mugikorra',
     '📲' => 'telefono mugikorra gezi batekin',
     '☎' => 'telefonoa',
@@ -3430,8 +3591,9 @@
     '📑' => 'laster-markak',
     '🔖' => 'laster-marka',
     '🏷' => 'etiketa',
-    '💰' => 'poltsa bete diru',
     '🪙' => 'txanpon',
+    '💰' => 'poltsa bete diru',
+    '🪎' => 'altxorraren kutxa',
     '💴' => 'yen billetea',
     '💵' => 'dolar billetea',
     '💶' => 'euro billetea',
@@ -3514,6 +3676,7 @@
     '🧰' => 'erreminta-kutxa',
     '🧲' => 'iman',
     '🪜' => 'esku-eskailera',
+    '🪏' => 'pala',
     '⚗' => 'alanbikea',
     '🧪' => 'saio-hodi',
     '🧫' => 'Petriren kaxa',
@@ -3697,6 +3860,7 @@
     '✴' => 'zortzi puntako izarra',
     '❇' => 'txinparta',
     '™' => 'marka komertziala',
+    '🫟' => 'zipriztina',
     '🔠' => 'alfabeto latindarra maiuskulaz',
     '🔡' => 'alfabeto latindarra minuskulaz',
     '🔢' => 'zenbakiak',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fa.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'بوسه: زن،‏ زن،‏ پوست آبنوسی، و پوست طلایی',
     '👩🏿‍❤‍💋‍👩🏾' => 'بوسه: زن،‏ زن،‏ پوست آبنوسی، و پوست گندمی',
     '👩🏿‍❤‍💋‍👩🏿' => 'بوسه: زن،‏ زن، و پوست آبنوسی',
+    '🧑🏻‍🫯‍🧑🏼' => 'کُشتی‌گیران: پوست سفید،‏ پوست روشن',
+    '🧑🏻‍🫯‍🧑🏽' => 'کُشتی‌گیران: پوست سفید،‏ پوست طلایی',
+    '🧑🏻‍🫯‍🧑🏾' => 'کُشتی‌گیران: پوست سفید،‏ پوست گندمی',
+    '🧑🏻‍🫯‍🧑🏿' => 'کُشتی‌گیران: پوست سفید،‏ پوست آبنوسی',
+    '🧑🏼‍🫯‍🧑🏻' => 'کُشتی‌گیران: پوست روشن،‏ پوست سفید',
+    '🧑🏼‍🫯‍🧑🏽' => 'کُشتی‌گیران: پوست روشن،‏ پوست طلایی',
+    '🧑🏼‍🫯‍🧑🏾' => 'کُشتی‌گیران: پوست روشن،‏ پوست گندمی',
+    '🧑🏼‍🫯‍🧑🏿' => 'کُشتی‌گیران: پوست روشن،‏ پوست آبنوسی',
+    '🧑🏽‍🫯‍🧑🏻' => 'کُشتی‌گیران: پوست طلایی،‏ پوست سفید',
+    '🧑🏽‍🫯‍🧑🏼' => 'کُشتی‌گیران: پوست طلایی،‏ پوست روشن',
+    '🧑🏽‍🫯‍🧑🏾' => 'کُشتی‌گیران: پوست طلایی،‏ پوست گندمی',
+    '🧑🏽‍🫯‍🧑🏿' => 'کُشتی‌گیران: پوست طلایی،‏ پوست آبنوسی',
+    '🧑🏾‍🫯‍🧑🏻' => 'کُشتی‌گیران: پوست گندمی،‏ پوست سفید',
+    '🧑🏾‍🫯‍🧑🏼' => 'کُشتی‌گیران: پوست گندمی،‏ پوست روشن',
+    '🧑🏾‍🫯‍🧑🏽' => 'کُشتی‌گیران: پوست گندمی،‏ پوست طلایی',
+    '🧑🏾‍🫯‍🧑🏿' => 'کُشتی‌گیران: پوست گندمی،‏ پوست آبنوسی',
+    '🧑🏿‍🫯‍🧑🏻' => 'کُشتی‌گیران: پوست آبنوسی،‏ پوست سفید',
+    '🧑🏿‍🫯‍🧑🏼' => 'کُشتی‌گیران: پوست آبنوسی،‏ پوست روشن',
+    '🧑🏿‍🫯‍🧑🏽' => 'کُشتی‌گیران: پوست آبنوسی،‏ پوست طلایی',
+    '🧑🏿‍🫯‍🧑🏾' => 'کُشتی‌گیران: پوست آبنوسی،‏ پوست گندمی',
     '🧑🏻‍❤‍🧑🏼' => 'زوج عاشق: شخص،‏ شخص،‏ پوست سفید، و پوست روشن',
     '🧑🏻‍❤‍🧑🏽' => 'زوج عاشق: شخص،‏ شخص،‏ پوست سفید، و پوست طلایی',
     '🧑🏻‍❤‍🧑🏾' => 'زوج عاشق: شخص،‏ شخص،‏ پوست سفید، و پوست گندمی',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'زوج عاشق: شخص،‏ شخص،‏ پوست آبنوسی، و پوست روشن',
     '🧑🏿‍❤‍🧑🏽' => 'زوج عاشق: شخص،‏ شخص،‏ پوست آبنوسی، و پوست طلایی',
     '🧑🏿‍❤‍🧑🏾' => 'زوج عاشق: شخص،‏ شخص،‏ پوست آبنوسی، و پوست گندمی',
+    '🧑🏻‍🐰‍🧑🏼' => 'رقص: پوست سفید،‏ پوست روشن',
+    '🧑🏻‍🐰‍🧑🏽' => 'رقص: پوست سفید،‏ پوست طلایی',
+    '🧑🏻‍🐰‍🧑🏾' => 'رقص: پوست سفید،‏ پوست گندمی',
+    '🧑🏻‍🐰‍🧑🏿' => 'رقص: پوست سفید،‏ پوست آبنوسی',
+    '🧑🏼‍🐰‍🧑🏻' => 'رقص: پوست روشن،‏ پوست سفید',
+    '🧑🏼‍🐰‍🧑🏽' => 'رقص: پوست روشن،‏ پوست طلایی',
+    '🧑🏼‍🐰‍🧑🏾' => 'رقص: پوست روشن،‏ پوست گندمی',
+    '🧑🏼‍🐰‍🧑🏿' => 'رقص: پوست روشن،‏ پوست آبنوسی',
+    '🧑🏽‍🐰‍🧑🏻' => 'رقص: پوست طلایی،‏ پوست سفید',
+    '🧑🏽‍🐰‍🧑🏼' => 'رقص: پوست طلایی،‏ پوست روشن',
+    '🧑🏽‍🐰‍🧑🏾' => 'رقص: پوست طلایی،‏ پوست گندمی',
+    '🧑🏽‍🐰‍🧑🏿' => 'رقص: پوست طلایی،‏ پوست آبنوسی',
+    '🧑🏾‍🐰‍🧑🏻' => 'رقص: پوست گندمی،‏ پوست سفید',
+    '🧑🏾‍🐰‍🧑🏼' => 'رقص: پوست گندمی،‏ پوست روشن',
+    '🧑🏾‍🐰‍🧑🏽' => 'رقص: پوست گندمی،‏ پوست طلایی',
+    '🧑🏾‍🐰‍🧑🏿' => 'رقص: پوست گندمی،‏ پوست آبنوسی',
+    '🧑🏿‍🐰‍🧑🏻' => 'رقص: پوست آبنوسی،‏ پوست سفید',
+    '🧑🏿‍🐰‍🧑🏼' => 'رقص: پوست آبنوسی،‏ پوست روشن',
+    '🧑🏿‍🐰‍🧑🏽' => 'رقص: پوست آبنوسی،‏ پوست طلایی',
+    '🧑🏿‍🐰‍🧑🏾' => 'رقص: پوست آبنوسی،‏ پوست گندمی',
+    '👨🏻‍🫯‍👨🏼' => 'کُشتی‌گیر مرد: پوست سفید،‏ پوست روشن',
+    '👨🏻‍🫯‍👨🏽' => 'کُشتی‌گیر مرد: پوست سفید،‏ پوست طلایی',
+    '👨🏻‍🫯‍👨🏾' => 'کُشتی‌گیر مرد: پوست سفید،‏ پوست گندمی',
+    '👨🏻‍🫯‍👨🏿' => 'کُشتی‌گیر مرد: پوست سفید،‏ پوست آبنوسی',
+    '👨🏼‍🫯‍👨🏻' => 'کُشتی‌گیر مرد: پوست روشن،‏ پوست سفید',
+    '👨🏼‍🫯‍👨🏽' => 'کُشتی‌گیر مرد: پوست روشن،‏ پوست طلایی',
+    '👨🏼‍🫯‍👨🏾' => 'کُشتی‌گیر مرد: پوست روشن،‏ پوست گندمی',
+    '👨🏼‍🫯‍👨🏿' => 'کُشتی‌گیر مرد: پوست روشن،‏ پوست آبنوسی',
+    '👨🏽‍🫯‍👨🏻' => 'کُشتی‌گیر مرد: پوست طلایی،‏ پوست سفید',
+    '👨🏽‍🫯‍👨🏼' => 'کُشتی‌گیر مرد: پوست طلایی،‏ پوست روشن',
+    '👨🏽‍🫯‍👨🏾' => 'کُشتی‌گیر مرد: پوست طلایی،‏ پوست گندمی',
+    '👨🏽‍🫯‍👨🏿' => 'کُشتی‌گیر مرد: پوست طلایی،‏ پوست آبنوسی',
+    '👨🏾‍🫯‍👨🏻' => 'کُشتی‌گیر مرد: پوست گندمی،‏ پوست سفید',
+    '👨🏾‍🫯‍👨🏼' => 'کُشتی‌گیر مرد: پوست گندمی،‏ پوست روشن',
+    '👨🏾‍🫯‍👨🏽' => 'کُشتی‌گیر مرد: پوست گندمی،‏ پوست طلایی',
+    '👨🏾‍🫯‍👨🏿' => 'کُشتی‌گیر مرد: پوست گندمی،‏ پوست آبنوسی',
+    '👨🏿‍🫯‍👨🏻' => 'کُشتی‌گیر مرد: پوست آبنوسی،‏ پوست سفید',
+    '👨🏿‍🫯‍👨🏼' => 'کُشتی‌گیر مرد: پوست آبنوسی،‏ پوست روشن',
+    '👨🏿‍🫯‍👨🏽' => 'کُشتی‌گیر مرد: پوست آبنوسی،‏ پوست طلایی',
+    '👨🏿‍🫯‍👨🏾' => 'کُشتی‌گیر مرد: پوست آبنوسی،‏ پوست گندمی',
     '👨🏻‍❤‍👨🏻' => 'زوج عاشق: مرد،‏ مرد، و پوست سفید',
     '👨🏻‍❤‍👨🏼' => 'زوج عاشق: مرد،‏ مرد،‏ پوست سفید، و پوست روشن',
     '👨🏻‍❤‍👨🏽' => 'زوج عاشق: مرد،‏ مرد،‏ پوست سفید، و پوست طلایی',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'زوج عاشق: مرد،‏ مرد،‏ پوست آبنوسی، و پوست طلایی',
     '👨🏿‍❤‍👨🏾' => 'زوج عاشق: مرد،‏ مرد،‏ پوست آبنوسی، و پوست گندمی',
     '👨🏿‍❤‍👨🏿' => 'زوج عاشق: مرد،‏ مرد، و پوست آبنوسی',
+    '👨🏻‍🐰‍👨🏼' => 'مردان در پارتی: پوست سفید،‏ پوست روشن',
+    '👨🏻‍🐰‍👨🏽' => 'مردان در پارتی: پوست سفید،‏ پوست طلایی',
+    '👨🏻‍🐰‍👨🏾' => 'مردان در پارتی: پوست سفید،‏ پوست گندمی',
+    '👨🏻‍🐰‍👨🏿' => 'مردان در پارتی: پوست سفید،‏ پوست آبنوسی',
+    '👨🏼‍🐰‍👨🏻' => 'مردان در پارتی: پوست روشن،‏ پوست سفید',
+    '👨🏼‍🐰‍👨🏽' => 'مردان در پارتی: پوست روشن،‏ پوست طلایی',
+    '👨🏼‍🐰‍👨🏾' => 'مردان در پارتی: پوست روشن،‏ پوست گندمی',
+    '👨🏼‍🐰‍👨🏿' => 'مردان در پارتی: پوست روشن،‏ پوست آبنوسی',
+    '👨🏽‍🐰‍👨🏻' => 'مردان در پارتی: پوست طلایی،‏ پوست سفید',
+    '👨🏽‍🐰‍👨🏼' => 'مردان در پارتی: پوست طلایی،‏ پوست روشن',
+    '👨🏽‍🐰‍👨🏾' => 'مردان در پارتی: پوست طلایی،‏ پوست گندمی',
+    '👨🏽‍🐰‍👨🏿' => 'مردان در پارتی: پوست طلایی،‏ پوست آبنوسی',
+    '👨🏾‍🐰‍👨🏻' => 'مردان در پارتی: پوست گندمی،‏ پوست سفید',
+    '👨🏾‍🐰‍👨🏼' => 'مردان در پارتی: پوست گندمی،‏ پوست روشن',
+    '👨🏾‍🐰‍👨🏽' => 'مردان در پارتی: پوست گندمی،‏ پوست طلایی',
+    '👨🏾‍🐰‍👨🏿' => 'مردان در پارتی: پوست گندمی،‏ پوست آبنوسی',
+    '👨🏿‍🐰‍👨🏻' => 'مردان در پارتی: پوست آبنوسی،‏ پوست سفید',
+    '👨🏿‍🐰‍👨🏼' => 'مردان در پارتی: پوست آبنوسی،‏ پوست روشن',
+    '👨🏿‍🐰‍👨🏽' => 'مردان در پارتی: پوست آبنوسی،‏ پوست طلایی',
+    '👨🏿‍🐰‍👨🏾' => 'مردان در پارتی: پوست آبنوسی،‏ پوست گندمی',
+    '👩🏻‍🫯‍👩🏼' => 'کُشتی‌گیر زن: پوست سفید،‏ پوست روشن',
+    '👩🏻‍🫯‍👩🏽' => 'کُشتی‌گیر زن: پوست سفید،‏ پوست طلایی',
+    '👩🏻‍🫯‍👩🏾' => 'کُشتی‌گیر زن: پوست سفید،‏ پوست گندمی',
+    '👩🏻‍🫯‍👩🏿' => 'کُشتی‌گیر زن: پوست سفید،‏ پوست آبنوسی',
+    '👩🏼‍🫯‍👩🏻' => 'کُشتی‌گیر زن: پوست روشن،‏ پوست سفید',
+    '👩🏼‍🫯‍👩🏽' => 'کُشتی‌گیر زن: پوست روشن،‏ پوست طلایی',
+    '👩🏼‍🫯‍👩🏾' => 'کُشتی‌گیر زن: پوست روشن،‏ پوست گندمی',
+    '👩🏼‍🫯‍👩🏿' => 'کُشتی‌گیر زن: پوست روشن،‏ پوست آبنوسی',
+    '👩🏽‍🫯‍👩🏻' => 'کُشتی‌گیر زن: پوست طلایی،‏ پوست سفید',
+    '👩🏽‍🫯‍👩🏼' => 'کُشتی‌گیر زن: پوست طلایی،‏ پوست روشن',
+    '👩🏽‍🫯‍👩🏾' => 'کُشتی‌گیر زن: پوست طلایی،‏ پوست گندمی',
+    '👩🏽‍🫯‍👩🏿' => 'کُشتی‌گیر زن: پوست طلایی،‏ پوست آبنوسی',
+    '👩🏾‍🫯‍👩🏻' => 'کُشتی‌گیر زن: پوست گندمی،‏ پوست سفید',
+    '👩🏾‍🫯‍👩🏼' => 'کُشتی‌گیر زن: پوست گندمی،‏ پوست روشن',
+    '👩🏾‍🫯‍👩🏽' => 'کُشتی‌گیر زن: پوست گندمی،‏ پوست طلایی',
+    '👩🏾‍🫯‍👩🏿' => 'کُشتی‌گیر زن: پوست گندمی،‏ پوست آبنوسی',
+    '👩🏿‍🫯‍👩🏻' => 'کُشتی‌گیر زن: پوست آبنوسی،‏ پوست سفید',
+    '👩🏿‍🫯‍👩🏼' => 'کُشتی‌گیر زن: پوست آبنوسی،‏ پوست روشن',
+    '👩🏿‍🫯‍👩🏽' => 'کُشتی‌گیر زن: پوست آبنوسی،‏ پوست طلایی',
+    '👩🏿‍🫯‍👩🏾' => 'کُشتی‌گیر زن: پوست آبنوسی،‏ پوست گندمی',
     '👩🏻‍❤‍👨🏻' => 'زوج عاشق: زن،‏ مرد، و پوست سفید',
     '👩🏻‍❤‍👨🏼' => 'زوج عاشق: زن،‏ مرد،‏ پوست سفید، و پوست روشن',
     '👩🏻‍❤‍👨🏽' => 'زوج عاشق: زن،‏ مرد،‏ پوست سفید، و پوست طلایی',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'زوج عاشق: زن،‏ زن،‏ پوست آبنوسی، و پوست طلایی',
     '👩🏿‍❤‍👩🏾' => 'زوج عاشق: زن،‏ زن،‏ پوست آبنوسی، و پوست گندمی',
     '👩🏿‍❤‍👩🏿' => 'زوج عاشق: زن،‏ زن، و پوست آبنوسی',
+    '👩🏻‍🐰‍👩🏼' => 'زنان در پارتی: پوست سفید،‏ پوست روشن',
+    '👩🏻‍🐰‍👩🏽' => 'زنان در پارتی: پوست سفید،‏ پوست طلایی',
+    '👩🏻‍🐰‍👩🏾' => 'زنان در پارتی: پوست سفید،‏ پوست گندمی',
+    '👩🏻‍🐰‍👩🏿' => 'زنان در پارتی: پوست سفید،‏ پوست آبنوسی',
+    '👩🏼‍🐰‍👩🏻' => 'زنان در پارتی: پوست روشن،‏ پوست سفید',
+    '👩🏼‍🐰‍👩🏽' => 'زنان در پارتی: پوست روشن،‏ پوست طلایی',
+    '👩🏼‍🐰‍👩🏾' => 'زنان در پارتی: پوست روشن،‏ پوست گندمی',
+    '👩🏼‍🐰‍👩🏿' => 'زنان در پارتی: پوست روشن،‏ پوست آبنوسی',
+    '👩🏽‍🐰‍👩🏻' => 'زنان در پارتی: پوست طلایی،‏ پوست سفید',
+    '👩🏽‍🐰‍👩🏼' => 'زنان در پارتی: پوست طلایی،‏ پوست روشن',
+    '👩🏽‍🐰‍👩🏾' => 'زنان در پارتی: پوست طلایی،‏ پوست گندمی',
+    '👩🏽‍🐰‍👩🏿' => 'زنان در پارتی: پوست طلایی،‏ پوست آبنوسی',
+    '👩🏾‍🐰‍👩🏻' => 'زنان در پارتی: پوست گندمی،‏ پوست سفید',
+    '👩🏾‍🐰‍👩🏼' => 'زنان در پارتی: پوست گندمی،‏ پوست روشن',
+    '👩🏾‍🐰‍👩🏽' => 'زنان در پارتی: پوست گندمی،‏ پوست طلایی',
+    '👩🏾‍🐰‍👩🏿' => 'زنان در پارتی: پوست گندمی،‏ پوست آبنوسی',
+    '👩🏿‍🐰‍👩🏻' => 'زنان در پارتی: پوست آبنوسی،‏ پوست سفید',
+    '👩🏿‍🐰‍👩🏼' => 'زنان در پارتی: پوست آبنوسی،‏ پوست روشن',
+    '👩🏿‍🐰‍👩🏽' => 'زنان در پارتی: پوست آبنوسی،‏ پوست طلایی',
+    '👩🏿‍🐰‍👩🏾' => 'زنان در پارتی: پوست آبنوسی،‏ پوست گندمی',
     '🧑🏻‍🤝‍🧑🏻' => 'اشخاصی دست در دست هم: پوست سفید',
     '🧑🏻‍🤝‍🧑🏼' => 'اشخاصی دست در دست هم: پوست سفید،‏ پوست روشن',
     '🧑🏻‍🤝‍🧑🏽' => 'اشخاصی دست در دست هم: پوست سفید،‏ پوست طلایی',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'پرچم: اسکاتلند',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'پرچم: ویلز',
     '🧑‍🧑‍🧒‍🧒' => 'خانواده: بزرگسال، بالغ، کودک، فرزند',
-    '🚶🏻‍♀‍➡' => 'زن پیاده‌روی می‌کند به سمت راست',
-    '🚶🏼‍♀‍➡' => 'زن پیاده‌روی می‌کند به سمت راست',
-    '🚶🏽‍♀‍➡' => 'زن پیاده‌روی می‌کند به سمت راست',
-    '🚶🏾‍♀‍➡' => 'زن پیاده‌روی می‌کند به سمت راست',
-    '🚶🏿‍♀‍➡' => 'زن پیاده‌روی می‌کند به سمت راست',
-    '🚶🏻‍♂‍➡' => 'مرد پیاده‌روی می‌کند به سمت راست',
-    '🚶🏼‍♂‍➡' => 'مرد پیاده‌روی می‌کند به سمت راست',
-    '🚶🏽‍♂‍➡' => 'مرد پیاده‌روی می‌کند به سمت راست',
-    '🚶🏾‍♂‍➡' => 'مرد پیاده‌روی می‌کند به سمت راست',
-    '🚶🏿‍♂‍➡' => 'مرد پیاده‌روی می‌کند به سمت راست',
-    '🧎🏻‍♀‍➡' => 'زن زانوزده به سمت راست',
-    '🧎🏼‍♀‍➡' => 'زن زانوزده به سمت راست',
-    '🧎🏽‍♀‍➡' => 'زن زانوزده به سمت راست',
-    '🧎🏾‍♀‍➡' => 'زن زانوزده به سمت راست',
-    '🧎🏿‍♀‍➡' => 'زن زانوزده به سمت راست',
-    '🧎🏻‍♂‍➡' => 'مرد زانوزده به سمت راست',
-    '🧎🏼‍♂‍➡' => 'مرد زانوزده به سمت راست',
-    '🧎🏽‍♂‍➡' => 'مرد زانوزده به سمت راست',
-    '🧎🏾‍♂‍➡' => 'مرد زانوزده به سمت راست',
-    '🧎🏿‍♂‍➡' => 'مرد زانوزده به سمت راست',
-    '🧑🏻‍🦯‍➡' => 'شخصی با عصای راهنما به سمت راست',
-    '🧑🏼‍🦯‍➡' => 'شخصی با عصای راهنما به سمت راست',
-    '🧑🏽‍🦯‍➡' => 'شخصی با عصای راهنما به سمت راست',
-    '🧑🏾‍🦯‍➡' => 'شخصی با عصای راهنما به سمت راست',
-    '🧑🏿‍🦯‍➡' => 'شخصی با عصای راهنما به سمت راست',
-    '👨🏻‍🦯‍➡' => 'مرد با عصای سفید به سمت راست',
-    '👨🏼‍🦯‍➡' => 'مرد با عصای سفید به سمت راست',
-    '👨🏽‍🦯‍➡' => 'مرد با عصای سفید به سمت راست',
-    '👨🏾‍🦯‍➡' => 'مرد با عصای سفید به سمت راست',
-    '👨🏿‍🦯‍➡' => 'مرد با عصای سفید به سمت راست',
-    '👩🏻‍🦯‍➡' => 'زن با عصای سفید به سمت راست',
-    '👩🏼‍🦯‍➡' => 'زن با عصای سفید به سمت راست',
-    '👩🏽‍🦯‍➡' => 'زن با عصای سفید به سمت راست',
-    '👩🏾‍🦯‍➡' => 'زن با عصای سفید به سمت راست',
-    '👩🏿‍🦯‍➡' => 'زن با عصای سفید به سمت راست',
-    '🧑🏻‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری به سمت راست',
-    '🧑🏼‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری به سمت راست',
-    '🧑🏽‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری به سمت راست',
-    '🧑🏾‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری به سمت راست',
-    '🧑🏿‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری به سمت راست',
-    '👨🏻‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی به سمت راست',
-    '👨🏼‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی به سمت راست',
-    '👨🏽‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی به سمت راست',
-    '👨🏾‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی به سمت راست',
-    '👨🏿‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی به سمت راست',
-    '👩🏻‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی به سمت راست',
-    '👩🏼‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی به سمت راست',
-    '👩🏽‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی به سمت راست',
-    '👩🏾‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی به سمت راست',
-    '👩🏿‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی به سمت راست',
-    '🧑🏻‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی به سمت راست',
-    '🧑🏼‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی به سمت راست',
-    '🧑🏽‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی به سمت راست',
-    '🧑🏾‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی به سمت راست',
-    '🧑🏿‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی به سمت راست',
-    '👨🏻‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی به سمت راست',
-    '👨🏼‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی به سمت راست',
-    '👨🏽‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی به سمت راست',
-    '👨🏾‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی به سمت راست',
-    '👨🏿‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی به سمت راست',
-    '👩🏻‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی به سمت راست',
-    '👩🏼‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی به سمت راست',
-    '👩🏽‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی به سمت راست',
-    '👩🏾‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی به سمت راست',
-    '👩🏿‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی به سمت راست',
-    '🏃🏻‍♀‍➡' => 'زن دونده به سمت راست',
-    '🏃🏼‍♀‍➡' => 'زن دونده به سمت راست',
-    '🏃🏽‍♀‍➡' => 'زن دونده به سمت راست',
-    '🏃🏾‍♀‍➡' => 'زن دونده به سمت راست',
-    '🏃🏿‍♀‍➡' => 'زن دونده به سمت راست',
-    '🏃🏻‍♂‍➡' => 'مرد دونده به سمت راست',
-    '🏃🏼‍♂‍➡' => 'مرد دونده به سمت راست',
-    '🏃🏽‍♂‍➡' => 'مرد دونده به سمت راست',
-    '🏃🏾‍♂‍➡' => 'مرد دونده به سمت راست',
-    '🏃🏿‍♂‍➡' => 'مرد دونده به سمت راست',
+    '🚶🏻‍♀‍➡' => 'زن پیاده‌روی می‌کند: پوست سفید،‏ به سمت راست',
+    '🚶🏼‍♀‍➡' => 'زن پیاده‌روی می‌کند: پوست روشن،‏ به سمت راست',
+    '🚶🏽‍♀‍➡' => 'زن پیاده‌روی می‌کند: پوست طلایی،‏ به سمت راست',
+    '🚶🏾‍♀‍➡' => 'زن پیاده‌روی می‌کند: پوست گندمی،‏ به سمت راست',
+    '🚶🏿‍♀‍➡' => 'زن پیاده‌روی می‌کند: پوست آبنوسی،‏ به سمت راست',
+    '🚶🏻‍♂‍➡' => 'مرد پیاده‌روی می‌کند: پوست سفید،‏ به سمت راست',
+    '🚶🏼‍♂‍➡' => 'مرد پیاده‌روی می‌کند: پوست روشن،‏ به سمت راست',
+    '🚶🏽‍♂‍➡' => 'مرد پیاده‌روی می‌کند: پوست طلایی،‏ به سمت راست',
+    '🚶🏾‍♂‍➡' => 'مرد پیاده‌روی می‌کند: پوست گندمی،‏ به سمت راست',
+    '🚶🏿‍♂‍➡' => 'مرد پیاده‌روی می‌کند: پوست آبنوسی،‏ به سمت راست',
+    '🧎🏻‍♀‍➡' => 'زن زانوزده: پوست سفید،‏ به سمت راست',
+    '🧎🏼‍♀‍➡' => 'زن زانوزده: پوست روشن،‏ به سمت راست',
+    '🧎🏽‍♀‍➡' => 'زن زانوزده: پوست طلایی،‏ به سمت راست',
+    '🧎🏾‍♀‍➡' => 'زن زانوزده: پوست گندمی،‏ به سمت راست',
+    '🧎🏿‍♀‍➡' => 'زن زانوزده: پوست آبنوسی،‏ به سمت راست',
+    '🧎🏻‍♂‍➡' => 'مرد زانوزده: پوست سفید،‏ به سمت راست',
+    '🧎🏼‍♂‍➡' => 'مرد زانوزده: پوست روشن،‏ به سمت راست',
+    '🧎🏽‍♂‍➡' => 'مرد زانوزده: پوست طلایی،‏ به سمت راست',
+    '🧎🏾‍♂‍➡' => 'مرد زانوزده: پوست گندمی،‏ به سمت راست',
+    '🧎🏿‍♂‍➡' => 'مرد زانوزده: پوست آبنوسی،‏ به سمت راست',
+    '🧑🏻‍🦯‍➡' => 'شخصی با عصای راهنما: پوست سفید،‏ به سمت راست',
+    '🧑🏼‍🦯‍➡' => 'شخصی با عصای راهنما: پوست روشن،‏ به سمت راست',
+    '🧑🏽‍🦯‍➡' => 'شخصی با عصای راهنما: پوست طلایی،‏ به سمت راست',
+    '🧑🏾‍🦯‍➡' => 'شخصی با عصای راهنما: پوست گندمی،‏ به سمت راست',
+    '🧑🏿‍🦯‍➡' => 'شخصی با عصای راهنما: پوست آبنوسی،‏ به سمت راست',
+    '👨🏻‍🦯‍➡' => 'مرد با عصای سفید: پوست سفید،‏ به سمت راست',
+    '👨🏼‍🦯‍➡' => 'مرد با عصای سفید: پوست روشن،‏ به سمت راست',
+    '👨🏽‍🦯‍➡' => 'مرد با عصای سفید: پوست طلایی،‏ به سمت راست',
+    '👨🏾‍🦯‍➡' => 'مرد با عصای سفید: پوست گندمی،‏ به سمت راست',
+    '👨🏿‍🦯‍➡' => 'مرد با عصای سفید: پوست آبنوسی،‏ به سمت راست',
+    '👩🏻‍🦯‍➡' => 'زن با عصای سفید: پوست سفید،‏ به سمت راست',
+    '👩🏼‍🦯‍➡' => 'زن با عصای سفید: پوست روشن،‏ به سمت راست',
+    '👩🏽‍🦯‍➡' => 'زن با عصای سفید: پوست طلایی،‏ به سمت راست',
+    '👩🏾‍🦯‍➡' => 'زن با عصای سفید: پوست گندمی،‏ به سمت راست',
+    '👩🏿‍🦯‍➡' => 'زن با عصای سفید: پوست آبنوسی،‏ به سمت راست',
+    '🧑🏻‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری: پوست سفید،‏ به سمت راست',
+    '🧑🏼‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری: پوست روشن،‏ به سمت راست',
+    '🧑🏽‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری: پوست طلایی،‏ به سمت راست',
+    '🧑🏾‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری: پوست گندمی،‏ به سمت راست',
+    '🧑🏿‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری: پوست آبنوسی،‏ به سمت راست',
+    '👨🏻‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی: پوست سفید،‏ به سمت راست',
+    '👨🏼‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی: پوست روشن،‏ به سمت راست',
+    '👨🏽‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی: پوست طلایی،‏ به سمت راست',
+    '👨🏾‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی: پوست گندمی،‏ به سمت راست',
+    '👨🏿‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی: پوست آبنوسی،‏ به سمت راست',
+    '👩🏻‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی: پوست سفید،‏ به سمت راست',
+    '👩🏼‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی: پوست روشن،‏ به سمت راست',
+    '👩🏽‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی: پوست طلایی،‏ به سمت راست',
+    '👩🏾‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی: پوست گندمی،‏ به سمت راست',
+    '👩🏿‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی: پوست آبنوسی،‏ به سمت راست',
+    '🧑🏻‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی: پوست سفید،‏ به سمت راست',
+    '🧑🏼‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی: پوست روشن،‏ به سمت راست',
+    '🧑🏽‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی: پوست طلایی،‏ به سمت راست',
+    '🧑🏾‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی: پوست گندمی،‏ به سمت راست',
+    '🧑🏿‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی: پوست آبنوسی،‏ به سمت راست',
+    '👨🏻‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی: پوست سفید،‏ به سمت راست',
+    '👨🏼‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی: پوست روشن،‏ به سمت راست',
+    '👨🏽‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی: پوست طلایی،‏ به سمت راست',
+    '👨🏾‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی: پوست گندمی،‏ به سمت راست',
+    '👨🏿‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی: پوست آبنوسی،‏ به سمت راست',
+    '👩🏻‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی: پوست سفید،‏ به سمت راست',
+    '👩🏼‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی: پوست روشن،‏ به سمت راست',
+    '👩🏽‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی: پوست طلایی،‏ به سمت راست',
+    '👩🏾‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی: پوست گندمی،‏ به سمت راست',
+    '👩🏿‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی: پوست آبنوسی،‏ به سمت راست',
+    '🏃🏻‍♀‍➡' => 'زن دونده: پوست سفید،‏ به سمت راست',
+    '🏃🏼‍♀‍➡' => 'زن دونده: پوست روشن،‏ به سمت راست',
+    '🏃🏽‍♀‍➡' => 'زن دونده: پوست طلایی،‏ به سمت راست',
+    '🏃🏾‍♀‍➡' => 'زن دونده: پوست گندمی،‏ به سمت راست',
+    '🏃🏿‍♀‍➡' => 'زن دونده: پوست آبنوسی،‏ به سمت راست',
+    '🏃🏻‍♂‍➡' => 'مرد دونده: پوست سفید،‏ به سمت راست',
+    '🏃🏼‍♂‍➡' => 'مرد دونده: پوست روشن،‏ به سمت راست',
+    '🏃🏽‍♂‍➡' => 'مرد دونده: پوست طلایی،‏ به سمت راست',
+    '🏃🏾‍♂‍➡' => 'مرد دونده: پوست گندمی،‏ به سمت راست',
+    '🏃🏿‍♂‍➡' => 'مرد دونده: پوست آبنوسی،‏ به سمت راست',
     '🫱🏻‍🫲🏼' => 'دست دادن: پوست سفید،‏ پوست روشن',
     '🫱🏻‍🫲🏽' => 'دست دادن: پوست سفید،‏ پوست طلایی',
     '🫱🏻‍🫲🏾' => 'دست دادن: پوست سفید،‏ پوست گندمی',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'دست دادن: پوست آبنوسی،‏ پوست روشن',
     '🫱🏿‍🫲🏽' => 'دست دادن: پوست آبنوسی،‏ پوست طلایی',
     '🫱🏿‍🫲🏾' => 'دست دادن: پوست آبنوسی،‏ پوست گندمی',
-    '🚶‍♀‍➡' => 'زن پیاده‌روی می‌کند به سمت راست',
-    '🚶‍♂‍➡' => 'مرد پیاده‌روی می‌کند به سمت راست',
-    '🧎‍♀‍➡' => 'زن زانوزده به سمت راست',
-    '🧎‍♂‍➡' => 'مرد زانوزده به سمت راست',
-    '🧑‍🦯‍➡' => 'شخصی با عصای راهنما به سمت راست',
-    '👨‍🦯‍➡' => 'مرد با عصای سفید به سمت راست',
-    '👩‍🦯‍➡' => 'زن با عصای سفید به سمت راست',
-    '🧑‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری به سمت راست',
-    '👨‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی به سمت راست',
-    '👩‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی به سمت راست',
-    '🧑‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی به سمت راست',
-    '👨‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی به سمت راست',
-    '👩‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی به سمت راست',
-    '🏃‍♀‍➡' => 'زن دونده به سمت راست',
-    '🏃‍♂‍➡' => 'مرد دونده به سمت راست',
+    '🚶‍♀‍➡' => 'زن پیاده‌روی می‌کند: به سمت راست',
+    '🚶‍♂‍➡' => 'مرد پیاده‌روی می‌کند: به سمت راست',
+    '🧎‍♀‍➡' => 'زن زانوزده: به سمت راست',
+    '🧎‍♂‍➡' => 'مرد زانوزده: به سمت راست',
+    '🧑‍🦯‍➡' => 'شخصی با عصای راهنما: به سمت راست',
+    '👨‍🦯‍➡' => 'مرد با عصای سفید: به سمت راست',
+    '👩‍🦯‍➡' => 'زن با عصای سفید: به سمت راست',
+    '🧑‍🦼‍➡' => 'شخصی با صندلی چرخ‌دار موتوری: به سمت راست',
+    '👨‍🦼‍➡' => 'مرد در صندلی چرخ‌دار برقی: به سمت راست',
+    '👩‍🦼‍➡' => 'زن در صندلی چرخ‌دار برقی: به سمت راست',
+    '🧑‍🦽‍➡' => 'شخصی با صندلی چرخ‌دار دستی: به سمت راست',
+    '👨‍🦽‍➡' => 'مرد در صندلی چرخ‌دار دستی: به سمت راست',
+    '👩‍🦽‍➡' => 'زن در صندلی چرخ‌دار دستی: به سمت راست',
+    '🏃‍♀‍➡' => 'زن دونده: به سمت راست',
+    '🏃‍♂‍➡' => 'مرد دونده: به سمت راست',
     '👩‍❤‍👨' => 'زوج عاشق: زن،‏ مرد',
     '👨‍❤‍👨' => 'زوج عاشق: مرد،‏ مرد',
     '👩‍❤‍👩' => 'زوج عاشق: زن،‏ زن',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'شخص: پوست طلایی،‏ تاس',
     '🧑🏾‍🦲' => 'شخص: پوست گندمی،‏ تاس',
     '🧑🏿‍🦲' => 'شخص: پوست آبنوسی،‏ تاس',
+    '🧑🏻‍🩰' => 'رقصنده باله: پوست سفید',
+    '🧑🏼‍🩰' => 'رقصنده باله: پوست روشن',
+    '🧑🏽‍🩰' => 'رقصنده باله: پوست طلایی',
+    '🧑🏾‍🩰' => 'رقصنده باله: پوست گندمی',
+    '🧑🏿‍🩰' => 'رقصنده باله: پوست آبنوسی',
     '🧔🏻‍♂' => 'مرد: پوست سفید،‏ ریش',
     '🧔🏼‍♂' => 'مرد: پوست روشن،‏ ریش',
     '🧔🏽‍♂' => 'مرد: پوست طلایی،‏ ریش',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'زن پیاده‌روی می‌کند: پوست طلایی',
     '🚶🏾‍♀' => 'زن پیاده‌روی می‌کند: پوست گندمی',
     '🚶🏿‍♀' => 'زن پیاده‌روی می‌کند: پوست آبنوسی',
-    '🚶🏻‍➡' => 'عابر پیاده به سمت راست',
-    '🚶🏼‍➡' => 'عابر پیاده به سمت راست',
-    '🚶🏽‍➡' => 'عابر پیاده به سمت راست',
-    '🚶🏾‍➡' => 'عابر پیاده به سمت راست',
-    '🚶🏿‍➡' => 'عابر پیاده به سمت راست',
+    '🚶🏻‍➡' => 'عابر پیاده: پوست سفید،‏ به سمت راست',
+    '🚶🏼‍➡' => 'عابر پیاده: پوست روشن،‏ به سمت راست',
+    '🚶🏽‍➡' => 'عابر پیاده: پوست طلایی،‏ به سمت راست',
+    '🚶🏾‍➡' => 'عابر پیاده: پوست گندمی،‏ به سمت راست',
+    '🚶🏿‍➡' => 'عابر پیاده: پوست آبنوسی،‏ به سمت راست',
     '🧍🏻‍♂' => 'مرد ایستاده: پوست سفید',
     '🧍🏼‍♂' => 'مرد ایستاده: پوست روشن',
     '🧍🏽‍♂' => 'مرد ایستاده: پوست طلایی',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'زن زانوزده: پوست طلایی',
     '🧎🏾‍♀' => 'زن زانوزده: پوست گندمی',
     '🧎🏿‍♀' => 'زن زانوزده: پوست آبنوسی',
-    '🧎🏻‍➡' => 'آدم زانوزده به سمت راست',
-    '🧎🏼‍➡' => 'آدم زانوزده به سمت راست',
-    '🧎🏽‍➡' => 'آدم زانوزده به سمت راست',
-    '🧎🏾‍➡' => 'آدم زانوزده به سمت راست',
-    '🧎🏿‍➡' => 'آدم زانوزده به سمت راست',
+    '🧎🏻‍➡' => 'آدم زانوزده: پوست سفید،‏ به سمت راست',
+    '🧎🏼‍➡' => 'آدم زانوزده: پوست روشن،‏ به سمت راست',
+    '🧎🏽‍➡' => 'آدم زانوزده: پوست طلایی،‏ به سمت راست',
+    '🧎🏾‍➡' => 'آدم زانوزده: پوست گندمی،‏ به سمت راست',
+    '🧎🏿‍➡' => 'آدم زانوزده: پوست آبنوسی،‏ به سمت راست',
     '🧑🏻‍🦯' => 'شخصی با عصای راهنما: پوست سفید',
     '🧑🏼‍🦯' => 'شخصی با عصای راهنما: پوست روشن',
     '🧑🏽‍🦯' => 'شخصی با عصای راهنما: پوست طلایی',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'زن دونده: پوست طلایی',
     '🏃🏾‍♀' => 'زن دونده: پوست گندمی',
     '🏃🏿‍♀' => 'زن دونده: پوست آبنوسی',
-    '🏃🏻‍➡' => 'دونده به سمت راست',
-    '🏃🏼‍➡' => 'دونده به سمت راست',
-    '🏃🏽‍➡' => 'دونده به سمت راست',
-    '🏃🏾‍➡' => 'دونده به سمت راست',
-    '🏃🏿‍➡' => 'دونده به سمت راست',
+    '🏃🏻‍➡' => 'دونده: پوست سفید،‏ به سمت راست',
+    '🏃🏼‍➡' => 'دونده: پوست روشن،‏ به سمت راست',
+    '🏃🏽‍➡' => 'دونده: پوست طلایی،‏ به سمت راست',
+    '🏃🏾‍➡' => 'دونده: پوست گندمی،‏ به سمت راست',
+    '🏃🏿‍➡' => 'دونده: پوست آبنوسی،‏ به سمت راست',
+    '👯🏻‍♀' => 'زنان در پارتی: پوست سفید',
+    '👯🏼‍♀' => 'زنان در پارتی: پوست روشن',
+    '👯🏽‍♀' => 'زنان در پارتی: پوست طلایی',
+    '👯🏾‍♀' => 'زنان در پارتی: پوست گندمی',
+    '👯🏿‍♀' => 'زنان در پارتی: پوست آبنوسی',
+    '👯🏻‍♂' => 'مردان در پارتی: پوست سفید',
+    '👯🏼‍♂' => 'مردان در پارتی: پوست روشن',
+    '👯🏽‍♂' => 'مردان در پارتی: پوست طلایی',
+    '👯🏾‍♂' => 'مردان در پارتی: پوست گندمی',
+    '👯🏿‍♂' => 'مردان در پارتی: پوست آبنوسی',
     '🧖🏻‍♂' => 'مرد در حمام بخار: پوست سفید',
     '🧖🏼‍♂' => 'مرد در حمام بخار: پوست روشن',
     '🧖🏽‍♂' => 'مرد در حمام بخار: پوست طلایی',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'زنِ چرخ‌وفلک‌زن: پوست طلایی',
     '🤸🏾‍♀' => 'زنِ چرخ‌وفلک‌زن: پوست گندمی',
     '🤸🏿‍♀' => 'زنِ چرخ‌وفلک‌زن: پوست آبنوسی',
+    '🤼🏻‍♀' => 'کُشتی‌گیر زن: پوست سفید',
+    '🤼🏼‍♀' => 'کُشتی‌گیر زن: پوست روشن',
+    '🤼🏽‍♀' => 'کُشتی‌گیر زن: پوست طلایی',
+    '🤼🏾‍♀' => 'کُشتی‌گیر زن: پوست گندمی',
+    '🤼🏿‍♀' => 'کُشتی‌گیر زن: پوست آبنوسی',
+    '🤼🏻‍♂' => 'کُشتی‌گیر مرد: پوست سفید',
+    '🤼🏼‍♂' => 'کُشتی‌گیر مرد: پوست روشن',
+    '🤼🏽‍♂' => 'کُشتی‌گیر مرد: پوست طلایی',
+    '🤼🏾‍♂' => 'کُشتی‌گیر مرد: پوست گندمی',
+    '🤼🏿‍♂' => 'کُشتی‌گیر مرد: پوست آبنوسی',
     '🤽🏻‍♂' => 'واترپلو مردان: پوست سفید',
     '🤽🏼‍♂' => 'واترپلو مردان: پوست روشن',
     '🤽🏽‍♂' => 'واترپلو مردان: پوست طلایی',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'زن: موفرفری',
     '👩‍🦳' => 'زن: موسفید',
     '👩‍🦲' => 'زن: تاس',
-    '🚶‍➡' => 'عابر پیاده به سمت راست',
-    '🧎‍➡' => 'آدم زانوزده به سمت راست',
-    '🏃‍➡' => 'دونده به سمت راست',
+    '🚶‍➡' => 'عابر پیاده: به سمت راست',
+    '🧎‍➡' => 'آدم زانوزده: به سمت راست',
+    '🏃‍➡' => 'دونده: به سمت راست',
     '👨‍👦' => 'خانواده: مرد،‏ پسر',
     '👨‍👧' => 'خانواده: مرد،‏ دختر',
     '👩‍👦' => 'خانواده: زن،‏ پسر',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'زن در صندلی چرخ‌دار دستی',
     '🏃‍♂' => 'مرد دونده',
     '🏃‍♀' => 'زن دونده',
+    '🧑‍🩰' => 'رقصنده باله',
     '👯‍♂' => 'مردان در پارتی',
     '👯‍♀' => 'زنان در پارتی',
     '🧖‍♂' => 'مرد در حمام بخار',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'پرواز مرد با لباس رسمی: پوست طلایی',
     '🕴🏾' => 'پرواز مرد با لباس رسمی: پوست گندمی',
     '🕴🏿' => 'پرواز مرد با لباس رسمی: پوست آبنوسی',
+    '👯🏻' => 'رقص: پوست سفید',
+    '👯🏼' => 'رقص: پوست روشن',
+    '👯🏽' => 'رقص: پوست طلایی',
+    '👯🏾' => 'رقص: پوست گندمی',
+    '👯🏿' => 'رقص: پوست آبنوسی',
     '🧖🏻' => 'فردی در حمام بخار: پوست سفید',
     '🧖🏼' => 'فردی در حمام بخار: پوست روشن',
     '🧖🏽' => 'فردی در حمام بخار: پوست طلایی',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'حرکت چرخ و فلک: پوست طلایی',
     '🤸🏾' => 'حرکت چرخ و فلک: پوست گندمی',
     '🤸🏿' => 'حرکت چرخ و فلک: پوست آبنوسی',
+    '🤼🏻' => 'کُشتی‌گیران: پوست سفید',
+    '🤼🏼' => 'کُشتی‌گیران: پوست روشن',
+    '🤼🏽' => 'کُشتی‌گیران: پوست طلایی',
+    '🤼🏾' => 'کُشتی‌گیران: پوست گندمی',
+    '🤼🏿' => 'کُشتی‌گیران: پوست آبنوسی',
     '🤽🏻' => 'واترپلو: پوست سفید',
     '🤽🏼' => 'واترپلو: پوست روشن',
     '🤽🏽' => 'واترپلو: پوست طلایی',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'پرچم: چین',
     '🇨🇴' => 'پرچم: کلمبیا',
     '🇨🇵' => 'پرچم: جزایر کلیپرتون',
+    '🇨🇶' => 'پرچم: سارک',
     '🇨🇷' => 'پرچم: کاستاریکا',
     '🇨🇺' => 'پرچم: کوبا',
     '🇨🇻' => 'پرچم: کیپ‌ورد',
@@ -2390,13 +2547,6 @@
     '🏽' => 'پوست طلایی',
     '🏾' => 'پوست گندمی',
     '🏿' => 'پوست آبنوسی',
-    '🪉' => 'چنگ',
-    '🪏' => 'بیل',
-    '🪾' => 'درخت بدون برگ',
-    '🫆' => 'اثر انگشت',
-    '🫜' => 'سبزیجات ریشه‌ای',
-    '🫟' => 'لکه رنگ',
-    '🫩' => 'چهره با چشمان پف‌آلود',
     '😀' => 'خنده',
     '😃' => 'صورت خندان',
     '😄' => 'خندان',
@@ -2450,6 +2600,7 @@
     '😪' => 'خواب‌آلود',
     '🤤' => 'آب افتادن دهان',
     '😴' => 'خوابیده',
+    '🫩' => 'چهره با چشمان پف‌آلود',
     '😷' => 'صورت با ماسک پزشکی',
     '🤒' => 'تب‌دار',
     '🤕' => 'سر باندپیچی‌شده',
@@ -2476,6 +2627,7 @@
     '😯' => 'مات و مبهوت',
     '😲' => 'بهت‌زده',
     '😳' => 'سرخ‌شده',
+    '🫪' => 'صورت درهم‌ریخته',
     '🥺' => 'التماس‌کنان',
     '🥹' => 'چهره با چشمان پراشک',
     '😦' => 'چهره درهم‌کشیده با دهان باز',
@@ -2547,6 +2699,7 @@
     '💋' => 'بوسه ماتیکی',
     '💯' => '۱۰۰ امتیاز',
     '💢' => 'نماد عصبانیت',
+    '🫯' => 'گردوخاک جنگ و جدال',
     '💥' => 'برخورد',
     '💫' => 'سرگیجه',
     '💦' => 'قطره‌های عرق',
@@ -2670,6 +2823,7 @@
     '🧞' => 'جن',
     '🧟' => 'مرده متحرک',
     '🧌' => 'غول',
+    '🫈' => 'جانور پشمالو',
     '💆' => 'ماساژ صورت',
     '💇' => 'آرایشگاه',
     '🚶' => 'عابر پیاده',
@@ -2713,6 +2867,7 @@
     '🫂' => 'درآغوش گرفتن',
     '👪' => 'خانواده',
     '👣' => 'رد پا',
+    '🫆' => 'اثر انگشت',
     '🦰' => 'موقرمز',
     '🦱' => 'موفرفری',
     '🦳' => 'موسفید',
@@ -2812,6 +2967,7 @@
     '🐳' => 'نهنگ در حال آب‌فشانی',
     '🐋' => 'نهنگ',
     '🐬' => 'دلفین',
+    '🫍' => 'نهنگ قاتل',
     '🦭' => 'فُک',
     '🐟' => 'ماهی',
     '🐠' => 'ماهی استوایی',
@@ -2821,6 +2977,11 @@
     '🐚' => 'صدف مارپیچی',
     '🪸' => 'مرجان',
     '🪼' => 'عروس دریایی',
+    '🦀' => 'خرچنگ',
+    '🦞' => 'لابستر',
+    '🦐' => 'میگو',
+    '🦑' => 'ماهی مرکب',
+    '🦪' => 'صدف خوراکی',
     '🐌' => 'حلزون',
     '🦋' => 'پروانه',
     '🐛' => 'حشره',
@@ -2865,6 +3026,7 @@
     '🪹' => 'آشیانه خالی',
     '🪺' => 'آشیانه با تخم',
     '🍄' => 'قارچ',
+    '🪾' => 'درخت بدون برگ',
     '🍇' => 'انگور',
     '🍈' => 'طالبی',
     '🍉' => 'هندوانه',
@@ -2901,6 +3063,7 @@
     '🌰' => 'فندق',
     '🫚' => 'زنجبیل',
     '🫛' => 'نخودفرنگی',
+    '🫜' => 'سبزیجات ریشه‌ای',
     '🍞' => 'نان',
     '🥐' => 'کرواسان',
     '🥖' => 'نان باگت',
@@ -2952,11 +3115,6 @@
     '🥟' => 'کوفته',
     '🥠' => 'شیرینی شانس',
     '🥡' => 'جعبه بردنی',
-    '🦀' => 'خرچنگ',
-    '🦞' => 'لابستر',
-    '🦐' => 'میگو',
-    '🦑' => 'ماهی مرکب',
-    '🦪' => 'صدف خوراکی',
     '🍦' => 'بستنی قیفی',
     '🍧' => 'یخ در بهشت',
     '🍨' => 'بستنی',
@@ -3007,6 +3165,7 @@
     '🧭' => 'قطب‌نما',
     '🏔' => 'قلهٔ برفی',
     '⛰' => 'کوه',
+    '🛘' => 'ریزش کوه',
     '🌋' => 'آتشفشان',
     '🗻' => 'کوه فوجی',
     '🏕' => 'چادرزنی',
@@ -3367,16 +3526,18 @@
     '🎧' => 'هدفون',
     '📻' => 'رادیو',
     '🎷' => 'ساکسیفون',
+    '🎺' => 'ترومپت',
+    '🪊' => 'شیپور',
     '🪗' => 'آکوردئون',
     '🎸' => 'گیتار',
     '🎹' => 'کیبورد موسیقی',
-    '🎺' => 'ترومپت',
     '🎻' => 'ویولن',
     '🪕' => 'بانجو',
     '🥁' => 'طبل',
     '🪘' => 'طبل بلند',
     '🪇' => 'ساز جغجغه‌ای',
     '🪈' => 'فلوت',
+    '🪉' => 'چنگ',
     '📱' => 'تلفن همراه',
     '📲' => 'تلفن همراه با پیکان',
     '☎' => 'تلفن',
@@ -3430,8 +3591,9 @@
     '📑' => 'برچسب‌های نشانه‌گذاری',
     '🔖' => 'نشان‌گذار کتاب',
     '🏷' => 'برچسب',
-    '💰' => 'کیسهٔ پول',
     '🪙' => 'سکه',
+    '💰' => 'کیسهٔ پول',
+    '🪎' => 'صندوق جواهرات',
     '💴' => 'اسکناس ین',
     '💵' => 'اسکناس دلار',
     '💶' => 'اسکناس یورو',
@@ -3514,6 +3676,7 @@
     '🧰' => 'جعبه‌ابزار',
     '🧲' => 'آهن‌ربا',
     '🪜' => 'نردبان',
+    '🪏' => 'بیل',
     '⚗' => 'انبیق',
     '🧪' => 'لولهٔ آزمایشگاه',
     '🧫' => 'ظرف کشت',
@@ -3697,6 +3860,7 @@
     '✴' => 'ستاره هشت‌پر',
     '❇' => 'جرقه',
     '™' => 'نماد بازرگانی',
+    '🫟' => 'لکه رنگ',
     '🔠' => 'ورودی حروف بزرگ',
     '🔡' => 'ورودی حروف کوچک',
     '🔢' => 'ورودی عددی',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fil.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fil.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fil.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fil.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'maghahalikan: babae, babae, dark na kulay ng balat, katamtamang kulay ng balat',
     '👩🏿‍❤‍💋‍👩🏾' => 'maghahalikan: babae, babae, dark na kulay ng balat, katamtamang dark na kulay ng balat',
     '👩🏿‍❤‍💋‍👩🏿' => 'maghahalikan: babae, babae, dark na kulay ng balat',
+    '🧑🏻‍🫯‍🧑🏼' => 'mga taong nagre-wrestling: light na kulay ng balat, katamtamang light na kulay ng balat',
+    '🧑🏻‍🫯‍🧑🏽' => 'mga taong nagre-wrestling: light na kulay ng balat, katamtamang kulay ng balat',
+    '🧑🏻‍🫯‍🧑🏾' => 'mga taong nagre-wrestling: light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '🧑🏻‍🫯‍🧑🏿' => 'mga taong nagre-wrestling: light na kulay ng balat, dark na kulay ng balat',
+    '🧑🏼‍🫯‍🧑🏻' => 'mga taong nagre-wrestling: katamtamang light na kulay ng balat, light na kulay ng balat',
+    '🧑🏼‍🫯‍🧑🏽' => 'mga taong nagre-wrestling: katamtamang light na kulay ng balat, katamtamang kulay ng balat',
+    '🧑🏼‍🫯‍🧑🏾' => 'mga taong nagre-wrestling: katamtamang light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '🧑🏼‍🫯‍🧑🏿' => 'mga taong nagre-wrestling: katamtamang light na kulay ng balat, dark na kulay ng balat',
+    '🧑🏽‍🫯‍🧑🏻' => 'mga taong nagre-wrestling: katamtamang kulay ng balat, light na kulay ng balat',
+    '🧑🏽‍🫯‍🧑🏼' => 'mga taong nagre-wrestling: katamtamang kulay ng balat, katamtamang light na kulay ng balat',
+    '🧑🏽‍🫯‍🧑🏾' => 'mga taong nagre-wrestling: katamtamang kulay ng balat, katamtamang dark na kulay ng balat',
+    '🧑🏽‍🫯‍🧑🏿' => 'mga taong nagre-wrestling: katamtamang kulay ng balat, dark na kulay ng balat',
+    '🧑🏾‍🫯‍🧑🏻' => 'mga taong nagre-wrestling: katamtamang dark na kulay ng balat, light na kulay ng balat',
+    '🧑🏾‍🫯‍🧑🏼' => 'mga taong nagre-wrestling: katamtamang dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '🧑🏾‍🫯‍🧑🏽' => 'mga taong nagre-wrestling: katamtamang dark na kulay ng balat, katamtamang kulay ng balat',
+    '🧑🏾‍🫯‍🧑🏿' => 'mga taong nagre-wrestling: katamtamang dark na kulay ng balat, dark na kulay ng balat',
+    '🧑🏿‍🫯‍🧑🏻' => 'mga taong nagre-wrestling: dark na kulay ng balat, light na kulay ng balat',
+    '🧑🏿‍🫯‍🧑🏼' => 'mga taong nagre-wrestling: dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '🧑🏿‍🫯‍🧑🏽' => 'mga taong nagre-wrestling: dark na kulay ng balat, katamtamang kulay ng balat',
+    '🧑🏿‍🫯‍🧑🏾' => 'mga taong nagre-wrestling: dark na kulay ng balat, katamtamang dark na kulay ng balat',
     '🧑🏻‍❤‍🧑🏼' => 'magkapareha na may puso: tao, tao, light na kulay ng balat, katamtamang light na kulay ng balat',
     '🧑🏻‍❤‍🧑🏽' => 'magkapareha na may puso: tao, tao, light na kulay ng balat, katamtamang kulay ng balat',
     '🧑🏻‍❤‍🧑🏾' => 'magkapareha na may puso: tao, tao, light na kulay ng balat, katamtamang dark na kulay ng balat',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'magkapareha na may puso: tao, tao, dark na kulay ng balat, katamtamang light na kulay ng balat',
     '🧑🏿‍❤‍🧑🏽' => 'magkapareha na may puso: tao, tao, dark na kulay ng balat, katamtamang kulay ng balat',
     '🧑🏿‍❤‍🧑🏾' => 'magkapareha na may puso: tao, tao, dark na kulay ng balat, katamtamang dark na kulay ng balat',
+    '🧑🏻‍🐰‍🧑🏼' => 'mga babaeng may tainga ng kuneho: light na kulay ng balat, katamtamang light na kulay ng balat',
+    '🧑🏻‍🐰‍🧑🏽' => 'mga babaeng may tainga ng kuneho: light na kulay ng balat, katamtamang kulay ng balat',
+    '🧑🏻‍🐰‍🧑🏾' => 'mga babaeng may tainga ng kuneho: light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '🧑🏻‍🐰‍🧑🏿' => 'mga babaeng may tainga ng kuneho: light na kulay ng balat, dark na kulay ng balat',
+    '🧑🏼‍🐰‍🧑🏻' => 'mga babaeng may tainga ng kuneho: katamtamang light na kulay ng balat, light na kulay ng balat',
+    '🧑🏼‍🐰‍🧑🏽' => 'mga babaeng may tainga ng kuneho: katamtamang light na kulay ng balat, katamtamang kulay ng balat',
+    '🧑🏼‍🐰‍🧑🏾' => 'mga babaeng may tainga ng kuneho: katamtamang light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '🧑🏼‍🐰‍🧑🏿' => 'mga babaeng may tainga ng kuneho: katamtamang light na kulay ng balat, dark na kulay ng balat',
+    '🧑🏽‍🐰‍🧑🏻' => 'mga babaeng may tainga ng kuneho: katamtamang kulay ng balat, light na kulay ng balat',
+    '🧑🏽‍🐰‍🧑🏼' => 'mga babaeng may tainga ng kuneho: katamtamang kulay ng balat, katamtamang light na kulay ng balat',
+    '🧑🏽‍🐰‍🧑🏾' => 'mga babaeng may tainga ng kuneho: katamtamang kulay ng balat, katamtamang dark na kulay ng balat',
+    '🧑🏽‍🐰‍🧑🏿' => 'mga babaeng may tainga ng kuneho: katamtamang kulay ng balat, dark na kulay ng balat',
+    '🧑🏾‍🐰‍🧑🏻' => 'mga babaeng may tainga ng kuneho: katamtamang dark na kulay ng balat, light na kulay ng balat',
+    '🧑🏾‍🐰‍🧑🏼' => 'mga babaeng may tainga ng kuneho: katamtamang dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '🧑🏾‍🐰‍🧑🏽' => 'mga babaeng may tainga ng kuneho: katamtamang dark na kulay ng balat, katamtamang kulay ng balat',
+    '🧑🏾‍🐰‍🧑🏿' => 'mga babaeng may tainga ng kuneho: katamtamang dark na kulay ng balat, dark na kulay ng balat',
+    '🧑🏿‍🐰‍🧑🏻' => 'mga babaeng may tainga ng kuneho: dark na kulay ng balat, light na kulay ng balat',
+    '🧑🏿‍🐰‍🧑🏼' => 'mga babaeng may tainga ng kuneho: dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '🧑🏿‍🐰‍🧑🏽' => 'mga babaeng may tainga ng kuneho: dark na kulay ng balat, katamtamang kulay ng balat',
+    '🧑🏿‍🐰‍🧑🏾' => 'mga babaeng may tainga ng kuneho: dark na kulay ng balat, katamtamang dark na kulay ng balat',
+    '👨🏻‍🫯‍👨🏼' => 'lalaking nakikipagbuno: light na kulay ng balat, katamtamang light na kulay ng balat',
+    '👨🏻‍🫯‍👨🏽' => 'lalaking nakikipagbuno: light na kulay ng balat, katamtamang kulay ng balat',
+    '👨🏻‍🫯‍👨🏾' => 'lalaking nakikipagbuno: light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '👨🏻‍🫯‍👨🏿' => 'lalaking nakikipagbuno: light na kulay ng balat, dark na kulay ng balat',
+    '👨🏼‍🫯‍👨🏻' => 'lalaking nakikipagbuno: katamtamang light na kulay ng balat, light na kulay ng balat',
+    '👨🏼‍🫯‍👨🏽' => 'lalaking nakikipagbuno: katamtamang light na kulay ng balat, katamtamang kulay ng balat',
+    '👨🏼‍🫯‍👨🏾' => 'lalaking nakikipagbuno: katamtamang light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '👨🏼‍🫯‍👨🏿' => 'lalaking nakikipagbuno: katamtamang light na kulay ng balat, dark na kulay ng balat',
+    '👨🏽‍🫯‍👨🏻' => 'lalaking nakikipagbuno: katamtamang kulay ng balat, light na kulay ng balat',
+    '👨🏽‍🫯‍👨🏼' => 'lalaking nakikipagbuno: katamtamang kulay ng balat, katamtamang light na kulay ng balat',
+    '👨🏽‍🫯‍👨🏾' => 'lalaking nakikipagbuno: katamtamang kulay ng balat, katamtamang dark na kulay ng balat',
+    '👨🏽‍🫯‍👨🏿' => 'lalaking nakikipagbuno: katamtamang kulay ng balat, dark na kulay ng balat',
+    '👨🏾‍🫯‍👨🏻' => 'lalaking nakikipagbuno: katamtamang dark na kulay ng balat, light na kulay ng balat',
+    '👨🏾‍🫯‍👨🏼' => 'lalaking nakikipagbuno: katamtamang dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '👨🏾‍🫯‍👨🏽' => 'lalaking nakikipagbuno: katamtamang dark na kulay ng balat, katamtamang kulay ng balat',
+    '👨🏾‍🫯‍👨🏿' => 'lalaking nakikipagbuno: katamtamang dark na kulay ng balat, dark na kulay ng balat',
+    '👨🏿‍🫯‍👨🏻' => 'lalaking nakikipagbuno: dark na kulay ng balat, light na kulay ng balat',
+    '👨🏿‍🫯‍👨🏼' => 'lalaking nakikipagbuno: dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '👨🏿‍🫯‍👨🏽' => 'lalaking nakikipagbuno: dark na kulay ng balat, katamtamang kulay ng balat',
+    '👨🏿‍🫯‍👨🏾' => 'lalaking nakikipagbuno: dark na kulay ng balat, katamtamang dark na kulay ng balat',
     '👨🏻‍❤‍👨🏻' => 'magkapareha na may puso: lalaki, lalaki, light na kulay ng balat',
     '👨🏻‍❤‍👨🏼' => 'magkapareha na may puso: lalaki, lalaki, light na kulay ng balat, katamtamang light na kulay ng balat',
     '👨🏻‍❤‍👨🏽' => 'magkapareha na may puso: lalaki, lalaki, light na kulay ng balat, katamtamang kulay ng balat',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'magkapareha na may puso: lalaki, lalaki, dark na kulay ng balat, katamtamang kulay ng balat',
     '👨🏿‍❤‍👨🏾' => 'magkapareha na may puso: lalaki, lalaki, dark na kulay ng balat, katamtamang dark na kulay ng balat',
     '👨🏿‍❤‍👨🏿' => 'magkapareha na may puso: lalaki, lalaki, dark na kulay ng balat',
+    '👨🏻‍🐰‍👨🏼' => 'mga lalaking may tainga ng kuneho: light na kulay ng balat, katamtamang light na kulay ng balat',
+    '👨🏻‍🐰‍👨🏽' => 'mga lalaking may tainga ng kuneho: light na kulay ng balat, katamtamang kulay ng balat',
+    '👨🏻‍🐰‍👨🏾' => 'mga lalaking may tainga ng kuneho: light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '👨🏻‍🐰‍👨🏿' => 'mga lalaking may tainga ng kuneho: light na kulay ng balat, dark na kulay ng balat',
+    '👨🏼‍🐰‍👨🏻' => 'mga lalaking may tainga ng kuneho: katamtamang light na kulay ng balat, light na kulay ng balat',
+    '👨🏼‍🐰‍👨🏽' => 'mga lalaking may tainga ng kuneho: katamtamang light na kulay ng balat, katamtamang kulay ng balat',
+    '👨🏼‍🐰‍👨🏾' => 'mga lalaking may tainga ng kuneho: katamtamang light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '👨🏼‍🐰‍👨🏿' => 'mga lalaking may tainga ng kuneho: katamtamang light na kulay ng balat, dark na kulay ng balat',
+    '👨🏽‍🐰‍👨🏻' => 'mga lalaking may tainga ng kuneho: katamtamang kulay ng balat, light na kulay ng balat',
+    '👨🏽‍🐰‍👨🏼' => 'mga lalaking may tainga ng kuneho: katamtamang kulay ng balat, katamtamang light na kulay ng balat',
+    '👨🏽‍🐰‍👨🏾' => 'mga lalaking may tainga ng kuneho: katamtamang kulay ng balat, katamtamang dark na kulay ng balat',
+    '👨🏽‍🐰‍👨🏿' => 'mga lalaking may tainga ng kuneho: katamtamang kulay ng balat, dark na kulay ng balat',
+    '👨🏾‍🐰‍👨🏻' => 'mga lalaking may tainga ng kuneho: katamtamang dark na kulay ng balat, light na kulay ng balat',
+    '👨🏾‍🐰‍👨🏼' => 'mga lalaking may tainga ng kuneho: katamtamang dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '👨🏾‍🐰‍👨🏽' => 'mga lalaking may tainga ng kuneho: katamtamang dark na kulay ng balat, katamtamang kulay ng balat',
+    '👨🏾‍🐰‍👨🏿' => 'mga lalaking may tainga ng kuneho: katamtamang dark na kulay ng balat, dark na kulay ng balat',
+    '👨🏿‍🐰‍👨🏻' => 'mga lalaking may tainga ng kuneho: dark na kulay ng balat, light na kulay ng balat',
+    '👨🏿‍🐰‍👨🏼' => 'mga lalaking may tainga ng kuneho: dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '👨🏿‍🐰‍👨🏽' => 'mga lalaking may tainga ng kuneho: dark na kulay ng balat, katamtamang kulay ng balat',
+    '👨🏿‍🐰‍👨🏾' => 'mga lalaking may tainga ng kuneho: dark na kulay ng balat, katamtamang dark na kulay ng balat',
+    '👩🏻‍🫯‍👩🏼' => 'babaeng nakikipagbuno: light na kulay ng balat, katamtamang light na kulay ng balat',
+    '👩🏻‍🫯‍👩🏽' => 'babaeng nakikipagbuno: light na kulay ng balat, katamtamang kulay ng balat',
+    '👩🏻‍🫯‍👩🏾' => 'babaeng nakikipagbuno: light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '👩🏻‍🫯‍👩🏿' => 'babaeng nakikipagbuno: light na kulay ng balat, dark na kulay ng balat',
+    '👩🏼‍🫯‍👩🏻' => 'babaeng nakikipagbuno: katamtamang light na kulay ng balat, light na kulay ng balat',
+    '👩🏼‍🫯‍👩🏽' => 'babaeng nakikipagbuno: katamtamang light na kulay ng balat, katamtamang kulay ng balat',
+    '👩🏼‍🫯‍👩🏾' => 'babaeng nakikipagbuno: katamtamang light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '👩🏼‍🫯‍👩🏿' => 'babaeng nakikipagbuno: katamtamang light na kulay ng balat, dark na kulay ng balat',
+    '👩🏽‍🫯‍👩🏻' => 'babaeng nakikipagbuno: katamtamang kulay ng balat, light na kulay ng balat',
+    '👩🏽‍🫯‍👩🏼' => 'babaeng nakikipagbuno: katamtamang kulay ng balat, katamtamang light na kulay ng balat',
+    '👩🏽‍🫯‍👩🏾' => 'babaeng nakikipagbuno: katamtamang kulay ng balat, katamtamang dark na kulay ng balat',
+    '👩🏽‍🫯‍👩🏿' => 'babaeng nakikipagbuno: katamtamang kulay ng balat, dark na kulay ng balat',
+    '👩🏾‍🫯‍👩🏻' => 'babaeng nakikipagbuno: katamtamang dark na kulay ng balat, light na kulay ng balat',
+    '👩🏾‍🫯‍👩🏼' => 'babaeng nakikipagbuno: katamtamang dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '👩🏾‍🫯‍👩🏽' => 'babaeng nakikipagbuno: katamtamang dark na kulay ng balat, katamtamang kulay ng balat',
+    '👩🏾‍🫯‍👩🏿' => 'babaeng nakikipagbuno: katamtamang dark na kulay ng balat, dark na kulay ng balat',
+    '👩🏿‍🫯‍👩🏻' => 'babaeng nakikipagbuno: dark na kulay ng balat, light na kulay ng balat',
+    '👩🏿‍🫯‍👩🏼' => 'babaeng nakikipagbuno: dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '👩🏿‍🫯‍👩🏽' => 'babaeng nakikipagbuno: dark na kulay ng balat, katamtamang kulay ng balat',
+    '👩🏿‍🫯‍👩🏾' => 'babaeng nakikipagbuno: dark na kulay ng balat, katamtamang dark na kulay ng balat',
     '👩🏻‍❤‍👨🏻' => 'magkapareha na may puso: babae, lalaki, light na kulay ng balat',
     '👩🏻‍❤‍👨🏼' => 'magkapareha na may puso: babae, lalaki, light na kulay ng balat, katamtamang light na kulay ng balat',
     '👩🏻‍❤‍👨🏽' => 'magkapareha na may puso: babae, lalaki, light na kulay ng balat, katamtamang kulay ng balat',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'magkapareha na may puso: babae, babae, dark na kulay ng balat, katamtamang kulay ng balat',
     '👩🏿‍❤‍👩🏾' => 'magkapareha na may puso: babae, babae, dark na kulay ng balat, katamtamang dark na kulay ng balat',
     '👩🏿‍❤‍👩🏿' => 'magkapareha na may puso: babae, babae, dark na kulay ng balat',
+    '👩🏻‍🐰‍👩🏼' => 'babaeng nagpa-party: light na kulay ng balat, katamtamang light na kulay ng balat',
+    '👩🏻‍🐰‍👩🏽' => 'babaeng nagpa-party: light na kulay ng balat, katamtamang kulay ng balat',
+    '👩🏻‍🐰‍👩🏾' => 'babaeng nagpa-party: light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '👩🏻‍🐰‍👩🏿' => 'babaeng nagpa-party: light na kulay ng balat, dark na kulay ng balat',
+    '👩🏼‍🐰‍👩🏻' => 'babaeng nagpa-party: katamtamang light na kulay ng balat, light na kulay ng balat',
+    '👩🏼‍🐰‍👩🏽' => 'babaeng nagpa-party: katamtamang light na kulay ng balat, katamtamang kulay ng balat',
+    '👩🏼‍🐰‍👩🏾' => 'babaeng nagpa-party: katamtamang light na kulay ng balat, katamtamang dark na kulay ng balat',
+    '👩🏼‍🐰‍👩🏿' => 'babaeng nagpa-party: katamtamang light na kulay ng balat, dark na kulay ng balat',
+    '👩🏽‍🐰‍👩🏻' => 'babaeng nagpa-party: katamtamang kulay ng balat, light na kulay ng balat',
+    '👩🏽‍🐰‍👩🏼' => 'babaeng nagpa-party: katamtamang kulay ng balat, katamtamang light na kulay ng balat',
+    '👩🏽‍🐰‍👩🏾' => 'babaeng nagpa-party: katamtamang kulay ng balat, katamtamang dark na kulay ng balat',
+    '👩🏽‍🐰‍👩🏿' => 'babaeng nagpa-party: katamtamang kulay ng balat, dark na kulay ng balat',
+    '👩🏾‍🐰‍👩🏻' => 'babaeng nagpa-party: katamtamang dark na kulay ng balat, light na kulay ng balat',
+    '👩🏾‍🐰‍👩🏼' => 'babaeng nagpa-party: katamtamang dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '👩🏾‍🐰‍👩🏽' => 'babaeng nagpa-party: katamtamang dark na kulay ng balat, katamtamang kulay ng balat',
+    '👩🏾‍🐰‍👩🏿' => 'babaeng nagpa-party: katamtamang dark na kulay ng balat, dark na kulay ng balat',
+    '👩🏿‍🐰‍👩🏻' => 'babaeng nagpa-party: dark na kulay ng balat, light na kulay ng balat',
+    '👩🏿‍🐰‍👩🏼' => 'babaeng nagpa-party: dark na kulay ng balat, katamtamang light na kulay ng balat',
+    '👩🏿‍🐰‍👩🏽' => 'babaeng nagpa-party: dark na kulay ng balat, katamtamang kulay ng balat',
+    '👩🏿‍🐰‍👩🏾' => 'babaeng nagpa-party: dark na kulay ng balat, katamtamang dark na kulay ng balat',
     '🧑🏻‍🤝‍🧑🏻' => 'mga taong magkahawak-kamay: light na kulay ng balat',
     '🧑🏻‍🤝‍🧑🏼' => 'mga taong magkahawak-kamay: light na kulay ng balat, katamtamang light na kulay ng balat',
     '🧑🏻‍🤝‍🧑🏽' => 'mga taong magkahawak-kamay: light na kulay ng balat, katamtamang kulay ng balat',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bandila: Scotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bandila: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'pamilya: adulto, adulto, bata, bata',
-    '🚶🏻‍♀‍➡' => 'babaeng naglalakad nakaharap sa kanan',
-    '🚶🏼‍♀‍➡' => 'babaeng naglalakad nakaharap sa kanan',
-    '🚶🏽‍♀‍➡' => 'babaeng naglalakad nakaharap sa kanan',
-    '🚶🏾‍♀‍➡' => 'babaeng naglalakad nakaharap sa kanan',
-    '🚶🏿‍♀‍➡' => 'babaeng naglalakad nakaharap sa kanan',
-    '🚶🏻‍♂‍➡' => 'lalaking naglalakad nakaharap sa kanan',
-    '🚶🏼‍♂‍➡' => 'lalaking naglalakad nakaharap sa kanan',
-    '🚶🏽‍♂‍➡' => 'lalaking naglalakad nakaharap sa kanan',
-    '🚶🏾‍♂‍➡' => 'lalaking naglalakad nakaharap sa kanan',
-    '🚶🏿‍♂‍➡' => 'lalaking naglalakad nakaharap sa kanan',
-    '🧎🏻‍♀‍➡' => 'babaeng nakaluhod nakaharap sa kanan',
-    '🧎🏼‍♀‍➡' => 'babaeng nakaluhod nakaharap sa kanan',
-    '🧎🏽‍♀‍➡' => 'babaeng nakaluhod nakaharap sa kanan',
-    '🧎🏾‍♀‍➡' => 'babaeng nakaluhod nakaharap sa kanan',
-    '🧎🏿‍♀‍➡' => 'babaeng nakaluhod nakaharap sa kanan',
-    '🧎🏻‍♂‍➡' => 'lalaking nakaluhod nakaharap sa kanan',
-    '🧎🏼‍♂‍➡' => 'lalaking nakaluhod nakaharap sa kanan',
-    '🧎🏽‍♂‍➡' => 'lalaking nakaluhod nakaharap sa kanan',
-    '🧎🏾‍♂‍➡' => 'lalaking nakaluhod nakaharap sa kanan',
-    '🧎🏿‍♂‍➡' => 'lalaking nakaluhod nakaharap sa kanan',
-    '🧑🏻‍🦯‍➡' => 'taong may tungkod nakaharap sa kanan',
-    '🧑🏼‍🦯‍➡' => 'taong may tungkod nakaharap sa kanan',
-    '🧑🏽‍🦯‍➡' => 'taong may tungkod nakaharap sa kanan',
-    '🧑🏾‍🦯‍➡' => 'taong may tungkod nakaharap sa kanan',
-    '🧑🏿‍🦯‍➡' => 'taong may tungkod nakaharap sa kanan',
-    '👨🏻‍🦯‍➡' => 'lalaking may baston nakaharap sa kanan',
-    '👨🏼‍🦯‍➡' => 'lalaking may baston nakaharap sa kanan',
-    '👨🏽‍🦯‍➡' => 'lalaking may baston nakaharap sa kanan',
-    '👨🏾‍🦯‍➡' => 'lalaking may baston nakaharap sa kanan',
-    '👨🏿‍🦯‍➡' => 'lalaking may baston nakaharap sa kanan',
-    '👩🏻‍🦯‍➡' => 'babaeng may baston nakaharap sa kanan',
-    '👩🏼‍🦯‍➡' => 'babaeng may baston nakaharap sa kanan',
-    '👩🏽‍🦯‍➡' => 'babaeng may baston nakaharap sa kanan',
-    '👩🏾‍🦯‍➡' => 'babaeng may baston nakaharap sa kanan',
-    '👩🏿‍🦯‍➡' => 'babaeng may baston nakaharap sa kanan',
-    '🧑🏻‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '🧑🏼‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '🧑🏽‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '🧑🏾‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '🧑🏿‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👨🏻‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👨🏼‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👨🏽‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👨🏾‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👨🏿‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👩🏻‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👩🏼‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👩🏽‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👩🏾‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👩🏿‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '🧑🏻‍🦽‍➡' => 'tao sa manu-manong wheelchair nakaharap sa kanan',
-    '🧑🏼‍🦽‍➡' => 'tao sa manu-manong wheelchair nakaharap sa kanan',
-    '🧑🏽‍🦽‍➡' => 'tao sa manu-manong wheelchair nakaharap sa kanan',
-    '🧑🏾‍🦽‍➡' => 'tao sa manu-manong wheelchair nakaharap sa kanan',
-    '🧑🏿‍🦽‍➡' => 'tao sa manu-manong wheelchair nakaharap sa kanan',
-    '👨🏻‍🦽‍➡' => 'lalaki sa manu-manong wheelchair nakaharap sa kanan',
-    '👨🏼‍🦽‍➡' => 'lalaki sa manu-manong wheelchair nakaharap sa kanan',
-    '👨🏽‍🦽‍➡' => 'lalaki sa manu-manong wheelchair nakaharap sa kanan',
-    '👨🏾‍🦽‍➡' => 'lalaki sa manu-manong wheelchair nakaharap sa kanan',
-    '👨🏿‍🦽‍➡' => 'lalaki sa manu-manong wheelchair nakaharap sa kanan',
-    '👩🏻‍🦽‍➡' => 'babae sa manu-manong wheelchair nakaharap sa kanan',
-    '👩🏼‍🦽‍➡' => 'babae sa manu-manong wheelchair nakaharap sa kanan',
-    '👩🏽‍🦽‍➡' => 'babae sa manu-manong wheelchair nakaharap sa kanan',
-    '👩🏾‍🦽‍➡' => 'babae sa manu-manong wheelchair nakaharap sa kanan',
-    '👩🏿‍🦽‍➡' => 'babae sa manu-manong wheelchair nakaharap sa kanan',
-    '🏃🏻‍♀‍➡' => 'babaeng tumatakbo nakaharap sa kanan',
-    '🏃🏼‍♀‍➡' => 'babaeng tumatakbo nakaharap sa kanan',
-    '🏃🏽‍♀‍➡' => 'babaeng tumatakbo nakaharap sa kanan',
-    '🏃🏾‍♀‍➡' => 'babaeng tumatakbo nakaharap sa kanan',
-    '🏃🏿‍♀‍➡' => 'babaeng tumatakbo nakaharap sa kanan',
-    '🏃🏻‍♂‍➡' => 'lalaking tumatakbo nakaharap sa kanan',
-    '🏃🏼‍♂‍➡' => 'lalaking tumatakbo nakaharap sa kanan',
-    '🏃🏽‍♂‍➡' => 'lalaking tumatakbo nakaharap sa kanan',
-    '🏃🏾‍♂‍➡' => 'lalaking tumatakbo nakaharap sa kanan',
-    '🏃🏿‍♂‍➡' => 'lalaking tumatakbo nakaharap sa kanan',
+    '🚶🏻‍♀‍➡' => 'babaeng naglalakad: light na kulay ng balat, nakaharap sa kanan',
+    '🚶🏼‍♀‍➡' => 'babaeng naglalakad: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🚶🏽‍♀‍➡' => 'babaeng naglalakad: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🚶🏾‍♀‍➡' => 'babaeng naglalakad: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🚶🏿‍♀‍➡' => 'babaeng naglalakad: dark na kulay ng balat, nakaharap sa kanan',
+    '🚶🏻‍♂‍➡' => 'lalaking naglalakad: light na kulay ng balat, nakaharap sa kanan',
+    '🚶🏼‍♂‍➡' => 'lalaking naglalakad: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🚶🏽‍♂‍➡' => 'lalaking naglalakad: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🚶🏾‍♂‍➡' => 'lalaking naglalakad: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🚶🏿‍♂‍➡' => 'lalaking naglalakad: dark na kulay ng balat, nakaharap sa kanan',
+    '🧎🏻‍♀‍➡' => 'babaeng nakaluhod: light na kulay ng balat, nakaharap sa kanan',
+    '🧎🏼‍♀‍➡' => 'babaeng nakaluhod: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🧎🏽‍♀‍➡' => 'babaeng nakaluhod: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🧎🏾‍♀‍➡' => 'babaeng nakaluhod: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🧎🏿‍♀‍➡' => 'babaeng nakaluhod: dark na kulay ng balat, nakaharap sa kanan',
+    '🧎🏻‍♂‍➡' => 'lalaking nakaluhod: light na kulay ng balat, nakaharap sa kanan',
+    '🧎🏼‍♂‍➡' => 'lalaking nakaluhod: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🧎🏽‍♂‍➡' => 'lalaking nakaluhod: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🧎🏾‍♂‍➡' => 'lalaking nakaluhod: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🧎🏿‍♂‍➡' => 'lalaking nakaluhod: dark na kulay ng balat, nakaharap sa kanan',
+    '🧑🏻‍🦯‍➡' => 'taong may tungkod: light na kulay ng balat, nakaharap sa kanan',
+    '🧑🏼‍🦯‍➡' => 'taong may tungkod: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🧑🏽‍🦯‍➡' => 'taong may tungkod: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🧑🏾‍🦯‍➡' => 'taong may tungkod: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🧑🏿‍🦯‍➡' => 'taong may tungkod: dark na kulay ng balat, nakaharap sa kanan',
+    '👨🏻‍🦯‍➡' => 'lalaking may baston: light na kulay ng balat, nakaharap sa kanan',
+    '👨🏼‍🦯‍➡' => 'lalaking may baston: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '👨🏽‍🦯‍➡' => 'lalaking may baston: katamtamang kulay ng balat, nakaharap sa kanan',
+    '👨🏾‍🦯‍➡' => 'lalaking may baston: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '👨🏿‍🦯‍➡' => 'lalaking may baston: dark na kulay ng balat, nakaharap sa kanan',
+    '👩🏻‍🦯‍➡' => 'babaeng may baston: light na kulay ng balat, nakaharap sa kanan',
+    '👩🏼‍🦯‍➡' => 'babaeng may baston: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '👩🏽‍🦯‍➡' => 'babaeng may baston: katamtamang kulay ng balat, nakaharap sa kanan',
+    '👩🏾‍🦯‍➡' => 'babaeng may baston: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '👩🏿‍🦯‍➡' => 'babaeng may baston: dark na kulay ng balat, nakaharap sa kanan',
+    '🧑🏻‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair: light na kulay ng balat, nakaharap sa kanan',
+    '🧑🏼‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🧑🏽‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🧑🏾‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🧑🏿‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair: dark na kulay ng balat, nakaharap sa kanan',
+    '👨🏻‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair: light na kulay ng balat, nakaharap sa kanan',
+    '👨🏼‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '👨🏽‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair: katamtamang kulay ng balat, nakaharap sa kanan',
+    '👨🏾‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '👨🏿‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair: dark na kulay ng balat, nakaharap sa kanan',
+    '👩🏻‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair: light na kulay ng balat, nakaharap sa kanan',
+    '👩🏼‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '👩🏽‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair: katamtamang kulay ng balat, nakaharap sa kanan',
+    '👩🏾‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '👩🏿‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair: dark na kulay ng balat, nakaharap sa kanan',
+    '🧑🏻‍🦽‍➡' => 'tao sa manu-manong wheelchair: light na kulay ng balat, nakaharap sa kanan',
+    '🧑🏼‍🦽‍➡' => 'tao sa manu-manong wheelchair: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🧑🏽‍🦽‍➡' => 'tao sa manu-manong wheelchair: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🧑🏾‍🦽‍➡' => 'tao sa manu-manong wheelchair: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🧑🏿‍🦽‍➡' => 'tao sa manu-manong wheelchair: dark na kulay ng balat, nakaharap sa kanan',
+    '👨🏻‍🦽‍➡' => 'lalaki sa manu-manong wheelchair: light na kulay ng balat, nakaharap sa kanan',
+    '👨🏼‍🦽‍➡' => 'lalaki sa manu-manong wheelchair: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '👨🏽‍🦽‍➡' => 'lalaki sa manu-manong wheelchair: katamtamang kulay ng balat, nakaharap sa kanan',
+    '👨🏾‍🦽‍➡' => 'lalaki sa manu-manong wheelchair: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '👨🏿‍🦽‍➡' => 'lalaki sa manu-manong wheelchair: dark na kulay ng balat, nakaharap sa kanan',
+    '👩🏻‍🦽‍➡' => 'babae sa manu-manong wheelchair: light na kulay ng balat, nakaharap sa kanan',
+    '👩🏼‍🦽‍➡' => 'babae sa manu-manong wheelchair: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '👩🏽‍🦽‍➡' => 'babae sa manu-manong wheelchair: katamtamang kulay ng balat, nakaharap sa kanan',
+    '👩🏾‍🦽‍➡' => 'babae sa manu-manong wheelchair: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '👩🏿‍🦽‍➡' => 'babae sa manu-manong wheelchair: dark na kulay ng balat, nakaharap sa kanan',
+    '🏃🏻‍♀‍➡' => 'babaeng tumatakbo: light na kulay ng balat, nakaharap sa kanan',
+    '🏃🏼‍♀‍➡' => 'babaeng tumatakbo: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🏃🏽‍♀‍➡' => 'babaeng tumatakbo: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🏃🏾‍♀‍➡' => 'babaeng tumatakbo: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🏃🏿‍♀‍➡' => 'babaeng tumatakbo: dark na kulay ng balat, nakaharap sa kanan',
+    '🏃🏻‍♂‍➡' => 'lalaking tumatakbo: light na kulay ng balat, nakaharap sa kanan',
+    '🏃🏼‍♂‍➡' => 'lalaking tumatakbo: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🏃🏽‍♂‍➡' => 'lalaking tumatakbo: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🏃🏾‍♂‍➡' => 'lalaking tumatakbo: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🏃🏿‍♂‍➡' => 'lalaking tumatakbo: dark na kulay ng balat, nakaharap sa kanan',
     '🫱🏻‍🫲🏼' => 'pagkakamay: light na kulay ng balat, katamtamang light na kulay ng balat',
     '🫱🏻‍🫲🏽' => 'pagkakamay: light na kulay ng balat, katamtamang kulay ng balat',
     '🫱🏻‍🫲🏾' => 'pagkakamay: light na kulay ng balat, katamtamang dark na kulay ng balat',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'pagkakamay: dark na kulay ng balat, katamtamang light na kulay ng balat',
     '🫱🏿‍🫲🏽' => 'pagkakamay: dark na kulay ng balat, katamtamang kulay ng balat',
     '🫱🏿‍🫲🏾' => 'pagkakamay: dark na kulay ng balat, katamtamang dark na kulay ng balat',
-    '🚶‍♀‍➡' => 'babaeng naglalakad nakaharap sa kanan',
-    '🚶‍♂‍➡' => 'lalaking naglalakad nakaharap sa kanan',
-    '🧎‍♀‍➡' => 'babaeng nakaluhod nakaharap sa kanan',
-    '🧎‍♂‍➡' => 'lalaking nakaluhod nakaharap sa kanan',
-    '🧑‍🦯‍➡' => 'taong may tungkod nakaharap sa kanan',
-    '👨‍🦯‍➡' => 'lalaking may baston nakaharap sa kanan',
-    '👩‍🦯‍➡' => 'babaeng may baston nakaharap sa kanan',
-    '🧑‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👨‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '👩‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair nakaharap sa kanan',
-    '🧑‍🦽‍➡' => 'tao sa manu-manong wheelchair nakaharap sa kanan',
-    '👨‍🦽‍➡' => 'lalaki sa manu-manong wheelchair nakaharap sa kanan',
-    '👩‍🦽‍➡' => 'babae sa manu-manong wheelchair nakaharap sa kanan',
-    '🏃‍♀‍➡' => 'babaeng tumatakbo nakaharap sa kanan',
-    '🏃‍♂‍➡' => 'lalaking tumatakbo nakaharap sa kanan',
+    '🚶‍♀‍➡' => 'babaeng naglalakad: nakaharap sa kanan',
+    '🚶‍♂‍➡' => 'lalaking naglalakad: nakaharap sa kanan',
+    '🧎‍♀‍➡' => 'babaeng nakaluhod: nakaharap sa kanan',
+    '🧎‍♂‍➡' => 'lalaking nakaluhod: nakaharap sa kanan',
+    '🧑‍🦯‍➡' => 'taong may tungkod: nakaharap sa kanan',
+    '👨‍🦯‍➡' => 'lalaking may baston: nakaharap sa kanan',
+    '👩‍🦯‍➡' => 'babaeng may baston: nakaharap sa kanan',
+    '🧑‍🦼‍➡' => 'tao sa de-kuryenteng wheelchair: nakaharap sa kanan',
+    '👨‍🦼‍➡' => 'lalaki sa de-kuryenteng wheelchair: nakaharap sa kanan',
+    '👩‍🦼‍➡' => 'babae sa de-kuryenteng wheelchair: nakaharap sa kanan',
+    '🧑‍🦽‍➡' => 'tao sa manu-manong wheelchair: nakaharap sa kanan',
+    '👨‍🦽‍➡' => 'lalaki sa manu-manong wheelchair: nakaharap sa kanan',
+    '👩‍🦽‍➡' => 'babae sa manu-manong wheelchair: nakaharap sa kanan',
+    '🏃‍♀‍➡' => 'babaeng tumatakbo: nakaharap sa kanan',
+    '🏃‍♂‍➡' => 'lalaking tumatakbo: nakaharap sa kanan',
     '👩‍❤‍👨' => 'magkapareha na may puso: babae, lalaki',
     '👨‍❤‍👨' => 'magkapareha na may puso: lalaki, lalaki',
     '👩‍❤‍👩' => 'magkapareha na may puso: babae, babae',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'tao: katamtamang kulay ng balat, kalbo',
     '🧑🏾‍🦲' => 'tao: katamtamang dark na kulay ng balat, kalbo',
     '🧑🏿‍🦲' => 'tao: dark na kulay ng balat, kalbo',
+    '🧑🏻‍🩰' => 'ballet dancer: light na kulay ng balat',
+    '🧑🏼‍🩰' => 'ballet dancer: katamtamang light na kulay ng balat',
+    '🧑🏽‍🩰' => 'ballet dancer: katamtamang kulay ng balat',
+    '🧑🏾‍🩰' => 'ballet dancer: katamtamang dark na kulay ng balat',
+    '🧑🏿‍🩰' => 'ballet dancer: dark na kulay ng balat',
     '🧔🏻‍♂' => 'lalaki: light na kulay ng balat, balbas',
     '🧔🏼‍♂' => 'lalaki: katamtamang light na kulay ng balat, balbas',
     '🧔🏽‍♂' => 'lalaki: katamtamang kulay ng balat, balbas',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'babaeng naglalakad: katamtamang kulay ng balat',
     '🚶🏾‍♀' => 'babaeng naglalakad: katamtamang dark na kulay ng balat',
     '🚶🏿‍♀' => 'babaeng naglalakad: dark na kulay ng balat',
-    '🚶🏻‍➡' => 'taong naglalakad nakaharap sa kanan',
-    '🚶🏼‍➡' => 'taong naglalakad nakaharap sa kanan',
-    '🚶🏽‍➡' => 'taong naglalakad nakaharap sa kanan',
-    '🚶🏾‍➡' => 'taong naglalakad nakaharap sa kanan',
-    '🚶🏿‍➡' => 'taong naglalakad nakaharap sa kanan',
+    '🚶🏻‍➡' => 'taong naglalakad: light na kulay ng balat, nakaharap sa kanan',
+    '🚶🏼‍➡' => 'taong naglalakad: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🚶🏽‍➡' => 'taong naglalakad: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🚶🏾‍➡' => 'taong naglalakad: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🚶🏿‍➡' => 'taong naglalakad: dark na kulay ng balat, nakaharap sa kanan',
     '🧍🏻‍♂' => 'lalaking nakatayo: light na kulay ng balat',
     '🧍🏼‍♂' => 'lalaking nakatayo: katamtamang light na kulay ng balat',
     '🧍🏽‍♂' => 'lalaking nakatayo: katamtamang kulay ng balat',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'babaeng nakaluhod: katamtamang kulay ng balat',
     '🧎🏾‍♀' => 'babaeng nakaluhod: katamtamang dark na kulay ng balat',
     '🧎🏿‍♀' => 'babaeng nakaluhod: dark na kulay ng balat',
-    '🧎🏻‍➡' => 'taong nakaluhod nakaharap sa kanan',
-    '🧎🏼‍➡' => 'taong nakaluhod nakaharap sa kanan',
-    '🧎🏽‍➡' => 'taong nakaluhod nakaharap sa kanan',
-    '🧎🏾‍➡' => 'taong nakaluhod nakaharap sa kanan',
-    '🧎🏿‍➡' => 'taong nakaluhod nakaharap sa kanan',
+    '🧎🏻‍➡' => 'taong nakaluhod: light na kulay ng balat, nakaharap sa kanan',
+    '🧎🏼‍➡' => 'taong nakaluhod: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🧎🏽‍➡' => 'taong nakaluhod: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🧎🏾‍➡' => 'taong nakaluhod: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🧎🏿‍➡' => 'taong nakaluhod: dark na kulay ng balat, nakaharap sa kanan',
     '🧑🏻‍🦯' => 'taong may tungkod: light na kulay ng balat',
     '🧑🏼‍🦯' => 'taong may tungkod: katamtamang light na kulay ng balat',
     '🧑🏽‍🦯' => 'taong may tungkod: katamtamang kulay ng balat',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'babaeng tumatakbo: katamtamang kulay ng balat',
     '🏃🏾‍♀' => 'babaeng tumatakbo: katamtamang dark na kulay ng balat',
     '🏃🏿‍♀' => 'babaeng tumatakbo: dark na kulay ng balat',
-    '🏃🏻‍➡' => 'tumatakbo nakaharap sa kanan',
-    '🏃🏼‍➡' => 'tumatakbo nakaharap sa kanan',
-    '🏃🏽‍➡' => 'tumatakbo nakaharap sa kanan',
-    '🏃🏾‍➡' => 'tumatakbo nakaharap sa kanan',
-    '🏃🏿‍➡' => 'tumatakbo nakaharap sa kanan',
+    '🏃🏻‍➡' => 'tumatakbo: light na kulay ng balat, nakaharap sa kanan',
+    '🏃🏼‍➡' => 'tumatakbo: katamtamang light na kulay ng balat, nakaharap sa kanan',
+    '🏃🏽‍➡' => 'tumatakbo: katamtamang kulay ng balat, nakaharap sa kanan',
+    '🏃🏾‍➡' => 'tumatakbo: katamtamang dark na kulay ng balat, nakaharap sa kanan',
+    '🏃🏿‍➡' => 'tumatakbo: dark na kulay ng balat, nakaharap sa kanan',
+    '👯🏻‍♀' => 'babaeng nagpa-party: light na kulay ng balat',
+    '👯🏼‍♀' => 'babaeng nagpa-party: katamtamang light na kulay ng balat',
+    '👯🏽‍♀' => 'babaeng nagpa-party: katamtamang kulay ng balat',
+    '👯🏾‍♀' => 'babaeng nagpa-party: katamtamang dark na kulay ng balat',
+    '👯🏿‍♀' => 'babaeng nagpa-party: dark na kulay ng balat',
+    '👯🏻‍♂' => 'mga lalaking may tainga ng kuneho: light na kulay ng balat',
+    '👯🏼‍♂' => 'mga lalaking may tainga ng kuneho: katamtamang light na kulay ng balat',
+    '👯🏽‍♂' => 'mga lalaking may tainga ng kuneho: katamtamang kulay ng balat',
+    '👯🏾‍♂' => 'mga lalaking may tainga ng kuneho: katamtamang dark na kulay ng balat',
+    '👯🏿‍♂' => 'mga lalaking may tainga ng kuneho: dark na kulay ng balat',
     '🧖🏻‍♂' => 'lalaki sa sauna: light na kulay ng balat',
     '🧖🏼‍♂' => 'lalaki sa sauna: katamtamang light na kulay ng balat',
     '🧖🏽‍♂' => 'lalaki sa sauna: katamtamang kulay ng balat',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'babaeng nagka-cartwheel: katamtamang kulay ng balat',
     '🤸🏾‍♀' => 'babaeng nagka-cartwheel: katamtamang dark na kulay ng balat',
     '🤸🏿‍♀' => 'babaeng nagka-cartwheel: dark na kulay ng balat',
+    '🤼🏻‍♀' => 'babaeng nakikipagbuno: light na kulay ng balat',
+    '🤼🏼‍♀' => 'babaeng nakikipagbuno: katamtamang light na kulay ng balat',
+    '🤼🏽‍♀' => 'babaeng nakikipagbuno: katamtamang kulay ng balat',
+    '🤼🏾‍♀' => 'babaeng nakikipagbuno: katamtamang dark na kulay ng balat',
+    '🤼🏿‍♀' => 'babaeng nakikipagbuno: dark na kulay ng balat',
+    '🤼🏻‍♂' => 'lalaking nakikipagbuno: light na kulay ng balat',
+    '🤼🏼‍♂' => 'lalaking nakikipagbuno: katamtamang light na kulay ng balat',
+    '🤼🏽‍♂' => 'lalaking nakikipagbuno: katamtamang kulay ng balat',
+    '🤼🏾‍♂' => 'lalaking nakikipagbuno: katamtamang dark na kulay ng balat',
+    '🤼🏿‍♂' => 'lalaking nakikipagbuno: dark na kulay ng balat',
     '🤽🏻‍♂' => 'lalaking naglalaro ng water polo: light na kulay ng balat',
     '🤽🏼‍♂' => 'lalaking naglalaro ng water polo: katamtamang light na kulay ng balat',
     '🤽🏽‍♂' => 'lalaking naglalaro ng water polo: katamtamang kulay ng balat',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'babae: kulot na buhok',
     '👩‍🦳' => 'babae: puting buhok',
     '👩‍🦲' => 'babae: kalbo',
-    '🚶‍➡' => 'taong naglalakad nakaharap sa kanan',
-    '🧎‍➡' => 'taong nakaluhod nakaharap sa kanan',
-    '🏃‍➡' => 'tumatakbo nakaharap sa kanan',
+    '🚶‍➡' => 'taong naglalakad: nakaharap sa kanan',
+    '🧎‍➡' => 'taong nakaluhod: nakaharap sa kanan',
+    '🏃‍➡' => 'tumatakbo: nakaharap sa kanan',
     '👨‍👦' => 'pamilya: lalaki, batang lalaki',
     '👨‍👧' => 'pamilya: lalaki, batang babae',
     '👩‍👦' => 'pamilya: babae, batang lalaki',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'babae sa manu-manong wheelchair',
     '🏃‍♂' => 'lalaking tumatakbo',
     '🏃‍♀' => 'babaeng tumatakbo',
+    '🧑‍🩰' => 'ballet dancer',
     '👯‍♂' => 'mga lalaking may tainga ng kuneho',
     '👯‍♀' => 'babaeng nagpa-party',
     '🧖‍♂' => 'lalaki sa sauna',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'lumulutang na lalaking nakapormal: katamtamang kulay ng balat',
     '🕴🏾' => 'lumulutang na lalaking nakapormal: katamtamang dark na kulay ng balat',
     '🕴🏿' => 'lumulutang na lalaking nakapormal: dark na kulay ng balat',
+    '👯🏻' => 'mga babaeng may tainga ng kuneho: light na kulay ng balat',
+    '👯🏼' => 'mga babaeng may tainga ng kuneho: katamtamang light na kulay ng balat',
+    '👯🏽' => 'mga babaeng may tainga ng kuneho: katamtamang kulay ng balat',
+    '👯🏾' => 'mga babaeng may tainga ng kuneho: katamtamang dark na kulay ng balat',
+    '👯🏿' => 'mga babaeng may tainga ng kuneho: dark na kulay ng balat',
     '🧖🏻' => 'tao na nasa sauna: light na kulay ng balat',
     '🧖🏼' => 'tao na nasa sauna: katamtamang light na kulay ng balat',
     '🧖🏽' => 'tao na nasa sauna: katamtamang kulay ng balat',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'taong nagka-cartwheel: katamtamang kulay ng balat',
     '🤸🏾' => 'taong nagka-cartwheel: katamtamang dark na kulay ng balat',
     '🤸🏿' => 'taong nagka-cartwheel: dark na kulay ng balat',
+    '🤼🏻' => 'mga taong nagre-wrestling: light na kulay ng balat',
+    '🤼🏼' => 'mga taong nagre-wrestling: katamtamang light na kulay ng balat',
+    '🤼🏽' => 'mga taong nagre-wrestling: katamtamang kulay ng balat',
+    '🤼🏾' => 'mga taong nagre-wrestling: katamtamang dark na kulay ng balat',
+    '🤼🏿' => 'mga taong nagre-wrestling: dark na kulay ng balat',
     '🤽🏻' => 'taong naglalaro ng water polo: light na kulay ng balat',
     '🤽🏼' => 'taong naglalaro ng water polo: katamtamang light na kulay ng balat',
     '🤽🏽' => 'taong naglalaro ng water polo: katamtamang kulay ng balat',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bandila: China',
     '🇨🇴' => 'bandila: Colombia',
     '🇨🇵' => 'bandila: Clipperton Island',
+    '🇨🇶' => 'bandila: Sark',
     '🇨🇷' => 'bandila: Costa Rica',
     '🇨🇺' => 'bandila: Cuba',
     '🇨🇻' => 'bandila: Cape Verde',
@@ -2389,13 +2546,6 @@
     '🏽' => 'katamtamang kulay ng balat',
     '🏾' => 'katamtamang dark na kulay ng balat',
     '🏿' => 'dark na kulay ng balat',
-    '🪉' => 'alpa',
-    '🪏' => 'pala',
-    '🪾' => 'puno na walang dahon',
-    '🫆' => 'bakas ng daliri',
-    '🫜' => 'ugat na gulay',
-    '🫟' => 'tilamsik',
-    '🫩' => 'mukha na nangangalumata',
     '😀' => 'mukhang nakangiti',
     '😃' => 'nakangisi na may malaking mga mata',
     '😄' => 'nakangisi kasama ang mga nakangiting mata',
@@ -2449,6 +2599,7 @@
     '😪' => 'inaantok na mukha',
     '🤤' => 'naglalaway',
     '😴' => 'natutulog',
+    '🫩' => 'mukha na nangangalumata',
     '😷' => 'may suot na medical mask',
     '🤒' => 'may thermometer sa bibig',
     '🤕' => 'may benda sa ulo',
@@ -2475,6 +2626,7 @@
     '😯' => 'tahimik na naghihintay',
     '😲' => 'gulat na gulat',
     '😳' => 'namumula',
+    '🫪' => 'distorted na mukha',
     '🥺' => 'nagsusumamo na mukha',
     '🥹' => 'mukhang nagpipigil ng luha',
     '😦' => 'nakasimangot nang nakanganga',
@@ -2546,6 +2698,7 @@
     '💋' => 'marka ng halik',
     '💯' => 'sandaang puntos',
     '💢' => 'simbolo ng galit',
+    '🫯' => 'cloud ng away',
     '💥' => 'banggaan',
     '💫' => 'nahihilo',
     '💦' => 'mga patak ng pawis',
@@ -2669,6 +2822,7 @@
     '🧞' => 'genie',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'mabalahibong nilalang',
     '💆' => 'pagpapamasahe ng mukha',
     '💇' => 'pagpapagupit ng buhok',
     '🚶' => 'taong naglalakad',
@@ -2712,6 +2866,7 @@
     '🫂' => 'tao na magkayakap',
     '👪' => 'pamilya',
     '👣' => 'mga bakas ng paa',
+    '🫆' => 'bakas ng daliri',
     '🦰' => 'pulang buhok',
     '🦱' => 'kulot na buhok',
     '🦳' => 'puting buhok',
@@ -2811,6 +2966,7 @@
     '🐳' => 'balyenang bumubuga ng tubig',
     '🐋' => 'balyena',
     '🐬' => 'dolphin',
+    '🫍' => 'orca',
     '🦭' => 'seal',
     '🐟' => 'isda',
     '🐠' => 'tropical fish',
@@ -2820,6 +2976,11 @@
     '🐚' => 'pilipit na kabibe',
     '🪸' => 'korales',
     '🪼' => 'dikya',
+    '🦀' => 'alimango',
+    '🦞' => 'lobster',
+    '🦐' => 'hipon',
+    '🦑' => 'pusit',
+    '🦪' => 'talaba',
     '🐌' => 'kuhol',
     '🦋' => 'paru-paro',
     '🐛' => 'insekto',
@@ -2864,6 +3025,7 @@
     '🪹' => 'bakanteng pugad',
     '🪺' => 'pugad na may mga itlog',
     '🍄' => 'kabute',
+    '🪾' => 'puno na walang dahon',
     '🍇' => 'ubas',
     '🍈' => 'melon',
     '🍉' => 'pakwan',
@@ -2900,6 +3062,7 @@
     '🌰' => 'kastanyas',
     '🫚' => 'luya',
     '🫛' => 'gisante',
+    '🫜' => 'ugat na gulay',
     '🍞' => 'tinapay',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2951,11 +3114,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'fortune cookie',
     '🥡' => 'takeout box',
-    '🦀' => 'alimango',
-    '🦞' => 'lobster',
-    '🦐' => 'hipon',
-    '🦑' => 'pusit',
-    '🦪' => 'talaba',
     '🍦' => 'swirl ice cream',
     '🍧' => 'shaved ice',
     '🍨' => 'ice cream',
@@ -3006,6 +3164,7 @@
     '🧭' => 'compass',
     '🏔' => 'bundok na may niyebe sa tuktok',
     '⛰' => 'bundok',
+    '🛘' => 'landslide',
     '🌋' => 'bulkan',
     '🗻' => 'bundok fuji',
     '🏕' => 'camping',
@@ -3366,16 +3525,18 @@
     '🎧' => 'headphone',
     '📻' => 'radyo',
     '🎷' => 'saxophone',
+    '🎺' => 'trumpeta',
+    '🪊' => 'trombone',
     '🪗' => 'accordion',
     '🎸' => 'gitara',
     '🎹' => 'keyboard na pangmusika',
-    '🎺' => 'trumpeta',
     '🎻' => 'biyulin',
     '🪕' => 'banjo',
     '🥁' => 'drum',
     '🪘' => 'mahabang drum',
     '🪇' => 'maracas',
     '🪈' => 'plawta',
+    '🪉' => 'alpa',
     '📱' => 'mobile phone',
     '📲' => 'mobile phone na may arrow',
     '☎' => 'telepono',
@@ -3429,8 +3590,9 @@
     '📑' => 'mga bookmark tab',
     '🔖' => 'bookmark',
     '🏷' => 'label',
-    '💰' => 'supot ng pera',
     '🪙' => 'barya',
+    '💰' => 'supot ng pera',
+    '🪎' => 'kaban ng kayamanan',
     '💴' => 'yen bill',
     '💵' => 'dollar bill',
     '💶' => 'euro bill',
@@ -3513,6 +3675,7 @@
     '🧰' => 'kahon ng kagamitan',
     '🧲' => 'magneto',
     '🪜' => 'hagdan',
+    '🪏' => 'pala',
     '⚗' => 'alembic',
     '🧪' => 'test tube',
     '🧫' => 'petri dish',
@@ -3696,6 +3859,7 @@
     '✴' => 'bituin na may walong sulok',
     '❇' => 'kinang',
     '™' => 'trade mark',
+    '🫟' => 'tilamsik',
     '🔠' => 'input na latin na uppercase',
     '🔡' => 'input na latin na lowercase',
     '🔢' => 'input na mga numero',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fi.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'pusu: nainen, nainen, tumma iho, tummanvaalea iho',
     '👩🏿‍❤‍💋‍👩🏾' => 'pusu: nainen, nainen, tumma iho, keskitumma iho',
     '👩🏿‍❤‍💋‍👩🏿' => 'pusu: nainen, nainen, tumma iho',
+    '🧑🏻‍🫯‍🧑🏼' => 'painijat: vaalea iho, keskivaalea iho',
+    '🧑🏻‍🫯‍🧑🏽' => 'painijat: vaalea iho, tummanvaalea iho',
+    '🧑🏻‍🫯‍🧑🏾' => 'painijat: vaalea iho, keskitumma iho',
+    '🧑🏻‍🫯‍🧑🏿' => 'painijat: vaalea iho, tumma iho',
+    '🧑🏼‍🫯‍🧑🏻' => 'painijat: keskivaalea iho, vaalea iho',
+    '🧑🏼‍🫯‍🧑🏽' => 'painijat: keskivaalea iho, tummanvaalea iho',
+    '🧑🏼‍🫯‍🧑🏾' => 'painijat: keskivaalea iho, keskitumma iho',
+    '🧑🏼‍🫯‍🧑🏿' => 'painijat: keskivaalea iho, tumma iho',
+    '🧑🏽‍🫯‍🧑🏻' => 'painijat: tummanvaalea iho, vaalea iho',
+    '🧑🏽‍🫯‍🧑🏼' => 'painijat: tummanvaalea iho, keskivaalea iho',
+    '🧑🏽‍🫯‍🧑🏾' => 'painijat: tummanvaalea iho, keskitumma iho',
+    '🧑🏽‍🫯‍🧑🏿' => 'painijat: tummanvaalea iho, tumma iho',
+    '🧑🏾‍🫯‍🧑🏻' => 'painijat: keskitumma iho, vaalea iho',
+    '🧑🏾‍🫯‍🧑🏼' => 'painijat: keskitumma iho, keskivaalea iho',
+    '🧑🏾‍🫯‍🧑🏽' => 'painijat: keskitumma iho, tummanvaalea iho',
+    '🧑🏾‍🫯‍🧑🏿' => 'painijat: keskitumma iho, tumma iho',
+    '🧑🏿‍🫯‍🧑🏻' => 'painijat: tumma iho, vaalea iho',
+    '🧑🏿‍🫯‍🧑🏼' => 'painijat: tumma iho, keskivaalea iho',
+    '🧑🏿‍🫯‍🧑🏽' => 'painijat: tumma iho, tummanvaalea iho',
+    '🧑🏿‍🫯‍🧑🏾' => 'painijat: tumma iho, keskitumma iho',
     '🧑🏻‍❤‍🧑🏼' => 'pariskunta ja sydän: aikuinen, aikuinen, vaalea iho, keskivaalea iho',
     '🧑🏻‍❤‍🧑🏽' => 'pariskunta ja sydän: aikuinen, aikuinen, vaalea iho, tummanvaalea iho',
     '🧑🏻‍❤‍🧑🏾' => 'pariskunta ja sydän: aikuinen, aikuinen, vaalea iho, keskitumma iho',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pariskunta ja sydän: aikuinen, aikuinen, tumma iho, keskivaalea iho',
     '🧑🏿‍❤‍🧑🏽' => 'pariskunta ja sydän: aikuinen, aikuinen, tumma iho, tummanvaalea iho',
     '🧑🏿‍❤‍🧑🏾' => 'pariskunta ja sydän: aikuinen, aikuinen, tumma iho, keskitumma iho',
+    '🧑🏻‍🐰‍🧑🏼' => 'puputytöt: vaalea iho, keskivaalea iho',
+    '🧑🏻‍🐰‍🧑🏽' => 'puputytöt: vaalea iho, tummanvaalea iho',
+    '🧑🏻‍🐰‍🧑🏾' => 'puputytöt: vaalea iho, keskitumma iho',
+    '🧑🏻‍🐰‍🧑🏿' => 'puputytöt: vaalea iho, tumma iho',
+    '🧑🏼‍🐰‍🧑🏻' => 'puputytöt: keskivaalea iho, vaalea iho',
+    '🧑🏼‍🐰‍🧑🏽' => 'puputytöt: keskivaalea iho, tummanvaalea iho',
+    '🧑🏼‍🐰‍🧑🏾' => 'puputytöt: keskivaalea iho, keskitumma iho',
+    '🧑🏼‍🐰‍🧑🏿' => 'puputytöt: keskivaalea iho, tumma iho',
+    '🧑🏽‍🐰‍🧑🏻' => 'puputytöt: tummanvaalea iho, vaalea iho',
+    '🧑🏽‍🐰‍🧑🏼' => 'puputytöt: tummanvaalea iho, keskivaalea iho',
+    '🧑🏽‍🐰‍🧑🏾' => 'puputytöt: tummanvaalea iho, keskitumma iho',
+    '🧑🏽‍🐰‍🧑🏿' => 'puputytöt: tummanvaalea iho, tumma iho',
+    '🧑🏾‍🐰‍🧑🏻' => 'puputytöt: keskitumma iho, vaalea iho',
+    '🧑🏾‍🐰‍🧑🏼' => 'puputytöt: keskitumma iho, keskivaalea iho',
+    '🧑🏾‍🐰‍🧑🏽' => 'puputytöt: keskitumma iho, tummanvaalea iho',
+    '🧑🏾‍🐰‍🧑🏿' => 'puputytöt: keskitumma iho, tumma iho',
+    '🧑🏿‍🐰‍🧑🏻' => 'puputytöt: tumma iho, vaalea iho',
+    '🧑🏿‍🐰‍🧑🏼' => 'puputytöt: tumma iho, keskivaalea iho',
+    '🧑🏿‍🐰‍🧑🏽' => 'puputytöt: tumma iho, tummanvaalea iho',
+    '🧑🏿‍🐰‍🧑🏾' => 'puputytöt: tumma iho, keskitumma iho',
+    '👨🏻‍🫯‍👨🏼' => 'painivat miehet: vaalea iho, keskivaalea iho',
+    '👨🏻‍🫯‍👨🏽' => 'painivat miehet: vaalea iho, tummanvaalea iho',
+    '👨🏻‍🫯‍👨🏾' => 'painivat miehet: vaalea iho, keskitumma iho',
+    '👨🏻‍🫯‍👨🏿' => 'painivat miehet: vaalea iho, tumma iho',
+    '👨🏼‍🫯‍👨🏻' => 'painivat miehet: keskivaalea iho, vaalea iho',
+    '👨🏼‍🫯‍👨🏽' => 'painivat miehet: keskivaalea iho, tummanvaalea iho',
+    '👨🏼‍🫯‍👨🏾' => 'painivat miehet: keskivaalea iho, keskitumma iho',
+    '👨🏼‍🫯‍👨🏿' => 'painivat miehet: keskivaalea iho, tumma iho',
+    '👨🏽‍🫯‍👨🏻' => 'painivat miehet: tummanvaalea iho, vaalea iho',
+    '👨🏽‍🫯‍👨🏼' => 'painivat miehet: tummanvaalea iho, keskivaalea iho',
+    '👨🏽‍🫯‍👨🏾' => 'painivat miehet: tummanvaalea iho, keskitumma iho',
+    '👨🏽‍🫯‍👨🏿' => 'painivat miehet: tummanvaalea iho, tumma iho',
+    '👨🏾‍🫯‍👨🏻' => 'painivat miehet: keskitumma iho, vaalea iho',
+    '👨🏾‍🫯‍👨🏼' => 'painivat miehet: keskitumma iho, keskivaalea iho',
+    '👨🏾‍🫯‍👨🏽' => 'painivat miehet: keskitumma iho, tummanvaalea iho',
+    '👨🏾‍🫯‍👨🏿' => 'painivat miehet: keskitumma iho, tumma iho',
+    '👨🏿‍🫯‍👨🏻' => 'painivat miehet: tumma iho, vaalea iho',
+    '👨🏿‍🫯‍👨🏼' => 'painivat miehet: tumma iho, keskivaalea iho',
+    '👨🏿‍🫯‍👨🏽' => 'painivat miehet: tumma iho, tummanvaalea iho',
+    '👨🏿‍🫯‍👨🏾' => 'painivat miehet: tumma iho, keskitumma iho',
     '👨🏻‍❤‍👨🏻' => 'pariskunta ja sydän: mies, mies, vaalea iho',
     '👨🏻‍❤‍👨🏼' => 'pariskunta ja sydän: mies, mies, vaalea iho, keskivaalea iho',
     '👨🏻‍❤‍👨🏽' => 'pariskunta ja sydän: mies, mies, vaalea iho, tummanvaalea iho',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pariskunta ja sydän: mies, mies, tumma iho, tummanvaalea iho',
     '👨🏿‍❤‍👨🏾' => 'pariskunta ja sydän: mies, mies, tumma iho, keskitumma iho',
     '👨🏿‍❤‍👨🏿' => 'pariskunta ja sydän: mies, mies, tumma iho',
+    '👨🏻‍🐰‍👨🏼' => 'tanssivat pupupojat: vaalea iho, keskivaalea iho',
+    '👨🏻‍🐰‍👨🏽' => 'tanssivat pupupojat: vaalea iho, tummanvaalea iho',
+    '👨🏻‍🐰‍👨🏾' => 'tanssivat pupupojat: vaalea iho, keskitumma iho',
+    '👨🏻‍🐰‍👨🏿' => 'tanssivat pupupojat: vaalea iho, tumma iho',
+    '👨🏼‍🐰‍👨🏻' => 'tanssivat pupupojat: keskivaalea iho, vaalea iho',
+    '👨🏼‍🐰‍👨🏽' => 'tanssivat pupupojat: keskivaalea iho, tummanvaalea iho',
+    '👨🏼‍🐰‍👨🏾' => 'tanssivat pupupojat: keskivaalea iho, keskitumma iho',
+    '👨🏼‍🐰‍👨🏿' => 'tanssivat pupupojat: keskivaalea iho, tumma iho',
+    '👨🏽‍🐰‍👨🏻' => 'tanssivat pupupojat: tummanvaalea iho, vaalea iho',
+    '👨🏽‍🐰‍👨🏼' => 'tanssivat pupupojat: tummanvaalea iho, keskivaalea iho',
+    '👨🏽‍🐰‍👨🏾' => 'tanssivat pupupojat: tummanvaalea iho, keskitumma iho',
+    '👨🏽‍🐰‍👨🏿' => 'tanssivat pupupojat: tummanvaalea iho, tumma iho',
+    '👨🏾‍🐰‍👨🏻' => 'tanssivat pupupojat: keskitumma iho, vaalea iho',
+    '👨🏾‍🐰‍👨🏼' => 'tanssivat pupupojat: keskitumma iho, keskivaalea iho',
+    '👨🏾‍🐰‍👨🏽' => 'tanssivat pupupojat: keskitumma iho, tummanvaalea iho',
+    '👨🏾‍🐰‍👨🏿' => 'tanssivat pupupojat: keskitumma iho, tumma iho',
+    '👨🏿‍🐰‍👨🏻' => 'tanssivat pupupojat: tumma iho, vaalea iho',
+    '👨🏿‍🐰‍👨🏼' => 'tanssivat pupupojat: tumma iho, keskivaalea iho',
+    '👨🏿‍🐰‍👨🏽' => 'tanssivat pupupojat: tumma iho, tummanvaalea iho',
+    '👨🏿‍🐰‍👨🏾' => 'tanssivat pupupojat: tumma iho, keskitumma iho',
+    '👩🏻‍🫯‍👩🏼' => 'painivat naiset: vaalea iho, keskivaalea iho',
+    '👩🏻‍🫯‍👩🏽' => 'painivat naiset: vaalea iho, tummanvaalea iho',
+    '👩🏻‍🫯‍👩🏾' => 'painivat naiset: vaalea iho, keskitumma iho',
+    '👩🏻‍🫯‍👩🏿' => 'painivat naiset: vaalea iho, tumma iho',
+    '👩🏼‍🫯‍👩🏻' => 'painivat naiset: keskivaalea iho, vaalea iho',
+    '👩🏼‍🫯‍👩🏽' => 'painivat naiset: keskivaalea iho, tummanvaalea iho',
+    '👩🏼‍🫯‍👩🏾' => 'painivat naiset: keskivaalea iho, keskitumma iho',
+    '👩🏼‍🫯‍👩🏿' => 'painivat naiset: keskivaalea iho, tumma iho',
+    '👩🏽‍🫯‍👩🏻' => 'painivat naiset: tummanvaalea iho, vaalea iho',
+    '👩🏽‍🫯‍👩🏼' => 'painivat naiset: tummanvaalea iho, keskivaalea iho',
+    '👩🏽‍🫯‍👩🏾' => 'painivat naiset: tummanvaalea iho, keskitumma iho',
+    '👩🏽‍🫯‍👩🏿' => 'painivat naiset: tummanvaalea iho, tumma iho',
+    '👩🏾‍🫯‍👩🏻' => 'painivat naiset: keskitumma iho, vaalea iho',
+    '👩🏾‍🫯‍👩🏼' => 'painivat naiset: keskitumma iho, keskivaalea iho',
+    '👩🏾‍🫯‍👩🏽' => 'painivat naiset: keskitumma iho, tummanvaalea iho',
+    '👩🏾‍🫯‍👩🏿' => 'painivat naiset: keskitumma iho, tumma iho',
+    '👩🏿‍🫯‍👩🏻' => 'painivat naiset: tumma iho, vaalea iho',
+    '👩🏿‍🫯‍👩🏼' => 'painivat naiset: tumma iho, keskivaalea iho',
+    '👩🏿‍🫯‍👩🏽' => 'painivat naiset: tumma iho, tummanvaalea iho',
+    '👩🏿‍🫯‍👩🏾' => 'painivat naiset: tumma iho, keskitumma iho',
     '👩🏻‍❤‍👨🏻' => 'pariskunta ja sydän: nainen, mies, vaalea iho',
     '👩🏻‍❤‍👨🏼' => 'pariskunta ja sydän: nainen, mies, vaalea iho, keskivaalea iho',
     '👩🏻‍❤‍👨🏽' => 'pariskunta ja sydän: nainen, mies, vaalea iho, tummanvaalea iho',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pariskunta ja sydän: nainen, nainen, tumma iho, tummanvaalea iho',
     '👩🏿‍❤‍👩🏾' => 'pariskunta ja sydän: nainen, nainen, tumma iho, keskitumma iho',
     '👩🏿‍❤‍👩🏿' => 'pariskunta ja sydän: nainen, nainen, tumma iho',
+    '👩🏻‍🐰‍👩🏼' => 'tanssivat puputytöt: vaalea iho, keskivaalea iho',
+    '👩🏻‍🐰‍👩🏽' => 'tanssivat puputytöt: vaalea iho, tummanvaalea iho',
+    '👩🏻‍🐰‍👩🏾' => 'tanssivat puputytöt: vaalea iho, keskitumma iho',
+    '👩🏻‍🐰‍👩🏿' => 'tanssivat puputytöt: vaalea iho, tumma iho',
+    '👩🏼‍🐰‍👩🏻' => 'tanssivat puputytöt: keskivaalea iho, vaalea iho',
+    '👩🏼‍🐰‍👩🏽' => 'tanssivat puputytöt: keskivaalea iho, tummanvaalea iho',
+    '👩🏼‍🐰‍👩🏾' => 'tanssivat puputytöt: keskivaalea iho, keskitumma iho',
+    '👩🏼‍🐰‍👩🏿' => 'tanssivat puputytöt: keskivaalea iho, tumma iho',
+    '👩🏽‍🐰‍👩🏻' => 'tanssivat puputytöt: tummanvaalea iho, vaalea iho',
+    '👩🏽‍🐰‍👩🏼' => 'tanssivat puputytöt: tummanvaalea iho, keskivaalea iho',
+    '👩🏽‍🐰‍👩🏾' => 'tanssivat puputytöt: tummanvaalea iho, keskitumma iho',
+    '👩🏽‍🐰‍👩🏿' => 'tanssivat puputytöt: tummanvaalea iho, tumma iho',
+    '👩🏾‍🐰‍👩🏻' => 'tanssivat puputytöt: keskitumma iho, vaalea iho',
+    '👩🏾‍🐰‍👩🏼' => 'tanssivat puputytöt: keskitumma iho, keskivaalea iho',
+    '👩🏾‍🐰‍👩🏽' => 'tanssivat puputytöt: keskitumma iho, tummanvaalea iho',
+    '👩🏾‍🐰‍👩🏿' => 'tanssivat puputytöt: keskitumma iho, tumma iho',
+    '👩🏿‍🐰‍👩🏻' => 'tanssivat puputytöt: tumma iho, vaalea iho',
+    '👩🏿‍🐰‍👩🏼' => 'tanssivat puputytöt: tumma iho, keskivaalea iho',
+    '👩🏿‍🐰‍👩🏽' => 'tanssivat puputytöt: tumma iho, tummanvaalea iho',
+    '👩🏿‍🐰‍👩🏾' => 'tanssivat puputytöt: tumma iho, keskitumma iho',
     '🧑🏻‍🤝‍🧑🏻' => 'ihmiset käsi kädessä: vaalea iho',
     '🧑🏻‍🤝‍🧑🏼' => 'ihmiset käsi kädessä: vaalea iho, keskivaalea iho',
     '🧑🏻‍🤝‍🧑🏽' => 'ihmiset käsi kädessä: vaalea iho, tummanvaalea iho',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'lippu: Skotlanti',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'lippu: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'perhe: aikuinen, aikuinen, lapsi, lapsi',
-    '🚶🏻‍♀‍➡' => 'kävelevä nainen kohti oikeaa',
-    '🚶🏼‍♀‍➡' => 'kävelevä nainen kohti oikeaa',
-    '🚶🏽‍♀‍➡' => 'kävelevä nainen kohti oikeaa',
-    '🚶🏾‍♀‍➡' => 'kävelevä nainen kohti oikeaa',
-    '🚶🏿‍♀‍➡' => 'kävelevä nainen kohti oikeaa',
-    '🚶🏻‍♂‍➡' => 'kävelevä mies kohti oikeaa',
-    '🚶🏼‍♂‍➡' => 'kävelevä mies kohti oikeaa',
-    '🚶🏽‍♂‍➡' => 'kävelevä mies kohti oikeaa',
-    '🚶🏾‍♂‍➡' => 'kävelevä mies kohti oikeaa',
-    '🚶🏿‍♂‍➡' => 'kävelevä mies kohti oikeaa',
-    '🧎🏻‍♀‍➡' => 'polvistuva nainen kohti oikeaa',
-    '🧎🏼‍♀‍➡' => 'polvistuva nainen kohti oikeaa',
-    '🧎🏽‍♀‍➡' => 'polvistuva nainen kohti oikeaa',
-    '🧎🏾‍♀‍➡' => 'polvistuva nainen kohti oikeaa',
-    '🧎🏿‍♀‍➡' => 'polvistuva nainen kohti oikeaa',
-    '🧎🏻‍♂‍➡' => 'polvistuva mies kohti oikeaa',
-    '🧎🏼‍♂‍➡' => 'polvistuva mies kohti oikeaa',
-    '🧎🏽‍♂‍➡' => 'polvistuva mies kohti oikeaa',
-    '🧎🏾‍♂‍➡' => 'polvistuva mies kohti oikeaa',
-    '🧎🏿‍♂‍➡' => 'polvistuva mies kohti oikeaa',
-    '🧑🏻‍🦯‍➡' => 'henkilö ja valkoinen keppi kohti oikeaa',
-    '🧑🏼‍🦯‍➡' => 'henkilö ja valkoinen keppi kohti oikeaa',
-    '🧑🏽‍🦯‍➡' => 'henkilö ja valkoinen keppi kohti oikeaa',
-    '🧑🏾‍🦯‍➡' => 'henkilö ja valkoinen keppi kohti oikeaa',
-    '🧑🏿‍🦯‍➡' => 'henkilö ja valkoinen keppi kohti oikeaa',
-    '👨🏻‍🦯‍➡' => 'mies ja valkoinen keppi kohti oikeaa',
-    '👨🏼‍🦯‍➡' => 'mies ja valkoinen keppi kohti oikeaa',
-    '👨🏽‍🦯‍➡' => 'mies ja valkoinen keppi kohti oikeaa',
-    '👨🏾‍🦯‍➡' => 'mies ja valkoinen keppi kohti oikeaa',
-    '👨🏿‍🦯‍➡' => 'mies ja valkoinen keppi kohti oikeaa',
-    '👩🏻‍🦯‍➡' => 'nainen ja valkoinen keppi kohti oikeaa',
-    '👩🏼‍🦯‍➡' => 'nainen ja valkoinen keppi kohti oikeaa',
-    '👩🏽‍🦯‍➡' => 'nainen ja valkoinen keppi kohti oikeaa',
-    '👩🏾‍🦯‍➡' => 'nainen ja valkoinen keppi kohti oikeaa',
-    '👩🏿‍🦯‍➡' => 'nainen ja valkoinen keppi kohti oikeaa',
-    '🧑🏻‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa kohti oikeaa',
-    '🧑🏼‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa kohti oikeaa',
-    '🧑🏽‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa kohti oikeaa',
-    '🧑🏾‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa kohti oikeaa',
-    '🧑🏿‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa kohti oikeaa',
-    '👨🏻‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa kohti oikeaa',
-    '👨🏼‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa kohti oikeaa',
-    '👨🏽‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa kohti oikeaa',
-    '👨🏾‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa kohti oikeaa',
-    '👨🏿‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa kohti oikeaa',
-    '👩🏻‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa kohti oikeaa',
-    '👩🏼‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa kohti oikeaa',
-    '👩🏽‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa kohti oikeaa',
-    '👩🏾‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa kohti oikeaa',
-    '👩🏿‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa kohti oikeaa',
-    '🧑🏻‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '🧑🏼‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '🧑🏽‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '🧑🏾‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '🧑🏿‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👨🏻‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👨🏼‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👨🏽‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👨🏾‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👨🏿‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👩🏻‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👩🏼‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👩🏽‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👩🏾‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👩🏿‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '🏃🏻‍♀‍➡' => 'juokseva nainen kohti oikeaa',
-    '🏃🏼‍♀‍➡' => 'juokseva nainen kohti oikeaa',
-    '🏃🏽‍♀‍➡' => 'juokseva nainen kohti oikeaa',
-    '🏃🏾‍♀‍➡' => 'juokseva nainen kohti oikeaa',
-    '🏃🏿‍♀‍➡' => 'juokseva nainen kohti oikeaa',
-    '🏃🏻‍♂‍➡' => 'juokseva mies kohti oikeaa',
-    '🏃🏼‍♂‍➡' => 'juokseva mies kohti oikeaa',
-    '🏃🏽‍♂‍➡' => 'juokseva mies kohti oikeaa',
-    '🏃🏾‍♂‍➡' => 'juokseva mies kohti oikeaa',
-    '🏃🏿‍♂‍➡' => 'juokseva mies kohti oikeaa',
+    '🚶🏻‍♀‍➡' => 'kävelevä nainen: vaalea iho, kohti oikeaa',
+    '🚶🏼‍♀‍➡' => 'kävelevä nainen: keskivaalea iho, kohti oikeaa',
+    '🚶🏽‍♀‍➡' => 'kävelevä nainen: tummanvaalea iho, kohti oikeaa',
+    '🚶🏾‍♀‍➡' => 'kävelevä nainen: keskitumma iho, kohti oikeaa',
+    '🚶🏿‍♀‍➡' => 'kävelevä nainen: tumma iho, kohti oikeaa',
+    '🚶🏻‍♂‍➡' => 'kävelevä mies: vaalea iho, kohti oikeaa',
+    '🚶🏼‍♂‍➡' => 'kävelevä mies: keskivaalea iho, kohti oikeaa',
+    '🚶🏽‍♂‍➡' => 'kävelevä mies: tummanvaalea iho, kohti oikeaa',
+    '🚶🏾‍♂‍➡' => 'kävelevä mies: keskitumma iho, kohti oikeaa',
+    '🚶🏿‍♂‍➡' => 'kävelevä mies: tumma iho, kohti oikeaa',
+    '🧎🏻‍♀‍➡' => 'polvistuva nainen: vaalea iho, kohti oikeaa',
+    '🧎🏼‍♀‍➡' => 'polvistuva nainen: keskivaalea iho, kohti oikeaa',
+    '🧎🏽‍♀‍➡' => 'polvistuva nainen: tummanvaalea iho, kohti oikeaa',
+    '🧎🏾‍♀‍➡' => 'polvistuva nainen: keskitumma iho, kohti oikeaa',
+    '🧎🏿‍♀‍➡' => 'polvistuva nainen: tumma iho, kohti oikeaa',
+    '🧎🏻‍♂‍➡' => 'polvistuva mies: vaalea iho, kohti oikeaa',
+    '🧎🏼‍♂‍➡' => 'polvistuva mies: keskivaalea iho, kohti oikeaa',
+    '🧎🏽‍♂‍➡' => 'polvistuva mies: tummanvaalea iho, kohti oikeaa',
+    '🧎🏾‍♂‍➡' => 'polvistuva mies: keskitumma iho, kohti oikeaa',
+    '🧎🏿‍♂‍➡' => 'polvistuva mies: tumma iho, kohti oikeaa',
+    '🧑🏻‍🦯‍➡' => 'henkilö ja valkoinen keppi: vaalea iho, kohti oikeaa',
+    '🧑🏼‍🦯‍➡' => 'henkilö ja valkoinen keppi: keskivaalea iho, kohti oikeaa',
+    '🧑🏽‍🦯‍➡' => 'henkilö ja valkoinen keppi: tummanvaalea iho, kohti oikeaa',
+    '🧑🏾‍🦯‍➡' => 'henkilö ja valkoinen keppi: keskitumma iho, kohti oikeaa',
+    '🧑🏿‍🦯‍➡' => 'henkilö ja valkoinen keppi: tumma iho, kohti oikeaa',
+    '👨🏻‍🦯‍➡' => 'mies ja valkoinen keppi: vaalea iho, kohti oikeaa',
+    '👨🏼‍🦯‍➡' => 'mies ja valkoinen keppi: keskivaalea iho, kohti oikeaa',
+    '👨🏽‍🦯‍➡' => 'mies ja valkoinen keppi: tummanvaalea iho, kohti oikeaa',
+    '👨🏾‍🦯‍➡' => 'mies ja valkoinen keppi: keskitumma iho, kohti oikeaa',
+    '👨🏿‍🦯‍➡' => 'mies ja valkoinen keppi: tumma iho, kohti oikeaa',
+    '👩🏻‍🦯‍➡' => 'nainen ja valkoinen keppi: vaalea iho, kohti oikeaa',
+    '👩🏼‍🦯‍➡' => 'nainen ja valkoinen keppi: keskivaalea iho, kohti oikeaa',
+    '👩🏽‍🦯‍➡' => 'nainen ja valkoinen keppi: tummanvaalea iho, kohti oikeaa',
+    '👩🏾‍🦯‍➡' => 'nainen ja valkoinen keppi: keskitumma iho, kohti oikeaa',
+    '👩🏿‍🦯‍➡' => 'nainen ja valkoinen keppi: tumma iho, kohti oikeaa',
+    '🧑🏻‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa: vaalea iho, kohti oikeaa',
+    '🧑🏼‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa: keskivaalea iho, kohti oikeaa',
+    '🧑🏽‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa: tummanvaalea iho, kohti oikeaa',
+    '🧑🏾‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa: keskitumma iho, kohti oikeaa',
+    '🧑🏿‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa: tumma iho, kohti oikeaa',
+    '👨🏻‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa: vaalea iho, kohti oikeaa',
+    '👨🏼‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa: keskivaalea iho, kohti oikeaa',
+    '👨🏽‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa: tummanvaalea iho, kohti oikeaa',
+    '👨🏾‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa: keskitumma iho, kohti oikeaa',
+    '👨🏿‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa: tumma iho, kohti oikeaa',
+    '👩🏻‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa: vaalea iho, kohti oikeaa',
+    '👩🏼‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa: keskivaalea iho, kohti oikeaa',
+    '👩🏽‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa: tummanvaalea iho, kohti oikeaa',
+    '👩🏾‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa: keskitumma iho, kohti oikeaa',
+    '👩🏿‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa: tumma iho, kohti oikeaa',
+    '🧑🏻‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa: vaalea iho, kohti oikeaa',
+    '🧑🏼‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa: keskivaalea iho, kohti oikeaa',
+    '🧑🏽‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa: tummanvaalea iho, kohti oikeaa',
+    '🧑🏾‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa: keskitumma iho, kohti oikeaa',
+    '🧑🏿‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa: tumma iho, kohti oikeaa',
+    '👨🏻‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa: vaalea iho, kohti oikeaa',
+    '👨🏼‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa: keskivaalea iho, kohti oikeaa',
+    '👨🏽‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa: tummanvaalea iho, kohti oikeaa',
+    '👨🏾‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa: keskitumma iho, kohti oikeaa',
+    '👨🏿‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa: tumma iho, kohti oikeaa',
+    '👩🏻‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa: vaalea iho, kohti oikeaa',
+    '👩🏼‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa: keskivaalea iho, kohti oikeaa',
+    '👩🏽‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa: tummanvaalea iho, kohti oikeaa',
+    '👩🏾‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa: keskitumma iho, kohti oikeaa',
+    '👩🏿‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa: tumma iho, kohti oikeaa',
+    '🏃🏻‍♀‍➡' => 'juokseva nainen: vaalea iho, kohti oikeaa',
+    '🏃🏼‍♀‍➡' => 'juokseva nainen: keskivaalea iho, kohti oikeaa',
+    '🏃🏽‍♀‍➡' => 'juokseva nainen: tummanvaalea iho, kohti oikeaa',
+    '🏃🏾‍♀‍➡' => 'juokseva nainen: keskitumma iho, kohti oikeaa',
+    '🏃🏿‍♀‍➡' => 'juokseva nainen: tumma iho, kohti oikeaa',
+    '🏃🏻‍♂‍➡' => 'juokseva mies: vaalea iho, kohti oikeaa',
+    '🏃🏼‍♂‍➡' => 'juokseva mies: keskivaalea iho, kohti oikeaa',
+    '🏃🏽‍♂‍➡' => 'juokseva mies: tummanvaalea iho, kohti oikeaa',
+    '🏃🏾‍♂‍➡' => 'juokseva mies: keskitumma iho, kohti oikeaa',
+    '🏃🏿‍♂‍➡' => 'juokseva mies: tumma iho, kohti oikeaa',
     '🫱🏻‍🫲🏼' => 'kädenpuristus: vaalea iho, keskivaalea iho',
     '🫱🏻‍🫲🏽' => 'kädenpuristus: vaalea iho, tummanvaalea iho',
     '🫱🏻‍🫲🏾' => 'kädenpuristus: vaalea iho, keskitumma iho',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'kädenpuristus: tumma iho, keskivaalea iho',
     '🫱🏿‍🫲🏽' => 'kädenpuristus: tumma iho, tummanvaalea iho',
     '🫱🏿‍🫲🏾' => 'kädenpuristus: tumma iho, keskitumma iho',
-    '🚶‍♀‍➡' => 'kävelevä nainen kohti oikeaa',
-    '🚶‍♂‍➡' => 'kävelevä mies kohti oikeaa',
-    '🧎‍♀‍➡' => 'polvistuva nainen kohti oikeaa',
-    '🧎‍♂‍➡' => 'polvistuva mies kohti oikeaa',
-    '🧑‍🦯‍➡' => 'henkilö ja valkoinen keppi kohti oikeaa',
-    '👨‍🦯‍➡' => 'mies ja valkoinen keppi kohti oikeaa',
-    '👩‍🦯‍➡' => 'nainen ja valkoinen keppi kohti oikeaa',
-    '🧑‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa kohti oikeaa',
-    '👨‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa kohti oikeaa',
-    '👩‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa kohti oikeaa',
-    '🧑‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👨‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '👩‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa kohti oikeaa',
-    '🏃‍♀‍➡' => 'juokseva nainen kohti oikeaa',
-    '🏃‍♂‍➡' => 'juokseva mies kohti oikeaa',
+    '🚶‍♀‍➡' => 'kävelevä nainen: kohti oikeaa',
+    '🚶‍♂‍➡' => 'kävelevä mies: kohti oikeaa',
+    '🧎‍♀‍➡' => 'polvistuva nainen: kohti oikeaa',
+    '🧎‍♂‍➡' => 'polvistuva mies: kohti oikeaa',
+    '🧑‍🦯‍➡' => 'henkilö ja valkoinen keppi: kohti oikeaa',
+    '👨‍🦯‍➡' => 'mies ja valkoinen keppi: kohti oikeaa',
+    '👩‍🦯‍➡' => 'nainen ja valkoinen keppi: kohti oikeaa',
+    '🧑‍🦼‍➡' => 'henkilö moottoroidussa pyörätuolissa: kohti oikeaa',
+    '👨‍🦼‍➡' => 'mies moottoroidussa pyörätuolissa: kohti oikeaa',
+    '👩‍🦼‍➡' => 'nainen moottoroidussa pyörätuolissa: kohti oikeaa',
+    '🧑‍🦽‍➡' => 'henkilö käsikäyttöisessä pyörätuolissa: kohti oikeaa',
+    '👨‍🦽‍➡' => 'mies käsikäyttöisessä pyörätuolissa: kohti oikeaa',
+    '👩‍🦽‍➡' => 'nainen käsikäyttöisessä pyörätuolissa: kohti oikeaa',
+    '🏃‍♀‍➡' => 'juokseva nainen: kohti oikeaa',
+    '🏃‍♂‍➡' => 'juokseva mies: kohti oikeaa',
     '👩‍❤‍👨' => 'pariskunta ja sydän: nainen, mies',
     '👨‍❤‍👨' => 'pariskunta ja sydän: mies, mies',
     '👩‍❤‍👩' => 'pariskunta ja sydän: nainen, nainen',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'aikuinen: tummanvaalea iho, kalju',
     '🧑🏾‍🦲' => 'aikuinen: keskitumma iho, kalju',
     '🧑🏿‍🦲' => 'aikuinen: tumma iho, kalju',
+    '🧑🏻‍🩰' => 'balettitanssija: vaalea iho',
+    '🧑🏼‍🩰' => 'balettitanssija: keskivaalea iho',
+    '🧑🏽‍🩰' => 'balettitanssija: tummanvaalea iho',
+    '🧑🏾‍🩰' => 'balettitanssija: keskitumma iho',
+    '🧑🏿‍🩰' => 'balettitanssija: tumma iho',
     '🧔🏻‍♂' => 'parrakas mies: vaalea iho',
     '🧔🏼‍♂' => 'parrakas mies: keskivaalea iho',
     '🧔🏽‍♂' => 'parrakas mies: tummanvaalea iho',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'kävelevä nainen: tummanvaalea iho',
     '🚶🏾‍♀' => 'kävelevä nainen: keskitumma iho',
     '🚶🏿‍♀' => 'kävelevä nainen: tumma iho',
-    '🚶🏻‍➡' => 'jalankulkija kohti oikeaa',
-    '🚶🏼‍➡' => 'jalankulkija kohti oikeaa',
-    '🚶🏽‍➡' => 'jalankulkija kohti oikeaa',
-    '🚶🏾‍➡' => 'jalankulkija kohti oikeaa',
-    '🚶🏿‍➡' => 'jalankulkija kohti oikeaa',
+    '🚶🏻‍➡' => 'jalankulkija: vaalea iho, kohti oikeaa',
+    '🚶🏼‍➡' => 'jalankulkija: keskivaalea iho, kohti oikeaa',
+    '🚶🏽‍➡' => 'jalankulkija: tummanvaalea iho, kohti oikeaa',
+    '🚶🏾‍➡' => 'jalankulkija: keskitumma iho, kohti oikeaa',
+    '🚶🏿‍➡' => 'jalankulkija: tumma iho, kohti oikeaa',
     '🧍🏻‍♂' => 'seisova mies: vaalea iho',
     '🧍🏼‍♂' => 'seisova mies: keskivaalea iho',
     '🧍🏽‍♂' => 'seisova mies: tummanvaalea iho',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'polvistuva nainen: tummanvaalea iho',
     '🧎🏾‍♀' => 'polvistuva nainen: keskitumma iho',
     '🧎🏿‍♀' => 'polvistuva nainen: tumma iho',
-    '🧎🏻‍➡' => 'polvistuva ihminen kohti oikeaa',
-    '🧎🏼‍➡' => 'polvistuva ihminen kohti oikeaa',
-    '🧎🏽‍➡' => 'polvistuva ihminen kohti oikeaa',
-    '🧎🏾‍➡' => 'polvistuva ihminen kohti oikeaa',
-    '🧎🏿‍➡' => 'polvistuva ihminen kohti oikeaa',
+    '🧎🏻‍➡' => 'polvistuva ihminen: vaalea iho, kohti oikeaa',
+    '🧎🏼‍➡' => 'polvistuva ihminen: keskivaalea iho, kohti oikeaa',
+    '🧎🏽‍➡' => 'polvistuva ihminen: tummanvaalea iho, kohti oikeaa',
+    '🧎🏾‍➡' => 'polvistuva ihminen: keskitumma iho, kohti oikeaa',
+    '🧎🏿‍➡' => 'polvistuva ihminen: tumma iho, kohti oikeaa',
     '🧑🏻‍🦯' => 'henkilö ja valkoinen keppi: vaalea iho',
     '🧑🏼‍🦯' => 'henkilö ja valkoinen keppi: keskivaalea iho',
     '🧑🏽‍🦯' => 'henkilö ja valkoinen keppi: tummanvaalea iho',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'juokseva nainen: tummanvaalea iho',
     '🏃🏾‍♀' => 'juokseva nainen: keskitumma iho',
     '🏃🏿‍♀' => 'juokseva nainen: tumma iho',
-    '🏃🏻‍➡' => 'juoksija kohti oikeaa',
-    '🏃🏼‍➡' => 'juoksija kohti oikeaa',
-    '🏃🏽‍➡' => 'juoksija kohti oikeaa',
-    '🏃🏾‍➡' => 'juoksija kohti oikeaa',
-    '🏃🏿‍➡' => 'juoksija kohti oikeaa',
+    '🏃🏻‍➡' => 'juoksija: vaalea iho, kohti oikeaa',
+    '🏃🏼‍➡' => 'juoksija: keskivaalea iho, kohti oikeaa',
+    '🏃🏽‍➡' => 'juoksija: tummanvaalea iho, kohti oikeaa',
+    '🏃🏾‍➡' => 'juoksija: keskitumma iho, kohti oikeaa',
+    '🏃🏿‍➡' => 'juoksija: tumma iho, kohti oikeaa',
+    '👯🏻‍♀' => 'tanssivat puputytöt: vaalea iho',
+    '👯🏼‍♀' => 'tanssivat puputytöt: keskivaalea iho',
+    '👯🏽‍♀' => 'tanssivat puputytöt: tummanvaalea iho',
+    '👯🏾‍♀' => 'tanssivat puputytöt: keskitumma iho',
+    '👯🏿‍♀' => 'tanssivat puputytöt: tumma iho',
+    '👯🏻‍♂' => 'tanssivat pupupojat: vaalea iho',
+    '👯🏼‍♂' => 'tanssivat pupupojat: keskivaalea iho',
+    '👯🏽‍♂' => 'tanssivat pupupojat: tummanvaalea iho',
+    '👯🏾‍♂' => 'tanssivat pupupojat: keskitumma iho',
+    '👯🏿‍♂' => 'tanssivat pupupojat: tumma iho',
     '🧖🏻‍♂' => 'mies saunassa: vaalea iho',
     '🧖🏼‍♂' => 'mies saunassa: keskivaalea iho',
     '🧖🏽‍♂' => 'mies saunassa: tummanvaalea iho',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'kärrynpyörää tekevä nainen: tummanvaalea iho',
     '🤸🏾‍♀' => 'kärrynpyörää tekevä nainen: keskitumma iho',
     '🤸🏿‍♀' => 'kärrynpyörää tekevä nainen: tumma iho',
+    '🤼🏻‍♀' => 'painivat naiset: vaalea iho',
+    '🤼🏼‍♀' => 'painivat naiset: keskivaalea iho',
+    '🤼🏽‍♀' => 'painivat naiset: tummanvaalea iho',
+    '🤼🏾‍♀' => 'painivat naiset: keskitumma iho',
+    '🤼🏿‍♀' => 'painivat naiset: tumma iho',
+    '🤼🏻‍♂' => 'painivat miehet: vaalea iho',
+    '🤼🏼‍♂' => 'painivat miehet: keskivaalea iho',
+    '🤼🏽‍♂' => 'painivat miehet: tummanvaalea iho',
+    '🤼🏾‍♂' => 'painivat miehet: keskitumma iho',
+    '🤼🏿‍♂' => 'painivat miehet: tumma iho',
     '🤽🏻‍♂' => 'vesipalloa pelaava mies: vaalea iho',
     '🤽🏼‍♂' => 'vesipalloa pelaava mies: keskivaalea iho',
     '🤽🏽‍♂' => 'vesipalloa pelaava mies: tummanvaalea iho',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'nainen: kiharatukkainen',
     '👩‍🦳' => 'nainen: valkotukkainen',
     '👩‍🦲' => 'nainen: kalju',
-    '🚶‍➡' => 'jalankulkija kohti oikeaa',
-    '🧎‍➡' => 'polvistuva ihminen kohti oikeaa',
-    '🏃‍➡' => 'juoksija kohti oikeaa',
+    '🚶‍➡' => 'jalankulkija: kohti oikeaa',
+    '🧎‍➡' => 'polvistuva ihminen: kohti oikeaa',
+    '🏃‍➡' => 'juoksija: kohti oikeaa',
     '👨‍👦' => 'perhe: mies, poika',
     '👨‍👧' => 'perhe: mies, tyttö',
     '👩‍👦' => 'perhe: nainen, poika',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'nainen käsikäyttöisessä pyörätuolissa',
     '🏃‍♂' => 'juokseva mies',
     '🏃‍♀' => 'juokseva nainen',
+    '🧑‍🩰' => 'balettitanssija',
     '👯‍♂' => 'tanssivat pupupojat',
     '👯‍♀' => 'tanssivat puputytöt',
     '🧖‍♂' => 'mies saunassa',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'levitoiva mies puvussa: tummanvaalea iho',
     '🕴🏾' => 'levitoiva mies puvussa: keskitumma iho',
     '🕴🏿' => 'levitoiva mies puvussa: tumma iho',
+    '👯🏻' => 'puputytöt: vaalea iho',
+    '👯🏼' => 'puputytöt: keskivaalea iho',
+    '👯🏽' => 'puputytöt: tummanvaalea iho',
+    '👯🏾' => 'puputytöt: keskitumma iho',
+    '👯🏿' => 'puputytöt: tumma iho',
     '🧖🏻' => 'henkilö saunassa: vaalea iho',
     '🧖🏼' => 'henkilö saunassa: keskivaalea iho',
     '🧖🏽' => 'henkilö saunassa: tummanvaalea iho',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'kärrynpyörä: tummanvaalea iho',
     '🤸🏾' => 'kärrynpyörä: keskitumma iho',
     '🤸🏿' => 'kärrynpyörä: tumma iho',
+    '🤼🏻' => 'painijat: vaalea iho',
+    '🤼🏼' => 'painijat: keskivaalea iho',
+    '🤼🏽' => 'painijat: tummanvaalea iho',
+    '🤼🏾' => 'painijat: keskitumma iho',
+    '🤼🏿' => 'painijat: tumma iho',
     '🤽🏻' => 'vesipalloilija: vaalea iho',
     '🤽🏼' => 'vesipalloilija: keskivaalea iho',
     '🤽🏽' => 'vesipalloilija: tummanvaalea iho',
@@ -2391,13 +2547,6 @@
     '🏽' => 'tummanvaalea iho',
     '🏾' => 'keskitumma iho',
     '🏿' => 'tumma iho',
-    '🪉' => 'harppu',
-    '🪏' => 'lapio',
-    '🪾' => 'lehdetön puu',
-    '🫆' => 'sormenjälki',
-    '🫜' => 'juures',
-    '🫟' => 'roiske',
-    '🫩' => 'silmäpussit',
     '😀' => 'leveä hymy',
     '😃' => 'hymy suu auki',
     '😄' => 'hymyilevät silmät ja suu',
@@ -2451,6 +2600,7 @@
     '😪' => 'unelias',
     '🤤' => 'kuolaava',
     '😴' => 'nukkuva',
+    '🫩' => 'silmäpussit',
     '😷' => 'naama ja hengityssuoja',
     '🤒' => 'naama ja kuumemittari',
     '🤕' => 'naama ja pääside',
@@ -2477,6 +2627,7 @@
     '😯' => 'järkyttynyt',
     '😲' => 'ällistynyt',
     '😳' => 'punastunut naama',
+    '🫪' => 'vääristyneet kasvot',
     '🥺' => 'anova',
     '🥹' => 'kyyneliä pidättelevä naama',
     '😦' => 'surullinen ja suu auki',
@@ -2548,6 +2699,7 @@
     '💋' => 'huulipunajälki',
     '💯' => 'sata pistettä',
     '💢' => 'viha',
+    '🫯' => 'tappelupilvi',
     '💥' => 'törmäys',
     '💫' => 'pyörryttävä',
     '💦' => 'hikipisarat',
@@ -2671,6 +2823,7 @@
     '🧞' => 'henki',
     '🧟' => 'zombi',
     '🧌' => 'trolli',
+    '🫈' => 'karvainen otus',
     '💆' => 'hieronta',
     '💇' => 'hiustenleikkaus',
     '🚶' => 'jalankulkija',
@@ -2714,6 +2867,7 @@
     '🫂' => 'halaus',
     '👪' => 'perhe',
     '👣' => 'jalanjäljet',
+    '🫆' => 'sormenjälki',
     '🦰' => 'punatukkainen',
     '🦱' => 'kiharatukkainen',
     '🦳' => 'valkotukkainen',
@@ -2813,6 +2967,7 @@
     '🐳' => 'suihkuttava valas',
     '🐋' => 'valas',
     '🐬' => 'delfiini',
+    '🫍' => 'miekkavalas',
     '🦭' => 'hylje',
     '🐟' => 'kala',
     '🐠' => 'trooppinen kala',
@@ -2822,6 +2977,11 @@
     '🐚' => 'kotilo',
     '🪸' => 'koralli',
     '🪼' => 'meduusa',
+    '🦀' => 'rapu',
+    '🦞' => 'hummeri',
+    '🦐' => 'katkarapu',
+    '🦑' => 'kalmari',
+    '🦪' => 'osteri',
     '🐌' => 'etana',
     '🦋' => 'perhonen',
     '🐛' => 'ötökkä',
@@ -2866,6 +3026,7 @@
     '🪹' => 'tyhjä pesä',
     '🪺' => 'munia pesässä',
     '🍄' => 'sieni',
+    '🪾' => 'lehdetön puu',
     '🍇' => 'viinirypäleet',
     '🍈' => 'meloni',
     '🍉' => 'vesimeloni',
@@ -2902,6 +3063,7 @@
     '🌰' => 'kastanja',
     '🫚' => 'inkivääri',
     '🫛' => 'herneenpalko',
+    '🫜' => 'juures',
     '🍞' => 'leipä',
     '🥐' => 'voisarvi',
     '🥖' => 'patonki',
@@ -2953,11 +3115,6 @@
     '🥟' => 'taikinanyytti',
     '🥠' => 'onnenkeksi',
     '🥡' => 'ateriarasia',
-    '🦀' => 'rapu',
-    '🦞' => 'hummeri',
-    '🦐' => 'katkarapu',
-    '🦑' => 'kalmari',
-    '🦪' => 'osteri',
     '🍦' => 'pehmis',
     '🍧' => 'jäähilejälkiruoka',
     '🍨' => 'jäätelö',
@@ -3008,6 +3165,7 @@
     '🧭' => 'kompassi',
     '🏔' => 'lumihuippuinen vuori',
     '⛰' => 'vuori',
+    '🛘' => 'maanvyörymä',
     '🌋' => 'tulivuori',
     '🗻' => 'Fuji-vuori',
     '🏕' => 'telttailu',
@@ -3368,16 +3526,18 @@
     '🎧' => 'kuuloke',
     '📻' => 'radio',
     '🎷' => 'saksofoni',
+    '🎺' => 'trumpetti',
+    '🪊' => 'pasuuna',
     '🪗' => 'harmonikka',
     '🎸' => 'kitara',
     '🎹' => 'koskettimet',
-    '🎺' => 'trumpetti',
     '🎻' => 'viulu',
     '🪕' => 'banjo',
     '🥁' => 'rumpu',
     '🪘' => 'congarumpu',
     '🪇' => 'marakassit',
     '🪈' => 'huilu',
+    '🪉' => 'harppu',
     '📱' => 'kännykkä',
     '📲' => 'kännykkä ja nuoli',
     '☎' => 'puhelin',
@@ -3431,8 +3591,9 @@
     '📑' => 'kirjanmerkkivälilehdet',
     '🔖' => 'kirjanmerkki',
     '🏷' => 'lappu',
-    '💰' => 'rahasäkki',
     '🪙' => 'kolikko',
+    '💰' => 'rahasäkki',
+    '🪎' => 'aarrearkku',
     '💴' => 'yen-seteli',
     '💵' => 'dollariseteli',
     '💶' => 'euroseteli',
@@ -3515,6 +3676,7 @@
     '🧰' => 'työkalulaatikko',
     '🧲' => 'magneetti',
     '🪜' => 'tikkaat',
+    '🪏' => 'lapio',
     '⚗' => 'tislauskolvi',
     '🧪' => 'koeputki',
     '🧫' => 'petrimalja',
@@ -3698,6 +3860,7 @@
     '✴' => 'kahdeksankärkinen tähti',
     '❇' => 'kipinä',
     '™' => 'tavaramerkki',
+    '🫟' => 'roiske',
     '🔠' => 'syötä isoja kirjaimia',
     '🔡' => 'syötä pieniä kirjaimia',
     '🔢' => 'syötä numeroja',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fo.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'tvey íð mussast: kona, kona, myrkur húðarlitur, miðal húðarlitur',
     '👩🏿‍❤‍💋‍👩🏾' => 'tvey íð mussast: kona, kona, myrkur húðarlitur, miðalmyrkur húðarlitur',
     '👩🏿‍❤‍💋‍👩🏿' => 'tvey íð mussast: kona, kona, myrkur húðarlitur',
+    '🧑🏻‍🫯‍🧑🏼' => 'glímingardystur: ljósur húðarlitur, miðalljósur húðarlitur',
+    '🧑🏻‍🫯‍🧑🏽' => 'glímingardystur: ljósur húðarlitur, miðal húðarlitur',
+    '🧑🏻‍🫯‍🧑🏾' => 'glímingardystur: ljósur húðarlitur, miðalmyrkur húðarlitur',
+    '🧑🏻‍🫯‍🧑🏿' => 'glímingardystur: ljósur húðarlitur, myrkur húðarlitur',
+    '🧑🏼‍🫯‍🧑🏻' => 'glímingardystur: miðalljósur húðarlitur, ljósur húðarlitur',
+    '🧑🏼‍🫯‍🧑🏽' => 'glímingardystur: miðalljósur húðarlitur, miðal húðarlitur',
+    '🧑🏼‍🫯‍🧑🏾' => 'glímingardystur: miðalljósur húðarlitur, miðalmyrkur húðarlitur',
+    '🧑🏼‍🫯‍🧑🏿' => 'glímingardystur: miðalljósur húðarlitur, myrkur húðarlitur',
+    '🧑🏽‍🫯‍🧑🏻' => 'glímingardystur: miðal húðarlitur, ljósur húðarlitur',
+    '🧑🏽‍🫯‍🧑🏼' => 'glímingardystur: miðal húðarlitur, miðalljósur húðarlitur',
+    '🧑🏽‍🫯‍🧑🏾' => 'glímingardystur: miðal húðarlitur, miðalmyrkur húðarlitur',
+    '🧑🏽‍🫯‍🧑🏿' => 'glímingardystur: miðal húðarlitur, myrkur húðarlitur',
+    '🧑🏾‍🫯‍🧑🏻' => 'glímingardystur: miðalmyrkur húðarlitur, ljósur húðarlitur',
+    '🧑🏾‍🫯‍🧑🏼' => 'glímingardystur: miðalmyrkur húðarlitur, miðalljósur húðarlitur',
+    '🧑🏾‍🫯‍🧑🏽' => 'glímingardystur: miðalmyrkur húðarlitur, miðal húðarlitur',
+    '🧑🏾‍🫯‍🧑🏿' => 'glímingardystur: miðalmyrkur húðarlitur, myrkur húðarlitur',
+    '🧑🏿‍🫯‍🧑🏻' => 'glímingardystur: myrkur húðarlitur, ljósur húðarlitur',
+    '🧑🏿‍🫯‍🧑🏼' => 'glímingardystur: myrkur húðarlitur, miðalljósur húðarlitur',
+    '🧑🏿‍🫯‍🧑🏽' => 'glímingardystur: myrkur húðarlitur, miðal húðarlitur',
+    '🧑🏿‍🫯‍🧑🏾' => 'glímingardystur: myrkur húðarlitur, miðalmyrkur húðarlitur',
     '🧑🏻‍❤‍🧑🏼' => 'par og hjarta: persónur, persónur, ljósur húðarlitur, miðalljósur húðarlitur',
     '🧑🏻‍❤‍🧑🏽' => 'par og hjarta: persónur, persónur, ljósur húðarlitur, miðal húðarlitur',
     '🧑🏻‍❤‍🧑🏾' => 'par og hjarta: persónur, persónur, ljósur húðarlitur, miðalmyrkur húðarlitur',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par og hjarta: persónur, persónur, myrkur húðarlitur, miðalljósur húðarlitur',
     '🧑🏿‍❤‍🧑🏽' => 'par og hjarta: persónur, persónur, myrkur húðarlitur, miðal húðarlitur',
     '🧑🏿‍❤‍🧑🏾' => 'par og hjarta: persónur, persónur, myrkur húðarlitur, miðalmyrkur húðarlitur',
+    '🧑🏻‍🐰‍🧑🏼' => 'fólk við haruoyrum: ljósur húðarlitur, miðalljósur húðarlitur',
+    '🧑🏻‍🐰‍🧑🏽' => 'fólk við haruoyrum: ljósur húðarlitur, miðal húðarlitur',
+    '🧑🏻‍🐰‍🧑🏾' => 'fólk við haruoyrum: ljósur húðarlitur, miðalmyrkur húðarlitur',
+    '🧑🏻‍🐰‍🧑🏿' => 'fólk við haruoyrum: ljósur húðarlitur, myrkur húðarlitur',
+    '🧑🏼‍🐰‍🧑🏻' => 'fólk við haruoyrum: miðalljósur húðarlitur, ljósur húðarlitur',
+    '🧑🏼‍🐰‍🧑🏽' => 'fólk við haruoyrum: miðalljósur húðarlitur, miðal húðarlitur',
+    '🧑🏼‍🐰‍🧑🏾' => 'fólk við haruoyrum: miðalljósur húðarlitur, miðalmyrkur húðarlitur',
+    '🧑🏼‍🐰‍🧑🏿' => 'fólk við haruoyrum: miðalljósur húðarlitur, myrkur húðarlitur',
+    '🧑🏽‍🐰‍🧑🏻' => 'fólk við haruoyrum: miðal húðarlitur, ljósur húðarlitur',
+    '🧑🏽‍🐰‍🧑🏼' => 'fólk við haruoyrum: miðal húðarlitur, miðalljósur húðarlitur',
+    '🧑🏽‍🐰‍🧑🏾' => 'fólk við haruoyrum: miðal húðarlitur, miðalmyrkur húðarlitur',
+    '🧑🏽‍🐰‍🧑🏿' => 'fólk við haruoyrum: miðal húðarlitur, myrkur húðarlitur',
+    '🧑🏾‍🐰‍🧑🏻' => 'fólk við haruoyrum: miðalmyrkur húðarlitur, ljósur húðarlitur',
+    '🧑🏾‍🐰‍🧑🏼' => 'fólk við haruoyrum: miðalmyrkur húðarlitur, miðalljósur húðarlitur',
+    '🧑🏾‍🐰‍🧑🏽' => 'fólk við haruoyrum: miðalmyrkur húðarlitur, miðal húðarlitur',
+    '🧑🏾‍🐰‍🧑🏿' => 'fólk við haruoyrum: miðalmyrkur húðarlitur, myrkur húðarlitur',
+    '🧑🏿‍🐰‍🧑🏻' => 'fólk við haruoyrum: myrkur húðarlitur, ljósur húðarlitur',
+    '🧑🏿‍🐰‍🧑🏼' => 'fólk við haruoyrum: myrkur húðarlitur, miðalljósur húðarlitur',
+    '🧑🏿‍🐰‍🧑🏽' => 'fólk við haruoyrum: myrkur húðarlitur, miðal húðarlitur',
+    '🧑🏿‍🐰‍🧑🏾' => 'fólk við haruoyrum: myrkur húðarlitur, miðalmyrkur húðarlitur',
+    '👨🏻‍🫯‍👨🏼' => 'mannligur glímingardystur: ljósur húðarlitur, miðalljósur húðarlitur',
+    '👨🏻‍🫯‍👨🏽' => 'mannligur glímingardystur: ljósur húðarlitur, miðal húðarlitur',
+    '👨🏻‍🫯‍👨🏾' => 'mannligur glímingardystur: ljósur húðarlitur, miðalmyrkur húðarlitur',
+    '👨🏻‍🫯‍👨🏿' => 'mannligur glímingardystur: ljósur húðarlitur, myrkur húðarlitur',
+    '👨🏼‍🫯‍👨🏻' => 'mannligur glímingardystur: miðalljósur húðarlitur, ljósur húðarlitur',
+    '👨🏼‍🫯‍👨🏽' => 'mannligur glímingardystur: miðalljósur húðarlitur, miðal húðarlitur',
+    '👨🏼‍🫯‍👨🏾' => 'mannligur glímingardystur: miðalljósur húðarlitur, miðalmyrkur húðarlitur',
+    '👨🏼‍🫯‍👨🏿' => 'mannligur glímingardystur: miðalljósur húðarlitur, myrkur húðarlitur',
+    '👨🏽‍🫯‍👨🏻' => 'mannligur glímingardystur: miðal húðarlitur, ljósur húðarlitur',
+    '👨🏽‍🫯‍👨🏼' => 'mannligur glímingardystur: miðal húðarlitur, miðalljósur húðarlitur',
+    '👨🏽‍🫯‍👨🏾' => 'mannligur glímingardystur: miðal húðarlitur, miðalmyrkur húðarlitur',
+    '👨🏽‍🫯‍👨🏿' => 'mannligur glímingardystur: miðal húðarlitur, myrkur húðarlitur',
+    '👨🏾‍🫯‍👨🏻' => 'mannligur glímingardystur: miðalmyrkur húðarlitur, ljósur húðarlitur',
+    '👨🏾‍🫯‍👨🏼' => 'mannligur glímingardystur: miðalmyrkur húðarlitur, miðalljósur húðarlitur',
+    '👨🏾‍🫯‍👨🏽' => 'mannligur glímingardystur: miðalmyrkur húðarlitur, miðal húðarlitur',
+    '👨🏾‍🫯‍👨🏿' => 'mannligur glímingardystur: miðalmyrkur húðarlitur, myrkur húðarlitur',
+    '👨🏿‍🫯‍👨🏻' => 'mannligur glímingardystur: myrkur húðarlitur, ljósur húðarlitur',
+    '👨🏿‍🫯‍👨🏼' => 'mannligur glímingardystur: myrkur húðarlitur, miðalljósur húðarlitur',
+    '👨🏿‍🫯‍👨🏽' => 'mannligur glímingardystur: myrkur húðarlitur, miðal húðarlitur',
+    '👨🏿‍🫯‍👨🏾' => 'mannligur glímingardystur: myrkur húðarlitur, miðalmyrkur húðarlitur',
     '👨🏻‍❤‍👨🏻' => 'par og hjarta: maður, maður, ljósur húðarlitur',
     '👨🏻‍❤‍👨🏼' => 'par og hjarta: maður, maður, ljósur húðarlitur, miðalljósur húðarlitur',
     '👨🏻‍❤‍👨🏽' => 'par og hjarta: maður, maður, ljósur húðarlitur, miðal húðarlitur',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'par og hjarta: maður, maður, myrkur húðarlitur, miðal húðarlitur',
     '👨🏿‍❤‍👨🏾' => 'par og hjarta: maður, maður, myrkur húðarlitur, miðalmyrkur húðarlitur',
     '👨🏿‍❤‍👨🏿' => 'par og hjarta: maður, maður, myrkur húðarlitur',
+    '👨🏻‍🐰‍👨🏼' => 'menn við haruoyrum: ljósur húðarlitur, miðalljósur húðarlitur',
+    '👨🏻‍🐰‍👨🏽' => 'menn við haruoyrum: ljósur húðarlitur, miðal húðarlitur',
+    '👨🏻‍🐰‍👨🏾' => 'menn við haruoyrum: ljósur húðarlitur, miðalmyrkur húðarlitur',
+    '👨🏻‍🐰‍👨🏿' => 'menn við haruoyrum: ljósur húðarlitur, myrkur húðarlitur',
+    '👨🏼‍🐰‍👨🏻' => 'menn við haruoyrum: miðalljósur húðarlitur, ljósur húðarlitur',
+    '👨🏼‍🐰‍👨🏽' => 'menn við haruoyrum: miðalljósur húðarlitur, miðal húðarlitur',
+    '👨🏼‍🐰‍👨🏾' => 'menn við haruoyrum: miðalljósur húðarlitur, miðalmyrkur húðarlitur',
+    '👨🏼‍🐰‍👨🏿' => 'menn við haruoyrum: miðalljósur húðarlitur, myrkur húðarlitur',
+    '👨🏽‍🐰‍👨🏻' => 'menn við haruoyrum: miðal húðarlitur, ljósur húðarlitur',
+    '👨🏽‍🐰‍👨🏼' => 'menn við haruoyrum: miðal húðarlitur, miðalljósur húðarlitur',
+    '👨🏽‍🐰‍👨🏾' => 'menn við haruoyrum: miðal húðarlitur, miðalmyrkur húðarlitur',
+    '👨🏽‍🐰‍👨🏿' => 'menn við haruoyrum: miðal húðarlitur, myrkur húðarlitur',
+    '👨🏾‍🐰‍👨🏻' => 'menn við haruoyrum: miðalmyrkur húðarlitur, ljósur húðarlitur',
+    '👨🏾‍🐰‍👨🏼' => 'menn við haruoyrum: miðalmyrkur húðarlitur, miðalljósur húðarlitur',
+    '👨🏾‍🐰‍👨🏽' => 'menn við haruoyrum: miðalmyrkur húðarlitur, miðal húðarlitur',
+    '👨🏾‍🐰‍👨🏿' => 'menn við haruoyrum: miðalmyrkur húðarlitur, myrkur húðarlitur',
+    '👨🏿‍🐰‍👨🏻' => 'menn við haruoyrum: myrkur húðarlitur, ljósur húðarlitur',
+    '👨🏿‍🐰‍👨🏼' => 'menn við haruoyrum: myrkur húðarlitur, miðalljósur húðarlitur',
+    '👨🏿‍🐰‍👨🏽' => 'menn við haruoyrum: myrkur húðarlitur, miðal húðarlitur',
+    '👨🏿‍🐰‍👨🏾' => 'menn við haruoyrum: myrkur húðarlitur, miðalmyrkur húðarlitur',
+    '👩🏻‍🫯‍👩🏼' => 'kvinnuligur glímingardystur: ljósur húðarlitur, miðalljósur húðarlitur',
+    '👩🏻‍🫯‍👩🏽' => 'kvinnuligur glímingardystur: ljósur húðarlitur, miðal húðarlitur',
+    '👩🏻‍🫯‍👩🏾' => 'kvinnuligur glímingardystur: ljósur húðarlitur, miðalmyrkur húðarlitur',
+    '👩🏻‍🫯‍👩🏿' => 'kvinnuligur glímingardystur: ljósur húðarlitur, myrkur húðarlitur',
+    '👩🏼‍🫯‍👩🏻' => 'kvinnuligur glímingardystur: miðalljósur húðarlitur, ljósur húðarlitur',
+    '👩🏼‍🫯‍👩🏽' => 'kvinnuligur glímingardystur: miðalljósur húðarlitur, miðal húðarlitur',
+    '👩🏼‍🫯‍👩🏾' => 'kvinnuligur glímingardystur: miðalljósur húðarlitur, miðalmyrkur húðarlitur',
+    '👩🏼‍🫯‍👩🏿' => 'kvinnuligur glímingardystur: miðalljósur húðarlitur, myrkur húðarlitur',
+    '👩🏽‍🫯‍👩🏻' => 'kvinnuligur glímingardystur: miðal húðarlitur, ljósur húðarlitur',
+    '👩🏽‍🫯‍👩🏼' => 'kvinnuligur glímingardystur: miðal húðarlitur, miðalljósur húðarlitur',
+    '👩🏽‍🫯‍👩🏾' => 'kvinnuligur glímingardystur: miðal húðarlitur, miðalmyrkur húðarlitur',
+    '👩🏽‍🫯‍👩🏿' => 'kvinnuligur glímingardystur: miðal húðarlitur, myrkur húðarlitur',
+    '👩🏾‍🫯‍👩🏻' => 'kvinnuligur glímingardystur: miðalmyrkur húðarlitur, ljósur húðarlitur',
+    '👩🏾‍🫯‍👩🏼' => 'kvinnuligur glímingardystur: miðalmyrkur húðarlitur, miðalljósur húðarlitur',
+    '👩🏾‍🫯‍👩🏽' => 'kvinnuligur glímingardystur: miðalmyrkur húðarlitur, miðal húðarlitur',
+    '👩🏾‍🫯‍👩🏿' => 'kvinnuligur glímingardystur: miðalmyrkur húðarlitur, myrkur húðarlitur',
+    '👩🏿‍🫯‍👩🏻' => 'kvinnuligur glímingardystur: myrkur húðarlitur, ljósur húðarlitur',
+    '👩🏿‍🫯‍👩🏼' => 'kvinnuligur glímingardystur: myrkur húðarlitur, miðalljósur húðarlitur',
+    '👩🏿‍🫯‍👩🏽' => 'kvinnuligur glímingardystur: myrkur húðarlitur, miðal húðarlitur',
+    '👩🏿‍🫯‍👩🏾' => 'kvinnuligur glímingardystur: myrkur húðarlitur, miðalmyrkur húðarlitur',
     '👩🏻‍❤‍👨🏻' => 'par og hjarta: kona, maður, ljósur húðarlitur',
     '👩🏻‍❤‍👨🏼' => 'par og hjarta: kona, maður, ljósur húðarlitur, miðalljósur húðarlitur',
     '👩🏻‍❤‍👨🏽' => 'par og hjarta: kona, maður, ljósur húðarlitur, miðal húðarlitur',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'par og hjarta: kona, kona, myrkur húðarlitur, miðal húðarlitur',
     '👩🏿‍❤‍👩🏾' => 'par og hjarta: kona, kona, myrkur húðarlitur, miðalmyrkur húðarlitur',
     '👩🏿‍❤‍👩🏿' => 'par og hjarta: kona, kona, myrkur húðarlitur',
+    '👩🏻‍🐰‍👩🏼' => 'kvinnur við haruoyrum: ljósur húðarlitur, miðalljósur húðarlitur',
+    '👩🏻‍🐰‍👩🏽' => 'kvinnur við haruoyrum: ljósur húðarlitur, miðal húðarlitur',
+    '👩🏻‍🐰‍👩🏾' => 'kvinnur við haruoyrum: ljósur húðarlitur, miðalmyrkur húðarlitur',
+    '👩🏻‍🐰‍👩🏿' => 'kvinnur við haruoyrum: ljósur húðarlitur, myrkur húðarlitur',
+    '👩🏼‍🐰‍👩🏻' => 'kvinnur við haruoyrum: miðalljósur húðarlitur, ljósur húðarlitur',
+    '👩🏼‍🐰‍👩🏽' => 'kvinnur við haruoyrum: miðalljósur húðarlitur, miðal húðarlitur',
+    '👩🏼‍🐰‍👩🏾' => 'kvinnur við haruoyrum: miðalljósur húðarlitur, miðalmyrkur húðarlitur',
+    '👩🏼‍🐰‍👩🏿' => 'kvinnur við haruoyrum: miðalljósur húðarlitur, myrkur húðarlitur',
+    '👩🏽‍🐰‍👩🏻' => 'kvinnur við haruoyrum: miðal húðarlitur, ljósur húðarlitur',
+    '👩🏽‍🐰‍👩🏼' => 'kvinnur við haruoyrum: miðal húðarlitur, miðalljósur húðarlitur',
+    '👩🏽‍🐰‍👩🏾' => 'kvinnur við haruoyrum: miðal húðarlitur, miðalmyrkur húðarlitur',
+    '👩🏽‍🐰‍👩🏿' => 'kvinnur við haruoyrum: miðal húðarlitur, myrkur húðarlitur',
+    '👩🏾‍🐰‍👩🏻' => 'kvinnur við haruoyrum: miðalmyrkur húðarlitur, ljósur húðarlitur',
+    '👩🏾‍🐰‍👩🏼' => 'kvinnur við haruoyrum: miðalmyrkur húðarlitur, miðalljósur húðarlitur',
+    '👩🏾‍🐰‍👩🏽' => 'kvinnur við haruoyrum: miðalmyrkur húðarlitur, miðal húðarlitur',
+    '👩🏾‍🐰‍👩🏿' => 'kvinnur við haruoyrum: miðalmyrkur húðarlitur, myrkur húðarlitur',
+    '👩🏿‍🐰‍👩🏻' => 'kvinnur við haruoyrum: myrkur húðarlitur, ljósur húðarlitur',
+    '👩🏿‍🐰‍👩🏼' => 'kvinnur við haruoyrum: myrkur húðarlitur, miðalljósur húðarlitur',
+    '👩🏿‍🐰‍👩🏽' => 'kvinnur við haruoyrum: myrkur húðarlitur, miðal húðarlitur',
+    '👩🏿‍🐰‍👩🏾' => 'kvinnur við haruoyrum: myrkur húðarlitur, miðalmyrkur húðarlitur',
     '🧑🏻‍🤝‍🧑🏻' => 'fólk leiðast: ljósur húðarlitur',
     '🧑🏻‍🤝‍🧑🏼' => 'fólk leiðast: ljósur húðarlitur, miðalljósur húðarlitur',
     '🧑🏻‍🤝‍🧑🏽' => 'fólk leiðast: ljósur húðarlitur, miðal húðarlitur',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'familja: kona, kona, drongur, drongur',
     '👩‍👩‍👧‍👧' => 'familja: kona, kona, genta, genta',
     '🧑‍🧑‍🧒‍🧒' => 'familja: vaksin, vaksin, barn, barn',
-    '🚶🏻‍♀‍➡' => 'kvinna sum gongur til høgru',
-    '🚶🏼‍♀‍➡' => 'kvinna sum gongur til høgru',
-    '🚶🏽‍♀‍➡' => 'kvinna sum gongur til høgru',
-    '🚶🏾‍♀‍➡' => 'kvinna sum gongur til høgru',
-    '🚶🏿‍♀‍➡' => 'kvinna sum gongur til høgru',
-    '🚶🏻‍♂‍➡' => 'maður sum gongur til høgru',
-    '🚶🏼‍♂‍➡' => 'maður sum gongur til høgru',
-    '🚶🏽‍♂‍➡' => 'maður sum gongur til høgru',
-    '🚶🏾‍♂‍➡' => 'maður sum gongur til høgru',
-    '🚶🏿‍♂‍➡' => 'maður sum gongur til høgru',
-    '🧎🏻‍♀‍➡' => 'kvinna á knæ til høgru',
-    '🧎🏼‍♀‍➡' => 'kvinna á knæ til høgru',
-    '🧎🏽‍♀‍➡' => 'kvinna á knæ til høgru',
-    '🧎🏾‍♀‍➡' => 'kvinna á knæ til høgru',
-    '🧎🏿‍♀‍➡' => 'kvinna á knæ til høgru',
-    '🧎🏻‍♂‍➡' => 'maður á knæ til høgru',
-    '🧎🏼‍♂‍➡' => 'maður á knæ til høgru',
-    '🧎🏽‍♂‍➡' => 'maður á knæ til høgru',
-    '🧎🏾‍♂‍➡' => 'maður á knæ til høgru',
-    '🧎🏿‍♂‍➡' => 'maður á knæ til høgru',
-    '🧑🏻‍🦯‍➡' => 'persónur við blindastavi til høgru',
-    '🧑🏼‍🦯‍➡' => 'persónur við blindastavi til høgru',
-    '🧑🏽‍🦯‍➡' => 'persónur við blindastavi til høgru',
-    '🧑🏾‍🦯‍➡' => 'persónur við blindastavi til høgru',
-    '🧑🏿‍🦯‍➡' => 'persónur við blindastavi til høgru',
-    '👨🏻‍🦯‍➡' => 'maður við blindastavi til høgru',
-    '👨🏼‍🦯‍➡' => 'maður við blindastavi til høgru',
-    '👨🏽‍🦯‍➡' => 'maður við blindastavi til høgru',
-    '👨🏾‍🦯‍➡' => 'maður við blindastavi til høgru',
-    '👨🏿‍🦯‍➡' => 'maður við blindastavi til høgru',
-    '👩🏻‍🦯‍➡' => 'kvinna við blindastavi til høgru',
-    '👩🏼‍🦯‍➡' => 'kvinna við blindastavi til høgru',
-    '👩🏽‍🦯‍➡' => 'kvinna við blindastavi til høgru',
-    '👩🏾‍🦯‍➡' => 'kvinna við blindastavi til høgru',
-    '👩🏿‍🦯‍➡' => 'kvinna við blindastavi til høgru',
-    '🧑🏻‍🦼‍➡' => 'persónur í motorkoyristóli til høgru',
-    '🧑🏼‍🦼‍➡' => 'persónur í motorkoyristóli til høgru',
-    '🧑🏽‍🦼‍➡' => 'persónur í motorkoyristóli til høgru',
-    '🧑🏾‍🦼‍➡' => 'persónur í motorkoyristóli til høgru',
-    '🧑🏿‍🦼‍➡' => 'persónur í motorkoyristóli til høgru',
-    '👨🏻‍🦼‍➡' => 'maður í motorkoyristóli til høgru',
-    '👨🏼‍🦼‍➡' => 'maður í motorkoyristóli til høgru',
-    '👨🏽‍🦼‍➡' => 'maður í motorkoyristóli til høgru',
-    '👨🏾‍🦼‍➡' => 'maður í motorkoyristóli til høgru',
-    '👨🏿‍🦼‍➡' => 'maður í motorkoyristóli til høgru',
-    '👩🏻‍🦼‍➡' => 'kvinna í motorkoyristóli til høgru',
-    '👩🏼‍🦼‍➡' => 'kvinna í motorkoyristóli til høgru',
-    '👩🏽‍🦼‍➡' => 'kvinna í motorkoyristóli til høgru',
-    '👩🏾‍🦼‍➡' => 'kvinna í motorkoyristóli til høgru',
-    '👩🏿‍🦼‍➡' => 'kvinna í motorkoyristóli til høgru',
-    '🧑🏻‍🦽‍➡' => 'persónur í koyristóli til høgru',
-    '🧑🏼‍🦽‍➡' => 'persónur í koyristóli til høgru',
-    '🧑🏽‍🦽‍➡' => 'persónur í koyristóli til høgru',
-    '🧑🏾‍🦽‍➡' => 'persónur í koyristóli til høgru',
-    '🧑🏿‍🦽‍➡' => 'persónur í koyristóli til høgru',
-    '👨🏻‍🦽‍➡' => 'maður í koyristóli til høgru',
-    '👨🏼‍🦽‍➡' => 'maður í koyristóli til høgru',
-    '👨🏽‍🦽‍➡' => 'maður í koyristóli til høgru',
-    '👨🏾‍🦽‍➡' => 'maður í koyristóli til høgru',
-    '👨🏿‍🦽‍➡' => 'maður í koyristóli til høgru',
-    '👩🏻‍🦽‍➡' => 'kvinna í koyristóli til høgru',
-    '👩🏼‍🦽‍➡' => 'kvinna í koyristóli til høgru',
-    '👩🏽‍🦽‍➡' => 'kvinna í koyristóli til høgru',
-    '👩🏾‍🦽‍➡' => 'kvinna í koyristóli til høgru',
-    '👩🏿‍🦽‍➡' => 'kvinna í koyristóli til høgru',
-    '🏃🏻‍♀‍➡' => 'kvinna sum rennur til høgru',
-    '🏃🏼‍♀‍➡' => 'kvinna sum rennur til høgru',
-    '🏃🏽‍♀‍➡' => 'kvinna sum rennur til høgru',
-    '🏃🏾‍♀‍➡' => 'kvinna sum rennur til høgru',
-    '🏃🏿‍♀‍➡' => 'kvinna sum rennur til høgru',
-    '🏃🏻‍♂‍➡' => 'maður sum rennur til høgru',
-    '🏃🏼‍♂‍➡' => 'maður sum rennur til høgru',
-    '🏃🏽‍♂‍➡' => 'maður sum rennur til høgru',
-    '🏃🏾‍♂‍➡' => 'maður sum rennur til høgru',
-    '🏃🏿‍♂‍➡' => 'maður sum rennur til høgru',
+    '🚶🏻‍♀‍➡' => 'kvinna sum gongur: ljósur húðarlitur, til høgru',
+    '🚶🏼‍♀‍➡' => 'kvinna sum gongur: miðalljósur húðarlitur, til høgru',
+    '🚶🏽‍♀‍➡' => 'kvinna sum gongur: miðal húðarlitur, til høgru',
+    '🚶🏾‍♀‍➡' => 'kvinna sum gongur: miðalmyrkur húðarlitur, til høgru',
+    '🚶🏿‍♀‍➡' => 'kvinna sum gongur: myrkur húðarlitur, til høgru',
+    '🚶🏻‍♂‍➡' => 'maður sum gongur: ljósur húðarlitur, til høgru',
+    '🚶🏼‍♂‍➡' => 'maður sum gongur: miðalljósur húðarlitur, til høgru',
+    '🚶🏽‍♂‍➡' => 'maður sum gongur: miðal húðarlitur, til høgru',
+    '🚶🏾‍♂‍➡' => 'maður sum gongur: miðalmyrkur húðarlitur, til høgru',
+    '🚶🏿‍♂‍➡' => 'maður sum gongur: myrkur húðarlitur, til høgru',
+    '🧎🏻‍♀‍➡' => 'kvinna á knæ: ljósur húðarlitur, til høgru',
+    '🧎🏼‍♀‍➡' => 'kvinna á knæ: miðalljósur húðarlitur, til høgru',
+    '🧎🏽‍♀‍➡' => 'kvinna á knæ: miðal húðarlitur, til høgru',
+    '🧎🏾‍♀‍➡' => 'kvinna á knæ: miðalmyrkur húðarlitur, til høgru',
+    '🧎🏿‍♀‍➡' => 'kvinna á knæ: myrkur húðarlitur, til høgru',
+    '🧎🏻‍♂‍➡' => 'maður á knæ: ljósur húðarlitur, til høgru',
+    '🧎🏼‍♂‍➡' => 'maður á knæ: miðalljósur húðarlitur, til høgru',
+    '🧎🏽‍♂‍➡' => 'maður á knæ: miðal húðarlitur, til høgru',
+    '🧎🏾‍♂‍➡' => 'maður á knæ: miðalmyrkur húðarlitur, til høgru',
+    '🧎🏿‍♂‍➡' => 'maður á knæ: myrkur húðarlitur, til høgru',
+    '🧑🏻‍🦯‍➡' => 'persónur við blindastavi: ljósur húðarlitur, til høgru',
+    '🧑🏼‍🦯‍➡' => 'persónur við blindastavi: miðalljósur húðarlitur, til høgru',
+    '🧑🏽‍🦯‍➡' => 'persónur við blindastavi: miðal húðarlitur, til høgru',
+    '🧑🏾‍🦯‍➡' => 'persónur við blindastavi: miðalmyrkur húðarlitur, til høgru',
+    '🧑🏿‍🦯‍➡' => 'persónur við blindastavi: myrkur húðarlitur, til høgru',
+    '👨🏻‍🦯‍➡' => 'maður við blindastavi: ljósur húðarlitur, til høgru',
+    '👨🏼‍🦯‍➡' => 'maður við blindastavi: miðalljósur húðarlitur, til høgru',
+    '👨🏽‍🦯‍➡' => 'maður við blindastavi: miðal húðarlitur, til høgru',
+    '👨🏾‍🦯‍➡' => 'maður við blindastavi: miðalmyrkur húðarlitur, til høgru',
+    '👨🏿‍🦯‍➡' => 'maður við blindastavi: myrkur húðarlitur, til høgru',
+    '👩🏻‍🦯‍➡' => 'kvinna við blindastavi: ljósur húðarlitur, til høgru',
+    '👩🏼‍🦯‍➡' => 'kvinna við blindastavi: miðalljósur húðarlitur, til høgru',
+    '👩🏽‍🦯‍➡' => 'kvinna við blindastavi: miðal húðarlitur, til høgru',
+    '👩🏾‍🦯‍➡' => 'kvinna við blindastavi: miðalmyrkur húðarlitur, til høgru',
+    '👩🏿‍🦯‍➡' => 'kvinna við blindastavi: myrkur húðarlitur, til høgru',
+    '🧑🏻‍🦼‍➡' => 'persónur í motorkoyristóli: ljósur húðarlitur, til høgru',
+    '🧑🏼‍🦼‍➡' => 'persónur í motorkoyristóli: miðalljósur húðarlitur, til høgru',
+    '🧑🏽‍🦼‍➡' => 'persónur í motorkoyristóli: miðal húðarlitur, til høgru',
+    '🧑🏾‍🦼‍➡' => 'persónur í motorkoyristóli: miðalmyrkur húðarlitur, til høgru',
+    '🧑🏿‍🦼‍➡' => 'persónur í motorkoyristóli: myrkur húðarlitur, til høgru',
+    '👨🏻‍🦼‍➡' => 'maður í motorkoyristóli: ljósur húðarlitur, til høgru',
+    '👨🏼‍🦼‍➡' => 'maður í motorkoyristóli: miðalljósur húðarlitur, til høgru',
+    '👨🏽‍🦼‍➡' => 'maður í motorkoyristóli: miðal húðarlitur, til høgru',
+    '👨🏾‍🦼‍➡' => 'maður í motorkoyristóli: miðalmyrkur húðarlitur, til høgru',
+    '👨🏿‍🦼‍➡' => 'maður í motorkoyristóli: myrkur húðarlitur, til høgru',
+    '👩🏻‍🦼‍➡' => 'kvinna í motorkoyristóli: ljósur húðarlitur, til høgru',
+    '👩🏼‍🦼‍➡' => 'kvinna í motorkoyristóli: miðalljósur húðarlitur, til høgru',
+    '👩🏽‍🦼‍➡' => 'kvinna í motorkoyristóli: miðal húðarlitur, til høgru',
+    '👩🏾‍🦼‍➡' => 'kvinna í motorkoyristóli: miðalmyrkur húðarlitur, til høgru',
+    '👩🏿‍🦼‍➡' => 'kvinna í motorkoyristóli: myrkur húðarlitur, til høgru',
+    '🧑🏻‍🦽‍➡' => 'persónur í koyristóli: ljósur húðarlitur, til høgru',
+    '🧑🏼‍🦽‍➡' => 'persónur í koyristóli: miðalljósur húðarlitur, til høgru',
+    '🧑🏽‍🦽‍➡' => 'persónur í koyristóli: miðal húðarlitur, til høgru',
+    '🧑🏾‍🦽‍➡' => 'persónur í koyristóli: miðalmyrkur húðarlitur, til høgru',
+    '🧑🏿‍🦽‍➡' => 'persónur í koyristóli: myrkur húðarlitur, til høgru',
+    '👨🏻‍🦽‍➡' => 'maður í koyristóli: ljósur húðarlitur, til høgru',
+    '👨🏼‍🦽‍➡' => 'maður í koyristóli: miðalljósur húðarlitur, til høgru',
+    '👨🏽‍🦽‍➡' => 'maður í koyristóli: miðal húðarlitur, til høgru',
+    '👨🏾‍🦽‍➡' => 'maður í koyristóli: miðalmyrkur húðarlitur, til høgru',
+    '👨🏿‍🦽‍➡' => 'maður í koyristóli: myrkur húðarlitur, til høgru',
+    '👩🏻‍🦽‍➡' => 'kvinna í koyristóli: ljósur húðarlitur, til høgru',
+    '👩🏼‍🦽‍➡' => 'kvinna í koyristóli: miðalljósur húðarlitur, til høgru',
+    '👩🏽‍🦽‍➡' => 'kvinna í koyristóli: miðal húðarlitur, til høgru',
+    '👩🏾‍🦽‍➡' => 'kvinna í koyristóli: miðalmyrkur húðarlitur, til høgru',
+    '👩🏿‍🦽‍➡' => 'kvinna í koyristóli: myrkur húðarlitur, til høgru',
+    '🏃🏻‍♀‍➡' => 'kvinna sum rennur: ljósur húðarlitur, til høgru',
+    '🏃🏼‍♀‍➡' => 'kvinna sum rennur: miðalljósur húðarlitur, til høgru',
+    '🏃🏽‍♀‍➡' => 'kvinna sum rennur: miðal húðarlitur, til høgru',
+    '🏃🏾‍♀‍➡' => 'kvinna sum rennur: miðalmyrkur húðarlitur, til høgru',
+    '🏃🏿‍♀‍➡' => 'kvinna sum rennur: myrkur húðarlitur, til høgru',
+    '🏃🏻‍♂‍➡' => 'maður sum rennur: ljósur húðarlitur, til høgru',
+    '🏃🏼‍♂‍➡' => 'maður sum rennur: miðalljósur húðarlitur, til høgru',
+    '🏃🏽‍♂‍➡' => 'maður sum rennur: miðal húðarlitur, til høgru',
+    '🏃🏾‍♂‍➡' => 'maður sum rennur: miðalmyrkur húðarlitur, til høgru',
+    '🏃🏿‍♂‍➡' => 'maður sum rennur: myrkur húðarlitur, til høgru',
     '🫱🏻‍🫲🏼' => 'lógvatak: ljósur húðarlitur, miðalljósur húðarlitur',
     '🫱🏻‍🫲🏽' => 'lógvatak: ljósur húðarlitur, miðal húðarlitur',
     '🫱🏻‍🫲🏾' => 'lógvatak: ljósur húðarlitur, miðalmyrkur húðarlitur',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'lógvatak: myrkur húðarlitur, miðalljósur húðarlitur',
     '🫱🏿‍🫲🏽' => 'lógvatak: myrkur húðarlitur, miðal húðarlitur',
     '🫱🏿‍🫲🏾' => 'lógvatak: myrkur húðarlitur, miðalmyrkur húðarlitur',
-    '🚶‍♀‍➡' => 'kvinna sum gongur til høgru',
-    '🚶‍♂‍➡' => 'maður sum gongur til høgru',
-    '🧎‍♀‍➡' => 'kvinna á knæ til høgru',
-    '🧎‍♂‍➡' => 'maður á knæ til høgru',
-    '🧑‍🦯‍➡' => 'persónur við blindastavi til høgru',
-    '👨‍🦯‍➡' => 'maður við blindastavi til høgru',
-    '👩‍🦯‍➡' => 'kvinna við blindastavi til høgru',
-    '🧑‍🦼‍➡' => 'persónur í motorkoyristóli til høgru',
-    '👨‍🦼‍➡' => 'maður í motorkoyristóli til høgru',
-    '👩‍🦼‍➡' => 'kvinna í motorkoyristóli til høgru',
-    '🧑‍🦽‍➡' => 'persónur í koyristóli til høgru',
-    '👨‍🦽‍➡' => 'maður í koyristóli til høgru',
-    '👩‍🦽‍➡' => 'kvinna í koyristóli til høgru',
-    '🏃‍♀‍➡' => 'kvinna sum rennur til høgru',
-    '🏃‍♂‍➡' => 'maður sum rennur til høgru',
+    '🚶‍♀‍➡' => 'kvinna sum gongur: til høgru',
+    '🚶‍♂‍➡' => 'maður sum gongur: til høgru',
+    '🧎‍♀‍➡' => 'kvinna á knæ: til høgru',
+    '🧎‍♂‍➡' => 'maður á knæ: til høgru',
+    '🧑‍🦯‍➡' => 'persónur við blindastavi: til høgru',
+    '👨‍🦯‍➡' => 'maður við blindastavi: til høgru',
+    '👩‍🦯‍➡' => 'kvinna við blindastavi: til høgru',
+    '🧑‍🦼‍➡' => 'persónur í motorkoyristóli: til høgru',
+    '👨‍🦼‍➡' => 'maður í motorkoyristóli: til høgru',
+    '👩‍🦼‍➡' => 'kvinna í motorkoyristóli: til høgru',
+    '🧑‍🦽‍➡' => 'persónur í koyristóli: til høgru',
+    '👨‍🦽‍➡' => 'maður í koyristóli: til høgru',
+    '👩‍🦽‍➡' => 'kvinna í koyristóli: til høgru',
+    '🏃‍♀‍➡' => 'kvinna sum rennur: til høgru',
+    '🏃‍♂‍➡' => 'maður sum rennur: til høgru',
     '👩‍❤‍👨' => 'par og hjarta: kona, maður',
     '👨‍❤‍👨' => 'par og hjarta: maður, maður',
     '👩‍❤‍👩' => 'par og hjarta: kona, kona',
@@ -1027,11 +1147,11 @@
     '🚶🏽‍♀' => 'kvinna sum gongur: miðal húðarlitur',
     '🚶🏾‍♀' => 'kvinna sum gongur: miðalmyrkur húðarlitur',
     '🚶🏿‍♀' => 'kvinna sum gongur: myrkur húðarlitur',
-    '🚶🏻‍➡' => 'persónur sum gongur til høgru',
-    '🚶🏼‍➡' => 'persónur sum gongur til høgru',
-    '🚶🏽‍➡' => 'persónur sum gongur til høgru',
-    '🚶🏾‍➡' => 'persónur sum gongur til høgru',
-    '🚶🏿‍➡' => 'persónur sum gongur til høgru',
+    '🚶🏻‍➡' => 'persónur sum gongur: ljósur húðarlitur, til høgru',
+    '🚶🏼‍➡' => 'persónur sum gongur: miðalljósur húðarlitur, til høgru',
+    '🚶🏽‍➡' => 'persónur sum gongur: miðal húðarlitur, til høgru',
+    '🚶🏾‍➡' => 'persónur sum gongur: miðalmyrkur húðarlitur, til høgru',
+    '🚶🏿‍➡' => 'persónur sum gongur: myrkur húðarlitur, til høgru',
     '🧍🏻‍♂' => 'maður ið stendur: ljósur húðarlitur',
     '🧍🏼‍♂' => 'maður ið stendur: miðalljósur húðarlitur',
     '🧍🏽‍♂' => 'maður ið stendur: miðal húðarlitur',
@@ -1052,11 +1172,11 @@
     '🧎🏽‍♀' => 'kvinna á knæ: miðal húðarlitur',
     '🧎🏾‍♀' => 'kvinna á knæ: miðalmyrkur húðarlitur',
     '🧎🏿‍♀' => 'kvinna á knæ: myrkur húðarlitur',
-    '🧎🏻‍➡' => 'persónur á knæ til høgru',
-    '🧎🏼‍➡' => 'persónur á knæ til høgru',
-    '🧎🏽‍➡' => 'persónur á knæ til høgru',
-    '🧎🏾‍➡' => 'persónur á knæ til høgru',
-    '🧎🏿‍➡' => 'persónur á knæ til høgru',
+    '🧎🏻‍➡' => 'persónur á knæ: ljósur húðarlitur, til høgru',
+    '🧎🏼‍➡' => 'persónur á knæ: miðalljósur húðarlitur, til høgru',
+    '🧎🏽‍➡' => 'persónur á knæ: miðal húðarlitur, til høgru',
+    '🧎🏾‍➡' => 'persónur á knæ: miðalmyrkur húðarlitur, til høgru',
+    '🧎🏿‍➡' => 'persónur á knæ: myrkur húðarlitur, til høgru',
     '🧑🏻‍🦯' => 'persónur við blindastavi: ljósur húðarlitur',
     '🧑🏼‍🦯' => 'persónur við blindastavi: miðalljósur húðarlitur',
     '🧑🏽‍🦯' => 'persónur við blindastavi: miðal húðarlitur',
@@ -1112,11 +1232,21 @@
     '🏃🏽‍♀' => 'kvinna sum rennur: miðal húðarlitur',
     '🏃🏾‍♀' => 'kvinna sum rennur: miðalmyrkur húðarlitur',
     '🏃🏿‍♀' => 'kvinna sum rennur: myrkur húðarlitur',
-    '🏃🏻‍➡' => 'persónur sum rennur til høgru',
-    '🏃🏼‍➡' => 'persónur sum rennur til høgru',
-    '🏃🏽‍➡' => 'persónur sum rennur til høgru',
-    '🏃🏾‍➡' => 'persónur sum rennur til høgru',
-    '🏃🏿‍➡' => 'persónur sum rennur til høgru',
+    '🏃🏻‍➡' => 'persónur sum rennur: ljósur húðarlitur, til høgru',
+    '🏃🏼‍➡' => 'persónur sum rennur: miðalljósur húðarlitur, til høgru',
+    '🏃🏽‍➡' => 'persónur sum rennur: miðal húðarlitur, til høgru',
+    '🏃🏾‍➡' => 'persónur sum rennur: miðalmyrkur húðarlitur, til høgru',
+    '🏃🏿‍➡' => 'persónur sum rennur: myrkur húðarlitur, til høgru',
+    '👯🏻‍♀' => 'kvinnur við haruoyrum: ljósur húðarlitur',
+    '👯🏼‍♀' => 'kvinnur við haruoyrum: miðalljósur húðarlitur',
+    '👯🏽‍♀' => 'kvinnur við haruoyrum: miðal húðarlitur',
+    '👯🏾‍♀' => 'kvinnur við haruoyrum: miðalmyrkur húðarlitur',
+    '👯🏿‍♀' => 'kvinnur við haruoyrum: myrkur húðarlitur',
+    '👯🏻‍♂' => 'menn við haruoyrum: ljósur húðarlitur',
+    '👯🏼‍♂' => 'menn við haruoyrum: miðalljósur húðarlitur',
+    '👯🏽‍♂' => 'menn við haruoyrum: miðal húðarlitur',
+    '👯🏾‍♂' => 'menn við haruoyrum: miðalmyrkur húðarlitur',
+    '👯🏿‍♂' => 'menn við haruoyrum: myrkur húðarlitur',
     '🧖🏻‍♂' => 'maður í sauna: ljósur húðarlitur',
     '🧖🏼‍♂' => 'maður í sauna: miðalljósur húðarlitur',
     '🧖🏽‍♂' => 'maður í sauna: miðal húðarlitur',
@@ -1227,6 +1357,16 @@
     '🤸🏽‍♀' => 'kvinna sum ger myllulop: miðal húðarlitur',
     '🤸🏾‍♀' => 'kvinna sum ger myllulop: miðalmyrkur húðarlitur',
     '🤸🏿‍♀' => 'kvinna sum ger myllulop: myrkur húðarlitur',
+    '🤼🏻‍♀' => 'kvinnuligur glímingardystur: ljósur húðarlitur',
+    '🤼🏼‍♀' => 'kvinnuligur glímingardystur: miðalljósur húðarlitur',
+    '🤼🏽‍♀' => 'kvinnuligur glímingardystur: miðal húðarlitur',
+    '🤼🏾‍♀' => 'kvinnuligur glímingardystur: miðalmyrkur húðarlitur',
+    '🤼🏿‍♀' => 'kvinnuligur glímingardystur: myrkur húðarlitur',
+    '🤼🏻‍♂' => 'mannligur glímingardystur: ljósur húðarlitur',
+    '🤼🏼‍♂' => 'mannligur glímingardystur: miðalljósur húðarlitur',
+    '🤼🏽‍♂' => 'mannligur glímingardystur: miðal húðarlitur',
+    '🤼🏾‍♂' => 'mannligur glímingardystur: miðalmyrkur húðarlitur',
+    '🤼🏿‍♂' => 'mannligur glímingardystur: myrkur húðarlitur',
     '🤽🏻‍♂' => 'maður sum spælir vatnpolo: ljósur húðarlitur',
     '🤽🏼‍♂' => 'maður sum spælir vatnpolo: miðalljósur húðarlitur',
     '🤽🏽‍♂' => 'maður sum spælir vatnpolo: miðal húðarlitur',
@@ -1279,9 +1419,9 @@
     '👩‍🦱' => 'kona: purlut hár',
     '👩‍🦳' => 'kona: hvítt hár',
     '👩‍🦲' => 'kona: skallutur',
-    '🚶‍➡' => 'persónur sum gongur til høgru',
-    '🧎‍➡' => 'persónur á knæ til høgru',
-    '🏃‍➡' => 'persónur sum rennur til høgru',
+    '🚶‍➡' => 'persónur sum gongur: til høgru',
+    '🧎‍➡' => 'persónur á knæ: til høgru',
+    '🏃‍➡' => 'persónur sum rennur: til høgru',
     '👨‍👦' => 'familja: maður, drongur',
     '👨‍👧' => 'familja: maður, genta',
     '👩‍👦' => 'familja: kona, drongur',
@@ -2003,6 +2143,11 @@
     '🕴🏽' => 'maður í klædningi sveimar: miðal húðarlitur',
     '🕴🏾' => 'maður í klædningi sveimar: miðalmyrkur húðarlitur',
     '🕴🏿' => 'maður í klædningi sveimar: myrkur húðarlitur',
+    '👯🏻' => 'fólk við haruoyrum: ljósur húðarlitur',
+    '👯🏼' => 'fólk við haruoyrum: miðalljósur húðarlitur',
+    '👯🏽' => 'fólk við haruoyrum: miðal húðarlitur',
+    '👯🏾' => 'fólk við haruoyrum: miðalmyrkur húðarlitur',
+    '👯🏿' => 'fólk við haruoyrum: myrkur húðarlitur',
     '🧖🏻' => 'persónur í sauna: ljósur húðarlitur',
     '🧖🏼' => 'persónur í sauna: miðalljósur húðarlitur',
     '🧖🏽' => 'persónur í sauna: miðal húðarlitur',
@@ -2068,6 +2213,11 @@
     '🤸🏽' => 'persónur sum ger myllulop: miðal húðarlitur',
     '🤸🏾' => 'persónur sum ger myllulop: miðalmyrkur húðarlitur',
     '🤸🏿' => 'persónur sum ger myllulop: myrkur húðarlitur',
+    '🤼🏻' => 'glímingardystur: ljósur húðarlitur',
+    '🤼🏼' => 'glímingardystur: miðalljósur húðarlitur',
+    '🤼🏽' => 'glímingardystur: miðal húðarlitur',
+    '🤼🏾' => 'glímingardystur: miðalmyrkur húðarlitur',
+    '🤼🏿' => 'glímingardystur: myrkur húðarlitur',
     '🤽🏻' => 'persónur sum spælir vatnpolo: ljósur húðarlitur',
     '🤽🏼' => 'persónur sum spælir vatnpolo: miðalljósur húðarlitur',
     '🤽🏽' => 'persónur sum spælir vatnpolo: miðal húðarlitur',
@@ -2388,13 +2538,6 @@
     '🏽' => 'miðal húðarlitur',
     '🏾' => 'miðalmyrkur húðarlitur',
     '🏿' => 'myrkur húðarlitur',
-    '🪉' => 'harpa',
-    '🪏' => 'spaki',
-    '🪾' => 'blaðleyst træ',
-    '🫆' => 'fingramerki',
-    '🫜' => 'rótfrukt',
-    '🫟' => 'sprutt',
-    '🫩' => 'andlit við posum undir eygunum',
     '😀' => 'grínandi andlit',
     '😃' => 'grínandi andlit við stórum eygum',
     '😄' => 'grínandi andlit við brosandi eygum',
@@ -2448,6 +2591,7 @@
     '😪' => 'lint andlit',
     '🤤' => 'slevandi andlit',
     '😴' => 'sovandi andlit',
+    '🫩' => 'andlit við posum undir eygunum',
     '😷' => 'andlit við masku',
     '🤒' => 'andlit við fepurstokkið',
     '🤕' => 'andlit við bind um høvdið',
@@ -2711,6 +2855,7 @@
     '🫂' => 'fólk sum klemmast',
     '👪' => 'familja',
     '👣' => 'fótaspor',
+    '🫆' => 'fingramerki',
     '🦰' => 'reytt hár',
     '🦱' => 'purlut hár',
     '🦳' => 'hvítt hár',
@@ -2819,6 +2964,11 @@
     '🐚' => 'skel',
     '🪸' => 'korallur',
     '🪼' => 'hvalspýggja',
+    '🦀' => 'krabbi',
+    '🦞' => 'hummari',
+    '🦐' => 'rækja',
+    '🦑' => 'høgguslokkur',
+    '🦪' => 'ostra',
     '🐌' => 'snigil',
     '🦋' => 'firvaldur',
     '🐛' => 'skordýr',
@@ -2863,6 +3013,7 @@
     '🪹' => 'tómt reiður',
     '🪺' => 'reiður við eggum',
     '🍄' => 'soppur',
+    '🪾' => 'blaðleyst træ',
     '🍇' => 'víndrúvur',
     '🍈' => 'melón',
     '🍉' => 'vatnmelón',
@@ -2899,6 +3050,7 @@
     '🌰' => 'kastanja',
     '🫚' => 'ingifer',
     '🫛' => 'ertnabjølg',
+    '🫜' => 'rótfrukt',
     '🍞' => 'breyð',
     '🥐' => 'horn',
     '🥖' => 'flute',
@@ -2950,11 +3102,6 @@
     '🥟' => 'hveitibolli',
     '🥠' => 'eydnukaka',
     '🥡' => 'tak við heim boks',
-    '🦀' => 'krabbi',
-    '🦞' => 'hummari',
-    '🦐' => 'rækja',
-    '🦑' => 'høgguslokkur',
-    '🦪' => 'ostra',
     '🍦' => 'kramarhúsísur',
     '🍧' => 'ísur í skál',
     '🍨' => 'rómaísur í skál',
@@ -3365,16 +3512,17 @@
     '🎧' => 'høvuðsett',
     '📻' => 'útvarp',
     '🎷' => 'saksofon',
+    '🎺' => 'trompet',
     '🪗' => 'harmonika',
     '🎸' => 'gittari',
     '🎹' => 'ljómborð',
-    '🎺' => 'trompet',
     '🎻' => 'violin',
     '🪕' => 'banjo',
     '🥁' => 'trumma',
     '🪘' => 'long trumma',
     '🪇' => 'marakas',
     '🪈' => 'floyta',
+    '🪉' => 'harpa',
     '📱' => 'fartelefon',
     '📲' => 'fartelefon við píli',
     '☎' => 'telefon',
@@ -3428,8 +3576,8 @@
     '📑' => 'bókamerkir',
     '🔖' => 'bókamerki',
     '🏷' => 'merkiseðil',
-    '💰' => 'pengasekkur',
     '🪙' => 'myntur',
+    '💰' => 'pengasekkur',
     '💴' => 'jenn pengaseðil',
     '💵' => 'dollari pengaseðil',
     '💶' => 'evra pengaseðil',
@@ -3512,6 +3660,7 @@
     '🧰' => 'amboðskassi',
     '🧲' => 'magnet',
     '🪜' => 'stigi',
+    '🪏' => 'spaki',
     '⚗' => 'dropadríva',
     '🧪' => 'royndarglas',
     '🧫' => 'petriskál',
@@ -3695,6 +3844,7 @@
     '✴' => 'áttaspíska stjørna',
     '❇' => 'glampi',
     '™' => 'virkisrættindi',
+    '🫟' => 'sprutt',
     '🔠' => 'stórir bókstavir',
     '🔡' => 'smáir bókstavir',
     '🔢' => 'tøl',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fr_ca.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fr_ca.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fr_ca.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fr_ca.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'bisou : femme, femme, peau foncée et peau légèrement mate',
     '👩🏿‍❤‍💋‍👩🏾' => 'bisou : femme, femme, peau foncée et peau modérément foncée',
     '👩🏿‍❤‍💋‍👩🏿' => 'bisou : femme, femme et peau foncée',
+    '🧑🏻‍🫯‍🧑🏼' => 'personnes faisant de la lutte : peau claire et peau modérément claire',
+    '🧑🏻‍🫯‍🧑🏽' => 'personnes faisant de la lutte : peau claire et peau légèrement mate',
+    '🧑🏻‍🫯‍🧑🏾' => 'personnes faisant de la lutte : peau claire et peau modérément foncée',
+    '🧑🏻‍🫯‍🧑🏿' => 'personnes faisant de la lutte : peau claire et peau foncée',
+    '🧑🏼‍🫯‍🧑🏻' => 'personnes faisant de la lutte : peau modérément claire et peau claire',
+    '🧑🏼‍🫯‍🧑🏽' => 'personnes faisant de la lutte : peau modérément claire et peau légèrement mate',
+    '🧑🏼‍🫯‍🧑🏾' => 'personnes faisant de la lutte : peau modérément claire et peau modérément foncée',
+    '🧑🏼‍🫯‍🧑🏿' => 'personnes faisant de la lutte : peau modérément claire et peau foncée',
+    '🧑🏽‍🫯‍🧑🏻' => 'personnes faisant de la lutte : peau légèrement mate et peau claire',
+    '🧑🏽‍🫯‍🧑🏼' => 'personnes faisant de la lutte : peau légèrement mate et peau modérément claire',
+    '🧑🏽‍🫯‍🧑🏾' => 'personnes faisant de la lutte : peau légèrement mate et peau modérément foncée',
+    '🧑🏽‍🫯‍🧑🏿' => 'personnes faisant de la lutte : peau légèrement mate et peau foncée',
+    '🧑🏾‍🫯‍🧑🏻' => 'personnes faisant de la lutte : peau modérément foncée et peau claire',
+    '🧑🏾‍🫯‍🧑🏼' => 'personnes faisant de la lutte : peau modérément foncée et peau modérément claire',
+    '🧑🏾‍🫯‍🧑🏽' => 'personnes faisant de la lutte : peau modérément foncée et peau légèrement mate',
+    '🧑🏾‍🫯‍🧑🏿' => 'personnes faisant de la lutte : peau modérément foncée et peau foncée',
+    '🧑🏿‍🫯‍🧑🏻' => 'personnes faisant de la lutte : peau foncée et peau claire',
+    '🧑🏿‍🫯‍🧑🏼' => 'personnes faisant de la lutte : peau foncée et peau modérément claire',
+    '🧑🏿‍🫯‍🧑🏽' => 'personnes faisant de la lutte : peau foncée et peau légèrement mate',
+    '🧑🏿‍🫯‍🧑🏾' => 'personnes faisant de la lutte : peau foncée et peau modérément foncée',
     '🧑🏻‍❤‍🧑🏼' => 'couple avec cœur : adulte, adulte, peau claire et peau modérément claire',
     '🧑🏻‍❤‍🧑🏽' => 'couple avec cœur : adulte, adulte, peau claire et peau légèrement mate',
     '🧑🏻‍❤‍🧑🏾' => 'couple avec cœur : adulte, adulte, peau claire et peau modérément foncée',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'couple avec cœur : adulte, adulte, peau foncée et peau modérément claire',
     '🧑🏿‍❤‍🧑🏽' => 'couple avec cœur : adulte, adulte, peau foncée et peau légèrement mate',
     '🧑🏿‍❤‍🧑🏾' => 'couple avec cœur : adulte, adulte, peau foncée et peau modérément foncée',
+    '🧑🏻‍🐰‍🧑🏼' => 'personnes qui portent des oreilles de lapin : peau claire et peau modérément claire',
+    '🧑🏻‍🐰‍🧑🏽' => 'personnes qui portent des oreilles de lapin : peau claire et peau légèrement mate',
+    '🧑🏻‍🐰‍🧑🏾' => 'personnes qui portent des oreilles de lapin : peau claire et peau modérément foncée',
+    '🧑🏻‍🐰‍🧑🏿' => 'personnes qui portent des oreilles de lapin : peau claire et peau foncée',
+    '🧑🏼‍🐰‍🧑🏻' => 'personnes qui portent des oreilles de lapin : peau modérément claire et peau claire',
+    '🧑🏼‍🐰‍🧑🏽' => 'personnes qui portent des oreilles de lapin : peau modérément claire et peau légèrement mate',
+    '🧑🏼‍🐰‍🧑🏾' => 'personnes qui portent des oreilles de lapin : peau modérément claire et peau modérément foncée',
+    '🧑🏼‍🐰‍🧑🏿' => 'personnes qui portent des oreilles de lapin : peau modérément claire et peau foncée',
+    '🧑🏽‍🐰‍🧑🏻' => 'personnes qui portent des oreilles de lapin : peau légèrement mate et peau claire',
+    '🧑🏽‍🐰‍🧑🏼' => 'personnes qui portent des oreilles de lapin : peau légèrement mate et peau modérément claire',
+    '🧑🏽‍🐰‍🧑🏾' => 'personnes qui portent des oreilles de lapin : peau légèrement mate et peau modérément foncée',
+    '🧑🏽‍🐰‍🧑🏿' => 'personnes qui portent des oreilles de lapin : peau légèrement mate et peau foncée',
+    '🧑🏾‍🐰‍🧑🏻' => 'personnes qui portent des oreilles de lapin : peau modérément foncée et peau claire',
+    '🧑🏾‍🐰‍🧑🏼' => 'personnes qui portent des oreilles de lapin : peau modérément foncée et peau modérément claire',
+    '🧑🏾‍🐰‍🧑🏽' => 'personnes qui portent des oreilles de lapin : peau modérément foncée et peau légèrement mate',
+    '🧑🏾‍🐰‍🧑🏿' => 'personnes qui portent des oreilles de lapin : peau modérément foncée et peau foncée',
+    '🧑🏿‍🐰‍🧑🏻' => 'personnes qui portent des oreilles de lapin : peau foncée et peau claire',
+    '🧑🏿‍🐰‍🧑🏼' => 'personnes qui portent des oreilles de lapin : peau foncée et peau modérément claire',
+    '🧑🏿‍🐰‍🧑🏽' => 'personnes qui portent des oreilles de lapin : peau foncée et peau légèrement mate',
+    '🧑🏿‍🐰‍🧑🏾' => 'personnes qui portent des oreilles de lapin : peau foncée et peau modérément foncée',
+    '👨🏻‍🫯‍👨🏼' => 'lutteurs : peau claire et peau modérément claire',
+    '👨🏻‍🫯‍👨🏽' => 'lutteurs : peau claire et peau légèrement mate',
+    '👨🏻‍🫯‍👨🏾' => 'lutteurs : peau claire et peau modérément foncée',
+    '👨🏻‍🫯‍👨🏿' => 'lutteurs : peau claire et peau foncée',
+    '👨🏼‍🫯‍👨🏻' => 'lutteurs : peau modérément claire et peau claire',
+    '👨🏼‍🫯‍👨🏽' => 'lutteurs : peau modérément claire et peau légèrement mate',
+    '👨🏼‍🫯‍👨🏾' => 'lutteurs : peau modérément claire et peau modérément foncée',
+    '👨🏼‍🫯‍👨🏿' => 'lutteurs : peau modérément claire et peau foncée',
+    '👨🏽‍🫯‍👨🏻' => 'lutteurs : peau légèrement mate et peau claire',
+    '👨🏽‍🫯‍👨🏼' => 'lutteurs : peau légèrement mate et peau modérément claire',
+    '👨🏽‍🫯‍👨🏾' => 'lutteurs : peau légèrement mate et peau modérément foncée',
+    '👨🏽‍🫯‍👨🏿' => 'lutteurs : peau légèrement mate et peau foncée',
+    '👨🏾‍🫯‍👨🏻' => 'lutteurs : peau modérément foncée et peau claire',
+    '👨🏾‍🫯‍👨🏼' => 'lutteurs : peau modérément foncée et peau modérément claire',
+    '👨🏾‍🫯‍👨🏽' => 'lutteurs : peau modérément foncée et peau légèrement mate',
+    '👨🏾‍🫯‍👨🏿' => 'lutteurs : peau modérément foncée et peau foncée',
+    '👨🏿‍🫯‍👨🏻' => 'lutteurs : peau foncée et peau claire',
+    '👨🏿‍🫯‍👨🏼' => 'lutteurs : peau foncée et peau modérément claire',
+    '👨🏿‍🫯‍👨🏽' => 'lutteurs : peau foncée et peau légèrement mate',
+    '👨🏿‍🫯‍👨🏾' => 'lutteurs : peau foncée et peau modérément foncée',
     '👨🏻‍❤‍👨🏻' => 'couple avec cœur : homme, homme et peau claire',
     '👨🏻‍❤‍👨🏼' => 'couple avec cœur : homme, homme, peau claire et peau modérément claire',
     '👨🏻‍❤‍👨🏽' => 'couple avec cœur : homme, homme, peau claire et peau légèrement mate',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'couple avec cœur : homme, homme, peau foncée et peau légèrement mate',
     '👨🏿‍❤‍👨🏾' => 'couple avec cœur : homme, homme, peau foncée et peau modérément foncée',
     '👨🏿‍❤‍👨🏿' => 'couple avec cœur : homme, homme et peau foncée',
+    '👨🏻‍🐰‍👨🏼' => 'hommes qui portent des oreilles de lapin : peau claire et peau modérément claire',
+    '👨🏻‍🐰‍👨🏽' => 'hommes qui portent des oreilles de lapin : peau claire et peau légèrement mate',
+    '👨🏻‍🐰‍👨🏾' => 'hommes qui portent des oreilles de lapin : peau claire et peau modérément foncée',
+    '👨🏻‍🐰‍👨🏿' => 'hommes qui portent des oreilles de lapin : peau claire et peau foncée',
+    '👨🏼‍🐰‍👨🏻' => 'hommes qui portent des oreilles de lapin : peau modérément claire et peau claire',
+    '👨🏼‍🐰‍👨🏽' => 'hommes qui portent des oreilles de lapin : peau modérément claire et peau légèrement mate',
+    '👨🏼‍🐰‍👨🏾' => 'hommes qui portent des oreilles de lapin : peau modérément claire et peau modérément foncée',
+    '👨🏼‍🐰‍👨🏿' => 'hommes qui portent des oreilles de lapin : peau modérément claire et peau foncée',
+    '👨🏽‍🐰‍👨🏻' => 'hommes qui portent des oreilles de lapin : peau légèrement mate et peau claire',
+    '👨🏽‍🐰‍👨🏼' => 'hommes qui portent des oreilles de lapin : peau légèrement mate et peau modérément claire',
+    '👨🏽‍🐰‍👨🏾' => 'hommes qui portent des oreilles de lapin : peau légèrement mate et peau modérément foncée',
+    '👨🏽‍🐰‍👨🏿' => 'hommes qui portent des oreilles de lapin : peau légèrement mate et peau foncée',
+    '👨🏾‍🐰‍👨🏻' => 'hommes qui portent des oreilles de lapin : peau modérément foncée et peau claire',
+    '👨🏾‍🐰‍👨🏼' => 'hommes qui portent des oreilles de lapin : peau modérément foncée et peau modérément claire',
+    '👨🏾‍🐰‍👨🏽' => 'hommes qui portent des oreilles de lapin : peau modérément foncée et peau légèrement mate',
+    '👨🏾‍🐰‍👨🏿' => 'hommes qui portent des oreilles de lapin : peau modérément foncée et peau foncée',
+    '👨🏿‍🐰‍👨🏻' => 'hommes qui portent des oreilles de lapin : peau foncée et peau claire',
+    '👨🏿‍🐰‍👨🏼' => 'hommes qui portent des oreilles de lapin : peau foncée et peau modérément claire',
+    '👨🏿‍🐰‍👨🏽' => 'hommes qui portent des oreilles de lapin : peau foncée et peau légèrement mate',
+    '👨🏿‍🐰‍👨🏾' => 'hommes qui portent des oreilles de lapin : peau foncée et peau modérément foncée',
+    '👩🏻‍🫯‍👩🏼' => 'lutteuses : peau claire et peau modérément claire',
+    '👩🏻‍🫯‍👩🏽' => 'lutteuses : peau claire et peau légèrement mate',
+    '👩🏻‍🫯‍👩🏾' => 'lutteuses : peau claire et peau modérément foncée',
+    '👩🏻‍🫯‍👩🏿' => 'lutteuses : peau claire et peau foncée',
+    '👩🏼‍🫯‍👩🏻' => 'lutteuses : peau modérément claire et peau claire',
+    '👩🏼‍🫯‍👩🏽' => 'lutteuses : peau modérément claire et peau légèrement mate',
+    '👩🏼‍🫯‍👩🏾' => 'lutteuses : peau modérément claire et peau modérément foncée',
+    '👩🏼‍🫯‍👩🏿' => 'lutteuses : peau modérément claire et peau foncée',
+    '👩🏽‍🫯‍👩🏻' => 'lutteuses : peau légèrement mate et peau claire',
+    '👩🏽‍🫯‍👩🏼' => 'lutteuses : peau légèrement mate et peau modérément claire',
+    '👩🏽‍🫯‍👩🏾' => 'lutteuses : peau légèrement mate et peau modérément foncée',
+    '👩🏽‍🫯‍👩🏿' => 'lutteuses : peau légèrement mate et peau foncée',
+    '👩🏾‍🫯‍👩🏻' => 'lutteuses : peau modérément foncée et peau claire',
+    '👩🏾‍🫯‍👩🏼' => 'lutteuses : peau modérément foncée et peau modérément claire',
+    '👩🏾‍🫯‍👩🏽' => 'lutteuses : peau modérément foncée et peau légèrement mate',
+    '👩🏾‍🫯‍👩🏿' => 'lutteuses : peau modérément foncée et peau foncée',
+    '👩🏿‍🫯‍👩🏻' => 'lutteuses : peau foncée et peau claire',
+    '👩🏿‍🫯‍👩🏼' => 'lutteuses : peau foncée et peau modérément claire',
+    '👩🏿‍🫯‍👩🏽' => 'lutteuses : peau foncée et peau légèrement mate',
+    '👩🏿‍🫯‍👩🏾' => 'lutteuses : peau foncée et peau modérément foncée',
     '👩🏻‍❤‍👨🏻' => 'couple avec cœur : femme, homme et peau claire',
     '👩🏻‍❤‍👨🏼' => 'couple avec cœur : femme, homme, peau claire et peau modérément claire',
     '👩🏻‍❤‍👨🏽' => 'couple avec cœur : femme, homme, peau claire et peau légèrement mate',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'couple avec cœur : femme, femme, peau foncée et peau légèrement mate',
     '👩🏿‍❤‍👩🏾' => 'couple avec cœur : femme, femme, peau foncée et peau modérément foncée',
     '👩🏿‍❤‍👩🏿' => 'couple avec cœur : femme, femme et peau foncée',
+    '👩🏻‍🐰‍👩🏼' => 'femmes qui portent des oreilles de lapin : peau claire et peau modérément claire',
+    '👩🏻‍🐰‍👩🏽' => 'femmes qui portent des oreilles de lapin : peau claire et peau légèrement mate',
+    '👩🏻‍🐰‍👩🏾' => 'femmes qui portent des oreilles de lapin : peau claire et peau modérément foncée',
+    '👩🏻‍🐰‍👩🏿' => 'femmes qui portent des oreilles de lapin : peau claire et peau foncée',
+    '👩🏼‍🐰‍👩🏻' => 'femmes qui portent des oreilles de lapin : peau modérément claire et peau claire',
+    '👩🏼‍🐰‍👩🏽' => 'femmes qui portent des oreilles de lapin : peau modérément claire et peau légèrement mate',
+    '👩🏼‍🐰‍👩🏾' => 'femmes qui portent des oreilles de lapin : peau modérément claire et peau modérément foncée',
+    '👩🏼‍🐰‍👩🏿' => 'femmes qui portent des oreilles de lapin : peau modérément claire et peau foncée',
+    '👩🏽‍🐰‍👩🏻' => 'femmes qui portent des oreilles de lapin : peau légèrement mate et peau claire',
+    '👩🏽‍🐰‍👩🏼' => 'femmes qui portent des oreilles de lapin : peau légèrement mate et peau modérément claire',
+    '👩🏽‍🐰‍👩🏾' => 'femmes qui portent des oreilles de lapin : peau légèrement mate et peau modérément foncée',
+    '👩🏽‍🐰‍👩🏿' => 'femmes qui portent des oreilles de lapin : peau légèrement mate et peau foncée',
+    '👩🏾‍🐰‍👩🏻' => 'femmes qui portent des oreilles de lapin : peau modérément foncée et peau claire',
+    '👩🏾‍🐰‍👩🏼' => 'femmes qui portent des oreilles de lapin : peau modérément foncée et peau modérément claire',
+    '👩🏾‍🐰‍👩🏽' => 'femmes qui portent des oreilles de lapin : peau modérément foncée et peau légèrement mate',
+    '👩🏾‍🐰‍👩🏿' => 'femmes qui portent des oreilles de lapin : peau modérément foncée et peau foncée',
+    '👩🏿‍🐰‍👩🏻' => 'femmes qui portent des oreilles de lapin : peau foncée et peau claire',
+    '👩🏿‍🐰‍👩🏼' => 'femmes qui portent des oreilles de lapin : peau foncée et peau modérément claire',
+    '👩🏿‍🐰‍👩🏽' => 'femmes qui portent des oreilles de lapin : peau foncée et peau légèrement mate',
+    '👩🏿‍🐰‍👩🏾' => 'femmes qui portent des oreilles de lapin : peau foncée et peau modérément foncée',
     '🧑🏻‍🤝‍🧑🏻' => 'personnes se tenant par la main : peau claire',
     '🧑🏻‍🤝‍🧑🏼' => 'personnes se tenant par la main : peau claire et peau modérément claire',
     '🧑🏻‍🤝‍🧑🏽' => 'personnes se tenant par la main : peau claire et peau légèrement mate',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'drapeau : Écosse',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'drapeau : Pays de Galles',
     '🧑‍🧑‍🧒‍🧒' => 'famille : adulte, adulte, enfant, enfant',
-    '🚶🏻‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶🏼‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶🏽‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶🏾‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶🏿‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶🏻‍♂‍➡' => 'homme qui marche vers la droite',
-    '🚶🏼‍♂‍➡' => 'homme qui marche vers la droite',
-    '🚶🏽‍♂‍➡' => 'homme qui marche vers la droite',
-    '🚶🏾‍♂‍➡' => 'homme qui marche vers la droite',
-    '🚶🏿‍♂‍➡' => 'homme qui marche vers la droite',
-    '🧎🏻‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎🏼‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎🏽‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎🏾‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎🏿‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎🏻‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧎🏼‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧎🏽‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧎🏾‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧎🏿‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧑🏻‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '🧑🏼‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '🧑🏽‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '🧑🏾‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '🧑🏿‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '👨🏻‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👨🏼‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👨🏽‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👨🏾‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👨🏿‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👩🏻‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '👩🏼‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '👩🏽‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '👩🏾‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '👩🏿‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '🧑🏻‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '🧑🏼‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '🧑🏽‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '🧑🏾‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '🧑🏿‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '👨🏻‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👨🏼‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👨🏽‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👨🏾‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👨🏿‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👩🏻‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '👩🏼‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '👩🏽‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '👩🏾‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '👩🏿‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '🧑🏻‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '🧑🏼‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '🧑🏽‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '🧑🏾‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '🧑🏿‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '👨🏻‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👨🏼‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👨🏽‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👨🏾‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👨🏿‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👩🏻‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '👩🏼‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '👩🏽‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '👩🏾‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '👩🏿‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '🏃🏻‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃🏼‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃🏽‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃🏾‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃🏿‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃🏻‍♂‍➡' => 'homme qui court vers la droite',
-    '🏃🏼‍♂‍➡' => 'homme qui court vers la droite',
-    '🏃🏽‍♂‍➡' => 'homme qui court vers la droite',
-    '🏃🏾‍♂‍➡' => 'homme qui court vers la droite',
-    '🏃🏿‍♂‍➡' => 'homme qui court vers la droite',
+    '🚶🏻‍♀‍➡' => 'femme qui marche : peau claire et vers la droite',
+    '🚶🏼‍♀‍➡' => 'femme qui marche : peau modérément claire et vers la droite',
+    '🚶🏽‍♀‍➡' => 'femme qui marche : peau légèrement mate et vers la droite',
+    '🚶🏾‍♀‍➡' => 'femme qui marche : peau modérément foncée et vers la droite',
+    '🚶🏿‍♀‍➡' => 'femme qui marche : peau foncée et vers la droite',
+    '🚶🏻‍♂‍➡' => 'homme qui marche : peau claire et vers la droite',
+    '🚶🏼‍♂‍➡' => 'homme qui marche : peau modérément claire et vers la droite',
+    '🚶🏽‍♂‍➡' => 'homme qui marche : peau légèrement mate et vers la droite',
+    '🚶🏾‍♂‍➡' => 'homme qui marche : peau modérément foncée et vers la droite',
+    '🚶🏿‍♂‍➡' => 'homme qui marche : peau foncée et vers la droite',
+    '🧎🏻‍♀‍➡' => 'femme à genoux : peau claire et vers la droite',
+    '🧎🏼‍♀‍➡' => 'femme à genoux : peau modérément claire et vers la droite',
+    '🧎🏽‍♀‍➡' => 'femme à genoux : peau légèrement mate et vers la droite',
+    '🧎🏾‍♀‍➡' => 'femme à genoux : peau modérément foncée et vers la droite',
+    '🧎🏿‍♀‍➡' => 'femme à genoux : peau foncée et vers la droite',
+    '🧎🏻‍♂‍➡' => 'homme à genoux : peau claire et vers la droite',
+    '🧎🏼‍♂‍➡' => 'homme à genoux : peau modérément claire et vers la droite',
+    '🧎🏽‍♂‍➡' => 'homme à genoux : peau légèrement mate et vers la droite',
+    '🧎🏾‍♂‍➡' => 'homme à genoux : peau modérément foncée et vers la droite',
+    '🧎🏿‍♂‍➡' => 'homme à genoux : peau foncée et vers la droite',
+    '🧑🏻‍🦯‍➡' => 'personne avec une canne blanche : peau claire et vers la droite',
+    '🧑🏼‍🦯‍➡' => 'personne avec une canne blanche : peau modérément claire et vers la droite',
+    '🧑🏽‍🦯‍➡' => 'personne avec une canne blanche : peau légèrement mate et vers la droite',
+    '🧑🏾‍🦯‍➡' => 'personne avec une canne blanche : peau modérément foncée et vers la droite',
+    '🧑🏿‍🦯‍➡' => 'personne avec une canne blanche : peau foncée et vers la droite',
+    '👨🏻‍🦯‍➡' => 'homme avec canne blanche : peau claire et vers la droite',
+    '👨🏼‍🦯‍➡' => 'homme avec canne blanche : peau modérément claire et vers la droite',
+    '👨🏽‍🦯‍➡' => 'homme avec canne blanche : peau légèrement mate et vers la droite',
+    '👨🏾‍🦯‍➡' => 'homme avec canne blanche : peau modérément foncée et vers la droite',
+    '👨🏿‍🦯‍➡' => 'homme avec canne blanche : peau foncée et vers la droite',
+    '👩🏻‍🦯‍➡' => 'femme avec canne blanche : peau claire et vers la droite',
+    '👩🏼‍🦯‍➡' => 'femme avec canne blanche : peau modérément claire et vers la droite',
+    '👩🏽‍🦯‍➡' => 'femme avec canne blanche : peau légèrement mate et vers la droite',
+    '👩🏾‍🦯‍➡' => 'femme avec canne blanche : peau modérément foncée et vers la droite',
+    '👩🏿‍🦯‍➡' => 'femme avec canne blanche : peau foncée et vers la droite',
+    '🧑🏻‍🦼‍➡' => 'personne en fauteuil motorisé : peau claire et vers la droite',
+    '🧑🏼‍🦼‍➡' => 'personne en fauteuil motorisé : peau modérément claire et vers la droite',
+    '🧑🏽‍🦼‍➡' => 'personne en fauteuil motorisé : peau légèrement mate et vers la droite',
+    '🧑🏾‍🦼‍➡' => 'personne en fauteuil motorisé : peau modérément foncée et vers la droite',
+    '🧑🏿‍🦼‍➡' => 'personne en fauteuil motorisé : peau foncée et vers la droite',
+    '👨🏻‍🦼‍➡' => 'homme en fauteuil motorisé : peau claire et vers la droite',
+    '👨🏼‍🦼‍➡' => 'homme en fauteuil motorisé : peau modérément claire et vers la droite',
+    '👨🏽‍🦼‍➡' => 'homme en fauteuil motorisé : peau légèrement mate et vers la droite',
+    '👨🏾‍🦼‍➡' => 'homme en fauteuil motorisé : peau modérément foncée et vers la droite',
+    '👨🏿‍🦼‍➡' => 'homme en fauteuil motorisé : peau foncée et vers la droite',
+    '👩🏻‍🦼‍➡' => 'femme en fauteuil motorisé : peau claire et vers la droite',
+    '👩🏼‍🦼‍➡' => 'femme en fauteuil motorisé : peau modérément claire et vers la droite',
+    '👩🏽‍🦼‍➡' => 'femme en fauteuil motorisé : peau légèrement mate et vers la droite',
+    '👩🏾‍🦼‍➡' => 'femme en fauteuil motorisé : peau modérément foncée et vers la droite',
+    '👩🏿‍🦼‍➡' => 'femme en fauteuil motorisé : peau foncée et vers la droite',
+    '🧑🏻‍🦽‍➡' => 'personne en fauteuil roulant manuel : peau claire et vers la droite',
+    '🧑🏼‍🦽‍➡' => 'personne en fauteuil roulant manuel : peau modérément claire et vers la droite',
+    '🧑🏽‍🦽‍➡' => 'personne en fauteuil roulant manuel : peau légèrement mate et vers la droite',
+    '🧑🏾‍🦽‍➡' => 'personne en fauteuil roulant manuel : peau modérément foncée et vers la droite',
+    '🧑🏿‍🦽‍➡' => 'personne en fauteuil roulant manuel : peau foncée et vers la droite',
+    '👨🏻‍🦽‍➡' => 'homme en fauteuil roulant manuel : peau claire et vers la droite',
+    '👨🏼‍🦽‍➡' => 'homme en fauteuil roulant manuel : peau modérément claire et vers la droite',
+    '👨🏽‍🦽‍➡' => 'homme en fauteuil roulant manuel : peau légèrement mate et vers la droite',
+    '👨🏾‍🦽‍➡' => 'homme en fauteuil roulant manuel : peau modérément foncée et vers la droite',
+    '👨🏿‍🦽‍➡' => 'homme en fauteuil roulant manuel : peau foncée et vers la droite',
+    '👩🏻‍🦽‍➡' => 'femme en fauteuil roulant manuel : peau claire et vers la droite',
+    '👩🏼‍🦽‍➡' => 'femme en fauteuil roulant manuel : peau modérément claire et vers la droite',
+    '👩🏽‍🦽‍➡' => 'femme en fauteuil roulant manuel : peau légèrement mate et vers la droite',
+    '👩🏾‍🦽‍➡' => 'femme en fauteuil roulant manuel : peau modérément foncée et vers la droite',
+    '👩🏿‍🦽‍➡' => 'femme en fauteuil roulant manuel : peau foncée et vers la droite',
+    '🏃🏻‍♀‍➡' => 'femme qui court : peau claire et vers la droite',
+    '🏃🏼‍♀‍➡' => 'femme qui court : peau modérément claire et vers la droite',
+    '🏃🏽‍♀‍➡' => 'femme qui court : peau légèrement mate et vers la droite',
+    '🏃🏾‍♀‍➡' => 'femme qui court : peau modérément foncée et vers la droite',
+    '🏃🏿‍♀‍➡' => 'femme qui court : peau foncée et vers la droite',
+    '🏃🏻‍♂‍➡' => 'homme qui court : peau claire et vers la droite',
+    '🏃🏼‍♂‍➡' => 'homme qui court : peau modérément claire et vers la droite',
+    '🏃🏽‍♂‍➡' => 'homme qui court : peau légèrement mate et vers la droite',
+    '🏃🏾‍♂‍➡' => 'homme qui court : peau modérément foncée et vers la droite',
+    '🏃🏿‍♂‍➡' => 'homme qui court : peau foncée et vers la droite',
     '🫱🏻‍🫲🏼' => 'poignée de main : peau claire et peau modérément claire',
     '🫱🏻‍🫲🏽' => 'poignée de main : peau claire et peau légèrement mate',
     '🫱🏻‍🫲🏾' => 'poignée de main : peau claire et peau modérément foncée',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'poignée de main : peau foncée et peau modérément claire',
     '🫱🏿‍🫲🏽' => 'poignée de main : peau foncée et peau légèrement mate',
     '🫱🏿‍🫲🏾' => 'poignée de main : peau foncée et peau modérément foncée',
-    '🚶‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶‍♂‍➡' => 'homme qui marche vers la droite',
-    '🧎‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧑‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '👨‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👩‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '🧑‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '👨‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👩‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '🧑‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '👨‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👩‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '🏃‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃‍♂‍➡' => 'homme qui court vers la droite',
+    '🚶‍♀‍➡' => 'femme qui marche : vers la droite',
+    '🚶‍♂‍➡' => 'homme qui marche : vers la droite',
+    '🧎‍♀‍➡' => 'femme à genoux : vers la droite',
+    '🧎‍♂‍➡' => 'homme à genoux : vers la droite',
+    '🧑‍🦯‍➡' => 'personne avec une canne blanche : vers la droite',
+    '👨‍🦯‍➡' => 'homme avec canne blanche : vers la droite',
+    '👩‍🦯‍➡' => 'femme avec canne blanche : vers la droite',
+    '🧑‍🦼‍➡' => 'personne en fauteuil motorisé : vers la droite',
+    '👨‍🦼‍➡' => 'homme en fauteuil motorisé : vers la droite',
+    '👩‍🦼‍➡' => 'femme en fauteuil motorisé : vers la droite',
+    '🧑‍🦽‍➡' => 'personne en fauteuil roulant manuel : vers la droite',
+    '👨‍🦽‍➡' => 'homme en fauteuil roulant manuel : vers la droite',
+    '👩‍🦽‍➡' => 'femme en fauteuil roulant manuel : vers la droite',
+    '🏃‍♀‍➡' => 'femme qui court : vers la droite',
+    '🏃‍♂‍➡' => 'homme qui court : vers la droite',
     '👩‍❤‍👨' => 'couple avec cœur : femme et homme',
     '👨‍❤‍👨' => 'couple avec cœur : homme et homme',
     '👩‍❤‍👩' => 'couple avec cœur : femme et femme',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'adulte : peau légèrement mate et chauve',
     '🧑🏾‍🦲' => 'adulte : peau modérément foncée et chauve',
     '🧑🏿‍🦲' => 'adulte : peau foncée et chauve',
+    '🧑🏻‍🩰' => 'danseuse de ballet : peau claire',
+    '🧑🏼‍🩰' => 'danseuse de ballet : peau modérément claire',
+    '🧑🏽‍🩰' => 'danseuse de ballet : peau légèrement mate',
+    '🧑🏾‍🩰' => 'danseuse de ballet : peau modérément foncée',
+    '🧑🏿‍🩰' => 'danseuse de ballet : peau foncée',
     '🧔🏻‍♂' => 'homme barbu : peau claire',
     '🧔🏼‍♂' => 'homme barbu : peau modérément claire',
     '🧔🏽‍♂' => 'homme barbu : peau légèrement mate',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'femme qui marche : peau légèrement mate',
     '🚶🏾‍♀' => 'femme qui marche : peau modérément foncée',
     '🚶🏿‍♀' => 'femme qui marche : peau foncée',
-    '🚶🏻‍➡' => 'personne qui marche vers la droite',
-    '🚶🏼‍➡' => 'personne qui marche vers la droite',
-    '🚶🏽‍➡' => 'personne qui marche vers la droite',
-    '🚶🏾‍➡' => 'personne qui marche vers la droite',
-    '🚶🏿‍➡' => 'personne qui marche vers la droite',
+    '🚶🏻‍➡' => 'personne qui marche : peau claire et vers la droite',
+    '🚶🏼‍➡' => 'personne qui marche : peau modérément claire et vers la droite',
+    '🚶🏽‍➡' => 'personne qui marche : peau légèrement mate et vers la droite',
+    '🚶🏾‍➡' => 'personne qui marche : peau modérément foncée et vers la droite',
+    '🚶🏿‍➡' => 'personne qui marche : peau foncée et vers la droite',
     '🧍🏻‍♂' => 'homme debout : peau claire',
     '🧍🏼‍♂' => 'homme debout : peau modérément claire',
     '🧍🏽‍♂' => 'homme debout : peau légèrement mate',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'femme à genoux : peau légèrement mate',
     '🧎🏾‍♀' => 'femme à genoux : peau modérément foncée',
     '🧎🏿‍♀' => 'femme à genoux : peau foncée',
-    '🧎🏻‍➡' => 'personne à genoux vers la droite',
-    '🧎🏼‍➡' => 'personne à genoux vers la droite',
-    '🧎🏽‍➡' => 'personne à genoux vers la droite',
-    '🧎🏾‍➡' => 'personne à genoux vers la droite',
-    '🧎🏿‍➡' => 'personne à genoux vers la droite',
+    '🧎🏻‍➡' => 'personne à genoux : peau claire et vers la droite',
+    '🧎🏼‍➡' => 'personne à genoux : peau modérément claire et vers la droite',
+    '🧎🏽‍➡' => 'personne à genoux : peau légèrement mate et vers la droite',
+    '🧎🏾‍➡' => 'personne à genoux : peau modérément foncée et vers la droite',
+    '🧎🏿‍➡' => 'personne à genoux : peau foncée et vers la droite',
     '🧑🏻‍🦯' => 'personne avec une canne blanche : peau claire',
     '🧑🏼‍🦯' => 'personne avec une canne blanche : peau modérément claire',
     '🧑🏽‍🦯' => 'personne avec une canne blanche : peau légèrement mate',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'femme qui court : peau légèrement mate',
     '🏃🏾‍♀' => 'femme qui court : peau modérément foncée',
     '🏃🏿‍♀' => 'femme qui court : peau foncée',
-    '🏃🏻‍➡' => 'personne qui court vers la droite',
-    '🏃🏼‍➡' => 'personne qui court vers la droite',
-    '🏃🏽‍➡' => 'personne qui court vers la droite',
-    '🏃🏾‍➡' => 'personne qui court vers la droite',
-    '🏃🏿‍➡' => 'personne qui court vers la droite',
+    '🏃🏻‍➡' => 'personne qui court : peau claire et vers la droite',
+    '🏃🏼‍➡' => 'personne qui court : peau modérément claire et vers la droite',
+    '🏃🏽‍➡' => 'personne qui court : peau légèrement mate et vers la droite',
+    '🏃🏾‍➡' => 'personne qui court : peau modérément foncée et vers la droite',
+    '🏃🏿‍➡' => 'personne qui court : peau foncée et vers la droite',
+    '👯🏻‍♀' => 'femmes qui portent des oreilles de lapin : peau claire',
+    '👯🏼‍♀' => 'femmes qui portent des oreilles de lapin : peau modérément claire',
+    '👯🏽‍♀' => 'femmes qui portent des oreilles de lapin : peau légèrement mate',
+    '👯🏾‍♀' => 'femmes qui portent des oreilles de lapin : peau modérément foncée',
+    '👯🏿‍♀' => 'femmes qui portent des oreilles de lapin : peau foncée',
+    '👯🏻‍♂' => 'hommes qui portent des oreilles de lapin : peau claire',
+    '👯🏼‍♂' => 'hommes qui portent des oreilles de lapin : peau modérément claire',
+    '👯🏽‍♂' => 'hommes qui portent des oreilles de lapin : peau légèrement mate',
+    '👯🏾‍♂' => 'hommes qui portent des oreilles de lapin : peau modérément foncée',
+    '👯🏿‍♂' => 'hommes qui portent des oreilles de lapin : peau foncée',
     '🧖🏻‍♂' => 'homme dans un bain de vapeur : peau claire',
     '🧖🏼‍♂' => 'homme dans un bain de vapeur : peau modérément claire',
     '🧖🏽‍♂' => 'homme dans un bain de vapeur : peau légèrement mate',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'femme faisant la roue : peau légèrement mate',
     '🤸🏾‍♀' => 'femme faisant la roue : peau modérément foncée',
     '🤸🏿‍♀' => 'femme faisant la roue : peau foncée',
+    '🤼🏻‍♀' => 'lutteuses : peau claire',
+    '🤼🏼‍♀' => 'lutteuses : peau modérément claire',
+    '🤼🏽‍♀' => 'lutteuses : peau légèrement mate',
+    '🤼🏾‍♀' => 'lutteuses : peau modérément foncée',
+    '🤼🏿‍♀' => 'lutteuses : peau foncée',
+    '🤼🏻‍♂' => 'lutteurs : peau claire',
+    '🤼🏼‍♂' => 'lutteurs : peau modérément claire',
+    '🤼🏽‍♂' => 'lutteurs : peau légèrement mate',
+    '🤼🏾‍♂' => 'lutteurs : peau modérément foncée',
+    '🤼🏿‍♂' => 'lutteurs : peau foncée',
     '🤽🏻‍♂' => 'joueur de water-polo : peau claire',
     '🤽🏼‍♂' => 'joueur de water-polo : peau modérément claire',
     '🤽🏽‍♂' => 'joueur de water-polo : peau légèrement mate',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'femme : cheveux bouclés',
     '👩‍🦳' => 'femme : cheveux blancs',
     '👩‍🦲' => 'femme : chauve',
-    '🚶‍➡' => 'personne qui marche vers la droite',
-    '🧎‍➡' => 'personne à genoux vers la droite',
-    '🏃‍➡' => 'personne qui court vers la droite',
+    '🚶‍➡' => 'personne qui marche : vers la droite',
+    '🧎‍➡' => 'personne à genoux : vers la droite',
+    '🏃‍➡' => 'personne qui court : vers la droite',
     '👨‍👦' => 'famille : homme et garçon',
     '👨‍👧' => 'famille : homme et fille',
     '👩‍👦' => 'famille : femme et garçon',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'femme en fauteuil roulant manuel',
     '🏃‍♂' => 'homme qui court',
     '🏃‍♀' => 'femme qui court',
+    '🧑‍🩰' => 'danseuse de ballet',
     '👯‍♂' => 'hommes qui portent des oreilles de lapin',
     '👯‍♀' => 'femmes qui portent des oreilles de lapin',
     '🧖‍♂' => 'homme dans un bain de vapeur',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'homme d’affaires en lévitation : peau légèrement mate',
     '🕴🏾' => 'homme d’affaires en lévitation : peau modérément foncée',
     '🕴🏿' => 'homme d’affaires en lévitation : peau foncée',
+    '👯🏻' => 'personnes qui portent des oreilles de lapin : peau claire',
+    '👯🏼' => 'personnes qui portent des oreilles de lapin : peau modérément claire',
+    '👯🏽' => 'personnes qui portent des oreilles de lapin : peau légèrement mate',
+    '👯🏾' => 'personnes qui portent des oreilles de lapin : peau modérément foncée',
+    '👯🏿' => 'personnes qui portent des oreilles de lapin : peau foncée',
     '🧖🏻' => 'personne dans un bain de vapeur : peau claire',
     '🧖🏼' => 'personne dans un bain de vapeur : peau modérément claire',
     '🧖🏽' => 'personne dans un bain de vapeur : peau légèrement mate',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'personne faisant la roue : peau légèrement mate',
     '🤸🏾' => 'personne faisant la roue : peau modérément foncée',
     '🤸🏿' => 'personne faisant la roue : peau foncée',
+    '🤼🏻' => 'personnes faisant de la lutte : peau claire',
+    '🤼🏼' => 'personnes faisant de la lutte : peau modérément claire',
+    '🤼🏽' => 'personnes faisant de la lutte : peau légèrement mate',
+    '🤼🏾' => 'personnes faisant de la lutte : peau modérément foncée',
+    '🤼🏿' => 'personnes faisant de la lutte : peau foncée',
     '🤽🏻' => 'personne qui joue au water-polo : peau claire',
     '🤽🏼' => 'personne qui joue au water-polo : peau modérément claire',
     '🤽🏽' => 'personne qui joue au water-polo : peau légèrement mate',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'drapeau : Chine',
     '🇨🇴' => 'drapeau : Colombie',
     '🇨🇵' => 'drapeau : île Clipperton',
+    '🇨🇶' => 'drapeau : Sercq',
     '🇨🇷' => 'drapeau : Costa Rica',
     '🇨🇺' => 'drapeau : Cuba',
     '🇨🇻' => 'drapeau : Cap-Vert',
@@ -2390,13 +2547,6 @@
     '🏽' => 'peau légèrement mate',
     '🏾' => 'peau modérément foncée',
     '🏿' => 'peau foncée',
-    '🪉' => 'harpe',
-    '🪏' => 'pelle',
-    '🪾' => 'arbre sans feuille',
-    '🫆' => 'empreinte digitale',
-    '🫜' => 'légume-racine',
-    '🫟' => 'éclaboussure',
-    '🫩' => 'visage avec des cernes sous les yeux',
     '😀' => 'visage avec large sourire',
     '😃' => 'visage souriant les yeux grands ouverts',
     '😄' => 'visage avec large sourire et yeux rieurs',
@@ -2450,6 +2600,7 @@
     '😪' => 'visage endormi',
     '🤤' => 'visage qui bave',
     '😴' => 'visage somnolent',
+    '🫩' => 'visage avec des cernes sous les yeux',
     '😷' => 'visage avec masque',
     '🤒' => 'visage avec thermomètre',
     '🤕' => 'visage bandé',
@@ -2476,6 +2627,7 @@
     '😯' => 'visage ébahi',
     '😲' => 'visage stupéfait',
     '😳' => 'visage qui rougit',
+    '🫪' => 'visage déformé',
     '🥺' => 'visage implorant',
     '🥹' => 'visage retenant ses larmes',
     '😦' => 'visage mécontent avec bouche ouverte',
@@ -2547,6 +2699,7 @@
     '💋' => 'trace de rouge à lèvres',
     '💯' => 'cent points',
     '💢' => 'symbole de colère',
+    '🫯' => 'nuage de colère',
     '💥' => 'explosion',
     '💫' => 'étourdissement',
     '💦' => 'gouttes de sueur',
@@ -2670,6 +2823,7 @@
     '🧞' => 'génie',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'créature velue',
     '💆' => 'personne qui se fait masser',
     '💇' => 'personne qui se fait couper les cheveux',
     '🚶' => 'personne qui marche',
@@ -2713,6 +2867,7 @@
     '🫂' => 'personnes qui s’étreignent',
     '👪' => 'famille',
     '👣' => 'traces de pas',
+    '🫆' => 'empreinte digitale',
     '🦰' => 'cheveux roux',
     '🦱' => 'cheveux bouclés',
     '🦳' => 'cheveux blancs',
@@ -2812,6 +2967,7 @@
     '🐳' => 'baleine qui expulse de l’eau',
     '🐋' => 'baleine',
     '🐬' => 'dauphin',
+    '🫍' => 'orque',
     '🦭' => 'phoque',
     '🐟' => 'poisson',
     '🐠' => 'poisson tropical',
@@ -2821,6 +2977,11 @@
     '🐚' => 'coquille en spirale',
     '🪸' => 'corail',
     '🪼' => 'méduse',
+    '🦀' => 'crabe',
+    '🦞' => 'homard',
+    '🦐' => 'crevette',
+    '🦑' => 'calamar',
+    '🦪' => 'huître',
     '🐌' => 'escargot',
     '🦋' => 'papillon',
     '🐛' => 'chenille',
@@ -2865,6 +3026,7 @@
     '🪹' => 'nid vide',
     '🪺' => 'nid avec œufs',
     '🍄' => 'champignon',
+    '🪾' => 'arbre sans feuille',
     '🍇' => 'raisin',
     '🍈' => 'melon',
     '🍉' => 'melon d’eau',
@@ -2901,6 +3063,7 @@
     '🌰' => 'châtaigne',
     '🫚' => 'racine de gingembre',
     '🫛' => 'cosse de petits pois',
+    '🫜' => 'légume-racine',
     '🍞' => 'pain',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2952,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'biscuit chinois',
     '🥡' => 'boîte à emporter',
-    '🦀' => 'crabe',
-    '🦞' => 'homard',
-    '🦐' => 'crevette',
-    '🦑' => 'calamar',
-    '🦪' => 'huître',
     '🍦' => 'crème glacée molle',
     '🍧' => 'glace pilée',
     '🍨' => 'crème glacée',
@@ -3007,6 +3165,7 @@
     '🧭' => 'boussole',
     '🏔' => 'montagne enneigée',
     '⛰' => 'montagne',
+    '🛘' => 'éboulement',
     '🌋' => 'volcan',
     '🗻' => 'mont Fuji',
     '🏕' => 'camping',
@@ -3367,16 +3526,17 @@
     '🎧' => 'casque d’écoute',
     '📻' => 'radio',
     '🎷' => 'saxophone',
+    '🎺' => 'trompette',
     '🪗' => 'accordéon',
     '🎸' => 'guitare',
     '🎹' => 'piano',
-    '🎺' => 'trompette',
     '🎻' => 'violon',
     '🪕' => 'banjo',
     '🥁' => 'tambour',
     '🪘' => 'djembé',
     '🪇' => 'maracas',
     '🪈' => 'flûte',
+    '🪉' => 'harpe',
     '📱' => 'téléphone cellulaire',
     '📲' => 'téléphone cellulaire précédé par une flèche',
     '☎' => 'téléphone',
@@ -3430,8 +3590,9 @@
     '📑' => 'onglets',
     '🔖' => 'marque-page',
     '🏷' => 'étiquette',
-    '💰' => 'sac plein d’argent',
     '🪙' => 'pièce de monnaie',
+    '💰' => 'sac plein d’argent',
+    '🪎' => 'coffre au trésor',
     '💴' => 'billet en yens',
     '💵' => 'billet en dollars',
     '💶' => 'billet en euros',
@@ -3514,6 +3675,7 @@
     '🧰' => 'boîte à outils',
     '🧲' => 'aimant',
     '🪜' => 'échelle',
+    '🪏' => 'pelle',
     '⚗' => 'alambic',
     '🧪' => 'tube à essai',
     '🧫' => 'boîte de pétri',
@@ -3697,6 +3859,7 @@
     '✴' => 'étoile à huit branches',
     '❇' => 'éclat',
     '™' => 'marque de commerce',
+    '🫟' => 'éclaboussure',
     '🔠' => 'majuscules',
     '🔡' => 'minuscules',
     '🔢' => 'saisie de chiffres',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-fr.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'bisou : femme, femme, peau foncée et peau légèrement mate',
     '👩🏿‍❤‍💋‍👩🏾' => 'bisou : femme, femme, peau foncée et peau mate',
     '👩🏿‍❤‍💋‍👩🏿' => 'bisou : femme, femme et peau foncée',
+    '🧑🏻‍🫯‍🧑🏼' => 'personnes faisant de la lutte : peau claire et peau moyennement claire',
+    '🧑🏻‍🫯‍🧑🏽' => 'personnes faisant de la lutte : peau claire et peau légèrement mate',
+    '🧑🏻‍🫯‍🧑🏾' => 'personnes faisant de la lutte : peau claire et peau mate',
+    '🧑🏻‍🫯‍🧑🏿' => 'personnes faisant de la lutte : peau claire et peau foncée',
+    '🧑🏼‍🫯‍🧑🏻' => 'personnes faisant de la lutte : peau moyennement claire et peau claire',
+    '🧑🏼‍🫯‍🧑🏽' => 'personnes faisant de la lutte : peau moyennement claire et peau légèrement mate',
+    '🧑🏼‍🫯‍🧑🏾' => 'personnes faisant de la lutte : peau moyennement claire et peau mate',
+    '🧑🏼‍🫯‍🧑🏿' => 'personnes faisant de la lutte : peau moyennement claire et peau foncée',
+    '🧑🏽‍🫯‍🧑🏻' => 'personnes faisant de la lutte : peau légèrement mate et peau claire',
+    '🧑🏽‍🫯‍🧑🏼' => 'personnes faisant de la lutte : peau légèrement mate et peau moyennement claire',
+    '🧑🏽‍🫯‍🧑🏾' => 'personnes faisant de la lutte : peau légèrement mate et peau mate',
+    '🧑🏽‍🫯‍🧑🏿' => 'personnes faisant de la lutte : peau légèrement mate et peau foncée',
+    '🧑🏾‍🫯‍🧑🏻' => 'personnes faisant de la lutte : peau mate et peau claire',
+    '🧑🏾‍🫯‍🧑🏼' => 'personnes faisant de la lutte : peau mate et peau moyennement claire',
+    '🧑🏾‍🫯‍🧑🏽' => 'personnes faisant de la lutte : peau mate et peau légèrement mate',
+    '🧑🏾‍🫯‍🧑🏿' => 'personnes faisant de la lutte : peau mate et peau foncée',
+    '🧑🏿‍🫯‍🧑🏻' => 'personnes faisant de la lutte : peau foncée et peau claire',
+    '🧑🏿‍🫯‍🧑🏼' => 'personnes faisant de la lutte : peau foncée et peau moyennement claire',
+    '🧑🏿‍🫯‍🧑🏽' => 'personnes faisant de la lutte : peau foncée et peau légèrement mate',
+    '🧑🏿‍🫯‍🧑🏾' => 'personnes faisant de la lutte : peau foncée et peau mate',
     '🧑🏻‍❤‍🧑🏼' => 'couple avec cœur : adulte, adulte, peau claire et peau moyennement claire',
     '🧑🏻‍❤‍🧑🏽' => 'couple avec cœur : adulte, adulte, peau claire et peau légèrement mate',
     '🧑🏻‍❤‍🧑🏾' => 'couple avec cœur : adulte, adulte, peau claire et peau mate',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'couple avec cœur : adulte, adulte, peau foncée et peau moyennement claire',
     '🧑🏿‍❤‍🧑🏽' => 'couple avec cœur : adulte, adulte, peau foncée et peau légèrement mate',
     '🧑🏿‍❤‍🧑🏾' => 'couple avec cœur : adulte, adulte, peau foncée et peau mate',
+    '🧑🏻‍🐰‍🧑🏼' => 'personnes avec des oreilles de lapin : peau claire et peau moyennement claire',
+    '🧑🏻‍🐰‍🧑🏽' => 'personnes avec des oreilles de lapin : peau claire et peau légèrement mate',
+    '🧑🏻‍🐰‍🧑🏾' => 'personnes avec des oreilles de lapin : peau claire et peau mate',
+    '🧑🏻‍🐰‍🧑🏿' => 'personnes avec des oreilles de lapin : peau claire et peau foncée',
+    '🧑🏼‍🐰‍🧑🏻' => 'personnes avec des oreilles de lapin : peau moyennement claire et peau claire',
+    '🧑🏼‍🐰‍🧑🏽' => 'personnes avec des oreilles de lapin : peau moyennement claire et peau légèrement mate',
+    '🧑🏼‍🐰‍🧑🏾' => 'personnes avec des oreilles de lapin : peau moyennement claire et peau mate',
+    '🧑🏼‍🐰‍🧑🏿' => 'personnes avec des oreilles de lapin : peau moyennement claire et peau foncée',
+    '🧑🏽‍🐰‍🧑🏻' => 'personnes avec des oreilles de lapin : peau légèrement mate et peau claire',
+    '🧑🏽‍🐰‍🧑🏼' => 'personnes avec des oreilles de lapin : peau légèrement mate et peau moyennement claire',
+    '🧑🏽‍🐰‍🧑🏾' => 'personnes avec des oreilles de lapin : peau légèrement mate et peau mate',
+    '🧑🏽‍🐰‍🧑🏿' => 'personnes avec des oreilles de lapin : peau légèrement mate et peau foncée',
+    '🧑🏾‍🐰‍🧑🏻' => 'personnes avec des oreilles de lapin : peau mate et peau claire',
+    '🧑🏾‍🐰‍🧑🏼' => 'personnes avec des oreilles de lapin : peau mate et peau moyennement claire',
+    '🧑🏾‍🐰‍🧑🏽' => 'personnes avec des oreilles de lapin : peau mate et peau légèrement mate',
+    '🧑🏾‍🐰‍🧑🏿' => 'personnes avec des oreilles de lapin : peau mate et peau foncée',
+    '🧑🏿‍🐰‍🧑🏻' => 'personnes avec des oreilles de lapin : peau foncée et peau claire',
+    '🧑🏿‍🐰‍🧑🏼' => 'personnes avec des oreilles de lapin : peau foncée et peau moyennement claire',
+    '🧑🏿‍🐰‍🧑🏽' => 'personnes avec des oreilles de lapin : peau foncée et peau légèrement mate',
+    '🧑🏿‍🐰‍🧑🏾' => 'personnes avec des oreilles de lapin : peau foncée et peau mate',
+    '👨🏻‍🫯‍👨🏼' => 'lutteurs : peau claire et peau moyennement claire',
+    '👨🏻‍🫯‍👨🏽' => 'lutteurs : peau claire et peau légèrement mate',
+    '👨🏻‍🫯‍👨🏾' => 'lutteurs : peau claire et peau mate',
+    '👨🏻‍🫯‍👨🏿' => 'lutteurs : peau claire et peau foncée',
+    '👨🏼‍🫯‍👨🏻' => 'lutteurs : peau moyennement claire et peau claire',
+    '👨🏼‍🫯‍👨🏽' => 'lutteurs : peau moyennement claire et peau légèrement mate',
+    '👨🏼‍🫯‍👨🏾' => 'lutteurs : peau moyennement claire et peau mate',
+    '👨🏼‍🫯‍👨🏿' => 'lutteurs : peau moyennement claire et peau foncée',
+    '👨🏽‍🫯‍👨🏻' => 'lutteurs : peau légèrement mate et peau claire',
+    '👨🏽‍🫯‍👨🏼' => 'lutteurs : peau légèrement mate et peau moyennement claire',
+    '👨🏽‍🫯‍👨🏾' => 'lutteurs : peau légèrement mate et peau mate',
+    '👨🏽‍🫯‍👨🏿' => 'lutteurs : peau légèrement mate et peau foncée',
+    '👨🏾‍🫯‍👨🏻' => 'lutteurs : peau mate et peau claire',
+    '👨🏾‍🫯‍👨🏼' => 'lutteurs : peau mate et peau moyennement claire',
+    '👨🏾‍🫯‍👨🏽' => 'lutteurs : peau mate et peau légèrement mate',
+    '👨🏾‍🫯‍👨🏿' => 'lutteurs : peau mate et peau foncée',
+    '👨🏿‍🫯‍👨🏻' => 'lutteurs : peau foncée et peau claire',
+    '👨🏿‍🫯‍👨🏼' => 'lutteurs : peau foncée et peau moyennement claire',
+    '👨🏿‍🫯‍👨🏽' => 'lutteurs : peau foncée et peau légèrement mate',
+    '👨🏿‍🫯‍👨🏾' => 'lutteurs : peau foncée et peau mate',
     '👨🏻‍❤‍👨🏻' => 'couple avec cœur : homme, homme et peau claire',
     '👨🏻‍❤‍👨🏼' => 'couple avec cœur : homme, homme, peau claire et peau moyennement claire',
     '👨🏻‍❤‍👨🏽' => 'couple avec cœur : homme, homme, peau claire et peau légèrement mate',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'couple avec cœur : homme, homme, peau foncée et peau légèrement mate',
     '👨🏿‍❤‍👨🏾' => 'couple avec cœur : homme, homme, peau foncée et peau mate',
     '👨🏿‍❤‍👨🏿' => 'couple avec cœur : homme, homme et peau foncée',
+    '👨🏻‍🐰‍👨🏼' => 'hommes avec des oreilles de lapin : peau claire et peau moyennement claire',
+    '👨🏻‍🐰‍👨🏽' => 'hommes avec des oreilles de lapin : peau claire et peau légèrement mate',
+    '👨🏻‍🐰‍👨🏾' => 'hommes avec des oreilles de lapin : peau claire et peau mate',
+    '👨🏻‍🐰‍👨🏿' => 'hommes avec des oreilles de lapin : peau claire et peau foncée',
+    '👨🏼‍🐰‍👨🏻' => 'hommes avec des oreilles de lapin : peau moyennement claire et peau claire',
+    '👨🏼‍🐰‍👨🏽' => 'hommes avec des oreilles de lapin : peau moyennement claire et peau légèrement mate',
+    '👨🏼‍🐰‍👨🏾' => 'hommes avec des oreilles de lapin : peau moyennement claire et peau mate',
+    '👨🏼‍🐰‍👨🏿' => 'hommes avec des oreilles de lapin : peau moyennement claire et peau foncée',
+    '👨🏽‍🐰‍👨🏻' => 'hommes avec des oreilles de lapin : peau légèrement mate et peau claire',
+    '👨🏽‍🐰‍👨🏼' => 'hommes avec des oreilles de lapin : peau légèrement mate et peau moyennement claire',
+    '👨🏽‍🐰‍👨🏾' => 'hommes avec des oreilles de lapin : peau légèrement mate et peau mate',
+    '👨🏽‍🐰‍👨🏿' => 'hommes avec des oreilles de lapin : peau légèrement mate et peau foncée',
+    '👨🏾‍🐰‍👨🏻' => 'hommes avec des oreilles de lapin : peau mate et peau claire',
+    '👨🏾‍🐰‍👨🏼' => 'hommes avec des oreilles de lapin : peau mate et peau moyennement claire',
+    '👨🏾‍🐰‍👨🏽' => 'hommes avec des oreilles de lapin : peau mate et peau légèrement mate',
+    '👨🏾‍🐰‍👨🏿' => 'hommes avec des oreilles de lapin : peau mate et peau foncée',
+    '👨🏿‍🐰‍👨🏻' => 'hommes avec des oreilles de lapin : peau foncée et peau claire',
+    '👨🏿‍🐰‍👨🏼' => 'hommes avec des oreilles de lapin : peau foncée et peau moyennement claire',
+    '👨🏿‍🐰‍👨🏽' => 'hommes avec des oreilles de lapin : peau foncée et peau légèrement mate',
+    '👨🏿‍🐰‍👨🏾' => 'hommes avec des oreilles de lapin : peau foncée et peau mate',
+    '👩🏻‍🫯‍👩🏼' => 'lutteuses : peau claire et peau moyennement claire',
+    '👩🏻‍🫯‍👩🏽' => 'lutteuses : peau claire et peau légèrement mate',
+    '👩🏻‍🫯‍👩🏾' => 'lutteuses : peau claire et peau mate',
+    '👩🏻‍🫯‍👩🏿' => 'lutteuses : peau claire et peau foncée',
+    '👩🏼‍🫯‍👩🏻' => 'lutteuses : peau moyennement claire et peau claire',
+    '👩🏼‍🫯‍👩🏽' => 'lutteuses : peau moyennement claire et peau légèrement mate',
+    '👩🏼‍🫯‍👩🏾' => 'lutteuses : peau moyennement claire et peau mate',
+    '👩🏼‍🫯‍👩🏿' => 'lutteuses : peau moyennement claire et peau foncée',
+    '👩🏽‍🫯‍👩🏻' => 'lutteuses : peau légèrement mate et peau claire',
+    '👩🏽‍🫯‍👩🏼' => 'lutteuses : peau légèrement mate et peau moyennement claire',
+    '👩🏽‍🫯‍👩🏾' => 'lutteuses : peau légèrement mate et peau mate',
+    '👩🏽‍🫯‍👩🏿' => 'lutteuses : peau légèrement mate et peau foncée',
+    '👩🏾‍🫯‍👩🏻' => 'lutteuses : peau mate et peau claire',
+    '👩🏾‍🫯‍👩🏼' => 'lutteuses : peau mate et peau moyennement claire',
+    '👩🏾‍🫯‍👩🏽' => 'lutteuses : peau mate et peau légèrement mate',
+    '👩🏾‍🫯‍👩🏿' => 'lutteuses : peau mate et peau foncée',
+    '👩🏿‍🫯‍👩🏻' => 'lutteuses : peau foncée et peau claire',
+    '👩🏿‍🫯‍👩🏼' => 'lutteuses : peau foncée et peau moyennement claire',
+    '👩🏿‍🫯‍👩🏽' => 'lutteuses : peau foncée et peau légèrement mate',
+    '👩🏿‍🫯‍👩🏾' => 'lutteuses : peau foncée et peau mate',
     '👩🏻‍❤‍👨🏻' => 'couple avec cœur : femme, homme et peau claire',
     '👩🏻‍❤‍👨🏼' => 'couple avec cœur : femme, homme, peau claire et peau moyennement claire',
     '👩🏻‍❤‍👨🏽' => 'couple avec cœur : femme, homme, peau claire et peau légèrement mate',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'couple avec cœur : femme, femme, peau foncée et peau légèrement mate',
     '👩🏿‍❤‍👩🏾' => 'couple avec cœur : femme, femme, peau foncée et peau mate',
     '👩🏿‍❤‍👩🏿' => 'couple avec cœur : femme, femme et peau foncée',
+    '👩🏻‍🐰‍👩🏼' => 'femmes avec des oreilles de lapin : peau claire et peau moyennement claire',
+    '👩🏻‍🐰‍👩🏽' => 'femmes avec des oreilles de lapin : peau claire et peau légèrement mate',
+    '👩🏻‍🐰‍👩🏾' => 'femmes avec des oreilles de lapin : peau claire et peau mate',
+    '👩🏻‍🐰‍👩🏿' => 'femmes avec des oreilles de lapin : peau claire et peau foncée',
+    '👩🏼‍🐰‍👩🏻' => 'femmes avec des oreilles de lapin : peau moyennement claire et peau claire',
+    '👩🏼‍🐰‍👩🏽' => 'femmes avec des oreilles de lapin : peau moyennement claire et peau légèrement mate',
+    '👩🏼‍🐰‍👩🏾' => 'femmes avec des oreilles de lapin : peau moyennement claire et peau mate',
+    '👩🏼‍🐰‍👩🏿' => 'femmes avec des oreilles de lapin : peau moyennement claire et peau foncée',
+    '👩🏽‍🐰‍👩🏻' => 'femmes avec des oreilles de lapin : peau légèrement mate et peau claire',
+    '👩🏽‍🐰‍👩🏼' => 'femmes avec des oreilles de lapin : peau légèrement mate et peau moyennement claire',
+    '👩🏽‍🐰‍👩🏾' => 'femmes avec des oreilles de lapin : peau légèrement mate et peau mate',
+    '👩🏽‍🐰‍👩🏿' => 'femmes avec des oreilles de lapin : peau légèrement mate et peau foncée',
+    '👩🏾‍🐰‍👩🏻' => 'femmes avec des oreilles de lapin : peau mate et peau claire',
+    '👩🏾‍🐰‍👩🏼' => 'femmes avec des oreilles de lapin : peau mate et peau moyennement claire',
+    '👩🏾‍🐰‍👩🏽' => 'femmes avec des oreilles de lapin : peau mate et peau légèrement mate',
+    '👩🏾‍🐰‍👩🏿' => 'femmes avec des oreilles de lapin : peau mate et peau foncée',
+    '👩🏿‍🐰‍👩🏻' => 'femmes avec des oreilles de lapin : peau foncée et peau claire',
+    '👩🏿‍🐰‍👩🏼' => 'femmes avec des oreilles de lapin : peau foncée et peau moyennement claire',
+    '👩🏿‍🐰‍👩🏽' => 'femmes avec des oreilles de lapin : peau foncée et peau légèrement mate',
+    '👩🏿‍🐰‍👩🏾' => 'femmes avec des oreilles de lapin : peau foncée et peau mate',
     '🧑🏻‍🤝‍🧑🏻' => 'deux personnes se tenant la main : peau claire',
     '🧑🏻‍🤝‍🧑🏼' => 'deux personnes se tenant la main : peau claire et peau moyennement claire',
     '🧑🏻‍🤝‍🧑🏽' => 'deux personnes se tenant la main : peau claire et peau légèrement mate',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'drapeau : Écosse',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'drapeau : Pays de Galles',
     '🧑‍🧑‍🧒‍🧒' => 'famille : adulte, adulte, enfant, enfant',
-    '🚶🏻‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶🏼‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶🏽‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶🏾‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶🏿‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶🏻‍♂‍➡' => 'homme qui marche vers la droite',
-    '🚶🏼‍♂‍➡' => 'homme qui marche vers la droite',
-    '🚶🏽‍♂‍➡' => 'homme qui marche vers la droite',
-    '🚶🏾‍♂‍➡' => 'homme qui marche vers la droite',
-    '🚶🏿‍♂‍➡' => 'homme qui marche vers la droite',
-    '🧎🏻‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎🏼‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎🏽‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎🏾‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎🏿‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎🏻‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧎🏼‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧎🏽‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧎🏾‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧎🏿‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧑🏻‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '🧑🏼‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '🧑🏽‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '🧑🏾‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '🧑🏿‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '👨🏻‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👨🏼‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👨🏽‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👨🏾‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👨🏿‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👩🏻‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '👩🏼‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '👩🏽‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '👩🏾‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '👩🏿‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '🧑🏻‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '🧑🏼‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '🧑🏽‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '🧑🏾‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '🧑🏿‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '👨🏻‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👨🏼‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👨🏽‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👨🏾‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👨🏿‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👩🏻‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '👩🏼‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '👩🏽‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '👩🏾‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '👩🏿‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '🧑🏻‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '🧑🏼‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '🧑🏽‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '🧑🏾‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '🧑🏿‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '👨🏻‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👨🏼‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👨🏽‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👨🏾‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👨🏿‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👩🏻‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '👩🏼‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '👩🏽‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '👩🏾‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '👩🏿‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '🏃🏻‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃🏼‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃🏽‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃🏾‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃🏿‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃🏻‍♂‍➡' => 'homme qui court vers la droite',
-    '🏃🏼‍♂‍➡' => 'homme qui court vers la droite',
-    '🏃🏽‍♂‍➡' => 'homme qui court vers la droite',
-    '🏃🏾‍♂‍➡' => 'homme qui court vers la droite',
-    '🏃🏿‍♂‍➡' => 'homme qui court vers la droite',
+    '🚶🏻‍♀‍➡' => 'femme qui marche : peau claire et vers la droite',
+    '🚶🏼‍♀‍➡' => 'femme qui marche : peau moyennement claire et vers la droite',
+    '🚶🏽‍♀‍➡' => 'femme qui marche : peau légèrement mate et vers la droite',
+    '🚶🏾‍♀‍➡' => 'femme qui marche : peau mate et vers la droite',
+    '🚶🏿‍♀‍➡' => 'femme qui marche : peau foncée et vers la droite',
+    '🚶🏻‍♂‍➡' => 'homme qui marche : peau claire et vers la droite',
+    '🚶🏼‍♂‍➡' => 'homme qui marche : peau moyennement claire et vers la droite',
+    '🚶🏽‍♂‍➡' => 'homme qui marche : peau légèrement mate et vers la droite',
+    '🚶🏾‍♂‍➡' => 'homme qui marche : peau mate et vers la droite',
+    '🚶🏿‍♂‍➡' => 'homme qui marche : peau foncée et vers la droite',
+    '🧎🏻‍♀‍➡' => 'femme à genoux : peau claire et vers la droite',
+    '🧎🏼‍♀‍➡' => 'femme à genoux : peau moyennement claire et vers la droite',
+    '🧎🏽‍♀‍➡' => 'femme à genoux : peau légèrement mate et vers la droite',
+    '🧎🏾‍♀‍➡' => 'femme à genoux : peau mate et vers la droite',
+    '🧎🏿‍♀‍➡' => 'femme à genoux : peau foncée et vers la droite',
+    '🧎🏻‍♂‍➡' => 'homme à genoux : peau claire et vers la droite',
+    '🧎🏼‍♂‍➡' => 'homme à genoux : peau moyennement claire et vers la droite',
+    '🧎🏽‍♂‍➡' => 'homme à genoux : peau légèrement mate et vers la droite',
+    '🧎🏾‍♂‍➡' => 'homme à genoux : peau mate et vers la droite',
+    '🧎🏿‍♂‍➡' => 'homme à genoux : peau foncée et vers la droite',
+    '🧑🏻‍🦯‍➡' => 'personne avec une canne blanche : peau claire et vers la droite',
+    '🧑🏼‍🦯‍➡' => 'personne avec une canne blanche : peau moyennement claire et vers la droite',
+    '🧑🏽‍🦯‍➡' => 'personne avec une canne blanche : peau légèrement mate et vers la droite',
+    '🧑🏾‍🦯‍➡' => 'personne avec une canne blanche : peau mate et vers la droite',
+    '🧑🏿‍🦯‍➡' => 'personne avec une canne blanche : peau foncée et vers la droite',
+    '👨🏻‍🦯‍➡' => 'homme avec canne blanche : peau claire et vers la droite',
+    '👨🏼‍🦯‍➡' => 'homme avec canne blanche : peau moyennement claire et vers la droite',
+    '👨🏽‍🦯‍➡' => 'homme avec canne blanche : peau légèrement mate et vers la droite',
+    '👨🏾‍🦯‍➡' => 'homme avec canne blanche : peau mate et vers la droite',
+    '👨🏿‍🦯‍➡' => 'homme avec canne blanche : peau foncée et vers la droite',
+    '👩🏻‍🦯‍➡' => 'femme avec canne blanche : peau claire et vers la droite',
+    '👩🏼‍🦯‍➡' => 'femme avec canne blanche : peau moyennement claire et vers la droite',
+    '👩🏽‍🦯‍➡' => 'femme avec canne blanche : peau légèrement mate et vers la droite',
+    '👩🏾‍🦯‍➡' => 'femme avec canne blanche : peau mate et vers la droite',
+    '👩🏿‍🦯‍➡' => 'femme avec canne blanche : peau foncée et vers la droite',
+    '🧑🏻‍🦼‍➡' => 'personne en fauteuil motorisé : peau claire et vers la droite',
+    '🧑🏼‍🦼‍➡' => 'personne en fauteuil motorisé : peau moyennement claire et vers la droite',
+    '🧑🏽‍🦼‍➡' => 'personne en fauteuil motorisé : peau légèrement mate et vers la droite',
+    '🧑🏾‍🦼‍➡' => 'personne en fauteuil motorisé : peau mate et vers la droite',
+    '🧑🏿‍🦼‍➡' => 'personne en fauteuil motorisé : peau foncée et vers la droite',
+    '👨🏻‍🦼‍➡' => 'homme en fauteuil motorisé : peau claire et vers la droite',
+    '👨🏼‍🦼‍➡' => 'homme en fauteuil motorisé : peau moyennement claire et vers la droite',
+    '👨🏽‍🦼‍➡' => 'homme en fauteuil motorisé : peau légèrement mate et vers la droite',
+    '👨🏾‍🦼‍➡' => 'homme en fauteuil motorisé : peau mate et vers la droite',
+    '👨🏿‍🦼‍➡' => 'homme en fauteuil motorisé : peau foncée et vers la droite',
+    '👩🏻‍🦼‍➡' => 'femme en fauteuil motorisé : peau claire et vers la droite',
+    '👩🏼‍🦼‍➡' => 'femme en fauteuil motorisé : peau moyennement claire et vers la droite',
+    '👩🏽‍🦼‍➡' => 'femme en fauteuil motorisé : peau légèrement mate et vers la droite',
+    '👩🏾‍🦼‍➡' => 'femme en fauteuil motorisé : peau mate et vers la droite',
+    '👩🏿‍🦼‍➡' => 'femme en fauteuil motorisé : peau foncée et vers la droite',
+    '🧑🏻‍🦽‍➡' => 'personne en fauteuil roulant manuel : peau claire et vers la droite',
+    '🧑🏼‍🦽‍➡' => 'personne en fauteuil roulant manuel : peau moyennement claire et vers la droite',
+    '🧑🏽‍🦽‍➡' => 'personne en fauteuil roulant manuel : peau légèrement mate et vers la droite',
+    '🧑🏾‍🦽‍➡' => 'personne en fauteuil roulant manuel : peau mate et vers la droite',
+    '🧑🏿‍🦽‍➡' => 'personne en fauteuil roulant manuel : peau foncée et vers la droite',
+    '👨🏻‍🦽‍➡' => 'homme en fauteuil roulant manuel : peau claire et vers la droite',
+    '👨🏼‍🦽‍➡' => 'homme en fauteuil roulant manuel : peau moyennement claire et vers la droite',
+    '👨🏽‍🦽‍➡' => 'homme en fauteuil roulant manuel : peau légèrement mate et vers la droite',
+    '👨🏾‍🦽‍➡' => 'homme en fauteuil roulant manuel : peau mate et vers la droite',
+    '👨🏿‍🦽‍➡' => 'homme en fauteuil roulant manuel : peau foncée et vers la droite',
+    '👩🏻‍🦽‍➡' => 'femme en fauteuil roulant manuel : peau claire et vers la droite',
+    '👩🏼‍🦽‍➡' => 'femme en fauteuil roulant manuel : peau moyennement claire et vers la droite',
+    '👩🏽‍🦽‍➡' => 'femme en fauteuil roulant manuel : peau légèrement mate et vers la droite',
+    '👩🏾‍🦽‍➡' => 'femme en fauteuil roulant manuel : peau mate et vers la droite',
+    '👩🏿‍🦽‍➡' => 'femme en fauteuil roulant manuel : peau foncée et vers la droite',
+    '🏃🏻‍♀‍➡' => 'femme qui court : peau claire et vers la droite',
+    '🏃🏼‍♀‍➡' => 'femme qui court : peau moyennement claire et vers la droite',
+    '🏃🏽‍♀‍➡' => 'femme qui court : peau légèrement mate et vers la droite',
+    '🏃🏾‍♀‍➡' => 'femme qui court : peau mate et vers la droite',
+    '🏃🏿‍♀‍➡' => 'femme qui court : peau foncée et vers la droite',
+    '🏃🏻‍♂‍➡' => 'homme qui court : peau claire et vers la droite',
+    '🏃🏼‍♂‍➡' => 'homme qui court : peau moyennement claire et vers la droite',
+    '🏃🏽‍♂‍➡' => 'homme qui court : peau légèrement mate et vers la droite',
+    '🏃🏾‍♂‍➡' => 'homme qui court : peau mate et vers la droite',
+    '🏃🏿‍♂‍➡' => 'homme qui court : peau foncée et vers la droite',
     '🫱🏻‍🫲🏼' => 'poignée de main : peau claire et peau moyennement claire',
     '🫱🏻‍🫲🏽' => 'poignée de main : peau claire et peau légèrement mate',
     '🫱🏻‍🫲🏾' => 'poignée de main : peau claire et peau mate',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'poignée de main : peau foncée et peau moyennement claire',
     '🫱🏿‍🫲🏽' => 'poignée de main : peau foncée et peau légèrement mate',
     '🫱🏿‍🫲🏾' => 'poignée de main : peau foncée et peau mate',
-    '🚶‍♀‍➡' => 'femme qui marche vers la droite',
-    '🚶‍♂‍➡' => 'homme qui marche vers la droite',
-    '🧎‍♀‍➡' => 'femme à genoux vers la droite',
-    '🧎‍♂‍➡' => 'homme à genoux vers la droite',
-    '🧑‍🦯‍➡' => 'personne avec une canne blanche vers la droite',
-    '👨‍🦯‍➡' => 'homme avec canne blanche vers la droite',
-    '👩‍🦯‍➡' => 'femme avec canne blanche vers la droite',
-    '🧑‍🦼‍➡' => 'personne en fauteuil motorisé vers la droite',
-    '👨‍🦼‍➡' => 'homme en fauteuil motorisé vers la droite',
-    '👩‍🦼‍➡' => 'femme en fauteuil motorisé vers la droite',
-    '🧑‍🦽‍➡' => 'personne en fauteuil roulant manuel vers la droite',
-    '👨‍🦽‍➡' => 'homme en fauteuil roulant manuel vers la droite',
-    '👩‍🦽‍➡' => 'femme en fauteuil roulant manuel vers la droite',
-    '🏃‍♀‍➡' => 'femme qui court vers la droite',
-    '🏃‍♂‍➡' => 'homme qui court vers la droite',
+    '🚶‍♀‍➡' => 'femme qui marche : vers la droite',
+    '🚶‍♂‍➡' => 'homme qui marche : vers la droite',
+    '🧎‍♀‍➡' => 'femme à genoux : vers la droite',
+    '🧎‍♂‍➡' => 'homme à genoux : vers la droite',
+    '🧑‍🦯‍➡' => 'personne avec une canne blanche : vers la droite',
+    '👨‍🦯‍➡' => 'homme avec canne blanche : vers la droite',
+    '👩‍🦯‍➡' => 'femme avec canne blanche : vers la droite',
+    '🧑‍🦼‍➡' => 'personne en fauteuil motorisé : vers la droite',
+    '👨‍🦼‍➡' => 'homme en fauteuil motorisé : vers la droite',
+    '👩‍🦼‍➡' => 'femme en fauteuil motorisé : vers la droite',
+    '🧑‍🦽‍➡' => 'personne en fauteuil roulant manuel : vers la droite',
+    '👨‍🦽‍➡' => 'homme en fauteuil roulant manuel : vers la droite',
+    '👩‍🦽‍➡' => 'femme en fauteuil roulant manuel : vers la droite',
+    '🏃‍♀‍➡' => 'femme qui court : vers la droite',
+    '🏃‍♂‍➡' => 'homme qui court : vers la droite',
     '👩‍❤‍👨' => 'couple avec cœur : femme et homme',
     '👨‍❤‍👨' => 'couple avec cœur : homme et homme',
     '👩‍❤‍👩' => 'couple avec cœur : femme et femme',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'adulte : peau légèrement mate et chauve',
     '🧑🏾‍🦲' => 'adulte : peau mate et chauve',
     '🧑🏿‍🦲' => 'adulte : peau foncée et chauve',
+    '🧑🏻‍🩰' => 'danseuse de ballet : peau claire',
+    '🧑🏼‍🩰' => 'danseuse de ballet : peau moyennement claire',
+    '🧑🏽‍🩰' => 'danseuse de ballet : peau légèrement mate',
+    '🧑🏾‍🩰' => 'danseuse de ballet : peau mate',
+    '🧑🏿‍🩰' => 'danseuse de ballet : peau foncée',
     '🧔🏻‍♂' => 'homme barbu : peau claire',
     '🧔🏼‍♂' => 'homme barbu : peau moyennement claire',
     '🧔🏽‍♂' => 'homme barbu : peau légèrement mate',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'femme qui marche : peau légèrement mate',
     '🚶🏾‍♀' => 'femme qui marche : peau mate',
     '🚶🏿‍♀' => 'femme qui marche : peau foncée',
-    '🚶🏻‍➡' => 'personne qui marche vers la droite',
-    '🚶🏼‍➡' => 'personne qui marche vers la droite',
-    '🚶🏽‍➡' => 'personne qui marche vers la droite',
-    '🚶🏾‍➡' => 'personne qui marche vers la droite',
-    '🚶🏿‍➡' => 'personne qui marche vers la droite',
+    '🚶🏻‍➡' => 'personne qui marche : peau claire et vers la droite',
+    '🚶🏼‍➡' => 'personne qui marche : peau moyennement claire et vers la droite',
+    '🚶🏽‍➡' => 'personne qui marche : peau légèrement mate et vers la droite',
+    '🚶🏾‍➡' => 'personne qui marche : peau mate et vers la droite',
+    '🚶🏿‍➡' => 'personne qui marche : peau foncée et vers la droite',
     '🧍🏻‍♂' => 'homme debout : peau claire',
     '🧍🏼‍♂' => 'homme debout : peau moyennement claire',
     '🧍🏽‍♂' => 'homme debout : peau légèrement mate',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'femme à genoux : peau légèrement mate',
     '🧎🏾‍♀' => 'femme à genoux : peau mate',
     '🧎🏿‍♀' => 'femme à genoux : peau foncée',
-    '🧎🏻‍➡' => 'personne à genoux vers la droite',
-    '🧎🏼‍➡' => 'personne à genoux vers la droite',
-    '🧎🏽‍➡' => 'personne à genoux vers la droite',
-    '🧎🏾‍➡' => 'personne à genoux vers la droite',
-    '🧎🏿‍➡' => 'personne à genoux vers la droite',
+    '🧎🏻‍➡' => 'personne à genoux : peau claire et vers la droite',
+    '🧎🏼‍➡' => 'personne à genoux : peau moyennement claire et vers la droite',
+    '🧎🏽‍➡' => 'personne à genoux : peau légèrement mate et vers la droite',
+    '🧎🏾‍➡' => 'personne à genoux : peau mate et vers la droite',
+    '🧎🏿‍➡' => 'personne à genoux : peau foncée et vers la droite',
     '🧑🏻‍🦯' => 'personne avec une canne blanche : peau claire',
     '🧑🏼‍🦯' => 'personne avec une canne blanche : peau moyennement claire',
     '🧑🏽‍🦯' => 'personne avec une canne blanche : peau légèrement mate',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'femme qui court : peau légèrement mate',
     '🏃🏾‍♀' => 'femme qui court : peau mate',
     '🏃🏿‍♀' => 'femme qui court : peau foncée',
-    '🏃🏻‍➡' => 'personne qui court vers la droite',
-    '🏃🏼‍➡' => 'personne qui court vers la droite',
-    '🏃🏽‍➡' => 'personne qui court vers la droite',
-    '🏃🏾‍➡' => 'personne qui court vers la droite',
-    '🏃🏿‍➡' => 'personne qui court vers la droite',
+    '🏃🏻‍➡' => 'personne qui court : peau claire et vers la droite',
+    '🏃🏼‍➡' => 'personne qui court : peau moyennement claire et vers la droite',
+    '🏃🏽‍➡' => 'personne qui court : peau légèrement mate et vers la droite',
+    '🏃🏾‍➡' => 'personne qui court : peau mate et vers la droite',
+    '🏃🏿‍➡' => 'personne qui court : peau foncée et vers la droite',
+    '👯🏻‍♀' => 'femmes avec des oreilles de lapin : peau claire',
+    '👯🏼‍♀' => 'femmes avec des oreilles de lapin : peau moyennement claire',
+    '👯🏽‍♀' => 'femmes avec des oreilles de lapin : peau légèrement mate',
+    '👯🏾‍♀' => 'femmes avec des oreilles de lapin : peau mate',
+    '👯🏿‍♀' => 'femmes avec des oreilles de lapin : peau foncée',
+    '👯🏻‍♂' => 'hommes avec des oreilles de lapin : peau claire',
+    '👯🏼‍♂' => 'hommes avec des oreilles de lapin : peau moyennement claire',
+    '👯🏽‍♂' => 'hommes avec des oreilles de lapin : peau légèrement mate',
+    '👯🏾‍♂' => 'hommes avec des oreilles de lapin : peau mate',
+    '👯🏿‍♂' => 'hommes avec des oreilles de lapin : peau foncée',
     '🧖🏻‍♂' => 'homme au hammam : peau claire',
     '🧖🏼‍♂' => 'homme au hammam : peau moyennement claire',
     '🧖🏽‍♂' => 'homme au hammam : peau légèrement mate',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'femme faisant la roue : peau légèrement mate',
     '🤸🏾‍♀' => 'femme faisant la roue : peau mate',
     '🤸🏿‍♀' => 'femme faisant la roue : peau foncée',
+    '🤼🏻‍♀' => 'lutteuses : peau claire',
+    '🤼🏼‍♀' => 'lutteuses : peau moyennement claire',
+    '🤼🏽‍♀' => 'lutteuses : peau légèrement mate',
+    '🤼🏾‍♀' => 'lutteuses : peau mate',
+    '🤼🏿‍♀' => 'lutteuses : peau foncée',
+    '🤼🏻‍♂' => 'lutteurs : peau claire',
+    '🤼🏼‍♂' => 'lutteurs : peau moyennement claire',
+    '🤼🏽‍♂' => 'lutteurs : peau légèrement mate',
+    '🤼🏾‍♂' => 'lutteurs : peau mate',
+    '🤼🏿‍♂' => 'lutteurs : peau foncée',
     '🤽🏻‍♂' => 'joueur de water-polo : peau claire',
     '🤽🏼‍♂' => 'joueur de water-polo : peau moyennement claire',
     '🤽🏽‍♂' => 'joueur de water-polo : peau légèrement mate',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'femme : cheveux bouclés',
     '👩‍🦳' => 'femme : cheveux blancs',
     '👩‍🦲' => 'femme : chauve',
-    '🚶‍➡' => 'personne qui marche vers la droite',
-    '🧎‍➡' => 'personne à genoux vers la droite',
-    '🏃‍➡' => 'personne qui court vers la droite',
+    '🚶‍➡' => 'personne qui marche : vers la droite',
+    '🧎‍➡' => 'personne à genoux : vers la droite',
+    '🏃‍➡' => 'personne qui court : vers la droite',
     '👨‍👦' => 'famille : homme et garçon',
     '👨‍👧' => 'famille : homme et fille',
     '👩‍👦' => 'famille : femme et garçon',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'femme en fauteuil roulant manuel',
     '🏃‍♂' => 'homme qui court',
     '🏃‍♀' => 'femme qui court',
+    '🧑‍🩰' => 'danseuse de ballet',
     '👯‍♂' => 'hommes avec des oreilles de lapin',
     '👯‍♀' => 'femmes avec des oreilles de lapin',
     '🧖‍♂' => 'homme au hammam',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'homme d’affaires en lévitation : peau légèrement mate',
     '🕴🏾' => 'homme d’affaires en lévitation : peau mate',
     '🕴🏿' => 'homme d’affaires en lévitation : peau foncée',
+    '👯🏻' => 'personnes avec des oreilles de lapin : peau claire',
+    '👯🏼' => 'personnes avec des oreilles de lapin : peau moyennement claire',
+    '👯🏽' => 'personnes avec des oreilles de lapin : peau légèrement mate',
+    '👯🏾' => 'personnes avec des oreilles de lapin : peau mate',
+    '👯🏿' => 'personnes avec des oreilles de lapin : peau foncée',
     '🧖🏻' => 'personne au hammam : peau claire',
     '🧖🏼' => 'personne au hammam : peau moyennement claire',
     '🧖🏽' => 'personne au hammam : peau légèrement mate',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'personne faisant la roue : peau légèrement mate',
     '🤸🏾' => 'personne faisant la roue : peau mate',
     '🤸🏿' => 'personne faisant la roue : peau foncée',
+    '🤼🏻' => 'personnes faisant de la lutte : peau claire',
+    '🤼🏼' => 'personnes faisant de la lutte : peau moyennement claire',
+    '🤼🏽' => 'personnes faisant de la lutte : peau légèrement mate',
+    '🤼🏾' => 'personnes faisant de la lutte : peau mate',
+    '🤼🏿' => 'personnes faisant de la lutte : peau foncée',
     '🤽🏻' => 'personne jouant au water-polo : peau claire',
     '🤽🏼' => 'personne jouant au water-polo : peau moyennement claire',
     '🤽🏽' => 'personne jouant au water-polo : peau légèrement mate',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'drapeau : Chine',
     '🇨🇴' => 'drapeau : Colombie',
     '🇨🇵' => 'drapeau : Île Clipperton',
+    '🇨🇶' => 'drapeau : Sercq',
     '🇨🇷' => 'drapeau : Costa Rica',
     '🇨🇺' => 'drapeau : Cuba',
     '🇨🇻' => 'drapeau : Cap-Vert',
@@ -2390,13 +2547,6 @@
     '🏽' => 'peau légèrement mate',
     '🏾' => 'peau mate',
     '🏿' => 'peau foncée',
-    '🪉' => 'harpe',
-    '🪏' => 'pelle',
-    '🪾' => 'arbre sans feuille',
-    '🫆' => 'empreinte digitale',
-    '🫜' => 'légume-racine',
-    '🫟' => 'éclaboussure',
-    '🫩' => 'visage avec des valises sous les yeux',
     '😀' => 'visage rieur',
     '😃' => 'visage souriant avec de grands yeux',
     '😄' => 'visage très souriant aux yeux rieurs',
@@ -2450,6 +2600,7 @@
     '😪' => 'visage endormi',
     '🤤' => 'visage qui bave',
     '😴' => 'visage somnolent',
+    '🫩' => 'visage avec des valises sous les yeux',
     '😷' => 'visage avec masque',
     '🤒' => 'visage avec thermomètre',
     '🤕' => 'visage avec bandage autour de la tête',
@@ -2476,6 +2627,7 @@
     '😯' => 'visage ébahi',
     '😲' => 'visage stupéfait',
     '😳' => 'visage qui rougit',
+    '🫪' => 'visage déformé',
     '🥺' => 'visage implorant',
     '🥹' => 'visage retenant ses larmes',
     '😦' => 'visage mécontent avec bouche ouverte',
@@ -2547,6 +2699,7 @@
     '💋' => 'trace de rouge à lèvres',
     '💯' => 'cent points',
     '💢' => 'symbole de colère',
+    '🫯' => 'nuage de colère',
     '💥' => 'explosion',
     '💫' => 'étourdissement',
     '💦' => 'gouttes de sueur',
@@ -2670,6 +2823,7 @@
     '🧞' => 'génie',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'créature velue',
     '💆' => 'personne qui se fait masser',
     '💇' => 'personne qui se fait couper les cheveux',
     '🚶' => 'personne qui marche',
@@ -2713,6 +2867,7 @@
     '🫂' => 'étreinte',
     '👪' => 'famille',
     '👣' => 'traces de pas',
+    '🫆' => 'empreinte digitale',
     '🦰' => 'cheveux roux',
     '🦱' => 'cheveux bouclés',
     '🦳' => 'cheveux blancs',
@@ -2812,6 +2967,7 @@
     '🐳' => 'baleine soufflant par son évent',
     '🐋' => 'baleine',
     '🐬' => 'dauphin',
+    '🫍' => 'orque',
     '🦭' => 'phoque',
     '🐟' => 'poisson',
     '🐠' => 'poisson tropical',
@@ -2821,6 +2977,11 @@
     '🐚' => 'coquille en spirale',
     '🪸' => 'corail',
     '🪼' => 'méduse',
+    '🦀' => 'crabe',
+    '🦞' => 'homard',
+    '🦐' => 'crevette',
+    '🦑' => 'calamar',
+    '🦪' => 'huître',
     '🐌' => 'escargot',
     '🦋' => 'papillon',
     '🐛' => 'chenille',
@@ -2865,6 +3026,7 @@
     '🪹' => 'nid vide',
     '🪺' => 'nid avec œufs',
     '🍄' => 'champignon',
+    '🪾' => 'arbre sans feuille',
     '🍇' => 'raisin',
     '🍈' => 'melon',
     '🍉' => 'pastèque',
@@ -2901,6 +3063,7 @@
     '🌰' => 'châtaigne',
     '🫚' => 'racine de gingembre',
     '🫛' => 'cosse de petits pois',
+    '🫜' => 'légume-racine',
     '🍞' => 'pain',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2952,11 +3115,6 @@
     '🥟' => 'boulette de pâte',
     '🥠' => 'biscuit chinois',
     '🥡' => 'boîte à emporter',
-    '🦀' => 'crabe',
-    '🦞' => 'homard',
-    '🦐' => 'crevette',
-    '🦑' => 'calamar',
-    '🦪' => 'huître',
     '🍦' => 'glace italienne',
     '🍧' => 'granité',
     '🍨' => 'glace',
@@ -3007,6 +3165,7 @@
     '🧭' => 'boussole',
     '🏔' => 'montagne enneigée',
     '⛰' => 'montagne',
+    '🛘' => 'éboulement',
     '🌋' => 'volcan',
     '🗻' => 'mont Fuji',
     '🏕' => 'camping',
@@ -3367,16 +3526,17 @@
     '🎧' => 'casque',
     '📻' => 'radio',
     '🎷' => 'saxophone',
+    '🎺' => 'trompette',
     '🪗' => 'accordéon',
     '🎸' => 'guitare',
     '🎹' => 'piano',
-    '🎺' => 'trompette',
     '🎻' => 'violon',
     '🪕' => 'banjo',
     '🥁' => 'batterie',
     '🪘' => 'djembé',
     '🪇' => 'maracas',
     '🪈' => 'flûte',
+    '🪉' => 'harpe',
     '📱' => 'téléphone portable',
     '📲' => 'appel entrant',
     '☎' => 'téléphone',
@@ -3430,8 +3590,9 @@
     '📑' => 'signets',
     '🔖' => 'marque-page',
     '🏷' => 'étiquette',
-    '💰' => 'sac plein d’argent',
     '🪙' => 'pièce',
+    '💰' => 'sac plein d’argent',
+    '🪎' => 'coffre au trésor',
     '💴' => 'billet en yens',
     '💵' => 'billet en dollars',
     '💶' => 'billet en euros',
@@ -3514,6 +3675,7 @@
     '🧰' => 'boîte à outils',
     '🧲' => 'aimant',
     '🪜' => 'échelle',
+    '🪏' => 'pelle',
     '⚗' => 'alambic',
     '🧪' => 'tube à essai',
     '🧫' => 'boîte de pétri',
@@ -3697,6 +3859,7 @@
     '✴' => 'étoile huit branches',
     '❇' => 'éclat',
     '™' => 'marque commerciale déposée',
+    '🫟' => 'éclaboussure',
     '🔠' => 'majuscules',
     '🔡' => 'minuscules',
     '🔢' => 'saisie de chiffres',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-frr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-frr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-frr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-frr.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'süüse: wüf, wüf, jonk hidj an madel hidj',
     '👩🏿‍❤‍💋‍👩🏾' => 'süüse: wüf, wüf, jonk hidj an madel jonk hidj',
     '👩🏿‍❤‍💋‍👩🏿' => 'süüse: wüf, wüf an jonk hidj',
+    '🧑🏻‍🫯‍🧑🏼' => 'persuunen kemfe: laacht hidjet an madel laacht hidj',
+    '🧑🏻‍🫯‍🧑🏽' => 'persuunen kemfe: laacht hidjet an madel hidj',
+    '🧑🏻‍🫯‍🧑🏾' => 'persuunen kemfe: laacht hidjet an madel jonk hidj',
+    '🧑🏻‍🫯‍🧑🏿' => 'persuunen kemfe: laacht hidjet an jonk hidj',
+    '🧑🏼‍🫯‍🧑🏻' => 'persuunen kemfe: madel laacht hidj an laacht hidjet',
+    '🧑🏼‍🫯‍🧑🏽' => 'persuunen kemfe: madel laacht hidj an madel hidj',
+    '🧑🏼‍🫯‍🧑🏾' => 'persuunen kemfe: madel laacht hidj an madel jonk hidj',
+    '🧑🏼‍🫯‍🧑🏿' => 'persuunen kemfe: madel laacht hidj an jonk hidj',
+    '🧑🏽‍🫯‍🧑🏻' => 'persuunen kemfe: madel hidj an laacht hidjet',
+    '🧑🏽‍🫯‍🧑🏼' => 'persuunen kemfe: madel hidj an madel laacht hidj',
+    '🧑🏽‍🫯‍🧑🏾' => 'persuunen kemfe: madel hidj an madel jonk hidj',
+    '🧑🏽‍🫯‍🧑🏿' => 'persuunen kemfe: madel hidj an jonk hidj',
+    '🧑🏾‍🫯‍🧑🏻' => 'persuunen kemfe: madel jonk hidj an laacht hidjet',
+    '🧑🏾‍🫯‍🧑🏼' => 'persuunen kemfe: madel jonk hidj an madel laacht hidj',
+    '🧑🏾‍🫯‍🧑🏽' => 'persuunen kemfe: madel jonk hidj an madel hidj',
+    '🧑🏾‍🫯‍🧑🏿' => 'persuunen kemfe: madel jonk hidj an jonk hidj',
+    '🧑🏿‍🫯‍🧑🏻' => 'persuunen kemfe: jonk hidj an laacht hidjet',
+    '🧑🏿‍🫯‍🧑🏼' => 'persuunen kemfe: jonk hidj an madel laacht hidj',
+    '🧑🏿‍🫯‍🧑🏽' => 'persuunen kemfe: jonk hidj an madel hidj',
+    '🧑🏿‍🫯‍🧑🏾' => 'persuunen kemfe: jonk hidj an madel jonk hidj',
     '🧑🏻‍❤‍🧑🏼' => 'paar mä hart: persuun, persuun, laacht hidjet an madel laacht hidj',
     '🧑🏻‍❤‍🧑🏽' => 'paar mä hart: persuun, persuun, laacht hidjet an madel hidj',
     '🧑🏻‍❤‍🧑🏾' => 'paar mä hart: persuun, persuun, laacht hidjet an madel jonk hidj',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'paar mä hart: persuun, persuun, jonk hidj an madel laacht hidj',
     '🧑🏿‍❤‍🧑🏽' => 'paar mä hart: persuun, persuun, jonk hidj an madel hidj',
     '🧑🏿‍❤‍🧑🏾' => 'paar mä hart: persuun, persuun, jonk hidj an madel jonk hidj',
+    '🧑🏻‍🐰‍🧑🏼' => 'lidj mä haasuaren: laacht hidjet an madel laacht hidj',
+    '🧑🏻‍🐰‍🧑🏽' => 'lidj mä haasuaren: laacht hidjet an madel hidj',
+    '🧑🏻‍🐰‍🧑🏾' => 'lidj mä haasuaren: laacht hidjet an madel jonk hidj',
+    '🧑🏻‍🐰‍🧑🏿' => 'lidj mä haasuaren: laacht hidjet an jonk hidj',
+    '🧑🏼‍🐰‍🧑🏻' => 'lidj mä haasuaren: madel laacht hidj an laacht hidjet',
+    '🧑🏼‍🐰‍🧑🏽' => 'lidj mä haasuaren: madel laacht hidj an madel hidj',
+    '🧑🏼‍🐰‍🧑🏾' => 'lidj mä haasuaren: madel laacht hidj an madel jonk hidj',
+    '🧑🏼‍🐰‍🧑🏿' => 'lidj mä haasuaren: madel laacht hidj an jonk hidj',
+    '🧑🏽‍🐰‍🧑🏻' => 'lidj mä haasuaren: madel hidj an laacht hidjet',
+    '🧑🏽‍🐰‍🧑🏼' => 'lidj mä haasuaren: madel hidj an madel laacht hidj',
+    '🧑🏽‍🐰‍🧑🏾' => 'lidj mä haasuaren: madel hidj an madel jonk hidj',
+    '🧑🏽‍🐰‍🧑🏿' => 'lidj mä haasuaren: madel hidj an jonk hidj',
+    '🧑🏾‍🐰‍🧑🏻' => 'lidj mä haasuaren: madel jonk hidj an laacht hidjet',
+    '🧑🏾‍🐰‍🧑🏼' => 'lidj mä haasuaren: madel jonk hidj an madel laacht hidj',
+    '🧑🏾‍🐰‍🧑🏽' => 'lidj mä haasuaren: madel jonk hidj an madel hidj',
+    '🧑🏾‍🐰‍🧑🏿' => 'lidj mä haasuaren: madel jonk hidj an jonk hidj',
+    '🧑🏿‍🐰‍🧑🏻' => 'lidj mä haasuaren: jonk hidj an laacht hidjet',
+    '🧑🏿‍🐰‍🧑🏼' => 'lidj mä haasuaren: jonk hidj an madel laacht hidj',
+    '🧑🏿‍🐰‍🧑🏽' => 'lidj mä haasuaren: jonk hidj an madel hidj',
+    '🧑🏿‍🐰‍🧑🏾' => 'lidj mä haasuaren: jonk hidj an madel jonk hidj',
+    '👨🏻‍🫯‍👨🏼' => 'maaner kemfe: laacht hidjet an madel laacht hidj',
+    '👨🏻‍🫯‍👨🏽' => 'maaner kemfe: laacht hidjet an madel hidj',
+    '👨🏻‍🫯‍👨🏾' => 'maaner kemfe: laacht hidjet an madel jonk hidj',
+    '👨🏻‍🫯‍👨🏿' => 'maaner kemfe: laacht hidjet an jonk hidj',
+    '👨🏼‍🫯‍👨🏻' => 'maaner kemfe: madel laacht hidj an laacht hidjet',
+    '👨🏼‍🫯‍👨🏽' => 'maaner kemfe: madel laacht hidj an madel hidj',
+    '👨🏼‍🫯‍👨🏾' => 'maaner kemfe: madel laacht hidj an madel jonk hidj',
+    '👨🏼‍🫯‍👨🏿' => 'maaner kemfe: madel laacht hidj an jonk hidj',
+    '👨🏽‍🫯‍👨🏻' => 'maaner kemfe: madel hidj an laacht hidjet',
+    '👨🏽‍🫯‍👨🏼' => 'maaner kemfe: madel hidj an madel laacht hidj',
+    '👨🏽‍🫯‍👨🏾' => 'maaner kemfe: madel hidj an madel jonk hidj',
+    '👨🏽‍🫯‍👨🏿' => 'maaner kemfe: madel hidj an jonk hidj',
+    '👨🏾‍🫯‍👨🏻' => 'maaner kemfe: madel jonk hidj an laacht hidjet',
+    '👨🏾‍🫯‍👨🏼' => 'maaner kemfe: madel jonk hidj an madel laacht hidj',
+    '👨🏾‍🫯‍👨🏽' => 'maaner kemfe: madel jonk hidj an madel hidj',
+    '👨🏾‍🫯‍👨🏿' => 'maaner kemfe: madel jonk hidj an jonk hidj',
+    '👨🏿‍🫯‍👨🏻' => 'maaner kemfe: jonk hidj an laacht hidjet',
+    '👨🏿‍🫯‍👨🏼' => 'maaner kemfe: jonk hidj an madel laacht hidj',
+    '👨🏿‍🫯‍👨🏽' => 'maaner kemfe: jonk hidj an madel hidj',
+    '👨🏿‍🫯‍👨🏾' => 'maaner kemfe: jonk hidj an madel jonk hidj',
     '👨🏻‍❤‍👨🏻' => 'paar mä hart: maan, maan an laacht hidjet',
     '👨🏻‍❤‍👨🏼' => 'paar mä hart: maan, maan, laacht hidjet an madel laacht hidj',
     '👨🏻‍❤‍👨🏽' => 'paar mä hart: maan, maan, laacht hidjet an madel hidj',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'paar mä hart: maan, maan, jonk hidj an madel hidj',
     '👨🏿‍❤‍👨🏾' => 'paar mä hart: maan, maan, jonk hidj an madel jonk hidj',
     '👨🏿‍❤‍👨🏿' => 'paar mä hart: maan, maan an jonk hidj',
+    '👨🏻‍🐰‍👨🏼' => 'maaner mä haasuaren: laacht hidjet an madel laacht hidj',
+    '👨🏻‍🐰‍👨🏽' => 'maaner mä haasuaren: laacht hidjet an madel hidj',
+    '👨🏻‍🐰‍👨🏾' => 'maaner mä haasuaren: laacht hidjet an madel jonk hidj',
+    '👨🏻‍🐰‍👨🏿' => 'maaner mä haasuaren: laacht hidjet an jonk hidj',
+    '👨🏼‍🐰‍👨🏻' => 'maaner mä haasuaren: madel laacht hidj an laacht hidjet',
+    '👨🏼‍🐰‍👨🏽' => 'maaner mä haasuaren: madel laacht hidj an madel hidj',
+    '👨🏼‍🐰‍👨🏾' => 'maaner mä haasuaren: madel laacht hidj an madel jonk hidj',
+    '👨🏼‍🐰‍👨🏿' => 'maaner mä haasuaren: madel laacht hidj an jonk hidj',
+    '👨🏽‍🐰‍👨🏻' => 'maaner mä haasuaren: madel hidj an laacht hidjet',
+    '👨🏽‍🐰‍👨🏼' => 'maaner mä haasuaren: madel hidj an madel laacht hidj',
+    '👨🏽‍🐰‍👨🏾' => 'maaner mä haasuaren: madel hidj an madel jonk hidj',
+    '👨🏽‍🐰‍👨🏿' => 'maaner mä haasuaren: madel hidj an jonk hidj',
+    '👨🏾‍🐰‍👨🏻' => 'maaner mä haasuaren: madel jonk hidj an laacht hidjet',
+    '👨🏾‍🐰‍👨🏼' => 'maaner mä haasuaren: madel jonk hidj an madel laacht hidj',
+    '👨🏾‍🐰‍👨🏽' => 'maaner mä haasuaren: madel jonk hidj an madel hidj',
+    '👨🏾‍🐰‍👨🏿' => 'maaner mä haasuaren: madel jonk hidj an jonk hidj',
+    '👨🏿‍🐰‍👨🏻' => 'maaner mä haasuaren: jonk hidj an laacht hidjet',
+    '👨🏿‍🐰‍👨🏼' => 'maaner mä haasuaren: jonk hidj an madel laacht hidj',
+    '👨🏿‍🐰‍👨🏽' => 'maaner mä haasuaren: jonk hidj an madel hidj',
+    '👨🏿‍🐰‍👨🏾' => 'maaner mä haasuaren: jonk hidj an madel jonk hidj',
+    '👩🏻‍🫯‍👩🏼' => 'wüfen kemfe: laacht hidjet an madel laacht hidj',
+    '👩🏻‍🫯‍👩🏽' => 'wüfen kemfe: laacht hidjet an madel hidj',
+    '👩🏻‍🫯‍👩🏾' => 'wüfen kemfe: laacht hidjet an madel jonk hidj',
+    '👩🏻‍🫯‍👩🏿' => 'wüfen kemfe: laacht hidjet an jonk hidj',
+    '👩🏼‍🫯‍👩🏻' => 'wüfen kemfe: madel laacht hidj an laacht hidjet',
+    '👩🏼‍🫯‍👩🏽' => 'wüfen kemfe: madel laacht hidj an madel hidj',
+    '👩🏼‍🫯‍👩🏾' => 'wüfen kemfe: madel laacht hidj an madel jonk hidj',
+    '👩🏼‍🫯‍👩🏿' => 'wüfen kemfe: madel laacht hidj an jonk hidj',
+    '👩🏽‍🫯‍👩🏻' => 'wüfen kemfe: madel hidj an laacht hidjet',
+    '👩🏽‍🫯‍👩🏼' => 'wüfen kemfe: madel hidj an madel laacht hidj',
+    '👩🏽‍🫯‍👩🏾' => 'wüfen kemfe: madel hidj an madel jonk hidj',
+    '👩🏽‍🫯‍👩🏿' => 'wüfen kemfe: madel hidj an jonk hidj',
+    '👩🏾‍🫯‍👩🏻' => 'wüfen kemfe: madel jonk hidj an laacht hidjet',
+    '👩🏾‍🫯‍👩🏼' => 'wüfen kemfe: madel jonk hidj an madel laacht hidj',
+    '👩🏾‍🫯‍👩🏽' => 'wüfen kemfe: madel jonk hidj an madel hidj',
+    '👩🏾‍🫯‍👩🏿' => 'wüfen kemfe: madel jonk hidj an jonk hidj',
+    '👩🏿‍🫯‍👩🏻' => 'wüfen kemfe: jonk hidj an laacht hidjet',
+    '👩🏿‍🫯‍👩🏼' => 'wüfen kemfe: jonk hidj an madel laacht hidj',
+    '👩🏿‍🫯‍👩🏽' => 'wüfen kemfe: jonk hidj an madel hidj',
+    '👩🏿‍🫯‍👩🏾' => 'wüfen kemfe: jonk hidj an madel jonk hidj',
     '👩🏻‍❤‍👨🏻' => 'paar mä hart: wüf, maan an laacht hidjet',
     '👩🏻‍❤‍👨🏼' => 'paar mä hart: wüf, maan, laacht hidjet an madel laacht hidj',
     '👩🏻‍❤‍👨🏽' => 'paar mä hart: wüf, maan, laacht hidjet an madel hidj',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'paar mä hart: wüf, wüf, jonk hidj an madel hidj',
     '👩🏿‍❤‍👩🏾' => 'paar mä hart: wüf, wüf, jonk hidj an madel jonk hidj',
     '👩🏿‍❤‍👩🏿' => 'paar mä hart: wüf, wüf an jonk hidj',
+    '👩🏻‍🐰‍👩🏼' => 'wüfen mä haasuaren: laacht hidjet an madel laacht hidj',
+    '👩🏻‍🐰‍👩🏽' => 'wüfen mä haasuaren: laacht hidjet an madel hidj',
+    '👩🏻‍🐰‍👩🏾' => 'wüfen mä haasuaren: laacht hidjet an madel jonk hidj',
+    '👩🏻‍🐰‍👩🏿' => 'wüfen mä haasuaren: laacht hidjet an jonk hidj',
+    '👩🏼‍🐰‍👩🏻' => 'wüfen mä haasuaren: madel laacht hidj an laacht hidjet',
+    '👩🏼‍🐰‍👩🏽' => 'wüfen mä haasuaren: madel laacht hidj an madel hidj',
+    '👩🏼‍🐰‍👩🏾' => 'wüfen mä haasuaren: madel laacht hidj an madel jonk hidj',
+    '👩🏼‍🐰‍👩🏿' => 'wüfen mä haasuaren: madel laacht hidj an jonk hidj',
+    '👩🏽‍🐰‍👩🏻' => 'wüfen mä haasuaren: madel hidj an laacht hidjet',
+    '👩🏽‍🐰‍👩🏼' => 'wüfen mä haasuaren: madel hidj an madel laacht hidj',
+    '👩🏽‍🐰‍👩🏾' => 'wüfen mä haasuaren: madel hidj an madel jonk hidj',
+    '👩🏽‍🐰‍👩🏿' => 'wüfen mä haasuaren: madel hidj an jonk hidj',
+    '👩🏾‍🐰‍👩🏻' => 'wüfen mä haasuaren: madel jonk hidj an laacht hidjet',
+    '👩🏾‍🐰‍👩🏼' => 'wüfen mä haasuaren: madel jonk hidj an madel laacht hidj',
+    '👩🏾‍🐰‍👩🏽' => 'wüfen mä haasuaren: madel jonk hidj an madel hidj',
+    '👩🏾‍🐰‍👩🏿' => 'wüfen mä haasuaren: madel jonk hidj an jonk hidj',
+    '👩🏿‍🐰‍👩🏻' => 'wüfen mä haasuaren: jonk hidj an laacht hidjet',
+    '👩🏿‍🐰‍👩🏼' => 'wüfen mä haasuaren: jonk hidj an madel laacht hidj',
+    '👩🏿‍🐰‍👩🏽' => 'wüfen mä haasuaren: jonk hidj an madel hidj',
+    '👩🏿‍🐰‍👩🏾' => 'wüfen mä haasuaren: jonk hidj an madel jonk hidj',
     '🧑🏻‍🤝‍🧑🏻' => 'persunen hual hunen: laacht hidjet',
     '🧑🏻‍🤝‍🧑🏼' => 'persunen hual hunen: laacht hidjet an madel laacht hidj',
     '🧑🏻‍🤝‍🧑🏽' => 'persunen hual hunen: laacht hidjet an madel hidj',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'famile: wüf, wüf, dring an dring',
     '👩‍👩‍👧‍👧' => 'famile: wüf, wüf, foomen an foomen',
     '🧑‍🧑‍🧒‍🧒' => 'tau woksenen, tau jongen',
-    '🚶🏻‍♀‍➡' => 'wüf lääpt rochts am',
-    '🚶🏼‍♀‍➡' => 'wüf lääpt rochts am',
-    '🚶🏽‍♀‍➡' => 'wüf lääpt rochts am',
-    '🚶🏾‍♀‍➡' => 'wüf lääpt rochts am',
-    '🚶🏿‍♀‍➡' => 'wüf lääpt rochts am',
-    '🚶🏻‍♂‍➡' => 'maan lääpt rochts am',
-    '🚶🏼‍♂‍➡' => 'maan lääpt rochts am',
-    '🚶🏽‍♂‍➡' => 'maan lääpt rochts am',
-    '🚶🏾‍♂‍➡' => 'maan lääpt rochts am',
-    '🚶🏿‍♂‍➡' => 'maan lääpt rochts am',
-    '🧎🏻‍♀‍➡' => 'wüf üüb knöbian rochts am',
-    '🧎🏼‍♀‍➡' => 'wüf üüb knöbian rochts am',
-    '🧎🏽‍♀‍➡' => 'wüf üüb knöbian rochts am',
-    '🧎🏾‍♀‍➡' => 'wüf üüb knöbian rochts am',
-    '🧎🏿‍♀‍➡' => 'wüf üüb knöbian rochts am',
-    '🧎🏻‍♂‍➡' => 'man üüb knöbian rochts am',
-    '🧎🏼‍♂‍➡' => 'man üüb knöbian rochts am',
-    '🧎🏽‍♂‍➡' => 'man üüb knöbian rochts am',
-    '🧎🏾‍♂‍➡' => 'man üüb knöbian rochts am',
-    '🧎🏿‍♂‍➡' => 'man üüb knöbian rochts am',
-    '🧑🏻‍🦯‍➡' => 'persuun mä blinjenstook rochts am',
-    '🧑🏼‍🦯‍➡' => 'persuun mä blinjenstook rochts am',
-    '🧑🏽‍🦯‍➡' => 'persuun mä blinjenstook rochts am',
-    '🧑🏾‍🦯‍➡' => 'persuun mä blinjenstook rochts am',
-    '🧑🏿‍🦯‍➡' => 'persuun mä blinjenstook rochts am',
-    '👨🏻‍🦯‍➡' => 'maan mä blinjenstook rochts am',
-    '👨🏼‍🦯‍➡' => 'maan mä blinjenstook rochts am',
-    '👨🏽‍🦯‍➡' => 'maan mä blinjenstook rochts am',
-    '👨🏾‍🦯‍➡' => 'maan mä blinjenstook rochts am',
-    '👨🏿‍🦯‍➡' => 'maan mä blinjenstook rochts am',
-    '👩🏻‍🦯‍➡' => 'wüf mä blinjenstook rochts am',
-    '👩🏼‍🦯‍➡' => 'wüf mä blinjenstook rochts am',
-    '👩🏽‍🦯‍➡' => 'wüf mä blinjenstook rochts am',
-    '👩🏾‍🦯‍➡' => 'wüf mä blinjenstook rochts am',
-    '👩🏿‍🦯‍➡' => 'wüf mä blinjenstook rochts am',
-    '🧑🏻‍🦼‍➡' => 'persuun üüb elektro rolstuul rochts am',
-    '🧑🏼‍🦼‍➡' => 'persuun üüb elektro rolstuul rochts am',
-    '🧑🏽‍🦼‍➡' => 'persuun üüb elektro rolstuul rochts am',
-    '🧑🏾‍🦼‍➡' => 'persuun üüb elektro rolstuul rochts am',
-    '🧑🏿‍🦼‍➡' => 'persuun üüb elektro rolstuul rochts am',
-    '👨🏻‍🦼‍➡' => 'maan üüb elektro rolstuul rochts am',
-    '👨🏼‍🦼‍➡' => 'maan üüb elektro rolstuul rochts am',
-    '👨🏽‍🦼‍➡' => 'maan üüb elektro rolstuul rochts am',
-    '👨🏾‍🦼‍➡' => 'maan üüb elektro rolstuul rochts am',
-    '👨🏿‍🦼‍➡' => 'maan üüb elektro rolstuul rochts am',
-    '👩🏻‍🦼‍➡' => 'wüf üüb elektro rolstuul rochts am',
-    '👩🏼‍🦼‍➡' => 'wüf üüb elektro rolstuul rochts am',
-    '👩🏽‍🦼‍➡' => 'wüf üüb elektro rolstuul rochts am',
-    '👩🏾‍🦼‍➡' => 'wüf üüb elektro rolstuul rochts am',
-    '👩🏿‍🦼‍➡' => 'wüf üüb elektro rolstuul rochts am',
-    '🧑🏻‍🦽‍➡' => 'persuun üüb rolstuul rochts am',
-    '🧑🏼‍🦽‍➡' => 'persuun üüb rolstuul rochts am',
-    '🧑🏽‍🦽‍➡' => 'persuun üüb rolstuul rochts am',
-    '🧑🏾‍🦽‍➡' => 'persuun üüb rolstuul rochts am',
-    '🧑🏿‍🦽‍➡' => 'persuun üüb rolstuul rochts am',
-    '👨🏻‍🦽‍➡' => 'maan üüb rolstuul rochts am',
-    '👨🏼‍🦽‍➡' => 'maan üüb rolstuul rochts am',
-    '👨🏽‍🦽‍➡' => 'maan üüb rolstuul rochts am',
-    '👨🏾‍🦽‍➡' => 'maan üüb rolstuul rochts am',
-    '👨🏿‍🦽‍➡' => 'maan üüb rolstuul rochts am',
-    '👩🏻‍🦽‍➡' => 'wüf üüb rolstuul rochts am',
-    '👩🏼‍🦽‍➡' => 'wüf üüb rolstuul rochts am',
-    '👩🏽‍🦽‍➡' => 'wüf üüb rolstuul rochts am',
-    '👩🏾‍🦽‍➡' => 'wüf üüb rolstuul rochts am',
-    '👩🏿‍🦽‍➡' => 'wüf üüb rolstuul rochts am',
-    '🏃🏻‍♀‍➡' => 'wüf räänt rochts am',
-    '🏃🏼‍♀‍➡' => 'wüf räänt rochts am',
-    '🏃🏽‍♀‍➡' => 'wüf räänt rochts am',
-    '🏃🏾‍♀‍➡' => 'wüf räänt rochts am',
-    '🏃🏿‍♀‍➡' => 'wüf räänt rochts am',
-    '🏃🏻‍♂‍➡' => 'maan räänt rochts am',
-    '🏃🏼‍♂‍➡' => 'maan räänt rochts am',
-    '🏃🏽‍♂‍➡' => 'maan räänt rochts am',
-    '🏃🏾‍♂‍➡' => 'maan räänt rochts am',
-    '🏃🏿‍♂‍➡' => 'maan räänt rochts am',
+    '🚶🏻‍♀‍➡' => 'wüf lääpt: laacht hidjet an rochts am',
+    '🚶🏼‍♀‍➡' => 'wüf lääpt: madel laacht hidj an rochts am',
+    '🚶🏽‍♀‍➡' => 'wüf lääpt: madel hidj an rochts am',
+    '🚶🏾‍♀‍➡' => 'wüf lääpt: madel jonk hidj an rochts am',
+    '🚶🏿‍♀‍➡' => 'wüf lääpt: jonk hidj an rochts am',
+    '🚶🏻‍♂‍➡' => 'maan lääpt: laacht hidjet an rochts am',
+    '🚶🏼‍♂‍➡' => 'maan lääpt: madel laacht hidj an rochts am',
+    '🚶🏽‍♂‍➡' => 'maan lääpt: madel hidj an rochts am',
+    '🚶🏾‍♂‍➡' => 'maan lääpt: madel jonk hidj an rochts am',
+    '🚶🏿‍♂‍➡' => 'maan lääpt: jonk hidj an rochts am',
+    '🧎🏻‍♀‍➡' => 'wüf üüb knöbian: laacht hidjet an rochts am',
+    '🧎🏼‍♀‍➡' => 'wüf üüb knöbian: madel laacht hidj an rochts am',
+    '🧎🏽‍♀‍➡' => 'wüf üüb knöbian: madel hidj an rochts am',
+    '🧎🏾‍♀‍➡' => 'wüf üüb knöbian: madel jonk hidj an rochts am',
+    '🧎🏿‍♀‍➡' => 'wüf üüb knöbian: jonk hidj an rochts am',
+    '🧎🏻‍♂‍➡' => 'man üüb knöbian: laacht hidjet an rochts am',
+    '🧎🏼‍♂‍➡' => 'man üüb knöbian: madel laacht hidj an rochts am',
+    '🧎🏽‍♂‍➡' => 'man üüb knöbian: madel hidj an rochts am',
+    '🧎🏾‍♂‍➡' => 'man üüb knöbian: madel jonk hidj an rochts am',
+    '🧎🏿‍♂‍➡' => 'man üüb knöbian: jonk hidj an rochts am',
+    '🧑🏻‍🦯‍➡' => 'persuun mä blinjenstook: laacht hidjet an rochts am',
+    '🧑🏼‍🦯‍➡' => 'persuun mä blinjenstook: madel laacht hidj an rochts am',
+    '🧑🏽‍🦯‍➡' => 'persuun mä blinjenstook: madel hidj an rochts am',
+    '🧑🏾‍🦯‍➡' => 'persuun mä blinjenstook: madel jonk hidj an rochts am',
+    '🧑🏿‍🦯‍➡' => 'persuun mä blinjenstook: jonk hidj an rochts am',
+    '👨🏻‍🦯‍➡' => 'maan mä blinjenstook: laacht hidjet an rochts am',
+    '👨🏼‍🦯‍➡' => 'maan mä blinjenstook: madel laacht hidj an rochts am',
+    '👨🏽‍🦯‍➡' => 'maan mä blinjenstook: madel hidj an rochts am',
+    '👨🏾‍🦯‍➡' => 'maan mä blinjenstook: madel jonk hidj an rochts am',
+    '👨🏿‍🦯‍➡' => 'maan mä blinjenstook: jonk hidj an rochts am',
+    '👩🏻‍🦯‍➡' => 'wüf mä blinjenstook: laacht hidjet an rochts am',
+    '👩🏼‍🦯‍➡' => 'wüf mä blinjenstook: madel laacht hidj an rochts am',
+    '👩🏽‍🦯‍➡' => 'wüf mä blinjenstook: madel hidj an rochts am',
+    '👩🏾‍🦯‍➡' => 'wüf mä blinjenstook: madel jonk hidj an rochts am',
+    '👩🏿‍🦯‍➡' => 'wüf mä blinjenstook: jonk hidj an rochts am',
+    '🧑🏻‍🦼‍➡' => 'persuun üüb elektro rolstuul: laacht hidjet an rochts am',
+    '🧑🏼‍🦼‍➡' => 'persuun üüb elektro rolstuul: madel laacht hidj an rochts am',
+    '🧑🏽‍🦼‍➡' => 'persuun üüb elektro rolstuul: madel hidj an rochts am',
+    '🧑🏾‍🦼‍➡' => 'persuun üüb elektro rolstuul: madel jonk hidj an rochts am',
+    '🧑🏿‍🦼‍➡' => 'persuun üüb elektro rolstuul: jonk hidj an rochts am',
+    '👨🏻‍🦼‍➡' => 'maan üüb elektro rolstuul: laacht hidjet an rochts am',
+    '👨🏼‍🦼‍➡' => 'maan üüb elektro rolstuul: madel laacht hidj an rochts am',
+    '👨🏽‍🦼‍➡' => 'maan üüb elektro rolstuul: madel hidj an rochts am',
+    '👨🏾‍🦼‍➡' => 'maan üüb elektro rolstuul: madel jonk hidj an rochts am',
+    '👨🏿‍🦼‍➡' => 'maan üüb elektro rolstuul: jonk hidj an rochts am',
+    '👩🏻‍🦼‍➡' => 'wüf üüb elektro rolstuul: laacht hidjet an rochts am',
+    '👩🏼‍🦼‍➡' => 'wüf üüb elektro rolstuul: madel laacht hidj an rochts am',
+    '👩🏽‍🦼‍➡' => 'wüf üüb elektro rolstuul: madel hidj an rochts am',
+    '👩🏾‍🦼‍➡' => 'wüf üüb elektro rolstuul: madel jonk hidj an rochts am',
+    '👩🏿‍🦼‍➡' => 'wüf üüb elektro rolstuul: jonk hidj an rochts am',
+    '🧑🏻‍🦽‍➡' => 'persuun üüb rolstuul: laacht hidjet an rochts am',
+    '🧑🏼‍🦽‍➡' => 'persuun üüb rolstuul: madel laacht hidj an rochts am',
+    '🧑🏽‍🦽‍➡' => 'persuun üüb rolstuul: madel hidj an rochts am',
+    '🧑🏾‍🦽‍➡' => 'persuun üüb rolstuul: madel jonk hidj an rochts am',
+    '🧑🏿‍🦽‍➡' => 'persuun üüb rolstuul: jonk hidj an rochts am',
+    '👨🏻‍🦽‍➡' => 'maan üüb rolstuul: laacht hidjet an rochts am',
+    '👨🏼‍🦽‍➡' => 'maan üüb rolstuul: madel laacht hidj an rochts am',
+    '👨🏽‍🦽‍➡' => 'maan üüb rolstuul: madel hidj an rochts am',
+    '👨🏾‍🦽‍➡' => 'maan üüb rolstuul: madel jonk hidj an rochts am',
+    '👨🏿‍🦽‍➡' => 'maan üüb rolstuul: jonk hidj an rochts am',
+    '👩🏻‍🦽‍➡' => 'wüf üüb rolstuul: laacht hidjet an rochts am',
+    '👩🏼‍🦽‍➡' => 'wüf üüb rolstuul: madel laacht hidj an rochts am',
+    '👩🏽‍🦽‍➡' => 'wüf üüb rolstuul: madel hidj an rochts am',
+    '👩🏾‍🦽‍➡' => 'wüf üüb rolstuul: madel jonk hidj an rochts am',
+    '👩🏿‍🦽‍➡' => 'wüf üüb rolstuul: jonk hidj an rochts am',
+    '🏃🏻‍♀‍➡' => 'wüf räänt: laacht hidjet an rochts am',
+    '🏃🏼‍♀‍➡' => 'wüf räänt: madel laacht hidj an rochts am',
+    '🏃🏽‍♀‍➡' => 'wüf räänt: madel hidj an rochts am',
+    '🏃🏾‍♀‍➡' => 'wüf räänt: madel jonk hidj an rochts am',
+    '🏃🏿‍♀‍➡' => 'wüf räänt: jonk hidj an rochts am',
+    '🏃🏻‍♂‍➡' => 'maan räänt: laacht hidjet an rochts am',
+    '🏃🏼‍♂‍➡' => 'maan räänt: madel laacht hidj an rochts am',
+    '🏃🏽‍♂‍➡' => 'maan räänt: madel hidj an rochts am',
+    '🏃🏾‍♂‍➡' => 'maan räänt: madel jonk hidj an rochts am',
+    '🏃🏿‍♂‍➡' => 'maan räänt: jonk hidj an rochts am',
     '🫱🏻‍🫲🏼' => 'hunen sködle: laacht hidjet an madel laacht hidj',
     '🫱🏻‍🫲🏽' => 'hunen sködle: laacht hidjet an madel hidj',
     '🫱🏻‍🫲🏾' => 'hunen sködle: laacht hidjet an madel jonk hidj',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'hunen sködle: jonk hidj an madel laacht hidj',
     '🫱🏿‍🫲🏽' => 'hunen sködle: jonk hidj an madel hidj',
     '🫱🏿‍🫲🏾' => 'hunen sködle: jonk hidj an madel jonk hidj',
-    '🚶‍♀‍➡' => 'wüf lääpt rochts am',
-    '🚶‍♂‍➡' => 'maan lääpt rochts am',
-    '🧎‍♀‍➡' => 'wüf üüb knöbian rochts am',
-    '🧎‍♂‍➡' => 'man üüb knöbian rochts am',
-    '🧑‍🦯‍➡' => 'persuun mä blinjenstook rochts am',
-    '👨‍🦯‍➡' => 'maan mä blinjenstook rochts am',
-    '👩‍🦯‍➡' => 'wüf mä blinjenstook rochts am',
-    '🧑‍🦼‍➡' => 'persuun üüb elektro rolstuul rochts am',
-    '👨‍🦼‍➡' => 'maan üüb elektro rolstuul rochts am',
-    '👩‍🦼‍➡' => 'wüf üüb elektro rolstuul rochts am',
-    '🧑‍🦽‍➡' => 'persuun üüb rolstuul rochts am',
-    '👨‍🦽‍➡' => 'maan üüb rolstuul rochts am',
-    '👩‍🦽‍➡' => 'wüf üüb rolstuul rochts am',
-    '🏃‍♀‍➡' => 'wüf räänt rochts am',
-    '🏃‍♂‍➡' => 'maan räänt rochts am',
+    '🚶‍♀‍➡' => 'wüf lääpt: rochts am',
+    '🚶‍♂‍➡' => 'maan lääpt: rochts am',
+    '🧎‍♀‍➡' => 'wüf üüb knöbian: rochts am',
+    '🧎‍♂‍➡' => 'man üüb knöbian: rochts am',
+    '🧑‍🦯‍➡' => 'persuun mä blinjenstook: rochts am',
+    '👨‍🦯‍➡' => 'maan mä blinjenstook: rochts am',
+    '👩‍🦯‍➡' => 'wüf mä blinjenstook: rochts am',
+    '🧑‍🦼‍➡' => 'persuun üüb elektro rolstuul: rochts am',
+    '👨‍🦼‍➡' => 'maan üüb elektro rolstuul: rochts am',
+    '👩‍🦼‍➡' => 'wüf üüb elektro rolstuul: rochts am',
+    '🧑‍🦽‍➡' => 'persuun üüb rolstuul: rochts am',
+    '👨‍🦽‍➡' => 'maan üüb rolstuul: rochts am',
+    '👩‍🦽‍➡' => 'wüf üüb rolstuul: rochts am',
+    '🏃‍♀‍➡' => 'wüf räänt: rochts am',
+    '🏃‍♂‍➡' => 'maan räänt: rochts am',
     '👩‍❤‍👨' => 'paar mä hart: wüf an maan',
     '👨‍❤‍👨' => 'paar mä hart: maan an maan',
     '👩‍❤‍👩' => 'paar mä hart: wüf an wüf',
@@ -437,6 +557,11 @@
     '🧑🏽‍🦲' => 'persuun: madel hidj an nian hiar',
     '🧑🏾‍🦲' => 'persuun: madel jonk hidj an nian hiar',
     '🧑🏿‍🦲' => 'persuun: jonk hidj an nian hiar',
+    '🧑🏻‍🩰' => 'balet daanser: laacht hidjet',
+    '🧑🏼‍🩰' => 'balet daanser: madel laacht hidj',
+    '🧑🏽‍🩰' => 'balet daanser: madel hidj',
+    '🧑🏾‍🩰' => 'balet daanser: madel jonk hidj',
+    '🧑🏿‍🩰' => 'balet daanser: jonk hidj',
     '🧔🏻‍♂' => 'maan mä biard: laacht hidjet',
     '🧔🏼‍♂' => 'maan mä biard: madel laacht hidj',
     '🧔🏽‍♂' => 'maan mä biard: madel hidj',
@@ -1027,11 +1152,11 @@
     '🚶🏽‍♀' => 'wüf lääpt: madel hidj',
     '🚶🏾‍♀' => 'wüf lääpt: madel jonk hidj',
     '🚶🏿‍♀' => 'wüf lääpt: jonk hidj',
-    '🚶🏻‍➡' => 'persuun lääpt rochts am',
-    '🚶🏼‍➡' => 'persuun lääpt rochts am',
-    '🚶🏽‍➡' => 'persuun lääpt rochts am',
-    '🚶🏾‍➡' => 'persuun lääpt rochts am',
-    '🚶🏿‍➡' => 'persuun lääpt rochts am',
+    '🚶🏻‍➡' => 'persuun lääpt: laacht hidjet an rochts am',
+    '🚶🏼‍➡' => 'persuun lääpt: madel laacht hidj an rochts am',
+    '🚶🏽‍➡' => 'persuun lääpt: madel hidj an rochts am',
+    '🚶🏾‍➡' => 'persuun lääpt: madel jonk hidj an rochts am',
+    '🚶🏿‍➡' => 'persuun lääpt: jonk hidj an rochts am',
     '🧍🏻‍♂' => 'maan stäänt: laacht hidjet',
     '🧍🏼‍♂' => 'maan stäänt: madel laacht hidj',
     '🧍🏽‍♂' => 'maan stäänt: madel hidj',
@@ -1052,11 +1177,11 @@
     '🧎🏽‍♀' => 'wüf üüb knöbian: madel hidj',
     '🧎🏾‍♀' => 'wüf üüb knöbian: madel jonk hidj',
     '🧎🏿‍♀' => 'wüf üüb knöbian: jonk hidj',
-    '🧎🏻‍➡' => 'persuun üüb knöbian rochts am',
-    '🧎🏼‍➡' => 'persuun üüb knöbian rochts am',
-    '🧎🏽‍➡' => 'persuun üüb knöbian rochts am',
-    '🧎🏾‍➡' => 'persuun üüb knöbian rochts am',
-    '🧎🏿‍➡' => 'persuun üüb knöbian rochts am',
+    '🧎🏻‍➡' => 'persuun üüb knöbian: laacht hidjet an rochts am',
+    '🧎🏼‍➡' => 'persuun üüb knöbian: madel laacht hidj an rochts am',
+    '🧎🏽‍➡' => 'persuun üüb knöbian: madel hidj an rochts am',
+    '🧎🏾‍➡' => 'persuun üüb knöbian: madel jonk hidj an rochts am',
+    '🧎🏿‍➡' => 'persuun üüb knöbian: jonk hidj an rochts am',
     '🧑🏻‍🦯' => 'persuun mä blinjenstook: laacht hidjet',
     '🧑🏼‍🦯' => 'persuun mä blinjenstook: madel laacht hidj',
     '🧑🏽‍🦯' => 'persuun mä blinjenstook: madel hidj',
@@ -1112,11 +1237,21 @@
     '🏃🏽‍♀' => 'wüf räänt: madel hidj',
     '🏃🏾‍♀' => 'wüf räänt: madel jonk hidj',
     '🏃🏿‍♀' => 'wüf räänt: jonk hidj',
-    '🏃🏻‍➡' => 'persuun räänt rochts am',
-    '🏃🏼‍➡' => 'persuun räänt rochts am',
-    '🏃🏽‍➡' => 'persuun räänt rochts am',
-    '🏃🏾‍➡' => 'persuun räänt rochts am',
-    '🏃🏿‍➡' => 'persuun räänt rochts am',
+    '🏃🏻‍➡' => 'persuun räänt: laacht hidjet an rochts am',
+    '🏃🏼‍➡' => 'persuun räänt: madel laacht hidj an rochts am',
+    '🏃🏽‍➡' => 'persuun räänt: madel hidj an rochts am',
+    '🏃🏾‍➡' => 'persuun räänt: madel jonk hidj an rochts am',
+    '🏃🏿‍➡' => 'persuun räänt: jonk hidj an rochts am',
+    '👯🏻‍♀' => 'wüfen mä haasuaren: laacht hidjet',
+    '👯🏼‍♀' => 'wüfen mä haasuaren: madel laacht hidj',
+    '👯🏽‍♀' => 'wüfen mä haasuaren: madel hidj',
+    '👯🏾‍♀' => 'wüfen mä haasuaren: madel jonk hidj',
+    '👯🏿‍♀' => 'wüfen mä haasuaren: jonk hidj',
+    '👯🏻‍♂' => 'maaner mä haasuaren: laacht hidjet',
+    '👯🏼‍♂' => 'maaner mä haasuaren: madel laacht hidj',
+    '👯🏽‍♂' => 'maaner mä haasuaren: madel hidj',
+    '👯🏾‍♂' => 'maaner mä haasuaren: madel jonk hidj',
+    '👯🏿‍♂' => 'maaner mä haasuaren: jonk hidj',
     '🧖🏻‍♂' => 'maan uun sauna: laacht hidjet',
     '🧖🏼‍♂' => 'maan uun sauna: madel laacht hidj',
     '🧖🏽‍♂' => 'maan uun sauna: madel hidj',
@@ -1227,6 +1362,16 @@
     '🤸🏽‍♀' => 'wüf slait en wel: madel hidj',
     '🤸🏾‍♀' => 'wüf slait en wel: madel jonk hidj',
     '🤸🏿‍♀' => 'wüf slait en wel: jonk hidj',
+    '🤼🏻‍♀' => 'wüfen kemfe: laacht hidjet',
+    '🤼🏼‍♀' => 'wüfen kemfe: madel laacht hidj',
+    '🤼🏽‍♀' => 'wüfen kemfe: madel hidj',
+    '🤼🏾‍♀' => 'wüfen kemfe: madel jonk hidj',
+    '🤼🏿‍♀' => 'wüfen kemfe: jonk hidj',
+    '🤼🏻‍♂' => 'maaner kemfe: laacht hidjet',
+    '🤼🏼‍♂' => 'maaner kemfe: madel laacht hidj',
+    '🤼🏽‍♂' => 'maaner kemfe: madel hidj',
+    '🤼🏾‍♂' => 'maaner kemfe: madel jonk hidj',
+    '🤼🏿‍♂' => 'maaner kemfe: jonk hidj',
     '🤽🏻‍♂' => 'a weederbaalspeler: laacht hidjet',
     '🤽🏼‍♂' => 'a weederbaalspeler: madel laacht hidj',
     '🤽🏽‍♂' => 'a weederbaalspeler: madel hidj',
@@ -1279,9 +1424,9 @@
     '👩‍🦱' => 'wüf: krüüsag hiar',
     '👩‍🦳' => 'wüf: witj hiar',
     '👩‍🦲' => 'wüf: nian hiar',
-    '🚶‍➡' => 'persuun lääpt rochts am',
-    '🧎‍➡' => 'persuun üüb knöbian rochts am',
-    '🏃‍➡' => 'persuun räänt rochts am',
+    '🚶‍➡' => 'persuun lääpt: rochts am',
+    '🧎‍➡' => 'persuun üüb knöbian: rochts am',
+    '🏃‍➡' => 'persuun räänt: rochts am',
     '👨‍👦' => 'famile: maan an dring',
     '👨‍👧' => 'famile: maan an foomen',
     '👩‍👦' => 'famile: wüf an dring',
@@ -1422,6 +1567,7 @@
     '👩‍🦽' => 'wüf üüb rolstuul',
     '🏃‍♂' => 'maan räänt',
     '🏃‍♀' => 'wüf räänt',
+    '🧑‍🩰' => 'balet daanser',
     '👯‍♂' => 'maaner mä haasuaren',
     '👯‍♀' => 'wüfen mä haasuaren',
     '🧖‍♂' => 'maan uun sauna',
@@ -2003,6 +2149,11 @@
     '🕴🏽' => 'persuun mä uuntooch sweewet: madel hidj',
     '🕴🏾' => 'persuun mä uuntooch sweewet: madel jonk hidj',
     '🕴🏿' => 'persuun mä uuntooch sweewet: jonk hidj',
+    '👯🏻' => 'lidj mä haasuaren: laacht hidjet',
+    '👯🏼' => 'lidj mä haasuaren: madel laacht hidj',
+    '👯🏽' => 'lidj mä haasuaren: madel hidj',
+    '👯🏾' => 'lidj mä haasuaren: madel jonk hidj',
+    '👯🏿' => 'lidj mä haasuaren: jonk hidj',
     '🧖🏻' => 'persuun uun sauna: laacht hidjet',
     '🧖🏼' => 'persuun uun sauna: madel laacht hidj',
     '🧖🏽' => 'persuun uun sauna: madel hidj',
@@ -2068,6 +2219,11 @@
     '🤸🏽' => 'persuun slait en wel: madel hidj',
     '🤸🏾' => 'persuun slait en wel: madel jonk hidj',
     '🤸🏿' => 'persuun slait en wel: jonk hidj',
+    '🤼🏻' => 'persuunen kemfe: laacht hidjet',
+    '🤼🏼' => 'persuunen kemfe: madel laacht hidj',
+    '🤼🏽' => 'persuunen kemfe: madel hidj',
+    '🤼🏾' => 'persuunen kemfe: madel jonk hidj',
+    '🤼🏿' => 'persuunen kemfe: jonk hidj',
     '🤽🏻' => 'weederbaalspeler: laacht hidjet',
     '🤽🏼' => 'weederbaalspeler: madel laacht hidj',
     '🤽🏽' => 'weederbaalspeler: madel hidj',
@@ -2128,13 +2284,6 @@
     '🏽' => 'madel hidj',
     '🏾' => 'madel jonk hidj',
     '🏿' => 'jonk hidj',
-    '🪉' => 'harp',
-    '🪏' => 'skofel',
-    '🪾' => 'buum saner bleeden',
-    '🫆' => 'fanger ufdruk',
-    '🫜' => 'ruad beet',
-    '🫟' => 'plak',
-    '🫩' => 'uug ringer',
     '😀' => 'griine',
     '😃' => 'griine mä grat uugen',
     '😄' => 'griine mä smiilin uugen',
@@ -2188,6 +2337,7 @@
     '😪' => 'jibin',
     '🤤' => 'kwiilin',
     '😴' => 'sliapen',
+    '🫩' => 'uug ringer',
     '😷' => 'müs nöösduk',
     '🤒' => 'hood mä termomeeter',
     '🤕' => 'hood amslach',
@@ -2285,6 +2435,7 @@
     '💋' => 'kleeb',
     '💯' => 'hunert ponkter',
     '💢' => 'fertret',
+    '🫯' => 'stridj swark',
     '💥' => 'stup',
     '💫' => 'düüsag',
     '💦' => 'sweet drööber',
@@ -2408,6 +2559,7 @@
     '🧞' => 'geist',
     '🧟' => 'zombie',
     '🧌' => 'monster',
+    '🫈' => 'hiaret kreatüür',
     '💆' => 'persuun masaaj',
     '💇' => 'persuun bi amklaper',
     '🚶' => 'persuun lääpt',
@@ -2451,6 +2603,7 @@
     '🫂' => 'tau uun iarem',
     '👪' => 'famile',
     '👣' => 'tau fut ufdrüker',
+    '🫆' => 'fanger ufdruk',
     '🦰' => 'ruad hiar',
     '🦱' => 'krüüsag hiar',
     '🦳' => 'witj hiar',
@@ -2550,6 +2703,7 @@
     '🐳' => 'waal spütj',
     '🐋' => 'waal',
     '🐬' => 'delfiin',
+    '🫍' => 'orca',
     '🦭' => 'selag',
     '🐟' => 'fask',
     '🐠' => 'troopisk fask',
@@ -2559,6 +2713,11 @@
     '🐚' => 'snek höske',
     '🪸' => 'koral',
     '🪼' => 'glaag',
+    '🦀' => 'weeder kraab',
+    '🦞' => 'homer',
+    '🦐' => 'por',
+    '🦑' => 'blakfask',
+    '🦪' => 'uastrang',
     '🐌' => 'snek',
     '🦋' => 'flenerk',
     '🐛' => 'rip',
@@ -2603,6 +2762,7 @@
     '🪹' => 'nääst leesag',
     '🪺' => 'nääst mä aier',
     '🍄' => 'hünjmots',
+    '🪾' => 'buum saner bleeden',
     '🍇' => 'windrüüwen',
     '🍈' => 'meloon',
     '🍉' => 'weeder meloon',
@@ -2639,6 +2799,7 @@
     '🌰' => 'haaselnöd',
     '🫚' => 'ingefeer',
     '🫛' => 'irt',
+    '🫜' => 'ruad beet',
     '🍞' => 'bruad',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2690,11 +2851,6 @@
     '🥟' => 'empanada',
     '🥠' => 'lok keek',
     '🥡' => 'iidj tu mänemen',
-    '🦀' => 'weeder kraab',
-    '🦞' => 'homer',
-    '🦐' => 'por',
-    '🦑' => 'blakfask',
-    '🦪' => 'uastrang',
     '🍦' => 'soft is',
     '🍧' => 'heewelt is',
     '🍨' => 'bak mä is',
@@ -2745,6 +2901,7 @@
     '🧭' => 'kompaas',
     '🏔' => 'berag mä snä',
     '⛰' => 'berag',
+    '🛘' => 'stianslach',
     '🌋' => 'wulkaan',
     '🗻' => 'berag Fuji',
     '🏕' => 'camping telt',
@@ -3105,16 +3262,18 @@
     '🎧' => 'uar hiarer',
     '📻' => 'raadio',
     '🎷' => 'saksofoon',
+    '🎺' => 'trompeet',
+    '🪊' => 'posaun',
     '🪗' => 'akordeon',
     '🎸' => 'gitaar',
     '🎹' => 'klawiar',
-    '🎺' => 'trompeet',
     '🎻' => 'gichel',
     '🪕' => 'banjo',
     '🥁' => 'trumel',
     '🪘' => 'lung trumel',
     '🪇' => 'marakas',
     '🪈' => 'fleut',
+    '🪉' => 'harp',
     '📱' => 'handy',
     '📲' => 'handy mä piil',
     '☎' => 'tilefoon',
@@ -3168,8 +3327,9 @@
     '📑' => 'lees tiaken',
     '🔖' => 'lees tiaken mä triad',
     '🏷' => 'etiket',
-    '💰' => 'jilsääk',
     '🪙' => 'jilstak',
+    '💰' => 'jilsääk',
+    '🪎' => 'gulkast',
     '💴' => 'yen jilskiin',
     '💵' => 'dooler jilskiin',
     '💶' => 'euro jilskiin',
@@ -3252,6 +3412,7 @@
     '🧰' => 'werktjüchkasche',
     '🧲' => 'magneet',
     '🪜' => 'lääder',
+    '🪏' => 'skofel',
     '⚗' => 'destiliar glääs',
     '🧪' => 'reagens glääs',
     '🧫' => 'petri skeel',
@@ -3435,6 +3596,7 @@
     '✴' => 'stäär mä aacht strualen',
     '❇' => 'skürne',
     '™' => 'markin tiaken',
+    '🫟' => 'plak',
     '🔠' => 'grat buksteewen',
     '🔡' => 'letj buksteewen',
     '🔢' => 'taalen',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ga.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ga.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ga.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ga.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'póg: bean, bean, ton cnis dorcha, ton cnis meánach',
     '👩🏿‍❤‍💋‍👩🏾' => 'póg: bean, bean, ton cnis dorcha, ton cnis meándorcha',
     '👩🏿‍❤‍💋‍👩🏿' => 'póg: bean, bean, ton cnis dorcha',
+    '🧑🏻‍🫯‍🧑🏼' => 'coraíocht: ton cnis geal, ton cnis mheánach-gheal',
+    '🧑🏻‍🫯‍🧑🏽' => 'coraíocht: ton cnis geal, ton cnis meánach',
+    '🧑🏻‍🫯‍🧑🏾' => 'coraíocht: ton cnis geal, ton cnis meándorcha',
+    '🧑🏻‍🫯‍🧑🏿' => 'coraíocht: ton cnis geal, ton cnis dorcha',
+    '🧑🏼‍🫯‍🧑🏻' => 'coraíocht: ton cnis mheánach-gheal, ton cnis geal',
+    '🧑🏼‍🫯‍🧑🏽' => 'coraíocht: ton cnis mheánach-gheal, ton cnis meánach',
+    '🧑🏼‍🫯‍🧑🏾' => 'coraíocht: ton cnis mheánach-gheal, ton cnis meándorcha',
+    '🧑🏼‍🫯‍🧑🏿' => 'coraíocht: ton cnis mheánach-gheal, ton cnis dorcha',
+    '🧑🏽‍🫯‍🧑🏻' => 'coraíocht: ton cnis meánach, ton cnis geal',
+    '🧑🏽‍🫯‍🧑🏼' => 'coraíocht: ton cnis meánach, ton cnis mheánach-gheal',
+    '🧑🏽‍🫯‍🧑🏾' => 'coraíocht: ton cnis meánach, ton cnis meándorcha',
+    '🧑🏽‍🫯‍🧑🏿' => 'coraíocht: ton cnis meánach, ton cnis dorcha',
+    '🧑🏾‍🫯‍🧑🏻' => 'coraíocht: ton cnis meándorcha, ton cnis geal',
+    '🧑🏾‍🫯‍🧑🏼' => 'coraíocht: ton cnis meándorcha, ton cnis mheánach-gheal',
+    '🧑🏾‍🫯‍🧑🏽' => 'coraíocht: ton cnis meándorcha, ton cnis meánach',
+    '🧑🏾‍🫯‍🧑🏿' => 'coraíocht: ton cnis meándorcha, ton cnis dorcha',
+    '🧑🏿‍🫯‍🧑🏻' => 'coraíocht: ton cnis dorcha, ton cnis geal',
+    '🧑🏿‍🫯‍🧑🏼' => 'coraíocht: ton cnis dorcha, ton cnis mheánach-gheal',
+    '🧑🏿‍🫯‍🧑🏽' => 'coraíocht: ton cnis dorcha, ton cnis meánach',
+    '🧑🏿‍🫯‍🧑🏾' => 'coraíocht: ton cnis dorcha, ton cnis meándorcha',
     '🧑🏻‍❤‍🧑🏼' => 'lanúin le croí: aosach, aosach, ton cnis geal, ton cnis mheánach-gheal',
     '🧑🏻‍❤‍🧑🏽' => 'lanúin le croí: aosach, aosach, ton cnis geal, ton cnis meánach',
     '🧑🏻‍❤‍🧑🏾' => 'lanúin le croí: aosach, aosach, ton cnis geal, ton cnis meándorcha',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'lanúin le croí: aosach, aosach, ton cnis dorcha, ton cnis mheánach-gheal',
     '🧑🏿‍❤‍🧑🏽' => 'lanúin le croí: aosach, aosach, ton cnis dorcha, ton cnis meánach',
     '🧑🏿‍❤‍🧑🏾' => 'lanúin le croí: aosach, aosach, ton cnis dorcha, ton cnis meándorcha',
+    '🧑🏻‍🐰‍🧑🏼' => 'daoine le cluasa coiníní orthu: ton cnis geal, ton cnis mheánach-gheal',
+    '🧑🏻‍🐰‍🧑🏽' => 'daoine le cluasa coiníní orthu: ton cnis geal, ton cnis meánach',
+    '🧑🏻‍🐰‍🧑🏾' => 'daoine le cluasa coiníní orthu: ton cnis geal, ton cnis meándorcha',
+    '🧑🏻‍🐰‍🧑🏿' => 'daoine le cluasa coiníní orthu: ton cnis geal, ton cnis dorcha',
+    '🧑🏼‍🐰‍🧑🏻' => 'daoine le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis geal',
+    '🧑🏼‍🐰‍🧑🏽' => 'daoine le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis meánach',
+    '🧑🏼‍🐰‍🧑🏾' => 'daoine le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis meándorcha',
+    '🧑🏼‍🐰‍🧑🏿' => 'daoine le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis dorcha',
+    '🧑🏽‍🐰‍🧑🏻' => 'daoine le cluasa coiníní orthu: ton cnis meánach, ton cnis geal',
+    '🧑🏽‍🐰‍🧑🏼' => 'daoine le cluasa coiníní orthu: ton cnis meánach, ton cnis mheánach-gheal',
+    '🧑🏽‍🐰‍🧑🏾' => 'daoine le cluasa coiníní orthu: ton cnis meánach, ton cnis meándorcha',
+    '🧑🏽‍🐰‍🧑🏿' => 'daoine le cluasa coiníní orthu: ton cnis meánach, ton cnis dorcha',
+    '🧑🏾‍🐰‍🧑🏻' => 'daoine le cluasa coiníní orthu: ton cnis meándorcha, ton cnis geal',
+    '🧑🏾‍🐰‍🧑🏼' => 'daoine le cluasa coiníní orthu: ton cnis meándorcha, ton cnis mheánach-gheal',
+    '🧑🏾‍🐰‍🧑🏽' => 'daoine le cluasa coiníní orthu: ton cnis meándorcha, ton cnis meánach',
+    '🧑🏾‍🐰‍🧑🏿' => 'daoine le cluasa coiníní orthu: ton cnis meándorcha, ton cnis dorcha',
+    '🧑🏿‍🐰‍🧑🏻' => 'daoine le cluasa coiníní orthu: ton cnis dorcha, ton cnis geal',
+    '🧑🏿‍🐰‍🧑🏼' => 'daoine le cluasa coiníní orthu: ton cnis dorcha, ton cnis mheánach-gheal',
+    '🧑🏿‍🐰‍🧑🏽' => 'daoine le cluasa coiníní orthu: ton cnis dorcha, ton cnis meánach',
+    '🧑🏿‍🐰‍🧑🏾' => 'daoine le cluasa coiníní orthu: ton cnis dorcha, ton cnis meándorcha',
+    '👨🏻‍🫯‍👨🏼' => 'fir ag coraíocht: ton cnis geal, ton cnis mheánach-gheal',
+    '👨🏻‍🫯‍👨🏽' => 'fir ag coraíocht: ton cnis geal, ton cnis meánach',
+    '👨🏻‍🫯‍👨🏾' => 'fir ag coraíocht: ton cnis geal, ton cnis meándorcha',
+    '👨🏻‍🫯‍👨🏿' => 'fir ag coraíocht: ton cnis geal, ton cnis dorcha',
+    '👨🏼‍🫯‍👨🏻' => 'fir ag coraíocht: ton cnis mheánach-gheal, ton cnis geal',
+    '👨🏼‍🫯‍👨🏽' => 'fir ag coraíocht: ton cnis mheánach-gheal, ton cnis meánach',
+    '👨🏼‍🫯‍👨🏾' => 'fir ag coraíocht: ton cnis mheánach-gheal, ton cnis meándorcha',
+    '👨🏼‍🫯‍👨🏿' => 'fir ag coraíocht: ton cnis mheánach-gheal, ton cnis dorcha',
+    '👨🏽‍🫯‍👨🏻' => 'fir ag coraíocht: ton cnis meánach, ton cnis geal',
+    '👨🏽‍🫯‍👨🏼' => 'fir ag coraíocht: ton cnis meánach, ton cnis mheánach-gheal',
+    '👨🏽‍🫯‍👨🏾' => 'fir ag coraíocht: ton cnis meánach, ton cnis meándorcha',
+    '👨🏽‍🫯‍👨🏿' => 'fir ag coraíocht: ton cnis meánach, ton cnis dorcha',
+    '👨🏾‍🫯‍👨🏻' => 'fir ag coraíocht: ton cnis meándorcha, ton cnis geal',
+    '👨🏾‍🫯‍👨🏼' => 'fir ag coraíocht: ton cnis meándorcha, ton cnis mheánach-gheal',
+    '👨🏾‍🫯‍👨🏽' => 'fir ag coraíocht: ton cnis meándorcha, ton cnis meánach',
+    '👨🏾‍🫯‍👨🏿' => 'fir ag coraíocht: ton cnis meándorcha, ton cnis dorcha',
+    '👨🏿‍🫯‍👨🏻' => 'fir ag coraíocht: ton cnis dorcha, ton cnis geal',
+    '👨🏿‍🫯‍👨🏼' => 'fir ag coraíocht: ton cnis dorcha, ton cnis mheánach-gheal',
+    '👨🏿‍🫯‍👨🏽' => 'fir ag coraíocht: ton cnis dorcha, ton cnis meánach',
+    '👨🏿‍🫯‍👨🏾' => 'fir ag coraíocht: ton cnis dorcha, ton cnis meándorcha',
     '👨🏻‍❤‍👨🏻' => 'lanúin le croí: fear, fear, ton cnis geal',
     '👨🏻‍❤‍👨🏼' => 'lanúin le croí: fear, fear, ton cnis geal, ton cnis mheánach-gheal',
     '👨🏻‍❤‍👨🏽' => 'lanúin le croí: fear, fear, ton cnis geal, ton cnis meánach',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'lanúin le croí: fear, fear, ton cnis dorcha, ton cnis meánach',
     '👨🏿‍❤‍👨🏾' => 'lanúin le croí: fear, fear, ton cnis dorcha, ton cnis meándorcha',
     '👨🏿‍❤‍👨🏿' => 'lanúin le croí: fear, fear, ton cnis dorcha',
+    '👨🏻‍🐰‍👨🏼' => 'fir le cluasa coiníní orthu: ton cnis geal, ton cnis mheánach-gheal',
+    '👨🏻‍🐰‍👨🏽' => 'fir le cluasa coiníní orthu: ton cnis geal, ton cnis meánach',
+    '👨🏻‍🐰‍👨🏾' => 'fir le cluasa coiníní orthu: ton cnis geal, ton cnis meándorcha',
+    '👨🏻‍🐰‍👨🏿' => 'fir le cluasa coiníní orthu: ton cnis geal, ton cnis dorcha',
+    '👨🏼‍🐰‍👨🏻' => 'fir le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis geal',
+    '👨🏼‍🐰‍👨🏽' => 'fir le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis meánach',
+    '👨🏼‍🐰‍👨🏾' => 'fir le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis meándorcha',
+    '👨🏼‍🐰‍👨🏿' => 'fir le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis dorcha',
+    '👨🏽‍🐰‍👨🏻' => 'fir le cluasa coiníní orthu: ton cnis meánach, ton cnis geal',
+    '👨🏽‍🐰‍👨🏼' => 'fir le cluasa coiníní orthu: ton cnis meánach, ton cnis mheánach-gheal',
+    '👨🏽‍🐰‍👨🏾' => 'fir le cluasa coiníní orthu: ton cnis meánach, ton cnis meándorcha',
+    '👨🏽‍🐰‍👨🏿' => 'fir le cluasa coiníní orthu: ton cnis meánach, ton cnis dorcha',
+    '👨🏾‍🐰‍👨🏻' => 'fir le cluasa coiníní orthu: ton cnis meándorcha, ton cnis geal',
+    '👨🏾‍🐰‍👨🏼' => 'fir le cluasa coiníní orthu: ton cnis meándorcha, ton cnis mheánach-gheal',
+    '👨🏾‍🐰‍👨🏽' => 'fir le cluasa coiníní orthu: ton cnis meándorcha, ton cnis meánach',
+    '👨🏾‍🐰‍👨🏿' => 'fir le cluasa coiníní orthu: ton cnis meándorcha, ton cnis dorcha',
+    '👨🏿‍🐰‍👨🏻' => 'fir le cluasa coiníní orthu: ton cnis dorcha, ton cnis geal',
+    '👨🏿‍🐰‍👨🏼' => 'fir le cluasa coiníní orthu: ton cnis dorcha, ton cnis mheánach-gheal',
+    '👨🏿‍🐰‍👨🏽' => 'fir le cluasa coiníní orthu: ton cnis dorcha, ton cnis meánach',
+    '👨🏿‍🐰‍👨🏾' => 'fir le cluasa coiníní orthu: ton cnis dorcha, ton cnis meándorcha',
+    '👩🏻‍🫯‍👩🏼' => 'mná ag coraíocht: ton cnis geal, ton cnis mheánach-gheal',
+    '👩🏻‍🫯‍👩🏽' => 'mná ag coraíocht: ton cnis geal, ton cnis meánach',
+    '👩🏻‍🫯‍👩🏾' => 'mná ag coraíocht: ton cnis geal, ton cnis meándorcha',
+    '👩🏻‍🫯‍👩🏿' => 'mná ag coraíocht: ton cnis geal, ton cnis dorcha',
+    '👩🏼‍🫯‍👩🏻' => 'mná ag coraíocht: ton cnis mheánach-gheal, ton cnis geal',
+    '👩🏼‍🫯‍👩🏽' => 'mná ag coraíocht: ton cnis mheánach-gheal, ton cnis meánach',
+    '👩🏼‍🫯‍👩🏾' => 'mná ag coraíocht: ton cnis mheánach-gheal, ton cnis meándorcha',
+    '👩🏼‍🫯‍👩🏿' => 'mná ag coraíocht: ton cnis mheánach-gheal, ton cnis dorcha',
+    '👩🏽‍🫯‍👩🏻' => 'mná ag coraíocht: ton cnis meánach, ton cnis geal',
+    '👩🏽‍🫯‍👩🏼' => 'mná ag coraíocht: ton cnis meánach, ton cnis mheánach-gheal',
+    '👩🏽‍🫯‍👩🏾' => 'mná ag coraíocht: ton cnis meánach, ton cnis meándorcha',
+    '👩🏽‍🫯‍👩🏿' => 'mná ag coraíocht: ton cnis meánach, ton cnis dorcha',
+    '👩🏾‍🫯‍👩🏻' => 'mná ag coraíocht: ton cnis meándorcha, ton cnis geal',
+    '👩🏾‍🫯‍👩🏼' => 'mná ag coraíocht: ton cnis meándorcha, ton cnis mheánach-gheal',
+    '👩🏾‍🫯‍👩🏽' => 'mná ag coraíocht: ton cnis meándorcha, ton cnis meánach',
+    '👩🏾‍🫯‍👩🏿' => 'mná ag coraíocht: ton cnis meándorcha, ton cnis dorcha',
+    '👩🏿‍🫯‍👩🏻' => 'mná ag coraíocht: ton cnis dorcha, ton cnis geal',
+    '👩🏿‍🫯‍👩🏼' => 'mná ag coraíocht: ton cnis dorcha, ton cnis mheánach-gheal',
+    '👩🏿‍🫯‍👩🏽' => 'mná ag coraíocht: ton cnis dorcha, ton cnis meánach',
+    '👩🏿‍🫯‍👩🏾' => 'mná ag coraíocht: ton cnis dorcha, ton cnis meándorcha',
     '👩🏻‍❤‍👨🏻' => 'lanúin le croí: bean, fear, ton cnis geal',
     '👩🏻‍❤‍👨🏼' => 'lanúin le croí: bean, fear, ton cnis geal, ton cnis mheánach-gheal',
     '👩🏻‍❤‍👨🏽' => 'lanúin le croí: bean, fear, ton cnis geal, ton cnis meánach',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'lanúin le croí: bean, bean, ton cnis dorcha, ton cnis meánach',
     '👩🏿‍❤‍👩🏾' => 'lanúin le croí: bean, bean, ton cnis dorcha, ton cnis meándorcha',
     '👩🏿‍❤‍👩🏿' => 'lanúin le croí: bean, bean, ton cnis dorcha',
+    '👩🏻‍🐰‍👩🏼' => 'mná le cluasa coiníní orthu: ton cnis geal, ton cnis mheánach-gheal',
+    '👩🏻‍🐰‍👩🏽' => 'mná le cluasa coiníní orthu: ton cnis geal, ton cnis meánach',
+    '👩🏻‍🐰‍👩🏾' => 'mná le cluasa coiníní orthu: ton cnis geal, ton cnis meándorcha',
+    '👩🏻‍🐰‍👩🏿' => 'mná le cluasa coiníní orthu: ton cnis geal, ton cnis dorcha',
+    '👩🏼‍🐰‍👩🏻' => 'mná le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis geal',
+    '👩🏼‍🐰‍👩🏽' => 'mná le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis meánach',
+    '👩🏼‍🐰‍👩🏾' => 'mná le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis meándorcha',
+    '👩🏼‍🐰‍👩🏿' => 'mná le cluasa coiníní orthu: ton cnis mheánach-gheal, ton cnis dorcha',
+    '👩🏽‍🐰‍👩🏻' => 'mná le cluasa coiníní orthu: ton cnis meánach, ton cnis geal',
+    '👩🏽‍🐰‍👩🏼' => 'mná le cluasa coiníní orthu: ton cnis meánach, ton cnis mheánach-gheal',
+    '👩🏽‍🐰‍👩🏾' => 'mná le cluasa coiníní orthu: ton cnis meánach, ton cnis meándorcha',
+    '👩🏽‍🐰‍👩🏿' => 'mná le cluasa coiníní orthu: ton cnis meánach, ton cnis dorcha',
+    '👩🏾‍🐰‍👩🏻' => 'mná le cluasa coiníní orthu: ton cnis meándorcha, ton cnis geal',
+    '👩🏾‍🐰‍👩🏼' => 'mná le cluasa coiníní orthu: ton cnis meándorcha, ton cnis mheánach-gheal',
+    '👩🏾‍🐰‍👩🏽' => 'mná le cluasa coiníní orthu: ton cnis meándorcha, ton cnis meánach',
+    '👩🏾‍🐰‍👩🏿' => 'mná le cluasa coiníní orthu: ton cnis meándorcha, ton cnis dorcha',
+    '👩🏿‍🐰‍👩🏻' => 'mná le cluasa coiníní orthu: ton cnis dorcha, ton cnis geal',
+    '👩🏿‍🐰‍👩🏼' => 'mná le cluasa coiníní orthu: ton cnis dorcha, ton cnis mheánach-gheal',
+    '👩🏿‍🐰‍👩🏽' => 'mná le cluasa coiníní orthu: ton cnis dorcha, ton cnis meánach',
+    '👩🏿‍🐰‍👩🏾' => 'mná le cluasa coiníní orthu: ton cnis dorcha, ton cnis meándorcha',
     '🧑🏻‍🤝‍🧑🏻' => 'daone a bhfuil greim láimhe acu ar a chéile: ton cnis geal',
     '🧑🏻‍🤝‍🧑🏼' => 'daone a bhfuil greim láimhe acu ar a chéile: ton cnis geal, ton cnis mheánach-gheal',
     '🧑🏻‍🤝‍🧑🏽' => 'daone a bhfuil greim láimhe acu ar a chéile: ton cnis geal, ton cnis meánach',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bratach: Albain',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bratach: an Bhreatain Bheag',
     '🧑‍🧑‍🧒‍🧒' => 'teaghlach: duine fásta, duine fásta, leanbh, leanbh',
-    '🚶🏻‍♀‍➡' => 'bean ag siúl aghaidh ar dheis',
-    '🚶🏼‍♀‍➡' => 'bean ag siúl aghaidh ar dheis',
-    '🚶🏽‍♀‍➡' => 'bean ag siúl aghaidh ar dheis',
-    '🚶🏾‍♀‍➡' => 'bean ag siúl aghaidh ar dheis',
-    '🚶🏿‍♀‍➡' => 'bean ag siúl aghaidh ar dheis',
-    '🚶🏻‍♂‍➡' => 'fear ag siúl aghaidh ar dheis',
-    '🚶🏼‍♂‍➡' => 'fear ag siúl aghaidh ar dheis',
-    '🚶🏽‍♂‍➡' => 'fear ag siúl aghaidh ar dheis',
-    '🚶🏾‍♂‍➡' => 'fear ag siúl aghaidh ar dheis',
-    '🚶🏿‍♂‍➡' => 'fear ag siúl aghaidh ar dheis',
-    '🧎🏻‍♀‍➡' => 'bean ar a glúine aghaidh ar dheis',
-    '🧎🏼‍♀‍➡' => 'bean ar a glúine aghaidh ar dheis',
-    '🧎🏽‍♀‍➡' => 'bean ar a glúine aghaidh ar dheis',
-    '🧎🏾‍♀‍➡' => 'bean ar a glúine aghaidh ar dheis',
-    '🧎🏿‍♀‍➡' => 'bean ar a glúine aghaidh ar dheis',
-    '🧎🏻‍♂‍➡' => 'fear ar a ghlúine aghaidh ar dheis',
-    '🧎🏼‍♂‍➡' => 'fear ar a ghlúine aghaidh ar dheis',
-    '🧎🏽‍♂‍➡' => 'fear ar a ghlúine aghaidh ar dheis',
-    '🧎🏾‍♂‍➡' => 'fear ar a ghlúine aghaidh ar dheis',
-    '🧎🏿‍♂‍➡' => 'fear ar a ghlúine aghaidh ar dheis',
-    '🧑🏻‍🦯‍➡' => 'duine le cána aghaidh ar dheis',
-    '🧑🏼‍🦯‍➡' => 'duine le cána aghaidh ar dheis',
-    '🧑🏽‍🦯‍➡' => 'duine le cána aghaidh ar dheis',
-    '🧑🏾‍🦯‍➡' => 'duine le cána aghaidh ar dheis',
-    '🧑🏿‍🦯‍➡' => 'duine le cána aghaidh ar dheis',
-    '👨🏻‍🦯‍➡' => 'fear le cána aghaidh ar dheis',
-    '👨🏼‍🦯‍➡' => 'fear le cána aghaidh ar dheis',
-    '👨🏽‍🦯‍➡' => 'fear le cána aghaidh ar dheis',
-    '👨🏾‍🦯‍➡' => 'fear le cána aghaidh ar dheis',
-    '👨🏿‍🦯‍➡' => 'fear le cána aghaidh ar dheis',
-    '👩🏻‍🦯‍➡' => 'bean le cána aghaidh ar dheis',
-    '👩🏼‍🦯‍➡' => 'bean le cána aghaidh ar dheis',
-    '👩🏽‍🦯‍➡' => 'bean le cána aghaidh ar dheis',
-    '👩🏾‍🦯‍➡' => 'bean le cána aghaidh ar dheis',
-    '👩🏿‍🦯‍➡' => 'bean le cána aghaidh ar dheis',
-    '🧑🏻‍🦼‍➡' => 'duine i gcathaoir rothaí innealta aghaidh ar dheis',
-    '🧑🏼‍🦼‍➡' => 'duine i gcathaoir rothaí innealta aghaidh ar dheis',
-    '🧑🏽‍🦼‍➡' => 'duine i gcathaoir rothaí innealta aghaidh ar dheis',
-    '🧑🏾‍🦼‍➡' => 'duine i gcathaoir rothaí innealta aghaidh ar dheis',
-    '🧑🏿‍🦼‍➡' => 'duine i gcathaoir rothaí innealta aghaidh ar dheis',
-    '👨🏻‍🦼‍➡' => 'fear i cathaoir rothaí innealta aghaidh ar dheis',
-    '👨🏼‍🦼‍➡' => 'fear i cathaoir rothaí innealta aghaidh ar dheis',
-    '👨🏽‍🦼‍➡' => 'fear i cathaoir rothaí innealta aghaidh ar dheis',
-    '👨🏾‍🦼‍➡' => 'fear i cathaoir rothaí innealta aghaidh ar dheis',
-    '👨🏿‍🦼‍➡' => 'fear i cathaoir rothaí innealta aghaidh ar dheis',
-    '👩🏻‍🦼‍➡' => 'bean i gcathaoir rothaí innealta aghaidh ar dheis',
-    '👩🏼‍🦼‍➡' => 'bean i gcathaoir rothaí innealta aghaidh ar dheis',
-    '👩🏽‍🦼‍➡' => 'bean i gcathaoir rothaí innealta aghaidh ar dheis',
-    '👩🏾‍🦼‍➡' => 'bean i gcathaoir rothaí innealta aghaidh ar dheis',
-    '👩🏿‍🦼‍➡' => 'bean i gcathaoir rothaí innealta aghaidh ar dheis',
-    '🧑🏻‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '🧑🏼‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '🧑🏽‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '🧑🏾‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '🧑🏿‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👨🏻‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👨🏼‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👨🏽‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👨🏾‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👨🏿‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👩🏻‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👩🏼‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👩🏽‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👩🏾‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👩🏿‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '🏃🏻‍♀‍➡' => 'bean ag rith aghaidh ar dheis',
-    '🏃🏼‍♀‍➡' => 'bean ag rith aghaidh ar dheis',
-    '🏃🏽‍♀‍➡' => 'bean ag rith aghaidh ar dheis',
-    '🏃🏾‍♀‍➡' => 'bean ag rith aghaidh ar dheis',
-    '🏃🏿‍♀‍➡' => 'bean ag rith aghaidh ar dheis',
-    '🏃🏻‍♂‍➡' => 'fear ag rith aghaidh ar dheis',
-    '🏃🏼‍♂‍➡' => 'fear ag rith aghaidh ar dheis',
-    '🏃🏽‍♂‍➡' => 'fear ag rith aghaidh ar dheis',
-    '🏃🏾‍♂‍➡' => 'fear ag rith aghaidh ar dheis',
-    '🏃🏿‍♂‍➡' => 'fear ag rith aghaidh ar dheis',
+    '🚶🏻‍♀‍➡' => 'bean ag siúl: ton cnis geal, aghaidh ar dheis',
+    '🚶🏼‍♀‍➡' => 'bean ag siúl: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🚶🏽‍♀‍➡' => 'bean ag siúl: ton cnis meánach, aghaidh ar dheis',
+    '🚶🏾‍♀‍➡' => 'bean ag siúl: ton cnis meándorcha, aghaidh ar dheis',
+    '🚶🏿‍♀‍➡' => 'bean ag siúl: ton cnis dorcha, aghaidh ar dheis',
+    '🚶🏻‍♂‍➡' => 'fear ag siúl: ton cnis geal, aghaidh ar dheis',
+    '🚶🏼‍♂‍➡' => 'fear ag siúl: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🚶🏽‍♂‍➡' => 'fear ag siúl: ton cnis meánach, aghaidh ar dheis',
+    '🚶🏾‍♂‍➡' => 'fear ag siúl: ton cnis meándorcha, aghaidh ar dheis',
+    '🚶🏿‍♂‍➡' => 'fear ag siúl: ton cnis dorcha, aghaidh ar dheis',
+    '🧎🏻‍♀‍➡' => 'bean ar a glúine: ton cnis geal, aghaidh ar dheis',
+    '🧎🏼‍♀‍➡' => 'bean ar a glúine: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🧎🏽‍♀‍➡' => 'bean ar a glúine: ton cnis meánach, aghaidh ar dheis',
+    '🧎🏾‍♀‍➡' => 'bean ar a glúine: ton cnis meándorcha, aghaidh ar dheis',
+    '🧎🏿‍♀‍➡' => 'bean ar a glúine: ton cnis dorcha, aghaidh ar dheis',
+    '🧎🏻‍♂‍➡' => 'fear ar a ghlúine: ton cnis geal, aghaidh ar dheis',
+    '🧎🏼‍♂‍➡' => 'fear ar a ghlúine: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🧎🏽‍♂‍➡' => 'fear ar a ghlúine: ton cnis meánach, aghaidh ar dheis',
+    '🧎🏾‍♂‍➡' => 'fear ar a ghlúine: ton cnis meándorcha, aghaidh ar dheis',
+    '🧎🏿‍♂‍➡' => 'fear ar a ghlúine: ton cnis dorcha, aghaidh ar dheis',
+    '🧑🏻‍🦯‍➡' => 'duine le cána bán: ton cnis geal, aghaidh ar dheis',
+    '🧑🏼‍🦯‍➡' => 'duine le cána bán: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🧑🏽‍🦯‍➡' => 'duine le cána bán: ton cnis meánach, aghaidh ar dheis',
+    '🧑🏾‍🦯‍➡' => 'duine le cána bán: ton cnis meándorcha, aghaidh ar dheis',
+    '🧑🏿‍🦯‍➡' => 'duine le cána bán: ton cnis dorcha, aghaidh ar dheis',
+    '👨🏻‍🦯‍➡' => 'fear le cána bán: ton cnis geal, aghaidh ar dheis',
+    '👨🏼‍🦯‍➡' => 'fear le cána bán: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '👨🏽‍🦯‍➡' => 'fear le cána bán: ton cnis meánach, aghaidh ar dheis',
+    '👨🏾‍🦯‍➡' => 'fear le cána bán: ton cnis meándorcha, aghaidh ar dheis',
+    '👨🏿‍🦯‍➡' => 'fear le cána bán: ton cnis dorcha, aghaidh ar dheis',
+    '👩🏻‍🦯‍➡' => 'bean le cána bán: ton cnis geal, aghaidh ar dheis',
+    '👩🏼‍🦯‍➡' => 'bean le cána bán: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '👩🏽‍🦯‍➡' => 'bean le cána bán: ton cnis meánach, aghaidh ar dheis',
+    '👩🏾‍🦯‍➡' => 'bean le cána bán: ton cnis meándorcha, aghaidh ar dheis',
+    '👩🏿‍🦯‍➡' => 'bean le cána bán: ton cnis dorcha, aghaidh ar dheis',
+    '🧑🏻‍🦼‍➡' => 'duine i gcathaoir rothaí innealta: ton cnis geal, aghaidh ar dheis',
+    '🧑🏼‍🦼‍➡' => 'duine i gcathaoir rothaí innealta: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🧑🏽‍🦼‍➡' => 'duine i gcathaoir rothaí innealta: ton cnis meánach, aghaidh ar dheis',
+    '🧑🏾‍🦼‍➡' => 'duine i gcathaoir rothaí innealta: ton cnis meándorcha, aghaidh ar dheis',
+    '🧑🏿‍🦼‍➡' => 'duine i gcathaoir rothaí innealta: ton cnis dorcha, aghaidh ar dheis',
+    '👨🏻‍🦼‍➡' => 'fear i cathaoir rothaí innealta: ton cnis geal, aghaidh ar dheis',
+    '👨🏼‍🦼‍➡' => 'fear i cathaoir rothaí innealta: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '👨🏽‍🦼‍➡' => 'fear i cathaoir rothaí innealta: ton cnis meánach, aghaidh ar dheis',
+    '👨🏾‍🦼‍➡' => 'fear i cathaoir rothaí innealta: ton cnis meándorcha, aghaidh ar dheis',
+    '👨🏿‍🦼‍➡' => 'fear i cathaoir rothaí innealta: ton cnis dorcha, aghaidh ar dheis',
+    '👩🏻‍🦼‍➡' => 'bean i gcathaoir rothaí innealta: ton cnis geal, aghaidh ar dheis',
+    '👩🏼‍🦼‍➡' => 'bean i gcathaoir rothaí innealta: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '👩🏽‍🦼‍➡' => 'bean i gcathaoir rothaí innealta: ton cnis meánach, aghaidh ar dheis',
+    '👩🏾‍🦼‍➡' => 'bean i gcathaoir rothaí innealta: ton cnis meándorcha, aghaidh ar dheis',
+    '👩🏿‍🦼‍➡' => 'bean i gcathaoir rothaí innealta: ton cnis dorcha, aghaidh ar dheis',
+    '🧑🏻‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe: ton cnis geal, aghaidh ar dheis',
+    '🧑🏼‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🧑🏽‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe: ton cnis meánach, aghaidh ar dheis',
+    '🧑🏾‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe: ton cnis meándorcha, aghaidh ar dheis',
+    '🧑🏿‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe: ton cnis dorcha, aghaidh ar dheis',
+    '👨🏻‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe: ton cnis geal, aghaidh ar dheis',
+    '👨🏼‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '👨🏽‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe: ton cnis meánach, aghaidh ar dheis',
+    '👨🏾‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe: ton cnis meándorcha, aghaidh ar dheis',
+    '👨🏿‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe: ton cnis dorcha, aghaidh ar dheis',
+    '👩🏻‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe: ton cnis geal, aghaidh ar dheis',
+    '👩🏼‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '👩🏽‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe: ton cnis meánach, aghaidh ar dheis',
+    '👩🏾‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe: ton cnis meándorcha, aghaidh ar dheis',
+    '👩🏿‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe: ton cnis dorcha, aghaidh ar dheis',
+    '🏃🏻‍♀‍➡' => 'bean ag rith: ton cnis geal, aghaidh ar dheis',
+    '🏃🏼‍♀‍➡' => 'bean ag rith: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🏃🏽‍♀‍➡' => 'bean ag rith: ton cnis meánach, aghaidh ar dheis',
+    '🏃🏾‍♀‍➡' => 'bean ag rith: ton cnis meándorcha, aghaidh ar dheis',
+    '🏃🏿‍♀‍➡' => 'bean ag rith: ton cnis dorcha, aghaidh ar dheis',
+    '🏃🏻‍♂‍➡' => 'fear ag rith: ton cnis geal, aghaidh ar dheis',
+    '🏃🏼‍♂‍➡' => 'fear ag rith: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🏃🏽‍♂‍➡' => 'fear ag rith: ton cnis meánach, aghaidh ar dheis',
+    '🏃🏾‍♂‍➡' => 'fear ag rith: ton cnis meándorcha, aghaidh ar dheis',
+    '🏃🏿‍♂‍➡' => 'fear ag rith: ton cnis dorcha, aghaidh ar dheis',
     '🫱🏻‍🫲🏼' => 'croitheadh lámh: ton cnis geal, ton cnis mheánach-gheal',
     '🫱🏻‍🫲🏽' => 'croitheadh lámh: ton cnis geal, ton cnis meánach',
     '🫱🏻‍🫲🏾' => 'croitheadh lámh: ton cnis geal, ton cnis meándorcha',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'croitheadh lámh: ton cnis dorcha, ton cnis mheánach-gheal',
     '🫱🏿‍🫲🏽' => 'croitheadh lámh: ton cnis dorcha, ton cnis meánach',
     '🫱🏿‍🫲🏾' => 'croitheadh lámh: ton cnis dorcha, ton cnis meándorcha',
-    '🚶‍♀‍➡' => 'bean ag siúl aghaidh ar dheis',
-    '🚶‍♂‍➡' => 'fear ag siúl aghaidh ar dheis',
-    '🧎‍♀‍➡' => 'bean ar a glúine aghaidh ar dheis',
-    '🧎‍♂‍➡' => 'fear ar a ghlúine aghaidh ar dheis',
-    '🧑‍🦯‍➡' => 'duine le cána aghaidh ar dheis',
-    '👨‍🦯‍➡' => 'fear le cána aghaidh ar dheis',
-    '👩‍🦯‍➡' => 'bean le cána aghaidh ar dheis',
-    '🧑‍🦼‍➡' => 'duine i gcathaoir rothaí innealta aghaidh ar dheis',
-    '👨‍🦼‍➡' => 'fear i cathaoir rothaí innealta aghaidh ar dheis',
-    '👩‍🦼‍➡' => 'bean i gcathaoir rothaí innealta aghaidh ar dheis',
-    '🧑‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👨‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '👩‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe aghaidh ar dheis',
-    '🏃‍♀‍➡' => 'bean ag rith aghaidh ar dheis',
-    '🏃‍♂‍➡' => 'fear ag rith aghaidh ar dheis',
+    '🚶‍♀‍➡' => 'bean ag siúl: aghaidh ar dheis',
+    '🚶‍♂‍➡' => 'fear ag siúl: aghaidh ar dheis',
+    '🧎‍♀‍➡' => 'bean ar a glúine: aghaidh ar dheis',
+    '🧎‍♂‍➡' => 'fear ar a ghlúine: aghaidh ar dheis',
+    '🧑‍🦯‍➡' => 'duine le cána bán: aghaidh ar dheis',
+    '👨‍🦯‍➡' => 'fear le cána bán: aghaidh ar dheis',
+    '👩‍🦯‍➡' => 'bean le cána bán: aghaidh ar dheis',
+    '🧑‍🦼‍➡' => 'duine i gcathaoir rothaí innealta: aghaidh ar dheis',
+    '👨‍🦼‍➡' => 'fear i cathaoir rothaí innealta: aghaidh ar dheis',
+    '👩‍🦼‍➡' => 'bean i gcathaoir rothaí innealta: aghaidh ar dheis',
+    '🧑‍🦽‍➡' => 'duine i gcathaoir rothaí láimhe: aghaidh ar dheis',
+    '👨‍🦽‍➡' => 'fear i gcathaoir rothaí láimhe: aghaidh ar dheis',
+    '👩‍🦽‍➡' => 'bean i gcathaoir rothaí láimhe: aghaidh ar dheis',
+    '🏃‍♀‍➡' => 'bean ag rith: aghaidh ar dheis',
+    '🏃‍♂‍➡' => 'fear ag rith: aghaidh ar dheis',
     '👩‍❤‍👨' => 'lanúin le croí: bean, fear',
     '👨‍❤‍👨' => 'lanúin le croí: fear, fear',
     '👩‍❤‍👩' => 'lanúin le croí: bean, bean',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'aosach: ton cnis meánach, maol',
     '🧑🏾‍🦲' => 'aosach: ton cnis meándorcha, maol',
     '🧑🏿‍🦲' => 'aosach: ton cnis dorcha, maol',
+    '🧑🏻‍🩰' => 'damhsóir bailé: ton cnis geal',
+    '🧑🏼‍🩰' => 'damhsóir bailé: ton cnis mheánach-gheal',
+    '🧑🏽‍🩰' => 'damhsóir bailé: ton cnis meánach',
+    '🧑🏾‍🩰' => 'damhsóir bailé: ton cnis meándorcha',
+    '🧑🏿‍🩰' => 'damhsóir bailé: ton cnis dorcha',
     '🧔🏻‍♂' => 'fear: ton cnis geal, feasóg',
     '🧔🏼‍♂' => 'fear: ton cnis mheánach-gheal, feasóg',
     '🧔🏽‍♂' => 'fear: ton cnis meánach, feasóg',
@@ -925,11 +1050,11 @@
     '🧑🏽‍🍼' => 'duine ag beathú linbh: ton cnis meánach',
     '🧑🏾‍🍼' => 'duine ag beathú linbh: ton cnis meándorcha',
     '🧑🏿‍🍼' => 'duine ag beathú linbh: ton cnis dorcha',
-    '🧑🏻‍🎄' => 'Saintí: ton cnis geal',
-    '🧑🏼‍🎄' => 'Saintí: ton cnis mheánach-gheal',
-    '🧑🏽‍🎄' => 'Saintí: ton cnis meánach',
-    '🧑🏾‍🎄' => 'Saintí: ton cnis meándorcha',
-    '🧑🏿‍🎄' => 'Saintí: ton cnis dorcha',
+    '🧑🏻‍🎄' => 'Bean Shaintí: ton cnis geal',
+    '🧑🏼‍🎄' => 'Bean Shaintí: ton cnis mheánach-gheal',
+    '🧑🏽‍🎄' => 'Bean Shaintí: ton cnis meánach',
+    '🧑🏾‍🎄' => 'Bean Shaintí: ton cnis meándorcha',
+    '🧑🏿‍🎄' => 'Bean Shaintí: ton cnis dorcha',
     '🦸🏻‍♂' => 'fear-sárlaoch: ton cnis geal',
     '🦸🏼‍♂' => 'fear-sárlaoch: ton cnis mheánach-gheal',
     '🦸🏽‍♂' => 'fear-sárlaoch: ton cnis meánach',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'bean ag siúl: ton cnis meánach',
     '🚶🏾‍♀' => 'bean ag siúl: ton cnis meándorcha',
     '🚶🏿‍♀' => 'bean ag siúl: ton cnis dorcha',
-    '🚶🏻‍➡' => 'coisí aghaidh ar dheis',
-    '🚶🏼‍➡' => 'coisí aghaidh ar dheis',
-    '🚶🏽‍➡' => 'coisí aghaidh ar dheis',
-    '🚶🏾‍➡' => 'coisí aghaidh ar dheis',
-    '🚶🏿‍➡' => 'coisí aghaidh ar dheis',
+    '🚶🏻‍➡' => 'coisí: ton cnis geal, aghaidh ar dheis',
+    '🚶🏼‍➡' => 'coisí: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🚶🏽‍➡' => 'coisí: ton cnis meánach, aghaidh ar dheis',
+    '🚶🏾‍➡' => 'coisí: ton cnis meándorcha, aghaidh ar dheis',
+    '🚶🏿‍➡' => 'coisí: ton cnis dorcha, aghaidh ar dheis',
     '🧍🏻‍♂' => 'fear ina sheasamh: ton cnis geal',
     '🧍🏼‍♂' => 'fear ina sheasamh: ton cnis mheánach-gheal',
     '🧍🏽‍♂' => 'fear ina sheasamh: ton cnis meánach',
@@ -1055,26 +1180,26 @@
     '🧎🏽‍♀' => 'bean ar a glúine: ton cnis meánach',
     '🧎🏾‍♀' => 'bean ar a glúine: ton cnis meándorcha',
     '🧎🏿‍♀' => 'bean ar a glúine: ton cnis dorcha',
-    '🧎🏻‍➡' => 'duine ar a ghlúine aghaidh ar dheis',
-    '🧎🏼‍➡' => 'duine ar a ghlúine aghaidh ar dheis',
-    '🧎🏽‍➡' => 'duine ar a ghlúine aghaidh ar dheis',
-    '🧎🏾‍➡' => 'duine ar a ghlúine aghaidh ar dheis',
-    '🧎🏿‍➡' => 'duine ar a ghlúine aghaidh ar dheis',
-    '🧑🏻‍🦯' => 'duine le cána: ton cnis geal',
-    '🧑🏼‍🦯' => 'duine le cána: ton cnis mheánach-gheal',
-    '🧑🏽‍🦯' => 'duine le cána: ton cnis meánach',
-    '🧑🏾‍🦯' => 'duine le cána: ton cnis meándorcha',
-    '🧑🏿‍🦯' => 'duine le cána: ton cnis dorcha',
-    '👨🏻‍🦯' => 'fear le cána: ton cnis geal',
-    '👨🏼‍🦯' => 'fear le cána: ton cnis mheánach-gheal',
-    '👨🏽‍🦯' => 'fear le cána: ton cnis meánach',
-    '👨🏾‍🦯' => 'fear le cána: ton cnis meándorcha',
-    '👨🏿‍🦯' => 'fear le cána: ton cnis dorcha',
-    '👩🏻‍🦯' => 'bean le cána: ton cnis geal',
-    '👩🏼‍🦯' => 'bean le cána: ton cnis mheánach-gheal',
-    '👩🏽‍🦯' => 'bean le cána: ton cnis meánach',
-    '👩🏾‍🦯' => 'bean le cána: ton cnis meándorcha',
-    '👩🏿‍🦯' => 'bean le cána: ton cnis dorcha',
+    '🧎🏻‍➡' => 'duine ar a ghlúine: ton cnis geal, aghaidh ar dheis',
+    '🧎🏼‍➡' => 'duine ar a ghlúine: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🧎🏽‍➡' => 'duine ar a ghlúine: ton cnis meánach, aghaidh ar dheis',
+    '🧎🏾‍➡' => 'duine ar a ghlúine: ton cnis meándorcha, aghaidh ar dheis',
+    '🧎🏿‍➡' => 'duine ar a ghlúine: ton cnis dorcha, aghaidh ar dheis',
+    '🧑🏻‍🦯' => 'duine le cána bán: ton cnis geal',
+    '🧑🏼‍🦯' => 'duine le cána bán: ton cnis mheánach-gheal',
+    '🧑🏽‍🦯' => 'duine le cána bán: ton cnis meánach',
+    '🧑🏾‍🦯' => 'duine le cána bán: ton cnis meándorcha',
+    '🧑🏿‍🦯' => 'duine le cána bán: ton cnis dorcha',
+    '👨🏻‍🦯' => 'fear le cána bán: ton cnis geal',
+    '👨🏼‍🦯' => 'fear le cána bán: ton cnis mheánach-gheal',
+    '👨🏽‍🦯' => 'fear le cána bán: ton cnis meánach',
+    '👨🏾‍🦯' => 'fear le cána bán: ton cnis meándorcha',
+    '👨🏿‍🦯' => 'fear le cána bán: ton cnis dorcha',
+    '👩🏻‍🦯' => 'bean le cána bán: ton cnis geal',
+    '👩🏼‍🦯' => 'bean le cána bán: ton cnis mheánach-gheal',
+    '👩🏽‍🦯' => 'bean le cána bán: ton cnis meánach',
+    '👩🏾‍🦯' => 'bean le cána bán: ton cnis meándorcha',
+    '👩🏿‍🦯' => 'bean le cána bán: ton cnis dorcha',
     '🧑🏻‍🦼' => 'duine i gcathaoir rothaí innealta: ton cnis geal',
     '🧑🏼‍🦼' => 'duine i gcathaoir rothaí innealta: ton cnis mheánach-gheal',
     '🧑🏽‍🦼' => 'duine i gcathaoir rothaí innealta: ton cnis meánach',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'bean ag rith: ton cnis meánach',
     '🏃🏾‍♀' => 'bean ag rith: ton cnis meándorcha',
     '🏃🏿‍♀' => 'bean ag rith: ton cnis dorcha',
-    '🏃🏻‍➡' => 'reathaí aghaidh ar dheis',
-    '🏃🏼‍➡' => 'reathaí aghaidh ar dheis',
-    '🏃🏽‍➡' => 'reathaí aghaidh ar dheis',
-    '🏃🏾‍➡' => 'reathaí aghaidh ar dheis',
-    '🏃🏿‍➡' => 'reathaí aghaidh ar dheis',
+    '🏃🏻‍➡' => 'reathaí: ton cnis geal, aghaidh ar dheis',
+    '🏃🏼‍➡' => 'reathaí: ton cnis mheánach-gheal, aghaidh ar dheis',
+    '🏃🏽‍➡' => 'reathaí: ton cnis meánach, aghaidh ar dheis',
+    '🏃🏾‍➡' => 'reathaí: ton cnis meándorcha, aghaidh ar dheis',
+    '🏃🏿‍➡' => 'reathaí: ton cnis dorcha, aghaidh ar dheis',
+    '👯🏻‍♀' => 'mná le cluasa coiníní orthu: ton cnis geal',
+    '👯🏼‍♀' => 'mná le cluasa coiníní orthu: ton cnis mheánach-gheal',
+    '👯🏽‍♀' => 'mná le cluasa coiníní orthu: ton cnis meánach',
+    '👯🏾‍♀' => 'mná le cluasa coiníní orthu: ton cnis meándorcha',
+    '👯🏿‍♀' => 'mná le cluasa coiníní orthu: ton cnis dorcha',
+    '👯🏻‍♂' => 'fir le cluasa coiníní orthu: ton cnis geal',
+    '👯🏼‍♂' => 'fir le cluasa coiníní orthu: ton cnis mheánach-gheal',
+    '👯🏽‍♂' => 'fir le cluasa coiníní orthu: ton cnis meánach',
+    '👯🏾‍♂' => 'fir le cluasa coiníní orthu: ton cnis meándorcha',
+    '👯🏿‍♂' => 'fir le cluasa coiníní orthu: ton cnis dorcha',
     '🧖🏻‍♂' => 'fear i seomra gaile: ton cnis geal',
     '🧖🏼‍♂' => 'fear i seomra gaile: ton cnis mheánach-gheal',
     '🧖🏽‍♂' => 'fear i seomra gaile: ton cnis meánach',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'bean ag rothchasadh: ton cnis meánach',
     '🤸🏾‍♀' => 'bean ag rothchasadh: ton cnis meándorcha',
     '🤸🏿‍♀' => 'bean ag rothchasadh: ton cnis dorcha',
+    '🤼🏻‍♀' => 'mná ag coraíocht: ton cnis geal',
+    '🤼🏼‍♀' => 'mná ag coraíocht: ton cnis mheánach-gheal',
+    '🤼🏽‍♀' => 'mná ag coraíocht: ton cnis meánach',
+    '🤼🏾‍♀' => 'mná ag coraíocht: ton cnis meándorcha',
+    '🤼🏿‍♀' => 'mná ag coraíocht: ton cnis dorcha',
+    '🤼🏻‍♂' => 'fir ag coraíocht: ton cnis geal',
+    '🤼🏼‍♂' => 'fir ag coraíocht: ton cnis mheánach-gheal',
+    '🤼🏽‍♂' => 'fir ag coraíocht: ton cnis meánach',
+    '🤼🏾‍♂' => 'fir ag coraíocht: ton cnis meándorcha',
+    '🤼🏿‍♂' => 'fir ag coraíocht: ton cnis dorcha',
     '🤽🏻‍♂' => 'fear ag imirt póló uisce: ton cnis geal',
     '🤽🏼‍♂' => 'fear ag imirt póló uisce: ton cnis mheánach-gheal',
     '🤽🏽‍♂' => 'fear ag imirt póló uisce: ton cnis meánach',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'bean: gruaig chatach',
     '👩‍🦳' => 'bean: gruaig bhán',
     '👩‍🦲' => 'bean: maol',
-    '🚶‍➡' => 'coisí aghaidh ar dheis',
-    '🧎‍➡' => 'duine ar a ghlúine aghaidh ar dheis',
-    '🏃‍➡' => 'reathaí aghaidh ar dheis',
+    '🚶‍➡' => 'coisí: aghaidh ar dheis',
+    '🧎‍➡' => 'duine ar a ghlúine: aghaidh ar dheis',
+    '🏃‍➡' => 'reathaí: aghaidh ar dheis',
     '👨‍👦' => 'teaghlach: fear, buachaill',
     '👨‍👧' => 'teaghlach: fear, cailín',
     '👩‍👦' => 'teaghlach: bean, buachaill',
@@ -1294,7 +1439,7 @@
     '🙂‍↕' => 'croitheadh ceann go hingearach',
     '😵‍💫' => 'aghaidh le súile bíse',
     '❤‍🔥' => 'croí trí thine',
-    '❤‍🩹' => 'croí deisithe',
+    '❤‍🩹' => 'croí atá ag dul i bhfeabhas',
     '👁‍🗨' => 'súil i mbolgán cainte',
     '🧔‍♂' => 'fear: feasóg',
     '👱‍♂' => 'fear: gruaig fhionn',
@@ -1385,7 +1530,7 @@
     '👩‍🍼' => 'bean ag beathú linbh',
     '👨‍🍼' => 'fear ag beathú linbh',
     '🧑‍🍼' => 'duine ag beathú linbh',
-    '🧑‍🎄' => 'Saintí',
+    '🧑‍🎄' => 'Bean Shaintí',
     '🦸‍♂' => 'fear-sárlaoch',
     '🦸‍♀' => 'ban-sárlaoch',
     '🦹‍♂' => 'fear-dhrochdhuine',
@@ -1414,9 +1559,9 @@
     '🧍‍♀' => 'bean ina seasamh',
     '🧎‍♂' => 'fear ar a ghlúine',
     '🧎‍♀' => 'bean ar a glúine',
-    '🧑‍🦯' => 'duine le cána',
-    '👨‍🦯' => 'fear le cána',
-    '👩‍🦯' => 'bean le cána',
+    '🧑‍🦯' => 'duine le cána bán',
+    '👨‍🦯' => 'fear le cána bán',
+    '👩‍🦯' => 'bean le cána bán',
     '🧑‍🦼' => 'duine i gcathaoir rothaí innealta',
     '👨‍🦼' => 'fear i cathaoir rothaí innealta',
     '👩‍🦼' => 'bean i gcathaoir rothaí innealta',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'bean i gcathaoir rothaí láimhe',
     '🏃‍♂' => 'fear ag rith',
     '🏃‍♀' => 'bean ag rith',
+    '🧑‍🩰' => 'damhsóir bailé',
     '👯‍♂' => 'fir le cluasa coiníní orthu',
     '👯‍♀' => 'mná le cluasa coiníní orthu',
     '🧖‍♂' => 'fear i seomra gaile',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'fear i gculaith gnó ar eadarbhuas: ton cnis meánach',
     '🕴🏾' => 'fear i gculaith gnó ar eadarbhuas: ton cnis meándorcha',
     '🕴🏿' => 'fear i gculaith gnó ar eadarbhuas: ton cnis dorcha',
+    '👯🏻' => 'daoine le cluasa coiníní orthu: ton cnis geal',
+    '👯🏼' => 'daoine le cluasa coiníní orthu: ton cnis mheánach-gheal',
+    '👯🏽' => 'daoine le cluasa coiníní orthu: ton cnis meánach',
+    '👯🏾' => 'daoine le cluasa coiníní orthu: ton cnis meándorcha',
+    '👯🏿' => 'daoine le cluasa coiníní orthu: ton cnis dorcha',
     '🧖🏻' => 'duine i seomra gaile: ton cnis geal',
     '🧖🏼' => 'duine i seomra gaile: ton cnis mheánach-gheal',
     '🧖🏽' => 'duine i seomra gaile: ton cnis meánach',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'rothchasadh: ton cnis meánach',
     '🤸🏾' => 'rothchasadh: ton cnis meándorcha',
     '🤸🏿' => 'rothchasadh: ton cnis dorcha',
+    '🤼🏻' => 'coraíocht: ton cnis geal',
+    '🤼🏼' => 'coraíocht: ton cnis mheánach-gheal',
+    '🤼🏽' => 'coraíocht: ton cnis meánach',
+    '🤼🏾' => 'coraíocht: ton cnis meándorcha',
+    '🤼🏿' => 'coraíocht: ton cnis dorcha',
     '🤽🏻' => 'póló uisce: ton cnis geal',
     '🤽🏼' => 'póló uisce: ton cnis mheánach-gheal',
     '🤽🏽' => 'póló uisce: ton cnis meánach',
@@ -2170,16 +2326,17 @@
     '🇨🇫' => 'bratach: Poblacht na hAfraice Láir',
     '🇨🇬' => 'bratach: Congó-Brazzaville',
     '🇨🇭' => 'bratach: an Eilvéis',
-    '🇨🇮' => 'bratach: An Cósta Eabhair',
+    '🇨🇮' => 'bratach: Côte d’Ivoire',
     '🇨🇰' => 'bratach: Oileáin Cook',
     '🇨🇱' => 'bratach: an tSile',
     '🇨🇲' => 'bratach: Camarún',
     '🇨🇳' => 'bratach: an tSín',
     '🇨🇴' => 'bratach: an Cholóim',
     '🇨🇵' => 'bratach: Oileán Clipperton',
+    '🇨🇶' => 'bratach: an tSairc',
     '🇨🇷' => 'bratach: Cósta Ríce',
     '🇨🇺' => 'bratach: Cúba',
-    '🇨🇻' => 'bratach: Rinn Verde',
+    '🇨🇻' => 'bratach: Poblacht Cabo Verde',
     '🇨🇼' => 'bratach: Cúrasó',
     '🇨🇽' => 'bratach: Oileán na Nollag',
     '🇨🇾' => 'bratach: an Chipir',
@@ -2190,12 +2347,12 @@
     '🇩🇰' => 'bratach: an Danmhairg',
     '🇩🇲' => 'bratach: Doiminice',
     '🇩🇴' => 'bratach: an Phoblacht Dhoiminiceach',
-    '🇩🇿' => 'bratach: An Ailgéir',
+    '🇩🇿' => 'bratach: an Ailgéir',
     '🇪🇦' => 'bratach: Ceuta agus Melilla',
     '🇪🇨' => 'bratach: Eacuadór',
     '🇪🇪' => 'bratach: an Eastóin',
-    '🇪🇬' => 'bratach: An Éigipt',
-    '🇪🇭' => 'bratach: An Sahára Thiar',
+    '🇪🇬' => 'bratach: an Éigipt',
+    '🇪🇭' => 'bratach: an Sahára Thiar',
     '🇪🇷' => 'bratach: an Eiritré',
     '🇪🇸' => 'bratach: an Spáinn',
     '🇪🇹' => 'bratach: an Aetóip',
@@ -2215,8 +2372,8 @@
     '🇬🇭' => 'bratach: Gána',
     '🇬🇮' => 'bratach: Giobráltar',
     '🇬🇱' => 'bratach: an Ghraonlainn',
-    '🇬🇲' => 'bratach: An Ghaimbia',
-    '🇬🇳' => 'bratach: An Ghuine',
+    '🇬🇲' => 'bratach: an Ghaimbia',
+    '🇬🇳' => 'bratach: an Ghuine',
     '🇬🇵' => 'bratach: Guadalúip',
     '🇬🇶' => 'bratach: an Ghuine Mheánchiorclach',
     '🇬🇷' => 'bratach: an Ghréig',
@@ -2231,7 +2388,7 @@
     '🇭🇷' => 'bratach: an Chróit',
     '🇭🇹' => 'bratach: Háítí',
     '🇭🇺' => 'bratach: an Ungáir',
-    '🇮🇨' => 'bratach: Na hOileáin Chanáracha',
+    '🇮🇨' => 'bratach: na hOileáin Chanáracha',
     '🇮🇩' => 'bratach: an Indinéis',
     '🇮🇪' => 'bratach: Éire',
     '🇮🇱' => 'bratach: Iosrael',
@@ -2262,12 +2419,12 @@
     '🇱🇨' => 'bratach: Saint Lucia',
     '🇱🇮' => 'bratach: Lichtinstéin',
     '🇱🇰' => 'bratach: Srí Lanca',
-    '🇱🇷' => 'bratach: An Libéir',
+    '🇱🇷' => 'bratach: an Libéir',
     '🇱🇸' => 'bratach: Leosóta',
     '🇱🇹' => 'bratach: an Liotuáin',
     '🇱🇺' => 'bratach: Lucsamburg',
     '🇱🇻' => 'bratach: an Laitvia',
-    '🇱🇾' => 'bratach: An Libia',
+    '🇱🇾' => 'bratach: an Libia',
     '🇲🇦' => 'bratach: Maracó',
     '🇲🇨' => 'bratach: Monacó',
     '🇲🇩' => 'bratach: an Mholdóiv',
@@ -2282,7 +2439,7 @@
     '🇲🇴' => 'bratach: Sainréigiún Riaracháin Macao, Daonphoblacht na Síne',
     '🇲🇵' => 'bratach: Na hOileáin Mháirianacha Thuaidh',
     '🇲🇶' => 'bratach: Martinique',
-    '🇲🇷' => 'bratach: An Mháratái',
+    '🇲🇷' => 'bratach: an Mháratáin',
     '🇲🇸' => 'bratach: Montsarat',
     '🇲🇹' => 'bratach: Málta',
     '🇲🇺' => 'bratach: Oileán Mhuirís',
@@ -2293,9 +2450,9 @@
     '🇲🇿' => 'bratach: Mósaimbíc',
     '🇳🇦' => 'bratach: an Namaib',
     '🇳🇨' => 'bratach: an Nua-Chaladóin',
-    '🇳🇪' => 'bratach: An Nígir',
+    '🇳🇪' => 'bratach: an Nígir',
     '🇳🇫' => 'bratach: Oileán Norfolk',
-    '🇳🇬' => 'bratach: An Nigéir',
+    '🇳🇬' => 'bratach: an Nigéir',
     '🇳🇮' => 'bratach: Nicearagua',
     '🇳🇱' => 'bratach: an Ísiltír',
     '🇳🇴' => 'bratach: an Iorua',
@@ -2327,7 +2484,7 @@
     '🇸🇦' => 'bratach: an Araib Shádach',
     '🇸🇧' => 'bratach: Oileáin Sholaimh',
     '🇸🇨' => 'bratach: na Séiséil',
-    '🇸🇩' => 'bratach: An tSúdáin',
+    '🇸🇩' => 'bratach: an tSúdáin',
     '🇸🇪' => 'bratach: an tSualainn',
     '🇸🇬' => 'bratach: Singeapór',
     '🇸🇭' => 'bratach: San Héilin',
@@ -2336,7 +2493,7 @@
     '🇸🇰' => 'bratach: an tSlóvaic',
     '🇸🇱' => 'bratach: Siarra Leon',
     '🇸🇲' => 'bratach: San Mairíne',
-    '🇸🇳' => 'bratach: An tSeineagáil',
+    '🇸🇳' => 'bratach: an tSeineagáil',
     '🇸🇴' => 'bratach: an tSomáil',
     '🇸🇷' => 'bratach: Suranam',
     '🇸🇸' => 'bratach: an tSúdáin Theas',
@@ -2344,7 +2501,7 @@
     '🇸🇻' => 'bratach: An tSalvadóir',
     '🇸🇽' => 'bratach: Sint Maarten',
     '🇸🇾' => 'bratach: an tSiria',
-    '🇸🇿' => 'bratach: eSuaitíní',
+    '🇸🇿' => 'bratach: Esuaitíní',
     '🇹🇦' => 'bratach: Tristan da Cunha',
     '🇹🇨' => 'bratach: Oileáin na dTurcach agus Caicos',
     '🇹🇩' => 'bratach: Sead',
@@ -2355,7 +2512,7 @@
     '🇹🇰' => 'bratach: Tócalá',
     '🇹🇱' => 'bratach: Tíomór Thoir',
     '🇹🇲' => 'bratach: an Tuircméanastáin',
-    '🇹🇳' => 'bratach: An Tuinéis',
+    '🇹🇳' => 'bratach: an Tuinéis',
     '🇹🇴' => 'bratach: Tonga',
     '🇹🇷' => 'bratach: an Tuirc',
     '🇹🇹' => 'bratach: Oileán na Tríonóide agus Tobága',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ton cnis meánach',
     '🏾' => 'ton cnis meándorcha',
     '🏿' => 'ton cnis dorcha',
-    '🪉' => 'cláirseach',
-    '🪏' => 'sluasaid',
-    '🪾' => 'crann lom',
-    '🫆' => 'méarlorg',
-    '🫜' => 'glasra fréimhe',
-    '🫟' => 'stealladh',
-    '🫩' => 'aghaidh le sprochaillí faoi na súile',
     '😀' => 'straoiseog ghealgháireach',
     '😃' => 'straoiseog ag gáire le súile móra',
     '😄' => 'straoiseog ag gáire le súile gealgháireacha uirthi',
@@ -2426,7 +2576,7 @@
     '🤪' => 'straoiseog chraiceáilte',
     '😝' => 'straoiseog le teanga amach agus súile dúnta',
     '🤑' => 'straoiseog le hairgead ina béal',
-    '🤗' => 'straoiseog ag tabhairt barróige',
+    '🤗' => 'aghaidh ghealgháireach agus na lámha oscailte',
     '🤭' => 'straoiseog lena lámh ar a béal',
     '🫢' => 'straoiseog le súile oscailte agus lámh ar an mbéal',
     '🫣' => 'straoiseog le súil ag píceáil',
@@ -2450,6 +2600,7 @@
     '😪' => 'straoiseog chodlatach',
     '🤤' => 'straoiseog ag prislíneacht',
     '😴' => 'straoiseog ina codladh',
+    '🫩' => 'aghaidh le sprochaillí faoi na súile',
     '😷' => 'straoiseog le masc leighis',
     '🤒' => 'straoiseog le teirmiméadar',
     '🤕' => 'straoiseog le bindealán ar a ceann',
@@ -2459,7 +2610,7 @@
     '🥵' => 'straoiseog the',
     '🥶' => 'straoiseog fhuar',
     '🥴' => 'straoiseog trína chéile',
-    '😵' => 'straoiseog mheadhránach',
+    '😵' => 'aghaidh a bhfuil crosa curtha trína súile',
     '🤯' => 'straoiseog lena ceann ag pléasadh',
     '🤠' => 'straoiseog le hata buachaill bó',
     '🥳' => 'straoiseog chóisireachta',
@@ -2476,6 +2627,7 @@
     '😯' => 'straoiseog ina tost',
     '😲' => 'straoiseog iontais',
     '😳' => 'straoiseog dhearg',
+    '🫪' => 'aghaidh anchumtha',
     '🥺' => 'straoiseog impíoch',
     '🥹' => 'straoiseog ag coinneáil siar na deora',
     '😦' => 'straoiseag ghruama le béal oscailte',
@@ -2494,7 +2646,7 @@
     '😫' => 'straoiseog thuirseach',
     '🥱' => 'aghaidh ag méanfach',
     '😤' => 'straoiseog le gal ón tsrón',
-    '😡' => 'straoiseog le puisín uirthi',
+    '😡' => 'aghaidh fheargach',
     '😠' => 'straoiseog fheargach',
     '🤬' => 'straoiseog le siombailí ar an mbéal',
     '😈' => 'straoiseog ag gáire le hadharca',
@@ -2547,6 +2699,7 @@
     '💋' => 'marc póg',
     '💯' => 'scór iomlán',
     '💢' => 'siombail feirge',
+    '🫯' => 'scamall troda',
     '💥' => 'pléasc',
     '💫' => 'meadhrán',
     '💦' => 'broainíní allais',
@@ -2556,7 +2709,7 @@
     '🗨' => 'bolgán cainte ar chlé',
     '🗯' => 'bolgán feirge ar dheis',
     '💭' => 'bolgán smaointe',
-    '💤' => 'codladh',
+    '💤' => 'ZZZ',
     '👋' => 'lámh ag croitheadh',
     '🤚' => 'cúl láimhe in airde',
     '🖐' => 'lámh le méara spréite',
@@ -2670,6 +2823,7 @@
     '🧞' => 'ginid',
     '🧟' => 'zombaí',
     '🧌' => 'troll',
+    '🫈' => 'neach gruagach',
     '💆' => 'duine ag fáil suathaireachta',
     '💇' => 'duine ag fáil bearradh gruaige',
     '🚶' => 'coisí',
@@ -2713,6 +2867,7 @@
     '🫂' => 'daoine ag tabhairt barróige',
     '👪' => 'teaghlach',
     '👣' => 'loirg choise',
+    '🫆' => 'méarlorg',
     '🦰' => 'gruaig rua',
     '🦱' => 'gruaig chatach',
     '🦳' => 'gruaig bhán',
@@ -2812,6 +2967,7 @@
     '🐳' => 'míol mór ag séideadh',
     '🐋' => 'míol mór',
     '🐬' => 'deilf',
+    '🫍' => 'cráin dhubh',
     '🦭' => 'rón',
     '🐟' => 'iasc',
     '🐠' => 'iasc teochreasa',
@@ -2821,6 +2977,11 @@
     '🐚' => 'sliogán',
     '🪸' => 'coiréal',
     '🪼' => 'smugairle róin',
+    '🦀' => 'portán',
+    '🦞' => 'gliomach',
+    '🦐' => 'ribe róibéis',
+    '🦑' => 'scuid',
+    '🦪' => 'oisre',
     '🐌' => 'seilide',
     '🦋' => 'féileacán',
     '🐛' => 'míol',
@@ -2865,6 +3026,7 @@
     '🪹' => 'nead fholamh',
     '🪺' => 'nead le huibheacha',
     '🍄' => 'beacán',
+    '🪾' => 'crann lom',
     '🍇' => 'caora fíniúna',
     '🍈' => 'mealbhacán',
     '🍉' => 'mealbhacán uisce',
@@ -2901,6 +3063,7 @@
     '🌰' => 'cnó capaill',
     '🫚' => 'sinséar fréimhe',
     '🫛' => 'faighneog pise',
+    '🫜' => 'glasra fréimhe',
     '🍞' => 'arán',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2952,11 +3115,6 @@
     '🥟' => 'domplagán',
     '🥠' => 'brioscán feasa',
     '🥡' => 'bosca beir leat',
-    '🦀' => 'portán',
-    '🦞' => 'gliomach',
-    '🦐' => 'ribe róibéis',
-    '🦑' => 'scuid',
-    '🦪' => 'oisre',
     '🍦' => 'uachtar reoite coipthe',
     '🍧' => 'oighear bearrtha',
     '🍨' => 'uachtar reoite',
@@ -3007,6 +3165,7 @@
     '🧭' => 'compás',
     '🏔' => 'sliabh le sneachta',
     '⛰' => 'sliabh',
+    '🛘' => 'sciorradh talún',
     '🌋' => 'bolcán',
     '🗻' => 'Sliabh Fuji',
     '🏕' => 'ag campáil',
@@ -3367,16 +3526,18 @@
     '🎧' => 'cluasáin',
     '📻' => 'raidió',
     '🎷' => 'sacsafón',
+    '🎺' => 'trumpa',
+    '🪊' => 'trombón',
     '🪗' => 'bosca ceoil',
     '🎸' => 'giotár',
     '🎹' => 'pianó',
-    '🎺' => 'trumpa',
     '🎻' => 'veidhlín',
     '🪕' => 'bainseó',
     '🥁' => 'druma',
     '🪘' => 'druma fada',
     '🪇' => 'maracas',
     '🪈' => 'fliúit',
+    '🪉' => 'cláirseach',
     '📱' => 'guthán',
     '📲' => 'guthán le saighead',
     '☎' => 'teileafón',
@@ -3430,8 +3591,9 @@
     '📑' => 'clibeanna leabharmhairc',
     '🔖' => 'leabharmharc',
     '🏷' => 'lipéad',
-    '💰' => 'mála airgead',
     '🪙' => 'bonn',
+    '💰' => 'mála airgead',
+    '🪎' => 'cófra taisce',
     '💴' => 'nóta bainc yen',
     '💵' => 'nóta bainc dollair',
     '💶' => 'nóta bainc euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'bosca uirlisí',
     '🧲' => 'maighnéad',
     '🪜' => 'dréimire',
+    '🪏' => 'sluasaid',
     '⚗' => 'leamóg',
     '🧪' => 'triaileadán',
     '🧫' => 'mias Petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'réalta le hocht bpointe',
     '❇' => 'gealán',
     '™' => 'comhartha trádmhairc',
+    '🫟' => 'stealladh',
     '🔠' => 'ceannlitreacha Laidineacha ionchuir',
     '🔡' => 'mionlitreacha Laidineacha ionchuir',
     '🔢' => 'uimhreacha ionchuir',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gd.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'pòg: boireannach, boireannach, tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
     '👩🏿‍❤‍💋‍👩🏾' => 'pòg: boireannach, boireannach, tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
     '👩🏿‍❤‍💋‍👩🏿' => 'pòg: boireannach, boireannach ’s tòna doilleir a’ chraicinn',
+    '🧑🏻‍🫯‍🧑🏼' => 'daoine ri gleacadh: tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '🧑🏻‍🫯‍🧑🏽' => 'daoine ri gleacadh: tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '🧑🏻‍🫯‍🧑🏾' => 'daoine ri gleacadh: tòna soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '🧑🏻‍🫯‍🧑🏿' => 'daoine ri gleacadh: tòna soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '🧑🏼‍🫯‍🧑🏻' => 'daoine ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '🧑🏼‍🫯‍🧑🏽' => 'daoine ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '🧑🏼‍🫯‍🧑🏾' => 'daoine ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '🧑🏼‍🫯‍🧑🏿' => 'daoine ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '🧑🏽‍🫯‍🧑🏻' => 'daoine ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '🧑🏽‍🫯‍🧑🏼' => 'daoine ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '🧑🏽‍🫯‍🧑🏾' => 'daoine ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '🧑🏽‍🫯‍🧑🏿' => 'daoine ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '🧑🏾‍🫯‍🧑🏻' => 'daoine ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '🧑🏾‍🫯‍🧑🏼' => 'daoine ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '🧑🏾‍🫯‍🧑🏽' => 'daoine ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '🧑🏾‍🫯‍🧑🏿' => 'daoine ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '🧑🏿‍🫯‍🧑🏻' => 'daoine ri gleacadh: tòna doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '🧑🏿‍🫯‍🧑🏼' => 'daoine ri gleacadh: tòna doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '🧑🏿‍🫯‍🧑🏽' => 'daoine ri gleacadh: tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '🧑🏿‍🫯‍🧑🏾' => 'daoine ri gleacadh: tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
     '🧑🏻‍❤‍🧑🏼' => 'càraid le cridhe: inbheach, inbheach, tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
     '🧑🏻‍❤‍🧑🏽' => 'càraid le cridhe: inbheach, inbheach, tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
     '🧑🏻‍❤‍🧑🏾' => 'càraid le cridhe: inbheach, inbheach, tòna soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'càraid le cridhe: inbheach, inbheach, tòna doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
     '🧑🏿‍❤‍🧑🏽' => 'càraid le cridhe: inbheach, inbheach, tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
     '🧑🏿‍❤‍🧑🏾' => 'càraid le cridhe: inbheach, inbheach, tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '🧑🏻‍🐰‍🧑🏼' => 'daoine le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '🧑🏻‍🐰‍🧑🏽' => 'daoine le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '🧑🏻‍🐰‍🧑🏾' => 'daoine le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '🧑🏻‍🐰‍🧑🏿' => 'daoine le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '🧑🏼‍🐰‍🧑🏻' => 'daoine le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '🧑🏼‍🐰‍🧑🏽' => 'daoine le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '🧑🏼‍🐰‍🧑🏾' => 'daoine le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '🧑🏼‍🐰‍🧑🏿' => 'daoine le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '🧑🏽‍🐰‍🧑🏻' => 'daoine le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '🧑🏽‍🐰‍🧑🏼' => 'daoine le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '🧑🏽‍🐰‍🧑🏾' => 'daoine le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '🧑🏽‍🐰‍🧑🏿' => 'daoine le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '🧑🏾‍🐰‍🧑🏻' => 'daoine le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '🧑🏾‍🐰‍🧑🏼' => 'daoine le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '🧑🏾‍🐰‍🧑🏽' => 'daoine le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '🧑🏾‍🐰‍🧑🏿' => 'daoine le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '🧑🏿‍🐰‍🧑🏻' => 'daoine le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '🧑🏿‍🐰‍🧑🏼' => 'daoine le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '🧑🏿‍🐰‍🧑🏽' => 'daoine le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '🧑🏿‍🐰‍🧑🏾' => 'daoine le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👨🏻‍🫯‍👨🏼' => 'fireannaich ri gleacadh: tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👨🏻‍🫯‍👨🏽' => 'fireannaich ri gleacadh: tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👨🏻‍🫯‍👨🏾' => 'fireannaich ri gleacadh: tòna soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👨🏻‍🫯‍👨🏿' => 'fireannaich ri gleacadh: tòna soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👨🏼‍🫯‍👨🏻' => 'fireannaich ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👨🏼‍🫯‍👨🏽' => 'fireannaich ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👨🏼‍🫯‍👨🏾' => 'fireannaich ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👨🏼‍🫯‍👨🏿' => 'fireannaich ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👨🏽‍🫯‍👨🏻' => 'fireannaich ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👨🏽‍🫯‍👨🏼' => 'fireannaich ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👨🏽‍🫯‍👨🏾' => 'fireannaich ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👨🏽‍🫯‍👨🏿' => 'fireannaich ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👨🏾‍🫯‍👨🏻' => 'fireannaich ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👨🏾‍🫯‍👨🏼' => 'fireannaich ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👨🏾‍🫯‍👨🏽' => 'fireannaich ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👨🏾‍🫯‍👨🏿' => 'fireannaich ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👨🏿‍🫯‍👨🏻' => 'fireannaich ri gleacadh: tòna doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👨🏿‍🫯‍👨🏼' => 'fireannaich ri gleacadh: tòna doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👨🏿‍🫯‍👨🏽' => 'fireannaich ri gleacadh: tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👨🏿‍🫯‍👨🏾' => 'fireannaich ri gleacadh: tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
     '👨🏻‍❤‍👨🏻' => 'càraid le cridhe: duine, duine ’s tòna soilleir a’ chraicinn',
     '👨🏻‍❤‍👨🏼' => 'càraid le cridhe: duine, duine, tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
     '👨🏻‍❤‍👨🏽' => 'càraid le cridhe: duine, duine, tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'càraid le cridhe: duine, duine, tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
     '👨🏿‍❤‍👨🏾' => 'càraid le cridhe: duine, duine, tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
     '👨🏿‍❤‍👨🏿' => 'càraid le cridhe: duine, duine ’s tòna doilleir a’ chraicinn',
+    '👨🏻‍🐰‍👨🏼' => 'fireannaich le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👨🏻‍🐰‍👨🏽' => 'fireannaich le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👨🏻‍🐰‍👨🏾' => 'fireannaich le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👨🏻‍🐰‍👨🏿' => 'fireannaich le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👨🏼‍🐰‍👨🏻' => 'fireannaich le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👨🏼‍🐰‍👨🏽' => 'fireannaich le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👨🏼‍🐰‍👨🏾' => 'fireannaich le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👨🏼‍🐰‍👨🏿' => 'fireannaich le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👨🏽‍🐰‍👨🏻' => 'fireannaich le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👨🏽‍🐰‍👨🏼' => 'fireannaich le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👨🏽‍🐰‍👨🏾' => 'fireannaich le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👨🏽‍🐰‍👨🏿' => 'fireannaich le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👨🏾‍🐰‍👨🏻' => 'fireannaich le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👨🏾‍🐰‍👨🏼' => 'fireannaich le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👨🏾‍🐰‍👨🏽' => 'fireannaich le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👨🏾‍🐰‍👨🏿' => 'fireannaich le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👨🏿‍🐰‍👨🏻' => 'fireannaich le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👨🏿‍🐰‍👨🏼' => 'fireannaich le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👨🏿‍🐰‍👨🏽' => 'fireannaich le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👨🏿‍🐰‍👨🏾' => 'fireannaich le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👩🏻‍🫯‍👩🏼' => 'boireannaich ri gleacadh: tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👩🏻‍🫯‍👩🏽' => 'boireannaich ri gleacadh: tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👩🏻‍🫯‍👩🏾' => 'boireannaich ri gleacadh: tòna soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👩🏻‍🫯‍👩🏿' => 'boireannaich ri gleacadh: tòna soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👩🏼‍🫯‍👩🏻' => 'boireannaich ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👩🏼‍🫯‍👩🏽' => 'boireannaich ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👩🏼‍🫯‍👩🏾' => 'boireannaich ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👩🏼‍🫯‍👩🏿' => 'boireannaich ri gleacadh: tòna meadhanach soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👩🏽‍🫯‍👩🏻' => 'boireannaich ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👩🏽‍🫯‍👩🏼' => 'boireannaich ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👩🏽‍🫯‍👩🏾' => 'boireannaich ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👩🏽‍🫯‍👩🏿' => 'boireannaich ri gleacadh: tòna meadhanach a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👩🏾‍🫯‍👩🏻' => 'boireannaich ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👩🏾‍🫯‍👩🏼' => 'boireannaich ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👩🏾‍🫯‍👩🏽' => 'boireannaich ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👩🏾‍🫯‍👩🏿' => 'boireannaich ri gleacadh: tòna meadhanach doilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👩🏿‍🫯‍👩🏻' => 'boireannaich ri gleacadh: tòna doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👩🏿‍🫯‍👩🏼' => 'boireannaich ri gleacadh: tòna doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👩🏿‍🫯‍👩🏽' => 'boireannaich ri gleacadh: tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👩🏿‍🫯‍👩🏾' => 'boireannaich ri gleacadh: tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
     '👩🏻‍❤‍👨🏻' => 'càraid le cridhe: boireannach, duine ’s tòna soilleir a’ chraicinn',
     '👩🏻‍❤‍👨🏼' => 'càraid le cridhe: boireannach, duine, tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
     '👩🏻‍❤‍👨🏽' => 'càraid le cridhe: boireannach, duine, tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'càraid le cridhe: boireannach, boireannach, tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
     '👩🏿‍❤‍👩🏾' => 'càraid le cridhe: boireannach, boireannach, tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
     '👩🏿‍❤‍👩🏿' => 'càraid le cridhe: boireannach, boireannach ’s tòna doilleir a’ chraicinn',
+    '👩🏻‍🐰‍👩🏼' => 'boireannaich le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👩🏻‍🐰‍👩🏽' => 'boireannaich le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👩🏻‍🐰‍👩🏾' => 'boireannaich le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👩🏻‍🐰‍👩🏿' => 'boireannaich le cluasan rabaid: tòna soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👩🏼‍🐰‍👩🏻' => 'boireannaich le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👩🏼‍🐰‍👩🏽' => 'boireannaich le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👩🏼‍🐰‍👩🏾' => 'boireannaich le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👩🏼‍🐰‍👩🏿' => 'boireannaich le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👩🏽‍🐰‍👩🏻' => 'boireannaich le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👩🏽‍🐰‍👩🏼' => 'boireannaich le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👩🏽‍🐰‍👩🏾' => 'boireannaich le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
+    '👩🏽‍🐰‍👩🏿' => 'boireannaich le cluasan rabaid: tòna meadhanach a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👩🏾‍🐰‍👩🏻' => 'boireannaich le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👩🏾‍🐰‍👩🏼' => 'boireannaich le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👩🏾‍🐰‍👩🏽' => 'boireannaich le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👩🏾‍🐰‍👩🏿' => 'boireannaich le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn ’s tòna doilleir a’ chraicinn',
+    '👩🏿‍🐰‍👩🏻' => 'boireannaich le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna soilleir a’ chraicinn',
+    '👩🏿‍🐰‍👩🏼' => 'boireannaich le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
+    '👩🏿‍🐰‍👩🏽' => 'boireannaich le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
+    '👩🏿‍🐰‍👩🏾' => 'boireannaich le cluasan rabaid: tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
     '🧑🏻‍🤝‍🧑🏻' => 'daoine a’ glacadh air làmh a chèile: tòna soilleir a’ chraicinn',
     '🧑🏻‍🤝‍🧑🏼' => 'daoine a’ glacadh air làmh a chèile: tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
     '🧑🏻‍🤝‍🧑🏽' => 'daoine a’ glacadh air làmh a chèile: tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bratach: Alba',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bratach: A’ Chuimrigh',
     '🧑‍🧑‍🧒‍🧒' => 'teaghlach: dithis inbheach, dithis cloinne',
-    '🚶🏻‍♀‍➡' => 'boireannach a’ coiseachd ris an taobh deas',
-    '🚶🏼‍♀‍➡' => 'boireannach a’ coiseachd ris an taobh deas',
-    '🚶🏽‍♀‍➡' => 'boireannach a’ coiseachd ris an taobh deas',
-    '🚶🏾‍♀‍➡' => 'boireannach a’ coiseachd ris an taobh deas',
-    '🚶🏿‍♀‍➡' => 'boireannach a’ coiseachd ris an taobh deas',
-    '🚶🏻‍♂‍➡' => 'duine a’ coiseachd ris an taobh deas',
-    '🚶🏼‍♂‍➡' => 'duine a’ coiseachd ris an taobh deas',
-    '🚶🏽‍♂‍➡' => 'duine a’ coiseachd ris an taobh deas',
-    '🚶🏾‍♂‍➡' => 'duine a’ coiseachd ris an taobh deas',
-    '🚶🏿‍♂‍➡' => 'duine a’ coiseachd ris an taobh deas',
-    '🧎🏻‍♀‍➡' => 'boireanach air a ghlùinean ris an taobh deas',
-    '🧎🏼‍♀‍➡' => 'boireanach air a ghlùinean ris an taobh deas',
-    '🧎🏽‍♀‍➡' => 'boireanach air a ghlùinean ris an taobh deas',
-    '🧎🏾‍♀‍➡' => 'boireanach air a ghlùinean ris an taobh deas',
-    '🧎🏿‍♀‍➡' => 'boireanach air a ghlùinean ris an taobh deas',
-    '🧎🏻‍♂‍➡' => 'duine air a ghlùinean ris an taobh deas',
-    '🧎🏼‍♂‍➡' => 'duine air a ghlùinean ris an taobh deas',
-    '🧎🏽‍♂‍➡' => 'duine air a ghlùinean ris an taobh deas',
-    '🧎🏾‍♂‍➡' => 'duine air a ghlùinean ris an taobh deas',
-    '🧎🏿‍♂‍➡' => 'duine air a ghlùinean ris an taobh deas',
-    '🧑🏻‍🦯‍➡' => 'neach dall le batachan ris an taobh deas',
-    '🧑🏼‍🦯‍➡' => 'neach dall le batachan ris an taobh deas',
-    '🧑🏽‍🦯‍➡' => 'neach dall le batachan ris an taobh deas',
-    '🧑🏾‍🦯‍➡' => 'neach dall le batachan ris an taobh deas',
-    '🧑🏿‍🦯‍➡' => 'neach dall le batachan ris an taobh deas',
-    '👨🏻‍🦯‍➡' => 'duine dall le batachan ris an taobh deas',
-    '👨🏼‍🦯‍➡' => 'duine dall le batachan ris an taobh deas',
-    '👨🏽‍🦯‍➡' => 'duine dall le batachan ris an taobh deas',
-    '👨🏾‍🦯‍➡' => 'duine dall le batachan ris an taobh deas',
-    '👨🏿‍🦯‍➡' => 'duine dall le batachan ris an taobh deas',
-    '👩🏻‍🦯‍➡' => 'boireannach dall le batachan ris an taobh deas',
-    '👩🏼‍🦯‍➡' => 'boireannach dall le batachan ris an taobh deas',
-    '👩🏽‍🦯‍➡' => 'boireannach dall le batachan ris an taobh deas',
-    '👩🏾‍🦯‍➡' => 'boireannach dall le batachan ris an taobh deas',
-    '👩🏿‍🦯‍➡' => 'boireannach dall le batachan ris an taobh deas',
-    '🧑🏻‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '🧑🏼‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '🧑🏽‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '🧑🏾‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '🧑🏿‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👨🏻‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👨🏼‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👨🏽‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👨🏾‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👨🏿‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👩🏻‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👩🏼‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👩🏽‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👩🏾‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👩🏿‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '🧑🏻‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh ris an taobh deas',
-    '🧑🏼‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh ris an taobh deas',
-    '🧑🏽‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh ris an taobh deas',
-    '🧑🏾‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh ris an taobh deas',
-    '🧑🏿‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👨🏻‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👨🏼‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👨🏽‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👨🏾‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👨🏿‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👩🏻‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👩🏼‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👩🏽‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👩🏾‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👩🏿‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh ris an taobh deas',
-    '🏃🏻‍♀‍➡' => 'boireannach a’ ruith ris an taobh deas',
-    '🏃🏼‍♀‍➡' => 'boireannach a’ ruith ris an taobh deas',
-    '🏃🏽‍♀‍➡' => 'boireannach a’ ruith ris an taobh deas',
-    '🏃🏾‍♀‍➡' => 'boireannach a’ ruith ris an taobh deas',
-    '🏃🏿‍♀‍➡' => 'boireannach a’ ruith ris an taobh deas',
-    '🏃🏻‍♂‍➡' => 'duine a’ ruith ris an taobh deas',
-    '🏃🏼‍♂‍➡' => 'duine a’ ruith ris an taobh deas',
-    '🏃🏽‍♂‍➡' => 'duine a’ ruith ris an taobh deas',
-    '🏃🏾‍♂‍➡' => 'duine a’ ruith ris an taobh deas',
-    '🏃🏿‍♂‍➡' => 'duine a’ ruith ris an taobh deas',
+    '🚶🏻‍♀‍➡' => 'boireannach a’ coiseachd: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🚶🏼‍♀‍➡' => 'boireannach a’ coiseachd: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🚶🏽‍♀‍➡' => 'boireannach a’ coiseachd: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🚶🏾‍♀‍➡' => 'boireannach a’ coiseachd: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🚶🏿‍♀‍➡' => 'boireannach a’ coiseachd: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '🚶🏻‍♂‍➡' => 'duine a’ coiseachd: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🚶🏼‍♂‍➡' => 'duine a’ coiseachd: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🚶🏽‍♂‍➡' => 'duine a’ coiseachd: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🚶🏾‍♂‍➡' => 'duine a’ coiseachd: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🚶🏿‍♂‍➡' => 'duine a’ coiseachd: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏻‍♀‍➡' => 'boireanach air a ghlùinean: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏼‍♀‍➡' => 'boireanach air a ghlùinean: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏽‍♀‍➡' => 'boireanach air a ghlùinean: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🧎🏾‍♀‍➡' => 'boireanach air a ghlùinean: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏿‍♀‍➡' => 'boireanach air a ghlùinean: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏻‍♂‍➡' => 'duine air a ghlùinean: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏼‍♂‍➡' => 'duine air a ghlùinean: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏽‍♂‍➡' => 'duine air a ghlùinean: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🧎🏾‍♂‍➡' => 'duine air a ghlùinean: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏿‍♂‍➡' => 'duine air a ghlùinean: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏻‍🦯‍➡' => 'neach dall le batachan: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏼‍🦯‍➡' => 'neach dall le batachan: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏽‍🦯‍➡' => 'neach dall le batachan: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🧑🏾‍🦯‍➡' => 'neach dall le batachan: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏿‍🦯‍➡' => 'neach dall le batachan: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏻‍🦯‍➡' => 'duine dall le batachan: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏼‍🦯‍➡' => 'duine dall le batachan: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏽‍🦯‍➡' => 'duine dall le batachan: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '👨🏾‍🦯‍➡' => 'duine dall le batachan: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏿‍🦯‍➡' => 'duine dall le batachan: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏻‍🦯‍➡' => 'boireannach dall le batachan: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏼‍🦯‍➡' => 'boireannach dall le batachan: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏽‍🦯‍➡' => 'boireannach dall le batachan: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '👩🏾‍🦯‍➡' => 'boireannach dall le batachan: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏿‍🦯‍➡' => 'boireannach dall le batachan: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏻‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏼‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏽‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🧑🏾‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏿‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏻‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏼‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏽‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '👨🏾‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏿‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏻‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏼‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏽‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '👩🏾‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏿‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏻‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏼‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏽‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🧑🏾‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧑🏿‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏻‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏼‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏽‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '👨🏾‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '👨🏿‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏻‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏼‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏽‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '👩🏾‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '👩🏿‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏻‍♀‍➡' => 'boireannach a’ ruith: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏼‍♀‍➡' => 'boireannach a’ ruith: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏽‍♀‍➡' => 'boireannach a’ ruith: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🏃🏾‍♀‍➡' => 'boireannach a’ ruith: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏿‍♀‍➡' => 'boireannach a’ ruith: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏻‍♂‍➡' => 'duine a’ ruith: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏼‍♂‍➡' => 'duine a’ ruith: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏽‍♂‍➡' => 'duine a’ ruith: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🏃🏾‍♂‍➡' => 'duine a’ ruith: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏿‍♂‍➡' => 'duine a’ ruith: tòna doilleir a’ chraicinn ’s ris an taobh deas',
     '🫱🏻‍🫲🏼' => 'crathadh-làimhe: tòna soilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
     '🫱🏻‍🫲🏽' => 'crathadh-làimhe: tòna soilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
     '🫱🏻‍🫲🏾' => 'crathadh-làimhe: tòna soilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'crathadh-làimhe: tòna doilleir a’ chraicinn ’s tòna meadhanach soilleir a’ chraicinn',
     '🫱🏿‍🫲🏽' => 'crathadh-làimhe: tòna doilleir a’ chraicinn ’s tòna meadhanach a’ chraicinn',
     '🫱🏿‍🫲🏾' => 'crathadh-làimhe: tòna doilleir a’ chraicinn ’s tòna meadhanach doilleir a’ chraicinn',
-    '🚶‍♀‍➡' => 'boireannach a’ coiseachd ris an taobh deas',
-    '🚶‍♂‍➡' => 'duine a’ coiseachd ris an taobh deas',
-    '🧎‍♀‍➡' => 'boireanach air a ghlùinean ris an taobh deas',
-    '🧎‍♂‍➡' => 'duine air a ghlùinean ris an taobh deas',
-    '🧑‍🦯‍➡' => 'neach dall le batachan ris an taobh deas',
-    '👨‍🦯‍➡' => 'duine dall le batachan ris an taobh deas',
-    '👩‍🦯‍➡' => 'boireannach dall le batachan ris an taobh deas',
-    '🧑‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👨‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '👩‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein ris an taobh deas',
-    '🧑‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👨‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh ris an taobh deas',
-    '👩‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh ris an taobh deas',
-    '🏃‍♀‍➡' => 'boireannach a’ ruith ris an taobh deas',
-    '🏃‍♂‍➡' => 'duine a’ ruith ris an taobh deas',
+    '🚶‍♀‍➡' => 'boireannach a’ coiseachd: ris an taobh deas',
+    '🚶‍♂‍➡' => 'duine a’ coiseachd: ris an taobh deas',
+    '🧎‍♀‍➡' => 'boireanach air a ghlùinean: ris an taobh deas',
+    '🧎‍♂‍➡' => 'duine air a ghlùinean: ris an taobh deas',
+    '🧑‍🦯‍➡' => 'neach dall le batachan: ris an taobh deas',
+    '👨‍🦯‍➡' => 'duine dall le batachan: ris an taobh deas',
+    '👩‍🦯‍➡' => 'boireannach dall le batachan: ris an taobh deas',
+    '🧑‍🦼‍➡' => 'neach ann an cathair-chuibhle le einnsein: ris an taobh deas',
+    '👨‍🦼‍➡' => 'duine ann an cathair-chuibhle le einnsein: ris an taobh deas',
+    '👩‍🦼‍➡' => 'tè ann an cathair-chuibhle le einnsein: ris an taobh deas',
+    '🧑‍🦽‍➡' => 'neach ann an cathair-chuibhle a làimh: ris an taobh deas',
+    '👨‍🦽‍➡' => 'duine ann an cathair-chuibhle a làimh: ris an taobh deas',
+    '👩‍🦽‍➡' => 'tè ann an cathair-chuibhle a làimh: ris an taobh deas',
+    '🏃‍♀‍➡' => 'boireannach a’ ruith: ris an taobh deas',
+    '🏃‍♂‍➡' => 'duine a’ ruith: ris an taobh deas',
     '👩‍❤‍👨' => 'càraid le cridhe: boireannach ’s duine',
     '👨‍❤‍👨' => 'càraid le cridhe: duine ’s duine',
     '👩‍❤‍👩' => 'càraid le cridhe: boireannach ’s boireannach',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'inbheach: tòna meadhanach a’ chraicinn ’s maoilean',
     '🧑🏾‍🦲' => 'inbheach: tòna meadhanach doilleir a’ chraicinn ’s maoilean',
     '🧑🏿‍🦲' => 'inbheach: tòna doilleir a’ chraicinn ’s maoilean',
+    '🧑🏻‍🩰' => 'dannsair baileit: tòna soilleir a’ chraicinn',
+    '🧑🏼‍🩰' => 'dannsair baileit: tòna meadhanach soilleir a’ chraicinn',
+    '🧑🏽‍🩰' => 'dannsair baileit: tòna meadhanach a’ chraicinn',
+    '🧑🏾‍🩰' => 'dannsair baileit: tòna meadhanach doilleir a’ chraicinn',
+    '🧑🏿‍🩰' => 'dannsair baileit: tòna doilleir a’ chraicinn',
     '🧔🏻‍♂' => 'fireannach: tòna soilleir a’ chraicinn ’s feusag',
     '🧔🏼‍♂' => 'fireannach: tòna meadhanach soilleir a’ chraicinn ’s feusag',
     '🧔🏽‍♂' => 'fireannach: tòna meadhanach a’ chraicinn ’s feusag',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'boireannach a’ coiseachd: tòna meadhanach a’ chraicinn',
     '🚶🏾‍♀' => 'boireannach a’ coiseachd: tòna meadhanach doilleir a’ chraicinn',
     '🚶🏿‍♀' => 'boireannach a’ coiseachd: tòna doilleir a’ chraicinn',
-    '🚶🏻‍➡' => 'neach a’ coiseachd ris an taobh deas',
-    '🚶🏼‍➡' => 'neach a’ coiseachd ris an taobh deas',
-    '🚶🏽‍➡' => 'neach a’ coiseachd ris an taobh deas',
-    '🚶🏾‍➡' => 'neach a’ coiseachd ris an taobh deas',
-    '🚶🏿‍➡' => 'neach a’ coiseachd ris an taobh deas',
+    '🚶🏻‍➡' => 'neach a’ coiseachd: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🚶🏼‍➡' => 'neach a’ coiseachd: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🚶🏽‍➡' => 'neach a’ coiseachd: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🚶🏾‍➡' => 'neach a’ coiseachd: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🚶🏿‍➡' => 'neach a’ coiseachd: tòna doilleir a’ chraicinn ’s ris an taobh deas',
     '🧍🏻‍♂' => 'duine ’na sheasamh: tòna soilleir a’ chraicinn',
     '🧍🏼‍♂' => 'duine ’na sheasamh: tòna meadhanach soilleir a’ chraicinn',
     '🧍🏽‍♂' => 'duine ’na sheasamh: tòna meadhanach a’ chraicinn',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'boireanach air a ghlùinean: tòna meadhanach a’ chraicinn',
     '🧎🏾‍♀' => 'boireanach air a ghlùinean: tòna meadhanach doilleir a’ chraicinn',
     '🧎🏿‍♀' => 'boireanach air a ghlùinean: tòna doilleir a’ chraicinn',
-    '🧎🏻‍➡' => 'neach air a ghlùinean ris an taobh deas',
-    '🧎🏼‍➡' => 'neach air a ghlùinean ris an taobh deas',
-    '🧎🏽‍➡' => 'neach air a ghlùinean ris an taobh deas',
-    '🧎🏾‍➡' => 'neach air a ghlùinean ris an taobh deas',
-    '🧎🏿‍➡' => 'neach air a ghlùinean ris an taobh deas',
+    '🧎🏻‍➡' => 'neach air a ghlùinean: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏼‍➡' => 'neach air a ghlùinean: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏽‍➡' => 'neach air a ghlùinean: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🧎🏾‍➡' => 'neach air a ghlùinean: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🧎🏿‍➡' => 'neach air a ghlùinean: tòna doilleir a’ chraicinn ’s ris an taobh deas',
     '🧑🏻‍🦯' => 'neach dall le batachan: tòna soilleir a’ chraicinn',
     '🧑🏼‍🦯' => 'neach dall le batachan: tòna meadhanach soilleir a’ chraicinn',
     '🧑🏽‍🦯' => 'neach dall le batachan: tòna meadhanach a’ chraicinn',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'boireannach a’ ruith: tòna meadhanach a’ chraicinn',
     '🏃🏾‍♀' => 'boireannach a’ ruith: tòna meadhanach doilleir a’ chraicinn',
     '🏃🏿‍♀' => 'boireannach a’ ruith: tòna doilleir a’ chraicinn',
-    '🏃🏻‍➡' => 'neach a’ ruith ris an taobh deas',
-    '🏃🏼‍➡' => 'neach a’ ruith ris an taobh deas',
-    '🏃🏽‍➡' => 'neach a’ ruith ris an taobh deas',
-    '🏃🏾‍➡' => 'neach a’ ruith ris an taobh deas',
-    '🏃🏿‍➡' => 'neach a’ ruith ris an taobh deas',
+    '🏃🏻‍➡' => 'neach a’ ruith: tòna soilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏼‍➡' => 'neach a’ ruith: tòna meadhanach soilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏽‍➡' => 'neach a’ ruith: tòna meadhanach a’ chraicinn ’s ris an taobh deas',
+    '🏃🏾‍➡' => 'neach a’ ruith: tòna meadhanach doilleir a’ chraicinn ’s ris an taobh deas',
+    '🏃🏿‍➡' => 'neach a’ ruith: tòna doilleir a’ chraicinn ’s ris an taobh deas',
+    '👯🏻‍♀' => 'boireannaich le cluasan rabaid: tòna soilleir a’ chraicinn',
+    '👯🏼‍♀' => 'boireannaich le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn',
+    '👯🏽‍♀' => 'boireannaich le cluasan rabaid: tòna meadhanach a’ chraicinn',
+    '👯🏾‍♀' => 'boireannaich le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn',
+    '👯🏿‍♀' => 'boireannaich le cluasan rabaid: tòna doilleir a’ chraicinn',
+    '👯🏻‍♂' => 'fireannaich le cluasan rabaid: tòna soilleir a’ chraicinn',
+    '👯🏼‍♂' => 'fireannaich le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn',
+    '👯🏽‍♂' => 'fireannaich le cluasan rabaid: tòna meadhanach a’ chraicinn',
+    '👯🏾‍♂' => 'fireannaich le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn',
+    '👯🏿‍♂' => 'fireannaich le cluasan rabaid: tòna doilleir a’ chraicinn',
     '🧖🏻‍♂' => 'duine ann an sauna: tòna soilleir a’ chraicinn',
     '🧖🏼‍♂' => 'duine ann an sauna: tòna meadhanach soilleir a’ chraicinn',
     '🧖🏽‍♂' => 'duine ann an sauna: tòna meadhanach a’ chraicinn',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'boireannach a’ cur nan rothan: tòna meadhanach a’ chraicinn',
     '🤸🏾‍♀' => 'boireannach a’ cur nan rothan: tòna meadhanach doilleir a’ chraicinn',
     '🤸🏿‍♀' => 'boireannach a’ cur nan rothan: tòna doilleir a’ chraicinn',
+    '🤼🏻‍♀' => 'boireannaich ri gleacadh: tòna soilleir a’ chraicinn',
+    '🤼🏼‍♀' => 'boireannaich ri gleacadh: tòna meadhanach soilleir a’ chraicinn',
+    '🤼🏽‍♀' => 'boireannaich ri gleacadh: tòna meadhanach a’ chraicinn',
+    '🤼🏾‍♀' => 'boireannaich ri gleacadh: tòna meadhanach doilleir a’ chraicinn',
+    '🤼🏿‍♀' => 'boireannaich ri gleacadh: tòna doilleir a’ chraicinn',
+    '🤼🏻‍♂' => 'fireannaich ri gleacadh: tòna soilleir a’ chraicinn',
+    '🤼🏼‍♂' => 'fireannaich ri gleacadh: tòna meadhanach soilleir a’ chraicinn',
+    '🤼🏽‍♂' => 'fireannaich ri gleacadh: tòna meadhanach a’ chraicinn',
+    '🤼🏾‍♂' => 'fireannaich ri gleacadh: tòna meadhanach doilleir a’ chraicinn',
+    '🤼🏿‍♂' => 'fireannaich ri gleacadh: tòna doilleir a’ chraicinn',
     '🤽🏻‍♂' => 'duine a’ cluich polo-uisge: tòna soilleir a’ chraicinn',
     '🤽🏼‍♂' => 'duine a’ cluich polo-uisge: tòna meadhanach soilleir a’ chraicinn',
     '🤽🏽‍♂' => 'duine a’ cluich polo-uisge: tòna meadhanach a’ chraicinn',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'boireannach: falt dualach',
     '👩‍🦳' => 'boireannach: falt bàn',
     '👩‍🦲' => 'boireannach: maoilean',
-    '🚶‍➡' => 'neach a’ coiseachd ris an taobh deas',
-    '🧎‍➡' => 'neach air a ghlùinean ris an taobh deas',
-    '🏃‍➡' => 'neach a’ ruith ris an taobh deas',
+    '🚶‍➡' => 'neach a’ coiseachd: ris an taobh deas',
+    '🧎‍➡' => 'neach air a ghlùinean: ris an taobh deas',
+    '🏃‍➡' => 'neach a’ ruith: ris an taobh deas',
     '👨‍👦' => 'teaghlach: duine ’s gille',
     '👨‍👧' => 'teaghlach: duine ’s caileag',
     '👩‍👦' => 'teaghlach: boireannach ’s gille',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'tè ann an cathair-chuibhle a làimh',
     '🏃‍♂' => 'duine a’ ruith',
     '🏃‍♀' => 'boireannach a’ ruith',
+    '🧑‍🩰' => 'dannsair baileit',
     '👯‍♂' => 'fireannaich le cluasan rabaid',
     '👯‍♀' => 'boireannaich le cluasan rabaid',
     '🧖‍♂' => 'duine ann an sauna',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'duine air flod ’s deise gnìomhachais air: tòna meadhanach a’ chraicinn',
     '🕴🏾' => 'duine air flod ’s deise gnìomhachais air: tòna meadhanach doilleir a’ chraicinn',
     '🕴🏿' => 'duine air flod ’s deise gnìomhachais air: tòna doilleir a’ chraicinn',
+    '👯🏻' => 'daoine le cluasan rabaid: tòna soilleir a’ chraicinn',
+    '👯🏼' => 'daoine le cluasan rabaid: tòna meadhanach soilleir a’ chraicinn',
+    '👯🏽' => 'daoine le cluasan rabaid: tòna meadhanach a’ chraicinn',
+    '👯🏾' => 'daoine le cluasan rabaid: tòna meadhanach doilleir a’ chraicinn',
+    '👯🏿' => 'daoine le cluasan rabaid: tòna doilleir a’ chraicinn',
     '🧖🏻' => 'neach ann an sauna: tòna soilleir a’ chraicinn',
     '🧖🏼' => 'neach ann an sauna: tòna meadhanach soilleir a’ chraicinn',
     '🧖🏽' => 'neach ann an sauna: tòna meadhanach a’ chraicinn',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'neach a’ cur nan rothan: tòna meadhanach a’ chraicinn',
     '🤸🏾' => 'neach a’ cur nan rothan: tòna meadhanach doilleir a’ chraicinn',
     '🤸🏿' => 'neach a’ cur nan rothan: tòna doilleir a’ chraicinn',
+    '🤼🏻' => 'daoine ri gleacadh: tòna soilleir a’ chraicinn',
+    '🤼🏼' => 'daoine ri gleacadh: tòna meadhanach soilleir a’ chraicinn',
+    '🤼🏽' => 'daoine ri gleacadh: tòna meadhanach a’ chraicinn',
+    '🤼🏾' => 'daoine ri gleacadh: tòna meadhanach doilleir a’ chraicinn',
+    '🤼🏿' => 'daoine ri gleacadh: tòna doilleir a’ chraicinn',
     '🤽🏻' => 'neach a’ cluich polo-uisge: tòna soilleir a’ chraicinn',
     '🤽🏼' => 'neach a’ cluich polo-uisge: tòna meadhanach soilleir a’ chraicinn',
     '🤽🏽' => 'neach a’ cluich polo-uisge: tòna meadhanach a’ chraicinn',
@@ -2391,13 +2547,6 @@
     '🏽' => 'tòna meadhanach a’ chraicinn',
     '🏾' => 'tòna meadhanach doilleir a’ chraicinn',
     '🏿' => 'tòna doilleir a’ chraicinn',
-    '🪉' => 'clàrsach',
-    '🪏' => 'sluasaid',
-    '🪾' => 'craobh lom',
-    '🫆' => 'lorg-mheòir',
-    '🫜' => 'bun-lus',
-    '🫟' => 'steallag',
-    '🫩' => 'aodann le buaile mu shùilean',
     '😀' => 'aodann le gàire',
     '😃' => 'aodann le gàire is sùilean fosgailte',
     '😄' => 'aodann le gàire na shùilean',
@@ -2451,6 +2600,7 @@
     '😪' => 'aodann cadalach',
     '🤤' => 'aodann a’ sileadh sglongaid',
     '😴' => 'aodann na chadal',
+    '🫩' => 'aodann le buaile mu shùilean',
     '😷' => 'aodann le masg dotair air',
     '🤒' => 'aodann le teas-mheidh',
     '🤕' => 'aodann le clobhd air a’ cheann',
@@ -2477,6 +2627,7 @@
     '😯' => 'aodann iongnaidh le sùilean fosgailte',
     '😲' => 'aodann a ghabh mòr-iongnadh',
     '😳' => 'aodann air ruadhadh',
+    '🫪' => 'aodann mì-dhealbhaichte',
     '🥺' => 'aodann tagrach',
     '🥹' => 'aodann le deòir na sùil',
     '😦' => 'aodann le drèin is beul fosgailte',
@@ -2548,6 +2699,7 @@
     '💋' => 'làrach pòige',
     '💯' => 'ceud puing',
     '💢' => 'samhla feirge',
+    '🫯' => 'neul sabaide',
     '💥' => 'bualadh ri chèile',
     '💫' => 'tuaineal',
     '💦' => 'boinneagan fallais',
@@ -2671,6 +2823,7 @@
     '🧞' => 'taibhse Arabach',
     '🧟' => 'zombie',
     '🧌' => 'trobha',
+    '🫈' => 'creutair molach',
     '💆' => 'neach a’ faighinn massage',
     '💇' => 'neach a’ faighinn cliop',
     '🚶' => 'neach a’ coiseachd',
@@ -2714,6 +2867,7 @@
     '🫂' => 'caidreabh',
     '👪' => 'teaghlach',
     '👣' => 'lorgan coise',
+    '🫆' => 'lorg-mheòir',
     '🦰' => 'falt ruadh',
     '🦱' => 'falt dualach',
     '🦳' => 'falt bàn',
@@ -2822,6 +2976,11 @@
     '🐚' => 'slige shnìomhanach',
     '🪸' => 'coireal',
     '🪼' => 'muir-tèachd',
+    '🦀' => 'crùbag',
+    '🦞' => 'giomach',
+    '🦐' => 'carrain',
+    '🦑' => 'gibearnach',
+    '🦪' => 'eisir',
     '🐌' => 'seilcheag',
     '🦋' => 'dealan-dè',
     '🐛' => 'biastag',
@@ -2866,6 +3025,7 @@
     '🪹' => 'nead falamh',
     '🪺' => 'nead le uighean',
     '🍄' => 'balgan-buachrach',
+    '🪾' => 'craobh lom',
     '🍇' => 'fìon-dhearcan',
     '🍈' => 'meal-bhuc',
     '🍉' => 'meal-bhuc uisge',
@@ -2902,6 +3062,7 @@
     '🌰' => 'geanm-chnò',
     '🫚' => 'dinnsear',
     '🫛' => 'builgean-peasrach',
+    '🫜' => 'bun-lus',
     '🍞' => 'aran',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2953,11 +3114,6 @@
     '🥟' => 'dumplag',
     '🥠' => 'briosgaid fortain',
     '🥡' => 'bogsa takeout',
-    '🦀' => 'crùbag',
-    '🦞' => 'giomach',
-    '🦐' => 'carrain',
-    '🦑' => 'gibearnach',
-    '🦪' => 'eisir',
     '🍦' => 'reòiteag bhog',
     '🍧' => 'deigh bheàrrte',
     '🍨' => 'reòiteag',
@@ -3008,6 +3164,7 @@
     '🧭' => 'combaist',
     '🏔' => 'beinn le sneachd air a mullach',
     '⛰' => 'beinn',
+    '🛘' => 'maoim-talmhainn',
     '🌋' => 'beinn-theine',
     '🗻' => 'Beinn Fuji',
     '🏕' => 'campachadh',
@@ -3368,16 +3525,18 @@
     '🎧' => 'headphone',
     '📻' => 'rèidio',
     '🎷' => 'sacsafon',
+    '🎺' => 'trombaid',
+    '🪊' => 'trompan',
     '🪗' => 'bogsa-ciùil',
     '🎸' => 'giotàr',
     '🎹' => 'meur-chlàr ciùil',
-    '🎺' => 'trombaid',
     '🎻' => 'fìdheall',
     '🪕' => 'bainsio',
     '🥁' => 'druma',
     '🪘' => 'druma fada',
     '🪇' => 'maracas',
     '🪈' => 'duiseal',
+    '🪉' => 'clàrsach',
     '📱' => 'fòn-làimhe',
     '📲' => 'fòn-làimhe le saighead',
     '☎' => 'fòn',
@@ -3431,8 +3590,9 @@
     '📑' => 'tabaichean-leabhair',
     '🔖' => 'comharra-leabhair',
     '🏷' => 'bileag',
-    '💰' => 'mogan airgid',
     '🪙' => 'bonn',
+    '💰' => 'mogan airgid',
+    '🪎' => 'ciste-ulaidh',
     '💴' => 'not Yen',
     '💵' => 'not dolair',
     '💶' => 'not Eòro',
@@ -3515,6 +3675,7 @@
     '🧰' => 'bogsa-innealan',
     '🧲' => 'clach-iùil',
     '🪜' => 'fàradh',
+    '🪏' => 'sluasaid',
     '⚗' => 'ceimigeachd',
     '🧪' => 'tiùb-deuchainne',
     '🧫' => 'soitheach Petri',
@@ -3698,6 +3859,7 @@
     '✴' => 'rionnag le ochd rinnean',
     '❇' => 'lainnir',
     '™' => 'comharra-malairt',
+    '🫟' => 'steallag',
     '🔠' => 'ion-chur litrichean mòra Laideann',
     '🔡' => 'ion-chur litrichean beaga Laideann',
     '🔢' => 'ion-chur àireamhan',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gl.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'parella bicándose: muller, muller, ton de pel moi escuro, ton de pel medio',
     '👩🏿‍❤‍💋‍👩🏾' => 'parella bicándose: muller, muller, ton de pel moi escuro, ton de pel escuro',
     '👩🏿‍❤‍💋‍👩🏿' => 'parella bicándose: muller, muller, ton de pel moi escuro',
+    '🧑🏻‍🫯‍🧑🏼' => 'loita libre: ton de pel moi claro, ton de pel claro',
+    '🧑🏻‍🫯‍🧑🏽' => 'loita libre: ton de pel moi claro, ton de pel medio',
+    '🧑🏻‍🫯‍🧑🏾' => 'loita libre: ton de pel moi claro, ton de pel escuro',
+    '🧑🏻‍🫯‍🧑🏿' => 'loita libre: ton de pel moi claro, ton de pel moi escuro',
+    '🧑🏼‍🫯‍🧑🏻' => 'loita libre: ton de pel claro, ton de pel moi claro',
+    '🧑🏼‍🫯‍🧑🏽' => 'loita libre: ton de pel claro, ton de pel medio',
+    '🧑🏼‍🫯‍🧑🏾' => 'loita libre: ton de pel claro, ton de pel escuro',
+    '🧑🏼‍🫯‍🧑🏿' => 'loita libre: ton de pel claro, ton de pel moi escuro',
+    '🧑🏽‍🫯‍🧑🏻' => 'loita libre: ton de pel medio, ton de pel moi claro',
+    '🧑🏽‍🫯‍🧑🏼' => 'loita libre: ton de pel medio, ton de pel claro',
+    '🧑🏽‍🫯‍🧑🏾' => 'loita libre: ton de pel medio, ton de pel escuro',
+    '🧑🏽‍🫯‍🧑🏿' => 'loita libre: ton de pel medio, ton de pel moi escuro',
+    '🧑🏾‍🫯‍🧑🏻' => 'loita libre: ton de pel escuro, ton de pel moi claro',
+    '🧑🏾‍🫯‍🧑🏼' => 'loita libre: ton de pel escuro, ton de pel claro',
+    '🧑🏾‍🫯‍🧑🏽' => 'loita libre: ton de pel escuro, ton de pel medio',
+    '🧑🏾‍🫯‍🧑🏿' => 'loita libre: ton de pel escuro, ton de pel moi escuro',
+    '🧑🏿‍🫯‍🧑🏻' => 'loita libre: ton de pel moi escuro, ton de pel moi claro',
+    '🧑🏿‍🫯‍🧑🏼' => 'loita libre: ton de pel moi escuro, ton de pel claro',
+    '🧑🏿‍🫯‍🧑🏽' => 'loita libre: ton de pel moi escuro, ton de pel medio',
+    '🧑🏿‍🫯‍🧑🏾' => 'loita libre: ton de pel moi escuro, ton de pel escuro',
     '🧑🏻‍❤‍🧑🏼' => 'parella cun corazón: persoa, persoa, ton de pel moi claro, ton de pel claro',
     '🧑🏻‍❤‍🧑🏽' => 'parella cun corazón: persoa, persoa, ton de pel moi claro, ton de pel medio',
     '🧑🏻‍❤‍🧑🏾' => 'parella cun corazón: persoa, persoa, ton de pel moi claro, ton de pel escuro',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'parella cun corazón: persoa, persoa, ton de pel moi escuro, ton de pel claro',
     '🧑🏿‍❤‍🧑🏽' => 'parella cun corazón: persoa, persoa, ton de pel moi escuro, ton de pel medio',
     '🧑🏿‍❤‍🧑🏾' => 'parella cun corazón: persoa, persoa, ton de pel moi escuro, ton de pel escuro',
+    '🧑🏻‍🐰‍🧑🏼' => 'xente de festa: ton de pel moi claro, ton de pel claro',
+    '🧑🏻‍🐰‍🧑🏽' => 'xente de festa: ton de pel moi claro, ton de pel medio',
+    '🧑🏻‍🐰‍🧑🏾' => 'xente de festa: ton de pel moi claro, ton de pel escuro',
+    '🧑🏻‍🐰‍🧑🏿' => 'xente de festa: ton de pel moi claro, ton de pel moi escuro',
+    '🧑🏼‍🐰‍🧑🏻' => 'xente de festa: ton de pel claro, ton de pel moi claro',
+    '🧑🏼‍🐰‍🧑🏽' => 'xente de festa: ton de pel claro, ton de pel medio',
+    '🧑🏼‍🐰‍🧑🏾' => 'xente de festa: ton de pel claro, ton de pel escuro',
+    '🧑🏼‍🐰‍🧑🏿' => 'xente de festa: ton de pel claro, ton de pel moi escuro',
+    '🧑🏽‍🐰‍🧑🏻' => 'xente de festa: ton de pel medio, ton de pel moi claro',
+    '🧑🏽‍🐰‍🧑🏼' => 'xente de festa: ton de pel medio, ton de pel claro',
+    '🧑🏽‍🐰‍🧑🏾' => 'xente de festa: ton de pel medio, ton de pel escuro',
+    '🧑🏽‍🐰‍🧑🏿' => 'xente de festa: ton de pel medio, ton de pel moi escuro',
+    '🧑🏾‍🐰‍🧑🏻' => 'xente de festa: ton de pel escuro, ton de pel moi claro',
+    '🧑🏾‍🐰‍🧑🏼' => 'xente de festa: ton de pel escuro, ton de pel claro',
+    '🧑🏾‍🐰‍🧑🏽' => 'xente de festa: ton de pel escuro, ton de pel medio',
+    '🧑🏾‍🐰‍🧑🏿' => 'xente de festa: ton de pel escuro, ton de pel moi escuro',
+    '🧑🏿‍🐰‍🧑🏻' => 'xente de festa: ton de pel moi escuro, ton de pel moi claro',
+    '🧑🏿‍🐰‍🧑🏼' => 'xente de festa: ton de pel moi escuro, ton de pel claro',
+    '🧑🏿‍🐰‍🧑🏽' => 'xente de festa: ton de pel moi escuro, ton de pel medio',
+    '🧑🏿‍🐰‍🧑🏾' => 'xente de festa: ton de pel moi escuro, ton de pel escuro',
+    '👨🏻‍🫯‍👨🏼' => 'homes practicando loita libre: ton de pel moi claro, ton de pel claro',
+    '👨🏻‍🫯‍👨🏽' => 'homes practicando loita libre: ton de pel moi claro, ton de pel medio',
+    '👨🏻‍🫯‍👨🏾' => 'homes practicando loita libre: ton de pel moi claro, ton de pel escuro',
+    '👨🏻‍🫯‍👨🏿' => 'homes practicando loita libre: ton de pel moi claro, ton de pel moi escuro',
+    '👨🏼‍🫯‍👨🏻' => 'homes practicando loita libre: ton de pel claro, ton de pel moi claro',
+    '👨🏼‍🫯‍👨🏽' => 'homes practicando loita libre: ton de pel claro, ton de pel medio',
+    '👨🏼‍🫯‍👨🏾' => 'homes practicando loita libre: ton de pel claro, ton de pel escuro',
+    '👨🏼‍🫯‍👨🏿' => 'homes practicando loita libre: ton de pel claro, ton de pel moi escuro',
+    '👨🏽‍🫯‍👨🏻' => 'homes practicando loita libre: ton de pel medio, ton de pel moi claro',
+    '👨🏽‍🫯‍👨🏼' => 'homes practicando loita libre: ton de pel medio, ton de pel claro',
+    '👨🏽‍🫯‍👨🏾' => 'homes practicando loita libre: ton de pel medio, ton de pel escuro',
+    '👨🏽‍🫯‍👨🏿' => 'homes practicando loita libre: ton de pel medio, ton de pel moi escuro',
+    '👨🏾‍🫯‍👨🏻' => 'homes practicando loita libre: ton de pel escuro, ton de pel moi claro',
+    '👨🏾‍🫯‍👨🏼' => 'homes practicando loita libre: ton de pel escuro, ton de pel claro',
+    '👨🏾‍🫯‍👨🏽' => 'homes practicando loita libre: ton de pel escuro, ton de pel medio',
+    '👨🏾‍🫯‍👨🏿' => 'homes practicando loita libre: ton de pel escuro, ton de pel moi escuro',
+    '👨🏿‍🫯‍👨🏻' => 'homes practicando loita libre: ton de pel moi escuro, ton de pel moi claro',
+    '👨🏿‍🫯‍👨🏼' => 'homes practicando loita libre: ton de pel moi escuro, ton de pel claro',
+    '👨🏿‍🫯‍👨🏽' => 'homes practicando loita libre: ton de pel moi escuro, ton de pel medio',
+    '👨🏿‍🫯‍👨🏾' => 'homes practicando loita libre: ton de pel moi escuro, ton de pel escuro',
     '👨🏻‍❤‍👨🏻' => 'parella cun corazón: home, home, ton de pel moi claro',
     '👨🏻‍❤‍👨🏼' => 'parella cun corazón: home, home, ton de pel moi claro, ton de pel claro',
     '👨🏻‍❤‍👨🏽' => 'parella cun corazón: home, home, ton de pel moi claro, ton de pel medio',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'parella cun corazón: home, home, ton de pel moi escuro, ton de pel medio',
     '👨🏿‍❤‍👨🏾' => 'parella cun corazón: home, home, ton de pel moi escuro, ton de pel escuro',
     '👨🏿‍❤‍👨🏿' => 'parella cun corazón: home, home, ton de pel moi escuro',
+    '👨🏻‍🐰‍👨🏼' => 'homes de festa: ton de pel moi claro, ton de pel claro',
+    '👨🏻‍🐰‍👨🏽' => 'homes de festa: ton de pel moi claro, ton de pel medio',
+    '👨🏻‍🐰‍👨🏾' => 'homes de festa: ton de pel moi claro, ton de pel escuro',
+    '👨🏻‍🐰‍👨🏿' => 'homes de festa: ton de pel moi claro, ton de pel moi escuro',
+    '👨🏼‍🐰‍👨🏻' => 'homes de festa: ton de pel claro, ton de pel moi claro',
+    '👨🏼‍🐰‍👨🏽' => 'homes de festa: ton de pel claro, ton de pel medio',
+    '👨🏼‍🐰‍👨🏾' => 'homes de festa: ton de pel claro, ton de pel escuro',
+    '👨🏼‍🐰‍👨🏿' => 'homes de festa: ton de pel claro, ton de pel moi escuro',
+    '👨🏽‍🐰‍👨🏻' => 'homes de festa: ton de pel medio, ton de pel moi claro',
+    '👨🏽‍🐰‍👨🏼' => 'homes de festa: ton de pel medio, ton de pel claro',
+    '👨🏽‍🐰‍👨🏾' => 'homes de festa: ton de pel medio, ton de pel escuro',
+    '👨🏽‍🐰‍👨🏿' => 'homes de festa: ton de pel medio, ton de pel moi escuro',
+    '👨🏾‍🐰‍👨🏻' => 'homes de festa: ton de pel escuro, ton de pel moi claro',
+    '👨🏾‍🐰‍👨🏼' => 'homes de festa: ton de pel escuro, ton de pel claro',
+    '👨🏾‍🐰‍👨🏽' => 'homes de festa: ton de pel escuro, ton de pel medio',
+    '👨🏾‍🐰‍👨🏿' => 'homes de festa: ton de pel escuro, ton de pel moi escuro',
+    '👨🏿‍🐰‍👨🏻' => 'homes de festa: ton de pel moi escuro, ton de pel moi claro',
+    '👨🏿‍🐰‍👨🏼' => 'homes de festa: ton de pel moi escuro, ton de pel claro',
+    '👨🏿‍🐰‍👨🏽' => 'homes de festa: ton de pel moi escuro, ton de pel medio',
+    '👨🏿‍🐰‍👨🏾' => 'homes de festa: ton de pel moi escuro, ton de pel escuro',
+    '👩🏻‍🫯‍👩🏼' => 'mulleres practicando loita libre: ton de pel moi claro, ton de pel claro',
+    '👩🏻‍🫯‍👩🏽' => 'mulleres practicando loita libre: ton de pel moi claro, ton de pel medio',
+    '👩🏻‍🫯‍👩🏾' => 'mulleres practicando loita libre: ton de pel moi claro, ton de pel escuro',
+    '👩🏻‍🫯‍👩🏿' => 'mulleres practicando loita libre: ton de pel moi claro, ton de pel moi escuro',
+    '👩🏼‍🫯‍👩🏻' => 'mulleres practicando loita libre: ton de pel claro, ton de pel moi claro',
+    '👩🏼‍🫯‍👩🏽' => 'mulleres practicando loita libre: ton de pel claro, ton de pel medio',
+    '👩🏼‍🫯‍👩🏾' => 'mulleres practicando loita libre: ton de pel claro, ton de pel escuro',
+    '👩🏼‍🫯‍👩🏿' => 'mulleres practicando loita libre: ton de pel claro, ton de pel moi escuro',
+    '👩🏽‍🫯‍👩🏻' => 'mulleres practicando loita libre: ton de pel medio, ton de pel moi claro',
+    '👩🏽‍🫯‍👩🏼' => 'mulleres practicando loita libre: ton de pel medio, ton de pel claro',
+    '👩🏽‍🫯‍👩🏾' => 'mulleres practicando loita libre: ton de pel medio, ton de pel escuro',
+    '👩🏽‍🫯‍👩🏿' => 'mulleres practicando loita libre: ton de pel medio, ton de pel moi escuro',
+    '👩🏾‍🫯‍👩🏻' => 'mulleres practicando loita libre: ton de pel escuro, ton de pel moi claro',
+    '👩🏾‍🫯‍👩🏼' => 'mulleres practicando loita libre: ton de pel escuro, ton de pel claro',
+    '👩🏾‍🫯‍👩🏽' => 'mulleres practicando loita libre: ton de pel escuro, ton de pel medio',
+    '👩🏾‍🫯‍👩🏿' => 'mulleres practicando loita libre: ton de pel escuro, ton de pel moi escuro',
+    '👩🏿‍🫯‍👩🏻' => 'mulleres practicando loita libre: ton de pel moi escuro, ton de pel moi claro',
+    '👩🏿‍🫯‍👩🏼' => 'mulleres practicando loita libre: ton de pel moi escuro, ton de pel claro',
+    '👩🏿‍🫯‍👩🏽' => 'mulleres practicando loita libre: ton de pel moi escuro, ton de pel medio',
+    '👩🏿‍🫯‍👩🏾' => 'mulleres practicando loita libre: ton de pel moi escuro, ton de pel escuro',
     '👩🏻‍❤‍👨🏻' => 'parella cun corazón: muller, home, ton de pel moi claro',
     '👩🏻‍❤‍👨🏼' => 'parella cun corazón: muller, home, ton de pel moi claro, ton de pel claro',
     '👩🏻‍❤‍👨🏽' => 'parella cun corazón: muller, home, ton de pel moi claro, ton de pel medio',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'parella cun corazón: muller, muller, ton de pel moi escuro, ton de pel medio',
     '👩🏿‍❤‍👩🏾' => 'parella cun corazón: muller, muller, ton de pel moi escuro, ton de pel escuro',
     '👩🏿‍❤‍👩🏿' => 'parella cun corazón: muller, muller, ton de pel moi escuro',
+    '👩🏻‍🐰‍👩🏼' => 'mulleres de festa: ton de pel moi claro, ton de pel claro',
+    '👩🏻‍🐰‍👩🏽' => 'mulleres de festa: ton de pel moi claro, ton de pel medio',
+    '👩🏻‍🐰‍👩🏾' => 'mulleres de festa: ton de pel moi claro, ton de pel escuro',
+    '👩🏻‍🐰‍👩🏿' => 'mulleres de festa: ton de pel moi claro, ton de pel moi escuro',
+    '👩🏼‍🐰‍👩🏻' => 'mulleres de festa: ton de pel claro, ton de pel moi claro',
+    '👩🏼‍🐰‍👩🏽' => 'mulleres de festa: ton de pel claro, ton de pel medio',
+    '👩🏼‍🐰‍👩🏾' => 'mulleres de festa: ton de pel claro, ton de pel escuro',
+    '👩🏼‍🐰‍👩🏿' => 'mulleres de festa: ton de pel claro, ton de pel moi escuro',
+    '👩🏽‍🐰‍👩🏻' => 'mulleres de festa: ton de pel medio, ton de pel moi claro',
+    '👩🏽‍🐰‍👩🏼' => 'mulleres de festa: ton de pel medio, ton de pel claro',
+    '👩🏽‍🐰‍👩🏾' => 'mulleres de festa: ton de pel medio, ton de pel escuro',
+    '👩🏽‍🐰‍👩🏿' => 'mulleres de festa: ton de pel medio, ton de pel moi escuro',
+    '👩🏾‍🐰‍👩🏻' => 'mulleres de festa: ton de pel escuro, ton de pel moi claro',
+    '👩🏾‍🐰‍👩🏼' => 'mulleres de festa: ton de pel escuro, ton de pel claro',
+    '👩🏾‍🐰‍👩🏽' => 'mulleres de festa: ton de pel escuro, ton de pel medio',
+    '👩🏾‍🐰‍👩🏿' => 'mulleres de festa: ton de pel escuro, ton de pel moi escuro',
+    '👩🏿‍🐰‍👩🏻' => 'mulleres de festa: ton de pel moi escuro, ton de pel moi claro',
+    '👩🏿‍🐰‍👩🏼' => 'mulleres de festa: ton de pel moi escuro, ton de pel claro',
+    '👩🏿‍🐰‍👩🏽' => 'mulleres de festa: ton de pel moi escuro, ton de pel medio',
+    '👩🏿‍🐰‍👩🏾' => 'mulleres de festa: ton de pel moi escuro, ton de pel escuro',
     '🧑🏻‍🤝‍🧑🏻' => 'persoas dándose a man: ton de pel moi claro',
     '🧑🏻‍🤝‍🧑🏼' => 'persoas dándose a man: ton de pel moi claro, ton de pel claro',
     '🧑🏻‍🤝‍🧑🏽' => 'persoas dándose a man: ton de pel moi claro, ton de pel medio',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bandeira: Escocia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bandeira: Gales',
     '🧑‍🧑‍🧒‍🧒' => 'familia: adulto, adulto, neno, neno',
-    '🚶🏻‍♀‍➡' => 'muller andando cara á dereita',
-    '🚶🏼‍♀‍➡' => 'muller andando cara á dereita',
-    '🚶🏽‍♀‍➡' => 'muller andando cara á dereita',
-    '🚶🏾‍♀‍➡' => 'muller andando cara á dereita',
-    '🚶🏿‍♀‍➡' => 'muller andando cara á dereita',
-    '🚶🏻‍♂‍➡' => 'home andando cara á dereita',
-    '🚶🏼‍♂‍➡' => 'home andando cara á dereita',
-    '🚶🏽‍♂‍➡' => 'home andando cara á dereita',
-    '🚶🏾‍♂‍➡' => 'home andando cara á dereita',
-    '🚶🏿‍♂‍➡' => 'home andando cara á dereita',
-    '🧎🏻‍♀‍➡' => 'muller axeonllada cara á dereita',
-    '🧎🏼‍♀‍➡' => 'muller axeonllada cara á dereita',
-    '🧎🏽‍♀‍➡' => 'muller axeonllada cara á dereita',
-    '🧎🏾‍♀‍➡' => 'muller axeonllada cara á dereita',
-    '🧎🏿‍♀‍➡' => 'muller axeonllada cara á dereita',
-    '🧎🏻‍♂‍➡' => 'home axeonllado cara á dereita',
-    '🧎🏼‍♂‍➡' => 'home axeonllado cara á dereita',
-    '🧎🏽‍♂‍➡' => 'home axeonllado cara á dereita',
-    '🧎🏾‍♂‍➡' => 'home axeonllado cara á dereita',
-    '🧎🏿‍♂‍➡' => 'home axeonllado cara á dereita',
-    '🧑🏻‍🦯‍➡' => 'persoa cun bastón guía cara á dereita',
-    '🧑🏼‍🦯‍➡' => 'persoa cun bastón guía cara á dereita',
-    '🧑🏽‍🦯‍➡' => 'persoa cun bastón guía cara á dereita',
-    '🧑🏾‍🦯‍➡' => 'persoa cun bastón guía cara á dereita',
-    '🧑🏿‍🦯‍➡' => 'persoa cun bastón guía cara á dereita',
-    '👨🏻‍🦯‍➡' => 'home cun bastón guía cara á dereita',
-    '👨🏼‍🦯‍➡' => 'home cun bastón guía cara á dereita',
-    '👨🏽‍🦯‍➡' => 'home cun bastón guía cara á dereita',
-    '👨🏾‍🦯‍➡' => 'home cun bastón guía cara á dereita',
-    '👨🏿‍🦯‍➡' => 'home cun bastón guía cara á dereita',
-    '👩🏻‍🦯‍➡' => 'muller cun bastón guía cara á dereita',
-    '👩🏼‍🦯‍➡' => 'muller cun bastón guía cara á dereita',
-    '👩🏽‍🦯‍➡' => 'muller cun bastón guía cara á dereita',
-    '👩🏾‍🦯‍➡' => 'muller cun bastón guía cara á dereita',
-    '👩🏿‍🦯‍➡' => 'muller cun bastón guía cara á dereita',
-    '🧑🏻‍🦼‍➡' => 'persoa en cadeira de rodas motorizada cara á dereita',
-    '🧑🏼‍🦼‍➡' => 'persoa en cadeira de rodas motorizada cara á dereita',
-    '🧑🏽‍🦼‍➡' => 'persoa en cadeira de rodas motorizada cara á dereita',
-    '🧑🏾‍🦼‍➡' => 'persoa en cadeira de rodas motorizada cara á dereita',
-    '🧑🏿‍🦼‍➡' => 'persoa en cadeira de rodas motorizada cara á dereita',
-    '👨🏻‍🦼‍➡' => 'home en cadeira de rodas motorizada cara á dereita',
-    '👨🏼‍🦼‍➡' => 'home en cadeira de rodas motorizada cara á dereita',
-    '👨🏽‍🦼‍➡' => 'home en cadeira de rodas motorizada cara á dereita',
-    '👨🏾‍🦼‍➡' => 'home en cadeira de rodas motorizada cara á dereita',
-    '👨🏿‍🦼‍➡' => 'home en cadeira de rodas motorizada cara á dereita',
-    '👩🏻‍🦼‍➡' => 'muller en cadeira de rodas motorizada cara á dereita',
-    '👩🏼‍🦼‍➡' => 'muller en cadeira de rodas motorizada cara á dereita',
-    '👩🏽‍🦼‍➡' => 'muller en cadeira de rodas motorizada cara á dereita',
-    '👩🏾‍🦼‍➡' => 'muller en cadeira de rodas motorizada cara á dereita',
-    '👩🏿‍🦼‍➡' => 'muller en cadeira de rodas motorizada cara á dereita',
-    '🧑🏻‍🦽‍➡' => 'persoa en cadeira de rodas cara á dereita',
-    '🧑🏼‍🦽‍➡' => 'persoa en cadeira de rodas cara á dereita',
-    '🧑🏽‍🦽‍➡' => 'persoa en cadeira de rodas cara á dereita',
-    '🧑🏾‍🦽‍➡' => 'persoa en cadeira de rodas cara á dereita',
-    '🧑🏿‍🦽‍➡' => 'persoa en cadeira de rodas cara á dereita',
-    '👨🏻‍🦽‍➡' => 'home en cadeira de rodas cara á dereita',
-    '👨🏼‍🦽‍➡' => 'home en cadeira de rodas cara á dereita',
-    '👨🏽‍🦽‍➡' => 'home en cadeira de rodas cara á dereita',
-    '👨🏾‍🦽‍➡' => 'home en cadeira de rodas cara á dereita',
-    '👨🏿‍🦽‍➡' => 'home en cadeira de rodas cara á dereita',
-    '👩🏻‍🦽‍➡' => 'muller en cadeira de rodas cara á dereita',
-    '👩🏼‍🦽‍➡' => 'muller en cadeira de rodas cara á dereita',
-    '👩🏽‍🦽‍➡' => 'muller en cadeira de rodas cara á dereita',
-    '👩🏾‍🦽‍➡' => 'muller en cadeira de rodas cara á dereita',
-    '👩🏿‍🦽‍➡' => 'muller en cadeira de rodas cara á dereita',
-    '🏃🏻‍♀‍➡' => 'muller correndo cara á dereita',
-    '🏃🏼‍♀‍➡' => 'muller correndo cara á dereita',
-    '🏃🏽‍♀‍➡' => 'muller correndo cara á dereita',
-    '🏃🏾‍♀‍➡' => 'muller correndo cara á dereita',
-    '🏃🏿‍♀‍➡' => 'muller correndo cara á dereita',
-    '🏃🏻‍♂‍➡' => 'home correndo cara á dereita',
-    '🏃🏼‍♂‍➡' => 'home correndo cara á dereita',
-    '🏃🏽‍♂‍➡' => 'home correndo cara á dereita',
-    '🏃🏾‍♂‍➡' => 'home correndo cara á dereita',
-    '🏃🏿‍♂‍➡' => 'home correndo cara á dereita',
+    '🚶🏻‍♀‍➡' => 'muller andando: ton de pel moi claro, cara á dereita',
+    '🚶🏼‍♀‍➡' => 'muller andando: ton de pel claro, cara á dereita',
+    '🚶🏽‍♀‍➡' => 'muller andando: ton de pel medio, cara á dereita',
+    '🚶🏾‍♀‍➡' => 'muller andando: ton de pel escuro, cara á dereita',
+    '🚶🏿‍♀‍➡' => 'muller andando: ton de pel moi escuro, cara á dereita',
+    '🚶🏻‍♂‍➡' => 'home andando: ton de pel moi claro, cara á dereita',
+    '🚶🏼‍♂‍➡' => 'home andando: ton de pel claro, cara á dereita',
+    '🚶🏽‍♂‍➡' => 'home andando: ton de pel medio, cara á dereita',
+    '🚶🏾‍♂‍➡' => 'home andando: ton de pel escuro, cara á dereita',
+    '🚶🏿‍♂‍➡' => 'home andando: ton de pel moi escuro, cara á dereita',
+    '🧎🏻‍♀‍➡' => 'muller axeonllada: ton de pel moi claro, cara á dereita',
+    '🧎🏼‍♀‍➡' => 'muller axeonllada: ton de pel claro, cara á dereita',
+    '🧎🏽‍♀‍➡' => 'muller axeonllada: ton de pel medio, cara á dereita',
+    '🧎🏾‍♀‍➡' => 'muller axeonllada: ton de pel escuro, cara á dereita',
+    '🧎🏿‍♀‍➡' => 'muller axeonllada: ton de pel moi escuro, cara á dereita',
+    '🧎🏻‍♂‍➡' => 'home axeonllado: ton de pel moi claro, cara á dereita',
+    '🧎🏼‍♂‍➡' => 'home axeonllado: ton de pel claro, cara á dereita',
+    '🧎🏽‍♂‍➡' => 'home axeonllado: ton de pel medio, cara á dereita',
+    '🧎🏾‍♂‍➡' => 'home axeonllado: ton de pel escuro, cara á dereita',
+    '🧎🏿‍♂‍➡' => 'home axeonllado: ton de pel moi escuro, cara á dereita',
+    '🧑🏻‍🦯‍➡' => 'persoa cun bastón guía: ton de pel moi claro, cara á dereita',
+    '🧑🏼‍🦯‍➡' => 'persoa cun bastón guía: ton de pel claro, cara á dereita',
+    '🧑🏽‍🦯‍➡' => 'persoa cun bastón guía: ton de pel medio, cara á dereita',
+    '🧑🏾‍🦯‍➡' => 'persoa cun bastón guía: ton de pel escuro, cara á dereita',
+    '🧑🏿‍🦯‍➡' => 'persoa cun bastón guía: ton de pel moi escuro, cara á dereita',
+    '👨🏻‍🦯‍➡' => 'home cun bastón guía: ton de pel moi claro, cara á dereita',
+    '👨🏼‍🦯‍➡' => 'home cun bastón guía: ton de pel claro, cara á dereita',
+    '👨🏽‍🦯‍➡' => 'home cun bastón guía: ton de pel medio, cara á dereita',
+    '👨🏾‍🦯‍➡' => 'home cun bastón guía: ton de pel escuro, cara á dereita',
+    '👨🏿‍🦯‍➡' => 'home cun bastón guía: ton de pel moi escuro, cara á dereita',
+    '👩🏻‍🦯‍➡' => 'muller cun bastón guía: ton de pel moi claro, cara á dereita',
+    '👩🏼‍🦯‍➡' => 'muller cun bastón guía: ton de pel claro, cara á dereita',
+    '👩🏽‍🦯‍➡' => 'muller cun bastón guía: ton de pel medio, cara á dereita',
+    '👩🏾‍🦯‍➡' => 'muller cun bastón guía: ton de pel escuro, cara á dereita',
+    '👩🏿‍🦯‍➡' => 'muller cun bastón guía: ton de pel moi escuro, cara á dereita',
+    '🧑🏻‍🦼‍➡' => 'persoa en cadeira de rodas motorizada: ton de pel moi claro, cara á dereita',
+    '🧑🏼‍🦼‍➡' => 'persoa en cadeira de rodas motorizada: ton de pel claro, cara á dereita',
+    '🧑🏽‍🦼‍➡' => 'persoa en cadeira de rodas motorizada: ton de pel medio, cara á dereita',
+    '🧑🏾‍🦼‍➡' => 'persoa en cadeira de rodas motorizada: ton de pel escuro, cara á dereita',
+    '🧑🏿‍🦼‍➡' => 'persoa en cadeira de rodas motorizada: ton de pel moi escuro, cara á dereita',
+    '👨🏻‍🦼‍➡' => 'home en cadeira de rodas motorizada: ton de pel moi claro, cara á dereita',
+    '👨🏼‍🦼‍➡' => 'home en cadeira de rodas motorizada: ton de pel claro, cara á dereita',
+    '👨🏽‍🦼‍➡' => 'home en cadeira de rodas motorizada: ton de pel medio, cara á dereita',
+    '👨🏾‍🦼‍➡' => 'home en cadeira de rodas motorizada: ton de pel escuro, cara á dereita',
+    '👨🏿‍🦼‍➡' => 'home en cadeira de rodas motorizada: ton de pel moi escuro, cara á dereita',
+    '👩🏻‍🦼‍➡' => 'muller en cadeira de rodas motorizada: ton de pel moi claro, cara á dereita',
+    '👩🏼‍🦼‍➡' => 'muller en cadeira de rodas motorizada: ton de pel claro, cara á dereita',
+    '👩🏽‍🦼‍➡' => 'muller en cadeira de rodas motorizada: ton de pel medio, cara á dereita',
+    '👩🏾‍🦼‍➡' => 'muller en cadeira de rodas motorizada: ton de pel escuro, cara á dereita',
+    '👩🏿‍🦼‍➡' => 'muller en cadeira de rodas motorizada: ton de pel moi escuro, cara á dereita',
+    '🧑🏻‍🦽‍➡' => 'persoa en cadeira de rodas: ton de pel moi claro, cara á dereita',
+    '🧑🏼‍🦽‍➡' => 'persoa en cadeira de rodas: ton de pel claro, cara á dereita',
+    '🧑🏽‍🦽‍➡' => 'persoa en cadeira de rodas: ton de pel medio, cara á dereita',
+    '🧑🏾‍🦽‍➡' => 'persoa en cadeira de rodas: ton de pel escuro, cara á dereita',
+    '🧑🏿‍🦽‍➡' => 'persoa en cadeira de rodas: ton de pel moi escuro, cara á dereita',
+    '👨🏻‍🦽‍➡' => 'home en cadeira de rodas: ton de pel moi claro, cara á dereita',
+    '👨🏼‍🦽‍➡' => 'home en cadeira de rodas: ton de pel claro, cara á dereita',
+    '👨🏽‍🦽‍➡' => 'home en cadeira de rodas: ton de pel medio, cara á dereita',
+    '👨🏾‍🦽‍➡' => 'home en cadeira de rodas: ton de pel escuro, cara á dereita',
+    '👨🏿‍🦽‍➡' => 'home en cadeira de rodas: ton de pel moi escuro, cara á dereita',
+    '👩🏻‍🦽‍➡' => 'muller en cadeira de rodas: ton de pel moi claro, cara á dereita',
+    '👩🏼‍🦽‍➡' => 'muller en cadeira de rodas: ton de pel claro, cara á dereita',
+    '👩🏽‍🦽‍➡' => 'muller en cadeira de rodas: ton de pel medio, cara á dereita',
+    '👩🏾‍🦽‍➡' => 'muller en cadeira de rodas: ton de pel escuro, cara á dereita',
+    '👩🏿‍🦽‍➡' => 'muller en cadeira de rodas: ton de pel moi escuro, cara á dereita',
+    '🏃🏻‍♀‍➡' => 'muller correndo: ton de pel moi claro, cara á dereita',
+    '🏃🏼‍♀‍➡' => 'muller correndo: ton de pel claro, cara á dereita',
+    '🏃🏽‍♀‍➡' => 'muller correndo: ton de pel medio, cara á dereita',
+    '🏃🏾‍♀‍➡' => 'muller correndo: ton de pel escuro, cara á dereita',
+    '🏃🏿‍♀‍➡' => 'muller correndo: ton de pel moi escuro, cara á dereita',
+    '🏃🏻‍♂‍➡' => 'home correndo: ton de pel moi claro, cara á dereita',
+    '🏃🏼‍♂‍➡' => 'home correndo: ton de pel claro, cara á dereita',
+    '🏃🏽‍♂‍➡' => 'home correndo: ton de pel medio, cara á dereita',
+    '🏃🏾‍♂‍➡' => 'home correndo: ton de pel escuro, cara á dereita',
+    '🏃🏿‍♂‍➡' => 'home correndo: ton de pel moi escuro, cara á dereita',
     '🫱🏻‍🫲🏼' => 'aperta de mans: ton de pel moi claro, ton de pel claro',
     '🫱🏻‍🫲🏽' => 'aperta de mans: ton de pel moi claro, ton de pel medio',
     '🫱🏻‍🫲🏾' => 'aperta de mans: ton de pel moi claro, ton de pel escuro',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'aperta de mans: ton de pel moi escuro, ton de pel claro',
     '🫱🏿‍🫲🏽' => 'aperta de mans: ton de pel moi escuro, ton de pel medio',
     '🫱🏿‍🫲🏾' => 'aperta de mans: ton de pel moi escuro, ton de pel escuro',
-    '🚶‍♀‍➡' => 'muller andando cara á dereita',
-    '🚶‍♂‍➡' => 'home andando cara á dereita',
-    '🧎‍♀‍➡' => 'muller axeonllada cara á dereita',
-    '🧎‍♂‍➡' => 'home axeonllado cara á dereita',
-    '🧑‍🦯‍➡' => 'persoa cun bastón guía cara á dereita',
-    '👨‍🦯‍➡' => 'home cun bastón guía cara á dereita',
-    '👩‍🦯‍➡' => 'muller cun bastón guía cara á dereita',
-    '🧑‍🦼‍➡' => 'persoa en cadeira de rodas motorizada cara á dereita',
-    '👨‍🦼‍➡' => 'home en cadeira de rodas motorizada cara á dereita',
-    '👩‍🦼‍➡' => 'muller en cadeira de rodas motorizada cara á dereita',
-    '🧑‍🦽‍➡' => 'persoa en cadeira de rodas cara á dereita',
-    '👨‍🦽‍➡' => 'home en cadeira de rodas cara á dereita',
-    '👩‍🦽‍➡' => 'muller en cadeira de rodas cara á dereita',
-    '🏃‍♀‍➡' => 'muller correndo cara á dereita',
-    '🏃‍♂‍➡' => 'home correndo cara á dereita',
+    '🚶‍♀‍➡' => 'muller andando: cara á dereita',
+    '🚶‍♂‍➡' => 'home andando: cara á dereita',
+    '🧎‍♀‍➡' => 'muller axeonllada: cara á dereita',
+    '🧎‍♂‍➡' => 'home axeonllado: cara á dereita',
+    '🧑‍🦯‍➡' => 'persoa cun bastón guía: cara á dereita',
+    '👨‍🦯‍➡' => 'home cun bastón guía: cara á dereita',
+    '👩‍🦯‍➡' => 'muller cun bastón guía: cara á dereita',
+    '🧑‍🦼‍➡' => 'persoa en cadeira de rodas motorizada: cara á dereita',
+    '👨‍🦼‍➡' => 'home en cadeira de rodas motorizada: cara á dereita',
+    '👩‍🦼‍➡' => 'muller en cadeira de rodas motorizada: cara á dereita',
+    '🧑‍🦽‍➡' => 'persoa en cadeira de rodas: cara á dereita',
+    '👨‍🦽‍➡' => 'home en cadeira de rodas: cara á dereita',
+    '👩‍🦽‍➡' => 'muller en cadeira de rodas: cara á dereita',
+    '🏃‍♀‍➡' => 'muller correndo: cara á dereita',
+    '🏃‍♂‍➡' => 'home correndo: cara á dereita',
     '👩‍❤‍👨' => 'parella cun corazón: muller, home',
     '👨‍❤‍👨' => 'parella cun corazón: home, home',
     '👩‍❤‍👩' => 'parella cun corazón: muller, muller',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'persoa: ton de pel medio, sen pelo',
     '🧑🏾‍🦲' => 'persoa: ton de pel escuro, sen pelo',
     '🧑🏿‍🦲' => 'persoa: ton de pel moi escuro, sen pelo',
+    '🧑🏻‍🩰' => 'intérprete de ballet: ton de pel moi claro',
+    '🧑🏼‍🩰' => 'intérprete de ballet: ton de pel claro',
+    '🧑🏽‍🩰' => 'intérprete de ballet: ton de pel medio',
+    '🧑🏾‍🩰' => 'intérprete de ballet: ton de pel escuro',
+    '🧑🏿‍🩰' => 'intérprete de ballet: ton de pel moi escuro',
     '🧔🏻‍♂' => 'home con barba: ton de pel moi claro',
     '🧔🏼‍♂' => 'home con barba: ton de pel claro',
     '🧔🏽‍♂' => 'home con barba: ton de pel medio',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'muller andando: ton de pel medio',
     '🚶🏾‍♀' => 'muller andando: ton de pel escuro',
     '🚶🏿‍♀' => 'muller andando: ton de pel moi escuro',
-    '🚶🏻‍➡' => 'persoa andando cara á dereita',
-    '🚶🏼‍➡' => 'persoa andando cara á dereita',
-    '🚶🏽‍➡' => 'persoa andando cara á dereita',
-    '🚶🏾‍➡' => 'persoa andando cara á dereita',
-    '🚶🏿‍➡' => 'persoa andando cara á dereita',
+    '🚶🏻‍➡' => 'persoa andando: ton de pel moi claro, cara á dereita',
+    '🚶🏼‍➡' => 'persoa andando: ton de pel claro, cara á dereita',
+    '🚶🏽‍➡' => 'persoa andando: ton de pel medio, cara á dereita',
+    '🚶🏾‍➡' => 'persoa andando: ton de pel escuro, cara á dereita',
+    '🚶🏿‍➡' => 'persoa andando: ton de pel moi escuro, cara á dereita',
     '🧍🏻‍♂' => 'home de pé: ton de pel moi claro',
     '🧍🏼‍♂' => 'home de pé: ton de pel claro',
     '🧍🏽‍♂' => 'home de pé: ton de pel medio',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'muller axeonllada: ton de pel medio',
     '🧎🏾‍♀' => 'muller axeonllada: ton de pel escuro',
     '🧎🏿‍♀' => 'muller axeonllada: ton de pel moi escuro',
-    '🧎🏻‍➡' => 'persoa axeonllada cara á dereita',
-    '🧎🏼‍➡' => 'persoa axeonllada cara á dereita',
-    '🧎🏽‍➡' => 'persoa axeonllada cara á dereita',
-    '🧎🏾‍➡' => 'persoa axeonllada cara á dereita',
-    '🧎🏿‍➡' => 'persoa axeonllada cara á dereita',
+    '🧎🏻‍➡' => 'persoa axeonllada: ton de pel moi claro, cara á dereita',
+    '🧎🏼‍➡' => 'persoa axeonllada: ton de pel claro, cara á dereita',
+    '🧎🏽‍➡' => 'persoa axeonllada: ton de pel medio, cara á dereita',
+    '🧎🏾‍➡' => 'persoa axeonllada: ton de pel escuro, cara á dereita',
+    '🧎🏿‍➡' => 'persoa axeonllada: ton de pel moi escuro, cara á dereita',
     '🧑🏻‍🦯' => 'persoa cun bastón guía: ton de pel moi claro',
     '🧑🏼‍🦯' => 'persoa cun bastón guía: ton de pel claro',
     '🧑🏽‍🦯' => 'persoa cun bastón guía: ton de pel medio',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'muller correndo: ton de pel medio',
     '🏃🏾‍♀' => 'muller correndo: ton de pel escuro',
     '🏃🏿‍♀' => 'muller correndo: ton de pel moi escuro',
-    '🏃🏻‍➡' => 'persoa correndo cara á dereita',
-    '🏃🏼‍➡' => 'persoa correndo cara á dereita',
-    '🏃🏽‍➡' => 'persoa correndo cara á dereita',
-    '🏃🏾‍➡' => 'persoa correndo cara á dereita',
-    '🏃🏿‍➡' => 'persoa correndo cara á dereita',
+    '🏃🏻‍➡' => 'persoa correndo: ton de pel moi claro, cara á dereita',
+    '🏃🏼‍➡' => 'persoa correndo: ton de pel claro, cara á dereita',
+    '🏃🏽‍➡' => 'persoa correndo: ton de pel medio, cara á dereita',
+    '🏃🏾‍➡' => 'persoa correndo: ton de pel escuro, cara á dereita',
+    '🏃🏿‍➡' => 'persoa correndo: ton de pel moi escuro, cara á dereita',
+    '👯🏻‍♀' => 'mulleres de festa: ton de pel moi claro',
+    '👯🏼‍♀' => 'mulleres de festa: ton de pel claro',
+    '👯🏽‍♀' => 'mulleres de festa: ton de pel medio',
+    '👯🏾‍♀' => 'mulleres de festa: ton de pel escuro',
+    '👯🏿‍♀' => 'mulleres de festa: ton de pel moi escuro',
+    '👯🏻‍♂' => 'homes de festa: ton de pel moi claro',
+    '👯🏼‍♂' => 'homes de festa: ton de pel claro',
+    '👯🏽‍♂' => 'homes de festa: ton de pel medio',
+    '👯🏾‍♂' => 'homes de festa: ton de pel escuro',
+    '👯🏿‍♂' => 'homes de festa: ton de pel moi escuro',
     '🧖🏻‍♂' => 'home dándose un baño de vapor: ton de pel moi claro',
     '🧖🏼‍♂' => 'home dándose un baño de vapor: ton de pel claro',
     '🧖🏽‍♂' => 'home dándose un baño de vapor: ton de pel medio',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'muller facendo unha viravolta lateral: ton de pel medio',
     '🤸🏾‍♀' => 'muller facendo unha viravolta lateral: ton de pel escuro',
     '🤸🏿‍♀' => 'muller facendo unha viravolta lateral: ton de pel moi escuro',
+    '🤼🏻‍♀' => 'mulleres practicando loita libre: ton de pel moi claro',
+    '🤼🏼‍♀' => 'mulleres practicando loita libre: ton de pel claro',
+    '🤼🏽‍♀' => 'mulleres practicando loita libre: ton de pel medio',
+    '🤼🏾‍♀' => 'mulleres practicando loita libre: ton de pel escuro',
+    '🤼🏿‍♀' => 'mulleres practicando loita libre: ton de pel moi escuro',
+    '🤼🏻‍♂' => 'homes practicando loita libre: ton de pel moi claro',
+    '🤼🏼‍♂' => 'homes practicando loita libre: ton de pel claro',
+    '🤼🏽‍♂' => 'homes practicando loita libre: ton de pel medio',
+    '🤼🏾‍♂' => 'homes practicando loita libre: ton de pel escuro',
+    '🤼🏿‍♂' => 'homes practicando loita libre: ton de pel moi escuro',
     '🤽🏻‍♂' => 'home xogando a wáter-polo: ton de pel moi claro',
     '🤽🏼‍♂' => 'home xogando a wáter-polo: ton de pel claro',
     '🤽🏽‍♂' => 'home xogando a wáter-polo: ton de pel medio',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'muller: pelo rizado',
     '👩‍🦳' => 'muller: pelo cano',
     '👩‍🦲' => 'muller: sen pelo',
-    '🚶‍➡' => 'persoa andando cara á dereita',
-    '🧎‍➡' => 'persoa axeonllada cara á dereita',
-    '🏃‍➡' => 'persoa correndo cara á dereita',
+    '🚶‍➡' => 'persoa andando: cara á dereita',
+    '🧎‍➡' => 'persoa axeonllada: cara á dereita',
+    '🏃‍➡' => 'persoa correndo: cara á dereita',
     '👨‍👦' => 'familia: home, neno',
     '👨‍👧' => 'familia: home, nena',
     '👩‍👦' => 'familia: muller, neno',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'muller en cadeira de rodas',
     '🏃‍♂' => 'home correndo',
     '🏃‍♀' => 'muller correndo',
+    '🧑‍🩰' => 'intérprete de ballet',
     '👯‍♂' => 'homes de festa',
     '👯‍♀' => 'mulleres de festa',
     '🧖‍♂' => 'home dándose un baño de vapor',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'home de negocios: ton de pel medio',
     '🕴🏾' => 'home de negocios: ton de pel escuro',
     '🕴🏿' => 'home de negocios: ton de pel moi escuro',
+    '👯🏻' => 'xente de festa: ton de pel moi claro',
+    '👯🏼' => 'xente de festa: ton de pel claro',
+    '👯🏽' => 'xente de festa: ton de pel medio',
+    '👯🏾' => 'xente de festa: ton de pel escuro',
+    '👯🏿' => 'xente de festa: ton de pel moi escuro',
     '🧖🏻' => 'baño de vapor: ton de pel moi claro',
     '🧖🏼' => 'baño de vapor: ton de pel claro',
     '🧖🏽' => 'baño de vapor: ton de pel medio',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ximnasia: ton de pel medio',
     '🤸🏾' => 'ximnasia: ton de pel escuro',
     '🤸🏿' => 'ximnasia: ton de pel moi escuro',
+    '🤼🏻' => 'loita libre: ton de pel moi claro',
+    '🤼🏼' => 'loita libre: ton de pel claro',
+    '🤼🏽' => 'loita libre: ton de pel medio',
+    '🤼🏾' => 'loita libre: ton de pel escuro',
+    '🤼🏿' => 'loita libre: ton de pel moi escuro',
     '🤽🏻' => 'wáter-polo: ton de pel moi claro',
     '🤽🏼' => 'wáter-polo: ton de pel claro',
     '🤽🏽' => 'wáter-polo: ton de pel medio',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bandeira: China',
     '🇨🇴' => 'bandeira: Colombia',
     '🇨🇵' => 'bandeira: Illa Clipperton',
+    '🇨🇶' => 'bandeira: Sark',
     '🇨🇷' => 'bandeira: Costa Rica',
     '🇨🇺' => 'bandeira: Cuba',
     '🇨🇻' => 'bandeira: Cabo Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ton de pel medio',
     '🏾' => 'ton de pel escuro',
     '🏿' => 'ton de pel moi escuro',
-    '🪉' => 'arpa',
-    '🪏' => 'pa',
-    '🪾' => 'árbore sen follas',
-    '🫆' => 'impresión dixital',
-    '🫜' => 'tubérculo',
-    '🫟' => 'salpicadura',
-    '🫩' => 'cara con olleiras',
     '😀' => 'cara moi riseira',
     '😃' => 'cara moi riseira con ollos grandes',
     '😄' => 'cara moi riseira cos ollos alegres',
@@ -2450,6 +2600,7 @@
     '😪' => 'cara de sono',
     '🤤' => 'cara babexando',
     '😴' => 'cara durmindo',
+    '🫩' => 'cara con olleiras',
     '😷' => 'cara con máscara médica',
     '🤒' => 'cara con termómetro',
     '🤕' => 'cara coa cabeza vendada',
@@ -2476,6 +2627,7 @@
     '😯' => 'cara estupefacta',
     '😲' => 'cara abraiada',
     '😳' => 'cara arroibada',
+    '🫪' => 'cara desencaixada',
     '🥺' => 'cara de súplica',
     '🥹' => 'cara contendo as bágoas',
     '😦' => 'cara triste coa boca aberta',
@@ -2547,6 +2699,7 @@
     '💋' => 'marca de bico',
     '💯' => '100 puntos',
     '💢' => 'símbolo de enfado',
+    '🫯' => 'liorta',
     '💥' => 'explosión',
     '💫' => 'símbolo de atordamento',
     '💦' => 'pingas de suor',
@@ -2670,6 +2823,7 @@
     '🧞' => 'xenio',
     '🧟' => 'zombi',
     '🧌' => 'troll',
+    '🫈' => 'criatura peluda',
     '💆' => 'masaxe facial',
     '💇' => 'corte de pelo',
     '🚶' => 'persoa andando',
@@ -2713,6 +2867,7 @@
     '🫂' => 'persoas abrazándose',
     '👪' => 'familia',
     '👣' => 'pegadas de pés',
+    '🫆' => 'impresión dixital',
     '🦰' => 'pelo roxo',
     '🦱' => 'pelo rizado',
     '🦳' => 'pelo cano',
@@ -2812,6 +2967,7 @@
     '🐳' => 'balea botando un chorro',
     '🐋' => 'balea',
     '🐬' => 'golfiño',
+    '🫍' => 'candorca',
     '🦭' => 'foca',
     '🐟' => 'peixe',
     '🐠' => 'peixe tropical',
@@ -2821,6 +2977,11 @@
     '🐚' => 'bucina mariña',
     '🪸' => 'coral',
     '🪼' => 'medusa',
+    '🦀' => 'caranguexo',
+    '🦞' => 'lagosta',
+    '🦐' => 'gamba',
+    '🦑' => 'lura',
+    '🦪' => 'ostra',
     '🐌' => 'caracol',
     '🦋' => 'bolboreta',
     '🐛' => 'cempés',
@@ -2865,6 +3026,7 @@
     '🪹' => 'niño baleiro',
     '🪺' => 'niño con ovos',
     '🍄' => 'cogomelo',
+    '🪾' => 'árbore sen follas',
     '🍇' => 'uvas',
     '🍈' => 'melón',
     '🍉' => 'sandía',
@@ -2901,6 +3063,7 @@
     '🌰' => 'castaña',
     '🫚' => 'xenxibre',
     '🫛' => 'vaíña',
+    '🫜' => 'tubérculo',
     '🍞' => 'pan de molde',
     '🥐' => 'croissant',
     '🥖' => 'barra de pan',
@@ -2952,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'galleta da fortuna',
     '🥡' => 'comida para levar',
-    '🦀' => 'caranguexo',
-    '🦞' => 'lagosta',
-    '🦐' => 'gamba',
-    '🦑' => 'lura',
-    '🦪' => 'ostra',
     '🍦' => 'xeado de máquina',
     '🍧' => 'sobremesa de xeo picado',
     '🍨' => 'copa de xeado',
@@ -3007,6 +3165,7 @@
     '🧭' => 'compás',
     '🏔' => 'montañas nevadas',
     '⛰' => 'montañas',
+    '🛘' => 'desprendemento de terras',
     '🌋' => 'volcán',
     '🗻' => 'monte Fuji',
     '🏕' => 'cámping',
@@ -3367,16 +3526,18 @@
     '🎧' => 'auriculares',
     '📻' => 'radio',
     '🎷' => 'saxofón',
+    '🎺' => 'trompeta',
+    '🪊' => 'trombón',
     '🪗' => 'acordeón',
     '🎸' => 'guitarra',
     '🎹' => 'teclado musical',
-    '🎺' => 'trompeta',
     '🎻' => 'violín',
     '🪕' => 'banxo',
     '🥁' => 'tambor',
     '🪘' => 'tambor alto',
     '🪇' => 'maracas',
     '🪈' => 'frauta',
+    '🪉' => 'arpa',
     '📱' => 'teléfono móbil',
     '📲' => 'teléfono móbil con frecha',
     '☎' => 'teléfono',
@@ -3430,8 +3591,9 @@
     '📑' => 'marcador autoadhesivo',
     '🔖' => 'marcapáxinas',
     '🏷' => 'etiqueta',
-    '💰' => 'saco de diñeiro',
     '🪙' => 'moeda',
+    '💰' => 'saco de diñeiro',
+    '🪎' => 'cofre do tesouro',
     '💴' => 'billete de ien',
     '💵' => 'billete de dólar',
     '💶' => 'billete de euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'caixa de ferramentas',
     '🧲' => 'imán',
     '🪜' => 'escada',
+    '🪏' => 'pa',
     '⚗' => 'alambique',
     '🧪' => 'tubo de ensaio',
     '🧫' => 'placa de Petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'estrela de oito puntas',
     '❇' => 'chispa',
     '™' => 'marca rexistrada “TM”',
+    '🫟' => 'salpicadura',
     '🔠' => 'letras en maiúscula',
     '🔡' => 'letras en minúscula',
     '🔢' => 'números',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-gu.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ચુંબન: સ્ત્રી, સ્ત્રી, ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
     '👩🏿‍❤‍💋‍👩🏾' => 'ચુંબન: સ્ત્રી, સ્ત્રી, ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
     '👩🏿‍❤‍💋‍👩🏿' => 'ચુંબન: સ્ત્રી, સ્ત્રી, ઘેરો ચામડીનો રંગ',
+    '🧑🏻‍🫯‍🧑🏼' => 'પહેલવાનો: ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '🧑🏻‍🫯‍🧑🏽' => 'પહેલવાનો: ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '🧑🏻‍🫯‍🧑🏾' => 'પહેલવાનો: ચામડીનો આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🧑🏻‍🫯‍🧑🏿' => 'પહેલવાનો: ચામડીનો આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '🧑🏼‍🫯‍🧑🏻' => 'પહેલવાનો: ચામડીનો મધ્યમ આછો રંગ, ચામડીનો આછો રંગ',
+    '🧑🏼‍🫯‍🧑🏽' => 'પહેલવાનો: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '🧑🏼‍🫯‍🧑🏾' => 'પહેલવાનો: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🧑🏼‍🫯‍🧑🏿' => 'પહેલવાનો: ચામડીનો મધ્યમ આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '🧑🏽‍🫯‍🧑🏻' => 'પહેલવાનો: મધ્યમ ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '🧑🏽‍🫯‍🧑🏼' => 'પહેલવાનો: મધ્યમ ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '🧑🏽‍🫯‍🧑🏾' => 'પહેલવાનો: મધ્યમ ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🧑🏽‍🫯‍🧑🏿' => 'પહેલવાનો: મધ્યમ ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '🧑🏾‍🫯‍🧑🏻' => 'પહેલવાનો: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '🧑🏾‍🫯‍🧑🏼' => 'પહેલવાનો: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '🧑🏾‍🫯‍🧑🏽' => 'પહેલવાનો: મધ્યમ ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '🧑🏾‍🫯‍🧑🏿' => 'પહેલવાનો: મધ્યમ ઘેરો ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '🧑🏿‍🫯‍🧑🏻' => 'પહેલવાનો: ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '🧑🏿‍🫯‍🧑🏼' => 'પહેલવાનો: ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '🧑🏿‍🫯‍🧑🏽' => 'પહેલવાનો: ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '🧑🏿‍🫯‍🧑🏾' => 'પહેલવાનો: ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
     '🧑🏻‍❤‍🧑🏼' => 'દિલ સાથેનું યુગલ: વ્યક્તિ, વ્યક્તિ, ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
     '🧑🏻‍❤‍🧑🏽' => 'દિલ સાથેનું યુગલ: વ્યક્તિ, વ્યક્તિ, ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
     '🧑🏻‍❤‍🧑🏾' => 'દિલ સાથેનું યુગલ: વ્યક્તિ, વ્યક્તિ, ચામડીનો આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'દિલ સાથેનું યુગલ: વ્યક્તિ, વ્યક્તિ, ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
     '🧑🏿‍❤‍🧑🏽' => 'દિલ સાથેનું યુગલ: વ્યક્તિ, વ્યક્તિ, ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
     '🧑🏿‍❤‍🧑🏾' => 'દિલ સાથેનું યુગલ: વ્યક્તિ, વ્યક્તિ, ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🧑🏻‍🐰‍🧑🏼' => 'પાર્ટી કરતી સ્ત્રીઓ: ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '🧑🏻‍🐰‍🧑🏽' => 'પાર્ટી કરતી સ્ત્રીઓ: ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '🧑🏻‍🐰‍🧑🏾' => 'પાર્ટી કરતી સ્ત્રીઓ: ચામડીનો આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🧑🏻‍🐰‍🧑🏿' => 'પાર્ટી કરતી સ્ત્રીઓ: ચામડીનો આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '🧑🏼‍🐰‍🧑🏻' => 'પાર્ટી કરતી સ્ત્રીઓ: ચામડીનો મધ્યમ આછો રંગ, ચામડીનો આછો રંગ',
+    '🧑🏼‍🐰‍🧑🏽' => 'પાર્ટી કરતી સ્ત્રીઓ: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '🧑🏼‍🐰‍🧑🏾' => 'પાર્ટી કરતી સ્ત્રીઓ: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🧑🏼‍🐰‍🧑🏿' => 'પાર્ટી કરતી સ્ત્રીઓ: ચામડીનો મધ્યમ આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '🧑🏽‍🐰‍🧑🏻' => 'પાર્ટી કરતી સ્ત્રીઓ: મધ્યમ ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '🧑🏽‍🐰‍🧑🏼' => 'પાર્ટી કરતી સ્ત્રીઓ: મધ્યમ ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '🧑🏽‍🐰‍🧑🏾' => 'પાર્ટી કરતી સ્ત્રીઓ: મધ્યમ ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🧑🏽‍🐰‍🧑🏿' => 'પાર્ટી કરતી સ્ત્રીઓ: મધ્યમ ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '🧑🏾‍🐰‍🧑🏻' => 'પાર્ટી કરતી સ્ત્રીઓ: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '🧑🏾‍🐰‍🧑🏼' => 'પાર્ટી કરતી સ્ત્રીઓ: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '🧑🏾‍🐰‍🧑🏽' => 'પાર્ટી કરતી સ્ત્રીઓ: મધ્યમ ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '🧑🏾‍🐰‍🧑🏿' => 'પાર્ટી કરતી સ્ત્રીઓ: મધ્યમ ઘેરો ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '🧑🏿‍🐰‍🧑🏻' => 'પાર્ટી કરતી સ્ત્રીઓ: ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '🧑🏿‍🐰‍🧑🏼' => 'પાર્ટી કરતી સ્ત્રીઓ: ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '🧑🏿‍🐰‍🧑🏽' => 'પાર્ટી કરતી સ્ત્રીઓ: ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '🧑🏿‍🐰‍🧑🏾' => 'પાર્ટી કરતી સ્ત્રીઓ: ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👨🏻‍🫯‍👨🏼' => 'કુસ્તી કરતા પુરુષો: ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👨🏻‍🫯‍👨🏽' => 'કુસ્તી કરતા પુરુષો: ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👨🏻‍🫯‍👨🏾' => 'કુસ્તી કરતા પુરુષો: ચામડીનો આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👨🏻‍🫯‍👨🏿' => 'કુસ્તી કરતા પુરુષો: ચામડીનો આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '👨🏼‍🫯‍👨🏻' => 'કુસ્તી કરતા પુરુષો: ચામડીનો મધ્યમ આછો રંગ, ચામડીનો આછો રંગ',
+    '👨🏼‍🫯‍👨🏽' => 'કુસ્તી કરતા પુરુષો: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👨🏼‍🫯‍👨🏾' => 'કુસ્તી કરતા પુરુષો: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👨🏼‍🫯‍👨🏿' => 'કુસ્તી કરતા પુરુષો: ચામડીનો મધ્યમ આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '👨🏽‍🫯‍👨🏻' => 'કુસ્તી કરતા પુરુષો: મધ્યમ ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👨🏽‍🫯‍👨🏼' => 'કુસ્તી કરતા પુરુષો: મધ્યમ ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👨🏽‍🫯‍👨🏾' => 'કુસ્તી કરતા પુરુષો: મધ્યમ ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👨🏽‍🫯‍👨🏿' => 'કુસ્તી કરતા પુરુષો: મધ્યમ ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '👨🏾‍🫯‍👨🏻' => 'કુસ્તી કરતા પુરુષો: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👨🏾‍🫯‍👨🏼' => 'કુસ્તી કરતા પુરુષો: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👨🏾‍🫯‍👨🏽' => 'કુસ્તી કરતા પુરુષો: મધ્યમ ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👨🏾‍🫯‍👨🏿' => 'કુસ્તી કરતા પુરુષો: મધ્યમ ઘેરો ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '👨🏿‍🫯‍👨🏻' => 'કુસ્તી કરતા પુરુષો: ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👨🏿‍🫯‍👨🏼' => 'કુસ્તી કરતા પુરુષો: ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👨🏿‍🫯‍👨🏽' => 'કુસ્તી કરતા પુરુષો: ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👨🏿‍🫯‍👨🏾' => 'કુસ્તી કરતા પુરુષો: ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
     '👨🏻‍❤‍👨🏻' => 'દિલ સાથેનું યુગલ: પુરુષ, પુરુષ, ચામડીનો આછો રંગ',
     '👨🏻‍❤‍👨🏼' => 'દિલ સાથેનું યુગલ: પુરુષ, પુરુષ, ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
     '👨🏻‍❤‍👨🏽' => 'દિલ સાથેનું યુગલ: પુરુષ, પુરુષ, ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'દિલ સાથેનું યુગલ: પુરુષ, પુરુષ, ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
     '👨🏿‍❤‍👨🏾' => 'દિલ સાથેનું યુગલ: પુરુષ, પુરુષ, ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
     '👨🏿‍❤‍👨🏿' => 'દિલ સાથેનું યુગલ: પુરુષ, પુરુષ, ઘેરો ચામડીનો રંગ',
+    '👨🏻‍🐰‍👨🏼' => 'પાર્ટી કરતા પુરુષો: ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👨🏻‍🐰‍👨🏽' => 'પાર્ટી કરતા પુરુષો: ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👨🏻‍🐰‍👨🏾' => 'પાર્ટી કરતા પુરુષો: ચામડીનો આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👨🏻‍🐰‍👨🏿' => 'પાર્ટી કરતા પુરુષો: ચામડીનો આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '👨🏼‍🐰‍👨🏻' => 'પાર્ટી કરતા પુરુષો: ચામડીનો મધ્યમ આછો રંગ, ચામડીનો આછો રંગ',
+    '👨🏼‍🐰‍👨🏽' => 'પાર્ટી કરતા પુરુષો: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👨🏼‍🐰‍👨🏾' => 'પાર્ટી કરતા પુરુષો: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👨🏼‍🐰‍👨🏿' => 'પાર્ટી કરતા પુરુષો: ચામડીનો મધ્યમ આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '👨🏽‍🐰‍👨🏻' => 'પાર્ટી કરતા પુરુષો: મધ્યમ ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👨🏽‍🐰‍👨🏼' => 'પાર્ટી કરતા પુરુષો: મધ્યમ ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👨🏽‍🐰‍👨🏾' => 'પાર્ટી કરતા પુરુષો: મધ્યમ ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👨🏽‍🐰‍👨🏿' => 'પાર્ટી કરતા પુરુષો: મધ્યમ ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '👨🏾‍🐰‍👨🏻' => 'પાર્ટી કરતા પુરુષો: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👨🏾‍🐰‍👨🏼' => 'પાર્ટી કરતા પુરુષો: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👨🏾‍🐰‍👨🏽' => 'પાર્ટી કરતા પુરુષો: મધ્યમ ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👨🏾‍🐰‍👨🏿' => 'પાર્ટી કરતા પુરુષો: મધ્યમ ઘેરો ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '👨🏿‍🐰‍👨🏻' => 'પાર્ટી કરતા પુરુષો: ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👨🏿‍🐰‍👨🏼' => 'પાર્ટી કરતા પુરુષો: ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👨🏿‍🐰‍👨🏽' => 'પાર્ટી કરતા પુરુષો: ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👨🏿‍🐰‍👨🏾' => 'પાર્ટી કરતા પુરુષો: ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👩🏻‍🫯‍👩🏼' => 'કુસ્તી કરતી સ્ત્રીઓ: ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👩🏻‍🫯‍👩🏽' => 'કુસ્તી કરતી સ્ત્રીઓ: ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👩🏻‍🫯‍👩🏾' => 'કુસ્તી કરતી સ્ત્રીઓ: ચામડીનો આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👩🏻‍🫯‍👩🏿' => 'કુસ્તી કરતી સ્ત્રીઓ: ચામડીનો આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '👩🏼‍🫯‍👩🏻' => 'કુસ્તી કરતી સ્ત્રીઓ: ચામડીનો મધ્યમ આછો રંગ, ચામડીનો આછો રંગ',
+    '👩🏼‍🫯‍👩🏽' => 'કુસ્તી કરતી સ્ત્રીઓ: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👩🏼‍🫯‍👩🏾' => 'કુસ્તી કરતી સ્ત્રીઓ: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👩🏼‍🫯‍👩🏿' => 'કુસ્તી કરતી સ્ત્રીઓ: ચામડીનો મધ્યમ આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '👩🏽‍🫯‍👩🏻' => 'કુસ્તી કરતી સ્ત્રીઓ: મધ્યમ ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👩🏽‍🫯‍👩🏼' => 'કુસ્તી કરતી સ્ત્રીઓ: મધ્યમ ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👩🏽‍🫯‍👩🏾' => 'કુસ્તી કરતી સ્ત્રીઓ: મધ્યમ ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👩🏽‍🫯‍👩🏿' => 'કુસ્તી કરતી સ્ત્રીઓ: મધ્યમ ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '👩🏾‍🫯‍👩🏻' => 'કુસ્તી કરતી સ્ત્રીઓ: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👩🏾‍🫯‍👩🏼' => 'કુસ્તી કરતી સ્ત્રીઓ: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👩🏾‍🫯‍👩🏽' => 'કુસ્તી કરતી સ્ત્રીઓ: મધ્યમ ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👩🏾‍🫯‍👩🏿' => 'કુસ્તી કરતી સ્ત્રીઓ: મધ્યમ ઘેરો ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '👩🏿‍🫯‍👩🏻' => 'કુસ્તી કરતી સ્ત્રીઓ: ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👩🏿‍🫯‍👩🏼' => 'કુસ્તી કરતી સ્ત્રીઓ: ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👩🏿‍🫯‍👩🏽' => 'કુસ્તી કરતી સ્ત્રીઓ: ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👩🏿‍🫯‍👩🏾' => 'કુસ્તી કરતી સ્ત્રીઓ: ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
     '👩🏻‍❤‍👨🏻' => 'દિલ સાથેનું યુગલ: સ્ત્રી, પુરુષ, ચામડીનો આછો રંગ',
     '👩🏻‍❤‍👨🏼' => 'દિલ સાથેનું યુગલ: સ્ત્રી, પુરુષ, ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
     '👩🏻‍❤‍👨🏽' => 'દિલ સાથેનું યુગલ: સ્ત્રી, પુરુષ, ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'દિલ સાથેનું યુગલ: સ્ત્રી, સ્ત્રી, ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
     '👩🏿‍❤‍👩🏾' => 'દિલ સાથેનું યુગલ: સ્ત્રી, સ્ત્રી, ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
     '👩🏿‍❤‍👩🏿' => 'દિલ સાથેનું યુગલ: સ્ત્રી, સ્ત્રી, ઘેરો ચામડીનો રંગ',
+    '👩🏻‍🐰‍👩🏼' => 'સ્ત્રીઓ પાર્ટી કરે છે: ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👩🏻‍🐰‍👩🏽' => 'સ્ત્રીઓ પાર્ટી કરે છે: ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👩🏻‍🐰‍👩🏾' => 'સ્ત્રીઓ પાર્ટી કરે છે: ચામડીનો આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👩🏻‍🐰‍👩🏿' => 'સ્ત્રીઓ પાર્ટી કરે છે: ચામડીનો આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '👩🏼‍🐰‍👩🏻' => 'સ્ત્રીઓ પાર્ટી કરે છે: ચામડીનો મધ્યમ આછો રંગ, ચામડીનો આછો રંગ',
+    '👩🏼‍🐰‍👩🏽' => 'સ્ત્રીઓ પાર્ટી કરે છે: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👩🏼‍🐰‍👩🏾' => 'સ્ત્રીઓ પાર્ટી કરે છે: ચામડીનો મધ્યમ આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👩🏼‍🐰‍👩🏿' => 'સ્ત્રીઓ પાર્ટી કરે છે: ચામડીનો મધ્યમ આછો રંગ, ઘેરો ચામડીનો રંગ',
+    '👩🏽‍🐰‍👩🏻' => 'સ્ત્રીઓ પાર્ટી કરે છે: મધ્યમ ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👩🏽‍🐰‍👩🏼' => 'સ્ત્રીઓ પાર્ટી કરે છે: મધ્યમ ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👩🏽‍🐰‍👩🏾' => 'સ્ત્રીઓ પાર્ટી કરે છે: મધ્યમ ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👩🏽‍🐰‍👩🏿' => 'સ્ત્રીઓ પાર્ટી કરે છે: મધ્યમ ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '👩🏾‍🐰‍👩🏻' => 'સ્ત્રીઓ પાર્ટી કરે છે: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👩🏾‍🐰‍👩🏼' => 'સ્ત્રીઓ પાર્ટી કરે છે: મધ્યમ ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👩🏾‍🐰‍👩🏽' => 'સ્ત્રીઓ પાર્ટી કરે છે: મધ્યમ ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👩🏾‍🐰‍👩🏿' => 'સ્ત્રીઓ પાર્ટી કરે છે: મધ્યમ ઘેરો ચામડીનો રંગ, ઘેરો ચામડીનો રંગ',
+    '👩🏿‍🐰‍👩🏻' => 'સ્ત્રીઓ પાર્ટી કરે છે: ઘેરો ચામડીનો રંગ, ચામડીનો આછો રંગ',
+    '👩🏿‍🐰‍👩🏼' => 'સ્ત્રીઓ પાર્ટી કરે છે: ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
+    '👩🏿‍🐰‍👩🏽' => 'સ્ત્રીઓ પાર્ટી કરે છે: ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
+    '👩🏿‍🐰‍👩🏾' => 'સ્ત્રીઓ પાર્ટી કરે છે: ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
     '🧑🏻‍🤝‍🧑🏻' => 'હાથ પકડેલા લોકો: ચામડીનો આછો રંગ',
     '🧑🏻‍🤝‍🧑🏼' => 'હાથ પકડેલા લોકો: ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
     '🧑🏻‍🤝‍🧑🏽' => 'હાથ પકડેલા લોકો: ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
@@ -288,85 +408,85 @@
     '👩‍👩‍👧‍👦' => 'કુટુંબ: સ્ત્રી, સ્ત્રી, છોકરી, છોકરો',
     '👩‍👩‍👦‍👦' => 'કુટુંબ: સ્ત્રી, સ્ત્રી, છોકરો, છોકરો',
     '👩‍👩‍👧‍👧' => 'કુટુંબ: સ્ત્રી, સ્ત્રી, છોકરી, છોકરી',
-    '🏴󠁧󠁢󠁥󠁮󠁧󠁿' => 'ઝંડો: ઈંગ્લેન્ડ',
-    '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ઝંડો: સ્કોટલેન્ડ',
+    '🏴󠁧󠁢󠁥󠁮󠁧󠁿' => 'ઝંડો: ઈંગ્લૅન્ડ',
+    '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ઝંડો: સ્કૉટલૅન્ડ',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'ઝંડો: વેલ્સ',
     '🧑‍🧑‍🧒‍🧒' => 'કુટુંબ: પુખ્ત, પુખ્ત, બાળક, બાળક',
-    '🚶🏻‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી જમણી દિશામાં',
-    '🚶🏼‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી જમણી દિશામાં',
-    '🚶🏽‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી જમણી દિશામાં',
-    '🚶🏾‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી જમણી દિશામાં',
-    '🚶🏿‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી જમણી દિશામાં',
-    '🚶🏻‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ જમણી દિશામાં',
-    '🚶🏼‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ જમણી દિશામાં',
-    '🚶🏽‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ જમણી દિશામાં',
-    '🚶🏾‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ જમણી દિશામાં',
-    '🚶🏿‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ જમણી દિશામાં',
-    '🧎🏻‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી જમણી દિશામાં',
-    '🧎🏼‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી જમણી દિશામાં',
-    '🧎🏽‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી જમણી દિશામાં',
-    '🧎🏾‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી જમણી દિશામાં',
-    '🧎🏿‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી જમણી દિશામાં',
-    '🧎🏻‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ જમણી દિશામાં',
-    '🧎🏼‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ જમણી દિશામાં',
-    '🧎🏽‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ જમણી દિશામાં',
-    '🧎🏾‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ જમણી દિશામાં',
-    '🧎🏿‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ જમણી દિશામાં',
-    '🧑🏻‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ જમણી દિશામાં',
-    '🧑🏼‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ જમણી દિશામાં',
-    '🧑🏽‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ જમણી દિશામાં',
-    '🧑🏾‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ જમણી દિશામાં',
-    '🧑🏿‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ જમણી દિશામાં',
-    '👨🏻‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ જમણી દિશામાં',
-    '👨🏼‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ જમણી દિશામાં',
-    '👨🏽‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ જમણી દિશામાં',
-    '👨🏾‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ જમણી દિશામાં',
-    '👨🏿‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ જમણી દિશામાં',
-    '👩🏻‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી જમણી દિશામાં',
-    '👩🏼‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી જમણી દિશામાં',
-    '👩🏽‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી જમણી દિશામાં',
-    '👩🏾‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી જમણી દિશામાં',
-    '👩🏿‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી જમણી દિશામાં',
-    '🧑🏻‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '🧑🏼‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '🧑🏽‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '🧑🏾‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '🧑🏿‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '👨🏻‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👨🏼‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👨🏽‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👨🏾‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👨🏿‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👩🏻‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '👩🏼‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '👩🏽‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '👩🏾‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '👩🏿‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '🧑🏻‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '🧑🏼‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '🧑🏽‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '🧑🏾‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '🧑🏿‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '👨🏻‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👨🏼‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👨🏽‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👨🏾‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👨🏿‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👩🏻‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '👩🏼‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '👩🏽‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '👩🏾‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '👩🏿‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '🏃🏻‍♀‍➡' => 'દોડતી સ્ત્રી જમણી દિશામાં',
-    '🏃🏼‍♀‍➡' => 'દોડતી સ્ત્રી જમણી દિશામાં',
-    '🏃🏽‍♀‍➡' => 'દોડતી સ્ત્રી જમણી દિશામાં',
-    '🏃🏾‍♀‍➡' => 'દોડતી સ્ત્રી જમણી દિશામાં',
-    '🏃🏿‍♀‍➡' => 'દોડતી સ્ત્રી જમણી દિશામાં',
-    '🏃🏻‍♂‍➡' => 'દોડતો પુરુષ જમણી દિશામાં',
-    '🏃🏼‍♂‍➡' => 'દોડતો પુરુષ જમણી દિશામાં',
-    '🏃🏽‍♂‍➡' => 'દોડતો પુરુષ જમણી દિશામાં',
-    '🏃🏾‍♂‍➡' => 'દોડતો પુરુષ જમણી દિશામાં',
-    '🏃🏿‍♂‍➡' => 'દોડતો પુરુષ જમણી દિશામાં',
+    '🚶🏻‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🚶🏼‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🚶🏽‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🚶🏾‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🚶🏿‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🚶🏻‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🚶🏼‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🚶🏽‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🚶🏾‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🚶🏿‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧎🏻‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🧎🏼‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🧎🏽‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🧎🏾‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧎🏿‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧎🏻‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🧎🏼‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🧎🏽‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🧎🏾‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧎🏿‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧑🏻‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🧑🏼‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🧑🏽‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🧑🏾‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧑🏿‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👨🏻‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '👨🏼‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '👨🏽‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '👨🏾‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👨🏿‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👩🏻‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '👩🏼‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '👩🏽‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '👩🏾‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👩🏿‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧑🏻‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🧑🏼‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🧑🏽‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🧑🏾‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧑🏿‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👨🏻‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '👨🏼‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '👨🏽‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '👨🏾‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👨🏿‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👩🏻‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '👩🏼‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '👩🏽‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '👩🏾‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👩🏿‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧑🏻‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🧑🏼‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🧑🏽‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🧑🏾‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧑🏿‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👨🏻‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '👨🏼‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '👨🏽‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '👨🏾‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👨🏿‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👩🏻‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '👩🏼‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '👩🏽‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '👩🏾‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👩🏿‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🏃🏻‍♀‍➡' => 'દોડતી સ્ત્રી: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🏃🏼‍♀‍➡' => 'દોડતી સ્ત્રી: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🏃🏽‍♀‍➡' => 'દોડતી સ્ત્રી: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🏃🏾‍♀‍➡' => 'દોડતી સ્ત્રી: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🏃🏿‍♀‍➡' => 'દોડતી સ્ત્રી: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🏃🏻‍♂‍➡' => 'દોડતો પુરુષ: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🏃🏼‍♂‍➡' => 'દોડતો પુરુષ: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🏃🏽‍♂‍➡' => 'દોડતો પુરુષ: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🏃🏾‍♂‍➡' => 'દોડતો પુરુષ: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🏃🏿‍♂‍➡' => 'દોડતો પુરુષ: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
     '🫱🏻‍🫲🏼' => 'હાથ મિલાવવો: ચામડીનો આછો રંગ, ચામડીનો મધ્યમ આછો રંગ',
     '🫱🏻‍🫲🏽' => 'હાથ મિલાવવો: ચામડીનો આછો રંગ, મધ્યમ ચામડીનો રંગ',
     '🫱🏻‍🫲🏾' => 'હાથ મિલાવવો: ચામડીનો આછો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'હાથ મિલાવવો: ઘેરો ચામડીનો રંગ, ચામડીનો મધ્યમ આછો રંગ',
     '🫱🏿‍🫲🏽' => 'હાથ મિલાવવો: ઘેરો ચામડીનો રંગ, મધ્યમ ચામડીનો રંગ',
     '🫱🏿‍🫲🏾' => 'હાથ મિલાવવો: ઘેરો ચામડીનો રંગ, મધ્યમ ઘેરો ચામડીનો રંગ',
-    '🚶‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી જમણી દિશામાં',
-    '🚶‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ જમણી દિશામાં',
-    '🧎‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી જમણી દિશામાં',
-    '🧎‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ જમણી દિશામાં',
-    '🧑‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ જમણી દિશામાં',
-    '👨‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ જમણી દિશામાં',
-    '👩‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી જમણી દિશામાં',
-    '🧑‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '👨‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👩‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '🧑‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ જમણી દિશામાં',
-    '👨‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ જમણી દિશામાં',
-    '👩‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી જમણી દિશામાં',
-    '🏃‍♀‍➡' => 'દોડતી સ્ત્રી જમણી દિશામાં',
-    '🏃‍♂‍➡' => 'દોડતો પુરુષ જમણી દિશામાં',
+    '🚶‍♀‍➡' => 'પદયાત્રી કરતી સ્ત્રી: જમણી દિશામાં',
+    '🚶‍♂‍➡' => 'પદયાત્રી કરતો પુરુષ: જમણી દિશામાં',
+    '🧎‍♀‍➡' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી: જમણી દિશામાં',
+    '🧎‍♂‍➡' => 'ઘૂંટણિયે બેસેલો માણસ: જમણી દિશામાં',
+    '🧑‍🦯‍➡' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ: જમણી દિશામાં',
+    '👨‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે પુરુષ: જમણી દિશામાં',
+    '👩‍🦯‍➡' => 'તપાસ માટેની લાકડી સાથે સ્ત્રી: જમણી દિશામાં',
+    '🧑‍🦼‍➡' => 'મોટરથી ચાલતી વ્હીલચેરમાં બેઠેલી વ્યક્તિ: જમણી દિશામાં',
+    '👨‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં પુરુષ: જમણી દિશામાં',
+    '👩‍🦼‍➡' => 'મશીનથી ચાલતી વ્હીલચેરમાં સ્ત્રી: જમણી દિશામાં',
+    '🧑‍🦽‍➡' => 'હાથેથી ચલાવવાની વ્હીલચેરમાં બેઠેલી વ્યક્તિ: જમણી દિશામાં',
+    '👨‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં પુરુષ: જમણી દિશામાં',
+    '👩‍🦽‍➡' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી: જમણી દિશામાં',
+    '🏃‍♀‍➡' => 'દોડતી સ્ત્રી: જમણી દિશામાં',
+    '🏃‍♂‍➡' => 'દોડતો પુરુષ: જમણી દિશામાં',
     '👩‍❤‍👨' => 'દિલ સાથેનું યુગલ: સ્ત્રી, પુરુષ',
     '👨‍❤‍👨' => 'દિલ સાથેનું યુગલ: પુરુષ, પુરુષ',
     '👩‍❤‍👩' => 'દિલ સાથેનું યુગલ: સ્ત્રી, સ્ત્રી',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'વ્યક્તિ: મધ્યમ ચામડીનો રંગ, ટાલ',
     '🧑🏾‍🦲' => 'વ્યક્તિ: મધ્યમ ઘેરો ચામડીનો રંગ, ટાલ',
     '🧑🏿‍🦲' => 'વ્યક્તિ: ઘેરો ચામડીનો રંગ, ટાલ',
+    '🧑🏻‍🩰' => 'બૅલે ડાંસર: ચામડીનો આછો રંગ',
+    '🧑🏼‍🩰' => 'બૅલે ડાંસર: ચામડીનો મધ્યમ આછો રંગ',
+    '🧑🏽‍🩰' => 'બૅલે ડાંસર: મધ્યમ ચામડીનો રંગ',
+    '🧑🏾‍🩰' => 'બૅલે ડાંસર: મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🧑🏿‍🩰' => 'બૅલે ડાંસર: ઘેરો ચામડીનો રંગ',
     '🧔🏻‍♂' => 'પુરુષ : ચામડીનો આછો રંગ, દાઢી',
     '🧔🏼‍♂' => 'પુરુષ : ચામડીનો મધ્યમ આછો રંગ, દાઢી',
     '🧔🏽‍♂' => 'પુરુષ : મધ્યમ ચામડીનો રંગ, દાઢી',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'પદયાત્રી કરતી સ્ત્રી: મધ્યમ ચામડીનો રંગ',
     '🚶🏾‍♀' => 'પદયાત્રી કરતી સ્ત્રી: મધ્યમ ઘેરો ચામડીનો રંગ',
     '🚶🏿‍♀' => 'પદયાત્રી કરતી સ્ત્રી: ઘેરો ચામડીનો રંગ',
-    '🚶🏻‍➡' => 'પદયાત્રી જમણી દિશામાં',
-    '🚶🏼‍➡' => 'પદયાત્રી જમણી દિશામાં',
-    '🚶🏽‍➡' => 'પદયાત્રી જમણી દિશામાં',
-    '🚶🏾‍➡' => 'પદયાત્રી જમણી દિશામાં',
-    '🚶🏿‍➡' => 'પદયાત્રી જમણી દિશામાં',
+    '🚶🏻‍➡' => 'પદયાત્રી: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🚶🏼‍➡' => 'પદયાત્રી: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🚶🏽‍➡' => 'પદયાત્રી: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🚶🏾‍➡' => 'પદયાત્રી: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🚶🏿‍➡' => 'પદયાત્રી: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
     '🧍🏻‍♂' => 'ઊભો રહેલો પુરુષ: ચામડીનો આછો રંગ',
     '🧍🏼‍♂' => 'ઊભો રહેલો પુરુષ: ચામડીનો મધ્યમ આછો રંગ',
     '🧍🏽‍♂' => 'ઊભો રહેલો પુરુષ: મધ્યમ ચામડીનો રંગ',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી: મધ્યમ ચામડીનો રંગ',
     '🧎🏾‍♀' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી: મધ્યમ ઘેરો ચામડીનો રંગ',
     '🧎🏿‍♀' => 'ઘૂંટણ વાળીને બેસેલી સ્ત્રી: ઘેરો ચામડીનો રંગ',
-    '🧎🏻‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ જમણી દિશામાં',
-    '🧎🏼‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ જમણી દિશામાં',
-    '🧎🏽‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ જમણી દિશામાં',
-    '🧎🏾‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ જમણી દિશામાં',
-    '🧎🏿‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ જમણી દિશામાં',
+    '🧎🏻‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🧎🏼‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🧎🏽‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🧎🏾‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🧎🏿‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
     '🧑🏻‍🦯' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ: ચામડીનો આછો રંગ',
     '🧑🏼‍🦯' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ: ચામડીનો મધ્યમ આછો રંગ',
     '🧑🏽‍🦯' => 'પ્રોબિંગ કૅન સાથેની વ્યક્તિ: મધ્યમ ચામડીનો રંગ',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'દોડતી સ્ત્રી: મધ્યમ ચામડીનો રંગ',
     '🏃🏾‍♀' => 'દોડતી સ્ત્રી: મધ્યમ ઘેરો ચામડીનો રંગ',
     '🏃🏿‍♀' => 'દોડતી સ્ત્રી: ઘેરો ચામડીનો રંગ',
-    '🏃🏻‍➡' => 'દોડવીર જમણી દિશામાં',
-    '🏃🏼‍➡' => 'દોડવીર જમણી દિશામાં',
-    '🏃🏽‍➡' => 'દોડવીર જમણી દિશામાં',
-    '🏃🏾‍➡' => 'દોડવીર જમણી દિશામાં',
-    '🏃🏿‍➡' => 'દોડવીર જમણી દિશામાં',
+    '🏃🏻‍➡' => 'દોડવીર: ચામડીનો આછો રંગ, જમણી દિશામાં',
+    '🏃🏼‍➡' => 'દોડવીર: ચામડીનો મધ્યમ આછો રંગ, જમણી દિશામાં',
+    '🏃🏽‍➡' => 'દોડવીર: મધ્યમ ચામડીનો રંગ, જમણી દિશામાં',
+    '🏃🏾‍➡' => 'દોડવીર: મધ્યમ ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '🏃🏿‍➡' => 'દોડવીર: ઘેરો ચામડીનો રંગ, જમણી દિશામાં',
+    '👯🏻‍♀' => 'સ્ત્રીઓ પાર્ટી કરે છે: ચામડીનો આછો રંગ',
+    '👯🏼‍♀' => 'સ્ત્રીઓ પાર્ટી કરે છે: ચામડીનો મધ્યમ આછો રંગ',
+    '👯🏽‍♀' => 'સ્ત્રીઓ પાર્ટી કરે છે: મધ્યમ ચામડીનો રંગ',
+    '👯🏾‍♀' => 'સ્ત્રીઓ પાર્ટી કરે છે: મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👯🏿‍♀' => 'સ્ત્રીઓ પાર્ટી કરે છે: ઘેરો ચામડીનો રંગ',
+    '👯🏻‍♂' => 'પાર્ટી કરતા પુરુષો: ચામડીનો આછો રંગ',
+    '👯🏼‍♂' => 'પાર્ટી કરતા પુરુષો: ચામડીનો મધ્યમ આછો રંગ',
+    '👯🏽‍♂' => 'પાર્ટી કરતા પુરુષો: મધ્યમ ચામડીનો રંગ',
+    '👯🏾‍♂' => 'પાર્ટી કરતા પુરુષો: મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👯🏿‍♂' => 'પાર્ટી કરતા પુરુષો: ઘેરો ચામડીનો રંગ',
     '🧖🏻‍♂' => 'સ્ટીમવાળા રૂમમાં પુરુષ: ચામડીનો આછો રંગ',
     '🧖🏼‍♂' => 'સ્ટીમવાળા રૂમમાં પુરુષ: ચામડીનો મધ્યમ આછો રંગ',
     '🧖🏽‍♂' => 'સ્ટીમવાળા રૂમમાં પુરુષ: મધ્યમ ચામડીનો રંગ',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'કાર્ટવ્હીલ કરતી સ્ત્રી: મધ્યમ ચામડીનો રંગ',
     '🤸🏾‍♀' => 'કાર્ટવ્હીલ કરતી સ્ત્રી: મધ્યમ ઘેરો ચામડીનો રંગ',
     '🤸🏿‍♀' => 'કાર્ટવ્હીલ કરતી સ્ત્રી: ઘેરો ચામડીનો રંગ',
+    '🤼🏻‍♀' => 'કુસ્તી કરતી સ્ત્રીઓ: ચામડીનો આછો રંગ',
+    '🤼🏼‍♀' => 'કુસ્તી કરતી સ્ત્રીઓ: ચામડીનો મધ્યમ આછો રંગ',
+    '🤼🏽‍♀' => 'કુસ્તી કરતી સ્ત્રીઓ: મધ્યમ ચામડીનો રંગ',
+    '🤼🏾‍♀' => 'કુસ્તી કરતી સ્ત્રીઓ: મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🤼🏿‍♀' => 'કુસ્તી કરતી સ્ત્રીઓ: ઘેરો ચામડીનો રંગ',
+    '🤼🏻‍♂' => 'કુસ્તી કરતા પુરુષો: ચામડીનો આછો રંગ',
+    '🤼🏼‍♂' => 'કુસ્તી કરતા પુરુષો: ચામડીનો મધ્યમ આછો રંગ',
+    '🤼🏽‍♂' => 'કુસ્તી કરતા પુરુષો: મધ્યમ ચામડીનો રંગ',
+    '🤼🏾‍♂' => 'કુસ્તી કરતા પુરુષો: મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🤼🏿‍♂' => 'કુસ્તી કરતા પુરુષો: ઘેરો ચામડીનો રંગ',
     '🤽🏻‍♂' => 'વૉટર પોલો કરતો પુરુષ: ચામડીનો આછો રંગ',
     '🤽🏼‍♂' => 'વૉટર પોલો કરતો પુરુષ: ચામડીનો મધ્યમ આછો રંગ',
     '🤽🏽‍♂' => 'વૉટર પોલો કરતો પુરુષ: મધ્યમ ચામડીનો રંગ',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'સ્ત્રી: વાંકડિયા વાળ',
     '👩‍🦳' => 'સ્ત્રી: સફેદ વાળ',
     '👩‍🦲' => 'સ્ત્રી: ટાલ',
-    '🚶‍➡' => 'પદયાત્રી જમણી દિશામાં',
-    '🧎‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ જમણી દિશામાં',
-    '🏃‍➡' => 'દોડવીર જમણી દિશામાં',
+    '🚶‍➡' => 'પદયાત્રી: જમણી દિશામાં',
+    '🧎‍➡' => 'ઘૂંટણ વાળીને બેસેલી વ્યક્તિ: જમણી દિશામાં',
+    '🏃‍➡' => 'દોડવીર: જમણી દિશામાં',
     '👨‍👦' => 'કુટુંબ: પુરુષ, છોકરો',
     '👨‍👧' => 'કુટુંબ: પુરુષ, છોકરી',
     '👩‍👦' => 'કુટુંબ: સ્ત્રી, છોકરો',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'હાથથી ચાલતી વ્હીલચેરમાં સ્ત્રી',
     '🏃‍♂' => 'દોડતો પુરુષ',
     '🏃‍♀' => 'દોડતી સ્ત્રી',
+    '🧑‍🩰' => 'બૅલે ડાંસર',
     '👯‍♂' => 'પાર્ટી કરતા પુરુષો',
     '👯‍♀' => 'સ્ત્રીઓ પાર્ટી કરે છે',
     '🧖‍♂' => 'સ્ટીમવાળા રૂમમાં પુરુષ',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'સૂટવાળો વ્યક્તિ: મધ્યમ ચામડીનો રંગ',
     '🕴🏾' => 'સૂટવાળો વ્યક્તિ: મધ્યમ ઘેરો ચામડીનો રંગ',
     '🕴🏿' => 'સૂટવાળો વ્યક્તિ: ઘેરો ચામડીનો રંગ',
+    '👯🏻' => 'પાર્ટી કરતી સ્ત્રીઓ: ચામડીનો આછો રંગ',
+    '👯🏼' => 'પાર્ટી કરતી સ્ત્રીઓ: ચામડીનો મધ્યમ આછો રંગ',
+    '👯🏽' => 'પાર્ટી કરતી સ્ત્રીઓ: મધ્યમ ચામડીનો રંગ',
+    '👯🏾' => 'પાર્ટી કરતી સ્ત્રીઓ: મધ્યમ ઘેરો ચામડીનો રંગ',
+    '👯🏿' => 'પાર્ટી કરતી સ્ત્રીઓ: ઘેરો ચામડીનો રંગ',
     '🧖🏻' => 'બાફવાળા રૂમમાં વ્યક્તિ: ચામડીનો આછો રંગ',
     '🧖🏼' => 'બાફવાળા રૂમમાં વ્યક્તિ: ચામડીનો મધ્યમ આછો રંગ',
     '🧖🏽' => 'બાફવાળા રૂમમાં વ્યક્તિ: મધ્યમ ચામડીનો રંગ',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'કાર્ટવ્હીલ કરતી વ્યક્તિ: મધ્યમ ચામડીનો રંગ',
     '🤸🏾' => 'કાર્ટવ્હીલ કરતી વ્યક્તિ: મધ્યમ ઘેરો ચામડીનો રંગ',
     '🤸🏿' => 'કાર્ટવ્હીલ કરતી વ્યક્તિ: ઘેરો ચામડીનો રંગ',
+    '🤼🏻' => 'પહેલવાનો: ચામડીનો આછો રંગ',
+    '🤼🏼' => 'પહેલવાનો: ચામડીનો મધ્યમ આછો રંગ',
+    '🤼🏽' => 'પહેલવાનો: મધ્યમ ચામડીનો રંગ',
+    '🤼🏾' => 'પહેલવાનો: મધ્યમ ઘેરો ચામડીનો રંગ',
+    '🤼🏿' => 'પહેલવાનો: ઘેરો ચામડીનો રંગ',
     '🤽🏻' => 'વૉટર પોલો: ચામડીનો આછો રંગ',
     '🤽🏼' => 'વૉટર પોલો: ચામડીનો મધ્યમ આછો રંગ',
     '🤽🏽' => 'વૉટર પોલો: મધ્યમ ચામડીનો રંગ',
@@ -2127,7 +2283,7 @@
     '💑🏾' => 'દિલ સાથેનું યુગલ: મધ્યમ ઘેરો ચામડીનો રંગ',
     '💑🏿' => 'દિલ સાથેનું યુગલ: ઘેરો ચામડીનો રંગ',
     '🇦🇨' => 'ઝંડો: એસેન્શન આઇલેન્ડ',
-    '🇦🇩' => 'ઝંડો: ઍંડોરા',
+    '🇦🇩' => 'ઝંડો: એન્ડોરા',
     '🇦🇪' => 'ઝંડો: યુનાઇટેડ આરબ અમીરાત',
     '🇦🇫' => 'ઝંડો: અફઘાનિસ્તાન',
     '🇦🇬' => 'ઝંડો: ઍન્ટિગુઆ અને બર્મુડા',
@@ -2141,7 +2297,7 @@
     '🇦🇹' => 'ઝંડો: ઑસ્ટ્રિયા',
     '🇦🇺' => 'ઝંડો: ઑસ્ટ્રેલિયા',
     '🇦🇼' => 'ઝંડો: અરુબા',
-    '🇦🇽' => 'ઝંડો: ઑલેન્ડ આઇલેન્ડ્સ',
+    '🇦🇽' => 'ઝંડો: ઑલૅન્ડ આઇલૅન્ડ્સ',
     '🇦🇿' => 'ઝંડો: અઝરબૈજાન',
     '🇧🇦' => 'ઝંડો: બોસ્નિયા અને હર્ઝેગોવિના',
     '🇧🇧' => 'ઝંડો: બારબાડોસ',
@@ -2160,12 +2316,12 @@
     '🇧🇷' => 'ઝંડો: બ્રાઝિલ',
     '🇧🇸' => 'ઝંડો: બહામાસ',
     '🇧🇹' => 'ઝંડો: ભૂટાન',
-    '🇧🇻' => 'ઝંડો: બૌવેત આઇલેન્ડ',
+    '🇧🇻' => 'ઝંડો: બૌવેત આઇલૅન્ડ',
     '🇧🇼' => 'ઝંડો: બોત્સ્વાના',
     '🇧🇾' => 'ઝંડો: બેલારુસ',
     '🇧🇿' => 'ઝંડો: બેલીઝ',
     '🇨🇦' => 'ઝંડો: કેનેડા',
-    '🇨🇨' => 'ઝંડો: કોકોઝ (કીલીંગ) આઇલેન્ડ્સ',
+    '🇨🇨' => 'ઝંડો: કોકોઝ (કીલીંગ) આઇલૅન્ડ્સ',
     '🇨🇩' => 'ઝંડો: કોંગો - કિંશાસા',
     '🇨🇫' => 'ઝંડો: સેન્ટ્રલ આફ્રિકન રિપબ્લિક',
     '🇨🇬' => 'ઝંડો: કોંગો - બ્રાઝાવિલે',
@@ -2175,13 +2331,14 @@
     '🇨🇱' => 'ઝંડો: ચિલી',
     '🇨🇲' => 'ઝંડો: કૅમરૂન',
     '🇨🇳' => 'ઝંડો: ચીન',
-    '🇨🇴' => 'ઝંડો: કોલમ્બિયા',
+    '🇨🇴' => 'ઝંડો: કોલંબિયા',
     '🇨🇵' => 'ઝંડો: ક્લિપરટન આઇલેન્ડ',
+    '🇨🇶' => 'ઝંડો: સાર્ક',
     '🇨🇷' => 'ઝંડો: કોસ્ટા રિકા',
     '🇨🇺' => 'ઝંડો: ક્યુબા',
     '🇨🇻' => 'ઝંડો: કૅપ વર્ડે',
     '🇨🇼' => 'ઝંડો: ક્યુરાસાઓ',
-    '🇨🇽' => 'ઝંડો: ક્રિસમસ આઇલેન્ડ',
+    '🇨🇽' => 'ઝંડો: ક્રિસમસ આઇલૅન્ડ',
     '🇨🇾' => 'ઝંડો: સાયપ્રસ',
     '🇨🇿' => 'ઝંડો: ચેકીયા',
     '🇩🇪' => 'ઝંડો: જર્મની',
@@ -2202,9 +2359,9 @@
     '🇪🇺' => 'ઝંડો: યુરોપિયન સંઘ',
     '🇫🇮' => 'ઝંડો: ફિનલેન્ડ',
     '🇫🇯' => 'ઝંડો: ફીજી',
-    '🇫🇰' => 'ઝંડો: ફૉકલેન્ડ આઇલેન્ડ્સ',
+    '🇫🇰' => 'ઝંડો: ફૉકલૅન્ડ આઇલૅન્ડ્સ',
     '🇫🇲' => 'ઝંડો: માઇક્રોનેશિયા',
-    '🇫🇴' => 'ઝંડો: ફેરો આઇલેન્ડ્સ',
+    '🇫🇴' => 'ઝંડો: ફેરો આઇલૅન્ડ્સ',
     '🇫🇷' => 'ઝંડો: ફ્રાંસ',
     '🇬🇦' => 'ઝંડો: ગેબન',
     '🇬🇧' => 'ઝંડો: યુનાઇટેડ કિંગડમ',
@@ -2226,21 +2383,21 @@
     '🇬🇼' => 'ઝંડો: ગિની-બિસાઉ',
     '🇬🇾' => 'ઝંડો: ગયાના',
     '🇭🇰' => 'ઝંડો: હોંગકોંગ SAR ચીન',
-    '🇭🇲' => 'ઝંડો: હર્ડ અને મેકડોનાલ્ડ આઇલેન્ડ્સ',
+    '🇭🇲' => 'ઝંડો: હર્ડ અને મેકડોનાલ્ડ આઇલૅન્ડ્સ',
     '🇭🇳' => 'ઝંડો: હોન્ડુરસ',
     '🇭🇷' => 'ઝંડો: ક્રોએશિયા',
     '🇭🇹' => 'ઝંડો: હૈતિ',
     '🇭🇺' => 'ઝંડો: હંગેરી',
     '🇮🇨' => 'ઝંડો: કૅનેરી આઇલેન્ડ્સ',
     '🇮🇩' => 'ઝંડો: ઇન્ડોનેશિયા',
-    '🇮🇪' => 'ઝંડો: આયર્લેન્ડ',
+    '🇮🇪' => 'ઝંડો: આયરલૅન્ડ',
     '🇮🇱' => 'ઝંડો: ઇઝરાઇલ',
     '🇮🇲' => 'ઝંડો: આઇલ ઑફ મેન',
     '🇮🇳' => 'ઝંડો: ભારત',
     '🇮🇴' => 'ઝંડો: બ્રિટિશ ઇન્ડિયન ઓશન ટેરિટરી',
     '🇮🇶' => 'ઝંડો: ઇરાક',
     '🇮🇷' => 'ઝંડો: ઈરાન',
-    '🇮🇸' => 'ઝંડો: આઇસલેન્ડ',
+    '🇮🇸' => 'ઝંડો: આઇસલૅન્ડ',
     '🇮🇹' => 'ઝંડો: ઇટાલી',
     '🇯🇪' => 'ઝંડો: જર્સી',
     '🇯🇲' => 'ઝંડો: જમૈકા',
@@ -2302,7 +2459,7 @@
     '🇳🇵' => 'ઝંડો: નેપાળ',
     '🇳🇷' => 'ઝંડો: નૌરુ',
     '🇳🇺' => 'ઝંડો: નીયુ',
-    '🇳🇿' => 'ઝંડો: ન્યુઝીલેન્ડ',
+    '🇳🇿' => 'ઝંડો: ન્યુઝીલૅન્ડ',
     '🇴🇲' => 'ઝંડો: ઓમાન',
     '🇵🇦' => 'ઝંડો: પનામા',
     '🇵🇪' => 'ઝંડો: પેરુ',
@@ -2390,13 +2547,6 @@
     '🏽' => 'મધ્યમ ચામડીનો રંગ',
     '🏾' => 'મધ્યમ ઘેરો ચામડીનો રંગ',
     '🏿' => 'ઘેરો ચામડીનો રંગ',
-    '🪉' => 'હાર્પ',
-    '🪏' => 'પાવડો',
-    '🪾' => 'પાંદડા વગરનું વૃક્ષ',
-    '🫆' => 'આંગળીના નીશાન',
-    '🫜' => 'બીટનો કંદ',
-    '🫟' => 'ડાઘો',
-    '🫩' => 'આંખોની નીચે બેગવાળો ચહેરો',
     '😀' => 'સ્મિત કરતો ચહેરો',
     '😃' => 'ખુલ્લા મોં સાથેનો સ્મિત કરતો ચહેરો',
     '😄' => 'ખુલ્લા મોં અને હસતી આંખો સાથેનો સ્મિત કરતો ચહેરો',
@@ -2450,6 +2600,7 @@
     '😪' => 'ઊંઘતો ચહેરો',
     '🤤' => 'લાળ ટપકવાવાળો ચહેરો',
     '😴' => 'નિંદ્રાધીન ચહેરો',
+    '🫩' => 'આંખોની નીચે બેગવાળો ચહેરો',
     '😷' => 'માસ્કવાળો ચહેરો',
     '🤒' => 'થર્મોમીટર સાથેનો ચહેરો',
     '🤕' => 'માથે પટ્ટીવાળો ચહેરો',
@@ -2476,6 +2627,7 @@
     '😯' => 'શાંત ચહેરો',
     '😲' => 'આશ્ચર્યચકિત ચહેરો',
     '😳' => 'સ્તબ્ધ ચહેરો',
+    '🫪' => 'ચિંતિત ચહેરો',
     '🥺' => 'દયાવાળો ચહેરો',
     '🥹' => 'આંસુ રોકી રાખતો ચહેરો',
     '😦' => 'ખુલ્લાં મોંઢા સાથે ભવાં ચડાવતો ચહેરો',
@@ -2547,6 +2699,7 @@
     '💋' => 'ચુંબનનું ચિહ્ન',
     '💯' => 'સો પોઇન્ટ્સ',
     '💢' => 'ગુસ્સાનું ચિહ્ન',
+    '🫯' => 'ઝગડમ ઝગડી',
     '💥' => 'ટક્કર',
     '💫' => 'ચક્કર',
     '💦' => 'પરસેવાનાં ટીપા',
@@ -2670,6 +2823,7 @@
     '🧞' => 'જીની',
     '🧟' => 'ઝોમ્બી',
     '🧌' => 'ટ્રોલ',
+    '🫈' => 'રુંવાટીવાળું પ્રાણી',
     '💆' => 'ફેસ મસાજ',
     '💇' => 'હેરકટ',
     '🚶' => 'પદયાત્રી',
@@ -2713,6 +2867,7 @@
     '🫂' => 'એકબીજાને ભેટતા લોકો',
     '👪' => 'કુટુંબ',
     '👣' => 'પગનાં નિશાન',
+    '🫆' => 'આંગળીના નીશાન',
     '🦰' => 'લાલ વાળ',
     '🦱' => 'વાંકડિયા વાળ',
     '🦳' => 'સફેદ વાળ',
@@ -2812,6 +2967,7 @@
     '🐳' => 'પાણી ઉછાળતી વ્હેલ',
     '🐋' => 'વ્હેલ',
     '🐬' => 'ડોલ્ફિન',
+    '🫍' => 'ઓરકા',
     '🦭' => 'સીલ',
     '🐟' => 'માછલી',
     '🐠' => 'ઉષ્ણકટિબંધીય માછલી',
@@ -2821,6 +2977,11 @@
     '🐚' => 'સર્પાકાર શેલ',
     '🪸' => 'કોરલ',
     '🪼' => 'જેલિ ફિશ',
+    '🦀' => 'કરચલો',
+    '🦞' => 'લૉબ્સ્ટર',
+    '🦐' => 'ઝીંગું',
+    '🦑' => 'સ્ક્વિડ',
+    '🦪' => 'ઑઇસ્ટર',
     '🐌' => 'ગોકળગાય',
     '🦋' => 'બટરફ્લાઇ',
     '🐛' => 'જંતુ',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ખાલી માળો',
     '🪺' => 'ઇંડા મૂકેલો માળો',
     '🍄' => 'મશરુમ',
+    '🪾' => 'પાંદડા વગરનું વૃક્ષ',
     '🍇' => 'દ્રાક્ષ',
     '🍈' => 'ટેટી',
     '🍉' => 'તરબૂચ',
@@ -2901,6 +3063,7 @@
     '🌰' => 'બદામ જેવું એક ફળ',
     '🫚' => 'આદુની ગાંઠ',
     '🫛' => 'વટાણાની શીંગ',
+    '🫜' => 'બીટનો કંદ',
     '🍞' => 'બ્રેડ',
     '🥐' => 'ક્રોઇસૈન',
     '🥖' => 'બેગેટ રોટલી',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ડમ્પલિંગ',
     '🥠' => 'ફૉર્ચુન કુકી',
     '🥡' => 'ટેકઆઉટ બૉક્સ',
-    '🦀' => 'કરચલો',
-    '🦞' => 'લૉબ્સ્ટર',
-    '🦐' => 'ઝીંગું',
-    '🦑' => 'સ્ક્વિડ',
-    '🦪' => 'ઑઇસ્ટર',
     '🍦' => 'સોફ્ટ આઇસ ક્રીમ',
     '🍧' => 'શેવ્ડ આઇસ ક્રીમ',
     '🍨' => 'આઇસ ક્રીમ',
@@ -3007,6 +3165,7 @@
     '🧭' => 'કંપાસ',
     '🏔' => 'બરફના શિખરવાળો પર્વત',
     '⛰' => 'પર્વત',
+    '🛘' => 'ભૂસ્ખલન',
     '🌋' => 'જ્વાળામુખી',
     '🗻' => 'માઉન્ટ ફુજી',
     '🏕' => 'કેમ્પિંગ',
@@ -3367,16 +3526,18 @@
     '🎧' => 'હેડફોન',
     '📻' => 'રેડિઓ',
     '🎷' => 'સેક્સોફોન',
+    '🎺' => 'તુરાઈ',
+    '🪊' => 'ટ્રૉમબન',
     '🪗' => 'એકોર્ડિયન',
     '🎸' => 'ગિટાર',
     '🎹' => 'મ્યુઝિકલ કીબોર્ડ',
-    '🎺' => 'તુરાઈ',
     '🎻' => 'વાયોલિન',
     '🪕' => 'બેન્જો',
     '🥁' => 'ડ્રમ',
     '🪘' => 'લાંબું ડ્રમ',
     '🪇' => 'મરાકા',
     '🪈' => 'વાંસળી',
+    '🪉' => 'હાર્પ',
     '📱' => 'મોબાઇલ ફોન',
     '📲' => 'તીર સાથેનો મોબાઇલ ફોન',
     '☎' => 'ટેલિફોન',
@@ -3430,8 +3591,9 @@
     '📑' => 'બુકમાર્ક્સ ટેબ્સ',
     '🔖' => 'બુકમાર્ક',
     '🏷' => 'લેબલ',
-    '💰' => 'પૈસાની થેલી',
     '🪙' => 'સિક્કો',
+    '💰' => 'પૈસાની થેલી',
+    '🪎' => 'ખજાનો',
     '💴' => 'યેન નોટ',
     '💵' => 'ડૉલર નોટ',
     '💶' => 'યુરો નોટ',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ટૂલબોક્સ',
     '🧲' => 'લોહચુંબક',
     '🪜' => 'નિસરણી',
+    '🪏' => 'પાવડો',
     '⚗' => 'અલેમ્બિક',
     '🧪' => 'ટેસ્ટ ટ્યૂબ',
     '🧫' => 'પેટ્રી ડિશ',
@@ -3697,6 +3860,7 @@
     '✴' => 'આઠ કિનારીવાળો તારો',
     '❇' => 'ચમક',
     '™' => 'ટ્રેડ માર્કનું ચિહ્ન',
+    '🫟' => 'ડાઘો',
     '🔠' => 'અપરકેસ લેટિન ઇનપુટ કરો',
     '🔡' => 'લોઅરકેસ લેટિન ઇનપુટ કરો',
     '🔢' => 'નંબર્સ ઇનપુટ કરો',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ha_ne.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ha_ne.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ha_ne.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ha_ne.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'sumba: mace, mace, launin fata mai duhu, madaidaicin launin fata',
     '👩🏿‍❤‍💋‍👩🏾' => 'sumba: mace, mace, launin fata mai duhu, launin fata mai madaidaicin duhu',
     '👩🏿‍❤‍💋‍👩🏿' => 'sumba: mace, mace, launin fata mai duhu',
+    '🧑🏻‍🫯‍🧑🏼' => 'mutane masu kokawa: launin fata mai haske, launin fata mai madaidaicin haske',
+    '🧑🏻‍🫯‍🧑🏽' => 'mutane masu kokawa: launin fata mai haske, madaidaicin launin fata',
+    '🧑🏻‍🫯‍🧑🏾' => 'mutane masu kokawa: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '🧑🏻‍🫯‍🧑🏿' => 'mutane masu kokawa: launin fata mai haske, launin fata mai duhu',
+    '🧑🏼‍🫯‍🧑🏻' => 'mutane masu kokawa: launin fata mai madaidaicin haske, launin fata mai haske',
+    '🧑🏼‍🫯‍🧑🏽' => 'mutane masu kokawa: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '🧑🏼‍🫯‍🧑🏾' => 'mutane masu kokawa: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '🧑🏼‍🫯‍🧑🏿' => 'mutane masu kokawa: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '🧑🏽‍🫯‍🧑🏻' => 'mutane masu kokawa: madaidaicin launin fata, launin fata mai haske',
+    '🧑🏽‍🫯‍🧑🏼' => 'mutane masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '🧑🏽‍🫯‍🧑🏾' => 'mutane masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '🧑🏽‍🫯‍🧑🏿' => 'mutane masu kokawa: madaidaicin launin fata, launin fata mai duhu',
+    '🧑🏾‍🫯‍🧑🏻' => 'mutane masu kokawa: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '🧑🏾‍🫯‍🧑🏼' => 'mutane masu kokawa: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '🧑🏾‍🫯‍🧑🏽' => 'mutane masu kokawa: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '🧑🏾‍🫯‍🧑🏿' => 'mutane masu kokawa: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '🧑🏿‍🫯‍🧑🏻' => 'mutane masu kokawa: launin fata mai duhu, launin fata mai haske',
+    '🧑🏿‍🫯‍🧑🏼' => 'mutane masu kokawa: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '🧑🏿‍🫯‍🧑🏽' => 'mutane masu kokawa: launin fata mai duhu, madaidaicin launin fata',
+    '🧑🏿‍🫯‍🧑🏾' => 'mutane masu kokawa: launin fata mai duhu, launin fata mai madaidaicin duhu',
     '🧑🏻‍❤‍🧑🏼' => 'miji da mata tare da zuciya: babba, babba, launin fata mai haske, launin fata mai madaidaicin haske',
     '🧑🏻‍❤‍🧑🏽' => 'miji da mata tare da zuciya: babba, babba, launin fata mai haske, madaidaicin launin fata',
     '🧑🏻‍❤‍🧑🏾' => 'miji da mata tare da zuciya: babba, babba, launin fata mai haske, launin fata mai madaidaicin duhu',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'miji da mata tare da zuciya: babba, babba, launin fata mai duhu, launin fata mai madaidaicin haske',
     '🧑🏿‍❤‍🧑🏽' => 'miji da mata tare da zuciya: babba, babba, launin fata mai duhu, madaidaicin launin fata',
     '🧑🏿‍❤‍🧑🏾' => 'miji da mata tare da zuciya: babba, babba, launin fata mai duhu, launin fata mai madaidaicin duhu',
+    '🧑🏻‍🐰‍🧑🏼' => 'mutane masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin haske',
+    '🧑🏻‍🐰‍🧑🏽' => 'mutane masu kunnuwan zomo yin biki: launin fata mai haske, madaidaicin launin fata',
+    '🧑🏻‍🐰‍🧑🏾' => 'mutane masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '🧑🏻‍🐰‍🧑🏿' => 'mutane masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai duhu',
+    '🧑🏼‍🐰‍🧑🏻' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai haske',
+    '🧑🏼‍🐰‍🧑🏽' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '🧑🏼‍🐰‍🧑🏾' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '🧑🏼‍🐰‍🧑🏿' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '🧑🏽‍🐰‍🧑🏻' => 'mutane masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai haske',
+    '🧑🏽‍🐰‍🧑🏼' => 'mutane masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '🧑🏽‍🐰‍🧑🏾' => 'mutane masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '🧑🏽‍🐰‍🧑🏿' => 'mutane masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai duhu',
+    '🧑🏾‍🐰‍🧑🏻' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '🧑🏾‍🐰‍🧑🏼' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '🧑🏾‍🐰‍🧑🏽' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '🧑🏾‍🐰‍🧑🏿' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '🧑🏿‍🐰‍🧑🏻' => 'mutane masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai haske',
+    '🧑🏿‍🐰‍🧑🏼' => 'mutane masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '🧑🏿‍🐰‍🧑🏽' => 'mutane masu kunnuwan zomo yin biki: launin fata mai duhu, madaidaicin launin fata',
+    '🧑🏿‍🐰‍🧑🏾' => 'mutane masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin duhu',
+    '👨🏻‍🫯‍👨🏼' => 'maza masu kokawa: launin fata mai haske, launin fata mai madaidaicin haske',
+    '👨🏻‍🫯‍👨🏽' => 'maza masu kokawa: launin fata mai haske, madaidaicin launin fata',
+    '👨🏻‍🫯‍👨🏾' => 'maza masu kokawa: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '👨🏻‍🫯‍👨🏿' => 'maza masu kokawa: launin fata mai haske, launin fata mai duhu',
+    '👨🏼‍🫯‍👨🏻' => 'maza masu kokawa: launin fata mai madaidaicin haske, launin fata mai haske',
+    '👨🏼‍🫯‍👨🏽' => 'maza masu kokawa: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '👨🏼‍🫯‍👨🏾' => 'maza masu kokawa: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '👨🏼‍🫯‍👨🏿' => 'maza masu kokawa: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '👨🏽‍🫯‍👨🏻' => 'maza masu kokawa: madaidaicin launin fata, launin fata mai haske',
+    '👨🏽‍🫯‍👨🏼' => 'maza masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '👨🏽‍🫯‍👨🏾' => 'maza masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '👨🏽‍🫯‍👨🏿' => 'maza masu kokawa: madaidaicin launin fata, launin fata mai duhu',
+    '👨🏾‍🫯‍👨🏻' => 'maza masu kokawa: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '👨🏾‍🫯‍👨🏼' => 'maza masu kokawa: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '👨🏾‍🫯‍👨🏽' => 'maza masu kokawa: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '👨🏾‍🫯‍👨🏿' => 'maza masu kokawa: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '👨🏿‍🫯‍👨🏻' => 'maza masu kokawa: launin fata mai duhu, launin fata mai haske',
+    '👨🏿‍🫯‍👨🏼' => 'maza masu kokawa: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '👨🏿‍🫯‍👨🏽' => 'maza masu kokawa: launin fata mai duhu, madaidaicin launin fata',
+    '👨🏿‍🫯‍👨🏾' => 'maza masu kokawa: launin fata mai duhu, launin fata mai madaidaicin duhu',
     '👨🏻‍❤‍👨🏻' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai haske',
     '👨🏻‍❤‍👨🏼' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai haske, launin fata mai madaidaicin haske',
     '👨🏻‍❤‍👨🏽' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai haske, madaidaicin launin fata',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai duhu, madaidaicin launin fata',
     '👨🏿‍❤‍👨🏾' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai duhu, launin fata mai madaidaicin duhu',
     '👨🏿‍❤‍👨🏿' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai duhu',
+    '👨🏻‍🐰‍👨🏼' => 'maza masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin haske',
+    '👨🏻‍🐰‍👨🏽' => 'maza masu kunnuwan zomo yin biki: launin fata mai haske, madaidaicin launin fata',
+    '👨🏻‍🐰‍👨🏾' => 'maza masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '👨🏻‍🐰‍👨🏿' => 'maza masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai duhu',
+    '👨🏼‍🐰‍👨🏻' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai haske',
+    '👨🏼‍🐰‍👨🏽' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '👨🏼‍🐰‍👨🏾' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '👨🏼‍🐰‍👨🏿' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '👨🏽‍🐰‍👨🏻' => 'maza masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai haske',
+    '👨🏽‍🐰‍👨🏼' => 'maza masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '👨🏽‍🐰‍👨🏾' => 'maza masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '👨🏽‍🐰‍👨🏿' => 'maza masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai duhu',
+    '👨🏾‍🐰‍👨🏻' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '👨🏾‍🐰‍👨🏼' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '👨🏾‍🐰‍👨🏽' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '👨🏾‍🐰‍👨🏿' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '👨🏿‍🐰‍👨🏻' => 'maza masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai haske',
+    '👨🏿‍🐰‍👨🏼' => 'maza masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '👨🏿‍🐰‍👨🏽' => 'maza masu kunnuwan zomo yin biki: launin fata mai duhu, madaidaicin launin fata',
+    '👨🏿‍🐰‍👨🏾' => 'maza masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin duhu',
+    '👩🏻‍🫯‍👩🏼' => 'mata masu kokawa: launin fata mai haske, launin fata mai madaidaicin haske',
+    '👩🏻‍🫯‍👩🏽' => 'mata masu kokawa: launin fata mai haske, madaidaicin launin fata',
+    '👩🏻‍🫯‍👩🏾' => 'mata masu kokawa: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '👩🏻‍🫯‍👩🏿' => 'mata masu kokawa: launin fata mai haske, launin fata mai duhu',
+    '👩🏼‍🫯‍👩🏻' => 'mata masu kokawa: launin fata mai madaidaicin haske, launin fata mai haske',
+    '👩🏼‍🫯‍👩🏽' => 'mata masu kokawa: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '👩🏼‍🫯‍👩🏾' => 'mata masu kokawa: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '👩🏼‍🫯‍👩🏿' => 'mata masu kokawa: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '👩🏽‍🫯‍👩🏻' => 'mata masu kokawa: madaidaicin launin fata, launin fata mai haske',
+    '👩🏽‍🫯‍👩🏼' => 'mata masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '👩🏽‍🫯‍👩🏾' => 'mata masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '👩🏽‍🫯‍👩🏿' => 'mata masu kokawa: madaidaicin launin fata, launin fata mai duhu',
+    '👩🏾‍🫯‍👩🏻' => 'mata masu kokawa: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '👩🏾‍🫯‍👩🏼' => 'mata masu kokawa: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '👩🏾‍🫯‍👩🏽' => 'mata masu kokawa: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '👩🏾‍🫯‍👩🏿' => 'mata masu kokawa: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '👩🏿‍🫯‍👩🏻' => 'mata masu kokawa: launin fata mai duhu, launin fata mai haske',
+    '👩🏿‍🫯‍👩🏼' => 'mata masu kokawa: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '👩🏿‍🫯‍👩🏽' => 'mata masu kokawa: launin fata mai duhu, madaidaicin launin fata',
+    '👩🏿‍🫯‍👩🏾' => 'mata masu kokawa: launin fata mai duhu, launin fata mai madaidaicin duhu',
     '👩🏻‍❤‍👨🏻' => 'miji da mata tare da zuciya: mace, namiji, launin fata mai haske',
     '👩🏻‍❤‍👨🏼' => 'miji da mata tare da zuciya: mace, namiji, launin fata mai haske, launin fata mai madaidaicin haske',
     '👩🏻‍❤‍👨🏽' => 'miji da mata tare da zuciya: mace, namiji, launin fata mai haske, madaidaicin launin fata',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'miji da mata tare da zuciya: mace, mace, launin fata mai duhu, madaidaicin launin fata',
     '👩🏿‍❤‍👩🏾' => 'miji da mata tare da zuciya: mace, mace, launin fata mai duhu, launin fata mai madaidaicin duhu',
     '👩🏿‍❤‍👩🏿' => 'miji da mata tare da zuciya: mace, mace, launin fata mai duhu',
+    '👩🏻‍🐰‍👩🏼' => 'mata masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin haske',
+    '👩🏻‍🐰‍👩🏽' => 'mata masu kunnuwan zomo yin biki: launin fata mai haske, madaidaicin launin fata',
+    '👩🏻‍🐰‍👩🏾' => 'mata masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '👩🏻‍🐰‍👩🏿' => 'mata masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai duhu',
+    '👩🏼‍🐰‍👩🏻' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai haske',
+    '👩🏼‍🐰‍👩🏽' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '👩🏼‍🐰‍👩🏾' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '👩🏼‍🐰‍👩🏿' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '👩🏽‍🐰‍👩🏻' => 'mata masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai haske',
+    '👩🏽‍🐰‍👩🏼' => 'mata masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '👩🏽‍🐰‍👩🏾' => 'mata masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '👩🏽‍🐰‍👩🏿' => 'mata masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai duhu',
+    '👩🏾‍🐰‍👩🏻' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '👩🏾‍🐰‍👩🏼' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '👩🏾‍🐰‍👩🏽' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '👩🏾‍🐰‍👩🏿' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '👩🏿‍🐰‍👩🏻' => 'mata masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai haske',
+    '👩🏿‍🐰‍👩🏼' => 'mata masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '👩🏿‍🐰‍👩🏽' => 'mata masu kunnuwan zomo yin biki: launin fata mai duhu, madaidaicin launin fata',
+    '👩🏿‍🐰‍👩🏾' => 'mata masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin duhu',
     '🧑🏻‍🤝‍🧑🏻' => 'mutane masu rikon hannaye: launin fata mai haske',
     '🧑🏻‍🤝‍🧑🏼' => 'mutane masu rikon hannaye: launin fata mai haske, launin fata mai madaidaicin haske',
     '🧑🏻‍🤝‍🧑🏽' => 'mutane masu rikon hannaye: launin fata mai haske, madaidaicin launin fata',
@@ -289,6 +409,7 @@
     '👩‍👩‍👦‍👦' => 'iyali: mace, mace, yaro, yaro',
     '👩‍👩‍👧‍👧' => 'iyali: mace, mace, yarinya, yarinya',
     '🏴󠁧󠁢󠁥󠁮󠁧󠁿' => 'tuta: Ingila',
+    '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'tuta: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'iyali: manya, manya, yara, yara',
     '🫱🏻‍🫲🏼' => 'musafiha: launin fata mai haske, launin fata mai madaidaicin haske',
     '🫱🏻‍🫲🏽' => 'musafiha: launin fata mai haske, madaidaicin launin fata',
@@ -348,6 +469,11 @@
     '🧑🏽‍🦲' => 'babba: madaidaicin launin fata, sanƙo',
     '🧑🏾‍🦲' => 'babba: launin fata mai madaidaicin duhu, sanƙo',
     '🧑🏿‍🦲' => 'babba: launin fata mai duhu, sanƙo',
+    '🧑🏻‍🩰' => 'mai rawar ballet: launin fata mai haske',
+    '🧑🏼‍🩰' => 'mai rawar ballet: launin fata mai madaidaicin haske',
+    '🧑🏽‍🩰' => 'mai rawar ballet: madaidaicin launin fata',
+    '🧑🏾‍🩰' => 'mai rawar ballet: launin fata mai madaidaicin duhu',
+    '🧑🏿‍🩰' => 'mai rawar ballet: launin fata mai duhu',
     '🧔🏻‍♂' => 'na miji: launin fata mai haske, gemu',
     '🧔🏼‍♂' => 'na miji: launin fata mai madaidaicin haske, gemu',
     '🧔🏽‍♂' => 'na miji: madaidaicin launin fata, gemu',
@@ -953,11 +1079,31 @@
     '🧑🏽‍🦯' => 'mutum mai farin bulala: madaidaicin launin fata',
     '🧑🏾‍🦯' => 'mutum mai farin bulala: launin fata mai madaidaicin duhu',
     '🧑🏿‍🦯' => 'mutum mai farin bulala: launin fata mai duhu',
+    '👨🏻‍🦯' => 'mutum da farar sanda: launin fata mai haske',
+    '👨🏼‍🦯' => 'mutum da farar sanda: launin fata mai madaidaicin haske',
+    '👨🏽‍🦯' => 'mutum da farar sanda: madaidaicin launin fata',
+    '👨🏾‍🦯' => 'mutum da farar sanda: launin fata mai madaidaicin duhu',
+    '👨🏿‍🦯' => 'mutum da farar sanda: launin fata mai duhu',
+    '👩🏻‍🦯' => 'mace da farar sanda: launin fata mai haske',
+    '👩🏼‍🦯' => 'mace da farar sanda: launin fata mai madaidaicin haske',
+    '👩🏽‍🦯' => 'mace da farar sanda: madaidaicin launin fata',
+    '👩🏾‍🦯' => 'mace da farar sanda: launin fata mai madaidaicin duhu',
+    '👩🏿‍🦯' => 'mace da farar sanda: launin fata mai duhu',
     '🧑🏻‍🦼' => 'mutum cikin kujeran gurgu: launin fata mai haske',
     '🧑🏼‍🦼' => 'mutum cikin kujeran gurgu: launin fata mai madaidaicin haske',
     '🧑🏽‍🦼' => 'mutum cikin kujeran gurgu: madaidaicin launin fata',
     '🧑🏾‍🦼' => 'mutum cikin kujeran gurgu: launin fata mai madaidaicin duhu',
     '🧑🏿‍🦼' => 'mutum cikin kujeran gurgu: launin fata mai duhu',
+    '👨🏻‍🦼' => 'mutum a keken guragu na lantarki: launin fata mai haske',
+    '👨🏼‍🦼' => 'mutum a keken guragu na lantarki: launin fata mai madaidaicin haske',
+    '👨🏽‍🦼' => 'mutum a keken guragu na lantarki: madaidaicin launin fata',
+    '👨🏾‍🦼' => 'mutum a keken guragu na lantarki: launin fata mai madaidaicin duhu',
+    '👨🏿‍🦼' => 'mutum a keken guragu na lantarki: launin fata mai duhu',
+    '👩🏻‍🦼' => 'mace a kan keken guragu mai inji: launin fata mai haske',
+    '👩🏼‍🦼' => 'mace a kan keken guragu mai inji: launin fata mai madaidaicin haske',
+    '👩🏽‍🦼' => 'mace a kan keken guragu mai inji: madaidaicin launin fata',
+    '👩🏾‍🦼' => 'mace a kan keken guragu mai inji: launin fata mai madaidaicin duhu',
+    '👩🏿‍🦼' => 'mace a kan keken guragu mai inji: launin fata mai duhu',
     '🧑🏻‍🦽' => 'mutum cikin motan gurgu wanda ke bukatan tuki da hannu: launin fata mai haske',
     '🧑🏼‍🦽' => 'mutum cikin motan gurgu wanda ke bukatan tuki da hannu: launin fata mai madaidaicin haske',
     '🧑🏽‍🦽' => 'mutum cikin motan gurgu wanda ke bukatan tuki da hannu: madaidaicin launin fata',
@@ -983,6 +1129,16 @@
     '🏃🏽‍♀' => 'mace mai yin gudu: madaidaicin launin fata',
     '🏃🏾‍♀' => 'mace mai yin gudu: launin fata mai madaidaicin duhu',
     '🏃🏿‍♀' => 'mace mai yin gudu: launin fata mai duhu',
+    '👯🏻‍♀' => 'mata masu kunnuwan zomo yin biki: launin fata mai haske',
+    '👯🏼‍♀' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske',
+    '👯🏽‍♀' => 'mata masu kunnuwan zomo yin biki: madaidaicin launin fata',
+    '👯🏾‍♀' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu',
+    '👯🏿‍♀' => 'mata masu kunnuwan zomo yin biki: launin fata mai duhu',
+    '👯🏻‍♂' => 'maza masu kunnuwan zomo yin biki: launin fata mai haske',
+    '👯🏼‍♂' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske',
+    '👯🏽‍♂' => 'maza masu kunnuwan zomo yin biki: madaidaicin launin fata',
+    '👯🏾‍♂' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu',
+    '👯🏿‍♂' => 'maza masu kunnuwan zomo yin biki: launin fata mai duhu',
     '🧖🏻‍♂' => 'namiji a cikin ɗakin surace: launin fata mai haske',
     '🧖🏼‍♂' => 'namiji a cikin ɗakin surace: launin fata mai madaidaicin haske',
     '🧖🏽‍♂' => 'namiji a cikin ɗakin surace: madaidaicin launin fata',
@@ -1093,6 +1249,16 @@
     '🤸🏽‍♀' => 'mace tuƙan amalanke: madaidaicin launin fata',
     '🤸🏾‍♀' => 'mace tuƙan amalanke: launin fata mai madaidaicin duhu',
     '🤸🏿‍♀' => 'mace tuƙan amalanke: launin fata mai duhu',
+    '🤼🏻‍♀' => 'mata masu kokawa: launin fata mai haske',
+    '🤼🏼‍♀' => 'mata masu kokawa: launin fata mai madaidaicin haske',
+    '🤼🏽‍♀' => 'mata masu kokawa: madaidaicin launin fata',
+    '🤼🏾‍♀' => 'mata masu kokawa: launin fata mai madaidaicin duhu',
+    '🤼🏿‍♀' => 'mata masu kokawa: launin fata mai duhu',
+    '🤼🏻‍♂' => 'maza masu kokawa: launin fata mai haske',
+    '🤼🏼‍♂' => 'maza masu kokawa: launin fata mai madaidaicin haske',
+    '🤼🏽‍♂' => 'maza masu kokawa: madaidaicin launin fata',
+    '🤼🏾‍♂' => 'maza masu kokawa: launin fata mai madaidaicin duhu',
+    '🤼🏿‍♂' => 'maza masu kokawa: launin fata mai duhu',
     '🤽🏻‍♂' => 'namiji mai bugan wasan holo na ruwa: launin fata mai haske',
     '🤽🏼‍♂' => 'namiji mai bugan wasan holo na ruwa: launin fata mai madaidaicin haske',
     '🤽🏽‍♂' => 'namiji mai bugan wasan holo na ruwa: madaidaicin launin fata',
@@ -1273,12 +1439,17 @@
     '🧍‍♂' => 'miji mai tsaye',
     '🧍‍♀' => 'mace mai tsayuwa',
     '🧑‍🦯' => 'mutum mai farin bulala',
+    '👨‍🦯' => 'mutum da farar sanda',
+    '👩‍🦯' => 'mace da farar sanda',
     '🧑‍🦼' => 'mutum cikin kujeran gurgu',
+    '👨‍🦼' => 'mutum a keken guragu na lantarki',
+    '👩‍🦼' => 'mace a kan keken guragu mai inji',
     '🧑‍🦽' => 'mutum cikin motan gurgu wanda ke bukatan tuki da hannu',
     '👨‍🦽' => 'na miji a cikin motan gurgu da ke bukatan tuki',
     '👩‍🦽' => 'na mace a cikin motan gurgu da ke bukatan tuki',
     '🏃‍♂' => 'namiji mai yin gudu',
     '🏃‍♀' => 'mace mai yin gudu',
+    '🧑‍🩰' => 'mai rawar ballet',
     '👯‍♂' => 'maza masu kunnuwan zomo yin biki',
     '👯‍♀' => 'mata masu kunnuwan zomo yin biki',
     '🧖‍♂' => 'namiji a cikin ɗakin surace',
@@ -1860,6 +2031,11 @@
     '🕴🏽' => 'mutum a cikin kwat na kasuwanci mai jewa: madaidaicin launin fata',
     '🕴🏾' => 'mutum a cikin kwat na kasuwanci mai jewa: launin fata mai madaidaicin duhu',
     '🕴🏿' => 'mutum a cikin kwat na kasuwanci mai jewa: launin fata mai duhu',
+    '👯🏻' => 'mutane masu kunnuwan zomo yin biki: launin fata mai haske',
+    '👯🏼' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske',
+    '👯🏽' => 'mutane masu kunnuwan zomo yin biki: madaidaicin launin fata',
+    '👯🏾' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu',
+    '👯🏿' => 'mutane masu kunnuwan zomo yin biki: launin fata mai duhu',
     '🧖🏻' => 'mutum a cikin ɗakin surace: launin fata mai haske',
     '🧖🏼' => 'mutum a cikin ɗakin surace: launin fata mai madaidaicin haske',
     '🧖🏽' => 'mutum a cikin ɗakin surace: madaidaicin launin fata',
@@ -1925,6 +2101,11 @@
     '🤸🏽' => 'mutum mai alkafura: madaidaicin launin fata',
     '🤸🏾' => 'mutum mai alkafura: launin fata mai madaidaicin duhu',
     '🤸🏿' => 'mutum mai alkafura: launin fata mai duhu',
+    '🤼🏻' => 'mutane masu kokawa: launin fata mai haske',
+    '🤼🏼' => 'mutane masu kokawa: launin fata mai madaidaicin haske',
+    '🤼🏽' => 'mutane masu kokawa: madaidaicin launin fata',
+    '🤼🏾' => 'mutane masu kokawa: launin fata mai madaidaicin duhu',
+    '🤼🏿' => 'mutane masu kokawa: launin fata mai duhu',
     '🤽🏻' => 'mutum mai bugan wasan holo na ruwa: launin fata mai haske',
     '🤽🏼' => 'mutum mai bugan wasan holo na ruwa: launin fata mai madaidaicin haske',
     '🤽🏽' => 'mutum mai bugan wasan holo na ruwa: madaidaicin launin fata',
@@ -2031,6 +2212,7 @@
     '🇨🇳' => 'tuta: Sin',
     '🇨🇴' => 'tuta: Kolambiya',
     '🇨🇵' => 'tuta: Tsibirin Clipperton',
+    '🇨🇶' => 'tuta: Sark',
     '🇨🇷' => 'tuta: Kwasta Rika',
     '🇨🇺' => 'tuta: Kyuba',
     '🇨🇻' => 'tuta: Tsibiran Cape Verde',
@@ -2244,13 +2426,6 @@
     '🏽' => 'madaidaicin launin fata',
     '🏾' => 'launin fata mai madaidaicin duhu',
     '🏿' => 'launin fata mai duhu',
-    '🪉' => 'abin kiɗa na harp',
-    '🪏' => 'shebur',
-    '🪾' => 'bishiya maras ganye',
-    '🫆' => 'zanen ɗan yatsa',
-    '🫜' => 'kayan lambu masu saiwa',
-    '🫟' => 'fantsama',
-    '🫩' => 'fuska mai kumburi a ƙasan ido',
     '😀' => 'fuska mai murmushin baki har kunne',
     '😃' => 'fuska mai murmushi tare da manyan idanu',
     '😄' => 'fuska mai murmushi tare da idanu',
@@ -2304,6 +2479,7 @@
     '😪' => 'fuska mai jin barci',
     '🤤' => 'fuska mai nuna ɓacin rai',
     '😴' => 'fuska mai yin barci',
+    '🫩' => 'fuska mai kumburi a ƙasan ido',
     '😷' => 'fuska mai abin rufen fuska na kula da lafiya',
     '🤒' => 'fuska mai tsinken awon zafin jiki',
     '🤕' => 'fuska mai bandejin-kai',
@@ -2330,6 +2506,7 @@
     '😯' => 'fuska mai nitsuwa',
     '😲' => 'fuska mai burgewa',
     '😳' => 'fuska mai murna',
+    '🫪' => 'juyayyen fuska',
     '🥺' => 'fuska mai roƙo',
     '🥹' => 'fuska ido ya ciko',
     '😦' => 'fuska mai gama gira tare da baki a buɗe',
@@ -2401,6 +2578,7 @@
     '💋' => 'alamar sumba',
     '💯' => 'makunan ɗari',
     '💢' => 'alamar fushi',
+    '🫯' => 'gajimaren faɗa',
     '💥' => 'karo',
     '💫' => 'jiri',
     '💦' => 'ɗige-ɗigen gumi',
@@ -2524,6 +2702,7 @@
     '🧞' => 'aljanin larabawa',
     '🧟' => 'gaya mai rai',
     '🧌' => 'mutum na zane',
+    '🫈' => 'halitta mai gashi',
     '💆' => 'mutum mai samun tausa',
     '💇' => 'mutum mai yin aski',
     '🚶' => 'mutum mai yin tafiya ƙafa',
@@ -2567,6 +2746,7 @@
     '🫂' => 'mutane na runguma',
     '👪' => 'iyali',
     '👣' => 'sawaye',
+    '🫆' => 'zanen ɗan yatsa',
     '🦰' => 'jan gashi',
     '🦱' => 'gashi mai laushi',
     '🦳' => 'farin gashi',
@@ -2666,6 +2846,7 @@
     '🐳' => 'dabbar whale mai fitowar da ruwa',
     '🐋' => 'dabbar whale',
     '🐬' => 'kifin dolphin',
+    '🫍' => 'kifin orca',
     '🦭' => 'ayu',
     '🐟' => 'kifi',
     '🐠' => 'kifi na wuri mai zafi',
@@ -2675,6 +2856,11 @@
     '🐚' => 'lanƙwasasshen ƙumba',
     '🪸' => 'ciyawa',
     '🪼' => 'jelisih',
+    '🦀' => 'ƙaguwa',
+    '🦞' => 'ƙaguwar lobster',
+    '🦐' => 'jatanlande',
+    '🦑' => 'jatan lande na turawa',
+    '🦪' => 'oyesta',
     '🐌' => 'dodon koɗi',
     '🦋' => 'malam-buɗe-mana-littafi',
     '🐛' => 'ƙwaro',
@@ -2719,6 +2905,7 @@
     '🪹' => 'sheƙar da ba komai',
     '🪺' => 'sheƙa mai ƙwai',
     '🍄' => 'inuwar-kwaɗi',
+    '🪾' => 'bishiya maras ganye',
     '🍇' => 'inabi',
     '🍈' => 'malo',
     '🍉' => 'kankana',
@@ -2755,6 +2942,7 @@
     '🌰' => 'gyaɗar chestnut',
     '🫚' => 'saiwar citta',
     '🫛' => 'koren wake na fis',
+    '🫜' => 'kayan lambu masu saiwa',
     '🍞' => 'burodi',
     '🥐' => 'burodin croissant',
     '🥖' => 'burodin baguette',
@@ -2806,11 +2994,6 @@
     '🥟' => 'ƙaramar kwaɓaɓɓiyar fulawa',
     '🥠' => 'biskit na dukiya',
     '🥡' => 'akwatin abinci na fita waje',
-    '🦀' => 'ƙaguwa',
-    '🦞' => 'ƙaguwar lobster',
-    '🦐' => 'jatanlande',
-    '🦑' => 'jatan lande na turawa',
-    '🦪' => 'oyesta',
     '🍦' => 'ƙanƙara Mai taushi',
     '🍧' => 'rugurgujen ƙanƙara',
     '🍨' => 'ƙanƙara',
@@ -2861,6 +3044,7 @@
     '🧭' => 'kamfas',
     '🏔' => 'tsauni mai saman ƙanƙara',
     '⛰' => 'tsauni',
+    '🛘' => 'zamewar ƙasa',
     '🌋' => 'dutse mai aman wuta',
     '🗻' => 'tsaunin fuji',
     '🏕' => 'zaman ruga',
@@ -3221,16 +3405,18 @@
     '🎧' => 'mazirorin kunne',
     '📻' => 'rediyo',
     '🎷' => 'mabushi',
+    '🎺' => 'kakaki',
+    '🪊' => 'algaita',
     '🪗' => 'akodiyon',
     '🎸' => 'jita',
     '🎹' => 'kibod na kiɗa',
-    '🎺' => 'kakaki',
     '🎻' => 'goge',
     '🪕' => 'gurmin banjo',
     '🥁' => 'ganga',
     '🪘' => 'doguwar ganga',
     '🪇' => 'kacau-kacau',
     '🪈' => 'sarewa',
+    '🪉' => 'abin kiɗa na harp',
     '📱' => 'wayar hannu',
     '📲' => 'wayar hannu tare da kibiya',
     '☎' => 'tarho',
@@ -3284,8 +3470,9 @@
     '📑' => 'maɓallan ma’ajiyar rubutu',
     '🔖' => 'ma’ajiyar rubutu',
     '🏷' => 'alamar liƙawa',
-    '💰' => 'jakar kuɗi',
     '🪙' => 'tsabar kuɗi',
+    '💰' => 'jakar kuɗi',
+    '🪎' => 'akwatin dukiya',
     '💴' => 'takardar kuɗi na yen',
     '💵' => 'takardar kuɗi na dala',
     '💶' => 'takardar kuɗi na euro',
@@ -3368,6 +3555,7 @@
     '🧰' => 'akwatin kayan aiki',
     '🧲' => 'maganaɗisu',
     '🪜' => 'tsani',
+    '🪏' => 'shebur',
     '⚗' => 'tukunyar alembic',
     '🧪' => 'bututun gwaji',
     '🧫' => 'tasar petri',
@@ -3551,6 +3739,7 @@
     '✴' => 'tauraro mai tsini takwas',
     '❇' => 'ƙyalƙyali',
     '™' => 'tambarin kamfani',
+    '🫟' => 'fantsama',
     '🔠' => 'alamar shigarwar manyan baƙaƙe na latin',
     '🔡' => 'alamar shigarwa ƙananan baƙaƙe na latin',
     '🔢' => 'shigarwar lambobi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ha.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ha.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ha.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ha.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'sumba: mace, mace, launin fata mai duhu, madaidaicin launin fata',
     '👩🏿‍❤‍💋‍👩🏾' => 'sumba: mace, mace, launin fata mai duhu, launin fata mai madaidaicin duhu',
     '👩🏿‍❤‍💋‍👩🏿' => 'sumba: mace, mace, launin fata mai duhu',
+    '🧑🏻‍🫯‍🧑🏼' => 'mutane masu kokawa: launin fata mai haske, launin fata mai madaidaicin haske',
+    '🧑🏻‍🫯‍🧑🏽' => 'mutane masu kokawa: launin fata mai haske, madaidaicin launin fata',
+    '🧑🏻‍🫯‍🧑🏾' => 'mutane masu kokawa: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '🧑🏻‍🫯‍🧑🏿' => 'mutane masu kokawa: launin fata mai haske, launin fata mai duhu',
+    '🧑🏼‍🫯‍🧑🏻' => 'mutane masu kokawa: launin fata mai madaidaicin haske, launin fata mai haske',
+    '🧑🏼‍🫯‍🧑🏽' => 'mutane masu kokawa: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '🧑🏼‍🫯‍🧑🏾' => 'mutane masu kokawa: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '🧑🏼‍🫯‍🧑🏿' => 'mutane masu kokawa: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '🧑🏽‍🫯‍🧑🏻' => 'mutane masu kokawa: madaidaicin launin fata, launin fata mai haske',
+    '🧑🏽‍🫯‍🧑🏼' => 'mutane masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '🧑🏽‍🫯‍🧑🏾' => 'mutane masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '🧑🏽‍🫯‍🧑🏿' => 'mutane masu kokawa: madaidaicin launin fata, launin fata mai duhu',
+    '🧑🏾‍🫯‍🧑🏻' => 'mutane masu kokawa: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '🧑🏾‍🫯‍🧑🏼' => 'mutane masu kokawa: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '🧑🏾‍🫯‍🧑🏽' => 'mutane masu kokawa: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '🧑🏾‍🫯‍🧑🏿' => 'mutane masu kokawa: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '🧑🏿‍🫯‍🧑🏻' => 'mutane masu kokawa: launin fata mai duhu, launin fata mai haske',
+    '🧑🏿‍🫯‍🧑🏼' => 'mutane masu kokawa: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '🧑🏿‍🫯‍🧑🏽' => 'mutane masu kokawa: launin fata mai duhu, madaidaicin launin fata',
+    '🧑🏿‍🫯‍🧑🏾' => 'mutane masu kokawa: launin fata mai duhu, launin fata mai madaidaicin duhu',
     '🧑🏻‍❤‍🧑🏼' => 'miji da mata tare da zuciya: babba, babba, launin fata mai haske, launin fata mai madaidaicin haske',
     '🧑🏻‍❤‍🧑🏽' => 'miji da mata tare da zuciya: babba, babba, launin fata mai haske, madaidaicin launin fata',
     '🧑🏻‍❤‍🧑🏾' => 'miji da mata tare da zuciya: babba, babba, launin fata mai haske, launin fata mai madaidaicin duhu',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'miji da mata tare da zuciya: babba, babba, launin fata mai duhu, launin fata mai madaidaicin haske',
     '🧑🏿‍❤‍🧑🏽' => 'miji da mata tare da zuciya: babba, babba, launin fata mai duhu, madaidaicin launin fata',
     '🧑🏿‍❤‍🧑🏾' => 'miji da mata tare da zuciya: babba, babba, launin fata mai duhu, launin fata mai madaidaicin duhu',
+    '🧑🏻‍🐰‍🧑🏼' => 'mutane masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin haske',
+    '🧑🏻‍🐰‍🧑🏽' => 'mutane masu kunnuwan zomo yin biki: launin fata mai haske, madaidaicin launin fata',
+    '🧑🏻‍🐰‍🧑🏾' => 'mutane masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '🧑🏻‍🐰‍🧑🏿' => 'mutane masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai duhu',
+    '🧑🏼‍🐰‍🧑🏻' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai haske',
+    '🧑🏼‍🐰‍🧑🏽' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '🧑🏼‍🐰‍🧑🏾' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '🧑🏼‍🐰‍🧑🏿' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '🧑🏽‍🐰‍🧑🏻' => 'mutane masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai haske',
+    '🧑🏽‍🐰‍🧑🏼' => 'mutane masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '🧑🏽‍🐰‍🧑🏾' => 'mutane masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '🧑🏽‍🐰‍🧑🏿' => 'mutane masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai duhu',
+    '🧑🏾‍🐰‍🧑🏻' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '🧑🏾‍🐰‍🧑🏼' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '🧑🏾‍🐰‍🧑🏽' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '🧑🏾‍🐰‍🧑🏿' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '🧑🏿‍🐰‍🧑🏻' => 'mutane masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai haske',
+    '🧑🏿‍🐰‍🧑🏼' => 'mutane masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '🧑🏿‍🐰‍🧑🏽' => 'mutane masu kunnuwan zomo yin biki: launin fata mai duhu, madaidaicin launin fata',
+    '🧑🏿‍🐰‍🧑🏾' => 'mutane masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin duhu',
+    '👨🏻‍🫯‍👨🏼' => 'maza masu kokawa: launin fata mai haske, launin fata mai madaidaicin haske',
+    '👨🏻‍🫯‍👨🏽' => 'maza masu kokawa: launin fata mai haske, madaidaicin launin fata',
+    '👨🏻‍🫯‍👨🏾' => 'maza masu kokawa: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '👨🏻‍🫯‍👨🏿' => 'maza masu kokawa: launin fata mai haske, launin fata mai duhu',
+    '👨🏼‍🫯‍👨🏻' => 'maza masu kokawa: launin fata mai madaidaicin haske, launin fata mai haske',
+    '👨🏼‍🫯‍👨🏽' => 'maza masu kokawa: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '👨🏼‍🫯‍👨🏾' => 'maza masu kokawa: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '👨🏼‍🫯‍👨🏿' => 'maza masu kokawa: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '👨🏽‍🫯‍👨🏻' => 'maza masu kokawa: madaidaicin launin fata, launin fata mai haske',
+    '👨🏽‍🫯‍👨🏼' => 'maza masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '👨🏽‍🫯‍👨🏾' => 'maza masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '👨🏽‍🫯‍👨🏿' => 'maza masu kokawa: madaidaicin launin fata, launin fata mai duhu',
+    '👨🏾‍🫯‍👨🏻' => 'maza masu kokawa: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '👨🏾‍🫯‍👨🏼' => 'maza masu kokawa: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '👨🏾‍🫯‍👨🏽' => 'maza masu kokawa: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '👨🏾‍🫯‍👨🏿' => 'maza masu kokawa: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '👨🏿‍🫯‍👨🏻' => 'maza masu kokawa: launin fata mai duhu, launin fata mai haske',
+    '👨🏿‍🫯‍👨🏼' => 'maza masu kokawa: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '👨🏿‍🫯‍👨🏽' => 'maza masu kokawa: launin fata mai duhu, madaidaicin launin fata',
+    '👨🏿‍🫯‍👨🏾' => 'maza masu kokawa: launin fata mai duhu, launin fata mai madaidaicin duhu',
     '👨🏻‍❤‍👨🏻' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai haske',
     '👨🏻‍❤‍👨🏼' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai haske, launin fata mai madaidaicin haske',
     '👨🏻‍❤‍👨🏽' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai haske, madaidaicin launin fata',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai duhu, madaidaicin launin fata',
     '👨🏿‍❤‍👨🏾' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai duhu, launin fata mai madaidaicin duhu',
     '👨🏿‍❤‍👨🏿' => 'miji da mata tare da zuciya: namiji, namiji, launin fata mai duhu',
+    '👨🏻‍🐰‍👨🏼' => 'maza masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin haske',
+    '👨🏻‍🐰‍👨🏽' => 'maza masu kunnuwan zomo yin biki: launin fata mai haske, madaidaicin launin fata',
+    '👨🏻‍🐰‍👨🏾' => 'maza masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '👨🏻‍🐰‍👨🏿' => 'maza masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai duhu',
+    '👨🏼‍🐰‍👨🏻' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai haske',
+    '👨🏼‍🐰‍👨🏽' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '👨🏼‍🐰‍👨🏾' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '👨🏼‍🐰‍👨🏿' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '👨🏽‍🐰‍👨🏻' => 'maza masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai haske',
+    '👨🏽‍🐰‍👨🏼' => 'maza masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '👨🏽‍🐰‍👨🏾' => 'maza masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '👨🏽‍🐰‍👨🏿' => 'maza masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai duhu',
+    '👨🏾‍🐰‍👨🏻' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '👨🏾‍🐰‍👨🏼' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '👨🏾‍🐰‍👨🏽' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '👨🏾‍🐰‍👨🏿' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '👨🏿‍🐰‍👨🏻' => 'maza masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai haske',
+    '👨🏿‍🐰‍👨🏼' => 'maza masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '👨🏿‍🐰‍👨🏽' => 'maza masu kunnuwan zomo yin biki: launin fata mai duhu, madaidaicin launin fata',
+    '👨🏿‍🐰‍👨🏾' => 'maza masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin duhu',
+    '👩🏻‍🫯‍👩🏼' => 'mata masu kokawa: launin fata mai haske, launin fata mai madaidaicin haske',
+    '👩🏻‍🫯‍👩🏽' => 'mata masu kokawa: launin fata mai haske, madaidaicin launin fata',
+    '👩🏻‍🫯‍👩🏾' => 'mata masu kokawa: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '👩🏻‍🫯‍👩🏿' => 'mata masu kokawa: launin fata mai haske, launin fata mai duhu',
+    '👩🏼‍🫯‍👩🏻' => 'mata masu kokawa: launin fata mai madaidaicin haske, launin fata mai haske',
+    '👩🏼‍🫯‍👩🏽' => 'mata masu kokawa: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '👩🏼‍🫯‍👩🏾' => 'mata masu kokawa: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '👩🏼‍🫯‍👩🏿' => 'mata masu kokawa: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '👩🏽‍🫯‍👩🏻' => 'mata masu kokawa: madaidaicin launin fata, launin fata mai haske',
+    '👩🏽‍🫯‍👩🏼' => 'mata masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '👩🏽‍🫯‍👩🏾' => 'mata masu kokawa: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '👩🏽‍🫯‍👩🏿' => 'mata masu kokawa: madaidaicin launin fata, launin fata mai duhu',
+    '👩🏾‍🫯‍👩🏻' => 'mata masu kokawa: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '👩🏾‍🫯‍👩🏼' => 'mata masu kokawa: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '👩🏾‍🫯‍👩🏽' => 'mata masu kokawa: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '👩🏾‍🫯‍👩🏿' => 'mata masu kokawa: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '👩🏿‍🫯‍👩🏻' => 'mata masu kokawa: launin fata mai duhu, launin fata mai haske',
+    '👩🏿‍🫯‍👩🏼' => 'mata masu kokawa: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '👩🏿‍🫯‍👩🏽' => 'mata masu kokawa: launin fata mai duhu, madaidaicin launin fata',
+    '👩🏿‍🫯‍👩🏾' => 'mata masu kokawa: launin fata mai duhu, launin fata mai madaidaicin duhu',
     '👩🏻‍❤‍👨🏻' => 'miji da mata tare da zuciya: mace, namiji, launin fata mai haske',
     '👩🏻‍❤‍👨🏼' => 'miji da mata tare da zuciya: mace, namiji, launin fata mai haske, launin fata mai madaidaicin haske',
     '👩🏻‍❤‍👨🏽' => 'miji da mata tare da zuciya: mace, namiji, launin fata mai haske, madaidaicin launin fata',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'miji da mata tare da zuciya: mace, mace, launin fata mai duhu, madaidaicin launin fata',
     '👩🏿‍❤‍👩🏾' => 'miji da mata tare da zuciya: mace, mace, launin fata mai duhu, launin fata mai madaidaicin duhu',
     '👩🏿‍❤‍👩🏿' => 'miji da mata tare da zuciya: mace, mace, launin fata mai duhu',
+    '👩🏻‍🐰‍👩🏼' => 'mata masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin haske',
+    '👩🏻‍🐰‍👩🏽' => 'mata masu kunnuwan zomo yin biki: launin fata mai haske, madaidaicin launin fata',
+    '👩🏻‍🐰‍👩🏾' => 'mata masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai madaidaicin duhu',
+    '👩🏻‍🐰‍👩🏿' => 'mata masu kunnuwan zomo yin biki: launin fata mai haske, launin fata mai duhu',
+    '👩🏼‍🐰‍👩🏻' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai haske',
+    '👩🏼‍🐰‍👩🏽' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, madaidaicin launin fata',
+    '👩🏼‍🐰‍👩🏾' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai madaidaicin duhu',
+    '👩🏼‍🐰‍👩🏿' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske, launin fata mai duhu',
+    '👩🏽‍🐰‍👩🏻' => 'mata masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai haske',
+    '👩🏽‍🐰‍👩🏼' => 'mata masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin haske',
+    '👩🏽‍🐰‍👩🏾' => 'mata masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai madaidaicin duhu',
+    '👩🏽‍🐰‍👩🏿' => 'mata masu kunnuwan zomo yin biki: madaidaicin launin fata, launin fata mai duhu',
+    '👩🏾‍🐰‍👩🏻' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai haske',
+    '👩🏾‍🐰‍👩🏼' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai madaidaicin haske',
+    '👩🏾‍🐰‍👩🏽' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, madaidaicin launin fata',
+    '👩🏾‍🐰‍👩🏿' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu, launin fata mai duhu',
+    '👩🏿‍🐰‍👩🏻' => 'mata masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai haske',
+    '👩🏿‍🐰‍👩🏼' => 'mata masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin haske',
+    '👩🏿‍🐰‍👩🏽' => 'mata masu kunnuwan zomo yin biki: launin fata mai duhu, madaidaicin launin fata',
+    '👩🏿‍🐰‍👩🏾' => 'mata masu kunnuwan zomo yin biki: launin fata mai duhu, launin fata mai madaidaicin duhu',
     '🧑🏻‍🤝‍🧑🏻' => 'mutane masu rikon hannaye: launin fata mai haske',
     '🧑🏻‍🤝‍🧑🏼' => 'mutane masu rikon hannaye: launin fata mai haske, launin fata mai madaidaicin haske',
     '🧑🏻‍🤝‍🧑🏽' => 'mutane masu rikon hannaye: launin fata mai haske, madaidaicin launin fata',
@@ -289,6 +409,7 @@
     '👩‍👩‍👦‍👦' => 'iyali: mace, mace, yaro, yaro',
     '👩‍👩‍👧‍👧' => 'iyali: mace, mace, yarinya, yarinya',
     '🏴󠁧󠁢󠁥󠁮󠁧󠁿' => 'tuta: Ingila',
+    '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'tuta: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'iyali: manya, manya, yara, yara',
     '🫱🏻‍🫲🏼' => 'musafiha: launin fata mai haske, launin fata mai madaidaicin haske',
     '🫱🏻‍🫲🏽' => 'musafiha: launin fata mai haske, madaidaicin launin fata',
@@ -348,6 +469,11 @@
     '🧑🏽‍🦲' => 'babba: madaidaicin launin fata, sanƙo',
     '🧑🏾‍🦲' => 'babba: launin fata mai madaidaicin duhu, sanƙo',
     '🧑🏿‍🦲' => 'babba: launin fata mai duhu, sanƙo',
+    '🧑🏻‍🩰' => 'mai rawar ballet: launin fata mai haske',
+    '🧑🏼‍🩰' => 'mai rawar ballet: launin fata mai madaidaicin haske',
+    '🧑🏽‍🩰' => 'mai rawar ballet: madaidaicin launin fata',
+    '🧑🏾‍🩰' => 'mai rawar ballet: launin fata mai madaidaicin duhu',
+    '🧑🏿‍🩰' => 'mai rawar ballet: launin fata mai duhu',
     '🧔🏻‍♂' => 'na miji: launin fata mai haske, gemu',
     '🧔🏼‍♂' => 'na miji: launin fata mai madaidaicin haske, gemu',
     '🧔🏽‍♂' => 'na miji: madaidaicin launin fata, gemu',
@@ -953,11 +1079,31 @@
     '🧑🏽‍🦯' => 'mutum mai farin bulala: madaidaicin launin fata',
     '🧑🏾‍🦯' => 'mutum mai farin bulala: launin fata mai madaidaicin duhu',
     '🧑🏿‍🦯' => 'mutum mai farin bulala: launin fata mai duhu',
+    '👨🏻‍🦯' => 'mutum da farar sanda: launin fata mai haske',
+    '👨🏼‍🦯' => 'mutum da farar sanda: launin fata mai madaidaicin haske',
+    '👨🏽‍🦯' => 'mutum da farar sanda: madaidaicin launin fata',
+    '👨🏾‍🦯' => 'mutum da farar sanda: launin fata mai madaidaicin duhu',
+    '👨🏿‍🦯' => 'mutum da farar sanda: launin fata mai duhu',
+    '👩🏻‍🦯' => 'mace da farar sanda: launin fata mai haske',
+    '👩🏼‍🦯' => 'mace da farar sanda: launin fata mai madaidaicin haske',
+    '👩🏽‍🦯' => 'mace da farar sanda: madaidaicin launin fata',
+    '👩🏾‍🦯' => 'mace da farar sanda: launin fata mai madaidaicin duhu',
+    '👩🏿‍🦯' => 'mace da farar sanda: launin fata mai duhu',
     '🧑🏻‍🦼' => 'mutum cikin kujeran gurgu: launin fata mai haske',
     '🧑🏼‍🦼' => 'mutum cikin kujeran gurgu: launin fata mai madaidaicin haske',
     '🧑🏽‍🦼' => 'mutum cikin kujeran gurgu: madaidaicin launin fata',
     '🧑🏾‍🦼' => 'mutum cikin kujeran gurgu: launin fata mai madaidaicin duhu',
     '🧑🏿‍🦼' => 'mutum cikin kujeran gurgu: launin fata mai duhu',
+    '👨🏻‍🦼' => 'mutum a keken guragu na lantarki: launin fata mai haske',
+    '👨🏼‍🦼' => 'mutum a keken guragu na lantarki: launin fata mai madaidaicin haske',
+    '👨🏽‍🦼' => 'mutum a keken guragu na lantarki: madaidaicin launin fata',
+    '👨🏾‍🦼' => 'mutum a keken guragu na lantarki: launin fata mai madaidaicin duhu',
+    '👨🏿‍🦼' => 'mutum a keken guragu na lantarki: launin fata mai duhu',
+    '👩🏻‍🦼' => 'mace a kan keken guragu mai inji: launin fata mai haske',
+    '👩🏼‍🦼' => 'mace a kan keken guragu mai inji: launin fata mai madaidaicin haske',
+    '👩🏽‍🦼' => 'mace a kan keken guragu mai inji: madaidaicin launin fata',
+    '👩🏾‍🦼' => 'mace a kan keken guragu mai inji: launin fata mai madaidaicin duhu',
+    '👩🏿‍🦼' => 'mace a kan keken guragu mai inji: launin fata mai duhu',
     '🧑🏻‍🦽' => 'mutum cikin motan gurgu wanda ke bukatan tuki da hannu: launin fata mai haske',
     '🧑🏼‍🦽' => 'mutum cikin motan gurgu wanda ke bukatan tuki da hannu: launin fata mai madaidaicin haske',
     '🧑🏽‍🦽' => 'mutum cikin motan gurgu wanda ke bukatan tuki da hannu: madaidaicin launin fata',
@@ -983,6 +1129,16 @@
     '🏃🏽‍♀' => 'mace mai yin gudu: madaidaicin launin fata',
     '🏃🏾‍♀' => 'mace mai yin gudu: launin fata mai madaidaicin duhu',
     '🏃🏿‍♀' => 'mace mai yin gudu: launin fata mai duhu',
+    '👯🏻‍♀' => 'mata masu kunnuwan zomo yin biki: launin fata mai haske',
+    '👯🏼‍♀' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske',
+    '👯🏽‍♀' => 'mata masu kunnuwan zomo yin biki: madaidaicin launin fata',
+    '👯🏾‍♀' => 'mata masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu',
+    '👯🏿‍♀' => 'mata masu kunnuwan zomo yin biki: launin fata mai duhu',
+    '👯🏻‍♂' => 'maza masu kunnuwan zomo yin biki: launin fata mai haske',
+    '👯🏼‍♂' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske',
+    '👯🏽‍♂' => 'maza masu kunnuwan zomo yin biki: madaidaicin launin fata',
+    '👯🏾‍♂' => 'maza masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu',
+    '👯🏿‍♂' => 'maza masu kunnuwan zomo yin biki: launin fata mai duhu',
     '🧖🏻‍♂' => 'namiji a cikin ɗakin surace: launin fata mai haske',
     '🧖🏼‍♂' => 'namiji a cikin ɗakin surace: launin fata mai madaidaicin haske',
     '🧖🏽‍♂' => 'namiji a cikin ɗakin surace: madaidaicin launin fata',
@@ -1093,6 +1249,16 @@
     '🤸🏽‍♀' => 'mace tuƙan amalanke: madaidaicin launin fata',
     '🤸🏾‍♀' => 'mace tuƙan amalanke: launin fata mai madaidaicin duhu',
     '🤸🏿‍♀' => 'mace tuƙan amalanke: launin fata mai duhu',
+    '🤼🏻‍♀' => 'mata masu kokawa: launin fata mai haske',
+    '🤼🏼‍♀' => 'mata masu kokawa: launin fata mai madaidaicin haske',
+    '🤼🏽‍♀' => 'mata masu kokawa: madaidaicin launin fata',
+    '🤼🏾‍♀' => 'mata masu kokawa: launin fata mai madaidaicin duhu',
+    '🤼🏿‍♀' => 'mata masu kokawa: launin fata mai duhu',
+    '🤼🏻‍♂' => 'maza masu kokawa: launin fata mai haske',
+    '🤼🏼‍♂' => 'maza masu kokawa: launin fata mai madaidaicin haske',
+    '🤼🏽‍♂' => 'maza masu kokawa: madaidaicin launin fata',
+    '🤼🏾‍♂' => 'maza masu kokawa: launin fata mai madaidaicin duhu',
+    '🤼🏿‍♂' => 'maza masu kokawa: launin fata mai duhu',
     '🤽🏻‍♂' => 'namiji mai bugan wasan holo na ruwa: launin fata mai haske',
     '🤽🏼‍♂' => 'namiji mai bugan wasan holo na ruwa: launin fata mai madaidaicin haske',
     '🤽🏽‍♂' => 'namiji mai bugan wasan holo na ruwa: madaidaicin launin fata',
@@ -1273,12 +1439,17 @@
     '🧍‍♂' => 'miji mai tsaye',
     '🧍‍♀' => 'mace mai tsayuwa',
     '🧑‍🦯' => 'mutum mai farin bulala',
+    '👨‍🦯' => 'mutum da farar sanda',
+    '👩‍🦯' => 'mace da farar sanda',
     '🧑‍🦼' => 'mutum cikin kujeran gurgu',
+    '👨‍🦼' => 'mutum a keken guragu na lantarki',
+    '👩‍🦼' => 'mace a kan keken guragu mai inji',
     '🧑‍🦽' => 'mutum cikin motan gurgu wanda ke bukatan tuki da hannu',
     '👨‍🦽' => 'na miji a cikin motan gurgu da ke bukatan tuki',
     '👩‍🦽' => 'na mace a cikin motan gurgu da ke bukatan tuki',
     '🏃‍♂' => 'namiji mai yin gudu',
     '🏃‍♀' => 'mace mai yin gudu',
+    '🧑‍🩰' => 'mai rawar ballet',
     '👯‍♂' => 'maza masu kunnuwan zomo yin biki',
     '👯‍♀' => 'mata masu kunnuwan zomo yin biki',
     '🧖‍♂' => 'namiji a cikin ɗakin surace',
@@ -1860,6 +2031,11 @@
     '🕴🏽' => 'mutum a cikin kwat na kasuwanci mai jewa: madaidaicin launin fata',
     '🕴🏾' => 'mutum a cikin kwat na kasuwanci mai jewa: launin fata mai madaidaicin duhu',
     '🕴🏿' => 'mutum a cikin kwat na kasuwanci mai jewa: launin fata mai duhu',
+    '👯🏻' => 'mutane masu kunnuwan zomo yin biki: launin fata mai haske',
+    '👯🏼' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin haske',
+    '👯🏽' => 'mutane masu kunnuwan zomo yin biki: madaidaicin launin fata',
+    '👯🏾' => 'mutane masu kunnuwan zomo yin biki: launin fata mai madaidaicin duhu',
+    '👯🏿' => 'mutane masu kunnuwan zomo yin biki: launin fata mai duhu',
     '🧖🏻' => 'mutum a cikin ɗakin surace: launin fata mai haske',
     '🧖🏼' => 'mutum a cikin ɗakin surace: launin fata mai madaidaicin haske',
     '🧖🏽' => 'mutum a cikin ɗakin surace: madaidaicin launin fata',
@@ -1925,6 +2101,11 @@
     '🤸🏽' => 'mutum mai alkafura: madaidaicin launin fata',
     '🤸🏾' => 'mutum mai alkafura: launin fata mai madaidaicin duhu',
     '🤸🏿' => 'mutum mai alkafura: launin fata mai duhu',
+    '🤼🏻' => 'mutane masu kokawa: launin fata mai haske',
+    '🤼🏼' => 'mutane masu kokawa: launin fata mai madaidaicin haske',
+    '🤼🏽' => 'mutane masu kokawa: madaidaicin launin fata',
+    '🤼🏾' => 'mutane masu kokawa: launin fata mai madaidaicin duhu',
+    '🤼🏿' => 'mutane masu kokawa: launin fata mai duhu',
     '🤽🏻' => 'mutum mai bugan wasan holo na ruwa: launin fata mai haske',
     '🤽🏼' => 'mutum mai bugan wasan holo na ruwa: launin fata mai madaidaicin haske',
     '🤽🏽' => 'mutum mai bugan wasan holo na ruwa: madaidaicin launin fata',
@@ -2031,6 +2212,7 @@
     '🇨🇳' => 'tuta: Sin',
     '🇨🇴' => 'tuta: Kolambiya',
     '🇨🇵' => 'tuta: Tsibirin Clipperton',
+    '🇨🇶' => 'tuta: Sark',
     '🇨🇷' => 'tuta: Kwasta Rika',
     '🇨🇺' => 'tuta: Kyuba',
     '🇨🇻' => 'tuta: Tsibiran Cape Verde',
@@ -2244,13 +2426,6 @@
     '🏽' => 'madaidaicin launin fata',
     '🏾' => 'launin fata mai madaidaicin duhu',
     '🏿' => 'launin fata mai duhu',
-    '🪉' => 'abin kiɗa na harp',
-    '🪏' => 'shebur',
-    '🪾' => 'bishiya maras ganye',
-    '🫆' => 'zanen ɗan yatsa',
-    '🫜' => 'kayan lambu masu saiwa',
-    '🫟' => 'fantsama',
-    '🫩' => 'fuska mai kumburi a ƙasan ido',
     '😀' => 'fuska mai murmushin baki har kunne',
     '😃' => 'fuska mai murmushi tare da manyan idanu',
     '😄' => 'fuska mai murmushi tare da idanu',
@@ -2304,6 +2479,7 @@
     '😪' => 'fuska mai jin barci',
     '🤤' => 'fuska mai nuna ɓacin rai',
     '😴' => 'fuska mai yin barci',
+    '🫩' => 'fuska mai kumburi a ƙasan ido',
     '😷' => 'fuska mai abin rufen fuska na kula da lafiya',
     '🤒' => 'fuska mai tsinken awon zafin jiki',
     '🤕' => 'fuska mai bandejin-kai',
@@ -2330,6 +2506,7 @@
     '😯' => 'fuska mai nitsuwa',
     '😲' => 'fuska mai burgewa',
     '😳' => 'fuska mai murna',
+    '🫪' => 'juyayyen fuska',
     '🥺' => 'fuska mai roƙo',
     '🥹' => 'fuska ido ya ciko',
     '😦' => 'fuska mai gama gira tare da baki a buɗe',
@@ -2401,6 +2578,7 @@
     '💋' => 'alamar sumba',
     '💯' => 'makunan ɗari',
     '💢' => 'alamar fushi',
+    '🫯' => 'gajimaren faɗa',
     '💥' => 'karo',
     '💫' => 'jiri',
     '💦' => 'ɗige-ɗigen gumi',
@@ -2524,6 +2702,7 @@
     '🧞' => 'aljanin larabawa',
     '🧟' => 'gaya mai rai',
     '🧌' => 'mutum na zane',
+    '🫈' => 'halitta mai gashi',
     '💆' => 'mutum mai samun tausa',
     '💇' => 'mutum mai yin aski',
     '🚶' => 'mutum mai yin tafiya ƙafa',
@@ -2567,6 +2746,7 @@
     '🫂' => 'mutane na runguma',
     '👪' => 'iyali',
     '👣' => 'sawaye',
+    '🫆' => 'zanen ɗan yatsa',
     '🦰' => 'jan gashi',
     '🦱' => 'gashi mai laushi',
     '🦳' => 'farin gashi',
@@ -2666,6 +2846,7 @@
     '🐳' => 'dabbar whale mai fitowar da ruwa',
     '🐋' => 'dabbar whale',
     '🐬' => 'kifin dolphin',
+    '🫍' => 'kifin orca',
     '🦭' => 'ayu',
     '🐟' => 'kifi',
     '🐠' => 'kifi na wuri mai zafi',
@@ -2675,6 +2856,11 @@
     '🐚' => 'lanƙwasasshen ƙumba',
     '🪸' => 'ciyawa',
     '🪼' => 'jelisih',
+    '🦀' => 'ƙaguwa',
+    '🦞' => 'ƙaguwar lobster',
+    '🦐' => 'jatanlande',
+    '🦑' => 'jatan lande na turawa',
+    '🦪' => 'oyesta',
     '🐌' => 'dodon koɗi',
     '🦋' => 'malam-buɗe-mana-littafi',
     '🐛' => 'ƙwaro',
@@ -2719,6 +2905,7 @@
     '🪹' => 'sheƙar da ba komai',
     '🪺' => 'sheƙa mai ƙwai',
     '🍄' => 'inuwar-kwaɗi',
+    '🪾' => 'bishiya maras ganye',
     '🍇' => 'inabi',
     '🍈' => 'malo',
     '🍉' => 'kankana',
@@ -2755,6 +2942,7 @@
     '🌰' => 'gyaɗar chestnut',
     '🫚' => 'saiwar citta',
     '🫛' => 'koren wake na fis',
+    '🫜' => 'kayan lambu masu saiwa',
     '🍞' => 'burodi',
     '🥐' => 'burodin croissant',
     '🥖' => 'burodin baguette',
@@ -2806,11 +2994,6 @@
     '🥟' => 'ƙaramar kwaɓaɓɓiyar fulawa',
     '🥠' => 'biskit na dukiya',
     '🥡' => 'akwatin abinci na fita waje',
-    '🦀' => 'ƙaguwa',
-    '🦞' => 'ƙaguwar lobster',
-    '🦐' => 'jatanlande',
-    '🦑' => 'jatan lande na turawa',
-    '🦪' => 'oyesta',
     '🍦' => 'ƙanƙara Mai taushi',
     '🍧' => 'rugurgujen ƙanƙara',
     '🍨' => 'ƙanƙara',
@@ -2861,6 +3044,7 @@
     '🧭' => 'kamfas',
     '🏔' => 'tsauni mai saman ƙanƙara',
     '⛰' => 'tsauni',
+    '🛘' => 'zamewar ƙasa',
     '🌋' => 'dutse mai aman wuta',
     '🗻' => 'tsaunin fuji',
     '🏕' => 'zaman ruga',
@@ -3221,16 +3405,18 @@
     '🎧' => 'mazirorin kunne',
     '📻' => 'rediyo',
     '🎷' => 'mabushi',
+    '🎺' => 'kakaki',
+    '🪊' => 'algaita',
     '🪗' => 'akodiyon',
     '🎸' => 'jita',
     '🎹' => 'kibod na kiɗa',
-    '🎺' => 'kakaki',
     '🎻' => 'goge',
     '🪕' => 'gurmin banjo',
     '🥁' => 'ganga',
     '🪘' => 'doguwar ganga',
     '🪇' => 'kacau-kacau',
     '🪈' => 'sarewa',
+    '🪉' => 'abin kiɗa na harp',
     '📱' => 'wayar hannu',
     '📲' => 'wayar hannu tare da kibiya',
     '☎' => 'tarho',
@@ -3284,8 +3470,9 @@
     '📑' => 'maɓallan ma’ajiyar rubutu',
     '🔖' => 'ma’ajiyar rubutu',
     '🏷' => 'alamar liƙawa',
-    '💰' => 'jakar kuɗi',
     '🪙' => 'tsabar kuɗi',
+    '💰' => 'jakar kuɗi',
+    '🪎' => 'akwatin dukiya',
     '💴' => 'takardar kuɗi na yen',
     '💵' => 'takardar kuɗi na dala',
     '💶' => 'takardar kuɗi na euro',
@@ -3368,6 +3555,7 @@
     '🧰' => 'akwatin kayan aiki',
     '🧲' => 'maganaɗisu',
     '🪜' => 'tsani',
+    '🪏' => 'shebur',
     '⚗' => 'tukunyar alembic',
     '🧪' => 'bututun gwaji',
     '🧫' => 'tasar petri',
@@ -3551,6 +3739,7 @@
     '✴' => 'tauraro mai tsini takwas',
     '❇' => 'ƙyalƙyali',
     '™' => 'tambarin kamfani',
+    '🫟' => 'fantsama',
     '🔠' => 'alamar shigarwar manyan baƙaƙe na latin',
     '🔡' => 'alamar shigarwa ƙananan baƙaƙe na latin',
     '🔢' => 'shigarwar lambobi',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-he.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-he.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-he.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-he.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'נשיקה: אישה, אישה, גוון עור כהה, גוון עור בינוני',
     '👩🏿‍❤‍💋‍👩🏾' => 'נשיקה: אישה, אישה, גוון עור כהה, גוון עור כהה בינוני',
     '👩🏿‍❤‍💋‍👩🏿' => 'נשיקה: אישה, אישה, גוון עור כהה',
+    '🧑🏻‍🫯‍🧑🏼' => 'מתאבקים: גוון עור בהיר, גוון עור בהיר בינוני',
+    '🧑🏻‍🫯‍🧑🏽' => 'מתאבקים: גוון עור בהיר, גוון עור בינוני',
+    '🧑🏻‍🫯‍🧑🏾' => 'מתאבקים: גוון עור בהיר, גוון עור כהה בינוני',
+    '🧑🏻‍🫯‍🧑🏿' => 'מתאבקים: גוון עור בהיר, גוון עור כהה',
+    '🧑🏼‍🫯‍🧑🏻' => 'מתאבקים: גוון עור בהיר בינוני, גוון עור בהיר',
+    '🧑🏼‍🫯‍🧑🏽' => 'מתאבקים: גוון עור בהיר בינוני, גוון עור בינוני',
+    '🧑🏼‍🫯‍🧑🏾' => 'מתאבקים: גוון עור בהיר בינוני, גוון עור כהה בינוני',
+    '🧑🏼‍🫯‍🧑🏿' => 'מתאבקים: גוון עור בהיר בינוני, גוון עור כהה',
+    '🧑🏽‍🫯‍🧑🏻' => 'מתאבקים: גוון עור בינוני, גוון עור בהיר',
+    '🧑🏽‍🫯‍🧑🏼' => 'מתאבקים: גוון עור בינוני, גוון עור בהיר בינוני',
+    '🧑🏽‍🫯‍🧑🏾' => 'מתאבקים: גוון עור בינוני, גוון עור כהה בינוני',
+    '🧑🏽‍🫯‍🧑🏿' => 'מתאבקים: גוון עור בינוני, גוון עור כהה',
+    '🧑🏾‍🫯‍🧑🏻' => 'מתאבקים: גוון עור כהה בינוני, גוון עור בהיר',
+    '🧑🏾‍🫯‍🧑🏼' => 'מתאבקים: גוון עור כהה בינוני, גוון עור בהיר בינוני',
+    '🧑🏾‍🫯‍🧑🏽' => 'מתאבקים: גוון עור כהה בינוני, גוון עור בינוני',
+    '🧑🏾‍🫯‍🧑🏿' => 'מתאבקים: גוון עור כהה בינוני, גוון עור כהה',
+    '🧑🏿‍🫯‍🧑🏻' => 'מתאבקים: גוון עור כהה, גוון עור בהיר',
+    '🧑🏿‍🫯‍🧑🏼' => 'מתאבקים: גוון עור כהה, גוון עור בהיר בינוני',
+    '🧑🏿‍🫯‍🧑🏽' => 'מתאבקים: גוון עור כהה, גוון עור בינוני',
+    '🧑🏿‍🫯‍🧑🏾' => 'מתאבקים: גוון עור כהה, גוון עור כהה בינוני',
     '🧑🏻‍❤‍🧑🏼' => 'זוג עם לב: אדם, אדם, גוון עור בהיר, גוון עור בהיר בינוני',
     '🧑🏻‍❤‍🧑🏽' => 'זוג עם לב: אדם, אדם, גוון עור בהיר, גוון עור בינוני',
     '🧑🏻‍❤‍🧑🏾' => 'זוג עם לב: אדם, אדם, גוון עור בהיר, גוון עור כהה בינוני',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'זוג עם לב: אדם, אדם, גוון עור כהה, גוון עור בהיר בינוני',
     '🧑🏿‍❤‍🧑🏽' => 'זוג עם לב: אדם, אדם, גוון עור כהה, גוון עור בינוני',
     '🧑🏿‍❤‍🧑🏾' => 'זוג עם לב: אדם, אדם, גוון עור כהה, גוון עור כהה בינוני',
+    '🧑🏻‍🐰‍🧑🏼' => 'נשים עם אוזני ארנב רוקדות: גוון עור בהיר, גוון עור בהיר בינוני',
+    '🧑🏻‍🐰‍🧑🏽' => 'נשים עם אוזני ארנב רוקדות: גוון עור בהיר, גוון עור בינוני',
+    '🧑🏻‍🐰‍🧑🏾' => 'נשים עם אוזני ארנב רוקדות: גוון עור בהיר, גוון עור כהה בינוני',
+    '🧑🏻‍🐰‍🧑🏿' => 'נשים עם אוזני ארנב רוקדות: גוון עור בהיר, גוון עור כהה',
+    '🧑🏼‍🐰‍🧑🏻' => 'נשים עם אוזני ארנב רוקדות: גוון עור בהיר בינוני, גוון עור בהיר',
+    '🧑🏼‍🐰‍🧑🏽' => 'נשים עם אוזני ארנב רוקדות: גוון עור בהיר בינוני, גוון עור בינוני',
+    '🧑🏼‍🐰‍🧑🏾' => 'נשים עם אוזני ארנב רוקדות: גוון עור בהיר בינוני, גוון עור כהה בינוני',
+    '🧑🏼‍🐰‍🧑🏿' => 'נשים עם אוזני ארנב רוקדות: גוון עור בהיר בינוני, גוון עור כהה',
+    '🧑🏽‍🐰‍🧑🏻' => 'נשים עם אוזני ארנב רוקדות: גוון עור בינוני, גוון עור בהיר',
+    '🧑🏽‍🐰‍🧑🏼' => 'נשים עם אוזני ארנב רוקדות: גוון עור בינוני, גוון עור בהיר בינוני',
+    '🧑🏽‍🐰‍🧑🏾' => 'נשים עם אוזני ארנב רוקדות: גוון עור בינוני, גוון עור כהה בינוני',
+    '🧑🏽‍🐰‍🧑🏿' => 'נשים עם אוזני ארנב רוקדות: גוון עור בינוני, גוון עור כהה',
+    '🧑🏾‍🐰‍🧑🏻' => 'נשים עם אוזני ארנב רוקדות: גוון עור כהה בינוני, גוון עור בהיר',
+    '🧑🏾‍🐰‍🧑🏼' => 'נשים עם אוזני ארנב רוקדות: גוון עור כהה בינוני, גוון עור בהיר בינוני',
+    '🧑🏾‍🐰‍🧑🏽' => 'נשים עם אוזני ארנב רוקדות: גוון עור כהה בינוני, גוון עור בינוני',
+    '🧑🏾‍🐰‍🧑🏿' => 'נשים עם אוזני ארנב רוקדות: גוון עור כהה בינוני, גוון עור כהה',
+    '🧑🏿‍🐰‍🧑🏻' => 'נשים עם אוזני ארנב רוקדות: גוון עור כהה, גוון עור בהיר',
+    '🧑🏿‍🐰‍🧑🏼' => 'נשים עם אוזני ארנב רוקדות: גוון עור כהה, גוון עור בהיר בינוני',
+    '🧑🏿‍🐰‍🧑🏽' => 'נשים עם אוזני ארנב רוקדות: גוון עור כהה, גוון עור בינוני',
+    '🧑🏿‍🐰‍🧑🏾' => 'נשים עם אוזני ארנב רוקדות: גוון עור כהה, גוון עור כהה בינוני',
+    '👨🏻‍🫯‍👨🏼' => 'גברים מתאבקים: גוון עור בהיר, גוון עור בהיר בינוני',
+    '👨🏻‍🫯‍👨🏽' => 'גברים מתאבקים: גוון עור בהיר, גוון עור בינוני',
+    '👨🏻‍🫯‍👨🏾' => 'גברים מתאבקים: גוון עור בהיר, גוון עור כהה בינוני',
+    '👨🏻‍🫯‍👨🏿' => 'גברים מתאבקים: גוון עור בהיר, גוון עור כהה',
+    '👨🏼‍🫯‍👨🏻' => 'גברים מתאבקים: גוון עור בהיר בינוני, גוון עור בהיר',
+    '👨🏼‍🫯‍👨🏽' => 'גברים מתאבקים: גוון עור בהיר בינוני, גוון עור בינוני',
+    '👨🏼‍🫯‍👨🏾' => 'גברים מתאבקים: גוון עור בהיר בינוני, גוון עור כהה בינוני',
+    '👨🏼‍🫯‍👨🏿' => 'גברים מתאבקים: גוון עור בהיר בינוני, גוון עור כהה',
+    '👨🏽‍🫯‍👨🏻' => 'גברים מתאבקים: גוון עור בינוני, גוון עור בהיר',
+    '👨🏽‍🫯‍👨🏼' => 'גברים מתאבקים: גוון עור בינוני, גוון עור בהיר בינוני',
+    '👨🏽‍🫯‍👨🏾' => 'גברים מתאבקים: גוון עור בינוני, גוון עור כהה בינוני',
+    '👨🏽‍🫯‍👨🏿' => 'גברים מתאבקים: גוון עור בינוני, גוון עור כהה',
+    '👨🏾‍🫯‍👨🏻' => 'גברים מתאבקים: גוון עור כהה בינוני, גוון עור בהיר',
+    '👨🏾‍🫯‍👨🏼' => 'גברים מתאבקים: גוון עור כהה בינוני, גוון עור בהיר בינוני',
+    '👨🏾‍🫯‍👨🏽' => 'גברים מתאבקים: גוון עור כהה בינוני, גוון עור בינוני',
+    '👨🏾‍🫯‍👨🏿' => 'גברים מתאבקים: גוון עור כהה בינוני, גוון עור כהה',
+    '👨🏿‍🫯‍👨🏻' => 'גברים מתאבקים: גוון עור כהה, גוון עור בהיר',
+    '👨🏿‍🫯‍👨🏼' => 'גברים מתאבקים: גוון עור כהה, גוון עור בהיר בינוני',
+    '👨🏿‍🫯‍👨🏽' => 'גברים מתאבקים: גוון עור כהה, גוון עור בינוני',
+    '👨🏿‍🫯‍👨🏾' => 'גברים מתאבקים: גוון עור כהה, גוון עור כהה בינוני',
     '👨🏻‍❤‍👨🏻' => 'זוג עם לב: איש, איש, גוון עור בהיר',
     '👨🏻‍❤‍👨🏼' => 'זוג עם לב: איש, איש, גוון עור בהיר, גוון עור בהיר בינוני',
     '👨🏻‍❤‍👨🏽' => 'זוג עם לב: איש, איש, גוון עור בהיר, גוון עור בינוני',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'זוג עם לב: איש, איש, גוון עור כהה, גוון עור בינוני',
     '👨🏿‍❤‍👨🏾' => 'זוג עם לב: איש, איש, גוון עור כהה, גוון עור כהה בינוני',
     '👨🏿‍❤‍👨🏿' => 'זוג עם לב: איש, איש, גוון עור כהה',
+    '👨🏻‍🐰‍👨🏼' => 'גברים עם אוזני ארנב רוקדים: גוון עור בהיר, גוון עור בהיר בינוני',
+    '👨🏻‍🐰‍👨🏽' => 'גברים עם אוזני ארנב רוקדים: גוון עור בהיר, גוון עור בינוני',
+    '👨🏻‍🐰‍👨🏾' => 'גברים עם אוזני ארנב רוקדים: גוון עור בהיר, גוון עור כהה בינוני',
+    '👨🏻‍🐰‍👨🏿' => 'גברים עם אוזני ארנב רוקדים: גוון עור בהיר, גוון עור כהה',
+    '👨🏼‍🐰‍👨🏻' => 'גברים עם אוזני ארנב רוקדים: גוון עור בהיר בינוני, גוון עור בהיר',
+    '👨🏼‍🐰‍👨🏽' => 'גברים עם אוזני ארנב רוקדים: גוון עור בהיר בינוני, גוון עור בינוני',
+    '👨🏼‍🐰‍👨🏾' => 'גברים עם אוזני ארנב רוקדים: גוון עור בהיר בינוני, גוון עור כהה בינוני',
+    '👨🏼‍🐰‍👨🏿' => 'גברים עם אוזני ארנב רוקדים: גוון עור בהיר בינוני, גוון עור כהה',
+    '👨🏽‍🐰‍👨🏻' => 'גברים עם אוזני ארנב רוקדים: גוון עור בינוני, גוון עור בהיר',
+    '👨🏽‍🐰‍👨🏼' => 'גברים עם אוזני ארנב רוקדים: גוון עור בינוני, גוון עור בהיר בינוני',
+    '👨🏽‍🐰‍👨🏾' => 'גברים עם אוזני ארנב רוקדים: גוון עור בינוני, גוון עור כהה בינוני',
+    '👨🏽‍🐰‍👨🏿' => 'גברים עם אוזני ארנב רוקדים: גוון עור בינוני, גוון עור כהה',
+    '👨🏾‍🐰‍👨🏻' => 'גברים עם אוזני ארנב רוקדים: גוון עור כהה בינוני, גוון עור בהיר',
+    '👨🏾‍🐰‍👨🏼' => 'גברים עם אוזני ארנב רוקדים: גוון עור כהה בינוני, גוון עור בהיר בינוני',
+    '👨🏾‍🐰‍👨🏽' => 'גברים עם אוזני ארנב רוקדים: גוון עור כהה בינוני, גוון עור בינוני',
+    '👨🏾‍🐰‍👨🏿' => 'גברים עם אוזני ארנב רוקדים: גוון עור כהה בינוני, גוון עור כהה',
+    '👨🏿‍🐰‍👨🏻' => 'גברים עם אוזני ארנב רוקדים: גוון עור כהה, גוון עור בהיר',
+    '👨🏿‍🐰‍👨🏼' => 'גברים עם אוזני ארנב רוקדים: גוון עור כהה, גוון עור בהיר בינוני',
+    '👨🏿‍🐰‍👨🏽' => 'גברים עם אוזני ארנב רוקדים: גוון עור כהה, גוון עור בינוני',
+    '👨🏿‍🐰‍👨🏾' => 'גברים עם אוזני ארנב רוקדים: גוון עור כהה, גוון עור כהה בינוני',
+    '👩🏻‍🫯‍👩🏼' => 'נשים מתאבקות: גוון עור בהיר, גוון עור בהיר בינוני',
+    '👩🏻‍🫯‍👩🏽' => 'נשים מתאבקות: גוון עור בהיר, גוון עור בינוני',
+    '👩🏻‍🫯‍👩🏾' => 'נשים מתאבקות: גוון עור בהיר, גוון עור כהה בינוני',
+    '👩🏻‍🫯‍👩🏿' => 'נשים מתאבקות: גוון עור בהיר, גוון עור כהה',
+    '👩🏼‍🫯‍👩🏻' => 'נשים מתאבקות: גוון עור בהיר בינוני, גוון עור בהיר',
+    '👩🏼‍🫯‍👩🏽' => 'נשים מתאבקות: גוון עור בהיר בינוני, גוון עור בינוני',
+    '👩🏼‍🫯‍👩🏾' => 'נשים מתאבקות: גוון עור בהיר בינוני, גוון עור כהה בינוני',
+    '👩🏼‍🫯‍👩🏿' => 'נשים מתאבקות: גוון עור בהיר בינוני, גוון עור כהה',
+    '👩🏽‍🫯‍👩🏻' => 'נשים מתאבקות: גוון עור בינוני, גוון עור בהיר',
+    '👩🏽‍🫯‍👩🏼' => 'נשים מתאבקות: גוון עור בינוני, גוון עור בהיר בינוני',
+    '👩🏽‍🫯‍👩🏾' => 'נשים מתאבקות: גוון עור בינוני, גוון עור כהה בינוני',
+    '👩🏽‍🫯‍👩🏿' => 'נשים מתאבקות: גוון עור בינוני, גוון עור כהה',
+    '👩🏾‍🫯‍👩🏻' => 'נשים מתאבקות: גוון עור כהה בינוני, גוון עור בהיר',
+    '👩🏾‍🫯‍👩🏼' => 'נשים מתאבקות: גוון עור כהה בינוני, גוון עור בהיר בינוני',
+    '👩🏾‍🫯‍👩🏽' => 'נשים מתאבקות: גוון עור כהה בינוני, גוון עור בינוני',
+    '👩🏾‍🫯‍👩🏿' => 'נשים מתאבקות: גוון עור כהה בינוני, גוון עור כהה',
+    '👩🏿‍🫯‍👩🏻' => 'נשים מתאבקות: גוון עור כהה, גוון עור בהיר',
+    '👩🏿‍🫯‍👩🏼' => 'נשים מתאבקות: גוון עור כהה, גוון עור בהיר בינוני',
+    '👩🏿‍🫯‍👩🏽' => 'נשים מתאבקות: גוון עור כהה, גוון עור בינוני',
+    '👩🏿‍🫯‍👩🏾' => 'נשים מתאבקות: גוון עור כהה, גוון עור כהה בינוני',
     '👩🏻‍❤‍👨🏻' => 'זוג עם לב: אישה, איש, גוון עור בהיר',
     '👩🏻‍❤‍👨🏼' => 'זוג עם לב: אישה, איש, גוון עור בהיר, גוון עור בהיר בינוני',
     '👩🏻‍❤‍👨🏽' => 'זוג עם לב: אישה, איש, גוון עור בהיר, גוון עור בינוני',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'זוג עם לב: אישה, אישה, גוון עור כהה, גוון עור בינוני',
     '👩🏿‍❤‍👩🏾' => 'זוג עם לב: אישה, אישה, גוון עור כהה, גוון עור כהה בינוני',
     '👩🏿‍❤‍👩🏿' => 'זוג עם לב: אישה, אישה, גוון עור כהה',
+    '👩🏻‍🐰‍👩🏼' => 'נשים עם אוזני ארנב: גוון עור בהיר, גוון עור בהיר בינוני',
+    '👩🏻‍🐰‍👩🏽' => 'נשים עם אוזני ארנב: גוון עור בהיר, גוון עור בינוני',
+    '👩🏻‍🐰‍👩🏾' => 'נשים עם אוזני ארנב: גוון עור בהיר, גוון עור כהה בינוני',
+    '👩🏻‍🐰‍👩🏿' => 'נשים עם אוזני ארנב: גוון עור בהיר, גוון עור כהה',
+    '👩🏼‍🐰‍👩🏻' => 'נשים עם אוזני ארנב: גוון עור בהיר בינוני, גוון עור בהיר',
+    '👩🏼‍🐰‍👩🏽' => 'נשים עם אוזני ארנב: גוון עור בהיר בינוני, גוון עור בינוני',
+    '👩🏼‍🐰‍👩🏾' => 'נשים עם אוזני ארנב: גוון עור בהיר בינוני, גוון עור כהה בינוני',
+    '👩🏼‍🐰‍👩🏿' => 'נשים עם אוזני ארנב: גוון עור בהיר בינוני, גוון עור כהה',
+    '👩🏽‍🐰‍👩🏻' => 'נשים עם אוזני ארנב: גוון עור בינוני, גוון עור בהיר',
+    '👩🏽‍🐰‍👩🏼' => 'נשים עם אוזני ארנב: גוון עור בינוני, גוון עור בהיר בינוני',
+    '👩🏽‍🐰‍👩🏾' => 'נשים עם אוזני ארנב: גוון עור בינוני, גוון עור כהה בינוני',
+    '👩🏽‍🐰‍👩🏿' => 'נשים עם אוזני ארנב: גוון עור בינוני, גוון עור כהה',
+    '👩🏾‍🐰‍👩🏻' => 'נשים עם אוזני ארנב: גוון עור כהה בינוני, גוון עור בהיר',
+    '👩🏾‍🐰‍👩🏼' => 'נשים עם אוזני ארנב: גוון עור כהה בינוני, גוון עור בהיר בינוני',
+    '👩🏾‍🐰‍👩🏽' => 'נשים עם אוזני ארנב: גוון עור כהה בינוני, גוון עור בינוני',
+    '👩🏾‍🐰‍👩🏿' => 'נשים עם אוזני ארנב: גוון עור כהה בינוני, גוון עור כהה',
+    '👩🏿‍🐰‍👩🏻' => 'נשים עם אוזני ארנב: גוון עור כהה, גוון עור בהיר',
+    '👩🏿‍🐰‍👩🏼' => 'נשים עם אוזני ארנב: גוון עור כהה, גוון עור בהיר בינוני',
+    '👩🏿‍🐰‍👩🏽' => 'נשים עם אוזני ארנב: גוון עור כהה, גוון עור בינוני',
+    '👩🏿‍🐰‍👩🏾' => 'נשים עם אוזני ארנב: גוון עור כהה, גוון עור כהה בינוני',
     '🧑🏻‍🤝‍🧑🏻' => 'אנשים מחזיקים ידיים: גוון עור בהיר',
     '🧑🏻‍🤝‍🧑🏼' => 'אנשים מחזיקים ידיים: גוון עור בהיר, גוון עור בהיר בינוני',
     '🧑🏻‍🤝‍🧑🏽' => 'אנשים מחזיקים ידיים: גוון עור בהיר, גוון עור בינוני',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'דגל: סקוטלנד',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'דגל: וויילס',
     '🧑‍🧑‍🧒‍🧒' => 'משפחה: הורה, הורה, ילד, ילד',
-    '🚶🏻‍♀‍➡' => 'אישה הולכת פונה ימינה',
-    '🚶🏼‍♀‍➡' => 'אישה הולכת פונה ימינה',
-    '🚶🏽‍♀‍➡' => 'אישה הולכת פונה ימינה',
-    '🚶🏾‍♀‍➡' => 'אישה הולכת פונה ימינה',
-    '🚶🏿‍♀‍➡' => 'אישה הולכת פונה ימינה',
-    '🚶🏻‍♂‍➡' => 'גבר הולך פונה ימינה',
-    '🚶🏼‍♂‍➡' => 'גבר הולך פונה ימינה',
-    '🚶🏽‍♂‍➡' => 'גבר הולך פונה ימינה',
-    '🚶🏾‍♂‍➡' => 'גבר הולך פונה ימינה',
-    '🚶🏿‍♂‍➡' => 'גבר הולך פונה ימינה',
-    '🧎🏻‍♀‍➡' => 'אישה כורעת ברך פונה ימינה',
-    '🧎🏼‍♀‍➡' => 'אישה כורעת ברך פונה ימינה',
-    '🧎🏽‍♀‍➡' => 'אישה כורעת ברך פונה ימינה',
-    '🧎🏾‍♀‍➡' => 'אישה כורעת ברך פונה ימינה',
-    '🧎🏿‍♀‍➡' => 'אישה כורעת ברך פונה ימינה',
-    '🧎🏻‍♂‍➡' => 'איש כורע ברך פונה ימינה',
-    '🧎🏼‍♂‍➡' => 'איש כורע ברך פונה ימינה',
-    '🧎🏽‍♂‍➡' => 'איש כורע ברך פונה ימינה',
-    '🧎🏾‍♂‍➡' => 'איש כורע ברך פונה ימינה',
-    '🧎🏿‍♂‍➡' => 'איש כורע ברך פונה ימינה',
-    '🧑🏻‍🦯‍➡' => 'אדם עם מקל נחייה פונה ימינה',
-    '🧑🏼‍🦯‍➡' => 'אדם עם מקל נחייה פונה ימינה',
-    '🧑🏽‍🦯‍➡' => 'אדם עם מקל נחייה פונה ימינה',
-    '🧑🏾‍🦯‍➡' => 'אדם עם מקל נחייה פונה ימינה',
-    '🧑🏿‍🦯‍➡' => 'אדם עם מקל נחייה פונה ימינה',
-    '👨🏻‍🦯‍➡' => 'איש עם מקל נחייה פונה ימינה',
-    '👨🏼‍🦯‍➡' => 'איש עם מקל נחייה פונה ימינה',
-    '👨🏽‍🦯‍➡' => 'איש עם מקל נחייה פונה ימינה',
-    '👨🏾‍🦯‍➡' => 'איש עם מקל נחייה פונה ימינה',
-    '👨🏿‍🦯‍➡' => 'איש עם מקל נחייה פונה ימינה',
-    '👩🏻‍🦯‍➡' => 'אישה עם מקל נחייה פונה ימינה',
-    '👩🏼‍🦯‍➡' => 'אישה עם מקל נחייה פונה ימינה',
-    '👩🏽‍🦯‍➡' => 'אישה עם מקל נחייה פונה ימינה',
-    '👩🏾‍🦯‍➡' => 'אישה עם מקל נחייה פונה ימינה',
-    '👩🏿‍🦯‍➡' => 'אישה עם מקל נחייה פונה ימינה',
-    '🧑🏻‍🦼‍➡' => 'אדם בכסא גלגלים ממונע פונה ימינה',
-    '🧑🏼‍🦼‍➡' => 'אדם בכסא גלגלים ממונע פונה ימינה',
-    '🧑🏽‍🦼‍➡' => 'אדם בכסא גלגלים ממונע פונה ימינה',
-    '🧑🏾‍🦼‍➡' => 'אדם בכסא גלגלים ממונע פונה ימינה',
-    '🧑🏿‍🦼‍➡' => 'אדם בכסא גלגלים ממונע פונה ימינה',
-    '👨🏻‍🦼‍➡' => 'איש בכסא גלגלים ממונע פונה ימינה',
-    '👨🏼‍🦼‍➡' => 'איש בכסא גלגלים ממונע פונה ימינה',
-    '👨🏽‍🦼‍➡' => 'איש בכסא גלגלים ממונע פונה ימינה',
-    '👨🏾‍🦼‍➡' => 'איש בכסא גלגלים ממונע פונה ימינה',
-    '👨🏿‍🦼‍➡' => 'איש בכסא גלגלים ממונע פונה ימינה',
-    '👩🏻‍🦼‍➡' => 'אישה בכסא גלגלים ממונע פונה ימינה',
-    '👩🏼‍🦼‍➡' => 'אישה בכסא גלגלים ממונע פונה ימינה',
-    '👩🏽‍🦼‍➡' => 'אישה בכסא גלגלים ממונע פונה ימינה',
-    '👩🏾‍🦼‍➡' => 'אישה בכסא גלגלים ממונע פונה ימינה',
-    '👩🏿‍🦼‍➡' => 'אישה בכסא גלגלים ממונע פונה ימינה',
-    '🧑🏻‍🦽‍➡' => 'אדם בכסא גלגלים ידני פונה ימינה',
-    '🧑🏼‍🦽‍➡' => 'אדם בכסא גלגלים ידני פונה ימינה',
-    '🧑🏽‍🦽‍➡' => 'אדם בכסא גלגלים ידני פונה ימינה',
-    '🧑🏾‍🦽‍➡' => 'אדם בכסא גלגלים ידני פונה ימינה',
-    '🧑🏿‍🦽‍➡' => 'אדם בכסא גלגלים ידני פונה ימינה',
-    '👨🏻‍🦽‍➡' => 'איש בכסא גלגלים ידני פונה ימינה',
-    '👨🏼‍🦽‍➡' => 'איש בכסא גלגלים ידני פונה ימינה',
-    '👨🏽‍🦽‍➡' => 'איש בכסא גלגלים ידני פונה ימינה',
-    '👨🏾‍🦽‍➡' => 'איש בכסא גלגלים ידני פונה ימינה',
-    '👨🏿‍🦽‍➡' => 'איש בכסא גלגלים ידני פונה ימינה',
-    '👩🏻‍🦽‍➡' => 'אישה בכסא גלגלים ידני פונה ימינה',
-    '👩🏼‍🦽‍➡' => 'אישה בכסא גלגלים ידני פונה ימינה',
-    '👩🏽‍🦽‍➡' => 'אישה בכסא גלגלים ידני פונה ימינה',
-    '👩🏾‍🦽‍➡' => 'אישה בכסא גלגלים ידני פונה ימינה',
-    '👩🏿‍🦽‍➡' => 'אישה בכסא גלגלים ידני פונה ימינה',
-    '🏃🏻‍♀‍➡' => 'אישה רצה פונה ימינה',
-    '🏃🏼‍♀‍➡' => 'אישה רצה פונה ימינה',
-    '🏃🏽‍♀‍➡' => 'אישה רצה פונה ימינה',
-    '🏃🏾‍♀‍➡' => 'אישה רצה פונה ימינה',
-    '🏃🏿‍♀‍➡' => 'אישה רצה פונה ימינה',
-    '🏃🏻‍♂‍➡' => 'גבר רץ פונה ימינה',
-    '🏃🏼‍♂‍➡' => 'גבר רץ פונה ימינה',
-    '🏃🏽‍♂‍➡' => 'גבר רץ פונה ימינה',
-    '🏃🏾‍♂‍➡' => 'גבר רץ פונה ימינה',
-    '🏃🏿‍♂‍➡' => 'גבר רץ פונה ימינה',
+    '🚶🏻‍♀‍➡' => 'אישה הולכת: גוון עור בהיר, פונה ימינה',
+    '🚶🏼‍♀‍➡' => 'אישה הולכת: גוון עור בהיר בינוני, פונה ימינה',
+    '🚶🏽‍♀‍➡' => 'אישה הולכת: גוון עור בינוני, פונה ימינה',
+    '🚶🏾‍♀‍➡' => 'אישה הולכת: גוון עור כהה בינוני, פונה ימינה',
+    '🚶🏿‍♀‍➡' => 'אישה הולכת: גוון עור כהה, פונה ימינה',
+    '🚶🏻‍♂‍➡' => 'גבר הולך: גוון עור בהיר, פונה ימינה',
+    '🚶🏼‍♂‍➡' => 'גבר הולך: גוון עור בהיר בינוני, פונה ימינה',
+    '🚶🏽‍♂‍➡' => 'גבר הולך: גוון עור בינוני, פונה ימינה',
+    '🚶🏾‍♂‍➡' => 'גבר הולך: גוון עור כהה בינוני, פונה ימינה',
+    '🚶🏿‍♂‍➡' => 'גבר הולך: גוון עור כהה, פונה ימינה',
+    '🧎🏻‍♀‍➡' => 'אישה כורעת ברך: גוון עור בהיר, פונה ימינה',
+    '🧎🏼‍♀‍➡' => 'אישה כורעת ברך: גוון עור בהיר בינוני, פונה ימינה',
+    '🧎🏽‍♀‍➡' => 'אישה כורעת ברך: גוון עור בינוני, פונה ימינה',
+    '🧎🏾‍♀‍➡' => 'אישה כורעת ברך: גוון עור כהה בינוני, פונה ימינה',
+    '🧎🏿‍♀‍➡' => 'אישה כורעת ברך: גוון עור כהה, פונה ימינה',
+    '🧎🏻‍♂‍➡' => 'איש כורע ברך: גוון עור בהיר, פונה ימינה',
+    '🧎🏼‍♂‍➡' => 'איש כורע ברך: גוון עור בהיר בינוני, פונה ימינה',
+    '🧎🏽‍♂‍➡' => 'איש כורע ברך: גוון עור בינוני, פונה ימינה',
+    '🧎🏾‍♂‍➡' => 'איש כורע ברך: גוון עור כהה בינוני, פונה ימינה',
+    '🧎🏿‍♂‍➡' => 'איש כורע ברך: גוון עור כהה, פונה ימינה',
+    '🧑🏻‍🦯‍➡' => 'אדם עם מקל נחייה: גוון עור בהיר, פונה ימינה',
+    '🧑🏼‍🦯‍➡' => 'אדם עם מקל נחייה: גוון עור בהיר בינוני, פונה ימינה',
+    '🧑🏽‍🦯‍➡' => 'אדם עם מקל נחייה: גוון עור בינוני, פונה ימינה',
+    '🧑🏾‍🦯‍➡' => 'אדם עם מקל נחייה: גוון עור כהה בינוני, פונה ימינה',
+    '🧑🏿‍🦯‍➡' => 'אדם עם מקל נחייה: גוון עור כהה, פונה ימינה',
+    '👨🏻‍🦯‍➡' => 'איש עם מקל נחייה: גוון עור בהיר, פונה ימינה',
+    '👨🏼‍🦯‍➡' => 'איש עם מקל נחייה: גוון עור בהיר בינוני, פונה ימינה',
+    '👨🏽‍🦯‍➡' => 'איש עם מקל נחייה: גוון עור בינוני, פונה ימינה',
+    '👨🏾‍🦯‍➡' => 'איש עם מקל נחייה: גוון עור כהה בינוני, פונה ימינה',
+    '👨🏿‍🦯‍➡' => 'איש עם מקל נחייה: גוון עור כהה, פונה ימינה',
+    '👩🏻‍🦯‍➡' => 'אישה עם מקל נחייה: גוון עור בהיר, פונה ימינה',
+    '👩🏼‍🦯‍➡' => 'אישה עם מקל נחייה: גוון עור בהיר בינוני, פונה ימינה',
+    '👩🏽‍🦯‍➡' => 'אישה עם מקל נחייה: גוון עור בינוני, פונה ימינה',
+    '👩🏾‍🦯‍➡' => 'אישה עם מקל נחייה: גוון עור כהה בינוני, פונה ימינה',
+    '👩🏿‍🦯‍➡' => 'אישה עם מקל נחייה: גוון עור כהה, פונה ימינה',
+    '🧑🏻‍🦼‍➡' => 'אדם בכסא גלגלים ממונע: גוון עור בהיר, פונה ימינה',
+    '🧑🏼‍🦼‍➡' => 'אדם בכסא גלגלים ממונע: גוון עור בהיר בינוני, פונה ימינה',
+    '🧑🏽‍🦼‍➡' => 'אדם בכסא גלגלים ממונע: גוון עור בינוני, פונה ימינה',
+    '🧑🏾‍🦼‍➡' => 'אדם בכסא גלגלים ממונע: גוון עור כהה בינוני, פונה ימינה',
+    '🧑🏿‍🦼‍➡' => 'אדם בכסא גלגלים ממונע: גוון עור כהה, פונה ימינה',
+    '👨🏻‍🦼‍➡' => 'איש בכסא גלגלים ממונע: גוון עור בהיר, פונה ימינה',
+    '👨🏼‍🦼‍➡' => 'איש בכסא גלגלים ממונע: גוון עור בהיר בינוני, פונה ימינה',
+    '👨🏽‍🦼‍➡' => 'איש בכסא גלגלים ממונע: גוון עור בינוני, פונה ימינה',
+    '👨🏾‍🦼‍➡' => 'איש בכסא גלגלים ממונע: גוון עור כהה בינוני, פונה ימינה',
+    '👨🏿‍🦼‍➡' => 'איש בכסא גלגלים ממונע: גוון עור כהה, פונה ימינה',
+    '👩🏻‍🦼‍➡' => 'אישה בכסא גלגלים ממונע: גוון עור בהיר, פונה ימינה',
+    '👩🏼‍🦼‍➡' => 'אישה בכסא גלגלים ממונע: גוון עור בהיר בינוני, פונה ימינה',
+    '👩🏽‍🦼‍➡' => 'אישה בכסא גלגלים ממונע: גוון עור בינוני, פונה ימינה',
+    '👩🏾‍🦼‍➡' => 'אישה בכסא גלגלים ממונע: גוון עור כהה בינוני, פונה ימינה',
+    '👩🏿‍🦼‍➡' => 'אישה בכסא גלגלים ממונע: גוון עור כהה, פונה ימינה',
+    '🧑🏻‍🦽‍➡' => 'אדם בכסא גלגלים ידני: גוון עור בהיר, פונה ימינה',
+    '🧑🏼‍🦽‍➡' => 'אדם בכסא גלגלים ידני: גוון עור בהיר בינוני, פונה ימינה',
+    '🧑🏽‍🦽‍➡' => 'אדם בכסא גלגלים ידני: גוון עור בינוני, פונה ימינה',
+    '🧑🏾‍🦽‍➡' => 'אדם בכסא גלגלים ידני: גוון עור כהה בינוני, פונה ימינה',
+    '🧑🏿‍🦽‍➡' => 'אדם בכסא גלגלים ידני: גוון עור כהה, פונה ימינה',
+    '👨🏻‍🦽‍➡' => 'איש בכסא גלגלים ידני: גוון עור בהיר, פונה ימינה',
+    '👨🏼‍🦽‍➡' => 'איש בכסא גלגלים ידני: גוון עור בהיר בינוני, פונה ימינה',
+    '👨🏽‍🦽‍➡' => 'איש בכסא גלגלים ידני: גוון עור בינוני, פונה ימינה',
+    '👨🏾‍🦽‍➡' => 'איש בכסא גלגלים ידני: גוון עור כהה בינוני, פונה ימינה',
+    '👨🏿‍🦽‍➡' => 'איש בכסא גלגלים ידני: גוון עור כהה, פונה ימינה',
+    '👩🏻‍🦽‍➡' => 'אישה בכסא גלגלים ידני: גוון עור בהיר, פונה ימינה',
+    '👩🏼‍🦽‍➡' => 'אישה בכסא גלגלים ידני: גוון עור בהיר בינוני, פונה ימינה',
+    '👩🏽‍🦽‍➡' => 'אישה בכסא גלגלים ידני: גוון עור בינוני, פונה ימינה',
+    '👩🏾‍🦽‍➡' => 'אישה בכסא גלגלים ידני: גוון עור כהה בינוני, פונה ימינה',
+    '👩🏿‍🦽‍➡' => 'אישה בכסא גלגלים ידני: גוון עור כהה, פונה ימינה',
+    '🏃🏻‍♀‍➡' => 'אישה רצה: גוון עור בהיר, פונה ימינה',
+    '🏃🏼‍♀‍➡' => 'אישה רצה: גוון עור בהיר בינוני, פונה ימינה',
+    '🏃🏽‍♀‍➡' => 'אישה רצה: גוון עור בינוני, פונה ימינה',
+    '🏃🏾‍♀‍➡' => 'אישה רצה: גוון עור כהה בינוני, פונה ימינה',
+    '🏃🏿‍♀‍➡' => 'אישה רצה: גוון עור כהה, פונה ימינה',
+    '🏃🏻‍♂‍➡' => 'גבר רץ: גוון עור בהיר, פונה ימינה',
+    '🏃🏼‍♂‍➡' => 'גבר רץ: גוון עור בהיר בינוני, פונה ימינה',
+    '🏃🏽‍♂‍➡' => 'גבר רץ: גוון עור בינוני, פונה ימינה',
+    '🏃🏾‍♂‍➡' => 'גבר רץ: גוון עור כהה בינוני, פונה ימינה',
+    '🏃🏿‍♂‍➡' => 'גבר רץ: גוון עור כהה, פונה ימינה',
     '🫱🏻‍🫲🏼' => 'לחיצת יד: גוון עור בהיר, גוון עור בהיר בינוני',
     '🫱🏻‍🫲🏽' => 'לחיצת יד: גוון עור בהיר, גוון עור בינוני',
     '🫱🏻‍🫲🏾' => 'לחיצת יד: גוון עור בהיר, גוון עור כהה בינוני',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'לחיצת יד: גוון עור כהה, גוון עור בהיר בינוני',
     '🫱🏿‍🫲🏽' => 'לחיצת יד: גוון עור כהה, גוון עור בינוני',
     '🫱🏿‍🫲🏾' => 'לחיצת יד: גוון עור כהה, גוון עור כהה בינוני',
-    '🚶‍♀‍➡' => 'אישה הולכת פונה ימינה',
-    '🚶‍♂‍➡' => 'גבר הולך פונה ימינה',
-    '🧎‍♀‍➡' => 'אישה כורעת ברך פונה ימינה',
-    '🧎‍♂‍➡' => 'איש כורע ברך פונה ימינה',
-    '🧑‍🦯‍➡' => 'אדם עם מקל נחייה פונה ימינה',
-    '👨‍🦯‍➡' => 'איש עם מקל נחייה פונה ימינה',
-    '👩‍🦯‍➡' => 'אישה עם מקל נחייה פונה ימינה',
-    '🧑‍🦼‍➡' => 'אדם בכסא גלגלים ממונע פונה ימינה',
-    '👨‍🦼‍➡' => 'איש בכסא גלגלים ממונע פונה ימינה',
-    '👩‍🦼‍➡' => 'אישה בכסא גלגלים ממונע פונה ימינה',
-    '🧑‍🦽‍➡' => 'אדם בכסא גלגלים ידני פונה ימינה',
-    '👨‍🦽‍➡' => 'איש בכסא גלגלים ידני פונה ימינה',
-    '👩‍🦽‍➡' => 'אישה בכסא גלגלים ידני פונה ימינה',
-    '🏃‍♀‍➡' => 'אישה רצה פונה ימינה',
-    '🏃‍♂‍➡' => 'גבר רץ פונה ימינה',
+    '🚶‍♀‍➡' => 'אישה הולכת: פונה ימינה',
+    '🚶‍♂‍➡' => 'גבר הולך: פונה ימינה',
+    '🧎‍♀‍➡' => 'אישה כורעת ברך: פונה ימינה',
+    '🧎‍♂‍➡' => 'איש כורע ברך: פונה ימינה',
+    '🧑‍🦯‍➡' => 'אדם עם מקל נחייה: פונה ימינה',
+    '👨‍🦯‍➡' => 'איש עם מקל נחייה: פונה ימינה',
+    '👩‍🦯‍➡' => 'אישה עם מקל נחייה: פונה ימינה',
+    '🧑‍🦼‍➡' => 'אדם בכסא גלגלים ממונע: פונה ימינה',
+    '👨‍🦼‍➡' => 'איש בכסא גלגלים ממונע: פונה ימינה',
+    '👩‍🦼‍➡' => 'אישה בכסא גלגלים ממונע: פונה ימינה',
+    '🧑‍🦽‍➡' => 'אדם בכסא גלגלים ידני: פונה ימינה',
+    '👨‍🦽‍➡' => 'איש בכסא גלגלים ידני: פונה ימינה',
+    '👩‍🦽‍➡' => 'אישה בכסא גלגלים ידני: פונה ימינה',
+    '🏃‍♀‍➡' => 'אישה רצה: פונה ימינה',
+    '🏃‍♂‍➡' => 'גבר רץ: פונה ימינה',
     '👩‍❤‍👨' => 'זוג עם לב: אישה, איש',
     '👨‍❤‍👨' => 'זוג עם לב: איש, איש',
     '👩‍❤‍👩' => 'זוג עם לב: אישה, אישה',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'אדם: גוון עור בינוני, קירח',
     '🧑🏾‍🦲' => 'אדם: גוון עור כהה בינוני, קירח',
     '🧑🏿‍🦲' => 'אדם: גוון עור כהה, קירח',
+    '🧑🏻‍🩰' => 'רקדן בלט: גוון עור בהיר',
+    '🧑🏼‍🩰' => 'רקדן בלט: גוון עור בהיר בינוני',
+    '🧑🏽‍🩰' => 'רקדן בלט: גוון עור בינוני',
+    '🧑🏾‍🩰' => 'רקדן בלט: גוון עור כהה בינוני',
+    '🧑🏿‍🩰' => 'רקדן בלט: גוון עור כהה',
     '🧔🏻‍♂' => 'גבר עם זקן: גוון עור בהיר',
     '🧔🏼‍♂' => 'גבר עם זקן: גוון עור בהיר בינוני',
     '🧔🏽‍♂' => 'גבר עם זקן: גוון עור בינוני',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'אישה הולכת: גוון עור בינוני',
     '🚶🏾‍♀' => 'אישה הולכת: גוון עור כהה בינוני',
     '🚶🏿‍♀' => 'אישה הולכת: גוון עור כהה',
-    '🚶🏻‍➡' => 'איש הולך פונה ימינה',
-    '🚶🏼‍➡' => 'איש הולך פונה ימינה',
-    '🚶🏽‍➡' => 'איש הולך פונה ימינה',
-    '🚶🏾‍➡' => 'איש הולך פונה ימינה',
-    '🚶🏿‍➡' => 'איש הולך פונה ימינה',
+    '🚶🏻‍➡' => 'איש הולך: גוון עור בהיר, פונה ימינה',
+    '🚶🏼‍➡' => 'איש הולך: גוון עור בהיר בינוני, פונה ימינה',
+    '🚶🏽‍➡' => 'איש הולך: גוון עור בינוני, פונה ימינה',
+    '🚶🏾‍➡' => 'איש הולך: גוון עור כהה בינוני, פונה ימינה',
+    '🚶🏿‍➡' => 'איש הולך: גוון עור כהה, פונה ימינה',
     '🧍🏻‍♂' => 'איש עומד: גוון עור בהיר',
     '🧍🏼‍♂' => 'איש עומד: גוון עור בהיר בינוני',
     '🧍🏽‍♂' => 'איש עומד: גוון עור בינוני',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'אישה כורעת ברך: גוון עור בינוני',
     '🧎🏾‍♀' => 'אישה כורעת ברך: גוון עור כהה בינוני',
     '🧎🏿‍♀' => 'אישה כורעת ברך: גוון עור כהה',
-    '🧎🏻‍➡' => 'אדם כורע ברך פונה ימינה',
-    '🧎🏼‍➡' => 'אדם כורע ברך פונה ימינה',
-    '🧎🏽‍➡' => 'אדם כורע ברך פונה ימינה',
-    '🧎🏾‍➡' => 'אדם כורע ברך פונה ימינה',
-    '🧎🏿‍➡' => 'אדם כורע ברך פונה ימינה',
+    '🧎🏻‍➡' => 'אדם כורע ברך: גוון עור בהיר, פונה ימינה',
+    '🧎🏼‍➡' => 'אדם כורע ברך: גוון עור בהיר בינוני, פונה ימינה',
+    '🧎🏽‍➡' => 'אדם כורע ברך: גוון עור בינוני, פונה ימינה',
+    '🧎🏾‍➡' => 'אדם כורע ברך: גוון עור כהה בינוני, פונה ימינה',
+    '🧎🏿‍➡' => 'אדם כורע ברך: גוון עור כהה, פונה ימינה',
     '🧑🏻‍🦯' => 'אדם עם מקל נחייה: גוון עור בהיר',
     '🧑🏼‍🦯' => 'אדם עם מקל נחייה: גוון עור בהיר בינוני',
     '🧑🏽‍🦯' => 'אדם עם מקל נחייה: גוון עור בינוני',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'אישה רצה: גוון עור בינוני',
     '🏃🏾‍♀' => 'אישה רצה: גוון עור כהה בינוני',
     '🏃🏿‍♀' => 'אישה רצה: גוון עור כהה',
-    '🏃🏻‍➡' => 'רץ פונה ימינה',
-    '🏃🏼‍➡' => 'רץ פונה ימינה',
-    '🏃🏽‍➡' => 'רץ פונה ימינה',
-    '🏃🏾‍➡' => 'רץ פונה ימינה',
-    '🏃🏿‍➡' => 'רץ פונה ימינה',
+    '🏃🏻‍➡' => 'רץ: גוון עור בהיר, פונה ימינה',
+    '🏃🏼‍➡' => 'רץ: גוון עור בהיר בינוני, פונה ימינה',
+    '🏃🏽‍➡' => 'רץ: גוון עור בינוני, פונה ימינה',
+    '🏃🏾‍➡' => 'רץ: גוון עור כהה בינוני, פונה ימינה',
+    '🏃🏿‍➡' => 'רץ: גוון עור כהה, פונה ימינה',
+    '👯🏻‍♀' => 'נשים עם אוזני ארנב: גוון עור בהיר',
+    '👯🏼‍♀' => 'נשים עם אוזני ארנב: גוון עור בהיר בינוני',
+    '👯🏽‍♀' => 'נשים עם אוזני ארנב: גוון עור בינוני',
+    '👯🏾‍♀' => 'נשים עם אוזני ארנב: גוון עור כהה בינוני',
+    '👯🏿‍♀' => 'נשים עם אוזני ארנב: גוון עור כהה',
+    '👯🏻‍♂' => 'גברים עם אוזני ארנב רוקדים: גוון עור בהיר',
+    '👯🏼‍♂' => 'גברים עם אוזני ארנב רוקדים: גוון עור בהיר בינוני',
+    '👯🏽‍♂' => 'גברים עם אוזני ארנב רוקדים: גוון עור בינוני',
+    '👯🏾‍♂' => 'גברים עם אוזני ארנב רוקדים: גוון עור כהה בינוני',
+    '👯🏿‍♂' => 'גברים עם אוזני ארנב רוקדים: גוון עור כהה',
     '🧖🏻‍♂' => 'גבר בסאונה: גוון עור בהיר',
     '🧖🏼‍♂' => 'גבר בסאונה: גוון עור בהיר בינוני',
     '🧖🏽‍♂' => 'גבר בסאונה: גוון עור בינוני',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'אישה מבצעת גלגלון: גוון עור בינוני',
     '🤸🏾‍♀' => 'אישה מבצעת גלגלון: גוון עור כהה בינוני',
     '🤸🏿‍♀' => 'אישה מבצעת גלגלון: גוון עור כהה',
+    '🤼🏻‍♀' => 'נשים מתאבקות: גוון עור בהיר',
+    '🤼🏼‍♀' => 'נשים מתאבקות: גוון עור בהיר בינוני',
+    '🤼🏽‍♀' => 'נשים מתאבקות: גוון עור בינוני',
+    '🤼🏾‍♀' => 'נשים מתאבקות: גוון עור כהה בינוני',
+    '🤼🏿‍♀' => 'נשים מתאבקות: גוון עור כהה',
+    '🤼🏻‍♂' => 'גברים מתאבקים: גוון עור בהיר',
+    '🤼🏼‍♂' => 'גברים מתאבקים: גוון עור בהיר בינוני',
+    '🤼🏽‍♂' => 'גברים מתאבקים: גוון עור בינוני',
+    '🤼🏾‍♂' => 'גברים מתאבקים: גוון עור כהה בינוני',
+    '🤼🏿‍♂' => 'גברים מתאבקים: גוון עור כהה',
     '🤽🏻‍♂' => 'גבר משחק כדור-מים: גוון עור בהיר',
     '🤽🏼‍♂' => 'גבר משחק כדור-מים: גוון עור בהיר בינוני',
     '🤽🏽‍♂' => 'גבר משחק כדור-מים: גוון עור בינוני',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'אישה: שיער מתולתל',
     '👩‍🦳' => 'אישה: שיער לבן',
     '👩‍🦲' => 'אישה: קירח',
-    '🚶‍➡' => 'איש הולך פונה ימינה',
-    '🧎‍➡' => 'אדם כורע ברך פונה ימינה',
-    '🏃‍➡' => 'רץ פונה ימינה',
+    '🚶‍➡' => 'איש הולך: פונה ימינה',
+    '🧎‍➡' => 'אדם כורע ברך: פונה ימינה',
+    '🏃‍➡' => 'רץ: פונה ימינה',
     '👨‍👦' => 'משפחה: איש, בן',
     '👨‍👧' => 'משפחה: איש, בת',
     '👩‍👦' => 'משפחה: אישה, בן',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'אישה בכסא גלגלים ידני',
     '🏃‍♂' => 'גבר רץ',
     '🏃‍♀' => 'אישה רצה',
+    '🧑‍🩰' => 'רקדן בלט',
     '👯‍♂' => 'גברים עם אוזני ארנב רוקדים',
     '👯‍♀' => 'נשים עם אוזני ארנב',
     '🧖‍♂' => 'גבר בסאונה',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'אדם בחליפת עסקים מרחף: גוון עור בינוני',
     '🕴🏾' => 'אדם בחליפת עסקים מרחף: גוון עור כהה בינוני',
     '🕴🏿' => 'אדם בחליפת עסקים מרחף: גוון עור כהה',
+    '👯🏻' => 'נשים עם אוזני ארנב רוקדות: גוון עור בהיר',
+    '👯🏼' => 'נשים עם אוזני ארנב רוקדות: גוון עור בהיר בינוני',
+    '👯🏽' => 'נשים עם אוזני ארנב רוקדות: גוון עור בינוני',
+    '👯🏾' => 'נשים עם אוזני ארנב רוקדות: גוון עור כהה בינוני',
+    '👯🏿' => 'נשים עם אוזני ארנב רוקדות: גוון עור כהה',
     '🧖🏻' => 'מישהי בסאונה: גוון עור בהיר',
     '🧖🏼' => 'מישהי בסאונה: גוון עור בהיר בינוני',
     '🧖🏽' => 'מישהי בסאונה: גוון עור בינוני',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'גלגלון: גוון עור בינוני',
     '🤸🏾' => 'גלגלון: גוון עור כהה בינוני',
     '🤸🏿' => 'גלגלון: גוון עור כהה',
+    '🤼🏻' => 'מתאבקים: גוון עור בהיר',
+    '🤼🏼' => 'מתאבקים: גוון עור בהיר בינוני',
+    '🤼🏽' => 'מתאבקים: גוון עור בינוני',
+    '🤼🏾' => 'מתאבקים: גוון עור כהה בינוני',
+    '🤼🏿' => 'מתאבקים: גוון עור כהה',
     '🤽🏻' => 'כדורמים: גוון עור בהיר',
     '🤽🏼' => 'כדורמים: גוון עור בהיר בינוני',
     '🤽🏽' => 'כדורמים: גוון עור בינוני',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'דגל: סין',
     '🇨🇴' => 'דגל: קולומביה',
     '🇨🇵' => 'דגל: האי קליפרטון',
+    '🇨🇶' => 'דגל: סרק',
     '🇨🇷' => 'דגל: קוסטה ריקה',
     '🇨🇺' => 'דגל: קובה',
     '🇨🇻' => 'דגל: כף ורדה',
@@ -2390,13 +2547,6 @@
     '🏽' => 'גוון עור בינוני',
     '🏾' => 'גוון עור כהה בינוני',
     '🏿' => 'גוון עור כהה',
-    '🪉' => 'נבל',
-    '🪏' => 'מעדר',
-    '🪾' => 'עץ בלי עלים',
-    '🫆' => 'טביעת אצבע',
-    '🫜' => 'ירק שורש',
-    '🫟' => 'כתם',
-    '🫩' => 'פרצוף עם שקיות מתחת לעיניים',
     '😀' => 'חיוך רחב',
     '😃' => 'פרצוף עם חיוך רחב ועיניים גדולות',
     '😄' => 'פרצוף מחייך עם פה פתוח ועיניים מחייכות',
@@ -2450,6 +2600,7 @@
     '😪' => 'פרצוף ישנוני',
     '🤤' => 'פרצוף מזיל ריר',
     '😴' => 'פרצוף ישן',
+    '🫩' => 'פרצוף עם שקיות מתחת לעיניים',
     '😷' => 'פרצוף עם מסיכת מנתח',
     '🤒' => 'פרצוף עם מדחום',
     '🤕' => 'פרצוף עם תחבושת ראש',
@@ -2476,6 +2627,7 @@
     '😯' => 'פרצוף מופתע',
     '😲' => 'פרצוף נדהם',
     '😳' => 'פרצוף נדהם וסמוק',
+    '🫪' => 'פרצוף מעוות',
     '🥺' => 'מתחנן',
     '🥹' => 'פרצוף עם דמעות',
     '😦' => 'פרצוף עצוב עם פה פתוח',
@@ -2547,6 +2699,7 @@
     '💋' => 'סימן נשיקה',
     '💯' => 'ציון 100',
     '💢' => 'סמל כעס',
+    '🫯' => 'ענן קרב',
     '💥' => 'פיצוץ',
     '💫' => 'כוכב נע במעגל',
     '💦' => 'טיפות זיעה',
@@ -2670,6 +2823,7 @@
     '🧞' => 'שד',
     '🧟' => 'זומבי',
     '🧌' => 'טרול',
+    '🫈' => 'יצור שעיר',
     '💆' => 'עיסוי פנים',
     '💇' => 'תספורת',
     '🚶' => 'איש הולך',
@@ -2713,6 +2867,7 @@
     '🫂' => 'אנשים מתחבקים',
     '👪' => 'משפחה',
     '👣' => 'טביעות רגל',
+    '🫆' => 'טביעת אצבע',
     '🦰' => 'שיער ג׳ינג׳י',
     '🦱' => 'שיער מתולתל',
     '🦳' => 'שיער לבן',
@@ -2812,6 +2967,7 @@
     '🐳' => 'לווייתן מתיז סילון מים',
     '🐋' => 'לוויתן',
     '🐬' => 'דולפין',
+    '🫍' => 'אורקה',
     '🦭' => 'כלב ים',
     '🐟' => 'דג',
     '🐠' => 'דג טרופי',
@@ -2821,6 +2977,11 @@
     '🐚' => 'צדף מסולסל',
     '🪸' => 'אלמוג',
     '🪼' => 'מדוזה',
+    '🦀' => 'סרטן',
+    '🦞' => 'לובסטר',
+    '🦐' => 'שרימפ',
+    '🦑' => 'דיונון',
+    '🦪' => 'צדפה',
     '🐌' => 'חלזון',
     '🦋' => 'פרפר',
     '🐛' => 'זחל',
@@ -2865,6 +3026,7 @@
     '🪹' => 'קן ריק',
     '🪺' => 'קן עם ביצים',
     '🍄' => 'פטריה',
+    '🪾' => 'עץ בלי עלים',
     '🍇' => 'ענבים',
     '🍈' => 'מלון',
     '🍉' => 'אבטיח',
@@ -2901,6 +3063,7 @@
     '🌰' => 'ערמון',
     '🫚' => 'שורש ג׳ינג׳ר',
     '🫛' => 'אפונה',
+    '🫜' => 'ירק שורש',
     '🍞' => 'לחם',
     '🥐' => 'קרואסון',
     '🥖' => 'באגט',
@@ -2952,11 +3115,6 @@
     '🥟' => 'דים-סאם',
     '🥠' => 'עוגיית מזל',
     '🥡' => 'קופסת משלוח',
-    '🦀' => 'סרטן',
-    '🦞' => 'לובסטר',
-    '🦐' => 'שרימפ',
-    '🦑' => 'דיונון',
-    '🦪' => 'צדפה',
     '🍦' => 'גלידה בגביע',
     '🍧' => 'קערית ברד',
     '🍨' => 'גלידה',
@@ -3007,6 +3165,7 @@
     '🧭' => 'מצפן',
     '🏔' => 'הר עם פסגה מושלגת',
     '⛰' => 'הר',
+    '🛘' => 'מפולת',
     '🌋' => 'הר געש',
     '🗻' => 'הר פוג׳י',
     '🏕' => 'מחנאות',
@@ -3367,16 +3526,18 @@
     '🎧' => 'אוזניה',
     '📻' => 'רדיו',
     '🎷' => 'סקסופון',
+    '🎺' => 'חצוצרה',
+    '🪊' => 'טרומבון',
     '🪗' => 'אקורדיון',
     '🎸' => 'גיטרה',
     '🎹' => 'קלידים',
-    '🎺' => 'חצוצרה',
     '🎻' => 'כינור',
     '🪕' => 'בנג׳ו',
     '🥁' => 'תוף',
     '🪘' => 'תוף גבוה',
     '🪇' => 'מאראקס',
     '🪈' => 'חליל',
+    '🪉' => 'נבל',
     '📱' => 'טלפון נייד',
     '📲' => 'טלפון נייד עם חץ',
     '☎' => 'טלפון רגיל',
@@ -3430,8 +3591,9 @@
     '📑' => 'תוויות סימניה',
     '🔖' => 'סימנייה',
     '🏷' => 'תווית',
-    '💰' => 'שק כסף',
     '🪙' => 'מטבע',
+    '💰' => 'שק כסף',
+    '🪎' => 'תיבת אוצר',
     '💴' => 'שטר ין',
     '💵' => 'שטר דולר',
     '💶' => 'שטר אירו',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ארגז כלים',
     '🧲' => 'מגנט',
     '🪜' => 'סולם',
+    '🪏' => 'מעדר',
     '⚗' => 'מבחנת כימיה',
     '🧪' => 'מבחנה',
     '🧫' => 'צלחת פטרי',
@@ -3697,6 +3860,7 @@
     '✴' => 'כוכב עם שמונה פינות',
     '❇' => 'נוצץ',
     '™' => 'סימן מסחרי',
+    '🫟' => 'כתם',
     '🔠' => 'לחצן אותיות גדולות',
     '🔡' => 'לחצן אותיות קטנות',
     '🔢' => 'לחצן מספרים',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hi_latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hi_latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hi_latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hi_latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kiss: woman, woman, dark skin, medium skin',
     '👩🏿‍❤‍💋‍👩🏾' => 'kiss: woman, woman, dark skin, medium-dark skin',
     '👩🏿‍❤‍💋‍👩🏿' => 'kiss: woman, woman, dark skin',
+    '🧑🏻‍🫯‍🧑🏼' => 'wrestling karte log: Fair skin, medium-fair skin',
+    '🧑🏻‍🫯‍🧑🏽' => 'wrestling karte log: Fair skin, medium skin',
+    '🧑🏻‍🫯‍🧑🏾' => 'wrestling karte log: Fair skin, medium-dark skin',
+    '🧑🏻‍🫯‍🧑🏿' => 'wrestling karte log: Fair skin, dark skin',
+    '🧑🏼‍🫯‍🧑🏻' => 'wrestling karte log: medium-fair skin, Fair skin',
+    '🧑🏼‍🫯‍🧑🏽' => 'wrestling karte log: medium-fair skin, medium skin',
+    '🧑🏼‍🫯‍🧑🏾' => 'wrestling karte log: medium-fair skin, medium-dark skin',
+    '🧑🏼‍🫯‍🧑🏿' => 'wrestling karte log: medium-fair skin, dark skin',
+    '🧑🏽‍🫯‍🧑🏻' => 'wrestling karte log: medium skin, Fair skin',
+    '🧑🏽‍🫯‍🧑🏼' => 'wrestling karte log: medium skin, medium-fair skin',
+    '🧑🏽‍🫯‍🧑🏾' => 'wrestling karte log: medium skin, medium-dark skin',
+    '🧑🏽‍🫯‍🧑🏿' => 'wrestling karte log: medium skin, dark skin',
+    '🧑🏾‍🫯‍🧑🏻' => 'wrestling karte log: medium-dark skin, Fair skin',
+    '🧑🏾‍🫯‍🧑🏼' => 'wrestling karte log: medium-dark skin, medium-fair skin',
+    '🧑🏾‍🫯‍🧑🏽' => 'wrestling karte log: medium-dark skin, medium skin',
+    '🧑🏾‍🫯‍🧑🏿' => 'wrestling karte log: medium-dark skin, dark skin',
+    '🧑🏿‍🫯‍🧑🏻' => 'wrestling karte log: dark skin, Fair skin',
+    '🧑🏿‍🫯‍🧑🏼' => 'wrestling karte log: dark skin, medium-fair skin',
+    '🧑🏿‍🫯‍🧑🏽' => 'wrestling karte log: dark skin, medium skin',
+    '🧑🏿‍🫯‍🧑🏾' => 'wrestling karte log: dark skin, medium-dark skin',
     '🧑🏻‍❤‍🧑🏼' => 'heart symbol ke saath couple: person, person, Fair skin, medium-fair skin',
     '🧑🏻‍❤‍🧑🏽' => 'heart symbol ke saath couple: person, person, Fair skin, medium skin',
     '🧑🏻‍❤‍🧑🏾' => 'heart symbol ke saath couple: person, person, Fair skin, medium-dark skin',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'heart symbol ke saath couple: person, person, dark skin, medium-fair skin',
     '🧑🏿‍❤‍🧑🏽' => 'heart symbol ke saath couple: person, person, dark skin, medium skin',
     '🧑🏿‍❤‍🧑🏾' => 'heart symbol ke saath couple: person, person, dark skin, medium-dark skin',
+    '🧑🏻‍🐰‍🧑🏼' => 'khargosh ke kaan wale log: Fair skin, medium-fair skin',
+    '🧑🏻‍🐰‍🧑🏽' => 'khargosh ke kaan wale log: Fair skin, medium skin',
+    '🧑🏻‍🐰‍🧑🏾' => 'khargosh ke kaan wale log: Fair skin, medium-dark skin',
+    '🧑🏻‍🐰‍🧑🏿' => 'khargosh ke kaan wale log: Fair skin, dark skin',
+    '🧑🏼‍🐰‍🧑🏻' => 'khargosh ke kaan wale log: medium-fair skin, Fair skin',
+    '🧑🏼‍🐰‍🧑🏽' => 'khargosh ke kaan wale log: medium-fair skin, medium skin',
+    '🧑🏼‍🐰‍🧑🏾' => 'khargosh ke kaan wale log: medium-fair skin, medium-dark skin',
+    '🧑🏼‍🐰‍🧑🏿' => 'khargosh ke kaan wale log: medium-fair skin, dark skin',
+    '🧑🏽‍🐰‍🧑🏻' => 'khargosh ke kaan wale log: medium skin, Fair skin',
+    '🧑🏽‍🐰‍🧑🏼' => 'khargosh ke kaan wale log: medium skin, medium-fair skin',
+    '🧑🏽‍🐰‍🧑🏾' => 'khargosh ke kaan wale log: medium skin, medium-dark skin',
+    '🧑🏽‍🐰‍🧑🏿' => 'khargosh ke kaan wale log: medium skin, dark skin',
+    '🧑🏾‍🐰‍🧑🏻' => 'khargosh ke kaan wale log: medium-dark skin, Fair skin',
+    '🧑🏾‍🐰‍🧑🏼' => 'khargosh ke kaan wale log: medium-dark skin, medium-fair skin',
+    '🧑🏾‍🐰‍🧑🏽' => 'khargosh ke kaan wale log: medium-dark skin, medium skin',
+    '🧑🏾‍🐰‍🧑🏿' => 'khargosh ke kaan wale log: medium-dark skin, dark skin',
+    '🧑🏿‍🐰‍🧑🏻' => 'khargosh ke kaan wale log: dark skin, Fair skin',
+    '🧑🏿‍🐰‍🧑🏼' => 'khargosh ke kaan wale log: dark skin, medium-fair skin',
+    '🧑🏿‍🐰‍🧑🏽' => 'khargosh ke kaan wale log: dark skin, medium skin',
+    '🧑🏿‍🐰‍🧑🏾' => 'khargosh ke kaan wale log: dark skin, medium-dark skin',
+    '👨🏻‍🫯‍👨🏼' => 'wrestling karte aadmi: Fair skin, medium-fair skin',
+    '👨🏻‍🫯‍👨🏽' => 'wrestling karte aadmi: Fair skin, medium skin',
+    '👨🏻‍🫯‍👨🏾' => 'wrestling karte aadmi: Fair skin, medium-dark skin',
+    '👨🏻‍🫯‍👨🏿' => 'wrestling karte aadmi: Fair skin, dark skin',
+    '👨🏼‍🫯‍👨🏻' => 'wrestling karte aadmi: medium-fair skin, Fair skin',
+    '👨🏼‍🫯‍👨🏽' => 'wrestling karte aadmi: medium-fair skin, medium skin',
+    '👨🏼‍🫯‍👨🏾' => 'wrestling karte aadmi: medium-fair skin, medium-dark skin',
+    '👨🏼‍🫯‍👨🏿' => 'wrestling karte aadmi: medium-fair skin, dark skin',
+    '👨🏽‍🫯‍👨🏻' => 'wrestling karte aadmi: medium skin, Fair skin',
+    '👨🏽‍🫯‍👨🏼' => 'wrestling karte aadmi: medium skin, medium-fair skin',
+    '👨🏽‍🫯‍👨🏾' => 'wrestling karte aadmi: medium skin, medium-dark skin',
+    '👨🏽‍🫯‍👨🏿' => 'wrestling karte aadmi: medium skin, dark skin',
+    '👨🏾‍🫯‍👨🏻' => 'wrestling karte aadmi: medium-dark skin, Fair skin',
+    '👨🏾‍🫯‍👨🏼' => 'wrestling karte aadmi: medium-dark skin, medium-fair skin',
+    '👨🏾‍🫯‍👨🏽' => 'wrestling karte aadmi: medium-dark skin, medium skin',
+    '👨🏾‍🫯‍👨🏿' => 'wrestling karte aadmi: medium-dark skin, dark skin',
+    '👨🏿‍🫯‍👨🏻' => 'wrestling karte aadmi: dark skin, Fair skin',
+    '👨🏿‍🫯‍👨🏼' => 'wrestling karte aadmi: dark skin, medium-fair skin',
+    '👨🏿‍🫯‍👨🏽' => 'wrestling karte aadmi: dark skin, medium skin',
+    '👨🏿‍🫯‍👨🏾' => 'wrestling karte aadmi: dark skin, medium-dark skin',
     '👨🏻‍❤‍👨🏻' => 'heart symbol ke saath couple: man, man, Fair skin',
     '👨🏻‍❤‍👨🏼' => 'heart symbol ke saath couple: man, man, Fair skin, medium-fair skin',
     '👨🏻‍❤‍👨🏽' => 'heart symbol ke saath couple: man, man, Fair skin, medium skin',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'heart symbol ke saath couple: man, man, dark skin, medium skin',
     '👨🏿‍❤‍👨🏾' => 'heart symbol ke saath couple: man, man, dark skin, medium-dark skin',
     '👨🏿‍❤‍👨🏿' => 'heart symbol ke saath couple: man, man, dark skin',
+    '👨🏻‍🐰‍👨🏼' => 'khargosh ke kaan wale aadmi: Fair skin, medium-fair skin',
+    '👨🏻‍🐰‍👨🏽' => 'khargosh ke kaan wale aadmi: Fair skin, medium skin',
+    '👨🏻‍🐰‍👨🏾' => 'khargosh ke kaan wale aadmi: Fair skin, medium-dark skin',
+    '👨🏻‍🐰‍👨🏿' => 'khargosh ke kaan wale aadmi: Fair skin, dark skin',
+    '👨🏼‍🐰‍👨🏻' => 'khargosh ke kaan wale aadmi: medium-fair skin, Fair skin',
+    '👨🏼‍🐰‍👨🏽' => 'khargosh ke kaan wale aadmi: medium-fair skin, medium skin',
+    '👨🏼‍🐰‍👨🏾' => 'khargosh ke kaan wale aadmi: medium-fair skin, medium-dark skin',
+    '👨🏼‍🐰‍👨🏿' => 'khargosh ke kaan wale aadmi: medium-fair skin, dark skin',
+    '👨🏽‍🐰‍👨🏻' => 'khargosh ke kaan wale aadmi: medium skin, Fair skin',
+    '👨🏽‍🐰‍👨🏼' => 'khargosh ke kaan wale aadmi: medium skin, medium-fair skin',
+    '👨🏽‍🐰‍👨🏾' => 'khargosh ke kaan wale aadmi: medium skin, medium-dark skin',
+    '👨🏽‍🐰‍👨🏿' => 'khargosh ke kaan wale aadmi: medium skin, dark skin',
+    '👨🏾‍🐰‍👨🏻' => 'khargosh ke kaan wale aadmi: medium-dark skin, Fair skin',
+    '👨🏾‍🐰‍👨🏼' => 'khargosh ke kaan wale aadmi: medium-dark skin, medium-fair skin',
+    '👨🏾‍🐰‍👨🏽' => 'khargosh ke kaan wale aadmi: medium-dark skin, medium skin',
+    '👨🏾‍🐰‍👨🏿' => 'khargosh ke kaan wale aadmi: medium-dark skin, dark skin',
+    '👨🏿‍🐰‍👨🏻' => 'khargosh ke kaan wale aadmi: dark skin, Fair skin',
+    '👨🏿‍🐰‍👨🏼' => 'khargosh ke kaan wale aadmi: dark skin, medium-fair skin',
+    '👨🏿‍🐰‍👨🏽' => 'khargosh ke kaan wale aadmi: dark skin, medium skin',
+    '👨🏿‍🐰‍👨🏾' => 'khargosh ke kaan wale aadmi: dark skin, medium-dark skin',
+    '👩🏻‍🫯‍👩🏼' => 'wrestling karti mahilaayein: Fair skin, medium-fair skin',
+    '👩🏻‍🫯‍👩🏽' => 'wrestling karti mahilaayein: Fair skin, medium skin',
+    '👩🏻‍🫯‍👩🏾' => 'wrestling karti mahilaayein: Fair skin, medium-dark skin',
+    '👩🏻‍🫯‍👩🏿' => 'wrestling karti mahilaayein: Fair skin, dark skin',
+    '👩🏼‍🫯‍👩🏻' => 'wrestling karti mahilaayein: medium-fair skin, Fair skin',
+    '👩🏼‍🫯‍👩🏽' => 'wrestling karti mahilaayein: medium-fair skin, medium skin',
+    '👩🏼‍🫯‍👩🏾' => 'wrestling karti mahilaayein: medium-fair skin, medium-dark skin',
+    '👩🏼‍🫯‍👩🏿' => 'wrestling karti mahilaayein: medium-fair skin, dark skin',
+    '👩🏽‍🫯‍👩🏻' => 'wrestling karti mahilaayein: medium skin, Fair skin',
+    '👩🏽‍🫯‍👩🏼' => 'wrestling karti mahilaayein: medium skin, medium-fair skin',
+    '👩🏽‍🫯‍👩🏾' => 'wrestling karti mahilaayein: medium skin, medium-dark skin',
+    '👩🏽‍🫯‍👩🏿' => 'wrestling karti mahilaayein: medium skin, dark skin',
+    '👩🏾‍🫯‍👩🏻' => 'wrestling karti mahilaayein: medium-dark skin, Fair skin',
+    '👩🏾‍🫯‍👩🏼' => 'wrestling karti mahilaayein: medium-dark skin, medium-fair skin',
+    '👩🏾‍🫯‍👩🏽' => 'wrestling karti mahilaayein: medium-dark skin, medium skin',
+    '👩🏾‍🫯‍👩🏿' => 'wrestling karti mahilaayein: medium-dark skin, dark skin',
+    '👩🏿‍🫯‍👩🏻' => 'wrestling karti mahilaayein: dark skin, Fair skin',
+    '👩🏿‍🫯‍👩🏼' => 'wrestling karti mahilaayein: dark skin, medium-fair skin',
+    '👩🏿‍🫯‍👩🏽' => 'wrestling karti mahilaayein: dark skin, medium skin',
+    '👩🏿‍🫯‍👩🏾' => 'wrestling karti mahilaayein: dark skin, medium-dark skin',
     '👩🏻‍❤‍👨🏻' => 'heart symbol ke saath couple: woman, man, Fair skin',
     '👩🏻‍❤‍👨🏼' => 'heart symbol ke saath couple: woman, man, Fair skin, medium-fair skin',
     '👩🏻‍❤‍👨🏽' => 'heart symbol ke saath couple: woman, man, Fair skin, medium skin',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'heart symbol ke saath couple: woman, woman, dark skin, medium skin',
     '👩🏿‍❤‍👩🏾' => 'heart symbol ke saath couple: woman, woman, dark skin, medium-dark skin',
     '👩🏿‍❤‍👩🏿' => 'heart symbol ke saath couple: woman, woman, dark skin',
+    '👩🏻‍🐰‍👩🏼' => 'khargosh ke kaan wali mahilaayein: Fair skin, medium-fair skin',
+    '👩🏻‍🐰‍👩🏽' => 'khargosh ke kaan wali mahilaayein: Fair skin, medium skin',
+    '👩🏻‍🐰‍👩🏾' => 'khargosh ke kaan wali mahilaayein: Fair skin, medium-dark skin',
+    '👩🏻‍🐰‍👩🏿' => 'khargosh ke kaan wali mahilaayein: Fair skin, dark skin',
+    '👩🏼‍🐰‍👩🏻' => 'khargosh ke kaan wali mahilaayein: medium-fair skin, Fair skin',
+    '👩🏼‍🐰‍👩🏽' => 'khargosh ke kaan wali mahilaayein: medium-fair skin, medium skin',
+    '👩🏼‍🐰‍👩🏾' => 'khargosh ke kaan wali mahilaayein: medium-fair skin, medium-dark skin',
+    '👩🏼‍🐰‍👩🏿' => 'khargosh ke kaan wali mahilaayein: medium-fair skin, dark skin',
+    '👩🏽‍🐰‍👩🏻' => 'khargosh ke kaan wali mahilaayein: medium skin, Fair skin',
+    '👩🏽‍🐰‍👩🏼' => 'khargosh ke kaan wali mahilaayein: medium skin, medium-fair skin',
+    '👩🏽‍🐰‍👩🏾' => 'khargosh ke kaan wali mahilaayein: medium skin, medium-dark skin',
+    '👩🏽‍🐰‍👩🏿' => 'khargosh ke kaan wali mahilaayein: medium skin, dark skin',
+    '👩🏾‍🐰‍👩🏻' => 'khargosh ke kaan wali mahilaayein: medium-dark skin, Fair skin',
+    '👩🏾‍🐰‍👩🏼' => 'khargosh ke kaan wali mahilaayein: medium-dark skin, medium-fair skin',
+    '👩🏾‍🐰‍👩🏽' => 'khargosh ke kaan wali mahilaayein: medium-dark skin, medium skin',
+    '👩🏾‍🐰‍👩🏿' => 'khargosh ke kaan wali mahilaayein: medium-dark skin, dark skin',
+    '👩🏿‍🐰‍👩🏻' => 'khargosh ke kaan wali mahilaayein: dark skin, Fair skin',
+    '👩🏿‍🐰‍👩🏼' => 'khargosh ke kaan wali mahilaayein: dark skin, medium-fair skin',
+    '👩🏿‍🐰‍👩🏽' => 'khargosh ke kaan wali mahilaayein: dark skin, medium skin',
+    '👩🏿‍🐰‍👩🏾' => 'khargosh ke kaan wali mahilaayein: dark skin, medium-dark skin',
     '🧑🏻‍🤝‍🧑🏻' => 'haath pakde huye log: Fair skin',
     '🧑🏻‍🤝‍🧑🏼' => 'haath pakde huye log: Fair skin, medium-fair skin',
     '🧑🏻‍🤝‍🧑🏽' => 'haath pakde huye log: Fair skin, medium skin',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'झंडा: स्कॉटलैंड',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'झंडा: वेल्स',
     '🧑‍🧑‍🧒‍🧒' => 'परिवार: वयस्क, वयस्क, बच्चा, बच्चा',
-    '🚶🏻‍♀‍➡' => 'walk karti mahila facing right',
-    '🚶🏼‍♀‍➡' => 'walk karti mahila facing right',
-    '🚶🏽‍♀‍➡' => 'walk karti mahila facing right',
-    '🚶🏾‍♀‍➡' => 'walk karti mahila facing right',
-    '🚶🏿‍♀‍➡' => 'walk karti mahila facing right',
-    '🚶🏻‍♂‍➡' => 'walk karta aadmi facing right',
-    '🚶🏼‍♂‍➡' => 'walk karta aadmi facing right',
-    '🚶🏽‍♂‍➡' => 'walk karta aadmi facing right',
-    '🚶🏾‍♂‍➡' => 'walk karta aadmi facing right',
-    '🚶🏿‍♂‍➡' => 'walk karta aadmi facing right',
-    '🧎🏻‍♀‍➡' => 'knees par baithi mahila facing right',
-    '🧎🏼‍♀‍➡' => 'knees par baithi mahila facing right',
-    '🧎🏽‍♀‍➡' => 'knees par baithi mahila facing right',
-    '🧎🏾‍♀‍➡' => 'knees par baithi mahila facing right',
-    '🧎🏿‍♀‍➡' => 'knees par baithi mahila facing right',
-    '🧎🏻‍♂‍➡' => 'knees par baitha aadmi facing right',
-    '🧎🏼‍♂‍➡' => 'knees par baitha aadmi facing right',
-    '🧎🏽‍♂‍➡' => 'knees par baitha aadmi facing right',
-    '🧎🏾‍♂‍➡' => 'knees par baitha aadmi facing right',
-    '🧎🏿‍♂‍➡' => 'knees par baitha aadmi facing right',
-    '🧑🏻‍🦯‍➡' => 'white cane pakda hua vyakti facing right',
-    '🧑🏼‍🦯‍➡' => 'white cane pakda hua vyakti facing right',
-    '🧑🏽‍🦯‍➡' => 'white cane pakda hua vyakti facing right',
-    '🧑🏾‍🦯‍➡' => 'white cane pakda hua vyakti facing right',
-    '🧑🏿‍🦯‍➡' => 'white cane pakda hua vyakti facing right',
-    '👨🏻‍🦯‍➡' => 'white cane pakda hua aadmi facing right',
-    '👨🏼‍🦯‍➡' => 'white cane pakda hua aadmi facing right',
-    '👨🏽‍🦯‍➡' => 'white cane pakda hua aadmi facing right',
-    '👨🏾‍🦯‍➡' => 'white cane pakda hua aadmi facing right',
-    '👨🏿‍🦯‍➡' => 'white cane pakda hua aadmi facing right',
-    '👩🏻‍🦯‍➡' => 'white cane pakde hui mahila facing right',
-    '👩🏼‍🦯‍➡' => 'white cane pakde hui mahila facing right',
-    '👩🏽‍🦯‍➡' => 'white cane pakde hui mahila facing right',
-    '👩🏾‍🦯‍➡' => 'white cane pakde hui mahila facing right',
-    '👩🏿‍🦯‍➡' => 'white cane pakde hui mahila facing right',
-    '🧑🏻‍🦼‍➡' => 'motor wheelchair par baitha vyakti facing right',
-    '🧑🏼‍🦼‍➡' => 'motor wheelchair par baitha vyakti facing right',
-    '🧑🏽‍🦼‍➡' => 'motor wheelchair par baitha vyakti facing right',
-    '🧑🏾‍🦼‍➡' => 'motor wheelchair par baitha vyakti facing right',
-    '🧑🏿‍🦼‍➡' => 'motor wheelchair par baitha vyakti facing right',
-    '👨🏻‍🦼‍➡' => 'motor wheelchair par baitha aadmi facing right',
-    '👨🏼‍🦼‍➡' => 'motor wheelchair par baitha aadmi facing right',
-    '👨🏽‍🦼‍➡' => 'motor wheelchair par baitha aadmi facing right',
-    '👨🏾‍🦼‍➡' => 'motor wheelchair par baitha aadmi facing right',
-    '👨🏿‍🦼‍➡' => 'motor wheelchair par baitha aadmi facing right',
-    '👩🏻‍🦼‍➡' => 'motor wheelchair par baithi aurat facing right',
-    '👩🏼‍🦼‍➡' => 'motor wheelchair par baithi aurat facing right',
-    '👩🏽‍🦼‍➡' => 'motor wheelchair par baithi aurat facing right',
-    '👩🏾‍🦼‍➡' => 'motor wheelchair par baithi aurat facing right',
-    '👩🏿‍🦼‍➡' => 'motor wheelchair par baithi aurat facing right',
-    '🧑🏻‍🦽‍➡' => 'manual wheelchair par baitha vyakti facing right',
-    '🧑🏼‍🦽‍➡' => 'manual wheelchair par baitha vyakti facing right',
-    '🧑🏽‍🦽‍➡' => 'manual wheelchair par baitha vyakti facing right',
-    '🧑🏾‍🦽‍➡' => 'manual wheelchair par baitha vyakti facing right',
-    '🧑🏿‍🦽‍➡' => 'manual wheelchair par baitha vyakti facing right',
-    '👨🏻‍🦽‍➡' => 'manual wheelchair par baitha aadmi facing right',
-    '👨🏼‍🦽‍➡' => 'manual wheelchair par baitha aadmi facing right',
-    '👨🏽‍🦽‍➡' => 'manual wheelchair par baitha aadmi facing right',
-    '👨🏾‍🦽‍➡' => 'manual wheelchair par baitha aadmi facing right',
-    '👨🏿‍🦽‍➡' => 'manual wheelchair par baitha aadmi facing right',
-    '👩🏻‍🦽‍➡' => 'manual wheelchair par baithi mahila facing right',
-    '👩🏼‍🦽‍➡' => 'manual wheelchair par baithi mahila facing right',
-    '👩🏽‍🦽‍➡' => 'manual wheelchair par baithi mahila facing right',
-    '👩🏾‍🦽‍➡' => 'manual wheelchair par baithi mahila facing right',
-    '👩🏿‍🦽‍➡' => 'manual wheelchair par baithi mahila facing right',
-    '🏃🏻‍♀‍➡' => 'run karti mahila facing right',
-    '🏃🏼‍♀‍➡' => 'run karti mahila facing right',
-    '🏃🏽‍♀‍➡' => 'run karti mahila facing right',
-    '🏃🏾‍♀‍➡' => 'run karti mahila facing right',
-    '🏃🏿‍♀‍➡' => 'run karti mahila facing right',
-    '🏃🏻‍♂‍➡' => 'run karta aadmi facing right',
-    '🏃🏼‍♂‍➡' => 'run karta aadmi facing right',
-    '🏃🏽‍♂‍➡' => 'run karta aadmi facing right',
-    '🏃🏾‍♂‍➡' => 'run karta aadmi facing right',
-    '🏃🏿‍♂‍➡' => 'run karta aadmi facing right',
+    '🚶🏻‍♀‍➡' => 'walk karti mahila: Fair skin, facing right',
+    '🚶🏼‍♀‍➡' => 'walk karti mahila: medium-fair skin, facing right',
+    '🚶🏽‍♀‍➡' => 'walk karti mahila: medium skin, facing right',
+    '🚶🏾‍♀‍➡' => 'walk karti mahila: medium-dark skin, facing right',
+    '🚶🏿‍♀‍➡' => 'walk karti mahila: dark skin, facing right',
+    '🚶🏻‍♂‍➡' => 'walk karta aadmi: Fair skin, facing right',
+    '🚶🏼‍♂‍➡' => 'walk karta aadmi: medium-fair skin, facing right',
+    '🚶🏽‍♂‍➡' => 'walk karta aadmi: medium skin, facing right',
+    '🚶🏾‍♂‍➡' => 'walk karta aadmi: medium-dark skin, facing right',
+    '🚶🏿‍♂‍➡' => 'walk karta aadmi: dark skin, facing right',
+    '🧎🏻‍♀‍➡' => 'knees par baithi mahila: Fair skin, facing right',
+    '🧎🏼‍♀‍➡' => 'knees par baithi mahila: medium-fair skin, facing right',
+    '🧎🏽‍♀‍➡' => 'knees par baithi mahila: medium skin, facing right',
+    '🧎🏾‍♀‍➡' => 'knees par baithi mahila: medium-dark skin, facing right',
+    '🧎🏿‍♀‍➡' => 'knees par baithi mahila: dark skin, facing right',
+    '🧎🏻‍♂‍➡' => 'knees par baitha aadmi: Fair skin, facing right',
+    '🧎🏼‍♂‍➡' => 'knees par baitha aadmi: medium-fair skin, facing right',
+    '🧎🏽‍♂‍➡' => 'knees par baitha aadmi: medium skin, facing right',
+    '🧎🏾‍♂‍➡' => 'knees par baitha aadmi: medium-dark skin, facing right',
+    '🧎🏿‍♂‍➡' => 'knees par baitha aadmi: dark skin, facing right',
+    '🧑🏻‍🦯‍➡' => 'white cane pakda hua vyakti: Fair skin, facing right',
+    '🧑🏼‍🦯‍➡' => 'white cane pakda hua vyakti: medium-fair skin, facing right',
+    '🧑🏽‍🦯‍➡' => 'white cane pakda hua vyakti: medium skin, facing right',
+    '🧑🏾‍🦯‍➡' => 'white cane pakda hua vyakti: medium-dark skin, facing right',
+    '🧑🏿‍🦯‍➡' => 'white cane pakda hua vyakti: dark skin, facing right',
+    '👨🏻‍🦯‍➡' => 'white cane pakda hua aadmi: Fair skin, facing right',
+    '👨🏼‍🦯‍➡' => 'white cane pakda hua aadmi: medium-fair skin, facing right',
+    '👨🏽‍🦯‍➡' => 'white cane pakda hua aadmi: medium skin, facing right',
+    '👨🏾‍🦯‍➡' => 'white cane pakda hua aadmi: medium-dark skin, facing right',
+    '👨🏿‍🦯‍➡' => 'white cane pakda hua aadmi: dark skin, facing right',
+    '👩🏻‍🦯‍➡' => 'white cane pakde hui mahila: Fair skin, facing right',
+    '👩🏼‍🦯‍➡' => 'white cane pakde hui mahila: medium-fair skin, facing right',
+    '👩🏽‍🦯‍➡' => 'white cane pakde hui mahila: medium skin, facing right',
+    '👩🏾‍🦯‍➡' => 'white cane pakde hui mahila: medium-dark skin, facing right',
+    '👩🏿‍🦯‍➡' => 'white cane pakde hui mahila: dark skin, facing right',
+    '🧑🏻‍🦼‍➡' => 'motor wheelchair par baitha vyakti: Fair skin, facing right',
+    '🧑🏼‍🦼‍➡' => 'motor wheelchair par baitha vyakti: medium-fair skin, facing right',
+    '🧑🏽‍🦼‍➡' => 'motor wheelchair par baitha vyakti: medium skin, facing right',
+    '🧑🏾‍🦼‍➡' => 'motor wheelchair par baitha vyakti: medium-dark skin, facing right',
+    '🧑🏿‍🦼‍➡' => 'motor wheelchair par baitha vyakti: dark skin, facing right',
+    '👨🏻‍🦼‍➡' => 'motor wheelchair par baitha aadmi: Fair skin, facing right',
+    '👨🏼‍🦼‍➡' => 'motor wheelchair par baitha aadmi: medium-fair skin, facing right',
+    '👨🏽‍🦼‍➡' => 'motor wheelchair par baitha aadmi: medium skin, facing right',
+    '👨🏾‍🦼‍➡' => 'motor wheelchair par baitha aadmi: medium-dark skin, facing right',
+    '👨🏿‍🦼‍➡' => 'motor wheelchair par baitha aadmi: dark skin, facing right',
+    '👩🏻‍🦼‍➡' => 'motor wheelchair par baithi aurat: Fair skin, facing right',
+    '👩🏼‍🦼‍➡' => 'motor wheelchair par baithi aurat: medium-fair skin, facing right',
+    '👩🏽‍🦼‍➡' => 'motor wheelchair par baithi aurat: medium skin, facing right',
+    '👩🏾‍🦼‍➡' => 'motor wheelchair par baithi aurat: medium-dark skin, facing right',
+    '👩🏿‍🦼‍➡' => 'motor wheelchair par baithi aurat: dark skin, facing right',
+    '🧑🏻‍🦽‍➡' => 'manual wheelchair par baitha vyakti: Fair skin, facing right',
+    '🧑🏼‍🦽‍➡' => 'manual wheelchair par baitha vyakti: medium-fair skin, facing right',
+    '🧑🏽‍🦽‍➡' => 'manual wheelchair par baitha vyakti: medium skin, facing right',
+    '🧑🏾‍🦽‍➡' => 'manual wheelchair par baitha vyakti: medium-dark skin, facing right',
+    '🧑🏿‍🦽‍➡' => 'manual wheelchair par baitha vyakti: dark skin, facing right',
+    '👨🏻‍🦽‍➡' => 'manual wheelchair par baitha aadmi: Fair skin, facing right',
+    '👨🏼‍🦽‍➡' => 'manual wheelchair par baitha aadmi: medium-fair skin, facing right',
+    '👨🏽‍🦽‍➡' => 'manual wheelchair par baitha aadmi: medium skin, facing right',
+    '👨🏾‍🦽‍➡' => 'manual wheelchair par baitha aadmi: medium-dark skin, facing right',
+    '👨🏿‍🦽‍➡' => 'manual wheelchair par baitha aadmi: dark skin, facing right',
+    '👩🏻‍🦽‍➡' => 'manual wheelchair par baithi mahila: Fair skin, facing right',
+    '👩🏼‍🦽‍➡' => 'manual wheelchair par baithi mahila: medium-fair skin, facing right',
+    '👩🏽‍🦽‍➡' => 'manual wheelchair par baithi mahila: medium skin, facing right',
+    '👩🏾‍🦽‍➡' => 'manual wheelchair par baithi mahila: medium-dark skin, facing right',
+    '👩🏿‍🦽‍➡' => 'manual wheelchair par baithi mahila: dark skin, facing right',
+    '🏃🏻‍♀‍➡' => 'run karti mahila: Fair skin, facing right',
+    '🏃🏼‍♀‍➡' => 'run karti mahila: medium-fair skin, facing right',
+    '🏃🏽‍♀‍➡' => 'run karti mahila: medium skin, facing right',
+    '🏃🏾‍♀‍➡' => 'run karti mahila: medium-dark skin, facing right',
+    '🏃🏿‍♀‍➡' => 'run karti mahila: dark skin, facing right',
+    '🏃🏻‍♂‍➡' => 'run karta aadmi: Fair skin, facing right',
+    '🏃🏼‍♂‍➡' => 'run karta aadmi: medium-fair skin, facing right',
+    '🏃🏽‍♂‍➡' => 'run karta aadmi: medium skin, facing right',
+    '🏃🏾‍♂‍➡' => 'run karta aadmi: medium-dark skin, facing right',
+    '🏃🏿‍♂‍➡' => 'run karta aadmi: dark skin, facing right',
     '🫱🏻‍🫲🏼' => 'handshake: Fair skin, medium-fair skin',
     '🫱🏻‍🫲🏽' => 'handshake: Fair skin, medium skin',
     '🫱🏻‍🫲🏾' => 'handshake: Fair skin, medium-dark skin',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handshake: dark skin, medium-fair skin',
     '🫱🏿‍🫲🏽' => 'handshake: dark skin, medium skin',
     '🫱🏿‍🫲🏾' => 'handshake: dark skin, medium-dark skin',
-    '🚶‍♀‍➡' => 'walk karti mahila facing right',
-    '🚶‍♂‍➡' => 'walk karta aadmi facing right',
-    '🧎‍♀‍➡' => 'knees par baithi mahila facing right',
-    '🧎‍♂‍➡' => 'knees par baitha aadmi facing right',
-    '🧑‍🦯‍➡' => 'white cane pakda hua vyakti facing right',
-    '👨‍🦯‍➡' => 'white cane pakda hua aadmi facing right',
-    '👩‍🦯‍➡' => 'white cane pakde hui mahila facing right',
-    '🧑‍🦼‍➡' => 'motor wheelchair par baitha vyakti facing right',
-    '👨‍🦼‍➡' => 'motor wheelchair par baitha aadmi facing right',
-    '👩‍🦼‍➡' => 'motor wheelchair par baithi aurat facing right',
-    '🧑‍🦽‍➡' => 'manual wheelchair par baitha vyakti facing right',
-    '👨‍🦽‍➡' => 'manual wheelchair par baitha aadmi facing right',
-    '👩‍🦽‍➡' => 'manual wheelchair par baithi mahila facing right',
-    '🏃‍♀‍➡' => 'run karti mahila facing right',
-    '🏃‍♂‍➡' => 'run karta aadmi facing right',
+    '🚶‍♀‍➡' => 'walk karti mahila: facing right',
+    '🚶‍♂‍➡' => 'walk karta aadmi: facing right',
+    '🧎‍♀‍➡' => 'knees par baithi mahila: facing right',
+    '🧎‍♂‍➡' => 'knees par baitha aadmi: facing right',
+    '🧑‍🦯‍➡' => 'white cane pakda hua vyakti: facing right',
+    '👨‍🦯‍➡' => 'white cane pakda hua aadmi: facing right',
+    '👩‍🦯‍➡' => 'white cane pakde hui mahila: facing right',
+    '🧑‍🦼‍➡' => 'motor wheelchair par baitha vyakti: facing right',
+    '👨‍🦼‍➡' => 'motor wheelchair par baitha aadmi: facing right',
+    '👩‍🦼‍➡' => 'motor wheelchair par baithi aurat: facing right',
+    '🧑‍🦽‍➡' => 'manual wheelchair par baitha vyakti: facing right',
+    '👨‍🦽‍➡' => 'manual wheelchair par baitha aadmi: facing right',
+    '👩‍🦽‍➡' => 'manual wheelchair par baithi mahila: facing right',
+    '🏃‍♀‍➡' => 'run karti mahila: facing right',
+    '🏃‍♂‍➡' => 'run karta aadmi: facing right',
     '👩‍❤‍👨' => 'heart symbol ke saath couple: woman, man',
     '👨‍❤‍👨' => 'heart symbol ke saath couple: man, man',
     '👩‍❤‍👩' => 'heart symbol ke saath couple: woman, woman',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'person: medium skin, bald',
     '🧑🏾‍🦲' => 'person: medium-dark skin, bald',
     '🧑🏿‍🦲' => 'person: dark skin, bald',
+    '🧑🏻‍🩰' => 'ballet dancer: Fair skin',
+    '🧑🏼‍🩰' => 'ballet dancer: medium-fair skin',
+    '🧑🏽‍🩰' => 'ballet dancer: medium skin',
+    '🧑🏾‍🩰' => 'ballet dancer: medium-dark skin',
+    '🧑🏿‍🩰' => 'ballet dancer: dark skin',
     '🧔🏻‍♂' => 'male: Fair skin, beard',
     '🧔🏼‍♂' => 'male: medium-fair skin, beard',
     '🧔🏽‍♂' => 'male: medium skin, beard',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'walk karti mahila: medium skin',
     '🚶🏾‍♀' => 'walk karti mahila: medium-dark skin',
     '🚶🏿‍♀' => 'walk karti mahila: dark skin',
-    '🚶🏻‍➡' => 'walk karta vyakti facing right',
-    '🚶🏼‍➡' => 'walk karta vyakti facing right',
-    '🚶🏽‍➡' => 'walk karta vyakti facing right',
-    '🚶🏾‍➡' => 'walk karta vyakti facing right',
-    '🚶🏿‍➡' => 'walk karta vyakti facing right',
+    '🚶🏻‍➡' => 'walk karta vyakti: Fair skin, facing right',
+    '🚶🏼‍➡' => 'walk karta vyakti: medium-fair skin, facing right',
+    '🚶🏽‍➡' => 'walk karta vyakti: medium skin, facing right',
+    '🚶🏾‍➡' => 'walk karta vyakti: medium-dark skin, facing right',
+    '🚶🏿‍➡' => 'walk karta vyakti: dark skin, facing right',
     '🧍🏻‍♂' => 'khada aadmi: Fair skin',
     '🧍🏼‍♂' => 'khada aadmi: medium-fair skin',
     '🧍🏽‍♂' => 'khada aadmi: medium skin',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'knees par baithi mahila: medium skin',
     '🧎🏾‍♀' => 'knees par baithi mahila: medium-dark skin',
     '🧎🏿‍♀' => 'knees par baithi mahila: dark skin',
-    '🧎🏻‍➡' => 'knees par baitha vyakti facing right',
-    '🧎🏼‍➡' => 'knees par baitha vyakti facing right',
-    '🧎🏽‍➡' => 'knees par baitha vyakti facing right',
-    '🧎🏾‍➡' => 'knees par baitha vyakti facing right',
-    '🧎🏿‍➡' => 'knees par baitha vyakti facing right',
+    '🧎🏻‍➡' => 'knees par baitha vyakti: Fair skin, facing right',
+    '🧎🏼‍➡' => 'knees par baitha vyakti: medium-fair skin, facing right',
+    '🧎🏽‍➡' => 'knees par baitha vyakti: medium skin, facing right',
+    '🧎🏾‍➡' => 'knees par baitha vyakti: medium-dark skin, facing right',
+    '🧎🏿‍➡' => 'knees par baitha vyakti: dark skin, facing right',
     '🧑🏻‍🦯' => 'white cane pakda hua vyakti: Fair skin',
     '🧑🏼‍🦯' => 'white cane pakda hua vyakti: medium-fair skin',
     '🧑🏽‍🦯' => 'white cane pakda hua vyakti: medium skin',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'run karti mahila: medium skin',
     '🏃🏾‍♀' => 'run karti mahila: medium-dark skin',
     '🏃🏿‍♀' => 'run karti mahila: dark skin',
-    '🏃🏻‍➡' => 'run karta vyakti facing right',
-    '🏃🏼‍➡' => 'run karta vyakti facing right',
-    '🏃🏽‍➡' => 'run karta vyakti facing right',
-    '🏃🏾‍➡' => 'run karta vyakti facing right',
-    '🏃🏿‍➡' => 'run karta vyakti facing right',
+    '🏃🏻‍➡' => 'run karta vyakti: Fair skin, facing right',
+    '🏃🏼‍➡' => 'run karta vyakti: medium-fair skin, facing right',
+    '🏃🏽‍➡' => 'run karta vyakti: medium skin, facing right',
+    '🏃🏾‍➡' => 'run karta vyakti: medium-dark skin, facing right',
+    '🏃🏿‍➡' => 'run karta vyakti: dark skin, facing right',
+    '👯🏻‍♀' => 'khargosh ke kaan wali mahilaayein: Fair skin',
+    '👯🏼‍♀' => 'khargosh ke kaan wali mahilaayein: medium-fair skin',
+    '👯🏽‍♀' => 'khargosh ke kaan wali mahilaayein: medium skin',
+    '👯🏾‍♀' => 'khargosh ke kaan wali mahilaayein: medium-dark skin',
+    '👯🏿‍♀' => 'khargosh ke kaan wali mahilaayein: dark skin',
+    '👯🏻‍♂' => 'khargosh ke kaan wale aadmi: Fair skin',
+    '👯🏼‍♂' => 'khargosh ke kaan wale aadmi: medium-fair skin',
+    '👯🏽‍♂' => 'khargosh ke kaan wale aadmi: medium skin',
+    '👯🏾‍♂' => 'khargosh ke kaan wale aadmi: medium-dark skin',
+    '👯🏿‍♂' => 'khargosh ke kaan wale aadmi: dark skin',
     '🧖🏻‍♂' => 'steamy room mein aadmi: Fair skin',
     '🧖🏼‍♂' => 'steamy room mein aadmi: medium-fair skin',
     '🧖🏽‍♂' => 'steamy room mein aadmi: medium skin',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'cartwheeling karti mahila: medium skin',
     '🤸🏾‍♀' => 'cartwheeling karti mahila: medium-dark skin',
     '🤸🏿‍♀' => 'cartwheeling karti mahila: dark skin',
+    '🤼🏻‍♀' => 'wrestling karti mahilaayein: Fair skin',
+    '🤼🏼‍♀' => 'wrestling karti mahilaayein: medium-fair skin',
+    '🤼🏽‍♀' => 'wrestling karti mahilaayein: medium skin',
+    '🤼🏾‍♀' => 'wrestling karti mahilaayein: medium-dark skin',
+    '🤼🏿‍♀' => 'wrestling karti mahilaayein: dark skin',
+    '🤼🏻‍♂' => 'wrestling karte aadmi: Fair skin',
+    '🤼🏼‍♂' => 'wrestling karte aadmi: medium-fair skin',
+    '🤼🏽‍♂' => 'wrestling karte aadmi: medium skin',
+    '🤼🏾‍♂' => 'wrestling karte aadmi: medium-dark skin',
+    '🤼🏿‍♂' => 'wrestling karte aadmi: dark skin',
     '🤽🏻‍♂' => 'water polo khelta aadmi: Fair skin',
     '🤽🏼‍♂' => 'water polo khelta aadmi: medium-fair skin',
     '🤽🏽‍♂' => 'water polo khelta aadmi: medium skin',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'महिला: घुँघराले बाल',
     '👩‍🦳' => 'महिला: सफ़ेद बाल',
     '👩‍🦲' => 'महिला: गंजा',
-    '🚶‍➡' => 'walk karta vyakti facing right',
-    '🧎‍➡' => 'knees par baitha vyakti facing right',
-    '🏃‍➡' => 'run karta vyakti facing right',
+    '🚶‍➡' => 'walk karta vyakti: facing right',
+    '🧎‍➡' => 'knees par baitha vyakti: facing right',
+    '🏃‍➡' => 'run karta vyakti: facing right',
     '👨‍👦' => 'परिवार: पुरुष, लड़का',
     '👨‍👧' => 'परिवार: पुरुष, लड़की',
     '👩‍👦' => 'परिवार: महिला, लड़का',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'manual wheelchair par baithi mahila',
     '🏃‍♂' => 'run karta aadmi',
     '🏃‍♀' => 'run karti mahila',
+    '🧑‍🩰' => 'बैले डांसर',
     '👯‍♂' => 'khargosh ke kaan wale aadmi',
     '👯‍♀' => 'khargosh ke kaan wali mahilaayein',
     '🧖‍♂' => 'steamy room mein aadmi',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'hawa mein udta suit wala vyakti: medium skin',
     '🕴🏾' => 'hawa mein udta suit wala vyakti: medium-dark skin',
     '🕴🏿' => 'hawa mein udta suit wala vyakti: dark skin',
+    '👯🏻' => 'khargosh ke kaan wale log: Fair skin',
+    '👯🏼' => 'khargosh ke kaan wale log: medium-fair skin',
+    '👯🏽' => 'khargosh ke kaan wale log: medium skin',
+    '👯🏾' => 'khargosh ke kaan wale log: medium-dark skin',
+    '👯🏿' => 'khargosh ke kaan wale log: dark skin',
     '🧖🏻' => 'steamy room mein vyakti: Fair skin',
     '🧖🏼' => 'steamy room mein vyakti: medium-fair skin',
     '🧖🏽' => 'steamy room mein vyakti: medium skin',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'cartwheeling karta vyakti: medium skin',
     '🤸🏾' => 'cartwheeling karta vyakti: medium-dark skin',
     '🤸🏿' => 'cartwheeling karta vyakti: dark skin',
+    '🤼🏻' => 'wrestling karte log: Fair skin',
+    '🤼🏼' => 'wrestling karte log: medium-fair skin',
+    '🤼🏽' => 'wrestling karte log: medium skin',
+    '🤼🏾' => 'wrestling karte log: medium-dark skin',
+    '🤼🏿' => 'wrestling karte log: dark skin',
     '🤽🏻' => 'water polo khelta vyakti: Fair skin',
     '🤽🏼' => 'water polo khelta vyakti: medium-fair skin',
     '🤽🏽' => 'water polo khelta vyakti: medium skin',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'झंडा: चीन',
     '🇨🇴' => 'झंडा: कोलंबिया',
     '🇨🇵' => 'झंडा: क्लिपर्टन द्वीप',
+    '🇨🇶' => 'झंडा: सार्क',
     '🇨🇷' => 'झंडा: कोस्टारिका',
     '🇨🇺' => 'झंडा: क्यूबा',
     '🇨🇻' => 'झंडा: केप वर्ड',
@@ -2390,13 +2547,6 @@
     '🏽' => 'medium skin',
     '🏾' => 'medium-dark skin',
     '🏿' => 'dark skin',
-    '🪉' => 'वीणा',
-    '🪏' => 'फावड़ा',
-    '🪾' => 'bina leaves kaa tree',
-    '🫆' => 'फ़िंगरप्रिंट',
-    '🫜' => 'कंद मूल',
-    '🫟' => 'छींटे',
-    '🫩' => 'baggy under eyes wala face',
     '😀' => 'दाँत दिखाता चेहरा',
     '😃' => 'badi aankhon wala grinning face',
     '😄' => 'smile karti aankhon wala grinning face',
@@ -2450,6 +2600,7 @@
     '😪' => 'उनींदा चेहरा',
     '🤤' => 'लार टपकता चेहरा',
     '😴' => 'सोया हुआ चेहरा',
+    '🫩' => 'baggy under eyes wala face',
     '😷' => 'medical mask wala face',
     '🤒' => 'thermometer wala face',
     '🤕' => 'head-bandage wala face',
@@ -2476,6 +2627,7 @@
     '😯' => 'आश्चर्यचकित चेहरा',
     '😲' => 'पूरी तरह स्तंभित चेहरा',
     '😳' => 'विस्मित चेहरा',
+    '🫪' => 'विकृत चेहरा',
     '🥺' => 'करुण चेहरा',
     '🥹' => 'Aansoo rokta face',
     '😦' => 'open mouth wala frowning face',
@@ -2547,6 +2699,7 @@
     '💋' => 'चुंबन का निशान',
     '💯' => '100 अंक',
     '💢' => 'गुस्से का चिह्न',
+    '🫯' => 'घमासान झगड़े से बना धूल का गुब्बार',
     '💥' => 'टक्कर',
     '💫' => 'तारे दिखना',
     '💦' => 'sweating ke droplets',
@@ -2670,6 +2823,7 @@
     '🧞' => 'जिन्न',
     '🧟' => 'ज़ॉम्बी',
     '🧌' => 'ट्रॉल',
+    '🫈' => 'बालों वाला प्राणी',
     '💆' => 'massage karwaata vyakti',
     '💇' => 'haircut leta vyakti',
     '🚶' => 'walk karta vyakti',
@@ -2713,6 +2867,7 @@
     '🫂' => 'hug karte huye log',
     '👪' => 'परिवार',
     '👣' => 'पदचिह्न',
+    '🫆' => 'फ़िंगरप्रिंट',
     '🦰' => 'लाल बाल',
     '🦱' => 'घुँघराले बाल',
     '🦳' => 'सफ़ेद बाल',
@@ -2812,6 +2967,7 @@
     '🐳' => 'spout karti whale',
     '🐋' => 'ह्वेल',
     '🐬' => 'डॉल्फ़िन',
+    '🫍' => 'ओर्का',
     '🦭' => 'सील',
     '🐟' => 'मछली',
     '🐠' => 'ऊष्णकटिबंधीय मछली',
@@ -2821,6 +2977,11 @@
     '🐚' => 'गोल शंख',
     '🪸' => 'कोरल',
     '🪼' => 'जेलीफ़िश',
+    '🦀' => 'कर्कट',
+    '🦞' => 'झींगा मछली',
+    '🦐' => 'झींगा',
+    '🦑' => 'स्क्विड',
+    '🦪' => 'सीप',
     '🐌' => 'घोंघा',
     '🦋' => 'तितली',
     '🐛' => 'इल्ली',
@@ -2865,6 +3026,7 @@
     '🪹' => 'Khaali nest',
     '🪺' => 'eggs wala nest',
     '🍄' => 'मशरूम',
+    '🪾' => 'bina leaves kaa tree',
     '🍇' => 'अंगूर, फल',
     '🍈' => 'खरबूजा, फल',
     '🍉' => 'तरबूज़',
@@ -2901,6 +3063,7 @@
     '🌰' => 'चेस्टनट',
     '🫚' => 'अदरक की जड़',
     '🫛' => 'मटर की फली',
+    '🫜' => 'कंद मूल',
     '🍞' => 'ब्रेड',
     '🥐' => 'क्रोइसैन',
     '🥖' => 'बीगट ब्रेड',
@@ -2952,11 +3115,6 @@
     '🥟' => 'भरावनयुक्त मीठी या नमकीन पकौड़ियाँ',
     '🥠' => 'फॉर्चून कुकी',
     '🥡' => 'टेकआउट बॉक्स',
-    '🦀' => 'कर्कट',
-    '🦞' => 'झींगा मछली',
-    '🦐' => 'झींगा',
-    '🦑' => 'स्क्विड',
-    '🦪' => 'सीप',
     '🍦' => 'सॉफ़्ट आइसक्रीम',
     '🍧' => 'पीसी बर्फ़',
     '🍨' => 'आइसक्रीम',
@@ -3007,6 +3165,7 @@
     '🧭' => 'दिशासूचक',
     '🏔' => 'बर्फीले शिखर वाला पर्वत, बर्फ',
     '⛰' => 'पहाड़',
+    '🛘' => 'भूस्खलन',
     '🌋' => 'ज्वालामुखी',
     '🗻' => 'mount fuji',
     '🏕' => 'तंबू, तंबू लगाना',
@@ -3367,16 +3526,17 @@
     '🎧' => 'हेडफ़ोन',
     '📻' => 'रेडियो',
     '🎷' => 'सैक्सोफ़ोन',
+    '🎺' => 'तुरही',
     '🪗' => 'अकॉर्डियन',
     '🎸' => 'गिटार',
     '🎹' => 'संगीत कीबोर्ड',
-    '🎺' => 'तुरही',
     '🎻' => 'वायलिन',
     '🪕' => 'बैंजो',
     '🥁' => 'ड्रम',
     '🪘' => 'long drum',
     '🪇' => 'मराकस',
     '🪈' => 'बांसुरी',
+    '🪉' => 'हार्प',
     '📱' => 'मोबाइल फ़ोन',
     '📲' => 'arrow ke saath mobile phone',
     '☎' => 'टेलीफ़ोन',
@@ -3430,8 +3590,9 @@
     '📑' => 'बुकमार्क टैब',
     '🔖' => 'बुकमार्क',
     '🏷' => 'लेबल',
-    '💰' => 'paise wala bag',
     '🪙' => 'सिक्का',
+    '💰' => 'paise wala bag',
+    '🪎' => 'खज़ाने का संदूक',
     '💴' => 'येन नोट',
     '💵' => 'डॉलर नोट, बैंकनोट',
     '💶' => 'यूरो नोट',
@@ -3514,6 +3675,7 @@
     '🧰' => 'टूलबॉक्स',
     '🧲' => 'चुंबक',
     '🪜' => 'सीढ़ी',
+    '🪏' => 'फावड़ा',
     '⚗' => 'रासायनिक उपकरण',
     '🧪' => 'टेस्ट ट्यूब',
     '🧫' => 'पेट्री डिश',
@@ -3603,7 +3765,7 @@
     '⤴' => 'oopar ki taraf muda hua right arrow',
     '⤵' => 'neeche ki taraf muda hua right arrow',
     '🔃' => 'घड़ी की दिशा में लंबवत तीर',
-    '🔄' => 'anticlockwise arrows button',
+    '🔄' => 'घड़ी की उल्टी दिशा में तीर',
     '🔙' => 'वापस तीर',
     '🔚' => 'END के साथ तीर',
     '🔛' => 'on! तीर',
@@ -3697,6 +3859,7 @@
     '✴' => '8 point wala star',
     '❇' => 'जगमगाहट',
     '™' => 'ट्रेड मार्क चिह्न',
+    '🫟' => 'छींटे',
     '🔠' => 'इनपुट लैटिन अपरकेस',
     '🔡' => 'इनपुट लैटिन लोअरकेस अक्षर',
     '🔢' => 'अंक डालें',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hi.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'चुंबन: महिला, महिला, साँवली त्वचा, गेहुँआ त्वचा',
     '👩🏿‍❤‍💋‍👩🏾' => 'चुंबन: महिला, महिला, साँवली त्वचा, हल्की साँवली त्वचा',
     '👩🏿‍❤‍💋‍👩🏿' => 'चुंबन: महिला, महिला, साँवली त्वचा',
+    '🧑🏻‍🫯‍🧑🏼' => 'पहलवान: गोरी त्वचा, हल्की गोरी त्वचा',
+    '🧑🏻‍🫯‍🧑🏽' => 'पहलवान: गोरी त्वचा, गेहुँआ त्वचा',
+    '🧑🏻‍🫯‍🧑🏾' => 'पहलवान: गोरी त्वचा, हल्की साँवली त्वचा',
+    '🧑🏻‍🫯‍🧑🏿' => 'पहलवान: गोरी त्वचा, साँवली त्वचा',
+    '🧑🏼‍🫯‍🧑🏻' => 'पहलवान: हल्की गोरी त्वचा, गोरी त्वचा',
+    '🧑🏼‍🫯‍🧑🏽' => 'पहलवान: हल्की गोरी त्वचा, गेहुँआ त्वचा',
+    '🧑🏼‍🫯‍🧑🏾' => 'पहलवान: हल्की गोरी त्वचा, हल्की साँवली त्वचा',
+    '🧑🏼‍🫯‍🧑🏿' => 'पहलवान: हल्की गोरी त्वचा, साँवली त्वचा',
+    '🧑🏽‍🫯‍🧑🏻' => 'पहलवान: गेहुँआ त्वचा, गोरी त्वचा',
+    '🧑🏽‍🫯‍🧑🏼' => 'पहलवान: गेहुँआ त्वचा, हल्की गोरी त्वचा',
+    '🧑🏽‍🫯‍🧑🏾' => 'पहलवान: गेहुँआ त्वचा, हल्की साँवली त्वचा',
+    '🧑🏽‍🫯‍🧑🏿' => 'पहलवान: गेहुँआ त्वचा, साँवली त्वचा',
+    '🧑🏾‍🫯‍🧑🏻' => 'पहलवान: हल्की साँवली त्वचा, गोरी त्वचा',
+    '🧑🏾‍🫯‍🧑🏼' => 'पहलवान: हल्की साँवली त्वचा, हल्की गोरी त्वचा',
+    '🧑🏾‍🫯‍🧑🏽' => 'पहलवान: हल्की साँवली त्वचा, गेहुँआ त्वचा',
+    '🧑🏾‍🫯‍🧑🏿' => 'पहलवान: हल्की साँवली त्वचा, साँवली त्वचा',
+    '🧑🏿‍🫯‍🧑🏻' => 'पहलवान: साँवली त्वचा, गोरी त्वचा',
+    '🧑🏿‍🫯‍🧑🏼' => 'पहलवान: साँवली त्वचा, हल्की गोरी त्वचा',
+    '🧑🏿‍🫯‍🧑🏽' => 'पहलवान: साँवली त्वचा, गेहुँआ त्वचा',
+    '🧑🏿‍🫯‍🧑🏾' => 'पहलवान: साँवली त्वचा, हल्की साँवली त्वचा',
     '🧑🏻‍❤‍🧑🏼' => 'दिल वाली जोड़ी: व्यक्ति, व्यक्ति, गोरी त्वचा, हल्की गोरी त्वचा',
     '🧑🏻‍❤‍🧑🏽' => 'दिल वाली जोड़ी: व्यक्ति, व्यक्ति, गोरी त्वचा, गेहुँआ त्वचा',
     '🧑🏻‍❤‍🧑🏾' => 'दिल वाली जोड़ी: व्यक्ति, व्यक्ति, गोरी त्वचा, हल्की साँवली त्वचा',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'दिल वाली जोड़ी: व्यक्ति, व्यक्ति, साँवली त्वचा, हल्की गोरी त्वचा',
     '🧑🏿‍❤‍🧑🏽' => 'दिल वाली जोड़ी: व्यक्ति, व्यक्ति, साँवली त्वचा, गेहुँआ त्वचा',
     '🧑🏿‍❤‍🧑🏾' => 'दिल वाली जोड़ी: व्यक्ति, व्यक्ति, साँवली त्वचा, हल्की साँवली त्वचा',
+    '🧑🏻‍🐰‍🧑🏼' => 'खरगोश के कान वाले लोग: गोरी त्वचा, हल्की गोरी त्वचा',
+    '🧑🏻‍🐰‍🧑🏽' => 'खरगोश के कान वाले लोग: गोरी त्वचा, गेहुँआ त्वचा',
+    '🧑🏻‍🐰‍🧑🏾' => 'खरगोश के कान वाले लोग: गोरी त्वचा, हल्की साँवली त्वचा',
+    '🧑🏻‍🐰‍🧑🏿' => 'खरगोश के कान वाले लोग: गोरी त्वचा, साँवली त्वचा',
+    '🧑🏼‍🐰‍🧑🏻' => 'खरगोश के कान वाले लोग: हल्की गोरी त्वचा, गोरी त्वचा',
+    '🧑🏼‍🐰‍🧑🏽' => 'खरगोश के कान वाले लोग: हल्की गोरी त्वचा, गेहुँआ त्वचा',
+    '🧑🏼‍🐰‍🧑🏾' => 'खरगोश के कान वाले लोग: हल्की गोरी त्वचा, हल्की साँवली त्वचा',
+    '🧑🏼‍🐰‍🧑🏿' => 'खरगोश के कान वाले लोग: हल्की गोरी त्वचा, साँवली त्वचा',
+    '🧑🏽‍🐰‍🧑🏻' => 'खरगोश के कान वाले लोग: गेहुँआ त्वचा, गोरी त्वचा',
+    '🧑🏽‍🐰‍🧑🏼' => 'खरगोश के कान वाले लोग: गेहुँआ त्वचा, हल्की गोरी त्वचा',
+    '🧑🏽‍🐰‍🧑🏾' => 'खरगोश के कान वाले लोग: गेहुँआ त्वचा, हल्की साँवली त्वचा',
+    '🧑🏽‍🐰‍🧑🏿' => 'खरगोश के कान वाले लोग: गेहुँआ त्वचा, साँवली त्वचा',
+    '🧑🏾‍🐰‍🧑🏻' => 'खरगोश के कान वाले लोग: हल्की साँवली त्वचा, गोरी त्वचा',
+    '🧑🏾‍🐰‍🧑🏼' => 'खरगोश के कान वाले लोग: हल्की साँवली त्वचा, हल्की गोरी त्वचा',
+    '🧑🏾‍🐰‍🧑🏽' => 'खरगोश के कान वाले लोग: हल्की साँवली त्वचा, गेहुँआ त्वचा',
+    '🧑🏾‍🐰‍🧑🏿' => 'खरगोश के कान वाले लोग: हल्की साँवली त्वचा, साँवली त्वचा',
+    '🧑🏿‍🐰‍🧑🏻' => 'खरगोश के कान वाले लोग: साँवली त्वचा, गोरी त्वचा',
+    '🧑🏿‍🐰‍🧑🏼' => 'खरगोश के कान वाले लोग: साँवली त्वचा, हल्की गोरी त्वचा',
+    '🧑🏿‍🐰‍🧑🏽' => 'खरगोश के कान वाले लोग: साँवली त्वचा, गेहुँआ त्वचा',
+    '🧑🏿‍🐰‍🧑🏾' => 'खरगोश के कान वाले लोग: साँवली त्वचा, हल्की साँवली त्वचा',
+    '👨🏻‍🫯‍👨🏼' => 'पुरुष पहलवान: गोरी त्वचा, हल्की गोरी त्वचा',
+    '👨🏻‍🫯‍👨🏽' => 'पुरुष पहलवान: गोरी त्वचा, गेहुँआ त्वचा',
+    '👨🏻‍🫯‍👨🏾' => 'पुरुष पहलवान: गोरी त्वचा, हल्की साँवली त्वचा',
+    '👨🏻‍🫯‍👨🏿' => 'पुरुष पहलवान: गोरी त्वचा, साँवली त्वचा',
+    '👨🏼‍🫯‍👨🏻' => 'पुरुष पहलवान: हल्की गोरी त्वचा, गोरी त्वचा',
+    '👨🏼‍🫯‍👨🏽' => 'पुरुष पहलवान: हल्की गोरी त्वचा, गेहुँआ त्वचा',
+    '👨🏼‍🫯‍👨🏾' => 'पुरुष पहलवान: हल्की गोरी त्वचा, हल्की साँवली त्वचा',
+    '👨🏼‍🫯‍👨🏿' => 'पुरुष पहलवान: हल्की गोरी त्वचा, साँवली त्वचा',
+    '👨🏽‍🫯‍👨🏻' => 'पुरुष पहलवान: गेहुँआ त्वचा, गोरी त्वचा',
+    '👨🏽‍🫯‍👨🏼' => 'पुरुष पहलवान: गेहुँआ त्वचा, हल्की गोरी त्वचा',
+    '👨🏽‍🫯‍👨🏾' => 'पुरुष पहलवान: गेहुँआ त्वचा, हल्की साँवली त्वचा',
+    '👨🏽‍🫯‍👨🏿' => 'पुरुष पहलवान: गेहुँआ त्वचा, साँवली त्वचा',
+    '👨🏾‍🫯‍👨🏻' => 'पुरुष पहलवान: हल्की साँवली त्वचा, गोरी त्वचा',
+    '👨🏾‍🫯‍👨🏼' => 'पुरुष पहलवान: हल्की साँवली त्वचा, हल्की गोरी त्वचा',
+    '👨🏾‍🫯‍👨🏽' => 'पुरुष पहलवान: हल्की साँवली त्वचा, गेहुँआ त्वचा',
+    '👨🏾‍🫯‍👨🏿' => 'पुरुष पहलवान: हल्की साँवली त्वचा, साँवली त्वचा',
+    '👨🏿‍🫯‍👨🏻' => 'पुरुष पहलवान: साँवली त्वचा, गोरी त्वचा',
+    '👨🏿‍🫯‍👨🏼' => 'पुरुष पहलवान: साँवली त्वचा, हल्की गोरी त्वचा',
+    '👨🏿‍🫯‍👨🏽' => 'पुरुष पहलवान: साँवली त्वचा, गेहुँआ त्वचा',
+    '👨🏿‍🫯‍👨🏾' => 'पुरुष पहलवान: साँवली त्वचा, हल्की साँवली त्वचा',
     '👨🏻‍❤‍👨🏻' => 'दिल वाली जोड़ी: पुरुष, पुरुष, गोरी त्वचा',
     '👨🏻‍❤‍👨🏼' => 'दिल वाली जोड़ी: पुरुष, पुरुष, गोरी त्वचा, हल्की गोरी त्वचा',
     '👨🏻‍❤‍👨🏽' => 'दिल वाली जोड़ी: पुरुष, पुरुष, गोरी त्वचा, गेहुँआ त्वचा',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'दिल वाली जोड़ी: पुरुष, पुरुष, साँवली त्वचा, गेहुँआ त्वचा',
     '👨🏿‍❤‍👨🏾' => 'दिल वाली जोड़ी: पुरुष, पुरुष, साँवली त्वचा, हल्की साँवली त्वचा',
     '👨🏿‍❤‍👨🏿' => 'दिल वाली जोड़ी: पुरुष, पुरुष, साँवली त्वचा',
+    '👨🏻‍🐰‍👨🏼' => 'खरगोश के कान वाले पुरुष: गोरी त्वचा, हल्की गोरी त्वचा',
+    '👨🏻‍🐰‍👨🏽' => 'खरगोश के कान वाले पुरुष: गोरी त्वचा, गेहुँआ त्वचा',
+    '👨🏻‍🐰‍👨🏾' => 'खरगोश के कान वाले पुरुष: गोरी त्वचा, हल्की साँवली त्वचा',
+    '👨🏻‍🐰‍👨🏿' => 'खरगोश के कान वाले पुरुष: गोरी त्वचा, साँवली त्वचा',
+    '👨🏼‍🐰‍👨🏻' => 'खरगोश के कान वाले पुरुष: हल्की गोरी त्वचा, गोरी त्वचा',
+    '👨🏼‍🐰‍👨🏽' => 'खरगोश के कान वाले पुरुष: हल्की गोरी त्वचा, गेहुँआ त्वचा',
+    '👨🏼‍🐰‍👨🏾' => 'खरगोश के कान वाले पुरुष: हल्की गोरी त्वचा, हल्की साँवली त्वचा',
+    '👨🏼‍🐰‍👨🏿' => 'खरगोश के कान वाले पुरुष: हल्की गोरी त्वचा, साँवली त्वचा',
+    '👨🏽‍🐰‍👨🏻' => 'खरगोश के कान वाले पुरुष: गेहुँआ त्वचा, गोरी त्वचा',
+    '👨🏽‍🐰‍👨🏼' => 'खरगोश के कान वाले पुरुष: गेहुँआ त्वचा, हल्की गोरी त्वचा',
+    '👨🏽‍🐰‍👨🏾' => 'खरगोश के कान वाले पुरुष: गेहुँआ त्वचा, हल्की साँवली त्वचा',
+    '👨🏽‍🐰‍👨🏿' => 'खरगोश के कान वाले पुरुष: गेहुँआ त्वचा, साँवली त्वचा',
+    '👨🏾‍🐰‍👨🏻' => 'खरगोश के कान वाले पुरुष: हल्की साँवली त्वचा, गोरी त्वचा',
+    '👨🏾‍🐰‍👨🏼' => 'खरगोश के कान वाले पुरुष: हल्की साँवली त्वचा, हल्की गोरी त्वचा',
+    '👨🏾‍🐰‍👨🏽' => 'खरगोश के कान वाले पुरुष: हल्की साँवली त्वचा, गेहुँआ त्वचा',
+    '👨🏾‍🐰‍👨🏿' => 'खरगोश के कान वाले पुरुष: हल्की साँवली त्वचा, साँवली त्वचा',
+    '👨🏿‍🐰‍👨🏻' => 'खरगोश के कान वाले पुरुष: साँवली त्वचा, गोरी त्वचा',
+    '👨🏿‍🐰‍👨🏼' => 'खरगोश के कान वाले पुरुष: साँवली त्वचा, हल्की गोरी त्वचा',
+    '👨🏿‍🐰‍👨🏽' => 'खरगोश के कान वाले पुरुष: साँवली त्वचा, गेहुँआ त्वचा',
+    '👨🏿‍🐰‍👨🏾' => 'खरगोश के कान वाले पुरुष: साँवली त्वचा, हल्की साँवली त्वचा',
+    '👩🏻‍🫯‍👩🏼' => 'महिला पहलवान: गोरी त्वचा, हल्की गोरी त्वचा',
+    '👩🏻‍🫯‍👩🏽' => 'महिला पहलवान: गोरी त्वचा, गेहुँआ त्वचा',
+    '👩🏻‍🫯‍👩🏾' => 'महिला पहलवान: गोरी त्वचा, हल्की साँवली त्वचा',
+    '👩🏻‍🫯‍👩🏿' => 'महिला पहलवान: गोरी त्वचा, साँवली त्वचा',
+    '👩🏼‍🫯‍👩🏻' => 'महिला पहलवान: हल्की गोरी त्वचा, गोरी त्वचा',
+    '👩🏼‍🫯‍👩🏽' => 'महिला पहलवान: हल्की गोरी त्वचा, गेहुँआ त्वचा',
+    '👩🏼‍🫯‍👩🏾' => 'महिला पहलवान: हल्की गोरी त्वचा, हल्की साँवली त्वचा',
+    '👩🏼‍🫯‍👩🏿' => 'महिला पहलवान: हल्की गोरी त्वचा, साँवली त्वचा',
+    '👩🏽‍🫯‍👩🏻' => 'महिला पहलवान: गेहुँआ त्वचा, गोरी त्वचा',
+    '👩🏽‍🫯‍👩🏼' => 'महिला पहलवान: गेहुँआ त्वचा, हल्की गोरी त्वचा',
+    '👩🏽‍🫯‍👩🏾' => 'महिला पहलवान: गेहुँआ त्वचा, हल्की साँवली त्वचा',
+    '👩🏽‍🫯‍👩🏿' => 'महिला पहलवान: गेहुँआ त्वचा, साँवली त्वचा',
+    '👩🏾‍🫯‍👩🏻' => 'महिला पहलवान: हल्की साँवली त्वचा, गोरी त्वचा',
+    '👩🏾‍🫯‍👩🏼' => 'महिला पहलवान: हल्की साँवली त्वचा, हल्की गोरी त्वचा',
+    '👩🏾‍🫯‍👩🏽' => 'महिला पहलवान: हल्की साँवली त्वचा, गेहुँआ त्वचा',
+    '👩🏾‍🫯‍👩🏿' => 'महिला पहलवान: हल्की साँवली त्वचा, साँवली त्वचा',
+    '👩🏿‍🫯‍👩🏻' => 'महिला पहलवान: साँवली त्वचा, गोरी त्वचा',
+    '👩🏿‍🫯‍👩🏼' => 'महिला पहलवान: साँवली त्वचा, हल्की गोरी त्वचा',
+    '👩🏿‍🫯‍👩🏽' => 'महिला पहलवान: साँवली त्वचा, गेहुँआ त्वचा',
+    '👩🏿‍🫯‍👩🏾' => 'महिला पहलवान: साँवली त्वचा, हल्की साँवली त्वचा',
     '👩🏻‍❤‍👨🏻' => 'दिल वाली जोड़ी: महिला, पुरुष, गोरी त्वचा',
     '👩🏻‍❤‍👨🏼' => 'दिल वाली जोड़ी: महिला, पुरुष, गोरी त्वचा, हल्की गोरी त्वचा',
     '👩🏻‍❤‍👨🏽' => 'दिल वाली जोड़ी: महिला, पुरुष, गोरी त्वचा, गेहुँआ त्वचा',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'दिल वाली जोड़ी: महिला, महिला, साँवली त्वचा, गेहुँआ त्वचा',
     '👩🏿‍❤‍👩🏾' => 'दिल वाली जोड़ी: महिला, महिला, साँवली त्वचा, हल्की साँवली त्वचा',
     '👩🏿‍❤‍👩🏿' => 'दिल वाली जोड़ी: महिला, महिला, साँवली त्वचा',
+    '👩🏻‍🐰‍👩🏼' => 'खरगोश के कान वाली महिलाएँ: गोरी त्वचा, हल्की गोरी त्वचा',
+    '👩🏻‍🐰‍👩🏽' => 'खरगोश के कान वाली महिलाएँ: गोरी त्वचा, गेहुँआ त्वचा',
+    '👩🏻‍🐰‍👩🏾' => 'खरगोश के कान वाली महिलाएँ: गोरी त्वचा, हल्की साँवली त्वचा',
+    '👩🏻‍🐰‍👩🏿' => 'खरगोश के कान वाली महिलाएँ: गोरी त्वचा, साँवली त्वचा',
+    '👩🏼‍🐰‍👩🏻' => 'खरगोश के कान वाली महिलाएँ: हल्की गोरी त्वचा, गोरी त्वचा',
+    '👩🏼‍🐰‍👩🏽' => 'खरगोश के कान वाली महिलाएँ: हल्की गोरी त्वचा, गेहुँआ त्वचा',
+    '👩🏼‍🐰‍👩🏾' => 'खरगोश के कान वाली महिलाएँ: हल्की गोरी त्वचा, हल्की साँवली त्वचा',
+    '👩🏼‍🐰‍👩🏿' => 'खरगोश के कान वाली महिलाएँ: हल्की गोरी त्वचा, साँवली त्वचा',
+    '👩🏽‍🐰‍👩🏻' => 'खरगोश के कान वाली महिलाएँ: गेहुँआ त्वचा, गोरी त्वचा',
+    '👩🏽‍🐰‍👩🏼' => 'खरगोश के कान वाली महिलाएँ: गेहुँआ त्वचा, हल्की गोरी त्वचा',
+    '👩🏽‍🐰‍👩🏾' => 'खरगोश के कान वाली महिलाएँ: गेहुँआ त्वचा, हल्की साँवली त्वचा',
+    '👩🏽‍🐰‍👩🏿' => 'खरगोश के कान वाली महिलाएँ: गेहुँआ त्वचा, साँवली त्वचा',
+    '👩🏾‍🐰‍👩🏻' => 'खरगोश के कान वाली महिलाएँ: हल्की साँवली त्वचा, गोरी त्वचा',
+    '👩🏾‍🐰‍👩🏼' => 'खरगोश के कान वाली महिलाएँ: हल्की साँवली त्वचा, हल्की गोरी त्वचा',
+    '👩🏾‍🐰‍👩🏽' => 'खरगोश के कान वाली महिलाएँ: हल्की साँवली त्वचा, गेहुँआ त्वचा',
+    '👩🏾‍🐰‍👩🏿' => 'खरगोश के कान वाली महिलाएँ: हल्की साँवली त्वचा, साँवली त्वचा',
+    '👩🏿‍🐰‍👩🏻' => 'खरगोश के कान वाली महिलाएँ: साँवली त्वचा, गोरी त्वचा',
+    '👩🏿‍🐰‍👩🏼' => 'खरगोश के कान वाली महिलाएँ: साँवली त्वचा, हल्की गोरी त्वचा',
+    '👩🏿‍🐰‍👩🏽' => 'खरगोश के कान वाली महिलाएँ: साँवली त्वचा, गेहुँआ त्वचा',
+    '👩🏿‍🐰‍👩🏾' => 'खरगोश के कान वाली महिलाएँ: साँवली त्वचा, हल्की साँवली त्वचा',
     '🧑🏻‍🤝‍🧑🏻' => 'हाथ पकड़े हुए लोग: गोरी त्वचा',
     '🧑🏻‍🤝‍🧑🏼' => 'हाथ पकड़े हुए लोग: गोरी त्वचा, हल्की गोरी त्वचा',
     '🧑🏻‍🤝‍🧑🏽' => 'हाथ पकड़े हुए लोग: गोरी त्वचा, गेहुँआ त्वचा',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'झंडा: स्कॉटलैंड',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'झंडा: वेल्स',
     '🧑‍🧑‍🧒‍🧒' => 'परिवार: वयस्क, वयस्क, बच्चा, बच्चा',
-    '🚶🏻‍♀‍➡' => 'पैदल चलती महिला दाईं ओर चेहरा घुमाए',
-    '🚶🏼‍♀‍➡' => 'पैदल चलती महिला दाईं ओर चेहरा घुमाए',
-    '🚶🏽‍♀‍➡' => 'पैदल चलती महिला दाईं ओर चेहरा घुमाए',
-    '🚶🏾‍♀‍➡' => 'पैदल चलती महिला दाईं ओर चेहरा घुमाए',
-    '🚶🏿‍♀‍➡' => 'पैदल चलती महिला दाईं ओर चेहरा घुमाए',
-    '🚶🏻‍♂‍➡' => 'पैदल चलता पुरुष दाईं ओर चेहरा घुमाए',
-    '🚶🏼‍♂‍➡' => 'पैदल चलता पुरुष दाईं ओर चेहरा घुमाए',
-    '🚶🏽‍♂‍➡' => 'पैदल चलता पुरुष दाईं ओर चेहरा घुमाए',
-    '🚶🏾‍♂‍➡' => 'पैदल चलता पुरुष दाईं ओर चेहरा घुमाए',
-    '🚶🏿‍♂‍➡' => 'पैदल चलता पुरुष दाईं ओर चेहरा घुमाए',
-    '🧎🏻‍♀‍➡' => 'औरत घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧎🏼‍♀‍➡' => 'औरत घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧎🏽‍♀‍➡' => 'औरत घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧎🏾‍♀‍➡' => 'औरत घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧎🏿‍♀‍➡' => 'औरत घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧎🏻‍♂‍➡' => 'आदमी घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧎🏼‍♂‍➡' => 'आदमी घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧎🏽‍♂‍➡' => 'आदमी घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧎🏾‍♂‍➡' => 'आदमी घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧎🏿‍♂‍➡' => 'आदमी घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧑🏻‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '🧑🏼‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '🧑🏽‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '🧑🏾‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '🧑🏿‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏻‍🦯‍➡' => 'छड़ी लिया हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏼‍🦯‍➡' => 'छड़ी लिया हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏽‍🦯‍➡' => 'छड़ी लिया हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏾‍🦯‍➡' => 'छड़ी लिया हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏿‍🦯‍➡' => 'छड़ी लिया हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '👩🏻‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत दाईं ओर चेहरा घुमाए',
-    '👩🏼‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत दाईं ओर चेहरा घुमाए',
-    '👩🏽‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत दाईं ओर चेहरा घुमाए',
-    '👩🏾‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत दाईं ओर चेहरा घुमाए',
-    '👩🏿‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत दाईं ओर चेहरा घुमाए',
-    '🧑🏻‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧑🏼‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧑🏽‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧑🏾‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧑🏿‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '👨🏻‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏼‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏽‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏾‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏿‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👩🏻‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '👩🏼‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '👩🏽‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '👩🏾‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '👩🏿‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '🧑🏻‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧑🏼‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧑🏽‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧑🏾‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧑🏿‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '👨🏻‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏼‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏽‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏾‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👨🏿‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👩🏻‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '👩🏼‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '👩🏽‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '👩🏾‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '👩🏿‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '🏃🏻‍♀‍➡' => 'दौड़ती हुई महिला दाईं ओर चेहरा घुमाए',
-    '🏃🏼‍♀‍➡' => 'दौड़ती हुई महिला दाईं ओर चेहरा घुमाए',
-    '🏃🏽‍♀‍➡' => 'दौड़ती हुई महिला दाईं ओर चेहरा घुमाए',
-    '🏃🏾‍♀‍➡' => 'दौड़ती हुई महिला दाईं ओर चेहरा घुमाए',
-    '🏃🏿‍♀‍➡' => 'दौड़ती हुई महिला दाईं ओर चेहरा घुमाए',
-    '🏃🏻‍♂‍➡' => 'दौड़ता हुआ पुरुष दाईं ओर चेहरा घुमाए',
-    '🏃🏼‍♂‍➡' => 'दौड़ता हुआ पुरुष दाईं ओर चेहरा घुमाए',
-    '🏃🏽‍♂‍➡' => 'दौड़ता हुआ पुरुष दाईं ओर चेहरा घुमाए',
-    '🏃🏾‍♂‍➡' => 'दौड़ता हुआ पुरुष दाईं ओर चेहरा घुमाए',
-    '🏃🏿‍♂‍➡' => 'दौड़ता हुआ पुरुष दाईं ओर चेहरा घुमाए',
+    '🚶🏻‍♀‍➡' => 'पैदल चलती महिला: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏼‍♀‍➡' => 'पैदल चलती महिला: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏽‍♀‍➡' => 'पैदल चलती महिला: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏾‍♀‍➡' => 'पैदल चलती महिला: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏿‍♀‍➡' => 'पैदल चलती महिला: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏻‍♂‍➡' => 'पैदल चलता पुरुष: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏼‍♂‍➡' => 'पैदल चलता पुरुष: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏽‍♂‍➡' => 'पैदल चलता पुरुष: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏾‍♂‍➡' => 'पैदल चलता पुरुष: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏿‍♂‍➡' => 'पैदल चलता पुरुष: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏻‍♀‍➡' => 'औरत घुटनों के बल: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏼‍♀‍➡' => 'औरत घुटनों के बल: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏽‍♀‍➡' => 'औरत घुटनों के बल: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏾‍♀‍➡' => 'औरत घुटनों के बल: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏿‍♀‍➡' => 'औरत घुटनों के बल: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏻‍♂‍➡' => 'आदमी घुटनों के बल: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏼‍♂‍➡' => 'आदमी घुटनों के बल: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏽‍♂‍➡' => 'आदमी घुटनों के बल: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏾‍♂‍➡' => 'आदमी घुटनों के बल: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏿‍♂‍➡' => 'आदमी घुटनों के बल: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏻‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏼‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏽‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏾‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏿‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏻‍🦯‍➡' => 'छड़ी लिया हुआ आदमी: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏼‍🦯‍➡' => 'छड़ी लिया हुआ आदमी: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏽‍🦯‍➡' => 'छड़ी लिया हुआ आदमी: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏾‍🦯‍➡' => 'छड़ी लिया हुआ आदमी: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏿‍🦯‍➡' => 'छड़ी लिया हुआ आदमी: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏻‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏼‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏽‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏾‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏿‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏻‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏼‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏽‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏾‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏿‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏻‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏼‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏽‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏾‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏿‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏻‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏼‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏽‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏾‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏿‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏻‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏼‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏽‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏾‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧑🏿‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏻‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏼‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏽‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏾‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👨🏿‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏻‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏼‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏽‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏾‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👩🏿‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏻‍♀‍➡' => 'दौड़ती हुई महिला: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏼‍♀‍➡' => 'दौड़ती हुई महिला: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏽‍♀‍➡' => 'दौड़ती हुई महिला: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏾‍♀‍➡' => 'दौड़ती हुई महिला: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏿‍♀‍➡' => 'दौड़ती हुई महिला: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏻‍♂‍➡' => 'दौड़ता हुआ पुरुष: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏼‍♂‍➡' => 'दौड़ता हुआ पुरुष: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏽‍♂‍➡' => 'दौड़ता हुआ पुरुष: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏾‍♂‍➡' => 'दौड़ता हुआ पुरुष: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏿‍♂‍➡' => 'दौड़ता हुआ पुरुष: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
     '🫱🏻‍🫲🏼' => 'हाथ मिलाना: गोरी त्वचा, हल्की गोरी त्वचा',
     '🫱🏻‍🫲🏽' => 'हाथ मिलाना: गोरी त्वचा, गेहुँआ त्वचा',
     '🫱🏻‍🫲🏾' => 'हाथ मिलाना: गोरी त्वचा, हल्की साँवली त्वचा',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'हाथ मिलाना: साँवली त्वचा, हल्की गोरी त्वचा',
     '🫱🏿‍🫲🏽' => 'हाथ मिलाना: साँवली त्वचा, गेहुँआ त्वचा',
     '🫱🏿‍🫲🏾' => 'हाथ मिलाना: साँवली त्वचा, हल्की साँवली त्वचा',
-    '🚶‍♀‍➡' => 'पैदल चलती महिला दाईं ओर चेहरा घुमाए',
-    '🚶‍♂‍➡' => 'पैदल चलता पुरुष दाईं ओर चेहरा घुमाए',
-    '🧎‍♀‍➡' => 'औरत घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧎‍♂‍➡' => 'आदमी घुटनों के बल दाईं ओर चेहरा घुमाए',
-    '🧑‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '👨‍🦯‍➡' => 'छड़ी लिया हुआ आदमी दाईं ओर चेहरा घुमाए',
-    '👩‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत दाईं ओर चेहरा घुमाए',
-    '🧑‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '👨‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👩‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '🧑‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '👨‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी दाईं ओर चेहरा घुमाए',
-    '👩‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत दाईं ओर चेहरा घुमाए',
-    '🏃‍♀‍➡' => 'दौड़ती हुई महिला दाईं ओर चेहरा घुमाए',
-    '🏃‍♂‍➡' => 'दौड़ता हुआ पुरुष दाईं ओर चेहरा घुमाए',
+    '🚶‍♀‍➡' => 'पैदल चलती महिला: दाईं ओर चेहरा घुमाए',
+    '🚶‍♂‍➡' => 'पैदल चलता पुरुष: दाईं ओर चेहरा घुमाए',
+    '🧎‍♀‍➡' => 'औरत घुटनों के बल: दाईं ओर चेहरा घुमाए',
+    '🧎‍♂‍➡' => 'आदमी घुटनों के बल: दाईं ओर चेहरा घुमाए',
+    '🧑‍🦯‍➡' => 'छड़ी पकड़ा हुआ आदमी: दाईं ओर चेहरा घुमाए',
+    '👨‍🦯‍➡' => 'छड़ी लिया हुआ आदमी: दाईं ओर चेहरा घुमाए',
+    '👩‍🦯‍➡' => 'छड़ी पकड़ी हुई औरत: दाईं ओर चेहरा घुमाए',
+    '🧑‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा व्यक्ति: दाईं ओर चेहरा घुमाए',
+    '👨‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठा आदमी: दाईं ओर चेहरा घुमाए',
+    '👩‍🦼‍➡' => 'मोटर व्हीलचेयर पर बैठी औरत: दाईं ओर चेहरा घुमाए',
+    '🧑‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा व्यक्ति: दाईं ओर चेहरा घुमाए',
+    '👨‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठा आदमी: दाईं ओर चेहरा घुमाए',
+    '👩‍🦽‍➡' => 'हस्तचालित व्हीलचेयर पर बैठी औरत: दाईं ओर चेहरा घुमाए',
+    '🏃‍♀‍➡' => 'दौड़ती हुई महिला: दाईं ओर चेहरा घुमाए',
+    '🏃‍♂‍➡' => 'दौड़ता हुआ पुरुष: दाईं ओर चेहरा घुमाए',
     '👩‍❤‍👨' => 'दिल वाली जोड़ी: महिला, पुरुष',
     '👨‍❤‍👨' => 'दिल वाली जोड़ी: पुरुष, पुरुष',
     '👩‍❤‍👩' => 'दिल वाली जोड़ी: महिला, महिला',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'व्यक्ति: गेहुँआ त्वचा, गंजा',
     '🧑🏾‍🦲' => 'व्यक्ति: हल्की साँवली त्वचा, गंजा',
     '🧑🏿‍🦲' => 'व्यक्ति: साँवली त्वचा, गंजा',
+    '🧑🏻‍🩰' => 'बैले डांसर: गोरी त्वचा',
+    '🧑🏼‍🩰' => 'बैले डांसर: हल्की गोरी त्वचा',
+    '🧑🏽‍🩰' => 'बैले डांसर: गेहुँआ त्वचा',
+    '🧑🏾‍🩰' => 'बैले डांसर: हल्की साँवली त्वचा',
+    '🧑🏿‍🩰' => 'बैले डांसर: साँवली त्वचा',
     '🧔🏻‍♂' => 'आदमी: गोरी त्वचा, दाढ़ी',
     '🧔🏼‍♂' => 'आदमी: हल्की गोरी त्वचा, दाढ़ी',
     '🧔🏽‍♂' => 'आदमी: गेहुँआ त्वचा, दाढ़ी',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'पैदल चलती महिला: गेहुँआ त्वचा',
     '🚶🏾‍♀' => 'पैदल चलती महिला: हल्की साँवली त्वचा',
     '🚶🏿‍♀' => 'पैदल चलती महिला: साँवली त्वचा',
-    '🚶🏻‍➡' => 'पैदल चलता व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🚶🏼‍➡' => 'पैदल चलता व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🚶🏽‍➡' => 'पैदल चलता व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🚶🏾‍➡' => 'पैदल चलता व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🚶🏿‍➡' => 'पैदल चलता व्यक्ति दाईं ओर चेहरा घुमाए',
+    '🚶🏻‍➡' => 'पैदल चलता व्यक्ति: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏼‍➡' => 'पैदल चलता व्यक्ति: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏽‍➡' => 'पैदल चलता व्यक्ति: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏾‍➡' => 'पैदल चलता व्यक्ति: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🚶🏿‍➡' => 'पैदल चलता व्यक्ति: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
     '🧍🏻‍♂' => 'खड़ा आदमी: गोरी त्वचा',
     '🧍🏼‍♂' => 'खड़ा आदमी: हल्की गोरी त्वचा',
     '🧍🏽‍♂' => 'खड़ा आदमी: गेहुँआ त्वचा',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'औरत घुटनों के बल: गेहुँआ त्वचा',
     '🧎🏾‍♀' => 'औरत घुटनों के बल: हल्की साँवली त्वचा',
     '🧎🏿‍♀' => 'औरत घुटनों के बल: साँवली त्वचा',
-    '🧎🏻‍➡' => 'घुटनों के बल बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧎🏼‍➡' => 'घुटनों के बल बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧎🏽‍➡' => 'घुटनों के बल बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧎🏾‍➡' => 'घुटनों के बल बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧎🏿‍➡' => 'घुटनों के बल बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
+    '🧎🏻‍➡' => 'घुटनों के बल बैठा व्यक्ति: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏼‍➡' => 'घुटनों के बल बैठा व्यक्ति: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏽‍➡' => 'घुटनों के बल बैठा व्यक्ति: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏾‍➡' => 'घुटनों के बल बैठा व्यक्ति: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🧎🏿‍➡' => 'घुटनों के बल बैठा व्यक्ति: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
     '🧑🏻‍🦯' => 'छड़ी पकड़ा हुआ आदमी: गोरी त्वचा',
     '🧑🏼‍🦯' => 'छड़ी पकड़ा हुआ आदमी: हल्की गोरी त्वचा',
     '🧑🏽‍🦯' => 'छड़ी पकड़ा हुआ आदमी: गेहुँआ त्वचा',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'दौड़ती हुई महिला: गेहुँआ त्वचा',
     '🏃🏾‍♀' => 'दौड़ती हुई महिला: हल्की साँवली त्वचा',
     '🏃🏿‍♀' => 'दौड़ती हुई महिला: साँवली त्वचा',
-    '🏃🏻‍➡' => 'दौड़ता हुआ व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🏃🏼‍➡' => 'दौड़ता हुआ व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🏃🏽‍➡' => 'दौड़ता हुआ व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🏃🏾‍➡' => 'दौड़ता हुआ व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🏃🏿‍➡' => 'दौड़ता हुआ व्यक्ति दाईं ओर चेहरा घुमाए',
+    '🏃🏻‍➡' => 'दौड़ता हुआ व्यक्ति: गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏼‍➡' => 'दौड़ता हुआ व्यक्ति: हल्की गोरी त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏽‍➡' => 'दौड़ता हुआ व्यक्ति: गेहुँआ त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏾‍➡' => 'दौड़ता हुआ व्यक्ति: हल्की साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '🏃🏿‍➡' => 'दौड़ता हुआ व्यक्ति: साँवली त्वचा, दाईं ओर चेहरा घुमाए',
+    '👯🏻‍♀' => 'खरगोश के कान वाली महिलाएँ: गोरी त्वचा',
+    '👯🏼‍♀' => 'खरगोश के कान वाली महिलाएँ: हल्की गोरी त्वचा',
+    '👯🏽‍♀' => 'खरगोश के कान वाली महिलाएँ: गेहुँआ त्वचा',
+    '👯🏾‍♀' => 'खरगोश के कान वाली महिलाएँ: हल्की साँवली त्वचा',
+    '👯🏿‍♀' => 'खरगोश के कान वाली महिलाएँ: साँवली त्वचा',
+    '👯🏻‍♂' => 'खरगोश के कान वाले पुरुष: गोरी त्वचा',
+    '👯🏼‍♂' => 'खरगोश के कान वाले पुरुष: हल्की गोरी त्वचा',
+    '👯🏽‍♂' => 'खरगोश के कान वाले पुरुष: गेहुँआ त्वचा',
+    '👯🏾‍♂' => 'खरगोश के कान वाले पुरुष: हल्की साँवली त्वचा',
+    '👯🏿‍♂' => 'खरगोश के कान वाले पुरुष: साँवली त्वचा',
     '🧖🏻‍♂' => 'भाप से भरे कमरे में कोई पुरुष: गोरी त्वचा',
     '🧖🏼‍♂' => 'भाप से भरे कमरे में कोई पुरुष: हल्की गोरी त्वचा',
     '🧖🏽‍♂' => 'भाप से भरे कमरे में कोई पुरुष: गेहुँआ त्वचा',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'कलाबाज़ी करती महिला: गेहुँआ त्वचा',
     '🤸🏾‍♀' => 'कलाबाज़ी करती महिला: हल्की साँवली त्वचा',
     '🤸🏿‍♀' => 'कलाबाज़ी करती महिला: साँवली त्वचा',
+    '🤼🏻‍♀' => 'महिला पहलवान: गोरी त्वचा',
+    '🤼🏼‍♀' => 'महिला पहलवान: हल्की गोरी त्वचा',
+    '🤼🏽‍♀' => 'महिला पहलवान: गेहुँआ त्वचा',
+    '🤼🏾‍♀' => 'महिला पहलवान: हल्की साँवली त्वचा',
+    '🤼🏿‍♀' => 'महिला पहलवान: साँवली त्वचा',
+    '🤼🏻‍♂' => 'पुरुष पहलवान: गोरी त्वचा',
+    '🤼🏼‍♂' => 'पुरुष पहलवान: हल्की गोरी त्वचा',
+    '🤼🏽‍♂' => 'पुरुष पहलवान: गेहुँआ त्वचा',
+    '🤼🏾‍♂' => 'पुरुष पहलवान: हल्की साँवली त्वचा',
+    '🤼🏿‍♂' => 'पुरुष पहलवान: साँवली त्वचा',
     '🤽🏻‍♂' => 'वाटर पोलो खेलता पुरुष: गोरी त्वचा',
     '🤽🏼‍♂' => 'वाटर पोलो खेलता पुरुष: हल्की गोरी त्वचा',
     '🤽🏽‍♂' => 'वाटर पोलो खेलता पुरुष: गेहुँआ त्वचा',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'महिला: घुँघराले बाल',
     '👩‍🦳' => 'महिला: सफ़ेद बाल',
     '👩‍🦲' => 'महिला: गंजा',
-    '🚶‍➡' => 'पैदल चलता व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🧎‍➡' => 'घुटनों के बल बैठा व्यक्ति दाईं ओर चेहरा घुमाए',
-    '🏃‍➡' => 'दौड़ता हुआ व्यक्ति दाईं ओर चेहरा घुमाए',
+    '🚶‍➡' => 'पैदल चलता व्यक्ति: दाईं ओर चेहरा घुमाए',
+    '🧎‍➡' => 'घुटनों के बल बैठा व्यक्ति: दाईं ओर चेहरा घुमाए',
+    '🏃‍➡' => 'दौड़ता हुआ व्यक्ति: दाईं ओर चेहरा घुमाए',
     '👨‍👦' => 'परिवार: पुरुष, लड़का',
     '👨‍👧' => 'परिवार: पुरुष, लड़की',
     '👩‍👦' => 'परिवार: महिला, लड़का',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'हस्तचालित व्हीलचेयर पर बैठी औरत',
     '🏃‍♂' => 'दौड़ता हुआ पुरुष',
     '🏃‍♀' => 'दौड़ती हुई महिला',
+    '🧑‍🩰' => 'बैले डांसर',
     '👯‍♂' => 'खरगोश के कान वाले पुरुष',
     '👯‍♀' => 'खरगोश के कान वाली महिलाएँ',
     '🧖‍♂' => 'भाप से भरे कमरे में कोई पुरुष',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'सूट वाला व्यक्ति: गेहुँआ त्वचा',
     '🕴🏾' => 'सूट वाला व्यक्ति: हल्की साँवली त्वचा',
     '🕴🏿' => 'सूट वाला व्यक्ति: साँवली त्वचा',
+    '👯🏻' => 'खरगोश के कान वाले लोग: गोरी त्वचा',
+    '👯🏼' => 'खरगोश के कान वाले लोग: हल्की गोरी त्वचा',
+    '👯🏽' => 'खरगोश के कान वाले लोग: गेहुँआ त्वचा',
+    '👯🏾' => 'खरगोश के कान वाले लोग: हल्की साँवली त्वचा',
+    '👯🏿' => 'खरगोश के कान वाले लोग: साँवली त्वचा',
     '🧖🏻' => 'भाप से भरे कमरे में कोई व्यक्ति: गोरी त्वचा',
     '🧖🏼' => 'भाप से भरे कमरे में कोई व्यक्ति: हल्की गोरी त्वचा',
     '🧖🏽' => 'भाप से भरे कमरे में कोई व्यक्ति: गेहुँआ त्वचा',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'कलाबाज़ी करता व्यक्ति: गेहुँआ त्वचा',
     '🤸🏾' => 'कलाबाज़ी करता व्यक्ति: हल्की साँवली त्वचा',
     '🤸🏿' => 'कलाबाज़ी करता व्यक्ति: साँवली त्वचा',
+    '🤼🏻' => 'पहलवान: गोरी त्वचा',
+    '🤼🏼' => 'पहलवान: हल्की गोरी त्वचा',
+    '🤼🏽' => 'पहलवान: गेहुँआ त्वचा',
+    '🤼🏾' => 'पहलवान: हल्की साँवली त्वचा',
+    '🤼🏿' => 'पहलवान: साँवली त्वचा',
     '🤽🏻' => 'वाटर पोलो खेलता व्यक्ति: गोरी त्वचा',
     '🤽🏼' => 'वाटर पोलो खेलता व्यक्ति: हल्की गोरी त्वचा',
     '🤽🏽' => 'वाटर पोलो खेलता व्यक्ति: गेहुँआ त्वचा',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'झंडा: चीन',
     '🇨🇴' => 'झंडा: कोलंबिया',
     '🇨🇵' => 'झंडा: क्लिपर्टन द्वीप',
+    '🇨🇶' => 'झंडा: सार्क',
     '🇨🇷' => 'झंडा: कोस्टारिका',
     '🇨🇺' => 'झंडा: क्यूबा',
     '🇨🇻' => 'झंडा: केप वर्ड',
@@ -2390,13 +2547,6 @@
     '🏽' => 'गेहुँआ त्वचा',
     '🏾' => 'हल्की साँवली त्वचा',
     '🏿' => 'साँवली त्वचा',
-    '🪉' => 'वीणा',
-    '🪏' => 'फावड़ा',
-    '🪾' => 'बिना पत्तों का पेड़',
-    '🫆' => 'फ़िंगरप्रिंट',
-    '🫜' => 'कंद मूल',
-    '🫟' => 'छींटे',
-    '🫩' => 'आँखों के नीचे सूजन वाला चेहरा',
     '😀' => 'दाँत दिखाता चेहरा',
     '😃' => 'बड़ी आँखों वाला दाँत दिखाता चेहरा',
     '😄' => 'मुस्कुराती आँखों वाला दाँत दिखाता चेहरा',
@@ -2450,6 +2600,7 @@
     '😪' => 'उनींदा चेहरा',
     '🤤' => 'लार टपकता चेहरा',
     '😴' => 'सोया हुआ चेहरा',
+    '🫩' => 'आँखों के नीचे सूजन वाला चेहरा',
     '😷' => 'चिकित्सा मास्क वाला चेहरा',
     '🤒' => 'थर्मामीटर वाला चेहरा',
     '🤕' => 'सिर पर पट्टी वाला चेहरा',
@@ -2476,6 +2627,7 @@
     '😯' => 'आश्चर्यचकित चेहरा',
     '😲' => 'पूरी तरह स्तंभित चेहरा',
     '😳' => 'विस्मित चेहरा',
+    '🫪' => 'विकृत चेहरा',
     '🥺' => 'करुण चेहरा',
     '🥹' => 'आंसू रोकता चेहरा',
     '😦' => 'खुले मुँह वाला त्यौरी चढ़ाता चेहरा',
@@ -2547,6 +2699,7 @@
     '💋' => 'चुंबन का निशान',
     '💯' => '100 अंक',
     '💢' => 'गुस्से का चिह्न',
+    '🫯' => 'घमासान झगड़े से बना धूल का गुब्बार',
     '💥' => 'टक्कर',
     '💫' => 'तारे दिखना',
     '💦' => 'पसीने की बूंदें',
@@ -2670,6 +2823,7 @@
     '🧞' => 'जिन्न',
     '🧟' => 'ज़ॉम्बी',
     '🧌' => 'ट्रॉल',
+    '🫈' => 'बालों वाला प्राणी',
     '💆' => 'मालिश करवाता व्यक्ति',
     '💇' => 'बाल कटवाता हुआ व्यक्ति',
     '🚶' => 'पैदल चलता व्यक्ति',
@@ -2713,6 +2867,7 @@
     '🫂' => 'गले मिलते हुए लोग',
     '👪' => 'परिवार',
     '👣' => 'पदचिह्न',
+    '🫆' => 'फ़िंगरप्रिंट',
     '🦰' => 'लाल बाल',
     '🦱' => 'घुँघराले बाल',
     '🦳' => 'सफ़ेद बाल',
@@ -2812,6 +2967,7 @@
     '🐳' => 'फुहार छोड़ती ह्वेल',
     '🐋' => 'ह्वेल',
     '🐬' => 'डॉल्फ़िन',
+    '🫍' => 'ओर्का',
     '🦭' => 'सील',
     '🐟' => 'मछली',
     '🐠' => 'ऊष्णकटिबंधीय मछली',
@@ -2821,6 +2977,11 @@
     '🐚' => 'गोल शंख',
     '🪸' => 'कोरल',
     '🪼' => 'जेलीफ़िश',
+    '🦀' => 'कर्कट',
+    '🦞' => 'झींगा मछली',
+    '🦐' => 'झींगा',
+    '🦑' => 'स्क्विड',
+    '🦪' => 'सीप',
     '🐌' => 'घोंघा',
     '🦋' => 'तितली',
     '🐛' => 'इल्ली',
@@ -2865,6 +3026,7 @@
     '🪹' => 'खाली घोंसला',
     '🪺' => 'अंडों वाला घोंसला',
     '🍄' => 'मशरूम',
+    '🪾' => 'बिना पत्तों का पेड़',
     '🍇' => 'अंगूर, फल',
     '🍈' => 'खरबूजा, फल',
     '🍉' => 'तरबूज़',
@@ -2901,6 +3063,7 @@
     '🌰' => 'चेस्टनट',
     '🫚' => 'अदरक की जड़',
     '🫛' => 'मटर की फली',
+    '🫜' => 'कंद मूल',
     '🍞' => 'ब्रेड',
     '🥐' => 'क्रोइसैन',
     '🥖' => 'बीगट ब्रेड',
@@ -2952,11 +3115,6 @@
     '🥟' => 'भरावनयुक्त मीठी या नमकीन पकौड़ियाँ',
     '🥠' => 'फॉर्चून कुकी',
     '🥡' => 'टेकआउट बॉक्स',
-    '🦀' => 'कर्कट',
-    '🦞' => 'झींगा मछली',
-    '🦐' => 'झींगा',
-    '🦑' => 'स्क्विड',
-    '🦪' => 'सीप',
     '🍦' => 'सॉफ़्ट आइसक्रीम',
     '🍧' => 'पीसी बर्फ़',
     '🍨' => 'आइसक्रीम',
@@ -3007,6 +3165,7 @@
     '🧭' => 'दिशासूचक',
     '🏔' => 'बर्फीले शिखर वाला पर्वत, बर्फ',
     '⛰' => 'पहाड़',
+    '🛘' => 'भूस्खलन',
     '🌋' => 'ज्वालामुखी',
     '🗻' => 'माउंट फ़ूजी',
     '🏕' => 'तंबू, तंबू लगाना',
@@ -3367,16 +3526,17 @@
     '🎧' => 'हेडफ़ोन',
     '📻' => 'रेडियो',
     '🎷' => 'सैक्सोफ़ोन',
+    '🎺' => 'तुरही',
     '🪗' => 'अकॉर्डियन',
     '🎸' => 'गिटार',
     '🎹' => 'संगीत कीबोर्ड',
-    '🎺' => 'तुरही',
     '🎻' => 'वायलिन',
     '🪕' => 'बैंजो',
     '🥁' => 'ड्रम',
     '🪘' => 'बड़ा ड्रम',
     '🪇' => 'मराकस',
     '🪈' => 'बांसुरी',
+    '🪉' => 'हार्प',
     '📱' => 'मोबाइल फ़ोन',
     '📲' => 'तीर के साथ मोबाइल फ़ोन',
     '☎' => 'टेलीफ़ोन',
@@ -3430,8 +3590,9 @@
     '📑' => 'बुकमार्क टैब',
     '🔖' => 'बुकमार्क',
     '🏷' => 'लेबल',
-    '💰' => 'धन वाला बैग',
     '🪙' => 'सिक्का',
+    '💰' => 'धन वाला बैग',
+    '🪎' => 'खज़ाने का संदूक',
     '💴' => 'येन नोट',
     '💵' => 'डॉलर नोट, बैंकनोट',
     '💶' => 'यूरो नोट',
@@ -3514,6 +3675,7 @@
     '🧰' => 'टूलबॉक्स',
     '🧲' => 'चुंबक',
     '🪜' => 'सीढ़ी',
+    '🪏' => 'फावड़ा',
     '⚗' => 'रासायनिक उपकरण',
     '🧪' => 'टेस्ट ट्यूब',
     '🧫' => 'पेट्री डिश',
@@ -3697,6 +3859,7 @@
     '✴' => 'आठ किनारों वाला तारा',
     '❇' => 'जगमगाहट',
     '™' => 'ट्रेड मार्क चिह्न',
+    '🫟' => 'छींटे',
     '🔠' => 'इनपुट लैटिन अपरकेस',
     '🔡' => 'इनपुट लैटिन लोअरकेस अक्षर',
     '🔢' => 'अंक डालें',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hr.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'poljubac: žena, žena, tamno smeđa boja kože i maslinasta boja kože',
     '👩🏿‍❤‍💋‍👩🏾' => 'poljubac: žena, žena, tamno smeđa boja kože i smeđa boja kože',
     '👩🏿‍❤‍💋‍👩🏿' => 'poljubac: žena, žena i tamno smeđa boja kože',
+    '🧑🏻‍🫯‍🧑🏼' => 'osobe se hrvaju: svijetla boja kože i svijetlo maslinasta boja kože',
+    '🧑🏻‍🫯‍🧑🏽' => 'osobe se hrvaju: svijetla boja kože i maslinasta boja kože',
+    '🧑🏻‍🫯‍🧑🏾' => 'osobe se hrvaju: svijetla boja kože i smeđa boja kože',
+    '🧑🏻‍🫯‍🧑🏿' => 'osobe se hrvaju: svijetla boja kože i tamno smeđa boja kože',
+    '🧑🏼‍🫯‍🧑🏻' => 'osobe se hrvaju: svijetlo maslinasta boja kože i svijetla boja kože',
+    '🧑🏼‍🫯‍🧑🏽' => 'osobe se hrvaju: svijetlo maslinasta boja kože i maslinasta boja kože',
+    '🧑🏼‍🫯‍🧑🏾' => 'osobe se hrvaju: svijetlo maslinasta boja kože i smeđa boja kože',
+    '🧑🏼‍🫯‍🧑🏿' => 'osobe se hrvaju: svijetlo maslinasta boja kože i tamno smeđa boja kože',
+    '🧑🏽‍🫯‍🧑🏻' => 'osobe se hrvaju: maslinasta boja kože i svijetla boja kože',
+    '🧑🏽‍🫯‍🧑🏼' => 'osobe se hrvaju: maslinasta boja kože i svijetlo maslinasta boja kože',
+    '🧑🏽‍🫯‍🧑🏾' => 'osobe se hrvaju: maslinasta boja kože i smeđa boja kože',
+    '🧑🏽‍🫯‍🧑🏿' => 'osobe se hrvaju: maslinasta boja kože i tamno smeđa boja kože',
+    '🧑🏾‍🫯‍🧑🏻' => 'osobe se hrvaju: smeđa boja kože i svijetla boja kože',
+    '🧑🏾‍🫯‍🧑🏼' => 'osobe se hrvaju: smeđa boja kože i svijetlo maslinasta boja kože',
+    '🧑🏾‍🫯‍🧑🏽' => 'osobe se hrvaju: smeđa boja kože i maslinasta boja kože',
+    '🧑🏾‍🫯‍🧑🏿' => 'osobe se hrvaju: smeđa boja kože i tamno smeđa boja kože',
+    '🧑🏿‍🫯‍🧑🏻' => 'osobe se hrvaju: tamno smeđa boja kože i svijetla boja kože',
+    '🧑🏿‍🫯‍🧑🏼' => 'osobe se hrvaju: tamno smeđa boja kože i svijetlo maslinasta boja kože',
+    '🧑🏿‍🫯‍🧑🏽' => 'osobe se hrvaju: tamno smeđa boja kože i maslinasta boja kože',
+    '🧑🏿‍🫯‍🧑🏾' => 'osobe se hrvaju: tamno smeđa boja kože i smeđa boja kože',
     '🧑🏻‍❤‍🧑🏼' => 'par sa srcem: odrasla osoba, odrasla osoba, svijetla boja kože i svijetlo maslinasta boja kože',
     '🧑🏻‍❤‍🧑🏽' => 'par sa srcem: odrasla osoba, odrasla osoba, svijetla boja kože i maslinasta boja kože',
     '🧑🏻‍❤‍🧑🏾' => 'par sa srcem: odrasla osoba, odrasla osoba, svijetla boja kože i smeđa boja kože',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par sa srcem: odrasla osoba, odrasla osoba, tamno smeđa boja kože i svijetlo maslinasta boja kože',
     '🧑🏿‍❤‍🧑🏽' => 'par sa srcem: odrasla osoba, odrasla osoba, tamno smeđa boja kože i maslinasta boja kože',
     '🧑🏿‍❤‍🧑🏾' => 'par sa srcem: odrasla osoba, odrasla osoba, tamno smeđa boja kože i smeđa boja kože',
+    '🧑🏻‍🐰‍🧑🏼' => 'osobe sa zečjim ušima: svijetla boja kože i svijetlo maslinasta boja kože',
+    '🧑🏻‍🐰‍🧑🏽' => 'osobe sa zečjim ušima: svijetla boja kože i maslinasta boja kože',
+    '🧑🏻‍🐰‍🧑🏾' => 'osobe sa zečjim ušima: svijetla boja kože i smeđa boja kože',
+    '🧑🏻‍🐰‍🧑🏿' => 'osobe sa zečjim ušima: svijetla boja kože i tamno smeđa boja kože',
+    '🧑🏼‍🐰‍🧑🏻' => 'osobe sa zečjim ušima: svijetlo maslinasta boja kože i svijetla boja kože',
+    '🧑🏼‍🐰‍🧑🏽' => 'osobe sa zečjim ušima: svijetlo maslinasta boja kože i maslinasta boja kože',
+    '🧑🏼‍🐰‍🧑🏾' => 'osobe sa zečjim ušima: svijetlo maslinasta boja kože i smeđa boja kože',
+    '🧑🏼‍🐰‍🧑🏿' => 'osobe sa zečjim ušima: svijetlo maslinasta boja kože i tamno smeđa boja kože',
+    '🧑🏽‍🐰‍🧑🏻' => 'osobe sa zečjim ušima: maslinasta boja kože i svijetla boja kože',
+    '🧑🏽‍🐰‍🧑🏼' => 'osobe sa zečjim ušima: maslinasta boja kože i svijetlo maslinasta boja kože',
+    '🧑🏽‍🐰‍🧑🏾' => 'osobe sa zečjim ušima: maslinasta boja kože i smeđa boja kože',
+    '🧑🏽‍🐰‍🧑🏿' => 'osobe sa zečjim ušima: maslinasta boja kože i tamno smeđa boja kože',
+    '🧑🏾‍🐰‍🧑🏻' => 'osobe sa zečjim ušima: smeđa boja kože i svijetla boja kože',
+    '🧑🏾‍🐰‍🧑🏼' => 'osobe sa zečjim ušima: smeđa boja kože i svijetlo maslinasta boja kože',
+    '🧑🏾‍🐰‍🧑🏽' => 'osobe sa zečjim ušima: smeđa boja kože i maslinasta boja kože',
+    '🧑🏾‍🐰‍🧑🏿' => 'osobe sa zečjim ušima: smeđa boja kože i tamno smeđa boja kože',
+    '🧑🏿‍🐰‍🧑🏻' => 'osobe sa zečjim ušima: tamno smeđa boja kože i svijetla boja kože',
+    '🧑🏿‍🐰‍🧑🏼' => 'osobe sa zečjim ušima: tamno smeđa boja kože i svijetlo maslinasta boja kože',
+    '🧑🏿‍🐰‍🧑🏽' => 'osobe sa zečjim ušima: tamno smeđa boja kože i maslinasta boja kože',
+    '🧑🏿‍🐰‍🧑🏾' => 'osobe sa zečjim ušima: tamno smeđa boja kože i smeđa boja kože',
+    '👨🏻‍🫯‍👨🏼' => 'muškarci se hrvaju: svijetla boja kože i svijetlo maslinasta boja kože',
+    '👨🏻‍🫯‍👨🏽' => 'muškarci se hrvaju: svijetla boja kože i maslinasta boja kože',
+    '👨🏻‍🫯‍👨🏾' => 'muškarci se hrvaju: svijetla boja kože i smeđa boja kože',
+    '👨🏻‍🫯‍👨🏿' => 'muškarci se hrvaju: svijetla boja kože i tamno smeđa boja kože',
+    '👨🏼‍🫯‍👨🏻' => 'muškarci se hrvaju: svijetlo maslinasta boja kože i svijetla boja kože',
+    '👨🏼‍🫯‍👨🏽' => 'muškarci se hrvaju: svijetlo maslinasta boja kože i maslinasta boja kože',
+    '👨🏼‍🫯‍👨🏾' => 'muškarci se hrvaju: svijetlo maslinasta boja kože i smeđa boja kože',
+    '👨🏼‍🫯‍👨🏿' => 'muškarci se hrvaju: svijetlo maslinasta boja kože i tamno smeđa boja kože',
+    '👨🏽‍🫯‍👨🏻' => 'muškarci se hrvaju: maslinasta boja kože i svijetla boja kože',
+    '👨🏽‍🫯‍👨🏼' => 'muškarci se hrvaju: maslinasta boja kože i svijetlo maslinasta boja kože',
+    '👨🏽‍🫯‍👨🏾' => 'muškarci se hrvaju: maslinasta boja kože i smeđa boja kože',
+    '👨🏽‍🫯‍👨🏿' => 'muškarci se hrvaju: maslinasta boja kože i tamno smeđa boja kože',
+    '👨🏾‍🫯‍👨🏻' => 'muškarci se hrvaju: smeđa boja kože i svijetla boja kože',
+    '👨🏾‍🫯‍👨🏼' => 'muškarci se hrvaju: smeđa boja kože i svijetlo maslinasta boja kože',
+    '👨🏾‍🫯‍👨🏽' => 'muškarci se hrvaju: smeđa boja kože i maslinasta boja kože',
+    '👨🏾‍🫯‍👨🏿' => 'muškarci se hrvaju: smeđa boja kože i tamno smeđa boja kože',
+    '👨🏿‍🫯‍👨🏻' => 'muškarci se hrvaju: tamno smeđa boja kože i svijetla boja kože',
+    '👨🏿‍🫯‍👨🏼' => 'muškarci se hrvaju: tamno smeđa boja kože i svijetlo maslinasta boja kože',
+    '👨🏿‍🫯‍👨🏽' => 'muškarci se hrvaju: tamno smeđa boja kože i maslinasta boja kože',
+    '👨🏿‍🫯‍👨🏾' => 'muškarci se hrvaju: tamno smeđa boja kože i smeđa boja kože',
     '👨🏻‍❤‍👨🏻' => 'par sa srcem: muškarac, muškarac i svijetla boja kože',
     '👨🏻‍❤‍👨🏼' => 'par sa srcem: muškarac, muškarac, svijetla boja kože i svijetlo maslinasta boja kože',
     '👨🏻‍❤‍👨🏽' => 'par sa srcem: muškarac, muškarac, svijetla boja kože i maslinasta boja kože',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'par sa srcem: muškarac, muškarac, tamno smeđa boja kože i maslinasta boja kože',
     '👨🏿‍❤‍👨🏾' => 'par sa srcem: muškarac, muškarac, tamno smeđa boja kože i smeđa boja kože',
     '👨🏿‍❤‍👨🏿' => 'par sa srcem: muškarac, muškarac i tamno smeđa boja kože',
+    '👨🏻‍🐰‍👨🏼' => 'muškarci sa zečjim ušima: svijetla boja kože i svijetlo maslinasta boja kože',
+    '👨🏻‍🐰‍👨🏽' => 'muškarci sa zečjim ušima: svijetla boja kože i maslinasta boja kože',
+    '👨🏻‍🐰‍👨🏾' => 'muškarci sa zečjim ušima: svijetla boja kože i smeđa boja kože',
+    '👨🏻‍🐰‍👨🏿' => 'muškarci sa zečjim ušima: svijetla boja kože i tamno smeđa boja kože',
+    '👨🏼‍🐰‍👨🏻' => 'muškarci sa zečjim ušima: svijetlo maslinasta boja kože i svijetla boja kože',
+    '👨🏼‍🐰‍👨🏽' => 'muškarci sa zečjim ušima: svijetlo maslinasta boja kože i maslinasta boja kože',
+    '👨🏼‍🐰‍👨🏾' => 'muškarci sa zečjim ušima: svijetlo maslinasta boja kože i smeđa boja kože',
+    '👨🏼‍🐰‍👨🏿' => 'muškarci sa zečjim ušima: svijetlo maslinasta boja kože i tamno smeđa boja kože',
+    '👨🏽‍🐰‍👨🏻' => 'muškarci sa zečjim ušima: maslinasta boja kože i svijetla boja kože',
+    '👨🏽‍🐰‍👨🏼' => 'muškarci sa zečjim ušima: maslinasta boja kože i svijetlo maslinasta boja kože',
+    '👨🏽‍🐰‍👨🏾' => 'muškarci sa zečjim ušima: maslinasta boja kože i smeđa boja kože',
+    '👨🏽‍🐰‍👨🏿' => 'muškarci sa zečjim ušima: maslinasta boja kože i tamno smeđa boja kože',
+    '👨🏾‍🐰‍👨🏻' => 'muškarci sa zečjim ušima: smeđa boja kože i svijetla boja kože',
+    '👨🏾‍🐰‍👨🏼' => 'muškarci sa zečjim ušima: smeđa boja kože i svijetlo maslinasta boja kože',
+    '👨🏾‍🐰‍👨🏽' => 'muškarci sa zečjim ušima: smeđa boja kože i maslinasta boja kože',
+    '👨🏾‍🐰‍👨🏿' => 'muškarci sa zečjim ušima: smeđa boja kože i tamno smeđa boja kože',
+    '👨🏿‍🐰‍👨🏻' => 'muškarci sa zečjim ušima: tamno smeđa boja kože i svijetla boja kože',
+    '👨🏿‍🐰‍👨🏼' => 'muškarci sa zečjim ušima: tamno smeđa boja kože i svijetlo maslinasta boja kože',
+    '👨🏿‍🐰‍👨🏽' => 'muškarci sa zečjim ušima: tamno smeđa boja kože i maslinasta boja kože',
+    '👨🏿‍🐰‍👨🏾' => 'muškarci sa zečjim ušima: tamno smeđa boja kože i smeđa boja kože',
+    '👩🏻‍🫯‍👩🏼' => 'žene se hrvaju: svijetla boja kože i svijetlo maslinasta boja kože',
+    '👩🏻‍🫯‍👩🏽' => 'žene se hrvaju: svijetla boja kože i maslinasta boja kože',
+    '👩🏻‍🫯‍👩🏾' => 'žene se hrvaju: svijetla boja kože i smeđa boja kože',
+    '👩🏻‍🫯‍👩🏿' => 'žene se hrvaju: svijetla boja kože i tamno smeđa boja kože',
+    '👩🏼‍🫯‍👩🏻' => 'žene se hrvaju: svijetlo maslinasta boja kože i svijetla boja kože',
+    '👩🏼‍🫯‍👩🏽' => 'žene se hrvaju: svijetlo maslinasta boja kože i maslinasta boja kože',
+    '👩🏼‍🫯‍👩🏾' => 'žene se hrvaju: svijetlo maslinasta boja kože i smeđa boja kože',
+    '👩🏼‍🫯‍👩🏿' => 'žene se hrvaju: svijetlo maslinasta boja kože i tamno smeđa boja kože',
+    '👩🏽‍🫯‍👩🏻' => 'žene se hrvaju: maslinasta boja kože i svijetla boja kože',
+    '👩🏽‍🫯‍👩🏼' => 'žene se hrvaju: maslinasta boja kože i svijetlo maslinasta boja kože',
+    '👩🏽‍🫯‍👩🏾' => 'žene se hrvaju: maslinasta boja kože i smeđa boja kože',
+    '👩🏽‍🫯‍👩🏿' => 'žene se hrvaju: maslinasta boja kože i tamno smeđa boja kože',
+    '👩🏾‍🫯‍👩🏻' => 'žene se hrvaju: smeđa boja kože i svijetla boja kože',
+    '👩🏾‍🫯‍👩🏼' => 'žene se hrvaju: smeđa boja kože i svijetlo maslinasta boja kože',
+    '👩🏾‍🫯‍👩🏽' => 'žene se hrvaju: smeđa boja kože i maslinasta boja kože',
+    '👩🏾‍🫯‍👩🏿' => 'žene se hrvaju: smeđa boja kože i tamno smeđa boja kože',
+    '👩🏿‍🫯‍👩🏻' => 'žene se hrvaju: tamno smeđa boja kože i svijetla boja kože',
+    '👩🏿‍🫯‍👩🏼' => 'žene se hrvaju: tamno smeđa boja kože i svijetlo maslinasta boja kože',
+    '👩🏿‍🫯‍👩🏽' => 'žene se hrvaju: tamno smeđa boja kože i maslinasta boja kože',
+    '👩🏿‍🫯‍👩🏾' => 'žene se hrvaju: tamno smeđa boja kože i smeđa boja kože',
     '👩🏻‍❤‍👨🏻' => 'par sa srcem: žena, muškarac i svijetla boja kože',
     '👩🏻‍❤‍👨🏼' => 'par sa srcem: žena, muškarac, svijetla boja kože i svijetlo maslinasta boja kože',
     '👩🏻‍❤‍👨🏽' => 'par sa srcem: žena, muškarac, svijetla boja kože i maslinasta boja kože',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'par sa srcem: žena, žena, tamno smeđa boja kože i maslinasta boja kože',
     '👩🏿‍❤‍👩🏾' => 'par sa srcem: žena, žena, tamno smeđa boja kože i smeđa boja kože',
     '👩🏿‍❤‍👩🏿' => 'par sa srcem: žena, žena i tamno smeđa boja kože',
+    '👩🏻‍🐰‍👩🏼' => 'žene sa zečjim ušima: svijetla boja kože i svijetlo maslinasta boja kože',
+    '👩🏻‍🐰‍👩🏽' => 'žene sa zečjim ušima: svijetla boja kože i maslinasta boja kože',
+    '👩🏻‍🐰‍👩🏾' => 'žene sa zečjim ušima: svijetla boja kože i smeđa boja kože',
+    '👩🏻‍🐰‍👩🏿' => 'žene sa zečjim ušima: svijetla boja kože i tamno smeđa boja kože',
+    '👩🏼‍🐰‍👩🏻' => 'žene sa zečjim ušima: svijetlo maslinasta boja kože i svijetla boja kože',
+    '👩🏼‍🐰‍👩🏽' => 'žene sa zečjim ušima: svijetlo maslinasta boja kože i maslinasta boja kože',
+    '👩🏼‍🐰‍👩🏾' => 'žene sa zečjim ušima: svijetlo maslinasta boja kože i smeđa boja kože',
+    '👩🏼‍🐰‍👩🏿' => 'žene sa zečjim ušima: svijetlo maslinasta boja kože i tamno smeđa boja kože',
+    '👩🏽‍🐰‍👩🏻' => 'žene sa zečjim ušima: maslinasta boja kože i svijetla boja kože',
+    '👩🏽‍🐰‍👩🏼' => 'žene sa zečjim ušima: maslinasta boja kože i svijetlo maslinasta boja kože',
+    '👩🏽‍🐰‍👩🏾' => 'žene sa zečjim ušima: maslinasta boja kože i smeđa boja kože',
+    '👩🏽‍🐰‍👩🏿' => 'žene sa zečjim ušima: maslinasta boja kože i tamno smeđa boja kože',
+    '👩🏾‍🐰‍👩🏻' => 'žene sa zečjim ušima: smeđa boja kože i svijetla boja kože',
+    '👩🏾‍🐰‍👩🏼' => 'žene sa zečjim ušima: smeđa boja kože i svijetlo maslinasta boja kože',
+    '👩🏾‍🐰‍👩🏽' => 'žene sa zečjim ušima: smeđa boja kože i maslinasta boja kože',
+    '👩🏾‍🐰‍👩🏿' => 'žene sa zečjim ušima: smeđa boja kože i tamno smeđa boja kože',
+    '👩🏿‍🐰‍👩🏻' => 'žene sa zečjim ušima: tamno smeđa boja kože i svijetla boja kože',
+    '👩🏿‍🐰‍👩🏼' => 'žene sa zečjim ušima: tamno smeđa boja kože i svijetlo maslinasta boja kože',
+    '👩🏿‍🐰‍👩🏽' => 'žene sa zečjim ušima: tamno smeđa boja kože i maslinasta boja kože',
+    '👩🏿‍🐰‍👩🏾' => 'žene sa zečjim ušima: tamno smeđa boja kože i smeđa boja kože',
     '🧑🏻‍🤝‍🧑🏻' => 'osobe koje se drže za ruke: svijetla boja kože',
     '🧑🏻‍🤝‍🧑🏼' => 'osobe koje se drže za ruke: svijetla boja kože i svijetlo maslinasta boja kože',
     '🧑🏻‍🤝‍🧑🏽' => 'osobe koje se drže za ruke: svijetla boja kože i maslinasta boja kože',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'zastava: Škotska',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'zastava: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'obitelj: odrasla osoba, odrasla osoba, dijete, dijete',
-    '🚶🏻‍♀‍➡' => 'žena hoda udesno',
-    '🚶🏼‍♀‍➡' => 'žena hoda udesno',
-    '🚶🏽‍♀‍➡' => 'žena hoda udesno',
-    '🚶🏾‍♀‍➡' => 'žena hoda udesno',
-    '🚶🏿‍♀‍➡' => 'žena hoda udesno',
-    '🚶🏻‍♂‍➡' => 'muškarac hoda udesno',
-    '🚶🏼‍♂‍➡' => 'muškarac hoda udesno',
-    '🚶🏽‍♂‍➡' => 'muškarac hoda udesno',
-    '🚶🏾‍♂‍➡' => 'muškarac hoda udesno',
-    '🚶🏿‍♂‍➡' => 'muškarac hoda udesno',
-    '🧎🏻‍♀‍➡' => 'žena kleči udesno',
-    '🧎🏼‍♀‍➡' => 'žena kleči udesno',
-    '🧎🏽‍♀‍➡' => 'žena kleči udesno',
-    '🧎🏾‍♀‍➡' => 'žena kleči udesno',
-    '🧎🏿‍♀‍➡' => 'žena kleči udesno',
-    '🧎🏻‍♂‍➡' => 'muškarac kleči udesno',
-    '🧎🏼‍♂‍➡' => 'muškarac kleči udesno',
-    '🧎🏽‍♂‍➡' => 'muškarac kleči udesno',
-    '🧎🏾‍♂‍➡' => 'muškarac kleči udesno',
-    '🧎🏿‍♂‍➡' => 'muškarac kleči udesno',
-    '🧑🏻‍🦯‍➡' => 'osoba s bijelim štapom udesno',
-    '🧑🏼‍🦯‍➡' => 'osoba s bijelim štapom udesno',
-    '🧑🏽‍🦯‍➡' => 'osoba s bijelim štapom udesno',
-    '🧑🏾‍🦯‍➡' => 'osoba s bijelim štapom udesno',
-    '🧑🏿‍🦯‍➡' => 'osoba s bijelim štapom udesno',
-    '👨🏻‍🦯‍➡' => 'muškarac s bijelim štapom udesno',
-    '👨🏼‍🦯‍➡' => 'muškarac s bijelim štapom udesno',
-    '👨🏽‍🦯‍➡' => 'muškarac s bijelim štapom udesno',
-    '👨🏾‍🦯‍➡' => 'muškarac s bijelim štapom udesno',
-    '👨🏿‍🦯‍➡' => 'muškarac s bijelim štapom udesno',
-    '👩🏻‍🦯‍➡' => 'žena s bijelim štapom udesno',
-    '👩🏼‍🦯‍➡' => 'žena s bijelim štapom udesno',
-    '👩🏽‍🦯‍➡' => 'žena s bijelim štapom udesno',
-    '👩🏾‍🦯‍➡' => 'žena s bijelim štapom udesno',
-    '👩🏿‍🦯‍➡' => 'žena s bijelim štapom udesno',
-    '🧑🏻‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon udesno',
-    '🧑🏼‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon udesno',
-    '🧑🏽‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon udesno',
-    '🧑🏾‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon udesno',
-    '🧑🏿‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon udesno',
-    '👨🏻‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima udesno',
-    '👨🏼‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima udesno',
-    '👨🏽‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima udesno',
-    '👨🏾‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima udesno',
-    '👨🏿‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima udesno',
-    '👩🏻‍🦼‍➡' => 'žena u motornim invalidskim kolicima udesno',
-    '👩🏼‍🦼‍➡' => 'žena u motornim invalidskim kolicima udesno',
-    '👩🏽‍🦼‍➡' => 'žena u motornim invalidskim kolicima udesno',
-    '👩🏾‍🦼‍➡' => 'žena u motornim invalidskim kolicima udesno',
-    '👩🏿‍🦼‍➡' => 'žena u motornim invalidskim kolicima udesno',
-    '🧑🏻‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon udesno',
-    '🧑🏼‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon udesno',
-    '🧑🏽‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon udesno',
-    '🧑🏾‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon udesno',
-    '🧑🏿‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon udesno',
-    '👨🏻‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon udesno',
-    '👨🏼‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon udesno',
-    '👨🏽‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon udesno',
-    '👨🏾‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon udesno',
-    '👨🏿‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon udesno',
-    '👩🏻‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon udesno',
-    '👩🏼‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon udesno',
-    '👩🏽‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon udesno',
-    '👩🏾‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon udesno',
-    '👩🏿‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon udesno',
-    '🏃🏻‍♀‍➡' => 'žena trči udesno',
-    '🏃🏼‍♀‍➡' => 'žena trči udesno',
-    '🏃🏽‍♀‍➡' => 'žena trči udesno',
-    '🏃🏾‍♀‍➡' => 'žena trči udesno',
-    '🏃🏿‍♀‍➡' => 'žena trči udesno',
-    '🏃🏻‍♂‍➡' => 'muškarac trči udesno',
-    '🏃🏼‍♂‍➡' => 'muškarac trči udesno',
-    '🏃🏽‍♂‍➡' => 'muškarac trči udesno',
-    '🏃🏾‍♂‍➡' => 'muškarac trči udesno',
-    '🏃🏿‍♂‍➡' => 'muškarac trči udesno',
+    '🚶🏻‍♀‍➡' => 'žena hoda: svijetla boja kože i udesno',
+    '🚶🏼‍♀‍➡' => 'žena hoda: svijetlo maslinasta boja kože i udesno',
+    '🚶🏽‍♀‍➡' => 'žena hoda: maslinasta boja kože i udesno',
+    '🚶🏾‍♀‍➡' => 'žena hoda: smeđa boja kože i udesno',
+    '🚶🏿‍♀‍➡' => 'žena hoda: tamno smeđa boja kože i udesno',
+    '🚶🏻‍♂‍➡' => 'muškarac hoda: svijetla boja kože i udesno',
+    '🚶🏼‍♂‍➡' => 'muškarac hoda: svijetlo maslinasta boja kože i udesno',
+    '🚶🏽‍♂‍➡' => 'muškarac hoda: maslinasta boja kože i udesno',
+    '🚶🏾‍♂‍➡' => 'muškarac hoda: smeđa boja kože i udesno',
+    '🚶🏿‍♂‍➡' => 'muškarac hoda: tamno smeđa boja kože i udesno',
+    '🧎🏻‍♀‍➡' => 'žena kleči: svijetla boja kože i udesno',
+    '🧎🏼‍♀‍➡' => 'žena kleči: svijetlo maslinasta boja kože i udesno',
+    '🧎🏽‍♀‍➡' => 'žena kleči: maslinasta boja kože i udesno',
+    '🧎🏾‍♀‍➡' => 'žena kleči: smeđa boja kože i udesno',
+    '🧎🏿‍♀‍➡' => 'žena kleči: tamno smeđa boja kože i udesno',
+    '🧎🏻‍♂‍➡' => 'muškarac kleči: svijetla boja kože i udesno',
+    '🧎🏼‍♂‍➡' => 'muškarac kleči: svijetlo maslinasta boja kože i udesno',
+    '🧎🏽‍♂‍➡' => 'muškarac kleči: maslinasta boja kože i udesno',
+    '🧎🏾‍♂‍➡' => 'muškarac kleči: smeđa boja kože i udesno',
+    '🧎🏿‍♂‍➡' => 'muškarac kleči: tamno smeđa boja kože i udesno',
+    '🧑🏻‍🦯‍➡' => 'osoba s bijelim štapom: svijetla boja kože i udesno',
+    '🧑🏼‍🦯‍➡' => 'osoba s bijelim štapom: svijetlo maslinasta boja kože i udesno',
+    '🧑🏽‍🦯‍➡' => 'osoba s bijelim štapom: maslinasta boja kože i udesno',
+    '🧑🏾‍🦯‍➡' => 'osoba s bijelim štapom: smeđa boja kože i udesno',
+    '🧑🏿‍🦯‍➡' => 'osoba s bijelim štapom: tamno smeđa boja kože i udesno',
+    '👨🏻‍🦯‍➡' => 'muškarac s bijelim štapom: svijetla boja kože i udesno',
+    '👨🏼‍🦯‍➡' => 'muškarac s bijelim štapom: svijetlo maslinasta boja kože i udesno',
+    '👨🏽‍🦯‍➡' => 'muškarac s bijelim štapom: maslinasta boja kože i udesno',
+    '👨🏾‍🦯‍➡' => 'muškarac s bijelim štapom: smeđa boja kože i udesno',
+    '👨🏿‍🦯‍➡' => 'muškarac s bijelim štapom: tamno smeđa boja kože i udesno',
+    '👩🏻‍🦯‍➡' => 'žena s bijelim štapom: svijetla boja kože i udesno',
+    '👩🏼‍🦯‍➡' => 'žena s bijelim štapom: svijetlo maslinasta boja kože i udesno',
+    '👩🏽‍🦯‍➡' => 'žena s bijelim štapom: maslinasta boja kože i udesno',
+    '👩🏾‍🦯‍➡' => 'žena s bijelim štapom: smeđa boja kože i udesno',
+    '👩🏿‍🦯‍➡' => 'žena s bijelim štapom: tamno smeđa boja kože i udesno',
+    '🧑🏻‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon: svijetla boja kože i udesno',
+    '🧑🏼‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon: svijetlo maslinasta boja kože i udesno',
+    '🧑🏽‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon: maslinasta boja kože i udesno',
+    '🧑🏾‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon: smeđa boja kože i udesno',
+    '🧑🏿‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon: tamno smeđa boja kože i udesno',
+    '👨🏻‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: svijetla boja kože i udesno',
+    '👨🏼‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: svijetlo maslinasta boja kože i udesno',
+    '👨🏽‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: maslinasta boja kože i udesno',
+    '👨🏾‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: smeđa boja kože i udesno',
+    '👨🏿‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: tamno smeđa boja kože i udesno',
+    '👩🏻‍🦼‍➡' => 'žena u motornim invalidskim kolicima: svijetla boja kože i udesno',
+    '👩🏼‍🦼‍➡' => 'žena u motornim invalidskim kolicima: svijetlo maslinasta boja kože i udesno',
+    '👩🏽‍🦼‍➡' => 'žena u motornim invalidskim kolicima: maslinasta boja kože i udesno',
+    '👩🏾‍🦼‍➡' => 'žena u motornim invalidskim kolicima: smeđa boja kože i udesno',
+    '👩🏿‍🦼‍➡' => 'žena u motornim invalidskim kolicima: tamno smeđa boja kože i udesno',
+    '🧑🏻‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon: svijetla boja kože i udesno',
+    '🧑🏼‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon: svijetlo maslinasta boja kože i udesno',
+    '🧑🏽‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon: maslinasta boja kože i udesno',
+    '🧑🏾‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon: smeđa boja kože i udesno',
+    '🧑🏿‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon: tamno smeđa boja kože i udesno',
+    '👨🏻‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon: svijetla boja kože i udesno',
+    '👨🏼‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon: svijetlo maslinasta boja kože i udesno',
+    '👨🏽‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon: maslinasta boja kože i udesno',
+    '👨🏾‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon: smeđa boja kože i udesno',
+    '👨🏿‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon: tamno smeđa boja kože i udesno',
+    '👩🏻‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon: svijetla boja kože i udesno',
+    '👩🏼‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon: svijetlo maslinasta boja kože i udesno',
+    '👩🏽‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon: maslinasta boja kože i udesno',
+    '👩🏾‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon: smeđa boja kože i udesno',
+    '👩🏿‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon: tamno smeđa boja kože i udesno',
+    '🏃🏻‍♀‍➡' => 'žena trči: svijetla boja kože i udesno',
+    '🏃🏼‍♀‍➡' => 'žena trči: svijetlo maslinasta boja kože i udesno',
+    '🏃🏽‍♀‍➡' => 'žena trči: maslinasta boja kože i udesno',
+    '🏃🏾‍♀‍➡' => 'žena trči: smeđa boja kože i udesno',
+    '🏃🏿‍♀‍➡' => 'žena trči: tamno smeđa boja kože i udesno',
+    '🏃🏻‍♂‍➡' => 'muškarac trči: svijetla boja kože i udesno',
+    '🏃🏼‍♂‍➡' => 'muškarac trči: svijetlo maslinasta boja kože i udesno',
+    '🏃🏽‍♂‍➡' => 'muškarac trči: maslinasta boja kože i udesno',
+    '🏃🏾‍♂‍➡' => 'muškarac trči: smeđa boja kože i udesno',
+    '🏃🏿‍♂‍➡' => 'muškarac trči: tamno smeđa boja kože i udesno',
     '🫱🏻‍🫲🏼' => 'rukovanje: svijetla boja kože i svijetlo maslinasta boja kože',
     '🫱🏻‍🫲🏽' => 'rukovanje: svijetla boja kože i maslinasta boja kože',
     '🫱🏻‍🫲🏾' => 'rukovanje: svijetla boja kože i smeđa boja kože',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'rukovanje: tamno smeđa boja kože i svijetlo maslinasta boja kože',
     '🫱🏿‍🫲🏽' => 'rukovanje: tamno smeđa boja kože i maslinasta boja kože',
     '🫱🏿‍🫲🏾' => 'rukovanje: tamno smeđa boja kože i smeđa boja kože',
-    '🚶‍♀‍➡' => 'žena hoda udesno',
-    '🚶‍♂‍➡' => 'muškarac hoda udesno',
-    '🧎‍♀‍➡' => 'žena kleči udesno',
-    '🧎‍♂‍➡' => 'muškarac kleči udesno',
-    '🧑‍🦯‍➡' => 'osoba s bijelim štapom udesno',
-    '👨‍🦯‍➡' => 'muškarac s bijelim štapom udesno',
-    '👩‍🦯‍➡' => 'žena s bijelim štapom udesno',
-    '🧑‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon udesno',
-    '👨‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima udesno',
-    '👩‍🦼‍➡' => 'žena u motornim invalidskim kolicima udesno',
-    '🧑‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon udesno',
-    '👨‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon udesno',
-    '👩‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon udesno',
-    '🏃‍♀‍➡' => 'žena trči udesno',
-    '🏃‍♂‍➡' => 'muškarac trči udesno',
+    '🚶‍♀‍➡' => 'žena hoda: udesno',
+    '🚶‍♂‍➡' => 'muškarac hoda: udesno',
+    '🧎‍♀‍➡' => 'žena kleči: udesno',
+    '🧎‍♂‍➡' => 'muškarac kleči: udesno',
+    '🧑‍🦯‍➡' => 'osoba s bijelim štapom: udesno',
+    '👨‍🦯‍➡' => 'muškarac s bijelim štapom: udesno',
+    '👩‍🦯‍➡' => 'žena s bijelim štapom: udesno',
+    '🧑‍🦼‍➡' => 'osoba u invalidskim kolicima na motorni pogon: udesno',
+    '👨‍🦼‍➡' => 'muškarac u motornim invalidskim kolicima: udesno',
+    '👩‍🦼‍➡' => 'žena u motornim invalidskim kolicima: udesno',
+    '🧑‍🦽‍➡' => 'osoba u invalidskim kolicima na ručni pogon: udesno',
+    '👨‍🦽‍➡' => 'muškarac u invalidskim kolicima na ručni pogon: udesno',
+    '👩‍🦽‍➡' => 'žena u invalidskim kolicima na ručni pogon: udesno',
+    '🏃‍♀‍➡' => 'žena trči: udesno',
+    '🏃‍♂‍➡' => 'muškarac trči: udesno',
     '👩‍❤‍👨' => 'par sa srcem: žena i muškarac',
     '👨‍❤‍👨' => 'par sa srcem: muškarac i muškarac',
     '👩‍❤‍👩' => 'par sa srcem: žena i žena',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'odrasla osoba: maslinasta boja kože i bez kose',
     '🧑🏾‍🦲' => 'odrasla osoba: smeđa boja kože i bez kose',
     '🧑🏿‍🦲' => 'odrasla osoba: tamno smeđa boja kože i bez kose',
+    '🧑🏻‍🩰' => 'balerina: svijetla boja kože',
+    '🧑🏼‍🩰' => 'balerina: svijetlo maslinasta boja kože',
+    '🧑🏽‍🩰' => 'balerina: maslinasta boja kože',
+    '🧑🏾‍🩰' => 'balerina: smeđa boja kože',
+    '🧑🏿‍🩰' => 'balerina: tamno smeđa boja kože',
     '🧔🏻‍♂' => 'muškarac: svijetla boja kože i brada',
     '🧔🏼‍♂' => 'muškarac: svijetlo maslinasta boja kože i brada',
     '🧔🏽‍♂' => 'muškarac: maslinasta boja kože i brada',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'žena hoda: maslinasta boja kože',
     '🚶🏾‍♀' => 'žena hoda: smeđa boja kože',
     '🚶🏿‍♀' => 'žena hoda: tamno smeđa boja kože',
-    '🚶🏻‍➡' => 'pješak udesno',
-    '🚶🏼‍➡' => 'pješak udesno',
-    '🚶🏽‍➡' => 'pješak udesno',
-    '🚶🏾‍➡' => 'pješak udesno',
-    '🚶🏿‍➡' => 'pješak udesno',
+    '🚶🏻‍➡' => 'pješak: svijetla boja kože i udesno',
+    '🚶🏼‍➡' => 'pješak: svijetlo maslinasta boja kože i udesno',
+    '🚶🏽‍➡' => 'pješak: maslinasta boja kože i udesno',
+    '🚶🏾‍➡' => 'pješak: smeđa boja kože i udesno',
+    '🚶🏿‍➡' => 'pješak: tamno smeđa boja kože i udesno',
     '🧍🏻‍♂' => 'muškarac stoji: svijetla boja kože',
     '🧍🏼‍♂' => 'muškarac stoji: svijetlo maslinasta boja kože',
     '🧍🏽‍♂' => 'muškarac stoji: maslinasta boja kože',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'žena kleči: maslinasta boja kože',
     '🧎🏾‍♀' => 'žena kleči: smeđa boja kože',
     '🧎🏿‍♀' => 'žena kleči: tamno smeđa boja kože',
-    '🧎🏻‍➡' => 'osoba kleči udesno',
-    '🧎🏼‍➡' => 'osoba kleči udesno',
-    '🧎🏽‍➡' => 'osoba kleči udesno',
-    '🧎🏾‍➡' => 'osoba kleči udesno',
-    '🧎🏿‍➡' => 'osoba kleči udesno',
+    '🧎🏻‍➡' => 'osoba kleči: svijetla boja kože i udesno',
+    '🧎🏼‍➡' => 'osoba kleči: svijetlo maslinasta boja kože i udesno',
+    '🧎🏽‍➡' => 'osoba kleči: maslinasta boja kože i udesno',
+    '🧎🏾‍➡' => 'osoba kleči: smeđa boja kože i udesno',
+    '🧎🏿‍➡' => 'osoba kleči: tamno smeđa boja kože i udesno',
     '🧑🏻‍🦯' => 'osoba s bijelim štapom: svijetla boja kože',
     '🧑🏼‍🦯' => 'osoba s bijelim štapom: svijetlo maslinasta boja kože',
     '🧑🏽‍🦯' => 'osoba s bijelim štapom: maslinasta boja kože',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'žena trči: maslinasta boja kože',
     '🏃🏾‍♀' => 'žena trči: smeđa boja kože',
     '🏃🏿‍♀' => 'žena trči: tamno smeđa boja kože',
-    '🏃🏻‍➡' => 'osoba trči udesno',
-    '🏃🏼‍➡' => 'osoba trči udesno',
-    '🏃🏽‍➡' => 'osoba trči udesno',
-    '🏃🏾‍➡' => 'osoba trči udesno',
-    '🏃🏿‍➡' => 'osoba trči udesno',
+    '🏃🏻‍➡' => 'osoba trči: svijetla boja kože i udesno',
+    '🏃🏼‍➡' => 'osoba trči: svijetlo maslinasta boja kože i udesno',
+    '🏃🏽‍➡' => 'osoba trči: maslinasta boja kože i udesno',
+    '🏃🏾‍➡' => 'osoba trči: smeđa boja kože i udesno',
+    '🏃🏿‍➡' => 'osoba trči: tamno smeđa boja kože i udesno',
+    '👯🏻‍♀' => 'žene sa zečjim ušima: svijetla boja kože',
+    '👯🏼‍♀' => 'žene sa zečjim ušima: svijetlo maslinasta boja kože',
+    '👯🏽‍♀' => 'žene sa zečjim ušima: maslinasta boja kože',
+    '👯🏾‍♀' => 'žene sa zečjim ušima: smeđa boja kože',
+    '👯🏿‍♀' => 'žene sa zečjim ušima: tamno smeđa boja kože',
+    '👯🏻‍♂' => 'muškarci sa zečjim ušima: svijetla boja kože',
+    '👯🏼‍♂' => 'muškarci sa zečjim ušima: svijetlo maslinasta boja kože',
+    '👯🏽‍♂' => 'muškarci sa zečjim ušima: maslinasta boja kože',
+    '👯🏾‍♂' => 'muškarci sa zečjim ušima: smeđa boja kože',
+    '👯🏿‍♂' => 'muškarci sa zečjim ušima: tamno smeđa boja kože',
     '🧖🏻‍♂' => 'muškarac u sauni: svijetla boja kože',
     '🧖🏼‍♂' => 'muškarac u sauni: svijetlo maslinasta boja kože',
     '🧖🏽‍♂' => 'muškarac u sauni: maslinasta boja kože',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'žena izvodi zvijezdu: maslinasta boja kože',
     '🤸🏾‍♀' => 'žena izvodi zvijezdu: smeđa boja kože',
     '🤸🏿‍♀' => 'žena izvodi zvijezdu: tamno smeđa boja kože',
+    '🤼🏻‍♀' => 'žene se hrvaju: svijetla boja kože',
+    '🤼🏼‍♀' => 'žene se hrvaju: svijetlo maslinasta boja kože',
+    '🤼🏽‍♀' => 'žene se hrvaju: maslinasta boja kože',
+    '🤼🏾‍♀' => 'žene se hrvaju: smeđa boja kože',
+    '🤼🏿‍♀' => 'žene se hrvaju: tamno smeđa boja kože',
+    '🤼🏻‍♂' => 'muškarci se hrvaju: svijetla boja kože',
+    '🤼🏼‍♂' => 'muškarci se hrvaju: svijetlo maslinasta boja kože',
+    '🤼🏽‍♂' => 'muškarci se hrvaju: maslinasta boja kože',
+    '🤼🏾‍♂' => 'muškarci se hrvaju: smeđa boja kože',
+    '🤼🏿‍♂' => 'muškarci se hrvaju: tamno smeđa boja kože',
     '🤽🏻‍♂' => 'muškarac igra vaterpolo: svijetla boja kože',
     '🤽🏼‍♂' => 'muškarac igra vaterpolo: svijetlo maslinasta boja kože',
     '🤽🏽‍♂' => 'muškarac igra vaterpolo: maslinasta boja kože',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'žena: kovrčava kosa',
     '👩‍🦳' => 'žena: sijeda kosa',
     '👩‍🦲' => 'žena: bez kose',
-    '🚶‍➡' => 'pješak udesno',
-    '🧎‍➡' => 'osoba kleči udesno',
-    '🏃‍➡' => 'osoba trči udesno',
+    '🚶‍➡' => 'pješak: udesno',
+    '🧎‍➡' => 'osoba kleči: udesno',
+    '🏃‍➡' => 'osoba trči: udesno',
     '👨‍👦' => 'obitelj: muškarac i dječak',
     '👨‍👧' => 'obitelj: muškarac i djevojčica',
     '👩‍👦' => 'obitelj: žena i dječak',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'žena u invalidskim kolicima na ručni pogon',
     '🏃‍♂' => 'muškarac trči',
     '🏃‍♀' => 'žena trči',
+    '🧑‍🩰' => 'balerina',
     '👯‍♂' => 'muškarci sa zečjim ušima',
     '👯‍♀' => 'žene sa zečjim ušima',
     '🧖‍♂' => 'muškarac u sauni',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'muškarac u poslovnom odijelu koji levitira: maslinasta boja kože',
     '🕴🏾' => 'muškarac u poslovnom odijelu koji levitira: smeđa boja kože',
     '🕴🏿' => 'muškarac u poslovnom odijelu koji levitira: tamno smeđa boja kože',
+    '👯🏻' => 'osobe sa zečjim ušima: svijetla boja kože',
+    '👯🏼' => 'osobe sa zečjim ušima: svijetlo maslinasta boja kože',
+    '👯🏽' => 'osobe sa zečjim ušima: maslinasta boja kože',
+    '👯🏾' => 'osobe sa zečjim ušima: smeđa boja kože',
+    '👯🏿' => 'osobe sa zečjim ušima: tamno smeđa boja kože',
     '🧖🏻' => 'osoba u sauni: svijetla boja kože',
     '🧖🏼' => 'osoba u sauni: svijetlo maslinasta boja kože',
     '🧖🏽' => 'osoba u sauni: maslinasta boja kože',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'osoba izvodi zvijezdu: maslinasta boja kože',
     '🤸🏾' => 'osoba izvodi zvijezdu: smeđa boja kože',
     '🤸🏿' => 'osoba izvodi zvijezdu: tamno smeđa boja kože',
+    '🤼🏻' => 'osobe se hrvaju: svijetla boja kože',
+    '🤼🏼' => 'osobe se hrvaju: svijetlo maslinasta boja kože',
+    '🤼🏽' => 'osobe se hrvaju: maslinasta boja kože',
+    '🤼🏾' => 'osobe se hrvaju: smeđa boja kože',
+    '🤼🏿' => 'osobe se hrvaju: tamno smeđa boja kože',
     '🤽🏻' => 'osobe igraju vaterpolo: svijetla boja kože',
     '🤽🏼' => 'osobe igraju vaterpolo: svijetlo maslinasta boja kože',
     '🤽🏽' => 'osobe igraju vaterpolo: maslinasta boja kože',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'zastava: Kina',
     '🇨🇴' => 'zastava: Kolumbija',
     '🇨🇵' => 'zastava: Otok Clipperton',
+    '🇨🇶' => 'zastava: Sark',
     '🇨🇷' => 'zastava: Kostarika',
     '🇨🇺' => 'zastava: Kuba',
     '🇨🇻' => 'zastava: Zelenortska Republika',
@@ -2204,7 +2361,7 @@
     '🇫🇯' => 'zastava: Fidži',
     '🇫🇰' => 'zastava: Falklandski Otoci',
     '🇫🇲' => 'zastava: Mikronezija',
-    '🇫🇴' => 'zastava: Ovčji Otoci',
+    '🇫🇴' => 'zastava: Farski Otoci',
     '🇫🇷' => 'zastava: Francuska',
     '🇬🇦' => 'zastava: Gabon',
     '🇬🇧' => 'zastava: Ujedinjeno Kraljevstvo',
@@ -2390,13 +2547,6 @@
     '🏽' => 'maslinasta boja kože',
     '🏾' => 'smeđa boja kože',
     '🏿' => 'tamno smeđa boja kože',
-    '🪉' => 'harfa',
-    '🪏' => 'lopata',
-    '🪾' => 'stablo bez lišća',
-    '🫆' => 'otisak prsta',
-    '🫜' => 'korjenasto povrće',
-    '🫟' => 'mrlja',
-    '🫩' => 'lice s podočnjacima',
     '😀' => 'nasmijano lice',
     '😃' => 'nasmijano lice s velikim očima',
     '😄' => 'nasmijano lice s nasmiješenim očima',
@@ -2450,6 +2600,7 @@
     '😪' => 'pospano lice',
     '🤤' => 'lice koje slini',
     '😴' => 'lice koje spava',
+    '🫩' => 'lice s podočnjacima',
     '😷' => 'lice s medicinskom maskom',
     '🤒' => 'lice s toplomjerom',
     '🤕' => 'lice sa zavojem',
@@ -2476,6 +2627,7 @@
     '😯' => 'iznenađeno lice',
     '😲' => 'zapanjeno lice',
     '😳' => 'zarumenjeno lice',
+    '🫪' => 'izobličeno lice',
     '🥺' => 'molećivo lice',
     '🥹' => 'lice koje se suzdržava od suza',
     '😦' => 'namrgođeno lice s otvorenim ustima',
@@ -2547,6 +2699,7 @@
     '💋' => 'otisak usana',
     '💯' => 'sto bodova',
     '💢' => 'simbol ljutnje',
+    '🫯' => 'borba u oblaku',
     '💥' => 'sudar',
     '💫' => 'vrtoglavica',
     '💦' => 'kapljice znoja',
@@ -2670,6 +2823,7 @@
     '🧞' => 'džin',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'dlakavo stvorenje',
     '💆' => 'osoba na masaži',
     '💇' => 'šišanje',
     '🚶' => 'pješak',
@@ -2713,6 +2867,7 @@
     '🫂' => 'osobe koje se grle',
     '👪' => 'obitelj',
     '👣' => 'otisci stopala',
+    '🫆' => 'otisak prsta',
     '🦰' => 'crvena kosa',
     '🦱' => 'kovrčava kosa',
     '🦳' => 'sijeda kosa',
@@ -2812,6 +2967,7 @@
     '🐳' => 'kit koji izbacuje mlaz vode',
     '🐋' => 'kit',
     '🐬' => 'dupin',
+    '🫍' => 'orka',
     '🦭' => 'tuljan',
     '🐟' => 'riba',
     '🐠' => 'tropska ribica',
@@ -2821,6 +2977,11 @@
     '🐚' => 'spiralna školjka',
     '🪸' => 'koralj',
     '🪼' => 'meduza',
+    '🦀' => 'rak',
+    '🦞' => 'jastog',
+    '🦐' => 'škamp',
+    '🦑' => 'lignja',
+    '🦪' => 'kamenica',
     '🐌' => 'puž',
     '🦋' => 'leptir',
     '🐛' => 'gusjenica',
@@ -2865,6 +3026,7 @@
     '🪹' => 'prazno gnijezdo',
     '🪺' => 'gnijezdo s jajima',
     '🍄' => 'gljiva',
+    '🪾' => 'stablo bez lišća',
     '🍇' => 'grožđe',
     '🍈' => 'dinja',
     '🍉' => 'lubenica',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kesten',
     '🫚' => 'đumbir',
     '🫛' => 'mahuna graška',
+    '🫜' => 'korjenasto povrće',
     '🍞' => 'kruh',
     '🥐' => 'kroasan',
     '🥖' => 'baget',
@@ -2952,11 +3115,6 @@
     '🥟' => 'okruglica',
     '🥠' => 'kolačić sreće',
     '🥡' => 'kutija za dostavu',
-    '🦀' => 'rak',
-    '🦞' => 'jastog',
-    '🦐' => 'škamp',
-    '🦑' => 'lignja',
-    '🦪' => 'kamenica',
     '🍦' => 'meki sladoled',
     '🍧' => 'sladoled s komadićima leda',
     '🍨' => 'sladoled',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'planina sa snježnim vrhovima',
     '⛰' => 'planina',
+    '🛘' => 'odron',
     '🌋' => 'vulkan',
     '🗻' => 'planina Fuji',
     '🏕' => 'kampiranje',
@@ -3367,16 +3526,18 @@
     '🎧' => 'slušalice',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'truba',
+    '🪊' => 'trombon',
     '🪗' => 'harmonika',
     '🎸' => 'gitara',
     '🎹' => 'klavijatura',
-    '🎺' => 'truba',
     '🎻' => 'violina',
     '🪕' => 'bendžo',
     '🥁' => 'bubanj',
     '🪘' => 'visoki bubanj',
     '🪇' => 'marakasi',
     '🪈' => 'flauta',
+    '🪉' => 'harfa',
     '📱' => 'mobilni telefon',
     '📲' => 'mobilni telefon sa strelicom',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'kartice knjižnih oznaka',
     '🔖' => 'knjižna oznaka',
     '🏷' => 'oznaka',
-    '💰' => 'vreća s novcem',
     '🪙' => 'kovanica',
+    '💰' => 'vreća s novcem',
+    '🪎' => 'škrinja s blagom',
     '💴' => 'novčanica sa znakom jena',
     '💵' => 'novčanica sa znakom dolara',
     '💶' => 'novčanica sa znakom eura',
@@ -3514,6 +3676,7 @@
     '🧰' => 'kutija za alat',
     '🧲' => 'magnet',
     '🪜' => 'ljestve',
+    '🪏' => 'lopata',
     '⚗' => 'retorta',
     '🧪' => 'epruveta',
     '🧫' => 'petrijeva zdjelica',
@@ -3697,6 +3860,7 @@
     '✴' => 'osmerokraka zvijezda',
     '❇' => 'iskra',
     '™' => 'zaštitni znak tm',
+    '🫟' => 'mrlja',
     '🔠' => 'unos velikih latiničnih slova',
     '🔡' => 'unos malih latiničnih slova',
     '🔢' => 'unos brojeva',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hsb.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hsb.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hsb.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hsb.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'porik, kiž so koši: žona, žona, ćmowa barba kože a srěnja barba kože',
     '👩🏿‍❤‍💋‍👩🏾' => 'porik, kiž so koši: žona, žona, ćmowa barba kože a srěnjoćmowa barba kože',
     '👩🏿‍❤‍💋‍👩🏿' => 'porik, kiž so koši: žona, žona a ćmowa barba kože',
+    '🧑🏻‍🫯‍🧑🏼' => 'wosobje, kiž wjerhatej: swětła barba kože, srěnjoswětła barba kože',
+    '🧑🏻‍🫯‍🧑🏽' => 'wosobje, kiž wjerhatej: swětła barba kože, srěnja barba kože',
+    '🧑🏻‍🫯‍🧑🏾' => 'wosobje, kiž wjerhatej: swětła barba kože, srěnjoćmowa barba kože',
+    '🧑🏻‍🫯‍🧑🏿' => 'wosobje, kiž wjerhatej: swětła barba kože, ćmowa barba kože',
+    '🧑🏼‍🫯‍🧑🏻' => 'wosobje, kiž wjerhatej: srěnjoswětła barba kože, swětła barba kože',
+    '🧑🏼‍🫯‍🧑🏽' => 'wosobje, kiž wjerhatej: srěnjoswětła barba kože, srěnja barba kože',
+    '🧑🏼‍🫯‍🧑🏾' => 'wosobje, kiž wjerhatej: srěnjoswětła barba kože, srěnjoćmowa barba kože',
+    '🧑🏼‍🫯‍🧑🏿' => 'wosobje, kiž wjerhatej: srěnjoswětła barba kože, ćmowa barba kože',
+    '🧑🏽‍🫯‍🧑🏻' => 'wosobje, kiž wjerhatej: srěnja barba kože, swětła barba kože',
+    '🧑🏽‍🫯‍🧑🏼' => 'wosobje, kiž wjerhatej: srěnja barba kože, srěnjoswětła barba kože',
+    '🧑🏽‍🫯‍🧑🏾' => 'wosobje, kiž wjerhatej: srěnja barba kože, srěnjoćmowa barba kože',
+    '🧑🏽‍🫯‍🧑🏿' => 'wosobje, kiž wjerhatej: srěnja barba kože, ćmowa barba kože',
+    '🧑🏾‍🫯‍🧑🏻' => 'wosobje, kiž wjerhatej: srěnjoćmowa barba kože, swětła barba kože',
+    '🧑🏾‍🫯‍🧑🏼' => 'wosobje, kiž wjerhatej: srěnjoćmowa barba kože, srěnjoswětła barba kože',
+    '🧑🏾‍🫯‍🧑🏽' => 'wosobje, kiž wjerhatej: srěnjoćmowa barba kože, srěnja barba kože',
+    '🧑🏾‍🫯‍🧑🏿' => 'wosobje, kiž wjerhatej: srěnjoćmowa barba kože, ćmowa barba kože',
+    '🧑🏿‍🫯‍🧑🏻' => 'wosobje, kiž wjerhatej: ćmowa barba kože, swětła barba kože',
+    '🧑🏿‍🫯‍🧑🏼' => 'wosobje, kiž wjerhatej: ćmowa barba kože, srěnjoswětła barba kože',
+    '🧑🏿‍🫯‍🧑🏽' => 'wosobje, kiž wjerhatej: ćmowa barba kože, srěnja barba kože',
+    '🧑🏿‍🫯‍🧑🏾' => 'wosobje, kiž wjerhatej: ćmowa barba kože, srěnjoćmowa barba kože',
     '🧑🏻‍❤‍🧑🏼' => 'porik z wutrobičku: dorosćeny, dorosćeny, swětła barba kože a srěnjoswětła barba kože',
     '🧑🏻‍❤‍🧑🏽' => 'porik z wutrobičku: dorosćeny, dorosćeny, swětła barba kože a srěnja barba kože',
     '🧑🏻‍❤‍🧑🏾' => 'porik z wutrobičku: dorosćeny, dorosćeny, swětła barba kože a srěnjoćmowa barba kože',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'porik z wutrobičku: dorosćeny, dorosćeny, ćmowa barba kože a srěnjoswětła barba kože',
     '🧑🏿‍❤‍🧑🏽' => 'porik z wutrobičku: dorosćeny, dorosćeny, ćmowa barba kože a srěnja barba kože',
     '🧑🏿‍❤‍🧑🏾' => 'porik z wutrobičku: dorosćeny, dorosćeny, ćmowa barba kože a srěnjoćmowa barba kože',
+    '🧑🏻‍🐰‍🧑🏼' => 'wosobje ze zaječimaj wušomaj: swětła barba kože, srěnjoswětła barba kože',
+    '🧑🏻‍🐰‍🧑🏽' => 'wosobje ze zaječimaj wušomaj: swětła barba kože, srěnja barba kože',
+    '🧑🏻‍🐰‍🧑🏾' => 'wosobje ze zaječimaj wušomaj: swětła barba kože, srěnjoćmowa barba kože',
+    '🧑🏻‍🐰‍🧑🏿' => 'wosobje ze zaječimaj wušomaj: swětła barba kože, ćmowa barba kože',
+    '🧑🏼‍🐰‍🧑🏻' => 'wosobje ze zaječimaj wušomaj: srěnjoswětła barba kože, swětła barba kože',
+    '🧑🏼‍🐰‍🧑🏽' => 'wosobje ze zaječimaj wušomaj: srěnjoswětła barba kože, srěnja barba kože',
+    '🧑🏼‍🐰‍🧑🏾' => 'wosobje ze zaječimaj wušomaj: srěnjoswětła barba kože, srěnjoćmowa barba kože',
+    '🧑🏼‍🐰‍🧑🏿' => 'wosobje ze zaječimaj wušomaj: srěnjoswětła barba kože, ćmowa barba kože',
+    '🧑🏽‍🐰‍🧑🏻' => 'wosobje ze zaječimaj wušomaj: srěnja barba kože, swětła barba kože',
+    '🧑🏽‍🐰‍🧑🏼' => 'wosobje ze zaječimaj wušomaj: srěnja barba kože, srěnjoswětła barba kože',
+    '🧑🏽‍🐰‍🧑🏾' => 'wosobje ze zaječimaj wušomaj: srěnja barba kože, srěnjoćmowa barba kože',
+    '🧑🏽‍🐰‍🧑🏿' => 'wosobje ze zaječimaj wušomaj: srěnja barba kože, ćmowa barba kože',
+    '🧑🏾‍🐰‍🧑🏻' => 'wosobje ze zaječimaj wušomaj: srěnjoćmowa barba kože, swětła barba kože',
+    '🧑🏾‍🐰‍🧑🏼' => 'wosobje ze zaječimaj wušomaj: srěnjoćmowa barba kože, srěnjoswětła barba kože',
+    '🧑🏾‍🐰‍🧑🏽' => 'wosobje ze zaječimaj wušomaj: srěnjoćmowa barba kože, srěnja barba kože',
+    '🧑🏾‍🐰‍🧑🏿' => 'wosobje ze zaječimaj wušomaj: srěnjoćmowa barba kože, ćmowa barba kože',
+    '🧑🏿‍🐰‍🧑🏻' => 'wosobje ze zaječimaj wušomaj: ćmowa barba kože, swětła barba kože',
+    '🧑🏿‍🐰‍🧑🏼' => 'wosobje ze zaječimaj wušomaj: ćmowa barba kože, srěnjoswětła barba kože',
+    '🧑🏿‍🐰‍🧑🏽' => 'wosobje ze zaječimaj wušomaj: ćmowa barba kože, srěnja barba kože',
+    '🧑🏿‍🐰‍🧑🏾' => 'wosobje ze zaječimaj wušomaj: ćmowa barba kože, srěnjoćmowa barba kože',
+    '👨🏻‍🫯‍👨🏼' => 'wjerharjej: swětła barba kože, srěnjoswětła barba kože',
+    '👨🏻‍🫯‍👨🏽' => 'wjerharjej: swětła barba kože, srěnja barba kože',
+    '👨🏻‍🫯‍👨🏾' => 'wjerharjej: swětła barba kože, srěnjoćmowa barba kože',
+    '👨🏻‍🫯‍👨🏿' => 'wjerharjej: swětła barba kože, ćmowa barba kože',
+    '👨🏼‍🫯‍👨🏻' => 'wjerharjej: srěnjoswětła barba kože, swětła barba kože',
+    '👨🏼‍🫯‍👨🏽' => 'wjerharjej: srěnjoswětła barba kože, srěnja barba kože',
+    '👨🏼‍🫯‍👨🏾' => 'wjerharjej: srěnjoswětła barba kože, srěnjoćmowa barba kože',
+    '👨🏼‍🫯‍👨🏿' => 'wjerharjej: srěnjoswětła barba kože, ćmowa barba kože',
+    '👨🏽‍🫯‍👨🏻' => 'wjerharjej: srěnja barba kože, swětła barba kože',
+    '👨🏽‍🫯‍👨🏼' => 'wjerharjej: srěnja barba kože, srěnjoswětła barba kože',
+    '👨🏽‍🫯‍👨🏾' => 'wjerharjej: srěnja barba kože, srěnjoćmowa barba kože',
+    '👨🏽‍🫯‍👨🏿' => 'wjerharjej: srěnja barba kože, ćmowa barba kože',
+    '👨🏾‍🫯‍👨🏻' => 'wjerharjej: srěnjoćmowa barba kože, swětła barba kože',
+    '👨🏾‍🫯‍👨🏼' => 'wjerharjej: srěnjoćmowa barba kože, srěnjoswětła barba kože',
+    '👨🏾‍🫯‍👨🏽' => 'wjerharjej: srěnjoćmowa barba kože, srěnja barba kože',
+    '👨🏾‍🫯‍👨🏿' => 'wjerharjej: srěnjoćmowa barba kože, ćmowa barba kože',
+    '👨🏿‍🫯‍👨🏻' => 'wjerharjej: ćmowa barba kože, swětła barba kože',
+    '👨🏿‍🫯‍👨🏼' => 'wjerharjej: ćmowa barba kože, srěnjoswětła barba kože',
+    '👨🏿‍🫯‍👨🏽' => 'wjerharjej: ćmowa barba kože, srěnja barba kože',
+    '👨🏿‍🫯‍👨🏾' => 'wjerharjej: ćmowa barba kože, srěnjoćmowa barba kože',
     '👨🏻‍❤‍👨🏻' => 'porik z wutrobičku: muž, muž a swětła barba kože',
     '👨🏻‍❤‍👨🏼' => 'porik z wutrobičku: muž, muž, swětła barba kože a srěnjoswětła barba kože',
     '👨🏻‍❤‍👨🏽' => 'porik z wutrobičku: muž, muž, swětła barba kože a srěnja barba kože',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'porik z wutrobičku: muž, muž, ćmowa barba kože a srěnja barba kože',
     '👨🏿‍❤‍👨🏾' => 'porik z wutrobičku: muž, muž, ćmowa barba kože a srěnjoćmowa barba kože',
     '👨🏿‍❤‍👨🏿' => 'porik z wutrobičku: muž, muž a ćmowa barba kože',
+    '👨🏻‍🐰‍👨🏼' => 'mužej ze zaječimaj wušomaj: swětła barba kože, srěnjoswětła barba kože',
+    '👨🏻‍🐰‍👨🏽' => 'mužej ze zaječimaj wušomaj: swětła barba kože, srěnja barba kože',
+    '👨🏻‍🐰‍👨🏾' => 'mužej ze zaječimaj wušomaj: swětła barba kože, srěnjoćmowa barba kože',
+    '👨🏻‍🐰‍👨🏿' => 'mužej ze zaječimaj wušomaj: swětła barba kože, ćmowa barba kože',
+    '👨🏼‍🐰‍👨🏻' => 'mužej ze zaječimaj wušomaj: srěnjoswětła barba kože, swětła barba kože',
+    '👨🏼‍🐰‍👨🏽' => 'mužej ze zaječimaj wušomaj: srěnjoswětła barba kože, srěnja barba kože',
+    '👨🏼‍🐰‍👨🏾' => 'mužej ze zaječimaj wušomaj: srěnjoswětła barba kože, srěnjoćmowa barba kože',
+    '👨🏼‍🐰‍👨🏿' => 'mužej ze zaječimaj wušomaj: srěnjoswětła barba kože, ćmowa barba kože',
+    '👨🏽‍🐰‍👨🏻' => 'mužej ze zaječimaj wušomaj: srěnja barba kože, swětła barba kože',
+    '👨🏽‍🐰‍👨🏼' => 'mužej ze zaječimaj wušomaj: srěnja barba kože, srěnjoswětła barba kože',
+    '👨🏽‍🐰‍👨🏾' => 'mužej ze zaječimaj wušomaj: srěnja barba kože, srěnjoćmowa barba kože',
+    '👨🏽‍🐰‍👨🏿' => 'mužej ze zaječimaj wušomaj: srěnja barba kože, ćmowa barba kože',
+    '👨🏾‍🐰‍👨🏻' => 'mužej ze zaječimaj wušomaj: srěnjoćmowa barba kože, swětła barba kože',
+    '👨🏾‍🐰‍👨🏼' => 'mužej ze zaječimaj wušomaj: srěnjoćmowa barba kože, srěnjoswětła barba kože',
+    '👨🏾‍🐰‍👨🏽' => 'mužej ze zaječimaj wušomaj: srěnjoćmowa barba kože, srěnja barba kože',
+    '👨🏾‍🐰‍👨🏿' => 'mužej ze zaječimaj wušomaj: srěnjoćmowa barba kože, ćmowa barba kože',
+    '👨🏿‍🐰‍👨🏻' => 'mužej ze zaječimaj wušomaj: ćmowa barba kože, swětła barba kože',
+    '👨🏿‍🐰‍👨🏼' => 'mužej ze zaječimaj wušomaj: ćmowa barba kože, srěnjoswětła barba kože',
+    '👨🏿‍🐰‍👨🏽' => 'mužej ze zaječimaj wušomaj: ćmowa barba kože, srěnja barba kože',
+    '👨🏿‍🐰‍👨🏾' => 'mužej ze zaječimaj wušomaj: ćmowa barba kože, srěnjoćmowa barba kože',
+    '👩🏻‍🫯‍👩🏼' => 'wjerharce: swětła barba kože, srěnjoswětła barba kože',
+    '👩🏻‍🫯‍👩🏽' => 'wjerharce: swětła barba kože, srěnja barba kože',
+    '👩🏻‍🫯‍👩🏾' => 'wjerharce: swětła barba kože, srěnjoćmowa barba kože',
+    '👩🏻‍🫯‍👩🏿' => 'wjerharce: swětła barba kože, ćmowa barba kože',
+    '👩🏼‍🫯‍👩🏻' => 'wjerharce: srěnjoswětła barba kože, swětła barba kože',
+    '👩🏼‍🫯‍👩🏽' => 'wjerharce: srěnjoswětła barba kože, srěnja barba kože',
+    '👩🏼‍🫯‍👩🏾' => 'wjerharce: srěnjoswětła barba kože, srěnjoćmowa barba kože',
+    '👩🏼‍🫯‍👩🏿' => 'wjerharce: srěnjoswětła barba kože, ćmowa barba kože',
+    '👩🏽‍🫯‍👩🏻' => 'wjerharce: srěnja barba kože, swětła barba kože',
+    '👩🏽‍🫯‍👩🏼' => 'wjerharce: srěnja barba kože, srěnjoswětła barba kože',
+    '👩🏽‍🫯‍👩🏾' => 'wjerharce: srěnja barba kože, srěnjoćmowa barba kože',
+    '👩🏽‍🫯‍👩🏿' => 'wjerharce: srěnja barba kože, ćmowa barba kože',
+    '👩🏾‍🫯‍👩🏻' => 'wjerharce: srěnjoćmowa barba kože, swětła barba kože',
+    '👩🏾‍🫯‍👩🏼' => 'wjerharce: srěnjoćmowa barba kože, srěnjoswětła barba kože',
+    '👩🏾‍🫯‍👩🏽' => 'wjerharce: srěnjoćmowa barba kože, srěnja barba kože',
+    '👩🏾‍🫯‍👩🏿' => 'wjerharce: srěnjoćmowa barba kože, ćmowa barba kože',
+    '👩🏿‍🫯‍👩🏻' => 'wjerharce: ćmowa barba kože, swětła barba kože',
+    '👩🏿‍🫯‍👩🏼' => 'wjerharce: ćmowa barba kože, srěnjoswětła barba kože',
+    '👩🏿‍🫯‍👩🏽' => 'wjerharce: ćmowa barba kože, srěnja barba kože',
+    '👩🏿‍🫯‍👩🏾' => 'wjerharce: ćmowa barba kože, srěnjoćmowa barba kože',
     '👩🏻‍❤‍👨🏻' => 'porik z wutrobičku: žona, muž a swětła barba kože',
     '👩🏻‍❤‍👨🏼' => 'porik z wutrobičku: žona, muž, swětła barba kože a srěnjoswětła barba kože',
     '👩🏻‍❤‍👨🏽' => 'porik z wutrobičku: žona, muž, swětła barba kože a srěnja barba kože',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'porik z wutrobičku: žona, žona, ćmowa barba kože a srěnja barba kože',
     '👩🏿‍❤‍👩🏾' => 'porik z wutrobičku: žona, žona, ćmowa barba kože a srěnjoćmowa barba kože',
     '👩🏿‍❤‍👩🏿' => 'porik z wutrobičku: žona, žona a ćmowa barba kože',
+    '👩🏻‍🐰‍👩🏼' => 'žonje ze zaječimaj wušomaj: swětła barba kože, srěnjoswětła barba kože',
+    '👩🏻‍🐰‍👩🏽' => 'žonje ze zaječimaj wušomaj: swětła barba kože, srěnja barba kože',
+    '👩🏻‍🐰‍👩🏾' => 'žonje ze zaječimaj wušomaj: swětła barba kože, srěnjoćmowa barba kože',
+    '👩🏻‍🐰‍👩🏿' => 'žonje ze zaječimaj wušomaj: swětła barba kože, ćmowa barba kože',
+    '👩🏼‍🐰‍👩🏻' => 'žonje ze zaječimaj wušomaj: srěnjoswětła barba kože, swětła barba kože',
+    '👩🏼‍🐰‍👩🏽' => 'žonje ze zaječimaj wušomaj: srěnjoswětła barba kože, srěnja barba kože',
+    '👩🏼‍🐰‍👩🏾' => 'žonje ze zaječimaj wušomaj: srěnjoswětła barba kože, srěnjoćmowa barba kože',
+    '👩🏼‍🐰‍👩🏿' => 'žonje ze zaječimaj wušomaj: srěnjoswětła barba kože, ćmowa barba kože',
+    '👩🏽‍🐰‍👩🏻' => 'žonje ze zaječimaj wušomaj: srěnja barba kože, swětła barba kože',
+    '👩🏽‍🐰‍👩🏼' => 'žonje ze zaječimaj wušomaj: srěnja barba kože, srěnjoswětła barba kože',
+    '👩🏽‍🐰‍👩🏾' => 'žonje ze zaječimaj wušomaj: srěnja barba kože, srěnjoćmowa barba kože',
+    '👩🏽‍🐰‍👩🏿' => 'žonje ze zaječimaj wušomaj: srěnja barba kože, ćmowa barba kože',
+    '👩🏾‍🐰‍👩🏻' => 'žonje ze zaječimaj wušomaj: srěnjoćmowa barba kože, swětła barba kože',
+    '👩🏾‍🐰‍👩🏼' => 'žonje ze zaječimaj wušomaj: srěnjoćmowa barba kože, srěnjoswětła barba kože',
+    '👩🏾‍🐰‍👩🏽' => 'žonje ze zaječimaj wušomaj: srěnjoćmowa barba kože, srěnja barba kože',
+    '👩🏾‍🐰‍👩🏿' => 'žonje ze zaječimaj wušomaj: srěnjoćmowa barba kože, ćmowa barba kože',
+    '👩🏿‍🐰‍👩🏻' => 'žonje ze zaječimaj wušomaj: ćmowa barba kože, swětła barba kože',
+    '👩🏿‍🐰‍👩🏼' => 'žonje ze zaječimaj wušomaj: ćmowa barba kože, srěnjoswětła barba kože',
+    '👩🏿‍🐰‍👩🏽' => 'žonje ze zaječimaj wušomaj: ćmowa barba kože, srěnja barba kože',
+    '👩🏿‍🐰‍👩🏾' => 'žonje ze zaječimaj wušomaj: ćmowa barba kože, srěnjoćmowa barba kože',
     '🧑🏻‍🤝‍🧑🏻' => 'dwě wosobje dźeržitej so za ruku: swětła barba kože',
     '🧑🏻‍🤝‍🧑🏼' => 'dwě wosobje dźeržitej so za ruku: swětła barba kože, srěnjoswětła barba kože',
     '🧑🏻‍🤝‍🧑🏽' => 'dwě wosobje dźeržitej so za ruku: swětła barba kože, srěnja barba kože',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'swójba: žona, žona, hólc a hólc',
     '👩‍👩‍👧‍👧' => 'swójba: žona, žona, holca a holca',
     '🧑‍🧑‍🧒‍🧒' => 'swójba: dorosćenaj a dźěsći',
-    '🚶🏻‍♀‍➡' => 'pěška doprawa',
-    '🚶🏼‍♀‍➡' => 'pěška doprawa',
-    '🚶🏽‍♀‍➡' => 'pěška doprawa',
-    '🚶🏾‍♀‍➡' => 'pěška doprawa',
-    '🚶🏿‍♀‍➡' => 'pěška doprawa',
-    '🚶🏻‍♂‍➡' => 'pěšk doprawa',
-    '🚶🏼‍♂‍➡' => 'pěšk doprawa',
-    '🚶🏽‍♂‍➡' => 'pěšk doprawa',
-    '🚶🏾‍♂‍➡' => 'pěšk doprawa',
-    '🚶🏿‍♂‍➡' => 'pěšk doprawa',
-    '🧎🏻‍♀‍➡' => 'klečaca žona doprawa',
-    '🧎🏼‍♀‍➡' => 'klečaca žona doprawa',
-    '🧎🏽‍♀‍➡' => 'klečaca žona doprawa',
-    '🧎🏾‍♀‍➡' => 'klečaca žona doprawa',
-    '🧎🏿‍♀‍➡' => 'klečaca žona doprawa',
-    '🧎🏻‍♂‍➡' => 'klečacy muž doprawa',
-    '🧎🏼‍♂‍➡' => 'klečacy muž doprawa',
-    '🧎🏽‍♂‍➡' => 'klečacy muž doprawa',
-    '🧎🏾‍♂‍➡' => 'klečacy muž doprawa',
-    '🧎🏿‍♂‍➡' => 'klečacy muž doprawa',
-    '🧑🏻‍🦯‍➡' => 'wosoba z kijom za slepych doprawa',
-    '🧑🏼‍🦯‍➡' => 'wosoba z kijom za slepych doprawa',
-    '🧑🏽‍🦯‍➡' => 'wosoba z kijom za slepych doprawa',
-    '🧑🏾‍🦯‍➡' => 'wosoba z kijom za slepych doprawa',
-    '🧑🏿‍🦯‍➡' => 'wosoba z kijom za slepych doprawa',
-    '👨🏻‍🦯‍➡' => 'muž z kijom za slepych doprawa',
-    '👨🏼‍🦯‍➡' => 'muž z kijom za slepych doprawa',
-    '👨🏽‍🦯‍➡' => 'muž z kijom za slepych doprawa',
-    '👨🏾‍🦯‍➡' => 'muž z kijom za slepych doprawa',
-    '👨🏿‍🦯‍➡' => 'muž z kijom za slepych doprawa',
-    '👩🏻‍🦯‍➡' => 'žona z kijom za slepych doprawa',
-    '👩🏼‍🦯‍➡' => 'žona z kijom za slepych doprawa',
-    '👩🏽‍🦯‍➡' => 'žona z kijom za slepych doprawa',
-    '👩🏾‍🦯‍➡' => 'žona z kijom za slepych doprawa',
-    '👩🏿‍🦯‍➡' => 'žona z kijom za slepych doprawa',
-    '🧑🏻‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole doprawa',
-    '🧑🏼‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole doprawa',
-    '🧑🏽‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole doprawa',
-    '🧑🏾‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole doprawa',
-    '🧑🏿‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole doprawa',
-    '👨🏻‍🦼‍➡' => 'muž w elektriskim jězbnym stole doprawa',
-    '👨🏼‍🦼‍➡' => 'muž w elektriskim jězbnym stole doprawa',
-    '👨🏽‍🦼‍➡' => 'muž w elektriskim jězbnym stole doprawa',
-    '👨🏾‍🦼‍➡' => 'muž w elektriskim jězbnym stole doprawa',
-    '👨🏿‍🦼‍➡' => 'muž w elektriskim jězbnym stole doprawa',
-    '👩🏻‍🦼‍➡' => 'žona w elektriskim jězbnym stole doprawa',
-    '👩🏼‍🦼‍➡' => 'žona w elektriskim jězbnym stole doprawa',
-    '👩🏽‍🦼‍➡' => 'žona w elektriskim jězbnym stole doprawa',
-    '👩🏾‍🦼‍➡' => 'žona w elektriskim jězbnym stole doprawa',
-    '👩🏿‍🦼‍➡' => 'žona w elektriskim jězbnym stole doprawa',
-    '🧑🏻‍🦽‍➡' => 'wosoba w jězbnym stole doprawa',
-    '🧑🏼‍🦽‍➡' => 'wosoba w jězbnym stole doprawa',
-    '🧑🏽‍🦽‍➡' => 'wosoba w jězbnym stole doprawa',
-    '🧑🏾‍🦽‍➡' => 'wosoba w jězbnym stole doprawa',
-    '🧑🏿‍🦽‍➡' => 'wosoba w jězbnym stole doprawa',
-    '👨🏻‍🦽‍➡' => 'muž w jězbnym stole doprawa',
-    '👨🏼‍🦽‍➡' => 'muž w jězbnym stole doprawa',
-    '👨🏽‍🦽‍➡' => 'muž w jězbnym stole doprawa',
-    '👨🏾‍🦽‍➡' => 'muž w jězbnym stole doprawa',
-    '👨🏿‍🦽‍➡' => 'muž w jězbnym stole doprawa',
-    '👩🏻‍🦽‍➡' => 'žona w jězbnym stole doprawa',
-    '👩🏼‍🦽‍➡' => 'žona w jězbnym stole doprawa',
-    '👩🏽‍🦽‍➡' => 'žona w jězbnym stole doprawa',
-    '👩🏾‍🦽‍➡' => 'žona w jězbnym stole doprawa',
-    '👩🏿‍🦽‍➡' => 'žona w jězbnym stole doprawa',
-    '🏃🏻‍♀‍➡' => 'běhaca žona doprawa',
-    '🏃🏼‍♀‍➡' => 'běhaca žona doprawa',
-    '🏃🏽‍♀‍➡' => 'běhaca žona doprawa',
-    '🏃🏾‍♀‍➡' => 'běhaca žona doprawa',
-    '🏃🏿‍♀‍➡' => 'běhaca žona doprawa',
-    '🏃🏻‍♂‍➡' => 'běhacy muž doprawa',
-    '🏃🏼‍♂‍➡' => 'běhacy muž doprawa',
-    '🏃🏽‍♂‍➡' => 'běhacy muž doprawa',
-    '🏃🏾‍♂‍➡' => 'běhacy muž doprawa',
-    '🏃🏿‍♂‍➡' => 'běhacy muž doprawa',
+    '🚶🏻‍♀‍➡' => 'pěška: swětła barba kože, doprawa',
+    '🚶🏼‍♀‍➡' => 'pěška: srěnjoswětła barba kože, doprawa',
+    '🚶🏽‍♀‍➡' => 'pěška: srěnja barba kože, doprawa',
+    '🚶🏾‍♀‍➡' => 'pěška: srěnjoćmowa barba kože, doprawa',
+    '🚶🏿‍♀‍➡' => 'pěška: ćmowa barba kože, doprawa',
+    '🚶🏻‍♂‍➡' => 'pěšk: swětła barba kože, doprawa',
+    '🚶🏼‍♂‍➡' => 'pěšk: srěnjoswětła barba kože, doprawa',
+    '🚶🏽‍♂‍➡' => 'pěšk: srěnja barba kože, doprawa',
+    '🚶🏾‍♂‍➡' => 'pěšk: srěnjoćmowa barba kože, doprawa',
+    '🚶🏿‍♂‍➡' => 'pěšk: ćmowa barba kože, doprawa',
+    '🧎🏻‍♀‍➡' => 'klečaca žona: swětła barba kože, doprawa',
+    '🧎🏼‍♀‍➡' => 'klečaca žona: srěnjoswětła barba kože, doprawa',
+    '🧎🏽‍♀‍➡' => 'klečaca žona: srěnja barba kože, doprawa',
+    '🧎🏾‍♀‍➡' => 'klečaca žona: srěnjoćmowa barba kože, doprawa',
+    '🧎🏿‍♀‍➡' => 'klečaca žona: ćmowa barba kože, doprawa',
+    '🧎🏻‍♂‍➡' => 'klečacy muž: swětła barba kože, doprawa',
+    '🧎🏼‍♂‍➡' => 'klečacy muž: srěnjoswětła barba kože, doprawa',
+    '🧎🏽‍♂‍➡' => 'klečacy muž: srěnja barba kože, doprawa',
+    '🧎🏾‍♂‍➡' => 'klečacy muž: srěnjoćmowa barba kože, doprawa',
+    '🧎🏿‍♂‍➡' => 'klečacy muž: ćmowa barba kože, doprawa',
+    '🧑🏻‍🦯‍➡' => 'wosoba z kijom za slepych: swětła barba kože, doprawa',
+    '🧑🏼‍🦯‍➡' => 'wosoba z kijom za slepych: srěnjoswětła barba kože, doprawa',
+    '🧑🏽‍🦯‍➡' => 'wosoba z kijom za slepych: srěnja barba kože, doprawa',
+    '🧑🏾‍🦯‍➡' => 'wosoba z kijom za slepych: srěnjoćmowa barba kože, doprawa',
+    '🧑🏿‍🦯‍➡' => 'wosoba z kijom za slepych: ćmowa barba kože, doprawa',
+    '👨🏻‍🦯‍➡' => 'muž z kijom za slepych: swětła barba kože, doprawa',
+    '👨🏼‍🦯‍➡' => 'muž z kijom za slepych: srěnjoswětła barba kože, doprawa',
+    '👨🏽‍🦯‍➡' => 'muž z kijom za slepych: srěnja barba kože, doprawa',
+    '👨🏾‍🦯‍➡' => 'muž z kijom za slepych: srěnjoćmowa barba kože, doprawa',
+    '👨🏿‍🦯‍➡' => 'muž z kijom za slepych: ćmowa barba kože, doprawa',
+    '👩🏻‍🦯‍➡' => 'žona z kijom za slepych: swětła barba kože, doprawa',
+    '👩🏼‍🦯‍➡' => 'žona z kijom za slepych: srěnjoswětła barba kože, doprawa',
+    '👩🏽‍🦯‍➡' => 'žona z kijom za slepych: srěnja barba kože, doprawa',
+    '👩🏾‍🦯‍➡' => 'žona z kijom za slepych: srěnjoćmowa barba kože, doprawa',
+    '👩🏿‍🦯‍➡' => 'žona z kijom za slepych: ćmowa barba kože, doprawa',
+    '🧑🏻‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole: swětła barba kože, doprawa',
+    '🧑🏼‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole: srěnjoswětła barba kože, doprawa',
+    '🧑🏽‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole: srěnja barba kože, doprawa',
+    '🧑🏾‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole: srěnjoćmowa barba kože, doprawa',
+    '🧑🏿‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole: ćmowa barba kože, doprawa',
+    '👨🏻‍🦼‍➡' => 'muž w elektriskim jězbnym stole: swětła barba kože, doprawa',
+    '👨🏼‍🦼‍➡' => 'muž w elektriskim jězbnym stole: srěnjoswětła barba kože, doprawa',
+    '👨🏽‍🦼‍➡' => 'muž w elektriskim jězbnym stole: srěnja barba kože, doprawa',
+    '👨🏾‍🦼‍➡' => 'muž w elektriskim jězbnym stole: srěnjoćmowa barba kože, doprawa',
+    '👨🏿‍🦼‍➡' => 'muž w elektriskim jězbnym stole: ćmowa barba kože, doprawa',
+    '👩🏻‍🦼‍➡' => 'žona w elektriskim jězbnym stole: swětła barba kože, doprawa',
+    '👩🏼‍🦼‍➡' => 'žona w elektriskim jězbnym stole: srěnjoswětła barba kože, doprawa',
+    '👩🏽‍🦼‍➡' => 'žona w elektriskim jězbnym stole: srěnja barba kože, doprawa',
+    '👩🏾‍🦼‍➡' => 'žona w elektriskim jězbnym stole: srěnjoćmowa barba kože, doprawa',
+    '👩🏿‍🦼‍➡' => 'žona w elektriskim jězbnym stole: ćmowa barba kože, doprawa',
+    '🧑🏻‍🦽‍➡' => 'wosoba w jězbnym stole: swětła barba kože, doprawa',
+    '🧑🏼‍🦽‍➡' => 'wosoba w jězbnym stole: srěnjoswětła barba kože, doprawa',
+    '🧑🏽‍🦽‍➡' => 'wosoba w jězbnym stole: srěnja barba kože, doprawa',
+    '🧑🏾‍🦽‍➡' => 'wosoba w jězbnym stole: srěnjoćmowa barba kože, doprawa',
+    '🧑🏿‍🦽‍➡' => 'wosoba w jězbnym stole: ćmowa barba kože, doprawa',
+    '👨🏻‍🦽‍➡' => 'muž w jězbnym stole: swětła barba kože, doprawa',
+    '👨🏼‍🦽‍➡' => 'muž w jězbnym stole: srěnjoswětła barba kože, doprawa',
+    '👨🏽‍🦽‍➡' => 'muž w jězbnym stole: srěnja barba kože, doprawa',
+    '👨🏾‍🦽‍➡' => 'muž w jězbnym stole: srěnjoćmowa barba kože, doprawa',
+    '👨🏿‍🦽‍➡' => 'muž w jězbnym stole: ćmowa barba kože, doprawa',
+    '👩🏻‍🦽‍➡' => 'žona w jězbnym stole: swětła barba kože, doprawa',
+    '👩🏼‍🦽‍➡' => 'žona w jězbnym stole: srěnjoswětła barba kože, doprawa',
+    '👩🏽‍🦽‍➡' => 'žona w jězbnym stole: srěnja barba kože, doprawa',
+    '👩🏾‍🦽‍➡' => 'žona w jězbnym stole: srěnjoćmowa barba kože, doprawa',
+    '👩🏿‍🦽‍➡' => 'žona w jězbnym stole: ćmowa barba kože, doprawa',
+    '🏃🏻‍♀‍➡' => 'běhaca žona: swětła barba kože, doprawa',
+    '🏃🏼‍♀‍➡' => 'běhaca žona: srěnjoswětła barba kože, doprawa',
+    '🏃🏽‍♀‍➡' => 'běhaca žona: srěnja barba kože, doprawa',
+    '🏃🏾‍♀‍➡' => 'běhaca žona: srěnjoćmowa barba kože, doprawa',
+    '🏃🏿‍♀‍➡' => 'běhaca žona: ćmowa barba kože, doprawa',
+    '🏃🏻‍♂‍➡' => 'běhacy muž: swětła barba kože, doprawa',
+    '🏃🏼‍♂‍➡' => 'běhacy muž: srěnjoswětła barba kože, doprawa',
+    '🏃🏽‍♂‍➡' => 'běhacy muž: srěnja barba kože, doprawa',
+    '🏃🏾‍♂‍➡' => 'běhacy muž: srěnjoćmowa barba kože, doprawa',
+    '🏃🏿‍♂‍➡' => 'běhacy muž: ćmowa barba kože, doprawa',
     '🫱🏻‍🫲🏼' => 'zawdaće ruki: swětła barba kože, srěnjoswětła barba kože',
     '🫱🏻‍🫲🏽' => 'zawdaće ruki: swětła barba kože, srěnja barba kože',
     '🫱🏻‍🫲🏾' => 'zawdaće ruki: swětła barba kože, srěnjoćmowa barba kože',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'zawdaće ruki: ćmowa barba kože, srěnjoswětła barba kože',
     '🫱🏿‍🫲🏽' => 'zawdaće ruki: ćmowa barba kože, srěnja barba kože',
     '🫱🏿‍🫲🏾' => 'zawdaće ruki: ćmowa barba kože, srěnjoćmowa barba kože',
-    '🚶‍♀‍➡' => 'pěška doprawa',
-    '🚶‍♂‍➡' => 'pěšk doprawa',
-    '🧎‍♀‍➡' => 'klečaca žona doprawa',
-    '🧎‍♂‍➡' => 'klečacy muž doprawa',
-    '🧑‍🦯‍➡' => 'wosoba z kijom za slepych doprawa',
-    '👨‍🦯‍➡' => 'muž z kijom za slepych doprawa',
-    '👩‍🦯‍➡' => 'žona z kijom za slepych doprawa',
-    '🧑‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole doprawa',
-    '👨‍🦼‍➡' => 'muž w elektriskim jězbnym stole doprawa',
-    '👩‍🦼‍➡' => 'žona w elektriskim jězbnym stole doprawa',
-    '🧑‍🦽‍➡' => 'wosoba w jězbnym stole doprawa',
-    '👨‍🦽‍➡' => 'muž w jězbnym stole doprawa',
-    '👩‍🦽‍➡' => 'žona w jězbnym stole doprawa',
-    '🏃‍♀‍➡' => 'běhaca žona doprawa',
-    '🏃‍♂‍➡' => 'běhacy muž doprawa',
+    '🚶‍♀‍➡' => 'pěška: doprawa',
+    '🚶‍♂‍➡' => 'pěšk: doprawa',
+    '🧎‍♀‍➡' => 'klečaca žona: doprawa',
+    '🧎‍♂‍➡' => 'klečacy muž: doprawa',
+    '🧑‍🦯‍➡' => 'wosoba z kijom za slepych: doprawa',
+    '👨‍🦯‍➡' => 'muž z kijom za slepych: doprawa',
+    '👩‍🦯‍➡' => 'žona z kijom za slepych: doprawa',
+    '🧑‍🦼‍➡' => 'wosoba w elektriskim jězbnym stole: doprawa',
+    '👨‍🦼‍➡' => 'muž w elektriskim jězbnym stole: doprawa',
+    '👩‍🦼‍➡' => 'žona w elektriskim jězbnym stole: doprawa',
+    '🧑‍🦽‍➡' => 'wosoba w jězbnym stole: doprawa',
+    '👨‍🦽‍➡' => 'muž w jězbnym stole: doprawa',
+    '👩‍🦽‍➡' => 'žona w jězbnym stole: doprawa',
+    '🏃‍♀‍➡' => 'běhaca žona: doprawa',
+    '🏃‍♂‍➡' => 'běhacy muž: doprawa',
     '👩‍❤‍👨' => 'porik z wutrobičku: žona, muž',
     '👨‍❤‍👨' => 'porik z wutrobičku: muž, muž',
     '👩‍❤‍👩' => 'porik z wutrobičku: žona, žona',
@@ -437,6 +557,11 @@
     '🧑🏽‍🦲' => 'dorosćeny: srěnja barba kože, plěch',
     '🧑🏾‍🦲' => 'dorosćeny: srěnjoćmowa barba kože, plěch',
     '🧑🏿‍🦲' => 'dorosćeny: ćmowa barba kože, plěch',
+    '🧑🏻‍🩰' => 'baletowa rejowarka: swětła barba kože',
+    '🧑🏼‍🩰' => 'baletowa rejowarka: srěnjoswětła barba kože',
+    '🧑🏽‍🩰' => 'baletowa rejowarka: srěnja barba kože',
+    '🧑🏾‍🩰' => 'baletowa rejowarka: srěnjoćmowa barba kože',
+    '🧑🏿‍🩰' => 'baletowa rejowarka: ćmowa barba kože',
     '🧔🏻‍♂' => 'muž: swětła barba kože, broda',
     '🧔🏼‍♂' => 'muž: srěnjoswětła barba kože, broda',
     '🧔🏽‍♂' => 'muž: srěnja barba kože, broda',
@@ -1027,11 +1152,11 @@
     '🚶🏽‍♀' => 'pěška: srěnja barba kože',
     '🚶🏾‍♀' => 'pěška: srěnjoćmowa barba kože',
     '🚶🏿‍♀' => 'pěška: ćmowa barba kože',
-    '🚶🏻‍➡' => 'wosoba, kiž je pěši po puću doprawa',
-    '🚶🏼‍➡' => 'wosoba, kiž je pěši po puću doprawa',
-    '🚶🏽‍➡' => 'wosoba, kiž je pěši po puću doprawa',
-    '🚶🏾‍➡' => 'wosoba, kiž je pěši po puću doprawa',
-    '🚶🏿‍➡' => 'wosoba, kiž je pěši po puću doprawa',
+    '🚶🏻‍➡' => 'wosoba, kiž je pěši po puću: swětła barba kože, doprawa',
+    '🚶🏼‍➡' => 'wosoba, kiž je pěši po puću: srěnjoswětła barba kože, doprawa',
+    '🚶🏽‍➡' => 'wosoba, kiž je pěši po puću: srěnja barba kože, doprawa',
+    '🚶🏾‍➡' => 'wosoba, kiž je pěši po puću: srěnjoćmowa barba kože, doprawa',
+    '🚶🏿‍➡' => 'wosoba, kiž je pěši po puću: ćmowa barba kože, doprawa',
     '🧍🏻‍♂' => 'stejacy muž: swětła barba kože',
     '🧍🏼‍♂' => 'stejacy muž: srěnjoswětła barba kože',
     '🧍🏽‍♂' => 'stejacy muž: srěnja barba kože',
@@ -1052,11 +1177,11 @@
     '🧎🏽‍♀' => 'klečaca žona: srěnja barba kože',
     '🧎🏾‍♀' => 'klečaca žona: srěnjoćmowa barba kože',
     '🧎🏿‍♀' => 'klečaca žona: ćmowa barba kože',
-    '🧎🏻‍➡' => 'klečaca wosoba doprawa',
-    '🧎🏼‍➡' => 'klečaca wosoba doprawa',
-    '🧎🏽‍➡' => 'klečaca wosoba doprawa',
-    '🧎🏾‍➡' => 'klečaca wosoba doprawa',
-    '🧎🏿‍➡' => 'klečaca wosoba doprawa',
+    '🧎🏻‍➡' => 'klečaca wosoba: swětła barba kože, doprawa',
+    '🧎🏼‍➡' => 'klečaca wosoba: srěnjoswětła barba kože, doprawa',
+    '🧎🏽‍➡' => 'klečaca wosoba: srěnja barba kože, doprawa',
+    '🧎🏾‍➡' => 'klečaca wosoba: srěnjoćmowa barba kože, doprawa',
+    '🧎🏿‍➡' => 'klečaca wosoba: ćmowa barba kože, doprawa',
     '🧑🏻‍🦯' => 'wosoba z kijom za slepych: swětła barba kože',
     '🧑🏼‍🦯' => 'wosoba z kijom za slepych: srěnjoswětła barba kože',
     '🧑🏽‍🦯' => 'wosoba z kijom za slepych: srěnja barba kože',
@@ -1112,11 +1237,21 @@
     '🏃🏽‍♀' => 'běhaca žona: srěnja barba kože',
     '🏃🏾‍♀' => 'běhaca žona: srěnjoćmowa barba kože',
     '🏃🏿‍♀' => 'běhaca žona: ćmowa barba kože',
-    '🏃🏻‍➡' => 'běhaca wosoba doprawa',
-    '🏃🏼‍➡' => 'běhaca wosoba doprawa',
-    '🏃🏽‍➡' => 'běhaca wosoba doprawa',
-    '🏃🏾‍➡' => 'běhaca wosoba doprawa',
-    '🏃🏿‍➡' => 'běhaca wosoba doprawa',
+    '🏃🏻‍➡' => 'běhaca wosoba: swětła barba kože, doprawa',
+    '🏃🏼‍➡' => 'běhaca wosoba: srěnjoswětła barba kože, doprawa',
+    '🏃🏽‍➡' => 'běhaca wosoba: srěnja barba kože, doprawa',
+    '🏃🏾‍➡' => 'běhaca wosoba: srěnjoćmowa barba kože, doprawa',
+    '🏃🏿‍➡' => 'běhaca wosoba: ćmowa barba kože, doprawa',
+    '👯🏻‍♀' => 'žonje ze zaječimaj wušomaj: swětła barba kože',
+    '👯🏼‍♀' => 'žonje ze zaječimaj wušomaj: srěnjoswětła barba kože',
+    '👯🏽‍♀' => 'žonje ze zaječimaj wušomaj: srěnja barba kože',
+    '👯🏾‍♀' => 'žonje ze zaječimaj wušomaj: srěnjoćmowa barba kože',
+    '👯🏿‍♀' => 'žonje ze zaječimaj wušomaj: ćmowa barba kože',
+    '👯🏻‍♂' => 'mužej ze zaječimaj wušomaj: swětła barba kože',
+    '👯🏼‍♂' => 'mužej ze zaječimaj wušomaj: srěnjoswětła barba kože',
+    '👯🏽‍♂' => 'mužej ze zaječimaj wušomaj: srěnja barba kože',
+    '👯🏾‍♂' => 'mužej ze zaječimaj wušomaj: srěnjoćmowa barba kože',
+    '👯🏿‍♂' => 'mužej ze zaječimaj wušomaj: ćmowa barba kože',
     '🧖🏻‍♂' => 'muž w sawnje: swětła barba kože',
     '🧖🏼‍♂' => 'muž w sawnje: srěnjoswětła barba kože',
     '🧖🏽‍♂' => 'muž w sawnje: srěnja barba kože',
@@ -1227,6 +1362,16 @@
     '🤸🏽‍♀' => 'žona, kiž so nabok přemjetuje: srěnja barba kože',
     '🤸🏾‍♀' => 'žona, kiž so nabok přemjetuje: srěnjoćmowa barba kože',
     '🤸🏿‍♀' => 'žona, kiž so nabok přemjetuje: ćmowa barba kože',
+    '🤼🏻‍♀' => 'wjerharce: swětła barba kože',
+    '🤼🏼‍♀' => 'wjerharce: srěnjoswětła barba kože',
+    '🤼🏽‍♀' => 'wjerharce: srěnja barba kože',
+    '🤼🏾‍♀' => 'wjerharce: srěnjoćmowa barba kože',
+    '🤼🏿‍♀' => 'wjerharce: ćmowa barba kože',
+    '🤼🏻‍♂' => 'wjerharjej: swětła barba kože',
+    '🤼🏼‍♂' => 'wjerharjej: srěnjoswětła barba kože',
+    '🤼🏽‍♂' => 'wjerharjej: srěnja barba kože',
+    '🤼🏾‍♂' => 'wjerharjej: srěnjoćmowa barba kože',
+    '🤼🏿‍♂' => 'wjerharjej: ćmowa barba kože',
     '🤽🏻‍♂' => 'hrajer wodobula: swětła barba kože',
     '🤽🏼‍♂' => 'hrajer wodobula: srěnjoswětła barba kože',
     '🤽🏽‍♂' => 'hrajer wodobula: srěnja barba kože',
@@ -1279,9 +1424,9 @@
     '👩‍🦱' => 'žona: kudźerjate włosy',
     '👩‍🦳' => 'žona: šědźiwe włosy',
     '👩‍🦲' => 'žona: plěch',
-    '🚶‍➡' => 'wosoba, kiž je pěši po puću doprawa',
-    '🧎‍➡' => 'klečaca wosoba doprawa',
-    '🏃‍➡' => 'běhaca wosoba doprawa',
+    '🚶‍➡' => 'wosoba, kiž je pěši po puću: doprawa',
+    '🧎‍➡' => 'klečaca wosoba: doprawa',
+    '🏃‍➡' => 'běhaca wosoba: doprawa',
     '👨‍👦' => 'swójba: muž, hólc',
     '👨‍👧' => 'swójba: muž, holca',
     '👩‍👦' => 'swójba: žona, hólc',
@@ -1422,6 +1567,7 @@
     '👩‍🦽' => 'žona w jězbnym stole',
     '🏃‍♂' => 'běhacy muž',
     '🏃‍♀' => 'běhaca žona',
+    '🧑‍🩰' => 'baletowa rejowarka',
     '👯‍♂' => 'mužej ze zaječimaj wušomaj',
     '👯‍♀' => 'žonje ze zaječimaj wušomaj',
     '🧖‍♂' => 'muž w sawnje',
@@ -2003,6 +2149,11 @@
     '🕴🏽' => 'muž we wobleku, kiž so znošuje: srěnja barba kože',
     '🕴🏾' => 'muž we wobleku, kiž so znošuje: srěnjoćmowa barba kože',
     '🕴🏿' => 'muž we wobleku, kiž so znošuje: ćmowa barba kože',
+    '👯🏻' => 'wosobje ze zaječimaj wušomaj: swětła barba kože',
+    '👯🏼' => 'wosobje ze zaječimaj wušomaj: srěnjoswětła barba kože',
+    '👯🏽' => 'wosobje ze zaječimaj wušomaj: srěnja barba kože',
+    '👯🏾' => 'wosobje ze zaječimaj wušomaj: srěnjoćmowa barba kože',
+    '👯🏿' => 'wosobje ze zaječimaj wušomaj: ćmowa barba kože',
     '🧖🏻' => 'wosoba w sawnje: swětła barba kože',
     '🧖🏼' => 'wosoba w sawnje: srěnjoswětła barba kože',
     '🧖🏽' => 'wosoba w sawnje: srěnja barba kože',
@@ -2068,6 +2219,11 @@
     '🤸🏽' => 'wosoba, kiž so nabok přemjetuje: srěnja barba kože',
     '🤸🏾' => 'wosoba, kiž so nabok přemjetuje: srěnjoćmowa barba kože',
     '🤸🏿' => 'wosoba, kiž so nabok přemjetuje: ćmowa barba kože',
+    '🤼🏻' => 'wosobje, kiž wjerhatej: swětła barba kože',
+    '🤼🏼' => 'wosobje, kiž wjerhatej: srěnjoswětła barba kože',
+    '🤼🏽' => 'wosobje, kiž wjerhatej: srěnja barba kože',
+    '🤼🏾' => 'wosobje, kiž wjerhatej: srěnjoćmowa barba kože',
+    '🤼🏿' => 'wosobje, kiž wjerhatej: ćmowa barba kože',
     '🤽🏻' => 'wosoba, kiž hraje wodobul: swětła barba kože',
     '🤽🏼' => 'wosoba, kiž hraje wodobul: srěnjoswětła barba kože',
     '🤽🏽' => 'wosoba, kiž hraje wodobul: srěnja barba kože',
@@ -2174,6 +2330,7 @@
     '🇨🇳' => 'chorhojčka: China',
     '🇨🇴' => 'chorhojčka: Kolumbiska',
     '🇨🇵' => 'chorhojčka: Clippertonowa kupa',
+    '🇨🇶' => 'chorhojčka: Sark',
     '🇨🇷' => 'chorhojčka: Kosta Rika',
     '🇨🇺' => 'chorhojčka: Kuba',
     '🇨🇻' => 'chorhojčka: Kap Verde',
@@ -2387,13 +2544,6 @@
     '🏽' => 'srěnja barba kože',
     '🏾' => 'srěnjoćmowa barba kože',
     '🏿' => 'ćmowa barba kože',
-    '🪉' => 'harfa',
-    '🪏' => 'łopač',
-    '🪾' => 'štom bjez lisća',
-    '🫆' => 'wotćišć porsta',
-    '🫜' => 'korjenjowa zelenina',
-    '🫟' => 'plusk',
-    '🫩' => 'wobličo ze sylzowymaj měškomaj pod wočomaj',
     '😀' => 'wobličo ze šibałym posměwkom',
     '😃' => 'wobličo ze šibałym posměwkom a wulkimaj wočomaj',
     '😄' => 'wobličo ze šibałym posměwkom a so smějacymaj wočomaj',
@@ -2447,6 +2597,7 @@
     '😪' => 'sparne wobličo',
     '🤤' => 'wobličo, kotremuž sliny zběža',
     '😴' => 'wobličo, kotrež spi',
+    '🫩' => 'wobličo ze sylzowymaj měškomaj pod wočomaj',
     '😷' => 'wobličo z nahubnikom',
     '🤒' => 'wobličo ze zymicowym termometrom',
     '🤕' => 'wobličo z wobwjazom wokoło hłowy',
@@ -2473,6 +2624,7 @@
     '😯' => 'překwapjene wobličo',
     '😲' => 'zadźiwane wobličo',
     '😳' => 'wobličo, kiž je so začerwjeniło a ma wulkej woči',
+    '🫪' => 'sćehnjene wobličo',
     '🥺' => 'prošace wobličo',
     '🥹' => 'wobličo, kiž dźerži sylzy wróćo',
     '😦' => 'wobličo, kotremuž so zecnje',
@@ -2544,6 +2696,7 @@
     '💋' => 'wotćišć hubki',
     '💯' => 'sto dypkow',
     '💢' => 'symbol hněwanja',
+    '🫯' => 'mróčel wojowanja',
     '💥' => 'zražka',
     '💫' => 'wjerćenje we hłowje',
     '💦' => 'kapki pota',
@@ -2667,6 +2820,7 @@
     '🧞' => 'duch z bleše',
     '🧟' => 'zombie',
     '🧌' => 'kubołt',
+    '🫈' => 'kosmata potwora',
     '💆' => 'wosoba, kiž dóstanje masažu hłowy',
     '💇' => 'wosoba, kiž da sej włosy třihać',
     '🚶' => 'wosoba, kiž je pěši po puću',
@@ -2710,6 +2864,7 @@
     '🫂' => 'wosobje, kiž so wobjimatej',
     '👪' => 'swójba',
     '👣' => 'stopje',
+    '🫆' => 'wotćišć porsta',
     '🦰' => 'čerwjene włosy',
     '🦱' => 'kudźerjate włosy',
     '🦳' => 'šědźiwe włosy',
@@ -2809,6 +2964,7 @@
     '🐳' => 'wjelryba, kiž wodu pryska',
     '🐋' => 'wjelryba',
     '🐬' => 'delfin',
+    '🫍' => 'orka',
     '🦭' => 'ćuleń',
     '🐟' => 'ryba',
     '🐠' => 'tropiska ryba',
@@ -2818,6 +2974,11 @@
     '🐚' => 'šlinkowa chěžka',
     '🪸' => 'korala',
     '🪼' => 'kwala',
+    '🦀' => 'rak',
+    '🦞' => 'humer',
+    '🦐' => 'garnela',
+    '🦑' => 'čornica',
+    '🦪' => 'wustrica',
     '🐌' => 'šlink',
     '🦋' => 'mjetelčka',
     '🐛' => 'husańca',
@@ -2862,6 +3023,7 @@
     '🪹' => 'prózdne hnězdo',
     '🪺' => 'hnězdo z jejkomaj',
     '🍄' => 'muchorizna',
+    '🪾' => 'štom bjez lisća',
     '🍇' => 'winowa kić',
     '🍈' => 'mjedowa melona',
     '🍉' => 'melona',
@@ -2898,6 +3060,7 @@
     '🌰' => 'kastanija',
     '🫚' => 'ingwer',
     '🫛' => 'truk hrocha',
+    '🫜' => 'korjenjowa zelenina',
     '🍞' => 'chlěb',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2949,11 +3112,6 @@
     '🥟' => 'piroga',
     '🥠' => 'keks z wěšćenjom',
     '🥡' => 'tyzka za jědź',
-    '🦀' => 'rak',
-    '🦞' => 'humer',
-    '🦐' => 'garnela',
-    '🦑' => 'čornica',
-    '🦪' => 'wustrica',
     '🍦' => 'mjechki lód',
     '🍧' => 'truhany lód',
     '🍨' => 'kulki loda',
@@ -3004,6 +3162,7 @@
     '🧭' => 'kompas',
     '🏔' => 'hora ze zasněženym wjerchom',
     '⛰' => 'hora',
+    '🛘' => 'zesunjenje zemje',
     '🌋' => 'wulkan',
     '🗻' => 'hora Fuji',
     '🏕' => 'stanowanje',
@@ -3364,16 +3523,18 @@
     '🎧' => 'słuchatka',
     '📻' => 'radijo',
     '🎷' => 'saksofon',
+    '🎺' => 'trompeta',
+    '🪊' => 'pozawna',
     '🪗' => 'akordeon',
     '🎸' => 'gitara',
     '🎹' => 'klawiatura',
-    '🎺' => 'trompeta',
     '🎻' => 'husle',
     '🪕' => 'banjo',
     '🥁' => 'bubon',
     '🪘' => 'afriski bubon',
     '🪇' => 'maracasy',
     '🪈' => 'pišćałka',
+    '🪉' => 'harfa',
     '📱' => 'mobilny telefon',
     '📲' => 'mobilny telefon z kłokom',
     '☎' => 'telefon',
@@ -3427,8 +3588,9 @@
     '📑' => 'strony z čitanskimi znamjenjemi',
     '🔖' => 'čitanske znamjo',
     '🏷' => 'etiket',
-    '💰' => 'měšk pjenjez',
     '🪙' => 'pjenjez',
+    '💰' => 'měšk pjenjez',
+    '🪎' => 'křinja z pokładom',
     '💴' => 'yenowka',
     '💵' => 'dolarowka',
     '💶' => 'eurowka',
@@ -3511,6 +3673,7 @@
     '🧰' => 'gratowy kašćik',
     '🧲' => 'magnet',
     '🪜' => 'rěbl',
+    '🪏' => 'łopač',
     '⚗' => 'destilaciski nastroj',
     '🧪' => 'reagencowa škleńca',
     '🧫' => 'Petrijowa škleńca',
@@ -3694,6 +3857,7 @@
     '✴' => 'wosomkónčkata hwězda',
     '❇' => 'zybolenje',
     '™' => 'markowe znamjo',
+    '🫟' => 'plusk',
     '🔠' => 'zapodaj łaćonske wulke pismiki',
     '🔡' => 'zapodaj łaćonske małe pismiki',
     '🔢' => 'zapodaj ličby',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hu.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'csók: nő, nő, sötét bőrtónus és közepes bőrtónus',
     '👩🏿‍❤‍💋‍👩🏾' => 'csók: nő, nő, sötét bőrtónus és közepesen sötét bőrtónus',
     '👩🏿‍❤‍💋‍👩🏿' => 'csók: nő, nő és sötét bőrtónus',
+    '🧑🏻‍🫯‍🧑🏼' => 'birkózók: világos bőrtónus és közepesen világos bőrtónus',
+    '🧑🏻‍🫯‍🧑🏽' => 'birkózók: világos bőrtónus és közepes bőrtónus',
+    '🧑🏻‍🫯‍🧑🏾' => 'birkózók: világos bőrtónus és közepesen sötét bőrtónus',
+    '🧑🏻‍🫯‍🧑🏿' => 'birkózók: világos bőrtónus és sötét bőrtónus',
+    '🧑🏼‍🫯‍🧑🏻' => 'birkózók: közepesen világos bőrtónus és világos bőrtónus',
+    '🧑🏼‍🫯‍🧑🏽' => 'birkózók: közepesen világos bőrtónus és közepes bőrtónus',
+    '🧑🏼‍🫯‍🧑🏾' => 'birkózók: közepesen világos bőrtónus és közepesen sötét bőrtónus',
+    '🧑🏼‍🫯‍🧑🏿' => 'birkózók: közepesen világos bőrtónus és sötét bőrtónus',
+    '🧑🏽‍🫯‍🧑🏻' => 'birkózók: közepes bőrtónus és világos bőrtónus',
+    '🧑🏽‍🫯‍🧑🏼' => 'birkózók: közepes bőrtónus és közepesen világos bőrtónus',
+    '🧑🏽‍🫯‍🧑🏾' => 'birkózók: közepes bőrtónus és közepesen sötét bőrtónus',
+    '🧑🏽‍🫯‍🧑🏿' => 'birkózók: közepes bőrtónus és sötét bőrtónus',
+    '🧑🏾‍🫯‍🧑🏻' => 'birkózók: közepesen sötét bőrtónus és világos bőrtónus',
+    '🧑🏾‍🫯‍🧑🏼' => 'birkózók: közepesen sötét bőrtónus és közepesen világos bőrtónus',
+    '🧑🏾‍🫯‍🧑🏽' => 'birkózók: közepesen sötét bőrtónus és közepes bőrtónus',
+    '🧑🏾‍🫯‍🧑🏿' => 'birkózók: közepesen sötét bőrtónus és sötét bőrtónus',
+    '🧑🏿‍🫯‍🧑🏻' => 'birkózók: sötét bőrtónus és világos bőrtónus',
+    '🧑🏿‍🫯‍🧑🏼' => 'birkózók: sötét bőrtónus és közepesen világos bőrtónus',
+    '🧑🏿‍🫯‍🧑🏽' => 'birkózók: sötét bőrtónus és közepes bőrtónus',
+    '🧑🏿‍🫯‍🧑🏾' => 'birkózók: sötét bőrtónus és közepesen sötét bőrtónus',
     '🧑🏻‍❤‍🧑🏼' => 'pár szívvel: felnőtt, felnőtt, világos bőrtónus és közepesen világos bőrtónus',
     '🧑🏻‍❤‍🧑🏽' => 'pár szívvel: felnőtt, felnőtt, világos bőrtónus és közepes bőrtónus',
     '🧑🏻‍❤‍🧑🏾' => 'pár szívvel: felnőtt, felnőtt, világos bőrtónus és közepesen sötét bőrtónus',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pár szívvel: felnőtt, felnőtt, sötét bőrtónus és közepesen világos bőrtónus',
     '🧑🏿‍❤‍🧑🏽' => 'pár szívvel: felnőtt, felnőtt, sötét bőrtónus és közepes bőrtónus',
     '🧑🏿‍❤‍🧑🏾' => 'pár szívvel: felnőtt, felnőtt, sötét bőrtónus és közepesen sötét bőrtónus',
+    '🧑🏻‍🐰‍🧑🏼' => 'bulizó emberek: világos bőrtónus és közepesen világos bőrtónus',
+    '🧑🏻‍🐰‍🧑🏽' => 'bulizó emberek: világos bőrtónus és közepes bőrtónus',
+    '🧑🏻‍🐰‍🧑🏾' => 'bulizó emberek: világos bőrtónus és közepesen sötét bőrtónus',
+    '🧑🏻‍🐰‍🧑🏿' => 'bulizó emberek: világos bőrtónus és sötét bőrtónus',
+    '🧑🏼‍🐰‍🧑🏻' => 'bulizó emberek: közepesen világos bőrtónus és világos bőrtónus',
+    '🧑🏼‍🐰‍🧑🏽' => 'bulizó emberek: közepesen világos bőrtónus és közepes bőrtónus',
+    '🧑🏼‍🐰‍🧑🏾' => 'bulizó emberek: közepesen világos bőrtónus és közepesen sötét bőrtónus',
+    '🧑🏼‍🐰‍🧑🏿' => 'bulizó emberek: közepesen világos bőrtónus és sötét bőrtónus',
+    '🧑🏽‍🐰‍🧑🏻' => 'bulizó emberek: közepes bőrtónus és világos bőrtónus',
+    '🧑🏽‍🐰‍🧑🏼' => 'bulizó emberek: közepes bőrtónus és közepesen világos bőrtónus',
+    '🧑🏽‍🐰‍🧑🏾' => 'bulizó emberek: közepes bőrtónus és közepesen sötét bőrtónus',
+    '🧑🏽‍🐰‍🧑🏿' => 'bulizó emberek: közepes bőrtónus és sötét bőrtónus',
+    '🧑🏾‍🐰‍🧑🏻' => 'bulizó emberek: közepesen sötét bőrtónus és világos bőrtónus',
+    '🧑🏾‍🐰‍🧑🏼' => 'bulizó emberek: közepesen sötét bőrtónus és közepesen világos bőrtónus',
+    '🧑🏾‍🐰‍🧑🏽' => 'bulizó emberek: közepesen sötét bőrtónus és közepes bőrtónus',
+    '🧑🏾‍🐰‍🧑🏿' => 'bulizó emberek: közepesen sötét bőrtónus és sötét bőrtónus',
+    '🧑🏿‍🐰‍🧑🏻' => 'bulizó emberek: sötét bőrtónus és világos bőrtónus',
+    '🧑🏿‍🐰‍🧑🏼' => 'bulizó emberek: sötét bőrtónus és közepesen világos bőrtónus',
+    '🧑🏿‍🐰‍🧑🏽' => 'bulizó emberek: sötét bőrtónus és közepes bőrtónus',
+    '🧑🏿‍🐰‍🧑🏾' => 'bulizó emberek: sötét bőrtónus és közepesen sötét bőrtónus',
+    '👨🏻‍🫯‍👨🏼' => 'birkózó férfiak: világos bőrtónus és közepesen világos bőrtónus',
+    '👨🏻‍🫯‍👨🏽' => 'birkózó férfiak: világos bőrtónus és közepes bőrtónus',
+    '👨🏻‍🫯‍👨🏾' => 'birkózó férfiak: világos bőrtónus és közepesen sötét bőrtónus',
+    '👨🏻‍🫯‍👨🏿' => 'birkózó férfiak: világos bőrtónus és sötét bőrtónus',
+    '👨🏼‍🫯‍👨🏻' => 'birkózó férfiak: közepesen világos bőrtónus és világos bőrtónus',
+    '👨🏼‍🫯‍👨🏽' => 'birkózó férfiak: közepesen világos bőrtónus és közepes bőrtónus',
+    '👨🏼‍🫯‍👨🏾' => 'birkózó férfiak: közepesen világos bőrtónus és közepesen sötét bőrtónus',
+    '👨🏼‍🫯‍👨🏿' => 'birkózó férfiak: közepesen világos bőrtónus és sötét bőrtónus',
+    '👨🏽‍🫯‍👨🏻' => 'birkózó férfiak: közepes bőrtónus és világos bőrtónus',
+    '👨🏽‍🫯‍👨🏼' => 'birkózó férfiak: közepes bőrtónus és közepesen világos bőrtónus',
+    '👨🏽‍🫯‍👨🏾' => 'birkózó férfiak: közepes bőrtónus és közepesen sötét bőrtónus',
+    '👨🏽‍🫯‍👨🏿' => 'birkózó férfiak: közepes bőrtónus és sötét bőrtónus',
+    '👨🏾‍🫯‍👨🏻' => 'birkózó férfiak: közepesen sötét bőrtónus és világos bőrtónus',
+    '👨🏾‍🫯‍👨🏼' => 'birkózó férfiak: közepesen sötét bőrtónus és közepesen világos bőrtónus',
+    '👨🏾‍🫯‍👨🏽' => 'birkózó férfiak: közepesen sötét bőrtónus és közepes bőrtónus',
+    '👨🏾‍🫯‍👨🏿' => 'birkózó férfiak: közepesen sötét bőrtónus és sötét bőrtónus',
+    '👨🏿‍🫯‍👨🏻' => 'birkózó férfiak: sötét bőrtónus és világos bőrtónus',
+    '👨🏿‍🫯‍👨🏼' => 'birkózó férfiak: sötét bőrtónus és közepesen világos bőrtónus',
+    '👨🏿‍🫯‍👨🏽' => 'birkózó férfiak: sötét bőrtónus és közepes bőrtónus',
+    '👨🏿‍🫯‍👨🏾' => 'birkózó férfiak: sötét bőrtónus és közepesen sötét bőrtónus',
     '👨🏻‍❤‍👨🏻' => 'pár szívvel: férfi, férfi és világos bőrtónus',
     '👨🏻‍❤‍👨🏼' => 'pár szívvel: férfi, férfi, világos bőrtónus és közepesen világos bőrtónus',
     '👨🏻‍❤‍👨🏽' => 'pár szívvel: férfi, férfi, világos bőrtónus és közepes bőrtónus',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pár szívvel: férfi, férfi, sötét bőrtónus és közepes bőrtónus',
     '👨🏿‍❤‍👨🏾' => 'pár szívvel: férfi, férfi, sötét bőrtónus és közepesen sötét bőrtónus',
     '👨🏿‍❤‍👨🏿' => 'pár szívvel: férfi, férfi és sötét bőrtónus',
+    '👨🏻‍🐰‍👨🏼' => 'bulizó férfiak: világos bőrtónus és közepesen világos bőrtónus',
+    '👨🏻‍🐰‍👨🏽' => 'bulizó férfiak: világos bőrtónus és közepes bőrtónus',
+    '👨🏻‍🐰‍👨🏾' => 'bulizó férfiak: világos bőrtónus és közepesen sötét bőrtónus',
+    '👨🏻‍🐰‍👨🏿' => 'bulizó férfiak: világos bőrtónus és sötét bőrtónus',
+    '👨🏼‍🐰‍👨🏻' => 'bulizó férfiak: közepesen világos bőrtónus és világos bőrtónus',
+    '👨🏼‍🐰‍👨🏽' => 'bulizó férfiak: közepesen világos bőrtónus és közepes bőrtónus',
+    '👨🏼‍🐰‍👨🏾' => 'bulizó férfiak: közepesen világos bőrtónus és közepesen sötét bőrtónus',
+    '👨🏼‍🐰‍👨🏿' => 'bulizó férfiak: közepesen világos bőrtónus és sötét bőrtónus',
+    '👨🏽‍🐰‍👨🏻' => 'bulizó férfiak: közepes bőrtónus és világos bőrtónus',
+    '👨🏽‍🐰‍👨🏼' => 'bulizó férfiak: közepes bőrtónus és közepesen világos bőrtónus',
+    '👨🏽‍🐰‍👨🏾' => 'bulizó férfiak: közepes bőrtónus és közepesen sötét bőrtónus',
+    '👨🏽‍🐰‍👨🏿' => 'bulizó férfiak: közepes bőrtónus és sötét bőrtónus',
+    '👨🏾‍🐰‍👨🏻' => 'bulizó férfiak: közepesen sötét bőrtónus és világos bőrtónus',
+    '👨🏾‍🐰‍👨🏼' => 'bulizó férfiak: közepesen sötét bőrtónus és közepesen világos bőrtónus',
+    '👨🏾‍🐰‍👨🏽' => 'bulizó férfiak: közepesen sötét bőrtónus és közepes bőrtónus',
+    '👨🏾‍🐰‍👨🏿' => 'bulizó férfiak: közepesen sötét bőrtónus és sötét bőrtónus',
+    '👨🏿‍🐰‍👨🏻' => 'bulizó férfiak: sötét bőrtónus és világos bőrtónus',
+    '👨🏿‍🐰‍👨🏼' => 'bulizó férfiak: sötét bőrtónus és közepesen világos bőrtónus',
+    '👨🏿‍🐰‍👨🏽' => 'bulizó férfiak: sötét bőrtónus és közepes bőrtónus',
+    '👨🏿‍🐰‍👨🏾' => 'bulizó férfiak: sötét bőrtónus és közepesen sötét bőrtónus',
+    '👩🏻‍🫯‍👩🏼' => 'birkózó nők: világos bőrtónus és közepesen világos bőrtónus',
+    '👩🏻‍🫯‍👩🏽' => 'birkózó nők: világos bőrtónus és közepes bőrtónus',
+    '👩🏻‍🫯‍👩🏾' => 'birkózó nők: világos bőrtónus és közepesen sötét bőrtónus',
+    '👩🏻‍🫯‍👩🏿' => 'birkózó nők: világos bőrtónus és sötét bőrtónus',
+    '👩🏼‍🫯‍👩🏻' => 'birkózó nők: közepesen világos bőrtónus és világos bőrtónus',
+    '👩🏼‍🫯‍👩🏽' => 'birkózó nők: közepesen világos bőrtónus és közepes bőrtónus',
+    '👩🏼‍🫯‍👩🏾' => 'birkózó nők: közepesen világos bőrtónus és közepesen sötét bőrtónus',
+    '👩🏼‍🫯‍👩🏿' => 'birkózó nők: közepesen világos bőrtónus és sötét bőrtónus',
+    '👩🏽‍🫯‍👩🏻' => 'birkózó nők: közepes bőrtónus és világos bőrtónus',
+    '👩🏽‍🫯‍👩🏼' => 'birkózó nők: közepes bőrtónus és közepesen világos bőrtónus',
+    '👩🏽‍🫯‍👩🏾' => 'birkózó nők: közepes bőrtónus és közepesen sötét bőrtónus',
+    '👩🏽‍🫯‍👩🏿' => 'birkózó nők: közepes bőrtónus és sötét bőrtónus',
+    '👩🏾‍🫯‍👩🏻' => 'birkózó nők: közepesen sötét bőrtónus és világos bőrtónus',
+    '👩🏾‍🫯‍👩🏼' => 'birkózó nők: közepesen sötét bőrtónus és közepesen világos bőrtónus',
+    '👩🏾‍🫯‍👩🏽' => 'birkózó nők: közepesen sötét bőrtónus és közepes bőrtónus',
+    '👩🏾‍🫯‍👩🏿' => 'birkózó nők: közepesen sötét bőrtónus és sötét bőrtónus',
+    '👩🏿‍🫯‍👩🏻' => 'birkózó nők: sötét bőrtónus és világos bőrtónus',
+    '👩🏿‍🫯‍👩🏼' => 'birkózó nők: sötét bőrtónus és közepesen világos bőrtónus',
+    '👩🏿‍🫯‍👩🏽' => 'birkózó nők: sötét bőrtónus és közepes bőrtónus',
+    '👩🏿‍🫯‍👩🏾' => 'birkózó nők: sötét bőrtónus és közepesen sötét bőrtónus',
     '👩🏻‍❤‍👨🏻' => 'pár szívvel: nő, férfi és világos bőrtónus',
     '👩🏻‍❤‍👨🏼' => 'pár szívvel: nő, férfi, világos bőrtónus és közepesen világos bőrtónus',
     '👩🏻‍❤‍👨🏽' => 'pár szívvel: nő, férfi, világos bőrtónus és közepes bőrtónus',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pár szívvel: nő, nő, sötét bőrtónus és közepes bőrtónus',
     '👩🏿‍❤‍👩🏾' => 'pár szívvel: nő, nő, sötét bőrtónus és közepesen sötét bőrtónus',
     '👩🏿‍❤‍👩🏿' => 'pár szívvel: nő, nő és sötét bőrtónus',
+    '👩🏻‍🐰‍👩🏼' => 'bulizó nők: világos bőrtónus és közepesen világos bőrtónus',
+    '👩🏻‍🐰‍👩🏽' => 'bulizó nők: világos bőrtónus és közepes bőrtónus',
+    '👩🏻‍🐰‍👩🏾' => 'bulizó nők: világos bőrtónus és közepesen sötét bőrtónus',
+    '👩🏻‍🐰‍👩🏿' => 'bulizó nők: világos bőrtónus és sötét bőrtónus',
+    '👩🏼‍🐰‍👩🏻' => 'bulizó nők: közepesen világos bőrtónus és világos bőrtónus',
+    '👩🏼‍🐰‍👩🏽' => 'bulizó nők: közepesen világos bőrtónus és közepes bőrtónus',
+    '👩🏼‍🐰‍👩🏾' => 'bulizó nők: közepesen világos bőrtónus és közepesen sötét bőrtónus',
+    '👩🏼‍🐰‍👩🏿' => 'bulizó nők: közepesen világos bőrtónus és sötét bőrtónus',
+    '👩🏽‍🐰‍👩🏻' => 'bulizó nők: közepes bőrtónus és világos bőrtónus',
+    '👩🏽‍🐰‍👩🏼' => 'bulizó nők: közepes bőrtónus és közepesen világos bőrtónus',
+    '👩🏽‍🐰‍👩🏾' => 'bulizó nők: közepes bőrtónus és közepesen sötét bőrtónus',
+    '👩🏽‍🐰‍👩🏿' => 'bulizó nők: közepes bőrtónus és sötét bőrtónus',
+    '👩🏾‍🐰‍👩🏻' => 'bulizó nők: közepesen sötét bőrtónus és világos bőrtónus',
+    '👩🏾‍🐰‍👩🏼' => 'bulizó nők: közepesen sötét bőrtónus és közepesen világos bőrtónus',
+    '👩🏾‍🐰‍👩🏽' => 'bulizó nők: közepesen sötét bőrtónus és közepes bőrtónus',
+    '👩🏾‍🐰‍👩🏿' => 'bulizó nők: közepesen sötét bőrtónus és sötét bőrtónus',
+    '👩🏿‍🐰‍👩🏻' => 'bulizó nők: sötét bőrtónus és világos bőrtónus',
+    '👩🏿‍🐰‍👩🏼' => 'bulizó nők: sötét bőrtónus és közepesen világos bőrtónus',
+    '👩🏿‍🐰‍👩🏽' => 'bulizó nők: sötét bőrtónus és közepes bőrtónus',
+    '👩🏿‍🐰‍👩🏾' => 'bulizó nők: sötét bőrtónus és közepesen sötét bőrtónus',
     '🧑🏻‍🤝‍🧑🏻' => 'egymás kezét fogó emberek: világos bőrtónus',
     '🧑🏻‍🤝‍🧑🏼' => 'egymás kezét fogó emberek: világos bőrtónus és közepesen világos bőrtónus',
     '🧑🏻‍🤝‍🧑🏽' => 'egymás kezét fogó emberek: világos bőrtónus és közepes bőrtónus',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'zászló: Skócia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'zászló: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'család: felnőtt, felnőtt, gyerek, gyerek',
-    '🚶🏻‍♀‍➡' => 'jobbra néző sétáló nő',
-    '🚶🏼‍♀‍➡' => 'jobbra néző sétáló nő',
-    '🚶🏽‍♀‍➡' => 'jobbra néző sétáló nő',
-    '🚶🏾‍♀‍➡' => 'jobbra néző sétáló nő',
-    '🚶🏿‍♀‍➡' => 'jobbra néző sétáló nő',
-    '🚶🏻‍♂‍➡' => 'jobbra néző sétáló férfi',
-    '🚶🏼‍♂‍➡' => 'jobbra néző sétáló férfi',
-    '🚶🏽‍♂‍➡' => 'jobbra néző sétáló férfi',
-    '🚶🏾‍♂‍➡' => 'jobbra néző sétáló férfi',
-    '🚶🏿‍♂‍➡' => 'jobbra néző sétáló férfi',
-    '🧎🏻‍♀‍➡' => 'jobbra néző térdelő nő',
-    '🧎🏼‍♀‍➡' => 'jobbra néző térdelő nő',
-    '🧎🏽‍♀‍➡' => 'jobbra néző térdelő nő',
-    '🧎🏾‍♀‍➡' => 'jobbra néző térdelő nő',
-    '🧎🏿‍♀‍➡' => 'jobbra néző térdelő nő',
-    '🧎🏻‍♂‍➡' => 'jobbra néző térdelő férfi',
-    '🧎🏼‍♂‍➡' => 'jobbra néző térdelő férfi',
-    '🧎🏽‍♂‍➡' => 'jobbra néző térdelő férfi',
-    '🧎🏾‍♂‍➡' => 'jobbra néző térdelő férfi',
-    '🧎🏿‍♂‍➡' => 'jobbra néző térdelő férfi',
-    '🧑🏻‍🦯‍➡' => 'jobbra néző ember fehér bottal',
-    '🧑🏼‍🦯‍➡' => 'jobbra néző ember fehér bottal',
-    '🧑🏽‍🦯‍➡' => 'jobbra néző ember fehér bottal',
-    '🧑🏾‍🦯‍➡' => 'jobbra néző ember fehér bottal',
-    '🧑🏿‍🦯‍➡' => 'jobbra néző ember fehér bottal',
-    '👨🏻‍🦯‍➡' => 'jobbra néző férfi fehér bottal',
-    '👨🏼‍🦯‍➡' => 'jobbra néző férfi fehér bottal',
-    '👨🏽‍🦯‍➡' => 'jobbra néző férfi fehér bottal',
-    '👨🏾‍🦯‍➡' => 'jobbra néző férfi fehér bottal',
-    '👨🏿‍🦯‍➡' => 'jobbra néző férfi fehér bottal',
-    '👩🏻‍🦯‍➡' => 'jobbra néző nő fehér bottal',
-    '👩🏼‍🦯‍➡' => 'jobbra néző nő fehér bottal',
-    '👩🏽‍🦯‍➡' => 'jobbra néző nő fehér bottal',
-    '👩🏾‍🦯‍➡' => 'jobbra néző nő fehér bottal',
-    '👩🏿‍🦯‍➡' => 'jobbra néző nő fehér bottal',
-    '🧑🏻‍🦼‍➡' => 'jobbra néző ember motoros kerekesszékben',
-    '🧑🏼‍🦼‍➡' => 'jobbra néző ember motoros kerekesszékben',
-    '🧑🏽‍🦼‍➡' => 'jobbra néző ember motoros kerekesszékben',
-    '🧑🏾‍🦼‍➡' => 'jobbra néző ember motoros kerekesszékben',
-    '🧑🏿‍🦼‍➡' => 'jobbra néző ember motoros kerekesszékben',
-    '👨🏻‍🦼‍➡' => 'jobbra néző férfi motoros kerekesszékben',
-    '👨🏼‍🦼‍➡' => 'jobbra néző férfi motoros kerekesszékben',
-    '👨🏽‍🦼‍➡' => 'jobbra néző férfi motoros kerekesszékben',
-    '👨🏾‍🦼‍➡' => 'jobbra néző férfi motoros kerekesszékben',
-    '👨🏿‍🦼‍➡' => 'jobbra néző férfi motoros kerekesszékben',
-    '👩🏻‍🦼‍➡' => 'jobbra néző nő motoros kerekesszékben',
-    '👩🏼‍🦼‍➡' => 'jobbra néző nő motoros kerekesszékben',
-    '👩🏽‍🦼‍➡' => 'jobbra néző nő motoros kerekesszékben',
-    '👩🏾‍🦼‍➡' => 'jobbra néző nő motoros kerekesszékben',
-    '👩🏿‍🦼‍➡' => 'jobbra néző nő motoros kerekesszékben',
-    '🧑🏻‍🦽‍➡' => 'jobbra néző kerekesszékes ember',
-    '🧑🏼‍🦽‍➡' => 'jobbra néző kerekesszékes ember',
-    '🧑🏽‍🦽‍➡' => 'jobbra néző kerekesszékes ember',
-    '🧑🏾‍🦽‍➡' => 'jobbra néző kerekesszékes ember',
-    '🧑🏿‍🦽‍➡' => 'jobbra néző kerekesszékes ember',
-    '👨🏻‍🦽‍➡' => 'jobbra néző férfi kézi hajtású kerekesszékben',
-    '👨🏼‍🦽‍➡' => 'jobbra néző férfi kézi hajtású kerekesszékben',
-    '👨🏽‍🦽‍➡' => 'jobbra néző férfi kézi hajtású kerekesszékben',
-    '👨🏾‍🦽‍➡' => 'jobbra néző férfi kézi hajtású kerekesszékben',
-    '👨🏿‍🦽‍➡' => 'jobbra néző férfi kézi hajtású kerekesszékben',
-    '👩🏻‍🦽‍➡' => 'jobbra néző nő kézi hajtású kerekesszékben',
-    '👩🏼‍🦽‍➡' => 'jobbra néző nő kézi hajtású kerekesszékben',
-    '👩🏽‍🦽‍➡' => 'jobbra néző nő kézi hajtású kerekesszékben',
-    '👩🏾‍🦽‍➡' => 'jobbra néző nő kézi hajtású kerekesszékben',
-    '👩🏿‍🦽‍➡' => 'jobbra néző nő kézi hajtású kerekesszékben',
-    '🏃🏻‍♀‍➡' => 'jobbra néző futó nő',
-    '🏃🏼‍♀‍➡' => 'jobbra néző futó nő',
-    '🏃🏽‍♀‍➡' => 'jobbra néző futó nő',
-    '🏃🏾‍♀‍➡' => 'jobbra néző futó nő',
-    '🏃🏿‍♀‍➡' => 'jobbra néző futó nő',
-    '🏃🏻‍♂‍➡' => 'jobbra néző futó férfi',
-    '🏃🏼‍♂‍➡' => 'jobbra néző futó férfi',
-    '🏃🏽‍♂‍➡' => 'jobbra néző futó férfi',
-    '🏃🏾‍♂‍➡' => 'jobbra néző futó férfi',
-    '🏃🏿‍♂‍➡' => 'jobbra néző futó férfi',
+    '🚶🏻‍♀‍➡' => 'sétáló nő: világos bőrtónus és jobbra néző',
+    '🚶🏼‍♀‍➡' => 'sétáló nő: közepesen világos bőrtónus és jobbra néző',
+    '🚶🏽‍♀‍➡' => 'sétáló nő: közepes bőrtónus és jobbra néző',
+    '🚶🏾‍♀‍➡' => 'sétáló nő: közepesen sötét bőrtónus és jobbra néző',
+    '🚶🏿‍♀‍➡' => 'sétáló nő: sötét bőrtónus és jobbra néző',
+    '🚶🏻‍♂‍➡' => 'sétáló férfi: világos bőrtónus és jobbra néző',
+    '🚶🏼‍♂‍➡' => 'sétáló férfi: közepesen világos bőrtónus és jobbra néző',
+    '🚶🏽‍♂‍➡' => 'sétáló férfi: közepes bőrtónus és jobbra néző',
+    '🚶🏾‍♂‍➡' => 'sétáló férfi: közepesen sötét bőrtónus és jobbra néző',
+    '🚶🏿‍♂‍➡' => 'sétáló férfi: sötét bőrtónus és jobbra néző',
+    '🧎🏻‍♀‍➡' => 'térdelő nő: világos bőrtónus és jobbra néző',
+    '🧎🏼‍♀‍➡' => 'térdelő nő: közepesen világos bőrtónus és jobbra néző',
+    '🧎🏽‍♀‍➡' => 'térdelő nő: közepes bőrtónus és jobbra néző',
+    '🧎🏾‍♀‍➡' => 'térdelő nő: közepesen sötét bőrtónus és jobbra néző',
+    '🧎🏿‍♀‍➡' => 'térdelő nő: sötét bőrtónus és jobbra néző',
+    '🧎🏻‍♂‍➡' => 'térdelő férfi: világos bőrtónus és jobbra néző',
+    '🧎🏼‍♂‍➡' => 'térdelő férfi: közepesen világos bőrtónus és jobbra néző',
+    '🧎🏽‍♂‍➡' => 'térdelő férfi: közepes bőrtónus és jobbra néző',
+    '🧎🏾‍♂‍➡' => 'térdelő férfi: közepesen sötét bőrtónus és jobbra néző',
+    '🧎🏿‍♂‍➡' => 'térdelő férfi: sötét bőrtónus és jobbra néző',
+    '🧑🏻‍🦯‍➡' => 'ember fehér bottal: világos bőrtónus és jobbra néző',
+    '🧑🏼‍🦯‍➡' => 'ember fehér bottal: közepesen világos bőrtónus és jobbra néző',
+    '🧑🏽‍🦯‍➡' => 'ember fehér bottal: közepes bőrtónus és jobbra néző',
+    '🧑🏾‍🦯‍➡' => 'ember fehér bottal: közepesen sötét bőrtónus és jobbra néző',
+    '🧑🏿‍🦯‍➡' => 'ember fehér bottal: sötét bőrtónus és jobbra néző',
+    '👨🏻‍🦯‍➡' => 'férfi fehér bottal: világos bőrtónus és jobbra néző',
+    '👨🏼‍🦯‍➡' => 'férfi fehér bottal: közepesen világos bőrtónus és jobbra néző',
+    '👨🏽‍🦯‍➡' => 'férfi fehér bottal: közepes bőrtónus és jobbra néző',
+    '👨🏾‍🦯‍➡' => 'férfi fehér bottal: közepesen sötét bőrtónus és jobbra néző',
+    '👨🏿‍🦯‍➡' => 'férfi fehér bottal: sötét bőrtónus és jobbra néző',
+    '👩🏻‍🦯‍➡' => 'nő fehér bottal: világos bőrtónus és jobbra néző',
+    '👩🏼‍🦯‍➡' => 'nő fehér bottal: közepesen világos bőrtónus és jobbra néző',
+    '👩🏽‍🦯‍➡' => 'nő fehér bottal: közepes bőrtónus és jobbra néző',
+    '👩🏾‍🦯‍➡' => 'nő fehér bottal: közepesen sötét bőrtónus és jobbra néző',
+    '👩🏿‍🦯‍➡' => 'nő fehér bottal: sötét bőrtónus és jobbra néző',
+    '🧑🏻‍🦼‍➡' => 'ember motoros kerekesszékben: világos bőrtónus és jobbra néző',
+    '🧑🏼‍🦼‍➡' => 'ember motoros kerekesszékben: közepesen világos bőrtónus és jobbra néző',
+    '🧑🏽‍🦼‍➡' => 'ember motoros kerekesszékben: közepes bőrtónus és jobbra néző',
+    '🧑🏾‍🦼‍➡' => 'ember motoros kerekesszékben: közepesen sötét bőrtónus és jobbra néző',
+    '🧑🏿‍🦼‍➡' => 'ember motoros kerekesszékben: sötét bőrtónus és jobbra néző',
+    '👨🏻‍🦼‍➡' => 'férfi motoros kerekesszékben: világos bőrtónus és jobbra néző',
+    '👨🏼‍🦼‍➡' => 'férfi motoros kerekesszékben: közepesen világos bőrtónus és jobbra néző',
+    '👨🏽‍🦼‍➡' => 'férfi motoros kerekesszékben: közepes bőrtónus és jobbra néző',
+    '👨🏾‍🦼‍➡' => 'férfi motoros kerekesszékben: közepesen sötét bőrtónus és jobbra néző',
+    '👨🏿‍🦼‍➡' => 'férfi motoros kerekesszékben: sötét bőrtónus és jobbra néző',
+    '👩🏻‍🦼‍➡' => 'nő motoros kerekesszékben: világos bőrtónus és jobbra néző',
+    '👩🏼‍🦼‍➡' => 'nő motoros kerekesszékben: közepesen világos bőrtónus és jobbra néző',
+    '👩🏽‍🦼‍➡' => 'nő motoros kerekesszékben: közepes bőrtónus és jobbra néző',
+    '👩🏾‍🦼‍➡' => 'nő motoros kerekesszékben: közepesen sötét bőrtónus és jobbra néző',
+    '👩🏿‍🦼‍➡' => 'nő motoros kerekesszékben: sötét bőrtónus és jobbra néző',
+    '🧑🏻‍🦽‍➡' => 'kerekesszékes ember: világos bőrtónus és jobbra néző',
+    '🧑🏼‍🦽‍➡' => 'kerekesszékes ember: közepesen világos bőrtónus és jobbra néző',
+    '🧑🏽‍🦽‍➡' => 'kerekesszékes ember: közepes bőrtónus és jobbra néző',
+    '🧑🏾‍🦽‍➡' => 'kerekesszékes ember: közepesen sötét bőrtónus és jobbra néző',
+    '🧑🏿‍🦽‍➡' => 'kerekesszékes ember: sötét bőrtónus és jobbra néző',
+    '👨🏻‍🦽‍➡' => 'férfi kézi hajtású kerekesszékben: világos bőrtónus és jobbra néző',
+    '👨🏼‍🦽‍➡' => 'férfi kézi hajtású kerekesszékben: közepesen világos bőrtónus és jobbra néző',
+    '👨🏽‍🦽‍➡' => 'férfi kézi hajtású kerekesszékben: közepes bőrtónus és jobbra néző',
+    '👨🏾‍🦽‍➡' => 'férfi kézi hajtású kerekesszékben: közepesen sötét bőrtónus és jobbra néző',
+    '👨🏿‍🦽‍➡' => 'férfi kézi hajtású kerekesszékben: sötét bőrtónus és jobbra néző',
+    '👩🏻‍🦽‍➡' => 'nő kézi hajtású kerekesszékben: világos bőrtónus és jobbra néző',
+    '👩🏼‍🦽‍➡' => 'nő kézi hajtású kerekesszékben: közepesen világos bőrtónus és jobbra néző',
+    '👩🏽‍🦽‍➡' => 'nő kézi hajtású kerekesszékben: közepes bőrtónus és jobbra néző',
+    '👩🏾‍🦽‍➡' => 'nő kézi hajtású kerekesszékben: közepesen sötét bőrtónus és jobbra néző',
+    '👩🏿‍🦽‍➡' => 'nő kézi hajtású kerekesszékben: sötét bőrtónus és jobbra néző',
+    '🏃🏻‍♀‍➡' => 'futó nő: világos bőrtónus és jobbra néző',
+    '🏃🏼‍♀‍➡' => 'futó nő: közepesen világos bőrtónus és jobbra néző',
+    '🏃🏽‍♀‍➡' => 'futó nő: közepes bőrtónus és jobbra néző',
+    '🏃🏾‍♀‍➡' => 'futó nő: közepesen sötét bőrtónus és jobbra néző',
+    '🏃🏿‍♀‍➡' => 'futó nő: sötét bőrtónus és jobbra néző',
+    '🏃🏻‍♂‍➡' => 'futó férfi: világos bőrtónus és jobbra néző',
+    '🏃🏼‍♂‍➡' => 'futó férfi: közepesen világos bőrtónus és jobbra néző',
+    '🏃🏽‍♂‍➡' => 'futó férfi: közepes bőrtónus és jobbra néző',
+    '🏃🏾‍♂‍➡' => 'futó férfi: közepesen sötét bőrtónus és jobbra néző',
+    '🏃🏿‍♂‍➡' => 'futó férfi: sötét bőrtónus és jobbra néző',
     '🫱🏻‍🫲🏼' => 'kézfogás: világos bőrtónus és közepesen világos bőrtónus',
     '🫱🏻‍🫲🏽' => 'kézfogás: világos bőrtónus és közepes bőrtónus',
     '🫱🏻‍🫲🏾' => 'kézfogás: világos bőrtónus és közepesen sötét bőrtónus',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'kézfogás: sötét bőrtónus és közepesen világos bőrtónus',
     '🫱🏿‍🫲🏽' => 'kézfogás: sötét bőrtónus és közepes bőrtónus',
     '🫱🏿‍🫲🏾' => 'kézfogás: sötét bőrtónus és közepesen sötét bőrtónus',
-    '🚶‍♀‍➡' => 'jobbra néző sétáló nő',
-    '🚶‍♂‍➡' => 'jobbra néző sétáló férfi',
-    '🧎‍♀‍➡' => 'jobbra néző térdelő nő',
-    '🧎‍♂‍➡' => 'jobbra néző térdelő férfi',
-    '🧑‍🦯‍➡' => 'jobbra néző ember fehér bottal',
-    '👨‍🦯‍➡' => 'jobbra néző férfi fehér bottal',
-    '👩‍🦯‍➡' => 'jobbra néző nő fehér bottal',
-    '🧑‍🦼‍➡' => 'jobbra néző ember motoros kerekesszékben',
-    '👨‍🦼‍➡' => 'jobbra néző férfi motoros kerekesszékben',
-    '👩‍🦼‍➡' => 'jobbra néző nő motoros kerekesszékben',
-    '🧑‍🦽‍➡' => 'jobbra néző kerekesszékes ember',
-    '👨‍🦽‍➡' => 'jobbra néző férfi kézi hajtású kerekesszékben',
-    '👩‍🦽‍➡' => 'jobbra néző nő kézi hajtású kerekesszékben',
-    '🏃‍♀‍➡' => 'jobbra néző futó nő',
-    '🏃‍♂‍➡' => 'jobbra néző futó férfi',
+    '🚶‍♀‍➡' => 'sétáló nő: jobbra néző',
+    '🚶‍♂‍➡' => 'sétáló férfi: jobbra néző',
+    '🧎‍♀‍➡' => 'térdelő nő: jobbra néző',
+    '🧎‍♂‍➡' => 'térdelő férfi: jobbra néző',
+    '🧑‍🦯‍➡' => 'ember fehér bottal: jobbra néző',
+    '👨‍🦯‍➡' => 'férfi fehér bottal: jobbra néző',
+    '👩‍🦯‍➡' => 'nő fehér bottal: jobbra néző',
+    '🧑‍🦼‍➡' => 'ember motoros kerekesszékben: jobbra néző',
+    '👨‍🦼‍➡' => 'férfi motoros kerekesszékben: jobbra néző',
+    '👩‍🦼‍➡' => 'nő motoros kerekesszékben: jobbra néző',
+    '🧑‍🦽‍➡' => 'kerekesszékes ember: jobbra néző',
+    '👨‍🦽‍➡' => 'férfi kézi hajtású kerekesszékben: jobbra néző',
+    '👩‍🦽‍➡' => 'nő kézi hajtású kerekesszékben: jobbra néző',
+    '🏃‍♀‍➡' => 'futó nő: jobbra néző',
+    '🏃‍♂‍➡' => 'futó férfi: jobbra néző',
     '👩‍❤‍👨' => 'pár szívvel: nő és férfi',
     '👨‍❤‍👨' => 'pár szívvel: férfi és férfi',
     '👩‍❤‍👩' => 'pár szívvel: nő és nő',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'felnőtt: közepes bőrtónus és kopasz',
     '🧑🏾‍🦲' => 'felnőtt: közepesen sötét bőrtónus és kopasz',
     '🧑🏿‍🦲' => 'felnőtt: sötét bőrtónus és kopasz',
+    '🧑🏻‍🩰' => 'balett-táncos: világos bőrtónus',
+    '🧑🏼‍🩰' => 'balett-táncos: közepesen világos bőrtónus',
+    '🧑🏽‍🩰' => 'balett-táncos: közepes bőrtónus',
+    '🧑🏾‍🩰' => 'balett-táncos: közepesen sötét bőrtónus',
+    '🧑🏿‍🩰' => 'balett-táncos: sötét bőrtónus',
     '🧔🏻‍♂' => 'férfi: világos bőrtónus és szakáll',
     '🧔🏼‍♂' => 'férfi: közepesen világos bőrtónus és szakáll',
     '🧔🏽‍♂' => 'férfi: közepes bőrtónus és szakáll',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'sétáló nő: közepes bőrtónus',
     '🚶🏾‍♀' => 'sétáló nő: közepesen sötét bőrtónus',
     '🚶🏿‍♀' => 'sétáló nő: sötét bőrtónus',
-    '🚶🏻‍➡' => 'jobbra néző gyalogos',
-    '🚶🏼‍➡' => 'jobbra néző gyalogos',
-    '🚶🏽‍➡' => 'jobbra néző gyalogos',
-    '🚶🏾‍➡' => 'jobbra néző gyalogos',
-    '🚶🏿‍➡' => 'jobbra néző gyalogos',
+    '🚶🏻‍➡' => 'gyalogos: világos bőrtónus és jobbra néző',
+    '🚶🏼‍➡' => 'gyalogos: közepesen világos bőrtónus és jobbra néző',
+    '🚶🏽‍➡' => 'gyalogos: közepes bőrtónus és jobbra néző',
+    '🚶🏾‍➡' => 'gyalogos: közepesen sötét bőrtónus és jobbra néző',
+    '🚶🏿‍➡' => 'gyalogos: sötét bőrtónus és jobbra néző',
     '🧍🏻‍♂' => 'álló férfi: világos bőrtónus',
     '🧍🏼‍♂' => 'álló férfi: közepesen világos bőrtónus',
     '🧍🏽‍♂' => 'álló férfi: közepes bőrtónus',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'térdelő nő: közepes bőrtónus',
     '🧎🏾‍♀' => 'térdelő nő: közepesen sötét bőrtónus',
     '🧎🏿‍♀' => 'térdelő nő: sötét bőrtónus',
-    '🧎🏻‍➡' => 'jobbra néző térdelő ember',
-    '🧎🏼‍➡' => 'jobbra néző térdelő ember',
-    '🧎🏽‍➡' => 'jobbra néző térdelő ember',
-    '🧎🏾‍➡' => 'jobbra néző térdelő ember',
-    '🧎🏿‍➡' => 'jobbra néző térdelő ember',
+    '🧎🏻‍➡' => 'térdelő ember: világos bőrtónus és jobbra néző',
+    '🧎🏼‍➡' => 'térdelő ember: közepesen világos bőrtónus és jobbra néző',
+    '🧎🏽‍➡' => 'térdelő ember: közepes bőrtónus és jobbra néző',
+    '🧎🏾‍➡' => 'térdelő ember: közepesen sötét bőrtónus és jobbra néző',
+    '🧎🏿‍➡' => 'térdelő ember: sötét bőrtónus és jobbra néző',
     '🧑🏻‍🦯' => 'ember fehér bottal: világos bőrtónus',
     '🧑🏼‍🦯' => 'ember fehér bottal: közepesen világos bőrtónus',
     '🧑🏽‍🦯' => 'ember fehér bottal: közepes bőrtónus',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'futó nő: közepes bőrtónus',
     '🏃🏾‍♀' => 'futó nő: közepesen sötét bőrtónus',
     '🏃🏿‍♀' => 'futó nő: sötét bőrtónus',
-    '🏃🏻‍➡' => 'jobbra néző futó',
-    '🏃🏼‍➡' => 'jobbra néző futó',
-    '🏃🏽‍➡' => 'jobbra néző futó',
-    '🏃🏾‍➡' => 'jobbra néző futó',
-    '🏃🏿‍➡' => 'jobbra néző futó',
+    '🏃🏻‍➡' => 'futó: világos bőrtónus és jobbra néző',
+    '🏃🏼‍➡' => 'futó: közepesen világos bőrtónus és jobbra néző',
+    '🏃🏽‍➡' => 'futó: közepes bőrtónus és jobbra néző',
+    '🏃🏾‍➡' => 'futó: közepesen sötét bőrtónus és jobbra néző',
+    '🏃🏿‍➡' => 'futó: sötét bőrtónus és jobbra néző',
+    '👯🏻‍♀' => 'bulizó nők: világos bőrtónus',
+    '👯🏼‍♀' => 'bulizó nők: közepesen világos bőrtónus',
+    '👯🏽‍♀' => 'bulizó nők: közepes bőrtónus',
+    '👯🏾‍♀' => 'bulizó nők: közepesen sötét bőrtónus',
+    '👯🏿‍♀' => 'bulizó nők: sötét bőrtónus',
+    '👯🏻‍♂' => 'bulizó férfiak: világos bőrtónus',
+    '👯🏼‍♂' => 'bulizó férfiak: közepesen világos bőrtónus',
+    '👯🏽‍♂' => 'bulizó férfiak: közepes bőrtónus',
+    '👯🏾‍♂' => 'bulizó férfiak: közepesen sötét bőrtónus',
+    '👯🏿‍♂' => 'bulizó férfiak: sötét bőrtónus',
     '🧖🏻‍♂' => 'férfi a gőzfürdőben: világos bőrtónus',
     '🧖🏼‍♂' => 'férfi a gőzfürdőben: közepesen világos bőrtónus',
     '🧖🏽‍♂' => 'férfi a gőzfürdőben: közepes bőrtónus',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'cigánykerekező nő: közepes bőrtónus',
     '🤸🏾‍♀' => 'cigánykerekező nő: közepesen sötét bőrtónus',
     '🤸🏿‍♀' => 'cigánykerekező nő: sötét bőrtónus',
+    '🤼🏻‍♀' => 'birkózó nők: világos bőrtónus',
+    '🤼🏼‍♀' => 'birkózó nők: közepesen világos bőrtónus',
+    '🤼🏽‍♀' => 'birkózó nők: közepes bőrtónus',
+    '🤼🏾‍♀' => 'birkózó nők: közepesen sötét bőrtónus',
+    '🤼🏿‍♀' => 'birkózó nők: sötét bőrtónus',
+    '🤼🏻‍♂' => 'birkózó férfiak: világos bőrtónus',
+    '🤼🏼‍♂' => 'birkózó férfiak: közepesen világos bőrtónus',
+    '🤼🏽‍♂' => 'birkózó férfiak: közepes bőrtónus',
+    '🤼🏾‍♂' => 'birkózó férfiak: közepesen sötét bőrtónus',
+    '🤼🏿‍♂' => 'birkózó férfiak: sötét bőrtónus',
     '🤽🏻‍♂' => 'vízilabdázó férfi: világos bőrtónus',
     '🤽🏼‍♂' => 'vízilabdázó férfi: közepesen világos bőrtónus',
     '🤽🏽‍♂' => 'vízilabdázó férfi: közepes bőrtónus',
@@ -1282,16 +1427,16 @@
     '👩‍🦱' => 'nő: göndör haj',
     '👩‍🦳' => 'nő: ősz haj',
     '👩‍🦲' => 'nő: kopasz',
-    '🚶‍➡' => 'jobbra néző gyalogos',
-    '🧎‍➡' => 'jobbra néző térdelő ember',
-    '🏃‍➡' => 'jobbra néző futó',
+    '🚶‍➡' => 'gyalogos: jobbra néző',
+    '🧎‍➡' => 'térdelő ember: jobbra néző',
+    '🏃‍➡' => 'futó: jobbra néző',
     '👨‍👦' => 'család: férfi és fiú',
     '👨‍👧' => 'család: férfi és lány',
     '👩‍👦' => 'család: nő és fiú',
     '👩‍👧' => 'család: nő és lány',
     '😶‍🌫' => 'arc a felhőben',
     '😮‍💨' => 'levegőt kifújó arc',
-    '🙂‍↕' => 'függőlegesen rázkódó arc',
+    '🙂‍↕' => 'függőleges fejrázás',
     '😵‍💫' => 'spirálszemű arc',
     '❤‍🔥' => 'lángoló szív',
     '❤‍🩹' => 'gyógyuló szív',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'nő kézi hajtású kerekesszékben',
     '🏃‍♂' => 'futó férfi',
     '🏃‍♀' => 'futó nő',
+    '🧑‍🩰' => 'balett-táncos',
     '👯‍♂' => 'bulizó férfiak',
     '👯‍♀' => 'bulizó nők',
     '🧖‍♂' => 'férfi a gőzfürdőben',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'öltönyös, lebegő ember: közepes bőrtónus',
     '🕴🏾' => 'öltönyös, lebegő ember: közepesen sötét bőrtónus',
     '🕴🏿' => 'öltönyös, lebegő ember: sötét bőrtónus',
+    '👯🏻' => 'bulizó emberek: világos bőrtónus',
+    '👯🏼' => 'bulizó emberek: közepesen világos bőrtónus',
+    '👯🏽' => 'bulizó emberek: közepes bőrtónus',
+    '👯🏾' => 'bulizó emberek: közepesen sötét bőrtónus',
+    '👯🏿' => 'bulizó emberek: sötét bőrtónus',
     '🧖🏻' => 'ember a gőzfürdőben: világos bőrtónus',
     '🧖🏼' => 'ember a gőzfürdőben: közepesen világos bőrtónus',
     '🧖🏽' => 'ember a gőzfürdőben: közepes bőrtónus',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'cigánykerék: közepes bőrtónus',
     '🤸🏾' => 'cigánykerék: közepesen sötét bőrtónus',
     '🤸🏿' => 'cigánykerék: sötét bőrtónus',
+    '🤼🏻' => 'birkózók: világos bőrtónus',
+    '🤼🏼' => 'birkózók: közepesen világos bőrtónus',
+    '🤼🏽' => 'birkózók: közepes bőrtónus',
+    '🤼🏾' => 'birkózók: közepesen sötét bőrtónus',
+    '🤼🏿' => 'birkózók: sötét bőrtónus',
     '🤽🏻' => 'vízilabda: világos bőrtónus',
     '🤽🏼' => 'vízilabda: közepesen világos bőrtónus',
     '🤽🏽' => 'vízilabda: közepes bőrtónus',
@@ -2391,13 +2547,6 @@
     '🏽' => 'közepes bőrtónus',
     '🏾' => 'közepesen sötét bőrtónus',
     '🏿' => 'sötét bőrtónus',
-    '🪉' => 'hárfa',
-    '🪏' => 'ásó',
-    '🪾' => 'levél nélküli fa',
-    '🫆' => 'ujjlenyomat',
-    '🫜' => 'gyökérzöldség',
-    '🫟' => 'fröccsenés',
-    '🫩' => 'arc táskás szemekkel',
     '😀' => 'nevető arc',
     '😃' => 'nagyra nyílt szemmel mosolygó arc',
     '😄' => 'nevető arc mosolygó szemmel',
@@ -2451,6 +2600,7 @@
     '😪' => 'álmos arc',
     '🤤' => 'nyáladzó fej',
     '😴' => 'alvó arc',
+    '🫩' => 'arc táskás szemekkel',
     '😷' => 'arc egészségügyi maszkkal',
     '🤒' => 'arc lázmérővel',
     '🤕' => 'arc bekötött fejjel',
@@ -2477,6 +2627,7 @@
     '😯' => 'meglepődött arc',
     '😲' => 'lenyűgözött arc',
     '😳' => 'elpirult arc',
+    '🫪' => 'eltorzult arc',
     '🥺' => 'esedező arc',
     '🥹' => 'könnyeivel küszködő arc',
     '😦' => 'rosszalló arc nyitott szájjal',
@@ -2548,6 +2699,7 @@
     '💋' => 'csóknyom',
     '💯' => 'száz pont',
     '💢' => 'a düh szimbóluma',
+    '🫯' => 'verekedésfelhő',
     '💥' => 'ütközés',
     '💫' => 'szédülés',
     '💦' => 'izzadságcseppek',
@@ -2671,6 +2823,7 @@
     '🧞' => 'dzsinn',
     '🧟' => 'zombi',
     '🧌' => 'troll',
+    '🫈' => 'szőrös lény',
     '💆' => 'arcmasszázs',
     '💇' => 'hajvágás',
     '🚶' => 'gyalogos',
@@ -2714,6 +2867,7 @@
     '🫂' => 'egymást ölelő emberek',
     '👪' => 'család',
     '👣' => 'lábnyomok',
+    '🫆' => 'ujjlenyomat',
     '🦰' => 'vörös haj',
     '🦱' => 'göndör haj',
     '🦳' => 'ősz haj',
@@ -2813,6 +2967,7 @@
     '🐳' => 'fröcskölő bálna',
     '🐋' => 'bálna',
     '🐬' => 'delfin',
+    '🫍' => 'kardszárnyú delfin',
     '🦭' => 'fóka',
     '🐟' => 'hal',
     '🐠' => 'trópusi hal',
@@ -2822,6 +2977,11 @@
     '🐚' => 'tengeri csiga',
     '🪸' => 'korall',
     '🪼' => 'medúza',
+    '🦀' => 'rák',
+    '🦞' => 'homár',
+    '🦐' => 'garnélarák',
+    '🦑' => 'tintahal',
+    '🦪' => 'osztriga',
     '🐌' => 'csiga',
     '🦋' => 'pillangó',
     '🐛' => 'rovar',
@@ -2866,6 +3026,7 @@
     '🪹' => 'üres fészek',
     '🪺' => 'fészek tojásokkal',
     '🍄' => 'gomba',
+    '🪾' => 'levél nélküli fa',
     '🍇' => 'szőlő',
     '🍈' => 'sárgadinnye',
     '🍉' => 'görögdinnye',
@@ -2902,6 +3063,7 @@
     '🌰' => 'gesztenye',
     '🫚' => 'gyömbérgyökér',
     '🫛' => 'borsóhüvely',
+    '🫜' => 'gyökérzöldség',
     '🍞' => 'kenyér',
     '🥐' => 'croissant',
     '🥖' => 'bagett',
@@ -2953,11 +3115,6 @@
     '🥟' => 'gombóc',
     '🥠' => 'szerencsesüti',
     '🥡' => 'elviteles doboz',
-    '🦀' => 'rák',
-    '🦞' => 'homár',
-    '🦐' => 'garnélarák',
-    '🦑' => 'tintahal',
-    '🦪' => 'osztriga',
     '🍦' => 'lágyfagylalt',
     '🍧' => 'fagylalt öntettel',
     '🍨' => 'fagylalt',
@@ -3008,6 +3165,7 @@
     '🧭' => 'iránytű',
     '🏔' => 'hegy hótakaróval',
     '⛰' => 'hegy',
+    '🛘' => 'földcsuszamlás',
     '🌋' => 'vulkán',
     '🗻' => 'Fudzsi-hegy',
     '🏕' => 'sátorozás',
@@ -3368,16 +3526,18 @@
     '🎧' => 'fülhallgató',
     '📻' => 'rádió',
     '🎷' => 'szaxofon',
+    '🎺' => 'trombita',
+    '🪊' => 'harsona',
     '🪗' => 'harmonika',
     '🎸' => 'gitár',
     '🎹' => 'zenei billentyűzet',
-    '🎺' => 'trombita',
     '🎻' => 'hegedű',
     '🪕' => 'bendzsó',
     '🥁' => 'dob',
     '🪘' => 'hosszú dob',
     '🪇' => 'rumbatök',
     '🪈' => 'fuvola',
+    '🪉' => 'hárfa',
     '📱' => 'mobiltelefon',
     '📲' => 'mobiltelefon nyíllal',
     '☎' => 'telefon',
@@ -3431,8 +3591,9 @@
     '📑' => 'könyvjelzők',
     '🔖' => 'könyvjelző',
     '🏷' => 'címke',
-    '💰' => 'pénzeszsák',
     '🪙' => 'érme',
+    '💰' => 'pénzeszsák',
+    '🪎' => 'kincsesláda',
     '💴' => 'jen bankjegy',
     '💵' => 'dollár bankjegy',
     '💶' => 'euró bankjegy',
@@ -3515,6 +3676,7 @@
     '🧰' => 'szerszámosláda',
     '🧲' => 'mágnes',
     '🪜' => 'létra',
+    '🪏' => 'ásó',
     '⚗' => 'lombik',
     '🧪' => 'kémcső',
     '🧫' => 'Petri-csésze',
@@ -3698,6 +3860,7 @@
     '✴' => 'nyolcas csillag',
     '❇' => 'szikra',
     '™' => 'védjegy',
+    '🫟' => 'fröccsenés',
     '🔠' => 'latin nagybetűs bevitel',
     '🔡' => 'latin kisbetűs bevitel',
     '🔢' => 'számbevitel',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hy.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-hy.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'համբույր․ կին կին մուգ գույնի մաշկ և միջին գույնի մաշկ',
     '👩🏿‍❤‍💋‍👩🏾' => 'համբույր․ կին կին մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
     '👩🏿‍❤‍💋‍👩🏿' => 'համբույր․ կին կին և մուգ գույնի մաշկ',
+    '🧑🏻‍🫯‍🧑🏼' => 'ըմբշամարտիկներ․ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '🧑🏻‍🫯‍🧑🏽' => 'ըմբշամարտիկներ․ բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '🧑🏻‍🫯‍🧑🏾' => 'ըմբշամարտիկներ․ բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '🧑🏻‍🫯‍🧑🏿' => 'ըմբշամարտիկներ․ բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '🧑🏼‍🫯‍🧑🏻' => 'ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և բաց գույնի մաշկ',
+    '🧑🏼‍🫯‍🧑🏽' => 'ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '🧑🏼‍🫯‍🧑🏾' => 'ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '🧑🏼‍🫯‍🧑🏿' => 'ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '🧑🏽‍🫯‍🧑🏻' => 'ըմբշամարտիկներ․ միջին գույնի մաշկ և բաց գույնի մաշկ',
+    '🧑🏽‍🫯‍🧑🏼' => 'ըմբշամարտիկներ․ միջին գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '🧑🏽‍🫯‍🧑🏾' => 'ըմբշամարտիկներ․ միջին գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '🧑🏽‍🫯‍🧑🏿' => 'ըմբշամարտիկներ․ միջին գույնի մաշկ և մուգ գույնի մաշկ',
+    '🧑🏾‍🫯‍🧑🏻' => 'ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '🧑🏾‍🫯‍🧑🏼' => 'ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '🧑🏾‍🫯‍🧑🏽' => 'ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '🧑🏾‍🫯‍🧑🏿' => 'ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և մուգ գույնի մաշկ',
+    '🧑🏿‍🫯‍🧑🏻' => 'ըմբշամարտիկներ․ մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '🧑🏿‍🫯‍🧑🏼' => 'ըմբշամարտիկներ․ մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '🧑🏿‍🫯‍🧑🏽' => 'ըմբշամարտիկներ․ մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '🧑🏿‍🫯‍🧑🏾' => 'ըմբշամարտիկներ․ մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
     '🧑🏻‍❤‍🧑🏼' => 'սրտիկով զույգ․ անձ անձ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
     '🧑🏻‍❤‍🧑🏽' => 'սրտիկով զույգ․ անձ անձ բաց գույնի մաշկ և միջին գույնի մաշկ',
     '🧑🏻‍❤‍🧑🏾' => 'սրտիկով զույգ․ անձ անձ բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'սրտիկով զույգ․ անձ անձ մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
     '🧑🏿‍❤‍🧑🏽' => 'սրտիկով զույգ․ անձ անձ մուգ գույնի մաշկ և միջին գույնի մաշկ',
     '🧑🏿‍❤‍🧑🏾' => 'սրտիկով զույգ․ անձ անձ մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '🧑🏻‍🐰‍🧑🏼' => 'ճագարի ականջներով մարդիկ․ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '🧑🏻‍🐰‍🧑🏽' => 'ճագարի ականջներով մարդիկ․ բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '🧑🏻‍🐰‍🧑🏾' => 'ճագարի ականջներով մարդիկ․ բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '🧑🏻‍🐰‍🧑🏿' => 'ճագարի ականջներով մարդիկ․ բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '🧑🏼‍🐰‍🧑🏻' => 'ճագարի ականջներով մարդիկ․ միջին բաց գույնի մաշկ և բաց գույնի մաշկ',
+    '🧑🏼‍🐰‍🧑🏽' => 'ճագարի ականջներով մարդիկ․ միջին բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '🧑🏼‍🐰‍🧑🏾' => 'ճագարի ականջներով մարդիկ․ միջին բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '🧑🏼‍🐰‍🧑🏿' => 'ճագարի ականջներով մարդիկ․ միջին բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '🧑🏽‍🐰‍🧑🏻' => 'ճագարի ականջներով մարդիկ․ միջին գույնի մաշկ և բաց գույնի մաշկ',
+    '🧑🏽‍🐰‍🧑🏼' => 'ճագարի ականջներով մարդիկ․ միջին գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '🧑🏽‍🐰‍🧑🏾' => 'ճագարի ականջներով մարդիկ․ միջին գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '🧑🏽‍🐰‍🧑🏿' => 'ճագարի ականջներով մարդիկ․ միջին գույնի մաշկ և մուգ գույնի մաշկ',
+    '🧑🏾‍🐰‍🧑🏻' => 'ճագարի ականջներով մարդիկ․ միջին մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '🧑🏾‍🐰‍🧑🏼' => 'ճագարի ականջներով մարդիկ․ միջին մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '🧑🏾‍🐰‍🧑🏽' => 'ճագարի ականջներով մարդիկ․ միջին մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '🧑🏾‍🐰‍🧑🏿' => 'ճագարի ականջներով մարդիկ․ միջին մուգ գույնի մաշկ և մուգ գույնի մաշկ',
+    '🧑🏿‍🐰‍🧑🏻' => 'ճագարի ականջներով մարդիկ․ մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '🧑🏿‍🐰‍🧑🏼' => 'ճագարի ականջներով մարդիկ․ մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '🧑🏿‍🐰‍🧑🏽' => 'ճագարի ականջներով մարդիկ․ մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '🧑🏿‍🐰‍🧑🏾' => 'ճագարի ականջներով մարդիկ․ մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👨🏻‍🫯‍👨🏼' => 'տղամարդ ըմբշամարտիկներ․ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👨🏻‍🫯‍👨🏽' => 'տղամարդ ըմբշամարտիկներ․ բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '👨🏻‍🫯‍👨🏾' => 'տղամարդ ըմբշամարտիկներ․ բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👨🏻‍🫯‍👨🏿' => 'տղամարդ ըմբշամարտիկներ․ բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '👨🏼‍🫯‍👨🏻' => 'տղամարդ ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և բաց գույնի մաշկ',
+    '👨🏼‍🫯‍👨🏽' => 'տղամարդ ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '👨🏼‍🫯‍👨🏾' => 'տղամարդ ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👨🏼‍🫯‍👨🏿' => 'տղամարդ ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '👨🏽‍🫯‍👨🏻' => 'տղամարդ ըմբշամարտիկներ․ միջին գույնի մաշկ և բաց գույնի մաշկ',
+    '👨🏽‍🫯‍👨🏼' => 'տղամարդ ըմբշամարտիկներ․ միջին գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👨🏽‍🫯‍👨🏾' => 'տղամարդ ըմբշամարտիկներ․ միջին գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👨🏽‍🫯‍👨🏿' => 'տղամարդ ըմբշամարտիկներ․ միջին գույնի մաշկ և մուգ գույնի մաշկ',
+    '👨🏾‍🫯‍👨🏻' => 'տղամարդ ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '👨🏾‍🫯‍👨🏼' => 'տղամարդ ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👨🏾‍🫯‍👨🏽' => 'տղամարդ ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '👨🏾‍🫯‍👨🏿' => 'տղամարդ ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և մուգ գույնի մաշկ',
+    '👨🏿‍🫯‍👨🏻' => 'տղամարդ ըմբշամարտիկներ․ մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '👨🏿‍🫯‍👨🏼' => 'տղամարդ ըմբշամարտիկներ․ մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👨🏿‍🫯‍👨🏽' => 'տղամարդ ըմբշամարտիկներ․ մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '👨🏿‍🫯‍👨🏾' => 'տղամարդ ըմբշամարտիկներ․ մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
     '👨🏻‍❤‍👨🏻' => 'սրտիկով զույգ․ մարդ մարդ և բաց գույնի մաշկ',
     '👨🏻‍❤‍👨🏼' => 'սրտիկով զույգ․ մարդ մարդ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
     '👨🏻‍❤‍👨🏽' => 'սրտիկով զույգ․ մարդ մարդ բաց գույնի մաշկ և միջին գույնի մաշկ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'սրտիկով զույգ․ մարդ մարդ մուգ գույնի մաշկ և միջին գույնի մաշկ',
     '👨🏿‍❤‍👨🏾' => 'սրտիկով զույգ․ մարդ մարդ մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
     '👨🏿‍❤‍👨🏿' => 'սրտիկով զույգ․ մարդ մարդ և մուգ գույնի մաշկ',
+    '👨🏻‍🐰‍👨🏼' => 'զվարճացող տղամարդիկ․ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👨🏻‍🐰‍👨🏽' => 'զվարճացող տղամարդիկ․ բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '👨🏻‍🐰‍👨🏾' => 'զվարճացող տղամարդիկ․ բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👨🏻‍🐰‍👨🏿' => 'զվարճացող տղամարդիկ․ բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '👨🏼‍🐰‍👨🏻' => 'զվարճացող տղամարդիկ․ միջին բաց գույնի մաշկ և բաց գույնի մաշկ',
+    '👨🏼‍🐰‍👨🏽' => 'զվարճացող տղամարդիկ․ միջին բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '👨🏼‍🐰‍👨🏾' => 'զվարճացող տղամարդիկ․ միջին բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👨🏼‍🐰‍👨🏿' => 'զվարճացող տղամարդիկ․ միջին բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '👨🏽‍🐰‍👨🏻' => 'զվարճացող տղամարդիկ․ միջին գույնի մաշկ և բաց գույնի մաշկ',
+    '👨🏽‍🐰‍👨🏼' => 'զվարճացող տղամարդիկ․ միջին գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👨🏽‍🐰‍👨🏾' => 'զվարճացող տղամարդիկ․ միջին գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👨🏽‍🐰‍👨🏿' => 'զվարճացող տղամարդիկ․ միջին գույնի մաշկ և մուգ գույնի մաշկ',
+    '👨🏾‍🐰‍👨🏻' => 'զվարճացող տղամարդիկ․ միջին մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '👨🏾‍🐰‍👨🏼' => 'զվարճացող տղամարդիկ․ միջին մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👨🏾‍🐰‍👨🏽' => 'զվարճացող տղամարդիկ․ միջին մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '👨🏾‍🐰‍👨🏿' => 'զվարճացող տղամարդիկ․ միջին մուգ գույնի մաշկ և մուգ գույնի մաշկ',
+    '👨🏿‍🐰‍👨🏻' => 'զվարճացող տղամարդիկ․ մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '👨🏿‍🐰‍👨🏼' => 'զվարճացող տղամարդիկ․ մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👨🏿‍🐰‍👨🏽' => 'զվարճացող տղամարդիկ․ մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '👨🏿‍🐰‍👨🏾' => 'զվարճացող տղամարդիկ․ մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👩🏻‍🫯‍👩🏼' => 'կին ըմբշամարտիկներ․ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👩🏻‍🫯‍👩🏽' => 'կին ըմբշամարտիկներ․ բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '👩🏻‍🫯‍👩🏾' => 'կին ըմբշամարտիկներ․ բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👩🏻‍🫯‍👩🏿' => 'կին ըմբշամարտիկներ․ բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '👩🏼‍🫯‍👩🏻' => 'կին ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և բաց գույնի մաշկ',
+    '👩🏼‍🫯‍👩🏽' => 'կին ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '👩🏼‍🫯‍👩🏾' => 'կին ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👩🏼‍🫯‍👩🏿' => 'կին ըմբշամարտիկներ․ միջին բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '👩🏽‍🫯‍👩🏻' => 'կին ըմբշամարտիկներ․ միջին գույնի մաշկ և բաց գույնի մաշկ',
+    '👩🏽‍🫯‍👩🏼' => 'կին ըմբշամարտիկներ․ միջին գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👩🏽‍🫯‍👩🏾' => 'կին ըմբշամարտիկներ․ միջին գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👩🏽‍🫯‍👩🏿' => 'կին ըմբշամարտիկներ․ միջին գույնի մաշկ և մուգ գույնի մաշկ',
+    '👩🏾‍🫯‍👩🏻' => 'կին ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '👩🏾‍🫯‍👩🏼' => 'կին ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👩🏾‍🫯‍👩🏽' => 'կին ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '👩🏾‍🫯‍👩🏿' => 'կին ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ և մուգ գույնի մաշկ',
+    '👩🏿‍🫯‍👩🏻' => 'կին ըմբշամարտիկներ․ մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '👩🏿‍🫯‍👩🏼' => 'կին ըմբշամարտիկներ․ մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👩🏿‍🫯‍👩🏽' => 'կին ըմբշամարտիկներ․ մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '👩🏿‍🫯‍👩🏾' => 'կին ըմբշամարտիկներ․ մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
     '👩🏻‍❤‍👨🏻' => 'սրտիկով զույգ․ կին մարդ և բաց գույնի մաշկ',
     '👩🏻‍❤‍👨🏼' => 'սրտիկով զույգ․ կին մարդ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
     '👩🏻‍❤‍👨🏽' => 'սրտիկով զույգ․ կին մարդ բաց գույնի մաշկ և միջին գույնի մաշկ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'սրտիկով զույգ․ կին կին մուգ գույնի մաշկ և միջին գույնի մաշկ',
     '👩🏿‍❤‍👩🏾' => 'սրտիկով զույգ․ կին կին մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
     '👩🏿‍❤‍👩🏿' => 'սրտիկով զույգ․ կին կին և մուգ գույնի մաշկ',
+    '👩🏻‍🐰‍👩🏼' => 'զվարճացող կանայք․ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👩🏻‍🐰‍👩🏽' => 'զվարճացող կանայք․ բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '👩🏻‍🐰‍👩🏾' => 'զվարճացող կանայք․ բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👩🏻‍🐰‍👩🏿' => 'զվարճացող կանայք․ բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '👩🏼‍🐰‍👩🏻' => 'զվարճացող կանայք․ միջին բաց գույնի մաշկ և բաց գույնի մաշկ',
+    '👩🏼‍🐰‍👩🏽' => 'զվարճացող կանայք․ միջին բաց գույնի մաշկ և միջին գույնի մաշկ',
+    '👩🏼‍🐰‍👩🏾' => 'զվարճացող կանայք․ միջին բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👩🏼‍🐰‍👩🏿' => 'զվարճացող կանայք․ միջին բաց գույնի մաշկ և մուգ գույնի մաշկ',
+    '👩🏽‍🐰‍👩🏻' => 'զվարճացող կանայք․ միջին գույնի մաշկ և բաց գույնի մաշկ',
+    '👩🏽‍🐰‍👩🏼' => 'զվարճացող կանայք․ միջին գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👩🏽‍🐰‍👩🏾' => 'զվարճացող կանայք․ միջին գույնի մաշկ և միջին մուգ գույնի մաշկ',
+    '👩🏽‍🐰‍👩🏿' => 'զվարճացող կանայք․ միջին գույնի մաշկ և մուգ գույնի մաշկ',
+    '👩🏾‍🐰‍👩🏻' => 'զվարճացող կանայք․ միջին մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '👩🏾‍🐰‍👩🏼' => 'զվարճացող կանայք․ միջին մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👩🏾‍🐰‍👩🏽' => 'զվարճացող կանայք․ միջին մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '👩🏾‍🐰‍👩🏿' => 'զվարճացող կանայք․ միջին մուգ գույնի մաշկ և մուգ գույնի մաշկ',
+    '👩🏿‍🐰‍👩🏻' => 'զվարճացող կանայք․ մուգ գույնի մաշկ և բաց գույնի մաշկ',
+    '👩🏿‍🐰‍👩🏼' => 'զվարճացող կանայք․ մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
+    '👩🏿‍🐰‍👩🏽' => 'զվարճացող կանայք․ մուգ գույնի մաշկ և միջին գույնի մաշկ',
+    '👩🏿‍🐰‍👩🏾' => 'զվարճացող կանայք․ մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
     '🧑🏻‍🤝‍🧑🏻' => 'իրար ձեռք բռնած մարդիկ․ բաց գույնի մաշկ',
     '🧑🏻‍🤝‍🧑🏼' => 'իրար ձեռք բռնած մարդիկ․ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
     '🧑🏻‍🤝‍🧑🏽' => 'իրար ձեռք բռնած մարդիկ․ բաց գույնի մաշկ և միջին գույնի մաշկ',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'դրոշ․ Շոտլանդիա',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'դրոշ․ Ուելս',
     '🧑‍🧑‍🧒‍🧒' => 'ընտանիք․ մեծահասակ, մեծահասակ, երեխա, երեխա',
-    '🚶🏻‍♀‍➡' => 'քայլող կին դեմքով՝ աջ',
-    '🚶🏼‍♀‍➡' => 'քայլող կին դեմքով՝ աջ',
-    '🚶🏽‍♀‍➡' => 'քայլող կին դեմքով՝ աջ',
-    '🚶🏾‍♀‍➡' => 'քայլող կին դեմքով՝ աջ',
-    '🚶🏿‍♀‍➡' => 'քայլող կին դեմքով՝ աջ',
-    '🚶🏻‍♂‍➡' => 'քայլող տղամարդ դեմքով՝ աջ',
-    '🚶🏼‍♂‍➡' => 'քայլող տղամարդ դեմքով՝ աջ',
-    '🚶🏽‍♂‍➡' => 'քայլող տղամարդ դեմքով՝ աջ',
-    '🚶🏾‍♂‍➡' => 'քայլող տղամարդ դեմքով՝ աջ',
-    '🚶🏿‍♂‍➡' => 'քայլող տղամարդ դեմքով՝ աջ',
-    '🧎🏻‍♀‍➡' => 'ծնկաչոք կին դեմքով՝ աջ',
-    '🧎🏼‍♀‍➡' => 'ծնկաչոք կին դեմքով՝ աջ',
-    '🧎🏽‍♀‍➡' => 'ծնկաչոք կին դեմքով՝ աջ',
-    '🧎🏾‍♀‍➡' => 'ծնկաչոք կին դեմքով՝ աջ',
-    '🧎🏿‍♀‍➡' => 'ծնկաչոք կին դեմքով՝ աջ',
-    '🧎🏻‍♂‍➡' => 'ծնկաչոք տղամարդ դեմքով՝ աջ',
-    '🧎🏼‍♂‍➡' => 'ծնկաչոք տղամարդ դեմքով՝ աջ',
-    '🧎🏽‍♂‍➡' => 'ծնկաչոք տղամարդ դեմքով՝ աջ',
-    '🧎🏾‍♂‍➡' => 'ծնկաչոք տղամարդ դեմքով՝ աջ',
-    '🧎🏿‍♂‍➡' => 'ծնկաչոք տղամարդ դեմքով՝ աջ',
-    '🧑🏻‍🦯‍➡' => 'ձեռնափայտով անձ դեմքով՝ աջ',
-    '🧑🏼‍🦯‍➡' => 'ձեռնափայտով անձ դեմքով՝ աջ',
-    '🧑🏽‍🦯‍➡' => 'ձեռնափայտով անձ դեմքով՝ աջ',
-    '🧑🏾‍🦯‍➡' => 'ձեռնափայտով անձ դեմքով՝ աջ',
-    '🧑🏿‍🦯‍➡' => 'ձեռնափայտով անձ դեմքով՝ աջ',
-    '👨🏻‍🦯‍➡' => 'ձեռնափայտով տղամարդ դեմքով՝ աջ',
-    '👨🏼‍🦯‍➡' => 'ձեռնափայտով տղամարդ դեմքով՝ աջ',
-    '👨🏽‍🦯‍➡' => 'ձեռնափայտով տղամարդ դեմքով՝ աջ',
-    '👨🏾‍🦯‍➡' => 'ձեռնափայտով տղամարդ դեմքով՝ աջ',
-    '👨🏿‍🦯‍➡' => 'ձեռնափայտով տղամարդ դեմքով՝ աջ',
-    '👩🏻‍🦯‍➡' => 'ձեռնափայտով կին դեմքով՝ աջ',
-    '👩🏼‍🦯‍➡' => 'ձեռնափայտով կին դեմքով՝ աջ',
-    '👩🏽‍🦯‍➡' => 'ձեռնափայտով կին դեմքով՝ աջ',
-    '👩🏾‍🦯‍➡' => 'ձեռնափայտով կին դեմքով՝ աջ',
-    '👩🏿‍🦯‍➡' => 'ձեռնափայտով կին դեմքով՝ աջ',
-    '🧑🏻‍🦼‍➡' => 'մոտորասայլակով անձ դեմքով՝ աջ',
-    '🧑🏼‍🦼‍➡' => 'մոտորասայլակով անձ դեմքով՝ աջ',
-    '🧑🏽‍🦼‍➡' => 'մոտորասայլակով անձ դեմքով՝ աջ',
-    '🧑🏾‍🦼‍➡' => 'մոտորասայլակով անձ դեմքով՝ աջ',
-    '🧑🏿‍🦼‍➡' => 'մոտորասայլակով անձ դեմքով՝ աջ',
-    '👨🏻‍🦼‍➡' => 'մոտորասայլակով տղամարդ դեմքով՝ աջ',
-    '👨🏼‍🦼‍➡' => 'մոտորասայլակով տղամարդ դեմքով՝ աջ',
-    '👨🏽‍🦼‍➡' => 'մոտորասայլակով տղամարդ դեմքով՝ աջ',
-    '👨🏾‍🦼‍➡' => 'մոտորասայլակով տղամարդ դեմքով՝ աջ',
-    '👨🏿‍🦼‍➡' => 'մոտորասայլակով տղամարդ դեմքով՝ աջ',
-    '👩🏻‍🦼‍➡' => 'մոտորասայլակով կին դեմքով՝ աջ',
-    '👩🏼‍🦼‍➡' => 'մոտորասայլակով կին դեմքով՝ աջ',
-    '👩🏽‍🦼‍➡' => 'մոտորասայլակով կին դեմքով՝ աջ',
-    '👩🏾‍🦼‍➡' => 'մոտորասայլակով կին դեմքով՝ աջ',
-    '👩🏿‍🦼‍➡' => 'մոտորասայլակով կին դեմքով՝ աջ',
-    '🧑🏻‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ դեմքով՝ աջ',
-    '🧑🏼‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ դեմքով՝ աջ',
-    '🧑🏽‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ դեմքով՝ աջ',
-    '🧑🏾‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ դեմքով՝ աջ',
-    '🧑🏿‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ դեմքով՝ աջ',
-    '👨🏻‍🦽‍➡' => 'անվասայլակով տղամարդ դեմքով՝ աջ',
-    '👨🏼‍🦽‍➡' => 'անվասայլակով տղամարդ դեմքով՝ աջ',
-    '👨🏽‍🦽‍➡' => 'անվասայլակով տղամարդ դեմքով՝ աջ',
-    '👨🏾‍🦽‍➡' => 'անվասայլակով տղամարդ դեմքով՝ աջ',
-    '👨🏿‍🦽‍➡' => 'անվասայլակով տղամարդ դեմքով՝ աջ',
-    '👩🏻‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին դեմքով՝ աջ',
-    '👩🏼‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին դեմքով՝ աջ',
-    '👩🏽‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին դեմքով՝ աջ',
-    '👩🏾‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին դեմքով՝ աջ',
-    '👩🏿‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին դեմքով՝ աջ',
-    '🏃🏻‍♀‍➡' => 'վազող կին դեմքով՝ աջ',
-    '🏃🏼‍♀‍➡' => 'վազող կին դեմքով՝ աջ',
-    '🏃🏽‍♀‍➡' => 'վազող կին դեմքով՝ աջ',
-    '🏃🏾‍♀‍➡' => 'վազող կին դեմքով՝ աջ',
-    '🏃🏿‍♀‍➡' => 'վազող կին դեմքով՝ աջ',
-    '🏃🏻‍♂‍➡' => 'վազող տղամարդ դեմքով՝ աջ',
-    '🏃🏼‍♂‍➡' => 'վազող տղամարդ դեմքով՝ աջ',
-    '🏃🏽‍♂‍➡' => 'վազող տղամարդ դեմքով՝ աջ',
-    '🏃🏾‍♂‍➡' => 'վազող տղամարդ դեմքով՝ աջ',
-    '🏃🏿‍♂‍➡' => 'վազող տղամարդ դեմքով՝ աջ',
+    '🚶🏻‍♀‍➡' => 'քայլող կին․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏼‍♀‍➡' => 'քայլող կին․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏽‍♀‍➡' => 'քայլող կին․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏾‍♀‍➡' => 'քայլող կին․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏿‍♀‍➡' => 'քայլող կին․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏻‍♂‍➡' => 'քայլող տղամարդ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏼‍♂‍➡' => 'քայլող տղամարդ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏽‍♂‍➡' => 'քայլող տղամարդ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏾‍♂‍➡' => 'քայլող տղամարդ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏿‍♂‍➡' => 'քայլող տղամարդ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏻‍♀‍➡' => 'ծնկաչոք կին․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏼‍♀‍➡' => 'ծնկաչոք կին․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏽‍♀‍➡' => 'ծնկաչոք կին․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏾‍♀‍➡' => 'ծնկաչոք կին․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏿‍♀‍➡' => 'ծնկաչոք կին․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏻‍♂‍➡' => 'ծնկաչոք տղամարդ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏼‍♂‍➡' => 'ծնկաչոք տղամարդ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏽‍♂‍➡' => 'ծնկաչոք տղամարդ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏾‍♂‍➡' => 'ծնկաչոք տղամարդ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏿‍♂‍➡' => 'ծնկաչոք տղամարդ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏻‍🦯‍➡' => 'ձեռնափայտով անձ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏼‍🦯‍➡' => 'ձեռնափայտով անձ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏽‍🦯‍➡' => 'ձեռնափայտով անձ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏾‍🦯‍➡' => 'ձեռնափայտով անձ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏿‍🦯‍➡' => 'ձեռնափայտով անձ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏻‍🦯‍➡' => 'ձեռնափայտով տղամարդ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏼‍🦯‍➡' => 'ձեռնափայտով տղամարդ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏽‍🦯‍➡' => 'ձեռնափայտով տղամարդ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏾‍🦯‍➡' => 'ձեռնափայտով տղամարդ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏿‍🦯‍➡' => 'ձեռնափայտով տղամարդ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏻‍🦯‍➡' => 'ձեռնափայտով կին․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏼‍🦯‍➡' => 'ձեռնափայտով կին․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏽‍🦯‍➡' => 'ձեռնափայտով կին․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏾‍🦯‍➡' => 'ձեռնափայտով կին․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏿‍🦯‍➡' => 'ձեռնափայտով կին․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏻‍🦼‍➡' => 'մոտորասայլակով անձ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏼‍🦼‍➡' => 'մոտորասայլակով անձ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏽‍🦼‍➡' => 'մոտորասայլակով անձ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏾‍🦼‍➡' => 'մոտորասայլակով անձ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏿‍🦼‍➡' => 'մոտորասայլակով անձ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏻‍🦼‍➡' => 'մոտորասայլակով տղամարդ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏼‍🦼‍➡' => 'մոտորասայլակով տղամարդ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏽‍🦼‍➡' => 'մոտորասայլակով տղամարդ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏾‍🦼‍➡' => 'մոտորասայլակով տղամարդ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏿‍🦼‍➡' => 'մոտորասայլակով տղամարդ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏻‍🦼‍➡' => 'մոտորասայլակով կին․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏼‍🦼‍➡' => 'մոտորասայլակով կին․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏽‍🦼‍➡' => 'մոտորասայլակով կին․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏾‍🦼‍➡' => 'մոտորասայլակով կին․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏿‍🦼‍➡' => 'մոտորասայլակով կին․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏻‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏼‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏽‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏾‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧑🏿‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏻‍🦽‍➡' => 'անվասայլակով տղամարդ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏼‍🦽‍➡' => 'անվասայլակով տղամարդ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏽‍🦽‍➡' => 'անվասայլակով տղամարդ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏾‍🦽‍➡' => 'անվասայլակով տղամարդ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👨🏿‍🦽‍➡' => 'անվասայլակով տղամարդ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏻‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏼‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏽‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏾‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👩🏿‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏻‍♀‍➡' => 'վազող կին․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏼‍♀‍➡' => 'վազող կին․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏽‍♀‍➡' => 'վազող կին․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏾‍♀‍➡' => 'վազող կին․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏿‍♀‍➡' => 'վազող կին․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏻‍♂‍➡' => 'վազող տղամարդ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏼‍♂‍➡' => 'վազող տղամարդ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏽‍♂‍➡' => 'վազող տղամարդ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏾‍♂‍➡' => 'վազող տղամարդ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏿‍♂‍➡' => 'վազող տղամարդ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
     '🫱🏻‍🫲🏼' => 'ձեռքսեղմում․ բաց գույնի մաշկ և միջին բաց գույնի մաշկ',
     '🫱🏻‍🫲🏽' => 'ձեռքսեղմում․ բաց գույնի մաշկ և միջին գույնի մաշկ',
     '🫱🏻‍🫲🏾' => 'ձեռքսեղմում․ բաց գույնի մաշկ և միջին մուգ գույնի մաշկ',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ձեռքսեղմում․ մուգ գույնի մաշկ և միջին բաց գույնի մաշկ',
     '🫱🏿‍🫲🏽' => 'ձեռքսեղմում․ մուգ գույնի մաշկ և միջին գույնի մաշկ',
     '🫱🏿‍🫲🏾' => 'ձեռքսեղմում․ մուգ գույնի մաշկ և միջին մուգ գույնի մաշկ',
-    '🚶‍♀‍➡' => 'քայլող կին դեմքով՝ աջ',
-    '🚶‍♂‍➡' => 'քայլող տղամարդ դեմքով՝ աջ',
-    '🧎‍♀‍➡' => 'ծնկաչոք կին դեմքով՝ աջ',
-    '🧎‍♂‍➡' => 'ծնկաչոք տղամարդ դեմքով՝ աջ',
-    '🧑‍🦯‍➡' => 'ձեռնափայտով անձ դեմքով՝ աջ',
-    '👨‍🦯‍➡' => 'ձեռնափայտով տղամարդ դեմքով՝ աջ',
-    '👩‍🦯‍➡' => 'ձեռնափայտով կին դեմքով՝ աջ',
-    '🧑‍🦼‍➡' => 'մոտորասայլակով անձ դեմքով՝ աջ',
-    '👨‍🦼‍➡' => 'մոտորասայլակով տղամարդ դեմքով՝ աջ',
-    '👩‍🦼‍➡' => 'մոտորասայլակով կին դեմքով՝ աջ',
-    '🧑‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ դեմքով՝ աջ',
-    '👨‍🦽‍➡' => 'անվասայլակով տղամարդ դեմքով՝ աջ',
-    '👩‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին դեմքով՝ աջ',
-    '🏃‍♀‍➡' => 'վազող կին դեմքով՝ աջ',
-    '🏃‍♂‍➡' => 'վազող տղամարդ դեմքով՝ աջ',
+    '🚶‍♀‍➡' => 'քայլող կին․ դեմքով՝ աջ',
+    '🚶‍♂‍➡' => 'քայլող տղամարդ․ դեմքով՝ աջ',
+    '🧎‍♀‍➡' => 'ծնկաչոք կին․ դեմքով՝ աջ',
+    '🧎‍♂‍➡' => 'ծնկաչոք տղամարդ․ դեմքով՝ աջ',
+    '🧑‍🦯‍➡' => 'ձեռնափայտով անձ․ դեմքով՝ աջ',
+    '👨‍🦯‍➡' => 'ձեռնափայտով տղամարդ․ դեմքով՝ աջ',
+    '👩‍🦯‍➡' => 'ձեռնափայտով կին․ դեմքով՝ աջ',
+    '🧑‍🦼‍➡' => 'մոտորասայլակով անձ․ դեմքով՝ աջ',
+    '👨‍🦼‍➡' => 'մոտորասայլակով տղամարդ․ դեմքով՝ աջ',
+    '👩‍🦼‍➡' => 'մոտորասայլակով կին․ դեմքով՝ աջ',
+    '🧑‍🦽‍➡' => 'ձեռքով կառավարվող սայլակով անձ․ դեմքով՝ աջ',
+    '👨‍🦽‍➡' => 'անվասայլակով տղամարդ․ դեմքով՝ աջ',
+    '👩‍🦽‍➡' => 'ձեռքով կառավարվող անվասայլակով կին․ դեմքով՝ աջ',
+    '🏃‍♀‍➡' => 'վազող կին․ դեմքով՝ աջ',
+    '🏃‍♂‍➡' => 'վազող տղամարդ․ դեմքով՝ աջ',
     '👩‍❤‍👨' => 'սրտիկով զույգ․ կին և մարդ',
     '👨‍❤‍👨' => 'սրտիկով զույգ․ մարդ և մարդ',
     '👩‍❤‍👩' => 'սրտիկով զույգ․ կին և կին',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'անձ․ միջին գույնի մաշկ և ճաղատ',
     '🧑🏾‍🦲' => 'անձ․ միջին մուգ գույնի մաշկ և ճաղատ',
     '🧑🏿‍🦲' => 'անձ․ մուգ գույնի մաշկ և ճաղատ',
+    '🧑🏻‍🩰' => 'բալետ պարող․ բաց գույնի մաշկ',
+    '🧑🏼‍🩰' => 'բալետ պարող․ միջին բաց գույնի մաշկ',
+    '🧑🏽‍🩰' => 'բալետ պարող․ միջին գույնի մաշկ',
+    '🧑🏾‍🩰' => 'բալետ պարող․ միջին մուգ գույնի մաշկ',
+    '🧑🏿‍🩰' => 'բալետ պարող․ մուգ գույնի մաշկ',
     '🧔🏻‍♂' => 'մորուքավոր տղամարդ․ բաց գույնի մաշկ',
     '🧔🏼‍♂' => 'մորուքավոր տղամարդ․ միջին բաց գույնի մաշկ',
     '🧔🏽‍♂' => 'մորուքավոր տղամարդ․ միջին գույնի մաշկ',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'քայլող կին․ միջին գույնի մաշկ',
     '🚶🏾‍♀' => 'քայլող կին․ միջին մուգ գույնի մաշկ',
     '🚶🏿‍♀' => 'քայլող կին․ մուգ գույնի մաշկ',
-    '🚶🏻‍➡' => 'հետիոտն դեմքով՝ աջ',
-    '🚶🏼‍➡' => 'հետիոտն դեմքով՝ աջ',
-    '🚶🏽‍➡' => 'հետիոտն դեմքով՝ աջ',
-    '🚶🏾‍➡' => 'հետիոտն դեմքով՝ աջ',
-    '🚶🏿‍➡' => 'հետիոտն դեմքով՝ աջ',
+    '🚶🏻‍➡' => 'հետիոտն․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏼‍➡' => 'հետիոտն․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏽‍➡' => 'հետիոտն․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏾‍➡' => 'հետիոտն․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🚶🏿‍➡' => 'հետիոտն․ մուգ գույնի մաշկ և դեմքով՝ աջ',
     '🧍🏻‍♂' => 'կանգնած տղամարդ․ բաց գույնի մաշկ',
     '🧍🏼‍♂' => 'կանգնած տղամարդ․ միջին բաց գույնի մաշկ',
     '🧍🏽‍♂' => 'կանգնած տղամարդ․ միջին գույնի մաշկ',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'ծնկաչոք կին․ միջին գույնի մաշկ',
     '🧎🏾‍♀' => 'ծնկաչոք կին․ միջին մուգ գույնի մաշկ',
     '🧎🏿‍♀' => 'ծնկաչոք կին․ մուգ գույնի մաշկ',
-    '🧎🏻‍➡' => 'ծնկաչոք անձ դեմքով՝ աջ',
-    '🧎🏼‍➡' => 'ծնկաչոք անձ դեմքով՝ աջ',
-    '🧎🏽‍➡' => 'ծնկաչոք անձ դեմքով՝ աջ',
-    '🧎🏾‍➡' => 'ծնկաչոք անձ դեմքով՝ աջ',
-    '🧎🏿‍➡' => 'ծնկաչոք անձ դեմքով՝ աջ',
+    '🧎🏻‍➡' => 'ծնկաչոք անձ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏼‍➡' => 'ծնկաչոք անձ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏽‍➡' => 'ծնկաչոք անձ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏾‍➡' => 'ծնկաչոք անձ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🧎🏿‍➡' => 'ծնկաչոք անձ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
     '🧑🏻‍🦯' => 'ձեռնափայտով անձ․ բաց գույնի մաշկ',
     '🧑🏼‍🦯' => 'ձեռնափայտով անձ․ միջին բաց գույնի մաշկ',
     '🧑🏽‍🦯' => 'ձեռնափայտով անձ․ միջին գույնի մաշկ',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'վազող կին․ միջին գույնի մաշկ',
     '🏃🏾‍♀' => 'վազող կին․ միջին մուգ գույնի մաշկ',
     '🏃🏿‍♀' => 'վազող կին․ մուգ գույնի մաշկ',
-    '🏃🏻‍➡' => 'վազող անձ դեմքով՝ աջ',
-    '🏃🏼‍➡' => 'վազող անձ դեմքով՝ աջ',
-    '🏃🏽‍➡' => 'վազող անձ դեմքով՝ աջ',
-    '🏃🏾‍➡' => 'վազող անձ դեմքով՝ աջ',
-    '🏃🏿‍➡' => 'վազող անձ դեմքով՝ աջ',
+    '🏃🏻‍➡' => 'վազող անձ․ բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏼‍➡' => 'վազող անձ․ միջին բաց գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏽‍➡' => 'վազող անձ․ միջին գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏾‍➡' => 'վազող անձ․ միջին մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '🏃🏿‍➡' => 'վազող անձ․ մուգ գույնի մաշկ և դեմքով՝ աջ',
+    '👯🏻‍♀' => 'զվարճացող կանայք․ բաց գույնի մաշկ',
+    '👯🏼‍♀' => 'զվարճացող կանայք․ միջին բաց գույնի մաշկ',
+    '👯🏽‍♀' => 'զվարճացող կանայք․ միջին գույնի մաշկ',
+    '👯🏾‍♀' => 'զվարճացող կանայք․ միջին մուգ գույնի մաշկ',
+    '👯🏿‍♀' => 'զվարճացող կանայք․ մուգ գույնի մաշկ',
+    '👯🏻‍♂' => 'զվարճացող տղամարդիկ․ բաց գույնի մաշկ',
+    '👯🏼‍♂' => 'զվարճացող տղամարդիկ․ միջին բաց գույնի մաշկ',
+    '👯🏽‍♂' => 'զվարճացող տղամարդիկ․ միջին գույնի մաշկ',
+    '👯🏾‍♂' => 'զվարճացող տղամարդիկ․ միջին մուգ գույնի մաշկ',
+    '👯🏿‍♂' => 'զվարճացող տղամարդիկ․ մուգ գույնի մաշկ',
     '🧖🏻‍♂' => 'տղամարդ բաղնիքում․ բաց գույնի մաշկ',
     '🧖🏼‍♂' => 'տղամարդ բաղնիքում․ միջին բաց գույնի մաշկ',
     '🧖🏽‍♂' => 'տղամարդ բաղնիքում․ միջին գույնի մաշկ',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'կին ակրոբատ․ միջին գույնի մաշկ',
     '🤸🏾‍♀' => 'կին ակրոբատ․ միջին մուգ գույնի մաշկ',
     '🤸🏿‍♀' => 'կին ակրոբատ․ մուգ գույնի մաշկ',
+    '🤼🏻‍♀' => 'կին ըմբշամարտիկներ․ բաց գույնի մաշկ',
+    '🤼🏼‍♀' => 'կին ըմբշամարտիկներ․ միջին բաց գույնի մաշկ',
+    '🤼🏽‍♀' => 'կին ըմբշամարտիկներ․ միջին գույնի մաշկ',
+    '🤼🏾‍♀' => 'կին ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ',
+    '🤼🏿‍♀' => 'կին ըմբշամարտիկներ․ մուգ գույնի մաշկ',
+    '🤼🏻‍♂' => 'տղամարդ ըմբշամարտիկներ․ բաց գույնի մաշկ',
+    '🤼🏼‍♂' => 'տղամարդ ըմբշամարտիկներ․ միջին բաց գույնի մաշկ',
+    '🤼🏽‍♂' => 'տղամարդ ըմբշամարտիկներ․ միջին գույնի մաշկ',
+    '🤼🏾‍♂' => 'տղամարդ ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ',
+    '🤼🏿‍♂' => 'տղամարդ ըմբշամարտիկներ․ մուգ գույնի մաշկ',
     '🤽🏻‍♂' => 'ջրային պոլո խաղացող տղամարդ․ բաց գույնի մաշկ',
     '🤽🏼‍♂' => 'ջրային պոլո խաղացող տղամարդ․ միջին բաց գույնի մաշկ',
     '🤽🏽‍♂' => 'ջրային պոլո խաղացող տղամարդ․ միջին գույնի մաշկ',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'կին․ գանգրահեր',
     '👩‍🦳' => 'կին․ սպիտակահեր',
     '👩‍🦲' => 'կին․ ճաղատ',
-    '🚶‍➡' => 'հետիոտն դեմքով՝ աջ',
-    '🧎‍➡' => 'ծնկաչոք անձ դեմքով՝ աջ',
-    '🏃‍➡' => 'վազող անձ դեմքով՝ աջ',
+    '🚶‍➡' => 'հետիոտն․ դեմքով՝ աջ',
+    '🧎‍➡' => 'ծնկաչոք անձ․ դեմքով՝ աջ',
+    '🏃‍➡' => 'վազող անձ․ դեմքով՝ աջ',
     '👨‍👦' => 'ընտանիք․ մարդ և տղա',
     '👨‍👧' => 'ընտանիք․ մարդ և աղջիկ',
     '👩‍👦' => 'ընտանիք․ կին և տղա',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ձեռքով կառավարվող անվասայլակով կին',
     '🏃‍♂' => 'վազող տղամարդ',
     '🏃‍♀' => 'վազող կին',
+    '🧑‍🩰' => 'բալետ պարող',
     '👯‍♂' => 'զվարճացող տղամարդիկ',
     '👯‍♀' => 'զվարճացող կանայք',
     '🧖‍♂' => 'տղամարդ բաղնիքում',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'կոստյումով ճախրող մարդ․ միջին գույնի մաշկ',
     '🕴🏾' => 'կոստյումով ճախրող մարդ․ միջին մուգ գույնի մաշկ',
     '🕴🏿' => 'կոստյումով ճախրող մարդ․ մուգ գույնի մաշկ',
+    '👯🏻' => 'ճագարի ականջներով մարդիկ․ բաց գույնի մաշկ',
+    '👯🏼' => 'ճագարի ականջներով մարդիկ․ միջին բաց գույնի մաշկ',
+    '👯🏽' => 'ճագարի ականջներով մարդիկ․ միջին գույնի մաշկ',
+    '👯🏾' => 'ճագարի ականջներով մարդիկ․ միջին մուգ գույնի մաշկ',
+    '👯🏿' => 'ճագարի ականջներով մարդիկ․ մուգ գույնի մաշկ',
     '🧖🏻' => 'մարդ բաղնիքում․ բաց գույնի մաշկ',
     '🧖🏼' => 'մարդ բաղնիքում․ միջին բաց գույնի մաշկ',
     '🧖🏽' => 'մարդ բաղնիքում․ միջին գույնի մաշկ',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ձեռնակոնծի կատարող անձ․ միջին գույնի մաշկ',
     '🤸🏾' => 'ձեռնակոնծի կատարող անձ․ միջին մուգ գույնի մաշկ',
     '🤸🏿' => 'ձեռնակոնծի կատարող անձ․ մուգ գույնի մաշկ',
+    '🤼🏻' => 'ըմբշամարտիկներ․ բաց գույնի մաշկ',
+    '🤼🏼' => 'ըմբշամարտիկներ․ միջին բաց գույնի մաշկ',
+    '🤼🏽' => 'ըմբշամարտիկներ․ միջին գույնի մաշկ',
+    '🤼🏾' => 'ըմբշամարտիկներ․ միջին մուգ գույնի մաշկ',
+    '🤼🏿' => 'ըմբշամարտիկներ․ մուգ գույնի մաշկ',
     '🤽🏻' => 'ջրագնդակ խաղացող անձ․ բաց գույնի մաշկ',
     '🤽🏼' => 'ջրագնդակ խաղացող անձ․ միջին բաց գույնի մաշկ',
     '🤽🏽' => 'ջրագնդակ խաղացող անձ․ միջին գույնի մաշկ',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'դրոշ․ Չինաստան',
     '🇨🇴' => 'դրոշ․ Կոլումբիա',
     '🇨🇵' => 'դրոշ․ Քլիփերթոն կղզի',
+    '🇨🇶' => 'դրոշ․ Սարկ կղզի',
     '🇨🇷' => 'դրոշ․ Կոստա Ռիկա',
     '🇨🇺' => 'դրոշ․ Կուբա',
     '🇨🇻' => 'դրոշ․ Կաբո Վերդե',
@@ -2390,13 +2547,6 @@
     '🏽' => 'միջին գույնի մաշկ',
     '🏾' => 'միջին մուգ գույնի մաշկ',
     '🏿' => 'մուգ գույնի մաշկ',
-    '🪉' => 'տավիղ',
-    '🪏' => 'թիակ',
-    '🪾' => 'անտերեւ ծառ',
-    '🫆' => 'մատնահետք',
-    '🫜' => 'արմատապտուղ',
-    '🫟' => 'ցայտ',
-    '🫩' => 'աչքերի տակ պարկերով դեմք',
     '😀' => 'ծիծաղող դեմք',
     '😃' => 'ժպտացող դեմք բաց բերանով',
     '😄' => 'ժպտացող աչքերով լայն ժպիտով դեմք',
@@ -2450,6 +2600,7 @@
     '😪' => 'քնատ դեմք',
     '🤤' => 'փսլնքոտ դեմք',
     '😴' => 'քնած դեմք',
+    '🫩' => 'աչքերի տակ պարկերով դեմք',
     '😷' => 'բժշկական դիմակով դեմք',
     '🤒' => 'ջերմաչափով դեմք',
     '🤕' => 'գլխակապով դեմք',
@@ -2476,6 +2627,7 @@
     '😯' => 'սաստված դեմք',
     '😲' => 'ապշահար դեմք',
     '😳' => 'շիկնած դեմք',
+    '🫪' => 'այլայլված դեմք',
     '🥺' => 'աղաչող դեմք',
     '🥹' => 'արցունքը զսպած դեմք',
     '😦' => 'բաց բերանով խոժոռված դեմք',
@@ -2547,6 +2699,7 @@
     '💋' => 'համբույրի հետք',
     '💯' => 'հարյուր միավոր',
     '💢' => 'զայրույթի նշան',
+    '🫯' => 'կռվի ամպ',
     '💥' => 'բախում',
     '💫' => 'գլխապտույտ',
     '💦' => 'քրտինքի կաթիլներ',
@@ -2670,6 +2823,7 @@
     '🧞' => 'ջին',
     '🧟' => 'զոմբի',
     '🧌' => 'տրոլլ',
+    '🫈' => 'մազոտ արարած',
     '💆' => 'մերսվող անձ',
     '💇' => 'մազերը կտրող անձ',
     '🚶' => 'հետիոտն',
@@ -2713,6 +2867,7 @@
     '🫂' => 'գրկախառնվող մարդիկ',
     '👪' => 'ընտանիք',
     '👣' => 'ոտնահետքեր',
+    '🫆' => 'մատնահետք',
     '🦰' => 'կարմրահեր',
     '🦱' => 'գանգրահեր',
     '🦳' => 'սպիտակահեր',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ջուր ցայտեցնող կետաձուկ',
     '🐋' => 'կետ',
     '🐬' => 'դելֆին',
+    '🫍' => 'խոյադելֆին',
     '🦭' => 'փոկ',
     '🐟' => 'ձուկ',
     '🐠' => 'արևադարձային ձուկ',
@@ -2821,6 +2977,11 @@
     '🐚' => 'պարուրաձև խխունջախեցի',
     '🪸' => 'բուստ',
     '🪼' => 'ծովամայր',
+    '🦀' => 'խաչափառ',
+    '🦞' => 'օմար',
+    '🦐' => 'ծովախեցգետին',
+    '🦑' => 'կաղամար',
+    '🦪' => 'ոստրե',
     '🐌' => 'խխունջ',
     '🦋' => 'թիթեռ',
     '🐛' => 'միջատ',
@@ -2865,6 +3026,7 @@
     '🪹' => 'դատարկ բույն',
     '🪺' => 'ձվերով բույն',
     '🍄' => 'սունկ',
+    '🪾' => 'անտերեւ ծառ',
     '🍇' => 'խաղող',
     '🍈' => 'սեխ',
     '🍉' => 'ձմերուկ',
@@ -2901,6 +3063,7 @@
     '🌰' => 'շագանակ',
     '🫚' => 'կոճապղպեղի արմատ',
     '🫛' => 'սիսեռապատիճ',
+    '🫜' => 'արմատապտուղ',
     '🍞' => 'հաց',
     '🥐' => 'կրուասան',
     '🥖' => 'բագետ հաց',
@@ -2952,11 +3115,6 @@
     '🥟' => 'լցոնվածքներ',
     '🥠' => 'գուշակությունով բլիթ',
     '🥡' => 'դուրս հանելու տուփ',
-    '🦀' => 'խաչափառ',
-    '🦞' => 'օմար',
-    '🦐' => 'ծովախեցգետին',
-    '🦑' => 'կաղամար',
-    '🦪' => 'ոստրե',
     '🍦' => 'լցնովի պաղպաղակ',
     '🍧' => 'մանրացված սառույց',
     '🍨' => 'պաղպաղակ',
@@ -3007,6 +3165,7 @@
     '🧭' => 'կողմնացույց',
     '🏔' => 'ձյունածածկ գագաթով լեռ',
     '⛰' => 'լեռ',
+    '🛘' => 'սողանք',
     '🌋' => 'հրաբուխ',
     '🗻' => 'Ֆուջի լեռ',
     '🏕' => 'ճամբար',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ականջակալ',
     '📻' => 'ռադիո',
     '🎷' => 'սաքսոֆոն',
+    '🎺' => 'շեփոր',
+    '🪊' => 'տրոմբոն',
     '🪗' => 'ակորդեոն',
     '🎸' => 'կիթառ',
     '🎹' => 'երաժշտական ստեղնաշար',
-    '🎺' => 'շեփոր',
     '🎻' => 'ջութակ',
     '🪕' => 'բանջո',
     '🥁' => 'թմբուկ',
     '🪘' => 'կոնգա',
     '🪇' => 'մարակաս',
     '🪈' => 'սրինգ',
+    '🪉' => 'տավիղ',
     '📱' => 'բջջային հեռախոս',
     '📲' => 'բջջային հեռախոս սլաքով',
     '☎' => 'հեռախոս',
@@ -3430,8 +3591,9 @@
     '📑' => 'էջանիշ ներդիրներ',
     '🔖' => 'էջանիշ',
     '🏷' => 'պիտակ',
-    '💰' => 'փողի պարկ',
     '🪙' => 'մետաղադրամ',
+    '💰' => 'փողի պարկ',
+    '🪎' => 'գանձատուփ',
     '💴' => 'իեն թղթադրամ',
     '💵' => 'դոլար թղթադրամ',
     '💶' => 'եվրո թղթադրամ',
@@ -3514,6 +3676,7 @@
     '🧰' => 'գործիքների արկղ',
     '🧲' => 'մագնիս',
     '🪜' => 'սանդուղք',
+    '🪏' => 'թիակ',
     '⚗' => 'թորիչ',
     '🧪' => 'փորձանոթ',
     '🧫' => 'Պետրիի պնակ',
@@ -3697,6 +3860,7 @@
     '✴' => 'ութ թևանի աստղ',
     '❇' => 'կայծիկ',
     '™' => 'ապրանքանիշ',
+    '🫟' => 'ցայտ',
     '🔠' => 'լատինատառ մեծատառ ներածում',
     '🔡' => 'լատինատառ փոքրատառ ներածում',
     '🔢' => 'թվերի ներածում',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ia.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ia.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ia.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ia.php	2026-05-20 10:56:49.000000000 +0200
@@ -312,7 +312,7 @@
     '😃' => 'grande surriso con grande oculos',
     '😄' => 'grande surriso con oculos surridente',
     '😁' => 'visage radiante con oculos surridente',
-    '😆' => 'grande surriso con oculos clause',
+    '😆' => 'grande surriso con oculos semiclaudite',
     '😅' => 'grande surriso con gutta de sudor',
     '🤣' => 'rolante se per terra de rider',
     '😂' => 'visage plorante de riso',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-id.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-id.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-id.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-id.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'berciuman: wanita, wanita, warna kulit gelap, warna kulit sedang',
     '👩🏿‍❤‍💋‍👩🏾' => 'berciuman: wanita, wanita, warna kulit gelap, warna kulit gelap-sedang',
     '👩🏿‍❤‍💋‍👩🏿' => 'berciuman: wanita, wanita, warna kulit gelap',
+    '🧑🏻‍🫯‍🧑🏼' => 'orang bergulat: warna kulit cerah, warna kulit cerah-sedang',
+    '🧑🏻‍🫯‍🧑🏽' => 'orang bergulat: warna kulit cerah, warna kulit sedang',
+    '🧑🏻‍🫯‍🧑🏾' => 'orang bergulat: warna kulit cerah, warna kulit gelap-sedang',
+    '🧑🏻‍🫯‍🧑🏿' => 'orang bergulat: warna kulit cerah, warna kulit gelap',
+    '🧑🏼‍🫯‍🧑🏻' => 'orang bergulat: warna kulit cerah-sedang, warna kulit cerah',
+    '🧑🏼‍🫯‍🧑🏽' => 'orang bergulat: warna kulit cerah-sedang, warna kulit sedang',
+    '🧑🏼‍🫯‍🧑🏾' => 'orang bergulat: warna kulit cerah-sedang, warna kulit gelap-sedang',
+    '🧑🏼‍🫯‍🧑🏿' => 'orang bergulat: warna kulit cerah-sedang, warna kulit gelap',
+    '🧑🏽‍🫯‍🧑🏻' => 'orang bergulat: warna kulit sedang, warna kulit cerah',
+    '🧑🏽‍🫯‍🧑🏼' => 'orang bergulat: warna kulit sedang, warna kulit cerah-sedang',
+    '🧑🏽‍🫯‍🧑🏾' => 'orang bergulat: warna kulit sedang, warna kulit gelap-sedang',
+    '🧑🏽‍🫯‍🧑🏿' => 'orang bergulat: warna kulit sedang, warna kulit gelap',
+    '🧑🏾‍🫯‍🧑🏻' => 'orang bergulat: warna kulit gelap-sedang, warna kulit cerah',
+    '🧑🏾‍🫯‍🧑🏼' => 'orang bergulat: warna kulit gelap-sedang, warna kulit cerah-sedang',
+    '🧑🏾‍🫯‍🧑🏽' => 'orang bergulat: warna kulit gelap-sedang, warna kulit sedang',
+    '🧑🏾‍🫯‍🧑🏿' => 'orang bergulat: warna kulit gelap-sedang, warna kulit gelap',
+    '🧑🏿‍🫯‍🧑🏻' => 'orang bergulat: warna kulit gelap, warna kulit cerah',
+    '🧑🏿‍🫯‍🧑🏼' => 'orang bergulat: warna kulit gelap, warna kulit cerah-sedang',
+    '🧑🏿‍🫯‍🧑🏽' => 'orang bergulat: warna kulit gelap, warna kulit sedang',
+    '🧑🏿‍🫯‍🧑🏾' => 'orang bergulat: warna kulit gelap, warna kulit gelap-sedang',
     '🧑🏻‍❤‍🧑🏼' => 'pasangan dengan hati: dewasa, dewasa, warna kulit cerah, warna kulit cerah-sedang',
     '🧑🏻‍❤‍🧑🏽' => 'pasangan dengan hati: dewasa, dewasa, warna kulit cerah, warna kulit sedang',
     '🧑🏻‍❤‍🧑🏾' => 'pasangan dengan hati: dewasa, dewasa, warna kulit cerah, warna kulit gelap-sedang',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pasangan dengan hati: dewasa, dewasa, warna kulit gelap, warna kulit cerah-sedang',
     '🧑🏿‍❤‍🧑🏽' => 'pasangan dengan hati: dewasa, dewasa, warna kulit gelap, warna kulit sedang',
     '🧑🏿‍❤‍🧑🏾' => 'pasangan dengan hati: dewasa, dewasa, warna kulit gelap, warna kulit gelap-sedang',
+    '🧑🏻‍🐰‍🧑🏼' => 'orang dengan telinga kelinci: warna kulit cerah, warna kulit cerah-sedang',
+    '🧑🏻‍🐰‍🧑🏽' => 'orang dengan telinga kelinci: warna kulit cerah, warna kulit sedang',
+    '🧑🏻‍🐰‍🧑🏾' => 'orang dengan telinga kelinci: warna kulit cerah, warna kulit gelap-sedang',
+    '🧑🏻‍🐰‍🧑🏿' => 'orang dengan telinga kelinci: warna kulit cerah, warna kulit gelap',
+    '🧑🏼‍🐰‍🧑🏻' => 'orang dengan telinga kelinci: warna kulit cerah-sedang, warna kulit cerah',
+    '🧑🏼‍🐰‍🧑🏽' => 'orang dengan telinga kelinci: warna kulit cerah-sedang, warna kulit sedang',
+    '🧑🏼‍🐰‍🧑🏾' => 'orang dengan telinga kelinci: warna kulit cerah-sedang, warna kulit gelap-sedang',
+    '🧑🏼‍🐰‍🧑🏿' => 'orang dengan telinga kelinci: warna kulit cerah-sedang, warna kulit gelap',
+    '🧑🏽‍🐰‍🧑🏻' => 'orang dengan telinga kelinci: warna kulit sedang, warna kulit cerah',
+    '🧑🏽‍🐰‍🧑🏼' => 'orang dengan telinga kelinci: warna kulit sedang, warna kulit cerah-sedang',
+    '🧑🏽‍🐰‍🧑🏾' => 'orang dengan telinga kelinci: warna kulit sedang, warna kulit gelap-sedang',
+    '🧑🏽‍🐰‍🧑🏿' => 'orang dengan telinga kelinci: warna kulit sedang, warna kulit gelap',
+    '🧑🏾‍🐰‍🧑🏻' => 'orang dengan telinga kelinci: warna kulit gelap-sedang, warna kulit cerah',
+    '🧑🏾‍🐰‍🧑🏼' => 'orang dengan telinga kelinci: warna kulit gelap-sedang, warna kulit cerah-sedang',
+    '🧑🏾‍🐰‍🧑🏽' => 'orang dengan telinga kelinci: warna kulit gelap-sedang, warna kulit sedang',
+    '🧑🏾‍🐰‍🧑🏿' => 'orang dengan telinga kelinci: warna kulit gelap-sedang, warna kulit gelap',
+    '🧑🏿‍🐰‍🧑🏻' => 'orang dengan telinga kelinci: warna kulit gelap, warna kulit cerah',
+    '🧑🏿‍🐰‍🧑🏼' => 'orang dengan telinga kelinci: warna kulit gelap, warna kulit cerah-sedang',
+    '🧑🏿‍🐰‍🧑🏽' => 'orang dengan telinga kelinci: warna kulit gelap, warna kulit sedang',
+    '🧑🏿‍🐰‍🧑🏾' => 'orang dengan telinga kelinci: warna kulit gelap, warna kulit gelap-sedang',
+    '👨🏻‍🫯‍👨🏼' => 'pria bergulat: warna kulit cerah, warna kulit cerah-sedang',
+    '👨🏻‍🫯‍👨🏽' => 'pria bergulat: warna kulit cerah, warna kulit sedang',
+    '👨🏻‍🫯‍👨🏾' => 'pria bergulat: warna kulit cerah, warna kulit gelap-sedang',
+    '👨🏻‍🫯‍👨🏿' => 'pria bergulat: warna kulit cerah, warna kulit gelap',
+    '👨🏼‍🫯‍👨🏻' => 'pria bergulat: warna kulit cerah-sedang, warna kulit cerah',
+    '👨🏼‍🫯‍👨🏽' => 'pria bergulat: warna kulit cerah-sedang, warna kulit sedang',
+    '👨🏼‍🫯‍👨🏾' => 'pria bergulat: warna kulit cerah-sedang, warna kulit gelap-sedang',
+    '👨🏼‍🫯‍👨🏿' => 'pria bergulat: warna kulit cerah-sedang, warna kulit gelap',
+    '👨🏽‍🫯‍👨🏻' => 'pria bergulat: warna kulit sedang, warna kulit cerah',
+    '👨🏽‍🫯‍👨🏼' => 'pria bergulat: warna kulit sedang, warna kulit cerah-sedang',
+    '👨🏽‍🫯‍👨🏾' => 'pria bergulat: warna kulit sedang, warna kulit gelap-sedang',
+    '👨🏽‍🫯‍👨🏿' => 'pria bergulat: warna kulit sedang, warna kulit gelap',
+    '👨🏾‍🫯‍👨🏻' => 'pria bergulat: warna kulit gelap-sedang, warna kulit cerah',
+    '👨🏾‍🫯‍👨🏼' => 'pria bergulat: warna kulit gelap-sedang, warna kulit cerah-sedang',
+    '👨🏾‍🫯‍👨🏽' => 'pria bergulat: warna kulit gelap-sedang, warna kulit sedang',
+    '👨🏾‍🫯‍👨🏿' => 'pria bergulat: warna kulit gelap-sedang, warna kulit gelap',
+    '👨🏿‍🫯‍👨🏻' => 'pria bergulat: warna kulit gelap, warna kulit cerah',
+    '👨🏿‍🫯‍👨🏼' => 'pria bergulat: warna kulit gelap, warna kulit cerah-sedang',
+    '👨🏿‍🫯‍👨🏽' => 'pria bergulat: warna kulit gelap, warna kulit sedang',
+    '👨🏿‍🫯‍👨🏾' => 'pria bergulat: warna kulit gelap, warna kulit gelap-sedang',
     '👨🏻‍❤‍👨🏻' => 'pasangan dengan hati: pria, pria, warna kulit cerah',
     '👨🏻‍❤‍👨🏼' => 'pasangan dengan hati: pria, pria, warna kulit cerah, warna kulit cerah-sedang',
     '👨🏻‍❤‍👨🏽' => 'pasangan dengan hati: pria, pria, warna kulit cerah, warna kulit sedang',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pasangan dengan hati: pria, pria, warna kulit gelap, warna kulit sedang',
     '👨🏿‍❤‍👨🏾' => 'pasangan dengan hati: pria, pria, warna kulit gelap, warna kulit gelap-sedang',
     '👨🏿‍❤‍👨🏿' => 'pasangan dengan hati: pria, pria, warna kulit gelap',
+    '👨🏻‍🐰‍👨🏼' => 'pria dengan telinga kelinci: warna kulit cerah, warna kulit cerah-sedang',
+    '👨🏻‍🐰‍👨🏽' => 'pria dengan telinga kelinci: warna kulit cerah, warna kulit sedang',
+    '👨🏻‍🐰‍👨🏾' => 'pria dengan telinga kelinci: warna kulit cerah, warna kulit gelap-sedang',
+    '👨🏻‍🐰‍👨🏿' => 'pria dengan telinga kelinci: warna kulit cerah, warna kulit gelap',
+    '👨🏼‍🐰‍👨🏻' => 'pria dengan telinga kelinci: warna kulit cerah-sedang, warna kulit cerah',
+    '👨🏼‍🐰‍👨🏽' => 'pria dengan telinga kelinci: warna kulit cerah-sedang, warna kulit sedang',
+    '👨🏼‍🐰‍👨🏾' => 'pria dengan telinga kelinci: warna kulit cerah-sedang, warna kulit gelap-sedang',
+    '👨🏼‍🐰‍👨🏿' => 'pria dengan telinga kelinci: warna kulit cerah-sedang, warna kulit gelap',
+    '👨🏽‍🐰‍👨🏻' => 'pria dengan telinga kelinci: warna kulit sedang, warna kulit cerah',
+    '👨🏽‍🐰‍👨🏼' => 'pria dengan telinga kelinci: warna kulit sedang, warna kulit cerah-sedang',
+    '👨🏽‍🐰‍👨🏾' => 'pria dengan telinga kelinci: warna kulit sedang, warna kulit gelap-sedang',
+    '👨🏽‍🐰‍👨🏿' => 'pria dengan telinga kelinci: warna kulit sedang, warna kulit gelap',
+    '👨🏾‍🐰‍👨🏻' => 'pria dengan telinga kelinci: warna kulit gelap-sedang, warna kulit cerah',
+    '👨🏾‍🐰‍👨🏼' => 'pria dengan telinga kelinci: warna kulit gelap-sedang, warna kulit cerah-sedang',
+    '👨🏾‍🐰‍👨🏽' => 'pria dengan telinga kelinci: warna kulit gelap-sedang, warna kulit sedang',
+    '👨🏾‍🐰‍👨🏿' => 'pria dengan telinga kelinci: warna kulit gelap-sedang, warna kulit gelap',
+    '👨🏿‍🐰‍👨🏻' => 'pria dengan telinga kelinci: warna kulit gelap, warna kulit cerah',
+    '👨🏿‍🐰‍👨🏼' => 'pria dengan telinga kelinci: warna kulit gelap, warna kulit cerah-sedang',
+    '👨🏿‍🐰‍👨🏽' => 'pria dengan telinga kelinci: warna kulit gelap, warna kulit sedang',
+    '👨🏿‍🐰‍👨🏾' => 'pria dengan telinga kelinci: warna kulit gelap, warna kulit gelap-sedang',
+    '👩🏻‍🫯‍👩🏼' => 'wanita bergulat: warna kulit cerah, warna kulit cerah-sedang',
+    '👩🏻‍🫯‍👩🏽' => 'wanita bergulat: warna kulit cerah, warna kulit sedang',
+    '👩🏻‍🫯‍👩🏾' => 'wanita bergulat: warna kulit cerah, warna kulit gelap-sedang',
+    '👩🏻‍🫯‍👩🏿' => 'wanita bergulat: warna kulit cerah, warna kulit gelap',
+    '👩🏼‍🫯‍👩🏻' => 'wanita bergulat: warna kulit cerah-sedang, warna kulit cerah',
+    '👩🏼‍🫯‍👩🏽' => 'wanita bergulat: warna kulit cerah-sedang, warna kulit sedang',
+    '👩🏼‍🫯‍👩🏾' => 'wanita bergulat: warna kulit cerah-sedang, warna kulit gelap-sedang',
+    '👩🏼‍🫯‍👩🏿' => 'wanita bergulat: warna kulit cerah-sedang, warna kulit gelap',
+    '👩🏽‍🫯‍👩🏻' => 'wanita bergulat: warna kulit sedang, warna kulit cerah',
+    '👩🏽‍🫯‍👩🏼' => 'wanita bergulat: warna kulit sedang, warna kulit cerah-sedang',
+    '👩🏽‍🫯‍👩🏾' => 'wanita bergulat: warna kulit sedang, warna kulit gelap-sedang',
+    '👩🏽‍🫯‍👩🏿' => 'wanita bergulat: warna kulit sedang, warna kulit gelap',
+    '👩🏾‍🫯‍👩🏻' => 'wanita bergulat: warna kulit gelap-sedang, warna kulit cerah',
+    '👩🏾‍🫯‍👩🏼' => 'wanita bergulat: warna kulit gelap-sedang, warna kulit cerah-sedang',
+    '👩🏾‍🫯‍👩🏽' => 'wanita bergulat: warna kulit gelap-sedang, warna kulit sedang',
+    '👩🏾‍🫯‍👩🏿' => 'wanita bergulat: warna kulit gelap-sedang, warna kulit gelap',
+    '👩🏿‍🫯‍👩🏻' => 'wanita bergulat: warna kulit gelap, warna kulit cerah',
+    '👩🏿‍🫯‍👩🏼' => 'wanita bergulat: warna kulit gelap, warna kulit cerah-sedang',
+    '👩🏿‍🫯‍👩🏽' => 'wanita bergulat: warna kulit gelap, warna kulit sedang',
+    '👩🏿‍🫯‍👩🏾' => 'wanita bergulat: warna kulit gelap, warna kulit gelap-sedang',
     '👩🏻‍❤‍👨🏻' => 'pasangan dengan hati: wanita, pria, warna kulit cerah',
     '👩🏻‍❤‍👨🏼' => 'pasangan dengan hati: wanita, pria, warna kulit cerah, warna kulit cerah-sedang',
     '👩🏻‍❤‍👨🏽' => 'pasangan dengan hati: wanita, pria, warna kulit cerah, warna kulit sedang',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pasangan dengan hati: wanita, wanita, warna kulit gelap, warna kulit sedang',
     '👩🏿‍❤‍👩🏾' => 'pasangan dengan hati: wanita, wanita, warna kulit gelap, warna kulit gelap-sedang',
     '👩🏿‍❤‍👩🏿' => 'pasangan dengan hati: wanita, wanita, warna kulit gelap',
+    '👩🏻‍🐰‍👩🏼' => 'wanita dengan telinga kelinci: warna kulit cerah, warna kulit cerah-sedang',
+    '👩🏻‍🐰‍👩🏽' => 'wanita dengan telinga kelinci: warna kulit cerah, warna kulit sedang',
+    '👩🏻‍🐰‍👩🏾' => 'wanita dengan telinga kelinci: warna kulit cerah, warna kulit gelap-sedang',
+    '👩🏻‍🐰‍👩🏿' => 'wanita dengan telinga kelinci: warna kulit cerah, warna kulit gelap',
+    '👩🏼‍🐰‍👩🏻' => 'wanita dengan telinga kelinci: warna kulit cerah-sedang, warna kulit cerah',
+    '👩🏼‍🐰‍👩🏽' => 'wanita dengan telinga kelinci: warna kulit cerah-sedang, warna kulit sedang',
+    '👩🏼‍🐰‍👩🏾' => 'wanita dengan telinga kelinci: warna kulit cerah-sedang, warna kulit gelap-sedang',
+    '👩🏼‍🐰‍👩🏿' => 'wanita dengan telinga kelinci: warna kulit cerah-sedang, warna kulit gelap',
+    '👩🏽‍🐰‍👩🏻' => 'wanita dengan telinga kelinci: warna kulit sedang, warna kulit cerah',
+    '👩🏽‍🐰‍👩🏼' => 'wanita dengan telinga kelinci: warna kulit sedang, warna kulit cerah-sedang',
+    '👩🏽‍🐰‍👩🏾' => 'wanita dengan telinga kelinci: warna kulit sedang, warna kulit gelap-sedang',
+    '👩🏽‍🐰‍👩🏿' => 'wanita dengan telinga kelinci: warna kulit sedang, warna kulit gelap',
+    '👩🏾‍🐰‍👩🏻' => 'wanita dengan telinga kelinci: warna kulit gelap-sedang, warna kulit cerah',
+    '👩🏾‍🐰‍👩🏼' => 'wanita dengan telinga kelinci: warna kulit gelap-sedang, warna kulit cerah-sedang',
+    '👩🏾‍🐰‍👩🏽' => 'wanita dengan telinga kelinci: warna kulit gelap-sedang, warna kulit sedang',
+    '👩🏾‍🐰‍👩🏿' => 'wanita dengan telinga kelinci: warna kulit gelap-sedang, warna kulit gelap',
+    '👩🏿‍🐰‍👩🏻' => 'wanita dengan telinga kelinci: warna kulit gelap, warna kulit cerah',
+    '👩🏿‍🐰‍👩🏼' => 'wanita dengan telinga kelinci: warna kulit gelap, warna kulit cerah-sedang',
+    '👩🏿‍🐰‍👩🏽' => 'wanita dengan telinga kelinci: warna kulit gelap, warna kulit sedang',
+    '👩🏿‍🐰‍👩🏾' => 'wanita dengan telinga kelinci: warna kulit gelap, warna kulit gelap-sedang',
     '🧑🏻‍🤝‍🧑🏻' => 'orang bergandengan: warna kulit cerah',
     '🧑🏻‍🤝‍🧑🏼' => 'orang bergandengan: warna kulit cerah, warna kulit cerah-sedang',
     '🧑🏻‍🤝‍🧑🏽' => 'orang bergandengan: warna kulit cerah, warna kulit sedang',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bendera: Skotlandia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bendera: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'keluarga: orang dewasa, orang dewasa, anak, anak',
-    '🚶🏻‍♀‍➡' => 'wanita berjalan kaki menghadap kanan',
-    '🚶🏼‍♀‍➡' => 'wanita berjalan kaki menghadap kanan',
-    '🚶🏽‍♀‍➡' => 'wanita berjalan kaki menghadap kanan',
-    '🚶🏾‍♀‍➡' => 'wanita berjalan kaki menghadap kanan',
-    '🚶🏿‍♀‍➡' => 'wanita berjalan kaki menghadap kanan',
-    '🚶🏻‍♂‍➡' => 'pria berjalan kaki menghadap kanan',
-    '🚶🏼‍♂‍➡' => 'pria berjalan kaki menghadap kanan',
-    '🚶🏽‍♂‍➡' => 'pria berjalan kaki menghadap kanan',
-    '🚶🏾‍♂‍➡' => 'pria berjalan kaki menghadap kanan',
-    '🚶🏿‍♂‍➡' => 'pria berjalan kaki menghadap kanan',
-    '🧎🏻‍♀‍➡' => 'wanita berlutut menghadap kanan',
-    '🧎🏼‍♀‍➡' => 'wanita berlutut menghadap kanan',
-    '🧎🏽‍♀‍➡' => 'wanita berlutut menghadap kanan',
-    '🧎🏾‍♀‍➡' => 'wanita berlutut menghadap kanan',
-    '🧎🏿‍♀‍➡' => 'wanita berlutut menghadap kanan',
-    '🧎🏻‍♂‍➡' => 'pria berlutut menghadap kanan',
-    '🧎🏼‍♂‍➡' => 'pria berlutut menghadap kanan',
-    '🧎🏽‍♂‍➡' => 'pria berlutut menghadap kanan',
-    '🧎🏾‍♂‍➡' => 'pria berlutut menghadap kanan',
-    '🧎🏿‍♂‍➡' => 'pria berlutut menghadap kanan',
-    '🧑🏻‍🦯‍➡' => 'orang dengan tongkat menghadap kanan',
-    '🧑🏼‍🦯‍➡' => 'orang dengan tongkat menghadap kanan',
-    '🧑🏽‍🦯‍➡' => 'orang dengan tongkat menghadap kanan',
-    '🧑🏾‍🦯‍➡' => 'orang dengan tongkat menghadap kanan',
-    '🧑🏿‍🦯‍➡' => 'orang dengan tongkat menghadap kanan',
-    '👨🏻‍🦯‍➡' => 'pria dengan tongkat menghadap kanan',
-    '👨🏼‍🦯‍➡' => 'pria dengan tongkat menghadap kanan',
-    '👨🏽‍🦯‍➡' => 'pria dengan tongkat menghadap kanan',
-    '👨🏾‍🦯‍➡' => 'pria dengan tongkat menghadap kanan',
-    '👨🏿‍🦯‍➡' => 'pria dengan tongkat menghadap kanan',
-    '👩🏻‍🦯‍➡' => 'wanita dengan tongkat menghadap kanan',
-    '👩🏼‍🦯‍➡' => 'wanita dengan tongkat menghadap kanan',
-    '👩🏽‍🦯‍➡' => 'wanita dengan tongkat menghadap kanan',
-    '👩🏾‍🦯‍➡' => 'wanita dengan tongkat menghadap kanan',
-    '👩🏿‍🦯‍➡' => 'wanita dengan tongkat menghadap kanan',
-    '🧑🏻‍🦼‍➡' => 'orang dengan kursi roda bermotor menghadap kanan',
-    '🧑🏼‍🦼‍➡' => 'orang dengan kursi roda bermotor menghadap kanan',
-    '🧑🏽‍🦼‍➡' => 'orang dengan kursi roda bermotor menghadap kanan',
-    '🧑🏾‍🦼‍➡' => 'orang dengan kursi roda bermotor menghadap kanan',
-    '🧑🏿‍🦼‍➡' => 'orang dengan kursi roda bermotor menghadap kanan',
-    '👨🏻‍🦼‍➡' => 'pria dengan kursi roda bermotor menghadap kanan',
-    '👨🏼‍🦼‍➡' => 'pria dengan kursi roda bermotor menghadap kanan',
-    '👨🏽‍🦼‍➡' => 'pria dengan kursi roda bermotor menghadap kanan',
-    '👨🏾‍🦼‍➡' => 'pria dengan kursi roda bermotor menghadap kanan',
-    '👨🏿‍🦼‍➡' => 'pria dengan kursi roda bermotor menghadap kanan',
-    '👩🏻‍🦼‍➡' => 'wanita dengan kursi roda bermotor menghadap kanan',
-    '👩🏼‍🦼‍➡' => 'wanita dengan kursi roda bermotor menghadap kanan',
-    '👩🏽‍🦼‍➡' => 'wanita dengan kursi roda bermotor menghadap kanan',
-    '👩🏾‍🦼‍➡' => 'wanita dengan kursi roda bermotor menghadap kanan',
-    '👩🏿‍🦼‍➡' => 'wanita dengan kursi roda bermotor menghadap kanan',
-    '🧑🏻‍🦽‍➡' => 'orang dengan kursi roda manual menghadap kanan',
-    '🧑🏼‍🦽‍➡' => 'orang dengan kursi roda manual menghadap kanan',
-    '🧑🏽‍🦽‍➡' => 'orang dengan kursi roda manual menghadap kanan',
-    '🧑🏾‍🦽‍➡' => 'orang dengan kursi roda manual menghadap kanan',
-    '🧑🏿‍🦽‍➡' => 'orang dengan kursi roda manual menghadap kanan',
-    '👨🏻‍🦽‍➡' => 'pria dengan kursi roda manual menghadap kanan',
-    '👨🏼‍🦽‍➡' => 'pria dengan kursi roda manual menghadap kanan',
-    '👨🏽‍🦽‍➡' => 'pria dengan kursi roda manual menghadap kanan',
-    '👨🏾‍🦽‍➡' => 'pria dengan kursi roda manual menghadap kanan',
-    '👨🏿‍🦽‍➡' => 'pria dengan kursi roda manual menghadap kanan',
-    '👩🏻‍🦽‍➡' => 'wanita dengan kursi roda manual menghadap kanan',
-    '👩🏼‍🦽‍➡' => 'wanita dengan kursi roda manual menghadap kanan',
-    '👩🏽‍🦽‍➡' => 'wanita dengan kursi roda manual menghadap kanan',
-    '👩🏾‍🦽‍➡' => 'wanita dengan kursi roda manual menghadap kanan',
-    '👩🏿‍🦽‍➡' => 'wanita dengan kursi roda manual menghadap kanan',
-    '🏃🏻‍♀‍➡' => 'wanita berlari menghadap kanan',
-    '🏃🏼‍♀‍➡' => 'wanita berlari menghadap kanan',
-    '🏃🏽‍♀‍➡' => 'wanita berlari menghadap kanan',
-    '🏃🏾‍♀‍➡' => 'wanita berlari menghadap kanan',
-    '🏃🏿‍♀‍➡' => 'wanita berlari menghadap kanan',
-    '🏃🏻‍♂‍➡' => 'pria berlari menghadap kanan',
-    '🏃🏼‍♂‍➡' => 'pria berlari menghadap kanan',
-    '🏃🏽‍♂‍➡' => 'pria berlari menghadap kanan',
-    '🏃🏾‍♂‍➡' => 'pria berlari menghadap kanan',
-    '🏃🏿‍♂‍➡' => 'pria berlari menghadap kanan',
+    '🚶🏻‍♀‍➡' => 'wanita berjalan kaki: warna kulit cerah, menghadap kanan',
+    '🚶🏼‍♀‍➡' => 'wanita berjalan kaki: warna kulit cerah-sedang, menghadap kanan',
+    '🚶🏽‍♀‍➡' => 'wanita berjalan kaki: warna kulit sedang, menghadap kanan',
+    '🚶🏾‍♀‍➡' => 'wanita berjalan kaki: warna kulit gelap-sedang, menghadap kanan',
+    '🚶🏿‍♀‍➡' => 'wanita berjalan kaki: warna kulit gelap, menghadap kanan',
+    '🚶🏻‍♂‍➡' => 'pria berjalan kaki: warna kulit cerah, menghadap kanan',
+    '🚶🏼‍♂‍➡' => 'pria berjalan kaki: warna kulit cerah-sedang, menghadap kanan',
+    '🚶🏽‍♂‍➡' => 'pria berjalan kaki: warna kulit sedang, menghadap kanan',
+    '🚶🏾‍♂‍➡' => 'pria berjalan kaki: warna kulit gelap-sedang, menghadap kanan',
+    '🚶🏿‍♂‍➡' => 'pria berjalan kaki: warna kulit gelap, menghadap kanan',
+    '🧎🏻‍♀‍➡' => 'wanita berlutut: warna kulit cerah, menghadap kanan',
+    '🧎🏼‍♀‍➡' => 'wanita berlutut: warna kulit cerah-sedang, menghadap kanan',
+    '🧎🏽‍♀‍➡' => 'wanita berlutut: warna kulit sedang, menghadap kanan',
+    '🧎🏾‍♀‍➡' => 'wanita berlutut: warna kulit gelap-sedang, menghadap kanan',
+    '🧎🏿‍♀‍➡' => 'wanita berlutut: warna kulit gelap, menghadap kanan',
+    '🧎🏻‍♂‍➡' => 'pria berlutut: warna kulit cerah, menghadap kanan',
+    '🧎🏼‍♂‍➡' => 'pria berlutut: warna kulit cerah-sedang, menghadap kanan',
+    '🧎🏽‍♂‍➡' => 'pria berlutut: warna kulit sedang, menghadap kanan',
+    '🧎🏾‍♂‍➡' => 'pria berlutut: warna kulit gelap-sedang, menghadap kanan',
+    '🧎🏿‍♂‍➡' => 'pria berlutut: warna kulit gelap, menghadap kanan',
+    '🧑🏻‍🦯‍➡' => 'orang dengan tongkat: warna kulit cerah, menghadap kanan',
+    '🧑🏼‍🦯‍➡' => 'orang dengan tongkat: warna kulit cerah-sedang, menghadap kanan',
+    '🧑🏽‍🦯‍➡' => 'orang dengan tongkat: warna kulit sedang, menghadap kanan',
+    '🧑🏾‍🦯‍➡' => 'orang dengan tongkat: warna kulit gelap-sedang, menghadap kanan',
+    '🧑🏿‍🦯‍➡' => 'orang dengan tongkat: warna kulit gelap, menghadap kanan',
+    '👨🏻‍🦯‍➡' => 'pria dengan tongkat: warna kulit cerah, menghadap kanan',
+    '👨🏼‍🦯‍➡' => 'pria dengan tongkat: warna kulit cerah-sedang, menghadap kanan',
+    '👨🏽‍🦯‍➡' => 'pria dengan tongkat: warna kulit sedang, menghadap kanan',
+    '👨🏾‍🦯‍➡' => 'pria dengan tongkat: warna kulit gelap-sedang, menghadap kanan',
+    '👨🏿‍🦯‍➡' => 'pria dengan tongkat: warna kulit gelap, menghadap kanan',
+    '👩🏻‍🦯‍➡' => 'wanita dengan tongkat: warna kulit cerah, menghadap kanan',
+    '👩🏼‍🦯‍➡' => 'wanita dengan tongkat: warna kulit cerah-sedang, menghadap kanan',
+    '👩🏽‍🦯‍➡' => 'wanita dengan tongkat: warna kulit sedang, menghadap kanan',
+    '👩🏾‍🦯‍➡' => 'wanita dengan tongkat: warna kulit gelap-sedang, menghadap kanan',
+    '👩🏿‍🦯‍➡' => 'wanita dengan tongkat: warna kulit gelap, menghadap kanan',
+    '🧑🏻‍🦼‍➡' => 'orang dengan kursi roda bermotor: warna kulit cerah, menghadap kanan',
+    '🧑🏼‍🦼‍➡' => 'orang dengan kursi roda bermotor: warna kulit cerah-sedang, menghadap kanan',
+    '🧑🏽‍🦼‍➡' => 'orang dengan kursi roda bermotor: warna kulit sedang, menghadap kanan',
+    '🧑🏾‍🦼‍➡' => 'orang dengan kursi roda bermotor: warna kulit gelap-sedang, menghadap kanan',
+    '🧑🏿‍🦼‍➡' => 'orang dengan kursi roda bermotor: warna kulit gelap, menghadap kanan',
+    '👨🏻‍🦼‍➡' => 'pria dengan kursi roda bermotor: warna kulit cerah, menghadap kanan',
+    '👨🏼‍🦼‍➡' => 'pria dengan kursi roda bermotor: warna kulit cerah-sedang, menghadap kanan',
+    '👨🏽‍🦼‍➡' => 'pria dengan kursi roda bermotor: warna kulit sedang, menghadap kanan',
+    '👨🏾‍🦼‍➡' => 'pria dengan kursi roda bermotor: warna kulit gelap-sedang, menghadap kanan',
+    '👨🏿‍🦼‍➡' => 'pria dengan kursi roda bermotor: warna kulit gelap, menghadap kanan',
+    '👩🏻‍🦼‍➡' => 'wanita dengan kursi roda bermotor: warna kulit cerah, menghadap kanan',
+    '👩🏼‍🦼‍➡' => 'wanita dengan kursi roda bermotor: warna kulit cerah-sedang, menghadap kanan',
+    '👩🏽‍🦼‍➡' => 'wanita dengan kursi roda bermotor: warna kulit sedang, menghadap kanan',
+    '👩🏾‍🦼‍➡' => 'wanita dengan kursi roda bermotor: warna kulit gelap-sedang, menghadap kanan',
+    '👩🏿‍🦼‍➡' => 'wanita dengan kursi roda bermotor: warna kulit gelap, menghadap kanan',
+    '🧑🏻‍🦽‍➡' => 'orang dengan kursi roda manual: warna kulit cerah, menghadap kanan',
+    '🧑🏼‍🦽‍➡' => 'orang dengan kursi roda manual: warna kulit cerah-sedang, menghadap kanan',
+    '🧑🏽‍🦽‍➡' => 'orang dengan kursi roda manual: warna kulit sedang, menghadap kanan',
+    '🧑🏾‍🦽‍➡' => 'orang dengan kursi roda manual: warna kulit gelap-sedang, menghadap kanan',
+    '🧑🏿‍🦽‍➡' => 'orang dengan kursi roda manual: warna kulit gelap, menghadap kanan',
+    '👨🏻‍🦽‍➡' => 'pria dengan kursi roda manual: warna kulit cerah, menghadap kanan',
+    '👨🏼‍🦽‍➡' => 'pria dengan kursi roda manual: warna kulit cerah-sedang, menghadap kanan',
+    '👨🏽‍🦽‍➡' => 'pria dengan kursi roda manual: warna kulit sedang, menghadap kanan',
+    '👨🏾‍🦽‍➡' => 'pria dengan kursi roda manual: warna kulit gelap-sedang, menghadap kanan',
+    '👨🏿‍🦽‍➡' => 'pria dengan kursi roda manual: warna kulit gelap, menghadap kanan',
+    '👩🏻‍🦽‍➡' => 'wanita dengan kursi roda manual: warna kulit cerah, menghadap kanan',
+    '👩🏼‍🦽‍➡' => 'wanita dengan kursi roda manual: warna kulit cerah-sedang, menghadap kanan',
+    '👩🏽‍🦽‍➡' => 'wanita dengan kursi roda manual: warna kulit sedang, menghadap kanan',
+    '👩🏾‍🦽‍➡' => 'wanita dengan kursi roda manual: warna kulit gelap-sedang, menghadap kanan',
+    '👩🏿‍🦽‍➡' => 'wanita dengan kursi roda manual: warna kulit gelap, menghadap kanan',
+    '🏃🏻‍♀‍➡' => 'wanita berlari: warna kulit cerah, menghadap kanan',
+    '🏃🏼‍♀‍➡' => 'wanita berlari: warna kulit cerah-sedang, menghadap kanan',
+    '🏃🏽‍♀‍➡' => 'wanita berlari: warna kulit sedang, menghadap kanan',
+    '🏃🏾‍♀‍➡' => 'wanita berlari: warna kulit gelap-sedang, menghadap kanan',
+    '🏃🏿‍♀‍➡' => 'wanita berlari: warna kulit gelap, menghadap kanan',
+    '🏃🏻‍♂‍➡' => 'pria berlari: warna kulit cerah, menghadap kanan',
+    '🏃🏼‍♂‍➡' => 'pria berlari: warna kulit cerah-sedang, menghadap kanan',
+    '🏃🏽‍♂‍➡' => 'pria berlari: warna kulit sedang, menghadap kanan',
+    '🏃🏾‍♂‍➡' => 'pria berlari: warna kulit gelap-sedang, menghadap kanan',
+    '🏃🏿‍♂‍➡' => 'pria berlari: warna kulit gelap, menghadap kanan',
     '🫱🏻‍🫲🏼' => 'jabat tangan: warna kulit cerah, warna kulit cerah-sedang',
     '🫱🏻‍🫲🏽' => 'jabat tangan: warna kulit cerah, warna kulit sedang',
     '🫱🏻‍🫲🏾' => 'jabat tangan: warna kulit cerah, warna kulit gelap-sedang',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'jabat tangan: warna kulit gelap, warna kulit cerah-sedang',
     '🫱🏿‍🫲🏽' => 'jabat tangan: warna kulit gelap, warna kulit sedang',
     '🫱🏿‍🫲🏾' => 'jabat tangan: warna kulit gelap, warna kulit gelap-sedang',
-    '🚶‍♀‍➡' => 'wanita berjalan kaki menghadap kanan',
-    '🚶‍♂‍➡' => 'pria berjalan kaki menghadap kanan',
-    '🧎‍♀‍➡' => 'wanita berlutut menghadap kanan',
-    '🧎‍♂‍➡' => 'pria berlutut menghadap kanan',
-    '🧑‍🦯‍➡' => 'orang dengan tongkat menghadap kanan',
-    '👨‍🦯‍➡' => 'pria dengan tongkat menghadap kanan',
-    '👩‍🦯‍➡' => 'wanita dengan tongkat menghadap kanan',
-    '🧑‍🦼‍➡' => 'orang dengan kursi roda bermotor menghadap kanan',
-    '👨‍🦼‍➡' => 'pria dengan kursi roda bermotor menghadap kanan',
-    '👩‍🦼‍➡' => 'wanita dengan kursi roda bermotor menghadap kanan',
-    '🧑‍🦽‍➡' => 'orang dengan kursi roda manual menghadap kanan',
-    '👨‍🦽‍➡' => 'pria dengan kursi roda manual menghadap kanan',
-    '👩‍🦽‍➡' => 'wanita dengan kursi roda manual menghadap kanan',
-    '🏃‍♀‍➡' => 'wanita berlari menghadap kanan',
-    '🏃‍♂‍➡' => 'pria berlari menghadap kanan',
+    '🚶‍♀‍➡' => 'wanita berjalan kaki: menghadap kanan',
+    '🚶‍♂‍➡' => 'pria berjalan kaki: menghadap kanan',
+    '🧎‍♀‍➡' => 'wanita berlutut: menghadap kanan',
+    '🧎‍♂‍➡' => 'pria berlutut: menghadap kanan',
+    '🧑‍🦯‍➡' => 'orang dengan tongkat: menghadap kanan',
+    '👨‍🦯‍➡' => 'pria dengan tongkat: menghadap kanan',
+    '👩‍🦯‍➡' => 'wanita dengan tongkat: menghadap kanan',
+    '🧑‍🦼‍➡' => 'orang dengan kursi roda bermotor: menghadap kanan',
+    '👨‍🦼‍➡' => 'pria dengan kursi roda bermotor: menghadap kanan',
+    '👩‍🦼‍➡' => 'wanita dengan kursi roda bermotor: menghadap kanan',
+    '🧑‍🦽‍➡' => 'orang dengan kursi roda manual: menghadap kanan',
+    '👨‍🦽‍➡' => 'pria dengan kursi roda manual: menghadap kanan',
+    '👩‍🦽‍➡' => 'wanita dengan kursi roda manual: menghadap kanan',
+    '🏃‍♀‍➡' => 'wanita berlari: menghadap kanan',
+    '🏃‍♂‍➡' => 'pria berlari: menghadap kanan',
     '👩‍❤‍👨' => 'pasangan dengan hati: wanita, pria',
     '👨‍❤‍👨' => 'pasangan dengan hati: pria, pria',
     '👩‍❤‍👩' => 'pasangan dengan hati: wanita, wanita',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'dewasa: warna kulit sedang, gundul',
     '🧑🏾‍🦲' => 'dewasa: warna kulit gelap-sedang, gundul',
     '🧑🏿‍🦲' => 'dewasa: warna kulit gelap, gundul',
+    '🧑🏻‍🩰' => 'penari balet: warna kulit cerah',
+    '🧑🏼‍🩰' => 'penari balet: warna kulit cerah-sedang',
+    '🧑🏽‍🩰' => 'penari balet: warna kulit sedang',
+    '🧑🏾‍🩰' => 'penari balet: warna kulit gelap-sedang',
+    '🧑🏿‍🩰' => 'penari balet: warna kulit gelap',
     '🧔🏻‍♂' => 'pria: warna kulit cerah, janggut',
     '🧔🏼‍♂' => 'pria: warna kulit cerah-sedang, janggut',
     '🧔🏽‍♂' => 'pria: warna kulit sedang, janggut',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'wanita berjalan kaki: warna kulit sedang',
     '🚶🏾‍♀' => 'wanita berjalan kaki: warna kulit gelap-sedang',
     '🚶🏿‍♀' => 'wanita berjalan kaki: warna kulit gelap',
-    '🚶🏻‍➡' => 'orang berjalan kaki menghadap kanan',
-    '🚶🏼‍➡' => 'orang berjalan kaki menghadap kanan',
-    '🚶🏽‍➡' => 'orang berjalan kaki menghadap kanan',
-    '🚶🏾‍➡' => 'orang berjalan kaki menghadap kanan',
-    '🚶🏿‍➡' => 'orang berjalan kaki menghadap kanan',
+    '🚶🏻‍➡' => 'orang berjalan kaki: warna kulit cerah, menghadap kanan',
+    '🚶🏼‍➡' => 'orang berjalan kaki: warna kulit cerah-sedang, menghadap kanan',
+    '🚶🏽‍➡' => 'orang berjalan kaki: warna kulit sedang, menghadap kanan',
+    '🚶🏾‍➡' => 'orang berjalan kaki: warna kulit gelap-sedang, menghadap kanan',
+    '🚶🏿‍➡' => 'orang berjalan kaki: warna kulit gelap, menghadap kanan',
     '🧍🏻‍♂' => 'pria berdiri: warna kulit cerah',
     '🧍🏼‍♂' => 'pria berdiri: warna kulit cerah-sedang',
     '🧍🏽‍♂' => 'pria berdiri: warna kulit sedang',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'wanita berlutut: warna kulit sedang',
     '🧎🏾‍♀' => 'wanita berlutut: warna kulit gelap-sedang',
     '🧎🏿‍♀' => 'wanita berlutut: warna kulit gelap',
-    '🧎🏻‍➡' => 'orang berlutut menghadap kanan',
-    '🧎🏼‍➡' => 'orang berlutut menghadap kanan',
-    '🧎🏽‍➡' => 'orang berlutut menghadap kanan',
-    '🧎🏾‍➡' => 'orang berlutut menghadap kanan',
-    '🧎🏿‍➡' => 'orang berlutut menghadap kanan',
+    '🧎🏻‍➡' => 'orang berlutut: warna kulit cerah, menghadap kanan',
+    '🧎🏼‍➡' => 'orang berlutut: warna kulit cerah-sedang, menghadap kanan',
+    '🧎🏽‍➡' => 'orang berlutut: warna kulit sedang, menghadap kanan',
+    '🧎🏾‍➡' => 'orang berlutut: warna kulit gelap-sedang, menghadap kanan',
+    '🧎🏿‍➡' => 'orang berlutut: warna kulit gelap, menghadap kanan',
     '🧑🏻‍🦯' => 'orang dengan tongkat: warna kulit cerah',
     '🧑🏼‍🦯' => 'orang dengan tongkat: warna kulit cerah-sedang',
     '🧑🏽‍🦯' => 'orang dengan tongkat: warna kulit sedang',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'wanita berlari: warna kulit sedang',
     '🏃🏾‍♀' => 'wanita berlari: warna kulit gelap-sedang',
     '🏃🏿‍♀' => 'wanita berlari: warna kulit gelap',
-    '🏃🏻‍➡' => 'orang berlari menghadap kanan',
-    '🏃🏼‍➡' => 'orang berlari menghadap kanan',
-    '🏃🏽‍➡' => 'orang berlari menghadap kanan',
-    '🏃🏾‍➡' => 'orang berlari menghadap kanan',
-    '🏃🏿‍➡' => 'orang berlari menghadap kanan',
+    '🏃🏻‍➡' => 'orang berlari: warna kulit cerah, menghadap kanan',
+    '🏃🏼‍➡' => 'orang berlari: warna kulit cerah-sedang, menghadap kanan',
+    '🏃🏽‍➡' => 'orang berlari: warna kulit sedang, menghadap kanan',
+    '🏃🏾‍➡' => 'orang berlari: warna kulit gelap-sedang, menghadap kanan',
+    '🏃🏿‍➡' => 'orang berlari: warna kulit gelap, menghadap kanan',
+    '👯🏻‍♀' => 'wanita dengan telinga kelinci: warna kulit cerah',
+    '👯🏼‍♀' => 'wanita dengan telinga kelinci: warna kulit cerah-sedang',
+    '👯🏽‍♀' => 'wanita dengan telinga kelinci: warna kulit sedang',
+    '👯🏾‍♀' => 'wanita dengan telinga kelinci: warna kulit gelap-sedang',
+    '👯🏿‍♀' => 'wanita dengan telinga kelinci: warna kulit gelap',
+    '👯🏻‍♂' => 'pria dengan telinga kelinci: warna kulit cerah',
+    '👯🏼‍♂' => 'pria dengan telinga kelinci: warna kulit cerah-sedang',
+    '👯🏽‍♂' => 'pria dengan telinga kelinci: warna kulit sedang',
+    '👯🏾‍♂' => 'pria dengan telinga kelinci: warna kulit gelap-sedang',
+    '👯🏿‍♂' => 'pria dengan telinga kelinci: warna kulit gelap',
     '🧖🏻‍♂' => 'pria di ruangan beruap: warna kulit cerah',
     '🧖🏼‍♂' => 'pria di ruangan beruap: warna kulit cerah-sedang',
     '🧖🏽‍♂' => 'pria di ruangan beruap: warna kulit sedang',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'wanita melakukan gerakan meroda: warna kulit sedang',
     '🤸🏾‍♀' => 'wanita melakukan gerakan meroda: warna kulit gelap-sedang',
     '🤸🏿‍♀' => 'wanita melakukan gerakan meroda: warna kulit gelap',
+    '🤼🏻‍♀' => 'wanita bergulat: warna kulit cerah',
+    '🤼🏼‍♀' => 'wanita bergulat: warna kulit cerah-sedang',
+    '🤼🏽‍♀' => 'wanita bergulat: warna kulit sedang',
+    '🤼🏾‍♀' => 'wanita bergulat: warna kulit gelap-sedang',
+    '🤼🏿‍♀' => 'wanita bergulat: warna kulit gelap',
+    '🤼🏻‍♂' => 'pria bergulat: warna kulit cerah',
+    '🤼🏼‍♂' => 'pria bergulat: warna kulit cerah-sedang',
+    '🤼🏽‍♂' => 'pria bergulat: warna kulit sedang',
+    '🤼🏾‍♂' => 'pria bergulat: warna kulit gelap-sedang',
+    '🤼🏿‍♂' => 'pria bergulat: warna kulit gelap',
     '🤽🏻‍♂' => 'pria bermain polo air: warna kulit cerah',
     '🤽🏼‍♂' => 'pria bermain polo air: warna kulit cerah-sedang',
     '🤽🏽‍♂' => 'pria bermain polo air: warna kulit sedang',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'wanita: rambut keriting',
     '👩‍🦳' => 'wanita: rambut putih',
     '👩‍🦲' => 'wanita: gundul',
-    '🚶‍➡' => 'orang berjalan kaki menghadap kanan',
-    '🧎‍➡' => 'orang berlutut menghadap kanan',
-    '🏃‍➡' => 'orang berlari menghadap kanan',
+    '🚶‍➡' => 'orang berjalan kaki: menghadap kanan',
+    '🧎‍➡' => 'orang berlutut: menghadap kanan',
+    '🏃‍➡' => 'orang berlari: menghadap kanan',
     '👨‍👦' => 'keluarga: pria, anak laki-laki',
     '👨‍👧' => 'keluarga: pria, anak perempuan',
     '👩‍👦' => 'keluarga: wanita, anak laki-laki',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'wanita dengan kursi roda manual',
     '🏃‍♂' => 'pria berlari',
     '🏃‍♀' => 'wanita berlari',
+    '🧑‍🩰' => 'penari balet',
     '👯‍♂' => 'pria dengan telinga kelinci',
     '👯‍♀' => 'wanita dengan telinga kelinci',
     '🧖‍♂' => 'pria di ruangan beruap',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'pria melayang mengenakan jas: warna kulit sedang',
     '🕴🏾' => 'pria melayang mengenakan jas: warna kulit gelap-sedang',
     '🕴🏿' => 'pria melayang mengenakan jas: warna kulit gelap',
+    '👯🏻' => 'orang dengan telinga kelinci: warna kulit cerah',
+    '👯🏼' => 'orang dengan telinga kelinci: warna kulit cerah-sedang',
+    '👯🏽' => 'orang dengan telinga kelinci: warna kulit sedang',
+    '👯🏾' => 'orang dengan telinga kelinci: warna kulit gelap-sedang',
+    '👯🏿' => 'orang dengan telinga kelinci: warna kulit gelap',
     '🧖🏻' => 'orang di ruangan beruap: warna kulit cerah',
     '🧖🏼' => 'orang di ruangan beruap: warna kulit cerah-sedang',
     '🧖🏽' => 'orang di ruangan beruap: warna kulit sedang',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'orang melakukan gerakan meroda: warna kulit sedang',
     '🤸🏾' => 'orang melakukan gerakan meroda: warna kulit gelap-sedang',
     '🤸🏿' => 'orang melakukan gerakan meroda: warna kulit gelap',
+    '🤼🏻' => 'orang bergulat: warna kulit cerah',
+    '🤼🏼' => 'orang bergulat: warna kulit cerah-sedang',
+    '🤼🏽' => 'orang bergulat: warna kulit sedang',
+    '🤼🏾' => 'orang bergulat: warna kulit gelap-sedang',
+    '🤼🏿' => 'orang bergulat: warna kulit gelap',
     '🤽🏻' => 'orang bermain polo air: warna kulit cerah',
     '🤽🏼' => 'orang bermain polo air: warna kulit cerah-sedang',
     '🤽🏽' => 'orang bermain polo air: warna kulit sedang',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bendera: Tiongkok',
     '🇨🇴' => 'bendera: Kolombia',
     '🇨🇵' => 'bendera: Pulau Clipperton',
+    '🇨🇶' => 'bendera: Sark',
     '🇨🇷' => 'bendera: Kosta Rika',
     '🇨🇺' => 'bendera: Kuba',
     '🇨🇻' => 'bendera: Tanjung Verde',
@@ -2389,13 +2546,6 @@
     '🏽' => 'warna kulit sedang',
     '🏾' => 'warna kulit gelap-sedang',
     '🏿' => 'warna kulit gelap',
-    '🪉' => 'harpa',
-    '🪏' => 'sekop',
-    '🪾' => 'pohon tanpa daun',
-    '🫆' => 'sidik jari',
-    '🫜' => 'sayuran umbi',
-    '🫟' => 'percikan',
-    '🫩' => 'wajah dengan kantung mata',
     '😀' => 'wajah gembira',
     '😃' => 'wajah tersenyum lebar',
     '😄' => 'wajah tersenyum lebar dan mata tertutup',
@@ -2449,6 +2599,7 @@
     '😪' => 'wajah mengantuk',
     '🤤' => 'ngiler',
     '😴' => 'wajah tidur',
+    '🫩' => 'wajah dengan kantung mata',
     '😷' => 'wajah bermasker',
     '🤒' => 'wajah bertermometer',
     '🤕' => 'wajah diperban di kepala',
@@ -2475,6 +2626,7 @@
     '😯' => 'wajah hening',
     '😲' => 'wajah terpukau',
     '😳' => 'wajah tersipu',
+    '🫪' => 'wajah syok',
     '🥺' => 'wajah memelas',
     '🥹' => 'wajah menahan air mata',
     '😦' => 'wajah mengerutkan kening dengan mulut terbuka',
@@ -2546,6 +2698,7 @@
     '💋' => 'tanda ciuman',
     '💯' => 'nilai seratus',
     '💢' => 'marah',
+    '🫯' => 'awan duel',
     '💥' => 'tabrakan',
     '💫' => 'pusing',
     '💦' => 'keringat',
@@ -2669,6 +2822,7 @@
     '🧞' => 'jin',
     '🧟' => 'zombi',
     '🧌' => 'raksasa',
+    '🫈' => 'makhluk berbulu',
     '💆' => 'pria dipijat',
     '💇' => 'orang potong rambut',
     '🚶' => 'orang berjalan kaki',
@@ -2712,6 +2866,7 @@
     '🫂' => 'orang berpelukan',
     '👪' => 'keluarga',
     '👣' => 'jejak kaki',
+    '🫆' => 'sidik jari',
     '🦰' => 'rambut merah',
     '🦱' => 'rambut keriting',
     '🦳' => 'rambut putih',
@@ -2811,6 +2966,7 @@
     '🐳' => 'ikan paus menyembur',
     '🐋' => 'ikan paus',
     '🐬' => 'lumba-lumba',
+    '🫍' => 'orca',
     '🦭' => 'anjing laut',
     '🐟' => 'ikan',
     '🐠' => 'ikan tropis',
@@ -2820,6 +2976,11 @@
     '🐚' => 'cangkang spiral',
     '🪸' => 'terumbu karang',
     '🪼' => 'ubur-ubur',
+    '🦀' => 'kepiting',
+    '🦞' => 'lobster',
+    '🦐' => 'udang',
+    '🦑' => 'cumi-cumi',
+    '🦪' => 'tiram',
     '🐌' => 'siput',
     '🦋' => 'kupu-kupu',
     '🐛' => 'serangga kecil',
@@ -2864,6 +3025,7 @@
     '🪹' => 'sarang burung kosong',
     '🪺' => 'sarang dengan telur',
     '🍄' => 'jamur',
+    '🪾' => 'pohon tanpa daun',
     '🍇' => 'anggur',
     '🍈' => 'melon',
     '🍉' => 'semangka',
@@ -2900,6 +3062,7 @@
     '🌰' => 'kastanye',
     '🫚' => 'akar jahe',
     '🫛' => 'kacang polong',
+    '🫜' => 'sayuran umbi',
     '🍞' => 'roti',
     '🥐' => 'croissant',
     '🥖' => 'roti baguette',
@@ -2951,11 +3114,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'kue keberuntungan',
     '🥡' => 'kotak makanan',
-    '🦀' => 'kepiting',
-    '🦞' => 'lobster',
-    '🦐' => 'udang',
-    '🦑' => 'cumi-cumi',
-    '🦪' => 'tiram',
     '🍦' => 'es krim lembut',
     '🍧' => 'es serut',
     '🍨' => 'es krim',
@@ -3006,6 +3164,7 @@
     '🧭' => 'kompas',
     '🏔' => 'gunung dengan puncak bersalju',
     '⛰' => 'gunung',
+    '🛘' => 'longsor',
     '🌋' => 'gunung berapi',
     '🗻' => 'gunung Fuji',
     '🏕' => 'berkemah',
@@ -3366,16 +3525,18 @@
     '🎧' => 'headphone',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'trompet',
+    '🪊' => 'trombon',
     '🪗' => 'akordeon',
     '🎸' => 'gitar',
     '🎹' => 'keyboard musik',
-    '🎺' => 'trompet',
     '🎻' => 'biola',
     '🪕' => 'banjo',
     '🥁' => 'drum',
     '🪘' => 'gendang',
     '🪇' => 'marakas',
     '🪈' => 'seruling',
+    '🪉' => 'harpa',
     '📱' => 'ponsel',
     '📲' => 'telepon masuk',
     '☎' => 'telepon',
@@ -3429,8 +3590,9 @@
     '📑' => 'penanda halaman buku',
     '🔖' => 'pembatas buku',
     '🏷' => 'label',
-    '💰' => 'kantung uang',
     '🪙' => 'koin',
+    '💰' => 'kantung uang',
+    '🪎' => 'peti harta karun',
     '💴' => 'uang kertas yen',
     '💵' => 'uang kertas dolar',
     '💶' => 'uang kertas euro',
@@ -3513,6 +3675,7 @@
     '🧰' => 'kotak perkakas',
     '🧲' => 'magnet',
     '🪜' => 'tangga',
+    '🪏' => 'sekop',
     '⚗' => 'alembic',
     '🧪' => 'tabung uji',
     '🧫' => 'cawan petri',
@@ -3696,6 +3859,7 @@
     '✴' => 'bintang berujung delapan',
     '❇' => 'kilauan',
     '™' => 'merek dagang',
+    '🫟' => 'percikan',
     '🔠' => 'masukan huruf kapital latin',
     '🔡' => 'masukan huruf kecil latin',
     '🔢' => 'masukan angka',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ig.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ig.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ig.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ig.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'nsusò ọnụ: nwanyị, nwanyị, ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
     '👩🏿‍❤‍💋‍👩🏾' => 'nsusò ọnụ: nwanyị, nwanyị, ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
     '👩🏿‍❤‍💋‍👩🏿' => 'nsusò ọnụ: nwanyị, nwanyị, ọtanjele ahụ maka òji',
+    '🧑🏻‍🫯‍🧑🏼' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🧑🏻‍🫯‍🧑🏽' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
+    '🧑🏻‍🫯‍🧑🏾' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji-ndịna etiti',
+    '🧑🏻‍🫯‍🧑🏿' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji',
+    '🧑🏼‍🫯‍🧑🏻' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '🧑🏼‍🫯‍🧑🏽' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '🧑🏼‍🫯‍🧑🏾' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '🧑🏼‍🫯‍🧑🏿' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji',
+    '🧑🏽‍🫯‍🧑🏻' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha',
+    '🧑🏽‍🫯‍🧑🏼' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🧑🏽‍🫯‍🧑🏾' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '🧑🏽‍🫯‍🧑🏿' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji',
+    '🧑🏾‍🫯‍🧑🏻' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '🧑🏾‍🫯‍🧑🏼' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🧑🏾‍🫯‍🧑🏽' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '🧑🏾‍🫯‍🧑🏿' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka òji',
+    '🧑🏿‍🫯‍🧑🏻' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha',
+    '🧑🏿‍🫯‍🧑🏼' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🧑🏿‍🫯‍🧑🏽' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
+    '🧑🏿‍🫯‍🧑🏾' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
     '🧑🏻‍❤‍🧑🏼' => 'di na nwunye nwere obi: okenye, okenye, ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
     '🧑🏻‍❤‍🧑🏽' => 'di na nwunye nwere obi: okenye, okenye, ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
     '🧑🏻‍❤‍🧑🏾' => 'di na nwunye nwere obi: okenye, okenye, ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji-ndịna etiti',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'di na nwunye nwere obi: okenye, okenye, ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha-ndịna etiti',
     '🧑🏿‍❤‍🧑🏽' => 'di na nwunye nwere obi: okenye, okenye, ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
     '🧑🏿‍❤‍🧑🏾' => 'di na nwunye nwere obi: okenye, okenye, ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
+    '🧑🏻‍🐰‍🧑🏼' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🧑🏻‍🐰‍🧑🏽' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
+    '🧑🏻‍🐰‍🧑🏾' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji-ndịna etiti',
+    '🧑🏻‍🐰‍🧑🏿' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji',
+    '🧑🏼‍🐰‍🧑🏻' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '🧑🏼‍🐰‍🧑🏽' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '🧑🏼‍🐰‍🧑🏾' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '🧑🏼‍🐰‍🧑🏿' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji',
+    '🧑🏽‍🐰‍🧑🏻' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha',
+    '🧑🏽‍🐰‍🧑🏼' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🧑🏽‍🐰‍🧑🏾' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '🧑🏽‍🐰‍🧑🏿' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji',
+    '🧑🏾‍🐰‍🧑🏻' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '🧑🏾‍🐰‍🧑🏼' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🧑🏾‍🐰‍🧑🏽' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '🧑🏾‍🐰‍🧑🏿' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka òji',
+    '🧑🏿‍🐰‍🧑🏻' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha',
+    '🧑🏿‍🐰‍🧑🏼' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🧑🏿‍🐰‍🧑🏽' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
+    '🧑🏿‍🐰‍🧑🏾' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
+    '👨🏻‍🫯‍👨🏼' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👨🏻‍🫯‍👨🏽' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
+    '👨🏻‍🫯‍👨🏾' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji-ndịna etiti',
+    '👨🏻‍🫯‍👨🏿' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji',
+    '👨🏼‍🫯‍👨🏻' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👨🏼‍🫯‍👨🏽' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '👨🏼‍🫯‍👨🏾' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '👨🏼‍🫯‍👨🏿' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji',
+    '👨🏽‍🫯‍👨🏻' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👨🏽‍🫯‍👨🏼' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👨🏽‍🫯‍👨🏾' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '👨🏽‍🫯‍👨🏿' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji',
+    '👨🏾‍🫯‍👨🏻' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👨🏾‍🫯‍👨🏼' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👨🏾‍🫯‍👨🏽' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '👨🏾‍🫯‍👨🏿' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka òji',
+    '👨🏿‍🫯‍👨🏻' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha',
+    '👨🏿‍🫯‍👨🏼' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👨🏿‍🫯‍👨🏽' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
+    '👨🏿‍🫯‍👨🏾' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
     '👨🏻‍❤‍👨🏻' => 'di na nwunye nwere obi: nwoke, nwoke, ọtanjele ahụ maka ọcha',
     '👨🏻‍❤‍👨🏼' => 'di na nwunye nwere obi: nwoke, nwoke, ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
     '👨🏻‍❤‍👨🏽' => 'di na nwunye nwere obi: nwoke, nwoke, ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'di na nwunye nwere obi: nwoke, nwoke, ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
     '👨🏿‍❤‍👨🏾' => 'di na nwunye nwere obi: nwoke, nwoke, ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
     '👨🏿‍❤‍👨🏿' => 'di na nwunye nwere obi: nwoke, nwoke, ọtanjele ahụ maka òji',
+    '👨🏻‍🐰‍👨🏼' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👨🏻‍🐰‍👨🏽' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
+    '👨🏻‍🐰‍👨🏾' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji-ndịna etiti',
+    '👨🏻‍🐰‍👨🏿' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji',
+    '👨🏼‍🐰‍👨🏻' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👨🏼‍🐰‍👨🏽' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '👨🏼‍🐰‍👨🏾' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '👨🏼‍🐰‍👨🏿' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji',
+    '👨🏽‍🐰‍👨🏻' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👨🏽‍🐰‍👨🏼' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👨🏽‍🐰‍👨🏾' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '👨🏽‍🐰‍👨🏿' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji',
+    '👨🏾‍🐰‍👨🏻' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👨🏾‍🐰‍👨🏼' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👨🏾‍🐰‍👨🏽' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '👨🏾‍🐰‍👨🏿' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka òji',
+    '👨🏿‍🐰‍👨🏻' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha',
+    '👨🏿‍🐰‍👨🏼' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👨🏿‍🐰‍👨🏽' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
+    '👨🏿‍🐰‍👨🏾' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
+    '👩🏻‍🫯‍👩🏼' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👩🏻‍🫯‍👩🏽' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
+    '👩🏻‍🫯‍👩🏾' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji-ndịna etiti',
+    '👩🏻‍🫯‍👩🏿' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji',
+    '👩🏼‍🫯‍👩🏻' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👩🏼‍🫯‍👩🏽' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '👩🏼‍🫯‍👩🏾' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '👩🏼‍🫯‍👩🏿' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji',
+    '👩🏽‍🫯‍👩🏻' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👩🏽‍🫯‍👩🏼' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👩🏽‍🫯‍👩🏾' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '👩🏽‍🫯‍👩🏿' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji',
+    '👩🏾‍🫯‍👩🏻' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👩🏾‍🫯‍👩🏼' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👩🏾‍🫯‍👩🏽' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '👩🏾‍🫯‍👩🏿' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka òji',
+    '👩🏿‍🫯‍👩🏻' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha',
+    '👩🏿‍🫯‍👩🏼' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👩🏿‍🫯‍👩🏽' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
+    '👩🏿‍🫯‍👩🏾' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
     '👩🏻‍❤‍👨🏻' => 'di na nwunye nwere obi: nwanyị, nwoke, ọtanjele ahụ maka ọcha',
     '👩🏻‍❤‍👨🏼' => 'di na nwunye nwere obi: nwanyị, nwoke, ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
     '👩🏻‍❤‍👨🏽' => 'di na nwunye nwere obi: nwanyị, nwoke, ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'di na nwunye nwere obi: nwanyị, nwanyị, ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
     '👩🏿‍❤‍👩🏾' => 'di na nwunye nwere obi: nwanyị, nwanyị, ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
     '👩🏿‍❤‍👩🏿' => 'di na nwunye nwere obi: nwanyị, nwanyị, ọtanjele ahụ maka òji',
+    '👩🏻‍🐰‍👩🏼' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👩🏻‍🐰‍👩🏽' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
+    '👩🏻‍🐰‍👩🏾' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji-ndịna etiti',
+    '👩🏻‍🐰‍👩🏿' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji',
+    '👩🏼‍🐰‍👩🏻' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👩🏼‍🐰‍👩🏽' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '👩🏼‍🐰‍👩🏾' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '👩🏼‍🐰‍👩🏿' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha-ndịna etiti, ọtanjele ahụ maka òji',
+    '👩🏽‍🐰‍👩🏻' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👩🏽‍🐰‍👩🏼' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👩🏽‍🐰‍👩🏾' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji-ndịna etiti',
+    '👩🏽‍🐰‍👩🏿' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ ndịna etiti, ọtanjele ahụ maka òji',
+    '👩🏾‍🐰‍👩🏻' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha',
+    '👩🏾‍🐰‍👩🏼' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👩🏾‍🐰‍👩🏽' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ ndịna etiti',
+    '👩🏾‍🐰‍👩🏿' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji-ndịna etiti, ọtanjele ahụ maka òji',
+    '👩🏿‍🐰‍👩🏻' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha',
+    '👩🏿‍🐰‍👩🏼' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👩🏿‍🐰‍👩🏽' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
+    '👩🏿‍🐰‍👩🏾' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
     '🧑🏻‍🤝‍🧑🏻' => 'ndị ji aka: ọtanjele ahụ maka ọcha',
     '🧑🏻‍🤝‍🧑🏼' => 'ndị ji aka: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
     '🧑🏻‍🤝‍🧑🏽' => 'ndị ji aka: ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'ezinaụlọ: nwanyị, nwanyị, nwa nwoke, nwa nwoke',
     '👩‍👩‍👧‍👧' => 'ezinaụlọ: nwanyị, nwanyị, nwata nwaanyị, nwata nwaanyị',
     '🧑‍🧑‍🧒‍🧒' => 'ezinaụlọ: okenye, okenye, nwata, nwata',
-    '🚶🏻‍♀‍➡' => 'nwanyị na-aga ije na-eche ihu aka nri',
-    '🚶🏼‍♀‍➡' => 'nwanyị na-aga ije na-eche ihu aka nri',
-    '🚶🏽‍♀‍➡' => 'nwanyị na-aga ije na-eche ihu aka nri',
-    '🚶🏾‍♀‍➡' => 'nwanyị na-aga ije na-eche ihu aka nri',
-    '🚶🏿‍♀‍➡' => 'nwanyị na-aga ije na-eche ihu aka nri',
-    '🚶🏻‍♂‍➡' => 'nwoke na-aga ije na-eche ihu aka nri',
-    '🚶🏼‍♂‍➡' => 'nwoke na-aga ije na-eche ihu aka nri',
-    '🚶🏽‍♂‍➡' => 'nwoke na-aga ije na-eche ihu aka nri',
-    '🚶🏾‍♂‍➡' => 'nwoke na-aga ije na-eche ihu aka nri',
-    '🚶🏿‍♂‍➡' => 'nwoke na-aga ije na-eche ihu aka nri',
-    '🧎🏻‍♀‍➡' => 'nwanyị gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏼‍♀‍➡' => 'nwanyị gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏽‍♀‍➡' => 'nwanyị gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏾‍♀‍➡' => 'nwanyị gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏿‍♀‍➡' => 'nwanyị gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏻‍♂‍➡' => 'nwoke gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏼‍♂‍➡' => 'nwoke gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏽‍♂‍➡' => 'nwoke gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏾‍♂‍➡' => 'nwoke gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏿‍♂‍➡' => 'nwoke gbu ikpere n’ala na-eche ihu aka nri',
-    '🧑🏻‍🦯‍➡' => 'onye ji mkpara ọcha na-eche ihu aka nri',
-    '🧑🏼‍🦯‍➡' => 'onye ji mkpara ọcha na-eche ihu aka nri',
-    '🧑🏽‍🦯‍➡' => 'onye ji mkpara ọcha na-eche ihu aka nri',
-    '🧑🏾‍🦯‍➡' => 'onye ji mkpara ọcha na-eche ihu aka nri',
-    '🧑🏿‍🦯‍➡' => 'onye ji mkpara ọcha na-eche ihu aka nri',
-    '👨🏻‍🦯‍➡' => 'nwoke ji mkpara ọcha na-eche ihu aka nri',
-    '👨🏼‍🦯‍➡' => 'nwoke ji mkpara ọcha na-eche ihu aka nri',
-    '👨🏽‍🦯‍➡' => 'nwoke ji mkpara ọcha na-eche ihu aka nri',
-    '👨🏾‍🦯‍➡' => 'nwoke ji mkpara ọcha na-eche ihu aka nri',
-    '👨🏿‍🦯‍➡' => 'nwoke ji mkpara ọcha na-eche ihu aka nri',
-    '👩🏻‍🦯‍➡' => 'nwanyị ji mkpara ọcha na-eche ihu aka nri',
-    '👩🏼‍🦯‍➡' => 'nwanyị ji mkpara ọcha na-eche ihu aka nri',
-    '👩🏽‍🦯‍➡' => 'nwanyị ji mkpara ọcha na-eche ihu aka nri',
-    '👩🏾‍🦯‍➡' => 'nwanyị ji mkpara ọcha na-eche ihu aka nri',
-    '👩🏿‍🦯‍➡' => 'nwanyị ji mkpara ọcha na-eche ihu aka nri',
-    '🧑🏻‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '🧑🏼‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '🧑🏽‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '🧑🏾‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '🧑🏿‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👨🏻‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👨🏼‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👨🏽‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👨🏾‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👨🏿‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👩🏻‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👩🏼‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👩🏽‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👩🏾‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👩🏿‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '🧑🏻‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '🧑🏼‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '🧑🏽‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '🧑🏾‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '🧑🏿‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👨🏻‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👨🏼‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👨🏽‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👨🏾‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👨🏿‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👩🏻‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👩🏼‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👩🏽‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👩🏾‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👩🏿‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '🏃🏻‍♀‍➡' => 'nwanyị na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏼‍♀‍➡' => 'nwanyị na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏽‍♀‍➡' => 'nwanyị na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏾‍♀‍➡' => 'nwanyị na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏿‍♀‍➡' => 'nwanyị na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏻‍♂‍➡' => 'nwoke na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏼‍♂‍➡' => 'nwoke na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏽‍♂‍➡' => 'nwoke na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏾‍♂‍➡' => 'nwoke na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏿‍♂‍➡' => 'nwoke na-agba ọsọ na-eche ihu aka nri',
+    '🚶🏻‍♀‍➡' => 'nwanyị na-aga ije: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🚶🏼‍♀‍➡' => 'nwanyị na-aga ije: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🚶🏽‍♀‍➡' => 'nwanyị na-aga ije: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🚶🏾‍♀‍➡' => 'nwanyị na-aga ije: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🚶🏿‍♀‍➡' => 'nwanyị na-aga ije: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '🚶🏻‍♂‍➡' => 'nwoke na-aga ije: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🚶🏼‍♂‍➡' => 'nwoke na-aga ije: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🚶🏽‍♂‍➡' => 'nwoke na-aga ije: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🚶🏾‍♂‍➡' => 'nwoke na-aga ije: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🚶🏿‍♂‍➡' => 'nwoke na-aga ije: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '🧎🏻‍♀‍➡' => 'nwanyị gbu ikpere n’ala: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🧎🏼‍♀‍➡' => 'nwanyị gbu ikpere n’ala: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🧎🏽‍♀‍➡' => 'nwanyị gbu ikpere n’ala: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🧎🏾‍♀‍➡' => 'nwanyị gbu ikpere n’ala: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🧎🏿‍♀‍➡' => 'nwanyị gbu ikpere n’ala: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '🧎🏻‍♂‍➡' => 'nwoke gbu ikpere n’ala: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🧎🏼‍♂‍➡' => 'nwoke gbu ikpere n’ala: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🧎🏽‍♂‍➡' => 'nwoke gbu ikpere n’ala: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🧎🏾‍♂‍➡' => 'nwoke gbu ikpere n’ala: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🧎🏿‍♂‍➡' => 'nwoke gbu ikpere n’ala: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '🧑🏻‍🦯‍➡' => 'onye ji mkpara ọcha: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🧑🏼‍🦯‍➡' => 'onye ji mkpara ọcha: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🧑🏽‍🦯‍➡' => 'onye ji mkpara ọcha: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🧑🏾‍🦯‍➡' => 'onye ji mkpara ọcha: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🧑🏿‍🦯‍➡' => 'onye ji mkpara ọcha: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '👨🏻‍🦯‍➡' => 'nwoke ji mkpara ọcha: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '👨🏼‍🦯‍➡' => 'nwoke ji mkpara ọcha: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '👨🏽‍🦯‍➡' => 'nwoke ji mkpara ọcha: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '👨🏾‍🦯‍➡' => 'nwoke ji mkpara ọcha: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '👨🏿‍🦯‍➡' => 'nwoke ji mkpara ọcha: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '👩🏻‍🦯‍➡' => 'nwanyị ji mkpara ọcha: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '👩🏼‍🦯‍➡' => 'nwanyị ji mkpara ọcha: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '👩🏽‍🦯‍➡' => 'nwanyị ji mkpara ọcha: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '👩🏾‍🦯‍➡' => 'nwanyị ji mkpara ọcha: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '👩🏿‍🦯‍➡' => 'nwanyị ji mkpara ọcha: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '🧑🏻‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🧑🏼‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🧑🏽‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🧑🏾‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🧑🏿‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '👨🏻‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '👨🏼‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '👨🏽‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '👨🏾‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '👨🏿‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '👩🏻‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '👩🏼‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '👩🏽‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '👩🏾‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '👩🏿‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '🧑🏻‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🧑🏼‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🧑🏽‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🧑🏾‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🧑🏿‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '👨🏻‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '👨🏼‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '👨🏽‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '👨🏾‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '👨🏿‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '👩🏻‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '👩🏼‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '👩🏽‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '👩🏾‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '👩🏿‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '🏃🏻‍♀‍➡' => 'nwanyị na-agba ọsọ: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🏃🏼‍♀‍➡' => 'nwanyị na-agba ọsọ: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🏃🏽‍♀‍➡' => 'nwanyị na-agba ọsọ: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🏃🏾‍♀‍➡' => 'nwanyị na-agba ọsọ: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🏃🏿‍♀‍➡' => 'nwanyị na-agba ọsọ: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '🏃🏻‍♂‍➡' => 'nwoke na-agba ọsọ: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🏃🏼‍♂‍➡' => 'nwoke na-agba ọsọ: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🏃🏽‍♂‍➡' => 'nwoke na-agba ọsọ: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🏃🏾‍♂‍➡' => 'nwoke na-agba ọsọ: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🏃🏿‍♂‍➡' => 'nwoke na-agba ọsọ: ọtanjele ahụ maka òji, na-eche ihu aka nri',
     '🫱🏻‍🫲🏼' => 'nkwenaka: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka ọcha-ndịna etiti',
     '🫱🏻‍🫲🏽' => 'nkwenaka: ọtanjele ahụ maka ọcha, ọtanjele ahụ ndịna etiti',
     '🫱🏻‍🫲🏾' => 'nkwenaka: ọtanjele ahụ maka ọcha, ọtanjele ahụ maka òji-ndịna etiti',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'nkwenaka: ọtanjele ahụ maka òji, ọtanjele ahụ maka ọcha-ndịna etiti',
     '🫱🏿‍🫲🏽' => 'nkwenaka: ọtanjele ahụ maka òji, ọtanjele ahụ ndịna etiti',
     '🫱🏿‍🫲🏾' => 'nkwenaka: ọtanjele ahụ maka òji, ọtanjele ahụ maka òji-ndịna etiti',
-    '🚶‍♀‍➡' => 'nwanyị na-aga ije na-eche ihu aka nri',
-    '🚶‍♂‍➡' => 'nwoke na-aga ije na-eche ihu aka nri',
-    '🧎‍♀‍➡' => 'nwanyị gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎‍♂‍➡' => 'nwoke gbu ikpere n’ala na-eche ihu aka nri',
-    '🧑‍🦯‍➡' => 'onye ji mkpara ọcha na-eche ihu aka nri',
-    '👨‍🦯‍➡' => 'nwoke ji mkpara ọcha na-eche ihu aka nri',
-    '👩‍🦯‍➡' => 'nwanyị ji mkpara ọcha na-eche ihu aka nri',
-    '🧑‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👨‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '👩‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto na-eche ihu aka nri',
-    '🧑‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👨‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '👩‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka na-eche ihu aka nri',
-    '🏃‍♀‍➡' => 'nwanyị na-agba ọsọ na-eche ihu aka nri',
-    '🏃‍♂‍➡' => 'nwoke na-agba ọsọ na-eche ihu aka nri',
+    '🚶‍♀‍➡' => 'nwanyị na-aga ije: na-eche ihu aka nri',
+    '🚶‍♂‍➡' => 'nwoke na-aga ije: na-eche ihu aka nri',
+    '🧎‍♀‍➡' => 'nwanyị gbu ikpere n’ala: na-eche ihu aka nri',
+    '🧎‍♂‍➡' => 'nwoke gbu ikpere n’ala: na-eche ihu aka nri',
+    '🧑‍🦯‍➡' => 'onye ji mkpara ọcha: na-eche ihu aka nri',
+    '👨‍🦯‍➡' => 'nwoke ji mkpara ọcha: na-eche ihu aka nri',
+    '👩‍🦯‍➡' => 'nwanyị ji mkpara ọcha: na-eche ihu aka nri',
+    '🧑‍🦼‍➡' => 'onye nọ n’oche nkwagharị nwere moto: na-eche ihu aka nri',
+    '👨‍🦼‍➡' => 'nwoke nọ n’oche nkwagharị nwere moto: na-eche ihu aka nri',
+    '👩‍🦼‍➡' => 'nwanyị nọ n’oche nkwagharị nwere moto: na-eche ihu aka nri',
+    '🧑‍🦽‍➡' => 'onye nọ n’oche nkwagharị nke aka: na-eche ihu aka nri',
+    '👨‍🦽‍➡' => 'nwoke nọ n’oche nkwagharị nke aka: na-eche ihu aka nri',
+    '👩‍🦽‍➡' => 'nwanyị nọ n’oche nkwagharị nke aka: na-eche ihu aka nri',
+    '🏃‍♀‍➡' => 'nwanyị na-agba ọsọ: na-eche ihu aka nri',
+    '🏃‍♂‍➡' => 'nwoke na-agba ọsọ: na-eche ihu aka nri',
     '👩‍❤‍👨' => 'di na nwunye nwere obi: nwanyị, nwoke',
     '👨‍❤‍👨' => 'di na nwunye nwere obi: nwoke, nwoke',
     '👩‍❤‍👩' => 'di na nwunye nwere obi: nwanyị, nwanyị',
@@ -437,6 +557,11 @@
     '🧑🏽‍🦲' => 'okenye: ọtanjele ahụ ndịna etiti, isi nkwọcha',
     '🧑🏾‍🦲' => 'okenye: ọtanjele ahụ maka òji-ndịna etiti, isi nkwọcha',
     '🧑🏿‍🦲' => 'okenye: ọtanjele ahụ maka òji, isi nkwọcha',
+    '🧑🏻‍🩰' => 'onye na-agba egwú ballet: ọtanjele ahụ maka ọcha',
+    '🧑🏼‍🩰' => 'onye na-agba egwú ballet: ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🧑🏽‍🩰' => 'onye na-agba egwú ballet: ọtanjele ahụ ndịna etiti',
+    '🧑🏾‍🩰' => 'onye na-agba egwú ballet: ọtanjele ahụ maka òji-ndịna etiti',
+    '🧑🏿‍🩰' => 'onye na-agba egwú ballet: ọtanjele ahụ maka òji',
     '🧔🏻‍♂' => 'nwoke: ọtanjele ahụ maka ọcha, afụ ọnụ',
     '🧔🏼‍♂' => 'nwoke: ọtanjele ahụ maka ọcha-ndịna etiti, afụ ọnụ',
     '🧔🏽‍♂' => 'nwoke: ọtanjele ahụ ndịna etiti, afụ ọnụ',
@@ -1027,11 +1152,11 @@
     '🚶🏽‍♀' => 'nwanyị na-aga ije: ọtanjele ahụ ndịna etiti',
     '🚶🏾‍♀' => 'nwanyị na-aga ije: ọtanjele ahụ maka òji-ndịna etiti',
     '🚶🏿‍♀' => 'nwanyị na-aga ije: ọtanjele ahụ maka òji',
-    '🚶🏻‍➡' => 'onye na-aga ije na-eche ihu aka nri',
-    '🚶🏼‍➡' => 'onye na-aga ije na-eche ihu aka nri',
-    '🚶🏽‍➡' => 'onye na-aga ije na-eche ihu aka nri',
-    '🚶🏾‍➡' => 'onye na-aga ije na-eche ihu aka nri',
-    '🚶🏿‍➡' => 'onye na-aga ije na-eche ihu aka nri',
+    '🚶🏻‍➡' => 'onye na-aga ije: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🚶🏼‍➡' => 'onye na-aga ije: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🚶🏽‍➡' => 'onye na-aga ije: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🚶🏾‍➡' => 'onye na-aga ije: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🚶🏿‍➡' => 'onye na-aga ije: ọtanjele ahụ maka òji, na-eche ihu aka nri',
     '🧍🏻‍♂' => 'nwoke na-eguzo: ọtanjele ahụ maka ọcha',
     '🧍🏼‍♂' => 'nwoke na-eguzo: ọtanjele ahụ maka ọcha-ndịna etiti',
     '🧍🏽‍♂' => 'nwoke na-eguzo: ọtanjele ahụ ndịna etiti',
@@ -1052,11 +1177,11 @@
     '🧎🏽‍♀' => 'nwanyị gbu ikpere n’ala: ọtanjele ahụ ndịna etiti',
     '🧎🏾‍♀' => 'nwanyị gbu ikpere n’ala: ọtanjele ahụ maka òji-ndịna etiti',
     '🧎🏿‍♀' => 'nwanyị gbu ikpere n’ala: ọtanjele ahụ maka òji',
-    '🧎🏻‍➡' => 'onye gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏼‍➡' => 'onye gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏽‍➡' => 'onye gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏾‍➡' => 'onye gbu ikpere n’ala na-eche ihu aka nri',
-    '🧎🏿‍➡' => 'onye gbu ikpere n’ala na-eche ihu aka nri',
+    '🧎🏻‍➡' => 'onye gbu ikpere n’ala: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🧎🏼‍➡' => 'onye gbu ikpere n’ala: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🧎🏽‍➡' => 'onye gbu ikpere n’ala: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🧎🏾‍➡' => 'onye gbu ikpere n’ala: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🧎🏿‍➡' => 'onye gbu ikpere n’ala: ọtanjele ahụ maka òji, na-eche ihu aka nri',
     '🧑🏻‍🦯' => 'onye ji mkpara ọcha: ọtanjele ahụ maka ọcha',
     '🧑🏼‍🦯' => 'onye ji mkpara ọcha: ọtanjele ahụ maka ọcha-ndịna etiti',
     '🧑🏽‍🦯' => 'onye ji mkpara ọcha: ọtanjele ahụ ndịna etiti',
@@ -1112,11 +1237,21 @@
     '🏃🏽‍♀' => 'nwanyị na-agba ọsọ: ọtanjele ahụ ndịna etiti',
     '🏃🏾‍♀' => 'nwanyị na-agba ọsọ: ọtanjele ahụ maka òji-ndịna etiti',
     '🏃🏿‍♀' => 'nwanyị na-agba ọsọ: ọtanjele ahụ maka òji',
-    '🏃🏻‍➡' => 'onye na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏼‍➡' => 'onye na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏽‍➡' => 'onye na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏾‍➡' => 'onye na-agba ọsọ na-eche ihu aka nri',
-    '🏃🏿‍➡' => 'onye na-agba ọsọ na-eche ihu aka nri',
+    '🏃🏻‍➡' => 'onye na-agba ọsọ: ọtanjele ahụ maka ọcha, na-eche ihu aka nri',
+    '🏃🏼‍➡' => 'onye na-agba ọsọ: ọtanjele ahụ maka ọcha-ndịna etiti, na-eche ihu aka nri',
+    '🏃🏽‍➡' => 'onye na-agba ọsọ: ọtanjele ahụ ndịna etiti, na-eche ihu aka nri',
+    '🏃🏾‍➡' => 'onye na-agba ọsọ: ọtanjele ahụ maka òji-ndịna etiti, na-eche ihu aka nri',
+    '🏃🏿‍➡' => 'onye na-agba ọsọ: ọtanjele ahụ maka òji, na-eche ihu aka nri',
+    '👯🏻‍♀' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha',
+    '👯🏼‍♀' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👯🏽‍♀' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ ndịna etiti',
+    '👯🏾‍♀' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji-ndịna etiti',
+    '👯🏿‍♀' => 'ụmụnwanyi nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji',
+    '👯🏻‍♂' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha',
+    '👯🏼‍♂' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👯🏽‍♂' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ ndịna etiti',
+    '👯🏾‍♂' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji-ndịna etiti',
+    '👯🏿‍♂' => 'ụmụnwoke nwere nti ogologo na-agba egwu: ọtanjele ahụ maka òji',
     '🧖🏻‍♂' => 'nwoke nọ n’ụlọ okpomọọkụ mmiri ahụ: ọtanjele ahụ maka ọcha',
     '🧖🏼‍♂' => 'nwoke nọ n’ụlọ okpomọọkụ mmiri ahụ: ọtanjele ahụ maka ọcha-ndịna etiti',
     '🧖🏽‍♂' => 'nwoke nọ n’ụlọ okpomọọkụ mmiri ahụ: ọtanjele ahụ ndịna etiti',
@@ -1227,6 +1362,16 @@
     '🤸🏽‍♀' => 'nwanyị na-eme egwuregwu ntụgharị onwe: ọtanjele ahụ ndịna etiti',
     '🤸🏾‍♀' => 'nwanyị na-eme egwuregwu ntụgharị onwe: ọtanjele ahụ maka òji-ndịna etiti',
     '🤸🏿‍♀' => 'nwanyị na-eme egwuregwu ntụgharị onwe: ọtanjele ahụ maka òji',
+    '🤼🏻‍♀' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka ọcha',
+    '🤼🏼‍♀' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🤼🏽‍♀' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ ndịna etiti',
+    '🤼🏾‍♀' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti',
+    '🤼🏿‍♀' => 'ụmụnwanyị na-agba m̀gba: ọtanjele ahụ maka òji',
+    '🤼🏻‍♂' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka ọcha',
+    '🤼🏼‍♂' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🤼🏽‍♂' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ ndịna etiti',
+    '🤼🏾‍♂' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti',
+    '🤼🏿‍♂' => 'ụmụnwoke ndị na-agba m̀gba: ọtanjele ahụ maka òji',
     '🤽🏻‍♂' => 'nwoke na-egwu egwuregwu bọọlụ mmiri: ọtanjele ahụ maka ọcha',
     '🤽🏼‍♂' => 'nwoke na-egwu egwuregwu bọọlụ mmiri: ọtanjele ahụ maka ọcha-ndịna etiti',
     '🤽🏽‍♂' => 'nwoke na-egwu egwuregwu bọọlụ mmiri: ọtanjele ahụ ndịna etiti',
@@ -1279,9 +1424,9 @@
     '👩‍🦱' => 'nwanyị: ntutu isi gbakọrọ agbakọ',
     '👩‍🦳' => 'nwanyị: ntutu isi ocha',
     '👩‍🦲' => 'nwanyị: isi nkwọcha',
-    '🚶‍➡' => 'onye na-aga ije na-eche ihu aka nri',
-    '🧎‍➡' => 'onye gbu ikpere n’ala na-eche ihu aka nri',
-    '🏃‍➡' => 'onye na-agba ọsọ na-eche ihu aka nri',
+    '🚶‍➡' => 'onye na-aga ije: na-eche ihu aka nri',
+    '🧎‍➡' => 'onye gbu ikpere n’ala: na-eche ihu aka nri',
+    '🏃‍➡' => 'onye na-agba ọsọ: na-eche ihu aka nri',
     '👨‍👦' => 'ezinaụlọ: nwoke, nwa nwoke',
     '👨‍👧' => 'ezinaụlọ: nwoke, nwata nwaanyị',
     '👩‍👦' => 'ezinaụlọ: nwanyị, nwa nwoke',
@@ -1422,6 +1567,7 @@
     '👩‍🦽' => 'nwanyị nọ n’oche nkwagharị nke aka',
     '🏃‍♂' => 'nwoke na-agba ọsọ',
     '🏃‍♀' => 'nwanyị na-agba ọsọ',
+    '🧑‍🩰' => 'onye na-agba egwú ballet',
     '👯‍♂' => 'ụmụnwoke nwere nti ogologo na-agba egwu',
     '👯‍♀' => 'ụmụnwanyi nwere nti ogologo na-agba egwu',
     '🧖‍♂' => 'nwoke nọ n’ụlọ okpomọọkụ mmiri ahụ',
@@ -2003,6 +2149,11 @@
     '🕴🏽' => 'nwoke yi akwà azụmaahịa na-efe n’elu: ọtanjele ahụ ndịna etiti',
     '🕴🏾' => 'nwoke yi akwà azụmaahịa na-efe n’elu: ọtanjele ahụ maka òji-ndịna etiti',
     '🕴🏿' => 'nwoke yi akwà azụmaahịa na-efe n’elu: ọtanjele ahụ maka òji',
+    '👯🏻' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka ọcha',
+    '👯🏼' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka ọcha-ndịna etiti',
+    '👯🏽' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ ndịna etiti',
+    '👯🏾' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka òji-ndịna etiti',
+    '👯🏿' => 'ndị mmadụ ndị na-agba egwu nwere nti ogologo: ọtanjele ahụ maka òji',
     '🧖🏻' => 'onye nọ n’ụlọ okpomọọkụ mmiri ahụ: ọtanjele ahụ maka ọcha',
     '🧖🏼' => 'onye nọ n’ụlọ okpomọọkụ mmiri ahụ: ọtanjele ahụ maka ọcha-ndịna etiti',
     '🧖🏽' => 'onye nọ n’ụlọ okpomọọkụ mmiri ahụ: ọtanjele ahụ ndịna etiti',
@@ -2068,6 +2219,11 @@
     '🤸🏽' => 'onye na-eme egwuntụgharị onwe: ọtanjele ahụ ndịna etiti',
     '🤸🏾' => 'onye na-eme egwuntụgharị onwe: ọtanjele ahụ maka òji-ndịna etiti',
     '🤸🏿' => 'onye na-eme egwuntụgharị onwe: ọtanjele ahụ maka òji',
+    '🤼🏻' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka ọcha',
+    '🤼🏼' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka ọcha-ndịna etiti',
+    '🤼🏽' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ ndịna etiti',
+    '🤼🏾' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka òji-ndịna etiti',
+    '🤼🏿' => 'ndị mmadụ ndị na-agba m̀gba: ọtanjele ahụ maka òji',
     '🤽🏻' => 'onye na-egwu egwuregwu bọọlụ mmiri: ọtanjele ahụ maka ọcha',
     '🤽🏼' => 'onye na-egwu egwuregwu bọọlụ mmiri: ọtanjele ahụ maka ọcha-ndịna etiti',
     '🤽🏽' => 'onye na-egwu egwuregwu bọọlụ mmiri: ọtanjele ahụ ndịna etiti',
@@ -2128,13 +2284,6 @@
     '🏽' => 'ọtanjele ahụ ndịna etiti',
     '🏾' => 'ọtanjele ahụ maka òji-ndịna etiti',
     '🏿' => 'ọtanjele ahụ maka òji',
-    '🪉' => 'ụbọ akwara',
-    '🪏' => 'shọvel',
-    '🪾' => 'osisi na-enweghị akwụkwọ',
-    '🫆' => 'mbipụta aka',
-    '🫜' => 'akwụkwọ nri mgbọrọgwụ',
-    '🫟' => 'nfesasị',
-    '🫩' => 'ihu nwere anya ụra',
     '😀' => 'ihu ọchị',
     '😃' => 'Ihu Amụ Nwere Ọnụ Ghe oghe',
     '😄' => 'ihu amụ nwere mmepe ọnụ & anya amụ',
@@ -2188,6 +2337,7 @@
     '😪' => 'ihu anya ụra',
     '🤤' => 'ihu na-agụsị asọ mmiri',
     '😴' => 'ihu na-ehi ụra',
+    '🫩' => 'ihu nwere anya ụra',
     '😷' => 'ihu nwere mkpuchi ihu ngwaọrụ ụlọ ọgwụ',
     '🤒' => 'ihu nwere ngwa ogologo',
     '🤕' => 'ihu nwere akwà mkpuchi',
@@ -2214,6 +2364,7 @@
     '😯' => 'ihu dara jụụ',
     '😲' => 'ihu nwere ịtụnanya',
     '😳' => 'ihu nchagharị ọbara',
+    '🫪' => 'ihu gbagọrọ agbagọ',
     '🥺' => 'ihu na-ayọ ayiyọ',
     '🥹' => 'ihu choro ị be akwà',
     '😦' => 'ihu mgbarụ nwere mmepe ọnụ',
@@ -2285,6 +2436,7 @@
     '💋' => 'akara nsusu',
     '💯' => 'pọịntị narị gasị',
     '💢' => 'akara iwe',
+    '🫯' => 'igwe ojii ọgụ',
     '💥' => 'nkụkọrịta',
     '💫' => 'ajụ',
     '💦' => 'ntụpụta okpoofù',
@@ -2408,6 +2560,7 @@
     '🧞' => 'nwa mmegbu',
     '🧟' => 'onye nwụrụ anwụ na-aga ije',
     '🧌' => 'ihe na-eyi egwu',
+    '🫈' => 'anụ nwere ajị',
     '💆' => 'onye na-anata ozi',
     '💇' => 'Onye na-enweta ọkpụkpụisi',
     '🚶' => 'onye na-aga ije',
@@ -2451,6 +2604,7 @@
     '🫂' => 'ndi na-makọ',
     '👪' => 'ezinaụlọ',
     '👣' => 'ụzọụkwụ gasị',
+    '🫆' => 'mbipụta aka',
     '🦰' => 'ntutu isi uhie',
     '🦱' => 'ntutu isi gbakọrọ agbakọ',
     '🦳' => 'ntutu isi ocha',
@@ -2550,6 +2704,7 @@
     '🐳' => 'nnukwu azụ whelụ na-agbọpụ mmiri',
     '🐋' => 'nnukwu azụ whelụ',
     '🐬' => 'nnukwu azụ dọlphịnụ',
+    '🫍' => 'azụ ọka',
     '🦭' => 'nnukwu anụ mmiri',
     '🐟' => 'azụ̀',
     '🐠' => 'azụ̀ mmiri',
@@ -2559,6 +2714,11 @@
     '🐚' => 'okpokoro okirikiri',
     '🪸' => 'koral',
     '🪼' => 'azụjelii',
+    '🦀' => 'nshịkọ',
+    '🦞' => 'oporo',
+    '🦐' => 'ayịya',
+    '🦑' => 'Azụ sụkwịdị',
+    '🦪' => 'oporo gbarampi',
     '🐌' => 'ejù',
     '🦋' => 'mbubara',
     '🐛' => 'Chinchi',
@@ -2603,6 +2763,7 @@
     '🪹' => 'akwụ efu',
     '🪺' => 'akwụ nwere akwa',
     '🍄' => 'ero',
+    '🪾' => 'osisi na-enweghị akwụkwọ',
     '🍇' => 'grepụ gasị',
     '🍈' => 'mkpụrụosisi melọn',
     '🍉' => 'mkpụrụosisi mmirimelọn',
@@ -2639,6 +2800,7 @@
     '🌰' => 'chestnọt',
     '🫚' => 'mgbọrọgwụ ginger',
     '🫛' => 'azama',
+    '🫜' => 'akwụkwọ nri mgbọrọgwụ',
     '🍞' => 'achịcha nkịtị',
     '🥐' => 'achịcha akpụrụ akpụ',
     '🥖' => 'achịcha ogologo',
@@ -2690,11 +2852,6 @@
     '🥟' => 'nri achịcha',
     '🥠' => 'kuki achịcha',
     '🥡' => 'igbe were lawa',
-    '🦀' => 'nshịkọ',
-    '🦞' => 'oporo',
-    '🦐' => 'ayịya',
-    '🦑' => 'Azụ sụkwịdị',
-    '🦪' => 'oporo gbarampi',
     '🍦' => 'ihe nracha dị nrọ',
     '🍧' => 'ihe aracha na-akpụchara akpụcha',
     '🍨' => 'ihe nracha',
@@ -2745,6 +2902,7 @@
     '🧭' => 'kọmpas',
     '🏔' => 'ugwu akụrụ mmiri-kpuchiri',
     '⛰' => 'ugwu',
+    '🛘' => 'oké ọdịda aja',
     '🌋' => 'mgbawa ugwu',
     '🗻' => 'ugwu fuji',
     '🏕' => 'ọgbakọ nzuruike',
@@ -3105,16 +3263,18 @@
     '🎧' => 'ekwentịisi',
     '📻' => 'redio',
     '🎷' => 'opi egwu',
+    '🎺' => 'òpì ike',
+    '🪊' => 'opi',
     '🪗' => 'akọdịọn',
     '🎸' => 'ụbọ',
     '🎹' => 'ụgbọọtụgwo ụdà-egwu',
-    '🎺' => 'òpì ike',
     '🎻' => 'ụbọ nta',
     '🪕' => 'banjo',
     '🥁' => 'ìgbà',
     '🪘' => 'ogologo igba',
     '🪇' => 'marakas',
     '🪈' => 'ọjà',
+    '🪉' => 'ụbọ akwara',
     '📱' => 'ekwentị kengaghari',
     '📲' => 'ekwentị kengaghari nwere ube',
     '☎' => 'ekwentị',
@@ -3168,8 +3328,9 @@
     '📑' => 'taabụ bukumakị',
     '🔖' => 'bukumakị',
     '🏷' => 'nnyeaha',
-    '💰' => 'àkpà ego',
     '🪙' => 'mkpụrụ ego',
+    '💰' => 'àkpà ego',
+    '🪎' => 'igbe akụ̀',
     '💴' => 'akwụkwọego yen',
     '💵' => 'akwụkwọego dọlla',
     '💶' => 'akwụkwọego euro',
@@ -3252,6 +3413,7 @@
     '🧰' => 'igbe ngwaọrụ',
     '🧲' => 'magnet',
     '🪜' => 'lada',
+    '🪏' => 'shọvel',
     '⚗' => 'ngwaọrụ sayensi',
     '🧪' => 'ule tube',
     '🧫' => 'efere petri',
@@ -3435,6 +3597,7 @@
     '✴' => 'kpakpando asatọ-arụtụrụ aka',
     '❇' => 'icheku ọkụ',
     '™' => 'akara-ụlọọrụ',
+    '🫟' => 'nfesasị',
     '🔠' => 'tinye mkpụrụedemede latin nnukwu',
     '🔡' => 'tinye obere mkpụrụedemede latin',
     '🔢' => 'tinye nọmbà gasị',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-is.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-is.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-is.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-is.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'koss: kona, kona, dökkur húðlitur og millihúðlitur',
     '👩🏿‍❤‍💋‍👩🏾' => 'koss: kona, kona, dökkur húðlitur og meðaldökkur húðlitur',
     '👩🏿‍❤‍💋‍👩🏿' => 'koss: kona, kona og dökkur húðlitur',
+    '🧑🏻‍🫯‍🧑🏼' => 'glíma: ljós húðlitur og meðalljós húðlitur',
+    '🧑🏻‍🫯‍🧑🏽' => 'glíma: ljós húðlitur og millihúðlitur',
+    '🧑🏻‍🫯‍🧑🏾' => 'glíma: ljós húðlitur og meðaldökkur húðlitur',
+    '🧑🏻‍🫯‍🧑🏿' => 'glíma: ljós húðlitur og dökkur húðlitur',
+    '🧑🏼‍🫯‍🧑🏻' => 'glíma: meðalljós húðlitur og ljós húðlitur',
+    '🧑🏼‍🫯‍🧑🏽' => 'glíma: meðalljós húðlitur og millihúðlitur',
+    '🧑🏼‍🫯‍🧑🏾' => 'glíma: meðalljós húðlitur og meðaldökkur húðlitur',
+    '🧑🏼‍🫯‍🧑🏿' => 'glíma: meðalljós húðlitur og dökkur húðlitur',
+    '🧑🏽‍🫯‍🧑🏻' => 'glíma: millihúðlitur og ljós húðlitur',
+    '🧑🏽‍🫯‍🧑🏼' => 'glíma: millihúðlitur og meðalljós húðlitur',
+    '🧑🏽‍🫯‍🧑🏾' => 'glíma: millihúðlitur og meðaldökkur húðlitur',
+    '🧑🏽‍🫯‍🧑🏿' => 'glíma: millihúðlitur og dökkur húðlitur',
+    '🧑🏾‍🫯‍🧑🏻' => 'glíma: meðaldökkur húðlitur og ljós húðlitur',
+    '🧑🏾‍🫯‍🧑🏼' => 'glíma: meðaldökkur húðlitur og meðalljós húðlitur',
+    '🧑🏾‍🫯‍🧑🏽' => 'glíma: meðaldökkur húðlitur og millihúðlitur',
+    '🧑🏾‍🫯‍🧑🏿' => 'glíma: meðaldökkur húðlitur og dökkur húðlitur',
+    '🧑🏿‍🫯‍🧑🏻' => 'glíma: dökkur húðlitur og ljós húðlitur',
+    '🧑🏿‍🫯‍🧑🏼' => 'glíma: dökkur húðlitur og meðalljós húðlitur',
+    '🧑🏿‍🫯‍🧑🏽' => 'glíma: dökkur húðlitur og millihúðlitur',
+    '🧑🏿‍🫯‍🧑🏾' => 'glíma: dökkur húðlitur og meðaldökkur húðlitur',
     '🧑🏻‍❤‍🧑🏼' => 'par: manneskja, manneskja, ljós húðlitur og meðalljós húðlitur',
     '🧑🏻‍❤‍🧑🏽' => 'par: manneskja, manneskja, ljós húðlitur og millihúðlitur',
     '🧑🏻‍❤‍🧑🏾' => 'par: manneskja, manneskja, ljós húðlitur og meðaldökkur húðlitur',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par: manneskja, manneskja, dökkur húðlitur og meðalljós húðlitur',
     '🧑🏿‍❤‍🧑🏽' => 'par: manneskja, manneskja, dökkur húðlitur og millihúðlitur',
     '🧑🏿‍❤‍🧑🏾' => 'par: manneskja, manneskja, dökkur húðlitur og meðaldökkur húðlitur',
+    '🧑🏻‍🐰‍🧑🏼' => 'kanínueyru: ljós húðlitur og meðalljós húðlitur',
+    '🧑🏻‍🐰‍🧑🏽' => 'kanínueyru: ljós húðlitur og millihúðlitur',
+    '🧑🏻‍🐰‍🧑🏾' => 'kanínueyru: ljós húðlitur og meðaldökkur húðlitur',
+    '🧑🏻‍🐰‍🧑🏿' => 'kanínueyru: ljós húðlitur og dökkur húðlitur',
+    '🧑🏼‍🐰‍🧑🏻' => 'kanínueyru: meðalljós húðlitur og ljós húðlitur',
+    '🧑🏼‍🐰‍🧑🏽' => 'kanínueyru: meðalljós húðlitur og millihúðlitur',
+    '🧑🏼‍🐰‍🧑🏾' => 'kanínueyru: meðalljós húðlitur og meðaldökkur húðlitur',
+    '🧑🏼‍🐰‍🧑🏿' => 'kanínueyru: meðalljós húðlitur og dökkur húðlitur',
+    '🧑🏽‍🐰‍🧑🏻' => 'kanínueyru: millihúðlitur og ljós húðlitur',
+    '🧑🏽‍🐰‍🧑🏼' => 'kanínueyru: millihúðlitur og meðalljós húðlitur',
+    '🧑🏽‍🐰‍🧑🏾' => 'kanínueyru: millihúðlitur og meðaldökkur húðlitur',
+    '🧑🏽‍🐰‍🧑🏿' => 'kanínueyru: millihúðlitur og dökkur húðlitur',
+    '🧑🏾‍🐰‍🧑🏻' => 'kanínueyru: meðaldökkur húðlitur og ljós húðlitur',
+    '🧑🏾‍🐰‍🧑🏼' => 'kanínueyru: meðaldökkur húðlitur og meðalljós húðlitur',
+    '🧑🏾‍🐰‍🧑🏽' => 'kanínueyru: meðaldökkur húðlitur og millihúðlitur',
+    '🧑🏾‍🐰‍🧑🏿' => 'kanínueyru: meðaldökkur húðlitur og dökkur húðlitur',
+    '🧑🏿‍🐰‍🧑🏻' => 'kanínueyru: dökkur húðlitur og ljós húðlitur',
+    '🧑🏿‍🐰‍🧑🏼' => 'kanínueyru: dökkur húðlitur og meðalljós húðlitur',
+    '🧑🏿‍🐰‍🧑🏽' => 'kanínueyru: dökkur húðlitur og millihúðlitur',
+    '🧑🏿‍🐰‍🧑🏾' => 'kanínueyru: dökkur húðlitur og meðaldökkur húðlitur',
+    '👨🏻‍🫯‍👨🏼' => 'menn í glímu: ljós húðlitur og meðalljós húðlitur',
+    '👨🏻‍🫯‍👨🏽' => 'menn í glímu: ljós húðlitur og millihúðlitur',
+    '👨🏻‍🫯‍👨🏾' => 'menn í glímu: ljós húðlitur og meðaldökkur húðlitur',
+    '👨🏻‍🫯‍👨🏿' => 'menn í glímu: ljós húðlitur og dökkur húðlitur',
+    '👨🏼‍🫯‍👨🏻' => 'menn í glímu: meðalljós húðlitur og ljós húðlitur',
+    '👨🏼‍🫯‍👨🏽' => 'menn í glímu: meðalljós húðlitur og millihúðlitur',
+    '👨🏼‍🫯‍👨🏾' => 'menn í glímu: meðalljós húðlitur og meðaldökkur húðlitur',
+    '👨🏼‍🫯‍👨🏿' => 'menn í glímu: meðalljós húðlitur og dökkur húðlitur',
+    '👨🏽‍🫯‍👨🏻' => 'menn í glímu: millihúðlitur og ljós húðlitur',
+    '👨🏽‍🫯‍👨🏼' => 'menn í glímu: millihúðlitur og meðalljós húðlitur',
+    '👨🏽‍🫯‍👨🏾' => 'menn í glímu: millihúðlitur og meðaldökkur húðlitur',
+    '👨🏽‍🫯‍👨🏿' => 'menn í glímu: millihúðlitur og dökkur húðlitur',
+    '👨🏾‍🫯‍👨🏻' => 'menn í glímu: meðaldökkur húðlitur og ljós húðlitur',
+    '👨🏾‍🫯‍👨🏼' => 'menn í glímu: meðaldökkur húðlitur og meðalljós húðlitur',
+    '👨🏾‍🫯‍👨🏽' => 'menn í glímu: meðaldökkur húðlitur og millihúðlitur',
+    '👨🏾‍🫯‍👨🏿' => 'menn í glímu: meðaldökkur húðlitur og dökkur húðlitur',
+    '👨🏿‍🫯‍👨🏻' => 'menn í glímu: dökkur húðlitur og ljós húðlitur',
+    '👨🏿‍🫯‍👨🏼' => 'menn í glímu: dökkur húðlitur og meðalljós húðlitur',
+    '👨🏿‍🫯‍👨🏽' => 'menn í glímu: dökkur húðlitur og millihúðlitur',
+    '👨🏿‍🫯‍👨🏾' => 'menn í glímu: dökkur húðlitur og meðaldökkur húðlitur',
     '👨🏻‍❤‍👨🏻' => 'par: karl, karl og ljós húðlitur',
     '👨🏻‍❤‍👨🏼' => 'par: karl, karl, ljós húðlitur og meðalljós húðlitur',
     '👨🏻‍❤‍👨🏽' => 'par: karl, karl, ljós húðlitur og millihúðlitur',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'par: karl, karl, dökkur húðlitur og millihúðlitur',
     '👨🏿‍❤‍👨🏾' => 'par: karl, karl, dökkur húðlitur og meðaldökkur húðlitur',
     '👨🏿‍❤‍👨🏿' => 'par: karl, karl og dökkur húðlitur',
+    '👨🏻‍🐰‍👨🏼' => 'menn með kanínueyru: ljós húðlitur og meðalljós húðlitur',
+    '👨🏻‍🐰‍👨🏽' => 'menn með kanínueyru: ljós húðlitur og millihúðlitur',
+    '👨🏻‍🐰‍👨🏾' => 'menn með kanínueyru: ljós húðlitur og meðaldökkur húðlitur',
+    '👨🏻‍🐰‍👨🏿' => 'menn með kanínueyru: ljós húðlitur og dökkur húðlitur',
+    '👨🏼‍🐰‍👨🏻' => 'menn með kanínueyru: meðalljós húðlitur og ljós húðlitur',
+    '👨🏼‍🐰‍👨🏽' => 'menn með kanínueyru: meðalljós húðlitur og millihúðlitur',
+    '👨🏼‍🐰‍👨🏾' => 'menn með kanínueyru: meðalljós húðlitur og meðaldökkur húðlitur',
+    '👨🏼‍🐰‍👨🏿' => 'menn með kanínueyru: meðalljós húðlitur og dökkur húðlitur',
+    '👨🏽‍🐰‍👨🏻' => 'menn með kanínueyru: millihúðlitur og ljós húðlitur',
+    '👨🏽‍🐰‍👨🏼' => 'menn með kanínueyru: millihúðlitur og meðalljós húðlitur',
+    '👨🏽‍🐰‍👨🏾' => 'menn með kanínueyru: millihúðlitur og meðaldökkur húðlitur',
+    '👨🏽‍🐰‍👨🏿' => 'menn með kanínueyru: millihúðlitur og dökkur húðlitur',
+    '👨🏾‍🐰‍👨🏻' => 'menn með kanínueyru: meðaldökkur húðlitur og ljós húðlitur',
+    '👨🏾‍🐰‍👨🏼' => 'menn með kanínueyru: meðaldökkur húðlitur og meðalljós húðlitur',
+    '👨🏾‍🐰‍👨🏽' => 'menn með kanínueyru: meðaldökkur húðlitur og millihúðlitur',
+    '👨🏾‍🐰‍👨🏿' => 'menn með kanínueyru: meðaldökkur húðlitur og dökkur húðlitur',
+    '👨🏿‍🐰‍👨🏻' => 'menn með kanínueyru: dökkur húðlitur og ljós húðlitur',
+    '👨🏿‍🐰‍👨🏼' => 'menn með kanínueyru: dökkur húðlitur og meðalljós húðlitur',
+    '👨🏿‍🐰‍👨🏽' => 'menn með kanínueyru: dökkur húðlitur og millihúðlitur',
+    '👨🏿‍🐰‍👨🏾' => 'menn með kanínueyru: dökkur húðlitur og meðaldökkur húðlitur',
+    '👩🏻‍🫯‍👩🏼' => 'konur í glímu: ljós húðlitur og meðalljós húðlitur',
+    '👩🏻‍🫯‍👩🏽' => 'konur í glímu: ljós húðlitur og millihúðlitur',
+    '👩🏻‍🫯‍👩🏾' => 'konur í glímu: ljós húðlitur og meðaldökkur húðlitur',
+    '👩🏻‍🫯‍👩🏿' => 'konur í glímu: ljós húðlitur og dökkur húðlitur',
+    '👩🏼‍🫯‍👩🏻' => 'konur í glímu: meðalljós húðlitur og ljós húðlitur',
+    '👩🏼‍🫯‍👩🏽' => 'konur í glímu: meðalljós húðlitur og millihúðlitur',
+    '👩🏼‍🫯‍👩🏾' => 'konur í glímu: meðalljós húðlitur og meðaldökkur húðlitur',
+    '👩🏼‍🫯‍👩🏿' => 'konur í glímu: meðalljós húðlitur og dökkur húðlitur',
+    '👩🏽‍🫯‍👩🏻' => 'konur í glímu: millihúðlitur og ljós húðlitur',
+    '👩🏽‍🫯‍👩🏼' => 'konur í glímu: millihúðlitur og meðalljós húðlitur',
+    '👩🏽‍🫯‍👩🏾' => 'konur í glímu: millihúðlitur og meðaldökkur húðlitur',
+    '👩🏽‍🫯‍👩🏿' => 'konur í glímu: millihúðlitur og dökkur húðlitur',
+    '👩🏾‍🫯‍👩🏻' => 'konur í glímu: meðaldökkur húðlitur og ljós húðlitur',
+    '👩🏾‍🫯‍👩🏼' => 'konur í glímu: meðaldökkur húðlitur og meðalljós húðlitur',
+    '👩🏾‍🫯‍👩🏽' => 'konur í glímu: meðaldökkur húðlitur og millihúðlitur',
+    '👩🏾‍🫯‍👩🏿' => 'konur í glímu: meðaldökkur húðlitur og dökkur húðlitur',
+    '👩🏿‍🫯‍👩🏻' => 'konur í glímu: dökkur húðlitur og ljós húðlitur',
+    '👩🏿‍🫯‍👩🏼' => 'konur í glímu: dökkur húðlitur og meðalljós húðlitur',
+    '👩🏿‍🫯‍👩🏽' => 'konur í glímu: dökkur húðlitur og millihúðlitur',
+    '👩🏿‍🫯‍👩🏾' => 'konur í glímu: dökkur húðlitur og meðaldökkur húðlitur',
     '👩🏻‍❤‍👨🏻' => 'par: kona, karl og ljós húðlitur',
     '👩🏻‍❤‍👨🏼' => 'par: kona, karl, ljós húðlitur og meðalljós húðlitur',
     '👩🏻‍❤‍👨🏽' => 'par: kona, karl, ljós húðlitur og millihúðlitur',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'par: kona, kona, dökkur húðlitur og millihúðlitur',
     '👩🏿‍❤‍👩🏾' => 'par: kona, kona, dökkur húðlitur og meðaldökkur húðlitur',
     '👩🏿‍❤‍👩🏿' => 'par: kona, kona og dökkur húðlitur',
+    '👩🏻‍🐰‍👩🏼' => 'konur með kanínueyru: ljós húðlitur og meðalljós húðlitur',
+    '👩🏻‍🐰‍👩🏽' => 'konur með kanínueyru: ljós húðlitur og millihúðlitur',
+    '👩🏻‍🐰‍👩🏾' => 'konur með kanínueyru: ljós húðlitur og meðaldökkur húðlitur',
+    '👩🏻‍🐰‍👩🏿' => 'konur með kanínueyru: ljós húðlitur og dökkur húðlitur',
+    '👩🏼‍🐰‍👩🏻' => 'konur með kanínueyru: meðalljós húðlitur og ljós húðlitur',
+    '👩🏼‍🐰‍👩🏽' => 'konur með kanínueyru: meðalljós húðlitur og millihúðlitur',
+    '👩🏼‍🐰‍👩🏾' => 'konur með kanínueyru: meðalljós húðlitur og meðaldökkur húðlitur',
+    '👩🏼‍🐰‍👩🏿' => 'konur með kanínueyru: meðalljós húðlitur og dökkur húðlitur',
+    '👩🏽‍🐰‍👩🏻' => 'konur með kanínueyru: millihúðlitur og ljós húðlitur',
+    '👩🏽‍🐰‍👩🏼' => 'konur með kanínueyru: millihúðlitur og meðalljós húðlitur',
+    '👩🏽‍🐰‍👩🏾' => 'konur með kanínueyru: millihúðlitur og meðaldökkur húðlitur',
+    '👩🏽‍🐰‍👩🏿' => 'konur með kanínueyru: millihúðlitur og dökkur húðlitur',
+    '👩🏾‍🐰‍👩🏻' => 'konur með kanínueyru: meðaldökkur húðlitur og ljós húðlitur',
+    '👩🏾‍🐰‍👩🏼' => 'konur með kanínueyru: meðaldökkur húðlitur og meðalljós húðlitur',
+    '👩🏾‍🐰‍👩🏽' => 'konur með kanínueyru: meðaldökkur húðlitur og millihúðlitur',
+    '👩🏾‍🐰‍👩🏿' => 'konur með kanínueyru: meðaldökkur húðlitur og dökkur húðlitur',
+    '👩🏿‍🐰‍👩🏻' => 'konur með kanínueyru: dökkur húðlitur og ljós húðlitur',
+    '👩🏿‍🐰‍👩🏼' => 'konur með kanínueyru: dökkur húðlitur og meðalljós húðlitur',
+    '👩🏿‍🐰‍👩🏽' => 'konur með kanínueyru: dökkur húðlitur og millihúðlitur',
+    '👩🏿‍🐰‍👩🏾' => 'konur með kanínueyru: dökkur húðlitur og meðaldökkur húðlitur',
     '🧑🏻‍🤝‍🧑🏻' => 'fólk að leiðast: ljós húðlitur',
     '🧑🏻‍🤝‍🧑🏼' => 'fólk að leiðast: ljós húðlitur og meðalljós húðlitur',
     '🧑🏻‍🤝‍🧑🏽' => 'fólk að leiðast: ljós húðlitur og millihúðlitur',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'fáni: Skotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'fáni: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'fjölskylda: fullorðinn, fullorðinn, barn, barn',
-    '🚶🏻‍♀‍➡' => 'gangandi kona snýr til hægri',
-    '🚶🏼‍♀‍➡' => 'gangandi kona snýr til hægri',
-    '🚶🏽‍♀‍➡' => 'gangandi kona snýr til hægri',
-    '🚶🏾‍♀‍➡' => 'gangandi kona snýr til hægri',
-    '🚶🏿‍♀‍➡' => 'gangandi kona snýr til hægri',
-    '🚶🏻‍♂‍➡' => 'gangandi maður snýr til hægri',
-    '🚶🏼‍♂‍➡' => 'gangandi maður snýr til hægri',
-    '🚶🏽‍♂‍➡' => 'gangandi maður snýr til hægri',
-    '🚶🏾‍♂‍➡' => 'gangandi maður snýr til hægri',
-    '🚶🏿‍♂‍➡' => 'gangandi maður snýr til hægri',
-    '🧎🏻‍♀‍➡' => 'krjúpandi kona snýr til hægri',
-    '🧎🏼‍♀‍➡' => 'krjúpandi kona snýr til hægri',
-    '🧎🏽‍♀‍➡' => 'krjúpandi kona snýr til hægri',
-    '🧎🏾‍♀‍➡' => 'krjúpandi kona snýr til hægri',
-    '🧎🏿‍♀‍➡' => 'krjúpandi kona snýr til hægri',
-    '🧎🏻‍♂‍➡' => 'krjúpandi maður snýr til hægri',
-    '🧎🏼‍♂‍➡' => 'krjúpandi maður snýr til hægri',
-    '🧎🏽‍♂‍➡' => 'krjúpandi maður snýr til hægri',
-    '🧎🏾‍♂‍➡' => 'krjúpandi maður snýr til hægri',
-    '🧎🏿‍♂‍➡' => 'krjúpandi maður snýr til hægri',
-    '🧑🏻‍🦯‍➡' => 'manneskja með blindrastaf snýr til hægri',
-    '🧑🏼‍🦯‍➡' => 'manneskja með blindrastaf snýr til hægri',
-    '🧑🏽‍🦯‍➡' => 'manneskja með blindrastaf snýr til hægri',
-    '🧑🏾‍🦯‍➡' => 'manneskja með blindrastaf snýr til hægri',
-    '🧑🏿‍🦯‍➡' => 'manneskja með blindrastaf snýr til hægri',
-    '👨🏻‍🦯‍➡' => 'maður með blindrastaf snýr til hægri',
-    '👨🏼‍🦯‍➡' => 'maður með blindrastaf snýr til hægri',
-    '👨🏽‍🦯‍➡' => 'maður með blindrastaf snýr til hægri',
-    '👨🏾‍🦯‍➡' => 'maður með blindrastaf snýr til hægri',
-    '👨🏿‍🦯‍➡' => 'maður með blindrastaf snýr til hægri',
-    '👩🏻‍🦯‍➡' => 'kona með blindrastaf snýr til hægri',
-    '👩🏼‍🦯‍➡' => 'kona með blindrastaf snýr til hægri',
-    '👩🏽‍🦯‍➡' => 'kona með blindrastaf snýr til hægri',
-    '👩🏾‍🦯‍➡' => 'kona með blindrastaf snýr til hægri',
-    '👩🏿‍🦯‍➡' => 'kona með blindrastaf snýr til hægri',
-    '🧑🏻‍🦼‍➡' => 'manneskja í vélknúnum hjólastól snýr til hægri',
-    '🧑🏼‍🦼‍➡' => 'manneskja í vélknúnum hjólastól snýr til hægri',
-    '🧑🏽‍🦼‍➡' => 'manneskja í vélknúnum hjólastól snýr til hægri',
-    '🧑🏾‍🦼‍➡' => 'manneskja í vélknúnum hjólastól snýr til hægri',
-    '🧑🏿‍🦼‍➡' => 'manneskja í vélknúnum hjólastól snýr til hægri',
-    '👨🏻‍🦼‍➡' => 'maður í vélknúnum hjólastól snýr til hægri',
-    '👨🏼‍🦼‍➡' => 'maður í vélknúnum hjólastól snýr til hægri',
-    '👨🏽‍🦼‍➡' => 'maður í vélknúnum hjólastól snýr til hægri',
-    '👨🏾‍🦼‍➡' => 'maður í vélknúnum hjólastól snýr til hægri',
-    '👨🏿‍🦼‍➡' => 'maður í vélknúnum hjólastól snýr til hægri',
-    '👩🏻‍🦼‍➡' => 'kona í vélknúnum hjólastól snýr til hægri',
-    '👩🏼‍🦼‍➡' => 'kona í vélknúnum hjólastól snýr til hægri',
-    '👩🏽‍🦼‍➡' => 'kona í vélknúnum hjólastól snýr til hægri',
-    '👩🏾‍🦼‍➡' => 'kona í vélknúnum hjólastól snýr til hægri',
-    '👩🏿‍🦼‍➡' => 'kona í vélknúnum hjólastól snýr til hægri',
-    '🧑🏻‍🦽‍➡' => 'manneskja í hjólastól snýr til hægri',
-    '🧑🏼‍🦽‍➡' => 'manneskja í hjólastól snýr til hægri',
-    '🧑🏽‍🦽‍➡' => 'manneskja í hjólastól snýr til hægri',
-    '🧑🏾‍🦽‍➡' => 'manneskja í hjólastól snýr til hægri',
-    '🧑🏿‍🦽‍➡' => 'manneskja í hjólastól snýr til hægri',
-    '👨🏻‍🦽‍➡' => 'maður í hjólastól snýr til hægri',
-    '👨🏼‍🦽‍➡' => 'maður í hjólastól snýr til hægri',
-    '👨🏽‍🦽‍➡' => 'maður í hjólastól snýr til hægri',
-    '👨🏾‍🦽‍➡' => 'maður í hjólastól snýr til hægri',
-    '👨🏿‍🦽‍➡' => 'maður í hjólastól snýr til hægri',
-    '👩🏻‍🦽‍➡' => 'kona í hjólastól snýr til hægri',
-    '👩🏼‍🦽‍➡' => 'kona í hjólastól snýr til hægri',
-    '👩🏽‍🦽‍➡' => 'kona í hjólastól snýr til hægri',
-    '👩🏾‍🦽‍➡' => 'kona í hjólastól snýr til hægri',
-    '👩🏿‍🦽‍➡' => 'kona í hjólastól snýr til hægri',
-    '🏃🏻‍♀‍➡' => 'hlaupandi kona snýr til hægri',
-    '🏃🏼‍♀‍➡' => 'hlaupandi kona snýr til hægri',
-    '🏃🏽‍♀‍➡' => 'hlaupandi kona snýr til hægri',
-    '🏃🏾‍♀‍➡' => 'hlaupandi kona snýr til hægri',
-    '🏃🏿‍♀‍➡' => 'hlaupandi kona snýr til hægri',
-    '🏃🏻‍♂‍➡' => 'hlaupandi maður snýr til hægri',
-    '🏃🏼‍♂‍➡' => 'hlaupandi maður snýr til hægri',
-    '🏃🏽‍♂‍➡' => 'hlaupandi maður snýr til hægri',
-    '🏃🏾‍♂‍➡' => 'hlaupandi maður snýr til hægri',
-    '🏃🏿‍♂‍➡' => 'hlaupandi maður snýr til hægri',
+    '🚶🏻‍♀‍➡' => 'gangandi kona: ljós húðlitur og snýr til hægri',
+    '🚶🏼‍♀‍➡' => 'gangandi kona: meðalljós húðlitur og snýr til hægri',
+    '🚶🏽‍♀‍➡' => 'gangandi kona: millihúðlitur og snýr til hægri',
+    '🚶🏾‍♀‍➡' => 'gangandi kona: meðaldökkur húðlitur og snýr til hægri',
+    '🚶🏿‍♀‍➡' => 'gangandi kona: dökkur húðlitur og snýr til hægri',
+    '🚶🏻‍♂‍➡' => 'gangandi maður: ljós húðlitur og snýr til hægri',
+    '🚶🏼‍♂‍➡' => 'gangandi maður: meðalljós húðlitur og snýr til hægri',
+    '🚶🏽‍♂‍➡' => 'gangandi maður: millihúðlitur og snýr til hægri',
+    '🚶🏾‍♂‍➡' => 'gangandi maður: meðaldökkur húðlitur og snýr til hægri',
+    '🚶🏿‍♂‍➡' => 'gangandi maður: dökkur húðlitur og snýr til hægri',
+    '🧎🏻‍♀‍➡' => 'krjúpandi kona: ljós húðlitur og snýr til hægri',
+    '🧎🏼‍♀‍➡' => 'krjúpandi kona: meðalljós húðlitur og snýr til hægri',
+    '🧎🏽‍♀‍➡' => 'krjúpandi kona: millihúðlitur og snýr til hægri',
+    '🧎🏾‍♀‍➡' => 'krjúpandi kona: meðaldökkur húðlitur og snýr til hægri',
+    '🧎🏿‍♀‍➡' => 'krjúpandi kona: dökkur húðlitur og snýr til hægri',
+    '🧎🏻‍♂‍➡' => 'krjúpandi maður: ljós húðlitur og snýr til hægri',
+    '🧎🏼‍♂‍➡' => 'krjúpandi maður: meðalljós húðlitur og snýr til hægri',
+    '🧎🏽‍♂‍➡' => 'krjúpandi maður: millihúðlitur og snýr til hægri',
+    '🧎🏾‍♂‍➡' => 'krjúpandi maður: meðaldökkur húðlitur og snýr til hægri',
+    '🧎🏿‍♂‍➡' => 'krjúpandi maður: dökkur húðlitur og snýr til hægri',
+    '🧑🏻‍🦯‍➡' => 'manneskja með blindrastaf: ljós húðlitur og snýr til hægri',
+    '🧑🏼‍🦯‍➡' => 'manneskja með blindrastaf: meðalljós húðlitur og snýr til hægri',
+    '🧑🏽‍🦯‍➡' => 'manneskja með blindrastaf: millihúðlitur og snýr til hægri',
+    '🧑🏾‍🦯‍➡' => 'manneskja með blindrastaf: meðaldökkur húðlitur og snýr til hægri',
+    '🧑🏿‍🦯‍➡' => 'manneskja með blindrastaf: dökkur húðlitur og snýr til hægri',
+    '👨🏻‍🦯‍➡' => 'maður með blindrastaf: ljós húðlitur og snýr til hægri',
+    '👨🏼‍🦯‍➡' => 'maður með blindrastaf: meðalljós húðlitur og snýr til hægri',
+    '👨🏽‍🦯‍➡' => 'maður með blindrastaf: millihúðlitur og snýr til hægri',
+    '👨🏾‍🦯‍➡' => 'maður með blindrastaf: meðaldökkur húðlitur og snýr til hægri',
+    '👨🏿‍🦯‍➡' => 'maður með blindrastaf: dökkur húðlitur og snýr til hægri',
+    '👩🏻‍🦯‍➡' => 'kona með blindrastaf: ljós húðlitur og snýr til hægri',
+    '👩🏼‍🦯‍➡' => 'kona með blindrastaf: meðalljós húðlitur og snýr til hægri',
+    '👩🏽‍🦯‍➡' => 'kona með blindrastaf: millihúðlitur og snýr til hægri',
+    '👩🏾‍🦯‍➡' => 'kona með blindrastaf: meðaldökkur húðlitur og snýr til hægri',
+    '👩🏿‍🦯‍➡' => 'kona með blindrastaf: dökkur húðlitur og snýr til hægri',
+    '🧑🏻‍🦼‍➡' => 'manneskja í vélknúnum hjólastól: ljós húðlitur og snýr til hægri',
+    '🧑🏼‍🦼‍➡' => 'manneskja í vélknúnum hjólastól: meðalljós húðlitur og snýr til hægri',
+    '🧑🏽‍🦼‍➡' => 'manneskja í vélknúnum hjólastól: millihúðlitur og snýr til hægri',
+    '🧑🏾‍🦼‍➡' => 'manneskja í vélknúnum hjólastól: meðaldökkur húðlitur og snýr til hægri',
+    '🧑🏿‍🦼‍➡' => 'manneskja í vélknúnum hjólastól: dökkur húðlitur og snýr til hægri',
+    '👨🏻‍🦼‍➡' => 'maður í vélknúnum hjólastól: ljós húðlitur og snýr til hægri',
+    '👨🏼‍🦼‍➡' => 'maður í vélknúnum hjólastól: meðalljós húðlitur og snýr til hægri',
+    '👨🏽‍🦼‍➡' => 'maður í vélknúnum hjólastól: millihúðlitur og snýr til hægri',
+    '👨🏾‍🦼‍➡' => 'maður í vélknúnum hjólastól: meðaldökkur húðlitur og snýr til hægri',
+    '👨🏿‍🦼‍➡' => 'maður í vélknúnum hjólastól: dökkur húðlitur og snýr til hægri',
+    '👩🏻‍🦼‍➡' => 'kona í vélknúnum hjólastól: ljós húðlitur og snýr til hægri',
+    '👩🏼‍🦼‍➡' => 'kona í vélknúnum hjólastól: meðalljós húðlitur og snýr til hægri',
+    '👩🏽‍🦼‍➡' => 'kona í vélknúnum hjólastól: millihúðlitur og snýr til hægri',
+    '👩🏾‍🦼‍➡' => 'kona í vélknúnum hjólastól: meðaldökkur húðlitur og snýr til hægri',
+    '👩🏿‍🦼‍➡' => 'kona í vélknúnum hjólastól: dökkur húðlitur og snýr til hægri',
+    '🧑🏻‍🦽‍➡' => 'manneskja í hjólastól: ljós húðlitur og snýr til hægri',
+    '🧑🏼‍🦽‍➡' => 'manneskja í hjólastól: meðalljós húðlitur og snýr til hægri',
+    '🧑🏽‍🦽‍➡' => 'manneskja í hjólastól: millihúðlitur og snýr til hægri',
+    '🧑🏾‍🦽‍➡' => 'manneskja í hjólastól: meðaldökkur húðlitur og snýr til hægri',
+    '🧑🏿‍🦽‍➡' => 'manneskja í hjólastól: dökkur húðlitur og snýr til hægri',
+    '👨🏻‍🦽‍➡' => 'maður í hjólastól: ljós húðlitur og snýr til hægri',
+    '👨🏼‍🦽‍➡' => 'maður í hjólastól: meðalljós húðlitur og snýr til hægri',
+    '👨🏽‍🦽‍➡' => 'maður í hjólastól: millihúðlitur og snýr til hægri',
+    '👨🏾‍🦽‍➡' => 'maður í hjólastól: meðaldökkur húðlitur og snýr til hægri',
+    '👨🏿‍🦽‍➡' => 'maður í hjólastól: dökkur húðlitur og snýr til hægri',
+    '👩🏻‍🦽‍➡' => 'kona í hjólastól: ljós húðlitur og snýr til hægri',
+    '👩🏼‍🦽‍➡' => 'kona í hjólastól: meðalljós húðlitur og snýr til hægri',
+    '👩🏽‍🦽‍➡' => 'kona í hjólastól: millihúðlitur og snýr til hægri',
+    '👩🏾‍🦽‍➡' => 'kona í hjólastól: meðaldökkur húðlitur og snýr til hægri',
+    '👩🏿‍🦽‍➡' => 'kona í hjólastól: dökkur húðlitur og snýr til hægri',
+    '🏃🏻‍♀‍➡' => 'hlaupandi kona: ljós húðlitur og snýr til hægri',
+    '🏃🏼‍♀‍➡' => 'hlaupandi kona: meðalljós húðlitur og snýr til hægri',
+    '🏃🏽‍♀‍➡' => 'hlaupandi kona: millihúðlitur og snýr til hægri',
+    '🏃🏾‍♀‍➡' => 'hlaupandi kona: meðaldökkur húðlitur og snýr til hægri',
+    '🏃🏿‍♀‍➡' => 'hlaupandi kona: dökkur húðlitur og snýr til hægri',
+    '🏃🏻‍♂‍➡' => 'hlaupandi maður: ljós húðlitur og snýr til hægri',
+    '🏃🏼‍♂‍➡' => 'hlaupandi maður: meðalljós húðlitur og snýr til hægri',
+    '🏃🏽‍♂‍➡' => 'hlaupandi maður: millihúðlitur og snýr til hægri',
+    '🏃🏾‍♂‍➡' => 'hlaupandi maður: meðaldökkur húðlitur og snýr til hægri',
+    '🏃🏿‍♂‍➡' => 'hlaupandi maður: dökkur húðlitur og snýr til hægri',
     '🫱🏻‍🫲🏼' => 'handaband: ljós húðlitur og meðalljós húðlitur',
     '🫱🏻‍🫲🏽' => 'handaband: ljós húðlitur og millihúðlitur',
     '🫱🏻‍🫲🏾' => 'handaband: ljós húðlitur og meðaldökkur húðlitur',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handaband: dökkur húðlitur og meðalljós húðlitur',
     '🫱🏿‍🫲🏽' => 'handaband: dökkur húðlitur og millihúðlitur',
     '🫱🏿‍🫲🏾' => 'handaband: dökkur húðlitur og meðaldökkur húðlitur',
-    '🚶‍♀‍➡' => 'gangandi kona snýr til hægri',
-    '🚶‍♂‍➡' => 'gangandi maður snýr til hægri',
-    '🧎‍♀‍➡' => 'krjúpandi kona snýr til hægri',
-    '🧎‍♂‍➡' => 'krjúpandi maður snýr til hægri',
-    '🧑‍🦯‍➡' => 'manneskja með blindrastaf snýr til hægri',
-    '👨‍🦯‍➡' => 'maður með blindrastaf snýr til hægri',
-    '👩‍🦯‍➡' => 'kona með blindrastaf snýr til hægri',
-    '🧑‍🦼‍➡' => 'manneskja í vélknúnum hjólastól snýr til hægri',
-    '👨‍🦼‍➡' => 'maður í vélknúnum hjólastól snýr til hægri',
-    '👩‍🦼‍➡' => 'kona í vélknúnum hjólastól snýr til hægri',
-    '🧑‍🦽‍➡' => 'manneskja í hjólastól snýr til hægri',
-    '👨‍🦽‍➡' => 'maður í hjólastól snýr til hægri',
-    '👩‍🦽‍➡' => 'kona í hjólastól snýr til hægri',
-    '🏃‍♀‍➡' => 'hlaupandi kona snýr til hægri',
-    '🏃‍♂‍➡' => 'hlaupandi maður snýr til hægri',
+    '🚶‍♀‍➡' => 'gangandi kona: snýr til hægri',
+    '🚶‍♂‍➡' => 'gangandi maður: snýr til hægri',
+    '🧎‍♀‍➡' => 'krjúpandi kona: snýr til hægri',
+    '🧎‍♂‍➡' => 'krjúpandi maður: snýr til hægri',
+    '🧑‍🦯‍➡' => 'manneskja með blindrastaf: snýr til hægri',
+    '👨‍🦯‍➡' => 'maður með blindrastaf: snýr til hægri',
+    '👩‍🦯‍➡' => 'kona með blindrastaf: snýr til hægri',
+    '🧑‍🦼‍➡' => 'manneskja í vélknúnum hjólastól: snýr til hægri',
+    '👨‍🦼‍➡' => 'maður í vélknúnum hjólastól: snýr til hægri',
+    '👩‍🦼‍➡' => 'kona í vélknúnum hjólastól: snýr til hægri',
+    '🧑‍🦽‍➡' => 'manneskja í hjólastól: snýr til hægri',
+    '👨‍🦽‍➡' => 'maður í hjólastól: snýr til hægri',
+    '👩‍🦽‍➡' => 'kona í hjólastól: snýr til hægri',
+    '🏃‍♀‍➡' => 'hlaupandi kona: snýr til hægri',
+    '🏃‍♂‍➡' => 'hlaupandi maður: snýr til hægri',
     '👩‍❤‍👨' => 'par: kona og karl',
     '👨‍❤‍👨' => 'par: karl og karl',
     '👩‍❤‍👩' => 'par: kona og kona',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'manneskja: millihúðlitur og skalli',
     '🧑🏾‍🦲' => 'manneskja: meðaldökkur húðlitur og skalli',
     '🧑🏿‍🦲' => 'manneskja: dökkur húðlitur og skalli',
+    '🧑🏻‍🩰' => 'ballettdansari: ljós húðlitur',
+    '🧑🏼‍🩰' => 'ballettdansari: meðalljós húðlitur',
+    '🧑🏽‍🩰' => 'ballettdansari: millihúðlitur',
+    '🧑🏾‍🩰' => 'ballettdansari: meðaldökkur húðlitur',
+    '🧑🏿‍🩰' => 'ballettdansari: dökkur húðlitur',
     '🧔🏻‍♂' => 'karl: ljós húðlitur og skegg',
     '🧔🏼‍♂' => 'karl: meðalljós húðlitur og skegg',
     '🧔🏽‍♂' => 'karl: millihúðlitur og skegg',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'gangandi kona: millihúðlitur',
     '🚶🏾‍♀' => 'gangandi kona: meðaldökkur húðlitur',
     '🚶🏿‍♀' => 'gangandi kona: dökkur húðlitur',
-    '🚶🏻‍➡' => 'vegfarandi snýr til hægri',
-    '🚶🏼‍➡' => 'vegfarandi snýr til hægri',
-    '🚶🏽‍➡' => 'vegfarandi snýr til hægri',
-    '🚶🏾‍➡' => 'vegfarandi snýr til hægri',
-    '🚶🏿‍➡' => 'vegfarandi snýr til hægri',
+    '🚶🏻‍➡' => 'vegfarandi: ljós húðlitur og snýr til hægri',
+    '🚶🏼‍➡' => 'vegfarandi: meðalljós húðlitur og snýr til hægri',
+    '🚶🏽‍➡' => 'vegfarandi: millihúðlitur og snýr til hægri',
+    '🚶🏾‍➡' => 'vegfarandi: meðaldökkur húðlitur og snýr til hægri',
+    '🚶🏿‍➡' => 'vegfarandi: dökkur húðlitur og snýr til hægri',
     '🧍🏻‍♂' => 'standandi maður: ljós húðlitur',
     '🧍🏼‍♂' => 'standandi maður: meðalljós húðlitur',
     '🧍🏽‍♂' => 'standandi maður: millihúðlitur',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'krjúpandi kona: millihúðlitur',
     '🧎🏾‍♀' => 'krjúpandi kona: meðaldökkur húðlitur',
     '🧎🏿‍♀' => 'krjúpandi kona: dökkur húðlitur',
-    '🧎🏻‍➡' => 'krjúpandi manneskja snýr til hægri',
-    '🧎🏼‍➡' => 'krjúpandi manneskja snýr til hægri',
-    '🧎🏽‍➡' => 'krjúpandi manneskja snýr til hægri',
-    '🧎🏾‍➡' => 'krjúpandi manneskja snýr til hægri',
-    '🧎🏿‍➡' => 'krjúpandi manneskja snýr til hægri',
+    '🧎🏻‍➡' => 'krjúpandi manneskja: ljós húðlitur og snýr til hægri',
+    '🧎🏼‍➡' => 'krjúpandi manneskja: meðalljós húðlitur og snýr til hægri',
+    '🧎🏽‍➡' => 'krjúpandi manneskja: millihúðlitur og snýr til hægri',
+    '🧎🏾‍➡' => 'krjúpandi manneskja: meðaldökkur húðlitur og snýr til hægri',
+    '🧎🏿‍➡' => 'krjúpandi manneskja: dökkur húðlitur og snýr til hægri',
     '🧑🏻‍🦯' => 'manneskja með blindrastaf: ljós húðlitur',
     '🧑🏼‍🦯' => 'manneskja með blindrastaf: meðalljós húðlitur',
     '🧑🏽‍🦯' => 'manneskja með blindrastaf: millihúðlitur',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'hlaupandi kona: millihúðlitur',
     '🏃🏾‍♀' => 'hlaupandi kona: meðaldökkur húðlitur',
     '🏃🏿‍♀' => 'hlaupandi kona: dökkur húðlitur',
-    '🏃🏻‍➡' => 'hlaupari snýr til hægri',
-    '🏃🏼‍➡' => 'hlaupari snýr til hægri',
-    '🏃🏽‍➡' => 'hlaupari snýr til hægri',
-    '🏃🏾‍➡' => 'hlaupari snýr til hægri',
-    '🏃🏿‍➡' => 'hlaupari snýr til hægri',
+    '🏃🏻‍➡' => 'hlaupari: ljós húðlitur og snýr til hægri',
+    '🏃🏼‍➡' => 'hlaupari: meðalljós húðlitur og snýr til hægri',
+    '🏃🏽‍➡' => 'hlaupari: millihúðlitur og snýr til hægri',
+    '🏃🏾‍➡' => 'hlaupari: meðaldökkur húðlitur og snýr til hægri',
+    '🏃🏿‍➡' => 'hlaupari: dökkur húðlitur og snýr til hægri',
+    '👯🏻‍♀' => 'konur með kanínueyru: ljós húðlitur',
+    '👯🏼‍♀' => 'konur með kanínueyru: meðalljós húðlitur',
+    '👯🏽‍♀' => 'konur með kanínueyru: millihúðlitur',
+    '👯🏾‍♀' => 'konur með kanínueyru: meðaldökkur húðlitur',
+    '👯🏿‍♀' => 'konur með kanínueyru: dökkur húðlitur',
+    '👯🏻‍♂' => 'menn með kanínueyru: ljós húðlitur',
+    '👯🏼‍♂' => 'menn með kanínueyru: meðalljós húðlitur',
+    '👯🏽‍♂' => 'menn með kanínueyru: millihúðlitur',
+    '👯🏾‍♂' => 'menn með kanínueyru: meðaldökkur húðlitur',
+    '👯🏿‍♂' => 'menn með kanínueyru: dökkur húðlitur',
     '🧖🏻‍♂' => 'maður í gufubaði: ljós húðlitur',
     '🧖🏼‍♂' => 'maður í gufubaði: meðalljós húðlitur',
     '🧖🏽‍♂' => 'maður í gufubaði: millihúðlitur',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'kona á handahlaupum: millihúðlitur',
     '🤸🏾‍♀' => 'kona á handahlaupum: meðaldökkur húðlitur',
     '🤸🏿‍♀' => 'kona á handahlaupum: dökkur húðlitur',
+    '🤼🏻‍♀' => 'konur í glímu: ljós húðlitur',
+    '🤼🏼‍♀' => 'konur í glímu: meðalljós húðlitur',
+    '🤼🏽‍♀' => 'konur í glímu: millihúðlitur',
+    '🤼🏾‍♀' => 'konur í glímu: meðaldökkur húðlitur',
+    '🤼🏿‍♀' => 'konur í glímu: dökkur húðlitur',
+    '🤼🏻‍♂' => 'menn í glímu: ljós húðlitur',
+    '🤼🏼‍♂' => 'menn í glímu: meðalljós húðlitur',
+    '🤼🏽‍♂' => 'menn í glímu: millihúðlitur',
+    '🤼🏾‍♂' => 'menn í glímu: meðaldökkur húðlitur',
+    '🤼🏿‍♂' => 'menn í glímu: dökkur húðlitur',
     '🤽🏻‍♂' => 'maður í vatnapóló: ljós húðlitur',
     '🤽🏼‍♂' => 'maður í vatnapóló: meðalljós húðlitur',
     '🤽🏽‍♂' => 'maður í vatnapóló: millihúðlitur',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'kona: krullur',
     '👩‍🦳' => 'kona: hvítt hár',
     '👩‍🦲' => 'kona: skalli',
-    '🚶‍➡' => 'vegfarandi snýr til hægri',
-    '🧎‍➡' => 'krjúpandi manneskja snýr til hægri',
-    '🏃‍➡' => 'hlaupari snýr til hægri',
+    '🚶‍➡' => 'vegfarandi: snýr til hægri',
+    '🧎‍➡' => 'krjúpandi manneskja: snýr til hægri',
+    '🏃‍➡' => 'hlaupari: snýr til hægri',
     '👨‍👦' => 'fjölskylda: karl og drengur',
     '👨‍👧' => 'fjölskylda: karl og stúlka',
     '👩‍👦' => 'fjölskylda: kona og drengur',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'kona í hjólastól',
     '🏃‍♂' => 'hlaupandi maður',
     '🏃‍♀' => 'hlaupandi kona',
+    '🧑‍🩰' => 'ballettdansari',
     '👯‍♂' => 'menn með kanínueyru',
     '👯‍♀' => 'konur með kanínueyru',
     '🧖‍♂' => 'maður í gufubaði',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'svífandi bisnessmaður í jakkafötum: millihúðlitur',
     '🕴🏾' => 'svífandi bisnessmaður í jakkafötum: meðaldökkur húðlitur',
     '🕴🏿' => 'svífandi bisnessmaður í jakkafötum: dökkur húðlitur',
+    '👯🏻' => 'kanínueyru: ljós húðlitur',
+    '👯🏼' => 'kanínueyru: meðalljós húðlitur',
+    '👯🏽' => 'kanínueyru: millihúðlitur',
+    '👯🏾' => 'kanínueyru: meðaldökkur húðlitur',
+    '👯🏿' => 'kanínueyru: dökkur húðlitur',
     '🧖🏻' => 'einstaklingur í gufubaði: ljós húðlitur',
     '🧖🏼' => 'einstaklingur í gufubaði: meðalljós húðlitur',
     '🧖🏽' => 'einstaklingur í gufubaði: millihúðlitur',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'handahlaup: millihúðlitur',
     '🤸🏾' => 'handahlaup: meðaldökkur húðlitur',
     '🤸🏿' => 'handahlaup: dökkur húðlitur',
+    '🤼🏻' => 'glíma: ljós húðlitur',
+    '🤼🏼' => 'glíma: meðalljós húðlitur',
+    '🤼🏽' => 'glíma: millihúðlitur',
+    '🤼🏾' => 'glíma: meðaldökkur húðlitur',
+    '🤼🏿' => 'glíma: dökkur húðlitur',
     '🤽🏻' => 'manneskja í vatnapóló: ljós húðlitur',
     '🤽🏼' => 'manneskja í vatnapóló: meðalljós húðlitur',
     '🤽🏽' => 'manneskja í vatnapóló: millihúðlitur',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'fáni: Kína',
     '🇨🇴' => 'fáni: Kólumbía',
     '🇨🇵' => 'fáni: Clipperton-eyja',
+    '🇨🇶' => 'fáni: Sark',
     '🇨🇷' => 'fáni: Kostaríka',
     '🇨🇺' => 'fáni: Kúba',
     '🇨🇻' => 'fáni: Grænhöfðaeyjar',
@@ -2390,13 +2547,6 @@
     '🏽' => 'millihúðlitur',
     '🏾' => 'meðaldökkur húðlitur',
     '🏿' => 'dökkur húðlitur',
-    '🪉' => 'harpa',
-    '🪏' => 'skófla',
-    '🪾' => 'blaðlaust tré',
-    '🫆' => 'fingrafar',
-    '🫜' => 'rótargrænmeti',
-    '🫟' => 'sletta',
-    '🫩' => 'andlit með poka undir augum',
     '😀' => 'glottandi andlit',
     '😃' => 'brosandi andlit með opinn munn',
     '😄' => 'hlæjandi andlit',
@@ -2450,6 +2600,7 @@
     '😪' => 'syfjað andlit',
     '🤤' => 'slefandi',
     '😴' => 'sofandi',
+    '🫩' => 'andlit með poka undir augum',
     '😷' => 'andlit með grímu',
     '🤒' => 'andlit með hitamæli í munninum',
     '🤕' => 'andlit með sárabindi',
@@ -2476,6 +2627,7 @@
     '😯' => 'undrandi andlit',
     '😲' => 'stórundrandi andlit',
     '😳' => 'andlit að roðna',
+    '🫪' => 'afmyndað andlit',
     '🥺' => 'biðjandi andlit',
     '🥹' => 'andlit að berjast við tárin',
     '😦' => 'leitt andlit',
@@ -2547,6 +2699,7 @@
     '💋' => 'kossafar',
     '💯' => 'fullt hús',
     '💢' => 'reiði',
+    '🫯' => 'rifrildisský',
     '💥' => 'árekstur',
     '💫' => 'ringlaður',
     '💦' => 'svitadropar',
@@ -2670,6 +2823,7 @@
     '🧞' => 'andi',
     '🧟' => 'uppvakningur',
     '🧌' => 'jarðálfur',
+    '🫈' => 'loðin skepna',
     '💆' => 'andlitsnudd',
     '💇' => 'klipping',
     '🚶' => 'vegfarandi',
@@ -2713,6 +2867,7 @@
     '🫂' => 'fólk að faðmast',
     '👪' => 'fjölskylda',
     '👣' => 'fótspor',
+    '🫆' => 'fingrafar',
     '🦰' => 'rautt hár',
     '🦱' => 'krullur',
     '🦳' => 'hvítt hár',
@@ -2812,6 +2967,7 @@
     '🐳' => 'blásandi hvalur',
     '🐋' => 'hvalur',
     '🐬' => 'höfrungur',
+    '🫍' => 'háhyrningur',
     '🦭' => 'selur',
     '🐟' => 'fiskur',
     '🐠' => 'hitabeltisfiskur',
@@ -2821,6 +2977,11 @@
     '🐚' => 'kuðungur',
     '🪸' => 'kórall',
     '🪼' => 'marglytta',
+    '🦀' => 'krabbi',
+    '🦞' => 'humar',
+    '🦐' => 'rækja',
+    '🦑' => 'smokkfiskur',
+    '🦪' => 'ostra',
     '🐌' => 'snigill',
     '🦋' => 'fiðrildi',
     '🐛' => 'skordýr',
@@ -2865,6 +3026,7 @@
     '🪹' => 'tómt hreiður',
     '🪺' => 'hreiður með eggjum',
     '🍄' => 'sveppur',
+    '🪾' => 'blaðlaust tré',
     '🍇' => 'vínber',
     '🍈' => 'melóna',
     '🍉' => 'vatnsmelóna',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kastanía',
     '🫚' => 'engiferrót',
     '🫛' => 'baunabelgur',
+    '🫜' => 'rótargrænmeti',
     '🍞' => 'brauð',
     '🥐' => 'smjördeigshorn',
     '🥖' => 'fransbrauð',
@@ -2952,11 +3115,6 @@
     '🥟' => 'soðkaka',
     '🥠' => 'spádómskaka',
     '🥡' => 'takeaway-box',
-    '🦀' => 'krabbi',
-    '🦞' => 'humar',
-    '🦐' => 'rækja',
-    '🦑' => 'smokkfiskur',
-    '🦪' => 'ostra',
     '🍦' => 'rjómaís',
     '🍧' => 'skafís',
     '🍨' => 'kúluís',
@@ -3007,6 +3165,7 @@
     '🧭' => 'áttaviti',
     '🏔' => 'snæviþakinn fjallstindur',
     '⛰' => 'fjall',
+    '🛘' => 'skriða',
     '🌋' => 'eldfjall',
     '🗻' => 'fuji-fjall',
     '🏕' => 'tjaldstæði',
@@ -3367,16 +3526,18 @@
     '🎧' => 'heyrnartól',
     '📻' => 'útvarp',
     '🎷' => 'saxófónn',
+    '🎺' => 'trompet',
+    '🪊' => 'básúna',
     '🪗' => 'harmonika',
     '🎸' => 'gítar',
     '🎹' => 'píanó',
-    '🎺' => 'trompet',
     '🎻' => 'fiðla',
     '🪕' => 'banjó',
     '🥁' => 'tromma',
     '🪘' => 'handtromma',
     '🪇' => 'hristur',
     '🪈' => 'flauta',
+    '🪉' => 'harpa',
     '📱' => 'farsími',
     '📲' => 'farsími með ör',
     '☎' => 'sími',
@@ -3430,8 +3591,9 @@
     '📑' => 'merkiflipar',
     '🔖' => 'bókamerki',
     '🏷' => 'merkimiði',
-    '💰' => 'peningapoki',
     '🪙' => 'mynt',
+    '💰' => 'peningapoki',
+    '🪎' => 'fjársjóðskista',
     '💴' => 'yenaseðill',
     '💵' => 'dollaraseðill',
     '💶' => 'evruseðill',
@@ -3514,6 +3676,7 @@
     '🧰' => 'verkfærakassi',
     '🧲' => 'segull',
     '🪜' => 'stigi',
+    '🪏' => 'skófla',
     '⚗' => 'eimingarflaska',
     '🧪' => 'tilraunaglas',
     '🧫' => 'petrískál',
@@ -3697,6 +3860,7 @@
     '✴' => 'áttarma stjarna',
     '❇' => 'leiftur',
     '™' => 'skrásett vörumerki',
+    '🫟' => 'sletta',
     '🔠' => 'hástafir',
     '🔡' => 'lágstafir',
     '🔢' => 'tölustafir',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-it.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-it.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-it.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-it.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'bacio tra coppia: donna, donna, carnagione scura e carnagione olivastra',
     '👩🏿‍❤‍💋‍👩🏾' => 'bacio tra coppia: donna, donna, carnagione scura e carnagione abbastanza scura',
     '👩🏿‍❤‍💋‍👩🏿' => 'bacio tra coppia: donna, donna e carnagione scura',
+    '🧑🏻‍🫯‍🧑🏼' => 'persone che fanno la lotta: carnagione chiara e carnagione abbastanza chiara',
+    '🧑🏻‍🫯‍🧑🏽' => 'persone che fanno la lotta: carnagione chiara e carnagione olivastra',
+    '🧑🏻‍🫯‍🧑🏾' => 'persone che fanno la lotta: carnagione chiara e carnagione abbastanza scura',
+    '🧑🏻‍🫯‍🧑🏿' => 'persone che fanno la lotta: carnagione chiara e carnagione scura',
+    '🧑🏼‍🫯‍🧑🏻' => 'persone che fanno la lotta: carnagione abbastanza chiara e carnagione chiara',
+    '🧑🏼‍🫯‍🧑🏽' => 'persone che fanno la lotta: carnagione abbastanza chiara e carnagione olivastra',
+    '🧑🏼‍🫯‍🧑🏾' => 'persone che fanno la lotta: carnagione abbastanza chiara e carnagione abbastanza scura',
+    '🧑🏼‍🫯‍🧑🏿' => 'persone che fanno la lotta: carnagione abbastanza chiara e carnagione scura',
+    '🧑🏽‍🫯‍🧑🏻' => 'persone che fanno la lotta: carnagione olivastra e carnagione chiara',
+    '🧑🏽‍🫯‍🧑🏼' => 'persone che fanno la lotta: carnagione olivastra e carnagione abbastanza chiara',
+    '🧑🏽‍🫯‍🧑🏾' => 'persone che fanno la lotta: carnagione olivastra e carnagione abbastanza scura',
+    '🧑🏽‍🫯‍🧑🏿' => 'persone che fanno la lotta: carnagione olivastra e carnagione scura',
+    '🧑🏾‍🫯‍🧑🏻' => 'persone che fanno la lotta: carnagione abbastanza scura e carnagione chiara',
+    '🧑🏾‍🫯‍🧑🏼' => 'persone che fanno la lotta: carnagione abbastanza scura e carnagione abbastanza chiara',
+    '🧑🏾‍🫯‍🧑🏽' => 'persone che fanno la lotta: carnagione abbastanza scura e carnagione olivastra',
+    '🧑🏾‍🫯‍🧑🏿' => 'persone che fanno la lotta: carnagione abbastanza scura e carnagione scura',
+    '🧑🏿‍🫯‍🧑🏻' => 'persone che fanno la lotta: carnagione scura e carnagione chiara',
+    '🧑🏿‍🫯‍🧑🏼' => 'persone che fanno la lotta: carnagione scura e carnagione abbastanza chiara',
+    '🧑🏿‍🫯‍🧑🏽' => 'persone che fanno la lotta: carnagione scura e carnagione olivastra',
+    '🧑🏿‍🫯‍🧑🏾' => 'persone che fanno la lotta: carnagione scura e carnagione abbastanza scura',
     '🧑🏻‍❤‍🧑🏼' => 'coppia con cuore: persona, persona, carnagione chiara e carnagione abbastanza chiara',
     '🧑🏻‍❤‍🧑🏽' => 'coppia con cuore: persona, persona, carnagione chiara e carnagione olivastra',
     '🧑🏻‍❤‍🧑🏾' => 'coppia con cuore: persona, persona, carnagione chiara e carnagione abbastanza scura',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'coppia con cuore: persona, persona, carnagione scura e carnagione abbastanza chiara',
     '🧑🏿‍❤‍🧑🏽' => 'coppia con cuore: persona, persona, carnagione scura e carnagione olivastra',
     '🧑🏿‍❤‍🧑🏾' => 'coppia con cuore: persona, persona, carnagione scura e carnagione abbastanza scura',
+    '🧑🏻‍🐰‍🧑🏼' => 'persone con orecchie da coniglio: carnagione chiara e carnagione abbastanza chiara',
+    '🧑🏻‍🐰‍🧑🏽' => 'persone con orecchie da coniglio: carnagione chiara e carnagione olivastra',
+    '🧑🏻‍🐰‍🧑🏾' => 'persone con orecchie da coniglio: carnagione chiara e carnagione abbastanza scura',
+    '🧑🏻‍🐰‍🧑🏿' => 'persone con orecchie da coniglio: carnagione chiara e carnagione scura',
+    '🧑🏼‍🐰‍🧑🏻' => 'persone con orecchie da coniglio: carnagione abbastanza chiara e carnagione chiara',
+    '🧑🏼‍🐰‍🧑🏽' => 'persone con orecchie da coniglio: carnagione abbastanza chiara e carnagione olivastra',
+    '🧑🏼‍🐰‍🧑🏾' => 'persone con orecchie da coniglio: carnagione abbastanza chiara e carnagione abbastanza scura',
+    '🧑🏼‍🐰‍🧑🏿' => 'persone con orecchie da coniglio: carnagione abbastanza chiara e carnagione scura',
+    '🧑🏽‍🐰‍🧑🏻' => 'persone con orecchie da coniglio: carnagione olivastra e carnagione chiara',
+    '🧑🏽‍🐰‍🧑🏼' => 'persone con orecchie da coniglio: carnagione olivastra e carnagione abbastanza chiara',
+    '🧑🏽‍🐰‍🧑🏾' => 'persone con orecchie da coniglio: carnagione olivastra e carnagione abbastanza scura',
+    '🧑🏽‍🐰‍🧑🏿' => 'persone con orecchie da coniglio: carnagione olivastra e carnagione scura',
+    '🧑🏾‍🐰‍🧑🏻' => 'persone con orecchie da coniglio: carnagione abbastanza scura e carnagione chiara',
+    '🧑🏾‍🐰‍🧑🏼' => 'persone con orecchie da coniglio: carnagione abbastanza scura e carnagione abbastanza chiara',
+    '🧑🏾‍🐰‍🧑🏽' => 'persone con orecchie da coniglio: carnagione abbastanza scura e carnagione olivastra',
+    '🧑🏾‍🐰‍🧑🏿' => 'persone con orecchie da coniglio: carnagione abbastanza scura e carnagione scura',
+    '🧑🏿‍🐰‍🧑🏻' => 'persone con orecchie da coniglio: carnagione scura e carnagione chiara',
+    '🧑🏿‍🐰‍🧑🏼' => 'persone con orecchie da coniglio: carnagione scura e carnagione abbastanza chiara',
+    '🧑🏿‍🐰‍🧑🏽' => 'persone con orecchie da coniglio: carnagione scura e carnagione olivastra',
+    '🧑🏿‍🐰‍🧑🏾' => 'persone con orecchie da coniglio: carnagione scura e carnagione abbastanza scura',
+    '👨🏻‍🫯‍👨🏼' => 'lottatori: carnagione chiara e carnagione abbastanza chiara',
+    '👨🏻‍🫯‍👨🏽' => 'lottatori: carnagione chiara e carnagione olivastra',
+    '👨🏻‍🫯‍👨🏾' => 'lottatori: carnagione chiara e carnagione abbastanza scura',
+    '👨🏻‍🫯‍👨🏿' => 'lottatori: carnagione chiara e carnagione scura',
+    '👨🏼‍🫯‍👨🏻' => 'lottatori: carnagione abbastanza chiara e carnagione chiara',
+    '👨🏼‍🫯‍👨🏽' => 'lottatori: carnagione abbastanza chiara e carnagione olivastra',
+    '👨🏼‍🫯‍👨🏾' => 'lottatori: carnagione abbastanza chiara e carnagione abbastanza scura',
+    '👨🏼‍🫯‍👨🏿' => 'lottatori: carnagione abbastanza chiara e carnagione scura',
+    '👨🏽‍🫯‍👨🏻' => 'lottatori: carnagione olivastra e carnagione chiara',
+    '👨🏽‍🫯‍👨🏼' => 'lottatori: carnagione olivastra e carnagione abbastanza chiara',
+    '👨🏽‍🫯‍👨🏾' => 'lottatori: carnagione olivastra e carnagione abbastanza scura',
+    '👨🏽‍🫯‍👨🏿' => 'lottatori: carnagione olivastra e carnagione scura',
+    '👨🏾‍🫯‍👨🏻' => 'lottatori: carnagione abbastanza scura e carnagione chiara',
+    '👨🏾‍🫯‍👨🏼' => 'lottatori: carnagione abbastanza scura e carnagione abbastanza chiara',
+    '👨🏾‍🫯‍👨🏽' => 'lottatori: carnagione abbastanza scura e carnagione olivastra',
+    '👨🏾‍🫯‍👨🏿' => 'lottatori: carnagione abbastanza scura e carnagione scura',
+    '👨🏿‍🫯‍👨🏻' => 'lottatori: carnagione scura e carnagione chiara',
+    '👨🏿‍🫯‍👨🏼' => 'lottatori: carnagione scura e carnagione abbastanza chiara',
+    '👨🏿‍🫯‍👨🏽' => 'lottatori: carnagione scura e carnagione olivastra',
+    '👨🏿‍🫯‍👨🏾' => 'lottatori: carnagione scura e carnagione abbastanza scura',
     '👨🏻‍❤‍👨🏻' => 'coppia con cuore: uomo, uomo e carnagione chiara',
     '👨🏻‍❤‍👨🏼' => 'coppia con cuore: uomo, uomo, carnagione chiara e carnagione abbastanza chiara',
     '👨🏻‍❤‍👨🏽' => 'coppia con cuore: uomo, uomo, carnagione chiara e carnagione olivastra',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'coppia con cuore: uomo, uomo, carnagione scura e carnagione olivastra',
     '👨🏿‍❤‍👨🏾' => 'coppia con cuore: uomo, uomo, carnagione scura e carnagione abbastanza scura',
     '👨🏿‍❤‍👨🏿' => 'coppia con cuore: uomo, uomo e carnagione scura',
+    '👨🏻‍🐰‍👨🏼' => 'uomini con orecchie da coniglio: carnagione chiara e carnagione abbastanza chiara',
+    '👨🏻‍🐰‍👨🏽' => 'uomini con orecchie da coniglio: carnagione chiara e carnagione olivastra',
+    '👨🏻‍🐰‍👨🏾' => 'uomini con orecchie da coniglio: carnagione chiara e carnagione abbastanza scura',
+    '👨🏻‍🐰‍👨🏿' => 'uomini con orecchie da coniglio: carnagione chiara e carnagione scura',
+    '👨🏼‍🐰‍👨🏻' => 'uomini con orecchie da coniglio: carnagione abbastanza chiara e carnagione chiara',
+    '👨🏼‍🐰‍👨🏽' => 'uomini con orecchie da coniglio: carnagione abbastanza chiara e carnagione olivastra',
+    '👨🏼‍🐰‍👨🏾' => 'uomini con orecchie da coniglio: carnagione abbastanza chiara e carnagione abbastanza scura',
+    '👨🏼‍🐰‍👨🏿' => 'uomini con orecchie da coniglio: carnagione abbastanza chiara e carnagione scura',
+    '👨🏽‍🐰‍👨🏻' => 'uomini con orecchie da coniglio: carnagione olivastra e carnagione chiara',
+    '👨🏽‍🐰‍👨🏼' => 'uomini con orecchie da coniglio: carnagione olivastra e carnagione abbastanza chiara',
+    '👨🏽‍🐰‍👨🏾' => 'uomini con orecchie da coniglio: carnagione olivastra e carnagione abbastanza scura',
+    '👨🏽‍🐰‍👨🏿' => 'uomini con orecchie da coniglio: carnagione olivastra e carnagione scura',
+    '👨🏾‍🐰‍👨🏻' => 'uomini con orecchie da coniglio: carnagione abbastanza scura e carnagione chiara',
+    '👨🏾‍🐰‍👨🏼' => 'uomini con orecchie da coniglio: carnagione abbastanza scura e carnagione abbastanza chiara',
+    '👨🏾‍🐰‍👨🏽' => 'uomini con orecchie da coniglio: carnagione abbastanza scura e carnagione olivastra',
+    '👨🏾‍🐰‍👨🏿' => 'uomini con orecchie da coniglio: carnagione abbastanza scura e carnagione scura',
+    '👨🏿‍🐰‍👨🏻' => 'uomini con orecchie da coniglio: carnagione scura e carnagione chiara',
+    '👨🏿‍🐰‍👨🏼' => 'uomini con orecchie da coniglio: carnagione scura e carnagione abbastanza chiara',
+    '👨🏿‍🐰‍👨🏽' => 'uomini con orecchie da coniglio: carnagione scura e carnagione olivastra',
+    '👨🏿‍🐰‍👨🏾' => 'uomini con orecchie da coniglio: carnagione scura e carnagione abbastanza scura',
+    '👩🏻‍🫯‍👩🏼' => 'lottatrici: carnagione chiara e carnagione abbastanza chiara',
+    '👩🏻‍🫯‍👩🏽' => 'lottatrici: carnagione chiara e carnagione olivastra',
+    '👩🏻‍🫯‍👩🏾' => 'lottatrici: carnagione chiara e carnagione abbastanza scura',
+    '👩🏻‍🫯‍👩🏿' => 'lottatrici: carnagione chiara e carnagione scura',
+    '👩🏼‍🫯‍👩🏻' => 'lottatrici: carnagione abbastanza chiara e carnagione chiara',
+    '👩🏼‍🫯‍👩🏽' => 'lottatrici: carnagione abbastanza chiara e carnagione olivastra',
+    '👩🏼‍🫯‍👩🏾' => 'lottatrici: carnagione abbastanza chiara e carnagione abbastanza scura',
+    '👩🏼‍🫯‍👩🏿' => 'lottatrici: carnagione abbastanza chiara e carnagione scura',
+    '👩🏽‍🫯‍👩🏻' => 'lottatrici: carnagione olivastra e carnagione chiara',
+    '👩🏽‍🫯‍👩🏼' => 'lottatrici: carnagione olivastra e carnagione abbastanza chiara',
+    '👩🏽‍🫯‍👩🏾' => 'lottatrici: carnagione olivastra e carnagione abbastanza scura',
+    '👩🏽‍🫯‍👩🏿' => 'lottatrici: carnagione olivastra e carnagione scura',
+    '👩🏾‍🫯‍👩🏻' => 'lottatrici: carnagione abbastanza scura e carnagione chiara',
+    '👩🏾‍🫯‍👩🏼' => 'lottatrici: carnagione abbastanza scura e carnagione abbastanza chiara',
+    '👩🏾‍🫯‍👩🏽' => 'lottatrici: carnagione abbastanza scura e carnagione olivastra',
+    '👩🏾‍🫯‍👩🏿' => 'lottatrici: carnagione abbastanza scura e carnagione scura',
+    '👩🏿‍🫯‍👩🏻' => 'lottatrici: carnagione scura e carnagione chiara',
+    '👩🏿‍🫯‍👩🏼' => 'lottatrici: carnagione scura e carnagione abbastanza chiara',
+    '👩🏿‍🫯‍👩🏽' => 'lottatrici: carnagione scura e carnagione olivastra',
+    '👩🏿‍🫯‍👩🏾' => 'lottatrici: carnagione scura e carnagione abbastanza scura',
     '👩🏻‍❤‍👨🏻' => 'coppia con cuore: donna, uomo e carnagione chiara',
     '👩🏻‍❤‍👨🏼' => 'coppia con cuore: donna, uomo, carnagione chiara e carnagione abbastanza chiara',
     '👩🏻‍❤‍👨🏽' => 'coppia con cuore: donna, uomo, carnagione chiara e carnagione olivastra',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'coppia con cuore: donna, donna, carnagione scura e carnagione olivastra',
     '👩🏿‍❤‍👩🏾' => 'coppia con cuore: donna, donna, carnagione scura e carnagione abbastanza scura',
     '👩🏿‍❤‍👩🏿' => 'coppia con cuore: donna, donna e carnagione scura',
+    '👩🏻‍🐰‍👩🏼' => 'donne con orecchie da coniglio: carnagione chiara e carnagione abbastanza chiara',
+    '👩🏻‍🐰‍👩🏽' => 'donne con orecchie da coniglio: carnagione chiara e carnagione olivastra',
+    '👩🏻‍🐰‍👩🏾' => 'donne con orecchie da coniglio: carnagione chiara e carnagione abbastanza scura',
+    '👩🏻‍🐰‍👩🏿' => 'donne con orecchie da coniglio: carnagione chiara e carnagione scura',
+    '👩🏼‍🐰‍👩🏻' => 'donne con orecchie da coniglio: carnagione abbastanza chiara e carnagione chiara',
+    '👩🏼‍🐰‍👩🏽' => 'donne con orecchie da coniglio: carnagione abbastanza chiara e carnagione olivastra',
+    '👩🏼‍🐰‍👩🏾' => 'donne con orecchie da coniglio: carnagione abbastanza chiara e carnagione abbastanza scura',
+    '👩🏼‍🐰‍👩🏿' => 'donne con orecchie da coniglio: carnagione abbastanza chiara e carnagione scura',
+    '👩🏽‍🐰‍👩🏻' => 'donne con orecchie da coniglio: carnagione olivastra e carnagione chiara',
+    '👩🏽‍🐰‍👩🏼' => 'donne con orecchie da coniglio: carnagione olivastra e carnagione abbastanza chiara',
+    '👩🏽‍🐰‍👩🏾' => 'donne con orecchie da coniglio: carnagione olivastra e carnagione abbastanza scura',
+    '👩🏽‍🐰‍👩🏿' => 'donne con orecchie da coniglio: carnagione olivastra e carnagione scura',
+    '👩🏾‍🐰‍👩🏻' => 'donne con orecchie da coniglio: carnagione abbastanza scura e carnagione chiara',
+    '👩🏾‍🐰‍👩🏼' => 'donne con orecchie da coniglio: carnagione abbastanza scura e carnagione abbastanza chiara',
+    '👩🏾‍🐰‍👩🏽' => 'donne con orecchie da coniglio: carnagione abbastanza scura e carnagione olivastra',
+    '👩🏾‍🐰‍👩🏿' => 'donne con orecchie da coniglio: carnagione abbastanza scura e carnagione scura',
+    '👩🏿‍🐰‍👩🏻' => 'donne con orecchie da coniglio: carnagione scura e carnagione chiara',
+    '👩🏿‍🐰‍👩🏼' => 'donne con orecchie da coniglio: carnagione scura e carnagione abbastanza chiara',
+    '👩🏿‍🐰‍👩🏽' => 'donne con orecchie da coniglio: carnagione scura e carnagione olivastra',
+    '👩🏿‍🐰‍👩🏾' => 'donne con orecchie da coniglio: carnagione scura e carnagione abbastanza scura',
     '🧑🏻‍🤝‍🧑🏻' => 'persone che si tengono per mano: carnagione chiara',
     '🧑🏻‍🤝‍🧑🏼' => 'persone che si tengono per mano: carnagione chiara e carnagione abbastanza chiara',
     '🧑🏻‍🤝‍🧑🏽' => 'persone che si tengono per mano: carnagione chiara e carnagione olivastra',
@@ -291,82 +411,82 @@
     '🏴󠁧󠁢󠁥󠁮󠁧󠁿' => 'bandiera: Inghilterra',
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bandiera: Scozia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bandiera: Galles',
-    '🧑‍🧑‍🧒‍🧒' => 'famiglia: persona adulta, persona adulta, minore, minore',
-    '🚶🏻‍♀‍➡' => 'donna che cammina a destra',
-    '🚶🏼‍♀‍➡' => 'donna che cammina a destra',
-    '🚶🏽‍♀‍➡' => 'donna che cammina a destra',
-    '🚶🏾‍♀‍➡' => 'donna che cammina a destra',
-    '🚶🏿‍♀‍➡' => 'donna che cammina a destra',
-    '🚶🏻‍♂‍➡' => 'uomo che cammina a destra',
-    '🚶🏼‍♂‍➡' => 'uomo che cammina a destra',
-    '🚶🏽‍♂‍➡' => 'uomo che cammina a destra',
-    '🚶🏾‍♂‍➡' => 'uomo che cammina a destra',
-    '🚶🏿‍♂‍➡' => 'uomo che cammina a destra',
-    '🧎🏻‍♀‍➡' => 'donna inginocchiata a destra',
-    '🧎🏼‍♀‍➡' => 'donna inginocchiata a destra',
-    '🧎🏽‍♀‍➡' => 'donna inginocchiata a destra',
-    '🧎🏾‍♀‍➡' => 'donna inginocchiata a destra',
-    '🧎🏿‍♀‍➡' => 'donna inginocchiata a destra',
-    '🧎🏻‍♂‍➡' => 'uomo inginocchiato a destra',
-    '🧎🏼‍♂‍➡' => 'uomo inginocchiato a destra',
-    '🧎🏽‍♂‍➡' => 'uomo inginocchiato a destra',
-    '🧎🏾‍♂‍➡' => 'uomo inginocchiato a destra',
-    '🧎🏿‍♂‍➡' => 'uomo inginocchiato a destra',
-    '🧑🏻‍🦯‍➡' => 'persona con bastone di orientamento a destra',
-    '🧑🏼‍🦯‍➡' => 'persona con bastone di orientamento a destra',
-    '🧑🏽‍🦯‍➡' => 'persona con bastone di orientamento a destra',
-    '🧑🏾‍🦯‍➡' => 'persona con bastone di orientamento a destra',
-    '🧑🏿‍🦯‍➡' => 'persona con bastone di orientamento a destra',
-    '👨🏻‍🦯‍➡' => 'uomo con bastone bianco di orientamento a destra',
-    '👨🏼‍🦯‍➡' => 'uomo con bastone bianco di orientamento a destra',
-    '👨🏽‍🦯‍➡' => 'uomo con bastone bianco di orientamento a destra',
-    '👨🏾‍🦯‍➡' => 'uomo con bastone bianco di orientamento a destra',
-    '👨🏿‍🦯‍➡' => 'uomo con bastone bianco di orientamento a destra',
-    '👩🏻‍🦯‍➡' => 'donna con bastone bianco di orientamento a destra',
-    '👩🏼‍🦯‍➡' => 'donna con bastone bianco di orientamento a destra',
-    '👩🏽‍🦯‍➡' => 'donna con bastone bianco di orientamento a destra',
-    '👩🏾‍🦯‍➡' => 'donna con bastone bianco di orientamento a destra',
-    '👩🏿‍🦯‍➡' => 'donna con bastone bianco di orientamento a destra',
-    '🧑🏻‍🦼‍➡' => 'persona su sedia a rotelle motorizzata a destra',
-    '🧑🏼‍🦼‍➡' => 'persona su sedia a rotelle motorizzata a destra',
-    '🧑🏽‍🦼‍➡' => 'persona su sedia a rotelle motorizzata a destra',
-    '🧑🏾‍🦼‍➡' => 'persona su sedia a rotelle motorizzata a destra',
-    '🧑🏿‍🦼‍➡' => 'persona su sedia a rotelle motorizzata a destra',
-    '👨🏻‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata a destra',
-    '👨🏼‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata a destra',
-    '👨🏽‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata a destra',
-    '👨🏾‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata a destra',
-    '👨🏿‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata a destra',
-    '👩🏻‍🦼‍➡' => 'donna su sedia a rotelle motorizzata a destra',
-    '👩🏼‍🦼‍➡' => 'donna su sedia a rotelle motorizzata a destra',
-    '👩🏽‍🦼‍➡' => 'donna su sedia a rotelle motorizzata a destra',
-    '👩🏾‍🦼‍➡' => 'donna su sedia a rotelle motorizzata a destra',
-    '👩🏿‍🦼‍➡' => 'donna su sedia a rotelle motorizzata a destra',
-    '🧑🏻‍🦽‍➡' => 'persona su sedia a rotelle manuale a destra',
-    '🧑🏼‍🦽‍➡' => 'persona su sedia a rotelle manuale a destra',
-    '🧑🏽‍🦽‍➡' => 'persona su sedia a rotelle manuale a destra',
-    '🧑🏾‍🦽‍➡' => 'persona su sedia a rotelle manuale a destra',
-    '🧑🏿‍🦽‍➡' => 'persona su sedia a rotelle manuale a destra',
-    '👨🏻‍🦽‍➡' => 'uomo su sedia a rotelle manuale a destra',
-    '👨🏼‍🦽‍➡' => 'uomo su sedia a rotelle manuale a destra',
-    '👨🏽‍🦽‍➡' => 'uomo su sedia a rotelle manuale a destra',
-    '👨🏾‍🦽‍➡' => 'uomo su sedia a rotelle manuale a destra',
-    '👨🏿‍🦽‍➡' => 'uomo su sedia a rotelle manuale a destra',
-    '👩🏻‍🦽‍➡' => 'donna su sedia a rotelle manuale a destra',
-    '👩🏼‍🦽‍➡' => 'donna su sedia a rotelle manuale a destra',
-    '👩🏽‍🦽‍➡' => 'donna su sedia a rotelle manuale a destra',
-    '👩🏾‍🦽‍➡' => 'donna su sedia a rotelle manuale a destra',
-    '👩🏿‍🦽‍➡' => 'donna su sedia a rotelle manuale a destra',
-    '🏃🏻‍♀‍➡' => 'donna che corre a destra',
-    '🏃🏼‍♀‍➡' => 'donna che corre a destra',
-    '🏃🏽‍♀‍➡' => 'donna che corre a destra',
-    '🏃🏾‍♀‍➡' => 'donna che corre a destra',
-    '🏃🏿‍♀‍➡' => 'donna che corre a destra',
-    '🏃🏻‍♂‍➡' => 'uomo che corre a destra',
-    '🏃🏼‍♂‍➡' => 'uomo che corre a destra',
-    '🏃🏽‍♂‍➡' => 'uomo che corre a destra',
-    '🏃🏾‍♂‍➡' => 'uomo che corre a destra',
-    '🏃🏿‍♂‍➡' => 'uomo che corre a destra',
+    '🧑‍🧑‍🧒‍🧒' => 'famiglia: persone adulte, minori',
+    '🚶🏻‍♀‍➡' => 'donna che cammina: carnagione chiara e a destra',
+    '🚶🏼‍♀‍➡' => 'donna che cammina: carnagione abbastanza chiara e a destra',
+    '🚶🏽‍♀‍➡' => 'donna che cammina: carnagione olivastra e a destra',
+    '🚶🏾‍♀‍➡' => 'donna che cammina: carnagione abbastanza scura e a destra',
+    '🚶🏿‍♀‍➡' => 'donna che cammina: carnagione scura e a destra',
+    '🚶🏻‍♂‍➡' => 'uomo che cammina: carnagione chiara e a destra',
+    '🚶🏼‍♂‍➡' => 'uomo che cammina: carnagione abbastanza chiara e a destra',
+    '🚶🏽‍♂‍➡' => 'uomo che cammina: carnagione olivastra e a destra',
+    '🚶🏾‍♂‍➡' => 'uomo che cammina: carnagione abbastanza scura e a destra',
+    '🚶🏿‍♂‍➡' => 'uomo che cammina: carnagione scura e a destra',
+    '🧎🏻‍♀‍➡' => 'donna inginocchiata: carnagione chiara e a destra',
+    '🧎🏼‍♀‍➡' => 'donna inginocchiata: carnagione abbastanza chiara e a destra',
+    '🧎🏽‍♀‍➡' => 'donna inginocchiata: carnagione olivastra e a destra',
+    '🧎🏾‍♀‍➡' => 'donna inginocchiata: carnagione abbastanza scura e a destra',
+    '🧎🏿‍♀‍➡' => 'donna inginocchiata: carnagione scura e a destra',
+    '🧎🏻‍♂‍➡' => 'uomo inginocchiato: carnagione chiara e a destra',
+    '🧎🏼‍♂‍➡' => 'uomo inginocchiato: carnagione abbastanza chiara e a destra',
+    '🧎🏽‍♂‍➡' => 'uomo inginocchiato: carnagione olivastra e a destra',
+    '🧎🏾‍♂‍➡' => 'uomo inginocchiato: carnagione abbastanza scura e a destra',
+    '🧎🏿‍♂‍➡' => 'uomo inginocchiato: carnagione scura e a destra',
+    '🧑🏻‍🦯‍➡' => 'persona con bastone di orientamento: carnagione chiara e a destra',
+    '🧑🏼‍🦯‍➡' => 'persona con bastone di orientamento: carnagione abbastanza chiara e a destra',
+    '🧑🏽‍🦯‍➡' => 'persona con bastone di orientamento: carnagione olivastra e a destra',
+    '🧑🏾‍🦯‍➡' => 'persona con bastone di orientamento: carnagione abbastanza scura e a destra',
+    '🧑🏿‍🦯‍➡' => 'persona con bastone di orientamento: carnagione scura e a destra',
+    '👨🏻‍🦯‍➡' => 'uomo con bastone bianco di orientamento: carnagione chiara e a destra',
+    '👨🏼‍🦯‍➡' => 'uomo con bastone bianco di orientamento: carnagione abbastanza chiara e a destra',
+    '👨🏽‍🦯‍➡' => 'uomo con bastone bianco di orientamento: carnagione olivastra e a destra',
+    '👨🏾‍🦯‍➡' => 'uomo con bastone bianco di orientamento: carnagione abbastanza scura e a destra',
+    '👨🏿‍🦯‍➡' => 'uomo con bastone bianco di orientamento: carnagione scura e a destra',
+    '👩🏻‍🦯‍➡' => 'donna con bastone bianco di orientamento: carnagione chiara e a destra',
+    '👩🏼‍🦯‍➡' => 'donna con bastone bianco di orientamento: carnagione abbastanza chiara e a destra',
+    '👩🏽‍🦯‍➡' => 'donna con bastone bianco di orientamento: carnagione olivastra e a destra',
+    '👩🏾‍🦯‍➡' => 'donna con bastone bianco di orientamento: carnagione abbastanza scura e a destra',
+    '👩🏿‍🦯‍➡' => 'donna con bastone bianco di orientamento: carnagione scura e a destra',
+    '🧑🏻‍🦼‍➡' => 'persona su sedia a rotelle motorizzata: carnagione chiara e a destra',
+    '🧑🏼‍🦼‍➡' => 'persona su sedia a rotelle motorizzata: carnagione abbastanza chiara e a destra',
+    '🧑🏽‍🦼‍➡' => 'persona su sedia a rotelle motorizzata: carnagione olivastra e a destra',
+    '🧑🏾‍🦼‍➡' => 'persona su sedia a rotelle motorizzata: carnagione abbastanza scura e a destra',
+    '🧑🏿‍🦼‍➡' => 'persona su sedia a rotelle motorizzata: carnagione scura e a destra',
+    '👨🏻‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata: carnagione chiara e a destra',
+    '👨🏼‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata: carnagione abbastanza chiara e a destra',
+    '👨🏽‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata: carnagione olivastra e a destra',
+    '👨🏾‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata: carnagione abbastanza scura e a destra',
+    '👨🏿‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata: carnagione scura e a destra',
+    '👩🏻‍🦼‍➡' => 'donna su sedia a rotelle motorizzata: carnagione chiara e a destra',
+    '👩🏼‍🦼‍➡' => 'donna su sedia a rotelle motorizzata: carnagione abbastanza chiara e a destra',
+    '👩🏽‍🦼‍➡' => 'donna su sedia a rotelle motorizzata: carnagione olivastra e a destra',
+    '👩🏾‍🦼‍➡' => 'donna su sedia a rotelle motorizzata: carnagione abbastanza scura e a destra',
+    '👩🏿‍🦼‍➡' => 'donna su sedia a rotelle motorizzata: carnagione scura e a destra',
+    '🧑🏻‍🦽‍➡' => 'persona su sedia a rotelle manuale: carnagione chiara e a destra',
+    '🧑🏼‍🦽‍➡' => 'persona su sedia a rotelle manuale: carnagione abbastanza chiara e a destra',
+    '🧑🏽‍🦽‍➡' => 'persona su sedia a rotelle manuale: carnagione olivastra e a destra',
+    '🧑🏾‍🦽‍➡' => 'persona su sedia a rotelle manuale: carnagione abbastanza scura e a destra',
+    '🧑🏿‍🦽‍➡' => 'persona su sedia a rotelle manuale: carnagione scura e a destra',
+    '👨🏻‍🦽‍➡' => 'uomo su sedia a rotelle manuale: carnagione chiara e a destra',
+    '👨🏼‍🦽‍➡' => 'uomo su sedia a rotelle manuale: carnagione abbastanza chiara e a destra',
+    '👨🏽‍🦽‍➡' => 'uomo su sedia a rotelle manuale: carnagione olivastra e a destra',
+    '👨🏾‍🦽‍➡' => 'uomo su sedia a rotelle manuale: carnagione abbastanza scura e a destra',
+    '👨🏿‍🦽‍➡' => 'uomo su sedia a rotelle manuale: carnagione scura e a destra',
+    '👩🏻‍🦽‍➡' => 'donna su sedia a rotelle manuale: carnagione chiara e a destra',
+    '👩🏼‍🦽‍➡' => 'donna su sedia a rotelle manuale: carnagione abbastanza chiara e a destra',
+    '👩🏽‍🦽‍➡' => 'donna su sedia a rotelle manuale: carnagione olivastra e a destra',
+    '👩🏾‍🦽‍➡' => 'donna su sedia a rotelle manuale: carnagione abbastanza scura e a destra',
+    '👩🏿‍🦽‍➡' => 'donna su sedia a rotelle manuale: carnagione scura e a destra',
+    '🏃🏻‍♀‍➡' => 'donna che corre: carnagione chiara e a destra',
+    '🏃🏼‍♀‍➡' => 'donna che corre: carnagione abbastanza chiara e a destra',
+    '🏃🏽‍♀‍➡' => 'donna che corre: carnagione olivastra e a destra',
+    '🏃🏾‍♀‍➡' => 'donna che corre: carnagione abbastanza scura e a destra',
+    '🏃🏿‍♀‍➡' => 'donna che corre: carnagione scura e a destra',
+    '🏃🏻‍♂‍➡' => 'uomo che corre: carnagione chiara e a destra',
+    '🏃🏼‍♂‍➡' => 'uomo che corre: carnagione abbastanza chiara e a destra',
+    '🏃🏽‍♂‍➡' => 'uomo che corre: carnagione olivastra e a destra',
+    '🏃🏾‍♂‍➡' => 'uomo che corre: carnagione abbastanza scura e a destra',
+    '🏃🏿‍♂‍➡' => 'uomo che corre: carnagione scura e a destra',
     '🫱🏻‍🫲🏼' => 'stretta di mano: carnagione chiara e carnagione abbastanza chiara',
     '🫱🏻‍🫲🏽' => 'stretta di mano: carnagione chiara e carnagione olivastra',
     '🫱🏻‍🫲🏾' => 'stretta di mano: carnagione chiara e carnagione abbastanza scura',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'stretta di mano: carnagione scura e carnagione abbastanza chiara',
     '🫱🏿‍🫲🏽' => 'stretta di mano: carnagione scura e carnagione olivastra',
     '🫱🏿‍🫲🏾' => 'stretta di mano: carnagione scura e carnagione abbastanza scura',
-    '🚶‍♀‍➡' => 'donna che cammina a destra',
-    '🚶‍♂‍➡' => 'uomo che cammina a destra',
-    '🧎‍♀‍➡' => 'donna inginocchiata a destra',
-    '🧎‍♂‍➡' => 'uomo inginocchiato a destra',
-    '🧑‍🦯‍➡' => 'persona con bastone di orientamento a destra',
-    '👨‍🦯‍➡' => 'uomo con bastone bianco di orientamento a destra',
-    '👩‍🦯‍➡' => 'donna con bastone bianco di orientamento a destra',
-    '🧑‍🦼‍➡' => 'persona su sedia a rotelle motorizzata a destra',
-    '👨‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata a destra',
-    '👩‍🦼‍➡' => 'donna su sedia a rotelle motorizzata a destra',
-    '🧑‍🦽‍➡' => 'persona su sedia a rotelle manuale a destra',
-    '👨‍🦽‍➡' => 'uomo su sedia a rotelle manuale a destra',
-    '👩‍🦽‍➡' => 'donna su sedia a rotelle manuale a destra',
-    '🏃‍♀‍➡' => 'donna che corre a destra',
-    '🏃‍♂‍➡' => 'uomo che corre a destra',
+    '🚶‍♀‍➡' => 'donna che cammina: a destra',
+    '🚶‍♂‍➡' => 'uomo che cammina: a destra',
+    '🧎‍♀‍➡' => 'donna inginocchiata: a destra',
+    '🧎‍♂‍➡' => 'uomo inginocchiato: a destra',
+    '🧑‍🦯‍➡' => 'persona con bastone di orientamento: a destra',
+    '👨‍🦯‍➡' => 'uomo con bastone bianco di orientamento: a destra',
+    '👩‍🦯‍➡' => 'donna con bastone bianco di orientamento: a destra',
+    '🧑‍🦼‍➡' => 'persona su sedia a rotelle motorizzata: a destra',
+    '👨‍🦼‍➡' => 'uomo su sedia a rotelle motorizzata: a destra',
+    '👩‍🦼‍➡' => 'donna su sedia a rotelle motorizzata: a destra',
+    '🧑‍🦽‍➡' => 'persona su sedia a rotelle manuale: a destra',
+    '👨‍🦽‍➡' => 'uomo su sedia a rotelle manuale: a destra',
+    '👩‍🦽‍➡' => 'donna su sedia a rotelle manuale: a destra',
+    '🏃‍♀‍➡' => 'donna che corre: a destra',
+    '🏃‍♂‍➡' => 'uomo che corre: a destra',
     '👩‍❤‍👨' => 'coppia con cuore: donna e uomo',
     '👨‍❤‍👨' => 'coppia con cuore: uomo e uomo',
     '👩‍❤‍👩' => 'coppia con cuore: donna e donna',
@@ -418,7 +538,7 @@
     '👩‍👧‍👦' => 'famiglia: donna, bambina e bambino',
     '👩‍👧‍👧' => 'famiglia: donna, bambina e bambina',
     '🧑‍🤝‍🧑' => 'persone che si tengono per mano',
-    '🧑‍🧑‍🧒' => 'famiglia: persona adulta, persona adulta, minore',
+    '🧑‍🧑‍🧒' => 'famiglia: persone adulte, minore',
     '🧑‍🧒‍🧒' => 'famiglia: persona adulta, minore, minore',
     '🧑🏻‍🦰' => 'persona: carnagione chiara e capelli rossi',
     '🧑🏼‍🦰' => 'persona: carnagione abbastanza chiara e capelli rossi',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'persona: carnagione olivastra e calvo',
     '🧑🏾‍🦲' => 'persona: carnagione abbastanza scura e calvo',
     '🧑🏿‍🦲' => 'persona: carnagione scura e calvo',
+    '🧑🏻‍🩰' => 'persona che danza: carnagione chiara',
+    '🧑🏼‍🩰' => 'persona che danza: carnagione abbastanza chiara',
+    '🧑🏽‍🩰' => 'persona che danza: carnagione olivastra',
+    '🧑🏾‍🩰' => 'persona che danza: carnagione abbastanza scura',
+    '🧑🏿‍🩰' => 'persona che danza: carnagione scura',
     '🧔🏻‍♂' => 'uomo con la barba: carnagione chiara',
     '🧔🏼‍♂' => 'uomo con la barba: carnagione abbastanza chiara',
     '🧔🏽‍♂' => 'uomo con la barba: carnagione olivastra',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'donna che cammina: carnagione olivastra',
     '🚶🏾‍♀' => 'donna che cammina: carnagione abbastanza scura',
     '🚶🏿‍♀' => 'donna che cammina: carnagione scura',
-    '🚶🏻‍➡' => 'pedone a destra',
-    '🚶🏼‍➡' => 'pedone a destra',
-    '🚶🏽‍➡' => 'pedone a destra',
-    '🚶🏾‍➡' => 'pedone a destra',
-    '🚶🏿‍➡' => 'pedone a destra',
+    '🚶🏻‍➡' => 'pedone: carnagione chiara e a destra',
+    '🚶🏼‍➡' => 'pedone: carnagione abbastanza chiara e a destra',
+    '🚶🏽‍➡' => 'pedone: carnagione olivastra e a destra',
+    '🚶🏾‍➡' => 'pedone: carnagione abbastanza scura e a destra',
+    '🚶🏿‍➡' => 'pedone: carnagione scura e a destra',
     '🧍🏻‍♂' => 'uomo in piedi: carnagione chiara',
     '🧍🏼‍♂' => 'uomo in piedi: carnagione abbastanza chiara',
     '🧍🏽‍♂' => 'uomo in piedi: carnagione olivastra',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'donna inginocchiata: carnagione olivastra',
     '🧎🏾‍♀' => 'donna inginocchiata: carnagione abbastanza scura',
     '🧎🏿‍♀' => 'donna inginocchiata: carnagione scura',
-    '🧎🏻‍➡' => 'persona inginocchiata a destra',
-    '🧎🏼‍➡' => 'persona inginocchiata a destra',
-    '🧎🏽‍➡' => 'persona inginocchiata a destra',
-    '🧎🏾‍➡' => 'persona inginocchiata a destra',
-    '🧎🏿‍➡' => 'persona inginocchiata a destra',
+    '🧎🏻‍➡' => 'persona inginocchiata: carnagione chiara e a destra',
+    '🧎🏼‍➡' => 'persona inginocchiata: carnagione abbastanza chiara e a destra',
+    '🧎🏽‍➡' => 'persona inginocchiata: carnagione olivastra e a destra',
+    '🧎🏾‍➡' => 'persona inginocchiata: carnagione abbastanza scura e a destra',
+    '🧎🏿‍➡' => 'persona inginocchiata: carnagione scura e a destra',
     '🧑🏻‍🦯' => 'persona con bastone di orientamento: carnagione chiara',
     '🧑🏼‍🦯' => 'persona con bastone di orientamento: carnagione abbastanza chiara',
     '🧑🏽‍🦯' => 'persona con bastone di orientamento: carnagione olivastra',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'donna che corre: carnagione olivastra',
     '🏃🏾‍♀' => 'donna che corre: carnagione abbastanza scura',
     '🏃🏿‍♀' => 'donna che corre: carnagione scura',
-    '🏃🏻‍➡' => 'persona che corre a destra',
-    '🏃🏼‍➡' => 'persona che corre a destra',
-    '🏃🏽‍➡' => 'persona che corre a destra',
-    '🏃🏾‍➡' => 'persona che corre a destra',
-    '🏃🏿‍➡' => 'persona che corre a destra',
+    '🏃🏻‍➡' => 'persona che corre: carnagione chiara e a destra',
+    '🏃🏼‍➡' => 'persona che corre: carnagione abbastanza chiara e a destra',
+    '🏃🏽‍➡' => 'persona che corre: carnagione olivastra e a destra',
+    '🏃🏾‍➡' => 'persona che corre: carnagione abbastanza scura e a destra',
+    '🏃🏿‍➡' => 'persona che corre: carnagione scura e a destra',
+    '👯🏻‍♀' => 'donne con orecchie da coniglio: carnagione chiara',
+    '👯🏼‍♀' => 'donne con orecchie da coniglio: carnagione abbastanza chiara',
+    '👯🏽‍♀' => 'donne con orecchie da coniglio: carnagione olivastra',
+    '👯🏾‍♀' => 'donne con orecchie da coniglio: carnagione abbastanza scura',
+    '👯🏿‍♀' => 'donne con orecchie da coniglio: carnagione scura',
+    '👯🏻‍♂' => 'uomini con orecchie da coniglio: carnagione chiara',
+    '👯🏼‍♂' => 'uomini con orecchie da coniglio: carnagione abbastanza chiara',
+    '👯🏽‍♂' => 'uomini con orecchie da coniglio: carnagione olivastra',
+    '👯🏾‍♂' => 'uomini con orecchie da coniglio: carnagione abbastanza scura',
+    '👯🏿‍♂' => 'uomini con orecchie da coniglio: carnagione scura',
     '🧖🏻‍♂' => 'uomo in sauna: carnagione chiara',
     '🧖🏼‍♂' => 'uomo in sauna: carnagione abbastanza chiara',
     '🧖🏽‍♂' => 'uomo in sauna: carnagione olivastra',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'donna che fa la ruota: carnagione olivastra',
     '🤸🏾‍♀' => 'donna che fa la ruota: carnagione abbastanza scura',
     '🤸🏿‍♀' => 'donna che fa la ruota: carnagione scura',
+    '🤼🏻‍♀' => 'lottatrici: carnagione chiara',
+    '🤼🏼‍♀' => 'lottatrici: carnagione abbastanza chiara',
+    '🤼🏽‍♀' => 'lottatrici: carnagione olivastra',
+    '🤼🏾‍♀' => 'lottatrici: carnagione abbastanza scura',
+    '🤼🏿‍♀' => 'lottatrici: carnagione scura',
+    '🤼🏻‍♂' => 'lottatori: carnagione chiara',
+    '🤼🏼‍♂' => 'lottatori: carnagione abbastanza chiara',
+    '🤼🏽‍♂' => 'lottatori: carnagione olivastra',
+    '🤼🏾‍♂' => 'lottatori: carnagione abbastanza scura',
+    '🤼🏿‍♂' => 'lottatori: carnagione scura',
     '🤽🏻‍♂' => 'pallanuotista uomo: carnagione chiara',
     '🤽🏼‍♂' => 'pallanuotista uomo: carnagione abbastanza chiara',
     '🤽🏽‍♂' => 'pallanuotista uomo: carnagione olivastra',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'donna: capelli ricci',
     '👩‍🦳' => 'donna: capelli bianchi',
     '👩‍🦲' => 'donna: calvo',
-    '🚶‍➡' => 'pedone a destra',
-    '🧎‍➡' => 'persona inginocchiata a destra',
-    '🏃‍➡' => 'persona che corre a destra',
+    '🚶‍➡' => 'pedone: a destra',
+    '🧎‍➡' => 'persona inginocchiata: a destra',
+    '🏃‍➡' => 'persona che corre: a destra',
     '👨‍👦' => 'famiglia: uomo e bambino',
     '👨‍👧' => 'famiglia: uomo e bambina',
     '👩‍👦' => 'famiglia: donna e bambino',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'donna su sedia a rotelle manuale',
     '🏃‍♂' => 'uomo che corre',
     '🏃‍♀' => 'donna che corre',
+    '🧑‍🩰' => 'persona che danza',
     '👯‍♂' => 'uomini con orecchie da coniglio',
     '👯‍♀' => 'donne con orecchie da coniglio',
     '🧖‍♂' => 'uomo in sauna',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'uomo con completo che levita: carnagione olivastra',
     '🕴🏾' => 'uomo con completo che levita: carnagione abbastanza scura',
     '🕴🏿' => 'uomo con completo che levita: carnagione scura',
+    '👯🏻' => 'persone con orecchie da coniglio: carnagione chiara',
+    '👯🏼' => 'persone con orecchie da coniglio: carnagione abbastanza chiara',
+    '👯🏽' => 'persone con orecchie da coniglio: carnagione olivastra',
+    '👯🏾' => 'persone con orecchie da coniglio: carnagione abbastanza scura',
+    '👯🏿' => 'persone con orecchie da coniglio: carnagione scura',
     '🧖🏻' => 'persona in sauna: carnagione chiara',
     '🧖🏼' => 'persona in sauna: carnagione abbastanza chiara',
     '🧖🏽' => 'persona in sauna: carnagione olivastra',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persona che fa la ruota: carnagione olivastra',
     '🤸🏾' => 'persona che fa la ruota: carnagione abbastanza scura',
     '🤸🏿' => 'persona che fa la ruota: carnagione scura',
+    '🤼🏻' => 'persone che fanno la lotta: carnagione chiara',
+    '🤼🏼' => 'persone che fanno la lotta: carnagione abbastanza chiara',
+    '🤼🏽' => 'persone che fanno la lotta: carnagione olivastra',
+    '🤼🏾' => 'persone che fanno la lotta: carnagione abbastanza scura',
+    '🤼🏿' => 'persone che fanno la lotta: carnagione scura',
     '🤽🏻' => 'persona che gioca a pallanuoto: carnagione chiara',
     '🤽🏼' => 'persona che gioca a pallanuoto: carnagione abbastanza chiara',
     '🤽🏽' => 'persona che gioca a pallanuoto: carnagione olivastra',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bandiera: Cina',
     '🇨🇴' => 'bandiera: Colombia',
     '🇨🇵' => 'bandiera: Isola di Clipperton',
+    '🇨🇶' => 'bandiera: Sark',
     '🇨🇷' => 'bandiera: Costa Rica',
     '🇨🇺' => 'bandiera: Cuba',
     '🇨🇻' => 'bandiera: Capo Verde',
@@ -2390,19 +2547,12 @@
     '🏽' => 'carnagione olivastra',
     '🏾' => 'carnagione abbastanza scura',
     '🏿' => 'carnagione scura',
-    '🪉' => 'arpa',
-    '🪏' => 'vanga',
-    '🪾' => 'albero spoglio',
-    '🫆' => 'impronta digitale',
-    '🫜' => 'ortaggio da radice',
-    '🫟' => 'spruzzo',
-    '🫩' => 'faccina con borse sotto gli occhi',
     '😀' => 'faccina con un gran sorriso',
-    '😃' => 'faccina con un gran sorriso e occhi spalancati',
+    '😃' => 'faccina con sorriso e occhi spalancati',
     '😄' => 'faccina con sorriso e occhi sorridenti',
     '😁' => 'faccina raggiante con occhi felici',
     '😆' => 'sorriso a bocca aperta con occhi chiusi',
-    '😅' => 'faccina con un gran sorriso e goccia di sudore',
+    '😅' => 'faccina con sorriso e goccia di sudore',
     '🤣' => 'ridere a crepapelle',
     '😂' => 'faccina con lacrime di gioia',
     '🙂' => 'faccina con sorriso accennato',
@@ -2434,7 +2584,7 @@
     '🤔' => 'faccina concentrata',
     '🫡' => 'faccina che fa il saluto',
     '🤐' => 'faccina con bocca con cerniera',
-    '🤨' => 'faccia con sopracciglia alzate',
+    '🤨' => 'faccina con sopracciglia alzate',
     '😐' => 'faccina neutra',
     '😑' => 'faccina inespressiva',
     '😶' => 'faccina senza bocca',
@@ -2450,6 +2600,7 @@
     '😪' => 'faccina assonnata',
     '🤤' => 'faccina che sbava',
     '😴' => 'faccina che dorme',
+    '🫩' => 'faccina con borse sotto gli occhi',
     '😷' => 'faccina con mascherina',
     '🤒' => 'faccina con termometro',
     '🤕' => 'faccina con la testa bendata',
@@ -2476,6 +2627,7 @@
     '😯' => 'faccina sorpresa',
     '😲' => 'faccina stupita',
     '😳' => 'faccina imbarazzata',
+    '🫪' => 'faccina stravolta',
     '🥺' => 'faccina supplichevole',
     '🥹' => 'faccina che trattiene le lacrime',
     '😦' => 'faccina imbronciata con bocca aperta',
@@ -2547,6 +2699,7 @@
     '💋' => 'impronta della bocca',
     '💯' => '100 punti',
     '💢' => 'rabbia',
+    '🫯' => 'nuvoletta di zuffa',
     '💥' => 'collisione',
     '💫' => 'stella con scia',
     '💦' => 'gocce di sudore',
@@ -2670,6 +2823,7 @@
     '🧞' => 'genio',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'creatura pelosa',
     '💆' => 'persona che riceve un massaggio',
     '💇' => 'taglio di capelli',
     '🚶' => 'pedone',
@@ -2713,6 +2867,7 @@
     '🫂' => 'persone che si abbracciano',
     '👪' => 'famiglia',
     '👣' => 'impronta di piedi',
+    '🫆' => 'impronta digitale',
     '🦰' => 'capelli rossi',
     '🦱' => 'capelli ricci',
     '🦳' => 'capelli bianchi',
@@ -2812,6 +2967,7 @@
     '🐳' => 'balena che spruzza acqua',
     '🐋' => 'balena',
     '🐬' => 'delfino',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'pesce',
     '🐠' => 'pesce tropicale',
@@ -2821,6 +2977,11 @@
     '🐚' => 'conchiglia',
     '🪸' => 'corallo',
     '🪼' => 'medusa',
+    '🦀' => 'granchio',
+    '🦞' => 'aragosta',
+    '🦐' => 'gamberetto',
+    '🦑' => 'calamaro',
+    '🦪' => 'ostrica',
     '🐌' => 'lumaca',
     '🦋' => 'farfalla',
     '🐛' => 'insetto',
@@ -2865,6 +3026,7 @@
     '🪹' => 'nido vuoto',
     '🪺' => 'nido con uova',
     '🍄' => 'fungo',
+    '🪾' => 'albero spoglio',
     '🍇' => 'uva',
     '🍈' => 'melone',
     '🍉' => 'anguria',
@@ -2901,6 +3063,7 @@
     '🌰' => 'castagna',
     '🫚' => 'radice di zenzero',
     '🫛' => 'baccello di piselli',
+    '🫜' => 'ortaggio da radice',
     '🍞' => 'pane in cassetta',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2952,11 +3115,6 @@
     '🥟' => 'raviolo',
     '🥠' => 'biscotto della fortuna',
     '🥡' => 'confezione da asporto',
-    '🦀' => 'granchio',
-    '🦞' => 'aragosta',
-    '🦐' => 'gamberetto',
-    '🦑' => 'calamaro',
-    '🦪' => 'ostrica',
     '🍦' => 'cono gelato',
     '🍧' => 'granita',
     '🍨' => 'coppa di gelato',
@@ -3007,6 +3165,7 @@
     '🧭' => 'bussola',
     '🏔' => 'montagna innevata',
     '⛰' => 'montagna',
+    '🛘' => 'frana',
     '🌋' => 'vulcano',
     '🗻' => 'Monte Fuji',
     '🏕' => 'campeggio',
@@ -3367,16 +3526,18 @@
     '🎧' => 'cuffie',
     '📻' => 'radio',
     '🎷' => 'sassofono',
+    '🎺' => 'tromba',
+    '🪊' => 'trombone',
     '🪗' => 'fisarmonica',
     '🎸' => 'chitarra',
     '🎹' => 'piano',
-    '🎺' => 'tromba',
     '🎻' => 'violino',
     '🪕' => 'banjo',
     '🥁' => 'tamburo',
     '🪘' => 'tamburo lungo',
     '🪇' => 'maracas',
     '🪈' => 'flauto',
+    '🪉' => 'arpa',
     '📱' => 'telefono cellulare',
     '📲' => 'telefono cellulare con freccia',
     '☎' => 'telefono fisso',
@@ -3430,8 +3591,9 @@
     '📑' => 'etichette segnalibro',
     '🔖' => 'segnalibro',
     '🏷' => 'etichetta',
-    '💰' => 'sacco di soldi',
     '🪙' => 'moneta',
+    '💰' => 'sacco di soldi',
+    '🪎' => 'forziere',
     '💴' => 'banconota Yen',
     '💵' => 'banconota Dollaro',
     '💶' => 'banconota Euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'cassetta degli attrezzi',
     '🧲' => 'calamita',
     '🪜' => 'scala',
+    '🪏' => 'vanga',
     '⚗' => 'alambicco',
     '🧪' => 'provetta',
     '🧫' => 'piastra di Petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'stella stilizzata',
     '❇' => 'scintilla stilizzata',
     '™' => 'marchio',
+    '🫟' => 'spruzzo',
     '🔠' => 'pulsante con lettere latine maiuscole',
     '🔡' => 'pulsante con lettere latine minuscole',
     '🔢' => 'pulsante con numeri',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ja.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ja.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ja.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ja.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => '2人でキス: 女性 女性 濃い肌色 中間の肌色',
     '👩🏿‍❤‍💋‍👩🏾' => '2人でキス: 女性 女性 濃い肌色 やや濃い肌色',
     '👩🏿‍❤‍💋‍👩🏿' => '2人でキス: 女性 女性 濃い肌色',
+    '🧑🏻‍🫯‍🧑🏼' => 'レスリングする人: 薄い肌色 やや薄い肌色',
+    '🧑🏻‍🫯‍🧑🏽' => 'レスリングする人: 薄い肌色 中間の肌色',
+    '🧑🏻‍🫯‍🧑🏾' => 'レスリングする人: 薄い肌色 やや濃い肌色',
+    '🧑🏻‍🫯‍🧑🏿' => 'レスリングする人: 薄い肌色 濃い肌色',
+    '🧑🏼‍🫯‍🧑🏻' => 'レスリングする人: やや薄い肌色 薄い肌色',
+    '🧑🏼‍🫯‍🧑🏽' => 'レスリングする人: やや薄い肌色 中間の肌色',
+    '🧑🏼‍🫯‍🧑🏾' => 'レスリングする人: やや薄い肌色 やや濃い肌色',
+    '🧑🏼‍🫯‍🧑🏿' => 'レスリングする人: やや薄い肌色 濃い肌色',
+    '🧑🏽‍🫯‍🧑🏻' => 'レスリングする人: 中間の肌色 薄い肌色',
+    '🧑🏽‍🫯‍🧑🏼' => 'レスリングする人: 中間の肌色 やや薄い肌色',
+    '🧑🏽‍🫯‍🧑🏾' => 'レスリングする人: 中間の肌色 やや濃い肌色',
+    '🧑🏽‍🫯‍🧑🏿' => 'レスリングする人: 中間の肌色 濃い肌色',
+    '🧑🏾‍🫯‍🧑🏻' => 'レスリングする人: やや濃い肌色 薄い肌色',
+    '🧑🏾‍🫯‍🧑🏼' => 'レスリングする人: やや濃い肌色 やや薄い肌色',
+    '🧑🏾‍🫯‍🧑🏽' => 'レスリングする人: やや濃い肌色 中間の肌色',
+    '🧑🏾‍🫯‍🧑🏿' => 'レスリングする人: やや濃い肌色 濃い肌色',
+    '🧑🏿‍🫯‍🧑🏻' => 'レスリングする人: 濃い肌色 薄い肌色',
+    '🧑🏿‍🫯‍🧑🏼' => 'レスリングする人: 濃い肌色 やや薄い肌色',
+    '🧑🏿‍🫯‍🧑🏽' => 'レスリングする人: 濃い肌色 中間の肌色',
+    '🧑🏿‍🫯‍🧑🏾' => 'レスリングする人: 濃い肌色 やや濃い肌色',
     '🧑🏻‍❤‍🧑🏼' => 'カップルとハート: 大人 大人 薄い肌色 やや薄い肌色',
     '🧑🏻‍❤‍🧑🏽' => 'カップルとハート: 大人 大人 薄い肌色 中間の肌色',
     '🧑🏻‍❤‍🧑🏾' => 'カップルとハート: 大人 大人 薄い肌色 やや濃い肌色',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'カップルとハート: 大人 大人 濃い肌色 やや薄い肌色',
     '🧑🏿‍❤‍🧑🏽' => 'カップルとハート: 大人 大人 濃い肌色 中間の肌色',
     '🧑🏿‍❤‍🧑🏾' => 'カップルとハート: 大人 大人 濃い肌色 やや濃い肌色',
+    '🧑🏻‍🐰‍🧑🏼' => 'バニー: 薄い肌色 やや薄い肌色',
+    '🧑🏻‍🐰‍🧑🏽' => 'バニー: 薄い肌色 中間の肌色',
+    '🧑🏻‍🐰‍🧑🏾' => 'バニー: 薄い肌色 やや濃い肌色',
+    '🧑🏻‍🐰‍🧑🏿' => 'バニー: 薄い肌色 濃い肌色',
+    '🧑🏼‍🐰‍🧑🏻' => 'バニー: やや薄い肌色 薄い肌色',
+    '🧑🏼‍🐰‍🧑🏽' => 'バニー: やや薄い肌色 中間の肌色',
+    '🧑🏼‍🐰‍🧑🏾' => 'バニー: やや薄い肌色 やや濃い肌色',
+    '🧑🏼‍🐰‍🧑🏿' => 'バニー: やや薄い肌色 濃い肌色',
+    '🧑🏽‍🐰‍🧑🏻' => 'バニー: 中間の肌色 薄い肌色',
+    '🧑🏽‍🐰‍🧑🏼' => 'バニー: 中間の肌色 やや薄い肌色',
+    '🧑🏽‍🐰‍🧑🏾' => 'バニー: 中間の肌色 やや濃い肌色',
+    '🧑🏽‍🐰‍🧑🏿' => 'バニー: 中間の肌色 濃い肌色',
+    '🧑🏾‍🐰‍🧑🏻' => 'バニー: やや濃い肌色 薄い肌色',
+    '🧑🏾‍🐰‍🧑🏼' => 'バニー: やや濃い肌色 やや薄い肌色',
+    '🧑🏾‍🐰‍🧑🏽' => 'バニー: やや濃い肌色 中間の肌色',
+    '🧑🏾‍🐰‍🧑🏿' => 'バニー: やや濃い肌色 濃い肌色',
+    '🧑🏿‍🐰‍🧑🏻' => 'バニー: 濃い肌色 薄い肌色',
+    '🧑🏿‍🐰‍🧑🏼' => 'バニー: 濃い肌色 やや薄い肌色',
+    '🧑🏿‍🐰‍🧑🏽' => 'バニー: 濃い肌色 中間の肌色',
+    '🧑🏿‍🐰‍🧑🏾' => 'バニー: 濃い肌色 やや濃い肌色',
+    '👨🏻‍🫯‍👨🏼' => 'レスリングする男: 薄い肌色 やや薄い肌色',
+    '👨🏻‍🫯‍👨🏽' => 'レスリングする男: 薄い肌色 中間の肌色',
+    '👨🏻‍🫯‍👨🏾' => 'レスリングする男: 薄い肌色 やや濃い肌色',
+    '👨🏻‍🫯‍👨🏿' => 'レスリングする男: 薄い肌色 濃い肌色',
+    '👨🏼‍🫯‍👨🏻' => 'レスリングする男: やや薄い肌色 薄い肌色',
+    '👨🏼‍🫯‍👨🏽' => 'レスリングする男: やや薄い肌色 中間の肌色',
+    '👨🏼‍🫯‍👨🏾' => 'レスリングする男: やや薄い肌色 やや濃い肌色',
+    '👨🏼‍🫯‍👨🏿' => 'レスリングする男: やや薄い肌色 濃い肌色',
+    '👨🏽‍🫯‍👨🏻' => 'レスリングする男: 中間の肌色 薄い肌色',
+    '👨🏽‍🫯‍👨🏼' => 'レスリングする男: 中間の肌色 やや薄い肌色',
+    '👨🏽‍🫯‍👨🏾' => 'レスリングする男: 中間の肌色 やや濃い肌色',
+    '👨🏽‍🫯‍👨🏿' => 'レスリングする男: 中間の肌色 濃い肌色',
+    '👨🏾‍🫯‍👨🏻' => 'レスリングする男: やや濃い肌色 薄い肌色',
+    '👨🏾‍🫯‍👨🏼' => 'レスリングする男: やや濃い肌色 やや薄い肌色',
+    '👨🏾‍🫯‍👨🏽' => 'レスリングする男: やや濃い肌色 中間の肌色',
+    '👨🏾‍🫯‍👨🏿' => 'レスリングする男: やや濃い肌色 濃い肌色',
+    '👨🏿‍🫯‍👨🏻' => 'レスリングする男: 濃い肌色 薄い肌色',
+    '👨🏿‍🫯‍👨🏼' => 'レスリングする男: 濃い肌色 やや薄い肌色',
+    '👨🏿‍🫯‍👨🏽' => 'レスリングする男: 濃い肌色 中間の肌色',
+    '👨🏿‍🫯‍👨🏾' => 'レスリングする男: 濃い肌色 やや濃い肌色',
     '👨🏻‍❤‍👨🏻' => 'カップルとハート: 男性 男性 薄い肌色',
     '👨🏻‍❤‍👨🏼' => 'カップルとハート: 男性 男性 薄い肌色 やや薄い肌色',
     '👨🏻‍❤‍👨🏽' => 'カップルとハート: 男性 男性 薄い肌色 中間の肌色',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'カップルとハート: 男性 男性 濃い肌色 中間の肌色',
     '👨🏿‍❤‍👨🏾' => 'カップルとハート: 男性 男性 濃い肌色 やや濃い肌色',
     '👨🏿‍❤‍👨🏿' => 'カップルとハート: 男性 男性 濃い肌色',
+    '👨🏻‍🐰‍👨🏼' => 'バニーボーイ: 薄い肌色 やや薄い肌色',
+    '👨🏻‍🐰‍👨🏽' => 'バニーボーイ: 薄い肌色 中間の肌色',
+    '👨🏻‍🐰‍👨🏾' => 'バニーボーイ: 薄い肌色 やや濃い肌色',
+    '👨🏻‍🐰‍👨🏿' => 'バニーボーイ: 薄い肌色 濃い肌色',
+    '👨🏼‍🐰‍👨🏻' => 'バニーボーイ: やや薄い肌色 薄い肌色',
+    '👨🏼‍🐰‍👨🏽' => 'バニーボーイ: やや薄い肌色 中間の肌色',
+    '👨🏼‍🐰‍👨🏾' => 'バニーボーイ: やや薄い肌色 やや濃い肌色',
+    '👨🏼‍🐰‍👨🏿' => 'バニーボーイ: やや薄い肌色 濃い肌色',
+    '👨🏽‍🐰‍👨🏻' => 'バニーボーイ: 中間の肌色 薄い肌色',
+    '👨🏽‍🐰‍👨🏼' => 'バニーボーイ: 中間の肌色 やや薄い肌色',
+    '👨🏽‍🐰‍👨🏾' => 'バニーボーイ: 中間の肌色 やや濃い肌色',
+    '👨🏽‍🐰‍👨🏿' => 'バニーボーイ: 中間の肌色 濃い肌色',
+    '👨🏾‍🐰‍👨🏻' => 'バニーボーイ: やや濃い肌色 薄い肌色',
+    '👨🏾‍🐰‍👨🏼' => 'バニーボーイ: やや濃い肌色 やや薄い肌色',
+    '👨🏾‍🐰‍👨🏽' => 'バニーボーイ: やや濃い肌色 中間の肌色',
+    '👨🏾‍🐰‍👨🏿' => 'バニーボーイ: やや濃い肌色 濃い肌色',
+    '👨🏿‍🐰‍👨🏻' => 'バニーボーイ: 濃い肌色 薄い肌色',
+    '👨🏿‍🐰‍👨🏼' => 'バニーボーイ: 濃い肌色 やや薄い肌色',
+    '👨🏿‍🐰‍👨🏽' => 'バニーボーイ: 濃い肌色 中間の肌色',
+    '👨🏿‍🐰‍👨🏾' => 'バニーボーイ: 濃い肌色 やや濃い肌色',
+    '👩🏻‍🫯‍👩🏼' => 'レスリングする女: 薄い肌色 やや薄い肌色',
+    '👩🏻‍🫯‍👩🏽' => 'レスリングする女: 薄い肌色 中間の肌色',
+    '👩🏻‍🫯‍👩🏾' => 'レスリングする女: 薄い肌色 やや濃い肌色',
+    '👩🏻‍🫯‍👩🏿' => 'レスリングする女: 薄い肌色 濃い肌色',
+    '👩🏼‍🫯‍👩🏻' => 'レスリングする女: やや薄い肌色 薄い肌色',
+    '👩🏼‍🫯‍👩🏽' => 'レスリングする女: やや薄い肌色 中間の肌色',
+    '👩🏼‍🫯‍👩🏾' => 'レスリングする女: やや薄い肌色 やや濃い肌色',
+    '👩🏼‍🫯‍👩🏿' => 'レスリングする女: やや薄い肌色 濃い肌色',
+    '👩🏽‍🫯‍👩🏻' => 'レスリングする女: 中間の肌色 薄い肌色',
+    '👩🏽‍🫯‍👩🏼' => 'レスリングする女: 中間の肌色 やや薄い肌色',
+    '👩🏽‍🫯‍👩🏾' => 'レスリングする女: 中間の肌色 やや濃い肌色',
+    '👩🏽‍🫯‍👩🏿' => 'レスリングする女: 中間の肌色 濃い肌色',
+    '👩🏾‍🫯‍👩🏻' => 'レスリングする女: やや濃い肌色 薄い肌色',
+    '👩🏾‍🫯‍👩🏼' => 'レスリングする女: やや濃い肌色 やや薄い肌色',
+    '👩🏾‍🫯‍👩🏽' => 'レスリングする女: やや濃い肌色 中間の肌色',
+    '👩🏾‍🫯‍👩🏿' => 'レスリングする女: やや濃い肌色 濃い肌色',
+    '👩🏿‍🫯‍👩🏻' => 'レスリングする女: 濃い肌色 薄い肌色',
+    '👩🏿‍🫯‍👩🏼' => 'レスリングする女: 濃い肌色 やや薄い肌色',
+    '👩🏿‍🫯‍👩🏽' => 'レスリングする女: 濃い肌色 中間の肌色',
+    '👩🏿‍🫯‍👩🏾' => 'レスリングする女: 濃い肌色 やや濃い肌色',
     '👩🏻‍❤‍👨🏻' => 'カップルとハート: 女性 男性 薄い肌色',
     '👩🏻‍❤‍👨🏼' => 'カップルとハート: 女性 男性 薄い肌色 やや薄い肌色',
     '👩🏻‍❤‍👨🏽' => 'カップルとハート: 女性 男性 薄い肌色 中間の肌色',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'カップルとハート: 女性 女性 濃い肌色 中間の肌色',
     '👩🏿‍❤‍👩🏾' => 'カップルとハート: 女性 女性 濃い肌色 やや濃い肌色',
     '👩🏿‍❤‍👩🏿' => 'カップルとハート: 女性 女性 濃い肌色',
+    '👩🏻‍🐰‍👩🏼' => 'バニーガール: 薄い肌色 やや薄い肌色',
+    '👩🏻‍🐰‍👩🏽' => 'バニーガール: 薄い肌色 中間の肌色',
+    '👩🏻‍🐰‍👩🏾' => 'バニーガール: 薄い肌色 やや濃い肌色',
+    '👩🏻‍🐰‍👩🏿' => 'バニーガール: 薄い肌色 濃い肌色',
+    '👩🏼‍🐰‍👩🏻' => 'バニーガール: やや薄い肌色 薄い肌色',
+    '👩🏼‍🐰‍👩🏽' => 'バニーガール: やや薄い肌色 中間の肌色',
+    '👩🏼‍🐰‍👩🏾' => 'バニーガール: やや薄い肌色 やや濃い肌色',
+    '👩🏼‍🐰‍👩🏿' => 'バニーガール: やや薄い肌色 濃い肌色',
+    '👩🏽‍🐰‍👩🏻' => 'バニーガール: 中間の肌色 薄い肌色',
+    '👩🏽‍🐰‍👩🏼' => 'バニーガール: 中間の肌色 やや薄い肌色',
+    '👩🏽‍🐰‍👩🏾' => 'バニーガール: 中間の肌色 やや濃い肌色',
+    '👩🏽‍🐰‍👩🏿' => 'バニーガール: 中間の肌色 濃い肌色',
+    '👩🏾‍🐰‍👩🏻' => 'バニーガール: やや濃い肌色 薄い肌色',
+    '👩🏾‍🐰‍👩🏼' => 'バニーガール: やや濃い肌色 やや薄い肌色',
+    '👩🏾‍🐰‍👩🏽' => 'バニーガール: やや濃い肌色 中間の肌色',
+    '👩🏾‍🐰‍👩🏿' => 'バニーガール: やや濃い肌色 濃い肌色',
+    '👩🏿‍🐰‍👩🏻' => 'バニーガール: 濃い肌色 薄い肌色',
+    '👩🏿‍🐰‍👩🏼' => 'バニーガール: 濃い肌色 やや薄い肌色',
+    '👩🏿‍🐰‍👩🏽' => 'バニーガール: 濃い肌色 中間の肌色',
+    '👩🏿‍🐰‍👩🏾' => 'バニーガール: 濃い肌色 やや濃い肌色',
     '🧑🏻‍🤝‍🧑🏻' => '手をつなぐ2人: 薄い肌色',
     '🧑🏻‍🤝‍🧑🏼' => '手をつなぐ2人: 薄い肌色 やや薄い肌色',
     '🧑🏻‍🤝‍🧑🏽' => '手をつなぐ2人: 薄い肌色 中間の肌色',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => '旗: スコットランド',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => '旗: ウェールズ',
     '🧑‍🧑‍🧒‍🧒' => '家族: 大人二人と子供二人',
-    '🚶🏻‍♀‍➡' => '歩く女 右向き',
-    '🚶🏼‍♀‍➡' => '歩く女 右向き',
-    '🚶🏽‍♀‍➡' => '歩く女 右向き',
-    '🚶🏾‍♀‍➡' => '歩く女 右向き',
-    '🚶🏿‍♀‍➡' => '歩く女 右向き',
-    '🚶🏻‍♂‍➡' => '歩く男 右向き',
-    '🚶🏼‍♂‍➡' => '歩く男 右向き',
-    '🚶🏽‍♂‍➡' => '歩く男 右向き',
-    '🚶🏾‍♂‍➡' => '歩く男 右向き',
-    '🚶🏿‍♂‍➡' => '歩く男 右向き',
-    '🧎🏻‍♀‍➡' => '正座する女性 右向き',
-    '🧎🏼‍♀‍➡' => '正座する女性 右向き',
-    '🧎🏽‍♀‍➡' => '正座する女性 右向き',
-    '🧎🏾‍♀‍➡' => '正座する女性 右向き',
-    '🧎🏿‍♀‍➡' => '正座する女性 右向き',
-    '🧎🏻‍♂‍➡' => '正座する男性 右向き',
-    '🧎🏼‍♂‍➡' => '正座する男性 右向き',
-    '🧎🏽‍♂‍➡' => '正座する男性 右向き',
-    '🧎🏾‍♂‍➡' => '正座する男性 右向き',
-    '🧎🏿‍♂‍➡' => '正座する男性 右向き',
-    '🧑🏻‍🦯‍➡' => '杖をついた人 右向き',
-    '🧑🏼‍🦯‍➡' => '杖をついた人 右向き',
-    '🧑🏽‍🦯‍➡' => '杖をついた人 右向き',
-    '🧑🏾‍🦯‍➡' => '杖をついた人 右向き',
-    '🧑🏿‍🦯‍➡' => '杖をついた人 右向き',
-    '👨🏻‍🦯‍➡' => '杖をついた男性 右向き',
-    '👨🏼‍🦯‍➡' => '杖をついた男性 右向き',
-    '👨🏽‍🦯‍➡' => '杖をついた男性 右向き',
-    '👨🏾‍🦯‍➡' => '杖をついた男性 右向き',
-    '👨🏿‍🦯‍➡' => '杖をついた男性 右向き',
-    '👩🏻‍🦯‍➡' => '杖をついた女性 右向き',
-    '👩🏼‍🦯‍➡' => '杖をついた女性 右向き',
-    '👩🏽‍🦯‍➡' => '杖をついた女性 右向き',
-    '👩🏾‍🦯‍➡' => '杖をついた女性 右向き',
-    '👩🏿‍🦯‍➡' => '杖をついた女性 右向き',
-    '🧑🏻‍🦼‍➡' => '電動車椅子の人 右向き',
-    '🧑🏼‍🦼‍➡' => '電動車椅子の人 右向き',
-    '🧑🏽‍🦼‍➡' => '電動車椅子の人 右向き',
-    '🧑🏾‍🦼‍➡' => '電動車椅子の人 右向き',
-    '🧑🏿‍🦼‍➡' => '電動車椅子の人 右向き',
-    '👨🏻‍🦼‍➡' => '電動車椅子の男性 右向き',
-    '👨🏼‍🦼‍➡' => '電動車椅子の男性 右向き',
-    '👨🏽‍🦼‍➡' => '電動車椅子の男性 右向き',
-    '👨🏾‍🦼‍➡' => '電動車椅子の男性 右向き',
-    '👨🏿‍🦼‍➡' => '電動車椅子の男性 右向き',
-    '👩🏻‍🦼‍➡' => '電動車椅子の女性 右向き',
-    '👩🏼‍🦼‍➡' => '電動車椅子の女性 右向き',
-    '👩🏽‍🦼‍➡' => '電動車椅子の女性 右向き',
-    '👩🏾‍🦼‍➡' => '電動車椅子の女性 右向き',
-    '👩🏿‍🦼‍➡' => '電動車椅子の女性 右向き',
-    '🧑🏻‍🦽‍➡' => '手動式車椅子の人 右向き',
-    '🧑🏼‍🦽‍➡' => '手動式車椅子の人 右向き',
-    '🧑🏽‍🦽‍➡' => '手動式車椅子の人 右向き',
-    '🧑🏾‍🦽‍➡' => '手動式車椅子の人 右向き',
-    '🧑🏿‍🦽‍➡' => '手動式車椅子の人 右向き',
-    '👨🏻‍🦽‍➡' => '手動式車椅子の男性 右向き',
-    '👨🏼‍🦽‍➡' => '手動式車椅子の男性 右向き',
-    '👨🏽‍🦽‍➡' => '手動式車椅子の男性 右向き',
-    '👨🏾‍🦽‍➡' => '手動式車椅子の男性 右向き',
-    '👨🏿‍🦽‍➡' => '手動式車椅子の男性 右向き',
-    '👩🏻‍🦽‍➡' => '手動式車椅子の女性 右向き',
-    '👩🏼‍🦽‍➡' => '手動式車椅子の女性 右向き',
-    '👩🏽‍🦽‍➡' => '手動式車椅子の女性 右向き',
-    '👩🏾‍🦽‍➡' => '手動式車椅子の女性 右向き',
-    '👩🏿‍🦽‍➡' => '手動式車椅子の女性 右向き',
-    '🏃🏻‍♀‍➡' => '走る女 右向き',
-    '🏃🏼‍♀‍➡' => '走る女 右向き',
-    '🏃🏽‍♀‍➡' => '走る女 右向き',
-    '🏃🏾‍♀‍➡' => '走る女 右向き',
-    '🏃🏿‍♀‍➡' => '走る女 右向き',
-    '🏃🏻‍♂‍➡' => '走る男 右向き',
-    '🏃🏼‍♂‍➡' => '走る男 右向き',
-    '🏃🏽‍♂‍➡' => '走る男 右向き',
-    '🏃🏾‍♂‍➡' => '走る男 右向き',
-    '🏃🏿‍♂‍➡' => '走る男 右向き',
+    '🚶🏻‍♀‍➡' => '歩く女: 薄い肌色 右向き',
+    '🚶🏼‍♀‍➡' => '歩く女: やや薄い肌色 右向き',
+    '🚶🏽‍♀‍➡' => '歩く女: 中間の肌色 右向き',
+    '🚶🏾‍♀‍➡' => '歩く女: やや濃い肌色 右向き',
+    '🚶🏿‍♀‍➡' => '歩く女: 濃い肌色 右向き',
+    '🚶🏻‍♂‍➡' => '歩く男: 薄い肌色 右向き',
+    '🚶🏼‍♂‍➡' => '歩く男: やや薄い肌色 右向き',
+    '🚶🏽‍♂‍➡' => '歩く男: 中間の肌色 右向き',
+    '🚶🏾‍♂‍➡' => '歩く男: やや濃い肌色 右向き',
+    '🚶🏿‍♂‍➡' => '歩く男: 濃い肌色 右向き',
+    '🧎🏻‍♀‍➡' => '正座する女性: 薄い肌色 右向き',
+    '🧎🏼‍♀‍➡' => '正座する女性: やや薄い肌色 右向き',
+    '🧎🏽‍♀‍➡' => '正座する女性: 中間の肌色 右向き',
+    '🧎🏾‍♀‍➡' => '正座する女性: やや濃い肌色 右向き',
+    '🧎🏿‍♀‍➡' => '正座する女性: 濃い肌色 右向き',
+    '🧎🏻‍♂‍➡' => '正座する男性: 薄い肌色 右向き',
+    '🧎🏼‍♂‍➡' => '正座する男性: やや薄い肌色 右向き',
+    '🧎🏽‍♂‍➡' => '正座する男性: 中間の肌色 右向き',
+    '🧎🏾‍♂‍➡' => '正座する男性: やや濃い肌色 右向き',
+    '🧎🏿‍♂‍➡' => '正座する男性: 濃い肌色 右向き',
+    '🧑🏻‍🦯‍➡' => '杖をついた人: 薄い肌色 右向き',
+    '🧑🏼‍🦯‍➡' => '杖をついた人: やや薄い肌色 右向き',
+    '🧑🏽‍🦯‍➡' => '杖をついた人: 中間の肌色 右向き',
+    '🧑🏾‍🦯‍➡' => '杖をついた人: やや濃い肌色 右向き',
+    '🧑🏿‍🦯‍➡' => '杖をついた人: 濃い肌色 右向き',
+    '👨🏻‍🦯‍➡' => '杖をついた男性: 薄い肌色 右向き',
+    '👨🏼‍🦯‍➡' => '杖をついた男性: やや薄い肌色 右向き',
+    '👨🏽‍🦯‍➡' => '杖をついた男性: 中間の肌色 右向き',
+    '👨🏾‍🦯‍➡' => '杖をついた男性: やや濃い肌色 右向き',
+    '👨🏿‍🦯‍➡' => '杖をついた男性: 濃い肌色 右向き',
+    '👩🏻‍🦯‍➡' => '杖をついた女性: 薄い肌色 右向き',
+    '👩🏼‍🦯‍➡' => '杖をついた女性: やや薄い肌色 右向き',
+    '👩🏽‍🦯‍➡' => '杖をついた女性: 中間の肌色 右向き',
+    '👩🏾‍🦯‍➡' => '杖をついた女性: やや濃い肌色 右向き',
+    '👩🏿‍🦯‍➡' => '杖をついた女性: 濃い肌色 右向き',
+    '🧑🏻‍🦼‍➡' => '電動車椅子の人: 薄い肌色 右向き',
+    '🧑🏼‍🦼‍➡' => '電動車椅子の人: やや薄い肌色 右向き',
+    '🧑🏽‍🦼‍➡' => '電動車椅子の人: 中間の肌色 右向き',
+    '🧑🏾‍🦼‍➡' => '電動車椅子の人: やや濃い肌色 右向き',
+    '🧑🏿‍🦼‍➡' => '電動車椅子の人: 濃い肌色 右向き',
+    '👨🏻‍🦼‍➡' => '電動車椅子の男性: 薄い肌色 右向き',
+    '👨🏼‍🦼‍➡' => '電動車椅子の男性: やや薄い肌色 右向き',
+    '👨🏽‍🦼‍➡' => '電動車椅子の男性: 中間の肌色 右向き',
+    '👨🏾‍🦼‍➡' => '電動車椅子の男性: やや濃い肌色 右向き',
+    '👨🏿‍🦼‍➡' => '電動車椅子の男性: 濃い肌色 右向き',
+    '👩🏻‍🦼‍➡' => '電動車椅子の女性: 薄い肌色 右向き',
+    '👩🏼‍🦼‍➡' => '電動車椅子の女性: やや薄い肌色 右向き',
+    '👩🏽‍🦼‍➡' => '電動車椅子の女性: 中間の肌色 右向き',
+    '👩🏾‍🦼‍➡' => '電動車椅子の女性: やや濃い肌色 右向き',
+    '👩🏿‍🦼‍➡' => '電動車椅子の女性: 濃い肌色 右向き',
+    '🧑🏻‍🦽‍➡' => '手動式車椅子の人: 薄い肌色 右向き',
+    '🧑🏼‍🦽‍➡' => '手動式車椅子の人: やや薄い肌色 右向き',
+    '🧑🏽‍🦽‍➡' => '手動式車椅子の人: 中間の肌色 右向き',
+    '🧑🏾‍🦽‍➡' => '手動式車椅子の人: やや濃い肌色 右向き',
+    '🧑🏿‍🦽‍➡' => '手動式車椅子の人: 濃い肌色 右向き',
+    '👨🏻‍🦽‍➡' => '手動式車椅子の男性: 薄い肌色 右向き',
+    '👨🏼‍🦽‍➡' => '手動式車椅子の男性: やや薄い肌色 右向き',
+    '👨🏽‍🦽‍➡' => '手動式車椅子の男性: 中間の肌色 右向き',
+    '👨🏾‍🦽‍➡' => '手動式車椅子の男性: やや濃い肌色 右向き',
+    '👨🏿‍🦽‍➡' => '手動式車椅子の男性: 濃い肌色 右向き',
+    '👩🏻‍🦽‍➡' => '手動式車椅子の女性: 薄い肌色 右向き',
+    '👩🏼‍🦽‍➡' => '手動式車椅子の女性: やや薄い肌色 右向き',
+    '👩🏽‍🦽‍➡' => '手動式車椅子の女性: 中間の肌色 右向き',
+    '👩🏾‍🦽‍➡' => '手動式車椅子の女性: やや濃い肌色 右向き',
+    '👩🏿‍🦽‍➡' => '手動式車椅子の女性: 濃い肌色 右向き',
+    '🏃🏻‍♀‍➡' => '走る女: 薄い肌色 右向き',
+    '🏃🏼‍♀‍➡' => '走る女: やや薄い肌色 右向き',
+    '🏃🏽‍♀‍➡' => '走る女: 中間の肌色 右向き',
+    '🏃🏾‍♀‍➡' => '走る女: やや濃い肌色 右向き',
+    '🏃🏿‍♀‍➡' => '走る女: 濃い肌色 右向き',
+    '🏃🏻‍♂‍➡' => '走る男: 薄い肌色 右向き',
+    '🏃🏼‍♂‍➡' => '走る男: やや薄い肌色 右向き',
+    '🏃🏽‍♂‍➡' => '走る男: 中間の肌色 右向き',
+    '🏃🏾‍♂‍➡' => '走る男: やや濃い肌色 右向き',
+    '🏃🏿‍♂‍➡' => '走る男: 濃い肌色 右向き',
     '🫱🏻‍🫲🏼' => '握手: 薄い肌色 やや薄い肌色',
     '🫱🏻‍🫲🏽' => '握手: 薄い肌色 中間の肌色',
     '🫱🏻‍🫲🏾' => '握手: 薄い肌色 やや濃い肌色',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => '握手: 濃い肌色 やや薄い肌色',
     '🫱🏿‍🫲🏽' => '握手: 濃い肌色 中間の肌色',
     '🫱🏿‍🫲🏾' => '握手: 濃い肌色 やや濃い肌色',
-    '🚶‍♀‍➡' => '歩く女 右向き',
-    '🚶‍♂‍➡' => '歩く男 右向き',
-    '🧎‍♀‍➡' => '正座する女性 右向き',
-    '🧎‍♂‍➡' => '正座する男性 右向き',
-    '🧑‍🦯‍➡' => '杖をついた人 右向き',
-    '👨‍🦯‍➡' => '杖をついた男性 右向き',
-    '👩‍🦯‍➡' => '杖をついた女性 右向き',
-    '🧑‍🦼‍➡' => '電動車椅子の人 右向き',
-    '👨‍🦼‍➡' => '電動車椅子の男性 右向き',
-    '👩‍🦼‍➡' => '電動車椅子の女性 右向き',
-    '🧑‍🦽‍➡' => '手動式車椅子の人 右向き',
-    '👨‍🦽‍➡' => '手動式車椅子の男性 右向き',
-    '👩‍🦽‍➡' => '手動式車椅子の女性 右向き',
-    '🏃‍♀‍➡' => '走る女 右向き',
-    '🏃‍♂‍➡' => '走る男 右向き',
+    '🚶‍♀‍➡' => '歩く女: 右向き',
+    '🚶‍♂‍➡' => '歩く男: 右向き',
+    '🧎‍♀‍➡' => '正座する女性: 右向き',
+    '🧎‍♂‍➡' => '正座する男性: 右向き',
+    '🧑‍🦯‍➡' => '杖をついた人: 右向き',
+    '👨‍🦯‍➡' => '杖をついた男性: 右向き',
+    '👩‍🦯‍➡' => '杖をついた女性: 右向き',
+    '🧑‍🦼‍➡' => '電動車椅子の人: 右向き',
+    '👨‍🦼‍➡' => '電動車椅子の男性: 右向き',
+    '👩‍🦼‍➡' => '電動車椅子の女性: 右向き',
+    '🧑‍🦽‍➡' => '手動式車椅子の人: 右向き',
+    '👨‍🦽‍➡' => '手動式車椅子の男性: 右向き',
+    '👩‍🦽‍➡' => '手動式車椅子の女性: 右向き',
+    '🏃‍♀‍➡' => '走る女: 右向き',
+    '🏃‍♂‍➡' => '走る男: 右向き',
     '👩‍❤‍👨' => 'カップルとハート: 女性 男性',
     '👨‍❤‍👨' => 'カップルとハート: 男性 男性',
     '👩‍❤‍👩' => 'カップルとハート: 女性 女性',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => '大人: 中間の肌色 はげ頭',
     '🧑🏾‍🦲' => '大人: やや濃い肌色 はげ頭',
     '🧑🏿‍🦲' => '大人: 濃い肌色 はげ頭',
+    '🧑🏻‍🩰' => 'バレエダンサー: 薄い肌色',
+    '🧑🏼‍🩰' => 'バレエダンサー: やや薄い肌色',
+    '🧑🏽‍🩰' => 'バレエダンサー: 中間の肌色',
+    '🧑🏾‍🩰' => 'バレエダンサー: やや濃い肌色',
+    '🧑🏿‍🩰' => 'バレエダンサー: 濃い肌色',
     '🧔🏻‍♂' => 'あごひげの男性: 薄い肌色',
     '🧔🏼‍♂' => 'あごひげの男性: やや薄い肌色',
     '🧔🏽‍♂' => 'あごひげの男性: 中間の肌色',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => '歩く女: 中間の肌色',
     '🚶🏾‍♀' => '歩く女: やや濃い肌色',
     '🚶🏿‍♀' => '歩く女: 濃い肌色',
-    '🚶🏻‍➡' => '歩く人 右向き',
-    '🚶🏼‍➡' => '歩く人 右向き',
-    '🚶🏽‍➡' => '歩く人 右向き',
-    '🚶🏾‍➡' => '歩く人 右向き',
-    '🚶🏿‍➡' => '歩く人 右向き',
+    '🚶🏻‍➡' => '歩く人: 薄い肌色 右向き',
+    '🚶🏼‍➡' => '歩く人: やや薄い肌色 右向き',
+    '🚶🏽‍➡' => '歩く人: 中間の肌色 右向き',
+    '🚶🏾‍➡' => '歩く人: やや濃い肌色 右向き',
+    '🚶🏿‍➡' => '歩く人: 濃い肌色 右向き',
     '🧍🏻‍♂' => '立つ男: 薄い肌色',
     '🧍🏼‍♂' => '立つ男: やや薄い肌色',
     '🧍🏽‍♂' => '立つ男: 中間の肌色',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => '正座する女性: 中間の肌色',
     '🧎🏾‍♀' => '正座する女性: やや濃い肌色',
     '🧎🏿‍♀' => '正座する女性: 濃い肌色',
-    '🧎🏻‍➡' => '正座する人 右向き',
-    '🧎🏼‍➡' => '正座する人 右向き',
-    '🧎🏽‍➡' => '正座する人 右向き',
-    '🧎🏾‍➡' => '正座する人 右向き',
-    '🧎🏿‍➡' => '正座する人 右向き',
+    '🧎🏻‍➡' => '正座する人: 薄い肌色 右向き',
+    '🧎🏼‍➡' => '正座する人: やや薄い肌色 右向き',
+    '🧎🏽‍➡' => '正座する人: 中間の肌色 右向き',
+    '🧎🏾‍➡' => '正座する人: やや濃い肌色 右向き',
+    '🧎🏿‍➡' => '正座する人: 濃い肌色 右向き',
     '🧑🏻‍🦯' => '杖をついた人: 薄い肌色',
     '🧑🏼‍🦯' => '杖をついた人: やや薄い肌色',
     '🧑🏽‍🦯' => '杖をついた人: 中間の肌色',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => '走る女: 中間の肌色',
     '🏃🏾‍♀' => '走る女: やや濃い肌色',
     '🏃🏿‍♀' => '走る女: 濃い肌色',
-    '🏃🏻‍➡' => '走る人 右向き',
-    '🏃🏼‍➡' => '走る人 右向き',
-    '🏃🏽‍➡' => '走る人 右向き',
-    '🏃🏾‍➡' => '走る人 右向き',
-    '🏃🏿‍➡' => '走る人 右向き',
+    '🏃🏻‍➡' => '走る人: 薄い肌色 右向き',
+    '🏃🏼‍➡' => '走る人: やや薄い肌色 右向き',
+    '🏃🏽‍➡' => '走る人: 中間の肌色 右向き',
+    '🏃🏾‍➡' => '走る人: やや濃い肌色 右向き',
+    '🏃🏿‍➡' => '走る人: 濃い肌色 右向き',
+    '👯🏻‍♀' => 'バニーガール: 薄い肌色',
+    '👯🏼‍♀' => 'バニーガール: やや薄い肌色',
+    '👯🏽‍♀' => 'バニーガール: 中間の肌色',
+    '👯🏾‍♀' => 'バニーガール: やや濃い肌色',
+    '👯🏿‍♀' => 'バニーガール: 濃い肌色',
+    '👯🏻‍♂' => 'バニーボーイ: 薄い肌色',
+    '👯🏼‍♂' => 'バニーボーイ: やや薄い肌色',
+    '👯🏽‍♂' => 'バニーボーイ: 中間の肌色',
+    '👯🏾‍♂' => 'バニーボーイ: やや濃い肌色',
+    '👯🏿‍♂' => 'バニーボーイ: 濃い肌色',
     '🧖🏻‍♂' => 'サウナに入る男: 薄い肌色',
     '🧖🏼‍♂' => 'サウナに入る男: やや薄い肌色',
     '🧖🏽‍♂' => 'サウナに入る男: 中間の肌色',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => '側転する女: 中間の肌色',
     '🤸🏾‍♀' => '側転する女: やや濃い肌色',
     '🤸🏿‍♀' => '側転する女: 濃い肌色',
+    '🤼🏻‍♀' => 'レスリングする女: 薄い肌色',
+    '🤼🏼‍♀' => 'レスリングする女: やや薄い肌色',
+    '🤼🏽‍♀' => 'レスリングする女: 中間の肌色',
+    '🤼🏾‍♀' => 'レスリングする女: やや濃い肌色',
+    '🤼🏿‍♀' => 'レスリングする女: 濃い肌色',
+    '🤼🏻‍♂' => 'レスリングする男: 薄い肌色',
+    '🤼🏼‍♂' => 'レスリングする男: やや薄い肌色',
+    '🤼🏽‍♂' => 'レスリングする男: 中間の肌色',
+    '🤼🏾‍♂' => 'レスリングする男: やや濃い肌色',
+    '🤼🏿‍♂' => 'レスリングする男: 濃い肌色',
     '🤽🏻‍♂' => '水球をする男: 薄い肌色',
     '🤽🏼‍♂' => '水球をする男: やや薄い肌色',
     '🤽🏽‍♂' => '水球をする男: 中間の肌色',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => '女性: 巻き毛',
     '👩‍🦳' => '女性: 白髪',
     '👩‍🦲' => '女性: はげ頭',
-    '🚶‍➡' => '歩く人 右向き',
-    '🧎‍➡' => '正座する人 右向き',
-    '🏃‍➡' => '走る人 右向き',
+    '🚶‍➡' => '歩く人: 右向き',
+    '🧎‍➡' => '正座する人: 右向き',
+    '🏃‍➡' => '走る人: 右向き',
     '👨‍👦' => '家族: 男性 男の子',
     '👨‍👧' => '家族: 男性 女の子',
     '👩‍👦' => '家族: 女性 男の子',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => '手動式車椅子の女性',
     '🏃‍♂' => '走る男',
     '🏃‍♀' => '走る女',
+    '🧑‍🩰' => 'バレエダンサー',
     '👯‍♂' => 'バニーボーイ',
     '👯‍♀' => 'バニーガール',
     '🧖‍♂' => 'サウナに入る男',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => '浮いてるビジネスマン: 中間の肌色',
     '🕴🏾' => '浮いてるビジネスマン: やや濃い肌色',
     '🕴🏿' => '浮いてるビジネスマン: 濃い肌色',
+    '👯🏻' => 'バニー: 薄い肌色',
+    '👯🏼' => 'バニー: やや薄い肌色',
+    '👯🏽' => 'バニー: 中間の肌色',
+    '👯🏾' => 'バニー: やや濃い肌色',
+    '👯🏿' => 'バニー: 濃い肌色',
     '🧖🏻' => 'サウナに入る人: 薄い肌色',
     '🧖🏼' => 'サウナに入る人: やや薄い肌色',
     '🧖🏽' => 'サウナに入る人: 中間の肌色',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => '側転する人: 中間の肌色',
     '🤸🏾' => '側転する人: やや濃い肌色',
     '🤸🏿' => '側転する人: 濃い肌色',
+    '🤼🏻' => 'レスリングする人: 薄い肌色',
+    '🤼🏼' => 'レスリングする人: やや薄い肌色',
+    '🤼🏽' => 'レスリングする人: 中間の肌色',
+    '🤼🏾' => 'レスリングする人: やや濃い肌色',
+    '🤼🏿' => 'レスリングする人: 濃い肌色',
     '🤽🏻' => '水球をする人: 薄い肌色',
     '🤽🏼' => '水球をする人: やや薄い肌色',
     '🤽🏽' => '水球をする人: 中間の肌色',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => '旗: 中国',
     '🇨🇴' => '旗: コロンビア',
     '🇨🇵' => '旗: クリッパートン島',
+    '🇨🇶' => '旗: サーク島',
     '🇨🇷' => '旗: コスタリカ',
     '🇨🇺' => '旗: キューバ',
     '🇨🇻' => '旗: カーボベルデ',
@@ -2390,13 +2547,6 @@
     '🏽' => '中間の肌色',
     '🏾' => 'やや濃い肌色',
     '🏿' => '濃い肌色',
-    '🪉' => 'ハープ',
-    '🪏' => 'シャベル',
-    '🪾' => '枯れ木',
-    '🫆' => '指紋',
-    '🫜' => '根菜',
-    '🫟' => '飛び散ったペンキ',
-    '🫩' => '目にクマがある顔',
     '😀' => 'にっこり笑う',
     '😃' => 'わーい',
     '😄' => '笑顔',
@@ -2450,6 +2600,7 @@
     '😪' => '眠い',
     '🤤' => 'よだれを垂らした顔',
     '😴' => '寝る',
+    '🫩' => '目にクマがある顔',
     '😷' => 'マスク顔',
     '🤒' => '熱がある顔',
     '🤕' => '包帯を巻いた顔',
@@ -2476,6 +2627,7 @@
     '😯' => 'ぽかーん',
     '😲' => 'びっくり',
     '😳' => '赤面',
+    '🫪' => 'ゆがんだ顔',
     '🥺' => '訴えるような顔',
     '🥹' => '涙をこらえた顔',
     '😦' => 'あきれ顔',
@@ -2547,6 +2699,7 @@
     '💋' => 'キスマーク',
     '💯' => '100点満点',
     '💢' => 'むかっ',
+    '🫯' => 'ボカスカ',
     '💥' => '衝突',
     '💫' => 'くらくら',
     '💦' => 'あせあせ',
@@ -2670,6 +2823,7 @@
     '🧞' => '精霊',
     '🧟' => 'ゾンビ',
     '🧌' => 'トロール',
+    '🫈' => '毛むくじゃらの生物',
     '💆' => 'フェイスマッサージ中の人',
     '💇' => '散髪される人',
     '🚶' => '歩く人',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ハグする人',
     '👪' => '家族',
     '👣' => '足あと',
+    '🫆' => '指紋',
     '🦰' => '赤毛',
     '🦱' => '巻き毛',
     '🦳' => '白髪',
@@ -2812,6 +2967,7 @@
     '🐳' => '潮吹きクジラ',
     '🐋' => 'クジラ',
     '🐬' => 'イルカ',
+    '🫍' => 'シャチ',
     '🦭' => 'アザラシ',
     '🐟' => '魚',
     '🐠' => '熱帯魚',
@@ -2821,6 +2977,11 @@
     '🐚' => '巻き貝',
     '🪸' => 'サンゴ',
     '🪼' => 'クラゲ',
+    '🦀' => 'カニ',
+    '🦞' => 'ザリガニ',
+    '🦐' => 'エビ',
+    '🦑' => 'イカ',
+    '🦪' => '牡蠣',
     '🐌' => 'かたつむり',
     '🦋' => 'チョウ',
     '🐛' => '毛虫',
@@ -2865,6 +3026,7 @@
     '🪹' => '空っぽの巣',
     '🪺' => '鳥の卵と巣',
     '🍄' => 'キノコ',
+    '🪾' => '枯れ木',
     '🍇' => 'ぶどう',
     '🍈' => 'メロン',
     '🍉' => 'スイカ',
@@ -2890,7 +3052,7 @@
     '🥕' => '人参',
     '🌽' => 'とうもろこし',
     '🌶' => 'とうがらし',
-    '🫑' => '赤ピーマン',
+    '🫑' => 'ピーマン',
     '🥒' => 'キュウリ',
     '🥬' => '葉野菜',
     '🥦' => 'ブロッコリー',
@@ -2901,6 +3063,7 @@
     '🌰' => 'くり',
     '🫚' => 'ショウガ',
     '🫛' => 'エンドウ豆',
+    '🫜' => '根菜',
     '🍞' => '食パン',
     '🥐' => 'クロワッサン',
     '🥖' => 'バゲット',
@@ -2952,11 +3115,6 @@
     '🥟' => '点心',
     '🥠' => 'フォーチュンクッキー',
     '🥡' => 'テイクアウト弁当',
-    '🦀' => 'カニ',
-    '🦞' => 'ザリガニ',
-    '🦐' => 'エビ',
-    '🦑' => 'イカ',
-    '🦪' => '牡蠣',
     '🍦' => 'ソフトクリーム',
     '🍧' => 'かき氷',
     '🍨' => 'アイスクリーム',
@@ -3007,6 +3165,7 @@
     '🧭' => 'コンパス',
     '🏔' => '雪山',
     '⛰' => '山',
+    '🛘' => '地滑り',
     '🌋' => '火山',
     '🗻' => '富士山',
     '🏕' => 'キャンプ',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ヘッドホン',
     '📻' => 'ラジオ',
     '🎷' => 'サックス',
+    '🎺' => 'トランペット',
+    '🪊' => 'トロンボーン',
     '🪗' => 'アコーディオン',
     '🎸' => 'ギター',
     '🎹' => '鍵盤',
-    '🎺' => 'トランペット',
     '🎻' => 'バイオリン',
     '🪕' => 'バンジョー',
     '🥁' => 'ドラム',
     '🪘' => 'コンガ',
     '🪇' => 'マラカス',
     '🪈' => '笛',
+    '🪉' => 'ハープ',
     '📱' => '携帯電話',
     '📲' => '着信中',
     '☎' => '固定電話',
@@ -3430,8 +3591,9 @@
     '📑' => 'ページに付箋',
     '🔖' => 'しおり',
     '🏷' => '荷札',
-    '💰' => 'ドル袋',
     '🪙' => 'コイン',
+    '💰' => 'ドル袋',
+    '🪎' => '宝箱',
     '💴' => '円札',
     '💵' => 'ドル札',
     '💶' => 'ユーロ札',
@@ -3514,6 +3676,7 @@
     '🧰' => '工具箱',
     '🧲' => 'U字型磁石',
     '🪜' => 'はしご',
+    '🪏' => 'シャベル',
     '⚗' => '蒸留器',
     '🧪' => '試験管',
     '🧫' => 'ペトリ皿',
@@ -3697,6 +3860,7 @@
     '✴' => '八角星',
     '❇' => 'スパークル',
     '™' => '商標マーク',
+    '🫟' => '飛び散ったペンキ',
     '🔠' => '英大文字の入力',
     '🔡' => '英小文字の入力',
     '🔢' => '数字の入力',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-jv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-jv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-jv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-jv.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ambung: wong wadon, wong wadon, kulit ireng, kulit kuning',
     '👩🏿‍❤‍💋‍👩🏾' => 'ambung: wong wadon, wong wadon, kulit ireng, kulit sawo mateng',
     '👩🏿‍❤‍💋‍👩🏿' => 'ambung: wong wadon, wong wadon, kulit ireng',
+    '🧑🏻‍🫯‍🧑🏼' => 'wong gulat: kulit putih, kulit putih langsep',
+    '🧑🏻‍🫯‍🧑🏽' => 'wong gulat: kulit putih, kulit kuning',
+    '🧑🏻‍🫯‍🧑🏾' => 'wong gulat: kulit putih, kulit sawo mateng',
+    '🧑🏻‍🫯‍🧑🏿' => 'wong gulat: kulit putih, kulit ireng',
+    '🧑🏼‍🫯‍🧑🏻' => 'wong gulat: kulit putih langsep, kulit putih',
+    '🧑🏼‍🫯‍🧑🏽' => 'wong gulat: kulit putih langsep, kulit kuning',
+    '🧑🏼‍🫯‍🧑🏾' => 'wong gulat: kulit putih langsep, kulit sawo mateng',
+    '🧑🏼‍🫯‍🧑🏿' => 'wong gulat: kulit putih langsep, kulit ireng',
+    '🧑🏽‍🫯‍🧑🏻' => 'wong gulat: kulit kuning, kulit putih',
+    '🧑🏽‍🫯‍🧑🏼' => 'wong gulat: kulit kuning, kulit putih langsep',
+    '🧑🏽‍🫯‍🧑🏾' => 'wong gulat: kulit kuning, kulit sawo mateng',
+    '🧑🏽‍🫯‍🧑🏿' => 'wong gulat: kulit kuning, kulit ireng',
+    '🧑🏾‍🫯‍🧑🏻' => 'wong gulat: kulit sawo mateng, kulit putih',
+    '🧑🏾‍🫯‍🧑🏼' => 'wong gulat: kulit sawo mateng, kulit putih langsep',
+    '🧑🏾‍🫯‍🧑🏽' => 'wong gulat: kulit sawo mateng, kulit kuning',
+    '🧑🏾‍🫯‍🧑🏿' => 'wong gulat: kulit sawo mateng, kulit ireng',
+    '🧑🏿‍🫯‍🧑🏻' => 'wong gulat: kulit ireng, kulit putih',
+    '🧑🏿‍🫯‍🧑🏼' => 'wong gulat: kulit ireng, kulit putih langsep',
+    '🧑🏿‍🫯‍🧑🏽' => 'wong gulat: kulit ireng, kulit kuning',
+    '🧑🏿‍🫯‍🧑🏾' => 'wong gulat: kulit ireng, kulit sawo mateng',
     '🧑🏻‍❤‍🧑🏼' => 'pasangan lan tandha ati: wong, wong, kulit putih, kulit putih langsep',
     '🧑🏻‍❤‍🧑🏽' => 'pasangan lan tandha ati: wong, wong, kulit putih, kulit kuning',
     '🧑🏻‍❤‍🧑🏾' => 'pasangan lan tandha ati: wong, wong, kulit putih, kulit sawo mateng',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pasangan lan tandha ati: wong, wong, kulit ireng, kulit putih langsep',
     '🧑🏿‍❤‍🧑🏽' => 'pasangan lan tandha ati: wong, wong, kulit ireng, kulit kuning',
     '🧑🏿‍❤‍🧑🏾' => 'pasangan lan tandha ati: wong, wong, kulit ireng, kulit sawo mateng',
+    '🧑🏻‍🐰‍🧑🏼' => 'wong nganggo kuping terwelu: kulit putih, kulit putih langsep',
+    '🧑🏻‍🐰‍🧑🏽' => 'wong nganggo kuping terwelu: kulit putih, kulit kuning',
+    '🧑🏻‍🐰‍🧑🏾' => 'wong nganggo kuping terwelu: kulit putih, kulit sawo mateng',
+    '🧑🏻‍🐰‍🧑🏿' => 'wong nganggo kuping terwelu: kulit putih, kulit ireng',
+    '🧑🏼‍🐰‍🧑🏻' => 'wong nganggo kuping terwelu: kulit putih langsep, kulit putih',
+    '🧑🏼‍🐰‍🧑🏽' => 'wong nganggo kuping terwelu: kulit putih langsep, kulit kuning',
+    '🧑🏼‍🐰‍🧑🏾' => 'wong nganggo kuping terwelu: kulit putih langsep, kulit sawo mateng',
+    '🧑🏼‍🐰‍🧑🏿' => 'wong nganggo kuping terwelu: kulit putih langsep, kulit ireng',
+    '🧑🏽‍🐰‍🧑🏻' => 'wong nganggo kuping terwelu: kulit kuning, kulit putih',
+    '🧑🏽‍🐰‍🧑🏼' => 'wong nganggo kuping terwelu: kulit kuning, kulit putih langsep',
+    '🧑🏽‍🐰‍🧑🏾' => 'wong nganggo kuping terwelu: kulit kuning, kulit sawo mateng',
+    '🧑🏽‍🐰‍🧑🏿' => 'wong nganggo kuping terwelu: kulit kuning, kulit ireng',
+    '🧑🏾‍🐰‍🧑🏻' => 'wong nganggo kuping terwelu: kulit sawo mateng, kulit putih',
+    '🧑🏾‍🐰‍🧑🏼' => 'wong nganggo kuping terwelu: kulit sawo mateng, kulit putih langsep',
+    '🧑🏾‍🐰‍🧑🏽' => 'wong nganggo kuping terwelu: kulit sawo mateng, kulit kuning',
+    '🧑🏾‍🐰‍🧑🏿' => 'wong nganggo kuping terwelu: kulit sawo mateng, kulit ireng',
+    '🧑🏿‍🐰‍🧑🏻' => 'wong nganggo kuping terwelu: kulit ireng, kulit putih',
+    '🧑🏿‍🐰‍🧑🏼' => 'wong nganggo kuping terwelu: kulit ireng, kulit putih langsep',
+    '🧑🏿‍🐰‍🧑🏽' => 'wong nganggo kuping terwelu: kulit ireng, kulit kuning',
+    '🧑🏿‍🐰‍🧑🏾' => 'wong nganggo kuping terwelu: kulit ireng, kulit sawo mateng',
+    '👨🏻‍🫯‍👨🏼' => 'wong lanang gulat: kulit putih, kulit putih langsep',
+    '👨🏻‍🫯‍👨🏽' => 'wong lanang gulat: kulit putih, kulit kuning',
+    '👨🏻‍🫯‍👨🏾' => 'wong lanang gulat: kulit putih, kulit sawo mateng',
+    '👨🏻‍🫯‍👨🏿' => 'wong lanang gulat: kulit putih, kulit ireng',
+    '👨🏼‍🫯‍👨🏻' => 'wong lanang gulat: kulit putih langsep, kulit putih',
+    '👨🏼‍🫯‍👨🏽' => 'wong lanang gulat: kulit putih langsep, kulit kuning',
+    '👨🏼‍🫯‍👨🏾' => 'wong lanang gulat: kulit putih langsep, kulit sawo mateng',
+    '👨🏼‍🫯‍👨🏿' => 'wong lanang gulat: kulit putih langsep, kulit ireng',
+    '👨🏽‍🫯‍👨🏻' => 'wong lanang gulat: kulit kuning, kulit putih',
+    '👨🏽‍🫯‍👨🏼' => 'wong lanang gulat: kulit kuning, kulit putih langsep',
+    '👨🏽‍🫯‍👨🏾' => 'wong lanang gulat: kulit kuning, kulit sawo mateng',
+    '👨🏽‍🫯‍👨🏿' => 'wong lanang gulat: kulit kuning, kulit ireng',
+    '👨🏾‍🫯‍👨🏻' => 'wong lanang gulat: kulit sawo mateng, kulit putih',
+    '👨🏾‍🫯‍👨🏼' => 'wong lanang gulat: kulit sawo mateng, kulit putih langsep',
+    '👨🏾‍🫯‍👨🏽' => 'wong lanang gulat: kulit sawo mateng, kulit kuning',
+    '👨🏾‍🫯‍👨🏿' => 'wong lanang gulat: kulit sawo mateng, kulit ireng',
+    '👨🏿‍🫯‍👨🏻' => 'wong lanang gulat: kulit ireng, kulit putih',
+    '👨🏿‍🫯‍👨🏼' => 'wong lanang gulat: kulit ireng, kulit putih langsep',
+    '👨🏿‍🫯‍👨🏽' => 'wong lanang gulat: kulit ireng, kulit kuning',
+    '👨🏿‍🫯‍👨🏾' => 'wong lanang gulat: kulit ireng, kulit sawo mateng',
     '👨🏻‍❤‍👨🏻' => 'pasangan lan tandha ati: wong lanang, wong lanang, kulit putih',
     '👨🏻‍❤‍👨🏼' => 'pasangan lan tandha ati: wong lanang, wong lanang, kulit putih, kulit putih langsep',
     '👨🏻‍❤‍👨🏽' => 'pasangan lan tandha ati: wong lanang, wong lanang, kulit putih, kulit kuning',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pasangan lan tandha ati: wong lanang, wong lanang, kulit ireng, kulit kuning',
     '👨🏿‍❤‍👨🏾' => 'pasangan lan tandha ati: wong lanang, wong lanang, kulit ireng, kulit sawo mateng',
     '👨🏿‍❤‍👨🏿' => 'pasangan lan tandha ati: wong lanang, wong lanang, kulit ireng',
+    '👨🏻‍🐰‍👨🏼' => 'wong lanang nganggo kuping terwelu: kulit putih, kulit putih langsep',
+    '👨🏻‍🐰‍👨🏽' => 'wong lanang nganggo kuping terwelu: kulit putih, kulit kuning',
+    '👨🏻‍🐰‍👨🏾' => 'wong lanang nganggo kuping terwelu: kulit putih, kulit sawo mateng',
+    '👨🏻‍🐰‍👨🏿' => 'wong lanang nganggo kuping terwelu: kulit putih, kulit ireng',
+    '👨🏼‍🐰‍👨🏻' => 'wong lanang nganggo kuping terwelu: kulit putih langsep, kulit putih',
+    '👨🏼‍🐰‍👨🏽' => 'wong lanang nganggo kuping terwelu: kulit putih langsep, kulit kuning',
+    '👨🏼‍🐰‍👨🏾' => 'wong lanang nganggo kuping terwelu: kulit putih langsep, kulit sawo mateng',
+    '👨🏼‍🐰‍👨🏿' => 'wong lanang nganggo kuping terwelu: kulit putih langsep, kulit ireng',
+    '👨🏽‍🐰‍👨🏻' => 'wong lanang nganggo kuping terwelu: kulit kuning, kulit putih',
+    '👨🏽‍🐰‍👨🏼' => 'wong lanang nganggo kuping terwelu: kulit kuning, kulit putih langsep',
+    '👨🏽‍🐰‍👨🏾' => 'wong lanang nganggo kuping terwelu: kulit kuning, kulit sawo mateng',
+    '👨🏽‍🐰‍👨🏿' => 'wong lanang nganggo kuping terwelu: kulit kuning, kulit ireng',
+    '👨🏾‍🐰‍👨🏻' => 'wong lanang nganggo kuping terwelu: kulit sawo mateng, kulit putih',
+    '👨🏾‍🐰‍👨🏼' => 'wong lanang nganggo kuping terwelu: kulit sawo mateng, kulit putih langsep',
+    '👨🏾‍🐰‍👨🏽' => 'wong lanang nganggo kuping terwelu: kulit sawo mateng, kulit kuning',
+    '👨🏾‍🐰‍👨🏿' => 'wong lanang nganggo kuping terwelu: kulit sawo mateng, kulit ireng',
+    '👨🏿‍🐰‍👨🏻' => 'wong lanang nganggo kuping terwelu: kulit ireng, kulit putih',
+    '👨🏿‍🐰‍👨🏼' => 'wong lanang nganggo kuping terwelu: kulit ireng, kulit putih langsep',
+    '👨🏿‍🐰‍👨🏽' => 'wong lanang nganggo kuping terwelu: kulit ireng, kulit kuning',
+    '👨🏿‍🐰‍👨🏾' => 'wong lanang nganggo kuping terwelu: kulit ireng, kulit sawo mateng',
+    '👩🏻‍🫯‍👩🏼' => 'wong wadon gulat: kulit putih, kulit putih langsep',
+    '👩🏻‍🫯‍👩🏽' => 'wong wadon gulat: kulit putih, kulit kuning',
+    '👩🏻‍🫯‍👩🏾' => 'wong wadon gulat: kulit putih, kulit sawo mateng',
+    '👩🏻‍🫯‍👩🏿' => 'wong wadon gulat: kulit putih, kulit ireng',
+    '👩🏼‍🫯‍👩🏻' => 'wong wadon gulat: kulit putih langsep, kulit putih',
+    '👩🏼‍🫯‍👩🏽' => 'wong wadon gulat: kulit putih langsep, kulit kuning',
+    '👩🏼‍🫯‍👩🏾' => 'wong wadon gulat: kulit putih langsep, kulit sawo mateng',
+    '👩🏼‍🫯‍👩🏿' => 'wong wadon gulat: kulit putih langsep, kulit ireng',
+    '👩🏽‍🫯‍👩🏻' => 'wong wadon gulat: kulit kuning, kulit putih',
+    '👩🏽‍🫯‍👩🏼' => 'wong wadon gulat: kulit kuning, kulit putih langsep',
+    '👩🏽‍🫯‍👩🏾' => 'wong wadon gulat: kulit kuning, kulit sawo mateng',
+    '👩🏽‍🫯‍👩🏿' => 'wong wadon gulat: kulit kuning, kulit ireng',
+    '👩🏾‍🫯‍👩🏻' => 'wong wadon gulat: kulit sawo mateng, kulit putih',
+    '👩🏾‍🫯‍👩🏼' => 'wong wadon gulat: kulit sawo mateng, kulit putih langsep',
+    '👩🏾‍🫯‍👩🏽' => 'wong wadon gulat: kulit sawo mateng, kulit kuning',
+    '👩🏾‍🫯‍👩🏿' => 'wong wadon gulat: kulit sawo mateng, kulit ireng',
+    '👩🏿‍🫯‍👩🏻' => 'wong wadon gulat: kulit ireng, kulit putih',
+    '👩🏿‍🫯‍👩🏼' => 'wong wadon gulat: kulit ireng, kulit putih langsep',
+    '👩🏿‍🫯‍👩🏽' => 'wong wadon gulat: kulit ireng, kulit kuning',
+    '👩🏿‍🫯‍👩🏾' => 'wong wadon gulat: kulit ireng, kulit sawo mateng',
     '👩🏻‍❤‍👨🏻' => 'pasangan lan tandha ati: wong wadon, wong lanang, kulit putih',
     '👩🏻‍❤‍👨🏼' => 'pasangan lan tandha ati: wong wadon, wong lanang, kulit putih, kulit putih langsep',
     '👩🏻‍❤‍👨🏽' => 'pasangan lan tandha ati: wong wadon, wong lanang, kulit putih, kulit kuning',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pasangan lan tandha ati: wong wadon, wong wadon, kulit ireng, kulit kuning',
     '👩🏿‍❤‍👩🏾' => 'pasangan lan tandha ati: wong wadon, wong wadon, kulit ireng, kulit sawo mateng',
     '👩🏿‍❤‍👩🏿' => 'pasangan lan tandha ati: wong wadon, wong wadon, kulit ireng',
+    '👩🏻‍🐰‍👩🏼' => 'wong wadon nganggo kuping terwelu: kulit putih, kulit putih langsep',
+    '👩🏻‍🐰‍👩🏽' => 'wong wadon nganggo kuping terwelu: kulit putih, kulit kuning',
+    '👩🏻‍🐰‍👩🏾' => 'wong wadon nganggo kuping terwelu: kulit putih, kulit sawo mateng',
+    '👩🏻‍🐰‍👩🏿' => 'wong wadon nganggo kuping terwelu: kulit putih, kulit ireng',
+    '👩🏼‍🐰‍👩🏻' => 'wong wadon nganggo kuping terwelu: kulit putih langsep, kulit putih',
+    '👩🏼‍🐰‍👩🏽' => 'wong wadon nganggo kuping terwelu: kulit putih langsep, kulit kuning',
+    '👩🏼‍🐰‍👩🏾' => 'wong wadon nganggo kuping terwelu: kulit putih langsep, kulit sawo mateng',
+    '👩🏼‍🐰‍👩🏿' => 'wong wadon nganggo kuping terwelu: kulit putih langsep, kulit ireng',
+    '👩🏽‍🐰‍👩🏻' => 'wong wadon nganggo kuping terwelu: kulit kuning, kulit putih',
+    '👩🏽‍🐰‍👩🏼' => 'wong wadon nganggo kuping terwelu: kulit kuning, kulit putih langsep',
+    '👩🏽‍🐰‍👩🏾' => 'wong wadon nganggo kuping terwelu: kulit kuning, kulit sawo mateng',
+    '👩🏽‍🐰‍👩🏿' => 'wong wadon nganggo kuping terwelu: kulit kuning, kulit ireng',
+    '👩🏾‍🐰‍👩🏻' => 'wong wadon nganggo kuping terwelu: kulit sawo mateng, kulit putih',
+    '👩🏾‍🐰‍👩🏼' => 'wong wadon nganggo kuping terwelu: kulit sawo mateng, kulit putih langsep',
+    '👩🏾‍🐰‍👩🏽' => 'wong wadon nganggo kuping terwelu: kulit sawo mateng, kulit kuning',
+    '👩🏾‍🐰‍👩🏿' => 'wong wadon nganggo kuping terwelu: kulit sawo mateng, kulit ireng',
+    '👩🏿‍🐰‍👩🏻' => 'wong wadon nganggo kuping terwelu: kulit ireng, kulit putih',
+    '👩🏿‍🐰‍👩🏼' => 'wong wadon nganggo kuping terwelu: kulit ireng, kulit putih langsep',
+    '👩🏿‍🐰‍👩🏽' => 'wong wadon nganggo kuping terwelu: kulit ireng, kulit kuning',
+    '👩🏿‍🐰‍👩🏾' => 'wong wadon nganggo kuping terwelu: kulit ireng, kulit sawo mateng',
     '🧑🏻‍🤝‍🧑🏻' => 'wong gandhengan tangan: kulit putih',
     '🧑🏻‍🤝‍🧑🏼' => 'wong gandhengan tangan: kulit putih, kulit putih langsep',
     '🧑🏻‍🤝‍🧑🏽' => 'wong gandhengan tangan: kulit putih, kulit kuning',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'gendera: Skotlandia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'gendera: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'kulawarga: diwasa, diwasa, anak, anak',
-    '🚶🏻‍♀‍➡' => 'wong wadon mlaku madhep tengen',
-    '🚶🏼‍♀‍➡' => 'wong wadon mlaku madhep tengen',
-    '🚶🏽‍♀‍➡' => 'wong wadon mlaku madhep tengen',
-    '🚶🏾‍♀‍➡' => 'wong wadon mlaku madhep tengen',
-    '🚶🏿‍♀‍➡' => 'wong wadon mlaku madhep tengen',
-    '🚶🏻‍♂‍➡' => 'wong lanang mlaku madhep tengen',
-    '🚶🏼‍♂‍➡' => 'wong lanang mlaku madhep tengen',
-    '🚶🏽‍♂‍➡' => 'wong lanang mlaku madhep tengen',
-    '🚶🏾‍♂‍➡' => 'wong lanang mlaku madhep tengen',
-    '🚶🏿‍♂‍➡' => 'wong lanang mlaku madhep tengen',
-    '🧎🏻‍♀‍➡' => 'wong wadon timpuh madhep tengen',
-    '🧎🏼‍♀‍➡' => 'wong wadon timpuh madhep tengen',
-    '🧎🏽‍♀‍➡' => 'wong wadon timpuh madhep tengen',
-    '🧎🏾‍♀‍➡' => 'wong wadon timpuh madhep tengen',
-    '🧎🏿‍♀‍➡' => 'wong wadon timpuh madhep tengen',
-    '🧎🏻‍♂‍➡' => 'wong lanang timpuh madhep tengen',
-    '🧎🏼‍♂‍➡' => 'wong lanang timpuh madhep tengen',
-    '🧎🏽‍♂‍➡' => 'wong lanang timpuh madhep tengen',
-    '🧎🏾‍♂‍➡' => 'wong lanang timpuh madhep tengen',
-    '🧎🏿‍♂‍➡' => 'wong lanang timpuh madhep tengen',
-    '🧑🏻‍🦯‍➡' => 'wong nyekeli teken madhep tengen',
-    '🧑🏼‍🦯‍➡' => 'wong nyekeli teken madhep tengen',
-    '🧑🏽‍🦯‍➡' => 'wong nyekeli teken madhep tengen',
-    '🧑🏾‍🦯‍➡' => 'wong nyekeli teken madhep tengen',
-    '🧑🏿‍🦯‍➡' => 'wong nyekeli teken madhep tengen',
-    '👨🏻‍🦯‍➡' => 'wong lanang nyekeli teken madhep tengen',
-    '👨🏼‍🦯‍➡' => 'wong lanang nyekeli teken madhep tengen',
-    '👨🏽‍🦯‍➡' => 'wong lanang nyekeli teken madhep tengen',
-    '👨🏾‍🦯‍➡' => 'wong lanang nyekeli teken madhep tengen',
-    '👨🏿‍🦯‍➡' => 'wong lanang nyekeli teken madhep tengen',
-    '👩🏻‍🦯‍➡' => 'wong wadon nyekeli teken madhep tengen',
-    '👩🏼‍🦯‍➡' => 'wong wadon nyekeli teken madhep tengen',
-    '👩🏽‍🦯‍➡' => 'wong wadon nyekeli teken madhep tengen',
-    '👩🏾‍🦯‍➡' => 'wong wadon nyekeli teken madhep tengen',
-    '👩🏿‍🦯‍➡' => 'wong wadon nyekeli teken madhep tengen',
-    '🧑🏻‍🦼‍➡' => 'wong numpak kursi rodha mesin madhep tengen',
-    '🧑🏼‍🦼‍➡' => 'wong numpak kursi rodha mesin madhep tengen',
-    '🧑🏽‍🦼‍➡' => 'wong numpak kursi rodha mesin madhep tengen',
-    '🧑🏾‍🦼‍➡' => 'wong numpak kursi rodha mesin madhep tengen',
-    '🧑🏿‍🦼‍➡' => 'wong numpak kursi rodha mesin madhep tengen',
-    '👨🏻‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin madhep tengen',
-    '👨🏼‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin madhep tengen',
-    '👨🏽‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin madhep tengen',
-    '👨🏾‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin madhep tengen',
-    '👨🏿‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin madhep tengen',
-    '👩🏻‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin madhep tengen',
-    '👩🏼‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin madhep tengen',
-    '👩🏽‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin madhep tengen',
-    '👩🏾‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin madhep tengen',
-    '👩🏿‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin madhep tengen',
-    '🧑🏻‍🦽‍➡' => 'wong numpak kursi rodha manual madhep tengen',
-    '🧑🏼‍🦽‍➡' => 'wong numpak kursi rodha manual madhep tengen',
-    '🧑🏽‍🦽‍➡' => 'wong numpak kursi rodha manual madhep tengen',
-    '🧑🏾‍🦽‍➡' => 'wong numpak kursi rodha manual madhep tengen',
-    '🧑🏿‍🦽‍➡' => 'wong numpak kursi rodha manual madhep tengen',
-    '👨🏻‍🦽‍➡' => 'wong lanang numpak kursi rodha manual madhep tengen',
-    '👨🏼‍🦽‍➡' => 'wong lanang numpak kursi rodha manual madhep tengen',
-    '👨🏽‍🦽‍➡' => 'wong lanang numpak kursi rodha manual madhep tengen',
-    '👨🏾‍🦽‍➡' => 'wong lanang numpak kursi rodha manual madhep tengen',
-    '👨🏿‍🦽‍➡' => 'wong lanang numpak kursi rodha manual madhep tengen',
-    '👩🏻‍🦽‍➡' => 'wong wadon numpak kursi rodha manual madhep tengen',
-    '👩🏼‍🦽‍➡' => 'wong wadon numpak kursi rodha manual madhep tengen',
-    '👩🏽‍🦽‍➡' => 'wong wadon numpak kursi rodha manual madhep tengen',
-    '👩🏾‍🦽‍➡' => 'wong wadon numpak kursi rodha manual madhep tengen',
-    '👩🏿‍🦽‍➡' => 'wong wadon numpak kursi rodha manual madhep tengen',
-    '🏃🏻‍♀‍➡' => 'wong wadon mlayu madhep tengen',
-    '🏃🏼‍♀‍➡' => 'wong wadon mlayu madhep tengen',
-    '🏃🏽‍♀‍➡' => 'wong wadon mlayu madhep tengen',
-    '🏃🏾‍♀‍➡' => 'wong wadon mlayu madhep tengen',
-    '🏃🏿‍♀‍➡' => 'wong wadon mlayu madhep tengen',
-    '🏃🏻‍♂‍➡' => 'wong lanang mlayu madhep tengen',
-    '🏃🏼‍♂‍➡' => 'wong lanang mlayu madhep tengen',
-    '🏃🏽‍♂‍➡' => 'wong lanang mlayu madhep tengen',
-    '🏃🏾‍♂‍➡' => 'wong lanang mlayu madhep tengen',
-    '🏃🏿‍♂‍➡' => 'wong lanang mlayu madhep tengen',
+    '🚶🏻‍♀‍➡' => 'wong wadon mlaku: kulit putih, madhep tengen',
+    '🚶🏼‍♀‍➡' => 'wong wadon mlaku: kulit putih langsep, madhep tengen',
+    '🚶🏽‍♀‍➡' => 'wong wadon mlaku: kulit kuning, madhep tengen',
+    '🚶🏾‍♀‍➡' => 'wong wadon mlaku: kulit sawo mateng, madhep tengen',
+    '🚶🏿‍♀‍➡' => 'wong wadon mlaku: kulit ireng, madhep tengen',
+    '🚶🏻‍♂‍➡' => 'wong lanang mlaku: kulit putih, madhep tengen',
+    '🚶🏼‍♂‍➡' => 'wong lanang mlaku: kulit putih langsep, madhep tengen',
+    '🚶🏽‍♂‍➡' => 'wong lanang mlaku: kulit kuning, madhep tengen',
+    '🚶🏾‍♂‍➡' => 'wong lanang mlaku: kulit sawo mateng, madhep tengen',
+    '🚶🏿‍♂‍➡' => 'wong lanang mlaku: kulit ireng, madhep tengen',
+    '🧎🏻‍♀‍➡' => 'wong wadon timpuh: kulit putih, madhep tengen',
+    '🧎🏼‍♀‍➡' => 'wong wadon timpuh: kulit putih langsep, madhep tengen',
+    '🧎🏽‍♀‍➡' => 'wong wadon timpuh: kulit kuning, madhep tengen',
+    '🧎🏾‍♀‍➡' => 'wong wadon timpuh: kulit sawo mateng, madhep tengen',
+    '🧎🏿‍♀‍➡' => 'wong wadon timpuh: kulit ireng, madhep tengen',
+    '🧎🏻‍♂‍➡' => 'wong lanang timpuh: kulit putih, madhep tengen',
+    '🧎🏼‍♂‍➡' => 'wong lanang timpuh: kulit putih langsep, madhep tengen',
+    '🧎🏽‍♂‍➡' => 'wong lanang timpuh: kulit kuning, madhep tengen',
+    '🧎🏾‍♂‍➡' => 'wong lanang timpuh: kulit sawo mateng, madhep tengen',
+    '🧎🏿‍♂‍➡' => 'wong lanang timpuh: kulit ireng, madhep tengen',
+    '🧑🏻‍🦯‍➡' => 'wong nyekeli teken: kulit putih, madhep tengen',
+    '🧑🏼‍🦯‍➡' => 'wong nyekeli teken: kulit putih langsep, madhep tengen',
+    '🧑🏽‍🦯‍➡' => 'wong nyekeli teken: kulit kuning, madhep tengen',
+    '🧑🏾‍🦯‍➡' => 'wong nyekeli teken: kulit sawo mateng, madhep tengen',
+    '🧑🏿‍🦯‍➡' => 'wong nyekeli teken: kulit ireng, madhep tengen',
+    '👨🏻‍🦯‍➡' => 'wong lanang nyekeli teken: kulit putih, madhep tengen',
+    '👨🏼‍🦯‍➡' => 'wong lanang nyekeli teken: kulit putih langsep, madhep tengen',
+    '👨🏽‍🦯‍➡' => 'wong lanang nyekeli teken: kulit kuning, madhep tengen',
+    '👨🏾‍🦯‍➡' => 'wong lanang nyekeli teken: kulit sawo mateng, madhep tengen',
+    '👨🏿‍🦯‍➡' => 'wong lanang nyekeli teken: kulit ireng, madhep tengen',
+    '👩🏻‍🦯‍➡' => 'wong wadon nyekeli teken: kulit putih, madhep tengen',
+    '👩🏼‍🦯‍➡' => 'wong wadon nyekeli teken: kulit putih langsep, madhep tengen',
+    '👩🏽‍🦯‍➡' => 'wong wadon nyekeli teken: kulit kuning, madhep tengen',
+    '👩🏾‍🦯‍➡' => 'wong wadon nyekeli teken: kulit sawo mateng, madhep tengen',
+    '👩🏿‍🦯‍➡' => 'wong wadon nyekeli teken: kulit ireng, madhep tengen',
+    '🧑🏻‍🦼‍➡' => 'wong numpak kursi rodha mesin: kulit putih, madhep tengen',
+    '🧑🏼‍🦼‍➡' => 'wong numpak kursi rodha mesin: kulit putih langsep, madhep tengen',
+    '🧑🏽‍🦼‍➡' => 'wong numpak kursi rodha mesin: kulit kuning, madhep tengen',
+    '🧑🏾‍🦼‍➡' => 'wong numpak kursi rodha mesin: kulit sawo mateng, madhep tengen',
+    '🧑🏿‍🦼‍➡' => 'wong numpak kursi rodha mesin: kulit ireng, madhep tengen',
+    '👨🏻‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin: kulit putih, madhep tengen',
+    '👨🏼‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin: kulit putih langsep, madhep tengen',
+    '👨🏽‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin: kulit kuning, madhep tengen',
+    '👨🏾‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin: kulit sawo mateng, madhep tengen',
+    '👨🏿‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin: kulit ireng, madhep tengen',
+    '👩🏻‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin: kulit putih, madhep tengen',
+    '👩🏼‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin: kulit putih langsep, madhep tengen',
+    '👩🏽‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin: kulit kuning, madhep tengen',
+    '👩🏾‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin: kulit sawo mateng, madhep tengen',
+    '👩🏿‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin: kulit ireng, madhep tengen',
+    '🧑🏻‍🦽‍➡' => 'wong numpak kursi rodha manual: kulit putih, madhep tengen',
+    '🧑🏼‍🦽‍➡' => 'wong numpak kursi rodha manual: kulit putih langsep, madhep tengen',
+    '🧑🏽‍🦽‍➡' => 'wong numpak kursi rodha manual: kulit kuning, madhep tengen',
+    '🧑🏾‍🦽‍➡' => 'wong numpak kursi rodha manual: kulit sawo mateng, madhep tengen',
+    '🧑🏿‍🦽‍➡' => 'wong numpak kursi rodha manual: kulit ireng, madhep tengen',
+    '👨🏻‍🦽‍➡' => 'wong lanang numpak kursi rodha manual: kulit putih, madhep tengen',
+    '👨🏼‍🦽‍➡' => 'wong lanang numpak kursi rodha manual: kulit putih langsep, madhep tengen',
+    '👨🏽‍🦽‍➡' => 'wong lanang numpak kursi rodha manual: kulit kuning, madhep tengen',
+    '👨🏾‍🦽‍➡' => 'wong lanang numpak kursi rodha manual: kulit sawo mateng, madhep tengen',
+    '👨🏿‍🦽‍➡' => 'wong lanang numpak kursi rodha manual: kulit ireng, madhep tengen',
+    '👩🏻‍🦽‍➡' => 'wong wadon numpak kursi rodha manual: kulit putih, madhep tengen',
+    '👩🏼‍🦽‍➡' => 'wong wadon numpak kursi rodha manual: kulit putih langsep, madhep tengen',
+    '👩🏽‍🦽‍➡' => 'wong wadon numpak kursi rodha manual: kulit kuning, madhep tengen',
+    '👩🏾‍🦽‍➡' => 'wong wadon numpak kursi rodha manual: kulit sawo mateng, madhep tengen',
+    '👩🏿‍🦽‍➡' => 'wong wadon numpak kursi rodha manual: kulit ireng, madhep tengen',
+    '🏃🏻‍♀‍➡' => 'wong wadon mlayu: kulit putih, madhep tengen',
+    '🏃🏼‍♀‍➡' => 'wong wadon mlayu: kulit putih langsep, madhep tengen',
+    '🏃🏽‍♀‍➡' => 'wong wadon mlayu: kulit kuning, madhep tengen',
+    '🏃🏾‍♀‍➡' => 'wong wadon mlayu: kulit sawo mateng, madhep tengen',
+    '🏃🏿‍♀‍➡' => 'wong wadon mlayu: kulit ireng, madhep tengen',
+    '🏃🏻‍♂‍➡' => 'wong lanang mlayu: kulit putih, madhep tengen',
+    '🏃🏼‍♂‍➡' => 'wong lanang mlayu: kulit putih langsep, madhep tengen',
+    '🏃🏽‍♂‍➡' => 'wong lanang mlayu: kulit kuning, madhep tengen',
+    '🏃🏾‍♂‍➡' => 'wong lanang mlayu: kulit sawo mateng, madhep tengen',
+    '🏃🏿‍♂‍➡' => 'wong lanang mlayu: kulit ireng, madhep tengen',
     '🫱🏻‍🫲🏼' => 'salaman: kulit putih, kulit putih langsep',
     '🫱🏻‍🫲🏽' => 'salaman: kulit putih, kulit kuning',
     '🫱🏻‍🫲🏾' => 'salaman: kulit putih, kulit sawo mateng',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'salaman: kulit ireng, kulit putih langsep',
     '🫱🏿‍🫲🏽' => 'salaman: kulit ireng, kulit kuning',
     '🫱🏿‍🫲🏾' => 'salaman: kulit ireng, kulit sawo mateng',
-    '🚶‍♀‍➡' => 'wong wadon mlaku madhep tengen',
-    '🚶‍♂‍➡' => 'wong lanang mlaku madhep tengen',
-    '🧎‍♀‍➡' => 'wong wadon timpuh madhep tengen',
-    '🧎‍♂‍➡' => 'wong lanang timpuh madhep tengen',
-    '🧑‍🦯‍➡' => 'wong nyekeli teken madhep tengen',
-    '👨‍🦯‍➡' => 'wong lanang nyekeli teken madhep tengen',
-    '👩‍🦯‍➡' => 'wong wadon nyekeli teken madhep tengen',
-    '🧑‍🦼‍➡' => 'wong numpak kursi rodha mesin madhep tengen',
-    '👨‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin madhep tengen',
-    '👩‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin madhep tengen',
-    '🧑‍🦽‍➡' => 'wong numpak kursi rodha manual madhep tengen',
-    '👨‍🦽‍➡' => 'wong lanang numpak kursi rodha manual madhep tengen',
-    '👩‍🦽‍➡' => 'wong wadon numpak kursi rodha manual madhep tengen',
-    '🏃‍♀‍➡' => 'wong wadon mlayu madhep tengen',
-    '🏃‍♂‍➡' => 'wong lanang mlayu madhep tengen',
+    '🚶‍♀‍➡' => 'wong wadon mlaku: madhep tengen',
+    '🚶‍♂‍➡' => 'wong lanang mlaku: madhep tengen',
+    '🧎‍♀‍➡' => 'wong wadon timpuh: madhep tengen',
+    '🧎‍♂‍➡' => 'wong lanang timpuh: madhep tengen',
+    '🧑‍🦯‍➡' => 'wong nyekeli teken: madhep tengen',
+    '👨‍🦯‍➡' => 'wong lanang nyekeli teken: madhep tengen',
+    '👩‍🦯‍➡' => 'wong wadon nyekeli teken: madhep tengen',
+    '🧑‍🦼‍➡' => 'wong numpak kursi rodha mesin: madhep tengen',
+    '👨‍🦼‍➡' => 'wong lanang numpak kursi rodha mesin: madhep tengen',
+    '👩‍🦼‍➡' => 'wong wadon numpak kursi rodha mesin: madhep tengen',
+    '🧑‍🦽‍➡' => 'wong numpak kursi rodha manual: madhep tengen',
+    '👨‍🦽‍➡' => 'wong lanang numpak kursi rodha manual: madhep tengen',
+    '👩‍🦽‍➡' => 'wong wadon numpak kursi rodha manual: madhep tengen',
+    '🏃‍♀‍➡' => 'wong wadon mlayu: madhep tengen',
+    '🏃‍♂‍➡' => 'wong lanang mlayu: madhep tengen',
     '👩‍❤‍👨' => 'pasangan lan tandha ati: wong wadon, wong lanang',
     '👨‍❤‍👨' => 'pasangan lan tandha ati: wong lanang, wong lanang',
     '👩‍❤‍👩' => 'pasangan lan tandha ati: wong wadon, wong wadon',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'wong: kulit kuning, buthak',
     '🧑🏾‍🦲' => 'wong: kulit sawo mateng, buthak',
     '🧑🏿‍🦲' => 'wong: kulit ireng, buthak',
+    '🧑🏻‍🩰' => 'penari balet: kulit putih',
+    '🧑🏼‍🩰' => 'penari balet: kulit putih langsep',
+    '🧑🏽‍🩰' => 'penari balet: kulit kuning',
+    '🧑🏾‍🩰' => 'penari balet: kulit sawo mateng',
+    '🧑🏿‍🩰' => 'penari balet: kulit ireng',
     '🧔🏻‍♂' => 'wong lanang: kulit putih, jenggot',
     '🧔🏼‍♂' => 'wong lanang: kulit putih langsep, jenggot',
     '🧔🏽‍♂' => 'wong lanang: kulit kuning, jenggot',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'wong wadon mlaku: kulit kuning',
     '🚶🏾‍♀' => 'wong wadon mlaku: kulit sawo mateng',
     '🚶🏿‍♀' => 'wong wadon mlaku: kulit ireng',
-    '🚶🏻‍➡' => 'wong mlaku madhep tengen',
-    '🚶🏼‍➡' => 'wong mlaku madhep tengen',
-    '🚶🏽‍➡' => 'wong mlaku madhep tengen',
-    '🚶🏾‍➡' => 'wong mlaku madhep tengen',
-    '🚶🏿‍➡' => 'wong mlaku madhep tengen',
+    '🚶🏻‍➡' => 'wong mlaku: kulit putih, madhep tengen',
+    '🚶🏼‍➡' => 'wong mlaku: kulit putih langsep, madhep tengen',
+    '🚶🏽‍➡' => 'wong mlaku: kulit kuning, madhep tengen',
+    '🚶🏾‍➡' => 'wong mlaku: kulit sawo mateng, madhep tengen',
+    '🚶🏿‍➡' => 'wong mlaku: kulit ireng, madhep tengen',
     '🧍🏻‍♂' => 'wong lanang ngadeg: kulit putih',
     '🧍🏼‍♂' => 'wong lanang ngadeg: kulit putih langsep',
     '🧍🏽‍♂' => 'wong lanang ngadeg: kulit kuning',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'wong wadon timpuh: kulit kuning',
     '🧎🏾‍♀' => 'wong wadon timpuh: kulit sawo mateng',
     '🧎🏿‍♀' => 'wong wadon timpuh: kulit ireng',
-    '🧎🏻‍➡' => 'wong timpuh madhep tengen',
-    '🧎🏼‍➡' => 'wong timpuh madhep tengen',
-    '🧎🏽‍➡' => 'wong timpuh madhep tengen',
-    '🧎🏾‍➡' => 'wong timpuh madhep tengen',
-    '🧎🏿‍➡' => 'wong timpuh madhep tengen',
+    '🧎🏻‍➡' => 'wong timpuh: kulit putih, madhep tengen',
+    '🧎🏼‍➡' => 'wong timpuh: kulit putih langsep, madhep tengen',
+    '🧎🏽‍➡' => 'wong timpuh: kulit kuning, madhep tengen',
+    '🧎🏾‍➡' => 'wong timpuh: kulit sawo mateng, madhep tengen',
+    '🧎🏿‍➡' => 'wong timpuh: kulit ireng, madhep tengen',
     '🧑🏻‍🦯' => 'wong nyekeli teken: kulit putih',
     '🧑🏼‍🦯' => 'wong nyekeli teken: kulit putih langsep',
     '🧑🏽‍🦯' => 'wong nyekeli teken: kulit kuning',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'wong wadon mlayu: kulit kuning',
     '🏃🏾‍♀' => 'wong wadon mlayu: kulit sawo mateng',
     '🏃🏿‍♀' => 'wong wadon mlayu: kulit ireng',
-    '🏃🏻‍➡' => 'wong mlayu madhep tengen',
-    '🏃🏼‍➡' => 'wong mlayu madhep tengen',
-    '🏃🏽‍➡' => 'wong mlayu madhep tengen',
-    '🏃🏾‍➡' => 'wong mlayu madhep tengen',
-    '🏃🏿‍➡' => 'wong mlayu madhep tengen',
+    '🏃🏻‍➡' => 'wong mlayu: kulit putih, madhep tengen',
+    '🏃🏼‍➡' => 'wong mlayu: kulit putih langsep, madhep tengen',
+    '🏃🏽‍➡' => 'wong mlayu: kulit kuning, madhep tengen',
+    '🏃🏾‍➡' => 'wong mlayu: kulit sawo mateng, madhep tengen',
+    '🏃🏿‍➡' => 'wong mlayu: kulit ireng, madhep tengen',
+    '👯🏻‍♀' => 'wong wadon nganggo kuping terwelu: kulit putih',
+    '👯🏼‍♀' => 'wong wadon nganggo kuping terwelu: kulit putih langsep',
+    '👯🏽‍♀' => 'wong wadon nganggo kuping terwelu: kulit kuning',
+    '👯🏾‍♀' => 'wong wadon nganggo kuping terwelu: kulit sawo mateng',
+    '👯🏿‍♀' => 'wong wadon nganggo kuping terwelu: kulit ireng',
+    '👯🏻‍♂' => 'wong lanang nganggo kuping terwelu: kulit putih',
+    '👯🏼‍♂' => 'wong lanang nganggo kuping terwelu: kulit putih langsep',
+    '👯🏽‍♂' => 'wong lanang nganggo kuping terwelu: kulit kuning',
+    '👯🏾‍♂' => 'wong lanang nganggo kuping terwelu: kulit sawo mateng',
+    '👯🏿‍♂' => 'wong lanang nganggo kuping terwelu: kulit ireng',
     '🧖🏻‍♂' => 'wong lanang ing kamar kebak sumub: kulit putih',
     '🧖🏼‍♂' => 'wong lanang ing kamar kebak sumub: kulit putih langsep',
     '🧖🏽‍♂' => 'wong lanang ing kamar kebak sumub: kulit kuning',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'wong wadon engkang: kulit kuning',
     '🤸🏾‍♀' => 'wong wadon engkang: kulit sawo mateng',
     '🤸🏿‍♀' => 'wong wadon engkang: kulit ireng',
+    '🤼🏻‍♀' => 'wong wadon gulat: kulit putih',
+    '🤼🏼‍♀' => 'wong wadon gulat: kulit putih langsep',
+    '🤼🏽‍♀' => 'wong wadon gulat: kulit kuning',
+    '🤼🏾‍♀' => 'wong wadon gulat: kulit sawo mateng',
+    '🤼🏿‍♀' => 'wong wadon gulat: kulit ireng',
+    '🤼🏻‍♂' => 'wong lanang gulat: kulit putih',
+    '🤼🏼‍♂' => 'wong lanang gulat: kulit putih langsep',
+    '🤼🏽‍♂' => 'wong lanang gulat: kulit kuning',
+    '🤼🏾‍♂' => 'wong lanang gulat: kulit sawo mateng',
+    '🤼🏿‍♂' => 'wong lanang gulat: kulit ireng',
     '🤽🏻‍♂' => 'wong lanang main polo banyu: kulit putih',
     '🤽🏼‍♂' => 'wong lanang main polo banyu: kulit putih langsep',
     '🤽🏽‍♂' => 'wong lanang main polo banyu: kulit kuning',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'wong wadon: rambut brintik',
     '👩‍🦳' => 'wong wadon: rambut putih',
     '👩‍🦲' => 'wong wadon: buthak',
-    '🚶‍➡' => 'wong mlaku madhep tengen',
-    '🧎‍➡' => 'wong timpuh madhep tengen',
-    '🏃‍➡' => 'wong mlayu madhep tengen',
+    '🚶‍➡' => 'wong mlaku: madhep tengen',
+    '🧎‍➡' => 'wong timpuh: madhep tengen',
+    '🏃‍➡' => 'wong mlayu: madhep tengen',
     '👨‍👦' => 'kluwarga: wong lanang, bocah lanang',
     '👨‍👧' => 'kluwarga: wong lanang, bocah wadon',
     '👩‍👦' => 'kluwarga: wong wadon, bocah lanang',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'wong wadon numpak kursi rodha manual',
     '🏃‍♂' => 'wong lanang mlayu',
     '🏃‍♀' => 'wong wadon mlayu',
+    '🧑‍🩰' => 'penari balet',
     '👯‍♂' => 'wong lanang nganggo kuping terwelu',
     '👯‍♀' => 'wong wadon nganggo kuping terwelu',
     '🧖‍♂' => 'wong lanang ing kamar kebak sumub',
@@ -1551,11 +1697,11 @@
     '🤞🏽' => 'driji loro tetalenan: kulit kuning',
     '🤞🏾' => 'driji loro tetalenan: kulit sawo mateng',
     '🤞🏿' => 'driji loro tetalenan: kulit ireng',
-    '🫰🏻' => 'tangan mawa jempol karo driji telunjuk tetalenan: kulit putih',
-    '🫰🏼' => 'tangan mawa jempol karo driji telunjuk tetalenan: kulit putih langsep',
-    '🫰🏽' => 'tangan mawa jempol karo driji telunjuk tetalenan: kulit kuning',
-    '🫰🏾' => 'tangan mawa jempol karo driji telunjuk tetalenan: kulit sawo mateng',
-    '🫰🏿' => 'tangan mawa jempol karo driji telunjuk tetalenan: kulit ireng',
+    '🫰🏻' => 'jempol karo driji panuduh tetalenan: kulit putih',
+    '🫰🏼' => 'jempol karo driji panuduh tetalenan: kulit putih langsep',
+    '🫰🏽' => 'jempol karo driji panuduh tetalenan: kulit kuning',
+    '🫰🏾' => 'jempol karo driji panuduh tetalenan: kulit sawo mateng',
+    '🫰🏿' => 'jempol karo driji panuduh tetalenan: kulit ireng',
     '🤟🏻' => 'tangan nuduhake tandha tresna sliramu: kulit putih',
     '🤟🏼' => 'tangan nuduhake tandha tresna sliramu: kulit putih langsep',
     '🤟🏽' => 'tangan nuduhake tandha tresna sliramu: kulit kuning',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'wong lanang jas-jasan ora napak: kulit kuning',
     '🕴🏾' => 'wong lanang jas-jasan ora napak: kulit sawo mateng',
     '🕴🏿' => 'wong lanang jas-jasan ora napak: kulit ireng',
+    '👯🏻' => 'wong nganggo kuping terwelu: kulit putih',
+    '👯🏼' => 'wong nganggo kuping terwelu: kulit putih langsep',
+    '👯🏽' => 'wong nganggo kuping terwelu: kulit kuning',
+    '👯🏾' => 'wong nganggo kuping terwelu: kulit sawo mateng',
+    '👯🏿' => 'wong nganggo kuping terwelu: kulit ireng',
     '🧖🏻' => 'wong ing kamar kebak sumub: kulit putih',
     '🧖🏼' => 'wong ing kamar kebak sumub: kulit putih langsep',
     '🧖🏽' => 'wong ing kamar kebak sumub: kulit kuning',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'wong engkang: kulit kuning',
     '🤸🏾' => 'wong engkang: kulit sawo mateng',
     '🤸🏿' => 'wong engkang: kulit ireng',
+    '🤼🏻' => 'wong gulat: kulit putih',
+    '🤼🏼' => 'wong gulat: kulit putih langsep',
+    '🤼🏽' => 'wong gulat: kulit kuning',
+    '🤼🏾' => 'wong gulat: kulit sawo mateng',
+    '🤼🏿' => 'wong gulat: kulit ireng',
     '🤽🏻' => 'wong main polo banyu: kulit putih',
     '🤽🏼' => 'wong main polo banyu: kulit putih langsep',
     '🤽🏽' => 'wong main polo banyu: kulit kuning',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'gendera: Tyongkok',
     '🇨🇴' => 'gendera: Kolombia',
     '🇨🇵' => 'gendera: Pulo Clipperton',
+    '🇨🇶' => 'gendera: Sark',
     '🇨🇷' => 'gendera: Kosta Rika',
     '🇨🇺' => 'gendera: Kuba',
     '🇨🇻' => 'gendera: Pongol Verdé',
@@ -2389,13 +2546,6 @@
     '🏽' => 'kulit kuning',
     '🏾' => 'kulit sawo mateng',
     '🏿' => 'kulit ireng',
-    '🪉' => 'harpa',
-    '🪏' => 'sekop',
-    '🪾' => 'wit tanpa godhong',
-    '🫆' => 'tipak driji',
-    '🫜' => 'sayuran oyot',
-    '🫟' => 'cipratan',
-    '🫩' => 'mata pendul',
     '😀' => 'rai ngguyu',
     '😃' => 'rai ngguyu matane mblalak',
     '😄' => 'rai ngguyu nganti merem-merem',
@@ -2427,7 +2577,7 @@
     '🤑' => 'rai mata dhuwiten',
     '🤗' => 'rai nyikep',
     '🤭' => 'rai mawa tangan nutupi cangkem',
-    '🫢' => 'rai mawa mata melek lan tangan nutupi cangkem',
+    '🫢' => 'rai matane melek lan tangan nutupi cangkem',
     '🫣' => 'rai mawa mripat ngintip',
     '🤫' => 'rai ngaba-aba akon meneng',
     '🤔' => 'rai mikir',
@@ -2449,6 +2599,7 @@
     '😪' => 'rai ngantuk',
     '🤤' => 'rai ileren',
     '😴' => 'rai turu',
+    '🫩' => 'mata pendul',
     '😷' => 'rai nganggo masker dhokter',
     '🤒' => 'rai ngemut termometer',
     '🤕' => 'rai sirahe dibebet',
@@ -2475,6 +2626,7 @@
     '😯' => 'rai dumadakan meneng',
     '😲' => 'rai gumun',
     '😳' => 'rai isin',
+    '🫪' => 'rai semrawut',
     '🥺' => 'rai ngarep-arep welas',
     '🥹' => 'rai mbrambangi',
     '😦' => 'rai sedhih karo mlongo',
@@ -2546,6 +2698,7 @@
     '💋' => 'tandha ambung',
     '💯' => 'biji satus',
     '💢' => 'simbol nesu',
+    '🫯' => 'gelut muntel',
     '💥' => 'tabrakan',
     '💫' => 'ngelu',
     '💦' => 'tesing kringet',
@@ -2572,7 +2725,7 @@
     '🤏' => 'tangan njiwit',
     '✌' => 'tangan nuduhake tandha kamenangan',
     '🤞' => 'driji loro tetalenan',
-    '🫰' => 'tangan mawa jempol karo driji telunjuk tetalenan',
+    '🫰' => 'jempol karo driji panuduh tetalenan',
     '🤟' => 'tangan nuduhake tandha tresna sliramu',
     '🤘' => 'tandha sungu',
     '🤙' => 'tangan nuduhake tandha telpuna aku',
@@ -2669,6 +2822,7 @@
     '🧞' => 'bangsa jim',
     '🧟' => 'zombi',
     '🧌' => 'troll',
+    '🫈' => 'makhluk wulunen',
     '💆' => 'wong dipijeti',
     '💇' => 'wong lagi dikethok rambute',
     '🚶' => 'wong mlaku',
@@ -2712,6 +2866,7 @@
     '🫂' => 'wong rangkulan',
     '👪' => 'kluwarga',
     '👣' => 'tipak sikil',
+    '🫆' => 'tipak driji',
     '🦰' => 'rambut abang',
     '🦱' => 'rambut brintik',
     '🦳' => 'rambut putih',
@@ -2811,6 +2966,7 @@
     '🐳' => 'paus nyembur',
     '🐋' => 'paus',
     '🐬' => 'lumba-lumba',
+    '🫍' => 'orca',
     '🦭' => 'asu laut',
     '🐟' => 'iwak',
     '🐠' => 'iwak tropis',
@@ -2820,6 +2976,11 @@
     '🐚' => 'keong spiral',
     '🪸' => 'koral',
     '🪼' => 'ubur-ubur',
+    '🦀' => 'rajungan',
+    '🦞' => 'lopster',
+    '🦐' => 'urang',
+    '🦑' => 'sotong',
+    '🦪' => 'tiram',
     '🐌' => 'bekicot',
     '🦋' => 'kupu',
     '🐛' => 'uler',
@@ -2864,6 +3025,7 @@
     '🪹' => 'susuh kosong',
     '🪺' => 'susuh ono endoke',
     '🍄' => 'jamur',
+    '🪾' => 'wit tanpa godhong',
     '🍇' => 'anggur',
     '🍈' => 'melon',
     '🍉' => 'semangka',
@@ -2900,6 +3062,7 @@
     '🌰' => 'kenari',
     '🫚' => 'jahe',
     '🫛' => 'kacang polong',
+    '🫜' => 'sayuran oyot',
     '🍞' => 'roti',
     '🥐' => 'kroasang',
     '🥖' => 'roti baget',
@@ -2951,11 +3114,6 @@
     '🥟' => 'siomay kukus',
     '🥠' => 'roti begja',
     '🥡' => 'kothak bungkus',
-    '🦀' => 'rajungan',
-    '🦞' => 'lopster',
-    '🦐' => 'urang',
-    '🦑' => 'sotong',
-    '🦪' => 'tiram',
     '🍦' => 'es krim salju',
     '🍧' => 'es puter',
     '🍨' => 'es krim',
@@ -3006,6 +3164,7 @@
     '🧭' => 'kompas',
     '🏔' => 'gunung punthuke katutup salju',
     '⛰' => 'gunung',
+    '🛘' => 'longsor',
     '🌋' => 'gunung geni',
     '🗻' => 'gunung fuji',
     '🏕' => 'kemah',
@@ -3366,16 +3525,18 @@
     '🎧' => 'headphone',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'trompet',
+    '🪊' => 'trombon',
     '🪗' => 'akordion',
     '🎸' => 'gitar',
     '🎹' => 'kibor musik',
-    '🎺' => 'trompet',
     '🎻' => 'biola',
     '🪕' => 'gitar banjo',
     '🥁' => 'dram',
     '🪘' => 'kendhang',
     '🪇' => 'marakas',
     '🪈' => 'suling',
+    '🪉' => 'harpa',
     '📱' => 'telepon seluler',
     '📲' => 'telepon seluler nganggo panah',
     '☎' => 'telepon',
@@ -3429,8 +3590,9 @@
     '📑' => 'tetenger',
     '🔖' => 'tenger',
     '🏷' => 'label tenger',
-    '💰' => 'kanthong dhuwit',
     '🪙' => 'koin',
+    '💰' => 'kanthong dhuwit',
+    '🪎' => 'pethi rajabrana',
     '💴' => 'dhuwit kertas yen',
     '💵' => 'dhuwit kertas dolar',
     '💶' => 'dhuwit kertas euro',
@@ -3513,6 +3675,7 @@
     '🧰' => 'kothak bekakas',
     '🧲' => 'wesi magnet',
     '🪜' => 'ondo',
+    '🪏' => 'sekop',
     '⚗' => 'pranti suling alembik',
     '🧪' => 'tabung reaksi',
     '🧫' => 'cawan petri',
@@ -3696,6 +3859,7 @@
     '✴' => 'lintang mata wolu',
     '❇' => 'kelip-kelip',
     '™' => 'merek dagang',
+    '🫟' => 'cipratan',
     '🔠' => 'lebokake aksara latin gedhe',
     '🔡' => 'lebokake aksara latin cilik',
     '🔢' => 'lebokake angka',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kab.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kab.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,26 @@
     '🧑🏿‍❤‍🧑🏼' => 'tayuga s wul: amdan, amdan, taglimt tubrikt, tagwlimt taceɛlalt talemmast',
     '🧑🏿‍❤‍🧑🏽' => 'tayuga s wul: amdan, amdan, taglimt tubrikt, taglimt talemmast',
     '🧑🏿‍❤‍🧑🏾' => 'tayuga s wul: amdan, amdan, taglimt tubrikt, taglimt tubrikt talemmast',
+    '🧑🏻‍🐰‍🧑🏼' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt taceɛlalt, tagwlimt taceɛlalt talemmast',
+    '🧑🏻‍🐰‍🧑🏽' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt taceɛlalt, taglimt talemmast',
+    '🧑🏻‍🐰‍🧑🏾' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt taceɛlalt, taglimt tubrikt talemmast',
+    '🧑🏻‍🐰‍🧑🏿' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt taceɛlalt, taglimt tubrikt',
+    '🧑🏼‍🐰‍🧑🏻' => 'imdanen s yimeẓẓuɣen n yiwtal: tagwlimt taceɛlalt talemmast, taglimt taceɛlalt',
+    '🧑🏼‍🐰‍🧑🏽' => 'imdanen s yimeẓẓuɣen n yiwtal: tagwlimt taceɛlalt talemmast, taglimt talemmast',
+    '🧑🏼‍🐰‍🧑🏾' => 'imdanen s yimeẓẓuɣen n yiwtal: tagwlimt taceɛlalt talemmast, taglimt tubrikt talemmast',
+    '🧑🏼‍🐰‍🧑🏿' => 'imdanen s yimeẓẓuɣen n yiwtal: tagwlimt taceɛlalt talemmast, taglimt tubrikt',
+    '🧑🏽‍🐰‍🧑🏻' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt talemmast, taglimt taceɛlalt',
+    '🧑🏽‍🐰‍🧑🏼' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt talemmast, tagwlimt taceɛlalt talemmast',
+    '🧑🏽‍🐰‍🧑🏾' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt talemmast, taglimt tubrikt talemmast',
+    '🧑🏽‍🐰‍🧑🏿' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt talemmast, taglimt tubrikt',
+    '🧑🏾‍🐰‍🧑🏻' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt tubrikt talemmast, taglimt taceɛlalt',
+    '🧑🏾‍🐰‍🧑🏼' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt tubrikt talemmast, tagwlimt taceɛlalt talemmast',
+    '🧑🏾‍🐰‍🧑🏽' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt tubrikt talemmast, taglimt talemmast',
+    '🧑🏾‍🐰‍🧑🏿' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt tubrikt talemmast, taglimt tubrikt',
+    '🧑🏿‍🐰‍🧑🏻' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt tubrikt, taglimt taceɛlalt',
+    '🧑🏿‍🐰‍🧑🏼' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt tubrikt, tagwlimt taceɛlalt talemmast',
+    '🧑🏿‍🐰‍🧑🏽' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt tubrikt, taglimt talemmast',
+    '🧑🏿‍🐰‍🧑🏾' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt tubrikt, taglimt tubrikt talemmast',
     '👨🏻‍❤‍👨🏻' => 'tayuga s wul: argaz, argaz, taglimt taceɛlalt',
     '👨🏻‍❤‍👨🏼' => 'tayuga s wul: argaz, argaz, taglimt taceɛlalt, tagwlimt taceɛlalt talemmast',
     '👨🏻‍❤‍👨🏽' => 'tayuga s wul: argaz, argaz, taglimt taceɛlalt, taglimt talemmast',
@@ -856,6 +876,11 @@
     '🕺🏽' => 'argaz iceṭṭḥen: taglimt talemmast',
     '🕺🏾' => 'argaz iceṭṭḥen: taglimt tubrikt talemmast',
     '🕺🏿' => 'argaz iceṭṭḥen: taglimt tubrikt',
+    '👯🏻' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt taceɛlalt',
+    '👯🏼' => 'imdanen s yimeẓẓuɣen n yiwtal: tagwlimt taceɛlalt talemmast',
+    '👯🏽' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt talemmast',
+    '👯🏾' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt tubrikt talemmast',
+    '👯🏿' => 'imdanen s yimeẓẓuɣen n yiwtal: taglimt tubrikt',
     '🚴🏻' => 'amdan s uvilu: taglimt taceɛlalt',
     '🚴🏼' => 'amdan s uvilu: tagwlimt taceɛlalt talemmast',
     '🚴🏽' => 'amdan s uvilu: taglimt talemmast',
@@ -1164,7 +1189,6 @@
     '🏽' => 'taglimt talemmast',
     '🏾' => 'taglimt tubrikt talemmast',
     '🏿' => 'taglimt tubrikt',
-    '🫩' => 'udem s tcullaḍ ddaw wallen',
     '😀' => 'acmumeḥ meqqren',
     '😃' => 'udem n ucmumeḥ s wallen yeldin',
     '😄' => 'acmumaḥ amesrar',
@@ -1218,6 +1242,7 @@
     '😪' => 'udem yeṭṭsen',
     '🤤' => 'udem yeslulduyen',
     '😴' => 'udem yennudmen',
+    '🫩' => 'udem s tcullaḍ ddaw wallen',
     '😷' => 'udem s tekmamt',
     '🤒' => 'udem s utirmumitr',
     '🤕' => 'udem s cced ɣef uqerru',
@@ -1537,6 +1562,9 @@
     '🐙' => 'iqirniḍ',
     '🐚' => 'ajeɣlal yennḍen',
     '🪸' => 'lmerǧan',
+    '🦀' => 'tifiraqest',
+    '🦐' => 'aqemrun',
+    '🦪' => 'idway',
     '🐌' => 'aεarus',
     '🦋' => 'aferteṭṭu',
     '🐛' => 'aburbu',
@@ -1643,9 +1671,6 @@
     '🍠' => 'baṭaṭa taẓidant ikenfen',
     '🍢' => 'tifarrugt',
     '🍣' => 'aṣuci',
-    '🦀' => 'tifiraqest',
-    '🦐' => 'aqemrun',
-    '🦪' => 'idway',
     '🍫' => 'tabewwaḍt n ccakula',
     '🍬' => 'taḥlawat',
     '🍭' => 'tameccaḥt',
@@ -1901,8 +1926,8 @@
     '📑' => 'accaren n tecraḍ',
     '🔖' => 'tacreṭ n usebter',
     '🏷' => 'tabzimt',
-    '💰' => 'sselfa',
     '🪙' => 'aṣurdi',
+    '💰' => 'sselfa',
     '💴' => 'lkaɣeḍ n yen',
     '💵' => 'lkaɣeḍ n udular',
     '💶' => 'lkareḍ n uru',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ka.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ka.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ka.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ka.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'კოცნა: ქალი, ქალი, კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
     '👩🏿‍❤‍💋‍👩🏾' => 'კოცნა: ქალი, ქალი, კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
     '👩🏿‍❤‍💋‍👩🏿' => 'კოცნა: ქალი, ქალი, კანის მუქი ტონალობა',
+    '🧑🏻‍🫯‍🧑🏼' => 'მოჭიდავეები: კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '🧑🏻‍🫯‍🧑🏽' => 'მოჭიდავეები: კანის ღია ტონალობა, კანის საშუალო ტონალობა',
+    '🧑🏻‍🫯‍🧑🏾' => 'მოჭიდავეები: კანის ღია ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '🧑🏻‍🫯‍🧑🏿' => 'მოჭიდავეები: კანის ღია ტონალობა, კანის მუქი ტონალობა',
+    '🧑🏼‍🫯‍🧑🏻' => 'მოჭიდავეები: ღიადან საშუალომდე კანის ტონალობა, კანის ღია ტონალობა',
+    '🧑🏼‍🫯‍🧑🏽' => 'მოჭიდავეები: ღიადან საშუალომდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '🧑🏼‍🫯‍🧑🏾' => 'მოჭიდავეები: ღიადან საშუალომდე კანის ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '🧑🏼‍🫯‍🧑🏿' => 'მოჭიდავეები: ღიადან საშუალომდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '🧑🏽‍🫯‍🧑🏻' => 'მოჭიდავეები: კანის საშუალო ტონალობა, კანის ღია ტონალობა',
+    '🧑🏽‍🫯‍🧑🏼' => 'მოჭიდავეები: კანის საშუალო ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '🧑🏽‍🫯‍🧑🏾' => 'მოჭიდავეები: კანის საშუალო ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '🧑🏽‍🫯‍🧑🏿' => 'მოჭიდავეები: კანის საშუალო ტონალობა, კანის მუქი ტონალობა',
+    '🧑🏾‍🫯‍🧑🏻' => 'მოჭიდავეები: საშუალოდან მუქამდე კანის ტონალობა, კანის ღია ტონალობა',
+    '🧑🏾‍🫯‍🧑🏼' => 'მოჭიდავეები: საშუალოდან მუქამდე კანის ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '🧑🏾‍🫯‍🧑🏽' => 'მოჭიდავეები: საშუალოდან მუქამდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '🧑🏾‍🫯‍🧑🏿' => 'მოჭიდავეები: საშუალოდან მუქამდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '🧑🏿‍🫯‍🧑🏻' => 'მოჭიდავეები: კანის მუქი ტონალობა, კანის ღია ტონალობა',
+    '🧑🏿‍🫯‍🧑🏼' => 'მოჭიდავეები: კანის მუქი ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '🧑🏿‍🫯‍🧑🏽' => 'მოჭიდავეები: კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
+    '🧑🏿‍🫯‍🧑🏾' => 'მოჭიდავეები: კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
     '🧑🏻‍❤‍🧑🏼' => 'წყვილი და გული: სრულწლოვანი, სრულწლოვანი, კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
     '🧑🏻‍❤‍🧑🏽' => 'წყვილი და გული: სრულწლოვანი, სრულწლოვანი, კანის ღია ტონალობა, კანის საშუალო ტონალობა',
     '🧑🏻‍❤‍🧑🏾' => 'წყვილი და გული: სრულწლოვანი, სრულწლოვანი, კანის ღია ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'წყვილი და გული: სრულწლოვანი, სრულწლოვანი, კანის მუქი ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
     '🧑🏿‍❤‍🧑🏽' => 'წყვილი და გული: სრულწლოვანი, სრულწლოვანი, კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
     '🧑🏿‍❤‍🧑🏾' => 'წყვილი და გული: სრულწლოვანი, სრულწლოვანი, კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '🧑🏻‍🐰‍🧑🏼' => 'ქალები ერთობიან: კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '🧑🏻‍🐰‍🧑🏽' => 'ქალები ერთობიან: კანის ღია ტონალობა, კანის საშუალო ტონალობა',
+    '🧑🏻‍🐰‍🧑🏾' => 'ქალები ერთობიან: კანის ღია ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '🧑🏻‍🐰‍🧑🏿' => 'ქალები ერთობიან: კანის ღია ტონალობა, კანის მუქი ტონალობა',
+    '🧑🏼‍🐰‍🧑🏻' => 'ქალები ერთობიან: ღიადან საშუალომდე კანის ტონალობა, კანის ღია ტონალობა',
+    '🧑🏼‍🐰‍🧑🏽' => 'ქალები ერთობიან: ღიადან საშუალომდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '🧑🏼‍🐰‍🧑🏾' => 'ქალები ერთობიან: ღიადან საშუალომდე კანის ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '🧑🏼‍🐰‍🧑🏿' => 'ქალები ერთობიან: ღიადან საშუალომდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '🧑🏽‍🐰‍🧑🏻' => 'ქალები ერთობიან: კანის საშუალო ტონალობა, კანის ღია ტონალობა',
+    '🧑🏽‍🐰‍🧑🏼' => 'ქალები ერთობიან: კანის საშუალო ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '🧑🏽‍🐰‍🧑🏾' => 'ქალები ერთობიან: კანის საშუალო ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '🧑🏽‍🐰‍🧑🏿' => 'ქალები ერთობიან: კანის საშუალო ტონალობა, კანის მუქი ტონალობა',
+    '🧑🏾‍🐰‍🧑🏻' => 'ქალები ერთობიან: საშუალოდან მუქამდე კანის ტონალობა, კანის ღია ტონალობა',
+    '🧑🏾‍🐰‍🧑🏼' => 'ქალები ერთობიან: საშუალოდან მუქამდე კანის ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '🧑🏾‍🐰‍🧑🏽' => 'ქალები ერთობიან: საშუალოდან მუქამდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '🧑🏾‍🐰‍🧑🏿' => 'ქალები ერთობიან: საშუალოდან მუქამდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '🧑🏿‍🐰‍🧑🏻' => 'ქალები ერთობიან: კანის მუქი ტონალობა, კანის ღია ტონალობა',
+    '🧑🏿‍🐰‍🧑🏼' => 'ქალები ერთობიან: კანის მუქი ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '🧑🏿‍🐰‍🧑🏽' => 'ქალები ერთობიან: კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
+    '🧑🏿‍🐰‍🧑🏾' => 'ქალები ერთობიან: კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👨🏻‍🫯‍👨🏼' => 'მოჭიდავე კაცები: კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👨🏻‍🫯‍👨🏽' => 'მოჭიდავე კაცები: კანის ღია ტონალობა, კანის საშუალო ტონალობა',
+    '👨🏻‍🫯‍👨🏾' => 'მოჭიდავე კაცები: კანის ღია ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👨🏻‍🫯‍👨🏿' => 'მოჭიდავე კაცები: კანის ღია ტონალობა, კანის მუქი ტონალობა',
+    '👨🏼‍🫯‍👨🏻' => 'მოჭიდავე კაცები: ღიადან საშუალომდე კანის ტონალობა, კანის ღია ტონალობა',
+    '👨🏼‍🫯‍👨🏽' => 'მოჭიდავე კაცები: ღიადან საშუალომდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '👨🏼‍🫯‍👨🏾' => 'მოჭიდავე კაცები: ღიადან საშუალომდე კანის ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👨🏼‍🫯‍👨🏿' => 'მოჭიდავე კაცები: ღიადან საშუალომდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '👨🏽‍🫯‍👨🏻' => 'მოჭიდავე კაცები: კანის საშუალო ტონალობა, კანის ღია ტონალობა',
+    '👨🏽‍🫯‍👨🏼' => 'მოჭიდავე კაცები: კანის საშუალო ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👨🏽‍🫯‍👨🏾' => 'მოჭიდავე კაცები: კანის საშუალო ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👨🏽‍🫯‍👨🏿' => 'მოჭიდავე კაცები: კანის საშუალო ტონალობა, კანის მუქი ტონალობა',
+    '👨🏾‍🫯‍👨🏻' => 'მოჭიდავე კაცები: საშუალოდან მუქამდე კანის ტონალობა, კანის ღია ტონალობა',
+    '👨🏾‍🫯‍👨🏼' => 'მოჭიდავე კაცები: საშუალოდან მუქამდე კანის ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👨🏾‍🫯‍👨🏽' => 'მოჭიდავე კაცები: საშუალოდან მუქამდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '👨🏾‍🫯‍👨🏿' => 'მოჭიდავე კაცები: საშუალოდან მუქამდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '👨🏿‍🫯‍👨🏻' => 'მოჭიდავე კაცები: კანის მუქი ტონალობა, კანის ღია ტონალობა',
+    '👨🏿‍🫯‍👨🏼' => 'მოჭიდავე კაცები: კანის მუქი ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👨🏿‍🫯‍👨🏽' => 'მოჭიდავე კაცები: კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
+    '👨🏿‍🫯‍👨🏾' => 'მოჭიდავე კაცები: კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
     '👨🏻‍❤‍👨🏻' => 'წყვილი და გული: კაცი, კაცი, კანის ღია ტონალობა',
     '👨🏻‍❤‍👨🏼' => 'წყვილი და გული: კაცი, კაცი, კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
     '👨🏻‍❤‍👨🏽' => 'წყვილი და გული: კაცი, კაცი, კანის ღია ტონალობა, კანის საშუალო ტონალობა',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'წყვილი და გული: კაცი, კაცი, კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
     '👨🏿‍❤‍👨🏾' => 'წყვილი და გული: კაცი, კაცი, კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
     '👨🏿‍❤‍👨🏿' => 'წყვილი და გული: კაცი, კაცი, კანის მუქი ტონალობა',
+    '👨🏻‍🐰‍👨🏼' => 'მოცეკვავე კაცები: კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👨🏻‍🐰‍👨🏽' => 'მოცეკვავე კაცები: კანის ღია ტონალობა, კანის საშუალო ტონალობა',
+    '👨🏻‍🐰‍👨🏾' => 'მოცეკვავე კაცები: კანის ღია ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👨🏻‍🐰‍👨🏿' => 'მოცეკვავე კაცები: კანის ღია ტონალობა, კანის მუქი ტონალობა',
+    '👨🏼‍🐰‍👨🏻' => 'მოცეკვავე კაცები: ღიადან საშუალომდე კანის ტონალობა, კანის ღია ტონალობა',
+    '👨🏼‍🐰‍👨🏽' => 'მოცეკვავე კაცები: ღიადან საშუალომდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '👨🏼‍🐰‍👨🏾' => 'მოცეკვავე კაცები: ღიადან საშუალომდე კანის ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👨🏼‍🐰‍👨🏿' => 'მოცეკვავე კაცები: ღიადან საშუალომდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '👨🏽‍🐰‍👨🏻' => 'მოცეკვავე კაცები: კანის საშუალო ტონალობა, კანის ღია ტონალობა',
+    '👨🏽‍🐰‍👨🏼' => 'მოცეკვავე კაცები: კანის საშუალო ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👨🏽‍🐰‍👨🏾' => 'მოცეკვავე კაცები: კანის საშუალო ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👨🏽‍🐰‍👨🏿' => 'მოცეკვავე კაცები: კანის საშუალო ტონალობა, კანის მუქი ტონალობა',
+    '👨🏾‍🐰‍👨🏻' => 'მოცეკვავე კაცები: საშუალოდან მუქამდე კანის ტონალობა, კანის ღია ტონალობა',
+    '👨🏾‍🐰‍👨🏼' => 'მოცეკვავე კაცები: საშუალოდან მუქამდე კანის ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👨🏾‍🐰‍👨🏽' => 'მოცეკვავე კაცები: საშუალოდან მუქამდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '👨🏾‍🐰‍👨🏿' => 'მოცეკვავე კაცები: საშუალოდან მუქამდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '👨🏿‍🐰‍👨🏻' => 'მოცეკვავე კაცები: კანის მუქი ტონალობა, კანის ღია ტონალობა',
+    '👨🏿‍🐰‍👨🏼' => 'მოცეკვავე კაცები: კანის მუქი ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👨🏿‍🐰‍👨🏽' => 'მოცეკვავე კაცები: კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
+    '👨🏿‍🐰‍👨🏾' => 'მოცეკვავე კაცები: კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👩🏻‍🫯‍👩🏼' => 'მოჭიდავე ქალები: კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👩🏻‍🫯‍👩🏽' => 'მოჭიდავე ქალები: კანის ღია ტონალობა, კანის საშუალო ტონალობა',
+    '👩🏻‍🫯‍👩🏾' => 'მოჭიდავე ქალები: კანის ღია ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👩🏻‍🫯‍👩🏿' => 'მოჭიდავე ქალები: კანის ღია ტონალობა, კანის მუქი ტონალობა',
+    '👩🏼‍🫯‍👩🏻' => 'მოჭიდავე ქალები: ღიადან საშუალომდე კანის ტონალობა, კანის ღია ტონალობა',
+    '👩🏼‍🫯‍👩🏽' => 'მოჭიდავე ქალები: ღიადან საშუალომდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '👩🏼‍🫯‍👩🏾' => 'მოჭიდავე ქალები: ღიადან საშუალომდე კანის ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👩🏼‍🫯‍👩🏿' => 'მოჭიდავე ქალები: ღიადან საშუალომდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '👩🏽‍🫯‍👩🏻' => 'მოჭიდავე ქალები: კანის საშუალო ტონალობა, კანის ღია ტონალობა',
+    '👩🏽‍🫯‍👩🏼' => 'მოჭიდავე ქალები: კანის საშუალო ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👩🏽‍🫯‍👩🏾' => 'მოჭიდავე ქალები: კანის საშუალო ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👩🏽‍🫯‍👩🏿' => 'მოჭიდავე ქალები: კანის საშუალო ტონალობა, კანის მუქი ტონალობა',
+    '👩🏾‍🫯‍👩🏻' => 'მოჭიდავე ქალები: საშუალოდან მუქამდე კანის ტონალობა, კანის ღია ტონალობა',
+    '👩🏾‍🫯‍👩🏼' => 'მოჭიდავე ქალები: საშუალოდან მუქამდე კანის ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👩🏾‍🫯‍👩🏽' => 'მოჭიდავე ქალები: საშუალოდან მუქამდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '👩🏾‍🫯‍👩🏿' => 'მოჭიდავე ქალები: საშუალოდან მუქამდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '👩🏿‍🫯‍👩🏻' => 'მოჭიდავე ქალები: კანის მუქი ტონალობა, კანის ღია ტონალობა',
+    '👩🏿‍🫯‍👩🏼' => 'მოჭიდავე ქალები: კანის მუქი ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👩🏿‍🫯‍👩🏽' => 'მოჭიდავე ქალები: კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
+    '👩🏿‍🫯‍👩🏾' => 'მოჭიდავე ქალები: კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
     '👩🏻‍❤‍👨🏻' => 'წყვილი და გული: ქალი, კაცი, კანის ღია ტონალობა',
     '👩🏻‍❤‍👨🏼' => 'წყვილი და გული: ქალი, კაცი, კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
     '👩🏻‍❤‍👨🏽' => 'წყვილი და გული: ქალი, კაცი, კანის ღია ტონალობა, კანის საშუალო ტონალობა',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'წყვილი და გული: ქალი, ქალი, კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
     '👩🏿‍❤‍👩🏾' => 'წყვილი და გული: ქალი, ქალი, კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
     '👩🏿‍❤‍👩🏿' => 'წყვილი და გული: ქალი, ქალი, კანის მუქი ტონალობა',
+    '👩🏻‍🐰‍👩🏼' => 'მოცეკვავე ქალები: კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👩🏻‍🐰‍👩🏽' => 'მოცეკვავე ქალები: კანის ღია ტონალობა, კანის საშუალო ტონალობა',
+    '👩🏻‍🐰‍👩🏾' => 'მოცეკვავე ქალები: კანის ღია ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👩🏻‍🐰‍👩🏿' => 'მოცეკვავე ქალები: კანის ღია ტონალობა, კანის მუქი ტონალობა',
+    '👩🏼‍🐰‍👩🏻' => 'მოცეკვავე ქალები: ღიადან საშუალომდე კანის ტონალობა, კანის ღია ტონალობა',
+    '👩🏼‍🐰‍👩🏽' => 'მოცეკვავე ქალები: ღიადან საშუალომდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '👩🏼‍🐰‍👩🏾' => 'მოცეკვავე ქალები: ღიადან საშუალომდე კანის ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👩🏼‍🐰‍👩🏿' => 'მოცეკვავე ქალები: ღიადან საშუალომდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '👩🏽‍🐰‍👩🏻' => 'მოცეკვავე ქალები: კანის საშუალო ტონალობა, კანის ღია ტონალობა',
+    '👩🏽‍🐰‍👩🏼' => 'მოცეკვავე ქალები: კანის საშუალო ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👩🏽‍🐰‍👩🏾' => 'მოცეკვავე ქალები: კანის საშუალო ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
+    '👩🏽‍🐰‍👩🏿' => 'მოცეკვავე ქალები: კანის საშუალო ტონალობა, კანის მუქი ტონალობა',
+    '👩🏾‍🐰‍👩🏻' => 'მოცეკვავე ქალები: საშუალოდან მუქამდე კანის ტონალობა, კანის ღია ტონალობა',
+    '👩🏾‍🐰‍👩🏼' => 'მოცეკვავე ქალები: საშუალოდან მუქამდე კანის ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👩🏾‍🐰‍👩🏽' => 'მოცეკვავე ქალები: საშუალოდან მუქამდე კანის ტონალობა, კანის საშუალო ტონალობა',
+    '👩🏾‍🐰‍👩🏿' => 'მოცეკვავე ქალები: საშუალოდან მუქამდე კანის ტონალობა, კანის მუქი ტონალობა',
+    '👩🏿‍🐰‍👩🏻' => 'მოცეკვავე ქალები: კანის მუქი ტონალობა, კანის ღია ტონალობა',
+    '👩🏿‍🐰‍👩🏼' => 'მოცეკვავე ქალები: კანის მუქი ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
+    '👩🏿‍🐰‍👩🏽' => 'მოცეკვავე ქალები: კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
+    '👩🏿‍🐰‍👩🏾' => 'მოცეკვავე ქალები: კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
     '🧑🏻‍🤝‍🧑🏻' => 'ხელჩაკიდებული ხალხი: კანის ღია ტონალობა',
     '🧑🏻‍🤝‍🧑🏼' => 'ხელჩაკიდებული ხალხი: კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
     '🧑🏻‍🤝‍🧑🏽' => 'ხელჩაკიდებული ხალხი: კანის ღია ტონალობა, კანის საშუალო ტონალობა',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'დროშა: შოტლანდია',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'დროშა: უელსი',
     '🧑‍🧑‍🧒‍🧒' => 'ოჯახი: ზრდასრული, ზრდასრული, ბავშვი, ბავშვი',
-    '🚶🏻‍♀‍➡' => 'მოსიარულე ქალი მარჯვნივ მიმართული',
-    '🚶🏼‍♀‍➡' => 'მოსიარულე ქალი მარჯვნივ მიმართული',
-    '🚶🏽‍♀‍➡' => 'მოსიარულე ქალი მარჯვნივ მიმართული',
-    '🚶🏾‍♀‍➡' => 'მოსიარულე ქალი მარჯვნივ მიმართული',
-    '🚶🏿‍♀‍➡' => 'მოსიარულე ქალი მარჯვნივ მიმართული',
-    '🚶🏻‍♂‍➡' => 'მოსიარულე კაცი მარჯვნივ მიმართული',
-    '🚶🏼‍♂‍➡' => 'მოსიარულე კაცი მარჯვნივ მიმართული',
-    '🚶🏽‍♂‍➡' => 'მოსიარულე კაცი მარჯვნივ მიმართული',
-    '🚶🏾‍♂‍➡' => 'მოსიარულე კაცი მარჯვნივ მიმართული',
-    '🚶🏿‍♂‍➡' => 'მოსიარულე კაცი მარჯვნივ მიმართული',
-    '🧎🏻‍♀‍➡' => 'დაჩოქილი ქალი მარჯვნივ მიმართული',
-    '🧎🏼‍♀‍➡' => 'დაჩოქილი ქალი მარჯვნივ მიმართული',
-    '🧎🏽‍♀‍➡' => 'დაჩოქილი ქალი მარჯვნივ მიმართული',
-    '🧎🏾‍♀‍➡' => 'დაჩოქილი ქალი მარჯვნივ მიმართული',
-    '🧎🏿‍♀‍➡' => 'დაჩოქილი ქალი მარჯვნივ მიმართული',
-    '🧎🏻‍♂‍➡' => 'დაჩოქილი კაცი მარჯვნივ მიმართული',
-    '🧎🏼‍♂‍➡' => 'დაჩოქილი კაცი მარჯვნივ მიმართული',
-    '🧎🏽‍♂‍➡' => 'დაჩოქილი კაცი მარჯვნივ მიმართული',
-    '🧎🏾‍♂‍➡' => 'დაჩოქილი კაცი მარჯვნივ მიმართული',
-    '🧎🏿‍♂‍➡' => 'დაჩოქილი კაცი მარჯვნივ მიმართული',
-    '🧑🏻‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით მარჯვნივ მიმართული',
-    '🧑🏼‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით მარჯვნივ მიმართული',
-    '🧑🏽‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით მარჯვნივ მიმართული',
-    '🧑🏾‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით მარჯვნივ მიმართული',
-    '🧑🏿‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით მარჯვნივ მიმართული',
-    '👨🏻‍🦯‍➡' => 'კაცი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '👨🏼‍🦯‍➡' => 'კაცი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '👨🏽‍🦯‍➡' => 'კაცი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '👨🏾‍🦯‍➡' => 'კაცი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '👨🏿‍🦯‍➡' => 'კაცი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '👩🏻‍🦯‍➡' => 'ქალი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '👩🏼‍🦯‍➡' => 'ქალი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '👩🏽‍🦯‍➡' => 'ქალი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '👩🏾‍🦯‍➡' => 'ქალი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '👩🏿‍🦯‍➡' => 'ქალი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '🧑🏻‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '🧑🏼‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '🧑🏽‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '🧑🏾‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '🧑🏿‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👨🏻‍🦼‍➡' => 'კაცი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👨🏼‍🦼‍➡' => 'კაცი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👨🏽‍🦼‍➡' => 'კაცი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👨🏾‍🦼‍➡' => 'კაცი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👨🏿‍🦼‍➡' => 'კაცი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👩🏻‍🦼‍➡' => 'ქალი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👩🏼‍🦼‍➡' => 'ქალი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👩🏽‍🦼‍➡' => 'ქალი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👩🏾‍🦼‍➡' => 'ქალი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👩🏿‍🦼‍➡' => 'ქალი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '🧑🏻‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში მარჯვნივ მიმართული',
-    '🧑🏼‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში მარჯვნივ მიმართული',
-    '🧑🏽‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში მარჯვნივ მიმართული',
-    '🧑🏾‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში მარჯვნივ მიმართული',
-    '🧑🏿‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში მარჯვნივ მიმართული',
-    '👨🏻‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '👨🏼‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '👨🏽‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '👨🏾‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '👨🏿‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '👩🏻‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '👩🏼‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '👩🏽‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '👩🏾‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '👩🏿‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '🏃🏻‍♀‍➡' => 'მორბენალი ქალი მარჯვნივ მიმართული',
-    '🏃🏼‍♀‍➡' => 'მორბენალი ქალი მარჯვნივ მიმართული',
-    '🏃🏽‍♀‍➡' => 'მორბენალი ქალი მარჯვნივ მიმართული',
-    '🏃🏾‍♀‍➡' => 'მორბენალი ქალი მარჯვნივ მიმართული',
-    '🏃🏿‍♀‍➡' => 'მორბენალი ქალი მარჯვნივ მიმართული',
-    '🏃🏻‍♂‍➡' => 'მორბენალი კაცი მარჯვნივ მიმართული',
-    '🏃🏼‍♂‍➡' => 'მორბენალი კაცი მარჯვნივ მიმართული',
-    '🏃🏽‍♂‍➡' => 'მორბენალი კაცი მარჯვნივ მიმართული',
-    '🏃🏾‍♂‍➡' => 'მორბენალი კაცი მარჯვნივ მიმართული',
-    '🏃🏿‍♂‍➡' => 'მორბენალი კაცი მარჯვნივ მიმართული',
+    '🚶🏻‍♀‍➡' => 'მოსიარულე ქალი: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏼‍♀‍➡' => 'მოსიარულე ქალი: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏽‍♀‍➡' => 'მოსიარულე ქალი: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏾‍♀‍➡' => 'მოსიარულე ქალი: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏿‍♀‍➡' => 'მოსიარულე ქალი: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏻‍♂‍➡' => 'მოსიარულე კაცი: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏼‍♂‍➡' => 'მოსიარულე კაცი: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏽‍♂‍➡' => 'მოსიარულე კაცი: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏾‍♂‍➡' => 'მოსიარულე კაცი: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏿‍♂‍➡' => 'მოსიარულე კაცი: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏻‍♀‍➡' => 'დაჩოქილი ქალი: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏼‍♀‍➡' => 'დაჩოქილი ქალი: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏽‍♀‍➡' => 'დაჩოქილი ქალი: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏾‍♀‍➡' => 'დაჩოქილი ქალი: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏿‍♀‍➡' => 'დაჩოქილი ქალი: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏻‍♂‍➡' => 'დაჩოქილი კაცი: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏼‍♂‍➡' => 'დაჩოქილი კაცი: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏽‍♂‍➡' => 'დაჩოქილი კაცი: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏾‍♂‍➡' => 'დაჩოქილი კაცი: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏿‍♂‍➡' => 'დაჩოქილი კაცი: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏻‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏼‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏽‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏾‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏿‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '👨🏻‍🦯‍➡' => 'კაცი თეთრი ჯოხით: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '👨🏼‍🦯‍➡' => 'კაცი თეთრი ჯოხით: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👨🏽‍🦯‍➡' => 'კაცი თეთრი ჯოხით: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '👨🏾‍🦯‍➡' => 'კაცი თეთრი ჯოხით: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👨🏿‍🦯‍➡' => 'კაცი თეთრი ჯოხით: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '👩🏻‍🦯‍➡' => 'ქალი თეთრი ჯოხით: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '👩🏼‍🦯‍➡' => 'ქალი თეთრი ჯოხით: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👩🏽‍🦯‍➡' => 'ქალი თეთრი ჯოხით: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '👩🏾‍🦯‍➡' => 'ქალი თეთრი ჯოხით: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👩🏿‍🦯‍➡' => 'ქალი თეთრი ჯოხით: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏻‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏼‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏽‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏾‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏿‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '👨🏻‍🦼‍➡' => 'კაცი მოტორიან ეტლში: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '👨🏼‍🦼‍➡' => 'კაცი მოტორიან ეტლში: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👨🏽‍🦼‍➡' => 'კაცი მოტორიან ეტლში: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '👨🏾‍🦼‍➡' => 'კაცი მოტორიან ეტლში: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👨🏿‍🦼‍➡' => 'კაცი მოტორიან ეტლში: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '👩🏻‍🦼‍➡' => 'ქალი მოტორიან ეტლში: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '👩🏼‍🦼‍➡' => 'ქალი მოტორიან ეტლში: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👩🏽‍🦼‍➡' => 'ქალი მოტორიან ეტლში: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '👩🏾‍🦼‍➡' => 'ქალი მოტორიან ეტლში: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👩🏿‍🦼‍➡' => 'ქალი მოტორიან ეტლში: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏻‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏼‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏽‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏾‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧑🏿‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '👨🏻‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '👨🏼‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👨🏽‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '👨🏾‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👨🏿‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '👩🏻‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '👩🏼‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👩🏽‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '👩🏾‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '👩🏿‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏻‍♀‍➡' => 'მორბენალი ქალი: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏼‍♀‍➡' => 'მორბენალი ქალი: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏽‍♀‍➡' => 'მორბენალი ქალი: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏾‍♀‍➡' => 'მორბენალი ქალი: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏿‍♀‍➡' => 'მორბენალი ქალი: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏻‍♂‍➡' => 'მორბენალი კაცი: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏼‍♂‍➡' => 'მორბენალი კაცი: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏽‍♂‍➡' => 'მორბენალი კაცი: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏾‍♂‍➡' => 'მორბენალი კაცი: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏿‍♂‍➡' => 'მორბენალი კაცი: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
     '🫱🏻‍🫲🏼' => 'ხელის ჩამორთმევა: კანის ღია ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
     '🫱🏻‍🫲🏽' => 'ხელის ჩამორთმევა: კანის ღია ტონალობა, კანის საშუალო ტონალობა',
     '🫱🏻‍🫲🏾' => 'ხელის ჩამორთმევა: კანის ღია ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ხელის ჩამორთმევა: კანის მუქი ტონალობა, ღიადან საშუალომდე კანის ტონალობა',
     '🫱🏿‍🫲🏽' => 'ხელის ჩამორთმევა: კანის მუქი ტონალობა, კანის საშუალო ტონალობა',
     '🫱🏿‍🫲🏾' => 'ხელის ჩამორთმევა: კანის მუქი ტონალობა, საშუალოდან მუქამდე კანის ტონალობა',
-    '🚶‍♀‍➡' => 'მოსიარულე ქალი მარჯვნივ მიმართული',
-    '🚶‍♂‍➡' => 'მოსიარულე კაცი მარჯვნივ მიმართული',
-    '🧎‍♀‍➡' => 'დაჩოქილი ქალი მარჯვნივ მიმართული',
-    '🧎‍♂‍➡' => 'დაჩოქილი კაცი მარჯვნივ მიმართული',
-    '🧑‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით მარჯვნივ მიმართული',
-    '👨‍🦯‍➡' => 'კაცი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '👩‍🦯‍➡' => 'ქალი თეთრი ჯოხით მარჯვნივ მიმართული',
-    '🧑‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👨‍🦼‍➡' => 'კაცი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '👩‍🦼‍➡' => 'ქალი მოტორიან ეტლში მარჯვნივ მიმართული',
-    '🧑‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში მარჯვნივ მიმართული',
-    '👨‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '👩‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში მარჯვნივ მიმართული',
-    '🏃‍♀‍➡' => 'მორბენალი ქალი მარჯვნივ მიმართული',
-    '🏃‍♂‍➡' => 'მორბენალი კაცი მარჯვნივ მიმართული',
+    '🚶‍♀‍➡' => 'მოსიარულე ქალი: მარჯვნივ მიმართული',
+    '🚶‍♂‍➡' => 'მოსიარულე კაცი: მარჯვნივ მიმართული',
+    '🧎‍♀‍➡' => 'დაჩოქილი ქალი: მარჯვნივ მიმართული',
+    '🧎‍♂‍➡' => 'დაჩოქილი კაცი: მარჯვნივ მიმართული',
+    '🧑‍🦯‍➡' => 'ადამიანი თეთრი ხელჯოხით: მარჯვნივ მიმართული',
+    '👨‍🦯‍➡' => 'კაცი თეთრი ჯოხით: მარჯვნივ მიმართული',
+    '👩‍🦯‍➡' => 'ქალი თეთრი ჯოხით: მარჯვნივ მიმართული',
+    '🧑‍🦼‍➡' => 'ადამიანი მოტორიან ეტლში: მარჯვნივ მიმართული',
+    '👨‍🦼‍➡' => 'კაცი მოტორიან ეტლში: მარჯვნივ მიმართული',
+    '👩‍🦼‍➡' => 'ქალი მოტორიან ეტლში: მარჯვნივ მიმართული',
+    '🧑‍🦽‍➡' => 'ადამიანი მექანიკურ ბორბლიან ეტლში: მარჯვნივ მიმართული',
+    '👨‍🦽‍➡' => 'კაცი შშმ პირის მექანიკურ ეტლში: მარჯვნივ მიმართული',
+    '👩‍🦽‍➡' => 'ქალი შშმ პირის მექანიკურ ეტლში: მარჯვნივ მიმართული',
+    '🏃‍♀‍➡' => 'მორბენალი ქალი: მარჯვნივ მიმართული',
+    '🏃‍♂‍➡' => 'მორბენალი კაცი: მარჯვნივ მიმართული',
     '👩‍❤‍👨' => 'წყვილი და გული: ქალი, კაცი',
     '👨‍❤‍👨' => 'წყვილი და გული: კაცი, კაცი',
     '👩‍❤‍👩' => 'წყვილი და გული: ქალი, ქალი',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'სრულწლოვანი: კანის საშუალო ტონალობა, მელოტი',
     '🧑🏾‍🦲' => 'სრულწლოვანი: საშუალოდან მუქამდე კანის ტონალობა, მელოტი',
     '🧑🏿‍🦲' => 'სრულწლოვანი: კანის მუქი ტონალობა, მელოტი',
+    '🧑🏻‍🩰' => 'ბალერინა: კანის ღია ტონალობა',
+    '🧑🏼‍🩰' => 'ბალერინა: ღიადან საშუალომდე კანის ტონალობა',
+    '🧑🏽‍🩰' => 'ბალერინა: კანის საშუალო ტონალობა',
+    '🧑🏾‍🩰' => 'ბალერინა: საშუალოდან მუქამდე კანის ტონალობა',
+    '🧑🏿‍🩰' => 'ბალერინა: კანის მუქი ტონალობა',
     '🧔🏻‍♂' => 'კაცი: კანის ღია ტონალობა, წვერი',
     '🧔🏼‍♂' => 'კაცი: ღიადან საშუალომდე კანის ტონალობა, წვერი',
     '🧔🏽‍♂' => 'კაცი: კანის საშუალო ტონალობა, წვერი',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'მოსიარულე ქალი: კანის საშუალო ტონალობა',
     '🚶🏾‍♀' => 'მოსიარულე ქალი: საშუალოდან მუქამდე კანის ტონალობა',
     '🚶🏿‍♀' => 'მოსიარულე ქალი: კანის მუქი ტონალობა',
-    '🚶🏻‍➡' => 'ქვეითი მარჯვნივ მიმართული',
-    '🚶🏼‍➡' => 'ქვეითი მარჯვნივ მიმართული',
-    '🚶🏽‍➡' => 'ქვეითი მარჯვნივ მიმართული',
-    '🚶🏾‍➡' => 'ქვეითი მარჯვნივ მიმართული',
-    '🚶🏿‍➡' => 'ქვეითი მარჯვნივ მიმართული',
+    '🚶🏻‍➡' => 'ქვეითი: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏼‍➡' => 'ქვეითი: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏽‍➡' => 'ქვეითი: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏾‍➡' => 'ქვეითი: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🚶🏿‍➡' => 'ქვეითი: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
     '🧍🏻‍♂' => 'ფეხზე მდგომი კაცი: კანის ღია ტონალობა',
     '🧍🏼‍♂' => 'ფეხზე მდგომი კაცი: ღიადან საშუალომდე კანის ტონალობა',
     '🧍🏽‍♂' => 'ფეხზე მდგომი კაცი: კანის საშუალო ტონალობა',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'დაჩოქილი ქალი: კანის საშუალო ტონალობა',
     '🧎🏾‍♀' => 'დაჩოქილი ქალი: საშუალოდან მუქამდე კანის ტონალობა',
     '🧎🏿‍♀' => 'დაჩოქილი ქალი: კანის მუქი ტონალობა',
-    '🧎🏻‍➡' => 'დაჩოქილი ადამიანი მარჯვნივ მიმართული',
-    '🧎🏼‍➡' => 'დაჩოქილი ადამიანი მარჯვნივ მიმართული',
-    '🧎🏽‍➡' => 'დაჩოქილი ადამიანი მარჯვნივ მიმართული',
-    '🧎🏾‍➡' => 'დაჩოქილი ადამიანი მარჯვნივ მიმართული',
-    '🧎🏿‍➡' => 'დაჩოქილი ადამიანი მარჯვნივ მიმართული',
+    '🧎🏻‍➡' => 'დაჩოქილი ადამიანი: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏼‍➡' => 'დაჩოქილი ადამიანი: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏽‍➡' => 'დაჩოქილი ადამიანი: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏾‍➡' => 'დაჩოქილი ადამიანი: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🧎🏿‍➡' => 'დაჩოქილი ადამიანი: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
     '🧑🏻‍🦯' => 'ადამიანი თეთრი ხელჯოხით: კანის ღია ტონალობა',
     '🧑🏼‍🦯' => 'ადამიანი თეთრი ხელჯოხით: ღიადან საშუალომდე კანის ტონალობა',
     '🧑🏽‍🦯' => 'ადამიანი თეთრი ხელჯოხით: კანის საშუალო ტონალობა',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'მორბენალი ქალი: კანის საშუალო ტონალობა',
     '🏃🏾‍♀' => 'მორბენალი ქალი: საშუალოდან მუქამდე კანის ტონალობა',
     '🏃🏿‍♀' => 'მორბენალი ქალი: კანის მუქი ტონალობა',
-    '🏃🏻‍➡' => 'მორბენალი მარჯვნივ მიმართული',
-    '🏃🏼‍➡' => 'მორბენალი მარჯვნივ მიმართული',
-    '🏃🏽‍➡' => 'მორბენალი მარჯვნივ მიმართული',
-    '🏃🏾‍➡' => 'მორბენალი მარჯვნივ მიმართული',
-    '🏃🏿‍➡' => 'მორბენალი მარჯვნივ მიმართული',
+    '🏃🏻‍➡' => 'მორბენალი: კანის ღია ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏼‍➡' => 'მორბენალი: ღიადან საშუალომდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏽‍➡' => 'მორბენალი: კანის საშუალო ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏾‍➡' => 'მორბენალი: საშუალოდან მუქამდე კანის ტონალობა, მარჯვნივ მიმართული',
+    '🏃🏿‍➡' => 'მორბენალი: კანის მუქი ტონალობა, მარჯვნივ მიმართული',
+    '👯🏻‍♀' => 'მოცეკვავე ქალები: კანის ღია ტონალობა',
+    '👯🏼‍♀' => 'მოცეკვავე ქალები: ღიადან საშუალომდე კანის ტონალობა',
+    '👯🏽‍♀' => 'მოცეკვავე ქალები: კანის საშუალო ტონალობა',
+    '👯🏾‍♀' => 'მოცეკვავე ქალები: საშუალოდან მუქამდე კანის ტონალობა',
+    '👯🏿‍♀' => 'მოცეკვავე ქალები: კანის მუქი ტონალობა',
+    '👯🏻‍♂' => 'მოცეკვავე კაცები: კანის ღია ტონალობა',
+    '👯🏼‍♂' => 'მოცეკვავე კაცები: ღიადან საშუალომდე კანის ტონალობა',
+    '👯🏽‍♂' => 'მოცეკვავე კაცები: კანის საშუალო ტონალობა',
+    '👯🏾‍♂' => 'მოცეკვავე კაცები: საშუალოდან მუქამდე კანის ტონალობა',
+    '👯🏿‍♂' => 'მოცეკვავე კაცები: კანის მუქი ტონალობა',
     '🧖🏻‍♂' => 'კაცი საუნაში: კანის ღია ტონალობა',
     '🧖🏼‍♂' => 'კაცი საუნაში: ღიადან საშუალომდე კანის ტონალობა',
     '🧖🏽‍♂' => 'კაცი საუნაში: კანის საშუალო ტონალობა',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'აკრობატი ქალი: კანის საშუალო ტონალობა',
     '🤸🏾‍♀' => 'აკრობატი ქალი: საშუალოდან მუქამდე კანის ტონალობა',
     '🤸🏿‍♀' => 'აკრობატი ქალი: კანის მუქი ტონალობა',
+    '🤼🏻‍♀' => 'მოჭიდავე ქალები: კანის ღია ტონალობა',
+    '🤼🏼‍♀' => 'მოჭიდავე ქალები: ღიადან საშუალომდე კანის ტონალობა',
+    '🤼🏽‍♀' => 'მოჭიდავე ქალები: კანის საშუალო ტონალობა',
+    '🤼🏾‍♀' => 'მოჭიდავე ქალები: საშუალოდან მუქამდე კანის ტონალობა',
+    '🤼🏿‍♀' => 'მოჭიდავე ქალები: კანის მუქი ტონალობა',
+    '🤼🏻‍♂' => 'მოჭიდავე კაცები: კანის ღია ტონალობა',
+    '🤼🏼‍♂' => 'მოჭიდავე კაცები: ღიადან საშუალომდე კანის ტონალობა',
+    '🤼🏽‍♂' => 'მოჭიდავე კაცები: კანის საშუალო ტონალობა',
+    '🤼🏾‍♂' => 'მოჭიდავე კაცები: საშუალოდან მუქამდე კანის ტონალობა',
+    '🤼🏿‍♂' => 'მოჭიდავე კაცები: კანის მუქი ტონალობა',
     '🤽🏻‍♂' => 'წყალბურთელი კაცი: კანის ღია ტონალობა',
     '🤽🏼‍♂' => 'წყალბურთელი კაცი: ღიადან საშუალომდე კანის ტონალობა',
     '🤽🏽‍♂' => 'წყალბურთელი კაცი: კანის საშუალო ტონალობა',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ქალი: ხვეული თმა',
     '👩‍🦳' => 'ქალი: თეთრი თმა',
     '👩‍🦲' => 'ქალი: მელოტი',
-    '🚶‍➡' => 'ქვეითი მარჯვნივ მიმართული',
-    '🧎‍➡' => 'დაჩოქილი ადამიანი მარჯვნივ მიმართული',
-    '🏃‍➡' => 'მორბენალი მარჯვნივ მიმართული',
+    '🚶‍➡' => 'ქვეითი: მარჯვნივ მიმართული',
+    '🧎‍➡' => 'დაჩოქილი ადამიანი: მარჯვნივ მიმართული',
+    '🏃‍➡' => 'მორბენალი: მარჯვნივ მიმართული',
     '👨‍👦' => 'ოჯახი: კაცი, ბიჭი',
     '👨‍👧' => 'ოჯახი: კაცი, გოგო',
     '👩‍👦' => 'ოჯახი: ქალი, ბიჭი',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ქალი შშმ პირის მექანიკურ ეტლში',
     '🏃‍♂' => 'მორბენალი კაცი',
     '🏃‍♀' => 'მორბენალი ქალი',
+    '🧑‍🩰' => 'ბალერინა',
     '👯‍♂' => 'მოცეკვავე კაცები',
     '👯‍♀' => 'მოცეკვავე ქალები',
     '🧖‍♂' => 'კაცი საუნაში',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'ჰაერში გაჩერებული კაცი ბიზნეს კოსტიუმში: კანის საშუალო ტონალობა',
     '🕴🏾' => 'ჰაერში გაჩერებული კაცი ბიზნეს კოსტიუმში: საშუალოდან მუქამდე კანის ტონალობა',
     '🕴🏿' => 'ჰაერში გაჩერებული კაცი ბიზნეს კოსტიუმში: კანის მუქი ტონალობა',
+    '👯🏻' => 'ქალები ერთობიან: კანის ღია ტონალობა',
+    '👯🏼' => 'ქალები ერთობიან: ღიადან საშუალომდე კანის ტონალობა',
+    '👯🏽' => 'ქალები ერთობიან: კანის საშუალო ტონალობა',
+    '👯🏾' => 'ქალები ერთობიან: საშუალოდან მუქამდე კანის ტონალობა',
+    '👯🏿' => 'ქალები ერთობიან: კანის მუქი ტონალობა',
     '🧖🏻' => 'ადამიანი საუნაში: კანის ღია ტონალობა',
     '🧖🏼' => 'ადამიანი საუნაში: ღიადან საშუალომდე კანის ტონალობა',
     '🧖🏽' => 'ადამიანი საუნაში: კანის საშუალო ტონალობა',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'აკრობატული ილეთი: კანის საშუალო ტონალობა',
     '🤸🏾' => 'აკრობატული ილეთი: საშუალოდან მუქამდე კანის ტონალობა',
     '🤸🏿' => 'აკრობატული ილეთი: კანის მუქი ტონალობა',
+    '🤼🏻' => 'მოჭიდავეები: კანის ღია ტონალობა',
+    '🤼🏼' => 'მოჭიდავეები: ღიადან საშუალომდე კანის ტონალობა',
+    '🤼🏽' => 'მოჭიდავეები: კანის საშუალო ტონალობა',
+    '🤼🏾' => 'მოჭიდავეები: საშუალოდან მუქამდე კანის ტონალობა',
+    '🤼🏿' => 'მოჭიდავეები: კანის მუქი ტონალობა',
     '🤽🏻' => 'წყალბურთი: კანის ღია ტონალობა',
     '🤽🏼' => 'წყალბურთი: ღიადან საშუალომდე კანის ტონალობა',
     '🤽🏽' => 'წყალბურთი: კანის საშუალო ტონალობა',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'დროშა: ჩინეთი',
     '🇨🇴' => 'დროშა: კოლუმბია',
     '🇨🇵' => 'დროშა: კლიპერტონის კუნძული',
+    '🇨🇶' => 'დროშა: სარკი',
     '🇨🇷' => 'დროშა: კოსტა-რიკა',
     '🇨🇺' => 'დროშა: კუბა',
     '🇨🇻' => 'დროშა: კაბო-ვერდე',
@@ -2390,13 +2547,6 @@
     '🏽' => 'კანის საშუალო ტონალობა',
     '🏾' => 'საშუალოდან მუქამდე კანის ტონალობა',
     '🏿' => 'კანის მუქი ტონალობა',
-    '🪉' => 'არფა',
-    '🪏' => 'ნიჩაბი',
-    '🪾' => 'უფოთლო ხე',
-    '🫆' => 'თითის ანაბეჭდი',
-    '🫜' => 'ბოლქვოვანი მცენარე',
-    '🫟' => 'შხეფი',
-    '🫩' => 'სახე დასიებული თვალებით',
     '😀' => 'დაკრეჭილი სახე',
     '😃' => 'მომღიმარე სახე ღია პირით',
     '😄' => 'მომღიმარე სახე ღია პირითა და მომღიმარე თვალებით',
@@ -2450,6 +2600,7 @@
     '😪' => 'ძილმორეული სახე',
     '🤤' => 'დორბლიანი სახე',
     '😴' => 'მძინარე სახე',
+    '🫩' => 'სახე დასიებული თვალებით',
     '😷' => 'სახე სამედიცინო ნიღბით',
     '🤒' => 'სახე თერმომეტრით',
     '🤕' => 'სახე თავზე ბინტით',
@@ -2476,6 +2627,7 @@
     '😯' => 'გაოცებული სახე',
     '😲' => 'გაკვირვებული სახე',
     '😳' => 'გაწითლებული სახე',
+    '🫪' => 'მოღრეცილი სახე',
     '🥺' => 'შემოვედრება',
     '🥹' => 'აცრემლიანებული სახე',
     '😦' => 'შეჭმუხნილი სახე ღია პირით',
@@ -2547,6 +2699,7 @@
     '💋' => 'კოცნის კვალი',
     '💯' => 'ასი ქულა',
     '💢' => 'სიბრაზის სიმბოლო',
+    '🫯' => 'საბრძოლო ღრუბელი',
     '💥' => 'შეჯახება',
     '💫' => 'გაბრუებული',
     '💦' => 'ოფლის წვეთები',
@@ -2670,6 +2823,7 @@
     '🧞' => 'ჯინი',
     '🧟' => 'ზომბი',
     '🧌' => 'ტროლი',
+    '🫈' => 'იეტი',
     '💆' => 'სახის მასაჟი',
     '💇' => 'თმის შეჭრა',
     '🚶' => 'ქვეითი',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ჩახუტებული ხალხი',
     '👪' => 'ოჯახი',
     '👣' => 'ფეხების ნაკვალევი',
+    '🫆' => 'თითის ანაბეჭდი',
     '🦰' => 'წითელი თმა',
     '🦱' => 'ხვეული თმა',
     '🦳' => 'თეთრი თმა',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ვეშაპი ჭავლით',
     '🐋' => 'ვეშაპი',
     '🐬' => 'დელფინი',
+    '🫍' => 'ცელნამგალა ვეშაპი',
     '🦭' => 'სელაპი',
     '🐟' => 'თევზი',
     '🐠' => 'ტროპიკული თევზი',
@@ -2821,6 +2977,11 @@
     '🐚' => 'სპირალური ნიჟარა',
     '🪸' => 'მარჯანი',
     '🪼' => 'მედუზა',
+    '🦀' => 'კიბორჩხალა',
+    '🦞' => 'კიბო',
+    '🦐' => 'კრევეტი',
+    '🦑' => 'კალმარი',
+    '🦪' => 'ხამანწკა',
     '🐌' => 'ლოკოკინა',
     '🦋' => 'პეპელა',
     '🐛' => 'ბაღლინჯო',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ცარიელი ბუდე',
     '🪺' => 'ბუდე კვერცხებით',
     '🍄' => 'სოკო',
+    '🪾' => 'უფოთლო ხე',
     '🍇' => 'ყურძენი',
     '🍈' => 'ნესვი',
     '🍉' => 'საზამთრო',
@@ -2901,6 +3063,7 @@
     '🌰' => 'წაბლი',
     '🫚' => 'ჯანჯაფილის ფესვი',
     '🫛' => 'ბარდა',
+    '🫜' => 'ბოლქვოვანი მცენარე',
     '🍞' => 'პური',
     '🥐' => 'კრუასანი',
     '🥖' => 'ბაგეტი',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ხინკალი',
     '🥠' => 'იღბლიანი ორცხობილა',
     '🥡' => 'საჭმლის წამოსაღები ყუთი',
-    '🦀' => 'კიბორჩხალა',
-    '🦞' => 'კიბო',
-    '🦐' => 'კრევეტი',
-    '🦑' => 'კალმარი',
-    '🦪' => 'ხამანწკა',
     '🍦' => 'რბილი ნაყინი',
     '🍧' => 'ნაყინის ბურთულები',
     '🍨' => 'ნაყინი',
@@ -3007,6 +3165,7 @@
     '🧭' => 'კომპასი',
     '🏔' => 'თოვლით დაფარული მთა',
     '⛰' => 'მთა',
+    '🛘' => 'მეწყერი',
     '🌋' => 'ვულკანი',
     '🗻' => 'მთა ფუძი',
     '🏕' => 'კემპინგი',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ყურსასმენი',
     '📻' => 'რადიო',
     '🎷' => 'საქსოფონი',
+    '🎺' => 'საყვირი',
+    '🪊' => 'ტრომბონი',
     '🪗' => 'აკორდეონი',
     '🎸' => 'გიტარა',
     '🎹' => 'მუსიკალური კლავიშები',
-    '🎺' => 'საყვირი',
     '🎻' => 'ვიოლინო',
     '🪕' => 'ბანჯო',
     '🥁' => 'ბარაბანი',
     '🪘' => 'გრძელი დოლი',
     '🪇' => 'მარაკა',
     '🪈' => 'ფლეიტა',
+    '🪉' => 'არფა',
     '📱' => 'მობილური ტელეფონი',
     '📲' => 'მობილური ტელეფონი ისრით',
     '☎' => 'ტელეფონი',
@@ -3430,8 +3591,9 @@
     '📑' => 'სანიშნი ჩანართები',
     '🔖' => 'სანიშნე',
     '🏷' => 'იარლიყი',
-    '💰' => 'ფულის ტომარა',
     '🪙' => 'მონეტა',
+    '💰' => 'ფულის ტომარა',
+    '🪎' => 'საგანძურის სკივრი',
     '💴' => 'იენას ბანკნოტი',
     '💵' => 'დოლარის ბანკნოტი',
     '💶' => 'ევროს ბანკნოტი',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ხელსაწყოები',
     '🧲' => 'მაგნიტი',
     '🪜' => 'კიბე',
+    '🪏' => 'ნიჩაბი',
     '⚗' => 'გამოსახდელი აპარატი',
     '🧪' => 'სინჯარა',
     '🧫' => 'პეტრის თასი',
@@ -3697,6 +3860,7 @@
     '✴' => 'რვაქიმიანი ვარსკვლავი',
     '❇' => 'ნაპერწკალი',
     '™' => 'სავაჭრო ნიშანი',
+    '🫟' => 'შხეფი',
     '🔠' => 'მთავრული ლათინური ასოების შეყვანა',
     '🔡' => 'ნუსხური ლათინური ასოების შეყვანა',
     '🔢' => 'რიცხვების შეყვანა',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kk_arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kk_arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kk_arab.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kk_arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ءوبىس: ايەل، ايەل، 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
     '👩🏿‍❤‍💋‍👩🏾' => 'ءوبىس: ايەل، ايەل، 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
     '👩🏿‍❤‍💋‍👩🏿' => 'ءوبىس: ايەل، ايەل، 6-تەرى ءتۇسى',
+    '🧑🏻‍🫯‍🧑🏼' => 'كۇرەسشىلەر: 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '🧑🏻‍🫯‍🧑🏽' => 'كۇرەسشىلەر: 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '🧑🏻‍🫯‍🧑🏾' => 'كۇرەسشىلەر: 1–2 تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '🧑🏻‍🫯‍🧑🏿' => 'كۇرەسشىلەر: 1–2 تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '🧑🏼‍🫯‍🧑🏻' => 'كۇرەسشىلەر: 3-تەرى ءتۇرى، 1–2 تەرى ءتۇسى',
+    '🧑🏼‍🫯‍🧑🏽' => 'كۇرەسشىلەر: 3-تەرى ءتۇرى، 4-تەرى ءتۇسى',
+    '🧑🏼‍🫯‍🧑🏾' => 'كۇرەسشىلەر: 3-تەرى ءتۇرى، 5-تەرى ءتۇسى',
+    '🧑🏼‍🫯‍🧑🏿' => 'كۇرەسشىلەر: 3-تەرى ءتۇرى، 6-تەرى ءتۇسى',
+    '🧑🏽‍🫯‍🧑🏻' => 'كۇرەسشىلەر: 4-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '🧑🏽‍🫯‍🧑🏼' => 'كۇرەسشىلەر: 4-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '🧑🏽‍🫯‍🧑🏾' => 'كۇرەسشىلەر: 4-تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '🧑🏽‍🫯‍🧑🏿' => 'كۇرەسشىلەر: 4-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '🧑🏾‍🫯‍🧑🏻' => 'كۇرەسشىلەر: 5-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '🧑🏾‍🫯‍🧑🏼' => 'كۇرەسشىلەر: 5-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '🧑🏾‍🫯‍🧑🏽' => 'كۇرەسشىلەر: 5-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '🧑🏾‍🫯‍🧑🏿' => 'كۇرەسشىلەر: 5-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '🧑🏿‍🫯‍🧑🏻' => 'كۇرەسشىلەر: 6-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '🧑🏿‍🫯‍🧑🏼' => 'كۇرەسشىلەر: 6-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '🧑🏿‍🫯‍🧑🏽' => 'كۇرەسشىلەر: 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '🧑🏿‍🫯‍🧑🏾' => 'كۇرەسشىلەر: 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
     '🧑🏻‍❤‍🧑🏼' => 'ماحاببات: ادام، ادام، 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
     '🧑🏻‍❤‍🧑🏽' => 'ماحاببات: ادام، ادام، 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
     '🧑🏻‍❤‍🧑🏾' => 'ماحاببات: ادام، ادام، 1–2 تەرى ءتۇسى، 5-تەرى ءتۇسى',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ماحاببات: ادام، ادام، 6-تەرى ءتۇسى، 3-تەرى ءتۇرى',
     '🧑🏿‍❤‍🧑🏽' => 'ماحاببات: ادام، ادام، 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
     '🧑🏿‍❤‍🧑🏾' => 'ماحاببات: ادام، ادام، 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '🧑🏻‍🐰‍🧑🏼' => 'بيلەپ جاتقان ايەلدەر: 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '🧑🏻‍🐰‍🧑🏽' => 'بيلەپ جاتقان ايەلدەر: 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '🧑🏻‍🐰‍🧑🏾' => 'بيلەپ جاتقان ايەلدەر: 1–2 تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '🧑🏻‍🐰‍🧑🏿' => 'بيلەپ جاتقان ايەلدەر: 1–2 تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '🧑🏼‍🐰‍🧑🏻' => 'بيلەپ جاتقان ايەلدەر: 3-تەرى ءتۇرى، 1–2 تەرى ءتۇسى',
+    '🧑🏼‍🐰‍🧑🏽' => 'بيلەپ جاتقان ايەلدەر: 3-تەرى ءتۇرى، 4-تەرى ءتۇسى',
+    '🧑🏼‍🐰‍🧑🏾' => 'بيلەپ جاتقان ايەلدەر: 3-تەرى ءتۇرى، 5-تەرى ءتۇسى',
+    '🧑🏼‍🐰‍🧑🏿' => 'بيلەپ جاتقان ايەلدەر: 3-تەرى ءتۇرى، 6-تەرى ءتۇسى',
+    '🧑🏽‍🐰‍🧑🏻' => 'بيلەپ جاتقان ايەلدەر: 4-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '🧑🏽‍🐰‍🧑🏼' => 'بيلەپ جاتقان ايەلدەر: 4-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '🧑🏽‍🐰‍🧑🏾' => 'بيلەپ جاتقان ايەلدەر: 4-تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '🧑🏽‍🐰‍🧑🏿' => 'بيلەپ جاتقان ايەلدەر: 4-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '🧑🏾‍🐰‍🧑🏻' => 'بيلەپ جاتقان ايەلدەر: 5-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '🧑🏾‍🐰‍🧑🏼' => 'بيلەپ جاتقان ايەلدەر: 5-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '🧑🏾‍🐰‍🧑🏽' => 'بيلەپ جاتقان ايەلدەر: 5-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '🧑🏾‍🐰‍🧑🏿' => 'بيلەپ جاتقان ايەلدەر: 5-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '🧑🏿‍🐰‍🧑🏻' => 'بيلەپ جاتقان ايەلدەر: 6-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '🧑🏿‍🐰‍🧑🏼' => 'بيلەپ جاتقان ايەلدەر: 6-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '🧑🏿‍🐰‍🧑🏽' => 'بيلەپ جاتقان ايەلدەر: 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '🧑🏿‍🐰‍🧑🏾' => 'بيلەپ جاتقان ايەلدەر: 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '👨🏻‍🫯‍👨🏼' => 'كۇرەسشى ەر: 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👨🏻‍🫯‍👨🏽' => 'كۇرەسشى ەر: 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👨🏻‍🫯‍👨🏾' => 'كۇرەسشى ەر: 1–2 تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '👨🏻‍🫯‍👨🏿' => 'كۇرەسشى ەر: 1–2 تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👨🏼‍🫯‍👨🏻' => 'كۇرەسشى ەر: 3-تەرى ءتۇرى، 1–2 تەرى ءتۇسى',
+    '👨🏼‍🫯‍👨🏽' => 'كۇرەسشى ەر: 3-تەرى ءتۇرى، 4-تەرى ءتۇسى',
+    '👨🏼‍🫯‍👨🏾' => 'كۇرەسشى ەر: 3-تەرى ءتۇرى، 5-تەرى ءتۇسى',
+    '👨🏼‍🫯‍👨🏿' => 'كۇرەسشى ەر: 3-تەرى ءتۇرى، 6-تەرى ءتۇسى',
+    '👨🏽‍🫯‍👨🏻' => 'كۇرەسشى ەر: 4-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👨🏽‍🫯‍👨🏼' => 'كۇرەسشى ەر: 4-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👨🏽‍🫯‍👨🏾' => 'كۇرەسشى ەر: 4-تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '👨🏽‍🫯‍👨🏿' => 'كۇرەسشى ەر: 4-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👨🏾‍🫯‍👨🏻' => 'كۇرەسشى ەر: 5-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👨🏾‍🫯‍👨🏼' => 'كۇرەسشى ەر: 5-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👨🏾‍🫯‍👨🏽' => 'كۇرەسشى ەر: 5-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👨🏾‍🫯‍👨🏿' => 'كۇرەسشى ەر: 5-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👨🏿‍🫯‍👨🏻' => 'كۇرەسشى ەر: 6-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👨🏿‍🫯‍👨🏼' => 'كۇرەسشى ەر: 6-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👨🏿‍🫯‍👨🏽' => 'كۇرەسشى ەر: 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👨🏿‍🫯‍👨🏾' => 'كۇرەسشى ەر: 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
     '👨🏻‍❤‍👨🏻' => 'ماحاببات: ەر ادام، ەر ادام، 1–2 تەرى ءتۇسى',
     '👨🏻‍❤‍👨🏼' => 'ماحاببات: ەر ادام، ەر ادام، 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
     '👨🏻‍❤‍👨🏽' => 'ماحاببات: ەر ادام، ەر ادام، 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ماحاببات: ەر ادام، ەر ادام، 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
     '👨🏿‍❤‍👨🏾' => 'ماحاببات: ەر ادام، ەر ادام، 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
     '👨🏿‍❤‍👨🏿' => 'ماحاببات: ەر ادام، ەر ادام، 6-تەرى ءتۇسى',
+    '👨🏻‍🐰‍👨🏼' => 'تويلاتىپ جۇرگەن ەرلەر: 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👨🏻‍🐰‍👨🏽' => 'تويلاتىپ جۇرگەن ەرلەر: 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👨🏻‍🐰‍👨🏾' => 'تويلاتىپ جۇرگەن ەرلەر: 1–2 تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '👨🏻‍🐰‍👨🏿' => 'تويلاتىپ جۇرگەن ەرلەر: 1–2 تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👨🏼‍🐰‍👨🏻' => 'تويلاتىپ جۇرگەن ەرلەر: 3-تەرى ءتۇرى، 1–2 تەرى ءتۇسى',
+    '👨🏼‍🐰‍👨🏽' => 'تويلاتىپ جۇرگەن ەرلەر: 3-تەرى ءتۇرى، 4-تەرى ءتۇسى',
+    '👨🏼‍🐰‍👨🏾' => 'تويلاتىپ جۇرگەن ەرلەر: 3-تەرى ءتۇرى، 5-تەرى ءتۇسى',
+    '👨🏼‍🐰‍👨🏿' => 'تويلاتىپ جۇرگەن ەرلەر: 3-تەرى ءتۇرى، 6-تەرى ءتۇسى',
+    '👨🏽‍🐰‍👨🏻' => 'تويلاتىپ جۇرگەن ەرلەر: 4-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👨🏽‍🐰‍👨🏼' => 'تويلاتىپ جۇرگەن ەرلەر: 4-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👨🏽‍🐰‍👨🏾' => 'تويلاتىپ جۇرگەن ەرلەر: 4-تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '👨🏽‍🐰‍👨🏿' => 'تويلاتىپ جۇرگەن ەرلەر: 4-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👨🏾‍🐰‍👨🏻' => 'تويلاتىپ جۇرگەن ەرلەر: 5-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👨🏾‍🐰‍👨🏼' => 'تويلاتىپ جۇرگەن ەرلەر: 5-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👨🏾‍🐰‍👨🏽' => 'تويلاتىپ جۇرگەن ەرلەر: 5-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👨🏾‍🐰‍👨🏿' => 'تويلاتىپ جۇرگەن ەرلەر: 5-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👨🏿‍🐰‍👨🏻' => 'تويلاتىپ جۇرگەن ەرلەر: 6-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👨🏿‍🐰‍👨🏼' => 'تويلاتىپ جۇرگەن ەرلەر: 6-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👨🏿‍🐰‍👨🏽' => 'تويلاتىپ جۇرگەن ەرلەر: 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👨🏿‍🐰‍👨🏾' => 'تويلاتىپ جۇرگەن ەرلەر: 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '👩🏻‍🫯‍👩🏼' => 'كۇرەسشى ايەل: 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👩🏻‍🫯‍👩🏽' => 'كۇرەسشى ايەل: 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👩🏻‍🫯‍👩🏾' => 'كۇرەسشى ايەل: 1–2 تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '👩🏻‍🫯‍👩🏿' => 'كۇرەسشى ايەل: 1–2 تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👩🏼‍🫯‍👩🏻' => 'كۇرەسشى ايەل: 3-تەرى ءتۇرى، 1–2 تەرى ءتۇسى',
+    '👩🏼‍🫯‍👩🏽' => 'كۇرەسشى ايەل: 3-تەرى ءتۇرى، 4-تەرى ءتۇسى',
+    '👩🏼‍🫯‍👩🏾' => 'كۇرەسشى ايەل: 3-تەرى ءتۇرى، 5-تەرى ءتۇسى',
+    '👩🏼‍🫯‍👩🏿' => 'كۇرەسشى ايەل: 3-تەرى ءتۇرى، 6-تەرى ءتۇسى',
+    '👩🏽‍🫯‍👩🏻' => 'كۇرەسشى ايەل: 4-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👩🏽‍🫯‍👩🏼' => 'كۇرەسشى ايەل: 4-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👩🏽‍🫯‍👩🏾' => 'كۇرەسشى ايەل: 4-تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '👩🏽‍🫯‍👩🏿' => 'كۇرەسشى ايەل: 4-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👩🏾‍🫯‍👩🏻' => 'كۇرەسشى ايەل: 5-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👩🏾‍🫯‍👩🏼' => 'كۇرەسشى ايەل: 5-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👩🏾‍🫯‍👩🏽' => 'كۇرەسشى ايەل: 5-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👩🏾‍🫯‍👩🏿' => 'كۇرەسشى ايەل: 5-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👩🏿‍🫯‍👩🏻' => 'كۇرەسشى ايەل: 6-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👩🏿‍🫯‍👩🏼' => 'كۇرەسشى ايەل: 6-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👩🏿‍🫯‍👩🏽' => 'كۇرەسشى ايەل: 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👩🏿‍🫯‍👩🏾' => 'كۇرەسشى ايەل: 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
     '👩🏻‍❤‍👨🏻' => 'ماحاببات: ايەل، ەر ادام، 1–2 تەرى ءتۇسى',
     '👩🏻‍❤‍👨🏼' => 'ماحاببات: ايەل، ەر ادام، 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
     '👩🏻‍❤‍👨🏽' => 'ماحاببات: ايەل، ەر ادام، 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ماحاببات: ايەل، ايەل، 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
     '👩🏿‍❤‍👩🏾' => 'ماحاببات: ايەل، ايەل، 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
     '👩🏿‍❤‍👩🏿' => 'ماحاببات: ايەل، ايەل، 6-تەرى ءتۇسى',
+    '👩🏻‍🐰‍👩🏼' => 'تويلاتىپ جۇرگەن ايەلدەر: 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👩🏻‍🐰‍👩🏽' => 'تويلاتىپ جۇرگەن ايەلدەر: 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👩🏻‍🐰‍👩🏾' => 'تويلاتىپ جۇرگەن ايەلدەر: 1–2 تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '👩🏻‍🐰‍👩🏿' => 'تويلاتىپ جۇرگەن ايەلدەر: 1–2 تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👩🏼‍🐰‍👩🏻' => 'تويلاتىپ جۇرگەن ايەلدەر: 3-تەرى ءتۇرى، 1–2 تەرى ءتۇسى',
+    '👩🏼‍🐰‍👩🏽' => 'تويلاتىپ جۇرگەن ايەلدەر: 3-تەرى ءتۇرى، 4-تەرى ءتۇسى',
+    '👩🏼‍🐰‍👩🏾' => 'تويلاتىپ جۇرگەن ايەلدەر: 3-تەرى ءتۇرى، 5-تەرى ءتۇسى',
+    '👩🏼‍🐰‍👩🏿' => 'تويلاتىپ جۇرگەن ايەلدەر: 3-تەرى ءتۇرى، 6-تەرى ءتۇسى',
+    '👩🏽‍🐰‍👩🏻' => 'تويلاتىپ جۇرگەن ايەلدەر: 4-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👩🏽‍🐰‍👩🏼' => 'تويلاتىپ جۇرگەن ايەلدەر: 4-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👩🏽‍🐰‍👩🏾' => 'تويلاتىپ جۇرگەن ايەلدەر: 4-تەرى ءتۇسى، 5-تەرى ءتۇسى',
+    '👩🏽‍🐰‍👩🏿' => 'تويلاتىپ جۇرگەن ايەلدەر: 4-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👩🏾‍🐰‍👩🏻' => 'تويلاتىپ جۇرگەن ايەلدەر: 5-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👩🏾‍🐰‍👩🏼' => 'تويلاتىپ جۇرگەن ايەلدەر: 5-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👩🏾‍🐰‍👩🏽' => 'تويلاتىپ جۇرگەن ايەلدەر: 5-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👩🏾‍🐰‍👩🏿' => 'تويلاتىپ جۇرگەن ايەلدەر: 5-تەرى ءتۇسى، 6-تەرى ءتۇسى',
+    '👩🏿‍🐰‍👩🏻' => 'تويلاتىپ جۇرگەن ايەلدەر: 6-تەرى ءتۇسى، 1–2 تەرى ءتۇسى',
+    '👩🏿‍🐰‍👩🏼' => 'تويلاتىپ جۇرگەن ايەلدەر: 6-تەرى ءتۇسى، 3-تەرى ءتۇرى',
+    '👩🏿‍🐰‍👩🏽' => 'تويلاتىپ جۇرگەن ايەلدەر: 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
+    '👩🏿‍🐰‍👩🏾' => 'تويلاتىپ جۇرگەن ايەلدەر: 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
     '🧑🏻‍🤝‍🧑🏻' => 'قولدارىن كوتەرىپ تۇرعان ادامدار: 1–2 تەرى ءتۇسى',
     '🧑🏻‍🤝‍🧑🏼' => 'قولدارىن كوتەرىپ تۇرعان ادامدار: 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
     '🧑🏻‍🤝‍🧑🏽' => 'قولدارىن كوتەرىپ تۇرعان ادامدار: 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ту: Шотландия',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'ту: Уэльс',
     '🧑‍🧑‍🧒‍🧒' => 'وتباسى: ەرەسەك، ەرەسەك، بالا، بالا',
-    '🚶🏻‍♀‍➡' => 'جاياۋ ايەل وڭعا قاراتىلعان',
-    '🚶🏼‍♀‍➡' => 'جاياۋ ايەل وڭعا قاراتىلعان',
-    '🚶🏽‍♀‍➡' => 'جاياۋ ايەل وڭعا قاراتىلعان',
-    '🚶🏾‍♀‍➡' => 'جاياۋ ايەل وڭعا قاراتىلعان',
-    '🚶🏿‍♀‍➡' => 'جاياۋ ايەل وڭعا قاراتىلعان',
-    '🚶🏻‍♂‍➡' => 'جاياۋ ەر وڭعا قاراتىلعان',
-    '🚶🏼‍♂‍➡' => 'جاياۋ ەر وڭعا قاراتىلعان',
-    '🚶🏽‍♂‍➡' => 'جاياۋ ەر وڭعا قاراتىلعان',
-    '🚶🏾‍♂‍➡' => 'جاياۋ ەر وڭعا قاراتىلعان',
-    '🚶🏿‍♂‍➡' => 'جاياۋ ەر وڭعا قاراتىلعان',
-    '🧎🏻‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل وڭعا قاراتىلعان',
-    '🧎🏼‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل وڭعا قاراتىلعان',
-    '🧎🏽‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل وڭعا قاراتىلعان',
-    '🧎🏾‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل وڭعا قاراتىلعان',
-    '🧎🏿‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل وڭعا قاراتىلعان',
-    '🧎🏻‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك وڭعا قاراتىلعان',
-    '🧎🏼‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك وڭعا قاراتىلعان',
-    '🧎🏽‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك وڭعا قاراتىلعان',
-    '🧎🏾‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك وڭعا قاراتىلعان',
-    '🧎🏿‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك وڭعا قاراتىلعان',
-    '🧑🏻‍🦯‍➡' => 'تاياعى بار ادام وڭعا قاراتىلعان',
-    '🧑🏼‍🦯‍➡' => 'تاياعى بار ادام وڭعا قاراتىلعان',
-    '🧑🏽‍🦯‍➡' => 'تاياعى بار ادام وڭعا قاراتىلعان',
-    '🧑🏾‍🦯‍➡' => 'تاياعى بار ادام وڭعا قاراتىلعان',
-    '🧑🏿‍🦯‍➡' => 'تاياعى بار ادام وڭعا قاراتىلعان',
-    '👨🏻‍🦯‍➡' => 'تاياعى بار ەركەك وڭعا قاراتىلعان',
-    '👨🏼‍🦯‍➡' => 'تاياعى بار ەركەك وڭعا قاراتىلعان',
-    '👨🏽‍🦯‍➡' => 'تاياعى بار ەركەك وڭعا قاراتىلعان',
-    '👨🏾‍🦯‍➡' => 'تاياعى بار ەركەك وڭعا قاراتىلعان',
-    '👨🏿‍🦯‍➡' => 'تاياعى بار ەركەك وڭعا قاراتىلعان',
-    '👩🏻‍🦯‍➡' => 'تاياعى بار ايەل وڭعا قاراتىلعان',
-    '👩🏼‍🦯‍➡' => 'تاياعى بار ايەل وڭعا قاراتىلعان',
-    '👩🏽‍🦯‍➡' => 'تاياعى بار ايەل وڭعا قاراتىلعان',
-    '👩🏾‍🦯‍➡' => 'تاياعى بار ايەل وڭعا قاراتىلعان',
-    '👩🏿‍🦯‍➡' => 'تاياعى بار ايەل وڭعا قاراتىلعان',
-    '🧑🏻‍🦼‍➡' => 'موتورلى ارباداعى ادام وڭعا قاراتىلعان',
-    '🧑🏼‍🦼‍➡' => 'موتورلى ارباداعى ادام وڭعا قاراتىلعان',
-    '🧑🏽‍🦼‍➡' => 'موتورلى ارباداعى ادام وڭعا قاراتىلعان',
-    '🧑🏾‍🦼‍➡' => 'موتورلى ارباداعى ادام وڭعا قاراتىلعان',
-    '🧑🏿‍🦼‍➡' => 'موتورلى ارباداعى ادام وڭعا قاراتىلعان',
-    '👨🏻‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👨🏼‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👨🏽‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👨🏾‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👨🏿‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👩🏻‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '👩🏼‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '👩🏽‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '👩🏾‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '👩🏿‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '🧑🏻‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام وڭعا قاراتىلعان',
-    '🧑🏼‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام وڭعا قاراتىلعان',
-    '🧑🏽‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام وڭعا قاراتىلعان',
-    '🧑🏾‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام وڭعا قاراتىلعان',
-    '🧑🏿‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام وڭعا قاراتىلعان',
-    '👨🏻‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👨🏼‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👨🏽‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👨🏾‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👨🏿‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👩🏻‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '👩🏼‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '👩🏽‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '👩🏾‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '👩🏿‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '🏃🏻‍♀‍➡' => 'جۇگىرگەن ايەل وڭعا قاراتىلعان',
-    '🏃🏼‍♀‍➡' => 'جۇگىرگەن ايەل وڭعا قاراتىلعان',
-    '🏃🏽‍♀‍➡' => 'جۇگىرگەن ايەل وڭعا قاراتىلعان',
-    '🏃🏾‍♀‍➡' => 'جۇگىرگەن ايەل وڭعا قاراتىلعان',
-    '🏃🏿‍♀‍➡' => 'جۇگىرگەن ايەل وڭعا قاراتىلعان',
-    '🏃🏻‍♂‍➡' => 'جۇگىرگەن ەر وڭعا قاراتىلعان',
-    '🏃🏼‍♂‍➡' => 'جۇگىرگەن ەر وڭعا قاراتىلعان',
-    '🏃🏽‍♂‍➡' => 'جۇگىرگەن ەر وڭعا قاراتىلعان',
-    '🏃🏾‍♂‍➡' => 'جۇگىرگەن ەر وڭعا قاراتىلعان',
-    '🏃🏿‍♂‍➡' => 'جۇگىرگەن ەر وڭعا قاراتىلعان',
+    '🚶🏻‍♀‍➡' => 'جاياۋ ايەل: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🚶🏼‍♀‍➡' => 'جاياۋ ايەل: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🚶🏽‍♀‍➡' => 'جاياۋ ايەل: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🚶🏾‍♀‍➡' => 'جاياۋ ايەل: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🚶🏿‍♀‍➡' => 'جاياۋ ايەل: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🚶🏻‍♂‍➡' => 'جاياۋ ەر: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🚶🏼‍♂‍➡' => 'جاياۋ ەر: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🚶🏽‍♂‍➡' => 'جاياۋ ەر: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🚶🏾‍♂‍➡' => 'جاياۋ ەر: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🚶🏿‍♂‍➡' => 'جاياۋ ەر: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏻‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏼‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🧎🏽‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏾‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏿‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏻‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏼‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🧎🏽‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏾‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏿‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏻‍🦯‍➡' => 'تاياعى بار ادام: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏼‍🦯‍➡' => 'تاياعى بار ادام: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🧑🏽‍🦯‍➡' => 'تاياعى بار ادام: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏾‍🦯‍➡' => 'تاياعى بار ادام: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏿‍🦯‍➡' => 'تاياعى بار ادام: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏻‍🦯‍➡' => 'تاياعى بار ەركەك: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏼‍🦯‍➡' => 'تاياعى بار ەركەك: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '👨🏽‍🦯‍➡' => 'تاياعى بار ەركەك: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏾‍🦯‍➡' => 'تاياعى بار ەركەك: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏿‍🦯‍➡' => 'تاياعى بار ەركەك: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏻‍🦯‍➡' => 'تاياعى بار ايەل: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏼‍🦯‍➡' => 'تاياعى بار ايەل: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '👩🏽‍🦯‍➡' => 'تاياعى بار ايەل: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏾‍🦯‍➡' => 'تاياعى بار ايەل: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏿‍🦯‍➡' => 'تاياعى بار ايەل: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏻‍🦼‍➡' => 'موتورلى ارباداعى ادام: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏼‍🦼‍➡' => 'موتورلى ارباداعى ادام: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🧑🏽‍🦼‍➡' => 'موتورلى ارباداعى ادام: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏾‍🦼‍➡' => 'موتورلى ارباداعى ادام: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏿‍🦼‍➡' => 'موتورلى ارباداعى ادام: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏻‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏼‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '👨🏽‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏾‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏿‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏻‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏼‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '👩🏽‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏾‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏿‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏻‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏼‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🧑🏽‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏾‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧑🏿‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏻‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏼‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '👨🏽‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏾‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👨🏿‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏻‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏼‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '👩🏽‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏾‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👩🏿‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏻‍♀‍➡' => 'جۇگىرگەن ايەل: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏼‍♀‍➡' => 'جۇگىرگەن ايەل: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🏃🏽‍♀‍➡' => 'جۇگىرگەن ايەل: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏾‍♀‍➡' => 'جۇگىرگەن ايەل: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏿‍♀‍➡' => 'جۇگىرگەن ايەل: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏻‍♂‍➡' => 'جۇگىرگەن ەر: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏼‍♂‍➡' => 'جۇگىرگەن ەر: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🏃🏽‍♂‍➡' => 'جۇگىرگەن ەر: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏾‍♂‍➡' => 'جۇگىرگەن ەر: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏿‍♂‍➡' => 'جۇگىرگەن ەر: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
     '🫱🏻‍🫲🏼' => 'قول الىسۋ: 1–2 تەرى ءتۇسى، 3-تەرى ءتۇرى',
     '🫱🏻‍🫲🏽' => 'قول الىسۋ: 1–2 تەرى ءتۇسى، 4-تەرى ءتۇسى',
     '🫱🏻‍🫲🏾' => 'قول الىسۋ: 1–2 تەرى ءتۇسى، 5-تەرى ءتۇسى',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'قول الىسۋ: 6-تەرى ءتۇسى، 3-تەرى ءتۇرى',
     '🫱🏿‍🫲🏽' => 'قول الىسۋ: 6-تەرى ءتۇسى، 4-تەرى ءتۇسى',
     '🫱🏿‍🫲🏾' => 'قول الىسۋ: 6-تەرى ءتۇسى، 5-تەرى ءتۇسى',
-    '🚶‍♀‍➡' => 'جاياۋ ايەل وڭعا قاراتىلعان',
-    '🚶‍♂‍➡' => 'جاياۋ ەر وڭعا قاراتىلعان',
-    '🧎‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل وڭعا قاراتىلعان',
-    '🧎‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك وڭعا قاراتىلعان',
-    '🧑‍🦯‍➡' => 'تاياعى بار ادام وڭعا قاراتىلعان',
-    '👨‍🦯‍➡' => 'تاياعى بار ەركەك وڭعا قاراتىلعان',
-    '👩‍🦯‍➡' => 'تاياعى بار ايەل وڭعا قاراتىلعان',
-    '🧑‍🦼‍➡' => 'موتورلى ارباداعى ادام وڭعا قاراتىلعان',
-    '👨‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👩‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '🧑‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام وڭعا قاراتىلعان',
-    '👨‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك وڭعا قاراتىلعان',
-    '👩‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل وڭعا قاراتىلعان',
-    '🏃‍♀‍➡' => 'جۇگىرگەن ايەل وڭعا قاراتىلعان',
-    '🏃‍♂‍➡' => 'جۇگىرگەن ەر وڭعا قاراتىلعان',
+    '🚶‍♀‍➡' => 'جاياۋ ايەل: وڭعا قاراتىلعان',
+    '🚶‍♂‍➡' => 'جاياۋ ەر: وڭعا قاراتىلعان',
+    '🧎‍♀‍➡' => 'تىزەرلەپ وتىرعان ايەل: وڭعا قاراتىلعان',
+    '🧎‍♂‍➡' => 'تىزەرلەپ وتىرعان ەركەك: وڭعا قاراتىلعان',
+    '🧑‍🦯‍➡' => 'تاياعى بار ادام: وڭعا قاراتىلعان',
+    '👨‍🦯‍➡' => 'تاياعى بار ەركەك: وڭعا قاراتىلعان',
+    '👩‍🦯‍➡' => 'تاياعى بار ايەل: وڭعا قاراتىلعان',
+    '🧑‍🦼‍➡' => 'موتورلى ارباداعى ادام: وڭعا قاراتىلعان',
+    '👨‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ەركەك: وڭعا قاراتىلعان',
+    '👩‍🦼‍➡' => 'ەلەكتىر جەتەگى بار ارباشاداعى ايەل: وڭعا قاراتىلعان',
+    '🧑‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ادام: وڭعا قاراتىلعان',
+    '👨‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ەركەك: وڭعا قاراتىلعان',
+    '👩‍🦽‍➡' => 'قول جەتەگى بار ارباشاداعى ايەل: وڭعا قاراتىلعان',
+    '🏃‍♀‍➡' => 'جۇگىرگەن ايەل: وڭعا قاراتىلعان',
+    '🏃‍♂‍➡' => 'جۇگىرگەن ەر: وڭعا قاراتىلعان',
     '👩‍❤‍👨' => 'ماحاببات: ايەل، ەر ادام',
     '👨‍❤‍👨' => 'ماحاببات: ەر ادام، ەر ادام',
     '👩‍❤‍👩' => 'ماحاببات: ايەل، ايەل',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'ادام: 4-تەرى ءتۇسى، تاقىرباس',
     '🧑🏾‍🦲' => 'ادام: 5-تەرى ءتۇسى، تاقىرباس',
     '🧑🏿‍🦲' => 'ادام: 6-تەرى ءتۇسى، تاقىرباس',
+    '🧑🏻‍🩰' => 'بالەرينا: 1–2 تەرى ءتۇسى',
+    '🧑🏼‍🩰' => 'بالەرينا: 3-تەرى ءتۇرى',
+    '🧑🏽‍🩰' => 'بالەرينا: 4-تەرى ءتۇسى',
+    '🧑🏾‍🩰' => 'بالەرينا: 5-تەرى ءتۇسى',
+    '🧑🏿‍🩰' => 'بالەرينا: 6-تەرى ءتۇسى',
     '🧔🏻‍♂' => 'ساقالدى ەر ادام: 1–2 تەرى ءتۇسى',
     '🧔🏼‍♂' => 'ساقالدى ەر ادام: 3-تەرى ءتۇرى',
     '🧔🏽‍♂' => 'ساقالدى ەر ادام: 4-تەرى ءتۇسى',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'جاياۋ ايەل: 4-تەرى ءتۇسى',
     '🚶🏾‍♀' => 'جاياۋ ايەل: 5-تەرى ءتۇسى',
     '🚶🏿‍♀' => 'جاياۋ ايەل: 6-تەرى ءتۇسى',
-    '🚶🏻‍➡' => 'جاياۋ وڭعا قاراتىلعان',
-    '🚶🏼‍➡' => 'جاياۋ وڭعا قاراتىلعان',
-    '🚶🏽‍➡' => 'جاياۋ وڭعا قاراتىلعان',
-    '🚶🏾‍➡' => 'جاياۋ وڭعا قاراتىلعان',
-    '🚶🏿‍➡' => 'جاياۋ وڭعا قاراتىلعان',
+    '🚶🏻‍➡' => 'جاياۋ: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🚶🏼‍➡' => 'جاياۋ: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🚶🏽‍➡' => 'جاياۋ: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🚶🏾‍➡' => 'جاياۋ: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🚶🏿‍➡' => 'جاياۋ: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
     '🧍🏻‍♂' => 'تۇرىپ تۇرعان ەركەك: 1–2 تەرى ءتۇسى',
     '🧍🏼‍♂' => 'تۇرىپ تۇرعان ەركەك: 3-تەرى ءتۇرى',
     '🧍🏽‍♂' => 'تۇرىپ تۇرعان ەركەك: 4-تەرى ءتۇسى',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'تىزەرلەپ وتىرعان ايەل: 4-تەرى ءتۇسى',
     '🧎🏾‍♀' => 'تىزەرلەپ وتىرعان ايەل: 5-تەرى ءتۇسى',
     '🧎🏿‍♀' => 'تىزەرلەپ وتىرعان ايەل: 6-تەرى ءتۇسى',
-    '🧎🏻‍➡' => 'تىزەرلەپ وتىرعان ادام وڭعا قاراتىلعان',
-    '🧎🏼‍➡' => 'تىزەرلەپ وتىرعان ادام وڭعا قاراتىلعان',
-    '🧎🏽‍➡' => 'تىزەرلەپ وتىرعان ادام وڭعا قاراتىلعان',
-    '🧎🏾‍➡' => 'تىزەرلەپ وتىرعان ادام وڭعا قاراتىلعان',
-    '🧎🏿‍➡' => 'تىزەرلەپ وتىرعان ادام وڭعا قاراتىلعان',
+    '🧎🏻‍➡' => 'تىزەرلەپ وتىرعان ادام: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏼‍➡' => 'تىزەرلەپ وتىرعان ادام: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🧎🏽‍➡' => 'تىزەرلەپ وتىرعان ادام: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏾‍➡' => 'تىزەرلەپ وتىرعان ادام: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🧎🏿‍➡' => 'تىزەرلەپ وتىرعان ادام: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
     '🧑🏻‍🦯' => 'تاياعى بار ادام: 1–2 تەرى ءتۇسى',
     '🧑🏼‍🦯' => 'تاياعى بار ادام: 3-تەرى ءتۇرى',
     '🧑🏽‍🦯' => 'تاياعى بار ادام: 4-تەرى ءتۇسى',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'جۇگىرگەن ايەل: 4-تەرى ءتۇسى',
     '🏃🏾‍♀' => 'جۇگىرگەن ايەل: 5-تەرى ءتۇسى',
     '🏃🏿‍♀' => 'جۇگىرگەن ايەل: 6-تەرى ءتۇسى',
-    '🏃🏻‍➡' => 'جۇگىرۋ وڭعا قاراتىلعان',
-    '🏃🏼‍➡' => 'جۇگىرۋ وڭعا قاراتىلعان',
-    '🏃🏽‍➡' => 'جۇگىرۋ وڭعا قاراتىلعان',
-    '🏃🏾‍➡' => 'جۇگىرۋ وڭعا قاراتىلعان',
-    '🏃🏿‍➡' => 'جۇگىرۋ وڭعا قاراتىلعان',
+    '🏃🏻‍➡' => 'جۇگىرۋ: 1–2 تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏼‍➡' => 'جۇگىرۋ: 3-تەرى ءتۇرى، وڭعا قاراتىلعان',
+    '🏃🏽‍➡' => 'جۇگىرۋ: 4-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏾‍➡' => 'جۇگىرۋ: 5-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '🏃🏿‍➡' => 'جۇگىرۋ: 6-تەرى ءتۇسى، وڭعا قاراتىلعان',
+    '👯🏻‍♀' => 'تويلاتىپ جۇرگەن ايەلدەر: 1–2 تەرى ءتۇسى',
+    '👯🏼‍♀' => 'تويلاتىپ جۇرگەن ايەلدەر: 3-تەرى ءتۇرى',
+    '👯🏽‍♀' => 'تويلاتىپ جۇرگەن ايەلدەر: 4-تەرى ءتۇسى',
+    '👯🏾‍♀' => 'تويلاتىپ جۇرگەن ايەلدەر: 5-تەرى ءتۇسى',
+    '👯🏿‍♀' => 'تويلاتىپ جۇرگەن ايەلدەر: 6-تەرى ءتۇسى',
+    '👯🏻‍♂' => 'تويلاتىپ جۇرگەن ەرلەر: 1–2 تەرى ءتۇسى',
+    '👯🏼‍♂' => 'تويلاتىپ جۇرگەن ەرلەر: 3-تەرى ءتۇرى',
+    '👯🏽‍♂' => 'تويلاتىپ جۇرگەن ەرلەر: 4-تەرى ءتۇسى',
+    '👯🏾‍♂' => 'تويلاتىپ جۇرگەن ەرلەر: 5-تەرى ءتۇسى',
+    '👯🏿‍♂' => 'تويلاتىپ جۇرگەن ەرلەر: 6-تەرى ءتۇسى',
     '🧖🏻‍♂' => 'بۋ بولمەدەگى ەر: 1–2 تەرى ءتۇسى',
     '🧖🏼‍♂' => 'بۋ بولمەدەگى ەر: 3-تەرى ءتۇرى',
     '🧖🏽‍♂' => 'بۋ بولمەدەگى ەر: 4-تەرى ءتۇسى',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'اكروبات ايەل: 4-تەرى ءتۇسى',
     '🤸🏾‍♀' => 'اكروبات ايەل: 5-تەرى ءتۇسى',
     '🤸🏿‍♀' => 'اكروبات ايەل: 6-تەرى ءتۇسى',
+    '🤼🏻‍♀' => 'كۇرەسشى ايەل: 1–2 تەرى ءتۇسى',
+    '🤼🏼‍♀' => 'كۇرەسشى ايەل: 3-تەرى ءتۇرى',
+    '🤼🏽‍♀' => 'كۇرەسشى ايەل: 4-تەرى ءتۇسى',
+    '🤼🏾‍♀' => 'كۇرەسشى ايەل: 5-تەرى ءتۇسى',
+    '🤼🏿‍♀' => 'كۇرەسشى ايەل: 6-تەرى ءتۇسى',
+    '🤼🏻‍♂' => 'كۇرەسشى ەر: 1–2 تەرى ءتۇسى',
+    '🤼🏼‍♂' => 'كۇرەسشى ەر: 3-تەرى ءتۇرى',
+    '🤼🏽‍♂' => 'كۇرەسشى ەر: 4-تەرى ءتۇسى',
+    '🤼🏾‍♂' => 'كۇرەسشى ەر: 5-تەرى ءتۇسى',
+    '🤼🏿‍♂' => 'كۇرەسشى ەر: 6-تەرى ءتۇسى',
     '🤽🏻‍♂' => 'سۋ پولوسىن ويناعان ەر: 1–2 تەرى ءتۇسى',
     '🤽🏼‍♂' => 'سۋ پولوسىن ويناعان ەر: 3-تەرى ءتۇرى',
     '🤽🏽‍♂' => 'سۋ پولوسىن ويناعان ەر: 4-تەرى ءتۇسى',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ايەل: بۇيرا شاش',
     '👩‍🦳' => 'ايەل: اق شاش',
     '👩‍🦲' => 'ايەل: تاقىرباس',
-    '🚶‍➡' => 'جاياۋ وڭعا قاراتىلعان',
-    '🧎‍➡' => 'تىزەرلەپ وتىرعان ادام وڭعا قاراتىلعان',
-    '🏃‍➡' => 'جۇگىرۋ وڭعا قاراتىلعان',
+    '🚶‍➡' => 'جاياۋ: وڭعا قاراتىلعان',
+    '🧎‍➡' => 'تىزەرلەپ وتىرعان ادام: وڭعا قاراتىلعان',
+    '🏃‍➡' => 'جۇگىرۋ: وڭعا قاراتىلعان',
     '👨‍👦' => 'وتباسى: ەر ادام، ۇل',
     '👨‍👧' => 'وتباسى: ەر ادام، قىز',
     '👩‍👦' => 'وتباسى: ايەل، ۇل',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'قول جەتەگى بار ارباشاداعى ايەل',
     '🏃‍♂' => 'جۇگىرگەن ەر',
     '🏃‍♀' => 'جۇگىرگەن ايەل',
+    '🧑‍🩰' => 'بالەرينا',
     '👯‍♂' => 'تويلاتىپ جۇرگەن ەرلەر',
     '👯‍♀' => 'تويلاتىپ جۇرگەن ايەلدەر',
     '🧖‍♂' => 'بۋ بولمەدەگى ەر',
@@ -1526,11 +1672,11 @@
     '🫸🏽' => 'وڭعا يتەرگەن قول: 4-تەرى ءتۇسى',
     '🫸🏾' => 'وڭعا يتەرگەن قول: 5-تەرى ءتۇسى',
     '🫸🏿' => 'وڭعا يتەرگەن قول: 6-تەرى ءتۇسى',
-    '👌🏻' => 'OK: 1–2 تەرى ءتۇسى',
-    '👌🏼' => 'OK: 3-تەرى ءتۇرى',
-    '👌🏽' => 'OK: 4-تەرى ءتۇسى',
-    '👌🏾' => 'OK: 5-تەرى ءتۇسى',
-    '👌🏿' => 'OK: 6-تەرى ءتۇسى',
+    '👌🏻' => 'جاقسى: 1–2 تەرى ءتۇسى',
+    '👌🏼' => 'جاقسى: 3-تەرى ءتۇرى',
+    '👌🏽' => 'جاقسى: 4-تەرى ءتۇسى',
+    '👌🏾' => 'جاقسى: 5-تەرى ءتۇسى',
+    '👌🏿' => 'جاقسى: 6-تەرى ءتۇسى',
     '🤌🏻' => 'تۇيىستىرىلگەن بەس ساۋساق: 1–2 تەرى ءتۇسى',
     '🤌🏼' => 'تۇيىستىرىلگەن بەس ساۋساق: 3-تەرى ءتۇرى',
     '🤌🏽' => 'تۇيىستىرىلگەن بەس ساۋساق: 4-تەرى ءتۇسى',
@@ -1541,11 +1687,11 @@
     '🤏🏽' => 'ساۋساقپەن قىسىپ الۋ: 4-تەرى ءتۇسى',
     '🤏🏾' => 'ساۋساقپەن قىسىپ الۋ: 5-تەرى ءتۇسى',
     '🤏🏿' => 'ساۋساقپەن قىسىپ الۋ: 6-تەرى ءتۇسى',
-    '✌🏻' => 'ساۋساقتارمەن «V» ءارپىن كورسەتۋ: 1–2 تەرى ءتۇسى',
-    '✌🏼' => 'ساۋساقتارمەن «V» ءارپىن كورسەتۋ: 3-تەرى ءتۇرى',
-    '✌🏽' => 'ساۋساقتارمەن «V» ءارپىن كورسەتۋ: 4-تەرى ءتۇسى',
-    '✌🏾' => 'ساۋساقتارمەن «V» ءارپىن كورسەتۋ: 5-تەرى ءتۇسى',
-    '✌🏿' => 'ساۋساقتارمەن «V» ءارپىن كورسەتۋ: 6-تەرى ءتۇسى',
+    '✌🏻' => 'ساۋساقتارمەن «جەڭىس» كورسەتۋ: 1–2 تەرى ءتۇسى',
+    '✌🏼' => 'ساۋساقتارمەن «جەڭىس» كورسەتۋ: 3-تەرى ءتۇرى',
+    '✌🏽' => 'ساۋساقتارمەن «جەڭىس» كورسەتۋ: 4-تەرى ءتۇسى',
+    '✌🏾' => 'ساۋساقتارمەن «جەڭىس» كورسەتۋ: 5-تەرى ءتۇسى',
+    '✌🏿' => 'ساۋساقتارمەن «جەڭىس» كورسەتۋ: 6-تەرى ءتۇسى',
     '🤞🏻' => 'ساۋساقتارىن ايقاستىرعان: 1–2 تەرى ءتۇسى',
     '🤞🏼' => 'ساۋساقتارىن ايقاستىرعان: 3-تەرى ءتۇرى',
     '🤞🏽' => 'ساۋساقتارىن ايقاستىرعان: 4-تەرى ءتۇسى',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'اۋادا قالقىپ تۇرعان ىسكەر: 4-تەرى ءتۇسى',
     '🕴🏾' => 'اۋادا قالقىپ تۇرعان ىسكەر: 5-تەرى ءتۇسى',
     '🕴🏿' => 'اۋادا قالقىپ تۇرعان ىسكەر: 6-تەرى ءتۇسى',
+    '👯🏻' => 'بيلەپ جاتقان ايەلدەر: 1–2 تەرى ءتۇسى',
+    '👯🏼' => 'بيلەپ جاتقان ايەلدەر: 3-تەرى ءتۇرى',
+    '👯🏽' => 'بيلەپ جاتقان ايەلدەر: 4-تەرى ءتۇسى',
+    '👯🏾' => 'بيلەپ جاتقان ايەلدەر: 5-تەرى ءتۇسى',
+    '👯🏿' => 'بيلەپ جاتقان ايەلدەر: 6-تەرى ءتۇسى',
     '🧖🏻' => 'بۋ بولمەدەگى ادام: 1–2 تەرى ءتۇسى',
     '🧖🏼' => 'بۋ بولمەدەگى ادام: 3-تەرى ءتۇرى',
     '🧖🏽' => 'بۋ بولمەدەگى ادام: 4-تەرى ءتۇسى',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'اكروبات تريۋگى: 4-تەرى ءتۇسى',
     '🤸🏾' => 'اكروبات تريۋگى: 5-تەرى ءتۇسى',
     '🤸🏿' => 'اكروبات تريۋگى: 6-تەرى ءتۇسى',
+    '🤼🏻' => 'كۇرەسشىلەر: 1–2 تەرى ءتۇسى',
+    '🤼🏼' => 'كۇرەسشىلەر: 3-تەرى ءتۇرى',
+    '🤼🏽' => 'كۇرەسشىلەر: 4-تەرى ءتۇسى',
+    '🤼🏾' => 'كۇرەسشىلەر: 5-تەرى ءتۇسى',
+    '🤼🏿' => 'كۇرەسشىلەر: 6-تەرى ءتۇسى',
     '🤽🏻' => 'سۋ پولوسى: 1–2 تەرى ءتۇسى',
     '🤽🏼' => 'سۋ پولوسى: 3-تەرى ءتۇرى',
     '🤽🏽' => 'سۋ پولوسى: 4-تەرى ءتۇسى',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'تۋ: قىتاي',
     '🇨🇴' => 'تۋ: كولۋمبيا',
     '🇨🇵' => 'تۋ: كليپپەرتون ارالى',
+    '🇨🇶' => 'تۋ: سارك',
     '🇨🇷' => 'تۋ: كوستا-ريكا',
     '🇨🇺' => 'تۋ: كۋبا',
     '🇨🇻' => 'تۋ: كابو-ۆەردە',
@@ -2384,20 +2541,12 @@
     '🇿🇦' => 'تۋ: وڭتۇستىك افريكا',
     '🇿🇲' => 'تۋ: زامبيا',
     '🇿🇼' => 'تۋ: زيمبابۆە',
-    '🇨🇶' => 'تۋ: سارك',
     '🔟' => 'پەرنە: 10',
     '🏻' => '1–2 تەرى ءتۇسى',
     '🏼' => '3-تەرى ءتۇرى',
     '🏽' => '4-تەرى ءتۇسى',
     '🏾' => '5-تەرى ءتۇسى',
     '🏿' => '6-تەرى ءتۇسى',
-    '🪉' => 'ارفا',
-    '🪏' => 'كۇرەك',
-    '🪾' => 'جاپىراقسىز اعاش',
-    '🫆' => 'ساۋساق ءىزى',
-    '🫜' => 'تامىر جەمىس',
-    '🫟' => 'شاشىراۋ',
-    '🫩' => 'كوز ىسىگى',
     '😀' => 'ەزۋ تارتىپ كۇلۋ',
     '😃' => 'اۋزىن اشىپ كۇلۋ',
     '😄' => 'اۋزىن اشىپ، ىرجيىپ تۇرىپ كۇلۋ',
@@ -2451,6 +2600,7 @@
     '😪' => 'ۇيقى باسۋ',
     '🤤' => 'سىلەكەيى اعىپ تۇر',
     '😴' => 'ۇيىقتاۋ',
+    '🫩' => 'كوز ىسىگى',
     '😷' => 'بەتپەردە تاققان بەت',
     '🤒' => 'تەرمومەترى بار بەت',
     '🤕' => 'باسى بينتتەلگەن',
@@ -2477,6 +2627,7 @@
     '😯' => 'تاڭعالۋ',
     '😲' => 'اڭ-تاڭ بولۋ',
     '😳' => 'بەتى قىزارۋ',
+    '🫪' => 'بۇرمالانعان بەت',
     '🥺' => 'جالىنۋ',
     '🥹' => 'كوز جاسىن ارەڭ ۇستاۋ',
     '😦' => 'اۋزىن اشىپ، بۇرتيۋ',
@@ -2548,6 +2699,7 @@
     '💋' => 'ەرىن',
     '💯' => 'ءجۇز ۇپاي',
     '💢' => 'اشۋ',
+    '🫯' => 'بۇلتپەن كۇرەسۋ',
     '💥' => 'قاقتىعىس',
     '💫' => 'باسى اينالعان',
     '💦' => 'تەر تامشىلارى',
@@ -2569,10 +2721,10 @@
     '🫴' => 'الاقانىمەن جوعارى قاراتىلعان قول',
     '🫷' => 'سولعا يتەرگەن قول',
     '🫸' => 'وڭعا يتەرگەن قول',
-    '👌' => 'OK',
+    '👌' => 'جاقسى',
     '🤌' => 'تۇيىستىرىلگەن بەس ساۋساق',
     '🤏' => 'ساۋساقپەن قىسىپ الۋ',
-    '✌' => 'ساۋساقتارمەن «V» ءارپىن كورسەتۋ',
+    '✌' => 'ساۋساقتارمەن «جەڭىس» كورسەتۋ',
     '🤞' => 'ساۋساقتارىن ايقاستىرعان',
     '🫰' => 'باس بارماق پەن سۇق ساۋساق ايقاستىرىلعان قول',
     '🤟' => 'سەنى سۇيەمىن بەلگىسى',
@@ -2671,6 +2823,7 @@
     '🧞' => 'جىن',
     '🧟' => 'زومبي',
     '🧌' => 'تىرول',
+    '🫈' => 'كىسىكيىك',
     '💆' => 'بەتكە ماسساج جاساۋ',
     '💇' => 'شاش قيدىرۋ',
     '🚶' => 'جاياۋ',
@@ -2714,6 +2867,7 @@
     '🫂' => 'قۇشاقتاسقان ادامدار',
     '👪' => 'وتباسى',
     '👣' => 'اياق ىزدەرى',
+    '🫆' => 'ساۋساق ءىزى',
     '🦰' => 'جيرەن شاش',
     '🦱' => 'بۇيرا شاش',
     '🦳' => 'اق شاش',
@@ -2813,6 +2967,7 @@
     '🐳' => 'سۋ بۇركىپ تۇرعان كيت',
     '🐋' => 'كيت',
     '🐬' => 'دەلفين',
+    '🫍' => 'كوساتكا',
     '🦭' => 'يتبالىق',
     '🐟' => 'بالىق',
     '🐠' => 'تروپيكالىق بالىق',
@@ -2822,6 +2977,11 @@
     '🐚' => 'شيىرشىقتى باقالشىق',
     '🪸' => 'مارجان',
     '🪼' => 'مەدۋزا',
+    '🦀' => 'تەڭىز شايانى',
+    '🦞' => 'لوبستەر',
+    '🦐' => 'اسشايان',
+    '🦑' => 'كالمار',
+    '🦪' => 'ۋستريسا',
     '🐌' => 'ۇلۋ',
     '🦋' => 'كوبەلەك',
     '🐛' => 'جاندىك',
@@ -2866,6 +3026,7 @@
     '🪹' => 'بوس ۇيا',
     '🪺' => 'ىشىندە جۇمىرتقالارى بار ۇيا',
     '🍄' => 'ساڭىراۋقۇلاق',
+    '🪾' => 'جاپىراقسىز اعاش',
     '🍇' => 'ءجۇزىم',
     '🍈' => 'قاۋىن',
     '🍉' => 'قاربىز',
@@ -2902,6 +3063,7 @@
     '🌰' => 'كاشتان',
     '🫚' => 'ءزىمبىر تامىرى',
     '🫛' => 'بۇرشاققىندى اسبۇرشاق',
+    '🫜' => 'تامىر جەمىس',
     '🍞' => 'نان',
     '🥐' => 'كرۋاسسان',
     '🥖' => 'باگەت',
@@ -2953,11 +3115,6 @@
     '🥟' => 'ۇزبە كەسپە',
     '🥠' => 'بولجاۋ پىسپەنانى',
     '🥡' => 'جول تاعامى',
-    '🦀' => 'تەڭىز شايانى',
-    '🦞' => 'لوبستەر',
-    '🦐' => 'اسشايان',
-    '🦑' => 'كالمار',
-    '🦪' => 'ۋستريسا',
     '🍦' => 'جۇمساق بالمۇزداق',
     '🍧' => 'مۇزدى بالمۇزداق',
     '🍨' => 'بالمۇزداق',
@@ -3008,6 +3165,7 @@
     '🧭' => 'تۇسباعدار',
     '🏔' => 'توبەسىن قار باسقان تاۋ',
     '⛰' => 'تاۋ',
+    '🛘' => 'كوشكىن',
     '🌋' => 'جانارتاۋ',
     '🗻' => 'فۋجياما',
     '🏕' => 'كەمپيڭ',
@@ -3368,16 +3526,18 @@
     '🎧' => 'قۇلاققاپ',
     '📻' => 'راديو',
     '🎷' => 'ساكسوفون',
+    '🎺' => 'ترۋبا',
+    '🪊' => 'ترومبون',
     '🪗' => 'اككوردەون',
     '🎸' => 'گيتارا',
     '🎹' => 'مۋزىكالىق پەرنەتاقتا',
-    '🎺' => 'ترۋبا',
     '🎻' => 'سكريپكا',
     '🪕' => 'بانجو',
     '🥁' => 'بارابان',
     '🪘' => 'بارابان اسپابى',
     '🪇' => 'ماراكاس',
     '🪈' => 'سىبىزعى',
+    '🪉' => 'ارفا',
     '📱' => 'ۇيالى تەلەفون',
     '📲' => 'ۇيالى تەلەفونعا قابىلداۋ',
     '☎' => 'تەلەفون',
@@ -3396,7 +3556,7 @@
     '💽' => 'شاعىن ديسك',
     '💾' => 'المالى ديسك',
     '💿' => 'وپتيكالىق ديسك',
-    '📀' => 'dvd',
+    '📀' => 'ديسك',
     '🧮' => 'اباكۋس',
     '🎥' => 'بەينەفيلم تۇسىرەتىن كامەرا',
     '🎞' => 'فيلم كادرلارى',
@@ -3431,8 +3591,9 @@
     '📑' => 'بەتبەلگىلەر قويىندىسى',
     '🔖' => 'بەتبەلگى',
     '🏷' => 'زاتبەلگى',
-    '💰' => 'اقشا سالىنعان قالتا',
     '🪙' => 'تيىن',
+    '💰' => 'اقشا سالىنعان قالتا',
+    '🪎' => 'قازىنا ساندىعى',
     '💴' => 'يەنا بانكنوتاسى',
     '💵' => 'دوللار بانكنوتاسى',
     '💶' => 'ەۋرو بانكنوتاسى',
@@ -3515,6 +3676,7 @@
     '🧰' => 'قۇرالدار جاشىگى',
     '🧲' => 'ماگنيت',
     '🪜' => 'ساتى',
+    '🪏' => 'كۇرەك',
     '⚗' => 'ديستيللياتور',
     '🧪' => 'شىنى تۇتىك',
     '🧫' => 'پەتري ىدىسى',
@@ -3698,6 +3860,7 @@
     '✴' => 'سەگىز قىرلى جۇلدىز',
     '❇' => 'ۇشقىن',
     '™' => 'ساۋدا بەلگىسى',
+    '🫟' => 'شاشىراۋ',
     '🔠' => 'ۇلكەن لاتىن ارىپتەرىن ەنگىزۋ',
     '🔡' => 'كىشى لاتىن ارىپتەرىن ەنگىزۋ',
     '🔢' => 'سانداردى ەنگىزۋ',
@@ -3715,11 +3878,11 @@
     '🆕' => 'new تۇيمەسى',
     '🆖' => 'ng تۇيمەسى',
     '🅾' => 'o تۇيمەسى (قىزىل ءتۇستى)',
-    '🆗' => 'ok تۇيمەسى',
+    '🆗' => 'جاقسى تۇيمەسى',
     '🅿' => 'p تۇيمەسى',
-    '🆘' => 'sos تۇيمەسى',
-    '🆙' => '!up تۇيمەسى',
-    '🆚' => 'vs تۇيمەسى',
+    '🆘' => 'كومەك تۇيمەسى',
+    '🆙' => 'UP! түймесі',
+    '🆚' => 'قارسى تۇيمەسى',
     '🈁' => 'شارشىداعى «كاتاكانا كوكو»',
     '🈂' => 'شارشىداعى «كاتاكانا سا»',
     '🈷' => 'شارشىداعى «اي» تاڭباسى',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kk.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'өбіс: әйел әйел 6-тері түсі 4-тері түсі',
     '👩🏿‍❤‍💋‍👩🏾' => 'өбіс: әйел әйел 6-тері түсі 5-тері түсі',
     '👩🏿‍❤‍💋‍👩🏿' => 'өбіс: әйел әйел 6-тері түсі',
+    '🧑🏻‍🫯‍🧑🏼' => 'күресшілер: 1–2 тері түсі 3-тері түрі',
+    '🧑🏻‍🫯‍🧑🏽' => 'күресшілер: 1–2 тері түсі 4-тері түсі',
+    '🧑🏻‍🫯‍🧑🏾' => 'күресшілер: 1–2 тері түсі 5-тері түсі',
+    '🧑🏻‍🫯‍🧑🏿' => 'күресшілер: 1–2 тері түсі 6-тері түсі',
+    '🧑🏼‍🫯‍🧑🏻' => 'күресшілер: 3-тері түрі 1–2 тері түсі',
+    '🧑🏼‍🫯‍🧑🏽' => 'күресшілер: 3-тері түрі 4-тері түсі',
+    '🧑🏼‍🫯‍🧑🏾' => 'күресшілер: 3-тері түрі 5-тері түсі',
+    '🧑🏼‍🫯‍🧑🏿' => 'күресшілер: 3-тері түрі 6-тері түсі',
+    '🧑🏽‍🫯‍🧑🏻' => 'күресшілер: 4-тері түсі 1–2 тері түсі',
+    '🧑🏽‍🫯‍🧑🏼' => 'күресшілер: 4-тері түсі 3-тері түрі',
+    '🧑🏽‍🫯‍🧑🏾' => 'күресшілер: 4-тері түсі 5-тері түсі',
+    '🧑🏽‍🫯‍🧑🏿' => 'күресшілер: 4-тері түсі 6-тері түсі',
+    '🧑🏾‍🫯‍🧑🏻' => 'күресшілер: 5-тері түсі 1–2 тері түсі',
+    '🧑🏾‍🫯‍🧑🏼' => 'күресшілер: 5-тері түсі 3-тері түрі',
+    '🧑🏾‍🫯‍🧑🏽' => 'күресшілер: 5-тері түсі 4-тері түсі',
+    '🧑🏾‍🫯‍🧑🏿' => 'күресшілер: 5-тері түсі 6-тері түсі',
+    '🧑🏿‍🫯‍🧑🏻' => 'күресшілер: 6-тері түсі 1–2 тері түсі',
+    '🧑🏿‍🫯‍🧑🏼' => 'күресшілер: 6-тері түсі 3-тері түрі',
+    '🧑🏿‍🫯‍🧑🏽' => 'күресшілер: 6-тері түсі 4-тері түсі',
+    '🧑🏿‍🫯‍🧑🏾' => 'күресшілер: 6-тері түсі 5-тері түсі',
     '🧑🏻‍❤‍🧑🏼' => 'махаббат: адам адам 1–2 тері түсі 3-тері түрі',
     '🧑🏻‍❤‍🧑🏽' => 'махаббат: адам адам 1–2 тері түсі 4-тері түсі',
     '🧑🏻‍❤‍🧑🏾' => 'махаббат: адам адам 1–2 тері түсі 5-тері түсі',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'махаббат: адам адам 6-тері түсі 3-тері түрі',
     '🧑🏿‍❤‍🧑🏽' => 'махаббат: адам адам 6-тері түсі 4-тері түсі',
     '🧑🏿‍❤‍🧑🏾' => 'махаббат: адам адам 6-тері түсі 5-тері түсі',
+    '🧑🏻‍🐰‍🧑🏼' => 'билеп жатқан әйелдер: 1–2 тері түсі 3-тері түрі',
+    '🧑🏻‍🐰‍🧑🏽' => 'билеп жатқан әйелдер: 1–2 тері түсі 4-тері түсі',
+    '🧑🏻‍🐰‍🧑🏾' => 'билеп жатқан әйелдер: 1–2 тері түсі 5-тері түсі',
+    '🧑🏻‍🐰‍🧑🏿' => 'билеп жатқан әйелдер: 1–2 тері түсі 6-тері түсі',
+    '🧑🏼‍🐰‍🧑🏻' => 'билеп жатқан әйелдер: 3-тері түрі 1–2 тері түсі',
+    '🧑🏼‍🐰‍🧑🏽' => 'билеп жатқан әйелдер: 3-тері түрі 4-тері түсі',
+    '🧑🏼‍🐰‍🧑🏾' => 'билеп жатқан әйелдер: 3-тері түрі 5-тері түсі',
+    '🧑🏼‍🐰‍🧑🏿' => 'билеп жатқан әйелдер: 3-тері түрі 6-тері түсі',
+    '🧑🏽‍🐰‍🧑🏻' => 'билеп жатқан әйелдер: 4-тері түсі 1–2 тері түсі',
+    '🧑🏽‍🐰‍🧑🏼' => 'билеп жатқан әйелдер: 4-тері түсі 3-тері түрі',
+    '🧑🏽‍🐰‍🧑🏾' => 'билеп жатқан әйелдер: 4-тері түсі 5-тері түсі',
+    '🧑🏽‍🐰‍🧑🏿' => 'билеп жатқан әйелдер: 4-тері түсі 6-тері түсі',
+    '🧑🏾‍🐰‍🧑🏻' => 'билеп жатқан әйелдер: 5-тері түсі 1–2 тері түсі',
+    '🧑🏾‍🐰‍🧑🏼' => 'билеп жатқан әйелдер: 5-тері түсі 3-тері түрі',
+    '🧑🏾‍🐰‍🧑🏽' => 'билеп жатқан әйелдер: 5-тері түсі 4-тері түсі',
+    '🧑🏾‍🐰‍🧑🏿' => 'билеп жатқан әйелдер: 5-тері түсі 6-тері түсі',
+    '🧑🏿‍🐰‍🧑🏻' => 'билеп жатқан әйелдер: 6-тері түсі 1–2 тері түсі',
+    '🧑🏿‍🐰‍🧑🏼' => 'билеп жатқан әйелдер: 6-тері түсі 3-тері түрі',
+    '🧑🏿‍🐰‍🧑🏽' => 'билеп жатқан әйелдер: 6-тері түсі 4-тері түсі',
+    '🧑🏿‍🐰‍🧑🏾' => 'билеп жатқан әйелдер: 6-тері түсі 5-тері түсі',
+    '👨🏻‍🫯‍👨🏼' => 'күресші ер: 1–2 тері түсі 3-тері түрі',
+    '👨🏻‍🫯‍👨🏽' => 'күресші ер: 1–2 тері түсі 4-тері түсі',
+    '👨🏻‍🫯‍👨🏾' => 'күресші ер: 1–2 тері түсі 5-тері түсі',
+    '👨🏻‍🫯‍👨🏿' => 'күресші ер: 1–2 тері түсі 6-тері түсі',
+    '👨🏼‍🫯‍👨🏻' => 'күресші ер: 3-тері түрі 1–2 тері түсі',
+    '👨🏼‍🫯‍👨🏽' => 'күресші ер: 3-тері түрі 4-тері түсі',
+    '👨🏼‍🫯‍👨🏾' => 'күресші ер: 3-тері түрі 5-тері түсі',
+    '👨🏼‍🫯‍👨🏿' => 'күресші ер: 3-тері түрі 6-тері түсі',
+    '👨🏽‍🫯‍👨🏻' => 'күресші ер: 4-тері түсі 1–2 тері түсі',
+    '👨🏽‍🫯‍👨🏼' => 'күресші ер: 4-тері түсі 3-тері түрі',
+    '👨🏽‍🫯‍👨🏾' => 'күресші ер: 4-тері түсі 5-тері түсі',
+    '👨🏽‍🫯‍👨🏿' => 'күресші ер: 4-тері түсі 6-тері түсі',
+    '👨🏾‍🫯‍👨🏻' => 'күресші ер: 5-тері түсі 1–2 тері түсі',
+    '👨🏾‍🫯‍👨🏼' => 'күресші ер: 5-тері түсі 3-тері түрі',
+    '👨🏾‍🫯‍👨🏽' => 'күресші ер: 5-тері түсі 4-тері түсі',
+    '👨🏾‍🫯‍👨🏿' => 'күресші ер: 5-тері түсі 6-тері түсі',
+    '👨🏿‍🫯‍👨🏻' => 'күресші ер: 6-тері түсі 1–2 тері түсі',
+    '👨🏿‍🫯‍👨🏼' => 'күресші ер: 6-тері түсі 3-тері түрі',
+    '👨🏿‍🫯‍👨🏽' => 'күресші ер: 6-тері түсі 4-тері түсі',
+    '👨🏿‍🫯‍👨🏾' => 'күресші ер: 6-тері түсі 5-тері түсі',
     '👨🏻‍❤‍👨🏻' => 'махаббат: ер адам ер адам 1–2 тері түсі',
     '👨🏻‍❤‍👨🏼' => 'махаббат: ер адам ер адам 1–2 тері түсі 3-тері түрі',
     '👨🏻‍❤‍👨🏽' => 'махаббат: ер адам ер адам 1–2 тері түсі 4-тері түсі',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'махаббат: ер адам ер адам 6-тері түсі 4-тері түсі',
     '👨🏿‍❤‍👨🏾' => 'махаббат: ер адам ер адам 6-тері түсі 5-тері түсі',
     '👨🏿‍❤‍👨🏿' => 'махаббат: ер адам ер адам 6-тері түсі',
+    '👨🏻‍🐰‍👨🏼' => 'тойлатып жүрген ерлер: 1–2 тері түсі 3-тері түрі',
+    '👨🏻‍🐰‍👨🏽' => 'тойлатып жүрген ерлер: 1–2 тері түсі 4-тері түсі',
+    '👨🏻‍🐰‍👨🏾' => 'тойлатып жүрген ерлер: 1–2 тері түсі 5-тері түсі',
+    '👨🏻‍🐰‍👨🏿' => 'тойлатып жүрген ерлер: 1–2 тері түсі 6-тері түсі',
+    '👨🏼‍🐰‍👨🏻' => 'тойлатып жүрген ерлер: 3-тері түрі 1–2 тері түсі',
+    '👨🏼‍🐰‍👨🏽' => 'тойлатып жүрген ерлер: 3-тері түрі 4-тері түсі',
+    '👨🏼‍🐰‍👨🏾' => 'тойлатып жүрген ерлер: 3-тері түрі 5-тері түсі',
+    '👨🏼‍🐰‍👨🏿' => 'тойлатып жүрген ерлер: 3-тері түрі 6-тері түсі',
+    '👨🏽‍🐰‍👨🏻' => 'тойлатып жүрген ерлер: 4-тері түсі 1–2 тері түсі',
+    '👨🏽‍🐰‍👨🏼' => 'тойлатып жүрген ерлер: 4-тері түсі 3-тері түрі',
+    '👨🏽‍🐰‍👨🏾' => 'тойлатып жүрген ерлер: 4-тері түсі 5-тері түсі',
+    '👨🏽‍🐰‍👨🏿' => 'тойлатып жүрген ерлер: 4-тері түсі 6-тері түсі',
+    '👨🏾‍🐰‍👨🏻' => 'тойлатып жүрген ерлер: 5-тері түсі 1–2 тері түсі',
+    '👨🏾‍🐰‍👨🏼' => 'тойлатып жүрген ерлер: 5-тері түсі 3-тері түрі',
+    '👨🏾‍🐰‍👨🏽' => 'тойлатып жүрген ерлер: 5-тері түсі 4-тері түсі',
+    '👨🏾‍🐰‍👨🏿' => 'тойлатып жүрген ерлер: 5-тері түсі 6-тері түсі',
+    '👨🏿‍🐰‍👨🏻' => 'тойлатып жүрген ерлер: 6-тері түсі 1–2 тері түсі',
+    '👨🏿‍🐰‍👨🏼' => 'тойлатып жүрген ерлер: 6-тері түсі 3-тері түрі',
+    '👨🏿‍🐰‍👨🏽' => 'тойлатып жүрген ерлер: 6-тері түсі 4-тері түсі',
+    '👨🏿‍🐰‍👨🏾' => 'тойлатып жүрген ерлер: 6-тері түсі 5-тері түсі',
+    '👩🏻‍🫯‍👩🏼' => 'күресші әйел: 1–2 тері түсі 3-тері түрі',
+    '👩🏻‍🫯‍👩🏽' => 'күресші әйел: 1–2 тері түсі 4-тері түсі',
+    '👩🏻‍🫯‍👩🏾' => 'күресші әйел: 1–2 тері түсі 5-тері түсі',
+    '👩🏻‍🫯‍👩🏿' => 'күресші әйел: 1–2 тері түсі 6-тері түсі',
+    '👩🏼‍🫯‍👩🏻' => 'күресші әйел: 3-тері түрі 1–2 тері түсі',
+    '👩🏼‍🫯‍👩🏽' => 'күресші әйел: 3-тері түрі 4-тері түсі',
+    '👩🏼‍🫯‍👩🏾' => 'күресші әйел: 3-тері түрі 5-тері түсі',
+    '👩🏼‍🫯‍👩🏿' => 'күресші әйел: 3-тері түрі 6-тері түсі',
+    '👩🏽‍🫯‍👩🏻' => 'күресші әйел: 4-тері түсі 1–2 тері түсі',
+    '👩🏽‍🫯‍👩🏼' => 'күресші әйел: 4-тері түсі 3-тері түрі',
+    '👩🏽‍🫯‍👩🏾' => 'күресші әйел: 4-тері түсі 5-тері түсі',
+    '👩🏽‍🫯‍👩🏿' => 'күресші әйел: 4-тері түсі 6-тері түсі',
+    '👩🏾‍🫯‍👩🏻' => 'күресші әйел: 5-тері түсі 1–2 тері түсі',
+    '👩🏾‍🫯‍👩🏼' => 'күресші әйел: 5-тері түсі 3-тері түрі',
+    '👩🏾‍🫯‍👩🏽' => 'күресші әйел: 5-тері түсі 4-тері түсі',
+    '👩🏾‍🫯‍👩🏿' => 'күресші әйел: 5-тері түсі 6-тері түсі',
+    '👩🏿‍🫯‍👩🏻' => 'күресші әйел: 6-тері түсі 1–2 тері түсі',
+    '👩🏿‍🫯‍👩🏼' => 'күресші әйел: 6-тері түсі 3-тері түрі',
+    '👩🏿‍🫯‍👩🏽' => 'күресші әйел: 6-тері түсі 4-тері түсі',
+    '👩🏿‍🫯‍👩🏾' => 'күресші әйел: 6-тері түсі 5-тері түсі',
     '👩🏻‍❤‍👨🏻' => 'махаббат: әйел ер адам 1–2 тері түсі',
     '👩🏻‍❤‍👨🏼' => 'махаббат: әйел ер адам 1–2 тері түсі 3-тері түрі',
     '👩🏻‍❤‍👨🏽' => 'махаббат: әйел ер адам 1–2 тері түсі 4-тері түсі',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'махаббат: әйел әйел 6-тері түсі 4-тері түсі',
     '👩🏿‍❤‍👩🏾' => 'махаббат: әйел әйел 6-тері түсі 5-тері түсі',
     '👩🏿‍❤‍👩🏿' => 'махаббат: әйел әйел 6-тері түсі',
+    '👩🏻‍🐰‍👩🏼' => 'тойлатып жүрген әйелдер: 1–2 тері түсі 3-тері түрі',
+    '👩🏻‍🐰‍👩🏽' => 'тойлатып жүрген әйелдер: 1–2 тері түсі 4-тері түсі',
+    '👩🏻‍🐰‍👩🏾' => 'тойлатып жүрген әйелдер: 1–2 тері түсі 5-тері түсі',
+    '👩🏻‍🐰‍👩🏿' => 'тойлатып жүрген әйелдер: 1–2 тері түсі 6-тері түсі',
+    '👩🏼‍🐰‍👩🏻' => 'тойлатып жүрген әйелдер: 3-тері түрі 1–2 тері түсі',
+    '👩🏼‍🐰‍👩🏽' => 'тойлатып жүрген әйелдер: 3-тері түрі 4-тері түсі',
+    '👩🏼‍🐰‍👩🏾' => 'тойлатып жүрген әйелдер: 3-тері түрі 5-тері түсі',
+    '👩🏼‍🐰‍👩🏿' => 'тойлатып жүрген әйелдер: 3-тері түрі 6-тері түсі',
+    '👩🏽‍🐰‍👩🏻' => 'тойлатып жүрген әйелдер: 4-тері түсі 1–2 тері түсі',
+    '👩🏽‍🐰‍👩🏼' => 'тойлатып жүрген әйелдер: 4-тері түсі 3-тері түрі',
+    '👩🏽‍🐰‍👩🏾' => 'тойлатып жүрген әйелдер: 4-тері түсі 5-тері түсі',
+    '👩🏽‍🐰‍👩🏿' => 'тойлатып жүрген әйелдер: 4-тері түсі 6-тері түсі',
+    '👩🏾‍🐰‍👩🏻' => 'тойлатып жүрген әйелдер: 5-тері түсі 1–2 тері түсі',
+    '👩🏾‍🐰‍👩🏼' => 'тойлатып жүрген әйелдер: 5-тері түсі 3-тері түрі',
+    '👩🏾‍🐰‍👩🏽' => 'тойлатып жүрген әйелдер: 5-тері түсі 4-тері түсі',
+    '👩🏾‍🐰‍👩🏿' => 'тойлатып жүрген әйелдер: 5-тері түсі 6-тері түсі',
+    '👩🏿‍🐰‍👩🏻' => 'тойлатып жүрген әйелдер: 6-тері түсі 1–2 тері түсі',
+    '👩🏿‍🐰‍👩🏼' => 'тойлатып жүрген әйелдер: 6-тері түсі 3-тері түрі',
+    '👩🏿‍🐰‍👩🏽' => 'тойлатып жүрген әйелдер: 6-тері түсі 4-тері түсі',
+    '👩🏿‍🐰‍👩🏾' => 'тойлатып жүрген әйелдер: 6-тері түсі 5-тері түсі',
     '🧑🏻‍🤝‍🧑🏻' => 'қолдарын көтеріп тұрған адамдар: 1–2 тері түсі',
     '🧑🏻‍🤝‍🧑🏼' => 'қолдарын көтеріп тұрған адамдар: 1–2 тері түсі 3-тері түрі',
     '🧑🏻‍🤝‍🧑🏽' => 'қолдарын көтеріп тұрған адамдар: 1–2 тері түсі 4-тері түсі',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ту: Шотландия',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'ту: Уэльс',
     '🧑‍🧑‍🧒‍🧒' => 'отбасы: ересек, ересек, бала, бала',
-    '🚶🏻‍♀‍➡' => 'жаяу әйел оңға қаратылған',
-    '🚶🏼‍♀‍➡' => 'жаяу әйел оңға қаратылған',
-    '🚶🏽‍♀‍➡' => 'жаяу әйел оңға қаратылған',
-    '🚶🏾‍♀‍➡' => 'жаяу әйел оңға қаратылған',
-    '🚶🏿‍♀‍➡' => 'жаяу әйел оңға қаратылған',
-    '🚶🏻‍♂‍➡' => 'жаяу ер оңға қаратылған',
-    '🚶🏼‍♂‍➡' => 'жаяу ер оңға қаратылған',
-    '🚶🏽‍♂‍➡' => 'жаяу ер оңға қаратылған',
-    '🚶🏾‍♂‍➡' => 'жаяу ер оңға қаратылған',
-    '🚶🏿‍♂‍➡' => 'жаяу ер оңға қаратылған',
-    '🧎🏻‍♀‍➡' => 'тізерлеп отырған әйел оңға қаратылған',
-    '🧎🏼‍♀‍➡' => 'тізерлеп отырған әйел оңға қаратылған',
-    '🧎🏽‍♀‍➡' => 'тізерлеп отырған әйел оңға қаратылған',
-    '🧎🏾‍♀‍➡' => 'тізерлеп отырған әйел оңға қаратылған',
-    '🧎🏿‍♀‍➡' => 'тізерлеп отырған әйел оңға қаратылған',
-    '🧎🏻‍♂‍➡' => 'тізерлеп отырған еркек оңға қаратылған',
-    '🧎🏼‍♂‍➡' => 'тізерлеп отырған еркек оңға қаратылған',
-    '🧎🏽‍♂‍➡' => 'тізерлеп отырған еркек оңға қаратылған',
-    '🧎🏾‍♂‍➡' => 'тізерлеп отырған еркек оңға қаратылған',
-    '🧎🏿‍♂‍➡' => 'тізерлеп отырған еркек оңға қаратылған',
-    '🧑🏻‍🦯‍➡' => 'таяғы бар адам оңға қаратылған',
-    '🧑🏼‍🦯‍➡' => 'таяғы бар адам оңға қаратылған',
-    '🧑🏽‍🦯‍➡' => 'таяғы бар адам оңға қаратылған',
-    '🧑🏾‍🦯‍➡' => 'таяғы бар адам оңға қаратылған',
-    '🧑🏿‍🦯‍➡' => 'таяғы бар адам оңға қаратылған',
-    '👨🏻‍🦯‍➡' => 'таяғы бар еркек оңға қаратылған',
-    '👨🏼‍🦯‍➡' => 'таяғы бар еркек оңға қаратылған',
-    '👨🏽‍🦯‍➡' => 'таяғы бар еркек оңға қаратылған',
-    '👨🏾‍🦯‍➡' => 'таяғы бар еркек оңға қаратылған',
-    '👨🏿‍🦯‍➡' => 'таяғы бар еркек оңға қаратылған',
-    '👩🏻‍🦯‍➡' => 'таяғы бар әйел оңға қаратылған',
-    '👩🏼‍🦯‍➡' => 'таяғы бар әйел оңға қаратылған',
-    '👩🏽‍🦯‍➡' => 'таяғы бар әйел оңға қаратылған',
-    '👩🏾‍🦯‍➡' => 'таяғы бар әйел оңға қаратылған',
-    '👩🏿‍🦯‍➡' => 'таяғы бар әйел оңға қаратылған',
-    '🧑🏻‍🦼‍➡' => 'моторлы арбадағы адам оңға қаратылған',
-    '🧑🏼‍🦼‍➡' => 'моторлы арбадағы адам оңға қаратылған',
-    '🧑🏽‍🦼‍➡' => 'моторлы арбадағы адам оңға қаратылған',
-    '🧑🏾‍🦼‍➡' => 'моторлы арбадағы адам оңға қаратылған',
-    '🧑🏿‍🦼‍➡' => 'моторлы арбадағы адам оңға қаратылған',
-    '👨🏻‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек оңға қаратылған',
-    '👨🏼‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек оңға қаратылған',
-    '👨🏽‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек оңға қаратылған',
-    '👨🏾‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек оңға қаратылған',
-    '👨🏿‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек оңға қаратылған',
-    '👩🏻‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел оңға қаратылған',
-    '👩🏼‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел оңға қаратылған',
-    '👩🏽‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел оңға қаратылған',
-    '👩🏾‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел оңға қаратылған',
-    '👩🏿‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел оңға қаратылған',
-    '🧑🏻‍🦽‍➡' => 'қол жетегі бар арбашадағы адам оңға қаратылған',
-    '🧑🏼‍🦽‍➡' => 'қол жетегі бар арбашадағы адам оңға қаратылған',
-    '🧑🏽‍🦽‍➡' => 'қол жетегі бар арбашадағы адам оңға қаратылған',
-    '🧑🏾‍🦽‍➡' => 'қол жетегі бар арбашадағы адам оңға қаратылған',
-    '🧑🏿‍🦽‍➡' => 'қол жетегі бар арбашадағы адам оңға қаратылған',
-    '👨🏻‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек оңға қаратылған',
-    '👨🏼‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек оңға қаратылған',
-    '👨🏽‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек оңға қаратылған',
-    '👨🏾‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек оңға қаратылған',
-    '👨🏿‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек оңға қаратылған',
-    '👩🏻‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел оңға қаратылған',
-    '👩🏼‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел оңға қаратылған',
-    '👩🏽‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел оңға қаратылған',
-    '👩🏾‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел оңға қаратылған',
-    '👩🏿‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел оңға қаратылған',
-    '🏃🏻‍♀‍➡' => 'жүгірген әйел оңға қаратылған',
-    '🏃🏼‍♀‍➡' => 'жүгірген әйел оңға қаратылған',
-    '🏃🏽‍♀‍➡' => 'жүгірген әйел оңға қаратылған',
-    '🏃🏾‍♀‍➡' => 'жүгірген әйел оңға қаратылған',
-    '🏃🏿‍♀‍➡' => 'жүгірген әйел оңға қаратылған',
-    '🏃🏻‍♂‍➡' => 'жүгірген ер оңға қаратылған',
-    '🏃🏼‍♂‍➡' => 'жүгірген ер оңға қаратылған',
-    '🏃🏽‍♂‍➡' => 'жүгірген ер оңға қаратылған',
-    '🏃🏾‍♂‍➡' => 'жүгірген ер оңға қаратылған',
-    '🏃🏿‍♂‍➡' => 'жүгірген ер оңға қаратылған',
+    '🚶🏻‍♀‍➡' => 'жаяу әйел: 1–2 тері түсі оңға қаратылған',
+    '🚶🏼‍♀‍➡' => 'жаяу әйел: 3-тері түрі оңға қаратылған',
+    '🚶🏽‍♀‍➡' => 'жаяу әйел: 4-тері түсі оңға қаратылған',
+    '🚶🏾‍♀‍➡' => 'жаяу әйел: 5-тері түсі оңға қаратылған',
+    '🚶🏿‍♀‍➡' => 'жаяу әйел: 6-тері түсі оңға қаратылған',
+    '🚶🏻‍♂‍➡' => 'жаяу ер: 1–2 тері түсі оңға қаратылған',
+    '🚶🏼‍♂‍➡' => 'жаяу ер: 3-тері түрі оңға қаратылған',
+    '🚶🏽‍♂‍➡' => 'жаяу ер: 4-тері түсі оңға қаратылған',
+    '🚶🏾‍♂‍➡' => 'жаяу ер: 5-тері түсі оңға қаратылған',
+    '🚶🏿‍♂‍➡' => 'жаяу ер: 6-тері түсі оңға қаратылған',
+    '🧎🏻‍♀‍➡' => 'тізерлеп отырған әйел: 1–2 тері түсі оңға қаратылған',
+    '🧎🏼‍♀‍➡' => 'тізерлеп отырған әйел: 3-тері түрі оңға қаратылған',
+    '🧎🏽‍♀‍➡' => 'тізерлеп отырған әйел: 4-тері түсі оңға қаратылған',
+    '🧎🏾‍♀‍➡' => 'тізерлеп отырған әйел: 5-тері түсі оңға қаратылған',
+    '🧎🏿‍♀‍➡' => 'тізерлеп отырған әйел: 6-тері түсі оңға қаратылған',
+    '🧎🏻‍♂‍➡' => 'тізерлеп отырған еркек: 1–2 тері түсі оңға қаратылған',
+    '🧎🏼‍♂‍➡' => 'тізерлеп отырған еркек: 3-тері түрі оңға қаратылған',
+    '🧎🏽‍♂‍➡' => 'тізерлеп отырған еркек: 4-тері түсі оңға қаратылған',
+    '🧎🏾‍♂‍➡' => 'тізерлеп отырған еркек: 5-тері түсі оңға қаратылған',
+    '🧎🏿‍♂‍➡' => 'тізерлеп отырған еркек: 6-тері түсі оңға қаратылған',
+    '🧑🏻‍🦯‍➡' => 'таяғы бар адам: 1–2 тері түсі оңға қаратылған',
+    '🧑🏼‍🦯‍➡' => 'таяғы бар адам: 3-тері түрі оңға қаратылған',
+    '🧑🏽‍🦯‍➡' => 'таяғы бар адам: 4-тері түсі оңға қаратылған',
+    '🧑🏾‍🦯‍➡' => 'таяғы бар адам: 5-тері түсі оңға қаратылған',
+    '🧑🏿‍🦯‍➡' => 'таяғы бар адам: 6-тері түсі оңға қаратылған',
+    '👨🏻‍🦯‍➡' => 'таяғы бар еркек: 1–2 тері түсі оңға қаратылған',
+    '👨🏼‍🦯‍➡' => 'таяғы бар еркек: 3-тері түрі оңға қаратылған',
+    '👨🏽‍🦯‍➡' => 'таяғы бар еркек: 4-тері түсі оңға қаратылған',
+    '👨🏾‍🦯‍➡' => 'таяғы бар еркек: 5-тері түсі оңға қаратылған',
+    '👨🏿‍🦯‍➡' => 'таяғы бар еркек: 6-тері түсі оңға қаратылған',
+    '👩🏻‍🦯‍➡' => 'таяғы бар әйел: 1–2 тері түсі оңға қаратылған',
+    '👩🏼‍🦯‍➡' => 'таяғы бар әйел: 3-тері түрі оңға қаратылған',
+    '👩🏽‍🦯‍➡' => 'таяғы бар әйел: 4-тері түсі оңға қаратылған',
+    '👩🏾‍🦯‍➡' => 'таяғы бар әйел: 5-тері түсі оңға қаратылған',
+    '👩🏿‍🦯‍➡' => 'таяғы бар әйел: 6-тері түсі оңға қаратылған',
+    '🧑🏻‍🦼‍➡' => 'моторлы арбадағы адам: 1–2 тері түсі оңға қаратылған',
+    '🧑🏼‍🦼‍➡' => 'моторлы арбадағы адам: 3-тері түрі оңға қаратылған',
+    '🧑🏽‍🦼‍➡' => 'моторлы арбадағы адам: 4-тері түсі оңға қаратылған',
+    '🧑🏾‍🦼‍➡' => 'моторлы арбадағы адам: 5-тері түсі оңға қаратылған',
+    '🧑🏿‍🦼‍➡' => 'моторлы арбадағы адам: 6-тері түсі оңға қаратылған',
+    '👨🏻‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек: 1–2 тері түсі оңға қаратылған',
+    '👨🏼‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек: 3-тері түрі оңға қаратылған',
+    '👨🏽‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек: 4-тері түсі оңға қаратылған',
+    '👨🏾‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек: 5-тері түсі оңға қаратылған',
+    '👨🏿‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек: 6-тері түсі оңға қаратылған',
+    '👩🏻‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел: 1–2 тері түсі оңға қаратылған',
+    '👩🏼‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел: 3-тері түрі оңға қаратылған',
+    '👩🏽‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел: 4-тері түсі оңға қаратылған',
+    '👩🏾‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел: 5-тері түсі оңға қаратылған',
+    '👩🏿‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел: 6-тері түсі оңға қаратылған',
+    '🧑🏻‍🦽‍➡' => 'қол жетегі бар арбашадағы адам: 1–2 тері түсі оңға қаратылған',
+    '🧑🏼‍🦽‍➡' => 'қол жетегі бар арбашадағы адам: 3-тері түрі оңға қаратылған',
+    '🧑🏽‍🦽‍➡' => 'қол жетегі бар арбашадағы адам: 4-тері түсі оңға қаратылған',
+    '🧑🏾‍🦽‍➡' => 'қол жетегі бар арбашадағы адам: 5-тері түсі оңға қаратылған',
+    '🧑🏿‍🦽‍➡' => 'қол жетегі бар арбашадағы адам: 6-тері түсі оңға қаратылған',
+    '👨🏻‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек: 1–2 тері түсі оңға қаратылған',
+    '👨🏼‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек: 3-тері түрі оңға қаратылған',
+    '👨🏽‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек: 4-тері түсі оңға қаратылған',
+    '👨🏾‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек: 5-тері түсі оңға қаратылған',
+    '👨🏿‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек: 6-тері түсі оңға қаратылған',
+    '👩🏻‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел: 1–2 тері түсі оңға қаратылған',
+    '👩🏼‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел: 3-тері түрі оңға қаратылған',
+    '👩🏽‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел: 4-тері түсі оңға қаратылған',
+    '👩🏾‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел: 5-тері түсі оңға қаратылған',
+    '👩🏿‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел: 6-тері түсі оңға қаратылған',
+    '🏃🏻‍♀‍➡' => 'жүгірген әйел: 1–2 тері түсі оңға қаратылған',
+    '🏃🏼‍♀‍➡' => 'жүгірген әйел: 3-тері түрі оңға қаратылған',
+    '🏃🏽‍♀‍➡' => 'жүгірген әйел: 4-тері түсі оңға қаратылған',
+    '🏃🏾‍♀‍➡' => 'жүгірген әйел: 5-тері түсі оңға қаратылған',
+    '🏃🏿‍♀‍➡' => 'жүгірген әйел: 6-тері түсі оңға қаратылған',
+    '🏃🏻‍♂‍➡' => 'жүгірген ер: 1–2 тері түсі оңға қаратылған',
+    '🏃🏼‍♂‍➡' => 'жүгірген ер: 3-тері түрі оңға қаратылған',
+    '🏃🏽‍♂‍➡' => 'жүгірген ер: 4-тері түсі оңға қаратылған',
+    '🏃🏾‍♂‍➡' => 'жүгірген ер: 5-тері түсі оңға қаратылған',
+    '🏃🏿‍♂‍➡' => 'жүгірген ер: 6-тері түсі оңға қаратылған',
     '🫱🏻‍🫲🏼' => 'қол алысу: 1–2 тері түсі 3-тері түрі',
     '🫱🏻‍🫲🏽' => 'қол алысу: 1–2 тері түсі 4-тері түсі',
     '🫱🏻‍🫲🏾' => 'қол алысу: 1–2 тері түсі 5-тері түсі',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'қол алысу: 6-тері түсі 3-тері түрі',
     '🫱🏿‍🫲🏽' => 'қол алысу: 6-тері түсі 4-тері түсі',
     '🫱🏿‍🫲🏾' => 'қол алысу: 6-тері түсі 5-тері түсі',
-    '🚶‍♀‍➡' => 'жаяу әйел оңға қаратылған',
-    '🚶‍♂‍➡' => 'жаяу ер оңға қаратылған',
-    '🧎‍♀‍➡' => 'тізерлеп отырған әйел оңға қаратылған',
-    '🧎‍♂‍➡' => 'тізерлеп отырған еркек оңға қаратылған',
-    '🧑‍🦯‍➡' => 'таяғы бар адам оңға қаратылған',
-    '👨‍🦯‍➡' => 'таяғы бар еркек оңға қаратылған',
-    '👩‍🦯‍➡' => 'таяғы бар әйел оңға қаратылған',
-    '🧑‍🦼‍➡' => 'моторлы арбадағы адам оңға қаратылған',
-    '👨‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек оңға қаратылған',
-    '👩‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел оңға қаратылған',
-    '🧑‍🦽‍➡' => 'қол жетегі бар арбашадағы адам оңға қаратылған',
-    '👨‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек оңға қаратылған',
-    '👩‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел оңға қаратылған',
-    '🏃‍♀‍➡' => 'жүгірген әйел оңға қаратылған',
-    '🏃‍♂‍➡' => 'жүгірген ер оңға қаратылған',
+    '🚶‍♀‍➡' => 'жаяу әйел: оңға қаратылған',
+    '🚶‍♂‍➡' => 'жаяу ер: оңға қаратылған',
+    '🧎‍♀‍➡' => 'тізерлеп отырған әйел: оңға қаратылған',
+    '🧎‍♂‍➡' => 'тізерлеп отырған еркек: оңға қаратылған',
+    '🧑‍🦯‍➡' => 'таяғы бар адам: оңға қаратылған',
+    '👨‍🦯‍➡' => 'таяғы бар еркек: оңға қаратылған',
+    '👩‍🦯‍➡' => 'таяғы бар әйел: оңға қаратылған',
+    '🧑‍🦼‍➡' => 'моторлы арбадағы адам: оңға қаратылған',
+    '👨‍🦼‍➡' => 'электр жетегі бар арбашадағы еркек: оңға қаратылған',
+    '👩‍🦼‍➡' => 'электр жетегі бар арбашадағы әйел: оңға қаратылған',
+    '🧑‍🦽‍➡' => 'қол жетегі бар арбашадағы адам: оңға қаратылған',
+    '👨‍🦽‍➡' => 'қол жетегі бар арбашадағы еркек: оңға қаратылған',
+    '👩‍🦽‍➡' => 'қол жетегі бар арбашадағы әйел: оңға қаратылған',
+    '🏃‍♀‍➡' => 'жүгірген әйел: оңға қаратылған',
+    '🏃‍♂‍➡' => 'жүгірген ер: оңға қаратылған',
     '👩‍❤‍👨' => 'махаббат: әйел ер адам',
     '👨‍❤‍👨' => 'махаббат: ер адам ер адам',
     '👩‍❤‍👩' => 'махаббат: әйел әйел',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'адам: 4-тері түсі тақырбас',
     '🧑🏾‍🦲' => 'адам: 5-тері түсі тақырбас',
     '🧑🏿‍🦲' => 'адам: 6-тері түсі тақырбас',
+    '🧑🏻‍🩰' => 'балет бишісі: 1–2 тері түсі',
+    '🧑🏼‍🩰' => 'балет бишісі: 3-тері түрі',
+    '🧑🏽‍🩰' => 'балет бишісі: 4-тері түсі',
+    '🧑🏾‍🩰' => 'балет бишісі: 5-тері түсі',
+    '🧑🏿‍🩰' => 'балет бишісі: 6-тері түсі',
     '🧔🏻‍♂' => 'ер адам: 1–2 тері түсі сақал',
     '🧔🏼‍♂' => 'ер адам: 3-тері түрі сақал',
     '🧔🏽‍♂' => 'ер адам: 4-тері түсі сақал',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'жаяу әйел: 4-тері түсі',
     '🚶🏾‍♀' => 'жаяу әйел: 5-тері түсі',
     '🚶🏿‍♀' => 'жаяу әйел: 6-тері түсі',
-    '🚶🏻‍➡' => 'жаяу оңға қаратылған',
-    '🚶🏼‍➡' => 'жаяу оңға қаратылған',
-    '🚶🏽‍➡' => 'жаяу оңға қаратылған',
-    '🚶🏾‍➡' => 'жаяу оңға қаратылған',
-    '🚶🏿‍➡' => 'жаяу оңға қаратылған',
+    '🚶🏻‍➡' => 'жаяу: 1–2 тері түсі оңға қаратылған',
+    '🚶🏼‍➡' => 'жаяу: 3-тері түрі оңға қаратылған',
+    '🚶🏽‍➡' => 'жаяу: 4-тері түсі оңға қаратылған',
+    '🚶🏾‍➡' => 'жаяу: 5-тері түсі оңға қаратылған',
+    '🚶🏿‍➡' => 'жаяу: 6-тері түсі оңға қаратылған',
     '🧍🏻‍♂' => 'тұрып тұрған еркек: 1–2 тері түсі',
     '🧍🏼‍♂' => 'тұрып тұрған еркек: 3-тері түрі',
     '🧍🏽‍♂' => 'тұрып тұрған еркек: 4-тері түсі',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'тізерлеп отырған әйел: 4-тері түсі',
     '🧎🏾‍♀' => 'тізерлеп отырған әйел: 5-тері түсі',
     '🧎🏿‍♀' => 'тізерлеп отырған әйел: 6-тері түсі',
-    '🧎🏻‍➡' => 'тізерлеп отырған адам оңға қаратылған',
-    '🧎🏼‍➡' => 'тізерлеп отырған адам оңға қаратылған',
-    '🧎🏽‍➡' => 'тізерлеп отырған адам оңға қаратылған',
-    '🧎🏾‍➡' => 'тізерлеп отырған адам оңға қаратылған',
-    '🧎🏿‍➡' => 'тізерлеп отырған адам оңға қаратылған',
+    '🧎🏻‍➡' => 'тізерлеп отырған адам: 1–2 тері түсі оңға қаратылған',
+    '🧎🏼‍➡' => 'тізерлеп отырған адам: 3-тері түрі оңға қаратылған',
+    '🧎🏽‍➡' => 'тізерлеп отырған адам: 4-тері түсі оңға қаратылған',
+    '🧎🏾‍➡' => 'тізерлеп отырған адам: 5-тері түсі оңға қаратылған',
+    '🧎🏿‍➡' => 'тізерлеп отырған адам: 6-тері түсі оңға қаратылған',
     '🧑🏻‍🦯' => 'таяғы бар адам: 1–2 тері түсі',
     '🧑🏼‍🦯' => 'таяғы бар адам: 3-тері түрі',
     '🧑🏽‍🦯' => 'таяғы бар адам: 4-тері түсі',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'жүгірген әйел: 4-тері түсі',
     '🏃🏾‍♀' => 'жүгірген әйел: 5-тері түсі',
     '🏃🏿‍♀' => 'жүгірген әйел: 6-тері түсі',
-    '🏃🏻‍➡' => 'жүгіру оңға қаратылған',
-    '🏃🏼‍➡' => 'жүгіру оңға қаратылған',
-    '🏃🏽‍➡' => 'жүгіру оңға қаратылған',
-    '🏃🏾‍➡' => 'жүгіру оңға қаратылған',
-    '🏃🏿‍➡' => 'жүгіру оңға қаратылған',
+    '🏃🏻‍➡' => 'жүгіру: 1–2 тері түсі оңға қаратылған',
+    '🏃🏼‍➡' => 'жүгіру: 3-тері түрі оңға қаратылған',
+    '🏃🏽‍➡' => 'жүгіру: 4-тері түсі оңға қаратылған',
+    '🏃🏾‍➡' => 'жүгіру: 5-тері түсі оңға қаратылған',
+    '🏃🏿‍➡' => 'жүгіру: 6-тері түсі оңға қаратылған',
+    '👯🏻‍♀' => 'тойлатып жүрген әйелдер: 1–2 тері түсі',
+    '👯🏼‍♀' => 'тойлатып жүрген әйелдер: 3-тері түрі',
+    '👯🏽‍♀' => 'тойлатып жүрген әйелдер: 4-тері түсі',
+    '👯🏾‍♀' => 'тойлатып жүрген әйелдер: 5-тері түсі',
+    '👯🏿‍♀' => 'тойлатып жүрген әйелдер: 6-тері түсі',
+    '👯🏻‍♂' => 'тойлатып жүрген ерлер: 1–2 тері түсі',
+    '👯🏼‍♂' => 'тойлатып жүрген ерлер: 3-тері түрі',
+    '👯🏽‍♂' => 'тойлатып жүрген ерлер: 4-тері түсі',
+    '👯🏾‍♂' => 'тойлатып жүрген ерлер: 5-тері түсі',
+    '👯🏿‍♂' => 'тойлатып жүрген ерлер: 6-тері түсі',
     '🧖🏻‍♂' => 'бу бөлмедегі ер: 1–2 тері түсі',
     '🧖🏼‍♂' => 'бу бөлмедегі ер: 3-тері түрі',
     '🧖🏽‍♂' => 'бу бөлмедегі ер: 4-тері түсі',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'акробат әйел: 4-тері түсі',
     '🤸🏾‍♀' => 'акробат әйел: 5-тері түсі',
     '🤸🏿‍♀' => 'акробат әйел: 6-тері түсі',
+    '🤼🏻‍♀' => 'күресші әйел: 1–2 тері түсі',
+    '🤼🏼‍♀' => 'күресші әйел: 3-тері түрі',
+    '🤼🏽‍♀' => 'күресші әйел: 4-тері түсі',
+    '🤼🏾‍♀' => 'күресші әйел: 5-тері түсі',
+    '🤼🏿‍♀' => 'күресші әйел: 6-тері түсі',
+    '🤼🏻‍♂' => 'күресші ер: 1–2 тері түсі',
+    '🤼🏼‍♂' => 'күресші ер: 3-тері түрі',
+    '🤼🏽‍♂' => 'күресші ер: 4-тері түсі',
+    '🤼🏾‍♂' => 'күресші ер: 5-тері түсі',
+    '🤼🏿‍♂' => 'күресші ер: 6-тері түсі',
     '🤽🏻‍♂' => 'су полосын ойнаған ер: 1–2 тері түсі',
     '🤽🏼‍♂' => 'су полосын ойнаған ер: 3-тері түрі',
     '🤽🏽‍♂' => 'су полосын ойнаған ер: 4-тері түсі',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'әйел: бұйра шаш',
     '👩‍🦳' => 'әйел: ақ шаш',
     '👩‍🦲' => 'әйел: тақырбас',
-    '🚶‍➡' => 'жаяу оңға қаратылған',
-    '🧎‍➡' => 'тізерлеп отырған адам оңға қаратылған',
-    '🏃‍➡' => 'жүгіру оңға қаратылған',
+    '🚶‍➡' => 'жаяу: оңға қаратылған',
+    '🧎‍➡' => 'тізерлеп отырған адам: оңға қаратылған',
+    '🏃‍➡' => 'жүгіру: оңға қаратылған',
     '👨‍👦' => 'отбасы: ер адам ұл',
     '👨‍👧' => 'отбасы: ер адам қыз',
     '👩‍👦' => 'отбасы: әйел ұл',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'қол жетегі бар арбашадағы әйел',
     '🏃‍♂' => 'жүгірген ер',
     '🏃‍♀' => 'жүгірген әйел',
+    '🧑‍🩰' => 'балет бишісі',
     '👯‍♂' => 'тойлатып жүрген ерлер',
     '👯‍♀' => 'тойлатып жүрген әйелдер',
     '🧖‍♂' => 'бу бөлмедегі ер',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'ауада қалқып тұрған іскер: 4-тері түсі',
     '🕴🏾' => 'ауада қалқып тұрған іскер: 5-тері түсі',
     '🕴🏿' => 'ауада қалқып тұрған іскер: 6-тері түсі',
+    '👯🏻' => 'билеп жатқан әйелдер: 1–2 тері түсі',
+    '👯🏼' => 'билеп жатқан әйелдер: 3-тері түрі',
+    '👯🏽' => 'билеп жатқан әйелдер: 4-тері түсі',
+    '👯🏾' => 'билеп жатқан әйелдер: 5-тері түсі',
+    '👯🏿' => 'билеп жатқан әйелдер: 6-тері түсі',
     '🧖🏻' => 'бу бөлмедегі адам: 1–2 тері түсі',
     '🧖🏼' => 'бу бөлмедегі адам: 3-тері түрі',
     '🧖🏽' => 'бу бөлмедегі адам: 4-тері түсі',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'акробат трюгі: 4-тері түсі',
     '🤸🏾' => 'акробат трюгі: 5-тері түсі',
     '🤸🏿' => 'акробат трюгі: 6-тері түсі',
+    '🤼🏻' => 'күресшілер: 1–2 тері түсі',
+    '🤼🏼' => 'күресшілер: 3-тері түрі',
+    '🤼🏽' => 'күресшілер: 4-тері түсі',
+    '🤼🏾' => 'күресшілер: 5-тері түсі',
+    '🤼🏿' => 'күресшілер: 6-тері түсі',
     '🤽🏻' => 'су полосы: 1–2 тері түсі',
     '🤽🏼' => 'су полосы: 3-тері түрі',
     '🤽🏽' => 'су полосы: 4-тері түсі',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'ту: Қытай',
     '🇨🇴' => 'ту: Колумбия',
     '🇨🇵' => 'ту: Клиппертон аралы',
+    '🇨🇶' => 'ту: Сарк',
     '🇨🇷' => 'ту: Коста-Рика',
     '🇨🇺' => 'ту: Куба',
     '🇨🇻' => 'ту: Кабо-Верде',
@@ -2390,13 +2547,6 @@
     '🏽' => '4-тері түсі',
     '🏾' => '5-тері түсі',
     '🏿' => '6-тері түсі',
-    '🪉' => 'арфа',
-    '🪏' => 'күрек',
-    '🪾' => 'жапырақсыз ағаш',
-    '🫆' => 'саусақ ізі',
-    '🫜' => 'тамыр жеміс',
-    '🫟' => 'шашыранды',
-    '🫩' => 'көзі ісіп тұр',
     '😀' => 'езу тартып күлу',
     '😃' => 'аузын ашып күлу',
     '😄' => 'аузын ашып, ыржиып тұрып күлу',
@@ -2450,6 +2600,7 @@
     '😪' => 'ұйқы басу',
     '🤤' => 'сілекейі ағып тұр',
     '😴' => 'ұйықтау',
+    '🫩' => 'көзі ісіп тұр',
     '😷' => 'медициналық бетперде таққан бет',
     '🤒' => 'термометрі бар бет',
     '🤕' => 'басы бинттелген',
@@ -2476,6 +2627,7 @@
     '😯' => 'таңғалу',
     '😲' => 'аң-таң болу',
     '😳' => 'беті қызару',
+    '🫪' => 'түрі өзгерген эмоджи',
     '🥺' => 'жалыну',
     '🥹' => 'көз жасын әрең ұстау',
     '😦' => 'аузын ашып, бұртию',
@@ -2547,6 +2699,7 @@
     '💋' => 'ерін',
     '💯' => 'жүз балл',
     '💢' => 'ашу',
+    '🫯' => 'төбелес шаңы',
     '💥' => 'қақтығыс',
     '💫' => 'басы айналған',
     '💦' => 'тер тамшылары',
@@ -2670,6 +2823,7 @@
     '🧞' => 'жын',
     '🧟' => 'зомби',
     '🧌' => 'тролль',
+    '🫈' => 'түкті жаратылыс',
     '💆' => 'бетке массаж жасау',
     '💇' => 'шаш қидыру',
     '🚶' => 'жаяу',
@@ -2713,6 +2867,7 @@
     '🫂' => 'құшақтасқан адамдар',
     '👪' => 'отбасы',
     '👣' => 'аяқ іздері',
+    '🫆' => 'саусақ ізі',
     '🦰' => 'жирен шаш',
     '🦱' => 'бұйра шаш',
     '🦳' => 'ақ шаш',
@@ -2812,6 +2967,7 @@
     '🐳' => 'су бүркіп тұрған кит',
     '🐋' => 'кит',
     '🐬' => 'дельфин',
+    '🫍' => 'косатка',
     '🦭' => 'итбалық',
     '🐟' => 'балық',
     '🐠' => 'тропикалық балық',
@@ -2821,6 +2977,11 @@
     '🐚' => 'шиыршықты бақалшық',
     '🪸' => 'маржан',
     '🪼' => 'медуза',
+    '🦀' => 'теңіз шаяны',
+    '🦞' => 'лобстер',
+    '🦐' => 'асшаян',
+    '🦑' => 'кальмар',
+    '🦪' => 'устрица',
     '🐌' => 'ұлу',
     '🦋' => 'көбелек',
     '🐛' => 'жәндік',
@@ -2865,6 +3026,7 @@
     '🪹' => 'бос ұя',
     '🪺' => 'ішінде жұмыртқалары бар ұя',
     '🍄' => 'саңырауқұлақ',
+    '🪾' => 'жапырақсыз ағаш',
     '🍇' => 'жүзім',
     '🍈' => 'қауын',
     '🍉' => 'қарбыз',
@@ -2901,6 +3063,7 @@
     '🌰' => 'каштан',
     '🫚' => 'зімбір тамыры',
     '🫛' => 'бұршаққынды асбұршақ',
+    '🫜' => 'тамыр жеміс',
     '🍞' => 'нан',
     '🥐' => 'круассан',
     '🥖' => 'багет',
@@ -2952,11 +3115,6 @@
     '🥟' => 'үзбе кеспе',
     '🥠' => 'болжау печеньесі',
     '🥡' => 'жол тағамы',
-    '🦀' => 'теңіз шаяны',
-    '🦞' => 'лобстер',
-    '🦐' => 'асшаян',
-    '🦑' => 'кальмар',
-    '🦪' => 'устрица',
     '🍦' => 'жұмсақ балмұздақ',
     '🍧' => 'мұзды балмұздақ',
     '🍨' => 'балмұздақ',
@@ -3007,6 +3165,7 @@
     '🧭' => 'компас',
     '🏔' => 'төбесін қар басқан тау',
     '⛰' => 'тау',
+    '🛘' => 'көшкін',
     '🌋' => 'жанартау',
     '🗻' => 'Фудзияма',
     '🏕' => 'кемпинг',
@@ -3367,16 +3526,18 @@
     '🎧' => 'құлақаспап',
     '📻' => 'радио',
     '🎷' => 'саксофон',
+    '🎺' => 'труба',
+    '🪊' => 'тромбон',
     '🪗' => 'аккордеон',
     '🎸' => 'гитара',
     '🎹' => 'музыкалық пернетақта',
-    '🎺' => 'труба',
     '🎻' => 'скрипка',
     '🪕' => 'банджо',
     '🥁' => 'барабан',
     '🪘' => 'цилиндрлік барабан',
     '🪇' => 'маракас',
     '🪈' => 'сыбызғы',
+    '🪉' => 'арфа',
     '📱' => 'ұялы телефон',
     '📲' => 'ұялы телефонға қабылдау',
     '☎' => 'телефон',
@@ -3430,8 +3591,9 @@
     '📑' => 'бетбелгілер қойындысы',
     '🔖' => 'бетбелгі',
     '🏷' => 'затбелгі',
-    '💰' => 'ақша салынған қалта',
     '🪙' => 'тиын',
+    '💰' => 'ақша салынған қалта',
+    '🪎' => 'қазына сандығы',
     '💴' => 'йена банкнотасы',
     '💵' => 'доллар банкнотасы',
     '💶' => 'еуро банкнотасы',
@@ -3514,6 +3676,7 @@
     '🧰' => 'құралдар жәшігі',
     '🧲' => 'магнит',
     '🪜' => 'саты',
+    '🪏' => 'күрек',
     '⚗' => 'дистиллятор',
     '🧪' => 'шыны түтік',
     '🧫' => 'Петри ыдысы',
@@ -3697,6 +3860,7 @@
     '✴' => 'сегіз қырлы жұлдыз',
     '❇' => 'ұшқын',
     '™' => 'сауда белгісі',
+    '🫟' => 'шашыранды',
     '🔠' => 'үлкен латын әріптерін енгізу',
     '🔡' => 'кіші латын әріптерін енгізу',
     '🔢' => 'сандарды енгізу',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kl.php	2026-05-20 10:56:49.000000000 +0200
@@ -428,6 +428,9 @@
     '🦈' => 'haj',
     '🐙' => 'blæksprutte',
     '🐚' => 'konkylie',
+    '🦀' => 'krabbe',
+    '🦐' => 'reje',
+    '🦑' => 'sprutte',
     '🐌' => 'snegl',
     '🦋' => 'sommerfugl',
     '🐛' => 'larve',
@@ -518,9 +521,6 @@
     '🍤' => 'dybstegt reje',
     '🍥' => 'fiskebolle',
     '🍡' => 'iskugler på pind',
-    '🦀' => 'krabbe',
-    '🦐' => 'reje',
-    '🦑' => 'sprutte',
     '🍦' => 'softice',
     '🍧' => 'snedessert',
     '🍨' => 'is',
@@ -860,9 +860,9 @@
     '🎧' => 'hovedtelefon',
     '📻' => 'radio',
     '🎷' => 'saxofon',
+    '🎺' => 'trompet',
     '🎸' => 'guitar',
     '🎹' => 'klaver',
-    '🎺' => 'trompet',
     '🎻' => 'violin',
     '🥁' => 'tromme',
     '📱' => 'mobil',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-km.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-km.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-km.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-km.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ថើប: ស្រ្តី ស្រ្តី សម្បុរខ្មៅ សម្បុរស្រអែម',
     '👩🏿‍❤‍💋‍👩🏾' => 'ថើប: ស្រ្តី ស្រ្តី សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
     '👩🏿‍❤‍💋‍👩🏿' => 'ថើប: ស្រ្តី ស្រ្តី សម្បុរខ្មៅ',
+    '🧑🏻‍🫯‍🧑🏼' => 'មនុស្សបោកចំបាប់: សម្បុរស សម្បុរសល្មម',
+    '🧑🏻‍🫯‍🧑🏽' => 'មនុស្សបោកចំបាប់: សម្បុរស សម្បុរស្រអែម',
+    '🧑🏻‍🫯‍🧑🏾' => 'មនុស្សបោកចំបាប់: សម្បុរស សម្បុរខ្មៅល្មម',
+    '🧑🏻‍🫯‍🧑🏿' => 'មនុស្សបោកចំបាប់: សម្បុរស សម្បុរខ្មៅ',
+    '🧑🏼‍🫯‍🧑🏻' => 'មនុស្សបោកចំបាប់: សម្បុរសល្មម សម្បុរស',
+    '🧑🏼‍🫯‍🧑🏽' => 'មនុស្សបោកចំបាប់: សម្បុរសល្មម សម្បុរស្រអែម',
+    '🧑🏼‍🫯‍🧑🏾' => 'មនុស្សបោកចំបាប់: សម្បុរសល្មម សម្បុរខ្មៅល្មម',
+    '🧑🏼‍🫯‍🧑🏿' => 'មនុស្សបោកចំបាប់: សម្បុរសល្មម សម្បុរខ្មៅ',
+    '🧑🏽‍🫯‍🧑🏻' => 'មនុស្សបោកចំបាប់: សម្បុរស្រអែម សម្បុរស',
+    '🧑🏽‍🫯‍🧑🏼' => 'មនុស្សបោកចំបាប់: សម្បុរស្រអែម សម្បុរសល្មម',
+    '🧑🏽‍🫯‍🧑🏾' => 'មនុស្សបោកចំបាប់: សម្បុរស្រអែម សម្បុរខ្មៅល្មម',
+    '🧑🏽‍🫯‍🧑🏿' => 'មនុស្សបោកចំបាប់: សម្បុរស្រអែម សម្បុរខ្មៅ',
+    '🧑🏾‍🫯‍🧑🏻' => 'មនុស្សបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរស',
+    '🧑🏾‍🫯‍🧑🏼' => 'មនុស្សបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរសល្មម',
+    '🧑🏾‍🫯‍🧑🏽' => 'មនុស្សបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរស្រអែម',
+    '🧑🏾‍🫯‍🧑🏿' => 'មនុស្សបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរខ្មៅ',
+    '🧑🏿‍🫯‍🧑🏻' => 'មនុស្សបោកចំបាប់: សម្បុរខ្មៅ សម្បុរស',
+    '🧑🏿‍🫯‍🧑🏼' => 'មនុស្សបោកចំបាប់: សម្បុរខ្មៅ សម្បុរសល្មម',
+    '🧑🏿‍🫯‍🧑🏽' => 'មនុស្សបោកចំបាប់: សម្បុរខ្មៅ សម្បុរស្រអែម',
+    '🧑🏿‍🫯‍🧑🏾' => 'មនុស្សបោកចំបាប់: សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
     '🧑🏻‍❤‍🧑🏼' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: មនុស្សធំ មនុស្សធំ សម្បុរស សម្បុរសល្មម',
     '🧑🏻‍❤‍🧑🏽' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: មនុស្សធំ មនុស្សធំ សម្បុរស សម្បុរស្រអែម',
     '🧑🏻‍❤‍🧑🏾' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: មនុស្សធំ មនុស្សធំ សម្បុរស សម្បុរខ្មៅល្មម',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: មនុស្សធំ មនុស្សធំ សម្បុរខ្មៅ សម្បុរសល្មម',
     '🧑🏿‍❤‍🧑🏽' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: មនុស្សធំ មនុស្សធំ សម្បុរខ្មៅ សម្បុរស្រអែម',
     '🧑🏿‍❤‍🧑🏾' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: មនុស្សធំ មនុស្សធំ សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
+    '🧑🏻‍🐰‍🧑🏼' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរសល្មម',
+    '🧑🏻‍🐰‍🧑🏽' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរស្រអែម',
+    '🧑🏻‍🐰‍🧑🏾' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរខ្មៅល្មម',
+    '🧑🏻‍🐰‍🧑🏿' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរខ្មៅ',
+    '🧑🏼‍🐰‍🧑🏻' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរស',
+    '🧑🏼‍🐰‍🧑🏽' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរស្រអែម',
+    '🧑🏼‍🐰‍🧑🏾' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរខ្មៅល្មម',
+    '🧑🏼‍🐰‍🧑🏿' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរខ្មៅ',
+    '🧑🏽‍🐰‍🧑🏻' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរស',
+    '🧑🏽‍🐰‍🧑🏼' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរសល្មម',
+    '🧑🏽‍🐰‍🧑🏾' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរខ្មៅល្មម',
+    '🧑🏽‍🐰‍🧑🏿' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរខ្មៅ',
+    '🧑🏾‍🐰‍🧑🏻' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរស',
+    '🧑🏾‍🐰‍🧑🏼' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរសល្មម',
+    '🧑🏾‍🐰‍🧑🏽' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរស្រអែម',
+    '🧑🏾‍🐰‍🧑🏿' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរខ្មៅ',
+    '🧑🏿‍🐰‍🧑🏻' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរស',
+    '🧑🏿‍🐰‍🧑🏼' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរសល្មម',
+    '🧑🏿‍🐰‍🧑🏽' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរស្រអែម',
+    '🧑🏿‍🐰‍🧑🏾' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
+    '👨🏻‍🫯‍👨🏼' => 'បុរសកំពុងបោកចំបាប់: សម្បុរស សម្បុរសល្មម',
+    '👨🏻‍🫯‍👨🏽' => 'បុរសកំពុងបោកចំបាប់: សម្បុរស សម្បុរស្រអែម',
+    '👨🏻‍🫯‍👨🏾' => 'បុរសកំពុងបោកចំបាប់: សម្បុរស សម្បុរខ្មៅល្មម',
+    '👨🏻‍🫯‍👨🏿' => 'បុរសកំពុងបោកចំបាប់: សម្បុរស សម្បុរខ្មៅ',
+    '👨🏼‍🫯‍👨🏻' => 'បុរសកំពុងបោកចំបាប់: សម្បុរសល្មម សម្បុរស',
+    '👨🏼‍🫯‍👨🏽' => 'បុរសកំពុងបោកចំបាប់: សម្បុរសល្មម សម្បុរស្រអែម',
+    '👨🏼‍🫯‍👨🏾' => 'បុរសកំពុងបោកចំបាប់: សម្បុរសល្មម សម្បុរខ្មៅល្មម',
+    '👨🏼‍🫯‍👨🏿' => 'បុរសកំពុងបោកចំបាប់: សម្បុរសល្មម សម្បុរខ្មៅ',
+    '👨🏽‍🫯‍👨🏻' => 'បុរសកំពុងបោកចំបាប់: សម្បុរស្រអែម សម្បុរស',
+    '👨🏽‍🫯‍👨🏼' => 'បុរសកំពុងបោកចំបាប់: សម្បុរស្រអែម សម្បុរសល្មម',
+    '👨🏽‍🫯‍👨🏾' => 'បុរសកំពុងបោកចំបាប់: សម្បុរស្រអែម សម្បុរខ្មៅល្មម',
+    '👨🏽‍🫯‍👨🏿' => 'បុរសកំពុងបោកចំបាប់: សម្បុរស្រអែម សម្បុរខ្មៅ',
+    '👨🏾‍🫯‍👨🏻' => 'បុរសកំពុងបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរស',
+    '👨🏾‍🫯‍👨🏼' => 'បុរសកំពុងបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរសល្មម',
+    '👨🏾‍🫯‍👨🏽' => 'បុរសកំពុងបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរស្រអែម',
+    '👨🏾‍🫯‍👨🏿' => 'បុរសកំពុងបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរខ្មៅ',
+    '👨🏿‍🫯‍👨🏻' => 'បុរសកំពុងបោកចំបាប់: សម្បុរខ្មៅ សម្បុរស',
+    '👨🏿‍🫯‍👨🏼' => 'បុរសកំពុងបោកចំបាប់: សម្បុរខ្មៅ សម្បុរសល្មម',
+    '👨🏿‍🫯‍👨🏽' => 'បុរសកំពុងបោកចំបាប់: សម្បុរខ្មៅ សម្បុរស្រអែម',
+    '👨🏿‍🫯‍👨🏾' => 'បុរសកំពុងបោកចំបាប់: សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
     '👨🏻‍❤‍👨🏻' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: បុរស បុរស សម្បុរស',
     '👨🏻‍❤‍👨🏼' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: បុរស បុរស សម្បុរស សម្បុរសល្មម',
     '👨🏻‍❤‍👨🏽' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: បុរស បុរស សម្បុរស សម្បុរស្រអែម',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: បុរស បុរស សម្បុរខ្មៅ សម្បុរស្រអែម',
     '👨🏿‍❤‍👨🏾' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: បុរស បុរស សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
     '👨🏿‍❤‍👨🏿' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: បុរស បុរស សម្បុរខ្មៅ',
+    '👨🏻‍🐰‍👨🏼' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរសល្មម',
+    '👨🏻‍🐰‍👨🏽' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរស្រអែម',
+    '👨🏻‍🐰‍👨🏾' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរខ្មៅល្មម',
+    '👨🏻‍🐰‍👨🏿' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរខ្មៅ',
+    '👨🏼‍🐰‍👨🏻' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរស',
+    '👨🏼‍🐰‍👨🏽' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរស្រអែម',
+    '👨🏼‍🐰‍👨🏾' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរខ្មៅល្មម',
+    '👨🏼‍🐰‍👨🏿' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរខ្មៅ',
+    '👨🏽‍🐰‍👨🏻' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរស',
+    '👨🏽‍🐰‍👨🏼' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរសល្មម',
+    '👨🏽‍🐰‍👨🏾' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរខ្មៅល្មម',
+    '👨🏽‍🐰‍👨🏿' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរខ្មៅ',
+    '👨🏾‍🐰‍👨🏻' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរស',
+    '👨🏾‍🐰‍👨🏼' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរសល្មម',
+    '👨🏾‍🐰‍👨🏽' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរស្រអែម',
+    '👨🏾‍🐰‍👨🏿' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរខ្មៅ',
+    '👨🏿‍🐰‍👨🏻' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរស',
+    '👨🏿‍🐰‍👨🏼' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរសល្មម',
+    '👨🏿‍🐰‍👨🏽' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរស្រអែម',
+    '👨🏿‍🐰‍👨🏾' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
+    '👩🏻‍🫯‍👩🏼' => 'នារីកំពុុងបោកចំបាប់: សម្បុរស សម្បុរសល្មម',
+    '👩🏻‍🫯‍👩🏽' => 'នារីកំពុុងបោកចំបាប់: សម្បុរស សម្បុរស្រអែម',
+    '👩🏻‍🫯‍👩🏾' => 'នារីកំពុុងបោកចំបាប់: សម្បុរស សម្បុរខ្មៅល្មម',
+    '👩🏻‍🫯‍👩🏿' => 'នារីកំពុុងបោកចំបាប់: សម្បុរស សម្បុរខ្មៅ',
+    '👩🏼‍🫯‍👩🏻' => 'នារីកំពុុងបោកចំបាប់: សម្បុរសល្មម សម្បុរស',
+    '👩🏼‍🫯‍👩🏽' => 'នារីកំពុុងបោកចំបាប់: សម្បុរសល្មម សម្បុរស្រអែម',
+    '👩🏼‍🫯‍👩🏾' => 'នារីកំពុុងបោកចំបាប់: សម្បុរសល្មម សម្បុរខ្មៅល្មម',
+    '👩🏼‍🫯‍👩🏿' => 'នារីកំពុុងបោកចំបាប់: សម្បុរសល្មម សម្បុរខ្មៅ',
+    '👩🏽‍🫯‍👩🏻' => 'នារីកំពុុងបោកចំបាប់: សម្បុរស្រអែម សម្បុរស',
+    '👩🏽‍🫯‍👩🏼' => 'នារីកំពុុងបោកចំបាប់: សម្បុរស្រអែម សម្បុរសល្មម',
+    '👩🏽‍🫯‍👩🏾' => 'នារីកំពុុងបោកចំបាប់: សម្បុរស្រអែម សម្បុរខ្មៅល្មម',
+    '👩🏽‍🫯‍👩🏿' => 'នារីកំពុុងបោកចំបាប់: សម្បុរស្រអែម សម្បុរខ្មៅ',
+    '👩🏾‍🫯‍👩🏻' => 'នារីកំពុុងបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរស',
+    '👩🏾‍🫯‍👩🏼' => 'នារីកំពុុងបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរសល្មម',
+    '👩🏾‍🫯‍👩🏽' => 'នារីកំពុុងបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរស្រអែម',
+    '👩🏾‍🫯‍👩🏿' => 'នារីកំពុុងបោកចំបាប់: សម្បុរខ្មៅល្មម សម្បុរខ្មៅ',
+    '👩🏿‍🫯‍👩🏻' => 'នារីកំពុុងបោកចំបាប់: សម្បុរខ្មៅ សម្បុរស',
+    '👩🏿‍🫯‍👩🏼' => 'នារីកំពុុងបោកចំបាប់: សម្បុរខ្មៅ សម្បុរសល្មម',
+    '👩🏿‍🫯‍👩🏽' => 'នារីកំពុុងបោកចំបាប់: សម្បុរខ្មៅ សម្បុរស្រអែម',
+    '👩🏿‍🫯‍👩🏾' => 'នារីកំពុុងបោកចំបាប់: សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
     '👩🏻‍❤‍👨🏻' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: ស្រ្តី បុរស សម្បុរស',
     '👩🏻‍❤‍👨🏼' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: ស្រ្តី បុរស សម្បុរស សម្បុរសល្មម',
     '👩🏻‍❤‍👨🏽' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: ស្រ្តី បុរស សម្បុរស សម្បុរស្រអែម',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: ស្រ្តី ស្រ្តី សម្បុរខ្មៅ សម្បុរស្រអែម',
     '👩🏿‍❤‍👩🏾' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: ស្រ្តី ស្រ្តី សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
     '👩🏿‍❤‍👩🏿' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: ស្រ្តី ស្រ្តី សម្បុរខ្មៅ',
+    '👩🏻‍🐰‍👩🏼' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរសល្មម',
+    '👩🏻‍🐰‍👩🏽' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរស្រអែម',
+    '👩🏻‍🐰‍👩🏾' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរខ្មៅល្មម',
+    '👩🏻‍🐰‍👩🏿' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរស សម្បុរខ្មៅ',
+    '👩🏼‍🐰‍👩🏻' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរស',
+    '👩🏼‍🐰‍👩🏽' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរស្រអែម',
+    '👩🏼‍🐰‍👩🏾' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរខ្មៅល្មម',
+    '👩🏼‍🐰‍👩🏿' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម សម្បុរខ្មៅ',
+    '👩🏽‍🐰‍👩🏻' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរស',
+    '👩🏽‍🐰‍👩🏼' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរសល្មម',
+    '👩🏽‍🐰‍👩🏾' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរខ្មៅល្មម',
+    '👩🏽‍🐰‍👩🏿' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម សម្បុរខ្មៅ',
+    '👩🏾‍🐰‍👩🏻' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរស',
+    '👩🏾‍🐰‍👩🏼' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរសល្មម',
+    '👩🏾‍🐰‍👩🏽' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរស្រអែម',
+    '👩🏾‍🐰‍👩🏿' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម សម្បុរខ្មៅ',
+    '👩🏿‍🐰‍👩🏻' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរស',
+    '👩🏿‍🐰‍👩🏼' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរសល្មម',
+    '👩🏿‍🐰‍👩🏽' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរស្រអែម',
+    '👩🏿‍🐰‍👩🏾' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
     '🧑🏻‍🤝‍🧑🏻' => 'មនុស្សកាន់ដៃគ្នា: សម្បុរស',
     '🧑🏻‍🤝‍🧑🏼' => 'មនុស្សកាន់ដៃគ្នា: សម្បុរស សម្បុរសល្មម',
     '🧑🏻‍🤝‍🧑🏽' => 'មនុស្សកាន់ដៃគ្នា: សម្បុរស សម្បុរស្រអែម',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ទីង់: ស្កុតឡែន',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'ទីង់: វ៉ាល់ស៍',
     '🧑‍🧑‍🧒‍🧒' => 'គ្រួសារ៖ មនុស្សធំ, មនុស្សពេញវ័យ, កុមារ, ក្មេង',
-    '🚶🏻‍♀‍➡' => 'នារីកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏼‍♀‍➡' => 'នារីកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏽‍♀‍➡' => 'នារីកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏾‍♀‍➡' => 'នារីកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏿‍♀‍➡' => 'នារីកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏻‍♂‍➡' => 'បុរសកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏼‍♂‍➡' => 'បុរសកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏽‍♂‍➡' => 'បុរសកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏾‍♂‍➡' => 'បុរសកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏿‍♂‍➡' => 'បុរសកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🧎🏻‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏼‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏽‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏾‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏿‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏻‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏼‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏽‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏾‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏿‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧑🏻‍🦯‍➡' => 'ឈើច្រត់ បែរមុខទៅស្ដាំ',
-    '🧑🏼‍🦯‍➡' => 'ឈើច្រត់ បែរមុខទៅស្ដាំ',
-    '🧑🏽‍🦯‍➡' => 'ឈើច្រត់ បែរមុខទៅស្ដាំ',
-    '🧑🏾‍🦯‍➡' => 'ឈើច្រត់ បែរមុខទៅស្ដាំ',
-    '🧑🏿‍🦯‍➡' => 'ឈើច្រត់ បែរមុខទៅស្ដាំ',
-    '👨🏻‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '👨🏼‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '👨🏽‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '👨🏾‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '👨🏿‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '👩🏻‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '👩🏼‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '👩🏽‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '👩🏾‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '👩🏿‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '🧑🏻‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '🧑🏼‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '🧑🏽‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '🧑🏾‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '🧑🏿‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👨🏻‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👨🏼‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👨🏽‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👨🏾‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👨🏿‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👩🏻‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👩🏼‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👩🏽‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👩🏾‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👩🏿‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '🧑🏻‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '🧑🏼‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '🧑🏽‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '🧑🏾‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '🧑🏿‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👨🏻‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👨🏼‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👨🏽‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👨🏾‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👨🏿‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👩🏻‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👩🏼‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👩🏽‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👩🏾‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👩🏿‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '🏃🏻‍♀‍➡' => 'នារីកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏼‍♀‍➡' => 'នារីកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏽‍♀‍➡' => 'នារីកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏾‍♀‍➡' => 'នារីកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏿‍♀‍➡' => 'នារីកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏻‍♂‍➡' => 'បុរសកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏼‍♂‍➡' => 'បុរសកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏽‍♂‍➡' => 'បុរសកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏾‍♂‍➡' => 'បុរសកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏿‍♂‍➡' => 'បុរសកំពុងរត់ បែរមុខទៅស្ដាំ',
+    '🚶🏻‍♀‍➡' => 'នារីកំពុុងដើរ: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🚶🏼‍♀‍➡' => 'នារីកំពុុងដើរ: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🚶🏽‍♀‍➡' => 'នារីកំពុុងដើរ: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🚶🏾‍♀‍➡' => 'នារីកំពុុងដើរ: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🚶🏿‍♀‍➡' => 'នារីកំពុុងដើរ: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '🚶🏻‍♂‍➡' => 'បុរសកំពុុងដើរ: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🚶🏼‍♂‍➡' => 'បុរសកំពុុងដើរ: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🚶🏽‍♂‍➡' => 'បុរសកំពុុងដើរ: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🚶🏾‍♂‍➡' => 'បុរសកំពុុងដើរ: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🚶🏿‍♂‍➡' => 'បុរសកំពុុងដើរ: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '🧎🏻‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🧎🏼‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🧎🏽‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🧎🏾‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🧎🏿‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '🧎🏻‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🧎🏼‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🧎🏽‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🧎🏾‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🧎🏿‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '🧑🏻‍🦯‍➡' => 'ឈើច្រត់: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🧑🏼‍🦯‍➡' => 'ឈើច្រត់: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🧑🏽‍🦯‍➡' => 'ឈើច្រត់: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🧑🏾‍🦯‍➡' => 'ឈើច្រត់: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🧑🏿‍🦯‍➡' => 'ឈើច្រត់: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '👨🏻‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: សម្បុរស បែរមុខទៅស្ដាំ',
+    '👨🏼‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '👨🏽‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '👨🏾‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '👨🏿‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '👩🏻‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: សម្បុរស បែរមុខទៅស្ដាំ',
+    '👩🏼‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '👩🏽‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '👩🏾‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '👩🏿‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '🧑🏻‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🧑🏼‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🧑🏽‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🧑🏾‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🧑🏿‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '👨🏻‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: សម្បុរស បែរមុខទៅស្ដាំ',
+    '👨🏼‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '👨🏽‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '👨🏾‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '👨🏿‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '👩🏻‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: សម្បុរស បែរមុខទៅស្ដាំ',
+    '👩🏼‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '👩🏽‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '👩🏾‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '👩🏿‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '🧑🏻‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🧑🏼‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🧑🏽‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🧑🏾‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🧑🏿‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '👨🏻‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ: សម្បុរស បែរមុខទៅស្ដាំ',
+    '👨🏼‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '👨🏽‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '👨🏾‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '👨🏿‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '👩🏻‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ: សម្បុរស បែរមុខទៅស្ដាំ',
+    '👩🏼‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '👩🏽‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '👩🏾‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '👩🏿‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '🏃🏻‍♀‍➡' => 'នារីកំពុងរត់: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🏃🏼‍♀‍➡' => 'នារីកំពុងរត់: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🏃🏽‍♀‍➡' => 'នារីកំពុងរត់: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🏃🏾‍♀‍➡' => 'នារីកំពុងរត់: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🏃🏿‍♀‍➡' => 'នារីកំពុងរត់: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '🏃🏻‍♂‍➡' => 'បុរសកំពុងរត់: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🏃🏼‍♂‍➡' => 'បុរសកំពុងរត់: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🏃🏽‍♂‍➡' => 'បុរសកំពុងរត់: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🏃🏾‍♂‍➡' => 'បុរសកំពុងរត់: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🏃🏿‍♂‍➡' => 'បុរសកំពុងរត់: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
     '🫱🏻‍🫲🏼' => 'ចាប់ដៃ: សម្បុរស សម្បុរសល្មម',
     '🫱🏻‍🫲🏽' => 'ចាប់ដៃ: សម្បុរស សម្បុរស្រអែម',
     '🫱🏻‍🫲🏾' => 'ចាប់ដៃ: សម្បុរស សម្បុរខ្មៅល្មម',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ចាប់ដៃ: សម្បុរខ្មៅ សម្បុរសល្មម',
     '🫱🏿‍🫲🏽' => 'ចាប់ដៃ: សម្បុរខ្មៅ សម្បុរស្រអែម',
     '🫱🏿‍🫲🏾' => 'ចាប់ដៃ: សម្បុរខ្មៅ សម្បុរខ្មៅល្មម',
-    '🚶‍♀‍➡' => 'នារីកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶‍♂‍➡' => 'បុរសកំពុុងដើរ បែរមុខទៅស្ដាំ',
-    '🧎‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧑‍🦯‍➡' => 'ឈើច្រត់ បែរមុខទៅស្ដាំ',
-    '👨‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '👩‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក បែរមុខទៅស្ដាំ',
-    '🧑‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👨‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '👩‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន បែរមុខទៅស្ដាំ',
-    '🧑‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👨‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '👩‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ បែរមុខទៅស្ដាំ',
-    '🏃‍♀‍➡' => 'នារីកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃‍♂‍➡' => 'បុរសកំពុងរត់ បែរមុខទៅស្ដាំ',
+    '🚶‍♀‍➡' => 'នារីកំពុុងដើរ: បែរមុខទៅស្ដាំ',
+    '🚶‍♂‍➡' => 'បុរសកំពុុងដើរ: បែរមុខទៅស្ដាំ',
+    '🧎‍♀‍➡' => 'មនុស្សស្រីលុតជង្គង់: បែរមុខទៅស្ដាំ',
+    '🧎‍♂‍➡' => 'មនុស្សប្រុសលុតជង្គង់: បែរមុខទៅស្ដាំ',
+    '🧑‍🦯‍➡' => 'ឈើច្រត់: បែរមុខទៅស្ដាំ',
+    '👨‍🦯‍➡' => 'បុរស​កាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: បែរមុខទៅស្ដាំ',
+    '👩‍🦯‍➡' => 'ស្ត្រីកាន់ឈើច្រត់សម្រាប់​ជនពិការភ្នែក: បែរមុខទៅស្ដាំ',
+    '🧑‍🦼‍➡' => 'មនុស្សអង្គុយលើរទេះរុញដោយកម្លាំងម៉ាស៊ីន: បែរមុខទៅស្ដាំ',
+    '👨‍🦼‍➡' => 'បុរស​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: បែរមុខទៅស្ដាំ',
+    '👩‍🦼‍➡' => 'ស្ត្រី​ជិះ​រទេះជនពិការ​ដែលមាន​បំពាក់​ម៉ាស៊ីន: បែរមុខទៅស្ដាំ',
+    '🧑‍🦽‍➡' => 'មនុស្សអង្គុយ​លើ​រទេះរុញដោយដៃ: បែរមុខទៅស្ដាំ',
+    '👨‍🦽‍➡' => 'បុរសជិះ​រទេះជនពិការដែលរុញដោយដៃ: បែរមុខទៅស្ដាំ',
+    '👩‍🦽‍➡' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ: បែរមុខទៅស្ដាំ',
+    '🏃‍♀‍➡' => 'នារីកំពុងរត់: បែរមុខទៅស្ដាំ',
+    '🏃‍♂‍➡' => 'បុរសកំពុងរត់: បែរមុខទៅស្ដាំ',
     '👩‍❤‍👨' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: ស្រ្តី បុរស',
     '👨‍❤‍👨' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: បុរស បុរស',
     '👩‍❤‍👩' => 'បេះដូងនៅចន្លោះគូស្នេហ៍: ស្រ្តី ស្រ្តី',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'មនុស្សធំ: សម្បុរស្រអែម ទំពែក',
     '🧑🏾‍🦲' => 'មនុស្សធំ: សម្បុរខ្មៅល្មម ទំពែក',
     '🧑🏿‍🦲' => 'មនុស្សធំ: សម្បុរខ្មៅ ទំពែក',
+    '🧑🏻‍🩰' => 'អ្នករាំរបាំបាឡេ: សម្បុរស',
+    '🧑🏼‍🩰' => 'អ្នករាំរបាំបាឡេ: សម្បុរសល្មម',
+    '🧑🏽‍🩰' => 'អ្នករាំរបាំបាឡេ: សម្បុរស្រអែម',
+    '🧑🏾‍🩰' => 'អ្នករាំរបាំបាឡេ: សម្បុរខ្មៅល្មម',
+    '🧑🏿‍🩰' => 'អ្នករាំរបាំបាឡេ: សម្បុរខ្មៅ',
     '🧔🏻‍♂' => 'បុរស៖ ពុកចង្កា: សម្បុរស',
     '🧔🏼‍♂' => 'បុរស៖ ពុកចង្កា: សម្បុរសល្មម',
     '🧔🏽‍♂' => 'បុរស៖ ពុកចង្កា: សម្បុរស្រអែម',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'នារីកំពុុងដើរ: សម្បុរស្រអែម',
     '🚶🏾‍♀' => 'នារីកំពុុងដើរ: សម្បុរខ្មៅល្មម',
     '🚶🏿‍♀' => 'នារីកំពុុងដើរ: សម្បុរខ្មៅ',
-    '🚶🏻‍➡' => 'មនុស្សកំពុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏼‍➡' => 'មនុស្សកំពុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏽‍➡' => 'មនុស្សកំពុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏾‍➡' => 'មនុស្សកំពុងដើរ បែរមុខទៅស្ដាំ',
-    '🚶🏿‍➡' => 'មនុស្សកំពុងដើរ បែរមុខទៅស្ដាំ',
+    '🚶🏻‍➡' => 'មនុស្សកំពុងដើរ: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🚶🏼‍➡' => 'មនុស្សកំពុងដើរ: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🚶🏽‍➡' => 'មនុស្សកំពុងដើរ: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🚶🏾‍➡' => 'មនុស្សកំពុងដើរ: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🚶🏿‍➡' => 'មនុស្សកំពុងដើរ: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
     '🧍🏻‍♂' => 'មនុស្សប្រុសឈរ: សម្បុរស',
     '🧍🏼‍♂' => 'មនុស្សប្រុសឈរ: សម្បុរសល្មម',
     '🧍🏽‍♂' => 'មនុស្សប្រុសឈរ: សម្បុរស្រអែម',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'មនុស្សស្រីលុតជង្គង់: សម្បុរស្រអែម',
     '🧎🏾‍♀' => 'មនុស្សស្រីលុតជង្គង់: សម្បុរខ្មៅល្មម',
     '🧎🏿‍♀' => 'មនុស្សស្រីលុតជង្គង់: សម្បុរខ្មៅ',
-    '🧎🏻‍➡' => 'មនុស្សលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏼‍➡' => 'មនុស្សលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏽‍➡' => 'មនុស្សលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏾‍➡' => 'មនុស្សលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🧎🏿‍➡' => 'មនុស្សលុតជង្គង់ បែរមុខទៅស្ដាំ',
+    '🧎🏻‍➡' => 'មនុស្សលុតជង្គង់: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🧎🏼‍➡' => 'មនុស្សលុតជង្គង់: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🧎🏽‍➡' => 'មនុស្សលុតជង្គង់: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🧎🏾‍➡' => 'មនុស្សលុតជង្គង់: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🧎🏿‍➡' => 'មនុស្សលុតជង្គង់: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
     '🧑🏻‍🦯' => 'ឈើច្រត់: សម្បុរស',
     '🧑🏼‍🦯' => 'ឈើច្រត់: សម្បុរសល្មម',
     '🧑🏽‍🦯' => 'ឈើច្រត់: សម្បុរស្រអែម',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'នារីកំពុងរត់: សម្បុរស្រអែម',
     '🏃🏾‍♀' => 'នារីកំពុងរត់: សម្បុរខ្មៅល្មម',
     '🏃🏿‍♀' => 'នារីកំពុងរត់: សម្បុរខ្មៅ',
-    '🏃🏻‍➡' => 'មនុស្សកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏼‍➡' => 'មនុស្សកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏽‍➡' => 'មនុស្សកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏾‍➡' => 'មនុស្សកំពុងរត់ បែរមុខទៅស្ដាំ',
-    '🏃🏿‍➡' => 'មនុស្សកំពុងរត់ បែរមុខទៅស្ដាំ',
+    '🏃🏻‍➡' => 'មនុស្សកំពុងរត់: សម្បុរស បែរមុខទៅស្ដាំ',
+    '🏃🏼‍➡' => 'មនុស្សកំពុងរត់: សម្បុរសល្មម បែរមុខទៅស្ដាំ',
+    '🏃🏽‍➡' => 'មនុស្សកំពុងរត់: សម្បុរស្រអែម បែរមុខទៅស្ដាំ',
+    '🏃🏾‍➡' => 'មនុស្សកំពុងរត់: សម្បុរខ្មៅល្មម បែរមុខទៅស្ដាំ',
+    '🏃🏿‍➡' => 'មនុស្សកំពុងរត់: សម្បុរខ្មៅ បែរមុខទៅស្ដាំ',
+    '👯🏻‍♀' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរស',
+    '👯🏼‍♀' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម',
+    '👯🏽‍♀' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម',
+    '👯🏾‍♀' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម',
+    '👯🏿‍♀' => 'នារីពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ',
+    '👯🏻‍♂' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរស',
+    '👯🏼‍♂' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម',
+    '👯🏽‍♂' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម',
+    '👯🏾‍♂' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម',
+    '👯🏿‍♂' => 'បុរសពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ',
     '🧖🏻‍♂' => 'បុរសនៅក្នុងបន្ទប់ស្ទីម: សម្បុរស',
     '🧖🏼‍♂' => 'បុរសនៅក្នុងបន្ទប់ស្ទីម: សម្បុរសល្មម',
     '🧖🏽‍♂' => 'បុរសនៅក្នុងបន្ទប់ស្ទីម: សម្បុរស្រអែម',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'នារីកំពុងប៉ាហ៊ី: សម្បុរស្រអែម',
     '🤸🏾‍♀' => 'នារីកំពុងប៉ាហ៊ី: សម្បុរខ្មៅល្មម',
     '🤸🏿‍♀' => 'នារីកំពុងប៉ាហ៊ី: សម្បុរខ្មៅ',
+    '🤼🏻‍♀' => 'នារីកំពុុងបោកចំបាប់: សម្បុរស',
+    '🤼🏼‍♀' => 'នារីកំពុុងបោកចំបាប់: សម្បុរសល្មម',
+    '🤼🏽‍♀' => 'នារីកំពុុងបោកចំបាប់: សម្បុរស្រអែម',
+    '🤼🏾‍♀' => 'នារីកំពុុងបោកចំបាប់: សម្បុរខ្មៅល្មម',
+    '🤼🏿‍♀' => 'នារីកំពុុងបោកចំបាប់: សម្បុរខ្មៅ',
+    '🤼🏻‍♂' => 'បុរសកំពុងបោកចំបាប់: សម្បុរស',
+    '🤼🏼‍♂' => 'បុរសកំពុងបោកចំបាប់: សម្បុរសល្មម',
+    '🤼🏽‍♂' => 'បុរសកំពុងបោកចំបាប់: សម្បុរស្រអែម',
+    '🤼🏾‍♂' => 'បុរសកំពុងបោកចំបាប់: សម្បុរខ្មៅល្មម',
+    '🤼🏿‍♂' => 'បុរសកំពុងបោកចំបាប់: សម្បុរខ្មៅ',
     '🤽🏻‍♂' => 'បុរសលេងបាល់គប់ក្នុងទឹក: សម្បុរស',
     '🤽🏼‍♂' => 'បុរសលេងបាល់គប់ក្នុងទឹក: សម្បុរសល្មម',
     '🤽🏽‍♂' => 'បុរសលេងបាល់គប់ក្នុងទឹក: សម្បុរស្រអែម',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ស្រ្តី: សក់ក្រញាញ់',
     '👩‍🦳' => 'ស្រ្តី: សក់ស',
     '👩‍🦲' => 'ស្រ្តី: ទំពែក',
-    '🚶‍➡' => 'មនុស្សកំពុងដើរ បែរមុខទៅស្ដាំ',
-    '🧎‍➡' => 'មនុស្សលុតជង្គង់ បែរមុខទៅស្ដាំ',
-    '🏃‍➡' => 'មនុស្សកំពុងរត់ បែរមុខទៅស្ដាំ',
+    '🚶‍➡' => 'មនុស្សកំពុងដើរ: បែរមុខទៅស្ដាំ',
+    '🧎‍➡' => 'មនុស្សលុតជង្គង់: បែរមុខទៅស្ដាំ',
+    '🏃‍➡' => 'មនុស្សកំពុងរត់: បែរមុខទៅស្ដាំ',
     '👨‍👦' => 'គ្រួសារ: បុរស ក្មេងប្រុស',
     '👨‍👧' => 'គ្រួសារ: បុរស ក្មេងស្រី',
     '👩‍👦' => 'គ្រួសារ: ស្រ្តី ក្មេងប្រុស',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ស្ត្រីជិះ​រទេះជនពិការដែលរុញដោយដៃ',
     '🏃‍♂' => 'បុរសកំពុងរត់',
     '🏃‍♀' => 'នារីកំពុងរត់',
+    '🧑‍🩰' => 'អ្នករាំរបាំបាឡេ',
     '👯‍♂' => 'បុរសពាក់ត្រចៀកទន្សាយ',
     '👯‍♀' => 'នារីពាក់ត្រចៀកទន្សាយ',
     '🧖‍♂' => 'បុរសនៅក្នុងបន្ទប់ស្ទីម',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'បុរសស្លៀកឈុតធ្វើការបណ្ដែតខ្លួនលើអាកាស: សម្បុរស្រអែម',
     '🕴🏾' => 'បុរសស្លៀកឈុតធ្វើការបណ្ដែតខ្លួនលើអាកាស: សម្បុរខ្មៅល្មម',
     '🕴🏿' => 'បុរសស្លៀកឈុតធ្វើការបណ្ដែតខ្លួនលើអាកាស: សម្បុរខ្មៅ',
+    '👯🏻' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរស',
+    '👯🏼' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរសល្មម',
+    '👯🏽' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរស្រអែម',
+    '👯🏾' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅល្មម',
+    '👯🏿' => 'មនុស្សរាំពាក់ត្រចៀកទន្សាយ: សម្បុរខ្មៅ',
     '🧖🏻' => 'មនុស្សនៅក្នុងបន្ទប់ស្ទីម: សម្បុរស',
     '🧖🏼' => 'មនុស្សនៅក្នុងបន្ទប់ស្ទីម: សម្បុរសល្មម',
     '🧖🏽' => 'មនុស្សនៅក្នុងបន្ទប់ស្ទីម: សម្បុរស្រអែម',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ប៉ាហ៊ី: សម្បុរស្រអែម',
     '🤸🏾' => 'ប៉ាហ៊ី: សម្បុរខ្មៅល្មម',
     '🤸🏿' => 'ប៉ាហ៊ី: សម្បុរខ្មៅ',
+    '🤼🏻' => 'មនុស្សបោកចំបាប់: សម្បុរស',
+    '🤼🏼' => 'មនុស្សបោកចំបាប់: សម្បុរសល្មម',
+    '🤼🏽' => 'មនុស្សបោកចំបាប់: សម្បុរស្រអែម',
+    '🤼🏾' => 'មនុស្សបោកចំបាប់: សម្បុរខ្មៅល្មម',
+    '🤼🏿' => 'មនុស្សបោកចំបាប់: សម្បុរខ្មៅ',
     '🤽🏻' => 'មនុស្សលេងកីឡាគប់បាល់ក្នុងទឹក: សម្បុរស',
     '🤽🏼' => 'មនុស្សលេងកីឡាគប់បាល់ក្នុងទឹក: សម្បុរសល្មម',
     '🤽🏽' => 'មនុស្សលេងកីឡាគប់បាល់ក្នុងទឹក: សម្បុរស្រអែម',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'ទីង់: ចិន',
     '🇨🇴' => 'ទីង់: កូឡុំប៊ី',
     '🇨🇵' => 'ទីង់: កោះ​ឃ្លីភឺតុន',
+    '🇨🇶' => 'ទីង់: សាខ',
     '🇨🇷' => 'ទីង់: កូស្តារីកា',
     '🇨🇺' => 'ទីង់: គុយបា',
     '🇨🇻' => 'ទីង់: កាប់វែរ',
@@ -2390,13 +2547,6 @@
     '🏽' => 'សម្បុរស្រអែម',
     '🏾' => 'សម្បុរខ្មៅល្មម',
     '🏿' => 'សម្បុរខ្មៅ',
-    '🪉' => 'ពិណ',
-    '🪏' => 'ប៉ែល',
-    '🪾' => 'ដើមឈើគ្មានស្លឹក',
-    '🫆' => 'ស្នាមម្រាមដៃ',
-    '🫜' => 'បន្លែមើម',
-    '🫟' => 'ខ្ទាត',
-    '🫩' => 'មុខមានថ្នក់ខ្មៅក្រោមភ្នែក',
     '😀' => 'មុខសើច',
     '😃' => 'មុខសើចបើកភ្នែកធំៗ',
     '😄' => 'មុខសើចទាំងមាត់ និងភ្នែក',
@@ -2450,6 +2600,7 @@
     '😪' => 'មុខងងុយដេក',
     '🤤' => 'មុខហៀរទឹកមាត់',
     '😴' => 'មុខកំពុងគេង',
+    '🫩' => 'មុខមានថ្នក់ខ្មៅក្រោមភ្នែក',
     '😷' => 'មុខពាក់ម៉ាសគ្រូពេទ្យ',
     '🤒' => 'មុខបៀមឧបករណ៍ស្ទង់កំដៅ',
     '🤕' => 'មុខរុំប៉ង់សេម៉ង់',
@@ -2476,6 +2627,7 @@
     '😯' => 'មុខចំហមាត់់ចិញ្ចើមងើបទៅលើលក្ខណៈភាំង',
     '😲' => 'មុខភ្ជាក់ផ្អើល',
     '😳' => 'មុខឡើងក្រហមព្រឿងៗ',
+    '🫪' => 'មុខខូច',
     '🥺' => 'មុខអង្វរ',
     '🥹' => 'សញ្ញាមុខទប់ទឹកភ្នែក',
     '😦' => 'មុខក្រៀមក្រំហើយចំហមាត់',
@@ -2547,6 +2699,7 @@
     '💋' => 'ស្នាមថើប',
     '💯' => 'ពិន្ទុ១០០',
     '💢' => 'សញ្ញាខឹង',
+    '🫯' => 'ប្រយុទ្ធជាមួយពពក',
     '💥' => 'បុកគ្នា',
     '💫' => 'វិលវល់',
     '💦' => 'តំណក់ទឹកបី',
@@ -2670,6 +2823,7 @@
     '🧞' => 'ជីនី',
     '🧟' => 'ហ្សំប៊ី',
     '🧌' => 'សញ្ញាមុខរូបត្រូល',
+    '🫈' => 'សត្វមានរោម',
     '💆' => 'មនុស្សគេងម៉ាស្សា',
     '💇' => 'មនុស្សកំពុងកាត់សក់',
     '🚶' => 'មនុស្សកំពុងដើរ',
@@ -2713,6 +2867,7 @@
     '🫂' => 'មនុស្សកំពុងឱប',
     '👪' => 'គ្រួសារ',
     '👣' => 'ដានជើង',
+    '🫆' => 'ស្នាមម្រាមដៃ',
     '🦰' => 'សក់ក្រហម',
     '🦱' => 'សក់ក្រញាញ់',
     '🦳' => 'សក់ស',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ត្រីបាឡែនបាញ់ទឹក',
     '🐋' => 'ត្រីបាឡែន',
     '🐬' => 'ត្រីដូហ្វីន',
+    '🫍' => 'អ័រកា',
     '🦭' => 'ឆ្មាទឹក',
     '🐟' => 'ត្រី',
     '🐠' => 'ត្រីតំបន់ត្រូពិច',
@@ -2821,6 +2977,11 @@
     '🐚' => 'សម្បកខ្យង',
     '🪸' => 'សញ្ញារូបផ្កាថ្ម',
     '🪼' => 'ខ្ញែរសមុទ្រ',
+    '🦀' => 'ក្តាម',
+    '🦞' => 'បង្កង',
+    '🦐' => 'បង្គារ',
+    '🦑' => 'មឹកបំពង់',
+    '🦪' => 'អ័រស្ទ័រ',
     '🐌' => 'ខ្យង',
     '🦋' => 'មេអំបៅ',
     '🐛' => 'សត្វល្អិត',
@@ -2865,6 +3026,7 @@
     '🪹' => 'សញ្ញារូបសំបុកទទេ',
     '🪺' => 'សញ្ញារូបសំបុកមានស៊ុត',
     '🍄' => 'ផ្សិត',
+    '🪾' => 'ដើមឈើគ្មានស្លឹក',
     '🍇' => 'ទំពាំងបាយជូ',
     '🍈' => 'ត្រសក់ស្រូវ',
     '🍉' => 'ឪឡឹក',
@@ -2901,6 +3063,7 @@
     '🌰' => 'កៅឡាក់',
     '🫚' => 'មើមខ្ញី',
     '🫛' => 'ហោឡាំងតៅ',
+    '🫜' => 'បន្លែមើម',
     '🍞' => 'នុំប៉័ងបួនជ្រុង',
     '🥐' => 'នំរមូល',
     '🥖' => 'នំប៉័ងវែង',
@@ -2952,11 +3115,6 @@
     '🥟' => 'គាវ',
     '🥠' => 'នំខូកឃីប្រាប់ជោគវាសនា',
     '🥡' => 'ប្រអប់ខ្ចប់អាហារ',
-    '🦀' => 'ក្តាម',
-    '🦞' => 'បង្កង',
-    '🦐' => 'បង្គារ',
-    '🦑' => 'មឹកបំពង់',
-    '🦪' => 'អ័រស្ទ័រ',
     '🍦' => 'ការេមផ្លែឈើ',
     '🍧' => 'ទឹកកកឈូស',
     '🍨' => 'ការេម',
@@ -3007,6 +3165,7 @@
     '🧭' => 'ត្រីវិស័យ',
     '🏔' => 'ភ្នំកំពូលទឹកកក',
     '⛰' => 'ភ្នំ​',
+    '🛘' => 'ការរអិលបាក់ដី',
     '🌋' => 'ភ្នំភ្លើង',
     '🗻' => 'ភ្នំហ្វូជី (នៅជប៉ុន)',
     '🏕' => 'បោះជំរុំ',
@@ -3367,16 +3526,18 @@
     '🎧' => 'កាសនិងណោតភ្លេងបី',
     '📻' => 'វីទ្យុ',
     '🎷' => 'ត្រែផ្លុំ',
+    '🎺' => 'ត្រុំប៉ែត',
+    '🪊' => 'ត្រុមបូន',
     '🪗' => 'អាក់គ័រដេអុង',
     '🎸' => 'ហ្គីតា',
     '🎹' => 'ខ្ទង់ព្យាណូ',
-    '🎺' => 'ត្រុំប៉ែត',
     '🎻' => 'វីយូឡុង',
     '🪕' => 'បានចូ',
     '🥁' => 'ស្គរ',
     '🪘' => 'ស្គរវែង',
     '🪇' => 'ម៉ារ៉ាកាស',
     '🪈' => 'ខ្លុយ',
+    '🪉' => 'ពិណ',
     '📱' => 'ទូរស័ព្ទស្មាតហ្វូន',
     '📲' => 'ទូរស័ព្ទស្មាតហ្វូនមានសញ្ញាព្រួញទៅឆ្វេង',
     '☎' => 'ទូរស័ព្ទលើតុ',
@@ -3430,8 +3591,9 @@
     '📑' => 'ទំព័រមានបន្ទះសៀតចំណាំ',
     '🔖' => 'ប្រដាប់សៀតចំណាំទំព័រ',
     '🏷' => 'ស្លាក',
-    '💰' => 'ថង់លុយ',
     '🪙' => 'កាក់',
+    '💰' => 'ថង់លុយ',
+    '🪎' => 'ទ្រូងកំណប់',
     '💴' => 'លុយយេន',
     '💵' => 'លុុយដុល្លារ',
     '💶' => 'លុយអឺរូ',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ប្រអប់ដាក់ឧបករណ៍',
     '🧲' => 'ដែកឆក់',
     '🪜' => 'ជណ្ដើរ',
+    '🪏' => 'ប៉ែល',
     '⚗' => 'កែវសម្រាប់ធ្វើពិសោធន៍',
     '🧪' => 'បំពង់តេស្ត',
     '🧫' => 'ចានបណ្ដុះកោសិកា',
@@ -3697,6 +3860,7 @@
     '✴' => 'សញ្ញាផ្កាយមុខប្រាំបី',
     '❇' => 'ពន្លឺចាំង',
     '™' => 'សញ្ញាអក្សរ TM សម្គាល់ថាជាម៉ាកទំនិញ',
+    '🫟' => 'ខ្ទាត',
     '🔠' => 'ប៊ូតុងបញ្ចូលអក្សរធំ',
     '🔡' => 'ប៊ូតុងបញ្ចូលអក្សរតូច',
     '🔢' => 'ប៊ូតុងបញ្ចូលលេខ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kn.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ಚುಂಬನ: ಮಹಿಳೆ, ಮಹಿಳೆ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '👩🏿‍❤‍💋‍👩🏾' => 'ಚುಂಬನ: ಮಹಿಳೆ, ಮಹಿಳೆ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '👩🏿‍❤‍💋‍👩🏿' => 'ಚುಂಬನ: ಮಹಿಳೆ, ಮಹಿಳೆ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏻‍🫯‍🧑🏼' => 'ಕುಸ್ತಿಪಟುಗಳು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏻‍🫯‍🧑🏽' => 'ಕುಸ್ತಿಪಟುಗಳು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏻‍🫯‍🧑🏾' => 'ಕುಸ್ತಿಪಟುಗಳು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏻‍🫯‍🧑🏿' => 'ಕುಸ್ತಿಪಟುಗಳು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏼‍🫯‍🧑🏻' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏼‍🫯‍🧑🏽' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏼‍🫯‍🧑🏾' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏼‍🫯‍🧑🏿' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏽‍🫯‍🧑🏻' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏽‍🫯‍🧑🏼' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏽‍🫯‍🧑🏾' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏽‍🫯‍🧑🏿' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏾‍🫯‍🧑🏻' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏾‍🫯‍🧑🏼' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏾‍🫯‍🧑🏽' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏾‍🫯‍🧑🏿' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏿‍🫯‍🧑🏻' => 'ಕುಸ್ತಿಪಟುಗಳು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏿‍🫯‍🧑🏼' => 'ಕುಸ್ತಿಪಟುಗಳು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏿‍🫯‍🧑🏽' => 'ಕುಸ್ತಿಪಟುಗಳು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏿‍🫯‍🧑🏾' => 'ಕುಸ್ತಿಪಟುಗಳು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🧑🏻‍❤‍🧑🏼' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ವ್ಯಕ್ತಿ, ವ್ಯಕ್ತಿ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧑🏻‍❤‍🧑🏽' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ವ್ಯಕ್ತಿ, ವ್ಯಕ್ತಿ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🧑🏻‍❤‍🧑🏾' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ವ್ಯಕ್ತಿ, ವ್ಯಕ್ತಿ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ವ್ಯಕ್ತಿ, ವ್ಯಕ್ತಿ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧑🏿‍❤‍🧑🏽' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ವ್ಯಕ್ತಿ, ವ್ಯಕ್ತಿ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🧑🏿‍❤‍🧑🏾' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ವ್ಯಕ್ತಿ, ವ್ಯಕ್ತಿ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏻‍🐰‍🧑🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏻‍🐰‍🧑🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏻‍🐰‍🧑🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏻‍🐰‍🧑🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏼‍🐰‍🧑🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏼‍🐰‍🧑🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏼‍🐰‍🧑🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏼‍🐰‍🧑🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏽‍🐰‍🧑🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏽‍🐰‍🧑🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏽‍🐰‍🧑🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏽‍🐰‍🧑🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏾‍🐰‍🧑🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏾‍🐰‍🧑🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏾‍🐰‍🧑🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏾‍🐰‍🧑🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏿‍🐰‍🧑🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏿‍🐰‍🧑🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏿‍🐰‍🧑🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏿‍🐰‍🧑🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏻‍🫯‍👨🏼' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏻‍🫯‍👨🏽' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏻‍🫯‍👨🏾' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏻‍🫯‍👨🏿' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏼‍🫯‍👨🏻' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏼‍🫯‍👨🏽' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏼‍🫯‍👨🏾' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏼‍🫯‍👨🏿' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏽‍🫯‍👨🏻' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏽‍🫯‍👨🏼' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏽‍🫯‍👨🏾' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏽‍🫯‍👨🏿' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏾‍🫯‍👨🏻' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏾‍🫯‍👨🏼' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏾‍🫯‍👨🏽' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏾‍🫯‍👨🏿' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏿‍🫯‍👨🏻' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏿‍🫯‍👨🏼' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏿‍🫯‍👨🏽' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏿‍🫯‍👨🏾' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '👨🏻‍❤‍👨🏻' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಪುರುಷ, ಪುರುಷ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '👨🏻‍❤‍👨🏼' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಪುರುಷ, ಪುರುಷ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '👨🏻‍❤‍👨🏽' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಪುರುಷ, ಪುರುಷ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಪುರುಷ, ಪುರುಷ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '👨🏿‍❤‍👨🏾' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಪುರುಷ, ಪುರುಷ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '👨🏿‍❤‍👨🏿' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಪುರುಷ, ಪುರುಷ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏻‍🐰‍👨🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏻‍🐰‍👨🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏻‍🐰‍👨🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏻‍🐰‍👨🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏼‍🐰‍👨🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏼‍🐰‍👨🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏼‍🐰‍👨🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏼‍🐰‍👨🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏽‍🐰‍👨🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏽‍🐰‍👨🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏽‍🐰‍👨🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏽‍🐰‍👨🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏾‍🐰‍👨🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏾‍🐰‍👨🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏾‍🐰‍👨🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏾‍🐰‍👨🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏿‍🐰‍👨🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏿‍🐰‍👨🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏿‍🐰‍👨🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👨🏿‍🐰‍👨🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏻‍🫯‍👩🏼' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏻‍🫯‍👩🏽' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏻‍🫯‍👩🏾' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏻‍🫯‍👩🏿' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏼‍🫯‍👩🏻' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏼‍🫯‍👩🏽' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏼‍🫯‍👩🏾' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏼‍🫯‍👩🏿' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏽‍🫯‍👩🏻' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏽‍🫯‍👩🏼' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏽‍🫯‍👩🏾' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏽‍🫯‍👩🏿' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏾‍🫯‍👩🏻' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏾‍🫯‍👩🏼' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏾‍🫯‍👩🏽' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏾‍🫯‍👩🏿' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏿‍🫯‍👩🏻' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏿‍🫯‍👩🏼' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏿‍🫯‍👩🏽' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏿‍🫯‍👩🏾' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '👩🏻‍❤‍👨🏻' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಮಹಿಳೆ, ಪುರುಷ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '👩🏻‍❤‍👨🏼' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಮಹಿಳೆ, ಪುರುಷ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '👩🏻‍❤‍👨🏽' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಮಹಿಳೆ, ಪುರುಷ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಮಹಿಳೆ, ಮಹಿಳೆ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '👩🏿‍❤‍👩🏾' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಮಹಿಳೆ, ಮಹಿಳೆ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '👩🏿‍❤‍👩🏿' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಮಹಿಳೆ, ಮಹಿಳೆ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏻‍🐰‍👩🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏻‍🐰‍👩🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏻‍🐰‍👩🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏻‍🐰‍👩🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏼‍🐰‍👩🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏼‍🐰‍👩🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏼‍🐰‍👩🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏼‍🐰‍👩🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏽‍🐰‍👩🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏽‍🐰‍👩🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏽‍🐰‍👩🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏽‍🐰‍👩🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏾‍🐰‍👩🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏾‍🐰‍👩🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏾‍🐰‍👩🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏾‍🐰‍👩🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏿‍🐰‍👩🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏿‍🐰‍👩🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏿‍🐰‍👩🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👩🏿‍🐰‍👩🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🧑🏻‍🤝‍🧑🏻' => 'ಕೈಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿಗಳು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧑🏻‍🤝‍🧑🏼' => 'ಕೈಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿಗಳು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧑🏻‍🤝‍🧑🏽' => 'ಕೈಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿಗಳು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ಧ್ವಜ: ಸ್ಕಾಟ್ಲೆಂಡ್',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'ಧ್ವಜ: ವೇಲ್ಸ್‌',
     '🧑‍🧑‍🧒‍🧒' => 'ಕುಟುಂಬ: ವಯಸ್ಕ, ವಯಸ್ಕರು, ಮಗು, ಮಗು',
-    '🚶🏻‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏼‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏽‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏾‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏿‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏻‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏼‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏽‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏾‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏿‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏻‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏼‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏽‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏾‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏿‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏻‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏼‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏽‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏾‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏿‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏻‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏼‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏽‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏾‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏿‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏻‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏼‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏽‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏾‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏿‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏻‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏼‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏽‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏾‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏿‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏻‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏼‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏽‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏾‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏿‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏻‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏼‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏽‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏾‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏿‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏻‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏼‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏽‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏾‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏿‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏻‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏼‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏽‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏾‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑🏿‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏻‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏼‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏽‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏾‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨🏿‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏻‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏼‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏽‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏾‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩🏿‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏻‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏼‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏽‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏾‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏿‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏻‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏼‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏽‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏾‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏿‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏻‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏼‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏽‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏾‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏿‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏻‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏼‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏽‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏾‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏿‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏻‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏼‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏽‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏾‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏿‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏻‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏼‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏽‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏾‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏿‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏻‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏼‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏽‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏾‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏿‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏻‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏼‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏽‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏾‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏿‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏻‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏼‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏽‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏾‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏿‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏻‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏼‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏽‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏾‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏿‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏻‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏼‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏽‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏾‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏿‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏻‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏼‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏽‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏾‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏿‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏻‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏼‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏽‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏾‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑🏿‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏻‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏼‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏽‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏾‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨🏿‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏻‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏼‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏽‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏾‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩🏿‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏻‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏼‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏽‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏾‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏿‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏻‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏼‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏽‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏾‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏿‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
     '🫱🏻‍🫲🏼' => 'ಹಸ್ತಲಾಘವ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🫱🏻‍🫲🏽' => 'ಹಸ್ತಲಾಘವ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🫱🏻‍🫲🏾' => 'ಹಸ್ತಲಾಘವ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ಹಸ್ತಲಾಘವ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🫱🏿‍🫲🏽' => 'ಹಸ್ತಲಾಘವ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🫱🏿‍🫲🏾' => 'ಹಸ್ತಲಾಘವ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
-    '🚶‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧑‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👨‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '👩‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶‍♀‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶‍♂‍➡' => 'ನಡೆಯುತ್ತಿರುವ ಪುರುಷ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎‍♀‍➡' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎‍♂‍➡' => 'ವ್ಯಕ್ತಿ ಮಂಡಿಯೂರಿರುವುದು: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑‍🦯‍➡' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ವ್ಯಕ್ತಿ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩‍🦯‍➡' => 'ಊರುಗೋಲು ಹಿಡಿದಿರುವ ಮಹಿಳೆ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑‍🦼‍➡' => 'ಮೋಟಾರ್ ಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩‍🦼‍➡' => 'ಮೋಟರ್ ಹೊಂದಿರುವ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧑‍🦽‍➡' => 'ಹಸ್ತಚಾಲಿತ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👨‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👩‍🦽‍➡' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃‍♀‍➡' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃‍♂‍➡' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
     '👩‍❤‍👨' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಮಹಿಳೆ, ಪುರುಷ',
     '👨‍❤‍👨' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಪುರುಷ, ಪುರುಷ',
     '👩‍❤‍👩' => 'ಹೃದಯದೊಂದಿಗೆ ಜೋಡಿ: ಮಹಿಳೆ, ಮಹಿಳೆ',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಕ್ಕ ತಲೆ',
     '🧑🏾‍🦲' => 'ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಕ್ಕ ತಲೆ',
     '🧑🏿‍🦲' => 'ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಕ್ಕ ತಲೆ',
+    '🧑🏻‍🩰' => 'ಬ್ಯಾಲೆ ಡಾನ್ಸರ್: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏼‍🩰' => 'ಬ್ಯಾಲೆ ಡಾನ್ಸರ್: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏽‍🩰' => 'ಬ್ಯಾಲೆ ಡಾನ್ಸರ್: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏾‍🩰' => 'ಬ್ಯಾಲೆ ಡಾನ್ಸರ್: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🧑🏿‍🩰' => 'ಬ್ಯಾಲೆ ಡಾನ್ಸರ್: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🧔🏻‍♂' => 'ಪುರುಷ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಡ್ಡ',
     '🧔🏼‍♂' => 'ಪುರುಷ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಗಡ್ಡ',
     '🧔🏽‍♂' => 'ಪುರುಷ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಗಡ್ಡ',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🚶🏾‍♀' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🚶🏿‍♀' => 'ನಡೆಯುತ್ತಿರುವ ಸ್ತ್ರೀ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
-    '🚶🏻‍➡' => 'ಪಾದಚಾರಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏼‍➡' => 'ಪಾದಚಾರಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏽‍➡' => 'ಪಾದಚಾರಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏾‍➡' => 'ಪಾದಚಾರಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🚶🏿‍➡' => 'ಪಾದಚಾರಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏻‍➡' => 'ಪಾದಚಾರಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏼‍➡' => 'ಪಾದಚಾರಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏽‍➡' => 'ಪಾದಚಾರಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏾‍➡' => 'ಪಾದಚಾರಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶🏿‍➡' => 'ಪಾದಚಾರಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
     '🧍🏻‍♂' => 'ವ್ಯಕ್ತಿ ನಿಂತಿರುವುದು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧍🏼‍♂' => 'ವ್ಯಕ್ತಿ ನಿಂತಿರುವುದು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧍🏽‍♂' => 'ವ್ಯಕ್ತಿ ನಿಂತಿರುವುದು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🧎🏾‍♀' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🧎🏿‍♀' => 'ಮಹಿಳೆ ಮಂಡಿಯೂರಿರುವುದು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
-    '🧎🏻‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏼‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏽‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏾‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎🏿‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏻‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏼‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏽‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏾‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎🏿‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
     '🧑🏻‍🦯' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧑🏼‍🦯' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧑🏽‍🦯' => 'ಕಟ್ಟಿಗೆಯೊಂದಿಗೆ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🏃🏾‍♀' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🏃🏿‍♀' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
-    '🏃🏻‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏼‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏽‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏾‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃🏿‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏻‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏼‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏽‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏾‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃🏿‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ, ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '👯🏻‍♀' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏼‍♀' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏽‍♀' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏾‍♀' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏿‍♀' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏻‍♂' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏼‍♂' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏽‍♂' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏾‍♂' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏿‍♂' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🧖🏻‍♂' => 'ಹಬೆಯ ಕೋಣೆಯಲ್ಲಿರುವ ಪುರುಷ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧖🏼‍♂' => 'ಹಬೆಯ ಕೋಣೆಯಲ್ಲಿರುವ ಪುರುಷ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧖🏽‍♂' => 'ಹಬೆಯ ಕೋಣೆಯಲ್ಲಿರುವ ಪುರುಷ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'ಕಾರ್ಟ್‌ವೀಲ್ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🤸🏾‍♀' => 'ಕಾರ್ಟ್‌ವೀಲ್ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🤸🏿‍♀' => 'ಕಾರ್ಟ್‌ವೀಲ್ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏻‍♀' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏼‍♀' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏽‍♀' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏾‍♀' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏿‍♀' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಮಹಿಳೆಯರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏻‍♂' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏼‍♂' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏽‍♂' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏾‍♂' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏿‍♂' => 'ಕುಸ್ತಿ ಮಾಡುತ್ತಿರುವ ಪುರುಷರು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🤽🏻‍♂' => 'ವಾಟರ್ ಪೋಲೊ ಆಡುತ್ತಿರುವ ಪುರುಷ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🤽🏼‍♂' => 'ವಾಟರ್ ಪೋಲೊ ಆಡುತ್ತಿರುವ ಪುರುಷ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🤽🏽‍♂' => 'ವಾಟರ್ ಪೋಲೊ ಆಡುತ್ತಿರುವ ಪುರುಷ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ಮಹಿಳೆ: ಗುಂಗುರು ಕೂದಲು',
     '👩‍🦳' => 'ಮಹಿಳೆ: ಬಿಳಿ ಕೂದಲು',
     '👩‍🦲' => 'ಮಹಿಳೆ: ಬಕ್ಕ ತಲೆ',
-    '🚶‍➡' => 'ಪಾದಚಾರಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🧎‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
-    '🏃‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🚶‍➡' => 'ಪಾದಚಾರಿ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🧎‍➡' => 'ಮಂಡಿಯೂರಿ ಕುಳಿತಿರುವ ವ್ಯಕ್ತಿ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
+    '🏃‍➡' => 'ಓಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಬಲಕ್ಕೆ ಮುಖ ಮಾಡಿರುವುದು',
     '👨‍👦' => 'ಕುಟುಂಬ: ಪುರುಷ, ಹುಡುಗ',
     '👨‍👧' => 'ಕುಟುಂಬ: ಪುರುಷ, ಹುಡುಗಿ',
     '👩‍👦' => 'ಕುಟುಂಬ: ಮಹಿಳೆ, ಹುಡುಗ',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ಸಾಮಾನ್ಯ ಗಾಲಿಕುರ್ಚಿಯಲ್ಲಿರುವ ಮಹಿಳೆ',
     '🏃‍♂' => 'ಓಡುತ್ತಿರುವ ಪುರುಷ',
     '🏃‍♀' => 'ಓಡುತ್ತಿರುವ ಸ್ತ್ರೀ',
+    '🧑‍🩰' => 'ಬ್ಯಾಲೆ ಡಾನ್ಸರ್',
     '👯‍♂' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಪುರುಷರು',
     '👯‍♀' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಸ್ತ್ರೀಯರು',
     '🧖‍♂' => 'ಹಬೆಯ ಕೋಣೆಯಲ್ಲಿರುವ ಪುರುಷ',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'ಬಿಸಿನೆಸ್ ಸೂಟ್ನಲ್ಲಿ ತೇಲುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🕴🏾' => 'ಬಿಸಿನೆಸ್ ಸೂಟ್ನಲ್ಲಿ ತೇಲುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🕴🏿' => 'ಬಿಸಿನೆಸ್ ಸೂಟ್ನಲ್ಲಿ ತೇಲುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏻' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏼' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏽' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏾' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '👯🏿' => 'ಪಾರ್ಟಿಯಲ್ಲಿನ ಮಹಿಳೆ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🧖🏻' => 'ಹಬೆಯ ಕೋಣೆಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧖🏼' => 'ಹಬೆಯ ಕೋಣೆಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🧖🏽' => 'ಹಬೆಯ ಕೋಣೆಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ಕಾರ್ಟ್‌ವೀಲ್ ಮಾಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🤸🏾' => 'ಕಾರ್ಟ್‌ವೀಲ್ ಮಾಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🤸🏿' => 'ಕಾರ್ಟ್‌ವೀಲ್ ಮಾಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏻' => 'ಕುಸ್ತಿಪಟುಗಳು: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏼' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏽' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏾' => 'ಕುಸ್ತಿಪಟುಗಳು: ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
+    '🤼🏿' => 'ಕುಸ್ತಿಪಟುಗಳು: ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🤽🏻' => 'ವಾಟರ್ ಪೋಲೊ ಆಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🤽🏼' => 'ವಾಟರ್ ಪೋಲೊ ಆಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ-ತಿಳಿ ಬಣ್ಣದ ಚರ್ಮ',
     '🤽🏽' => 'ವಾಟರ್ ಪೋಲೊ ಆಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ: ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'ಧ್ವಜ: ಚೀನಾ',
     '🇨🇴' => 'ಧ್ವಜ: ಕೊಲಂಬಿಯಾ',
     '🇨🇵' => 'ಧ್ವಜ: ಕ್ಲಿಪ್ಪರ್‌ಟಾನ್ ದ್ವೀಪ',
+    '🇨🇶' => 'ಧ್ವಜ: ಸಾರ್ಕ್',
     '🇨🇷' => 'ಧ್ವಜ: ಕೊಸ್ಟಾ ರಿಕಾ',
     '🇨🇺' => 'ಧ್ವಜ: ಕ್ಯೂಬಾ',
     '🇨🇻' => 'ಧ್ವಜ: ಕೇಪ್ ವರ್ಡೆ',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ಮಧ್ಯಮ ಬಣ್ಣದ ಚರ್ಮ',
     '🏾' => 'ಮಧ್ಯಮ-ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
     '🏿' => 'ಗಾಢ ಬಣ್ಣದ ಚರ್ಮ',
-    '🪉' => 'ಹಾರ್ಪ್',
-    '🪏' => 'ಸಲಿಕೆ',
-    '🪾' => 'ಎಲೆಯಿರದ ಮರ',
-    '🫆' => 'ಬೆರಳಚ್ಚು',
-    '🫜' => 'ಬೇರಲ್ಲಿ ಬೆಳೆಯುವ ತರಕಾರಿ',
-    '🫟' => 'ಸ್ಪ್ಲಾಟರ್',
-    '🫩' => 'ನಿದ್ದೆಗಣ್ಣಿನ ಮುಖ',
     '😀' => 'ಹಾಸ್ಯದ ಮುಖ',
     '😃' => 'ಬಾಯ್ತುಂಬಾ ನಗುತ್ತಿರುವ ನಗುಮುಖ',
     '😄' => 'ನಗುತ್ತಿರುವ ಕಣ್ಣುಗಳ ಮಂದಸ್ಮಿತ ಮುಖ',
@@ -2450,6 +2600,7 @@
     '😪' => 'ನಿದ್ದೆ ಮುಖ',
     '🤤' => 'ಜೊಲ್ಲು ಸುರಿಸುತ್ತಿರುವ ಮುಖ',
     '😴' => 'ನಿದ್ರಾ ಮುಖ',
+    '🫩' => 'ನಿದ್ದೆಗಣ್ಣಿನ ಮುಖ',
     '😷' => 'ವೈದ್ಯಕೀಯ ಮುಖವಾಡದ ಮುಖ',
     '🤒' => 'ಥರ್ಮಾಮೀಟರ್‌ನ ಮುಖ',
     '🤕' => 'ತಲೆ ಬ್ಯಾಂಡೇಜ್‌ನ ಮುಖ',
@@ -2476,6 +2627,7 @@
     '😯' => 'ಗೋಪ್ಯವಾಗಿರಿಸಿದ ಮುಖ',
     '😲' => 'ಆಶ್ಚರ್ಯಚಕಿತ ಮುಖ',
     '😳' => 'ಕೆಂಪೇರಿದ ಮುಖ',
+    '🫪' => 'ವಿರೂಪಗೊಳಿಸಿದ ಮುಖ',
     '🥺' => 'ಮನವೊಲಿಸುವ ಮುಖ',
     '🥹' => 'ಕಣ್ಣೀರನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಂಡಿರುವ ಮುಖ',
     '😦' => 'ಬಾಯಿ ತೆರೆದು ಗಂಟಿಕ್ಕಿರುವ ಮುಖ',
@@ -2547,6 +2699,7 @@
     '💋' => 'ಚುಂಬನದ ಗುರುತು',
     '💯' => 'ನೂರು ಪಾಯಿಂಟ್‌ಗಳು',
     '💢' => 'ಕೋಪದ ಚಿಹ್ನೆ',
+    '🫯' => 'ಜಗಳದ ಛಾಯೆ',
     '💥' => 'ಘರ್ಷಣೆ',
     '💫' => 'ತಿರುುಗುವಿಕೆ',
     '💦' => 'ಬೆವರಿನ ಹನಿಗಳು',
@@ -2670,6 +2823,7 @@
     '🧞' => 'ಜಿನೀ',
     '🧟' => 'ಜೊಂಬಿ',
     '🧌' => 'ಟ್ರೋಲ್',
+    '🫈' => 'ಮೈಕೂದಲಿನ ಪ್ರಾಣಿ',
     '💆' => 'ಫೇಸ್ ಮಸಾಜ್',
     '💇' => 'ಕೇಶವಿನ್ಯಾಸ',
     '🚶' => 'ಪಾದಚಾರಿ',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ತಬ್ಬಿಕೊಂಡಿರುವ ಜನರು',
     '👪' => 'ಕುಟುಂಬ',
     '👣' => 'ಹೆಜ್ಜೆ ಗುರುತುಗಳು',
+    '🫆' => 'ಬೆರಳಚ್ಚು',
     '🦰' => 'ಕೆಂಪು ಕೂದಲು',
     '🦱' => 'ಗುಂಗುರು ಕೂದಲು',
     '🦳' => 'ಬಿಳಿ ಕೂದಲು',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ನೀರು ಚಿಮ್ಮುತ್ತಿರುವ ತಿಮಿಂಗಿಲ',
     '🐋' => 'ತಿಮಿಂಗಿಲ',
     '🐬' => 'ಡಾಲ್ಫಿನ್',
+    '🫍' => 'ಓರ್ಕಾ',
     '🦭' => 'ಸೀಲ್',
     '🐟' => 'ಮೀನು',
     '🐠' => 'ಉಷ್ಣವಲಯ ಮೀನು',
@@ -2821,6 +2977,11 @@
     '🐚' => 'ಸ್ಪೈರಲ್ ಶೆಲ್',
     '🪸' => 'ಹವಳದ ಬಣ್ಣ',
     '🪼' => 'ಜೆಲ್ಲಿ ಮೀನು',
+    '🦀' => 'ಏಡಿ',
+    '🦞' => 'ಲೋಬ್‌ಸ್ಟರ್',
+    '🦐' => 'ಶ್ರಿಂಪ್',
+    '🦑' => 'ಸ್ಕ್ವಿಡ್',
+    '🦪' => 'ಮೃದ್ವಂಗಿ',
     '🐌' => 'ಬಸವನ ಹುಳು',
     '🦋' => 'ಚಿಟ್ಟೆ',
     '🐛' => 'ಕೀಟ',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ಖಾಲಿ ಗೂಡು',
     '🪺' => 'ಮೊಟ್ಟೆಗಳಿರುವ ಗೂಡು',
     '🍄' => 'ಅಣಬೆ',
+    '🪾' => 'ಎಲೆಯಿರದ ಮರ',
     '🍇' => 'ದ್ರಾಕ್ಷಿ',
     '🍈' => 'ಕರಬೂಜ',
     '🍉' => 'ಕಲ್ಲಂಗಡಿ',
@@ -2901,6 +3063,7 @@
     '🌰' => 'ಚೆಸ್ಟ್ ನಟ್',
     '🫚' => 'ಶುಂಠಿಯ ಬೇರು',
     '🫛' => 'ಬಟಾಣಿ',
+    '🫜' => 'ಬೇರಲ್ಲಿ ಬೆಳೆಯುವ ತರಕಾರಿ',
     '🍞' => 'ಬ್ರೆಡ್',
     '🥐' => 'ಕ್ರ್ವಾಸಾಂತ್',
     '🥖' => 'ಬಗೆಟ್ ಬ್ರೆಡ್',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ಡಂಪ್ಲಿಂಗ್',
     '🥠' => 'ಫಾರ್ಚ್ಯೂನ್ ಕುಕೀ',
     '🥡' => 'ಟೇಕ್‌ಔಟ್ ಬಾಕ್ಸ್',
-    '🦀' => 'ಏಡಿ',
-    '🦞' => 'ಲೋಬ್‌ಸ್ಟರ್',
-    '🦐' => 'ಶ್ರಿಂಪ್',
-    '🦑' => 'ಸ್ಕ್ವಿಡ್',
-    '🦪' => 'ಮೃದ್ವಂಗಿ',
     '🍦' => 'ಮೆತ್ತಗಿನ ಐಸ್ ಕ್ರೀಮ್',
     '🍧' => 'ಕತ್ತರಿಸಿದ ಐಸ್',
     '🍨' => 'ಐಸ್ ಕ್ರೀಮ್',
@@ -3007,6 +3165,7 @@
     '🧭' => 'ದಿಕ್ಸೂಚಿ',
     '🏔' => 'ಹಿಮ ಆವೃತ ಪರ್ವತ',
     '⛰' => 'ಪರ್ವತ',
+    '🛘' => 'ಭೂಕುಸಿತ',
     '🌋' => 'ಜ್ವಾಲಾಮುಖಿ',
     '🗻' => 'ಮೌಂಟ್ ಫುಜಿ',
     '🏕' => 'ಕ್ಯಾಂಪಿಂಗ್',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ಹೆಡ್‌ಫೋನ್',
     '📻' => 'ರೇಡಿಯೊ',
     '🎷' => 'ಸ್ಯಾಕ್ಸೋಫೋನ್',
+    '🎺' => 'ಸಂಗೀತ ವಾದ್ಯ',
+    '🪊' => 'ಟ್ರಂಬೋನ್',
     '🪗' => 'ಅಕಾರ್ಡಿಯನ್‌',
     '🎸' => 'ಗಿಟಾರ್',
     '🎹' => 'ಸಂಗೀತ ಕೀಬೋರ್ಡ್',
-    '🎺' => 'ಸಂಗೀತ ವಾದ್ಯ',
     '🎻' => 'ಪಿಟೀಲು',
     '🪕' => 'ಬಂಜೋ',
     '🥁' => 'ಡ್ರಮ್',
     '🪘' => 'ಲಾಂಗ್‌ ಡ್ರಮ್‌',
     '🪇' => 'ಮರಾಕಸ್',
     '🪈' => 'ಕೊಳಲು',
+    '🪉' => 'ಹಾರ್ಪ್',
     '📱' => 'ಮೊಬೈಲ್ ಫೋನ್',
     '📲' => 'ಬಾಣದ ಗುರುತಿನೊಂದಿಗೆ ಮೊಬೈಲ್ ಫೋನ್',
     '☎' => 'ಫೋನ್‌',
@@ -3430,8 +3591,9 @@
     '📑' => 'ಬುಕ್‌ಮಾರ್ಕ್ ಟ್ಯಾಬ್‌ಗಳು',
     '🔖' => 'ಬುಕ್‌‌ಮಾರ್ಕ್',
     '🏷' => 'ಲೇಬಲ್',
-    '💰' => 'ಹಣದ ಚೀಲ',
     '🪙' => 'ನಾಣ್ಯ',
+    '💰' => 'ಹಣದ ಚೀಲ',
+    '🪎' => 'ನಿಧಿ ಪೆಟ್ಟಿಗೆ',
     '💴' => 'ಯೆನ್ ಬ್ಯಾಂಕ್‌ನೋಟ್',
     '💵' => 'ಡಾಲರ್ ಬ್ಯಾಂಕ್‌ನೋಟ್',
     '💶' => 'ಯುರೋ ಬ್ಯಾಂಕ್‌ನೋಟ್',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ಪರಿಕರಪೆಟ್ಟಿಗೆ',
     '🧲' => 'ಮ್ಯಾಗ್ನೆಟ್',
     '🪜' => 'ಏಣಿ',
+    '🪏' => 'ಸಲಿಕೆ',
     '⚗' => 'ಭಟ್ಟಿಪಾತ್ರೆ',
     '🧪' => 'ಟೆಸ್ಟ್ ಟ್ಯೂಬ್',
     '🧫' => 'ಪೆಟ್ರಿ ಡಿಶ್',
@@ -3697,6 +3860,7 @@
     '✴' => 'ಎಂಟು ಬಿಂದುಗಳ ನಕ್ಷತ್ರ',
     '❇' => 'ಸ್ಪಾರ್ಕಲ್',
     '™' => 'ಟ್ರೇಡ್ ಮಾರ್ಕ್',
+    '🫟' => 'ಸ್ಪ್ಲಾಟರ್',
     '🔠' => 'ಇನ್‌ಪುಟ್ ಲ್ಯಾಟಿನ್ ಅಪ್ಪರ್‌ಕೇಸ್',
     '🔡' => 'ಇನ್‌‌ಪುಟ್ ಲ್ಯಾಟಿನ್ ಲೋಯರ್‌ಕೇಸ್',
     '🔢' => 'ಇನ್‌ಪುಟ್ ಸಂಖ್ಯೆಗಳು',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kok.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kok.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kok.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-kok.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'उमो: बायल, बायल, गाढ कातीचो रंग, मध्यम कातीचो रंग',
     '👩🏿‍❤‍💋‍👩🏾' => 'उमो: बायल, बायल, गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
     '👩🏿‍❤‍💋‍👩🏿' => 'उमो: बायल, बायल, गाढ कातीचो रंग',
+    '🧑🏻‍🫯‍🧑🏼' => 'लोक मल्लयुध्द करतात: उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '🧑🏻‍🫯‍🧑🏽' => 'लोक मल्लयुध्द करतात: उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '🧑🏻‍🫯‍🧑🏾' => 'लोक मल्लयुध्द करतात: उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '🧑🏻‍🫯‍🧑🏿' => 'लोक मल्लयुध्द करतात: उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '🧑🏼‍🫯‍🧑🏻' => 'लोक मल्लयुध्द करतात: मध्यम-उजळ कातीचो रंग, उजळ कातीचो रंग',
+    '🧑🏼‍🫯‍🧑🏽' => 'लोक मल्लयुध्द करतात: मध्यम-उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '🧑🏼‍🫯‍🧑🏾' => 'लोक मल्लयुध्द करतात: मध्यम-उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '🧑🏼‍🫯‍🧑🏿' => 'लोक मल्लयुध्द करतात: मध्यम-उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '🧑🏽‍🫯‍🧑🏻' => 'लोक मल्लयुध्द करतात: मध्यम कातीचो रंग, उजळ कातीचो रंग',
+    '🧑🏽‍🫯‍🧑🏼' => 'लोक मल्लयुध्द करतात: मध्यम कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '🧑🏽‍🫯‍🧑🏾' => 'लोक मल्लयुध्द करतात: मध्यम कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '🧑🏽‍🫯‍🧑🏿' => 'लोक मल्लयुध्द करतात: मध्यम कातीचो रंग, गाढ कातीचो रंग',
+    '🧑🏾‍🫯‍🧑🏻' => 'लोक मल्लयुध्द करतात: मध्यम-गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '🧑🏾‍🫯‍🧑🏼' => 'लोक मल्लयुध्द करतात: मध्यम-गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '🧑🏾‍🫯‍🧑🏽' => 'लोक मल्लयुध्द करतात: मध्यम-गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '🧑🏾‍🫯‍🧑🏿' => 'लोक मल्लयुध्द करतात: मध्यम-गाढ कातीचो रंग, गाढ कातीचो रंग',
+    '🧑🏿‍🫯‍🧑🏻' => 'लोक मल्लयुध्द करतात: गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '🧑🏿‍🫯‍🧑🏼' => 'लोक मल्लयुध्द करतात: गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '🧑🏿‍🫯‍🧑🏽' => 'लोक मल्लयुध्द करतात: गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '🧑🏿‍🫯‍🧑🏾' => 'लोक मल्लयुध्द करतात: गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
     '🧑🏻‍❤‍🧑🏼' => 'काळीज आसपी जोडपें: व्यक्ती, व्यक्ती, उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
     '🧑🏻‍❤‍🧑🏽' => 'काळीज आसपी जोडपें: व्यक्ती, व्यक्ती, उजळ कातीचो रंग, मध्यम कातीचो रंग',
     '🧑🏻‍❤‍🧑🏾' => 'काळीज आसपी जोडपें: व्यक्ती, व्यक्ती, उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'काळीज आसपी जोडपें: व्यक्ती, व्यक्ती, गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
     '🧑🏿‍❤‍🧑🏽' => 'काळीज आसपी जोडपें: व्यक्ती, व्यक्ती, गाढ कातीचो रंग, मध्यम कातीचो रंग',
     '🧑🏿‍❤‍🧑🏾' => 'काळीज आसपी जोडपें: व्यक्ती, व्यक्ती, गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '🧑🏻‍🐰‍🧑🏼' => 'सोंश्यासारके कान घाल्ले लोक: उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '🧑🏻‍🐰‍🧑🏽' => 'सोंश्यासारके कान घाल्ले लोक: उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '🧑🏻‍🐰‍🧑🏾' => 'सोंश्यासारके कान घाल्ले लोक: उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '🧑🏻‍🐰‍🧑🏿' => 'सोंश्यासारके कान घाल्ले लोक: उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '🧑🏼‍🐰‍🧑🏻' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम-उजळ कातीचो रंग, उजळ कातीचो रंग',
+    '🧑🏼‍🐰‍🧑🏽' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम-उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '🧑🏼‍🐰‍🧑🏾' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम-उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '🧑🏼‍🐰‍🧑🏿' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम-उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '🧑🏽‍🐰‍🧑🏻' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम कातीचो रंग, उजळ कातीचो रंग',
+    '🧑🏽‍🐰‍🧑🏼' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '🧑🏽‍🐰‍🧑🏾' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '🧑🏽‍🐰‍🧑🏿' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम कातीचो रंग, गाढ कातीचो रंग',
+    '🧑🏾‍🐰‍🧑🏻' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम-गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '🧑🏾‍🐰‍🧑🏼' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम-गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '🧑🏾‍🐰‍🧑🏽' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम-गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '🧑🏾‍🐰‍🧑🏿' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम-गाढ कातीचो रंग, गाढ कातीचो रंग',
+    '🧑🏿‍🐰‍🧑🏻' => 'सोंश्यासारके कान घाल्ले लोक: गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '🧑🏿‍🐰‍🧑🏼' => 'सोंश्यासारके कान घाल्ले लोक: गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '🧑🏿‍🐰‍🧑🏽' => 'सोंश्यासारके कान घाल्ले लोक: गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '🧑🏿‍🐰‍🧑🏾' => 'सोंश्यासारके कान घाल्ले लोक: गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👨🏻‍🫯‍👨🏼' => 'दादल्यांचें मल्लयुध्द: उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👨🏻‍🫯‍👨🏽' => 'दादल्यांचें मल्लयुध्द: उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '👨🏻‍🫯‍👨🏾' => 'दादल्यांचें मल्लयुध्द: उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👨🏻‍🫯‍👨🏿' => 'दादल्यांचें मल्लयुध्द: उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '👨🏼‍🫯‍👨🏻' => 'दादल्यांचें मल्लयुध्द: मध्यम-उजळ कातीचो रंग, उजळ कातीचो रंग',
+    '👨🏼‍🫯‍👨🏽' => 'दादल्यांचें मल्लयुध्द: मध्यम-उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '👨🏼‍🫯‍👨🏾' => 'दादल्यांचें मल्लयुध्द: मध्यम-उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👨🏼‍🫯‍👨🏿' => 'दादल्यांचें मल्लयुध्द: मध्यम-उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '👨🏽‍🫯‍👨🏻' => 'दादल्यांचें मल्लयुध्द: मध्यम कातीचो रंग, उजळ कातीचो रंग',
+    '👨🏽‍🫯‍👨🏼' => 'दादल्यांचें मल्लयुध्द: मध्यम कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👨🏽‍🫯‍👨🏾' => 'दादल्यांचें मल्लयुध्द: मध्यम कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👨🏽‍🫯‍👨🏿' => 'दादल्यांचें मल्लयुध्द: मध्यम कातीचो रंग, गाढ कातीचो रंग',
+    '👨🏾‍🫯‍👨🏻' => 'दादल्यांचें मल्लयुध्द: मध्यम-गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '👨🏾‍🫯‍👨🏼' => 'दादल्यांचें मल्लयुध्द: मध्यम-गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👨🏾‍🫯‍👨🏽' => 'दादल्यांचें मल्लयुध्द: मध्यम-गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '👨🏾‍🫯‍👨🏿' => 'दादल्यांचें मल्लयुध्द: मध्यम-गाढ कातीचो रंग, गाढ कातीचो रंग',
+    '👨🏿‍🫯‍👨🏻' => 'दादल्यांचें मल्लयुध्द: गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '👨🏿‍🫯‍👨🏼' => 'दादल्यांचें मल्लयुध्द: गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👨🏿‍🫯‍👨🏽' => 'दादल्यांचें मल्लयुध्द: गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '👨🏿‍🫯‍👨🏾' => 'दादल्यांचें मल्लयुध्द: गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
     '👨🏻‍❤‍👨🏻' => 'काळीज आसपी जोडपें: दादलो, दादलो, उजळ कातीचो रंग',
     '👨🏻‍❤‍👨🏼' => 'काळीज आसपी जोडपें: दादलो, दादलो, उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
     '👨🏻‍❤‍👨🏽' => 'काळीज आसपी जोडपें: दादलो, दादलो, उजळ कातीचो रंग, मध्यम कातीचो रंग',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'काळीज आसपी जोडपें: दादलो, दादलो, गाढ कातीचो रंग, मध्यम कातीचो रंग',
     '👨🏿‍❤‍👨🏾' => 'काळीज आसपी जोडपें: दादलो, दादलो, गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
     '👨🏿‍❤‍👨🏿' => 'काळीज आसपी जोडपें: दादलो, दादलो, गाढ कातीचो रंग',
+    '👨🏻‍🐰‍👨🏼' => 'सोंश्यासारके कान घाल्ले दादले: उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👨🏻‍🐰‍👨🏽' => 'सोंश्यासारके कान घाल्ले दादले: उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '👨🏻‍🐰‍👨🏾' => 'सोंश्यासारके कान घाल्ले दादले: उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👨🏻‍🐰‍👨🏿' => 'सोंश्यासारके कान घाल्ले दादले: उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '👨🏼‍🐰‍👨🏻' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम-उजळ कातीचो रंग, उजळ कातीचो रंग',
+    '👨🏼‍🐰‍👨🏽' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम-उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '👨🏼‍🐰‍👨🏾' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम-उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👨🏼‍🐰‍👨🏿' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम-उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '👨🏽‍🐰‍👨🏻' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम कातीचो रंग, उजळ कातीचो रंग',
+    '👨🏽‍🐰‍👨🏼' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👨🏽‍🐰‍👨🏾' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👨🏽‍🐰‍👨🏿' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम कातीचो रंग, गाढ कातीचो रंग',
+    '👨🏾‍🐰‍👨🏻' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम-गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '👨🏾‍🐰‍👨🏼' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम-गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👨🏾‍🐰‍👨🏽' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम-गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '👨🏾‍🐰‍👨🏿' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम-गाढ कातीचो रंग, गाढ कातीचो रंग',
+    '👨🏿‍🐰‍👨🏻' => 'सोंश्यासारके कान घाल्ले दादले: गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '👨🏿‍🐰‍👨🏼' => 'सोंश्यासारके कान घाल्ले दादले: गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👨🏿‍🐰‍👨🏽' => 'सोंश्यासारके कान घाल्ले दादले: गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '👨🏿‍🐰‍👨🏾' => 'सोंश्यासारके कान घाल्ले दादले: गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👩🏻‍🫯‍👩🏼' => 'बायल मल्लयुध्द: उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👩🏻‍🫯‍👩🏽' => 'बायल मल्लयुध्द: उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '👩🏻‍🫯‍👩🏾' => 'बायल मल्लयुध्द: उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👩🏻‍🫯‍👩🏿' => 'बायल मल्लयुध्द: उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '👩🏼‍🫯‍👩🏻' => 'बायल मल्लयुध्द: मध्यम-उजळ कातीचो रंग, उजळ कातीचो रंग',
+    '👩🏼‍🫯‍👩🏽' => 'बायल मल्लयुध्द: मध्यम-उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '👩🏼‍🫯‍👩🏾' => 'बायल मल्लयुध्द: मध्यम-उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👩🏼‍🫯‍👩🏿' => 'बायल मल्लयुध्द: मध्यम-उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '👩🏽‍🫯‍👩🏻' => 'बायल मल्लयुध्द: मध्यम कातीचो रंग, उजळ कातीचो रंग',
+    '👩🏽‍🫯‍👩🏼' => 'बायल मल्लयुध्द: मध्यम कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👩🏽‍🫯‍👩🏾' => 'बायल मल्लयुध्द: मध्यम कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👩🏽‍🫯‍👩🏿' => 'बायल मल्लयुध्द: मध्यम कातीचो रंग, गाढ कातीचो रंग',
+    '👩🏾‍🫯‍👩🏻' => 'बायल मल्लयुध्द: मध्यम-गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '👩🏾‍🫯‍👩🏼' => 'बायल मल्लयुध्द: मध्यम-गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👩🏾‍🫯‍👩🏽' => 'बायल मल्लयुध्द: मध्यम-गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '👩🏾‍🫯‍👩🏿' => 'बायल मल्लयुध्द: मध्यम-गाढ कातीचो रंग, गाढ कातीचो रंग',
+    '👩🏿‍🫯‍👩🏻' => 'बायल मल्लयुध्द: गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '👩🏿‍🫯‍👩🏼' => 'बायल मल्लयुध्द: गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👩🏿‍🫯‍👩🏽' => 'बायल मल्लयुध्द: गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '👩🏿‍🫯‍👩🏾' => 'बायल मल्लयुध्द: गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
     '👩🏻‍❤‍👨🏻' => 'काळीज आसपी जोडपें: बायल, दादलो, उजळ कातीचो रंग',
     '👩🏻‍❤‍👨🏼' => 'काळीज आसपी जोडपें: बायल, दादलो, उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
     '👩🏻‍❤‍👨🏽' => 'काळीज आसपी जोडपें: बायल, दादलो, उजळ कातीचो रंग, मध्यम कातीचो रंग',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'काळीज आसपी जोडपें: बायल, बायल, गाढ कातीचो रंग, मध्यम कातीचो रंग',
     '👩🏿‍❤‍👩🏾' => 'काळीज आसपी जोडपें: बायल, बायल, गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
     '👩🏿‍❤‍👩🏿' => 'काळीज आसपी जोडपें: बायल, बायल, गाढ कातीचो रंग',
+    '👩🏻‍🐰‍👩🏼' => 'सोंश्यासारके कान घाल्ल्यो बायलो: उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👩🏻‍🐰‍👩🏽' => 'सोंश्यासारके कान घाल्ल्यो बायलो: उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '👩🏻‍🐰‍👩🏾' => 'सोंश्यासारके कान घाल्ल्यो बायलो: उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👩🏻‍🐰‍👩🏿' => 'सोंश्यासारके कान घाल्ल्यो बायलो: उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '👩🏼‍🐰‍👩🏻' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम-उजळ कातीचो रंग, उजळ कातीचो रंग',
+    '👩🏼‍🐰‍👩🏽' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम-उजळ कातीचो रंग, मध्यम कातीचो रंग',
+    '👩🏼‍🐰‍👩🏾' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम-उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👩🏼‍🐰‍👩🏿' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम-उजळ कातीचो रंग, गाढ कातीचो रंग',
+    '👩🏽‍🐰‍👩🏻' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम कातीचो रंग, उजळ कातीचो रंग',
+    '👩🏽‍🐰‍👩🏼' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👩🏽‍🐰‍👩🏾' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम कातीचो रंग, मध्यम-गाढ कातीचो रंग',
+    '👩🏽‍🐰‍👩🏿' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम कातीचो रंग, गाढ कातीचो रंग',
+    '👩🏾‍🐰‍👩🏻' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम-गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '👩🏾‍🐰‍👩🏼' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम-गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👩🏾‍🐰‍👩🏽' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम-गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '👩🏾‍🐰‍👩🏿' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम-गाढ कातीचो रंग, गाढ कातीचो रंग',
+    '👩🏿‍🐰‍👩🏻' => 'सोंश्यासारके कान घाल्ल्यो बायलो: गाढ कातीचो रंग, उजळ कातीचो रंग',
+    '👩🏿‍🐰‍👩🏼' => 'सोंश्यासारके कान घाल्ल्यो बायलो: गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
+    '👩🏿‍🐰‍👩🏽' => 'सोंश्यासारके कान घाल्ल्यो बायलो: गाढ कातीचो रंग, मध्यम कातीचो रंग',
+    '👩🏿‍🐰‍👩🏾' => 'सोंश्यासारके कान घाल्ल्यो बायलो: गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
     '🧑🏻‍🤝‍🧑🏻' => 'एकमेकांचे हात धरिल्ले लोक: उजळ कातीचो रंग',
     '🧑🏻‍🤝‍🧑🏼' => 'एकमेकांचे हात धरिल्ले लोक: उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
     '🧑🏻‍🤝‍🧑🏽' => 'एकमेकांचे हात धरिल्ले लोक: उजळ कातीचो रंग, मध्यम कातीचो रंग',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'कुटुंब: बायल, बायल, चलो, चलो',
     '👩‍👩‍👧‍👧' => 'कुटुंब: बायल, बायल, चली, चली',
     '🧑‍🧑‍🧒‍🧒' => 'कुटुंब: प्रौढ, प्रौढ, भुरगें, भुरगें',
-    '🚶🏻‍♀‍➡' => 'बायल चलता उजव्यान पळोवप',
-    '🚶🏼‍♀‍➡' => 'बायल चलता उजव्यान पळोवप',
-    '🚶🏽‍♀‍➡' => 'बायल चलता उजव्यान पळोवप',
-    '🚶🏾‍♀‍➡' => 'बायल चलता उजव्यान पळोवप',
-    '🚶🏿‍♀‍➡' => 'बायल चलता उजव्यान पळोवप',
-    '🚶🏻‍♂‍➡' => 'दादलो चलता उजव्यान पळोवप',
-    '🚶🏼‍♂‍➡' => 'दादलो चलता उजव्यान पळोवप',
-    '🚶🏽‍♂‍➡' => 'दादलो चलता उजव्यान पळोवप',
-    '🚶🏾‍♂‍➡' => 'दादलो चलता उजव्यान पळोवप',
-    '🚶🏿‍♂‍➡' => 'दादलो चलता उजव्यान पळोवप',
-    '🧎🏻‍♀‍➡' => 'दिमी घालून बशिल्ली बायल उजव्यान पळोवप',
-    '🧎🏼‍♀‍➡' => 'दिमी घालून बशिल्ली बायल उजव्यान पळोवप',
-    '🧎🏽‍♀‍➡' => 'दिमी घालून बशिल्ली बायल उजव्यान पळोवप',
-    '🧎🏾‍♀‍➡' => 'दिमी घालून बशिल्ली बायल उजव्यान पळोवप',
-    '🧎🏿‍♀‍➡' => 'दिमी घालून बशिल्ली बायल उजव्यान पळोवप',
-    '🧎🏻‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो उजव्यान पळोवप',
-    '🧎🏼‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो उजव्यान पळोवप',
-    '🧎🏽‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो उजव्यान पळोवप',
-    '🧎🏾‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो उजव्यान पळोवप',
-    '🧎🏿‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो उजव्यान पळोवप',
-    '🧑🏻‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती उजव्यान पळोवप',
-    '🧑🏼‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती उजव्यान पळोवप',
-    '🧑🏽‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती उजव्यान पळोवप',
-    '🧑🏾‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती उजव्यान पळोवप',
-    '🧑🏿‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती उजव्यान पळोवप',
-    '👨🏻‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो उजव्यान पळोवप',
-    '👨🏼‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो उजव्यान पळोवप',
-    '👨🏽‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो उजव्यान पळोवप',
-    '👨🏾‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो उजव्यान पळोवप',
-    '👨🏿‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो उजव्यान पळोवप',
-    '👩🏻‍🦯‍➡' => 'आधाराची बडी घेवंन बायल उजव्यान पळोवप',
-    '👩🏼‍🦯‍➡' => 'आधाराची बडी घेवंन बायल उजव्यान पळोवप',
-    '👩🏽‍🦯‍➡' => 'आधाराची बडी घेवंन बायल उजव्यान पळोवप',
-    '👩🏾‍🦯‍➡' => 'आधाराची बडी घेवंन बायल उजव्यान पळोवप',
-    '👩🏿‍🦯‍➡' => 'आधाराची बडी घेवंन बायल उजव्यान पळोवप',
-    '🧑🏻‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '🧑🏼‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '🧑🏽‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '🧑🏾‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '🧑🏿‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '👨🏻‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो उजव्यान पळोवप',
-    '👨🏼‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो उजव्यान पळोवप',
-    '👨🏽‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो उजव्यान पळोवप',
-    '👨🏾‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो उजव्यान पळोवप',
-    '👨🏿‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो उजव्यान पळोवप',
-    '👩🏻‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '👩🏼‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '👩🏽‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '👩🏾‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '👩🏿‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '🧑🏻‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '🧑🏼‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '🧑🏽‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '🧑🏾‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '🧑🏿‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '👨🏻‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो उजव्यान पळोवप',
-    '👨🏼‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो उजव्यान पळोवप',
-    '👨🏽‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो उजव्यान पळोवप',
-    '👨🏾‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो उजव्यान पळोवप',
-    '👨🏿‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो उजव्यान पळोवप',
-    '👩🏻‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '👩🏼‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '👩🏽‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '👩🏾‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '👩🏿‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '🏃🏻‍♀‍➡' => 'बायल धांवता उजव्यान पळोवप',
-    '🏃🏼‍♀‍➡' => 'बायल धांवता उजव्यान पळोवप',
-    '🏃🏽‍♀‍➡' => 'बायल धांवता उजव्यान पळोवप',
-    '🏃🏾‍♀‍➡' => 'बायल धांवता उजव्यान पळोवप',
-    '🏃🏿‍♀‍➡' => 'बायल धांवता उजव्यान पळोवप',
-    '🏃🏻‍♂‍➡' => 'दादलो धांवता उजव्यान पळोवप',
-    '🏃🏼‍♂‍➡' => 'दादलो धांवता उजव्यान पळोवप',
-    '🏃🏽‍♂‍➡' => 'दादलो धांवता उजव्यान पळोवप',
-    '🏃🏾‍♂‍➡' => 'दादलो धांवता उजव्यान पळोवप',
-    '🏃🏿‍♂‍➡' => 'दादलो धांवता उजव्यान पळोवप',
+    '🚶🏻‍♀‍➡' => 'बायल चलता: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏼‍♀‍➡' => 'बायल चलता: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏽‍♀‍➡' => 'बायल चलता: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏾‍♀‍➡' => 'बायल चलता: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏿‍♀‍➡' => 'बायल चलता: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏻‍♂‍➡' => 'दादलो चलता: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏼‍♂‍➡' => 'दादलो चलता: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏽‍♂‍➡' => 'दादलो चलता: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏾‍♂‍➡' => 'दादलो चलता: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏿‍♂‍➡' => 'दादलो चलता: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏻‍♀‍➡' => 'दिमी घालून बशिल्ली बायल: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏼‍♀‍➡' => 'दिमी घालून बशिल्ली बायल: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏽‍♀‍➡' => 'दिमी घालून बशिल्ली बायल: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏾‍♀‍➡' => 'दिमी घालून बशिल्ली बायल: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏿‍♀‍➡' => 'दिमी घालून बशिल्ली बायल: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏻‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏼‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏽‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏾‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏿‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏻‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏼‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏽‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏾‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏿‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏻‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏼‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏽‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '👨🏾‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏿‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏻‍🦯‍➡' => 'आधाराची बडी घेवंन बायल: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏼‍🦯‍➡' => 'आधाराची बडी घेवंन बायल: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏽‍🦯‍➡' => 'आधाराची बडी घेवंन बायल: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '👩🏾‍🦯‍➡' => 'आधाराची बडी घेवंन बायल: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏿‍🦯‍➡' => 'आधाराची बडी घेवंन बायल: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏻‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏼‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏽‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏾‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏿‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏻‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏼‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏽‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '👨🏾‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏿‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏻‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏼‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏽‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '👩🏾‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏿‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏻‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏼‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏽‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏾‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧑🏿‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏻‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏼‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏽‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '👨🏾‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👨🏿‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏻‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏼‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏽‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '👩🏾‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👩🏿‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏻‍♀‍➡' => 'बायल धांवता: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏼‍♀‍➡' => 'बायल धांवता: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏽‍♀‍➡' => 'बायल धांवता: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏾‍♀‍➡' => 'बायल धांवता: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏿‍♀‍➡' => 'बायल धांवता: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏻‍♂‍➡' => 'दादलो धांवता: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏼‍♂‍➡' => 'दादलो धांवता: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏽‍♂‍➡' => 'दादलो धांवता: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏾‍♂‍➡' => 'दादलो धांवता: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏿‍♂‍➡' => 'दादलो धांवता: गाढ कातीचो रंग, उजव्यान पळोवप',
     '🫱🏻‍🫲🏼' => 'शेकहँड: उजळ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
     '🫱🏻‍🫲🏽' => 'शेकहँड: उजळ कातीचो रंग, मध्यम कातीचो रंग',
     '🫱🏻‍🫲🏾' => 'शेकहँड: उजळ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'शेकहँड: गाढ कातीचो रंग, मध्यम-उजळ कातीचो रंग',
     '🫱🏿‍🫲🏽' => 'शेकहँड: गाढ कातीचो रंग, मध्यम कातीचो रंग',
     '🫱🏿‍🫲🏾' => 'शेकहँड: गाढ कातीचो रंग, मध्यम-गाढ कातीचो रंग',
-    '🚶‍♀‍➡' => 'बायल चलता उजव्यान पळोवप',
-    '🚶‍♂‍➡' => 'दादलो चलता उजव्यान पळोवप',
-    '🧎‍♀‍➡' => 'दिमी घालून बशिल्ली बायल उजव्यान पळोवप',
-    '🧎‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो उजव्यान पळोवप',
-    '🧑‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती उजव्यान पळोवप',
-    '👨‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो उजव्यान पळोवप',
-    '👩‍🦯‍➡' => 'आधाराची बडी घेवंन बायल उजव्यान पळोवप',
-    '🧑‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '👨‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो उजव्यान पळोवप',
-    '👩‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '🧑‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती उजव्यान पळोवप',
-    '👨‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो उजव्यान पळोवप',
-    '👩‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल उजव्यान पळोवप',
-    '🏃‍♀‍➡' => 'बायल धांवता उजव्यान पळोवप',
-    '🏃‍♂‍➡' => 'दादलो धांवता उजव्यान पळोवप',
+    '🚶‍♀‍➡' => 'बायल चलता: उजव्यान पळोवप',
+    '🚶‍♂‍➡' => 'दादलो चलता: उजव्यान पळोवप',
+    '🧎‍♀‍➡' => 'दिमी घालून बशिल्ली बायल: उजव्यान पळोवप',
+    '🧎‍♂‍➡' => 'दिमी घालून बशिल्लो दादलो: उजव्यान पळोवप',
+    '🧑‍🦯‍➡' => 'आधाराची बडी घेवंन व्यक्ती: उजव्यान पळोवप',
+    '👨‍🦯‍➡' => 'आधाराची बडी घेवंन दादलो: उजव्यान पळोवप',
+    '👩‍🦯‍➡' => 'आधाराची बडी घेवंन बायल: उजव्यान पळोवप',
+    '🧑‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर व्यक्ती: उजव्यान पळोवप',
+    '👨‍🦼‍➡' => 'मोटर आसपी व्हीलचॅराचेर दादलो: उजव्यान पळोवप',
+    '👩‍🦼‍➡' => 'मोटर आसपी व्हिलचॅराचेर बायल: उजव्यान पळोवप',
+    '🧑‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर व्यक्ती: उजव्यान पळोवप',
+    '👨‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर दादलो: उजव्यान पळोवप',
+    '👩‍🦽‍➡' => 'मॅन्युअल व्हिलचॅराचेर बायल: उजव्यान पळोवप',
+    '🏃‍♀‍➡' => 'बायल धांवता: उजव्यान पळोवप',
+    '🏃‍♂‍➡' => 'दादलो धांवता: उजव्यान पळोवप',
     '👩‍❤‍👨' => 'काळीज आसपी जोडपें: बायल, दादलो',
     '👨‍❤‍👨' => 'काळीज आसपी जोडपें: दादलो, दादलो',
     '👩‍❤‍👩' => 'काळीज आसपी जोडपें: बायल, बायल',
@@ -437,6 +557,11 @@
     '🧑🏽‍🦲' => 'व्यक्ती: मध्यम कातीचो रंग, तकलो',
     '🧑🏾‍🦲' => 'व्यक्ती: मध्यम-गाढ कातीचो रंग, तकलो',
     '🧑🏿‍🦲' => 'व्यक्ती: गाढ कातीचो रंग, तकलो',
+    '🧑🏻‍🩰' => 'बॅले नर्तक: उजळ कातीचो रंग',
+    '🧑🏼‍🩰' => 'बॅले नर्तक: मध्यम-उजळ कातीचो रंग',
+    '🧑🏽‍🩰' => 'बॅले नर्तक: मध्यम कातीचो रंग',
+    '🧑🏾‍🩰' => 'बॅले नर्तक: मध्यम-गाढ कातीचो रंग',
+    '🧑🏿‍🩰' => 'बॅले नर्तक: गाढ कातीचो रंग',
     '🧔🏻‍♂' => 'दादलो मनीस: उजळ कातीचो रंग, खाड',
     '🧔🏼‍♂' => 'दादलो मनीस: मध्यम-उजळ कातीचो रंग, खाड',
     '🧔🏽‍♂' => 'दादलो मनीस: मध्यम कातीचो रंग, खाड',
@@ -1027,11 +1152,11 @@
     '🚶🏽‍♀' => 'बायल चलता: मध्यम कातीचो रंग',
     '🚶🏾‍♀' => 'बायल चलता: मध्यम-गाढ कातीचो रंग',
     '🚶🏿‍♀' => 'बायल चलता: गाढ कातीचो रंग',
-    '🚶🏻‍➡' => 'व्यक्ती चलता उजव्यान पळोवप',
-    '🚶🏼‍➡' => 'व्यक्ती चलता उजव्यान पळोवप',
-    '🚶🏽‍➡' => 'व्यक्ती चलता उजव्यान पळोवप',
-    '🚶🏾‍➡' => 'व्यक्ती चलता उजव्यान पळोवप',
-    '🚶🏿‍➡' => 'व्यक्ती चलता उजव्यान पळोवप',
+    '🚶🏻‍➡' => 'व्यक्ती चलता: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏼‍➡' => 'व्यक्ती चलता: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏽‍➡' => 'व्यक्ती चलता: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏾‍➡' => 'व्यक्ती चलता: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🚶🏿‍➡' => 'व्यक्ती चलता: गाढ कातीचो रंग, उजव्यान पळोवप',
     '🧍🏻‍♂' => 'उबो राविल्लो दादलो: उजळ कातीचो रंग',
     '🧍🏼‍♂' => 'उबो राविल्लो दादलो: मध्यम-उजळ कातीचो रंग',
     '🧍🏽‍♂' => 'उबो राविल्लो दादलो: मध्यम कातीचो रंग',
@@ -1052,11 +1177,11 @@
     '🧎🏽‍♀' => 'दिमी घालून बशिल्ली बायल: मध्यम कातीचो रंग',
     '🧎🏾‍♀' => 'दिमी घालून बशिल्ली बायल: मध्यम-गाढ कातीचो रंग',
     '🧎🏿‍♀' => 'दिमी घालून बशिल्ली बायल: गाढ कातीचो रंग',
-    '🧎🏻‍➡' => 'व्यक्ती दिमयेर बसला उजव्यान पळोवप',
-    '🧎🏼‍➡' => 'व्यक्ती दिमयेर बसला उजव्यान पळोवप',
-    '🧎🏽‍➡' => 'व्यक्ती दिमयेर बसला उजव्यान पळोवप',
-    '🧎🏾‍➡' => 'व्यक्ती दिमयेर बसला उजव्यान पळोवप',
-    '🧎🏿‍➡' => 'व्यक्ती दिमयेर बसला उजव्यान पळोवप',
+    '🧎🏻‍➡' => 'व्यक्ती दिमयेर बसला: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏼‍➡' => 'व्यक्ती दिमयेर बसला: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏽‍➡' => 'व्यक्ती दिमयेर बसला: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏾‍➡' => 'व्यक्ती दिमयेर बसला: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🧎🏿‍➡' => 'व्यक्ती दिमयेर बसला: गाढ कातीचो रंग, उजव्यान पळोवप',
     '🧑🏻‍🦯' => 'आधाराची बडी घेवंन व्यक्ती: उजळ कातीचो रंग',
     '🧑🏼‍🦯' => 'आधाराची बडी घेवंन व्यक्ती: मध्यम-उजळ कातीचो रंग',
     '🧑🏽‍🦯' => 'आधाराची बडी घेवंन व्यक्ती: मध्यम कातीचो रंग',
@@ -1112,11 +1237,21 @@
     '🏃🏽‍♀' => 'बायल धांवता: मध्यम कातीचो रंग',
     '🏃🏾‍♀' => 'बायल धांवता: मध्यम-गाढ कातीचो रंग',
     '🏃🏿‍♀' => 'बायल धांवता: गाढ कातीचो रंग',
-    '🏃🏻‍➡' => 'धांवपी व्यक्ती उजव्यान पळोवप',
-    '🏃🏼‍➡' => 'धांवपी व्यक्ती उजव्यान पळोवप',
-    '🏃🏽‍➡' => 'धांवपी व्यक्ती उजव्यान पळोवप',
-    '🏃🏾‍➡' => 'धांवपी व्यक्ती उजव्यान पळोवप',
-    '🏃🏿‍➡' => 'धांवपी व्यक्ती उजव्यान पळोवप',
+    '🏃🏻‍➡' => 'धांवपी व्यक्ती: उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏼‍➡' => 'धांवपी व्यक्ती: मध्यम-उजळ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏽‍➡' => 'धांवपी व्यक्ती: मध्यम कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏾‍➡' => 'धांवपी व्यक्ती: मध्यम-गाढ कातीचो रंग, उजव्यान पळोवप',
+    '🏃🏿‍➡' => 'धांवपी व्यक्ती: गाढ कातीचो रंग, उजव्यान पळोवप',
+    '👯🏻‍♀' => 'सोंश्यासारके कान घाल्ल्यो बायलो: उजळ कातीचो रंग',
+    '👯🏼‍♀' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम-उजळ कातीचो रंग',
+    '👯🏽‍♀' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम कातीचो रंग',
+    '👯🏾‍♀' => 'सोंश्यासारके कान घाल्ल्यो बायलो: मध्यम-गाढ कातीचो रंग',
+    '👯🏿‍♀' => 'सोंश्यासारके कान घाल्ल्यो बायलो: गाढ कातीचो रंग',
+    '👯🏻‍♂' => 'सोंश्यासारके कान घाल्ले दादले: उजळ कातीचो रंग',
+    '👯🏼‍♂' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम-उजळ कातीचो रंग',
+    '👯🏽‍♂' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम कातीचो रंग',
+    '👯🏾‍♂' => 'सोंश्यासारके कान घाल्ले दादले: मध्यम-गाढ कातीचो रंग',
+    '👯🏿‍♂' => 'सोंश्यासारके कान घाल्ले दादले: गाढ कातीचो रंग',
     '🧖🏻‍♂' => 'वाफेच्या कुडीतलो दादलो: उजळ कातीचो रंग',
     '🧖🏼‍♂' => 'वाफेच्या कुडीतलो दादलो: मध्यम-उजळ कातीचो रंग',
     '🧖🏽‍♂' => 'वाफेच्या कुडीतलो दादलो: मध्यम कातीचो रंग',
@@ -1227,6 +1362,16 @@
     '🤸🏽‍♀' => 'कोलनाड्यो मारपी बायल: मध्यम कातीचो रंग',
     '🤸🏾‍♀' => 'कोलनाड्यो मारपी बायल: मध्यम-गाढ कातीचो रंग',
     '🤸🏿‍♀' => 'कोलनाड्यो मारपी बायल: गाढ कातीचो रंग',
+    '🤼🏻‍♀' => 'बायल मल्लयुध्द: उजळ कातीचो रंग',
+    '🤼🏼‍♀' => 'बायल मल्लयुध्द: मध्यम-उजळ कातीचो रंग',
+    '🤼🏽‍♀' => 'बायल मल्लयुध्द: मध्यम कातीचो रंग',
+    '🤼🏾‍♀' => 'बायल मल्लयुध्द: मध्यम-गाढ कातीचो रंग',
+    '🤼🏿‍♀' => 'बायल मल्लयुध्द: गाढ कातीचो रंग',
+    '🤼🏻‍♂' => 'दादल्यांचें मल्लयुध्द: उजळ कातीचो रंग',
+    '🤼🏼‍♂' => 'दादल्यांचें मल्लयुध्द: मध्यम-उजळ कातीचो रंग',
+    '🤼🏽‍♂' => 'दादल्यांचें मल्लयुध्द: मध्यम कातीचो रंग',
+    '🤼🏾‍♂' => 'दादल्यांचें मल्लयुध्द: मध्यम-गाढ कातीचो रंग',
+    '🤼🏿‍♂' => 'दादल्यांचें मल्लयुध्द: गाढ कातीचो रंग',
     '🤽🏻‍♂' => 'दादलो उदकात पोलो खेळटा: उजळ कातीचो रंग',
     '🤽🏼‍♂' => 'दादलो उदकात पोलो खेळटा: मध्यम-उजळ कातीचो रंग',
     '🤽🏽‍♂' => 'दादलो उदकात पोलो खेळटा: मध्यम कातीचो रंग',
@@ -1279,9 +1424,9 @@
     '👩‍🦱' => 'बायल: कुरळे मुदयाळें केंस',
     '👩‍🦳' => 'बायल: धवे केंस',
     '👩‍🦲' => 'बायल: तकलो',
-    '🚶‍➡' => 'व्यक्ती चलता उजव्यान पळोवप',
-    '🧎‍➡' => 'व्यक्ती दिमयेर बसला उजव्यान पळोवप',
-    '🏃‍➡' => 'धांवपी व्यक्ती उजव्यान पळोवप',
+    '🚶‍➡' => 'व्यक्ती चलता: उजव्यान पळोवप',
+    '🧎‍➡' => 'व्यक्ती दिमयेर बसला: उजव्यान पळोवप',
+    '🏃‍➡' => 'धांवपी व्यक्ती: उजव्यान पळोवप',
     '👨‍👦' => 'कुटुंब: दादलो, चलो',
     '👨‍👧' => 'कुटुंब: दादलो, चली',
     '👩‍👦' => 'कुटुंब: बायल, चलो',
@@ -1422,6 +1567,7 @@
     '👩‍🦽' => 'मॅन्युअल व्हिलचॅराचेर बायल',
     '🏃‍♂' => 'दादलो धांवता',
     '🏃‍♀' => 'बायल धांवता',
+    '🧑‍🩰' => 'बॅले नर्तक',
     '👯‍♂' => 'सोंश्यासारके कान घाल्ले दादले',
     '👯‍♀' => 'सोंश्यासारके कान घाल्ल्यो बायलो',
     '🧖‍♂' => 'वाफेच्या कुडीतलो दादलो',
@@ -2003,6 +2149,11 @@
     '🕴🏽' => 'सुटांतलो व्यक्ती हवेन तरंगतां: मध्यम कातीचो रंग',
     '🕴🏾' => 'सुटांतलो व्यक्ती हवेन तरंगतां: मध्यम-गाढ कातीचो रंग',
     '🕴🏿' => 'सुटांतलो व्यक्ती हवेन तरंगतां: गाढ कातीचो रंग',
+    '👯🏻' => 'सोंश्यासारके कान घाल्ले लोक: उजळ कातीचो रंग',
+    '👯🏼' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम-उजळ कातीचो रंग',
+    '👯🏽' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम कातीचो रंग',
+    '👯🏾' => 'सोंश्यासारके कान घाल्ले लोक: मध्यम-गाढ कातीचो रंग',
+    '👯🏿' => 'सोंश्यासारके कान घाल्ले लोक: गाढ कातीचो रंग',
     '🧖🏻' => 'वाफ घेवपी स्टीमरूमांतली व्यक्ती: उजळ कातीचो रंग',
     '🧖🏼' => 'वाफ घेवपी स्टीमरूमांतली व्यक्ती: मध्यम-उजळ कातीचो रंग',
     '🧖🏽' => 'वाफ घेवपी स्टीमरूमांतली व्यक्ती: मध्यम कातीचो रंग',
@@ -2068,6 +2219,11 @@
     '🤸🏽' => 'कोलनाड्यो मारपी व्यक्ती: मध्यम कातीचो रंग',
     '🤸🏾' => 'कोलनाड्यो मारपी व्यक्ती: मध्यम-गाढ कातीचो रंग',
     '🤸🏿' => 'कोलनाड्यो मारपी व्यक्ती: गाढ कातीचो रंग',
+    '🤼🏻' => 'लोक मल्लयुध्द करतात: उजळ कातीचो रंग',
+    '🤼🏼' => 'लोक मल्लयुध्द करतात: मध्यम-उजळ कातीचो रंग',
+    '🤼🏽' => 'लोक मल्लयुध्द करतात: मध्यम कातीचो रंग',
+    '🤼🏾' => 'लोक मल्लयुध्द करतात: मध्यम-गाढ कातीचो रंग',
+    '🤼🏿' => 'लोक मल्लयुध्द करतात: गाढ कातीचो रंग',
     '🤽🏻' => 'व्यक्ती उदकांत पोलो खेळटा: उजळ कातीचो रंग',
     '🤽🏼' => 'व्यक्ती उदकांत पोलो खेळटा: मध्यम-उजळ कातीचो रंग',
     '🤽🏽' => 'व्यक्ती उदकांत पोलो खेळटा: मध्यम कातीचो रंग',
@@ -2123,162 +2279,163 @@
     '💑🏽' => 'काळीज आसपी जोडपें: मध्यम कातीचो रंग',
     '💑🏾' => 'काळीज आसपी जोडपें: मध्यम-गाढ कातीचो रंग',
     '💑🏿' => 'काळीज आसपी जोडपें: गाढ कातीचो रंग',
-    '🇦🇨' => 'बावटो: असेंशन आयलँड',
-    '🇦🇩' => 'बावटो: अंडोरा',
-    '🇦🇪' => 'बावटो: युनाइटेड अरब इमीरात',
+    '🇦🇨' => 'बावटो: असँसांव जुंवो',
+    '🇦🇩' => 'बावटो: आंडोरा',
+    '🇦🇪' => 'बावटो: संयुक्त अरबी अमीरात',
     '🇦🇫' => 'बावटो: अफगानिस्तान',
-    '🇦🇬' => 'बावटो: एँटिगुआ आनी बारबुडा',
-    '🇦🇮' => 'बावटो: अंगुला',
-    '🇦🇱' => 'बावटो: अल्बानीया',
-    '🇦🇲' => 'बावटो: आर्मीनीया',
+    '🇦🇬' => 'बावटो: अँटिगुआ आनी बार्बुडा',
+    '🇦🇮' => 'बावटो: अँग्विला',
+    '🇦🇱' => 'बावटो: आल्बान्या',
+    '🇦🇲' => 'बावटो: अर्मेनिया',
     '🇦🇴' => 'बावटो: अंगोला',
     '🇦🇶' => 'बावटो: अंटार्क्टिका',
-    '🇦🇷' => 'बावटो: अर्जेंटिना',
-    '🇦🇸' => 'बावटो: अमेरिकी सामोआ',
+    '🇦🇷' => 'बावटो: आर्जेंटीना',
+    '🇦🇸' => 'बावटो: अमेरिकेचो सामोआ',
     '🇦🇹' => 'बावटो: ऑस्ट्रिया',
-    '🇦🇺' => 'बावटो: ऑस्ट्रेलीया',
+    '🇦🇺' => 'बावटो: ऑस्ट्रेलिया',
     '🇦🇼' => 'बावटो: अरुबा',
-    '🇦🇽' => 'बावटो: अलांड जुवे',
-    '🇦🇿' => 'बावटो: अजरबैजान',
-    '🇧🇦' => 'बावटो: बोस्निया आनी हेर्जेगोविना',
-    '🇧🇧' => 'बावटो: बारबाडोस',
+    '🇦🇽' => 'बावटो: ओलँड जुंवे',
+    '🇦🇿' => 'बावटो: आजरबैजान',
+    '🇧🇦' => 'बावटो: बॉस्निया आनी हर्जेगोविना',
+    '🇧🇧' => 'बावटो: बार्बाडोस',
     '🇧🇩' => 'बावटो: बांगलादेश',
     '🇧🇪' => 'बावटो: बेल्जियम',
-    '🇧🇫' => 'बावटो: बुर्किना फॅसो',
-    '🇧🇬' => 'बावटो: बल्गेरीया',
-    '🇧🇭' => 'बावटो: बेहरेन',
+    '🇧🇫' => 'बावटो: बुर्कीना फासो',
+    '🇧🇬' => 'बावटो: बुल्गारिया',
+    '🇧🇭' => 'बावटो: बाहरेन',
     '🇧🇮' => 'बावटो: बुरुंडी',
     '🇧🇯' => 'बावटो: बेनीन',
-    '🇧🇱' => 'बावटो: सॅंट बार्थेल्मी',
+    '🇧🇱' => 'बावटो: सांव बार्टोलोमेव',
     '🇧🇲' => 'बावटो: बर्मुडा',
     '🇧🇳' => 'बावटो: ब्रूनेई',
-    '🇧🇴' => 'बावटो: बोलिव्हिया',
-    '🇧🇶' => 'बावटो: कॅरिबियन निदरलँड',
+    '🇧🇴' => 'बावटो: बोलिविया',
+    '🇧🇶' => 'बावटो: कॅरिबियन नॅदरलँड',
     '🇧🇷' => 'बावटो: ब्राझील',
-    '🇧🇸' => 'बावटो: बहामास',
+    '🇧🇸' => 'बावटो: बाहामास',
     '🇧🇹' => 'बावटो: भूतान',
-    '🇧🇻' => 'बावटो: बोवट आयलँड',
-    '🇧🇼' => 'बावटो: बोत्सवाना',
+    '🇧🇻' => 'बावटो: बोउवे जुंवो',
+    '🇧🇼' => 'बावटो: बोट्स्वाना',
     '🇧🇾' => 'बावटो: बेलारूस',
     '🇧🇿' => 'बावटो: बेलिझ',
     '🇨🇦' => 'बावटो: कॅनडा',
-    '🇨🇨' => 'बावटो: कोकोस (कीलिंग) आयलँड',
-    '🇨🇩' => 'बावटो: कोंगो - किंशासा',
-    '🇨🇫' => 'बावटो: मध्य अफ्रीकी लोकसत्तकराज्य',
+    '🇨🇨' => 'बावटो: कोकोस (कीलिंग) जुंवे',
+    '🇨🇩' => 'बावटो: काँगो - किंशासा',
+    '🇨🇫' => 'बावटो: मदलें अफ्रीकी प्रजासत्तो',
     '🇨🇬' => 'बावटो: कोंगो - ब्राझाविला',
-    '🇨🇭' => 'बावटो: स्विट्ज़रलैंड',
-    '🇨🇮' => 'बावटो: कोत द’ईवोआर',
-    '🇨🇰' => 'बावटो: कुक आयलँड्स',
+    '🇨🇭' => 'बावटो: स्वित्झरलँड',
+    '🇨🇮' => 'बावटो: कोस्ता दो मारफ़ीम',
+    '🇨🇰' => 'बावटो: कुक जुंवे',
     '🇨🇱' => 'बावटो: चिली',
-    '🇨🇲' => 'बावटो: कॅमेरून',
+    '🇨🇲' => 'बावटो: कॅमरून',
     '🇨🇳' => 'बावटो: चीन',
     '🇨🇴' => 'बावटो: कोलंबिया',
-    '🇨🇵' => 'बावटो: क्लिपरटॉन आयलँड',
+    '🇨🇵' => 'बावटो: क्लिपर्टन जुंवो',
+    '🇨🇶' => 'बावटो: सार्क',
     '🇨🇷' => 'बावटो: कोस्ता रिका',
     '🇨🇺' => 'बावटो: क्युबा',
-    '🇨🇻' => 'बावटो: केप वर्दी',
-    '🇨🇼' => 'बावटो: कुरसावो',
-    '🇨🇽' => 'बावटो: क्रिसमस आयलँड',
-    '🇨🇾' => 'बावटो: सायप्रस',
+    '🇨🇻' => 'बावटो: काबो वेर्दे',
+    '🇨🇼' => 'बावटो: कुरासाव',
+    '🇨🇽' => 'बावटो: ख्रिसमस जुंवो',
+    '🇨🇾' => 'बावटो: सिप्रुस',
     '🇨🇿' => 'बावटो: चेकिया',
     '🇩🇪' => 'बावटो: जर्मनी',
-    '🇩🇬' => 'बावटो: दिगो गार्सिया',
+    '🇩🇬' => 'बावटो: डिएगो गार्सिया',
     '🇩🇯' => 'बावटो: जिबूती',
     '🇩🇰' => 'बावटो: डेनमार्क',
-    '🇩🇲' => 'बावटो: डोमिनीका',
-    '🇩🇴' => 'बावटो: डोमिनिकन प्रजासत्ताक',
-    '🇩🇿' => 'बावटो: अल्जेरिया',
-    '🇪🇦' => 'बावटो: सिटा आनी मेलिल्ला',
-    '🇪🇨' => 'बावटो: इक्वाडोर',
+    '🇩🇲' => 'बावटो: डोमिनिका',
+    '🇩🇴' => 'बावटो: डोमिनिकन प्रजासत्तो',
+    '🇩🇿' => 'बावटो: अल्जीरिया',
+    '🇪🇦' => 'बावटो: सेउता आनि मेलिया',
+    '🇪🇨' => 'बावटो: एक्वाडोर',
     '🇪🇪' => 'बावटो: एस्टोनिया',
-    '🇪🇬' => 'बावटो: ईजिप्त',
-    '🇪🇭' => 'बावटो: अस्तंत सहारा',
-    '🇪🇷' => 'बावटो: इरिट्रिया',
+    '🇪🇬' => 'बावटो: एजिप्त',
+    '🇪🇭' => 'बावटो: अस्तंती सहारा',
+    '🇪🇷' => 'बावटो: एरिट्रिया',
     '🇪🇸' => 'बावटो: स्पेन',
     '🇪🇹' => 'बावटो: इथियोपिया',
     '🇪🇺' => 'बावटो: युरोपियन युनियन',
     '🇫🇮' => 'बावटो: फिनलँड',
     '🇫🇯' => 'बावटो: फिजी',
     '🇫🇰' => 'बावटो: फ़ॉकलैंड आइलैंड्स',
-    '🇫🇲' => 'बावटो: मायक्रोनेशिया',
-    '🇫🇴' => 'बावटो: फैरो आयलँड्स',
+    '🇫🇲' => 'बावटो: मायक्रोनिशिया',
+    '🇫🇴' => 'बावटो: फेरो जुंवे',
     '🇫🇷' => 'बावटो: फ्रान्स',
-    '🇬🇦' => 'बावटो: गॅबोन',
+    '🇬🇦' => 'बावटो: गाबॉन',
     '🇬🇧' => 'बावटो: युनायटेड किंगडम',
-    '🇬🇩' => 'बावटो: ग्रेनॅडा',
+    '🇬🇩' => 'बावटो: ग्रेनाडा',
     '🇬🇪' => 'बावटो: जॉर्जिया',
-    '🇬🇫' => 'बावटो: फ्रेन्च गयाना',
-    '🇬🇬' => 'बावटो: गर्नसी',
+    '🇬🇫' => 'बावटो: फ्रांसेझ गियॅना',
+    '🇬🇬' => 'बावटो: गॅर्नजी',
     '🇬🇭' => 'बावटो: घाना',
     '🇬🇮' => 'बावटो: जिब्राल्टर',
     '🇬🇱' => 'बावटो: ग्रीनलँड',
-    '🇬🇲' => 'बावटो: गॅम्बिया',
-    '🇬🇳' => 'बावटो: गुएनिया',
-    '🇬🇵' => 'बावटो: ग्वाडेलोप',
-    '🇬🇶' => 'बावटो: इक्वेटोरियल गुएनिया',
+    '🇬🇲' => 'बावटो: गाम्बिया',
+    '🇬🇳' => 'बावटो: गिनी',
+    '🇬🇵' => 'बावटो: ग्वाडलूप',
+    '🇬🇶' => 'बावटो: भूमध्यरेखी गिनी',
     '🇬🇷' => 'बावटो: ग्रीस',
-    '🇬🇸' => 'बावटो: दक्षिण जोर्जिया आनी दक्षिण सॅण्डविच आयलँड्स',
+    '🇬🇸' => 'बावटो: दक्षिण जॉर्जिया आनी दक्षिण सँडविच जुंवे',
     '🇬🇹' => 'बावटो: ग्वाटेमाला',
     '🇬🇺' => 'बावटो: गुआम',
-    '🇬🇼' => 'बावटो: गुअनिया-बिसाउ',
-    '🇬🇾' => 'बावटो: गयाना',
-    '🇭🇰' => 'बावटो: हाँग काँग एसएआर चीन',
-    '🇭🇲' => 'बावटो: हर्ड ऍंड मॅक्डोनाल्ड आयलँड्स',
-    '🇭🇳' => 'बावटो: हॉनडुरस',
-    '🇭🇷' => 'बावटो: क्रोयेशीया',
+    '🇬🇼' => 'बावटो: गिनी-बिसाउ',
+    '🇬🇾' => 'बावटो: गियॅना',
+    '🇭🇰' => 'बावटो: हाँग काँग',
+    '🇭🇲' => 'बावटो: हर्ड आनि मॅक्डोनल्ड जुंवे',
+    '🇭🇳' => 'बावटो: हाँडूरास',
+    '🇭🇷' => 'बावटो: क्रोएशिया',
     '🇭🇹' => 'बावटो: हैती',
-    '🇭🇺' => 'बावटो: हंगेरी',
-    '🇮🇨' => 'बावटो: कॅनरी आयलैंड्स',
-    '🇮🇩' => 'बावटो: इंडोनेशीया',
+    '🇭🇺' => 'बावटो: हंगरी',
+    '🇮🇨' => 'बावटो: कानारियास जुंवे',
+    '🇮🇩' => 'बावटो: इंडोनिशिया',
     '🇮🇪' => 'बावटो: आयरलँड',
-    '🇮🇱' => 'बावटो: इस्त्राइल',
-    '🇮🇲' => 'बावटो: इसले ऑफ मॅन',
+    '🇮🇱' => 'बावटो: इज्राएल',
+    '🇮🇲' => 'बावटो: मॅनाचो जुंवो',
     '🇮🇳' => 'बावटो: भारत',
-    '🇮🇴' => 'बावटो: ब्रिटिश हिंद महासागरीय क्षेत्र',
+    '🇮🇴' => 'बावटो: ब्रिटनाचो हिंदी महासागर प्रांत',
     '🇮🇶' => 'बावटो: इराक',
     '🇮🇷' => 'बावटो: इरान',
-    '🇮🇸' => 'बावटो: आइसलैंड',
+    '🇮🇸' => 'बावटो: आइसलँड',
     '🇮🇹' => 'बावटो: इटली',
     '🇯🇪' => 'बावटो: जर्सी',
     '🇯🇲' => 'बावटो: जमैका',
     '🇯🇴' => 'बावटो: जॉर्डन',
     '🇯🇵' => 'बावटो: जपान',
-    '🇰🇪' => 'बावटो: केनया',
-    '🇰🇬' => 'बावटो: किर्गिझस्तान',
-    '🇰🇭' => 'बावटो: कंबोडिया',
-    '🇰🇮' => 'बावटो: किरिबाती',
+    '🇰🇪' => 'बावटो: केनिया',
+    '🇰🇬' => 'बावटो: किर्गिस्तान',
+    '🇰🇭' => 'बावटो: कॅम्बोडिया',
+    '🇰🇮' => 'बावटो: किरिबास',
     '🇰🇲' => 'बावटो: कोमोरोस',
-    '🇰🇳' => 'बावटो: सेंट किट्स आनी नेविस',
+    '🇰🇳' => 'बावटो: सांव क्रिस्टोवांव आनी नेविस',
     '🇰🇵' => 'बावटो: उत्तर कोरिया',
     '🇰🇷' => 'बावटो: दक्षिण कोरिया',
     '🇰🇼' => 'बावटो: कुवेत',
-    '🇰🇾' => 'बावटो: कैमेन आइलैंड्स',
-    '🇰🇿' => 'बावटो: कझाकस्तान',
+    '🇰🇾' => 'बावटो: केमॅन जुंवे',
+    '🇰🇿' => 'बावटो: कजाखस्तान',
     '🇱🇦' => 'बावटो: लाओस',
-    '🇱🇧' => 'बावटो: लेबनान',
-    '🇱🇨' => 'बावटो: सँट लुसिया',
-    '🇱🇮' => 'बावटो: लिचेंस्टीन',
+    '🇱🇧' => 'बावटो: लेबनन',
+    '🇱🇨' => 'बावटो: सांता लूसिया',
+    '🇱🇮' => 'बावटो: लिश्टेंस्टाइन',
     '🇱🇰' => 'बावटो: श्री लंका',
-    '🇱🇷' => 'बावटो: लायबेरीया',
-    '🇱🇸' => 'बावटो: लिसोथो',
-    '🇱🇹' => 'बावटो: लिथुआनिया',
-    '🇱🇺' => 'बावटो: लक्सेमबर्ग',
-    '🇱🇻' => 'बावटो: लॅटविया',
-    '🇱🇾' => 'बावटो: लीबिया',
+    '🇱🇷' => 'बावटो: लायबिरिया',
+    '🇱🇸' => 'बावटो: लेसोथो',
+    '🇱🇹' => 'बावटो: लितुआनिया',
+    '🇱🇺' => 'बावटो: लुक्सेमबर्ग',
+    '🇱🇻' => 'बावटो: लाटविया',
+    '🇱🇾' => 'बावटो: लिबिया',
     '🇲🇦' => 'बावटो: मोरोक्को',
-    '🇲🇨' => 'बावटो: मोनॅको',
-    '🇲🇩' => 'बावटो: माल्डोवा',
-    '🇲🇪' => 'बावटो: मॉन्टॅनग्रो',
+    '🇲🇨' => 'बावटो: मोनाको',
+    '🇲🇩' => 'बावटो: मॉल्डोवा',
+    '🇲🇪' => 'बावटो: मोंटेनेग्रो',
     '🇲🇫' => 'बावटो: सॅंट मार्टिन',
-    '🇲🇬' => 'बावटो: माडागास्कर',
-    '🇲🇭' => 'बावटो: मार्शल आयलँड्स',
+    '🇲🇬' => 'बावटो: मॅडागास्कर',
+    '🇲🇭' => 'बावटो: मार्शल जुंवे',
     '🇲🇰' => 'बावटो: उत्तर मॅसिडोनिया',
     '🇲🇱' => 'बावटो: माली',
-    '🇲🇲' => 'बावटो: म्यानमार (बर्मा)',
+    '🇲🇲' => 'बावटो: म्यानमार',
     '🇲🇳' => 'बावटो: मंगोलिया',
-    '🇲🇴' => 'बावटो: मकाव एसएआर चीन',
-    '🇲🇵' => 'बावटो: उत्तरी मरिना आयसलैण्ड',
-    '🇲🇶' => 'बावटो: मार्टीनिक',
+    '🇲🇴' => 'बावटो: मकाव',
+    '🇲🇵' => 'बावटो: उत्तरी मारियाना जुंवे',
+    '🇲🇶' => 'बावटो: मार्टिनीक',
     '🇲🇷' => 'बावटो: मॉरिटानिया',
     '🇲🇸' => 'बावटो: मॉन्टसेराट',
     '🇲🇹' => 'बावटो: माल्टा',
@@ -2287,99 +2444,99 @@
     '🇲🇼' => 'बावटो: मलावी',
     '🇲🇽' => 'बावटो: मेक्सिको',
     '🇲🇾' => 'बावटो: मलेशिया',
-    '🇲🇿' => 'बावटो: मॉझांबीक',
-    '🇳🇦' => 'बावटो: नामीबिया',
-    '🇳🇨' => 'बावटो: न्यू कॅलिडोनिया',
+    '🇲🇿' => 'बावटो: मोजाम्बिक',
+    '🇳🇦' => 'बावटो: नामिबिया',
+    '🇳🇨' => 'बावटो: नोवो कॅलेडोनिया',
     '🇳🇪' => 'बावटो: नायजर',
-    '🇳🇫' => 'बावटो: नॉरफॉक आयलँड',
-    '🇳🇬' => 'बावटो: नायजेरिया',
-    '🇳🇮' => 'बावटो: निकारगुवा',
+    '🇳🇫' => 'बावटो: नॉरफोक जुंवो',
+    '🇳🇬' => 'बावटो: नायजिरिया',
+    '🇳🇮' => 'बावटो: निकारागुआ',
     '🇳🇱' => 'बावटो: नॅदरलँड',
     '🇳🇴' => 'बावटो: नॉर्वे',
     '🇳🇵' => 'बावटो: नेपाळ',
-    '🇳🇷' => 'बावटो: नावरू',
-    '🇳🇺' => 'बावटो: नीयू',
-    '🇳🇿' => 'बावटो: न्युझीलॅन्ड',
+    '🇳🇷' => 'बावटो: नाउरु',
+    '🇳🇺' => 'बावटो: निउए',
+    '🇳🇿' => 'बावटो: नोवो झीलॅंड',
     '🇴🇲' => 'बावटो: ओमान',
-    '🇵🇦' => 'बावटो: पनामा',
+    '🇵🇦' => 'बावटो: पानामा',
     '🇵🇪' => 'बावटो: पेरू',
-    '🇵🇫' => 'बावटो: फ्रेन्च पोलिनेसिया',
-    '🇵🇬' => 'बावटो: पापुआ न्यु गिनी',
-    '🇵🇭' => 'बावटो: फिलीपिन्झ',
+    '🇵🇫' => 'बावटो: फ्रांसेझ पॉलिनिशिया',
+    '🇵🇬' => 'बावटो: पापुआ नोवो गिनी',
+    '🇵🇭' => 'बावटो: फिलिपीन्स',
     '🇵🇰' => 'बावटो: पाकिस्तान',
-    '🇵🇱' => 'बावटो: पोलंड',
-    '🇵🇲' => 'बावटो: सँ. पायरे आनी मिकेलन',
-    '🇵🇳' => 'बावटो: पिटकॅरन आयलँड्स',
-    '🇵🇷' => 'बावटो: प्युएर्तो रिको',
-    '🇵🇸' => 'बावटो: पेलेस्टीनियन प्रांत',
-    '🇵🇹' => 'बावटो: पुर्तगाल',
-    '🇵🇼' => 'बावटो: पलाऊ',
-    '🇵🇾' => 'बावटो: पैराग्वे',
-    '🇶🇦' => 'बावटो: कतार',
-    '🇷🇪' => 'बावटो: रीयूनियन',
-    '🇷🇴' => 'बावटो: रोमानीया',
+    '🇵🇱' => 'बावटो: पोलँड',
+    '🇵🇲' => 'बावटो: सांव पेद्रु आनी मिकेलांव',
+    '🇵🇳' => 'बावटो: पिटकॅर्न जुंवे',
+    '🇵🇷' => 'बावटो: पोर्टो रिको',
+    '🇵🇸' => 'बावटो: पालेसटीन',
+    '🇵🇹' => 'बावटो: पुर्तुगाल',
+    '🇵🇼' => 'बावटो: पालाउ',
+    '🇵🇾' => 'बावटो: पॅरग्वे',
+    '🇶🇦' => 'बावटो: कातार',
+    '🇷🇪' => 'बावटो: रेयुनियांव',
+    '🇷🇴' => 'बावटो: रोमेनिया',
     '🇷🇸' => 'बावटो: सर्बिया',
     '🇷🇺' => 'बावटो: रूस',
-    '🇷🇼' => 'बावटो: रवांडा',
-    '🇸🇦' => 'बावटो: सऊदी अरेबिया',
-    '🇸🇧' => 'बावटो: सोलोमन आइलँड्स',
+    '🇷🇼' => 'बावटो: रुआंडा',
+    '🇸🇦' => 'बावटो: साउदी अरब',
+    '🇸🇧' => 'बावटो: सोलोमन जुंवे',
     '🇸🇨' => 'बावटो: सेशेल्स',
-    '🇸🇩' => 'बावटो: सूडान',
+    '🇸🇩' => 'बावटो: सुदान',
     '🇸🇪' => 'बावटो: स्वीडन',
-    '🇸🇬' => 'बावटो: सिंगापूर',
-    '🇸🇭' => 'बावटो: सेंट हेलिना',
+    '🇸🇬' => 'बावटो: सिंगापुर',
+    '🇸🇭' => 'बावटो: सांता हेलेना',
     '🇸🇮' => 'बावटो: स्लोवेनिया',
-    '🇸🇯' => 'बावटो: स्वालबार्ड आनी जान मेयन',
+    '🇸🇯' => 'बावटो: स्वालबार्ड आनी यान मायेन',
     '🇸🇰' => 'बावटो: स्लोवाकिया',
-    '🇸🇱' => 'बावटो: सिएरा लियॉन',
-    '🇸🇲' => 'बावटो: सॅन मारीनो',
-    '🇸🇳' => 'बावटो: सिनिगल',
+    '🇸🇱' => 'बावटो: सेर्रा लेओं',
+    '🇸🇲' => 'बावटो: सान मारीनो',
+    '🇸🇳' => 'बावटो: सेनेगाल',
     '🇸🇴' => 'बावटो: सोमालिया',
-    '🇸🇷' => 'बावटो: सुरीनाम',
-    '🇸🇸' => 'बावटो: दक्षिण सुडान',
-    '🇸🇹' => 'बावटो: साओ टोम आनी प्रिन्सिप',
+    '🇸🇷' => 'बावटो: सुरिनाम',
+    '🇸🇸' => 'बावटो: दक्षिण सुदान',
+    '🇸🇹' => 'बावटो: सांव टोमे आनी प्रिंसिपे',
     '🇸🇻' => 'बावटो: एल साल्वाडोर',
-    '🇸🇽' => 'बावटो: सिंट मार्टेन',
+    '🇸🇽' => 'बावटो: सांव मोर्टिन (नॅदरलँड)',
     '🇸🇾' => 'बावटो: सिरिया',
-    '🇸🇿' => 'बावटो: इस्वातिनी',
-    '🇹🇦' => 'बावटो: त्रिस्तान दा कुन्हा',
-    '🇹🇨' => 'बावटो: तुर्क्स आनी कॅकोज आयलँड्स',
+    '🇸🇿' => 'बावटो: एस्वातीनी',
+    '🇹🇦' => 'बावटो: ट्रीस्टांव दा कुन्ह्या',
+    '🇹🇨' => 'बावटो: तुर्क आनी कायकोस जुंवे',
     '🇹🇩' => 'बावटो: चाड',
-    '🇹🇫' => 'बावटो: फ्रेंच दक्षिणी प्रांत',
+    '🇹🇫' => 'बावटो: फ्रांसेझ दक्षिणी प्रांत',
     '🇹🇬' => 'बावटो: टोगो',
     '🇹🇭' => 'बावटो: थायलँड',
-    '🇹🇯' => 'बावटो: तजीकिस्तान',
-    '🇹🇰' => 'बावटो: टोकलाऊ',
+    '🇹🇯' => 'बावटो: ताजीकिस्तान',
+    '🇹🇰' => 'बावटो: टोकलाउ',
     '🇹🇱' => 'बावटो: तिमोर-लेस्ते',
     '🇹🇲' => 'बावटो: तुर्कमेनिस्तान',
-    '🇹🇳' => 'बावटो: ट्यूनीशिया',
-    '🇹🇴' => 'बावटो: टोंगा',
+    '🇹🇳' => 'बावटो: टुनिसिया',
+    '🇹🇴' => 'बावटो: टाँगा',
     '🇹🇷' => 'बावटो: तुर्की',
-    '🇹🇹' => 'बावटो: ट्रिनीदाद आनी टोबॅगो',
-    '🇹🇻' => 'बावटो: टुवालू',
-    '🇹🇼' => 'बावटो: तायवान',
-    '🇹🇿' => 'बावटो: तांझानिया',
+    '🇹🇹' => 'बावटो: त्रिनदाड आनी तोबाग',
+    '🇹🇻' => 'बावटो: तुवालू',
+    '🇹🇼' => 'बावटो: ताइवान',
+    '🇹🇿' => 'बावटो: तांजानिया',
     '🇺🇦' => 'बावटो: युक्रेन',
     '🇺🇬' => 'बावटो: युगांडा',
-    '🇺🇲' => 'बावटो: यु. एस. मायनर आवटलायींग आयलँड्‍स',
-    '🇺🇳' => 'बावटो: युनायटेड नेशन्स',
+    '🇺🇲' => 'बावटो: संयुक्त राज्यांचे पयशिल्ले धाकटे जुंवे',
+    '🇺🇳' => 'बावटो: संयुक्त राष्ट्रां',
     '🇺🇸' => 'बावटो: युनायटेड स्टेट्स',
-    '🇺🇾' => 'बावटो: उरूग्वे',
-    '🇺🇿' => 'बावटो: उझ्बेकिस्तान',
-    '🇻🇦' => 'बावटो: वॅटिकन सिटी',
-    '🇻🇨' => 'बावटो: सेंट विंसेंट ऐंड द ग्रेनेडाइंस',
-    '🇻🇪' => 'बावटो: विनेझुएला',
-    '🇻🇬' => 'बावटो: ब्रिटिश वर्जिन आयलँड्स',
-    '🇻🇮' => 'बावटो: यु. एस. वर्जिन आयलँड्‍स',
-    '🇻🇳' => 'बावटो: व्हिएतनाम',
-    '🇻🇺' => 'बावटो: वनौतू',
-    '🇼🇫' => 'बावटो: वालिस आनी फ्यूचूना',
+    '🇺🇾' => 'बावटो: उरुग्वे',
+    '🇺🇿' => 'बावटो: उज्बेकिस्तान',
+    '🇻🇦' => 'बावटो: वॅटिकन शार',
+    '🇻🇨' => 'बावटो: सांव विसेंट आनी ग्रानाडीनस',
+    '🇻🇪' => 'बावटो: वेनेजुएला',
+    '🇻🇬' => 'बावटो: ब्रिटनाचे विर्जिन जुंवे',
+    '🇻🇮' => 'बावटो: संयुक्त राज्यांचे विर्जिन जुंवे',
+    '🇻🇳' => 'बावटो: विएतनाम',
+    '🇻🇺' => 'बावटो: वानुआतु',
+    '🇼🇫' => 'बावटो: वॉलिस आनी फुतुना',
     '🇼🇸' => 'बावटो: सामोआ',
     '🇽🇰' => 'बावटो: कोसोवो',
     '🇾🇪' => 'बावटो: येमेन',
-    '🇾🇹' => 'बावटो: मेयोट',
-    '🇿🇦' => 'बावटो: दक्षिण आफ्रीका',
-    '🇿🇲' => 'बावटो: झांबिया',
+    '🇾🇹' => 'बावटो: मायोट',
+    '🇿🇦' => 'बावटो: दक्षिण आफ्रिका',
+    '🇿🇲' => 'बावटो: जाम्बिया',
     '🇿🇼' => 'बावटो: जिम्बाब्वे',
     '🔟' => 'कीकॅप: 10',
     '🏻' => 'उजळ कातीचो रंग',
@@ -2387,13 +2544,6 @@
     '🏽' => 'मध्यम कातीचो रंग',
     '🏾' => 'मध्यम-गाढ कातीचो रंग',
     '🏿' => 'गाढ कातीचो रंग',
-    '🪉' => 'वीणा',
-    '🪏' => 'खुरपें',
-    '🪾' => 'पानाविणें झाड',
-    '🫆' => 'बोटाचोठसो',
-    '🫜' => 'कंद भाजी',
-    '🫟' => 'शिंपडप',
-    '🫩' => 'दोळ्यां सकयल सुरकुत्यो आसपी चेरो',
     '😀' => 'उकत्या तोंडाचो हांसपी चेरो',
     '😃' => 'मोठ्या दोळ्यांचो हांसपी चेरो',
     '😄' => 'हांस-या दोळ्यांचो हांसपी चेरो',
@@ -2447,6 +2597,7 @@
     '😪' => 'न्हिद आयिल्लो चेरो',
     '🤤' => 'लाळ गळोवपी चेरो',
     '😴' => 'झेमपी चेरो',
+    '🫩' => 'दोळ्यां सकयल सुरकुत्यो आसपी चेरो',
     '😷' => 'वैद्यकीय मास्क घाल्लो चेरो',
     '🤒' => 'थर्मोमीटर तोंडान आसपी चेरो',
     '🤕' => 'तकलेक बँडेज केल्लो चेरो',
@@ -2473,6 +2624,7 @@
     '😯' => 'शांत जाल्लो चेरो',
     '😲' => 'विस्मीत चेरो',
     '😳' => 'लजेल्लो चेरो',
+    '🫪' => 'विकृत तोंड',
     '🥺' => 'विनंती करपी चेरो',
     '🥹' => 'दुकां आडावन धरील्लो चेरो',
     '😦' => 'उकत्या तोंडाचो तिडकल्लो चेरो',
@@ -2544,6 +2696,7 @@
     '💋' => 'उम्याची खूण',
     '💯' => 'शंभर गूण',
     '💢' => 'रागाची खूण',
+    '🫯' => 'मेघ झगडप',
     '💥' => 'टक्कर',
     '💫' => 'घुंवळ',
     '💦' => 'घामाचे थेंबे',
@@ -2667,6 +2820,7 @@
     '🧞' => 'जिनी',
     '🧟' => 'झोम्बी',
     '🧌' => 'ट्रोल',
+    '🫈' => 'केंसांचो प्राणी',
     '💆' => 'मसाज घेवपी व्यक्ती',
     '💇' => 'केंस कातरून घेवपी व्यक्ती',
     '🚶' => 'व्यक्ती चलता',
@@ -2710,6 +2864,7 @@
     '🫂' => 'लोक वेंग मारतात',
     '👪' => 'कुटुंब',
     '👣' => 'पावलांचे ठशे',
+    '🫆' => 'बोटाचोठसो',
     '🦰' => 'तांबशें केंस',
     '🦱' => 'कुरळे मुदयाळें केंस',
     '🦳' => 'धवे केंस',
@@ -2809,6 +2964,7 @@
     '🐳' => 'उदकाचो फवारो सोडपी देवमासो',
     '🐋' => 'देवमासो',
     '🐬' => 'डोल्फीन',
+    '🫍' => 'orca',
     '🦭' => 'सील',
     '🐟' => 'नुस्तें',
     '🐠' => 'उष्णकटीबंधातलें नुस्तें',
@@ -2818,6 +2974,11 @@
     '🐚' => 'चक्राकार शंख',
     '🪸' => 'पोवळें',
     '🪼' => 'जॅलीफिश',
+    '🦀' => 'कुल्ली',
+    '🦞' => 'सांगट',
+    '🦐' => 'सुंगट',
+    '🦑' => 'माणकी',
+    '🦪' => 'शिनाणें',
     '🐌' => 'गोगलगाय',
     '🦋' => 'फुलपाखरुं',
     '🐛' => 'भिकूण',
@@ -2862,6 +3023,7 @@
     '🪹' => 'मेकळो घोंटेर',
     '🪺' => 'तातीं आशिल्लो घोंटेर',
     '🍄' => 'अळमी',
+    '🪾' => 'पानाविणें झाड',
     '🍇' => 'द्राक्षां',
     '🍈' => 'चिबूड',
     '🍉' => 'काळींग',
@@ -2898,6 +3060,7 @@
     '🌰' => 'शेंगाबियो',
     '🫚' => 'आलें',
     '🫛' => 'मटाराची सांग',
+    '🫜' => 'कंद भाजी',
     '🍞' => 'पाव',
     '🥐' => 'क्रोयसांट',
     '🥖' => 'बगेटी पाव',
@@ -2949,11 +3112,6 @@
     '🥟' => 'डम्पलिंग',
     '🥠' => 'फॉर्च्युन कुकी',
     '🥡' => 'टेकआवट बॉक्स',
-    '🦀' => 'कुल्ली',
-    '🦞' => 'सांगट',
-    '🦐' => 'सुंगट',
-    '🦑' => 'माणकी',
-    '🦪' => 'शिनाणें',
     '🍦' => 'सॉफ्ट आयस क्रीम',
     '🍧' => 'शेव्ड आयस',
     '🍨' => 'आयस क्रीम',
@@ -3004,6 +3162,7 @@
     '🧭' => 'कम्पास',
     '🏔' => 'बर्फा-च्छादीत पर्वत',
     '⛰' => 'पर्वत',
+    '🛘' => 'भूंयकांप जावप',
     '🌋' => 'ज्वालामुखी',
     '🗻' => 'मावंट फुजी',
     '🏕' => 'छावणी',
@@ -3364,16 +3523,18 @@
     '🎧' => 'हेडफोन',
     '📻' => 'रेडियो',
     '🎷' => 'सॅक्सोफोन',
+    '🎺' => 'ट्रम्पेट',
+    '🪊' => 'ट्राम्बोन',
     '🪗' => 'अकोर्डियन',
     '🎸' => 'गिटार',
     '🎹' => 'संगीताचो किबोर्ड',
-    '🎺' => 'ट्रम्पेट',
     '🎻' => 'वायोलिन',
     '🪕' => 'बँजो',
     '🥁' => 'धोल',
     '🪘' => 'मृदंग',
     '🪇' => 'माराकास',
     '🪈' => 'बांसरी',
+    '🪉' => 'वीणा',
     '📱' => 'मोबायल फोन',
     '📲' => 'बाण आसपी मोबायल फोन',
     '☎' => 'टेलिफोन',
@@ -3427,8 +3588,9 @@
     '📑' => 'बूकमार्क टॅब्स',
     '🔖' => 'बूकमार्क',
     '🏷' => 'लेबल',
-    '💰' => 'पयशांची बॅग',
     '🪙' => 'नाणे',
+    '💰' => 'पयशांची बॅग',
+    '🪎' => 'खजिन्याची पेटी',
     '💴' => 'येन बँकनोट',
     '💵' => 'डॉलर',
     '💶' => 'युरो बंँकनोट',
@@ -3511,6 +3673,7 @@
     '🧰' => 'साधनबॉक्स',
     '🧲' => 'चुंबक',
     '🪜' => 'निसण',
+    '🪏' => 'खुरपें',
     '⚗' => 'अलेम्बिक',
     '🧪' => 'टेस्ट ट्युब',
     '🧫' => 'पेट्री डीश',
@@ -3694,6 +3857,7 @@
     '✴' => 'आठ-बिंदुंचें नखेत्र',
     '❇' => 'चकचक',
     '™' => 'वेपार चिन्न',
+    '🫟' => 'शिंपडप',
     '🔠' => 'इनपूट लॅटीन अपरकेस',
     '🔡' => 'इनपूट लॅटीन लोवरकेस',
     '🔢' => 'इनपूट आंकडे',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ko.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ko.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ko.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ko.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => '키스: 여자 여자 검은색 피부 갈색 피부',
     '👩🏿‍❤‍💋‍👩🏾' => '키스: 여자 여자 검은색 피부 진한 갈색 피부',
     '👩🏿‍❤‍💋‍👩🏿' => '키스: 여자 여자 검은색 피부',
+    '🧑🏻‍🫯‍🧑🏼' => '레슬링하는 사람: 하얀 피부 연한 갈색 피부',
+    '🧑🏻‍🫯‍🧑🏽' => '레슬링하는 사람: 하얀 피부 갈색 피부',
+    '🧑🏻‍🫯‍🧑🏾' => '레슬링하는 사람: 하얀 피부 진한 갈색 피부',
+    '🧑🏻‍🫯‍🧑🏿' => '레슬링하는 사람: 하얀 피부 검은색 피부',
+    '🧑🏼‍🫯‍🧑🏻' => '레슬링하는 사람: 연한 갈색 피부 하얀 피부',
+    '🧑🏼‍🫯‍🧑🏽' => '레슬링하는 사람: 연한 갈색 피부 갈색 피부',
+    '🧑🏼‍🫯‍🧑🏾' => '레슬링하는 사람: 연한 갈색 피부 진한 갈색 피부',
+    '🧑🏼‍🫯‍🧑🏿' => '레슬링하는 사람: 연한 갈색 피부 검은색 피부',
+    '🧑🏽‍🫯‍🧑🏻' => '레슬링하는 사람: 갈색 피부 하얀 피부',
+    '🧑🏽‍🫯‍🧑🏼' => '레슬링하는 사람: 갈색 피부 연한 갈색 피부',
+    '🧑🏽‍🫯‍🧑🏾' => '레슬링하는 사람: 갈색 피부 진한 갈색 피부',
+    '🧑🏽‍🫯‍🧑🏿' => '레슬링하는 사람: 갈색 피부 검은색 피부',
+    '🧑🏾‍🫯‍🧑🏻' => '레슬링하는 사람: 진한 갈색 피부 하얀 피부',
+    '🧑🏾‍🫯‍🧑🏼' => '레슬링하는 사람: 진한 갈색 피부 연한 갈색 피부',
+    '🧑🏾‍🫯‍🧑🏽' => '레슬링하는 사람: 진한 갈색 피부 갈색 피부',
+    '🧑🏾‍🫯‍🧑🏿' => '레슬링하는 사람: 진한 갈색 피부 검은색 피부',
+    '🧑🏿‍🫯‍🧑🏻' => '레슬링하는 사람: 검은색 피부 하얀 피부',
+    '🧑🏿‍🫯‍🧑🏼' => '레슬링하는 사람: 검은색 피부 연한 갈색 피부',
+    '🧑🏿‍🫯‍🧑🏽' => '레슬링하는 사람: 검은색 피부 갈색 피부',
+    '🧑🏿‍🫯‍🧑🏾' => '레슬링하는 사람: 검은색 피부 진한 갈색 피부',
     '🧑🏻‍❤‍🧑🏼' => '연인: 사람 사람 하얀 피부 연한 갈색 피부',
     '🧑🏻‍❤‍🧑🏽' => '연인: 사람 사람 하얀 피부 갈색 피부',
     '🧑🏻‍❤‍🧑🏾' => '연인: 사람 사람 하얀 피부 진한 갈색 피부',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => '연인: 사람 사람 검은색 피부 연한 갈색 피부',
     '🧑🏿‍❤‍🧑🏽' => '연인: 사람 사람 검은색 피부 갈색 피부',
     '🧑🏿‍❤‍🧑🏾' => '연인: 사람 사람 검은색 피부 진한 갈색 피부',
+    '🧑🏻‍🐰‍🧑🏼' => '토끼 귀를 쓰고 춤추는 사람들: 하얀 피부 연한 갈색 피부',
+    '🧑🏻‍🐰‍🧑🏽' => '토끼 귀를 쓰고 춤추는 사람들: 하얀 피부 갈색 피부',
+    '🧑🏻‍🐰‍🧑🏾' => '토끼 귀를 쓰고 춤추는 사람들: 하얀 피부 진한 갈색 피부',
+    '🧑🏻‍🐰‍🧑🏿' => '토끼 귀를 쓰고 춤추는 사람들: 하얀 피부 검은색 피부',
+    '🧑🏼‍🐰‍🧑🏻' => '토끼 귀를 쓰고 춤추는 사람들: 연한 갈색 피부 하얀 피부',
+    '🧑🏼‍🐰‍🧑🏽' => '토끼 귀를 쓰고 춤추는 사람들: 연한 갈색 피부 갈색 피부',
+    '🧑🏼‍🐰‍🧑🏾' => '토끼 귀를 쓰고 춤추는 사람들: 연한 갈색 피부 진한 갈색 피부',
+    '🧑🏼‍🐰‍🧑🏿' => '토끼 귀를 쓰고 춤추는 사람들: 연한 갈색 피부 검은색 피부',
+    '🧑🏽‍🐰‍🧑🏻' => '토끼 귀를 쓰고 춤추는 사람들: 갈색 피부 하얀 피부',
+    '🧑🏽‍🐰‍🧑🏼' => '토끼 귀를 쓰고 춤추는 사람들: 갈색 피부 연한 갈색 피부',
+    '🧑🏽‍🐰‍🧑🏾' => '토끼 귀를 쓰고 춤추는 사람들: 갈색 피부 진한 갈색 피부',
+    '🧑🏽‍🐰‍🧑🏿' => '토끼 귀를 쓰고 춤추는 사람들: 갈색 피부 검은색 피부',
+    '🧑🏾‍🐰‍🧑🏻' => '토끼 귀를 쓰고 춤추는 사람들: 진한 갈색 피부 하얀 피부',
+    '🧑🏾‍🐰‍🧑🏼' => '토끼 귀를 쓰고 춤추는 사람들: 진한 갈색 피부 연한 갈색 피부',
+    '🧑🏾‍🐰‍🧑🏽' => '토끼 귀를 쓰고 춤추는 사람들: 진한 갈색 피부 갈색 피부',
+    '🧑🏾‍🐰‍🧑🏿' => '토끼 귀를 쓰고 춤추는 사람들: 진한 갈색 피부 검은색 피부',
+    '🧑🏿‍🐰‍🧑🏻' => '토끼 귀를 쓰고 춤추는 사람들: 검은색 피부 하얀 피부',
+    '🧑🏿‍🐰‍🧑🏼' => '토끼 귀를 쓰고 춤추는 사람들: 검은색 피부 연한 갈색 피부',
+    '🧑🏿‍🐰‍🧑🏽' => '토끼 귀를 쓰고 춤추는 사람들: 검은색 피부 갈색 피부',
+    '🧑🏿‍🐰‍🧑🏾' => '토끼 귀를 쓰고 춤추는 사람들: 검은색 피부 진한 갈색 피부',
+    '👨🏻‍🫯‍👨🏼' => '레슬링하는 남자: 하얀 피부 연한 갈색 피부',
+    '👨🏻‍🫯‍👨🏽' => '레슬링하는 남자: 하얀 피부 갈색 피부',
+    '👨🏻‍🫯‍👨🏾' => '레슬링하는 남자: 하얀 피부 진한 갈색 피부',
+    '👨🏻‍🫯‍👨🏿' => '레슬링하는 남자: 하얀 피부 검은색 피부',
+    '👨🏼‍🫯‍👨🏻' => '레슬링하는 남자: 연한 갈색 피부 하얀 피부',
+    '👨🏼‍🫯‍👨🏽' => '레슬링하는 남자: 연한 갈색 피부 갈색 피부',
+    '👨🏼‍🫯‍👨🏾' => '레슬링하는 남자: 연한 갈색 피부 진한 갈색 피부',
+    '👨🏼‍🫯‍👨🏿' => '레슬링하는 남자: 연한 갈색 피부 검은색 피부',
+    '👨🏽‍🫯‍👨🏻' => '레슬링하는 남자: 갈색 피부 하얀 피부',
+    '👨🏽‍🫯‍👨🏼' => '레슬링하는 남자: 갈색 피부 연한 갈색 피부',
+    '👨🏽‍🫯‍👨🏾' => '레슬링하는 남자: 갈색 피부 진한 갈색 피부',
+    '👨🏽‍🫯‍👨🏿' => '레슬링하는 남자: 갈색 피부 검은색 피부',
+    '👨🏾‍🫯‍👨🏻' => '레슬링하는 남자: 진한 갈색 피부 하얀 피부',
+    '👨🏾‍🫯‍👨🏼' => '레슬링하는 남자: 진한 갈색 피부 연한 갈색 피부',
+    '👨🏾‍🫯‍👨🏽' => '레슬링하는 남자: 진한 갈색 피부 갈색 피부',
+    '👨🏾‍🫯‍👨🏿' => '레슬링하는 남자: 진한 갈색 피부 검은색 피부',
+    '👨🏿‍🫯‍👨🏻' => '레슬링하는 남자: 검은색 피부 하얀 피부',
+    '👨🏿‍🫯‍👨🏼' => '레슬링하는 남자: 검은색 피부 연한 갈색 피부',
+    '👨🏿‍🫯‍👨🏽' => '레슬링하는 남자: 검은색 피부 갈색 피부',
+    '👨🏿‍🫯‍👨🏾' => '레슬링하는 남자: 검은색 피부 진한 갈색 피부',
     '👨🏻‍❤‍👨🏻' => '연인: 남자 남자 하얀 피부',
     '👨🏻‍❤‍👨🏼' => '연인: 남자 남자 하얀 피부 연한 갈색 피부',
     '👨🏻‍❤‍👨🏽' => '연인: 남자 남자 하얀 피부 갈색 피부',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => '연인: 남자 남자 검은색 피부 갈색 피부',
     '👨🏿‍❤‍👨🏾' => '연인: 남자 남자 검은색 피부 진한 갈색 피부',
     '👨🏿‍❤‍👨🏿' => '연인: 남자 남자 검은색 피부',
+    '👨🏻‍🐰‍👨🏼' => '토끼 귀를 쓰고 춤추는 남자들: 하얀 피부 연한 갈색 피부',
+    '👨🏻‍🐰‍👨🏽' => '토끼 귀를 쓰고 춤추는 남자들: 하얀 피부 갈색 피부',
+    '👨🏻‍🐰‍👨🏾' => '토끼 귀를 쓰고 춤추는 남자들: 하얀 피부 진한 갈색 피부',
+    '👨🏻‍🐰‍👨🏿' => '토끼 귀를 쓰고 춤추는 남자들: 하얀 피부 검은색 피부',
+    '👨🏼‍🐰‍👨🏻' => '토끼 귀를 쓰고 춤추는 남자들: 연한 갈색 피부 하얀 피부',
+    '👨🏼‍🐰‍👨🏽' => '토끼 귀를 쓰고 춤추는 남자들: 연한 갈색 피부 갈색 피부',
+    '👨🏼‍🐰‍👨🏾' => '토끼 귀를 쓰고 춤추는 남자들: 연한 갈색 피부 진한 갈색 피부',
+    '👨🏼‍🐰‍👨🏿' => '토끼 귀를 쓰고 춤추는 남자들: 연한 갈색 피부 검은색 피부',
+    '👨🏽‍🐰‍👨🏻' => '토끼 귀를 쓰고 춤추는 남자들: 갈색 피부 하얀 피부',
+    '👨🏽‍🐰‍👨🏼' => '토끼 귀를 쓰고 춤추는 남자들: 갈색 피부 연한 갈색 피부',
+    '👨🏽‍🐰‍👨🏾' => '토끼 귀를 쓰고 춤추는 남자들: 갈색 피부 진한 갈색 피부',
+    '👨🏽‍🐰‍👨🏿' => '토끼 귀를 쓰고 춤추는 남자들: 갈색 피부 검은색 피부',
+    '👨🏾‍🐰‍👨🏻' => '토끼 귀를 쓰고 춤추는 남자들: 진한 갈색 피부 하얀 피부',
+    '👨🏾‍🐰‍👨🏼' => '토끼 귀를 쓰고 춤추는 남자들: 진한 갈색 피부 연한 갈색 피부',
+    '👨🏾‍🐰‍👨🏽' => '토끼 귀를 쓰고 춤추는 남자들: 진한 갈색 피부 갈색 피부',
+    '👨🏾‍🐰‍👨🏿' => '토끼 귀를 쓰고 춤추는 남자들: 진한 갈색 피부 검은색 피부',
+    '👨🏿‍🐰‍👨🏻' => '토끼 귀를 쓰고 춤추는 남자들: 검은색 피부 하얀 피부',
+    '👨🏿‍🐰‍👨🏼' => '토끼 귀를 쓰고 춤추는 남자들: 검은색 피부 연한 갈색 피부',
+    '👨🏿‍🐰‍👨🏽' => '토끼 귀를 쓰고 춤추는 남자들: 검은색 피부 갈색 피부',
+    '👨🏿‍🐰‍👨🏾' => '토끼 귀를 쓰고 춤추는 남자들: 검은색 피부 진한 갈색 피부',
+    '👩🏻‍🫯‍👩🏼' => '레슬링하는 여자: 하얀 피부 연한 갈색 피부',
+    '👩🏻‍🫯‍👩🏽' => '레슬링하는 여자: 하얀 피부 갈색 피부',
+    '👩🏻‍🫯‍👩🏾' => '레슬링하는 여자: 하얀 피부 진한 갈색 피부',
+    '👩🏻‍🫯‍👩🏿' => '레슬링하는 여자: 하얀 피부 검은색 피부',
+    '👩🏼‍🫯‍👩🏻' => '레슬링하는 여자: 연한 갈색 피부 하얀 피부',
+    '👩🏼‍🫯‍👩🏽' => '레슬링하는 여자: 연한 갈색 피부 갈색 피부',
+    '👩🏼‍🫯‍👩🏾' => '레슬링하는 여자: 연한 갈색 피부 진한 갈색 피부',
+    '👩🏼‍🫯‍👩🏿' => '레슬링하는 여자: 연한 갈색 피부 검은색 피부',
+    '👩🏽‍🫯‍👩🏻' => '레슬링하는 여자: 갈색 피부 하얀 피부',
+    '👩🏽‍🫯‍👩🏼' => '레슬링하는 여자: 갈색 피부 연한 갈색 피부',
+    '👩🏽‍🫯‍👩🏾' => '레슬링하는 여자: 갈색 피부 진한 갈색 피부',
+    '👩🏽‍🫯‍👩🏿' => '레슬링하는 여자: 갈색 피부 검은색 피부',
+    '👩🏾‍🫯‍👩🏻' => '레슬링하는 여자: 진한 갈색 피부 하얀 피부',
+    '👩🏾‍🫯‍👩🏼' => '레슬링하는 여자: 진한 갈색 피부 연한 갈색 피부',
+    '👩🏾‍🫯‍👩🏽' => '레슬링하는 여자: 진한 갈색 피부 갈색 피부',
+    '👩🏾‍🫯‍👩🏿' => '레슬링하는 여자: 진한 갈색 피부 검은색 피부',
+    '👩🏿‍🫯‍👩🏻' => '레슬링하는 여자: 검은색 피부 하얀 피부',
+    '👩🏿‍🫯‍👩🏼' => '레슬링하는 여자: 검은색 피부 연한 갈색 피부',
+    '👩🏿‍🫯‍👩🏽' => '레슬링하는 여자: 검은색 피부 갈색 피부',
+    '👩🏿‍🫯‍👩🏾' => '레슬링하는 여자: 검은색 피부 진한 갈색 피부',
     '👩🏻‍❤‍👨🏻' => '연인: 여자 남자 하얀 피부',
     '👩🏻‍❤‍👨🏼' => '연인: 여자 남자 하얀 피부 연한 갈색 피부',
     '👩🏻‍❤‍👨🏽' => '연인: 여자 남자 하얀 피부 갈색 피부',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => '연인: 여자 여자 검은색 피부 갈색 피부',
     '👩🏿‍❤‍👩🏾' => '연인: 여자 여자 검은색 피부 진한 갈색 피부',
     '👩🏿‍❤‍👩🏿' => '연인: 여자 여자 검은색 피부',
+    '👩🏻‍🐰‍👩🏼' => '토끼 귀를 쓰고 춤추는 여자들: 하얀 피부 연한 갈색 피부',
+    '👩🏻‍🐰‍👩🏽' => '토끼 귀를 쓰고 춤추는 여자들: 하얀 피부 갈색 피부',
+    '👩🏻‍🐰‍👩🏾' => '토끼 귀를 쓰고 춤추는 여자들: 하얀 피부 진한 갈색 피부',
+    '👩🏻‍🐰‍👩🏿' => '토끼 귀를 쓰고 춤추는 여자들: 하얀 피부 검은색 피부',
+    '👩🏼‍🐰‍👩🏻' => '토끼 귀를 쓰고 춤추는 여자들: 연한 갈색 피부 하얀 피부',
+    '👩🏼‍🐰‍👩🏽' => '토끼 귀를 쓰고 춤추는 여자들: 연한 갈색 피부 갈색 피부',
+    '👩🏼‍🐰‍👩🏾' => '토끼 귀를 쓰고 춤추는 여자들: 연한 갈색 피부 진한 갈색 피부',
+    '👩🏼‍🐰‍👩🏿' => '토끼 귀를 쓰고 춤추는 여자들: 연한 갈색 피부 검은색 피부',
+    '👩🏽‍🐰‍👩🏻' => '토끼 귀를 쓰고 춤추는 여자들: 갈색 피부 하얀 피부',
+    '👩🏽‍🐰‍👩🏼' => '토끼 귀를 쓰고 춤추는 여자들: 갈색 피부 연한 갈색 피부',
+    '👩🏽‍🐰‍👩🏾' => '토끼 귀를 쓰고 춤추는 여자들: 갈색 피부 진한 갈색 피부',
+    '👩🏽‍🐰‍👩🏿' => '토끼 귀를 쓰고 춤추는 여자들: 갈색 피부 검은색 피부',
+    '👩🏾‍🐰‍👩🏻' => '토끼 귀를 쓰고 춤추는 여자들: 진한 갈색 피부 하얀 피부',
+    '👩🏾‍🐰‍👩🏼' => '토끼 귀를 쓰고 춤추는 여자들: 진한 갈색 피부 연한 갈색 피부',
+    '👩🏾‍🐰‍👩🏽' => '토끼 귀를 쓰고 춤추는 여자들: 진한 갈색 피부 갈색 피부',
+    '👩🏾‍🐰‍👩🏿' => '토끼 귀를 쓰고 춤추는 여자들: 진한 갈색 피부 검은색 피부',
+    '👩🏿‍🐰‍👩🏻' => '토끼 귀를 쓰고 춤추는 여자들: 검은색 피부 하얀 피부',
+    '👩🏿‍🐰‍👩🏼' => '토끼 귀를 쓰고 춤추는 여자들: 검은색 피부 연한 갈색 피부',
+    '👩🏿‍🐰‍👩🏽' => '토끼 귀를 쓰고 춤추는 여자들: 검은색 피부 갈색 피부',
+    '👩🏿‍🐰‍👩🏾' => '토끼 귀를 쓰고 춤추는 여자들: 검은색 피부 진한 갈색 피부',
     '🧑🏻‍🤝‍🧑🏻' => '손을 잡고 있는 두 명의 사람: 하얀 피부',
     '🧑🏻‍🤝‍🧑🏼' => '손을 잡고 있는 두 명의 사람: 하얀 피부 연한 갈색 피부',
     '🧑🏻‍🤝‍🧑🏽' => '손을 잡고 있는 두 명의 사람: 하얀 피부 갈색 피부',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => '깃발: 스코틀랜드',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => '깃발: 웨일즈',
     '🧑‍🧑‍🧒‍🧒' => '가족: 성인, 성인, 아이, 아이',
-    '🚶🏻‍♀‍➡' => '오른쪽을 향한 걷는 여자',
-    '🚶🏼‍♀‍➡' => '오른쪽을 향한 걷는 여자',
-    '🚶🏽‍♀‍➡' => '오른쪽을 향한 걷는 여자',
-    '🚶🏾‍♀‍➡' => '오른쪽을 향한 걷는 여자',
-    '🚶🏿‍♀‍➡' => '오른쪽을 향한 걷는 여자',
-    '🚶🏻‍♂‍➡' => '오른쪽을 향한 걷는 남자',
-    '🚶🏼‍♂‍➡' => '오른쪽을 향한 걷는 남자',
-    '🚶🏽‍♂‍➡' => '오른쪽을 향한 걷는 남자',
-    '🚶🏾‍♂‍➡' => '오른쪽을 향한 걷는 남자',
-    '🚶🏿‍♂‍➡' => '오른쪽을 향한 걷는 남자',
-    '🧎🏻‍♀‍➡' => '오른쪽을 향한 무릎을 꿇은 여자',
-    '🧎🏼‍♀‍➡' => '오른쪽을 향한 무릎을 꿇은 여자',
-    '🧎🏽‍♀‍➡' => '오른쪽을 향한 무릎을 꿇은 여자',
-    '🧎🏾‍♀‍➡' => '오른쪽을 향한 무릎을 꿇은 여자',
-    '🧎🏿‍♀‍➡' => '오른쪽을 향한 무릎을 꿇은 여자',
-    '🧎🏻‍♂‍➡' => '오른쪽을 향한 무릎을 꿇은 남자',
-    '🧎🏼‍♂‍➡' => '오른쪽을 향한 무릎을 꿇은 남자',
-    '🧎🏽‍♂‍➡' => '오른쪽을 향한 무릎을 꿇은 남자',
-    '🧎🏾‍♂‍➡' => '오른쪽을 향한 무릎을 꿇은 남자',
-    '🧎🏿‍♂‍➡' => '오른쪽을 향한 무릎을 꿇은 남자',
-    '🧑🏻‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 사람',
-    '🧑🏼‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 사람',
-    '🧑🏽‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 사람',
-    '🧑🏾‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 사람',
-    '🧑🏿‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 사람',
-    '👨🏻‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 남자',
-    '👨🏼‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 남자',
-    '👨🏽‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 남자',
-    '👨🏾‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 남자',
-    '👨🏿‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 남자',
-    '👩🏻‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 여자',
-    '👩🏼‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 여자',
-    '👩🏽‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 여자',
-    '👩🏾‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 여자',
-    '👩🏿‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 여자',
-    '🧑🏻‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 사람',
-    '🧑🏼‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 사람',
-    '🧑🏽‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 사람',
-    '🧑🏾‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 사람',
-    '🧑🏿‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 사람',
-    '👨🏻‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 남자',
-    '👨🏼‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 남자',
-    '👨🏽‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 남자',
-    '👨🏾‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 남자',
-    '👨🏿‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 남자',
-    '👩🏻‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 여자',
-    '👩🏼‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 여자',
-    '👩🏽‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 여자',
-    '👩🏾‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 여자',
-    '👩🏿‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 여자',
-    '🧑🏻‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 사람',
-    '🧑🏼‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 사람',
-    '🧑🏽‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 사람',
-    '🧑🏾‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 사람',
-    '🧑🏿‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 사람',
-    '👨🏻‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 남자',
-    '👨🏼‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 남자',
-    '👨🏽‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 남자',
-    '👨🏾‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 남자',
-    '👨🏿‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 남자',
-    '👩🏻‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 여자',
-    '👩🏼‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 여자',
-    '👩🏽‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 여자',
-    '👩🏾‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 여자',
-    '👩🏿‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 여자',
-    '🏃🏻‍♀‍➡' => '오른쪽을 향한 뛰는 여자',
-    '🏃🏼‍♀‍➡' => '오른쪽을 향한 뛰는 여자',
-    '🏃🏽‍♀‍➡' => '오른쪽을 향한 뛰는 여자',
-    '🏃🏾‍♀‍➡' => '오른쪽을 향한 뛰는 여자',
-    '🏃🏿‍♀‍➡' => '오른쪽을 향한 뛰는 여자',
-    '🏃🏻‍♂‍➡' => '오른쪽을 향한 뛰는 남자',
-    '🏃🏼‍♂‍➡' => '오른쪽을 향한 뛰는 남자',
-    '🏃🏽‍♂‍➡' => '오른쪽을 향한 뛰는 남자',
-    '🏃🏾‍♂‍➡' => '오른쪽을 향한 뛰는 남자',
-    '🏃🏿‍♂‍➡' => '오른쪽을 향한 뛰는 남자',
+    '🚶🏻‍♀‍➡' => '걷는 여자: 하얀 피부 오른쪽을 향한',
+    '🚶🏼‍♀‍➡' => '걷는 여자: 연한 갈색 피부 오른쪽을 향한',
+    '🚶🏽‍♀‍➡' => '걷는 여자: 갈색 피부 오른쪽을 향한',
+    '🚶🏾‍♀‍➡' => '걷는 여자: 진한 갈색 피부 오른쪽을 향한',
+    '🚶🏿‍♀‍➡' => '걷는 여자: 검은색 피부 오른쪽을 향한',
+    '🚶🏻‍♂‍➡' => '걷는 남자: 하얀 피부 오른쪽을 향한',
+    '🚶🏼‍♂‍➡' => '걷는 남자: 연한 갈색 피부 오른쪽을 향한',
+    '🚶🏽‍♂‍➡' => '걷는 남자: 갈색 피부 오른쪽을 향한',
+    '🚶🏾‍♂‍➡' => '걷는 남자: 진한 갈색 피부 오른쪽을 향한',
+    '🚶🏿‍♂‍➡' => '걷는 남자: 검은색 피부 오른쪽을 향한',
+    '🧎🏻‍♀‍➡' => '무릎을 꿇은 여자: 하얀 피부 오른쪽을 향한',
+    '🧎🏼‍♀‍➡' => '무릎을 꿇은 여자: 연한 갈색 피부 오른쪽을 향한',
+    '🧎🏽‍♀‍➡' => '무릎을 꿇은 여자: 갈색 피부 오른쪽을 향한',
+    '🧎🏾‍♀‍➡' => '무릎을 꿇은 여자: 진한 갈색 피부 오른쪽을 향한',
+    '🧎🏿‍♀‍➡' => '무릎을 꿇은 여자: 검은색 피부 오른쪽을 향한',
+    '🧎🏻‍♂‍➡' => '무릎을 꿇은 남자: 하얀 피부 오른쪽을 향한',
+    '🧎🏼‍♂‍➡' => '무릎을 꿇은 남자: 연한 갈색 피부 오른쪽을 향한',
+    '🧎🏽‍♂‍➡' => '무릎을 꿇은 남자: 갈색 피부 오른쪽을 향한',
+    '🧎🏾‍♂‍➡' => '무릎을 꿇은 남자: 진한 갈색 피부 오른쪽을 향한',
+    '🧎🏿‍♂‍➡' => '무릎을 꿇은 남자: 검은색 피부 오른쪽을 향한',
+    '🧑🏻‍🦯‍➡' => '지팡이를 든 사람: 하얀 피부 오른쪽을 향한',
+    '🧑🏼‍🦯‍➡' => '지팡이를 든 사람: 연한 갈색 피부 오른쪽을 향한',
+    '🧑🏽‍🦯‍➡' => '지팡이를 든 사람: 갈색 피부 오른쪽을 향한',
+    '🧑🏾‍🦯‍➡' => '지팡이를 든 사람: 진한 갈색 피부 오른쪽을 향한',
+    '🧑🏿‍🦯‍➡' => '지팡이를 든 사람: 검은색 피부 오른쪽을 향한',
+    '👨🏻‍🦯‍➡' => '지팡이를 든 남자: 하얀 피부 오른쪽을 향한',
+    '👨🏼‍🦯‍➡' => '지팡이를 든 남자: 연한 갈색 피부 오른쪽을 향한',
+    '👨🏽‍🦯‍➡' => '지팡이를 든 남자: 갈색 피부 오른쪽을 향한',
+    '👨🏾‍🦯‍➡' => '지팡이를 든 남자: 진한 갈색 피부 오른쪽을 향한',
+    '👨🏿‍🦯‍➡' => '지팡이를 든 남자: 검은색 피부 오른쪽을 향한',
+    '👩🏻‍🦯‍➡' => '지팡이를 든 여자: 하얀 피부 오른쪽을 향한',
+    '👩🏼‍🦯‍➡' => '지팡이를 든 여자: 연한 갈색 피부 오른쪽을 향한',
+    '👩🏽‍🦯‍➡' => '지팡이를 든 여자: 갈색 피부 오른쪽을 향한',
+    '👩🏾‍🦯‍➡' => '지팡이를 든 여자: 진한 갈색 피부 오른쪽을 향한',
+    '👩🏿‍🦯‍➡' => '지팡이를 든 여자: 검은색 피부 오른쪽을 향한',
+    '🧑🏻‍🦼‍➡' => '전동 휠체어를 탄 사람: 하얀 피부 오른쪽을 향한',
+    '🧑🏼‍🦼‍➡' => '전동 휠체어를 탄 사람: 연한 갈색 피부 오른쪽을 향한',
+    '🧑🏽‍🦼‍➡' => '전동 휠체어를 탄 사람: 갈색 피부 오른쪽을 향한',
+    '🧑🏾‍🦼‍➡' => '전동 휠체어를 탄 사람: 진한 갈색 피부 오른쪽을 향한',
+    '🧑🏿‍🦼‍➡' => '전동 휠체어를 탄 사람: 검은색 피부 오른쪽을 향한',
+    '👨🏻‍🦼‍➡' => '전동 휠체어를 탄 남자: 하얀 피부 오른쪽을 향한',
+    '👨🏼‍🦼‍➡' => '전동 휠체어를 탄 남자: 연한 갈색 피부 오른쪽을 향한',
+    '👨🏽‍🦼‍➡' => '전동 휠체어를 탄 남자: 갈색 피부 오른쪽을 향한',
+    '👨🏾‍🦼‍➡' => '전동 휠체어를 탄 남자: 진한 갈색 피부 오른쪽을 향한',
+    '👨🏿‍🦼‍➡' => '전동 휠체어를 탄 남자: 검은색 피부 오른쪽을 향한',
+    '👩🏻‍🦼‍➡' => '전동 휠체어를 탄 여자: 하얀 피부 오른쪽을 향한',
+    '👩🏼‍🦼‍➡' => '전동 휠체어를 탄 여자: 연한 갈색 피부 오른쪽을 향한',
+    '👩🏽‍🦼‍➡' => '전동 휠체어를 탄 여자: 갈색 피부 오른쪽을 향한',
+    '👩🏾‍🦼‍➡' => '전동 휠체어를 탄 여자: 진한 갈색 피부 오른쪽을 향한',
+    '👩🏿‍🦼‍➡' => '전동 휠체어를 탄 여자: 검은색 피부 오른쪽을 향한',
+    '🧑🏻‍🦽‍➡' => '수동 휠체어를 탄 사람: 하얀 피부 오른쪽을 향한',
+    '🧑🏼‍🦽‍➡' => '수동 휠체어를 탄 사람: 연한 갈색 피부 오른쪽을 향한',
+    '🧑🏽‍🦽‍➡' => '수동 휠체어를 탄 사람: 갈색 피부 오른쪽을 향한',
+    '🧑🏾‍🦽‍➡' => '수동 휠체어를 탄 사람: 진한 갈색 피부 오른쪽을 향한',
+    '🧑🏿‍🦽‍➡' => '수동 휠체어를 탄 사람: 검은색 피부 오른쪽을 향한',
+    '👨🏻‍🦽‍➡' => '수동 휠체어를 탄 남자: 하얀 피부 오른쪽을 향한',
+    '👨🏼‍🦽‍➡' => '수동 휠체어를 탄 남자: 연한 갈색 피부 오른쪽을 향한',
+    '👨🏽‍🦽‍➡' => '수동 휠체어를 탄 남자: 갈색 피부 오른쪽을 향한',
+    '👨🏾‍🦽‍➡' => '수동 휠체어를 탄 남자: 진한 갈색 피부 오른쪽을 향한',
+    '👨🏿‍🦽‍➡' => '수동 휠체어를 탄 남자: 검은색 피부 오른쪽을 향한',
+    '👩🏻‍🦽‍➡' => '수동 휠체어를 탄 여자: 하얀 피부 오른쪽을 향한',
+    '👩🏼‍🦽‍➡' => '수동 휠체어를 탄 여자: 연한 갈색 피부 오른쪽을 향한',
+    '👩🏽‍🦽‍➡' => '수동 휠체어를 탄 여자: 갈색 피부 오른쪽을 향한',
+    '👩🏾‍🦽‍➡' => '수동 휠체어를 탄 여자: 진한 갈색 피부 오른쪽을 향한',
+    '👩🏿‍🦽‍➡' => '수동 휠체어를 탄 여자: 검은색 피부 오른쪽을 향한',
+    '🏃🏻‍♀‍➡' => '뛰는 여자: 하얀 피부 오른쪽을 향한',
+    '🏃🏼‍♀‍➡' => '뛰는 여자: 연한 갈색 피부 오른쪽을 향한',
+    '🏃🏽‍♀‍➡' => '뛰는 여자: 갈색 피부 오른쪽을 향한',
+    '🏃🏾‍♀‍➡' => '뛰는 여자: 진한 갈색 피부 오른쪽을 향한',
+    '🏃🏿‍♀‍➡' => '뛰는 여자: 검은색 피부 오른쪽을 향한',
+    '🏃🏻‍♂‍➡' => '뛰는 남자: 하얀 피부 오른쪽을 향한',
+    '🏃🏼‍♂‍➡' => '뛰는 남자: 연한 갈색 피부 오른쪽을 향한',
+    '🏃🏽‍♂‍➡' => '뛰는 남자: 갈색 피부 오른쪽을 향한',
+    '🏃🏾‍♂‍➡' => '뛰는 남자: 진한 갈색 피부 오른쪽을 향한',
+    '🏃🏿‍♂‍➡' => '뛰는 남자: 검은색 피부 오른쪽을 향한',
     '🫱🏻‍🫲🏼' => '악수: 하얀 피부 연한 갈색 피부',
     '🫱🏻‍🫲🏽' => '악수: 하얀 피부 갈색 피부',
     '🫱🏻‍🫲🏾' => '악수: 하얀 피부 진한 갈색 피부',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => '악수: 검은색 피부 연한 갈색 피부',
     '🫱🏿‍🫲🏽' => '악수: 검은색 피부 갈색 피부',
     '🫱🏿‍🫲🏾' => '악수: 검은색 피부 진한 갈색 피부',
-    '🚶‍♀‍➡' => '오른쪽을 향한 걷는 여자',
-    '🚶‍♂‍➡' => '오른쪽을 향한 걷는 남자',
-    '🧎‍♀‍➡' => '오른쪽을 향한 무릎을 꿇은 여자',
-    '🧎‍♂‍➡' => '오른쪽을 향한 무릎을 꿇은 남자',
-    '🧑‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 사람',
-    '👨‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 남자',
-    '👩‍🦯‍➡' => '오른쪽을 향한 지팡이를 든 여자',
-    '🧑‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 사람',
-    '👨‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 남자',
-    '👩‍🦼‍➡' => '오른쪽을 향한 전동 휠체어를 탄 여자',
-    '🧑‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 사람',
-    '👨‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 남자',
-    '👩‍🦽‍➡' => '오른쪽을 향한 수동 휠체어를 탄 여자',
-    '🏃‍♀‍➡' => '오른쪽을 향한 뛰는 여자',
-    '🏃‍♂‍➡' => '오른쪽을 향한 뛰는 남자',
+    '🚶‍♀‍➡' => '걷는 여자: 오른쪽을 향한',
+    '🚶‍♂‍➡' => '걷는 남자: 오른쪽을 향한',
+    '🧎‍♀‍➡' => '무릎을 꿇은 여자: 오른쪽을 향한',
+    '🧎‍♂‍➡' => '무릎을 꿇은 남자: 오른쪽을 향한',
+    '🧑‍🦯‍➡' => '지팡이를 든 사람: 오른쪽을 향한',
+    '👨‍🦯‍➡' => '지팡이를 든 남자: 오른쪽을 향한',
+    '👩‍🦯‍➡' => '지팡이를 든 여자: 오른쪽을 향한',
+    '🧑‍🦼‍➡' => '전동 휠체어를 탄 사람: 오른쪽을 향한',
+    '👨‍🦼‍➡' => '전동 휠체어를 탄 남자: 오른쪽을 향한',
+    '👩‍🦼‍➡' => '전동 휠체어를 탄 여자: 오른쪽을 향한',
+    '🧑‍🦽‍➡' => '수동 휠체어를 탄 사람: 오른쪽을 향한',
+    '👨‍🦽‍➡' => '수동 휠체어를 탄 남자: 오른쪽을 향한',
+    '👩‍🦽‍➡' => '수동 휠체어를 탄 여자: 오른쪽을 향한',
+    '🏃‍♀‍➡' => '뛰는 여자: 오른쪽을 향한',
+    '🏃‍♂‍➡' => '뛰는 남자: 오른쪽을 향한',
     '👩‍❤‍👨' => '연인: 여자 남자',
     '👨‍❤‍👨' => '연인: 남자 남자',
     '👩‍❤‍👩' => '연인: 여자 여자',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => '사람: 갈색 피부 대머리',
     '🧑🏾‍🦲' => '사람: 진한 갈색 피부 대머리',
     '🧑🏿‍🦲' => '사람: 검은색 피부 대머리',
+    '🧑🏻‍🩰' => '발레 무용수: 하얀 피부',
+    '🧑🏼‍🩰' => '발레 무용수: 연한 갈색 피부',
+    '🧑🏽‍🩰' => '발레 무용수: 갈색 피부',
+    '🧑🏾‍🩰' => '발레 무용수: 진한 갈색 피부',
+    '🧑🏿‍🩰' => '발레 무용수: 검은색 피부',
     '🧔🏻‍♂' => '수염 난 남자: 하얀 피부',
     '🧔🏼‍♂' => '수염 난 남자: 연한 갈색 피부',
     '🧔🏽‍♂' => '수염 난 남자: 갈색 피부',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => '걷는 여자: 갈색 피부',
     '🚶🏾‍♀' => '걷는 여자: 진한 갈색 피부',
     '🚶🏿‍♀' => '걷는 여자: 검은색 피부',
-    '🚶🏻‍➡' => '오른쪽을 향한 보행자',
-    '🚶🏼‍➡' => '오른쪽을 향한 보행자',
-    '🚶🏽‍➡' => '오른쪽을 향한 보행자',
-    '🚶🏾‍➡' => '오른쪽을 향한 보행자',
-    '🚶🏿‍➡' => '오른쪽을 향한 보행자',
+    '🚶🏻‍➡' => '보행자: 하얀 피부 오른쪽을 향한',
+    '🚶🏼‍➡' => '보행자: 연한 갈색 피부 오른쪽을 향한',
+    '🚶🏽‍➡' => '보행자: 갈색 피부 오른쪽을 향한',
+    '🚶🏾‍➡' => '보행자: 진한 갈색 피부 오른쪽을 향한',
+    '🚶🏿‍➡' => '보행자: 검은색 피부 오른쪽을 향한',
     '🧍🏻‍♂' => '서 있는 남자: 하얀 피부',
     '🧍🏼‍♂' => '서 있는 남자: 연한 갈색 피부',
     '🧍🏽‍♂' => '서 있는 남자: 갈색 피부',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => '무릎을 꿇은 여자: 갈색 피부',
     '🧎🏾‍♀' => '무릎을 꿇은 여자: 진한 갈색 피부',
     '🧎🏿‍♀' => '무릎을 꿇은 여자: 검은색 피부',
-    '🧎🏻‍➡' => '오른쪽을 향한 무릎을 꿇은 사람',
-    '🧎🏼‍➡' => '오른쪽을 향한 무릎을 꿇은 사람',
-    '🧎🏽‍➡' => '오른쪽을 향한 무릎을 꿇은 사람',
-    '🧎🏾‍➡' => '오른쪽을 향한 무릎을 꿇은 사람',
-    '🧎🏿‍➡' => '오른쪽을 향한 무릎을 꿇은 사람',
+    '🧎🏻‍➡' => '무릎을 꿇은 사람: 하얀 피부 오른쪽을 향한',
+    '🧎🏼‍➡' => '무릎을 꿇은 사람: 연한 갈색 피부 오른쪽을 향한',
+    '🧎🏽‍➡' => '무릎을 꿇은 사람: 갈색 피부 오른쪽을 향한',
+    '🧎🏾‍➡' => '무릎을 꿇은 사람: 진한 갈색 피부 오른쪽을 향한',
+    '🧎🏿‍➡' => '무릎을 꿇은 사람: 검은색 피부 오른쪽을 향한',
     '🧑🏻‍🦯' => '지팡이를 든 사람: 하얀 피부',
     '🧑🏼‍🦯' => '지팡이를 든 사람: 연한 갈색 피부',
     '🧑🏽‍🦯' => '지팡이를 든 사람: 갈색 피부',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => '뛰는 여자: 갈색 피부',
     '🏃🏾‍♀' => '뛰는 여자: 진한 갈색 피부',
     '🏃🏿‍♀' => '뛰는 여자: 검은색 피부',
-    '🏃🏻‍➡' => '오른쪽을 향한 뛰는 사람',
-    '🏃🏼‍➡' => '오른쪽을 향한 뛰는 사람',
-    '🏃🏽‍➡' => '오른쪽을 향한 뛰는 사람',
-    '🏃🏾‍➡' => '오른쪽을 향한 뛰는 사람',
-    '🏃🏿‍➡' => '오른쪽을 향한 뛰는 사람',
+    '🏃🏻‍➡' => '뛰는 사람: 하얀 피부 오른쪽을 향한',
+    '🏃🏼‍➡' => '뛰는 사람: 연한 갈색 피부 오른쪽을 향한',
+    '🏃🏽‍➡' => '뛰는 사람: 갈색 피부 오른쪽을 향한',
+    '🏃🏾‍➡' => '뛰는 사람: 진한 갈색 피부 오른쪽을 향한',
+    '🏃🏿‍➡' => '뛰는 사람: 검은색 피부 오른쪽을 향한',
+    '👯🏻‍♀' => '토끼 귀를 쓰고 춤추는 여자들: 하얀 피부',
+    '👯🏼‍♀' => '토끼 귀를 쓰고 춤추는 여자들: 연한 갈색 피부',
+    '👯🏽‍♀' => '토끼 귀를 쓰고 춤추는 여자들: 갈색 피부',
+    '👯🏾‍♀' => '토끼 귀를 쓰고 춤추는 여자들: 진한 갈색 피부',
+    '👯🏿‍♀' => '토끼 귀를 쓰고 춤추는 여자들: 검은색 피부',
+    '👯🏻‍♂' => '토끼 귀를 쓰고 춤추는 남자들: 하얀 피부',
+    '👯🏼‍♂' => '토끼 귀를 쓰고 춤추는 남자들: 연한 갈색 피부',
+    '👯🏽‍♂' => '토끼 귀를 쓰고 춤추는 남자들: 갈색 피부',
+    '👯🏾‍♂' => '토끼 귀를 쓰고 춤추는 남자들: 진한 갈색 피부',
+    '👯🏿‍♂' => '토끼 귀를 쓰고 춤추는 남자들: 검은색 피부',
     '🧖🏻‍♂' => '사우나 하는 남자: 하얀 피부',
     '🧖🏼‍♂' => '사우나 하는 남자: 연한 갈색 피부',
     '🧖🏽‍♂' => '사우나 하는 남자: 갈색 피부',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => '옆돌기하는 여자: 갈색 피부',
     '🤸🏾‍♀' => '옆돌기하는 여자: 진한 갈색 피부',
     '🤸🏿‍♀' => '옆돌기하는 여자: 검은색 피부',
+    '🤼🏻‍♀' => '레슬링하는 여자: 하얀 피부',
+    '🤼🏼‍♀' => '레슬링하는 여자: 연한 갈색 피부',
+    '🤼🏽‍♀' => '레슬링하는 여자: 갈색 피부',
+    '🤼🏾‍♀' => '레슬링하는 여자: 진한 갈색 피부',
+    '🤼🏿‍♀' => '레슬링하는 여자: 검은색 피부',
+    '🤼🏻‍♂' => '레슬링하는 남자: 하얀 피부',
+    '🤼🏼‍♂' => '레슬링하는 남자: 연한 갈색 피부',
+    '🤼🏽‍♂' => '레슬링하는 남자: 갈색 피부',
+    '🤼🏾‍♂' => '레슬링하는 남자: 진한 갈색 피부',
+    '🤼🏿‍♂' => '레슬링하는 남자: 검은색 피부',
     '🤽🏻‍♂' => '수구하는 남자: 하얀 피부',
     '🤽🏼‍♂' => '수구하는 남자: 연한 갈색 피부',
     '🤽🏽‍♂' => '수구하는 남자: 갈색 피부',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => '여자: 곱슬머리',
     '👩‍🦳' => '여자: 백발',
     '👩‍🦲' => '여자: 대머리',
-    '🚶‍➡' => '오른쪽을 향한 보행자',
-    '🧎‍➡' => '오른쪽을 향한 무릎을 꿇은 사람',
-    '🏃‍➡' => '오른쪽을 향한 뛰는 사람',
+    '🚶‍➡' => '보행자: 오른쪽을 향한',
+    '🧎‍➡' => '무릎을 꿇은 사람: 오른쪽을 향한',
+    '🏃‍➡' => '뛰는 사람: 오른쪽을 향한',
     '👨‍👦' => '가족: 남자 남자 아이',
     '👨‍👧' => '가족: 남자 여자 아이',
     '👩‍👦' => '가족: 여자 남자 아이',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => '수동 휠체어를 탄 여자',
     '🏃‍♂' => '뛰는 남자',
     '🏃‍♀' => '뛰는 여자',
+    '🧑‍🩰' => '발레 무용수',
     '👯‍♂' => '토끼 귀를 쓰고 춤추는 남자들',
     '👯‍♀' => '토끼 귀를 쓰고 춤추는 여자들',
     '🧖‍♂' => '사우나 하는 남자',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => '공중에 떠 있는 정장 입은 남자: 갈색 피부',
     '🕴🏾' => '공중에 떠 있는 정장 입은 남자: 진한 갈색 피부',
     '🕴🏿' => '공중에 떠 있는 정장 입은 남자: 검은색 피부',
+    '👯🏻' => '토끼 귀를 쓰고 춤추는 사람들: 하얀 피부',
+    '👯🏼' => '토끼 귀를 쓰고 춤추는 사람들: 연한 갈색 피부',
+    '👯🏽' => '토끼 귀를 쓰고 춤추는 사람들: 갈색 피부',
+    '👯🏾' => '토끼 귀를 쓰고 춤추는 사람들: 진한 갈색 피부',
+    '👯🏿' => '토끼 귀를 쓰고 춤추는 사람들: 검은색 피부',
     '🧖🏻' => '사우나 하는 사람: 하얀 피부',
     '🧖🏼' => '사우나 하는 사람: 연한 갈색 피부',
     '🧖🏽' => '사우나 하는 사람: 갈색 피부',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => '옆돌기하는 사람: 갈색 피부',
     '🤸🏾' => '옆돌기하는 사람: 진한 갈색 피부',
     '🤸🏿' => '옆돌기하는 사람: 검은색 피부',
+    '🤼🏻' => '레슬링하는 사람: 하얀 피부',
+    '🤼🏼' => '레슬링하는 사람: 연한 갈색 피부',
+    '🤼🏽' => '레슬링하는 사람: 갈색 피부',
+    '🤼🏾' => '레슬링하는 사람: 진한 갈색 피부',
+    '🤼🏿' => '레슬링하는 사람: 검은색 피부',
     '🤽🏻' => '수구하는 사람: 하얀 피부',
     '🤽🏼' => '수구하는 사람: 연한 갈색 피부',
     '🤽🏽' => '수구하는 사람: 갈색 피부',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => '깃발: 중국',
     '🇨🇴' => '깃발: 콜롬비아',
     '🇨🇵' => '깃발: 클리퍼턴섬',
+    '🇨🇶' => '깃발: 사크',
     '🇨🇷' => '깃발: 코스타리카',
     '🇨🇺' => '깃발: 쿠바',
     '🇨🇻' => '깃발: 카보베르데',
@@ -2390,13 +2547,6 @@
     '🏽' => '갈색 피부',
     '🏾' => '진한 갈색 피부',
     '🏿' => '검은색 피부',
-    '🪉' => '하프',
-    '🪏' => '삽',
-    '🪾' => '잎이 없는 나무',
-    '🫆' => '지문',
-    '🫜' => '뿌리채소',
-    '🫟' => '튀어오른 액체',
-    '🫩' => '다크서클이 있는 얼굴',
     '😀' => '활짝 웃는 얼굴',
     '😃' => '눈을 크게 뜨고 웃는 얼굴',
     '😄' => '미소 짓는 눈으로 활짝 웃는 얼굴',
@@ -2450,6 +2600,7 @@
     '😪' => '졸린 얼굴',
     '🤤' => '침 흘리는 얼굴',
     '😴' => '졸고 있는 얼굴',
+    '🫩' => '다크서클이 있는 얼굴',
     '😷' => '마스크 낀 얼굴',
     '🤒' => '체온계를 물고 있는 얼굴',
     '🤕' => '머리에 붕대를 감은 얼굴',
@@ -2476,6 +2627,7 @@
     '😯' => '숨죽인 얼굴',
     '😲' => '깜짝 놀란 얼굴',
     '😳' => '상기된 얼굴',
+    '🫪' => '왜곡된 얼굴',
     '🥺' => '애원하는 얼굴',
     '🥹' => '눈물을 참는 얼굴',
     '😦' => '입 벌리고 찌푸린 얼굴',
@@ -2547,6 +2699,7 @@
     '💋' => '입술',
     '💯' => '백점',
     '💢' => '화남',
+    '🫯' => '싸움 구름',
     '💥' => '충돌',
     '💫' => '어지러움',
     '💦' => '땀',
@@ -2670,6 +2823,7 @@
     '🧞' => '지니',
     '🧟' => '좀비',
     '🧌' => '트롤',
+    '🫈' => '털복숭이',
     '💆' => '마사지 받는 사람',
     '💇' => '헤어컷',
     '🚶' => '보행자',
@@ -2713,6 +2867,7 @@
     '🫂' => '포옹하는 사람',
     '👪' => '가족',
     '👣' => '발자국',
+    '🫆' => '지문',
     '🦰' => '빨간 머리',
     '🦱' => '곱슬머리',
     '🦳' => '백발',
@@ -2812,6 +2967,7 @@
     '🐳' => '물 뿜는 고래',
     '🐋' => '고래',
     '🐬' => '돌고래',
+    '🫍' => '범고래',
     '🦭' => '물개',
     '🐟' => '물고기',
     '🐠' => '열대어',
@@ -2821,6 +2977,11 @@
     '🐚' => '달팽이집',
     '🪸' => '산호초',
     '🪼' => '해파리',
+    '🦀' => '꽃게',
+    '🦞' => '바닷가재',
+    '🦐' => '새우',
+    '🦑' => '오징어',
+    '🦪' => '굴',
     '🐌' => '달팽이',
     '🦋' => '나비',
     '🐛' => '송충이',
@@ -2865,6 +3026,7 @@
     '🪹' => '빈 둥지',
     '🪺' => '알이 들어 있는 둥지',
     '🍄' => '버섯',
+    '🪾' => '잎이 없는 나무',
     '🍇' => '포도',
     '🍈' => '멜론',
     '🍉' => '수박',
@@ -2901,6 +3063,7 @@
     '🌰' => '밤',
     '🫚' => '생강 뿌리',
     '🫛' => '완두콩 꼬투리',
+    '🫜' => '뿌리채소',
     '🍞' => '빵',
     '🥐' => '크루아상',
     '🥖' => '바게트',
@@ -2952,11 +3115,6 @@
     '🥟' => '만두',
     '🥠' => '포츈 쿠키',
     '🥡' => '테이크아웃 상자',
-    '🦀' => '꽃게',
-    '🦞' => '바닷가재',
-    '🦐' => '새우',
-    '🦑' => '오징어',
-    '🦪' => '굴',
     '🍦' => '소프트 아이스크림',
     '🍧' => '샤베트 아이스크림',
     '🍨' => '아이스크림',
@@ -3007,6 +3165,7 @@
     '🧭' => '나침반',
     '🏔' => '눈 덮인 산',
     '⛰' => '산',
+    '🛘' => '산사태',
     '🌋' => '화산',
     '🗻' => '후지산',
     '🏕' => '캠핑',
@@ -3367,16 +3526,18 @@
     '🎧' => '헤드폰',
     '📻' => '라디오',
     '🎷' => '색소폰',
+    '🎺' => '트럼펫',
+    '🪊' => '트롬본',
     '🪗' => '아코디언',
     '🎸' => '기타',
     '🎹' => '피아노',
-    '🎺' => '트럼펫',
     '🎻' => '바이올린',
     '🪕' => '밴조',
     '🥁' => '드럼',
     '🪘' => '긴 북',
     '🪇' => '마라카스',
     '🪈' => '플루트',
+    '🪉' => '하프',
     '📱' => '휴대전화',
     '📲' => '왼쪽에 화살표가 있는 휴대전화',
     '☎' => '전화기',
@@ -3430,8 +3591,9 @@
     '📑' => '북마크 탭',
     '🔖' => '북마크',
     '🏷' => '라벨',
-    '💰' => '돈주머니',
     '🪙' => '동전',
+    '💰' => '돈주머니',
+    '🪎' => '보물 상자',
     '💴' => '엔',
     '💵' => '달러',
     '💶' => '유로',
@@ -3514,6 +3676,7 @@
     '🧰' => '공구통',
     '🧲' => '자석',
     '🪜' => '사다리',
+    '🪏' => '삽',
     '⚗' => '증류기',
     '🧪' => '시험관',
     '🧫' => '페트리 접시',
@@ -3697,6 +3860,7 @@
     '✴' => '팔각 별',
     '❇' => '반짝임',
     '™' => '상표',
+    '🫟' => '튀어오른 액체',
     '🔠' => '대문자',
     '🔡' => '소문자',
     '🔢' => '숫자',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ku.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ku.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ku.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ku.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,12 +42,12 @@
     '🇨🇦' => 'ala: Kanada',
     '🇨🇨' => 'ala: Giravên Kokosê (Keeling)',
     '🇨🇩' => 'ala: Kongo - Kînşasa',
-    '🇨🇫' => 'ala: Komara Afrîkaya Navîn',
+    '🇨🇫' => 'ala: Cimhûrîyeta Afrîkaya Navîn',
     '🇨🇬' => 'ala: Kongo - Brazzaville',
     '🇨🇭' => 'ala: Swîsre',
     '🇨🇮' => 'ala: Côte d’Ivoire',
     '🇨🇰' => 'ala: Giravên Cookê',
-    '🇨🇱' => 'ala: Şîle',
+    '🇨🇱' => 'ala: Şîlî',
     '🇨🇲' => 'ala: Kamerûn',
     '🇨🇳' => 'ala: Çîn',
     '🇨🇴' => 'ala: Kolombîya',
@@ -65,7 +65,7 @@
     '🇩🇯' => 'ala: Cîbûtî',
     '🇩🇰' => 'ala: Danîmarka',
     '🇩🇲' => 'ala: Domînîka',
-    '🇩🇴' => 'ala: Komara Domînîkê',
+    '🇩🇴' => 'ala: Cimhûrîyeta Domînîkê',
     '🇩🇿' => 'ala: Cezayîr',
     '🇪🇦' => 'ala: Ceuta û Melîla',
     '🇪🇨' => 'ala: Ekwador',
@@ -147,11 +147,11 @@
     '🇲🇦' => 'ala: Fas',
     '🇲🇨' => 'ala: Monako',
     '🇲🇩' => 'ala: Moldova',
-    '🇲🇪' => 'ala: Montenegro',
+    '🇲🇪' => 'ala: Qeredax',
     '🇲🇫' => 'ala: Saint Martin',
     '🇲🇬' => 'ala: Madagaskar',
     '🇲🇭' => 'ala: Giravên Marşalê',
-    '🇲🇰' => 'ala: Makendonyaya Bakur',
+    '🇲🇰' => 'ala: Makedonyaya Bakur',
     '🇲🇱' => 'ala: Malî',
     '🇲🇲' => 'ala: Myanmar (Bûrma)',
     '🇲🇳' => 'ala: Moxolistan',
@@ -162,7 +162,7 @@
     '🇲🇸' => 'ala: Montserat',
     '🇲🇹' => 'ala: Malta',
     '🇲🇺' => 'ala: Mauritius',
-    '🇲🇻' => 'ala: Maldîva',
+    '🇲🇻' => 'ala: Maldîv',
     '🇲🇼' => 'ala: Malawî',
     '🇲🇽' => 'ala: Meksîka',
     '🇲🇾' => 'ala: Malezya',
@@ -174,12 +174,12 @@
     '🇳🇬' => 'ala: Nîjerya',
     '🇳🇮' => 'ala: Nîkaragua',
     '🇳🇱' => 'ala: Holanda',
-    '🇳🇴' => 'ala: Norwêc',
+    '🇳🇴' => 'ala: Norwec',
     '🇳🇵' => 'ala: Nepal',
     '🇳🇷' => 'ala: Naûrû',
     '🇳🇺' => 'ala: Niûe',
     '🇳🇿' => 'ala: Zelandaya Nû',
-    '🇴🇲' => 'ala: Oman',
+    '🇴🇲' => 'ala: Uman',
     '🇵🇦' => 'ala: Panama',
     '🇵🇪' => 'ala: Perû',
     '🇵🇫' => 'ala: Polînezyaya Fransizî',
@@ -190,8 +190,8 @@
     '🇵🇲' => 'ala: Saint-Pierre û Miquelon',
     '🇵🇳' => 'ala: Giravên Pitcairnê',
     '🇵🇷' => 'ala: Porto Rîko',
-    '🇵🇸' => 'ala: Herêmên Filîstînî',
-    '🇵🇹' => 'ala: Portûgal',
+    '🇵🇸' => 'ala: Herêmên Filistînî',
+    '🇵🇹' => 'ala: Portugal',
     '🇵🇼' => 'ala: Palau',
     '🇵🇾' => 'ala: Paragûay',
     '🇶🇦' => 'ala: Qeter',
@@ -227,22 +227,22 @@
     '🇹🇫' => 'ala: Herêmên Başûr ên Fransayê',
     '🇹🇬' => 'ala: Togo',
     '🇹🇭' => 'ala: Tayland',
-    '🇹🇯' => 'ala: Tacîkistan',
+    '🇹🇯' => 'ala: Tacikistan',
     '🇹🇰' => 'ala: Tokelau',
     '🇹🇱' => 'ala: Tîmor-Leste',
     '🇹🇲' => 'ala: Tirkmenistan',
     '🇹🇳' => 'ala: Tûnis',
     '🇹🇴' => 'ala: Tonga',
-    '🇹🇷' => 'ala: Tirkîye',
+    '🇹🇷' => 'ala: Türkiye',
     '🇹🇹' => 'ala: Trînîdad û Tobago',
     '🇹🇻' => 'ala: Tûvalû',
     '🇹🇼' => 'ala: Taywan',
     '🇹🇿' => 'ala: Tanzanya',
     '🇺🇦' => 'ala: Ûkrayna',
     '🇺🇬' => 'ala: Ûganda',
-    '🇺🇲' => 'ala: Giravên Biçûk ên Derveyî DYAyê',
+    '🇺🇲' => 'ala: Giravên Biçûk ên Derveyî DAYê',
     '🇺🇳' => 'ala: Miletên Yekbûyî',
-    '🇺🇸' => 'ala: Dewletên Yekbûyî yên Amerîkayê',
+    '🇺🇸' => 'ala: Dewletên Amerîkayê yên Yekbûyî',
     '🇺🇾' => 'ala: Ûrûguay',
     '🇺🇿' => 'ala: Ozbekistan',
     '🇻🇦' => 'ala: Vatîkan',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ky.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ky.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ky.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ky.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'өбүшүү: аял, аял, кара, орточо',
     '👩🏿‍❤‍💋‍👩🏾' => 'өбүшүү: аял, аял, кара, кара тору',
     '👩🏿‍❤‍💋‍👩🏿' => 'өбүшүү: аял, аял, кара',
+    '🧑🏻‍🫯‍🧑🏼' => 'күрөшчүлөр: акжуумал, буудай жүздүү',
+    '🧑🏻‍🫯‍🧑🏽' => 'күрөшчүлөр: акжуумал, орточо',
+    '🧑🏻‍🫯‍🧑🏾' => 'күрөшчүлөр: акжуумал, кара тору',
+    '🧑🏻‍🫯‍🧑🏿' => 'күрөшчүлөр: акжуумал, кара',
+    '🧑🏼‍🫯‍🧑🏻' => 'күрөшчүлөр: буудай жүздүү, акжуумал',
+    '🧑🏼‍🫯‍🧑🏽' => 'күрөшчүлөр: буудай жүздүү, орточо',
+    '🧑🏼‍🫯‍🧑🏾' => 'күрөшчүлөр: буудай жүздүү, кара тору',
+    '🧑🏼‍🫯‍🧑🏿' => 'күрөшчүлөр: буудай жүздүү, кара',
+    '🧑🏽‍🫯‍🧑🏻' => 'күрөшчүлөр: орточо, акжуумал',
+    '🧑🏽‍🫯‍🧑🏼' => 'күрөшчүлөр: орточо, буудай жүздүү',
+    '🧑🏽‍🫯‍🧑🏾' => 'күрөшчүлөр: орточо, кара тору',
+    '🧑🏽‍🫯‍🧑🏿' => 'күрөшчүлөр: орточо, кара',
+    '🧑🏾‍🫯‍🧑🏻' => 'күрөшчүлөр: кара тору, акжуумал',
+    '🧑🏾‍🫯‍🧑🏼' => 'күрөшчүлөр: кара тору, буудай жүздүү',
+    '🧑🏾‍🫯‍🧑🏽' => 'күрөшчүлөр: кара тору, орточо',
+    '🧑🏾‍🫯‍🧑🏿' => 'күрөшчүлөр: кара тору, кара',
+    '🧑🏿‍🫯‍🧑🏻' => 'күрөшчүлөр: кара, акжуумал',
+    '🧑🏿‍🫯‍🧑🏼' => 'күрөшчүлөр: кара, буудай жүздүү',
+    '🧑🏿‍🫯‍🧑🏽' => 'күрөшчүлөр: кара, орточо',
+    '🧑🏿‍🫯‍🧑🏾' => 'күрөшчүлөр: кара, кара тору',
     '🧑🏻‍❤‍🧑🏼' => 'сүйүшкөн түгөйлөр: адам, адам, акжуумал, буудай жүздүү',
     '🧑🏻‍❤‍🧑🏽' => 'сүйүшкөн түгөйлөр: адам, адам, акжуумал, орточо',
     '🧑🏻‍❤‍🧑🏾' => 'сүйүшкөн түгөйлөр: адам, адам, акжуумал, кара тору',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'сүйүшкөн түгөйлөр: адам, адам, кара, буудай жүздүү',
     '🧑🏿‍❤‍🧑🏽' => 'сүйүшкөн түгөйлөр: адам, адам, кара, орточо',
     '🧑🏿‍❤‍🧑🏾' => 'сүйүшкөн түгөйлөр: адам, адам, кара, кара тору',
+    '🧑🏻‍🐰‍🧑🏼' => 'кыз-келиндер кечеси: акжуумал, буудай жүздүү',
+    '🧑🏻‍🐰‍🧑🏽' => 'кыз-келиндер кечеси: акжуумал, орточо',
+    '🧑🏻‍🐰‍🧑🏾' => 'кыз-келиндер кечеси: акжуумал, кара тору',
+    '🧑🏻‍🐰‍🧑🏿' => 'кыз-келиндер кечеси: акжуумал, кара',
+    '🧑🏼‍🐰‍🧑🏻' => 'кыз-келиндер кечеси: буудай жүздүү, акжуумал',
+    '🧑🏼‍🐰‍🧑🏽' => 'кыз-келиндер кечеси: буудай жүздүү, орточо',
+    '🧑🏼‍🐰‍🧑🏾' => 'кыз-келиндер кечеси: буудай жүздүү, кара тору',
+    '🧑🏼‍🐰‍🧑🏿' => 'кыз-келиндер кечеси: буудай жүздүү, кара',
+    '🧑🏽‍🐰‍🧑🏻' => 'кыз-келиндер кечеси: орточо, акжуумал',
+    '🧑🏽‍🐰‍🧑🏼' => 'кыз-келиндер кечеси: орточо, буудай жүздүү',
+    '🧑🏽‍🐰‍🧑🏾' => 'кыз-келиндер кечеси: орточо, кара тору',
+    '🧑🏽‍🐰‍🧑🏿' => 'кыз-келиндер кечеси: орточо, кара',
+    '🧑🏾‍🐰‍🧑🏻' => 'кыз-келиндер кечеси: кара тору, акжуумал',
+    '🧑🏾‍🐰‍🧑🏼' => 'кыз-келиндер кечеси: кара тору, буудай жүздүү',
+    '🧑🏾‍🐰‍🧑🏽' => 'кыз-келиндер кечеси: кара тору, орточо',
+    '🧑🏾‍🐰‍🧑🏿' => 'кыз-келиндер кечеси: кара тору, кара',
+    '🧑🏿‍🐰‍🧑🏻' => 'кыз-келиндер кечеси: кара, акжуумал',
+    '🧑🏿‍🐰‍🧑🏼' => 'кыз-келиндер кечеси: кара, буудай жүздүү',
+    '🧑🏿‍🐰‍🧑🏽' => 'кыз-келиндер кечеси: кара, орточо',
+    '🧑🏿‍🐰‍🧑🏾' => 'кыз-келиндер кечеси: кара, кара тору',
+    '👨🏻‍🫯‍👨🏼' => 'күрөшүп жаткан эркек: акжуумал, буудай жүздүү',
+    '👨🏻‍🫯‍👨🏽' => 'күрөшүп жаткан эркек: акжуумал, орточо',
+    '👨🏻‍🫯‍👨🏾' => 'күрөшүп жаткан эркек: акжуумал, кара тору',
+    '👨🏻‍🫯‍👨🏿' => 'күрөшүп жаткан эркек: акжуумал, кара',
+    '👨🏼‍🫯‍👨🏻' => 'күрөшүп жаткан эркек: буудай жүздүү, акжуумал',
+    '👨🏼‍🫯‍👨🏽' => 'күрөшүп жаткан эркек: буудай жүздүү, орточо',
+    '👨🏼‍🫯‍👨🏾' => 'күрөшүп жаткан эркек: буудай жүздүү, кара тору',
+    '👨🏼‍🫯‍👨🏿' => 'күрөшүп жаткан эркек: буудай жүздүү, кара',
+    '👨🏽‍🫯‍👨🏻' => 'күрөшүп жаткан эркек: орточо, акжуумал',
+    '👨🏽‍🫯‍👨🏼' => 'күрөшүп жаткан эркек: орточо, буудай жүздүү',
+    '👨🏽‍🫯‍👨🏾' => 'күрөшүп жаткан эркек: орточо, кара тору',
+    '👨🏽‍🫯‍👨🏿' => 'күрөшүп жаткан эркек: орточо, кара',
+    '👨🏾‍🫯‍👨🏻' => 'күрөшүп жаткан эркек: кара тору, акжуумал',
+    '👨🏾‍🫯‍👨🏼' => 'күрөшүп жаткан эркек: кара тору, буудай жүздүү',
+    '👨🏾‍🫯‍👨🏽' => 'күрөшүп жаткан эркек: кара тору, орточо',
+    '👨🏾‍🫯‍👨🏿' => 'күрөшүп жаткан эркек: кара тору, кара',
+    '👨🏿‍🫯‍👨🏻' => 'күрөшүп жаткан эркек: кара, акжуумал',
+    '👨🏿‍🫯‍👨🏼' => 'күрөшүп жаткан эркек: кара, буудай жүздүү',
+    '👨🏿‍🫯‍👨🏽' => 'күрөшүп жаткан эркек: кара, орточо',
+    '👨🏿‍🫯‍👨🏾' => 'күрөшүп жаткан эркек: кара, кара тору',
     '👨🏻‍❤‍👨🏻' => 'сүйүшкөн түгөйлөр: эркек, эркек, акжуумал',
     '👨🏻‍❤‍👨🏼' => 'сүйүшкөн түгөйлөр: эркек, эркек, акжуумал, буудай жүздүү',
     '👨🏻‍❤‍👨🏽' => 'сүйүшкөн түгөйлөр: эркек, эркек, акжуумал, орточо',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'сүйүшкөн түгөйлөр: эркек, эркек, кара, орточо',
     '👨🏿‍❤‍👨🏾' => 'сүйүшкөн түгөйлөр: эркек, эркек, кара, кара тору',
     '👨🏿‍❤‍👨🏿' => 'сүйүшкөн түгөйлөр: эркек, эркек, кара',
+    '👨🏻‍🐰‍👨🏼' => 'коен кулактарын тагынган эркектер: акжуумал, буудай жүздүү',
+    '👨🏻‍🐰‍👨🏽' => 'коен кулактарын тагынган эркектер: акжуумал, орточо',
+    '👨🏻‍🐰‍👨🏾' => 'коен кулактарын тагынган эркектер: акжуумал, кара тору',
+    '👨🏻‍🐰‍👨🏿' => 'коен кулактарын тагынган эркектер: акжуумал, кара',
+    '👨🏼‍🐰‍👨🏻' => 'коен кулактарын тагынган эркектер: буудай жүздүү, акжуумал',
+    '👨🏼‍🐰‍👨🏽' => 'коен кулактарын тагынган эркектер: буудай жүздүү, орточо',
+    '👨🏼‍🐰‍👨🏾' => 'коен кулактарын тагынган эркектер: буудай жүздүү, кара тору',
+    '👨🏼‍🐰‍👨🏿' => 'коен кулактарын тагынган эркектер: буудай жүздүү, кара',
+    '👨🏽‍🐰‍👨🏻' => 'коен кулактарын тагынган эркектер: орточо, акжуумал',
+    '👨🏽‍🐰‍👨🏼' => 'коен кулактарын тагынган эркектер: орточо, буудай жүздүү',
+    '👨🏽‍🐰‍👨🏾' => 'коен кулактарын тагынган эркектер: орточо, кара тору',
+    '👨🏽‍🐰‍👨🏿' => 'коен кулактарын тагынган эркектер: орточо, кара',
+    '👨🏾‍🐰‍👨🏻' => 'коен кулактарын тагынган эркектер: кара тору, акжуумал',
+    '👨🏾‍🐰‍👨🏼' => 'коен кулактарын тагынган эркектер: кара тору, буудай жүздүү',
+    '👨🏾‍🐰‍👨🏽' => 'коен кулактарын тагынган эркектер: кара тору, орточо',
+    '👨🏾‍🐰‍👨🏿' => 'коен кулактарын тагынган эркектер: кара тору, кара',
+    '👨🏿‍🐰‍👨🏻' => 'коен кулактарын тагынган эркектер: кара, акжуумал',
+    '👨🏿‍🐰‍👨🏼' => 'коен кулактарын тагынган эркектер: кара, буудай жүздүү',
+    '👨🏿‍🐰‍👨🏽' => 'коен кулактарын тагынган эркектер: кара, орточо',
+    '👨🏿‍🐰‍👨🏾' => 'коен кулактарын тагынган эркектер: кара, кара тору',
+    '👩🏻‍🫯‍👩🏼' => 'күрөшүп жаткан аял: акжуумал, буудай жүздүү',
+    '👩🏻‍🫯‍👩🏽' => 'күрөшүп жаткан аял: акжуумал, орточо',
+    '👩🏻‍🫯‍👩🏾' => 'күрөшүп жаткан аял: акжуумал, кара тору',
+    '👩🏻‍🫯‍👩🏿' => 'күрөшүп жаткан аял: акжуумал, кара',
+    '👩🏼‍🫯‍👩🏻' => 'күрөшүп жаткан аял: буудай жүздүү, акжуумал',
+    '👩🏼‍🫯‍👩🏽' => 'күрөшүп жаткан аял: буудай жүздүү, орточо',
+    '👩🏼‍🫯‍👩🏾' => 'күрөшүп жаткан аял: буудай жүздүү, кара тору',
+    '👩🏼‍🫯‍👩🏿' => 'күрөшүп жаткан аял: буудай жүздүү, кара',
+    '👩🏽‍🫯‍👩🏻' => 'күрөшүп жаткан аял: орточо, акжуумал',
+    '👩🏽‍🫯‍👩🏼' => 'күрөшүп жаткан аял: орточо, буудай жүздүү',
+    '👩🏽‍🫯‍👩🏾' => 'күрөшүп жаткан аял: орточо, кара тору',
+    '👩🏽‍🫯‍👩🏿' => 'күрөшүп жаткан аял: орточо, кара',
+    '👩🏾‍🫯‍👩🏻' => 'күрөшүп жаткан аял: кара тору, акжуумал',
+    '👩🏾‍🫯‍👩🏼' => 'күрөшүп жаткан аял: кара тору, буудай жүздүү',
+    '👩🏾‍🫯‍👩🏽' => 'күрөшүп жаткан аял: кара тору, орточо',
+    '👩🏾‍🫯‍👩🏿' => 'күрөшүп жаткан аял: кара тору, кара',
+    '👩🏿‍🫯‍👩🏻' => 'күрөшүп жаткан аял: кара, акжуумал',
+    '👩🏿‍🫯‍👩🏼' => 'күрөшүп жаткан аял: кара, буудай жүздүү',
+    '👩🏿‍🫯‍👩🏽' => 'күрөшүп жаткан аял: кара, орточо',
+    '👩🏿‍🫯‍👩🏾' => 'күрөшүп жаткан аял: кара, кара тору',
     '👩🏻‍❤‍👨🏻' => 'сүйүшкөн түгөйлөр: аял, эркек, акжуумал',
     '👩🏻‍❤‍👨🏼' => 'сүйүшкөн түгөйлөр: аял, эркек, акжуумал, буудай жүздүү',
     '👩🏻‍❤‍👨🏽' => 'сүйүшкөн түгөйлөр: аял, эркек, акжуумал, орточо',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'сүйүшкөн түгөйлөр: аял, аял, кара, орточо',
     '👩🏿‍❤‍👩🏾' => 'сүйүшкөн түгөйлөр: аял, аял, кара, кара тору',
     '👩🏿‍❤‍👩🏿' => 'сүйүшкөн түгөйлөр: аял, аял, кара',
+    '👩🏻‍🐰‍👩🏼' => 'коен кулактарын тагынган кыздар: акжуумал, буудай жүздүү',
+    '👩🏻‍🐰‍👩🏽' => 'коен кулактарын тагынган кыздар: акжуумал, орточо',
+    '👩🏻‍🐰‍👩🏾' => 'коен кулактарын тагынган кыздар: акжуумал, кара тору',
+    '👩🏻‍🐰‍👩🏿' => 'коен кулактарын тагынган кыздар: акжуумал, кара',
+    '👩🏼‍🐰‍👩🏻' => 'коен кулактарын тагынган кыздар: буудай жүздүү, акжуумал',
+    '👩🏼‍🐰‍👩🏽' => 'коен кулактарын тагынган кыздар: буудай жүздүү, орточо',
+    '👩🏼‍🐰‍👩🏾' => 'коен кулактарын тагынган кыздар: буудай жүздүү, кара тору',
+    '👩🏼‍🐰‍👩🏿' => 'коен кулактарын тагынган кыздар: буудай жүздүү, кара',
+    '👩🏽‍🐰‍👩🏻' => 'коен кулактарын тагынган кыздар: орточо, акжуумал',
+    '👩🏽‍🐰‍👩🏼' => 'коен кулактарын тагынган кыздар: орточо, буудай жүздүү',
+    '👩🏽‍🐰‍👩🏾' => 'коен кулактарын тагынган кыздар: орточо, кара тору',
+    '👩🏽‍🐰‍👩🏿' => 'коен кулактарын тагынган кыздар: орточо, кара',
+    '👩🏾‍🐰‍👩🏻' => 'коен кулактарын тагынган кыздар: кара тору, акжуумал',
+    '👩🏾‍🐰‍👩🏼' => 'коен кулактарын тагынган кыздар: кара тору, буудай жүздүү',
+    '👩🏾‍🐰‍👩🏽' => 'коен кулактарын тагынган кыздар: кара тору, орточо',
+    '👩🏾‍🐰‍👩🏿' => 'коен кулактарын тагынган кыздар: кара тору, кара',
+    '👩🏿‍🐰‍👩🏻' => 'коен кулактарын тагынган кыздар: кара, акжуумал',
+    '👩🏿‍🐰‍👩🏼' => 'коен кулактарын тагынган кыздар: кара, буудай жүздүү',
+    '👩🏿‍🐰‍👩🏽' => 'коен кулактарын тагынган кыздар: кара, орточо',
+    '👩🏿‍🐰‍👩🏾' => 'коен кулактарын тагынган кыздар: кара, кара тору',
     '🧑🏻‍🤝‍🧑🏻' => 'кол кармашкан адамдар: акжуумал',
     '🧑🏻‍🤝‍🧑🏼' => 'кол кармашкан адамдар: акжуумал, буудай жүздүү',
     '🧑🏻‍🤝‍🧑🏽' => 'кол кармашкан адамдар: акжуумал, орточо',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'желек: Шотландия',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'желек: Вельс',
     '🧑‍🧑‍🧒‍🧒' => 'үй-бүлө: чоң киши, чоң киши, бала, бала',
-    '🚶🏻‍♀‍➡' => 'жөө басып бара жаткан аял оңду карап турат',
-    '🚶🏼‍♀‍➡' => 'жөө басып бара жаткан аял оңду карап турат',
-    '🚶🏽‍♀‍➡' => 'жөө басып бара жаткан аял оңду карап турат',
-    '🚶🏾‍♀‍➡' => 'жөө басып бара жаткан аял оңду карап турат',
-    '🚶🏿‍♀‍➡' => 'жөө басып бара жаткан аял оңду карап турат',
-    '🚶🏻‍♂‍➡' => 'жөө басып бара жаткан эркек оңду карап турат',
-    '🚶🏼‍♂‍➡' => 'жөө басып бара жаткан эркек оңду карап турат',
-    '🚶🏽‍♂‍➡' => 'жөө басып бара жаткан эркек оңду карап турат',
-    '🚶🏾‍♂‍➡' => 'жөө басып бара жаткан эркек оңду карап турат',
-    '🚶🏿‍♂‍➡' => 'жөө басып бара жаткан эркек оңду карап турат',
-    '🧎🏻‍♀‍➡' => 'аял тизелөөдө оңду карап турат',
-    '🧎🏼‍♀‍➡' => 'аял тизелөөдө оңду карап турат',
-    '🧎🏽‍♀‍➡' => 'аял тизелөөдө оңду карап турат',
-    '🧎🏾‍♀‍➡' => 'аял тизелөөдө оңду карап турат',
-    '🧎🏿‍♀‍➡' => 'аял тизелөөдө оңду карап турат',
-    '🧎🏻‍♂‍➡' => 'тизелеген киши оңду карап турат',
-    '🧎🏼‍♂‍➡' => 'тизелеген киши оңду карап турат',
-    '🧎🏽‍♂‍➡' => 'тизелеген киши оңду карап турат',
-    '🧎🏾‍♂‍➡' => 'тизелеген киши оңду карап турат',
-    '🧎🏿‍♂‍➡' => 'тизелеген киши оңду карап турат',
-    '🧑🏻‍🦯‍➡' => 'таякка жөлөнгөн киши оңду карап турат',
-    '🧑🏼‍🦯‍➡' => 'таякка жөлөнгөн киши оңду карап турат',
-    '🧑🏽‍🦯‍➡' => 'таякка жөлөнгөн киши оңду карап турат',
-    '🧑🏾‍🦯‍➡' => 'таякка жөлөнгөн киши оңду карап турат',
-    '🧑🏿‍🦯‍➡' => 'таякка жөлөнгөн киши оңду карап турат',
-    '👨🏻‍🦯‍➡' => 'таяк таянган киши оңду карап турат',
-    '👨🏼‍🦯‍➡' => 'таяк таянган киши оңду карап турат',
-    '👨🏽‍🦯‍➡' => 'таяк таянган киши оңду карап турат',
-    '👨🏾‍🦯‍➡' => 'таяк таянган киши оңду карап турат',
-    '👨🏿‍🦯‍➡' => 'таяк таянган киши оңду карап турат',
-    '👩🏻‍🦯‍➡' => 'таяк таянган аял оңду карап турат',
-    '👩🏼‍🦯‍➡' => 'таяк таянган аял оңду карап турат',
-    '👩🏽‍🦯‍➡' => 'таяк таянган аял оңду карап турат',
-    '👩🏾‍🦯‍➡' => 'таяк таянган аял оңду карап турат',
-    '👩🏿‍🦯‍➡' => 'таяк таянган аял оңду карап турат',
-    '🧑🏻‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши оңду карап турат',
-    '🧑🏼‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши оңду карап турат',
-    '🧑🏽‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши оңду карап турат',
-    '🧑🏾‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши оңду карап турат',
-    '🧑🏿‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши оңду карап турат',
-    '👨🏻‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши оңду карап турат',
-    '👨🏼‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши оңду карап турат',
-    '👨🏽‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши оңду карап турат',
-    '👨🏾‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши оңду карап турат',
-    '👨🏿‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши оңду карап турат',
-    '👩🏻‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '👩🏼‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '👩🏽‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '👩🏾‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '👩🏿‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '🧑🏻‍🦽‍➡' => 'кол менен иштеген кресло оңду карап турат',
-    '🧑🏼‍🦽‍➡' => 'кол менен иштеген кресло оңду карап турат',
-    '🧑🏽‍🦽‍➡' => 'кол менен иштеген кресло оңду карап турат',
-    '🧑🏾‍🦽‍➡' => 'кол менен иштеген кресло оңду карап турат',
-    '🧑🏿‍🦽‍➡' => 'кол менен иштеген кресло оңду карап турат',
-    '👨🏻‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши оңду карап турат',
-    '👨🏼‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши оңду карап турат',
-    '👨🏽‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши оңду карап турат',
-    '👨🏾‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши оңду карап турат',
-    '👨🏿‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши оңду карап турат',
-    '👩🏻‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '👩🏼‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '👩🏽‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '👩🏾‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '👩🏿‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '🏃🏻‍♀‍➡' => 'чуркап бара жаткан аял оңду карап турат',
-    '🏃🏼‍♀‍➡' => 'чуркап бара жаткан аял оңду карап турат',
-    '🏃🏽‍♀‍➡' => 'чуркап бара жаткан аял оңду карап турат',
-    '🏃🏾‍♀‍➡' => 'чуркап бара жаткан аял оңду карап турат',
-    '🏃🏿‍♀‍➡' => 'чуркап бара жаткан аял оңду карап турат',
-    '🏃🏻‍♂‍➡' => 'чуркап бара жаткан эркек оңду карап турат',
-    '🏃🏼‍♂‍➡' => 'чуркап бара жаткан эркек оңду карап турат',
-    '🏃🏽‍♂‍➡' => 'чуркап бара жаткан эркек оңду карап турат',
-    '🏃🏾‍♂‍➡' => 'чуркап бара жаткан эркек оңду карап турат',
-    '🏃🏿‍♂‍➡' => 'чуркап бара жаткан эркек оңду карап турат',
+    '🚶🏻‍♀‍➡' => 'жөө басып бара жаткан аял: акжуумал, оңду карап турат',
+    '🚶🏼‍♀‍➡' => 'жөө басып бара жаткан аял: буудай жүздүү, оңду карап турат',
+    '🚶🏽‍♀‍➡' => 'жөө басып бара жаткан аял: орточо, оңду карап турат',
+    '🚶🏾‍♀‍➡' => 'жөө басып бара жаткан аял: кара тору, оңду карап турат',
+    '🚶🏿‍♀‍➡' => 'жөө басып бара жаткан аял: кара, оңду карап турат',
+    '🚶🏻‍♂‍➡' => 'жөө басып бара жаткан эркек: акжуумал, оңду карап турат',
+    '🚶🏼‍♂‍➡' => 'жөө басып бара жаткан эркек: буудай жүздүү, оңду карап турат',
+    '🚶🏽‍♂‍➡' => 'жөө басып бара жаткан эркек: орточо, оңду карап турат',
+    '🚶🏾‍♂‍➡' => 'жөө басып бара жаткан эркек: кара тору, оңду карап турат',
+    '🚶🏿‍♂‍➡' => 'жөө басып бара жаткан эркек: кара, оңду карап турат',
+    '🧎🏻‍♀‍➡' => 'аял тизелөөдө: акжуумал, оңду карап турат',
+    '🧎🏼‍♀‍➡' => 'аял тизелөөдө: буудай жүздүү, оңду карап турат',
+    '🧎🏽‍♀‍➡' => 'аял тизелөөдө: орточо, оңду карап турат',
+    '🧎🏾‍♀‍➡' => 'аял тизелөөдө: кара тору, оңду карап турат',
+    '🧎🏿‍♀‍➡' => 'аял тизелөөдө: кара, оңду карап турат',
+    '🧎🏻‍♂‍➡' => 'тизелеген киши: акжуумал, оңду карап турат',
+    '🧎🏼‍♂‍➡' => 'тизелеген киши: буудай жүздүү, оңду карап турат',
+    '🧎🏽‍♂‍➡' => 'тизелеген киши: орточо, оңду карап турат',
+    '🧎🏾‍♂‍➡' => 'тизелеген киши: кара тору, оңду карап турат',
+    '🧎🏿‍♂‍➡' => 'тизелеген киши: кара, оңду карап турат',
+    '🧑🏻‍🦯‍➡' => 'таякка жөлөнгөн киши: акжуумал, оңду карап турат',
+    '🧑🏼‍🦯‍➡' => 'таякка жөлөнгөн киши: буудай жүздүү, оңду карап турат',
+    '🧑🏽‍🦯‍➡' => 'таякка жөлөнгөн киши: орточо, оңду карап турат',
+    '🧑🏾‍🦯‍➡' => 'таякка жөлөнгөн киши: кара тору, оңду карап турат',
+    '🧑🏿‍🦯‍➡' => 'таякка жөлөнгөн киши: кара, оңду карап турат',
+    '👨🏻‍🦯‍➡' => 'таяк таянган киши: акжуумал, оңду карап турат',
+    '👨🏼‍🦯‍➡' => 'таяк таянган киши: буудай жүздүү, оңду карап турат',
+    '👨🏽‍🦯‍➡' => 'таяк таянган киши: орточо, оңду карап турат',
+    '👨🏾‍🦯‍➡' => 'таяк таянган киши: кара тору, оңду карап турат',
+    '👨🏿‍🦯‍➡' => 'таяк таянган киши: кара, оңду карап турат',
+    '👩🏻‍🦯‍➡' => 'таяк таянган аял: акжуумал, оңду карап турат',
+    '👩🏼‍🦯‍➡' => 'таяк таянган аял: буудай жүздүү, оңду карап турат',
+    '👩🏽‍🦯‍➡' => 'таяк таянган аял: орточо, оңду карап турат',
+    '👩🏾‍🦯‍➡' => 'таяк таянган аял: кара тору, оңду карап турат',
+    '👩🏿‍🦯‍➡' => 'таяк таянган аял: кара, оңду карап турат',
+    '🧑🏻‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши: акжуумал, оңду карап турат',
+    '🧑🏼‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши: буудай жүздүү, оңду карап турат',
+    '🧑🏽‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши: орточо, оңду карап турат',
+    '🧑🏾‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши: кара тору, оңду карап турат',
+    '🧑🏿‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши: кара, оңду карап турат',
+    '👨🏻‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши: акжуумал, оңду карап турат',
+    '👨🏼‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши: буудай жүздүү, оңду карап турат',
+    '👨🏽‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши: орточо, оңду карап турат',
+    '👨🏾‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши: кара тору, оңду карап турат',
+    '👨🏿‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши: кара, оңду карап турат',
+    '👩🏻‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял: акжуумал, оңду карап турат',
+    '👩🏼‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял: буудай жүздүү, оңду карап турат',
+    '👩🏽‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял: орточо, оңду карап турат',
+    '👩🏾‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял: кара тору, оңду карап турат',
+    '👩🏿‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял: кара, оңду карап турат',
+    '🧑🏻‍🦽‍➡' => 'кол менен иштеген кресло: акжуумал, оңду карап турат',
+    '🧑🏼‍🦽‍➡' => 'кол менен иштеген кресло: буудай жүздүү, оңду карап турат',
+    '🧑🏽‍🦽‍➡' => 'кол менен иштеген кресло: орточо, оңду карап турат',
+    '🧑🏾‍🦽‍➡' => 'кол менен иштеген кресло: кара тору, оңду карап турат',
+    '🧑🏿‍🦽‍➡' => 'кол менен иштеген кресло: кара, оңду карап турат',
+    '👨🏻‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши: акжуумал, оңду карап турат',
+    '👨🏼‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши: буудай жүздүү, оңду карап турат',
+    '👨🏽‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши: орточо, оңду карап турат',
+    '👨🏾‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши: кара тору, оңду карап турат',
+    '👨🏿‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши: кара, оңду карап турат',
+    '👩🏻‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял: акжуумал, оңду карап турат',
+    '👩🏼‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял: буудай жүздүү, оңду карап турат',
+    '👩🏽‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял: орточо, оңду карап турат',
+    '👩🏾‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял: кара тору, оңду карап турат',
+    '👩🏿‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял: кара, оңду карап турат',
+    '🏃🏻‍♀‍➡' => 'чуркап бара жаткан аял: акжуумал, оңду карап турат',
+    '🏃🏼‍♀‍➡' => 'чуркап бара жаткан аял: буудай жүздүү, оңду карап турат',
+    '🏃🏽‍♀‍➡' => 'чуркап бара жаткан аял: орточо, оңду карап турат',
+    '🏃🏾‍♀‍➡' => 'чуркап бара жаткан аял: кара тору, оңду карап турат',
+    '🏃🏿‍♀‍➡' => 'чуркап бара жаткан аял: кара, оңду карап турат',
+    '🏃🏻‍♂‍➡' => 'чуркап бара жаткан эркек: акжуумал, оңду карап турат',
+    '🏃🏼‍♂‍➡' => 'чуркап бара жаткан эркек: буудай жүздүү, оңду карап турат',
+    '🏃🏽‍♂‍➡' => 'чуркап бара жаткан эркек: орточо, оңду карап турат',
+    '🏃🏾‍♂‍➡' => 'чуркап бара жаткан эркек: кара тору, оңду карап турат',
+    '🏃🏿‍♂‍➡' => 'чуркап бара жаткан эркек: кара, оңду карап турат',
     '🫱🏻‍🫲🏼' => 'кол алышуу: акжуумал, буудай жүздүү',
     '🫱🏻‍🫲🏽' => 'кол алышуу: акжуумал, орточо',
     '🫱🏻‍🫲🏾' => 'кол алышуу: акжуумал, кара тору',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'кол алышуу: кара, буудай жүздүү',
     '🫱🏿‍🫲🏽' => 'кол алышуу: кара, орточо',
     '🫱🏿‍🫲🏾' => 'кол алышуу: кара, кара тору',
-    '🚶‍♀‍➡' => 'жөө басып бара жаткан аял оңду карап турат',
-    '🚶‍♂‍➡' => 'жөө басып бара жаткан эркек оңду карап турат',
-    '🧎‍♀‍➡' => 'аял тизелөөдө оңду карап турат',
-    '🧎‍♂‍➡' => 'тизелеген киши оңду карап турат',
-    '🧑‍🦯‍➡' => 'таякка жөлөнгөн киши оңду карап турат',
-    '👨‍🦯‍➡' => 'таяк таянган киши оңду карап турат',
-    '👩‍🦯‍➡' => 'таяк таянган аял оңду карап турат',
-    '🧑‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши оңду карап турат',
-    '👨‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши оңду карап турат',
-    '👩‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '🧑‍🦽‍➡' => 'кол менен иштеген кресло оңду карап турат',
-    '👨‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши оңду карап турат',
-    '👩‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял оңду карап турат',
-    '🏃‍♀‍➡' => 'чуркап бара жаткан аял оңду карап турат',
-    '🏃‍♂‍➡' => 'чуркап бара жаткан эркек оңду карап турат',
+    '🚶‍♀‍➡' => 'жөө басып бара жаткан аял: оңду карап турат',
+    '🚶‍♂‍➡' => 'жөө басып бара жаткан эркек: оңду карап турат',
+    '🧎‍♀‍➡' => 'аял тизелөөдө: оңду карап турат',
+    '🧎‍♂‍➡' => 'тизелеген киши: оңду карап турат',
+    '🧑‍🦯‍➡' => 'таякка жөлөнгөн киши: оңду карап турат',
+    '👨‍🦯‍➡' => 'таяк таянган киши: оңду карап турат',
+    '👩‍🦯‍➡' => 'таяк таянган аял: оңду карап турат',
+    '🧑‍🦼‍➡' => 'мотору бар инвалид креслосундагы киши: оңду карап турат',
+    '👨‍🦼‍➡' => 'моторлуу дөңгөлөк отургучтагы киши: оңду карап турат',
+    '👩‍🦼‍➡' => 'мотору бар дөңгөлөктүү отургучтагы аял: оңду карап турат',
+    '🧑‍🦽‍➡' => 'кол менен иштеген кресло: оңду карап турат',
+    '👨‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы киши: оңду карап турат',
+    '👩‍🦽‍➡' => 'кол менен дөңгөлөктүү отургучтагы аял: оңду карап турат',
+    '🏃‍♀‍➡' => 'чуркап бара жаткан аял: оңду карап турат',
+    '🏃‍♂‍➡' => 'чуркап бара жаткан эркек: оңду карап турат',
     '👩‍❤‍👨' => 'сүйүшкөн түгөйлөр: аял, эркек',
     '👨‍❤‍👨' => 'сүйүшкөн түгөйлөр: эркек, эркек',
     '👩‍❤‍👩' => 'сүйүшкөн түгөйлөр: аял, аял',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'адам: орточо, тас',
     '🧑🏾‍🦲' => 'адам: кара тору, тас',
     '🧑🏿‍🦲' => 'адам: кара, тас',
+    '🧑🏻‍🩰' => 'балет бийчиси: акжуумал',
+    '🧑🏼‍🩰' => 'балет бийчиси: буудай жүздүү',
+    '🧑🏽‍🩰' => 'балет бийчиси: орточо',
+    '🧑🏾‍🩰' => 'балет бийчиси: кара тору',
+    '🧑🏿‍🩰' => 'балет бийчиси: кара',
     '🧔🏻‍♂' => 'киши: акжуумал, сакал',
     '🧔🏼‍♂' => 'киши: буудай жүздүү, сакал',
     '🧔🏽‍♂' => 'киши: орточо, сакал',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'жөө басып бара жаткан аял: орточо',
     '🚶🏾‍♀' => 'жөө басып бара жаткан аял: кара тору',
     '🚶🏿‍♀' => 'жөө басып бара жаткан аял: кара',
-    '🚶🏻‍➡' => 'жөө адам оңду карап турат',
-    '🚶🏼‍➡' => 'жөө адам оңду карап турат',
-    '🚶🏽‍➡' => 'жөө адам оңду карап турат',
-    '🚶🏾‍➡' => 'жөө адам оңду карап турат',
-    '🚶🏿‍➡' => 'жөө адам оңду карап турат',
+    '🚶🏻‍➡' => 'жөө адам: акжуумал, оңду карап турат',
+    '🚶🏼‍➡' => 'жөө адам: буудай жүздүү, оңду карап турат',
+    '🚶🏽‍➡' => 'жөө адам: орточо, оңду карап турат',
+    '🚶🏾‍➡' => 'жөө адам: кара тору, оңду карап турат',
+    '🚶🏿‍➡' => 'жөө адам: кара, оңду карап турат',
     '🧍🏻‍♂' => 'киши турат: акжуумал',
     '🧍🏼‍♂' => 'киши турат: буудай жүздүү',
     '🧍🏽‍♂' => 'киши турат: орточо',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'аял тизелөөдө: орточо',
     '🧎🏾‍♀' => 'аял тизелөөдө: кара тору',
     '🧎🏿‍♀' => 'аял тизелөөдө: кара',
-    '🧎🏻‍➡' => 'тизелеген адам оңду карап турат',
-    '🧎🏼‍➡' => 'тизелеген адам оңду карап турат',
-    '🧎🏽‍➡' => 'тизелеген адам оңду карап турат',
-    '🧎🏾‍➡' => 'тизелеген адам оңду карап турат',
-    '🧎🏿‍➡' => 'тизелеген адам оңду карап турат',
+    '🧎🏻‍➡' => 'тизелеген адам: акжуумал, оңду карап турат',
+    '🧎🏼‍➡' => 'тизелеген адам: буудай жүздүү, оңду карап турат',
+    '🧎🏽‍➡' => 'тизелеген адам: орточо, оңду карап турат',
+    '🧎🏾‍➡' => 'тизелеген адам: кара тору, оңду карап турат',
+    '🧎🏿‍➡' => 'тизелеген адам: кара, оңду карап турат',
     '🧑🏻‍🦯' => 'таякка жөлөнгөн киши: акжуумал',
     '🧑🏼‍🦯' => 'таякка жөлөнгөн киши: буудай жүздүү',
     '🧑🏽‍🦯' => 'таякка жөлөнгөн киши: орточо',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'чуркап бара жаткан аял: орточо',
     '🏃🏾‍♀' => 'чуркап бара жаткан аял: кара тору',
     '🏃🏿‍♀' => 'чуркап бара жаткан аял: кара',
-    '🏃🏻‍➡' => 'чуркап бара жаткан адам оңду карап турат',
-    '🏃🏼‍➡' => 'чуркап бара жаткан адам оңду карап турат',
-    '🏃🏽‍➡' => 'чуркап бара жаткан адам оңду карап турат',
-    '🏃🏾‍➡' => 'чуркап бара жаткан адам оңду карап турат',
-    '🏃🏿‍➡' => 'чуркап бара жаткан адам оңду карап турат',
+    '🏃🏻‍➡' => 'чуркап бара жаткан адам: акжуумал, оңду карап турат',
+    '🏃🏼‍➡' => 'чуркап бара жаткан адам: буудай жүздүү, оңду карап турат',
+    '🏃🏽‍➡' => 'чуркап бара жаткан адам: орточо, оңду карап турат',
+    '🏃🏾‍➡' => 'чуркап бара жаткан адам: кара тору, оңду карап турат',
+    '🏃🏿‍➡' => 'чуркап бара жаткан адам: кара, оңду карап турат',
+    '👯🏻‍♀' => 'коен кулактарын тагынган кыздар: акжуумал',
+    '👯🏼‍♀' => 'коен кулактарын тагынган кыздар: буудай жүздүү',
+    '👯🏽‍♀' => 'коен кулактарын тагынган кыздар: орточо',
+    '👯🏾‍♀' => 'коен кулактарын тагынган кыздар: кара тору',
+    '👯🏿‍♀' => 'коен кулактарын тагынган кыздар: кара',
+    '👯🏻‍♂' => 'коен кулактарын тагынган эркектер: акжуумал',
+    '👯🏼‍♂' => 'коен кулактарын тагынган эркектер: буудай жүздүү',
+    '👯🏽‍♂' => 'коен кулактарын тагынган эркектер: орточо',
+    '👯🏾‍♂' => 'коен кулактарын тагынган эркектер: кара тору',
+    '👯🏿‍♂' => 'коен кулактарын тагынган эркектер: кара',
     '🧖🏻‍♂' => 'бууланган бөлмөдө отурган эркек: акжуумал',
     '🧖🏼‍♂' => 'бууланган бөлмөдө отурган эркек: буудай жүздүү',
     '🧖🏽‍♂' => 'бууланган бөлмөдө отурган эркек: орточо',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'акробатикалык көнүгүү жасап жаткан аял: орточо',
     '🤸🏾‍♀' => 'акробатикалык көнүгүү жасап жаткан аял: кара тору',
     '🤸🏿‍♀' => 'акробатикалык көнүгүү жасап жаткан аял: кара',
+    '🤼🏻‍♀' => 'күрөшүп жаткан аял: акжуумал',
+    '🤼🏼‍♀' => 'күрөшүп жаткан аял: буудай жүздүү',
+    '🤼🏽‍♀' => 'күрөшүп жаткан аял: орточо',
+    '🤼🏾‍♀' => 'күрөшүп жаткан аял: кара тору',
+    '🤼🏿‍♀' => 'күрөшүп жаткан аял: кара',
+    '🤼🏻‍♂' => 'күрөшүп жаткан эркек: акжуумал',
+    '🤼🏼‍♂' => 'күрөшүп жаткан эркек: буудай жүздүү',
+    '🤼🏽‍♂' => 'күрөшүп жаткан эркек: орточо',
+    '🤼🏾‍♂' => 'күрөшүп жаткан эркек: кара тору',
+    '🤼🏿‍♂' => 'күрөшүп жаткан эркек: кара',
     '🤽🏻‍♂' => 'суудагы поло оюнун ойноп жаткан эркек: акжуумал',
     '🤽🏼‍♂' => 'суудагы поло оюнун ойноп жаткан эркек: буудай жүздүү',
     '🤽🏽‍♂' => 'суудагы поло оюнун ойноп жаткан эркек: орточо',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'аял: тармал чач',
     '👩‍🦳' => 'аял: ак чач',
     '👩‍🦲' => 'аял: тас',
-    '🚶‍➡' => 'жөө адам оңду карап турат',
-    '🧎‍➡' => 'тизелеген адам оңду карап турат',
-    '🏃‍➡' => 'чуркап бара жаткан адам оңду карап турат',
+    '🚶‍➡' => 'жөө адам: оңду карап турат',
+    '🧎‍➡' => 'тизелеген адам: оңду карап турат',
+    '🏃‍➡' => 'чуркап бара жаткан адам: оңду карап турат',
     '👨‍👦' => 'үй-бүлө: эркек, бала',
     '👨‍👧' => 'үй-бүлө: эркек, кыз',
     '👩‍👦' => 'үй-бүлө: аял, бала',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'кол менен дөңгөлөктүү отургучтагы аял',
     '🏃‍♂' => 'чуркап бара жаткан эркек',
     '🏃‍♀' => 'чуркап бара жаткан аял',
+    '🧑‍🩰' => 'балет бийчиси',
     '👯‍♂' => 'коен кулактарын тагынган эркектер',
     '👯‍♀' => 'коен кулактарын тагынган кыздар',
     '🧖‍♂' => 'бууланган бөлмөдө отурган эркек',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'костюм-шымчан киши: орточо',
     '🕴🏾' => 'костюм-шымчан киши: кара тору',
     '🕴🏿' => 'костюм-шымчан киши: кара',
+    '👯🏻' => 'кыз-келиндер кечеси: акжуумал',
+    '👯🏼' => 'кыз-келиндер кечеси: буудай жүздүү',
+    '👯🏽' => 'кыз-келиндер кечеси: орточо',
+    '👯🏾' => 'кыз-келиндер кечеси: кара тору',
+    '👯🏿' => 'кыз-келиндер кечеси: кара',
     '🧖🏻' => 'бууланган бөлмөдө отурган адам: акжуумал',
     '🧖🏼' => 'бууланган бөлмөдө отурган адам: буудай жүздүү',
     '🧖🏽' => 'бууланган бөлмөдө отурган адам: орточо',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'акробатикалык көнүгүү: орточо',
     '🤸🏾' => 'акробатикалык көнүгүү: кара тору',
     '🤸🏿' => 'акробатикалык көнүгүү: кара',
+    '🤼🏻' => 'күрөшчүлөр: акжуумал',
+    '🤼🏼' => 'күрөшчүлөр: буудай жүздүү',
+    '🤼🏽' => 'күрөшчүлөр: орточо',
+    '🤼🏾' => 'күрөшчүлөр: кара тору',
+    '🤼🏿' => 'күрөшчүлөр: кара',
     '🤽🏻' => 'суудагы поло оюну: акжуумал',
     '🤽🏼' => 'суудагы поло оюну: буудай жүздүү',
     '🤽🏽' => 'суудагы поло оюну: орточо',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'желек: Кытай',
     '🇨🇴' => 'желек: Колумбия',
     '🇨🇵' => 'желек: Клиппертон аралы',
+    '🇨🇶' => 'желек: саркча (нормандча)',
     '🇨🇷' => 'желек: Коста-Рика',
     '🇨🇺' => 'желек: Куба',
     '🇨🇻' => 'желек: Кабо-Верде',
@@ -2390,13 +2547,6 @@
     '🏽' => 'орточо',
     '🏾' => 'кара тору',
     '🏿' => 'кара',
-    '🪉' => 'арфа',
-    '🪏' => 'күрөк',
-    '🪾' => 'жалбырагы жок дарак',
-    '🫆' => 'манжа изи',
-    '🫜' => 'тамыры желе турган жашылча',
-    '🫟' => 'чачыранды',
-    '🫩' => 'көздөрүнүн асты шишип калган бет',
     '😀' => 'ырсайган бет',
     '😃' => 'күлгөн бет',
     '😄' => 'каткырып күлгөн бет',
@@ -2450,6 +2600,7 @@
     '😪' => 'уйкусу келген бет',
     '🤤' => 'шилекейин чууруткан бет',
     '😴' => 'уктап жаткан бет',
+    '🫩' => 'көздөрүнүн асты шишип калган бет',
     '😷' => 'медициналык беткапчан бет',
     '🤒' => 'градусник тиштеген бет',
     '🤕' => 'башы бинттелген бет',
@@ -2476,6 +2627,7 @@
     '😯' => 'таң калган бет',
     '😲' => 'айран-таң калган бет',
     '😳' => 'уялган бет',
+    '🫪' => 'кыйшайган жүз',
     '🥺' => 'капалуу жүз',
     '🥹' => 'көзү жашылданган бет',
     '😦' => 'оозун аңырдай ачкан бет',
@@ -2547,6 +2699,7 @@
     '💋' => 'өбүү белгиси',
     '💯' => 'жүз упай',
     '💢' => 'ачуулануу белгиси',
+    '🫯' => 'булут менен күрөшүү',
     '💥' => 'сүзүшүү',
     '💫' => 'башы айланган',
     '💦' => 'тер тамчылары',
@@ -2670,6 +2823,7 @@
     '🧞' => 'жин',
     '🧟' => 'зомби',
     '🧌' => 'тролль',
+    '🫈' => 'жүндүү жаныбар',
     '💆' => 'бетке массаж',
     '💇' => 'чач жасалгасы',
     '🚶' => 'жөө адам',
@@ -2713,6 +2867,7 @@
     '🫂' => 'кучакташкан адамдар',
     '👪' => 'үй-бүлө',
     '👣' => 'буттун изи',
+    '🫆' => 'манжа изи',
     '🦰' => 'кызыл чач',
     '🦱' => 'тармал чач',
     '🦳' => 'ак чач',
@@ -2812,6 +2967,7 @@
     '🐳' => 'суу чачып жаткан кит',
     '🐋' => 'кит',
     '🐬' => 'дельфин',
+    '🫍' => 'косатка',
     '🦭' => 'тюлень',
     '🐟' => 'балык',
     '🐠' => 'тропикалык балык',
@@ -2821,6 +2977,11 @@
     '🐚' => 'үлүл кабыгы',
     '🪸' => 'коралл',
     '🪼' => 'медуза',
+    '🦀' => 'бөйөн',
+    '🦞' => 'омар',
+    '🦐' => 'креветка',
+    '🦑' => 'кальмар',
+    '🦪' => 'устрица',
     '🐌' => 'үлүл',
     '🦋' => 'көпөлөк',
     '🐛' => 'курт',
@@ -2865,6 +3026,7 @@
     '🪹' => 'бош уя',
     '🪺' => 'ичинде жумурткалары бар уя',
     '🍄' => 'козу карын',
+    '🪾' => 'жалбырагы жок дарак',
     '🍇' => 'жүзүм',
     '🍈' => 'коон',
     '🍉' => 'дарбыз',
@@ -2901,6 +3063,7 @@
     '🌰' => 'каштан',
     '🫚' => 'имбир тамыры',
     '🫛' => 'буурчак кабыгы',
+    '🫜' => 'тамыры желе турган жашылча',
     '🍞' => 'нан',
     '🥐' => 'круассан',
     '🥖' => 'багет',
@@ -2952,11 +3115,6 @@
     '🥟' => 'пельмен',
     '🥠' => 'келечекти айтуучу печеньелер',
     '🥡' => 'тамакты үйгө салып кетүү үчүн кутуча',
-    '🦀' => 'бөйөн',
-    '🦞' => 'омар',
-    '🦐' => 'креветка',
-    '🦑' => 'кальмар',
-    '🦪' => 'устрица',
     '🍦' => 'жумшак балмуздак',
     '🍧' => 'жылмаланган муз',
     '🍨' => 'балмуздак',
@@ -3007,7 +3165,8 @@
     '🧭' => 'компас',
     '🏔' => 'ак мөңгүлүү тоо',
     '⛰' => 'тоо',
-    '🌋' => 'вулкан',
+    '🛘' => 'жер көчкү',
+    '🌋' => 'жанар тоо',
     '🗻' => 'фудзияма тоосу',
     '🏕' => 'өргү жасоо',
     '🏖' => 'жээктеги чатыр',
@@ -3367,16 +3526,18 @@
     '🎧' => 'кулакаспап',
     '📻' => 'радио',
     '🎷' => 'саксофон',
+    '🎺' => 'сурнай',
+    '🪊' => 'тромбон',
     '🪗' => 'аккордеон',
     '🎸' => 'гитара',
     '🎹' => 'музыкалык клавиша',
-    '🎺' => 'сурнай',
     '🎻' => 'скрипка',
     '🪕' => 'банжо',
     '🥁' => 'барабан',
     '🪘' => 'узун добулбас',
     '🪇' => 'маракас',
     '🪈' => 'флейта',
+    '🪉' => 'арфа',
     '📱' => 'мобилдик телефон',
     '📲' => 'мобилдик телефон менен жебе',
     '☎' => 'телефон',
@@ -3430,8 +3591,9 @@
     '📑' => 'кыстарма өтмөктөрү',
     '🔖' => 'кыстарма',
     '🏷' => 'энбелги',
-    '💰' => 'акча баштыгы',
     '🪙' => 'тыйын',
+    '💰' => 'акча баштыгы',
+    '🪎' => 'казына сандык',
     '💴' => 'иена банкнотасы',
     '💵' => 'доллар банкнотасы',
     '💶' => 'евро банкнотасы',
@@ -3514,6 +3676,7 @@
     '🧰' => 'куралдар кутусу',
     '🧲' => 'магнит',
     '🪜' => 'тепкич',
+    '🪏' => 'күрөк',
     '⚗' => 'дистиллятор',
     '🧪' => 'медициналык пробирка',
     '🧫' => 'Петри идиши',
@@ -3697,6 +3860,7 @@
     '✴' => 'төрт жылдыз',
     '❇' => 'жалтылдак',
     '™' => 'соода маркасы',
+    '🫟' => 'чачыранды',
     '🔠' => 'латынча баш тамга менен киргизүү',
     '🔡' => 'латынча кичине тамга менен киргизүү',
     '🔢' => 'сандарды киргизүү',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lb.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lb.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lb.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lb.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'Kuss: Fra, Fra, däischter Hautfaarf, mëttel Hautfaarf',
     '👩🏿‍❤‍💋‍👩🏾' => 'Kuss: Fra, Fra, däischter Hautfaarf, mëtteldäischter Hautfaarf',
     '👩🏿‍❤‍💋‍👩🏿' => 'Kuss: Fra, Fra, däischter Hautfaarf',
+    '🧑🏻‍🫯‍🧑🏼' => 'Wrestling: hell Hautfaarf, mëttelhell Hautfaarf',
+    '🧑🏻‍🫯‍🧑🏽' => 'Wrestling: hell Hautfaarf, mëttel Hautfaarf',
+    '🧑🏻‍🫯‍🧑🏾' => 'Wrestling: hell Hautfaarf, mëtteldäischter Hautfaarf',
+    '🧑🏻‍🫯‍🧑🏿' => 'Wrestling: hell Hautfaarf, däischter Hautfaarf',
+    '🧑🏼‍🫯‍🧑🏻' => 'Wrestling: mëttelhell Hautfaarf, hell Hautfaarf',
+    '🧑🏼‍🫯‍🧑🏽' => 'Wrestling: mëttelhell Hautfaarf, mëttel Hautfaarf',
+    '🧑🏼‍🫯‍🧑🏾' => 'Wrestling: mëttelhell Hautfaarf, mëtteldäischter Hautfaarf',
+    '🧑🏼‍🫯‍🧑🏿' => 'Wrestling: mëttelhell Hautfaarf, däischter Hautfaarf',
+    '🧑🏽‍🫯‍🧑🏻' => 'Wrestling: mëttel Hautfaarf, hell Hautfaarf',
+    '🧑🏽‍🫯‍🧑🏼' => 'Wrestling: mëttel Hautfaarf, mëttelhell Hautfaarf',
+    '🧑🏽‍🫯‍🧑🏾' => 'Wrestling: mëttel Hautfaarf, mëtteldäischter Hautfaarf',
+    '🧑🏽‍🫯‍🧑🏿' => 'Wrestling: mëttel Hautfaarf, däischter Hautfaarf',
+    '🧑🏾‍🫯‍🧑🏻' => 'Wrestling: mëtteldäischter Hautfaarf, hell Hautfaarf',
+    '🧑🏾‍🫯‍🧑🏼' => 'Wrestling: mëtteldäischter Hautfaarf, mëttelhell Hautfaarf',
+    '🧑🏾‍🫯‍🧑🏽' => 'Wrestling: mëtteldäischter Hautfaarf, mëttel Hautfaarf',
+    '🧑🏾‍🫯‍🧑🏿' => 'Wrestling: mëtteldäischter Hautfaarf, däischter Hautfaarf',
+    '🧑🏿‍🫯‍🧑🏻' => 'Wrestling: däischter Hautfaarf, hell Hautfaarf',
+    '🧑🏿‍🫯‍🧑🏼' => 'Wrestling: däischter Hautfaarf, mëttelhell Hautfaarf',
+    '🧑🏿‍🫯‍🧑🏽' => 'Wrestling: däischter Hautfaarf, mëttel Hautfaarf',
+    '🧑🏿‍🫯‍🧑🏾' => 'Wrestling: däischter Hautfaarf, mëtteldäischter Hautfaarf',
     '🧑🏻‍❤‍🧑🏼' => 'verléift Koppel: Erwuessenen, Erwuessenen, hell Hautfaarf, mëttelhell Hautfaarf',
     '🧑🏻‍❤‍🧑🏽' => 'verléift Koppel: Erwuessenen, Erwuessenen, hell Hautfaarf, mëttel Hautfaarf',
     '🧑🏻‍❤‍🧑🏾' => 'verléift Koppel: Erwuessenen, Erwuessenen, hell Hautfaarf, mëtteldäischter Hautfaarf',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'verléift Koppel: Erwuessenen, Erwuessenen, däischter Hautfaarf, mëttelhell Hautfaarf',
     '🧑🏿‍❤‍🧑🏽' => 'verléift Koppel: Erwuessenen, Erwuessenen, däischter Hautfaarf, mëttel Hautfaarf',
     '🧑🏿‍❤‍🧑🏾' => 'verléift Koppel: Erwuessenen, Erwuessenen, däischter Hautfaarf, mëtteldäischter Hautfaarf',
+    '🧑🏻‍🐰‍🧑🏼' => 'Persoun mat Huesoueren: hell Hautfaarf, mëttelhell Hautfaarf',
+    '🧑🏻‍🐰‍🧑🏽' => 'Persoun mat Huesoueren: hell Hautfaarf, mëttel Hautfaarf',
+    '🧑🏻‍🐰‍🧑🏾' => 'Persoun mat Huesoueren: hell Hautfaarf, mëtteldäischter Hautfaarf',
+    '🧑🏻‍🐰‍🧑🏿' => 'Persoun mat Huesoueren: hell Hautfaarf, däischter Hautfaarf',
+    '🧑🏼‍🐰‍🧑🏻' => 'Persoun mat Huesoueren: mëttelhell Hautfaarf, hell Hautfaarf',
+    '🧑🏼‍🐰‍🧑🏽' => 'Persoun mat Huesoueren: mëttelhell Hautfaarf, mëttel Hautfaarf',
+    '🧑🏼‍🐰‍🧑🏾' => 'Persoun mat Huesoueren: mëttelhell Hautfaarf, mëtteldäischter Hautfaarf',
+    '🧑🏼‍🐰‍🧑🏿' => 'Persoun mat Huesoueren: mëttelhell Hautfaarf, däischter Hautfaarf',
+    '🧑🏽‍🐰‍🧑🏻' => 'Persoun mat Huesoueren: mëttel Hautfaarf, hell Hautfaarf',
+    '🧑🏽‍🐰‍🧑🏼' => 'Persoun mat Huesoueren: mëttel Hautfaarf, mëttelhell Hautfaarf',
+    '🧑🏽‍🐰‍🧑🏾' => 'Persoun mat Huesoueren: mëttel Hautfaarf, mëtteldäischter Hautfaarf',
+    '🧑🏽‍🐰‍🧑🏿' => 'Persoun mat Huesoueren: mëttel Hautfaarf, däischter Hautfaarf',
+    '🧑🏾‍🐰‍🧑🏻' => 'Persoun mat Huesoueren: mëtteldäischter Hautfaarf, hell Hautfaarf',
+    '🧑🏾‍🐰‍🧑🏼' => 'Persoun mat Huesoueren: mëtteldäischter Hautfaarf, mëttelhell Hautfaarf',
+    '🧑🏾‍🐰‍🧑🏽' => 'Persoun mat Huesoueren: mëtteldäischter Hautfaarf, mëttel Hautfaarf',
+    '🧑🏾‍🐰‍🧑🏿' => 'Persoun mat Huesoueren: mëtteldäischter Hautfaarf, däischter Hautfaarf',
+    '🧑🏿‍🐰‍🧑🏻' => 'Persoun mat Huesoueren: däischter Hautfaarf, hell Hautfaarf',
+    '🧑🏿‍🐰‍🧑🏼' => 'Persoun mat Huesoueren: däischter Hautfaarf, mëttelhell Hautfaarf',
+    '🧑🏿‍🐰‍🧑🏽' => 'Persoun mat Huesoueren: däischter Hautfaarf, mëttel Hautfaarf',
+    '🧑🏿‍🐰‍🧑🏾' => 'Persoun mat Huesoueren: däischter Hautfaarf, mëtteldäischter Hautfaarf',
+    '👨🏻‍🫯‍👨🏼' => 'Wrestler: hell Hautfaarf, mëttelhell Hautfaarf',
+    '👨🏻‍🫯‍👨🏽' => 'Wrestler: hell Hautfaarf, mëttel Hautfaarf',
+    '👨🏻‍🫯‍👨🏾' => 'Wrestler: hell Hautfaarf, mëtteldäischter Hautfaarf',
+    '👨🏻‍🫯‍👨🏿' => 'Wrestler: hell Hautfaarf, däischter Hautfaarf',
+    '👨🏼‍🫯‍👨🏻' => 'Wrestler: mëttelhell Hautfaarf, hell Hautfaarf',
+    '👨🏼‍🫯‍👨🏽' => 'Wrestler: mëttelhell Hautfaarf, mëttel Hautfaarf',
+    '👨🏼‍🫯‍👨🏾' => 'Wrestler: mëttelhell Hautfaarf, mëtteldäischter Hautfaarf',
+    '👨🏼‍🫯‍👨🏿' => 'Wrestler: mëttelhell Hautfaarf, däischter Hautfaarf',
+    '👨🏽‍🫯‍👨🏻' => 'Wrestler: mëttel Hautfaarf, hell Hautfaarf',
+    '👨🏽‍🫯‍👨🏼' => 'Wrestler: mëttel Hautfaarf, mëttelhell Hautfaarf',
+    '👨🏽‍🫯‍👨🏾' => 'Wrestler: mëttel Hautfaarf, mëtteldäischter Hautfaarf',
+    '👨🏽‍🫯‍👨🏿' => 'Wrestler: mëttel Hautfaarf, däischter Hautfaarf',
+    '👨🏾‍🫯‍👨🏻' => 'Wrestler: mëtteldäischter Hautfaarf, hell Hautfaarf',
+    '👨🏾‍🫯‍👨🏼' => 'Wrestler: mëtteldäischter Hautfaarf, mëttelhell Hautfaarf',
+    '👨🏾‍🫯‍👨🏽' => 'Wrestler: mëtteldäischter Hautfaarf, mëttel Hautfaarf',
+    '👨🏾‍🫯‍👨🏿' => 'Wrestler: mëtteldäischter Hautfaarf, däischter Hautfaarf',
+    '👨🏿‍🫯‍👨🏻' => 'Wrestler: däischter Hautfaarf, hell Hautfaarf',
+    '👨🏿‍🫯‍👨🏼' => 'Wrestler: däischter Hautfaarf, mëttelhell Hautfaarf',
+    '👨🏿‍🫯‍👨🏽' => 'Wrestler: däischter Hautfaarf, mëttel Hautfaarf',
+    '👨🏿‍🫯‍👨🏾' => 'Wrestler: däischter Hautfaarf, mëtteldäischter Hautfaarf',
     '👨🏻‍❤‍👨🏻' => 'verléift Koppel: Mann, Mann, hell Hautfaarf',
     '👨🏻‍❤‍👨🏼' => 'verléift Koppel: Mann, Mann, hell Hautfaarf, mëttelhell Hautfaarf',
     '👨🏻‍❤‍👨🏽' => 'verléift Koppel: Mann, Mann, hell Hautfaarf, mëttel Hautfaarf',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'verléift Koppel: Mann, Mann, däischter Hautfaarf, mëttel Hautfaarf',
     '👨🏿‍❤‍👨🏾' => 'verléift Koppel: Mann, Mann, däischter Hautfaarf, mëtteldäischter Hautfaarf',
     '👨🏿‍❤‍👨🏿' => 'verléift Koppel: Mann, Mann, däischter Hautfaarf',
+    '👨🏻‍🐰‍👨🏼' => 'Männer mat Huesoueren: hell Hautfaarf, mëttelhell Hautfaarf',
+    '👨🏻‍🐰‍👨🏽' => 'Männer mat Huesoueren: hell Hautfaarf, mëttel Hautfaarf',
+    '👨🏻‍🐰‍👨🏾' => 'Männer mat Huesoueren: hell Hautfaarf, mëtteldäischter Hautfaarf',
+    '👨🏻‍🐰‍👨🏿' => 'Männer mat Huesoueren: hell Hautfaarf, däischter Hautfaarf',
+    '👨🏼‍🐰‍👨🏻' => 'Männer mat Huesoueren: mëttelhell Hautfaarf, hell Hautfaarf',
+    '👨🏼‍🐰‍👨🏽' => 'Männer mat Huesoueren: mëttelhell Hautfaarf, mëttel Hautfaarf',
+    '👨🏼‍🐰‍👨🏾' => 'Männer mat Huesoueren: mëttelhell Hautfaarf, mëtteldäischter Hautfaarf',
+    '👨🏼‍🐰‍👨🏿' => 'Männer mat Huesoueren: mëttelhell Hautfaarf, däischter Hautfaarf',
+    '👨🏽‍🐰‍👨🏻' => 'Männer mat Huesoueren: mëttel Hautfaarf, hell Hautfaarf',
+    '👨🏽‍🐰‍👨🏼' => 'Männer mat Huesoueren: mëttel Hautfaarf, mëttelhell Hautfaarf',
+    '👨🏽‍🐰‍👨🏾' => 'Männer mat Huesoueren: mëttel Hautfaarf, mëtteldäischter Hautfaarf',
+    '👨🏽‍🐰‍👨🏿' => 'Männer mat Huesoueren: mëttel Hautfaarf, däischter Hautfaarf',
+    '👨🏾‍🐰‍👨🏻' => 'Männer mat Huesoueren: mëtteldäischter Hautfaarf, hell Hautfaarf',
+    '👨🏾‍🐰‍👨🏼' => 'Männer mat Huesoueren: mëtteldäischter Hautfaarf, mëttelhell Hautfaarf',
+    '👨🏾‍🐰‍👨🏽' => 'Männer mat Huesoueren: mëtteldäischter Hautfaarf, mëttel Hautfaarf',
+    '👨🏾‍🐰‍👨🏿' => 'Männer mat Huesoueren: mëtteldäischter Hautfaarf, däischter Hautfaarf',
+    '👨🏿‍🐰‍👨🏻' => 'Männer mat Huesoueren: däischter Hautfaarf, hell Hautfaarf',
+    '👨🏿‍🐰‍👨🏼' => 'Männer mat Huesoueren: däischter Hautfaarf, mëttelhell Hautfaarf',
+    '👨🏿‍🐰‍👨🏽' => 'Männer mat Huesoueren: däischter Hautfaarf, mëttel Hautfaarf',
+    '👨🏿‍🐰‍👨🏾' => 'Männer mat Huesoueren: däischter Hautfaarf, mëtteldäischter Hautfaarf',
+    '👩🏻‍🫯‍👩🏼' => 'Wrestlerinnen: hell Hautfaarf, mëttelhell Hautfaarf',
+    '👩🏻‍🫯‍👩🏽' => 'Wrestlerinnen: hell Hautfaarf, mëttel Hautfaarf',
+    '👩🏻‍🫯‍👩🏾' => 'Wrestlerinnen: hell Hautfaarf, mëtteldäischter Hautfaarf',
+    '👩🏻‍🫯‍👩🏿' => 'Wrestlerinnen: hell Hautfaarf, däischter Hautfaarf',
+    '👩🏼‍🫯‍👩🏻' => 'Wrestlerinnen: mëttelhell Hautfaarf, hell Hautfaarf',
+    '👩🏼‍🫯‍👩🏽' => 'Wrestlerinnen: mëttelhell Hautfaarf, mëttel Hautfaarf',
+    '👩🏼‍🫯‍👩🏾' => 'Wrestlerinnen: mëttelhell Hautfaarf, mëtteldäischter Hautfaarf',
+    '👩🏼‍🫯‍👩🏿' => 'Wrestlerinnen: mëttelhell Hautfaarf, däischter Hautfaarf',
+    '👩🏽‍🫯‍👩🏻' => 'Wrestlerinnen: mëttel Hautfaarf, hell Hautfaarf',
+    '👩🏽‍🫯‍👩🏼' => 'Wrestlerinnen: mëttel Hautfaarf, mëttelhell Hautfaarf',
+    '👩🏽‍🫯‍👩🏾' => 'Wrestlerinnen: mëttel Hautfaarf, mëtteldäischter Hautfaarf',
+    '👩🏽‍🫯‍👩🏿' => 'Wrestlerinnen: mëttel Hautfaarf, däischter Hautfaarf',
+    '👩🏾‍🫯‍👩🏻' => 'Wrestlerinnen: mëtteldäischter Hautfaarf, hell Hautfaarf',
+    '👩🏾‍🫯‍👩🏼' => 'Wrestlerinnen: mëtteldäischter Hautfaarf, mëttelhell Hautfaarf',
+    '👩🏾‍🫯‍👩🏽' => 'Wrestlerinnen: mëtteldäischter Hautfaarf, mëttel Hautfaarf',
+    '👩🏾‍🫯‍👩🏿' => 'Wrestlerinnen: mëtteldäischter Hautfaarf, däischter Hautfaarf',
+    '👩🏿‍🫯‍👩🏻' => 'Wrestlerinnen: däischter Hautfaarf, hell Hautfaarf',
+    '👩🏿‍🫯‍👩🏼' => 'Wrestlerinnen: däischter Hautfaarf, mëttelhell Hautfaarf',
+    '👩🏿‍🫯‍👩🏽' => 'Wrestlerinnen: däischter Hautfaarf, mëttel Hautfaarf',
+    '👩🏿‍🫯‍👩🏾' => 'Wrestlerinnen: däischter Hautfaarf, mëtteldäischter Hautfaarf',
     '👩🏻‍❤‍👨🏻' => 'verléift Koppel: Fra, Mann, hell Hautfaarf',
     '👩🏻‍❤‍👨🏼' => 'verléift Koppel: Fra, Mann, hell Hautfaarf, mëttelhell Hautfaarf',
     '👩🏻‍❤‍👨🏽' => 'verléift Koppel: Fra, Mann, hell Hautfaarf, mëttel Hautfaarf',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'verléift Koppel: Fra, Fra, däischter Hautfaarf, mëttel Hautfaarf',
     '👩🏿‍❤‍👩🏾' => 'verléift Koppel: Fra, Fra, däischter Hautfaarf, mëtteldäischter Hautfaarf',
     '👩🏿‍❤‍👩🏿' => 'verléift Koppel: Fra, Fra, däischter Hautfaarf',
+    '👩🏻‍🐰‍👩🏼' => 'Frae mat Huesoueren: hell Hautfaarf, mëttelhell Hautfaarf',
+    '👩🏻‍🐰‍👩🏽' => 'Frae mat Huesoueren: hell Hautfaarf, mëttel Hautfaarf',
+    '👩🏻‍🐰‍👩🏾' => 'Frae mat Huesoueren: hell Hautfaarf, mëtteldäischter Hautfaarf',
+    '👩🏻‍🐰‍👩🏿' => 'Frae mat Huesoueren: hell Hautfaarf, däischter Hautfaarf',
+    '👩🏼‍🐰‍👩🏻' => 'Frae mat Huesoueren: mëttelhell Hautfaarf, hell Hautfaarf',
+    '👩🏼‍🐰‍👩🏽' => 'Frae mat Huesoueren: mëttelhell Hautfaarf, mëttel Hautfaarf',
+    '👩🏼‍🐰‍👩🏾' => 'Frae mat Huesoueren: mëttelhell Hautfaarf, mëtteldäischter Hautfaarf',
+    '👩🏼‍🐰‍👩🏿' => 'Frae mat Huesoueren: mëttelhell Hautfaarf, däischter Hautfaarf',
+    '👩🏽‍🐰‍👩🏻' => 'Frae mat Huesoueren: mëttel Hautfaarf, hell Hautfaarf',
+    '👩🏽‍🐰‍👩🏼' => 'Frae mat Huesoueren: mëttel Hautfaarf, mëttelhell Hautfaarf',
+    '👩🏽‍🐰‍👩🏾' => 'Frae mat Huesoueren: mëttel Hautfaarf, mëtteldäischter Hautfaarf',
+    '👩🏽‍🐰‍👩🏿' => 'Frae mat Huesoueren: mëttel Hautfaarf, däischter Hautfaarf',
+    '👩🏾‍🐰‍👩🏻' => 'Frae mat Huesoueren: mëtteldäischter Hautfaarf, hell Hautfaarf',
+    '👩🏾‍🐰‍👩🏼' => 'Frae mat Huesoueren: mëtteldäischter Hautfaarf, mëttelhell Hautfaarf',
+    '👩🏾‍🐰‍👩🏽' => 'Frae mat Huesoueren: mëtteldäischter Hautfaarf, mëttel Hautfaarf',
+    '👩🏾‍🐰‍👩🏿' => 'Frae mat Huesoueren: mëtteldäischter Hautfaarf, däischter Hautfaarf',
+    '👩🏿‍🐰‍👩🏻' => 'Frae mat Huesoueren: däischter Hautfaarf, hell Hautfaarf',
+    '👩🏿‍🐰‍👩🏼' => 'Frae mat Huesoueren: däischter Hautfaarf, mëttelhell Hautfaarf',
+    '👩🏿‍🐰‍👩🏽' => 'Frae mat Huesoueren: däischter Hautfaarf, mëttel Hautfaarf',
+    '👩🏿‍🐰‍👩🏾' => 'Frae mat Huesoueren: däischter Hautfaarf, mëtteldäischter Hautfaarf',
     '👩🏻‍🤝‍👩🏼' => 'zwou Fraen Hand an Hand: hell Hautfaarf, mëttelhell Hautfaarf',
     '👩🏻‍🤝‍👩🏽' => 'zwou Fraen Hand an Hand: hell Hautfaarf, mëttel Hautfaarf',
     '👩🏻‍🤝‍👩🏾' => 'zwou Fraen Hand an Hand: hell Hautfaarf, mëtteldäischter Hautfaarf',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'lafend Fra: mëttel Hautfaarf',
     '🏃🏾‍♀' => 'lafend Fra: mëtteldäischter Hautfaarf',
     '🏃🏿‍♀' => 'lafend Fra: däischter Hautfaarf',
+    '👯🏻‍♀' => 'Frae mat Huesoueren: hell Hautfaarf',
+    '👯🏼‍♀' => 'Frae mat Huesoueren: mëttelhell Hautfaarf',
+    '👯🏽‍♀' => 'Frae mat Huesoueren: mëttel Hautfaarf',
+    '👯🏾‍♀' => 'Frae mat Huesoueren: mëtteldäischter Hautfaarf',
+    '👯🏿‍♀' => 'Frae mat Huesoueren: däischter Hautfaarf',
+    '👯🏻‍♂' => 'Männer mat Huesoueren: hell Hautfaarf',
+    '👯🏼‍♂' => 'Männer mat Huesoueren: mëttelhell Hautfaarf',
+    '👯🏽‍♂' => 'Männer mat Huesoueren: mëttel Hautfaarf',
+    '👯🏾‍♂' => 'Männer mat Huesoueren: mëtteldäischter Hautfaarf',
+    '👯🏿‍♂' => 'Männer mat Huesoueren: däischter Hautfaarf',
     '🧖🏻‍♂' => 'Mann am Dampbad: hell Hautfaarf',
     '🧖🏼‍♂' => 'Mann am Dampbad: mëttelhell Hautfaarf',
     '🧖🏽‍♂' => 'Mann am Dampbad: mëttel Hautfaarf',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'Fra, déi d’Rad schléit: mëttel Hautfaarf',
     '🤸🏾‍♀' => 'Fra, déi d’Rad schléit: mëtteldäischter Hautfaarf',
     '🤸🏿‍♀' => 'Fra, déi d’Rad schléit: däischter Hautfaarf',
+    '🤼🏻‍♀' => 'Wrestlerinnen: hell Hautfaarf',
+    '🤼🏼‍♀' => 'Wrestlerinnen: mëttelhell Hautfaarf',
+    '🤼🏽‍♀' => 'Wrestlerinnen: mëttel Hautfaarf',
+    '🤼🏾‍♀' => 'Wrestlerinnen: mëtteldäischter Hautfaarf',
+    '🤼🏿‍♀' => 'Wrestlerinnen: däischter Hautfaarf',
+    '🤼🏻‍♂' => 'Wrestler: hell Hautfaarf',
+    '🤼🏼‍♂' => 'Wrestler: mëttelhell Hautfaarf',
+    '🤼🏽‍♂' => 'Wrestler: mëttel Hautfaarf',
+    '🤼🏾‍♂' => 'Wrestler: mëtteldäischter Hautfaarf',
+    '🤼🏿‍♂' => 'Wrestler: däischter Hautfaarf',
     '🤽🏻‍♂' => 'Waasserballspiller: hell Hautfaarf',
     '🤽🏼‍♂' => 'Waasserballspiller: mëttelhell Hautfaarf',
     '🤽🏽‍♂' => 'Waasserballspiller: mëttel Hautfaarf',
@@ -1392,6 +1532,11 @@
     '🕴🏽' => 'levitéierende Man am Kostüm: mëttel Hautfaarf',
     '🕴🏾' => 'levitéierende Man am Kostüm: mëtteldäischter Hautfaarf',
     '🕴🏿' => 'levitéierende Man am Kostüm: däischter Hautfaarf',
+    '👯🏻' => 'Persoun mat Huesoueren: hell Hautfaarf',
+    '👯🏼' => 'Persoun mat Huesoueren: mëttelhell Hautfaarf',
+    '👯🏽' => 'Persoun mat Huesoueren: mëttel Hautfaarf',
+    '👯🏾' => 'Persoun mat Huesoueren: mëtteldäischter Hautfaarf',
+    '👯🏿' => 'Persoun mat Huesoueren: däischter Hautfaarf',
     '🧖🏻' => 'Persoun am Dampbad: hell Hautfaarf',
     '🧖🏼' => 'Persoun am Dampbad: mëttelhell Hautfaarf',
     '🧖🏽' => 'Persoun am Dampbad: mëttel Hautfaarf',
@@ -1457,6 +1602,11 @@
     '🤸🏽' => 'Persoun, déi d’Rad schléit: mëttel Hautfaarf',
     '🤸🏾' => 'Persoun, déi d’Rad schléit: mëtteldäischter Hautfaarf',
     '🤸🏿' => 'Persoun, déi d’Rad schléit: däischter Hautfaarf',
+    '🤼🏻' => 'Wrestling: hell Hautfaarf',
+    '🤼🏼' => 'Wrestling: mëttelhell Hautfaarf',
+    '🤼🏽' => 'Wrestling: mëttel Hautfaarf',
+    '🤼🏾' => 'Wrestling: mëtteldäischter Hautfaarf',
+    '🤼🏿' => 'Wrestling: däischter Hautfaarf',
     '🤽🏻' => 'Waasserballspiller(in): hell Hautfaarf',
     '🤽🏼' => 'Waasserballspiller(in): mëttelhell Hautfaarf',
     '🤽🏽' => 'Waasserballspiller(in): mëttel Hautfaarf',
@@ -1857,6 +2007,9 @@
     '🦈' => 'Hai',
     '🐙' => 'Tëntefësch',
     '🐚' => 'Spiralmuschel',
+    '🦀' => 'Kriibs',
+    '🦐' => 'Crevette',
+    '🦑' => 'Calamar',
     '🐌' => 'Schleek',
     '🦋' => 'Päiperlek',
     '🐛' => 'Kiewerlek',
@@ -1958,9 +2111,6 @@
     '🥟' => 'Ravioli',
     '🥠' => 'Gléckskichelchen',
     '🥡' => 'Takeout-Këscht',
-    '🦀' => 'Kriibs',
-    '🦐' => 'Crevette',
-    '🦑' => 'Calamar',
     '🍦' => 'Softice',
     '🍧' => 'Waasserglace',
     '🍨' => 'Glace',
@@ -2312,9 +2462,9 @@
     '🎧' => 'Kopfhörer',
     '📻' => 'Radio',
     '🎷' => 'Saxofon',
+    '🎺' => 'Trompett',
     '🎸' => 'Gittar',
     '🎹' => 'Keyboard',
-    '🎺' => 'Trompett',
     '🎻' => 'Gei',
     '🥁' => 'Trommel',
     '📱' => 'Handy',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lij.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lij.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lij.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lij.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'baxo: dònna, dònna, carnaxon scua e carnaxon cô d’öiva',
     '👩🏿‍❤‍💋‍👩🏾' => 'baxo: dònna, dònna, carnaxon scua e carnaxon assæ scua',
     '👩🏿‍❤‍💋‍👩🏿' => 'baxo: dònna, dònna e carnaxon scua',
+    '🧑🏻‍🫯‍🧑🏼' => 'persoñe che lòttan: carnaxon ciæa e carnaxon assæ ciæa',
+    '🧑🏻‍🫯‍🧑🏽' => 'persoñe che lòttan: carnaxon ciæa e carnaxon cô d’öiva',
+    '🧑🏻‍🫯‍🧑🏾' => 'persoñe che lòttan: carnaxon ciæa e carnaxon assæ scua',
+    '🧑🏻‍🫯‍🧑🏿' => 'persoñe che lòttan: carnaxon ciæa e carnaxon scua',
+    '🧑🏼‍🫯‍🧑🏻' => 'persoñe che lòttan: carnaxon assæ ciæa e carnaxon ciæa',
+    '🧑🏼‍🫯‍🧑🏽' => 'persoñe che lòttan: carnaxon assæ ciæa e carnaxon cô d’öiva',
+    '🧑🏼‍🫯‍🧑🏾' => 'persoñe che lòttan: carnaxon assæ ciæa e carnaxon assæ scua',
+    '🧑🏼‍🫯‍🧑🏿' => 'persoñe che lòttan: carnaxon assæ ciæa e carnaxon scua',
+    '🧑🏽‍🫯‍🧑🏻' => 'persoñe che lòttan: carnaxon cô d’öiva e carnaxon ciæa',
+    '🧑🏽‍🫯‍🧑🏼' => 'persoñe che lòttan: carnaxon cô d’öiva e carnaxon assæ ciæa',
+    '🧑🏽‍🫯‍🧑🏾' => 'persoñe che lòttan: carnaxon cô d’öiva e carnaxon assæ scua',
+    '🧑🏽‍🫯‍🧑🏿' => 'persoñe che lòttan: carnaxon cô d’öiva e carnaxon scua',
+    '🧑🏾‍🫯‍🧑🏻' => 'persoñe che lòttan: carnaxon assæ scua e carnaxon ciæa',
+    '🧑🏾‍🫯‍🧑🏼' => 'persoñe che lòttan: carnaxon assæ scua e carnaxon assæ ciæa',
+    '🧑🏾‍🫯‍🧑🏽' => 'persoñe che lòttan: carnaxon assæ scua e carnaxon cô d’öiva',
+    '🧑🏾‍🫯‍🧑🏿' => 'persoñe che lòttan: carnaxon assæ scua e carnaxon scua',
+    '🧑🏿‍🫯‍🧑🏻' => 'persoñe che lòttan: carnaxon scua e carnaxon ciæa',
+    '🧑🏿‍🫯‍🧑🏼' => 'persoñe che lòttan: carnaxon scua e carnaxon assæ ciæa',
+    '🧑🏿‍🫯‍🧑🏽' => 'persoñe che lòttan: carnaxon scua e carnaxon cô d’öiva',
+    '🧑🏿‍🫯‍🧑🏾' => 'persoñe che lòttan: carnaxon scua e carnaxon assæ scua',
     '🧑🏻‍❤‍🧑🏼' => 'cobbia con cheucobbia co-o cheu: persoña, persoña, carnaxon ciæa e carnaxon assæ ciæa',
     '🧑🏻‍❤‍🧑🏽' => 'cobbia con cheucobbia co-o cheu: persoña, persoña, carnaxon ciæa e carnaxon cô d’öiva',
     '🧑🏻‍❤‍🧑🏾' => 'cobbia con cheucobbia co-o cheu: persoña, persoña, carnaxon ciæa e carnaxon assæ scua',
@@ -116,6 +136,26 @@
     '🧑🏿‍❤‍🧑🏼' => 'cobbia con cheucobbia co-o cheu: persoña, persoña, carnaxon scua e carnaxon assæ ciæa',
     '🧑🏿‍❤‍🧑🏽' => 'cobbia con cheucobbia co-o cheu: persoña, persoña, carnaxon scua e carnaxon cô d’öiva',
     '🧑🏿‍❤‍🧑🏾' => 'cobbia con cheucobbia co-o cheu: persoña, persoña, carnaxon scua e carnaxon assæ scua',
+    '🧑🏻‍🐰‍🧑🏼' => 'persoñe co-e oege da coniggio: carnaxon ciæa e carnaxon assæ ciæa',
+    '🧑🏻‍🐰‍🧑🏽' => 'persoñe co-e oege da coniggio: carnaxon ciæa e carnaxon cô d’öiva',
+    '🧑🏻‍🐰‍🧑🏾' => 'persoñe co-e oege da coniggio: carnaxon ciæa e carnaxon assæ scua',
+    '🧑🏻‍🐰‍🧑🏿' => 'persoñe co-e oege da coniggio: carnaxon ciæa e carnaxon scua',
+    '🧑🏼‍🐰‍🧑🏻' => 'persoñe co-e oege da coniggio: carnaxon assæ ciæa e carnaxon ciæa',
+    '🧑🏼‍🐰‍🧑🏽' => 'persoñe co-e oege da coniggio: carnaxon assæ ciæa e carnaxon cô d’öiva',
+    '🧑🏼‍🐰‍🧑🏾' => 'persoñe co-e oege da coniggio: carnaxon assæ ciæa e carnaxon assæ scua',
+    '🧑🏼‍🐰‍🧑🏿' => 'persoñe co-e oege da coniggio: carnaxon assæ ciæa e carnaxon scua',
+    '🧑🏽‍🐰‍🧑🏻' => 'persoñe co-e oege da coniggio: carnaxon cô d’öiva e carnaxon ciæa',
+    '🧑🏽‍🐰‍🧑🏼' => 'persoñe co-e oege da coniggio: carnaxon cô d’öiva e carnaxon assæ ciæa',
+    '🧑🏽‍🐰‍🧑🏾' => 'persoñe co-e oege da coniggio: carnaxon cô d’öiva e carnaxon assæ scua',
+    '🧑🏽‍🐰‍🧑🏿' => 'persoñe co-e oege da coniggio: carnaxon cô d’öiva e carnaxon scua',
+    '🧑🏾‍🐰‍🧑🏻' => 'persoñe co-e oege da coniggio: carnaxon assæ scua e carnaxon ciæa',
+    '🧑🏾‍🐰‍🧑🏼' => 'persoñe co-e oege da coniggio: carnaxon assæ scua e carnaxon assæ ciæa',
+    '🧑🏾‍🐰‍🧑🏽' => 'persoñe co-e oege da coniggio: carnaxon assæ scua e carnaxon cô d’öiva',
+    '🧑🏾‍🐰‍🧑🏿' => 'persoñe co-e oege da coniggio: carnaxon assæ scua e carnaxon scua',
+    '🧑🏿‍🐰‍🧑🏻' => 'persoñe co-e oege da coniggio: carnaxon scua e carnaxon ciæa',
+    '🧑🏿‍🐰‍🧑🏼' => 'persoñe co-e oege da coniggio: carnaxon scua e carnaxon assæ ciæa',
+    '🧑🏿‍🐰‍🧑🏽' => 'persoñe co-e oege da coniggio: carnaxon scua e carnaxon cô d’öiva',
+    '🧑🏿‍🐰‍🧑🏾' => 'persoñe co-e oege da coniggio: carnaxon scua e carnaxon assæ scua',
     '👨🏻‍❤‍👨🏻' => 'cobbia con cheucobbia co-o cheu: òmmo, òmmo e carnaxon ciæa',
     '👨🏻‍❤‍👨🏼' => 'cobbia con cheucobbia co-o cheu: òmmo, òmmo, carnaxon ciæa e carnaxon assæ ciæa',
     '👨🏻‍❤‍👨🏽' => 'cobbia con cheucobbia co-o cheu: òmmo, òmmo, carnaxon ciæa e carnaxon cô d’öiva',
@@ -909,6 +949,11 @@
     '🕴🏽' => 'persoña co-o vestî elegante ch’a levita: carnaxon cô d’öiva',
     '🕴🏾' => 'persoña co-o vestî elegante ch’a levita: carnaxon assæ scua',
     '🕴🏿' => 'persoña co-o vestî elegante ch’a levita: carnaxon scua',
+    '👯🏻' => 'persoñe co-e oege da coniggio: carnaxon ciæa',
+    '👯🏼' => 'persoñe co-e oege da coniggio: carnaxon assæ ciæa',
+    '👯🏽' => 'persoñe co-e oege da coniggio: carnaxon cô d’öiva',
+    '👯🏾' => 'persoñe co-e oege da coniggio: carnaxon assæ scua',
+    '👯🏿' => 'persoñe co-e oege da coniggio: carnaxon scua',
     '🧖🏻' => 'persoña inte unna stansia piña de vapô: carnaxon ciæa',
     '🧖🏼' => 'persoña inte unna stansia piña de vapô: carnaxon assæ ciæa',
     '🧖🏽' => 'persoña inte unna stansia piña de vapô: carnaxon cô d’öiva',
@@ -974,6 +1019,11 @@
     '🤸🏽' => 'persoña ch’a fa a reua: carnaxon cô d’öiva',
     '🤸🏾' => 'persoña ch’a fa a reua: carnaxon assæ scua',
     '🤸🏿' => 'persoña ch’a fa a reua: carnaxon scua',
+    '🤼🏻' => 'persoñe che lòttan: carnaxon ciæa',
+    '🤼🏼' => 'persoñe che lòttan: carnaxon assæ ciæa',
+    '🤼🏽' => 'persoñe che lòttan: carnaxon cô d’öiva',
+    '🤼🏾' => 'persoñe che lòttan: carnaxon assæ scua',
+    '🤼🏿' => 'persoñe che lòttan: carnaxon scua',
     '🤽🏻' => 'persoña ch’a zeuga à waterpölo: carnaxon ciæa',
     '🤽🏼' => 'persoña ch’a zeuga à waterpölo: carnaxon assæ ciæa',
     '🤽🏽' => 'persoña ch’a zeuga à waterpölo: carnaxon cô d’öiva',
@@ -1717,6 +1767,11 @@
     '🐚' => 'conchiggia',
     '🪸' => 'coalo',
     '🪼' => 'carnassa',
+    '🦀' => 'gritta',
+    '🦞' => 'ägosta',
+    '🦐' => 'gambao',
+    '🦑' => 'cämâ',
+    '🦪' => 'òstrega',
     '🐌' => 'cägòllo',
     '🦋' => 'parpaggia',
     '🐛' => 'bestieta',
@@ -1848,11 +1903,6 @@
     '🥟' => 'ravieu',
     '🥠' => 'bescheutto da fortuña',
     '🥡' => 'scatoa da portâ via',
-    '🦀' => 'gritta',
-    '🦞' => 'ägosta',
-    '🦐' => 'gambao',
-    '🦑' => 'cämâ',
-    '🦪' => 'òstrega',
     '🍦' => 'gelato inta negia',
     '🍧' => 'granita',
     '🍨' => 'coppa de sciorbetto',
@@ -2263,10 +2313,10 @@
     '🎧' => 'scuffie',
     '📻' => 'aradio',
     '🎷' => 'sasciòfono',
+    '🎺' => 'tromba',
     '🪗' => 'fisa',
     '🎸' => 'chitara',
     '🎹' => 'piano',
-    '🎺' => 'tromba',
     '🎻' => 'violin',
     '🪕' => 'banjo',
     '🥁' => 'tambuo',
@@ -2326,8 +2376,8 @@
     '📑' => 'marcapagina',
     '🔖' => 'segnalibbro',
     '🏷' => 'etichetta',
-    '💰' => 'sacco de dinæ',
     '🪙' => 'monæa',
+    '💰' => 'sacco de dinæ',
     '💴' => 'biggetto Yen',
     '💵' => 'biggetto Dòllao',
     '💶' => 'biggetto Euro',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lo.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ຈູບ: ແມ່ຍິງ, ແມ່ຍິງ, ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
     '👩🏿‍❤‍💋‍👩🏾' => 'ຈູບ: ແມ່ຍິງ, ແມ່ຍິງ, ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
     '👩🏿‍❤‍💋‍👩🏿' => 'ຈູບ: ແມ່ຍິງ, ແມ່ຍິງ, ສີຜິວໂທນດຳ',
+    '🧑🏻‍🫯‍🧑🏼' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
+    '🧑🏻‍🫯‍🧑🏽' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
+    '🧑🏻‍🫯‍🧑🏾' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳປານກາງ',
+    '🧑🏻‍🫯‍🧑🏿' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳ',
+    '🧑🏼‍🫯‍🧑🏻' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນຂາວ',
+    '🧑🏼‍🫯‍🧑🏽' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນປານກາງ',
+    '🧑🏼‍🫯‍🧑🏾' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '🧑🏼‍🫯‍🧑🏿' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳ',
+    '🧑🏽‍🫯‍🧑🏻' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວ',
+    '🧑🏽‍🫯‍🧑🏼' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '🧑🏽‍🫯‍🧑🏾' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '🧑🏽‍🫯‍🧑🏿' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳ',
+    '🧑🏾‍🫯‍🧑🏻' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວ',
+    '🧑🏾‍🫯‍🧑🏼' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '🧑🏾‍🫯‍🧑🏽' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນປານກາງ',
+    '🧑🏾‍🫯‍🧑🏿' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນດຳ',
+    '🧑🏿‍🫯‍🧑🏻' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວ',
+    '🧑🏿‍🫯‍🧑🏼' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວປານກາງ',
+    '🧑🏿‍🫯‍🧑🏽' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
+    '🧑🏿‍🫯‍🧑🏾' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
     '🧑🏻‍❤‍🧑🏼' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ໃຫຍ່, ຜູ້ໃຫຍ່, ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
     '🧑🏻‍❤‍🧑🏽' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ໃຫຍ່, ຜູ້ໃຫຍ່, ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
     '🧑🏻‍❤‍🧑🏾' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ໃຫຍ່, ຜູ້ໃຫຍ່, ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳປານກາງ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ໃຫຍ່, ຜູ້ໃຫຍ່, ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວປານກາງ',
     '🧑🏿‍❤‍🧑🏽' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ໃຫຍ່, ຜູ້ໃຫຍ່, ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
     '🧑🏿‍❤‍🧑🏾' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ໃຫຍ່, ຜູ້ໃຫຍ່, ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
+    '🧑🏻‍🐰‍🧑🏼' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
+    '🧑🏻‍🐰‍🧑🏽' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
+    '🧑🏻‍🐰‍🧑🏾' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳປານກາງ',
+    '🧑🏻‍🐰‍🧑🏿' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳ',
+    '🧑🏼‍🐰‍🧑🏻' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນຂາວ',
+    '🧑🏼‍🐰‍🧑🏽' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນປານກາງ',
+    '🧑🏼‍🐰‍🧑🏾' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '🧑🏼‍🐰‍🧑🏿' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳ',
+    '🧑🏽‍🐰‍🧑🏻' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວ',
+    '🧑🏽‍🐰‍🧑🏼' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '🧑🏽‍🐰‍🧑🏾' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '🧑🏽‍🐰‍🧑🏿' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳ',
+    '🧑🏾‍🐰‍🧑🏻' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວ',
+    '🧑🏾‍🐰‍🧑🏼' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '🧑🏾‍🐰‍🧑🏽' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນປານກາງ',
+    '🧑🏾‍🐰‍🧑🏿' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນດຳ',
+    '🧑🏿‍🐰‍🧑🏻' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວ',
+    '🧑🏿‍🐰‍🧑🏼' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວປານກາງ',
+    '🧑🏿‍🐰‍🧑🏽' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
+    '🧑🏿‍🐰‍🧑🏾' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
+    '👨🏻‍🫯‍👨🏼' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
+    '👨🏻‍🫯‍👨🏽' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
+    '👨🏻‍🫯‍👨🏾' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳປານກາງ',
+    '👨🏻‍🫯‍👨🏿' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳ',
+    '👨🏼‍🫯‍👨🏻' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນຂາວ',
+    '👨🏼‍🫯‍👨🏽' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນປານກາງ',
+    '👨🏼‍🫯‍👨🏾' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '👨🏼‍🫯‍👨🏿' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳ',
+    '👨🏽‍🫯‍👨🏻' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວ',
+    '👨🏽‍🫯‍👨🏼' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '👨🏽‍🫯‍👨🏾' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '👨🏽‍🫯‍👨🏿' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳ',
+    '👨🏾‍🫯‍👨🏻' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວ',
+    '👨🏾‍🫯‍👨🏼' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '👨🏾‍🫯‍👨🏽' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນປານກາງ',
+    '👨🏾‍🫯‍👨🏿' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນດຳ',
+    '👨🏿‍🫯‍👨🏻' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວ',
+    '👨🏿‍🫯‍👨🏼' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວປານກາງ',
+    '👨🏿‍🫯‍👨🏽' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
+    '👨🏿‍🫯‍👨🏾' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
     '👨🏻‍❤‍👨🏻' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ຊາຍ, ຜູ້ຊາຍ, ສີຜິວໂທນຂາວ',
     '👨🏻‍❤‍👨🏼' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ຊາຍ, ຜູ້ຊາຍ, ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
     '👨🏻‍❤‍👨🏽' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ຊາຍ, ຜູ້ຊາຍ, ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ຊາຍ, ຜູ້ຊາຍ, ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
     '👨🏿‍❤‍👨🏾' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ຊາຍ, ຜູ້ຊາຍ, ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
     '👨🏿‍❤‍👨🏿' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ຊາຍ, ຜູ້ຊາຍ, ສີຜິວໂທນດຳ',
+    '👨🏻‍🐰‍👨🏼' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
+    '👨🏻‍🐰‍👨🏽' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
+    '👨🏻‍🐰‍👨🏾' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳປານກາງ',
+    '👨🏻‍🐰‍👨🏿' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳ',
+    '👨🏼‍🐰‍👨🏻' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນຂາວ',
+    '👨🏼‍🐰‍👨🏽' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນປານກາງ',
+    '👨🏼‍🐰‍👨🏾' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '👨🏼‍🐰‍👨🏿' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳ',
+    '👨🏽‍🐰‍👨🏻' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວ',
+    '👨🏽‍🐰‍👨🏼' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '👨🏽‍🐰‍👨🏾' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '👨🏽‍🐰‍👨🏿' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳ',
+    '👨🏾‍🐰‍👨🏻' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວ',
+    '👨🏾‍🐰‍👨🏼' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '👨🏾‍🐰‍👨🏽' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນປານກາງ',
+    '👨🏾‍🐰‍👨🏿' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນດຳ',
+    '👨🏿‍🐰‍👨🏻' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວ',
+    '👨🏿‍🐰‍👨🏼' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວປານກາງ',
+    '👨🏿‍🐰‍👨🏽' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
+    '👨🏿‍🐰‍👨🏾' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
+    '👩🏻‍🫯‍👩🏼' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
+    '👩🏻‍🫯‍👩🏽' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
+    '👩🏻‍🫯‍👩🏾' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳປານກາງ',
+    '👩🏻‍🫯‍👩🏿' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳ',
+    '👩🏼‍🫯‍👩🏻' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນຂາວ',
+    '👩🏼‍🫯‍👩🏽' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນປານກາງ',
+    '👩🏼‍🫯‍👩🏾' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '👩🏼‍🫯‍👩🏿' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳ',
+    '👩🏽‍🫯‍👩🏻' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວ',
+    '👩🏽‍🫯‍👩🏼' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '👩🏽‍🫯‍👩🏾' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '👩🏽‍🫯‍👩🏿' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳ',
+    '👩🏾‍🫯‍👩🏻' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວ',
+    '👩🏾‍🫯‍👩🏼' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '👩🏾‍🫯‍👩🏽' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນປານກາງ',
+    '👩🏾‍🫯‍👩🏿' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນດຳ',
+    '👩🏿‍🫯‍👩🏻' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວ',
+    '👩🏿‍🫯‍👩🏼' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວປານກາງ',
+    '👩🏿‍🫯‍👩🏽' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
+    '👩🏿‍🫯‍👩🏾' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
     '👩🏻‍❤‍👨🏻' => 'ຄູ່ຮັກກັບຫົວໃຈ: ແມ່ຍິງ, ຜູ້ຊາຍ, ສີຜິວໂທນຂາວ',
     '👩🏻‍❤‍👨🏼' => 'ຄູ່ຮັກກັບຫົວໃຈ: ແມ່ຍິງ, ຜູ້ຊາຍ, ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
     '👩🏻‍❤‍👨🏽' => 'ຄູ່ຮັກກັບຫົວໃຈ: ແມ່ຍິງ, ຜູ້ຊາຍ, ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ຄູ່ຮັກກັບຫົວໃຈ: ແມ່ຍິງ, ແມ່ຍິງ, ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
     '👩🏿‍❤‍👩🏾' => 'ຄູ່ຮັກກັບຫົວໃຈ: ແມ່ຍິງ, ແມ່ຍິງ, ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
     '👩🏿‍❤‍👩🏿' => 'ຄູ່ຮັກກັບຫົວໃຈ: ແມ່ຍິງ, ແມ່ຍິງ, ສີຜິວໂທນດຳ',
+    '👩🏻‍🐰‍👩🏼' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
+    '👩🏻‍🐰‍👩🏽' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
+    '👩🏻‍🐰‍👩🏾' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳປານກາງ',
+    '👩🏻‍🐰‍👩🏿' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳ',
+    '👩🏼‍🐰‍👩🏻' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນຂາວ',
+    '👩🏼‍🐰‍👩🏽' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນປານກາງ',
+    '👩🏼‍🐰‍👩🏾' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '👩🏼‍🐰‍👩🏿' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນຂາວປານກາງ, ສີຜິວໂທນດຳ',
+    '👩🏽‍🐰‍👩🏻' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວ',
+    '👩🏽‍🐰‍👩🏼' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '👩🏽‍🐰‍👩🏾' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳປານກາງ',
+    '👩🏽‍🐰‍👩🏿' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນປານກາງ, ສີຜິວໂທນດຳ',
+    '👩🏾‍🐰‍👩🏻' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວ',
+    '👩🏾‍🐰‍👩🏼' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນຂາວປານກາງ',
+    '👩🏾‍🐰‍👩🏽' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນປານກາງ',
+    '👩🏾‍🐰‍👩🏿' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນດຳປານກາງ, ສີຜິວໂທນດຳ',
+    '👩🏿‍🐰‍👩🏻' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວ',
+    '👩🏿‍🐰‍👩🏼' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວປານກາງ',
+    '👩🏿‍🐰‍👩🏽' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
+    '👩🏿‍🐰‍👩🏾' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
     '🧑🏻‍🤝‍🧑🏻' => 'ຄົນຈັບມືກັນ: ສີຜິວໂທນຂາວ',
     '🧑🏻‍🤝‍🧑🏼' => 'ຄົນຈັບມືກັນ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
     '🧑🏻‍🤝‍🧑🏽' => 'ຄົນຈັບມືກັນ: ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ທຸງ: ສະກັອດແລນ',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'ທຸງ: ເວລສ໌',
     '🧑‍🧑‍🧒‍🧒' => 'ຄອບຄົວ: ຜູ້ໃຫຍ່, ຜູ້ໃຫຍ່, ເດັກນ້ອຍ, ເດັກນ້ອຍ',
-    '🚶🏻‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏼‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏽‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏾‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏿‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏻‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏼‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏽‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏾‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏿‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏻‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏼‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏽‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏾‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏿‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏻‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏼‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏽‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏾‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏿‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏻‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏼‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏽‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏾‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏿‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏻‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏼‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏽‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏾‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏿‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏻‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏼‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏽‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏾‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏿‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏻‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏼‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏽‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏾‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏿‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏻‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏼‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏽‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏾‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏿‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏻‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏼‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏽‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏾‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏿‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏻‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏼‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏽‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏾‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '🧑🏿‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏻‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏼‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏽‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏾‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👨🏿‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏻‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏼‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏽‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏾‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👩🏿‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏻‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏼‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏽‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏾‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏿‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏻‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏼‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏽‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏾‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏿‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏻‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏼‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏽‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏾‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏿‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏻‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏼‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏽‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏾‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏿‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏻‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏼‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏽‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏾‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏿‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏻‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏼‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏽‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏾‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏿‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏻‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏼‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏽‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏾‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏿‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏻‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏼‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏽‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏾‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏿‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏻‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏼‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏽‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏾‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏿‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏻‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏼‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏽‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏾‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏿‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏻‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏼‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏽‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏾‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏿‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏻‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏼‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏽‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏾‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏿‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏻‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏼‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏽‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏾‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧑🏿‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏻‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏼‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏽‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏾‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👨🏿‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏻‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏼‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏽‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏾‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '👩🏿‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏻‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏼‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏽‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏾‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏿‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏻‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏼‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏽‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏾‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏿‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
     '🫱🏻‍🫲🏼' => 'ຈັບມື: ສີຜິວໂທນຂາວ, ສີຜິວໂທນຂາວປານກາງ',
     '🫱🏻‍🫲🏽' => 'ຈັບມື: ສີຜິວໂທນຂາວ, ສີຜິວໂທນປານກາງ',
     '🫱🏻‍🫲🏾' => 'ຈັບມື: ສີຜິວໂທນຂາວ, ສີຜິວໂທນດຳປານກາງ',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ຈັບມື: ສີຜິວໂທນດຳ, ສີຜິວໂທນຂາວປານກາງ',
     '🫱🏿‍🫲🏽' => 'ຈັບມື: ສີຜິວໂທນດຳ, ສີຜິວໂທນປານກາງ',
     '🫱🏿‍🫲🏾' => 'ຈັບມື: ສີຜິວໂທນດຳ, ສີຜິວໂທນດຳປານກາງ',
-    '🚶‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🧎‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧑‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ ຫັນໄປເບື້ອງຂວາ',
-    '👨‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '👩‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ ຫັນໄປເບື້ອງຂວາ',
-    '🧑‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👨‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '👩‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້ ຫັນໄປເບື້ອງຂວາ',
-    '🧑‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👨‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '👩‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ ຫັນໄປເບື້ອງຂວາ',
-    '🏃‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ ຫັນໄປເບື້ອງຂວາ',
+    '🚶‍♀‍➡' => 'ຜູ້ຍິງກຳລັງຍ່າງ: ຫັນໄປເບື້ອງຂວາ',
+    '🚶‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງຍ່າງ: ຫັນໄປເບື້ອງຂວາ',
+    '🧎‍♀‍➡' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ: ຫັນໄປເບື້ອງຂວາ',
+    '🧎‍♂‍➡' => 'ຜູ້​ຊາຍ​ຄຸ​ເຂົ່າ: ຫັນໄປເບື້ອງຂວາ',
+    '🧑‍🦯‍➡' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ: ຫັນໄປເບື້ອງຂວາ',
+    '👨‍🦯‍➡' => 'ຜູ້​ຊາຍ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ຫັນໄປເບື້ອງຂວາ',
+    '👩‍🦯‍➡' => 'ຜູ້​ຍິງ​ຖື​ໄມ້​ຄັນ​ເທົ້າ​ນຳ​ທາງ: ຫັນໄປເບື້ອງຂວາ',
+    '🧑‍🦼‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ຫັນໄປເບື້ອງຂວາ',
+    '👨‍🦼‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ຫັນໄປເບື້ອງຂວາ',
+    '👩‍🦼‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ຕິດ​ຕັ້ງ​ມໍ​ເຕີ້: ຫັນໄປເບື້ອງຂວາ',
+    '🧑‍🦽‍➡' => 'ຄົນນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ຫັນໄປເບື້ອງຂວາ',
+    '👨‍🦽‍➡' => 'ຜູ້​ຊາຍ​ນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ຫັນໄປເບື້ອງຂວາ',
+    '👩‍🦽‍➡' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ: ຫັນໄປເບື້ອງຂວາ',
+    '🏃‍♀‍➡' => 'ຜູ້ຍິງກຳລັງແລ່ນ: ຫັນໄປເບື້ອງຂວາ',
+    '🏃‍♂‍➡' => 'ຜູ້ຊາຍກຳລັງແລ່ນ: ຫັນໄປເບື້ອງຂວາ',
     '👩‍❤‍👨' => 'ຄູ່ຮັກກັບຫົວໃຈ: ແມ່ຍິງ, ຜູ້ຊາຍ',
     '👨‍❤‍👨' => 'ຄູ່ຮັກກັບຫົວໃຈ: ຜູ້ຊາຍ, ຜູ້ຊາຍ',
     '👩‍❤‍👩' => 'ຄູ່ຮັກກັບຫົວໃຈ: ແມ່ຍິງ, ແມ່ຍິງ',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'ຜູ້ໃຫຍ່: ສີຜິວໂທນປານກາງ, ຫົວລ້ານ',
     '🧑🏾‍🦲' => 'ຜູ້ໃຫຍ່: ສີຜິວໂທນດຳປານກາງ, ຫົວລ້ານ',
     '🧑🏿‍🦲' => 'ຜູ້ໃຫຍ່: ສີຜິວໂທນດຳ, ຫົວລ້ານ',
+    '🧑🏻‍🩰' => 'ນັກເຕັ້ນບາເລ້: ສີຜິວໂທນຂາວ',
+    '🧑🏼‍🩰' => 'ນັກເຕັ້ນບາເລ້: ສີຜິວໂທນຂາວປານກາງ',
+    '🧑🏽‍🩰' => 'ນັກເຕັ້ນບາເລ້: ສີຜິວໂທນປານກາງ',
+    '🧑🏾‍🩰' => 'ນັກເຕັ້ນບາເລ້: ສີຜິວໂທນດຳປານກາງ',
+    '🧑🏿‍🩰' => 'ນັກເຕັ້ນບາເລ້: ສີຜິວໂທນດຳ',
     '🧔🏻‍♂' => 'ຜູ້ຊາຍມີໜວດ: ສີຜິວໂທນຂາວ',
     '🧔🏼‍♂' => 'ຜູ້ຊາຍມີໜວດ: ສີຜິວໂທນຂາວປານກາງ',
     '🧔🏽‍♂' => 'ຜູ້ຊາຍມີໜວດ: ສີຜິວໂທນປານກາງ',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'ຜູ້ຍິງກຳລັງຍ່າງ: ສີຜິວໂທນປານກາງ',
     '🚶🏾‍♀' => 'ຜູ້ຍິງກຳລັງຍ່າງ: ສີຜິວໂທນດຳປານກາງ',
     '🚶🏿‍♀' => 'ຜູ້ຍິງກຳລັງຍ່າງ: ສີຜິວໂທນດຳ',
-    '🚶🏻‍➡' => 'ຄົນຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏼‍➡' => 'ຄົນຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏽‍➡' => 'ຄົນຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏾‍➡' => 'ຄົນຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🚶🏿‍➡' => 'ຄົນຍ່າງ ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏻‍➡' => 'ຄົນຍ່າງ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏼‍➡' => 'ຄົນຍ່າງ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏽‍➡' => 'ຄົນຍ່າງ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏾‍➡' => 'ຄົນຍ່າງ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🚶🏿‍➡' => 'ຄົນຍ່າງ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
     '🧍🏻‍♂' => 'ຜູ້​ຊາຍ​ຢືນ: ສີຜິວໂທນຂາວ',
     '🧍🏼‍♂' => 'ຜູ້​ຊາຍ​ຢືນ: ສີຜິວໂທນຂາວປານກາງ',
     '🧍🏽‍♂' => 'ຜູ້​ຊາຍ​ຢືນ: ສີຜິວໂທນປານກາງ',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນປານກາງ',
     '🧎🏾‍♀' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນດຳປານກາງ',
     '🧎🏿‍♀' => 'ຜູ້​ຍິງ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນດຳ',
-    '🧎🏻‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏼‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏽‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏾‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🧎🏿‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏻‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏼‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏽‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏾‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🧎🏿‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
     '🧑🏻‍🦯' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ: ສີຜິວໂທນຂາວ',
     '🧑🏼‍🦯' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ: ສີຜິວໂທນຂາວປານກາງ',
     '🧑🏽‍🦯' => 'ຄົນກັບໄມ້ເທົ້າສີຂາວ: ສີຜິວໂທນປານກາງ',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ຜູ້ຍິງກຳລັງແລ່ນ: ສີຜິວໂທນປານກາງ',
     '🏃🏾‍♀' => 'ຜູ້ຍິງກຳລັງແລ່ນ: ສີຜິວໂທນດຳປານກາງ',
     '🏃🏿‍♀' => 'ຜູ້ຍິງກຳລັງແລ່ນ: ສີຜິວໂທນດຳ',
-    '🏃🏻‍➡' => 'ຄົນແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏼‍➡' => 'ຄົນແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏽‍➡' => 'ຄົນແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏾‍➡' => 'ຄົນແລ່ນ ຫັນໄປເບື້ອງຂວາ',
-    '🏃🏿‍➡' => 'ຄົນແລ່ນ ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏻‍➡' => 'ຄົນແລ່ນ: ສີຜິວໂທນຂາວ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏼‍➡' => 'ຄົນແລ່ນ: ສີຜິວໂທນຂາວປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏽‍➡' => 'ຄົນແລ່ນ: ສີຜິວໂທນປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏾‍➡' => 'ຄົນແລ່ນ: ສີຜິວໂທນດຳປານກາງ, ຫັນໄປເບື້ອງຂວາ',
+    '🏃🏿‍➡' => 'ຄົນແລ່ນ: ສີຜິວໂທນດຳ, ຫັນໄປເບື້ອງຂວາ',
+    '👯🏻‍♀' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນຂາວ',
+    '👯🏼‍♀' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນຂາວປານກາງ',
+    '👯🏽‍♀' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນປານກາງ',
+    '👯🏾‍♀' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນດຳປານກາງ',
+    '👯🏿‍♀' => 'ຜູ້ຍິງກຳລັງປາຕີ້: ສີຜິວໂທນດຳ',
+    '👯🏻‍♂' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນຂາວ',
+    '👯🏼‍♂' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນຂາວປານກາງ',
+    '👯🏽‍♂' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນປານກາງ',
+    '👯🏾‍♂' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນດຳປານກາງ',
+    '👯🏿‍♂' => 'ຜູ້ຊາຍກຳລັງປາຕີ້: ສີຜິວໂທນດຳ',
     '🧖🏻‍♂' => 'ຜູ້ຊາຍໃນຫ້ອງອົບໄອນ້ຳ: ສີຜິວໂທນຂາວ',
     '🧖🏼‍♂' => 'ຜູ້ຊາຍໃນຫ້ອງອົບໄອນ້ຳ: ສີຜິວໂທນຂາວປານກາງ',
     '🧖🏽‍♂' => 'ຜູ້ຊາຍໃນຫ້ອງອົບໄອນ້ຳ: ສີຜິວໂທນປານກາງ',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'ຜູ້ຍິງຕີລັງກາ: ສີຜິວໂທນປານກາງ',
     '🤸🏾‍♀' => 'ຜູ້ຍິງຕີລັງກາ: ສີຜິວໂທນດຳປານກາງ',
     '🤸🏿‍♀' => 'ຜູ້ຍິງຕີລັງກາ: ສີຜິວໂທນດຳ',
+    '🤼🏻‍♀' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວ',
+    '🤼🏼‍♀' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ',
+    '🤼🏽‍♀' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນປານກາງ',
+    '🤼🏾‍♀' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ',
+    '🤼🏿‍♀' => 'ຜູ້ຍິງຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳ',
+    '🤼🏻‍♂' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວ',
+    '🤼🏼‍♂' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ',
+    '🤼🏽‍♂' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນປານກາງ',
+    '🤼🏾‍♂' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ',
+    '🤼🏿‍♂' => 'ຜູ້ຊາຍຫຼິ້ນມວຍປໍ້າ: ສີຜິວໂທນດຳ',
     '🤽🏻‍♂' => 'ຜູ້ຊາຍຫຼິ້ນບານນໍ້າ: ສີຜິວໂທນຂາວ',
     '🤽🏼‍♂' => 'ຜູ້ຊາຍຫຼິ້ນບານນໍ້າ: ສີຜິວໂທນຂາວປານກາງ',
     '🤽🏽‍♂' => 'ຜູ້ຊາຍຫຼິ້ນບານນໍ້າ: ສີຜິວໂທນປານກາງ',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ແມ່ຍິງ: ຜົມກູດ',
     '👩‍🦳' => 'ແມ່ຍິງ: ຜົມຫງອກ',
     '👩‍🦲' => 'ແມ່ຍິງ: ຫົວລ້ານ',
-    '🚶‍➡' => 'ຄົນຍ່າງ ຫັນໄປເບື້ອງຂວາ',
-    '🧎‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ ຫັນໄປເບື້ອງຂວາ',
-    '🏃‍➡' => 'ຄົນແລ່ນ ຫັນໄປເບື້ອງຂວາ',
+    '🚶‍➡' => 'ຄົນຍ່າງ: ຫັນໄປເບື້ອງຂວາ',
+    '🧎‍➡' => '​ຄົນ​ຄຸ​ເຂົ່າ: ຫັນໄປເບື້ອງຂວາ',
+    '🏃‍➡' => 'ຄົນແລ່ນ: ຫັນໄປເບື້ອງຂວາ',
     '👨‍👦' => 'ຄອບຄົວ: ຜູ້ຊາຍ, ເດັກຊາຍ',
     '👨‍👧' => 'ຄອບຄົວ: ຜູ້ຊາຍ, ເດັກຍິງ',
     '👩‍👦' => 'ຄອບຄົວ: ແມ່ຍິງ, ເດັກຊາຍ',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ຜູ້​ຍິງນັ່ງ​ລໍ້​ຍູ້ແບບ​ບັງ​ຄັບ​ເອງ',
     '🏃‍♂' => 'ຜູ້ຊາຍກຳລັງແລ່ນ',
     '🏃‍♀' => 'ຜູ້ຍິງກຳລັງແລ່ນ',
+    '🧑‍🩰' => 'ນັກເຕັ້ນບາເລ້',
     '👯‍♂' => 'ຜູ້ຊາຍກຳລັງປາຕີ້',
     '👯‍♀' => 'ຜູ້ຍິງກຳລັງປາຕີ້',
     '🧖‍♂' => 'ຜູ້ຊາຍໃນຫ້ອງອົບໄອນ້ຳ',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'ຜູ້ຊາຍໃສ່ຊຸດທຸລະກິດລອຍໃນອາກາດ: ສີຜິວໂທນປານກາງ',
     '🕴🏾' => 'ຜູ້ຊາຍໃສ່ຊຸດທຸລະກິດລອຍໃນອາກາດ: ສີຜິວໂທນດຳປານກາງ',
     '🕴🏿' => 'ຜູ້ຊາຍໃສ່ຊຸດທຸລະກິດລອຍໃນອາກາດ: ສີຜິວໂທນດຳ',
+    '👯🏻' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນຂາວ',
+    '👯🏼' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນຂາວປານກາງ',
+    '👯🏽' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນປານກາງ',
+    '👯🏾' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນດຳປານກາງ',
+    '👯🏿' => 'ແມ່ຍິງໃນຊຸດຫູກະຕ່າຍ: ສີຜິວໂທນດຳ',
     '🧖🏻' => 'ຄົນໃນຫ້ອງອົບໄອນ້ຳ: ສີຜິວໂທນຂາວ',
     '🧖🏼' => 'ຄົນໃນຫ້ອງອົບໄອນ້ຳ: ສີຜິວໂທນຂາວປານກາງ',
     '🧖🏽' => 'ຄົນໃນຫ້ອງອົບໄອນ້ຳ: ສີຜິວໂທນປານກາງ',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ຕີລັງກາ: ສີຜິວໂທນປານກາງ',
     '🤸🏾' => 'ຕີລັງກາ: ສີຜິວໂທນດຳປານກາງ',
     '🤸🏿' => 'ຕີລັງກາ: ສີຜິວໂທນດຳ',
+    '🤼🏻' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນຂາວ',
+    '🤼🏼' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນຂາວປານກາງ',
+    '🤼🏽' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນປານກາງ',
+    '🤼🏾' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນດຳປານກາງ',
+    '🤼🏿' => 'ນັກມວຍປໍ້າ: ສີຜິວໂທນດຳ',
     '🤽🏻' => 'ໂປໂລນໍ້າ: ສີຜິວໂທນຂາວ',
     '🤽🏼' => 'ໂປໂລນໍ້າ: ສີຜິວໂທນຂາວປານກາງ',
     '🤽🏽' => 'ໂປໂລນໍ້າ: ສີຜິວໂທນປານກາງ',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'ທຸງ: ຈີນ',
     '🇨🇴' => 'ທຸງ: ໂຄລົມເບຍ',
     '🇨🇵' => 'ທຸງ: ເກາະຄລິບເປີຕັນ',
+    '🇨🇶' => 'ທຸງ: ຊາກຄ໌',
     '🇨🇷' => 'ທຸງ: ໂຄສຕາ ຣິກາ',
     '🇨🇺' => 'ທຸງ: ຄິວບາ',
     '🇨🇻' => 'ທຸງ: ເຄບ ເວີດ',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ສີຜິວໂທນປານກາງ',
     '🏾' => 'ສີຜິວໂທນດຳປານກາງ',
     '🏿' => 'ສີຜິວໂທນດຳ',
-    '🪉' => 'ພິນ',
-    '🪏' => 'ຊວ້ານ',
-    '🪾' => 'ຕົ້ນໄມ້',
-    '🫆' => 'ລາຍນິ້ວມື',
-    '🫜' => 'ຫົວຜັກກາດ',
-    '🫟' => 'ສາດ',
-    '🫩' => 'ໜ້າຕາບວມ',
     '😀' => 'ໜ້າຍິ້ມຍິ່ງແຂ້ວ',
     '😃' => 'ໜ້າຍິ້ມອ້າປາກ',
     '😄' => 'ໜ້າຍິ້ມຕາຍິ້ມ ແລະອ້າປາກ',
@@ -2450,6 +2600,7 @@
     '😪' => 'ໜ້າເງົານອນ',
     '🤤' => 'ໜ້ານໍ້າລາຍໄຫຼ',
     '😴' => 'ໜ້ານອນຫຼັບ',
+    '🫩' => 'ໜ້າຕາບວມ',
     '😷' => 'ໜ້າໃສ່ຜ້າອັດປາກ',
     '🤒' => 'ໜ້າອົມບາຫຼອດ',
     '🤕' => 'ໜ້າມີຜ້າພັນຫົວ',
@@ -2476,6 +2627,7 @@
     '😯' => 'ໜ້າມິດ',
     '😲' => 'ໜ້າຕື່ນຕົກໃຈ',
     '😳' => 'ໜ້າແດງ',
+    '🫪' => 'ໜ້າບ້ຽວ',
     '🥺' => 'ໃບໜ້າອ້ອນວອນ',
     '🥹' => 'ໜ້າກັ້ນນໍ້າຕາ',
     '😦' => 'ໜ້າຫຍຸ້ງອ້າປາກ',
@@ -2547,6 +2699,7 @@
     '💋' => 'ຮອຍຈູບ',
     '💯' => 'ຄະແນນຮ້ອຍ',
     '💢' => 'ສັນຍາລັກໃຈຮ້າຍ',
+    '🫯' => 'ຕີກັນ',
     '💥' => 'ການຕຳ',
     '💫' => 'ວຽນຫົວ',
     '💦' => 'ຢອດເຫື່ອ',
@@ -2670,6 +2823,7 @@
     '🧞' => 'ຈິນີ່',
     '🧟' => 'ຊອມບີ້',
     '🧌' => 'ຄົນເຕ້ຍ',
+    '🫈' => 'ໂຕມີຂົນ',
     '💆' => 'ນວດໜ້າ',
     '💇' => 'ຕັດຜົມ',
     '🚶' => 'ຄົນຍ່າງ',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ຄົນກອດກັນ',
     '👪' => 'ຄອບຄົວ',
     '👣' => 'ຮອຍຕີນ',
+    '🫆' => 'ລາຍນິ້ວມື',
     '🦰' => 'ຜົມແດງ',
     '🦱' => 'ຜົມກູດ',
     '🦳' => 'ຜົມຫງອກ',
@@ -2821,6 +2976,11 @@
     '🐚' => 'ຫອຍ',
     '🪸' => 'ຫີນປະກາລັງ',
     '🪼' => 'ແມງກະພຸນ',
+    '🦀' => 'ກະປູ',
+    '🦞' => 'ກຸ້ງລອບສະເຕີ',
+    '🦐' => 'ກຸ້ງ',
+    '🦑' => 'ປາໝຶກ',
+    '🦪' => 'ຫອຍ​ນາງ​ລົມ',
     '🐌' => 'ຫອຍທາກ',
     '🦋' => 'ແມງກະເບື້ອ',
     '🐛' => 'ແມງໄມ້',
@@ -2865,6 +3025,7 @@
     '🪹' => 'ຮັງເປົ່າ',
     '🪺' => 'ຮັງມີໄຂ່',
     '🍄' => 'ເຫັດ',
+    '🪾' => 'ຕົ້ນໄມ້',
     '🍇' => 'ອາງຸ່ນ',
     '🍈' => 'ໝາກເມລອນ',
     '🍉' => 'ໝາກໂມ',
@@ -2901,6 +3062,7 @@
     '🌰' => 'ໝາກກໍ່',
     '🫚' => 'ຫົວຂີງ',
     '🫛' => 'ຝັກຖົ່ວ',
+    '🫜' => 'ຫົວຜັກກາດ',
     '🍞' => 'ເຂົ້າໜົມປັງ',
     '🥐' => 'ຄຣົວຊອງ',
     '🥖' => 'ເຂົ້າຈີ່',
@@ -2952,11 +3114,6 @@
     '🥟' => 'ກ້ອນໝີ່',
     '🥠' => 'ຄຸກກີ້ໂຊກດີ',
     '🥡' => 'ກ່ອງໃສ່ອາຫານ',
-    '🦀' => 'ກະປູ',
-    '🦞' => 'ກຸ້ງລອບສະເຕີ',
-    '🦐' => 'ກຸ້ງ',
-    '🦑' => 'ປາໝຶກ',
-    '🦪' => 'ຫອຍ​ນາງ​ລົມ',
     '🍦' => 'ກະແລ໋ມນຸ້ມ',
     '🍧' => 'ນໍ້າກ້ອນບົດ',
     '🍨' => 'ກະແລ໋ມ',
@@ -3007,6 +3164,7 @@
     '🧭' => 'ເຂັມທິດ',
     '🏔' => 'ພູເຂົາທີ່ປົກຄຸມດ້ວຍຫິມະ',
     '⛰' => 'ພູ',
+    '🛘' => 'ດິນເຈື່ອນ',
     '🌋' => 'ພູເຂົາໄຟ',
     '🗻' => 'ພູເຂົາໄຟຟູຈິ',
     '🏕' => 'ການຕັ້ງແຄັມ',
@@ -3367,16 +3525,18 @@
     '🎧' => 'ຫູຟັງ',
     '📻' => 'ວິທະຍຸ',
     '🎷' => 'ແຊັກໂຊໂຟນ',
+    '🎺' => 'ແກ',
+    '🪊' => 'ທຣອມໂບນ',
     '🪗' => 'ຫີບເພງ',
     '🎸' => 'ກີຕາ',
     '🎹' => 'ເປຍໂນ',
-    '🎺' => 'ແຕ',
     '🎻' => 'ໄວໂອລິນ',
     '🪕' => 'ແບນ​ໂຈ',
     '🥁' => 'ກອງ',
     '🪘' => 'ກອງຍາວ',
     '🪇' => 'ມາຣາຄັສ',
     '🪈' => 'ຂຸ່ຍ',
+    '🪉' => 'ພິນ',
     '📱' => 'ໂທລະສັບມືຖື',
     '📲' => 'ໂທລະສັບມືຖືກັບລູກສອນ',
     '☎' => 'ໂທລະສັບ',
@@ -3430,9 +3590,10 @@
     '📑' => 'ແຖບຂັ້ນໜ້າເຈ້ຍ',
     '🔖' => 'ແນວຂັ້ນໜ້າເຈ້ຍ',
     '🏷' => 'ປ້າຍກຳກັບ',
-    '💰' => 'ຖົງເງິນ',
     '🪙' => 'ຫຼຽນ',
-    '💴' => 'ໃບເງິນເຢັນ',
+    '💰' => 'ຖົງເງິນ',
+    '🪎' => 'ຫີບສົມບັດ',
+    '💴' => 'ໃບເງິນເຢນ',
     '💵' => 'ໃບເງິນໂດລາ',
     '💶' => 'ໃບເງິນເອີໂຣ',
     '💷' => 'ໃບເງິນປອນ',
@@ -3514,6 +3675,7 @@
     '🧰' => 'ກັບໃສ່ເຄື່ອງອຸປະກອນ',
     '🧲' => 'ພົງກິນເຫຼັກ',
     '🪜' => 'ຂັນໃດ',
+    '🪏' => 'ຊວ້ານ',
     '⚗' => 'ພາຊະນະກັ່ນ',
     '🧪' => 'ຫຼອດທົດລອງ',
     '🧫' => 'ຖ້ວຍບັນຈຸທາດຫ້ອງທົດລອງ',
@@ -3697,6 +3859,7 @@
     '✴' => 'ດາວແປດແຈ',
     '❇' => 'ປະກາຍ',
     '™' => 'ເຄື່ອງໝາຍການຄ້າ',
+    '🫟' => 'ສາດ',
     '🔠' => 'ປຸ່ມປ້ອນອັກສອນຕົວໃຫຍ່',
     '🔡' => 'ປຸ່ມປ້ອນອັກສອນຕົວນ້ອຍ',
     '🔢' => 'ປຸ່ມປ້ອນໝາຍເລກ',
@@ -3712,7 +3875,7 @@
     '🆔' => 'ໝາຍເລກປະຈຳຕົວ',
     'Ⓜ' => 'ໂຕ m ໃນວົງມົນ',
     '🆕' => 'ໃໝ່',
-    '🆖' => 'ng ໃນຮູບສີ່ຫຼ່ຽມ',
+    '🆖' => 'ປຸ່ມ NG',
     '🅾' => 'ເລືອກກຸ່ມໂອ',
     '🆗' => 'ຕົກລົງ',
     '🅿' => 'ບ່ອນຈອດລົດ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lt.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'bučinys: moteris moteris itin tamsios odos rusvos odos',
     '👩🏿‍❤‍💋‍👩🏾' => 'bučinys: moteris moteris itin tamsios odos tamsios odos',
     '👩🏿‍❤‍💋‍👩🏿' => 'bučinys: moteris moteris itin tamsios odos',
+    '🧑🏻‍🫯‍🧑🏼' => 'imtynininkai: šviesios odos vidutinio gymio',
+    '🧑🏻‍🫯‍🧑🏽' => 'imtynininkai: šviesios odos rusvos odos',
+    '🧑🏻‍🫯‍🧑🏾' => 'imtynininkai: šviesios odos tamsios odos',
+    '🧑🏻‍🫯‍🧑🏿' => 'imtynininkai: šviesios odos itin tamsios odos',
+    '🧑🏼‍🫯‍🧑🏻' => 'imtynininkai: vidutinio gymio šviesios odos',
+    '🧑🏼‍🫯‍🧑🏽' => 'imtynininkai: vidutinio gymio rusvos odos',
+    '🧑🏼‍🫯‍🧑🏾' => 'imtynininkai: vidutinio gymio tamsios odos',
+    '🧑🏼‍🫯‍🧑🏿' => 'imtynininkai: vidutinio gymio itin tamsios odos',
+    '🧑🏽‍🫯‍🧑🏻' => 'imtynininkai: rusvos odos šviesios odos',
+    '🧑🏽‍🫯‍🧑🏼' => 'imtynininkai: rusvos odos vidutinio gymio',
+    '🧑🏽‍🫯‍🧑🏾' => 'imtynininkai: rusvos odos tamsios odos',
+    '🧑🏽‍🫯‍🧑🏿' => 'imtynininkai: rusvos odos itin tamsios odos',
+    '🧑🏾‍🫯‍🧑🏻' => 'imtynininkai: tamsios odos šviesios odos',
+    '🧑🏾‍🫯‍🧑🏼' => 'imtynininkai: tamsios odos vidutinio gymio',
+    '🧑🏾‍🫯‍🧑🏽' => 'imtynininkai: tamsios odos rusvos odos',
+    '🧑🏾‍🫯‍🧑🏿' => 'imtynininkai: tamsios odos itin tamsios odos',
+    '🧑🏿‍🫯‍🧑🏻' => 'imtynininkai: itin tamsios odos šviesios odos',
+    '🧑🏿‍🫯‍🧑🏼' => 'imtynininkai: itin tamsios odos vidutinio gymio',
+    '🧑🏿‍🫯‍🧑🏽' => 'imtynininkai: itin tamsios odos rusvos odos',
+    '🧑🏿‍🫯‍🧑🏾' => 'imtynininkai: itin tamsios odos tamsios odos',
     '🧑🏻‍❤‍🧑🏼' => 'pora su širdele: suaugusysis suaugusysis šviesios odos vidutinio gymio',
     '🧑🏻‍❤‍🧑🏽' => 'pora su širdele: suaugusysis suaugusysis šviesios odos rusvos odos',
     '🧑🏻‍❤‍🧑🏾' => 'pora su širdele: suaugusysis suaugusysis šviesios odos tamsios odos',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pora su širdele: suaugusysis suaugusysis itin tamsios odos vidutinio gymio',
     '🧑🏿‍❤‍🧑🏽' => 'pora su širdele: suaugusysis suaugusysis itin tamsios odos rusvos odos',
     '🧑🏿‍❤‍🧑🏾' => 'pora su širdele: suaugusysis suaugusysis itin tamsios odos tamsios odos',
+    '🧑🏻‍🐰‍🧑🏼' => 'besilinksminančios moterys: šviesios odos vidutinio gymio',
+    '🧑🏻‍🐰‍🧑🏽' => 'besilinksminančios moterys: šviesios odos rusvos odos',
+    '🧑🏻‍🐰‍🧑🏾' => 'besilinksminančios moterys: šviesios odos tamsios odos',
+    '🧑🏻‍🐰‍🧑🏿' => 'besilinksminančios moterys: šviesios odos itin tamsios odos',
+    '🧑🏼‍🐰‍🧑🏻' => 'besilinksminančios moterys: vidutinio gymio šviesios odos',
+    '🧑🏼‍🐰‍🧑🏽' => 'besilinksminančios moterys: vidutinio gymio rusvos odos',
+    '🧑🏼‍🐰‍🧑🏾' => 'besilinksminančios moterys: vidutinio gymio tamsios odos',
+    '🧑🏼‍🐰‍🧑🏿' => 'besilinksminančios moterys: vidutinio gymio itin tamsios odos',
+    '🧑🏽‍🐰‍🧑🏻' => 'besilinksminančios moterys: rusvos odos šviesios odos',
+    '🧑🏽‍🐰‍🧑🏼' => 'besilinksminančios moterys: rusvos odos vidutinio gymio',
+    '🧑🏽‍🐰‍🧑🏾' => 'besilinksminančios moterys: rusvos odos tamsios odos',
+    '🧑🏽‍🐰‍🧑🏿' => 'besilinksminančios moterys: rusvos odos itin tamsios odos',
+    '🧑🏾‍🐰‍🧑🏻' => 'besilinksminančios moterys: tamsios odos šviesios odos',
+    '🧑🏾‍🐰‍🧑🏼' => 'besilinksminančios moterys: tamsios odos vidutinio gymio',
+    '🧑🏾‍🐰‍🧑🏽' => 'besilinksminančios moterys: tamsios odos rusvos odos',
+    '🧑🏾‍🐰‍🧑🏿' => 'besilinksminančios moterys: tamsios odos itin tamsios odos',
+    '🧑🏿‍🐰‍🧑🏻' => 'besilinksminančios moterys: itin tamsios odos šviesios odos',
+    '🧑🏿‍🐰‍🧑🏼' => 'besilinksminančios moterys: itin tamsios odos vidutinio gymio',
+    '🧑🏿‍🐰‍🧑🏽' => 'besilinksminančios moterys: itin tamsios odos rusvos odos',
+    '🧑🏿‍🐰‍🧑🏾' => 'besilinksminančios moterys: itin tamsios odos tamsios odos',
+    '👨🏻‍🫯‍👨🏼' => 'vyrų imtynės: šviesios odos vidutinio gymio',
+    '👨🏻‍🫯‍👨🏽' => 'vyrų imtynės: šviesios odos rusvos odos',
+    '👨🏻‍🫯‍👨🏾' => 'vyrų imtynės: šviesios odos tamsios odos',
+    '👨🏻‍🫯‍👨🏿' => 'vyrų imtynės: šviesios odos itin tamsios odos',
+    '👨🏼‍🫯‍👨🏻' => 'vyrų imtynės: vidutinio gymio šviesios odos',
+    '👨🏼‍🫯‍👨🏽' => 'vyrų imtynės: vidutinio gymio rusvos odos',
+    '👨🏼‍🫯‍👨🏾' => 'vyrų imtynės: vidutinio gymio tamsios odos',
+    '👨🏼‍🫯‍👨🏿' => 'vyrų imtynės: vidutinio gymio itin tamsios odos',
+    '👨🏽‍🫯‍👨🏻' => 'vyrų imtynės: rusvos odos šviesios odos',
+    '👨🏽‍🫯‍👨🏼' => 'vyrų imtynės: rusvos odos vidutinio gymio',
+    '👨🏽‍🫯‍👨🏾' => 'vyrų imtynės: rusvos odos tamsios odos',
+    '👨🏽‍🫯‍👨🏿' => 'vyrų imtynės: rusvos odos itin tamsios odos',
+    '👨🏾‍🫯‍👨🏻' => 'vyrų imtynės: tamsios odos šviesios odos',
+    '👨🏾‍🫯‍👨🏼' => 'vyrų imtynės: tamsios odos vidutinio gymio',
+    '👨🏾‍🫯‍👨🏽' => 'vyrų imtynės: tamsios odos rusvos odos',
+    '👨🏾‍🫯‍👨🏿' => 'vyrų imtynės: tamsios odos itin tamsios odos',
+    '👨🏿‍🫯‍👨🏻' => 'vyrų imtynės: itin tamsios odos šviesios odos',
+    '👨🏿‍🫯‍👨🏼' => 'vyrų imtynės: itin tamsios odos vidutinio gymio',
+    '👨🏿‍🫯‍👨🏽' => 'vyrų imtynės: itin tamsios odos rusvos odos',
+    '👨🏿‍🫯‍👨🏾' => 'vyrų imtynės: itin tamsios odos tamsios odos',
     '👨🏻‍❤‍👨🏻' => 'pora su širdele: vyras vyras šviesios odos',
     '👨🏻‍❤‍👨🏼' => 'pora su širdele: vyras vyras šviesios odos vidutinio gymio',
     '👨🏻‍❤‍👨🏽' => 'pora su širdele: vyras vyras šviesios odos rusvos odos',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pora su širdele: vyras vyras itin tamsios odos rusvos odos',
     '👨🏿‍❤‍👨🏾' => 'pora su širdele: vyras vyras itin tamsios odos tamsios odos',
     '👨🏿‍❤‍👨🏿' => 'pora su širdele: vyras vyras itin tamsios odos',
+    '👨🏻‍🐰‍👨🏼' => 'vakarėlyje dalyvaujantys vyrai: šviesios odos vidutinio gymio',
+    '👨🏻‍🐰‍👨🏽' => 'vakarėlyje dalyvaujantys vyrai: šviesios odos rusvos odos',
+    '👨🏻‍🐰‍👨🏾' => 'vakarėlyje dalyvaujantys vyrai: šviesios odos tamsios odos',
+    '👨🏻‍🐰‍👨🏿' => 'vakarėlyje dalyvaujantys vyrai: šviesios odos itin tamsios odos',
+    '👨🏼‍🐰‍👨🏻' => 'vakarėlyje dalyvaujantys vyrai: vidutinio gymio šviesios odos',
+    '👨🏼‍🐰‍👨🏽' => 'vakarėlyje dalyvaujantys vyrai: vidutinio gymio rusvos odos',
+    '👨🏼‍🐰‍👨🏾' => 'vakarėlyje dalyvaujantys vyrai: vidutinio gymio tamsios odos',
+    '👨🏼‍🐰‍👨🏿' => 'vakarėlyje dalyvaujantys vyrai: vidutinio gymio itin tamsios odos',
+    '👨🏽‍🐰‍👨🏻' => 'vakarėlyje dalyvaujantys vyrai: rusvos odos šviesios odos',
+    '👨🏽‍🐰‍👨🏼' => 'vakarėlyje dalyvaujantys vyrai: rusvos odos vidutinio gymio',
+    '👨🏽‍🐰‍👨🏾' => 'vakarėlyje dalyvaujantys vyrai: rusvos odos tamsios odos',
+    '👨🏽‍🐰‍👨🏿' => 'vakarėlyje dalyvaujantys vyrai: rusvos odos itin tamsios odos',
+    '👨🏾‍🐰‍👨🏻' => 'vakarėlyje dalyvaujantys vyrai: tamsios odos šviesios odos',
+    '👨🏾‍🐰‍👨🏼' => 'vakarėlyje dalyvaujantys vyrai: tamsios odos vidutinio gymio',
+    '👨🏾‍🐰‍👨🏽' => 'vakarėlyje dalyvaujantys vyrai: tamsios odos rusvos odos',
+    '👨🏾‍🐰‍👨🏿' => 'vakarėlyje dalyvaujantys vyrai: tamsios odos itin tamsios odos',
+    '👨🏿‍🐰‍👨🏻' => 'vakarėlyje dalyvaujantys vyrai: itin tamsios odos šviesios odos',
+    '👨🏿‍🐰‍👨🏼' => 'vakarėlyje dalyvaujantys vyrai: itin tamsios odos vidutinio gymio',
+    '👨🏿‍🐰‍👨🏽' => 'vakarėlyje dalyvaujantys vyrai: itin tamsios odos rusvos odos',
+    '👨🏿‍🐰‍👨🏾' => 'vakarėlyje dalyvaujantys vyrai: itin tamsios odos tamsios odos',
+    '👩🏻‍🫯‍👩🏼' => 'moterų imtynės: šviesios odos vidutinio gymio',
+    '👩🏻‍🫯‍👩🏽' => 'moterų imtynės: šviesios odos rusvos odos',
+    '👩🏻‍🫯‍👩🏾' => 'moterų imtynės: šviesios odos tamsios odos',
+    '👩🏻‍🫯‍👩🏿' => 'moterų imtynės: šviesios odos itin tamsios odos',
+    '👩🏼‍🫯‍👩🏻' => 'moterų imtynės: vidutinio gymio šviesios odos',
+    '👩🏼‍🫯‍👩🏽' => 'moterų imtynės: vidutinio gymio rusvos odos',
+    '👩🏼‍🫯‍👩🏾' => 'moterų imtynės: vidutinio gymio tamsios odos',
+    '👩🏼‍🫯‍👩🏿' => 'moterų imtynės: vidutinio gymio itin tamsios odos',
+    '👩🏽‍🫯‍👩🏻' => 'moterų imtynės: rusvos odos šviesios odos',
+    '👩🏽‍🫯‍👩🏼' => 'moterų imtynės: rusvos odos vidutinio gymio',
+    '👩🏽‍🫯‍👩🏾' => 'moterų imtynės: rusvos odos tamsios odos',
+    '👩🏽‍🫯‍👩🏿' => 'moterų imtynės: rusvos odos itin tamsios odos',
+    '👩🏾‍🫯‍👩🏻' => 'moterų imtynės: tamsios odos šviesios odos',
+    '👩🏾‍🫯‍👩🏼' => 'moterų imtynės: tamsios odos vidutinio gymio',
+    '👩🏾‍🫯‍👩🏽' => 'moterų imtynės: tamsios odos rusvos odos',
+    '👩🏾‍🫯‍👩🏿' => 'moterų imtynės: tamsios odos itin tamsios odos',
+    '👩🏿‍🫯‍👩🏻' => 'moterų imtynės: itin tamsios odos šviesios odos',
+    '👩🏿‍🫯‍👩🏼' => 'moterų imtynės: itin tamsios odos vidutinio gymio',
+    '👩🏿‍🫯‍👩🏽' => 'moterų imtynės: itin tamsios odos rusvos odos',
+    '👩🏿‍🫯‍👩🏾' => 'moterų imtynės: itin tamsios odos tamsios odos',
     '👩🏻‍❤‍👨🏻' => 'pora su širdele: moteris vyras šviesios odos',
     '👩🏻‍❤‍👨🏼' => 'pora su širdele: moteris vyras šviesios odos vidutinio gymio',
     '👩🏻‍❤‍👨🏽' => 'pora su širdele: moteris vyras šviesios odos rusvos odos',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pora su širdele: moteris moteris itin tamsios odos rusvos odos',
     '👩🏿‍❤‍👩🏾' => 'pora su širdele: moteris moteris itin tamsios odos tamsios odos',
     '👩🏿‍❤‍👩🏿' => 'pora su širdele: moteris moteris itin tamsios odos',
+    '👩🏻‍🐰‍👩🏼' => 'vakarėlyje dalyvaujančios moterys: šviesios odos vidutinio gymio',
+    '👩🏻‍🐰‍👩🏽' => 'vakarėlyje dalyvaujančios moterys: šviesios odos rusvos odos',
+    '👩🏻‍🐰‍👩🏾' => 'vakarėlyje dalyvaujančios moterys: šviesios odos tamsios odos',
+    '👩🏻‍🐰‍👩🏿' => 'vakarėlyje dalyvaujančios moterys: šviesios odos itin tamsios odos',
+    '👩🏼‍🐰‍👩🏻' => 'vakarėlyje dalyvaujančios moterys: vidutinio gymio šviesios odos',
+    '👩🏼‍🐰‍👩🏽' => 'vakarėlyje dalyvaujančios moterys: vidutinio gymio rusvos odos',
+    '👩🏼‍🐰‍👩🏾' => 'vakarėlyje dalyvaujančios moterys: vidutinio gymio tamsios odos',
+    '👩🏼‍🐰‍👩🏿' => 'vakarėlyje dalyvaujančios moterys: vidutinio gymio itin tamsios odos',
+    '👩🏽‍🐰‍👩🏻' => 'vakarėlyje dalyvaujančios moterys: rusvos odos šviesios odos',
+    '👩🏽‍🐰‍👩🏼' => 'vakarėlyje dalyvaujančios moterys: rusvos odos vidutinio gymio',
+    '👩🏽‍🐰‍👩🏾' => 'vakarėlyje dalyvaujančios moterys: rusvos odos tamsios odos',
+    '👩🏽‍🐰‍👩🏿' => 'vakarėlyje dalyvaujančios moterys: rusvos odos itin tamsios odos',
+    '👩🏾‍🐰‍👩🏻' => 'vakarėlyje dalyvaujančios moterys: tamsios odos šviesios odos',
+    '👩🏾‍🐰‍👩🏼' => 'vakarėlyje dalyvaujančios moterys: tamsios odos vidutinio gymio',
+    '👩🏾‍🐰‍👩🏽' => 'vakarėlyje dalyvaujančios moterys: tamsios odos rusvos odos',
+    '👩🏾‍🐰‍👩🏿' => 'vakarėlyje dalyvaujančios moterys: tamsios odos itin tamsios odos',
+    '👩🏿‍🐰‍👩🏻' => 'vakarėlyje dalyvaujančios moterys: itin tamsios odos šviesios odos',
+    '👩🏿‍🐰‍👩🏼' => 'vakarėlyje dalyvaujančios moterys: itin tamsios odos vidutinio gymio',
+    '👩🏿‍🐰‍👩🏽' => 'vakarėlyje dalyvaujančios moterys: itin tamsios odos rusvos odos',
+    '👩🏿‍🐰‍👩🏾' => 'vakarėlyje dalyvaujančios moterys: itin tamsios odos tamsios odos',
     '🧑🏻‍🤝‍🧑🏻' => 'rankomis susikibę žmonės: šviesios odos',
     '🧑🏻‍🤝‍🧑🏼' => 'rankomis susikibę žmonės: šviesios odos vidutinio gymio',
     '🧑🏻‍🤝‍🧑🏽' => 'rankomis susikibę žmonės: šviesios odos rusvos odos',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'vėliava: Škotija',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'vėliava: Velsas',
     '🧑‍🧑‍🧒‍🧒' => 'šeima: suaugusysis, suaugusysis, vaikas, vaikas',
-    '🚶🏻‍♀‍➡' => 'einanti moteris atsisukęs į dešinę',
-    '🚶🏼‍♀‍➡' => 'einanti moteris atsisukęs į dešinę',
-    '🚶🏽‍♀‍➡' => 'einanti moteris atsisukęs į dešinę',
-    '🚶🏾‍♀‍➡' => 'einanti moteris atsisukęs į dešinę',
-    '🚶🏿‍♀‍➡' => 'einanti moteris atsisukęs į dešinę',
-    '🚶🏻‍♂‍➡' => 'einantis vyras atsisukęs į dešinę',
-    '🚶🏼‍♂‍➡' => 'einantis vyras atsisukęs į dešinę',
-    '🚶🏽‍♂‍➡' => 'einantis vyras atsisukęs į dešinę',
-    '🚶🏾‍♂‍➡' => 'einantis vyras atsisukęs į dešinę',
-    '🚶🏿‍♂‍➡' => 'einantis vyras atsisukęs į dešinę',
-    '🧎🏻‍♀‍➡' => 'klūpanti moteris atsisukęs į dešinę',
-    '🧎🏼‍♀‍➡' => 'klūpanti moteris atsisukęs į dešinę',
-    '🧎🏽‍♀‍➡' => 'klūpanti moteris atsisukęs į dešinę',
-    '🧎🏾‍♀‍➡' => 'klūpanti moteris atsisukęs į dešinę',
-    '🧎🏿‍♀‍➡' => 'klūpanti moteris atsisukęs į dešinę',
-    '🧎🏻‍♂‍➡' => 'klūpantis vyras atsisukęs į dešinę',
-    '🧎🏼‍♂‍➡' => 'klūpantis vyras atsisukęs į dešinę',
-    '🧎🏽‍♂‍➡' => 'klūpantis vyras atsisukęs į dešinę',
-    '🧎🏾‍♂‍➡' => 'klūpantis vyras atsisukęs į dešinę',
-    '🧎🏿‍♂‍➡' => 'klūpantis vyras atsisukęs į dešinę',
-    '🧑🏻‍🦯‍➡' => 'žmogus neregio lazdele atsisukęs į dešinę',
-    '🧑🏼‍🦯‍➡' => 'žmogus neregio lazdele atsisukęs į dešinę',
-    '🧑🏽‍🦯‍➡' => 'žmogus neregio lazdele atsisukęs į dešinę',
-    '🧑🏾‍🦯‍➡' => 'žmogus neregio lazdele atsisukęs į dešinę',
-    '🧑🏿‍🦯‍➡' => 'žmogus neregio lazdele atsisukęs į dešinę',
-    '👨🏻‍🦯‍➡' => 'vyras su neregio lazdele atsisukęs į dešinę',
-    '👨🏼‍🦯‍➡' => 'vyras su neregio lazdele atsisukęs į dešinę',
-    '👨🏽‍🦯‍➡' => 'vyras su neregio lazdele atsisukęs į dešinę',
-    '👨🏾‍🦯‍➡' => 'vyras su neregio lazdele atsisukęs į dešinę',
-    '👨🏿‍🦯‍➡' => 'vyras su neregio lazdele atsisukęs į dešinę',
-    '👩🏻‍🦯‍➡' => 'moteris su neregio lazdele atsisukęs į dešinę',
-    '👩🏼‍🦯‍➡' => 'moteris su neregio lazdele atsisukęs į dešinę',
-    '👩🏽‍🦯‍➡' => 'moteris su neregio lazdele atsisukęs į dešinę',
-    '👩🏾‍🦯‍➡' => 'moteris su neregio lazdele atsisukęs į dešinę',
-    '👩🏿‍🦯‍➡' => 'moteris su neregio lazdele atsisukęs į dešinę',
-    '🧑🏻‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje atsisukęs į dešinę',
-    '🧑🏼‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje atsisukęs į dešinę',
-    '🧑🏽‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje atsisukęs į dešinę',
-    '🧑🏾‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje atsisukęs į dešinę',
-    '🧑🏿‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👨🏻‍🦼‍➡' => 'vyras motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👨🏼‍🦼‍➡' => 'vyras motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👨🏽‍🦼‍➡' => 'vyras motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👨🏾‍🦼‍➡' => 'vyras motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👨🏿‍🦼‍➡' => 'vyras motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👩🏻‍🦼‍➡' => 'moteris motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👩🏼‍🦼‍➡' => 'moteris motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👩🏽‍🦼‍➡' => 'moteris motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👩🏾‍🦼‍➡' => 'moteris motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👩🏿‍🦼‍➡' => 'moteris motorizuotame vežimėlyje atsisukęs į dešinę',
-    '🧑🏻‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '🧑🏼‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '🧑🏽‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '🧑🏾‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '🧑🏿‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👨🏻‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👨🏼‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👨🏽‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👨🏾‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👨🏿‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👩🏻‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👩🏼‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👩🏽‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👩🏾‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👩🏿‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '🏃🏻‍♀‍➡' => 'bėganti moteris atsisukęs į dešinę',
-    '🏃🏼‍♀‍➡' => 'bėganti moteris atsisukęs į dešinę',
-    '🏃🏽‍♀‍➡' => 'bėganti moteris atsisukęs į dešinę',
-    '🏃🏾‍♀‍➡' => 'bėganti moteris atsisukęs į dešinę',
-    '🏃🏿‍♀‍➡' => 'bėganti moteris atsisukęs į dešinę',
-    '🏃🏻‍♂‍➡' => 'bėgantis vyras atsisukęs į dešinę',
-    '🏃🏼‍♂‍➡' => 'bėgantis vyras atsisukęs į dešinę',
-    '🏃🏽‍♂‍➡' => 'bėgantis vyras atsisukęs į dešinę',
-    '🏃🏾‍♂‍➡' => 'bėgantis vyras atsisukęs į dešinę',
-    '🏃🏿‍♂‍➡' => 'bėgantis vyras atsisukęs į dešinę',
+    '🚶🏻‍♀‍➡' => 'einanti moteris: šviesios odos atsisukęs į dešinę',
+    '🚶🏼‍♀‍➡' => 'einanti moteris: vidutinio gymio atsisukęs į dešinę',
+    '🚶🏽‍♀‍➡' => 'einanti moteris: rusvos odos atsisukęs į dešinę',
+    '🚶🏾‍♀‍➡' => 'einanti moteris: tamsios odos atsisukęs į dešinę',
+    '🚶🏿‍♀‍➡' => 'einanti moteris: itin tamsios odos atsisukęs į dešinę',
+    '🚶🏻‍♂‍➡' => 'einantis vyras: šviesios odos atsisukęs į dešinę',
+    '🚶🏼‍♂‍➡' => 'einantis vyras: vidutinio gymio atsisukęs į dešinę',
+    '🚶🏽‍♂‍➡' => 'einantis vyras: rusvos odos atsisukęs į dešinę',
+    '🚶🏾‍♂‍➡' => 'einantis vyras: tamsios odos atsisukęs į dešinę',
+    '🚶🏿‍♂‍➡' => 'einantis vyras: itin tamsios odos atsisukęs į dešinę',
+    '🧎🏻‍♀‍➡' => 'klūpanti moteris: šviesios odos atsisukęs į dešinę',
+    '🧎🏼‍♀‍➡' => 'klūpanti moteris: vidutinio gymio atsisukęs į dešinę',
+    '🧎🏽‍♀‍➡' => 'klūpanti moteris: rusvos odos atsisukęs į dešinę',
+    '🧎🏾‍♀‍➡' => 'klūpanti moteris: tamsios odos atsisukęs į dešinę',
+    '🧎🏿‍♀‍➡' => 'klūpanti moteris: itin tamsios odos atsisukęs į dešinę',
+    '🧎🏻‍♂‍➡' => 'klūpantis vyras: šviesios odos atsisukęs į dešinę',
+    '🧎🏼‍♂‍➡' => 'klūpantis vyras: vidutinio gymio atsisukęs į dešinę',
+    '🧎🏽‍♂‍➡' => 'klūpantis vyras: rusvos odos atsisukęs į dešinę',
+    '🧎🏾‍♂‍➡' => 'klūpantis vyras: tamsios odos atsisukęs į dešinę',
+    '🧎🏿‍♂‍➡' => 'klūpantis vyras: itin tamsios odos atsisukęs į dešinę',
+    '🧑🏻‍🦯‍➡' => 'žmogus neregio lazdele: šviesios odos atsisukęs į dešinę',
+    '🧑🏼‍🦯‍➡' => 'žmogus neregio lazdele: vidutinio gymio atsisukęs į dešinę',
+    '🧑🏽‍🦯‍➡' => 'žmogus neregio lazdele: rusvos odos atsisukęs į dešinę',
+    '🧑🏾‍🦯‍➡' => 'žmogus neregio lazdele: tamsios odos atsisukęs į dešinę',
+    '🧑🏿‍🦯‍➡' => 'žmogus neregio lazdele: itin tamsios odos atsisukęs į dešinę',
+    '👨🏻‍🦯‍➡' => 'vyras su neregio lazdele: šviesios odos atsisukęs į dešinę',
+    '👨🏼‍🦯‍➡' => 'vyras su neregio lazdele: vidutinio gymio atsisukęs į dešinę',
+    '👨🏽‍🦯‍➡' => 'vyras su neregio lazdele: rusvos odos atsisukęs į dešinę',
+    '👨🏾‍🦯‍➡' => 'vyras su neregio lazdele: tamsios odos atsisukęs į dešinę',
+    '👨🏿‍🦯‍➡' => 'vyras su neregio lazdele: itin tamsios odos atsisukęs į dešinę',
+    '👩🏻‍🦯‍➡' => 'moteris su neregio lazdele: šviesios odos atsisukęs į dešinę',
+    '👩🏼‍🦯‍➡' => 'moteris su neregio lazdele: vidutinio gymio atsisukęs į dešinę',
+    '👩🏽‍🦯‍➡' => 'moteris su neregio lazdele: rusvos odos atsisukęs į dešinę',
+    '👩🏾‍🦯‍➡' => 'moteris su neregio lazdele: tamsios odos atsisukęs į dešinę',
+    '👩🏿‍🦯‍➡' => 'moteris su neregio lazdele: itin tamsios odos atsisukęs į dešinę',
+    '🧑🏻‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje: šviesios odos atsisukęs į dešinę',
+    '🧑🏼‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje: vidutinio gymio atsisukęs į dešinę',
+    '🧑🏽‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje: rusvos odos atsisukęs į dešinę',
+    '🧑🏾‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje: tamsios odos atsisukęs į dešinę',
+    '🧑🏿‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje: itin tamsios odos atsisukęs į dešinę',
+    '👨🏻‍🦼‍➡' => 'vyras motorizuotame vežimėlyje: šviesios odos atsisukęs į dešinę',
+    '👨🏼‍🦼‍➡' => 'vyras motorizuotame vežimėlyje: vidutinio gymio atsisukęs į dešinę',
+    '👨🏽‍🦼‍➡' => 'vyras motorizuotame vežimėlyje: rusvos odos atsisukęs į dešinę',
+    '👨🏾‍🦼‍➡' => 'vyras motorizuotame vežimėlyje: tamsios odos atsisukęs į dešinę',
+    '👨🏿‍🦼‍➡' => 'vyras motorizuotame vežimėlyje: itin tamsios odos atsisukęs į dešinę',
+    '👩🏻‍🦼‍➡' => 'moteris motorizuotame vežimėlyje: šviesios odos atsisukęs į dešinę',
+    '👩🏼‍🦼‍➡' => 'moteris motorizuotame vežimėlyje: vidutinio gymio atsisukęs į dešinę',
+    '👩🏽‍🦼‍➡' => 'moteris motorizuotame vežimėlyje: rusvos odos atsisukęs į dešinę',
+    '👩🏾‍🦼‍➡' => 'moteris motorizuotame vežimėlyje: tamsios odos atsisukęs į dešinę',
+    '👩🏿‍🦼‍➡' => 'moteris motorizuotame vežimėlyje: itin tamsios odos atsisukęs į dešinę',
+    '🧑🏻‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje: šviesios odos atsisukęs į dešinę',
+    '🧑🏼‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje: vidutinio gymio atsisukęs į dešinę',
+    '🧑🏽‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje: rusvos odos atsisukęs į dešinę',
+    '🧑🏾‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje: tamsios odos atsisukęs į dešinę',
+    '🧑🏿‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje: itin tamsios odos atsisukęs į dešinę',
+    '👨🏻‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje: šviesios odos atsisukęs į dešinę',
+    '👨🏼‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje: vidutinio gymio atsisukęs į dešinę',
+    '👨🏽‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje: rusvos odos atsisukęs į dešinę',
+    '👨🏾‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje: tamsios odos atsisukęs į dešinę',
+    '👨🏿‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje: itin tamsios odos atsisukęs į dešinę',
+    '👩🏻‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje: šviesios odos atsisukęs į dešinę',
+    '👩🏼‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje: vidutinio gymio atsisukęs į dešinę',
+    '👩🏽‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje: rusvos odos atsisukęs į dešinę',
+    '👩🏾‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje: tamsios odos atsisukęs į dešinę',
+    '👩🏿‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje: itin tamsios odos atsisukęs į dešinę',
+    '🏃🏻‍♀‍➡' => 'bėganti moteris: šviesios odos atsisukęs į dešinę',
+    '🏃🏼‍♀‍➡' => 'bėganti moteris: vidutinio gymio atsisukęs į dešinę',
+    '🏃🏽‍♀‍➡' => 'bėganti moteris: rusvos odos atsisukęs į dešinę',
+    '🏃🏾‍♀‍➡' => 'bėganti moteris: tamsios odos atsisukęs į dešinę',
+    '🏃🏿‍♀‍➡' => 'bėganti moteris: itin tamsios odos atsisukęs į dešinę',
+    '🏃🏻‍♂‍➡' => 'bėgantis vyras: šviesios odos atsisukęs į dešinę',
+    '🏃🏼‍♂‍➡' => 'bėgantis vyras: vidutinio gymio atsisukęs į dešinę',
+    '🏃🏽‍♂‍➡' => 'bėgantis vyras: rusvos odos atsisukęs į dešinę',
+    '🏃🏾‍♂‍➡' => 'bėgantis vyras: tamsios odos atsisukęs į dešinę',
+    '🏃🏿‍♂‍➡' => 'bėgantis vyras: itin tamsios odos atsisukęs į dešinę',
     '🫱🏻‍🫲🏼' => 'rankos paspaudimas: šviesios odos vidutinio gymio',
     '🫱🏻‍🫲🏽' => 'rankos paspaudimas: šviesios odos rusvos odos',
     '🫱🏻‍🫲🏾' => 'rankos paspaudimas: šviesios odos tamsios odos',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'rankos paspaudimas: itin tamsios odos vidutinio gymio',
     '🫱🏿‍🫲🏽' => 'rankos paspaudimas: itin tamsios odos rusvos odos',
     '🫱🏿‍🫲🏾' => 'rankos paspaudimas: itin tamsios odos tamsios odos',
-    '🚶‍♀‍➡' => 'einanti moteris atsisukęs į dešinę',
-    '🚶‍♂‍➡' => 'einantis vyras atsisukęs į dešinę',
-    '🧎‍♀‍➡' => 'klūpanti moteris atsisukęs į dešinę',
-    '🧎‍♂‍➡' => 'klūpantis vyras atsisukęs į dešinę',
-    '🧑‍🦯‍➡' => 'žmogus neregio lazdele atsisukęs į dešinę',
-    '👨‍🦯‍➡' => 'vyras su neregio lazdele atsisukęs į dešinę',
-    '👩‍🦯‍➡' => 'moteris su neregio lazdele atsisukęs į dešinę',
-    '🧑‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👨‍🦼‍➡' => 'vyras motorizuotame vežimėlyje atsisukęs į dešinę',
-    '👩‍🦼‍➡' => 'moteris motorizuotame vežimėlyje atsisukęs į dešinę',
-    '🧑‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👨‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '👩‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje atsisukęs į dešinę',
-    '🏃‍♀‍➡' => 'bėganti moteris atsisukęs į dešinę',
-    '🏃‍♂‍➡' => 'bėgantis vyras atsisukęs į dešinę',
+    '🚶‍♀‍➡' => 'einanti moteris: atsisukęs į dešinę',
+    '🚶‍♂‍➡' => 'einantis vyras: atsisukęs į dešinę',
+    '🧎‍♀‍➡' => 'klūpanti moteris: atsisukęs į dešinę',
+    '🧎‍♂‍➡' => 'klūpantis vyras: atsisukęs į dešinę',
+    '🧑‍🦯‍➡' => 'žmogus neregio lazdele: atsisukęs į dešinę',
+    '👨‍🦯‍➡' => 'vyras su neregio lazdele: atsisukęs į dešinę',
+    '👩‍🦯‍➡' => 'moteris su neregio lazdele: atsisukęs į dešinę',
+    '🧑‍🦼‍➡' => 'žmogus motorizuotame vežimėlyje: atsisukęs į dešinę',
+    '👨‍🦼‍➡' => 'vyras motorizuotame vežimėlyje: atsisukęs į dešinę',
+    '👩‍🦼‍➡' => 'moteris motorizuotame vežimėlyje: atsisukęs į dešinę',
+    '🧑‍🦽‍➡' => 'žmogus rankomis valdomame vežimėlyje: atsisukęs į dešinę',
+    '👨‍🦽‍➡' => 'vyras rankomis valdomame vežimėlyje: atsisukęs į dešinę',
+    '👩‍🦽‍➡' => 'moteris rankomis valdomame vežimėlyje: atsisukęs į dešinę',
+    '🏃‍♀‍➡' => 'bėganti moteris: atsisukęs į dešinę',
+    '🏃‍♂‍➡' => 'bėgantis vyras: atsisukęs į dešinę',
     '👩‍❤‍👨' => 'pora su širdele: moteris vyras',
     '👨‍❤‍👨' => 'pora su širdele: vyras vyras',
     '👩‍❤‍👩' => 'pora su širdele: moteris moteris',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'suaugusysis: rusvos odos plikas',
     '🧑🏾‍🦲' => 'suaugusysis: tamsios odos plikas',
     '🧑🏿‍🦲' => 'suaugusysis: itin tamsios odos plikas',
+    '🧑🏻‍🩰' => 'baleto šokėjas: šviesios odos',
+    '🧑🏼‍🩰' => 'baleto šokėjas: vidutinio gymio',
+    '🧑🏽‍🩰' => 'baleto šokėjas: rusvos odos',
+    '🧑🏾‍🩰' => 'baleto šokėjas: tamsios odos',
+    '🧑🏿‍🩰' => 'baleto šokėjas: itin tamsios odos',
     '🧔🏻‍♂' => 'vyras: šviesios odos barzda',
     '🧔🏼‍♂' => 'vyras: vidutinio gymio barzda',
     '🧔🏽‍♂' => 'vyras: rusvos odos barzda',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'einanti moteris: rusvos odos',
     '🚶🏾‍♀' => 'einanti moteris: tamsios odos',
     '🚶🏿‍♀' => 'einanti moteris: itin tamsios odos',
-    '🚶🏻‍➡' => 'pėstysis atsisukęs į dešinę',
-    '🚶🏼‍➡' => 'pėstysis atsisukęs į dešinę',
-    '🚶🏽‍➡' => 'pėstysis atsisukęs į dešinę',
-    '🚶🏾‍➡' => 'pėstysis atsisukęs į dešinę',
-    '🚶🏿‍➡' => 'pėstysis atsisukęs į dešinę',
+    '🚶🏻‍➡' => 'pėstysis: šviesios odos atsisukęs į dešinę',
+    '🚶🏼‍➡' => 'pėstysis: vidutinio gymio atsisukęs į dešinę',
+    '🚶🏽‍➡' => 'pėstysis: rusvos odos atsisukęs į dešinę',
+    '🚶🏾‍➡' => 'pėstysis: tamsios odos atsisukęs į dešinę',
+    '🚶🏿‍➡' => 'pėstysis: itin tamsios odos atsisukęs į dešinę',
     '🧍🏻‍♂' => 'stovintis vyras: šviesios odos',
     '🧍🏼‍♂' => 'stovintis vyras: vidutinio gymio',
     '🧍🏽‍♂' => 'stovintis vyras: rusvos odos',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'klūpanti moteris: rusvos odos',
     '🧎🏾‍♀' => 'klūpanti moteris: tamsios odos',
     '🧎🏿‍♀' => 'klūpanti moteris: itin tamsios odos',
-    '🧎🏻‍➡' => 'klūpantis žmogus atsisukęs į dešinę',
-    '🧎🏼‍➡' => 'klūpantis žmogus atsisukęs į dešinę',
-    '🧎🏽‍➡' => 'klūpantis žmogus atsisukęs į dešinę',
-    '🧎🏾‍➡' => 'klūpantis žmogus atsisukęs į dešinę',
-    '🧎🏿‍➡' => 'klūpantis žmogus atsisukęs į dešinę',
+    '🧎🏻‍➡' => 'klūpantis žmogus: šviesios odos atsisukęs į dešinę',
+    '🧎🏼‍➡' => 'klūpantis žmogus: vidutinio gymio atsisukęs į dešinę',
+    '🧎🏽‍➡' => 'klūpantis žmogus: rusvos odos atsisukęs į dešinę',
+    '🧎🏾‍➡' => 'klūpantis žmogus: tamsios odos atsisukęs į dešinę',
+    '🧎🏿‍➡' => 'klūpantis žmogus: itin tamsios odos atsisukęs į dešinę',
     '🧑🏻‍🦯' => 'žmogus neregio lazdele: šviesios odos',
     '🧑🏼‍🦯' => 'žmogus neregio lazdele: vidutinio gymio',
     '🧑🏽‍🦯' => 'žmogus neregio lazdele: rusvos odos',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'bėganti moteris: rusvos odos',
     '🏃🏾‍♀' => 'bėganti moteris: tamsios odos',
     '🏃🏿‍♀' => 'bėganti moteris: itin tamsios odos',
-    '🏃🏻‍➡' => 'bėgikas atsisukęs į dešinę',
-    '🏃🏼‍➡' => 'bėgikas atsisukęs į dešinę',
-    '🏃🏽‍➡' => 'bėgikas atsisukęs į dešinę',
-    '🏃🏾‍➡' => 'bėgikas atsisukęs į dešinę',
-    '🏃🏿‍➡' => 'bėgikas atsisukęs į dešinę',
+    '🏃🏻‍➡' => 'bėgikas: šviesios odos atsisukęs į dešinę',
+    '🏃🏼‍➡' => 'bėgikas: vidutinio gymio atsisukęs į dešinę',
+    '🏃🏽‍➡' => 'bėgikas: rusvos odos atsisukęs į dešinę',
+    '🏃🏾‍➡' => 'bėgikas: tamsios odos atsisukęs į dešinę',
+    '🏃🏿‍➡' => 'bėgikas: itin tamsios odos atsisukęs į dešinę',
+    '👯🏻‍♀' => 'vakarėlyje dalyvaujančios moterys: šviesios odos',
+    '👯🏼‍♀' => 'vakarėlyje dalyvaujančios moterys: vidutinio gymio',
+    '👯🏽‍♀' => 'vakarėlyje dalyvaujančios moterys: rusvos odos',
+    '👯🏾‍♀' => 'vakarėlyje dalyvaujančios moterys: tamsios odos',
+    '👯🏿‍♀' => 'vakarėlyje dalyvaujančios moterys: itin tamsios odos',
+    '👯🏻‍♂' => 'vakarėlyje dalyvaujantys vyrai: šviesios odos',
+    '👯🏼‍♂' => 'vakarėlyje dalyvaujantys vyrai: vidutinio gymio',
+    '👯🏽‍♂' => 'vakarėlyje dalyvaujantys vyrai: rusvos odos',
+    '👯🏾‍♂' => 'vakarėlyje dalyvaujantys vyrai: tamsios odos',
+    '👯🏿‍♂' => 'vakarėlyje dalyvaujantys vyrai: itin tamsios odos',
     '🧖🏻‍♂' => 'vyras garų kambaryje: šviesios odos',
     '🧖🏼‍♂' => 'vyras garų kambaryje: vidutinio gymio',
     '🧖🏽‍♂' => 'vyras garų kambaryje: rusvos odos',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'moteris daro suktuką: rusvos odos',
     '🤸🏾‍♀' => 'moteris daro suktuką: tamsios odos',
     '🤸🏿‍♀' => 'moteris daro suktuką: itin tamsios odos',
+    '🤼🏻‍♀' => 'moterų imtynės: šviesios odos',
+    '🤼🏼‍♀' => 'moterų imtynės: vidutinio gymio',
+    '🤼🏽‍♀' => 'moterų imtynės: rusvos odos',
+    '🤼🏾‍♀' => 'moterų imtynės: tamsios odos',
+    '🤼🏿‍♀' => 'moterų imtynės: itin tamsios odos',
+    '🤼🏻‍♂' => 'vyrų imtynės: šviesios odos',
+    '🤼🏼‍♂' => 'vyrų imtynės: vidutinio gymio',
+    '🤼🏽‍♂' => 'vyrų imtynės: rusvos odos',
+    '🤼🏾‍♂' => 'vyrų imtynės: tamsios odos',
+    '🤼🏿‍♂' => 'vyrų imtynės: itin tamsios odos',
     '🤽🏻‍♂' => 'vandensvydžio žaidėjas: šviesios odos',
     '🤽🏼‍♂' => 'vandensvydžio žaidėjas: vidutinio gymio',
     '🤽🏽‍♂' => 'vandensvydžio žaidėjas: rusvos odos',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'moteris: garbanoti plaukai',
     '👩‍🦳' => 'moteris: žili plaukai',
     '👩‍🦲' => 'moteris: plikas',
-    '🚶‍➡' => 'pėstysis atsisukęs į dešinę',
-    '🧎‍➡' => 'klūpantis žmogus atsisukęs į dešinę',
-    '🏃‍➡' => 'bėgikas atsisukęs į dešinę',
+    '🚶‍➡' => 'pėstysis: atsisukęs į dešinę',
+    '🧎‍➡' => 'klūpantis žmogus: atsisukęs į dešinę',
+    '🏃‍➡' => 'bėgikas: atsisukęs į dešinę',
     '👨‍👦' => 'šeima: vyras berniukas',
     '👨‍👧' => 'šeima: vyras mergaitė',
     '👩‍👦' => 'šeima: moteris berniukas',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'moteris rankomis valdomame vežimėlyje',
     '🏃‍♂' => 'bėgantis vyras',
     '🏃‍♀' => 'bėganti moteris',
+    '🧑‍🩰' => 'baleto šokėjas',
     '👯‍♂' => 'vakarėlyje dalyvaujantys vyrai',
     '👯‍♀' => 'vakarėlyje dalyvaujančios moterys',
     '🧖‍♂' => 'vyras garų kambaryje',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'į orą kylantis vyras su kostiumu: rusvos odos',
     '🕴🏾' => 'į orą kylantis vyras su kostiumu: tamsios odos',
     '🕴🏿' => 'į orą kylantis vyras su kostiumu: itin tamsios odos',
+    '👯🏻' => 'besilinksminančios moterys: šviesios odos',
+    '👯🏼' => 'besilinksminančios moterys: vidutinio gymio',
+    '👯🏽' => 'besilinksminančios moterys: rusvos odos',
+    '👯🏾' => 'besilinksminančios moterys: tamsios odos',
+    '👯🏿' => 'besilinksminančios moterys: itin tamsios odos',
     '🧖🏻' => 'asmuo garų kambaryje: šviesios odos',
     '🧖🏼' => 'asmuo garų kambaryje: vidutinio gymio',
     '🧖🏽' => 'asmuo garų kambaryje: rusvos odos',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persivertimas šonu: rusvos odos',
     '🤸🏾' => 'persivertimas šonu: tamsios odos',
     '🤸🏿' => 'persivertimas šonu: itin tamsios odos',
+    '🤼🏻' => 'imtynininkai: šviesios odos',
+    '🤼🏼' => 'imtynininkai: vidutinio gymio',
+    '🤼🏽' => 'imtynininkai: rusvos odos',
+    '🤼🏾' => 'imtynininkai: tamsios odos',
+    '🤼🏿' => 'imtynininkai: itin tamsios odos',
     '🤽🏻' => 'vandensvydis: šviesios odos',
     '🤽🏼' => 'vandensvydis: vidutinio gymio',
     '🤽🏽' => 'vandensvydis: rusvos odos',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'vėliava: Kinija',
     '🇨🇴' => 'vėliava: Kolumbija',
     '🇨🇵' => 'vėliava: Klipertono sala',
+    '🇨🇶' => 'vėliava: Sarkas',
     '🇨🇷' => 'vėliava: Kosta Rika',
     '🇨🇺' => 'vėliava: Kuba',
     '🇨🇻' => 'vėliava: Žaliasis Kyšulys',
@@ -2202,7 +2359,7 @@
     '🇪🇺' => 'vėliava: Europos Sąjunga',
     '🇫🇮' => 'vėliava: Suomija',
     '🇫🇯' => 'vėliava: Fidžis',
-    '🇫🇰' => 'vėliava: Folklando Salos',
+    '🇫🇰' => 'vėliava: Folklando salos',
     '🇫🇲' => 'vėliava: Mikronezija',
     '🇫🇴' => 'vėliava: Farerų Salos',
     '🇫🇷' => 'vėliava: Prancūzija',
@@ -2390,13 +2547,6 @@
     '🏽' => 'rusvos odos',
     '🏾' => 'tamsios odos',
     '🏿' => 'itin tamsios odos',
-    '🪉' => 'arfa',
-    '🪏' => 'kastuvas',
-    '🪾' => 'medis be lapų',
-    '🫆' => 'piršto atspaudas',
-    '🫜' => 'šakninė daržovė',
-    '🫟' => 'tiškalas',
-    '🫩' => 'veidas su maišeliais po akimis',
     '😀' => 'išsišiepęs veidas',
     '😃' => 'besišypsantis išsižiojęs veidas',
     '😄' => 'besišypsantis išsižiojęs veidas besišypsančiomis akimis',
@@ -2450,6 +2600,7 @@
     '😪' => 'mieguistas veidas',
     '🤤' => 'besiseilėjantis veidas',
     '😴' => 'miegantis veidas',
+    '🫩' => 'veidas su maišeliais po akimis',
     '😷' => 'veidas su medicinine kauke',
     '🤒' => 'veidas su termometru',
     '🤕' => 'veidas su galvos tvarsčiu',
@@ -2476,6 +2627,7 @@
     '😯' => 'nuščiuvęs veidas',
     '😲' => 'apstulbęs veidas',
     '😳' => 'nuraudęs veidas',
+    '🫪' => 'ištįsęs veidas',
     '🥺' => 'maldaujantis veidas',
     '🥹' => 'ašaras tramdantis veidas',
     '😦' => 'paniuręs išsižiojęs veidas',
@@ -2547,6 +2699,7 @@
     '💋' => 'bučinio žymė',
     '💯' => 'šimtas taškų',
     '💢' => 'pykčio simbolis',
+    '🫯' => 'kovos debesis',
     '💥' => 'susidūrimas',
     '💫' => 'apsvaigęs',
     '💦' => 'prakaito lašeliai',
@@ -2670,6 +2823,7 @@
     '🧞' => 'dvasia',
     '🧟' => 'zombis',
     '🧌' => 'trolis',
+    '🫈' => 'plaukuotas padaras',
     '💆' => 'veido masažas',
     '💇' => 'apkerpamas žmogus',
     '🚶' => 'pėstysis',
@@ -2713,6 +2867,7 @@
     '🫂' => 'apsikabinę žmonės',
     '👪' => 'šeima',
     '👣' => 'pėdsakai',
+    '🫆' => 'piršto atspaudas',
     '🦰' => 'raudoni plaukai',
     '🦱' => 'garbanoti plaukai',
     '🦳' => 'žili plaukai',
@@ -2812,6 +2967,7 @@
     '🐳' => 'purškiantis banginis',
     '🐋' => 'banginis',
     '🐬' => 'delfinas',
+    '🫍' => 'orka',
     '🦭' => 'ruonis',
     '🐟' => 'žuvis',
     '🐠' => 'tropinė žuvis',
@@ -2821,6 +2977,11 @@
     '🐚' => 'susisukusi kriauklė',
     '🪸' => 'koralas',
     '🪼' => 'medūza',
+    '🦀' => 'krabas',
+    '🦞' => 'omaras',
+    '🦐' => 'krevetė',
+    '🦑' => 'kalmaras',
+    '🦪' => 'austrė',
     '🐌' => 'sraigė',
     '🦋' => 'drugelis',
     '🐛' => 'vabalas',
@@ -2865,6 +3026,7 @@
     '🪹' => 'tuščias lizdas',
     '🪺' => 'lizdas su kiaušiniais',
     '🍄' => 'grybas',
+    '🪾' => 'medis be lapų',
     '🍇' => 'vynuogės',
     '🍈' => 'melionas',
     '🍉' => 'arbūzas',
@@ -2901,6 +3063,7 @@
     '🌰' => 'lazdyno riešutas',
     '🫚' => 'imbiero šaknis',
     '🫛' => 'žirnių ankštis',
+    '🫜' => 'šakninė daržovė',
     '🍞' => 'duona',
     '🥐' => 'raguolis',
     '🥖' => 'ilgas batonas',
@@ -2952,11 +3115,6 @@
     '🥟' => 'kukulis',
     '🥠' => 'laimės sausainiukas',
     '🥡' => 'dėžutė išsinešti',
-    '🦀' => 'krabas',
-    '🦞' => 'omaras',
-    '🦐' => 'krevetė',
-    '🦑' => 'kalmaras',
-    '🦪' => 'austrė',
     '🍦' => 'minkšti ledai',
     '🍧' => 'susmulkintas ledas',
     '🍨' => 'ledai',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompasas',
     '🏔' => 'kalnas su snieguota viršūne',
     '⛰' => 'kalnas',
+    '🛘' => 'nuošliauža',
     '🌋' => 'ugnikalnis',
     '🗻' => 'Fudžio kalnas',
     '🏕' => 'stovyklavimas',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ausinės',
     '📻' => 'radijas',
     '🎷' => 'saksofonas',
+    '🎺' => 'trimitas',
+    '🪊' => 'trombonas',
     '🪗' => 'akordeonas',
     '🎸' => 'gitara',
     '🎹' => 'muzikos klaviatūra',
-    '🎺' => 'trimitas',
     '🎻' => 'smuikas',
     '🪕' => 'bandža',
     '🥁' => 'būgnas',
     '🪘' => 'ilgas būgnas',
     '🪇' => 'marakasai',
     '🪈' => 'fleita',
+    '🪉' => 'arfa',
     '📱' => 'mobilusis telefonas',
     '📲' => 'mobilusis telefonas su rodykle',
     '☎' => 'telefonas',
@@ -3430,8 +3591,9 @@
     '📑' => 'žymių skirtukai',
     '🔖' => 'žymė',
     '🏷' => 'etiketė',
-    '💰' => 'pinigų maišas',
     '🪙' => 'moneta',
+    '💰' => 'pinigų maišas',
+    '🪎' => 'lobių skrynia',
     '💴' => 'jenos banknotas',
     '💵' => 'dolerio banknotas',
     '💶' => 'euro banknotas',
@@ -3514,6 +3676,7 @@
     '🧰' => 'įrankių rinkinys',
     '🧲' => 'magnetas',
     '🪜' => 'kopėčios',
+    '🪏' => 'kastuvas',
     '⚗' => 'distiliavimo indas',
     '🧪' => 'mėgintuvėlis',
     '🧫' => 'petri lėkštelė',
@@ -3697,6 +3860,7 @@
     '✴' => 'aštuoniakampė žvaigždė',
     '❇' => 'kibirkštėlė',
     '™' => 'prekės ženklas',
+    '🫟' => 'tiškalas',
     '🔠' => 'įvestis didžiosios lotyniškos raidės',
     '🔡' => 'įvestis mažosios lotyniškos raidės',
     '🔢' => 'įvesties skaičiai',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-lv.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'skūpsts: sieviete, sieviete, tumšs ādas tonis un vidējs ādas tonis',
     '👩🏿‍❤‍💋‍👩🏾' => 'skūpsts: sieviete, sieviete, tumšs ādas tonis un vidēji tumšs ādas tonis',
     '👩🏿‍❤‍💋‍👩🏿' => 'skūpsts: sieviete, sieviete un tumšs ādas tonis',
+    '🧑🏻‍🫯‍🧑🏼' => 'cīkstoņi: gaišs ādas tonis un vidēji gaišs ādas tonis',
+    '🧑🏻‍🫯‍🧑🏽' => 'cīkstoņi: gaišs ādas tonis un vidējs ādas tonis',
+    '🧑🏻‍🫯‍🧑🏾' => 'cīkstoņi: gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '🧑🏻‍🫯‍🧑🏿' => 'cīkstoņi: gaišs ādas tonis un tumšs ādas tonis',
+    '🧑🏼‍🫯‍🧑🏻' => 'cīkstoņi: vidēji gaišs ādas tonis un gaišs ādas tonis',
+    '🧑🏼‍🫯‍🧑🏽' => 'cīkstoņi: vidēji gaišs ādas tonis un vidējs ādas tonis',
+    '🧑🏼‍🫯‍🧑🏾' => 'cīkstoņi: vidēji gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '🧑🏼‍🫯‍🧑🏿' => 'cīkstoņi: vidēji gaišs ādas tonis un tumšs ādas tonis',
+    '🧑🏽‍🫯‍🧑🏻' => 'cīkstoņi: vidējs ādas tonis un gaišs ādas tonis',
+    '🧑🏽‍🫯‍🧑🏼' => 'cīkstoņi: vidējs ādas tonis un vidēji gaišs ādas tonis',
+    '🧑🏽‍🫯‍🧑🏾' => 'cīkstoņi: vidējs ādas tonis un vidēji tumšs ādas tonis',
+    '🧑🏽‍🫯‍🧑🏿' => 'cīkstoņi: vidējs ādas tonis un tumšs ādas tonis',
+    '🧑🏾‍🫯‍🧑🏻' => 'cīkstoņi: vidēji tumšs ādas tonis un gaišs ādas tonis',
+    '🧑🏾‍🫯‍🧑🏼' => 'cīkstoņi: vidēji tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '🧑🏾‍🫯‍🧑🏽' => 'cīkstoņi: vidēji tumšs ādas tonis un vidējs ādas tonis',
+    '🧑🏾‍🫯‍🧑🏿' => 'cīkstoņi: vidēji tumšs ādas tonis un tumšs ādas tonis',
+    '🧑🏿‍🫯‍🧑🏻' => 'cīkstoņi: tumšs ādas tonis un gaišs ādas tonis',
+    '🧑🏿‍🫯‍🧑🏼' => 'cīkstoņi: tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '🧑🏿‍🫯‍🧑🏽' => 'cīkstoņi: tumšs ādas tonis un vidējs ādas tonis',
+    '🧑🏿‍🫯‍🧑🏾' => 'cīkstoņi: tumšs ādas tonis un vidēji tumšs ādas tonis',
     '🧑🏻‍❤‍🧑🏼' => 'pāris ar sirdi: pieaugušais, pieaugušais, gaišs ādas tonis un vidēji gaišs ādas tonis',
     '🧑🏻‍❤‍🧑🏽' => 'pāris ar sirdi: pieaugušais, pieaugušais, gaišs ādas tonis un vidējs ādas tonis',
     '🧑🏻‍❤‍🧑🏾' => 'pāris ar sirdi: pieaugušais, pieaugušais, gaišs ādas tonis un vidēji tumšs ādas tonis',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pāris ar sirdi: pieaugušais, pieaugušais, tumšs ādas tonis un vidēji gaišs ādas tonis',
     '🧑🏿‍❤‍🧑🏽' => 'pāris ar sirdi: pieaugušais, pieaugušais, tumšs ādas tonis un vidējs ādas tonis',
     '🧑🏿‍❤‍🧑🏾' => 'pāris ar sirdi: pieaugušais, pieaugušais, tumšs ādas tonis un vidēji tumšs ādas tonis',
+    '🧑🏻‍🐰‍🧑🏼' => 'dejotāju šovs: gaišs ādas tonis un vidēji gaišs ādas tonis',
+    '🧑🏻‍🐰‍🧑🏽' => 'dejotāju šovs: gaišs ādas tonis un vidējs ādas tonis',
+    '🧑🏻‍🐰‍🧑🏾' => 'dejotāju šovs: gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '🧑🏻‍🐰‍🧑🏿' => 'dejotāju šovs: gaišs ādas tonis un tumšs ādas tonis',
+    '🧑🏼‍🐰‍🧑🏻' => 'dejotāju šovs: vidēji gaišs ādas tonis un gaišs ādas tonis',
+    '🧑🏼‍🐰‍🧑🏽' => 'dejotāju šovs: vidēji gaišs ādas tonis un vidējs ādas tonis',
+    '🧑🏼‍🐰‍🧑🏾' => 'dejotāju šovs: vidēji gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '🧑🏼‍🐰‍🧑🏿' => 'dejotāju šovs: vidēji gaišs ādas tonis un tumšs ādas tonis',
+    '🧑🏽‍🐰‍🧑🏻' => 'dejotāju šovs: vidējs ādas tonis un gaišs ādas tonis',
+    '🧑🏽‍🐰‍🧑🏼' => 'dejotāju šovs: vidējs ādas tonis un vidēji gaišs ādas tonis',
+    '🧑🏽‍🐰‍🧑🏾' => 'dejotāju šovs: vidējs ādas tonis un vidēji tumšs ādas tonis',
+    '🧑🏽‍🐰‍🧑🏿' => 'dejotāju šovs: vidējs ādas tonis un tumšs ādas tonis',
+    '🧑🏾‍🐰‍🧑🏻' => 'dejotāju šovs: vidēji tumšs ādas tonis un gaišs ādas tonis',
+    '🧑🏾‍🐰‍🧑🏼' => 'dejotāju šovs: vidēji tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '🧑🏾‍🐰‍🧑🏽' => 'dejotāju šovs: vidēji tumšs ādas tonis un vidējs ādas tonis',
+    '🧑🏾‍🐰‍🧑🏿' => 'dejotāju šovs: vidēji tumšs ādas tonis un tumšs ādas tonis',
+    '🧑🏿‍🐰‍🧑🏻' => 'dejotāju šovs: tumšs ādas tonis un gaišs ādas tonis',
+    '🧑🏿‍🐰‍🧑🏼' => 'dejotāju šovs: tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '🧑🏿‍🐰‍🧑🏽' => 'dejotāju šovs: tumšs ādas tonis un vidējs ādas tonis',
+    '🧑🏿‍🐰‍🧑🏾' => 'dejotāju šovs: tumšs ādas tonis un vidēji tumšs ādas tonis',
+    '👨🏻‍🫯‍👨🏼' => 'cīkstonis: gaišs ādas tonis un vidēji gaišs ādas tonis',
+    '👨🏻‍🫯‍👨🏽' => 'cīkstonis: gaišs ādas tonis un vidējs ādas tonis',
+    '👨🏻‍🫯‍👨🏾' => 'cīkstonis: gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '👨🏻‍🫯‍👨🏿' => 'cīkstonis: gaišs ādas tonis un tumšs ādas tonis',
+    '👨🏼‍🫯‍👨🏻' => 'cīkstonis: vidēji gaišs ādas tonis un gaišs ādas tonis',
+    '👨🏼‍🫯‍👨🏽' => 'cīkstonis: vidēji gaišs ādas tonis un vidējs ādas tonis',
+    '👨🏼‍🫯‍👨🏾' => 'cīkstonis: vidēji gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '👨🏼‍🫯‍👨🏿' => 'cīkstonis: vidēji gaišs ādas tonis un tumšs ādas tonis',
+    '👨🏽‍🫯‍👨🏻' => 'cīkstonis: vidējs ādas tonis un gaišs ādas tonis',
+    '👨🏽‍🫯‍👨🏼' => 'cīkstonis: vidējs ādas tonis un vidēji gaišs ādas tonis',
+    '👨🏽‍🫯‍👨🏾' => 'cīkstonis: vidējs ādas tonis un vidēji tumšs ādas tonis',
+    '👨🏽‍🫯‍👨🏿' => 'cīkstonis: vidējs ādas tonis un tumšs ādas tonis',
+    '👨🏾‍🫯‍👨🏻' => 'cīkstonis: vidēji tumšs ādas tonis un gaišs ādas tonis',
+    '👨🏾‍🫯‍👨🏼' => 'cīkstonis: vidēji tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '👨🏾‍🫯‍👨🏽' => 'cīkstonis: vidēji tumšs ādas tonis un vidējs ādas tonis',
+    '👨🏾‍🫯‍👨🏿' => 'cīkstonis: vidēji tumšs ādas tonis un tumšs ādas tonis',
+    '👨🏿‍🫯‍👨🏻' => 'cīkstonis: tumšs ādas tonis un gaišs ādas tonis',
+    '👨🏿‍🫯‍👨🏼' => 'cīkstonis: tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '👨🏿‍🫯‍👨🏽' => 'cīkstonis: tumšs ādas tonis un vidējs ādas tonis',
+    '👨🏿‍🫯‍👨🏾' => 'cīkstonis: tumšs ādas tonis un vidēji tumšs ādas tonis',
     '👨🏻‍❤‍👨🏻' => 'pāris ar sirdi: vīrietis, vīrietis un gaišs ādas tonis',
     '👨🏻‍❤‍👨🏼' => 'pāris ar sirdi: vīrietis, vīrietis, gaišs ādas tonis un vidēji gaišs ādas tonis',
     '👨🏻‍❤‍👨🏽' => 'pāris ar sirdi: vīrietis, vīrietis, gaišs ādas tonis un vidējs ādas tonis',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pāris ar sirdi: vīrietis, vīrietis, tumšs ādas tonis un vidējs ādas tonis',
     '👨🏿‍❤‍👨🏾' => 'pāris ar sirdi: vīrietis, vīrietis, tumšs ādas tonis un vidēji tumšs ādas tonis',
     '👨🏿‍❤‍👨🏿' => 'pāris ar sirdi: vīrietis, vīrietis un tumšs ādas tonis',
+    '👨🏻‍🐰‍👨🏼' => 'dejotāji: gaišs ādas tonis un vidēji gaišs ādas tonis',
+    '👨🏻‍🐰‍👨🏽' => 'dejotāji: gaišs ādas tonis un vidējs ādas tonis',
+    '👨🏻‍🐰‍👨🏾' => 'dejotāji: gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '👨🏻‍🐰‍👨🏿' => 'dejotāji: gaišs ādas tonis un tumšs ādas tonis',
+    '👨🏼‍🐰‍👨🏻' => 'dejotāji: vidēji gaišs ādas tonis un gaišs ādas tonis',
+    '👨🏼‍🐰‍👨🏽' => 'dejotāji: vidēji gaišs ādas tonis un vidējs ādas tonis',
+    '👨🏼‍🐰‍👨🏾' => 'dejotāji: vidēji gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '👨🏼‍🐰‍👨🏿' => 'dejotāji: vidēji gaišs ādas tonis un tumšs ādas tonis',
+    '👨🏽‍🐰‍👨🏻' => 'dejotāji: vidējs ādas tonis un gaišs ādas tonis',
+    '👨🏽‍🐰‍👨🏼' => 'dejotāji: vidējs ādas tonis un vidēji gaišs ādas tonis',
+    '👨🏽‍🐰‍👨🏾' => 'dejotāji: vidējs ādas tonis un vidēji tumšs ādas tonis',
+    '👨🏽‍🐰‍👨🏿' => 'dejotāji: vidējs ādas tonis un tumšs ādas tonis',
+    '👨🏾‍🐰‍👨🏻' => 'dejotāji: vidēji tumšs ādas tonis un gaišs ādas tonis',
+    '👨🏾‍🐰‍👨🏼' => 'dejotāji: vidēji tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '👨🏾‍🐰‍👨🏽' => 'dejotāji: vidēji tumšs ādas tonis un vidējs ādas tonis',
+    '👨🏾‍🐰‍👨🏿' => 'dejotāji: vidēji tumšs ādas tonis un tumšs ādas tonis',
+    '👨🏿‍🐰‍👨🏻' => 'dejotāji: tumšs ādas tonis un gaišs ādas tonis',
+    '👨🏿‍🐰‍👨🏼' => 'dejotāji: tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '👨🏿‍🐰‍👨🏽' => 'dejotāji: tumšs ādas tonis un vidējs ādas tonis',
+    '👨🏿‍🐰‍👨🏾' => 'dejotāji: tumšs ādas tonis un vidēji tumšs ādas tonis',
+    '👩🏻‍🫯‍👩🏼' => 'cīkstone: gaišs ādas tonis un vidēji gaišs ādas tonis',
+    '👩🏻‍🫯‍👩🏽' => 'cīkstone: gaišs ādas tonis un vidējs ādas tonis',
+    '👩🏻‍🫯‍👩🏾' => 'cīkstone: gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '👩🏻‍🫯‍👩🏿' => 'cīkstone: gaišs ādas tonis un tumšs ādas tonis',
+    '👩🏼‍🫯‍👩🏻' => 'cīkstone: vidēji gaišs ādas tonis un gaišs ādas tonis',
+    '👩🏼‍🫯‍👩🏽' => 'cīkstone: vidēji gaišs ādas tonis un vidējs ādas tonis',
+    '👩🏼‍🫯‍👩🏾' => 'cīkstone: vidēji gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '👩🏼‍🫯‍👩🏿' => 'cīkstone: vidēji gaišs ādas tonis un tumšs ādas tonis',
+    '👩🏽‍🫯‍👩🏻' => 'cīkstone: vidējs ādas tonis un gaišs ādas tonis',
+    '👩🏽‍🫯‍👩🏼' => 'cīkstone: vidējs ādas tonis un vidēji gaišs ādas tonis',
+    '👩🏽‍🫯‍👩🏾' => 'cīkstone: vidējs ādas tonis un vidēji tumšs ādas tonis',
+    '👩🏽‍🫯‍👩🏿' => 'cīkstone: vidējs ādas tonis un tumšs ādas tonis',
+    '👩🏾‍🫯‍👩🏻' => 'cīkstone: vidēji tumšs ādas tonis un gaišs ādas tonis',
+    '👩🏾‍🫯‍👩🏼' => 'cīkstone: vidēji tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '👩🏾‍🫯‍👩🏽' => 'cīkstone: vidēji tumšs ādas tonis un vidējs ādas tonis',
+    '👩🏾‍🫯‍👩🏿' => 'cīkstone: vidēji tumšs ādas tonis un tumšs ādas tonis',
+    '👩🏿‍🫯‍👩🏻' => 'cīkstone: tumšs ādas tonis un gaišs ādas tonis',
+    '👩🏿‍🫯‍👩🏼' => 'cīkstone: tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '👩🏿‍🫯‍👩🏽' => 'cīkstone: tumšs ādas tonis un vidējs ādas tonis',
+    '👩🏿‍🫯‍👩🏾' => 'cīkstone: tumšs ādas tonis un vidēji tumšs ādas tonis',
     '👩🏻‍❤‍👨🏻' => 'pāris ar sirdi: sieviete, vīrietis un gaišs ādas tonis',
     '👩🏻‍❤‍👨🏼' => 'pāris ar sirdi: sieviete, vīrietis, gaišs ādas tonis un vidēji gaišs ādas tonis',
     '👩🏻‍❤‍👨🏽' => 'pāris ar sirdi: sieviete, vīrietis, gaišs ādas tonis un vidējs ādas tonis',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pāris ar sirdi: sieviete, sieviete, tumšs ādas tonis un vidējs ādas tonis',
     '👩🏿‍❤‍👩🏾' => 'pāris ar sirdi: sieviete, sieviete, tumšs ādas tonis un vidēji tumšs ādas tonis',
     '👩🏿‍❤‍👩🏿' => 'pāris ar sirdi: sieviete, sieviete un tumšs ādas tonis',
+    '👩🏻‍🐰‍👩🏼' => 'dejotājas: gaišs ādas tonis un vidēji gaišs ādas tonis',
+    '👩🏻‍🐰‍👩🏽' => 'dejotājas: gaišs ādas tonis un vidējs ādas tonis',
+    '👩🏻‍🐰‍👩🏾' => 'dejotājas: gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '👩🏻‍🐰‍👩🏿' => 'dejotājas: gaišs ādas tonis un tumšs ādas tonis',
+    '👩🏼‍🐰‍👩🏻' => 'dejotājas: vidēji gaišs ādas tonis un gaišs ādas tonis',
+    '👩🏼‍🐰‍👩🏽' => 'dejotājas: vidēji gaišs ādas tonis un vidējs ādas tonis',
+    '👩🏼‍🐰‍👩🏾' => 'dejotājas: vidēji gaišs ādas tonis un vidēji tumšs ādas tonis',
+    '👩🏼‍🐰‍👩🏿' => 'dejotājas: vidēji gaišs ādas tonis un tumšs ādas tonis',
+    '👩🏽‍🐰‍👩🏻' => 'dejotājas: vidējs ādas tonis un gaišs ādas tonis',
+    '👩🏽‍🐰‍👩🏼' => 'dejotājas: vidējs ādas tonis un vidēji gaišs ādas tonis',
+    '👩🏽‍🐰‍👩🏾' => 'dejotājas: vidējs ādas tonis un vidēji tumšs ādas tonis',
+    '👩🏽‍🐰‍👩🏿' => 'dejotājas: vidējs ādas tonis un tumšs ādas tonis',
+    '👩🏾‍🐰‍👩🏻' => 'dejotājas: vidēji tumšs ādas tonis un gaišs ādas tonis',
+    '👩🏾‍🐰‍👩🏼' => 'dejotājas: vidēji tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '👩🏾‍🐰‍👩🏽' => 'dejotājas: vidēji tumšs ādas tonis un vidējs ādas tonis',
+    '👩🏾‍🐰‍👩🏿' => 'dejotājas: vidēji tumšs ādas tonis un tumšs ādas tonis',
+    '👩🏿‍🐰‍👩🏻' => 'dejotājas: tumšs ādas tonis un gaišs ādas tonis',
+    '👩🏿‍🐰‍👩🏼' => 'dejotājas: tumšs ādas tonis un vidēji gaišs ādas tonis',
+    '👩🏿‍🐰‍👩🏽' => 'dejotājas: tumšs ādas tonis un vidējs ādas tonis',
+    '👩🏿‍🐰‍👩🏾' => 'dejotājas: tumšs ādas tonis un vidēji tumšs ādas tonis',
     '🧑🏻‍🤝‍🧑🏻' => 'cilvēki sadevušies rokās: gaišs ādas tonis',
     '🧑🏻‍🤝‍🧑🏼' => 'cilvēki sadevušies rokās: gaišs ādas tonis un vidēji gaišs ādas tonis',
     '🧑🏻‍🤝‍🧑🏽' => 'cilvēki sadevušies rokās: gaišs ādas tonis un vidējs ādas tonis',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'karogs: Skotija',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'karogs: Velsa',
     '🧑‍🧑‍🧒‍🧒' => 'ģimene: pieaugušais, pieaugušais, bērns, bērns',
-    '🚶🏻‍♀‍➡' => 'sieviete pastaigājas skatās pa labi',
-    '🚶🏼‍♀‍➡' => 'sieviete pastaigājas skatās pa labi',
-    '🚶🏽‍♀‍➡' => 'sieviete pastaigājas skatās pa labi',
-    '🚶🏾‍♀‍➡' => 'sieviete pastaigājas skatās pa labi',
-    '🚶🏿‍♀‍➡' => 'sieviete pastaigājas skatās pa labi',
-    '🚶🏻‍♂‍➡' => 'vīrietis pastaigājas skatās pa labi',
-    '🚶🏼‍♂‍➡' => 'vīrietis pastaigājas skatās pa labi',
-    '🚶🏽‍♂‍➡' => 'vīrietis pastaigājas skatās pa labi',
-    '🚶🏾‍♂‍➡' => 'vīrietis pastaigājas skatās pa labi',
-    '🚶🏿‍♂‍➡' => 'vīrietis pastaigājas skatās pa labi',
-    '🧎🏻‍♀‍➡' => 'sieviete uz ceļiem skatās pa labi',
-    '🧎🏼‍♀‍➡' => 'sieviete uz ceļiem skatās pa labi',
-    '🧎🏽‍♀‍➡' => 'sieviete uz ceļiem skatās pa labi',
-    '🧎🏾‍♀‍➡' => 'sieviete uz ceļiem skatās pa labi',
-    '🧎🏿‍♀‍➡' => 'sieviete uz ceļiem skatās pa labi',
-    '🧎🏻‍♂‍➡' => 'vīrietis uz ceļiem skatās pa labi',
-    '🧎🏼‍♂‍➡' => 'vīrietis uz ceļiem skatās pa labi',
-    '🧎🏽‍♂‍➡' => 'vīrietis uz ceļiem skatās pa labi',
-    '🧎🏾‍♂‍➡' => 'vīrietis uz ceļiem skatās pa labi',
-    '🧎🏿‍♂‍➡' => 'vīrietis uz ceļiem skatās pa labi',
-    '🧑🏻‍🦯‍➡' => 'persona ar balto spieķi skatās pa labi',
-    '🧑🏼‍🦯‍➡' => 'persona ar balto spieķi skatās pa labi',
-    '🧑🏽‍🦯‍➡' => 'persona ar balto spieķi skatās pa labi',
-    '🧑🏾‍🦯‍➡' => 'persona ar balto spieķi skatās pa labi',
-    '🧑🏿‍🦯‍➡' => 'persona ar balto spieķi skatās pa labi',
-    '👨🏻‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi skatās pa labi',
-    '👨🏼‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi skatās pa labi',
-    '👨🏽‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi skatās pa labi',
-    '👨🏾‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi skatās pa labi',
-    '👨🏿‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi skatās pa labi',
-    '👩🏻‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi skatās pa labi',
-    '👩🏼‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi skatās pa labi',
-    '👩🏽‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi skatās pa labi',
-    '👩🏾‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi skatās pa labi',
-    '👩🏿‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi skatās pa labi',
-    '🧑🏻‍🦼‍➡' => 'persona ratiņkrēslā skatās pa labi',
-    '🧑🏼‍🦼‍➡' => 'persona ratiņkrēslā skatās pa labi',
-    '🧑🏽‍🦼‍➡' => 'persona ratiņkrēslā skatās pa labi',
-    '🧑🏾‍🦼‍➡' => 'persona ratiņkrēslā skatās pa labi',
-    '🧑🏿‍🦼‍➡' => 'persona ratiņkrēslā skatās pa labi',
-    '👨🏻‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā skatās pa labi',
-    '👨🏼‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā skatās pa labi',
-    '👨🏽‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā skatās pa labi',
-    '👨🏾‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā skatās pa labi',
-    '👨🏿‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā skatās pa labi',
-    '👩🏻‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā skatās pa labi',
-    '👩🏼‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā skatās pa labi',
-    '👩🏽‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā skatās pa labi',
-    '👩🏾‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā skatās pa labi',
-    '👩🏿‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā skatās pa labi',
-    '🧑🏻‍🦽‍➡' => 'persona manuālajā ratiņkrēslā skatās pa labi',
-    '🧑🏼‍🦽‍➡' => 'persona manuālajā ratiņkrēslā skatās pa labi',
-    '🧑🏽‍🦽‍➡' => 'persona manuālajā ratiņkrēslā skatās pa labi',
-    '🧑🏾‍🦽‍➡' => 'persona manuālajā ratiņkrēslā skatās pa labi',
-    '🧑🏿‍🦽‍➡' => 'persona manuālajā ratiņkrēslā skatās pa labi',
-    '👨🏻‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā skatās pa labi',
-    '👨🏼‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā skatās pa labi',
-    '👨🏽‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā skatās pa labi',
-    '👨🏾‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā skatās pa labi',
-    '👨🏿‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā skatās pa labi',
-    '👩🏻‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā skatās pa labi',
-    '👩🏼‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā skatās pa labi',
-    '👩🏽‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā skatās pa labi',
-    '👩🏾‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā skatās pa labi',
-    '👩🏿‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā skatās pa labi',
-    '🏃🏻‍♀‍➡' => 'sieviete skrien skatās pa labi',
-    '🏃🏼‍♀‍➡' => 'sieviete skrien skatās pa labi',
-    '🏃🏽‍♀‍➡' => 'sieviete skrien skatās pa labi',
-    '🏃🏾‍♀‍➡' => 'sieviete skrien skatās pa labi',
-    '🏃🏿‍♀‍➡' => 'sieviete skrien skatās pa labi',
-    '🏃🏻‍♂‍➡' => 'vīrietis skrien skatās pa labi',
-    '🏃🏼‍♂‍➡' => 'vīrietis skrien skatās pa labi',
-    '🏃🏽‍♂‍➡' => 'vīrietis skrien skatās pa labi',
-    '🏃🏾‍♂‍➡' => 'vīrietis skrien skatās pa labi',
-    '🏃🏿‍♂‍➡' => 'vīrietis skrien skatās pa labi',
+    '🚶🏻‍♀‍➡' => 'sieviete pastaigājas: gaišs ādas tonis un skatās pa labi',
+    '🚶🏼‍♀‍➡' => 'sieviete pastaigājas: vidēji gaišs ādas tonis un skatās pa labi',
+    '🚶🏽‍♀‍➡' => 'sieviete pastaigājas: vidējs ādas tonis un skatās pa labi',
+    '🚶🏾‍♀‍➡' => 'sieviete pastaigājas: vidēji tumšs ādas tonis un skatās pa labi',
+    '🚶🏿‍♀‍➡' => 'sieviete pastaigājas: tumšs ādas tonis un skatās pa labi',
+    '🚶🏻‍♂‍➡' => 'vīrietis pastaigājas: gaišs ādas tonis un skatās pa labi',
+    '🚶🏼‍♂‍➡' => 'vīrietis pastaigājas: vidēji gaišs ādas tonis un skatās pa labi',
+    '🚶🏽‍♂‍➡' => 'vīrietis pastaigājas: vidējs ādas tonis un skatās pa labi',
+    '🚶🏾‍♂‍➡' => 'vīrietis pastaigājas: vidēji tumšs ādas tonis un skatās pa labi',
+    '🚶🏿‍♂‍➡' => 'vīrietis pastaigājas: tumšs ādas tonis un skatās pa labi',
+    '🧎🏻‍♀‍➡' => 'sieviete uz ceļiem: gaišs ādas tonis un skatās pa labi',
+    '🧎🏼‍♀‍➡' => 'sieviete uz ceļiem: vidēji gaišs ādas tonis un skatās pa labi',
+    '🧎🏽‍♀‍➡' => 'sieviete uz ceļiem: vidējs ādas tonis un skatās pa labi',
+    '🧎🏾‍♀‍➡' => 'sieviete uz ceļiem: vidēji tumšs ādas tonis un skatās pa labi',
+    '🧎🏿‍♀‍➡' => 'sieviete uz ceļiem: tumšs ādas tonis un skatās pa labi',
+    '🧎🏻‍♂‍➡' => 'vīrietis uz ceļiem: gaišs ādas tonis un skatās pa labi',
+    '🧎🏼‍♂‍➡' => 'vīrietis uz ceļiem: vidēji gaišs ādas tonis un skatās pa labi',
+    '🧎🏽‍♂‍➡' => 'vīrietis uz ceļiem: vidējs ādas tonis un skatās pa labi',
+    '🧎🏾‍♂‍➡' => 'vīrietis uz ceļiem: vidēji tumšs ādas tonis un skatās pa labi',
+    '🧎🏿‍♂‍➡' => 'vīrietis uz ceļiem: tumšs ādas tonis un skatās pa labi',
+    '🧑🏻‍🦯‍➡' => 'persona ar balto spieķi: gaišs ādas tonis un skatās pa labi',
+    '🧑🏼‍🦯‍➡' => 'persona ar balto spieķi: vidēji gaišs ādas tonis un skatās pa labi',
+    '🧑🏽‍🦯‍➡' => 'persona ar balto spieķi: vidējs ādas tonis un skatās pa labi',
+    '🧑🏾‍🦯‍➡' => 'persona ar balto spieķi: vidēji tumšs ādas tonis un skatās pa labi',
+    '🧑🏿‍🦯‍➡' => 'persona ar balto spieķi: tumšs ādas tonis un skatās pa labi',
+    '👨🏻‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi: gaišs ādas tonis un skatās pa labi',
+    '👨🏼‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi: vidēji gaišs ādas tonis un skatās pa labi',
+    '👨🏽‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi: vidējs ādas tonis un skatās pa labi',
+    '👨🏾‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi: vidēji tumšs ādas tonis un skatās pa labi',
+    '👨🏿‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi: tumšs ādas tonis un skatās pa labi',
+    '👩🏻‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi: gaišs ādas tonis un skatās pa labi',
+    '👩🏼‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi: vidēji gaišs ādas tonis un skatās pa labi',
+    '👩🏽‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi: vidējs ādas tonis un skatās pa labi',
+    '👩🏾‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi: vidēji tumšs ādas tonis un skatās pa labi',
+    '👩🏿‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi: tumšs ādas tonis un skatās pa labi',
+    '🧑🏻‍🦼‍➡' => 'persona ratiņkrēslā: gaišs ādas tonis un skatās pa labi',
+    '🧑🏼‍🦼‍➡' => 'persona ratiņkrēslā: vidēji gaišs ādas tonis un skatās pa labi',
+    '🧑🏽‍🦼‍➡' => 'persona ratiņkrēslā: vidējs ādas tonis un skatās pa labi',
+    '🧑🏾‍🦼‍➡' => 'persona ratiņkrēslā: vidēji tumšs ādas tonis un skatās pa labi',
+    '🧑🏿‍🦼‍➡' => 'persona ratiņkrēslā: tumšs ādas tonis un skatās pa labi',
+    '👨🏻‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā: gaišs ādas tonis un skatās pa labi',
+    '👨🏼‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā: vidēji gaišs ādas tonis un skatās pa labi',
+    '👨🏽‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā: vidējs ādas tonis un skatās pa labi',
+    '👨🏾‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā: vidēji tumšs ādas tonis un skatās pa labi',
+    '👨🏿‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā: tumšs ādas tonis un skatās pa labi',
+    '👩🏻‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā: gaišs ādas tonis un skatās pa labi',
+    '👩🏼‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā: vidēji gaišs ādas tonis un skatās pa labi',
+    '👩🏽‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā: vidējs ādas tonis un skatās pa labi',
+    '👩🏾‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā: vidēji tumšs ādas tonis un skatās pa labi',
+    '👩🏿‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā: tumšs ādas tonis un skatās pa labi',
+    '🧑🏻‍🦽‍➡' => 'persona manuālajā ratiņkrēslā: gaišs ādas tonis un skatās pa labi',
+    '🧑🏼‍🦽‍➡' => 'persona manuālajā ratiņkrēslā: vidēji gaišs ādas tonis un skatās pa labi',
+    '🧑🏽‍🦽‍➡' => 'persona manuālajā ratiņkrēslā: vidējs ādas tonis un skatās pa labi',
+    '🧑🏾‍🦽‍➡' => 'persona manuālajā ratiņkrēslā: vidēji tumšs ādas tonis un skatās pa labi',
+    '🧑🏿‍🦽‍➡' => 'persona manuālajā ratiņkrēslā: tumšs ādas tonis un skatās pa labi',
+    '👨🏻‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā: gaišs ādas tonis un skatās pa labi',
+    '👨🏼‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā: vidēji gaišs ādas tonis un skatās pa labi',
+    '👨🏽‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā: vidējs ādas tonis un skatās pa labi',
+    '👨🏾‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā: vidēji tumšs ādas tonis un skatās pa labi',
+    '👨🏿‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā: tumšs ādas tonis un skatās pa labi',
+    '👩🏻‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā: gaišs ādas tonis un skatās pa labi',
+    '👩🏼‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā: vidēji gaišs ādas tonis un skatās pa labi',
+    '👩🏽‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā: vidējs ādas tonis un skatās pa labi',
+    '👩🏾‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā: vidēji tumšs ādas tonis un skatās pa labi',
+    '👩🏿‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā: tumšs ādas tonis un skatās pa labi',
+    '🏃🏻‍♀‍➡' => 'sieviete skrien: gaišs ādas tonis un skatās pa labi',
+    '🏃🏼‍♀‍➡' => 'sieviete skrien: vidēji gaišs ādas tonis un skatās pa labi',
+    '🏃🏽‍♀‍➡' => 'sieviete skrien: vidējs ādas tonis un skatās pa labi',
+    '🏃🏾‍♀‍➡' => 'sieviete skrien: vidēji tumšs ādas tonis un skatās pa labi',
+    '🏃🏿‍♀‍➡' => 'sieviete skrien: tumšs ādas tonis un skatās pa labi',
+    '🏃🏻‍♂‍➡' => 'vīrietis skrien: gaišs ādas tonis un skatās pa labi',
+    '🏃🏼‍♂‍➡' => 'vīrietis skrien: vidēji gaišs ādas tonis un skatās pa labi',
+    '🏃🏽‍♂‍➡' => 'vīrietis skrien: vidējs ādas tonis un skatās pa labi',
+    '🏃🏾‍♂‍➡' => 'vīrietis skrien: vidēji tumšs ādas tonis un skatās pa labi',
+    '🏃🏿‍♂‍➡' => 'vīrietis skrien: tumšs ādas tonis un skatās pa labi',
     '🫱🏻‍🫲🏼' => 'rokasspiediens: gaišs ādas tonis un vidēji gaišs ādas tonis',
     '🫱🏻‍🫲🏽' => 'rokasspiediens: gaišs ādas tonis un vidējs ādas tonis',
     '🫱🏻‍🫲🏾' => 'rokasspiediens: gaišs ādas tonis un vidēji tumšs ādas tonis',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'rokasspiediens: tumšs ādas tonis un vidēji gaišs ādas tonis',
     '🫱🏿‍🫲🏽' => 'rokasspiediens: tumšs ādas tonis un vidējs ādas tonis',
     '🫱🏿‍🫲🏾' => 'rokasspiediens: tumšs ādas tonis un vidēji tumšs ādas tonis',
-    '🚶‍♀‍➡' => 'sieviete pastaigājas skatās pa labi',
-    '🚶‍♂‍➡' => 'vīrietis pastaigājas skatās pa labi',
-    '🧎‍♀‍➡' => 'sieviete uz ceļiem skatās pa labi',
-    '🧎‍♂‍➡' => 'vīrietis uz ceļiem skatās pa labi',
-    '🧑‍🦯‍➡' => 'persona ar balto spieķi skatās pa labi',
-    '👨‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi skatās pa labi',
-    '👩‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi skatās pa labi',
-    '🧑‍🦼‍➡' => 'persona ratiņkrēslā skatās pa labi',
-    '👨‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā skatās pa labi',
-    '👩‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā skatās pa labi',
-    '🧑‍🦽‍➡' => 'persona manuālajā ratiņkrēslā skatās pa labi',
-    '👨‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā skatās pa labi',
-    '👩‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā skatās pa labi',
-    '🏃‍♀‍➡' => 'sieviete skrien skatās pa labi',
-    '🏃‍♂‍➡' => 'vīrietis skrien skatās pa labi',
+    '🚶‍♀‍➡' => 'sieviete pastaigājas: skatās pa labi',
+    '🚶‍♂‍➡' => 'vīrietis pastaigājas: skatās pa labi',
+    '🧎‍♀‍➡' => 'sieviete uz ceļiem: skatās pa labi',
+    '🧎‍♂‍➡' => 'vīrietis uz ceļiem: skatās pa labi',
+    '🧑‍🦯‍➡' => 'persona ar balto spieķi: skatās pa labi',
+    '👨‍🦯‍➡' => 'vīrietis ar balto atbalsta spieķi: skatās pa labi',
+    '👩‍🦯‍➡' => 'sieviete ar balto atbalsta spieķi: skatās pa labi',
+    '🧑‍🦼‍➡' => 'persona ratiņkrēslā: skatās pa labi',
+    '👨‍🦼‍➡' => 'vīrietis motorizētā ratiņkrēslā: skatās pa labi',
+    '👩‍🦼‍➡' => 'sieviete motorizētā ratiņkrēslā: skatās pa labi',
+    '🧑‍🦽‍➡' => 'persona manuālajā ratiņkrēslā: skatās pa labi',
+    '👨‍🦽‍➡' => 'vīrietis manuālā ratiņkrēslā: skatās pa labi',
+    '👩‍🦽‍➡' => 'sieviete manuālā ratiņkrēslā: skatās pa labi',
+    '🏃‍♀‍➡' => 'sieviete skrien: skatās pa labi',
+    '🏃‍♂‍➡' => 'vīrietis skrien: skatās pa labi',
     '👩‍❤‍👨' => 'pāris ar sirdi: sieviete un vīrietis',
     '👨‍❤‍👨' => 'pāris ar sirdi: vīrietis un vīrietis',
     '👩‍❤‍👩' => 'pāris ar sirdi: sieviete un sieviete',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'pieaugušais: vidējs ādas tonis un bez matiem',
     '🧑🏾‍🦲' => 'pieaugušais: vidēji tumšs ādas tonis un bez matiem',
     '🧑🏿‍🦲' => 'pieaugušais: tumšs ādas tonis un bez matiem',
+    '🧑🏻‍🩰' => 'baletdejotājs: gaišs ādas tonis',
+    '🧑🏼‍🩰' => 'baletdejotājs: vidēji gaišs ādas tonis',
+    '🧑🏽‍🩰' => 'baletdejotājs: vidējs ādas tonis',
+    '🧑🏾‍🩰' => 'baletdejotājs: vidēji tumšs ādas tonis',
+    '🧑🏿‍🩰' => 'baletdejotājs: tumšs ādas tonis',
     '🧔🏻‍♂' => 'vīrietis ar bārdu: gaišs ādas tonis',
     '🧔🏼‍♂' => 'vīrietis ar bārdu: vidēji gaišs ādas tonis',
     '🧔🏽‍♂' => 'vīrietis ar bārdu: vidējs ādas tonis',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'sieviete pastaigājas: vidējs ādas tonis',
     '🚶🏾‍♀' => 'sieviete pastaigājas: vidēji tumšs ādas tonis',
     '🚶🏿‍♀' => 'sieviete pastaigājas: tumšs ādas tonis',
-    '🚶🏻‍➡' => 'gājējs skatās pa labi',
-    '🚶🏼‍➡' => 'gājējs skatās pa labi',
-    '🚶🏽‍➡' => 'gājējs skatās pa labi',
-    '🚶🏾‍➡' => 'gājējs skatās pa labi',
-    '🚶🏿‍➡' => 'gājējs skatās pa labi',
+    '🚶🏻‍➡' => 'gājējs: gaišs ādas tonis un skatās pa labi',
+    '🚶🏼‍➡' => 'gājējs: vidēji gaišs ādas tonis un skatās pa labi',
+    '🚶🏽‍➡' => 'gājējs: vidējs ādas tonis un skatās pa labi',
+    '🚶🏾‍➡' => 'gājējs: vidēji tumšs ādas tonis un skatās pa labi',
+    '🚶🏿‍➡' => 'gājējs: tumšs ādas tonis un skatās pa labi',
     '🧍🏻‍♂' => 'stāvošs vīrietis: gaišs ādas tonis',
     '🧍🏼‍♂' => 'stāvošs vīrietis: vidēji gaišs ādas tonis',
     '🧍🏽‍♂' => 'stāvošs vīrietis: vidējs ādas tonis',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'sieviete uz ceļiem: vidējs ādas tonis',
     '🧎🏾‍♀' => 'sieviete uz ceļiem: vidēji tumšs ādas tonis',
     '🧎🏿‍♀' => 'sieviete uz ceļiem: tumšs ādas tonis',
-    '🧎🏻‍➡' => 'persona uz ceļiem skatās pa labi',
-    '🧎🏼‍➡' => 'persona uz ceļiem skatās pa labi',
-    '🧎🏽‍➡' => 'persona uz ceļiem skatās pa labi',
-    '🧎🏾‍➡' => 'persona uz ceļiem skatās pa labi',
-    '🧎🏿‍➡' => 'persona uz ceļiem skatās pa labi',
+    '🧎🏻‍➡' => 'persona uz ceļiem: gaišs ādas tonis un skatās pa labi',
+    '🧎🏼‍➡' => 'persona uz ceļiem: vidēji gaišs ādas tonis un skatās pa labi',
+    '🧎🏽‍➡' => 'persona uz ceļiem: vidējs ādas tonis un skatās pa labi',
+    '🧎🏾‍➡' => 'persona uz ceļiem: vidēji tumšs ādas tonis un skatās pa labi',
+    '🧎🏿‍➡' => 'persona uz ceļiem: tumšs ādas tonis un skatās pa labi',
     '🧑🏻‍🦯' => 'persona ar balto spieķi: gaišs ādas tonis',
     '🧑🏼‍🦯' => 'persona ar balto spieķi: vidēji gaišs ādas tonis',
     '🧑🏽‍🦯' => 'persona ar balto spieķi: vidējs ādas tonis',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'sieviete skrien: vidējs ādas tonis',
     '🏃🏾‍♀' => 'sieviete skrien: vidēji tumšs ādas tonis',
     '🏃🏿‍♀' => 'sieviete skrien: tumšs ādas tonis',
-    '🏃🏻‍➡' => 'skrējējs skatās pa labi',
-    '🏃🏼‍➡' => 'skrējējs skatās pa labi',
-    '🏃🏽‍➡' => 'skrējējs skatās pa labi',
-    '🏃🏾‍➡' => 'skrējējs skatās pa labi',
-    '🏃🏿‍➡' => 'skrējējs skatās pa labi',
+    '🏃🏻‍➡' => 'skrējējs: gaišs ādas tonis un skatās pa labi',
+    '🏃🏼‍➡' => 'skrējējs: vidēji gaišs ādas tonis un skatās pa labi',
+    '🏃🏽‍➡' => 'skrējējs: vidējs ādas tonis un skatās pa labi',
+    '🏃🏾‍➡' => 'skrējējs: vidēji tumšs ādas tonis un skatās pa labi',
+    '🏃🏿‍➡' => 'skrējējs: tumšs ādas tonis un skatās pa labi',
+    '👯🏻‍♀' => 'dejotājas: gaišs ādas tonis',
+    '👯🏼‍♀' => 'dejotājas: vidēji gaišs ādas tonis',
+    '👯🏽‍♀' => 'dejotājas: vidējs ādas tonis',
+    '👯🏾‍♀' => 'dejotājas: vidēji tumšs ādas tonis',
+    '👯🏿‍♀' => 'dejotājas: tumšs ādas tonis',
+    '👯🏻‍♂' => 'dejotāji: gaišs ādas tonis',
+    '👯🏼‍♂' => 'dejotāji: vidēji gaišs ādas tonis',
+    '👯🏽‍♂' => 'dejotāji: vidējs ādas tonis',
+    '👯🏾‍♂' => 'dejotāji: vidēji tumšs ādas tonis',
+    '👯🏿‍♂' => 'dejotāji: tumšs ādas tonis',
     '🧖🏻‍♂' => 'vīrietis tvaika telpā: gaišs ādas tonis',
     '🧖🏼‍♂' => 'vīrietis tvaika telpā: vidēji gaišs ādas tonis',
     '🧖🏽‍♂' => 'vīrietis tvaika telpā: vidējs ādas tonis',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'akrobāte: vidējs ādas tonis',
     '🤸🏾‍♀' => 'akrobāte: vidēji tumšs ādas tonis',
     '🤸🏿‍♀' => 'akrobāte: tumšs ādas tonis',
+    '🤼🏻‍♀' => 'cīkstone: gaišs ādas tonis',
+    '🤼🏼‍♀' => 'cīkstone: vidēji gaišs ādas tonis',
+    '🤼🏽‍♀' => 'cīkstone: vidējs ādas tonis',
+    '🤼🏾‍♀' => 'cīkstone: vidēji tumšs ādas tonis',
+    '🤼🏿‍♀' => 'cīkstone: tumšs ādas tonis',
+    '🤼🏻‍♂' => 'cīkstonis: gaišs ādas tonis',
+    '🤼🏼‍♂' => 'cīkstonis: vidēji gaišs ādas tonis',
+    '🤼🏽‍♂' => 'cīkstonis: vidējs ādas tonis',
+    '🤼🏾‍♂' => 'cīkstonis: vidēji tumšs ādas tonis',
+    '🤼🏿‍♂' => 'cīkstonis: tumšs ādas tonis',
     '🤽🏻‍♂' => 'ūdenspolo spēlētājs: gaišs ādas tonis',
     '🤽🏼‍♂' => 'ūdenspolo spēlētājs: vidēji gaišs ādas tonis',
     '🤽🏽‍♂' => 'ūdenspolo spēlētājs: vidējs ādas tonis',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'sieviete: sprogaini mati',
     '👩‍🦳' => 'sieviete: sirmi mati',
     '👩‍🦲' => 'sieviete: bez matiem',
-    '🚶‍➡' => 'gājējs skatās pa labi',
-    '🧎‍➡' => 'persona uz ceļiem skatās pa labi',
-    '🏃‍➡' => 'skrējējs skatās pa labi',
+    '🚶‍➡' => 'gājējs: skatās pa labi',
+    '🧎‍➡' => 'persona uz ceļiem: skatās pa labi',
+    '🏃‍➡' => 'skrējējs: skatās pa labi',
     '👨‍👦' => 'ģimene: vīrietis un zēns',
     '👨‍👧' => 'ģimene: vīrietis un meitene',
     '👩‍👦' => 'ģimene: sieviete un zēns',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'sieviete manuālā ratiņkrēslā',
     '🏃‍♂' => 'vīrietis skrien',
     '🏃‍♀' => 'sieviete skrien',
+    '🧑‍🩰' => 'baletdejotājs',
     '👯‍♂' => 'dejotāji',
     '👯‍♀' => 'dejotājas',
     '🧖‍♂' => 'vīrietis tvaika telpā',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'levitējošs cilvēks uzvalkā: vidējs ādas tonis',
     '🕴🏾' => 'levitējošs cilvēks uzvalkā: vidēji tumšs ādas tonis',
     '🕴🏿' => 'levitējošs cilvēks uzvalkā: tumšs ādas tonis',
+    '👯🏻' => 'dejotāju šovs: gaišs ādas tonis',
+    '👯🏼' => 'dejotāju šovs: vidēji gaišs ādas tonis',
+    '👯🏽' => 'dejotāju šovs: vidējs ādas tonis',
+    '👯🏾' => 'dejotāju šovs: vidēji tumšs ādas tonis',
+    '👯🏿' => 'dejotāju šovs: tumšs ādas tonis',
     '🧖🏻' => 'cilvēks tvaika telpā: gaišs ādas tonis',
     '🧖🏼' => 'cilvēks tvaika telpā: vidēji gaišs ādas tonis',
     '🧖🏽' => 'cilvēks tvaika telpā: vidējs ādas tonis',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ritenītis: vidējs ādas tonis',
     '🤸🏾' => 'ritenītis: vidēji tumšs ādas tonis',
     '🤸🏿' => 'ritenītis: tumšs ādas tonis',
+    '🤼🏻' => 'cīkstoņi: gaišs ādas tonis',
+    '🤼🏼' => 'cīkstoņi: vidēji gaišs ādas tonis',
+    '🤼🏽' => 'cīkstoņi: vidējs ādas tonis',
+    '🤼🏾' => 'cīkstoņi: vidēji tumšs ādas tonis',
+    '🤼🏿' => 'cīkstoņi: tumšs ādas tonis',
     '🤽🏻' => 'ūdenspolo sportists: gaišs ādas tonis',
     '🤽🏼' => 'ūdenspolo sportists: vidēji gaišs ādas tonis',
     '🤽🏽' => 'ūdenspolo sportists: vidējs ādas tonis',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'karogs: Ķīna',
     '🇨🇴' => 'karogs: Kolumbija',
     '🇨🇵' => 'karogs: Klipertona sala',
+    '🇨🇶' => 'karogs: Sarka',
     '🇨🇷' => 'karogs: Kostarika',
     '🇨🇺' => 'karogs: Kuba',
     '🇨🇻' => 'karogs: Kaboverde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'vidējs ādas tonis',
     '🏾' => 'vidēji tumšs ādas tonis',
     '🏿' => 'tumšs ādas tonis',
-    '🪉' => 'arfa',
-    '🪏' => 'lāpsta',
-    '🪾' => 'koks bez lapām',
-    '🫆' => 'pirksta nospiedums',
-    '🫜' => 'sakņu dārzenis',
-    '🫟' => 'šļakatas',
-    '🫩' => 'seja ar maisiņiem zem acīm',
     '😀' => 'smiekli',
     '😃' => 'plats smaids un lielas acis',
     '😄' => 'smaidoša seja ar atvērtu muti un smaidošām acīm',
@@ -2450,6 +2600,7 @@
     '😪' => 'miegaina seja',
     '🤤' => 'siekalojas',
     '😴' => 'guļoša seja',
+    '🫩' => 'seja ar maisiņiem zem acīm',
     '😷' => 'seja ar medicīnas masku',
     '🤒' => 'seja ar termometru',
     '🤕' => 'seja ar galvas apsēju',
@@ -2476,6 +2627,7 @@
     '😯' => 'pārsteigta seja',
     '😲' => 'šokēta seja',
     '😳' => 'nosarkusi seja',
+    '🫪' => 'sašķobīta seja',
     '🥺' => 'lūdzoša seja',
     '🥹' => 'seja ar aizturētām asarām',
     '😦' => 'bēdīga seja ar atvērtu muti',
@@ -2547,6 +2699,7 @@
     '💋' => 'skūpsta nospiedums',
     '💯' => 'simt punktu',
     '💢' => 'dusmu simbols',
+    '🫯' => 'juceklis',
     '💥' => 'sadursme',
     '💫' => 'apdullis',
     '💦' => 'sviedru lāses',
@@ -2670,6 +2823,7 @@
     '🧞' => 'džins',
     '🧟' => 'zombijs',
     '🧌' => 'trollis',
+    '🫈' => 'matiem noaudzis radījums',
     '💆' => 'sejas masāža',
     '💇' => 'frizūra',
     '🚶' => 'gājējs',
@@ -2713,6 +2867,7 @@
     '🫂' => 'cilvēki apkampjas',
     '👪' => 'ģimene',
     '👣' => 'pēdu nospiedumi',
+    '🫆' => 'pirksta nospiedums',
     '🦰' => 'sarkani mati',
     '🦱' => 'sprogaini mati',
     '🦳' => 'sirmi mati',
@@ -2812,6 +2967,7 @@
     '🐳' => 'valis šļāc ūdeni',
     '🐋' => 'valis',
     '🐬' => 'delfīns',
+    '🫍' => 'zobenvalis',
     '🦭' => 'ronis',
     '🐟' => 'zivs',
     '🐠' => 'tropu zivs',
@@ -2821,6 +2977,11 @@
     '🐚' => 'gliemežvāks',
     '🪸' => 'koraļļi',
     '🪼' => 'medūza',
+    '🦀' => 'krabis',
+    '🦞' => 'omārs',
+    '🦐' => 'garnele',
+    '🦑' => 'kalmārs',
+    '🦪' => 'austere',
     '🐌' => 'gliemezis',
     '🦋' => 'taurenis',
     '🐛' => 'kukainis',
@@ -2865,6 +3026,7 @@
     '🪹' => 'tukša ligzda',
     '🪺' => 'ligzda ar olām',
     '🍄' => 'sēne',
+    '🪾' => 'koks bez lapām',
     '🍇' => 'vīnogas',
     '🍈' => 'melone',
     '🍉' => 'arbūzs',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kastanis',
     '🫚' => 'ingvera sakne',
     '🫛' => 'zirņu pāksts',
+    '🫜' => 'sakņu dārzenis',
     '🍞' => 'maize',
     '🥐' => 'kruasāns',
     '🥖' => 'bagete',
@@ -2952,11 +3115,6 @@
     '🥟' => 'pelmeņi',
     '🥠' => 'laimes cepumiņš',
     '🥡' => 'kastīte līdzņemšanai',
-    '🦀' => 'krabis',
-    '🦞' => 'omārs',
-    '🦐' => 'garnele',
-    '🦑' => 'kalmārs',
-    '🦪' => 'austere',
     '🍦' => 'saldējums vafeļu glāzītē',
     '🍧' => 'smalcināts ledus ar sīrupu',
     '🍨' => 'saldējums',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompass',
     '🏔' => 'sniegoti kalni',
     '⛰' => 'kalns',
+    '🛘' => 'nogruvums',
     '🌋' => 'vulkāns',
     '🗻' => 'Fudzi kalns',
     '🏕' => 'kempings',
@@ -3367,16 +3526,18 @@
     '🎧' => 'austiņas',
     '📻' => 'radio',
     '🎷' => 'saksofons',
+    '🎺' => 'trompete',
+    '🪊' => 'trombons',
     '🪗' => 'akordeons',
     '🎸' => 'ģitāra',
     '🎹' => 'klavieru taustiņi',
-    '🎺' => 'trompete',
     '🎻' => 'vijole',
     '🪕' => 'bandžo',
     '🥁' => 'bungas',
     '🪘' => 'garās bungas',
     '🪇' => 'marakass',
     '🪈' => 'flauta',
+    '🪉' => 'arfa',
     '📱' => 'mobilais tālrunis',
     '📲' => 'mobilais tālrunis ar bultiņu',
     '☎' => 'tālrunis',
@@ -3430,8 +3591,9 @@
     '📑' => 'līmkarodziņi',
     '🔖' => 'grāmatzīme',
     '🏷' => 'atzīme',
-    '💰' => 'naudas maiss',
     '🪙' => 'monēta',
+    '💰' => 'naudas maiss',
+    '🪎' => 'dārgumu lāde',
     '💴' => 'jenas banknote',
     '💵' => 'dolāra banknote',
     '💶' => 'eiro banknote',
@@ -3514,6 +3676,7 @@
     '🧰' => 'darbarīku kaste',
     '🧲' => 'magnēts',
     '🪜' => 'kāpnes',
+    '🪏' => 'lāpsta',
     '⚗' => 'destilēšanas aparāts',
     '🧪' => 'mēģene',
     '🧫' => 'Petri trauks',
@@ -3697,6 +3860,7 @@
     '✴' => 'četrstaru zvaigzne',
     '❇' => 'dzirkstis',
     '™' => 'preču zīme',
+    '🫟' => 'šļakatas',
     '🔠' => 'lielie latīņu burti',
     '🔡' => 'mazie latīņu burti',
     '🔢' => 'cipari',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mi.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kihi: wahine, wahine, kiri āhua parauri, kiri āhua waenga',
     '👩🏿‍❤‍💋‍👩🏾' => 'kihi: wahine, wahine, kiri āhua parauri, kiri āhua waenga-parauri',
     '👩🏿‍❤‍💋‍👩🏿' => 'kihi: wahine, wahine, kiri āhua parauri',
+    '🧑🏻‍🫯‍🧑🏼' => 'tāngata mamau: kiri āhua māmā, kiri āhua māmā-waenga',
+    '🧑🏻‍🫯‍🧑🏽' => 'tāngata mamau: kiri āhua māmā, kiri āhua waenga',
+    '🧑🏻‍🫯‍🧑🏾' => 'tāngata mamau: kiri āhua māmā, kiri āhua waenga-parauri',
+    '🧑🏻‍🫯‍🧑🏿' => 'tāngata mamau: kiri āhua māmā, kiri āhua parauri',
+    '🧑🏼‍🫯‍🧑🏻' => 'tāngata mamau: kiri āhua māmā-waenga, kiri āhua māmā',
+    '🧑🏼‍🫯‍🧑🏽' => 'tāngata mamau: kiri āhua māmā-waenga, kiri āhua waenga',
+    '🧑🏼‍🫯‍🧑🏾' => 'tāngata mamau: kiri āhua māmā-waenga, kiri āhua waenga-parauri',
+    '🧑🏼‍🫯‍🧑🏿' => 'tāngata mamau: kiri āhua māmā-waenga, kiri āhua parauri',
+    '🧑🏽‍🫯‍🧑🏻' => 'tāngata mamau: kiri āhua waenga, kiri āhua māmā',
+    '🧑🏽‍🫯‍🧑🏼' => 'tāngata mamau: kiri āhua waenga, kiri āhua māmā-waenga',
+    '🧑🏽‍🫯‍🧑🏾' => 'tāngata mamau: kiri āhua waenga, kiri āhua waenga-parauri',
+    '🧑🏽‍🫯‍🧑🏿' => 'tāngata mamau: kiri āhua waenga, kiri āhua parauri',
+    '🧑🏾‍🫯‍🧑🏻' => 'tāngata mamau: kiri āhua waenga-parauri, kiri āhua māmā',
+    '🧑🏾‍🫯‍🧑🏼' => 'tāngata mamau: kiri āhua waenga-parauri, kiri āhua māmā-waenga',
+    '🧑🏾‍🫯‍🧑🏽' => 'tāngata mamau: kiri āhua waenga-parauri, kiri āhua waenga',
+    '🧑🏾‍🫯‍🧑🏿' => 'tāngata mamau: kiri āhua waenga-parauri, kiri āhua parauri',
+    '🧑🏿‍🫯‍🧑🏻' => 'tāngata mamau: kiri āhua parauri, kiri āhua māmā',
+    '🧑🏿‍🫯‍🧑🏼' => 'tāngata mamau: kiri āhua parauri, kiri āhua māmā-waenga',
+    '🧑🏿‍🫯‍🧑🏽' => 'tāngata mamau: kiri āhua parauri, kiri āhua waenga',
+    '🧑🏿‍🫯‍🧑🏾' => 'tāngata mamau: kiri āhua parauri, kiri āhua waenga-parauri',
     '🧑🏻‍❤‍🧑🏼' => 'tokorua me te manawa: pakeke, pakeke, kiri āhua māmā, kiri āhua māmā-waenga',
     '🧑🏻‍❤‍🧑🏽' => 'tokorua me te manawa: pakeke, pakeke, kiri āhua māmā, kiri āhua waenga',
     '🧑🏻‍❤‍🧑🏾' => 'tokorua me te manawa: pakeke, pakeke, kiri āhua māmā, kiri āhua waenga-parauri',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'tokorua me te manawa: pakeke, pakeke, kiri āhua parauri, kiri āhua māmā-waenga',
     '🧑🏿‍❤‍🧑🏽' => 'tokorua me te manawa: pakeke, pakeke, kiri āhua parauri, kiri āhua waenga',
     '🧑🏿‍❤‍🧑🏾' => 'tokorua me te manawa: pakeke, pakeke, kiri āhua parauri, kiri āhua waenga-parauri',
+    '🧑🏻‍🐰‍🧑🏼' => 'tāngata taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua māmā-waenga',
+    '🧑🏻‍🐰‍🧑🏽' => 'tāngata taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua waenga',
+    '🧑🏻‍🐰‍🧑🏾' => 'tāngata taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua waenga-parauri',
+    '🧑🏻‍🐰‍🧑🏿' => 'tāngata taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua parauri',
+    '🧑🏼‍🐰‍🧑🏻' => 'tāngata taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua māmā',
+    '🧑🏼‍🐰‍🧑🏽' => 'tāngata taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua waenga',
+    '🧑🏼‍🐰‍🧑🏾' => 'tāngata taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua waenga-parauri',
+    '🧑🏼‍🐰‍🧑🏿' => 'tāngata taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua parauri',
+    '🧑🏽‍🐰‍🧑🏻' => 'tāngata taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua māmā',
+    '🧑🏽‍🐰‍🧑🏼' => 'tāngata taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua māmā-waenga',
+    '🧑🏽‍🐰‍🧑🏾' => 'tāngata taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua waenga-parauri',
+    '🧑🏽‍🐰‍🧑🏿' => 'tāngata taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua parauri',
+    '🧑🏾‍🐰‍🧑🏻' => 'tāngata taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua māmā',
+    '🧑🏾‍🐰‍🧑🏼' => 'tāngata taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua māmā-waenga',
+    '🧑🏾‍🐰‍🧑🏽' => 'tāngata taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua waenga',
+    '🧑🏾‍🐰‍🧑🏿' => 'tāngata taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua parauri',
+    '🧑🏿‍🐰‍🧑🏻' => 'tāngata taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua māmā',
+    '🧑🏿‍🐰‍🧑🏼' => 'tāngata taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua māmā-waenga',
+    '🧑🏿‍🐰‍🧑🏽' => 'tāngata taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua waenga',
+    '🧑🏿‍🐰‍🧑🏾' => 'tāngata taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua waenga-parauri',
+    '👨🏻‍🫯‍👨🏼' => 'tāne mamau: kiri āhua māmā, kiri āhua māmā-waenga',
+    '👨🏻‍🫯‍👨🏽' => 'tāne mamau: kiri āhua māmā, kiri āhua waenga',
+    '👨🏻‍🫯‍👨🏾' => 'tāne mamau: kiri āhua māmā, kiri āhua waenga-parauri',
+    '👨🏻‍🫯‍👨🏿' => 'tāne mamau: kiri āhua māmā, kiri āhua parauri',
+    '👨🏼‍🫯‍👨🏻' => 'tāne mamau: kiri āhua māmā-waenga, kiri āhua māmā',
+    '👨🏼‍🫯‍👨🏽' => 'tāne mamau: kiri āhua māmā-waenga, kiri āhua waenga',
+    '👨🏼‍🫯‍👨🏾' => 'tāne mamau: kiri āhua māmā-waenga, kiri āhua waenga-parauri',
+    '👨🏼‍🫯‍👨🏿' => 'tāne mamau: kiri āhua māmā-waenga, kiri āhua parauri',
+    '👨🏽‍🫯‍👨🏻' => 'tāne mamau: kiri āhua waenga, kiri āhua māmā',
+    '👨🏽‍🫯‍👨🏼' => 'tāne mamau: kiri āhua waenga, kiri āhua māmā-waenga',
+    '👨🏽‍🫯‍👨🏾' => 'tāne mamau: kiri āhua waenga, kiri āhua waenga-parauri',
+    '👨🏽‍🫯‍👨🏿' => 'tāne mamau: kiri āhua waenga, kiri āhua parauri',
+    '👨🏾‍🫯‍👨🏻' => 'tāne mamau: kiri āhua waenga-parauri, kiri āhua māmā',
+    '👨🏾‍🫯‍👨🏼' => 'tāne mamau: kiri āhua waenga-parauri, kiri āhua māmā-waenga',
+    '👨🏾‍🫯‍👨🏽' => 'tāne mamau: kiri āhua waenga-parauri, kiri āhua waenga',
+    '👨🏾‍🫯‍👨🏿' => 'tāne mamau: kiri āhua waenga-parauri, kiri āhua parauri',
+    '👨🏿‍🫯‍👨🏻' => 'tāne mamau: kiri āhua parauri, kiri āhua māmā',
+    '👨🏿‍🫯‍👨🏼' => 'tāne mamau: kiri āhua parauri, kiri āhua māmā-waenga',
+    '👨🏿‍🫯‍👨🏽' => 'tāne mamau: kiri āhua parauri, kiri āhua waenga',
+    '👨🏿‍🫯‍👨🏾' => 'tāne mamau: kiri āhua parauri, kiri āhua waenga-parauri',
     '👨🏻‍❤‍👨🏻' => 'tokorua me te manawa: tāne, tāne, kiri āhua māmā',
     '👨🏻‍❤‍👨🏼' => 'tokorua me te manawa: tāne, tāne, kiri āhua māmā, kiri āhua māmā-waenga',
     '👨🏻‍❤‍👨🏽' => 'tokorua me te manawa: tāne, tāne, kiri āhua māmā, kiri āhua waenga',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'tokorua me te manawa: tāne, tāne, kiri āhua parauri, kiri āhua waenga',
     '👨🏿‍❤‍👨🏾' => 'tokorua me te manawa: tāne, tāne, kiri āhua parauri, kiri āhua waenga-parauri',
     '👨🏿‍❤‍👨🏿' => 'tokorua me te manawa: tāne, tāne, kiri āhua parauri',
+    '👨🏻‍🐰‍👨🏼' => 'tāne taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua māmā-waenga',
+    '👨🏻‍🐰‍👨🏽' => 'tāne taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua waenga',
+    '👨🏻‍🐰‍👨🏾' => 'tāne taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua waenga-parauri',
+    '👨🏻‍🐰‍👨🏿' => 'tāne taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua parauri',
+    '👨🏼‍🐰‍👨🏻' => 'tāne taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua māmā',
+    '👨🏼‍🐰‍👨🏽' => 'tāne taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua waenga',
+    '👨🏼‍🐰‍👨🏾' => 'tāne taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua waenga-parauri',
+    '👨🏼‍🐰‍👨🏿' => 'tāne taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua parauri',
+    '👨🏽‍🐰‍👨🏻' => 'tāne taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua māmā',
+    '👨🏽‍🐰‍👨🏼' => 'tāne taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua māmā-waenga',
+    '👨🏽‍🐰‍👨🏾' => 'tāne taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua waenga-parauri',
+    '👨🏽‍🐰‍👨🏿' => 'tāne taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua parauri',
+    '👨🏾‍🐰‍👨🏻' => 'tāne taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua māmā',
+    '👨🏾‍🐰‍👨🏼' => 'tāne taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua māmā-waenga',
+    '👨🏾‍🐰‍👨🏽' => 'tāne taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua waenga',
+    '👨🏾‍🐰‍👨🏿' => 'tāne taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua parauri',
+    '👨🏿‍🐰‍👨🏻' => 'tāne taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua māmā',
+    '👨🏿‍🐰‍👨🏼' => 'tāne taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua māmā-waenga',
+    '👨🏿‍🐰‍👨🏽' => 'tāne taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua waenga',
+    '👨🏿‍🐰‍👨🏾' => 'tāne taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua waenga-parauri',
+    '👩🏻‍🫯‍👩🏼' => 'wāhine mamau: kiri āhua māmā, kiri āhua māmā-waenga',
+    '👩🏻‍🫯‍👩🏽' => 'wāhine mamau: kiri āhua māmā, kiri āhua waenga',
+    '👩🏻‍🫯‍👩🏾' => 'wāhine mamau: kiri āhua māmā, kiri āhua waenga-parauri',
+    '👩🏻‍🫯‍👩🏿' => 'wāhine mamau: kiri āhua māmā, kiri āhua parauri',
+    '👩🏼‍🫯‍👩🏻' => 'wāhine mamau: kiri āhua māmā-waenga, kiri āhua māmā',
+    '👩🏼‍🫯‍👩🏽' => 'wāhine mamau: kiri āhua māmā-waenga, kiri āhua waenga',
+    '👩🏼‍🫯‍👩🏾' => 'wāhine mamau: kiri āhua māmā-waenga, kiri āhua waenga-parauri',
+    '👩🏼‍🫯‍👩🏿' => 'wāhine mamau: kiri āhua māmā-waenga, kiri āhua parauri',
+    '👩🏽‍🫯‍👩🏻' => 'wāhine mamau: kiri āhua waenga, kiri āhua māmā',
+    '👩🏽‍🫯‍👩🏼' => 'wāhine mamau: kiri āhua waenga, kiri āhua māmā-waenga',
+    '👩🏽‍🫯‍👩🏾' => 'wāhine mamau: kiri āhua waenga, kiri āhua waenga-parauri',
+    '👩🏽‍🫯‍👩🏿' => 'wāhine mamau: kiri āhua waenga, kiri āhua parauri',
+    '👩🏾‍🫯‍👩🏻' => 'wāhine mamau: kiri āhua waenga-parauri, kiri āhua māmā',
+    '👩🏾‍🫯‍👩🏼' => 'wāhine mamau: kiri āhua waenga-parauri, kiri āhua māmā-waenga',
+    '👩🏾‍🫯‍👩🏽' => 'wāhine mamau: kiri āhua waenga-parauri, kiri āhua waenga',
+    '👩🏾‍🫯‍👩🏿' => 'wāhine mamau: kiri āhua waenga-parauri, kiri āhua parauri',
+    '👩🏿‍🫯‍👩🏻' => 'wāhine mamau: kiri āhua parauri, kiri āhua māmā',
+    '👩🏿‍🫯‍👩🏼' => 'wāhine mamau: kiri āhua parauri, kiri āhua māmā-waenga',
+    '👩🏿‍🫯‍👩🏽' => 'wāhine mamau: kiri āhua parauri, kiri āhua waenga',
+    '👩🏿‍🫯‍👩🏾' => 'wāhine mamau: kiri āhua parauri, kiri āhua waenga-parauri',
     '👩🏻‍❤‍👨🏻' => 'tokorua me te manawa: wahine, tāne, kiri āhua māmā',
     '👩🏻‍❤‍👨🏼' => 'tokorua me te manawa: wahine, tāne, kiri āhua māmā, kiri āhua māmā-waenga',
     '👩🏻‍❤‍👨🏽' => 'tokorua me te manawa: wahine, tāne, kiri āhua māmā, kiri āhua waenga',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'tokorua me te manawa: wahine, wahine, kiri āhua parauri, kiri āhua waenga',
     '👩🏿‍❤‍👩🏾' => 'tokorua me te manawa: wahine, wahine, kiri āhua parauri, kiri āhua waenga-parauri',
     '👩🏿‍❤‍👩🏿' => 'tokorua me te manawa: wahine, wahine, kiri āhua parauri',
+    '👩🏻‍🐰‍👩🏼' => 'wāhine taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua māmā-waenga',
+    '👩🏻‍🐰‍👩🏽' => 'wāhine taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua waenga',
+    '👩🏻‍🐰‍👩🏾' => 'wāhine taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua waenga-parauri',
+    '👩🏻‍🐰‍👩🏿' => 'wāhine taringa rāpeti whakangahau: kiri āhua māmā, kiri āhua parauri',
+    '👩🏼‍🐰‍👩🏻' => 'wāhine taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua māmā',
+    '👩🏼‍🐰‍👩🏽' => 'wāhine taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua waenga',
+    '👩🏼‍🐰‍👩🏾' => 'wāhine taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua waenga-parauri',
+    '👩🏼‍🐰‍👩🏿' => 'wāhine taringa rāpeti whakangahau: kiri āhua māmā-waenga, kiri āhua parauri',
+    '👩🏽‍🐰‍👩🏻' => 'wāhine taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua māmā',
+    '👩🏽‍🐰‍👩🏼' => 'wāhine taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua māmā-waenga',
+    '👩🏽‍🐰‍👩🏾' => 'wāhine taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua waenga-parauri',
+    '👩🏽‍🐰‍👩🏿' => 'wāhine taringa rāpeti whakangahau: kiri āhua waenga, kiri āhua parauri',
+    '👩🏾‍🐰‍👩🏻' => 'wāhine taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua māmā',
+    '👩🏾‍🐰‍👩🏼' => 'wāhine taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua māmā-waenga',
+    '👩🏾‍🐰‍👩🏽' => 'wāhine taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua waenga',
+    '👩🏾‍🐰‍👩🏿' => 'wāhine taringa rāpeti whakangahau: kiri āhua waenga-parauri, kiri āhua parauri',
+    '👩🏿‍🐰‍👩🏻' => 'wāhine taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua māmā',
+    '👩🏿‍🐰‍👩🏼' => 'wāhine taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua māmā-waenga',
+    '👩🏿‍🐰‍👩🏽' => 'wāhine taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua waenga',
+    '👩🏿‍🐰‍👩🏾' => 'wāhine taringa rāpeti whakangahau: kiri āhua parauri, kiri āhua waenga-parauri',
     '👩🏻‍🤝‍👩🏼' => 'tokorua wāhine mau ringa: kiri āhua māmā, kiri āhua māmā-waenga',
     '👩🏻‍🤝‍👩🏽' => 'tokorua wāhine mau ringa: kiri āhua māmā, kiri āhua waenga',
     '👩🏻‍🤝‍👩🏾' => 'tokorua wāhine mau ringa: kiri āhua māmā, kiri āhua waenga-parauri',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'wahine oma: kiri āhua waenga',
     '🏃🏾‍♀' => 'wahine oma: kiri āhua waenga-parauri',
     '🏃🏿‍♀' => 'wahine oma: kiri āhua parauri',
+    '👯🏻‍♀' => 'wāhine taringa rāpeti whakangahau: kiri āhua māmā',
+    '👯🏼‍♀' => 'wāhine taringa rāpeti whakangahau: kiri āhua māmā-waenga',
+    '👯🏽‍♀' => 'wāhine taringa rāpeti whakangahau: kiri āhua waenga',
+    '👯🏾‍♀' => 'wāhine taringa rāpeti whakangahau: kiri āhua waenga-parauri',
+    '👯🏿‍♀' => 'wāhine taringa rāpeti whakangahau: kiri āhua parauri',
+    '👯🏻‍♂' => 'tāne taringa rāpeti whakangahau: kiri āhua māmā',
+    '👯🏼‍♂' => 'tāne taringa rāpeti whakangahau: kiri āhua māmā-waenga',
+    '👯🏽‍♂' => 'tāne taringa rāpeti whakangahau: kiri āhua waenga',
+    '👯🏾‍♂' => 'tāne taringa rāpeti whakangahau: kiri āhua waenga-parauri',
+    '👯🏿‍♂' => 'tāne taringa rāpeti whakangahau: kiri āhua parauri',
     '🧖🏻‍♂' => 'tāne rō taiwhanga mamaoa: kiri āhua māmā',
     '🧖🏼‍♂' => 'tāne rō taiwhanga mamaoa: kiri āhua māmā-waenga',
     '🧖🏽‍♂' => 'tāne rō taiwhanga mamaoa: kiri āhua waenga',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'wahine kātawīra: kiri āhua waenga',
     '🤸🏾‍♀' => 'wahine kātawīra: kiri āhua waenga-parauri',
     '🤸🏿‍♀' => 'wahine kātawīra: kiri āhua parauri',
+    '🤼🏻‍♀' => 'wāhine mamau: kiri āhua māmā',
+    '🤼🏼‍♀' => 'wāhine mamau: kiri āhua māmā-waenga',
+    '🤼🏽‍♀' => 'wāhine mamau: kiri āhua waenga',
+    '🤼🏾‍♀' => 'wāhine mamau: kiri āhua waenga-parauri',
+    '🤼🏿‍♀' => 'wāhine mamau: kiri āhua parauri',
+    '🤼🏻‍♂' => 'tāne mamau: kiri āhua māmā',
+    '🤼🏼‍♂' => 'tāne mamau: kiri āhua māmā-waenga',
+    '🤼🏽‍♂' => 'tāne mamau: kiri āhua waenga',
+    '🤼🏾‍♂' => 'tāne mamau: kiri āhua waenga-parauri',
+    '🤼🏿‍♂' => 'tāne mamau: kiri āhua parauri',
     '🤽🏻‍♂' => 'tāne tākaro poro wai: kiri āhua māmā',
     '🤽🏼‍♂' => 'tāne tākaro poro wai: kiri āhua māmā-waenga',
     '🤽🏽‍♂' => 'tāne tākaro poro wai: kiri āhua waenga',
@@ -1392,6 +1532,11 @@
     '🕴🏽' => 'tāne mau hūtu e rewa ana: kiri āhua waenga',
     '🕴🏾' => 'tāne mau hūtu e rewa ana: kiri āhua waenga-parauri',
     '🕴🏿' => 'tāne mau hūtu e rewa ana: kiri āhua parauri',
+    '👯🏻' => 'tāngata taringa rāpeti whakangahau: kiri āhua māmā',
+    '👯🏼' => 'tāngata taringa rāpeti whakangahau: kiri āhua māmā-waenga',
+    '👯🏽' => 'tāngata taringa rāpeti whakangahau: kiri āhua waenga',
+    '👯🏾' => 'tāngata taringa rāpeti whakangahau: kiri āhua waenga-parauri',
+    '👯🏿' => 'tāngata taringa rāpeti whakangahau: kiri āhua parauri',
     '🧖🏻' => 'tangata rō taiwhanga mamaoa: kiri āhua māmā',
     '🧖🏼' => 'tangata rō taiwhanga mamaoa: kiri āhua māmā-waenga',
     '🧖🏽' => 'tangata rō taiwhanga mamaoa: kiri āhua waenga',
@@ -1457,6 +1602,11 @@
     '🤸🏽' => 'tangata kātawīra: kiri āhua waenga',
     '🤸🏾' => 'tangata kātawīra: kiri āhua waenga-parauri',
     '🤸🏿' => 'tangata kātawīra: kiri āhua parauri',
+    '🤼🏻' => 'tāngata mamau: kiri āhua māmā',
+    '🤼🏼' => 'tāngata mamau: kiri āhua māmā-waenga',
+    '🤼🏽' => 'tāngata mamau: kiri āhua waenga',
+    '🤼🏾' => 'tāngata mamau: kiri āhua waenga-parauri',
+    '🤼🏿' => 'tāngata mamau: kiri āhua parauri',
     '🤽🏻' => 'tangata tākaro poro wai: kiri āhua māmā',
     '🤽🏼' => 'tangata tākaro poro wai: kiri āhua māmā-waenga',
     '🤽🏽' => 'tangata tākaro poro wai: kiri āhua waenga',
@@ -1529,7 +1679,7 @@
     '🇦🇼' => 'haki: Arūpa',
     '🇦🇽' => 'haki: Motu Ōrana',
     '🇦🇿' => 'haki: Atepaihānia',
-    '🇧🇦' => 'haki: Pōngia-Herekōwini',
+    '🇧🇦' => 'haki: Pōngia & Herekōwini',
     '🇧🇧' => 'haki: Papatohe',
     '🇧🇩' => 'haki: Pākaratēhi',
     '🇧🇪' => 'haki: Peretiama',
@@ -1563,6 +1713,7 @@
     '🇨🇳' => 'haki: Haina',
     '🇨🇴' => 'haki: Koromōpia',
     '🇨🇵' => 'haki: Te Moutere Kiripetone',
+    '🇨🇶' => 'haki: Hāka',
     '🇨🇷' => 'haki: Koto Rīka',
     '🇨🇺' => 'haki: Kiupa',
     '🇨🇻' => 'haki: Te Kūrae Matomato',
@@ -2116,6 +2267,9 @@
     '🦈' => 'mangō',
     '🐙' => 'wheke',
     '🐚' => 'anga tōrino',
+    '🦀' => 'pāpaka',
+    '🦐' => 'kōuraura',
+    '🦑' => 'ngū',
     '🐌' => 'hātaretare',
     '🦋' => 'pūrerehua',
     '🐛' => 'tātaka',
@@ -2217,9 +2371,6 @@
     '🥟' => 'parāoa kinikini',
     '🥠' => 'pihikete matapae',
     '🥡' => 'pouaka kaweatu',
-    '🦀' => 'pāpaka',
-    '🦐' => 'kōuraura',
-    '🦑' => 'ngū',
     '🍦' => 'aihikirīmi ngohengohe',
     '🍧' => 'huka heuheu',
     '🍨' => 'aihikirīmi',
@@ -2571,9 +2722,9 @@
     '🎧' => 'maupane',
     '📻' => 'irirangi',
     '🎷' => 'pūtohe',
+    '🎺' => 'pūawanui',
     '🎸' => 'kitā',
     '🎹' => 'papapurei puoro',
-    '🎺' => 'pūawanui',
     '🎻' => 'tōiri',
     '🥁' => 'pahū',
     '📱' => 'waea pūkoro',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mk.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'бакнеж: жена, жена, тип на кожа 6 и тип на кожа 4',
     '👩🏿‍❤‍💋‍👩🏾' => 'бакнеж: жена, жена, тип на кожа 6 и тип на кожа 5',
     '👩🏿‍❤‍💋‍👩🏿' => 'бакнеж: жена, жена и тип на кожа 6',
+    '🧑🏻‍🫯‍🧑🏼' => 'лица кои се борат: тип на кожа 1–2 и тип на кожа 3',
+    '🧑🏻‍🫯‍🧑🏽' => 'лица кои се борат: тип на кожа 1–2 и тип на кожа 4',
+    '🧑🏻‍🫯‍🧑🏾' => 'лица кои се борат: тип на кожа 1–2 и тип на кожа 5',
+    '🧑🏻‍🫯‍🧑🏿' => 'лица кои се борат: тип на кожа 1–2 и тип на кожа 6',
+    '🧑🏼‍🫯‍🧑🏻' => 'лица кои се борат: тип на кожа 3 и тип на кожа 1–2',
+    '🧑🏼‍🫯‍🧑🏽' => 'лица кои се борат: тип на кожа 3 и тип на кожа 4',
+    '🧑🏼‍🫯‍🧑🏾' => 'лица кои се борат: тип на кожа 3 и тип на кожа 5',
+    '🧑🏼‍🫯‍🧑🏿' => 'лица кои се борат: тип на кожа 3 и тип на кожа 6',
+    '🧑🏽‍🫯‍🧑🏻' => 'лица кои се борат: тип на кожа 4 и тип на кожа 1–2',
+    '🧑🏽‍🫯‍🧑🏼' => 'лица кои се борат: тип на кожа 4 и тип на кожа 3',
+    '🧑🏽‍🫯‍🧑🏾' => 'лица кои се борат: тип на кожа 4 и тип на кожа 5',
+    '🧑🏽‍🫯‍🧑🏿' => 'лица кои се борат: тип на кожа 4 и тип на кожа 6',
+    '🧑🏾‍🫯‍🧑🏻' => 'лица кои се борат: тип на кожа 5 и тип на кожа 1–2',
+    '🧑🏾‍🫯‍🧑🏼' => 'лица кои се борат: тип на кожа 5 и тип на кожа 3',
+    '🧑🏾‍🫯‍🧑🏽' => 'лица кои се борат: тип на кожа 5 и тип на кожа 4',
+    '🧑🏾‍🫯‍🧑🏿' => 'лица кои се борат: тип на кожа 5 и тип на кожа 6',
+    '🧑🏿‍🫯‍🧑🏻' => 'лица кои се борат: тип на кожа 6 и тип на кожа 1–2',
+    '🧑🏿‍🫯‍🧑🏼' => 'лица кои се борат: тип на кожа 6 и тип на кожа 3',
+    '🧑🏿‍🫯‍🧑🏽' => 'лица кои се борат: тип на кожа 6 и тип на кожа 4',
+    '🧑🏿‍🫯‍🧑🏾' => 'лица кои се борат: тип на кожа 6 и тип на кожа 5',
     '🧑🏻‍❤‍🧑🏼' => 'пар со срце: возрасно лице, возрасно лице, тип на кожа 1–2 и тип на кожа 3',
     '🧑🏻‍❤‍🧑🏽' => 'пар со срце: возрасно лице, возрасно лице, тип на кожа 1–2 и тип на кожа 4',
     '🧑🏻‍❤‍🧑🏾' => 'пар со срце: возрасно лице, возрасно лице, тип на кожа 1–2 и тип на кожа 5',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'пар со срце: возрасно лице, возрасно лице, тип на кожа 6 и тип на кожа 3',
     '🧑🏿‍❤‍🧑🏽' => 'пар со срце: возрасно лице, возрасно лице, тип на кожа 6 и тип на кожа 4',
     '🧑🏿‍❤‍🧑🏾' => 'пар со срце: возрасно лице, возрасно лице, тип на кожа 6 и тип на кожа 5',
+    '🧑🏻‍🐰‍🧑🏼' => 'лица кои се забавуваат: тип на кожа 1–2 и тип на кожа 3',
+    '🧑🏻‍🐰‍🧑🏽' => 'лица кои се забавуваат: тип на кожа 1–2 и тип на кожа 4',
+    '🧑🏻‍🐰‍🧑🏾' => 'лица кои се забавуваат: тип на кожа 1–2 и тип на кожа 5',
+    '🧑🏻‍🐰‍🧑🏿' => 'лица кои се забавуваат: тип на кожа 1–2 и тип на кожа 6',
+    '🧑🏼‍🐰‍🧑🏻' => 'лица кои се забавуваат: тип на кожа 3 и тип на кожа 1–2',
+    '🧑🏼‍🐰‍🧑🏽' => 'лица кои се забавуваат: тип на кожа 3 и тип на кожа 4',
+    '🧑🏼‍🐰‍🧑🏾' => 'лица кои се забавуваат: тип на кожа 3 и тип на кожа 5',
+    '🧑🏼‍🐰‍🧑🏿' => 'лица кои се забавуваат: тип на кожа 3 и тип на кожа 6',
+    '🧑🏽‍🐰‍🧑🏻' => 'лица кои се забавуваат: тип на кожа 4 и тип на кожа 1–2',
+    '🧑🏽‍🐰‍🧑🏼' => 'лица кои се забавуваат: тип на кожа 4 и тип на кожа 3',
+    '🧑🏽‍🐰‍🧑🏾' => 'лица кои се забавуваат: тип на кожа 4 и тип на кожа 5',
+    '🧑🏽‍🐰‍🧑🏿' => 'лица кои се забавуваат: тип на кожа 4 и тип на кожа 6',
+    '🧑🏾‍🐰‍🧑🏻' => 'лица кои се забавуваат: тип на кожа 5 и тип на кожа 1–2',
+    '🧑🏾‍🐰‍🧑🏼' => 'лица кои се забавуваат: тип на кожа 5 и тип на кожа 3',
+    '🧑🏾‍🐰‍🧑🏽' => 'лица кои се забавуваат: тип на кожа 5 и тип на кожа 4',
+    '🧑🏾‍🐰‍🧑🏿' => 'лица кои се забавуваат: тип на кожа 5 и тип на кожа 6',
+    '🧑🏿‍🐰‍🧑🏻' => 'лица кои се забавуваат: тип на кожа 6 и тип на кожа 1–2',
+    '🧑🏿‍🐰‍🧑🏼' => 'лица кои се забавуваат: тип на кожа 6 и тип на кожа 3',
+    '🧑🏿‍🐰‍🧑🏽' => 'лица кои се забавуваат: тип на кожа 6 и тип на кожа 4',
+    '🧑🏿‍🐰‍🧑🏾' => 'лица кои се забавуваат: тип на кожа 6 и тип на кожа 5',
+    '👨🏻‍🫯‍👨🏼' => 'борачи: тип на кожа 1–2 и тип на кожа 3',
+    '👨🏻‍🫯‍👨🏽' => 'борачи: тип на кожа 1–2 и тип на кожа 4',
+    '👨🏻‍🫯‍👨🏾' => 'борачи: тип на кожа 1–2 и тип на кожа 5',
+    '👨🏻‍🫯‍👨🏿' => 'борачи: тип на кожа 1–2 и тип на кожа 6',
+    '👨🏼‍🫯‍👨🏻' => 'борачи: тип на кожа 3 и тип на кожа 1–2',
+    '👨🏼‍🫯‍👨🏽' => 'борачи: тип на кожа 3 и тип на кожа 4',
+    '👨🏼‍🫯‍👨🏾' => 'борачи: тип на кожа 3 и тип на кожа 5',
+    '👨🏼‍🫯‍👨🏿' => 'борачи: тип на кожа 3 и тип на кожа 6',
+    '👨🏽‍🫯‍👨🏻' => 'борачи: тип на кожа 4 и тип на кожа 1–2',
+    '👨🏽‍🫯‍👨🏼' => 'борачи: тип на кожа 4 и тип на кожа 3',
+    '👨🏽‍🫯‍👨🏾' => 'борачи: тип на кожа 4 и тип на кожа 5',
+    '👨🏽‍🫯‍👨🏿' => 'борачи: тип на кожа 4 и тип на кожа 6',
+    '👨🏾‍🫯‍👨🏻' => 'борачи: тип на кожа 5 и тип на кожа 1–2',
+    '👨🏾‍🫯‍👨🏼' => 'борачи: тип на кожа 5 и тип на кожа 3',
+    '👨🏾‍🫯‍👨🏽' => 'борачи: тип на кожа 5 и тип на кожа 4',
+    '👨🏾‍🫯‍👨🏿' => 'борачи: тип на кожа 5 и тип на кожа 6',
+    '👨🏿‍🫯‍👨🏻' => 'борачи: тип на кожа 6 и тип на кожа 1–2',
+    '👨🏿‍🫯‍👨🏼' => 'борачи: тип на кожа 6 и тип на кожа 3',
+    '👨🏿‍🫯‍👨🏽' => 'борачи: тип на кожа 6 и тип на кожа 4',
+    '👨🏿‍🫯‍👨🏾' => 'борачи: тип на кожа 6 и тип на кожа 5',
     '👨🏻‍❤‍👨🏻' => 'пар со срце: маж, маж и тип на кожа 1–2',
     '👨🏻‍❤‍👨🏼' => 'пар со срце: маж, маж, тип на кожа 1–2 и тип на кожа 3',
     '👨🏻‍❤‍👨🏽' => 'пар со срце: маж, маж, тип на кожа 1–2 и тип на кожа 4',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'пар со срце: маж, маж, тип на кожа 6 и тип на кожа 4',
     '👨🏿‍❤‍👨🏾' => 'пар со срце: маж, маж, тип на кожа 6 и тип на кожа 5',
     '👨🏿‍❤‍👨🏿' => 'пар со срце: маж, маж и тип на кожа 6',
+    '👨🏻‍🐰‍👨🏼' => 'мажи кои се забавуваат: тип на кожа 1–2 и тип на кожа 3',
+    '👨🏻‍🐰‍👨🏽' => 'мажи кои се забавуваат: тип на кожа 1–2 и тип на кожа 4',
+    '👨🏻‍🐰‍👨🏾' => 'мажи кои се забавуваат: тип на кожа 1–2 и тип на кожа 5',
+    '👨🏻‍🐰‍👨🏿' => 'мажи кои се забавуваат: тип на кожа 1–2 и тип на кожа 6',
+    '👨🏼‍🐰‍👨🏻' => 'мажи кои се забавуваат: тип на кожа 3 и тип на кожа 1–2',
+    '👨🏼‍🐰‍👨🏽' => 'мажи кои се забавуваат: тип на кожа 3 и тип на кожа 4',
+    '👨🏼‍🐰‍👨🏾' => 'мажи кои се забавуваат: тип на кожа 3 и тип на кожа 5',
+    '👨🏼‍🐰‍👨🏿' => 'мажи кои се забавуваат: тип на кожа 3 и тип на кожа 6',
+    '👨🏽‍🐰‍👨🏻' => 'мажи кои се забавуваат: тип на кожа 4 и тип на кожа 1–2',
+    '👨🏽‍🐰‍👨🏼' => 'мажи кои се забавуваат: тип на кожа 4 и тип на кожа 3',
+    '👨🏽‍🐰‍👨🏾' => 'мажи кои се забавуваат: тип на кожа 4 и тип на кожа 5',
+    '👨🏽‍🐰‍👨🏿' => 'мажи кои се забавуваат: тип на кожа 4 и тип на кожа 6',
+    '👨🏾‍🐰‍👨🏻' => 'мажи кои се забавуваат: тип на кожа 5 и тип на кожа 1–2',
+    '👨🏾‍🐰‍👨🏼' => 'мажи кои се забавуваат: тип на кожа 5 и тип на кожа 3',
+    '👨🏾‍🐰‍👨🏽' => 'мажи кои се забавуваат: тип на кожа 5 и тип на кожа 4',
+    '👨🏾‍🐰‍👨🏿' => 'мажи кои се забавуваат: тип на кожа 5 и тип на кожа 6',
+    '👨🏿‍🐰‍👨🏻' => 'мажи кои се забавуваат: тип на кожа 6 и тип на кожа 1–2',
+    '👨🏿‍🐰‍👨🏼' => 'мажи кои се забавуваат: тип на кожа 6 и тип на кожа 3',
+    '👨🏿‍🐰‍👨🏽' => 'мажи кои се забавуваат: тип на кожа 6 и тип на кожа 4',
+    '👨🏿‍🐰‍👨🏾' => 'мажи кои се забавуваат: тип на кожа 6 и тип на кожа 5',
+    '👩🏻‍🫯‍👩🏼' => 'борачки: тип на кожа 1–2 и тип на кожа 3',
+    '👩🏻‍🫯‍👩🏽' => 'борачки: тип на кожа 1–2 и тип на кожа 4',
+    '👩🏻‍🫯‍👩🏾' => 'борачки: тип на кожа 1–2 и тип на кожа 5',
+    '👩🏻‍🫯‍👩🏿' => 'борачки: тип на кожа 1–2 и тип на кожа 6',
+    '👩🏼‍🫯‍👩🏻' => 'борачки: тип на кожа 3 и тип на кожа 1–2',
+    '👩🏼‍🫯‍👩🏽' => 'борачки: тип на кожа 3 и тип на кожа 4',
+    '👩🏼‍🫯‍👩🏾' => 'борачки: тип на кожа 3 и тип на кожа 5',
+    '👩🏼‍🫯‍👩🏿' => 'борачки: тип на кожа 3 и тип на кожа 6',
+    '👩🏽‍🫯‍👩🏻' => 'борачки: тип на кожа 4 и тип на кожа 1–2',
+    '👩🏽‍🫯‍👩🏼' => 'борачки: тип на кожа 4 и тип на кожа 3',
+    '👩🏽‍🫯‍👩🏾' => 'борачки: тип на кожа 4 и тип на кожа 5',
+    '👩🏽‍🫯‍👩🏿' => 'борачки: тип на кожа 4 и тип на кожа 6',
+    '👩🏾‍🫯‍👩🏻' => 'борачки: тип на кожа 5 и тип на кожа 1–2',
+    '👩🏾‍🫯‍👩🏼' => 'борачки: тип на кожа 5 и тип на кожа 3',
+    '👩🏾‍🫯‍👩🏽' => 'борачки: тип на кожа 5 и тип на кожа 4',
+    '👩🏾‍🫯‍👩🏿' => 'борачки: тип на кожа 5 и тип на кожа 6',
+    '👩🏿‍🫯‍👩🏻' => 'борачки: тип на кожа 6 и тип на кожа 1–2',
+    '👩🏿‍🫯‍👩🏼' => 'борачки: тип на кожа 6 и тип на кожа 3',
+    '👩🏿‍🫯‍👩🏽' => 'борачки: тип на кожа 6 и тип на кожа 4',
+    '👩🏿‍🫯‍👩🏾' => 'борачки: тип на кожа 6 и тип на кожа 5',
     '👩🏻‍❤‍👨🏻' => 'пар со срце: жена, маж и тип на кожа 1–2',
     '👩🏻‍❤‍👨🏼' => 'пар со срце: жена, маж, тип на кожа 1–2 и тип на кожа 3',
     '👩🏻‍❤‍👨🏽' => 'пар со срце: жена, маж, тип на кожа 1–2 и тип на кожа 4',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'пар со срце: жена, жена, тип на кожа 6 и тип на кожа 4',
     '👩🏿‍❤‍👩🏾' => 'пар со срце: жена, жена, тип на кожа 6 и тип на кожа 5',
     '👩🏿‍❤‍👩🏿' => 'пар со срце: жена, жена и тип на кожа 6',
+    '👩🏻‍🐰‍👩🏼' => 'жени кои се забавуваат: тип на кожа 1–2 и тип на кожа 3',
+    '👩🏻‍🐰‍👩🏽' => 'жени кои се забавуваат: тип на кожа 1–2 и тип на кожа 4',
+    '👩🏻‍🐰‍👩🏾' => 'жени кои се забавуваат: тип на кожа 1–2 и тип на кожа 5',
+    '👩🏻‍🐰‍👩🏿' => 'жени кои се забавуваат: тип на кожа 1–2 и тип на кожа 6',
+    '👩🏼‍🐰‍👩🏻' => 'жени кои се забавуваат: тип на кожа 3 и тип на кожа 1–2',
+    '👩🏼‍🐰‍👩🏽' => 'жени кои се забавуваат: тип на кожа 3 и тип на кожа 4',
+    '👩🏼‍🐰‍👩🏾' => 'жени кои се забавуваат: тип на кожа 3 и тип на кожа 5',
+    '👩🏼‍🐰‍👩🏿' => 'жени кои се забавуваат: тип на кожа 3 и тип на кожа 6',
+    '👩🏽‍🐰‍👩🏻' => 'жени кои се забавуваат: тип на кожа 4 и тип на кожа 1–2',
+    '👩🏽‍🐰‍👩🏼' => 'жени кои се забавуваат: тип на кожа 4 и тип на кожа 3',
+    '👩🏽‍🐰‍👩🏾' => 'жени кои се забавуваат: тип на кожа 4 и тип на кожа 5',
+    '👩🏽‍🐰‍👩🏿' => 'жени кои се забавуваат: тип на кожа 4 и тип на кожа 6',
+    '👩🏾‍🐰‍👩🏻' => 'жени кои се забавуваат: тип на кожа 5 и тип на кожа 1–2',
+    '👩🏾‍🐰‍👩🏼' => 'жени кои се забавуваат: тип на кожа 5 и тип на кожа 3',
+    '👩🏾‍🐰‍👩🏽' => 'жени кои се забавуваат: тип на кожа 5 и тип на кожа 4',
+    '👩🏾‍🐰‍👩🏿' => 'жени кои се забавуваат: тип на кожа 5 и тип на кожа 6',
+    '👩🏿‍🐰‍👩🏻' => 'жени кои се забавуваат: тип на кожа 6 и тип на кожа 1–2',
+    '👩🏿‍🐰‍👩🏼' => 'жени кои се забавуваат: тип на кожа 6 и тип на кожа 3',
+    '👩🏿‍🐰‍👩🏽' => 'жени кои се забавуваат: тип на кожа 6 и тип на кожа 4',
+    '👩🏿‍🐰‍👩🏾' => 'жени кои се забавуваат: тип на кожа 6 и тип на кожа 5',
     '🧑🏻‍🤝‍🧑🏻' => 'луѓе се држат за раце: тип на кожа 1–2',
     '🧑🏻‍🤝‍🧑🏼' => 'луѓе се држат за раце: тип на кожа 1–2 и тип на кожа 3',
     '🧑🏻‍🤝‍🧑🏽' => 'луѓе се држат за раце: тип на кожа 1–2 и тип на кожа 4',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'знаме: Шкотска',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'знаме: Велс',
     '🧑‍🧑‍🧒‍🧒' => 'семејство: возрасен, возрасно лице, дете, дете',
-    '🚶🏻‍♀‍➡' => 'жена пешачи кон десно',
-    '🚶🏼‍♀‍➡' => 'жена пешачи кон десно',
-    '🚶🏽‍♀‍➡' => 'жена пешачи кон десно',
-    '🚶🏾‍♀‍➡' => 'жена пешачи кон десно',
-    '🚶🏿‍♀‍➡' => 'жена пешачи кон десно',
-    '🚶🏻‍♂‍➡' => 'маж пешачи кон десно',
-    '🚶🏼‍♂‍➡' => 'маж пешачи кон десно',
-    '🚶🏽‍♂‍➡' => 'маж пешачи кон десно',
-    '🚶🏾‍♂‍➡' => 'маж пешачи кон десно',
-    '🚶🏿‍♂‍➡' => 'маж пешачи кон десно',
-    '🧎🏻‍♀‍➡' => 'жена која клечи кон десно',
-    '🧎🏼‍♀‍➡' => 'жена која клечи кон десно',
-    '🧎🏽‍♀‍➡' => 'жена која клечи кон десно',
-    '🧎🏾‍♀‍➡' => 'жена која клечи кон десно',
-    '🧎🏿‍♀‍➡' => 'жена која клечи кон десно',
-    '🧎🏻‍♂‍➡' => 'маж кој клечи кон десно',
-    '🧎🏼‍♂‍➡' => 'маж кој клечи кон десно',
-    '🧎🏽‍♂‍➡' => 'маж кој клечи кон десно',
-    '🧎🏾‍♂‍➡' => 'маж кој клечи кон десно',
-    '🧎🏿‍♂‍➡' => 'маж кој клечи кон десно',
-    '🧑🏻‍🦯‍➡' => 'лице со стап за слепи кон десно',
-    '🧑🏼‍🦯‍➡' => 'лице со стап за слепи кон десно',
-    '🧑🏽‍🦯‍➡' => 'лице со стап за слепи кон десно',
-    '🧑🏾‍🦯‍➡' => 'лице со стап за слепи кон десно',
-    '🧑🏿‍🦯‍➡' => 'лице со стап за слепи кон десно',
-    '👨🏻‍🦯‍➡' => 'маж со стап за слепи кон десно',
-    '👨🏼‍🦯‍➡' => 'маж со стап за слепи кон десно',
-    '👨🏽‍🦯‍➡' => 'маж со стап за слепи кон десно',
-    '👨🏾‍🦯‍➡' => 'маж со стап за слепи кон десно',
-    '👨🏿‍🦯‍➡' => 'маж со стап за слепи кон десно',
-    '👩🏻‍🦯‍➡' => 'жена со стап за слепи кон десно',
-    '👩🏼‍🦯‍➡' => 'жена со стап за слепи кон десно',
-    '👩🏽‍🦯‍➡' => 'жена со стап за слепи кон десно',
-    '👩🏾‍🦯‍➡' => 'жена со стап за слепи кон десно',
-    '👩🏿‍🦯‍➡' => 'жена со стап за слепи кон десно',
-    '🧑🏻‍🦼‍➡' => 'лице во моторизирана количка кон десно',
-    '🧑🏼‍🦼‍➡' => 'лице во моторизирана количка кон десно',
-    '🧑🏽‍🦼‍➡' => 'лице во моторизирана количка кон десно',
-    '🧑🏾‍🦼‍➡' => 'лице во моторизирана количка кон десно',
-    '🧑🏿‍🦼‍➡' => 'лице во моторизирана количка кон десно',
-    '👨🏻‍🦼‍➡' => 'маж во моторизирана количка кон десно',
-    '👨🏼‍🦼‍➡' => 'маж во моторизирана количка кон десно',
-    '👨🏽‍🦼‍➡' => 'маж во моторизирана количка кон десно',
-    '👨🏾‍🦼‍➡' => 'маж во моторизирана количка кон десно',
-    '👨🏿‍🦼‍➡' => 'маж во моторизирана количка кон десно',
-    '👩🏻‍🦼‍➡' => 'жена во моторизирана количка кон десно',
-    '👩🏼‍🦼‍➡' => 'жена во моторизирана количка кон десно',
-    '👩🏽‍🦼‍➡' => 'жена во моторизирана количка кон десно',
-    '👩🏾‍🦼‍➡' => 'жена во моторизирана количка кон десно',
-    '👩🏿‍🦼‍➡' => 'жена во моторизирана количка кон десно',
-    '🧑🏻‍🦽‍➡' => 'лице во рачна инвалидска количка кон десно',
-    '🧑🏼‍🦽‍➡' => 'лице во рачна инвалидска количка кон десно',
-    '🧑🏽‍🦽‍➡' => 'лице во рачна инвалидска количка кон десно',
-    '🧑🏾‍🦽‍➡' => 'лице во рачна инвалидска количка кон десно',
-    '🧑🏿‍🦽‍➡' => 'лице во рачна инвалидска количка кон десно',
-    '👨🏻‍🦽‍➡' => 'маж во рачна инвалидска количка кон десно',
-    '👨🏼‍🦽‍➡' => 'маж во рачна инвалидска количка кон десно',
-    '👨🏽‍🦽‍➡' => 'маж во рачна инвалидска количка кон десно',
-    '👨🏾‍🦽‍➡' => 'маж во рачна инвалидска количка кон десно',
-    '👨🏿‍🦽‍➡' => 'маж во рачна инвалидска количка кон десно',
-    '👩🏻‍🦽‍➡' => 'жена во рачна инвалидска количка кон десно',
-    '👩🏼‍🦽‍➡' => 'жена во рачна инвалидска количка кон десно',
-    '👩🏽‍🦽‍➡' => 'жена во рачна инвалидска количка кон десно',
-    '👩🏾‍🦽‍➡' => 'жена во рачна инвалидска количка кон десно',
-    '👩🏿‍🦽‍➡' => 'жена во рачна инвалидска количка кон десно',
-    '🏃🏻‍♀‍➡' => 'жена трча кон десно',
-    '🏃🏼‍♀‍➡' => 'жена трча кон десно',
-    '🏃🏽‍♀‍➡' => 'жена трча кон десно',
-    '🏃🏾‍♀‍➡' => 'жена трча кон десно',
-    '🏃🏿‍♀‍➡' => 'жена трча кон десно',
-    '🏃🏻‍♂‍➡' => 'маж трча кон десно',
-    '🏃🏼‍♂‍➡' => 'маж трча кон десно',
-    '🏃🏽‍♂‍➡' => 'маж трча кон десно',
-    '🏃🏾‍♂‍➡' => 'маж трча кон десно',
-    '🏃🏿‍♂‍➡' => 'маж трча кон десно',
+    '🚶🏻‍♀‍➡' => 'жена пешачи: тип на кожа 1–2 и кон десно',
+    '🚶🏼‍♀‍➡' => 'жена пешачи: тип на кожа 3 и кон десно',
+    '🚶🏽‍♀‍➡' => 'жена пешачи: тип на кожа 4 и кон десно',
+    '🚶🏾‍♀‍➡' => 'жена пешачи: тип на кожа 5 и кон десно',
+    '🚶🏿‍♀‍➡' => 'жена пешачи: тип на кожа 6 и кон десно',
+    '🚶🏻‍♂‍➡' => 'маж пешачи: тип на кожа 1–2 и кон десно',
+    '🚶🏼‍♂‍➡' => 'маж пешачи: тип на кожа 3 и кон десно',
+    '🚶🏽‍♂‍➡' => 'маж пешачи: тип на кожа 4 и кон десно',
+    '🚶🏾‍♂‍➡' => 'маж пешачи: тип на кожа 5 и кон десно',
+    '🚶🏿‍♂‍➡' => 'маж пешачи: тип на кожа 6 и кон десно',
+    '🧎🏻‍♀‍➡' => 'жена која клечи: тип на кожа 1–2 и кон десно',
+    '🧎🏼‍♀‍➡' => 'жена која клечи: тип на кожа 3 и кон десно',
+    '🧎🏽‍♀‍➡' => 'жена која клечи: тип на кожа 4 и кон десно',
+    '🧎🏾‍♀‍➡' => 'жена која клечи: тип на кожа 5 и кон десно',
+    '🧎🏿‍♀‍➡' => 'жена која клечи: тип на кожа 6 и кон десно',
+    '🧎🏻‍♂‍➡' => 'маж кој клечи: тип на кожа 1–2 и кон десно',
+    '🧎🏼‍♂‍➡' => 'маж кој клечи: тип на кожа 3 и кон десно',
+    '🧎🏽‍♂‍➡' => 'маж кој клечи: тип на кожа 4 и кон десно',
+    '🧎🏾‍♂‍➡' => 'маж кој клечи: тип на кожа 5 и кон десно',
+    '🧎🏿‍♂‍➡' => 'маж кој клечи: тип на кожа 6 и кон десно',
+    '🧑🏻‍🦯‍➡' => 'лице со стап за слепи: тип на кожа 1–2 и кон десно',
+    '🧑🏼‍🦯‍➡' => 'лице со стап за слепи: тип на кожа 3 и кон десно',
+    '🧑🏽‍🦯‍➡' => 'лице со стап за слепи: тип на кожа 4 и кон десно',
+    '🧑🏾‍🦯‍➡' => 'лице со стап за слепи: тип на кожа 5 и кон десно',
+    '🧑🏿‍🦯‍➡' => 'лице со стап за слепи: тип на кожа 6 и кон десно',
+    '👨🏻‍🦯‍➡' => 'маж со стап за слепи: тип на кожа 1–2 и кон десно',
+    '👨🏼‍🦯‍➡' => 'маж со стап за слепи: тип на кожа 3 и кон десно',
+    '👨🏽‍🦯‍➡' => 'маж со стап за слепи: тип на кожа 4 и кон десно',
+    '👨🏾‍🦯‍➡' => 'маж со стап за слепи: тип на кожа 5 и кон десно',
+    '👨🏿‍🦯‍➡' => 'маж со стап за слепи: тип на кожа 6 и кон десно',
+    '👩🏻‍🦯‍➡' => 'жена со стап за слепи: тип на кожа 1–2 и кон десно',
+    '👩🏼‍🦯‍➡' => 'жена со стап за слепи: тип на кожа 3 и кон десно',
+    '👩🏽‍🦯‍➡' => 'жена со стап за слепи: тип на кожа 4 и кон десно',
+    '👩🏾‍🦯‍➡' => 'жена со стап за слепи: тип на кожа 5 и кон десно',
+    '👩🏿‍🦯‍➡' => 'жена со стап за слепи: тип на кожа 6 и кон десно',
+    '🧑🏻‍🦼‍➡' => 'лице во моторизирана количка: тип на кожа 1–2 и кон десно',
+    '🧑🏼‍🦼‍➡' => 'лице во моторизирана количка: тип на кожа 3 и кон десно',
+    '🧑🏽‍🦼‍➡' => 'лице во моторизирана количка: тип на кожа 4 и кон десно',
+    '🧑🏾‍🦼‍➡' => 'лице во моторизирана количка: тип на кожа 5 и кон десно',
+    '🧑🏿‍🦼‍➡' => 'лице во моторизирана количка: тип на кожа 6 и кон десно',
+    '👨🏻‍🦼‍➡' => 'маж во моторизирана количка: тип на кожа 1–2 и кон десно',
+    '👨🏼‍🦼‍➡' => 'маж во моторизирана количка: тип на кожа 3 и кон десно',
+    '👨🏽‍🦼‍➡' => 'маж во моторизирана количка: тип на кожа 4 и кон десно',
+    '👨🏾‍🦼‍➡' => 'маж во моторизирана количка: тип на кожа 5 и кон десно',
+    '👨🏿‍🦼‍➡' => 'маж во моторизирана количка: тип на кожа 6 и кон десно',
+    '👩🏻‍🦼‍➡' => 'жена во моторизирана количка: тип на кожа 1–2 и кон десно',
+    '👩🏼‍🦼‍➡' => 'жена во моторизирана количка: тип на кожа 3 и кон десно',
+    '👩🏽‍🦼‍➡' => 'жена во моторизирана количка: тип на кожа 4 и кон десно',
+    '👩🏾‍🦼‍➡' => 'жена во моторизирана количка: тип на кожа 5 и кон десно',
+    '👩🏿‍🦼‍➡' => 'жена во моторизирана количка: тип на кожа 6 и кон десно',
+    '🧑🏻‍🦽‍➡' => 'лице во рачна инвалидска количка: тип на кожа 1–2 и кон десно',
+    '🧑🏼‍🦽‍➡' => 'лице во рачна инвалидска количка: тип на кожа 3 и кон десно',
+    '🧑🏽‍🦽‍➡' => 'лице во рачна инвалидска количка: тип на кожа 4 и кон десно',
+    '🧑🏾‍🦽‍➡' => 'лице во рачна инвалидска количка: тип на кожа 5 и кон десно',
+    '🧑🏿‍🦽‍➡' => 'лице во рачна инвалидска количка: тип на кожа 6 и кон десно',
+    '👨🏻‍🦽‍➡' => 'маж во рачна инвалидска количка: тип на кожа 1–2 и кон десно',
+    '👨🏼‍🦽‍➡' => 'маж во рачна инвалидска количка: тип на кожа 3 и кон десно',
+    '👨🏽‍🦽‍➡' => 'маж во рачна инвалидска количка: тип на кожа 4 и кон десно',
+    '👨🏾‍🦽‍➡' => 'маж во рачна инвалидска количка: тип на кожа 5 и кон десно',
+    '👨🏿‍🦽‍➡' => 'маж во рачна инвалидска количка: тип на кожа 6 и кон десно',
+    '👩🏻‍🦽‍➡' => 'жена во рачна инвалидска количка: тип на кожа 1–2 и кон десно',
+    '👩🏼‍🦽‍➡' => 'жена во рачна инвалидска количка: тип на кожа 3 и кон десно',
+    '👩🏽‍🦽‍➡' => 'жена во рачна инвалидска количка: тип на кожа 4 и кон десно',
+    '👩🏾‍🦽‍➡' => 'жена во рачна инвалидска количка: тип на кожа 5 и кон десно',
+    '👩🏿‍🦽‍➡' => 'жена во рачна инвалидска количка: тип на кожа 6 и кон десно',
+    '🏃🏻‍♀‍➡' => 'жена трча: тип на кожа 1–2 и кон десно',
+    '🏃🏼‍♀‍➡' => 'жена трча: тип на кожа 3 и кон десно',
+    '🏃🏽‍♀‍➡' => 'жена трча: тип на кожа 4 и кон десно',
+    '🏃🏾‍♀‍➡' => 'жена трча: тип на кожа 5 и кон десно',
+    '🏃🏿‍♀‍➡' => 'жена трча: тип на кожа 6 и кон десно',
+    '🏃🏻‍♂‍➡' => 'маж трча: тип на кожа 1–2 и кон десно',
+    '🏃🏼‍♂‍➡' => 'маж трча: тип на кожа 3 и кон десно',
+    '🏃🏽‍♂‍➡' => 'маж трча: тип на кожа 4 и кон десно',
+    '🏃🏾‍♂‍➡' => 'маж трча: тип на кожа 5 и кон десно',
+    '🏃🏿‍♂‍➡' => 'маж трча: тип на кожа 6 и кон десно',
     '🫱🏻‍🫲🏼' => 'ракување: тип на кожа 1–2 и тип на кожа 3',
     '🫱🏻‍🫲🏽' => 'ракување: тип на кожа 1–2 и тип на кожа 4',
     '🫱🏻‍🫲🏾' => 'ракување: тип на кожа 1–2 и тип на кожа 5',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ракување: тип на кожа 6 и тип на кожа 3',
     '🫱🏿‍🫲🏽' => 'ракување: тип на кожа 6 и тип на кожа 4',
     '🫱🏿‍🫲🏾' => 'ракување: тип на кожа 6 и тип на кожа 5',
-    '🚶‍♀‍➡' => 'жена пешачи кон десно',
-    '🚶‍♂‍➡' => 'маж пешачи кон десно',
-    '🧎‍♀‍➡' => 'жена која клечи кон десно',
-    '🧎‍♂‍➡' => 'маж кој клечи кон десно',
-    '🧑‍🦯‍➡' => 'лице со стап за слепи кон десно',
-    '👨‍🦯‍➡' => 'маж со стап за слепи кон десно',
-    '👩‍🦯‍➡' => 'жена со стап за слепи кон десно',
-    '🧑‍🦼‍➡' => 'лице во моторизирана количка кон десно',
-    '👨‍🦼‍➡' => 'маж во моторизирана количка кон десно',
-    '👩‍🦼‍➡' => 'жена во моторизирана количка кон десно',
-    '🧑‍🦽‍➡' => 'лице во рачна инвалидска количка кон десно',
-    '👨‍🦽‍➡' => 'маж во рачна инвалидска количка кон десно',
-    '👩‍🦽‍➡' => 'жена во рачна инвалидска количка кон десно',
-    '🏃‍♀‍➡' => 'жена трча кон десно',
-    '🏃‍♂‍➡' => 'маж трча кон десно',
+    '🚶‍♀‍➡' => 'жена пешачи: кон десно',
+    '🚶‍♂‍➡' => 'маж пешачи: кон десно',
+    '🧎‍♀‍➡' => 'жена која клечи: кон десно',
+    '🧎‍♂‍➡' => 'маж кој клечи: кон десно',
+    '🧑‍🦯‍➡' => 'лице со стап за слепи: кон десно',
+    '👨‍🦯‍➡' => 'маж со стап за слепи: кон десно',
+    '👩‍🦯‍➡' => 'жена со стап за слепи: кон десно',
+    '🧑‍🦼‍➡' => 'лице во моторизирана количка: кон десно',
+    '👨‍🦼‍➡' => 'маж во моторизирана количка: кон десно',
+    '👩‍🦼‍➡' => 'жена во моторизирана количка: кон десно',
+    '🧑‍🦽‍➡' => 'лице во рачна инвалидска количка: кон десно',
+    '👨‍🦽‍➡' => 'маж во рачна инвалидска количка: кон десно',
+    '👩‍🦽‍➡' => 'жена во рачна инвалидска количка: кон десно',
+    '🏃‍♀‍➡' => 'жена трча: кон десно',
+    '🏃‍♂‍➡' => 'маж трча: кон десно',
     '👩‍❤‍👨' => 'пар со срце: жена и маж',
     '👨‍❤‍👨' => 'пар со срце: маж и маж',
     '👩‍❤‍👩' => 'пар со срце: жена и жена',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'возрасно лице: тип на кожа 4 и ќелав',
     '🧑🏾‍🦲' => 'возрасно лице: тип на кожа 5 и ќелав',
     '🧑🏿‍🦲' => 'возрасно лице: тип на кожа 6 и ќелав',
+    '🧑🏻‍🩰' => 'балерина: тип на кожа 1–2',
+    '🧑🏼‍🩰' => 'балерина: тип на кожа 3',
+    '🧑🏽‍🩰' => 'балерина: тип на кожа 4',
+    '🧑🏾‍🩰' => 'балерина: тип на кожа 5',
+    '🧑🏿‍🩰' => 'балерина: тип на кожа 6',
     '🧔🏻‍♂' => 'маж: тип на кожа 1–2 и брада',
     '🧔🏼‍♂' => 'маж: тип на кожа 3 и брада',
     '🧔🏽‍♂' => 'маж: тип на кожа 4 и брада',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'жена пешачи: тип на кожа 4',
     '🚶🏾‍♀' => 'жена пешачи: тип на кожа 5',
     '🚶🏿‍♀' => 'жена пешачи: тип на кожа 6',
-    '🚶🏻‍➡' => 'лице пешачи кон десно',
-    '🚶🏼‍➡' => 'лице пешачи кон десно',
-    '🚶🏽‍➡' => 'лице пешачи кон десно',
-    '🚶🏾‍➡' => 'лице пешачи кон десно',
-    '🚶🏿‍➡' => 'лице пешачи кон десно',
+    '🚶🏻‍➡' => 'лице пешачи: тип на кожа 1–2 и кон десно',
+    '🚶🏼‍➡' => 'лице пешачи: тип на кожа 3 и кон десно',
+    '🚶🏽‍➡' => 'лице пешачи: тип на кожа 4 и кон десно',
+    '🚶🏾‍➡' => 'лице пешачи: тип на кожа 5 и кон десно',
+    '🚶🏿‍➡' => 'лице пешачи: тип на кожа 6 и кон десно',
     '🧍🏻‍♂' => 'маж кој стои: тип на кожа 1–2',
     '🧍🏼‍♂' => 'маж кој стои: тип на кожа 3',
     '🧍🏽‍♂' => 'маж кој стои: тип на кожа 4',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'жена која клечи: тип на кожа 4',
     '🧎🏾‍♀' => 'жена која клечи: тип на кожа 5',
     '🧎🏿‍♀' => 'жена која клечи: тип на кожа 6',
-    '🧎🏻‍➡' => 'лице кое клечи кон десно',
-    '🧎🏼‍➡' => 'лице кое клечи кон десно',
-    '🧎🏽‍➡' => 'лице кое клечи кон десно',
-    '🧎🏾‍➡' => 'лице кое клечи кон десно',
-    '🧎🏿‍➡' => 'лице кое клечи кон десно',
+    '🧎🏻‍➡' => 'лице кое клечи: тип на кожа 1–2 и кон десно',
+    '🧎🏼‍➡' => 'лице кое клечи: тип на кожа 3 и кон десно',
+    '🧎🏽‍➡' => 'лице кое клечи: тип на кожа 4 и кон десно',
+    '🧎🏾‍➡' => 'лице кое клечи: тип на кожа 5 и кон десно',
+    '🧎🏿‍➡' => 'лице кое клечи: тип на кожа 6 и кон десно',
     '🧑🏻‍🦯' => 'лице со стап за слепи: тип на кожа 1–2',
     '🧑🏼‍🦯' => 'лице со стап за слепи: тип на кожа 3',
     '🧑🏽‍🦯' => 'лице со стап за слепи: тип на кожа 4',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'жена трча: тип на кожа 4',
     '🏃🏾‍♀' => 'жена трча: тип на кожа 5',
     '🏃🏿‍♀' => 'жена трча: тип на кожа 6',
-    '🏃🏻‍➡' => 'лице трча кон десно',
-    '🏃🏼‍➡' => 'лице трча кон десно',
-    '🏃🏽‍➡' => 'лице трча кон десно',
-    '🏃🏾‍➡' => 'лице трча кон десно',
-    '🏃🏿‍➡' => 'лице трча кон десно',
+    '🏃🏻‍➡' => 'лице трча: тип на кожа 1–2 и кон десно',
+    '🏃🏼‍➡' => 'лице трча: тип на кожа 3 и кон десно',
+    '🏃🏽‍➡' => 'лице трча: тип на кожа 4 и кон десно',
+    '🏃🏾‍➡' => 'лице трча: тип на кожа 5 и кон десно',
+    '🏃🏿‍➡' => 'лице трча: тип на кожа 6 и кон десно',
+    '👯🏻‍♀' => 'жени кои се забавуваат: тип на кожа 1–2',
+    '👯🏼‍♀' => 'жени кои се забавуваат: тип на кожа 3',
+    '👯🏽‍♀' => 'жени кои се забавуваат: тип на кожа 4',
+    '👯🏾‍♀' => 'жени кои се забавуваат: тип на кожа 5',
+    '👯🏿‍♀' => 'жени кои се забавуваат: тип на кожа 6',
+    '👯🏻‍♂' => 'мажи кои се забавуваат: тип на кожа 1–2',
+    '👯🏼‍♂' => 'мажи кои се забавуваат: тип на кожа 3',
+    '👯🏽‍♂' => 'мажи кои се забавуваат: тип на кожа 4',
+    '👯🏾‍♂' => 'мажи кои се забавуваат: тип на кожа 5',
+    '👯🏿‍♂' => 'мажи кои се забавуваат: тип на кожа 6',
     '🧖🏻‍♂' => 'маж во парна соба: тип на кожа 1–2',
     '🧖🏼‍♂' => 'маж во парна соба: тип на кожа 3',
     '🧖🏽‍♂' => 'маж во парна соба: тип на кожа 4',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'жена прави ѕвезда: тип на кожа 4',
     '🤸🏾‍♀' => 'жена прави ѕвезда: тип на кожа 5',
     '🤸🏿‍♀' => 'жена прави ѕвезда: тип на кожа 6',
+    '🤼🏻‍♀' => 'борачки: тип на кожа 1–2',
+    '🤼🏼‍♀' => 'борачки: тип на кожа 3',
+    '🤼🏽‍♀' => 'борачки: тип на кожа 4',
+    '🤼🏾‍♀' => 'борачки: тип на кожа 5',
+    '🤼🏿‍♀' => 'борачки: тип на кожа 6',
+    '🤼🏻‍♂' => 'борачи: тип на кожа 1–2',
+    '🤼🏼‍♂' => 'борачи: тип на кожа 3',
+    '🤼🏽‍♂' => 'борачи: тип на кожа 4',
+    '🤼🏾‍♂' => 'борачи: тип на кожа 5',
+    '🤼🏿‍♂' => 'борачи: тип на кожа 6',
     '🤽🏻‍♂' => 'ватерполист: тип на кожа 1–2',
     '🤽🏼‍♂' => 'ватерполист: тип на кожа 3',
     '🤽🏽‍♂' => 'ватерполист: тип на кожа 4',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'жена: кадрава коса',
     '👩‍🦳' => 'жена: бела коса',
     '👩‍🦲' => 'жена: ќелав',
-    '🚶‍➡' => 'лице пешачи кон десно',
-    '🧎‍➡' => 'лице кое клечи кон десно',
-    '🏃‍➡' => 'лице трча кон десно',
+    '🚶‍➡' => 'лице пешачи: кон десно',
+    '🧎‍➡' => 'лице кое клечи: кон десно',
+    '🏃‍➡' => 'лице трча: кон десно',
     '👨‍👦' => 'семејство: маж и момче',
     '👨‍👧' => 'семејство: маж и девојче',
     '👩‍👦' => 'семејство: жена и момче',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'жена во рачна инвалидска количка',
     '🏃‍♂' => 'маж трча',
     '🏃‍♀' => 'жена трча',
+    '🧑‍🩰' => 'балерина',
     '👯‍♂' => 'мажи кои се забавуваат',
     '👯‍♀' => 'жени кои се забавуваат',
     '🧖‍♂' => 'маж во парна соба',
@@ -1991,11 +2137,11 @@
     '🏃🏽' => 'лице трча: тип на кожа 4',
     '🏃🏾' => 'лице трча: тип на кожа 5',
     '🏃🏿' => 'лице трча: тип на кожа 6',
-    '💃🏻' => 'танчерка: тип на кожа 1–2',
-    '💃🏼' => 'танчерка: тип на кожа 3',
-    '💃🏽' => 'танчерка: тип на кожа 4',
-    '💃🏾' => 'танчерка: тип на кожа 5',
-    '💃🏿' => 'танчерка: тип на кожа 6',
+    '💃🏻' => 'танчарка: тип на кожа 1–2',
+    '💃🏼' => 'танчарка: тип на кожа 3',
+    '💃🏽' => 'танчарка: тип на кожа 4',
+    '💃🏾' => 'танчарка: тип на кожа 5',
+    '💃🏿' => 'танчарка: тип на кожа 6',
     '🕺🏻' => 'танчар: тип на кожа 1–2',
     '🕺🏼' => 'танчар: тип на кожа 3',
     '🕺🏽' => 'танчар: тип на кожа 4',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'лебдечки човек во деловен костум: тип на кожа 4',
     '🕴🏾' => 'лебдечки човек во деловен костум: тип на кожа 5',
     '🕴🏿' => 'лебдечки човек во деловен костум: тип на кожа 6',
+    '👯🏻' => 'лица кои се забавуваат: тип на кожа 1–2',
+    '👯🏼' => 'лица кои се забавуваат: тип на кожа 3',
+    '👯🏽' => 'лица кои се забавуваат: тип на кожа 4',
+    '👯🏾' => 'лица кои се забавуваат: тип на кожа 5',
+    '👯🏿' => 'лица кои се забавуваат: тип на кожа 6',
     '🧖🏻' => 'лице во парна соба: тип на кожа 1–2',
     '🧖🏼' => 'лице во парна соба: тип на кожа 3',
     '🧖🏽' => 'лице во парна соба: тип на кожа 4',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'лице прави ѕвезда: тип на кожа 4',
     '🤸🏾' => 'лице прави ѕвезда: тип на кожа 5',
     '🤸🏿' => 'лице прави ѕвезда: тип на кожа 6',
+    '🤼🏻' => 'лица кои се борат: тип на кожа 1–2',
+    '🤼🏼' => 'лица кои се борат: тип на кожа 3',
+    '🤼🏽' => 'лица кои се борат: тип на кожа 4',
+    '🤼🏾' => 'лица кои се борат: тип на кожа 5',
+    '🤼🏿' => 'лица кои се борат: тип на кожа 6',
     '🤽🏻' => 'ватерполо: тип на кожа 1–2',
     '🤽🏼' => 'ватерполо: тип на кожа 3',
     '🤽🏽' => 'ватерполо: тип на кожа 4',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'знаме: Кина',
     '🇨🇴' => 'знаме: Колумбија',
     '🇨🇵' => 'знаме: Остров Клипертон',
+    '🇨🇶' => 'знаме: Сарк',
     '🇨🇷' => 'знаме: Костарика',
     '🇨🇺' => 'знаме: Куба',
     '🇨🇻' => 'знаме: Кабо Верде',
@@ -2344,7 +2501,7 @@
     '🇸🇻' => 'знаме: Ел Салвадор',
     '🇸🇽' => 'знаме: Свети Мартин',
     '🇸🇾' => 'знаме: Сирија',
-    '🇸🇿' => 'знаме: Свазиленд',
+    '🇸🇿' => 'знаме: Есватини',
     '🇹🇦' => 'знаме: Тристан да Куња',
     '🇹🇨' => 'знаме: Острови Туркс и Каикос',
     '🇹🇩' => 'знаме: Чад',
@@ -2390,13 +2547,6 @@
     '🏽' => 'тип на кожа 4',
     '🏾' => 'тип на кожа 5',
     '🏿' => 'тип на кожа 6',
-    '🪉' => 'харфа',
-    '🪏' => 'лопата',
-    '🪾' => 'безлисно дрво',
-    '🫆' => 'отпечаток',
-    '🫜' => 'коренест зеленчук',
-    '🫟' => 'испрскано',
-    '🫩' => 'лице со подочници',
     '😀' => 'широко насмеано лице',
     '😃' => 'насмеано лице со големи очи',
     '😄' => 'лице со отворена уста и насмеани очи',
@@ -2450,6 +2600,7 @@
     '😪' => 'поспано лице',
     '🤤' => 'лигавење',
     '😴' => 'заспано лице',
+    '🫩' => 'лице со подочници',
     '😷' => 'лице со медицинска маска',
     '🤒' => 'лице со термометар',
     '🤕' => 'лице со преврска на главата',
@@ -2476,6 +2627,7 @@
     '😯' => 'замолчено лице',
     '😲' => 'вчудовидено лице',
     '😳' => 'вцрвенето лице',
+    '🫪' => 'изобличено лице',
     '🥺' => 'лице што моли',
     '🥹' => 'лице спремно да заплаче',
     '😦' => 'намуртено лице со отворена уста',
@@ -2547,6 +2699,7 @@
     '💋' => 'бакнеж со кармин',
     '💯' => 'сто поени',
     '💢' => 'лутина',
+    '🫯' => 'борба во облак',
     '💥' => 'судир',
     '💫' => 'вртоглавица',
     '💦' => 'капки пот',
@@ -2670,13 +2823,14 @@
     '🧞' => 'џини',
     '🧟' => 'зомби',
     '🧌' => 'трол',
+    '🫈' => 'влакнесто суштество',
     '💆' => 'масажа на лице',
     '💇' => 'потстрижување',
     '🚶' => 'лице пешачи',
     '🧍' => 'лице кое стои',
     '🧎' => 'лице кое клечи',
     '🏃' => 'лице трча',
-    '💃' => 'танчерка',
+    '💃' => 'танчарка',
     '🕺' => 'танчар',
     '🕴' => 'лебдечки човек во деловен костум',
     '👯' => 'лица кои се забавуваат',
@@ -2713,6 +2867,7 @@
     '🫂' => 'луѓе се гушкаат',
     '👪' => 'семејство',
     '👣' => 'отпечатоци од стапала',
+    '🫆' => 'отпечаток',
     '🦰' => 'црвена коса',
     '🦱' => 'кадрава коса',
     '🦳' => 'бела коса',
@@ -2812,6 +2967,7 @@
     '🐳' => 'кит што прска вода',
     '🐋' => 'кит',
     '🐬' => 'делфин',
+    '🫍' => 'орка',
     '🦭' => 'фока',
     '🐟' => 'риба',
     '🐠' => 'тропска риба',
@@ -2821,6 +2977,11 @@
     '🐚' => 'спирална школка',
     '🪸' => 'корал',
     '🪼' => 'медуза',
+    '🦀' => 'рак',
+    '🦞' => 'јастог',
+    '🦐' => 'ракче',
+    '🦑' => 'лигња',
+    '🦪' => 'острига',
     '🐌' => 'полжав',
     '🦋' => 'пеперутка',
     '🐛' => 'бубачка',
@@ -2865,6 +3026,7 @@
     '🪹' => 'празно гнездо',
     '🪺' => 'гнездо со јајца',
     '🍄' => 'печурка',
+    '🪾' => 'безлисно дрво',
     '🍇' => 'грозје',
     '🍈' => 'диња',
     '🍉' => 'лубеница',
@@ -2901,6 +3063,7 @@
     '🌰' => 'костен',
     '🫚' => 'корен од ѓумбир',
     '🫛' => 'мешунка',
+    '🫜' => 'коренест зеленчук',
     '🍞' => 'леб',
     '🥐' => 'кроасан',
     '🥖' => 'багет',
@@ -2952,11 +3115,6 @@
     '🥟' => 'кнедла',
     '🥠' => 'колаче на среќата',
     '🥡' => 'кутија за храна за носење',
-    '🦀' => 'рак',
-    '🦞' => 'јастог',
-    '🦐' => 'ракче',
-    '🦑' => 'лигња',
-    '🦪' => 'острига',
     '🍦' => 'сладолед на точење',
     '🍧' => 'сладолед од мраз',
     '🍨' => 'сладолед',
@@ -3007,6 +3165,7 @@
     '🧭' => 'компас',
     '🏔' => 'планина со снежен врв',
     '⛰' => 'планина',
+    '🛘' => 'одрон',
     '🌋' => 'вулкан',
     '🗻' => 'планината Фуџи',
     '🏕' => 'кампување',
@@ -3142,7 +3301,7 @@
     '⏳' => 'превртен песочен часовник',
     '⌚' => 'рачен часовник',
     '⏰' => 'часовник со аларм',
-    '⏱' => 'стоперка',
+    '⏱' => 'штоперица',
     '⏲' => 'тајмер',
     '🕰' => 'часовник над каминот',
     '🕛' => 'дванаесет часот',
@@ -3367,16 +3526,18 @@
     '🎧' => 'слушалки',
     '📻' => 'радио',
     '🎷' => 'саксофон',
+    '🎺' => 'труба',
+    '🪊' => 'тромбон',
     '🪗' => 'хармоника',
     '🎸' => 'гитара',
     '🎹' => 'клавијатура',
-    '🎺' => 'труба',
     '🎻' => 'виолина',
     '🪕' => 'бенџо',
     '🥁' => 'тапан',
     '🪘' => 'конга',
     '🪇' => 'маракас',
     '🪈' => 'флејта',
+    '🪉' => 'харфа',
     '📱' => 'мобилен телефон',
     '📲' => 'мобилен телефон со стрелка',
     '☎' => 'телефон',
@@ -3430,8 +3591,9 @@
     '📑' => 'обележани страници',
     '🔖' => 'обележувач',
     '🏷' => 'етикета',
-    '💰' => 'вреќа со пари',
     '🪙' => 'паричка',
+    '💰' => 'вреќа со пари',
+    '🪎' => 'ковчег со богатство',
     '💴' => 'банкнота на јен',
     '💵' => 'банкнота на долар',
     '💶' => 'банкнота на евро',
@@ -3514,6 +3676,7 @@
     '🧰' => 'кутија за алат',
     '🧲' => 'магнет',
     '🪜' => 'скала',
+    '🪏' => 'лопата',
     '⚗' => 'дестилатор',
     '🧪' => 'епрувета',
     '🧫' => 'петриев сад',
@@ -3697,6 +3860,7 @@
     '✴' => 'ѕвезда со осум крака',
     '❇' => 'искра',
     '™' => 'трговска марка',
+    '🫟' => 'испрскано',
     '🔠' => 'латинични големи букви',
     '🔡' => 'латинични мали букви',
     '🔢' => 'броеви',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ml.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ml.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ml.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ml.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ചുംബനം: സ്‌ത്രീ, സ്‌ത്രീ, ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
     '👩🏿‍❤‍💋‍👩🏾' => 'ചുംബനം: സ്‌ത്രീ, സ്‌ത്രീ, ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '👩🏿‍❤‍💋‍👩🏿' => 'ചുംബനം: സ്‌ത്രീ, സ്‌ത്രീ, ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏻‍🫯‍🧑🏼' => 'ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏻‍🫯‍🧑🏽' => 'ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '🧑🏻‍🫯‍🧑🏾' => 'ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏻‍🫯‍🧑🏿' => 'ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏼‍🫯‍🧑🏻' => 'ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏼‍🫯‍🧑🏽' => 'ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '🧑🏼‍🫯‍🧑🏾' => 'ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏼‍🫯‍🧑🏿' => 'ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏽‍🫯‍🧑🏻' => 'ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏽‍🫯‍🧑🏼' => 'ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏽‍🫯‍🧑🏾' => 'ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏽‍🫯‍🧑🏿' => 'ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏾‍🫯‍🧑🏻' => 'ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏾‍🫯‍🧑🏼' => 'ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏾‍🫯‍🧑🏽' => 'ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '🧑🏾‍🫯‍🧑🏿' => 'ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏿‍🫯‍🧑🏻' => 'ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏿‍🫯‍🧑🏼' => 'ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏿‍🫯‍🧑🏽' => 'ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '🧑🏿‍🫯‍🧑🏾' => 'ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '🧑🏻‍❤‍🧑🏼' => 'പ്രണയ ജോടി: വ്യക്തി, വ്യക്തി, തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧑🏻‍❤‍🧑🏽' => 'പ്രണയ ജോടി: വ്യക്തി, വ്യക്തി, തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
     '🧑🏻‍❤‍🧑🏾' => 'പ്രണയ ജോടി: വ്യക്തി, വ്യക്തി, തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'പ്രണയ ജോടി: വ്യക്തി, വ്യക്തി, ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧑🏿‍❤‍🧑🏽' => 'പ്രണയ ജോടി: വ്യക്തി, വ്യക്തി, ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
     '🧑🏿‍❤‍🧑🏾' => 'പ്രണയ ജോടി: വ്യക്തി, വ്യക്തി, ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏻‍🐰‍🧑🏼' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏻‍🐰‍🧑🏽' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '🧑🏻‍🐰‍🧑🏾' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏻‍🐰‍🧑🏿' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏼‍🐰‍🧑🏻' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏼‍🐰‍🧑🏽' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '🧑🏼‍🐰‍🧑🏾' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏼‍🐰‍🧑🏿' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏽‍🐰‍🧑🏻' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ചർമ്മത്തിന്റെ നിറം-4, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏽‍🐰‍🧑🏼' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏽‍🐰‍🧑🏾' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏽‍🐰‍🧑🏿' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ചർമ്മത്തിന്റെ നിറം-4, ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏾‍🐰‍🧑🏻' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏾‍🐰‍🧑🏼' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏾‍🐰‍🧑🏽' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '🧑🏾‍🐰‍🧑🏿' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏿‍🐰‍🧑🏻' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏿‍🐰‍🧑🏼' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏿‍🐰‍🧑🏽' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '🧑🏿‍🐰‍🧑🏾' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏻‍🫯‍👨🏼' => 'പുരുഷ ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏻‍🫯‍👨🏽' => 'പുരുഷ ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👨🏻‍🫯‍👨🏾' => 'പുരുഷ ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏻‍🫯‍👨🏿' => 'പുരുഷ ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏼‍🫯‍👨🏻' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏼‍🫯‍👨🏽' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👨🏼‍🫯‍👨🏾' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏼‍🫯‍👨🏿' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏽‍🫯‍👨🏻' => 'പുരുഷ ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏽‍🫯‍👨🏼' => 'പുരുഷ ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏽‍🫯‍👨🏾' => 'പുരുഷ ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏽‍🫯‍👨🏿' => 'പുരുഷ ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏾‍🫯‍👨🏻' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏾‍🫯‍👨🏼' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏾‍🫯‍👨🏽' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👨🏾‍🫯‍👨🏿' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏿‍🫯‍👨🏻' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏿‍🫯‍👨🏼' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏿‍🫯‍👨🏽' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👨🏿‍🫯‍👨🏾' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '👨🏻‍❤‍👨🏻' => 'പ്രണയ ജോടി: പുരുഷൻ, പുരുഷൻ, തെളിഞ്ഞ ചർമ്മ നിറം',
     '👨🏻‍❤‍👨🏼' => 'പ്രണയ ജോടി: പുരുഷൻ, പുരുഷൻ, തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '👨🏻‍❤‍👨🏽' => 'പ്രണയ ജോടി: പുരുഷൻ, പുരുഷൻ, തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'പ്രണയ ജോടി: പുരുഷൻ, പുരുഷൻ, ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
     '👨🏿‍❤‍👨🏾' => 'പ്രണയ ജോടി: പുരുഷൻ, പുരുഷൻ, ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '👨🏿‍❤‍👨🏿' => 'പ്രണയ ജോടി: പുരുഷൻ, പുരുഷൻ, ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏻‍🐰‍👨🏼' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏻‍🐰‍👨🏽' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👨🏻‍🐰‍👨🏾' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏻‍🐰‍👨🏿' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏼‍🐰‍👨🏻' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏼‍🐰‍👨🏽' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👨🏼‍🐰‍👨🏾' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏼‍🐰‍👨🏿' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏽‍🐰‍👨🏻' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ചർമ്മത്തിന്റെ നിറം-4, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏽‍🐰‍👨🏼' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏽‍🐰‍👨🏾' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏽‍🐰‍👨🏿' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏾‍🐰‍👨🏻' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏾‍🐰‍👨🏼' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏾‍🐰‍👨🏽' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👨🏾‍🐰‍👨🏿' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👨🏿‍🐰‍👨🏻' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏿‍🐰‍👨🏼' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👨🏿‍🐰‍👨🏽' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👨🏿‍🐰‍👨🏾' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏻‍🫯‍👩🏼' => 'വനിതാ ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏻‍🫯‍👩🏽' => 'വനിതാ ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👩🏻‍🫯‍👩🏾' => 'വനിതാ ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏻‍🫯‍👩🏿' => 'വനിതാ ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏼‍🫯‍👩🏻' => 'വനിതാ ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏼‍🫯‍👩🏽' => 'വനിതാ ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👩🏼‍🫯‍👩🏾' => 'വനിതാ ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏼‍🫯‍👩🏿' => 'വനിതാ ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏽‍🫯‍👩🏻' => 'വനിതാ ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏽‍🫯‍👩🏼' => 'വനിതാ ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏽‍🫯‍👩🏾' => 'വനിതാ ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏽‍🫯‍👩🏿' => 'വനിതാ ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4, ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏾‍🫯‍👩🏻' => 'വനിതാ ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏾‍🫯‍👩🏼' => 'വനിതാ ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏾‍🫯‍👩🏽' => 'വനിതാ ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👩🏾‍🫯‍👩🏿' => 'വനിതാ ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏿‍🫯‍👩🏻' => 'വനിതാ ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏿‍🫯‍👩🏼' => 'വനിതാ ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏿‍🫯‍👩🏽' => 'വനിതാ ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👩🏿‍🫯‍👩🏾' => 'വനിതാ ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '👩🏻‍❤‍👨🏻' => 'പ്രണയ ജോടി: സ്‌ത്രീ, പുരുഷൻ, തെളിഞ്ഞ ചർമ്മ നിറം',
     '👩🏻‍❤‍👨🏼' => 'പ്രണയ ജോടി: സ്‌ത്രീ, പുരുഷൻ, തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '👩🏻‍❤‍👨🏽' => 'പ്രണയ ജോടി: സ്‌ത്രീ, പുരുഷൻ, തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'പ്രണയ ജോടി: സ്‌ത്രീ, സ്‌ത്രീ, ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
     '👩🏿‍❤‍👩🏾' => 'പ്രണയ ജോടി: സ്‌ത്രീ, സ്‌ത്രീ, ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '👩🏿‍❤‍👩🏿' => 'പ്രണയ ജോടി: സ്‌ത്രീ, സ്‌ത്രീ, ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏻‍🐰‍👩🏼' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏻‍🐰‍👩🏽' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👩🏻‍🐰‍👩🏾' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏻‍🐰‍👩🏿' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏼‍🐰‍👩🏻' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏼‍🐰‍👩🏽' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👩🏼‍🐰‍👩🏾' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏼‍🐰‍👩🏿' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏽‍🐰‍👩🏻' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ചർമ്മത്തിന്റെ നിറം-4, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏽‍🐰‍👩🏼' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏽‍🐰‍👩🏾' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ചർമ്മത്തിന്റെ നിറം-4, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏽‍🐰‍👩🏿' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ചർമ്മത്തിന്റെ നിറം-4, ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏾‍🐰‍👩🏻' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏾‍🐰‍👩🏼' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏾‍🐰‍👩🏽' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👩🏾‍🐰‍👩🏿' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, ഇരുണ്ട ചർമ്മ നിറം',
+    '👩🏿‍🐰‍👩🏻' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇരുണ്ട ചർമ്മ നിറം, തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏿‍🐰‍👩🏼' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👩🏿‍🐰‍👩🏽' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
+    '👩🏿‍🐰‍👩🏾' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '🧑🏻‍🤝‍🧑🏻' => 'ആളുകൾ കൈകോർത്ത് പിടിച്ചിരിക്കുന്നു: തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧑🏻‍🤝‍🧑🏼' => 'ആളുകൾ കൈകോർത്ത് പിടിച്ചിരിക്കുന്നു: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧑🏻‍🤝‍🧑🏽' => 'ആളുകൾ കൈകോർത്ത് പിടിച്ചിരിക്കുന്നു: തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'പതാക: സ്‌കോട്ട്‌ലന്റ്',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'പതാക: വെയിൽസ്',
     '🧑‍🧑‍🧒‍🧒' => 'കുടുംബം: രണ്ട് മുതിർന്നയാളുകളും രണ്ട് കുട്ടികളും',
-    '🚶🏻‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏼‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏽‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏾‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏿‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏻‍♂‍➡' => 'നടക്കുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏼‍♂‍➡' => 'നടക്കുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏽‍♂‍➡' => 'നടക്കുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏾‍♂‍➡' => 'നടക്കുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏿‍♂‍➡' => 'നടക്കുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏻‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏼‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏽‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏾‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏿‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏻‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏼‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏽‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏾‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏿‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏻‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏼‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏽‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏾‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏿‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏻‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏼‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏽‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏾‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏿‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏻‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏼‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏽‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏾‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏿‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏻‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏼‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏽‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏾‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏿‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏻‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏼‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏽‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏾‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏿‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏻‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏼‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏽‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏾‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏿‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏻‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏼‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏽‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏾‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑🏿‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏻‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏼‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏽‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏾‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨🏿‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏻‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏼‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏽‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏾‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩🏿‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏻‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏼‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏽‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏾‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏿‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏻‍♂‍➡' => 'ഓടുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏼‍♂‍➡' => 'ഓടുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏽‍♂‍➡' => 'ഓടുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏾‍♂‍➡' => 'ഓടുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏿‍♂‍➡' => 'ഓടുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏻‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏼‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏽‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏾‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏿‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏻‍♂‍➡' => 'നടക്കുന്നയാൾ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏼‍♂‍➡' => 'നടക്കുന്നയാൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏽‍♂‍➡' => 'നടക്കുന്നയാൾ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏾‍♂‍➡' => 'നടക്കുന്നയാൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏿‍♂‍➡' => 'നടക്കുന്നയാൾ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏻‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏼‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏽‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏾‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏿‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏻‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏼‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏽‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏾‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏿‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏻‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏼‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏽‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏾‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏿‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏻‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏼‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏽‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏾‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏿‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏻‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏼‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏽‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏾‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏿‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏻‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏼‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏽‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏾‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏿‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏻‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏼‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏽‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏾‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏿‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏻‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏼‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏽‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏾‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏿‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏻‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏼‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏽‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏾‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑🏿‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏻‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏼‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏽‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏾‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨🏿‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏻‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏼‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏽‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏾‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩🏿‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏻‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏼‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏽‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏾‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏿‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏻‍♂‍➡' => 'ഓടുന്നയാൾ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏼‍♂‍➡' => 'ഓടുന്നയാൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏽‍♂‍➡' => 'ഓടുന്നയാൾ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏾‍♂‍➡' => 'ഓടുന്നയാൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏿‍♂‍➡' => 'ഓടുന്നയാൾ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
     '🫱🏻‍🫲🏼' => 'ഹസ്തദാനം: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🫱🏻‍🫲🏽' => 'ഹസ്തദാനം: തെളിഞ്ഞ ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
     '🫱🏻‍🫲🏾' => 'ഹസ്തദാനം: തെളിഞ്ഞ ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ഹസ്തദാനം: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🫱🏿‍🫲🏽' => 'ഹസ്തദാനം: ഇരുണ്ട ചർമ്മ നിറം, ചർമ്മത്തിന്റെ നിറം-4',
     '🫱🏿‍🫲🏾' => 'ഹസ്തദാനം: ഇരുണ്ട ചർമ്മ നിറം, ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
-    '🚶‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶‍♂‍➡' => 'നടക്കുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧑‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👨‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '👩‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃‍♂‍➡' => 'ഓടുന്നയാൾ വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶‍♀‍➡' => 'നടക്കുന്ന സ്ത്രീ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶‍♂‍➡' => 'നടക്കുന്നയാൾ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎‍♀‍➡' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎‍♂‍➡' => 'മുട്ടുകുത്തുന്ന പുരുഷൻ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑‍🦯‍➡' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന പുരുഷൻ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩‍🦯‍➡' => 'പ്രോബിംഗ് വടി പിടിച്ചിരിക്കുന്ന സ്‌ത്രീ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑‍🦼‍➡' => 'യാന്ത്രിക ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩‍🦼‍➡' => 'മോട്ടോറൈസ്‌ഡ് വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧑‍🦽‍➡' => 'സാധാരണ ചക്രക്കസേരയിലിരിക്കുന്ന വ്യക്തി: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👨‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന പുരുഷൻ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👩‍🦽‍➡' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃‍♀‍➡' => 'ഓടുന്ന സ്ത്രീ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃‍♂‍➡' => 'ഓടുന്നയാൾ: വലത്തോട്ട് തിരിഞ്ഞ്',
     '👩‍❤‍👨' => 'പ്രണയ ജോടി: സ്‌ത്രീ, പുരുഷൻ',
     '👨‍❤‍👨' => 'പ്രണയ ജോടി: പുരുഷൻ, പുരുഷൻ',
     '👩‍❤‍👩' => 'പ്രണയ ജോടി: സ്‌ത്രീ, സ്‌ത്രീ',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'വ്യക്തി: ചർമ്മത്തിന്റെ നിറം-4, കഷണ്ടി',
     '🧑🏾‍🦲' => 'വ്യക്തി: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, കഷണ്ടി',
     '🧑🏿‍🦲' => 'വ്യക്തി: ഇരുണ്ട ചർമ്മ നിറം, കഷണ്ടി',
+    '🧑🏻‍🩰' => 'ബാലെ നർത്തകി: തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏼‍🩰' => 'ബാലെ നർത്തകി: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🧑🏽‍🩰' => 'ബാലെ നർത്തകി: ചർമ്മത്തിന്റെ നിറം-4',
+    '🧑🏾‍🩰' => 'ബാലെ നർത്തകി: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🧑🏿‍🩰' => 'ബാലെ നർത്തകി: ഇരുണ്ട ചർമ്മ നിറം',
     '🧔🏻‍♂' => 'പുരുഷൻ: തെളിഞ്ഞ ചർമ്മ നിറം, താടി',
     '🧔🏼‍♂' => 'പുരുഷൻ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, താടി',
     '🧔🏽‍♂' => 'പുരുഷൻ: ചർമ്മത്തിന്റെ നിറം-4, താടി',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'നടക്കുന്ന സ്ത്രീ: ചർമ്മത്തിന്റെ നിറം-4',
     '🚶🏾‍♀' => 'നടക്കുന്ന സ്ത്രീ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '🚶🏿‍♀' => 'നടക്കുന്ന സ്ത്രീ: ഇരുണ്ട ചർമ്മ നിറം',
-    '🚶🏻‍➡' => 'കാൽനടയാത്രക്കാരൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏼‍➡' => 'കാൽനടയാത്രക്കാരൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏽‍➡' => 'കാൽനടയാത്രക്കാരൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏾‍➡' => 'കാൽനടയാത്രക്കാരൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🚶🏿‍➡' => 'കാൽനടയാത്രക്കാരൻ വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏻‍➡' => 'കാൽനടയാത്രക്കാരൻ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏼‍➡' => 'കാൽനടയാത്രക്കാരൻ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏽‍➡' => 'കാൽനടയാത്രക്കാരൻ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏾‍➡' => 'കാൽനടയാത്രക്കാരൻ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶🏿‍➡' => 'കാൽനടയാത്രക്കാരൻ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
     '🧍🏻‍♂' => 'നിൽക്കുന്ന പുരുഷൻ: തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧍🏼‍♂' => 'നിൽക്കുന്ന പുരുഷൻ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧍🏽‍♂' => 'നിൽക്കുന്ന പുരുഷൻ: ചർമ്മത്തിന്റെ നിറം-4',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ: ചർമ്മത്തിന്റെ നിറം-4',
     '🧎🏾‍♀' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '🧎🏿‍♀' => 'മുട്ടുകുത്തുന്ന സ്‌ത്രീ: ഇരുണ്ട ചർമ്മ നിറം',
-    '🧎🏻‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏼‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏽‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏾‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎🏿‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏻‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏼‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏽‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏾‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎🏿‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
     '🧑🏻‍🦯' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി: തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧑🏼‍🦯' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧑🏽‍🦯' => 'വെളുത്ത വടിയേന്തിയ വ്യക്തി: ചർമ്മത്തിന്റെ നിറം-4',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ഓടുന്ന സ്ത്രീ: ചർമ്മത്തിന്റെ നിറം-4',
     '🏃🏾‍♀' => 'ഓടുന്ന സ്ത്രീ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '🏃🏿‍♀' => 'ഓടുന്ന സ്ത്രീ: ഇരുണ്ട ചർമ്മ നിറം',
-    '🏃🏻‍➡' => 'റണ്ണർ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏼‍➡' => 'റണ്ണർ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏽‍➡' => 'റണ്ണർ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏾‍➡' => 'റണ്ണർ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃🏿‍➡' => 'റണ്ണർ വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏻‍➡' => 'റണ്ണർ: തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏼‍➡' => 'റണ്ണർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏽‍➡' => 'റണ്ണർ: ചർമ്മത്തിന്റെ നിറം-4, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏾‍➡' => 'റണ്ണർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃🏿‍➡' => 'റണ്ണർ: ഇരുണ്ട ചർമ്മ നിറം, വലത്തോട്ട് തിരിഞ്ഞ്',
+    '👯🏻‍♀' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👯🏼‍♀' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👯🏽‍♀' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ചർമ്മത്തിന്റെ നിറം-4',
+    '👯🏾‍♀' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👯🏿‍♀' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ: ഇരുണ്ട ചർമ്മ നിറം',
+    '👯🏻‍♂' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👯🏼‍♂' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👯🏽‍♂' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ചർമ്മത്തിന്റെ നിറം-4',
+    '👯🏾‍♂' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👯🏿‍♂' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ: ഇരുണ്ട ചർമ്മ നിറം',
     '🧖🏻‍♂' => 'ബാഷ്‌പസ്‌നാനം ചെയ്യുന്ന പുരുഷൻ: തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧖🏼‍♂' => 'ബാഷ്‌പസ്‌നാനം ചെയ്യുന്ന പുരുഷൻ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧖🏽‍♂' => 'ബാഷ്‌പസ്‌നാനം ചെയ്യുന്ന പുരുഷൻ: ചർമ്മത്തിന്റെ നിറം-4',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'കൈകുത്തിമറിയുന്ന സ്ത്രീ: ചർമ്മത്തിന്റെ നിറം-4',
     '🤸🏾‍♀' => 'കൈകുത്തിമറിയുന്ന സ്ത്രീ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '🤸🏿‍♀' => 'കൈകുത്തിമറിയുന്ന സ്ത്രീ: ഇരുണ്ട ചർമ്മ നിറം',
+    '🤼🏻‍♀' => 'വനിതാ ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🤼🏼‍♀' => 'വനിതാ ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🤼🏽‍♀' => 'വനിതാ ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4',
+    '🤼🏾‍♀' => 'വനിതാ ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🤼🏿‍♀' => 'വനിതാ ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം',
+    '🤼🏻‍♂' => 'പുരുഷ ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🤼🏼‍♂' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🤼🏽‍♂' => 'പുരുഷ ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4',
+    '🤼🏾‍♂' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🤼🏿‍♂' => 'പുരുഷ ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം',
     '🤽🏻‍♂' => 'വാട്ടർ പോളോ കളിക്കുന്നയാൾ: തെളിഞ്ഞ ചർമ്മ നിറം',
     '🤽🏼‍♂' => 'വാട്ടർ പോളോ കളിക്കുന്നയാൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🤽🏽‍♂' => 'വാട്ടർ പോളോ കളിക്കുന്നയാൾ: ചർമ്മത്തിന്റെ നിറം-4',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'സ്‌ത്രീ: ചുരുണ്ട മുടി',
     '👩‍🦳' => 'സ്‌ത്രീ: വെള്ള മുടി',
     '👩‍🦲' => 'സ്‌ത്രീ: കഷണ്ടി',
-    '🚶‍➡' => 'കാൽനടയാത്രക്കാരൻ വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🧎‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി വലത്തോട്ട് തിരിഞ്ഞ്',
-    '🏃‍➡' => 'റണ്ണർ വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🚶‍➡' => 'കാൽനടയാത്രക്കാരൻ: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🧎‍➡' => 'മുട്ടുകുത്തിയിരിക്കുന്ന വ്യക്തി: വലത്തോട്ട് തിരിഞ്ഞ്',
+    '🏃‍➡' => 'റണ്ണർ: വലത്തോട്ട് തിരിഞ്ഞ്',
     '👨‍👦' => 'കുടുംബം: പുരുഷൻ, ആൺകുട്ടി',
     '👨‍👧' => 'കുടുംബം: പുരുഷൻ, പെൺകുട്ടി',
     '👩‍👦' => 'കുടുംബം: സ്‌ത്രീ, ആൺകുട്ടി',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'മാന്വൽ വീൽചെയറിൽ ഇരിക്കുന്ന സ്‌ത്രീ',
     '🏃‍♂' => 'ഓടുന്നയാൾ',
     '🏃‍♀' => 'ഓടുന്ന സ്ത്രീ',
+    '🧑‍🩰' => 'ബാലെ നർത്തകി',
     '👯‍♂' => 'പാർട്ടിയാഘോഷിക്കുന്ന പുരുഷന്മാർ',
     '👯‍♀' => 'പാർട്ടിയാഘോഷിക്കുന്ന സ്ത്രീകൾ',
     '🧖‍♂' => 'ബാഷ്‌പസ്‌നാനം ചെയ്യുന്ന പുരുഷൻ',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'പറക്കുന്ന പ്രൊഫഷണൽ: ചർമ്മത്തിന്റെ നിറം-4',
     '🕴🏾' => 'പറക്കുന്ന പ്രൊഫഷണൽ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '🕴🏿' => 'പറക്കുന്ന പ്രൊഫഷണൽ: ഇരുണ്ട ചർമ്മ നിറം',
+    '👯🏻' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👯🏼' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '👯🏽' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ചർമ്മത്തിന്റെ നിറം-4',
+    '👯🏾' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '👯🏿' => 'പാർട്ടി ആഘോഷിക്കുന്ന സ്‌ത്രീകൾ: ഇരുണ്ട ചർമ്മ നിറം',
     '🧖🏻' => 'ബാഷ്‌പസ്‌നാനം ചെയ്യുന്ന വ്യക്തി: തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧖🏼' => 'ബാഷ്‌പസ്‌നാനം ചെയ്യുന്ന വ്യക്തി: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🧖🏽' => 'ബാഷ്‌പസ്‌നാനം ചെയ്യുന്ന വ്യക്തി: ചർമ്മത്തിന്റെ നിറം-4',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'കൈകുത്തി മറിയൽ: ചർമ്മത്തിന്റെ നിറം-4',
     '🤸🏾' => 'കൈകുത്തി മറിയൽ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '🤸🏿' => 'കൈകുത്തി മറിയൽ: ഇരുണ്ട ചർമ്മ നിറം',
+    '🤼🏻' => 'ഗുസ്തിക്കാർ: തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🤼🏼' => 'ഗുസ്തിക്കാർ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
+    '🤼🏽' => 'ഗുസ്തിക്കാർ: ചർമ്മത്തിന്റെ നിറം-4',
+    '🤼🏾' => 'ഗുസ്തിക്കാർ: ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
+    '🤼🏿' => 'ഗുസ്തിക്കാർ: ഇരുണ്ട ചർമ്മ നിറം',
     '🤽🏻' => 'വാട്ടർ പോളോ: തെളിഞ്ഞ ചർമ്മ നിറം',
     '🤽🏼' => 'വാട്ടർ പോളോ: ഇടത്തരം തെളിഞ്ഞ ചർമ്മ നിറം',
     '🤽🏽' => 'വാട്ടർ പോളോ: ചർമ്മത്തിന്റെ നിറം-4',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'പതാക: ചൈന',
     '🇨🇴' => 'പതാക: കൊളംബിയ',
     '🇨🇵' => 'പതാക: ക്ലിപ്പെർട്ടൻ ദ്വീപ്',
+    '🇨🇶' => 'പതാക: സാർക്ക്',
     '🇨🇷' => 'പതാക: കോസ്റ്ററിക്ക',
     '🇨🇺' => 'പതാക: ക്യൂബ',
     '🇨🇻' => 'പതാക: കേപ്പ് വേർഡ്',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ചർമ്മത്തിന്റെ നിറം-4',
     '🏾' => 'ഇടത്തരം ഇരുണ്ട ചർമ്മ നിറം',
     '🏿' => 'ഇരുണ്ട ചർമ്മ നിറം',
-    '🪉' => 'കിന്നരം',
-    '🪏' => 'ഷവൽ',
-    '🪾' => 'ഇലയില്ലാത്ത മരം',
-    '🫆' => 'വിരലടയാളം',
-    '🫜' => 'കിഴങ്ങുവർഗം',
-    '🫟' => 'ചിതറിയ നിറക്കൂട്ടുകൾ',
-    '🫩' => 'കൺതടത്തിൽ വീക്കമുള്ള മുഖം',
     '😀' => 'കളിയാക്കി ചിരിക്കുന്ന മുഖം',
     '😃' => 'വലിയ കണ്ണുകളുള്ള കളിയാക്കി ചിരിക്കുന്ന മുഖം',
     '😄' => 'പുഞ്ചിരിക്കുന്ന കണ്ണുകളോടുകൂടിയ ഗോഷ്‌ടിച്ചിരിയുള്ള മുഖം',
@@ -2450,6 +2600,7 @@
     '😪' => 'ഉറക്കം തൂങ്ങുന്ന മുഖം',
     '🤤' => 'തുപ്പൽ ഒലിക്കുന്ന മുഖം',
     '😴' => 'ഉറങ്ങുന്ന മുഖം',
+    '🫩' => 'കൺതടത്തിൽ വീക്കമുള്ള മുഖം',
     '😷' => 'മെഡിക്കൽ മാസ്‌കുള്ള മുഖം',
     '🤒' => 'തെർമോമീറ്ററുള്ള മുഖം',
     '🤕' => 'തലയിൽ ബാൻഡേജുള്ള മുഖം',
@@ -2476,6 +2627,7 @@
     '😯' => 'സ്‌തബ്‌ധമായ മുഖം',
     '😲' => 'അത്ഭുതം നിറഞ്ഞ മുഖം',
     '😳' => 'സ്‌തംഭിച്ച മുഖം',
+    '🫪' => 'വക്ര മുഖം',
     '🥺' => 'യാചിക്കുന്ന മുഖം',
     '🥹' => 'കണ്ണീരടക്കുന്ന മുഖം',
     '😦' => 'തുറന്നവായയുമായി നീരസ ഭാവത്തിലുള്ള മുഖം',
@@ -2547,6 +2699,7 @@
     '💋' => 'ചുംബന മുദ്ര',
     '💯' => '100 പോയിന്റ്',
     '💢' => 'ദേഷ്യ ചിഹ്നം',
+    '🫯' => 'ഏറ്റുമുട്ടലിനെ സൂചിപ്പിക്കുന്ന പുകപടലം',
     '💥' => 'കൂട്ടിയിടി',
     '💫' => 'മോഹാലസ്യം',
     '💦' => 'വിയർപ്പ് തുള്ളികൾ',
@@ -2670,6 +2823,7 @@
     '🧞' => 'ജിന്ന്',
     '🧟' => 'വേതാളം',
     '🧌' => 'ട്രോൾ',
+    '🫈' => 'യതി',
     '💆' => 'മുഖം മസ്സാജ് ചെയ്യുക',
     '💇' => 'മുടിവെട്ടൽ',
     '🚶' => 'കാൽനടയാത്രക്കാരൻ',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ആലിംഗനം ചെയ്യുന്ന ആളുകൾ',
     '👪' => 'കുടുംബം',
     '👣' => 'കാൽപ്പാടുകൾ',
+    '🫆' => 'വിരലടയാളം',
     '🦰' => 'ചുവന്ന മുടി',
     '🦱' => 'ചുരുണ്ട മുടി',
     '🦳' => 'വെള്ള മുടി',
@@ -2812,6 +2967,7 @@
     '🐳' => 'വെള്ളം ചീറ്റുന്ന തിമിംഗലം',
     '🐋' => 'തിമിംഗലം',
     '🐬' => 'ഡോൾഫിൻ',
+    '🫍' => 'കൊലയാളി തിമിംഗലം',
     '🦭' => 'സീൽ',
     '🐟' => 'മത്സ്യം',
     '🐠' => 'ട്രോപ്പിക്കൽ ഫിഷ്',
@@ -2821,6 +2977,11 @@
     '🐚' => 'ചിപ്പി',
     '🪸' => 'പവിഴപ്പുറ്റ്‌',
     '🪼' => 'ജെല്ലീഫിഷ്',
+    '🦀' => 'ഞണ്ട്',
+    '🦞' => 'കൊഞ്ച്',
+    '🦐' => 'ചെമ്മീൻ',
+    '🦑' => 'കൂന്തൾ',
+    '🦪' => 'മുത്തുച്ചിപ്പി',
     '🐌' => 'ഒച്ച്',
     '🦋' => 'ചിത്രശലഭം',
     '🐛' => 'പഴുതാര',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ഒഴിഞ്ഞ പക്ഷിക്കൂട്',
     '🪺' => 'മുട്ടകളുള്ള പക്ഷിക്കൂട്',
     '🍄' => 'കൂൺ',
+    '🪾' => 'ഇലയില്ലാത്ത മരം',
     '🍇' => 'മുന്തിരി',
     '🍈' => 'മത്തങ്ങ',
     '🍉' => 'തണ്ണിമത്തൻ',
@@ -2901,6 +3063,7 @@
     '🌰' => 'ചെസ്‌റ്റ്നട്ട്',
     '🫚' => 'ഇഞ്ചി',
     '🫛' => 'പയറിന്റെ തോട്',
+    '🫜' => 'കിഴങ്ങുവർഗം',
     '🍞' => 'ബ്രെഡ്',
     '🥐' => 'ഫ്രെഞ്ച് റോൾ',
     '🥖' => 'ബാഗെറ്റ് ബ്രെഡ്',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ഡമ്പ്ലിങ്ങ്',
     '🥠' => 'ഫോർച്യൂൺ കുക്കി',
     '🥡' => 'ടേക്ക്ഔട്ട് ബോക്‌സ്',
-    '🦀' => 'ഞണ്ട്',
-    '🦞' => 'കൊഞ്ച്',
-    '🦐' => 'ചെമ്മീൻ',
-    '🦑' => 'കൂന്തൾ',
-    '🦪' => 'മുത്തുച്ചിപ്പി',
     '🍦' => 'സോഫ്‌റ്റ് ഐസ്‌ക്രീം',
     '🍧' => 'ഷേവ്ഡ് ഐസ്',
     '🍨' => 'ഐസ്‌ക്രീം',
@@ -3007,6 +3165,7 @@
     '🧭' => 'കോമ്പസ്സ്',
     '🏔' => 'മഞ്ഞുമൂടിയ മലനിര',
     '⛰' => 'മലനിര',
+    '🛘' => 'ഉരുൾപ്പൊട്ടൽ',
     '🌋' => 'അഗ്നിപർവ്വതം',
     '🗻' => 'ഫുജി പർവ്വതം',
     '🏕' => 'ക്യാമ്പിംഗ്',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ഹെഡ്‌ഫോൺ',
     '📻' => 'റേഡിയോ',
     '🎷' => 'സാക്സഫോൺ',
+    '🎺' => 'ട്രംപറ്റ്',
+    '🪊' => 'ട്രൊംബോൺ',
     '🪗' => 'അക്കോർഡിയൻ',
     '🎸' => 'ഗിറ്റാർ',
     '🎹' => 'മ്യൂസിക്കൽ കീബോർഡ്',
-    '🎺' => 'ട്രംപറ്റ്',
     '🎻' => 'വയലിൻ',
     '🪕' => 'ബാഞ്ചോ',
     '🥁' => 'ചെണ്ട',
     '🪘' => 'മദ്ദളം',
     '🪇' => 'മാരക്കാസ്',
     '🪈' => 'ഓടക്കുഴൽ',
+    '🪉' => 'കിന്നരം',
     '📱' => 'മൊബൈൽ ഫോൺ',
     '📲' => 'അമ്പടയാളമുള്ള മൊബൈൽ',
     '☎' => 'ടെലിഫോൺ',
@@ -3430,8 +3591,9 @@
     '📑' => 'ബുക്ക്‌മാർക്ക് ടാബുകൾ',
     '🔖' => 'ബുക്ക്‌മാർക്ക്',
     '🏷' => 'ലേബൽ',
-    '💰' => 'പണ ബാഗ്',
     '🪙' => 'നാണയം',
+    '💰' => 'പണ ബാഗ്',
+    '🪎' => 'നിധി പേടകം',
     '💴' => 'യെൻ ബാങ്ക് നോട്ട്',
     '💵' => 'ഡോളർ ബാങ്ക് നോട്ട്',
     '💶' => 'യൂറോ ബാങ്ക് നോട്ട്',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ടൂൾബോക്‌സ്',
     '🧲' => 'കാന്തം',
     '🪜' => 'കോണി',
+    '🪏' => 'ഷവൽ',
     '⚗' => 'അലെംബിക്',
     '🧪' => 'ടെസ്റ്റ്‌ ട്യൂബ്',
     '🧫' => 'പെട്രി ഡിഷ്',
@@ -3697,6 +3860,7 @@
     '✴' => 'എട്ട് ഭുജങ്ങളുള്ള നക്ഷത്രം',
     '❇' => 'സ്‌പാർക്കിൾ',
     '™' => 'ട്രേഡ്‌മാർക്ക്',
+    '🫟' => 'ചിതറിയ നിറക്കൂട്ടുകൾ',
     '🔠' => 'വലിയക്ഷരങ്ങൾ',
     '🔡' => 'ചെറിയക്ഷരങ്ങൾ',
     '🔢' => 'സംഖ്യകൾ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mn.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'үнсэлт: эмэгтэй хүн эмэгтэй хүн бор дунд зэргийн',
     '👩🏿‍❤‍💋‍👩🏾' => 'үнсэлт: эмэгтэй хүн эмэгтэй хүн бор бордуу',
     '👩🏿‍❤‍💋‍👩🏿' => 'үнсэлт: эмэгтэй хүн эмэгтэй хүн бор',
+    '🧑🏻‍🫯‍🧑🏼' => 'бөх: цайвар бага зэргийн цайвар',
+    '🧑🏻‍🫯‍🧑🏽' => 'бөх: цайвар дунд зэргийн',
+    '🧑🏻‍🫯‍🧑🏾' => 'бөх: цайвар бордуу',
+    '🧑🏻‍🫯‍🧑🏿' => 'бөх: цайвар бор',
+    '🧑🏼‍🫯‍🧑🏻' => 'бөх: бага зэргийн цайвар цайвар',
+    '🧑🏼‍🫯‍🧑🏽' => 'бөх: бага зэргийн цайвар дунд зэргийн',
+    '🧑🏼‍🫯‍🧑🏾' => 'бөх: бага зэргийн цайвар бордуу',
+    '🧑🏼‍🫯‍🧑🏿' => 'бөх: бага зэргийн цайвар бор',
+    '🧑🏽‍🫯‍🧑🏻' => 'бөх: дунд зэргийн цайвар',
+    '🧑🏽‍🫯‍🧑🏼' => 'бөх: дунд зэргийн бага зэргийн цайвар',
+    '🧑🏽‍🫯‍🧑🏾' => 'бөх: дунд зэргийн бордуу',
+    '🧑🏽‍🫯‍🧑🏿' => 'бөх: дунд зэргийн бор',
+    '🧑🏾‍🫯‍🧑🏻' => 'бөх: бордуу цайвар',
+    '🧑🏾‍🫯‍🧑🏼' => 'бөх: бордуу бага зэргийн цайвар',
+    '🧑🏾‍🫯‍🧑🏽' => 'бөх: бордуу дунд зэргийн',
+    '🧑🏾‍🫯‍🧑🏿' => 'бөх: бордуу бор',
+    '🧑🏿‍🫯‍🧑🏻' => 'бөх: бор цайвар',
+    '🧑🏿‍🫯‍🧑🏼' => 'бөх: бор бага зэргийн цайвар',
+    '🧑🏿‍🫯‍🧑🏽' => 'бөх: бор дунд зэргийн',
+    '🧑🏿‍🫯‍🧑🏾' => 'бөх: бор бордуу',
     '🧑🏻‍❤‍🧑🏼' => 'дундаа зүрхтэй хосууд: том хүн том хүн цайвар бага зэргийн цайвар',
     '🧑🏻‍❤‍🧑🏽' => 'дундаа зүрхтэй хосууд: том хүн том хүн цайвар дунд зэргийн',
     '🧑🏻‍❤‍🧑🏾' => 'дундаа зүрхтэй хосууд: том хүн том хүн цайвар бордуу',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'дундаа зүрхтэй хосууд: том хүн том хүн бор бага зэргийн цайвар',
     '🧑🏿‍❤‍🧑🏽' => 'дундаа зүрхтэй хосууд: том хүн том хүн бор дунд зэргийн',
     '🧑🏿‍❤‍🧑🏾' => 'дундаа зүрхтэй хосууд: том хүн том хүн бор бордуу',
+    '🧑🏻‍🐰‍🧑🏼' => 'үдэшлэгт байгаа бүсгүй: цайвар бага зэргийн цайвар',
+    '🧑🏻‍🐰‍🧑🏽' => 'үдэшлэгт байгаа бүсгүй: цайвар дунд зэргийн',
+    '🧑🏻‍🐰‍🧑🏾' => 'үдэшлэгт байгаа бүсгүй: цайвар бордуу',
+    '🧑🏻‍🐰‍🧑🏿' => 'үдэшлэгт байгаа бүсгүй: цайвар бор',
+    '🧑🏼‍🐰‍🧑🏻' => 'үдэшлэгт байгаа бүсгүй: бага зэргийн цайвар цайвар',
+    '🧑🏼‍🐰‍🧑🏽' => 'үдэшлэгт байгаа бүсгүй: бага зэргийн цайвар дунд зэргийн',
+    '🧑🏼‍🐰‍🧑🏾' => 'үдэшлэгт байгаа бүсгүй: бага зэргийн цайвар бордуу',
+    '🧑🏼‍🐰‍🧑🏿' => 'үдэшлэгт байгаа бүсгүй: бага зэргийн цайвар бор',
+    '🧑🏽‍🐰‍🧑🏻' => 'үдэшлэгт байгаа бүсгүй: дунд зэргийн цайвар',
+    '🧑🏽‍🐰‍🧑🏼' => 'үдэшлэгт байгаа бүсгүй: дунд зэргийн бага зэргийн цайвар',
+    '🧑🏽‍🐰‍🧑🏾' => 'үдэшлэгт байгаа бүсгүй: дунд зэргийн бордуу',
+    '🧑🏽‍🐰‍🧑🏿' => 'үдэшлэгт байгаа бүсгүй: дунд зэргийн бор',
+    '🧑🏾‍🐰‍🧑🏻' => 'үдэшлэгт байгаа бүсгүй: бордуу цайвар',
+    '🧑🏾‍🐰‍🧑🏼' => 'үдэшлэгт байгаа бүсгүй: бордуу бага зэргийн цайвар',
+    '🧑🏾‍🐰‍🧑🏽' => 'үдэшлэгт байгаа бүсгүй: бордуу дунд зэргийн',
+    '🧑🏾‍🐰‍🧑🏿' => 'үдэшлэгт байгаа бүсгүй: бордуу бор',
+    '🧑🏿‍🐰‍🧑🏻' => 'үдэшлэгт байгаа бүсгүй: бор цайвар',
+    '🧑🏿‍🐰‍🧑🏼' => 'үдэшлэгт байгаа бүсгүй: бор бага зэргийн цайвар',
+    '🧑🏿‍🐰‍🧑🏽' => 'үдэшлэгт байгаа бүсгүй: бор дунд зэргийн',
+    '🧑🏿‍🐰‍🧑🏾' => 'үдэшлэгт байгаа бүсгүй: бор бордуу',
+    '👨🏻‍🫯‍👨🏼' => 'барилдаж буй эрэгтэйчүүд: цайвар бага зэргийн цайвар',
+    '👨🏻‍🫯‍👨🏽' => 'барилдаж буй эрэгтэйчүүд: цайвар дунд зэргийн',
+    '👨🏻‍🫯‍👨🏾' => 'барилдаж буй эрэгтэйчүүд: цайвар бордуу',
+    '👨🏻‍🫯‍👨🏿' => 'барилдаж буй эрэгтэйчүүд: цайвар бор',
+    '👨🏼‍🫯‍👨🏻' => 'барилдаж буй эрэгтэйчүүд: бага зэргийн цайвар цайвар',
+    '👨🏼‍🫯‍👨🏽' => 'барилдаж буй эрэгтэйчүүд: бага зэргийн цайвар дунд зэргийн',
+    '👨🏼‍🫯‍👨🏾' => 'барилдаж буй эрэгтэйчүүд: бага зэргийн цайвар бордуу',
+    '👨🏼‍🫯‍👨🏿' => 'барилдаж буй эрэгтэйчүүд: бага зэргийн цайвар бор',
+    '👨🏽‍🫯‍👨🏻' => 'барилдаж буй эрэгтэйчүүд: дунд зэргийн цайвар',
+    '👨🏽‍🫯‍👨🏼' => 'барилдаж буй эрэгтэйчүүд: дунд зэргийн бага зэргийн цайвар',
+    '👨🏽‍🫯‍👨🏾' => 'барилдаж буй эрэгтэйчүүд: дунд зэргийн бордуу',
+    '👨🏽‍🫯‍👨🏿' => 'барилдаж буй эрэгтэйчүүд: дунд зэргийн бор',
+    '👨🏾‍🫯‍👨🏻' => 'барилдаж буй эрэгтэйчүүд: бордуу цайвар',
+    '👨🏾‍🫯‍👨🏼' => 'барилдаж буй эрэгтэйчүүд: бордуу бага зэргийн цайвар',
+    '👨🏾‍🫯‍👨🏽' => 'барилдаж буй эрэгтэйчүүд: бордуу дунд зэргийн',
+    '👨🏾‍🫯‍👨🏿' => 'барилдаж буй эрэгтэйчүүд: бордуу бор',
+    '👨🏿‍🫯‍👨🏻' => 'барилдаж буй эрэгтэйчүүд: бор цайвар',
+    '👨🏿‍🫯‍👨🏼' => 'барилдаж буй эрэгтэйчүүд: бор бага зэргийн цайвар',
+    '👨🏿‍🫯‍👨🏽' => 'барилдаж буй эрэгтэйчүүд: бор дунд зэргийн',
+    '👨🏿‍🫯‍👨🏾' => 'барилдаж буй эрэгтэйчүүд: бор бордуу',
     '👨🏻‍❤‍👨🏻' => 'дундаа зүрхтэй хосууд: эрэгтэй хүн эрэгтэй хүн цайвар',
     '👨🏻‍❤‍👨🏼' => 'дундаа зүрхтэй хосууд: эрэгтэй хүн эрэгтэй хүн цайвар бага зэргийн цайвар',
     '👨🏻‍❤‍👨🏽' => 'дундаа зүрхтэй хосууд: эрэгтэй хүн эрэгтэй хүн цайвар дунд зэргийн',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'дундаа зүрхтэй хосууд: эрэгтэй хүн эрэгтэй хүн бор дунд зэргийн',
     '👨🏿‍❤‍👨🏾' => 'дундаа зүрхтэй хосууд: эрэгтэй хүн эрэгтэй хүн бор бордуу',
     '👨🏿‍❤‍👨🏿' => 'дундаа зүрхтэй хосууд: эрэгтэй хүн эрэгтэй хүн бор',
+    '👨🏻‍🐰‍👨🏼' => 'цэнгэж буй эрэгтэйчүүд: цайвар бага зэргийн цайвар',
+    '👨🏻‍🐰‍👨🏽' => 'цэнгэж буй эрэгтэйчүүд: цайвар дунд зэргийн',
+    '👨🏻‍🐰‍👨🏾' => 'цэнгэж буй эрэгтэйчүүд: цайвар бордуу',
+    '👨🏻‍🐰‍👨🏿' => 'цэнгэж буй эрэгтэйчүүд: цайвар бор',
+    '👨🏼‍🐰‍👨🏻' => 'цэнгэж буй эрэгтэйчүүд: бага зэргийн цайвар цайвар',
+    '👨🏼‍🐰‍👨🏽' => 'цэнгэж буй эрэгтэйчүүд: бага зэргийн цайвар дунд зэргийн',
+    '👨🏼‍🐰‍👨🏾' => 'цэнгэж буй эрэгтэйчүүд: бага зэргийн цайвар бордуу',
+    '👨🏼‍🐰‍👨🏿' => 'цэнгэж буй эрэгтэйчүүд: бага зэргийн цайвар бор',
+    '👨🏽‍🐰‍👨🏻' => 'цэнгэж буй эрэгтэйчүүд: дунд зэргийн цайвар',
+    '👨🏽‍🐰‍👨🏼' => 'цэнгэж буй эрэгтэйчүүд: дунд зэргийн бага зэргийн цайвар',
+    '👨🏽‍🐰‍👨🏾' => 'цэнгэж буй эрэгтэйчүүд: дунд зэргийн бордуу',
+    '👨🏽‍🐰‍👨🏿' => 'цэнгэж буй эрэгтэйчүүд: дунд зэргийн бор',
+    '👨🏾‍🐰‍👨🏻' => 'цэнгэж буй эрэгтэйчүүд: бордуу цайвар',
+    '👨🏾‍🐰‍👨🏼' => 'цэнгэж буй эрэгтэйчүүд: бордуу бага зэргийн цайвар',
+    '👨🏾‍🐰‍👨🏽' => 'цэнгэж буй эрэгтэйчүүд: бордуу дунд зэргийн',
+    '👨🏾‍🐰‍👨🏿' => 'цэнгэж буй эрэгтэйчүүд: бордуу бор',
+    '👨🏿‍🐰‍👨🏻' => 'цэнгэж буй эрэгтэйчүүд: бор цайвар',
+    '👨🏿‍🐰‍👨🏼' => 'цэнгэж буй эрэгтэйчүүд: бор бага зэргийн цайвар',
+    '👨🏿‍🐰‍👨🏽' => 'цэнгэж буй эрэгтэйчүүд: бор дунд зэргийн',
+    '👨🏿‍🐰‍👨🏾' => 'цэнгэж буй эрэгтэйчүүд: бор бордуу',
+    '👩🏻‍🫯‍👩🏼' => 'барилдаж буй эмэгтэйчүүд: цайвар бага зэргийн цайвар',
+    '👩🏻‍🫯‍👩🏽' => 'барилдаж буй эмэгтэйчүүд: цайвар дунд зэргийн',
+    '👩🏻‍🫯‍👩🏾' => 'барилдаж буй эмэгтэйчүүд: цайвар бордуу',
+    '👩🏻‍🫯‍👩🏿' => 'барилдаж буй эмэгтэйчүүд: цайвар бор',
+    '👩🏼‍🫯‍👩🏻' => 'барилдаж буй эмэгтэйчүүд: бага зэргийн цайвар цайвар',
+    '👩🏼‍🫯‍👩🏽' => 'барилдаж буй эмэгтэйчүүд: бага зэргийн цайвар дунд зэргийн',
+    '👩🏼‍🫯‍👩🏾' => 'барилдаж буй эмэгтэйчүүд: бага зэргийн цайвар бордуу',
+    '👩🏼‍🫯‍👩🏿' => 'барилдаж буй эмэгтэйчүүд: бага зэргийн цайвар бор',
+    '👩🏽‍🫯‍👩🏻' => 'барилдаж буй эмэгтэйчүүд: дунд зэргийн цайвар',
+    '👩🏽‍🫯‍👩🏼' => 'барилдаж буй эмэгтэйчүүд: дунд зэргийн бага зэргийн цайвар',
+    '👩🏽‍🫯‍👩🏾' => 'барилдаж буй эмэгтэйчүүд: дунд зэргийн бордуу',
+    '👩🏽‍🫯‍👩🏿' => 'барилдаж буй эмэгтэйчүүд: дунд зэргийн бор',
+    '👩🏾‍🫯‍👩🏻' => 'барилдаж буй эмэгтэйчүүд: бордуу цайвар',
+    '👩🏾‍🫯‍👩🏼' => 'барилдаж буй эмэгтэйчүүд: бордуу бага зэргийн цайвар',
+    '👩🏾‍🫯‍👩🏽' => 'барилдаж буй эмэгтэйчүүд: бордуу дунд зэргийн',
+    '👩🏾‍🫯‍👩🏿' => 'барилдаж буй эмэгтэйчүүд: бордуу бор',
+    '👩🏿‍🫯‍👩🏻' => 'барилдаж буй эмэгтэйчүүд: бор цайвар',
+    '👩🏿‍🫯‍👩🏼' => 'барилдаж буй эмэгтэйчүүд: бор бага зэргийн цайвар',
+    '👩🏿‍🫯‍👩🏽' => 'барилдаж буй эмэгтэйчүүд: бор дунд зэргийн',
+    '👩🏿‍🫯‍👩🏾' => 'барилдаж буй эмэгтэйчүүд: бор бордуу',
     '👩🏻‍❤‍👨🏻' => 'дундаа зүрхтэй хосууд: эмэгтэй хүн эрэгтэй хүн цайвар',
     '👩🏻‍❤‍👨🏼' => 'дундаа зүрхтэй хосууд: эмэгтэй хүн эрэгтэй хүн цайвар бага зэргийн цайвар',
     '👩🏻‍❤‍👨🏽' => 'дундаа зүрхтэй хосууд: эмэгтэй хүн эрэгтэй хүн цайвар дунд зэргийн',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'дундаа зүрхтэй хосууд: эмэгтэй хүн эмэгтэй хүн бор дунд зэргийн',
     '👩🏿‍❤‍👩🏾' => 'дундаа зүрхтэй хосууд: эмэгтэй хүн эмэгтэй хүн бор бордуу',
     '👩🏿‍❤‍👩🏿' => 'дундаа зүрхтэй хосууд: эмэгтэй хүн эмэгтэй хүн бор',
+    '👩🏻‍🐰‍👩🏼' => 'цэнгэж буй эмэгтэйчүүд: цайвар бага зэргийн цайвар',
+    '👩🏻‍🐰‍👩🏽' => 'цэнгэж буй эмэгтэйчүүд: цайвар дунд зэргийн',
+    '👩🏻‍🐰‍👩🏾' => 'цэнгэж буй эмэгтэйчүүд: цайвар бордуу',
+    '👩🏻‍🐰‍👩🏿' => 'цэнгэж буй эмэгтэйчүүд: цайвар бор',
+    '👩🏼‍🐰‍👩🏻' => 'цэнгэж буй эмэгтэйчүүд: бага зэргийн цайвар цайвар',
+    '👩🏼‍🐰‍👩🏽' => 'цэнгэж буй эмэгтэйчүүд: бага зэргийн цайвар дунд зэргийн',
+    '👩🏼‍🐰‍👩🏾' => 'цэнгэж буй эмэгтэйчүүд: бага зэргийн цайвар бордуу',
+    '👩🏼‍🐰‍👩🏿' => 'цэнгэж буй эмэгтэйчүүд: бага зэргийн цайвар бор',
+    '👩🏽‍🐰‍👩🏻' => 'цэнгэж буй эмэгтэйчүүд: дунд зэргийн цайвар',
+    '👩🏽‍🐰‍👩🏼' => 'цэнгэж буй эмэгтэйчүүд: дунд зэргийн бага зэргийн цайвар',
+    '👩🏽‍🐰‍👩🏾' => 'цэнгэж буй эмэгтэйчүүд: дунд зэргийн бордуу',
+    '👩🏽‍🐰‍👩🏿' => 'цэнгэж буй эмэгтэйчүүд: дунд зэргийн бор',
+    '👩🏾‍🐰‍👩🏻' => 'цэнгэж буй эмэгтэйчүүд: бордуу цайвар',
+    '👩🏾‍🐰‍👩🏼' => 'цэнгэж буй эмэгтэйчүүд: бордуу бага зэргийн цайвар',
+    '👩🏾‍🐰‍👩🏽' => 'цэнгэж буй эмэгтэйчүүд: бордуу дунд зэргийн',
+    '👩🏾‍🐰‍👩🏿' => 'цэнгэж буй эмэгтэйчүүд: бордуу бор',
+    '👩🏿‍🐰‍👩🏻' => 'цэнгэж буй эмэгтэйчүүд: бор цайвар',
+    '👩🏿‍🐰‍👩🏼' => 'цэнгэж буй эмэгтэйчүүд: бор бага зэргийн цайвар',
+    '👩🏿‍🐰‍👩🏽' => 'цэнгэж буй эмэгтэйчүүд: бор дунд зэргийн',
+    '👩🏿‍🐰‍👩🏾' => 'цэнгэж буй эмэгтэйчүүд: бор бордуу',
     '🧑🏻‍🤝‍🧑🏻' => 'гар барилцаж буй хүмүүс: цайвар',
     '🧑🏻‍🤝‍🧑🏼' => 'гар барилцаж буй хүмүүс: цайвар бага зэргийн цайвар',
     '🧑🏻‍🤝‍🧑🏽' => 'гар барилцаж буй хүмүүс: цайвар дунд зэргийн',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'туг: Шотланд',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'туг: Уэльс',
     '🧑‍🧑‍🧒‍🧒' => 'гэр бүл: насанд хүрсэн хүн, насанд хүрсэн хүн, хүүхэд, хүүхэд',
-    '🚶🏻‍♀‍➡' => 'алхаж буй эмэгтэй баруун тийш харсан',
-    '🚶🏼‍♀‍➡' => 'алхаж буй эмэгтэй баруун тийш харсан',
-    '🚶🏽‍♀‍➡' => 'алхаж буй эмэгтэй баруун тийш харсан',
-    '🚶🏾‍♀‍➡' => 'алхаж буй эмэгтэй баруун тийш харсан',
-    '🚶🏿‍♀‍➡' => 'алхаж буй эмэгтэй баруун тийш харсан',
-    '🚶🏻‍♂‍➡' => 'алхаж буй эрэгтэй баруун тийш харсан',
-    '🚶🏼‍♂‍➡' => 'алхаж буй эрэгтэй баруун тийш харсан',
-    '🚶🏽‍♂‍➡' => 'алхаж буй эрэгтэй баруун тийш харсан',
-    '🚶🏾‍♂‍➡' => 'алхаж буй эрэгтэй баруун тийш харсан',
-    '🚶🏿‍♂‍➡' => 'алхаж буй эрэгтэй баруун тийш харсан',
-    '🧎🏻‍♀‍➡' => 'сөхөрч буй эмэгтэй баруун тийш харсан',
-    '🧎🏼‍♀‍➡' => 'сөхөрч буй эмэгтэй баруун тийш харсан',
-    '🧎🏽‍♀‍➡' => 'сөхөрч буй эмэгтэй баруун тийш харсан',
-    '🧎🏾‍♀‍➡' => 'сөхөрч буй эмэгтэй баруун тийш харсан',
-    '🧎🏿‍♀‍➡' => 'сөхөрч буй эмэгтэй баруун тийш харсан',
-    '🧎🏻‍♂‍➡' => 'сөхөрч буй эрэгтэй баруун тийш харсан',
-    '🧎🏼‍♂‍➡' => 'сөхөрч буй эрэгтэй баруун тийш харсан',
-    '🧎🏽‍♂‍➡' => 'сөхөрч буй эрэгтэй баруун тийш харсан',
-    '🧎🏾‍♂‍➡' => 'сөхөрч буй эрэгтэй баруун тийш харсан',
-    '🧎🏿‍♂‍➡' => 'сөхөрч буй эрэгтэй баруун тийш харсан',
-    '🧑🏻‍🦯‍➡' => 'метал илрүүлэгчтэй хүн баруун тийш харсан',
-    '🧑🏼‍🦯‍➡' => 'метал илрүүлэгчтэй хүн баруун тийш харсан',
-    '🧑🏽‍🦯‍➡' => 'метал илрүүлэгчтэй хүн баруун тийш харсан',
-    '🧑🏾‍🦯‍➡' => 'метал илрүүлэгчтэй хүн баруун тийш харсан',
-    '🧑🏿‍🦯‍➡' => 'метал илрүүлэгчтэй хүн баруун тийш харсан',
-    '👨🏻‍🦯‍➡' => 'таягтай хараагүй эрэгтэй баруун тийш харсан',
-    '👨🏼‍🦯‍➡' => 'таягтай хараагүй эрэгтэй баруун тийш харсан',
-    '👨🏽‍🦯‍➡' => 'таягтай хараагүй эрэгтэй баруун тийш харсан',
-    '👨🏾‍🦯‍➡' => 'таягтай хараагүй эрэгтэй баруун тийш харсан',
-    '👨🏿‍🦯‍➡' => 'таягтай хараагүй эрэгтэй баруун тийш харсан',
-    '👩🏻‍🦯‍➡' => 'таягтай хараагүй эмэгтэй баруун тийш харсан',
-    '👩🏼‍🦯‍➡' => 'таягтай хараагүй эмэгтэй баруун тийш харсан',
-    '👩🏽‍🦯‍➡' => 'таягтай хараагүй эмэгтэй баруун тийш харсан',
-    '👩🏾‍🦯‍➡' => 'таягтай хараагүй эмэгтэй баруун тийш харсан',
-    '👩🏿‍🦯‍➡' => 'таягтай хараагүй эмэгтэй баруун тийш харсан',
-    '🧑🏻‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн баруун тийш харсан',
-    '🧑🏼‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн баруун тийш харсан',
-    '🧑🏽‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн баруун тийш харсан',
-    '🧑🏾‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн баруун тийш харсан',
-    '🧑🏿‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн баруун тийш харсан',
-    '👨🏻‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👨🏼‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👨🏽‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👨🏾‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👨🏿‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👩🏻‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '👩🏼‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '👩🏽‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '👩🏾‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '👩🏿‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '🧑🏻‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн баруун тийш харсан',
-    '🧑🏼‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн баруун тийш харсан',
-    '🧑🏽‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн баруун тийш харсан',
-    '🧑🏾‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн баруун тийш харсан',
-    '🧑🏿‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн баруун тийш харсан',
-    '👨🏻‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👨🏼‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👨🏽‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👨🏾‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👨🏿‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👩🏻‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '👩🏼‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '👩🏽‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '👩🏾‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '👩🏿‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '🏃🏻‍♀‍➡' => 'гүйж буй эмэгтэй баруун тийш харсан',
-    '🏃🏼‍♀‍➡' => 'гүйж буй эмэгтэй баруун тийш харсан',
-    '🏃🏽‍♀‍➡' => 'гүйж буй эмэгтэй баруун тийш харсан',
-    '🏃🏾‍♀‍➡' => 'гүйж буй эмэгтэй баруун тийш харсан',
-    '🏃🏿‍♀‍➡' => 'гүйж буй эмэгтэй баруун тийш харсан',
-    '🏃🏻‍♂‍➡' => 'гүйж буй эрэгтэй баруун тийш харсан',
-    '🏃🏼‍♂‍➡' => 'гүйж буй эрэгтэй баруун тийш харсан',
-    '🏃🏽‍♂‍➡' => 'гүйж буй эрэгтэй баруун тийш харсан',
-    '🏃🏾‍♂‍➡' => 'гүйж буй эрэгтэй баруун тийш харсан',
-    '🏃🏿‍♂‍➡' => 'гүйж буй эрэгтэй баруун тийш харсан',
+    '🚶🏻‍♀‍➡' => 'алхаж буй эмэгтэй: цайвар баруун тийш харсан',
+    '🚶🏼‍♀‍➡' => 'алхаж буй эмэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '🚶🏽‍♀‍➡' => 'алхаж буй эмэгтэй: дунд зэргийн баруун тийш харсан',
+    '🚶🏾‍♀‍➡' => 'алхаж буй эмэгтэй: бордуу баруун тийш харсан',
+    '🚶🏿‍♀‍➡' => 'алхаж буй эмэгтэй: бор баруун тийш харсан',
+    '🚶🏻‍♂‍➡' => 'алхаж буй эрэгтэй: цайвар баруун тийш харсан',
+    '🚶🏼‍♂‍➡' => 'алхаж буй эрэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '🚶🏽‍♂‍➡' => 'алхаж буй эрэгтэй: дунд зэргийн баруун тийш харсан',
+    '🚶🏾‍♂‍➡' => 'алхаж буй эрэгтэй: бордуу баруун тийш харсан',
+    '🚶🏿‍♂‍➡' => 'алхаж буй эрэгтэй: бор баруун тийш харсан',
+    '🧎🏻‍♀‍➡' => 'сөхөрч буй эмэгтэй: цайвар баруун тийш харсан',
+    '🧎🏼‍♀‍➡' => 'сөхөрч буй эмэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '🧎🏽‍♀‍➡' => 'сөхөрч буй эмэгтэй: дунд зэргийн баруун тийш харсан',
+    '🧎🏾‍♀‍➡' => 'сөхөрч буй эмэгтэй: бордуу баруун тийш харсан',
+    '🧎🏿‍♀‍➡' => 'сөхөрч буй эмэгтэй: бор баруун тийш харсан',
+    '🧎🏻‍♂‍➡' => 'сөхөрч буй эрэгтэй: цайвар баруун тийш харсан',
+    '🧎🏼‍♂‍➡' => 'сөхөрч буй эрэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '🧎🏽‍♂‍➡' => 'сөхөрч буй эрэгтэй: дунд зэргийн баруун тийш харсан',
+    '🧎🏾‍♂‍➡' => 'сөхөрч буй эрэгтэй: бордуу баруун тийш харсан',
+    '🧎🏿‍♂‍➡' => 'сөхөрч буй эрэгтэй: бор баруун тийш харсан',
+    '🧑🏻‍🦯‍➡' => 'метал илрүүлэгчтэй хүн: цайвар баруун тийш харсан',
+    '🧑🏼‍🦯‍➡' => 'метал илрүүлэгчтэй хүн: бага зэргийн цайвар баруун тийш харсан',
+    '🧑🏽‍🦯‍➡' => 'метал илрүүлэгчтэй хүн: дунд зэргийн баруун тийш харсан',
+    '🧑🏾‍🦯‍➡' => 'метал илрүүлэгчтэй хүн: бордуу баруун тийш харсан',
+    '🧑🏿‍🦯‍➡' => 'метал илрүүлэгчтэй хүн: бор баруун тийш харсан',
+    '👨🏻‍🦯‍➡' => 'таягтай хараагүй эрэгтэй: цайвар баруун тийш харсан',
+    '👨🏼‍🦯‍➡' => 'таягтай хараагүй эрэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '👨🏽‍🦯‍➡' => 'таягтай хараагүй эрэгтэй: дунд зэргийн баруун тийш харсан',
+    '👨🏾‍🦯‍➡' => 'таягтай хараагүй эрэгтэй: бордуу баруун тийш харсан',
+    '👨🏿‍🦯‍➡' => 'таягтай хараагүй эрэгтэй: бор баруун тийш харсан',
+    '👩🏻‍🦯‍➡' => 'таягтай хараагүй эмэгтэй: цайвар баруун тийш харсан',
+    '👩🏼‍🦯‍➡' => 'таягтай хараагүй эмэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '👩🏽‍🦯‍➡' => 'таягтай хараагүй эмэгтэй: дунд зэргийн баруун тийш харсан',
+    '👩🏾‍🦯‍➡' => 'таягтай хараагүй эмэгтэй: бордуу баруун тийш харсан',
+    '👩🏿‍🦯‍➡' => 'таягтай хараагүй эмэгтэй: бор баруун тийш харсан',
+    '🧑🏻‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн: цайвар баруун тийш харсан',
+    '🧑🏼‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн: бага зэргийн цайвар баруун тийш харсан',
+    '🧑🏽‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн: дунд зэргийн баруун тийш харсан',
+    '🧑🏾‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн: бордуу баруун тийш харсан',
+    '🧑🏿‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн: бор баруун тийш харсан',
+    '👨🏻‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй: цайвар баруун тийш харсан',
+    '👨🏼‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '👨🏽‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй: дунд зэргийн баруун тийш харсан',
+    '👨🏾‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй: бордуу баруун тийш харсан',
+    '👨🏿‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй: бор баруун тийш харсан',
+    '👩🏻‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй: цайвар баруун тийш харсан',
+    '👩🏼‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '👩🏽‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй: дунд зэргийн баруун тийш харсан',
+    '👩🏾‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй: бордуу баруун тийш харсан',
+    '👩🏿‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй: бор баруун тийш харсан',
+    '🧑🏻‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн: цайвар баруун тийш харсан',
+    '🧑🏼‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн: бага зэргийн цайвар баруун тийш харсан',
+    '🧑🏽‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн: дунд зэргийн баруун тийш харсан',
+    '🧑🏾‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн: бордуу баруун тийш харсан',
+    '🧑🏿‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн: бор баруун тийш харсан',
+    '👨🏻‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй: цайвар баруун тийш харсан',
+    '👨🏼‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '👨🏽‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй: дунд зэргийн баруун тийш харсан',
+    '👨🏾‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй: бордуу баруун тийш харсан',
+    '👨🏿‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй: бор баруун тийш харсан',
+    '👩🏻‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй: цайвар баруун тийш харсан',
+    '👩🏼‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '👩🏽‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй: дунд зэргийн баруун тийш харсан',
+    '👩🏾‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй: бордуу баруун тийш харсан',
+    '👩🏿‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй: бор баруун тийш харсан',
+    '🏃🏻‍♀‍➡' => 'гүйж буй эмэгтэй: цайвар баруун тийш харсан',
+    '🏃🏼‍♀‍➡' => 'гүйж буй эмэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '🏃🏽‍♀‍➡' => 'гүйж буй эмэгтэй: дунд зэргийн баруун тийш харсан',
+    '🏃🏾‍♀‍➡' => 'гүйж буй эмэгтэй: бордуу баруун тийш харсан',
+    '🏃🏿‍♀‍➡' => 'гүйж буй эмэгтэй: бор баруун тийш харсан',
+    '🏃🏻‍♂‍➡' => 'гүйж буй эрэгтэй: цайвар баруун тийш харсан',
+    '🏃🏼‍♂‍➡' => 'гүйж буй эрэгтэй: бага зэргийн цайвар баруун тийш харсан',
+    '🏃🏽‍♂‍➡' => 'гүйж буй эрэгтэй: дунд зэргийн баруун тийш харсан',
+    '🏃🏾‍♂‍➡' => 'гүйж буй эрэгтэй: бордуу баруун тийш харсан',
+    '🏃🏿‍♂‍➡' => 'гүйж буй эрэгтэй: бор баруун тийш харсан',
     '🫱🏻‍🫲🏼' => 'гар барилт: цайвар бага зэргийн цайвар',
     '🫱🏻‍🫲🏽' => 'гар барилт: цайвар дунд зэргийн',
     '🫱🏻‍🫲🏾' => 'гар барилт: цайвар бордуу',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'гар барилт: бор бага зэргийн цайвар',
     '🫱🏿‍🫲🏽' => 'гар барилт: бор дунд зэргийн',
     '🫱🏿‍🫲🏾' => 'гар барилт: бор бордуу',
-    '🚶‍♀‍➡' => 'алхаж буй эмэгтэй баруун тийш харсан',
-    '🚶‍♂‍➡' => 'алхаж буй эрэгтэй баруун тийш харсан',
-    '🧎‍♀‍➡' => 'сөхөрч буй эмэгтэй баруун тийш харсан',
-    '🧎‍♂‍➡' => 'сөхөрч буй эрэгтэй баруун тийш харсан',
-    '🧑‍🦯‍➡' => 'метал илрүүлэгчтэй хүн баруун тийш харсан',
-    '👨‍🦯‍➡' => 'таягтай хараагүй эрэгтэй баруун тийш харсан',
-    '👩‍🦯‍➡' => 'таягтай хараагүй эмэгтэй баруун тийш харсан',
-    '🧑‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн баруун тийш харсан',
-    '👨‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👩‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '🧑‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн баруун тийш харсан',
-    '👨‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй баруун тийш харсан',
-    '👩‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй баруун тийш харсан',
-    '🏃‍♀‍➡' => 'гүйж буй эмэгтэй баруун тийш харсан',
-    '🏃‍♂‍➡' => 'гүйж буй эрэгтэй баруун тийш харсан',
+    '🚶‍♀‍➡' => 'алхаж буй эмэгтэй: баруун тийш харсан',
+    '🚶‍♂‍➡' => 'алхаж буй эрэгтэй: баруун тийш харсан',
+    '🧎‍♀‍➡' => 'сөхөрч буй эмэгтэй: баруун тийш харсан',
+    '🧎‍♂‍➡' => 'сөхөрч буй эрэгтэй: баруун тийш харсан',
+    '🧑‍🦯‍➡' => 'метал илрүүлэгчтэй хүн: баруун тийш харсан',
+    '👨‍🦯‍➡' => 'таягтай хараагүй эрэгтэй: баруун тийш харсан',
+    '👩‍🦯‍➡' => 'таягтай хараагүй эмэгтэй: баруун тийш харсан',
+    '🧑‍🦼‍➡' => 'автомат удирдлагатай тэргэнцэртэй хүн: баруун тийш харсан',
+    '👨‍🦼‍➡' => 'моторт тэргэнцэртэй эрэгтэй: баруун тийш харсан',
+    '👩‍🦼‍➡' => 'моторт тэргэнцэртэй эмэгтэй: баруун тийш харсан',
+    '🧑‍🦽‍➡' => 'гар ажиллагаатай тэргэнцэртэй хүн: баруун тийш харсан',
+    '👨‍🦽‍➡' => 'тэргэнцэртэй эрэгтэй: баруун тийш харсан',
+    '👩‍🦽‍➡' => 'тэргэнцэртэй эмэгтэй: баруун тийш харсан',
+    '🏃‍♀‍➡' => 'гүйж буй эмэгтэй: баруун тийш харсан',
+    '🏃‍♂‍➡' => 'гүйж буй эрэгтэй: баруун тийш харсан',
     '👩‍❤‍👨' => 'дундаа зүрхтэй хосууд: эмэгтэй хүн эрэгтэй хүн',
     '👨‍❤‍👨' => 'дундаа зүрхтэй хосууд: эрэгтэй хүн эрэгтэй хүн',
     '👩‍❤‍👩' => 'дундаа зүрхтэй хосууд: эмэгтэй хүн эмэгтэй хүн',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'том хүн: дунд зэргийн халзан',
     '🧑🏾‍🦲' => 'том хүн: бордуу халзан',
     '🧑🏿‍🦲' => 'том хүн: бор халзан',
+    '🧑🏻‍🩰' => 'баллетчин: цайвар',
+    '🧑🏼‍🩰' => 'баллетчин: бага зэргийн цайвар',
+    '🧑🏽‍🩰' => 'баллетчин: дунд зэргийн',
+    '🧑🏾‍🩰' => 'баллетчин: бордуу',
+    '🧑🏿‍🩰' => 'баллетчин: бор',
     '🧔🏻‍♂' => 'эрэгтэй: цайвар сахал',
     '🧔🏼‍♂' => 'эрэгтэй: бага зэргийн цайвар сахал',
     '🧔🏽‍♂' => 'эрэгтэй: дунд зэргийн сахал',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'алхаж буй эмэгтэй: дунд зэргийн',
     '🚶🏾‍♀' => 'алхаж буй эмэгтэй: бордуу',
     '🚶🏿‍♀' => 'алхаж буй эмэгтэй: бор',
-    '🚶🏻‍➡' => 'алхаж буй хүн баруун тийш харсан',
-    '🚶🏼‍➡' => 'алхаж буй хүн баруун тийш харсан',
-    '🚶🏽‍➡' => 'алхаж буй хүн баруун тийш харсан',
-    '🚶🏾‍➡' => 'алхаж буй хүн баруун тийш харсан',
-    '🚶🏿‍➡' => 'алхаж буй хүн баруун тийш харсан',
+    '🚶🏻‍➡' => 'алхаж буй хүн: цайвар баруун тийш харсан',
+    '🚶🏼‍➡' => 'алхаж буй хүн: бага зэргийн цайвар баруун тийш харсан',
+    '🚶🏽‍➡' => 'алхаж буй хүн: дунд зэргийн баруун тийш харсан',
+    '🚶🏾‍➡' => 'алхаж буй хүн: бордуу баруун тийш харсан',
+    '🚶🏿‍➡' => 'алхаж буй хүн: бор баруун тийш харсан',
     '🧍🏻‍♂' => 'зогсож буй эрэгтэй: цайвар',
     '🧍🏼‍♂' => 'зогсож буй эрэгтэй: бага зэргийн цайвар',
     '🧍🏽‍♂' => 'зогсож буй эрэгтэй: дунд зэргийн',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'сөхөрч буй эмэгтэй: дунд зэргийн',
     '🧎🏾‍♀' => 'сөхөрч буй эмэгтэй: бордуу',
     '🧎🏿‍♀' => 'сөхөрч буй эмэгтэй: бор',
-    '🧎🏻‍➡' => 'сөхөрч суусан хүн баруун тийш харсан',
-    '🧎🏼‍➡' => 'сөхөрч суусан хүн баруун тийш харсан',
-    '🧎🏽‍➡' => 'сөхөрч суусан хүн баруун тийш харсан',
-    '🧎🏾‍➡' => 'сөхөрч суусан хүн баруун тийш харсан',
-    '🧎🏿‍➡' => 'сөхөрч суусан хүн баруун тийш харсан',
+    '🧎🏻‍➡' => 'сөхөрч суусан хүн: цайвар баруун тийш харсан',
+    '🧎🏼‍➡' => 'сөхөрч суусан хүн: бага зэргийн цайвар баруун тийш харсан',
+    '🧎🏽‍➡' => 'сөхөрч суусан хүн: дунд зэргийн баруун тийш харсан',
+    '🧎🏾‍➡' => 'сөхөрч суусан хүн: бордуу баруун тийш харсан',
+    '🧎🏿‍➡' => 'сөхөрч суусан хүн: бор баруун тийш харсан',
     '🧑🏻‍🦯' => 'метал илрүүлэгчтэй хүн: цайвар',
     '🧑🏼‍🦯' => 'метал илрүүлэгчтэй хүн: бага зэргийн цайвар',
     '🧑🏽‍🦯' => 'метал илрүүлэгчтэй хүн: дунд зэргийн',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'гүйж буй эмэгтэй: дунд зэргийн',
     '🏃🏾‍♀' => 'гүйж буй эмэгтэй: бордуу',
     '🏃🏿‍♀' => 'гүйж буй эмэгтэй: бор',
-    '🏃🏻‍➡' => 'гүйж байгаа хүн баруун тийш харсан',
-    '🏃🏼‍➡' => 'гүйж байгаа хүн баруун тийш харсан',
-    '🏃🏽‍➡' => 'гүйж байгаа хүн баруун тийш харсан',
-    '🏃🏾‍➡' => 'гүйж байгаа хүн баруун тийш харсан',
-    '🏃🏿‍➡' => 'гүйж байгаа хүн баруун тийш харсан',
+    '🏃🏻‍➡' => 'гүйж байгаа хүн: цайвар баруун тийш харсан',
+    '🏃🏼‍➡' => 'гүйж байгаа хүн: бага зэргийн цайвар баруун тийш харсан',
+    '🏃🏽‍➡' => 'гүйж байгаа хүн: дунд зэргийн баруун тийш харсан',
+    '🏃🏾‍➡' => 'гүйж байгаа хүн: бордуу баруун тийш харсан',
+    '🏃🏿‍➡' => 'гүйж байгаа хүн: бор баруун тийш харсан',
+    '👯🏻‍♀' => 'цэнгэж буй эмэгтэйчүүд: цайвар',
+    '👯🏼‍♀' => 'цэнгэж буй эмэгтэйчүүд: бага зэргийн цайвар',
+    '👯🏽‍♀' => 'цэнгэж буй эмэгтэйчүүд: дунд зэргийн',
+    '👯🏾‍♀' => 'цэнгэж буй эмэгтэйчүүд: бордуу',
+    '👯🏿‍♀' => 'цэнгэж буй эмэгтэйчүүд: бор',
+    '👯🏻‍♂' => 'цэнгэж буй эрэгтэйчүүд: цайвар',
+    '👯🏼‍♂' => 'цэнгэж буй эрэгтэйчүүд: бага зэргийн цайвар',
+    '👯🏽‍♂' => 'цэнгэж буй эрэгтэйчүүд: дунд зэргийн',
+    '👯🏾‍♂' => 'цэнгэж буй эрэгтэйчүүд: бордуу',
+    '👯🏿‍♂' => 'цэнгэж буй эрэгтэйчүүд: бор',
     '🧖🏻‍♂' => 'уур савссан өрөөнд байгаа эрэгтэй: цайвар',
     '🧖🏼‍♂' => 'уур савссан өрөөнд байгаа эрэгтэй: бага зэргийн цайвар',
     '🧖🏽‍♂' => 'уур савссан өрөөнд байгаа эрэгтэй: дунд зэргийн',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'сальто эргэх эмэгтэй: дунд зэргийн',
     '🤸🏾‍♀' => 'сальто эргэх эмэгтэй: бордуу',
     '🤸🏿‍♀' => 'сальто эргэх эмэгтэй: бор',
+    '🤼🏻‍♀' => 'барилдаж буй эмэгтэйчүүд: цайвар',
+    '🤼🏼‍♀' => 'барилдаж буй эмэгтэйчүүд: бага зэргийн цайвар',
+    '🤼🏽‍♀' => 'барилдаж буй эмэгтэйчүүд: дунд зэргийн',
+    '🤼🏾‍♀' => 'барилдаж буй эмэгтэйчүүд: бордуу',
+    '🤼🏿‍♀' => 'барилдаж буй эмэгтэйчүүд: бор',
+    '🤼🏻‍♂' => 'барилдаж буй эрэгтэйчүүд: цайвар',
+    '🤼🏼‍♂' => 'барилдаж буй эрэгтэйчүүд: бага зэргийн цайвар',
+    '🤼🏽‍♂' => 'барилдаж буй эрэгтэйчүүд: дунд зэргийн',
+    '🤼🏾‍♂' => 'барилдаж буй эрэгтэйчүүд: бордуу',
+    '🤼🏿‍♂' => 'барилдаж буй эрэгтэйчүүд: бор',
     '🤽🏻‍♂' => 'усан поло тоглох эрэгтэй: цайвар',
     '🤽🏼‍♂' => 'усан поло тоглох эрэгтэй: бага зэргийн цайвар',
     '🤽🏽‍♂' => 'усан поло тоглох эрэгтэй: дунд зэргийн',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'эмэгтэй хүн: буржгар үс',
     '👩‍🦳' => 'эмэгтэй хүн: цагаан үс',
     '👩‍🦲' => 'эмэгтэй хүн: халзан',
-    '🚶‍➡' => 'алхаж буй хүн баруун тийш харсан',
-    '🧎‍➡' => 'сөхөрч суусан хүн баруун тийш харсан',
-    '🏃‍➡' => 'гүйж байгаа хүн баруун тийш харсан',
+    '🚶‍➡' => 'алхаж буй хүн: баруун тийш харсан',
+    '🧎‍➡' => 'сөхөрч суусан хүн: баруун тийш харсан',
+    '🏃‍➡' => 'гүйж байгаа хүн: баруун тийш харсан',
     '👨‍👦' => 'гэр бүл: эрэгтэй хүн эрэгтэй хүүхэд',
     '👨‍👧' => 'гэр бүл: эрэгтэй хүн эмэгтэй хүүхэд',
     '👩‍👦' => 'гэр бүл: эмэгтэй хүн эрэгтэй хүүхэд',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'тэргэнцэртэй эмэгтэй',
     '🏃‍♂' => 'гүйж буй эрэгтэй',
     '🏃‍♀' => 'гүйж буй эмэгтэй',
+    '🧑‍🩰' => 'баллетчин',
     '👯‍♂' => 'цэнгэж буй эрэгтэйчүүд',
     '👯‍♀' => 'цэнгэж буй эмэгтэйчүүд',
     '🧖‍♂' => 'уур савссан өрөөнд байгаа эрэгтэй',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'хослол өмссөн эрэгтэй: дунд зэргийн',
     '🕴🏾' => 'хослол өмссөн эрэгтэй: бордуу',
     '🕴🏿' => 'хослол өмссөн эрэгтэй: бор',
+    '👯🏻' => 'үдэшлэгт байгаа бүсгүй: цайвар',
+    '👯🏼' => 'үдэшлэгт байгаа бүсгүй: бага зэргийн цайвар',
+    '👯🏽' => 'үдэшлэгт байгаа бүсгүй: дунд зэргийн',
+    '👯🏾' => 'үдэшлэгт байгаа бүсгүй: бордуу',
+    '👯🏿' => 'үдэшлэгт байгаа бүсгүй: бор',
     '🧖🏻' => 'уур савссан өрөөнд байгаа хүн: цайвар',
     '🧖🏼' => 'уур савссан өрөөнд байгаа хүн: бага зэргийн цайвар',
     '🧖🏽' => 'уур савссан өрөөнд байгаа хүн: дунд зэргийн',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'сальто эргэх: дунд зэргийн',
     '🤸🏾' => 'сальто эргэх: бордуу',
     '🤸🏿' => 'сальто эргэх: бор',
+    '🤼🏻' => 'бөх: цайвар',
+    '🤼🏼' => 'бөх: бага зэргийн цайвар',
+    '🤼🏽' => 'бөх: дунд зэргийн',
+    '🤼🏾' => 'бөх: бордуу',
+    '🤼🏿' => 'бөх: бор',
     '🤽🏻' => 'усны поло: цайвар',
     '🤽🏼' => 'усны поло: бага зэргийн цайвар',
     '🤽🏽' => 'усны поло: дунд зэргийн',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'туг: Хятад',
     '🇨🇴' => 'туг: Колумби',
     '🇨🇵' => 'туг: Клиппертон арал',
+    '🇨🇶' => 'туг: Сарк',
     '🇨🇷' => 'туг: Коста-Рика',
     '🇨🇺' => 'туг: Куба',
     '🇨🇻' => 'туг: Кабо-Верде',
@@ -2390,13 +2547,6 @@
     '🏽' => 'дунд зэргийн',
     '🏾' => 'бордуу',
     '🏿' => 'бор',
-    '🪉' => 'ятга',
-    '🪏' => 'хүрз',
-    '🪾' => 'навчгүй мод',
-    '🫆' => 'хурууны хээ',
-    '🫜' => 'үндэстэй ногоо',
-    '🫟' => 'цацах',
-    '🫩' => 'доогуураа хөхөрсөн нүдтэй царай',
     '😀' => 'инээсэн царай',
     '😃' => 'амаа ангайлган инээж буй царай',
     '😄' => 'нүдээ онийлгон маасайтал инээсэн царай',
@@ -2450,6 +2600,7 @@
     '😪' => 'нойрмоглож буй царай',
     '🤤' => 'унжгар царай',
     '😴' => 'унтаж буй царай',
+    '🫩' => 'доогуураа хөхөрсөн нүдтэй царай',
     '😷' => 'маск зүүсэн царай',
     '🤒' => 'халуунтай байгаа царай',
     '🤕' => 'толгойндоо шархны боолт зүүсэн царай',
@@ -2476,6 +2627,7 @@
     '😯' => 'гайхширсан царай',
     '😲' => 'мэл гайхсан царай',
     '😳' => 'ичсэн царай',
+    '🫪' => 'гайхсан царай',
     '🥺' => 'ямар нэг юм хүсч буй царай',
     '🥹' => 'нулимсаа барьж буй царай',
     '😦' => 'гайхсан дурамжхан царай',
@@ -2547,6 +2699,7 @@
     '💋' => 'үнсэлтийн мөр',
     '💯' => 'зуун оноо',
     '💢' => 'уурлаж байгаа дүрслэл',
+    '🫯' => 'бөөгнөрсөн зодолдоон',
     '💥' => 'мөргөлдөөн',
     '💫' => 'төөрөгдүүлсэн',
     '💦' => 'хөлсний дусал',
@@ -2670,6 +2823,7 @@
     '🧞' => 'жини',
     '🧟' => 'зомби',
     '🧌' => 'тролл',
+    '🫈' => 'үсэрхэг амьтан',
     '💆' => 'нүүрний массаж',
     '💇' => 'үс засалт',
     '🚶' => 'алхаж буй хүн',
@@ -2713,6 +2867,7 @@
     '🫂' => 'тэврэлдэж буй хүмүүс',
     '👪' => 'гэр бүл',
     '👣' => 'хөлийн мөр',
+    '🫆' => 'хурууны хээ',
     '🦰' => 'улаан үс',
     '🦱' => 'буржгар үс',
     '🦳' => 'цагаан үс',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ус оргилуулж байгаа халим',
     '🐋' => 'халим',
     '🐬' => 'далайн гахай',
+    '🫍' => 'хар далайн гахай',
     '🦭' => 'далайн хав',
     '🐟' => 'загас',
     '🐠' => 'халуун орны загас',
@@ -2821,6 +2977,11 @@
     '🐚' => 'дунгийн хясаа',
     '🪸' => 'шүр',
     '🪼' => 'далайн мөгөөрс',
+    '🦀' => 'хавч',
+    '🦞' => 'голын хавч',
+    '🦐' => 'сам хорхой',
+    '🦑' => 'кальмар',
+    '🦪' => 'хясаа',
     '🐌' => 'эмгэн хумс',
     '🦋' => 'эрвээхэй',
     '🐛' => 'хорхой',
@@ -2865,6 +3026,7 @@
     '🪹' => 'хоосон үүр',
     '🪺' => 'өндөгтэй үүр',
     '🍄' => 'мөөг',
+    '🪾' => 'навчгүй мод',
     '🍇' => 'усан үзэм',
     '🍈' => 'гуа',
     '🍉' => 'тарвас',
@@ -2901,6 +3063,7 @@
     '🌰' => 'каштан',
     '🫚' => 'цагаан гааны үндэс',
     '🫛' => 'буурцаг',
+    '🫜' => 'үндэстэй ногоо',
     '🍞' => 'талх',
     '🥐' => 'ороомог талх',
     '🥖' => 'багет франц талх',
@@ -2952,11 +3115,6 @@
     '🥟' => 'бууз',
     '🥠' => 'азын жигнэмэг',
     '🥡' => 'авч явах',
-    '🦀' => 'хавч',
-    '🦞' => 'голын хавч',
-    '🦐' => 'сам хорхой',
-    '🦑' => 'кальмар',
-    '🦪' => 'хясаа',
     '🍦' => 'шинэхэн мөхөөлдөс',
     '🍧' => 'хөлдөөсөн мөс',
     '🍨' => 'мөхөөлдөс',
@@ -3007,6 +3165,7 @@
     '🧭' => 'луужин',
     '🏔' => 'цаст уул',
     '⛰' => 'уул',
+    '🛘' => 'нуранги',
     '🌋' => 'галт уул',
     '🗻' => 'фүжи уул',
     '🏕' => 'аялал',
@@ -3367,16 +3526,18 @@
     '🎧' => 'чихэвч',
     '📻' => 'радио',
     '🎷' => 'саксафон',
+    '🎺' => 'эвэр бүрээ',
+    '🪊' => 'тромбон',
     '🪗' => 'аккордеон',
     '🎸' => 'гитар',
     '🎹' => 'төгөлдөр хуурын товчлуур',
-    '🎺' => 'эвэр бүрээ',
     '🎻' => 'хийл',
     '🪕' => 'банжо',
     '🥁' => 'бөмбөр',
     '🪘' => 'урт бөмбөр',
     '🪇' => 'маракус',
     '🪈' => 'лимбэ',
+    '🪉' => 'ятга',
     '📱' => 'гар утас',
     '📲' => 'гар утсыг заасан нум',
     '☎' => 'суурин утас',
@@ -3430,8 +3591,9 @@
     '📑' => 'номын хавчуургын табууд',
     '🔖' => 'номны хавчуурга',
     '🏷' => 'шошго',
-    '💰' => 'мөнгөтэй цүнх',
     '🪙' => 'зоос',
+    '💰' => 'мөнгөтэй цүнх',
+    '🪎' => 'эрдэнэсийн авдар',
     '💴' => 'иений мөнгөн тэмдэгт',
     '💵' => 'долларын мөнгөн тэмдэгт',
     '💶' => 'евроны мөнгөн тэмдэгт',
@@ -3514,6 +3676,7 @@
     '🧰' => 'багажны хайрцаг',
     '🧲' => 'соронз',
     '🪜' => 'шат',
+    '🪏' => 'хүрз',
     '⚗' => 'нэрэх тогоо',
     '🧪' => 'хуруу шил',
     '🧫' => 'петрийн аяга',
@@ -3697,6 +3860,7 @@
     '✴' => 'найман хошуутай од',
     '❇' => 'оч',
     '™' => 'барааны тэмдэг',
+    '🫟' => 'цацах',
     '🔠' => 'латин том үсгийн оролт',
     '🔡' => 'латин жижиг үсгийн оролт',
     '🔢' => 'тоон оролт',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mr.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'चुंबन: महिला, महिला, काळसर त्वचा, मध्यम त्वचा',
     '👩🏿‍❤‍💋‍👩🏾' => 'चुंबन: महिला, महिला, काळसर त्वचा, मध्यम काळसर त्वचा',
     '👩🏿‍❤‍💋‍👩🏿' => 'चुंबन: महिला, महिला, काळसर त्वचा',
+    '🧑🏻‍🫯‍🧑🏼' => 'कुस्तीगीर: उजळ त्वचा, मध्यम उजळ त्वचा',
+    '🧑🏻‍🫯‍🧑🏽' => 'कुस्तीगीर: उजळ त्वचा, मध्यम त्वचा',
+    '🧑🏻‍🫯‍🧑🏾' => 'कुस्तीगीर: उजळ त्वचा, मध्यम काळसर त्वचा',
+    '🧑🏻‍🫯‍🧑🏿' => 'कुस्तीगीर: उजळ त्वचा, काळसर त्वचा',
+    '🧑🏼‍🫯‍🧑🏻' => 'कुस्तीगीर: मध्यम उजळ त्वचा, उजळ त्वचा',
+    '🧑🏼‍🫯‍🧑🏽' => 'कुस्तीगीर: मध्यम उजळ त्वचा, मध्यम त्वचा',
+    '🧑🏼‍🫯‍🧑🏾' => 'कुस्तीगीर: मध्यम उजळ त्वचा, मध्यम काळसर त्वचा',
+    '🧑🏼‍🫯‍🧑🏿' => 'कुस्तीगीर: मध्यम उजळ त्वचा, काळसर त्वचा',
+    '🧑🏽‍🫯‍🧑🏻' => 'कुस्तीगीर: मध्यम त्वचा, उजळ त्वचा',
+    '🧑🏽‍🫯‍🧑🏼' => 'कुस्तीगीर: मध्यम त्वचा, मध्यम उजळ त्वचा',
+    '🧑🏽‍🫯‍🧑🏾' => 'कुस्तीगीर: मध्यम त्वचा, मध्यम काळसर त्वचा',
+    '🧑🏽‍🫯‍🧑🏿' => 'कुस्तीगीर: मध्यम त्वचा, काळसर त्वचा',
+    '🧑🏾‍🫯‍🧑🏻' => 'कुस्तीगीर: मध्यम काळसर त्वचा, उजळ त्वचा',
+    '🧑🏾‍🫯‍🧑🏼' => 'कुस्तीगीर: मध्यम काळसर त्वचा, मध्यम उजळ त्वचा',
+    '🧑🏾‍🫯‍🧑🏽' => 'कुस्तीगीर: मध्यम काळसर त्वचा, मध्यम त्वचा',
+    '🧑🏾‍🫯‍🧑🏿' => 'कुस्तीगीर: मध्यम काळसर त्वचा, काळसर त्वचा',
+    '🧑🏿‍🫯‍🧑🏻' => 'कुस्तीगीर: काळसर त्वचा, उजळ त्वचा',
+    '🧑🏿‍🫯‍🧑🏼' => 'कुस्तीगीर: काळसर त्वचा, मध्यम उजळ त्वचा',
+    '🧑🏿‍🫯‍🧑🏽' => 'कुस्तीगीर: काळसर त्वचा, मध्यम त्वचा',
+    '🧑🏿‍🫯‍🧑🏾' => 'कुस्तीगीर: काळसर त्वचा, मध्यम काळसर त्वचा',
     '🧑🏻‍❤‍🧑🏼' => 'मध्यभागी ह्रदय असलेले जोडपे: तरूण, तरूण, उजळ त्वचा, मध्यम उजळ त्वचा',
     '🧑🏻‍❤‍🧑🏽' => 'मध्यभागी ह्रदय असलेले जोडपे: तरूण, तरूण, उजळ त्वचा, मध्यम त्वचा',
     '🧑🏻‍❤‍🧑🏾' => 'मध्यभागी ह्रदय असलेले जोडपे: तरूण, तरूण, उजळ त्वचा, मध्यम काळसर त्वचा',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'मध्यभागी ह्रदय असलेले जोडपे: तरूण, तरूण, काळसर त्वचा, मध्यम उजळ त्वचा',
     '🧑🏿‍❤‍🧑🏽' => 'मध्यभागी ह्रदय असलेले जोडपे: तरूण, तरूण, काळसर त्वचा, मध्यम त्वचा',
     '🧑🏿‍❤‍🧑🏾' => 'मध्यभागी ह्रदय असलेले जोडपे: तरूण, तरूण, काळसर त्वचा, मध्यम काळसर त्वचा',
+    '🧑🏻‍🐰‍🧑🏼' => 'सशाचे कान लावलेले लोक: उजळ त्वचा, मध्यम उजळ त्वचा',
+    '🧑🏻‍🐰‍🧑🏽' => 'सशाचे कान लावलेले लोक: उजळ त्वचा, मध्यम त्वचा',
+    '🧑🏻‍🐰‍🧑🏾' => 'सशाचे कान लावलेले लोक: उजळ त्वचा, मध्यम काळसर त्वचा',
+    '🧑🏻‍🐰‍🧑🏿' => 'सशाचे कान लावलेले लोक: उजळ त्वचा, काळसर त्वचा',
+    '🧑🏼‍🐰‍🧑🏻' => 'सशाचे कान लावलेले लोक: मध्यम उजळ त्वचा, उजळ त्वचा',
+    '🧑🏼‍🐰‍🧑🏽' => 'सशाचे कान लावलेले लोक: मध्यम उजळ त्वचा, मध्यम त्वचा',
+    '🧑🏼‍🐰‍🧑🏾' => 'सशाचे कान लावलेले लोक: मध्यम उजळ त्वचा, मध्यम काळसर त्वचा',
+    '🧑🏼‍🐰‍🧑🏿' => 'सशाचे कान लावलेले लोक: मध्यम उजळ त्वचा, काळसर त्वचा',
+    '🧑🏽‍🐰‍🧑🏻' => 'सशाचे कान लावलेले लोक: मध्यम त्वचा, उजळ त्वचा',
+    '🧑🏽‍🐰‍🧑🏼' => 'सशाचे कान लावलेले लोक: मध्यम त्वचा, मध्यम उजळ त्वचा',
+    '🧑🏽‍🐰‍🧑🏾' => 'सशाचे कान लावलेले लोक: मध्यम त्वचा, मध्यम काळसर त्वचा',
+    '🧑🏽‍🐰‍🧑🏿' => 'सशाचे कान लावलेले लोक: मध्यम त्वचा, काळसर त्वचा',
+    '🧑🏾‍🐰‍🧑🏻' => 'सशाचे कान लावलेले लोक: मध्यम काळसर त्वचा, उजळ त्वचा',
+    '🧑🏾‍🐰‍🧑🏼' => 'सशाचे कान लावलेले लोक: मध्यम काळसर त्वचा, मध्यम उजळ त्वचा',
+    '🧑🏾‍🐰‍🧑🏽' => 'सशाचे कान लावलेले लोक: मध्यम काळसर त्वचा, मध्यम त्वचा',
+    '🧑🏾‍🐰‍🧑🏿' => 'सशाचे कान लावलेले लोक: मध्यम काळसर त्वचा, काळसर त्वचा',
+    '🧑🏿‍🐰‍🧑🏻' => 'सशाचे कान लावलेले लोक: काळसर त्वचा, उजळ त्वचा',
+    '🧑🏿‍🐰‍🧑🏼' => 'सशाचे कान लावलेले लोक: काळसर त्वचा, मध्यम उजळ त्वचा',
+    '🧑🏿‍🐰‍🧑🏽' => 'सशाचे कान लावलेले लोक: काळसर त्वचा, मध्यम त्वचा',
+    '🧑🏿‍🐰‍🧑🏾' => 'सशाचे कान लावलेले लोक: काळसर त्वचा, मध्यम काळसर त्वचा',
+    '👨🏻‍🫯‍👨🏼' => 'कुस्ती करणारा पुरुष: उजळ त्वचा, मध्यम उजळ त्वचा',
+    '👨🏻‍🫯‍👨🏽' => 'कुस्ती करणारा पुरुष: उजळ त्वचा, मध्यम त्वचा',
+    '👨🏻‍🫯‍👨🏾' => 'कुस्ती करणारा पुरुष: उजळ त्वचा, मध्यम काळसर त्वचा',
+    '👨🏻‍🫯‍👨🏿' => 'कुस्ती करणारा पुरुष: उजळ त्वचा, काळसर त्वचा',
+    '👨🏼‍🫯‍👨🏻' => 'कुस्ती करणारा पुरुष: मध्यम उजळ त्वचा, उजळ त्वचा',
+    '👨🏼‍🫯‍👨🏽' => 'कुस्ती करणारा पुरुष: मध्यम उजळ त्वचा, मध्यम त्वचा',
+    '👨🏼‍🫯‍👨🏾' => 'कुस्ती करणारा पुरुष: मध्यम उजळ त्वचा, मध्यम काळसर त्वचा',
+    '👨🏼‍🫯‍👨🏿' => 'कुस्ती करणारा पुरुष: मध्यम उजळ त्वचा, काळसर त्वचा',
+    '👨🏽‍🫯‍👨🏻' => 'कुस्ती करणारा पुरुष: मध्यम त्वचा, उजळ त्वचा',
+    '👨🏽‍🫯‍👨🏼' => 'कुस्ती करणारा पुरुष: मध्यम त्वचा, मध्यम उजळ त्वचा',
+    '👨🏽‍🫯‍👨🏾' => 'कुस्ती करणारा पुरुष: मध्यम त्वचा, मध्यम काळसर त्वचा',
+    '👨🏽‍🫯‍👨🏿' => 'कुस्ती करणारा पुरुष: मध्यम त्वचा, काळसर त्वचा',
+    '👨🏾‍🫯‍👨🏻' => 'कुस्ती करणारा पुरुष: मध्यम काळसर त्वचा, उजळ त्वचा',
+    '👨🏾‍🫯‍👨🏼' => 'कुस्ती करणारा पुरुष: मध्यम काळसर त्वचा, मध्यम उजळ त्वचा',
+    '👨🏾‍🫯‍👨🏽' => 'कुस्ती करणारा पुरुष: मध्यम काळसर त्वचा, मध्यम त्वचा',
+    '👨🏾‍🫯‍👨🏿' => 'कुस्ती करणारा पुरुष: मध्यम काळसर त्वचा, काळसर त्वचा',
+    '👨🏿‍🫯‍👨🏻' => 'कुस्ती करणारा पुरुष: काळसर त्वचा, उजळ त्वचा',
+    '👨🏿‍🫯‍👨🏼' => 'कुस्ती करणारा पुरुष: काळसर त्वचा, मध्यम उजळ त्वचा',
+    '👨🏿‍🫯‍👨🏽' => 'कुस्ती करणारा पुरुष: काळसर त्वचा, मध्यम त्वचा',
+    '👨🏿‍🫯‍👨🏾' => 'कुस्ती करणारा पुरुष: काळसर त्वचा, मध्यम काळसर त्वचा',
     '👨🏻‍❤‍👨🏻' => 'मध्यभागी ह्रदय असलेले जोडपे: पुरूष, पुरूष, उजळ त्वचा',
     '👨🏻‍❤‍👨🏼' => 'मध्यभागी ह्रदय असलेले जोडपे: पुरूष, पुरूष, उजळ त्वचा, मध्यम उजळ त्वचा',
     '👨🏻‍❤‍👨🏽' => 'मध्यभागी ह्रदय असलेले जोडपे: पुरूष, पुरूष, उजळ त्वचा, मध्यम त्वचा',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'मध्यभागी ह्रदय असलेले जोडपे: पुरूष, पुरूष, काळसर त्वचा, मध्यम त्वचा',
     '👨🏿‍❤‍👨🏾' => 'मध्यभागी ह्रदय असलेले जोडपे: पुरूष, पुरूष, काळसर त्वचा, मध्यम काळसर त्वचा',
     '👨🏿‍❤‍👨🏿' => 'मध्यभागी ह्रदय असलेले जोडपे: पुरूष, पुरूष, काळसर त्वचा',
+    '👨🏻‍🐰‍👨🏼' => 'पार्टी करणारे पुरुष: उजळ त्वचा, मध्यम उजळ त्वचा',
+    '👨🏻‍🐰‍👨🏽' => 'पार्टी करणारे पुरुष: उजळ त्वचा, मध्यम त्वचा',
+    '👨🏻‍🐰‍👨🏾' => 'पार्टी करणारे पुरुष: उजळ त्वचा, मध्यम काळसर त्वचा',
+    '👨🏻‍🐰‍👨🏿' => 'पार्टी करणारे पुरुष: उजळ त्वचा, काळसर त्वचा',
+    '👨🏼‍🐰‍👨🏻' => 'पार्टी करणारे पुरुष: मध्यम उजळ त्वचा, उजळ त्वचा',
+    '👨🏼‍🐰‍👨🏽' => 'पार्टी करणारे पुरुष: मध्यम उजळ त्वचा, मध्यम त्वचा',
+    '👨🏼‍🐰‍👨🏾' => 'पार्टी करणारे पुरुष: मध्यम उजळ त्वचा, मध्यम काळसर त्वचा',
+    '👨🏼‍🐰‍👨🏿' => 'पार्टी करणारे पुरुष: मध्यम उजळ त्वचा, काळसर त्वचा',
+    '👨🏽‍🐰‍👨🏻' => 'पार्टी करणारे पुरुष: मध्यम त्वचा, उजळ त्वचा',
+    '👨🏽‍🐰‍👨🏼' => 'पार्टी करणारे पुरुष: मध्यम त्वचा, मध्यम उजळ त्वचा',
+    '👨🏽‍🐰‍👨🏾' => 'पार्टी करणारे पुरुष: मध्यम त्वचा, मध्यम काळसर त्वचा',
+    '👨🏽‍🐰‍👨🏿' => 'पार्टी करणारे पुरुष: मध्यम त्वचा, काळसर त्वचा',
+    '👨🏾‍🐰‍👨🏻' => 'पार्टी करणारे पुरुष: मध्यम काळसर त्वचा, उजळ त्वचा',
+    '👨🏾‍🐰‍👨🏼' => 'पार्टी करणारे पुरुष: मध्यम काळसर त्वचा, मध्यम उजळ त्वचा',
+    '👨🏾‍🐰‍👨🏽' => 'पार्टी करणारे पुरुष: मध्यम काळसर त्वचा, मध्यम त्वचा',
+    '👨🏾‍🐰‍👨🏿' => 'पार्टी करणारे पुरुष: मध्यम काळसर त्वचा, काळसर त्वचा',
+    '👨🏿‍🐰‍👨🏻' => 'पार्टी करणारे पुरुष: काळसर त्वचा, उजळ त्वचा',
+    '👨🏿‍🐰‍👨🏼' => 'पार्टी करणारे पुरुष: काळसर त्वचा, मध्यम उजळ त्वचा',
+    '👨🏿‍🐰‍👨🏽' => 'पार्टी करणारे पुरुष: काळसर त्वचा, मध्यम त्वचा',
+    '👨🏿‍🐰‍👨🏾' => 'पार्टी करणारे पुरुष: काळसर त्वचा, मध्यम काळसर त्वचा',
+    '👩🏻‍🫯‍👩🏼' => 'कुस्ती करणारी महिला: उजळ त्वचा, मध्यम उजळ त्वचा',
+    '👩🏻‍🫯‍👩🏽' => 'कुस्ती करणारी महिला: उजळ त्वचा, मध्यम त्वचा',
+    '👩🏻‍🫯‍👩🏾' => 'कुस्ती करणारी महिला: उजळ त्वचा, मध्यम काळसर त्वचा',
+    '👩🏻‍🫯‍👩🏿' => 'कुस्ती करणारी महिला: उजळ त्वचा, काळसर त्वचा',
+    '👩🏼‍🫯‍👩🏻' => 'कुस्ती करणारी महिला: मध्यम उजळ त्वचा, उजळ त्वचा',
+    '👩🏼‍🫯‍👩🏽' => 'कुस्ती करणारी महिला: मध्यम उजळ त्वचा, मध्यम त्वचा',
+    '👩🏼‍🫯‍👩🏾' => 'कुस्ती करणारी महिला: मध्यम उजळ त्वचा, मध्यम काळसर त्वचा',
+    '👩🏼‍🫯‍👩🏿' => 'कुस्ती करणारी महिला: मध्यम उजळ त्वचा, काळसर त्वचा',
+    '👩🏽‍🫯‍👩🏻' => 'कुस्ती करणारी महिला: मध्यम त्वचा, उजळ त्वचा',
+    '👩🏽‍🫯‍👩🏼' => 'कुस्ती करणारी महिला: मध्यम त्वचा, मध्यम उजळ त्वचा',
+    '👩🏽‍🫯‍👩🏾' => 'कुस्ती करणारी महिला: मध्यम त्वचा, मध्यम काळसर त्वचा',
+    '👩🏽‍🫯‍👩🏿' => 'कुस्ती करणारी महिला: मध्यम त्वचा, काळसर त्वचा',
+    '👩🏾‍🫯‍👩🏻' => 'कुस्ती करणारी महिला: मध्यम काळसर त्वचा, उजळ त्वचा',
+    '👩🏾‍🫯‍👩🏼' => 'कुस्ती करणारी महिला: मध्यम काळसर त्वचा, मध्यम उजळ त्वचा',
+    '👩🏾‍🫯‍👩🏽' => 'कुस्ती करणारी महिला: मध्यम काळसर त्वचा, मध्यम त्वचा',
+    '👩🏾‍🫯‍👩🏿' => 'कुस्ती करणारी महिला: मध्यम काळसर त्वचा, काळसर त्वचा',
+    '👩🏿‍🫯‍👩🏻' => 'कुस्ती करणारी महिला: काळसर त्वचा, उजळ त्वचा',
+    '👩🏿‍🫯‍👩🏼' => 'कुस्ती करणारी महिला: काळसर त्वचा, मध्यम उजळ त्वचा',
+    '👩🏿‍🫯‍👩🏽' => 'कुस्ती करणारी महिला: काळसर त्वचा, मध्यम त्वचा',
+    '👩🏿‍🫯‍👩🏾' => 'कुस्ती करणारी महिला: काळसर त्वचा, मध्यम काळसर त्वचा',
     '👩🏻‍❤‍👨🏻' => 'मध्यभागी ह्रदय असलेले जोडपे: महिला, पुरूष, उजळ त्वचा',
     '👩🏻‍❤‍👨🏼' => 'मध्यभागी ह्रदय असलेले जोडपे: महिला, पुरूष, उजळ त्वचा, मध्यम उजळ त्वचा',
     '👩🏻‍❤‍👨🏽' => 'मध्यभागी ह्रदय असलेले जोडपे: महिला, पुरूष, उजळ त्वचा, मध्यम त्वचा',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'मध्यभागी ह्रदय असलेले जोडपे: महिला, महिला, काळसर त्वचा, मध्यम त्वचा',
     '👩🏿‍❤‍👩🏾' => 'मध्यभागी ह्रदय असलेले जोडपे: महिला, महिला, काळसर त्वचा, मध्यम काळसर त्वचा',
     '👩🏿‍❤‍👩🏿' => 'मध्यभागी ह्रदय असलेले जोडपे: महिला, महिला, काळसर त्वचा',
+    '👩🏻‍🐰‍👩🏼' => 'पार्टी करणाऱ्या महिला: उजळ त्वचा, मध्यम उजळ त्वचा',
+    '👩🏻‍🐰‍👩🏽' => 'पार्टी करणाऱ्या महिला: उजळ त्वचा, मध्यम त्वचा',
+    '👩🏻‍🐰‍👩🏾' => 'पार्टी करणाऱ्या महिला: उजळ त्वचा, मध्यम काळसर त्वचा',
+    '👩🏻‍🐰‍👩🏿' => 'पार्टी करणाऱ्या महिला: उजळ त्वचा, काळसर त्वचा',
+    '👩🏼‍🐰‍👩🏻' => 'पार्टी करणाऱ्या महिला: मध्यम उजळ त्वचा, उजळ त्वचा',
+    '👩🏼‍🐰‍👩🏽' => 'पार्टी करणाऱ्या महिला: मध्यम उजळ त्वचा, मध्यम त्वचा',
+    '👩🏼‍🐰‍👩🏾' => 'पार्टी करणाऱ्या महिला: मध्यम उजळ त्वचा, मध्यम काळसर त्वचा',
+    '👩🏼‍🐰‍👩🏿' => 'पार्टी करणाऱ्या महिला: मध्यम उजळ त्वचा, काळसर त्वचा',
+    '👩🏽‍🐰‍👩🏻' => 'पार्टी करणाऱ्या महिला: मध्यम त्वचा, उजळ त्वचा',
+    '👩🏽‍🐰‍👩🏼' => 'पार्टी करणाऱ्या महिला: मध्यम त्वचा, मध्यम उजळ त्वचा',
+    '👩🏽‍🐰‍👩🏾' => 'पार्टी करणाऱ्या महिला: मध्यम त्वचा, मध्यम काळसर त्वचा',
+    '👩🏽‍🐰‍👩🏿' => 'पार्टी करणाऱ्या महिला: मध्यम त्वचा, काळसर त्वचा',
+    '👩🏾‍🐰‍👩🏻' => 'पार्टी करणाऱ्या महिला: मध्यम काळसर त्वचा, उजळ त्वचा',
+    '👩🏾‍🐰‍👩🏼' => 'पार्टी करणाऱ्या महिला: मध्यम काळसर त्वचा, मध्यम उजळ त्वचा',
+    '👩🏾‍🐰‍👩🏽' => 'पार्टी करणाऱ्या महिला: मध्यम काळसर त्वचा, मध्यम त्वचा',
+    '👩🏾‍🐰‍👩🏿' => 'पार्टी करणाऱ्या महिला: मध्यम काळसर त्वचा, काळसर त्वचा',
+    '👩🏿‍🐰‍👩🏻' => 'पार्टी करणाऱ्या महिला: काळसर त्वचा, उजळ त्वचा',
+    '👩🏿‍🐰‍👩🏼' => 'पार्टी करणाऱ्या महिला: काळसर त्वचा, मध्यम उजळ त्वचा',
+    '👩🏿‍🐰‍👩🏽' => 'पार्टी करणाऱ्या महिला: काळसर त्वचा, मध्यम त्वचा',
+    '👩🏿‍🐰‍👩🏾' => 'पार्टी करणाऱ्या महिला: काळसर त्वचा, मध्यम काळसर त्वचा',
     '🧑🏻‍🤝‍🧑🏻' => 'हात धरलेले लोक: उजळ त्वचा',
     '🧑🏻‍🤝‍🧑🏼' => 'हात धरलेले लोक: उजळ त्वचा, मध्यम उजळ त्वचा',
     '🧑🏻‍🤝‍🧑🏽' => 'हात धरलेले लोक: उजळ त्वचा, मध्यम त्वचा',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ध्वज: स्कॉटलंड',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'ध्वज: वेल्स',
     '🧑‍🧑‍🧒‍🧒' => 'कुटुंब: प्रौढ, सज्ञान, मूल, लहान मूल',
-    '🚶🏻‍♀‍➡' => 'पायी चालणारी महिला उजवीकडे',
-    '🚶🏼‍♀‍➡' => 'पायी चालणारी महिला उजवीकडे',
-    '🚶🏽‍♀‍➡' => 'पायी चालणारी महिला उजवीकडे',
-    '🚶🏾‍♀‍➡' => 'पायी चालणारी महिला उजवीकडे',
-    '🚶🏿‍♀‍➡' => 'पायी चालणारी महिला उजवीकडे',
-    '🚶🏻‍♂‍➡' => 'पायी चालणारा पुरुष उजवीकडे',
-    '🚶🏼‍♂‍➡' => 'पायी चालणारा पुरुष उजवीकडे',
-    '🚶🏽‍♂‍➡' => 'पायी चालणारा पुरुष उजवीकडे',
-    '🚶🏾‍♂‍➡' => 'पायी चालणारा पुरुष उजवीकडे',
-    '🚶🏿‍♂‍➡' => 'पायी चालणारा पुरुष उजवीकडे',
-    '🧎🏻‍♀‍➡' => 'गुडघे टेकलेली महिला उजवीकडे',
-    '🧎🏼‍♀‍➡' => 'गुडघे टेकलेली महिला उजवीकडे',
-    '🧎🏽‍♀‍➡' => 'गुडघे टेकलेली महिला उजवीकडे',
-    '🧎🏾‍♀‍➡' => 'गुडघे टेकलेली महिला उजवीकडे',
-    '🧎🏿‍♀‍➡' => 'गुडघे टेकलेली महिला उजवीकडे',
-    '🧎🏻‍♂‍➡' => 'गुडघे टेकलेला माणूस उजवीकडे',
-    '🧎🏼‍♂‍➡' => 'गुडघे टेकलेला माणूस उजवीकडे',
-    '🧎🏽‍♂‍➡' => 'गुडघे टेकलेला माणूस उजवीकडे',
-    '🧎🏾‍♂‍➡' => 'गुडघे टेकलेला माणूस उजवीकडे',
-    '🧎🏿‍♂‍➡' => 'गुडघे टेकलेला माणूस उजवीकडे',
-    '🧑🏻‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष उजवीकडे',
-    '🧑🏼‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष उजवीकडे',
-    '🧑🏽‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष उजवीकडे',
-    '🧑🏾‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष उजवीकडे',
-    '🧑🏿‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष उजवीकडे',
-    '👨🏻‍🦯‍➡' => 'अंधांची काठी असलेला माणूस उजवीकडे',
-    '👨🏼‍🦯‍➡' => 'अंधांची काठी असलेला माणूस उजवीकडे',
-    '👨🏽‍🦯‍➡' => 'अंधांची काठी असलेला माणूस उजवीकडे',
-    '👨🏾‍🦯‍➡' => 'अंधांची काठी असलेला माणूस उजवीकडे',
-    '👨🏿‍🦯‍➡' => 'अंधांची काठी असलेला माणूस उजवीकडे',
-    '👩🏻‍🦯‍➡' => 'अंधांची काठी असलेली महिला उजवीकडे',
-    '👩🏼‍🦯‍➡' => 'अंधांची काठी असलेली महिला उजवीकडे',
-    '👩🏽‍🦯‍➡' => 'अंधांची काठी असलेली महिला उजवीकडे',
-    '👩🏾‍🦯‍➡' => 'अंधांची काठी असलेली महिला उजवीकडे',
-    '👩🏿‍🦯‍➡' => 'अंधांची काठी असलेली महिला उजवीकडे',
-    '🧑🏻‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '🧑🏼‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '🧑🏽‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '🧑🏾‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '🧑🏿‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '👨🏻‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस उजवीकडे',
-    '👨🏼‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस उजवीकडे',
-    '👨🏽‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस उजवीकडे',
-    '👨🏾‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस उजवीकडे',
-    '👨🏿‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस उजवीकडे',
-    '👩🏻‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला उजवीकडे',
-    '👩🏼‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला उजवीकडे',
-    '👩🏽‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला उजवीकडे',
-    '👩🏾‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला उजवीकडे',
-    '👩🏿‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला उजवीकडे',
-    '🧑🏻‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '🧑🏼‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '🧑🏽‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '🧑🏾‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '🧑🏿‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '👨🏻‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस उजवीकडे',
-    '👨🏼‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस उजवीकडे',
-    '👨🏽‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस उजवीकडे',
-    '👨🏾‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस उजवीकडे',
-    '👨🏿‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस उजवीकडे',
-    '👩🏻‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला उजवीकडे',
-    '👩🏼‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला उजवीकडे',
-    '👩🏽‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला उजवीकडे',
-    '👩🏾‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला उजवीकडे',
-    '👩🏿‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला उजवीकडे',
-    '🏃🏻‍♀‍➡' => 'धावणारी महिला उजवीकडे',
-    '🏃🏼‍♀‍➡' => 'धावणारी महिला उजवीकडे',
-    '🏃🏽‍♀‍➡' => 'धावणारी महिला उजवीकडे',
-    '🏃🏾‍♀‍➡' => 'धावणारी महिला उजवीकडे',
-    '🏃🏿‍♀‍➡' => 'धावणारी महिला उजवीकडे',
-    '🏃🏻‍♂‍➡' => 'धावणारा पुरुष उजवीकडे',
-    '🏃🏼‍♂‍➡' => 'धावणारा पुरुष उजवीकडे',
-    '🏃🏽‍♂‍➡' => 'धावणारा पुरुष उजवीकडे',
-    '🏃🏾‍♂‍➡' => 'धावणारा पुरुष उजवीकडे',
-    '🏃🏿‍♂‍➡' => 'धावणारा पुरुष उजवीकडे',
+    '🚶🏻‍♀‍➡' => 'पायी चालणारी महिला: उजळ त्वचा, उजवीकडे',
+    '🚶🏼‍♀‍➡' => 'पायी चालणारी महिला: मध्यम उजळ त्वचा, उजवीकडे',
+    '🚶🏽‍♀‍➡' => 'पायी चालणारी महिला: मध्यम त्वचा, उजवीकडे',
+    '🚶🏾‍♀‍➡' => 'पायी चालणारी महिला: मध्यम काळसर त्वचा, उजवीकडे',
+    '🚶🏿‍♀‍➡' => 'पायी चालणारी महिला: काळसर त्वचा, उजवीकडे',
+    '🚶🏻‍♂‍➡' => 'पायी चालणारा पुरुष: उजळ त्वचा, उजवीकडे',
+    '🚶🏼‍♂‍➡' => 'पायी चालणारा पुरुष: मध्यम उजळ त्वचा, उजवीकडे',
+    '🚶🏽‍♂‍➡' => 'पायी चालणारा पुरुष: मध्यम त्वचा, उजवीकडे',
+    '🚶🏾‍♂‍➡' => 'पायी चालणारा पुरुष: मध्यम काळसर त्वचा, उजवीकडे',
+    '🚶🏿‍♂‍➡' => 'पायी चालणारा पुरुष: काळसर त्वचा, उजवीकडे',
+    '🧎🏻‍♀‍➡' => 'गुडघे टेकलेली महिला: उजळ त्वचा, उजवीकडे',
+    '🧎🏼‍♀‍➡' => 'गुडघे टेकलेली महिला: मध्यम उजळ त्वचा, उजवीकडे',
+    '🧎🏽‍♀‍➡' => 'गुडघे टेकलेली महिला: मध्यम त्वचा, उजवीकडे',
+    '🧎🏾‍♀‍➡' => 'गुडघे टेकलेली महिला: मध्यम काळसर त्वचा, उजवीकडे',
+    '🧎🏿‍♀‍➡' => 'गुडघे टेकलेली महिला: काळसर त्वचा, उजवीकडे',
+    '🧎🏻‍♂‍➡' => 'गुडघे टेकलेला माणूस: उजळ त्वचा, उजवीकडे',
+    '🧎🏼‍♂‍➡' => 'गुडघे टेकलेला माणूस: मध्यम उजळ त्वचा, उजवीकडे',
+    '🧎🏽‍♂‍➡' => 'गुडघे टेकलेला माणूस: मध्यम त्वचा, उजवीकडे',
+    '🧎🏾‍♂‍➡' => 'गुडघे टेकलेला माणूस: मध्यम काळसर त्वचा, उजवीकडे',
+    '🧎🏿‍♂‍➡' => 'गुडघे टेकलेला माणूस: काळसर त्वचा, उजवीकडे',
+    '🧑🏻‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष: उजळ त्वचा, उजवीकडे',
+    '🧑🏼‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष: मध्यम उजळ त्वचा, उजवीकडे',
+    '🧑🏽‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष: मध्यम त्वचा, उजवीकडे',
+    '🧑🏾‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष: मध्यम काळसर त्वचा, उजवीकडे',
+    '🧑🏿‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष: काळसर त्वचा, उजवीकडे',
+    '👨🏻‍🦯‍➡' => 'अंधांची काठी असलेला माणूस: उजळ त्वचा, उजवीकडे',
+    '👨🏼‍🦯‍➡' => 'अंधांची काठी असलेला माणूस: मध्यम उजळ त्वचा, उजवीकडे',
+    '👨🏽‍🦯‍➡' => 'अंधांची काठी असलेला माणूस: मध्यम त्वचा, उजवीकडे',
+    '👨🏾‍🦯‍➡' => 'अंधांची काठी असलेला माणूस: मध्यम काळसर त्वचा, उजवीकडे',
+    '👨🏿‍🦯‍➡' => 'अंधांची काठी असलेला माणूस: काळसर त्वचा, उजवीकडे',
+    '👩🏻‍🦯‍➡' => 'अंधांची काठी असलेली महिला: उजळ त्वचा, उजवीकडे',
+    '👩🏼‍🦯‍➡' => 'अंधांची काठी असलेली महिला: मध्यम उजळ त्वचा, उजवीकडे',
+    '👩🏽‍🦯‍➡' => 'अंधांची काठी असलेली महिला: मध्यम त्वचा, उजवीकडे',
+    '👩🏾‍🦯‍➡' => 'अंधांची काठी असलेली महिला: मध्यम काळसर त्वचा, उजवीकडे',
+    '👩🏿‍🦯‍➡' => 'अंधांची काठी असलेली महिला: काळसर त्वचा, उजवीकडे',
+    '🧑🏻‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष: उजळ त्वचा, उजवीकडे',
+    '🧑🏼‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष: मध्यम उजळ त्वचा, उजवीकडे',
+    '🧑🏽‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष: मध्यम त्वचा, उजवीकडे',
+    '🧑🏾‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष: मध्यम काळसर त्वचा, उजवीकडे',
+    '🧑🏿‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष: काळसर त्वचा, उजवीकडे',
+    '👨🏻‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस: उजळ त्वचा, उजवीकडे',
+    '👨🏼‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस: मध्यम उजळ त्वचा, उजवीकडे',
+    '👨🏽‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस: मध्यम त्वचा, उजवीकडे',
+    '👨🏾‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस: मध्यम काळसर त्वचा, उजवीकडे',
+    '👨🏿‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस: काळसर त्वचा, उजवीकडे',
+    '👩🏻‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला: उजळ त्वचा, उजवीकडे',
+    '👩🏼‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला: मध्यम उजळ त्वचा, उजवीकडे',
+    '👩🏽‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला: मध्यम त्वचा, उजवीकडे',
+    '👩🏾‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला: मध्यम काळसर त्वचा, उजवीकडे',
+    '👩🏿‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला: काळसर त्वचा, उजवीकडे',
+    '🧑🏻‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष: उजळ त्वचा, उजवीकडे',
+    '🧑🏼‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष: मध्यम उजळ त्वचा, उजवीकडे',
+    '🧑🏽‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष: मध्यम त्वचा, उजवीकडे',
+    '🧑🏾‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष: मध्यम काळसर त्वचा, उजवीकडे',
+    '🧑🏿‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष: काळसर त्वचा, उजवीकडे',
+    '👨🏻‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस: उजळ त्वचा, उजवीकडे',
+    '👨🏼‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस: मध्यम उजळ त्वचा, उजवीकडे',
+    '👨🏽‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस: मध्यम त्वचा, उजवीकडे',
+    '👨🏾‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस: मध्यम काळसर त्वचा, उजवीकडे',
+    '👨🏿‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस: काळसर त्वचा, उजवीकडे',
+    '👩🏻‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला: उजळ त्वचा, उजवीकडे',
+    '👩🏼‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला: मध्यम उजळ त्वचा, उजवीकडे',
+    '👩🏽‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला: मध्यम त्वचा, उजवीकडे',
+    '👩🏾‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला: मध्यम काळसर त्वचा, उजवीकडे',
+    '👩🏿‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला: काळसर त्वचा, उजवीकडे',
+    '🏃🏻‍♀‍➡' => 'धावणारी महिला: उजळ त्वचा, उजवीकडे',
+    '🏃🏼‍♀‍➡' => 'धावणारी महिला: मध्यम उजळ त्वचा, उजवीकडे',
+    '🏃🏽‍♀‍➡' => 'धावणारी महिला: मध्यम त्वचा, उजवीकडे',
+    '🏃🏾‍♀‍➡' => 'धावणारी महिला: मध्यम काळसर त्वचा, उजवीकडे',
+    '🏃🏿‍♀‍➡' => 'धावणारी महिला: काळसर त्वचा, उजवीकडे',
+    '🏃🏻‍♂‍➡' => 'धावणारा पुरुष: उजळ त्वचा, उजवीकडे',
+    '🏃🏼‍♂‍➡' => 'धावणारा पुरुष: मध्यम उजळ त्वचा, उजवीकडे',
+    '🏃🏽‍♂‍➡' => 'धावणारा पुरुष: मध्यम त्वचा, उजवीकडे',
+    '🏃🏾‍♂‍➡' => 'धावणारा पुरुष: मध्यम काळसर त्वचा, उजवीकडे',
+    '🏃🏿‍♂‍➡' => 'धावणारा पुरुष: काळसर त्वचा, उजवीकडे',
     '🫱🏻‍🫲🏼' => 'हस्तांदोलन: उजळ त्वचा, मध्यम उजळ त्वचा',
     '🫱🏻‍🫲🏽' => 'हस्तांदोलन: उजळ त्वचा, मध्यम त्वचा',
     '🫱🏻‍🫲🏾' => 'हस्तांदोलन: उजळ त्वचा, मध्यम काळसर त्वचा',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'हस्तांदोलन: काळसर त्वचा, मध्यम उजळ त्वचा',
     '🫱🏿‍🫲🏽' => 'हस्तांदोलन: काळसर त्वचा, मध्यम त्वचा',
     '🫱🏿‍🫲🏾' => 'हस्तांदोलन: काळसर त्वचा, मध्यम काळसर त्वचा',
-    '🚶‍♀‍➡' => 'पायी चालणारी महिला उजवीकडे',
-    '🚶‍♂‍➡' => 'पायी चालणारा पुरुष उजवीकडे',
-    '🧎‍♀‍➡' => 'गुडघे टेकलेली महिला उजवीकडे',
-    '🧎‍♂‍➡' => 'गुडघे टेकलेला माणूस उजवीकडे',
-    '🧑‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष उजवीकडे',
-    '👨‍🦯‍➡' => 'अंधांची काठी असलेला माणूस उजवीकडे',
-    '👩‍🦯‍➡' => 'अंधांची काठी असलेली महिला उजवीकडे',
-    '🧑‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '👨‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस उजवीकडे',
-    '👩‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला उजवीकडे',
-    '🧑‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष उजवीकडे',
-    '👨‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस उजवीकडे',
-    '👩‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला उजवीकडे',
-    '🏃‍♀‍➡' => 'धावणारी महिला उजवीकडे',
-    '🏃‍♂‍➡' => 'धावणारा पुरुष उजवीकडे',
+    '🚶‍♀‍➡' => 'पायी चालणारी महिला: उजवीकडे',
+    '🚶‍♂‍➡' => 'पायी चालणारा पुरुष: उजवीकडे',
+    '🧎‍♀‍➡' => 'गुडघे टेकलेली महिला: उजवीकडे',
+    '🧎‍♂‍➡' => 'गुडघे टेकलेला माणूस: उजवीकडे',
+    '🧑‍🦯‍➡' => 'अंधांची काठी हातात घेतलेला पुरूष: उजवीकडे',
+    '👨‍🦯‍➡' => 'अंधांची काठी असलेला माणूस: उजवीकडे',
+    '👩‍🦯‍➡' => 'अंधांची काठी असलेली महिला: उजवीकडे',
+    '🧑‍🦼‍➡' => 'मोटर असलेल्या व्हीलचेअरमध्‍ये बसलेला पुरूष: उजवीकडे',
+    '👨‍🦼‍➡' => 'मोटारयुक्त व्हीलचेअरवरील माणूस: उजवीकडे',
+    '👩‍🦼‍➡' => 'मोटारवाल्या व्हीलचेअरवरील महिला: उजवीकडे',
+    '🧑‍🦽‍➡' => 'व्यक्तीचलित व्हीलचेअरमध्‍ये बसलेला पुरूष: उजवीकडे',
+    '👨‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील माणूस: उजवीकडे',
+    '👩‍🦽‍➡' => 'व्यक्तिचलित व्हीलचेअरवरील महिला: उजवीकडे',
+    '🏃‍♀‍➡' => 'धावणारी महिला: उजवीकडे',
+    '🏃‍♂‍➡' => 'धावणारा पुरुष: उजवीकडे',
     '👩‍❤‍👨' => 'मध्यभागी ह्रदय असलेले जोडपे: महिला, पुरूष',
     '👨‍❤‍👨' => 'मध्यभागी ह्रदय असलेले जोडपे: पुरूष, पुरूष',
     '👩‍❤‍👩' => 'मध्यभागी ह्रदय असलेले जोडपे: महिला, महिला',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'तरूण: मध्यम त्वचा, टक्कल',
     '🧑🏾‍🦲' => 'तरूण: मध्यम काळसर त्वचा, टक्कल',
     '🧑🏿‍🦲' => 'तरूण: काळसर त्वचा, टक्कल',
+    '🧑🏻‍🩰' => 'बॅले नर्तिका: उजळ त्वचा',
+    '🧑🏼‍🩰' => 'बॅले नर्तिका: मध्यम उजळ त्वचा',
+    '🧑🏽‍🩰' => 'बॅले नर्तिका: मध्यम त्वचा',
+    '🧑🏾‍🩰' => 'बॅले नर्तिका: मध्यम काळसर त्वचा',
+    '🧑🏿‍🩰' => 'बॅले नर्तिका: काळसर त्वचा',
     '🧔🏻‍♂' => 'पुरूष: उजळ त्वचा, दाढी',
     '🧔🏼‍♂' => 'पुरूष: मध्यम उजळ त्वचा, दाढी',
     '🧔🏽‍♂' => 'पुरूष: मध्यम त्वचा, दाढी',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'पायी चालणारी महिला: मध्यम त्वचा',
     '🚶🏾‍♀' => 'पायी चालणारी महिला: मध्यम काळसर त्वचा',
     '🚶🏿‍♀' => 'पायी चालणारी महिला: काळसर त्वचा',
-    '🚶🏻‍➡' => 'पायी चालणारी व्यक्ती उजवीकडे',
-    '🚶🏼‍➡' => 'पायी चालणारी व्यक्ती उजवीकडे',
-    '🚶🏽‍➡' => 'पायी चालणारी व्यक्ती उजवीकडे',
-    '🚶🏾‍➡' => 'पायी चालणारी व्यक्ती उजवीकडे',
-    '🚶🏿‍➡' => 'पायी चालणारी व्यक्ती उजवीकडे',
+    '🚶🏻‍➡' => 'पायी चालणारी व्यक्ती: उजळ त्वचा, उजवीकडे',
+    '🚶🏼‍➡' => 'पायी चालणारी व्यक्ती: मध्यम उजळ त्वचा, उजवीकडे',
+    '🚶🏽‍➡' => 'पायी चालणारी व्यक्ती: मध्यम त्वचा, उजवीकडे',
+    '🚶🏾‍➡' => 'पायी चालणारी व्यक्ती: मध्यम काळसर त्वचा, उजवीकडे',
+    '🚶🏿‍➡' => 'पायी चालणारी व्यक्ती: काळसर त्वचा, उजवीकडे',
     '🧍🏻‍♂' => 'उभा असलेला माणूस: उजळ त्वचा',
     '🧍🏼‍♂' => 'उभा असलेला माणूस: मध्यम उजळ त्वचा',
     '🧍🏽‍♂' => 'उभा असलेला माणूस: मध्यम त्वचा',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'गुडघे टेकलेली महिला: मध्यम त्वचा',
     '🧎🏾‍♀' => 'गुडघे टेकलेली महिला: मध्यम काळसर त्वचा',
     '🧎🏿‍♀' => 'गुडघे टेकलेली महिला: काळसर त्वचा',
-    '🧎🏻‍➡' => 'गुडघे टेकलेली व्यक्ती उजवीकडे',
-    '🧎🏼‍➡' => 'गुडघे टेकलेली व्यक्ती उजवीकडे',
-    '🧎🏽‍➡' => 'गुडघे टेकलेली व्यक्ती उजवीकडे',
-    '🧎🏾‍➡' => 'गुडघे टेकलेली व्यक्ती उजवीकडे',
-    '🧎🏿‍➡' => 'गुडघे टेकलेली व्यक्ती उजवीकडे',
+    '🧎🏻‍➡' => 'गुडघे टेकलेली व्यक्ती: उजळ त्वचा, उजवीकडे',
+    '🧎🏼‍➡' => 'गुडघे टेकलेली व्यक्ती: मध्यम उजळ त्वचा, उजवीकडे',
+    '🧎🏽‍➡' => 'गुडघे टेकलेली व्यक्ती: मध्यम त्वचा, उजवीकडे',
+    '🧎🏾‍➡' => 'गुडघे टेकलेली व्यक्ती: मध्यम काळसर त्वचा, उजवीकडे',
+    '🧎🏿‍➡' => 'गुडघे टेकलेली व्यक्ती: काळसर त्वचा, उजवीकडे',
     '🧑🏻‍🦯' => 'अंधांची काठी हातात घेतलेला पुरूष: उजळ त्वचा',
     '🧑🏼‍🦯' => 'अंधांची काठी हातात घेतलेला पुरूष: मध्यम उजळ त्वचा',
     '🧑🏽‍🦯' => 'अंधांची काठी हातात घेतलेला पुरूष: मध्यम त्वचा',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'धावणारी महिला: मध्यम त्वचा',
     '🏃🏾‍♀' => 'धावणारी महिला: मध्यम काळसर त्वचा',
     '🏃🏿‍♀' => 'धावणारी महिला: काळसर त्वचा',
-    '🏃🏻‍➡' => 'धावणारा उजवीकडे',
-    '🏃🏼‍➡' => 'धावणारा उजवीकडे',
-    '🏃🏽‍➡' => 'धावणारा उजवीकडे',
-    '🏃🏾‍➡' => 'धावणारा उजवीकडे',
-    '🏃🏿‍➡' => 'धावणारा उजवीकडे',
+    '🏃🏻‍➡' => 'धावणारा: उजळ त्वचा, उजवीकडे',
+    '🏃🏼‍➡' => 'धावणारा: मध्यम उजळ त्वचा, उजवीकडे',
+    '🏃🏽‍➡' => 'धावणारा: मध्यम त्वचा, उजवीकडे',
+    '🏃🏾‍➡' => 'धावणारा: मध्यम काळसर त्वचा, उजवीकडे',
+    '🏃🏿‍➡' => 'धावणारा: काळसर त्वचा, उजवीकडे',
+    '👯🏻‍♀' => 'पार्टी करणाऱ्या महिला: उजळ त्वचा',
+    '👯🏼‍♀' => 'पार्टी करणाऱ्या महिला: मध्यम उजळ त्वचा',
+    '👯🏽‍♀' => 'पार्टी करणाऱ्या महिला: मध्यम त्वचा',
+    '👯🏾‍♀' => 'पार्टी करणाऱ्या महिला: मध्यम काळसर त्वचा',
+    '👯🏿‍♀' => 'पार्टी करणाऱ्या महिला: काळसर त्वचा',
+    '👯🏻‍♂' => 'पार्टी करणारे पुरुष: उजळ त्वचा',
+    '👯🏼‍♂' => 'पार्टी करणारे पुरुष: मध्यम उजळ त्वचा',
+    '👯🏽‍♂' => 'पार्टी करणारे पुरुष: मध्यम त्वचा',
+    '👯🏾‍♂' => 'पार्टी करणारे पुरुष: मध्यम काळसर त्वचा',
+    '👯🏿‍♂' => 'पार्टी करणारे पुरुष: काळसर त्वचा',
     '🧖🏻‍♂' => 'वाफेच्या खोलीत पुरूष: उजळ त्वचा',
     '🧖🏼‍♂' => 'वाफेच्या खोलीत पुरूष: मध्यम उजळ त्वचा',
     '🧖🏽‍♂' => 'वाफेच्या खोलीत पुरूष: मध्यम त्वचा',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'कार्टव्हील करणारी महिला: मध्यम त्वचा',
     '🤸🏾‍♀' => 'कार्टव्हील करणारी महिला: मध्यम काळसर त्वचा',
     '🤸🏿‍♀' => 'कार्टव्हील करणारी महिला: काळसर त्वचा',
+    '🤼🏻‍♀' => 'कुस्ती करणारी महिला: उजळ त्वचा',
+    '🤼🏼‍♀' => 'कुस्ती करणारी महिला: मध्यम उजळ त्वचा',
+    '🤼🏽‍♀' => 'कुस्ती करणारी महिला: मध्यम त्वचा',
+    '🤼🏾‍♀' => 'कुस्ती करणारी महिला: मध्यम काळसर त्वचा',
+    '🤼🏿‍♀' => 'कुस्ती करणारी महिला: काळसर त्वचा',
+    '🤼🏻‍♂' => 'कुस्ती करणारा पुरुष: उजळ त्वचा',
+    '🤼🏼‍♂' => 'कुस्ती करणारा पुरुष: मध्यम उजळ त्वचा',
+    '🤼🏽‍♂' => 'कुस्ती करणारा पुरुष: मध्यम त्वचा',
+    '🤼🏾‍♂' => 'कुस्ती करणारा पुरुष: मध्यम काळसर त्वचा',
+    '🤼🏿‍♂' => 'कुस्ती करणारा पुरुष: काळसर त्वचा',
     '🤽🏻‍♂' => 'वॉटर पोलो खेळणारा पुरुष: उजळ त्वचा',
     '🤽🏼‍♂' => 'वॉटर पोलो खेळणारा पुरुष: मध्यम उजळ त्वचा',
     '🤽🏽‍♂' => 'वॉटर पोलो खेळणारा पुरुष: मध्यम त्वचा',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'महिला: कुरळे केस',
     '👩‍🦳' => 'महिला: पांढरे केस',
     '👩‍🦲' => 'महिला: टक्कल',
-    '🚶‍➡' => 'पायी चालणारी व्यक्ती उजवीकडे',
-    '🧎‍➡' => 'गुडघे टेकलेली व्यक्ती उजवीकडे',
-    '🏃‍➡' => 'धावणारा उजवीकडे',
+    '🚶‍➡' => 'पायी चालणारी व्यक्ती: उजवीकडे',
+    '🧎‍➡' => 'गुडघे टेकलेली व्यक्ती: उजवीकडे',
+    '🏃‍➡' => 'धावणारा: उजवीकडे',
     '👨‍👦' => 'कुटुंब: पुरूष, मुलगा',
     '👨‍👧' => 'कुटुंब: पुरूष, मुलगी',
     '👩‍👦' => 'कुटुंब: महिला, मुलगा',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'व्यक्तिचलित व्हीलचेअरवरील महिला',
     '🏃‍♂' => 'धावणारा पुरुष',
     '🏃‍♀' => 'धावणारी महिला',
+    '🧑‍🩰' => 'बॅले नर्तिका',
     '👯‍♂' => 'पार्टी करणारे पुरुष',
     '👯‍♀' => 'पार्टी करणाऱ्या महिला',
     '🧖‍♂' => 'वाफेच्या खोलीत पुरूष',
@@ -1991,21 +2137,26 @@
     '🏃🏽' => 'धावणारा: मध्यम त्वचा',
     '🏃🏾' => 'धावणारा: मध्यम काळसर त्वचा',
     '🏃🏿' => 'धावणारा: काळसर त्वचा',
-    '💃🏻' => 'नृत्य करणारा: उजळ त्वचा',
-    '💃🏼' => 'नृत्य करणारा: मध्यम उजळ त्वचा',
-    '💃🏽' => 'नृत्य करणारा: मध्यम त्वचा',
-    '💃🏾' => 'नृत्य करणारा: मध्यम काळसर त्वचा',
-    '💃🏿' => 'नृत्य करणारा: काळसर त्वचा',
-    '🕺🏻' => 'नाचणारा माणूस: उजळ त्वचा',
-    '🕺🏼' => 'नाचणारा माणूस: मध्यम उजळ त्वचा',
-    '🕺🏽' => 'नाचणारा माणूस: मध्यम त्वचा',
-    '🕺🏾' => 'नाचणारा माणूस: मध्यम काळसर त्वचा',
-    '🕺🏿' => 'नाचणारा माणूस: काळसर त्वचा',
+    '💃🏻' => 'नर्तिका: उजळ त्वचा',
+    '💃🏼' => 'नर्तिका: मध्यम उजळ त्वचा',
+    '💃🏽' => 'नर्तिका: मध्यम त्वचा',
+    '💃🏾' => 'नर्तिका: मध्यम काळसर त्वचा',
+    '💃🏿' => 'नर्तिका: काळसर त्वचा',
+    '🕺🏻' => 'नर्तक: उजळ त्वचा',
+    '🕺🏼' => 'नर्तक: मध्यम उजळ त्वचा',
+    '🕺🏽' => 'नर्तक: मध्यम त्वचा',
+    '🕺🏾' => 'नर्तक: मध्यम काळसर त्वचा',
+    '🕺🏿' => 'नर्तक: काळसर त्वचा',
     '🕴🏻' => 'सूटमध्‍ये असणारा हवेत तरंगणारा पुरूष: उजळ त्वचा',
     '🕴🏼' => 'सूटमध्‍ये असणारा हवेत तरंगणारा पुरूष: मध्यम उजळ त्वचा',
     '🕴🏽' => 'सूटमध्‍ये असणारा हवेत तरंगणारा पुरूष: मध्यम त्वचा',
     '🕴🏾' => 'सूटमध्‍ये असणारा हवेत तरंगणारा पुरूष: मध्यम काळसर त्वचा',
     '🕴🏿' => 'सूटमध्‍ये असणारा हवेत तरंगणारा पुरूष: काळसर त्वचा',
+    '👯🏻' => 'सशाचे कान लावलेले लोक: उजळ त्वचा',
+    '👯🏼' => 'सशाचे कान लावलेले लोक: मध्यम उजळ त्वचा',
+    '👯🏽' => 'सशाचे कान लावलेले लोक: मध्यम त्वचा',
+    '👯🏾' => 'सशाचे कान लावलेले लोक: मध्यम काळसर त्वचा',
+    '👯🏿' => 'सशाचे कान लावलेले लोक: काळसर त्वचा',
     '🧖🏻' => 'वाफेच्या खोलीत व्यक्ती: उजळ त्वचा',
     '🧖🏼' => 'वाफेच्या खोलीत व्यक्ती: मध्यम उजळ त्वचा',
     '🧖🏽' => 'वाफेच्या खोलीत व्यक्ती: मध्यम त्वचा',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'कार्टव्हील करणारी व्यक्ती: मध्यम त्वचा',
     '🤸🏾' => 'कार्टव्हील करणारी व्यक्ती: मध्यम काळसर त्वचा',
     '🤸🏿' => 'कार्टव्हील करणारी व्यक्ती: काळसर त्वचा',
+    '🤼🏻' => 'कुस्तीगीर: उजळ त्वचा',
+    '🤼🏼' => 'कुस्तीगीर: मध्यम उजळ त्वचा',
+    '🤼🏽' => 'कुस्तीगीर: मध्यम त्वचा',
+    '🤼🏾' => 'कुस्तीगीर: मध्यम काळसर त्वचा',
+    '🤼🏿' => 'कुस्तीगीर: काळसर त्वचा',
     '🤽🏻' => 'वॉटर पोलो: उजळ त्वचा',
     '🤽🏼' => 'वॉटर पोलो: मध्यम उजळ त्वचा',
     '🤽🏽' => 'वॉटर पोलो: मध्यम त्वचा',
@@ -2128,7 +2284,7 @@
     '💑🏿' => 'मध्यभागी ह्रदय असलेले जोडपे: काळसर त्वचा',
     '🇦🇨' => 'ध्वज: अ‍ॅसेन्शियन बेट',
     '🇦🇩' => 'ध्वज: अँडोरा',
-    '🇦🇪' => 'ध्वज: संयुक्त अरब अमीरात',
+    '🇦🇪' => 'ध्वज: संयुक्त अरब अमिराती',
     '🇦🇫' => 'ध्वज: अफगाणिस्तान',
     '🇦🇬' => 'ध्वज: अँटिग्वा आणि बर्बुडा',
     '🇦🇮' => 'ध्वज: अँग्विला',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'ध्वज: चीन',
     '🇨🇴' => 'ध्वज: कोलम्बिया',
     '🇨🇵' => 'ध्वज: क्लिपरटोन बेट',
+    '🇨🇶' => 'ध्वज: सार्क',
     '🇨🇷' => 'ध्वज: कोस्टा रिका',
     '🇨🇺' => 'ध्वज: क्यूबा',
     '🇨🇻' => 'ध्वज: केप व्हर्डे',
@@ -2390,13 +2547,6 @@
     '🏽' => 'मध्यम त्वचा',
     '🏾' => 'मध्यम काळसर त्वचा',
     '🏿' => 'काळसर त्वचा',
-    '🪉' => 'हार्प',
-    '🪏' => 'फावडे',
-    '🪾' => 'निष्पर्ण झाड',
-    '🫆' => 'बोटांचा ठसा',
-    '🫜' => 'कंदभाजी',
-    '🫟' => 'शिंतोडे उडवणे',
-    '🫩' => 'डोळ्यांखाली काळी वर्तुळे असणारा चेहरा',
     '😀' => 'दात विचकणाऱ्या हास्याचा चेहरा',
     '😃' => 'डोळे मोठे करून दात दाखवत मोठ्याने हसणे',
     '😄' => 'हसणारे डोळे',
@@ -2450,6 +2600,7 @@
     '😪' => 'झोप येत असलेला चेहरा',
     '🤤' => 'लाळ गळत असलेला चेहरा',
     '😴' => 'झोपलेला चेहरा',
+    '🫩' => 'डोळ्यांखाली काळी वर्तुळे असणारा चेहरा',
     '😷' => 'मेडिकल मास्कसह चेहरा',
     '🤒' => 'थर्मोमीटर असलेला चेहरा',
     '🤕' => 'डोक्याला पट्यी बांधलेला चेहरा',
@@ -2473,9 +2624,10 @@
     '🙁' => '‍किंचित नापसंती व्यक्त करणारा चेहरा',
     '☹' => 'नापसंती व्यक्त करणारा चेहरा',
     '😮' => 'तोंड उघडलेला चेहरा',
-    '😯' => 'अचंभित चेहरा',
+    '😯' => 'अचंबित चेहरा',
     '😲' => 'आश्चर्यचकित चेहरा',
     '😳' => 'विस्मयचकित चेहरा',
+    '🫪' => 'वेडावाकडा चेहरा',
     '🥺' => 'विनवणी करणारा चेहरा',
     '🥹' => 'डोळ्यात अश्रू असलेला चेहरा',
     '😦' => 'उघड्या तोंडाचा आठ्या असलेला चेहरा',
@@ -2547,6 +2699,7 @@
     '💋' => 'चुंबनाचे चिन्ह',
     '💯' => 'शंभर गुण',
     '💢' => 'रागाचे प्रतीक',
+    '🫯' => 'भांडणारे ढग',
     '💥' => 'टक्कर',
     '💫' => 'भोवळ',
     '💦' => 'घामाचे थेंब',
@@ -2670,16 +2823,17 @@
     '🧞' => 'जिनी',
     '🧟' => 'झोम्बी',
     '🧌' => 'ट्रोल',
+    '🫈' => 'केसाळ प्राणी',
     '💆' => 'मालिश',
     '💇' => 'केस कापण्याची कृती',
     '🚶' => 'पायी चालणारी व्यक्ती',
     '🧍' => 'उभी असलेली व्यक्ती',
     '🧎' => 'गुडघे टेकलेली व्यक्ती',
     '🏃' => 'धावणारा',
-    '💃' => 'नृत्य करणारा',
-    '🕺' => 'नाचणारा माणूस',
+    '💃' => 'नर्तिका',
+    '🕺' => 'नर्तक',
     '🕴' => 'सूटमध्‍ये असणारा हवेत तरंगणारा पुरूष',
-    '👯' => 'प्रोत्साहित करणारे लोक',
+    '👯' => 'सशाचे कान लावलेले लोक',
     '🧖' => 'वाफेच्या खोलीत व्यक्ती',
     '🧗' => 'गिर्यारोहण करणारी व्यक्ती',
     '🤺' => 'फेन्सर',
@@ -2713,6 +2867,7 @@
     '🫂' => 'मिठी मारणार्‍या व्यक्ती',
     '👪' => 'कुटुंब',
     '👣' => 'पावले',
+    '🫆' => 'बोटांचा ठसा',
     '🦰' => 'लाल केस',
     '🦱' => 'कुरळे केस',
     '🦳' => 'पांढरे केस',
@@ -2812,7 +2967,8 @@
     '🐳' => 'पाण्याचा फवारा उडविणारा व्हेल',
     '🐋' => 'व्हेल',
     '🐬' => 'डॉल्फिन',
-    '🦭' => 'हिमाच्छादित टूण्द्रा प्रदेशातील जलचर प्राणी',
+    '🫍' => 'ऑर्का',
+    '🦭' => 'सील',
     '🐟' => 'मासा',
     '🐠' => 'ट्रॉपिकल मासा',
     '🐡' => 'ब्लोफिश',
@@ -2821,6 +2977,11 @@
     '🐚' => 'नागमोडी शंख',
     '🪸' => 'प्रवाळ',
     '🪼' => 'जेलीफिश',
+    '🦀' => 'खेकडा',
+    '🦞' => 'लॉबस्टर',
+    '🦐' => 'झिंगा',
+    '🦑' => 'स्क्विड',
+    '🦪' => 'शिंपला',
     '🐌' => 'गोगलगाय',
     '🦋' => 'फुलपाखरू',
     '🐛' => 'अळी',
@@ -2865,6 +3026,7 @@
     '🪹' => 'रिकामे घरटे',
     '🪺' => 'अंडी असलेले घरटे',
     '🍄' => 'आळंबे',
+    '🪾' => 'निष्पर्ण झाड',
     '🍇' => 'द्राक्षे',
     '🍈' => 'खरबूज',
     '🍉' => 'कलिंगड',
@@ -2881,7 +3043,7 @@
     '🍓' => 'स्ट्रॉबेरी',
     '🫐' => 'ब्लूबेरी',
     '🥝' => 'किवी फळ',
-    '🍅' => 'टमाटर',
+    '🍅' => 'टोमॅटो',
     '🫒' => 'ऑलिव्ह',
     '🥥' => 'नारळ',
     '🥑' => 'अॅव्होकॅडो',
@@ -2901,6 +3063,7 @@
     '🌰' => 'चेस्टनट',
     '🫚' => 'आले',
     '🫛' => 'मटार',
+    '🫜' => 'कंदभाजी',
     '🍞' => 'ब्रेड',
     '🥐' => 'क्रोसेंट',
     '🥖' => 'बॅगेट ब्रेड',
@@ -2952,11 +3115,6 @@
     '🥟' => 'डंपलिंग',
     '🥠' => 'फॉर्च्युन कुकी',
     '🥡' => 'टेकआउट बॉक्स',
-    '🦀' => 'खेकडा',
-    '🦞' => 'लॉबस्टर',
-    '🦐' => 'झिंगा',
-    '🦑' => 'स्क्विड',
-    '🦪' => 'शिंपला',
     '🍦' => 'मऊ आइसक्रीम',
     '🍧' => 'शेव आइस',
     '🍨' => 'आइसक्रीम',
@@ -3007,6 +3165,7 @@
     '🧭' => 'होकायंत्र',
     '🏔' => 'हिमाच्छादित पर्वत',
     '⛰' => 'पर्वत',
+    '🛘' => 'दरड कोसळणे',
     '🌋' => 'ज्वालामुखी',
     '🗻' => 'फुजी पर्वत',
     '🏕' => 'कॅम्पिंग',
@@ -3302,13 +3461,13 @@
     '🧶' => 'यार्न',
     '🪢' => 'गाठ',
     '👓' => 'चष्मा',
-    '🕶' => 'उन्हाचा चष्मा',
+    '🕶' => 'गॉगल',
     '🥽' => 'गॉगल्स',
     '🥼' => 'लॅब कोट',
     '🦺' => 'सुरक्षा जाकिट',
     '👔' => 'टाय',
     '👕' => 'टीशर्ट',
-    '👖' => 'जिन्स',
+    '👖' => 'जीन्स',
     '🧣' => 'स्कार्फ',
     '🧤' => 'हातमोजे',
     '🧥' => 'कोट',
@@ -3316,7 +3475,7 @@
     '👗' => 'कपडे',
     '👘' => 'किमोनो',
     '🥻' => 'साडी',
-    '🩱' => 'अखंड कपड्याचा पोहण्याचा सूट',
+    '🩱' => 'वन पिस स्विम सूट',
     '🩲' => 'ब्रीफ',
     '🩳' => 'शॉर्ट्स',
     '👙' => 'बिकिनी',
@@ -3367,16 +3526,18 @@
     '🎧' => 'हेडफोन',
     '📻' => 'रेडिओ',
     '🎷' => 'सेक्सोफोन',
+    '🎺' => 'ट्रॅम्फेट',
+    '🪊' => 'ट्रॉंबोन',
     '🪗' => 'एकॉर्डियन',
     '🎸' => 'गिटार',
     '🎹' => 'संगीताचा कीबोर्ड',
-    '🎺' => 'ट्रॅम्फेट',
     '🎻' => 'व्हायोलिन',
     '🪕' => 'बँजो',
     '🥁' => 'ड्रम',
     '🪘' => 'लॉन्ग ड्रम',
     '🪇' => 'खुळखुळा',
     '🪈' => 'बासरी',
+    '🪉' => 'हार्प',
     '📱' => 'मोबाईल फोन',
     '📲' => 'बाण असलेला मोबाईल फोन',
     '☎' => 'टेलिफोन',
@@ -3430,16 +3591,17 @@
     '📑' => 'बुकमार्क टॅब',
     '🔖' => 'बुकमार्क',
     '🏷' => 'लेबल',
-    '💰' => 'पैशांची पिशवी',
     '🪙' => 'नाणे',
+    '💰' => 'पैशांची पिशवी',
+    '🪎' => 'खजिन्याची पेटी',
     '💴' => 'येन बॅंकनोट',
     '💵' => 'डॉलर बॅंकनोट',
     '💶' => 'युरो बॅंकनोट',
     '💷' => 'पाऊंड बॅंकनोट',
-    '💸' => 'पंख असलेला पैसा',
+    '💸' => 'पंख असलेली नोट',
     '💳' => 'क्रेडिट कार्ड',
-    '🧾' => 'रीसिप्ट',
-    '💹' => 'येन सह वाढणारा चार्ट',
+    '🧾' => 'रिसीट',
+    '💹' => 'येनचा वाढणारा चार्ट',
     '✉' => 'लिफाफा',
     '📧' => 'ई-मेल',
     '📨' => 'येणारा लिफाफा',
@@ -3447,7 +3609,7 @@
     '📤' => 'आउटबॉक्स ट्रे',
     '📥' => 'इनबॉक्स ट्रे',
     '📦' => 'पॅकेज',
-    '📫' => 'सरळ धवजासह बंद केलेला मेलबॉक्स',
+    '📫' => 'झेंडा लावलेला बंद मेलबॉक्स',
     '📪' => 'आडव्‍या ध्वजासह बंद केलेला मेलबॉक्स',
     '📬' => 'सरळ ध्वजासह उघडलेला मेलबॉक्स',
     '📭' => 'आडव्‍या ध्वजासह उघडलेला मेलबॉक्स',
@@ -3514,6 +3676,7 @@
     '🧰' => 'टूलबॉक्स',
     '🧲' => 'मॅग्नेट',
     '🪜' => 'शिडी',
+    '🪏' => 'फावडे',
     '⚗' => 'प्रयोगशाळेत वापरले जाणारे भांडे',
     '🧪' => 'टेस्ट ट्यूब',
     '🧫' => 'पेट्री डिश',
@@ -3566,15 +3729,14 @@
     '🚮' => 'कचरापेटीचे चिन्ह',
     '🚰' => 'पिण्‍यास योग्य असलेले पाणी',
     '♿' => 'व्हील चेअर',
-    '🚹' => 'पुरूषाची खोली',
-    '🚺' => 'महिलांची खोली',
-    '🚻' => 'विश्रामगृह',
+    '🚹' => 'पुरुषांसाठी प्रसाधनगृह',
+    '🚺' => 'महिलांसाठी प्रसाधनगृह',
+    '🚻' => 'प्रसाधनगृह',
     '🚼' => 'बाळाचे चिन्ह',
-    '🚾' => 'प्रसाधनगृह',
     '🛂' => 'पासपोर्ट नियंत्रण',
     '🛃' => 'जकात',
-    '🛄' => 'सामानाचा दावा',
-    '🛅' => 'डावीकडचे सामान',
+    '🛄' => 'सामान ताब्यात घेणे',
+    '🛅' => 'शिल्लक सामान',
     '⚠' => 'चेतावणी',
     '🚸' => 'मुले रस्ता ओलांडत आहेत',
     '⛔' => 'प्रवेश निषिद्ध',
@@ -3697,6 +3859,7 @@
     '✴' => 'आठ-टोके असलेला तारा',
     '❇' => 'चमक',
     '™' => 'ट्रेडमार्क',
+    '🫟' => 'शिंतोडे उडवणे',
     '🔠' => 'इनपुट लॅटिन अपरकेस',
     '🔡' => 'इनपुट लॅटिन लोअरकेस',
     '🔢' => 'इनपुट संख्‍या',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ms.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ms.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ms.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ms.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'cium: perempuan, perempuan, ton kulit gelap dan ton kulit sederhana',
     '👩🏿‍❤‍💋‍👩🏾' => 'cium: perempuan, perempuan, ton kulit gelap dan ton kulit sederhana gelap',
     '👩🏿‍❤‍💋‍👩🏿' => 'cium: perempuan, perempuan dan ton kulit gelap',
+    '🧑🏻‍🫯‍🧑🏼' => 'bergusti: ton kulit cerah dan ton kulit sederhana cerah',
+    '🧑🏻‍🫯‍🧑🏽' => 'bergusti: ton kulit cerah dan ton kulit sederhana',
+    '🧑🏻‍🫯‍🧑🏾' => 'bergusti: ton kulit cerah dan ton kulit sederhana gelap',
+    '🧑🏻‍🫯‍🧑🏿' => 'bergusti: ton kulit cerah dan ton kulit gelap',
+    '🧑🏼‍🫯‍🧑🏻' => 'bergusti: ton kulit sederhana cerah dan ton kulit cerah',
+    '🧑🏼‍🫯‍🧑🏽' => 'bergusti: ton kulit sederhana cerah dan ton kulit sederhana',
+    '🧑🏼‍🫯‍🧑🏾' => 'bergusti: ton kulit sederhana cerah dan ton kulit sederhana gelap',
+    '🧑🏼‍🫯‍🧑🏿' => 'bergusti: ton kulit sederhana cerah dan ton kulit gelap',
+    '🧑🏽‍🫯‍🧑🏻' => 'bergusti: ton kulit sederhana dan ton kulit cerah',
+    '🧑🏽‍🫯‍🧑🏼' => 'bergusti: ton kulit sederhana dan ton kulit sederhana cerah',
+    '🧑🏽‍🫯‍🧑🏾' => 'bergusti: ton kulit sederhana dan ton kulit sederhana gelap',
+    '🧑🏽‍🫯‍🧑🏿' => 'bergusti: ton kulit sederhana dan ton kulit gelap',
+    '🧑🏾‍🫯‍🧑🏻' => 'bergusti: ton kulit sederhana gelap dan ton kulit cerah',
+    '🧑🏾‍🫯‍🧑🏼' => 'bergusti: ton kulit sederhana gelap dan ton kulit sederhana cerah',
+    '🧑🏾‍🫯‍🧑🏽' => 'bergusti: ton kulit sederhana gelap dan ton kulit sederhana',
+    '🧑🏾‍🫯‍🧑🏿' => 'bergusti: ton kulit sederhana gelap dan ton kulit gelap',
+    '🧑🏿‍🫯‍🧑🏻' => 'bergusti: ton kulit gelap dan ton kulit cerah',
+    '🧑🏿‍🫯‍🧑🏼' => 'bergusti: ton kulit gelap dan ton kulit sederhana cerah',
+    '🧑🏿‍🫯‍🧑🏽' => 'bergusti: ton kulit gelap dan ton kulit sederhana',
+    '🧑🏿‍🫯‍🧑🏾' => 'bergusti: ton kulit gelap dan ton kulit sederhana gelap',
     '🧑🏻‍❤‍🧑🏼' => 'pasangan dengan simbol hati: dewasa, dewasa, ton kulit cerah dan ton kulit sederhana cerah',
     '🧑🏻‍❤‍🧑🏽' => 'pasangan dengan simbol hati: dewasa, dewasa, ton kulit cerah dan ton kulit sederhana',
     '🧑🏻‍❤‍🧑🏾' => 'pasangan dengan simbol hati: dewasa, dewasa, ton kulit cerah dan ton kulit sederhana gelap',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pasangan dengan simbol hati: dewasa, dewasa, ton kulit gelap dan ton kulit sederhana cerah',
     '🧑🏿‍❤‍🧑🏽' => 'pasangan dengan simbol hati: dewasa, dewasa, ton kulit gelap dan ton kulit sederhana',
     '🧑🏿‍❤‍🧑🏾' => 'pasangan dengan simbol hati: dewasa, dewasa, ton kulit gelap dan ton kulit sederhana gelap',
+    '🧑🏻‍🐰‍🧑🏼' => 'orang dengan telinga arnab: ton kulit cerah dan ton kulit sederhana cerah',
+    '🧑🏻‍🐰‍🧑🏽' => 'orang dengan telinga arnab: ton kulit cerah dan ton kulit sederhana',
+    '🧑🏻‍🐰‍🧑🏾' => 'orang dengan telinga arnab: ton kulit cerah dan ton kulit sederhana gelap',
+    '🧑🏻‍🐰‍🧑🏿' => 'orang dengan telinga arnab: ton kulit cerah dan ton kulit gelap',
+    '🧑🏼‍🐰‍🧑🏻' => 'orang dengan telinga arnab: ton kulit sederhana cerah dan ton kulit cerah',
+    '🧑🏼‍🐰‍🧑🏽' => 'orang dengan telinga arnab: ton kulit sederhana cerah dan ton kulit sederhana',
+    '🧑🏼‍🐰‍🧑🏾' => 'orang dengan telinga arnab: ton kulit sederhana cerah dan ton kulit sederhana gelap',
+    '🧑🏼‍🐰‍🧑🏿' => 'orang dengan telinga arnab: ton kulit sederhana cerah dan ton kulit gelap',
+    '🧑🏽‍🐰‍🧑🏻' => 'orang dengan telinga arnab: ton kulit sederhana dan ton kulit cerah',
+    '🧑🏽‍🐰‍🧑🏼' => 'orang dengan telinga arnab: ton kulit sederhana dan ton kulit sederhana cerah',
+    '🧑🏽‍🐰‍🧑🏾' => 'orang dengan telinga arnab: ton kulit sederhana dan ton kulit sederhana gelap',
+    '🧑🏽‍🐰‍🧑🏿' => 'orang dengan telinga arnab: ton kulit sederhana dan ton kulit gelap',
+    '🧑🏾‍🐰‍🧑🏻' => 'orang dengan telinga arnab: ton kulit sederhana gelap dan ton kulit cerah',
+    '🧑🏾‍🐰‍🧑🏼' => 'orang dengan telinga arnab: ton kulit sederhana gelap dan ton kulit sederhana cerah',
+    '🧑🏾‍🐰‍🧑🏽' => 'orang dengan telinga arnab: ton kulit sederhana gelap dan ton kulit sederhana',
+    '🧑🏾‍🐰‍🧑🏿' => 'orang dengan telinga arnab: ton kulit sederhana gelap dan ton kulit gelap',
+    '🧑🏿‍🐰‍🧑🏻' => 'orang dengan telinga arnab: ton kulit gelap dan ton kulit cerah',
+    '🧑🏿‍🐰‍🧑🏼' => 'orang dengan telinga arnab: ton kulit gelap dan ton kulit sederhana cerah',
+    '🧑🏿‍🐰‍🧑🏽' => 'orang dengan telinga arnab: ton kulit gelap dan ton kulit sederhana',
+    '🧑🏿‍🐰‍🧑🏾' => 'orang dengan telinga arnab: ton kulit gelap dan ton kulit sederhana gelap',
+    '👨🏻‍🫯‍👨🏼' => 'lelaki bergusti: ton kulit cerah dan ton kulit sederhana cerah',
+    '👨🏻‍🫯‍👨🏽' => 'lelaki bergusti: ton kulit cerah dan ton kulit sederhana',
+    '👨🏻‍🫯‍👨🏾' => 'lelaki bergusti: ton kulit cerah dan ton kulit sederhana gelap',
+    '👨🏻‍🫯‍👨🏿' => 'lelaki bergusti: ton kulit cerah dan ton kulit gelap',
+    '👨🏼‍🫯‍👨🏻' => 'lelaki bergusti: ton kulit sederhana cerah dan ton kulit cerah',
+    '👨🏼‍🫯‍👨🏽' => 'lelaki bergusti: ton kulit sederhana cerah dan ton kulit sederhana',
+    '👨🏼‍🫯‍👨🏾' => 'lelaki bergusti: ton kulit sederhana cerah dan ton kulit sederhana gelap',
+    '👨🏼‍🫯‍👨🏿' => 'lelaki bergusti: ton kulit sederhana cerah dan ton kulit gelap',
+    '👨🏽‍🫯‍👨🏻' => 'lelaki bergusti: ton kulit sederhana dan ton kulit cerah',
+    '👨🏽‍🫯‍👨🏼' => 'lelaki bergusti: ton kulit sederhana dan ton kulit sederhana cerah',
+    '👨🏽‍🫯‍👨🏾' => 'lelaki bergusti: ton kulit sederhana dan ton kulit sederhana gelap',
+    '👨🏽‍🫯‍👨🏿' => 'lelaki bergusti: ton kulit sederhana dan ton kulit gelap',
+    '👨🏾‍🫯‍👨🏻' => 'lelaki bergusti: ton kulit sederhana gelap dan ton kulit cerah',
+    '👨🏾‍🫯‍👨🏼' => 'lelaki bergusti: ton kulit sederhana gelap dan ton kulit sederhana cerah',
+    '👨🏾‍🫯‍👨🏽' => 'lelaki bergusti: ton kulit sederhana gelap dan ton kulit sederhana',
+    '👨🏾‍🫯‍👨🏿' => 'lelaki bergusti: ton kulit sederhana gelap dan ton kulit gelap',
+    '👨🏿‍🫯‍👨🏻' => 'lelaki bergusti: ton kulit gelap dan ton kulit cerah',
+    '👨🏿‍🫯‍👨🏼' => 'lelaki bergusti: ton kulit gelap dan ton kulit sederhana cerah',
+    '👨🏿‍🫯‍👨🏽' => 'lelaki bergusti: ton kulit gelap dan ton kulit sederhana',
+    '👨🏿‍🫯‍👨🏾' => 'lelaki bergusti: ton kulit gelap dan ton kulit sederhana gelap',
     '👨🏻‍❤‍👨🏻' => 'pasangan dengan simbol hati: lelaki, lelaki dan ton kulit cerah',
     '👨🏻‍❤‍👨🏼' => 'pasangan dengan simbol hati: lelaki, lelaki, ton kulit cerah dan ton kulit sederhana cerah',
     '👨🏻‍❤‍👨🏽' => 'pasangan dengan simbol hati: lelaki, lelaki, ton kulit cerah dan ton kulit sederhana',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pasangan dengan simbol hati: lelaki, lelaki, ton kulit gelap dan ton kulit sederhana',
     '👨🏿‍❤‍👨🏾' => 'pasangan dengan simbol hati: lelaki, lelaki, ton kulit gelap dan ton kulit sederhana gelap',
     '👨🏿‍❤‍👨🏿' => 'pasangan dengan simbol hati: lelaki, lelaki dan ton kulit gelap',
+    '👨🏻‍🐰‍👨🏼' => 'lelaki berpesta: ton kulit cerah dan ton kulit sederhana cerah',
+    '👨🏻‍🐰‍👨🏽' => 'lelaki berpesta: ton kulit cerah dan ton kulit sederhana',
+    '👨🏻‍🐰‍👨🏾' => 'lelaki berpesta: ton kulit cerah dan ton kulit sederhana gelap',
+    '👨🏻‍🐰‍👨🏿' => 'lelaki berpesta: ton kulit cerah dan ton kulit gelap',
+    '👨🏼‍🐰‍👨🏻' => 'lelaki berpesta: ton kulit sederhana cerah dan ton kulit cerah',
+    '👨🏼‍🐰‍👨🏽' => 'lelaki berpesta: ton kulit sederhana cerah dan ton kulit sederhana',
+    '👨🏼‍🐰‍👨🏾' => 'lelaki berpesta: ton kulit sederhana cerah dan ton kulit sederhana gelap',
+    '👨🏼‍🐰‍👨🏿' => 'lelaki berpesta: ton kulit sederhana cerah dan ton kulit gelap',
+    '👨🏽‍🐰‍👨🏻' => 'lelaki berpesta: ton kulit sederhana dan ton kulit cerah',
+    '👨🏽‍🐰‍👨🏼' => 'lelaki berpesta: ton kulit sederhana dan ton kulit sederhana cerah',
+    '👨🏽‍🐰‍👨🏾' => 'lelaki berpesta: ton kulit sederhana dan ton kulit sederhana gelap',
+    '👨🏽‍🐰‍👨🏿' => 'lelaki berpesta: ton kulit sederhana dan ton kulit gelap',
+    '👨🏾‍🐰‍👨🏻' => 'lelaki berpesta: ton kulit sederhana gelap dan ton kulit cerah',
+    '👨🏾‍🐰‍👨🏼' => 'lelaki berpesta: ton kulit sederhana gelap dan ton kulit sederhana cerah',
+    '👨🏾‍🐰‍👨🏽' => 'lelaki berpesta: ton kulit sederhana gelap dan ton kulit sederhana',
+    '👨🏾‍🐰‍👨🏿' => 'lelaki berpesta: ton kulit sederhana gelap dan ton kulit gelap',
+    '👨🏿‍🐰‍👨🏻' => 'lelaki berpesta: ton kulit gelap dan ton kulit cerah',
+    '👨🏿‍🐰‍👨🏼' => 'lelaki berpesta: ton kulit gelap dan ton kulit sederhana cerah',
+    '👨🏿‍🐰‍👨🏽' => 'lelaki berpesta: ton kulit gelap dan ton kulit sederhana',
+    '👨🏿‍🐰‍👨🏾' => 'lelaki berpesta: ton kulit gelap dan ton kulit sederhana gelap',
+    '👩🏻‍🫯‍👩🏼' => 'wanita bergusti: ton kulit cerah dan ton kulit sederhana cerah',
+    '👩🏻‍🫯‍👩🏽' => 'wanita bergusti: ton kulit cerah dan ton kulit sederhana',
+    '👩🏻‍🫯‍👩🏾' => 'wanita bergusti: ton kulit cerah dan ton kulit sederhana gelap',
+    '👩🏻‍🫯‍👩🏿' => 'wanita bergusti: ton kulit cerah dan ton kulit gelap',
+    '👩🏼‍🫯‍👩🏻' => 'wanita bergusti: ton kulit sederhana cerah dan ton kulit cerah',
+    '👩🏼‍🫯‍👩🏽' => 'wanita bergusti: ton kulit sederhana cerah dan ton kulit sederhana',
+    '👩🏼‍🫯‍👩🏾' => 'wanita bergusti: ton kulit sederhana cerah dan ton kulit sederhana gelap',
+    '👩🏼‍🫯‍👩🏿' => 'wanita bergusti: ton kulit sederhana cerah dan ton kulit gelap',
+    '👩🏽‍🫯‍👩🏻' => 'wanita bergusti: ton kulit sederhana dan ton kulit cerah',
+    '👩🏽‍🫯‍👩🏼' => 'wanita bergusti: ton kulit sederhana dan ton kulit sederhana cerah',
+    '👩🏽‍🫯‍👩🏾' => 'wanita bergusti: ton kulit sederhana dan ton kulit sederhana gelap',
+    '👩🏽‍🫯‍👩🏿' => 'wanita bergusti: ton kulit sederhana dan ton kulit gelap',
+    '👩🏾‍🫯‍👩🏻' => 'wanita bergusti: ton kulit sederhana gelap dan ton kulit cerah',
+    '👩🏾‍🫯‍👩🏼' => 'wanita bergusti: ton kulit sederhana gelap dan ton kulit sederhana cerah',
+    '👩🏾‍🫯‍👩🏽' => 'wanita bergusti: ton kulit sederhana gelap dan ton kulit sederhana',
+    '👩🏾‍🫯‍👩🏿' => 'wanita bergusti: ton kulit sederhana gelap dan ton kulit gelap',
+    '👩🏿‍🫯‍👩🏻' => 'wanita bergusti: ton kulit gelap dan ton kulit cerah',
+    '👩🏿‍🫯‍👩🏼' => 'wanita bergusti: ton kulit gelap dan ton kulit sederhana cerah',
+    '👩🏿‍🫯‍👩🏽' => 'wanita bergusti: ton kulit gelap dan ton kulit sederhana',
+    '👩🏿‍🫯‍👩🏾' => 'wanita bergusti: ton kulit gelap dan ton kulit sederhana gelap',
     '👩🏻‍❤‍👨🏻' => 'pasangan dengan simbol hati: perempuan, lelaki dan ton kulit cerah',
     '👩🏻‍❤‍👨🏼' => 'pasangan dengan simbol hati: perempuan, lelaki, ton kulit cerah dan ton kulit sederhana cerah',
     '👩🏻‍❤‍👨🏽' => 'pasangan dengan simbol hati: perempuan, lelaki, ton kulit cerah dan ton kulit sederhana',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pasangan dengan simbol hati: perempuan, perempuan, ton kulit gelap dan ton kulit sederhana',
     '👩🏿‍❤‍👩🏾' => 'pasangan dengan simbol hati: perempuan, perempuan, ton kulit gelap dan ton kulit sederhana gelap',
     '👩🏿‍❤‍👩🏿' => 'pasangan dengan simbol hati: perempuan, perempuan dan ton kulit gelap',
+    '👩🏻‍🐰‍👩🏼' => 'perempuan berpesta: ton kulit cerah dan ton kulit sederhana cerah',
+    '👩🏻‍🐰‍👩🏽' => 'perempuan berpesta: ton kulit cerah dan ton kulit sederhana',
+    '👩🏻‍🐰‍👩🏾' => 'perempuan berpesta: ton kulit cerah dan ton kulit sederhana gelap',
+    '👩🏻‍🐰‍👩🏿' => 'perempuan berpesta: ton kulit cerah dan ton kulit gelap',
+    '👩🏼‍🐰‍👩🏻' => 'perempuan berpesta: ton kulit sederhana cerah dan ton kulit cerah',
+    '👩🏼‍🐰‍👩🏽' => 'perempuan berpesta: ton kulit sederhana cerah dan ton kulit sederhana',
+    '👩🏼‍🐰‍👩🏾' => 'perempuan berpesta: ton kulit sederhana cerah dan ton kulit sederhana gelap',
+    '👩🏼‍🐰‍👩🏿' => 'perempuan berpesta: ton kulit sederhana cerah dan ton kulit gelap',
+    '👩🏽‍🐰‍👩🏻' => 'perempuan berpesta: ton kulit sederhana dan ton kulit cerah',
+    '👩🏽‍🐰‍👩🏼' => 'perempuan berpesta: ton kulit sederhana dan ton kulit sederhana cerah',
+    '👩🏽‍🐰‍👩🏾' => 'perempuan berpesta: ton kulit sederhana dan ton kulit sederhana gelap',
+    '👩🏽‍🐰‍👩🏿' => 'perempuan berpesta: ton kulit sederhana dan ton kulit gelap',
+    '👩🏾‍🐰‍👩🏻' => 'perempuan berpesta: ton kulit sederhana gelap dan ton kulit cerah',
+    '👩🏾‍🐰‍👩🏼' => 'perempuan berpesta: ton kulit sederhana gelap dan ton kulit sederhana cerah',
+    '👩🏾‍🐰‍👩🏽' => 'perempuan berpesta: ton kulit sederhana gelap dan ton kulit sederhana',
+    '👩🏾‍🐰‍👩🏿' => 'perempuan berpesta: ton kulit sederhana gelap dan ton kulit gelap',
+    '👩🏿‍🐰‍👩🏻' => 'perempuan berpesta: ton kulit gelap dan ton kulit cerah',
+    '👩🏿‍🐰‍👩🏼' => 'perempuan berpesta: ton kulit gelap dan ton kulit sederhana cerah',
+    '👩🏿‍🐰‍👩🏽' => 'perempuan berpesta: ton kulit gelap dan ton kulit sederhana',
+    '👩🏿‍🐰‍👩🏾' => 'perempuan berpesta: ton kulit gelap dan ton kulit sederhana gelap',
     '🧑🏻‍🤝‍🧑🏻' => 'orang berpegangan tangan: ton kulit cerah',
     '🧑🏻‍🤝‍🧑🏼' => 'orang berpegangan tangan: ton kulit cerah dan ton kulit sederhana cerah',
     '🧑🏻‍🤝‍🧑🏽' => 'orang berpegangan tangan: ton kulit cerah dan ton kulit sederhana',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bendera: Scotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bendera: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'keluarga: dewasa, dewasa, kanak-kanak, kanak-kanak',
-    '🚶🏻‍♀‍➡' => 'perempuan berjalan menghadap kanan',
-    '🚶🏼‍♀‍➡' => 'perempuan berjalan menghadap kanan',
-    '🚶🏽‍♀‍➡' => 'perempuan berjalan menghadap kanan',
-    '🚶🏾‍♀‍➡' => 'perempuan berjalan menghadap kanan',
-    '🚶🏿‍♀‍➡' => 'perempuan berjalan menghadap kanan',
-    '🚶🏻‍♂‍➡' => 'lelaki berjalan menghadap kanan',
-    '🚶🏼‍♂‍➡' => 'lelaki berjalan menghadap kanan',
-    '🚶🏽‍♂‍➡' => 'lelaki berjalan menghadap kanan',
-    '🚶🏾‍♂‍➡' => 'lelaki berjalan menghadap kanan',
-    '🚶🏿‍♂‍➡' => 'lelaki berjalan menghadap kanan',
-    '🧎🏻‍♀‍➡' => 'perempuan bersimpuh menghadap kanan',
-    '🧎🏼‍♀‍➡' => 'perempuan bersimpuh menghadap kanan',
-    '🧎🏽‍♀‍➡' => 'perempuan bersimpuh menghadap kanan',
-    '🧎🏾‍♀‍➡' => 'perempuan bersimpuh menghadap kanan',
-    '🧎🏿‍♀‍➡' => 'perempuan bersimpuh menghadap kanan',
-    '🧎🏻‍♂‍➡' => 'lelaki bersimpuh menghadap kanan',
-    '🧎🏼‍♂‍➡' => 'lelaki bersimpuh menghadap kanan',
-    '🧎🏽‍♂‍➡' => 'lelaki bersimpuh menghadap kanan',
-    '🧎🏾‍♂‍➡' => 'lelaki bersimpuh menghadap kanan',
-    '🧎🏿‍♂‍➡' => 'lelaki bersimpuh menghadap kanan',
-    '🧑🏻‍🦯‍➡' => 'orang dengan tongkat putih menghadap kanan',
-    '🧑🏼‍🦯‍➡' => 'orang dengan tongkat putih menghadap kanan',
-    '🧑🏽‍🦯‍➡' => 'orang dengan tongkat putih menghadap kanan',
-    '🧑🏾‍🦯‍➡' => 'orang dengan tongkat putih menghadap kanan',
-    '🧑🏿‍🦯‍➡' => 'orang dengan tongkat putih menghadap kanan',
-    '👨🏻‍🦯‍➡' => 'lelaki dengan tongkat putih menghadap kanan',
-    '👨🏼‍🦯‍➡' => 'lelaki dengan tongkat putih menghadap kanan',
-    '👨🏽‍🦯‍➡' => 'lelaki dengan tongkat putih menghadap kanan',
-    '👨🏾‍🦯‍➡' => 'lelaki dengan tongkat putih menghadap kanan',
-    '👨🏿‍🦯‍➡' => 'lelaki dengan tongkat putih menghadap kanan',
-    '👩🏻‍🦯‍➡' => 'perempuan dengan tongkat putih menghadap kanan',
-    '👩🏼‍🦯‍➡' => 'perempuan dengan tongkat putih menghadap kanan',
-    '👩🏽‍🦯‍➡' => 'perempuan dengan tongkat putih menghadap kanan',
-    '👩🏾‍🦯‍➡' => 'perempuan dengan tongkat putih menghadap kanan',
-    '👩🏿‍🦯‍➡' => 'perempuan dengan tongkat putih menghadap kanan',
-    '🧑🏻‍🦼‍➡' => 'orang dalam kerusi roda bermotor menghadap kanan',
-    '🧑🏼‍🦼‍➡' => 'orang dalam kerusi roda bermotor menghadap kanan',
-    '🧑🏽‍🦼‍➡' => 'orang dalam kerusi roda bermotor menghadap kanan',
-    '🧑🏾‍🦼‍➡' => 'orang dalam kerusi roda bermotor menghadap kanan',
-    '🧑🏿‍🦼‍➡' => 'orang dalam kerusi roda bermotor menghadap kanan',
-    '👨🏻‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor menghadap kanan',
-    '👨🏼‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor menghadap kanan',
-    '👨🏽‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor menghadap kanan',
-    '👨🏾‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor menghadap kanan',
-    '👨🏿‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor menghadap kanan',
-    '👩🏻‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor menghadap kanan',
-    '👩🏼‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor menghadap kanan',
-    '👩🏽‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor menghadap kanan',
-    '👩🏾‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor menghadap kanan',
-    '👩🏿‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor menghadap kanan',
-    '🧑🏻‍🦽‍➡' => 'orang dalam kerusi roda manual menghadap kanan',
-    '🧑🏼‍🦽‍➡' => 'orang dalam kerusi roda manual menghadap kanan',
-    '🧑🏽‍🦽‍➡' => 'orang dalam kerusi roda manual menghadap kanan',
-    '🧑🏾‍🦽‍➡' => 'orang dalam kerusi roda manual menghadap kanan',
-    '🧑🏿‍🦽‍➡' => 'orang dalam kerusi roda manual menghadap kanan',
-    '👨🏻‍🦽‍➡' => 'lelaki dalam kerusi roda manual menghadap kanan',
-    '👨🏼‍🦽‍➡' => 'lelaki dalam kerusi roda manual menghadap kanan',
-    '👨🏽‍🦽‍➡' => 'lelaki dalam kerusi roda manual menghadap kanan',
-    '👨🏾‍🦽‍➡' => 'lelaki dalam kerusi roda manual menghadap kanan',
-    '👨🏿‍🦽‍➡' => 'lelaki dalam kerusi roda manual menghadap kanan',
-    '👩🏻‍🦽‍➡' => 'perempuan dalam kereta roda manual menghadap kanan',
-    '👩🏼‍🦽‍➡' => 'perempuan dalam kereta roda manual menghadap kanan',
-    '👩🏽‍🦽‍➡' => 'perempuan dalam kereta roda manual menghadap kanan',
-    '👩🏾‍🦽‍➡' => 'perempuan dalam kereta roda manual menghadap kanan',
-    '👩🏿‍🦽‍➡' => 'perempuan dalam kereta roda manual menghadap kanan',
-    '🏃🏻‍♀‍➡' => 'perempuan berlari menghadap kanan',
-    '🏃🏼‍♀‍➡' => 'perempuan berlari menghadap kanan',
-    '🏃🏽‍♀‍➡' => 'perempuan berlari menghadap kanan',
-    '🏃🏾‍♀‍➡' => 'perempuan berlari menghadap kanan',
-    '🏃🏿‍♀‍➡' => 'perempuan berlari menghadap kanan',
-    '🏃🏻‍♂‍➡' => 'lelaki berlari menghadap kanan',
-    '🏃🏼‍♂‍➡' => 'lelaki berlari menghadap kanan',
-    '🏃🏽‍♂‍➡' => 'lelaki berlari menghadap kanan',
-    '🏃🏾‍♂‍➡' => 'lelaki berlari menghadap kanan',
-    '🏃🏿‍♂‍➡' => 'lelaki berlari menghadap kanan',
+    '🚶🏻‍♀‍➡' => 'perempuan berjalan: ton kulit cerah dan menghadap kanan',
+    '🚶🏼‍♀‍➡' => 'perempuan berjalan: ton kulit sederhana cerah dan menghadap kanan',
+    '🚶🏽‍♀‍➡' => 'perempuan berjalan: ton kulit sederhana dan menghadap kanan',
+    '🚶🏾‍♀‍➡' => 'perempuan berjalan: ton kulit sederhana gelap dan menghadap kanan',
+    '🚶🏿‍♀‍➡' => 'perempuan berjalan: ton kulit gelap dan menghadap kanan',
+    '🚶🏻‍♂‍➡' => 'lelaki berjalan: ton kulit cerah dan menghadap kanan',
+    '🚶🏼‍♂‍➡' => 'lelaki berjalan: ton kulit sederhana cerah dan menghadap kanan',
+    '🚶🏽‍♂‍➡' => 'lelaki berjalan: ton kulit sederhana dan menghadap kanan',
+    '🚶🏾‍♂‍➡' => 'lelaki berjalan: ton kulit sederhana gelap dan menghadap kanan',
+    '🚶🏿‍♂‍➡' => 'lelaki berjalan: ton kulit gelap dan menghadap kanan',
+    '🧎🏻‍♀‍➡' => 'perempuan bersimpuh: ton kulit cerah dan menghadap kanan',
+    '🧎🏼‍♀‍➡' => 'perempuan bersimpuh: ton kulit sederhana cerah dan menghadap kanan',
+    '🧎🏽‍♀‍➡' => 'perempuan bersimpuh: ton kulit sederhana dan menghadap kanan',
+    '🧎🏾‍♀‍➡' => 'perempuan bersimpuh: ton kulit sederhana gelap dan menghadap kanan',
+    '🧎🏿‍♀‍➡' => 'perempuan bersimpuh: ton kulit gelap dan menghadap kanan',
+    '🧎🏻‍♂‍➡' => 'lelaki bersimpuh: ton kulit cerah dan menghadap kanan',
+    '🧎🏼‍♂‍➡' => 'lelaki bersimpuh: ton kulit sederhana cerah dan menghadap kanan',
+    '🧎🏽‍♂‍➡' => 'lelaki bersimpuh: ton kulit sederhana dan menghadap kanan',
+    '🧎🏾‍♂‍➡' => 'lelaki bersimpuh: ton kulit sederhana gelap dan menghadap kanan',
+    '🧎🏿‍♂‍➡' => 'lelaki bersimpuh: ton kulit gelap dan menghadap kanan',
+    '🧑🏻‍🦯‍➡' => 'orang dengan tongkat putih: ton kulit cerah dan menghadap kanan',
+    '🧑🏼‍🦯‍➡' => 'orang dengan tongkat putih: ton kulit sederhana cerah dan menghadap kanan',
+    '🧑🏽‍🦯‍➡' => 'orang dengan tongkat putih: ton kulit sederhana dan menghadap kanan',
+    '🧑🏾‍🦯‍➡' => 'orang dengan tongkat putih: ton kulit sederhana gelap dan menghadap kanan',
+    '🧑🏿‍🦯‍➡' => 'orang dengan tongkat putih: ton kulit gelap dan menghadap kanan',
+    '👨🏻‍🦯‍➡' => 'lelaki dengan tongkat putih: ton kulit cerah dan menghadap kanan',
+    '👨🏼‍🦯‍➡' => 'lelaki dengan tongkat putih: ton kulit sederhana cerah dan menghadap kanan',
+    '👨🏽‍🦯‍➡' => 'lelaki dengan tongkat putih: ton kulit sederhana dan menghadap kanan',
+    '👨🏾‍🦯‍➡' => 'lelaki dengan tongkat putih: ton kulit sederhana gelap dan menghadap kanan',
+    '👨🏿‍🦯‍➡' => 'lelaki dengan tongkat putih: ton kulit gelap dan menghadap kanan',
+    '👩🏻‍🦯‍➡' => 'perempuan dengan tongkat putih: ton kulit cerah dan menghadap kanan',
+    '👩🏼‍🦯‍➡' => 'perempuan dengan tongkat putih: ton kulit sederhana cerah dan menghadap kanan',
+    '👩🏽‍🦯‍➡' => 'perempuan dengan tongkat putih: ton kulit sederhana dan menghadap kanan',
+    '👩🏾‍🦯‍➡' => 'perempuan dengan tongkat putih: ton kulit sederhana gelap dan menghadap kanan',
+    '👩🏿‍🦯‍➡' => 'perempuan dengan tongkat putih: ton kulit gelap dan menghadap kanan',
+    '🧑🏻‍🦼‍➡' => 'orang dalam kerusi roda bermotor: ton kulit cerah dan menghadap kanan',
+    '🧑🏼‍🦼‍➡' => 'orang dalam kerusi roda bermotor: ton kulit sederhana cerah dan menghadap kanan',
+    '🧑🏽‍🦼‍➡' => 'orang dalam kerusi roda bermotor: ton kulit sederhana dan menghadap kanan',
+    '🧑🏾‍🦼‍➡' => 'orang dalam kerusi roda bermotor: ton kulit sederhana gelap dan menghadap kanan',
+    '🧑🏿‍🦼‍➡' => 'orang dalam kerusi roda bermotor: ton kulit gelap dan menghadap kanan',
+    '👨🏻‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor: ton kulit cerah dan menghadap kanan',
+    '👨🏼‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor: ton kulit sederhana cerah dan menghadap kanan',
+    '👨🏽‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor: ton kulit sederhana dan menghadap kanan',
+    '👨🏾‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor: ton kulit sederhana gelap dan menghadap kanan',
+    '👨🏿‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor: ton kulit gelap dan menghadap kanan',
+    '👩🏻‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor: ton kulit cerah dan menghadap kanan',
+    '👩🏼‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor: ton kulit sederhana cerah dan menghadap kanan',
+    '👩🏽‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor: ton kulit sederhana dan menghadap kanan',
+    '👩🏾‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor: ton kulit sederhana gelap dan menghadap kanan',
+    '👩🏿‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor: ton kulit gelap dan menghadap kanan',
+    '🧑🏻‍🦽‍➡' => 'orang dalam kerusi roda manual: ton kulit cerah dan menghadap kanan',
+    '🧑🏼‍🦽‍➡' => 'orang dalam kerusi roda manual: ton kulit sederhana cerah dan menghadap kanan',
+    '🧑🏽‍🦽‍➡' => 'orang dalam kerusi roda manual: ton kulit sederhana dan menghadap kanan',
+    '🧑🏾‍🦽‍➡' => 'orang dalam kerusi roda manual: ton kulit sederhana gelap dan menghadap kanan',
+    '🧑🏿‍🦽‍➡' => 'orang dalam kerusi roda manual: ton kulit gelap dan menghadap kanan',
+    '👨🏻‍🦽‍➡' => 'lelaki dalam kerusi roda manual: ton kulit cerah dan menghadap kanan',
+    '👨🏼‍🦽‍➡' => 'lelaki dalam kerusi roda manual: ton kulit sederhana cerah dan menghadap kanan',
+    '👨🏽‍🦽‍➡' => 'lelaki dalam kerusi roda manual: ton kulit sederhana dan menghadap kanan',
+    '👨🏾‍🦽‍➡' => 'lelaki dalam kerusi roda manual: ton kulit sederhana gelap dan menghadap kanan',
+    '👨🏿‍🦽‍➡' => 'lelaki dalam kerusi roda manual: ton kulit gelap dan menghadap kanan',
+    '👩🏻‍🦽‍➡' => 'perempuan dalam kereta roda manual: ton kulit cerah dan menghadap kanan',
+    '👩🏼‍🦽‍➡' => 'perempuan dalam kereta roda manual: ton kulit sederhana cerah dan menghadap kanan',
+    '👩🏽‍🦽‍➡' => 'perempuan dalam kereta roda manual: ton kulit sederhana dan menghadap kanan',
+    '👩🏾‍🦽‍➡' => 'perempuan dalam kereta roda manual: ton kulit sederhana gelap dan menghadap kanan',
+    '👩🏿‍🦽‍➡' => 'perempuan dalam kereta roda manual: ton kulit gelap dan menghadap kanan',
+    '🏃🏻‍♀‍➡' => 'perempuan berlari: ton kulit cerah dan menghadap kanan',
+    '🏃🏼‍♀‍➡' => 'perempuan berlari: ton kulit sederhana cerah dan menghadap kanan',
+    '🏃🏽‍♀‍➡' => 'perempuan berlari: ton kulit sederhana dan menghadap kanan',
+    '🏃🏾‍♀‍➡' => 'perempuan berlari: ton kulit sederhana gelap dan menghadap kanan',
+    '🏃🏿‍♀‍➡' => 'perempuan berlari: ton kulit gelap dan menghadap kanan',
+    '🏃🏻‍♂‍➡' => 'lelaki berlari: ton kulit cerah dan menghadap kanan',
+    '🏃🏼‍♂‍➡' => 'lelaki berlari: ton kulit sederhana cerah dan menghadap kanan',
+    '🏃🏽‍♂‍➡' => 'lelaki berlari: ton kulit sederhana dan menghadap kanan',
+    '🏃🏾‍♂‍➡' => 'lelaki berlari: ton kulit sederhana gelap dan menghadap kanan',
+    '🏃🏿‍♂‍➡' => 'lelaki berlari: ton kulit gelap dan menghadap kanan',
     '🫱🏻‍🫲🏼' => 'berjabat tangan: ton kulit cerah dan ton kulit sederhana cerah',
     '🫱🏻‍🫲🏽' => 'berjabat tangan: ton kulit cerah dan ton kulit sederhana',
     '🫱🏻‍🫲🏾' => 'berjabat tangan: ton kulit cerah dan ton kulit sederhana gelap',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'berjabat tangan: ton kulit gelap dan ton kulit sederhana cerah',
     '🫱🏿‍🫲🏽' => 'berjabat tangan: ton kulit gelap dan ton kulit sederhana',
     '🫱🏿‍🫲🏾' => 'berjabat tangan: ton kulit gelap dan ton kulit sederhana gelap',
-    '🚶‍♀‍➡' => 'perempuan berjalan menghadap kanan',
-    '🚶‍♂‍➡' => 'lelaki berjalan menghadap kanan',
-    '🧎‍♀‍➡' => 'perempuan bersimpuh menghadap kanan',
-    '🧎‍♂‍➡' => 'lelaki bersimpuh menghadap kanan',
-    '🧑‍🦯‍➡' => 'orang dengan tongkat putih menghadap kanan',
-    '👨‍🦯‍➡' => 'lelaki dengan tongkat putih menghadap kanan',
-    '👩‍🦯‍➡' => 'perempuan dengan tongkat putih menghadap kanan',
-    '🧑‍🦼‍➡' => 'orang dalam kerusi roda bermotor menghadap kanan',
-    '👨‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor menghadap kanan',
-    '👩‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor menghadap kanan',
-    '🧑‍🦽‍➡' => 'orang dalam kerusi roda manual menghadap kanan',
-    '👨‍🦽‍➡' => 'lelaki dalam kerusi roda manual menghadap kanan',
-    '👩‍🦽‍➡' => 'perempuan dalam kereta roda manual menghadap kanan',
-    '🏃‍♀‍➡' => 'perempuan berlari menghadap kanan',
-    '🏃‍♂‍➡' => 'lelaki berlari menghadap kanan',
+    '🚶‍♀‍➡' => 'perempuan berjalan: menghadap kanan',
+    '🚶‍♂‍➡' => 'lelaki berjalan: menghadap kanan',
+    '🧎‍♀‍➡' => 'perempuan bersimpuh: menghadap kanan',
+    '🧎‍♂‍➡' => 'lelaki bersimpuh: menghadap kanan',
+    '🧑‍🦯‍➡' => 'orang dengan tongkat putih: menghadap kanan',
+    '👨‍🦯‍➡' => 'lelaki dengan tongkat putih: menghadap kanan',
+    '👩‍🦯‍➡' => 'perempuan dengan tongkat putih: menghadap kanan',
+    '🧑‍🦼‍➡' => 'orang dalam kerusi roda bermotor: menghadap kanan',
+    '👨‍🦼‍➡' => 'lelaki dalam kerusi roda bermotor: menghadap kanan',
+    '👩‍🦼‍➡' => 'perempuan dalam kerusi roda bermotor: menghadap kanan',
+    '🧑‍🦽‍➡' => 'orang dalam kerusi roda manual: menghadap kanan',
+    '👨‍🦽‍➡' => 'lelaki dalam kerusi roda manual: menghadap kanan',
+    '👩‍🦽‍➡' => 'perempuan dalam kereta roda manual: menghadap kanan',
+    '🏃‍♀‍➡' => 'perempuan berlari: menghadap kanan',
+    '🏃‍♂‍➡' => 'lelaki berlari: menghadap kanan',
     '👩‍❤‍👨' => 'pasangan dengan simbol hati: perempuan dan lelaki',
     '👨‍❤‍👨' => 'pasangan dengan simbol hati: lelaki dan lelaki',
     '👩‍❤‍👩' => 'pasangan dengan simbol hati: perempuan dan perempuan',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'dewasa: ton kulit sederhana dan botak',
     '🧑🏾‍🦲' => 'dewasa: ton kulit sederhana gelap dan botak',
     '🧑🏿‍🦲' => 'dewasa: ton kulit gelap dan botak',
+    '🧑🏻‍🩰' => 'penari balet: ton kulit cerah',
+    '🧑🏼‍🩰' => 'penari balet: ton kulit sederhana cerah',
+    '🧑🏽‍🩰' => 'penari balet: ton kulit sederhana',
+    '🧑🏾‍🩰' => 'penari balet: ton kulit sederhana gelap',
+    '🧑🏿‍🩰' => 'penari balet: ton kulit gelap',
     '🧔🏻‍♂' => 'lelaki: ton kulit cerah dan janggut',
     '🧔🏼‍♂' => 'lelaki: ton kulit sederhana cerah dan janggut',
     '🧔🏽‍♂' => 'lelaki: ton kulit sederhana dan janggut',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'perempuan berjalan: ton kulit sederhana',
     '🚶🏾‍♀' => 'perempuan berjalan: ton kulit sederhana gelap',
     '🚶🏿‍♀' => 'perempuan berjalan: ton kulit gelap',
-    '🚶🏻‍➡' => 'pejalan kaki menghadap kanan',
-    '🚶🏼‍➡' => 'pejalan kaki menghadap kanan',
-    '🚶🏽‍➡' => 'pejalan kaki menghadap kanan',
-    '🚶🏾‍➡' => 'pejalan kaki menghadap kanan',
-    '🚶🏿‍➡' => 'pejalan kaki menghadap kanan',
+    '🚶🏻‍➡' => 'pejalan kaki: ton kulit cerah dan menghadap kanan',
+    '🚶🏼‍➡' => 'pejalan kaki: ton kulit sederhana cerah dan menghadap kanan',
+    '🚶🏽‍➡' => 'pejalan kaki: ton kulit sederhana dan menghadap kanan',
+    '🚶🏾‍➡' => 'pejalan kaki: ton kulit sederhana gelap dan menghadap kanan',
+    '🚶🏿‍➡' => 'pejalan kaki: ton kulit gelap dan menghadap kanan',
     '🧍🏻‍♂' => 'lelaki berdiri: ton kulit cerah',
     '🧍🏼‍♂' => 'lelaki berdiri: ton kulit sederhana cerah',
     '🧍🏽‍♂' => 'lelaki berdiri: ton kulit sederhana',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'perempuan bersimpuh: ton kulit sederhana',
     '🧎🏾‍♀' => 'perempuan bersimpuh: ton kulit sederhana gelap',
     '🧎🏿‍♀' => 'perempuan bersimpuh: ton kulit gelap',
-    '🧎🏻‍➡' => 'orang bersimpuh menghadap kanan',
-    '🧎🏼‍➡' => 'orang bersimpuh menghadap kanan',
-    '🧎🏽‍➡' => 'orang bersimpuh menghadap kanan',
-    '🧎🏾‍➡' => 'orang bersimpuh menghadap kanan',
-    '🧎🏿‍➡' => 'orang bersimpuh menghadap kanan',
+    '🧎🏻‍➡' => 'orang bersimpuh: ton kulit cerah dan menghadap kanan',
+    '🧎🏼‍➡' => 'orang bersimpuh: ton kulit sederhana cerah dan menghadap kanan',
+    '🧎🏽‍➡' => 'orang bersimpuh: ton kulit sederhana dan menghadap kanan',
+    '🧎🏾‍➡' => 'orang bersimpuh: ton kulit sederhana gelap dan menghadap kanan',
+    '🧎🏿‍➡' => 'orang bersimpuh: ton kulit gelap dan menghadap kanan',
     '🧑🏻‍🦯' => 'orang dengan tongkat putih: ton kulit cerah',
     '🧑🏼‍🦯' => 'orang dengan tongkat putih: ton kulit sederhana cerah',
     '🧑🏽‍🦯' => 'orang dengan tongkat putih: ton kulit sederhana',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'perempuan berlari: ton kulit sederhana',
     '🏃🏾‍♀' => 'perempuan berlari: ton kulit sederhana gelap',
     '🏃🏿‍♀' => 'perempuan berlari: ton kulit gelap',
-    '🏃🏻‍➡' => 'pelari menghadap kanan',
-    '🏃🏼‍➡' => 'pelari menghadap kanan',
-    '🏃🏽‍➡' => 'pelari menghadap kanan',
-    '🏃🏾‍➡' => 'pelari menghadap kanan',
-    '🏃🏿‍➡' => 'pelari menghadap kanan',
+    '🏃🏻‍➡' => 'pelari: ton kulit cerah dan menghadap kanan',
+    '🏃🏼‍➡' => 'pelari: ton kulit sederhana cerah dan menghadap kanan',
+    '🏃🏽‍➡' => 'pelari: ton kulit sederhana dan menghadap kanan',
+    '🏃🏾‍➡' => 'pelari: ton kulit sederhana gelap dan menghadap kanan',
+    '🏃🏿‍➡' => 'pelari: ton kulit gelap dan menghadap kanan',
+    '👯🏻‍♀' => 'perempuan berpesta: ton kulit cerah',
+    '👯🏼‍♀' => 'perempuan berpesta: ton kulit sederhana cerah',
+    '👯🏽‍♀' => 'perempuan berpesta: ton kulit sederhana',
+    '👯🏾‍♀' => 'perempuan berpesta: ton kulit sederhana gelap',
+    '👯🏿‍♀' => 'perempuan berpesta: ton kulit gelap',
+    '👯🏻‍♂' => 'lelaki berpesta: ton kulit cerah',
+    '👯🏼‍♂' => 'lelaki berpesta: ton kulit sederhana cerah',
+    '👯🏽‍♂' => 'lelaki berpesta: ton kulit sederhana',
+    '👯🏾‍♂' => 'lelaki berpesta: ton kulit sederhana gelap',
+    '👯🏿‍♂' => 'lelaki berpesta: ton kulit gelap',
     '🧖🏻‍♂' => 'lelaki dalam bilik berwap: ton kulit cerah',
     '🧖🏼‍♂' => 'lelaki dalam bilik berwap: ton kulit sederhana cerah',
     '🧖🏽‍♂' => 'lelaki dalam bilik berwap: ton kulit sederhana',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'wanita membuat putar roda: ton kulit sederhana',
     '🤸🏾‍♀' => 'wanita membuat putar roda: ton kulit sederhana gelap',
     '🤸🏿‍♀' => 'wanita membuat putar roda: ton kulit gelap',
+    '🤼🏻‍♀' => 'wanita bergusti: ton kulit cerah',
+    '🤼🏼‍♀' => 'wanita bergusti: ton kulit sederhana cerah',
+    '🤼🏽‍♀' => 'wanita bergusti: ton kulit sederhana',
+    '🤼🏾‍♀' => 'wanita bergusti: ton kulit sederhana gelap',
+    '🤼🏿‍♀' => 'wanita bergusti: ton kulit gelap',
+    '🤼🏻‍♂' => 'lelaki bergusti: ton kulit cerah',
+    '🤼🏼‍♂' => 'lelaki bergusti: ton kulit sederhana cerah',
+    '🤼🏽‍♂' => 'lelaki bergusti: ton kulit sederhana',
+    '🤼🏾‍♂' => 'lelaki bergusti: ton kulit sederhana gelap',
+    '🤼🏿‍♂' => 'lelaki bergusti: ton kulit gelap',
     '🤽🏻‍♂' => 'lelaki bermain polo air: ton kulit cerah',
     '🤽🏼‍♂' => 'lelaki bermain polo air: ton kulit sederhana cerah',
     '🤽🏽‍♂' => 'lelaki bermain polo air: ton kulit sederhana',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'perempuan: rambut kerinting',
     '👩‍🦳' => 'perempuan: rambut putih',
     '👩‍🦲' => 'perempuan: botak',
-    '🚶‍➡' => 'pejalan kaki menghadap kanan',
-    '🧎‍➡' => 'orang bersimpuh menghadap kanan',
-    '🏃‍➡' => 'pelari menghadap kanan',
+    '🚶‍➡' => 'pejalan kaki: menghadap kanan',
+    '🧎‍➡' => 'orang bersimpuh: menghadap kanan',
+    '🏃‍➡' => 'pelari: menghadap kanan',
     '👨‍👦' => 'keluarga: lelaki dan kanak-kanak lelaki',
     '👨‍👧' => 'keluarga: lelaki dan budak perempuan',
     '👩‍👦' => 'keluarga: perempuan dan kanak-kanak lelaki',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'perempuan dalam kereta roda manual',
     '🏃‍♂' => 'lelaki berlari',
     '🏃‍♀' => 'perempuan berlari',
+    '🧑‍🩰' => 'penari balet',
     '👯‍♂' => 'lelaki berpesta',
     '👯‍♀' => 'perempuan berpesta',
     '🧖‍♂' => 'lelaki dalam bilik berwap',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'lelaki memakai sut urusan terapung-apung: ton kulit sederhana',
     '🕴🏾' => 'lelaki memakai sut urusan terapung-apung: ton kulit sederhana gelap',
     '🕴🏿' => 'lelaki memakai sut urusan terapung-apung: ton kulit gelap',
+    '👯🏻' => 'orang dengan telinga arnab: ton kulit cerah',
+    '👯🏼' => 'orang dengan telinga arnab: ton kulit sederhana cerah',
+    '👯🏽' => 'orang dengan telinga arnab: ton kulit sederhana',
+    '👯🏾' => 'orang dengan telinga arnab: ton kulit sederhana gelap',
+    '👯🏿' => 'orang dengan telinga arnab: ton kulit gelap',
     '🧖🏻' => 'orang dalam bilik berwap: ton kulit cerah',
     '🧖🏼' => 'orang dalam bilik berwap: ton kulit sederhana cerah',
     '🧖🏽' => 'orang dalam bilik berwap: ton kulit sederhana',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'putar roda: ton kulit sederhana',
     '🤸🏾' => 'putar roda: ton kulit sederhana gelap',
     '🤸🏿' => 'putar roda: ton kulit gelap',
+    '🤼🏻' => 'bergusti: ton kulit cerah',
+    '🤼🏼' => 'bergusti: ton kulit sederhana cerah',
+    '🤼🏽' => 'bergusti: ton kulit sederhana',
+    '🤼🏾' => 'bergusti: ton kulit sederhana gelap',
+    '🤼🏿' => 'bergusti: ton kulit gelap',
     '🤽🏻' => 'polo air: ton kulit cerah',
     '🤽🏼' => 'polo air: ton kulit sederhana cerah',
     '🤽🏽' => 'polo air: ton kulit sederhana',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bendera: China',
     '🇨🇴' => 'bendera: Colombia',
     '🇨🇵' => 'bendera: Pulau Clipperton',
+    '🇨🇶' => 'bendera: Sark',
     '🇨🇷' => 'bendera: Costa Rica',
     '🇨🇺' => 'bendera: Cuba',
     '🇨🇻' => 'bendera: Cape Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ton kulit sederhana',
     '🏾' => 'ton kulit sederhana gelap',
     '🏿' => 'ton kulit gelap',
-    '🪉' => 'hap',
-    '🪏' => 'penyodok',
-    '🪾' => 'pokok tidak berdaun',
-    '🫆' => 'cap jari',
-    '🫜' => 'sayur akar',
-    '🫟' => 'percik',
-    '🫩' => 'muka dengan lingkaran gelap bawah mata',
     '😀' => 'muka tersengih',
     '😃' => 'muka tersengih dengan mata besar',
     '😄' => 'muka tersengih dan mata tersenyum',
@@ -2450,6 +2600,7 @@
     '😪' => 'muka mengantuk',
     '🤤' => 'muka meliur',
     '😴' => 'muka tidur',
+    '🫩' => 'muka dengan lingkaran gelap bawah mata',
     '😷' => 'muka memakai topeng perubatan',
     '🤒' => 'muka dengan termometer',
     '🤕' => 'muka dengan kepala berbalut',
@@ -2476,6 +2627,7 @@
     '😯' => 'muka terkejut',
     '😲' => 'muka terperanjat',
     '😳' => 'muka malu',
+    '🫪' => 'muka herot',
     '🥺' => 'muka merayu',
     '🥹' => 'muka menahan air mata',
     '😦' => 'muka berkerut dengan mulut ternganga',
@@ -2547,6 +2699,7 @@
     '💋' => 'tanda ciuman',
     '💯' => 'seratus mata',
     '💢' => 'simbol marah',
+    '🫯' => 'awan pergelutan',
     '💥' => 'pelanggaran',
     '💫' => 'pening',
     '💦' => 'titis peluh',
@@ -2670,6 +2823,7 @@
     '🧞' => 'jin',
     '🧟' => 'zombi',
     '🧌' => 'raksasa',
+    '🫈' => 'makhluk berbulu',
     '💆' => 'urut muka',
     '💇' => 'gunting rambut',
     '🚶' => 'pejalan kaki',
@@ -2713,6 +2867,7 @@
     '🫂' => 'orang berpelukan',
     '👪' => 'keluarga',
     '👣' => 'jejak kaki',
+    '🫆' => 'cap jari',
     '🦰' => 'rambut merah',
     '🦱' => 'rambut kerinting',
     '🦳' => 'rambut putih',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ikan paus memancutkan air',
     '🐋' => 'ikan paus',
     '🐬' => 'ikan lumba-lumba',
+    '🫍' => 'orca',
     '🦭' => 'anjing laut',
     '🐟' => 'ikan',
     '🐠' => 'ikan tropika',
@@ -2821,6 +2977,11 @@
     '🐚' => 'kulit kerang berpilin',
     '🪸' => 'karang',
     '🪼' => 'ubur-ubur',
+    '🦀' => 'ketam',
+    '🦞' => 'udang karang',
+    '🦐' => 'udang',
+    '🦑' => 'sotong',
+    '🦪' => 'tiram',
     '🐌' => 'siput',
     '🦋' => 'rama-rama',
     '🐛' => 'ulat',
@@ -2865,6 +3026,7 @@
     '🪹' => 'sarang kosong',
     '🪺' => 'sarang dengan telur',
     '🍄' => 'cendawan',
+    '🪾' => 'pokok tidak berdaun',
     '🍇' => 'anggur',
     '🍈' => 'tembikai susu',
     '🍉' => 'tembikai',
@@ -2901,6 +3063,7 @@
     '🌰' => 'buah berangan',
     '🫚' => 'akar halia',
     '🫛' => 'lenggai',
+    '🫜' => 'sayur akar',
     '🍞' => 'roti',
     '🥐' => 'kroisan',
     '🥖' => 'roti baguette',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ladu',
     '🥠' => 'biskut nasib',
     '🥡' => 'kotak bungkus',
-    '🦀' => 'ketam',
-    '🦞' => 'udang karang',
-    '🦐' => 'udang',
-    '🦑' => 'sotong',
-    '🦪' => 'tiram',
     '🍦' => 'ais krim lembut',
     '🍧' => 'air batu campur',
     '🍨' => 'ais krim',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'gunung dengan puncak bersalji',
     '⛰' => 'gunung',
+    '🛘' => 'tanah runtuh',
     '🌋' => 'gunung berapi',
     '🗻' => 'gunung fuji',
     '🏕' => 'berkhemah',
@@ -3367,16 +3526,18 @@
     '🎧' => 'fon kepala',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'trompet',
+    '🪊' => 'trombon',
     '🪗' => 'akordion',
     '🎸' => 'gitar',
     '🎹' => 'keyboard muzik',
-    '🎺' => 'trompet',
     '🎻' => 'biola',
     '🪕' => 'banjo',
     '🥁' => 'dram',
     '🪘' => 'karatung',
     '🪇' => 'marakas',
     '🪈' => 'seruling',
+    '🪉' => 'hap',
     '📱' => 'telefon bimbit',
     '📲' => 'telefon bimbit dengan anak panah',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'tab penanda halaman',
     '🔖' => 'penanda buku',
     '🏷' => 'label',
-    '💰' => 'karung duit',
     '🪙' => 'syiling',
+    '💰' => 'karung duit',
+    '🪎' => 'peti harta karun',
     '💴' => 'wang kertas yen',
     '💵' => 'wang kertas dolar',
     '💶' => 'wang kertas euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'kotak alat',
     '🧲' => 'magnet',
     '🪜' => 'tangga',
+    '🪏' => 'penyodok',
     '⚗' => 'alembic',
     '🧪' => 'tabung uji',
     '🧫' => 'piring petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'bintang berpenjuru lapan',
     '❇' => 'kilauan',
     '™' => 'tanda dagangan',
+    '🫟' => 'percik',
     '🔠' => 'huruf besar latin input',
     '🔡' => 'huruf kecil latin input',
     '🔢' => 'nombor input',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-mt.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'bewsa: mara, mara, ton skur tal-ġilda, u ton medju tal-ġilda',
     '👩🏿‍❤‍💋‍👩🏾' => 'bewsa: mara, mara, ton skur tal-ġilda, u ton medju-skur tal-ġilda',
     '👩🏿‍❤‍💋‍👩🏿' => 'bewsa: mara, mara, u ton skur tal-ġilda',
+    '🧑🏻‍🫯‍🧑🏼' => 'persuna jagħmlu r-wrestling: ton ċar tal-ġilda u ton medju-ċar tal-ġilda',
+    '🧑🏻‍🫯‍🧑🏽' => 'persuna jagħmlu r-wrestling: ton ċar tal-ġilda u ton medju tal-ġilda',
+    '🧑🏻‍🫯‍🧑🏾' => 'persuna jagħmlu r-wrestling: ton ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '🧑🏻‍🫯‍🧑🏿' => 'persuna jagħmlu r-wrestling: ton ċar tal-ġilda u ton skur tal-ġilda',
+    '🧑🏼‍🫯‍🧑🏻' => 'persuna jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton ċar tal-ġilda',
+    '🧑🏼‍🫯‍🧑🏽' => 'persuna jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton medju tal-ġilda',
+    '🧑🏼‍🫯‍🧑🏾' => 'persuna jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '🧑🏼‍🫯‍🧑🏿' => 'persuna jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton skur tal-ġilda',
+    '🧑🏽‍🫯‍🧑🏻' => 'persuna jagħmlu r-wrestling: ton medju tal-ġilda u ton ċar tal-ġilda',
+    '🧑🏽‍🫯‍🧑🏼' => 'persuna jagħmlu r-wrestling: ton medju tal-ġilda u ton medju-ċar tal-ġilda',
+    '🧑🏽‍🫯‍🧑🏾' => 'persuna jagħmlu r-wrestling: ton medju tal-ġilda u ton medju-skur tal-ġilda',
+    '🧑🏽‍🫯‍🧑🏿' => 'persuna jagħmlu r-wrestling: ton medju tal-ġilda u ton skur tal-ġilda',
+    '🧑🏾‍🫯‍🧑🏻' => 'persuna jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton ċar tal-ġilda',
+    '🧑🏾‍🫯‍🧑🏼' => 'persuna jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '🧑🏾‍🫯‍🧑🏽' => 'persuna jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton medju tal-ġilda',
+    '🧑🏾‍🫯‍🧑🏿' => 'persuna jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton skur tal-ġilda',
+    '🧑🏿‍🫯‍🧑🏻' => 'persuna jagħmlu r-wrestling: ton skur tal-ġilda u ton ċar tal-ġilda',
+    '🧑🏿‍🫯‍🧑🏼' => 'persuna jagħmlu r-wrestling: ton skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '🧑🏿‍🫯‍🧑🏽' => 'persuna jagħmlu r-wrestling: ton skur tal-ġilda u ton medju tal-ġilda',
+    '🧑🏿‍🫯‍🧑🏾' => 'persuna jagħmlu r-wrestling: ton skur tal-ġilda u ton medju-skur tal-ġilda',
     '🧑🏻‍❤‍🧑🏼' => 'koppja b’qalb: adult, adult, ton ċar tal-ġilda, u ton medju-ċar tal-ġilda',
     '🧑🏻‍❤‍🧑🏽' => 'koppja b’qalb: adult, adult, ton ċar tal-ġilda, u ton medju tal-ġilda',
     '🧑🏻‍❤‍🧑🏾' => 'koppja b’qalb: adult, adult, ton ċar tal-ġilda, u ton medju-skur tal-ġilda',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'koppja b’qalb: adult, adult, ton skur tal-ġilda, u ton medju-ċar tal-ġilda',
     '🧑🏿‍❤‍🧑🏽' => 'koppja b’qalb: adult, adult, ton skur tal-ġilda, u ton medju tal-ġilda',
     '🧑🏿‍❤‍🧑🏾' => 'koppja b’qalb: adult, adult, ton skur tal-ġilda, u ton medju-skur tal-ġilda',
+    '🧑🏻‍🐰‍🧑🏼' => 'persuni b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton medju-ċar tal-ġilda',
+    '🧑🏻‍🐰‍🧑🏽' => 'persuni b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton medju tal-ġilda',
+    '🧑🏻‍🐰‍🧑🏾' => 'persuni b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '🧑🏻‍🐰‍🧑🏿' => 'persuni b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton skur tal-ġilda',
+    '🧑🏼‍🐰‍🧑🏻' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton ċar tal-ġilda',
+    '🧑🏼‍🐰‍🧑🏽' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton medju tal-ġilda',
+    '🧑🏼‍🐰‍🧑🏾' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '🧑🏼‍🐰‍🧑🏿' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton skur tal-ġilda',
+    '🧑🏽‍🐰‍🧑🏻' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton ċar tal-ġilda',
+    '🧑🏽‍🐰‍🧑🏼' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton medju-ċar tal-ġilda',
+    '🧑🏽‍🐰‍🧑🏾' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton medju-skur tal-ġilda',
+    '🧑🏽‍🐰‍🧑🏿' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton skur tal-ġilda',
+    '🧑🏾‍🐰‍🧑🏻' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton ċar tal-ġilda',
+    '🧑🏾‍🐰‍🧑🏼' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '🧑🏾‍🐰‍🧑🏽' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton medju tal-ġilda',
+    '🧑🏾‍🐰‍🧑🏿' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton skur tal-ġilda',
+    '🧑🏿‍🐰‍🧑🏻' => 'persuni b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton ċar tal-ġilda',
+    '🧑🏿‍🐰‍🧑🏼' => 'persuni b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '🧑🏿‍🐰‍🧑🏽' => 'persuni b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton medju tal-ġilda',
+    '🧑🏿‍🐰‍🧑🏾' => 'persuni b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton medju-skur tal-ġilda',
+    '👨🏻‍🫯‍👨🏼' => 'irġiel jagħmlu r-wrestling: ton ċar tal-ġilda u ton medju-ċar tal-ġilda',
+    '👨🏻‍🫯‍👨🏽' => 'irġiel jagħmlu r-wrestling: ton ċar tal-ġilda u ton medju tal-ġilda',
+    '👨🏻‍🫯‍👨🏾' => 'irġiel jagħmlu r-wrestling: ton ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '👨🏻‍🫯‍👨🏿' => 'irġiel jagħmlu r-wrestling: ton ċar tal-ġilda u ton skur tal-ġilda',
+    '👨🏼‍🫯‍👨🏻' => 'irġiel jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton ċar tal-ġilda',
+    '👨🏼‍🫯‍👨🏽' => 'irġiel jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton medju tal-ġilda',
+    '👨🏼‍🫯‍👨🏾' => 'irġiel jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '👨🏼‍🫯‍👨🏿' => 'irġiel jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton skur tal-ġilda',
+    '👨🏽‍🫯‍👨🏻' => 'irġiel jagħmlu r-wrestling: ton medju tal-ġilda u ton ċar tal-ġilda',
+    '👨🏽‍🫯‍👨🏼' => 'irġiel jagħmlu r-wrestling: ton medju tal-ġilda u ton medju-ċar tal-ġilda',
+    '👨🏽‍🫯‍👨🏾' => 'irġiel jagħmlu r-wrestling: ton medju tal-ġilda u ton medju-skur tal-ġilda',
+    '👨🏽‍🫯‍👨🏿' => 'irġiel jagħmlu r-wrestling: ton medju tal-ġilda u ton skur tal-ġilda',
+    '👨🏾‍🫯‍👨🏻' => 'irġiel jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton ċar tal-ġilda',
+    '👨🏾‍🫯‍👨🏼' => 'irġiel jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '👨🏾‍🫯‍👨🏽' => 'irġiel jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton medju tal-ġilda',
+    '👨🏾‍🫯‍👨🏿' => 'irġiel jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton skur tal-ġilda',
+    '👨🏿‍🫯‍👨🏻' => 'irġiel jagħmlu r-wrestling: ton skur tal-ġilda u ton ċar tal-ġilda',
+    '👨🏿‍🫯‍👨🏼' => 'irġiel jagħmlu r-wrestling: ton skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '👨🏿‍🫯‍👨🏽' => 'irġiel jagħmlu r-wrestling: ton skur tal-ġilda u ton medju tal-ġilda',
+    '👨🏿‍🫯‍👨🏾' => 'irġiel jagħmlu r-wrestling: ton skur tal-ġilda u ton medju-skur tal-ġilda',
     '👨🏻‍❤‍👨🏻' => 'koppja b’qalb: raġel, raġel, u ton ċar tal-ġilda',
     '👨🏻‍❤‍👨🏼' => 'koppja b’qalb: raġel, raġel, ton ċar tal-ġilda, u ton medju-ċar tal-ġilda',
     '👨🏻‍❤‍👨🏽' => 'koppja b’qalb: raġel, raġel, ton ċar tal-ġilda, u ton medju tal-ġilda',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'koppja b’qalb: raġel, raġel, ton skur tal-ġilda, u ton medju tal-ġilda',
     '👨🏿‍❤‍👨🏾' => 'koppja b’qalb: raġel, raġel, ton skur tal-ġilda, u ton medju-skur tal-ġilda',
     '👨🏿‍❤‍👨🏿' => 'koppja b’qalb: raġel, raġel, u ton skur tal-ġilda',
+    '👨🏻‍🐰‍👨🏼' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton medju-ċar tal-ġilda',
+    '👨🏻‍🐰‍👨🏽' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton medju tal-ġilda',
+    '👨🏻‍🐰‍👨🏾' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '👨🏻‍🐰‍👨🏿' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton skur tal-ġilda',
+    '👨🏼‍🐰‍👨🏻' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton ċar tal-ġilda',
+    '👨🏼‍🐰‍👨🏽' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton medju tal-ġilda',
+    '👨🏼‍🐰‍👨🏾' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '👨🏼‍🐰‍👨🏿' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton skur tal-ġilda',
+    '👨🏽‍🐰‍👨🏻' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton ċar tal-ġilda',
+    '👨🏽‍🐰‍👨🏼' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton medju-ċar tal-ġilda',
+    '👨🏽‍🐰‍👨🏾' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton medju-skur tal-ġilda',
+    '👨🏽‍🐰‍👨🏿' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton skur tal-ġilda',
+    '👨🏾‍🐰‍👨🏻' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton ċar tal-ġilda',
+    '👨🏾‍🐰‍👨🏼' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '👨🏾‍🐰‍👨🏽' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton medju tal-ġilda',
+    '👨🏾‍🐰‍👨🏿' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton skur tal-ġilda',
+    '👨🏿‍🐰‍👨🏻' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton ċar tal-ġilda',
+    '👨🏿‍🐰‍👨🏼' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '👨🏿‍🐰‍👨🏽' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton medju tal-ġilda',
+    '👨🏿‍🐰‍👨🏾' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton medju-skur tal-ġilda',
+    '👩🏻‍🫯‍👩🏼' => 'nisa jagħmlu r-wrestling: ton ċar tal-ġilda u ton medju-ċar tal-ġilda',
+    '👩🏻‍🫯‍👩🏽' => 'nisa jagħmlu r-wrestling: ton ċar tal-ġilda u ton medju tal-ġilda',
+    '👩🏻‍🫯‍👩🏾' => 'nisa jagħmlu r-wrestling: ton ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '👩🏻‍🫯‍👩🏿' => 'nisa jagħmlu r-wrestling: ton ċar tal-ġilda u ton skur tal-ġilda',
+    '👩🏼‍🫯‍👩🏻' => 'nisa jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton ċar tal-ġilda',
+    '👩🏼‍🫯‍👩🏽' => 'nisa jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton medju tal-ġilda',
+    '👩🏼‍🫯‍👩🏾' => 'nisa jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '👩🏼‍🫯‍👩🏿' => 'nisa jagħmlu r-wrestling: ton medju-ċar tal-ġilda u ton skur tal-ġilda',
+    '👩🏽‍🫯‍👩🏻' => 'nisa jagħmlu r-wrestling: ton medju tal-ġilda u ton ċar tal-ġilda',
+    '👩🏽‍🫯‍👩🏼' => 'nisa jagħmlu r-wrestling: ton medju tal-ġilda u ton medju-ċar tal-ġilda',
+    '👩🏽‍🫯‍👩🏾' => 'nisa jagħmlu r-wrestling: ton medju tal-ġilda u ton medju-skur tal-ġilda',
+    '👩🏽‍🫯‍👩🏿' => 'nisa jagħmlu r-wrestling: ton medju tal-ġilda u ton skur tal-ġilda',
+    '👩🏾‍🫯‍👩🏻' => 'nisa jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton ċar tal-ġilda',
+    '👩🏾‍🫯‍👩🏼' => 'nisa jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '👩🏾‍🫯‍👩🏽' => 'nisa jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton medju tal-ġilda',
+    '👩🏾‍🫯‍👩🏿' => 'nisa jagħmlu r-wrestling: ton medju-skur tal-ġilda u ton skur tal-ġilda',
+    '👩🏿‍🫯‍👩🏻' => 'nisa jagħmlu r-wrestling: ton skur tal-ġilda u ton ċar tal-ġilda',
+    '👩🏿‍🫯‍👩🏼' => 'nisa jagħmlu r-wrestling: ton skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '👩🏿‍🫯‍👩🏽' => 'nisa jagħmlu r-wrestling: ton skur tal-ġilda u ton medju tal-ġilda',
+    '👩🏿‍🫯‍👩🏾' => 'nisa jagħmlu r-wrestling: ton skur tal-ġilda u ton medju-skur tal-ġilda',
     '👩🏻‍❤‍👨🏻' => 'koppja b’qalb: mara, raġel, u ton ċar tal-ġilda',
     '👩🏻‍❤‍👨🏼' => 'koppja b’qalb: mara, raġel, ton ċar tal-ġilda, u ton medju-ċar tal-ġilda',
     '👩🏻‍❤‍👨🏽' => 'koppja b’qalb: mara, raġel, ton ċar tal-ġilda, u ton medju tal-ġilda',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'koppja b’qalb: mara, mara, ton skur tal-ġilda, u ton medju tal-ġilda',
     '👩🏿‍❤‍👩🏾' => 'koppja b’qalb: mara, mara, ton skur tal-ġilda, u ton medju-skur tal-ġilda',
     '👩🏿‍❤‍👩🏿' => 'koppja b’qalb: mara, mara, u ton skur tal-ġilda',
+    '👩🏻‍🐰‍👩🏼' => 'nisa b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton medju-ċar tal-ġilda',
+    '👩🏻‍🐰‍👩🏽' => 'nisa b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton medju tal-ġilda',
+    '👩🏻‍🐰‍👩🏾' => 'nisa b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '👩🏻‍🐰‍👩🏿' => 'nisa b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda u ton skur tal-ġilda',
+    '👩🏼‍🐰‍👩🏻' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton ċar tal-ġilda',
+    '👩🏼‍🐰‍👩🏽' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton medju tal-ġilda',
+    '👩🏼‍🐰‍👩🏾' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton medju-skur tal-ġilda',
+    '👩🏼‍🐰‍👩🏿' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda u ton skur tal-ġilda',
+    '👩🏽‍🐰‍👩🏻' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton ċar tal-ġilda',
+    '👩🏽‍🐰‍👩🏼' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton medju-ċar tal-ġilda',
+    '👩🏽‍🐰‍👩🏾' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton medju-skur tal-ġilda',
+    '👩🏽‍🐰‍👩🏿' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda u ton skur tal-ġilda',
+    '👩🏾‍🐰‍👩🏻' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton ċar tal-ġilda',
+    '👩🏾‍🐰‍👩🏼' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '👩🏾‍🐰‍👩🏽' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton medju tal-ġilda',
+    '👩🏾‍🐰‍👩🏿' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda u ton skur tal-ġilda',
+    '👩🏿‍🐰‍👩🏻' => 'nisa b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton ċar tal-ġilda',
+    '👩🏿‍🐰‍👩🏼' => 'nisa b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton medju-ċar tal-ġilda',
+    '👩🏿‍🐰‍👩🏽' => 'nisa b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton medju tal-ġilda',
+    '👩🏿‍🐰‍👩🏾' => 'nisa b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda u ton medju-skur tal-ġilda',
     '👩🏻‍🤝‍👩🏼' => 'żewġ nisa jżommu jdejhom: ton ċar tal-ġilda u ton medju-ċar tal-ġilda',
     '👩🏻‍🤝‍👩🏽' => 'żewġ nisa jżommu jdejhom: ton ċar tal-ġilda u ton medju tal-ġilda',
     '👩🏻‍🤝‍👩🏾' => 'żewġ nisa jżommu jdejhom: ton ċar tal-ġilda u ton medju-skur tal-ġilda',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'mara qed tiġri: ton medju tal-ġilda',
     '🏃🏾‍♀' => 'mara qed tiġri: ton medju-skur tal-ġilda',
     '🏃🏿‍♀' => 'mara qed tiġri: ton skur tal-ġilda',
+    '👯🏻‍♀' => 'nisa b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda',
+    '👯🏼‍♀' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda',
+    '👯🏽‍♀' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda',
+    '👯🏾‍♀' => 'nisa b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda',
+    '👯🏿‍♀' => 'nisa b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda',
+    '👯🏻‍♂' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda',
+    '👯🏼‍♂' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda',
+    '👯🏽‍♂' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda',
+    '👯🏾‍♂' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda',
+    '👯🏿‍♂' => 'rġiel b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda',
     '🧖🏻‍♂' => 'raġel f’kamra tal-fwar: ton ċar tal-ġilda',
     '🧖🏼‍♂' => 'raġel f’kamra tal-fwar: ton medju-ċar tal-ġilda',
     '🧖🏽‍♂' => 'raġel f’kamra tal-fwar: ton medju tal-ġilda',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'mara tagħmel gabrijoli: ton medju tal-ġilda',
     '🤸🏾‍♀' => 'mara tagħmel gabrijoli: ton medju-skur tal-ġilda',
     '🤸🏿‍♀' => 'mara tagħmel gabrijoli: ton skur tal-ġilda',
+    '🤼🏻‍♀' => 'nisa jagħmlu r-wrestling: ton ċar tal-ġilda',
+    '🤼🏼‍♀' => 'nisa jagħmlu r-wrestling: ton medju-ċar tal-ġilda',
+    '🤼🏽‍♀' => 'nisa jagħmlu r-wrestling: ton medju tal-ġilda',
+    '🤼🏾‍♀' => 'nisa jagħmlu r-wrestling: ton medju-skur tal-ġilda',
+    '🤼🏿‍♀' => 'nisa jagħmlu r-wrestling: ton skur tal-ġilda',
+    '🤼🏻‍♂' => 'irġiel jagħmlu r-wrestling: ton ċar tal-ġilda',
+    '🤼🏼‍♂' => 'irġiel jagħmlu r-wrestling: ton medju-ċar tal-ġilda',
+    '🤼🏽‍♂' => 'irġiel jagħmlu r-wrestling: ton medju tal-ġilda',
+    '🤼🏾‍♂' => 'irġiel jagħmlu r-wrestling: ton medju-skur tal-ġilda',
+    '🤼🏿‍♂' => 'irġiel jagħmlu r-wrestling: ton skur tal-ġilda',
     '🤽🏻‍♂' => 'raġel jilgħab il-waterpolo: ton ċar tal-ġilda',
     '🤽🏼‍♂' => 'raġel jilgħab il-waterpolo: ton medju-ċar tal-ġilda',
     '🤽🏽‍♂' => 'raġel jilgħab il-waterpolo: ton medju tal-ġilda',
@@ -1392,6 +1532,11 @@
     '🕴🏽' => 'raġel jillevita b’libsa ta’ negozju: ton medju tal-ġilda',
     '🕴🏾' => 'raġel jillevita b’libsa ta’ negozju: ton medju-skur tal-ġilda',
     '🕴🏿' => 'raġel jillevita b’libsa ta’ negozju: ton skur tal-ġilda',
+    '👯🏻' => 'persuni b’widnejn ta’ fenek jiddevertu: ton ċar tal-ġilda',
+    '👯🏼' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju-ċar tal-ġilda',
+    '👯🏽' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju tal-ġilda',
+    '👯🏾' => 'persuni b’widnejn ta’ fenek jiddevertu: ton medju-skur tal-ġilda',
+    '👯🏿' => 'persuni b’widnejn ta’ fenek jiddevertu: ton skur tal-ġilda',
     '🧖🏻' => 'persuna f’kamra tal-fwar: ton ċar tal-ġilda',
     '🧖🏼' => 'persuna f’kamra tal-fwar: ton medju-ċar tal-ġilda',
     '🧖🏽' => 'persuna f’kamra tal-fwar: ton medju tal-ġilda',
@@ -1457,6 +1602,11 @@
     '🤸🏽' => 'persuna tagħmel gabrijoli: ton medju tal-ġilda',
     '🤸🏾' => 'persuna tagħmel gabrijoli: ton medju-skur tal-ġilda',
     '🤸🏿' => 'persuna tagħmel gabrijoli: ton skur tal-ġilda',
+    '🤼🏻' => 'persuna jagħmlu r-wrestling: ton ċar tal-ġilda',
+    '🤼🏼' => 'persuna jagħmlu r-wrestling: ton medju-ċar tal-ġilda',
+    '🤼🏽' => 'persuna jagħmlu r-wrestling: ton medju tal-ġilda',
+    '🤼🏾' => 'persuna jagħmlu r-wrestling: ton medju-skur tal-ġilda',
+    '🤼🏿' => 'persuna jagħmlu r-wrestling: ton skur tal-ġilda',
     '🤽🏻' => 'persuna tilgħab il-waterpolo: ton ċar tal-ġilda',
     '🤽🏼' => 'persuna tilgħab il-waterpolo: ton medju-ċar tal-ġilda',
     '🤽🏽' => 'persuna tilgħab il-waterpolo: ton medju tal-ġilda',
@@ -1857,6 +2007,9 @@
     '🦈' => 'kelb il-baħar',
     '🐙' => 'qarnita',
     '🐚' => 'qoxra spirali',
+    '🦀' => 'granċ',
+    '🦐' => 'gamblu',
+    '🦑' => 'klamari',
     '🐌' => 'bebbuxu',
     '🦋' => 'farfett',
     '🐛' => 'insett',
@@ -1958,9 +2111,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'fortune cookie',
     '🥡' => 'kaxxa tat-takeout',
-    '🦀' => 'granċ',
-    '🦐' => 'gamblu',
-    '🦑' => 'klamari',
     '🍦' => 'ġelat artab',
     '🍧' => 'silġ imqaxxar',
     '🍨' => 'ġelat',
@@ -2312,9 +2462,9 @@
     '🎧' => 'headphone',
     '📻' => 'radju',
     '🎷' => 'sassofonu',
+    '🎺' => 'trumbetta',
     '🎸' => 'kitarra',
     '🎹' => 'tastiera mużikali',
-    '🎺' => 'trumbetta',
     '🎻' => 'vjolin',
     '🥁' => 'tanbur',
     '📱' => 'mowbajl',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-my.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-my.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-my.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-my.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'အနမ်း − အမျိုးသမီး - အမျိုးသမီး - အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
     '👩🏿‍❤‍💋‍👩🏾' => 'အနမ်း − အမျိုးသမီး - အမျိုးသမီး - အသားမည်းရောင်နှင့် အသားညိုရောင်',
     '👩🏿‍❤‍💋‍👩🏿' => 'အနမ်း − အမျိုးသမီး - အမျိုးသမီးနှင့် အသားမည်းရောင်',
+    '🧑🏻‍🫯‍🧑🏼' => 'နပန်းသမား − အသားဖြူရောင်နှင့် အသားနုရောင်',
+    '🧑🏻‍🫯‍🧑🏽' => 'နပန်းသမား − အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
+    '🧑🏻‍🫯‍🧑🏾' => 'နပန်းသမား − အသားဖြူရောင်နှင့် အသားညိုရောင်',
+    '🧑🏻‍🫯‍🧑🏿' => 'နပန်းသမား − အသားဖြူရောင်နှင့် အသားမည်းရောင်',
+    '🧑🏼‍🫯‍🧑🏻' => 'နပန်းသမား − အသားနုရောင်နှင့် အသားဖြူရောင်',
+    '🧑🏼‍🫯‍🧑🏽' => 'နပန်းသမား − အသားနုရောင်နှင့် အသားလတ်ရောင်',
+    '🧑🏼‍🫯‍🧑🏾' => 'နပန်းသမား − အသားနုရောင်နှင့် အသားညိုရောင်',
+    '🧑🏼‍🫯‍🧑🏿' => 'နပန်းသမား − အသားနုရောင်နှင့် အသားမည်းရောင်',
+    '🧑🏽‍🫯‍🧑🏻' => 'နပန်းသမား − အသားလတ်ရောင်နှင့် အသားဖြူရောင်',
+    '🧑🏽‍🫯‍🧑🏼' => 'နပန်းသမား − အသားလတ်ရောင်နှင့် အသားနုရောင်',
+    '🧑🏽‍🫯‍🧑🏾' => 'နပန်းသမား − အသားလတ်ရောင်နှင့် အသားညိုရောင်',
+    '🧑🏽‍🫯‍🧑🏿' => 'နပန်းသမား − အသားလတ်ရောင်နှင့် အသားမည်းရောင်',
+    '🧑🏾‍🫯‍🧑🏻' => 'နပန်းသမား − အသားညိုရောင်နှင့် အသားဖြူရောင်',
+    '🧑🏾‍🫯‍🧑🏼' => 'နပန်းသမား − အသားညိုရောင်နှင့် အသားနုရောင်',
+    '🧑🏾‍🫯‍🧑🏽' => 'နပန်းသမား − အသားညိုရောင်နှင့် အသားလတ်ရောင်',
+    '🧑🏾‍🫯‍🧑🏿' => 'နပန်းသမား − အသားညိုရောင်နှင့် အသားမည်းရောင်',
+    '🧑🏿‍🫯‍🧑🏻' => 'နပန်းသမား − အသားမည်းရောင်နှင့် အသားဖြူရောင်',
+    '🧑🏿‍🫯‍🧑🏼' => 'နပန်းသမား − အသားမည်းရောင်နှင့် အသားနုရောင်',
+    '🧑🏿‍🫯‍🧑🏽' => 'နပန်းသမား − အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
+    '🧑🏿‍🫯‍🧑🏾' => 'နပန်းသမား − အသားမည်းရောင်နှင့် အသားညိုရောင်',
     '🧑🏻‍❤‍🧑🏼' => 'နှလုံးသားနှင့် စုံတွဲ − လူ - လူ - အသားဖြူရောင်နှင့် အသားနုရောင်',
     '🧑🏻‍❤‍🧑🏽' => 'နှလုံးသားနှင့် စုံတွဲ − လူ - လူ - အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
     '🧑🏻‍❤‍🧑🏾' => 'နှလုံးသားနှင့် စုံတွဲ − လူ - လူ - အသားဖြူရောင်နှင့် အသားညိုရောင်',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'နှလုံးသားနှင့် စုံတွဲ − လူ - လူ - အသားမည်းရောင်နှင့် အသားနုရောင်',
     '🧑🏿‍❤‍🧑🏽' => 'နှလုံးသားနှင့် စုံတွဲ − လူ - လူ - အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
     '🧑🏿‍❤‍🧑🏾' => 'နှလုံးသားနှင့် စုံတွဲ − လူ - လူ - အသားမည်းရောင်နှင့် အသားညိုရောင်',
+    '🧑🏻‍🐰‍🧑🏼' => 'ပါတီပွဲလာသူများ − အသားဖြူရောင်နှင့် အသားနုရောင်',
+    '🧑🏻‍🐰‍🧑🏽' => 'ပါတီပွဲလာသူများ − အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
+    '🧑🏻‍🐰‍🧑🏾' => 'ပါတီပွဲလာသူများ − အသားဖြူရောင်နှင့် အသားညိုရောင်',
+    '🧑🏻‍🐰‍🧑🏿' => 'ပါတီပွဲလာသူများ − အသားဖြူရောင်နှင့် အသားမည်းရောင်',
+    '🧑🏼‍🐰‍🧑🏻' => 'ပါတီပွဲလာသူများ − အသားနုရောင်နှင့် အသားဖြူရောင်',
+    '🧑🏼‍🐰‍🧑🏽' => 'ပါတီပွဲလာသူများ − အသားနုရောင်နှင့် အသားလတ်ရောင်',
+    '🧑🏼‍🐰‍🧑🏾' => 'ပါတီပွဲလာသူများ − အသားနုရောင်နှင့် အသားညိုရောင်',
+    '🧑🏼‍🐰‍🧑🏿' => 'ပါတီပွဲလာသူများ − အသားနုရောင်နှင့် အသားမည်းရောင်',
+    '🧑🏽‍🐰‍🧑🏻' => 'ပါတီပွဲလာသူများ − အသားလတ်ရောင်နှင့် အသားဖြူရောင်',
+    '🧑🏽‍🐰‍🧑🏼' => 'ပါတီပွဲလာသူများ − အသားလတ်ရောင်နှင့် အသားနုရောင်',
+    '🧑🏽‍🐰‍🧑🏾' => 'ပါတီပွဲလာသူများ − အသားလတ်ရောင်နှင့် အသားညိုရောင်',
+    '🧑🏽‍🐰‍🧑🏿' => 'ပါတီပွဲလာသူများ − အသားလတ်ရောင်နှင့် အသားမည်းရောင်',
+    '🧑🏾‍🐰‍🧑🏻' => 'ပါတီပွဲလာသူများ − အသားညိုရောင်နှင့် အသားဖြူရောင်',
+    '🧑🏾‍🐰‍🧑🏼' => 'ပါတီပွဲလာသူများ − အသားညိုရောင်နှင့် အသားနုရောင်',
+    '🧑🏾‍🐰‍🧑🏽' => 'ပါတီပွဲလာသူများ − အသားညိုရောင်နှင့် အသားလတ်ရောင်',
+    '🧑🏾‍🐰‍🧑🏿' => 'ပါတီပွဲလာသူများ − အသားညိုရောင်နှင့် အသားမည်းရောင်',
+    '🧑🏿‍🐰‍🧑🏻' => 'ပါတီပွဲလာသူများ − အသားမည်းရောင်နှင့် အသားဖြူရောင်',
+    '🧑🏿‍🐰‍🧑🏼' => 'ပါတီပွဲလာသူများ − အသားမည်းရောင်နှင့် အသားနုရောင်',
+    '🧑🏿‍🐰‍🧑🏽' => 'ပါတီပွဲလာသူများ − အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
+    '🧑🏿‍🐰‍🧑🏾' => 'ပါတီပွဲလာသူများ − အသားမည်းရောင်နှင့် အသားညိုရောင်',
+    '👨🏻‍🫯‍👨🏼' => 'အမျိုးသား နပန်းပွဲ − အသားဖြူရောင်နှင့် အသားနုရောင်',
+    '👨🏻‍🫯‍👨🏽' => 'အမျိုးသား နပန်းပွဲ − အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
+    '👨🏻‍🫯‍👨🏾' => 'အမျိုးသား နပန်းပွဲ − အသားဖြူရောင်နှင့် အသားညိုရောင်',
+    '👨🏻‍🫯‍👨🏿' => 'အမျိုးသား နပန်းပွဲ − အသားဖြူရောင်နှင့် အသားမည်းရောင်',
+    '👨🏼‍🫯‍👨🏻' => 'အမျိုးသား နပန်းပွဲ − အသားနုရောင်နှင့် အသားဖြူရောင်',
+    '👨🏼‍🫯‍👨🏽' => 'အမျိုးသား နပန်းပွဲ − အသားနုရောင်နှင့် အသားလတ်ရောင်',
+    '👨🏼‍🫯‍👨🏾' => 'အမျိုးသား နပန်းပွဲ − အသားနုရောင်နှင့် အသားညိုရောင်',
+    '👨🏼‍🫯‍👨🏿' => 'အမျိုးသား နပန်းပွဲ − အသားနုရောင်နှင့် အသားမည်းရောင်',
+    '👨🏽‍🫯‍👨🏻' => 'အမျိုးသား နပန်းပွဲ − အသားလတ်ရောင်နှင့် အသားဖြူရောင်',
+    '👨🏽‍🫯‍👨🏼' => 'အမျိုးသား နပန်းပွဲ − အသားလတ်ရောင်နှင့် အသားနုရောင်',
+    '👨🏽‍🫯‍👨🏾' => 'အမျိုးသား နပန်းပွဲ − အသားလတ်ရောင်နှင့် အသားညိုရောင်',
+    '👨🏽‍🫯‍👨🏿' => 'အမျိုးသား နပန်းပွဲ − အသားလတ်ရောင်နှင့် အသားမည်းရောင်',
+    '👨🏾‍🫯‍👨🏻' => 'အမျိုးသား နပန်းပွဲ − အသားညိုရောင်နှင့် အသားဖြူရောင်',
+    '👨🏾‍🫯‍👨🏼' => 'အမျိုးသား နပန်းပွဲ − အသားညိုရောင်နှင့် အသားနုရောင်',
+    '👨🏾‍🫯‍👨🏽' => 'အမျိုးသား နပန်းပွဲ − အသားညိုရောင်နှင့် အသားလတ်ရောင်',
+    '👨🏾‍🫯‍👨🏿' => 'အမျိုးသား နပန်းပွဲ − အသားညိုရောင်နှင့် အသားမည်းရောင်',
+    '👨🏿‍🫯‍👨🏻' => 'အမျိုးသား နပန်းပွဲ − အသားမည်းရောင်နှင့် အသားဖြူရောင်',
+    '👨🏿‍🫯‍👨🏼' => 'အမျိုးသား နပန်းပွဲ − အသားမည်းရောင်နှင့် အသားနုရောင်',
+    '👨🏿‍🫯‍👨🏽' => 'အမျိုးသား နပန်းပွဲ − အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
+    '👨🏿‍🫯‍👨🏾' => 'အမျိုးသား နပန်းပွဲ − အသားမည်းရောင်နှင့် အသားညိုရောင်',
     '👨🏻‍❤‍👨🏻' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသား - အမျိုးသားနှင့် အသားဖြူရောင်',
     '👨🏻‍❤‍👨🏼' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသား - အမျိုးသား - အသားဖြူရောင်နှင့် အသားနုရောင်',
     '👨🏻‍❤‍👨🏽' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသား - အမျိုးသား - အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသား - အမျိုးသား - အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
     '👨🏿‍❤‍👨🏾' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသား - အမျိုးသား - အသားမည်းရောင်နှင့် အသားညိုရောင်',
     '👨🏿‍❤‍👨🏿' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသား - အမျိုးသားနှင့် အသားမည်းရောင်',
+    '👨🏻‍🐰‍👨🏼' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားဖြူရောင်နှင့် အသားနုရောင်',
+    '👨🏻‍🐰‍👨🏽' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
+    '👨🏻‍🐰‍👨🏾' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားဖြူရောင်နှင့် အသားညိုရောင်',
+    '👨🏻‍🐰‍👨🏿' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားဖြူရောင်နှင့် အသားမည်းရောင်',
+    '👨🏼‍🐰‍👨🏻' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားနုရောင်နှင့် အသားဖြူရောင်',
+    '👨🏼‍🐰‍👨🏽' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားနုရောင်နှင့် အသားလတ်ရောင်',
+    '👨🏼‍🐰‍👨🏾' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားနုရောင်နှင့် အသားညိုရောင်',
+    '👨🏼‍🐰‍👨🏿' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားနုရောင်နှင့် အသားမည်းရောင်',
+    '👨🏽‍🐰‍👨🏻' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားလတ်ရောင်နှင့် အသားဖြူရောင်',
+    '👨🏽‍🐰‍👨🏼' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားလတ်ရောင်နှင့် အသားနုရောင်',
+    '👨🏽‍🐰‍👨🏾' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားလတ်ရောင်နှင့် အသားညိုရောင်',
+    '👨🏽‍🐰‍👨🏿' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားလတ်ရောင်နှင့် အသားမည်းရောင်',
+    '👨🏾‍🐰‍👨🏻' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားညိုရောင်နှင့် အသားဖြူရောင်',
+    '👨🏾‍🐰‍👨🏼' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားညိုရောင်နှင့် အသားနုရောင်',
+    '👨🏾‍🐰‍👨🏽' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားညိုရောင်နှင့် အသားလတ်ရောင်',
+    '👨🏾‍🐰‍👨🏿' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားညိုရောင်နှင့် အသားမည်းရောင်',
+    '👨🏿‍🐰‍👨🏻' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားမည်းရောင်နှင့် အသားဖြူရောင်',
+    '👨🏿‍🐰‍👨🏼' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားမည်းရောင်နှင့် အသားနုရောင်',
+    '👨🏿‍🐰‍👨🏽' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
+    '👨🏿‍🐰‍👨🏾' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားမည်းရောင်နှင့် အသားညိုရောင်',
+    '👩🏻‍🫯‍👩🏼' => 'အမျိုးသမီး နပန်းပွဲ − အသားဖြူရောင်နှင့် အသားနုရောင်',
+    '👩🏻‍🫯‍👩🏽' => 'အမျိုးသမီး နပန်းပွဲ − အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
+    '👩🏻‍🫯‍👩🏾' => 'အမျိုးသမီး နပန်းပွဲ − အသားဖြူရောင်နှင့် အသားညိုရောင်',
+    '👩🏻‍🫯‍👩🏿' => 'အမျိုးသမီး နပန်းပွဲ − အသားဖြူရောင်နှင့် အသားမည်းရောင်',
+    '👩🏼‍🫯‍👩🏻' => 'အမျိုးသမီး နပန်းပွဲ − အသားနုရောင်နှင့် အသားဖြူရောင်',
+    '👩🏼‍🫯‍👩🏽' => 'အမျိုးသမီး နပန်းပွဲ − အသားနုရောင်နှင့် အသားလတ်ရောင်',
+    '👩🏼‍🫯‍👩🏾' => 'အမျိုးသမီး နပန်းပွဲ − အသားနုရောင်နှင့် အသားညိုရောင်',
+    '👩🏼‍🫯‍👩🏿' => 'အမျိုးသမီး နပန်းပွဲ − အသားနုရောင်နှင့် အသားမည်းရောင်',
+    '👩🏽‍🫯‍👩🏻' => 'အမျိုးသမီး နပန်းပွဲ − အသားလတ်ရောင်နှင့် အသားဖြူရောင်',
+    '👩🏽‍🫯‍👩🏼' => 'အမျိုးသမီး နပန်းပွဲ − အသားလတ်ရောင်နှင့် အသားနုရောင်',
+    '👩🏽‍🫯‍👩🏾' => 'အမျိုးသမီး နပန်းပွဲ − အသားလတ်ရောင်နှင့် အသားညိုရောင်',
+    '👩🏽‍🫯‍👩🏿' => 'အမျိုးသမီး နပန်းပွဲ − အသားလတ်ရောင်နှင့် အသားမည်းရောင်',
+    '👩🏾‍🫯‍👩🏻' => 'အမျိုးသမီး နပန်းပွဲ − အသားညိုရောင်နှင့် အသားဖြူရောင်',
+    '👩🏾‍🫯‍👩🏼' => 'အမျိုးသမီး နပန်းပွဲ − အသားညိုရောင်နှင့် အသားနုရောင်',
+    '👩🏾‍🫯‍👩🏽' => 'အမျိုးသမီး နပန်းပွဲ − အသားညိုရောင်နှင့် အသားလတ်ရောင်',
+    '👩🏾‍🫯‍👩🏿' => 'အမျိုးသမီး နပန်းပွဲ − အသားညိုရောင်နှင့် အသားမည်းရောင်',
+    '👩🏿‍🫯‍👩🏻' => 'အမျိုးသမီး နပန်းပွဲ − အသားမည်းရောင်နှင့် အသားဖြူရောင်',
+    '👩🏿‍🫯‍👩🏼' => 'အမျိုးသမီး နပန်းပွဲ − အသားမည်းရောင်နှင့် အသားနုရောင်',
+    '👩🏿‍🫯‍👩🏽' => 'အမျိုးသမီး နပန်းပွဲ − အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
+    '👩🏿‍🫯‍👩🏾' => 'အမျိုးသမီး နပန်းပွဲ − အသားမည်းရောင်နှင့် အသားညိုရောင်',
     '👩🏻‍❤‍👨🏻' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသမီး - အမျိုးသားနှင့် အသားဖြူရောင်',
     '👩🏻‍❤‍👨🏼' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသမီး - အမျိုးသား - အသားဖြူရောင်နှင့် အသားနုရောင်',
     '👩🏻‍❤‍👨🏽' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသမီး - အမျိုးသား - အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသမီး - အမျိုးသမီး - အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
     '👩🏿‍❤‍👩🏾' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသမီး - အမျိုးသမီး - အသားမည်းရောင်နှင့် အသားညိုရောင်',
     '👩🏿‍❤‍👩🏿' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသမီး - အမျိုးသမီးနှင့် အသားမည်းရောင်',
+    '👩🏻‍🐰‍👩🏼' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားဖြူရောင်နှင့် အသားနုရောင်',
+    '👩🏻‍🐰‍👩🏽' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
+    '👩🏻‍🐰‍👩🏾' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားဖြူရောင်နှင့် အသားညိုရောင်',
+    '👩🏻‍🐰‍👩🏿' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားဖြူရောင်နှင့် အသားမည်းရောင်',
+    '👩🏼‍🐰‍👩🏻' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားနုရောင်နှင့် အသားဖြူရောင်',
+    '👩🏼‍🐰‍👩🏽' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားနုရောင်နှင့် အသားလတ်ရောင်',
+    '👩🏼‍🐰‍👩🏾' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားနုရောင်နှင့် အသားညိုရောင်',
+    '👩🏼‍🐰‍👩🏿' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားနုရောင်နှင့် အသားမည်းရောင်',
+    '👩🏽‍🐰‍👩🏻' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားလတ်ရောင်နှင့် အသားဖြူရောင်',
+    '👩🏽‍🐰‍👩🏼' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားလတ်ရောင်နှင့် အသားနုရောင်',
+    '👩🏽‍🐰‍👩🏾' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားလတ်ရောင်နှင့် အသားညိုရောင်',
+    '👩🏽‍🐰‍👩🏿' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားလတ်ရောင်နှင့် အသားမည်းရောင်',
+    '👩🏾‍🐰‍👩🏻' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားညိုရောင်နှင့် အသားဖြူရောင်',
+    '👩🏾‍🐰‍👩🏼' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားညိုရောင်နှင့် အသားနုရောင်',
+    '👩🏾‍🐰‍👩🏽' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားညိုရောင်နှင့် အသားလတ်ရောင်',
+    '👩🏾‍🐰‍👩🏿' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားညိုရောင်နှင့် အသားမည်းရောင်',
+    '👩🏿‍🐰‍👩🏻' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားမည်းရောင်နှင့် အသားဖြူရောင်',
+    '👩🏿‍🐰‍👩🏼' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားမည်းရောင်နှင့် အသားနုရောင်',
+    '👩🏿‍🐰‍👩🏽' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
+    '👩🏿‍🐰‍👩🏾' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားမည်းရောင်နှင့် အသားညိုရောင်',
     '🧑🏻‍🤝‍🧑🏻' => 'လက်ချင်းချိတ်ထားသူများ − အသားဖြူရောင်',
     '🧑🏻‍🤝‍🧑🏼' => 'လက်ချင်းချိတ်ထားသူများ − အသားဖြူရောင်နှင့် အသားနုရောင်',
     '🧑🏻‍🤝‍🧑🏽' => 'လက်ချင်းချိတ်ထားသူများ − အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'အလံ − စကော့တလန်',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'အလံ − ဝလေ',
     '🧑‍🧑‍🧒‍🧒' => 'မိသားစု- လူကြီး၊ လူကြီး၊ ကလေး၊ ကလေး',
-    '🚶🏻‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🚶🏼‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🚶🏽‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🚶🏾‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🚶🏿‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🚶🏻‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🚶🏼‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🚶🏽‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🚶🏾‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🚶🏿‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🧎🏻‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🧎🏼‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🧎🏽‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🧎🏾‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🧎🏿‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🧎🏻‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🧎🏼‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🧎🏽‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🧎🏾‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🧎🏿‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🧑🏻‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ ညာဘက် မျက်နှာမူ',
-    '🧑🏼‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ ညာဘက် မျက်နှာမူ',
-    '🧑🏽‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ ညာဘက် မျက်နှာမူ',
-    '🧑🏾‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ ညာဘက် မျက်နှာမူ',
-    '🧑🏿‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ ညာဘက် မျက်နှာမူ',
-    '👨🏻‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ ညာဘက် မျက်နှာမူ',
-    '👨🏼‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ ညာဘက် မျက်နှာမူ',
-    '👨🏽‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ ညာဘက် မျက်နှာမူ',
-    '👨🏾‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ ညာဘက် မျက်နှာမူ',
-    '👨🏿‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ ညာဘက် မျက်နှာမူ',
-    '👩🏻‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏼‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏽‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏾‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏿‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🧑🏻‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ ညာဘက် မျက်နှာမူ',
-    '🧑🏼‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ ညာဘက် မျက်နှာမူ',
-    '🧑🏽‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ ညာဘက် မျက်နှာမူ',
-    '🧑🏾‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ ညာဘက် မျက်နှာမူ',
-    '🧑🏿‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ ညာဘက် မျက်နှာမူ',
-    '👨🏻‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👨🏼‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👨🏽‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👨🏾‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👨🏿‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👩🏻‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏼‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏽‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏾‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏿‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🧑🏻‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ ညာဘက် မျက်နှာမူ',
-    '🧑🏼‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ ညာဘက် မျက်နှာမူ',
-    '🧑🏽‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ ညာဘက် မျက်နှာမူ',
-    '🧑🏾‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ ညာဘက် မျက်နှာမူ',
-    '🧑🏿‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ ညာဘက် မျက်နှာမူ',
-    '👨🏻‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👨🏼‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👨🏽‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👨🏾‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👨🏿‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👩🏻‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏼‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏽‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏾‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '👩🏿‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🏃🏻‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🏃🏼‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🏃🏽‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🏃🏾‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🏃🏿‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🏃🏻‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🏃🏼‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🏃🏽‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🏃🏾‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🏃🏿‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
+    '🚶🏻‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏼‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏽‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏾‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏿‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏻‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏼‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏽‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏾‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏿‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏻‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏼‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏽‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏾‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏿‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏻‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏼‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏽‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏾‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏿‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏻‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏼‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏽‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏾‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏿‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏻‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏼‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏽‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏾‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏿‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏻‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏼‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏽‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏾‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏿‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏻‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏼‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏽‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏾‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏿‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏻‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏼‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏽‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏾‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏿‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏻‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏼‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏽‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏾‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏿‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏻‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏼‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏽‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏾‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧑🏿‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏻‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏼‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏽‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏾‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👨🏿‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏻‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏼‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏽‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏾‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👩🏿‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏻‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏼‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏽‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏾‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏿‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏻‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏼‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏽‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏾‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏿‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
     '🫱🏻‍🫲🏼' => 'လက်ဆွဲနှုတ်ဆက် − အသားဖြူရောင်နှင့် အသားနုရောင်',
     '🫱🏻‍🫲🏽' => 'လက်ဆွဲနှုတ်ဆက် − အသားဖြူရောင်နှင့် အသားလတ်ရောင်',
     '🫱🏻‍🫲🏾' => 'လက်ဆွဲနှုတ်ဆက် − အသားဖြူရောင်နှင့် အသားညိုရောင်',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'လက်ဆွဲနှုတ်ဆက် − အသားမည်းရောင်နှင့် အသားနုရောင်',
     '🫱🏿‍🫲🏽' => 'လက်ဆွဲနှုတ်ဆက် − အသားမည်းရောင်နှင့် အသားလတ်ရောင်',
     '🫱🏿‍🫲🏾' => 'လက်ဆွဲနှုတ်ဆက် − အသားမည်းရောင်နှင့် အသားညိုရောင်',
-    '🚶‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🚶‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🧎‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🧎‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '🧑‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ ညာဘက် မျက်နှာမူ',
-    '👨‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ ညာဘက် မျက်နှာမူ',
-    '👩‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🧑‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ ညာဘက် မျက်နှာမူ',
-    '👨‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👩‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🧑‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ ညာဘက် မျက်နှာမူ',
-    '👨‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား ညာဘက် မျက်နှာမူ',
-    '👩‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🏃‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး ညာဘက် မျက်နှာမူ',
-    '🏃‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား ညာဘက် မျက်နှာမူ',
+    '🚶‍♀‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး − ညာဘက် မျက်နှာမူ',
+    '🚶‍♂‍➡' => 'လမ်းလျှောက်နေသူ အမျိုးသား − ညာဘက် မျက်နှာမူ',
+    '🧎‍♀‍➡' => 'ဒူးထောက်နေသူ အမျိုးသမီး − ညာဘက် မျက်နှာမူ',
+    '🧎‍♂‍➡' => 'ဒူးထောက်နေသူ အမျိုးသား − ညာဘက် မျက်နှာမူ',
+    '🧑‍🦯‍➡' => 'တုတ်ကောက်နှင့်လူ − ညာဘက် မျက်နှာမူ',
+    '👨‍🦯‍➡' => 'တုတ်ကောက်နှင့် လမ်းလျှောက်နေသူ − ညာဘက် မျက်နှာမူ',
+    '👩‍🦯‍➡' => 'တုတ်ကောက်နှင့် အမျိုးသမီး − ညာဘက် မျက်နှာမူ',
+    '🧑‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီးနေသူ − ညာဘက် မျက်နှာမူ',
+    '👨‍🦼‍➡' => 'စက်တပ်လူနာထိုင်ခုံစီး အမျိုးသား − ညာဘက် မျက်နှာမူ',
+    '👩‍🦼‍➡' => 'စက်တပ်လူနာတင်ကုလားထိုင်စီး အမျိုးသမီး − ညာဘက် မျက်နှာမူ',
+    '🧑‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် လူ − ညာဘက် မျက်နှာမူ',
+    '👨‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသား − ညာဘက် မျက်နှာမူ',
+    '👩‍🦽‍➡' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး − ညာဘက် မျက်နှာမူ',
+    '🏃‍♀‍➡' => 'ပြေးနေသူ အမျိုးသမီး − ညာဘက် မျက်နှာမူ',
+    '🏃‍♂‍➡' => 'ပြေးနေသူ အမျိုးသား − ညာဘက် မျက်နှာမူ',
     '👩‍❤‍👨' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသမီးနှင့် အမျိုးသား',
     '👨‍❤‍👨' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသားနှင့် အမျိုးသား',
     '👩‍❤‍👩' => 'နှလုံးသားနှင့် စုံတွဲ − အမျိုးသမီးနှင့် အမျိုးသမီး',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'လူ − အသားလတ်ရောင်နှင့် ထိပ်ပြောင်',
     '🧑🏾‍🦲' => 'လူ − အသားညိုရောင်နှင့် ထိပ်ပြောင်',
     '🧑🏿‍🦲' => 'လူ − အသားမည်းရောင်နှင့် ထိပ်ပြောင်',
+    '🧑🏻‍🩰' => 'ဘဲလေးကချေသည် − အသားဖြူရောင်',
+    '🧑🏼‍🩰' => 'ဘဲလေးကချေသည် − အသားနုရောင်',
+    '🧑🏽‍🩰' => 'ဘဲလေးကချေသည် − အသားလတ်ရောင်',
+    '🧑🏾‍🩰' => 'ဘဲလေးကချေသည် − အသားညိုရောင်',
+    '🧑🏿‍🩰' => 'ဘဲလေးကချေသည် − အသားမည်းရောင်',
     '🧔🏻‍♂' => 'အမျိုးသား - မုတ်ဆိတ် − အသားဖြူရောင်',
     '🧔🏼‍♂' => 'အမျိုးသား - မုတ်ဆိတ် − အသားနုရောင်',
     '🧔🏽‍♂' => 'အမျိုးသား - မုတ်ဆိတ် − အသားလတ်ရောင်',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး − အသားလတ်ရောင်',
     '🚶🏾‍♀' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး − အသားညိုရောင်',
     '🚶🏿‍♀' => 'လမ်းလျှောက်နေသူ အမျိုးသမီး − အသားမည်းရောင်',
-    '🚶🏻‍➡' => 'ခြေကျင် လျှောက်သူ ညာဘက် မျက်နှာမူ',
-    '🚶🏼‍➡' => 'ခြေကျင် လျှောက်သူ ညာဘက် မျက်နှာမူ',
-    '🚶🏽‍➡' => 'ခြေကျင် လျှောက်သူ ညာဘက် မျက်နှာမူ',
-    '🚶🏾‍➡' => 'ခြေကျင် လျှောက်သူ ညာဘက် မျက်နှာမူ',
-    '🚶🏿‍➡' => 'ခြေကျင် လျှောက်သူ ညာဘက် မျက်နှာမူ',
+    '🚶🏻‍➡' => 'ခြေကျင် လျှောက်သူ − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏼‍➡' => 'ခြေကျင် လျှောက်သူ − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏽‍➡' => 'ခြေကျင် လျှောက်သူ − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏾‍➡' => 'ခြေကျင် လျှောက်သူ − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🚶🏿‍➡' => 'ခြေကျင် လျှောက်သူ − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
     '🧍🏻‍♂' => 'ရပ်နေသူ အမျိုးသား − အသားဖြူရောင်',
     '🧍🏼‍♂' => 'ရပ်နေသူ အမျိုးသား − အသားနုရောင်',
     '🧍🏽‍♂' => 'ရပ်နေသူ အမျိုးသား − အသားလတ်ရောင်',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'ဒူးထောက်နေသူ အမျိုးသမီး − အသားလတ်ရောင်',
     '🧎🏾‍♀' => 'ဒူးထောက်နေသူ အမျိုးသမီး − အသားညိုရောင်',
     '🧎🏿‍♀' => 'ဒူးထောက်နေသူ အမျိုးသမီး − အသားမည်းရောင်',
-    '🧎🏻‍➡' => 'ဒူးထောက်ထားသူ ညာဘက် မျက်နှာမူ',
-    '🧎🏼‍➡' => 'ဒူးထောက်ထားသူ ညာဘက် မျက်နှာမူ',
-    '🧎🏽‍➡' => 'ဒူးထောက်ထားသူ ညာဘက် မျက်နှာမူ',
-    '🧎🏾‍➡' => 'ဒူးထောက်ထားသူ ညာဘက် မျက်နှာမူ',
-    '🧎🏿‍➡' => 'ဒူးထောက်ထားသူ ညာဘက် မျက်နှာမူ',
+    '🧎🏻‍➡' => 'ဒူးထောက်ထားသူ − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏼‍➡' => 'ဒူးထောက်ထားသူ − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏽‍➡' => 'ဒူးထောက်ထားသူ − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏾‍➡' => 'ဒူးထောက်ထားသူ − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🧎🏿‍➡' => 'ဒူးထောက်ထားသူ − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
     '🧑🏻‍🦯' => 'တုတ်ကောက်နှင့်လူ − အသားဖြူရောင်',
     '🧑🏼‍🦯' => 'တုတ်ကောက်နှင့်လူ − အသားနုရောင်',
     '🧑🏽‍🦯' => 'တုတ်ကောက်နှင့်လူ − အသားလတ်ရောင်',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ပြေးနေသူ အမျိုးသမီး − အသားလတ်ရောင်',
     '🏃🏾‍♀' => 'ပြေးနေသူ အမျိုးသမီး − အသားညိုရောင်',
     '🏃🏿‍♀' => 'ပြေးနေသူ အမျိုးသမီး − အသားမည်းရောင်',
-    '🏃🏻‍➡' => 'ပြေးသူ ညာဘက် မျက်နှာမူ',
-    '🏃🏼‍➡' => 'ပြေးသူ ညာဘက် မျက်နှာမူ',
-    '🏃🏽‍➡' => 'ပြေးသူ ညာဘက် မျက်နှာမူ',
-    '🏃🏾‍➡' => 'ပြေးသူ ညာဘက် မျက်နှာမူ',
-    '🏃🏿‍➡' => 'ပြေးသူ ညာဘက် မျက်နှာမူ',
+    '🏃🏻‍➡' => 'ပြေးသူ − အသားဖြူရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏼‍➡' => 'ပြေးသူ − အသားနုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏽‍➡' => 'ပြေးသူ − အသားလတ်ရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏾‍➡' => 'ပြေးသူ − အသားညိုရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '🏃🏿‍➡' => 'ပြေးသူ − အသားမည်းရောင်နှင့် ညာဘက် မျက်နှာမူ',
+    '👯🏻‍♀' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားဖြူရောင်',
+    '👯🏼‍♀' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားနုရောင်',
+    '👯🏽‍♀' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားလတ်ရောင်',
+    '👯🏾‍♀' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားညိုရောင်',
+    '👯🏿‍♀' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ − အသားမည်းရောင်',
+    '👯🏻‍♂' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားဖြူရောင်',
+    '👯🏼‍♂' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားနုရောင်',
+    '👯🏽‍♂' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားလတ်ရောင်',
+    '👯🏾‍♂' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားညိုရောင်',
+    '👯🏿‍♂' => 'ယုန်နားရွက်တပ် အမျိုးသားများ − အသားမည်းရောင်',
     '🧖🏻‍♂' => 'ချွေးထုတ်ခန်းတွင်းရှိ အမျိုးသား − အသားဖြူရောင်',
     '🧖🏼‍♂' => 'ချွေးထုတ်ခန်းတွင်းရှိ အမျိုးသား − အသားနုရောင်',
     '🧖🏽‍♂' => 'ချွေးထုတ်ခန်းတွင်းရှိ အမျိုးသား − အသားလတ်ရောင်',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'ကျွမ်းဘားထိုးနေသည့် အမျိုးသမီး − အသားလတ်ရောင်',
     '🤸🏾‍♀' => 'ကျွမ်းဘားထိုးနေသည့် အမျိုးသမီး − အသားညိုရောင်',
     '🤸🏿‍♀' => 'ကျွမ်းဘားထိုးနေသည့် အမျိုးသမီး − အသားမည်းရောင်',
+    '🤼🏻‍♀' => 'အမျိုးသမီး နပန်းပွဲ − အသားဖြူရောင်',
+    '🤼🏼‍♀' => 'အမျိုးသမီး နပန်းပွဲ − အသားနုရောင်',
+    '🤼🏽‍♀' => 'အမျိုးသမီး နပန်းပွဲ − အသားလတ်ရောင်',
+    '🤼🏾‍♀' => 'အမျိုးသမီး နပန်းပွဲ − အသားညိုရောင်',
+    '🤼🏿‍♀' => 'အမျိုးသမီး နပန်းပွဲ − အသားမည်းရောင်',
+    '🤼🏻‍♂' => 'အမျိုးသား နပန်းပွဲ − အသားဖြူရောင်',
+    '🤼🏼‍♂' => 'အမျိုးသား နပန်းပွဲ − အသားနုရောင်',
+    '🤼🏽‍♂' => 'အမျိုးသား နပန်းပွဲ − အသားလတ်ရောင်',
+    '🤼🏾‍♂' => 'အမျိုးသား နပန်းပွဲ − အသားညိုရောင်',
+    '🤼🏿‍♂' => 'အမျိုးသား နပန်းပွဲ − အသားမည်းရောင်',
     '🤽🏻‍♂' => 'ဝါတာပိုလိုကစားနေသည့် အမျိုးသား − အသားဖြူရောင်',
     '🤽🏼‍♂' => 'ဝါတာပိုလိုကစားနေသည့် အမျိုးသား − အသားနုရောင်',
     '🤽🏽‍♂' => 'ဝါတာပိုလိုကစားနေသည့် အမျိုးသား − အသားလတ်ရောင်',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'အမျိုးသမီး − ဆံပင်ကောက်',
     '👩‍🦳' => 'အမျိုးသမီး − ဆံပင်ဖြူ',
     '👩‍🦲' => 'အမျိုးသမီး − ထိပ်ပြောင်',
-    '🚶‍➡' => 'ခြေကျင် လျှောက်သူ ညာဘက် မျက်နှာမူ',
-    '🧎‍➡' => 'ဒူးထောက်ထားသူ ညာဘက် မျက်နှာမူ',
-    '🏃‍➡' => 'ပြေးသူ ညာဘက် မျက်နှာမူ',
+    '🚶‍➡' => 'ခြေကျင် လျှောက်သူ − ညာဘက် မျက်နှာမူ',
+    '🧎‍➡' => 'ဒူးထောက်ထားသူ − ညာဘက် မျက်နှာမူ',
+    '🏃‍➡' => 'ပြေးသူ − ညာဘက် မျက်နှာမူ',
     '👨‍👦' => 'မိသားစု − အမျိုးသားနှင့် ယောက်ျားကလေး',
     '👨‍👧' => 'မိသားစု − အမျိုးသားနှင့် မိန်းကလေး',
     '👩‍👦' => 'မိသားစု − အမျိုးသမီးနှင့် ယောက်ျားကလေး',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'လူနာတင်ကုလားထိုင်နှင့် အမျိုးသမီး',
     '🏃‍♂' => 'ပြေးနေသူ အမျိုးသား',
     '🏃‍♀' => 'ပြေးနေသူ အမျိုးသမီး',
+    '🧑‍🩰' => 'ဘဲလေးကချေသည်',
     '👯‍♂' => 'ယုန်နားရွက်တပ် အမျိုးသားများ',
     '👯‍♀' => 'ပျော်ပွဲရွှင်ပွဲလုပ်နေသူ အမျိုးသမီးများ',
     '🧖‍♂' => 'ချွေးထုတ်ခန်းတွင်းရှိ အမျိုးသား',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'ဈာန်ပျံနေသော ရုံးဝတ်စုံနှင့်သူ − အသားလတ်ရောင်',
     '🕴🏾' => 'ဈာန်ပျံနေသော ရုံးဝတ်စုံနှင့်သူ − အသားညိုရောင်',
     '🕴🏿' => 'ဈာန်ပျံနေသော ရုံးဝတ်စုံနှင့်သူ − အသားမည်းရောင်',
+    '👯🏻' => 'ပါတီပွဲလာသူများ − အသားဖြူရောင်',
+    '👯🏼' => 'ပါတီပွဲလာသူများ − အသားနုရောင်',
+    '👯🏽' => 'ပါတီပွဲလာသူများ − အသားလတ်ရောင်',
+    '👯🏾' => 'ပါတီပွဲလာသူများ − အသားညိုရောင်',
+    '👯🏿' => 'ပါတီပွဲလာသူများ − အသားမည်းရောင်',
     '🧖🏻' => 'ချွေးထုတ်ခန်းတွင်းရှိ လူ − အသားဖြူရောင်',
     '🧖🏼' => 'ချွေးထုတ်ခန်းတွင်းရှိ လူ − အသားနုရောင်',
     '🧖🏽' => 'ချွေးထုတ်ခန်းတွင်းရှိ လူ − အသားလတ်ရောင်',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ဘေးတိုက်ကျွမ်းထိုးခြင်း − အသားလတ်ရောင်',
     '🤸🏾' => 'ဘေးတိုက်ကျွမ်းထိုးခြင်း − အသားညိုရောင်',
     '🤸🏿' => 'ဘေးတိုက်ကျွမ်းထိုးခြင်း − အသားမည်းရောင်',
+    '🤼🏻' => 'နပန်းသမား − အသားဖြူရောင်',
+    '🤼🏼' => 'နပန်းသမား − အသားနုရောင်',
+    '🤼🏽' => 'နပန်းသမား − အသားလတ်ရောင်',
+    '🤼🏾' => 'နပန်းသမား − အသားညိုရောင်',
+    '🤼🏿' => 'နပန်းသမား − အသားမည်းရောင်',
     '🤽🏻' => 'ဝါတာပိုလို − အသားဖြူရောင်',
     '🤽🏼' => 'ဝါတာပိုလို − အသားနုရောင်',
     '🤽🏽' => 'ဝါတာပိုလို − အသားလတ်ရောင်',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'အလံ − တရုတ်',
     '🇨🇴' => 'အလံ − ကိုလံဘီယာ',
     '🇨🇵' => 'အလံ − ကလစ်ပါတန်ကျွန်း',
+    '🇨🇶' => 'အလံ − ဆာ့က်',
     '🇨🇷' => 'အလံ − ကို့စ်တာရီကာ',
     '🇨🇺' => 'အလံ − ကျူးဘား',
     '🇨🇻' => 'အလံ − ကိတ်ဗာဒီ',
@@ -2390,13 +2547,6 @@
     '🏽' => 'အသားလတ်ရောင်',
     '🏾' => 'အသားညိုရောင်',
     '🏿' => 'အသားမည်းရောင်',
-    '🪉' => 'စောင်း',
-    '🪏' => 'ဂေါ်ပြား',
-    '🪾' => 'ရွက်မဲ့သစ်ပင်',
-    '🫆' => 'လက်ဗွေ',
-    '🫜' => 'မုန်လာဥနီ',
-    '🫟' => 'ရေကွက်',
-    '🫩' => 'အောက်မျက်ခွံ မို့နေသော မျက်နှာ',
     '😀' => 'ပြုံးဖြဲဖြဲ မျက်နှာ',
     '😃' => 'မျက်လုံးပြူးဖြင့် ပြုံးဖြဲဖြဲ မျက်နှာ',
     '😄' => 'အပြုံးမျက်လုံးများဖြင့် ပြုံးဖြဲဖြဲ မျက်နှာ',
@@ -2450,6 +2600,7 @@
     '😪' => 'အိပ်ငိုက်သည့်မျက်နှာ',
     '🤤' => 'သွားရည်ကျနေသည့်ရုပ်',
     '😴' => 'အိပ်နေသည့်မျက်နှာ',
+    '🫩' => 'အောက်မျက်ခွံ မို့နေသော မျက်နှာ',
     '😷' => 'ကျန်းမာရေး မျက်နှာဖုံးနှင့် မျက်နှာ',
     '🤒' => 'သာမိုမီတာနှင့် မျက်နှာ',
     '🤕' => 'ပတ်တီးနှင့် မျက်နှာ',
@@ -2476,6 +2627,7 @@
     '😯' => 'အံ့ဩသည့်မျက်နှာ',
     '😲' => 'အံ့အားသင့်နေသော မျက်နှာ',
     '😳' => 'အားမာန်ပြည့်နေသော မျက်နှာ',
+    '🫪' => 'ရုပ်ပျက်ဆင်းပျက် မျက်နှာ',
     '🥺' => 'တောင်းပန်သော မျက်နှာ',
     '🥹' => 'မျက်ရည်ထိန်းထားသည့် မျက်နှာ',
     '😦' => 'မျက်မှောင်ကြုတ် ပါးစပ်ဟထားသည့် မျက်နှာ',
@@ -2547,6 +2699,7 @@
     '💋' => 'အနမ်း တံဆိပ်',
     '💯' => 'အမှတ် တစ်ရာ',
     '💢' => 'ဒေါသ',
+    '🫯' => 'ရုန်းရင်းဆန်ခတ် ဖုန်လုံး',
     '💥' => 'တိုက်မိခြင်း',
     '💫' => 'မူးဝေခြင်း',
     '💦' => 'ချွေးစက်များ',
@@ -2670,6 +2823,7 @@
     '🧞' => 'မီးခွက်စောင့်ဘီလူး',
     '🧟' => 'ဖုတ်ကောင်',
     '🧌' => 'ဧရာမတစ္ဆေ',
+    '🫈' => 'အမွေးအမျှင်ထူ သတ္တဝါ',
     '💆' => 'မျက်နှာကို နှိပ်နယ်ပေးခြင်း',
     '💇' => 'ဆံပင်ညှပ်ခြင်း',
     '🚶' => 'ခြေကျင် လျှောက်သူ',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ဖက်နေသည့်ပုံ',
     '👪' => 'မိသားစု',
     '👣' => 'ခြေရာများ',
+    '🫆' => 'လက်ဗွေ',
     '🦰' => 'ဆံပင်နီ',
     '🦱' => 'ဆံပင်ကောက်',
     '🦳' => 'ဆံပင်ဖြူ',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ရေမှုတ်ထုတ်နေသည့် ဝေလငါး',
     '🐋' => 'ဝလေငါး',
     '🐬' => 'လင်းပိုင်',
+    '🫍' => 'အမဲလိုက်ဝေလငါး',
     '🦭' => 'ပင်လယ်ဖျံ',
     '🐟' => 'ငါး',
     '🐠' => 'အပူပိုင်း ငါး',
@@ -2821,6 +2977,11 @@
     '🐚' => 'ခရုခွံ',
     '🪸' => 'သန္တာကျောက်',
     '🪼' => 'ရေခူ',
+    '🦀' => 'ကဏန်း',
+    '🦞' => 'ကျောက်ပုစွန်',
+    '🦐' => 'ပုစွန်',
+    '🦑' => 'ပြည်ကြီးငါး',
+    '🦪' => 'ကမာ',
     '🐌' => 'ခရု',
     '🦋' => 'လိပ်ပြာ',
     '🐛' => 'ပိုးကောင်ကလေး',
@@ -2865,6 +3026,7 @@
     '🪹' => 'အသိုက်အခွံ',
     '🪺' => 'ဥရှိသော အသိုက်',
     '🍄' => 'မှို',
+    '🪾' => 'ရွက်မဲ့သစ်ပင်',
     '🍇' => 'စပျစ်သီး',
     '🍈' => 'သခွားမွှေး',
     '🍉' => 'ဖရဲသီး',
@@ -2901,6 +3063,7 @@
     '🌰' => 'သစ်အယ်သီး',
     '🫚' => 'ဂျင်း',
     '🫛' => 'ပဲစေ့',
+    '🫜' => 'မုန်လာဥနီ',
     '🍞' => 'ပေါင်မုန့်',
     '🥐' => 'လခြမ်းကွေးပေါင်မုန့်',
     '🥖' => 'ပြင်သစ်ပေါင်မုန့်',
@@ -2952,11 +3115,6 @@
     '🥟' => 'အစာသွတ်မုန့်',
     '🥠' => 'တရုတ်မုန့်',
     '🥡' => 'ထုပ်ယူသွားနိုင်သည့် ဘူး',
-    '🦀' => 'ကဏန်း',
-    '🦞' => 'ကျောက်ပုစွန်',
-    '🦐' => 'ပုစွန်',
-    '🦑' => 'ပြည်ကြီးငါး',
-    '🦪' => 'ကမာ',
     '🍦' => 'ရေခဲမုန့် အပျော့',
     '🍧' => 'ရေခဲခြစ်မုန့်',
     '🍨' => 'ရေခဲမုန့်',
@@ -3007,6 +3165,7 @@
     '🧭' => 'သံလိုက်အိမ်မြှောင်',
     '🏔' => 'ဆီးနှင်းဖုံးနေသည့် တောင်',
     '⛰' => 'တောင်',
+    '🛘' => 'တောင်ပြိုခြင်း',
     '🌋' => 'မီးတောင်',
     '🗻' => 'ဖူဂျီတောင်',
     '🏕' => 'စခန်းချနေခြင်း',
@@ -3367,16 +3526,18 @@
     '🎧' => 'နားကြပ်',
     '📻' => 'ရေဒီယို',
     '🎷' => 'ဆက်ဆိုဖုန်း',
+    '🎺' => 'ခရာ',
+    '🪊' => 'ကြေးခရာ',
     '🪗' => 'အကော်ဒီယံ',
     '🎸' => 'ဂစ်တာ',
     '🎹' => 'ဂီတ ကီးဘုတ်',
-    '🎺' => 'ခရာ',
     '🎻' => 'တယော',
     '🪕' => 'ဘင်ဂျို',
     '🥁' => 'ဗုံ',
     '🪘' => 'ဗုံရှည်',
     '🪇' => 'မာရကာစ်',
     '🪈' => 'ပလွေ',
+    '🪉' => 'စောင်း',
     '📱' => 'မိုဘိုင်း ဖုန်း',
     '📲' => 'မြားနှင့် မိုဘိုင်း ဖုန်း',
     '☎' => 'တယ်လီဖုန်း',
@@ -3430,8 +3591,9 @@
     '📑' => 'စာညှပ် တဘ်များ',
     '🔖' => 'စာညှပ်',
     '🏷' => 'တံဆိပ်',
-    '💰' => 'ငွေအိတ်',
     '🪙' => 'အကြွေစေ့',
+    '💰' => 'ငွေအိတ်',
+    '🪎' => 'ရတနာသတျတော',
     '💴' => 'ယန်း ငွေစက္ကူ',
     '💵' => 'ဒေါ်လာ ငွေစက္ကူ',
     '💶' => 'ယူရို ငှစေက်ကူ',
@@ -3468,7 +3630,7 @@
     '📆' => 'ရွက်ဆုတ် ပြက္ခဒိန်',
     '🗒' => 'လှည့်နိုင်သည့် မှတ်စုစာအုပ်',
     '🗓' => 'လှည့်နိုင်သည့် ပြက္ခဒိန်',
-    '📇' => 'ကဒ် အညွှန်း',
+    '📇' => 'ကတ် အညွှန်း',
     '📈' => 'မြင့်တက်နေပုံပြ ဇယား',
     '📉' => 'နိမ့်ဆင်းနေပုံပြ ဇယား',
     '📊' => 'ဘားကွက်ပြ ဇယား',
@@ -3480,7 +3642,7 @@
     '📏' => 'ပေတံ',
     '📐' => 'ထောင့်မှန် ပေတံ',
     '✂' => 'ကတ်ကြေး',
-    '🗃' => 'ကဒ်ဖိုင် သေတ္တာ',
+    '🗃' => 'ကတ်ဖိုင် သေတ္တာ',
     '🗄' => 'ဖိုင် အံဆွဲ',
     '🗑' => 'အမှိုက်ခြင်း',
     '🔒' => 'ပိတ်နေသော သော့ခလောက်',
@@ -3514,6 +3676,7 @@
     '🧰' => 'တူးလ်ဘောက်က်စ်',
     '🧲' => 'သံလိုက်',
     '🪜' => 'လှေကားရှင်',
+    '🪏' => 'ဂေါ်ပြား',
     '⚗' => 'အငွေ့ပြန်ဘူး',
     '🧪' => 'ဖန်ပြွန်',
     '🧫' => 'ဓာတ်ခွဲခန်းသုံး ဖန်ပြားခွက်',
@@ -3697,6 +3860,7 @@
     '✴' => 'ရှစ်ထောင့် ကြယ်',
     '❇' => 'အရောင်လက်နေခြင်း',
     '™' => 'ကုန် အမှတ်တံဆိပ်',
+    '🫟' => 'ရေကွက်',
     '🔠' => 'လက်တင် စာလုံးကြီး ထည့်ရန်',
     '🔡' => 'လက်တင် စာလုံးသေး ထည့်ရန်',
     '🔢' => 'ဂဏန်းများ ထည့်ရန်',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ne.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ne.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ne.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ne.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'चुम्बन: छोरीमान्छे,छोरीमान्छे, छालाको प्रकार-६,छालाको प्रकार-४',
     '👩🏿‍❤‍💋‍👩🏾' => 'चुम्बन: छोरीमान्छे,छोरीमान्छे, छालाको प्रकार-६,छालाको प्रकार-५',
     '👩🏿‍❤‍💋‍👩🏿' => 'चुम्बन: छोरीमान्छे,छोरीमान्छे,छालाको प्रकार-६',
+    '🧑🏻‍🫯‍🧑🏼' => 'कुस्तिवाज: छालाको प्रकार-१-२ छालाको प्रकार-३',
+    '🧑🏻‍🫯‍🧑🏽' => 'कुस्तिवाज: छालाको प्रकार-१-२ छालाको प्रकार-४',
+    '🧑🏻‍🫯‍🧑🏾' => 'कुस्तिवाज: छालाको प्रकार-१-२ छालाको प्रकार-५',
+    '🧑🏻‍🫯‍🧑🏿' => 'कुस्तिवाज: छालाको प्रकार-१-२ छालाको प्रकार-६',
+    '🧑🏼‍🫯‍🧑🏻' => 'कुस्तिवाज: छालाको प्रकार-३ छालाको प्रकार-१-२',
+    '🧑🏼‍🫯‍🧑🏽' => 'कुस्तिवाज: छालाको प्रकार-३ छालाको प्रकार-४',
+    '🧑🏼‍🫯‍🧑🏾' => 'कुस्तिवाज: छालाको प्रकार-३ छालाको प्रकार-५',
+    '🧑🏼‍🫯‍🧑🏿' => 'कुस्तिवाज: छालाको प्रकार-३ छालाको प्रकार-६',
+    '🧑🏽‍🫯‍🧑🏻' => 'कुस्तिवाज: छालाको प्रकार-४ छालाको प्रकार-१-२',
+    '🧑🏽‍🫯‍🧑🏼' => 'कुस्तिवाज: छालाको प्रकार-४ छालाको प्रकार-३',
+    '🧑🏽‍🫯‍🧑🏾' => 'कुस्तिवाज: छालाको प्रकार-४ छालाको प्रकार-५',
+    '🧑🏽‍🫯‍🧑🏿' => 'कुस्तिवाज: छालाको प्रकार-४ छालाको प्रकार-६',
+    '🧑🏾‍🫯‍🧑🏻' => 'कुस्तिवाज: छालाको प्रकार-५ छालाको प्रकार-१-२',
+    '🧑🏾‍🫯‍🧑🏼' => 'कुस्तिवाज: छालाको प्रकार-५ छालाको प्रकार-३',
+    '🧑🏾‍🫯‍🧑🏽' => 'कुस्तिवाज: छालाको प्रकार-५ छालाको प्रकार-४',
+    '🧑🏾‍🫯‍🧑🏿' => 'कुस्तिवाज: छालाको प्रकार-५ छालाको प्रकार-६',
+    '🧑🏿‍🫯‍🧑🏻' => 'कुस्तिवाज: छालाको प्रकार-६ छालाको प्रकार-१-२',
+    '🧑🏿‍🫯‍🧑🏼' => 'कुस्तिवाज: छालाको प्रकार-६ छालाको प्रकार-३',
+    '🧑🏿‍🫯‍🧑🏽' => 'कुस्तिवाज: छालाको प्रकार-६ छालाको प्रकार-४',
+    '🧑🏿‍🫯‍🧑🏾' => 'कुस्तिवाज: छालाको प्रकार-६ छालाको प्रकार-५',
     '🧑🏻‍❤‍🧑🏼' => 'मुटुसहितको जोडी: वयस्क,वयस्क, छालाको प्रकार-१-२,छालाको प्रकार-३',
     '🧑🏻‍❤‍🧑🏽' => 'मुटुसहितको जोडी: वयस्क,वयस्क, छालाको प्रकार-१-२,छालाको प्रकार-४',
     '🧑🏻‍❤‍🧑🏾' => 'मुटुसहितको जोडी: वयस्क,वयस्क, छालाको प्रकार-१-२,छालाको प्रकार-५',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'मुटुसहितको जोडी: वयस्क,वयस्क, छालाको प्रकार-६,छालाको प्रकार-३',
     '🧑🏿‍❤‍🧑🏽' => 'मुटुसहितको जोडी: वयस्क,वयस्क, छालाको प्रकार-६,छालाको प्रकार-४',
     '🧑🏿‍❤‍🧑🏾' => 'मुटुसहितको जोडी: वयस्क,वयस्क, छालाको प्रकार-६,छालाको प्रकार-५',
+    '🧑🏻‍🐰‍🧑🏼' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-१-२ छालाको प्रकार-३',
+    '🧑🏻‍🐰‍🧑🏽' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-१-२ छालाको प्रकार-४',
+    '🧑🏻‍🐰‍🧑🏾' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-१-२ छालाको प्रकार-५',
+    '🧑🏻‍🐰‍🧑🏿' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-१-२ छालाको प्रकार-६',
+    '🧑🏼‍🐰‍🧑🏻' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-३ छालाको प्रकार-१-२',
+    '🧑🏼‍🐰‍🧑🏽' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-३ छालाको प्रकार-४',
+    '🧑🏼‍🐰‍🧑🏾' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-३ छालाको प्रकार-५',
+    '🧑🏼‍🐰‍🧑🏿' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-३ छालाको प्रकार-६',
+    '🧑🏽‍🐰‍🧑🏻' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-४ छालाको प्रकार-१-२',
+    '🧑🏽‍🐰‍🧑🏼' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-४ छालाको प्रकार-३',
+    '🧑🏽‍🐰‍🧑🏾' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-४ छालाको प्रकार-५',
+    '🧑🏽‍🐰‍🧑🏿' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-४ छालाको प्रकार-६',
+    '🧑🏾‍🐰‍🧑🏻' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-५ छालाको प्रकार-१-२',
+    '🧑🏾‍🐰‍🧑🏼' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-५ छालाको प्रकार-३',
+    '🧑🏾‍🐰‍🧑🏽' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-५ छालाको प्रकार-४',
+    '🧑🏾‍🐰‍🧑🏿' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-५ छालाको प्रकार-६',
+    '🧑🏿‍🐰‍🧑🏻' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-६ छालाको प्रकार-१-२',
+    '🧑🏿‍🐰‍🧑🏼' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-६ छालाको प्रकार-३',
+    '🧑🏿‍🐰‍🧑🏽' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-६ छालाको प्रकार-४',
+    '🧑🏿‍🐰‍🧑🏾' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-६ छालाको प्रकार-५',
+    '👨🏻‍🫯‍👨🏼' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-१-२ छालाको प्रकार-३',
+    '👨🏻‍🫯‍👨🏽' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-१-२ छालाको प्रकार-४',
+    '👨🏻‍🫯‍👨🏾' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-१-२ छालाको प्रकार-५',
+    '👨🏻‍🫯‍👨🏿' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-१-२ छालाको प्रकार-६',
+    '👨🏼‍🫯‍👨🏻' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-३ छालाको प्रकार-१-२',
+    '👨🏼‍🫯‍👨🏽' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-३ छालाको प्रकार-४',
+    '👨🏼‍🫯‍👨🏾' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-३ छालाको प्रकार-५',
+    '👨🏼‍🫯‍👨🏿' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-३ छालाको प्रकार-६',
+    '👨🏽‍🫯‍👨🏻' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-४ छालाको प्रकार-१-२',
+    '👨🏽‍🫯‍👨🏼' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-४ छालाको प्रकार-३',
+    '👨🏽‍🫯‍👨🏾' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-४ छालाको प्रकार-५',
+    '👨🏽‍🫯‍👨🏿' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-४ छालाको प्रकार-६',
+    '👨🏾‍🫯‍👨🏻' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-५ छालाको प्रकार-१-२',
+    '👨🏾‍🫯‍👨🏼' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-५ छालाको प्रकार-३',
+    '👨🏾‍🫯‍👨🏽' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-५ छालाको प्रकार-४',
+    '👨🏾‍🫯‍👨🏿' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-५ छालाको प्रकार-६',
+    '👨🏿‍🫯‍👨🏻' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-६ छालाको प्रकार-१-२',
+    '👨🏿‍🫯‍👨🏼' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-६ छालाको प्रकार-३',
+    '👨🏿‍🫯‍👨🏽' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-६ छालाको प्रकार-४',
+    '👨🏿‍🫯‍👨🏾' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-६ छालाको प्रकार-५',
     '👨🏻‍❤‍👨🏻' => 'मुटुसहितको जोडी: छोरामान्छे,छोरामान्छे,छालाको प्रकार-१-२',
     '👨🏻‍❤‍👨🏼' => 'मुटुसहितको जोडी: छोरामान्छे,छोरामान्छे, छालाको प्रकार-१-२,छालाको प्रकार-३',
     '👨🏻‍❤‍👨🏽' => 'मुटुसहितको जोडी: छोरामान्छे,छोरामान्छे, छालाको प्रकार-१-२,छालाको प्रकार-४',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'मुटुसहितको जोडी: छोरामान्छे,छोरामान्छे, छालाको प्रकार-६,छालाको प्रकार-४',
     '👨🏿‍❤‍👨🏾' => 'मुटुसहितको जोडी: छोरामान्छे,छोरामान्छे, छालाको प्रकार-६,छालाको प्रकार-५',
     '👨🏿‍❤‍👨🏿' => 'मुटुसहितको जोडी: छोरामान्छे,छोरामान्छे,छालाको प्रकार-६',
+    '👨🏻‍🐰‍👨🏼' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-१-२ छालाको प्रकार-३',
+    '👨🏻‍🐰‍👨🏽' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-१-२ छालाको प्रकार-४',
+    '👨🏻‍🐰‍👨🏾' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-१-२ छालाको प्रकार-५',
+    '👨🏻‍🐰‍👨🏿' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-१-२ छालाको प्रकार-६',
+    '👨🏼‍🐰‍👨🏻' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-३ छालाको प्रकार-१-२',
+    '👨🏼‍🐰‍👨🏽' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-३ छालाको प्रकार-४',
+    '👨🏼‍🐰‍👨🏾' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-३ छालाको प्रकार-५',
+    '👨🏼‍🐰‍👨🏿' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-३ छालाको प्रकार-६',
+    '👨🏽‍🐰‍👨🏻' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-४ छालाको प्रकार-१-२',
+    '👨🏽‍🐰‍👨🏼' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-४ छालाको प्रकार-३',
+    '👨🏽‍🐰‍👨🏾' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-४ छालाको प्रकार-५',
+    '👨🏽‍🐰‍👨🏿' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-४ छालाको प्रकार-६',
+    '👨🏾‍🐰‍👨🏻' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-५ छालाको प्रकार-१-२',
+    '👨🏾‍🐰‍👨🏼' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-५ छालाको प्रकार-३',
+    '👨🏾‍🐰‍👨🏽' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-५ छालाको प्रकार-४',
+    '👨🏾‍🐰‍👨🏿' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-५ छालाको प्रकार-६',
+    '👨🏿‍🐰‍👨🏻' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-६ छालाको प्रकार-१-२',
+    '👨🏿‍🐰‍👨🏼' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-६ छालाको प्रकार-३',
+    '👨🏿‍🐰‍👨🏽' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-६ छालाको प्रकार-४',
+    '👨🏿‍🐰‍👨🏾' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-६ छालाको प्रकार-५',
+    '👩🏻‍🫯‍👩🏼' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-१-२ छालाको प्रकार-३',
+    '👩🏻‍🫯‍👩🏽' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-१-२ छालाको प्रकार-४',
+    '👩🏻‍🫯‍👩🏾' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-१-२ छालाको प्रकार-५',
+    '👩🏻‍🫯‍👩🏿' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-१-२ छालाको प्रकार-६',
+    '👩🏼‍🫯‍👩🏻' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-३ छालाको प्रकार-१-२',
+    '👩🏼‍🫯‍👩🏽' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-३ छालाको प्रकार-४',
+    '👩🏼‍🫯‍👩🏾' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-३ छालाको प्रकार-५',
+    '👩🏼‍🫯‍👩🏿' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-३ छालाको प्रकार-६',
+    '👩🏽‍🫯‍👩🏻' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-४ छालाको प्रकार-१-२',
+    '👩🏽‍🫯‍👩🏼' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-४ छालाको प्रकार-३',
+    '👩🏽‍🫯‍👩🏾' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-४ छालाको प्रकार-५',
+    '👩🏽‍🫯‍👩🏿' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-४ छालाको प्रकार-६',
+    '👩🏾‍🫯‍👩🏻' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-५ छालाको प्रकार-१-२',
+    '👩🏾‍🫯‍👩🏼' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-५ छालाको प्रकार-३',
+    '👩🏾‍🫯‍👩🏽' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-५ छालाको प्रकार-४',
+    '👩🏾‍🫯‍👩🏿' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-५ छालाको प्रकार-६',
+    '👩🏿‍🫯‍👩🏻' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-६ छालाको प्रकार-१-२',
+    '👩🏿‍🫯‍👩🏼' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-६ छालाको प्रकार-३',
+    '👩🏿‍🫯‍👩🏽' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-६ छालाको प्रकार-४',
+    '👩🏿‍🫯‍👩🏾' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-६ छालाको प्रकार-५',
     '👩🏻‍❤‍👨🏻' => 'मुटुसहितको जोडी: छोरीमान्छे,छोरामान्छे,छालाको प्रकार-१-२',
     '👩🏻‍❤‍👨🏼' => 'मुटुसहितको जोडी: छोरीमान्छे,छोरामान्छे, छालाको प्रकार-१-२,छालाको प्रकार-३',
     '👩🏻‍❤‍👨🏽' => 'मुटुसहितको जोडी: छोरीमान्छे,छोरामान्छे, छालाको प्रकार-१-२,छालाको प्रकार-४',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'मुटुसहितको जोडी: छोरीमान्छे,छोरीमान्छे, छालाको प्रकार-६,छालाको प्रकार-४',
     '👩🏿‍❤‍👩🏾' => 'मुटुसहितको जोडी: छोरीमान्छे,छोरीमान्छे, छालाको प्रकार-६,छालाको प्रकार-५',
     '👩🏿‍❤‍👩🏿' => 'मुटुसहितको जोडी: छोरीमान्छे,छोरीमान्छे,छालाको प्रकार-६',
+    '👩🏻‍🐰‍👩🏼' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-१-२ छालाको प्रकार-३',
+    '👩🏻‍🐰‍👩🏽' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-१-२ छालाको प्रकार-४',
+    '👩🏻‍🐰‍👩🏾' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-१-२ छालाको प्रकार-५',
+    '👩🏻‍🐰‍👩🏿' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-१-२ छालाको प्रकार-६',
+    '👩🏼‍🐰‍👩🏻' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-३ छालाको प्रकार-१-२',
+    '👩🏼‍🐰‍👩🏽' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-३ छालाको प्रकार-४',
+    '👩🏼‍🐰‍👩🏾' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-३ छालाको प्रकार-५',
+    '👩🏼‍🐰‍👩🏿' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-३ छालाको प्रकार-६',
+    '👩🏽‍🐰‍👩🏻' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-४ छालाको प्रकार-१-२',
+    '👩🏽‍🐰‍👩🏼' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-४ छालाको प्रकार-३',
+    '👩🏽‍🐰‍👩🏾' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-४ छालाको प्रकार-५',
+    '👩🏽‍🐰‍👩🏿' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-४ छालाको प्रकार-६',
+    '👩🏾‍🐰‍👩🏻' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-५ छालाको प्रकार-१-२',
+    '👩🏾‍🐰‍👩🏼' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-५ छालाको प्रकार-३',
+    '👩🏾‍🐰‍👩🏽' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-५ छालाको प्रकार-४',
+    '👩🏾‍🐰‍👩🏿' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-५ छालाको प्रकार-६',
+    '👩🏿‍🐰‍👩🏻' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-६ छालाको प्रकार-१-२',
+    '👩🏿‍🐰‍👩🏼' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-६ छालाको प्रकार-३',
+    '👩🏿‍🐰‍👩🏽' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-६ छालाको प्रकार-४',
+    '👩🏿‍🐰‍👩🏾' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-६ छालाको प्रकार-५',
     '🧑🏻‍🤝‍🧑🏻' => 'हात समातिरहेका मान्छेहरू: छालाको प्रकार-१-२',
     '🧑🏻‍🤝‍🧑🏼' => 'हात समातिरहेका मान्छेहरू: छालाको प्रकार-१-२ छालाको प्रकार-३',
     '🧑🏻‍🤝‍🧑🏽' => 'हात समातिरहेका मान्छेहरू: छालाको प्रकार-१-२ छालाको प्रकार-४',
@@ -350,6 +470,11 @@
     '🧑🏽‍🦲' => 'वयस्क: छालाको प्रकार-४ तालु खुइले',
     '🧑🏾‍🦲' => 'वयस्क: छालाको प्रकार-५ तालु खुइले',
     '🧑🏿‍🦲' => 'वयस्क: छालाको प्रकार-६ तालु खुइले',
+    '🧑🏻‍🩰' => 'ब्याले डान्सर: छालाको प्रकार-१-२',
+    '🧑🏼‍🩰' => 'ब्याले डान्सर: छालाको प्रकार-३',
+    '🧑🏽‍🩰' => 'ब्याले डान्सर: छालाको प्रकार-४',
+    '🧑🏾‍🩰' => 'ब्याले डान्सर: छालाको प्रकार-५',
+    '🧑🏿‍🩰' => 'ब्याले डान्सर: छालाको प्रकार-६',
     '🧔🏻‍♂' => 'पुरुष: छालाको प्रकार-१-२ दाह्री',
     '🧔🏼‍♂' => 'पुरुष: छालाको प्रकार-३ दाह्री',
     '🧔🏽‍♂' => 'पुरुष: छालाको प्रकार-४ दाह्री',
@@ -1015,6 +1140,16 @@
     '🏃🏽‍♀' => 'दौंडिरहेेकी छोरीमान्छे: छालाको प्रकार-४',
     '🏃🏾‍♀' => 'दौंडिरहेेकी छोरीमान्छे: छालाको प्रकार-५',
     '🏃🏿‍♀' => 'दौंडिरहेेकी छोरीमान्छे: छालाको प्रकार-६',
+    '👯🏻‍♀' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-१-२',
+    '👯🏼‍♀' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-३',
+    '👯🏽‍♀' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-४',
+    '👯🏾‍♀' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-५',
+    '👯🏿‍♀' => 'पार्टीमा रमिरहेेकी छोरीमान्छे: छालाको प्रकार-६',
+    '👯🏻‍♂' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-१-२',
+    '👯🏼‍♂' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-३',
+    '👯🏽‍♂' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-४',
+    '👯🏾‍♂' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-५',
+    '👯🏿‍♂' => 'पार्टीमा रमिरहेका छोरामान्छे: छालाको प्रकार-६',
     '🧖🏻‍♂' => 'वाफ कोठाको छोरामान्छे: छालाको प्रकार-१-२',
     '🧖🏼‍♂' => 'वाफ कोठाको छोरामान्छे: छालाको प्रकार-३',
     '🧖🏽‍♂' => 'वाफ कोठाको छोरामान्छे: छालाको प्रकार-४',
@@ -1125,6 +1260,16 @@
     '🤸🏽‍♀' => 'कार्टह्विल गरिरहेको छोरीमान्छे: छालाको प्रकार-४',
     '🤸🏾‍♀' => 'कार्टह्विल गरिरहेको छोरीमान्छे: छालाको प्रकार-५',
     '🤸🏿‍♀' => 'कार्टह्विल गरिरहेको छोरीमान्छे: छालाको प्रकार-६',
+    '🤼🏻‍♀' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-१-२',
+    '🤼🏼‍♀' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-३',
+    '🤼🏽‍♀' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-४',
+    '🤼🏾‍♀' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-५',
+    '🤼🏿‍♀' => 'कुस्ती खेेलिरहेका छोरीमान्छेहरू: छालाको प्रकार-६',
+    '🤼🏻‍♂' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-१-२',
+    '🤼🏼‍♂' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-३',
+    '🤼🏽‍♂' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-४',
+    '🤼🏾‍♂' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-५',
+    '🤼🏿‍♂' => 'कुस्ती खेलिरहेका छोरामान्छेहरू: छालाको प्रकार-६',
     '🤽🏻‍♂' => 'वाटर पोलो खेलिरहेको छोरामान्छे: छालाको प्रकार-१-२',
     '🤽🏼‍♂' => 'वाटर पोलो खेलिरहेको छोरामान्छे: छालाको प्रकार-३',
     '🤽🏽‍♂' => 'वाटर पोलो खेलिरहेको छोरामान्छे: छालाको प्रकार-४',
@@ -1317,6 +1462,7 @@
     '👩‍🦽' => 'म्यानुअल व्हीलचेयरमा महिला',
     '🏃‍♂' => 'दौंडिरहेको छोरामान्छे',
     '🏃‍♀' => 'दौंडिरहेेकी छोरीमान्छे',
+    '🧑‍🩰' => 'ब्याले डान्सर',
     '👯‍♂' => 'पार्टीमा रमिरहेका छोरामान्छे',
     '👯‍♀' => 'पार्टीमा रमिरहेेकी छोरीमान्छे',
     '🧖‍♂' => 'वाफ कोठाको छोरामान्छे',
@@ -1898,6 +2044,11 @@
     '🕴🏽' => 'व्यवसायिक सुटमा पुरुष: छालाको प्रकार-४',
     '🕴🏾' => 'व्यवसायिक सुटमा पुरुष: छालाको प्रकार-५',
     '🕴🏿' => 'व्यवसायिक सुटमा पुरुष: छालाको प्रकार-६',
+    '👯🏻' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-१-२',
+    '👯🏼' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-३',
+    '👯🏽' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-४',
+    '👯🏾' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-५',
+    '👯🏿' => 'पार्टीमा रमिरहेका महिला: छालाको प्रकार-६',
     '🧖🏻' => 'वाफ कोठाको व्यक्ति: छालाको प्रकार-१-२',
     '🧖🏼' => 'वाफ कोठाको व्यक्ति: छालाको प्रकार-३',
     '🧖🏽' => 'वाफ कोठाको व्यक्ति: छालाको प्रकार-४',
@@ -1963,6 +2114,11 @@
     '🤸🏽' => 'कार्टह्विल: छालाको प्रकार-४',
     '🤸🏾' => 'कार्टह्विल: छालाको प्रकार-५',
     '🤸🏿' => 'कार्टह्विल: छालाको प्रकार-६',
+    '🤼🏻' => 'कुस्तिवाज: छालाको प्रकार-१-२',
+    '🤼🏼' => 'कुस्तिवाज: छालाको प्रकार-३',
+    '🤼🏽' => 'कुस्तिवाज: छालाको प्रकार-४',
+    '🤼🏾' => 'कुस्तिवाज: छालाको प्रकार-५',
+    '🤼🏿' => 'कुस्तिवाज: छालाको प्रकार-६',
     '🤽🏻' => 'वाटर पोलो: छालाको प्रकार-१-२',
     '🤽🏼' => 'वाटर पोलो: छालाको प्रकार-३',
     '🤽🏽' => 'वाटर पोलो: छालाको प्रकार-४',
@@ -2069,6 +2225,7 @@
     '🇨🇳' => 'झण्डा: चीन',
     '🇨🇴' => 'झण्डा: कोलोम्बिया',
     '🇨🇵' => 'झण्डा: क्लिप्पेर्टन टापु',
+    '🇨🇶' => 'झण्डा: सार्क',
     '🇨🇷' => 'झण्डा: कोष्टारिका',
     '🇨🇺' => 'झण्डा: क्युबा',
     '🇨🇻' => 'झण्डा: केप भर्डे',
@@ -2282,13 +2439,6 @@
     '🏽' => 'छालाको प्रकार-४',
     '🏾' => 'छालाको प्रकार-५',
     '🏿' => 'छालाको प्रकार-६',
-    '🪉' => 'हार्प',
-    '🪏' => 'बेल्चा',
-    '🪾' => 'पात पभएको रुख',
-    '🫆' => 'फिङ्गरप्रिन्ट',
-    '🫜' => 'जरासम्बन्धी तरकारी',
-    '🫟' => 'छ्यापेको',
-    '🫩' => 'आँखाको तल पोकोसहितको अनुहार',
     '😀' => 'रमाएको अनुहार',
     '😃' => 'खुला मुखसहितको हँसिलो अनुहार',
     '😄' => 'खुला मुख र चम्किला आँखासहितको हँसिलो अनुहार',
@@ -2342,6 +2492,7 @@
     '😪' => 'निद्रालु अनुहार',
     '🤤' => 'र्‍याले अनुहार',
     '😴' => 'निदाइरहेको अनुहार',
+    '🫩' => 'आँखाको तल पोकोसहितको अनुहार',
     '😷' => 'चिकित्सा मास्क लगाएको अनुहार',
     '🤒' => 'थर्मोमिटर राखेको अनुहार',
     '🤕' => 'टाउकोमा पट्टी लगाइएको अनुहार',
@@ -2368,6 +2519,7 @@
     '😯' => 'शान्त अनुहार',
     '😲' => 'चकित अनुहार',
     '😳' => 'रातो भएको अनुहार',
+    '🫪' => 'कुच्चिएको अनुहार',
     '🥺' => 'विन्ती गरिरहेको अनुहार',
     '🥹' => 'आँँसु रोकिरहेको अनुहार',
     '😦' => 'खुला मुख भएको रिसाएको अनुहार',
@@ -2439,6 +2591,7 @@
     '💋' => 'चुम्बन चिन्ह',
     '💯' => 'सयवटा अंकहरू',
     '💢' => 'रिसको संकेत',
+    '🫯' => 'फ्लाइट क्लाउड',
     '💥' => 'टक्कर',
     '💫' => 'चक्कर',
     '💦' => 'पसिनाको थोपा',
@@ -2562,6 +2715,7 @@
     '🧞' => 'अलौंकिक शक्ति',
     '🧟' => 'व्युँतेको मृत मान्छे',
     '🧌' => 'ट्रोल',
+    '🫈' => 'रौँदार जीव',
     '💆' => 'अनुहारको मसाज',
     '💇' => 'कपाल काट्ने',
     '🚶' => 'पदयात्री',
@@ -2605,6 +2759,7 @@
     '🫂' => 'मानिसहरूले अङ्गालो हालिरहेका',
     '👪' => 'परिवार',
     '👣' => 'खुट्टाको डोब',
+    '🫆' => 'फिङ्गरप्रिन्ट',
     '🦰' => 'रातो कपाल',
     '🦱' => 'घुम्रेको कपाल',
     '🦳' => 'सेतो कपाल',
@@ -2704,6 +2859,7 @@
     '🐳' => 'स्पाउटिङ् ह्वेल',
     '🐋' => 'ह्वेल',
     '🐬' => 'डल्फिन',
+    '🫍' => 'ओर्का',
     '🦭' => 'सिल',
     '🐟' => 'माछा',
     '🐠' => 'उष्णप्रदेशीय माछा',
@@ -2713,6 +2869,11 @@
     '🐚' => 'स्पाइरल सेल',
     '🪸' => 'कोरल',
     '🪼' => 'जेलीफिस',
+    '🦀' => 'गंगटा',
+    '🦞' => 'समुद्री जीव',
+    '🦐' => 'श्रिम्प',
+    '🦑' => 'स्क्विड',
+    '🦪' => 'ओइस्टर',
     '🐌' => 'चिप्लेकिरा',
     '🦋' => 'पुतली',
     '🐛' => 'उडुस',
@@ -2757,6 +2918,7 @@
     '🪹' => 'खाली गुँड',
     '🪺' => 'अण्डासहितको गुँड',
     '🍄' => 'च्याउ',
+    '🪾' => 'पात पभएको रुख',
     '🍇' => 'अङ्गुर',
     '🍈' => 'तरबूज',
     '🍉' => 'खरबुजा',
@@ -2793,6 +2955,7 @@
     '🌰' => 'ओखर',
     '🫚' => 'अदुवा',
     '🫛' => 'केराउ',
+    '🫜' => 'जरासम्बन्धी तरकारी',
     '🍞' => 'रोटी',
     '🥐' => 'क्रोइस्सन्ट',
     '🥖' => 'ब्यागेट रोटी',
@@ -2844,11 +3007,6 @@
     '🥟' => 'बाफ वा तातो पानीमा उमालेर बनाइएको पीठोको डल्लो खानेकुरा',
     '🥠' => 'फर्चुन कुकी',
     '🥡' => 'बट्टाको खानेकुरा',
-    '🦀' => 'गंगटा',
-    '🦞' => 'समुद्री जीव',
-    '🦐' => 'श्रिम्प',
-    '🦑' => 'स्क्विड',
-    '🦪' => 'ओइस्टर',
     '🍦' => 'सफ्ट आइसक्रिम',
     '🍧' => 'तयार पारिएको आइस क्रिम',
     '🍨' => 'आइस क्रिम',
@@ -2899,6 +3057,7 @@
     '🧭' => 'कम्पास',
     '🏔' => 'हिउँले-ढाकेको पर्वत',
     '⛰' => 'हिमाल',
+    '🛘' => 'पहिरो',
     '🌋' => 'ज्वालामुखी',
     '🗻' => 'फुजी हिमाल',
     '🏕' => 'क्याम्पिङ',
@@ -3259,16 +3418,18 @@
     '🎧' => 'हेडफोन',
     '📻' => 'रेडियो',
     '🎷' => 'स्याक्सोफोन',
+    '🎺' => 'ट्रम्पेट',
+    '🪊' => 'ट्रमबोन',
     '🪗' => 'अक्कोर्डियन',
     '🎸' => 'गितार',
     '🎹' => 'सांगीतिक किबोर्ड',
-    '🎺' => 'ट्रम्पेट',
     '🎻' => 'भायोलिन',
     '🪕' => 'बान्जो',
     '🥁' => 'ड्रम',
     '🪘' => 'लामो ड्रम',
     '🪇' => 'माराकास',
     '🪈' => 'बासुरी',
+    '🪉' => 'हार्प',
     '📱' => 'मोबाइल फोन',
     '📲' => 'तीरले देखाइएको मोबाइल',
     '☎' => 'टेलिफोन',
@@ -3322,8 +3483,9 @@
     '📑' => 'बुकमार्क ट्याबहरू',
     '🔖' => 'बुकमार्क',
     '🏷' => 'लेबल',
-    '💰' => 'पैसाको झोला',
     '🪙' => 'सिक्का',
+    '💰' => 'पैसाको झोला',
+    '🪎' => 'खजनाको बाकस',
     '💴' => 'येन बैंकनोट',
     '💵' => 'डलर बैंकनोट',
     '💶' => 'यूरो बैंकनोट',
@@ -3406,6 +3568,7 @@
     '🧰' => 'औँजारबाकस',
     '🧲' => 'चुम्बक',
     '🪜' => 'भर्‍याङ',
+    '🪏' => 'बेल्चा',
     '⚗' => 'ऐलेम्बिक',
     '🧪' => 'टेस्ट ट्युब',
     '🧫' => 'पेट्री डिस',
@@ -3589,6 +3752,7 @@
     '✴' => 'आठवटा-विन्दू भएको तारा',
     '❇' => 'चम्किने',
     '™' => 'व्यापार चिन्ह',
+    '🫟' => 'छ्यापेको',
     '🔠' => 'ल्याटिन ठूलो अक्षर राख्न',
     '🔡' => 'ल्याटिन सानो अक्षर राख्न',
     '🔢' => 'अंकहरू राख्न',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nl.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kus: vrouw, vrouw, donkere huidskleur, getinte huidskleur',
     '👩🏿‍❤‍💋‍👩🏾' => 'kus: vrouw, vrouw, donkere huidskleur, donkergetinte huidskleur',
     '👩🏿‍❤‍💋‍👩🏿' => 'kus: vrouw, vrouw, donkere huidskleur',
+    '🧑🏻‍🫯‍🧑🏼' => 'personen die worstelen: lichte huidskleur, lichtgetinte huidskleur',
+    '🧑🏻‍🫯‍🧑🏽' => 'personen die worstelen: lichte huidskleur, getinte huidskleur',
+    '🧑🏻‍🫯‍🧑🏾' => 'personen die worstelen: lichte huidskleur, donkergetinte huidskleur',
+    '🧑🏻‍🫯‍🧑🏿' => 'personen die worstelen: lichte huidskleur, donkere huidskleur',
+    '🧑🏼‍🫯‍🧑🏻' => 'personen die worstelen: lichtgetinte huidskleur, lichte huidskleur',
+    '🧑🏼‍🫯‍🧑🏽' => 'personen die worstelen: lichtgetinte huidskleur, getinte huidskleur',
+    '🧑🏼‍🫯‍🧑🏾' => 'personen die worstelen: lichtgetinte huidskleur, donkergetinte huidskleur',
+    '🧑🏼‍🫯‍🧑🏿' => 'personen die worstelen: lichtgetinte huidskleur, donkere huidskleur',
+    '🧑🏽‍🫯‍🧑🏻' => 'personen die worstelen: getinte huidskleur, lichte huidskleur',
+    '🧑🏽‍🫯‍🧑🏼' => 'personen die worstelen: getinte huidskleur, lichtgetinte huidskleur',
+    '🧑🏽‍🫯‍🧑🏾' => 'personen die worstelen: getinte huidskleur, donkergetinte huidskleur',
+    '🧑🏽‍🫯‍🧑🏿' => 'personen die worstelen: getinte huidskleur, donkere huidskleur',
+    '🧑🏾‍🫯‍🧑🏻' => 'personen die worstelen: donkergetinte huidskleur, lichte huidskleur',
+    '🧑🏾‍🫯‍🧑🏼' => 'personen die worstelen: donkergetinte huidskleur, lichtgetinte huidskleur',
+    '🧑🏾‍🫯‍🧑🏽' => 'personen die worstelen: donkergetinte huidskleur, getinte huidskleur',
+    '🧑🏾‍🫯‍🧑🏿' => 'personen die worstelen: donkergetinte huidskleur, donkere huidskleur',
+    '🧑🏿‍🫯‍🧑🏻' => 'personen die worstelen: donkere huidskleur, lichte huidskleur',
+    '🧑🏿‍🫯‍🧑🏼' => 'personen die worstelen: donkere huidskleur, lichtgetinte huidskleur',
+    '🧑🏿‍🫯‍🧑🏽' => 'personen die worstelen: donkere huidskleur, getinte huidskleur',
+    '🧑🏿‍🫯‍🧑🏾' => 'personen die worstelen: donkere huidskleur, donkergetinte huidskleur',
     '🧑🏻‍❤‍🧑🏼' => 'stel met hart: volwassene, volwassene, lichte huidskleur, lichtgetinte huidskleur',
     '🧑🏻‍❤‍🧑🏽' => 'stel met hart: volwassene, volwassene, lichte huidskleur, getinte huidskleur',
     '🧑🏻‍❤‍🧑🏾' => 'stel met hart: volwassene, volwassene, lichte huidskleur, donkergetinte huidskleur',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'stel met hart: volwassene, volwassene, donkere huidskleur, lichtgetinte huidskleur',
     '🧑🏿‍❤‍🧑🏽' => 'stel met hart: volwassene, volwassene, donkere huidskleur, getinte huidskleur',
     '🧑🏿‍❤‍🧑🏾' => 'stel met hart: volwassene, volwassene, donkere huidskleur, donkergetinte huidskleur',
+    '🧑🏻‍🐰‍🧑🏼' => 'mensen met konijnenoren: lichte huidskleur, lichtgetinte huidskleur',
+    '🧑🏻‍🐰‍🧑🏽' => 'mensen met konijnenoren: lichte huidskleur, getinte huidskleur',
+    '🧑🏻‍🐰‍🧑🏾' => 'mensen met konijnenoren: lichte huidskleur, donkergetinte huidskleur',
+    '🧑🏻‍🐰‍🧑🏿' => 'mensen met konijnenoren: lichte huidskleur, donkere huidskleur',
+    '🧑🏼‍🐰‍🧑🏻' => 'mensen met konijnenoren: lichtgetinte huidskleur, lichte huidskleur',
+    '🧑🏼‍🐰‍🧑🏽' => 'mensen met konijnenoren: lichtgetinte huidskleur, getinte huidskleur',
+    '🧑🏼‍🐰‍🧑🏾' => 'mensen met konijnenoren: lichtgetinte huidskleur, donkergetinte huidskleur',
+    '🧑🏼‍🐰‍🧑🏿' => 'mensen met konijnenoren: lichtgetinte huidskleur, donkere huidskleur',
+    '🧑🏽‍🐰‍🧑🏻' => 'mensen met konijnenoren: getinte huidskleur, lichte huidskleur',
+    '🧑🏽‍🐰‍🧑🏼' => 'mensen met konijnenoren: getinte huidskleur, lichtgetinte huidskleur',
+    '🧑🏽‍🐰‍🧑🏾' => 'mensen met konijnenoren: getinte huidskleur, donkergetinte huidskleur',
+    '🧑🏽‍🐰‍🧑🏿' => 'mensen met konijnenoren: getinte huidskleur, donkere huidskleur',
+    '🧑🏾‍🐰‍🧑🏻' => 'mensen met konijnenoren: donkergetinte huidskleur, lichte huidskleur',
+    '🧑🏾‍🐰‍🧑🏼' => 'mensen met konijnenoren: donkergetinte huidskleur, lichtgetinte huidskleur',
+    '🧑🏾‍🐰‍🧑🏽' => 'mensen met konijnenoren: donkergetinte huidskleur, getinte huidskleur',
+    '🧑🏾‍🐰‍🧑🏿' => 'mensen met konijnenoren: donkergetinte huidskleur, donkere huidskleur',
+    '🧑🏿‍🐰‍🧑🏻' => 'mensen met konijnenoren: donkere huidskleur, lichte huidskleur',
+    '🧑🏿‍🐰‍🧑🏼' => 'mensen met konijnenoren: donkere huidskleur, lichtgetinte huidskleur',
+    '🧑🏿‍🐰‍🧑🏽' => 'mensen met konijnenoren: donkere huidskleur, getinte huidskleur',
+    '🧑🏿‍🐰‍🧑🏾' => 'mensen met konijnenoren: donkere huidskleur, donkergetinte huidskleur',
+    '👨🏻‍🫯‍👨🏼' => 'worstelende mannen: lichte huidskleur, lichtgetinte huidskleur',
+    '👨🏻‍🫯‍👨🏽' => 'worstelende mannen: lichte huidskleur, getinte huidskleur',
+    '👨🏻‍🫯‍👨🏾' => 'worstelende mannen: lichte huidskleur, donkergetinte huidskleur',
+    '👨🏻‍🫯‍👨🏿' => 'worstelende mannen: lichte huidskleur, donkere huidskleur',
+    '👨🏼‍🫯‍👨🏻' => 'worstelende mannen: lichtgetinte huidskleur, lichte huidskleur',
+    '👨🏼‍🫯‍👨🏽' => 'worstelende mannen: lichtgetinte huidskleur, getinte huidskleur',
+    '👨🏼‍🫯‍👨🏾' => 'worstelende mannen: lichtgetinte huidskleur, donkergetinte huidskleur',
+    '👨🏼‍🫯‍👨🏿' => 'worstelende mannen: lichtgetinte huidskleur, donkere huidskleur',
+    '👨🏽‍🫯‍👨🏻' => 'worstelende mannen: getinte huidskleur, lichte huidskleur',
+    '👨🏽‍🫯‍👨🏼' => 'worstelende mannen: getinte huidskleur, lichtgetinte huidskleur',
+    '👨🏽‍🫯‍👨🏾' => 'worstelende mannen: getinte huidskleur, donkergetinte huidskleur',
+    '👨🏽‍🫯‍👨🏿' => 'worstelende mannen: getinte huidskleur, donkere huidskleur',
+    '👨🏾‍🫯‍👨🏻' => 'worstelende mannen: donkergetinte huidskleur, lichte huidskleur',
+    '👨🏾‍🫯‍👨🏼' => 'worstelende mannen: donkergetinte huidskleur, lichtgetinte huidskleur',
+    '👨🏾‍🫯‍👨🏽' => 'worstelende mannen: donkergetinte huidskleur, getinte huidskleur',
+    '👨🏾‍🫯‍👨🏿' => 'worstelende mannen: donkergetinte huidskleur, donkere huidskleur',
+    '👨🏿‍🫯‍👨🏻' => 'worstelende mannen: donkere huidskleur, lichte huidskleur',
+    '👨🏿‍🫯‍👨🏼' => 'worstelende mannen: donkere huidskleur, lichtgetinte huidskleur',
+    '👨🏿‍🫯‍👨🏽' => 'worstelende mannen: donkere huidskleur, getinte huidskleur',
+    '👨🏿‍🫯‍👨🏾' => 'worstelende mannen: donkere huidskleur, donkergetinte huidskleur',
     '👨🏻‍❤‍👨🏻' => 'stel met hart: man, man, lichte huidskleur',
     '👨🏻‍❤‍👨🏼' => 'stel met hart: man, man, lichte huidskleur, lichtgetinte huidskleur',
     '👨🏻‍❤‍👨🏽' => 'stel met hart: man, man, lichte huidskleur, getinte huidskleur',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'stel met hart: man, man, donkere huidskleur, getinte huidskleur',
     '👨🏿‍❤‍👨🏾' => 'stel met hart: man, man, donkere huidskleur, donkergetinte huidskleur',
     '👨🏿‍❤‍👨🏿' => 'stel met hart: man, man, donkere huidskleur',
+    '👨🏻‍🐰‍👨🏼' => 'mannen met konijnenoren: lichte huidskleur, lichtgetinte huidskleur',
+    '👨🏻‍🐰‍👨🏽' => 'mannen met konijnenoren: lichte huidskleur, getinte huidskleur',
+    '👨🏻‍🐰‍👨🏾' => 'mannen met konijnenoren: lichte huidskleur, donkergetinte huidskleur',
+    '👨🏻‍🐰‍👨🏿' => 'mannen met konijnenoren: lichte huidskleur, donkere huidskleur',
+    '👨🏼‍🐰‍👨🏻' => 'mannen met konijnenoren: lichtgetinte huidskleur, lichte huidskleur',
+    '👨🏼‍🐰‍👨🏽' => 'mannen met konijnenoren: lichtgetinte huidskleur, getinte huidskleur',
+    '👨🏼‍🐰‍👨🏾' => 'mannen met konijnenoren: lichtgetinte huidskleur, donkergetinte huidskleur',
+    '👨🏼‍🐰‍👨🏿' => 'mannen met konijnenoren: lichtgetinte huidskleur, donkere huidskleur',
+    '👨🏽‍🐰‍👨🏻' => 'mannen met konijnenoren: getinte huidskleur, lichte huidskleur',
+    '👨🏽‍🐰‍👨🏼' => 'mannen met konijnenoren: getinte huidskleur, lichtgetinte huidskleur',
+    '👨🏽‍🐰‍👨🏾' => 'mannen met konijnenoren: getinte huidskleur, donkergetinte huidskleur',
+    '👨🏽‍🐰‍👨🏿' => 'mannen met konijnenoren: getinte huidskleur, donkere huidskleur',
+    '👨🏾‍🐰‍👨🏻' => 'mannen met konijnenoren: donkergetinte huidskleur, lichte huidskleur',
+    '👨🏾‍🐰‍👨🏼' => 'mannen met konijnenoren: donkergetinte huidskleur, lichtgetinte huidskleur',
+    '👨🏾‍🐰‍👨🏽' => 'mannen met konijnenoren: donkergetinte huidskleur, getinte huidskleur',
+    '👨🏾‍🐰‍👨🏿' => 'mannen met konijnenoren: donkergetinte huidskleur, donkere huidskleur',
+    '👨🏿‍🐰‍👨🏻' => 'mannen met konijnenoren: donkere huidskleur, lichte huidskleur',
+    '👨🏿‍🐰‍👨🏼' => 'mannen met konijnenoren: donkere huidskleur, lichtgetinte huidskleur',
+    '👨🏿‍🐰‍👨🏽' => 'mannen met konijnenoren: donkere huidskleur, getinte huidskleur',
+    '👨🏿‍🐰‍👨🏾' => 'mannen met konijnenoren: donkere huidskleur, donkergetinte huidskleur',
+    '👩🏻‍🫯‍👩🏼' => 'worstelende vrouwen: lichte huidskleur, lichtgetinte huidskleur',
+    '👩🏻‍🫯‍👩🏽' => 'worstelende vrouwen: lichte huidskleur, getinte huidskleur',
+    '👩🏻‍🫯‍👩🏾' => 'worstelende vrouwen: lichte huidskleur, donkergetinte huidskleur',
+    '👩🏻‍🫯‍👩🏿' => 'worstelende vrouwen: lichte huidskleur, donkere huidskleur',
+    '👩🏼‍🫯‍👩🏻' => 'worstelende vrouwen: lichtgetinte huidskleur, lichte huidskleur',
+    '👩🏼‍🫯‍👩🏽' => 'worstelende vrouwen: lichtgetinte huidskleur, getinte huidskleur',
+    '👩🏼‍🫯‍👩🏾' => 'worstelende vrouwen: lichtgetinte huidskleur, donkergetinte huidskleur',
+    '👩🏼‍🫯‍👩🏿' => 'worstelende vrouwen: lichtgetinte huidskleur, donkere huidskleur',
+    '👩🏽‍🫯‍👩🏻' => 'worstelende vrouwen: getinte huidskleur, lichte huidskleur',
+    '👩🏽‍🫯‍👩🏼' => 'worstelende vrouwen: getinte huidskleur, lichtgetinte huidskleur',
+    '👩🏽‍🫯‍👩🏾' => 'worstelende vrouwen: getinte huidskleur, donkergetinte huidskleur',
+    '👩🏽‍🫯‍👩🏿' => 'worstelende vrouwen: getinte huidskleur, donkere huidskleur',
+    '👩🏾‍🫯‍👩🏻' => 'worstelende vrouwen: donkergetinte huidskleur, lichte huidskleur',
+    '👩🏾‍🫯‍👩🏼' => 'worstelende vrouwen: donkergetinte huidskleur, lichtgetinte huidskleur',
+    '👩🏾‍🫯‍👩🏽' => 'worstelende vrouwen: donkergetinte huidskleur, getinte huidskleur',
+    '👩🏾‍🫯‍👩🏿' => 'worstelende vrouwen: donkergetinte huidskleur, donkere huidskleur',
+    '👩🏿‍🫯‍👩🏻' => 'worstelende vrouwen: donkere huidskleur, lichte huidskleur',
+    '👩🏿‍🫯‍👩🏼' => 'worstelende vrouwen: donkere huidskleur, lichtgetinte huidskleur',
+    '👩🏿‍🫯‍👩🏽' => 'worstelende vrouwen: donkere huidskleur, getinte huidskleur',
+    '👩🏿‍🫯‍👩🏾' => 'worstelende vrouwen: donkere huidskleur, donkergetinte huidskleur',
     '👩🏻‍❤‍👨🏻' => 'stel met hart: vrouw, man, lichte huidskleur',
     '👩🏻‍❤‍👨🏼' => 'stel met hart: vrouw, man, lichte huidskleur, lichtgetinte huidskleur',
     '👩🏻‍❤‍👨🏽' => 'stel met hart: vrouw, man, lichte huidskleur, getinte huidskleur',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'stel met hart: vrouw, vrouw, donkere huidskleur, getinte huidskleur',
     '👩🏿‍❤‍👩🏾' => 'stel met hart: vrouw, vrouw, donkere huidskleur, donkergetinte huidskleur',
     '👩🏿‍❤‍👩🏿' => 'stel met hart: vrouw, vrouw, donkere huidskleur',
+    '👩🏻‍🐰‍👩🏼' => 'vrouwen met konijnenoren: lichte huidskleur, lichtgetinte huidskleur',
+    '👩🏻‍🐰‍👩🏽' => 'vrouwen met konijnenoren: lichte huidskleur, getinte huidskleur',
+    '👩🏻‍🐰‍👩🏾' => 'vrouwen met konijnenoren: lichte huidskleur, donkergetinte huidskleur',
+    '👩🏻‍🐰‍👩🏿' => 'vrouwen met konijnenoren: lichte huidskleur, donkere huidskleur',
+    '👩🏼‍🐰‍👩🏻' => 'vrouwen met konijnenoren: lichtgetinte huidskleur, lichte huidskleur',
+    '👩🏼‍🐰‍👩🏽' => 'vrouwen met konijnenoren: lichtgetinte huidskleur, getinte huidskleur',
+    '👩🏼‍🐰‍👩🏾' => 'vrouwen met konijnenoren: lichtgetinte huidskleur, donkergetinte huidskleur',
+    '👩🏼‍🐰‍👩🏿' => 'vrouwen met konijnenoren: lichtgetinte huidskleur, donkere huidskleur',
+    '👩🏽‍🐰‍👩🏻' => 'vrouwen met konijnenoren: getinte huidskleur, lichte huidskleur',
+    '👩🏽‍🐰‍👩🏼' => 'vrouwen met konijnenoren: getinte huidskleur, lichtgetinte huidskleur',
+    '👩🏽‍🐰‍👩🏾' => 'vrouwen met konijnenoren: getinte huidskleur, donkergetinte huidskleur',
+    '👩🏽‍🐰‍👩🏿' => 'vrouwen met konijnenoren: getinte huidskleur, donkere huidskleur',
+    '👩🏾‍🐰‍👩🏻' => 'vrouwen met konijnenoren: donkergetinte huidskleur, lichte huidskleur',
+    '👩🏾‍🐰‍👩🏼' => 'vrouwen met konijnenoren: donkergetinte huidskleur, lichtgetinte huidskleur',
+    '👩🏾‍🐰‍👩🏽' => 'vrouwen met konijnenoren: donkergetinte huidskleur, getinte huidskleur',
+    '👩🏾‍🐰‍👩🏿' => 'vrouwen met konijnenoren: donkergetinte huidskleur, donkere huidskleur',
+    '👩🏿‍🐰‍👩🏻' => 'vrouwen met konijnenoren: donkere huidskleur, lichte huidskleur',
+    '👩🏿‍🐰‍👩🏼' => 'vrouwen met konijnenoren: donkere huidskleur, lichtgetinte huidskleur',
+    '👩🏿‍🐰‍👩🏽' => 'vrouwen met konijnenoren: donkere huidskleur, getinte huidskleur',
+    '👩🏿‍🐰‍👩🏾' => 'vrouwen met konijnenoren: donkere huidskleur, donkergetinte huidskleur',
     '🧑🏻‍🤝‍🧑🏻' => 'personen hand in hand: lichte huidskleur',
     '🧑🏻‍🤝‍🧑🏼' => 'personen hand in hand: lichte huidskleur, lichtgetinte huidskleur',
     '🧑🏻‍🤝‍🧑🏽' => 'personen hand in hand: lichte huidskleur, getinte huidskleur',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'vlag: Schotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'vlag: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'gezin: volwassene, volwassene, kind, kind',
-    '🚶🏻‍♀‍➡' => 'wandelende vrouw naar rechts gericht',
-    '🚶🏼‍♀‍➡' => 'wandelende vrouw naar rechts gericht',
-    '🚶🏽‍♀‍➡' => 'wandelende vrouw naar rechts gericht',
-    '🚶🏾‍♀‍➡' => 'wandelende vrouw naar rechts gericht',
-    '🚶🏿‍♀‍➡' => 'wandelende vrouw naar rechts gericht',
-    '🚶🏻‍♂‍➡' => 'wandelende man naar rechts gericht',
-    '🚶🏼‍♂‍➡' => 'wandelende man naar rechts gericht',
-    '🚶🏽‍♂‍➡' => 'wandelende man naar rechts gericht',
-    '🚶🏾‍♂‍➡' => 'wandelende man naar rechts gericht',
-    '🚶🏿‍♂‍➡' => 'wandelende man naar rechts gericht',
-    '🧎🏻‍♀‍➡' => 'knielende vrouw naar rechts gericht',
-    '🧎🏼‍♀‍➡' => 'knielende vrouw naar rechts gericht',
-    '🧎🏽‍♀‍➡' => 'knielende vrouw naar rechts gericht',
-    '🧎🏾‍♀‍➡' => 'knielende vrouw naar rechts gericht',
-    '🧎🏿‍♀‍➡' => 'knielende vrouw naar rechts gericht',
-    '🧎🏻‍♂‍➡' => 'knielende man naar rechts gericht',
-    '🧎🏼‍♂‍➡' => 'knielende man naar rechts gericht',
-    '🧎🏽‍♂‍➡' => 'knielende man naar rechts gericht',
-    '🧎🏾‍♂‍➡' => 'knielende man naar rechts gericht',
-    '🧎🏿‍♂‍➡' => 'knielende man naar rechts gericht',
-    '🧑🏻‍🦯‍➡' => 'persoon met taststok naar rechts gericht',
-    '🧑🏼‍🦯‍➡' => 'persoon met taststok naar rechts gericht',
-    '🧑🏽‍🦯‍➡' => 'persoon met taststok naar rechts gericht',
-    '🧑🏾‍🦯‍➡' => 'persoon met taststok naar rechts gericht',
-    '🧑🏿‍🦯‍➡' => 'persoon met taststok naar rechts gericht',
-    '👨🏻‍🦯‍➡' => 'man met taststok naar rechts gericht',
-    '👨🏼‍🦯‍➡' => 'man met taststok naar rechts gericht',
-    '👨🏽‍🦯‍➡' => 'man met taststok naar rechts gericht',
-    '👨🏾‍🦯‍➡' => 'man met taststok naar rechts gericht',
-    '👨🏿‍🦯‍➡' => 'man met taststok naar rechts gericht',
-    '👩🏻‍🦯‍➡' => 'vrouw met taststok naar rechts gericht',
-    '👩🏼‍🦯‍➡' => 'vrouw met taststok naar rechts gericht',
-    '👩🏽‍🦯‍➡' => 'vrouw met taststok naar rechts gericht',
-    '👩🏾‍🦯‍➡' => 'vrouw met taststok naar rechts gericht',
-    '👩🏿‍🦯‍➡' => 'vrouw met taststok naar rechts gericht',
-    '🧑🏻‍🦼‍➡' => 'persoon in elektrische rolstoel naar rechts gericht',
-    '🧑🏼‍🦼‍➡' => 'persoon in elektrische rolstoel naar rechts gericht',
-    '🧑🏽‍🦼‍➡' => 'persoon in elektrische rolstoel naar rechts gericht',
-    '🧑🏾‍🦼‍➡' => 'persoon in elektrische rolstoel naar rechts gericht',
-    '🧑🏿‍🦼‍➡' => 'persoon in elektrische rolstoel naar rechts gericht',
-    '👨🏻‍🦼‍➡' => 'man in elektrische rolstoel naar rechts gericht',
-    '👨🏼‍🦼‍➡' => 'man in elektrische rolstoel naar rechts gericht',
-    '👨🏽‍🦼‍➡' => 'man in elektrische rolstoel naar rechts gericht',
-    '👨🏾‍🦼‍➡' => 'man in elektrische rolstoel naar rechts gericht',
-    '👨🏿‍🦼‍➡' => 'man in elektrische rolstoel naar rechts gericht',
-    '👩🏻‍🦼‍➡' => 'vrouw in elektrische rolstoel naar rechts gericht',
-    '👩🏼‍🦼‍➡' => 'vrouw in elektrische rolstoel naar rechts gericht',
-    '👩🏽‍🦼‍➡' => 'vrouw in elektrische rolstoel naar rechts gericht',
-    '👩🏾‍🦼‍➡' => 'vrouw in elektrische rolstoel naar rechts gericht',
-    '👩🏿‍🦼‍➡' => 'vrouw in elektrische rolstoel naar rechts gericht',
-    '🧑🏻‍🦽‍➡' => 'persoon in rolstoel naar rechts gericht',
-    '🧑🏼‍🦽‍➡' => 'persoon in rolstoel naar rechts gericht',
-    '🧑🏽‍🦽‍➡' => 'persoon in rolstoel naar rechts gericht',
-    '🧑🏾‍🦽‍➡' => 'persoon in rolstoel naar rechts gericht',
-    '🧑🏿‍🦽‍➡' => 'persoon in rolstoel naar rechts gericht',
-    '👨🏻‍🦽‍➡' => 'man in rolstoel naar rechts gericht',
-    '👨🏼‍🦽‍➡' => 'man in rolstoel naar rechts gericht',
-    '👨🏽‍🦽‍➡' => 'man in rolstoel naar rechts gericht',
-    '👨🏾‍🦽‍➡' => 'man in rolstoel naar rechts gericht',
-    '👨🏿‍🦽‍➡' => 'man in rolstoel naar rechts gericht',
-    '👩🏻‍🦽‍➡' => 'vrouw in rolstoel naar rechts gericht',
-    '👩🏼‍🦽‍➡' => 'vrouw in rolstoel naar rechts gericht',
-    '👩🏽‍🦽‍➡' => 'vrouw in rolstoel naar rechts gericht',
-    '👩🏾‍🦽‍➡' => 'vrouw in rolstoel naar rechts gericht',
-    '👩🏿‍🦽‍➡' => 'vrouw in rolstoel naar rechts gericht',
-    '🏃🏻‍♀‍➡' => 'rennende vrouw naar rechts gericht',
-    '🏃🏼‍♀‍➡' => 'rennende vrouw naar rechts gericht',
-    '🏃🏽‍♀‍➡' => 'rennende vrouw naar rechts gericht',
-    '🏃🏾‍♀‍➡' => 'rennende vrouw naar rechts gericht',
-    '🏃🏿‍♀‍➡' => 'rennende vrouw naar rechts gericht',
-    '🏃🏻‍♂‍➡' => 'rennende man naar rechts gericht',
-    '🏃🏼‍♂‍➡' => 'rennende man naar rechts gericht',
-    '🏃🏽‍♂‍➡' => 'rennende man naar rechts gericht',
-    '🏃🏾‍♂‍➡' => 'rennende man naar rechts gericht',
-    '🏃🏿‍♂‍➡' => 'rennende man naar rechts gericht',
+    '🚶🏻‍♀‍➡' => 'wandelende vrouw: lichte huidskleur, naar rechts gericht',
+    '🚶🏼‍♀‍➡' => 'wandelende vrouw: lichtgetinte huidskleur, naar rechts gericht',
+    '🚶🏽‍♀‍➡' => 'wandelende vrouw: getinte huidskleur, naar rechts gericht',
+    '🚶🏾‍♀‍➡' => 'wandelende vrouw: donkergetinte huidskleur, naar rechts gericht',
+    '🚶🏿‍♀‍➡' => 'wandelende vrouw: donkere huidskleur, naar rechts gericht',
+    '🚶🏻‍♂‍➡' => 'wandelende man: lichte huidskleur, naar rechts gericht',
+    '🚶🏼‍♂‍➡' => 'wandelende man: lichtgetinte huidskleur, naar rechts gericht',
+    '🚶🏽‍♂‍➡' => 'wandelende man: getinte huidskleur, naar rechts gericht',
+    '🚶🏾‍♂‍➡' => 'wandelende man: donkergetinte huidskleur, naar rechts gericht',
+    '🚶🏿‍♂‍➡' => 'wandelende man: donkere huidskleur, naar rechts gericht',
+    '🧎🏻‍♀‍➡' => 'knielende vrouw: lichte huidskleur, naar rechts gericht',
+    '🧎🏼‍♀‍➡' => 'knielende vrouw: lichtgetinte huidskleur, naar rechts gericht',
+    '🧎🏽‍♀‍➡' => 'knielende vrouw: getinte huidskleur, naar rechts gericht',
+    '🧎🏾‍♀‍➡' => 'knielende vrouw: donkergetinte huidskleur, naar rechts gericht',
+    '🧎🏿‍♀‍➡' => 'knielende vrouw: donkere huidskleur, naar rechts gericht',
+    '🧎🏻‍♂‍➡' => 'knielende man: lichte huidskleur, naar rechts gericht',
+    '🧎🏼‍♂‍➡' => 'knielende man: lichtgetinte huidskleur, naar rechts gericht',
+    '🧎🏽‍♂‍➡' => 'knielende man: getinte huidskleur, naar rechts gericht',
+    '🧎🏾‍♂‍➡' => 'knielende man: donkergetinte huidskleur, naar rechts gericht',
+    '🧎🏿‍♂‍➡' => 'knielende man: donkere huidskleur, naar rechts gericht',
+    '🧑🏻‍🦯‍➡' => 'persoon met taststok: lichte huidskleur, naar rechts gericht',
+    '🧑🏼‍🦯‍➡' => 'persoon met taststok: lichtgetinte huidskleur, naar rechts gericht',
+    '🧑🏽‍🦯‍➡' => 'persoon met taststok: getinte huidskleur, naar rechts gericht',
+    '🧑🏾‍🦯‍➡' => 'persoon met taststok: donkergetinte huidskleur, naar rechts gericht',
+    '🧑🏿‍🦯‍➡' => 'persoon met taststok: donkere huidskleur, naar rechts gericht',
+    '👨🏻‍🦯‍➡' => 'man met taststok: lichte huidskleur, naar rechts gericht',
+    '👨🏼‍🦯‍➡' => 'man met taststok: lichtgetinte huidskleur, naar rechts gericht',
+    '👨🏽‍🦯‍➡' => 'man met taststok: getinte huidskleur, naar rechts gericht',
+    '👨🏾‍🦯‍➡' => 'man met taststok: donkergetinte huidskleur, naar rechts gericht',
+    '👨🏿‍🦯‍➡' => 'man met taststok: donkere huidskleur, naar rechts gericht',
+    '👩🏻‍🦯‍➡' => 'vrouw met taststok: lichte huidskleur, naar rechts gericht',
+    '👩🏼‍🦯‍➡' => 'vrouw met taststok: lichtgetinte huidskleur, naar rechts gericht',
+    '👩🏽‍🦯‍➡' => 'vrouw met taststok: getinte huidskleur, naar rechts gericht',
+    '👩🏾‍🦯‍➡' => 'vrouw met taststok: donkergetinte huidskleur, naar rechts gericht',
+    '👩🏿‍🦯‍➡' => 'vrouw met taststok: donkere huidskleur, naar rechts gericht',
+    '🧑🏻‍🦼‍➡' => 'persoon in elektrische rolstoel: lichte huidskleur, naar rechts gericht',
+    '🧑🏼‍🦼‍➡' => 'persoon in elektrische rolstoel: lichtgetinte huidskleur, naar rechts gericht',
+    '🧑🏽‍🦼‍➡' => 'persoon in elektrische rolstoel: getinte huidskleur, naar rechts gericht',
+    '🧑🏾‍🦼‍➡' => 'persoon in elektrische rolstoel: donkergetinte huidskleur, naar rechts gericht',
+    '🧑🏿‍🦼‍➡' => 'persoon in elektrische rolstoel: donkere huidskleur, naar rechts gericht',
+    '👨🏻‍🦼‍➡' => 'man in elektrische rolstoel: lichte huidskleur, naar rechts gericht',
+    '👨🏼‍🦼‍➡' => 'man in elektrische rolstoel: lichtgetinte huidskleur, naar rechts gericht',
+    '👨🏽‍🦼‍➡' => 'man in elektrische rolstoel: getinte huidskleur, naar rechts gericht',
+    '👨🏾‍🦼‍➡' => 'man in elektrische rolstoel: donkergetinte huidskleur, naar rechts gericht',
+    '👨🏿‍🦼‍➡' => 'man in elektrische rolstoel: donkere huidskleur, naar rechts gericht',
+    '👩🏻‍🦼‍➡' => 'vrouw in elektrische rolstoel: lichte huidskleur, naar rechts gericht',
+    '👩🏼‍🦼‍➡' => 'vrouw in elektrische rolstoel: lichtgetinte huidskleur, naar rechts gericht',
+    '👩🏽‍🦼‍➡' => 'vrouw in elektrische rolstoel: getinte huidskleur, naar rechts gericht',
+    '👩🏾‍🦼‍➡' => 'vrouw in elektrische rolstoel: donkergetinte huidskleur, naar rechts gericht',
+    '👩🏿‍🦼‍➡' => 'vrouw in elektrische rolstoel: donkere huidskleur, naar rechts gericht',
+    '🧑🏻‍🦽‍➡' => 'persoon in rolstoel: lichte huidskleur, naar rechts gericht',
+    '🧑🏼‍🦽‍➡' => 'persoon in rolstoel: lichtgetinte huidskleur, naar rechts gericht',
+    '🧑🏽‍🦽‍➡' => 'persoon in rolstoel: getinte huidskleur, naar rechts gericht',
+    '🧑🏾‍🦽‍➡' => 'persoon in rolstoel: donkergetinte huidskleur, naar rechts gericht',
+    '🧑🏿‍🦽‍➡' => 'persoon in rolstoel: donkere huidskleur, naar rechts gericht',
+    '👨🏻‍🦽‍➡' => 'man in rolstoel: lichte huidskleur, naar rechts gericht',
+    '👨🏼‍🦽‍➡' => 'man in rolstoel: lichtgetinte huidskleur, naar rechts gericht',
+    '👨🏽‍🦽‍➡' => 'man in rolstoel: getinte huidskleur, naar rechts gericht',
+    '👨🏾‍🦽‍➡' => 'man in rolstoel: donkergetinte huidskleur, naar rechts gericht',
+    '👨🏿‍🦽‍➡' => 'man in rolstoel: donkere huidskleur, naar rechts gericht',
+    '👩🏻‍🦽‍➡' => 'vrouw in rolstoel: lichte huidskleur, naar rechts gericht',
+    '👩🏼‍🦽‍➡' => 'vrouw in rolstoel: lichtgetinte huidskleur, naar rechts gericht',
+    '👩🏽‍🦽‍➡' => 'vrouw in rolstoel: getinte huidskleur, naar rechts gericht',
+    '👩🏾‍🦽‍➡' => 'vrouw in rolstoel: donkergetinte huidskleur, naar rechts gericht',
+    '👩🏿‍🦽‍➡' => 'vrouw in rolstoel: donkere huidskleur, naar rechts gericht',
+    '🏃🏻‍♀‍➡' => 'rennende vrouw: lichte huidskleur, naar rechts gericht',
+    '🏃🏼‍♀‍➡' => 'rennende vrouw: lichtgetinte huidskleur, naar rechts gericht',
+    '🏃🏽‍♀‍➡' => 'rennende vrouw: getinte huidskleur, naar rechts gericht',
+    '🏃🏾‍♀‍➡' => 'rennende vrouw: donkergetinte huidskleur, naar rechts gericht',
+    '🏃🏿‍♀‍➡' => 'rennende vrouw: donkere huidskleur, naar rechts gericht',
+    '🏃🏻‍♂‍➡' => 'rennende man: lichte huidskleur, naar rechts gericht',
+    '🏃🏼‍♂‍➡' => 'rennende man: lichtgetinte huidskleur, naar rechts gericht',
+    '🏃🏽‍♂‍➡' => 'rennende man: getinte huidskleur, naar rechts gericht',
+    '🏃🏾‍♂‍➡' => 'rennende man: donkergetinte huidskleur, naar rechts gericht',
+    '🏃🏿‍♂‍➡' => 'rennende man: donkere huidskleur, naar rechts gericht',
     '🫱🏻‍🫲🏼' => 'handdruk: lichte huidskleur, lichtgetinte huidskleur',
     '🫱🏻‍🫲🏽' => 'handdruk: lichte huidskleur, getinte huidskleur',
     '🫱🏻‍🫲🏾' => 'handdruk: lichte huidskleur, donkergetinte huidskleur',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handdruk: donkere huidskleur, lichtgetinte huidskleur',
     '🫱🏿‍🫲🏽' => 'handdruk: donkere huidskleur, getinte huidskleur',
     '🫱🏿‍🫲🏾' => 'handdruk: donkere huidskleur, donkergetinte huidskleur',
-    '🚶‍♀‍➡' => 'wandelende vrouw naar rechts gericht',
-    '🚶‍♂‍➡' => 'wandelende man naar rechts gericht',
-    '🧎‍♀‍➡' => 'knielende vrouw naar rechts gericht',
-    '🧎‍♂‍➡' => 'knielende man naar rechts gericht',
-    '🧑‍🦯‍➡' => 'persoon met taststok naar rechts gericht',
-    '👨‍🦯‍➡' => 'man met taststok naar rechts gericht',
-    '👩‍🦯‍➡' => 'vrouw met taststok naar rechts gericht',
-    '🧑‍🦼‍➡' => 'persoon in elektrische rolstoel naar rechts gericht',
-    '👨‍🦼‍➡' => 'man in elektrische rolstoel naar rechts gericht',
-    '👩‍🦼‍➡' => 'vrouw in elektrische rolstoel naar rechts gericht',
-    '🧑‍🦽‍➡' => 'persoon in rolstoel naar rechts gericht',
-    '👨‍🦽‍➡' => 'man in rolstoel naar rechts gericht',
-    '👩‍🦽‍➡' => 'vrouw in rolstoel naar rechts gericht',
-    '🏃‍♀‍➡' => 'rennende vrouw naar rechts gericht',
-    '🏃‍♂‍➡' => 'rennende man naar rechts gericht',
+    '🚶‍♀‍➡' => 'wandelende vrouw: naar rechts gericht',
+    '🚶‍♂‍➡' => 'wandelende man: naar rechts gericht',
+    '🧎‍♀‍➡' => 'knielende vrouw: naar rechts gericht',
+    '🧎‍♂‍➡' => 'knielende man: naar rechts gericht',
+    '🧑‍🦯‍➡' => 'persoon met taststok: naar rechts gericht',
+    '👨‍🦯‍➡' => 'man met taststok: naar rechts gericht',
+    '👩‍🦯‍➡' => 'vrouw met taststok: naar rechts gericht',
+    '🧑‍🦼‍➡' => 'persoon in elektrische rolstoel: naar rechts gericht',
+    '👨‍🦼‍➡' => 'man in elektrische rolstoel: naar rechts gericht',
+    '👩‍🦼‍➡' => 'vrouw in elektrische rolstoel: naar rechts gericht',
+    '🧑‍🦽‍➡' => 'persoon in rolstoel: naar rechts gericht',
+    '👨‍🦽‍➡' => 'man in rolstoel: naar rechts gericht',
+    '👩‍🦽‍➡' => 'vrouw in rolstoel: naar rechts gericht',
+    '🏃‍♀‍➡' => 'rennende vrouw: naar rechts gericht',
+    '🏃‍♂‍➡' => 'rennende man: naar rechts gericht',
     '👩‍❤‍👨' => 'stel met hart: vrouw, man',
     '👨‍❤‍👨' => 'stel met hart: man, man',
     '👩‍❤‍👩' => 'stel met hart: vrouw, vrouw',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'volwassene: getinte huidskleur, kaal',
     '🧑🏾‍🦲' => 'volwassene: donkergetinte huidskleur, kaal',
     '🧑🏿‍🦲' => 'volwassene: donkere huidskleur, kaal',
+    '🧑🏻‍🩰' => 'balletdanser: lichte huidskleur',
+    '🧑🏼‍🩰' => 'balletdanser: lichtgetinte huidskleur',
+    '🧑🏽‍🩰' => 'balletdanser: getinte huidskleur',
+    '🧑🏾‍🩰' => 'balletdanser: donkergetinte huidskleur',
+    '🧑🏿‍🩰' => 'balletdanser: donkere huidskleur',
     '🧔🏻‍♂' => 'man: lichte huidskleur, baard',
     '🧔🏼‍♂' => 'man: lichtgetinte huidskleur, baard',
     '🧔🏽‍♂' => 'man: getinte huidskleur, baard',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'wandelende vrouw: getinte huidskleur',
     '🚶🏾‍♀' => 'wandelende vrouw: donkergetinte huidskleur',
     '🚶🏿‍♀' => 'wandelende vrouw: donkere huidskleur',
-    '🚶🏻‍➡' => 'voetganger naar rechts gericht',
-    '🚶🏼‍➡' => 'voetganger naar rechts gericht',
-    '🚶🏽‍➡' => 'voetganger naar rechts gericht',
-    '🚶🏾‍➡' => 'voetganger naar rechts gericht',
-    '🚶🏿‍➡' => 'voetganger naar rechts gericht',
+    '🚶🏻‍➡' => 'voetganger: lichte huidskleur, naar rechts gericht',
+    '🚶🏼‍➡' => 'voetganger: lichtgetinte huidskleur, naar rechts gericht',
+    '🚶🏽‍➡' => 'voetganger: getinte huidskleur, naar rechts gericht',
+    '🚶🏾‍➡' => 'voetganger: donkergetinte huidskleur, naar rechts gericht',
+    '🚶🏿‍➡' => 'voetganger: donkere huidskleur, naar rechts gericht',
     '🧍🏻‍♂' => 'staande man: lichte huidskleur',
     '🧍🏼‍♂' => 'staande man: lichtgetinte huidskleur',
     '🧍🏽‍♂' => 'staande man: getinte huidskleur',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'knielende vrouw: getinte huidskleur',
     '🧎🏾‍♀' => 'knielende vrouw: donkergetinte huidskleur',
     '🧎🏿‍♀' => 'knielende vrouw: donkere huidskleur',
-    '🧎🏻‍➡' => 'knielende persoon naar rechts gericht',
-    '🧎🏼‍➡' => 'knielende persoon naar rechts gericht',
-    '🧎🏽‍➡' => 'knielende persoon naar rechts gericht',
-    '🧎🏾‍➡' => 'knielende persoon naar rechts gericht',
-    '🧎🏿‍➡' => 'knielende persoon naar rechts gericht',
+    '🧎🏻‍➡' => 'knielende persoon: lichte huidskleur, naar rechts gericht',
+    '🧎🏼‍➡' => 'knielende persoon: lichtgetinte huidskleur, naar rechts gericht',
+    '🧎🏽‍➡' => 'knielende persoon: getinte huidskleur, naar rechts gericht',
+    '🧎🏾‍➡' => 'knielende persoon: donkergetinte huidskleur, naar rechts gericht',
+    '🧎🏿‍➡' => 'knielende persoon: donkere huidskleur, naar rechts gericht',
     '🧑🏻‍🦯' => 'persoon met taststok: lichte huidskleur',
     '🧑🏼‍🦯' => 'persoon met taststok: lichtgetinte huidskleur',
     '🧑🏽‍🦯' => 'persoon met taststok: getinte huidskleur',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'rennende vrouw: getinte huidskleur',
     '🏃🏾‍♀' => 'rennende vrouw: donkergetinte huidskleur',
     '🏃🏿‍♀' => 'rennende vrouw: donkere huidskleur',
-    '🏃🏻‍➡' => 'hardloper naar rechts gericht',
-    '🏃🏼‍➡' => 'hardloper naar rechts gericht',
-    '🏃🏽‍➡' => 'hardloper naar rechts gericht',
-    '🏃🏾‍➡' => 'hardloper naar rechts gericht',
-    '🏃🏿‍➡' => 'hardloper naar rechts gericht',
+    '🏃🏻‍➡' => 'hardloper: lichte huidskleur, naar rechts gericht',
+    '🏃🏼‍➡' => 'hardloper: lichtgetinte huidskleur, naar rechts gericht',
+    '🏃🏽‍➡' => 'hardloper: getinte huidskleur, naar rechts gericht',
+    '🏃🏾‍➡' => 'hardloper: donkergetinte huidskleur, naar rechts gericht',
+    '🏃🏿‍➡' => 'hardloper: donkere huidskleur, naar rechts gericht',
+    '👯🏻‍♀' => 'vrouwen met konijnenoren: lichte huidskleur',
+    '👯🏼‍♀' => 'vrouwen met konijnenoren: lichtgetinte huidskleur',
+    '👯🏽‍♀' => 'vrouwen met konijnenoren: getinte huidskleur',
+    '👯🏾‍♀' => 'vrouwen met konijnenoren: donkergetinte huidskleur',
+    '👯🏿‍♀' => 'vrouwen met konijnenoren: donkere huidskleur',
+    '👯🏻‍♂' => 'mannen met konijnenoren: lichte huidskleur',
+    '👯🏼‍♂' => 'mannen met konijnenoren: lichtgetinte huidskleur',
+    '👯🏽‍♂' => 'mannen met konijnenoren: getinte huidskleur',
+    '👯🏾‍♂' => 'mannen met konijnenoren: donkergetinte huidskleur',
+    '👯🏿‍♂' => 'mannen met konijnenoren: donkere huidskleur',
     '🧖🏻‍♂' => 'man in ruimte vol stoom: lichte huidskleur',
     '🧖🏼‍♂' => 'man in ruimte vol stoom: lichtgetinte huidskleur',
     '🧖🏽‍♂' => 'man in ruimte vol stoom: getinte huidskleur',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'vrouw die een radslag doet: getinte huidskleur',
     '🤸🏾‍♀' => 'vrouw die een radslag doet: donkergetinte huidskleur',
     '🤸🏿‍♀' => 'vrouw die een radslag doet: donkere huidskleur',
+    '🤼🏻‍♀' => 'worstelende vrouwen: lichte huidskleur',
+    '🤼🏼‍♀' => 'worstelende vrouwen: lichtgetinte huidskleur',
+    '🤼🏽‍♀' => 'worstelende vrouwen: getinte huidskleur',
+    '🤼🏾‍♀' => 'worstelende vrouwen: donkergetinte huidskleur',
+    '🤼🏿‍♀' => 'worstelende vrouwen: donkere huidskleur',
+    '🤼🏻‍♂' => 'worstelende mannen: lichte huidskleur',
+    '🤼🏼‍♂' => 'worstelende mannen: lichtgetinte huidskleur',
+    '🤼🏽‍♂' => 'worstelende mannen: getinte huidskleur',
+    '🤼🏾‍♂' => 'worstelende mannen: donkergetinte huidskleur',
+    '🤼🏿‍♂' => 'worstelende mannen: donkere huidskleur',
     '🤽🏻‍♂' => 'man die waterpolo speelt: lichte huidskleur',
     '🤽🏼‍♂' => 'man die waterpolo speelt: lichtgetinte huidskleur',
     '🤽🏽‍♂' => 'man die waterpolo speelt: getinte huidskleur',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'vrouw: krullend haar',
     '👩‍🦳' => 'vrouw: wit haar',
     '👩‍🦲' => 'vrouw: kaal',
-    '🚶‍➡' => 'voetganger naar rechts gericht',
-    '🧎‍➡' => 'knielende persoon naar rechts gericht',
-    '🏃‍➡' => 'hardloper naar rechts gericht',
+    '🚶‍➡' => 'voetganger: naar rechts gericht',
+    '🧎‍➡' => 'knielende persoon: naar rechts gericht',
+    '🏃‍➡' => 'hardloper: naar rechts gericht',
     '👨‍👦' => 'gezin: man, jongen',
     '👨‍👧' => 'gezin: man, meisje',
     '👩‍👦' => 'gezin: vrouw, jongen',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'vrouw in rolstoel',
     '🏃‍♂' => 'rennende man',
     '🏃‍♀' => 'rennende vrouw',
+    '🧑‍🩰' => 'balletdanser',
     '👯‍♂' => 'mannen met konijnenoren',
     '👯‍♀' => 'vrouwen met konijnenoren',
     '🧖‍♂' => 'man in ruimte vol stoom',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'zwevende man in pak: getinte huidskleur',
     '🕴🏾' => 'zwevende man in pak: donkergetinte huidskleur',
     '🕴🏿' => 'zwevende man in pak: donkere huidskleur',
+    '👯🏻' => 'mensen met konijnenoren: lichte huidskleur',
+    '👯🏼' => 'mensen met konijnenoren: lichtgetinte huidskleur',
+    '👯🏽' => 'mensen met konijnenoren: getinte huidskleur',
+    '👯🏾' => 'mensen met konijnenoren: donkergetinte huidskleur',
+    '👯🏿' => 'mensen met konijnenoren: donkere huidskleur',
     '🧖🏻' => 'persoon in ruimte vol stoom: lichte huidskleur',
     '🧖🏼' => 'persoon in ruimte vol stoom: lichtgetinte huidskleur',
     '🧖🏽' => 'persoon in ruimte vol stoom: getinte huidskleur',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persoon die een radslag doet: getinte huidskleur',
     '🤸🏾' => 'persoon die een radslag doet: donkergetinte huidskleur',
     '🤸🏿' => 'persoon die een radslag doet: donkere huidskleur',
+    '🤼🏻' => 'personen die worstelen: lichte huidskleur',
+    '🤼🏼' => 'personen die worstelen: lichtgetinte huidskleur',
+    '🤼🏽' => 'personen die worstelen: getinte huidskleur',
+    '🤼🏾' => 'personen die worstelen: donkergetinte huidskleur',
+    '🤼🏿' => 'personen die worstelen: donkere huidskleur',
     '🤽🏻' => 'persoon die waterpolo speelt: lichte huidskleur',
     '🤽🏼' => 'persoon die waterpolo speelt: lichtgetinte huidskleur',
     '🤽🏽' => 'persoon die waterpolo speelt: getinte huidskleur',
@@ -2391,13 +2547,6 @@
     '🏽' => 'getinte huidskleur',
     '🏾' => 'donkergetinte huidskleur',
     '🏿' => 'donkere huidskleur',
-    '🪉' => 'harp',
-    '🪏' => 'schop',
-    '🪾' => 'boom zonder bladeren',
-    '🫆' => 'vingerafdruk',
-    '🫜' => 'knol',
-    '🫟' => 'Gespat',
-    '🫩' => 'gezicht met wallen onder de ogen',
     '😀' => 'grijnzend gezicht',
     '😃' => 'grijnzend gezicht met grote ogen',
     '😄' => 'grijnzend gezicht met lachende ogen',
@@ -2451,6 +2600,7 @@
     '😪' => 'slaperig gezicht',
     '🤤' => 'kwijlend gezicht',
     '😴' => 'slapend gezicht',
+    '🫩' => 'gezicht met wallen onder de ogen',
     '😷' => 'gezicht met doktersmasker',
     '🤒' => 'gezicht met thermometer',
     '🤕' => 'gezicht met een verband om het hoofd',
@@ -2477,6 +2627,7 @@
     '😯' => 'verstomd gezicht',
     '😲' => 'verbaasd gezicht',
     '😳' => 'blozend gezicht',
+    '🫪' => 'verwrongen gezicht',
     '🥺' => 'smekend gezicht',
     '🥹' => 'gezicht dat tranen tegenhoudt',
     '😦' => 'fronsend gezicht met open mond',
@@ -2548,6 +2699,7 @@
     '💋' => 'lipafdruk',
     '💯' => 'maximumscore',
     '💢' => 'woedesymbool',
+    '🫯' => 'vechtwolk',
     '💥' => 'botsing',
     '💫' => 'duizelig',
     '💦' => 'zweetdruppels',
@@ -2671,6 +2823,7 @@
     '🧞' => 'geest in de fles',
     '🧟' => 'zombie',
     '🧌' => 'trol',
+    '🫈' => 'harig wezen',
     '💆' => 'persoon die hoofdmassage krijgt',
     '💇' => 'persoon die wordt geknipt',
     '🚶' => 'voetganger',
@@ -2714,6 +2867,7 @@
     '🫂' => 'personen in een omhelzing',
     '👪' => 'gezin',
     '👣' => 'voetafdrukken',
+    '🫆' => 'vingerafdruk',
     '🦰' => 'rood haar',
     '🦱' => 'krullend haar',
     '🦳' => 'wit haar',
@@ -2813,6 +2967,7 @@
     '🐳' => 'spuitende walvis',
     '🐋' => 'walvis',
     '🐬' => 'dolfijn',
+    '🫍' => 'orka',
     '🦭' => 'zeehond',
     '🐟' => 'vis',
     '🐠' => 'tropische vis',
@@ -2822,6 +2977,11 @@
     '🐚' => 'schelp',
     '🪸' => 'koraal',
     '🪼' => 'kwal',
+    '🦀' => 'krab',
+    '🦞' => 'kreeft',
+    '🦐' => 'garnaal',
+    '🦑' => 'inktvis',
+    '🦪' => 'oester',
     '🐌' => 'slak',
     '🦋' => 'vlinder',
     '🐛' => 'insect',
@@ -2866,6 +3026,7 @@
     '🪹' => 'leeg nest',
     '🪺' => 'nest met eieren',
     '🍄' => 'paddenstoel',
+    '🪾' => 'boom zonder bladeren',
     '🍇' => 'druiven',
     '🍈' => 'meloen',
     '🍉' => 'watermeloen',
@@ -2902,6 +3063,7 @@
     '🌰' => 'kastanje',
     '🫚' => 'gemberwortel',
     '🫛' => 'erwtendop',
+    '🫜' => 'knol',
     '🍞' => 'brood',
     '🥐' => 'croissant',
     '🥖' => 'stokbrood',
@@ -2953,11 +3115,6 @@
     '🥟' => 'knoedel',
     '🥠' => 'gelukskoekje',
     '🥡' => 'afhaalmaaltijd',
-    '🦀' => 'krab',
-    '🦞' => 'kreeft',
-    '🦐' => 'garnaal',
-    '🦑' => 'inktvis',
-    '🦪' => 'oester',
     '🍦' => 'softijs',
     '🍧' => 'geschaafd ijs',
     '🍨' => 'ijs',
@@ -3008,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'berg met besneeuwde toppen',
     '⛰' => 'berg',
+    '🛘' => 'aardverschuiving',
     '🌋' => 'vulkaan',
     '🗻' => 'berg Fuji',
     '🏕' => 'kamperen',
@@ -3368,16 +3526,18 @@
     '🎧' => 'hoofdtelefoon',
     '📻' => 'radio',
     '🎷' => 'saxofoon',
+    '🎺' => 'trompet',
+    '🪊' => 'trombone',
     '🪗' => 'accordeon',
     '🎸' => 'gitaar',
     '🎹' => 'piano',
-    '🎺' => 'trompet',
     '🎻' => 'viool',
     '🪕' => 'banjo',
     '🥁' => 'trommel',
     '🪘' => 'hoge trom',
     '🪇' => 'sambaballen',
     '🪈' => 'fluit',
+    '🪉' => 'harp',
     '📱' => 'mobiele telefoon',
     '📲' => 'mobiel met pijl',
     '☎' => 'telefoon',
@@ -3431,8 +3591,9 @@
     '📑' => 'bladwijzertabs',
     '🔖' => 'bladwijzer',
     '🏷' => 'label',
-    '💰' => 'zak met geld',
     '🪙' => 'munt',
+    '💰' => 'zak met geld',
+    '🪎' => 'schatkist',
     '💴' => 'yenbiljet',
     '💵' => 'dollarbiljet',
     '💶' => 'eurobiljet',
@@ -3515,6 +3676,7 @@
     '🧰' => 'gereedschapskist',
     '🧲' => 'magneet',
     '🪜' => 'ladder',
+    '🪏' => 'schop',
     '⚗' => 'distilleerkolf',
     '🧪' => 'reageerbuis',
     '🧫' => 'petrischaal',
@@ -3698,6 +3860,7 @@
     '✴' => 'achtpuntige ster',
     '❇' => 'sprankeling',
     '™' => 'handelsmerksymbool',
+    '🫟' => 'Gespat',
     '🔠' => 'hoofdletters',
     '🔡' => 'kleine letters',
     '🔢' => 'cijfers',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nn.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,26 @@
     '🧑🏿‍❤‍💋‍🧑🏼' => 'kyss: vaksen, vaksen, hudtype 6, hudtype 3',
     '🧑🏿‍❤‍💋‍🧑🏽' => 'kyss: vaksen, vaksen, hudtype 6, hudtype 4',
     '🧑🏿‍❤‍💋‍🧑🏾' => 'kyss: vaksen, vaksen, hudtype 6, hudtype 5',
+    '🧑🏻‍🫯‍🧑🏼' => 'brytarar: hudtype 1–2, hudtype 3',
+    '🧑🏻‍🫯‍🧑🏽' => 'brytarar: hudtype 1–2, hudtype 4',
+    '🧑🏻‍🫯‍🧑🏾' => 'brytarar: hudtype 1–2, hudtype 5',
+    '🧑🏻‍🫯‍🧑🏿' => 'brytarar: hudtype 1–2, hudtype 6',
+    '🧑🏼‍🫯‍🧑🏻' => 'brytarar: hudtype 3, hudtype 1–2',
+    '🧑🏼‍🫯‍🧑🏽' => 'brytarar: hudtype 3, hudtype 4',
+    '🧑🏼‍🫯‍🧑🏾' => 'brytarar: hudtype 3, hudtype 5',
+    '🧑🏼‍🫯‍🧑🏿' => 'brytarar: hudtype 3, hudtype 6',
+    '🧑🏽‍🫯‍🧑🏻' => 'brytarar: hudtype 4, hudtype 1–2',
+    '🧑🏽‍🫯‍🧑🏼' => 'brytarar: hudtype 4, hudtype 3',
+    '🧑🏽‍🫯‍🧑🏾' => 'brytarar: hudtype 4, hudtype 5',
+    '🧑🏽‍🫯‍🧑🏿' => 'brytarar: hudtype 4, hudtype 6',
+    '🧑🏾‍🫯‍🧑🏻' => 'brytarar: hudtype 5, hudtype 1–2',
+    '🧑🏾‍🫯‍🧑🏼' => 'brytarar: hudtype 5, hudtype 3',
+    '🧑🏾‍🫯‍🧑🏽' => 'brytarar: hudtype 5, hudtype 4',
+    '🧑🏾‍🫯‍🧑🏿' => 'brytarar: hudtype 5, hudtype 6',
+    '🧑🏿‍🫯‍🧑🏻' => 'brytarar: hudtype 6, hudtype 1–2',
+    '🧑🏿‍🫯‍🧑🏼' => 'brytarar: hudtype 6, hudtype 3',
+    '🧑🏿‍🫯‍🧑🏽' => 'brytarar: hudtype 6, hudtype 4',
+    '🧑🏿‍🫯‍🧑🏾' => 'brytarar: hudtype 6, hudtype 5',
     '🧑🏻‍❤‍🧑🏼' => 'par med hjarte: vaksen, vaksen, hudtype 1–2, hudtype 3',
     '🧑🏻‍❤‍🧑🏽' => 'par med hjarte: vaksen, vaksen, hudtype 1–2, hudtype 4',
     '🧑🏻‍❤‍🧑🏾' => 'par med hjarte: vaksen, vaksen, hudtype 1–2, hudtype 5',
@@ -41,6 +61,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par med hjarte: vaksen, vaksen, hudtype 6, hudtype 3',
     '🧑🏿‍❤‍🧑🏽' => 'par med hjarte: vaksen, vaksen, hudtype 6, hudtype 4',
     '🧑🏿‍❤‍🧑🏾' => 'par med hjarte: vaksen, vaksen, hudtype 6, hudtype 5',
+    '🧑🏻‍🐰‍🧑🏼' => 'personar med kaninøyre: hudtype 1–2, hudtype 3',
+    '🧑🏻‍🐰‍🧑🏽' => 'personar med kaninøyre: hudtype 1–2, hudtype 4',
+    '🧑🏻‍🐰‍🧑🏾' => 'personar med kaninøyre: hudtype 1–2, hudtype 5',
+    '🧑🏻‍🐰‍🧑🏿' => 'personar med kaninøyre: hudtype 1–2, hudtype 6',
+    '🧑🏼‍🐰‍🧑🏻' => 'personar med kaninøyre: hudtype 3, hudtype 1–2',
+    '🧑🏼‍🐰‍🧑🏽' => 'personar med kaninøyre: hudtype 3, hudtype 4',
+    '🧑🏼‍🐰‍🧑🏾' => 'personar med kaninøyre: hudtype 3, hudtype 5',
+    '🧑🏼‍🐰‍🧑🏿' => 'personar med kaninøyre: hudtype 3, hudtype 6',
+    '🧑🏽‍🐰‍🧑🏻' => 'personar med kaninøyre: hudtype 4, hudtype 1–2',
+    '🧑🏽‍🐰‍🧑🏼' => 'personar med kaninøyre: hudtype 4, hudtype 3',
+    '🧑🏽‍🐰‍🧑🏾' => 'personar med kaninøyre: hudtype 4, hudtype 5',
+    '🧑🏽‍🐰‍🧑🏿' => 'personar med kaninøyre: hudtype 4, hudtype 6',
+    '🧑🏾‍🐰‍🧑🏻' => 'personar med kaninøyre: hudtype 5, hudtype 1–2',
+    '🧑🏾‍🐰‍🧑🏼' => 'personar med kaninøyre: hudtype 5, hudtype 3',
+    '🧑🏾‍🐰‍🧑🏽' => 'personar med kaninøyre: hudtype 5, hudtype 4',
+    '🧑🏾‍🐰‍🧑🏿' => 'personar med kaninøyre: hudtype 5, hudtype 6',
+    '🧑🏿‍🐰‍🧑🏻' => 'personar med kaninøyre: hudtype 6, hudtype 1–2',
+    '🧑🏿‍🐰‍🧑🏼' => 'personar med kaninøyre: hudtype 6, hudtype 3',
+    '🧑🏿‍🐰‍🧑🏽' => 'personar med kaninøyre: hudtype 6, hudtype 4',
+    '🧑🏿‍🐰‍🧑🏾' => 'personar med kaninøyre: hudtype 6, hudtype 5',
+    '👨🏻‍🫯‍👨🏼' => 'mannlege brytarar: hudtype 1–2, hudtype 3',
+    '👨🏻‍🫯‍👨🏽' => 'mannlege brytarar: hudtype 1–2, hudtype 4',
+    '👨🏻‍🫯‍👨🏾' => 'mannlege brytarar: hudtype 1–2, hudtype 5',
+    '👨🏻‍🫯‍👨🏿' => 'mannlege brytarar: hudtype 1–2, hudtype 6',
+    '👨🏼‍🫯‍👨🏻' => 'mannlege brytarar: hudtype 3, hudtype 1–2',
+    '👨🏼‍🫯‍👨🏽' => 'mannlege brytarar: hudtype 3, hudtype 4',
+    '👨🏼‍🫯‍👨🏾' => 'mannlege brytarar: hudtype 3, hudtype 5',
+    '👨🏼‍🫯‍👨🏿' => 'mannlege brytarar: hudtype 3, hudtype 6',
+    '👨🏽‍🫯‍👨🏻' => 'mannlege brytarar: hudtype 4, hudtype 1–2',
+    '👨🏽‍🫯‍👨🏼' => 'mannlege brytarar: hudtype 4, hudtype 3',
+    '👨🏽‍🫯‍👨🏾' => 'mannlege brytarar: hudtype 4, hudtype 5',
+    '👨🏽‍🫯‍👨🏿' => 'mannlege brytarar: hudtype 4, hudtype 6',
+    '👨🏾‍🫯‍👨🏻' => 'mannlege brytarar: hudtype 5, hudtype 1–2',
+    '👨🏾‍🫯‍👨🏼' => 'mannlege brytarar: hudtype 5, hudtype 3',
+    '👨🏾‍🫯‍👨🏽' => 'mannlege brytarar: hudtype 5, hudtype 4',
+    '👨🏾‍🫯‍👨🏿' => 'mannlege brytarar: hudtype 5, hudtype 6',
+    '👨🏿‍🫯‍👨🏻' => 'mannlege brytarar: hudtype 6, hudtype 1–2',
+    '👨🏿‍🫯‍👨🏼' => 'mannlege brytarar: hudtype 6, hudtype 3',
+    '👨🏿‍🫯‍👨🏽' => 'mannlege brytarar: hudtype 6, hudtype 4',
+    '👨🏿‍🫯‍👨🏾' => 'mannlege brytarar: hudtype 6, hudtype 5',
     '👨🏻‍❤‍👨🏻' => 'par med hjarte: mann, mann, hudtype 1–2',
     '👨🏻‍❤‍👨🏼' => 'par med hjarte: mann, mann, hudtype 1–2, hudtype 3',
     '👨🏻‍❤‍👨🏽' => 'par med hjarte: mann, mann, hudtype 1–2, hudtype 4',
@@ -66,6 +126,46 @@
     '👨🏿‍❤‍👨🏽' => 'par med hjarte: mann, mann, hudtype 6, hudtype 4',
     '👨🏿‍❤‍👨🏾' => 'par med hjarte: mann, mann, hudtype 6, hudtype 5',
     '👨🏿‍❤‍👨🏿' => 'par med hjarte: mann, mann, hudtype 6',
+    '👨🏻‍🐰‍👨🏼' => 'menn med kaninøyre: hudtype 1–2, hudtype 3',
+    '👨🏻‍🐰‍👨🏽' => 'menn med kaninøyre: hudtype 1–2, hudtype 4',
+    '👨🏻‍🐰‍👨🏾' => 'menn med kaninøyre: hudtype 1–2, hudtype 5',
+    '👨🏻‍🐰‍👨🏿' => 'menn med kaninøyre: hudtype 1–2, hudtype 6',
+    '👨🏼‍🐰‍👨🏻' => 'menn med kaninøyre: hudtype 3, hudtype 1–2',
+    '👨🏼‍🐰‍👨🏽' => 'menn med kaninøyre: hudtype 3, hudtype 4',
+    '👨🏼‍🐰‍👨🏾' => 'menn med kaninøyre: hudtype 3, hudtype 5',
+    '👨🏼‍🐰‍👨🏿' => 'menn med kaninøyre: hudtype 3, hudtype 6',
+    '👨🏽‍🐰‍👨🏻' => 'menn med kaninøyre: hudtype 4, hudtype 1–2',
+    '👨🏽‍🐰‍👨🏼' => 'menn med kaninøyre: hudtype 4, hudtype 3',
+    '👨🏽‍🐰‍👨🏾' => 'menn med kaninøyre: hudtype 4, hudtype 5',
+    '👨🏽‍🐰‍👨🏿' => 'menn med kaninøyre: hudtype 4, hudtype 6',
+    '👨🏾‍🐰‍👨🏻' => 'menn med kaninøyre: hudtype 5, hudtype 1–2',
+    '👨🏾‍🐰‍👨🏼' => 'menn med kaninøyre: hudtype 5, hudtype 3',
+    '👨🏾‍🐰‍👨🏽' => 'menn med kaninøyre: hudtype 5, hudtype 4',
+    '👨🏾‍🐰‍👨🏿' => 'menn med kaninøyre: hudtype 5, hudtype 6',
+    '👨🏿‍🐰‍👨🏻' => 'menn med kaninøyre: hudtype 6, hudtype 1–2',
+    '👨🏿‍🐰‍👨🏼' => 'menn med kaninøyre: hudtype 6, hudtype 3',
+    '👨🏿‍🐰‍👨🏽' => 'menn med kaninøyre: hudtype 6, hudtype 4',
+    '👨🏿‍🐰‍👨🏾' => 'menn med kaninøyre: hudtype 6, hudtype 5',
+    '👩🏻‍🫯‍👩🏼' => 'kvinnelege brytarar: hudtype 1–2, hudtype 3',
+    '👩🏻‍🫯‍👩🏽' => 'kvinnelege brytarar: hudtype 1–2, hudtype 4',
+    '👩🏻‍🫯‍👩🏾' => 'kvinnelege brytarar: hudtype 1–2, hudtype 5',
+    '👩🏻‍🫯‍👩🏿' => 'kvinnelege brytarar: hudtype 1–2, hudtype 6',
+    '👩🏼‍🫯‍👩🏻' => 'kvinnelege brytarar: hudtype 3, hudtype 1–2',
+    '👩🏼‍🫯‍👩🏽' => 'kvinnelege brytarar: hudtype 3, hudtype 4',
+    '👩🏼‍🫯‍👩🏾' => 'kvinnelege brytarar: hudtype 3, hudtype 5',
+    '👩🏼‍🫯‍👩🏿' => 'kvinnelege brytarar: hudtype 3, hudtype 6',
+    '👩🏽‍🫯‍👩🏻' => 'kvinnelege brytarar: hudtype 4, hudtype 1–2',
+    '👩🏽‍🫯‍👩🏼' => 'kvinnelege brytarar: hudtype 4, hudtype 3',
+    '👩🏽‍🫯‍👩🏾' => 'kvinnelege brytarar: hudtype 4, hudtype 5',
+    '👩🏽‍🫯‍👩🏿' => 'kvinnelege brytarar: hudtype 4, hudtype 6',
+    '👩🏾‍🫯‍👩🏻' => 'kvinnelege brytarar: hudtype 5, hudtype 1–2',
+    '👩🏾‍🫯‍👩🏼' => 'kvinnelege brytarar: hudtype 5, hudtype 3',
+    '👩🏾‍🫯‍👩🏽' => 'kvinnelege brytarar: hudtype 5, hudtype 4',
+    '👩🏾‍🫯‍👩🏿' => 'kvinnelege brytarar: hudtype 5, hudtype 6',
+    '👩🏿‍🫯‍👩🏻' => 'kvinnelege brytarar: hudtype 6, hudtype 1–2',
+    '👩🏿‍🫯‍👩🏼' => 'kvinnelege brytarar: hudtype 6, hudtype 3',
+    '👩🏿‍🫯‍👩🏽' => 'kvinnelege brytarar: hudtype 6, hudtype 4',
+    '👩🏿‍🫯‍👩🏾' => 'kvinnelege brytarar: hudtype 6, hudtype 5',
     '👩🏻‍❤‍👨🏻' => 'par med hjarte: kvinne, mann, hudtype 1–2',
     '👩🏻‍❤‍👨🏼' => 'par med hjarte: kvinne, mann, hudtype 1–2, hudtype 3',
     '👩🏻‍❤‍👨🏽' => 'par med hjarte: kvinne, mann, hudtype 1–2, hudtype 4',
@@ -116,6 +216,26 @@
     '👩🏿‍❤‍👩🏽' => 'par med hjarte: kvinne, kvinne, hudtype 6, hudtype 4',
     '👩🏿‍❤‍👩🏾' => 'par med hjarte: kvinne, kvinne, hudtype 6, hudtype 5',
     '👩🏿‍❤‍👩🏿' => 'par med hjarte: kvinne, kvinne, hudtype 6',
+    '👩🏻‍🐰‍👩🏼' => 'kvinner med kaninøyre: hudtype 1–2, hudtype 3',
+    '👩🏻‍🐰‍👩🏽' => 'kvinner med kaninøyre: hudtype 1–2, hudtype 4',
+    '👩🏻‍🐰‍👩🏾' => 'kvinner med kaninøyre: hudtype 1–2, hudtype 5',
+    '👩🏻‍🐰‍👩🏿' => 'kvinner med kaninøyre: hudtype 1–2, hudtype 6',
+    '👩🏼‍🐰‍👩🏻' => 'kvinner med kaninøyre: hudtype 3, hudtype 1–2',
+    '👩🏼‍🐰‍👩🏽' => 'kvinner med kaninøyre: hudtype 3, hudtype 4',
+    '👩🏼‍🐰‍👩🏾' => 'kvinner med kaninøyre: hudtype 3, hudtype 5',
+    '👩🏼‍🐰‍👩🏿' => 'kvinner med kaninøyre: hudtype 3, hudtype 6',
+    '👩🏽‍🐰‍👩🏻' => 'kvinner med kaninøyre: hudtype 4, hudtype 1–2',
+    '👩🏽‍🐰‍👩🏼' => 'kvinner med kaninøyre: hudtype 4, hudtype 3',
+    '👩🏽‍🐰‍👩🏾' => 'kvinner med kaninøyre: hudtype 4, hudtype 5',
+    '👩🏽‍🐰‍👩🏿' => 'kvinner med kaninøyre: hudtype 4, hudtype 6',
+    '👩🏾‍🐰‍👩🏻' => 'kvinner med kaninøyre: hudtype 5, hudtype 1–2',
+    '👩🏾‍🐰‍👩🏼' => 'kvinner med kaninøyre: hudtype 5, hudtype 3',
+    '👩🏾‍🐰‍👩🏽' => 'kvinner med kaninøyre: hudtype 5, hudtype 4',
+    '👩🏾‍🐰‍👩🏿' => 'kvinner med kaninøyre: hudtype 5, hudtype 6',
+    '👩🏿‍🐰‍👩🏻' => 'kvinner med kaninøyre: hudtype 6, hudtype 1–2',
+    '👩🏿‍🐰‍👩🏼' => 'kvinner med kaninøyre: hudtype 6, hudtype 3',
+    '👩🏿‍🐰‍👩🏽' => 'kvinner med kaninøyre: hudtype 6, hudtype 4',
+    '👩🏿‍🐰‍👩🏾' => 'kvinner med kaninøyre: hudtype 6, hudtype 5',
     '🧑🏻‍🤝‍🧑🏻' => 'personar som leiar: hudtype 1–2',
     '🧑🏻‍🤝‍🧑🏼' => 'personar som leiar: hudtype 1–2, hudtype 3',
     '🧑🏻‍🤝‍🧑🏽' => 'personar som leiar: hudtype 1–2, hudtype 4',
@@ -208,81 +328,81 @@
     '👩‍👩‍👧‍👦' => 'familie: kvinne, kvinne, jente, gut',
     '👩‍👩‍👦‍👦' => 'familie: kvinne, kvinne, gut, gut',
     '🧑‍🧑‍🧒‍🧒' => 'familie: vaksen, vaksen, barn, barn',
-    '🚶🏻‍♀‍➡' => 'kvinneleg fotgjengar vendt mot høgre',
-    '🚶🏼‍♀‍➡' => 'kvinneleg fotgjengar vendt mot høgre',
-    '🚶🏽‍♀‍➡' => 'kvinneleg fotgjengar vendt mot høgre',
-    '🚶🏾‍♀‍➡' => 'kvinneleg fotgjengar vendt mot høgre',
-    '🚶🏿‍♀‍➡' => 'kvinneleg fotgjengar vendt mot høgre',
-    '🚶🏻‍♂‍➡' => 'mannleg fotgjengar vendt mot høgre',
-    '🚶🏼‍♂‍➡' => 'mannleg fotgjengar vendt mot høgre',
-    '🚶🏽‍♂‍➡' => 'mannleg fotgjengar vendt mot høgre',
-    '🚶🏾‍♂‍➡' => 'mannleg fotgjengar vendt mot høgre',
-    '🚶🏿‍♂‍➡' => 'mannleg fotgjengar vendt mot høgre',
-    '🧎🏻‍♀‍➡' => 'kvinne som kneler vendt mot høgre',
-    '🧎🏼‍♀‍➡' => 'kvinne som kneler vendt mot høgre',
-    '🧎🏽‍♀‍➡' => 'kvinne som kneler vendt mot høgre',
-    '🧎🏾‍♀‍➡' => 'kvinne som kneler vendt mot høgre',
-    '🧎🏿‍♀‍➡' => 'kvinne som kneler vendt mot høgre',
-    '🧎🏻‍♂‍➡' => 'mann som kneler vendt mot høgre',
-    '🧎🏼‍♂‍➡' => 'mann som kneler vendt mot høgre',
-    '🧎🏽‍♂‍➡' => 'mann som kneler vendt mot høgre',
-    '🧎🏾‍♂‍➡' => 'mann som kneler vendt mot høgre',
-    '🧎🏿‍♂‍➡' => 'mann som kneler vendt mot høgre',
-    '🧑🏻‍🦯‍➡' => 'person med blindestokk vendt mot høgre',
-    '🧑🏼‍🦯‍➡' => 'person med blindestokk vendt mot høgre',
-    '🧑🏽‍🦯‍➡' => 'person med blindestokk vendt mot høgre',
-    '🧑🏾‍🦯‍➡' => 'person med blindestokk vendt mot høgre',
-    '🧑🏿‍🦯‍➡' => 'person med blindestokk vendt mot høgre',
-    '👨🏻‍🦯‍➡' => 'mann med blindestokk vendt mot høgre',
-    '👨🏼‍🦯‍➡' => 'mann med blindestokk vendt mot høgre',
-    '👨🏽‍🦯‍➡' => 'mann med blindestokk vendt mot høgre',
-    '👨🏾‍🦯‍➡' => 'mann med blindestokk vendt mot høgre',
-    '👨🏿‍🦯‍➡' => 'mann med blindestokk vendt mot høgre',
-    '👩🏻‍🦯‍➡' => 'kvinne med blindestokk vendt mot høgre',
-    '👩🏼‍🦯‍➡' => 'kvinne med blindestokk vendt mot høgre',
-    '👩🏽‍🦯‍➡' => 'kvinne med blindestokk vendt mot høgre',
-    '👩🏾‍🦯‍➡' => 'kvinne med blindestokk vendt mot høgre',
-    '👩🏿‍🦯‍➡' => 'kvinne med blindestokk vendt mot høgre',
-    '🧑🏻‍🦼‍➡' => 'person i motorisert rullestol vendt mot høgre',
-    '🧑🏼‍🦼‍➡' => 'person i motorisert rullestol vendt mot høgre',
-    '🧑🏽‍🦼‍➡' => 'person i motorisert rullestol vendt mot høgre',
-    '🧑🏾‍🦼‍➡' => 'person i motorisert rullestol vendt mot høgre',
-    '🧑🏿‍🦼‍➡' => 'person i motorisert rullestol vendt mot høgre',
-    '👨🏻‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høgre',
-    '👨🏼‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høgre',
-    '👨🏽‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høgre',
-    '👨🏾‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høgre',
-    '👨🏿‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høgre',
-    '👩🏻‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høgre',
-    '👩🏼‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høgre',
-    '👩🏽‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høgre',
-    '👩🏾‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høgre',
-    '👩🏿‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høgre',
-    '🧑🏻‍🦽‍➡' => 'person i manuell rullestol vendt mot høgre',
-    '🧑🏼‍🦽‍➡' => 'person i manuell rullestol vendt mot høgre',
-    '🧑🏽‍🦽‍➡' => 'person i manuell rullestol vendt mot høgre',
-    '🧑🏾‍🦽‍➡' => 'person i manuell rullestol vendt mot høgre',
-    '🧑🏿‍🦽‍➡' => 'person i manuell rullestol vendt mot høgre',
-    '👨🏻‍🦽‍➡' => 'mann i manuell rullestol vendt mot høgre',
-    '👨🏼‍🦽‍➡' => 'mann i manuell rullestol vendt mot høgre',
-    '👨🏽‍🦽‍➡' => 'mann i manuell rullestol vendt mot høgre',
-    '👨🏾‍🦽‍➡' => 'mann i manuell rullestol vendt mot høgre',
-    '👨🏿‍🦽‍➡' => 'mann i manuell rullestol vendt mot høgre',
-    '👩🏻‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høgre',
-    '👩🏼‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høgre',
-    '👩🏽‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høgre',
-    '👩🏾‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høgre',
-    '👩🏿‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høgre',
-    '🏃🏻‍♀‍➡' => 'kvineleg løpar vendt mot høgre',
-    '🏃🏼‍♀‍➡' => 'kvineleg løpar vendt mot høgre',
-    '🏃🏽‍♀‍➡' => 'kvineleg løpar vendt mot høgre',
-    '🏃🏾‍♀‍➡' => 'kvineleg løpar vendt mot høgre',
-    '🏃🏿‍♀‍➡' => 'kvineleg løpar vendt mot høgre',
-    '🏃🏻‍♂‍➡' => 'mannleg løpar vendt mot høgre',
-    '🏃🏼‍♂‍➡' => 'mannleg løpar vendt mot høgre',
-    '🏃🏽‍♂‍➡' => 'mannleg løpar vendt mot høgre',
-    '🏃🏾‍♂‍➡' => 'mannleg løpar vendt mot høgre',
-    '🏃🏿‍♂‍➡' => 'mannleg løpar vendt mot høgre',
+    '🚶🏻‍♀‍➡' => 'kvinneleg fotgjengar: hudtype 1–2, vendt mot høgre',
+    '🚶🏼‍♀‍➡' => 'kvinneleg fotgjengar: hudtype 3, vendt mot høgre',
+    '🚶🏽‍♀‍➡' => 'kvinneleg fotgjengar: hudtype 4, vendt mot høgre',
+    '🚶🏾‍♀‍➡' => 'kvinneleg fotgjengar: hudtype 5, vendt mot høgre',
+    '🚶🏿‍♀‍➡' => 'kvinneleg fotgjengar: hudtype 6, vendt mot høgre',
+    '🚶🏻‍♂‍➡' => 'mannleg fotgjengar: hudtype 1–2, vendt mot høgre',
+    '🚶🏼‍♂‍➡' => 'mannleg fotgjengar: hudtype 3, vendt mot høgre',
+    '🚶🏽‍♂‍➡' => 'mannleg fotgjengar: hudtype 4, vendt mot høgre',
+    '🚶🏾‍♂‍➡' => 'mannleg fotgjengar: hudtype 5, vendt mot høgre',
+    '🚶🏿‍♂‍➡' => 'mannleg fotgjengar: hudtype 6, vendt mot høgre',
+    '🧎🏻‍♀‍➡' => 'kvinne som kneler: hudtype 1–2, vendt mot høgre',
+    '🧎🏼‍♀‍➡' => 'kvinne som kneler: hudtype 3, vendt mot høgre',
+    '🧎🏽‍♀‍➡' => 'kvinne som kneler: hudtype 4, vendt mot høgre',
+    '🧎🏾‍♀‍➡' => 'kvinne som kneler: hudtype 5, vendt mot høgre',
+    '🧎🏿‍♀‍➡' => 'kvinne som kneler: hudtype 6, vendt mot høgre',
+    '🧎🏻‍♂‍➡' => 'mann som kneler: hudtype 1–2, vendt mot høgre',
+    '🧎🏼‍♂‍➡' => 'mann som kneler: hudtype 3, vendt mot høgre',
+    '🧎🏽‍♂‍➡' => 'mann som kneler: hudtype 4, vendt mot høgre',
+    '🧎🏾‍♂‍➡' => 'mann som kneler: hudtype 5, vendt mot høgre',
+    '🧎🏿‍♂‍➡' => 'mann som kneler: hudtype 6, vendt mot høgre',
+    '🧑🏻‍🦯‍➡' => 'person med blindestokk: hudtype 1–2, vendt mot høgre',
+    '🧑🏼‍🦯‍➡' => 'person med blindestokk: hudtype 3, vendt mot høgre',
+    '🧑🏽‍🦯‍➡' => 'person med blindestokk: hudtype 4, vendt mot høgre',
+    '🧑🏾‍🦯‍➡' => 'person med blindestokk: hudtype 5, vendt mot høgre',
+    '🧑🏿‍🦯‍➡' => 'person med blindestokk: hudtype 6, vendt mot høgre',
+    '👨🏻‍🦯‍➡' => 'mann med blindestokk: hudtype 1–2, vendt mot høgre',
+    '👨🏼‍🦯‍➡' => 'mann med blindestokk: hudtype 3, vendt mot høgre',
+    '👨🏽‍🦯‍➡' => 'mann med blindestokk: hudtype 4, vendt mot høgre',
+    '👨🏾‍🦯‍➡' => 'mann med blindestokk: hudtype 5, vendt mot høgre',
+    '👨🏿‍🦯‍➡' => 'mann med blindestokk: hudtype 6, vendt mot høgre',
+    '👩🏻‍🦯‍➡' => 'kvinne med blindestokk: hudtype 1–2, vendt mot høgre',
+    '👩🏼‍🦯‍➡' => 'kvinne med blindestokk: hudtype 3, vendt mot høgre',
+    '👩🏽‍🦯‍➡' => 'kvinne med blindestokk: hudtype 4, vendt mot høgre',
+    '👩🏾‍🦯‍➡' => 'kvinne med blindestokk: hudtype 5, vendt mot høgre',
+    '👩🏿‍🦯‍➡' => 'kvinne med blindestokk: hudtype 6, vendt mot høgre',
+    '🧑🏻‍🦼‍➡' => 'person i motorisert rullestol: hudtype 1–2, vendt mot høgre',
+    '🧑🏼‍🦼‍➡' => 'person i motorisert rullestol: hudtype 3, vendt mot høgre',
+    '🧑🏽‍🦼‍➡' => 'person i motorisert rullestol: hudtype 4, vendt mot høgre',
+    '🧑🏾‍🦼‍➡' => 'person i motorisert rullestol: hudtype 5, vendt mot høgre',
+    '🧑🏿‍🦼‍➡' => 'person i motorisert rullestol: hudtype 6, vendt mot høgre',
+    '👨🏻‍🦼‍➡' => 'mann i motorisert rullestol: hudtype 1–2, vendt mot høgre',
+    '👨🏼‍🦼‍➡' => 'mann i motorisert rullestol: hudtype 3, vendt mot høgre',
+    '👨🏽‍🦼‍➡' => 'mann i motorisert rullestol: hudtype 4, vendt mot høgre',
+    '👨🏾‍🦼‍➡' => 'mann i motorisert rullestol: hudtype 5, vendt mot høgre',
+    '👨🏿‍🦼‍➡' => 'mann i motorisert rullestol: hudtype 6, vendt mot høgre',
+    '👩🏻‍🦼‍➡' => 'kvinne i motorisert rullestol: hudtype 1–2, vendt mot høgre',
+    '👩🏼‍🦼‍➡' => 'kvinne i motorisert rullestol: hudtype 3, vendt mot høgre',
+    '👩🏽‍🦼‍➡' => 'kvinne i motorisert rullestol: hudtype 4, vendt mot høgre',
+    '👩🏾‍🦼‍➡' => 'kvinne i motorisert rullestol: hudtype 5, vendt mot høgre',
+    '👩🏿‍🦼‍➡' => 'kvinne i motorisert rullestol: hudtype 6, vendt mot høgre',
+    '🧑🏻‍🦽‍➡' => 'person i manuell rullestol: hudtype 1–2, vendt mot høgre',
+    '🧑🏼‍🦽‍➡' => 'person i manuell rullestol: hudtype 3, vendt mot høgre',
+    '🧑🏽‍🦽‍➡' => 'person i manuell rullestol: hudtype 4, vendt mot høgre',
+    '🧑🏾‍🦽‍➡' => 'person i manuell rullestol: hudtype 5, vendt mot høgre',
+    '🧑🏿‍🦽‍➡' => 'person i manuell rullestol: hudtype 6, vendt mot høgre',
+    '👨🏻‍🦽‍➡' => 'mann i manuell rullestol: hudtype 1–2, vendt mot høgre',
+    '👨🏼‍🦽‍➡' => 'mann i manuell rullestol: hudtype 3, vendt mot høgre',
+    '👨🏽‍🦽‍➡' => 'mann i manuell rullestol: hudtype 4, vendt mot høgre',
+    '👨🏾‍🦽‍➡' => 'mann i manuell rullestol: hudtype 5, vendt mot høgre',
+    '👨🏿‍🦽‍➡' => 'mann i manuell rullestol: hudtype 6, vendt mot høgre',
+    '👩🏻‍🦽‍➡' => 'kvinne i manuell rullestol: hudtype 1–2, vendt mot høgre',
+    '👩🏼‍🦽‍➡' => 'kvinne i manuell rullestol: hudtype 3, vendt mot høgre',
+    '👩🏽‍🦽‍➡' => 'kvinne i manuell rullestol: hudtype 4, vendt mot høgre',
+    '👩🏾‍🦽‍➡' => 'kvinne i manuell rullestol: hudtype 5, vendt mot høgre',
+    '👩🏿‍🦽‍➡' => 'kvinne i manuell rullestol: hudtype 6, vendt mot høgre',
+    '🏃🏻‍♀‍➡' => 'kvineleg løpar: hudtype 1–2, vendt mot høgre',
+    '🏃🏼‍♀‍➡' => 'kvineleg løpar: hudtype 3, vendt mot høgre',
+    '🏃🏽‍♀‍➡' => 'kvineleg løpar: hudtype 4, vendt mot høgre',
+    '🏃🏾‍♀‍➡' => 'kvineleg løpar: hudtype 5, vendt mot høgre',
+    '🏃🏿‍♀‍➡' => 'kvineleg løpar: hudtype 6, vendt mot høgre',
+    '🏃🏻‍♂‍➡' => 'mannleg løpar: hudtype 1–2, vendt mot høgre',
+    '🏃🏼‍♂‍➡' => 'mannleg løpar: hudtype 3, vendt mot høgre',
+    '🏃🏽‍♂‍➡' => 'mannleg løpar: hudtype 4, vendt mot høgre',
+    '🏃🏾‍♂‍➡' => 'mannleg løpar: hudtype 5, vendt mot høgre',
+    '🏃🏿‍♂‍➡' => 'mannleg løpar: hudtype 6, vendt mot høgre',
     '🫱🏻‍🫲🏼' => 'handhelse: hudtype 1–2, hudtype 3',
     '🫱🏻‍🫲🏽' => 'handhelse: hudtype 1–2, hudtype 4',
     '🫱🏻‍🫲🏾' => 'handhelse: hudtype 1–2, hudtype 5',
@@ -303,21 +423,21 @@
     '🫱🏿‍🫲🏼' => 'handhelse: hudtype 6, hudtype 3',
     '🫱🏿‍🫲🏽' => 'handhelse: hudtype 6, hudtype 4',
     '🫱🏿‍🫲🏾' => 'handhelse: hudtype 6, hudtype 5',
-    '🚶‍♀‍➡' => 'kvinneleg fotgjengar vendt mot høgre',
-    '🚶‍♂‍➡' => 'mannleg fotgjengar vendt mot høgre',
-    '🧎‍♀‍➡' => 'kvinne som kneler vendt mot høgre',
-    '🧎‍♂‍➡' => 'mann som kneler vendt mot høgre',
-    '🧑‍🦯‍➡' => 'person med blindestokk vendt mot høgre',
-    '👨‍🦯‍➡' => 'mann med blindestokk vendt mot høgre',
-    '👩‍🦯‍➡' => 'kvinne med blindestokk vendt mot høgre',
-    '🧑‍🦼‍➡' => 'person i motorisert rullestol vendt mot høgre',
-    '👨‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høgre',
-    '👩‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høgre',
-    '🧑‍🦽‍➡' => 'person i manuell rullestol vendt mot høgre',
-    '👨‍🦽‍➡' => 'mann i manuell rullestol vendt mot høgre',
-    '👩‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høgre',
-    '🏃‍♀‍➡' => 'kvineleg løpar vendt mot høgre',
-    '🏃‍♂‍➡' => 'mannleg løpar vendt mot høgre',
+    '🚶‍♀‍➡' => 'kvinneleg fotgjengar: vendt mot høgre',
+    '🚶‍♂‍➡' => 'mannleg fotgjengar: vendt mot høgre',
+    '🧎‍♀‍➡' => 'kvinne som kneler: vendt mot høgre',
+    '🧎‍♂‍➡' => 'mann som kneler: vendt mot høgre',
+    '🧑‍🦯‍➡' => 'person med blindestokk: vendt mot høgre',
+    '👨‍🦯‍➡' => 'mann med blindestokk: vendt mot høgre',
+    '👩‍🦯‍➡' => 'kvinne med blindestokk: vendt mot høgre',
+    '🧑‍🦼‍➡' => 'person i motorisert rullestol: vendt mot høgre',
+    '👨‍🦼‍➡' => 'mann i motorisert rullestol: vendt mot høgre',
+    '👩‍🦼‍➡' => 'kvinne i motorisert rullestol: vendt mot høgre',
+    '🧑‍🦽‍➡' => 'person i manuell rullestol: vendt mot høgre',
+    '👨‍🦽‍➡' => 'mann i manuell rullestol: vendt mot høgre',
+    '👩‍🦽‍➡' => 'kvinne i manuell rullestol: vendt mot høgre',
+    '🏃‍♀‍➡' => 'kvineleg løpar: vendt mot høgre',
+    '🏃‍♂‍➡' => 'mannleg løpar: vendt mot høgre',
     '👩‍❤‍👨' => 'par med hjarte: kvinne, mann',
     '👨‍❤‍👨' => 'par med hjarte: mann, mann',
     '👩‍❤‍👩' => 'par med hjarte: kvinne, kvinne',
@@ -351,6 +471,11 @@
     '🧑🏽‍🦲' => 'vaksen: hudtype 4, skalla',
     '🧑🏾‍🦲' => 'vaksen: hudtype 5, skalla',
     '🧑🏿‍🦲' => 'vaksen: hudtype 6, skalla',
+    '🧑🏻‍🩰' => 'ballettdansar: hudtype 1–2',
+    '🧑🏼‍🩰' => 'ballettdansar: hudtype 3',
+    '🧑🏽‍🩰' => 'ballettdansar: hudtype 4',
+    '🧑🏾‍🩰' => 'ballettdansar: hudtype 5',
+    '🧑🏿‍🩰' => 'ballettdansar: hudtype 6',
     '👨🏻‍🦰' => 'mann: hudtype 1–2, raudt hår',
     '👨🏼‍🦰' => 'mann: hudtype 3, raudt hår',
     '👨🏽‍🦰' => 'mann: hudtype 4, raudt hår',
@@ -781,16 +906,16 @@
     '🚶🏽‍♀' => 'kvinneleg fotgjengar: hudtype 4',
     '🚶🏾‍♀' => 'kvinneleg fotgjengar: hudtype 5',
     '🚶🏿‍♀' => 'kvinneleg fotgjengar: hudtype 6',
-    '🚶🏻‍➡' => 'fotgjengar vendt mot høgre',
-    '🚶🏼‍➡' => 'fotgjengar vendt mot høgre',
-    '🚶🏽‍➡' => 'fotgjengar vendt mot høgre',
-    '🚶🏾‍➡' => 'fotgjengar vendt mot høgre',
-    '🚶🏿‍➡' => 'fotgjengar vendt mot høgre',
-    '🧎🏻‍➡' => 'person som kneler vendt mot høgre',
-    '🧎🏼‍➡' => 'person som kneler vendt mot høgre',
-    '🧎🏽‍➡' => 'person som kneler vendt mot høgre',
-    '🧎🏾‍➡' => 'person som kneler vendt mot høgre',
-    '🧎🏿‍➡' => 'person som kneler vendt mot høgre',
+    '🚶🏻‍➡' => 'fotgjengar: hudtype 1–2, vendt mot høgre',
+    '🚶🏼‍➡' => 'fotgjengar: hudtype 3, vendt mot høgre',
+    '🚶🏽‍➡' => 'fotgjengar: hudtype 4, vendt mot høgre',
+    '🚶🏾‍➡' => 'fotgjengar: hudtype 5, vendt mot høgre',
+    '🚶🏿‍➡' => 'fotgjengar: hudtype 6, vendt mot høgre',
+    '🧎🏻‍➡' => 'person som kneler: hudtype 1–2, vendt mot høgre',
+    '🧎🏼‍➡' => 'person som kneler: hudtype 3, vendt mot høgre',
+    '🧎🏽‍➡' => 'person som kneler: hudtype 4, vendt mot høgre',
+    '🧎🏾‍➡' => 'person som kneler: hudtype 5, vendt mot høgre',
+    '🧎🏿‍➡' => 'person som kneler: hudtype 6, vendt mot høgre',
     '🏃🏻‍♂' => 'mannleg løpar: hudtype 1–2',
     '🏃🏼‍♂' => 'mannleg løpar: hudtype 3',
     '🏃🏽‍♂' => 'mannleg løpar: hudtype 4',
@@ -801,11 +926,21 @@
     '🏃🏽‍♀' => 'kvineleg løpar: hudtype 4',
     '🏃🏾‍♀' => 'kvineleg løpar: hudtype 5',
     '🏃🏿‍♀' => 'kvineleg løpar: hudtype 6',
-    '🏃🏻‍➡' => 'løpar vendt mot høgre',
-    '🏃🏼‍➡' => 'løpar vendt mot høgre',
-    '🏃🏽‍➡' => 'løpar vendt mot høgre',
-    '🏃🏾‍➡' => 'løpar vendt mot høgre',
-    '🏃🏿‍➡' => 'løpar vendt mot høgre',
+    '🏃🏻‍➡' => 'løpar: hudtype 1–2, vendt mot høgre',
+    '🏃🏼‍➡' => 'løpar: hudtype 3, vendt mot høgre',
+    '🏃🏽‍➡' => 'løpar: hudtype 4, vendt mot høgre',
+    '🏃🏾‍➡' => 'løpar: hudtype 5, vendt mot høgre',
+    '🏃🏿‍➡' => 'løpar: hudtype 6, vendt mot høgre',
+    '👯🏻‍♀' => 'kvinner med kaninøyre: hudtype 1–2',
+    '👯🏼‍♀' => 'kvinner med kaninøyre: hudtype 3',
+    '👯🏽‍♀' => 'kvinner med kaninøyre: hudtype 4',
+    '👯🏾‍♀' => 'kvinner med kaninøyre: hudtype 5',
+    '👯🏿‍♀' => 'kvinner med kaninøyre: hudtype 6',
+    '👯🏻‍♂' => 'menn med kaninøyre: hudtype 1–2',
+    '👯🏼‍♂' => 'menn med kaninøyre: hudtype 3',
+    '👯🏽‍♂' => 'menn med kaninøyre: hudtype 4',
+    '👯🏾‍♂' => 'menn med kaninøyre: hudtype 5',
+    '👯🏿‍♂' => 'menn med kaninøyre: hudtype 6',
     '🧖🏻‍♂' => 'mann i badstove: hudtype 1–2',
     '🧖🏼‍♂' => 'mann i badstove: hudtype 3',
     '🧖🏽‍♂' => 'mann i badstove: hudtype 4',
@@ -876,6 +1011,16 @@
     '🚴🏽‍♀' => 'kvinneleg syklist: hudtype 4',
     '🚴🏾‍♀' => 'kvinneleg syklist: hudtype 5',
     '🚴🏿‍♀' => 'kvinneleg syklist: hudtype 6',
+    '🤼🏻‍♀' => 'kvinnelege brytarar: hudtype 1–2',
+    '🤼🏼‍♀' => 'kvinnelege brytarar: hudtype 3',
+    '🤼🏽‍♀' => 'kvinnelege brytarar: hudtype 4',
+    '🤼🏾‍♀' => 'kvinnelege brytarar: hudtype 5',
+    '🤼🏿‍♀' => 'kvinnelege brytarar: hudtype 6',
+    '🤼🏻‍♂' => 'mannlege brytarar: hudtype 1–2',
+    '🤼🏼‍♂' => 'mannlege brytarar: hudtype 3',
+    '🤼🏽‍♂' => 'mannlege brytarar: hudtype 4',
+    '🤼🏾‍♂' => 'mannlege brytarar: hudtype 5',
+    '🤼🏿‍♂' => 'mannlege brytarar: hudtype 6',
     '🤽🏻‍♂' => 'mannleg vasspolospelar: hudtype 1–2',
     '🤽🏼‍♂' => 'mannleg vasspolospelar: hudtype 3',
     '🤽🏽‍♂' => 'mannleg vasspolospelar: hudtype 4',
@@ -916,9 +1061,9 @@
     '👩‍🦰' => 'kvinne: raudt hår',
     '👩‍🦱' => 'kvinne: krusete hår',
     '👩‍🦲' => 'kvinne: skalla',
-    '🚶‍➡' => 'fotgjengar vendt mot høgre',
-    '🧎‍➡' => 'person som kneler vendt mot høgre',
-    '🏃‍➡' => 'løpar vendt mot høgre',
+    '🚶‍➡' => 'fotgjengar: vendt mot høgre',
+    '🧎‍➡' => 'person som kneler: vendt mot høgre',
+    '🏃‍➡' => 'løpar: vendt mot høgre',
     '👨‍👦' => 'familie: mann, gut',
     '👩‍👦' => 'familie: kvinne, gut',
     '😮‍💨' => 'pustar ut',
@@ -1013,6 +1158,7 @@
     '🚶‍♀' => 'kvinneleg fotgjengar',
     '🏃‍♂' => 'mannleg løpar',
     '🏃‍♀' => 'kvineleg løpar',
+    '🧑‍🩰' => 'ballettdansar',
     '👯‍♂' => 'menn med kaninøyre',
     '👯‍♀' => 'kvinner med kaninøyre',
     '🧖‍♂' => 'mann i badstove',
@@ -1331,6 +1477,11 @@
     '🕴🏽' => 'svevande mann i dress: hudtype 4',
     '🕴🏾' => 'svevande mann i dress: hudtype 5',
     '🕴🏿' => 'svevande mann i dress: hudtype 6',
+    '👯🏻' => 'personar med kaninøyre: hudtype 1–2',
+    '👯🏼' => 'personar med kaninøyre: hudtype 3',
+    '👯🏽' => 'personar med kaninøyre: hudtype 4',
+    '👯🏾' => 'personar med kaninøyre: hudtype 5',
+    '👯🏿' => 'personar med kaninøyre: hudtype 6',
     '🧖🏻' => 'person i badstove: hudtype 1–2',
     '🧖🏼' => 'person i badstove: hudtype 3',
     '🧖🏽' => 'person i badstove: hudtype 4',
@@ -1366,6 +1517,11 @@
     '🏋🏽' => 'vektløftar: hudtype 4',
     '🏋🏾' => 'vektløftar: hudtype 5',
     '🏋🏿' => 'vektløftar: hudtype 6',
+    '🤼🏻' => 'brytarar: hudtype 1–2',
+    '🤼🏼' => 'brytarar: hudtype 3',
+    '🤼🏽' => 'brytarar: hudtype 4',
+    '🤼🏾' => 'brytarar: hudtype 5',
+    '🤼🏿' => 'brytarar: hudtype 6',
     '🤽🏻' => 'vasspolo: hudtype 1–2',
     '🤽🏼' => 'vasspolo: hudtype 3',
     '🤽🏽' => 'vasspolo: hudtype 4',
@@ -1431,9 +1587,6 @@
     '🇻🇬' => 'flagg: Dei britiske Jomfruøyane',
     '🇻🇮' => 'flagg: Dei amerikanske Jomfruøyane',
     '🔟' => 'tastar: 10',
-    '🪾' => 'bladlaust tre',
-    '🫜' => 'rotgrønsak',
-    '🫩' => 'fjes med posar under auga',
     '😃' => 'glisande fjes med vidopne auge',
     '😄' => 'smilefjes med open munn og smilande auge',
     '😁' => 'glisefjes med smilande auge',
@@ -1469,6 +1622,7 @@
     '😌' => 'letta',
     '🤤' => 'siklar',
     '😴' => 'søv',
+    '🫩' => 'fjes med posar under auga',
     '🤕' => 'bandasjert hovud',
     '🤮' => 'kastar opp',
     '🤧' => 'nys',
@@ -1479,6 +1633,7 @@
     '😮' => 'forbausa',
     '😯' => 'overraska',
     '😳' => 'raudnar',
+    '🫪' => 'fordreidd fjes',
     '🥺' => 'bedande fjes',
     '🥹' => 'fjes som held tilbake tårene',
     '😦' => 'oppgjeven',
@@ -1629,7 +1784,9 @@
     '🐉' => 'drake',
     '🐳' => 'sprutande kval',
     '🐋' => 'kval',
+    '🫍' => 'spekkhoggar',
     '🐚' => 'spiralskjel',
+    '🦞' => 'hummar',
     '🐌' => 'snigel',
     '🦋' => 'sommarfugl',
     '🦗' => 'grashoppe',
@@ -1645,12 +1802,14 @@
     '🍃' => 'blad i vind',
     '🪹' => 'tomt reir',
     '🪺' => 'reir med egg',
+    '🪾' => 'bladlaust tre',
     '🍉' => 'vassmelon',
     '🍎' => 'raudt eple',
     '🌶' => 'raud chili',
     '🥬' => 'bladgrønsaker',
     '🧄' => 'kvitlauk',
     '🧅' => 'lauk',
+    '🫜' => 'rotgrønsak',
     '🍖' => 'kjøt med bein',
     '🥩' => 'kjøtstykke',
     '🍔' => 'hamburgar',
@@ -1658,7 +1817,6 @@
     '🥣' => 'bolle med skei',
     '🥗' => 'grøn salat',
     '🍜' => 'matbolle som dampar',
-    '🦞' => 'hummar',
     '🍦' => 'softis',
     '🍭' => 'slikkepinne',
     '🥛' => 'mjølkeglas',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-no.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-no.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-no.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-no.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'kyss: kvinne, kvinne, hudtype 6, hudtype 4',
     '👩🏿‍❤‍💋‍👩🏾' => 'kyss: kvinne, kvinne, hudtype 6, hudtype 5',
     '👩🏿‍❤‍💋‍👩🏿' => 'kyss: kvinne, kvinne, hudtype 6',
+    '🧑🏻‍🫯‍🧑🏼' => 'brytere: hudtype 1–2, hudtype 3',
+    '🧑🏻‍🫯‍🧑🏽' => 'brytere: hudtype 1–2, hudtype 4',
+    '🧑🏻‍🫯‍🧑🏾' => 'brytere: hudtype 1–2, hudtype 5',
+    '🧑🏻‍🫯‍🧑🏿' => 'brytere: hudtype 1–2, hudtype 6',
+    '🧑🏼‍🫯‍🧑🏻' => 'brytere: hudtype 3, hudtype 1–2',
+    '🧑🏼‍🫯‍🧑🏽' => 'brytere: hudtype 3, hudtype 4',
+    '🧑🏼‍🫯‍🧑🏾' => 'brytere: hudtype 3, hudtype 5',
+    '🧑🏼‍🫯‍🧑🏿' => 'brytere: hudtype 3, hudtype 6',
+    '🧑🏽‍🫯‍🧑🏻' => 'brytere: hudtype 4, hudtype 1–2',
+    '🧑🏽‍🫯‍🧑🏼' => 'brytere: hudtype 4, hudtype 3',
+    '🧑🏽‍🫯‍🧑🏾' => 'brytere: hudtype 4, hudtype 5',
+    '🧑🏽‍🫯‍🧑🏿' => 'brytere: hudtype 4, hudtype 6',
+    '🧑🏾‍🫯‍🧑🏻' => 'brytere: hudtype 5, hudtype 1–2',
+    '🧑🏾‍🫯‍🧑🏼' => 'brytere: hudtype 5, hudtype 3',
+    '🧑🏾‍🫯‍🧑🏽' => 'brytere: hudtype 5, hudtype 4',
+    '🧑🏾‍🫯‍🧑🏿' => 'brytere: hudtype 5, hudtype 6',
+    '🧑🏿‍🫯‍🧑🏻' => 'brytere: hudtype 6, hudtype 1–2',
+    '🧑🏿‍🫯‍🧑🏼' => 'brytere: hudtype 6, hudtype 3',
+    '🧑🏿‍🫯‍🧑🏽' => 'brytere: hudtype 6, hudtype 4',
+    '🧑🏿‍🫯‍🧑🏾' => 'brytere: hudtype 6, hudtype 5',
     '🧑🏻‍❤‍🧑🏼' => 'par med hjerte: voksen, voksen, hudtype 1–2, hudtype 3',
     '🧑🏻‍❤‍🧑🏽' => 'par med hjerte: voksen, voksen, hudtype 1–2, hudtype 4',
     '🧑🏻‍❤‍🧑🏾' => 'par med hjerte: voksen, voksen, hudtype 1–2, hudtype 5',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par med hjerte: voksen, voksen, hudtype 6, hudtype 3',
     '🧑🏿‍❤‍🧑🏽' => 'par med hjerte: voksen, voksen, hudtype 6, hudtype 4',
     '🧑🏿‍❤‍🧑🏾' => 'par med hjerte: voksen, voksen, hudtype 6, hudtype 5',
+    '🧑🏻‍🐰‍🧑🏼' => 'personer med kaninører: hudtype 1–2, hudtype 3',
+    '🧑🏻‍🐰‍🧑🏽' => 'personer med kaninører: hudtype 1–2, hudtype 4',
+    '🧑🏻‍🐰‍🧑🏾' => 'personer med kaninører: hudtype 1–2, hudtype 5',
+    '🧑🏻‍🐰‍🧑🏿' => 'personer med kaninører: hudtype 1–2, hudtype 6',
+    '🧑🏼‍🐰‍🧑🏻' => 'personer med kaninører: hudtype 3, hudtype 1–2',
+    '🧑🏼‍🐰‍🧑🏽' => 'personer med kaninører: hudtype 3, hudtype 4',
+    '🧑🏼‍🐰‍🧑🏾' => 'personer med kaninører: hudtype 3, hudtype 5',
+    '🧑🏼‍🐰‍🧑🏿' => 'personer med kaninører: hudtype 3, hudtype 6',
+    '🧑🏽‍🐰‍🧑🏻' => 'personer med kaninører: hudtype 4, hudtype 1–2',
+    '🧑🏽‍🐰‍🧑🏼' => 'personer med kaninører: hudtype 4, hudtype 3',
+    '🧑🏽‍🐰‍🧑🏾' => 'personer med kaninører: hudtype 4, hudtype 5',
+    '🧑🏽‍🐰‍🧑🏿' => 'personer med kaninører: hudtype 4, hudtype 6',
+    '🧑🏾‍🐰‍🧑🏻' => 'personer med kaninører: hudtype 5, hudtype 1–2',
+    '🧑🏾‍🐰‍🧑🏼' => 'personer med kaninører: hudtype 5, hudtype 3',
+    '🧑🏾‍🐰‍🧑🏽' => 'personer med kaninører: hudtype 5, hudtype 4',
+    '🧑🏾‍🐰‍🧑🏿' => 'personer med kaninører: hudtype 5, hudtype 6',
+    '🧑🏿‍🐰‍🧑🏻' => 'personer med kaninører: hudtype 6, hudtype 1–2',
+    '🧑🏿‍🐰‍🧑🏼' => 'personer med kaninører: hudtype 6, hudtype 3',
+    '🧑🏿‍🐰‍🧑🏽' => 'personer med kaninører: hudtype 6, hudtype 4',
+    '🧑🏿‍🐰‍🧑🏾' => 'personer med kaninører: hudtype 6, hudtype 5',
+    '👨🏻‍🫯‍👨🏼' => 'mannlige brytere: hudtype 1–2, hudtype 3',
+    '👨🏻‍🫯‍👨🏽' => 'mannlige brytere: hudtype 1–2, hudtype 4',
+    '👨🏻‍🫯‍👨🏾' => 'mannlige brytere: hudtype 1–2, hudtype 5',
+    '👨🏻‍🫯‍👨🏿' => 'mannlige brytere: hudtype 1–2, hudtype 6',
+    '👨🏼‍🫯‍👨🏻' => 'mannlige brytere: hudtype 3, hudtype 1–2',
+    '👨🏼‍🫯‍👨🏽' => 'mannlige brytere: hudtype 3, hudtype 4',
+    '👨🏼‍🫯‍👨🏾' => 'mannlige brytere: hudtype 3, hudtype 5',
+    '👨🏼‍🫯‍👨🏿' => 'mannlige brytere: hudtype 3, hudtype 6',
+    '👨🏽‍🫯‍👨🏻' => 'mannlige brytere: hudtype 4, hudtype 1–2',
+    '👨🏽‍🫯‍👨🏼' => 'mannlige brytere: hudtype 4, hudtype 3',
+    '👨🏽‍🫯‍👨🏾' => 'mannlige brytere: hudtype 4, hudtype 5',
+    '👨🏽‍🫯‍👨🏿' => 'mannlige brytere: hudtype 4, hudtype 6',
+    '👨🏾‍🫯‍👨🏻' => 'mannlige brytere: hudtype 5, hudtype 1–2',
+    '👨🏾‍🫯‍👨🏼' => 'mannlige brytere: hudtype 5, hudtype 3',
+    '👨🏾‍🫯‍👨🏽' => 'mannlige brytere: hudtype 5, hudtype 4',
+    '👨🏾‍🫯‍👨🏿' => 'mannlige brytere: hudtype 5, hudtype 6',
+    '👨🏿‍🫯‍👨🏻' => 'mannlige brytere: hudtype 6, hudtype 1–2',
+    '👨🏿‍🫯‍👨🏼' => 'mannlige brytere: hudtype 6, hudtype 3',
+    '👨🏿‍🫯‍👨🏽' => 'mannlige brytere: hudtype 6, hudtype 4',
+    '👨🏿‍🫯‍👨🏾' => 'mannlige brytere: hudtype 6, hudtype 5',
     '👨🏻‍❤‍👨🏻' => 'par med hjerte: mann, mann, hudtype 1–2',
     '👨🏻‍❤‍👨🏼' => 'par med hjerte: mann, mann, hudtype 1–2, hudtype 3',
     '👨🏻‍❤‍👨🏽' => 'par med hjerte: mann, mann, hudtype 1–2, hudtype 4',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'par med hjerte: mann, mann, hudtype 6, hudtype 4',
     '👨🏿‍❤‍👨🏾' => 'par med hjerte: mann, mann, hudtype 6, hudtype 5',
     '👨🏿‍❤‍👨🏿' => 'par med hjerte: mann, mann, hudtype 6',
+    '👨🏻‍🐰‍👨🏼' => 'menn med kaninører: hudtype 1–2, hudtype 3',
+    '👨🏻‍🐰‍👨🏽' => 'menn med kaninører: hudtype 1–2, hudtype 4',
+    '👨🏻‍🐰‍👨🏾' => 'menn med kaninører: hudtype 1–2, hudtype 5',
+    '👨🏻‍🐰‍👨🏿' => 'menn med kaninører: hudtype 1–2, hudtype 6',
+    '👨🏼‍🐰‍👨🏻' => 'menn med kaninører: hudtype 3, hudtype 1–2',
+    '👨🏼‍🐰‍👨🏽' => 'menn med kaninører: hudtype 3, hudtype 4',
+    '👨🏼‍🐰‍👨🏾' => 'menn med kaninører: hudtype 3, hudtype 5',
+    '👨🏼‍🐰‍👨🏿' => 'menn med kaninører: hudtype 3, hudtype 6',
+    '👨🏽‍🐰‍👨🏻' => 'menn med kaninører: hudtype 4, hudtype 1–2',
+    '👨🏽‍🐰‍👨🏼' => 'menn med kaninører: hudtype 4, hudtype 3',
+    '👨🏽‍🐰‍👨🏾' => 'menn med kaninører: hudtype 4, hudtype 5',
+    '👨🏽‍🐰‍👨🏿' => 'menn med kaninører: hudtype 4, hudtype 6',
+    '👨🏾‍🐰‍👨🏻' => 'menn med kaninører: hudtype 5, hudtype 1–2',
+    '👨🏾‍🐰‍👨🏼' => 'menn med kaninører: hudtype 5, hudtype 3',
+    '👨🏾‍🐰‍👨🏽' => 'menn med kaninører: hudtype 5, hudtype 4',
+    '👨🏾‍🐰‍👨🏿' => 'menn med kaninører: hudtype 5, hudtype 6',
+    '👨🏿‍🐰‍👨🏻' => 'menn med kaninører: hudtype 6, hudtype 1–2',
+    '👨🏿‍🐰‍👨🏼' => 'menn med kaninører: hudtype 6, hudtype 3',
+    '👨🏿‍🐰‍👨🏽' => 'menn med kaninører: hudtype 6, hudtype 4',
+    '👨🏿‍🐰‍👨🏾' => 'menn med kaninører: hudtype 6, hudtype 5',
+    '👩🏻‍🫯‍👩🏼' => 'kvinnelige brytere: hudtype 1–2, hudtype 3',
+    '👩🏻‍🫯‍👩🏽' => 'kvinnelige brytere: hudtype 1–2, hudtype 4',
+    '👩🏻‍🫯‍👩🏾' => 'kvinnelige brytere: hudtype 1–2, hudtype 5',
+    '👩🏻‍🫯‍👩🏿' => 'kvinnelige brytere: hudtype 1–2, hudtype 6',
+    '👩🏼‍🫯‍👩🏻' => 'kvinnelige brytere: hudtype 3, hudtype 1–2',
+    '👩🏼‍🫯‍👩🏽' => 'kvinnelige brytere: hudtype 3, hudtype 4',
+    '👩🏼‍🫯‍👩🏾' => 'kvinnelige brytere: hudtype 3, hudtype 5',
+    '👩🏼‍🫯‍👩🏿' => 'kvinnelige brytere: hudtype 3, hudtype 6',
+    '👩🏽‍🫯‍👩🏻' => 'kvinnelige brytere: hudtype 4, hudtype 1–2',
+    '👩🏽‍🫯‍👩🏼' => 'kvinnelige brytere: hudtype 4, hudtype 3',
+    '👩🏽‍🫯‍👩🏾' => 'kvinnelige brytere: hudtype 4, hudtype 5',
+    '👩🏽‍🫯‍👩🏿' => 'kvinnelige brytere: hudtype 4, hudtype 6',
+    '👩🏾‍🫯‍👩🏻' => 'kvinnelige brytere: hudtype 5, hudtype 1–2',
+    '👩🏾‍🫯‍👩🏼' => 'kvinnelige brytere: hudtype 5, hudtype 3',
+    '👩🏾‍🫯‍👩🏽' => 'kvinnelige brytere: hudtype 5, hudtype 4',
+    '👩🏾‍🫯‍👩🏿' => 'kvinnelige brytere: hudtype 5, hudtype 6',
+    '👩🏿‍🫯‍👩🏻' => 'kvinnelige brytere: hudtype 6, hudtype 1–2',
+    '👩🏿‍🫯‍👩🏼' => 'kvinnelige brytere: hudtype 6, hudtype 3',
+    '👩🏿‍🫯‍👩🏽' => 'kvinnelige brytere: hudtype 6, hudtype 4',
+    '👩🏿‍🫯‍👩🏾' => 'kvinnelige brytere: hudtype 6, hudtype 5',
     '👩🏻‍❤‍👨🏻' => 'par med hjerte: kvinne, mann, hudtype 1–2',
     '👩🏻‍❤‍👨🏼' => 'par med hjerte: kvinne, mann, hudtype 1–2, hudtype 3',
     '👩🏻‍❤‍👨🏽' => 'par med hjerte: kvinne, mann, hudtype 1–2, hudtype 4',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'par med hjerte: kvinne, kvinne, hudtype 6, hudtype 4',
     '👩🏿‍❤‍👩🏾' => 'par med hjerte: kvinne, kvinne, hudtype 6, hudtype 5',
     '👩🏿‍❤‍👩🏿' => 'par med hjerte: kvinne, kvinne, hudtype 6',
+    '👩🏻‍🐰‍👩🏼' => 'kvinner med kaninører: hudtype 1–2, hudtype 3',
+    '👩🏻‍🐰‍👩🏽' => 'kvinner med kaninører: hudtype 1–2, hudtype 4',
+    '👩🏻‍🐰‍👩🏾' => 'kvinner med kaninører: hudtype 1–2, hudtype 5',
+    '👩🏻‍🐰‍👩🏿' => 'kvinner med kaninører: hudtype 1–2, hudtype 6',
+    '👩🏼‍🐰‍👩🏻' => 'kvinner med kaninører: hudtype 3, hudtype 1–2',
+    '👩🏼‍🐰‍👩🏽' => 'kvinner med kaninører: hudtype 3, hudtype 4',
+    '👩🏼‍🐰‍👩🏾' => 'kvinner med kaninører: hudtype 3, hudtype 5',
+    '👩🏼‍🐰‍👩🏿' => 'kvinner med kaninører: hudtype 3, hudtype 6',
+    '👩🏽‍🐰‍👩🏻' => 'kvinner med kaninører: hudtype 4, hudtype 1–2',
+    '👩🏽‍🐰‍👩🏼' => 'kvinner med kaninører: hudtype 4, hudtype 3',
+    '👩🏽‍🐰‍👩🏾' => 'kvinner med kaninører: hudtype 4, hudtype 5',
+    '👩🏽‍🐰‍👩🏿' => 'kvinner med kaninører: hudtype 4, hudtype 6',
+    '👩🏾‍🐰‍👩🏻' => 'kvinner med kaninører: hudtype 5, hudtype 1–2',
+    '👩🏾‍🐰‍👩🏼' => 'kvinner med kaninører: hudtype 5, hudtype 3',
+    '👩🏾‍🐰‍👩🏽' => 'kvinner med kaninører: hudtype 5, hudtype 4',
+    '👩🏾‍🐰‍👩🏿' => 'kvinner med kaninører: hudtype 5, hudtype 6',
+    '👩🏿‍🐰‍👩🏻' => 'kvinner med kaninører: hudtype 6, hudtype 1–2',
+    '👩🏿‍🐰‍👩🏼' => 'kvinner med kaninører: hudtype 6, hudtype 3',
+    '👩🏿‍🐰‍👩🏽' => 'kvinner med kaninører: hudtype 6, hudtype 4',
+    '👩🏿‍🐰‍👩🏾' => 'kvinner med kaninører: hudtype 6, hudtype 5',
     '🧑🏻‍🤝‍🧑🏻' => 'personer som leier: hudtype 1–2',
     '🧑🏻‍🤝‍🧑🏼' => 'personer som leier: hudtype 1–2, hudtype 3',
     '🧑🏻‍🤝‍🧑🏽' => 'personer som leier: hudtype 1–2, hudtype 4',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flagg: Skottland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flagg: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'familie: voksen, voksen, barn, barn',
-    '🚶🏻‍♀‍➡' => 'kvinnelig fotgjenger vendt mot høyre',
-    '🚶🏼‍♀‍➡' => 'kvinnelig fotgjenger vendt mot høyre',
-    '🚶🏽‍♀‍➡' => 'kvinnelig fotgjenger vendt mot høyre',
-    '🚶🏾‍♀‍➡' => 'kvinnelig fotgjenger vendt mot høyre',
-    '🚶🏿‍♀‍➡' => 'kvinnelig fotgjenger vendt mot høyre',
-    '🚶🏻‍♂‍➡' => 'mannlig fotgjenger vendt mot høyre',
-    '🚶🏼‍♂‍➡' => 'mannlig fotgjenger vendt mot høyre',
-    '🚶🏽‍♂‍➡' => 'mannlig fotgjenger vendt mot høyre',
-    '🚶🏾‍♂‍➡' => 'mannlig fotgjenger vendt mot høyre',
-    '🚶🏿‍♂‍➡' => 'mannlig fotgjenger vendt mot høyre',
-    '🧎🏻‍♀‍➡' => 'kvinne som kneler vendt mot høyre',
-    '🧎🏼‍♀‍➡' => 'kvinne som kneler vendt mot høyre',
-    '🧎🏽‍♀‍➡' => 'kvinne som kneler vendt mot høyre',
-    '🧎🏾‍♀‍➡' => 'kvinne som kneler vendt mot høyre',
-    '🧎🏿‍♀‍➡' => 'kvinne som kneler vendt mot høyre',
-    '🧎🏻‍♂‍➡' => 'mann som kneler vendt mot høyre',
-    '🧎🏼‍♂‍➡' => 'mann som kneler vendt mot høyre',
-    '🧎🏽‍♂‍➡' => 'mann som kneler vendt mot høyre',
-    '🧎🏾‍♂‍➡' => 'mann som kneler vendt mot høyre',
-    '🧎🏿‍♂‍➡' => 'mann som kneler vendt mot høyre',
-    '🧑🏻‍🦯‍➡' => 'person med blindestokk vendt mot høyre',
-    '🧑🏼‍🦯‍➡' => 'person med blindestokk vendt mot høyre',
-    '🧑🏽‍🦯‍➡' => 'person med blindestokk vendt mot høyre',
-    '🧑🏾‍🦯‍➡' => 'person med blindestokk vendt mot høyre',
-    '🧑🏿‍🦯‍➡' => 'person med blindestokk vendt mot høyre',
-    '👨🏻‍🦯‍➡' => 'mann med blindestokk vendt mot høyre',
-    '👨🏼‍🦯‍➡' => 'mann med blindestokk vendt mot høyre',
-    '👨🏽‍🦯‍➡' => 'mann med blindestokk vendt mot høyre',
-    '👨🏾‍🦯‍➡' => 'mann med blindestokk vendt mot høyre',
-    '👨🏿‍🦯‍➡' => 'mann med blindestokk vendt mot høyre',
-    '👩🏻‍🦯‍➡' => 'kvinne med blindestokk vendt mot høyre',
-    '👩🏼‍🦯‍➡' => 'kvinne med blindestokk vendt mot høyre',
-    '👩🏽‍🦯‍➡' => 'kvinne med blindestokk vendt mot høyre',
-    '👩🏾‍🦯‍➡' => 'kvinne med blindestokk vendt mot høyre',
-    '👩🏿‍🦯‍➡' => 'kvinne med blindestokk vendt mot høyre',
-    '🧑🏻‍🦼‍➡' => 'person i motorisert rullestol vendt mot høyre',
-    '🧑🏼‍🦼‍➡' => 'person i motorisert rullestol vendt mot høyre',
-    '🧑🏽‍🦼‍➡' => 'person i motorisert rullestol vendt mot høyre',
-    '🧑🏾‍🦼‍➡' => 'person i motorisert rullestol vendt mot høyre',
-    '🧑🏿‍🦼‍➡' => 'person i motorisert rullestol vendt mot høyre',
-    '👨🏻‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høyre',
-    '👨🏼‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høyre',
-    '👨🏽‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høyre',
-    '👨🏾‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høyre',
-    '👨🏿‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høyre',
-    '👩🏻‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høyre',
-    '👩🏼‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høyre',
-    '👩🏽‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høyre',
-    '👩🏾‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høyre',
-    '👩🏿‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høyre',
-    '🧑🏻‍🦽‍➡' => 'person i manuell rullestol vendt mot høyre',
-    '🧑🏼‍🦽‍➡' => 'person i manuell rullestol vendt mot høyre',
-    '🧑🏽‍🦽‍➡' => 'person i manuell rullestol vendt mot høyre',
-    '🧑🏾‍🦽‍➡' => 'person i manuell rullestol vendt mot høyre',
-    '🧑🏿‍🦽‍➡' => 'person i manuell rullestol vendt mot høyre',
-    '👨🏻‍🦽‍➡' => 'mann i manuell rullestol vendt mot høyre',
-    '👨🏼‍🦽‍➡' => 'mann i manuell rullestol vendt mot høyre',
-    '👨🏽‍🦽‍➡' => 'mann i manuell rullestol vendt mot høyre',
-    '👨🏾‍🦽‍➡' => 'mann i manuell rullestol vendt mot høyre',
-    '👨🏿‍🦽‍➡' => 'mann i manuell rullestol vendt mot høyre',
-    '👩🏻‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høyre',
-    '👩🏼‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høyre',
-    '👩🏽‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høyre',
-    '👩🏾‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høyre',
-    '👩🏿‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høyre',
-    '🏃🏻‍♀‍➡' => 'kvinnelig løper vendt mot høyre',
-    '🏃🏼‍♀‍➡' => 'kvinnelig løper vendt mot høyre',
-    '🏃🏽‍♀‍➡' => 'kvinnelig løper vendt mot høyre',
-    '🏃🏾‍♀‍➡' => 'kvinnelig løper vendt mot høyre',
-    '🏃🏿‍♀‍➡' => 'kvinnelig løper vendt mot høyre',
-    '🏃🏻‍♂‍➡' => 'mannlig løper vendt mot høyre',
-    '🏃🏼‍♂‍➡' => 'mannlig løper vendt mot høyre',
-    '🏃🏽‍♂‍➡' => 'mannlig løper vendt mot høyre',
-    '🏃🏾‍♂‍➡' => 'mannlig løper vendt mot høyre',
-    '🏃🏿‍♂‍➡' => 'mannlig løper vendt mot høyre',
+    '🚶🏻‍♀‍➡' => 'kvinnelig fotgjenger: hudtype 1–2, vendt mot høyre',
+    '🚶🏼‍♀‍➡' => 'kvinnelig fotgjenger: hudtype 3, vendt mot høyre',
+    '🚶🏽‍♀‍➡' => 'kvinnelig fotgjenger: hudtype 4, vendt mot høyre',
+    '🚶🏾‍♀‍➡' => 'kvinnelig fotgjenger: hudtype 5, vendt mot høyre',
+    '🚶🏿‍♀‍➡' => 'kvinnelig fotgjenger: hudtype 6, vendt mot høyre',
+    '🚶🏻‍♂‍➡' => 'mannlig fotgjenger: hudtype 1–2, vendt mot høyre',
+    '🚶🏼‍♂‍➡' => 'mannlig fotgjenger: hudtype 3, vendt mot høyre',
+    '🚶🏽‍♂‍➡' => 'mannlig fotgjenger: hudtype 4, vendt mot høyre',
+    '🚶🏾‍♂‍➡' => 'mannlig fotgjenger: hudtype 5, vendt mot høyre',
+    '🚶🏿‍♂‍➡' => 'mannlig fotgjenger: hudtype 6, vendt mot høyre',
+    '🧎🏻‍♀‍➡' => 'kvinne som kneler: hudtype 1–2, vendt mot høyre',
+    '🧎🏼‍♀‍➡' => 'kvinne som kneler: hudtype 3, vendt mot høyre',
+    '🧎🏽‍♀‍➡' => 'kvinne som kneler: hudtype 4, vendt mot høyre',
+    '🧎🏾‍♀‍➡' => 'kvinne som kneler: hudtype 5, vendt mot høyre',
+    '🧎🏿‍♀‍➡' => 'kvinne som kneler: hudtype 6, vendt mot høyre',
+    '🧎🏻‍♂‍➡' => 'mann som kneler: hudtype 1–2, vendt mot høyre',
+    '🧎🏼‍♂‍➡' => 'mann som kneler: hudtype 3, vendt mot høyre',
+    '🧎🏽‍♂‍➡' => 'mann som kneler: hudtype 4, vendt mot høyre',
+    '🧎🏾‍♂‍➡' => 'mann som kneler: hudtype 5, vendt mot høyre',
+    '🧎🏿‍♂‍➡' => 'mann som kneler: hudtype 6, vendt mot høyre',
+    '🧑🏻‍🦯‍➡' => 'person med blindestokk: hudtype 1–2, vendt mot høyre',
+    '🧑🏼‍🦯‍➡' => 'person med blindestokk: hudtype 3, vendt mot høyre',
+    '🧑🏽‍🦯‍➡' => 'person med blindestokk: hudtype 4, vendt mot høyre',
+    '🧑🏾‍🦯‍➡' => 'person med blindestokk: hudtype 5, vendt mot høyre',
+    '🧑🏿‍🦯‍➡' => 'person med blindestokk: hudtype 6, vendt mot høyre',
+    '👨🏻‍🦯‍➡' => 'mann med blindestokk: hudtype 1–2, vendt mot høyre',
+    '👨🏼‍🦯‍➡' => 'mann med blindestokk: hudtype 3, vendt mot høyre',
+    '👨🏽‍🦯‍➡' => 'mann med blindestokk: hudtype 4, vendt mot høyre',
+    '👨🏾‍🦯‍➡' => 'mann med blindestokk: hudtype 5, vendt mot høyre',
+    '👨🏿‍🦯‍➡' => 'mann med blindestokk: hudtype 6, vendt mot høyre',
+    '👩🏻‍🦯‍➡' => 'kvinne med blindestokk: hudtype 1–2, vendt mot høyre',
+    '👩🏼‍🦯‍➡' => 'kvinne med blindestokk: hudtype 3, vendt mot høyre',
+    '👩🏽‍🦯‍➡' => 'kvinne med blindestokk: hudtype 4, vendt mot høyre',
+    '👩🏾‍🦯‍➡' => 'kvinne med blindestokk: hudtype 5, vendt mot høyre',
+    '👩🏿‍🦯‍➡' => 'kvinne med blindestokk: hudtype 6, vendt mot høyre',
+    '🧑🏻‍🦼‍➡' => 'person i motorisert rullestol: hudtype 1–2, vendt mot høyre',
+    '🧑🏼‍🦼‍➡' => 'person i motorisert rullestol: hudtype 3, vendt mot høyre',
+    '🧑🏽‍🦼‍➡' => 'person i motorisert rullestol: hudtype 4, vendt mot høyre',
+    '🧑🏾‍🦼‍➡' => 'person i motorisert rullestol: hudtype 5, vendt mot høyre',
+    '🧑🏿‍🦼‍➡' => 'person i motorisert rullestol: hudtype 6, vendt mot høyre',
+    '👨🏻‍🦼‍➡' => 'mann i motorisert rullestol: hudtype 1–2, vendt mot høyre',
+    '👨🏼‍🦼‍➡' => 'mann i motorisert rullestol: hudtype 3, vendt mot høyre',
+    '👨🏽‍🦼‍➡' => 'mann i motorisert rullestol: hudtype 4, vendt mot høyre',
+    '👨🏾‍🦼‍➡' => 'mann i motorisert rullestol: hudtype 5, vendt mot høyre',
+    '👨🏿‍🦼‍➡' => 'mann i motorisert rullestol: hudtype 6, vendt mot høyre',
+    '👩🏻‍🦼‍➡' => 'kvinne i motorisert rullestol: hudtype 1–2, vendt mot høyre',
+    '👩🏼‍🦼‍➡' => 'kvinne i motorisert rullestol: hudtype 3, vendt mot høyre',
+    '👩🏽‍🦼‍➡' => 'kvinne i motorisert rullestol: hudtype 4, vendt mot høyre',
+    '👩🏾‍🦼‍➡' => 'kvinne i motorisert rullestol: hudtype 5, vendt mot høyre',
+    '👩🏿‍🦼‍➡' => 'kvinne i motorisert rullestol: hudtype 6, vendt mot høyre',
+    '🧑🏻‍🦽‍➡' => 'person i manuell rullestol: hudtype 1–2, vendt mot høyre',
+    '🧑🏼‍🦽‍➡' => 'person i manuell rullestol: hudtype 3, vendt mot høyre',
+    '🧑🏽‍🦽‍➡' => 'person i manuell rullestol: hudtype 4, vendt mot høyre',
+    '🧑🏾‍🦽‍➡' => 'person i manuell rullestol: hudtype 5, vendt mot høyre',
+    '🧑🏿‍🦽‍➡' => 'person i manuell rullestol: hudtype 6, vendt mot høyre',
+    '👨🏻‍🦽‍➡' => 'mann i manuell rullestol: hudtype 1–2, vendt mot høyre',
+    '👨🏼‍🦽‍➡' => 'mann i manuell rullestol: hudtype 3, vendt mot høyre',
+    '👨🏽‍🦽‍➡' => 'mann i manuell rullestol: hudtype 4, vendt mot høyre',
+    '👨🏾‍🦽‍➡' => 'mann i manuell rullestol: hudtype 5, vendt mot høyre',
+    '👨🏿‍🦽‍➡' => 'mann i manuell rullestol: hudtype 6, vendt mot høyre',
+    '👩🏻‍🦽‍➡' => 'kvinne i manuell rullestol: hudtype 1–2, vendt mot høyre',
+    '👩🏼‍🦽‍➡' => 'kvinne i manuell rullestol: hudtype 3, vendt mot høyre',
+    '👩🏽‍🦽‍➡' => 'kvinne i manuell rullestol: hudtype 4, vendt mot høyre',
+    '👩🏾‍🦽‍➡' => 'kvinne i manuell rullestol: hudtype 5, vendt mot høyre',
+    '👩🏿‍🦽‍➡' => 'kvinne i manuell rullestol: hudtype 6, vendt mot høyre',
+    '🏃🏻‍♀‍➡' => 'kvinnelig løper: hudtype 1–2, vendt mot høyre',
+    '🏃🏼‍♀‍➡' => 'kvinnelig løper: hudtype 3, vendt mot høyre',
+    '🏃🏽‍♀‍➡' => 'kvinnelig løper: hudtype 4, vendt mot høyre',
+    '🏃🏾‍♀‍➡' => 'kvinnelig løper: hudtype 5, vendt mot høyre',
+    '🏃🏿‍♀‍➡' => 'kvinnelig løper: hudtype 6, vendt mot høyre',
+    '🏃🏻‍♂‍➡' => 'mannlig løper: hudtype 1–2, vendt mot høyre',
+    '🏃🏼‍♂‍➡' => 'mannlig løper: hudtype 3, vendt mot høyre',
+    '🏃🏽‍♂‍➡' => 'mannlig løper: hudtype 4, vendt mot høyre',
+    '🏃🏾‍♂‍➡' => 'mannlig løper: hudtype 5, vendt mot høyre',
+    '🏃🏿‍♂‍➡' => 'mannlig løper: hudtype 6, vendt mot høyre',
     '🫱🏻‍🫲🏼' => 'håndhilse: hudtype 1–2, hudtype 3',
     '🫱🏻‍🫲🏽' => 'håndhilse: hudtype 1–2, hudtype 4',
     '🫱🏻‍🫲🏾' => 'håndhilse: hudtype 1–2, hudtype 5',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'håndhilse: hudtype 6, hudtype 3',
     '🫱🏿‍🫲🏽' => 'håndhilse: hudtype 6, hudtype 4',
     '🫱🏿‍🫲🏾' => 'håndhilse: hudtype 6, hudtype 5',
-    '🚶‍♀‍➡' => 'kvinnelig fotgjenger vendt mot høyre',
-    '🚶‍♂‍➡' => 'mannlig fotgjenger vendt mot høyre',
-    '🧎‍♀‍➡' => 'kvinne som kneler vendt mot høyre',
-    '🧎‍♂‍➡' => 'mann som kneler vendt mot høyre',
-    '🧑‍🦯‍➡' => 'person med blindestokk vendt mot høyre',
-    '👨‍🦯‍➡' => 'mann med blindestokk vendt mot høyre',
-    '👩‍🦯‍➡' => 'kvinne med blindestokk vendt mot høyre',
-    '🧑‍🦼‍➡' => 'person i motorisert rullestol vendt mot høyre',
-    '👨‍🦼‍➡' => 'mann i motorisert rullestol vendt mot høyre',
-    '👩‍🦼‍➡' => 'kvinne i motorisert rullestol vendt mot høyre',
-    '🧑‍🦽‍➡' => 'person i manuell rullestol vendt mot høyre',
-    '👨‍🦽‍➡' => 'mann i manuell rullestol vendt mot høyre',
-    '👩‍🦽‍➡' => 'kvinne i manuell rullestol vendt mot høyre',
-    '🏃‍♀‍➡' => 'kvinnelig løper vendt mot høyre',
-    '🏃‍♂‍➡' => 'mannlig løper vendt mot høyre',
+    '🚶‍♀‍➡' => 'kvinnelig fotgjenger: vendt mot høyre',
+    '🚶‍♂‍➡' => 'mannlig fotgjenger: vendt mot høyre',
+    '🧎‍♀‍➡' => 'kvinne som kneler: vendt mot høyre',
+    '🧎‍♂‍➡' => 'mann som kneler: vendt mot høyre',
+    '🧑‍🦯‍➡' => 'person med blindestokk: vendt mot høyre',
+    '👨‍🦯‍➡' => 'mann med blindestokk: vendt mot høyre',
+    '👩‍🦯‍➡' => 'kvinne med blindestokk: vendt mot høyre',
+    '🧑‍🦼‍➡' => 'person i motorisert rullestol: vendt mot høyre',
+    '👨‍🦼‍➡' => 'mann i motorisert rullestol: vendt mot høyre',
+    '👩‍🦼‍➡' => 'kvinne i motorisert rullestol: vendt mot høyre',
+    '🧑‍🦽‍➡' => 'person i manuell rullestol: vendt mot høyre',
+    '👨‍🦽‍➡' => 'mann i manuell rullestol: vendt mot høyre',
+    '👩‍🦽‍➡' => 'kvinne i manuell rullestol: vendt mot høyre',
+    '🏃‍♀‍➡' => 'kvinnelig løper: vendt mot høyre',
+    '🏃‍♂‍➡' => 'mannlig løper: vendt mot høyre',
     '👩‍❤‍👨' => 'par med hjerte: kvinne, mann',
     '👨‍❤‍👨' => 'par med hjerte: mann, mann',
     '👩‍❤‍👩' => 'par med hjerte: kvinne, kvinne',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'voksen: hudtype 4, skallet',
     '🧑🏾‍🦲' => 'voksen: hudtype 5, skallet',
     '🧑🏿‍🦲' => 'voksen: hudtype 6, skallet',
+    '🧑🏻‍🩰' => 'ballettdanser: hudtype 1–2',
+    '🧑🏼‍🩰' => 'ballettdanser: hudtype 3',
+    '🧑🏽‍🩰' => 'ballettdanser: hudtype 4',
+    '🧑🏾‍🩰' => 'ballettdanser: hudtype 5',
+    '🧑🏿‍🩰' => 'ballettdanser: hudtype 6',
     '🧔🏻‍♂' => 'mann: hudtype 1–2, skjegg',
     '🧔🏼‍♂' => 'mann: hudtype 3, skjegg',
     '🧔🏽‍♂' => 'mann: hudtype 4, skjegg',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'kvinnelig fotgjenger: hudtype 4',
     '🚶🏾‍♀' => 'kvinnelig fotgjenger: hudtype 5',
     '🚶🏿‍♀' => 'kvinnelig fotgjenger: hudtype 6',
-    '🚶🏻‍➡' => 'fotgjenger vendt mot høyre',
-    '🚶🏼‍➡' => 'fotgjenger vendt mot høyre',
-    '🚶🏽‍➡' => 'fotgjenger vendt mot høyre',
-    '🚶🏾‍➡' => 'fotgjenger vendt mot høyre',
-    '🚶🏿‍➡' => 'fotgjenger vendt mot høyre',
+    '🚶🏻‍➡' => 'fotgjenger: hudtype 1–2, vendt mot høyre',
+    '🚶🏼‍➡' => 'fotgjenger: hudtype 3, vendt mot høyre',
+    '🚶🏽‍➡' => 'fotgjenger: hudtype 4, vendt mot høyre',
+    '🚶🏾‍➡' => 'fotgjenger: hudtype 5, vendt mot høyre',
+    '🚶🏿‍➡' => 'fotgjenger: hudtype 6, vendt mot høyre',
     '🧍🏻‍♂' => 'mann som står: hudtype 1–2',
     '🧍🏼‍♂' => 'mann som står: hudtype 3',
     '🧍🏽‍♂' => 'mann som står: hudtype 4',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'kvinne som kneler: hudtype 4',
     '🧎🏾‍♀' => 'kvinne som kneler: hudtype 5',
     '🧎🏿‍♀' => 'kvinne som kneler: hudtype 6',
-    '🧎🏻‍➡' => 'person som kneler vendt mot høyre',
-    '🧎🏼‍➡' => 'person som kneler vendt mot høyre',
-    '🧎🏽‍➡' => 'person som kneler vendt mot høyre',
-    '🧎🏾‍➡' => 'person som kneler vendt mot høyre',
-    '🧎🏿‍➡' => 'person som kneler vendt mot høyre',
+    '🧎🏻‍➡' => 'person som kneler: hudtype 1–2, vendt mot høyre',
+    '🧎🏼‍➡' => 'person som kneler: hudtype 3, vendt mot høyre',
+    '🧎🏽‍➡' => 'person som kneler: hudtype 4, vendt mot høyre',
+    '🧎🏾‍➡' => 'person som kneler: hudtype 5, vendt mot høyre',
+    '🧎🏿‍➡' => 'person som kneler: hudtype 6, vendt mot høyre',
     '🧑🏻‍🦯' => 'person med blindestokk: hudtype 1–2',
     '🧑🏼‍🦯' => 'person med blindestokk: hudtype 3',
     '🧑🏽‍🦯' => 'person med blindestokk: hudtype 4',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'kvinnelig løper: hudtype 4',
     '🏃🏾‍♀' => 'kvinnelig løper: hudtype 5',
     '🏃🏿‍♀' => 'kvinnelig løper: hudtype 6',
-    '🏃🏻‍➡' => 'løper vendt mot høyre',
-    '🏃🏼‍➡' => 'løper vendt mot høyre',
-    '🏃🏽‍➡' => 'løper vendt mot høyre',
-    '🏃🏾‍➡' => 'løper vendt mot høyre',
-    '🏃🏿‍➡' => 'løper vendt mot høyre',
+    '🏃🏻‍➡' => 'løper: hudtype 1–2, vendt mot høyre',
+    '🏃🏼‍➡' => 'løper: hudtype 3, vendt mot høyre',
+    '🏃🏽‍➡' => 'løper: hudtype 4, vendt mot høyre',
+    '🏃🏾‍➡' => 'løper: hudtype 5, vendt mot høyre',
+    '🏃🏿‍➡' => 'løper: hudtype 6, vendt mot høyre',
+    '👯🏻‍♀' => 'kvinner med kaninører: hudtype 1–2',
+    '👯🏼‍♀' => 'kvinner med kaninører: hudtype 3',
+    '👯🏽‍♀' => 'kvinner med kaninører: hudtype 4',
+    '👯🏾‍♀' => 'kvinner med kaninører: hudtype 5',
+    '👯🏿‍♀' => 'kvinner med kaninører: hudtype 6',
+    '👯🏻‍♂' => 'menn med kaninører: hudtype 1–2',
+    '👯🏼‍♂' => 'menn med kaninører: hudtype 3',
+    '👯🏽‍♂' => 'menn med kaninører: hudtype 4',
+    '👯🏾‍♂' => 'menn med kaninører: hudtype 5',
+    '👯🏿‍♂' => 'menn med kaninører: hudtype 6',
     '🧖🏻‍♂' => 'mann i badstu: hudtype 1–2',
     '🧖🏼‍♂' => 'mann i badstu: hudtype 3',
     '🧖🏽‍♂' => 'mann i badstu: hudtype 4',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'kvinne som slår hjul: hudtype 4',
     '🤸🏾‍♀' => 'kvinne som slår hjul: hudtype 5',
     '🤸🏿‍♀' => 'kvinne som slår hjul: hudtype 6',
+    '🤼🏻‍♀' => 'kvinnelige brytere: hudtype 1–2',
+    '🤼🏼‍♀' => 'kvinnelige brytere: hudtype 3',
+    '🤼🏽‍♀' => 'kvinnelige brytere: hudtype 4',
+    '🤼🏾‍♀' => 'kvinnelige brytere: hudtype 5',
+    '🤼🏿‍♀' => 'kvinnelige brytere: hudtype 6',
+    '🤼🏻‍♂' => 'mannlige brytere: hudtype 1–2',
+    '🤼🏼‍♂' => 'mannlige brytere: hudtype 3',
+    '🤼🏽‍♂' => 'mannlige brytere: hudtype 4',
+    '🤼🏾‍♂' => 'mannlige brytere: hudtype 5',
+    '🤼🏿‍♂' => 'mannlige brytere: hudtype 6',
     '🤽🏻‍♂' => 'mannlig vannpolospiller: hudtype 1–2',
     '🤽🏼‍♂' => 'mannlig vannpolospiller: hudtype 3',
     '🤽🏽‍♂' => 'mannlig vannpolospiller: hudtype 4',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'kvinne: kruset hår',
     '👩‍🦳' => 'kvinne: grått hår',
     '👩‍🦲' => 'kvinne: skallet',
-    '🚶‍➡' => 'fotgjenger vendt mot høyre',
-    '🧎‍➡' => 'person som kneler vendt mot høyre',
-    '🏃‍➡' => 'løper vendt mot høyre',
+    '🚶‍➡' => 'fotgjenger: vendt mot høyre',
+    '🧎‍➡' => 'person som kneler: vendt mot høyre',
+    '🏃‍➡' => 'løper: vendt mot høyre',
     '👨‍👦' => 'familie: mann, gutt',
     '👨‍👧' => 'familie: mann, jente',
     '👩‍👦' => 'familie: kvinne, gutt',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'kvinne i manuell rullestol',
     '🏃‍♂' => 'mannlig løper',
     '🏃‍♀' => 'kvinnelig løper',
+    '🧑‍🩰' => 'ballettdanser',
     '👯‍♂' => 'menn med kaninører',
     '👯‍♀' => 'kvinner med kaninører',
     '🧖‍♂' => 'mann i badstu',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'svevende mann i dress: hudtype 4',
     '🕴🏾' => 'svevende mann i dress: hudtype 5',
     '🕴🏿' => 'svevende mann i dress: hudtype 6',
+    '👯🏻' => 'personer med kaninører: hudtype 1–2',
+    '👯🏼' => 'personer med kaninører: hudtype 3',
+    '👯🏽' => 'personer med kaninører: hudtype 4',
+    '👯🏾' => 'personer med kaninører: hudtype 5',
+    '👯🏿' => 'personer med kaninører: hudtype 6',
     '🧖🏻' => 'person i badstu: hudtype 1–2',
     '🧖🏼' => 'person i badstu: hudtype 3',
     '🧖🏽' => 'person i badstu: hudtype 4',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'slå hjul: hudtype 4',
     '🤸🏾' => 'slå hjul: hudtype 5',
     '🤸🏿' => 'slå hjul: hudtype 6',
+    '🤼🏻' => 'brytere: hudtype 1–2',
+    '🤼🏼' => 'brytere: hudtype 3',
+    '🤼🏽' => 'brytere: hudtype 4',
+    '🤼🏾' => 'brytere: hudtype 5',
+    '🤼🏿' => 'brytere: hudtype 6',
     '🤽🏻' => 'vannpolo: hudtype 1–2',
     '🤽🏼' => 'vannpolo: hudtype 3',
     '🤽🏽' => 'vannpolo: hudtype 4',
@@ -2391,13 +2547,6 @@
     '🏽' => 'hudtype 4',
     '🏾' => 'hudtype 5',
     '🏿' => 'hudtype 6',
-    '🪉' => 'harpe',
-    '🪏' => 'spade',
-    '🪾' => 'bladløst tre',
-    '🫆' => 'fingeravtrykk',
-    '🫜' => 'rotgrønnsak',
-    '🫟' => 'sprut',
-    '🫩' => 'fjes med poser under øynene',
     '😀' => 'glisefjes',
     '😃' => 'glisende fjes med vidåpne øyne',
     '😄' => 'glisende fjes med smilende øyne',
@@ -2451,6 +2600,7 @@
     '😪' => 'søvnig',
     '🤤' => 'sikler',
     '😴' => 'sover',
+    '🫩' => 'fjes med poser under øynene',
     '😷' => 'fjes med munnbind',
     '🤒' => 'fjes med termometer',
     '🤕' => 'bandasjert hode',
@@ -2477,6 +2627,7 @@
     '😯' => 'overrasket',
     '😲' => 'sjokkert',
     '😳' => 'rødmer',
+    '🫪' => 'fordreid fjes',
     '🥺' => 'bedende fjes',
     '🥹' => 'fjes som holder tilbake tårene',
     '😦' => 'oppgitt',
@@ -2548,6 +2699,7 @@
     '💋' => 'kyssemerke',
     '💯' => 'hundre poeng',
     '💢' => 'sinne',
+    '🫯' => 'slåsskampsky',
     '💥' => 'krasj',
     '💫' => 'svimmel',
     '💦' => 'svettedråper',
@@ -2671,6 +2823,7 @@
     '🧞' => 'ånd',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'hårete vesen',
     '💆' => 'ansiktsmassasje',
     '💇' => 'hårklipp',
     '🚶' => 'fotgjenger',
@@ -2714,6 +2867,7 @@
     '🫂' => 'klem',
     '👪' => 'familie',
     '👣' => 'fotavtrykk',
+    '🫆' => 'fingeravtrykk',
     '🦰' => 'rødt hår',
     '🦱' => 'kruset hår',
     '🦳' => 'grått hår',
@@ -2813,6 +2967,7 @@
     '🐳' => 'sprutende hval',
     '🐋' => 'hval',
     '🐬' => 'delfin',
+    '🫍' => 'spekkhogger',
     '🦭' => 'sel',
     '🐟' => 'fisk',
     '🐠' => 'tropisk fisk',
@@ -2822,6 +2977,11 @@
     '🐚' => 'spiralskjell',
     '🪸' => 'korall',
     '🪼' => 'manet',
+    '🦀' => 'krabbe',
+    '🦞' => 'hummer',
+    '🦐' => 'reke',
+    '🦑' => 'akkar',
+    '🦪' => 'østers',
     '🐌' => 'snegle',
     '🦋' => 'sommerfugl',
     '🐛' => 'insekt',
@@ -2866,6 +3026,7 @@
     '🪹' => 'tomt rede',
     '🪺' => 'rede med egg',
     '🍄' => 'sopp',
+    '🪾' => 'bladløst tre',
     '🍇' => 'druer',
     '🍈' => 'melon',
     '🍉' => 'vannmelon',
@@ -2902,6 +3063,7 @@
     '🌰' => 'kastanje',
     '🫚' => 'ingefærrot',
     '🫛' => 'ertebelg',
+    '🫜' => 'rotgrønnsak',
     '🍞' => 'brød',
     '🥐' => 'croissant',
     '🥖' => 'bagett',
@@ -2953,11 +3115,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'lykkekake',
     '🥡' => 'takeaway-eske',
-    '🦀' => 'krabbe',
-    '🦞' => 'hummer',
-    '🦐' => 'reke',
-    '🦑' => 'akkar',
-    '🦪' => 'østers',
     '🍦' => 'soft-is',
     '🍧' => 'slush-is',
     '🍨' => 'iskrem',
@@ -3008,6 +3165,7 @@
     '🧭' => 'kompass',
     '🏔' => 'snødekt fjell',
     '⛰' => 'fjell',
+    '🛘' => 'jordskred',
     '🌋' => 'vulkan',
     '🗻' => 'Fuji-fjellet',
     '🏕' => 'telttur',
@@ -3368,16 +3526,18 @@
     '🎧' => 'hodetelefoner',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'trompet',
+    '🪊' => 'trombone',
     '🪗' => 'trekkspill',
     '🎸' => 'gitar',
     '🎹' => 'piano',
-    '🎺' => 'trompet',
     '🎻' => 'fiolin',
     '🪕' => 'banjo',
     '🥁' => 'tromme',
     '🪘' => 'langtromme',
     '🪇' => 'marakas',
     '🪈' => 'fløyte',
+    '🪉' => 'harpe',
     '📱' => 'mobiltelefon',
     '📲' => 'mobiltelefon med pil',
     '☎' => 'telefon',
@@ -3431,8 +3591,9 @@
     '📑' => 'bokmerkefane',
     '🔖' => 'bokmerke',
     '🏷' => 'etikett',
-    '💰' => 'pengesekk',
     '🪙' => 'mynt',
+    '💰' => 'pengesekk',
+    '🪎' => 'skattkiste',
     '💴' => 'yenseddel',
     '💵' => 'dollarseddel',
     '💶' => 'euroseddel',
@@ -3515,6 +3676,7 @@
     '🧰' => 'verktøykasse',
     '🧲' => 'magnet',
     '🪜' => 'stige',
+    '🪏' => 'spade',
     '⚗' => 'destillerkolbe',
     '🧪' => 'prøverør',
     '🧫' => 'petriskål',
@@ -3698,6 +3860,7 @@
     '✴' => 'åttetagget stjerne',
     '❇' => 'gnist',
     '™' => 'varemerke',
+    '🫟' => 'sprut',
     '🔠' => 'store bokstaver',
     '🔡' => 'små bokstaver',
     '🔢' => 'tall',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nso.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nso.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nso.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-nso.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'atlana: mosadi, mosadi, mmala wa letlalo wo moswana, mmala wa letlalo wa magareng',
     '👩🏿‍❤‍💋‍👩🏾' => 'atlana: mosadi, mosadi, mmala wa letlalo wo moswana, mmala wa letlalo wo moswana wa magareng',
     '👩🏿‍❤‍💋‍👩🏿' => 'atlana: mosadi, mosadi, mmala wa letlalo wo moswana',
+    '🧑🏻‍🫯‍🧑🏼' => 'motho o lwa reseling: mmala wa letlalo wa go taga, mmala wa letlalo wa go taga wa magareng',
+    '🧑🏻‍🫯‍🧑🏽' => 'motho o lwa reseling: mmala wa letlalo wa go taga, mmala wa letlalo wa magareng',
+    '🧑🏻‍🫯‍🧑🏾' => 'motho o lwa reseling: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana wa magareng',
+    '🧑🏻‍🫯‍🧑🏿' => 'motho o lwa reseling: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana',
+    '🧑🏼‍🫯‍🧑🏻' => 'motho o lwa reseling: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa go taga',
+    '🧑🏼‍🫯‍🧑🏽' => 'motho o lwa reseling: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa magareng',
+    '🧑🏼‍🫯‍🧑🏾' => 'motho o lwa reseling: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '🧑🏼‍🫯‍🧑🏿' => 'motho o lwa reseling: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana',
+    '🧑🏽‍🫯‍🧑🏻' => 'motho o lwa reseling: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga',
+    '🧑🏽‍🫯‍🧑🏼' => 'motho o lwa reseling: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '🧑🏽‍🫯‍🧑🏾' => 'motho o lwa reseling: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '🧑🏽‍🫯‍🧑🏿' => 'motho o lwa reseling: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana',
+    '🧑🏾‍🫯‍🧑🏻' => 'motho o lwa reseling: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga',
+    '🧑🏾‍🫯‍🧑🏼' => 'motho o lwa reseling: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '🧑🏾‍🫯‍🧑🏽' => 'motho o lwa reseling: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa magareng',
+    '🧑🏾‍🫯‍🧑🏿' => 'motho o lwa reseling: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wo moswana',
+    '🧑🏿‍🫯‍🧑🏻' => 'motho o lwa reseling: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga',
+    '🧑🏿‍🫯‍🧑🏼' => 'motho o lwa reseling: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga wa magareng',
+    '🧑🏿‍🫯‍🧑🏽' => 'motho o lwa reseling: mmala wa letlalo wo moswana, mmala wa letlalo wa magareng',
+    '🧑🏿‍🫯‍🧑🏾' => 'motho o lwa reseling: mmala wa letlalo wo moswana, mmala wa letlalo wo moswana wa magareng',
     '🧑🏻‍❤‍🧑🏼' => 'balekane ka pelwana: motho yo mogolo, motho yo mogolo, mmala wa letlalo wa go taga, mmala wa letlalo wa go taga wa magareng',
     '🧑🏻‍❤‍🧑🏽' => 'balekane ka pelwana: motho yo mogolo, motho yo mogolo, mmala wa letlalo wa go taga, mmala wa letlalo wa magareng',
     '🧑🏻‍❤‍🧑🏾' => 'balekane ka pelwana: motho yo mogolo, motho yo mogolo, mmala wa letlalo wa go taga, mmala wa letlalo wo moswana wa magareng',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'balekane ka pelwana: motho yo mogolo, motho yo mogolo, mmala wa letlalo wo moswana, mmala wa letlalo wa go taga wa magareng',
     '🧑🏿‍❤‍🧑🏽' => 'balekane ka pelwana: motho yo mogolo, motho yo mogolo, mmala wa letlalo wo moswana, mmala wa letlalo wa magareng',
     '🧑🏿‍❤‍🧑🏾' => 'balekane ka pelwana: motho yo mogolo, motho yo mogolo, mmala wa letlalo wo moswana, mmala wa letlalo wo moswana wa magareng',
+    '🧑🏻‍🐰‍🧑🏼' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa go taga, mmala wa letlalo wa go taga wa magareng',
+    '🧑🏻‍🐰‍🧑🏽' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa go taga, mmala wa letlalo wa magareng',
+    '🧑🏻‍🐰‍🧑🏾' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana wa magareng',
+    '🧑🏻‍🐰‍🧑🏿' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana',
+    '🧑🏼‍🐰‍🧑🏻' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa go taga',
+    '🧑🏼‍🐰‍🧑🏽' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa magareng',
+    '🧑🏼‍🐰‍🧑🏾' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '🧑🏼‍🐰‍🧑🏿' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana',
+    '🧑🏽‍🐰‍🧑🏻' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga',
+    '🧑🏽‍🐰‍🧑🏼' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '🧑🏽‍🐰‍🧑🏾' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '🧑🏽‍🐰‍🧑🏿' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana',
+    '🧑🏾‍🐰‍🧑🏻' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga',
+    '🧑🏾‍🐰‍🧑🏼' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '🧑🏾‍🐰‍🧑🏽' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa magareng',
+    '🧑🏾‍🐰‍🧑🏿' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wo moswana',
+    '🧑🏿‍🐰‍🧑🏻' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga',
+    '🧑🏿‍🐰‍🧑🏼' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga wa magareng',
+    '🧑🏿‍🐰‍🧑🏽' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wo moswana, mmala wa letlalo wa magareng',
+    '🧑🏿‍🐰‍🧑🏾' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wo moswana, mmala wa letlalo wo moswana wa magareng',
+    '👨🏻‍🫯‍👨🏼' => 'banna ba a resela: mmala wa letlalo wa go taga, mmala wa letlalo wa go taga wa magareng',
+    '👨🏻‍🫯‍👨🏽' => 'banna ba a resela: mmala wa letlalo wa go taga, mmala wa letlalo wa magareng',
+    '👨🏻‍🫯‍👨🏾' => 'banna ba a resela: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana wa magareng',
+    '👨🏻‍🫯‍👨🏿' => 'banna ba a resela: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana',
+    '👨🏼‍🫯‍👨🏻' => 'banna ba a resela: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa go taga',
+    '👨🏼‍🫯‍👨🏽' => 'banna ba a resela: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa magareng',
+    '👨🏼‍🫯‍👨🏾' => 'banna ba a resela: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '👨🏼‍🫯‍👨🏿' => 'banna ba a resela: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana',
+    '👨🏽‍🫯‍👨🏻' => 'banna ba a resela: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga',
+    '👨🏽‍🫯‍👨🏼' => 'banna ba a resela: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '👨🏽‍🫯‍👨🏾' => 'banna ba a resela: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '👨🏽‍🫯‍👨🏿' => 'banna ba a resela: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana',
+    '👨🏾‍🫯‍👨🏻' => 'banna ba a resela: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga',
+    '👨🏾‍🫯‍👨🏼' => 'banna ba a resela: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '👨🏾‍🫯‍👨🏽' => 'banna ba a resela: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa magareng',
+    '👨🏾‍🫯‍👨🏿' => 'banna ba a resela: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wo moswana',
+    '👨🏿‍🫯‍👨🏻' => 'banna ba a resela: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga',
+    '👨🏿‍🫯‍👨🏼' => 'banna ba a resela: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga wa magareng',
+    '👨🏿‍🫯‍👨🏽' => 'banna ba a resela: mmala wa letlalo wo moswana, mmala wa letlalo wa magareng',
+    '👨🏿‍🫯‍👨🏾' => 'banna ba a resela: mmala wa letlalo wo moswana, mmala wa letlalo wo moswana wa magareng',
     '👨🏻‍❤‍👨🏻' => 'balekane ka pelwana: monna, monna, mmala wa letlalo wa go taga',
     '👨🏻‍❤‍👨🏼' => 'balekane ka pelwana: monna, monna, mmala wa letlalo wa go taga, mmala wa letlalo wa go taga wa magareng',
     '👨🏻‍❤‍👨🏽' => 'balekane ka pelwana: monna, monna, mmala wa letlalo wa go taga, mmala wa letlalo wa magareng',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'balekane ka pelwana: monna, monna, mmala wa letlalo wo moswana, mmala wa letlalo wa magareng',
     '👨🏿‍❤‍👨🏾' => 'balekane ka pelwana: monna, monna, mmala wa letlalo wo moswana, mmala wa letlalo wo moswana wa magareng',
     '👨🏿‍❤‍👨🏿' => 'balekane ka pelwana: monna, monna, mmala wa letlalo wo moswana',
+    '👨🏻‍🐰‍👨🏼' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga, mmala wa letlalo wa go taga wa magareng',
+    '👨🏻‍🐰‍👨🏽' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga, mmala wa letlalo wa magareng',
+    '👨🏻‍🐰‍👨🏾' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana wa magareng',
+    '👨🏻‍🐰‍👨🏿' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana',
+    '👨🏼‍🐰‍👨🏻' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa go taga',
+    '👨🏼‍🐰‍👨🏽' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa magareng',
+    '👨🏼‍🐰‍👨🏾' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '👨🏼‍🐰‍👨🏿' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana',
+    '👨🏽‍🐰‍👨🏻' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga',
+    '👨🏽‍🐰‍👨🏼' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '👨🏽‍🐰‍👨🏾' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '👨🏽‍🐰‍👨🏿' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana',
+    '👨🏾‍🐰‍👨🏻' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga',
+    '👨🏾‍🐰‍👨🏼' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '👨🏾‍🐰‍👨🏽' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa magareng',
+    '👨🏾‍🐰‍👨🏿' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wo moswana',
+    '👨🏿‍🐰‍👨🏻' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga',
+    '👨🏿‍🐰‍👨🏼' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga wa magareng',
+    '👨🏿‍🐰‍👨🏽' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana, mmala wa letlalo wa magareng',
+    '👨🏿‍🐰‍👨🏾' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana, mmala wa letlalo wo moswana wa magareng',
+    '👩🏻‍🫯‍👩🏼' => 'mosadi o lwa reseling: mmala wa letlalo wa go taga, mmala wa letlalo wa go taga wa magareng',
+    '👩🏻‍🫯‍👩🏽' => 'mosadi o lwa reseling: mmala wa letlalo wa go taga, mmala wa letlalo wa magareng',
+    '👩🏻‍🫯‍👩🏾' => 'mosadi o lwa reseling: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana wa magareng',
+    '👩🏻‍🫯‍👩🏿' => 'mosadi o lwa reseling: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana',
+    '👩🏼‍🫯‍👩🏻' => 'mosadi o lwa reseling: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa go taga',
+    '👩🏼‍🫯‍👩🏽' => 'mosadi o lwa reseling: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa magareng',
+    '👩🏼‍🫯‍👩🏾' => 'mosadi o lwa reseling: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '👩🏼‍🫯‍👩🏿' => 'mosadi o lwa reseling: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana',
+    '👩🏽‍🫯‍👩🏻' => 'mosadi o lwa reseling: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga',
+    '👩🏽‍🫯‍👩🏼' => 'mosadi o lwa reseling: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '👩🏽‍🫯‍👩🏾' => 'mosadi o lwa reseling: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '👩🏽‍🫯‍👩🏿' => 'mosadi o lwa reseling: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana',
+    '👩🏾‍🫯‍👩🏻' => 'mosadi o lwa reseling: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga',
+    '👩🏾‍🫯‍👩🏼' => 'mosadi o lwa reseling: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '👩🏾‍🫯‍👩🏽' => 'mosadi o lwa reseling: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa magareng',
+    '👩🏾‍🫯‍👩🏿' => 'mosadi o lwa reseling: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wo moswana',
+    '👩🏿‍🫯‍👩🏻' => 'mosadi o lwa reseling: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga',
+    '👩🏿‍🫯‍👩🏼' => 'mosadi o lwa reseling: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga wa magareng',
+    '👩🏿‍🫯‍👩🏽' => 'mosadi o lwa reseling: mmala wa letlalo wo moswana, mmala wa letlalo wa magareng',
+    '👩🏿‍🫯‍👩🏾' => 'mosadi o lwa reseling: mmala wa letlalo wo moswana, mmala wa letlalo wo moswana wa magareng',
     '👩🏻‍❤‍👨🏻' => 'balekane ka pelwana: mosadi, monna, mmala wa letlalo wa go taga',
     '👩🏻‍❤‍👨🏼' => 'balekane ka pelwana: mosadi, monna, mmala wa letlalo wa go taga, mmala wa letlalo wa go taga wa magareng',
     '👩🏻‍❤‍👨🏽' => 'balekane ka pelwana: mosadi, monna, mmala wa letlalo wa go taga, mmala wa letlalo wa magareng',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'balekane ka pelwana: mosadi, mosadi, mmala wa letlalo wo moswana, mmala wa letlalo wa magareng',
     '👩🏿‍❤‍👩🏾' => 'balekane ka pelwana: mosadi, mosadi, mmala wa letlalo wo moswana, mmala wa letlalo wo moswana wa magareng',
     '👩🏿‍❤‍👩🏿' => 'balekane ka pelwana: mosadi, mosadi, mmala wa letlalo wo moswana',
+    '👩🏻‍🐰‍👩🏼' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga, mmala wa letlalo wa go taga wa magareng',
+    '👩🏻‍🐰‍👩🏽' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga, mmala wa letlalo wa magareng',
+    '👩🏻‍🐰‍👩🏾' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana wa magareng',
+    '👩🏻‍🐰‍👩🏿' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana',
+    '👩🏼‍🐰‍👩🏻' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa go taga',
+    '👩🏼‍🐰‍👩🏽' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wa magareng',
+    '👩🏼‍🐰‍👩🏾' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '👩🏼‍🐰‍👩🏿' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga wa magareng, mmala wa letlalo wo moswana',
+    '👩🏽‍🐰‍👩🏻' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga',
+    '👩🏽‍🐰‍👩🏼' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '👩🏽‍🐰‍👩🏾' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana wa magareng',
+    '👩🏽‍🐰‍👩🏿' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa magareng, mmala wa letlalo wo moswana',
+    '👩🏾‍🐰‍👩🏻' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga',
+    '👩🏾‍🐰‍👩🏼' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa go taga wa magareng',
+    '👩🏾‍🐰‍👩🏽' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wa magareng',
+    '👩🏾‍🐰‍👩🏿' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana wa magareng, mmala wa letlalo wo moswana',
+    '👩🏿‍🐰‍👩🏻' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga',
+    '👩🏿‍🐰‍👩🏼' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana, mmala wa letlalo wa go taga wa magareng',
+    '👩🏿‍🐰‍👩🏽' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana, mmala wa letlalo wa magareng',
+    '👩🏿‍🐰‍👩🏾' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana, mmala wa letlalo wo moswana wa magareng',
     '👩🏻‍🤝‍👩🏼' => 'basadi ba babedi ba swarane ka matsogo: mmala wa letlalo wa go taga, mmala wa letlalo wa go taga wa magareng',
     '👩🏻‍🤝‍👩🏽' => 'basadi ba babedi ba swarane ka matsogo: mmala wa letlalo wa go taga, mmala wa letlalo wa magareng',
     '👩🏻‍🤝‍👩🏾' => 'basadi ba babedi ba swarane ka matsogo: mmala wa letlalo wa go taga, mmala wa letlalo wo moswana wa magareng',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'mosadi o a kitima: mmala wa letlalo wa magareng',
     '🏃🏾‍♀' => 'mosadi o a kitima: mmala wa letlalo wo moswana wa magareng',
     '🏃🏿‍♀' => 'mosadi o a kitima: mmala wa letlalo wo moswana',
+    '👯🏻‍♀' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga',
+    '👯🏼‍♀' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga wa magareng',
+    '👯🏽‍♀' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa magareng',
+    '👯🏾‍♀' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana wa magareng',
+    '👯🏿‍♀' => 'mosadi wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana',
+    '👯🏻‍♂' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga',
+    '👯🏼‍♂' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa go taga wa magareng',
+    '👯🏽‍♂' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wa magareng',
+    '👯🏾‍♂' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana wa magareng',
+    '👯🏿‍♂' => 'monna wa ditsebe tša mmutla o moletlong: mmala wa letlalo wo moswana',
     '🧖🏻‍♂' => 'monna ka phaphošing ya moya wa go fiša: mmala wa letlalo wa go taga',
     '🧖🏼‍♂' => 'monna ka phaphošing ya moya wa go fiša: mmala wa letlalo wa go taga wa magareng',
     '🧖🏽‍♂' => 'monna ka phaphošing ya moya wa go fiša: mmala wa letlalo wa magareng',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'mosadi o a khethawila: mmala wa letlalo wa magareng',
     '🤸🏾‍♀' => 'mosadi o a khethawila: mmala wa letlalo wo moswana wa magareng',
     '🤸🏿‍♀' => 'mosadi o a khethawila: mmala wa letlalo wo moswana',
+    '🤼🏻‍♀' => 'mosadi o lwa reseling: mmala wa letlalo wa go taga',
+    '🤼🏼‍♀' => 'mosadi o lwa reseling: mmala wa letlalo wa go taga wa magareng',
+    '🤼🏽‍♀' => 'mosadi o lwa reseling: mmala wa letlalo wa magareng',
+    '🤼🏾‍♀' => 'mosadi o lwa reseling: mmala wa letlalo wo moswana wa magareng',
+    '🤼🏿‍♀' => 'mosadi o lwa reseling: mmala wa letlalo wo moswana',
+    '🤼🏻‍♂' => 'banna ba a resela: mmala wa letlalo wa go taga',
+    '🤼🏼‍♂' => 'banna ba a resela: mmala wa letlalo wa go taga wa magareng',
+    '🤼🏽‍♂' => 'banna ba a resela: mmala wa letlalo wa magareng',
+    '🤼🏾‍♂' => 'banna ba a resela: mmala wa letlalo wo moswana wa magareng',
+    '🤼🏿‍♂' => 'banna ba a resela: mmala wa letlalo wo moswana',
     '🤽🏻‍♂' => 'monna o bapala polo ya ka meetseng: mmala wa letlalo wa go taga',
     '🤽🏼‍♂' => 'monna o bapala polo ya ka meetseng: mmala wa letlalo wa go taga wa magareng',
     '🤽🏽‍♂' => 'monna o bapala polo ya ka meetseng: mmala wa letlalo wa magareng',
@@ -1392,6 +1532,11 @@
     '🕴🏽' => 'monna o apere sutu ya mošomo wa ema: mmala wa letlalo wa magareng',
     '🕴🏾' => 'monna o apere sutu ya mošomo wa ema: mmala wa letlalo wo moswana wa magareng',
     '🕴🏿' => 'monna o apere sutu ya mošomo wa ema: mmala wa letlalo wo moswana',
+    '👯🏻' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa go taga',
+    '👯🏼' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa go taga wa magareng',
+    '👯🏽' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wa magareng',
+    '👯🏾' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wo moswana wa magareng',
+    '👯🏿' => 'batho ba ditsebe tša mmutla ba a bina: mmala wa letlalo wo moswana',
     '🧖🏻' => 'motho ka phaphošing ya moya wa go fiša: mmala wa letlalo wa go taga',
     '🧖🏼' => 'motho ka phaphošing ya moya wa go fiša: mmala wa letlalo wa go taga wa magareng',
     '🧖🏽' => 'motho ka phaphošing ya moya wa go fiša: mmala wa letlalo wa magareng',
@@ -1457,6 +1602,11 @@
     '🤸🏽' => 'motho a dikologa ka mmele: mmala wa letlalo wa magareng',
     '🤸🏾' => 'motho a dikologa ka mmele: mmala wa letlalo wo moswana wa magareng',
     '🤸🏿' => 'motho a dikologa ka mmele: mmala wa letlalo wo moswana',
+    '🤼🏻' => 'motho o lwa reseling: mmala wa letlalo wa go taga',
+    '🤼🏼' => 'motho o lwa reseling: mmala wa letlalo wa go taga wa magareng',
+    '🤼🏽' => 'motho o lwa reseling: mmala wa letlalo wa magareng',
+    '🤼🏾' => 'motho o lwa reseling: mmala wa letlalo wo moswana wa magareng',
+    '🤼🏿' => 'motho o lwa reseling: mmala wa letlalo wo moswana',
     '🤽🏻' => 'motho o bapala polo ya ka meetseng: mmala wa letlalo wa go taga',
     '🤽🏼' => 'motho o bapala polo ya ka meetseng: mmala wa letlalo wa go taga wa magareng',
     '🤽🏽' => 'motho o bapala polo ya ka meetseng: mmala wa letlalo wa magareng',
@@ -1857,6 +2007,9 @@
     '🦈' => 'šaka',
     '🐙' => 'okthopase',
     '🐚' => 'shele',
+    '🦀' => 'letlapakgerere',
+    '🦐' => 'šerimpo',
+    '🦑' => 'sekhwiti',
     '🐌' => 'kgopa',
     '🦋' => 'serurubele',
     '🐛' => 'selomanyane',
@@ -1958,9 +2111,6 @@
     '🥟' => 'letompolo',
     '🥠' => 'kuku ya mahlatse',
     '🥡' => 'lepokisi la dijo',
-    '🦀' => 'letlapakgerere',
-    '🦐' => 'šerimpo',
-    '🦑' => 'sekhwiti',
     '🍦' => 'ice cream e boleta',
     '🍧' => 'aese ye bopilwego',
     '🍨' => 'ice cream',
@@ -2312,9 +2462,9 @@
     '🎧' => 'ditsebjana',
     '📻' => 'seyalemoya',
     '🎷' => 'seksofoune',
+    '🎺' => 'porompeta',
     '🎸' => 'katara',
     '🎹' => 'khiipoto ya mmino',
-    '🎺' => 'porompeta',
     '🎻' => 'bayolini',
     '🥁' => 'moropa',
     '📱' => 'selefouno',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-om.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-om.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-om.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-om.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,3535 @@
+<?php
+
+return [
+    '🧑🏻‍❤‍💋‍🧑🏼' => 'dhungoo: nama, nama, toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏻‍❤‍💋‍🧑🏽' => 'dhungoo: nama, nama, toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '🧑🏻‍❤‍💋‍🧑🏾' => 'dhungoo: nama, nama, toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏻‍❤‍💋‍🧑🏿' => 'dhungoo: nama, nama, toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '🧑🏼‍❤‍💋‍🧑🏻' => 'dhungoo: nama, nama, toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏼‍❤‍💋‍🧑🏽' => 'dhungoo: nama, nama, toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🧑🏼‍❤‍💋‍🧑🏾' => 'dhungoo: nama, nama, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏼‍❤‍💋‍🧑🏿' => 'dhungoo: nama, nama, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏽‍❤‍💋‍🧑🏻' => 'dhungoo: nama, nama, toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏽‍❤‍💋‍🧑🏼' => 'dhungoo: nama, nama, toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍❤‍💋‍🧑🏾' => 'dhungoo: nama, nama, toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏽‍❤‍💋‍🧑🏿' => 'dhungoo: nama, nama, toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏾‍❤‍💋‍🧑🏻' => 'dhungoo: nama, nama, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏾‍❤‍💋‍🧑🏼' => 'dhungoo: nama, nama, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏾‍❤‍💋‍🧑🏽' => 'dhungoo: nama, nama, toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🧑🏾‍❤‍💋‍🧑🏿' => 'dhungoo: nama, nama, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏿‍❤‍💋‍🧑🏻' => 'dhungoo: nama, nama, toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '🧑🏿‍❤‍💋‍🧑🏼' => 'dhungoo: nama, nama, toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏿‍❤‍💋‍🧑🏽' => 'dhungoo: nama, nama, toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '🧑🏿‍❤‍💋‍🧑🏾' => 'dhungoo: nama, nama, toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏻‍❤‍💋‍👨🏻' => 'dhungoo: dhiira, dhiira, toonii gogaa ifaa',
+    '👨🏻‍❤‍💋‍👨🏼' => 'dhungoo: dhiira, dhiira, toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏻‍❤‍💋‍👨🏽' => 'dhungoo: dhiira, dhiira, toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👨🏻‍❤‍💋‍👨🏾' => 'dhungoo: dhiira, dhiira, toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏻‍❤‍💋‍👨🏿' => 'dhungoo: dhiira, dhiira, toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👨🏼‍❤‍💋‍👨🏻' => 'dhungoo: dhiira, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👨🏼‍❤‍💋‍👨🏼' => 'dhungoo: dhiira, dhiira, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏼‍❤‍💋‍👨🏽' => 'dhungoo: dhiira, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👨🏼‍❤‍💋‍👨🏾' => 'dhungoo: dhiira, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏼‍❤‍💋‍👨🏿' => 'dhungoo: dhiira, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏽‍❤‍💋‍👨🏻' => 'dhungoo: dhiira, dhiira, toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👨🏽‍❤‍💋‍👨🏼' => 'dhungoo: dhiira, dhiira, toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍❤‍💋‍👨🏽' => 'dhungoo: dhiira, dhiira, toonii godaa gidduugaleessa',
+    '👨🏽‍❤‍💋‍👨🏾' => 'dhungoo: dhiira, dhiira, toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏽‍❤‍💋‍👨🏿' => 'dhungoo: dhiira, dhiira, toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏾‍❤‍💋‍👨🏻' => 'dhungoo: dhiira, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👨🏾‍❤‍💋‍👨🏼' => 'dhungoo: dhiira, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏾‍❤‍💋‍👨🏽' => 'dhungoo: dhiira, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👨🏾‍❤‍💋‍👨🏾' => 'dhungoo: dhiira, dhiira, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏾‍❤‍💋‍👨🏿' => 'dhungoo: dhiira, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏿‍❤‍💋‍👨🏻' => 'dhungoo: dhiira, dhiira, toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👨🏿‍❤‍💋‍👨🏼' => 'dhungoo: dhiira, dhiira, toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏿‍❤‍💋‍👨🏽' => 'dhungoo: dhiira, dhiira, toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👨🏿‍❤‍💋‍👨🏾' => 'dhungoo: dhiira, dhiira, toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍❤‍💋‍👨🏿' => 'dhungoo: dhiira, dhiira, toonii gogaa gurraachaa',
+    '👩🏻‍❤‍💋‍👨🏻' => 'dhungoo: dubartii, dhiira, toonii gogaa ifaa',
+    '👩🏻‍❤‍💋‍👨🏼' => 'dhungoo: dubartii, dhiira, toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏻‍❤‍💋‍👨🏽' => 'dhungoo: dubartii, dhiira, toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👩🏻‍❤‍💋‍👨🏾' => 'dhungoo: dubartii, dhiira, toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍❤‍💋‍👨🏿' => 'dhungoo: dubartii, dhiira, toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👩🏼‍❤‍💋‍👨🏻' => 'dhungoo: dubartii, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏼‍❤‍💋‍👨🏼' => 'dhungoo: dubartii, dhiira, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏼‍❤‍💋‍👨🏽' => 'dhungoo: dubartii, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏼‍❤‍💋‍👨🏾' => 'dhungoo: dubartii, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏼‍❤‍💋‍👨🏿' => 'dhungoo: dubartii, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏽‍❤‍💋‍👨🏻' => 'dhungoo: dubartii, dhiira, toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👩🏽‍❤‍💋‍👨🏼' => 'dhungoo: dubartii, dhiira, toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍❤‍💋‍👨🏽' => 'dhungoo: dubartii, dhiira, toonii godaa gidduugaleessa',
+    '👩🏽‍❤‍💋‍👨🏾' => 'dhungoo: dubartii, dhiira, toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏽‍❤‍💋‍👨🏿' => 'dhungoo: dubartii, dhiira, toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏾‍❤‍💋‍👨🏻' => 'dhungoo: dubartii, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏾‍❤‍💋‍👨🏼' => 'dhungoo: dubartii, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏾‍❤‍💋‍👨🏽' => 'dhungoo: dubartii, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏾‍❤‍💋‍👨🏾' => 'dhungoo: dubartii, dhiira, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏾‍❤‍💋‍👨🏿' => 'dhungoo: dubartii, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏿‍❤‍💋‍👨🏻' => 'dhungoo: dubartii, dhiira, toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👩🏿‍❤‍💋‍👨🏼' => 'dhungoo: dubartii, dhiira, toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏿‍❤‍💋‍👨🏽' => 'dhungoo: dubartii, dhiira, toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👩🏿‍❤‍💋‍👨🏾' => 'dhungoo: dubartii, dhiira, toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍❤‍💋‍👨🏿' => 'dhungoo: dubartii, dhiira, toonii gogaa gurraachaa',
+    '👩🏻‍❤‍💋‍👩🏻' => 'dhungoo: dubartii, dubartii, toonii gogaa ifaa',
+    '👩🏻‍❤‍💋‍👩🏼' => 'dhungoo: dubartii, dubartii, toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏻‍❤‍💋‍👩🏽' => 'dhungoo: dubartii, dubartii, toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👩🏻‍❤‍💋‍👩🏾' => 'dhungoo: dubartii, dubartii, toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍❤‍💋‍👩🏿' => 'dhungoo: dubartii, dubartii, toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👩🏼‍❤‍💋‍👩🏻' => 'dhungoo: dubartii, dubartii, toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏼‍❤‍💋‍👩🏼' => 'dhungoo: dubartii, dubartii, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏼‍❤‍💋‍👩🏽' => 'dhungoo: dubartii, dubartii, toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏼‍❤‍💋‍👩🏾' => 'dhungoo: dubartii, dubartii, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏼‍❤‍💋‍👩🏿' => 'dhungoo: dubartii, dubartii, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏽‍❤‍💋‍👩🏻' => 'dhungoo: dubartii, dubartii, toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👩🏽‍❤‍💋‍👩🏼' => 'dhungoo: dubartii, dubartii, toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍❤‍💋‍👩🏽' => 'dhungoo: dubartii, dubartii, toonii godaa gidduugaleessa',
+    '👩🏽‍❤‍💋‍👩🏾' => 'dhungoo: dubartii, dubartii, toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏽‍❤‍💋‍👩🏿' => 'dhungoo: dubartii, dubartii, toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏾‍❤‍💋‍👩🏻' => 'dhungoo: dubartii, dubartii, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏾‍❤‍💋‍👩🏼' => 'dhungoo: dubartii, dubartii, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏾‍❤‍💋‍👩🏽' => 'dhungoo: dubartii, dubartii, toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏾‍❤‍💋‍👩🏾' => 'dhungoo: dubartii, dubartii, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏾‍❤‍💋‍👩🏿' => 'dhungoo: dubartii, dubartii, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏿‍❤‍💋‍👩🏻' => 'dhungoo: dubartii, dubartii, toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👩🏿‍❤‍💋‍👩🏼' => 'dhungoo: dubartii, dubartii, toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏿‍❤‍💋‍👩🏽' => 'dhungoo: dubartii, dubartii, toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👩🏿‍❤‍💋‍👩🏾' => 'dhungoo: dubartii, dubartii, toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍❤‍💋‍👩🏿' => 'dhungoo: dubartii, dubartii, toonii gogaa gurraachaa',
+    '🧑🏻‍🫯‍🧑🏼' => 'namoota wal tuman: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏻‍🫯‍🧑🏽' => 'namoota wal tuman: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '🧑🏻‍🫯‍🧑🏾' => 'namoota wal tuman: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏻‍🫯‍🧑🏿' => 'namoota wal tuman: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '🧑🏼‍🫯‍🧑🏻' => 'namoota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏼‍🫯‍🧑🏽' => 'namoota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🧑🏼‍🫯‍🧑🏾' => 'namoota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏼‍🫯‍🧑🏿' => 'namoota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏽‍🫯‍🧑🏻' => 'namoota wal tuman: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏽‍🫯‍🧑🏼' => 'namoota wal tuman: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🫯‍🧑🏾' => 'namoota wal tuman: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏽‍🫯‍🧑🏿' => 'namoota wal tuman: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏾‍🫯‍🧑🏻' => 'namoota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏾‍🫯‍🧑🏼' => 'namoota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏾‍🫯‍🧑🏽' => 'namoota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🧑🏾‍🫯‍🧑🏿' => 'namoota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏿‍🫯‍🧑🏻' => 'namoota wal tuman: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '🧑🏿‍🫯‍🧑🏼' => 'namoota wal tuman: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏿‍🫯‍🧑🏽' => 'namoota wal tuman: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '🧑🏿‍🫯‍🧑🏾' => 'namoota wal tuman: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏻‍❤‍🧑🏼' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏻‍❤‍🧑🏽' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '🧑🏻‍❤‍🧑🏾' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏻‍❤‍🧑🏿' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '🧑🏼‍❤‍🧑🏻' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏼‍❤‍🧑🏽' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🧑🏼‍❤‍🧑🏾' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏼‍❤‍🧑🏿' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏽‍❤‍🧑🏻' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏽‍❤‍🧑🏼' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍❤‍🧑🏾' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏽‍❤‍🧑🏿' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏾‍❤‍🧑🏻' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏾‍❤‍🧑🏼' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏾‍❤‍🧑🏽' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🧑🏾‍❤‍🧑🏿' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏿‍❤‍🧑🏻' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '🧑🏿‍❤‍🧑🏼' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏿‍❤‍🧑🏽' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '🧑🏿‍❤‍🧑🏾' => 'hiriyyoota gaa’ilaa onnee waliin: nama, nama, toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏻‍🐰‍🧑🏼' => 'namoota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏻‍🐰‍🧑🏽' => 'namoota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '🧑🏻‍🐰‍🧑🏾' => 'namoota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏻‍🐰‍🧑🏿' => 'namoota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '🧑🏼‍🐰‍🧑🏻' => 'namoota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏼‍🐰‍🧑🏽' => 'namoota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🧑🏼‍🐰‍🧑🏾' => 'namoota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏼‍🐰‍🧑🏿' => 'namoota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏽‍🐰‍🧑🏻' => 'namoota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏽‍🐰‍🧑🏼' => 'namoota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🐰‍🧑🏾' => 'namoota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏽‍🐰‍🧑🏿' => 'namoota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏾‍🐰‍🧑🏻' => 'namoota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏾‍🐰‍🧑🏼' => 'namoota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏾‍🐰‍🧑🏽' => 'namoota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🧑🏾‍🐰‍🧑🏿' => 'namoota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏿‍🐰‍🧑🏻' => 'namoota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '🧑🏿‍🐰‍🧑🏼' => 'namoota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏿‍🐰‍🧑🏽' => 'namoota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '🧑🏿‍🐰‍🧑🏾' => 'namoota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏻‍🫯‍👨🏼' => 'dhiirota wal tuman: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏻‍🫯‍👨🏽' => 'dhiirota wal tuman: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👨🏻‍🫯‍👨🏾' => 'dhiirota wal tuman: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏻‍🫯‍👨🏿' => 'dhiirota wal tuman: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👨🏼‍🫯‍👨🏻' => 'dhiirota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👨🏼‍🫯‍👨🏽' => 'dhiirota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👨🏼‍🫯‍👨🏾' => 'dhiirota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏼‍🫯‍👨🏿' => 'dhiirota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏽‍🫯‍👨🏻' => 'dhiirota wal tuman: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👨🏽‍🫯‍👨🏼' => 'dhiirota wal tuman: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🫯‍👨🏾' => 'dhiirota wal tuman: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏽‍🫯‍👨🏿' => 'dhiirota wal tuman: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏾‍🫯‍👨🏻' => 'dhiirota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👨🏾‍🫯‍👨🏼' => 'dhiirota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏾‍🫯‍👨🏽' => 'dhiirota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👨🏾‍🫯‍👨🏿' => 'dhiirota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏿‍🫯‍👨🏻' => 'dhiirota wal tuman: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👨🏿‍🫯‍👨🏼' => 'dhiirota wal tuman: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏿‍🫯‍👨🏽' => 'dhiirota wal tuman: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👨🏿‍🫯‍👨🏾' => 'dhiirota wal tuman: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏻‍❤‍👨🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa ifaa',
+    '👨🏻‍❤‍👨🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏻‍❤‍👨🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👨🏻‍❤‍👨🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏻‍❤‍👨🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👨🏼‍❤‍👨🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👨🏼‍❤‍👨🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏼‍❤‍👨🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👨🏼‍❤‍👨🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏼‍❤‍👨🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏽‍❤‍👨🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👨🏽‍❤‍👨🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍❤‍👨🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii godaa gidduugaleessa',
+    '👨🏽‍❤‍👨🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏽‍❤‍👨🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏾‍❤‍👨🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👨🏾‍❤‍👨🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏾‍❤‍👨🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👨🏾‍❤‍👨🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏾‍❤‍👨🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏿‍❤‍👨🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👨🏿‍❤‍👨🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏿‍❤‍👨🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👨🏿‍❤‍👨🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍❤‍👨🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira, toonii gogaa gurraachaa',
+    '👨🏻‍🐰‍👨🏼' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏻‍🐰‍👨🏽' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👨🏻‍🐰‍👨🏾' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏻‍🐰‍👨🏿' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👨🏼‍🐰‍👨🏻' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👨🏼‍🐰‍👨🏽' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👨🏼‍🐰‍👨🏾' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏼‍🐰‍👨🏿' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏽‍🐰‍👨🏻' => 'dhiirota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👨🏽‍🐰‍👨🏼' => 'dhiirota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🐰‍👨🏾' => 'dhiirota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏽‍🐰‍👨🏿' => 'dhiirota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏾‍🐰‍👨🏻' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👨🏾‍🐰‍👨🏼' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏾‍🐰‍👨🏽' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👨🏾‍🐰‍👨🏿' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏿‍🐰‍👨🏻' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👨🏿‍🐰‍👨🏼' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏿‍🐰‍👨🏽' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👨🏿‍🐰‍👨🏾' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍🫯‍👩🏼' => 'dubartoota wal tuman: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏻‍🫯‍👩🏽' => 'dubartoota wal tuman: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👩🏻‍🫯‍👩🏾' => 'dubartoota wal tuman: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍🫯‍👩🏿' => 'dubartoota wal tuman: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👩🏼‍🫯‍👩🏻' => 'dubartoota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏼‍🫯‍👩🏽' => 'dubartoota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏼‍🫯‍👩🏾' => 'dubartoota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏼‍🫯‍👩🏿' => 'dubartoota wal tuman: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏽‍🫯‍👩🏻' => 'dubartoota wal tuman: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👩🏽‍🫯‍👩🏼' => 'dubartoota wal tuman: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🫯‍👩🏾' => 'dubartoota wal tuman: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏽‍🫯‍👩🏿' => 'dubartoota wal tuman: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏾‍🫯‍👩🏻' => 'dubartoota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏾‍🫯‍👩🏼' => 'dubartoota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏾‍🫯‍👩🏽' => 'dubartoota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏾‍🫯‍👩🏿' => 'dubartoota wal tuman: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏿‍🫯‍👩🏻' => 'dubartoota wal tuman: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👩🏿‍🫯‍👩🏼' => 'dubartoota wal tuman: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏿‍🫯‍👩🏽' => 'dubartoota wal tuman: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👩🏿‍🫯‍👩🏾' => 'dubartoota wal tuman: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍❤‍👨🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa ifaa',
+    '👩🏻‍❤‍👨🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏻‍❤‍👨🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👩🏻‍❤‍👨🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍❤‍👨🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👩🏼‍❤‍👨🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏼‍❤‍👨🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏼‍❤‍👨🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏼‍❤‍👨🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏼‍❤‍👨🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏽‍❤‍👨🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👩🏽‍❤‍👨🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍❤‍👨🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii godaa gidduugaleessa',
+    '👩🏽‍❤‍👨🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏽‍❤‍👨🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏾‍❤‍👨🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏾‍❤‍👨🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏾‍❤‍👨🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏾‍❤‍👨🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏾‍❤‍👨🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏿‍❤‍👨🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👩🏿‍❤‍👨🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏿‍❤‍👨🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👩🏿‍❤‍👨🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍❤‍👨🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira, toonii gogaa gurraachaa',
+    '👩🏻‍❤‍👩🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa ifaa',
+    '👩🏻‍❤‍👩🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏻‍❤‍👩🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👩🏻‍❤‍👩🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍❤‍👩🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👩🏼‍❤‍👩🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏼‍❤‍👩🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏼‍❤‍👩🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏼‍❤‍👩🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏼‍❤‍👩🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏽‍❤‍👩🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👩🏽‍❤‍👩🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍❤‍👩🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii godaa gidduugaleessa',
+    '👩🏽‍❤‍👩🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏽‍❤‍👩🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏾‍❤‍👩🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏾‍❤‍👩🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏾‍❤‍👩🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏾‍❤‍👩🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏾‍❤‍👩🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏿‍❤‍👩🏻' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👩🏿‍❤‍👩🏼' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏿‍❤‍👩🏽' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👩🏿‍❤‍👩🏾' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍❤‍👩🏿' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii, toonii gogaa gurraachaa',
+    '👩🏻‍🐰‍👩🏼' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏻‍🐰‍👩🏽' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👩🏻‍🐰‍👩🏾' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍🐰‍👩🏿' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👩🏼‍🐰‍👩🏻' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏼‍🐰‍👩🏽' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏼‍🐰‍👩🏾' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏼‍🐰‍👩🏿' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏽‍🐰‍👩🏻' => 'dubartoota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👩🏽‍🐰‍👩🏼' => 'dubartoota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🐰‍👩🏾' => 'dubartoota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏽‍🐰‍👩🏿' => 'dubartoota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏾‍🐰‍👩🏻' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏾‍🐰‍👩🏼' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏾‍🐰‍👩🏽' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏾‍🐰‍👩🏿' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏿‍🐰‍👩🏻' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👩🏿‍🐰‍👩🏼' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏿‍🐰‍👩🏽' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👩🏿‍🐰‍👩🏾' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏻‍🤝‍🧑🏻' => 'namoota harka wal qabatan: toonii gogaa ifaa',
+    '🧑🏻‍🤝‍🧑🏼' => 'namoota harka wal qabatan: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏻‍🤝‍🧑🏽' => 'namoota harka wal qabatan: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '🧑🏻‍🤝‍🧑🏾' => 'namoota harka wal qabatan: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏻‍🤝‍🧑🏿' => 'namoota harka wal qabatan: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '🧑🏼‍🤝‍🧑🏻' => 'namoota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏼‍🤝‍🧑🏼' => 'namoota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏼‍🤝‍🧑🏽' => 'namoota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🧑🏼‍🤝‍🧑🏾' => 'namoota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏼‍🤝‍🧑🏿' => 'namoota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏽‍🤝‍🧑🏻' => 'namoota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏽‍🤝‍🧑🏼' => 'namoota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🤝‍🧑🏽' => 'namoota harka wal qabatan: toonii godaa gidduugaleessa',
+    '🧑🏽‍🤝‍🧑🏾' => 'namoota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏽‍🤝‍🧑🏿' => 'namoota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏾‍🤝‍🧑🏻' => 'namoota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '🧑🏾‍🤝‍🧑🏼' => 'namoota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏾‍🤝‍🧑🏽' => 'namoota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🧑🏾‍🤝‍🧑🏾' => 'namoota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏾‍🤝‍🧑🏿' => 'namoota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '🧑🏿‍🤝‍🧑🏻' => 'namoota harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '🧑🏿‍🤝‍🧑🏼' => 'namoota harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏿‍🤝‍🧑🏽' => 'namoota harka wal qabatan: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '🧑🏿‍🤝‍🧑🏾' => 'namoota harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🤝‍🧑🏿' => 'namoota harka wal qabatan: toonii gogaa gurraachaa',
+    '👩🏻‍🤝‍👩🏼' => 'dubartoota harka wal qabatan: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏻‍🤝‍👩🏽' => 'dubartoota harka wal qabatan: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👩🏻‍🤝‍👩🏾' => 'dubartoota harka wal qabatan: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍🤝‍👩🏿' => 'dubartoota harka wal qabatan: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👩🏼‍🤝‍👩🏻' => 'dubartoota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏼‍🤝‍👩🏽' => 'dubartoota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏼‍🤝‍👩🏾' => 'dubartoota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏼‍🤝‍👩🏿' => 'dubartoota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏽‍🤝‍👩🏻' => 'dubartoota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👩🏽‍🤝‍👩🏼' => 'dubartoota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🤝‍👩🏾' => 'dubartoota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏽‍🤝‍👩🏿' => 'dubartoota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏾‍🤝‍👩🏻' => 'dubartoota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏾‍🤝‍👩🏼' => 'dubartoota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏾‍🤝‍👩🏽' => 'dubartoota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏾‍🤝‍👩🏿' => 'dubartoota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏿‍🤝‍👩🏻' => 'dubartoota harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👩🏿‍🤝‍👩🏼' => 'dubartoota harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏿‍🤝‍👩🏽' => 'dubartoota harka wal qabatan: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👩🏿‍🤝‍👩🏾' => 'dubartoota harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍🤝‍👨🏼' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏻‍🤝‍👨🏽' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👩🏻‍🤝‍👨🏾' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏻‍🤝‍👨🏿' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👩🏼‍🤝‍👨🏻' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏼‍🤝‍👨🏽' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏼‍🤝‍👨🏾' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏼‍🤝‍👨🏿' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏽‍🤝‍👨🏻' => 'dubartii fi dhiira harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👩🏽‍🤝‍👨🏼' => 'dubartii fi dhiira harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🤝‍👨🏾' => 'dubartii fi dhiira harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏽‍🤝‍👨🏿' => 'dubartii fi dhiira harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏾‍🤝‍👨🏻' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👩🏾‍🤝‍👨🏼' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏾‍🤝‍👨🏽' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👩🏾‍🤝‍👨🏿' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👩🏿‍🤝‍👨🏻' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👩🏿‍🤝‍👨🏼' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👩🏿‍🤝‍👨🏽' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👩🏿‍🤝‍👨🏾' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏻‍🤝‍👨🏼' => 'dhiirota harka wal qabatan: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏻‍🤝‍👨🏽' => 'dhiirota harka wal qabatan: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '👨🏻‍🤝‍👨🏾' => 'dhiirota harka wal qabatan: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏻‍🤝‍👨🏿' => 'dhiirota harka wal qabatan: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '👨🏼‍🤝‍👨🏻' => 'dhiirota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '👨🏼‍🤝‍👨🏽' => 'dhiirota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👨🏼‍🤝‍👨🏾' => 'dhiirota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏼‍🤝‍👨🏿' => 'dhiirota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏽‍🤝‍👨🏻' => 'dhiirota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '👨🏽‍🤝‍👨🏼' => 'dhiirota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🤝‍👨🏾' => 'dhiirota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏽‍🤝‍👨🏿' => 'dhiirota harka wal qabatan: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏾‍🤝‍👨🏻' => 'dhiirota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '👨🏾‍🤝‍👨🏼' => 'dhiirota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏾‍🤝‍👨🏽' => 'dhiirota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '👨🏾‍🤝‍👨🏿' => 'dhiirota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '👨🏿‍🤝‍👨🏻' => 'dhiirota harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '👨🏿‍🤝‍👨🏼' => 'dhiirota harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '👨🏿‍🤝‍👨🏽' => 'dhiirota harka wal qabatan: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '👨🏿‍🤝‍👨🏾' => 'dhiirota harka wal qabatan: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩‍❤‍💋‍👨' => 'dhungoo: dubartii, dhiira',
+    '👨‍❤‍💋‍👨' => 'dhungoo: dhiira, dhiira',
+    '👩‍❤‍💋‍👩' => 'dhungoo: dubartii, dubartii',
+    '👨‍👩‍👧‍👦' => 'maatii: dhiira, dubartii, dubara, gurbaa',
+    '👨‍👩‍👦‍👦' => 'maatii: dhiira, dubartii, gurbaa, gurbaa',
+    '👨‍👩‍👧‍👧' => 'maatii: dhiira, dubartii, dubara, dubara',
+    '👨‍👨‍👧‍👦' => 'maatii: dhiira, dhiira, dubara, gurbaa',
+    '👨‍👨‍👦‍👦' => 'maatii: dhiira, dhiira, gurbaa, gurbaa',
+    '👨‍👨‍👧‍👧' => 'maatii: dhiira, dhiira, dubara, dubara',
+    '👩‍👩‍👧‍👦' => 'maatii: dubartii, dubartii, dubara, gurbaa',
+    '👩‍👩‍👦‍👦' => 'maatii: dubartii, dubartii, gurbaa, gurbaa',
+    '👩‍👩‍👧‍👧' => 'maatii: dubartii, dubartii, dubara, dubara',
+    '🫱🏻‍🫲🏼' => 'harka fuudhuu: toonii gogaa ifaa, toonii gogaa ifaa-gidduugaleessa',
+    '🫱🏻‍🫲🏽' => 'harka fuudhuu: toonii gogaa ifaa, toonii godaa gidduugaleessa',
+    '🫱🏻‍🫲🏾' => 'harka fuudhuu: toonii gogaa ifaa, toonii gogaa gurraacha-gidduugaleessa',
+    '🫱🏻‍🫲🏿' => 'harka fuudhuu: toonii gogaa ifaa, toonii gogaa gurraachaa',
+    '🫱🏼‍🫲🏻' => 'harka fuudhuu: toonii gogaa ifaa-gidduugaleessa, toonii gogaa ifaa',
+    '🫱🏼‍🫲🏽' => 'harka fuudhuu: toonii gogaa ifaa-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🫱🏼‍🫲🏾' => 'harka fuudhuu: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🫱🏼‍🫲🏿' => 'harka fuudhuu: toonii gogaa ifaa-gidduugaleessa, toonii gogaa gurraachaa',
+    '🫱🏽‍🫲🏻' => 'harka fuudhuu: toonii godaa gidduugaleessa, toonii gogaa ifaa',
+    '🫱🏽‍🫲🏼' => 'harka fuudhuu: toonii godaa gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🫱🏽‍🫲🏾' => 'harka fuudhuu: toonii godaa gidduugaleessa, toonii gogaa gurraacha-gidduugaleessa',
+    '🫱🏽‍🫲🏿' => 'harka fuudhuu: toonii godaa gidduugaleessa, toonii gogaa gurraachaa',
+    '🫱🏾‍🫲🏻' => 'harka fuudhuu: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa',
+    '🫱🏾‍🫲🏼' => 'harka fuudhuu: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa ifaa-gidduugaleessa',
+    '🫱🏾‍🫲🏽' => 'harka fuudhuu: toonii gogaa gurraacha-gidduugaleessa, toonii godaa gidduugaleessa',
+    '🫱🏾‍🫲🏿' => 'harka fuudhuu: toonii gogaa gurraacha-gidduugaleessa, toonii gogaa gurraachaa',
+    '🫱🏿‍🫲🏻' => 'harka fuudhuu: toonii gogaa gurraachaa, toonii gogaa ifaa',
+    '🫱🏿‍🫲🏼' => 'harka fuudhuu: toonii gogaa gurraachaa, toonii gogaa ifaa-gidduugaleessa',
+    '🫱🏿‍🫲🏽' => 'harka fuudhuu: toonii gogaa gurraachaa, toonii godaa gidduugaleessa',
+    '🫱🏿‍🫲🏾' => 'harka fuudhuu: toonii gogaa gurraachaa, toonii gogaa gurraacha-gidduugaleessa',
+    '👩‍❤‍👨' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dhiira',
+    '👨‍❤‍👨' => 'hiriyyoota gaa’ilaa onnee waliin: dhiira, dhiira',
+    '👩‍❤‍👩' => 'hiriyyoota gaa’ilaa onnee waliin: dubartii, dubartii',
+    '👨‍👩‍👦' => 'maatii: dhiira, dubartii, gurbaa',
+    '👨‍👩‍👧' => 'maatii: dhiira, dubartii, dubara',
+    '👨‍👨‍👦' => 'maatii: dhiira, dhiira, gurbaa',
+    '👨‍👨‍👧' => 'maatii: dhiira, dhiira, dubara',
+    '👩‍👩‍👦' => 'maatii: dubartii, dubartii, gurbaa',
+    '👩‍👩‍👧' => 'maatii: dubartii, dubartii, dubara',
+    '👨‍👦‍👦' => 'maatii: dhiira, gurbaa, gurbaa',
+    '👨‍👧‍👦' => 'maatii: dhiira, dubara, gurbaa',
+    '👨‍👧‍👧' => 'maatii: dhiira, dubara, dubara',
+    '👩‍👦‍👦' => 'maatii: dubartii, gurbaa, gurbaa',
+    '👩‍👧‍👦' => 'maatii: dubartii, dubara, gurbaa',
+    '👩‍👧‍👧' => 'maatii: dubartii, dubara, dubara',
+    '🧑‍🤝‍🧑' => 'namoota harka wal qabatan',
+    '🧑🏻‍🦰' => 'nama: toonii gogaa ifaa, rifeensa diimaa',
+    '🧑🏼‍🦰' => 'nama: toonii gogaa ifaa-gidduugaleessa, rifeensa diimaa',
+    '🧑🏽‍🦰' => 'nama: toonii godaa gidduugaleessa, rifeensa diimaa',
+    '🧑🏾‍🦰' => 'nama: toonii gogaa gurraacha-gidduugaleessa, rifeensa diimaa',
+    '🧑🏿‍🦰' => 'nama: toonii gogaa gurraachaa, rifeensa diimaa',
+    '🧑🏻‍🦱' => 'nama: toonii gogaa ifaa, rifeensa luuccaa',
+    '🧑🏼‍🦱' => 'nama: toonii gogaa ifaa-gidduugaleessa, rifeensa luuccaa',
+    '🧑🏽‍🦱' => 'nama: toonii godaa gidduugaleessa, rifeensa luuccaa',
+    '🧑🏾‍🦱' => 'nama: toonii gogaa gurraacha-gidduugaleessa, rifeensa luuccaa',
+    '🧑🏿‍🦱' => 'nama: toonii gogaa gurraachaa, rifeensa luuccaa',
+    '🧑🏻‍🦳' => 'nama: toonii gogaa ifaa, rifeensa adii',
+    '🧑🏼‍🦳' => 'nama: toonii gogaa ifaa-gidduugaleessa, rifeensa adii',
+    '🧑🏽‍🦳' => 'nama: toonii godaa gidduugaleessa, rifeensa adii',
+    '🧑🏾‍🦳' => 'nama: toonii gogaa gurraacha-gidduugaleessa, rifeensa adii',
+    '🧑🏿‍🦳' => 'nama: toonii gogaa gurraachaa, rifeensa adii',
+    '🧑🏻‍🦲' => 'nama: toonii gogaa ifaa, moluu',
+    '🧑🏼‍🦲' => 'nama: toonii gogaa ifaa-gidduugaleessa, moluu',
+    '🧑🏽‍🦲' => 'nama: toonii godaa gidduugaleessa, moluu',
+    '🧑🏾‍🦲' => 'nama: toonii gogaa gurraacha-gidduugaleessa, moluu',
+    '🧑🏿‍🦲' => 'nama: toonii gogaa gurraachaa, moluu',
+    '🧑🏻‍🩰' => 'shubbisaa baaleetii: toonii gogaa ifaa',
+    '🧑🏼‍🩰' => 'shubbisaa baaleetii: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🩰' => 'shubbisaa baaleetii: toonii godaa gidduugaleessa',
+    '🧑🏾‍🩰' => 'shubbisaa baaleetii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🩰' => 'shubbisaa baaleetii: toonii gogaa gurraachaa',
+    '🧔🏻‍♂' => 'dhiira: toonii gogaa ifaa, areeda qabu',
+    '🧔🏼‍♂' => 'dhiira: toonii gogaa ifaa-gidduugaleessa, areeda qabu',
+    '🧔🏽‍♂' => 'dhiira: toonii godaa gidduugaleessa, areeda qabu',
+    '🧔🏾‍♂' => 'dhiira: toonii gogaa gurraacha-gidduugaleessa, areeda qabu',
+    '🧔🏿‍♂' => 'dhiira: toonii gogaa gurraachaa, areeda qabu',
+    '👱🏻‍♂' => 'dhiira: toonii gogaa ifaa, rifeensa keelloo',
+    '👱🏼‍♂' => 'dhiira: toonii gogaa ifaa-gidduugaleessa, rifeensa keelloo',
+    '👱🏽‍♂' => 'dhiira: toonii godaa gidduugaleessa, rifeensa keelloo',
+    '👱🏾‍♂' => 'dhiira: toonii gogaa gurraacha-gidduugaleessa, rifeensa keelloo',
+    '👱🏿‍♂' => 'dhiira: toonii gogaa gurraachaa, rifeensa keelloo',
+    '👨🏻‍🦰' => 'dhiira: toonii gogaa ifaa, rifeensa diimaa',
+    '👨🏼‍🦰' => 'dhiira: toonii gogaa ifaa-gidduugaleessa, rifeensa diimaa',
+    '👨🏽‍🦰' => 'dhiira: toonii godaa gidduugaleessa, rifeensa diimaa',
+    '👨🏾‍🦰' => 'dhiira: toonii gogaa gurraacha-gidduugaleessa, rifeensa diimaa',
+    '👨🏿‍🦰' => 'dhiira: toonii gogaa gurraachaa, rifeensa diimaa',
+    '👨🏻‍🦱' => 'dhiira: toonii gogaa ifaa, rifeensa luuccaa',
+    '👨🏼‍🦱' => 'dhiira: toonii gogaa ifaa-gidduugaleessa, rifeensa luuccaa',
+    '👨🏽‍🦱' => 'dhiira: toonii godaa gidduugaleessa, rifeensa luuccaa',
+    '👨🏾‍🦱' => 'dhiira: toonii gogaa gurraacha-gidduugaleessa, rifeensa luuccaa',
+    '👨🏿‍🦱' => 'dhiira: toonii gogaa gurraachaa, rifeensa luuccaa',
+    '👨🏻‍🦳' => 'dhiira: toonii gogaa ifaa, rifeensa adii',
+    '👨🏼‍🦳' => 'dhiira: toonii gogaa ifaa-gidduugaleessa, rifeensa adii',
+    '👨🏽‍🦳' => 'dhiira: toonii godaa gidduugaleessa, rifeensa adii',
+    '👨🏾‍🦳' => 'dhiira: toonii gogaa gurraacha-gidduugaleessa, rifeensa adii',
+    '👨🏿‍🦳' => 'dhiira: toonii gogaa gurraachaa, rifeensa adii',
+    '👨🏻‍🦲' => 'dhiira: toonii gogaa ifaa, moluu',
+    '👨🏼‍🦲' => 'dhiira: toonii gogaa ifaa-gidduugaleessa, moluu',
+    '👨🏽‍🦲' => 'dhiira: toonii godaa gidduugaleessa, moluu',
+    '👨🏾‍🦲' => 'dhiira: toonii gogaa gurraacha-gidduugaleessa, moluu',
+    '👨🏿‍🦲' => 'dhiira: toonii gogaa gurraachaa, moluu',
+    '🧔🏻‍♀' => 'dubartii: toonii gogaa ifaa, areeda qabdu',
+    '🧔🏼‍♀' => 'dubartii: toonii gogaa ifaa-gidduugaleessa, areeda qabdu',
+    '🧔🏽‍♀' => 'dubartii: toonii godaa gidduugaleessa, areeda qabdu',
+    '🧔🏾‍♀' => 'dubartii: toonii gogaa gurraacha-gidduugaleessa, areeda qabdu',
+    '🧔🏿‍♀' => 'dubartii: toonii gogaa gurraachaa, areeda qabdu',
+    '👱🏻‍♀' => 'dubartii: toonii gogaa ifaa, rifeensa keelloo',
+    '👱🏼‍♀' => 'dubartii: toonii gogaa ifaa-gidduugaleessa, rifeensa keelloo',
+    '👱🏽‍♀' => 'dubartii: toonii godaa gidduugaleessa, rifeensa keelloo',
+    '👱🏾‍♀' => 'dubartii: toonii gogaa gurraacha-gidduugaleessa, rifeensa keelloo',
+    '👱🏿‍♀' => 'dubartii: toonii gogaa gurraachaa, rifeensa keelloo',
+    '👩🏻‍🦰' => 'dubartii: toonii gogaa ifaa, rifeensa diimaa',
+    '👩🏼‍🦰' => 'dubartii: toonii gogaa ifaa-gidduugaleessa, rifeensa diimaa',
+    '👩🏽‍🦰' => 'dubartii: toonii godaa gidduugaleessa, rifeensa diimaa',
+    '👩🏾‍🦰' => 'dubartii: toonii gogaa gurraacha-gidduugaleessa, rifeensa diimaa',
+    '👩🏿‍🦰' => 'dubartii: toonii gogaa gurraachaa, rifeensa diimaa',
+    '👩🏻‍🦱' => 'dubartii: toonii gogaa ifaa, rifeensa luuccaa',
+    '👩🏼‍🦱' => 'dubartii: toonii gogaa ifaa-gidduugaleessa, rifeensa luuccaa',
+    '👩🏽‍🦱' => 'dubartii: toonii godaa gidduugaleessa, rifeensa luuccaa',
+    '👩🏾‍🦱' => 'dubartii: toonii gogaa gurraacha-gidduugaleessa, rifeensa luuccaa',
+    '👩🏿‍🦱' => 'dubartii: toonii gogaa gurraachaa, rifeensa luuccaa',
+    '👩🏻‍🦳' => 'dubartii: toonii gogaa ifaa, rifeensa adii',
+    '👩🏼‍🦳' => 'dubartii: toonii gogaa ifaa-gidduugaleessa, rifeensa adii',
+    '👩🏽‍🦳' => 'dubartii: toonii godaa gidduugaleessa, rifeensa adii',
+    '👩🏾‍🦳' => 'dubartii: toonii gogaa gurraacha-gidduugaleessa, rifeensa adii',
+    '👩🏿‍🦳' => 'dubartii: toonii gogaa gurraachaa, rifeensa adii',
+    '👩🏻‍🦲' => 'dubartii: toonii gogaa ifaa, moluu',
+    '👩🏼‍🦲' => 'dubartii: toonii gogaa ifaa-gidduugaleessa, moluu',
+    '👩🏽‍🦲' => 'dubartii: toonii godaa gidduugaleessa, moluu',
+    '👩🏾‍🦲' => 'dubartii: toonii gogaa gurraacha-gidduugaleessa, moluu',
+    '👩🏿‍🦲' => 'dubartii: toonii gogaa gurraachaa, moluu',
+    '🙍🏻‍♂' => 'dhiira mufate: toonii gogaa ifaa',
+    '🙍🏼‍♂' => 'dhiira mufate: toonii gogaa ifaa-gidduugaleessa',
+    '🙍🏽‍♂' => 'dhiira mufate: toonii godaa gidduugaleessa',
+    '🙍🏾‍♂' => 'dhiira mufate: toonii gogaa gurraacha-gidduugaleessa',
+    '🙍🏿‍♂' => 'dhiira mufate: toonii gogaa gurraachaa',
+    '🙍🏻‍♀' => 'dubartii mufatte: toonii gogaa ifaa',
+    '🙍🏼‍♀' => 'dubartii mufatte: toonii gogaa ifaa-gidduugaleessa',
+    '🙍🏽‍♀' => 'dubartii mufatte: toonii godaa gidduugaleessa',
+    '🙍🏾‍♀' => 'dubartii mufatte: toonii gogaa gurraacha-gidduugaleessa',
+    '🙍🏿‍♀' => 'dubartii mufatte: toonii gogaa gurraachaa',
+    '🙎🏻‍♂' => 'dhiira huuruu dhiibu: toonii gogaa ifaa',
+    '🙎🏼‍♂' => 'dhiira huuruu dhiibu: toonii gogaa ifaa-gidduugaleessa',
+    '🙎🏽‍♂' => 'dhiira huuruu dhiibu: toonii godaa gidduugaleessa',
+    '🙎🏾‍♂' => 'dhiira huuruu dhiibu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙎🏿‍♂' => 'dhiira huuruu dhiibu: toonii gogaa gurraachaa',
+    '🙎🏻‍♀' => 'dubartii huuruu dhiibdu: toonii gogaa ifaa',
+    '🙎🏼‍♀' => 'dubartii huuruu dhiibdu: toonii gogaa ifaa-gidduugaleessa',
+    '🙎🏽‍♀' => 'dubartii huuruu dhiibdu: toonii godaa gidduugaleessa',
+    '🙎🏾‍♀' => 'dubartii huuruu dhiibdu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙎🏿‍♀' => 'dubartii huuruu dhiibdu: toonii gogaa gurraachaa',
+    '🙅🏻‍♂' => 'dhiira LAKKI jedhu: toonii gogaa ifaa',
+    '🙅🏼‍♂' => 'dhiira LAKKI jedhu: toonii gogaa ifaa-gidduugaleessa',
+    '🙅🏽‍♂' => 'dhiira LAKKI jedhu: toonii godaa gidduugaleessa',
+    '🙅🏾‍♂' => 'dhiira LAKKI jedhu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙅🏿‍♂' => 'dhiira LAKKI jedhu: toonii gogaa gurraachaa',
+    '🙅🏻‍♀' => 'dubartii LAKKI jettu: toonii gogaa ifaa',
+    '🙅🏼‍♀' => 'dubartii LAKKI jettu: toonii gogaa ifaa-gidduugaleessa',
+    '🙅🏽‍♀' => 'dubartii LAKKI jettu: toonii godaa gidduugaleessa',
+    '🙅🏾‍♀' => 'dubartii LAKKI jettu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙅🏿‍♀' => 'dubartii LAKKI jettu: toonii gogaa gurraachaa',
+    '🙆🏻‍♂' => 'dhiira TOLE jedhu: toonii gogaa ifaa',
+    '🙆🏼‍♂' => 'dhiira TOLE jedhu: toonii gogaa ifaa-gidduugaleessa',
+    '🙆🏽‍♂' => 'dhiira TOLE jedhu: toonii godaa gidduugaleessa',
+    '🙆🏾‍♂' => 'dhiira TOLE jedhu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙆🏿‍♂' => 'dhiira TOLE jedhu: toonii gogaa gurraachaa',
+    '🙆🏻‍♀' => 'dubartii TOLE jettu: toonii gogaa ifaa',
+    '🙆🏼‍♀' => 'dubartii TOLE jettu: toonii gogaa ifaa-gidduugaleessa',
+    '🙆🏽‍♀' => 'dubartii TOLE jettu: toonii godaa gidduugaleessa',
+    '🙆🏾‍♀' => 'dubartii TOLE jettu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙆🏿‍♀' => 'dubartii TOLE jettu: toonii gogaa gurraachaa',
+    '💁🏻‍♂' => 'dhiira harka diriirsu: toonii gogaa ifaa',
+    '💁🏼‍♂' => 'dhiira harka diriirsu: toonii gogaa ifaa-gidduugaleessa',
+    '💁🏽‍♂' => 'dhiira harka diriirsu: toonii godaa gidduugaleessa',
+    '💁🏾‍♂' => 'dhiira harka diriirsu: toonii gogaa gurraacha-gidduugaleessa',
+    '💁🏿‍♂' => 'dhiira harka diriirsu: toonii gogaa gurraachaa',
+    '💁🏻‍♀' => 'dubartii harka diriirsitu: toonii gogaa ifaa',
+    '💁🏼‍♀' => 'dubartii harka diriirsitu: toonii gogaa ifaa-gidduugaleessa',
+    '💁🏽‍♀' => 'dubartii harka diriirsitu: toonii godaa gidduugaleessa',
+    '💁🏾‍♀' => 'dubartii harka diriirsitu: toonii gogaa gurraacha-gidduugaleessa',
+    '💁🏿‍♀' => 'dubartii harka diriirsitu: toonii gogaa gurraachaa',
+    '🙋🏻‍♂' => 'dhiira harka baasu: toonii gogaa ifaa',
+    '🙋🏼‍♂' => 'dhiira harka baasu: toonii gogaa ifaa-gidduugaleessa',
+    '🙋🏽‍♂' => 'dhiira harka baasu: toonii godaa gidduugaleessa',
+    '🙋🏾‍♂' => 'dhiira harka baasu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙋🏿‍♂' => 'dhiira harka baasu: toonii gogaa gurraachaa',
+    '🙋🏻‍♀' => 'dubartii harka baastu: toonii gogaa ifaa',
+    '🙋🏼‍♀' => 'dubartii harka baastu: toonii gogaa ifaa-gidduugaleessa',
+    '🙋🏽‍♀' => 'dubartii harka baastu: toonii godaa gidduugaleessa',
+    '🙋🏾‍♀' => 'dubartii harka baastu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙋🏿‍♀' => 'dubartii harka baastu: toonii gogaa gurraachaa',
+    '🧏🏻‍♂' => 'dhiira duudaa: toonii gogaa ifaa',
+    '🧏🏼‍♂' => 'dhiira duudaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧏🏽‍♂' => 'dhiira duudaa: toonii godaa gidduugaleessa',
+    '🧏🏾‍♂' => 'dhiira duudaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧏🏿‍♂' => 'dhiira duudaa: toonii gogaa gurraachaa',
+    '🧏🏻‍♀' => 'dubartii duudaa: toonii gogaa ifaa',
+    '🧏🏼‍♀' => 'dubartii duudaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧏🏽‍♀' => 'dubartii duudaa: toonii godaa gidduugaleessa',
+    '🧏🏾‍♀' => 'dubartii duudaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧏🏿‍♀' => 'dubartii duudaa: toonii gogaa gurraachaa',
+    '🙇🏻‍♂' => 'dhiira sagadu: toonii gogaa ifaa',
+    '🙇🏼‍♂' => 'dhiira sagadu: toonii gogaa ifaa-gidduugaleessa',
+    '🙇🏽‍♂' => 'dhiira sagadu: toonii godaa gidduugaleessa',
+    '🙇🏾‍♂' => 'dhiira sagadu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙇🏿‍♂' => 'dhiira sagadu: toonii gogaa gurraachaa',
+    '🙇🏻‍♀' => 'dubartii sagaddu: toonii gogaa ifaa',
+    '🙇🏼‍♀' => 'dubartii sagaddu: toonii gogaa ifaa-gidduugaleessa',
+    '🙇🏽‍♀' => 'dubartii sagaddu: toonii godaa gidduugaleessa',
+    '🙇🏾‍♀' => 'dubartii sagaddu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙇🏿‍♀' => 'dubartii sagaddu: toonii gogaa gurraachaa',
+    '🤦🏻‍♂' => 'dhiira barruun fuula qabate: toonii gogaa ifaa',
+    '🤦🏼‍♂' => 'dhiira barruun fuula qabate: toonii gogaa ifaa-gidduugaleessa',
+    '🤦🏽‍♂' => 'dhiira barruun fuula qabate: toonii godaa gidduugaleessa',
+    '🤦🏾‍♂' => 'dhiira barruun fuula qabate: toonii gogaa gurraacha-gidduugaleessa',
+    '🤦🏿‍♂' => 'dhiira barruun fuula qabate: toonii gogaa gurraachaa',
+    '🤦🏻‍♀' => 'dubartii barruun fuula qabatte: toonii gogaa ifaa',
+    '🤦🏼‍♀' => 'dubartii barruun fuula qabatte: toonii gogaa ifaa-gidduugaleessa',
+    '🤦🏽‍♀' => 'dubartii barruun fuula qabatte: toonii godaa gidduugaleessa',
+    '🤦🏾‍♀' => 'dubartii barruun fuula qabatte: toonii gogaa gurraacha-gidduugaleessa',
+    '🤦🏿‍♀' => 'dubartii barruun fuula qabatte: toonii gogaa gurraachaa',
+    '🤷🏻‍♂' => 'dhiira mataa raasu: toonii gogaa ifaa',
+    '🤷🏼‍♂' => 'dhiira mataa raasu: toonii gogaa ifaa-gidduugaleessa',
+    '🤷🏽‍♂' => 'dhiira mataa raasu: toonii godaa gidduugaleessa',
+    '🤷🏾‍♂' => 'dhiira mataa raasu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤷🏿‍♂' => 'dhiira mataa raasu: toonii gogaa gurraachaa',
+    '🤷🏻‍♀' => 'dubartii mataa raastu: toonii gogaa ifaa',
+    '🤷🏼‍♀' => 'dubartii mataa raastu: toonii gogaa ifaa-gidduugaleessa',
+    '🤷🏽‍♀' => 'dubartii mataa raastu: toonii godaa gidduugaleessa',
+    '🤷🏾‍♀' => 'dubartii mataa raastu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤷🏿‍♀' => 'dubartii mataa raastu: toonii gogaa gurraachaa',
+    '🧑🏻‍⚕' => 'hojjetaa fayyaa: toonii gogaa ifaa',
+    '🧑🏼‍⚕' => 'hojjetaa fayyaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍⚕' => 'hojjetaa fayyaa: toonii godaa gidduugaleessa',
+    '🧑🏾‍⚕' => 'hojjetaa fayyaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍⚕' => 'hojjetaa fayyaa: toonii gogaa gurraachaa',
+    '👨🏻‍⚕' => 'dhiira hojjetaa fayyaa: toonii gogaa ifaa',
+    '👨🏼‍⚕' => 'dhiira hojjetaa fayyaa: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍⚕' => 'dhiira hojjetaa fayyaa: toonii godaa gidduugaleessa',
+    '👨🏾‍⚕' => 'dhiira hojjetaa fayyaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍⚕' => 'dhiira hojjetaa fayyaa: toonii gogaa gurraachaa',
+    '👩🏻‍⚕' => 'dubartii hojjettuu fayyaa: toonii gogaa ifaa',
+    '👩🏼‍⚕' => 'dubartii hojjettuu fayyaa: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍⚕' => 'dubartii hojjettuu fayyaa: toonii godaa gidduugaleessa',
+    '👩🏾‍⚕' => 'dubartii hojjettuu fayyaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍⚕' => 'dubartii hojjettuu fayyaa: toonii gogaa gurraachaa',
+    '🧑🏻‍🎓' => 'barataa: toonii gogaa ifaa',
+    '🧑🏼‍🎓' => 'barataa: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🎓' => 'barataa: toonii godaa gidduugaleessa',
+    '🧑🏾‍🎓' => 'barataa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🎓' => 'barataa: toonii gogaa gurraachaa',
+    '👨🏻‍🎓' => 'dhiira barataa: toonii gogaa ifaa',
+    '👨🏼‍🎓' => 'dhiira barataa: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🎓' => 'dhiira barataa: toonii godaa gidduugaleessa',
+    '👨🏾‍🎓' => 'dhiira barataa: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🎓' => 'dhiira barataa: toonii gogaa gurraachaa',
+    '👩🏻‍🎓' => 'dubartii barattuu: toonii gogaa ifaa',
+    '👩🏼‍🎓' => 'dubartii barattuu: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🎓' => 'dubartii barattuu: toonii godaa gidduugaleessa',
+    '👩🏾‍🎓' => 'dubartii barattuu: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🎓' => 'dubartii barattuu: toonii gogaa gurraachaa',
+    '🧑🏻‍🏫' => 'barsiisaa: toonii gogaa ifaa',
+    '🧑🏼‍🏫' => 'barsiisaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🏫' => 'barsiisaa: toonii godaa gidduugaleessa',
+    '🧑🏾‍🏫' => 'barsiisaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🏫' => 'barsiisaa: toonii gogaa gurraachaa',
+    '👨🏻‍🏫' => 'dhiira barsiisaa: toonii gogaa ifaa',
+    '👨🏼‍🏫' => 'dhiira barsiisaa: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🏫' => 'dhiira barsiisaa: toonii godaa gidduugaleessa',
+    '👨🏾‍🏫' => 'dhiira barsiisaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🏫' => 'dhiira barsiisaa: toonii gogaa gurraachaa',
+    '👩🏻‍🏫' => 'dubartii barsiistuu: toonii gogaa ifaa',
+    '👩🏼‍🏫' => 'dubartii barsiistuu: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🏫' => 'dubartii barsiistuu: toonii godaa gidduugaleessa',
+    '👩🏾‍🏫' => 'dubartii barsiistuu: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🏫' => 'dubartii barsiistuu: toonii gogaa gurraachaa',
+    '🧑🏻‍⚖' => 'abbaa murtii: toonii gogaa ifaa',
+    '🧑🏼‍⚖' => 'abbaa murtii: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍⚖' => 'abbaa murtii: toonii godaa gidduugaleessa',
+    '🧑🏾‍⚖' => 'abbaa murtii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍⚖' => 'abbaa murtii: toonii gogaa gurraachaa',
+    '👨🏻‍⚖' => 'dhiira abbaa murtii: toonii gogaa ifaa',
+    '👨🏼‍⚖' => 'dhiira abbaa murtii: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍⚖' => 'dhiira abbaa murtii: toonii godaa gidduugaleessa',
+    '👨🏾‍⚖' => 'dhiira abbaa murtii: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍⚖' => 'dhiira abbaa murtii: toonii gogaa gurraachaa',
+    '👩🏻‍⚖' => 'dubartii haadha murtii: toonii gogaa ifaa',
+    '👩🏼‍⚖' => 'dubartii haadha murtii: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍⚖' => 'dubartii haadha murtii: toonii godaa gidduugaleessa',
+    '👩🏾‍⚖' => 'dubartii haadha murtii: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍⚖' => 'dubartii haadha murtii: toonii gogaa gurraachaa',
+    '🧑🏻‍🌾' => 'qotee bulaa: toonii gogaa ifaa',
+    '🧑🏼‍🌾' => 'qotee bulaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🌾' => 'qotee bulaa: toonii godaa gidduugaleessa',
+    '🧑🏾‍🌾' => 'qotee bulaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🌾' => 'qotee bulaa: toonii gogaa gurraachaa',
+    '👨🏻‍🌾' => 'dhiira qotee bulaa: toonii gogaa ifaa',
+    '👨🏼‍🌾' => 'dhiira qotee bulaa: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🌾' => 'dhiira qotee bulaa: toonii godaa gidduugaleessa',
+    '👨🏾‍🌾' => 'dhiira qotee bulaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🌾' => 'dhiira qotee bulaa: toonii gogaa gurraachaa',
+    '👩🏻‍🌾' => 'dubartii qottee bultuu: toonii gogaa ifaa',
+    '👩🏼‍🌾' => 'dubartii qottee bultuu: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🌾' => 'dubartii qottee bultuu: toonii godaa gidduugaleessa',
+    '👩🏾‍🌾' => 'dubartii qottee bultuu: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🌾' => 'dubartii qottee bultuu: toonii gogaa gurraachaa',
+    '🧑🏻‍🍳' => 'nama nyaata bilcheessu: toonii gogaa ifaa',
+    '🧑🏼‍🍳' => 'nama nyaata bilcheessu: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🍳' => 'nama nyaata bilcheessu: toonii godaa gidduugaleessa',
+    '🧑🏾‍🍳' => 'nama nyaata bilcheessu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🍳' => 'nama nyaata bilcheessu: toonii gogaa gurraachaa',
+    '👨🏻‍🍳' => 'dhiira nyaata bilcheessu: toonii gogaa ifaa',
+    '👨🏼‍🍳' => 'dhiira nyaata bilcheessu: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🍳' => 'dhiira nyaata bilcheessu: toonii godaa gidduugaleessa',
+    '👨🏾‍🍳' => 'dhiira nyaata bilcheessu: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🍳' => 'dhiira nyaata bilcheessu: toonii gogaa gurraachaa',
+    '👩🏻‍🍳' => 'dubartii nyaata hojjettu: toonii gogaa ifaa',
+    '👩🏼‍🍳' => 'dubartii nyaata hojjettu: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🍳' => 'dubartii nyaata hojjettu: toonii godaa gidduugaleessa',
+    '👩🏾‍🍳' => 'dubartii nyaata hojjettu: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🍳' => 'dubartii nyaata hojjettu: toonii gogaa gurraachaa',
+    '🧑🏻‍🔧' => 'mekaanikii: toonii gogaa ifaa',
+    '🧑🏼‍🔧' => 'mekaanikii: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🔧' => 'mekaanikii: toonii godaa gidduugaleessa',
+    '🧑🏾‍🔧' => 'mekaanikii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🔧' => 'mekaanikii: toonii gogaa gurraachaa',
+    '👨🏻‍🔧' => 'dhiira makaanikii: toonii gogaa ifaa',
+    '👨🏼‍🔧' => 'dhiira makaanikii: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🔧' => 'dhiira makaanikii: toonii godaa gidduugaleessa',
+    '👨🏾‍🔧' => 'dhiira makaanikii: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🔧' => 'dhiira makaanikii: toonii gogaa gurraachaa',
+    '👩🏻‍🔧' => 'dubartii makaanikii: toonii gogaa ifaa',
+    '👩🏼‍🔧' => 'dubartii makaanikii: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🔧' => 'dubartii makaanikii: toonii godaa gidduugaleessa',
+    '👩🏾‍🔧' => 'dubartii makaanikii: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🔧' => 'dubartii makaanikii: toonii gogaa gurraachaa',
+    '🧑🏻‍🏭' => 'hojjetaa waarshaa: toonii gogaa ifaa',
+    '🧑🏼‍🏭' => 'hojjetaa waarshaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🏭' => 'hojjetaa waarshaa: toonii godaa gidduugaleessa',
+    '🧑🏾‍🏭' => 'hojjetaa waarshaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🏭' => 'hojjetaa waarshaa: toonii gogaa gurraachaa',
+    '👨🏻‍🏭' => 'dhiira hojjetaa waarshaa: toonii gogaa ifaa',
+    '👨🏼‍🏭' => 'dhiira hojjetaa waarshaa: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🏭' => 'dhiira hojjetaa waarshaa: toonii godaa gidduugaleessa',
+    '👨🏾‍🏭' => 'dhiira hojjetaa waarshaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🏭' => 'dhiira hojjetaa waarshaa: toonii gogaa gurraachaa',
+    '👩🏻‍🏭' => 'dubartii hojjettuu waarshaa: toonii gogaa ifaa',
+    '👩🏼‍🏭' => 'dubartii hojjettuu waarshaa: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🏭' => 'dubartii hojjettuu waarshaa: toonii godaa gidduugaleessa',
+    '👩🏾‍🏭' => 'dubartii hojjettuu waarshaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🏭' => 'dubartii hojjettuu waarshaa: toonii gogaa gurraachaa',
+    '🧑🏻‍💼' => 'hoojjetaa waajjiraa: toonii gogaa ifaa',
+    '🧑🏼‍💼' => 'hoojjetaa waajjiraa: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍💼' => 'hoojjetaa waajjiraa: toonii godaa gidduugaleessa',
+    '🧑🏾‍💼' => 'hoojjetaa waajjiraa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍💼' => 'hoojjetaa waajjiraa: toonii gogaa gurraachaa',
+    '👨🏻‍💼' => 'dhiira hojjetaa waajjiraa: toonii gogaa ifaa',
+    '👨🏼‍💼' => 'dhiira hojjetaa waajjiraa: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍💼' => 'dhiira hojjetaa waajjiraa: toonii godaa gidduugaleessa',
+    '👨🏾‍💼' => 'dhiira hojjetaa waajjiraa: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍💼' => 'dhiira hojjetaa waajjiraa: toonii gogaa gurraachaa',
+    '👩🏻‍💼' => 'dubartii hojjettuu waajjiraa: toonii gogaa ifaa',
+    '👩🏼‍💼' => 'dubartii hojjettuu waajjiraa: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍💼' => 'dubartii hojjettuu waajjiraa: toonii godaa gidduugaleessa',
+    '👩🏾‍💼' => 'dubartii hojjettuu waajjiraa: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍💼' => 'dubartii hojjettuu waajjiraa: toonii gogaa gurraachaa',
+    '🧑🏻‍🔬' => 'saayintistii: toonii gogaa ifaa',
+    '🧑🏼‍🔬' => 'saayintistii: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🔬' => 'saayintistii: toonii godaa gidduugaleessa',
+    '🧑🏾‍🔬' => 'saayintistii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🔬' => 'saayintistii: toonii gogaa gurraachaa',
+    '👨🏻‍🔬' => 'dhiira saayintistii: toonii gogaa ifaa',
+    '👨🏼‍🔬' => 'dhiira saayintistii: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🔬' => 'dhiira saayintistii: toonii godaa gidduugaleessa',
+    '👨🏾‍🔬' => 'dhiira saayintistii: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🔬' => 'dhiira saayintistii: toonii gogaa gurraachaa',
+    '👩🏻‍🔬' => 'dubartii saayintistii: toonii gogaa ifaa',
+    '👩🏼‍🔬' => 'dubartii saayintistii: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🔬' => 'dubartii saayintistii: toonii godaa gidduugaleessa',
+    '👩🏾‍🔬' => 'dubartii saayintistii: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🔬' => 'dubartii saayintistii: toonii gogaa gurraachaa',
+    '🧑🏻‍💻' => 'ogeessa tekinoloojii: toonii gogaa ifaa',
+    '🧑🏼‍💻' => 'ogeessa tekinoloojii: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍💻' => 'ogeessa tekinoloojii: toonii godaa gidduugaleessa',
+    '🧑🏾‍💻' => 'ogeessa tekinoloojii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍💻' => 'ogeessa tekinoloojii: toonii gogaa gurraachaa',
+    '👨🏻‍💻' => 'dhiira ogeessa tekinoloojii: toonii gogaa ifaa',
+    '👨🏼‍💻' => 'dhiira ogeessa tekinoloojii: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍💻' => 'dhiira ogeessa tekinoloojii: toonii godaa gidduugaleessa',
+    '👨🏾‍💻' => 'dhiira ogeessa tekinoloojii: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍💻' => 'dhiira ogeessa tekinoloojii: toonii gogaa gurraachaa',
+    '👩🏻‍💻' => 'dubartii ogeettii tekinoloojii: toonii gogaa ifaa',
+    '👩🏼‍💻' => 'dubartii ogeettii tekinoloojii: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍💻' => 'dubartii ogeettii tekinoloojii: toonii godaa gidduugaleessa',
+    '👩🏾‍💻' => 'dubartii ogeettii tekinoloojii: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍💻' => 'dubartii ogeettii tekinoloojii: toonii gogaa gurraachaa',
+    '🧑🏻‍🎤' => 'sirbituu: toonii gogaa ifaa',
+    '🧑🏼‍🎤' => 'sirbituu: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🎤' => 'sirbituu: toonii godaa gidduugaleessa',
+    '🧑🏾‍🎤' => 'sirbituu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🎤' => 'sirbituu: toonii gogaa gurraachaa',
+    '👨🏻‍🎤' => 'dhiira sirbu: toonii gogaa ifaa',
+    '👨🏼‍🎤' => 'dhiira sirbu: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🎤' => 'dhiira sirbu: toonii godaa gidduugaleessa',
+    '👨🏾‍🎤' => 'dhiira sirbu: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🎤' => 'dhiira sirbu: toonii gogaa gurraachaa',
+    '👩🏻‍🎤' => 'dubartii sirbituu: toonii gogaa ifaa',
+    '👩🏼‍🎤' => 'dubartii sirbituu: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🎤' => 'dubartii sirbituu: toonii godaa gidduugaleessa',
+    '👩🏾‍🎤' => 'dubartii sirbituu: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🎤' => 'dubartii sirbituu: toonii gogaa gurraachaa',
+    '🧑🏻‍🎨' => 'artistii: toonii gogaa ifaa',
+    '🧑🏼‍🎨' => 'artistii: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🎨' => 'artistii: toonii godaa gidduugaleessa',
+    '🧑🏾‍🎨' => 'artistii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🎨' => 'artistii: toonii gogaa gurraachaa',
+    '👨🏻‍🎨' => 'dhiira artistii: toonii gogaa ifaa',
+    '👨🏼‍🎨' => 'dhiira artistii: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🎨' => 'dhiira artistii: toonii godaa gidduugaleessa',
+    '👨🏾‍🎨' => 'dhiira artistii: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🎨' => 'dhiira artistii: toonii gogaa gurraachaa',
+    '👩🏻‍🎨' => 'dubartii artistii: toonii gogaa ifaa',
+    '👩🏼‍🎨' => 'dubartii artistii: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🎨' => 'dubartii artistii: toonii godaa gidduugaleessa',
+    '👩🏾‍🎨' => 'dubartii artistii: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🎨' => 'dubartii artistii: toonii gogaa gurraachaa',
+    '🧑🏻‍✈' => 'paayileetii: toonii gogaa ifaa',
+    '🧑🏼‍✈' => 'paayileetii: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍✈' => 'paayileetii: toonii godaa gidduugaleessa',
+    '🧑🏾‍✈' => 'paayileetii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍✈' => 'paayileetii: toonii gogaa gurraachaa',
+    '👨🏻‍✈' => 'dhiira paayileetii: toonii gogaa ifaa',
+    '👨🏼‍✈' => 'dhiira paayileetii: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍✈' => 'dhiira paayileetii: toonii godaa gidduugaleessa',
+    '👨🏾‍✈' => 'dhiira paayileetii: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍✈' => 'dhiira paayileetii: toonii gogaa gurraachaa',
+    '👩🏻‍✈' => 'dubartii paayileetii: toonii gogaa ifaa',
+    '👩🏼‍✈' => 'dubartii paayileetii: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍✈' => 'dubartii paayileetii: toonii godaa gidduugaleessa',
+    '👩🏾‍✈' => 'dubartii paayileetii: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍✈' => 'dubartii paayileetii: toonii gogaa gurraachaa',
+    '🧑🏻‍🚀' => 'ogeessa astiroonoomii: toonii gogaa ifaa',
+    '🧑🏼‍🚀' => 'ogeessa astiroonoomii: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🚀' => 'ogeessa astiroonoomii: toonii godaa gidduugaleessa',
+    '🧑🏾‍🚀' => 'ogeessa astiroonoomii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🚀' => 'ogeessa astiroonoomii: toonii gogaa gurraachaa',
+    '👨🏻‍🚀' => 'dhiira ogeessa astiroonoomii: toonii gogaa ifaa',
+    '👨🏼‍🚀' => 'dhiira ogeessa astiroonoomii: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🚀' => 'dhiira ogeessa astiroonoomii: toonii godaa gidduugaleessa',
+    '👨🏾‍🚀' => 'dhiira ogeessa astiroonoomii: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🚀' => 'dhiira ogeessa astiroonoomii: toonii gogaa gurraachaa',
+    '👩🏻‍🚀' => 'dubarii ogeettii astiroonoomi: toonii gogaa ifaa',
+    '👩🏼‍🚀' => 'dubarii ogeettii astiroonoomi: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🚀' => 'dubarii ogeettii astiroonoomi: toonii godaa gidduugaleessa',
+    '👩🏾‍🚀' => 'dubarii ogeettii astiroonoomi: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🚀' => 'dubarii ogeettii astiroonoomi: toonii gogaa gurraachaa',
+    '🧑🏻‍🚒' => 'nama ibidda dhaamsu: toonii gogaa ifaa',
+    '🧑🏼‍🚒' => 'nama ibidda dhaamsu: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🚒' => 'nama ibidda dhaamsu: toonii godaa gidduugaleessa',
+    '🧑🏾‍🚒' => 'nama ibidda dhaamsu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🚒' => 'nama ibidda dhaamsu: toonii gogaa gurraachaa',
+    '👨🏻‍🚒' => 'dhiira hojjetaa balaa ibiddaa: toonii gogaa ifaa',
+    '👨🏼‍🚒' => 'dhiira hojjetaa balaa ibiddaa: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🚒' => 'dhiira hojjetaa balaa ibiddaa: toonii godaa gidduugaleessa',
+    '👨🏾‍🚒' => 'dhiira hojjetaa balaa ibiddaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🚒' => 'dhiira hojjetaa balaa ibiddaa: toonii gogaa gurraachaa',
+    '👩🏻‍🚒' => 'dubartii hojjettuu balaa ibiddaa: toonii gogaa ifaa',
+    '👩🏼‍🚒' => 'dubartii hojjettuu balaa ibiddaa: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🚒' => 'dubartii hojjettuu balaa ibiddaa: toonii godaa gidduugaleessa',
+    '👩🏾‍🚒' => 'dubartii hojjettuu balaa ibiddaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🚒' => 'dubartii hojjettuu balaa ibiddaa: toonii gogaa gurraachaa',
+    '👮🏻‍♂' => 'dhiira qondaala poolisii: toonii gogaa ifaa',
+    '👮🏼‍♂' => 'dhiira qondaala poolisii: toonii gogaa ifaa-gidduugaleessa',
+    '👮🏽‍♂' => 'dhiira qondaala poolisii: toonii godaa gidduugaleessa',
+    '👮🏾‍♂' => 'dhiira qondaala poolisii: toonii gogaa gurraacha-gidduugaleessa',
+    '👮🏿‍♂' => 'dhiira qondaala poolisii: toonii gogaa gurraachaa',
+    '👮🏻‍♀' => 'dubartii qondaala poolisii: toonii gogaa ifaa',
+    '👮🏼‍♀' => 'dubartii qondaala poolisii: toonii gogaa ifaa-gidduugaleessa',
+    '👮🏽‍♀' => 'dubartii qondaala poolisii: toonii godaa gidduugaleessa',
+    '👮🏾‍♀' => 'dubartii qondaala poolisii: toonii gogaa gurraacha-gidduugaleessa',
+    '👮🏿‍♀' => 'dubartii qondaala poolisii: toonii gogaa gurraachaa',
+    '🕵🏻‍♂' => 'dhiira qorataa: toonii gogaa ifaa',
+    '🕵🏼‍♂' => 'dhiira qorataa: toonii gogaa ifaa-gidduugaleessa',
+    '🕵🏽‍♂' => 'dhiira qorataa: toonii godaa gidduugaleessa',
+    '🕵🏾‍♂' => 'dhiira qorataa: toonii gogaa gurraacha-gidduugaleessa',
+    '🕵🏿‍♂' => 'dhiira qorataa: toonii gogaa gurraachaa',
+    '🕵🏻‍♀' => 'dubartii qorattuu: toonii gogaa ifaa',
+    '🕵🏼‍♀' => 'dubartii qorattuu: toonii gogaa ifaa-gidduugaleessa',
+    '🕵🏽‍♀' => 'dubartii qorattuu: toonii godaa gidduugaleessa',
+    '🕵🏾‍♀' => 'dubartii qorattuu: toonii gogaa gurraacha-gidduugaleessa',
+    '🕵🏿‍♀' => 'dubartii qorattuu: toonii gogaa gurraachaa',
+    '💂🏻‍♂' => 'dhiira eegaa: toonii gogaa ifaa',
+    '💂🏼‍♂' => 'dhiira eegaa: toonii gogaa ifaa-gidduugaleessa',
+    '💂🏽‍♂' => 'dhiira eegaa: toonii godaa gidduugaleessa',
+    '💂🏾‍♂' => 'dhiira eegaa: toonii gogaa gurraacha-gidduugaleessa',
+    '💂🏿‍♂' => 'dhiira eegaa: toonii gogaa gurraachaa',
+    '💂🏻‍♀' => 'dubartii eegduu: toonii gogaa ifaa',
+    '💂🏼‍♀' => 'dubartii eegduu: toonii gogaa ifaa-gidduugaleessa',
+    '💂🏽‍♀' => 'dubartii eegduu: toonii godaa gidduugaleessa',
+    '💂🏾‍♀' => 'dubartii eegduu: toonii gogaa gurraacha-gidduugaleessa',
+    '💂🏿‍♀' => 'dubartii eegduu: toonii gogaa gurraachaa',
+    '👷🏻‍♂' => 'dhiira hojjetaa ijaarsaa: toonii gogaa ifaa',
+    '👷🏼‍♂' => 'dhiira hojjetaa ijaarsaa: toonii gogaa ifaa-gidduugaleessa',
+    '👷🏽‍♂' => 'dhiira hojjetaa ijaarsaa: toonii godaa gidduugaleessa',
+    '👷🏾‍♂' => 'dhiira hojjetaa ijaarsaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👷🏿‍♂' => 'dhiira hojjetaa ijaarsaa: toonii gogaa gurraachaa',
+    '👷🏻‍♀' => 'dubartii hojjettuu ijaarsaa: toonii gogaa ifaa',
+    '👷🏼‍♀' => 'dubartii hojjettuu ijaarsaa: toonii gogaa ifaa-gidduugaleessa',
+    '👷🏽‍♀' => 'dubartii hojjettuu ijaarsaa: toonii godaa gidduugaleessa',
+    '👷🏾‍♀' => 'dubartii hojjettuu ijaarsaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👷🏿‍♀' => 'dubartii hojjettuu ijaarsaa: toonii gogaa gurraachaa',
+    '👳🏻‍♂' => 'dhiira turbaanii uffatu: toonii gogaa ifaa',
+    '👳🏼‍♂' => 'dhiira turbaanii uffatu: toonii gogaa ifaa-gidduugaleessa',
+    '👳🏽‍♂' => 'dhiira turbaanii uffatu: toonii godaa gidduugaleessa',
+    '👳🏾‍♂' => 'dhiira turbaanii uffatu: toonii gogaa gurraacha-gidduugaleessa',
+    '👳🏿‍♂' => 'dhiira turbaanii uffatu: toonii gogaa gurraachaa',
+    '👳🏻‍♀' => 'dubartii turbaanii uffattu: toonii gogaa ifaa',
+    '👳🏼‍♀' => 'dubartii turbaanii uffattu: toonii gogaa ifaa-gidduugaleessa',
+    '👳🏽‍♀' => 'dubartii turbaanii uffattu: toonii godaa gidduugaleessa',
+    '👳🏾‍♀' => 'dubartii turbaanii uffattu: toonii gogaa gurraacha-gidduugaleessa',
+    '👳🏿‍♀' => 'dubartii turbaanii uffattu: toonii gogaa gurraachaa',
+    '🤵🏻‍♂' => 'dhiira bijaamaa uffate: toonii gogaa ifaa',
+    '🤵🏼‍♂' => 'dhiira bijaamaa uffate: toonii gogaa ifaa-gidduugaleessa',
+    '🤵🏽‍♂' => 'dhiira bijaamaa uffate: toonii godaa gidduugaleessa',
+    '🤵🏾‍♂' => 'dhiira bijaamaa uffate: toonii gogaa gurraacha-gidduugaleessa',
+    '🤵🏿‍♂' => 'dhiira bijaamaa uffate: toonii gogaa gurraachaa',
+    '🤵🏻‍♀' => 'dubartii bijaamaa uffatte: toonii gogaa ifaa',
+    '🤵🏼‍♀' => 'dubartii bijaamaa uffatte: toonii gogaa ifaa-gidduugaleessa',
+    '🤵🏽‍♀' => 'dubartii bijaamaa uffatte: toonii godaa gidduugaleessa',
+    '🤵🏾‍♀' => 'dubartii bijaamaa uffatte: toonii gogaa gurraacha-gidduugaleessa',
+    '🤵🏿‍♀' => 'dubartii bijaamaa uffatte: toonii gogaa gurraachaa',
+    '👰🏻‍♂' => 'dhiira golgaa waliin: toonii gogaa ifaa',
+    '👰🏼‍♂' => 'dhiira golgaa waliin: toonii gogaa ifaa-gidduugaleessa',
+    '👰🏽‍♂' => 'dhiira golgaa waliin: toonii godaa gidduugaleessa',
+    '👰🏾‍♂' => 'dhiira golgaa waliin: toonii gogaa gurraacha-gidduugaleessa',
+    '👰🏿‍♂' => 'dhiira golgaa waliin: toonii gogaa gurraachaa',
+    '👰🏻‍♀' => 'dubartii golgaa waliin: toonii gogaa ifaa',
+    '👰🏼‍♀' => 'dubartii golgaa waliin: toonii gogaa ifaa-gidduugaleessa',
+    '👰🏽‍♀' => 'dubartii golgaa waliin: toonii godaa gidduugaleessa',
+    '👰🏾‍♀' => 'dubartii golgaa waliin: toonii gogaa gurraacha-gidduugaleessa',
+    '👰🏿‍♀' => 'dubartii golgaa waliin: toonii gogaa gurraachaa',
+    '👩🏻‍🍼' => 'dubartii daa’ima nyaachistu: toonii gogaa ifaa',
+    '👩🏼‍🍼' => 'dubartii daa’ima nyaachistu: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🍼' => 'dubartii daa’ima nyaachistu: toonii godaa gidduugaleessa',
+    '👩🏾‍🍼' => 'dubartii daa’ima nyaachistu: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🍼' => 'dubartii daa’ima nyaachistu: toonii gogaa gurraachaa',
+    '👨🏻‍🍼' => 'dhiira daa’ima nyaachisu: toonii gogaa ifaa',
+    '👨🏼‍🍼' => 'dhiira daa’ima nyaachisu: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🍼' => 'dhiira daa’ima nyaachisu: toonii godaa gidduugaleessa',
+    '👨🏾‍🍼' => 'dhiira daa’ima nyaachisu: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🍼' => 'dhiira daa’ima nyaachisu: toonii gogaa gurraachaa',
+    '🧑🏻‍🍼' => 'nama daa’ima nyaachisu: toonii gogaa ifaa',
+    '🧑🏼‍🍼' => 'nama daa’ima nyaachisu: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🍼' => 'nama daa’ima nyaachisu: toonii godaa gidduugaleessa',
+    '🧑🏾‍🍼' => 'nama daa’ima nyaachisu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🍼' => 'nama daa’ima nyaachisu: toonii gogaa gurraachaa',
+    '🧑🏻‍🎄' => 'Kilaawosii qillee: toonii gogaa ifaa',
+    '🧑🏼‍🎄' => 'Kilaawosii qillee: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🎄' => 'Kilaawosii qillee: toonii godaa gidduugaleessa',
+    '🧑🏾‍🎄' => 'Kilaawosii qillee: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🎄' => 'Kilaawosii qillee: toonii gogaa gurraachaa',
+    '🦸🏻‍♂' => 'dhiira goota: toonii gogaa ifaa',
+    '🦸🏼‍♂' => 'dhiira goota: toonii gogaa ifaa-gidduugaleessa',
+    '🦸🏽‍♂' => 'dhiira goota: toonii godaa gidduugaleessa',
+    '🦸🏾‍♂' => 'dhiira goota: toonii gogaa gurraacha-gidduugaleessa',
+    '🦸🏿‍♂' => 'dhiira goota: toonii gogaa gurraachaa',
+    '🦸🏻‍♀' => 'dubartii goota: toonii gogaa ifaa',
+    '🦸🏼‍♀' => 'dubartii goota: toonii gogaa ifaa-gidduugaleessa',
+    '🦸🏽‍♀' => 'dubartii goota: toonii godaa gidduugaleessa',
+    '🦸🏾‍♀' => 'dubartii goota: toonii gogaa gurraacha-gidduugaleessa',
+    '🦸🏿‍♀' => 'dubartii goota: toonii gogaa gurraachaa',
+    '🦹🏻‍♂' => 'dhiira jallataa: toonii gogaa ifaa',
+    '🦹🏼‍♂' => 'dhiira jallataa: toonii gogaa ifaa-gidduugaleessa',
+    '🦹🏽‍♂' => 'dhiira jallataa: toonii godaa gidduugaleessa',
+    '🦹🏾‍♂' => 'dhiira jallataa: toonii gogaa gurraacha-gidduugaleessa',
+    '🦹🏿‍♂' => 'dhiira jallataa: toonii gogaa gurraachaa',
+    '🦹🏻‍♀' => 'dubartii jallattuu: toonii gogaa ifaa',
+    '🦹🏼‍♀' => 'dubartii jallattuu: toonii gogaa ifaa-gidduugaleessa',
+    '🦹🏽‍♀' => 'dubartii jallattuu: toonii godaa gidduugaleessa',
+    '🦹🏾‍♀' => 'dubartii jallattuu: toonii gogaa gurraacha-gidduugaleessa',
+    '🦹🏿‍♀' => 'dubartii jallattuu: toonii gogaa gurraachaa',
+    '🧙🏻‍♂' => 'dhiira falfalaa: toonii gogaa ifaa',
+    '🧙🏼‍♂' => 'dhiira falfalaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧙🏽‍♂' => 'dhiira falfalaa: toonii godaa gidduugaleessa',
+    '🧙🏾‍♂' => 'dhiira falfalaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧙🏿‍♂' => 'dhiira falfalaa: toonii gogaa gurraachaa',
+    '🧙🏻‍♀' => 'dubartii fafaltuu: toonii gogaa ifaa',
+    '🧙🏼‍♀' => 'dubartii fafaltuu: toonii gogaa ifaa-gidduugaleessa',
+    '🧙🏽‍♀' => 'dubartii fafaltuu: toonii godaa gidduugaleessa',
+    '🧙🏾‍♀' => 'dubartii fafaltuu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧙🏿‍♀' => 'dubartii fafaltuu: toonii gogaa gurraachaa',
+    '🧚🏻‍♂' => 'dhiira feerii: toonii gogaa ifaa',
+    '🧚🏼‍♂' => 'dhiira feerii: toonii gogaa ifaa-gidduugaleessa',
+    '🧚🏽‍♂' => 'dhiira feerii: toonii godaa gidduugaleessa',
+    '🧚🏾‍♂' => 'dhiira feerii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧚🏿‍♂' => 'dhiira feerii: toonii gogaa gurraachaa',
+    '🧚🏻‍♀' => 'dubartii feerii: toonii gogaa ifaa',
+    '🧚🏼‍♀' => 'dubartii feerii: toonii gogaa ifaa-gidduugaleessa',
+    '🧚🏽‍♀' => 'dubartii feerii: toonii godaa gidduugaleessa',
+    '🧚🏾‍♀' => 'dubartii feerii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧚🏿‍♀' => 'dubartii feerii: toonii gogaa gurraachaa',
+    '🧛🏻‍♂' => 'dhiira vaampaayerii: toonii gogaa ifaa',
+    '🧛🏼‍♂' => 'dhiira vaampaayerii: toonii gogaa ifaa-gidduugaleessa',
+    '🧛🏽‍♂' => 'dhiira vaampaayerii: toonii godaa gidduugaleessa',
+    '🧛🏾‍♂' => 'dhiira vaampaayerii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧛🏿‍♂' => 'dhiira vaampaayerii: toonii gogaa gurraachaa',
+    '🧛🏻‍♀' => 'dubartii vaampaayerii: toonii gogaa ifaa',
+    '🧛🏼‍♀' => 'dubartii vaampaayerii: toonii gogaa ifaa-gidduugaleessa',
+    '🧛🏽‍♀' => 'dubartii vaampaayerii: toonii godaa gidduugaleessa',
+    '🧛🏾‍♀' => 'dubartii vaampaayerii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧛🏿‍♀' => 'dubartii vaampaayerii: toonii gogaa gurraachaa',
+    '🧜🏻‍♂' => 'dhiira lo’u: toonii gogaa ifaa',
+    '🧜🏼‍♂' => 'dhiira lo’u: toonii gogaa ifaa-gidduugaleessa',
+    '🧜🏽‍♂' => 'dhiira lo’u: toonii godaa gidduugaleessa',
+    '🧜🏾‍♂' => 'dhiira lo’u: toonii gogaa gurraacha-gidduugaleessa',
+    '🧜🏿‍♂' => 'dhiira lo’u: toonii gogaa gurraachaa',
+    '🧜🏻‍♀' => 'dubartii lootu: toonii gogaa ifaa',
+    '🧜🏼‍♀' => 'dubartii lootu: toonii gogaa ifaa-gidduugaleessa',
+    '🧜🏽‍♀' => 'dubartii lootu: toonii godaa gidduugaleessa',
+    '🧜🏾‍♀' => 'dubartii lootu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧜🏿‍♀' => 'dubartii lootu: toonii gogaa gurraachaa',
+    '💆🏻‍♂' => 'dhiira sukkuumamaa jiru: toonii gogaa ifaa',
+    '💆🏼‍♂' => 'dhiira sukkuumamaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '💆🏽‍♂' => 'dhiira sukkuumamaa jiru: toonii godaa gidduugaleessa',
+    '💆🏾‍♂' => 'dhiira sukkuumamaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '💆🏿‍♂' => 'dhiira sukkuumamaa jiru: toonii gogaa gurraachaa',
+    '💆🏻‍♀' => 'dubartii sukkuumamaa jirtu: toonii gogaa ifaa',
+    '💆🏼‍♀' => 'dubartii sukkuumamaa jirtu: toonii gogaa ifaa-gidduugaleessa',
+    '💆🏽‍♀' => 'dubartii sukkuumamaa jirtu: toonii godaa gidduugaleessa',
+    '💆🏾‍♀' => 'dubartii sukkuumamaa jirtu: toonii gogaa gurraacha-gidduugaleessa',
+    '💆🏿‍♀' => 'dubartii sukkuumamaa jirtu: toonii gogaa gurraachaa',
+    '💇🏻‍♂' => 'dhiira rifeensa sirreeffachaa jiru: toonii gogaa ifaa',
+    '💇🏼‍♂' => 'dhiira rifeensa sirreeffachaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '💇🏽‍♂' => 'dhiira rifeensa sirreeffachaa jiru: toonii godaa gidduugaleessa',
+    '💇🏾‍♂' => 'dhiira rifeensa sirreeffachaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '💇🏿‍♂' => 'dhiira rifeensa sirreeffachaa jiru: toonii gogaa gurraachaa',
+    '💇🏻‍♀' => 'dubartii rifeensa sirreeffachaa jirtu: toonii gogaa ifaa',
+    '💇🏼‍♀' => 'dubartii rifeensa sirreeffachaa jirtu: toonii gogaa ifaa-gidduugaleessa',
+    '💇🏽‍♀' => 'dubartii rifeensa sirreeffachaa jirtu: toonii godaa gidduugaleessa',
+    '💇🏾‍♀' => 'dubartii rifeensa sirreeffachaa jirtu: toonii gogaa gurraacha-gidduugaleessa',
+    '💇🏿‍♀' => 'dubartii rifeensa sirreeffachaa jirtu: toonii gogaa gurraachaa',
+    '🚶🏻‍♂' => 'dhiira deemaa jiru: toonii gogaa ifaa',
+    '🚶🏼‍♂' => 'dhiira deemaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🚶🏽‍♂' => 'dhiira deemaa jiru: toonii godaa gidduugaleessa',
+    '🚶🏾‍♂' => 'dhiira deemaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🚶🏿‍♂' => 'dhiira deemaa jiru: toonii gogaa gurraachaa',
+    '🚶🏻‍♀' => 'dubartii deemaa jirtu: toonii gogaa ifaa',
+    '🚶🏼‍♀' => 'dubartii deemaa jirtu: toonii gogaa ifaa-gidduugaleessa',
+    '🚶🏽‍♀' => 'dubartii deemaa jirtu: toonii godaa gidduugaleessa',
+    '🚶🏾‍♀' => 'dubartii deemaa jirtu: toonii gogaa gurraacha-gidduugaleessa',
+    '🚶🏿‍♀' => 'dubartii deemaa jirtu: toonii gogaa gurraachaa',
+    '🧍🏻‍♂' => 'dhiira dhaabbatu: toonii gogaa ifaa',
+    '🧍🏼‍♂' => 'dhiira dhaabbatu: toonii gogaa ifaa-gidduugaleessa',
+    '🧍🏽‍♂' => 'dhiira dhaabbatu: toonii godaa gidduugaleessa',
+    '🧍🏾‍♂' => 'dhiira dhaabbatu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧍🏿‍♂' => 'dhiira dhaabbatu: toonii gogaa gurraachaa',
+    '🧍🏻‍♀' => 'dubartii dhaabbattu: toonii gogaa ifaa',
+    '🧍🏼‍♀' => 'dubartii dhaabbattu: toonii gogaa ifaa-gidduugaleessa',
+    '🧍🏽‍♀' => 'dubartii dhaabbattu: toonii godaa gidduugaleessa',
+    '🧍🏾‍♀' => 'dubartii dhaabbattu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧍🏿‍♀' => 'dubartii dhaabbattu: toonii gogaa gurraachaa',
+    '🧎🏻‍♂' => 'dhiira jilbeeffate: toonii gogaa ifaa',
+    '🧎🏼‍♂' => 'dhiira jilbeeffate: toonii gogaa ifaa-gidduugaleessa',
+    '🧎🏽‍♂' => 'dhiira jilbeeffate: toonii godaa gidduugaleessa',
+    '🧎🏾‍♂' => 'dhiira jilbeeffate: toonii gogaa gurraacha-gidduugaleessa',
+    '🧎🏿‍♂' => 'dhiira jilbeeffate: toonii gogaa gurraachaa',
+    '🧎🏻‍♀' => 'dubartii jilbeeffatte: toonii gogaa ifaa',
+    '🧎🏼‍♀' => 'dubartii jilbeeffatte: toonii gogaa ifaa-gidduugaleessa',
+    '🧎🏽‍♀' => 'dubartii jilbeeffatte: toonii godaa gidduugaleessa',
+    '🧎🏾‍♀' => 'dubartii jilbeeffatte: toonii gogaa gurraacha-gidduugaleessa',
+    '🧎🏿‍♀' => 'dubartii jilbeeffatte: toonii gogaa gurraachaa',
+    '🧑🏻‍🦯' => 'nama shimala adii waliin: toonii gogaa ifaa',
+    '🧑🏼‍🦯' => 'nama shimala adii waliin: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🦯' => 'nama shimala adii waliin: toonii godaa gidduugaleessa',
+    '🧑🏾‍🦯' => 'nama shimala adii waliin: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🦯' => 'nama shimala adii waliin: toonii gogaa gurraachaa',
+    '👨🏻‍🦯' => 'dhiira hokkoo adii waliin: toonii gogaa ifaa',
+    '👨🏼‍🦯' => 'dhiira hokkoo adii waliin: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🦯' => 'dhiira hokkoo adii waliin: toonii godaa gidduugaleessa',
+    '👨🏾‍🦯' => 'dhiira hokkoo adii waliin: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🦯' => 'dhiira hokkoo adii waliin: toonii gogaa gurraachaa',
+    '👩🏻‍🦯' => 'dubartii hokkoo adii waliin: toonii gogaa ifaa',
+    '👩🏼‍🦯' => 'dubartii hokkoo adii waliin: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🦯' => 'dubartii hokkoo adii waliin: toonii godaa gidduugaleessa',
+    '👩🏾‍🦯' => 'dubartii hokkoo adii waliin: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🦯' => 'dubartii hokkoo adii waliin: toonii gogaa gurraachaa',
+    '🧑🏻‍🦼' => 'nama wiilcherii motoraa irra: toonii gogaa ifaa',
+    '🧑🏼‍🦼' => 'nama wiilcherii motoraa irra: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🦼' => 'nama wiilcherii motoraa irra: toonii godaa gidduugaleessa',
+    '🧑🏾‍🦼' => 'nama wiilcherii motoraa irra: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🦼' => 'nama wiilcherii motoraa irra: toonii gogaa gurraachaa',
+    '👨🏻‍🦼' => 'dhiira wiilcherii motoraa irra: toonii gogaa ifaa',
+    '👨🏼‍🦼' => 'dhiira wiilcherii motoraa irra: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🦼' => 'dhiira wiilcherii motoraa irra: toonii godaa gidduugaleessa',
+    '👨🏾‍🦼' => 'dhiira wiilcherii motoraa irra: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🦼' => 'dhiira wiilcherii motoraa irra: toonii gogaa gurraachaa',
+    '👩🏻‍🦼' => 'dubartii wiilcherii motoraa irra: toonii gogaa ifaa',
+    '👩🏼‍🦼' => 'dubartii wiilcherii motoraa irra: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🦼' => 'dubartii wiilcherii motoraa irra: toonii godaa gidduugaleessa',
+    '👩🏾‍🦼' => 'dubartii wiilcherii motoraa irra: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🦼' => 'dubartii wiilcherii motoraa irra: toonii gogaa gurraachaa',
+    '🧑🏻‍🦽' => 'nama wiilcherii harkaa irra: toonii gogaa ifaa',
+    '🧑🏼‍🦽' => 'nama wiilcherii harkaa irra: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽‍🦽' => 'nama wiilcherii harkaa irra: toonii godaa gidduugaleessa',
+    '🧑🏾‍🦽' => 'nama wiilcherii harkaa irra: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿‍🦽' => 'nama wiilcherii harkaa irra: toonii gogaa gurraachaa',
+    '👨🏻‍🦽' => 'dhiira wiilcharii harkaa irra: toonii gogaa ifaa',
+    '👨🏼‍🦽' => 'dhiira wiilcharii harkaa irra: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽‍🦽' => 'dhiira wiilcharii harkaa irra: toonii godaa gidduugaleessa',
+    '👨🏾‍🦽' => 'dhiira wiilcharii harkaa irra: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿‍🦽' => 'dhiira wiilcharii harkaa irra: toonii gogaa gurraachaa',
+    '👩🏻‍🦽' => 'dubartii wiilcherii harkaa irra: toonii gogaa ifaa',
+    '👩🏼‍🦽' => 'dubartii wiilcherii harkaa irra: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽‍🦽' => 'dubartii wiilcherii harkaa irra: toonii godaa gidduugaleessa',
+    '👩🏾‍🦽' => 'dubartii wiilcherii harkaa irra: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿‍🦽' => 'dubartii wiilcherii harkaa irra: toonii gogaa gurraachaa',
+    '🏃🏻‍♂' => 'dhiira fiigu: toonii gogaa ifaa',
+    '🏃🏼‍♂' => 'dhiira fiigu: toonii gogaa ifaa-gidduugaleessa',
+    '🏃🏽‍♂' => 'dhiira fiigu: toonii godaa gidduugaleessa',
+    '🏃🏾‍♂' => 'dhiira fiigu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏃🏿‍♂' => 'dhiira fiigu: toonii gogaa gurraachaa',
+    '🏃🏻‍♀' => 'dubartii fiigdu: toonii gogaa ifaa',
+    '🏃🏼‍♀' => 'dubartii fiigdu: toonii gogaa ifaa-gidduugaleessa',
+    '🏃🏽‍♀' => 'dubartii fiigdu: toonii godaa gidduugaleessa',
+    '🏃🏾‍♀' => 'dubartii fiigdu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏃🏿‍♀' => 'dubartii fiigdu: toonii gogaa gurraachaa',
+    '👯🏻‍♀' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa ifaa',
+    '👯🏼‍♀' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa',
+    '👯🏽‍♀' => 'dubartoota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa',
+    '👯🏾‍♀' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa',
+    '👯🏿‍♀' => 'dubartoota gurra baanii ofirraa qaban: toonii gogaa gurraachaa',
+    '👯🏻‍♂' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa ifaa',
+    '👯🏼‍♂' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa',
+    '👯🏽‍♂' => 'dhiirota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa',
+    '👯🏾‍♂' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa',
+    '👯🏿‍♂' => 'dhiirota gurra baanii ofirraa qaban: toonii gogaa gurraachaa',
+    '🧖🏻‍♂' => 'dhiira kutaa hurkaa keessaa: toonii gogaa ifaa',
+    '🧖🏼‍♂' => 'dhiira kutaa hurkaa keessaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧖🏽‍♂' => 'dhiira kutaa hurkaa keessaa: toonii godaa gidduugaleessa',
+    '🧖🏾‍♂' => 'dhiira kutaa hurkaa keessaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧖🏿‍♂' => 'dhiira kutaa hurkaa keessaa: toonii gogaa gurraachaa',
+    '🧖🏻‍♀' => 'dubartii kutaa hurkaa keessaa: toonii gogaa ifaa',
+    '🧖🏼‍♀' => 'dubartii kutaa hurkaa keessaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧖🏽‍♀' => 'dubartii kutaa hurkaa keessaa: toonii godaa gidduugaleessa',
+    '🧖🏾‍♀' => 'dubartii kutaa hurkaa keessaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧖🏿‍♀' => 'dubartii kutaa hurkaa keessaa: toonii gogaa gurraachaa',
+    '🧗🏻‍♂' => 'dhiira yaabbachaa jiru: toonii gogaa ifaa',
+    '🧗🏼‍♂' => 'dhiira yaabbachaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🧗🏽‍♂' => 'dhiira yaabbachaa jiru: toonii godaa gidduugaleessa',
+    '🧗🏾‍♂' => 'dhiira yaabbachaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🧗🏿‍♂' => 'dhiira yaabbachaa jiru: toonii gogaa gurraachaa',
+    '🧗🏻‍♀' => 'dubartii yaabbachaa jirtu: toonii gogaa ifaa',
+    '🧗🏼‍♀' => 'dubartii yaabbachaa jirtu: toonii gogaa ifaa-gidduugaleessa',
+    '🧗🏽‍♀' => 'dubartii yaabbachaa jirtu: toonii godaa gidduugaleessa',
+    '🧗🏾‍♀' => 'dubartii yaabbachaa jirtu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧗🏿‍♀' => 'dubartii yaabbachaa jirtu: toonii gogaa gurraachaa',
+    '🏌🏻‍♂' => 'dhiira golfii taphatu: toonii gogaa ifaa',
+    '🏌🏼‍♂' => 'dhiira golfii taphatu: toonii gogaa ifaa-gidduugaleessa',
+    '🏌🏽‍♂' => 'dhiira golfii taphatu: toonii godaa gidduugaleessa',
+    '🏌🏾‍♂' => 'dhiira golfii taphatu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏌🏿‍♂' => 'dhiira golfii taphatu: toonii gogaa gurraachaa',
+    '🏌🏻‍♀' => 'dubartii golfii taphattu: toonii gogaa ifaa',
+    '🏌🏼‍♀' => 'dubartii golfii taphattu: toonii gogaa ifaa-gidduugaleessa',
+    '🏌🏽‍♀' => 'dubartii golfii taphattu: toonii godaa gidduugaleessa',
+    '🏌🏾‍♀' => 'dubartii golfii taphattu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏌🏿‍♀' => 'dubartii golfii taphattu: toonii gogaa gurraachaa',
+    '🏄🏻‍♂' => 'dhiira bololi’u: toonii gogaa ifaa',
+    '🏄🏼‍♂' => 'dhiira bololi’u: toonii gogaa ifaa-gidduugaleessa',
+    '🏄🏽‍♂' => 'dhiira bololi’u: toonii godaa gidduugaleessa',
+    '🏄🏾‍♂' => 'dhiira bololi’u: toonii gogaa gurraacha-gidduugaleessa',
+    '🏄🏿‍♂' => 'dhiira bololi’u: toonii gogaa gurraachaa',
+    '🏄🏻‍♀' => 'dubartii bololiitu: toonii gogaa ifaa',
+    '🏄🏼‍♀' => 'dubartii bololiitu: toonii gogaa ifaa-gidduugaleessa',
+    '🏄🏽‍♀' => 'dubartii bololiitu: toonii godaa gidduugaleessa',
+    '🏄🏾‍♀' => 'dubartii bololiitu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏄🏿‍♀' => 'dubartii bololiitu: toonii gogaa gurraachaa',
+    '🚣🏻‍♂' => 'dhiira bidiruu oofu: toonii gogaa ifaa',
+    '🚣🏼‍♂' => 'dhiira bidiruu oofu: toonii gogaa ifaa-gidduugaleessa',
+    '🚣🏽‍♂' => 'dhiira bidiruu oofu: toonii godaa gidduugaleessa',
+    '🚣🏾‍♂' => 'dhiira bidiruu oofu: toonii gogaa gurraacha-gidduugaleessa',
+    '🚣🏿‍♂' => 'dhiira bidiruu oofu: toonii gogaa gurraachaa',
+    '🚣🏻‍♀' => 'dubartii bidiruu oofu: toonii gogaa ifaa',
+    '🚣🏼‍♀' => 'dubartii bidiruu oofu: toonii gogaa ifaa-gidduugaleessa',
+    '🚣🏽‍♀' => 'dubartii bidiruu oofu: toonii godaa gidduugaleessa',
+    '🚣🏾‍♀' => 'dubartii bidiruu oofu: toonii gogaa gurraacha-gidduugaleessa',
+    '🚣🏿‍♀' => 'dubartii bidiruu oofu: toonii gogaa gurraachaa',
+    '🏊🏻‍♂' => 'dhiira daakaa jiru: toonii gogaa ifaa',
+    '🏊🏼‍♂' => 'dhiira daakaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🏊🏽‍♂' => 'dhiira daakaa jiru: toonii godaa gidduugaleessa',
+    '🏊🏾‍♂' => 'dhiira daakaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🏊🏿‍♂' => 'dhiira daakaa jiru: toonii gogaa gurraachaa',
+    '🏊🏻‍♀' => 'dubartii daakaa jirtu: toonii gogaa ifaa',
+    '🏊🏼‍♀' => 'dubartii daakaa jirtu: toonii gogaa ifaa-gidduugaleessa',
+    '🏊🏽‍♀' => 'dubartii daakaa jirtu: toonii godaa gidduugaleessa',
+    '🏊🏾‍♀' => 'dubartii daakaa jirtu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏊🏿‍♀' => 'dubartii daakaa jirtu: toonii gogaa gurraachaa',
+    '⛹🏻‍♂' => 'dhiira kubbaa utaalchisu: toonii gogaa ifaa',
+    '⛹🏼‍♂' => 'dhiira kubbaa utaalchisu: toonii gogaa ifaa-gidduugaleessa',
+    '⛹🏽‍♂' => 'dhiira kubbaa utaalchisu: toonii godaa gidduugaleessa',
+    '⛹🏾‍♂' => 'dhiira kubbaa utaalchisu: toonii gogaa gurraacha-gidduugaleessa',
+    '⛹🏿‍♂' => 'dhiira kubbaa utaalchisu: toonii gogaa gurraachaa',
+    '⛹🏻‍♀' => 'dubartii kubbaa utaalchistu: toonii gogaa ifaa',
+    '⛹🏼‍♀' => 'dubartii kubbaa utaalchistu: toonii gogaa ifaa-gidduugaleessa',
+    '⛹🏽‍♀' => 'dubartii kubbaa utaalchistu: toonii godaa gidduugaleessa',
+    '⛹🏾‍♀' => 'dubartii kubbaa utaalchistu: toonii gogaa gurraacha-gidduugaleessa',
+    '⛹🏿‍♀' => 'dubartii kubbaa utaalchistu: toonii gogaa gurraachaa',
+    '🏋🏻‍♂' => 'dhiira ulfaatina kaasu: toonii gogaa ifaa',
+    '🏋🏼‍♂' => 'dhiira ulfaatina kaasu: toonii gogaa ifaa-gidduugaleessa',
+    '🏋🏽‍♂' => 'dhiira ulfaatina kaasu: toonii godaa gidduugaleessa',
+    '🏋🏾‍♂' => 'dhiira ulfaatina kaasu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏋🏿‍♂' => 'dhiira ulfaatina kaasu: toonii gogaa gurraachaa',
+    '🏋🏻‍♀' => 'dubartii ulfaatina kaastu: toonii gogaa ifaa',
+    '🏋🏼‍♀' => 'dubartii ulfaatina kaastu: toonii gogaa ifaa-gidduugaleessa',
+    '🏋🏽‍♀' => 'dubartii ulfaatina kaastu: toonii godaa gidduugaleessa',
+    '🏋🏾‍♀' => 'dubartii ulfaatina kaastu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏋🏿‍♀' => 'dubartii ulfaatina kaastu: toonii gogaa gurraachaa',
+    '🚴🏻‍♂' => 'dhiira biskileetii oofu: toonii gogaa ifaa',
+    '🚴🏼‍♂' => 'dhiira biskileetii oofu: toonii gogaa ifaa-gidduugaleessa',
+    '🚴🏽‍♂' => 'dhiira biskileetii oofu: toonii godaa gidduugaleessa',
+    '🚴🏾‍♂' => 'dhiira biskileetii oofu: toonii gogaa gurraacha-gidduugaleessa',
+    '🚴🏿‍♂' => 'dhiira biskileetii oofu: toonii gogaa gurraachaa',
+    '🚴🏻‍♀' => 'dubartii biskileetii ooftu: toonii gogaa ifaa',
+    '🚴🏼‍♀' => 'dubartii biskileetii ooftu: toonii gogaa ifaa-gidduugaleessa',
+    '🚴🏽‍♀' => 'dubartii biskileetii ooftu: toonii godaa gidduugaleessa',
+    '🚴🏾‍♀' => 'dubartii biskileetii ooftu: toonii gogaa gurraacha-gidduugaleessa',
+    '🚴🏿‍♀' => 'dubartii biskileetii ooftu: toonii gogaa gurraachaa',
+    '🚵🏻‍♂' => 'dhiira biskileetiin tulluu bahu: toonii gogaa ifaa',
+    '🚵🏼‍♂' => 'dhiira biskileetiin tulluu bahu: toonii gogaa ifaa-gidduugaleessa',
+    '🚵🏽‍♂' => 'dhiira biskileetiin tulluu bahu: toonii godaa gidduugaleessa',
+    '🚵🏾‍♂' => 'dhiira biskileetiin tulluu bahu: toonii gogaa gurraacha-gidduugaleessa',
+    '🚵🏿‍♂' => 'dhiira biskileetiin tulluu bahu: toonii gogaa gurraachaa',
+    '🚵🏻‍♀' => 'dubartii biskileetiin tulluu baatu: toonii gogaa ifaa',
+    '🚵🏼‍♀' => 'dubartii biskileetiin tulluu baatu: toonii gogaa ifaa-gidduugaleessa',
+    '🚵🏽‍♀' => 'dubartii biskileetiin tulluu baatu: toonii godaa gidduugaleessa',
+    '🚵🏾‍♀' => 'dubartii biskileetiin tulluu baatu: toonii gogaa gurraacha-gidduugaleessa',
+    '🚵🏿‍♀' => 'dubartii biskileetiin tulluu baatu: toonii gogaa gurraachaa',
+    '🤸🏻‍♂' => 'dhiira harkaan garagalu: toonii gogaa ifaa',
+    '🤸🏼‍♂' => 'dhiira harkaan garagalu: toonii gogaa ifaa-gidduugaleessa',
+    '🤸🏽‍♂' => 'dhiira harkaan garagalu: toonii godaa gidduugaleessa',
+    '🤸🏾‍♂' => 'dhiira harkaan garagalu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤸🏿‍♂' => 'dhiira harkaan garagalu: toonii gogaa gurraachaa',
+    '🤸🏻‍♀' => 'dubartii harkaan garagaltu: toonii gogaa ifaa',
+    '🤸🏼‍♀' => 'dubartii harkaan garagaltu: toonii gogaa ifaa-gidduugaleessa',
+    '🤸🏽‍♀' => 'dubartii harkaan garagaltu: toonii godaa gidduugaleessa',
+    '🤸🏾‍♀' => 'dubartii harkaan garagaltu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤸🏿‍♀' => 'dubartii harkaan garagaltu: toonii gogaa gurraachaa',
+    '🤼🏻‍♀' => 'dubartoota wal tuman: toonii gogaa ifaa',
+    '🤼🏼‍♀' => 'dubartoota wal tuman: toonii gogaa ifaa-gidduugaleessa',
+    '🤼🏽‍♀' => 'dubartoota wal tuman: toonii godaa gidduugaleessa',
+    '🤼🏾‍♀' => 'dubartoota wal tuman: toonii gogaa gurraacha-gidduugaleessa',
+    '🤼🏿‍♀' => 'dubartoota wal tuman: toonii gogaa gurraachaa',
+    '🤼🏻‍♂' => 'dhiirota wal tuman: toonii gogaa ifaa',
+    '🤼🏼‍♂' => 'dhiirota wal tuman: toonii gogaa ifaa-gidduugaleessa',
+    '🤼🏽‍♂' => 'dhiirota wal tuman: toonii godaa gidduugaleessa',
+    '🤼🏾‍♂' => 'dhiirota wal tuman: toonii gogaa gurraacha-gidduugaleessa',
+    '🤼🏿‍♂' => 'dhiirota wal tuman: toonii gogaa gurraachaa',
+    '🤽🏻‍♂' => 'dhiira pooloo bishaanii taphachaa jiru: toonii gogaa ifaa',
+    '🤽🏼‍♂' => 'dhiira pooloo bishaanii taphachaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🤽🏽‍♂' => 'dhiira pooloo bishaanii taphachaa jiru: toonii godaa gidduugaleessa',
+    '🤽🏾‍♂' => 'dhiira pooloo bishaanii taphachaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🤽🏿‍♂' => 'dhiira pooloo bishaanii taphachaa jiru: toonii gogaa gurraachaa',
+    '🤽🏻‍♀' => 'dubartii pooloo bishaanii taphachaa jirtu: toonii gogaa ifaa',
+    '🤽🏼‍♀' => 'dubartii pooloo bishaanii taphachaa jirtu: toonii gogaa ifaa-gidduugaleessa',
+    '🤽🏽‍♀' => 'dubartii pooloo bishaanii taphachaa jirtu: toonii godaa gidduugaleessa',
+    '🤽🏾‍♀' => 'dubartii pooloo bishaanii taphachaa jirtu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤽🏿‍♀' => 'dubartii pooloo bishaanii taphachaa jirtu: toonii gogaa gurraachaa',
+    '🤾🏻‍♂' => 'dhiira kubbaa harkaa taphachaa jiru: toonii gogaa ifaa',
+    '🤾🏼‍♂' => 'dhiira kubbaa harkaa taphachaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🤾🏽‍♂' => 'dhiira kubbaa harkaa taphachaa jiru: toonii godaa gidduugaleessa',
+    '🤾🏾‍♂' => 'dhiira kubbaa harkaa taphachaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🤾🏿‍♂' => 'dhiira kubbaa harkaa taphachaa jiru: toonii gogaa gurraachaa',
+    '🤾🏻‍♀' => 'dubartii kubbaa harkaa taphachaa jirtu: toonii gogaa ifaa',
+    '🤾🏼‍♀' => 'dubartii kubbaa harkaa taphachaa jirtu: toonii gogaa ifaa-gidduugaleessa',
+    '🤾🏽‍♀' => 'dubartii kubbaa harkaa taphachaa jirtu: toonii godaa gidduugaleessa',
+    '🤾🏾‍♀' => 'dubartii kubbaa harkaa taphachaa jirtu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤾🏿‍♀' => 'dubartii kubbaa harkaa taphachaa jirtu: toonii gogaa gurraachaa',
+    '🤹🏻‍♂' => 'dhiira waa ol daddarbatee qabatu: toonii gogaa ifaa',
+    '🤹🏼‍♂' => 'dhiira waa ol daddarbatee qabatu: toonii gogaa ifaa-gidduugaleessa',
+    '🤹🏽‍♂' => 'dhiira waa ol daddarbatee qabatu: toonii godaa gidduugaleessa',
+    '🤹🏾‍♂' => 'dhiira waa ol daddarbatee qabatu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤹🏿‍♂' => 'dhiira waa ol daddarbatee qabatu: toonii gogaa gurraachaa',
+    '🤹🏻‍♀' => 'dubartii waa ol daddarbattee qabattu: toonii gogaa ifaa',
+    '🤹🏼‍♀' => 'dubartii waa ol daddarbattee qabattu: toonii gogaa ifaa-gidduugaleessa',
+    '🤹🏽‍♀' => 'dubartii waa ol daddarbattee qabattu: toonii godaa gidduugaleessa',
+    '🤹🏾‍♀' => 'dubartii waa ol daddarbattee qabattu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤹🏿‍♀' => 'dubartii waa ol daddarbattee qabattu: toonii gogaa gurraachaa',
+    '🧘🏻‍♂' => 'dhiira lootasii irra jiru: toonii gogaa ifaa',
+    '🧘🏼‍♂' => 'dhiira lootasii irra jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🧘🏽‍♂' => 'dhiira lootasii irra jiru: toonii godaa gidduugaleessa',
+    '🧘🏾‍♂' => 'dhiira lootasii irra jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🧘🏿‍♂' => 'dhiira lootasii irra jiru: toonii gogaa gurraachaa',
+    '🧘🏻‍♀' => 'dubartii lootasii irra jirtu: toonii gogaa ifaa',
+    '🧘🏼‍♀' => 'dubartii lootasii irra jirtu: toonii gogaa ifaa-gidduugaleessa',
+    '🧘🏽‍♀' => 'dubartii lootasii irra jirtu: toonii godaa gidduugaleessa',
+    '🧘🏾‍♀' => 'dubartii lootasii irra jirtu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧘🏿‍♀' => 'dubartii lootasii irra jirtu: toonii gogaa gurraachaa',
+    '🧑‍🦰' => 'nama: rifeensa diimaa',
+    '🧑‍🦱' => 'nama: rifeensa luuccaa',
+    '🧑‍🦳' => 'nama: rifeensa adii',
+    '🧑‍🦲' => 'nama: moluu',
+    '👨‍🦰' => 'dhiira: rifeensa diimaa',
+    '👨‍🦱' => 'dhiira: rifeensa luuccaa',
+    '👨‍🦳' => 'dhiira: rifeensa adii',
+    '👨‍🦲' => 'dhiira: moluu',
+    '👩‍🦰' => 'dubartii: rifeensa diimaa',
+    '👩‍🦱' => 'dubartii: rifeensa luuccaa',
+    '👩‍🦳' => 'dubartii: rifeensa adii',
+    '👩‍🦲' => 'dubartii: moluu',
+    '👨‍👦' => 'maatii: dhiira, gurbaa',
+    '👨‍👧' => 'maatii: dhiira, dubara',
+    '👩‍👦' => 'maatii: dubartii, gurbaa',
+    '👩‍👧' => 'maatii: dubartii, dubara',
+    '😮‍💨' => 'fuula hafuura baafatu',
+    '🙂‍↕' => 'mataa oliif gadi raasuu',
+    '😵‍💫' => 'fuula ija maraa waliin',
+    '❤‍🔥' => 'onnee ibidda irra jiru',
+    '❤‍🩹' => 'onnee suphuu',
+    '👁‍🗨' => 'ija afuuffee dubbii keessaa',
+    '🧔‍♂' => 'dhiira: areeda qabu',
+    '👱‍♂' => 'dhiira: rifeensa keelloo',
+    '🧔‍♀' => 'dubartii: areeda qabdu',
+    '👱‍♀' => 'dubartii: rifeensa keelloo',
+    '🙍‍♂' => 'dhiira mufate',
+    '🙍‍♀' => 'dubartii mufatte',
+    '🙎‍♂' => 'dhiira huuruu dhiibu',
+    '🙎‍♀' => 'dubartii huuruu dhiibdu',
+    '🙅‍♂' => 'dhiira LAKKI jedhu',
+    '🙅‍♀' => 'dubartii LAKKI jettu',
+    '🙆‍♂' => 'dhiira TOLE jedhu',
+    '🙆‍♀' => 'dubartii TOLE jettu',
+    '💁‍♂' => 'dhiira harka diriirsu',
+    '💁‍♀' => 'dubartii harka diriirsitu',
+    '🙋‍♂' => 'dhiira harka baasu',
+    '🙋‍♀' => 'dubartii harka baastu',
+    '🧏‍♂' => 'dhiira duudaa',
+    '🧏‍♀' => 'dubartii duudaa',
+    '🙇‍♂' => 'dhiira sagadu',
+    '🙇‍♀' => 'dubartii sagaddu',
+    '🤦‍♂' => 'dhiira barruun fuula qabate',
+    '🤦‍♀' => 'dubartii barruun fuula qabatte',
+    '🤷‍♂' => 'dhiira mataa raasu',
+    '🤷‍♀' => 'dubartii mataa raastu',
+    '🧑‍⚕' => 'hojjetaa fayyaa',
+    '👨‍⚕' => 'dhiira hojjetaa fayyaa',
+    '👩‍⚕' => 'dubartii hojjettuu fayyaa',
+    '🧑‍🎓' => 'barataa',
+    '👨‍🎓' => 'dhiira barataa',
+    '👩‍🎓' => 'dubartii barattuu',
+    '🧑‍🏫' => 'barsiisaa',
+    '👨‍🏫' => 'dhiira barsiisaa',
+    '👩‍🏫' => 'dubartii barsiistuu',
+    '🧑‍⚖' => 'abbaa murtii',
+    '👨‍⚖' => 'dhiira abbaa murtii',
+    '👩‍⚖' => 'dubartii haadha murtii',
+    '🧑‍🌾' => 'qotee bulaa',
+    '👨‍🌾' => 'dhiira qotee bulaa',
+    '👩‍🌾' => 'dubartii qottee bultuu',
+    '🧑‍🍳' => 'nama nyaata bilcheessu',
+    '👨‍🍳' => 'dhiira nyaata bilcheessu',
+    '👩‍🍳' => 'dubartii nyaata hojjettu',
+    '🧑‍🔧' => 'mekaanikii',
+    '👨‍🔧' => 'dhiira makaanikii',
+    '👩‍🔧' => 'dubartii makaanikii',
+    '🧑‍🏭' => 'hojjetaa waarshaa',
+    '👨‍🏭' => 'dhiira hojjetaa waarshaa',
+    '👩‍🏭' => 'dubartii hojjettuu waarshaa',
+    '🧑‍💼' => 'hoojjetaa waajjiraa',
+    '👨‍💼' => 'dhiira hojjetaa waajjiraa',
+    '👩‍💼' => 'dubartii hojjettuu waajjiraa',
+    '🧑‍🔬' => 'saayintistii',
+    '👨‍🔬' => 'dhiira saayintistii',
+    '👩‍🔬' => 'dubartii saayintistii',
+    '🧑‍💻' => 'ogeessa tekinoloojii',
+    '👨‍💻' => 'dhiira ogeessa tekinoloojii',
+    '👩‍💻' => 'dubartii ogeettii tekinoloojii',
+    '🧑‍🎤' => 'sirbituu',
+    '👨‍🎤' => 'dhiira sirbu',
+    '👩‍🎤' => 'dubartii sirbituu',
+    '🧑‍🎨' => 'artistii',
+    '👨‍🎨' => 'dhiira artistii',
+    '👩‍🎨' => 'dubartii artistii',
+    '🧑‍✈' => 'paayileetii',
+    '👨‍✈' => 'dhiira paayileetii',
+    '👩‍✈' => 'dubartii paayileetii',
+    '🧑‍🚀' => 'ogeessa astiroonoomii',
+    '👨‍🚀' => 'dhiira ogeessa astiroonoomii',
+    '👩‍🚀' => 'dubarii ogeettii astiroonoomi',
+    '🧑‍🚒' => 'nama ibidda dhaamsu',
+    '👨‍🚒' => 'dhiira hojjetaa balaa ibiddaa',
+    '👩‍🚒' => 'dubartii hojjettuu balaa ibiddaa',
+    '👮‍♂' => 'dhiira qondaala poolisii',
+    '👮‍♀' => 'dubartii qondaala poolisii',
+    '🕵‍♂' => 'dhiira qorataa',
+    '🕵‍♀' => 'dubartii qorattuu',
+    '💂‍♂' => 'dhiira eegaa',
+    '💂‍♀' => 'dubartii eegduu',
+    '👷‍♂' => 'dhiira hojjetaa ijaarsaa',
+    '👷‍♀' => 'dubartii hojjettuu ijaarsaa',
+    '👳‍♂' => 'dhiira turbaanii uffatu',
+    '👳‍♀' => 'dubartii turbaanii uffattu',
+    '🤵‍♂' => 'dhiira bijaamaa uffate',
+    '🤵‍♀' => 'dubartii bijaamaa uffatte',
+    '👰‍♂' => 'dhiira golgaa waliin',
+    '👰‍♀' => 'dubartii golgaa waliin',
+    '👩‍🍼' => 'dubartii daa’ima nyaachistu',
+    '👨‍🍼' => 'dhiira daa’ima nyaachisu',
+    '🧑‍🍼' => 'nama daa’ima nyaachisu',
+    '🧑‍🎄' => 'Kilaawosii qillee',
+    '🦸‍♂' => 'dhiira goota',
+    '🦸‍♀' => 'dubartii goota',
+    '🦹‍♂' => 'dhiira jallataa',
+    '🦹‍♀' => 'dubartii jallattuu',
+    '🧙‍♂' => 'dhiira falfalaa',
+    '🧙‍♀' => 'dubartii fafaltuu',
+    '🧚‍♂' => 'dhiira feerii',
+    '🧚‍♀' => 'dubartii feerii',
+    '🧛‍♂' => 'dhiira vaampaayerii',
+    '🧛‍♀' => 'dubartii vaampaayerii',
+    '🧜‍♂' => 'dhiira lo’u',
+    '🧜‍♀' => 'dubartii lootu',
+    '💆‍♂' => 'dhiira sukkuumamaa jiru',
+    '💆‍♀' => 'dubartii sukkuumamaa jirtu',
+    '💇‍♂' => 'dhiira rifeensa sirreeffachaa jiru',
+    '💇‍♀' => 'dubartii rifeensa sirreeffachaa jirtu',
+    '🚶‍♂' => 'dhiira deemaa jiru',
+    '🚶‍♀' => 'dubartii deemaa jirtu',
+    '🧍‍♂' => 'dhiira dhaabbatu',
+    '🧍‍♀' => 'dubartii dhaabbattu',
+    '🧎‍♂' => 'dhiira jilbeeffate',
+    '🧎‍♀' => 'dubartii jilbeeffatte',
+    '🧑‍🦯' => 'nama shimala adii waliin',
+    '👨‍🦯' => 'dhiira hokkoo adii waliin',
+    '👩‍🦯' => 'dubartii hokkoo adii waliin',
+    '🧑‍🦼' => 'nama wiilcherii motoraa irra',
+    '👨‍🦼' => 'dhiira wiilcherii motoraa irra',
+    '👩‍🦼' => 'dubartii wiilcherii motoraa irra',
+    '🧑‍🦽' => 'nama wiilcherii harkaa irra',
+    '👨‍🦽' => 'dhiira wiilcharii harkaa irra',
+    '👩‍🦽' => 'dubartii wiilcherii harkaa irra',
+    '🏃‍♂' => 'dhiira fiigu',
+    '🏃‍♀' => 'dubartii fiigdu',
+    '🧑‍🩰' => 'shubbisaa baaleetii',
+    '👯‍♂' => 'dhiirota gurra baanii ofirraa qaban',
+    '👯‍♀' => 'dubartoota gurra baanii ofirraa qaban',
+    '🧖‍♂' => 'dhiira kutaa hurkaa keessaa',
+    '🧖‍♀' => 'dubartii kutaa hurkaa keessaa',
+    '🧗‍♂' => 'dhiira yaabbachaa jiru',
+    '🧗‍♀' => 'dubartii yaabbachaa jirtu',
+    '🏌‍♂' => 'dhiira golfii taphatu',
+    '🏌‍♀' => 'dubartii golfii taphattu',
+    '🏄‍♂' => 'dhiira bololi’u',
+    '🏄‍♀' => 'dubartii bololiitu',
+    '🚣‍♂' => 'dhiira bidiruu oofu',
+    '🚣‍♀' => 'dubartii bidiruu oofu',
+    '🏊‍♂' => 'dhiira daakaa jiru',
+    '🏊‍♀' => 'dubartii daakaa jirtu',
+    '⛹‍♂' => 'dhiira kubbaa utaalchisu',
+    '⛹‍♀' => 'dubartii kubbaa utaalchistu',
+    '🏋‍♂' => 'dhiira ulfaatina kaasu',
+    '🏋‍♀' => 'dubartii ulfaatina kaastu',
+    '🚴‍♂' => 'dhiira biskileetii oofu',
+    '🚴‍♀' => 'dubartii biskileetii ooftu',
+    '🚵‍♂' => 'dhiira biskileetiin tulluu bahu',
+    '🚵‍♀' => 'dubartii biskileetiin tulluu baatu',
+    '🤸‍♂' => 'dhiira harkaan garagalu',
+    '🤸‍♀' => 'dubartii harkaan garagaltu',
+    '🤼‍♂' => 'dhiirota wal tuman',
+    '🤼‍♀' => 'dubartoota wal tuman',
+    '🤽‍♂' => 'dhiira pooloo bishaanii taphachaa jiru',
+    '🤽‍♀' => 'dubartii pooloo bishaanii taphachaa jirtu',
+    '🤾‍♂' => 'dhiira kubbaa harkaa taphachaa jiru',
+    '🤾‍♀' => 'dubartii kubbaa harkaa taphachaa jirtu',
+    '🤹‍♂' => 'dhiira waa ol daddarbatee qabatu',
+    '🤹‍♀' => 'dubartii waa ol daddarbattee qabattu',
+    '🧘‍♂' => 'dhiira lootasii irra jiru',
+    '🧘‍♀' => 'dubartii lootasii irra jirtu',
+    '🐕‍🦺' => 'saree tajaajilaa',
+    '🐈‍⬛' => 'adurree gurraattii',
+    '🐻‍❄' => 'poolaar biir',
+    '🐦‍⬛' => 'simbirroo gurraattii',
+    '🐦‍🔥' => 'foyeeniksii',
+    '🍋‍🟩' => 'liimee',
+    '🍄‍🟫' => 'waakkoo magaala',
+    '⛓‍💥' => 'cancala cabe',
+    '🏳‍🌈' => 'alaabaa sabbata waaqayyoo',
+    '🏳‍⚧' => 'alaabaa saala jijjiirrachuu',
+    '🏴‍☠' => 'alaabaa saamtotaa',
+    '👋🏻' => 'harka raasuu: toonii gogaa ifaa',
+    '👋🏼' => 'harka raasuu: toonii gogaa ifaa-gidduugaleessa',
+    '👋🏽' => 'harka raasuu: toonii godaa gidduugaleessa',
+    '👋🏾' => 'harka raasuu: toonii gogaa gurraacha-gidduugaleessa',
+    '👋🏿' => 'harka raasuu: toonii gogaa gurraachaa',
+    '🤚🏻' => 'duuba harkaa ol baasuu: toonii gogaa ifaa',
+    '🤚🏼' => 'duuba harkaa ol baasuu: toonii gogaa ifaa-gidduugaleessa',
+    '🤚🏽' => 'duuba harkaa ol baasuu: toonii godaa gidduugaleessa',
+    '🤚🏾' => 'duuba harkaa ol baasuu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤚🏿' => 'duuba harkaa ol baasuu: toonii gogaa gurraachaa',
+    '🖐🏻' => 'harka quba bal’isuun: toonii gogaa ifaa',
+    '🖐🏼' => 'harka quba bal’isuun: toonii gogaa ifaa-gidduugaleessa',
+    '🖐🏽' => 'harka quba bal’isuun: toonii godaa gidduugaleessa',
+    '🖐🏾' => 'harka quba bal’isuun: toonii gogaa gurraacha-gidduugaleessa',
+    '🖐🏿' => 'harka quba bal’isuun: toonii gogaa gurraachaa',
+    '✋🏻' => 'harka ol ba’e: toonii gogaa ifaa',
+    '✋🏼' => 'harka ol ba’e: toonii gogaa ifaa-gidduugaleessa',
+    '✋🏽' => 'harka ol ba’e: toonii godaa gidduugaleessa',
+    '✋🏾' => 'harka ol ba’e: toonii gogaa gurraacha-gidduugaleessa',
+    '✋🏿' => 'harka ol ba’e: toonii gogaa gurraachaa',
+    '🖖🏻' => 'vuulkaan saluutee: toonii gogaa ifaa',
+    '🖖🏼' => 'vuulkaan saluutee: toonii gogaa ifaa-gidduugaleessa',
+    '🖖🏽' => 'vuulkaan saluutee: toonii godaa gidduugaleessa',
+    '🖖🏾' => 'vuulkaan saluutee: toonii gogaa gurraacha-gidduugaleessa',
+    '🖖🏿' => 'vuulkaan saluutee: toonii gogaa gurraachaa',
+    '🫱🏻' => 'harka gara mirgaatti: toonii gogaa ifaa',
+    '🫱🏼' => 'harka gara mirgaatti: toonii gogaa ifaa-gidduugaleessa',
+    '🫱🏽' => 'harka gara mirgaatti: toonii godaa gidduugaleessa',
+    '🫱🏾' => 'harka gara mirgaatti: toonii gogaa gurraacha-gidduugaleessa',
+    '🫱🏿' => 'harka gara mirgaatti: toonii gogaa gurraachaa',
+    '🫲🏻' => 'harka gara bitaatti: toonii gogaa ifaa',
+    '🫲🏼' => 'harka gara bitaatti: toonii gogaa ifaa-gidduugaleessa',
+    '🫲🏽' => 'harka gara bitaatti: toonii godaa gidduugaleessa',
+    '🫲🏾' => 'harka gara bitaatti: toonii gogaa gurraacha-gidduugaleessa',
+    '🫲🏿' => 'harka gara bitaatti: toonii gogaa gurraachaa',
+    '🫳🏻' => 'harka barruu gadi garagale: toonii gogaa ifaa',
+    '🫳🏼' => 'harka barruu gadi garagale: toonii gogaa ifaa-gidduugaleessa',
+    '🫳🏽' => 'harka barruu gadi garagale: toonii godaa gidduugaleessa',
+    '🫳🏾' => 'harka barruu gadi garagale: toonii gogaa gurraacha-gidduugaleessa',
+    '🫳🏿' => 'harka barruu gadi garagale: toonii gogaa gurraachaa',
+    '🫴🏻' => 'harka barruu ol garagale: toonii gogaa ifaa',
+    '🫴🏼' => 'harka barruu ol garagale: toonii gogaa ifaa-gidduugaleessa',
+    '🫴🏽' => 'harka barruu ol garagale: toonii godaa gidduugaleessa',
+    '🫴🏾' => 'harka barruu ol garagale: toonii gogaa gurraacha-gidduugaleessa',
+    '🫴🏿' => 'harka barruu ol garagale: toonii gogaa gurraachaa',
+    '🫷🏻' => 'harka gara bitaatti dhiibu: toonii gogaa ifaa',
+    '🫷🏼' => 'harka gara bitaatti dhiibu: toonii gogaa ifaa-gidduugaleessa',
+    '🫷🏽' => 'harka gara bitaatti dhiibu: toonii godaa gidduugaleessa',
+    '🫷🏾' => 'harka gara bitaatti dhiibu: toonii gogaa gurraacha-gidduugaleessa',
+    '🫷🏿' => 'harka gara bitaatti dhiibu: toonii gogaa gurraachaa',
+    '🫸🏻' => 'harka gara mirgaatti dhiibu: toonii gogaa ifaa',
+    '🫸🏼' => 'harka gara mirgaatti dhiibu: toonii gogaa ifaa-gidduugaleessa',
+    '🫸🏽' => 'harka gara mirgaatti dhiibu: toonii godaa gidduugaleessa',
+    '🫸🏾' => 'harka gara mirgaatti dhiibu: toonii gogaa gurraacha-gidduugaleessa',
+    '🫸🏿' => 'harka gara mirgaatti dhiibu: toonii gogaa gurraachaa',
+    '👌🏻' => 'harka tolee: toonii gogaa ifaa',
+    '👌🏼' => 'harka tolee: toonii gogaa ifaa-gidduugaleessa',
+    '👌🏽' => 'harka tolee: toonii godaa gidduugaleessa',
+    '👌🏾' => 'harka tolee: toonii gogaa gurraacha-gidduugaleessa',
+    '👌🏿' => 'harka tolee: toonii gogaa gurraachaa',
+    '🤌🏻' => 'quboota walitti qabaman: toonii gogaa ifaa',
+    '🤌🏼' => 'quboota walitti qabaman: toonii gogaa ifaa-gidduugaleessa',
+    '🤌🏽' => 'quboota walitti qabaman: toonii godaa gidduugaleessa',
+    '🤌🏾' => 'quboota walitti qabaman: toonii gogaa gurraacha-gidduugaleessa',
+    '🤌🏿' => 'quboota walitti qabaman: toonii gogaa gurraachaa',
+    '🤏🏻' => 'harka qubni isaa walitti qabame: toonii gogaa ifaa',
+    '🤏🏼' => 'harka qubni isaa walitti qabame: toonii gogaa ifaa-gidduugaleessa',
+    '🤏🏽' => 'harka qubni isaa walitti qabame: toonii godaa gidduugaleessa',
+    '🤏🏾' => 'harka qubni isaa walitti qabame: toonii gogaa gurraacha-gidduugaleessa',
+    '🤏🏿' => 'harka qubni isaa walitti qabame: toonii gogaa gurraachaa',
+    '✌🏻' => 'harka moo’ichaa: toonii gogaa ifaa',
+    '✌🏼' => 'harka moo’ichaa: toonii gogaa ifaa-gidduugaleessa',
+    '✌🏽' => 'harka moo’ichaa: toonii godaa gidduugaleessa',
+    '✌🏾' => 'harka moo’ichaa: toonii gogaa gurraacha-gidduugaleessa',
+    '✌🏿' => 'harka moo’ichaa: toonii gogaa gurraachaa',
+    '🤞🏻' => 'quba wal qaxxaamure: toonii gogaa ifaa',
+    '🤞🏼' => 'quba wal qaxxaamure: toonii gogaa ifaa-gidduugaleessa',
+    '🤞🏽' => 'quba wal qaxxaamure: toonii godaa gidduugaleessa',
+    '🤞🏾' => 'quba wal qaxxaamure: toonii gogaa gurraacha-gidduugaleessa',
+    '🤞🏿' => 'quba wal qaxxaamure: toonii gogaa gurraachaa',
+    '🫰🏻' => 'harka qubni akeektuu fi abgudduun wal qaxxamure: toonii gogaa ifaa',
+    '🫰🏼' => 'harka qubni akeektuu fi abgudduun wal qaxxamure: toonii gogaa ifaa-gidduugaleessa',
+    '🫰🏽' => 'harka qubni akeektuu fi abgudduun wal qaxxamure: toonii godaa gidduugaleessa',
+    '🫰🏾' => 'harka qubni akeektuu fi abgudduun wal qaxxamure: toonii gogaa gurraacha-gidduugaleessa',
+    '🫰🏿' => 'harka qubni akeektuu fi abgudduun wal qaxxamure: toonii gogaa gurraachaa',
+    '🤟🏻' => 'mallattoo sin jaaladhaa: toonii gogaa ifaa',
+    '🤟🏼' => 'mallattoo sin jaaladhaa: toonii gogaa ifaa-gidduugaleessa',
+    '🤟🏽' => 'mallattoo sin jaaladhaa: toonii godaa gidduugaleessa',
+    '🤟🏾' => 'mallattoo sin jaaladhaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🤟🏿' => 'mallattoo sin jaaladhaa: toonii gogaa gurraachaa',
+    '🤘🏻' => 'mallattoo gaafaa: toonii gogaa ifaa',
+    '🤘🏼' => 'mallattoo gaafaa: toonii gogaa ifaa-gidduugaleessa',
+    '🤘🏽' => 'mallattoo gaafaa: toonii godaa gidduugaleessa',
+    '🤘🏾' => 'mallattoo gaafaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🤘🏿' => 'mallattoo gaafaa: toonii gogaa gurraachaa',
+    '🤙🏻' => 'harka naaf bilbilii: toonii gogaa ifaa',
+    '🤙🏼' => 'harka naaf bilbilii: toonii gogaa ifaa-gidduugaleessa',
+    '🤙🏽' => 'harka naaf bilbilii: toonii godaa gidduugaleessa',
+    '🤙🏾' => 'harka naaf bilbilii: toonii gogaa gurraacha-gidduugaleessa',
+    '🤙🏿' => 'harka naaf bilbilii: toonii gogaa gurraachaa',
+    '👈🏻' => 'dugda harkaa bitatti akeeku: toonii gogaa ifaa',
+    '👈🏼' => 'dugda harkaa bitatti akeeku: toonii gogaa ifaa-gidduugaleessa',
+    '👈🏽' => 'dugda harkaa bitatti akeeku: toonii godaa gidduugaleessa',
+    '👈🏾' => 'dugda harkaa bitatti akeeku: toonii gogaa gurraacha-gidduugaleessa',
+    '👈🏿' => 'dugda harkaa bitatti akeeku: toonii gogaa gurraachaa',
+    '👉🏻' => 'dugda harkaa mirgatti akeeku: toonii gogaa ifaa',
+    '👉🏼' => 'dugda harkaa mirgatti akeeku: toonii gogaa ifaa-gidduugaleessa',
+    '👉🏽' => 'dugda harkaa mirgatti akeeku: toonii godaa gidduugaleessa',
+    '👉🏾' => 'dugda harkaa mirgatti akeeku: toonii gogaa gurraacha-gidduugaleessa',
+    '👉🏿' => 'dugda harkaa mirgatti akeeku: toonii gogaa gurraachaa',
+    '👆🏻' => 'dugda harkaa asii ol akeeku: toonii gogaa ifaa',
+    '👆🏼' => 'dugda harkaa asii ol akeeku: toonii gogaa ifaa-gidduugaleessa',
+    '👆🏽' => 'dugda harkaa asii ol akeeku: toonii godaa gidduugaleessa',
+    '👆🏾' => 'dugda harkaa asii ol akeeku: toonii gogaa gurraacha-gidduugaleessa',
+    '👆🏿' => 'dugda harkaa asii ol akeeku: toonii gogaa gurraachaa',
+    '🖕🏻' => 'guba gidduu: toonii gogaa ifaa',
+    '🖕🏼' => 'guba gidduu: toonii gogaa ifaa-gidduugaleessa',
+    '🖕🏽' => 'guba gidduu: toonii godaa gidduugaleessa',
+    '🖕🏾' => 'guba gidduu: toonii gogaa gurraacha-gidduugaleessa',
+    '🖕🏿' => 'guba gidduu: toonii gogaa gurraachaa',
+    '👇🏻' => 'dugda harkaa asii gadi akeeku: toonii gogaa ifaa',
+    '👇🏼' => 'dugda harkaa asii gadi akeeku: toonii gogaa ifaa-gidduugaleessa',
+    '👇🏽' => 'dugda harkaa asii gadi akeeku: toonii godaa gidduugaleessa',
+    '👇🏾' => 'dugda harkaa asii gadi akeeku: toonii gogaa gurraacha-gidduugaleessa',
+    '👇🏿' => 'dugda harkaa asii gadi akeeku: toonii gogaa gurraachaa',
+    '☝🏻' => 'akeektuu ol akeeku: toonii gogaa ifaa',
+    '☝🏼' => 'akeektuu ol akeeku: toonii gogaa ifaa-gidduugaleessa',
+    '☝🏽' => 'akeektuu ol akeeku: toonii godaa gidduugaleessa',
+    '☝🏾' => 'akeektuu ol akeeku: toonii gogaa gurraacha-gidduugaleessa',
+    '☝🏿' => 'akeektuu ol akeeku: toonii gogaa gurraachaa',
+    '🫵🏻' => 'quba akeektuu gara isa ilaaluutti qiyyaafate: toonii gogaa ifaa',
+    '🫵🏼' => 'quba akeektuu gara isa ilaaluutti qiyyaafate: toonii gogaa ifaa-gidduugaleessa',
+    '🫵🏽' => 'quba akeektuu gara isa ilaaluutti qiyyaafate: toonii godaa gidduugaleessa',
+    '🫵🏾' => 'quba akeektuu gara isa ilaaluutti qiyyaafate: toonii gogaa gurraacha-gidduugaleessa',
+    '🫵🏿' => 'quba akeektuu gara isa ilaaluutti qiyyaafate: toonii gogaa gurraachaa',
+    '👍🏻' => 'angudduu ol qabuu: toonii gogaa ifaa',
+    '👍🏼' => 'angudduu ol qabuu: toonii gogaa ifaa-gidduugaleessa',
+    '👍🏽' => 'angudduu ol qabuu: toonii godaa gidduugaleessa',
+    '👍🏾' => 'angudduu ol qabuu: toonii gogaa gurraacha-gidduugaleessa',
+    '👍🏿' => 'angudduu ol qabuu: toonii gogaa gurraachaa',
+    '👎🏻' => 'abgudduu gadi qabuu: toonii gogaa ifaa',
+    '👎🏼' => 'abgudduu gadi qabuu: toonii gogaa ifaa-gidduugaleessa',
+    '👎🏽' => 'abgudduu gadi qabuu: toonii godaa gidduugaleessa',
+    '👎🏾' => 'abgudduu gadi qabuu: toonii gogaa gurraacha-gidduugaleessa',
+    '👎🏿' => 'abgudduu gadi qabuu: toonii gogaa gurraachaa',
+    '✊🏻' => 'haboottee ol ba’e: toonii gogaa ifaa',
+    '✊🏼' => 'haboottee ol ba’e: toonii gogaa ifaa-gidduugaleessa',
+    '✊🏽' => 'haboottee ol ba’e: toonii godaa gidduugaleessa',
+    '✊🏾' => 'haboottee ol ba’e: toonii gogaa gurraacha-gidduugaleessa',
+    '✊🏿' => 'haboottee ol ba’e: toonii gogaa gurraachaa',
+    '👊🏻' => 'haboottee dhufaa jiru: toonii gogaa ifaa',
+    '👊🏼' => 'haboottee dhufaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '👊🏽' => 'haboottee dhufaa jiru: toonii godaa gidduugaleessa',
+    '👊🏾' => 'haboottee dhufaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '👊🏿' => 'haboottee dhufaa jiru: toonii gogaa gurraachaa',
+    '🤛🏻' => 'haboottee gara bitaatti garagale: toonii gogaa ifaa',
+    '🤛🏼' => 'haboottee gara bitaatti garagale: toonii gogaa ifaa-gidduugaleessa',
+    '🤛🏽' => 'haboottee gara bitaatti garagale: toonii godaa gidduugaleessa',
+    '🤛🏾' => 'haboottee gara bitaatti garagale: toonii gogaa gurraacha-gidduugaleessa',
+    '🤛🏿' => 'haboottee gara bitaatti garagale: toonii gogaa gurraachaa',
+    '🤜🏻' => 'haboottee gara mirgaatti garagale: toonii gogaa ifaa',
+    '🤜🏼' => 'haboottee gara mirgaatti garagale: toonii gogaa ifaa-gidduugaleessa',
+    '🤜🏽' => 'haboottee gara mirgaatti garagale: toonii godaa gidduugaleessa',
+    '🤜🏾' => 'haboottee gara mirgaatti garagale: toonii gogaa gurraacha-gidduugaleessa',
+    '🤜🏿' => 'haboottee gara mirgaatti garagale: toonii gogaa gurraachaa',
+    '👏🏻' => 'harka rukutuu: toonii gogaa ifaa',
+    '👏🏼' => 'harka rukutuu: toonii gogaa ifaa-gidduugaleessa',
+    '👏🏽' => 'harka rukutuu: toonii godaa gidduugaleessa',
+    '👏🏾' => 'harka rukutuu: toonii gogaa gurraacha-gidduugaleessa',
+    '👏🏿' => 'harka rukutuu: toonii gogaa gurraachaa',
+    '🙌🏻' => 'harkawwan baasuu: toonii gogaa ifaa',
+    '🙌🏼' => 'harkawwan baasuu: toonii gogaa ifaa-gidduugaleessa',
+    '🙌🏽' => 'harkawwan baasuu: toonii godaa gidduugaleessa',
+    '🙌🏾' => 'harkawwan baasuu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙌🏿' => 'harkawwan baasuu: toonii gogaa gurraachaa',
+    '🫶🏻' => 'harkoota onnee: toonii gogaa ifaa',
+    '🫶🏼' => 'harkoota onnee: toonii gogaa ifaa-gidduugaleessa',
+    '🫶🏽' => 'harkoota onnee: toonii godaa gidduugaleessa',
+    '🫶🏾' => 'harkoota onnee: toonii gogaa gurraacha-gidduugaleessa',
+    '🫶🏿' => 'harkoota onnee: toonii gogaa gurraachaa',
+    '👐🏻' => 'harkoota banaa: toonii gogaa ifaa',
+    '👐🏼' => 'harkoota banaa: toonii gogaa ifaa-gidduugaleessa',
+    '👐🏽' => 'harkoota banaa: toonii godaa gidduugaleessa',
+    '👐🏾' => 'harkoota banaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👐🏿' => 'harkoota banaa: toonii gogaa gurraachaa',
+    '🤲🏻' => 'barruu wal faana ol ka’e: toonii gogaa ifaa',
+    '🤲🏼' => 'barruu wal faana ol ka’e: toonii gogaa ifaa-gidduugaleessa',
+    '🤲🏽' => 'barruu wal faana ol ka’e: toonii godaa gidduugaleessa',
+    '🤲🏾' => 'barruu wal faana ol ka’e: toonii gogaa gurraacha-gidduugaleessa',
+    '🤲🏿' => 'barruu wal faana ol ka’e: toonii gogaa gurraachaa',
+    '🤝🏻' => 'harka fuudhuu: toonii gogaa ifaa',
+    '🤝🏼' => 'harka fuudhuu: toonii gogaa ifaa-gidduugaleessa',
+    '🤝🏽' => 'harka fuudhuu: toonii godaa gidduugaleessa',
+    '🤝🏾' => 'harka fuudhuu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤝🏿' => 'harka fuudhuu: toonii gogaa gurraachaa',
+    '🙏🏻' => 'harkoota walitti dhufuun ol qabaman: toonii gogaa ifaa',
+    '🙏🏼' => 'harkoota walitti dhufuun ol qabaman: toonii gogaa ifaa-gidduugaleessa',
+    '🙏🏽' => 'harkoota walitti dhufuun ol qabaman: toonii godaa gidduugaleessa',
+    '🙏🏾' => 'harkoota walitti dhufuun ol qabaman: toonii gogaa gurraacha-gidduugaleessa',
+    '🙏🏿' => 'harkoota walitti dhufuun ol qabaman: toonii gogaa gurraachaa',
+    '✍🏻' => 'harka barreessu: toonii gogaa ifaa',
+    '✍🏼' => 'harka barreessu: toonii gogaa ifaa-gidduugaleessa',
+    '✍🏽' => 'harka barreessu: toonii godaa gidduugaleessa',
+    '✍🏾' => 'harka barreessu: toonii gogaa gurraacha-gidduugaleessa',
+    '✍🏿' => 'harka barreessu: toonii gogaa gurraachaa',
+    '💅🏻' => 'halluu qeensaa: toonii gogaa ifaa',
+    '💅🏼' => 'halluu qeensaa: toonii gogaa ifaa-gidduugaleessa',
+    '💅🏽' => 'halluu qeensaa: toonii godaa gidduugaleessa',
+    '💅🏾' => 'halluu qeensaa: toonii gogaa gurraacha-gidduugaleessa',
+    '💅🏿' => 'halluu qeensaa: toonii gogaa gurraachaa',
+    '🤳🏻' => 'selfii: toonii gogaa ifaa',
+    '🤳🏼' => 'selfii: toonii gogaa ifaa-gidduugaleessa',
+    '🤳🏽' => 'selfii: toonii godaa gidduugaleessa',
+    '🤳🏾' => 'selfii: toonii gogaa gurraacha-gidduugaleessa',
+    '🤳🏿' => 'selfii: toonii gogaa gurraachaa',
+    '💪🏻' => 'irree dacha’e: toonii gogaa ifaa',
+    '💪🏼' => 'irree dacha’e: toonii gogaa ifaa-gidduugaleessa',
+    '💪🏽' => 'irree dacha’e: toonii godaa gidduugaleessa',
+    '💪🏾' => 'irree dacha’e: toonii gogaa gurraacha-gidduugaleessa',
+    '💪🏿' => 'irree dacha’e: toonii gogaa gurraachaa',
+    '🦵🏻' => 'miila: toonii gogaa ifaa',
+    '🦵🏼' => 'miila: toonii gogaa ifaa-gidduugaleessa',
+    '🦵🏽' => 'miila: toonii godaa gidduugaleessa',
+    '🦵🏾' => 'miila: toonii gogaa gurraacha-gidduugaleessa',
+    '🦵🏿' => 'miila: toonii gogaa gurraachaa',
+    '🦶🏻' => 'faana: toonii gogaa ifaa',
+    '🦶🏼' => 'faana: toonii gogaa ifaa-gidduugaleessa',
+    '🦶🏽' => 'faana: toonii godaa gidduugaleessa',
+    '🦶🏾' => 'faana: toonii gogaa gurraacha-gidduugaleessa',
+    '🦶🏿' => 'faana: toonii gogaa gurraachaa',
+    '👂🏻' => 'gurra: toonii gogaa ifaa',
+    '👂🏼' => 'gurra: toonii gogaa ifaa-gidduugaleessa',
+    '👂🏽' => 'gurra: toonii godaa gidduugaleessa',
+    '👂🏾' => 'gurra: toonii gogaa gurraacha-gidduugaleessa',
+    '👂🏿' => 'gurra: toonii gogaa gurraachaa',
+    '🦻🏻' => 'gurra gargaartuu dhageettii waliin: toonii gogaa ifaa',
+    '🦻🏼' => 'gurra gargaartuu dhageettii waliin: toonii gogaa ifaa-gidduugaleessa',
+    '🦻🏽' => 'gurra gargaartuu dhageettii waliin: toonii godaa gidduugaleessa',
+    '🦻🏾' => 'gurra gargaartuu dhageettii waliin: toonii gogaa gurraacha-gidduugaleessa',
+    '🦻🏿' => 'gurra gargaartuu dhageettii waliin: toonii gogaa gurraachaa',
+    '👃🏻' => 'funyaan: toonii gogaa ifaa',
+    '👃🏼' => 'funyaan: toonii gogaa ifaa-gidduugaleessa',
+    '👃🏽' => 'funyaan: toonii godaa gidduugaleessa',
+    '👃🏾' => 'funyaan: toonii gogaa gurraacha-gidduugaleessa',
+    '👃🏿' => 'funyaan: toonii gogaa gurraachaa',
+    '👶🏻' => 'daa’ima: toonii gogaa ifaa',
+    '👶🏼' => 'daa’ima: toonii gogaa ifaa-gidduugaleessa',
+    '👶🏽' => 'daa’ima: toonii godaa gidduugaleessa',
+    '👶🏾' => 'daa’ima: toonii gogaa gurraacha-gidduugaleessa',
+    '👶🏿' => 'daa’ima: toonii gogaa gurraachaa',
+    '👦🏻' => 'gurbaa: toonii gogaa ifaa',
+    '👦🏼' => 'gurbaa: toonii gogaa ifaa-gidduugaleessa',
+    '👦🏽' => 'gurbaa: toonii godaa gidduugaleessa',
+    '👦🏾' => 'gurbaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👦🏿' => 'gurbaa: toonii gogaa gurraachaa',
+    '👧🏻' => 'dubara: toonii gogaa ifaa',
+    '👧🏼' => 'dubara: toonii gogaa ifaa-gidduugaleessa',
+    '👧🏽' => 'dubara: toonii godaa gidduugaleessa',
+    '👧🏾' => 'dubara: toonii gogaa gurraacha-gidduugaleessa',
+    '👧🏿' => 'dubara: toonii gogaa gurraachaa',
+    '🧑🏻' => 'nama: toonii gogaa ifaa',
+    '🧑🏼' => 'nama: toonii gogaa ifaa-gidduugaleessa',
+    '🧑🏽' => 'nama: toonii godaa gidduugaleessa',
+    '🧑🏾' => 'nama: toonii gogaa gurraacha-gidduugaleessa',
+    '🧑🏿' => 'nama: toonii gogaa gurraachaa',
+    '👱🏻' => 'nama: toonii gogaa ifaa, rifeensa keelloo',
+    '👱🏼' => 'nama: toonii gogaa ifaa-gidduugaleessa, rifeensa keelloo',
+    '👱🏽' => 'nama: toonii godaa gidduugaleessa, rifeensa keelloo',
+    '👱🏾' => 'nama: toonii gogaa gurraacha-gidduugaleessa, rifeensa keelloo',
+    '👱🏿' => 'nama: toonii gogaa gurraachaa, rifeensa keelloo',
+    '👨🏻' => 'dhiira: toonii gogaa ifaa',
+    '👨🏼' => 'dhiira: toonii gogaa ifaa-gidduugaleessa',
+    '👨🏽' => 'dhiira: toonii godaa gidduugaleessa',
+    '👨🏾' => 'dhiira: toonii gogaa gurraacha-gidduugaleessa',
+    '👨🏿' => 'dhiira: toonii gogaa gurraachaa',
+    '🧔🏻' => 'person: toonii gogaa ifaa, areeda qabu',
+    '🧔🏼' => 'person: toonii gogaa ifaa-gidduugaleessa, areeda qabu',
+    '🧔🏽' => 'person: toonii godaa gidduugaleessa, areeda qabu',
+    '🧔🏾' => 'person: toonii gogaa gurraacha-gidduugaleessa, areeda qabu',
+    '🧔🏿' => 'person: toonii gogaa gurraachaa, areeda qabu',
+    '👩🏻' => 'dubartii: toonii gogaa ifaa',
+    '👩🏼' => 'dubartii: toonii gogaa ifaa-gidduugaleessa',
+    '👩🏽' => 'dubartii: toonii godaa gidduugaleessa',
+    '👩🏾' => 'dubartii: toonii gogaa gurraacha-gidduugaleessa',
+    '👩🏿' => 'dubartii: toonii gogaa gurraachaa',
+    '🧓🏻' => 'nama jaarsa: toonii gogaa ifaa',
+    '🧓🏼' => 'nama jaarsa: toonii gogaa ifaa-gidduugaleessa',
+    '🧓🏽' => 'nama jaarsa: toonii godaa gidduugaleessa',
+    '🧓🏾' => 'nama jaarsa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧓🏿' => 'nama jaarsa: toonii gogaa gurraachaa',
+    '👴🏻' => 'jaarsa: toonii gogaa ifaa',
+    '👴🏼' => 'jaarsa: toonii gogaa ifaa-gidduugaleessa',
+    '👴🏽' => 'jaarsa: toonii godaa gidduugaleessa',
+    '👴🏾' => 'jaarsa: toonii gogaa gurraacha-gidduugaleessa',
+    '👴🏿' => 'jaarsa: toonii gogaa gurraachaa',
+    '👵🏻' => 'jaartii: toonii gogaa ifaa',
+    '👵🏼' => 'jaartii: toonii gogaa ifaa-gidduugaleessa',
+    '👵🏽' => 'jaartii: toonii godaa gidduugaleessa',
+    '👵🏾' => 'jaartii: toonii gogaa gurraacha-gidduugaleessa',
+    '👵🏿' => 'jaartii: toonii gogaa gurraachaa',
+    '🙍🏻' => 'nama mufate: toonii gogaa ifaa',
+    '🙍🏼' => 'nama mufate: toonii gogaa ifaa-gidduugaleessa',
+    '🙍🏽' => 'nama mufate: toonii godaa gidduugaleessa',
+    '🙍🏾' => 'nama mufate: toonii gogaa gurraacha-gidduugaleessa',
+    '🙍🏿' => 'nama mufate: toonii gogaa gurraachaa',
+    '🙎🏻' => 'nama huuruu dhiibuu: toonii gogaa ifaa',
+    '🙎🏼' => 'nama huuruu dhiibuu: toonii gogaa ifaa-gidduugaleessa',
+    '🙎🏽' => 'nama huuruu dhiibuu: toonii godaa gidduugaleessa',
+    '🙎🏾' => 'nama huuruu dhiibuu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙎🏿' => 'nama huuruu dhiibuu: toonii gogaa gurraachaa',
+    '🙅🏻' => 'nama LAKKI jedhu: toonii gogaa ifaa',
+    '🙅🏼' => 'nama LAKKI jedhu: toonii gogaa ifaa-gidduugaleessa',
+    '🙅🏽' => 'nama LAKKI jedhu: toonii godaa gidduugaleessa',
+    '🙅🏾' => 'nama LAKKI jedhu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙅🏿' => 'nama LAKKI jedhu: toonii gogaa gurraachaa',
+    '🙆🏻' => 'nama TOLE jedhu: toonii gogaa ifaa',
+    '🙆🏼' => 'nama TOLE jedhu: toonii gogaa ifaa-gidduugaleessa',
+    '🙆🏽' => 'nama TOLE jedhu: toonii godaa gidduugaleessa',
+    '🙆🏾' => 'nama TOLE jedhu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙆🏿' => 'nama TOLE jedhu: toonii gogaa gurraachaa',
+    '💁🏻' => 'nama harka diriirsu: toonii gogaa ifaa',
+    '💁🏼' => 'nama harka diriirsu: toonii gogaa ifaa-gidduugaleessa',
+    '💁🏽' => 'nama harka diriirsu: toonii godaa gidduugaleessa',
+    '💁🏾' => 'nama harka diriirsu: toonii gogaa gurraacha-gidduugaleessa',
+    '💁🏿' => 'nama harka diriirsu: toonii gogaa gurraachaa',
+    '🙋🏻' => 'nama harka baasu: toonii gogaa ifaa',
+    '🙋🏼' => 'nama harka baasu: toonii gogaa ifaa-gidduugaleessa',
+    '🙋🏽' => 'nama harka baasu: toonii godaa gidduugaleessa',
+    '🙋🏾' => 'nama harka baasu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙋🏿' => 'nama harka baasu: toonii gogaa gurraachaa',
+    '🧏🏻' => 'nama duudaa: toonii gogaa ifaa',
+    '🧏🏼' => 'nama duudaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧏🏽' => 'nama duudaa: toonii godaa gidduugaleessa',
+    '🧏🏾' => 'nama duudaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧏🏿' => 'nama duudaa: toonii gogaa gurraachaa',
+    '🙇🏻' => 'nama sagadu: toonii gogaa ifaa',
+    '🙇🏼' => 'nama sagadu: toonii gogaa ifaa-gidduugaleessa',
+    '🙇🏽' => 'nama sagadu: toonii godaa gidduugaleessa',
+    '🙇🏾' => 'nama sagadu: toonii gogaa gurraacha-gidduugaleessa',
+    '🙇🏿' => 'nama sagadu: toonii gogaa gurraachaa',
+    '🤦🏻' => 'nama barruun fuula qabate: toonii gogaa ifaa',
+    '🤦🏼' => 'nama barruun fuula qabate: toonii gogaa ifaa-gidduugaleessa',
+    '🤦🏽' => 'nama barruun fuula qabate: toonii godaa gidduugaleessa',
+    '🤦🏾' => 'nama barruun fuula qabate: toonii gogaa gurraacha-gidduugaleessa',
+    '🤦🏿' => 'nama barruun fuula qabate: toonii gogaa gurraachaa',
+    '🤷🏻' => 'nama mataa raasu: toonii gogaa ifaa',
+    '🤷🏼' => 'nama mataa raasu: toonii gogaa ifaa-gidduugaleessa',
+    '🤷🏽' => 'nama mataa raasu: toonii godaa gidduugaleessa',
+    '🤷🏾' => 'nama mataa raasu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤷🏿' => 'nama mataa raasu: toonii gogaa gurraachaa',
+    '👮🏻' => 'qondaala poolisii: toonii gogaa ifaa',
+    '👮🏼' => 'qondaala poolisii: toonii gogaa ifaa-gidduugaleessa',
+    '👮🏽' => 'qondaala poolisii: toonii godaa gidduugaleessa',
+    '👮🏾' => 'qondaala poolisii: toonii gogaa gurraacha-gidduugaleessa',
+    '👮🏿' => 'qondaala poolisii: toonii gogaa gurraachaa',
+    '🕵🏻' => 'qorataa: toonii gogaa ifaa',
+    '🕵🏼' => 'qorataa: toonii gogaa ifaa-gidduugaleessa',
+    '🕵🏽' => 'qorataa: toonii godaa gidduugaleessa',
+    '🕵🏾' => 'qorataa: toonii gogaa gurraacha-gidduugaleessa',
+    '🕵🏿' => 'qorataa: toonii gogaa gurraachaa',
+    '💂🏻' => 'eegaa: toonii gogaa ifaa',
+    '💂🏼' => 'eegaa: toonii gogaa ifaa-gidduugaleessa',
+    '💂🏽' => 'eegaa: toonii godaa gidduugaleessa',
+    '💂🏾' => 'eegaa: toonii gogaa gurraacha-gidduugaleessa',
+    '💂🏿' => 'eegaa: toonii gogaa gurraachaa',
+    '🥷🏻' => 'niinjaa: toonii gogaa ifaa',
+    '🥷🏼' => 'niinjaa: toonii gogaa ifaa-gidduugaleessa',
+    '🥷🏽' => 'niinjaa: toonii godaa gidduugaleessa',
+    '🥷🏾' => 'niinjaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🥷🏿' => 'niinjaa: toonii gogaa gurraachaa',
+    '👷🏻' => 'hojjetaa ijaarsaa: toonii gogaa ifaa',
+    '👷🏼' => 'hojjetaa ijaarsaa: toonii gogaa ifaa-gidduugaleessa',
+    '👷🏽' => 'hojjetaa ijaarsaa: toonii godaa gidduugaleessa',
+    '👷🏾' => 'hojjetaa ijaarsaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👷🏿' => 'hojjetaa ijaarsaa: toonii gogaa gurraachaa',
+    '🫅🏻' => 'nama gonfoo waliin: toonii gogaa ifaa',
+    '🫅🏼' => 'nama gonfoo waliin: toonii gogaa ifaa-gidduugaleessa',
+    '🫅🏽' => 'nama gonfoo waliin: toonii godaa gidduugaleessa',
+    '🫅🏾' => 'nama gonfoo waliin: toonii gogaa gurraacha-gidduugaleessa',
+    '🫅🏿' => 'nama gonfoo waliin: toonii gogaa gurraachaa',
+    '🤴🏻' => 'ilma mootii: toonii gogaa ifaa',
+    '🤴🏼' => 'ilma mootii: toonii gogaa ifaa-gidduugaleessa',
+    '🤴🏽' => 'ilma mootii: toonii godaa gidduugaleessa',
+    '🤴🏾' => 'ilma mootii: toonii gogaa gurraacha-gidduugaleessa',
+    '🤴🏿' => 'ilma mootii: toonii gogaa gurraachaa',
+    '👸🏻' => 'intala mootii: toonii gogaa ifaa',
+    '👸🏼' => 'intala mootii: toonii gogaa ifaa-gidduugaleessa',
+    '👸🏽' => 'intala mootii: toonii godaa gidduugaleessa',
+    '👸🏾' => 'intala mootii: toonii gogaa gurraacha-gidduugaleessa',
+    '👸🏿' => 'intala mootii: toonii gogaa gurraachaa',
+    '👳🏻' => 'nama turbaanii uffatu: toonii gogaa ifaa',
+    '👳🏼' => 'nama turbaanii uffatu: toonii gogaa ifaa-gidduugaleessa',
+    '👳🏽' => 'nama turbaanii uffatu: toonii godaa gidduugaleessa',
+    '👳🏾' => 'nama turbaanii uffatu: toonii gogaa gurraacha-gidduugaleessa',
+    '👳🏿' => 'nama turbaanii uffatu: toonii gogaa gurraachaa',
+    '👲🏻' => 'nama kofiyyaa godhate: toonii gogaa ifaa',
+    '👲🏼' => 'nama kofiyyaa godhate: toonii gogaa ifaa-gidduugaleessa',
+    '👲🏽' => 'nama kofiyyaa godhate: toonii godaa gidduugaleessa',
+    '👲🏾' => 'nama kofiyyaa godhate: toonii gogaa gurraacha-gidduugaleessa',
+    '👲🏿' => 'nama kofiyyaa godhate: toonii gogaa gurraachaa',
+    '🧕🏻' => 'dubartii mataatti maratte: toonii gogaa ifaa',
+    '🧕🏼' => 'dubartii mataatti maratte: toonii gogaa ifaa-gidduugaleessa',
+    '🧕🏽' => 'dubartii mataatti maratte: toonii godaa gidduugaleessa',
+    '🧕🏾' => 'dubartii mataatti maratte: toonii gogaa gurraacha-gidduugaleessa',
+    '🧕🏿' => 'dubartii mataatti maratte: toonii gogaa gurraachaa',
+    '🤵🏻' => 'nama bijaamaa uffate: toonii gogaa ifaa',
+    '🤵🏼' => 'nama bijaamaa uffate: toonii gogaa ifaa-gidduugaleessa',
+    '🤵🏽' => 'nama bijaamaa uffate: toonii godaa gidduugaleessa',
+    '🤵🏾' => 'nama bijaamaa uffate: toonii gogaa gurraacha-gidduugaleessa',
+    '🤵🏿' => 'nama bijaamaa uffate: toonii gogaa gurraachaa',
+    '👰🏻' => 'nama golgaa waliin: toonii gogaa ifaa',
+    '👰🏼' => 'nama golgaa waliin: toonii gogaa ifaa-gidduugaleessa',
+    '👰🏽' => 'nama golgaa waliin: toonii godaa gidduugaleessa',
+    '👰🏾' => 'nama golgaa waliin: toonii gogaa gurraacha-gidduugaleessa',
+    '👰🏿' => 'nama golgaa waliin: toonii gogaa gurraachaa',
+    '🤰🏻' => 'dubartii ulfa: toonii gogaa ifaa',
+    '🤰🏼' => 'dubartii ulfa: toonii gogaa ifaa-gidduugaleessa',
+    '🤰🏽' => 'dubartii ulfa: toonii godaa gidduugaleessa',
+    '🤰🏾' => 'dubartii ulfa: toonii gogaa gurraacha-gidduugaleessa',
+    '🤰🏿' => 'dubartii ulfa: toonii gogaa gurraachaa',
+    '🫃🏻' => 'dhiira ulfa: toonii gogaa ifaa',
+    '🫃🏼' => 'dhiira ulfa: toonii gogaa ifaa-gidduugaleessa',
+    '🫃🏽' => 'dhiira ulfa: toonii godaa gidduugaleessa',
+    '🫃🏾' => 'dhiira ulfa: toonii gogaa gurraacha-gidduugaleessa',
+    '🫃🏿' => 'dhiira ulfa: toonii gogaa gurraachaa',
+    '🫄🏻' => 'nama ulfa: toonii gogaa ifaa',
+    '🫄🏼' => 'nama ulfa: toonii gogaa ifaa-gidduugaleessa',
+    '🫄🏽' => 'nama ulfa: toonii godaa gidduugaleessa',
+    '🫄🏾' => 'nama ulfa: toonii gogaa gurraacha-gidduugaleessa',
+    '🫄🏿' => 'nama ulfa: toonii gogaa gurraachaa',
+    '🤱🏻' => 'harma hoosisuu: toonii gogaa ifaa',
+    '🤱🏼' => 'harma hoosisuu: toonii gogaa ifaa-gidduugaleessa',
+    '🤱🏽' => 'harma hoosisuu: toonii godaa gidduugaleessa',
+    '🤱🏾' => 'harma hoosisuu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤱🏿' => 'harma hoosisuu: toonii gogaa gurraachaa',
+    '👼🏻' => 'daa’ima ergamaa: toonii gogaa ifaa',
+    '👼🏼' => 'daa’ima ergamaa: toonii gogaa ifaa-gidduugaleessa',
+    '👼🏽' => 'daa’ima ergamaa: toonii godaa gidduugaleessa',
+    '👼🏾' => 'daa’ima ergamaa: toonii gogaa gurraacha-gidduugaleessa',
+    '👼🏿' => 'daa’ima ergamaa: toonii gogaa gurraachaa',
+    '🎅🏻' => 'Saantaa kilaawos: toonii gogaa ifaa',
+    '🎅🏼' => 'Saantaa kilaawos: toonii gogaa ifaa-gidduugaleessa',
+    '🎅🏽' => 'Saantaa kilaawos: toonii godaa gidduugaleessa',
+    '🎅🏾' => 'Saantaa kilaawos: toonii gogaa gurraacha-gidduugaleessa',
+    '🎅🏿' => 'Saantaa kilaawos: toonii gogaa gurraachaa',
+    '🤶🏻' => 'Obbo Kilaawos: toonii gogaa ifaa',
+    '🤶🏼' => 'Obbo Kilaawos: toonii gogaa ifaa-gidduugaleessa',
+    '🤶🏽' => 'Obbo Kilaawos: toonii godaa gidduugaleessa',
+    '🤶🏾' => 'Obbo Kilaawos: toonii gogaa gurraacha-gidduugaleessa',
+    '🤶🏿' => 'Obbo Kilaawos: toonii gogaa gurraachaa',
+    '🦸🏻' => 'goota: toonii gogaa ifaa',
+    '🦸🏼' => 'goota: toonii gogaa ifaa-gidduugaleessa',
+    '🦸🏽' => 'goota: toonii godaa gidduugaleessa',
+    '🦸🏾' => 'goota: toonii gogaa gurraacha-gidduugaleessa',
+    '🦸🏿' => 'goota: toonii gogaa gurraachaa',
+    '🦹🏻' => 'jallataa: toonii gogaa ifaa',
+    '🦹🏼' => 'jallataa: toonii gogaa ifaa-gidduugaleessa',
+    '🦹🏽' => 'jallataa: toonii godaa gidduugaleessa',
+    '🦹🏾' => 'jallataa: toonii gogaa gurraacha-gidduugaleessa',
+    '🦹🏿' => 'jallataa: toonii gogaa gurraachaa',
+    '🧙🏻' => 'falfalaa: toonii gogaa ifaa',
+    '🧙🏼' => 'falfalaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧙🏽' => 'falfalaa: toonii godaa gidduugaleessa',
+    '🧙🏾' => 'falfalaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧙🏿' => 'falfalaa: toonii gogaa gurraachaa',
+    '🧚🏻' => 'feerii: toonii gogaa ifaa',
+    '🧚🏼' => 'feerii: toonii gogaa ifaa-gidduugaleessa',
+    '🧚🏽' => 'feerii: toonii godaa gidduugaleessa',
+    '🧚🏾' => 'feerii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧚🏿' => 'feerii: toonii gogaa gurraachaa',
+    '🧛🏻' => 'vaampaayerii: toonii gogaa ifaa',
+    '🧛🏼' => 'vaampaayerii: toonii gogaa ifaa-gidduugaleessa',
+    '🧛🏽' => 'vaampaayerii: toonii godaa gidduugaleessa',
+    '🧛🏾' => 'vaampaayerii: toonii gogaa gurraacha-gidduugaleessa',
+    '🧛🏿' => 'vaampaayerii: toonii gogaa gurraachaa',
+    '🧜🏻' => 'nama lo’u: toonii gogaa ifaa',
+    '🧜🏼' => 'nama lo’u: toonii gogaa ifaa-gidduugaleessa',
+    '🧜🏽' => 'nama lo’u: toonii godaa gidduugaleessa',
+    '🧜🏾' => 'nama lo’u: toonii gogaa gurraacha-gidduugaleessa',
+    '🧜🏿' => 'nama lo’u: toonii gogaa gurraachaa',
+    '🧝🏻' => 'eeliif: toonii gogaa ifaa',
+    '🧝🏼' => 'eeliif: toonii gogaa ifaa-gidduugaleessa',
+    '🧝🏽' => 'eeliif: toonii godaa gidduugaleessa',
+    '🧝🏾' => 'eeliif: toonii gogaa gurraacha-gidduugaleessa',
+    '🧝🏿' => 'eeliif: toonii gogaa gurraachaa',
+    '💆🏻' => 'nama sukkuumamaa jiru: toonii gogaa ifaa',
+    '💆🏼' => 'nama sukkuumamaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '💆🏽' => 'nama sukkuumamaa jiru: toonii godaa gidduugaleessa',
+    '💆🏾' => 'nama sukkuumamaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '💆🏿' => 'nama sukkuumamaa jiru: toonii gogaa gurraachaa',
+    '💇🏻' => 'nama rifeensa sirreeffachaa jiru: toonii gogaa ifaa',
+    '💇🏼' => 'nama rifeensa sirreeffachaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '💇🏽' => 'nama rifeensa sirreeffachaa jiru: toonii godaa gidduugaleessa',
+    '💇🏾' => 'nama rifeensa sirreeffachaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '💇🏿' => 'nama rifeensa sirreeffachaa jiru: toonii gogaa gurraachaa',
+    '🚶🏻' => 'nama deemaa jiru: toonii gogaa ifaa',
+    '🚶🏼' => 'nama deemaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🚶🏽' => 'nama deemaa jiru: toonii godaa gidduugaleessa',
+    '🚶🏾' => 'nama deemaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🚶🏿' => 'nama deemaa jiru: toonii gogaa gurraachaa',
+    '🧍🏻' => 'nama dhaabbatu: toonii gogaa ifaa',
+    '🧍🏼' => 'nama dhaabbatu: toonii gogaa ifaa-gidduugaleessa',
+    '🧍🏽' => 'nama dhaabbatu: toonii godaa gidduugaleessa',
+    '🧍🏾' => 'nama dhaabbatu: toonii gogaa gurraacha-gidduugaleessa',
+    '🧍🏿' => 'nama dhaabbatu: toonii gogaa gurraachaa',
+    '🧎🏻' => 'nama jilbeeffate: toonii gogaa ifaa',
+    '🧎🏼' => 'nama jilbeeffate: toonii gogaa ifaa-gidduugaleessa',
+    '🧎🏽' => 'nama jilbeeffate: toonii godaa gidduugaleessa',
+    '🧎🏾' => 'nama jilbeeffate: toonii gogaa gurraacha-gidduugaleessa',
+    '🧎🏿' => 'nama jilbeeffate: toonii gogaa gurraachaa',
+    '🏃🏻' => 'nama fiigu: toonii gogaa ifaa',
+    '🏃🏼' => 'nama fiigu: toonii gogaa ifaa-gidduugaleessa',
+    '🏃🏽' => 'nama fiigu: toonii godaa gidduugaleessa',
+    '🏃🏾' => 'nama fiigu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏃🏿' => 'nama fiigu: toonii gogaa gurraachaa',
+    '💃🏻' => 'dubartii shubbistu: toonii gogaa ifaa',
+    '💃🏼' => 'dubartii shubbistu: toonii gogaa ifaa-gidduugaleessa',
+    '💃🏽' => 'dubartii shubbistu: toonii godaa gidduugaleessa',
+    '💃🏾' => 'dubartii shubbistu: toonii gogaa gurraacha-gidduugaleessa',
+    '💃🏿' => 'dubartii shubbistu: toonii gogaa gurraachaa',
+    '🕺🏻' => 'dhiira shubbisu: toonii gogaa ifaa',
+    '🕺🏼' => 'dhiira shubbisu: toonii gogaa ifaa-gidduugaleessa',
+    '🕺🏽' => 'dhiira shubbisu: toonii godaa gidduugaleessa',
+    '🕺🏾' => 'dhiira shubbisu: toonii gogaa gurraacha-gidduugaleessa',
+    '🕺🏿' => 'dhiira shubbisu: toonii gogaa gurraachaa',
+    '🕴🏻' => 'nama suufii uffatee bololi’u: toonii gogaa ifaa',
+    '🕴🏼' => 'nama suufii uffatee bololi’u: toonii gogaa ifaa-gidduugaleessa',
+    '🕴🏽' => 'nama suufii uffatee bololi’u: toonii godaa gidduugaleessa',
+    '🕴🏾' => 'nama suufii uffatee bololi’u: toonii gogaa gurraacha-gidduugaleessa',
+    '🕴🏿' => 'nama suufii uffatee bololi’u: toonii gogaa gurraachaa',
+    '👯🏻' => 'namoota gurra baanii ofirraa qaban: toonii gogaa ifaa',
+    '👯🏼' => 'namoota gurra baanii ofirraa qaban: toonii gogaa ifaa-gidduugaleessa',
+    '👯🏽' => 'namoota gurra baanii ofirraa qaban: toonii godaa gidduugaleessa',
+    '👯🏾' => 'namoota gurra baanii ofirraa qaban: toonii gogaa gurraacha-gidduugaleessa',
+    '👯🏿' => 'namoota gurra baanii ofirraa qaban: toonii gogaa gurraachaa',
+    '🧖🏻' => 'nama kutaa hurkaa keessaa: toonii gogaa ifaa',
+    '🧖🏼' => 'nama kutaa hurkaa keessaa: toonii gogaa ifaa-gidduugaleessa',
+    '🧖🏽' => 'nama kutaa hurkaa keessaa: toonii godaa gidduugaleessa',
+    '🧖🏾' => 'nama kutaa hurkaa keessaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🧖🏿' => 'nama kutaa hurkaa keessaa: toonii gogaa gurraachaa',
+    '🧗🏻' => 'nama yaabbachaa jiru: toonii gogaa ifaa',
+    '🧗🏼' => 'nama yaabbachaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🧗🏽' => 'nama yaabbachaa jiru: toonii godaa gidduugaleessa',
+    '🧗🏾' => 'nama yaabbachaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🧗🏿' => 'nama yaabbachaa jiru: toonii gogaa gurraachaa',
+    '🏇🏻' => 'gugsii fardaa: toonii gogaa ifaa',
+    '🏇🏼' => 'gugsii fardaa: toonii gogaa ifaa-gidduugaleessa',
+    '🏇🏽' => 'gugsii fardaa: toonii godaa gidduugaleessa',
+    '🏇🏾' => 'gugsii fardaa: toonii gogaa gurraacha-gidduugaleessa',
+    '🏇🏿' => 'gugsii fardaa: toonii gogaa gurraachaa',
+    '🏂🏻' => 'daangaa cabbii: toonii gogaa ifaa',
+    '🏂🏼' => 'daangaa cabbii: toonii gogaa ifaa-gidduugaleessa',
+    '🏂🏽' => 'daangaa cabbii: toonii godaa gidduugaleessa',
+    '🏂🏾' => 'daangaa cabbii: toonii gogaa gurraacha-gidduugaleessa',
+    '🏂🏿' => 'daangaa cabbii: toonii gogaa gurraachaa',
+    '🏌🏻' => 'nama golfii taphatu: toonii gogaa ifaa',
+    '🏌🏼' => 'nama golfii taphatu: toonii gogaa ifaa-gidduugaleessa',
+    '🏌🏽' => 'nama golfii taphatu: toonii godaa gidduugaleessa',
+    '🏌🏾' => 'nama golfii taphatu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏌🏿' => 'nama golfii taphatu: toonii gogaa gurraachaa',
+    '🏄🏻' => 'nama bololi’u: toonii gogaa ifaa',
+    '🏄🏼' => 'nama bololi’u: toonii gogaa ifaa-gidduugaleessa',
+    '🏄🏽' => 'nama bololi’u: toonii godaa gidduugaleessa',
+    '🏄🏾' => 'nama bololi’u: toonii gogaa gurraacha-gidduugaleessa',
+    '🏄🏿' => 'nama bololi’u: toonii gogaa gurraachaa',
+    '🚣🏻' => 'nama bidiruu oofu: toonii gogaa ifaa',
+    '🚣🏼' => 'nama bidiruu oofu: toonii gogaa ifaa-gidduugaleessa',
+    '🚣🏽' => 'nama bidiruu oofu: toonii godaa gidduugaleessa',
+    '🚣🏾' => 'nama bidiruu oofu: toonii gogaa gurraacha-gidduugaleessa',
+    '🚣🏿' => 'nama bidiruu oofu: toonii gogaa gurraachaa',
+    '🏊🏻' => 'nama daakaa jiru: toonii gogaa ifaa',
+    '🏊🏼' => 'nama daakaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🏊🏽' => 'nama daakaa jiru: toonii godaa gidduugaleessa',
+    '🏊🏾' => 'nama daakaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🏊🏿' => 'nama daakaa jiru: toonii gogaa gurraachaa',
+    '⛹🏻' => 'nama kubbaa utaalchisu: toonii gogaa ifaa',
+    '⛹🏼' => 'nama kubbaa utaalchisu: toonii gogaa ifaa-gidduugaleessa',
+    '⛹🏽' => 'nama kubbaa utaalchisu: toonii godaa gidduugaleessa',
+    '⛹🏾' => 'nama kubbaa utaalchisu: toonii gogaa gurraacha-gidduugaleessa',
+    '⛹🏿' => 'nama kubbaa utaalchisu: toonii gogaa gurraachaa',
+    '🏋🏻' => 'nama ulfaatina kaasu: toonii gogaa ifaa',
+    '🏋🏼' => 'nama ulfaatina kaasu: toonii gogaa ifaa-gidduugaleessa',
+    '🏋🏽' => 'nama ulfaatina kaasu: toonii godaa gidduugaleessa',
+    '🏋🏾' => 'nama ulfaatina kaasu: toonii gogaa gurraacha-gidduugaleessa',
+    '🏋🏿' => 'nama ulfaatina kaasu: toonii gogaa gurraachaa',
+    '🚴🏻' => 'nama biskileetii oofu: toonii gogaa ifaa',
+    '🚴🏼' => 'nama biskileetii oofu: toonii gogaa ifaa-gidduugaleessa',
+    '🚴🏽' => 'nama biskileetii oofu: toonii godaa gidduugaleessa',
+    '🚴🏾' => 'nama biskileetii oofu: toonii gogaa gurraacha-gidduugaleessa',
+    '🚴🏿' => 'nama biskileetii oofu: toonii gogaa gurraachaa',
+    '🚵🏻' => 'nama biskileetiin tulluu bahu: toonii gogaa ifaa',
+    '🚵🏼' => 'nama biskileetiin tulluu bahu: toonii gogaa ifaa-gidduugaleessa',
+    '🚵🏽' => 'nama biskileetiin tulluu bahu: toonii godaa gidduugaleessa',
+    '🚵🏾' => 'nama biskileetiin tulluu bahu: toonii gogaa gurraacha-gidduugaleessa',
+    '🚵🏿' => 'nama biskileetiin tulluu bahu: toonii gogaa gurraachaa',
+    '🤸🏻' => 'nama harkaan garagalu: toonii gogaa ifaa',
+    '🤸🏼' => 'nama harkaan garagalu: toonii gogaa ifaa-gidduugaleessa',
+    '🤸🏽' => 'nama harkaan garagalu: toonii godaa gidduugaleessa',
+    '🤸🏾' => 'nama harkaan garagalu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤸🏿' => 'nama harkaan garagalu: toonii gogaa gurraachaa',
+    '🤼🏻' => 'namoota wal tuman: toonii gogaa ifaa',
+    '🤼🏼' => 'namoota wal tuman: toonii gogaa ifaa-gidduugaleessa',
+    '🤼🏽' => 'namoota wal tuman: toonii godaa gidduugaleessa',
+    '🤼🏾' => 'namoota wal tuman: toonii gogaa gurraacha-gidduugaleessa',
+    '🤼🏿' => 'namoota wal tuman: toonii gogaa gurraachaa',
+    '🤽🏻' => 'nama pooloo bishaanii taphachaa jiru: toonii gogaa ifaa',
+    '🤽🏼' => 'nama pooloo bishaanii taphachaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🤽🏽' => 'nama pooloo bishaanii taphachaa jiru: toonii godaa gidduugaleessa',
+    '🤽🏾' => 'nama pooloo bishaanii taphachaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🤽🏿' => 'nama pooloo bishaanii taphachaa jiru: toonii gogaa gurraachaa',
+    '🤾🏻' => 'nama kubbaa harkaa taphachaa jiru: toonii gogaa ifaa',
+    '🤾🏼' => 'nama kubbaa harkaa taphachaa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🤾🏽' => 'nama kubbaa harkaa taphachaa jiru: toonii godaa gidduugaleessa',
+    '🤾🏾' => 'nama kubbaa harkaa taphachaa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🤾🏿' => 'nama kubbaa harkaa taphachaa jiru: toonii gogaa gurraachaa',
+    '🤹🏻' => 'nama waa ol daddarbatee qabatu: toonii gogaa ifaa',
+    '🤹🏼' => 'nama waa ol daddarbatee qabatu: toonii gogaa ifaa-gidduugaleessa',
+    '🤹🏽' => 'nama waa ol daddarbatee qabatu: toonii godaa gidduugaleessa',
+    '🤹🏾' => 'nama waa ol daddarbatee qabatu: toonii gogaa gurraacha-gidduugaleessa',
+    '🤹🏿' => 'nama waa ol daddarbatee qabatu: toonii gogaa gurraachaa',
+    '🧘🏻' => 'nama lootasii irra jiru: toonii gogaa ifaa',
+    '🧘🏼' => 'nama lootasii irra jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🧘🏽' => 'nama lootasii irra jiru: toonii godaa gidduugaleessa',
+    '🧘🏾' => 'nama lootasii irra jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🧘🏿' => 'nama lootasii irra jiru: toonii gogaa gurraachaa',
+    '🛀🏻' => 'nama qaama dhiqatu: toonii gogaa ifaa',
+    '🛀🏼' => 'nama qaama dhiqatu: toonii gogaa ifaa-gidduugaleessa',
+    '🛀🏽' => 'nama qaama dhiqatu: toonii godaa gidduugaleessa',
+    '🛀🏾' => 'nama qaama dhiqatu: toonii gogaa gurraacha-gidduugaleessa',
+    '🛀🏿' => 'nama qaama dhiqatu: toonii gogaa gurraachaa',
+    '🛌🏻' => 'nama siree keessa jiru: toonii gogaa ifaa',
+    '🛌🏼' => 'nama siree keessa jiru: toonii gogaa ifaa-gidduugaleessa',
+    '🛌🏽' => 'nama siree keessa jiru: toonii godaa gidduugaleessa',
+    '🛌🏾' => 'nama siree keessa jiru: toonii gogaa gurraacha-gidduugaleessa',
+    '🛌🏿' => 'nama siree keessa jiru: toonii gogaa gurraachaa',
+    '👭🏻' => 'dubartoota harka wal qabatan: toonii gogaa ifaa',
+    '👭🏼' => 'dubartoota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa',
+    '👭🏽' => 'dubartoota harka wal qabatan: toonii godaa gidduugaleessa',
+    '👭🏾' => 'dubartoota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa',
+    '👭🏿' => 'dubartoota harka wal qabatan: toonii gogaa gurraachaa',
+    '👫🏻' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa ifaa',
+    '👫🏼' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa ifaa-gidduugaleessa',
+    '👫🏽' => 'dubartii fi dhiira harka wal qabatan: toonii godaa gidduugaleessa',
+    '👫🏾' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa',
+    '👫🏿' => 'dubartii fi dhiira harka wal qabatan: toonii gogaa gurraachaa',
+    '👬🏻' => 'dhiirota harka wal qabatan: toonii gogaa ifaa',
+    '👬🏼' => 'dhiirota harka wal qabatan: toonii gogaa ifaa-gidduugaleessa',
+    '👬🏽' => 'dhiirota harka wal qabatan: toonii godaa gidduugaleessa',
+    '👬🏾' => 'dhiirota harka wal qabatan: toonii gogaa gurraacha-gidduugaleessa',
+    '👬🏿' => 'dhiirota harka wal qabatan: toonii gogaa gurraachaa',
+    '💏🏻' => 'dhungoo: toonii gogaa ifaa',
+    '💏🏼' => 'dhungoo: toonii gogaa ifaa-gidduugaleessa',
+    '💏🏽' => 'dhungoo: toonii godaa gidduugaleessa',
+    '💏🏾' => 'dhungoo: toonii gogaa gurraacha-gidduugaleessa',
+    '💏🏿' => 'dhungoo: toonii gogaa gurraachaa',
+    '💑🏻' => 'hiriyyoota gaa’ilaa onnee waliin: toonii gogaa ifaa',
+    '💑🏼' => 'hiriyyoota gaa’ilaa onnee waliin: toonii gogaa ifaa-gidduugaleessa',
+    '💑🏽' => 'hiriyyoota gaa’ilaa onnee waliin: toonii godaa gidduugaleessa',
+    '💑🏾' => 'hiriyyoota gaa’ilaa onnee waliin: toonii gogaa gurraacha-gidduugaleessa',
+    '💑🏿' => 'hiriyyoota gaa’ilaa onnee waliin: toonii gogaa gurraachaa',
+    '🏻' => 'toonii gogaa ifaa',
+    '🏼' => 'toonii gogaa ifaa-gidduugaleessa',
+    '🏽' => 'toonii godaa gidduugaleessa',
+    '🏾' => 'toonii gogaa gurraacha-gidduugaleessa',
+    '🏿' => 'toonii gogaa gurraachaa',
+    '😀' => 'fuula kolfu',
+    '😃' => 'fuula kolfu ija guddaa waliin',
+    '😄' => 'fuula kolfu ija seequ waliin',
+    '😁' => 'fuula ifaa ijoota kolfaa waliin',
+    '😆' => 'fuula kottonfataa kolfu',
+    '😅' => 'fuula kolfu dafqa waliin',
+    '🤣' => 'kolfanii lafa gangalachuu',
+    '😂' => 'fuula imimmaan gammachuu waliin',
+    '🙂' => 'fuula xiqqoo seequ',
+    '🙃' => 'fuula gadi garagale',
+    '🫠' => 'fuula baqu',
+    '😉' => 'fuula ija libsatu',
+    '😊' => 'fuula seequ ija seequ waliin',
+    '😇' => 'fuula kolfu haloo waliin',
+    '🥰' => 'fuula seequ onneewwan waliin',
+    '😍' => 'fuula seequ ija onnee waliin',
+    '🤩' => 'urjiidhaan rukutamuu',
+    '😘' => 'dhungoo fuula raasu',
+    '😗' => 'fuula dhungatu',
+    '☺' => 'fuula seequ',
+    '😚' => 'fuula dhungoo ija cufame waliin',
+    '😙' => 'fuula dhungoo ija seequ waliin',
+    '🥲' => 'fuula seequ imimmaan waliin',
+    '😋' => 'fuula nyaata dharra’e',
+    '😛' => 'fuula arraba waliin',
+    '😜' => 'fuula libsatu arraba waliin',
+    '🤪' => 'fuula qoosaa',
+    '😝' => 'fuula kottonfatu arraba waliin',
+    '🤑' => 'fuula afaan maallaqaa',
+    '🤗' => 'harka bal’isuun fuula seequ',
+    '🤭' => 'fuula afaan harka irraa qabu',
+    '🫢' => 'fuula ijoota banaa fi harki afaan irra jiru',
+    '🫣' => 'fula ija calaqqisu qabu',
+    '🤫' => 'fuula suntuuraa',
+    '🤔' => 'fuula yaaduu',
+    '🫡' => 'fuula nagaa dhiyeessuu',
+    '🤐' => 'fuula afaan ziip ta’ee',
+    '🤨' => 'fuula nyaarri ol ka’e',
+    '😐' => 'fuula walabaa',
+    '😑' => 'fuula miira hin qabde',
+    '😶' => 'fuula afaan malee',
+    '🫥' => 'fuula tuqaa fi sararaa',
+    '😏' => 'fuula huuruu dhiibu',
+    '😒' => 'fuula hin ajaa’ibsiifamne',
+    '🙄' => 'fuula ija naanna’u waliin',
+    '😬' => 'fuula saalfii',
+    '🤥' => 'fuula sobaa',
+    '🫨' => 'fuula hollatu',
+    '😌' => 'fuula boqote',
+    '😔' => 'fuula yaaddoo',
+    '😪' => 'fuula hirribaa',
+    '🤤' => 'fuula cophu',
+    '😴' => 'fuula rafaa jiru',
+    '🫩' => 'fuula ija jalaa ibirkuu qabu',
+    '😷' => 'fuula maaskii fayyaa waliin',
+    '🤒' => 'fuula termoomeetirii waliin',
+    '🤕' => 'fuula mataa buruqee',
+    '🤢' => 'fuula raata’aa',
+    '🤮' => 'fuula oldeebisaa jiru',
+    '🤧' => 'fuula haxxiffachuu',
+    '🥵' => 'fuula ho’aa',
+    '🥶' => 'fuula qorraa',
+    '😵' => 'fuula ija wal qaxxaamurfame waliin',
+    '🤯' => 'mataa dho’aa jiru',
+    '🤠' => 'fuula baarneexaa tiksee',
+    '🥳' => 'fuula paartii kabajaa jiru',
+    '🥸' => 'fuula fakkeessaa',
+    '😎' => 'fuula seequ kishaafa aduu waliin',
+    '🤓' => 'fuula gowwaa',
+    '🧐' => 'fuula moonookilii waliin',
+    '😕' => 'fuula burjaaja’e',
+    '🫤' => 'fuula afaan jallisee jiru',
+    '😟' => 'fuula yaadda’e',
+    '🙁' => 'fuula xiqqoo gudunfame',
+    '☹' => 'fuula gudunfamaa',
+    '😮' => 'fuula afaan banaa waliin',
+    '😯' => 'fuula rifaatuu',
+    '😲' => 'fuula raajeffame',
+    '😳' => 'fuula diimate',
+    '🫪' => 'fuula jallate',
+    '🥺' => 'fuula marartoo',
+    '🥹' => 'fuula imimmaan kuuse',
+    '😦' => 'fuula gudunfame afaan banaa waliin',
+    '😧' => 'fuula dhiphate',
+    '😨' => 'fuula sodaa',
+    '😰' => 'fuula dhiphate dafqa waliin',
+    '😥' => 'fuula gadde garuu aara galfate',
+    '😢' => 'fuula boo’u',
+    '😭' => 'fuula sagalee dhageessisee boo’u',
+    '😱' => 'fuula sodaatiin suntuure',
+    '😖' => 'fuula bitaa itti gale',
+    '😣' => 'fuula obsaa',
+    '😞' => 'fuula mufate',
+    '😓' => 'fuula gadi jedhe dafqa waliin',
+    '😩' => 'fuula dadhabbii',
+    '😫' => 'fuula dadhabe',
+    '🥱' => 'fuula hamuummatu',
+    '😤' => 'fuula hurki funyaanii bahu',
+    '😡' => 'fuula garmalee aare',
+    '😠' => 'fuula aarii',
+    '🤬' => 'fuula malattoo afaan irraa qabu',
+    '😈' => 'fuula seequ gaafa waliin',
+    '👿' => 'fuula aarii gaafa waliin',
+    '💀' => 'lafee mataa',
+    '☠' => 'lafee mataa fi lafee wal qaxxaamure',
+    '💩' => 'gatii dhabeessa',
+    '🤡' => 'fuula nama qoosuu',
+    '👹' => 'oogiree',
+    '👺' => 'gobliin',
+    '👻' => 'ekeraa',
+    '👽' => 'eeliyaan',
+    '👾' => 'bulguu eeliyaan',
+    '🤖' => 'roobootii',
+    '😺' => 'adurree kolfitu',
+    '😸' => 'adurree kolfitu ija seequ waliin',
+    '😹' => 'adurree imimmaan gammachuu waliin',
+    '😻' => 'adurree seeqxu ija onnee waliin',
+    '😼' => 'adurree seeqa aarii waliin',
+    '😽' => 'adurree dhungattu',
+    '🙀' => 'adurree dadhabde',
+    '😿' => 'adurree boossu',
+    '😾' => 'adurree aarte',
+    '🙈' => 'qamalee waan hamaa hin argu jettu',
+    '🙉' => 'qamalee waan hamaa hin dhagahu jettu',
+    '🙊' => 'qamalee waan hamaa hin dubbadhu jettu',
+    '💌' => 'xalayyaa jaalalaa',
+    '💘' => 'onnee xiyya waliin',
+    '💝' => 'onnee riibanii waliin',
+    '💖' => 'onnee calaqqisu',
+    '💗' => 'onnee ifu',
+    '💓' => 'onnee dhahattu',
+    '💞' => 'onnee naanna’u',
+    '💕' => 'onnee lama',
+    '💟' => 'faaya onnee',
+    '❣' => 'raajeffannoo onnee',
+    '💔' => 'onnee cabe',
+    '❤' => 'onnee diimaa',
+    '🩷' => 'onnee daanguleessa',
+    '🧡' => 'onnee burtukaana',
+    '💛' => 'onnee keelloo',
+    '💚' => 'onnee magariisa',
+    '💙' => 'onnee cuquliisa',
+    '🩵' => 'onnee cuquliisa ifu',
+    '💜' => 'onnee bildiimaa',
+    '🤎' => 'onnee magaala',
+    '🖤' => 'onnee gurraacha',
+    '🩶' => 'onnee daalacha',
+    '🤍' => 'onnee adii',
+    '💋' => 'mallattoo dhungoo',
+    '💯' => 'qabxiiwwan dhibba',
+    '💢' => 'mallattoo aarii',
+    '🫯' => 'duumessa lolaa',
+    '💥' => 'walitti bu’insa',
+    '💫' => 'dunquqqaa’aa',
+    '💦' => 'copha jiidhaa',
+    '💨' => 'dhiibaa deemuu',
+    '🕳' => 'qaawwa',
+    '💬' => 'afuuffee dubbii',
+    '🗨' => 'afuuffee dubbii bitaa',
+    '🗯' => 'afuuffee dubbii mirgaa',
+    '💭' => 'afuuffee yaadaa',
+    '💤' => 'ZZZ',
+    '👋' => 'harka raasuu',
+    '🤚' => 'duuba harkaa ol baasuu',
+    '🖐' => 'harka quba bal’isuun',
+    '✋' => 'harka ol ba’e',
+    '🖖' => 'vuulkaan saluutee',
+    '🫱' => 'harka gara mirgaatti',
+    '🫲' => 'harka gara bitaatti',
+    '🫳' => 'harka barruu gadi garagale',
+    '🫴' => 'harka barruu ol garagale',
+    '🫷' => 'harka gara bitaatti dhiibu',
+    '🫸' => 'harka gara mirgaatti dhiibu',
+    '👌' => 'harka tolee',
+    '🤌' => 'quboota walitti qabaman',
+    '🤏' => 'harka qubni isaa walitti qabame',
+    '✌' => 'harka moo’ichaa',
+    '🤞' => 'quba wal qaxxaamure',
+    '🫰' => 'harka qubni akeektuu fi abgudduun wal qaxxamure',
+    '🤟' => 'mallattoo sin jaaladhaa',
+    '🤘' => 'mallattoo gaafaa',
+    '🤙' => 'harka naaf bilbilii',
+    '👈' => 'dugda harkaa bitatti akeeku',
+    '👉' => 'dugda harkaa mirgatti akeeku',
+    '👆' => 'dugda harkaa asii ol akeeku',
+    '🖕' => 'guba gidduu',
+    '👇' => 'dugda harkaa asii gadi akeeku',
+    '☝' => 'akeektuu ol akeeku',
+    '🫵' => 'quba akeektuu gara isa ilaaluutti qiyyaafate',
+    '👍' => 'angudduu ol qabuu',
+    '👎' => 'abgudduu gadi qabuu',
+    '✊' => 'haboottee ol ba’e',
+    '👊' => 'haboottee dhufaa jiru',
+    '🤛' => 'haboottee gara bitaatti garagale',
+    '🤜' => 'haboottee gara mirgaatti garagale',
+    '👏' => 'harka rukutuu',
+    '🙌' => 'harkawwan baasuu',
+    '🫶' => 'harkoota onnee',
+    '👐' => 'harkoota banaa',
+    '🤲' => 'barruu wal faana ol ka’e',
+    '🤝' => 'harka fuudhuu',
+    '🙏' => 'harkoota walitti dhufuun ol qabaman',
+    '✍' => 'harka barreessu',
+    '💅' => 'halluu qeensaa',
+    '🤳' => 'selfii',
+    '💪' => 'irree dacha’e',
+    '🦾' => 'irree mekaanikaalii',
+    '🦿' => 'miila mekaanikaalii',
+    '🦵' => 'miila',
+    '🦶' => 'faana',
+    '👂' => 'gurra',
+    '🦻' => 'gurra gargaartuu dhageettii waliin',
+    '👃' => 'funyaan',
+    '🧠' => 'sammuu',
+    '🫀' => 'onnee anaatoomii',
+    '🫁' => 'somba',
+    '🦷' => 'ilkaan',
+    '🦴' => 'lafee',
+    '👀' => 'ijoota',
+    '👁' => 'ija',
+    '👅' => 'arraba',
+    '👄' => 'afaan',
+    '🫦' => 'hidhii ciniinuu',
+    '👶' => 'daa’ima',
+    '👦' => 'gurbaa',
+    '👧' => 'dubara',
+    '🧑' => 'nama',
+    '👱' => 'nama: rifeensa keelloo',
+    '👨' => 'dhiira',
+    '🧔' => 'person: areeda qabu',
+    '👩' => 'dubartii',
+    '🧓' => 'nama jaarsa',
+    '👴' => 'jaarsa',
+    '👵' => 'jaartii',
+    '🙍' => 'nama mufate',
+    '🙎' => 'nama huuruu dhiibuu',
+    '🙅' => 'nama LAKKI jedhu',
+    '🙆' => 'nama TOLE jedhu',
+    '💁' => 'nama harka diriirsu',
+    '🙋' => 'nama harka baasu',
+    '🧏' => 'nama duudaa',
+    '🙇' => 'nama sagadu',
+    '🤦' => 'nama barruun fuula qabate',
+    '🤷' => 'nama mataa raasu',
+    '👮' => 'qondaala poolisii',
+    '🕵' => 'qorataa',
+    '💂' => 'eegaa',
+    '🥷' => 'niinjaa',
+    '👷' => 'hojjetaa ijaarsaa',
+    '🫅' => 'nama gonfoo waliin',
+    '🤴' => 'ilma mootii',
+    '👸' => 'intala mootii',
+    '👳' => 'nama turbaanii uffatu',
+    '👲' => 'nama kofiyyaa godhate',
+    '🧕' => 'dubartii mataatti maratte',
+    '🤵' => 'nama bijaamaa uffate',
+    '👰' => 'nama golgaa waliin',
+    '🤰' => 'dubartii ulfa',
+    '🫃' => 'dhiira ulfa',
+    '🫄' => 'nama ulfa',
+    '🤱' => 'harma hoosisuu',
+    '👼' => 'daa’ima ergamaa',
+    '🎅' => 'Saantaa kilaawos',
+    '🤶' => 'Obbo Kilaawos',
+    '🦸' => 'goota',
+    '🦹' => 'jallataa',
+    '🧙' => 'falfalaa',
+    '🧚' => 'feerii',
+    '🧛' => 'vaampaayerii',
+    '🧜' => 'nama lo’u',
+    '🧝' => 'eeliif',
+    '🧞' => 'jinnii',
+    '🧟' => 'zoombii',
+    '🧌' => 'bulguu',
+    '🫈' => 'uumama rifeensaa',
+    '💆' => 'nama sukkuumamaa jiru',
+    '💇' => 'nama rifeensa sirreeffachaa jiru',
+    '🚶' => 'nama deemaa jiru',
+    '🧍' => 'nama dhaabbatu',
+    '🧎' => 'nama jilbeeffate',
+    '🏃' => 'nama fiigu',
+    '💃' => 'dubartii shubbistu',
+    '🕺' => 'dhiira shubbisu',
+    '🕴' => 'nama suufii uffatee bololi’u',
+    '👯' => 'namoota gurra baanii ofirraa qaban',
+    '🧖' => 'nama kutaa hurkaa keessaa',
+    '🧗' => 'nama yaabbachaa jiru',
+    '🤺' => 'nama faccisu',
+    '🏇' => 'gugsii fardaa',
+    '⛷' => 'sigiga cabbii',
+    '🏂' => 'daangaa cabbii',
+    '🏌' => 'nama golfii taphatu',
+    '🏄' => 'nama bololi’u',
+    '🚣' => 'nama bidiruu oofu',
+    '🏊' => 'nama daakaa jiru',
+    '⛹' => 'nama kubbaa utaalchisu',
+    '🏋' => 'nama ulfaatina kaasu',
+    '🚴' => 'nama biskileetii oofu',
+    '🚵' => 'nama biskileetiin tulluu bahu',
+    '🤸' => 'nama harkaan garagalu',
+    '🤼' => 'namoota wal tuman',
+    '🤽' => 'nama pooloo bishaanii taphachaa jiru',
+    '🤾' => 'nama kubbaa harkaa taphachaa jiru',
+    '🤹' => 'nama waa ol daddarbatee qabatu',
+    '🧘' => 'nama lootasii irra jiru',
+    '🛀' => 'nama qaama dhiqatu',
+    '🛌' => 'nama siree keessa jiru',
+    '👭' => 'dubartoota harka wal qabatan',
+    '👫' => 'dubartii fi dhiira harka wal qabatan',
+    '👬' => 'dhiirota harka wal qabatan',
+    '💏' => 'dhungoo',
+    '💑' => 'hiriyyoota gaa’ilaa onnee waliin',
+    '🗣' => 'mataa dubbatu',
+    '👤' => 'bobboca lapheen olii',
+    '👥' => 'bobbocawwan lapheen olii',
+    '🫂' => 'namoota wal hammatan',
+    '👪' => 'maatii',
+    '👣' => 'faana miilaa',
+    '🫆' => 'ashaaraa qubaa',
+    '🦰' => 'rifeensa diimaa',
+    '🦱' => 'rifeensa luuccaa',
+    '🦳' => 'rifeensa adii',
+    '🦲' => 'moluu',
+    '🐵' => 'fuula qamalee',
+    '🐒' => 'qamalee',
+    '🦍' => 'goorillaa',
+    '🦧' => 'orangutaan',
+    '🐶' => 'fuula saree',
+    '🐕' => 'saree',
+    '🦮' => 'saree karaa agarsiistu',
+    '🐩' => 'puudilii',
+    '🐺' => 'jeedala',
+    '🦊' => 'sardiida',
+    '🦝' => 'xirinyii',
+    '🐱' => 'fuula hadurree',
+    '🐈' => 'adurree',
+    '🦁' => 'leenca',
+    '🐯' => 'fuula qeerransaa',
+    '🐅' => 'qeerransa',
+    '🐴' => 'fuula fardaa',
+    '🫎' => 'muusii',
+    '🫏' => 'harree',
+    '🐎' => 'farda',
+    '🦄' => 'yooniikoornii',
+    '🦓' => 'harree diidoo',
+    '🦌' => 'bosonuu',
+    '🦬' => 'biisoon',
+    '🐮' => 'fuula sa’aa',
+    '🐂' => 'sangaa',
+    '🐃' => 'gafarsa bishaanii',
+    '🐄' => 'sa’aa',
+    '🐷' => 'fuula booyyee',
+    '🐖' => 'booyyee',
+    '🐽' => 'funyaan booyyee',
+    '🐏' => 'korbeessa hoolaa',
+    '🐑' => 'hoolaa ilmoo',
+    '🐐' => 're’ee',
+    '🐪' => 'gaala',
+    '🐫' => 'gaala dugda lamaa',
+    '🦙' => 'ilaamaa',
+    '🦒' => 'sattawwaa',
+    '🐘' => 'arba',
+    '🦣' => 'maamoozii',
+    '🦏' => 'karkarroo',
+    '🦛' => 'roobii',
+    '🐭' => 'fuula hantuutaa',
+    '🐀' => 'hantuuta',
+    '🐹' => 'hamisterii',
+    '🐰' => 'fuula illeettii',
+    '🐇' => 'illeettii',
+    '🐿' => 'chiipmaankii',
+    '🦫' => 'focii',
+    '🦔' => 'xaddee',
+    '🦇' => 'simbira halkanii',
+    '🐻' => 'biir',
+    '🐨' => 'kowaalaa',
+    '🐼' => 'paandaa',
+    '🦥' => 'isloozii',
+    '🦦' => 'ooterii',
+    '🦨' => 'luugduu',
+    '🦘' => 'kaangaaroo',
+    '🦡' => 'iyyaa',
+    '🐾' => 'maxxansa faanaa',
+    '🦃' => 'turkeeyii',
+    '🐔' => 'lukkuu',
+    '🐓' => 'kormaa lukkuu',
+    '🐣' => 'cuucii yaa’u',
+    '🐤' => 'cuucii xiqqoo',
+    '🐥' => 'fuuldura cuucii xiqqoo',
+    '🐦' => 'simbirroo',
+    '🐧' => 'peenguwiin',
+    '🕊' => 'gugee nagaa',
+    '🦅' => 'culuullee',
+    '🦆' => 'daakiyee',
+    '🦢' => 'iswaanii',
+    '🦉' => 'hurunguu',
+    '🦤' => 'doodoo',
+    '🪶' => 'baallee',
+    '🦩' => 'andoolessa',
+    '🦚' => 'piikook',
+    '🦜' => 'paaroot',
+    '🪽' => 'kaattuu',
+    '🪿' => 'dor’ee',
+    '🐸' => 'raacha',
+    '🐊' => 'naacha',
+    '🦎' => 'lootuu',
+    '🐍' => 'bofa',
+    '🐲' => 'fuula diraagoon',
+    '🐉' => 'diraagoon',
+    '🦕' => 'saaroopoodii',
+    '🦖' => 'Tireeksii',
+    '🐳' => 'weelii tufu',
+    '🐋' => 'weelii',
+    '🐬' => 'doolfiinii',
+    '🫍' => 'qurxummuu ajjeesu',
+    '🦭' => 'siilii',
+    '🐟' => 'qurxummii',
+    '🐠' => 'qurxummii tirooppikaalii',
+    '🐡' => 'qurxummii afuuftuu',
+    '🦈' => 'shaarkii',
+    '🐙' => 'oktoopas',
+    '🐚' => 'elellaa',
+    '🪸' => 'koraalii',
+    '🪼' => 'jeeliifiish',
+    '🦀' => 'loccuu',
+    '🦞' => 'loobisterii',
+    '🦐' => 'raammoo bishaan keessaa',
+    '🦑' => 'iskuyiidii',
+    '🦪' => 'ooyisterii',
+    '🐌' => 'cilalluu',
+    '🦋' => 'billaacha',
+    '🐛' => 'geergoo',
+    '🐜' => 'goondaa',
+    '🐝' => 'kanniisa dammaa',
+    '🪲' => 'ilbiisa boombii',
+    '🐞' => 'boombii dhaltuu',
+    '🦗' => 'kirikeetii',
+    '🪳' => 'bararoo',
+    '🕷' => 'sarariitii',
+    '🕸' => 'dirra sarariitii',
+    '🦂' => 'iskoorpiyoon',
+    '🦟' => 'titiisa',
+    '🪰' => 'barrisuu',
+    '🪱' => 'raammoo',
+    '🦠' => 'maayikiroobii',
+    '💐' => 'habaaboo kaasuu',
+    '🌸' => 'cheerii biloosam',
+    '💮' => 'habaaboo adii',
+    '🪷' => 'lootes',
+    '🏵' => 'rozeetii',
+    '🌹' => 'habaaboo',
+    '🥀' => 'habaaboo coolige',
+    '🌺' => 'hibiskas',
+    '🌻' => 'suufii',
+    '🌼' => 'biloosam',
+    '🌷' => 'tuuliippii',
+    '🪻' => 'hayaasiintii',
+    '🌱' => 'biqiltuu',
+    '🪴' => 'biqiltuu neeshaa keessaa',
+    '🌲' => 'muka magariisa',
+    '🌳' => 'muka desidasii',
+    '🌴' => 'muka meexxii',
+    '🌵' => 'adaamii',
+    '🌾' => 'habaaboo ruuzii',
+    '🌿' => 'baala mukaa',
+    '☘' => 'siddisa',
+    '🍀' => 'baala afur',
+    '🍁' => 'baala maapilii',
+    '🍂' => 'baala kufe',
+    '🍃' => 'baala bubbee keessa balali’u',
+    '🪹' => 'koonyaa duwwaa',
+    '🪺' => 'koonyaa killee waliin',
+    '🍄' => 'waakkoo',
+    '🪾' => 'muka baala hin qabne',
+    '🍇' => 'wayinii',
+    '🍈' => 'meloonii',
+    '🍉' => 'habaabii',
+    '🍊' => 'mandariinii',
+    '🍋' => 'loomii',
+    '🍌' => 'muuzii',
+    '🍍' => 'anaanaasii',
+    '🥭' => 'maangoo',
+    '🍎' => 'appilii diimaa',
+    '🍏' => 'appilii magariisa',
+    '🍐' => 'piirii',
+    '🍑' => 'kookii',
+    '🍒' => 'cheerii',
+    '🍓' => 'goraa',
+    '🫐' => 'goraa cuquliisa',
+    '🥝' => 'firii kiwwii',
+    '🍅' => 'timaatima',
+    '🫒' => 'ejersa',
+    '🥥' => 'kokonaatii',
+    '🥑' => 'avukaadoo',
+    '🍆' => 'eegpilaantii',
+    '🥔' => 'dinnicha',
+    '🥕' => 'kaarotii',
+    '🌽' => 'gurra boqqolloo',
+    '🌶' => 'qaaraa gubu',
+    '🫑' => 'abbaa suyyaa',
+    '🥒' => 'kukumberii',
+    '🥬' => 'baala magariisa',
+    '🥦' => 'birookoolii',
+    '🧄' => 'qullubbii adii',
+    '🧅' => 'qullubbii diimaa',
+    '🥜' => 'ocholoonii',
+    '🫘' => 'baaqelaa',
+    '🌰' => 'cheestinaatii',
+    '🫚' => 'hidda jinjibilaa',
+    '🫛' => 'poodii ataraa',
+    '🫜' => 'kuduraa hundee',
+    '🍞' => 'daabboo',
+    '🥐' => 'kiroosantii',
+    '🥖' => 'daabboo abbaa ulee',
+    '🫓' => 'daabboo difoo',
+    '🥨' => 'pireetizeelii',
+    '🥞' => 'paankeekii',
+    '🧇' => 'waafeel',
+    '🧀' => 'muraa baaduu',
+    '🍖' => 'foon lafee irraa',
+    '🍗' => 'miila lukkuu',
+    '🥩' => 'muraa foonii',
+    '🥓' => 'baakoonii',
+    '🍔' => 'hambargarii',
+    '🍟' => 'waaddii dinnichaa',
+    '🍕' => 'piizaa',
+    '🌭' => 'saree ho’aa',
+    '🥪' => 'daanduchii',
+    '🌮' => 'taakoo',
+    '🌯' => 'buriitoo',
+    '🫔' => 'taamaalee',
+    '🥙' => 'daabboo diriiraa guutuu',
+    '🧆' => 'felaafeelii',
+    '🥚' => 'killee',
+    '🍳' => 'nyaata bilcheessuu',
+    '🥘' => 'distii nyaataa gadi fagoo',
+    '🍲' => 'xuwwee nyaataa',
+    '🫕' => 'foondii',
+    '🥣' => 'shaanii golboo fal’aana waliin',
+    '🥗' => 'saalaadii magariisa',
+    '🍿' => 'fandishaa',
+    '🧈' => 'dhadhaa',
+    '🧂' => 'ashaboo',
+    '🥫' => 'nyaata xaasaa keessaa',
+    '🍱' => 'sanduuqa beentoo',
+    '🍘' => 'cabaa ruuzii',
+    '🍙' => 'kubbaa ruuzii',
+    '🍚' => 'ruuzii affeelame',
+    '🍛' => 'ruuzii kaarii',
+    '🍜' => 'kuuraa hurkaa',
+    '🍝' => 'ispaageetii',
+    '🍠' => 'dinnicha mi’aawaa affeelame',
+    '🍢' => 'odeen',
+    '🍣' => 'suushii',
+    '🍤' => 'shiriimpii waadame',
+    '🍥' => 'keekii qurxummii maraa waliin',
+    '🥮' => 'keekii addeessaa',
+    '🍡' => 'dangoo',
+    '🥟' => 'mulmulii',
+    '🥠' => 'saambusaa',
+    '🥡' => 'sanduuqa',
+    '🍦' => 'ayis kireemii laafaa',
+    '🍧' => 'cabbii haadame',
+    '🍨' => 'ayis kireemii',
+    '🍩' => 'doonaatii',
+    '🍪' => 'kuukiisii',
+    '🎂' => 'keekii guyyaa dhalootaa',
+    '🍰' => 'keekii gabaabaa',
+    '🧁' => 'kaapkeekii',
+    '🥧' => 'ambaashaa',
+    '🍫' => 'dalgee chokoleetii',
+    '🍬' => 'karameellaa',
+    '🍭' => 'looliipooppii',
+    '🍮' => 'kaastardii',
+    '🍯' => 'xuwwee dammaa',
+    '🍼' => 'qaruuraa daa’imaa',
+    '🥛' => 'aannan waancaa tokko',
+    '☕' => 'dhugaatii ho’aa',
+    '🫖' => 'makarajii',
+    '🍵' => 'kubbaayyaa shayii qabannoo hin qabne',
+    '🍶' => 'saakee',
+    '🍾' => 'qaruuraa gadaaddiin irraa futta’u',
+    '🍷' => 'wancaa wayinii',
+    '🍸' => 'waancaa kookteelii',
+    '🍹' => 'dhugaatii tirooppikaalii',
+    '🍺' => 'maagii biiraa',
+    '🍻' => 'maagii biiraa walitti buusuu',
+    '🥂' => 'kubbaayyaawwan fuullee walitti bu’an',
+    '🥃' => 'kubbaayyaa fuullee qabannoo hin qabne',
+    '🫗' => 'dhangala’aa buusuu',
+    '🥤' => 'kubbaayyaa xuuxxuu waliin',
+    '🧋' => 'kobba shayii',
+    '🧃' => 'sanduuqa dhugaatii',
+    '🧉' => 'maatee',
+    '🧊' => 'cabbii',
+    '🥢' => 'choopistiikii',
+    '🍽' => 'fal’aanaa fi haalbee sahaanii waliin',
+    '🍴' => 'fal’aana fi haalbee',
+    '🥄' => 'fal’aana',
+    '🔪' => 'haalbee mana nyaataa',
+    '🫙' => 'jaarii',
+    '🏺' => 'amfooraa',
+    '🌍' => 'giloobii Awurooppaa-Afrikaa agarsiisu',
+    '🌎' => 'giloobii Ameerikaa agarsiisu',
+    '🌏' => 'giloobii Eeshiyaa-Awustiraaliyaa agarsiisu',
+    '🌐' => 'giloobii meridiyaanii waliin',
+    '🗺' => 'kaartaa addunyaa',
+    '🗾' => 'kaartaa Jaappaan',
+    '🧭' => 'kompaasii',
+    '🏔' => 'tulluu cabbiin uwwifame',
+    '⛰' => 'tulluu',
+    '🛘' => 'Sigiga lafaa',
+    '🌋' => 'voolkaanoo',
+    '🗻' => 'tulluu fujii',
+    '🏕' => 'kaampii tolfachuu',
+    '🏖' => 'qarqara galaanaa dibaabee waliin',
+    '🏜' => 'gammoojjii',
+    '🏝' => 'odola gammoojjii',
+    '🏞' => 'paarkii biyyaalessaa',
+    '🏟' => 'istaadiyeemii',
+    '🏛' => 'gamoo kalaasikaalaa',
+    '🏗' => 'ijaarsa ijaaruu',
+    '🧱' => 'xuubii',
+    '🪨' => 'kattaa',
+    '🪵' => 'muka',
+    '🛖' => 'mana citaa',
+    '🏘' => 'manneen',
+    '🏚' => 'mana gatame',
+    '🏠' => 'mana',
+    '🏡' => 'mana iddoo biqiltuu qabu',
+    '🏢' => 'gamoo waajjiraa',
+    '🏣' => 'mana poostaa Jaappaan',
+    '🏤' => 'mana poostaa',
+    '🏥' => 'hospitaala',
+    '🏦' => 'baankii',
+    '🏨' => 'hoteela',
+    '🏩' => 'hoteela jaalalaa',
+    '🏪' => 'mana daldalaa mijataa',
+    '🏫' => 'mana barumsaa',
+    '🏬' => 'mana daldalaa muummee',
+    '🏭' => 'waarshaa',
+    '🏯' => 'masaraa Jaappaan',
+    '🏰' => 'masaraa',
+    '💒' => 'cidha',
+    '🗼' => 'taaworii Tookiyoo',
+    '🗽' => 'Siidaa Bilisummaa',
+    '⛪' => 'mana kiristaanaa',
+    '🕌' => 'masjiida',
+    '🛕' => 'mana kadhannaa hinduu',
+    '🕍' => 'mana sagadaa',
+    '⛩' => 'Shintoo shiriinee',
+    '🕋' => 'kaabaa',
+    '⛲' => 'madda',
+    '⛺' => 'dunkaana',
+    '🌁' => 'hurrii',
+    '🌃' => 'halkan urjii waliin',
+    '🏙' => 'teessuma magaalaa',
+    '🌄' => 'aduu tulluu irratti baatu',
+    '🌅' => 'aduu baatu',
+    '🌆' => 'teessuma magaalaa gara galgalaa',
+    '🌇' => 'aduu lixxu',
+    '🌉' => 'riqicha halkaniin',
+    '♨' => 'burqaa ho’aa',
+    '🎠' => 'farda karoosil',
+    '🛝' => 'mucucaata bakka taphaa',
+    '🎡' => 'goommaa faaris',
+    '🎢' => 'rooler koostii',
+    '💈' => 'utubaa mana rifeensaa',
+    '🎪' => 'dukkaana siirkas',
+    '🚂' => 'lokomootiivii',
+    '🚃' => 'konkolaataa baaburaa',
+    '🚄' => 'baabura saffisa olaanaa',
+    '🚅' => 'baabura xiyyitii',
+    '🚆' => 'baabura',
+    '🚇' => 'meetiroo',
+    '🚈' => 'baabura salphaa',
+    '🚉' => 'buufata',
+    '🚊' => 'tiraamii',
+    '🚝' => 'moonooriyaal',
+    '🚞' => 'baabura tulluu',
+    '🚋' => 'konkolaataa tiraamii',
+    '🚌' => 'atoobisii',
+    '🚍' => 'atoobisii dhufaa jiru',
+    '🚎' => 'tirooliibaas',
+    '🚐' => 'minibaasii',
+    '🚑' => 'ambulaansii',
+    '🚒' => 'konkolaataa ibidda dhaamsu',
+    '🚓' => 'konkolaataa poolisii',
+    '🚔' => 'konkolaataa poolisii dhufaa jiru',
+    '🚕' => 'taaksii',
+    '🚖' => 'taaksii dhufaa jiru',
+    '🚗' => 'awutoomoobilii',
+    '🚘' => 'awutoomoobilii dhufaa jiru',
+    '🚙' => 'konkolaataa tajaajila ispoortii',
+    '🛻' => 'konkolaataa piikaappii',
+    '🚚' => 'konkolaataa meeshaa dhaqqabsiisu',
+    '🚛' => 'konkolaataa fe’umsaa',
+    '🚜' => 'tiraaktera',
+    '🏎' => 'konkolaataa dorgommii',
+    '🏍' => 'motorsaayikilii',
+    '🛵' => 'iskuuterii motoraa',
+    '🦽' => 'wiilcherii harkaa',
+    '🦼' => 'wiilcherii motoraa',
+    '🛺' => 'awutoo riikshaawu',
+    '🚲' => 'biskileetii',
+    '🛴' => 'iskuuterii irra ejjetamu',
+    '🛹' => 'iskeet boordii',
+    '🛼' => 'iskaatii naanna’u',
+    '🚏' => 'dhaabbii atoobisii',
+    '🛣' => 'daandii motoraa',
+    '🛤' => 'hadiida baaburaa',
+    '🛢' => 'baarmeelii boba’aa',
+    '⛽' => 'paampii boba’aa',
+    '🛞' => 'wiilii',
+    '🚨' => 'ifa konkolaataa poolisii',
+    '🚥' => 'ibsaa tiraafikaa dalgaa',
+    '🚦' => 'ibsaa tiraafikaa olee',
+    '🛑' => 'mallaattoo dhaabadhuu',
+    '🚧' => 'ijaarsa',
+    '⚓' => 'sibiila dooniin ittiin dhaabbatu',
+    '🛟' => 'afuuffee geengoo bishaan irraa',
+    '⛵' => 'bidiruu',
+    '🛶' => 'yabala',
+    '🚤' => 'bidiruu saffisaa',
+    '🛳' => 'doonii imaltootaa',
+    '⛴' => 'doonii',
+    '🛥' => 'bidiruu motoraa',
+    '✈' => 'xiyyaara',
+    '🛩' => 'xiyyaara xiqqoo',
+    '🛫' => 'ka’umsa xiyyaaraa',
+    '🛬' => 'bu’uu xiyyaaraa',
+    '🪂' => 'paaraashuutii',
+    '💺' => 'taa’umsa',
+    '🚁' => 'helekooptera',
+    '🚟' => 'baabura rarraafamu',
+    '🚠' => 'daandii wadaroo tulluu',
+    '🚡' => 'daandii tiraamii qilleensaa',
+    '🛰' => 'saatelaayitii',
+    '🚀' => 'rookkeettii',
+    '🛸' => 'saawuserii balali’u',
+    '🛎' => 'belbela hojiif dammaqsitu',
+    '🧳' => 'borsaa imalaa',
+    '⌛' => 'sa’aatiifuullee xumurame',
+    '⏳' => 'sa’aatiifuulee hin xumuramne',
+    '⌚' => 'sa’aatii',
+    '⏰' => 'sa’aatii dammaqsituu',
+    '⏱' => 'sa’aatii dhaabbii',
+    '⏲' => 'sa’aatii lakkooftuu',
+    '🕰' => 'sa’aatii manteelpiis',
+    '🕛' => 'sa’aatii kudha lama',
+    '🕧' => 'kudha lamaaf walakkaa',
+    '🕐' => 'sa’aatii tokko',
+    '🕜' => 'tokkoof walakkaa',
+    '🕑' => 'sa’aatii lama',
+    '🕝' => 'lamaaf walakkaa',
+    '🕒' => 'sa’aatii sadii',
+    '🕞' => 'sadiif walakkaa',
+    '🕓' => 'sa’aatii afur',
+    '🕟' => 'afuriif walakkaa',
+    '🕔' => 'sa’aatii shan',
+    '🕠' => 'shaniif walakkaa',
+    '🕕' => 'sa’aatii jaha',
+    '🕡' => 'ja’aaf walakkaa',
+    '🕖' => 'sa’aatii toorba',
+    '🕢' => 'toorbaaf walakkaa',
+    '🕗' => 'sa’aatii saddet',
+    '🕣' => 'saddetiif walakkaa',
+    '🕘' => 'sa’aatii sagal',
+    '🕤' => 'sagaliif walakkaa',
+    '🕙' => 'sa’aatii kudhan',
+    '🕥' => 'kudhaniif walakkaa',
+    '🕚' => 'sa’aatii kudha tokko',
+    '🕦' => 'kudha tokkoof walakkaa',
+    '🌑' => 'addeessa haaraa',
+    '🌒' => 'addeessa dabalaa deemu',
+    '🌓' => 'addeessa kurmaana jalqabaa',
+    '🌔' => 'addeessa guutuu ga’e',
+    '🌕' => 'addeessa guutuu',
+    '🌖' => 'addeessa hir’ataa deemu',
+    '🌗' => 'addeessa kurmaana dhumaa',
+    '🌘' => 'addeessa baduu ga’e',
+    '🌙' => 'addeessa walakkaa',
+    '🌚' => 'fuula addeessa haaraa',
+    '🌛' => 'fuula addeessaa kurmaana jalqabaa',
+    '🌜' => 'fuula addeessa kurmaana dhumaa',
+    '🌡' => 'termoomeetirii',
+    '☀' => 'aduu',
+    '🌝' => 'fuula addeessa guutuu',
+    '🌞' => 'aduu fuula waliin',
+    '🪐' => 'pilaaneetii naanna’u',
+    '⭐' => 'urjii',
+    '🌟' => 'urjii ifu',
+    '🌠' => 'urjii furguggifamu',
+    '🌌' => 'miilki weyii',
+    '☁' => 'duumessa',
+    '⛅' => 'aduu duumessa duubaa',
+    '⛈' => 'duumessa bakakkaa fi rooba waliin',
+    '🌤' => 'aduu duumessa xiqqoo duubaa',
+    '🌥' => 'aduu duumessa guddaa duubaa',
+    '🌦' => 'aduu duumessa rooba duubaa',
+    '🌧' => 'duumessa rooba waliin',
+    '🌨' => 'duumessa cabbii waliin',
+    '🌩' => 'duumessa bakakkaa waliin',
+    '🌪' => 'obomboleettii',
+    '🌬' => 'fuula bubbee',
+    '🌀' => 'saayikiloonii',
+    '🌈' => 'sabbata waaqaa',
+    '🌂' => 'dibaabee cufamaa',
+    '☂' => 'dibaabee',
+    '☔' => 'dibaabee rooba roobu waliin',
+    '⛱' => 'dibaabee lafa jiru',
+    '⚡' => 'voolteejii olaanaa',
+    '❄' => 'harcaatii cabbii',
+    '☃' => 'nama cabbii',
+    '⛄' => 'nama cabbii cabbii malee',
+    '☄' => 'koomeetii',
+    '🔥' => 'ibidda',
+    '💧' => 'copha',
+    '🌊' => 'dambalii bishaanii',
+    '🎃' => 'jaak=olaanternii',
+    '🎄' => 'muka ayyaana qillee',
+    '🎆' => 'hojii ibiddaa',
+    '🎇' => 'qaanqee',
+    '🧨' => 'dhukaatuu ibiddaa',
+    '✨' => 'calaqqeewwan',
+    '🎈' => 'afuuffee',
+    '🎉' => 'paartii poopper',
+    '🎊' => 'kubbaa konfeetii',
+    '🎋' => 'muka tanabaataa',
+    '🎍' => 'faaya paayinii',
+    '🎎' => 'ashaangulliitii Jaappaan',
+    '🎏' => 'tamsaasa caarpii',
+    '🎐' => 'naannoftuu bubbee',
+    '🎑' => 'kabaja addeessa ilaaluu',
+    '🧧' => 'poostaa diimaa',
+    '🎀' => 'riibanii',
+    '🎁' => 'kennaa golgame',
+    '🎗' => 'riibanii yaadachiisaa',
+    '🎟' => 'tikkeetii seensaa',
+    '🎫' => 'tikkeetii',
+    '🎖' => 'meedaaliyaa waraanaa',
+    '🏆' => 'geeba',
+    '🏅' => 'meedaaliyaa ispoortii',
+    '🥇' => 'meedaaliyaa 1ffaa',
+    '🥈' => 'meedaaliyaa 2ffaa',
+    '🥉' => 'meedaaliyaa 3ffaa',
+    '⚽' => 'kubbaa miillaa',
+    '⚾' => 'beezboolii',
+    '🥎' => 'kubbaa laafaa',
+    '🏀' => 'kubbaa saaphanaa',
+    '🏐' => 'kubbaa kachoo',
+    '🏈' => 'kubbaa miillaa ameerikaa',
+    '🏉' => 'kubbaa miillaa ragbii',
+    '🎾' => 'teenisii',
+    '🥏' => 'beeddee balali’aa jiru',
+    '🎳' => 'boowuliingii',
+    '🏏' => 'tapha kirikeetii',
+    '🏑' => 'hookii dirree',
+    '🏒' => 'hookii cabbii',
+    '🥍' => 'laakiroosii',
+    '🏓' => 'piing poongii',
+    '🏸' => 'baadmintan',
+    '🥊' => 'gowaantii buunyaa',
+    '🥋' => 'uffata danbii maarshaal artii',
+    '🥅' => 'kiyyoo galchii',
+    '⛳' => 'alaabaa boolla keessaa',
+    '⛸' => 'iskeetii cabbii',
+    '🎣' => 'dhaaba qurxummii kiyyeessuu',
+    '🤿' => 'haguuggii culluxxoo bishaanii',
+    '🎽' => 'qomee fiigichaa',
+    '🎿' => 'iskiis',
+    '🛷' => 'shartattee',
+    '🥌' => 'dhagaa gungurii',
+    '🎯' => 'buliseyee',
+    '🪀' => 'yoo-yoo',
+    '🪁' => 'kaayitii',
+    '🔫' => 'shugguxii bishaanii',
+    '🎱' => 'kubbaa puulii 8',
+    '🔮' => 'kubbaa kiristaalaa',
+    '🪄' => 'ulee falfalaa',
+    '🎮' => 'tapha suurasagalee',
+    '🕹' => 'jooyistiikii',
+    '🎰' => 'maashinii qaawwaa',
+    '🎲' => 'daayii taphaa',
+    '🧩' => 'qeenxee pazilii',
+    '🧸' => 'teedii biir',
+    '🪅' => 'pinaataa',
+    '🪩' => 'kubbaa of ilaallee',
+    '🪆' => 'doolii toora gale',
+    '♠' => 'mallattoo ispeed',
+    '♥' => 'mallattoo onnee',
+    '♦' => 'mallattoo daayimendii',
+    '♣' => 'mallattoo kilabii',
+    '♟' => 'paawunii cheezii',
+    '🃏' => 'jookerii',
+    '🀄' => 'diraagoonii diimaa mahijoong',
+    '🎴' => 'kaardii taphaa habaaboo',
+    '🎭' => 'artiiwwan adeemsisuu',
+    '🖼' => 'fireemii suuraa',
+    '🎨' => 'gabatee artistii',
+    '🧵' => 'kirrii',
+    '🪡' => 'lilmoo hodhaa',
+    '🧶' => 'maraa kirrii',
+    '🪢' => 'hiddaa',
+    '👓' => 'kishaafa',
+    '🕶' => 'kishaafa aduu',
+    '🥽' => 'kishaafa guddaa',
+    '🥼' => 'uffata laabii',
+    '🦺' => 'uffata nageenyaa',
+    '👔' => 'karabaataa',
+    '👕' => 'qomee',
+    '👖' => 'jiinsii',
+    '🧣' => 'fooxaa mormaa',
+    '🧤' => 'golgaa harkaa',
+    '🧥' => 'kaabbortaa',
+    '🧦' => 'kaalsiiwwan',
+    '👗' => 'wandaboo',
+    '👘' => 'kimoonoo',
+    '🥻' => 'saarii',
+    '🩱' => 'uffata bishaan daakaa',
+    '🩲' => 'uffata keessaa',
+    '🩳' => 'qumxaa',
+    '👙' => 'bikinii',
+    '👚' => 'uffata dubartootaa',
+    '🪭' => 'hurguftuu harkaa dacha’u',
+    '👛' => 'borsaa',
+    '👜' => 'borsa harkaa',
+    '👝' => 'borsaa maallaqaa',
+    '🛍' => 'borsaa ittiin gabaa bahan',
+    '🎒' => 'borsaa dugdaa',
+    '🩴' => 'siliipparii',
+    '👞' => 'kophee dhiiraa',
+    '👟' => 'kophee fiigichaa',
+    '🥾' => 'boottii karaa deemsaa',
+    '🥿' => 'kophee diriiraa',
+    '👠' => 'kophee ol dheeraa',
+    '👡' => 'kophee dubartootaa',
+    '🩰' => 'kophee baaleetii',
+    '👢' => 'boottii dubartootaa',
+    '🪮' => 'filaa',
+    '👑' => 'gonfoo',
+    '👒' => 'qoobii dubartii',
+    '🎩' => 'qoobii gubbaa',
+    '🎓' => 'qoobii eebbaa',
+    '🧢' => 'keeppii golboo',
+    '🪖' => 'kofiyyaa waraanaa',
+    '⛑' => 'heelmeetii hojjetoota baraarsaa',
+    '📿' => 'lakkooftuu kadhannaa',
+    '💄' => 'lippistikii',
+    '💍' => 'qubeelaa',
+    '💎' => 'daayimendii',
+    '🔇' => 'sagalee guddistuu ukkaamfame',
+    '🔈' => 'sagalee guddistuu iyya gadi aanaa',
+    '🔉' => 'sagalee guddistuu iyya gidduugaleessaa',
+    '🔊' => 'sagalee guddistuu iyya olaanaa',
+    '📢' => 'sagalee guddistuu',
+    '📣' => 'meeggaafoonii',
+    '📯' => 'xurumbaa poostaa',
+    '🔔' => 'belbelaa',
+    '🔕' => 'belbelli dhorkaadha',
+    '🎼' => 'qabxiiwwan muuziqaa',
+    '🎵' => 'noottaa muuziqaa',
+    '🎶' => 'noottaawwan muuziqaa',
+    '🎙' => 'maayikiraafoonii istuudiyoo',
+    '🎚' => 'sochoostuu sadarkaa',
+    '🎛' => 'qafoo to’annoo',
+    '🎤' => 'maayikiraafoonii',
+    '🎧' => 'dhaggeeffattuu gurraa',
+    '📻' => 'raadiyoo',
+    '🎷' => 'saaksifoonii',
+    '🎺' => 'tiraampeetii',
+    '🪊' => 'tiraamboonii',
+    '🪗' => 'akkoordiyoon',
+    '🎸' => 'gitaara',
+    '🎹' => 'kiiboordii muuziqaa',
+    '🎻' => 'vaayoliinii',
+    '🪕' => 'baanjoo',
+    '🥁' => 'diraamii',
+    '🪘' => 'dibbee dheeraa',
+    '🪇' => 'marakaas',
+    '🪈' => 'uluullee',
+    '🪉' => 'baganaa',
+    '📱' => 'bilbila harkaa',
+    '📲' => 'bilbila harkaa xiyya waliin',
+    '☎' => 'bilbila',
+    '📞' => 'fudhataa bilbilaa',
+    '📟' => 'paajeerii',
+    '📠' => 'maashinii faaksii',
+    '🔋' => 'baatirii',
+    '🪫' => 'baatirii gadaanaa',
+    '🔌' => 'elektirikii suuqamu',
+    '💻' => 'laaptooppii',
+    '🖥' => 'kompiitera deeskitooppii',
+    '🖨' => 'priinterii',
+    '⌨' => 'Kiiboordii',
+    '🖱' => 'hantuutee kompiiteraa',
+    '🖲' => 'kubbaa faana dhahuu',
+    '💽' => 'diiskii kompiiteraa',
+    '💾' => 'diiskii filooppii',
+    '💿' => 'diiskii optikaalii',
+    '📀' => 'dvd',
+    '🧮' => 'abaakasii',
+    '🎥' => 'kaameraa fiilmii',
+    '🎞' => 'fireemiiwwan fiilmii',
+    '📽' => 'calaqqisiistuu fiilmii',
+    '🎬' => 'gabatee walitti rukutuu',
+    '📺' => 'televijinii',
+    '📷' => 'kaameraa',
+    '📸' => 'kaameraa ifa waliin',
+    '📹' => 'kaameraa suursagalee',
+    '📼' => 'kaasseettii suursagalee',
+    '🔍' => 'daawwitii ol guddisu bitatti naanna’e',
+    '🔎' => 'daawwitii ol guddisu mirgatti naanna’e',
+    '🕯' => 'shaamaa',
+    '💡' => 'ampuulii',
+    '🔦' => 'baatirii harkaa',
+    '🏮' => 'afuuffee warqaa diimaa',
+    '🪔' => 'ibsaa diyaa',
+    '📔' => 'dabtara yaadannoo faayaan golgame',
+    '📕' => 'kitaaba cufaa',
+    '📖' => 'kitaaba banaa',
+    '📗' => 'kitaaba magariisa',
+    '📘' => 'kitaaba cuquliisa',
+    '📙' => 'kitaaba burtukaana',
+    '📚' => 'kitaabilee',
+    '📓' => 'dabtara yaadannoo',
+    '📒' => 'galmee',
+    '📃' => 'fuula waraqaa dabe',
+    '📜' => 'maraa',
+    '📄' => 'fuula waraqaa ol garagale',
+    '📰' => 'gaazexaa',
+    '🗞' => 'gaazexaa marame',
+    '📑' => 'fuulota mallattoo kitaabaa',
+    '🔖' => 'mallattoo kitaabaa',
+    '🏷' => 'mallattoo',
+    '🪙' => 'saantima',
+    '🪎' => 'sanduuqa faayaa',
+    '💴' => 'dabtara baankii yeen',
+    '💵' => 'dabtara baankii doolaaraa',
+    '💶' => 'dabtara baankii yuuroo',
+    '💷' => 'dabtara baankii paawondii',
+    '💸' => 'maallaqa koochoo waliin',
+    '💳' => 'kaardii liqii',
+    '🧾' => 'nagayee',
+    '💹' => 'chaartii yeenii guddachaa jiru',
+    '✉' => 'poostaa',
+    '📧' => 'imeelii',
+    '📨' => 'poostaa dhufu',
+    '📩' => 'poostaa xiyya waliin',
+    '📤' => 'dirra ala bahu',
+    '📥' => 'dirra keessa seenu',
+    '📦' => 'kuufama',
+    '📫' => 'sanduuqa ergaa cufame alaabaa ol qabame waliin',
+    '📪' => 'sanduuqa ergaa cufame alaabaa gadi qabame waliin',
+    '📬' => 'sanduuqa ergaa banaa alaabaa ol qabame waliin',
+    '📭' => 'sanduuqa ergaa banaa alaabaa gadi qabame waliin',
+    '📮' => 'sabduuqa poostaa',
+    '🗳' => 'sanduuqa filannoo kan filannoo waliinii',
+    '✏' => 'qubeessaa',
+    '✒' => 'ija qalamaa gurraacha',
+    '🖋' => 'qalama burqaa',
+    '🖊' => 'qalama',
+    '🖌' => 'buruushii fakkii',
+    '🖍' => 'kiraayoonii',
+    '📝' => 'yaadannoo',
+    '💼' => 'borsaa sanadaa',
+    '📁' => 'kuusaa faayilaa',
+    '📂' => 'kuusaa faayilaa banaa',
+    '🗂' => 'qoodduu akeektuu kaardii',
+    '📅' => 'dhaba baraa',
+    '📆' => 'dhaba baraa garagalu',
+    '🗒' => 'yaadannoo garagalu',
+    '🗓' => 'dhaha baraa gagaragalu',
+    '📇' => 'agarsiistuu kaardii',
+    '📈' => 'chaartii guddachaa jiru',
+    '📉' => 'chaarxii xiqqaachaa jiru',
+    '📊' => 'chaartii sarara furdaa',
+    '📋' => 'kiliipboordii',
+    '📌' => 'maxxansituu',
+    '📍' => 'maxxansituu geengoo',
+    '📎' => 'qabduu wwaraqaa',
+    '🖇' => 'waraqaa wal qabsiifame',
+    '📏' => 'sarartuu kallattii',
+    '📐' => 'sarartuu rogsadee',
+    '✂' => 'maqasii',
+    '🗃' => 'sanduuqa faayilaa kaardii',
+    '🗄' => 'bakka taa’umsa faayilaa',
+    '🗑' => 'guuboo balfaa',
+    '🔒' => 'cufamaa',
+    '🔓' => 'banamaa',
+    '🔏' => 'qalamaan kan cufame',
+    '🔐' => 'furttuidhaan kan cufame',
+    '🔑' => 'furtuu',
+    '🗝' => 'furtuu durii',
+    '🔨' => 'burruusa',
+    '🪓' => 'qottoo',
+    '⛏' => 'doomaa',
+    '⚒' => 'burruusaa fi doomaa',
+    '🛠' => 'burruusaa fi furtuu',
+    '🗡' => 'cuubee',
+    '⚔' => 'seefii wal qaxxaamure',
+    '💣' => 'boombii',
+    '🪃' => 'murxuxxee',
+    '🏹' => 'xiyyaa fi qiyya',
+    '🛡' => 'gaachana',
+    '🪚' => 'murtuu mukaa',
+    '🔧' => 'hiiktuu',
+    '🪛' => 'hiiktuu iskiriwuu',
+    '🔩' => 'naatii fi booltii',
+    '⚙' => 'ilkaan motoraa',
+    '🗜' => 'kilaampii',
+    '⚖' => 'madaallii',
+    '🦯' => 'shimala adii',
+    '🔗' => 'hidhoo',
+    '⛓' => 'cancala',
+    '🪝' => 'qabduu',
+    '🧰' => 'sanduuqa meeshaa',
+    '🧲' => 'maagineetii',
+    '🪜' => 'yaabannoo',
+    '🪏' => 'shoofoo',
+    '⚗' => 'albeemikii',
+    '🧪' => 'ujummoo yaalii',
+    '🧫' => 'fuulessaa ifaa',
+    '🧬' => 'dna',
+    '🔬' => 'maayikirooskooppii',
+    '🔭' => 'teleskooppii',
+    '📡' => 'anteenaa',
+    '💉' => 'lilmoo',
+    '🩸' => 'copha dhiigaa',
+    '💊' => 'qoricha',
+    '🩹' => 'hiituu maxxanu',
+    '🩼' => 'kiraanchii',
+    '🩺' => 'isteetiskooppii',
+    '🩻' => 'eksireyii',
+    '🚪' => 'balbala',
+    '🛗' => 'liiftii',
+    '🪞' => 'of ilaallee',
+    '🪟' => 'foddaa',
+    '🛏' => 'siree',
+    '🛋' => 'soofaa fi ibsaa',
+    '🪑' => 'teessuma',
+    '🚽' => 'mana fincaanii',
+    '🪠' => 'pilaangerii',
+    '🚿' => 'shaaworii',
+    '🛁' => 'gabatee qama dhiqannaa',
+    '🪤' => 'kiyyoo hantuutaa',
+    '🪒' => 'qarabaa',
+    '🧴' => 'qaruuraa looshinii',
+    '🧷' => 'lilmoo eeggannoo',
+    '🧹' => 'haxooftuu',
+    '🧺' => 'guuboo',
+    '🧻' => 'maraa waraqaa',
+    '🪣' => 'baaldii',
+    '🧼' => 'saamunaa',
+    '🫧' => 'afuuffeewwan',
+    '🪥' => 'buruushii ilkaanii',
+    '🧽' => 'ispoonjii',
+    '🧯' => 'ibidda dhaamsituu',
+    '🛒' => 'gaarii ittiin meeshaa bitatan',
+    '🚬' => 'tamboo',
+    '⚰' => 'sanduuqa reeffaa',
+    '🪦' => 'siidaa awwaalchaa',
+    '⚱' => 'xuwwee awwaalchaa',
+    '🧿' => 'naazaar amuuleet',
+    '🪬' => 'haamsaa',
+    '🗿' => 'mo’aayii',
+    '🪧' => 'taappeellaa',
+    '🪪' => 'kaardii adda baastuu',
+    '🏧' => 'mallattoo ATM',
+    '🚮' => 'mallattoo kosii gatuu',
+    '🚰' => 'bishaan waraabamu',
+    '♿' => 'mallattoo wiilcherii',
+    '🚹' => 'kutaa dhiirotaa',
+    '🚺' => 'kutaa dubartootaa',
+    '🚻' => 'kutaa boqonnaa',
+    '🚼' => 'mallattoo daa’imaa',
+    '🚾' => 'bishaan kuufamaa',
+    '🛂' => 'to’annoo paaspoortii',
+    '🛃' => 'gumuruka',
+    '🛄' => 'boorsaa imalaa oolfachuu',
+    '🛅' => 'boorsaa bitaa',
+    '⚠' => 'akeekkachiisa',
+    '🚸' => 'daa’imman qaxxaamuran',
+    '⛔' => 'seenuun dhorkaadha',
+    '🚫' => 'dhorkaadha',
+    '🚳' => 'biskileetiin dhorkaadha',
+    '🚭' => 'tamboo aarsuun dhorkaadha',
+    '🚯' => 'kosii gatuun dhorkaadha',
+    '🚱' => 'bishaan hin waraabamne',
+    '🚷' => 'miilaan deemuun dhorkaadha',
+    '📵' => 'bilbilli harkaa dhorkaadha',
+    '🔞' => 'kudha saddetii gadi dhorkaadha',
+    '☢' => 'raadiyoo’aktiivii',
+    '☣' => 'baayoohaazaardii',
+    '⬆' => 'xiyya olee',
+    '↗' => 'xiyya olee-mirgaa',
+    '➡' => 'xiyya mirgaa',
+    '↘' => 'xiyya gadee-mirgaa',
+    '⬇' => 'xiyya gadee',
+    '↙' => 'xiyya gadee-bitaa',
+    '⬅' => 'xiyya bitaa',
+    '↖' => 'xiyya olee-bitaa',
+    '↕' => 'xiyya olee-gadii',
+    '↔' => 'xiyya bitaa-mirgaa',
+    '↩' => 'xiyya mirgaa bitatti jallatu',
+    '↪' => 'xiyya bitaa mirgatti jallatu',
+    '⤴' => 'xiyya mirgaa ol jallatu',
+    '⤵' => 'xiyya mirgaa gadi jallatu',
+    '🔃' => 'xiyyoota olee kallattii sa’aattiitti naanna’an',
+    '🔄' => 'xiyyoota olee faallaa sa’aattiitti naanna’an',
+    '🔙' => 'xiyya DUUBAA',
+    '🔚' => 'xiyya XUMURAA',
+    '🔛' => 'xiyya BANI!',
+    '🔜' => 'xiyya DHIYOO',
+    '🔝' => 'xiyya GUBBAA',
+    '🛐' => 'bakka waaqeffannaa',
+    '⚛' => 'mallattoo atoomii',
+    '🕉' => 'oomii',
+    '✡' => 'urjii daawwit',
+    '☸' => 'goommaa daarmaa',
+    '☯' => 'yiin yaang',
+    '✝' => 'fannoo laatinii',
+    '☦' => 'fannoo ortodooksii',
+    '☪' => 'urjii fi ji’a',
+    '☮' => 'mallattoo nagaa',
+    '🕎' => 'menooraa',
+    '🔯' => 'tuqaa urjii qabxii jaha',
+    '🪯' => 'kaandaa',
+    '♈' => 'Ariyees',
+    '♉' => 'Tawuruus',
+    '♊' => 'Jeeminii',
+    '♋' => 'Kaanserii',
+    '♌' => 'Liyoo',
+    '♍' => 'Viirgoo',
+    '♎' => 'Libraa',
+    '♏' => 'Iskoorpiyoo',
+    '♐' => 'Sagitaariyees',
+    '♑' => 'Kaappirikoorn',
+    '♒' => 'Akuwaariyaa',
+    '♓' => 'Pisees',
+    '⛎' => 'Ofiyookas',
+    '🔀' => 'qabduu daandii waljala darbuu',
+    '🔁' => 'qabduu irra deebii',
+    '🔂' => 'qabduu yeroo tokko irra deebi’ii',
+    '▶' => 'qabduu taphadhuu',
+    '⏩' => 'qabduu saffisaan-fuulduratti',
+    '⏭' => 'qabduu tiraakii itti aanu',
+    '⏯' => 'qabduu taphachuu yookiin dhaabuu',
+    '◀' => 'qabduu duubatti deebisuu',
+    '⏪' => 'qabduu saffisaan duubatti',
+    '⏮' => 'qabduu tiraakii dhumaa',
+    '🔼' => 'qabduu olee',
+    '⏫' => 'qabduu saffisaan ol',
+    '🔽' => 'qabduu gadee',
+    '⏬' => 'qabduu saffisaan gadi',
+    '⏸' => 'qabduu yeroo dhaabii',
+    '⏹' => 'qabduu dhaabii',
+    '⏺' => 'qabduu waraabbii',
+    '⏏' => 'qabduu buqqisuu',
+    '🎦' => 'sinimaa',
+    '🔅' => 'qabduu dimimmisaa',
+    '🔆' => 'qabduu ifaa',
+    '📶' => 'sararoota anteenaa',
+    '🛜' => 'sarara maleessa',
+    '📳' => 'tooftaa hollannaa',
+    '📴' => 'bilbila harkaa cufaa',
+    '♀' => 'mallattoo dhalaa',
+    '♂' => 'mallattoo dhiiraa',
+    '⚧' => 'mallattoo saala jijjiirachuu',
+    '✖' => 'baay’isuu',
+    '➕' => 'ida’uu',
+    '➖' => 'hir’isuu',
+    '➗' => 'hiruu',
+    '🟰' => 'mallattoo walqixaa guddaa',
+    '♾' => 'infiniitii',
+    '‼' => 'mallattoo raajjeffannoo dachaa',
+    '⁉' => 'mallattoo rajjeffannoo gaaffii',
+    '❓' => 'mallattoo gaaffii diimaa',
+    '❔' => 'mallattoo gaaffii adii',
+    '❕' => 'mallattoo raajeffannoo adii',
+    '❗' => 'mallattoo raajeffannoo diimaa',
+    '〰' => 'sarara xiqqaa dambalii',
+    '💱' => 'jijjiirraa sharafaa',
+    '💲' => 'mallattoo doolaaraa guddaa',
+    '⚕' => 'mallattoo meedikaalaa',
+    '♻' => 'mallattoo marsaa',
+    '⚜' => 'filuur-de-liis',
+    '🔱' => 'aasxaa qara sadii',
+    '📛' => 'baajii maqaa',
+    '🔰' => 'mallattoo Jaappaan jalqabaaf',
+    '⭕' => 'qaawwa geengoo diimaa',
+    '✅' => 'qabduu mallattoo mirkanaa',
+    '☑' => 'sanduuqa mirkaneessaa mirkanaa’e',
+    '✔' => 'mallattoo mirkanaa',
+    '❌' => 'mallattoo fannoo',
+    '❎' => 'qabduu mallattoo fannoo',
+    '➰' => 'marsaa qaxxaamuraa',
+    '➿' => 'marsaa yeroo lama qaxxaamuru',
+    '〽' => 'mallattoo wal jijjiirraa kutaa',
+    '✳' => 'urjii dubbattuu saddet',
+    '✴' => 'urjii qabxii saddetii',
+    '❇' => 'calaqqee',
+    '™' => 'mallattoo dandalaa',
+    '🫟' => 'dhangala’aa faca’u',
+    '🔠' => 'qubee guddaa laatinii galchi',
+    '🔡' => 'qubee xiqqaa laatinii galchi',
+    '🔢' => 'lakkoofsota galchi',
+    '🔣' => 'mallattoolee galchi',
+    '🔤' => 'qubeewwan laatinii galchi',
+    '🅰' => 'qabduu A (gosa dhiigaa)',
+    '🆎' => 'qabduu AB (gosa dhiigaa)',
+    '🅱' => 'qabduu B (gosa dhiigaa)',
+    '🆑' => 'qabduu CL',
+    '🆒' => 'qabduu QORRAA',
+    '🆓' => 'qabduu BILISAA',
+    'ℹ' => 'odeeffannoo',
+    '🆔' => 'qabduu ID',
+    'Ⓜ' => 'M geenga’e',
+    '🆕' => 'qabduu HAARAA',
+    '🆖' => 'qabduu NG',
+    '🅾' => 'qabduu O (gosa dhiigaa)',
+    '🆗' => 'qabduu TOLE',
+    '🅿' => 'qabduu P',
+    '🆘' => 'qabduu SOS',
+    '🆙' => 'qabduu UP!',
+    '🆚' => 'qabduu VS',
+    '🈁' => 'qabduu “ishee” Jaappaan',
+    '🈂' => 'qabduu “gatii tajaajilaa” Jaappaan',
+    '🈷' => 'qabduu “hagamtaa ji’aa” Jaappaan',
+    '🈶' => 'qabduu “kaffaltii irraa bilisa miti” Jaappaan',
+    '🈯' => 'qabduu “qabameera” Jaappaan',
+    '🉐' => 'qabduu “daldalaaf waliin dubbachuu” Jaappaan',
+    '🈹' => 'qabduu “hir’ifama gatii” Jaappaan',
+    '🈚' => 'qabduu “kaffaltii irraa bilisa” Jaappaan',
+    '🈲' => 'qabduu “dhorkaadha” Jaappaan',
+    '🉑' => 'qabduu “fudhatamaa” Jaappaan',
+    '🈸' => 'qabduu “appilikeeshinii” Jaappaan',
+    '🈴' => 'qabduu “qabxii darbinsaa” Jaappaan',
+    '🈳' => 'qabduu “gita hojii banaa” Jaappaan',
+    '㊗' => 'qabduu “baga gammaddee” Jaappaan',
+    '㊙' => 'qabduu “dhoksaa” Jaappaan',
+    '🈺' => 'qabduu “daldalaaf banaa” Jaappaan',
+    '🈵' => 'qabduu “giti hojii banaa hin jiru” Jaappaan',
+    '🔴' => 'geengoo diimaa',
+    '🟠' => 'geengoo burtukaana',
+    '🟡' => 'geengoo keelloo',
+    '🟢' => 'geengoo magariisa',
+    '🔵' => 'geengoo cuquliisa',
+    '🟣' => 'geengoo siddisaa',
+    '🟤' => 'geengoo magaala',
+    '⚫' => 'geengoo gurraacha',
+    '⚪' => 'geengoo adii',
+    '🟥' => 'iskuweerii diimaa',
+    '🟧' => 'iskuweerii burtukaana',
+    '🟨' => 'iskuweerii keelloo',
+    '🟩' => 'iskuweerii magariisa',
+    '🟦' => 'iskuweerii cuquliisa',
+    '🟪' => 'iskuweerii siddisa',
+    '🟫' => 'iskuweerii magaala',
+    '⬛' => 'iskuweerii guddaa gurraacha',
+    '⬜' => 'iskuweerii guddaa adii',
+    '◼' => 'iskuweerii giddugaleessa gurraacha',
+    '◻' => 'iskuweerii giddugaleessa adii',
+    '◾' => 'iskuweerii giddugaleessa-xiqqoo gurraacha',
+    '◽' => 'iskuweerii giddugaleessa-xiqqoo adii',
+    '▪' => 'iskuweerii xiqqoo gurraacha',
+    '▫' => 'iskuweerii xiqqoo adii',
+    '🔶' => 'diyaamendii burtukaanii guddaa',
+    '🔷' => 'diyaamendii cuquliisa guddaa',
+    '🔸' => 'diyaamendii burtukaanii xiqqaa',
+    '🔹' => 'diyaamendii cuquliisa xiqqaa',
+    '🔺' => 'rogsadee diimaa ol garagale',
+    '🔻' => 'rogsadee diimaa gadi garagale',
+    '💠' => 'daayimendii tuqaa waliin',
+    '🔘' => 'qabduu raadiyoo',
+    '🔳' => 'qabduu iskuweerii adii',
+    '🔲' => 'qabduu iskuweerii gurraacha',
+    '🏁' => 'alaabaa mallattoon itti godhame',
+    '🚩' => 'alaabaa rogsadee',
+    '🎌' => 'alaabaa wal qaxxaamure',
+    '🏴' => 'alaabaa gurraacha',
+    '🏳' => 'alaabaa adii',
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-or.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-or.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-or.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-or.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ଚୁମ୍ବନ: ମହିଳା, ମହିଳା, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
     '👩🏿‍❤‍💋‍👩🏾' => 'ଚୁମ୍ବନ: ମହିଳା, ମହିଳା, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '👩🏿‍❤‍💋‍👩🏿' => 'ଚୁମ୍ବନ: ମହିଳା, ମହିଳା, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏻‍🫯‍🧑🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏻‍🫯‍🧑🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏻‍🫯‍🧑🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏻‍🫯‍🧑🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏼‍🫯‍🧑🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏼‍🫯‍🧑🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏼‍🫯‍🧑🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏼‍🫯‍🧑🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏽‍🫯‍🧑🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏽‍🫯‍🧑🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏽‍🫯‍🧑🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏽‍🫯‍🧑🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏾‍🫯‍🧑🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏾‍🫯‍🧑🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏾‍🫯‍🧑🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏾‍🫯‍🧑🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏿‍🫯‍🧑🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏿‍🫯‍🧑🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏿‍🫯‍🧑🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏿‍🫯‍🧑🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🧑🏻‍❤‍🧑🏼' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ବ୍ୟକ୍ତି, ବ୍ୟକ୍ତି, ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🧑🏻‍❤‍🧑🏽' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ବ୍ୟକ୍ତି, ବ୍ୟକ୍ତି, ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
     '🧑🏻‍❤‍🧑🏾' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ବ୍ୟକ୍ତି, ବ୍ୟକ୍ତି, ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ବ୍ୟକ୍ତି, ବ୍ୟକ୍ତି, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🧑🏿‍❤‍🧑🏽' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ବ୍ୟକ୍ତି, ବ୍ୟକ୍ତି, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
     '🧑🏿‍❤‍🧑🏾' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ବ୍ୟକ୍ତି, ବ୍ୟକ୍ତି, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏻‍🐰‍🧑🏼' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏻‍🐰‍🧑🏽' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏻‍🐰‍🧑🏾' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏻‍🐰‍🧑🏿' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏼‍🐰‍🧑🏻' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏼‍🐰‍🧑🏽' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏼‍🐰‍🧑🏾' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏼‍🐰‍🧑🏿' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏽‍🐰‍🧑🏻' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏽‍🐰‍🧑🏼' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏽‍🐰‍🧑🏾' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏽‍🐰‍🧑🏿' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏾‍🐰‍🧑🏻' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏾‍🐰‍🧑🏼' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏾‍🐰‍🧑🏽' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏾‍🐰‍🧑🏿' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏿‍🐰‍🧑🏻' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏿‍🐰‍🧑🏼' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏿‍🐰‍🧑🏽' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏿‍🐰‍🧑🏾' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏻‍🫯‍👨🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏻‍🫯‍👨🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏻‍🫯‍👨🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏻‍🫯‍👨🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏼‍🫯‍👨🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏼‍🫯‍👨🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏼‍🫯‍👨🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏼‍🫯‍👨🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏽‍🫯‍👨🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏽‍🫯‍👨🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏽‍🫯‍👨🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏽‍🫯‍👨🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏾‍🫯‍👨🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏾‍🫯‍👨🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏾‍🫯‍👨🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏾‍🫯‍👨🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏿‍🫯‍👨🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏿‍🫯‍👨🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏿‍🫯‍👨🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏿‍🫯‍👨🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '👨🏻‍❤‍👨🏻' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ପୁରୁଷ, ପୁରୁଷ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '👨🏻‍❤‍👨🏼' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ପୁରୁଷ, ପୁରୁଷ, ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '👨🏻‍❤‍👨🏽' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ପୁରୁଷ, ପୁରୁଷ, ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ପୁରୁଷ, ପୁରୁଷ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
     '👨🏿‍❤‍👨🏾' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ପୁରୁଷ, ପୁରୁଷ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '👨🏿‍❤‍👨🏿' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ପୁରୁଷ, ପୁରୁଷ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏻‍🐰‍👨🏼' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏻‍🐰‍👨🏽' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏻‍🐰‍👨🏾' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏻‍🐰‍👨🏿' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏼‍🐰‍👨🏻' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏼‍🐰‍👨🏽' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏼‍🐰‍👨🏾' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏼‍🐰‍👨🏿' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏽‍🐰‍👨🏻' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏽‍🐰‍👨🏼' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏽‍🐰‍👨🏾' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏽‍🐰‍👨🏿' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏾‍🐰‍👨🏻' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏾‍🐰‍👨🏼' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏾‍🐰‍👨🏽' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏾‍🐰‍👨🏿' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏿‍🐰‍👨🏻' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏿‍🐰‍👨🏼' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👨🏿‍🐰‍👨🏽' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👨🏿‍🐰‍👨🏾' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏻‍🫯‍👩🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏻‍🫯‍👩🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏻‍🫯‍👩🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏻‍🫯‍👩🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏼‍🫯‍👩🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏼‍🫯‍👩🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏼‍🫯‍👩🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏼‍🫯‍👩🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏽‍🫯‍👩🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏽‍🫯‍👩🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏽‍🫯‍👩🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏽‍🫯‍👩🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏾‍🫯‍👩🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏾‍🫯‍👩🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏾‍🫯‍👩🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏾‍🫯‍👩🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏿‍🫯‍👩🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏿‍🫯‍👩🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏿‍🫯‍👩🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏿‍🫯‍👩🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '👩🏻‍❤‍👨🏻' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ମହିଳା, ପୁରୁଷ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '👩🏻‍❤‍👨🏼' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ମହିଳା, ପୁରୁଷ, ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '👩🏻‍❤‍👨🏽' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ମହିଳା, ପୁରୁଷ, ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ମହିଳା, ମହିଳା, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
     '👩🏿‍❤‍👩🏾' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ମହିଳା, ମହିଳା, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '👩🏿‍❤‍👩🏿' => 'ହୃଦୟ ସହିତ ପ୍ରେମୀ ଯୁଗଳ: ମହିଳା, ମହିଳା, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏻‍🐰‍👩🏼' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏻‍🐰‍👩🏽' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏻‍🐰‍👩🏾' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏻‍🐰‍👩🏿' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏼‍🐰‍👩🏻' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏼‍🐰‍👩🏽' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏼‍🐰‍👩🏾' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏼‍🐰‍👩🏿' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏽‍🐰‍👩🏻' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏽‍🐰‍👩🏼' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏽‍🐰‍👩🏾' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏽‍🐰‍👩🏿' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏾‍🐰‍👩🏻' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏾‍🐰‍👩🏼' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏾‍🐰‍👩🏽' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏾‍🐰‍👩🏿' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏿‍🐰‍👩🏻' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏿‍🐰‍👩🏼' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👩🏿‍🐰‍👩🏽' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👩🏿‍🐰‍👩🏾' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🧑🏻‍🤝‍🧑🏻' => 'ଲୋକମାନେ ହାତ ଧରାଧରି ହୋଇଛନ୍ତି: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🧑🏻‍🤝‍🧑🏼' => 'ଲୋକମାନେ ହାତ ଧରାଧରି ହୋଇଛନ୍ତି: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🧑🏻‍🤝‍🧑🏽' => 'ଲୋକମାନେ ହାତ ଧରାଧରି ହୋଇଛନ୍ତି: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
@@ -350,6 +470,11 @@
     '🧑🏽‍🦲' => 'ବ୍ୟକ୍ତି: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ଚନ୍ଦା',
     '🧑🏾‍🦲' => 'ବ୍ୟକ୍ତି: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ଚନ୍ଦା',
     '🧑🏿‍🦲' => 'ବ୍ୟକ୍ତି: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ, ଚନ୍ଦା',
+    '🧑🏻‍🩰' => 'ବେଲ୍ଲି ଡାନ୍ସର: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏼‍🩰' => 'ବେଲ୍ଲି ଡାନ୍ସର: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏽‍🩰' => 'ବେଲ୍ଲି ଡାନ୍ସର: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏾‍🩰' => 'ବେଲ୍ଲି ଡାନ୍ସର: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🧑🏿‍🩰' => 'ବେଲ୍ଲି ଡାନ୍ସର: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🧔🏻‍♂' => 'ପୁରୁଷ: ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଦାଢ଼ି',
     '🧔🏼‍♂' => 'ପୁରୁଷ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ, ଦାଢ଼ି',
     '🧔🏽‍♂' => 'ପୁରୁଷ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ, ଦାଢ଼ି',
@@ -1015,6 +1140,16 @@
     '🏃🏽‍♀' => 'ମହିଳା ଦୌଡୁଛନ୍ତି: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
     '🏃🏾‍♀' => 'ମହିଳା ଦୌଡୁଛନ୍ତି: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🏃🏿‍♀' => 'ମହିଳା ଦୌଡୁଛନ୍ତି: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👯🏻‍♀' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👯🏼‍♀' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👯🏽‍♀' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👯🏾‍♀' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👯🏿‍♀' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👯🏻‍♂' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👯🏼‍♂' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👯🏽‍♂' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👯🏾‍♂' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👯🏿‍♂' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🧖🏻‍♂' => 'ବାଷ୍ପପୂର୍ଣ୍ଣ ପ୍ରକୋଷ୍ଠରେ ଥିବା ପୁରୁଷ: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🧖🏼‍♂' => 'ବାଷ୍ପପୂର୍ଣ୍ଣ ପ୍ରକୋଷ୍ଠରେ ଥିବା ପୁରୁଷ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🧖🏽‍♂' => 'ବାଷ୍ପପୂର୍ଣ୍ଣ ପ୍ରକୋଷ୍ଠରେ ଥିବା ପୁରୁଷ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
@@ -1125,6 +1260,16 @@
     '🤸🏽‍♀' => 'କାର୍ଟହୁଇଲ୍‌ କରୁଥିବା ମହିଳା: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
     '🤸🏾‍♀' => 'କାର୍ଟହୁଇଲ୍‌ କରୁଥିବା ମହିଳା: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🤸🏿‍♀' => 'କାର୍ଟହୁଇଲ୍‌ କରୁଥିବା ମହିଳା: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏻‍♀' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏼‍♀' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏽‍♀' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏾‍♀' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏿‍♀' => 'କୁସ୍ତି ଲଢୁଥିବା ମହିଳାମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏻‍♂' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏼‍♂' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏽‍♂' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏾‍♂' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏿‍♂' => 'କୁସ୍ତି ଲଢୁଥିବା ପୁରୁଷମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🤽🏻‍♂' => 'ୱାଟର ପୋଲୋ ଖେଳୁଥିବା ପୁରୁଷ: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🤽🏼‍♂' => 'ୱାଟର ପୋଲୋ ଖେଳୁଥିବା ପୁରୁଷ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🤽🏽‍♂' => 'ୱାଟର ପୋଲୋ ଖେଳୁଥିବା ପୁରୁଷ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
@@ -1317,6 +1462,7 @@
     '👩‍🦽' => 'ମାନୁଆଲ ହ୍ୱିଲଚେୟାରରେ ମହିଳା',
     '🏃‍♂' => 'ପୁରୁଷ ଦୌଡୁଛନ୍ତି',
     '🏃‍♀' => 'ମହିଳା ଦୌଡୁଛନ୍ତି',
+    '🧑‍🩰' => 'ବେଲ୍ଲି ଡାନ୍ସର',
     '👯‍♂' => 'ଠେକୁଆ କାନ ଥିବା ପୁରୁଷମାନେ',
     '👯‍♀' => 'ଠେକୁଆ କାନ ଥିବା ମହିଳାମାନେ',
     '🧖‍♂' => 'ବାଷ୍ପପୂର୍ଣ୍ଣ ପ୍ରକୋଷ୍ଠରେ ଥିବା ପୁରୁଷ',
@@ -1898,6 +2044,11 @@
     '🕴🏽' => 'ସୁଟ୍‌ରେ ଥିବା ପୁରୁଷ ଶୂନ୍ୟରେ ଭାସୁଛନ୍ତି: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
     '🕴🏾' => 'ସୁଟ୍‌ରେ ଥିବା ପୁରୁଷ ଶୂନ୍ୟରେ ଭାସୁଛନ୍ତି: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🕴🏿' => 'ସୁଟ୍‌ରେ ଥିବା ପୁରୁଷ ଶୂନ୍ୟରେ ଭାସୁଛନ୍ତି: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👯🏻' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👯🏼' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '👯🏽' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '👯🏾' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '👯🏿' => 'ଠେକୁଆ କାନ ଥିବା ଲୋକମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🧖🏻' => 'ବାଷ୍ପପୂର୍ଣ୍ଣ ପ୍ରକୋଷ୍ଠରେ ଥିବା ବ୍ୟକ୍ତି: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🧖🏼' => 'ବାଷ୍ପପୂର୍ଣ୍ଣ ପ୍ରକୋଷ୍ଠରେ ଥିବା ବ୍ୟକ୍ତି: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🧖🏽' => 'ବାଷ୍ପପୂର୍ଣ୍ଣ ପ୍ରକୋଷ୍ଠରେ ଥିବା ବ୍ୟକ୍ତି: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
@@ -1963,6 +2114,11 @@
     '🤸🏽' => 'ବ୍ୟକ୍ତି କାର୍ଟହୁଇଲ୍‌ କରୁଛନ୍ତି: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
     '🤸🏾' => 'ବ୍ୟକ୍ତି କାର୍ଟହୁଇଲ୍‌ କରୁଛନ୍ତି: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🤸🏿' => 'ବ୍ୟକ୍ତି କାର୍ଟହୁଇଲ୍‌ କରୁଛନ୍ତି: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏻' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏼' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏽' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏾' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
+    '🤼🏿' => 'କୁସ୍ତି ଲଢୁଥିବା ଲୋକମାନେ: ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🤽🏻' => 'ୱାଟର ପୋଲୋ ଖେଳୁଥିବା ବ୍ୟକ୍ତି: ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🤽🏼' => 'ୱାଟର ପୋଲୋ ଖେଳୁଥିବା ବ୍ୟକ୍ତି: ମଧ୍ୟମ-ହାଲକା ଚର୍ମ ରଙ୍ଗ',
     '🤽🏽' => 'ୱାଟର ପୋଲୋ ଖେଳୁଥିବା ବ୍ୟକ୍ତି: ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
@@ -2069,6 +2225,7 @@
     '🇨🇳' => 'ପତାକା: ଚୀନ୍‌',
     '🇨🇴' => 'ପତାକା: କଲମ୍ବିଆ',
     '🇨🇵' => 'ପତାକା: କ୍ଲିପରଟନ୍‌ ଦ୍ୱୀପ',
+    '🇨🇶' => 'ପତାକା: ସର୍କ୍‌',
     '🇨🇷' => 'ପତାକା: କୋଷ୍ଟା ରିକା',
     '🇨🇺' => 'ପତାକା: କ‍୍ୟୁବା',
     '🇨🇻' => 'ପତାକା: କେପ୍ ଭର୍ଦେ',
@@ -2282,13 +2439,6 @@
     '🏽' => 'ମଧ୍ୟମ ଚର୍ମ ରଙ୍ଗ',
     '🏾' => 'ମଧ୍ୟମ-ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
     '🏿' => 'ଗାଢ଼ ଚର୍ମ ରଙ୍ଗ',
-    '🪉' => 'ହାର୍ପ୍‌',
-    '🪏' => 'କୋଦାଳ',
-    '🪾' => 'ପତ୍ରବିହୀନ ଗଛ',
-    '🫆' => 'ଟିପଚିହ୍ନ',
-    '🫜' => 'ମୂଳ ଜାତୀୟ ପନିପରିବା',
-    '🫟' => 'ସ୍ପ୍ଲାଟର୍‌',
-    '🫩' => 'ଆଖି ତଳେ ବ‍୍ୟାଗ୍ ଥିବା ମୁହଁ',
     '😀' => 'ଦାନ୍ତ ଦେଖାଇ ହସୁଥିବା ମୁହଁ',
     '😃' => 'ବଡ ଆଖି ସହିତ ହସକୁରା ମୁହଁ',
     '😄' => 'ହସୁଥିବା ଆଖି ସହ ହସକୁରା ମୁହଁ',
@@ -2342,6 +2492,7 @@
     '😪' => 'ନିଦ୍ରାଳୁ ମୁହଁ',
     '🤤' => 'ପାଟିରୁ ଲାଳ ଗଡ଼ୁଥିବା ମୁହଁ',
     '😴' => 'ଶୋଇଥିବା ମୁଁହ',
+    '🫩' => 'ଆଖି ତଳେ ବ‍୍ୟାଗ୍ ଥିବା ମୁହଁ',
     '😷' => 'ଡାକ୍ତରୀ ମୁଖା ପିନ୍ଧା ମୁହଁ',
     '🤒' => 'ଥର୍ମୋମିଟର ସହିତ ମୁହଁ',
     '🤕' => 'ମୁଣ୍ଡ-ପଟି ପଡିବା ସହ ମୁହଁ',
@@ -2368,6 +2519,7 @@
     '😯' => 'ନିସ୍ତବ୍ଧ ମୁହଁ',
     '😲' => 'ବିସ୍ମିତ ମୁହଁ',
     '😳' => 'ରକ୍ତିମା ପଡିଥିବା ମୁହଁ',
+    '🫪' => 'ବିକୃତ ଚେହେରା',
     '🥺' => 'ବିନମ୍ର ମୁହଁ',
     '🥹' => 'ଲୁହ ଧରିଥିବା ମୁହଁ',
     '😦' => 'ପାଟି ଖୋଲାଥିବା ସହିତ ଭ୍ରୁକୁଞ୍ଚନ ମୁହଁ',
@@ -2439,6 +2591,7 @@
     '💋' => 'ଚୁମ୍ବନ ଚିହ୍ନ',
     '💯' => 'ଶହେ ପଏଣ୍ଟ',
     '💢' => 'କ୍ରୋଧ ସଙ୍କେତ',
+    '🫯' => 'ଧୂଆଁଧାର ଲଢ଼େଇ',
     '💥' => 'ଧକ୍କା',
     '💫' => 'ବିଚଳିତ',
     '💦' => 'ଝାଳ ବୁନ୍ଦାଗୁଡ଼ିକ',
@@ -2562,6 +2715,7 @@
     '🧞' => 'ଜିନି',
     '🧟' => 'ଜୋମ୍ବି',
     '🧌' => 'ଟ୍ରୋଲ୍',
+    '🫈' => 'ଲୋମଶ ପ୍ରାଣୀ',
     '💆' => 'ବ୍ୟକ୍ତି ମାଲିସ୍‌ ପ୍ରାପ୍ତ କରୁଛନ୍ତି',
     '💇' => 'ବ୍ୟକ୍ତି ହେୟାରକଟ୍‌ କରାଉଛନ୍ତି',
     '🚶' => 'ବ୍ୟକ୍ତି ଚାଲୁଛନ୍ତି',
@@ -2605,6 +2759,7 @@
     '🫂' => 'ଲୋକମାନେ ଆଲିଙ୍ଗନ କରୁଛନ୍ତି',
     '👪' => 'ପରିବାର',
     '👣' => 'ପାଦଚିହ୍ନଗୁଡ଼ିକ',
+    '🫆' => 'ଟିପଚିହ୍ନ',
     '🦰' => 'ନାଲି କେଶ',
     '🦱' => 'କୁଞ୍ଚିତ କେଶ',
     '🦳' => 'ଧଳା କେଶ',
@@ -2704,6 +2859,7 @@
     '🐳' => 'ଜଳ ବିଚ୍ଛୁରିତ କରୁଥିବା ତିମି',
     '🐋' => 'ତିମି',
     '🐬' => 'ଡଲଫିନ୍‌',
+    '🫍' => 'ଓର୍କା',
     '🦭' => 'ସିଲ୍‌',
     '🐟' => 'ମାଛ',
     '🐠' => 'ଗ୍ରୀଷ୍ମମଣ୍ଡଳୀୟ ମାଛ',
@@ -2713,6 +2869,11 @@
     '🐚' => 'କୁଣ୍ଡଳାକାର ଶାମୁକା',
     '🪸' => 'କୋରାଲ୍',
     '🪼' => 'ଜେଲ୍ଲିମାଛ',
+    '🦀' => 'କଙ୍କଡ଼ା',
+    '🦞' => 'ବଡ଼ ଚିଙ୍ଗୁଡି ମାଛ',
+    '🦐' => 'ଚିଙ୍ଗୁଡ଼ି',
+    '🦑' => 'ସ୍କୁଇଡ୍‍',
+    '🦪' => 'ଶାମୁକା',
     '🐌' => 'ଗେଣ୍ଡା',
     '🦋' => 'ପ୍ରଜାପତି',
     '🐛' => 'ଓଡ଼ଶ',
@@ -2757,6 +2918,7 @@
     '🪹' => 'ଖାଲି ବସା',
     '🪺' => 'ଅଣ୍ଡା ସହିତ ବସା',
     '🍄' => 'ଛତୁ',
+    '🪾' => 'ପତ୍ରବିହୀନ ଗଛ',
     '🍇' => 'ଅଙ୍ଗୁର',
     '🍈' => 'ଖରଭୁଜ',
     '🍉' => 'ତରଭୁଜ',
@@ -2793,6 +2955,7 @@
     '🌰' => 'ଚେଷ୍ଟନଟ୍‍',
     '🫚' => 'ଅଦା ମୂଳ',
     '🫛' => 'କଞ୍ଚା ମଟର',
+    '🫜' => 'ମୂଳ ଜାତୀୟ ପନିପରିବା',
     '🍞' => 'ପାଉଁରୁଟି',
     '🥐' => 'କ୍ରେଏସନ୍',
     '🥖' => 'ବାଗୁଏଟେ ପାଉଁରୁଟି',
@@ -2844,11 +3007,6 @@
     '🥟' => 'ଡମ୍ପଲିଂ',
     '🥠' => 'ଫର୍ଚୁନ୍‍ କୁକୀ',
     '🥡' => 'ନେଇଯିବା ବାକ୍ସ',
-    '🦀' => 'କଙ୍କଡ଼ା',
-    '🦞' => 'ବଡ଼ ଚିଙ୍ଗୁଡି ମାଛ',
-    '🦐' => 'ଚିଙ୍ଗୁଡ଼ି',
-    '🦑' => 'ସ୍କୁଇଡ୍‍',
-    '🦪' => 'ଶାମୁକା',
     '🍦' => 'ନରମ ଆଇସ୍‍ କ୍ରିମ୍‍',
     '🍧' => 'ଚୁସ୍‌କି',
     '🍨' => 'ଆଇସ୍‍ କ୍ରିମ୍‍',
@@ -2899,6 +3057,7 @@
     '🧭' => 'କମ୍ପାସ',
     '🏔' => 'ତୁଷାରାଛନ୍ନ ପର୍ବତ',
     '⛰' => 'ପର୍ବତ',
+    '🛘' => 'ଭୂସ୍ଖଳନ',
     '🌋' => 'ଭଲ୍କାନୋ',
     '🗻' => 'ମାଉଣ୍ଟ ଫୁଜି',
     '🏕' => 'ଶିବିର ସ୍ଥାପନ କରିବା',
@@ -3259,16 +3418,18 @@
     '🎧' => 'ହେଡଫୋନ୍‌',
     '📻' => 'ରେଡିଓ',
     '🎷' => 'ସାକ୍ସୋଫୋନ୍‌',
+    '🎺' => 'ତୁରୀ',
+    '🪊' => 'ଟ୍ରମ୍ବୋନ୍‌',
     '🪗' => 'ଏକ୍କୋର୍ଡ଼ିଓନ',
     '🎸' => 'ଗିଟାର୍',
     '🎹' => 'ସଙ୍ଗୀତ ସମ୍ବନ୍ଧୀୟ କୀବୋର୍ଡ୍‌',
-    '🎺' => 'ତୁରୀ',
     '🎻' => 'ଭାଓଲିନ୍',
     '🪕' => 'ବେଞ୍ଜୋ',
     '🥁' => 'ଡ୍ରମ୍‌',
     '🪘' => 'ଲମ୍ବା ଢୋଲ',
     '🪇' => 'ମାରାକାସ୍',
     '🪈' => 'ବଇଁଶି',
+    '🪉' => 'ହାର୍ପ୍‌',
     '📱' => 'ମୋବାଇଲ୍‌ ଫୋନ୍‌',
     '📲' => 'ତୀର ସହିତ ମୋବାଇଲ୍‌ ଫୋନ୍‌',
     '☎' => 'ଟେଲିଫୋନ୍‌',
@@ -3322,8 +3483,9 @@
     '📑' => 'ବୁକ୍‌ମାର୍କ୍‌ ଟ୍ୟାବ୍‌ଗୁଡ଼ିକ',
     '🔖' => 'ବୁକ୍‌ମାର୍କ୍‌',
     '🏷' => 'ଲେବୁଲ୍‌',
-    '💰' => 'ଟଙ୍କା ଥଳି',
     '🪙' => 'ମୁଦ୍ରା',
+    '💰' => 'ଟଙ୍କା ଥଳି',
+    '🪎' => 'ସିନ୍ଦୁକ',
     '💴' => 'ୟେନ୍‌ ବ୍ୟାଙ୍କନୋଟ୍‌',
     '💵' => 'ଡଲାର୍‌ ବ୍ୟାଙ୍କନୋଟ୍‌',
     '💶' => 'ୟୁରୋ ବ୍ୟାଙ୍କନୋଟ୍‌',
@@ -3406,6 +3568,7 @@
     '🧰' => 'ଟୁଲ‌ବକ୍ସ',
     '🧲' => 'ଚୁ୍ମ୍ବକ',
     '🪜' => 'ନିଶୁଣି',
+    '🪏' => 'କୋଦାଳ',
     '⚗' => 'ଏଲେମ୍ବିକ୍‌',
     '🧪' => 'ଟେଷ୍ଟ ଟ୍ୟୁବ',
     '🧫' => 'ପେଟ୍ରି ଡିସ୍‌',
@@ -3589,6 +3752,7 @@
     '✴' => 'ଆଠ-ମୁନିଆ ତାରା',
     '❇' => 'ଚମକ',
     '™' => 'ଟ୍ରେଡ୍‌ ଚିହ୍ନ',
+    '🫟' => 'ସ୍ପ୍ଲାଟର୍‌',
     '🔠' => 'ଇନପୁଟ୍‌ ଲାଟିନ୍‌ ବଡ଼ ଅକ୍ଷର',
     '🔡' => 'ଇନପୁଟ୍‌ ଲାଟିନ୍‌ ସାନ ଅକ୍ଷର',
     '🔢' => 'ଇନପୁଟ୍‌ ସଂଖ୍ୟାଗୁଡ଼ିକ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pa_arab.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pa_arab.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pa_arab.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pa_arab.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'چومنا: زنانی, زنانی, کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
     '👩🏿‍❤‍💋‍👩🏾' => 'چومنا: زنانی, زنانی, کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
     '👩🏿‍❤‍💋‍👩🏿' => 'چومنا: زنانی, زنانی, کالی رنگت آلی جلد',
+    '🧑🏻‍🫯‍🧑🏼' => 'کُشتی کردا بندہ: ہلکی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '🧑🏻‍🫯‍🧑🏽' => 'کُشتی کردا بندہ: ہلکی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '🧑🏻‍🫯‍🧑🏾' => 'کُشتی کردا بندہ: ہلکی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '🧑🏻‍🫯‍🧑🏿' => 'کُشتی کردا بندہ: ہلکی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '🧑🏼‍🫯‍🧑🏻' => 'کُشتی کردا بندہ: ہلکی درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '🧑🏼‍🫯‍🧑🏽' => 'کُشتی کردا بندہ: ہلکی درمیانی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '🧑🏼‍🫯‍🧑🏾' => 'کُشتی کردا بندہ: ہلکی درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '🧑🏼‍🫯‍🧑🏿' => 'کُشتی کردا بندہ: ہلکی درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '🧑🏽‍🫯‍🧑🏻' => 'کُشتی کردا بندہ: درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '🧑🏽‍🫯‍🧑🏼' => 'کُشتی کردا بندہ: درمیانی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '🧑🏽‍🫯‍🧑🏾' => 'کُشتی کردا بندہ: درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '🧑🏽‍🫯‍🧑🏿' => 'کُشتی کردا بندہ: درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '🧑🏾‍🫯‍🧑🏻' => 'کُشتی کردا بندہ: درمیانی کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '🧑🏾‍🫯‍🧑🏼' => 'کُشتی کردا بندہ: درمیانی کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '🧑🏾‍🫯‍🧑🏽' => 'کُشتی کردا بندہ: درمیانی کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '🧑🏾‍🫯‍🧑🏿' => 'کُشتی کردا بندہ: درمیانی کالی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '🧑🏿‍🫯‍🧑🏻' => 'کُشتی کردا بندہ: کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '🧑🏿‍🫯‍🧑🏼' => 'کُشتی کردا بندہ: کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '🧑🏿‍🫯‍🧑🏽' => 'کُشتی کردا بندہ: کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '🧑🏿‍🫯‍🧑🏾' => 'کُشتی کردا بندہ: کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
     '🧑🏻‍❤‍🧑🏼' => 'دل نال جوڑا: بالغ, بالغ, ہلکی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
     '🧑🏻‍❤‍🧑🏽' => 'دل نال جوڑا: بالغ, بالغ, ہلکی رنگت آلی جلد, درمیانی رنگت آلی جلد',
     '🧑🏻‍❤‍🧑🏾' => 'دل نال جوڑا: بالغ, بالغ, ہلکی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'دل نال جوڑا: بالغ, بالغ, کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
     '🧑🏿‍❤‍🧑🏽' => 'دل نال جوڑا: بالغ, بالغ, کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
     '🧑🏿‍❤‍🧑🏾' => 'دل نال جوڑا: بالغ, بالغ, کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '🧑🏻‍🐰‍🧑🏼' => 'بنی دے کناں نال پارٹی کردے لوکیں: ہلکی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '🧑🏻‍🐰‍🧑🏽' => 'بنی دے کناں نال پارٹی کردے لوکیں: ہلکی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '🧑🏻‍🐰‍🧑🏾' => 'بنی دے کناں نال پارٹی کردے لوکیں: ہلکی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '🧑🏻‍🐰‍🧑🏿' => 'بنی دے کناں نال پارٹی کردے لوکیں: ہلکی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '🧑🏼‍🐰‍🧑🏻' => 'بنی دے کناں نال پارٹی کردے لوکیں: ہلکی درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '🧑🏼‍🐰‍🧑🏽' => 'بنی دے کناں نال پارٹی کردے لوکیں: ہلکی درمیانی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '🧑🏼‍🐰‍🧑🏾' => 'بنی دے کناں نال پارٹی کردے لوکیں: ہلکی درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '🧑🏼‍🐰‍🧑🏿' => 'بنی دے کناں نال پارٹی کردے لوکیں: ہلکی درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '🧑🏽‍🐰‍🧑🏻' => 'بنی دے کناں نال پارٹی کردے لوکیں: درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '🧑🏽‍🐰‍🧑🏼' => 'بنی دے کناں نال پارٹی کردے لوکیں: درمیانی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '🧑🏽‍🐰‍🧑🏾' => 'بنی دے کناں نال پارٹی کردے لوکیں: درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '🧑🏽‍🐰‍🧑🏿' => 'بنی دے کناں نال پارٹی کردے لوکیں: درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '🧑🏾‍🐰‍🧑🏻' => 'بنی دے کناں نال پارٹی کردے لوکیں: درمیانی کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '🧑🏾‍🐰‍🧑🏼' => 'بنی دے کناں نال پارٹی کردے لوکیں: درمیانی کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '🧑🏾‍🐰‍🧑🏽' => 'بنی دے کناں نال پارٹی کردے لوکیں: درمیانی کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '🧑🏾‍🐰‍🧑🏿' => 'بنی دے کناں نال پارٹی کردے لوکیں: درمیانی کالی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '🧑🏿‍🐰‍🧑🏻' => 'بنی دے کناں نال پارٹی کردے لوکیں: کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '🧑🏿‍🐰‍🧑🏼' => 'بنی دے کناں نال پارٹی کردے لوکیں: کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '🧑🏿‍🐰‍🧑🏽' => 'بنی دے کناں نال پارٹی کردے لوکیں: کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '🧑🏿‍🐰‍🧑🏾' => 'بنی دے کناں نال پارٹی کردے لوکیں: کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👨🏻‍🫯‍👨🏼' => 'کُشتی لڑدے بندے: ہلکی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👨🏻‍🫯‍👨🏽' => 'کُشتی لڑدے بندے: ہلکی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👨🏻‍🫯‍👨🏾' => 'کُشتی لڑدے بندے: ہلکی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👨🏻‍🫯‍👨🏿' => 'کُشتی لڑدے بندے: ہلکی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👨🏼‍🫯‍👨🏻' => 'کُشتی لڑدے بندے: ہلکی درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👨🏼‍🫯‍👨🏽' => 'کُشتی لڑدے بندے: ہلکی درمیانی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👨🏼‍🫯‍👨🏾' => 'کُشتی لڑدے بندے: ہلکی درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👨🏼‍🫯‍👨🏿' => 'کُشتی لڑدے بندے: ہلکی درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👨🏽‍🫯‍👨🏻' => 'کُشتی لڑدے بندے: درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👨🏽‍🫯‍👨🏼' => 'کُشتی لڑدے بندے: درمیانی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👨🏽‍🫯‍👨🏾' => 'کُشتی لڑدے بندے: درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👨🏽‍🫯‍👨🏿' => 'کُشتی لڑدے بندے: درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👨🏾‍🫯‍👨🏻' => 'کُشتی لڑدے بندے: درمیانی کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👨🏾‍🫯‍👨🏼' => 'کُشتی لڑدے بندے: درمیانی کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👨🏾‍🫯‍👨🏽' => 'کُشتی لڑدے بندے: درمیانی کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👨🏾‍🫯‍👨🏿' => 'کُشتی لڑدے بندے: درمیانی کالی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👨🏿‍🫯‍👨🏻' => 'کُشتی لڑدے بندے: کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👨🏿‍🫯‍👨🏼' => 'کُشتی لڑدے بندے: کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👨🏿‍🫯‍👨🏽' => 'کُشتی لڑدے بندے: کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👨🏿‍🫯‍👨🏾' => 'کُشتی لڑدے بندے: کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
     '👨🏻‍❤‍👨🏻' => 'دل نال جوڑا: بندہ, بندہ, ہلکی رنگت آلی جلد',
     '👨🏻‍❤‍👨🏼' => 'دل نال جوڑا: بندہ, بندہ, ہلکی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
     '👨🏻‍❤‍👨🏽' => 'دل نال جوڑا: بندہ, بندہ, ہلکی رنگت آلی جلد, درمیانی رنگت آلی جلد',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'دل نال جوڑا: بندہ, بندہ, کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
     '👨🏿‍❤‍👨🏾' => 'دل نال جوڑا: بندہ, بندہ, کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
     '👨🏿‍❤‍👨🏿' => 'دل نال جوڑا: بندہ, بندہ, کالی رنگت آلی جلد',
+    '👨🏻‍🐰‍👨🏼' => 'خرگوش دے کناں آلا پارٹی کردا بندا: ہلکی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👨🏻‍🐰‍👨🏽' => 'خرگوش دے کناں آلا پارٹی کردا بندا: ہلکی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👨🏻‍🐰‍👨🏾' => 'خرگوش دے کناں آلا پارٹی کردا بندا: ہلکی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👨🏻‍🐰‍👨🏿' => 'خرگوش دے کناں آلا پارٹی کردا بندا: ہلکی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👨🏼‍🐰‍👨🏻' => 'خرگوش دے کناں آلا پارٹی کردا بندا: ہلکی درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👨🏼‍🐰‍👨🏽' => 'خرگوش دے کناں آلا پارٹی کردا بندا: ہلکی درمیانی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👨🏼‍🐰‍👨🏾' => 'خرگوش دے کناں آلا پارٹی کردا بندا: ہلکی درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👨🏼‍🐰‍👨🏿' => 'خرگوش دے کناں آلا پارٹی کردا بندا: ہلکی درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👨🏽‍🐰‍👨🏻' => 'خرگوش دے کناں آلا پارٹی کردا بندا: درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👨🏽‍🐰‍👨🏼' => 'خرگوش دے کناں آلا پارٹی کردا بندا: درمیانی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👨🏽‍🐰‍👨🏾' => 'خرگوش دے کناں آلا پارٹی کردا بندا: درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👨🏽‍🐰‍👨🏿' => 'خرگوش دے کناں آلا پارٹی کردا بندا: درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👨🏾‍🐰‍👨🏻' => 'خرگوش دے کناں آلا پارٹی کردا بندا: درمیانی کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👨🏾‍🐰‍👨🏼' => 'خرگوش دے کناں آلا پارٹی کردا بندا: درمیانی کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👨🏾‍🐰‍👨🏽' => 'خرگوش دے کناں آلا پارٹی کردا بندا: درمیانی کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👨🏾‍🐰‍👨🏿' => 'خرگوش دے کناں آلا پارٹی کردا بندا: درمیانی کالی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👨🏿‍🐰‍👨🏻' => 'خرگوش دے کناں آلا پارٹی کردا بندا: کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👨🏿‍🐰‍👨🏼' => 'خرگوش دے کناں آلا پارٹی کردا بندا: کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👨🏿‍🐰‍👨🏽' => 'خرگوش دے کناں آلا پارٹی کردا بندا: کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👨🏿‍🐰‍👨🏾' => 'خرگوش دے کناں آلا پارٹی کردا بندا: کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👩🏻‍🫯‍👩🏼' => 'کُشتی لڑدیاں زنانیاں: ہلکی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👩🏻‍🫯‍👩🏽' => 'کُشتی لڑدیاں زنانیاں: ہلکی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👩🏻‍🫯‍👩🏾' => 'کُشتی لڑدیاں زنانیاں: ہلکی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👩🏻‍🫯‍👩🏿' => 'کُشتی لڑدیاں زنانیاں: ہلکی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👩🏼‍🫯‍👩🏻' => 'کُشتی لڑدیاں زنانیاں: ہلکی درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👩🏼‍🫯‍👩🏽' => 'کُشتی لڑدیاں زنانیاں: ہلکی درمیانی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👩🏼‍🫯‍👩🏾' => 'کُشتی لڑدیاں زنانیاں: ہلکی درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👩🏼‍🫯‍👩🏿' => 'کُشتی لڑدیاں زنانیاں: ہلکی درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👩🏽‍🫯‍👩🏻' => 'کُشتی لڑدیاں زنانیاں: درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👩🏽‍🫯‍👩🏼' => 'کُشتی لڑدیاں زنانیاں: درمیانی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👩🏽‍🫯‍👩🏾' => 'کُشتی لڑدیاں زنانیاں: درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👩🏽‍🫯‍👩🏿' => 'کُشتی لڑدیاں زنانیاں: درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👩🏾‍🫯‍👩🏻' => 'کُشتی لڑدیاں زنانیاں: درمیانی کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👩🏾‍🫯‍👩🏼' => 'کُشتی لڑدیاں زنانیاں: درمیانی کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👩🏾‍🫯‍👩🏽' => 'کُشتی لڑدیاں زنانیاں: درمیانی کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👩🏾‍🫯‍👩🏿' => 'کُشتی لڑدیاں زنانیاں: درمیانی کالی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👩🏿‍🫯‍👩🏻' => 'کُشتی لڑدیاں زنانیاں: کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👩🏿‍🫯‍👩🏼' => 'کُشتی لڑدیاں زنانیاں: کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👩🏿‍🫯‍👩🏽' => 'کُشتی لڑدیاں زنانیاں: کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👩🏿‍🫯‍👩🏾' => 'کُشتی لڑدیاں زنانیاں: کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
     '👩🏻‍❤‍👨🏻' => 'دل نال جوڑا: زنانی, بندہ, ہلکی رنگت آلی جلد',
     '👩🏻‍❤‍👨🏼' => 'دل نال جوڑا: زنانی, بندہ, ہلکی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
     '👩🏻‍❤‍👨🏽' => 'دل نال جوڑا: زنانی, بندہ, ہلکی رنگت آلی جلد, درمیانی رنگت آلی جلد',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'دل نال جوڑا: زنانی, زنانی, کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
     '👩🏿‍❤‍👩🏾' => 'دل نال جوڑا: زنانی, زنانی, کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
     '👩🏿‍❤‍👩🏿' => 'دل نال جوڑا: زنانی, زنانی, کالی رنگت آلی جلد',
+    '👩🏻‍🐰‍👩🏼' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: ہلکی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👩🏻‍🐰‍👩🏽' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: ہلکی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👩🏻‍🐰‍👩🏾' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: ہلکی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👩🏻‍🐰‍👩🏿' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: ہلکی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👩🏼‍🐰‍👩🏻' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: ہلکی درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👩🏼‍🐰‍👩🏽' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: ہلکی درمیانی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👩🏼‍🐰‍👩🏾' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: ہلکی درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👩🏼‍🐰‍👩🏿' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: ہلکی درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👩🏽‍🐰‍👩🏻' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: درمیانی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👩🏽‍🐰‍👩🏼' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: درمیانی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👩🏽‍🐰‍👩🏾' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: درمیانی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
+    '👩🏽‍🐰‍👩🏿' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: درمیانی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👩🏾‍🐰‍👩🏻' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: درمیانی کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👩🏾‍🐰‍👩🏼' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: درمیانی کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👩🏾‍🐰‍👩🏽' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: درمیانی کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👩🏾‍🐰‍👩🏿' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: درمیانی کالی رنگت آلی جلد, کالی رنگت آلی جلد',
+    '👩🏿‍🐰‍👩🏻' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: کالی رنگت آلی جلد, ہلکی رنگت آلی جلد',
+    '👩🏿‍🐰‍👩🏼' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
+    '👩🏿‍🐰‍👩🏽' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
+    '👩🏿‍🐰‍👩🏾' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
     '🧑🏻‍🤝‍🧑🏻' => 'ਹੱਥ ਫੜਦੇ ਹੋਏ ਲੋਕ: ਗੋਰਾ ਰੰਗ',
     '🧑🏻‍🤝‍🧑🏼' => 'ਹੱਥ ਫੜਦੇ ਹੋਏ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧑🏻‍🤝‍🧑🏽' => 'ਹੱਥ ਫੜਦੇ ਹੋਏ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ਝੰਡਾ: ਸਕਾਟਲੈਂਡ',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'ਝੰਡਾ: ਵੇਲਸ',
     '🧑‍🧑‍🧒‍🧒' => 'ਪਰਿਵਾਰ: ਮਾਤਾ-ਪਿਤਾ, ਦੋ ਬੱਚੇ',
-    '🚶🏻‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏼‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏽‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏾‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏿‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏻‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏼‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏽‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏾‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏿‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏻‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏼‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏽‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏾‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏿‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏻‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏼‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏽‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏾‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏿‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏻‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏼‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏽‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏾‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏿‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏻‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏼‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏽‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏾‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏿‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏻‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏼‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏽‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏾‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏿‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏻‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏼‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏽‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏾‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏿‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏻‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏼‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏽‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏾‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏿‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏻‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏼‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏽‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏾‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏿‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏻‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏼‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏽‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏾‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏿‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏻‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏼‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏽‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏾‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏿‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏻‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏼‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏽‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏾‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏿‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏻‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏼‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏽‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏾‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏿‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏻‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏼‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏽‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏾‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏿‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏻‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏼‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏽‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏾‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏿‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏻‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏼‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏽‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏾‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏿‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏻‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏼‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏽‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏾‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏿‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏻‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏼‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏽‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏾‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏿‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏻‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏼‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏽‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏾‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏿‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏻‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏼‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏽‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏾‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏿‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏻‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏼‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏽‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏾‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏿‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏻‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏼‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏽‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏾‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏿‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏻‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏼‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏽‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏾‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏿‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏻‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏼‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏽‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏾‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏿‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏻‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏼‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏽‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏾‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏿‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏻‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏼‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏽‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏾‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏿‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏻‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏼‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏽‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏾‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏿‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏻‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏼‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏽‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏾‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏿‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏻‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏼‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏽‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏾‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏿‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
     '🫱🏻‍🫲🏼' => 'ہتھ ملانا: ہلکی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
     '🫱🏻‍🫲🏽' => 'ہتھ ملانا: ہلکی رنگت آلی جلد, درمیانی رنگت آلی جلد',
     '🫱🏻‍🫲🏾' => 'ہتھ ملانا: ہلکی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ہتھ ملانا: کالی رنگت آلی جلد, ہلکی درمیانی رنگت آلی جلد',
     '🫱🏿‍🫲🏽' => 'ہتھ ملانا: کالی رنگت آلی جلد, درمیانی رنگت آلی جلد',
     '🫱🏿‍🫲🏾' => 'ہتھ ملانا: کالی رنگت آلی جلد, درمیانی کالی رنگت آلی جلد',
-    '🚶‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🧎‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧑‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧑‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🏃‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
+    '🚶‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਸੱਜੇ ਪਾਸੇ',
+    '🚶‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਸੱਜੇ ਪਾਸੇ',
+    '🧎‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਸੱਜੇ ਪਾਸੇ',
+    '🧎‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਸੱਜੇ ਪਾਸੇ',
+    '🧑‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👨‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👩‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਸੱਜੇ ਪਾਸੇ',
+    '🧑‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👨‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👩‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਸੱਜੇ ਪਾਸੇ',
+    '🧑‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👨‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👩‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਸੱਜੇ ਪਾਸੇ',
+    '🏃‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਸੱਜੇ ਪਾਸੇ',
+    '🏃‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਸੱਜੇ ਪਾਸੇ',
     '👩‍❤‍👨' => 'دل نال جوڑا: زنانی, بندہ',
     '👨‍❤‍👨' => 'دل نال جوڑا: بندہ, بندہ',
     '👩‍❤‍👩' => 'دل نال جوڑا: زنانی, زنانی',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਗੰਜਾ ਸਿਰ',
     '🧑🏾‍🦲' => 'ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਗੰਜਾ ਸਿਰ',
     '🧑🏿‍🦲' => 'ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਗੰਜਾ ਸਿਰ',
+    '🧑🏻‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ: ਗੋਰਾ ਰੰਗ',
+    '🧑🏼‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏽‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ: ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏾‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🧑🏿‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ: ਕਾਲਾ ਰੰਗ',
     '🧔🏻‍♂' => 'ਆਦਮੀ: ਗੋਰਾ ਰੰਗ, ਦਾੜ੍ਹੀ',
     '🧔🏼‍♂' => 'ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਦਾੜ੍ਹੀ',
     '🧔🏽‍♂' => 'ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਦਾੜ੍ਹੀ',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'پیدل تُردی زنانی: درمیانی رنگت آلی جلد',
     '🚶🏾‍♀' => 'پیدل تُردی زنانی: درمیانی کالی رنگت آلی جلد',
     '🚶🏿‍♀' => 'پیدل تُردی زنانی: کالی رنگت آلی جلد',
-    '🚶🏻‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏼‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏽‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏾‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏿‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏻‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏼‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏽‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏾‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏿‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
     '🧍🏻‍♂' => 'ਖੜ੍ਹਾ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ',
     '🧍🏼‍♂' => 'ਖੜ੍ਹਾ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧍🏽‍♂' => 'ਖੜ੍ਹਾ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧎🏾‍♀' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '🧎🏿‍♀' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਕਾਲਾ ਰੰਗ',
-    '🧎🏻‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏼‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏽‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏾‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏿‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏻‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏼‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏽‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏾‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏿‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
     '🧑🏻‍🦯' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ',
     '🧑🏼‍🦯' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧑🏽‍🦯' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'بھجدی زنانی: درمیانی رنگت آلی جلد',
     '🏃🏾‍♀' => 'بھجدی زنانی: درمیانی کالی رنگت آلی جلد',
     '🏃🏿‍♀' => 'بھجدی زنانی: کالی رنگت آلی جلد',
-    '🏃🏻‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏼‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏽‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏾‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏿‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏻‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏼‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏽‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏾‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏿‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👯🏻‍♀' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: ہلکی رنگت آلی جلد',
+    '👯🏼‍♀' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: ہلکی درمیانی رنگت آلی جلد',
+    '👯🏽‍♀' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: درمیانی رنگت آلی جلد',
+    '👯🏾‍♀' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: درمیانی کالی رنگت آلی جلد',
+    '👯🏿‍♀' => 'خرگوش دے کناں آلی پارٹی کردی زنانی: کالی رنگت آلی جلد',
+    '👯🏻‍♂' => 'خرگوش دے کناں آلا پارٹی کردا بندا: ہلکی رنگت آلی جلد',
+    '👯🏼‍♂' => 'خرگوش دے کناں آلا پارٹی کردا بندا: ہلکی درمیانی رنگت آلی جلد',
+    '👯🏽‍♂' => 'خرگوش دے کناں آلا پارٹی کردا بندا: درمیانی رنگت آلی جلد',
+    '👯🏾‍♂' => 'خرگوش دے کناں آلا پارٹی کردا بندا: درمیانی کالی رنگت آلی جلد',
+    '👯🏿‍♂' => 'خرگوش دے کناں آلا پارٹی کردا بندا: کالی رنگت آلی جلد',
     '🧖🏻‍♂' => 'بھاپ نال بھرے کمرے وچ مرد: ہلکی رنگت آلی جلد',
     '🧖🏼‍♂' => 'بھاپ نال بھرے کمرے وچ مرد: ہلکی درمیانی رنگت آلی جلد',
     '🧖🏽‍♂' => 'بھاپ نال بھرے کمرے وچ مرد: درمیانی رنگت آلی جلد',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'چھکڑے دا پہیہ چلاندی زنانی: درمیانی رنگت آلی جلد',
     '🤸🏾‍♀' => 'چھکڑے دا پہیہ چلاندی زنانی: درمیانی کالی رنگت آلی جلد',
     '🤸🏿‍♀' => 'چھکڑے دا پہیہ چلاندی زنانی: کالی رنگت آلی جلد',
+    '🤼🏻‍♀' => 'کُشتی لڑدیاں زنانیاں: ہلکی رنگت آلی جلد',
+    '🤼🏼‍♀' => 'کُشتی لڑدیاں زنانیاں: ہلکی درمیانی رنگت آلی جلد',
+    '🤼🏽‍♀' => 'کُشتی لڑدیاں زنانیاں: درمیانی رنگت آلی جلد',
+    '🤼🏾‍♀' => 'کُشتی لڑدیاں زنانیاں: درمیانی کالی رنگت آلی جلد',
+    '🤼🏿‍♀' => 'کُشتی لڑدیاں زنانیاں: کالی رنگت آلی جلد',
+    '🤼🏻‍♂' => 'کُشتی لڑدے بندے: ہلکی رنگت آلی جلد',
+    '🤼🏼‍♂' => 'کُشتی لڑدے بندے: ہلکی درمیانی رنگت آلی جلد',
+    '🤼🏽‍♂' => 'کُشتی لڑدے بندے: درمیانی رنگت آلی جلد',
+    '🤼🏾‍♂' => 'کُشتی لڑدے بندے: درمیانی کالی رنگت آلی جلد',
+    '🤼🏿‍♂' => 'کُشتی لڑدے بندے: کالی رنگت آلی جلد',
     '🤽🏻‍♂' => 'آبی پولو کھیڈدا بندہ: ہلکی رنگت آلی جلد',
     '🤽🏼‍♂' => 'آبی پولو کھیڈدا بندہ: ہلکی درمیانی رنگت آلی جلد',
     '🤽🏽‍♂' => 'آبی پولو کھیڈدا بندہ: درمیانی رنگت آلی جلد',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ਔਰਤ: ਘੁੰਗਰਾਲੇ ਵਾਲ',
     '👩‍🦳' => 'ਔਰਤ: ਚਿੱਟੇ ਵਾਲ',
     '👩‍🦲' => 'ਔਰਤ: ਗੰਜਾ ਸਿਰ',
-    '🚶‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
+    '🚶‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
+    '🧎‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
+    '🏃‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
     '👨‍👦' => 'ٹبّر: بندہ, منڈا',
     '👨‍👧' => 'ٹبّر: بندہ, کڑی',
     '👩‍👦' => 'ٹبّر: زنانی, منڈا',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ',
     '🏃‍♂' => 'بھجدا مرد',
     '🏃‍♀' => 'بھجدی زنانی',
+    '🧑‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ',
     '👯‍♂' => 'خرگوش دے کناں آلا پارٹی کردا بندا',
     '👯‍♀' => 'خرگوش دے کناں آلی پارٹی کردی زنانی',
     '🧖‍♂' => 'بھاپ نال بھرے کمرے وچ مرد',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'اُڈدے ہوئے بیوپاری لباس وچ بندہ: درمیانی رنگت آلی جلد',
     '🕴🏾' => 'اُڈدے ہوئے بیوپاری لباس وچ بندہ: درمیانی کالی رنگت آلی جلد',
     '🕴🏿' => 'اُڈدے ہوئے بیوپاری لباس وچ بندہ: کالی رنگت آلی جلد',
+    '👯🏻' => 'بنی دے کناں نال پارٹی کردے لوکیں: ہلکی رنگت آلی جلد',
+    '👯🏼' => 'بنی دے کناں نال پارٹی کردے لوکیں: ہلکی درمیانی رنگت آلی جلد',
+    '👯🏽' => 'بنی دے کناں نال پارٹی کردے لوکیں: درمیانی رنگت آلی جلد',
+    '👯🏾' => 'بنی دے کناں نال پارٹی کردے لوکیں: درمیانی کالی رنگت آلی جلد',
+    '👯🏿' => 'بنی دے کناں نال پارٹی کردے لوکیں: کالی رنگت آلی جلد',
     '🧖🏻' => 'بھاپ نال بھرے کمرے وچ بندا: ہلکی رنگت آلی جلد',
     '🧖🏼' => 'بھاپ نال بھرے کمرے وچ بندا: ہلکی درمیانی رنگت آلی جلد',
     '🧖🏽' => 'بھاپ نال بھرے کمرے وچ بندا: درمیانی رنگت آلی جلد',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'چھکڑے دا پہيا چلاندا بندہ: درمیانی رنگت آلی جلد',
     '🤸🏾' => 'چھکڑے دا پہيا چلاندا بندہ: درمیانی کالی رنگت آلی جلد',
     '🤸🏿' => 'چھکڑے دا پہيا چلاندا بندہ: کالی رنگت آلی جلد',
+    '🤼🏻' => 'کُشتی کردا بندہ: ہلکی رنگت آلی جلد',
+    '🤼🏼' => 'کُشتی کردا بندہ: ہلکی درمیانی رنگت آلی جلد',
+    '🤼🏽' => 'کُشتی کردا بندہ: درمیانی رنگت آلی جلد',
+    '🤼🏾' => 'کُشتی کردا بندہ: درمیانی کالی رنگت آلی جلد',
+    '🤼🏿' => 'کُشتی کردا بندہ: کالی رنگت آلی جلد',
     '🤽🏻' => 'واٹر پولو کھیڈدا بندہ: ہلکی رنگت آلی جلد',
     '🤽🏼' => 'واٹر پولو کھیڈدا بندہ: ہلکی درمیانی رنگت آلی جلد',
     '🤽🏽' => 'واٹر پولو کھیڈدا بندہ: درمیانی رنگت آلی جلد',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'ਝੰਡਾ: ਚੀਨ',
     '🇨🇴' => 'ਝੰਡਾ: ਕੋਲੰਬੀਆ',
     '🇨🇵' => 'ਝੰਡਾ: ਕਲਿੱਪਰਟਨ ਟਾਪੂ',
+    '🇨🇶' => 'ਝੰਡਾ: ਸਾਰਕ',
     '🇨🇷' => 'ਝੰਡਾ: ਕੋਸਟਾ ਰੀਕਾ',
     '🇨🇺' => 'ਝੰਡਾ: ਕਿਊਬਾ',
     '🇨🇻' => 'ਝੰਡਾ: ਕੇਪ ਵਰਡੇ',
@@ -2244,7 +2401,7 @@
     '🇮🇹' => 'ਝੰਡਾ: ਇਟਲੀ',
     '🇯🇪' => 'ਝੰਡਾ: ਜਰਸੀ',
     '🇯🇲' => 'ਝੰਡਾ: ਜਮਾਇਕਾ',
-    '🇯🇴' => 'ਝੰਡਾ: ਜਾਰਡਨ',
+    '🇯🇴' => 'ਝੰਡਾ: ਜੌਰਡਨ',
     '🇯🇵' => 'ਝੰਡਾ: ਜਪਾਨ',
     '🇰🇪' => 'ਝੰਡਾ: ਕੀਨੀਆ',
     '🇰🇬' => 'ਝੰਡਾ: ਕਿਰਗਿਜ਼ਸਤਾਨ',
@@ -2252,13 +2409,13 @@
     '🇰🇮' => 'ਝੰਡਾ: ਕਿਰਬਾਤੀ',
     '🇰🇲' => 'ਝੰਡਾ: ਕੋਮੋਰੋਸ',
     '🇰🇳' => 'ਝੰਡਾ: ਸੇਂਟ ਕਿਟਸ ਐਂਡ ਨੇਵਿਸ',
-    '🇰🇵' => 'ਝੰਡਾ: ਉੱਤਰ ਕੋਰੀਆ',
-    '🇰🇷' => 'ਝੰਡਾ: ਦੱਖਣ ਕੋਰੀਆ',
+    '🇰🇵' => 'ਝੰਡਾ: ਉੱਤਰੀ ਕੋਰੀਆ',
+    '🇰🇷' => 'ਝੰਡਾ: ਦੱਖਣੀ ਕੋਰੀਆ',
     '🇰🇼' => 'ਝੰਡਾ: ਕੁਵੈਤ',
     '🇰🇾' => 'ਝੰਡਾ: ਕੇਮੈਨ ਟਾਪੂ',
     '🇰🇿' => 'ਝੰਡਾ: ਕਜ਼ਾਖਸਤਾਨ',
     '🇱🇦' => 'ਝੰਡਾ: ਲਾਓਸ',
-    '🇱🇧' => 'ਝੰਡਾ: ਲੈਬਨਾਨ',
+    '🇱🇧' => 'ਝੰਡਾ: ਲਿਬਨਾਨ',
     '🇱🇨' => 'ਝੰਡਾ: ਸੇਂਟ ਲੂਸੀਆ',
     '🇱🇮' => 'ਝੰਡਾ: ਲਿਚੇਂਸਟਾਇਨ',
     '🇱🇰' => 'ਝੰਡਾ: ਸ੍ਰੀ ਲੰਕਾ',
@@ -2314,7 +2471,7 @@
     '🇵🇲' => 'ਝੰਡਾ: ਸੇਂਟ ਪੀਅਰੇ ਐਂਡ ਮਿਕੇਲਨ',
     '🇵🇳' => 'ਝੰਡਾ: ਪਿਟਕੇਰਨ ਟਾਪੂ',
     '🇵🇷' => 'ਝੰਡਾ: ਪਿਊਰਟੋ ਰਿਕੋ',
-    '🇵🇸' => 'ਝੰਡਾ: ਫਿਲੀਸਤੀਨੀ ਇਲਾਕਾ',
+    '🇵🇸' => 'ਝੰਡਾ: ਫਿਲਸਤੀਨੀ ਖਿੱਤੇ',
     '🇵🇹' => 'ਝੰਡਾ: ਪੁਰਤਗਾਲ',
     '🇵🇼' => 'ਝੰਡਾ: ਪਲਾਉ',
     '🇵🇾' => 'ਝੰਡਾ: ਪੈਰਾਗਵੇ',
@@ -2366,7 +2523,7 @@
     '🇺🇬' => 'ਝੰਡਾ: ਯੂਗਾਂਡਾ',
     '🇺🇲' => 'ਝੰਡਾ: ਯੂ.ਐੱਸ. ਦੂਰ-ਦੁਰਾਡੇ ਟਾਪੂ',
     '🇺🇳' => 'ਝੰਡਾ: ਸੰਯੁਕਤ ਰਾਸ਼ਟਰ',
-    '🇺🇸' => 'ਝੰਡਾ: ਸੰਯੁਕਤ ਰਾਜ',
+    '🇺🇸' => 'ਝੰਡਾ: ਸੰਯੁਕਤ ਰਾਜ (ਅਮਰੀਕਾ)',
     '🇺🇾' => 'ਝੰਡਾ: ਉਰੂਗਵੇ',
     '🇺🇿' => 'ਝੰਡਾ: ਉਜ਼ਬੇਕਿਸਤਾਨ',
     '🇻🇦' => 'ਝੰਡਾ: ਵੈਟੀਕਨ ਸਿਟੀ',
@@ -2390,13 +2547,6 @@
     '🏽' => 'درمیانی رنگت آلی جلد',
     '🏾' => 'درمیانی کالی رنگت آلی جلد',
     '🏿' => 'کالی رنگت آلی جلد',
-    '🪉' => 'ਹਾਰਪ',
-    '🪏' => 'ਬੇਲਚਾ',
-    '🪾' => 'ਪੱਤੇ ਰਹਿਤ ਰੁੱਖ',
-    '🫆' => 'ਉਂਗਲਾਂ ਦੇ ਨਿਸ਼ਾਨ',
-    '🫜' => 'ਚੁਕੰਦਰ',
-    '🫟' => 'ਛਪਾਕਾ',
-    '🫩' => 'ਸੁਜੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਚਿਹਰਾ',
     '😀' => 'دند پیسدی شکل',
     '😃' => 'کھلے منہ نال مسکراندی شکل',
     '😄' => 'کھلے مُنہ اتے مسکراندیاں اکھاں نال مسکراندی شکل',
@@ -2450,6 +2600,7 @@
     '😪' => 'سُتی شکل',
     '🤤' => 'رال ٹپکاندی شکل',
     '😴' => 'سوندی شکل',
+    '🫩' => 'ਸੁਜੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਚਿਹਰਾ',
     '😷' => 'طبی ماسک نال شکل',
     '🤒' => 'تھرمامیٹر نال شکل',
     '🤕' => 'سر آلی پٹی نال شکل',
@@ -2476,6 +2627,7 @@
     '😯' => 'منہ بند کیتی شکل',
     '😲' => 'حیرت زدہ شکل',
     '😳' => 'جوشیلی شکل',
+    '🫪' => 'ਫ਼ਿਕਰਮੰਦ ਚਿਹਰਾ',
     '🥺' => 'ਸਫ਼ਾਈ ਦਿੰਦਾ ਚਿਹਰਾ',
     '🥹' => 'ਹੰਝੂ ਰੋਕਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਚਿਹਰਾ',
     '😦' => 'کھلے منہ نال تیوری آلی شکل',
@@ -2547,6 +2699,7 @@
     '💋' => 'چومی دا نشان',
     '💯' => 'سو نکات',
     '💢' => 'غصے دی علامت',
+    '🫯' => 'ਹੱਥੋਪਾਈ',
     '💥' => 'ٹکرونا',
     '💫' => 'بدحواس',
     '💦' => 'پسینے دا نیکا جیہا قطرہ',
@@ -2670,6 +2823,7 @@
     '🧞' => 'جن',
     '🧟' => 'زومبی',
     '🧌' => 'ਟਰੋਲ',
+    '🫈' => 'ਜੱਤ ਵਾਲਾ ਪ੍ਰਾਣੀ',
     '💆' => 'پیغام لیندا بندہ',
     '💇' => 'حجامت کراندا بندہ',
     '🚶' => 'ٹردا بندہ',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ਗਲੇ ਮਿਲ ਰਹੇ ਲੋਕ',
     '👪' => 'ٹبّر',
     '👣' => 'پیرا دے نشان',
+    '🫆' => 'ਉਂਗਲਾਂ ਦੇ ਨਿਸ਼ਾਨ',
     '🦰' => 'ਲਾਲ ਰੰਗ ਦੇ ਵਾਲ',
     '🦱' => 'ਘੁੰਗਰਾਲੇ ਵਾਲ',
     '🦳' => 'ਚਿੱਟੇ ਵਾਲ',
@@ -2812,6 +2967,7 @@
     '🐳' => 'پانی وچ اُچھلدی وہیل',
     '🐋' => 'وہیل',
     '🐬' => 'ڈولفن',
+    '🫍' => 'ਓਰਕਾ ਮੱਛੀ',
     '🦭' => 'ਸੀਲ ਮੱਛੀ',
     '🐟' => 'مچھی',
     '🐠' => 'گرم علاقے دی مچھی',
@@ -2821,6 +2977,11 @@
     '🐚' => 'مرغولے دی شکل آلا شیل',
     '🪸' => 'ਕੋਰਲ',
     '🪼' => 'ਜੈਲੀਫਿਸ਼',
+    '🦀' => 'اخبوط',
+    '🦞' => 'ਝੀਂਗਾ ਮੱਛੀ',
+    '🦐' => 'جھینگا',
+    '🦑' => 'قیر ماہی',
+    '🦪' => 'ਸਿੱਪ',
     '🐌' => 'گھونگا',
     '🦋' => 'تتلی',
     '🐛' => 'کھٹمل',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ਖਾਲੀ ਆਲ੍ਹਣਾ',
     '🪺' => 'ਆਂਡਿਆਂ ਵਾਲਾ ਆਲ੍ਹਣਾ',
     '🍄' => 'کھمبی',
+    '🪾' => 'ਪੱਤੇ ਰਹਿਤ ਰੁੱਖ',
     '🍇' => 'انگور',
     '🍈' => 'خربوزہ',
     '🍉' => 'دوانا',
@@ -2901,6 +3063,7 @@
     '🌰' => 'شاہ بلوط',
     '🫚' => 'ਅਦਰਕ ਦੀ ਜੜ੍ਹ',
     '🫛' => 'ਮਟਰ ਦੀ ਫਲੀ',
+    '🫜' => 'ਚੁਕੰਦਰ',
     '🍞' => 'روٹی',
     '🥐' => 'آٹے دی ہلالی شکل دی روٹی',
     '🥖' => 'کڑی ہوئی روٹی',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ڈمپلنگ',
     '🥠' => 'فارچیون کُکی',
     '🥡' => 'ٹیک آؤٹ باکس',
-    '🦀' => 'اخبوط',
-    '🦞' => 'ਝੀਂਗਾ ਮੱਛੀ',
-    '🦐' => 'جھینگا',
-    '🦑' => 'قیر ماہی',
-    '🦪' => 'ਸਿੱਪ',
     '🍦' => 'نرم آئس کریم',
     '🍧' => 'منڈوی برف',
     '🍨' => 'آئس کریم',
@@ -3007,6 +3165,7 @@
     '🧭' => 'ਕੰਪਾਸ',
     '🏔' => 'برف نال-ڈھکے پہاڑ',
     '⛰' => 'پہاڑ',
+    '🛘' => 'ਪਹਾੜ ਖਿਸਕਣਾ',
     '🌋' => 'آتش فشاں',
     '🗻' => 'ماؤنٹ فجی',
     '🏕' => 'خیمہ زنی',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ہیڈفون',
     '📻' => 'ريڈيو',
     '🎷' => 'سیکسو فون',
+    '🎺' => 'شہناہی',
+    '🪊' => 'ਟ੍ਰੋਂਬੋਨ',
     '🪗' => 'ਅਕਾਰਡੀਅਨ',
     '🎸' => 'گٹار',
     '🎹' => 'موسیقی دا کلیدی تختہ',
-    '🎺' => 'شہناہی',
     '🎻' => 'وائلن',
     '🪕' => 'ਬੈਂਜੋ',
     '🥁' => 'ڈھول',
     '🪘' => 'ਲੰਬਾ ਢੋਲ',
     '🪇' => 'ਮਰੈਕਜ਼',
     '🪈' => 'ਬੰਸਰੀ',
+    '🪉' => 'ਹਾਰਪ',
     '📱' => 'موبائل فون',
     '📲' => 'تیر نال موبائل فون',
     '☎' => 'ٹیلی فون',
@@ -3430,8 +3591,9 @@
     '📑' => 'بک مارک ٹیبز',
     '🔖' => 'بک مارک',
     '🏷' => 'سرنامہ',
-    '💰' => 'پیسیاں آلا بستہ',
     '🪙' => 'ਸਿੱਕਾ',
+    '💰' => 'پیسیاں آلا بستہ',
+    '🪎' => 'ਖਜਾਨਾ',
     '💴' => 'ین بینک نوٹ',
     '💵' => 'ڈالر بینک نوٹ',
     '💶' => 'یورو بینک نوٹ',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ਐਜ਼ਾਰਾਂ ਦਾ ਬਕਸਾ',
     '🧲' => 'ਚੁੰਬਕ',
     '🪜' => 'ਪੌੜੀ',
+    '🪏' => 'ਬੇਲਚਾ',
     '⚗' => 'قَرنبیق',
     '🧪' => 'ਜਾਂਚ ਨਲੀ',
     '🧫' => 'ਪੈਟਰੀ ਡਿਸ਼',
@@ -3697,6 +3860,7 @@
     '✴' => 'آٹھ-اشارہ کیتے ستارے',
     '❇' => 'جگ مگ کرنا',
     '™' => 'تجارت دا نشان',
+    '🫟' => 'ਛਪਾਕਾ',
     '🔠' => 'وڈے رومی حرف ان پٹ کرو',
     '🔡' => 'نیکے رومی حروف ان پٹ کرو',
     '🔢' => 'نمبرز ان پٹ کرو',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pa.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pa.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pa.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pa.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ਚੁੰਮੀ: ਔਰਤ, ਔਰਤ, ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
     '👩🏿‍❤‍💋‍👩🏾' => 'ਚੁੰਮੀ: ਔਰਤ, ਔਰਤ, ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '👩🏿‍❤‍💋‍👩🏿' => 'ਚੁੰਮੀ: ਔਰਤ, ਔਰਤ, ਕਾਲਾ ਰੰਗ',
+    '🧑🏻‍🫯‍🧑🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏻‍🫯‍🧑🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏻‍🫯‍🧑🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🧑🏻‍🫯‍🧑🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '🧑🏼‍🫯‍🧑🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '🧑🏼‍🫯‍🧑🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏼‍🫯‍🧑🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🧑🏼‍🫯‍🧑🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '🧑🏽‍🫯‍🧑🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '🧑🏽‍🫯‍🧑🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਕਣਕਵੰਨਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏽‍🫯‍🧑🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🧑🏽‍🫯‍🧑🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '🧑🏾‍🫯‍🧑🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '🧑🏾‍🫯‍🧑🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏾‍🫯‍🧑🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏾‍🫯‍🧑🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '🧑🏿‍🫯‍🧑🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '🧑🏿‍🫯‍🧑🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏿‍🫯‍🧑🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏿‍🫯‍🧑🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '🧑🏻‍❤‍🧑🏼' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਵਿਅਕਤੀ, ਵਿਅਕਤੀ, ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧑🏻‍❤‍🧑🏽' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਵਿਅਕਤੀ, ਵਿਅਕਤੀ, ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧑🏻‍❤‍🧑🏾' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਵਿਅਕਤੀ, ਵਿਅਕਤੀ, ਗੋਰਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਵਿਅਕਤੀ, ਵਿਅਕਤੀ, ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧑🏿‍❤‍🧑🏽' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਵਿਅਕਤੀ, ਵਿਅਕਤੀ, ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧑🏿‍❤‍🧑🏾' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਵਿਅਕਤੀ, ਵਿਅਕਤੀ, ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🧑🏻‍🐰‍🧑🏼' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏻‍🐰‍🧑🏽' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏻‍🐰‍🧑🏾' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🧑🏻‍🐰‍🧑🏿' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '🧑🏼‍🐰‍🧑🏻' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '🧑🏼‍🐰‍🧑🏽' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏼‍🐰‍🧑🏾' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🧑🏼‍🐰‍🧑🏿' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '🧑🏽‍🐰‍🧑🏻' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '🧑🏽‍🐰‍🧑🏼' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਕਣਕਵੰਨਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏽‍🐰‍🧑🏾' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🧑🏽‍🐰‍🧑🏿' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '🧑🏾‍🐰‍🧑🏻' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '🧑🏾‍🐰‍🧑🏼' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏾‍🐰‍🧑🏽' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏾‍🐰‍🧑🏿' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '🧑🏿‍🐰‍🧑🏻' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '🧑🏿‍🐰‍🧑🏼' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏿‍🐰‍🧑🏽' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏿‍🐰‍🧑🏾' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👨🏻‍🫯‍👨🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏻‍🫯‍👨🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏻‍🫯‍👨🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👨🏻‍🫯‍👨🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👨🏼‍🫯‍👨🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👨🏼‍🫯‍👨🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏼‍🫯‍👨🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👨🏼‍🫯‍👨🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👨🏽‍🫯‍👨🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👨🏽‍🫯‍👨🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏽‍🫯‍👨🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👨🏽‍🫯‍👨🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👨🏾‍🫯‍👨🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👨🏾‍🫯‍👨🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏾‍🫯‍👨🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏾‍🫯‍👨🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👨🏿‍🫯‍👨🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👨🏿‍🫯‍👨🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏿‍🫯‍👨🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏿‍🫯‍👨🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '👨🏻‍❤‍👨🏻' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਆਦਮੀ, ਆਦਮੀ, ਗੋਰਾ ਰੰਗ',
     '👨🏻‍❤‍👨🏼' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਆਦਮੀ, ਆਦਮੀ, ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '👨🏻‍❤‍👨🏽' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਆਦਮੀ, ਆਦਮੀ, ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਆਦਮੀ, ਆਦਮੀ, ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
     '👨🏿‍❤‍👨🏾' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਆਦਮੀ, ਆਦਮੀ, ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '👨🏿‍❤‍👨🏿' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਆਦਮੀ, ਆਦਮੀ, ਕਾਲਾ ਰੰਗ',
+    '👨🏻‍🐰‍👨🏼' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏻‍🐰‍👨🏽' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏻‍🐰‍👨🏾' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👨🏻‍🐰‍👨🏿' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👨🏼‍🐰‍👨🏻' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👨🏼‍🐰‍👨🏽' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏼‍🐰‍👨🏾' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👨🏼‍🐰‍👨🏿' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👨🏽‍🐰‍👨🏻' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👨🏽‍🐰‍👨🏼' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏽‍🐰‍👨🏾' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👨🏽‍🐰‍👨🏿' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👨🏾‍🐰‍👨🏻' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👨🏾‍🐰‍👨🏼' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏾‍🐰‍👨🏽' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏾‍🐰‍👨🏿' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👨🏿‍🐰‍👨🏻' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👨🏿‍🐰‍👨🏼' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏿‍🐰‍👨🏽' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👨🏿‍🐰‍👨🏾' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👩🏻‍🫯‍👩🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏻‍🫯‍👩🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏻‍🫯‍👩🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਗੋਰਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👩🏻‍🫯‍👩🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਗੋਰਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👩🏼‍🫯‍👩🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👩🏼‍🫯‍👩🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏼‍🫯‍👩🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👩🏼‍🫯‍👩🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👩🏽‍🫯‍👩🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👩🏽‍🫯‍👩🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਣਕਵੰਨਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏽‍🫯‍👩🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👩🏽‍🫯‍👩🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👩🏾‍🫯‍👩🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👩🏾‍🫯‍👩🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏾‍🫯‍👩🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏾‍🫯‍👩🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👩🏿‍🫯‍👩🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👩🏿‍🫯‍👩🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏿‍🫯‍👩🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏿‍🫯‍👩🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '👩🏻‍❤‍👨🏻' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਔਰਤ, ਆਦਮੀ, ਗੋਰਾ ਰੰਗ',
     '👩🏻‍❤‍👨🏼' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਔਰਤ, ਆਦਮੀ, ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '👩🏻‍❤‍👨🏽' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਔਰਤ, ਆਦਮੀ, ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਔਰਤ, ਔਰਤ, ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
     '👩🏿‍❤‍👩🏾' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਔਰਤ, ਔਰਤ, ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '👩🏿‍❤‍👩🏿' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਔਰਤ, ਔਰਤ, ਕਾਲਾ ਰੰਗ',
+    '👩🏻‍🐰‍👩🏼' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏻‍🐰‍👩🏽' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏻‍🐰‍👩🏾' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਗੋਰਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👩🏻‍🐰‍👩🏿' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਗੋਰਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👩🏼‍🐰‍👩🏻' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👩🏼‍🐰‍👩🏽' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏼‍🐰‍👩🏾' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👩🏼‍🐰‍👩🏿' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👩🏽‍🐰‍👩🏻' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਣਕਵੰਨਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👩🏽‍🐰‍👩🏼' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਣਕਵੰਨਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏽‍🐰‍👩🏾' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਣਕਵੰਨਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👩🏽‍🐰‍👩🏿' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਣਕਵੰਨਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👩🏾‍🐰‍👩🏻' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👩🏾‍🐰‍👩🏼' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏾‍🐰‍👩🏽' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏾‍🐰‍👩🏿' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਕਾਲਾ ਰੰਗ',
+    '👩🏿‍🐰‍👩🏻' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਾਲਾ ਰੰਗ, ਗੋਰਾ ਰੰਗ',
+    '👩🏿‍🐰‍👩🏼' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏿‍🐰‍👩🏽' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👩🏿‍🐰‍👩🏾' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '🧑🏻‍🤝‍🧑🏻' => 'ਹੱਥ ਫੜਦੇ ਹੋਏ ਲੋਕ: ਗੋਰਾ ਰੰਗ',
     '🧑🏻‍🤝‍🧑🏼' => 'ਹੱਥ ਫੜਦੇ ਹੋਏ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧑🏻‍🤝‍🧑🏽' => 'ਹੱਥ ਫੜਦੇ ਹੋਏ ਲੋਕ: ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ਝੰਡਾ: ਸਕਾਟਲੈਂਡ',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'ਝੰਡਾ: ਵੇਲਸ',
     '🧑‍🧑‍🧒‍🧒' => 'ਪਰਿਵਾਰ: ਮਾਤਾ-ਪਿਤਾ, ਦੋ ਬੱਚੇ',
-    '🚶🏻‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏼‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏽‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏾‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏿‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏻‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏼‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏽‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏾‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏿‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏻‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏼‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏽‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏾‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏿‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏻‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏼‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏽‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏾‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏿‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏻‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏼‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏽‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏾‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏿‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏻‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏼‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏽‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏾‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏿‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏻‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏼‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏽‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏾‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏿‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏻‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏼‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏽‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏾‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏿‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏻‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏼‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏽‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏾‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏿‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏻‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏼‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏽‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏾‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏿‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏻‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏼‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏽‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏾‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑🏿‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏻‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏼‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏽‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏾‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨🏿‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏻‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏼‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏽‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏾‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '👩🏿‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏻‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏼‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏽‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏾‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏿‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏻‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏼‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏽‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏾‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏿‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏻‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏼‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏽‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏾‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏿‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏻‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏼‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏽‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏾‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏿‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏻‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏼‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏽‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏾‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏿‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏻‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏼‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏽‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏾‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏿‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏻‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏼‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏽‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏾‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏿‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏻‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏼‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏽‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏾‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏿‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏻‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏼‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏽‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏾‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏿‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏻‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏼‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏽‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏾‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏿‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏻‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏼‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏽‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏾‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏿‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏻‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏼‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏽‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏾‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏿‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏻‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏼‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏽‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏾‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧑🏿‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏻‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏼‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏽‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏾‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👨🏿‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏻‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏼‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏽‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏾‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👩🏿‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏻‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏼‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏽‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏾‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏿‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏻‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏼‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏽‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏾‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏿‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
     '🫱🏻‍🫲🏼' => 'ਹੱਥ-ਮਿਲਾਉਣਾ: ਗੋਰਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🫱🏻‍🫲🏽' => 'ਹੱਥ-ਮਿਲਾਉਣਾ: ਗੋਰਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
     '🫱🏻‍🫲🏾' => 'ਹੱਥ-ਮਿਲਾਉਣਾ: ਗੋਰਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ਹੱਥ-ਮਿਲਾਉਣਾ: ਕਾਲਾ ਰੰਗ, ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🫱🏿‍🫲🏽' => 'ਹੱਥ-ਮਿਲਾਉਣਾ: ਕਾਲਾ ਰੰਗ, ਕਣਕਵੰਨਾ ਰੰਗ',
     '🫱🏿‍🫲🏾' => 'ਹੱਥ-ਮਿਲਾਉਣਾ: ਕਾਲਾ ਰੰਗ, ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
-    '🚶‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
-    '🧎‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧎‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧑‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧑‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🧑‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '👨‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ ਸੱਜੇ ਪਾਸੇ',
-    '👩‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ ਸੱਜੇ ਪਾਸੇ',
-    '🏃‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼ ਸੱਜੇ ਪਾਸੇ',
+    '🚶‍♀‍➡' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਸੱਜੇ ਪਾਸੇ',
+    '🚶‍♂‍➡' => 'ਪੈਦਲ ਚਲਦਾ ਪੁਰਸ਼: ਸੱਜੇ ਪਾਸੇ',
+    '🧎‍♀‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਸੱਜੇ ਪਾਸੇ',
+    '🧎‍♂‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਆਦਮੀ: ਸੱਜੇ ਪਾਸੇ',
+    '🧑‍🦯‍➡' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👨‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲਾ ਆਦਮੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👩‍🦯‍➡' => 'ਪ੍ਰੋਬਿੰਗ ਕੈਨ ਵਾਲੀ ਔਰਤ: ਸੱਜੇ ਪਾਸੇ',
+    '🧑‍🦼‍➡' => 'ਮੋਟਰ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👨‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👩‍🦼‍➡' => 'ਮੋਟਰ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਸੱਜੇ ਪਾਸੇ',
+    '🧑‍🦽‍➡' => 'ਹੱਥੀਂ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ਵਿੱਚ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👨‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠਾ ਆਦਮੀ: ਸੱਜੇ ਪਾਸੇ',
+    '👩‍🦽‍➡' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ: ਸੱਜੇ ਪਾਸੇ',
+    '🏃‍♀‍➡' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਸੱਜੇ ਪਾਸੇ',
+    '🏃‍♂‍➡' => 'ਦੌੜਦਾ ਪੁਰਸ਼: ਸੱਜੇ ਪਾਸੇ',
     '👩‍❤‍👨' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਔਰਤ, ਆਦਮੀ',
     '👨‍❤‍👨' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਆਦਮੀ, ਆਦਮੀ',
     '👩‍❤‍👩' => 'ਦਿਲ ਨਾਲ ਪ੍ਰੇਮੀ ਜੋੜਾ: ਔਰਤ, ਔਰਤ',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਗੰਜਾ ਸਿਰ',
     '🧑🏾‍🦲' => 'ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਗੰਜਾ ਸਿਰ',
     '🧑🏿‍🦲' => 'ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਗੰਜਾ ਸਿਰ',
+    '🧑🏻‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ: ਗੋਰਾ ਰੰਗ',
+    '🧑🏼‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏽‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ: ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🧑🏾‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🧑🏿‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ: ਕਾਲਾ ਰੰਗ',
     '🧔🏻‍♂' => 'ਆਦਮੀ: ਗੋਰਾ ਰੰਗ, ਦਾੜ੍ਹੀ',
     '🧔🏼‍♂' => 'ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਦਾੜ੍ਹੀ',
     '🧔🏽‍♂' => 'ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਦਾੜ੍ਹੀ',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
     '🚶🏾‍♀' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '🚶🏿‍♀' => 'ਪੈਦਲ ਚਲਦੀ ਇਸਤਰੀ: ਕਾਲਾ ਰੰਗ',
-    '🚶🏻‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏼‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏽‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏾‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🚶🏿‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏻‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏼‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏽‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏾‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🚶🏿‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
     '🧍🏻‍♂' => 'ਖੜ੍ਹਾ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ',
     '🧍🏼‍♂' => 'ਖੜ੍ਹਾ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧍🏽‍♂' => 'ਖੜ੍ਹਾ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧎🏾‍♀' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '🧎🏿‍♀' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠੀ ਔਰਤ: ਕਾਲਾ ਰੰਗ',
-    '🧎🏻‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏼‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏽‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏾‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎🏿‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏻‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏼‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏽‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏾‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🧎🏿‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
     '🧑🏻‍🦯' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ',
     '🧑🏼‍🦯' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧑🏽‍🦯' => 'ਟਟੋਲਣ ਵਾਲੀ ਸੋਟੀ ਫੜੀ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
     '🏃🏾‍♀' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '🏃🏿‍♀' => 'ਦੌੜਦੀ ਇਸਤਰੀ: ਕਾਲਾ ਰੰਗ',
-    '🏃🏻‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏼‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏽‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏾‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃🏿‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏻‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏼‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏽‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏾‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '🏃🏿‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ, ਸੱਜੇ ਪਾਸੇ',
+    '👯🏻‍♀' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਗੋਰਾ ਰੰਗ',
+    '👯🏼‍♀' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👯🏽‍♀' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👯🏾‍♀' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👯🏿‍♀' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਾਲਾ ਰੰਗ',
+    '👯🏻‍♂' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ',
+    '👯🏼‍♂' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👯🏽‍♂' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👯🏾‍♂' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👯🏿‍♂' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ',
     '🧖🏻‍♂' => 'ਭਾਫ਼ ਵਾਲੇ ਕਮਰੇ ਵਿੱਚ ਆਦਮੀ: ਗੋਰਾ ਰੰਗ',
     '🧖🏼‍♂' => 'ਭਾਫ਼ ਵਾਲੇ ਕਮਰੇ ਵਿੱਚ ਆਦਮੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧖🏽‍♂' => 'ਭਾਫ਼ ਵਾਲੇ ਕਮਰੇ ਵਿੱਚ ਆਦਮੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'ਕਲਾਬਾਜ਼ੀਆਂ ਲਾਉਂਦੀ ਇਸਤਰੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
     '🤸🏾‍♀' => 'ਕਲਾਬਾਜ਼ੀਆਂ ਲਾਉਂਦੀ ਇਸਤਰੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '🤸🏿‍♀' => 'ਕਲਾਬਾਜ਼ੀਆਂ ਲਾਉਂਦੀ ਇਸਤਰੀ: ਕਾਲਾ ਰੰਗ',
+    '🤼🏻‍♀' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਗੋਰਾ ਰੰਗ',
+    '🤼🏼‍♀' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🤼🏽‍♀' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🤼🏾‍♀' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🤼🏿‍♀' => 'ਕੁਸ਼ਤੀ ਕਰਦੀਆਂ ਇਸਤਰੀਆਂ: ਕਾਲਾ ਰੰਗ',
+    '🤼🏻‍♂' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ',
+    '🤼🏼‍♂' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🤼🏽‍♂' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🤼🏾‍♂' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🤼🏿‍♂' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਪੁਰਸ਼: ਕਾਲਾ ਰੰਗ',
     '🤽🏻‍♂' => 'ਵਾਟਰ ਪੋਲੋ ਖੇਡਦਾ ਪੁਰਸ਼: ਗੋਰਾ ਰੰਗ',
     '🤽🏼‍♂' => 'ਵਾਟਰ ਪੋਲੋ ਖੇਡਦਾ ਪੁਰਸ਼: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🤽🏽‍♂' => 'ਵਾਟਰ ਪੋਲੋ ਖੇਡਦਾ ਪੁਰਸ਼: ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ਔਰਤ: ਘੁੰਗਰਾਲੇ ਵਾਲ',
     '👩‍🦳' => 'ਔਰਤ: ਚਿੱਟੇ ਵਾਲ',
     '👩‍🦲' => 'ਔਰਤ: ਗੰਜਾ ਸਿਰ',
-    '🚶‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🧎‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
-    '🏃‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ ਸੱਜੇ ਪਾਸੇ',
+    '🚶‍➡' => 'ਪੈਦਲ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
+    '🧎‍➡' => 'ਗੋਡਿਆਂ ਭਾਰ ਬੈਠਾ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
+    '🏃‍➡' => 'ਦੌੜਦਾ ਵਿਅਕਤੀ: ਸੱਜੇ ਪਾਸੇ',
     '👨‍👦' => 'ਪਰਿਵਾਰ: ਆਦਮੀ, ਮੁੰਡਾ',
     '👨‍👧' => 'ਪਰਿਵਾਰ: ਆਦਮੀ, ਕੁੜੀ',
     '👩‍👦' => 'ਪਰਿਵਾਰ: ਔਰਤ, ਮੁੰਡਾ',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ਹੱਥ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਵ੍ਹੀਲਚੇਅਰ ‘ਤੇ ਬੈਠੀ ਔਰਤ',
     '🏃‍♂' => 'ਦੌੜਦਾ ਪੁਰਸ਼',
     '🏃‍♀' => 'ਦੌੜਦੀ ਇਸਤਰੀ',
+    '🧑‍🩰' => 'ਬੈਲੇ ਡਾਂਸਰ',
     '👯‍♂' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੇ ਪੁਰਸ਼',
     '👯‍♀' => 'ਜਸ਼ਨ ਮਨਾਉਂਦੀਆਂ ਇਸਤਰੀਆਂ',
     '🧖‍♂' => 'ਭਾਫ਼ ਵਾਲੇ ਕਮਰੇ ਵਿੱਚ ਆਦਮੀ',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'ਕਾਰੋਬਾਰ ਵਿਅਕਤੀ, ਵਪਾਰਕ ਸੂਟ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
     '🕴🏾' => 'ਕਾਰੋਬਾਰ ਵਿਅਕਤੀ, ਵਪਾਰਕ ਸੂਟ ਵਿੱਚ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '🕴🏿' => 'ਕਾਰੋਬਾਰ ਵਿਅਕਤੀ, ਵਪਾਰਕ ਸੂਟ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ',
+    '👯🏻' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਗੋਰਾ ਰੰਗ',
+    '👯🏼' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👯🏽' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਕਣਕਵੰਨਾ ਰੰਗ',
+    '👯🏾' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '👯🏿' => 'ਪਾਰਟੀ ਕਰਦੇ ਲੋਕ: ਕਾਲਾ ਰੰਗ',
     '🧖🏻' => 'ਭਾਫ਼ ਵਾਲੇ ਕਮਰੇ ਵਿੱਚ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ',
     '🧖🏼' => 'ਭਾਫ਼ ਵਾਲੇ ਕਮਰੇ ਵਿੱਚ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🧖🏽' => 'ਭਾਫ਼ ਵਾਲੇ ਕਮਰੇ ਵਿੱਚ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ਟਾਪੂ ਲਾਉਂਦਾ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
     '🤸🏾' => 'ਟਾਪੂ ਲਾਉਂਦਾ ਵਿਅਕਤੀ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '🤸🏿' => 'ਟਾਪੂ ਲਾਉਂਦਾ ਵਿਅਕਤੀ: ਕਾਲਾ ਰੰਗ',
+    '🤼🏻' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਗੋਰਾ ਰੰਗ',
+    '🤼🏼' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🤼🏽' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਕਣਕਵੰਨਾ ਰੰਗ',
+    '🤼🏾' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
+    '🤼🏿' => 'ਕੁਸ਼ਤੀ ਕਰਦੇ ਲੋਕ: ਕਾਲਾ ਰੰਗ',
     '🤽🏻' => 'ਵਾਟਰ ਪੋਲੋ ਖੇਡਦਾ ਵਿਅਕਤੀ: ਗੋਰਾ ਰੰਗ',
     '🤽🏼' => 'ਵਾਟਰ ਪੋਲੋ ਖੇਡਦਾ ਵਿਅਕਤੀ: ਹਲਕਾ ਕਣਕਵੰਨਾ ਰੰਗ',
     '🤽🏽' => 'ਵਾਟਰ ਪੋਲੋ ਖੇਡਦਾ ਵਿਅਕਤੀ: ਕਣਕਵੰਨਾ ਰੰਗ',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'ਝੰਡਾ: ਚੀਨ',
     '🇨🇴' => 'ਝੰਡਾ: ਕੋਲੰਬੀਆ',
     '🇨🇵' => 'ਝੰਡਾ: ਕਲਿੱਪਰਟਨ ਟਾਪੂ',
+    '🇨🇶' => 'ਝੰਡਾ: ਸਾਰਕ',
     '🇨🇷' => 'ਝੰਡਾ: ਕੋਸਟਾ ਰੀਕਾ',
     '🇨🇺' => 'ਝੰਡਾ: ਕਿਊਬਾ',
     '🇨🇻' => 'ਝੰਡਾ: ਕੇਪ ਵਰਡੇ',
@@ -2244,7 +2401,7 @@
     '🇮🇹' => 'ਝੰਡਾ: ਇਟਲੀ',
     '🇯🇪' => 'ਝੰਡਾ: ਜਰਸੀ',
     '🇯🇲' => 'ਝੰਡਾ: ਜਮਾਇਕਾ',
-    '🇯🇴' => 'ਝੰਡਾ: ਜਾਰਡਨ',
+    '🇯🇴' => 'ਝੰਡਾ: ਜੌਰਡਨ',
     '🇯🇵' => 'ਝੰਡਾ: ਜਪਾਨ',
     '🇰🇪' => 'ਝੰਡਾ: ਕੀਨੀਆ',
     '🇰🇬' => 'ਝੰਡਾ: ਕਿਰਗਿਜ਼ਸਤਾਨ',
@@ -2252,13 +2409,13 @@
     '🇰🇮' => 'ਝੰਡਾ: ਕਿਰਬਾਤੀ',
     '🇰🇲' => 'ਝੰਡਾ: ਕੋਮੋਰੋਸ',
     '🇰🇳' => 'ਝੰਡਾ: ਸੇਂਟ ਕਿਟਸ ਐਂਡ ਨੇਵਿਸ',
-    '🇰🇵' => 'ਝੰਡਾ: ਉੱਤਰ ਕੋਰੀਆ',
-    '🇰🇷' => 'ਝੰਡਾ: ਦੱਖਣ ਕੋਰੀਆ',
+    '🇰🇵' => 'ਝੰਡਾ: ਉੱਤਰੀ ਕੋਰੀਆ',
+    '🇰🇷' => 'ਝੰਡਾ: ਦੱਖਣੀ ਕੋਰੀਆ',
     '🇰🇼' => 'ਝੰਡਾ: ਕੁਵੈਤ',
     '🇰🇾' => 'ਝੰਡਾ: ਕੇਮੈਨ ਟਾਪੂ',
     '🇰🇿' => 'ਝੰਡਾ: ਕਜ਼ਾਖਸਤਾਨ',
     '🇱🇦' => 'ਝੰਡਾ: ਲਾਓਸ',
-    '🇱🇧' => 'ਝੰਡਾ: ਲੈਬਨਾਨ',
+    '🇱🇧' => 'ਝੰਡਾ: ਲਿਬਨਾਨ',
     '🇱🇨' => 'ਝੰਡਾ: ਸੇਂਟ ਲੂਸੀਆ',
     '🇱🇮' => 'ਝੰਡਾ: ਲਿਚੇਂਸਟਾਇਨ',
     '🇱🇰' => 'ਝੰਡਾ: ਸ੍ਰੀ ਲੰਕਾ',
@@ -2314,7 +2471,7 @@
     '🇵🇲' => 'ਝੰਡਾ: ਸੇਂਟ ਪੀਅਰੇ ਐਂਡ ਮਿਕੇਲਨ',
     '🇵🇳' => 'ਝੰਡਾ: ਪਿਟਕੇਰਨ ਟਾਪੂ',
     '🇵🇷' => 'ਝੰਡਾ: ਪਿਊਰਟੋ ਰਿਕੋ',
-    '🇵🇸' => 'ਝੰਡਾ: ਫਿਲੀਸਤੀਨੀ ਇਲਾਕਾ',
+    '🇵🇸' => 'ਝੰਡਾ: ਫਿਲਸਤੀਨੀ ਖਿੱਤੇ',
     '🇵🇹' => 'ਝੰਡਾ: ਪੁਰਤਗਾਲ',
     '🇵🇼' => 'ਝੰਡਾ: ਪਲਾਉ',
     '🇵🇾' => 'ਝੰਡਾ: ਪੈਰਾਗਵੇ',
@@ -2366,7 +2523,7 @@
     '🇺🇬' => 'ਝੰਡਾ: ਯੂਗਾਂਡਾ',
     '🇺🇲' => 'ਝੰਡਾ: ਯੂ.ਐੱਸ. ਦੂਰ-ਦੁਰਾਡੇ ਟਾਪੂ',
     '🇺🇳' => 'ਝੰਡਾ: ਸੰਯੁਕਤ ਰਾਸ਼ਟਰ',
-    '🇺🇸' => 'ਝੰਡਾ: ਸੰਯੁਕਤ ਰਾਜ',
+    '🇺🇸' => 'ਝੰਡਾ: ਸੰਯੁਕਤ ਰਾਜ (ਅਮਰੀਕਾ)',
     '🇺🇾' => 'ਝੰਡਾ: ਉਰੂਗਵੇ',
     '🇺🇿' => 'ਝੰਡਾ: ਉਜ਼ਬੇਕਿਸਤਾਨ',
     '🇻🇦' => 'ਝੰਡਾ: ਵੈਟੀਕਨ ਸਿਟੀ',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ਕਣਕਵੰਨਾ ਰੰਗ',
     '🏾' => 'ਦਰਮਿਆਨਾ ਕਾਲਾ ਰੰਗ',
     '🏿' => 'ਕਾਲਾ ਰੰਗ',
-    '🪉' => 'ਹਾਰਪ',
-    '🪏' => 'ਬੇਲਚਾ',
-    '🪾' => 'ਪੱਤੇ ਰਹਿਤ ਰੁੱਖ',
-    '🫆' => 'ਉਂਗਲਾਂ ਦੇ ਨਿਸ਼ਾਨ',
-    '🫜' => 'ਚੁਕੰਦਰ',
-    '🫟' => 'ਛਪਾਕਾ',
-    '🫩' => 'ਸੁਜੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਚਿਹਰਾ',
     '😀' => 'ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ',
     '😃' => 'ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਨਾਲ ਹੱਸਦਾ ਚਿਹਰਾ',
     '😄' => 'ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਅਤੇ ਮੁਸਕਰਾਉਂਦੀਆਂ ਅੱਖਾਂ ਨਾਲ ਹੱਸਦਾ ਚਿਹਰਾ',
@@ -2450,6 +2600,7 @@
     '😪' => 'ਨੀਂਦਰਾ ਚਿਹਰਾ',
     '🤤' => 'ਲਾਰ ਟਪਕਦਾ ਚਿਹਰਾ',
     '😴' => 'ਸੁੱਤਾ ਚਿਹਰਾ',
+    '🫩' => 'ਸੁਜੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਚਿਹਰਾ',
     '😷' => 'ਮੈਡੀਕਲ ਨਕਾਬ ਵਾਲਾ ਚਿਹਰਾ',
     '🤒' => 'ਬਿਮਾਰ ਚਿਹਰਾ',
     '🤕' => 'ਜ਼ਖਮੀ ਚਿਹਰਾ',
@@ -2476,6 +2627,7 @@
     '😯' => 'ਹੈਰਾਨ ਚਿਹਰਾ',
     '😲' => 'ਹੈਰਤ ਵਾਲਾ ਚਿਹਰਾ',
     '😳' => 'ਭਖਿਆ ਚਿਹਰਾ',
+    '🫪' => 'ਫ਼ਿਕਰਮੰਦ ਚਿਹਰਾ',
     '🥺' => 'ਸਫ਼ਾਈ ਦਿੰਦਾ ਚਿਹਰਾ',
     '🥹' => 'ਹੰਝੂ ਰੋਕਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਚਿਹਰਾ',
     '😦' => 'ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਨਾਲ ਨਰਾਜ਼ ਚਿਹਰਾ',
@@ -2547,7 +2699,8 @@
     '💋' => 'ਚੁੰਮੀ ਦਾ ਨਿਸ਼ਾਨ',
     '💯' => 'ਸੌ ਅੰਕ',
     '💢' => 'ਗੁੱਸੇ ਦਾ ਚਿੰਨ੍ਹ',
-    '💥' => 'ਟੱਕਰਾਉਣਾ',
+    '🫯' => 'ਹੱਥੋਪਾਈ',
+    '💥' => 'ਟਕਰਾਉਣਾ',
     '💫' => 'ਤਾਰੇ ਵਿਖਾਈ ਦੇਣਾ',
     '💦' => 'ਮੁੜ੍ਹਕੇ ਦੀਆਂ ਬੂੰਦਾਂ',
     '💨' => 'ਦੌੜਨਾ',
@@ -2670,6 +2823,7 @@
     '🧞' => 'ਜਿੰਨ',
     '🧟' => 'ਜ਼ੌਂਬੀ',
     '🧌' => 'ਟਰੋਲ',
+    '🫈' => 'ਜੱਤ ਵਾਲਾ ਪ੍ਰਾਣੀ',
     '💆' => 'ਮਾਲਸ਼ ਕਰਵਾਉਂਦਾ ਵਿਅਕਤੀ',
     '💇' => 'ਵਾਲ ਕਟਵਾਉਣਾ',
     '🚶' => 'ਪੈਦਲ ਵਿਅਕਤੀ',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ਗਲੇ ਮਿਲ ਰਹੇ ਲੋਕ',
     '👪' => 'ਪਰਿਵਾਰ',
     '👣' => 'ਪੈੜਾਂ ਦੇ ਨਿਸ਼ਾਨ',
+    '🫆' => 'ਉਂਗਲਾਂ ਦੇ ਨਿਸ਼ਾਨ',
     '🦰' => 'ਲਾਲ ਰੰਗ ਦੇ ਵਾਲ',
     '🦱' => 'ਘੁੰਗਰਾਲੇ ਵਾਲ',
     '🦳' => 'ਚਿੱਟੇ ਵਾਲ',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ਸਪਾਊਟਿੰਗ ਵੇਲ੍ਹ',
     '🐋' => 'ਵੇਲ੍ਹ',
     '🐬' => 'ਡਾਲਫਿਨ',
+    '🫍' => 'ਓਰਕਾ ਮੱਛੀ',
     '🦭' => 'ਸੀਲ ਮੱਛੀ',
     '🐟' => 'ਮੱਛੀ',
     '🐠' => 'ਤਪਤ-ਖੰਡੀ ਮੱਛੀ',
@@ -2821,6 +2977,11 @@
     '🐚' => 'ਚੂੜੀਦਾਰ ਘੋਗਾ',
     '🪸' => 'ਕੋਰਲ',
     '🪼' => 'ਜੈਲੀਫਿਸ਼',
+    '🦀' => 'ਕੇਕੜਾ',
+    '🦞' => 'ਝੀਂਗਾ ਮੱਛੀ',
+    '🦐' => 'ਝੀਂਗਾ',
+    '🦑' => 'ਸਕਵਿੱਡ',
+    '🦪' => 'ਸਿੱਪ',
     '🐌' => 'ਘੋਗਾ',
     '🦋' => 'ਤਿਤਲੀ',
     '🐛' => 'ਸੁੰਡੀ',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ਖਾਲੀ ਆਲ੍ਹਣਾ',
     '🪺' => 'ਆਂਡਿਆਂ ਵਾਲਾ ਆਲ੍ਹਣਾ',
     '🍄' => 'ਖੁੰਭ',
+    '🪾' => 'ਪੱਤੇ ਰਹਿਤ ਰੁੱਖ',
     '🍇' => 'ਅੰਗੂਰ',
     '🍈' => 'ਖਰਬੂਜਾ',
     '🍉' => 'ਤਰਬੂਜ',
@@ -2901,6 +3063,7 @@
     '🌰' => 'ਚੈਸਟਨਟ',
     '🫚' => 'ਅਦਰਕ ਦੀ ਜੜ੍ਹ',
     '🫛' => 'ਮਟਰ ਦੀ ਫਲੀ',
+    '🫜' => 'ਚੁਕੰਦਰ',
     '🍞' => 'ਬ੍ਰੈੱਡ',
     '🥐' => 'ਕ੍ਰੈਸੈਂਟ',
     '🥖' => 'ਬੇਗਟ ਬ੍ਰੈੱਡ',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ਡੰਪਲਿੰਗ',
     '🥠' => 'ਫਾਰਚੂਨ ਕੂਕੀ',
     '🥡' => 'ਟੇਕਆਊਟ ਬਾਕਸ',
-    '🦀' => 'ਕੇਕੜਾ',
-    '🦞' => 'ਝੀਂਗਾ ਮੱਛੀ',
-    '🦐' => 'ਝੀਂਗਾ',
-    '🦑' => 'ਸਕਵਿੱਡ',
-    '🦪' => 'ਸਿੱਪ',
     '🍦' => 'ਨਰਮ ਆਇਸਕ੍ਰੀਮ',
     '🍧' => 'ਬਰਫ਼ ਦਾ ਚੂਸਾ',
     '🍨' => 'ਆਇਸ ਕ੍ਰੀਮ',
@@ -3007,6 +3165,7 @@
     '🧭' => 'ਕੰਪਾਸ',
     '🏔' => 'ਬਰਫੀਲੀ ਚੋਟੀ ਵਾਲਾ ਪਹਾੜ',
     '⛰' => 'ਪਰਬਤ',
+    '🛘' => 'ਪਹਾੜ ਖਿਸਕਣਾ',
     '🌋' => 'ਜਵਾਲਾਮੁਖੀ',
     '🗻' => 'ਮਾਊਂਟ ਫੂਜੀ',
     '🏕' => 'ਤੰਬੂ ਲਗਾਉਣਾ',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ਹੈੱਡਫ਼ੋਨ',
     '📻' => 'ਰੇਡੀਓ',
     '🎷' => 'ਸੈਕਸੋਫੋਨ',
+    '🎺' => 'ਬਿਗਲ',
+    '🪊' => 'ਟ੍ਰੋਂਬੋਨ',
     '🪗' => 'ਅਕਾਰਡੀਅਨ',
     '🎸' => 'ਗਿਟਾਰ',
     '🎹' => 'ਸੰਗੀਤਕ ਕੀ-ਬੋਰਡ',
-    '🎺' => 'ਬਿਗਲ',
     '🎻' => 'ਵਾਇਲਨ',
     '🪕' => 'ਬੈਂਜੋ',
     '🥁' => 'ਡਰੰਮ',
     '🪘' => 'ਲੰਬਾ ਢੋਲ',
     '🪇' => 'ਮਰੈਕਜ਼',
     '🪈' => 'ਬੰਸਰੀ',
+    '🪉' => 'ਹਾਰਪ',
     '📱' => 'ਮੋਬਾਇਲ ਫ਼ੋਨ',
     '📲' => 'ਤੀਰ ਨਾਲ ਮੋਬਾਇਲ ਫੋਨ',
     '☎' => 'ਟੈਲੀਫ਼ੋਨ',
@@ -3430,8 +3591,9 @@
     '📑' => 'ਬੁੱਕਮਾਰਕ ਟੈਬਾਂ',
     '🔖' => 'ਬੁੱੱਕਮਾਰਕ',
     '🏷' => 'ਲੇਬਲ',
-    '💰' => 'ਪੈਸੇ ਵਾਲਾ ਬੈਗ',
     '🪙' => 'ਸਿੱਕਾ',
+    '💰' => 'ਪੈਸੇ ਵਾਲਾ ਬੈਗ',
+    '🪎' => 'ਖਜਾਨਾ',
     '💴' => 'ਯੇਨ ਬੈਂਕਨੋਟ',
     '💵' => 'ਡਾਲਰ ਬੈਂਕਨੋਟ',
     '💶' => 'ਯੂਰੋ ਬੈਂਕਨੋਟ',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ਐਜ਼ਾਰਾਂ ਦਾ ਬਕਸਾ',
     '🧲' => 'ਚੁੰਬਕ',
     '🪜' => 'ਪੌੜੀ',
+    '🪏' => 'ਬੇਲਚਾ',
     '⚗' => 'ਰਸਾਇਣ ਔਜ਼ਾਰ',
     '🧪' => 'ਜਾਂਚ ਨਲੀ',
     '🧫' => 'ਪੈਟਰੀ ਡਿਸ਼',
@@ -3697,6 +3860,7 @@
     '✴' => 'ਅੱਠ-ਬਿੰਦੂਆਂ ਵਾਲਾ ਤਾਰਾ',
     '❇' => 'ਚਮਕ',
     '™' => 'ਟ੍ਰੇਡਮਾਰਕ',
+    '🫟' => 'ਛਪਾਕਾ',
     '🔠' => 'ਵੱਡੇ ਲੇਟਿਨ ਇਨਪੁੱਟ',
     '🔡' => 'ਛੋਟੇ ਲੇਟਿਨ ਇਨਪੁੱਟ',
     '🔢' => 'ਇਨਪੁੱਟ ਨੰਬਰ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pcm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pcm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pcm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pcm.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'Kis: Wúman, Wúman, Dák Skín Ton, Mídíọ́m Skín Ton',
     '👩🏿‍❤‍💋‍👩🏾' => 'Kis: Wúman, Wúman, Dák Skín Ton, Mídíọ́m Dák Skín Ton',
     '👩🏿‍❤‍💋‍👩🏿' => 'Kis: Wúman, Wúman, Dák Skín Ton',
+    '🧑🏻‍🫯‍🧑🏼' => 'Pípul Wé De Rẹ́sul: Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '🧑🏻‍🫯‍🧑🏽' => 'Pípul Wé De Rẹ́sul: Laít Skín Ton, Mídíọ́m Skín Ton',
+    '🧑🏻‍🫯‍🧑🏾' => 'Pípul Wé De Rẹ́sul: Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '🧑🏻‍🫯‍🧑🏿' => 'Pípul Wé De Rẹ́sul: Laít Skín Ton, Dák Skín Ton',
+    '🧑🏼‍🫯‍🧑🏻' => 'Pípul Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Laít Skín Ton',
+    '🧑🏼‍🫯‍🧑🏽' => 'Pípul Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Mídíọ́m Skín Ton',
+    '🧑🏼‍🫯‍🧑🏾' => 'Pípul Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '🧑🏼‍🫯‍🧑🏿' => 'Pípul Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Dák Skín Ton',
+    '🧑🏽‍🫯‍🧑🏻' => 'Pípul Wé De Rẹ́sul: Mídíọ́m Skín Ton, Laít Skín Ton',
+    '🧑🏽‍🫯‍🧑🏼' => 'Pípul Wé De Rẹ́sul: Mídíọ́m Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '🧑🏽‍🫯‍🧑🏾' => 'Pípul Wé De Rẹ́sul: Mídíọ́m Skín Ton, Mídíọ́m Dák Skín Ton',
+    '🧑🏽‍🫯‍🧑🏿' => 'Pípul Wé De Rẹ́sul: Mídíọ́m Skín Ton, Dák Skín Ton',
+    '🧑🏾‍🫯‍🧑🏻' => 'Pípul Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Laít Skín Ton',
+    '🧑🏾‍🫯‍🧑🏼' => 'Pípul Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '🧑🏾‍🫯‍🧑🏽' => 'Pípul Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Mídíọ́m Skín Ton',
+    '🧑🏾‍🫯‍🧑🏿' => 'Pípul Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Dák Skín Ton',
+    '🧑🏿‍🫯‍🧑🏻' => 'Pípul Wé De Rẹ́sul: Dák Skín Ton, Laít Skín Ton',
+    '🧑🏿‍🫯‍🧑🏼' => 'Pípul Wé De Rẹ́sul: Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '🧑🏿‍🫯‍🧑🏽' => 'Pípul Wé De Rẹ́sul: Dák Skín Ton, Mídíọ́m Skín Ton',
+    '🧑🏿‍🫯‍🧑🏾' => 'Pípul Wé De Rẹ́sul: Dák Skín Ton, Mídíọ́m Dák Skín Ton',
     '🧑🏻‍❤‍🧑🏼' => 'Tuú Pípul Wit Hat: Pẹ́sin, Pẹ́sin, Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
     '🧑🏻‍❤‍🧑🏽' => 'Tuú Pípul Wit Hat: Pẹ́sin, Pẹ́sin, Laít Skín Ton, Mídíọ́m Skín Ton',
     '🧑🏻‍❤‍🧑🏾' => 'Tuú Pípul Wit Hat: Pẹ́sin, Pẹ́sin, Laít Skín Ton, Mídíọ́m Dák Skín Ton',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'Tuú Pípul Wit Hat: Pẹ́sin, Pẹ́sin, Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
     '🧑🏿‍❤‍🧑🏽' => 'Tuú Pípul Wit Hat: Pẹ́sin, Pẹ́sin, Dák Skín Ton, Mídíọ́m Skín Ton',
     '🧑🏿‍❤‍🧑🏾' => 'Tuú Pípul Wit Hat: Pẹ́sin, Pẹ́sin, Dák Skín Ton, Mídíọ́m Dák Skín Ton',
+    '🧑🏻‍🐰‍🧑🏼' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '🧑🏻‍🐰‍🧑🏽' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Laít Skín Ton, Mídíọ́m Skín Ton',
+    '🧑🏻‍🐰‍🧑🏾' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '🧑🏻‍🐰‍🧑🏿' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Laít Skín Ton, Dák Skín Ton',
+    '🧑🏼‍🐰‍🧑🏻' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m-Laít Skín Ton, Laít Skín Ton',
+    '🧑🏼‍🐰‍🧑🏽' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m-Laít Skín Ton, Mídíọ́m Skín Ton',
+    '🧑🏼‍🐰‍🧑🏾' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m-Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '🧑🏼‍🐰‍🧑🏿' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m-Laít Skín Ton, Dák Skín Ton',
+    '🧑🏽‍🐰‍🧑🏻' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m Skín Ton, Laít Skín Ton',
+    '🧑🏽‍🐰‍🧑🏼' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '🧑🏽‍🐰‍🧑🏾' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m Skín Ton, Mídíọ́m Dák Skín Ton',
+    '🧑🏽‍🐰‍🧑🏿' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m Skín Ton, Dák Skín Ton',
+    '🧑🏾‍🐰‍🧑🏻' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m Dák Skín Ton, Laít Skín Ton',
+    '🧑🏾‍🐰‍🧑🏼' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '🧑🏾‍🐰‍🧑🏽' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m Dák Skín Ton, Mídíọ́m Skín Ton',
+    '🧑🏾‍🐰‍🧑🏿' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m Dák Skín Ton, Dák Skín Ton',
+    '🧑🏿‍🐰‍🧑🏻' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Dák Skín Ton, Laít Skín Ton',
+    '🧑🏿‍🐰‍🧑🏼' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '🧑🏿‍🐰‍🧑🏽' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Dák Skín Ton, Mídíọ́m Skín Ton',
+    '🧑🏿‍🐰‍🧑🏾' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Dák Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👨🏻‍🫯‍👨🏼' => 'Mẹn Wé De Rẹ́sul: Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👨🏻‍🫯‍👨🏽' => 'Mẹn Wé De Rẹ́sul: Laít Skín Ton, Mídíọ́m Skín Ton',
+    '👨🏻‍🫯‍👨🏾' => 'Mẹn Wé De Rẹ́sul: Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👨🏻‍🫯‍👨🏿' => 'Mẹn Wé De Rẹ́sul: Laít Skín Ton, Dák Skín Ton',
+    '👨🏼‍🫯‍👨🏻' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Laít Skín Ton',
+    '👨🏼‍🫯‍👨🏽' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Mídíọ́m Skín Ton',
+    '👨🏼‍🫯‍👨🏾' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👨🏼‍🫯‍👨🏿' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Dák Skín Ton',
+    '👨🏽‍🫯‍👨🏻' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m Skín Ton, Laít Skín Ton',
+    '👨🏽‍🫯‍👨🏼' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👨🏽‍🫯‍👨🏾' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👨🏽‍🫯‍👨🏿' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m Skín Ton, Dák Skín Ton',
+    '👨🏾‍🫯‍👨🏻' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Laít Skín Ton',
+    '👨🏾‍🫯‍👨🏼' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👨🏾‍🫯‍👨🏽' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Mídíọ́m Skín Ton',
+    '👨🏾‍🫯‍👨🏿' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Dák Skín Ton',
+    '👨🏿‍🫯‍👨🏻' => 'Mẹn Wé De Rẹ́sul: Dák Skín Ton, Laít Skín Ton',
+    '👨🏿‍🫯‍👨🏼' => 'Mẹn Wé De Rẹ́sul: Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👨🏿‍🫯‍👨🏽' => 'Mẹn Wé De Rẹ́sul: Dák Skín Ton, Mídíọ́m Skín Ton',
+    '👨🏿‍🫯‍👨🏾' => 'Mẹn Wé De Rẹ́sul: Dák Skín Ton, Mídíọ́m Dák Skín Ton',
     '👨🏻‍❤‍👨🏻' => 'Tuú Pípul Wit Hat: Man, Man, Laít Skín Ton',
     '👨🏻‍❤‍👨🏼' => 'Tuú Pípul Wit Hat: Man, Man, Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
     '👨🏻‍❤‍👨🏽' => 'Tuú Pípul Wit Hat: Man, Man, Laít Skín Ton, Mídíọ́m Skín Ton',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'Tuú Pípul Wit Hat: Man, Man, Dák Skín Ton, Mídíọ́m Skín Ton',
     '👨🏿‍❤‍👨🏾' => 'Tuú Pípul Wit Hat: Man, Man, Dák Skín Ton, Mídíọ́m Dák Skín Ton',
     '👨🏿‍❤‍👨🏿' => 'Tuú Pípul Wit Hat: Man, Man, Dák Skín Ton',
+    '👨🏻‍🐰‍👨🏼' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👨🏻‍🐰‍👨🏽' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Laít Skín Ton, Mídíọ́m Skín Ton',
+    '👨🏻‍🐰‍👨🏾' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👨🏻‍🐰‍👨🏿' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Laít Skín Ton, Dák Skín Ton',
+    '👨🏼‍🐰‍👨🏻' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m-Laít Skín Ton, Laít Skín Ton',
+    '👨🏼‍🐰‍👨🏽' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m-Laít Skín Ton, Mídíọ́m Skín Ton',
+    '👨🏼‍🐰‍👨🏾' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m-Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👨🏼‍🐰‍👨🏿' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m-Laít Skín Ton, Dák Skín Ton',
+    '👨🏽‍🐰‍👨🏻' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Skín Ton, Laít Skín Ton',
+    '👨🏽‍🐰‍👨🏼' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👨🏽‍🐰‍👨🏾' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👨🏽‍🐰‍👨🏿' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Skín Ton, Dák Skín Ton',
+    '👨🏾‍🐰‍👨🏻' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Dák Skín Ton, Laít Skín Ton',
+    '👨🏾‍🐰‍👨🏼' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👨🏾‍🐰‍👨🏽' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Dák Skín Ton, Mídíọ́m Skín Ton',
+    '👨🏾‍🐰‍👨🏿' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Dák Skín Ton, Dák Skín Ton',
+    '👨🏿‍🐰‍👨🏻' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Dák Skín Ton, Laít Skín Ton',
+    '👨🏿‍🐰‍👨🏼' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👨🏿‍🐰‍👨🏽' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Dák Skín Ton, Mídíọ́m Skín Ton',
+    '👨🏿‍🐰‍👨🏾' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Dák Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👩🏻‍🫯‍👩🏼' => 'Wímẹn Wé De Rẹ́sul: Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👩🏻‍🫯‍👩🏽' => 'Wímẹn Wé De Rẹ́sul: Laít Skín Ton, Mídíọ́m Skín Ton',
+    '👩🏻‍🫯‍👩🏾' => 'Wímẹn Wé De Rẹ́sul: Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👩🏻‍🫯‍👩🏿' => 'Wímẹn Wé De Rẹ́sul: Laít Skín Ton, Dák Skín Ton',
+    '👩🏼‍🫯‍👩🏻' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Laít Skín Ton',
+    '👩🏼‍🫯‍👩🏽' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Mídíọ́m Skín Ton',
+    '👩🏼‍🫯‍👩🏾' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👩🏼‍🫯‍👩🏿' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton, Dák Skín Ton',
+    '👩🏽‍🫯‍👩🏻' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m Skín Ton, Laít Skín Ton',
+    '👩🏽‍🫯‍👩🏼' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👩🏽‍🫯‍👩🏾' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👩🏽‍🫯‍👩🏿' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m Skín Ton, Dák Skín Ton',
+    '👩🏾‍🫯‍👩🏻' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Laít Skín Ton',
+    '👩🏾‍🫯‍👩🏼' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👩🏾‍🫯‍👩🏽' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Mídíọ́m Skín Ton',
+    '👩🏾‍🫯‍👩🏿' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton, Dák Skín Ton',
+    '👩🏿‍🫯‍👩🏻' => 'Wímẹn Wé De Rẹ́sul: Dák Skín Ton, Laít Skín Ton',
+    '👩🏿‍🫯‍👩🏼' => 'Wímẹn Wé De Rẹ́sul: Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👩🏿‍🫯‍👩🏽' => 'Wímẹn Wé De Rẹ́sul: Dák Skín Ton, Mídíọ́m Skín Ton',
+    '👩🏿‍🫯‍👩🏾' => 'Wímẹn Wé De Rẹ́sul: Dák Skín Ton, Mídíọ́m Dák Skín Ton',
     '👩🏻‍❤‍👨🏻' => 'Tuú Pípul Wit Hat: Wúman, Man, Laít Skín Ton',
     '👩🏻‍❤‍👨🏼' => 'Tuú Pípul Wit Hat: Wúman, Man, Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
     '👩🏻‍❤‍👨🏽' => 'Tuú Pípul Wit Hat: Wúman, Man, Laít Skín Ton, Mídíọ́m Skín Ton',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'Tuú Pípul Wit Hat: Wúman, Wúman, Dák Skín Ton, Mídíọ́m Skín Ton',
     '👩🏿‍❤‍👩🏾' => 'Tuú Pípul Wit Hat: Wúman, Wúman, Dák Skín Ton, Mídíọ́m Dák Skín Ton',
     '👩🏿‍❤‍👩🏿' => 'Tuú Pípul Wit Hat: Wúman, Wúman, Dák Skín Ton',
+    '👩🏻‍🐰‍👩🏼' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👩🏻‍🐰‍👩🏽' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Laít Skín Ton, Mídíọ́m Skín Ton',
+    '👩🏻‍🐰‍👩🏾' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👩🏻‍🐰‍👩🏿' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Laít Skín Ton, Dák Skín Ton',
+    '👩🏼‍🐰‍👩🏻' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m-Laít Skín Ton, Laít Skín Ton',
+    '👩🏼‍🐰‍👩🏽' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m-Laít Skín Ton, Mídíọ́m Skín Ton',
+    '👩🏼‍🐰‍👩🏾' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m-Laít Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👩🏼‍🐰‍👩🏿' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m-Laít Skín Ton, Dák Skín Ton',
+    '👩🏽‍🐰‍👩🏻' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Skín Ton, Laít Skín Ton',
+    '👩🏽‍🐰‍👩🏼' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👩🏽‍🐰‍👩🏾' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Skín Ton, Mídíọ́m Dák Skín Ton',
+    '👩🏽‍🐰‍👩🏿' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Skín Ton, Dák Skín Ton',
+    '👩🏾‍🐰‍👩🏻' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Dák Skín Ton, Laít Skín Ton',
+    '👩🏾‍🐰‍👩🏼' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👩🏾‍🐰‍👩🏽' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Dák Skín Ton, Mídíọ́m Skín Ton',
+    '👩🏾‍🐰‍👩🏿' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Dák Skín Ton, Dák Skín Ton',
+    '👩🏿‍🐰‍👩🏻' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Dák Skín Ton, Laít Skín Ton',
+    '👩🏿‍🐰‍👩🏼' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
+    '👩🏿‍🐰‍👩🏽' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Dák Skín Ton, Mídíọ́m Skín Ton',
+    '👩🏿‍🐰‍👩🏾' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Dák Skín Ton, Mídíọ́m Dák Skín Ton',
     '🧑🏻‍🤝‍🧑🏻' => 'Pípul Wé Hól Hand: Laít Skín Ton',
     '🧑🏻‍🤝‍🧑🏼' => 'Pípul Wé Hól Hand: Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
     '🧑🏻‍🤝‍🧑🏽' => 'Pípul Wé Hól Hand: Laít Skín Ton, Mídíọ́m Skín Ton',
@@ -289,6 +409,81 @@
     '👩‍👩‍👦‍👦' => 'Fámíli: Wúman, Wúman, Smọ́l Bọi, Smọ́l Bọi',
     '👩‍👩‍👧‍👧' => 'Fámíli: Wúman, Wúman, Gẹl, Gẹl',
     '🧑‍🧑‍🧒‍🧒' => 'fámíli: machọ́ pẹ́sin, machọ́ pẹ́sin, pikin, pikin',
+    '🚶🏻‍♀‍➡' => 'Wúman Wé De Waká: Laít Skín Ton, Fẹsin ráít',
+    '🚶🏼‍♀‍➡' => 'Wúman Wé De Waká: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🚶🏽‍♀‍➡' => 'Wúman Wé De Waká: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🚶🏾‍♀‍➡' => 'Wúman Wé De Waká: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🚶🏿‍♀‍➡' => 'Wúman Wé De Waká: Dák Skín Ton, Fẹsin ráít',
+    '🚶🏻‍♂‍➡' => 'Man Wé De Waká: Laít Skín Ton, Fẹsin ráít',
+    '🚶🏼‍♂‍➡' => 'Man Wé De Waká: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🚶🏽‍♂‍➡' => 'Man Wé De Waká: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🚶🏾‍♂‍➡' => 'Man Wé De Waká: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🚶🏿‍♂‍➡' => 'Man Wé De Waká: Dák Skín Ton, Fẹsin ráít',
+    '🧎🏻‍♀‍➡' => 'Wúman Wé Níl Daun: Laít Skín Ton, Fẹsin ráít',
+    '🧎🏼‍♀‍➡' => 'Wúman Wé Níl Daun: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🧎🏽‍♀‍➡' => 'Wúman Wé Níl Daun: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🧎🏾‍♀‍➡' => 'Wúman Wé Níl Daun: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🧎🏿‍♀‍➡' => 'Wúman Wé Níl Daun: Dák Skín Ton, Fẹsin ráít',
+    '🧎🏻‍♂‍➡' => 'Man Wé Níl Daun: Laít Skín Ton, Fẹsin ráít',
+    '🧎🏼‍♂‍➡' => 'Man Wé Níl Daun: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🧎🏽‍♂‍➡' => 'Man Wé Níl Daun: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🧎🏾‍♂‍➡' => 'Man Wé Níl Daun: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🧎🏿‍♂‍➡' => 'Man Wé Níl Daun: Dák Skín Ton, Fẹsin ráít',
+    '🧑🏻‍🦯‍➡' => 'Pẹ́sin Wit Waít Wọkín-Stik: Laít Skín Ton, Fẹsin ráít',
+    '🧑🏼‍🦯‍➡' => 'Pẹ́sin Wit Waít Wọkín-Stik: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🧑🏽‍🦯‍➡' => 'Pẹ́sin Wit Waít Wọkín-Stik: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🧑🏾‍🦯‍➡' => 'Pẹ́sin Wit Waít Wọkín-Stik: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🧑🏿‍🦯‍➡' => 'Pẹ́sin Wit Waít Wọkín-Stik: Dák Skín Ton, Fẹsin ráít',
+    '👨🏻‍🦯‍➡' => 'Man Wit Waít Wọkín-Stik: Laít Skín Ton, Fẹsin ráít',
+    '👨🏼‍🦯‍➡' => 'Man Wit Waít Wọkín-Stik: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '👨🏽‍🦯‍➡' => 'Man Wit Waít Wọkín-Stik: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '👨🏾‍🦯‍➡' => 'Man Wit Waít Wọkín-Stik: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '👨🏿‍🦯‍➡' => 'Man Wit Waít Wọkín-Stik: Dák Skín Ton, Fẹsin ráít',
+    '👩🏻‍🦯‍➡' => 'Wúman Wit Waít Wọkín-Stik: Laít Skín Ton, Fẹsin ráít',
+    '👩🏼‍🦯‍➡' => 'Wúman Wit Waít Wọkín-Stik: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '👩🏽‍🦯‍➡' => 'Wúman Wit Waít Wọkín-Stik: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '👩🏾‍🦯‍➡' => 'Wúman Wit Waít Wọkín-Stik: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '👩🏿‍🦯‍➡' => 'Wúman Wit Waít Wọkín-Stik: Dák Skín Ton, Fẹsin ráít',
+    '🧑🏻‍🦼‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Laít Skín Ton, Fẹsin ráít',
+    '🧑🏼‍🦼‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🧑🏽‍🦼‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🧑🏾‍🦼‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🧑🏿‍🦼‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Dák Skín Ton, Fẹsin ráít',
+    '👨🏻‍🦼‍➡' => 'Man Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Laít Skín Ton, Fẹsin ráít',
+    '👨🏼‍🦼‍➡' => 'Man Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '👨🏽‍🦼‍➡' => 'Man Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '👨🏾‍🦼‍➡' => 'Man Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '👨🏿‍🦼‍➡' => 'Man Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Dák Skín Ton, Fẹsin ráít',
+    '👩🏻‍🦼‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Laít Skín Ton, Fẹsin ráít',
+    '👩🏼‍🦼‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '👩🏽‍🦼‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '👩🏾‍🦼‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '👩🏿‍🦼‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Dák Skín Ton, Fẹsin ráít',
+    '🧑🏻‍🦽‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Laít Skín Ton, Fẹsin ráít',
+    '🧑🏼‍🦽‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🧑🏽‍🦽‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🧑🏾‍🦽‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🧑🏿‍🦽‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Dák Skín Ton, Fẹsin ráít',
+    '👨🏻‍🦽‍➡' => 'Man Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Laít Skín Ton, Fẹsin ráít',
+    '👨🏼‍🦽‍➡' => 'Man Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '👨🏽‍🦽‍➡' => 'Man Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '👨🏾‍🦽‍➡' => 'Man Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '👨🏿‍🦽‍➡' => 'Man Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Dák Skín Ton, Fẹsin ráít',
+    '👩🏻‍🦽‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Laít Skín Ton, Fẹsin ráít',
+    '👩🏼‍🦽‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '👩🏽‍🦽‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '👩🏾‍🦽‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '👩🏿‍🦽‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Dák Skín Ton, Fẹsin ráít',
+    '🏃🏻‍♀‍➡' => 'Wúman Wé De Rọn: Laít Skín Ton, Fẹsin ráít',
+    '🏃🏼‍♀‍➡' => 'Wúman Wé De Rọn: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🏃🏽‍♀‍➡' => 'Wúman Wé De Rọn: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🏃🏾‍♀‍➡' => 'Wúman Wé De Rọn: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🏃🏿‍♀‍➡' => 'Wúman Wé De Rọn: Dák Skín Ton, Fẹsin ráít',
+    '🏃🏻‍♂‍➡' => 'Man Wé De Rọn: Laít Skín Ton, Fẹsin ráít',
+    '🏃🏼‍♂‍➡' => 'Man Wé De Rọn: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🏃🏽‍♂‍➡' => 'Man Wé De Rọn: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🏃🏾‍♂‍➡' => 'Man Wé De Rọn: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🏃🏿‍♂‍➡' => 'Man Wé De Rọn: Dák Skín Ton, Fẹsin ráít',
     '🫱🏻‍🫲🏼' => 'Hándshek: Laít Skín Ton, Mídíọ́m-Laít Skín Ton',
     '🫱🏻‍🫲🏽' => 'Hándshek: Laít Skín Ton, Mídíọ́m Skín Ton',
     '🫱🏻‍🫲🏾' => 'Hándshek: Laít Skín Ton, Mídíọ́m Dák Skín Ton',
@@ -309,6 +504,21 @@
     '🫱🏿‍🫲🏼' => 'Hándshek: Dák Skín Ton, Mídíọ́m-Laít Skín Ton',
     '🫱🏿‍🫲🏽' => 'Hándshek: Dák Skín Ton, Mídíọ́m Skín Ton',
     '🫱🏿‍🫲🏾' => 'Hándshek: Dák Skín Ton, Mídíọ́m Dák Skín Ton',
+    '🚶‍♀‍➡' => 'Wúman Wé De Waká: Fẹsin ráít',
+    '🚶‍♂‍➡' => 'Man Wé De Waká: Fẹsin ráít',
+    '🧎‍♀‍➡' => 'Wúman Wé Níl Daun: Fẹsin ráít',
+    '🧎‍♂‍➡' => 'Man Wé Níl Daun: Fẹsin ráít',
+    '🧑‍🦯‍➡' => 'Pẹ́sin Wit Waít Wọkín-Stik: Fẹsin ráít',
+    '👨‍🦯‍➡' => 'Man Wit Waít Wọkín-Stik: Fẹsin ráít',
+    '👩‍🦯‍➡' => 'Wúman Wit Waít Wọkín-Stik: Fẹsin ráít',
+    '🧑‍🦼‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Fẹsin ráít',
+    '👨‍🦼‍➡' => 'Man Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Fẹsin ráít',
+    '👩‍🦼‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Gẹ́t Ẹ́njin: Fẹsin ráít',
+    '🧑‍🦽‍➡' => 'Pẹ́sin Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Fẹsin ráít',
+    '👨‍🦽‍➡' => 'Man Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Fẹsin ráít',
+    '👩‍🦽‍➡' => 'Wúman Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin: Fẹsin ráít',
+    '🏃‍♀‍➡' => 'Wúman Wé De Rọn: Fẹsin ráít',
+    '🏃‍♂‍➡' => 'Man Wé De Rọn: Fẹsin ráít',
     '👩‍❤‍👨' => 'Tuú Pípul Wit Hat: Wúman, Man',
     '👨‍❤‍👨' => 'Tuú Pípul Wit Hat: Man, Man',
     '👩‍❤‍👩' => 'Tuú Pípul Wit Hat: Wúman, Wúman',
@@ -347,6 +557,11 @@
     '🧑🏽‍🦲' => 'Pẹ́sin: Mídíọ́m Skín Ton, Bọld',
     '🧑🏾‍🦲' => 'Pẹ́sin: Mídíọ́m Dák Skín Ton, Bọld',
     '🧑🏿‍🦲' => 'Pẹ́sin: Dák Skín Ton, Bọld',
+    '🧑🏻‍🩰' => 'bálẹ dánsá: Laít Skín Ton',
+    '🧑🏼‍🩰' => 'bálẹ dánsá: Mídíọ́m-Laít Skín Ton',
+    '🧑🏽‍🩰' => 'bálẹ dánsá: Mídíọ́m Skín Ton',
+    '🧑🏾‍🩰' => 'bálẹ dánsá: Mídíọ́m Dák Skín Ton',
+    '🧑🏿‍🩰' => 'bálẹ dánsá: Dák Skín Ton',
     '🧔🏻‍♂' => 'Man Wé Gẹ́t Biabiá: Laít Skín Ton',
     '🧔🏼‍♂' => 'Man Wé Gẹ́t Biabiá: Mídíọ́m-Laít Skín Ton',
     '🧔🏽‍♂' => 'Man Wé Gẹ́t Biabiá: Mídíọ́m Skín Ton',
@@ -937,6 +1152,11 @@
     '🚶🏽‍♀' => 'Wúman Wé De Waká: Mídíọ́m Skín Ton',
     '🚶🏾‍♀' => 'Wúman Wé De Waká: Mídíọ́m Dák Skín Ton',
     '🚶🏿‍♀' => 'Wúman Wé De Waká: Dák Skín Ton',
+    '🚶🏻‍➡' => 'Pẹ́sin Wé De Waká: Laít Skín Ton, Fẹsin ráít',
+    '🚶🏼‍➡' => 'Pẹ́sin Wé De Waká: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🚶🏽‍➡' => 'Pẹ́sin Wé De Waká: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🚶🏾‍➡' => 'Pẹ́sin Wé De Waká: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🚶🏿‍➡' => 'Pẹ́sin Wé De Waká: Dák Skín Ton, Fẹsin ráít',
     '🧍🏻‍♂' => 'Man Wé De Stánd Ọp: Laít Skín Ton',
     '🧍🏼‍♂' => 'Man Wé De Stánd Ọp: Mídíọ́m-Laít Skín Ton',
     '🧍🏽‍♂' => 'Man Wé De Stánd Ọp: Mídíọ́m Skín Ton',
@@ -957,6 +1177,11 @@
     '🧎🏽‍♀' => 'Wúman Wé Níl Daun: Mídíọ́m Skín Ton',
     '🧎🏾‍♀' => 'Wúman Wé Níl Daun: Mídíọ́m Dák Skín Ton',
     '🧎🏿‍♀' => 'Wúman Wé Níl Daun: Dák Skín Ton',
+    '🧎🏻‍➡' => 'Pẹ́sin Wé Níl Daun: Laít Skín Ton, Fẹsin ráít',
+    '🧎🏼‍➡' => 'Pẹ́sin Wé Níl Daun: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🧎🏽‍➡' => 'Pẹ́sin Wé Níl Daun: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🧎🏾‍➡' => 'Pẹ́sin Wé Níl Daun: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🧎🏿‍➡' => 'Pẹ́sin Wé Níl Daun: Dák Skín Ton, Fẹsin ráít',
     '🧑🏻‍🦯' => 'Pẹ́sin Wit Waít Wọkín-Stik: Laít Skín Ton',
     '🧑🏼‍🦯' => 'Pẹ́sin Wit Waít Wọkín-Stik: Mídíọ́m-Laít Skín Ton',
     '🧑🏽‍🦯' => 'Pẹ́sin Wit Waít Wọkín-Stik: Mídíọ́m Skín Ton',
@@ -1012,6 +1237,21 @@
     '🏃🏽‍♀' => 'Wúman Wé De Rọn: Mídíọ́m Skín Ton',
     '🏃🏾‍♀' => 'Wúman Wé De Rọn: Mídíọ́m Dák Skín Ton',
     '🏃🏿‍♀' => 'Wúman Wé De Rọn: Dák Skín Ton',
+    '🏃🏻‍➡' => 'Pẹ́sin Wé De Rọn: Laít Skín Ton, Fẹsin ráít',
+    '🏃🏼‍➡' => 'Pẹ́sin Wé De Rọn: Mídíọ́m-Laít Skín Ton, Fẹsin ráít',
+    '🏃🏽‍➡' => 'Pẹ́sin Wé De Rọn: Mídíọ́m Skín Ton, Fẹsin ráít',
+    '🏃🏾‍➡' => 'Pẹ́sin Wé De Rọn: Mídíọ́m Dák Skín Ton, Fẹsin ráít',
+    '🏃🏿‍➡' => 'Pẹ́sin Wé De Rọn: Dák Skín Ton, Fẹsin ráít',
+    '👯🏻‍♀' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Laít Skín Ton',
+    '👯🏼‍♀' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m-Laít Skín Ton',
+    '👯🏽‍♀' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Skín Ton',
+    '👯🏾‍♀' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Dák Skín Ton',
+    '👯🏿‍♀' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins: Dák Skín Ton',
+    '👯🏻‍♂' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Laít Skín Ton',
+    '👯🏼‍♂' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m-Laít Skín Ton',
+    '👯🏽‍♂' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Skín Ton',
+    '👯🏾‍♂' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Mídíọ́m Dák Skín Ton',
+    '👯🏿‍♂' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins: Dák Skín Ton',
     '🧖🏻‍♂' => 'Man Wé Dé Ínsaíd Họt Wọtá Smók Rum: Laít Skín Ton',
     '🧖🏼‍♂' => 'Man Wé Dé Ínsaíd Họt Wọtá Smók Rum: Mídíọ́m-Laít Skín Ton',
     '🧖🏽‍♂' => 'Man Wé Dé Ínsaíd Họt Wọtá Smók Rum: Mídíọ́m Skín Ton',
@@ -1122,6 +1362,16 @@
     '🤸🏽‍♀' => 'Wúman Wé De Dú Kátwil: Mídíọ́m Skín Ton',
     '🤸🏾‍♀' => 'Wúman Wé De Dú Kátwil: Mídíọ́m Dák Skín Ton',
     '🤸🏿‍♀' => 'Wúman Wé De Dú Kátwil: Dák Skín Ton',
+    '🤼🏻‍♀' => 'Wímẹn Wé De Rẹ́sul: Laít Skín Ton',
+    '🤼🏼‍♀' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton',
+    '🤼🏽‍♀' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m Skín Ton',
+    '🤼🏾‍♀' => 'Wímẹn Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton',
+    '🤼🏿‍♀' => 'Wímẹn Wé De Rẹ́sul: Dák Skín Ton',
+    '🤼🏻‍♂' => 'Mẹn Wé De Rẹ́sul: Laít Skín Ton',
+    '🤼🏼‍♂' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton',
+    '🤼🏽‍♂' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m Skín Ton',
+    '🤼🏾‍♂' => 'Mẹn Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton',
+    '🤼🏿‍♂' => 'Mẹn Wé De Rẹ́sul: Dák Skín Ton',
     '🤽🏻‍♂' => 'Man Wé De Plé Wọ́tá Poló: Laít Skín Ton',
     '🤽🏼‍♂' => 'Man Wé De Plé Wọ́tá Poló: Mídíọ́m-Laít Skín Ton',
     '🤽🏽‍♂' => 'Man Wé De Plé Wọ́tá Poló: Mídíọ́m Skín Ton',
@@ -1174,6 +1424,9 @@
     '👩‍🦱' => 'Wúman: Kọ́lí Hea',
     '👩‍🦳' => 'Wúman: Waít Hea',
     '👩‍🦲' => 'Wúman: Bọld',
+    '🚶‍➡' => 'Pẹ́sin Wé De Waká: Fẹsin ráít',
+    '🧎‍➡' => 'Pẹ́sin Wé Níl Daun: Fẹsin ráít',
+    '🏃‍➡' => 'Pẹ́sin Wé De Rọn: Fẹsin ráít',
     '👨‍👦' => 'Fámíli: Man, Smọ́l Bọi',
     '👨‍👧' => 'Fámíli: Man, Gẹl',
     '👩‍👦' => 'Fámíli: Wúman, Smọ́l Bọi',
@@ -1314,6 +1567,7 @@
     '👩‍🦽' => 'Wúman Wé Dé Fọ Wílchia Wé Nọ́ Gẹ́t Ẹ́njin',
     '🏃‍♂' => 'Man Wé De Rọn',
     '🏃‍♀' => 'Wúman Wé De Rọn',
+    '🧑‍🩰' => 'bálẹ dánsá',
     '👯‍♂' => 'Mẹn Wé Wiá Rábít Iá Kaín Tins',
     '👯‍♀' => 'Wímẹn Wé Wiá Rábít Iá Kaín Tins',
     '🧖‍♂' => 'Man Wé Dé Ínsaíd Họt Wọtá Smók Rum',
@@ -1895,6 +2149,11 @@
     '🕴🏽' => 'Pẹ́sin Wé Wiá Sút-An-Sut An De Flót Fọ Ea: Mídíọ́m Skín Ton',
     '🕴🏾' => 'Pẹ́sin Wé Wiá Sút-An-Sut An De Flót Fọ Ea: Mídíọ́m Dák Skín Ton',
     '🕴🏿' => 'Pẹ́sin Wé Wiá Sút-An-Sut An De Flót Fọ Ea: Dák Skín Ton',
+    '👯🏻' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Laít Skín Ton',
+    '👯🏼' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m-Laít Skín Ton',
+    '👯🏽' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m Skín Ton',
+    '👯🏾' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Mídíọ́m Dák Skín Ton',
+    '👯🏿' => 'Pípul Wé Wiá Tins Wé Rizẹ́mbúl Rábit Ia: Dák Skín Ton',
     '🧖🏻' => 'Pẹ́sin Wé Dé Ínsaíd Họ́t-Wọ́ta-Smók Rum: Laít Skín Ton',
     '🧖🏼' => 'Pẹ́sin Wé Dé Ínsaíd Họ́t-Wọ́ta-Smók Rum: Mídíọ́m-Laít Skín Ton',
     '🧖🏽' => 'Pẹ́sin Wé Dé Ínsaíd Họ́t-Wọ́ta-Smók Rum: Mídíọ́m Skín Ton',
@@ -1960,6 +2219,11 @@
     '🤸🏽' => 'Pẹ́sin Wé De Dú Kátwil: Mídíọ́m Skín Ton',
     '🤸🏾' => 'Pẹ́sin Wé De Dú Kátwil: Mídíọ́m Dák Skín Ton',
     '🤸🏿' => 'Pẹ́sin Wé De Dú Kátwil: Dák Skín Ton',
+    '🤼🏻' => 'Pípul Wé De Rẹ́sul: Laít Skín Ton',
+    '🤼🏼' => 'Pípul Wé De Rẹ́sul: Mídíọ́m-Laít Skín Ton',
+    '🤼🏽' => 'Pípul Wé De Rẹ́sul: Mídíọ́m Skín Ton',
+    '🤼🏾' => 'Pípul Wé De Rẹ́sul: Mídíọ́m Dák Skín Ton',
+    '🤼🏿' => 'Pípul Wé De Rẹ́sul: Dák Skín Ton',
     '🤽🏻' => 'Pẹ́sin Wé De Plé Wọ́tá Poló: Laít Skín Ton',
     '🤽🏼' => 'Pẹ́sin Wé De Plé Wọ́tá Poló: Mídíọ́m-Laít Skín Ton',
     '🤽🏽' => 'Pẹ́sin Wé De Plé Wọ́tá Poló: Mídíọ́m Skín Ton',
@@ -2066,6 +2330,7 @@
     '🇨🇳' => 'Flag: Chaína',
     '🇨🇴' => 'Flag: Kolómbia',
     '🇨🇵' => 'Flag: Klipatọ́n Aíland',
+    '🇨🇶' => 'Flag: Sák',
     '🇨🇷' => 'Flag: Kósta Ríka',
     '🇨🇺' => 'Flag: Kiúbá',
     '🇨🇻' => 'Flag: Kép Vẹ́d',
@@ -2279,13 +2544,6 @@
     '🏽' => 'Mídíọ́m Skín Ton',
     '🏾' => 'Mídíọ́m Dák Skín Ton',
     '🏿' => 'Dák Skín Ton',
-    '🪉' => 'háp',
-    '🪏' => 'shọ́vẹ́l',
-    '🪾' => 'trii wey no get lif',
-    '🫆' => 'fíngaprint',
-    '🫜' => 'rut vẹ́jítébul',
-    '🫟' => 'splátá',
-    '🫩' => 'fes wé gẹ́t bíg bag under ai',
     '😀' => 'Láfín Fes',
     '😃' => 'Láfín Fes Wé Gẹ́t Bíg Ai-dẹm',
     '😄' => 'Láfín Fés Wit Shaínín Ai',
@@ -2339,6 +2597,7 @@
     '😪' => 'Fes Wé Slip De Kach',
     '🤤' => 'Fes Wé Salaíva De Kọmọ́t Fọ Maut',
     '😴' => 'Fes Wé De Slip',
+    '🫩' => 'fes wé gẹ́t bíg bag under ai',
     '😷' => 'Fes Wé Wía Mẹ́díkál Mask',
     '🤒' => 'Fes Wit Tamómẹ́ta',
     '🤕' => 'Fés Wit Bándej Fọ Hẹd',
@@ -2365,6 +2624,7 @@
     '😯' => 'Fes Wé Dé Kwáyẹt',
     '😲' => 'Fes Wé Sọpraiz Fúl Am',
     '😳' => 'Rẹ́d Fes',
+    '🫪' => 'dístọted fes',
     '🥺' => 'Fes Wé De Bẹ́g Fọ Sọ́mtin',
     '🥹' => 'Fes Wé De Hól Imsẹf Mék I Nọ́ Krai',
     '😦' => 'Fes Wé De Fraún Wit Ópún Maut',
@@ -2436,6 +2696,7 @@
     '💋' => 'Kis Mak',
     '💯' => 'Skọ Wé Bi Wọ́n Họ́ndrẹ́d Pọínt',
     '💢' => 'Vẹ́ks Sain',
+    '🫯' => 'fait klaọ́d',
     '💥' => 'Jam',
     '💫' => 'Ai De Tọn Tọ́n Yu An Yu Wán Fọl',
     '💦' => 'Sọm Drọ́p Ọf Swẹt',
@@ -2559,6 +2820,7 @@
     '🧞' => 'Jiínii',
     '🧟' => 'Zombí',
     '🧌' => 'Sọ́mtin Wé Rizẹ́mbúl Ọ́glí Húmánbin',
+    '🫈' => 'híárí kríẹchọ',
     '💆' => 'Pẹ́sin Wé Dẹm De Masáj Im Bọdí',
     '💇' => 'Pẹ́sin Wé Dẹm De Báb Im Hea',
     '🚶' => 'Pẹ́sin Wé De Waká',
@@ -2602,6 +2864,7 @@
     '🫂' => 'Pípul Wé Hól Ích Ọ́da Tait',
     '👪' => 'Fámíli',
     '👣' => 'Fútmak-dẹm',
+    '🫆' => 'fíngaprint',
     '🦰' => 'Rẹ́d Hea',
     '🦱' => 'Kọ́lí Hea',
     '🦳' => 'Waít Hea',
@@ -2701,6 +2964,7 @@
     '🐳' => 'Weil Wé De Bló Wọtá',
     '🐋' => 'Weil: Dis Na Wọ́n Bíg Ánímal Wé De Lív Fọ Wọtá',
     '🐬' => 'Dọ́lfin',
+    '🫍' => 'ọ́ká',
     '🦭' => 'Wọtá Ánímal Wé Im Nem Na Siil',
     '🐟' => 'Fish',
     '🐠' => 'Họ́t Ríjọ́n Fish',
@@ -2710,6 +2974,11 @@
     '🐚' => 'Snel Shẹl',
     '🪸' => 'Wọ́n Tin Wé De Fọ́m Fọ Bọtọ́m Ọf Díp Wọtá An Wé Im Nem Na "Kọ́ral"',
     '🪼' => 'Jẹ́lifish',
+    '🦀' => 'Krab',
+    '🦞' => 'Lọ́bsta',
+    '🦐' => 'Shrimp',
+    '🦑' => 'Skwid',
+    '🦪' => 'Ọísta',
     '🐌' => 'Snel',
     '🦋' => 'Bọtaflai',
     '🐛' => 'Smọ́l Ínsẹkt',
@@ -2754,6 +3023,7 @@
     '🪹' => 'Ẹ́mtí Nẹst',
     '🪺' => 'Nẹst Wit Ẹg-dẹm',
     '🍄' => 'Mọ́shrum',
+    '🪾' => 'trii wey no get lif',
     '🍇' => 'Grep-dẹm',
     '🍈' => 'Mẹ́lọn',
     '🍉' => 'Wọ́tamẹ́lọn',
@@ -2790,6 +3060,7 @@
     '🌰' => 'Chẹ́stnọt',
     '🫚' => 'Jínja Rut',
     '🫛' => 'pii pod',
+    '🫜' => 'rut vẹ́jítébul',
     '🍞' => 'Brẹd',
     '🥐' => 'Kroásant',
     '🥖' => 'Bagẹt Brẹd',
@@ -2841,11 +3112,6 @@
     '🥟' => 'Dọ́mplin',
     '🥠' => 'Fọtiún Kúki',
     '🥡' => 'Tékaút Bọks',
-    '🦀' => 'Krab',
-    '🦞' => 'Lọ́bsta',
-    '🦐' => 'Shrimp',
-    '🦑' => 'Skwid',
-    '🦪' => 'Ọísta',
     '🍦' => 'Sọ́ft Aís Krim',
     '🍧' => 'Ais Wé Dẹm Dọ́n Shev',
     '🍨' => 'Aís Krim',
@@ -2896,6 +3162,7 @@
     '🧭' => 'Kọ́mpas',
     '🏔' => 'Maúntin Wé Sno Kọ́vá Di Tọp',
     '⛰' => 'Maúntin',
+    '🛘' => 'lánd sláid',
     '🌋' => 'Volkáno',
     '🗻' => 'Fújí Maúntin',
     '🏕' => 'Kamp',
@@ -3256,16 +3523,18 @@
     '🎧' => 'Hẹ́dfon',
     '📻' => 'Rédio',
     '🎷' => 'Saksafon',
+    '🎺' => 'Trọ́mpẹt',
+    '🪊' => 'trọ́mbọ́n',
     '🪗' => 'Akọ́diọn',
     '🎸' => 'Gita',
     '🎹' => 'Miúzik Kíbọd',
-    '🎺' => 'Trọ́mpẹt',
     '🎻' => 'Vayọlin',
     '🪕' => 'Banjó',
     '🥁' => 'Drọm',
     '🪘' => 'Lọ́ng Drọm',
     '🪇' => 'Márákas',
     '🪈' => 'fluut',
+    '🪉' => 'háp',
     '📱' => 'Mọ́baíl Fon',
     '📲' => 'Mọ́baíl Fon Wit Áro',
     '☎' => 'Tẹlífon',
@@ -3319,8 +3588,9 @@
     '📑' => 'Bukmák Tab-dẹm',
     '🔖' => 'Bukmák',
     '🏷' => 'Lébẹl',
-    '💰' => 'Mọní Bag',
     '🪙' => 'Kọin',
+    '💰' => 'Mọní Bag',
+    '🪎' => 'Trẹ́zhọ chẹst',
     '💴' => 'Yẹn Pépá Mọní',
     '💵' => 'Dọ́la Pépá Mọní',
     '💶' => 'Yúro Pépá Mọní',
@@ -3403,6 +3673,7 @@
     '🧰' => 'Túlbọks',
     '🧲' => 'Magnẹ́tọ',
     '🪜' => 'Láda',
+    '🪏' => 'shọ́vẹ́l',
     '⚗' => 'Alẹ́mbik',
     '🧪' => 'Tẹ́st Tub',
     '🧫' => 'Pẹ́trí Plet',
@@ -3586,6 +3857,7 @@
     '✴' => 'Sta Wé Gẹ́t Ẹ́t Pọint',
     '❇' => 'Spákul',
     '™' => 'Tréd Mak',
+    '🫟' => 'splátá',
     '🔠' => 'Pút Látin Bíg Sain-dẹm',
     '🔡' => 'Pút Látin Smọ́l Lẹ́ta-dẹm',
     '🔢' => 'Pút Nọ́mba-dẹm',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pl.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'pocałunek: kobieta, kobieta, karnacja ciemna i karnacja średnia',
     '👩🏿‍❤‍💋‍👩🏾' => 'pocałunek: kobieta, kobieta, karnacja ciemna i karnacja średnio ciemna',
     '👩🏿‍❤‍💋‍👩🏿' => 'pocałunek: kobieta, kobieta i karnacja ciemna',
+    '🧑🏻‍🫯‍🧑🏼' => 'osoby uprawiające zapasy: karnacja jasna i karnacja średnio jasna',
+    '🧑🏻‍🫯‍🧑🏽' => 'osoby uprawiające zapasy: karnacja jasna i karnacja średnia',
+    '🧑🏻‍🫯‍🧑🏾' => 'osoby uprawiające zapasy: karnacja jasna i karnacja średnio ciemna',
+    '🧑🏻‍🫯‍🧑🏿' => 'osoby uprawiające zapasy: karnacja jasna i karnacja ciemna',
+    '🧑🏼‍🫯‍🧑🏻' => 'osoby uprawiające zapasy: karnacja średnio jasna i karnacja jasna',
+    '🧑🏼‍🫯‍🧑🏽' => 'osoby uprawiające zapasy: karnacja średnio jasna i karnacja średnia',
+    '🧑🏼‍🫯‍🧑🏾' => 'osoby uprawiające zapasy: karnacja średnio jasna i karnacja średnio ciemna',
+    '🧑🏼‍🫯‍🧑🏿' => 'osoby uprawiające zapasy: karnacja średnio jasna i karnacja ciemna',
+    '🧑🏽‍🫯‍🧑🏻' => 'osoby uprawiające zapasy: karnacja średnia i karnacja jasna',
+    '🧑🏽‍🫯‍🧑🏼' => 'osoby uprawiające zapasy: karnacja średnia i karnacja średnio jasna',
+    '🧑🏽‍🫯‍🧑🏾' => 'osoby uprawiające zapasy: karnacja średnia i karnacja średnio ciemna',
+    '🧑🏽‍🫯‍🧑🏿' => 'osoby uprawiające zapasy: karnacja średnia i karnacja ciemna',
+    '🧑🏾‍🫯‍🧑🏻' => 'osoby uprawiające zapasy: karnacja średnio ciemna i karnacja jasna',
+    '🧑🏾‍🫯‍🧑🏼' => 'osoby uprawiające zapasy: karnacja średnio ciemna i karnacja średnio jasna',
+    '🧑🏾‍🫯‍🧑🏽' => 'osoby uprawiające zapasy: karnacja średnio ciemna i karnacja średnia',
+    '🧑🏾‍🫯‍🧑🏿' => 'osoby uprawiające zapasy: karnacja średnio ciemna i karnacja ciemna',
+    '🧑🏿‍🫯‍🧑🏻' => 'osoby uprawiające zapasy: karnacja ciemna i karnacja jasna',
+    '🧑🏿‍🫯‍🧑🏼' => 'osoby uprawiające zapasy: karnacja ciemna i karnacja średnio jasna',
+    '🧑🏿‍🫯‍🧑🏽' => 'osoby uprawiające zapasy: karnacja ciemna i karnacja średnia',
+    '🧑🏿‍🫯‍🧑🏾' => 'osoby uprawiające zapasy: karnacja ciemna i karnacja średnio ciemna',
     '🧑🏻‍❤‍🧑🏼' => 'para z sercem: dorosły, dorosły, karnacja jasna i karnacja średnio jasna',
     '🧑🏻‍❤‍🧑🏽' => 'para z sercem: dorosły, dorosły, karnacja jasna i karnacja średnia',
     '🧑🏻‍❤‍🧑🏾' => 'para z sercem: dorosły, dorosły, karnacja jasna i karnacja średnio ciemna',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'para z sercem: dorosły, dorosły, karnacja ciemna i karnacja średnio jasna',
     '🧑🏿‍❤‍🧑🏽' => 'para z sercem: dorosły, dorosły, karnacja ciemna i karnacja średnia',
     '🧑🏿‍❤‍🧑🏾' => 'para z sercem: dorosły, dorosły, karnacja ciemna i karnacja średnio ciemna',
+    '🧑🏻‍🐰‍🧑🏼' => 'osoby z uszami królika na przyjęciu: karnacja jasna i karnacja średnio jasna',
+    '🧑🏻‍🐰‍🧑🏽' => 'osoby z uszami królika na przyjęciu: karnacja jasna i karnacja średnia',
+    '🧑🏻‍🐰‍🧑🏾' => 'osoby z uszami królika na przyjęciu: karnacja jasna i karnacja średnio ciemna',
+    '🧑🏻‍🐰‍🧑🏿' => 'osoby z uszami królika na przyjęciu: karnacja jasna i karnacja ciemna',
+    '🧑🏼‍🐰‍🧑🏻' => 'osoby z uszami królika na przyjęciu: karnacja średnio jasna i karnacja jasna',
+    '🧑🏼‍🐰‍🧑🏽' => 'osoby z uszami królika na przyjęciu: karnacja średnio jasna i karnacja średnia',
+    '🧑🏼‍🐰‍🧑🏾' => 'osoby z uszami królika na przyjęciu: karnacja średnio jasna i karnacja średnio ciemna',
+    '🧑🏼‍🐰‍🧑🏿' => 'osoby z uszami królika na przyjęciu: karnacja średnio jasna i karnacja ciemna',
+    '🧑🏽‍🐰‍🧑🏻' => 'osoby z uszami królika na przyjęciu: karnacja średnia i karnacja jasna',
+    '🧑🏽‍🐰‍🧑🏼' => 'osoby z uszami królika na przyjęciu: karnacja średnia i karnacja średnio jasna',
+    '🧑🏽‍🐰‍🧑🏾' => 'osoby z uszami królika na przyjęciu: karnacja średnia i karnacja średnio ciemna',
+    '🧑🏽‍🐰‍🧑🏿' => 'osoby z uszami królika na przyjęciu: karnacja średnia i karnacja ciemna',
+    '🧑🏾‍🐰‍🧑🏻' => 'osoby z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja jasna',
+    '🧑🏾‍🐰‍🧑🏼' => 'osoby z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja średnio jasna',
+    '🧑🏾‍🐰‍🧑🏽' => 'osoby z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja średnia',
+    '🧑🏾‍🐰‍🧑🏿' => 'osoby z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja ciemna',
+    '🧑🏿‍🐰‍🧑🏻' => 'osoby z uszami królika na przyjęciu: karnacja ciemna i karnacja jasna',
+    '🧑🏿‍🐰‍🧑🏼' => 'osoby z uszami królika na przyjęciu: karnacja ciemna i karnacja średnio jasna',
+    '🧑🏿‍🐰‍🧑🏽' => 'osoby z uszami królika na przyjęciu: karnacja ciemna i karnacja średnia',
+    '🧑🏿‍🐰‍🧑🏾' => 'osoby z uszami królika na przyjęciu: karnacja ciemna i karnacja średnio ciemna',
+    '👨🏻‍🫯‍👨🏼' => 'mężczyźni uprawiający zapasy: karnacja jasna i karnacja średnio jasna',
+    '👨🏻‍🫯‍👨🏽' => 'mężczyźni uprawiający zapasy: karnacja jasna i karnacja średnia',
+    '👨🏻‍🫯‍👨🏾' => 'mężczyźni uprawiający zapasy: karnacja jasna i karnacja średnio ciemna',
+    '👨🏻‍🫯‍👨🏿' => 'mężczyźni uprawiający zapasy: karnacja jasna i karnacja ciemna',
+    '👨🏼‍🫯‍👨🏻' => 'mężczyźni uprawiający zapasy: karnacja średnio jasna i karnacja jasna',
+    '👨🏼‍🫯‍👨🏽' => 'mężczyźni uprawiający zapasy: karnacja średnio jasna i karnacja średnia',
+    '👨🏼‍🫯‍👨🏾' => 'mężczyźni uprawiający zapasy: karnacja średnio jasna i karnacja średnio ciemna',
+    '👨🏼‍🫯‍👨🏿' => 'mężczyźni uprawiający zapasy: karnacja średnio jasna i karnacja ciemna',
+    '👨🏽‍🫯‍👨🏻' => 'mężczyźni uprawiający zapasy: karnacja średnia i karnacja jasna',
+    '👨🏽‍🫯‍👨🏼' => 'mężczyźni uprawiający zapasy: karnacja średnia i karnacja średnio jasna',
+    '👨🏽‍🫯‍👨🏾' => 'mężczyźni uprawiający zapasy: karnacja średnia i karnacja średnio ciemna',
+    '👨🏽‍🫯‍👨🏿' => 'mężczyźni uprawiający zapasy: karnacja średnia i karnacja ciemna',
+    '👨🏾‍🫯‍👨🏻' => 'mężczyźni uprawiający zapasy: karnacja średnio ciemna i karnacja jasna',
+    '👨🏾‍🫯‍👨🏼' => 'mężczyźni uprawiający zapasy: karnacja średnio ciemna i karnacja średnio jasna',
+    '👨🏾‍🫯‍👨🏽' => 'mężczyźni uprawiający zapasy: karnacja średnio ciemna i karnacja średnia',
+    '👨🏾‍🫯‍👨🏿' => 'mężczyźni uprawiający zapasy: karnacja średnio ciemna i karnacja ciemna',
+    '👨🏿‍🫯‍👨🏻' => 'mężczyźni uprawiający zapasy: karnacja ciemna i karnacja jasna',
+    '👨🏿‍🫯‍👨🏼' => 'mężczyźni uprawiający zapasy: karnacja ciemna i karnacja średnio jasna',
+    '👨🏿‍🫯‍👨🏽' => 'mężczyźni uprawiający zapasy: karnacja ciemna i karnacja średnia',
+    '👨🏿‍🫯‍👨🏾' => 'mężczyźni uprawiający zapasy: karnacja ciemna i karnacja średnio ciemna',
     '👨🏻‍❤‍👨🏻' => 'para z sercem: mężczyzna, mężczyzna i karnacja jasna',
     '👨🏻‍❤‍👨🏼' => 'para z sercem: mężczyzna, mężczyzna, karnacja jasna i karnacja średnio jasna',
     '👨🏻‍❤‍👨🏽' => 'para z sercem: mężczyzna, mężczyzna, karnacja jasna i karnacja średnia',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'para z sercem: mężczyzna, mężczyzna, karnacja ciemna i karnacja średnia',
     '👨🏿‍❤‍👨🏾' => 'para z sercem: mężczyzna, mężczyzna, karnacja ciemna i karnacja średnio ciemna',
     '👨🏿‍❤‍👨🏿' => 'para z sercem: mężczyzna, mężczyzna i karnacja ciemna',
+    '👨🏻‍🐰‍👨🏼' => 'mężczyźni z uszami królika na przyjęciu: karnacja jasna i karnacja średnio jasna',
+    '👨🏻‍🐰‍👨🏽' => 'mężczyźni z uszami królika na przyjęciu: karnacja jasna i karnacja średnia',
+    '👨🏻‍🐰‍👨🏾' => 'mężczyźni z uszami królika na przyjęciu: karnacja jasna i karnacja średnio ciemna',
+    '👨🏻‍🐰‍👨🏿' => 'mężczyźni z uszami królika na przyjęciu: karnacja jasna i karnacja ciemna',
+    '👨🏼‍🐰‍👨🏻' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnio jasna i karnacja jasna',
+    '👨🏼‍🐰‍👨🏽' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnio jasna i karnacja średnia',
+    '👨🏼‍🐰‍👨🏾' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnio jasna i karnacja średnio ciemna',
+    '👨🏼‍🐰‍👨🏿' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnio jasna i karnacja ciemna',
+    '👨🏽‍🐰‍👨🏻' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnia i karnacja jasna',
+    '👨🏽‍🐰‍👨🏼' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnia i karnacja średnio jasna',
+    '👨🏽‍🐰‍👨🏾' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnia i karnacja średnio ciemna',
+    '👨🏽‍🐰‍👨🏿' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnia i karnacja ciemna',
+    '👨🏾‍🐰‍👨🏻' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja jasna',
+    '👨🏾‍🐰‍👨🏼' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja średnio jasna',
+    '👨🏾‍🐰‍👨🏽' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja średnia',
+    '👨🏾‍🐰‍👨🏿' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja ciemna',
+    '👨🏿‍🐰‍👨🏻' => 'mężczyźni z uszami królika na przyjęciu: karnacja ciemna i karnacja jasna',
+    '👨🏿‍🐰‍👨🏼' => 'mężczyźni z uszami królika na przyjęciu: karnacja ciemna i karnacja średnio jasna',
+    '👨🏿‍🐰‍👨🏽' => 'mężczyźni z uszami królika na przyjęciu: karnacja ciemna i karnacja średnia',
+    '👨🏿‍🐰‍👨🏾' => 'mężczyźni z uszami królika na przyjęciu: karnacja ciemna i karnacja średnio ciemna',
+    '👩🏻‍🫯‍👩🏼' => 'kobiety uprawiające zapasy: karnacja jasna i karnacja średnio jasna',
+    '👩🏻‍🫯‍👩🏽' => 'kobiety uprawiające zapasy: karnacja jasna i karnacja średnia',
+    '👩🏻‍🫯‍👩🏾' => 'kobiety uprawiające zapasy: karnacja jasna i karnacja średnio ciemna',
+    '👩🏻‍🫯‍👩🏿' => 'kobiety uprawiające zapasy: karnacja jasna i karnacja ciemna',
+    '👩🏼‍🫯‍👩🏻' => 'kobiety uprawiające zapasy: karnacja średnio jasna i karnacja jasna',
+    '👩🏼‍🫯‍👩🏽' => 'kobiety uprawiające zapasy: karnacja średnio jasna i karnacja średnia',
+    '👩🏼‍🫯‍👩🏾' => 'kobiety uprawiające zapasy: karnacja średnio jasna i karnacja średnio ciemna',
+    '👩🏼‍🫯‍👩🏿' => 'kobiety uprawiające zapasy: karnacja średnio jasna i karnacja ciemna',
+    '👩🏽‍🫯‍👩🏻' => 'kobiety uprawiające zapasy: karnacja średnia i karnacja jasna',
+    '👩🏽‍🫯‍👩🏼' => 'kobiety uprawiające zapasy: karnacja średnia i karnacja średnio jasna',
+    '👩🏽‍🫯‍👩🏾' => 'kobiety uprawiające zapasy: karnacja średnia i karnacja średnio ciemna',
+    '👩🏽‍🫯‍👩🏿' => 'kobiety uprawiające zapasy: karnacja średnia i karnacja ciemna',
+    '👩🏾‍🫯‍👩🏻' => 'kobiety uprawiające zapasy: karnacja średnio ciemna i karnacja jasna',
+    '👩🏾‍🫯‍👩🏼' => 'kobiety uprawiające zapasy: karnacja średnio ciemna i karnacja średnio jasna',
+    '👩🏾‍🫯‍👩🏽' => 'kobiety uprawiające zapasy: karnacja średnio ciemna i karnacja średnia',
+    '👩🏾‍🫯‍👩🏿' => 'kobiety uprawiające zapasy: karnacja średnio ciemna i karnacja ciemna',
+    '👩🏿‍🫯‍👩🏻' => 'kobiety uprawiające zapasy: karnacja ciemna i karnacja jasna',
+    '👩🏿‍🫯‍👩🏼' => 'kobiety uprawiające zapasy: karnacja ciemna i karnacja średnio jasna',
+    '👩🏿‍🫯‍👩🏽' => 'kobiety uprawiające zapasy: karnacja ciemna i karnacja średnia',
+    '👩🏿‍🫯‍👩🏾' => 'kobiety uprawiające zapasy: karnacja ciemna i karnacja średnio ciemna',
     '👩🏻‍❤‍👨🏻' => 'para z sercem: kobieta, mężczyzna i karnacja jasna',
     '👩🏻‍❤‍👨🏼' => 'para z sercem: kobieta, mężczyzna, karnacja jasna i karnacja średnio jasna',
     '👩🏻‍❤‍👨🏽' => 'para z sercem: kobieta, mężczyzna, karnacja jasna i karnacja średnia',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'para z sercem: kobieta, kobieta, karnacja ciemna i karnacja średnia',
     '👩🏿‍❤‍👩🏾' => 'para z sercem: kobieta, kobieta, karnacja ciemna i karnacja średnio ciemna',
     '👩🏿‍❤‍👩🏿' => 'para z sercem: kobieta, kobieta i karnacja ciemna',
+    '👩🏻‍🐰‍👩🏼' => 'kobiety z uszami królika na przyjęciu: karnacja jasna i karnacja średnio jasna',
+    '👩🏻‍🐰‍👩🏽' => 'kobiety z uszami królika na przyjęciu: karnacja jasna i karnacja średnia',
+    '👩🏻‍🐰‍👩🏾' => 'kobiety z uszami królika na przyjęciu: karnacja jasna i karnacja średnio ciemna',
+    '👩🏻‍🐰‍👩🏿' => 'kobiety z uszami królika na przyjęciu: karnacja jasna i karnacja ciemna',
+    '👩🏼‍🐰‍👩🏻' => 'kobiety z uszami królika na przyjęciu: karnacja średnio jasna i karnacja jasna',
+    '👩🏼‍🐰‍👩🏽' => 'kobiety z uszami królika na przyjęciu: karnacja średnio jasna i karnacja średnia',
+    '👩🏼‍🐰‍👩🏾' => 'kobiety z uszami królika na przyjęciu: karnacja średnio jasna i karnacja średnio ciemna',
+    '👩🏼‍🐰‍👩🏿' => 'kobiety z uszami królika na przyjęciu: karnacja średnio jasna i karnacja ciemna',
+    '👩🏽‍🐰‍👩🏻' => 'kobiety z uszami królika na przyjęciu: karnacja średnia i karnacja jasna',
+    '👩🏽‍🐰‍👩🏼' => 'kobiety z uszami królika na przyjęciu: karnacja średnia i karnacja średnio jasna',
+    '👩🏽‍🐰‍👩🏾' => 'kobiety z uszami królika na przyjęciu: karnacja średnia i karnacja średnio ciemna',
+    '👩🏽‍🐰‍👩🏿' => 'kobiety z uszami królika na przyjęciu: karnacja średnia i karnacja ciemna',
+    '👩🏾‍🐰‍👩🏻' => 'kobiety z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja jasna',
+    '👩🏾‍🐰‍👩🏼' => 'kobiety z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja średnio jasna',
+    '👩🏾‍🐰‍👩🏽' => 'kobiety z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja średnia',
+    '👩🏾‍🐰‍👩🏿' => 'kobiety z uszami królika na przyjęciu: karnacja średnio ciemna i karnacja ciemna',
+    '👩🏿‍🐰‍👩🏻' => 'kobiety z uszami królika na przyjęciu: karnacja ciemna i karnacja jasna',
+    '👩🏿‍🐰‍👩🏼' => 'kobiety z uszami królika na przyjęciu: karnacja ciemna i karnacja średnio jasna',
+    '👩🏿‍🐰‍👩🏽' => 'kobiety z uszami królika na przyjęciu: karnacja ciemna i karnacja średnia',
+    '👩🏿‍🐰‍👩🏾' => 'kobiety z uszami królika na przyjęciu: karnacja ciemna i karnacja średnio ciemna',
     '🧑🏻‍🤝‍🧑🏻' => 'osoby trzymające się za ręce: karnacja jasna',
     '🧑🏻‍🤝‍🧑🏼' => 'osoby trzymające się za ręce: karnacja jasna i karnacja średnio jasna',
     '🧑🏻‍🤝‍🧑🏽' => 'osoby trzymające się za ręce: karnacja jasna i karnacja średnia',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flaga: Szkocja',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flaga: Walia',
     '🧑‍🧑‍🧒‍🧒' => 'rodzina: dorosły, dorosły, dziecko, dziecko',
-    '🚶🏻‍♀‍➡' => 'idąca kobieta zwrócony w prawo',
-    '🚶🏼‍♀‍➡' => 'idąca kobieta zwrócony w prawo',
-    '🚶🏽‍♀‍➡' => 'idąca kobieta zwrócony w prawo',
-    '🚶🏾‍♀‍➡' => 'idąca kobieta zwrócony w prawo',
-    '🚶🏿‍♀‍➡' => 'idąca kobieta zwrócony w prawo',
-    '🚶🏻‍♂‍➡' => 'idący mężczyzna zwrócony w prawo',
-    '🚶🏼‍♂‍➡' => 'idący mężczyzna zwrócony w prawo',
-    '🚶🏽‍♂‍➡' => 'idący mężczyzna zwrócony w prawo',
-    '🚶🏾‍♂‍➡' => 'idący mężczyzna zwrócony w prawo',
-    '🚶🏿‍♂‍➡' => 'idący mężczyzna zwrócony w prawo',
-    '🧎🏻‍♀‍➡' => 'klęcząca kobieta zwrócony w prawo',
-    '🧎🏼‍♀‍➡' => 'klęcząca kobieta zwrócony w prawo',
-    '🧎🏽‍♀‍➡' => 'klęcząca kobieta zwrócony w prawo',
-    '🧎🏾‍♀‍➡' => 'klęcząca kobieta zwrócony w prawo',
-    '🧎🏿‍♀‍➡' => 'klęcząca kobieta zwrócony w prawo',
-    '🧎🏻‍♂‍➡' => 'klęczący mężczyzna zwrócony w prawo',
-    '🧎🏼‍♂‍➡' => 'klęczący mężczyzna zwrócony w prawo',
-    '🧎🏽‍♂‍➡' => 'klęczący mężczyzna zwrócony w prawo',
-    '🧎🏾‍♂‍➡' => 'klęczący mężczyzna zwrócony w prawo',
-    '🧎🏿‍♂‍➡' => 'klęczący mężczyzna zwrócony w prawo',
-    '🧑🏻‍🦯‍➡' => 'osoba z białą laską zwrócony w prawo',
-    '🧑🏼‍🦯‍➡' => 'osoba z białą laską zwrócony w prawo',
-    '🧑🏽‍🦯‍➡' => 'osoba z białą laską zwrócony w prawo',
-    '🧑🏾‍🦯‍➡' => 'osoba z białą laską zwrócony w prawo',
-    '🧑🏿‍🦯‍➡' => 'osoba z białą laską zwrócony w prawo',
-    '👨🏻‍🦯‍➡' => 'mężczyzna z białą laską zwrócony w prawo',
-    '👨🏼‍🦯‍➡' => 'mężczyzna z białą laską zwrócony w prawo',
-    '👨🏽‍🦯‍➡' => 'mężczyzna z białą laską zwrócony w prawo',
-    '👨🏾‍🦯‍➡' => 'mężczyzna z białą laską zwrócony w prawo',
-    '👨🏿‍🦯‍➡' => 'mężczyzna z białą laską zwrócony w prawo',
-    '👩🏻‍🦯‍➡' => 'kobieta z białą laską zwrócony w prawo',
-    '👩🏼‍🦯‍➡' => 'kobieta z białą laską zwrócony w prawo',
-    '👩🏽‍🦯‍➡' => 'kobieta z białą laską zwrócony w prawo',
-    '👩🏾‍🦯‍➡' => 'kobieta z białą laską zwrócony w prawo',
-    '👩🏿‍🦯‍➡' => 'kobieta z białą laską zwrócony w prawo',
-    '🧑🏻‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '🧑🏼‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '🧑🏽‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '🧑🏾‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '🧑🏿‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👨🏻‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👨🏼‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👨🏽‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👨🏾‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👨🏿‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👩🏻‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👩🏼‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👩🏽‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👩🏾‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👩🏿‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '🧑🏻‍🦽‍➡' => 'osoba na wózku inwalidzkim zwrócony w prawo',
-    '🧑🏼‍🦽‍➡' => 'osoba na wózku inwalidzkim zwrócony w prawo',
-    '🧑🏽‍🦽‍➡' => 'osoba na wózku inwalidzkim zwrócony w prawo',
-    '🧑🏾‍🦽‍➡' => 'osoba na wózku inwalidzkim zwrócony w prawo',
-    '🧑🏿‍🦽‍➡' => 'osoba na wózku inwalidzkim zwrócony w prawo',
-    '👨🏻‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim zwrócony w prawo',
-    '👨🏼‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim zwrócony w prawo',
-    '👨🏽‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim zwrócony w prawo',
-    '👨🏾‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim zwrócony w prawo',
-    '👨🏿‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim zwrócony w prawo',
-    '👩🏻‍🦽‍➡' => 'kobieta na wózku inwalidzkim zwrócony w prawo',
-    '👩🏼‍🦽‍➡' => 'kobieta na wózku inwalidzkim zwrócony w prawo',
-    '👩🏽‍🦽‍➡' => 'kobieta na wózku inwalidzkim zwrócony w prawo',
-    '👩🏾‍🦽‍➡' => 'kobieta na wózku inwalidzkim zwrócony w prawo',
-    '👩🏿‍🦽‍➡' => 'kobieta na wózku inwalidzkim zwrócony w prawo',
-    '🏃🏻‍♀‍➡' => 'biegnąca kobieta zwrócony w prawo',
-    '🏃🏼‍♀‍➡' => 'biegnąca kobieta zwrócony w prawo',
-    '🏃🏽‍♀‍➡' => 'biegnąca kobieta zwrócony w prawo',
-    '🏃🏾‍♀‍➡' => 'biegnąca kobieta zwrócony w prawo',
-    '🏃🏿‍♀‍➡' => 'biegnąca kobieta zwrócony w prawo',
-    '🏃🏻‍♂‍➡' => 'biegnący mężczyzna zwrócony w prawo',
-    '🏃🏼‍♂‍➡' => 'biegnący mężczyzna zwrócony w prawo',
-    '🏃🏽‍♂‍➡' => 'biegnący mężczyzna zwrócony w prawo',
-    '🏃🏾‍♂‍➡' => 'biegnący mężczyzna zwrócony w prawo',
-    '🏃🏿‍♂‍➡' => 'biegnący mężczyzna zwrócony w prawo',
+    '🚶🏻‍♀‍➡' => 'idąca kobieta: karnacja jasna i zwrócony w prawo',
+    '🚶🏼‍♀‍➡' => 'idąca kobieta: karnacja średnio jasna i zwrócony w prawo',
+    '🚶🏽‍♀‍➡' => 'idąca kobieta: karnacja średnia i zwrócony w prawo',
+    '🚶🏾‍♀‍➡' => 'idąca kobieta: karnacja średnio ciemna i zwrócony w prawo',
+    '🚶🏿‍♀‍➡' => 'idąca kobieta: karnacja ciemna i zwrócony w prawo',
+    '🚶🏻‍♂‍➡' => 'idący mężczyzna: karnacja jasna i zwrócony w prawo',
+    '🚶🏼‍♂‍➡' => 'idący mężczyzna: karnacja średnio jasna i zwrócony w prawo',
+    '🚶🏽‍♂‍➡' => 'idący mężczyzna: karnacja średnia i zwrócony w prawo',
+    '🚶🏾‍♂‍➡' => 'idący mężczyzna: karnacja średnio ciemna i zwrócony w prawo',
+    '🚶🏿‍♂‍➡' => 'idący mężczyzna: karnacja ciemna i zwrócony w prawo',
+    '🧎🏻‍♀‍➡' => 'klęcząca kobieta: karnacja jasna i zwrócony w prawo',
+    '🧎🏼‍♀‍➡' => 'klęcząca kobieta: karnacja średnio jasna i zwrócony w prawo',
+    '🧎🏽‍♀‍➡' => 'klęcząca kobieta: karnacja średnia i zwrócony w prawo',
+    '🧎🏾‍♀‍➡' => 'klęcząca kobieta: karnacja średnio ciemna i zwrócony w prawo',
+    '🧎🏿‍♀‍➡' => 'klęcząca kobieta: karnacja ciemna i zwrócony w prawo',
+    '🧎🏻‍♂‍➡' => 'klęczący mężczyzna: karnacja jasna i zwrócony w prawo',
+    '🧎🏼‍♂‍➡' => 'klęczący mężczyzna: karnacja średnio jasna i zwrócony w prawo',
+    '🧎🏽‍♂‍➡' => 'klęczący mężczyzna: karnacja średnia i zwrócony w prawo',
+    '🧎🏾‍♂‍➡' => 'klęczący mężczyzna: karnacja średnio ciemna i zwrócony w prawo',
+    '🧎🏿‍♂‍➡' => 'klęczący mężczyzna: karnacja ciemna i zwrócony w prawo',
+    '🧑🏻‍🦯‍➡' => 'osoba z białą laską: karnacja jasna i zwrócony w prawo',
+    '🧑🏼‍🦯‍➡' => 'osoba z białą laską: karnacja średnio jasna i zwrócony w prawo',
+    '🧑🏽‍🦯‍➡' => 'osoba z białą laską: karnacja średnia i zwrócony w prawo',
+    '🧑🏾‍🦯‍➡' => 'osoba z białą laską: karnacja średnio ciemna i zwrócony w prawo',
+    '🧑🏿‍🦯‍➡' => 'osoba z białą laską: karnacja ciemna i zwrócony w prawo',
+    '👨🏻‍🦯‍➡' => 'mężczyzna z białą laską: karnacja jasna i zwrócony w prawo',
+    '👨🏼‍🦯‍➡' => 'mężczyzna z białą laską: karnacja średnio jasna i zwrócony w prawo',
+    '👨🏽‍🦯‍➡' => 'mężczyzna z białą laską: karnacja średnia i zwrócony w prawo',
+    '👨🏾‍🦯‍➡' => 'mężczyzna z białą laską: karnacja średnio ciemna i zwrócony w prawo',
+    '👨🏿‍🦯‍➡' => 'mężczyzna z białą laską: karnacja ciemna i zwrócony w prawo',
+    '👩🏻‍🦯‍➡' => 'kobieta z białą laską: karnacja jasna i zwrócony w prawo',
+    '👩🏼‍🦯‍➡' => 'kobieta z białą laską: karnacja średnio jasna i zwrócony w prawo',
+    '👩🏽‍🦯‍➡' => 'kobieta z białą laską: karnacja średnia i zwrócony w prawo',
+    '👩🏾‍🦯‍➡' => 'kobieta z białą laską: karnacja średnio ciemna i zwrócony w prawo',
+    '👩🏿‍🦯‍➡' => 'kobieta z białą laską: karnacja ciemna i zwrócony w prawo',
+    '🧑🏻‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim: karnacja jasna i zwrócony w prawo',
+    '🧑🏼‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim: karnacja średnio jasna i zwrócony w prawo',
+    '🧑🏽‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim: karnacja średnia i zwrócony w prawo',
+    '🧑🏾‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim: karnacja średnio ciemna i zwrócony w prawo',
+    '🧑🏿‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim: karnacja ciemna i zwrócony w prawo',
+    '👨🏻‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim: karnacja jasna i zwrócony w prawo',
+    '👨🏼‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim: karnacja średnio jasna i zwrócony w prawo',
+    '👨🏽‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim: karnacja średnia i zwrócony w prawo',
+    '👨🏾‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim: karnacja średnio ciemna i zwrócony w prawo',
+    '👨🏿‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim: karnacja ciemna i zwrócony w prawo',
+    '👩🏻‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim: karnacja jasna i zwrócony w prawo',
+    '👩🏼‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim: karnacja średnio jasna i zwrócony w prawo',
+    '👩🏽‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim: karnacja średnia i zwrócony w prawo',
+    '👩🏾‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim: karnacja średnio ciemna i zwrócony w prawo',
+    '👩🏿‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim: karnacja ciemna i zwrócony w prawo',
+    '🧑🏻‍🦽‍➡' => 'osoba na wózku inwalidzkim: karnacja jasna i zwrócony w prawo',
+    '🧑🏼‍🦽‍➡' => 'osoba na wózku inwalidzkim: karnacja średnio jasna i zwrócony w prawo',
+    '🧑🏽‍🦽‍➡' => 'osoba na wózku inwalidzkim: karnacja średnia i zwrócony w prawo',
+    '🧑🏾‍🦽‍➡' => 'osoba na wózku inwalidzkim: karnacja średnio ciemna i zwrócony w prawo',
+    '🧑🏿‍🦽‍➡' => 'osoba na wózku inwalidzkim: karnacja ciemna i zwrócony w prawo',
+    '👨🏻‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim: karnacja jasna i zwrócony w prawo',
+    '👨🏼‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim: karnacja średnio jasna i zwrócony w prawo',
+    '👨🏽‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim: karnacja średnia i zwrócony w prawo',
+    '👨🏾‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim: karnacja średnio ciemna i zwrócony w prawo',
+    '👨🏿‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim: karnacja ciemna i zwrócony w prawo',
+    '👩🏻‍🦽‍➡' => 'kobieta na wózku inwalidzkim: karnacja jasna i zwrócony w prawo',
+    '👩🏼‍🦽‍➡' => 'kobieta na wózku inwalidzkim: karnacja średnio jasna i zwrócony w prawo',
+    '👩🏽‍🦽‍➡' => 'kobieta na wózku inwalidzkim: karnacja średnia i zwrócony w prawo',
+    '👩🏾‍🦽‍➡' => 'kobieta na wózku inwalidzkim: karnacja średnio ciemna i zwrócony w prawo',
+    '👩🏿‍🦽‍➡' => 'kobieta na wózku inwalidzkim: karnacja ciemna i zwrócony w prawo',
+    '🏃🏻‍♀‍➡' => 'biegnąca kobieta: karnacja jasna i zwrócony w prawo',
+    '🏃🏼‍♀‍➡' => 'biegnąca kobieta: karnacja średnio jasna i zwrócony w prawo',
+    '🏃🏽‍♀‍➡' => 'biegnąca kobieta: karnacja średnia i zwrócony w prawo',
+    '🏃🏾‍♀‍➡' => 'biegnąca kobieta: karnacja średnio ciemna i zwrócony w prawo',
+    '🏃🏿‍♀‍➡' => 'biegnąca kobieta: karnacja ciemna i zwrócony w prawo',
+    '🏃🏻‍♂‍➡' => 'biegnący mężczyzna: karnacja jasna i zwrócony w prawo',
+    '🏃🏼‍♂‍➡' => 'biegnący mężczyzna: karnacja średnio jasna i zwrócony w prawo',
+    '🏃🏽‍♂‍➡' => 'biegnący mężczyzna: karnacja średnia i zwrócony w prawo',
+    '🏃🏾‍♂‍➡' => 'biegnący mężczyzna: karnacja średnio ciemna i zwrócony w prawo',
+    '🏃🏿‍♂‍➡' => 'biegnący mężczyzna: karnacja ciemna i zwrócony w prawo',
     '🫱🏻‍🫲🏼' => 'uścisk dłoni: karnacja jasna i karnacja średnio jasna',
     '🫱🏻‍🫲🏽' => 'uścisk dłoni: karnacja jasna i karnacja średnia',
     '🫱🏻‍🫲🏾' => 'uścisk dłoni: karnacja jasna i karnacja średnio ciemna',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'uścisk dłoni: karnacja ciemna i karnacja średnio jasna',
     '🫱🏿‍🫲🏽' => 'uścisk dłoni: karnacja ciemna i karnacja średnia',
     '🫱🏿‍🫲🏾' => 'uścisk dłoni: karnacja ciemna i karnacja średnio ciemna',
-    '🚶‍♀‍➡' => 'idąca kobieta zwrócony w prawo',
-    '🚶‍♂‍➡' => 'idący mężczyzna zwrócony w prawo',
-    '🧎‍♀‍➡' => 'klęcząca kobieta zwrócony w prawo',
-    '🧎‍♂‍➡' => 'klęczący mężczyzna zwrócony w prawo',
-    '🧑‍🦯‍➡' => 'osoba z białą laską zwrócony w prawo',
-    '👨‍🦯‍➡' => 'mężczyzna z białą laską zwrócony w prawo',
-    '👩‍🦯‍➡' => 'kobieta z białą laską zwrócony w prawo',
-    '🧑‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👨‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '👩‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim zwrócony w prawo',
-    '🧑‍🦽‍➡' => 'osoba na wózku inwalidzkim zwrócony w prawo',
-    '👨‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim zwrócony w prawo',
-    '👩‍🦽‍➡' => 'kobieta na wózku inwalidzkim zwrócony w prawo',
-    '🏃‍♀‍➡' => 'biegnąca kobieta zwrócony w prawo',
-    '🏃‍♂‍➡' => 'biegnący mężczyzna zwrócony w prawo',
+    '🚶‍♀‍➡' => 'idąca kobieta: zwrócony w prawo',
+    '🚶‍♂‍➡' => 'idący mężczyzna: zwrócony w prawo',
+    '🧎‍♀‍➡' => 'klęcząca kobieta: zwrócony w prawo',
+    '🧎‍♂‍➡' => 'klęczący mężczyzna: zwrócony w prawo',
+    '🧑‍🦯‍➡' => 'osoba z białą laską: zwrócony w prawo',
+    '👨‍🦯‍➡' => 'mężczyzna z białą laską: zwrócony w prawo',
+    '👩‍🦯‍➡' => 'kobieta z białą laską: zwrócony w prawo',
+    '🧑‍🦼‍➡' => 'osoba na elektrycznym wózku inwalidzkim: zwrócony w prawo',
+    '👨‍🦼‍➡' => 'mężczyzna na elektrycznym wózku inwalidzkim: zwrócony w prawo',
+    '👩‍🦼‍➡' => 'kobieta na elektrycznym wózku inwalidzkim: zwrócony w prawo',
+    '🧑‍🦽‍➡' => 'osoba na wózku inwalidzkim: zwrócony w prawo',
+    '👨‍🦽‍➡' => 'mężczyzna na wózku inwalidzkim: zwrócony w prawo',
+    '👩‍🦽‍➡' => 'kobieta na wózku inwalidzkim: zwrócony w prawo',
+    '🏃‍♀‍➡' => 'biegnąca kobieta: zwrócony w prawo',
+    '🏃‍♂‍➡' => 'biegnący mężczyzna: zwrócony w prawo',
     '👩‍❤‍👨' => 'para z sercem: kobieta i mężczyzna',
     '👨‍❤‍👨' => 'para z sercem: mężczyzna i mężczyzna',
     '👩‍❤‍👩' => 'para z sercem: kobieta i kobieta',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'dorosły: karnacja średnia i łysy',
     '🧑🏾‍🦲' => 'dorosły: karnacja średnio ciemna i łysy',
     '🧑🏿‍🦲' => 'dorosły: karnacja ciemna i łysy',
+    '🧑🏻‍🩰' => 'baletnica: karnacja jasna',
+    '🧑🏼‍🩰' => 'baletnica: karnacja średnio jasna',
+    '🧑🏽‍🩰' => 'baletnica: karnacja średnia',
+    '🧑🏾‍🩰' => 'baletnica: karnacja średnio ciemna',
+    '🧑🏿‍🩰' => 'baletnica: karnacja ciemna',
     '🧔🏻‍♂' => 'mężczyzna z brodą: karnacja jasna',
     '🧔🏼‍♂' => 'mężczyzna z brodą: karnacja średnio jasna',
     '🧔🏽‍♂' => 'mężczyzna z brodą: karnacja średnia',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'idąca kobieta: karnacja średnia',
     '🚶🏾‍♀' => 'idąca kobieta: karnacja średnio ciemna',
     '🚶🏿‍♀' => 'idąca kobieta: karnacja ciemna',
-    '🚶🏻‍➡' => 'idąca osoba zwrócony w prawo',
-    '🚶🏼‍➡' => 'idąca osoba zwrócony w prawo',
-    '🚶🏽‍➡' => 'idąca osoba zwrócony w prawo',
-    '🚶🏾‍➡' => 'idąca osoba zwrócony w prawo',
-    '🚶🏿‍➡' => 'idąca osoba zwrócony w prawo',
+    '🚶🏻‍➡' => 'idąca osoba: karnacja jasna i zwrócony w prawo',
+    '🚶🏼‍➡' => 'idąca osoba: karnacja średnio jasna i zwrócony w prawo',
+    '🚶🏽‍➡' => 'idąca osoba: karnacja średnia i zwrócony w prawo',
+    '🚶🏾‍➡' => 'idąca osoba: karnacja średnio ciemna i zwrócony w prawo',
+    '🚶🏿‍➡' => 'idąca osoba: karnacja ciemna i zwrócony w prawo',
     '🧍🏻‍♂' => 'stojący mężczyzna: karnacja jasna',
     '🧍🏼‍♂' => 'stojący mężczyzna: karnacja średnio jasna',
     '🧍🏽‍♂' => 'stojący mężczyzna: karnacja średnia',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'klęcząca kobieta: karnacja średnia',
     '🧎🏾‍♀' => 'klęcząca kobieta: karnacja średnio ciemna',
     '🧎🏿‍♀' => 'klęcząca kobieta: karnacja ciemna',
-    '🧎🏻‍➡' => 'klęcząca osoba zwrócony w prawo',
-    '🧎🏼‍➡' => 'klęcząca osoba zwrócony w prawo',
-    '🧎🏽‍➡' => 'klęcząca osoba zwrócony w prawo',
-    '🧎🏾‍➡' => 'klęcząca osoba zwrócony w prawo',
-    '🧎🏿‍➡' => 'klęcząca osoba zwrócony w prawo',
+    '🧎🏻‍➡' => 'klęcząca osoba: karnacja jasna i zwrócony w prawo',
+    '🧎🏼‍➡' => 'klęcząca osoba: karnacja średnio jasna i zwrócony w prawo',
+    '🧎🏽‍➡' => 'klęcząca osoba: karnacja średnia i zwrócony w prawo',
+    '🧎🏾‍➡' => 'klęcząca osoba: karnacja średnio ciemna i zwrócony w prawo',
+    '🧎🏿‍➡' => 'klęcząca osoba: karnacja ciemna i zwrócony w prawo',
     '🧑🏻‍🦯' => 'osoba z białą laską: karnacja jasna',
     '🧑🏼‍🦯' => 'osoba z białą laską: karnacja średnio jasna',
     '🧑🏽‍🦯' => 'osoba z białą laską: karnacja średnia',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'biegnąca kobieta: karnacja średnia',
     '🏃🏾‍♀' => 'biegnąca kobieta: karnacja średnio ciemna',
     '🏃🏿‍♀' => 'biegnąca kobieta: karnacja ciemna',
-    '🏃🏻‍➡' => 'biegnąca osoba zwrócony w prawo',
-    '🏃🏼‍➡' => 'biegnąca osoba zwrócony w prawo',
-    '🏃🏽‍➡' => 'biegnąca osoba zwrócony w prawo',
-    '🏃🏾‍➡' => 'biegnąca osoba zwrócony w prawo',
-    '🏃🏿‍➡' => 'biegnąca osoba zwrócony w prawo',
+    '🏃🏻‍➡' => 'biegnąca osoba: karnacja jasna i zwrócony w prawo',
+    '🏃🏼‍➡' => 'biegnąca osoba: karnacja średnio jasna i zwrócony w prawo',
+    '🏃🏽‍➡' => 'biegnąca osoba: karnacja średnia i zwrócony w prawo',
+    '🏃🏾‍➡' => 'biegnąca osoba: karnacja średnio ciemna i zwrócony w prawo',
+    '🏃🏿‍➡' => 'biegnąca osoba: karnacja ciemna i zwrócony w prawo',
+    '👯🏻‍♀' => 'kobiety z uszami królika na przyjęciu: karnacja jasna',
+    '👯🏼‍♀' => 'kobiety z uszami królika na przyjęciu: karnacja średnio jasna',
+    '👯🏽‍♀' => 'kobiety z uszami królika na przyjęciu: karnacja średnia',
+    '👯🏾‍♀' => 'kobiety z uszami królika na przyjęciu: karnacja średnio ciemna',
+    '👯🏿‍♀' => 'kobiety z uszami królika na przyjęciu: karnacja ciemna',
+    '👯🏻‍♂' => 'mężczyźni z uszami królika na przyjęciu: karnacja jasna',
+    '👯🏼‍♂' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnio jasna',
+    '👯🏽‍♂' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnia',
+    '👯🏾‍♂' => 'mężczyźni z uszami królika na przyjęciu: karnacja średnio ciemna',
+    '👯🏿‍♂' => 'mężczyźni z uszami królika na przyjęciu: karnacja ciemna',
     '🧖🏻‍♂' => 'mężczyzna w zaparowanym pomieszczeniu: karnacja jasna',
     '🧖🏼‍♂' => 'mężczyzna w zaparowanym pomieszczeniu: karnacja średnio jasna',
     '🧖🏽‍♂' => 'mężczyzna w zaparowanym pomieszczeniu: karnacja średnia',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'kobieta robiąca gwiazdę: karnacja średnia',
     '🤸🏾‍♀' => 'kobieta robiąca gwiazdę: karnacja średnio ciemna',
     '🤸🏿‍♀' => 'kobieta robiąca gwiazdę: karnacja ciemna',
+    '🤼🏻‍♀' => 'kobiety uprawiające zapasy: karnacja jasna',
+    '🤼🏼‍♀' => 'kobiety uprawiające zapasy: karnacja średnio jasna',
+    '🤼🏽‍♀' => 'kobiety uprawiające zapasy: karnacja średnia',
+    '🤼🏾‍♀' => 'kobiety uprawiające zapasy: karnacja średnio ciemna',
+    '🤼🏿‍♀' => 'kobiety uprawiające zapasy: karnacja ciemna',
+    '🤼🏻‍♂' => 'mężczyźni uprawiający zapasy: karnacja jasna',
+    '🤼🏼‍♂' => 'mężczyźni uprawiający zapasy: karnacja średnio jasna',
+    '🤼🏽‍♂' => 'mężczyźni uprawiający zapasy: karnacja średnia',
+    '🤼🏾‍♂' => 'mężczyźni uprawiający zapasy: karnacja średnio ciemna',
+    '🤼🏿‍♂' => 'mężczyźni uprawiający zapasy: karnacja ciemna',
     '🤽🏻‍♂' => 'mężczyzna grający w piłkę wodną: karnacja jasna',
     '🤽🏼‍♂' => 'mężczyzna grający w piłkę wodną: karnacja średnio jasna',
     '🤽🏽‍♂' => 'mężczyzna grający w piłkę wodną: karnacja średnia',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'kobieta: kręcone włosy',
     '👩‍🦳' => 'kobieta: białe włosy',
     '👩‍🦲' => 'kobieta: łysy',
-    '🚶‍➡' => 'idąca osoba zwrócony w prawo',
-    '🧎‍➡' => 'klęcząca osoba zwrócony w prawo',
-    '🏃‍➡' => 'biegnąca osoba zwrócony w prawo',
+    '🚶‍➡' => 'idąca osoba: zwrócony w prawo',
+    '🧎‍➡' => 'klęcząca osoba: zwrócony w prawo',
+    '🏃‍➡' => 'biegnąca osoba: zwrócony w prawo',
     '👨‍👦' => 'rodzina: mężczyzna i chłopiec',
     '👨‍👧' => 'rodzina: mężczyzna i dziewczynka',
     '👩‍👦' => 'rodzina: kobieta i chłopiec',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'kobieta na wózku inwalidzkim',
     '🏃‍♂' => 'biegnący mężczyzna',
     '🏃‍♀' => 'biegnąca kobieta',
+    '🧑‍🩰' => 'baletnica',
     '👯‍♂' => 'mężczyźni z uszami królika na przyjęciu',
     '👯‍♀' => 'kobiety z uszami królika na przyjęciu',
     '🧖‍♂' => 'mężczyzna w zaparowanym pomieszczeniu',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'lewitujący mężczyzna w garniturze: karnacja średnia',
     '🕴🏾' => 'lewitujący mężczyzna w garniturze: karnacja średnio ciemna',
     '🕴🏿' => 'lewitujący mężczyzna w garniturze: karnacja ciemna',
+    '👯🏻' => 'osoby z uszami królika na przyjęciu: karnacja jasna',
+    '👯🏼' => 'osoby z uszami królika na przyjęciu: karnacja średnio jasna',
+    '👯🏽' => 'osoby z uszami królika na przyjęciu: karnacja średnia',
+    '👯🏾' => 'osoby z uszami królika na przyjęciu: karnacja średnio ciemna',
+    '👯🏿' => 'osoby z uszami królika na przyjęciu: karnacja ciemna',
     '🧖🏻' => 'osoba w zaparowanym pomieszczeniu: karnacja jasna',
     '🧖🏼' => 'osoba w zaparowanym pomieszczeniu: karnacja średnio jasna',
     '🧖🏽' => 'osoba w zaparowanym pomieszczeniu: karnacja średnia',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'osoba robiąca gwiazdę: karnacja średnia',
     '🤸🏾' => 'osoba robiąca gwiazdę: karnacja średnio ciemna',
     '🤸🏿' => 'osoba robiąca gwiazdę: karnacja ciemna',
+    '🤼🏻' => 'osoby uprawiające zapasy: karnacja jasna',
+    '🤼🏼' => 'osoby uprawiające zapasy: karnacja średnio jasna',
+    '🤼🏽' => 'osoby uprawiające zapasy: karnacja średnia',
+    '🤼🏾' => 'osoby uprawiające zapasy: karnacja średnio ciemna',
+    '🤼🏿' => 'osoby uprawiające zapasy: karnacja ciemna',
     '🤽🏻' => 'osoba grająca w piłkę wodną: karnacja jasna',
     '🤽🏼' => 'osoba grająca w piłkę wodną: karnacja średnio jasna',
     '🤽🏽' => 'osoba grająca w piłkę wodną: karnacja średnia',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'flaga: Chiny',
     '🇨🇴' => 'flaga: Kolumbia',
     '🇨🇵' => 'flaga: Wyspa Clippertona',
+    '🇨🇶' => 'flaga: Sark',
     '🇨🇷' => 'flaga: Kostaryka',
     '🇨🇺' => 'flaga: Kuba',
     '🇨🇻' => 'flaga: Republika Zielonego Przylądka',
@@ -2390,13 +2547,6 @@
     '🏽' => 'karnacja średnia',
     '🏾' => 'karnacja średnio ciemna',
     '🏿' => 'karnacja ciemna',
-    '🪉' => 'harfa',
-    '🪏' => 'łopata',
-    '🪾' => 'drzewo bez liści',
-    '🫆' => 'odcisk palca',
-    '🫜' => 'warzywo korzeniowe',
-    '🫟' => 'rozbryzg',
-    '🫩' => 'twarz z workami pod oczami',
     '😀' => 'szeroko uśmiechnięta twarz',
     '😃' => 'uśmiechnięta twarz z otwartymi ustami',
     '😄' => 'uśmiechnięta twarz z otwartymi ustami i roześmianymi oczami',
@@ -2450,6 +2600,7 @@
     '😪' => 'senna twarz',
     '🤤' => 'śliniąca się twarz',
     '😴' => 'śpiąca twarz',
+    '🫩' => 'twarz z workami pod oczami',
     '😷' => 'twarz w masce medycznej',
     '🤒' => 'twarz z termometrem',
     '🤕' => 'twarz z bandażem',
@@ -2476,6 +2627,7 @@
     '😯' => 'zdumiona twarz',
     '😲' => 'zadziwiona twarz',
     '😳' => 'twarz z rumieńcami',
+    '🫪' => 'wykrzywiona twarz',
     '🥺' => 'błagająca twarz',
     '🥹' => 'twarz powstrzymująca łzy',
     '😦' => 'zachmurzona twarz z otwartymi ustami',
@@ -2547,6 +2699,7 @@
     '💋' => 'ślad po pocałunku',
     '💯' => 'sto punktów',
     '💢' => 'symbol gniewu',
+    '🫯' => 'chmura walki',
     '💥' => 'kolizja',
     '💫' => 'zawroty głowy',
     '💦' => 'krople potu',
@@ -2670,6 +2823,7 @@
     '🧞' => 'dżin',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'włochate stworzenie',
     '💆' => 'osoba podczas masażu',
     '💇' => 'osoba podczas strzyżenia',
     '🚶' => 'idąca osoba',
@@ -2713,6 +2867,7 @@
     '🫂' => 'obejmujące się osoby',
     '👪' => 'rodzina',
     '👣' => 'ślady stóp',
+    '🫆' => 'odcisk palca',
     '🦰' => 'rude włosy',
     '🦱' => 'kręcone włosy',
     '🦳' => 'białe włosy',
@@ -2812,6 +2967,7 @@
     '🐳' => 'wieloryb tryskający wodą',
     '🐋' => 'wieloryb',
     '🐬' => 'delfin',
+    '🫍' => 'orka',
     '🦭' => 'foka',
     '🐟' => 'ryba',
     '🐠' => 'ryba tropikalna',
@@ -2821,6 +2977,11 @@
     '🐚' => 'muszla spiralna',
     '🪸' => 'koralowiec',
     '🪼' => 'meduza',
+    '🦀' => 'krab',
+    '🦞' => 'homar',
+    '🦐' => 'krewetka',
+    '🦑' => 'kałamarnica',
+    '🦪' => 'ostryga',
     '🐌' => 'ślimak',
     '🦋' => 'motyl',
     '🐛' => 'gąsienica',
@@ -2865,6 +3026,7 @@
     '🪹' => 'puste gniazdo',
     '🪺' => 'gniazdo z jajkami',
     '🍄' => 'grzyb',
+    '🪾' => 'drzewo bez liści',
     '🍇' => 'winogrona',
     '🍈' => 'melon',
     '🍉' => 'arbuz',
@@ -2892,7 +3054,7 @@
     '🌶' => 'ostra papryka',
     '🫑' => 'papryka',
     '🥒' => 'ogórek',
-    '🥬' => 'zielenina liściasta',
+    '🥬' => 'warzywo liściaste',
     '🥦' => 'brokuł',
     '🧄' => 'czosnek',
     '🧅' => 'cebula',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kasztan',
     '🫚' => 'korzeń imbiru',
     '🫛' => 'strąk grochu',
+    '🫜' => 'warzywo korzeniowe',
     '🍞' => 'chleb',
     '🥐' => 'rogalik',
     '🥖' => 'bagietka',
@@ -2952,11 +3115,6 @@
     '🥟' => 'pieróg',
     '🥠' => 'ciastko z wróżbą',
     '🥡' => 'pudełko na wynos',
-    '🦀' => 'krab',
-    '🦞' => 'homar',
-    '🦐' => 'krewetka',
-    '🦑' => 'kałamarnica',
-    '🦪' => 'ostryga',
     '🍦' => 'lody włoskie',
     '🍧' => 'lody hawajskie',
     '🍨' => 'lody',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'góra z czapą lodową',
     '⛰' => 'góra',
+    '🛘' => 'osuwisko',
     '🌋' => 'wulkan',
     '🗻' => 'góra Fudżi',
     '🏕' => 'kemping',
@@ -3367,16 +3526,18 @@
     '🎧' => 'słuchawki',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'trąbka',
+    '🪊' => 'puzon',
     '🪗' => 'akordeon',
     '🎸' => 'gitara',
     '🎹' => 'klawisze',
-    '🎺' => 'trąbka',
     '🎻' => 'skrzypce',
     '🪕' => 'banjo',
     '🥁' => 'bęben',
     '🪘' => 'konga',
     '🪇' => 'marakasy',
     '🪈' => 'flet',
+    '🪉' => 'harfa',
     '📱' => 'telefon komórkowy',
     '📲' => 'telefon komórkowy ze strzałką',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'karty zakładek',
     '🔖' => 'zakładka',
     '🏷' => 'przywieszka do kluczy',
-    '💰' => 'worek z pieniędzmi',
     '🪙' => 'moneta',
+    '💰' => 'worek z pieniędzmi',
+    '🪎' => 'skrzynia skarbów',
     '💴' => 'banknot jena',
     '💵' => 'banknot dolara',
     '💶' => 'banknot euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'skrzynka na narzędzia',
     '🧲' => 'magnes',
     '🪜' => 'drabina',
+    '🪏' => 'łopata',
     '⚗' => 'alembik',
     '🧪' => 'probówka',
     '🧫' => 'płytka Petriego',
@@ -3697,6 +3860,7 @@
     '✴' => 'gwiazda ośmioramienna',
     '❇' => 'iskra',
     '™' => 'znak towarowy',
+    '🫟' => 'rozbryzg',
     '🔠' => 'wielkie litery (alfabet łaciński)',
     '🔡' => 'małe litery (alfabet łaciński)',
     '🔢' => 'cyfry',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ps.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ps.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ps.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ps.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'مچول: ښځه, ښځه, تور پوستکۍ, غنم رنګه',
     '👩🏿‍❤‍💋‍👩🏾' => 'مچول: ښځه, ښځه, تور پوستکۍ, غنمی-تورنګه پوستکۍ',
     '👩🏿‍❤‍💋‍👩🏿' => 'مچول: ښځه, ښځه, تور پوستکۍ',
+    '🧑🏻‍🫯‍🧑🏼' => 'خلک پهلواني کوي: د روڼ پوستکي ټون و غنمی-روښانه پوستکۍ',
+    '🧑🏻‍🫯‍🧑🏽' => 'خلک پهلواني کوي: د روڼ پوستکي ټون و غنم رنګه',
+    '🧑🏻‍🫯‍🧑🏾' => 'خلک پهلواني کوي: د روڼ پوستکي ټون و غنمی-تورنګه پوستکۍ',
+    '🧑🏻‍🫯‍🧑🏿' => 'خلک پهلواني کوي: د روڼ پوستکي ټون و تور پوستکۍ',
+    '🧑🏼‍🫯‍🧑🏻' => 'خلک پهلواني کوي: غنمی-روښانه پوستکۍ و د روڼ پوستکي ټون',
+    '🧑🏼‍🫯‍🧑🏽' => 'خلک پهلواني کوي: غنمی-روښانه پوستکۍ و غنم رنګه',
+    '🧑🏼‍🫯‍🧑🏾' => 'خلک پهلواني کوي: غنمی-روښانه پوستکۍ و غنمی-تورنګه پوستکۍ',
+    '🧑🏼‍🫯‍🧑🏿' => 'خلک پهلواني کوي: غنمی-روښانه پوستکۍ و تور پوستکۍ',
+    '🧑🏽‍🫯‍🧑🏻' => 'خلک پهلواني کوي: غنم رنګه و د روڼ پوستکي ټون',
+    '🧑🏽‍🫯‍🧑🏼' => 'خلک پهلواني کوي: غنم رنګه و غنمی-روښانه پوستکۍ',
+    '🧑🏽‍🫯‍🧑🏾' => 'خلک پهلواني کوي: غنم رنګه و غنمی-تورنګه پوستکۍ',
+    '🧑🏽‍🫯‍🧑🏿' => 'خلک پهلواني کوي: غنم رنګه و تور پوستکۍ',
+    '🧑🏾‍🫯‍🧑🏻' => 'خلک پهلواني کوي: غنمی-تورنګه پوستکۍ و د روڼ پوستکي ټون',
+    '🧑🏾‍🫯‍🧑🏼' => 'خلک پهلواني کوي: غنمی-تورنګه پوستکۍ و غنمی-روښانه پوستکۍ',
+    '🧑🏾‍🫯‍🧑🏽' => 'خلک پهلواني کوي: غنمی-تورنګه پوستکۍ و غنم رنګه',
+    '🧑🏾‍🫯‍🧑🏿' => 'خلک پهلواني کوي: غنمی-تورنګه پوستکۍ و تور پوستکۍ',
+    '🧑🏿‍🫯‍🧑🏻' => 'خلک پهلواني کوي: تور پوستکۍ و د روڼ پوستکي ټون',
+    '🧑🏿‍🫯‍🧑🏼' => 'خلک پهلواني کوي: تور پوستکۍ و غنمی-روښانه پوستکۍ',
+    '🧑🏿‍🫯‍🧑🏽' => 'خلک پهلواني کوي: تور پوستکۍ و غنم رنګه',
+    '🧑🏿‍🫯‍🧑🏾' => 'خلک پهلواني کوي: تور پوستکۍ و غنمی-تورنګه پوستکۍ',
     '🧑🏻‍❤‍🧑🏼' => 'د زړه سره جوړه: شخص, شخص, د روڼ پوستکي ټون, غنمی-روښانه پوستکۍ',
     '🧑🏻‍❤‍🧑🏽' => 'د زړه سره جوړه: شخص, شخص, د روڼ پوستکي ټون, غنم رنګه',
     '🧑🏻‍❤‍🧑🏾' => 'د زړه سره جوړه: شخص, شخص, د روڼ پوستکي ټون, غنمی-تورنګه پوستکۍ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'د زړه سره جوړه: شخص, شخص, تور پوستکۍ, غنمی-روښانه پوستکۍ',
     '🧑🏿‍❤‍🧑🏽' => 'د زړه سره جوړه: شخص, شخص, تور پوستکۍ, غنم رنګه',
     '🧑🏿‍❤‍🧑🏾' => 'د زړه سره جوړه: شخص, شخص, تور پوستکۍ, غنمی-تورنګه پوستکۍ',
+    '🧑🏻‍🐰‍🧑🏼' => 'خلک د سويې غوږونو سره: د روڼ پوستکي ټون و غنمی-روښانه پوستکۍ',
+    '🧑🏻‍🐰‍🧑🏽' => 'خلک د سويې غوږونو سره: د روڼ پوستکي ټون و غنم رنګه',
+    '🧑🏻‍🐰‍🧑🏾' => 'خلک د سويې غوږونو سره: د روڼ پوستکي ټون و غنمی-تورنګه پوستکۍ',
+    '🧑🏻‍🐰‍🧑🏿' => 'خلک د سويې غوږونو سره: د روڼ پوستکي ټون و تور پوستکۍ',
+    '🧑🏼‍🐰‍🧑🏻' => 'خلک د سويې غوږونو سره: غنمی-روښانه پوستکۍ و د روڼ پوستکي ټون',
+    '🧑🏼‍🐰‍🧑🏽' => 'خلک د سويې غوږونو سره: غنمی-روښانه پوستکۍ و غنم رنګه',
+    '🧑🏼‍🐰‍🧑🏾' => 'خلک د سويې غوږونو سره: غنمی-روښانه پوستکۍ و غنمی-تورنګه پوستکۍ',
+    '🧑🏼‍🐰‍🧑🏿' => 'خلک د سويې غوږونو سره: غنمی-روښانه پوستکۍ و تور پوستکۍ',
+    '🧑🏽‍🐰‍🧑🏻' => 'خلک د سويې غوږونو سره: غنم رنګه و د روڼ پوستکي ټون',
+    '🧑🏽‍🐰‍🧑🏼' => 'خلک د سويې غوږونو سره: غنم رنګه و غنمی-روښانه پوستکۍ',
+    '🧑🏽‍🐰‍🧑🏾' => 'خلک د سويې غوږونو سره: غنم رنګه و غنمی-تورنګه پوستکۍ',
+    '🧑🏽‍🐰‍🧑🏿' => 'خلک د سويې غوږونو سره: غنم رنګه و تور پوستکۍ',
+    '🧑🏾‍🐰‍🧑🏻' => 'خلک د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و د روڼ پوستکي ټون',
+    '🧑🏾‍🐰‍🧑🏼' => 'خلک د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و غنمی-روښانه پوستکۍ',
+    '🧑🏾‍🐰‍🧑🏽' => 'خلک د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و غنم رنګه',
+    '🧑🏾‍🐰‍🧑🏿' => 'خلک د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و تور پوستکۍ',
+    '🧑🏿‍🐰‍🧑🏻' => 'خلک د سويې غوږونو سره: تور پوستکۍ و د روڼ پوستکي ټون',
+    '🧑🏿‍🐰‍🧑🏼' => 'خلک د سويې غوږونو سره: تور پوستکۍ و غنمی-روښانه پوستکۍ',
+    '🧑🏿‍🐰‍🧑🏽' => 'خلک د سويې غوږونو سره: تور پوستکۍ و غنم رنګه',
+    '🧑🏿‍🐰‍🧑🏾' => 'خلک د سويې غوږونو سره: تور پوستکۍ و غنمی-تورنګه پوستکۍ',
+    '👨🏻‍🫯‍👨🏼' => 'سړي پهلواني کوي: د روڼ پوستکي ټون و غنمی-روښانه پوستکۍ',
+    '👨🏻‍🫯‍👨🏽' => 'سړي پهلواني کوي: د روڼ پوستکي ټون و غنم رنګه',
+    '👨🏻‍🫯‍👨🏾' => 'سړي پهلواني کوي: د روڼ پوستکي ټون و غنمی-تورنګه پوستکۍ',
+    '👨🏻‍🫯‍👨🏿' => 'سړي پهلواني کوي: د روڼ پوستکي ټون و تور پوستکۍ',
+    '👨🏼‍🫯‍👨🏻' => 'سړي پهلواني کوي: غنمی-روښانه پوستکۍ و د روڼ پوستکي ټون',
+    '👨🏼‍🫯‍👨🏽' => 'سړي پهلواني کوي: غنمی-روښانه پوستکۍ و غنم رنګه',
+    '👨🏼‍🫯‍👨🏾' => 'سړي پهلواني کوي: غنمی-روښانه پوستکۍ و غنمی-تورنګه پوستکۍ',
+    '👨🏼‍🫯‍👨🏿' => 'سړي پهلواني کوي: غنمی-روښانه پوستکۍ و تور پوستکۍ',
+    '👨🏽‍🫯‍👨🏻' => 'سړي پهلواني کوي: غنم رنګه و د روڼ پوستکي ټون',
+    '👨🏽‍🫯‍👨🏼' => 'سړي پهلواني کوي: غنم رنګه و غنمی-روښانه پوستکۍ',
+    '👨🏽‍🫯‍👨🏾' => 'سړي پهلواني کوي: غنم رنګه و غنمی-تورنګه پوستکۍ',
+    '👨🏽‍🫯‍👨🏿' => 'سړي پهلواني کوي: غنم رنګه و تور پوستکۍ',
+    '👨🏾‍🫯‍👨🏻' => 'سړي پهلواني کوي: غنمی-تورنګه پوستکۍ و د روڼ پوستکي ټون',
+    '👨🏾‍🫯‍👨🏼' => 'سړي پهلواني کوي: غنمی-تورنګه پوستکۍ و غنمی-روښانه پوستکۍ',
+    '👨🏾‍🫯‍👨🏽' => 'سړي پهلواني کوي: غنمی-تورنګه پوستکۍ و غنم رنګه',
+    '👨🏾‍🫯‍👨🏿' => 'سړي پهلواني کوي: غنمی-تورنګه پوستکۍ و تور پوستکۍ',
+    '👨🏿‍🫯‍👨🏻' => 'سړي پهلواني کوي: تور پوستکۍ و د روڼ پوستکي ټون',
+    '👨🏿‍🫯‍👨🏼' => 'سړي پهلواني کوي: تور پوستکۍ و غنمی-روښانه پوستکۍ',
+    '👨🏿‍🫯‍👨🏽' => 'سړي پهلواني کوي: تور پوستکۍ و غنم رنګه',
+    '👨🏿‍🫯‍👨🏾' => 'سړي پهلواني کوي: تور پوستکۍ و غنمی-تورنګه پوستکۍ',
     '👨🏻‍❤‍👨🏻' => 'د زړه سره جوړه: سړی, سړی, د روڼ پوستکي ټون',
     '👨🏻‍❤‍👨🏼' => 'د زړه سره جوړه: سړی, سړی, د روڼ پوستکي ټون, غنمی-روښانه پوستکۍ',
     '👨🏻‍❤‍👨🏽' => 'د زړه سره جوړه: سړی, سړی, د روڼ پوستکي ټون, غنم رنګه',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'د زړه سره جوړه: سړی, سړی, تور پوستکۍ, غنم رنګه',
     '👨🏿‍❤‍👨🏾' => 'د زړه سره جوړه: سړی, سړی, تور پوستکۍ, غنمی-تورنګه پوستکۍ',
     '👨🏿‍❤‍👨🏿' => 'د زړه سره جوړه: سړی, سړی, تور پوستکۍ',
+    '👨🏻‍🐰‍👨🏼' => 'سړی د سويې غوږونو سره: د روڼ پوستکي ټون و غنمی-روښانه پوستکۍ',
+    '👨🏻‍🐰‍👨🏽' => 'سړی د سويې غوږونو سره: د روڼ پوستکي ټون و غنم رنګه',
+    '👨🏻‍🐰‍👨🏾' => 'سړی د سويې غوږونو سره: د روڼ پوستکي ټون و غنمی-تورنګه پوستکۍ',
+    '👨🏻‍🐰‍👨🏿' => 'سړی د سويې غوږونو سره: د روڼ پوستکي ټون و تور پوستکۍ',
+    '👨🏼‍🐰‍👨🏻' => 'سړی د سويې غوږونو سره: غنمی-روښانه پوستکۍ و د روڼ پوستکي ټون',
+    '👨🏼‍🐰‍👨🏽' => 'سړی د سويې غوږونو سره: غنمی-روښانه پوستکۍ و غنم رنګه',
+    '👨🏼‍🐰‍👨🏾' => 'سړی د سويې غوږونو سره: غنمی-روښانه پوستکۍ و غنمی-تورنګه پوستکۍ',
+    '👨🏼‍🐰‍👨🏿' => 'سړی د سويې غوږونو سره: غنمی-روښانه پوستکۍ و تور پوستکۍ',
+    '👨🏽‍🐰‍👨🏻' => 'سړی د سويې غوږونو سره: غنم رنګه و د روڼ پوستکي ټون',
+    '👨🏽‍🐰‍👨🏼' => 'سړی د سويې غوږونو سره: غنم رنګه و غنمی-روښانه پوستکۍ',
+    '👨🏽‍🐰‍👨🏾' => 'سړی د سويې غوږونو سره: غنم رنګه و غنمی-تورنګه پوستکۍ',
+    '👨🏽‍🐰‍👨🏿' => 'سړی د سويې غوږونو سره: غنم رنګه و تور پوستکۍ',
+    '👨🏾‍🐰‍👨🏻' => 'سړی د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و د روڼ پوستکي ټون',
+    '👨🏾‍🐰‍👨🏼' => 'سړی د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و غنمی-روښانه پوستکۍ',
+    '👨🏾‍🐰‍👨🏽' => 'سړی د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و غنم رنګه',
+    '👨🏾‍🐰‍👨🏿' => 'سړی د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و تور پوستکۍ',
+    '👨🏿‍🐰‍👨🏻' => 'سړی د سويې غوږونو سره: تور پوستکۍ و د روڼ پوستکي ټون',
+    '👨🏿‍🐰‍👨🏼' => 'سړی د سويې غوږونو سره: تور پوستکۍ و غنمی-روښانه پوستکۍ',
+    '👨🏿‍🐰‍👨🏽' => 'سړی د سويې غوږونو سره: تور پوستکۍ و غنم رنګه',
+    '👨🏿‍🐰‍👨🏾' => 'سړی د سويې غوږونو سره: تور پوستکۍ و غنمی-تورنګه پوستکۍ',
+    '👩🏻‍🫯‍👩🏼' => 'ښځې پهلواني کوي: د روڼ پوستکي ټون و غنمی-روښانه پوستکۍ',
+    '👩🏻‍🫯‍👩🏽' => 'ښځې پهلواني کوي: د روڼ پوستکي ټون و غنم رنګه',
+    '👩🏻‍🫯‍👩🏾' => 'ښځې پهلواني کوي: د روڼ پوستکي ټون و غنمی-تورنګه پوستکۍ',
+    '👩🏻‍🫯‍👩🏿' => 'ښځې پهلواني کوي: د روڼ پوستکي ټون و تور پوستکۍ',
+    '👩🏼‍🫯‍👩🏻' => 'ښځې پهلواني کوي: غنمی-روښانه پوستکۍ و د روڼ پوستکي ټون',
+    '👩🏼‍🫯‍👩🏽' => 'ښځې پهلواني کوي: غنمی-روښانه پوستکۍ و غنم رنګه',
+    '👩🏼‍🫯‍👩🏾' => 'ښځې پهلواني کوي: غنمی-روښانه پوستکۍ و غنمی-تورنګه پوستکۍ',
+    '👩🏼‍🫯‍👩🏿' => 'ښځې پهلواني کوي: غنمی-روښانه پوستکۍ و تور پوستکۍ',
+    '👩🏽‍🫯‍👩🏻' => 'ښځې پهلواني کوي: غنم رنګه و د روڼ پوستکي ټون',
+    '👩🏽‍🫯‍👩🏼' => 'ښځې پهلواني کوي: غنم رنګه و غنمی-روښانه پوستکۍ',
+    '👩🏽‍🫯‍👩🏾' => 'ښځې پهلواني کوي: غنم رنګه و غنمی-تورنګه پوستکۍ',
+    '👩🏽‍🫯‍👩🏿' => 'ښځې پهلواني کوي: غنم رنګه و تور پوستکۍ',
+    '👩🏾‍🫯‍👩🏻' => 'ښځې پهلواني کوي: غنمی-تورنګه پوستکۍ و د روڼ پوستکي ټون',
+    '👩🏾‍🫯‍👩🏼' => 'ښځې پهلواني کوي: غنمی-تورنګه پوستکۍ و غنمی-روښانه پوستکۍ',
+    '👩🏾‍🫯‍👩🏽' => 'ښځې پهلواني کوي: غنمی-تورنګه پوستکۍ و غنم رنګه',
+    '👩🏾‍🫯‍👩🏿' => 'ښځې پهلواني کوي: غنمی-تورنګه پوستکۍ و تور پوستکۍ',
+    '👩🏿‍🫯‍👩🏻' => 'ښځې پهلواني کوي: تور پوستکۍ و د روڼ پوستکي ټون',
+    '👩🏿‍🫯‍👩🏼' => 'ښځې پهلواني کوي: تور پوستکۍ و غنمی-روښانه پوستکۍ',
+    '👩🏿‍🫯‍👩🏽' => 'ښځې پهلواني کوي: تور پوستکۍ و غنم رنګه',
+    '👩🏿‍🫯‍👩🏾' => 'ښځې پهلواني کوي: تور پوستکۍ و غنمی-تورنګه پوستکۍ',
     '👩🏻‍❤‍👨🏻' => 'د زړه سره جوړه: ښځه, سړی, د روڼ پوستکي ټون',
     '👩🏻‍❤‍👨🏼' => 'د زړه سره جوړه: ښځه, سړی, د روڼ پوستکي ټون, غنمی-روښانه پوستکۍ',
     '👩🏻‍❤‍👨🏽' => 'د زړه سره جوړه: ښځه, سړی, د روڼ پوستکي ټون, غنم رنګه',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'د زړه سره جوړه: ښځه, ښځه, تور پوستکۍ, غنم رنګه',
     '👩🏿‍❤‍👩🏾' => 'د زړه سره جوړه: ښځه, ښځه, تور پوستکۍ, غنمی-تورنګه پوستکۍ',
     '👩🏿‍❤‍👩🏿' => 'د زړه سره جوړه: ښځه, ښځه, تور پوستکۍ',
+    '👩🏻‍🐰‍👩🏼' => 'ښځې د سويې غوږونو سره: د روڼ پوستکي ټون و غنمی-روښانه پوستکۍ',
+    '👩🏻‍🐰‍👩🏽' => 'ښځې د سويې غوږونو سره: د روڼ پوستکي ټون و غنم رنګه',
+    '👩🏻‍🐰‍👩🏾' => 'ښځې د سويې غوږونو سره: د روڼ پوستکي ټون و غنمی-تورنګه پوستکۍ',
+    '👩🏻‍🐰‍👩🏿' => 'ښځې د سويې غوږونو سره: د روڼ پوستکي ټون و تور پوستکۍ',
+    '👩🏼‍🐰‍👩🏻' => 'ښځې د سويې غوږونو سره: غنمی-روښانه پوستکۍ و د روڼ پوستکي ټون',
+    '👩🏼‍🐰‍👩🏽' => 'ښځې د سويې غوږونو سره: غنمی-روښانه پوستکۍ و غنم رنګه',
+    '👩🏼‍🐰‍👩🏾' => 'ښځې د سويې غوږونو سره: غنمی-روښانه پوستکۍ و غنمی-تورنګه پوستکۍ',
+    '👩🏼‍🐰‍👩🏿' => 'ښځې د سويې غوږونو سره: غنمی-روښانه پوستکۍ و تور پوستکۍ',
+    '👩🏽‍🐰‍👩🏻' => 'ښځې د سويې غوږونو سره: غنم رنګه و د روڼ پوستکي ټون',
+    '👩🏽‍🐰‍👩🏼' => 'ښځې د سويې غوږونو سره: غنم رنګه و غنمی-روښانه پوستکۍ',
+    '👩🏽‍🐰‍👩🏾' => 'ښځې د سويې غوږونو سره: غنم رنګه و غنمی-تورنګه پوستکۍ',
+    '👩🏽‍🐰‍👩🏿' => 'ښځې د سويې غوږونو سره: غنم رنګه و تور پوستکۍ',
+    '👩🏾‍🐰‍👩🏻' => 'ښځې د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و د روڼ پوستکي ټون',
+    '👩🏾‍🐰‍👩🏼' => 'ښځې د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و غنمی-روښانه پوستکۍ',
+    '👩🏾‍🐰‍👩🏽' => 'ښځې د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و غنم رنګه',
+    '👩🏾‍🐰‍👩🏿' => 'ښځې د سويې غوږونو سره: غنمی-تورنګه پوستکۍ و تور پوستکۍ',
+    '👩🏿‍🐰‍👩🏻' => 'ښځې د سويې غوږونو سره: تور پوستکۍ و د روڼ پوستکي ټون',
+    '👩🏿‍🐰‍👩🏼' => 'ښځې د سويې غوږونو سره: تور پوستکۍ و غنمی-روښانه پوستکۍ',
+    '👩🏿‍🐰‍👩🏽' => 'ښځې د سويې غوږونو سره: تور پوستکۍ و غنم رنګه',
+    '👩🏿‍🐰‍👩🏾' => 'ښځې د سويې غوږونو سره: تور پوستکۍ و غنمی-تورنګه پوستکۍ',
     '🧑🏻‍🤝‍🧑🏻' => 'خلکو لاسونه نيولي: د روڼ پوستکي ټون',
     '🧑🏻‍🤝‍🧑🏼' => 'خلکو لاسونه نيولي: د روڼ پوستکي ټون و غنمی-روښانه پوستکۍ',
     '🧑🏻‍🤝‍🧑🏽' => 'خلکو لاسونه نيولي: د روڼ پوستکي ټون و غنم رنګه',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'بيرغ: سکاټ لينډ',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'بيرغ: ولز',
     '🧑‍🧑‍🧒‍🧒' => 'کورنۍ: بالغ، بالغ، ماشوم، ماشوم',
-    '🚶🏻‍♀‍➡' => 'روانه ښځه ښي خوا ته مخامخ',
-    '🚶🏼‍♀‍➡' => 'روانه ښځه ښي خوا ته مخامخ',
-    '🚶🏽‍♀‍➡' => 'روانه ښځه ښي خوا ته مخامخ',
-    '🚶🏾‍♀‍➡' => 'روانه ښځه ښي خوا ته مخامخ',
-    '🚶🏿‍♀‍➡' => 'روانه ښځه ښي خوا ته مخامخ',
-    '🚶🏻‍♂‍➡' => 'روان سړی ښي خوا ته مخامخ',
-    '🚶🏼‍♂‍➡' => 'روان سړی ښي خوا ته مخامخ',
-    '🚶🏽‍♂‍➡' => 'روان سړی ښي خوا ته مخامخ',
-    '🚶🏾‍♂‍➡' => 'روان سړی ښي خوا ته مخامخ',
-    '🚶🏿‍♂‍➡' => 'روان سړی ښي خوا ته مخامخ',
-    '🧎🏻‍♀‍➡' => 'ښځه چوکېږي ښي خوا ته مخامخ',
-    '🧎🏼‍♀‍➡' => 'ښځه چوکېږي ښي خوا ته مخامخ',
-    '🧎🏽‍♀‍➡' => 'ښځه چوکېږي ښي خوا ته مخامخ',
-    '🧎🏾‍♀‍➡' => 'ښځه چوکېږي ښي خوا ته مخامخ',
-    '🧎🏿‍♀‍➡' => 'ښځه چوکېږي ښي خوا ته مخامخ',
-    '🧎🏻‍♂‍➡' => 'سړی چوکېږي ښي خوا ته مخامخ',
-    '🧎🏼‍♂‍➡' => 'سړی چوکېږي ښي خوا ته مخامخ',
-    '🧎🏽‍♂‍➡' => 'سړی چوکېږي ښي خوا ته مخامخ',
-    '🧎🏾‍♂‍➡' => 'سړی چوکېږي ښي خوا ته مخامخ',
-    '🧎🏿‍♂‍➡' => 'سړی چوکېږي ښي خوا ته مخامخ',
-    '🧑🏻‍🦯‍➡' => 'شخص د معلولينو د امسا سره ښي خوا ته مخامخ',
-    '🧑🏼‍🦯‍➡' => 'شخص د معلولينو د امسا سره ښي خوا ته مخامخ',
-    '🧑🏽‍🦯‍➡' => 'شخص د معلولينو د امسا سره ښي خوا ته مخامخ',
-    '🧑🏾‍🦯‍➡' => 'شخص د معلولينو د امسا سره ښي خوا ته مخامخ',
-    '🧑🏿‍🦯‍➡' => 'شخص د معلولينو د امسا سره ښي خوا ته مخامخ',
-    '👨🏻‍🦯‍➡' => 'سړی د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '👨🏼‍🦯‍➡' => 'سړی د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '👨🏽‍🦯‍➡' => 'سړی د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '👨🏾‍🦯‍➡' => 'سړی د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '👨🏿‍🦯‍➡' => 'سړی د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '👩🏻‍🦯‍➡' => 'ښځه د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '👩🏼‍🦯‍➡' => 'ښځه د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '👩🏽‍🦯‍➡' => 'ښځه د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '👩🏾‍🦯‍➡' => 'ښځه د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '👩🏿‍🦯‍➡' => 'ښځه د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '🧑🏻‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '🧑🏼‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '🧑🏽‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '🧑🏾‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '🧑🏿‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👨🏻‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👨🏼‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👨🏽‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👨🏾‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👨🏿‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👩🏻‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👩🏼‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👩🏽‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👩🏾‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👩🏿‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '🧑🏻‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '🧑🏼‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '🧑🏽‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '🧑🏾‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '🧑🏿‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👨🏻‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👨🏼‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👨🏽‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👨🏾‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👨🏿‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👩🏻‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👩🏼‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👩🏽‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👩🏾‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👩🏿‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '🏃🏻‍♀‍➡' => 'ښځه ځغلي ښي خوا ته مخامخ',
-    '🏃🏼‍♀‍➡' => 'ښځه ځغلي ښي خوا ته مخامخ',
-    '🏃🏽‍♀‍➡' => 'ښځه ځغلي ښي خوا ته مخامخ',
-    '🏃🏾‍♀‍➡' => 'ښځه ځغلي ښي خوا ته مخامخ',
-    '🏃🏿‍♀‍➡' => 'ښځه ځغلي ښي خوا ته مخامخ',
-    '🏃🏻‍♂‍➡' => 'سړی ځغلي ښي خوا ته مخامخ',
-    '🏃🏼‍♂‍➡' => 'سړی ځغلي ښي خوا ته مخامخ',
-    '🏃🏽‍♂‍➡' => 'سړی ځغلي ښي خوا ته مخامخ',
-    '🏃🏾‍♂‍➡' => 'سړی ځغلي ښي خوا ته مخامخ',
-    '🏃🏿‍♂‍➡' => 'سړی ځغلي ښي خوا ته مخامخ',
+    '🚶🏻‍♀‍➡' => 'روانه ښځه: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🚶🏼‍♀‍➡' => 'روانه ښځه: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🚶🏽‍♀‍➡' => 'روانه ښځه: غنم رنګه و ښي خوا ته مخامخ',
+    '🚶🏾‍♀‍➡' => 'روانه ښځه: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🚶🏿‍♀‍➡' => 'روانه ښځه: تور پوستکۍ و ښي خوا ته مخامخ',
+    '🚶🏻‍♂‍➡' => 'روان سړی: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🚶🏼‍♂‍➡' => 'روان سړی: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🚶🏽‍♂‍➡' => 'روان سړی: غنم رنګه و ښي خوا ته مخامخ',
+    '🚶🏾‍♂‍➡' => 'روان سړی: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🚶🏿‍♂‍➡' => 'روان سړی: تور پوستکۍ و ښي خوا ته مخامخ',
+    '🧎🏻‍♀‍➡' => 'ښځه چوکېږي: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🧎🏼‍♀‍➡' => 'ښځه چوکېږي: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🧎🏽‍♀‍➡' => 'ښځه چوکېږي: غنم رنګه و ښي خوا ته مخامخ',
+    '🧎🏾‍♀‍➡' => 'ښځه چوکېږي: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🧎🏿‍♀‍➡' => 'ښځه چوکېږي: تور پوستکۍ و ښي خوا ته مخامخ',
+    '🧎🏻‍♂‍➡' => 'سړی چوکېږي: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🧎🏼‍♂‍➡' => 'سړی چوکېږي: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🧎🏽‍♂‍➡' => 'سړی چوکېږي: غنم رنګه و ښي خوا ته مخامخ',
+    '🧎🏾‍♂‍➡' => 'سړی چوکېږي: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🧎🏿‍♂‍➡' => 'سړی چوکېږي: تور پوستکۍ و ښي خوا ته مخامخ',
+    '🧑🏻‍🦯‍➡' => 'شخص د معلولينو د امسا سره: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🧑🏼‍🦯‍➡' => 'شخص د معلولينو د امسا سره: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🧑🏽‍🦯‍➡' => 'شخص د معلولينو د امسا سره: غنم رنګه و ښي خوا ته مخامخ',
+    '🧑🏾‍🦯‍➡' => 'شخص د معلولينو د امسا سره: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🧑🏿‍🦯‍➡' => 'شخص د معلولينو د امسا سره: تور پوستکۍ و ښي خوا ته مخامخ',
+    '👨🏻‍🦯‍➡' => 'سړی د معلولينو د همسا سره: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '👨🏼‍🦯‍➡' => 'سړی د معلولينو د همسا سره: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '👨🏽‍🦯‍➡' => 'سړی د معلولينو د همسا سره: غنم رنګه و ښي خوا ته مخامخ',
+    '👨🏾‍🦯‍➡' => 'سړی د معلولينو د همسا سره: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '👨🏿‍🦯‍➡' => 'سړی د معلولينو د همسا سره: تور پوستکۍ و ښي خوا ته مخامخ',
+    '👩🏻‍🦯‍➡' => 'ښځه د معلولينو د همسا سره: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '👩🏼‍🦯‍➡' => 'ښځه د معلولينو د همسا سره: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '👩🏽‍🦯‍➡' => 'ښځه د معلولينو د همسا سره: غنم رنګه و ښي خوا ته مخامخ',
+    '👩🏾‍🦯‍➡' => 'ښځه د معلولينو د همسا سره: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '👩🏿‍🦯‍➡' => 'ښځه د معلولينو د همسا سره: تور پوستکۍ و ښي خوا ته مخامخ',
+    '🧑🏻‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🧑🏼‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🧑🏽‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې: غنم رنګه و ښي خوا ته مخامخ',
+    '🧑🏾‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🧑🏿‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې: تور پوستکۍ و ښي خوا ته مخامخ',
+    '👨🏻‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '👨🏼‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '👨🏽‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې: غنم رنګه و ښي خوا ته مخامخ',
+    '👨🏾‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '👨🏿‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې: تور پوستکۍ و ښي خوا ته مخامخ',
+    '👩🏻‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '👩🏼‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '👩🏽‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې: غنم رنګه و ښي خوا ته مخامخ',
+    '👩🏾‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '👩🏿‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې: تور پوستکۍ و ښي خوا ته مخامخ',
+    '🧑🏻‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🧑🏼‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🧑🏽‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې: غنم رنګه و ښي خوا ته مخامخ',
+    '🧑🏾‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🧑🏿‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې: تور پوستکۍ و ښي خوا ته مخامخ',
+    '👨🏻‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '👨🏼‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '👨🏽‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې: غنم رنګه و ښي خوا ته مخامخ',
+    '👨🏾‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '👨🏿‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې: تور پوستکۍ و ښي خوا ته مخامخ',
+    '👩🏻‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '👩🏼‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '👩🏽‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې: غنم رنګه و ښي خوا ته مخامخ',
+    '👩🏾‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '👩🏿‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې: تور پوستکۍ و ښي خوا ته مخامخ',
+    '🏃🏻‍♀‍➡' => 'ښځه ځغلي: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🏃🏼‍♀‍➡' => 'ښځه ځغلي: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🏃🏽‍♀‍➡' => 'ښځه ځغلي: غنم رنګه و ښي خوا ته مخامخ',
+    '🏃🏾‍♀‍➡' => 'ښځه ځغلي: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🏃🏿‍♀‍➡' => 'ښځه ځغلي: تور پوستکۍ و ښي خوا ته مخامخ',
+    '🏃🏻‍♂‍➡' => 'سړی ځغلي: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🏃🏼‍♂‍➡' => 'سړی ځغلي: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🏃🏽‍♂‍➡' => 'سړی ځغلي: غنم رنګه و ښي خوا ته مخامخ',
+    '🏃🏾‍♂‍➡' => 'سړی ځغلي: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🏃🏿‍♂‍➡' => 'سړی ځغلي: تور پوستکۍ و ښي خوا ته مخامخ',
     '🫱🏻‍🫲🏼' => 'ستړې مشي: د روڼ پوستکي ټون و غنمی-روښانه پوستکۍ',
     '🫱🏻‍🫲🏽' => 'ستړې مشي: د روڼ پوستکي ټون و غنم رنګه',
     '🫱🏻‍🫲🏾' => 'ستړې مشي: د روڼ پوستکي ټون و غنمی-تورنګه پوستکۍ',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ستړې مشي: تور پوستکۍ و غنمی-روښانه پوستکۍ',
     '🫱🏿‍🫲🏽' => 'ستړې مشي: تور پوستکۍ و غنم رنګه',
     '🫱🏿‍🫲🏾' => 'ستړې مشي: تور پوستکۍ و غنمی-تورنګه پوستکۍ',
-    '🚶‍♀‍➡' => 'روانه ښځه ښي خوا ته مخامخ',
-    '🚶‍♂‍➡' => 'روان سړی ښي خوا ته مخامخ',
-    '🧎‍♀‍➡' => 'ښځه چوکېږي ښي خوا ته مخامخ',
-    '🧎‍♂‍➡' => 'سړی چوکېږي ښي خوا ته مخامخ',
-    '🧑‍🦯‍➡' => 'شخص د معلولينو د امسا سره ښي خوا ته مخامخ',
-    '👨‍🦯‍➡' => 'سړی د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '👩‍🦯‍➡' => 'ښځه د معلولينو د همسا سره ښي خوا ته مخامخ',
-    '🧑‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👨‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '👩‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې ښي خوا ته مخامخ',
-    '🧑‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👨‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '👩‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې ښي خوا ته مخامخ',
-    '🏃‍♀‍➡' => 'ښځه ځغلي ښي خوا ته مخامخ',
-    '🏃‍♂‍➡' => 'سړی ځغلي ښي خوا ته مخامخ',
+    '🚶‍♀‍➡' => 'روانه ښځه: ښي خوا ته مخامخ',
+    '🚶‍♂‍➡' => 'روان سړی: ښي خوا ته مخامخ',
+    '🧎‍♀‍➡' => 'ښځه چوکېږي: ښي خوا ته مخامخ',
+    '🧎‍♂‍➡' => 'سړی چوکېږي: ښي خوا ته مخامخ',
+    '🧑‍🦯‍➡' => 'شخص د معلولينو د امسا سره: ښي خوا ته مخامخ',
+    '👨‍🦯‍➡' => 'سړی د معلولينو د همسا سره: ښي خوا ته مخامخ',
+    '👩‍🦯‍➡' => 'ښځه د معلولينو د همسا سره: ښي خوا ته مخامخ',
+    '🧑‍🦼‍➡' => 'شخص د معلولينو په موټر چوکۍ کې: ښي خوا ته مخامخ',
+    '👨‍🦼‍➡' => 'سړی د معلولينو په موټر چوکۍ کې: ښي خوا ته مخامخ',
+    '👩‍🦼‍➡' => 'ښځه د معلولينو په موټر چوکۍ کې: ښي خوا ته مخامخ',
+    '🧑‍🦽‍➡' => 'شخص د معلولينو په لاسي چوکۍ کې: ښي خوا ته مخامخ',
+    '👨‍🦽‍➡' => 'سړی د معلولينو په لاسي چوکۍ کې: ښي خوا ته مخامخ',
+    '👩‍🦽‍➡' => 'ښځه د معلولينو په لاسي چوکۍ کې: ښي خوا ته مخامخ',
+    '🏃‍♀‍➡' => 'ښځه ځغلي: ښي خوا ته مخامخ',
+    '🏃‍♂‍➡' => 'سړی ځغلي: ښي خوا ته مخامخ',
     '👩‍❤‍👨' => 'د زړه سره جوړه: ښځه و سړی',
     '👨‍❤‍👨' => 'د زړه سره جوړه: سړی و سړی',
     '👩‍❤‍👩' => 'د زړه سره جوړه: ښځه و ښځه',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'شخص: غنم رنګه و ګنجى',
     '🧑🏾‍🦲' => 'شخص: غنمی-تورنګه پوستکۍ و ګنجى',
     '🧑🏿‍🦲' => 'شخص: تور پوستکۍ و ګنجى',
+    '🧑🏻‍🩰' => 'د بالې نڅاګر: د روڼ پوستکي ټون',
+    '🧑🏼‍🩰' => 'د بالې نڅاګر: غنمی-روښانه پوستکۍ',
+    '🧑🏽‍🩰' => 'د بالې نڅاګر: غنم رنګه',
+    '🧑🏾‍🩰' => 'د بالې نڅاګر: غنمی-تورنګه پوستکۍ',
+    '🧑🏿‍🩰' => 'د بالې نڅاګر: تور پوستکۍ',
     '🧔🏻‍♂' => 'سړی: د روڼ پوستکي ټون و ږیره',
     '🧔🏼‍♂' => 'سړی: غنمی-روښانه پوستکۍ و ږیره',
     '🧔🏽‍♂' => 'سړی: غنم رنګه و ږیره',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'روانه ښځه: غنم رنګه',
     '🚶🏾‍♀' => 'روانه ښځه: غنمی-تورنګه پوستکۍ',
     '🚶🏿‍♀' => 'روانه ښځه: تور پوستکۍ',
-    '🚶🏻‍➡' => 'روان شخص ښي خوا ته مخامخ',
-    '🚶🏼‍➡' => 'روان شخص ښي خوا ته مخامخ',
-    '🚶🏽‍➡' => 'روان شخص ښي خوا ته مخامخ',
-    '🚶🏾‍➡' => 'روان شخص ښي خوا ته مخامخ',
-    '🚶🏿‍➡' => 'روان شخص ښي خوا ته مخامخ',
+    '🚶🏻‍➡' => 'روان شخص: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🚶🏼‍➡' => 'روان شخص: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🚶🏽‍➡' => 'روان شخص: غنم رنګه و ښي خوا ته مخامخ',
+    '🚶🏾‍➡' => 'روان شخص: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🚶🏿‍➡' => 'روان شخص: تور پوستکۍ و ښي خوا ته مخامخ',
     '🧍🏻‍♂' => 'ولاړ سړی: د روڼ پوستکي ټون',
     '🧍🏼‍♂' => 'ولاړ سړی: غنمی-روښانه پوستکۍ',
     '🧍🏽‍♂' => 'ولاړ سړی: غنم رنګه',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'ښځه چوکېږي: غنم رنګه',
     '🧎🏾‍♀' => 'ښځه چوکېږي: غنمی-تورنګه پوستکۍ',
     '🧎🏿‍♀' => 'ښځه چوکېږي: تور پوستکۍ',
-    '🧎🏻‍➡' => 'شخص چوکېږي ښي خوا ته مخامخ',
-    '🧎🏼‍➡' => 'شخص چوکېږي ښي خوا ته مخامخ',
-    '🧎🏽‍➡' => 'شخص چوکېږي ښي خوا ته مخامخ',
-    '🧎🏾‍➡' => 'شخص چوکېږي ښي خوا ته مخامخ',
-    '🧎🏿‍➡' => 'شخص چوکېږي ښي خوا ته مخامخ',
+    '🧎🏻‍➡' => 'شخص چوکېږي: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🧎🏼‍➡' => 'شخص چوکېږي: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🧎🏽‍➡' => 'شخص چوکېږي: غنم رنګه و ښي خوا ته مخامخ',
+    '🧎🏾‍➡' => 'شخص چوکېږي: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🧎🏿‍➡' => 'شخص چوکېږي: تور پوستکۍ و ښي خوا ته مخامخ',
     '🧑🏻‍🦯' => 'شخص د معلولينو د امسا سره: د روڼ پوستکي ټون',
     '🧑🏼‍🦯' => 'شخص د معلولينو د امسا سره: غنمی-روښانه پوستکۍ',
     '🧑🏽‍🦯' => 'شخص د معلولينو د امسا سره: غنم رنګه',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ښځه ځغلي: غنم رنګه',
     '🏃🏾‍♀' => 'ښځه ځغلي: غنمی-تورنګه پوستکۍ',
     '🏃🏿‍♀' => 'ښځه ځغلي: تور پوستکۍ',
-    '🏃🏻‍➡' => 'شخص ځغلي ښي خوا ته مخامخ',
-    '🏃🏼‍➡' => 'شخص ځغلي ښي خوا ته مخامخ',
-    '🏃🏽‍➡' => 'شخص ځغلي ښي خوا ته مخامخ',
-    '🏃🏾‍➡' => 'شخص ځغلي ښي خوا ته مخامخ',
-    '🏃🏿‍➡' => 'شخص ځغلي ښي خوا ته مخامخ',
+    '🏃🏻‍➡' => 'شخص ځغلي: د روڼ پوستکي ټون و ښي خوا ته مخامخ',
+    '🏃🏼‍➡' => 'شخص ځغلي: غنمی-روښانه پوستکۍ و ښي خوا ته مخامخ',
+    '🏃🏽‍➡' => 'شخص ځغلي: غنم رنګه و ښي خوا ته مخامخ',
+    '🏃🏾‍➡' => 'شخص ځغلي: غنمی-تورنګه پوستکۍ و ښي خوا ته مخامخ',
+    '🏃🏿‍➡' => 'شخص ځغلي: تور پوستکۍ و ښي خوا ته مخامخ',
+    '👯🏻‍♀' => 'ښځې د سويې غوږونو سره: د روڼ پوستکي ټون',
+    '👯🏼‍♀' => 'ښځې د سويې غوږونو سره: غنمی-روښانه پوستکۍ',
+    '👯🏽‍♀' => 'ښځې د سويې غوږونو سره: غنم رنګه',
+    '👯🏾‍♀' => 'ښځې د سويې غوږونو سره: غنمی-تورنګه پوستکۍ',
+    '👯🏿‍♀' => 'ښځې د سويې غوږونو سره: تور پوستکۍ',
+    '👯🏻‍♂' => 'سړی د سويې غوږونو سره: د روڼ پوستکي ټون',
+    '👯🏼‍♂' => 'سړی د سويې غوږونو سره: غنمی-روښانه پوستکۍ',
+    '👯🏽‍♂' => 'سړی د سويې غوږونو سره: غنم رنګه',
+    '👯🏾‍♂' => 'سړی د سويې غوږونو سره: غنمی-تورنګه پوستکۍ',
+    '👯🏿‍♂' => 'سړی د سويې غوږونو سره: تور پوستکۍ',
     '🧖🏻‍♂' => 'سړی د پخار په خونه کې: د روڼ پوستکي ټون',
     '🧖🏼‍♂' => 'سړی د پخار په خونه کې: غنمی-روښانه پوستکۍ',
     '🧖🏽‍♂' => 'سړی د پخار په خونه کې: غنم رنګه',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'ښځه کارټ ويلنګ کوي: غنم رنګه',
     '🤸🏾‍♀' => 'ښځه کارټ ويلنګ کوي: غنمی-تورنګه پوستکۍ',
     '🤸🏿‍♀' => 'ښځه کارټ ويلنګ کوي: تور پوستکۍ',
+    '🤼🏻‍♀' => 'ښځې پهلواني کوي: د روڼ پوستکي ټون',
+    '🤼🏼‍♀' => 'ښځې پهلواني کوي: غنمی-روښانه پوستکۍ',
+    '🤼🏽‍♀' => 'ښځې پهلواني کوي: غنم رنګه',
+    '🤼🏾‍♀' => 'ښځې پهلواني کوي: غنمی-تورنګه پوستکۍ',
+    '🤼🏿‍♀' => 'ښځې پهلواني کوي: تور پوستکۍ',
+    '🤼🏻‍♂' => 'سړي پهلواني کوي: د روڼ پوستکي ټون',
+    '🤼🏼‍♂' => 'سړي پهلواني کوي: غنمی-روښانه پوستکۍ',
+    '🤼🏽‍♂' => 'سړي پهلواني کوي: غنم رنګه',
+    '🤼🏾‍♂' => 'سړي پهلواني کوي: غنمی-تورنګه پوستکۍ',
+    '🤼🏿‍♂' => 'سړي پهلواني کوي: تور پوستکۍ',
     '🤽🏻‍♂' => 'سړی د اوبو پولو لوبه کوي: د روڼ پوستکي ټون',
     '🤽🏼‍♂' => 'سړی د اوبو پولو لوبه کوي: غنمی-روښانه پوستکۍ',
     '🤽🏽‍♂' => 'سړی د اوبو پولو لوبه کوي: غنم رنګه',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ښځه: لوپه ويښتان',
     '👩‍🦳' => 'ښځه: سپين ويښتان',
     '👩‍🦲' => 'ښځه: ګنجى',
-    '🚶‍➡' => 'روان شخص ښي خوا ته مخامخ',
-    '🧎‍➡' => 'شخص چوکېږي ښي خوا ته مخامخ',
-    '🏃‍➡' => 'شخص ځغلي ښي خوا ته مخامخ',
+    '🚶‍➡' => 'روان شخص: ښي خوا ته مخامخ',
+    '🧎‍➡' => 'شخص چوکېږي: ښي خوا ته مخامخ',
+    '🏃‍➡' => 'شخص ځغلي: ښي خوا ته مخامخ',
     '👨‍👦' => 'کورنۍ: سړی و هلک',
     '👨‍👧' => 'کورنۍ: سړی و نجلۍ',
     '👩‍👦' => 'کورنۍ: ښځه و هلک',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ښځه د معلولينو په لاسي چوکۍ کې',
     '🏃‍♂' => 'سړی ځغلي',
     '🏃‍♀' => 'ښځه ځغلي',
+    '🧑‍🩰' => 'د بالې نڅاګر',
     '👯‍♂' => 'سړی د سويې غوږونو سره',
     '👯‍♀' => 'ښځې د سويې غوږونو سره',
     '🧖‍♂' => 'سړی د پخار په خونه کې',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'سړي په کالو کې اوچتيږي: غنم رنګه',
     '🕴🏾' => 'سړي په کالو کې اوچتيږي: غنمی-تورنګه پوستکۍ',
     '🕴🏿' => 'سړي په کالو کې اوچتيږي: تور پوستکۍ',
+    '👯🏻' => 'خلک د سويې غوږونو سره: د روڼ پوستکي ټون',
+    '👯🏼' => 'خلک د سويې غوږونو سره: غنمی-روښانه پوستکۍ',
+    '👯🏽' => 'خلک د سويې غوږونو سره: غنم رنګه',
+    '👯🏾' => 'خلک د سويې غوږونو سره: غنمی-تورنګه پوستکۍ',
+    '👯🏿' => 'خلک د سويې غوږونو سره: تور پوستکۍ',
     '🧖🏻' => 'شخص د پخار په خونه کې: د روڼ پوستکي ټون',
     '🧖🏼' => 'شخص د پخار په خونه کې: غنمی-روښانه پوستکۍ',
     '🧖🏽' => 'شخص د پخار په خونه کې: غنم رنګه',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'شخص کارټ ويلنګ کوي: غنم رنګه',
     '🤸🏾' => 'شخص کارټ ويلنګ کوي: غنمی-تورنګه پوستکۍ',
     '🤸🏿' => 'شخص کارټ ويلنګ کوي: تور پوستکۍ',
+    '🤼🏻' => 'خلک پهلواني کوي: د روڼ پوستکي ټون',
+    '🤼🏼' => 'خلک پهلواني کوي: غنمی-روښانه پوستکۍ',
+    '🤼🏽' => 'خلک پهلواني کوي: غنم رنګه',
+    '🤼🏾' => 'خلک پهلواني کوي: غنمی-تورنګه پوستکۍ',
+    '🤼🏿' => 'خلک پهلواني کوي: تور پوستکۍ',
     '🤽🏻' => 'شخص د اوبو پولو لوبه کوي: د روڼ پوستکي ټون',
     '🤽🏼' => 'شخص د اوبو پولو لوبه کوي: غنمی-روښانه پوستکۍ',
     '🤽🏽' => 'شخص د اوبو پولو لوبه کوي: غنم رنګه',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'بيرغ: چین',
     '🇨🇴' => 'بيرغ: کولمبیا',
     '🇨🇵' => 'بيرغ: د کلپرټون ټاپو',
+    '🇨🇶' => 'بيرغ: سارک',
     '🇨🇷' => 'بيرغ: کوستاریکا',
     '🇨🇺' => 'بيرغ: کیوبا',
     '🇨🇻' => 'بيرغ: کیپ ورد',
@@ -2390,13 +2547,6 @@
     '🏽' => 'غنم رنګه',
     '🏾' => 'غنمی-تورنګه پوستکۍ',
     '🏿' => 'تور پوستکۍ',
-    '🪉' => 'هارپ',
-    '🪏' => 'بیلچه',
-    '🪾' => 'بې پاڼې ونه',
-    '🫆' => 'د ګوتو نښان',
-    '🫜' => 'ریښی سبزی',
-    '🫟' => 'څاڅکي',
-    '🫩' => 'د سترګو لاندې کڅوړې سره مخ',
     '😀' => 'خندېدلی مخ',
     '😃' => 'مسکېدلی مخ د غټو سترګو سره',
     '😄' => 'مسکېدلی مخ د مسکېدلی سترګو سره',
@@ -2450,6 +2600,7 @@
     '😪' => 'خوبيولى مخ',
     '🤤' => 'د خندا وړ مخ',
     '😴' => 'د خوب مخ',
+    '🫩' => 'د سترګو لاندې کڅوړې سره مخ',
     '😷' => 'د طبي ماسک سره مخ',
     '🤒' => 'سره ترمامیتر مخ',
     '🤕' => 'سره سر-بنداژ مخ',
@@ -2476,6 +2627,7 @@
     '😯' => 'د چپې خولې مخ',
     '😲' => 'حيران مخ',
     '😳' => 'سور او تود مخ',
+    '🫪' => 'مسخ شوی مخ',
     '🥺' => 'وکالت کوونکی مخ',
     '🥹' => 'د اوښکو شاته نیولو مخ',
     '😦' => 'د تريو تندې او خلاصې خولې مخ',
@@ -2547,6 +2699,7 @@
     '💋' => 'مچو نښه',
     '💯' => 'سل ټکي',
     '💢' => 'د قهر نښه',
+    '🫯' => 'د جګړې ورېځ',
     '💥' => 'تکړ',
     '💫' => 'سربدال',
     '💦' => 'خولو څاڅکی',
@@ -2670,6 +2823,7 @@
     '🧞' => 'جینی',
     '🧟' => 'زومبی',
     '🧌' => 'پیری',
+    '🫈' => 'ویښتان لرونکی مخلوق',
     '💆' => 'شخص مالش ترلاسه کوي',
     '💇' => 'شخص پرېټ کوي',
     '🚶' => 'روان شخص',
@@ -2713,6 +2867,7 @@
     '🫂' => 'خلک غاړۍ کيږې',
     '👪' => 'کورنۍ',
     '👣' => 'پښو نښي',
+    '🫆' => 'د ګوتو نښان',
     '🦰' => 'سره ويښتان',
     '🦱' => 'لوپه ويښتان',
     '🦳' => 'سپين ويښتان',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ګرداوی ويل',
     '🐋' => 'ويل',
     '🐬' => 'دولفين',
+    '🫍' => 'اورکا',
     '🦭' => 'سيل',
     '🐟' => 'کب',
     '🐠' => 'ګرمسير کب',
@@ -2821,6 +2977,11 @@
     '🐚' => 'ګول سيپۍ',
     '🪸' => 'مرجان',
     '🪼' => 'جیلی فش',
+    '🦀' => 'سرطان',
+    '🦞' => 'لوبسټر',
+    '🦐' => 'چنګاښ',
+    '🦑' => 'سکویډ',
+    '🦪' => 'سمندري صدف',
     '🐌' => 'شاپېټی',
     '🦋' => 'کمبلۍ',
     '🐛' => 'سپږۍ',
@@ -2865,6 +3026,7 @@
     '🪹' => 'تش ځاله',
     '🪺' => 'د هګو سره ځاله',
     '🍄' => 'مرخېړى',
+    '🪾' => 'بې پاڼې ونه',
     '🍇' => 'انګور',
     '🍈' => 'خټکى',
     '🍉' => 'هندواڼه',
@@ -2901,6 +3063,7 @@
     '🌰' => 'خورماني',
     '🫚' => 'د ادرک ريښه',
     '🫛' => 'د نخود پوزه',
+    '🫜' => 'ریښی سبزی',
     '🍞' => 'ډوډۍ',
     '🥐' => 'کلچه',
     '🥖' => 'بګیټ ډوډۍ',
@@ -2952,11 +3115,6 @@
     '🥟' => 'غونډاری',
     '🥠' => 'د بخت بسکوټ',
     '🥡' => 'وباسل بکس',
-    '🦀' => 'سرطان',
-    '🦞' => 'لوبسټر',
-    '🦐' => 'چنګاښ',
-    '🦑' => 'سکویډ',
-    '🦪' => 'سمندري صدف',
     '🍦' => 'نرم آيس کریم',
     '🍧' => 'پالوده',
     '🍨' => 'آیس کریم',
@@ -3007,6 +3165,7 @@
     '🧭' => 'قطب نما',
     '🏔' => 'د واورې ډک غر',
     '⛰' => 'غر',
+    '🛘' => 'د ځمکې ښویدنه',
     '🌋' => 'آتش فشان غر',
     '🗻' => 'د فوجي غر',
     '🏕' => 'کیمپنګ',
@@ -3367,16 +3526,18 @@
     '🎧' => 'غوږۍ ګوشکه',
     '📻' => 'راډیو',
     '🎷' => 'ساکسفون',
+    '🎺' => 'سورنی',
+    '🪊' => 'ټرومبون',
     '🪗' => 'اکورديون',
     '🎸' => 'ګیتار',
     '🎹' => 'د موسیقي کیبورډ',
-    '🎺' => 'سورنی',
     '🎻' => 'ويلون',
     '🪕' => 'بينجو',
     '🥁' => 'ډول',
     '🪘' => 'اوږود ډول',
     '🪇' => 'ماراکاس',
     '🪈' => 'بانسري',
+    '🪉' => 'هارپ',
     '📱' => 'ګرځنده ټېلیفون',
     '📲' => 'غشی لرونکی ګرځنده ټېلیفون',
     '☎' => 'ټیلیفون',
@@ -3430,8 +3591,9 @@
     '📑' => 'د کتاب نښې ټيبز',
     '🔖' => 'د کتاب نښه',
     '🏷' => 'لیبل',
-    '💰' => 'د پيسو کڅوړه',
     '🪙' => 'سکه',
+    '💰' => 'د پيسو کڅوړه',
+    '🪎' => 'د خزانې صندوق',
     '💴' => 'ين بانک نوټ',
     '💵' => 'ډالر بانک نوټ',
     '💶' => 'يورو بانک نوټ',
@@ -3514,6 +3676,7 @@
     '🧰' => 'د اوزارو بوکسه',
     '🧲' => 'مقناطيس',
     '🪜' => 'زينه',
+    '🪏' => 'بیلچه',
     '⚗' => 'اليمبک',
     '🧪' => 'ټسټ تيوب',
     '🧫' => 'پيټري ډش',
@@ -3697,6 +3860,7 @@
     '✴' => 'اته ګوټی ستوري',
     '❇' => 'ځلېدل',
     '™' => 'تجارتي نښان',
+    '🫟' => 'څاڅکي',
     '🔠' => 'شاملتوب لاتینې لوړ الفبا',
     '🔡' => 'شاملتوب لاتینې ټيټه الفبا',
     '🔢' => 'شاملتوب شمیرې',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pt.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'beijo: mulher, mulher, pele escura e pele morena',
     '👩🏿‍❤‍💋‍👩🏾' => 'beijo: mulher, mulher, pele escura e pele morena escura',
     '👩🏿‍❤‍💋‍👩🏿' => 'beijo: mulher, mulher e pele escura',
+    '🧑🏻‍🫯‍🧑🏼' => 'pessoas lutando: pele clara e pele morena clara',
+    '🧑🏻‍🫯‍🧑🏽' => 'pessoas lutando: pele clara e pele morena',
+    '🧑🏻‍🫯‍🧑🏾' => 'pessoas lutando: pele clara e pele morena escura',
+    '🧑🏻‍🫯‍🧑🏿' => 'pessoas lutando: pele clara e pele escura',
+    '🧑🏼‍🫯‍🧑🏻' => 'pessoas lutando: pele morena clara e pele clara',
+    '🧑🏼‍🫯‍🧑🏽' => 'pessoas lutando: pele morena clara e pele morena',
+    '🧑🏼‍🫯‍🧑🏾' => 'pessoas lutando: pele morena clara e pele morena escura',
+    '🧑🏼‍🫯‍🧑🏿' => 'pessoas lutando: pele morena clara e pele escura',
+    '🧑🏽‍🫯‍🧑🏻' => 'pessoas lutando: pele morena e pele clara',
+    '🧑🏽‍🫯‍🧑🏼' => 'pessoas lutando: pele morena e pele morena clara',
+    '🧑🏽‍🫯‍🧑🏾' => 'pessoas lutando: pele morena e pele morena escura',
+    '🧑🏽‍🫯‍🧑🏿' => 'pessoas lutando: pele morena e pele escura',
+    '🧑🏾‍🫯‍🧑🏻' => 'pessoas lutando: pele morena escura e pele clara',
+    '🧑🏾‍🫯‍🧑🏼' => 'pessoas lutando: pele morena escura e pele morena clara',
+    '🧑🏾‍🫯‍🧑🏽' => 'pessoas lutando: pele morena escura e pele morena',
+    '🧑🏾‍🫯‍🧑🏿' => 'pessoas lutando: pele morena escura e pele escura',
+    '🧑🏿‍🫯‍🧑🏻' => 'pessoas lutando: pele escura e pele clara',
+    '🧑🏿‍🫯‍🧑🏼' => 'pessoas lutando: pele escura e pele morena clara',
+    '🧑🏿‍🫯‍🧑🏽' => 'pessoas lutando: pele escura e pele morena',
+    '🧑🏿‍🫯‍🧑🏾' => 'pessoas lutando: pele escura e pele morena escura',
     '🧑🏻‍❤‍🧑🏼' => 'casal apaixonado: pessoa, pessoa, pele clara e pele morena clara',
     '🧑🏻‍❤‍🧑🏽' => 'casal apaixonado: pessoa, pessoa, pele clara e pele morena',
     '🧑🏻‍❤‍🧑🏾' => 'casal apaixonado: pessoa, pessoa, pele clara e pele morena escura',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'casal apaixonado: pessoa, pessoa, pele escura e pele morena clara',
     '🧑🏿‍❤‍🧑🏽' => 'casal apaixonado: pessoa, pessoa, pele escura e pele morena',
     '🧑🏿‍❤‍🧑🏾' => 'casal apaixonado: pessoa, pessoa, pele escura e pele morena escura',
+    '🧑🏻‍🐰‍🧑🏼' => 'pessoas com orelhas de coelho: pele clara e pele morena clara',
+    '🧑🏻‍🐰‍🧑🏽' => 'pessoas com orelhas de coelho: pele clara e pele morena',
+    '🧑🏻‍🐰‍🧑🏾' => 'pessoas com orelhas de coelho: pele clara e pele morena escura',
+    '🧑🏻‍🐰‍🧑🏿' => 'pessoas com orelhas de coelho: pele clara e pele escura',
+    '🧑🏼‍🐰‍🧑🏻' => 'pessoas com orelhas de coelho: pele morena clara e pele clara',
+    '🧑🏼‍🐰‍🧑🏽' => 'pessoas com orelhas de coelho: pele morena clara e pele morena',
+    '🧑🏼‍🐰‍🧑🏾' => 'pessoas com orelhas de coelho: pele morena clara e pele morena escura',
+    '🧑🏼‍🐰‍🧑🏿' => 'pessoas com orelhas de coelho: pele morena clara e pele escura',
+    '🧑🏽‍🐰‍🧑🏻' => 'pessoas com orelhas de coelho: pele morena e pele clara',
+    '🧑🏽‍🐰‍🧑🏼' => 'pessoas com orelhas de coelho: pele morena e pele morena clara',
+    '🧑🏽‍🐰‍🧑🏾' => 'pessoas com orelhas de coelho: pele morena e pele morena escura',
+    '🧑🏽‍🐰‍🧑🏿' => 'pessoas com orelhas de coelho: pele morena e pele escura',
+    '🧑🏾‍🐰‍🧑🏻' => 'pessoas com orelhas de coelho: pele morena escura e pele clara',
+    '🧑🏾‍🐰‍🧑🏼' => 'pessoas com orelhas de coelho: pele morena escura e pele morena clara',
+    '🧑🏾‍🐰‍🧑🏽' => 'pessoas com orelhas de coelho: pele morena escura e pele morena',
+    '🧑🏾‍🐰‍🧑🏿' => 'pessoas com orelhas de coelho: pele morena escura e pele escura',
+    '🧑🏿‍🐰‍🧑🏻' => 'pessoas com orelhas de coelho: pele escura e pele clara',
+    '🧑🏿‍🐰‍🧑🏼' => 'pessoas com orelhas de coelho: pele escura e pele morena clara',
+    '🧑🏿‍🐰‍🧑🏽' => 'pessoas com orelhas de coelho: pele escura e pele morena',
+    '🧑🏿‍🐰‍🧑🏾' => 'pessoas com orelhas de coelho: pele escura e pele morena escura',
+    '👨🏻‍🫯‍👨🏼' => 'homens lutando: pele clara e pele morena clara',
+    '👨🏻‍🫯‍👨🏽' => 'homens lutando: pele clara e pele morena',
+    '👨🏻‍🫯‍👨🏾' => 'homens lutando: pele clara e pele morena escura',
+    '👨🏻‍🫯‍👨🏿' => 'homens lutando: pele clara e pele escura',
+    '👨🏼‍🫯‍👨🏻' => 'homens lutando: pele morena clara e pele clara',
+    '👨🏼‍🫯‍👨🏽' => 'homens lutando: pele morena clara e pele morena',
+    '👨🏼‍🫯‍👨🏾' => 'homens lutando: pele morena clara e pele morena escura',
+    '👨🏼‍🫯‍👨🏿' => 'homens lutando: pele morena clara e pele escura',
+    '👨🏽‍🫯‍👨🏻' => 'homens lutando: pele morena e pele clara',
+    '👨🏽‍🫯‍👨🏼' => 'homens lutando: pele morena e pele morena clara',
+    '👨🏽‍🫯‍👨🏾' => 'homens lutando: pele morena e pele morena escura',
+    '👨🏽‍🫯‍👨🏿' => 'homens lutando: pele morena e pele escura',
+    '👨🏾‍🫯‍👨🏻' => 'homens lutando: pele morena escura e pele clara',
+    '👨🏾‍🫯‍👨🏼' => 'homens lutando: pele morena escura e pele morena clara',
+    '👨🏾‍🫯‍👨🏽' => 'homens lutando: pele morena escura e pele morena',
+    '👨🏾‍🫯‍👨🏿' => 'homens lutando: pele morena escura e pele escura',
+    '👨🏿‍🫯‍👨🏻' => 'homens lutando: pele escura e pele clara',
+    '👨🏿‍🫯‍👨🏼' => 'homens lutando: pele escura e pele morena clara',
+    '👨🏿‍🫯‍👨🏽' => 'homens lutando: pele escura e pele morena',
+    '👨🏿‍🫯‍👨🏾' => 'homens lutando: pele escura e pele morena escura',
     '👨🏻‍❤‍👨🏻' => 'casal apaixonado: homem, homem e pele clara',
     '👨🏻‍❤‍👨🏼' => 'casal apaixonado: homem, homem, pele clara e pele morena clara',
     '👨🏻‍❤‍👨🏽' => 'casal apaixonado: homem, homem, pele clara e pele morena',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'casal apaixonado: homem, homem, pele escura e pele morena',
     '👨🏿‍❤‍👨🏾' => 'casal apaixonado: homem, homem, pele escura e pele morena escura',
     '👨🏿‍❤‍👨🏿' => 'casal apaixonado: homem, homem e pele escura',
+    '👨🏻‍🐰‍👨🏼' => 'homens com orelhas de coelho: pele clara e pele morena clara',
+    '👨🏻‍🐰‍👨🏽' => 'homens com orelhas de coelho: pele clara e pele morena',
+    '👨🏻‍🐰‍👨🏾' => 'homens com orelhas de coelho: pele clara e pele morena escura',
+    '👨🏻‍🐰‍👨🏿' => 'homens com orelhas de coelho: pele clara e pele escura',
+    '👨🏼‍🐰‍👨🏻' => 'homens com orelhas de coelho: pele morena clara e pele clara',
+    '👨🏼‍🐰‍👨🏽' => 'homens com orelhas de coelho: pele morena clara e pele morena',
+    '👨🏼‍🐰‍👨🏾' => 'homens com orelhas de coelho: pele morena clara e pele morena escura',
+    '👨🏼‍🐰‍👨🏿' => 'homens com orelhas de coelho: pele morena clara e pele escura',
+    '👨🏽‍🐰‍👨🏻' => 'homens com orelhas de coelho: pele morena e pele clara',
+    '👨🏽‍🐰‍👨🏼' => 'homens com orelhas de coelho: pele morena e pele morena clara',
+    '👨🏽‍🐰‍👨🏾' => 'homens com orelhas de coelho: pele morena e pele morena escura',
+    '👨🏽‍🐰‍👨🏿' => 'homens com orelhas de coelho: pele morena e pele escura',
+    '👨🏾‍🐰‍👨🏻' => 'homens com orelhas de coelho: pele morena escura e pele clara',
+    '👨🏾‍🐰‍👨🏼' => 'homens com orelhas de coelho: pele morena escura e pele morena clara',
+    '👨🏾‍🐰‍👨🏽' => 'homens com orelhas de coelho: pele morena escura e pele morena',
+    '👨🏾‍🐰‍👨🏿' => 'homens com orelhas de coelho: pele morena escura e pele escura',
+    '👨🏿‍🐰‍👨🏻' => 'homens com orelhas de coelho: pele escura e pele clara',
+    '👨🏿‍🐰‍👨🏼' => 'homens com orelhas de coelho: pele escura e pele morena clara',
+    '👨🏿‍🐰‍👨🏽' => 'homens com orelhas de coelho: pele escura e pele morena',
+    '👨🏿‍🐰‍👨🏾' => 'homens com orelhas de coelho: pele escura e pele morena escura',
+    '👩🏻‍🫯‍👩🏼' => 'mulheres lutando: pele clara e pele morena clara',
+    '👩🏻‍🫯‍👩🏽' => 'mulheres lutando: pele clara e pele morena',
+    '👩🏻‍🫯‍👩🏾' => 'mulheres lutando: pele clara e pele morena escura',
+    '👩🏻‍🫯‍👩🏿' => 'mulheres lutando: pele clara e pele escura',
+    '👩🏼‍🫯‍👩🏻' => 'mulheres lutando: pele morena clara e pele clara',
+    '👩🏼‍🫯‍👩🏽' => 'mulheres lutando: pele morena clara e pele morena',
+    '👩🏼‍🫯‍👩🏾' => 'mulheres lutando: pele morena clara e pele morena escura',
+    '👩🏼‍🫯‍👩🏿' => 'mulheres lutando: pele morena clara e pele escura',
+    '👩🏽‍🫯‍👩🏻' => 'mulheres lutando: pele morena e pele clara',
+    '👩🏽‍🫯‍👩🏼' => 'mulheres lutando: pele morena e pele morena clara',
+    '👩🏽‍🫯‍👩🏾' => 'mulheres lutando: pele morena e pele morena escura',
+    '👩🏽‍🫯‍👩🏿' => 'mulheres lutando: pele morena e pele escura',
+    '👩🏾‍🫯‍👩🏻' => 'mulheres lutando: pele morena escura e pele clara',
+    '👩🏾‍🫯‍👩🏼' => 'mulheres lutando: pele morena escura e pele morena clara',
+    '👩🏾‍🫯‍👩🏽' => 'mulheres lutando: pele morena escura e pele morena',
+    '👩🏾‍🫯‍👩🏿' => 'mulheres lutando: pele morena escura e pele escura',
+    '👩🏿‍🫯‍👩🏻' => 'mulheres lutando: pele escura e pele clara',
+    '👩🏿‍🫯‍👩🏼' => 'mulheres lutando: pele escura e pele morena clara',
+    '👩🏿‍🫯‍👩🏽' => 'mulheres lutando: pele escura e pele morena',
+    '👩🏿‍🫯‍👩🏾' => 'mulheres lutando: pele escura e pele morena escura',
     '👩🏻‍❤‍👨🏻' => 'casal apaixonado: mulher, homem e pele clara',
     '👩🏻‍❤‍👨🏼' => 'casal apaixonado: mulher, homem, pele clara e pele morena clara',
     '👩🏻‍❤‍👨🏽' => 'casal apaixonado: mulher, homem, pele clara e pele morena',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'casal apaixonado: mulher, mulher, pele escura e pele morena',
     '👩🏿‍❤‍👩🏾' => 'casal apaixonado: mulher, mulher, pele escura e pele morena escura',
     '👩🏿‍❤‍👩🏿' => 'casal apaixonado: mulher, mulher e pele escura',
+    '👩🏻‍🐰‍👩🏼' => 'mulheres com orelhas de coelho: pele clara e pele morena clara',
+    '👩🏻‍🐰‍👩🏽' => 'mulheres com orelhas de coelho: pele clara e pele morena',
+    '👩🏻‍🐰‍👩🏾' => 'mulheres com orelhas de coelho: pele clara e pele morena escura',
+    '👩🏻‍🐰‍👩🏿' => 'mulheres com orelhas de coelho: pele clara e pele escura',
+    '👩🏼‍🐰‍👩🏻' => 'mulheres com orelhas de coelho: pele morena clara e pele clara',
+    '👩🏼‍🐰‍👩🏽' => 'mulheres com orelhas de coelho: pele morena clara e pele morena',
+    '👩🏼‍🐰‍👩🏾' => 'mulheres com orelhas de coelho: pele morena clara e pele morena escura',
+    '👩🏼‍🐰‍👩🏿' => 'mulheres com orelhas de coelho: pele morena clara e pele escura',
+    '👩🏽‍🐰‍👩🏻' => 'mulheres com orelhas de coelho: pele morena e pele clara',
+    '👩🏽‍🐰‍👩🏼' => 'mulheres com orelhas de coelho: pele morena e pele morena clara',
+    '👩🏽‍🐰‍👩🏾' => 'mulheres com orelhas de coelho: pele morena e pele morena escura',
+    '👩🏽‍🐰‍👩🏿' => 'mulheres com orelhas de coelho: pele morena e pele escura',
+    '👩🏾‍🐰‍👩🏻' => 'mulheres com orelhas de coelho: pele morena escura e pele clara',
+    '👩🏾‍🐰‍👩🏼' => 'mulheres com orelhas de coelho: pele morena escura e pele morena clara',
+    '👩🏾‍🐰‍👩🏽' => 'mulheres com orelhas de coelho: pele morena escura e pele morena',
+    '👩🏾‍🐰‍👩🏿' => 'mulheres com orelhas de coelho: pele morena escura e pele escura',
+    '👩🏿‍🐰‍👩🏻' => 'mulheres com orelhas de coelho: pele escura e pele clara',
+    '👩🏿‍🐰‍👩🏼' => 'mulheres com orelhas de coelho: pele escura e pele morena clara',
+    '👩🏿‍🐰‍👩🏽' => 'mulheres com orelhas de coelho: pele escura e pele morena',
+    '👩🏿‍🐰‍👩🏾' => 'mulheres com orelhas de coelho: pele escura e pele morena escura',
     '🧑🏻‍🤝‍🧑🏻' => 'pessoas de mãos dadas: pele clara',
     '🧑🏻‍🤝‍🧑🏼' => 'pessoas de mãos dadas: pele clara e pele morena clara',
     '🧑🏻‍🤝‍🧑🏽' => 'pessoas de mãos dadas: pele clara e pele morena',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bandeira: Escócia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bandeira: País de Gales',
     '🧑‍🧑‍🧒‍🧒' => 'família: adulto, adulto, criança, criança',
-    '🚶🏻‍♀‍➡' => 'mulher andando de frente para a direita',
-    '🚶🏼‍♀‍➡' => 'mulher andando de frente para a direita',
-    '🚶🏽‍♀‍➡' => 'mulher andando de frente para a direita',
-    '🚶🏾‍♀‍➡' => 'mulher andando de frente para a direita',
-    '🚶🏿‍♀‍➡' => 'mulher andando de frente para a direita',
-    '🚶🏻‍♂‍➡' => 'homem andando de frente para a direita',
-    '🚶🏼‍♂‍➡' => 'homem andando de frente para a direita',
-    '🚶🏽‍♂‍➡' => 'homem andando de frente para a direita',
-    '🚶🏾‍♂‍➡' => 'homem andando de frente para a direita',
-    '🚶🏿‍♂‍➡' => 'homem andando de frente para a direita',
-    '🧎🏻‍♀‍➡' => 'mulher ajoelhando de frente para a direita',
-    '🧎🏼‍♀‍➡' => 'mulher ajoelhando de frente para a direita',
-    '🧎🏽‍♀‍➡' => 'mulher ajoelhando de frente para a direita',
-    '🧎🏾‍♀‍➡' => 'mulher ajoelhando de frente para a direita',
-    '🧎🏿‍♀‍➡' => 'mulher ajoelhando de frente para a direita',
-    '🧎🏻‍♂‍➡' => 'homem ajoelhando de frente para a direita',
-    '🧎🏼‍♂‍➡' => 'homem ajoelhando de frente para a direita',
-    '🧎🏽‍♂‍➡' => 'homem ajoelhando de frente para a direita',
-    '🧎🏾‍♂‍➡' => 'homem ajoelhando de frente para a direita',
-    '🧎🏿‍♂‍➡' => 'homem ajoelhando de frente para a direita',
-    '🧑🏻‍🦯‍➡' => 'pessoa com bengala para cego de frente para a direita',
-    '🧑🏼‍🦯‍➡' => 'pessoa com bengala para cego de frente para a direita',
-    '🧑🏽‍🦯‍➡' => 'pessoa com bengala para cego de frente para a direita',
-    '🧑🏾‍🦯‍➡' => 'pessoa com bengala para cego de frente para a direita',
-    '🧑🏿‍🦯‍➡' => 'pessoa com bengala para cego de frente para a direita',
-    '👨🏻‍🦯‍➡' => 'homem com bengala para cego de frente para a direita',
-    '👨🏼‍🦯‍➡' => 'homem com bengala para cego de frente para a direita',
-    '👨🏽‍🦯‍➡' => 'homem com bengala para cego de frente para a direita',
-    '👨🏾‍🦯‍➡' => 'homem com bengala para cego de frente para a direita',
-    '👨🏿‍🦯‍➡' => 'homem com bengala para cego de frente para a direita',
-    '👩🏻‍🦯‍➡' => 'mulher com bengala para cego de frente para a direita',
-    '👩🏼‍🦯‍➡' => 'mulher com bengala para cego de frente para a direita',
-    '👩🏽‍🦯‍➡' => 'mulher com bengala para cego de frente para a direita',
-    '👩🏾‍🦯‍➡' => 'mulher com bengala para cego de frente para a direita',
-    '👩🏿‍🦯‍➡' => 'mulher com bengala para cego de frente para a direita',
-    '🧑🏻‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada de frente para a direita',
-    '🧑🏼‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada de frente para a direita',
-    '🧑🏽‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada de frente para a direita',
-    '🧑🏾‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada de frente para a direita',
-    '🧑🏿‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada de frente para a direita',
-    '👨🏻‍🦼‍➡' => 'homem em cadeira de rodas motorizada de frente para a direita',
-    '👨🏼‍🦼‍➡' => 'homem em cadeira de rodas motorizada de frente para a direita',
-    '👨🏽‍🦼‍➡' => 'homem em cadeira de rodas motorizada de frente para a direita',
-    '👨🏾‍🦼‍➡' => 'homem em cadeira de rodas motorizada de frente para a direita',
-    '👨🏿‍🦼‍➡' => 'homem em cadeira de rodas motorizada de frente para a direita',
-    '👩🏻‍🦼‍➡' => 'mulher em cadeira de rodas motorizada de frente para a direita',
-    '👩🏼‍🦼‍➡' => 'mulher em cadeira de rodas motorizada de frente para a direita',
-    '👩🏽‍🦼‍➡' => 'mulher em cadeira de rodas motorizada de frente para a direita',
-    '👩🏾‍🦼‍➡' => 'mulher em cadeira de rodas motorizada de frente para a direita',
-    '👩🏿‍🦼‍➡' => 'mulher em cadeira de rodas motorizada de frente para a direita',
-    '🧑🏻‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '🧑🏼‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '🧑🏽‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '🧑🏾‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '🧑🏿‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '👨🏻‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👨🏼‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👨🏽‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👨🏾‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👨🏿‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👩🏻‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '👩🏼‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '👩🏽‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '👩🏾‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '👩🏿‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '🏃🏻‍♀‍➡' => 'mulher correndo de frente para a direita',
-    '🏃🏼‍♀‍➡' => 'mulher correndo de frente para a direita',
-    '🏃🏽‍♀‍➡' => 'mulher correndo de frente para a direita',
-    '🏃🏾‍♀‍➡' => 'mulher correndo de frente para a direita',
-    '🏃🏿‍♀‍➡' => 'mulher correndo de frente para a direita',
-    '🏃🏻‍♂‍➡' => 'homem correndo de frente para a direita',
-    '🏃🏼‍♂‍➡' => 'homem correndo de frente para a direita',
-    '🏃🏽‍♂‍➡' => 'homem correndo de frente para a direita',
-    '🏃🏾‍♂‍➡' => 'homem correndo de frente para a direita',
-    '🏃🏿‍♂‍➡' => 'homem correndo de frente para a direita',
+    '🚶🏻‍♀‍➡' => 'mulher andando: pele clara e de frente para a direita',
+    '🚶🏼‍♀‍➡' => 'mulher andando: pele morena clara e de frente para a direita',
+    '🚶🏽‍♀‍➡' => 'mulher andando: pele morena e de frente para a direita',
+    '🚶🏾‍♀‍➡' => 'mulher andando: pele morena escura e de frente para a direita',
+    '🚶🏿‍♀‍➡' => 'mulher andando: pele escura e de frente para a direita',
+    '🚶🏻‍♂‍➡' => 'homem andando: pele clara e de frente para a direita',
+    '🚶🏼‍♂‍➡' => 'homem andando: pele morena clara e de frente para a direita',
+    '🚶🏽‍♂‍➡' => 'homem andando: pele morena e de frente para a direita',
+    '🚶🏾‍♂‍➡' => 'homem andando: pele morena escura e de frente para a direita',
+    '🚶🏿‍♂‍➡' => 'homem andando: pele escura e de frente para a direita',
+    '🧎🏻‍♀‍➡' => 'mulher ajoelhando: pele clara e de frente para a direita',
+    '🧎🏼‍♀‍➡' => 'mulher ajoelhando: pele morena clara e de frente para a direita',
+    '🧎🏽‍♀‍➡' => 'mulher ajoelhando: pele morena e de frente para a direita',
+    '🧎🏾‍♀‍➡' => 'mulher ajoelhando: pele morena escura e de frente para a direita',
+    '🧎🏿‍♀‍➡' => 'mulher ajoelhando: pele escura e de frente para a direita',
+    '🧎🏻‍♂‍➡' => 'homem ajoelhando: pele clara e de frente para a direita',
+    '🧎🏼‍♂‍➡' => 'homem ajoelhando: pele morena clara e de frente para a direita',
+    '🧎🏽‍♂‍➡' => 'homem ajoelhando: pele morena e de frente para a direita',
+    '🧎🏾‍♂‍➡' => 'homem ajoelhando: pele morena escura e de frente para a direita',
+    '🧎🏿‍♂‍➡' => 'homem ajoelhando: pele escura e de frente para a direita',
+    '🧑🏻‍🦯‍➡' => 'pessoa com bengala para cego: pele clara e de frente para a direita',
+    '🧑🏼‍🦯‍➡' => 'pessoa com bengala para cego: pele morena clara e de frente para a direita',
+    '🧑🏽‍🦯‍➡' => 'pessoa com bengala para cego: pele morena e de frente para a direita',
+    '🧑🏾‍🦯‍➡' => 'pessoa com bengala para cego: pele morena escura e de frente para a direita',
+    '🧑🏿‍🦯‍➡' => 'pessoa com bengala para cego: pele escura e de frente para a direita',
+    '👨🏻‍🦯‍➡' => 'homem com bengala para cego: pele clara e de frente para a direita',
+    '👨🏼‍🦯‍➡' => 'homem com bengala para cego: pele morena clara e de frente para a direita',
+    '👨🏽‍🦯‍➡' => 'homem com bengala para cego: pele morena e de frente para a direita',
+    '👨🏾‍🦯‍➡' => 'homem com bengala para cego: pele morena escura e de frente para a direita',
+    '👨🏿‍🦯‍➡' => 'homem com bengala para cego: pele escura e de frente para a direita',
+    '👩🏻‍🦯‍➡' => 'mulher com bengala para cego: pele clara e de frente para a direita',
+    '👩🏼‍🦯‍➡' => 'mulher com bengala para cego: pele morena clara e de frente para a direita',
+    '👩🏽‍🦯‍➡' => 'mulher com bengala para cego: pele morena e de frente para a direita',
+    '👩🏾‍🦯‍➡' => 'mulher com bengala para cego: pele morena escura e de frente para a direita',
+    '👩🏿‍🦯‍➡' => 'mulher com bengala para cego: pele escura e de frente para a direita',
+    '🧑🏻‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada: pele clara e de frente para a direita',
+    '🧑🏼‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada: pele morena clara e de frente para a direita',
+    '🧑🏽‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada: pele morena e de frente para a direita',
+    '🧑🏾‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada: pele morena escura e de frente para a direita',
+    '🧑🏿‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada: pele escura e de frente para a direita',
+    '👨🏻‍🦼‍➡' => 'homem em cadeira de rodas motorizada: pele clara e de frente para a direita',
+    '👨🏼‍🦼‍➡' => 'homem em cadeira de rodas motorizada: pele morena clara e de frente para a direita',
+    '👨🏽‍🦼‍➡' => 'homem em cadeira de rodas motorizada: pele morena e de frente para a direita',
+    '👨🏾‍🦼‍➡' => 'homem em cadeira de rodas motorizada: pele morena escura e de frente para a direita',
+    '👨🏿‍🦼‍➡' => 'homem em cadeira de rodas motorizada: pele escura e de frente para a direita',
+    '👩🏻‍🦼‍➡' => 'mulher em cadeira de rodas motorizada: pele clara e de frente para a direita',
+    '👩🏼‍🦼‍➡' => 'mulher em cadeira de rodas motorizada: pele morena clara e de frente para a direita',
+    '👩🏽‍🦼‍➡' => 'mulher em cadeira de rodas motorizada: pele morena e de frente para a direita',
+    '👩🏾‍🦼‍➡' => 'mulher em cadeira de rodas motorizada: pele morena escura e de frente para a direita',
+    '👩🏿‍🦼‍➡' => 'mulher em cadeira de rodas motorizada: pele escura e de frente para a direita',
+    '🧑🏻‍🦽‍➡' => 'pessoa em cadeira de rodas manual: pele clara e de frente para a direita',
+    '🧑🏼‍🦽‍➡' => 'pessoa em cadeira de rodas manual: pele morena clara e de frente para a direita',
+    '🧑🏽‍🦽‍➡' => 'pessoa em cadeira de rodas manual: pele morena e de frente para a direita',
+    '🧑🏾‍🦽‍➡' => 'pessoa em cadeira de rodas manual: pele morena escura e de frente para a direita',
+    '🧑🏿‍🦽‍➡' => 'pessoa em cadeira de rodas manual: pele escura e de frente para a direita',
+    '👨🏻‍🦽‍➡' => 'homem em cadeira de rodas manual: pele clara e de frente para a direita',
+    '👨🏼‍🦽‍➡' => 'homem em cadeira de rodas manual: pele morena clara e de frente para a direita',
+    '👨🏽‍🦽‍➡' => 'homem em cadeira de rodas manual: pele morena e de frente para a direita',
+    '👨🏾‍🦽‍➡' => 'homem em cadeira de rodas manual: pele morena escura e de frente para a direita',
+    '👨🏿‍🦽‍➡' => 'homem em cadeira de rodas manual: pele escura e de frente para a direita',
+    '👩🏻‍🦽‍➡' => 'mulher em cadeira de rodas manual: pele clara e de frente para a direita',
+    '👩🏼‍🦽‍➡' => 'mulher em cadeira de rodas manual: pele morena clara e de frente para a direita',
+    '👩🏽‍🦽‍➡' => 'mulher em cadeira de rodas manual: pele morena e de frente para a direita',
+    '👩🏾‍🦽‍➡' => 'mulher em cadeira de rodas manual: pele morena escura e de frente para a direita',
+    '👩🏿‍🦽‍➡' => 'mulher em cadeira de rodas manual: pele escura e de frente para a direita',
+    '🏃🏻‍♀‍➡' => 'mulher correndo: pele clara e de frente para a direita',
+    '🏃🏼‍♀‍➡' => 'mulher correndo: pele morena clara e de frente para a direita',
+    '🏃🏽‍♀‍➡' => 'mulher correndo: pele morena e de frente para a direita',
+    '🏃🏾‍♀‍➡' => 'mulher correndo: pele morena escura e de frente para a direita',
+    '🏃🏿‍♀‍➡' => 'mulher correndo: pele escura e de frente para a direita',
+    '🏃🏻‍♂‍➡' => 'homem correndo: pele clara e de frente para a direita',
+    '🏃🏼‍♂‍➡' => 'homem correndo: pele morena clara e de frente para a direita',
+    '🏃🏽‍♂‍➡' => 'homem correndo: pele morena e de frente para a direita',
+    '🏃🏾‍♂‍➡' => 'homem correndo: pele morena escura e de frente para a direita',
+    '🏃🏿‍♂‍➡' => 'homem correndo: pele escura e de frente para a direita',
     '🫱🏻‍🫲🏼' => 'aperto de mãos: pele clara e pele morena clara',
     '🫱🏻‍🫲🏽' => 'aperto de mãos: pele clara e pele morena',
     '🫱🏻‍🫲🏾' => 'aperto de mãos: pele clara e pele morena escura',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'aperto de mãos: pele escura e pele morena clara',
     '🫱🏿‍🫲🏽' => 'aperto de mãos: pele escura e pele morena',
     '🫱🏿‍🫲🏾' => 'aperto de mãos: pele escura e pele morena escura',
-    '🚶‍♀‍➡' => 'mulher andando de frente para a direita',
-    '🚶‍♂‍➡' => 'homem andando de frente para a direita',
-    '🧎‍♀‍➡' => 'mulher ajoelhando de frente para a direita',
-    '🧎‍♂‍➡' => 'homem ajoelhando de frente para a direita',
-    '🧑‍🦯‍➡' => 'pessoa com bengala para cego de frente para a direita',
-    '👨‍🦯‍➡' => 'homem com bengala para cego de frente para a direita',
-    '👩‍🦯‍➡' => 'mulher com bengala para cego de frente para a direita',
-    '🧑‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada de frente para a direita',
-    '👨‍🦼‍➡' => 'homem em cadeira de rodas motorizada de frente para a direita',
-    '👩‍🦼‍➡' => 'mulher em cadeira de rodas motorizada de frente para a direita',
-    '🧑‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '👨‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👩‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '🏃‍♀‍➡' => 'mulher correndo de frente para a direita',
-    '🏃‍♂‍➡' => 'homem correndo de frente para a direita',
+    '🚶‍♀‍➡' => 'mulher andando: de frente para a direita',
+    '🚶‍♂‍➡' => 'homem andando: de frente para a direita',
+    '🧎‍♀‍➡' => 'mulher ajoelhando: de frente para a direita',
+    '🧎‍♂‍➡' => 'homem ajoelhando: de frente para a direita',
+    '🧑‍🦯‍➡' => 'pessoa com bengala para cego: de frente para a direita',
+    '👨‍🦯‍➡' => 'homem com bengala para cego: de frente para a direita',
+    '👩‍🦯‍➡' => 'mulher com bengala para cego: de frente para a direita',
+    '🧑‍🦼‍➡' => 'pessoa em cadeira de rodas motorizada: de frente para a direita',
+    '👨‍🦼‍➡' => 'homem em cadeira de rodas motorizada: de frente para a direita',
+    '👩‍🦼‍➡' => 'mulher em cadeira de rodas motorizada: de frente para a direita',
+    '🧑‍🦽‍➡' => 'pessoa em cadeira de rodas manual: de frente para a direita',
+    '👨‍🦽‍➡' => 'homem em cadeira de rodas manual: de frente para a direita',
+    '👩‍🦽‍➡' => 'mulher em cadeira de rodas manual: de frente para a direita',
+    '🏃‍♀‍➡' => 'mulher correndo: de frente para a direita',
+    '🏃‍♂‍➡' => 'homem correndo: de frente para a direita',
     '👩‍❤‍👨' => 'casal apaixonado: mulher e homem',
     '👨‍❤‍👨' => 'casal apaixonado: homem e homem',
     '👩‍❤‍👩' => 'casal apaixonado: mulher e mulher',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'pessoa: pele morena e careca',
     '🧑🏾‍🦲' => 'pessoa: pele morena escura e careca',
     '🧑🏿‍🦲' => 'pessoa: pele escura e careca',
+    '🧑🏻‍🩰' => 'bailarina: pele clara',
+    '🧑🏼‍🩰' => 'bailarina: pele morena clara',
+    '🧑🏽‍🩰' => 'bailarina: pele morena',
+    '🧑🏾‍🩰' => 'bailarina: pele morena escura',
+    '🧑🏿‍🩰' => 'bailarina: pele escura',
     '🧔🏻‍♂' => 'homem: pele clara e barbudo',
     '🧔🏼‍♂' => 'homem: pele morena clara e barbudo',
     '🧔🏽‍♂' => 'homem: pele morena e barbudo',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'mulher andando: pele morena',
     '🚶🏾‍♀' => 'mulher andando: pele morena escura',
     '🚶🏿‍♀' => 'mulher andando: pele escura',
-    '🚶🏻‍➡' => 'pessoa andando de frente para a direita',
-    '🚶🏼‍➡' => 'pessoa andando de frente para a direita',
-    '🚶🏽‍➡' => 'pessoa andando de frente para a direita',
-    '🚶🏾‍➡' => 'pessoa andando de frente para a direita',
-    '🚶🏿‍➡' => 'pessoa andando de frente para a direita',
+    '🚶🏻‍➡' => 'pessoa andando: pele clara e de frente para a direita',
+    '🚶🏼‍➡' => 'pessoa andando: pele morena clara e de frente para a direita',
+    '🚶🏽‍➡' => 'pessoa andando: pele morena e de frente para a direita',
+    '🚶🏾‍➡' => 'pessoa andando: pele morena escura e de frente para a direita',
+    '🚶🏿‍➡' => 'pessoa andando: pele escura e de frente para a direita',
     '🧍🏻‍♂' => 'homem em pé: pele clara',
     '🧍🏼‍♂' => 'homem em pé: pele morena clara',
     '🧍🏽‍♂' => 'homem em pé: pele morena',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'mulher ajoelhando: pele morena',
     '🧎🏾‍♀' => 'mulher ajoelhando: pele morena escura',
     '🧎🏿‍♀' => 'mulher ajoelhando: pele escura',
-    '🧎🏻‍➡' => 'pessoa ajoelhando de frente para a direita',
-    '🧎🏼‍➡' => 'pessoa ajoelhando de frente para a direita',
-    '🧎🏽‍➡' => 'pessoa ajoelhando de frente para a direita',
-    '🧎🏾‍➡' => 'pessoa ajoelhando de frente para a direita',
-    '🧎🏿‍➡' => 'pessoa ajoelhando de frente para a direita',
+    '🧎🏻‍➡' => 'pessoa ajoelhando: pele clara e de frente para a direita',
+    '🧎🏼‍➡' => 'pessoa ajoelhando: pele morena clara e de frente para a direita',
+    '🧎🏽‍➡' => 'pessoa ajoelhando: pele morena e de frente para a direita',
+    '🧎🏾‍➡' => 'pessoa ajoelhando: pele morena escura e de frente para a direita',
+    '🧎🏿‍➡' => 'pessoa ajoelhando: pele escura e de frente para a direita',
     '🧑🏻‍🦯' => 'pessoa com bengala para cego: pele clara',
     '🧑🏼‍🦯' => 'pessoa com bengala para cego: pele morena clara',
     '🧑🏽‍🦯' => 'pessoa com bengala para cego: pele morena',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'mulher correndo: pele morena',
     '🏃🏾‍♀' => 'mulher correndo: pele morena escura',
     '🏃🏿‍♀' => 'mulher correndo: pele escura',
-    '🏃🏻‍➡' => 'pessoa correndo de frente para a direita',
-    '🏃🏼‍➡' => 'pessoa correndo de frente para a direita',
-    '🏃🏽‍➡' => 'pessoa correndo de frente para a direita',
-    '🏃🏾‍➡' => 'pessoa correndo de frente para a direita',
-    '🏃🏿‍➡' => 'pessoa correndo de frente para a direita',
+    '🏃🏻‍➡' => 'pessoa correndo: pele clara e de frente para a direita',
+    '🏃🏼‍➡' => 'pessoa correndo: pele morena clara e de frente para a direita',
+    '🏃🏽‍➡' => 'pessoa correndo: pele morena e de frente para a direita',
+    '🏃🏾‍➡' => 'pessoa correndo: pele morena escura e de frente para a direita',
+    '🏃🏿‍➡' => 'pessoa correndo: pele escura e de frente para a direita',
+    '👯🏻‍♀' => 'mulheres com orelhas de coelho: pele clara',
+    '👯🏼‍♀' => 'mulheres com orelhas de coelho: pele morena clara',
+    '👯🏽‍♀' => 'mulheres com orelhas de coelho: pele morena',
+    '👯🏾‍♀' => 'mulheres com orelhas de coelho: pele morena escura',
+    '👯🏿‍♀' => 'mulheres com orelhas de coelho: pele escura',
+    '👯🏻‍♂' => 'homens com orelhas de coelho: pele clara',
+    '👯🏼‍♂' => 'homens com orelhas de coelho: pele morena clara',
+    '👯🏽‍♂' => 'homens com orelhas de coelho: pele morena',
+    '👯🏾‍♂' => 'homens com orelhas de coelho: pele morena escura',
+    '👯🏿‍♂' => 'homens com orelhas de coelho: pele escura',
     '🧖🏻‍♂' => 'homem na sauna: pele clara',
     '🧖🏼‍♂' => 'homem na sauna: pele morena clara',
     '🧖🏽‍♂' => 'homem na sauna: pele morena',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'mulher fazendo estrela: pele morena',
     '🤸🏾‍♀' => 'mulher fazendo estrela: pele morena escura',
     '🤸🏿‍♀' => 'mulher fazendo estrela: pele escura',
+    '🤼🏻‍♀' => 'mulheres lutando: pele clara',
+    '🤼🏼‍♀' => 'mulheres lutando: pele morena clara',
+    '🤼🏽‍♀' => 'mulheres lutando: pele morena',
+    '🤼🏾‍♀' => 'mulheres lutando: pele morena escura',
+    '🤼🏿‍♀' => 'mulheres lutando: pele escura',
+    '🤼🏻‍♂' => 'homens lutando: pele clara',
+    '🤼🏼‍♂' => 'homens lutando: pele morena clara',
+    '🤼🏽‍♂' => 'homens lutando: pele morena',
+    '🤼🏾‍♂' => 'homens lutando: pele morena escura',
+    '🤼🏿‍♂' => 'homens lutando: pele escura',
     '🤽🏻‍♂' => 'homem jogando polo aquático: pele clara',
     '🤽🏼‍♂' => 'homem jogando polo aquático: pele morena clara',
     '🤽🏽‍♂' => 'homem jogando polo aquático: pele morena',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'mulher: cabelo cacheado',
     '👩‍🦳' => 'mulher: cabelo branco',
     '👩‍🦲' => 'mulher: careca',
-    '🚶‍➡' => 'pessoa andando de frente para a direita',
-    '🧎‍➡' => 'pessoa ajoelhando de frente para a direita',
-    '🏃‍➡' => 'pessoa correndo de frente para a direita',
+    '🚶‍➡' => 'pessoa andando: de frente para a direita',
+    '🧎‍➡' => 'pessoa ajoelhando: de frente para a direita',
+    '🏃‍➡' => 'pessoa correndo: de frente para a direita',
     '👨‍👦' => 'família: homem e menino',
     '👨‍👧' => 'família: homem e menina',
     '👩‍👦' => 'família: mulher e menino',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'mulher em cadeira de rodas manual',
     '🏃‍♂' => 'homem correndo',
     '🏃‍♀' => 'mulher correndo',
+    '🧑‍🩰' => 'bailarina',
     '👯‍♂' => 'homens com orelhas de coelho',
     '👯‍♀' => 'mulheres com orelhas de coelho',
     '🧖‍♂' => 'homem na sauna',
@@ -1571,31 +1717,31 @@
     '🤙🏽' => 'sinal "me liga": pele morena',
     '🤙🏾' => 'sinal "me liga": pele morena escura',
     '🤙🏿' => 'sinal "me liga": pele escura',
-    '👈🏻' => 'dorso da mão com dedo indicador apontando para a esquerda: pele clara',
-    '👈🏼' => 'dorso da mão com dedo indicador apontando para a esquerda: pele morena clara',
-    '👈🏽' => 'dorso da mão com dedo indicador apontando para a esquerda: pele morena',
-    '👈🏾' => 'dorso da mão com dedo indicador apontando para a esquerda: pele morena escura',
-    '👈🏿' => 'dorso da mão com dedo indicador apontando para a esquerda: pele escura',
-    '👉🏻' => 'dorso da mão com dedo indicador apontando para a direita: pele clara',
-    '👉🏼' => 'dorso da mão com dedo indicador apontando para a direita: pele morena clara',
-    '👉🏽' => 'dorso da mão com dedo indicador apontando para a direita: pele morena',
-    '👉🏾' => 'dorso da mão com dedo indicador apontando para a direita: pele morena escura',
-    '👉🏿' => 'dorso da mão com dedo indicador apontando para a direita: pele escura',
-    '👆🏻' => 'dorso da mão com dedo indicador apontando para cima: pele clara',
-    '👆🏼' => 'dorso da mão com dedo indicador apontando para cima: pele morena clara',
-    '👆🏽' => 'dorso da mão com dedo indicador apontando para cima: pele morena',
-    '👆🏾' => 'dorso da mão com dedo indicador apontando para cima: pele morena escura',
-    '👆🏿' => 'dorso da mão com dedo indicador apontando para cima: pele escura',
+    '👈🏻' => 'dorso da mão com indicador apontando para a esquerda: pele clara',
+    '👈🏼' => 'dorso da mão com indicador apontando para a esquerda: pele morena clara',
+    '👈🏽' => 'dorso da mão com indicador apontando para a esquerda: pele morena',
+    '👈🏾' => 'dorso da mão com indicador apontando para a esquerda: pele morena escura',
+    '👈🏿' => 'dorso da mão com indicador apontando para a esquerda: pele escura',
+    '👉🏻' => 'dorso da mão com indicador apontando para a direita: pele clara',
+    '👉🏼' => 'dorso da mão com indicador apontando para a direita: pele morena clara',
+    '👉🏽' => 'dorso da mão com indicador apontando para a direita: pele morena',
+    '👉🏾' => 'dorso da mão com indicador apontando para a direita: pele morena escura',
+    '👉🏿' => 'dorso da mão com indicador apontando para a direita: pele escura',
+    '👆🏻' => 'dorso da mão com indicador apontando para cima: pele clara',
+    '👆🏼' => 'dorso da mão com indicador apontando para cima: pele morena clara',
+    '👆🏽' => 'dorso da mão com indicador apontando para cima: pele morena',
+    '👆🏾' => 'dorso da mão com indicador apontando para cima: pele morena escura',
+    '👆🏿' => 'dorso da mão com indicador apontando para cima: pele escura',
     '🖕🏻' => 'dedo do meio: pele clara',
     '🖕🏼' => 'dedo do meio: pele morena clara',
     '🖕🏽' => 'dedo do meio: pele morena',
     '🖕🏾' => 'dedo do meio: pele morena escura',
     '🖕🏿' => 'dedo do meio: pele escura',
-    '👇🏻' => 'dorso da mão com dedo indicador apontando para baixo: pele clara',
-    '👇🏼' => 'dorso da mão com dedo indicador apontando para baixo: pele morena clara',
-    '👇🏽' => 'dorso da mão com dedo indicador apontando para baixo: pele morena',
-    '👇🏾' => 'dorso da mão com dedo indicador apontando para baixo: pele morena escura',
-    '👇🏿' => 'dorso da mão com dedo indicador apontando para baixo: pele escura',
+    '👇🏻' => 'dorso da mão com indicador apontando para baixo: pele clara',
+    '👇🏼' => 'dorso da mão com indicador apontando para baixo: pele morena clara',
+    '👇🏽' => 'dorso da mão com indicador apontando para baixo: pele morena',
+    '👇🏾' => 'dorso da mão com indicador apontando para baixo: pele morena escura',
+    '👇🏿' => 'dorso da mão com indicador apontando para baixo: pele escura',
     '☝🏻' => 'indicador apontando para cima: pele clara',
     '☝🏼' => 'indicador apontando para cima: pele morena clara',
     '☝🏽' => 'indicador apontando para cima: pele morena',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'homem de terno levitando: pele morena',
     '🕴🏾' => 'homem de terno levitando: pele morena escura',
     '🕴🏿' => 'homem de terno levitando: pele escura',
+    '👯🏻' => 'pessoas com orelhas de coelho: pele clara',
+    '👯🏼' => 'pessoas com orelhas de coelho: pele morena clara',
+    '👯🏽' => 'pessoas com orelhas de coelho: pele morena',
+    '👯🏾' => 'pessoas com orelhas de coelho: pele morena escura',
+    '👯🏿' => 'pessoas com orelhas de coelho: pele escura',
     '🧖🏻' => 'pessoa na sauna: pele clara',
     '🧖🏼' => 'pessoa na sauna: pele morena clara',
     '🧖🏽' => 'pessoa na sauna: pele morena',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'pessoa fazendo estrela: pele morena',
     '🤸🏾' => 'pessoa fazendo estrela: pele morena escura',
     '🤸🏿' => 'pessoa fazendo estrela: pele escura',
+    '🤼🏻' => 'pessoas lutando: pele clara',
+    '🤼🏼' => 'pessoas lutando: pele morena clara',
+    '🤼🏽' => 'pessoas lutando: pele morena',
+    '🤼🏾' => 'pessoas lutando: pele morena escura',
+    '🤼🏿' => 'pessoas lutando: pele escura',
     '🤽🏻' => 'pessoa jogando polo aquático: pele clara',
     '🤽🏼' => 'pessoa jogando polo aquático: pele morena clara',
     '🤽🏽' => 'pessoa jogando polo aquático: pele morena',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bandeira: China',
     '🇨🇴' => 'bandeira: Colômbia',
     '🇨🇵' => 'bandeira: Ilha de Clipperton',
+    '🇨🇶' => 'bandeira: Sark',
     '🇨🇷' => 'bandeira: Costa Rica',
     '🇨🇺' => 'bandeira: Cuba',
     '🇨🇻' => 'bandeira: Cabo Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'pele morena',
     '🏾' => 'pele morena escura',
     '🏿' => 'pele escura',
-    '🪉' => 'harpa',
-    '🪏' => 'pá',
-    '🪾' => 'árvore seca',
-    '🫆' => 'impressão digital',
-    '🫜' => 'tubérculo',
-    '🫟' => 'respingo',
-    '🫩' => 'rosto com olheiras',
     '😀' => 'rosto risonho',
     '😃' => 'rosto risonho com olhos bem abertos',
     '😄' => 'rosto risonho com olhos sorridentes',
@@ -2450,6 +2600,7 @@
     '😪' => 'rosto sonolento',
     '🤤' => 'rosto babando',
     '😴' => 'rosto dormindo',
+    '🫩' => 'rosto com olheiras',
     '😷' => 'rosto com máscara médica',
     '🤒' => 'rosto com termômetro',
     '🤕' => 'rosto com atadura na cabeça',
@@ -2476,6 +2627,7 @@
     '😯' => 'rosto surpreso',
     '😲' => 'rosto espantado',
     '😳' => 'rosto ruborizado',
+    '🫪' => 'rosto distorcido',
     '🥺' => 'rosto implorando',
     '🥹' => 'rosto segurando as lágrimas',
     '😦' => 'rosto franzido com boca aberta',
@@ -2547,6 +2699,7 @@
     '💋' => 'marca de beijo',
     '💯' => 'cem pontos',
     '💢' => 'símbolo de raiva',
+    '🫯' => 'nuvem de briga',
     '💥' => 'colisão',
     '💫' => 'zonzo',
     '💦' => 'pingos de suor',
@@ -2577,11 +2730,11 @@
     '🤟' => 'gesto de "te amo"',
     '🤘' => 'saudação do rock',
     '🤙' => 'sinal "me liga"',
-    '👈' => 'dorso da mão com dedo indicador apontando para a esquerda',
-    '👉' => 'dorso da mão com dedo indicador apontando para a direita',
-    '👆' => 'dorso da mão com dedo indicador apontando para cima',
+    '👈' => 'dorso da mão com indicador apontando para a esquerda',
+    '👉' => 'dorso da mão com indicador apontando para a direita',
+    '👆' => 'dorso da mão com indicador apontando para cima',
     '🖕' => 'dedo do meio',
-    '👇' => 'dorso da mão com dedo indicador apontando para baixo',
+    '👇' => 'dorso da mão com indicador apontando para baixo',
     '☝' => 'indicador apontando para cima',
     '🫵' => 'indicador apontando para o visualizador',
     '👍' => 'polegar para cima',
@@ -2670,6 +2823,7 @@
     '🧞' => 'gênio',
     '🧟' => 'zumbi',
     '🧌' => 'troll',
+    '🫈' => 'criatura peluda',
     '💆' => 'pessoa recebendo massagem facial',
     '💇' => 'pessoa cortando o cabelo',
     '🚶' => 'pessoa andando',
@@ -2713,6 +2867,7 @@
     '🫂' => 'pessoas se abraçando',
     '👪' => 'família',
     '👣' => 'pegadas',
+    '🫆' => 'impressão digital',
     '🦰' => 'cabelo vermelho',
     '🦱' => 'cabelo cacheado',
     '🦳' => 'cabelo branco',
@@ -2812,6 +2967,7 @@
     '🐳' => 'baleia esguichando água',
     '🐋' => 'baleia',
     '🐬' => 'golfinho',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'peixe',
     '🐠' => 'peixe tropical',
@@ -2821,6 +2977,11 @@
     '🐚' => 'caramujo',
     '🪸' => 'coral',
     '🪼' => 'água-viva',
+    '🦀' => 'caranguejo',
+    '🦞' => 'lagosta',
+    '🦐' => 'camarão',
+    '🦑' => 'lula',
+    '🦪' => 'ostra',
     '🐌' => 'caracol',
     '🦋' => 'borboleta',
     '🐛' => 'inseto',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ninho vazio',
     '🪺' => 'ninho com ovos',
     '🍄' => 'cogumelo',
+    '🪾' => 'árvore seca',
     '🍇' => 'uvas',
     '🍈' => 'melão',
     '🍉' => 'melancia',
@@ -2901,6 +3063,7 @@
     '🌰' => 'castanha',
     '🫚' => 'gengibre',
     '🫛' => 'vagem',
+    '🫜' => 'tubérculo',
     '🍞' => 'pão',
     '🥐' => 'croissant',
     '🥖' => 'baguete',
@@ -2952,11 +3115,6 @@
     '🥟' => 'bolinho asiático',
     '🥠' => 'biscoito da sorte',
     '🥡' => 'caixa para viagem',
-    '🦀' => 'caranguejo',
-    '🦞' => 'lagosta',
-    '🦐' => 'camarão',
-    '🦑' => 'lula',
-    '🦪' => 'ostra',
     '🍦' => 'sorvete italiano',
     '🍧' => 'raspadinha de gelo',
     '🍨' => 'sorvete',
@@ -3007,6 +3165,7 @@
     '🧭' => 'bússola',
     '🏔' => 'montanha com neve',
     '⛰' => 'montanha',
+    '🛘' => 'deslizamento',
     '🌋' => 'vulcão',
     '🗻' => 'Monte Fuji',
     '🏕' => 'acampamento',
@@ -3131,7 +3290,7 @@
     '💺' => 'assento',
     '🚁' => 'helicóptero',
     '🚟' => 'estrada de ferro suspensa',
-    '🚠' => 'cabo suspenso usado em teleféricos nas montanhas',
+    '🚠' => 'teleférico de montanha',
     '🚡' => 'teleférico',
     '🛰' => 'satélite',
     '🚀' => 'foguete',
@@ -3367,16 +3526,18 @@
     '🎧' => 'fones de ouvido',
     '📻' => 'rádio',
     '🎷' => 'saxofone',
+    '🎺' => 'trompete',
+    '🪊' => 'trombone',
     '🪗' => 'acordeão',
     '🎸' => 'guitarra',
     '🎹' => 'teclado musical',
-    '🎺' => 'trompete',
     '🎻' => 'violino',
     '🪕' => 'banjo',
     '🥁' => 'tambor',
     '🪘' => 'tambor comprido',
     '🪇' => 'maracás',
     '🪈' => 'flauta',
+    '🪉' => 'harpa',
     '📱' => 'telefone celular',
     '📲' => 'telefone celular com seta',
     '☎' => 'telefone no gancho',
@@ -3430,8 +3591,9 @@
     '📑' => 'marcadores de página',
     '🔖' => 'marcador de página',
     '🏷' => 'etiqueta',
-    '💰' => 'saco de dinheiro',
     '🪙' => 'moeda',
+    '💰' => 'saco de dinheiro',
+    '🪎' => 'baú de tesouro',
     '💴' => 'nota de iene',
     '💵' => 'nota de dólar',
     '💶' => 'nota de euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'caixa de ferramentas',
     '🧲' => 'ímã',
     '🪜' => 'escada',
+    '🪏' => 'pá',
     '⚗' => 'alambique',
     '🧪' => 'tubo de ensaio',
     '🧫' => 'placa de Petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'estrela de oito pontas',
     '❇' => 'faísca',
     '™' => 'símbolo de marca registrada',
+    '🫟' => 'respingo',
     '🔠' => 'letras latinas maiúsculas',
     '🔡' => 'letras latinas minúsculas',
     '🔢' => 'números',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pt_pt.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pt_pt.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pt_pt.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-pt_pt.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'beijo: mulher, mulher, tipo de pele 6 e tipo de pele 4',
     '👩🏿‍❤‍💋‍👩🏾' => 'beijo: mulher, mulher, tipo de pele 6 e tipo de pele 5',
     '👩🏿‍❤‍💋‍👩🏿' => 'beijo: mulher, mulher e tipo de pele 6',
+    '🧑🏻‍🫯‍🧑🏼' => 'pessoas a lutar: tipo de pele 1–2 e tipo de pele 3',
+    '🧑🏻‍🫯‍🧑🏽' => 'pessoas a lutar: tipo de pele 1–2 e tipo de pele 4',
+    '🧑🏻‍🫯‍🧑🏾' => 'pessoas a lutar: tipo de pele 1–2 e tipo de pele 5',
+    '🧑🏻‍🫯‍🧑🏿' => 'pessoas a lutar: tipo de pele 1–2 e tipo de pele 6',
+    '🧑🏼‍🫯‍🧑🏻' => 'pessoas a lutar: tipo de pele 3 e tipo de pele 1–2',
+    '🧑🏼‍🫯‍🧑🏽' => 'pessoas a lutar: tipo de pele 3 e tipo de pele 4',
+    '🧑🏼‍🫯‍🧑🏾' => 'pessoas a lutar: tipo de pele 3 e tipo de pele 5',
+    '🧑🏼‍🫯‍🧑🏿' => 'pessoas a lutar: tipo de pele 3 e tipo de pele 6',
+    '🧑🏽‍🫯‍🧑🏻' => 'pessoas a lutar: tipo de pele 4 e tipo de pele 1–2',
+    '🧑🏽‍🫯‍🧑🏼' => 'pessoas a lutar: tipo de pele 4 e tipo de pele 3',
+    '🧑🏽‍🫯‍🧑🏾' => 'pessoas a lutar: tipo de pele 4 e tipo de pele 5',
+    '🧑🏽‍🫯‍🧑🏿' => 'pessoas a lutar: tipo de pele 4 e tipo de pele 6',
+    '🧑🏾‍🫯‍🧑🏻' => 'pessoas a lutar: tipo de pele 5 e tipo de pele 1–2',
+    '🧑🏾‍🫯‍🧑🏼' => 'pessoas a lutar: tipo de pele 5 e tipo de pele 3',
+    '🧑🏾‍🫯‍🧑🏽' => 'pessoas a lutar: tipo de pele 5 e tipo de pele 4',
+    '🧑🏾‍🫯‍🧑🏿' => 'pessoas a lutar: tipo de pele 5 e tipo de pele 6',
+    '🧑🏿‍🫯‍🧑🏻' => 'pessoas a lutar: tipo de pele 6 e tipo de pele 1–2',
+    '🧑🏿‍🫯‍🧑🏼' => 'pessoas a lutar: tipo de pele 6 e tipo de pele 3',
+    '🧑🏿‍🫯‍🧑🏽' => 'pessoas a lutar: tipo de pele 6 e tipo de pele 4',
+    '🧑🏿‍🫯‍🧑🏾' => 'pessoas a lutar: tipo de pele 6 e tipo de pele 5',
     '🧑🏻‍❤‍🧑🏼' => 'casal com coração: pessoa, pessoa, tipo de pele 1–2 e tipo de pele 3',
     '🧑🏻‍❤‍🧑🏽' => 'casal com coração: pessoa, pessoa, tipo de pele 1–2 e tipo de pele 4',
     '🧑🏻‍❤‍🧑🏾' => 'casal com coração: pessoa, pessoa, tipo de pele 1–2 e tipo de pele 5',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'casal com coração: pessoa, pessoa, tipo de pele 6 e tipo de pele 3',
     '🧑🏿‍❤‍🧑🏽' => 'casal com coração: pessoa, pessoa, tipo de pele 6 e tipo de pele 4',
     '🧑🏿‍❤‍🧑🏾' => 'casal com coração: pessoa, pessoa, tipo de pele 6 e tipo de pele 5',
+    '🧑🏻‍🐰‍🧑🏼' => 'pessoas com orelhas de coelho: tipo de pele 1–2 e tipo de pele 3',
+    '🧑🏻‍🐰‍🧑🏽' => 'pessoas com orelhas de coelho: tipo de pele 1–2 e tipo de pele 4',
+    '🧑🏻‍🐰‍🧑🏾' => 'pessoas com orelhas de coelho: tipo de pele 1–2 e tipo de pele 5',
+    '🧑🏻‍🐰‍🧑🏿' => 'pessoas com orelhas de coelho: tipo de pele 1–2 e tipo de pele 6',
+    '🧑🏼‍🐰‍🧑🏻' => 'pessoas com orelhas de coelho: tipo de pele 3 e tipo de pele 1–2',
+    '🧑🏼‍🐰‍🧑🏽' => 'pessoas com orelhas de coelho: tipo de pele 3 e tipo de pele 4',
+    '🧑🏼‍🐰‍🧑🏾' => 'pessoas com orelhas de coelho: tipo de pele 3 e tipo de pele 5',
+    '🧑🏼‍🐰‍🧑🏿' => 'pessoas com orelhas de coelho: tipo de pele 3 e tipo de pele 6',
+    '🧑🏽‍🐰‍🧑🏻' => 'pessoas com orelhas de coelho: tipo de pele 4 e tipo de pele 1–2',
+    '🧑🏽‍🐰‍🧑🏼' => 'pessoas com orelhas de coelho: tipo de pele 4 e tipo de pele 3',
+    '🧑🏽‍🐰‍🧑🏾' => 'pessoas com orelhas de coelho: tipo de pele 4 e tipo de pele 5',
+    '🧑🏽‍🐰‍🧑🏿' => 'pessoas com orelhas de coelho: tipo de pele 4 e tipo de pele 6',
+    '🧑🏾‍🐰‍🧑🏻' => 'pessoas com orelhas de coelho: tipo de pele 5 e tipo de pele 1–2',
+    '🧑🏾‍🐰‍🧑🏼' => 'pessoas com orelhas de coelho: tipo de pele 5 e tipo de pele 3',
+    '🧑🏾‍🐰‍🧑🏽' => 'pessoas com orelhas de coelho: tipo de pele 5 e tipo de pele 4',
+    '🧑🏾‍🐰‍🧑🏿' => 'pessoas com orelhas de coelho: tipo de pele 5 e tipo de pele 6',
+    '🧑🏿‍🐰‍🧑🏻' => 'pessoas com orelhas de coelho: tipo de pele 6 e tipo de pele 1–2',
+    '🧑🏿‍🐰‍🧑🏼' => 'pessoas com orelhas de coelho: tipo de pele 6 e tipo de pele 3',
+    '🧑🏿‍🐰‍🧑🏽' => 'pessoas com orelhas de coelho: tipo de pele 6 e tipo de pele 4',
+    '🧑🏿‍🐰‍🧑🏾' => 'pessoas com orelhas de coelho: tipo de pele 6 e tipo de pele 5',
+    '👨🏻‍🫯‍👨🏼' => 'lutador de luta livre: tipo de pele 1–2 e tipo de pele 3',
+    '👨🏻‍🫯‍👨🏽' => 'lutador de luta livre: tipo de pele 1–2 e tipo de pele 4',
+    '👨🏻‍🫯‍👨🏾' => 'lutador de luta livre: tipo de pele 1–2 e tipo de pele 5',
+    '👨🏻‍🫯‍👨🏿' => 'lutador de luta livre: tipo de pele 1–2 e tipo de pele 6',
+    '👨🏼‍🫯‍👨🏻' => 'lutador de luta livre: tipo de pele 3 e tipo de pele 1–2',
+    '👨🏼‍🫯‍👨🏽' => 'lutador de luta livre: tipo de pele 3 e tipo de pele 4',
+    '👨🏼‍🫯‍👨🏾' => 'lutador de luta livre: tipo de pele 3 e tipo de pele 5',
+    '👨🏼‍🫯‍👨🏿' => 'lutador de luta livre: tipo de pele 3 e tipo de pele 6',
+    '👨🏽‍🫯‍👨🏻' => 'lutador de luta livre: tipo de pele 4 e tipo de pele 1–2',
+    '👨🏽‍🫯‍👨🏼' => 'lutador de luta livre: tipo de pele 4 e tipo de pele 3',
+    '👨🏽‍🫯‍👨🏾' => 'lutador de luta livre: tipo de pele 4 e tipo de pele 5',
+    '👨🏽‍🫯‍👨🏿' => 'lutador de luta livre: tipo de pele 4 e tipo de pele 6',
+    '👨🏾‍🫯‍👨🏻' => 'lutador de luta livre: tipo de pele 5 e tipo de pele 1–2',
+    '👨🏾‍🫯‍👨🏼' => 'lutador de luta livre: tipo de pele 5 e tipo de pele 3',
+    '👨🏾‍🫯‍👨🏽' => 'lutador de luta livre: tipo de pele 5 e tipo de pele 4',
+    '👨🏾‍🫯‍👨🏿' => 'lutador de luta livre: tipo de pele 5 e tipo de pele 6',
+    '👨🏿‍🫯‍👨🏻' => 'lutador de luta livre: tipo de pele 6 e tipo de pele 1–2',
+    '👨🏿‍🫯‍👨🏼' => 'lutador de luta livre: tipo de pele 6 e tipo de pele 3',
+    '👨🏿‍🫯‍👨🏽' => 'lutador de luta livre: tipo de pele 6 e tipo de pele 4',
+    '👨🏿‍🫯‍👨🏾' => 'lutador de luta livre: tipo de pele 6 e tipo de pele 5',
     '👨🏻‍❤‍👨🏻' => 'casal com coração: homem, homem e tipo de pele 1–2',
     '👨🏻‍❤‍👨🏼' => 'casal com coração: homem, homem, tipo de pele 1–2 e tipo de pele 3',
     '👨🏻‍❤‍👨🏽' => 'casal com coração: homem, homem, tipo de pele 1–2 e tipo de pele 4',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'casal com coração: homem, homem, tipo de pele 6 e tipo de pele 4',
     '👨🏿‍❤‍👨🏾' => 'casal com coração: homem, homem, tipo de pele 6 e tipo de pele 5',
     '👨🏿‍❤‍👨🏿' => 'casal com coração: homem, homem e tipo de pele 6',
+    '👨🏻‍🐰‍👨🏼' => 'homens com orelhas de coelho: tipo de pele 1–2 e tipo de pele 3',
+    '👨🏻‍🐰‍👨🏽' => 'homens com orelhas de coelho: tipo de pele 1–2 e tipo de pele 4',
+    '👨🏻‍🐰‍👨🏾' => 'homens com orelhas de coelho: tipo de pele 1–2 e tipo de pele 5',
+    '👨🏻‍🐰‍👨🏿' => 'homens com orelhas de coelho: tipo de pele 1–2 e tipo de pele 6',
+    '👨🏼‍🐰‍👨🏻' => 'homens com orelhas de coelho: tipo de pele 3 e tipo de pele 1–2',
+    '👨🏼‍🐰‍👨🏽' => 'homens com orelhas de coelho: tipo de pele 3 e tipo de pele 4',
+    '👨🏼‍🐰‍👨🏾' => 'homens com orelhas de coelho: tipo de pele 3 e tipo de pele 5',
+    '👨🏼‍🐰‍👨🏿' => 'homens com orelhas de coelho: tipo de pele 3 e tipo de pele 6',
+    '👨🏽‍🐰‍👨🏻' => 'homens com orelhas de coelho: tipo de pele 4 e tipo de pele 1–2',
+    '👨🏽‍🐰‍👨🏼' => 'homens com orelhas de coelho: tipo de pele 4 e tipo de pele 3',
+    '👨🏽‍🐰‍👨🏾' => 'homens com orelhas de coelho: tipo de pele 4 e tipo de pele 5',
+    '👨🏽‍🐰‍👨🏿' => 'homens com orelhas de coelho: tipo de pele 4 e tipo de pele 6',
+    '👨🏾‍🐰‍👨🏻' => 'homens com orelhas de coelho: tipo de pele 5 e tipo de pele 1–2',
+    '👨🏾‍🐰‍👨🏼' => 'homens com orelhas de coelho: tipo de pele 5 e tipo de pele 3',
+    '👨🏾‍🐰‍👨🏽' => 'homens com orelhas de coelho: tipo de pele 5 e tipo de pele 4',
+    '👨🏾‍🐰‍👨🏿' => 'homens com orelhas de coelho: tipo de pele 5 e tipo de pele 6',
+    '👨🏿‍🐰‍👨🏻' => 'homens com orelhas de coelho: tipo de pele 6 e tipo de pele 1–2',
+    '👨🏿‍🐰‍👨🏼' => 'homens com orelhas de coelho: tipo de pele 6 e tipo de pele 3',
+    '👨🏿‍🐰‍👨🏽' => 'homens com orelhas de coelho: tipo de pele 6 e tipo de pele 4',
+    '👨🏿‍🐰‍👨🏾' => 'homens com orelhas de coelho: tipo de pele 6 e tipo de pele 5',
+    '👩🏻‍🫯‍👩🏼' => 'lutadora de luta livre: tipo de pele 1–2 e tipo de pele 3',
+    '👩🏻‍🫯‍👩🏽' => 'lutadora de luta livre: tipo de pele 1–2 e tipo de pele 4',
+    '👩🏻‍🫯‍👩🏾' => 'lutadora de luta livre: tipo de pele 1–2 e tipo de pele 5',
+    '👩🏻‍🫯‍👩🏿' => 'lutadora de luta livre: tipo de pele 1–2 e tipo de pele 6',
+    '👩🏼‍🫯‍👩🏻' => 'lutadora de luta livre: tipo de pele 3 e tipo de pele 1–2',
+    '👩🏼‍🫯‍👩🏽' => 'lutadora de luta livre: tipo de pele 3 e tipo de pele 4',
+    '👩🏼‍🫯‍👩🏾' => 'lutadora de luta livre: tipo de pele 3 e tipo de pele 5',
+    '👩🏼‍🫯‍👩🏿' => 'lutadora de luta livre: tipo de pele 3 e tipo de pele 6',
+    '👩🏽‍🫯‍👩🏻' => 'lutadora de luta livre: tipo de pele 4 e tipo de pele 1–2',
+    '👩🏽‍🫯‍👩🏼' => 'lutadora de luta livre: tipo de pele 4 e tipo de pele 3',
+    '👩🏽‍🫯‍👩🏾' => 'lutadora de luta livre: tipo de pele 4 e tipo de pele 5',
+    '👩🏽‍🫯‍👩🏿' => 'lutadora de luta livre: tipo de pele 4 e tipo de pele 6',
+    '👩🏾‍🫯‍👩🏻' => 'lutadora de luta livre: tipo de pele 5 e tipo de pele 1–2',
+    '👩🏾‍🫯‍👩🏼' => 'lutadora de luta livre: tipo de pele 5 e tipo de pele 3',
+    '👩🏾‍🫯‍👩🏽' => 'lutadora de luta livre: tipo de pele 5 e tipo de pele 4',
+    '👩🏾‍🫯‍👩🏿' => 'lutadora de luta livre: tipo de pele 5 e tipo de pele 6',
+    '👩🏿‍🫯‍👩🏻' => 'lutadora de luta livre: tipo de pele 6 e tipo de pele 1–2',
+    '👩🏿‍🫯‍👩🏼' => 'lutadora de luta livre: tipo de pele 6 e tipo de pele 3',
+    '👩🏿‍🫯‍👩🏽' => 'lutadora de luta livre: tipo de pele 6 e tipo de pele 4',
+    '👩🏿‍🫯‍👩🏾' => 'lutadora de luta livre: tipo de pele 6 e tipo de pele 5',
     '👩🏻‍❤‍👨🏻' => 'casal com coração: mulher, homem e tipo de pele 1–2',
     '👩🏻‍❤‍👨🏼' => 'casal com coração: mulher, homem, tipo de pele 1–2 e tipo de pele 3',
     '👩🏻‍❤‍👨🏽' => 'casal com coração: mulher, homem, tipo de pele 1–2 e tipo de pele 4',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'casal com coração: mulher, mulher, tipo de pele 6 e tipo de pele 4',
     '👩🏿‍❤‍👩🏾' => 'casal com coração: mulher, mulher, tipo de pele 6 e tipo de pele 5',
     '👩🏿‍❤‍👩🏿' => 'casal com coração: mulher, mulher e tipo de pele 6',
+    '👩🏻‍🐰‍👩🏼' => 'mulheres com orelhas de coelho: tipo de pele 1–2 e tipo de pele 3',
+    '👩🏻‍🐰‍👩🏽' => 'mulheres com orelhas de coelho: tipo de pele 1–2 e tipo de pele 4',
+    '👩🏻‍🐰‍👩🏾' => 'mulheres com orelhas de coelho: tipo de pele 1–2 e tipo de pele 5',
+    '👩🏻‍🐰‍👩🏿' => 'mulheres com orelhas de coelho: tipo de pele 1–2 e tipo de pele 6',
+    '👩🏼‍🐰‍👩🏻' => 'mulheres com orelhas de coelho: tipo de pele 3 e tipo de pele 1–2',
+    '👩🏼‍🐰‍👩🏽' => 'mulheres com orelhas de coelho: tipo de pele 3 e tipo de pele 4',
+    '👩🏼‍🐰‍👩🏾' => 'mulheres com orelhas de coelho: tipo de pele 3 e tipo de pele 5',
+    '👩🏼‍🐰‍👩🏿' => 'mulheres com orelhas de coelho: tipo de pele 3 e tipo de pele 6',
+    '👩🏽‍🐰‍👩🏻' => 'mulheres com orelhas de coelho: tipo de pele 4 e tipo de pele 1–2',
+    '👩🏽‍🐰‍👩🏼' => 'mulheres com orelhas de coelho: tipo de pele 4 e tipo de pele 3',
+    '👩🏽‍🐰‍👩🏾' => 'mulheres com orelhas de coelho: tipo de pele 4 e tipo de pele 5',
+    '👩🏽‍🐰‍👩🏿' => 'mulheres com orelhas de coelho: tipo de pele 4 e tipo de pele 6',
+    '👩🏾‍🐰‍👩🏻' => 'mulheres com orelhas de coelho: tipo de pele 5 e tipo de pele 1–2',
+    '👩🏾‍🐰‍👩🏼' => 'mulheres com orelhas de coelho: tipo de pele 5 e tipo de pele 3',
+    '👩🏾‍🐰‍👩🏽' => 'mulheres com orelhas de coelho: tipo de pele 5 e tipo de pele 4',
+    '👩🏾‍🐰‍👩🏿' => 'mulheres com orelhas de coelho: tipo de pele 5 e tipo de pele 6',
+    '👩🏿‍🐰‍👩🏻' => 'mulheres com orelhas de coelho: tipo de pele 6 e tipo de pele 1–2',
+    '👩🏿‍🐰‍👩🏼' => 'mulheres com orelhas de coelho: tipo de pele 6 e tipo de pele 3',
+    '👩🏿‍🐰‍👩🏽' => 'mulheres com orelhas de coelho: tipo de pele 6 e tipo de pele 4',
+    '👩🏿‍🐰‍👩🏾' => 'mulheres com orelhas de coelho: tipo de pele 6 e tipo de pele 5',
     '🧑🏻‍🤝‍🧑🏻' => 'pessoas de mãos dadas: tipo de pele 1–2',
     '🧑🏻‍🤝‍🧑🏼' => 'pessoas de mãos dadas: tipo de pele 1–2 e tipo de pele 3',
     '🧑🏻‍🤝‍🧑🏽' => 'pessoas de mãos dadas: tipo de pele 1–2 e tipo de pele 4',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bandeira: Escócia',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bandeira: País de Gales',
     '🧑‍🧑‍🧒‍🧒' => 'família: adulto, adulto, criança, criança',
-    '🚶🏻‍♀‍➡' => 'mulher a andar de frente para a direita',
-    '🚶🏼‍♀‍➡' => 'mulher a andar de frente para a direita',
-    '🚶🏽‍♀‍➡' => 'mulher a andar de frente para a direita',
-    '🚶🏾‍♀‍➡' => 'mulher a andar de frente para a direita',
-    '🚶🏿‍♀‍➡' => 'mulher a andar de frente para a direita',
-    '🚶🏻‍♂‍➡' => 'homem a andar de frente para a direita',
-    '🚶🏼‍♂‍➡' => 'homem a andar de frente para a direita',
-    '🚶🏽‍♂‍➡' => 'homem a andar de frente para a direita',
-    '🚶🏾‍♂‍➡' => 'homem a andar de frente para a direita',
-    '🚶🏿‍♂‍➡' => 'homem a andar de frente para a direita',
-    '🧎🏻‍♀‍➡' => 'mulher de joelhos de frente para a direita',
-    '🧎🏼‍♀‍➡' => 'mulher de joelhos de frente para a direita',
-    '🧎🏽‍♀‍➡' => 'mulher de joelhos de frente para a direita',
-    '🧎🏾‍♀‍➡' => 'mulher de joelhos de frente para a direita',
-    '🧎🏿‍♀‍➡' => 'mulher de joelhos de frente para a direita',
-    '🧎🏻‍♂‍➡' => 'homem de joelhos de frente para a direita',
-    '🧎🏼‍♂‍➡' => 'homem de joelhos de frente para a direita',
-    '🧎🏽‍♂‍➡' => 'homem de joelhos de frente para a direita',
-    '🧎🏾‍♂‍➡' => 'homem de joelhos de frente para a direita',
-    '🧎🏿‍♂‍➡' => 'homem de joelhos de frente para a direita',
-    '🧑🏻‍🦯‍➡' => 'pessoa com bengala para cegos de frente para a direita',
-    '🧑🏼‍🦯‍➡' => 'pessoa com bengala para cegos de frente para a direita',
-    '🧑🏽‍🦯‍➡' => 'pessoa com bengala para cegos de frente para a direita',
-    '🧑🏾‍🦯‍➡' => 'pessoa com bengala para cegos de frente para a direita',
-    '🧑🏿‍🦯‍➡' => 'pessoa com bengala para cegos de frente para a direita',
-    '👨🏻‍🦯‍➡' => 'homem com bengala para cegos de frente para a direita',
-    '👨🏼‍🦯‍➡' => 'homem com bengala para cegos de frente para a direita',
-    '👨🏽‍🦯‍➡' => 'homem com bengala para cegos de frente para a direita',
-    '👨🏾‍🦯‍➡' => 'homem com bengala para cegos de frente para a direita',
-    '👨🏿‍🦯‍➡' => 'homem com bengala para cegos de frente para a direita',
-    '👩🏻‍🦯‍➡' => 'mulher com bengala para cegos de frente para a direita',
-    '👩🏼‍🦯‍➡' => 'mulher com bengala para cegos de frente para a direita',
-    '👩🏽‍🦯‍➡' => 'mulher com bengala para cegos de frente para a direita',
-    '👩🏾‍🦯‍➡' => 'mulher com bengala para cegos de frente para a direita',
-    '👩🏿‍🦯‍➡' => 'mulher com bengala para cegos de frente para a direita',
-    '🧑🏻‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica de frente para a direita',
-    '🧑🏼‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica de frente para a direita',
-    '🧑🏽‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica de frente para a direita',
-    '🧑🏾‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica de frente para a direita',
-    '🧑🏿‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica de frente para a direita',
-    '👨🏻‍🦼‍➡' => 'homem em cadeira de rodas elétrica de frente para a direita',
-    '👨🏼‍🦼‍➡' => 'homem em cadeira de rodas elétrica de frente para a direita',
-    '👨🏽‍🦼‍➡' => 'homem em cadeira de rodas elétrica de frente para a direita',
-    '👨🏾‍🦼‍➡' => 'homem em cadeira de rodas elétrica de frente para a direita',
-    '👨🏿‍🦼‍➡' => 'homem em cadeira de rodas elétrica de frente para a direita',
-    '👩🏻‍🦼‍➡' => 'mulher em cadeira de rodas elétrica de frente para a direita',
-    '👩🏼‍🦼‍➡' => 'mulher em cadeira de rodas elétrica de frente para a direita',
-    '👩🏽‍🦼‍➡' => 'mulher em cadeira de rodas elétrica de frente para a direita',
-    '👩🏾‍🦼‍➡' => 'mulher em cadeira de rodas elétrica de frente para a direita',
-    '👩🏿‍🦼‍➡' => 'mulher em cadeira de rodas elétrica de frente para a direita',
-    '🧑🏻‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '🧑🏼‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '🧑🏽‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '🧑🏾‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '🧑🏿‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '👨🏻‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👨🏼‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👨🏽‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👨🏾‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👨🏿‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👩🏻‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '👩🏼‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '👩🏽‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '👩🏾‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '👩🏿‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '🏃🏻‍♀‍➡' => 'mulher a correr de frente para a direita',
-    '🏃🏼‍♀‍➡' => 'mulher a correr de frente para a direita',
-    '🏃🏽‍♀‍➡' => 'mulher a correr de frente para a direita',
-    '🏃🏾‍♀‍➡' => 'mulher a correr de frente para a direita',
-    '🏃🏿‍♀‍➡' => 'mulher a correr de frente para a direita',
-    '🏃🏻‍♂‍➡' => 'homem a correr de frente para a direita',
-    '🏃🏼‍♂‍➡' => 'homem a correr de frente para a direita',
-    '🏃🏽‍♂‍➡' => 'homem a correr de frente para a direita',
-    '🏃🏾‍♂‍➡' => 'homem a correr de frente para a direita',
-    '🏃🏿‍♂‍➡' => 'homem a correr de frente para a direita',
+    '🚶🏻‍♀‍➡' => 'mulher a andar: tipo de pele 1–2 e de frente para a direita',
+    '🚶🏼‍♀‍➡' => 'mulher a andar: tipo de pele 3 e de frente para a direita',
+    '🚶🏽‍♀‍➡' => 'mulher a andar: tipo de pele 4 e de frente para a direita',
+    '🚶🏾‍♀‍➡' => 'mulher a andar: tipo de pele 5 e de frente para a direita',
+    '🚶🏿‍♀‍➡' => 'mulher a andar: tipo de pele 6 e de frente para a direita',
+    '🚶🏻‍♂‍➡' => 'homem a andar: tipo de pele 1–2 e de frente para a direita',
+    '🚶🏼‍♂‍➡' => 'homem a andar: tipo de pele 3 e de frente para a direita',
+    '🚶🏽‍♂‍➡' => 'homem a andar: tipo de pele 4 e de frente para a direita',
+    '🚶🏾‍♂‍➡' => 'homem a andar: tipo de pele 5 e de frente para a direita',
+    '🚶🏿‍♂‍➡' => 'homem a andar: tipo de pele 6 e de frente para a direita',
+    '🧎🏻‍♀‍➡' => 'mulher de joelhos: tipo de pele 1–2 e de frente para a direita',
+    '🧎🏼‍♀‍➡' => 'mulher de joelhos: tipo de pele 3 e de frente para a direita',
+    '🧎🏽‍♀‍➡' => 'mulher de joelhos: tipo de pele 4 e de frente para a direita',
+    '🧎🏾‍♀‍➡' => 'mulher de joelhos: tipo de pele 5 e de frente para a direita',
+    '🧎🏿‍♀‍➡' => 'mulher de joelhos: tipo de pele 6 e de frente para a direita',
+    '🧎🏻‍♂‍➡' => 'homem de joelhos: tipo de pele 1–2 e de frente para a direita',
+    '🧎🏼‍♂‍➡' => 'homem de joelhos: tipo de pele 3 e de frente para a direita',
+    '🧎🏽‍♂‍➡' => 'homem de joelhos: tipo de pele 4 e de frente para a direita',
+    '🧎🏾‍♂‍➡' => 'homem de joelhos: tipo de pele 5 e de frente para a direita',
+    '🧎🏿‍♂‍➡' => 'homem de joelhos: tipo de pele 6 e de frente para a direita',
+    '🧑🏻‍🦯‍➡' => 'pessoa com bengala para cegos: tipo de pele 1–2 e de frente para a direita',
+    '🧑🏼‍🦯‍➡' => 'pessoa com bengala para cegos: tipo de pele 3 e de frente para a direita',
+    '🧑🏽‍🦯‍➡' => 'pessoa com bengala para cegos: tipo de pele 4 e de frente para a direita',
+    '🧑🏾‍🦯‍➡' => 'pessoa com bengala para cegos: tipo de pele 5 e de frente para a direita',
+    '🧑🏿‍🦯‍➡' => 'pessoa com bengala para cegos: tipo de pele 6 e de frente para a direita',
+    '👨🏻‍🦯‍➡' => 'homem com bengala para cegos: tipo de pele 1–2 e de frente para a direita',
+    '👨🏼‍🦯‍➡' => 'homem com bengala para cegos: tipo de pele 3 e de frente para a direita',
+    '👨🏽‍🦯‍➡' => 'homem com bengala para cegos: tipo de pele 4 e de frente para a direita',
+    '👨🏾‍🦯‍➡' => 'homem com bengala para cegos: tipo de pele 5 e de frente para a direita',
+    '👨🏿‍🦯‍➡' => 'homem com bengala para cegos: tipo de pele 6 e de frente para a direita',
+    '👩🏻‍🦯‍➡' => 'mulher com bengala para cegos: tipo de pele 1–2 e de frente para a direita',
+    '👩🏼‍🦯‍➡' => 'mulher com bengala para cegos: tipo de pele 3 e de frente para a direita',
+    '👩🏽‍🦯‍➡' => 'mulher com bengala para cegos: tipo de pele 4 e de frente para a direita',
+    '👩🏾‍🦯‍➡' => 'mulher com bengala para cegos: tipo de pele 5 e de frente para a direita',
+    '👩🏿‍🦯‍➡' => 'mulher com bengala para cegos: tipo de pele 6 e de frente para a direita',
+    '🧑🏻‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica: tipo de pele 1–2 e de frente para a direita',
+    '🧑🏼‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica: tipo de pele 3 e de frente para a direita',
+    '🧑🏽‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica: tipo de pele 4 e de frente para a direita',
+    '🧑🏾‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica: tipo de pele 5 e de frente para a direita',
+    '🧑🏿‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica: tipo de pele 6 e de frente para a direita',
+    '👨🏻‍🦼‍➡' => 'homem em cadeira de rodas elétrica: tipo de pele 1–2 e de frente para a direita',
+    '👨🏼‍🦼‍➡' => 'homem em cadeira de rodas elétrica: tipo de pele 3 e de frente para a direita',
+    '👨🏽‍🦼‍➡' => 'homem em cadeira de rodas elétrica: tipo de pele 4 e de frente para a direita',
+    '👨🏾‍🦼‍➡' => 'homem em cadeira de rodas elétrica: tipo de pele 5 e de frente para a direita',
+    '👨🏿‍🦼‍➡' => 'homem em cadeira de rodas elétrica: tipo de pele 6 e de frente para a direita',
+    '👩🏻‍🦼‍➡' => 'mulher em cadeira de rodas elétrica: tipo de pele 1–2 e de frente para a direita',
+    '👩🏼‍🦼‍➡' => 'mulher em cadeira de rodas elétrica: tipo de pele 3 e de frente para a direita',
+    '👩🏽‍🦼‍➡' => 'mulher em cadeira de rodas elétrica: tipo de pele 4 e de frente para a direita',
+    '👩🏾‍🦼‍➡' => 'mulher em cadeira de rodas elétrica: tipo de pele 5 e de frente para a direita',
+    '👩🏿‍🦼‍➡' => 'mulher em cadeira de rodas elétrica: tipo de pele 6 e de frente para a direita',
+    '🧑🏻‍🦽‍➡' => 'pessoa em cadeira de rodas manual: tipo de pele 1–2 e de frente para a direita',
+    '🧑🏼‍🦽‍➡' => 'pessoa em cadeira de rodas manual: tipo de pele 3 e de frente para a direita',
+    '🧑🏽‍🦽‍➡' => 'pessoa em cadeira de rodas manual: tipo de pele 4 e de frente para a direita',
+    '🧑🏾‍🦽‍➡' => 'pessoa em cadeira de rodas manual: tipo de pele 5 e de frente para a direita',
+    '🧑🏿‍🦽‍➡' => 'pessoa em cadeira de rodas manual: tipo de pele 6 e de frente para a direita',
+    '👨🏻‍🦽‍➡' => 'homem em cadeira de rodas manual: tipo de pele 1–2 e de frente para a direita',
+    '👨🏼‍🦽‍➡' => 'homem em cadeira de rodas manual: tipo de pele 3 e de frente para a direita',
+    '👨🏽‍🦽‍➡' => 'homem em cadeira de rodas manual: tipo de pele 4 e de frente para a direita',
+    '👨🏾‍🦽‍➡' => 'homem em cadeira de rodas manual: tipo de pele 5 e de frente para a direita',
+    '👨🏿‍🦽‍➡' => 'homem em cadeira de rodas manual: tipo de pele 6 e de frente para a direita',
+    '👩🏻‍🦽‍➡' => 'mulher em cadeira de rodas manual: tipo de pele 1–2 e de frente para a direita',
+    '👩🏼‍🦽‍➡' => 'mulher em cadeira de rodas manual: tipo de pele 3 e de frente para a direita',
+    '👩🏽‍🦽‍➡' => 'mulher em cadeira de rodas manual: tipo de pele 4 e de frente para a direita',
+    '👩🏾‍🦽‍➡' => 'mulher em cadeira de rodas manual: tipo de pele 5 e de frente para a direita',
+    '👩🏿‍🦽‍➡' => 'mulher em cadeira de rodas manual: tipo de pele 6 e de frente para a direita',
+    '🏃🏻‍♀‍➡' => 'mulher a correr: tipo de pele 1–2 e de frente para a direita',
+    '🏃🏼‍♀‍➡' => 'mulher a correr: tipo de pele 3 e de frente para a direita',
+    '🏃🏽‍♀‍➡' => 'mulher a correr: tipo de pele 4 e de frente para a direita',
+    '🏃🏾‍♀‍➡' => 'mulher a correr: tipo de pele 5 e de frente para a direita',
+    '🏃🏿‍♀‍➡' => 'mulher a correr: tipo de pele 6 e de frente para a direita',
+    '🏃🏻‍♂‍➡' => 'homem a correr: tipo de pele 1–2 e de frente para a direita',
+    '🏃🏼‍♂‍➡' => 'homem a correr: tipo de pele 3 e de frente para a direita',
+    '🏃🏽‍♂‍➡' => 'homem a correr: tipo de pele 4 e de frente para a direita',
+    '🏃🏾‍♂‍➡' => 'homem a correr: tipo de pele 5 e de frente para a direita',
+    '🏃🏿‍♂‍➡' => 'homem a correr: tipo de pele 6 e de frente para a direita',
     '🫱🏻‍🫲🏼' => 'aperto de mão: tipo de pele 1–2 e tipo de pele 3',
     '🫱🏻‍🫲🏽' => 'aperto de mão: tipo de pele 1–2 e tipo de pele 4',
     '🫱🏻‍🫲🏾' => 'aperto de mão: tipo de pele 1–2 e tipo de pele 5',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'aperto de mão: tipo de pele 6 e tipo de pele 3',
     '🫱🏿‍🫲🏽' => 'aperto de mão: tipo de pele 6 e tipo de pele 4',
     '🫱🏿‍🫲🏾' => 'aperto de mão: tipo de pele 6 e tipo de pele 5',
-    '🚶‍♀‍➡' => 'mulher a andar de frente para a direita',
-    '🚶‍♂‍➡' => 'homem a andar de frente para a direita',
-    '🧎‍♀‍➡' => 'mulher de joelhos de frente para a direita',
-    '🧎‍♂‍➡' => 'homem de joelhos de frente para a direita',
-    '🧑‍🦯‍➡' => 'pessoa com bengala para cegos de frente para a direita',
-    '👨‍🦯‍➡' => 'homem com bengala para cegos de frente para a direita',
-    '👩‍🦯‍➡' => 'mulher com bengala para cegos de frente para a direita',
-    '🧑‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica de frente para a direita',
-    '👨‍🦼‍➡' => 'homem em cadeira de rodas elétrica de frente para a direita',
-    '👩‍🦼‍➡' => 'mulher em cadeira de rodas elétrica de frente para a direita',
-    '🧑‍🦽‍➡' => 'pessoa em cadeira de rodas manual de frente para a direita',
-    '👨‍🦽‍➡' => 'homem em cadeira de rodas manual de frente para a direita',
-    '👩‍🦽‍➡' => 'mulher em cadeira de rodas manual de frente para a direita',
-    '🏃‍♀‍➡' => 'mulher a correr de frente para a direita',
-    '🏃‍♂‍➡' => 'homem a correr de frente para a direita',
+    '🚶‍♀‍➡' => 'mulher a andar: de frente para a direita',
+    '🚶‍♂‍➡' => 'homem a andar: de frente para a direita',
+    '🧎‍♀‍➡' => 'mulher de joelhos: de frente para a direita',
+    '🧎‍♂‍➡' => 'homem de joelhos: de frente para a direita',
+    '🧑‍🦯‍➡' => 'pessoa com bengala para cegos: de frente para a direita',
+    '👨‍🦯‍➡' => 'homem com bengala para cegos: de frente para a direita',
+    '👩‍🦯‍➡' => 'mulher com bengala para cegos: de frente para a direita',
+    '🧑‍🦼‍➡' => 'pessoa em cadeira de rodas elétrica: de frente para a direita',
+    '👨‍🦼‍➡' => 'homem em cadeira de rodas elétrica: de frente para a direita',
+    '👩‍🦼‍➡' => 'mulher em cadeira de rodas elétrica: de frente para a direita',
+    '🧑‍🦽‍➡' => 'pessoa em cadeira de rodas manual: de frente para a direita',
+    '👨‍🦽‍➡' => 'homem em cadeira de rodas manual: de frente para a direita',
+    '👩‍🦽‍➡' => 'mulher em cadeira de rodas manual: de frente para a direita',
+    '🏃‍♀‍➡' => 'mulher a correr: de frente para a direita',
+    '🏃‍♂‍➡' => 'homem a correr: de frente para a direita',
     '👩‍❤‍👨' => 'casal com coração: mulher e homem',
     '👨‍❤‍👨' => 'casal com coração: homem e homem',
     '👩‍❤‍👩' => 'casal com coração: mulher e mulher',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'pessoa: tipo de pele 4 e careca',
     '🧑🏾‍🦲' => 'pessoa: tipo de pele 5 e careca',
     '🧑🏿‍🦲' => 'pessoa: tipo de pele 6 e careca',
+    '🧑🏻‍🩰' => 'bailarino: tipo de pele 1–2',
+    '🧑🏼‍🩰' => 'bailarino: tipo de pele 3',
+    '🧑🏽‍🩰' => 'bailarino: tipo de pele 4',
+    '🧑🏾‍🩰' => 'bailarino: tipo de pele 5',
+    '🧑🏿‍🩰' => 'bailarino: tipo de pele 6',
     '🧔🏻‍♂' => 'homem: tipo de pele 1–2 e barba',
     '🧔🏼‍♂' => 'homem: tipo de pele 3 e barba',
     '🧔🏽‍♂' => 'homem: tipo de pele 4 e barba',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'mulher a andar: tipo de pele 4',
     '🚶🏾‍♀' => 'mulher a andar: tipo de pele 5',
     '🚶🏿‍♀' => 'mulher a andar: tipo de pele 6',
-    '🚶🏻‍➡' => 'pessoa a andar de frente para a direita',
-    '🚶🏼‍➡' => 'pessoa a andar de frente para a direita',
-    '🚶🏽‍➡' => 'pessoa a andar de frente para a direita',
-    '🚶🏾‍➡' => 'pessoa a andar de frente para a direita',
-    '🚶🏿‍➡' => 'pessoa a andar de frente para a direita',
+    '🚶🏻‍➡' => 'pessoa a andar: tipo de pele 1–2 e de frente para a direita',
+    '🚶🏼‍➡' => 'pessoa a andar: tipo de pele 3 e de frente para a direita',
+    '🚶🏽‍➡' => 'pessoa a andar: tipo de pele 4 e de frente para a direita',
+    '🚶🏾‍➡' => 'pessoa a andar: tipo de pele 5 e de frente para a direita',
+    '🚶🏿‍➡' => 'pessoa a andar: tipo de pele 6 e de frente para a direita',
     '🧍🏻‍♂' => 'homem em pé: tipo de pele 1–2',
     '🧍🏼‍♂' => 'homem em pé: tipo de pele 3',
     '🧍🏽‍♂' => 'homem em pé: tipo de pele 4',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'mulher de joelhos: tipo de pele 4',
     '🧎🏾‍♀' => 'mulher de joelhos: tipo de pele 5',
     '🧎🏿‍♀' => 'mulher de joelhos: tipo de pele 6',
-    '🧎🏻‍➡' => 'pessoa de joelhos de frente para a direita',
-    '🧎🏼‍➡' => 'pessoa de joelhos de frente para a direita',
-    '🧎🏽‍➡' => 'pessoa de joelhos de frente para a direita',
-    '🧎🏾‍➡' => 'pessoa de joelhos de frente para a direita',
-    '🧎🏿‍➡' => 'pessoa de joelhos de frente para a direita',
+    '🧎🏻‍➡' => 'pessoa de joelhos: tipo de pele 1–2 e de frente para a direita',
+    '🧎🏼‍➡' => 'pessoa de joelhos: tipo de pele 3 e de frente para a direita',
+    '🧎🏽‍➡' => 'pessoa de joelhos: tipo de pele 4 e de frente para a direita',
+    '🧎🏾‍➡' => 'pessoa de joelhos: tipo de pele 5 e de frente para a direita',
+    '🧎🏿‍➡' => 'pessoa de joelhos: tipo de pele 6 e de frente para a direita',
     '🧑🏻‍🦯' => 'pessoa com bengala para cegos: tipo de pele 1–2',
     '🧑🏼‍🦯' => 'pessoa com bengala para cegos: tipo de pele 3',
     '🧑🏽‍🦯' => 'pessoa com bengala para cegos: tipo de pele 4',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'mulher a correr: tipo de pele 4',
     '🏃🏾‍♀' => 'mulher a correr: tipo de pele 5',
     '🏃🏿‍♀' => 'mulher a correr: tipo de pele 6',
-    '🏃🏻‍➡' => 'pessoa a correr de frente para a direita',
-    '🏃🏼‍➡' => 'pessoa a correr de frente para a direita',
-    '🏃🏽‍➡' => 'pessoa a correr de frente para a direita',
-    '🏃🏾‍➡' => 'pessoa a correr de frente para a direita',
-    '🏃🏿‍➡' => 'pessoa a correr de frente para a direita',
+    '🏃🏻‍➡' => 'pessoa a correr: tipo de pele 1–2 e de frente para a direita',
+    '🏃🏼‍➡' => 'pessoa a correr: tipo de pele 3 e de frente para a direita',
+    '🏃🏽‍➡' => 'pessoa a correr: tipo de pele 4 e de frente para a direita',
+    '🏃🏾‍➡' => 'pessoa a correr: tipo de pele 5 e de frente para a direita',
+    '🏃🏿‍➡' => 'pessoa a correr: tipo de pele 6 e de frente para a direita',
+    '👯🏻‍♀' => 'mulheres com orelhas de coelho: tipo de pele 1–2',
+    '👯🏼‍♀' => 'mulheres com orelhas de coelho: tipo de pele 3',
+    '👯🏽‍♀' => 'mulheres com orelhas de coelho: tipo de pele 4',
+    '👯🏾‍♀' => 'mulheres com orelhas de coelho: tipo de pele 5',
+    '👯🏿‍♀' => 'mulheres com orelhas de coelho: tipo de pele 6',
+    '👯🏻‍♂' => 'homens com orelhas de coelho: tipo de pele 1–2',
+    '👯🏼‍♂' => 'homens com orelhas de coelho: tipo de pele 3',
+    '👯🏽‍♂' => 'homens com orelhas de coelho: tipo de pele 4',
+    '👯🏾‍♂' => 'homens com orelhas de coelho: tipo de pele 5',
+    '👯🏿‍♂' => 'homens com orelhas de coelho: tipo de pele 6',
     '🧖🏻‍♂' => 'homem na sauna: tipo de pele 1–2',
     '🧖🏼‍♂' => 'homem na sauna: tipo de pele 3',
     '🧖🏽‍♂' => 'homem na sauna: tipo de pele 4',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'mulher a fazer a roda: tipo de pele 4',
     '🤸🏾‍♀' => 'mulher a fazer a roda: tipo de pele 5',
     '🤸🏿‍♀' => 'mulher a fazer a roda: tipo de pele 6',
+    '🤼🏻‍♀' => 'lutadora de luta livre: tipo de pele 1–2',
+    '🤼🏼‍♀' => 'lutadora de luta livre: tipo de pele 3',
+    '🤼🏽‍♀' => 'lutadora de luta livre: tipo de pele 4',
+    '🤼🏾‍♀' => 'lutadora de luta livre: tipo de pele 5',
+    '🤼🏿‍♀' => 'lutadora de luta livre: tipo de pele 6',
+    '🤼🏻‍♂' => 'lutador de luta livre: tipo de pele 1–2',
+    '🤼🏼‍♂' => 'lutador de luta livre: tipo de pele 3',
+    '🤼🏽‍♂' => 'lutador de luta livre: tipo de pele 4',
+    '🤼🏾‍♂' => 'lutador de luta livre: tipo de pele 5',
+    '🤼🏿‍♂' => 'lutador de luta livre: tipo de pele 6',
     '🤽🏻‍♂' => 'homem a jogar polo aquático: tipo de pele 1–2',
     '🤽🏼‍♂' => 'homem a jogar polo aquático: tipo de pele 3',
     '🤽🏽‍♂' => 'homem a jogar polo aquático: tipo de pele 4',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'mulher: cabelo encaracolado',
     '👩‍🦳' => 'mulher: cabelo branco',
     '👩‍🦲' => 'mulher: careca',
-    '🚶‍➡' => 'pessoa a andar de frente para a direita',
-    '🧎‍➡' => 'pessoa de joelhos de frente para a direita',
-    '🏃‍➡' => 'pessoa a correr de frente para a direita',
+    '🚶‍➡' => 'pessoa a andar: de frente para a direita',
+    '🧎‍➡' => 'pessoa de joelhos: de frente para a direita',
+    '🏃‍➡' => 'pessoa a correr: de frente para a direita',
     '👨‍👦' => 'família: homem e rapaz',
     '👨‍👧' => 'família: homem e rapariga',
     '👩‍👦' => 'família: mulher e rapaz',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'mulher em cadeira de rodas manual',
     '🏃‍♂' => 'homem a correr',
     '🏃‍♀' => 'mulher a correr',
+    '🧑‍🩰' => 'bailarino',
     '👯‍♂' => 'homens com orelhas de coelho',
     '👯‍♀' => 'mulheres com orelhas de coelho',
     '🧖‍♂' => 'homem na sauna',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'homem em fato executivo a levitar: tipo de pele 4',
     '🕴🏾' => 'homem em fato executivo a levitar: tipo de pele 5',
     '🕴🏿' => 'homem em fato executivo a levitar: tipo de pele 6',
+    '👯🏻' => 'pessoas com orelhas de coelho: tipo de pele 1–2',
+    '👯🏼' => 'pessoas com orelhas de coelho: tipo de pele 3',
+    '👯🏽' => 'pessoas com orelhas de coelho: tipo de pele 4',
+    '👯🏾' => 'pessoas com orelhas de coelho: tipo de pele 5',
+    '👯🏿' => 'pessoas com orelhas de coelho: tipo de pele 6',
     '🧖🏻' => 'pessoa na sauna: tipo de pele 1–2',
     '🧖🏼' => 'pessoa na sauna: tipo de pele 3',
     '🧖🏽' => 'pessoa na sauna: tipo de pele 4',
@@ -2061,16 +2212,21 @@
     '🚴🏽' => 'ciclista: tipo de pele 4',
     '🚴🏾' => 'ciclista: tipo de pele 5',
     '🚴🏿' => 'ciclista: tipo de pele 6',
-    '🚵🏻' => 'praticante de BTT: tipo de pele 1–2',
-    '🚵🏼' => 'praticante de BTT: tipo de pele 3',
-    '🚵🏽' => 'praticante de BTT: tipo de pele 4',
-    '🚵🏾' => 'praticante de BTT: tipo de pele 5',
-    '🚵🏿' => 'praticante de BTT: tipo de pele 6',
+    '🚵🏻' => 'betetista: tipo de pele 1–2',
+    '🚵🏼' => 'betetista: tipo de pele 3',
+    '🚵🏽' => 'betetista: tipo de pele 4',
+    '🚵🏾' => 'betetista: tipo de pele 5',
+    '🚵🏿' => 'betetista: tipo de pele 6',
     '🤸🏻' => 'pessoa a fazer a roda: tipo de pele 1–2',
     '🤸🏼' => 'pessoa a fazer a roda: tipo de pele 3',
     '🤸🏽' => 'pessoa a fazer a roda: tipo de pele 4',
     '🤸🏾' => 'pessoa a fazer a roda: tipo de pele 5',
     '🤸🏿' => 'pessoa a fazer a roda: tipo de pele 6',
+    '🤼🏻' => 'pessoas a lutar: tipo de pele 1–2',
+    '🤼🏼' => 'pessoas a lutar: tipo de pele 3',
+    '🤼🏽' => 'pessoas a lutar: tipo de pele 4',
+    '🤼🏾' => 'pessoas a lutar: tipo de pele 5',
+    '🤼🏿' => 'pessoas a lutar: tipo de pele 6',
     '🤽🏻' => 'pessoa a jogar polo aquático: tipo de pele 1–2',
     '🤽🏼' => 'pessoa a jogar polo aquático: tipo de pele 3',
     '🤽🏽' => 'pessoa a jogar polo aquático: tipo de pele 4',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bandeira: China',
     '🇨🇴' => 'bandeira: Colômbia',
     '🇨🇵' => 'bandeira: Ilha de Clipperton',
+    '🇨🇶' => 'bandeira: Sark',
     '🇨🇷' => 'bandeira: Costa Rica',
     '🇨🇺' => 'bandeira: Cuba',
     '🇨🇻' => 'bandeira: Cabo Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'tipo de pele 4',
     '🏾' => 'tipo de pele 5',
     '🏿' => 'tipo de pele 6',
-    '🪉' => 'harpa',
-    '🪏' => 'pá',
-    '🪾' => 'árvore seca',
-    '🫆' => 'impressão digital',
-    '🫜' => 'tubérculo',
-    '🫟' => 'respingo',
-    '🫩' => 'cara com olheiras',
     '😀' => 'cara sorridente',
     '😃' => 'cara sorridente com olhos bem abertos',
     '😄' => 'cara a sorrir com boca aberta e olhos sorridentes',
@@ -2450,6 +2600,7 @@
     '😪' => 'cara sonolenta',
     '🤤' => 'cara a babar-se',
     '😴' => 'cara a dormir',
+    '🫩' => 'cara com olheiras',
     '😷' => 'cara com máscara de médico',
     '🤒' => 'cara com termómetro',
     '🤕' => 'cara com ligadura na cabeça',
@@ -2476,6 +2627,7 @@
     '😯' => 'cara expectante',
     '😲' => 'cara espantada',
     '😳' => 'cara corada',
+    '🫪' => 'cara distorcida',
     '🥺' => 'cara que implora',
     '🥹' => 'cara a conter as lágrimas',
     '😦' => 'cara franzida com boca aberta',
@@ -2547,6 +2699,7 @@
     '💋' => 'marca de beijo',
     '💯' => 'cem pontos',
     '💢' => 'símbolo de raiva',
+    '🫯' => 'nuvem de luta',
     '💥' => 'colisão',
     '💫' => 'tonto',
     '💦' => 'gotas de suor',
@@ -2670,6 +2823,7 @@
     '🧞' => 'génio',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'criatura peluda',
     '💆' => 'pessoa a receber uma massagem',
     '💇' => 'pessoa a cortar o cabelo',
     '🚶' => 'pessoa a andar',
@@ -2693,7 +2847,7 @@
     '⛹' => 'pessoa com bola',
     '🏋' => 'halterofilista',
     '🚴' => 'ciclista',
-    '🚵' => 'praticante de BTT',
+    '🚵' => 'betetista',
     '🤸' => 'pessoa a fazer a roda',
     '🤼' => 'pessoas a lutar',
     '🤽' => 'pessoa a jogar polo aquático',
@@ -2713,6 +2867,7 @@
     '🫂' => 'pessoas abraçadas',
     '👪' => 'família',
     '👣' => 'pegadas',
+    '🫆' => 'impressão digital',
     '🦰' => 'cabelo ruivo',
     '🦱' => 'cabelo encaracolado',
     '🦳' => 'cabelo branco',
@@ -2812,6 +2967,7 @@
     '🐳' => 'baleia com esguicho de água',
     '🐋' => 'baleia',
     '🐬' => 'golfinho',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'peixe',
     '🐠' => 'peixe tropical',
@@ -2821,6 +2977,11 @@
     '🐚' => 'búzio',
     '🪸' => 'coral',
     '🪼' => 'alforreca',
+    '🦀' => 'caranguejo (animal)',
+    '🦞' => 'lagosta',
+    '🦐' => 'camarão',
+    '🦑' => 'lula',
+    '🦪' => 'ostra',
     '🐌' => 'caracol',
     '🦋' => 'borboleta',
     '🐛' => 'lagarta',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ninho vazio',
     '🪺' => 'ninho com ovos',
     '🍄' => 'cogumelo',
+    '🪾' => 'árvore seca',
     '🍇' => 'uvas',
     '🍈' => 'meloa',
     '🍉' => 'melancia',
@@ -2901,6 +3063,7 @@
     '🌰' => 'castanha',
     '🫚' => 'gengibre',
     '🫛' => 'vagem',
+    '🫜' => 'tubérculo',
     '🍞' => 'pão',
     '🥐' => 'croissant',
     '🥖' => 'baguete',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ravioli',
     '🥠' => 'biscoito da sorte',
     '🥡' => 'caixa de takeaway',
-    '🦀' => 'caranguejo (animal)',
-    '🦞' => 'lagosta',
-    '🦐' => 'camarão',
-    '🦑' => 'lula',
-    '🦪' => 'ostra',
     '🍦' => 'cone de gelado',
     '🍧' => 'granizado',
     '🍨' => 'gelado',
@@ -3007,6 +3165,7 @@
     '🧭' => 'bússola',
     '🏔' => 'montanha coberta de neve',
     '⛰' => 'montanha',
+    '🛘' => 'deslizamento',
     '🌋' => 'vulcão',
     '🗻' => 'monte Fuji',
     '🏕' => 'campismo',
@@ -3367,16 +3526,18 @@
     '🎧' => 'auscultador',
     '📻' => 'rádio',
     '🎷' => 'saxofone',
+    '🎺' => 'trompete',
+    '🪊' => 'trombone',
     '🪗' => 'acordeão',
     '🎸' => 'guitarra elétrica',
     '🎹' => 'teclado musical',
-    '🎺' => 'trompete',
     '🎻' => 'violino',
     '🪕' => 'banjo',
     '🥁' => 'tambor',
     '🪘' => 'tambor alto',
     '🪇' => 'maracas',
     '🪈' => 'flauta',
+    '🪉' => 'harpa',
     '📱' => 'telemóvel',
     '📲' => 'telemóvel com seta',
     '☎' => 'telefone',
@@ -3430,8 +3591,9 @@
     '📑' => 'marcadores de folhas',
     '🔖' => 'marcador de livros',
     '🏷' => 'etiqueta',
-    '💰' => 'saco de dinheiro',
     '🪙' => 'moeda',
+    '💰' => 'saco de dinheiro',
+    '🪎' => 'baú de tesouro',
     '💴' => 'nota de iene',
     '💵' => 'nota de dólar',
     '💶' => 'nota de euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'mala de ferramentas',
     '🧲' => 'íman',
     '🪜' => 'escada',
+    '🪏' => 'pá',
     '⚗' => 'balão de vidro',
     '🧪' => 'tubo de ensaio',
     '🧫' => 'placa de Petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'estrela com oito pontas',
     '❇' => 'faísca',
     '™' => 'marca comercial',
+    '🫟' => 'respingo',
     '🔠' => 'introdução de maiúsculas latinas',
     '🔡' => 'introdução de minúsculas latinas',
     '🔢' => 'introdução de números',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-quc.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-quc.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-quc.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-quc.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'Tz’umanik: Ixoq, Ixoq, q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
     '👩🏿‍❤‍💋‍👩🏾' => 'Tz’umanik: Ixoq, Ixoq, q’eq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
     '👩🏿‍❤‍💋‍👩🏿' => 'Tz’umanik: Ixoq, Ixoq, q’eq ub’antajik b’aqilal',
+    '🧑🏻‍🫯‍🧑🏼' => 'E winaq kech’o’jinik: saq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '🧑🏻‍🫯‍🧑🏽' => 'E winaq kech’o’jinik: saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '🧑🏻‍🫯‍🧑🏾' => 'E winaq kech’o’jinik: saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '🧑🏻‍🫯‍🧑🏿' => 'E winaq kech’o’jinik: saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '🧑🏼‍🫯‍🧑🏻' => 'E winaq kech’o’jinik: retal saq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '🧑🏼‍🫯‍🧑🏽' => 'E winaq kech’o’jinik: retal saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '🧑🏼‍🫯‍🧑🏾' => 'E winaq kech’o’jinik: retal saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '🧑🏼‍🫯‍🧑🏿' => 'E winaq kech’o’jinik: retal saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '🧑🏽‍🫯‍🧑🏻' => 'E winaq kech’o’jinik: retal ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '🧑🏽‍🫯‍🧑🏼' => 'E winaq kech’o’jinik: retal ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '🧑🏽‍🫯‍🧑🏾' => 'E winaq kech’o’jinik: retal ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '🧑🏽‍🫯‍🧑🏿' => 'E winaq kech’o’jinik: retal ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '🧑🏾‍🫯‍🧑🏻' => 'E winaq kech’o’jinik: retal-q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '🧑🏾‍🫯‍🧑🏼' => 'E winaq kech’o’jinik: retal-q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '🧑🏾‍🫯‍🧑🏽' => 'E winaq kech’o’jinik: retal-q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '🧑🏾‍🫯‍🧑🏿' => 'E winaq kech’o’jinik: retal-q’eq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '🧑🏿‍🫯‍🧑🏻' => 'E winaq kech’o’jinik: q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '🧑🏿‍🫯‍🧑🏼' => 'E winaq kech’o’jinik: q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '🧑🏿‍🫯‍🧑🏽' => 'E winaq kech’o’jinik: q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '🧑🏿‍🫯‍🧑🏾' => 'E winaq kech’o’jinik: q’eq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
     '🧑🏻‍❤‍🧑🏼' => 'Kab’ichal ruk’ anima: nim, nim, saq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
     '🧑🏻‍❤‍🧑🏽' => 'Kab’ichal ruk’ anima: nim, nim, saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
     '🧑🏻‍❤‍🧑🏾' => 'Kab’ichal ruk’ anima: nim, nim, saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'Kab’ichal ruk’ anima: nim, nim, q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
     '🧑🏿‍❤‍🧑🏽' => 'Kab’ichal ruk’ anima: nim, nim, q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
     '🧑🏿‍❤‍🧑🏾' => 'Kab’ichal ruk’ anima: nim, nim, q’eq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '🧑🏻‍🐰‍🧑🏼' => 'E winaq ruk’ uxikin imul: saq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '🧑🏻‍🐰‍🧑🏽' => 'E winaq ruk’ uxikin imul: saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '🧑🏻‍🐰‍🧑🏾' => 'E winaq ruk’ uxikin imul: saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '🧑🏻‍🐰‍🧑🏿' => 'E winaq ruk’ uxikin imul: saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '🧑🏼‍🐰‍🧑🏻' => 'E winaq ruk’ uxikin imul: retal saq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '🧑🏼‍🐰‍🧑🏽' => 'E winaq ruk’ uxikin imul: retal saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '🧑🏼‍🐰‍🧑🏾' => 'E winaq ruk’ uxikin imul: retal saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '🧑🏼‍🐰‍🧑🏿' => 'E winaq ruk’ uxikin imul: retal saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '🧑🏽‍🐰‍🧑🏻' => 'E winaq ruk’ uxikin imul: retal ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '🧑🏽‍🐰‍🧑🏼' => 'E winaq ruk’ uxikin imul: retal ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '🧑🏽‍🐰‍🧑🏾' => 'E winaq ruk’ uxikin imul: retal ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '🧑🏽‍🐰‍🧑🏿' => 'E winaq ruk’ uxikin imul: retal ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '🧑🏾‍🐰‍🧑🏻' => 'E winaq ruk’ uxikin imul: retal-q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '🧑🏾‍🐰‍🧑🏼' => 'E winaq ruk’ uxikin imul: retal-q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '🧑🏾‍🐰‍🧑🏽' => 'E winaq ruk’ uxikin imul: retal-q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '🧑🏾‍🐰‍🧑🏿' => 'E winaq ruk’ uxikin imul: retal-q’eq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '🧑🏿‍🐰‍🧑🏻' => 'E winaq ruk’ uxikin imul: q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '🧑🏿‍🐰‍🧑🏼' => 'E winaq ruk’ uxikin imul: q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '🧑🏿‍🐰‍🧑🏽' => 'E winaq ruk’ uxikin imul: q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '🧑🏿‍🐰‍🧑🏾' => 'E winaq ruk’ uxikin imul: q’eq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👨🏻‍🫯‍👨🏼' => 'achi ktajin kch’ojinik: saq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👨🏻‍🫯‍👨🏽' => 'achi ktajin kch’ojinik: saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👨🏻‍🫯‍👨🏾' => 'achi ktajin kch’ojinik: saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👨🏻‍🫯‍👨🏿' => 'achi ktajin kch’ojinik: saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👨🏼‍🫯‍👨🏻' => 'achi ktajin kch’ojinik: retal saq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👨🏼‍🫯‍👨🏽' => 'achi ktajin kch’ojinik: retal saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👨🏼‍🫯‍👨🏾' => 'achi ktajin kch’ojinik: retal saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👨🏼‍🫯‍👨🏿' => 'achi ktajin kch’ojinik: retal saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👨🏽‍🫯‍👨🏻' => 'achi ktajin kch’ojinik: retal ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👨🏽‍🫯‍👨🏼' => 'achi ktajin kch’ojinik: retal ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👨🏽‍🫯‍👨🏾' => 'achi ktajin kch’ojinik: retal ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👨🏽‍🫯‍👨🏿' => 'achi ktajin kch’ojinik: retal ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👨🏾‍🫯‍👨🏻' => 'achi ktajin kch’ojinik: retal-q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👨🏾‍🫯‍👨🏼' => 'achi ktajin kch’ojinik: retal-q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👨🏾‍🫯‍👨🏽' => 'achi ktajin kch’ojinik: retal-q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👨🏾‍🫯‍👨🏿' => 'achi ktajin kch’ojinik: retal-q’eq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👨🏿‍🫯‍👨🏻' => 'achi ktajin kch’ojinik: q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👨🏿‍🫯‍👨🏼' => 'achi ktajin kch’ojinik: q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👨🏿‍🫯‍👨🏽' => 'achi ktajin kch’ojinik: q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👨🏿‍🫯‍👨🏾' => 'achi ktajin kch’ojinik: q’eq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
     '👨🏻‍❤‍👨🏻' => 'Kab’ichal ruk’ anima: Achi, Achi, saq ub’antajik b’aqilal',
     '👨🏻‍❤‍👨🏼' => 'Kab’ichal ruk’ anima: Achi, Achi, saq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
     '👨🏻‍❤‍👨🏽' => 'Kab’ichal ruk’ anima: Achi, Achi, saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'Kab’ichal ruk’ anima: Achi, Achi, q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
     '👨🏿‍❤‍👨🏾' => 'Kab’ichal ruk’ anima: Achi, Achi, q’eq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
     '👨🏿‍❤‍👨🏿' => 'Kab’ichal ruk’ anima: Achi, Achi, q’eq ub’antajik b’aqilal',
+    '👨🏻‍🐰‍👨🏼' => 'achi ruk’ uxikin imul pa nimaq’ij: saq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👨🏻‍🐰‍👨🏽' => 'achi ruk’ uxikin imul pa nimaq’ij: saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👨🏻‍🐰‍👨🏾' => 'achi ruk’ uxikin imul pa nimaq’ij: saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👨🏻‍🐰‍👨🏿' => 'achi ruk’ uxikin imul pa nimaq’ij: saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👨🏼‍🐰‍👨🏻' => 'achi ruk’ uxikin imul pa nimaq’ij: retal saq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👨🏼‍🐰‍👨🏽' => 'achi ruk’ uxikin imul pa nimaq’ij: retal saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👨🏼‍🐰‍👨🏾' => 'achi ruk’ uxikin imul pa nimaq’ij: retal saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👨🏼‍🐰‍👨🏿' => 'achi ruk’ uxikin imul pa nimaq’ij: retal saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👨🏽‍🐰‍👨🏻' => 'achi ruk’ uxikin imul pa nimaq’ij: retal ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👨🏽‍🐰‍👨🏼' => 'achi ruk’ uxikin imul pa nimaq’ij: retal ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👨🏽‍🐰‍👨🏾' => 'achi ruk’ uxikin imul pa nimaq’ij: retal ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👨🏽‍🐰‍👨🏿' => 'achi ruk’ uxikin imul pa nimaq’ij: retal ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👨🏾‍🐰‍👨🏻' => 'achi ruk’ uxikin imul pa nimaq’ij: retal-q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👨🏾‍🐰‍👨🏼' => 'achi ruk’ uxikin imul pa nimaq’ij: retal-q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👨🏾‍🐰‍👨🏽' => 'achi ruk’ uxikin imul pa nimaq’ij: retal-q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👨🏾‍🐰‍👨🏿' => 'achi ruk’ uxikin imul pa nimaq’ij: retal-q’eq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👨🏿‍🐰‍👨🏻' => 'achi ruk’ uxikin imul pa nimaq’ij: q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👨🏿‍🐰‍👨🏼' => 'achi ruk’ uxikin imul pa nimaq’ij: q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👨🏿‍🐰‍👨🏽' => 'achi ruk’ uxikin imul pa nimaq’ij: q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👨🏿‍🐰‍👨🏾' => 'achi ruk’ uxikin imul pa nimaq’ij: q’eq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👩🏻‍🫯‍👩🏼' => 'ixoq ktajin kch’ojinik: saq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👩🏻‍🫯‍👩🏽' => 'ixoq ktajin kch’ojinik: saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👩🏻‍🫯‍👩🏾' => 'ixoq ktajin kch’ojinik: saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👩🏻‍🫯‍👩🏿' => 'ixoq ktajin kch’ojinik: saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👩🏼‍🫯‍👩🏻' => 'ixoq ktajin kch’ojinik: retal saq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👩🏼‍🫯‍👩🏽' => 'ixoq ktajin kch’ojinik: retal saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👩🏼‍🫯‍👩🏾' => 'ixoq ktajin kch’ojinik: retal saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👩🏼‍🫯‍👩🏿' => 'ixoq ktajin kch’ojinik: retal saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👩🏽‍🫯‍👩🏻' => 'ixoq ktajin kch’ojinik: retal ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👩🏽‍🫯‍👩🏼' => 'ixoq ktajin kch’ojinik: retal ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👩🏽‍🫯‍👩🏾' => 'ixoq ktajin kch’ojinik: retal ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👩🏽‍🫯‍👩🏿' => 'ixoq ktajin kch’ojinik: retal ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👩🏾‍🫯‍👩🏻' => 'ixoq ktajin kch’ojinik: retal-q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👩🏾‍🫯‍👩🏼' => 'ixoq ktajin kch’ojinik: retal-q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👩🏾‍🫯‍👩🏽' => 'ixoq ktajin kch’ojinik: retal-q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👩🏾‍🫯‍👩🏿' => 'ixoq ktajin kch’ojinik: retal-q’eq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👩🏿‍🫯‍👩🏻' => 'ixoq ktajin kch’ojinik: q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👩🏿‍🫯‍👩🏼' => 'ixoq ktajin kch’ojinik: q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👩🏿‍🫯‍👩🏽' => 'ixoq ktajin kch’ojinik: q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👩🏿‍🫯‍👩🏾' => 'ixoq ktajin kch’ojinik: q’eq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
     '👩🏻‍❤‍👨🏻' => 'Kab’ichal ruk’ anima: Ixoq, Achi, saq ub’antajik b’aqilal',
     '👩🏻‍❤‍👨🏼' => 'Kab’ichal ruk’ anima: Ixoq, Achi, saq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
     '👩🏻‍❤‍👨🏽' => 'Kab’ichal ruk’ anima: Ixoq, Achi, saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'Kab’ichal ruk’ anima: Ixoq, Ixoq, q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
     '👩🏿‍❤‍👩🏾' => 'Kab’ichal ruk’ anima: Ixoq, Ixoq, q’eq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
     '👩🏿‍❤‍👩🏿' => 'Kab’ichal ruk’ anima: Ixoq, Ixoq, q’eq ub’antajik b’aqilal',
+    '👩🏻‍🐰‍👩🏼' => 'ixoq ruk’ uxikin imul pa nimaq’ij: saq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👩🏻‍🐰‍👩🏽' => 'ixoq ruk’ uxikin imul pa nimaq’ij: saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👩🏻‍🐰‍👩🏾' => 'ixoq ruk’ uxikin imul pa nimaq’ij: saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👩🏻‍🐰‍👩🏿' => 'ixoq ruk’ uxikin imul pa nimaq’ij: saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👩🏼‍🐰‍👩🏻' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal saq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👩🏼‍🐰‍👩🏽' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👩🏼‍🐰‍👩🏾' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👩🏼‍🐰‍👩🏿' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal saq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👩🏽‍🐰‍👩🏻' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👩🏽‍🐰‍👩🏼' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👩🏽‍🐰‍👩🏾' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
+    '👩🏽‍🐰‍👩🏿' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👩🏾‍🐰‍👩🏻' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal-q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👩🏾‍🐰‍👩🏼' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal-q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👩🏾‍🐰‍👩🏽' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal-q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👩🏾‍🐰‍👩🏿' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal-q’eq ub’antajik b’aqilal, q’eq ub’antajik b’aqilal',
+    '👩🏿‍🐰‍👩🏻' => 'ixoq ruk’ uxikin imul pa nimaq’ij: q’eq ub’antajik b’aqilal, saq ub’antajik b’aqilal',
+    '👩🏿‍🐰‍👩🏼' => 'ixoq ruk’ uxikin imul pa nimaq’ij: q’eq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
+    '👩🏿‍🐰‍👩🏽' => 'ixoq ruk’ uxikin imul pa nimaq’ij: q’eq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
+    '👩🏿‍🐰‍👩🏾' => 'ixoq ruk’ uxikin imul pa nimaq’ij: q’eq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
     '👩🏻‍🤝‍👩🏼' => 'Keb’ ixoqib’ kichapom kiq’ab’: saq ub’antajik b’aqilal, retal saq ub’antajik b’aqilal',
     '👩🏻‍🤝‍👩🏽' => 'Keb’ ixoqib’ kichapom kiq’ab’: saq ub’antajik b’aqilal, retal ub’antajik b’aqilal',
     '👩🏻‍🤝‍👩🏾' => 'Keb’ ixoqib’ kichapom kiq’ab’: saq ub’antajik b’aqilal, retal-q’eq ub’antajik b’aqilal',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'ixoq ktajin kutij anin: retal ub’antajik b’aqilal',
     '🏃🏾‍♀' => 'ixoq ktajin kutij anin: retal-q’eq ub’antajik b’aqilal',
     '🏃🏿‍♀' => 'ixoq ktajin kutij anin: q’eq ub’antajik b’aqilal',
+    '👯🏻‍♀' => 'ixoq ruk’ uxikin imul pa nimaq’ij: saq ub’antajik b’aqilal',
+    '👯🏼‍♀' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal saq ub’antajik b’aqilal',
+    '👯🏽‍♀' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal ub’antajik b’aqilal',
+    '👯🏾‍♀' => 'ixoq ruk’ uxikin imul pa nimaq’ij: retal-q’eq ub’antajik b’aqilal',
+    '👯🏿‍♀' => 'ixoq ruk’ uxikin imul pa nimaq’ij: q’eq ub’antajik b’aqilal',
+    '👯🏻‍♂' => 'achi ruk’ uxikin imul pa nimaq’ij: saq ub’antajik b’aqilal',
+    '👯🏼‍♂' => 'achi ruk’ uxikin imul pa nimaq’ij: retal saq ub’antajik b’aqilal',
+    '👯🏽‍♂' => 'achi ruk’ uxikin imul pa nimaq’ij: retal ub’antajik b’aqilal',
+    '👯🏾‍♂' => 'achi ruk’ uxikin imul pa nimaq’ij: retal-q’eq ub’antajik b’aqilal',
+    '👯🏿‍♂' => 'achi ruk’ uxikin imul pa nimaq’ij: q’eq ub’antajik b’aqilal',
     '🧖🏻‍♂' => 'achi pa uxlab’ upaja: saq ub’antajik b’aqilal',
     '🧖🏼‍♂' => 'achi pa uxlab’ upaja: retal saq ub’antajik b’aqilal',
     '🧖🏽‍♂' => 'achi pa uxlab’ upaja: retal ub’antajik b’aqilal',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'ixoq pa setch’ich’: retal ub’antajik b’aqilal',
     '🤸🏾‍♀' => 'ixoq pa setch’ich’: retal-q’eq ub’antajik b’aqilal',
     '🤸🏿‍♀' => 'ixoq pa setch’ich’: q’eq ub’antajik b’aqilal',
+    '🤼🏻‍♀' => 'ixoq ktajin kch’ojinik: saq ub’antajik b’aqilal',
+    '🤼🏼‍♀' => 'ixoq ktajin kch’ojinik: retal saq ub’antajik b’aqilal',
+    '🤼🏽‍♀' => 'ixoq ktajin kch’ojinik: retal ub’antajik b’aqilal',
+    '🤼🏾‍♀' => 'ixoq ktajin kch’ojinik: retal-q’eq ub’antajik b’aqilal',
+    '🤼🏿‍♀' => 'ixoq ktajin kch’ojinik: q’eq ub’antajik b’aqilal',
+    '🤼🏻‍♂' => 'achi ktajin kch’ojinik: saq ub’antajik b’aqilal',
+    '🤼🏼‍♂' => 'achi ktajin kch’ojinik: retal saq ub’antajik b’aqilal',
+    '🤼🏽‍♂' => 'achi ktajin kch’ojinik: retal ub’antajik b’aqilal',
+    '🤼🏾‍♂' => 'achi ktajin kch’ojinik: retal-q’eq ub’antajik b’aqilal',
+    '🤼🏿‍♂' => 'achi ktajin kch’ojinik: q’eq ub’antajik b’aqilal',
     '🤽🏻‍♂' => 'achi ktajin kretz’ab’el potz’ pa ja’: saq ub’antajik b’aqilal',
     '🤽🏼‍♂' => 'achi ktajin kretz’ab’el potz’ pa ja’: retal saq ub’antajik b’aqilal',
     '🤽🏽‍♂' => 'achi ktajin kretz’ab’el potz’ pa ja’: retal ub’antajik b’aqilal',
@@ -1392,6 +1532,11 @@
     '🕴🏽' => 'achi ukojon nim atz’i’aq rech k’ayinem: retal ub’antajik b’aqilal',
     '🕴🏾' => 'achi ukojon nim atz’i’aq rech k’ayinem: retal-q’eq ub’antajik b’aqilal',
     '🕴🏿' => 'achi ukojon nim atz’i’aq rech k’ayinem: q’eq ub’antajik b’aqilal',
+    '👯🏻' => 'E winaq ruk’ uxikin imul: saq ub’antajik b’aqilal',
+    '👯🏼' => 'E winaq ruk’ uxikin imul: retal saq ub’antajik b’aqilal',
+    '👯🏽' => 'E winaq ruk’ uxikin imul: retal ub’antajik b’aqilal',
+    '👯🏾' => 'E winaq ruk’ uxikin imul: retal-q’eq ub’antajik b’aqilal',
+    '👯🏿' => 'E winaq ruk’ uxikin imul: q’eq ub’antajik b’aqilal',
     '🧖🏻' => 'winaq pa uxlab’ upaja: saq ub’antajik b’aqilal',
     '🧖🏼' => 'winaq pa uxlab’ upaja: retal saq ub’antajik b’aqilal',
     '🧖🏽' => 'winaq pa uxlab’ upaja: retal ub’antajik b’aqilal',
@@ -1457,6 +1602,11 @@
     '🤸🏽' => 'Winaq xulan uwi’: retal ub’antajik b’aqilal',
     '🤸🏾' => 'Winaq xulan uwi’: retal-q’eq ub’antajik b’aqilal',
     '🤸🏿' => 'Winaq xulan uwi’: q’eq ub’antajik b’aqilal',
+    '🤼🏻' => 'E winaq kech’o’jinik: saq ub’antajik b’aqilal',
+    '🤼🏼' => 'E winaq kech’o’jinik: retal saq ub’antajik b’aqilal',
+    '🤼🏽' => 'E winaq kech’o’jinik: retal ub’antajik b’aqilal',
+    '🤼🏾' => 'E winaq kech’o’jinik: retal-q’eq ub’antajik b’aqilal',
+    '🤼🏿' => 'E winaq kech’o’jinik: q’eq ub’antajik b’aqilal',
     '🤽🏻' => 'Winaq aj etz’anel potz’ pa ja’: saq ub’antajik b’aqilal',
     '🤽🏼' => 'Winaq aj etz’anel potz’ pa ja’: retal saq ub’antajik b’aqilal',
     '🤽🏽' => 'Winaq aj etz’anel potz’ pa ja’: retal ub’antajik b’aqilal',
@@ -1857,6 +2007,9 @@
     '🦈' => 'Tib’kar',
     '🐙' => 'Yatz chikop',
     '🐚' => 'Ub’olq’otim rib’ concha',
+    '🦀' => 'Tap',
+    '🦐' => 'kamaron',
+    '🦑' => 'kalamar',
     '🐌' => 'T’ot’',
     '🦋' => 'Pepe',
     '🐛' => 'k’axk’olil',
@@ -1958,9 +2111,6 @@
     '🥟' => 't’oqto’y',
     '🥠' => 'q’ochom kab’',
     '🥡' => 'k’olwa',
-    '🦀' => 'Tap',
-    '🦐' => 'kamaron',
-    '🦑' => 'kalamar',
     '🍦' => 'Tz’uqutz’ik t’aja’j',
     '🍧' => 'T’aja’j pa k’olib’al',
     '🍨' => 'Joromsab’al',
@@ -2311,9 +2461,9 @@
     '🎧' => 'Uk’amal ch’aweb’al',
     '📻' => 'Q’axeb’al tzij',
     '🎷' => 'Saxopon',
+    '🎺' => 'Trompet',
     '🎸' => 'Kita’r',
     '🎹' => 'Q’ojomb’al tz’emb’al',
-    '🎺' => 'Trompet',
     '🎻' => 'Violin',
     '🥁' => 'Tamb’or',
     '📱' => 'B’inib’al ch’aweb’al',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-qu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-qu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-qu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-qu.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'much’a: warmi, warmi, yana qara niraq, tunpa qara niraq',
     '👩🏿‍❤‍💋‍👩🏾' => 'much’a: warmi, warmi, yana qara niraq, tunpa yana qara niraq',
     '👩🏿‍❤‍💋‍👩🏿' => 'much’a: warmi, warmi, yana qara niraq',
+    '🧑🏻‍🫯‍🧑🏼' => 'maqanakuq runa: chuya qara niraq, tunpa chuya qara niraq',
+    '🧑🏻‍🫯‍🧑🏽' => 'maqanakuq runa: chuya qara niraq, tunpa qara niraq',
+    '🧑🏻‍🫯‍🧑🏾' => 'maqanakuq runa: chuya qara niraq, tunpa yana qara niraq',
+    '🧑🏻‍🫯‍🧑🏿' => 'maqanakuq runa: chuya qara niraq, yana qara niraq',
+    '🧑🏼‍🫯‍🧑🏻' => 'maqanakuq runa: tunpa chuya qara niraq, chuya qara niraq',
+    '🧑🏼‍🫯‍🧑🏽' => 'maqanakuq runa: tunpa chuya qara niraq, tunpa qara niraq',
+    '🧑🏼‍🫯‍🧑🏾' => 'maqanakuq runa: tunpa chuya qara niraq, tunpa yana qara niraq',
+    '🧑🏼‍🫯‍🧑🏿' => 'maqanakuq runa: tunpa chuya qara niraq, yana qara niraq',
+    '🧑🏽‍🫯‍🧑🏻' => 'maqanakuq runa: tunpa qara niraq, chuya qara niraq',
+    '🧑🏽‍🫯‍🧑🏼' => 'maqanakuq runa: tunpa qara niraq, tunpa chuya qara niraq',
+    '🧑🏽‍🫯‍🧑🏾' => 'maqanakuq runa: tunpa qara niraq, tunpa yana qara niraq',
+    '🧑🏽‍🫯‍🧑🏿' => 'maqanakuq runa: tunpa qara niraq, yana qara niraq',
+    '🧑🏾‍🫯‍🧑🏻' => 'maqanakuq runa: tunpa yana qara niraq, chuya qara niraq',
+    '🧑🏾‍🫯‍🧑🏼' => 'maqanakuq runa: tunpa yana qara niraq, tunpa chuya qara niraq',
+    '🧑🏾‍🫯‍🧑🏽' => 'maqanakuq runa: tunpa yana qara niraq, tunpa qara niraq',
+    '🧑🏾‍🫯‍🧑🏿' => 'maqanakuq runa: tunpa yana qara niraq, yana qara niraq',
+    '🧑🏿‍🫯‍🧑🏻' => 'maqanakuq runa: yana qara niraq, chuya qara niraq',
+    '🧑🏿‍🫯‍🧑🏼' => 'maqanakuq runa: yana qara niraq, tunpa chuya qara niraq',
+    '🧑🏿‍🫯‍🧑🏽' => 'maqanakuq runa: yana qara niraq, tunpa qara niraq',
+    '🧑🏿‍🫯‍🧑🏾' => 'maqanakuq runa: yana qara niraq, tunpa yana qara niraq',
     '🧑🏻‍❤‍🧑🏼' => 'pitu runakuna sunquwan: runa, runa, chuya qara niraq, tunpa chuya qara niraq',
     '🧑🏻‍❤‍🧑🏽' => 'pitu runakuna sunquwan: runa, runa, chuya qara niraq, tunpa qara niraq',
     '🧑🏻‍❤‍🧑🏾' => 'pitu runakuna sunquwan: runa, runa, chuya qara niraq, tunpa yana qara niraq',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pitu runakuna sunquwan: runa, runa, yana qara niraq, tunpa chuya qara niraq',
     '🧑🏿‍❤‍🧑🏽' => 'pitu runakuna sunquwan: runa, runa, yana qara niraq, tunpa qara niraq',
     '🧑🏿‍❤‍🧑🏾' => 'pitu runakuna sunquwan: runa, runa, yana qara niraq, tunpa yana qara niraq',
+    '🧑🏻‍🐰‍🧑🏼' => 'runakuna quwi ninrikunawan: chuya qara niraq, tunpa chuya qara niraq',
+    '🧑🏻‍🐰‍🧑🏽' => 'runakuna quwi ninrikunawan: chuya qara niraq, tunpa qara niraq',
+    '🧑🏻‍🐰‍🧑🏾' => 'runakuna quwi ninrikunawan: chuya qara niraq, tunpa yana qara niraq',
+    '🧑🏻‍🐰‍🧑🏿' => 'runakuna quwi ninrikunawan: chuya qara niraq, yana qara niraq',
+    '🧑🏼‍🐰‍🧑🏻' => 'runakuna quwi ninrikunawan: tunpa chuya qara niraq, chuya qara niraq',
+    '🧑🏼‍🐰‍🧑🏽' => 'runakuna quwi ninrikunawan: tunpa chuya qara niraq, tunpa qara niraq',
+    '🧑🏼‍🐰‍🧑🏾' => 'runakuna quwi ninrikunawan: tunpa chuya qara niraq, tunpa yana qara niraq',
+    '🧑🏼‍🐰‍🧑🏿' => 'runakuna quwi ninrikunawan: tunpa chuya qara niraq, yana qara niraq',
+    '🧑🏽‍🐰‍🧑🏻' => 'runakuna quwi ninrikunawan: tunpa qara niraq, chuya qara niraq',
+    '🧑🏽‍🐰‍🧑🏼' => 'runakuna quwi ninrikunawan: tunpa qara niraq, tunpa chuya qara niraq',
+    '🧑🏽‍🐰‍🧑🏾' => 'runakuna quwi ninrikunawan: tunpa qara niraq, tunpa yana qara niraq',
+    '🧑🏽‍🐰‍🧑🏿' => 'runakuna quwi ninrikunawan: tunpa qara niraq, yana qara niraq',
+    '🧑🏾‍🐰‍🧑🏻' => 'runakuna quwi ninrikunawan: tunpa yana qara niraq, chuya qara niraq',
+    '🧑🏾‍🐰‍🧑🏼' => 'runakuna quwi ninrikunawan: tunpa yana qara niraq, tunpa chuya qara niraq',
+    '🧑🏾‍🐰‍🧑🏽' => 'runakuna quwi ninrikunawan: tunpa yana qara niraq, tunpa qara niraq',
+    '🧑🏾‍🐰‍🧑🏿' => 'runakuna quwi ninrikunawan: tunpa yana qara niraq, yana qara niraq',
+    '🧑🏿‍🐰‍🧑🏻' => 'runakuna quwi ninrikunawan: yana qara niraq, chuya qara niraq',
+    '🧑🏿‍🐰‍🧑🏼' => 'runakuna quwi ninrikunawan: yana qara niraq, tunpa chuya qara niraq',
+    '🧑🏿‍🐰‍🧑🏽' => 'runakuna quwi ninrikunawan: yana qara niraq, tunpa qara niraq',
+    '🧑🏿‍🐰‍🧑🏾' => 'runakuna quwi ninrikunawan: yana qara niraq, tunpa yana qara niraq',
+    '👨🏻‍🫯‍👨🏼' => 'maqanakuq tata: chuya qara niraq, tunpa chuya qara niraq',
+    '👨🏻‍🫯‍👨🏽' => 'maqanakuq tata: chuya qara niraq, tunpa qara niraq',
+    '👨🏻‍🫯‍👨🏾' => 'maqanakuq tata: chuya qara niraq, tunpa yana qara niraq',
+    '👨🏻‍🫯‍👨🏿' => 'maqanakuq tata: chuya qara niraq, yana qara niraq',
+    '👨🏼‍🫯‍👨🏻' => 'maqanakuq tata: tunpa chuya qara niraq, chuya qara niraq',
+    '👨🏼‍🫯‍👨🏽' => 'maqanakuq tata: tunpa chuya qara niraq, tunpa qara niraq',
+    '👨🏼‍🫯‍👨🏾' => 'maqanakuq tata: tunpa chuya qara niraq, tunpa yana qara niraq',
+    '👨🏼‍🫯‍👨🏿' => 'maqanakuq tata: tunpa chuya qara niraq, yana qara niraq',
+    '👨🏽‍🫯‍👨🏻' => 'maqanakuq tata: tunpa qara niraq, chuya qara niraq',
+    '👨🏽‍🫯‍👨🏼' => 'maqanakuq tata: tunpa qara niraq, tunpa chuya qara niraq',
+    '👨🏽‍🫯‍👨🏾' => 'maqanakuq tata: tunpa qara niraq, tunpa yana qara niraq',
+    '👨🏽‍🫯‍👨🏿' => 'maqanakuq tata: tunpa qara niraq, yana qara niraq',
+    '👨🏾‍🫯‍👨🏻' => 'maqanakuq tata: tunpa yana qara niraq, chuya qara niraq',
+    '👨🏾‍🫯‍👨🏼' => 'maqanakuq tata: tunpa yana qara niraq, tunpa chuya qara niraq',
+    '👨🏾‍🫯‍👨🏽' => 'maqanakuq tata: tunpa yana qara niraq, tunpa qara niraq',
+    '👨🏾‍🫯‍👨🏿' => 'maqanakuq tata: tunpa yana qara niraq, yana qara niraq',
+    '👨🏿‍🫯‍👨🏻' => 'maqanakuq tata: yana qara niraq, chuya qara niraq',
+    '👨🏿‍🫯‍👨🏼' => 'maqanakuq tata: yana qara niraq, tunpa chuya qara niraq',
+    '👨🏿‍🫯‍👨🏽' => 'maqanakuq tata: yana qara niraq, tunpa qara niraq',
+    '👨🏿‍🫯‍👨🏾' => 'maqanakuq tata: yana qara niraq, tunpa yana qara niraq',
     '👨🏻‍❤‍👨🏻' => 'pitu runakuna sunquwan: qari, qari, chuya qara niraq',
     '👨🏻‍❤‍👨🏼' => 'pitu runakuna sunquwan: qari, qari, chuya qara niraq, tunpa chuya qara niraq',
     '👨🏻‍❤‍👨🏽' => 'pitu runakuna sunquwan: qari, qari, chuya qara niraq, tunpa qara niraq',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pitu runakuna sunquwan: qari, qari, yana qara niraq, tunpa qara niraq',
     '👨🏿‍❤‍👨🏾' => 'pitu runakuna sunquwan: qari, qari, yana qara niraq, tunpa yana qara niraq',
     '👨🏿‍❤‍👨🏿' => 'pitu runakuna sunquwan: qari, qari, yana qara niraq',
+    '👨🏻‍🐰‍👨🏼' => 'runa quwi ninrikunawan: chuya qara niraq, tunpa chuya qara niraq',
+    '👨🏻‍🐰‍👨🏽' => 'runa quwi ninrikunawan: chuya qara niraq, tunpa qara niraq',
+    '👨🏻‍🐰‍👨🏾' => 'runa quwi ninrikunawan: chuya qara niraq, tunpa yana qara niraq',
+    '👨🏻‍🐰‍👨🏿' => 'runa quwi ninrikunawan: chuya qara niraq, yana qara niraq',
+    '👨🏼‍🐰‍👨🏻' => 'runa quwi ninrikunawan: tunpa chuya qara niraq, chuya qara niraq',
+    '👨🏼‍🐰‍👨🏽' => 'runa quwi ninrikunawan: tunpa chuya qara niraq, tunpa qara niraq',
+    '👨🏼‍🐰‍👨🏾' => 'runa quwi ninrikunawan: tunpa chuya qara niraq, tunpa yana qara niraq',
+    '👨🏼‍🐰‍👨🏿' => 'runa quwi ninrikunawan: tunpa chuya qara niraq, yana qara niraq',
+    '👨🏽‍🐰‍👨🏻' => 'runa quwi ninrikunawan: tunpa qara niraq, chuya qara niraq',
+    '👨🏽‍🐰‍👨🏼' => 'runa quwi ninrikunawan: tunpa qara niraq, tunpa chuya qara niraq',
+    '👨🏽‍🐰‍👨🏾' => 'runa quwi ninrikunawan: tunpa qara niraq, tunpa yana qara niraq',
+    '👨🏽‍🐰‍👨🏿' => 'runa quwi ninrikunawan: tunpa qara niraq, yana qara niraq',
+    '👨🏾‍🐰‍👨🏻' => 'runa quwi ninrikunawan: tunpa yana qara niraq, chuya qara niraq',
+    '👨🏾‍🐰‍👨🏼' => 'runa quwi ninrikunawan: tunpa yana qara niraq, tunpa chuya qara niraq',
+    '👨🏾‍🐰‍👨🏽' => 'runa quwi ninrikunawan: tunpa yana qara niraq, tunpa qara niraq',
+    '👨🏾‍🐰‍👨🏿' => 'runa quwi ninrikunawan: tunpa yana qara niraq, yana qara niraq',
+    '👨🏿‍🐰‍👨🏻' => 'runa quwi ninrikunawan: yana qara niraq, chuya qara niraq',
+    '👨🏿‍🐰‍👨🏼' => 'runa quwi ninrikunawan: yana qara niraq, tunpa chuya qara niraq',
+    '👨🏿‍🐰‍👨🏽' => 'runa quwi ninrikunawan: yana qara niraq, tunpa qara niraq',
+    '👨🏿‍🐰‍👨🏾' => 'runa quwi ninrikunawan: yana qara niraq, tunpa yana qara niraq',
+    '👩🏻‍🫯‍👩🏼' => 'maqanakuq warmi: chuya qara niraq, tunpa chuya qara niraq',
+    '👩🏻‍🫯‍👩🏽' => 'maqanakuq warmi: chuya qara niraq, tunpa qara niraq',
+    '👩🏻‍🫯‍👩🏾' => 'maqanakuq warmi: chuya qara niraq, tunpa yana qara niraq',
+    '👩🏻‍🫯‍👩🏿' => 'maqanakuq warmi: chuya qara niraq, yana qara niraq',
+    '👩🏼‍🫯‍👩🏻' => 'maqanakuq warmi: tunpa chuya qara niraq, chuya qara niraq',
+    '👩🏼‍🫯‍👩🏽' => 'maqanakuq warmi: tunpa chuya qara niraq, tunpa qara niraq',
+    '👩🏼‍🫯‍👩🏾' => 'maqanakuq warmi: tunpa chuya qara niraq, tunpa yana qara niraq',
+    '👩🏼‍🫯‍👩🏿' => 'maqanakuq warmi: tunpa chuya qara niraq, yana qara niraq',
+    '👩🏽‍🫯‍👩🏻' => 'maqanakuq warmi: tunpa qara niraq, chuya qara niraq',
+    '👩🏽‍🫯‍👩🏼' => 'maqanakuq warmi: tunpa qara niraq, tunpa chuya qara niraq',
+    '👩🏽‍🫯‍👩🏾' => 'maqanakuq warmi: tunpa qara niraq, tunpa yana qara niraq',
+    '👩🏽‍🫯‍👩🏿' => 'maqanakuq warmi: tunpa qara niraq, yana qara niraq',
+    '👩🏾‍🫯‍👩🏻' => 'maqanakuq warmi: tunpa yana qara niraq, chuya qara niraq',
+    '👩🏾‍🫯‍👩🏼' => 'maqanakuq warmi: tunpa yana qara niraq, tunpa chuya qara niraq',
+    '👩🏾‍🫯‍👩🏽' => 'maqanakuq warmi: tunpa yana qara niraq, tunpa qara niraq',
+    '👩🏾‍🫯‍👩🏿' => 'maqanakuq warmi: tunpa yana qara niraq, yana qara niraq',
+    '👩🏿‍🫯‍👩🏻' => 'maqanakuq warmi: yana qara niraq, chuya qara niraq',
+    '👩🏿‍🫯‍👩🏼' => 'maqanakuq warmi: yana qara niraq, tunpa chuya qara niraq',
+    '👩🏿‍🫯‍👩🏽' => 'maqanakuq warmi: yana qara niraq, tunpa qara niraq',
+    '👩🏿‍🫯‍👩🏾' => 'maqanakuq warmi: yana qara niraq, tunpa yana qara niraq',
     '👩🏻‍❤‍👨🏻' => 'pitu runakuna sunquwan: warmi, qari, chuya qara niraq',
     '👩🏻‍❤‍👨🏼' => 'pitu runakuna sunquwan: warmi, qari, chuya qara niraq, tunpa chuya qara niraq',
     '👩🏻‍❤‍👨🏽' => 'pitu runakuna sunquwan: warmi, qari, chuya qara niraq, tunpa qara niraq',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pitu runakuna sunquwan: warmi, warmi, yana qara niraq, tunpa qara niraq',
     '👩🏿‍❤‍👩🏾' => 'pitu runakuna sunquwan: warmi, warmi, yana qara niraq, tunpa yana qara niraq',
     '👩🏿‍❤‍👩🏿' => 'pitu runakuna sunquwan: warmi, warmi, yana qara niraq',
+    '👩🏻‍🐰‍👩🏼' => 'warmi quwi ninrikunawan: chuya qara niraq, tunpa chuya qara niraq',
+    '👩🏻‍🐰‍👩🏽' => 'warmi quwi ninrikunawan: chuya qara niraq, tunpa qara niraq',
+    '👩🏻‍🐰‍👩🏾' => 'warmi quwi ninrikunawan: chuya qara niraq, tunpa yana qara niraq',
+    '👩🏻‍🐰‍👩🏿' => 'warmi quwi ninrikunawan: chuya qara niraq, yana qara niraq',
+    '👩🏼‍🐰‍👩🏻' => 'warmi quwi ninrikunawan: tunpa chuya qara niraq, chuya qara niraq',
+    '👩🏼‍🐰‍👩🏽' => 'warmi quwi ninrikunawan: tunpa chuya qara niraq, tunpa qara niraq',
+    '👩🏼‍🐰‍👩🏾' => 'warmi quwi ninrikunawan: tunpa chuya qara niraq, tunpa yana qara niraq',
+    '👩🏼‍🐰‍👩🏿' => 'warmi quwi ninrikunawan: tunpa chuya qara niraq, yana qara niraq',
+    '👩🏽‍🐰‍👩🏻' => 'warmi quwi ninrikunawan: tunpa qara niraq, chuya qara niraq',
+    '👩🏽‍🐰‍👩🏼' => 'warmi quwi ninrikunawan: tunpa qara niraq, tunpa chuya qara niraq',
+    '👩🏽‍🐰‍👩🏾' => 'warmi quwi ninrikunawan: tunpa qara niraq, tunpa yana qara niraq',
+    '👩🏽‍🐰‍👩🏿' => 'warmi quwi ninrikunawan: tunpa qara niraq, yana qara niraq',
+    '👩🏾‍🐰‍👩🏻' => 'warmi quwi ninrikunawan: tunpa yana qara niraq, chuya qara niraq',
+    '👩🏾‍🐰‍👩🏼' => 'warmi quwi ninrikunawan: tunpa yana qara niraq, tunpa chuya qara niraq',
+    '👩🏾‍🐰‍👩🏽' => 'warmi quwi ninrikunawan: tunpa yana qara niraq, tunpa qara niraq',
+    '👩🏾‍🐰‍👩🏿' => 'warmi quwi ninrikunawan: tunpa yana qara niraq, yana qara niraq',
+    '👩🏿‍🐰‍👩🏻' => 'warmi quwi ninrikunawan: yana qara niraq, chuya qara niraq',
+    '👩🏿‍🐰‍👩🏼' => 'warmi quwi ninrikunawan: yana qara niraq, tunpa chuya qara niraq',
+    '👩🏿‍🐰‍👩🏽' => 'warmi quwi ninrikunawan: yana qara niraq, tunpa qara niraq',
+    '👩🏿‍🐰‍👩🏾' => 'warmi quwi ninrikunawan: yana qara niraq, tunpa yana qara niraq',
     '🧑🏻‍🤝‍🧑🏻' => 'runakuna iskay makikunawan: chuya qara niraq',
     '🧑🏻‍🤝‍🧑🏼' => 'runakuna iskay makikunawan: chuya qara niraq, tunpa chuya qara niraq',
     '🧑🏻‍🤝‍🧑🏽' => 'runakuna iskay makikunawan: chuya qara niraq, tunpa qara niraq',
@@ -347,6 +467,11 @@
     '🧑🏽‍🦲' => 'runa: tunpa qara niraq, paqla',
     '🧑🏾‍🦲' => 'runa: tunpa yana qara niraq, paqla',
     '🧑🏿‍🦲' => 'runa: yana qara niraq, paqla',
+    '🧑🏻‍🩰' => 'ballet tusuq: chuya qara niraq',
+    '🧑🏼‍🩰' => 'ballet tusuq: tunpa chuya qara niraq',
+    '🧑🏽‍🩰' => 'ballet tusuq: tunpa qara niraq',
+    '🧑🏾‍🩰' => 'ballet tusuq: tunpa yana qara niraq',
+    '🧑🏿‍🩰' => 'ballet tusuq: yana qara niraq',
     '🧔🏻‍♂' => 'qari: chuya qara niraq, kaki',
     '🧔🏼‍♂' => 'qari: tunpa chuya qara niraq, kaki',
     '🧔🏽‍♂' => 'qari: tunpa qara niraq, kaki',
@@ -1012,6 +1137,16 @@
     '🏃🏽‍♀' => 'warmi phawachkan: tunpa qara niraq',
     '🏃🏾‍♀' => 'warmi phawachkan: tunpa yana qara niraq',
     '🏃🏿‍♀' => 'warmi phawachkan: yana qara niraq',
+    '👯🏻‍♀' => 'warmi quwi ninrikunawan: chuya qara niraq',
+    '👯🏼‍♀' => 'warmi quwi ninrikunawan: tunpa chuya qara niraq',
+    '👯🏽‍♀' => 'warmi quwi ninrikunawan: tunpa qara niraq',
+    '👯🏾‍♀' => 'warmi quwi ninrikunawan: tunpa yana qara niraq',
+    '👯🏿‍♀' => 'warmi quwi ninrikunawan: yana qara niraq',
+    '👯🏻‍♂' => 'runa quwi ninrikunawan: chuya qara niraq',
+    '👯🏼‍♂' => 'runa quwi ninrikunawan: tunpa chuya qara niraq',
+    '👯🏽‍♂' => 'runa quwi ninrikunawan: tunpa qara niraq',
+    '👯🏾‍♂' => 'runa quwi ninrikunawan: tunpa yana qara niraq',
+    '👯🏿‍♂' => 'runa quwi ninrikunawan: yana qara niraq',
     '🧖🏻‍♂' => 'tata wapsi wasipi: chuya qara niraq',
     '🧖🏼‍♂' => 'tata wapsi wasipi: tunpa chuya qara niraq',
     '🧖🏽‍♂' => 'tata wapsi wasipi: tunpa qara niraq',
@@ -1122,6 +1257,16 @@
     '🤸🏽‍♀' => 'warmi gimnasia ruwachkan: tunpa qara niraq',
     '🤸🏾‍♀' => 'warmi gimnasia ruwachkan: tunpa yana qara niraq',
     '🤸🏿‍♀' => 'warmi gimnasia ruwachkan: yana qara niraq',
+    '🤼🏻‍♀' => 'maqanakuq warmi: chuya qara niraq',
+    '🤼🏼‍♀' => 'maqanakuq warmi: tunpa chuya qara niraq',
+    '🤼🏽‍♀' => 'maqanakuq warmi: tunpa qara niraq',
+    '🤼🏾‍♀' => 'maqanakuq warmi: tunpa yana qara niraq',
+    '🤼🏿‍♀' => 'maqanakuq warmi: yana qara niraq',
+    '🤼🏻‍♂' => 'maqanakuq tata: chuya qara niraq',
+    '🤼🏼‍♂' => 'maqanakuq tata: tunpa chuya qara niraq',
+    '🤼🏽‍♂' => 'maqanakuq tata: tunpa qara niraq',
+    '🤼🏾‍♂' => 'maqanakuq tata: tunpa yana qara niraq',
+    '🤼🏿‍♂' => 'maqanakuq tata: yana qara niraq',
     '🤽🏻‍♂' => 'tata Water polo pukllachkan: chuya qara niraq',
     '🤽🏼‍♂' => 'tata Water polo pukllachkan: tunpa chuya qara niraq',
     '🤽🏽‍♂' => 'tata Water polo pukllachkan: tunpa qara niraq',
@@ -1314,6 +1459,7 @@
     '👩‍🦽' => 'warmi manual silla de ruedas',
     '🏃‍♂' => 'tata phawachkan',
     '🏃‍♀' => 'warmi phawachkan',
+    '🧑‍🩰' => 'ballet tusuq',
     '👯‍♂' => 'runa quwi ninrikunawan',
     '👯‍♀' => 'warmi quwi ninrikunawan',
     '🧖‍♂' => 'tata wapsi wasipi',
@@ -1895,6 +2041,11 @@
     '🕴🏽' => 'runa trajepi levitando: tunpa qara niraq',
     '🕴🏾' => 'runa trajepi levitando: tunpa yana qara niraq',
     '🕴🏿' => 'runa trajepi levitando: yana qara niraq',
+    '👯🏻' => 'runakuna quwi ninrikunawan: chuya qara niraq',
+    '👯🏼' => 'runakuna quwi ninrikunawan: tunpa chuya qara niraq',
+    '👯🏽' => 'runakuna quwi ninrikunawan: tunpa qara niraq',
+    '👯🏾' => 'runakuna quwi ninrikunawan: tunpa yana qara niraq',
+    '👯🏿' => 'runakuna quwi ninrikunawan: yana qara niraq',
     '🧖🏻' => 'runa wapsi wasipi: chuya qara niraq',
     '🧖🏼' => 'runa wapsi wasipi: tunpa chuya qara niraq',
     '🧖🏽' => 'runa wapsi wasipi: tunpa qara niraq',
@@ -1960,6 +2111,11 @@
     '🤸🏽' => 'runa gimnasia ruwachkan: tunpa qara niraq',
     '🤸🏾' => 'runa gimnasia ruwachkan: tunpa yana qara niraq',
     '🤸🏿' => 'runa gimnasia ruwachkan: yana qara niraq',
+    '🤼🏻' => 'maqanakuq runa: chuya qara niraq',
+    '🤼🏼' => 'maqanakuq runa: tunpa chuya qara niraq',
+    '🤼🏽' => 'maqanakuq runa: tunpa qara niraq',
+    '🤼🏾' => 'maqanakuq runa: tunpa yana qara niraq',
+    '🤼🏿' => 'maqanakuq runa: yana qara niraq',
     '🤽🏻' => 'runa water polo pukllachkan: chuya qara niraq',
     '🤽🏼' => 'runa water polo pukllachkan: tunpa chuya qara niraq',
     '🤽🏽' => 'runa water polo pukllachkan: tunpa qara niraq',
@@ -2020,8 +2176,6 @@
     '🏽' => 'tunpa qara niraq',
     '🏾' => 'tunpa yana qara niraq',
     '🏿' => 'yana qara niraq',
-    '🪾' => 'sacha manam rapiwan',
-    '🫜' => 'rábano nisqa',
     '😀' => 'kusisqa uya',
     '😃' => 'kusisqa uya hatun ñawikunawan',
     '😄' => 'kusisqa uya kusisqa ñawikunawan',
@@ -2075,6 +2229,7 @@
     '😪' => 'uya puñuywan',
     '🤤' => 'llawsasuru uyu',
     '😴' => 'puñusqa uya',
+    '🫩' => 'ñawi urapi bolsayuq uya',
     '😷' => 'uya barbijowan',
     '🤒' => 'termometrowan uya',
     '🤕' => 'uya manku umawan',
@@ -2101,6 +2256,7 @@
     '😯' => 'chin kasqa uya',
     '😲' => 'añasqa uya',
     '😳' => 'manchakusqa uya',
+    '🫪' => 'distorsionado uya',
     '🥺' => 'uyllasqa uya',
     '🥹' => 'uya wiqikunawan hapisqa',
     '😦' => 'añasqa uya kichasqa simiwan',
@@ -2172,6 +2328,7 @@
     '💋' => 'muchʼa unancha',
     '💯' => 'pachaq chikukuna',
     '💢' => 'phiñakuy unancha',
+    '🫯' => 'maqanakuy phuyu',
     '💥' => 'tupa',
     '💫' => 'muyu muyu',
     '💦' => 'jumpʼi sutukuna',
@@ -2295,6 +2452,7 @@
     '🧞' => 'genio lamparamanta',
     '🧟' => 'zombi',
     '🧌' => 'troll nisqa',
+    '🫈' => 'chukchasapa kawsaq',
     '💆' => 'runa masaje uyapi',
     '💇' => 'runa chukcha rutukuy',
     '🚶' => 'runa purichkan',
@@ -2338,6 +2496,7 @@
     '🫂' => 'runakuna makʼalliwan',
     '👪' => 'kuraq ayllu',
     '👣' => 'yupinay',
+    '🫆' => 'dedopa marcan',
     '🦰' => 'puka chukcha',
     '🦱' => 'qaspa chukcha',
     '🦳' => 'yuraq chukcha',
@@ -2437,6 +2596,7 @@
     '🐳' => 'ballena yakuta chamqachkan',
     '🐋' => 'ballena',
     '🐬' => 'delfin',
+    '🫍' => 'orca',
     '🦭' => 'foca',
     '🐟' => 'challwa',
     '🐠' => 'tropical challwa',
@@ -2446,6 +2606,11 @@
     '🐚' => 'muyusqa churu',
     '🪸' => 'coral nisqa',
     '🪼' => 'medusa',
+    '🦀' => 'cangrejo',
+    '🦞' => 'langosta',
+    '🦐' => 'camaron',
+    '🦑' => 'calamar',
+    '🦪' => 'ostra',
     '🐌' => 'churu',
     '🦋' => 'pillpintu',
     '🐛' => 'khuru',
@@ -2490,6 +2655,7 @@
     '🪹' => 'chusaq qisa',
     '🪺' => 'qisa runtukunawan',
     '🍄' => 'kʼallnpa',
+    '🪾' => 'sacha manam rapiwan',
     '🍇' => 'uwas',
     '🍈' => 'melón',
     '🍉' => 'sandía',
@@ -2526,6 +2692,7 @@
     '🌰' => 'chʼumpi',
     '🫚' => 'jenjibre sapi',
     '🫛' => 'arwijakuna',
+    '🫜' => 'rábano nisqa',
     '🍞' => 'tʼanta',
     '🥐' => 'croissant',
     '🥖' => 'baguette tʼanta',
@@ -2577,11 +2744,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'galleta samipaq',
     '🥡' => 'tawak’uchu aparikuypaq',
-    '🦀' => 'cangrejo',
-    '🦞' => 'langosta',
-    '🦐' => 'camaron',
-    '🦑' => 'calamar',
-    '🦪' => 'ostra',
     '🍦' => 'llampʼu helado',
     '🍧' => 'raspadillo',
     '🍨' => 'helado',
@@ -2632,6 +2794,7 @@
     '🧭' => 'compas',
     '🏔' => 'rit’i urqupi',
     '⛰' => 'urqu',
+    '🛘' => 'allpa kuyuriy',
     '🌋' => 'ariq',
     '🗻' => 'fuji urqi',
     '🏕' => 'tampuchay',
@@ -2753,7 +2916,6 @@
     '🛫' => 'lata pʼisqu luqsina',
     '🛬' => 'lata pʼisqu chayana',
     '🪂' => 'paracaídas',
-    '💺' => 'tiyana',
     '🚁' => 'helicoptero',
     '🚟' => 'warkhusqa ferrocarril',
     '🚠' => 'teleferico urqupi',
@@ -2991,16 +3153,18 @@
     '🎧' => 'audifono',
     '📻' => 'radio',
     '🎷' => 'saxofon',
+    '🎺' => 'trompeta',
+    '🪊' => 'trombón nisqa',
     '🪗' => 'acordion',
     '🎸' => 'guitarra',
     '🎹' => 'teclas musicales',
-    '🎺' => 'trompeta',
     '🎻' => 'violin',
     '🪕' => 'banjo',
     '🥁' => 'tambor',
     '🪘' => 'tambor kullumanta',
     '🪇' => 'maracas',
     '🪈' => 'flauta',
+    '🪉' => 'arpa',
     '📱' => 'apaykachana telefono',
     '📲' => 'apaykachana telefono wachʼiwan',
     '☎' => 'fono',
@@ -3054,8 +3218,9 @@
     '📑' => 'rapi chinpuqkunawan',
     '🔖' => 'chinpuq',
     '🏷' => 'sutichaq',
-    '💰' => 'qulli qipi',
     '🪙' => 'moneda',
+    '💰' => 'qulli qipi',
+    '🪎' => 'qulliwan kufri',
     '💴' => 'yen billete',
     '💵' => 'dolar billete',
     '💶' => 'euro billete',
@@ -3069,30 +3234,113 @@
     '📨' => 'yaykumuq carta',
     '📩' => 'carta wachiwan',
     '📤' => 'lluqsina wandiha',
+    '📥' => 'bandeja de entrada',
+    '📫' => 'wisq’asqa correo caja hoqarisqa banderayuq',
+    '📪' => 'wisq’asqa correo caja uraykachisqa banderayuq',
+    '📬' => 'open mailbox with raised flag',
+    '📭' => 'uraykachisqa banderayuq correo cajata kichay',
     '📮' => 'chaski churana',
+    '🗳' => 'urna caja de voto nisqawan',
     '✏' => 'qillqana',
+    '✒' => 'yana lapisiru',
     '🖋' => 'fuente qillqana',
     '🖊' => 'tintawan qillqana',
     '🖌' => 'pincel',
     '🖍' => 'crayon',
     '📝' => 'qillqa',
+    '💼' => 'maletín',
+    '📁' => 'willañiqi qillqana maytʼu',
+    '📂' => 'willañiqi qillqana maytʼuta kichay',
+    '🗂' => 'tarjeta indis rakiqkuna',
+    '📅' => 'calendario nisqa',
+    '📆' => 'llikisqa calendario nisqa',
+    '🗒' => 'bloc de notas espiral nisqa',
+    '🗓' => 'calendario espiral nisqa',
+    '📇' => 'tarjetapa indisnin',
+    '📈' => 'tabla yapakuq',
+    '📉' => 'tabla pisiyachiq',
+    '📊' => 'tabla de barras nisqa',
+    '📋' => 'portapapeles nisqa',
+    '📌' => 't’ikakuna',
+    '📍' => 'round pushpin',
     '📎' => 'clip rapipaq',
     '🖇' => 'tinkisqa clipkuna rapipaq',
+    '📏' => 'chiqan kamachiq',
+    '📐' => 'kimsa kuchuyuq kamachiq',
+    '✂' => 'kuchuna',
+    '🗃' => 'tarjeta archivo caja',
+    '🗄' => 'file cabinet',
+    '🗑' => 'basura',
     '🔒' => 'harkana',
+    '🔓' => 'mana wichqasqa',
+    '🔏' => 'plumawan wichqasqa',
+    '🔐' => 'llavewan wichqasqa',
     '🔑' => 'kichana',
     '🗝' => 'ñawpa kichana',
+    '🔨' => 'martillo',
+    '⛏' => 'akllay',
+    '⚒' => 'martillowan pilluy',
+    '🛠' => 'martillowan llavewan',
+    '🗡' => 'puñal',
+    '⚔' => 'chakasqa espadakuna',
     '💣' => 'bomba',
+    '🪃' => 'boomerang nisqa',
+    '🏹' => 'bow and arrow',
+    '🛡' => 'harkay',
+    '🪚' => 'carpintería saw',
+    '🔧' => 'llave',
+    '🪛' => 'screwdriver',
+    '🔩' => 'tuerca y perno',
+    '⚙' => 'engranaje',
+    '🗜' => 'abrazadera',
+    '⚖' => 'balanza nisqa escala',
+    '🦯' => 'yuraq kaspi',
     '🔗' => 'tinkina',
     '⛓' => 'cadenakuna',
     '🪝' => 'gancho',
     '🧰' => 'llamkanakuna huñusqa',
     '🧲' => 'magnetu',
     '🪜' => 'escalera nisqa',
+    '🪏' => 'pala',
+    '⚗' => 'hinallataq',
+    '🧪' => 'tubo de prueba nisqa',
+    '🧫' => 'petri plato',
+    '🧬' => 'dna',
     '🔬' => 'microscopio',
     '🔭' => 'telescopio',
+    '📡' => 'satélite nisqamanta antena nisqa',
+    '💉' => 'jeringa nisqa',
+    '🩸' => 'yawar gota',
+    '💊' => 'pastilla',
+    '🩹' => 'vendaje adhesivo nisqa',
+    '🩼' => 'crutch',
+    '🩺' => 'estetoscopio nisqawan',
+    '🩻' => 'x-ray',
     '🚪' => 'punku',
     '🛗' => 'elevador',
     '🪞' => 'espejo',
+    '🪟' => 'wasi tuqu',
+    '🛏' => 'puñuna',
+    '🛋' => 'sofá y lampa',
+    '🪑' => 'tiyana',
+    '🚽' => 'mayllakuna',
+    '🪠' => 'émbolo',
+    '🚿' => 'ducha',
+    '🛁' => 'bañera',
+    '🪤' => 'siwi trampa',
+    '🪒' => 'navajas',
+    '🧴' => 'loción botella',
+    '🧷' => 'seguridad pin',
+    '🧹' => 'pichana',
+    '🧺' => 'canasta',
+    '🧻' => 'rollo de papel',
+    '🪣' => 'cubo',
+    '🧼' => 'jabon',
+    '🫧' => 'bubbles',
+    '🪥' => 'toothbrush',
+    '🧽' => 'sponge',
+    '🧯' => 'fire extinguisher',
+    '🛒' => 'shopping cart',
     '🚬' => 'cigarru',
     '⚰' => 'tawakuchu wañuypaq',
     '🪦' => 'rumi wañusqakunapaq',
@@ -3237,6 +3485,7 @@
     '✴' => 'pusaq ñawpikunawan quyllur',
     '❇' => 'k’anchay',
     '™' => 'waqaychasqa chinpuy',
+    '🫟' => 'salpicay',
     '🔠' => 'latina hatun sananpakuna yaykuy',
     '🔡' => 'latina uchuy sananpakuna yaykuy',
     '🔢' => 'yupaykuna yaykuy',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rhg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rhg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rhg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rhg.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,96 +13,21 @@
     '👩‍👩‍👧‍👦' => '𐴒𐴤𐴡𐴌 𐴒𐴟𐴐𐴧𐴞: 𐴁𐴠𐴍𐴞, 𐴁𐴠𐴍𐴞, 𐴔𐴝𐴘𐴧𐴝, 𐴉𐴟𐴖𐴝',
     '👩‍👩‍👦‍👦' => '𐴒𐴤𐴡𐴌 𐴒𐴟𐴐𐴧𐴞: 𐴁𐴠𐴍𐴞, 𐴁𐴠𐴍𐴞, 𐴉𐴟𐴖𐴝, 𐴉𐴟𐴖𐴝',
     '👩‍👩‍👧‍👧' => '𐴒𐴤𐴡𐴌 𐴒𐴟𐴐𐴧𐴞: 𐴁𐴠𐴍𐴞, 𐴁𐴠𐴍𐴞, 𐴔𐴝𐴘𐴧𐴝, 𐴔𐴝𐴘𐴧𐴝',
-    '🚶🏻‍♀‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏼‍♀‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏽‍♀‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏾‍♀‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏿‍♀‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏻‍♂‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏼‍♂‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏽‍♂‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏾‍♂‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏿‍♂‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏻‍♀‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏼‍♀‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏽‍♀‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏾‍♀‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏿‍♀‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏻‍♂‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏼‍♂‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏽‍♂‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏾‍♂‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏿‍♂‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏻‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏼‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏽‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏾‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏿‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏻‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏼‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏽‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏾‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏿‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏻‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏼‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏽‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏾‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏿‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏻‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏼‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏽‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏾‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏿‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏻‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏼‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏽‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏾‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏿‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏻‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏼‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏽‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏾‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏿‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏻‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏼‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏽‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏾‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑🏿‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏻‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏼‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏽‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏾‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨🏿‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏻‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏼‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏽‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏾‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩🏿‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏻‍♀‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏼‍♀‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏽‍♀‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏾‍♀‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏿‍♀‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏻‍♂‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏼‍♂‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏽‍♂‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏾‍♂‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏿‍♂‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶‍♀‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶‍♂‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎‍♀‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎‍♂‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧑‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👨‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '👩‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃‍♀‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴞 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃‍♂‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴝 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🚶‍♀‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴞: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🚶‍♂‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴁𐴠𐴍𐴝: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🧎‍♀‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴞: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🧎‍♂‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴁𐴠𐴍𐴝: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🧑‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '👨‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴝: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '👩‍🦯‍➡' => '𐴓𐴝𐴍𐴥𐴞 𐴊𐴤𐴡𐴙𐴅𐴧𐴙𐴝 𐴁𐴠𐴍𐴞: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🧑‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '👨‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '👩‍🦼‍➡' => '𐴔𐴡𐴄𐴤𐴡𐴌 𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🧑‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '👨‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴝: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '👩‍🦽‍➡' => '𐴖𐴥𐴠𐴓𐴆𐴤𐴙𐴝𐴌𐴡𐴃𐴢 𐴁𐴡𐴙𐴐𐴧𐴤𐴙𐴝 𐴁𐴠𐴍𐴞: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🏃‍♀‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴞: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🏃‍♂‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴁𐴠𐴍𐴝: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
     '👩‍❤‍👨' => '𐴎𐴟𐴌 𐴀𐴝𐴌 𐴑𐴡𐴓𐴥𐴡𐴁𐴢: 𐴁𐴠𐴍𐴞, 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢',
     '👨‍❤‍👨' => '𐴎𐴟𐴌 𐴀𐴝𐴌 𐴑𐴡𐴓𐴥𐴡𐴁𐴢: 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢, 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢',
     '👩‍❤‍👩' => '𐴎𐴟𐴌 𐴀𐴝𐴌 𐴑𐴡𐴓𐴥𐴡𐴁𐴢: 𐴁𐴠𐴍𐴞, 𐴁𐴠𐴍𐴞',
@@ -120,24 +45,9 @@
     '👩‍👧‍👧' => '𐴒𐴤𐴡𐴌 𐴒𐴟𐴐𐴧𐴞: 𐴁𐴠𐴍𐴞, 𐴔𐴝𐴘𐴧𐴝, 𐴔𐴝𐴘𐴧𐴝',
     '🧑‍🤝‍🧑' => '𐴇𐴥𐴝𐴃𐴠 𐴇𐴥𐴝𐴃𐴠 𐴊𐴤𐴡𐴙𐴅𐴧𐴤𐴙𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 𐴀𐴥𐴡𐴑𐴧𐴡𐴓',
     '🧑‍🧒‍🧒' => '𐴒𐴤𐴡𐴌 𐴒𐴟𐴐𐴧𐴞 - 𐴁𐴝𐴓𐴠𐴑 - 𐴉𐴟𐴖𐴝',
-    '🚶🏻‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏼‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏽‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏾‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶🏿‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏻‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏼‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏽‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏾‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎🏿‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏻‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏼‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏽‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏾‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃🏿‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🚶‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🧎‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
-    '🏃‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢 — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🚶‍➡' => '𐴀𐴥𐴝𐴣𐴍𐴡𐴙𐴕𐴧𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🧎‍➡' => '𐴀𐴝𐴣𐴍𐴥𐴟𐴃𐴢 𐴁𐴤𐴡𐴌𐴊𐴧𐴞𐴘𐴝 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
+    '🏃‍➡' => '𐴊𐴦𐴟𐴣𐴌𐴠𐴌𐴊𐴧𐴠 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢: — 𐴋𐴠𐴕 𐴔𐴟𐴑𐴤𐴝',
     '👨‍👦' => '𐴒𐴤𐴡𐴌 𐴒𐴟𐴐𐴧𐴞: 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢, 𐴉𐴟𐴖𐴝',
     '👨‍👧' => '𐴒𐴤𐴡𐴌 𐴒𐴟𐴐𐴧𐴞: 𐴔𐴝𐴕𐴥𐴟𐴙𐴐𐴢, 𐴔𐴝𐴘𐴧𐴝',
     '👩‍👦' => '𐴒𐴤𐴡𐴌 𐴒𐴟𐴐𐴧𐴞: 𐴁𐴠𐴍𐴞, 𐴉𐴟𐴖𐴝',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rm.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rm.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rm.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rm.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,1007 @@
 <?php
 
 return [
+    '🧑🏻‍❤‍💋‍🧑🏼' => 'bitsch: persuna, persuna, pel clera, pel mez clera',
+    '🧑🏻‍❤‍💋‍🧑🏽' => 'bitsch: persuna, persuna, pel clera, pel media',
+    '🧑🏻‍❤‍💋‍🧑🏾' => 'bitsch: persuna, persuna, pel clera, pel mez stgira',
+    '🧑🏻‍❤‍💋‍🧑🏿' => 'bitsch: persuna, persuna, pel clera, pel stgira',
+    '🧑🏼‍❤‍💋‍🧑🏻' => 'bitsch: persuna, persuna, pel mez clera, pel clera',
+    '🧑🏼‍❤‍💋‍🧑🏽' => 'bitsch: persuna, persuna, pel mez clera, pel media',
+    '🧑🏼‍❤‍💋‍🧑🏾' => 'bitsch: persuna, persuna, pel mez clera, pel mez stgira',
+    '🧑🏼‍❤‍💋‍🧑🏿' => 'bitsch: persuna, persuna, pel mez clera, pel stgira',
+    '🧑🏽‍❤‍💋‍🧑🏻' => 'bitsch: persuna, persuna, pel media, pel clera',
+    '🧑🏽‍❤‍💋‍🧑🏼' => 'bitsch: persuna, persuna, pel media, pel mez clera',
+    '🧑🏽‍❤‍💋‍🧑🏾' => 'bitsch: persuna, persuna, pel media, pel mez stgira',
+    '🧑🏽‍❤‍💋‍🧑🏿' => 'bitsch: persuna, persuna, pel media, pel stgira',
+    '🧑🏾‍❤‍💋‍🧑🏻' => 'bitsch: persuna, persuna, pel mez stgira, pel clera',
+    '🧑🏾‍❤‍💋‍🧑🏼' => 'bitsch: persuna, persuna, pel mez stgira, pel mez clera',
+    '🧑🏾‍❤‍💋‍🧑🏽' => 'bitsch: persuna, persuna, pel mez stgira, pel media',
+    '🧑🏾‍❤‍💋‍🧑🏿' => 'bitsch: persuna, persuna, pel mez stgira, pel stgira',
+    '🧑🏿‍❤‍💋‍🧑🏻' => 'bitsch: persuna, persuna, pel stgira, pel clera',
+    '🧑🏿‍❤‍💋‍🧑🏼' => 'bitsch: persuna, persuna, pel stgira, pel mez clera',
+    '🧑🏿‍❤‍💋‍🧑🏽' => 'bitsch: persuna, persuna, pel stgira, pel media',
+    '🧑🏿‍❤‍💋‍🧑🏾' => 'bitsch: persuna, persuna, pel stgira, pel mez stgira',
+    '👨🏻‍❤‍💋‍👨🏻' => 'bitsch: um, um, pel clera',
+    '👨🏻‍❤‍💋‍👨🏼' => 'bitsch: um, um, pel clera, pel mez clera',
+    '👨🏻‍❤‍💋‍👨🏽' => 'bitsch: um, um, pel clera, pel media',
+    '👨🏻‍❤‍💋‍👨🏾' => 'bitsch: um, um, pel clera, pel mez stgira',
+    '👨🏻‍❤‍💋‍👨🏿' => 'bitsch: um, um, pel clera, pel stgira',
+    '👨🏼‍❤‍💋‍👨🏻' => 'bitsch: um, um, pel mez clera, pel clera',
+    '👨🏼‍❤‍💋‍👨🏼' => 'bitsch: um, um, pel mez clera',
+    '👨🏼‍❤‍💋‍👨🏽' => 'bitsch: um, um, pel mez clera, pel media',
+    '👨🏼‍❤‍💋‍👨🏾' => 'bitsch: um, um, pel mez clera, pel mez stgira',
+    '👨🏼‍❤‍💋‍👨🏿' => 'bitsch: um, um, pel mez clera, pel stgira',
+    '👨🏽‍❤‍💋‍👨🏻' => 'bitsch: um, um, pel media, pel clera',
+    '👨🏽‍❤‍💋‍👨🏼' => 'bitsch: um, um, pel media, pel mez clera',
+    '👨🏽‍❤‍💋‍👨🏽' => 'bitsch: um, um, pel media',
+    '👨🏽‍❤‍💋‍👨🏾' => 'bitsch: um, um, pel media, pel mez stgira',
+    '👨🏽‍❤‍💋‍👨🏿' => 'bitsch: um, um, pel media, pel stgira',
+    '👨🏾‍❤‍💋‍👨🏻' => 'bitsch: um, um, pel mez stgira, pel clera',
+    '👨🏾‍❤‍💋‍👨🏼' => 'bitsch: um, um, pel mez stgira, pel mez clera',
+    '👨🏾‍❤‍💋‍👨🏽' => 'bitsch: um, um, pel mez stgira, pel media',
+    '👨🏾‍❤‍💋‍👨🏾' => 'bitsch: um, um, pel mez stgira',
+    '👨🏾‍❤‍💋‍👨🏿' => 'bitsch: um, um, pel mez stgira, pel stgira',
+    '👨🏿‍❤‍💋‍👨🏻' => 'bitsch: um, um, pel stgira, pel clera',
+    '👨🏿‍❤‍💋‍👨🏼' => 'bitsch: um, um, pel stgira, pel mez clera',
+    '👨🏿‍❤‍💋‍👨🏽' => 'bitsch: um, um, pel stgira, pel media',
+    '👨🏿‍❤‍💋‍👨🏾' => 'bitsch: um, um, pel stgira, pel mez stgira',
+    '👨🏿‍❤‍💋‍👨🏿' => 'bitsch: um, um, pel stgira',
+    '👩🏻‍❤‍💋‍👨🏻' => 'bitsch: dunna, um, pel clera',
+    '👩🏻‍❤‍💋‍👨🏼' => 'bitsch: dunna, um, pel clera, pel mez clera',
+    '👩🏻‍❤‍💋‍👨🏽' => 'bitsch: dunna, um, pel clera, pel media',
+    '👩🏻‍❤‍💋‍👨🏾' => 'bitsch: dunna, um, pel clera, pel mez stgira',
+    '👩🏻‍❤‍💋‍👨🏿' => 'bitsch: dunna, um, pel clera, pel stgira',
+    '👩🏼‍❤‍💋‍👨🏻' => 'bitsch: dunna, um, pel mez clera, pel clera',
+    '👩🏼‍❤‍💋‍👨🏼' => 'bitsch: dunna, um, pel mez clera',
+    '👩🏼‍❤‍💋‍👨🏽' => 'bitsch: dunna, um, pel mez clera, pel media',
+    '👩🏼‍❤‍💋‍👨🏾' => 'bitsch: dunna, um, pel mez clera, pel mez stgira',
+    '👩🏼‍❤‍💋‍👨🏿' => 'bitsch: dunna, um, pel mez clera, pel stgira',
+    '👩🏽‍❤‍💋‍👨🏻' => 'bitsch: dunna, um, pel media, pel clera',
+    '👩🏽‍❤‍💋‍👨🏼' => 'bitsch: dunna, um, pel media, pel mez clera',
+    '👩🏽‍❤‍💋‍👨🏽' => 'bitsch: dunna, um, pel media',
+    '👩🏽‍❤‍💋‍👨🏾' => 'bitsch: dunna, um, pel media, pel mez stgira',
+    '👩🏽‍❤‍💋‍👨🏿' => 'bitsch: dunna, um, pel media, pel stgira',
+    '👩🏾‍❤‍💋‍👨🏻' => 'bitsch: dunna, um, pel mez stgira, pel clera',
+    '👩🏾‍❤‍💋‍👨🏼' => 'bitsch: dunna, um, pel mez stgira, pel mez clera',
+    '👩🏾‍❤‍💋‍👨🏽' => 'bitsch: dunna, um, pel mez stgira, pel media',
+    '👩🏾‍❤‍💋‍👨🏾' => 'bitsch: dunna, um, pel mez stgira',
+    '👩🏾‍❤‍💋‍👨🏿' => 'bitsch: dunna, um, pel mez stgira, pel stgira',
+    '👩🏿‍❤‍💋‍👨🏻' => 'bitsch: dunna, um, pel stgira, pel clera',
+    '👩🏿‍❤‍💋‍👨🏼' => 'bitsch: dunna, um, pel stgira, pel mez clera',
+    '👩🏿‍❤‍💋‍👨🏽' => 'bitsch: dunna, um, pel stgira, pel media',
+    '👩🏿‍❤‍💋‍👨🏾' => 'bitsch: dunna, um, pel stgira, pel mez stgira',
+    '👩🏿‍❤‍💋‍👨🏿' => 'bitsch: dunna, um, pel stgira',
+    '👩🏻‍❤‍💋‍👩🏻' => 'bitsch: dunna, dunna, pel clera',
+    '👩🏻‍❤‍💋‍👩🏼' => 'bitsch: dunna, dunna, pel clera, pel mez clera',
+    '👩🏻‍❤‍💋‍👩🏽' => 'bitsch: dunna, dunna, pel clera, pel media',
+    '👩🏻‍❤‍💋‍👩🏾' => 'bitsch: dunna, dunna, pel clera, pel mez stgira',
+    '👩🏻‍❤‍💋‍👩🏿' => 'bitsch: dunna, dunna, pel clera, pel stgira',
+    '👩🏼‍❤‍💋‍👩🏻' => 'bitsch: dunna, dunna, pel mez clera, pel clera',
+    '👩🏼‍❤‍💋‍👩🏼' => 'bitsch: dunna, dunna, pel mez clera',
+    '👩🏼‍❤‍💋‍👩🏽' => 'bitsch: dunna, dunna, pel mez clera, pel media',
+    '👩🏼‍❤‍💋‍👩🏾' => 'bitsch: dunna, dunna, pel mez clera, pel mez stgira',
+    '👩🏼‍❤‍💋‍👩🏿' => 'bitsch: dunna, dunna, pel mez clera, pel stgira',
+    '👩🏽‍❤‍💋‍👩🏻' => 'bitsch: dunna, dunna, pel media, pel clera',
+    '👩🏽‍❤‍💋‍👩🏼' => 'bitsch: dunna, dunna, pel media, pel mez clera',
+    '👩🏽‍❤‍💋‍👩🏽' => 'bitsch: dunna, dunna, pel media',
+    '👩🏽‍❤‍💋‍👩🏾' => 'bitsch: dunna, dunna, pel media, pel mez stgira',
+    '👩🏽‍❤‍💋‍👩🏿' => 'bitsch: dunna, dunna, pel media, pel stgira',
+    '👩🏾‍❤‍💋‍👩🏻' => 'bitsch: dunna, dunna, pel mez stgira, pel clera',
+    '👩🏾‍❤‍💋‍👩🏼' => 'bitsch: dunna, dunna, pel mez stgira, pel mez clera',
+    '👩🏾‍❤‍💋‍👩🏽' => 'bitsch: dunna, dunna, pel mez stgira, pel media',
+    '👩🏾‍❤‍💋‍👩🏾' => 'bitsch: dunna, dunna, pel mez stgira',
+    '👩🏾‍❤‍💋‍👩🏿' => 'bitsch: dunna, dunna, pel mez stgira, pel stgira',
+    '👩🏿‍❤‍💋‍👩🏻' => 'bitsch: dunna, dunna, pel stgira, pel clera',
+    '👩🏿‍❤‍💋‍👩🏼' => 'bitsch: dunna, dunna, pel stgira, pel mez clera',
+    '👩🏿‍❤‍💋‍👩🏽' => 'bitsch: dunna, dunna, pel stgira, pel media',
+    '👩🏿‍❤‍💋‍👩🏾' => 'bitsch: dunna, dunna, pel stgira, pel mez stgira',
+    '👩🏿‍❤‍💋‍👩🏿' => 'bitsch: dunna, dunna, pel stgira',
+    '🧑🏻‍🫯‍🧑🏼' => 'persunas che lutgan: pel clera, pel mez clera',
+    '🧑🏻‍🫯‍🧑🏽' => 'persunas che lutgan: pel clera, pel media',
+    '🧑🏻‍🫯‍🧑🏾' => 'persunas che lutgan: pel clera, pel mez stgira',
+    '🧑🏻‍🫯‍🧑🏿' => 'persunas che lutgan: pel clera, pel stgira',
+    '🧑🏼‍🫯‍🧑🏻' => 'persunas che lutgan: pel mez clera, pel clera',
+    '🧑🏼‍🫯‍🧑🏽' => 'persunas che lutgan: pel mez clera, pel media',
+    '🧑🏼‍🫯‍🧑🏾' => 'persunas che lutgan: pel mez clera, pel mez stgira',
+    '🧑🏼‍🫯‍🧑🏿' => 'persunas che lutgan: pel mez clera, pel stgira',
+    '🧑🏽‍🫯‍🧑🏻' => 'persunas che lutgan: pel media, pel clera',
+    '🧑🏽‍🫯‍🧑🏼' => 'persunas che lutgan: pel media, pel mez clera',
+    '🧑🏽‍🫯‍🧑🏾' => 'persunas che lutgan: pel media, pel mez stgira',
+    '🧑🏽‍🫯‍🧑🏿' => 'persunas che lutgan: pel media, pel stgira',
+    '🧑🏾‍🫯‍🧑🏻' => 'persunas che lutgan: pel mez stgira, pel clera',
+    '🧑🏾‍🫯‍🧑🏼' => 'persunas che lutgan: pel mez stgira, pel mez clera',
+    '🧑🏾‍🫯‍🧑🏽' => 'persunas che lutgan: pel mez stgira, pel media',
+    '🧑🏾‍🫯‍🧑🏿' => 'persunas che lutgan: pel mez stgira, pel stgira',
+    '🧑🏿‍🫯‍🧑🏻' => 'persunas che lutgan: pel stgira, pel clera',
+    '🧑🏿‍🫯‍🧑🏼' => 'persunas che lutgan: pel stgira, pel mez clera',
+    '🧑🏿‍🫯‍🧑🏽' => 'persunas che lutgan: pel stgira, pel media',
+    '🧑🏿‍🫯‍🧑🏾' => 'persunas che lutgan: pel stgira, pel mez stgira',
+    '🧑🏻‍❤‍🧑🏼' => 'pèr cun cor: persuna, persuna, pel clera, pel mez clera',
+    '🧑🏻‍❤‍🧑🏽' => 'pèr cun cor: persuna, persuna, pel clera, pel media',
+    '🧑🏻‍❤‍🧑🏾' => 'pèr cun cor: persuna, persuna, pel clera, pel mez stgira',
+    '🧑🏻‍❤‍🧑🏿' => 'pèr cun cor: persuna, persuna, pel clera, pel stgira',
+    '🧑🏼‍❤‍🧑🏻' => 'pèr cun cor: persuna, persuna, pel mez clera, pel clera',
+    '🧑🏼‍❤‍🧑🏽' => 'pèr cun cor: persuna, persuna, pel mez clera, pel media',
+    '🧑🏼‍❤‍🧑🏾' => 'pèr cun cor: persuna, persuna, pel mez clera, pel mez stgira',
+    '🧑🏼‍❤‍🧑🏿' => 'pèr cun cor: persuna, persuna, pel mez clera, pel stgira',
+    '🧑🏽‍❤‍🧑🏻' => 'pèr cun cor: persuna, persuna, pel media, pel clera',
+    '🧑🏽‍❤‍🧑🏼' => 'pèr cun cor: persuna, persuna, pel media, pel mez clera',
+    '🧑🏽‍❤‍🧑🏾' => 'pèr cun cor: persuna, persuna, pel media, pel mez stgira',
+    '🧑🏽‍❤‍🧑🏿' => 'pèr cun cor: persuna, persuna, pel media, pel stgira',
+    '🧑🏾‍❤‍🧑🏻' => 'pèr cun cor: persuna, persuna, pel mez stgira, pel clera',
+    '🧑🏾‍❤‍🧑🏼' => 'pèr cun cor: persuna, persuna, pel mez stgira, pel mez clera',
+    '🧑🏾‍❤‍🧑🏽' => 'pèr cun cor: persuna, persuna, pel mez stgira, pel media',
+    '🧑🏾‍❤‍🧑🏿' => 'pèr cun cor: persuna, persuna, pel mez stgira, pel stgira',
+    '🧑🏿‍❤‍🧑🏻' => 'pèr cun cor: persuna, persuna, pel stgira, pel clera',
+    '🧑🏿‍❤‍🧑🏼' => 'pèr cun cor: persuna, persuna, pel stgira, pel mez clera',
+    '🧑🏿‍❤‍🧑🏽' => 'pèr cun cor: persuna, persuna, pel stgira, pel media',
+    '🧑🏿‍❤‍🧑🏾' => 'pèr cun cor: persuna, persuna, pel stgira, pel mez stgira',
+    '🧑🏻‍🐰‍🧑🏼' => 'persunas cun ureglias da lieur: pel clera, pel mez clera',
+    '🧑🏻‍🐰‍🧑🏽' => 'persunas cun ureglias da lieur: pel clera, pel media',
+    '🧑🏻‍🐰‍🧑🏾' => 'persunas cun ureglias da lieur: pel clera, pel mez stgira',
+    '🧑🏻‍🐰‍🧑🏿' => 'persunas cun ureglias da lieur: pel clera, pel stgira',
+    '🧑🏼‍🐰‍🧑🏻' => 'persunas cun ureglias da lieur: pel mez clera, pel clera',
+    '🧑🏼‍🐰‍🧑🏽' => 'persunas cun ureglias da lieur: pel mez clera, pel media',
+    '🧑🏼‍🐰‍🧑🏾' => 'persunas cun ureglias da lieur: pel mez clera, pel mez stgira',
+    '🧑🏼‍🐰‍🧑🏿' => 'persunas cun ureglias da lieur: pel mez clera, pel stgira',
+    '🧑🏽‍🐰‍🧑🏻' => 'persunas cun ureglias da lieur: pel media, pel clera',
+    '🧑🏽‍🐰‍🧑🏼' => 'persunas cun ureglias da lieur: pel media, pel mez clera',
+    '🧑🏽‍🐰‍🧑🏾' => 'persunas cun ureglias da lieur: pel media, pel mez stgira',
+    '🧑🏽‍🐰‍🧑🏿' => 'persunas cun ureglias da lieur: pel media, pel stgira',
+    '🧑🏾‍🐰‍🧑🏻' => 'persunas cun ureglias da lieur: pel mez stgira, pel clera',
+    '🧑🏾‍🐰‍🧑🏼' => 'persunas cun ureglias da lieur: pel mez stgira, pel mez clera',
+    '🧑🏾‍🐰‍🧑🏽' => 'persunas cun ureglias da lieur: pel mez stgira, pel media',
+    '🧑🏾‍🐰‍🧑🏿' => 'persunas cun ureglias da lieur: pel mez stgira, pel stgira',
+    '🧑🏿‍🐰‍🧑🏻' => 'persunas cun ureglias da lieur: pel stgira, pel clera',
+    '🧑🏿‍🐰‍🧑🏼' => 'persunas cun ureglias da lieur: pel stgira, pel mez clera',
+    '🧑🏿‍🐰‍🧑🏽' => 'persunas cun ureglias da lieur: pel stgira, pel media',
+    '🧑🏿‍🐰‍🧑🏾' => 'persunas cun ureglias da lieur: pel stgira, pel mez stgira',
+    '👨🏻‍🫯‍👨🏼' => 'umens che lutgan: pel clera, pel mez clera',
+    '👨🏻‍🫯‍👨🏽' => 'umens che lutgan: pel clera, pel media',
+    '👨🏻‍🫯‍👨🏾' => 'umens che lutgan: pel clera, pel mez stgira',
+    '👨🏻‍🫯‍👨🏿' => 'umens che lutgan: pel clera, pel stgira',
+    '👨🏼‍🫯‍👨🏻' => 'umens che lutgan: pel mez clera, pel clera',
+    '👨🏼‍🫯‍👨🏽' => 'umens che lutgan: pel mez clera, pel media',
+    '👨🏼‍🫯‍👨🏾' => 'umens che lutgan: pel mez clera, pel mez stgira',
+    '👨🏼‍🫯‍👨🏿' => 'umens che lutgan: pel mez clera, pel stgira',
+    '👨🏽‍🫯‍👨🏻' => 'umens che lutgan: pel media, pel clera',
+    '👨🏽‍🫯‍👨🏼' => 'umens che lutgan: pel media, pel mez clera',
+    '👨🏽‍🫯‍👨🏾' => 'umens che lutgan: pel media, pel mez stgira',
+    '👨🏽‍🫯‍👨🏿' => 'umens che lutgan: pel media, pel stgira',
+    '👨🏾‍🫯‍👨🏻' => 'umens che lutgan: pel mez stgira, pel clera',
+    '👨🏾‍🫯‍👨🏼' => 'umens che lutgan: pel mez stgira, pel mez clera',
+    '👨🏾‍🫯‍👨🏽' => 'umens che lutgan: pel mez stgira, pel media',
+    '👨🏾‍🫯‍👨🏿' => 'umens che lutgan: pel mez stgira, pel stgira',
+    '👨🏿‍🫯‍👨🏻' => 'umens che lutgan: pel stgira, pel clera',
+    '👨🏿‍🫯‍👨🏼' => 'umens che lutgan: pel stgira, pel mez clera',
+    '👨🏿‍🫯‍👨🏽' => 'umens che lutgan: pel stgira, pel media',
+    '👨🏿‍🫯‍👨🏾' => 'umens che lutgan: pel stgira, pel mez stgira',
+    '👨🏻‍❤‍👨🏻' => 'pèr cun cor: um, um, pel clera',
+    '👨🏻‍❤‍👨🏼' => 'pèr cun cor: um, um, pel clera, pel mez clera',
+    '👨🏻‍❤‍👨🏽' => 'pèr cun cor: um, um, pel clera, pel media',
+    '👨🏻‍❤‍👨🏾' => 'pèr cun cor: um, um, pel clera, pel mez stgira',
+    '👨🏻‍❤‍👨🏿' => 'pèr cun cor: um, um, pel clera, pel stgira',
+    '👨🏼‍❤‍👨🏻' => 'pèr cun cor: um, um, pel mez clera, pel clera',
+    '👨🏼‍❤‍👨🏼' => 'pèr cun cor: um, um, pel mez clera',
+    '👨🏼‍❤‍👨🏽' => 'pèr cun cor: um, um, pel mez clera, pel media',
+    '👨🏼‍❤‍👨🏾' => 'pèr cun cor: um, um, pel mez clera, pel mez stgira',
+    '👨🏼‍❤‍👨🏿' => 'pèr cun cor: um, um, pel mez clera, pel stgira',
+    '👨🏽‍❤‍👨🏻' => 'pèr cun cor: um, um, pel media, pel clera',
+    '👨🏽‍❤‍👨🏼' => 'pèr cun cor: um, um, pel media, pel mez clera',
+    '👨🏽‍❤‍👨🏽' => 'pèr cun cor: um, um, pel media',
+    '👨🏽‍❤‍👨🏾' => 'pèr cun cor: um, um, pel media, pel mez stgira',
+    '👨🏽‍❤‍👨🏿' => 'pèr cun cor: um, um, pel media, pel stgira',
+    '👨🏾‍❤‍👨🏻' => 'pèr cun cor: um, um, pel mez stgira, pel clera',
+    '👨🏾‍❤‍👨🏼' => 'pèr cun cor: um, um, pel mez stgira, pel mez clera',
+    '👨🏾‍❤‍👨🏽' => 'pèr cun cor: um, um, pel mez stgira, pel media',
+    '👨🏾‍❤‍👨🏾' => 'pèr cun cor: um, um, pel mez stgira',
+    '👨🏾‍❤‍👨🏿' => 'pèr cun cor: um, um, pel mez stgira, pel stgira',
+    '👨🏿‍❤‍👨🏻' => 'pèr cun cor: um, um, pel stgira, pel clera',
+    '👨🏿‍❤‍👨🏼' => 'pèr cun cor: um, um, pel stgira, pel mez clera',
+    '👨🏿‍❤‍👨🏽' => 'pèr cun cor: um, um, pel stgira, pel media',
+    '👨🏿‍❤‍👨🏾' => 'pèr cun cor: um, um, pel stgira, pel mez stgira',
+    '👨🏿‍❤‍👨🏿' => 'pèr cun cor: um, um, pel stgira',
+    '👨🏻‍🐰‍👨🏼' => 'umens cun ureglias da lieur: pel clera, pel mez clera',
+    '👨🏻‍🐰‍👨🏽' => 'umens cun ureglias da lieur: pel clera, pel media',
+    '👨🏻‍🐰‍👨🏾' => 'umens cun ureglias da lieur: pel clera, pel mez stgira',
+    '👨🏻‍🐰‍👨🏿' => 'umens cun ureglias da lieur: pel clera, pel stgira',
+    '👨🏼‍🐰‍👨🏻' => 'umens cun ureglias da lieur: pel mez clera, pel clera',
+    '👨🏼‍🐰‍👨🏽' => 'umens cun ureglias da lieur: pel mez clera, pel media',
+    '👨🏼‍🐰‍👨🏾' => 'umens cun ureglias da lieur: pel mez clera, pel mez stgira',
+    '👨🏼‍🐰‍👨🏿' => 'umens cun ureglias da lieur: pel mez clera, pel stgira',
+    '👨🏽‍🐰‍👨🏻' => 'umens cun ureglias da lieur: pel media, pel clera',
+    '👨🏽‍🐰‍👨🏼' => 'umens cun ureglias da lieur: pel media, pel mez clera',
+    '👨🏽‍🐰‍👨🏾' => 'umens cun ureglias da lieur: pel media, pel mez stgira',
+    '👨🏽‍🐰‍👨🏿' => 'umens cun ureglias da lieur: pel media, pel stgira',
+    '👨🏾‍🐰‍👨🏻' => 'umens cun ureglias da lieur: pel mez stgira, pel clera',
+    '👨🏾‍🐰‍👨🏼' => 'umens cun ureglias da lieur: pel mez stgira, pel mez clera',
+    '👨🏾‍🐰‍👨🏽' => 'umens cun ureglias da lieur: pel mez stgira, pel media',
+    '👨🏾‍🐰‍👨🏿' => 'umens cun ureglias da lieur: pel mez stgira, pel stgira',
+    '👨🏿‍🐰‍👨🏻' => 'umens cun ureglias da lieur: pel stgira, pel clera',
+    '👨🏿‍🐰‍👨🏼' => 'umens cun ureglias da lieur: pel stgira, pel mez clera',
+    '👨🏿‍🐰‍👨🏽' => 'umens cun ureglias da lieur: pel stgira, pel media',
+    '👨🏿‍🐰‍👨🏾' => 'umens cun ureglias da lieur: pel stgira, pel mez stgira',
+    '👩🏻‍🫯‍👩🏼' => 'dunnas che lutgan: pel clera, pel mez clera',
+    '👩🏻‍🫯‍👩🏽' => 'dunnas che lutgan: pel clera, pel media',
+    '👩🏻‍🫯‍👩🏾' => 'dunnas che lutgan: pel clera, pel mez stgira',
+    '👩🏻‍🫯‍👩🏿' => 'dunnas che lutgan: pel clera, pel stgira',
+    '👩🏼‍🫯‍👩🏻' => 'dunnas che lutgan: pel mez clera, pel clera',
+    '👩🏼‍🫯‍👩🏽' => 'dunnas che lutgan: pel mez clera, pel media',
+    '👩🏼‍🫯‍👩🏾' => 'dunnas che lutgan: pel mez clera, pel mez stgira',
+    '👩🏼‍🫯‍👩🏿' => 'dunnas che lutgan: pel mez clera, pel stgira',
+    '👩🏽‍🫯‍👩🏻' => 'dunnas che lutgan: pel media, pel clera',
+    '👩🏽‍🫯‍👩🏼' => 'dunnas che lutgan: pel media, pel mez clera',
+    '👩🏽‍🫯‍👩🏾' => 'dunnas che lutgan: pel media, pel mez stgira',
+    '👩🏽‍🫯‍👩🏿' => 'dunnas che lutgan: pel media, pel stgira',
+    '👩🏾‍🫯‍👩🏻' => 'dunnas che lutgan: pel mez stgira, pel clera',
+    '👩🏾‍🫯‍👩🏼' => 'dunnas che lutgan: pel mez stgira, pel mez clera',
+    '👩🏾‍🫯‍👩🏽' => 'dunnas che lutgan: pel mez stgira, pel media',
+    '👩🏾‍🫯‍👩🏿' => 'dunnas che lutgan: pel mez stgira, pel stgira',
+    '👩🏿‍🫯‍👩🏻' => 'dunnas che lutgan: pel stgira, pel clera',
+    '👩🏿‍🫯‍👩🏼' => 'dunnas che lutgan: pel stgira, pel mez clera',
+    '👩🏿‍🫯‍👩🏽' => 'dunnas che lutgan: pel stgira, pel media',
+    '👩🏿‍🫯‍👩🏾' => 'dunnas che lutgan: pel stgira, pel mez stgira',
+    '👩🏻‍❤‍👨🏻' => 'pèr cun cor: dunna, um, pel clera',
+    '👩🏻‍❤‍👨🏼' => 'pèr cun cor: dunna, um, pel clera, pel mez clera',
+    '👩🏻‍❤‍👨🏽' => 'pèr cun cor: dunna, um, pel clera, pel media',
+    '👩🏻‍❤‍👨🏾' => 'pèr cun cor: dunna, um, pel clera, pel mez stgira',
+    '👩🏻‍❤‍👨🏿' => 'pèr cun cor: dunna, um, pel clera, pel stgira',
+    '👩🏼‍❤‍👨🏻' => 'pèr cun cor: dunna, um, pel mez clera, pel clera',
+    '👩🏼‍❤‍👨🏼' => 'pèr cun cor: dunna, um, pel mez clera',
+    '👩🏼‍❤‍👨🏽' => 'pèr cun cor: dunna, um, pel mez clera, pel media',
+    '👩🏼‍❤‍👨🏾' => 'pèr cun cor: dunna, um, pel mez clera, pel mez stgira',
+    '👩🏼‍❤‍👨🏿' => 'pèr cun cor: dunna, um, pel mez clera, pel stgira',
+    '👩🏽‍❤‍👨🏻' => 'pèr cun cor: dunna, um, pel media, pel clera',
+    '👩🏽‍❤‍👨🏼' => 'pèr cun cor: dunna, um, pel media, pel mez clera',
+    '👩🏽‍❤‍👨🏽' => 'pèr cun cor: dunna, um, pel media',
+    '👩🏽‍❤‍👨🏾' => 'pèr cun cor: dunna, um, pel media, pel mez stgira',
+    '👩🏽‍❤‍👨🏿' => 'pèr cun cor: dunna, um, pel media, pel stgira',
+    '👩🏾‍❤‍👨🏻' => 'pèr cun cor: dunna, um, pel mez stgira, pel clera',
+    '👩🏾‍❤‍👨🏼' => 'pèr cun cor: dunna, um, pel mez stgira, pel mez clera',
+    '👩🏾‍❤‍👨🏽' => 'pèr cun cor: dunna, um, pel mez stgira, pel media',
+    '👩🏾‍❤‍👨🏾' => 'pèr cun cor: dunna, um, pel mez stgira',
+    '👩🏾‍❤‍👨🏿' => 'pèr cun cor: dunna, um, pel mez stgira, pel stgira',
+    '👩🏿‍❤‍👨🏻' => 'pèr cun cor: dunna, um, pel stgira, pel clera',
+    '👩🏿‍❤‍👨🏼' => 'pèr cun cor: dunna, um, pel stgira, pel mez clera',
+    '👩🏿‍❤‍👨🏽' => 'pèr cun cor: dunna, um, pel stgira, pel media',
+    '👩🏿‍❤‍👨🏾' => 'pèr cun cor: dunna, um, pel stgira, pel mez stgira',
+    '👩🏿‍❤‍👨🏿' => 'pèr cun cor: dunna, um, pel stgira',
+    '👩🏻‍❤‍👩🏻' => 'pèr cun cor: dunna, dunna, pel clera',
+    '👩🏻‍❤‍👩🏼' => 'pèr cun cor: dunna, dunna, pel clera, pel mez clera',
+    '👩🏻‍❤‍👩🏽' => 'pèr cun cor: dunna, dunna, pel clera, pel media',
+    '👩🏻‍❤‍👩🏾' => 'pèr cun cor: dunna, dunna, pel clera, pel mez stgira',
+    '👩🏻‍❤‍👩🏿' => 'pèr cun cor: dunna, dunna, pel clera, pel stgira',
+    '👩🏼‍❤‍👩🏻' => 'pèr cun cor: dunna, dunna, pel mez clera, pel clera',
+    '👩🏼‍❤‍👩🏼' => 'pèr cun cor: dunna, dunna, pel mez clera',
+    '👩🏼‍❤‍👩🏽' => 'pèr cun cor: dunna, dunna, pel mez clera, pel media',
+    '👩🏼‍❤‍👩🏾' => 'pèr cun cor: dunna, dunna, pel mez clera, pel mez stgira',
+    '👩🏼‍❤‍👩🏿' => 'pèr cun cor: dunna, dunna, pel mez clera, pel stgira',
+    '👩🏽‍❤‍👩🏻' => 'pèr cun cor: dunna, dunna, pel media, pel clera',
+    '👩🏽‍❤‍👩🏼' => 'pèr cun cor: dunna, dunna, pel media, pel mez clera',
+    '👩🏽‍❤‍👩🏽' => 'pèr cun cor: dunna, dunna, pel media',
+    '👩🏽‍❤‍👩🏾' => 'pèr cun cor: dunna, dunna, pel media, pel mez stgira',
+    '👩🏽‍❤‍👩🏿' => 'pèr cun cor: dunna, dunna, pel media, pel stgira',
+    '👩🏾‍❤‍👩🏻' => 'pèr cun cor: dunna, dunna, pel mez stgira, pel clera',
+    '👩🏾‍❤‍👩🏼' => 'pèr cun cor: dunna, dunna, pel mez stgira, pel mez clera',
+    '👩🏾‍❤‍👩🏽' => 'pèr cun cor: dunna, dunna, pel mez stgira, pel media',
+    '👩🏾‍❤‍👩🏾' => 'pèr cun cor: dunna, dunna, pel mez stgira',
+    '👩🏾‍❤‍👩🏿' => 'pèr cun cor: dunna, dunna, pel mez stgira, pel stgira',
+    '👩🏿‍❤‍👩🏻' => 'pèr cun cor: dunna, dunna, pel stgira, pel clera',
+    '👩🏿‍❤‍👩🏼' => 'pèr cun cor: dunna, dunna, pel stgira, pel mez clera',
+    '👩🏿‍❤‍👩🏽' => 'pèr cun cor: dunna, dunna, pel stgira, pel media',
+    '👩🏿‍❤‍👩🏾' => 'pèr cun cor: dunna, dunna, pel stgira, pel mez stgira',
+    '👩🏿‍❤‍👩🏿' => 'pèr cun cor: dunna, dunna, pel stgira',
+    '👩🏻‍🐰‍👩🏼' => 'dunnas cun ureglias da lieur: pel clera, pel mez clera',
+    '👩🏻‍🐰‍👩🏽' => 'dunnas cun ureglias da lieur: pel clera, pel media',
+    '👩🏻‍🐰‍👩🏾' => 'dunnas cun ureglias da lieur: pel clera, pel mez stgira',
+    '👩🏻‍🐰‍👩🏿' => 'dunnas cun ureglias da lieur: pel clera, pel stgira',
+    '👩🏼‍🐰‍👩🏻' => 'dunnas cun ureglias da lieur: pel mez clera, pel clera',
+    '👩🏼‍🐰‍👩🏽' => 'dunnas cun ureglias da lieur: pel mez clera, pel media',
+    '👩🏼‍🐰‍👩🏾' => 'dunnas cun ureglias da lieur: pel mez clera, pel mez stgira',
+    '👩🏼‍🐰‍👩🏿' => 'dunnas cun ureglias da lieur: pel mez clera, pel stgira',
+    '👩🏽‍🐰‍👩🏻' => 'dunnas cun ureglias da lieur: pel media, pel clera',
+    '👩🏽‍🐰‍👩🏼' => 'dunnas cun ureglias da lieur: pel media, pel mez clera',
+    '👩🏽‍🐰‍👩🏾' => 'dunnas cun ureglias da lieur: pel media, pel mez stgira',
+    '👩🏽‍🐰‍👩🏿' => 'dunnas cun ureglias da lieur: pel media, pel stgira',
+    '👩🏾‍🐰‍👩🏻' => 'dunnas cun ureglias da lieur: pel mez stgira, pel clera',
+    '👩🏾‍🐰‍👩🏼' => 'dunnas cun ureglias da lieur: pel mez stgira, pel mez clera',
+    '👩🏾‍🐰‍👩🏽' => 'dunnas cun ureglias da lieur: pel mez stgira, pel media',
+    '👩🏾‍🐰‍👩🏿' => 'dunnas cun ureglias da lieur: pel mez stgira, pel stgira',
+    '👩🏿‍🐰‍👩🏻' => 'dunnas cun ureglias da lieur: pel stgira, pel clera',
+    '👩🏿‍🐰‍👩🏼' => 'dunnas cun ureglias da lieur: pel stgira, pel mez clera',
+    '👩🏿‍🐰‍👩🏽' => 'dunnas cun ureglias da lieur: pel stgira, pel media',
+    '👩🏿‍🐰‍👩🏾' => 'dunnas cun ureglias da lieur: pel stgira, pel mez stgira',
+    '🧑🏻‍🤝‍🧑🏻' => 'persunas che tegnan il maun: pel clera',
+    '🧑🏻‍🤝‍🧑🏼' => 'persunas che tegnan il maun: pel clera, pel mez clera',
+    '🧑🏻‍🤝‍🧑🏽' => 'persunas che tegnan il maun: pel clera, pel media',
+    '🧑🏻‍🤝‍🧑🏾' => 'persunas che tegnan il maun: pel clera, pel mez stgira',
+    '🧑🏻‍🤝‍🧑🏿' => 'persunas che tegnan il maun: pel clera, pel stgira',
+    '🧑🏼‍🤝‍🧑🏻' => 'persunas che tegnan il maun: pel mez clera, pel clera',
+    '🧑🏼‍🤝‍🧑🏼' => 'persunas che tegnan il maun: pel mez clera',
+    '🧑🏼‍🤝‍🧑🏽' => 'persunas che tegnan il maun: pel mez clera, pel media',
+    '🧑🏼‍🤝‍🧑🏾' => 'persunas che tegnan il maun: pel mez clera, pel mez stgira',
+    '🧑🏼‍🤝‍🧑🏿' => 'persunas che tegnan il maun: pel mez clera, pel stgira',
+    '🧑🏽‍🤝‍🧑🏻' => 'persunas che tegnan il maun: pel media, pel clera',
+    '🧑🏽‍🤝‍🧑🏼' => 'persunas che tegnan il maun: pel media, pel mez clera',
+    '🧑🏽‍🤝‍🧑🏽' => 'persunas che tegnan il maun: pel media',
+    '🧑🏽‍🤝‍🧑🏾' => 'persunas che tegnan il maun: pel media, pel mez stgira',
+    '🧑🏽‍🤝‍🧑🏿' => 'persunas che tegnan il maun: pel media, pel stgira',
+    '🧑🏾‍🤝‍🧑🏻' => 'persunas che tegnan il maun: pel mez stgira, pel clera',
+    '🧑🏾‍🤝‍🧑🏼' => 'persunas che tegnan il maun: pel mez stgira, pel mez clera',
+    '🧑🏾‍🤝‍🧑🏽' => 'persunas che tegnan il maun: pel mez stgira, pel media',
+    '🧑🏾‍🤝‍🧑🏾' => 'persunas che tegnan il maun: pel mez stgira',
+    '🧑🏾‍🤝‍🧑🏿' => 'persunas che tegnan il maun: pel mez stgira, pel stgira',
+    '🧑🏿‍🤝‍🧑🏻' => 'persunas che tegnan il maun: pel stgira, pel clera',
+    '🧑🏿‍🤝‍🧑🏼' => 'persunas che tegnan il maun: pel stgira, pel mez clera',
+    '🧑🏿‍🤝‍🧑🏽' => 'persunas che tegnan il maun: pel stgira, pel media',
+    '🧑🏿‍🤝‍🧑🏾' => 'persunas che tegnan il maun: pel stgira, pel mez stgira',
+    '🧑🏿‍🤝‍🧑🏿' => 'persunas che tegnan il maun: pel stgira',
+    '👩🏻‍🤝‍👩🏼' => 'dunnas che tegnan il maun: pel clera, pel mez clera',
+    '👩🏻‍🤝‍👩🏽' => 'dunnas che tegnan il maun: pel clera, pel media',
+    '👩🏻‍🤝‍👩🏾' => 'dunnas che tegnan il maun: pel clera, pel mez stgira',
+    '👩🏻‍🤝‍👩🏿' => 'dunnas che tegnan il maun: pel clera, pel stgira',
+    '👩🏼‍🤝‍👩🏻' => 'dunnas che tegnan il maun: pel mez clera, pel clera',
+    '👩🏼‍🤝‍👩🏽' => 'dunnas che tegnan il maun: pel mez clera, pel media',
+    '👩🏼‍🤝‍👩🏾' => 'dunnas che tegnan il maun: pel mez clera, pel mez stgira',
+    '👩🏼‍🤝‍👩🏿' => 'dunnas che tegnan il maun: pel mez clera, pel stgira',
+    '👩🏽‍🤝‍👩🏻' => 'dunnas che tegnan il maun: pel media, pel clera',
+    '👩🏽‍🤝‍👩🏼' => 'dunnas che tegnan il maun: pel media, pel mez clera',
+    '👩🏽‍🤝‍👩🏾' => 'dunnas che tegnan il maun: pel media, pel mez stgira',
+    '👩🏽‍🤝‍👩🏿' => 'dunnas che tegnan il maun: pel media, pel stgira',
+    '👩🏾‍🤝‍👩🏻' => 'dunnas che tegnan il maun: pel mez stgira, pel clera',
+    '👩🏾‍🤝‍👩🏼' => 'dunnas che tegnan il maun: pel mez stgira, pel mez clera',
+    '👩🏾‍🤝‍👩🏽' => 'dunnas che tegnan il maun: pel mez stgira, pel media',
+    '👩🏾‍🤝‍👩🏿' => 'dunnas che tegnan il maun: pel mez stgira, pel stgira',
+    '👩🏿‍🤝‍👩🏻' => 'dunnas che tegnan il maun: pel stgira, pel clera',
+    '👩🏿‍🤝‍👩🏼' => 'dunnas che tegnan il maun: pel stgira, pel mez clera',
+    '👩🏿‍🤝‍👩🏽' => 'dunnas che tegnan il maun: pel stgira, pel media',
+    '👩🏿‍🤝‍👩🏾' => 'dunnas che tegnan il maun: pel stgira, pel mez stgira',
+    '👩🏻‍🤝‍👨🏼' => 'dunna ed um che tegnan ils mauns: pel clera, pel mez clera',
+    '👩🏻‍🤝‍👨🏽' => 'dunna ed um che tegnan ils mauns: pel clera, pel media',
+    '👩🏻‍🤝‍👨🏾' => 'dunna ed um che tegnan ils mauns: pel clera, pel mez stgira',
+    '👩🏻‍🤝‍👨🏿' => 'dunna ed um che tegnan ils mauns: pel clera, pel stgira',
+    '👩🏼‍🤝‍👨🏻' => 'dunna ed um che tegnan ils mauns: pel mez clera, pel clera',
+    '👩🏼‍🤝‍👨🏽' => 'dunna ed um che tegnan ils mauns: pel mez clera, pel media',
+    '👩🏼‍🤝‍👨🏾' => 'dunna ed um che tegnan ils mauns: pel mez clera, pel mez stgira',
+    '👩🏼‍🤝‍👨🏿' => 'dunna ed um che tegnan ils mauns: pel mez clera, pel stgira',
+    '👩🏽‍🤝‍👨🏻' => 'dunna ed um che tegnan ils mauns: pel media, pel clera',
+    '👩🏽‍🤝‍👨🏼' => 'dunna ed um che tegnan ils mauns: pel media, pel mez clera',
+    '👩🏽‍🤝‍👨🏾' => 'dunna ed um che tegnan ils mauns: pel media, pel mez stgira',
+    '👩🏽‍🤝‍👨🏿' => 'dunna ed um che tegnan ils mauns: pel media, pel stgira',
+    '👩🏾‍🤝‍👨🏻' => 'dunna ed um che tegnan ils mauns: pel mez stgira, pel clera',
+    '👩🏾‍🤝‍👨🏼' => 'dunna ed um che tegnan ils mauns: pel mez stgira, pel mez clera',
+    '👩🏾‍🤝‍👨🏽' => 'dunna ed um che tegnan ils mauns: pel mez stgira, pel media',
+    '👩🏾‍🤝‍👨🏿' => 'dunna ed um che tegnan ils mauns: pel mez stgira, pel stgira',
+    '👩🏿‍🤝‍👨🏻' => 'dunna ed um che tegnan ils mauns: pel stgira, pel clera',
+    '👩🏿‍🤝‍👨🏼' => 'dunna ed um che tegnan ils mauns: pel stgira, pel mez clera',
+    '👩🏿‍🤝‍👨🏽' => 'dunna ed um che tegnan ils mauns: pel stgira, pel media',
+    '👩🏿‍🤝‍👨🏾' => 'dunna ed um che tegnan ils mauns: pel stgira, pel mez stgira',
+    '👨🏻‍🤝‍👨🏼' => 'umens che tegnan il maun: pel clera, pel mez clera',
+    '👨🏻‍🤝‍👨🏽' => 'umens che tegnan il maun: pel clera, pel media',
+    '👨🏻‍🤝‍👨🏾' => 'umens che tegnan il maun: pel clera, pel mez stgira',
+    '👨🏻‍🤝‍👨🏿' => 'umens che tegnan il maun: pel clera, pel stgira',
+    '👨🏼‍🤝‍👨🏻' => 'umens che tegnan il maun: pel mez clera, pel clera',
+    '👨🏼‍🤝‍👨🏽' => 'umens che tegnan il maun: pel mez clera, pel media',
+    '👨🏼‍🤝‍👨🏾' => 'umens che tegnan il maun: pel mez clera, pel mez stgira',
+    '👨🏼‍🤝‍👨🏿' => 'umens che tegnan il maun: pel mez clera, pel stgira',
+    '👨🏽‍🤝‍👨🏻' => 'umens che tegnan il maun: pel media, pel clera',
+    '👨🏽‍🤝‍👨🏼' => 'umens che tegnan il maun: pel media, pel mez clera',
+    '👨🏽‍🤝‍👨🏾' => 'umens che tegnan il maun: pel media, pel mez stgira',
+    '👨🏽‍🤝‍👨🏿' => 'umens che tegnan il maun: pel media, pel stgira',
+    '👨🏾‍🤝‍👨🏻' => 'umens che tegnan il maun: pel mez stgira, pel clera',
+    '👨🏾‍🤝‍👨🏼' => 'umens che tegnan il maun: pel mez stgira, pel mez clera',
+    '👨🏾‍🤝‍👨🏽' => 'umens che tegnan il maun: pel mez stgira, pel media',
+    '👨🏾‍🤝‍👨🏿' => 'umens che tegnan il maun: pel mez stgira, pel stgira',
+    '👨🏿‍🤝‍👨🏻' => 'umens che tegnan il maun: pel stgira, pel clera',
+    '👨🏿‍🤝‍👨🏼' => 'umens che tegnan il maun: pel stgira, pel mez clera',
+    '👨🏿‍🤝‍👨🏽' => 'umens che tegnan il maun: pel stgira, pel media',
+    '👨🏿‍🤝‍👨🏾' => 'umens che tegnan il maun: pel stgira, pel mez stgira',
+    '👩‍❤‍💋‍👨' => 'bitsch: dunna, um',
+    '👨‍❤‍💋‍👨' => 'bitsch: um, um',
+    '👩‍❤‍💋‍👩' => 'bitsch: dunna, dunna',
+    '👨‍👩‍👧‍👦' => 'famiglia: um, dunna, mattetta, mattet',
+    '👨‍👩‍👦‍👦' => 'famiglia: um, dunna, mattet, mattet',
+    '👨‍👩‍👧‍👧' => 'famiglia: um, dunna, mattetta, mattetta',
+    '👨‍👨‍👧‍👦' => 'famiglia: um, um, mattetta, mattet',
+    '👨‍👨‍👦‍👦' => 'famiglia: um, um, mattet, mattet',
+    '👨‍👨‍👧‍👧' => 'famiglia: um, um, mattetta, mattetta',
+    '👩‍👩‍👧‍👦' => 'famiglia: dunna, dunna, mattetta, mattet',
+    '👩‍👩‍👦‍👦' => 'famiglia: dunna, dunna, mattet, mattet',
+    '👩‍👩‍👧‍👧' => 'famiglia: dunna, dunna, mattetta, mattetta',
+    '🧑‍🧑‍🧒‍🧒' => 'famiglia: persuna creschida, persuna creschida, uffant, uffant',
+    '🚶🏻‍♀‍➡' => 'dunna che va a pe: pel clera, a dretga',
+    '🚶🏼‍♀‍➡' => 'dunna che va a pe: pel mez clera, a dretga',
+    '🚶🏽‍♀‍➡' => 'dunna che va a pe: pel media, a dretga',
+    '🚶🏾‍♀‍➡' => 'dunna che va a pe: pel mez stgira, a dretga',
+    '🚶🏿‍♀‍➡' => 'dunna che va a pe: pel stgira, a dretga',
+    '🚶🏻‍♂‍➡' => 'um che va a pe: pel clera, a dretga',
+    '🚶🏼‍♂‍➡' => 'um che va a pe: pel mez clera, a dretga',
+    '🚶🏽‍♂‍➡' => 'um che va a pe: pel media, a dretga',
+    '🚶🏾‍♂‍➡' => 'um che va a pe: pel mez stgira, a dretga',
+    '🚶🏿‍♂‍➡' => 'um che va a pe: pel stgira, a dretga',
+    '🧎🏻‍♀‍➡' => 'dunna en schanuglias: pel clera, a dretga',
+    '🧎🏼‍♀‍➡' => 'dunna en schanuglias: pel mez clera, a dretga',
+    '🧎🏽‍♀‍➡' => 'dunna en schanuglias: pel media, a dretga',
+    '🧎🏾‍♀‍➡' => 'dunna en schanuglias: pel mez stgira, a dretga',
+    '🧎🏿‍♀‍➡' => 'dunna en schanuglias: pel stgira, a dretga',
+    '🧎🏻‍♂‍➡' => 'um en schanuglias: pel clera, a dretga',
+    '🧎🏼‍♂‍➡' => 'um en schanuglias: pel mez clera, a dretga',
+    '🧎🏽‍♂‍➡' => 'um en schanuglias: pel media, a dretga',
+    '🧎🏾‍♂‍➡' => 'um en schanuglias: pel mez stgira, a dretga',
+    '🧎🏿‍♂‍➡' => 'um en schanuglias: pel stgira, a dretga',
+    '🧑🏻‍🦯‍➡' => 'persuna cun ina channa da tschorvs: pel clera, a dretga',
+    '🧑🏼‍🦯‍➡' => 'persuna cun ina channa da tschorvs: pel mez clera, a dretga',
+    '🧑🏽‍🦯‍➡' => 'persuna cun ina channa da tschorvs: pel media, a dretga',
+    '🧑🏾‍🦯‍➡' => 'persuna cun ina channa da tschorvs: pel mez stgira, a dretga',
+    '🧑🏿‍🦯‍➡' => 'persuna cun ina channa da tschorvs: pel stgira, a dretga',
+    '👨🏻‍🦯‍➡' => 'um cun channa: pel clera, a dretga',
+    '👨🏼‍🦯‍➡' => 'um cun channa: pel mez clera, a dretga',
+    '👨🏽‍🦯‍➡' => 'um cun channa: pel media, a dretga',
+    '👨🏾‍🦯‍➡' => 'um cun channa: pel mez stgira, a dretga',
+    '👨🏿‍🦯‍➡' => 'um cun channa: pel stgira, a dretga',
+    '👩🏻‍🦯‍➡' => 'dunna cun channa: pel clera, a dretga',
+    '👩🏼‍🦯‍➡' => 'dunna cun channa: pel mez clera, a dretga',
+    '👩🏽‍🦯‍➡' => 'dunna cun channa: pel media, a dretga',
+    '👩🏾‍🦯‍➡' => 'dunna cun channa: pel mez stgira, a dretga',
+    '👩🏿‍🦯‍➡' => 'dunna cun channa: pel stgira, a dretga',
+    '🧑🏻‍🦼‍➡' => 'persuna en ina sutga cun rodas electrica: pel clera, a dretga',
+    '🧑🏼‍🦼‍➡' => 'persuna en ina sutga cun rodas electrica: pel mez clera, a dretga',
+    '🧑🏽‍🦼‍➡' => 'persuna en ina sutga cun rodas electrica: pel media, a dretga',
+    '🧑🏾‍🦼‍➡' => 'persuna en ina sutga cun rodas electrica: pel mez stgira, a dretga',
+    '🧑🏿‍🦼‍➡' => 'persuna en ina sutga cun rodas electrica: pel stgira, a dretga',
+    '👨🏻‍🦼‍➡' => 'um en ina sutga cun rodas electrica: pel clera, a dretga',
+    '👨🏼‍🦼‍➡' => 'um en ina sutga cun rodas electrica: pel mez clera, a dretga',
+    '👨🏽‍🦼‍➡' => 'um en ina sutga cun rodas electrica: pel media, a dretga',
+    '👨🏾‍🦼‍➡' => 'um en ina sutga cun rodas electrica: pel mez stgira, a dretga',
+    '👨🏿‍🦼‍➡' => 'um en ina sutga cun rodas electrica: pel stgira, a dretga',
+    '👩🏻‍🦼‍➡' => 'dunna en ina sutga cun rodas electrica: pel clera, a dretga',
+    '👩🏼‍🦼‍➡' => 'dunna en ina sutga cun rodas electrica: pel mez clera, a dretga',
+    '👩🏽‍🦼‍➡' => 'dunna en ina sutga cun rodas electrica: pel media, a dretga',
+    '👩🏾‍🦼‍➡' => 'dunna en ina sutga cun rodas electrica: pel mez stgira, a dretga',
+    '👩🏿‍🦼‍➡' => 'dunna en ina sutga cun rodas electrica: pel stgira, a dretga',
+    '🧑🏻‍🦽‍➡' => 'persuna en ina sutga cun rodas manuala: pel clera, a dretga',
+    '🧑🏼‍🦽‍➡' => 'persuna en ina sutga cun rodas manuala: pel mez clera, a dretga',
+    '🧑🏽‍🦽‍➡' => 'persuna en ina sutga cun rodas manuala: pel media, a dretga',
+    '🧑🏾‍🦽‍➡' => 'persuna en ina sutga cun rodas manuala: pel mez stgira, a dretga',
+    '🧑🏿‍🦽‍➡' => 'persuna en ina sutga cun rodas manuala: pel stgira, a dretga',
+    '👨🏻‍🦽‍➡' => 'um en ina sutga cun rodas manuala: pel clera, a dretga',
+    '👨🏼‍🦽‍➡' => 'um en ina sutga cun rodas manuala: pel mez clera, a dretga',
+    '👨🏽‍🦽‍➡' => 'um en ina sutga cun rodas manuala: pel media, a dretga',
+    '👨🏾‍🦽‍➡' => 'um en ina sutga cun rodas manuala: pel mez stgira, a dretga',
+    '👨🏿‍🦽‍➡' => 'um en ina sutga cun rodas manuala: pel stgira, a dretga',
+    '👩🏻‍🦽‍➡' => 'dunna en ina sutga cun rodas manuala: pel clera, a dretga',
+    '👩🏼‍🦽‍➡' => 'dunna en ina sutga cun rodas manuala: pel mez clera, a dretga',
+    '👩🏽‍🦽‍➡' => 'dunna en ina sutga cun rodas manuala: pel media, a dretga',
+    '👩🏾‍🦽‍➡' => 'dunna en ina sutga cun rodas manuala: pel mez stgira, a dretga',
+    '👩🏿‍🦽‍➡' => 'dunna en ina sutga cun rodas manuala: pel stgira, a dretga',
+    '🏃🏻‍♀‍➡' => 'dunna che curra: pel clera, a dretga',
+    '🏃🏼‍♀‍➡' => 'dunna che curra: pel mez clera, a dretga',
+    '🏃🏽‍♀‍➡' => 'dunna che curra: pel media, a dretga',
+    '🏃🏾‍♀‍➡' => 'dunna che curra: pel mez stgira, a dretga',
+    '🏃🏿‍♀‍➡' => 'dunna che curra: pel stgira, a dretga',
+    '🏃🏻‍♂‍➡' => 'um che curra: pel clera, a dretga',
+    '🏃🏼‍♂‍➡' => 'um che curra: pel mez clera, a dretga',
+    '🏃🏽‍♂‍➡' => 'um che curra: pel media, a dretga',
+    '🏃🏾‍♂‍➡' => 'um che curra: pel mez stgira, a dretga',
+    '🏃🏿‍♂‍➡' => 'um che curra: pel stgira, a dretga',
+    '🫱🏻‍🫲🏼' => 'dar il maun: pel clera, pel mez clera',
+    '🫱🏻‍🫲🏽' => 'dar il maun: pel clera, pel media',
+    '🫱🏻‍🫲🏾' => 'dar il maun: pel clera, pel mez stgira',
+    '🫱🏻‍🫲🏿' => 'dar il maun: pel clera, pel stgira',
+    '🫱🏼‍🫲🏻' => 'dar il maun: pel mez clera, pel clera',
+    '🫱🏼‍🫲🏽' => 'dar il maun: pel mez clera, pel media',
+    '🫱🏼‍🫲🏾' => 'dar il maun: pel mez clera, pel mez stgira',
+    '🫱🏼‍🫲🏿' => 'dar il maun: pel mez clera, pel stgira',
+    '🫱🏽‍🫲🏻' => 'dar il maun: pel media, pel clera',
+    '🫱🏽‍🫲🏼' => 'dar il maun: pel media, pel mez clera',
+    '🫱🏽‍🫲🏾' => 'dar il maun: pel media, pel mez stgira',
+    '🫱🏽‍🫲🏿' => 'dar il maun: pel media, pel stgira',
+    '🫱🏾‍🫲🏻' => 'dar il maun: pel mez stgira, pel clera',
+    '🫱🏾‍🫲🏼' => 'dar il maun: pel mez stgira, pel mez clera',
+    '🫱🏾‍🫲🏽' => 'dar il maun: pel mez stgira, pel media',
+    '🫱🏾‍🫲🏿' => 'dar il maun: pel mez stgira, pel stgira',
+    '🫱🏿‍🫲🏻' => 'dar il maun: pel stgira, pel clera',
+    '🫱🏿‍🫲🏼' => 'dar il maun: pel stgira, pel mez clera',
+    '🫱🏿‍🫲🏽' => 'dar il maun: pel stgira, pel media',
+    '🫱🏿‍🫲🏾' => 'dar il maun: pel stgira, pel mez stgira',
+    '🚶‍♀‍➡' => 'dunna che va a pe: a dretga',
+    '🚶‍♂‍➡' => 'um che va a pe: a dretga',
+    '🧎‍♀‍➡' => 'dunna en schanuglias: a dretga',
+    '🧎‍♂‍➡' => 'um en schanuglias: a dretga',
+    '🧑‍🦯‍➡' => 'persuna cun ina channa da tschorvs: a dretga',
+    '👨‍🦯‍➡' => 'um cun channa: a dretga',
+    '👩‍🦯‍➡' => 'dunna cun channa: a dretga',
+    '🧑‍🦼‍➡' => 'persuna en ina sutga cun rodas electrica: a dretga',
+    '👨‍🦼‍➡' => 'um en ina sutga cun rodas electrica: a dretga',
+    '👩‍🦼‍➡' => 'dunna en ina sutga cun rodas electrica: a dretga',
+    '🧑‍🦽‍➡' => 'persuna en ina sutga cun rodas manuala: a dretga',
+    '👨‍🦽‍➡' => 'um en ina sutga cun rodas manuala: a dretga',
+    '👩‍🦽‍➡' => 'dunna en ina sutga cun rodas manuala: a dretga',
+    '🏃‍♀‍➡' => 'dunna che curra: a dretga',
+    '🏃‍♂‍➡' => 'um che curra: a dretga',
+    '👩‍❤‍👨' => 'pèr cun cor: dunna, um',
+    '👨‍❤‍👨' => 'pèr cun cor: um, um',
+    '👩‍❤‍👩' => 'pèr cun cor: dunna, dunna',
+    '👨‍👩‍👦' => 'famiglia: um, dunna, mattet',
+    '👨‍👩‍👧' => 'famiglia: um, dunna, mattetta',
+    '👨‍👨‍👦' => 'famiglia: um, um, mattet',
+    '👨‍👨‍👧' => 'famiglia: um, um, mattetta',
+    '👩‍👩‍👦' => 'famiglia: dunna, dunna, mattet',
+    '👩‍👩‍👧' => 'famiglia: dunna, dunna, mattetta',
+    '👨‍👦‍👦' => 'famiglia: um, mattet, mattet',
+    '👨‍👧‍👦' => 'famiglia: um, mattetta, mattet',
+    '👨‍👧‍👧' => 'famiglia: um, mattetta, mattetta',
+    '👩‍👦‍👦' => 'famiglia: dunna, mattet, mattet',
+    '👩‍👧‍👦' => 'famiglia: dunna, mattetta, mattet',
+    '👩‍👧‍👧' => 'famiglia: dunna, mattetta, mattetta',
+    '🧑‍🤝‍🧑' => 'persunas che tegnan il maun',
+    '🧑‍🧑‍🧒' => 'famiglia: persuna creschida, persuna creschida, uffant',
+    '🧑‍🧒‍🧒' => 'famiglia: persuna creschida, uffant, uffant',
+    '🧑🏻‍🦰' => 'persuna: pel clera, chavels cotschens',
+    '🧑🏼‍🦰' => 'persuna: pel mez clera, chavels cotschens',
+    '🧑🏽‍🦰' => 'persuna: pel media, chavels cotschens',
+    '🧑🏾‍🦰' => 'persuna: pel mez stgira, chavels cotschens',
+    '🧑🏿‍🦰' => 'persuna: pel stgira, chavels cotschens',
+    '🧑🏻‍🦱' => 'persuna: pel clera, chavels ritschads',
+    '🧑🏼‍🦱' => 'persuna: pel mez clera, chavels ritschads',
+    '🧑🏽‍🦱' => 'persuna: pel media, chavels ritschads',
+    '🧑🏾‍🦱' => 'persuna: pel mez stgira, chavels ritschads',
+    '🧑🏿‍🦱' => 'persuna: pel stgira, chavels ritschads',
+    '🧑🏻‍🦳' => 'persuna: pel clera, chavels alvs',
+    '🧑🏼‍🦳' => 'persuna: pel mez clera, chavels alvs',
+    '🧑🏽‍🦳' => 'persuna: pel media, chavels alvs',
+    '🧑🏾‍🦳' => 'persuna: pel mez stgira, chavels alvs',
+    '🧑🏿‍🦳' => 'persuna: pel stgira, chavels alvs',
+    '🧑🏻‍🦲' => 'persuna: pel clera, chau blut',
+    '🧑🏼‍🦲' => 'persuna: pel mez clera, chau blut',
+    '🧑🏽‍🦲' => 'persuna: pel media, chau blut',
+    '🧑🏾‍🦲' => 'persuna: pel mez stgira, chau blut',
+    '🧑🏿‍🦲' => 'persuna: pel stgira, chau blut',
+    '🧑🏻‍🩰' => 'ballarin:a: pel clera',
+    '🧑🏼‍🩰' => 'ballarin:a: pel mez clera',
+    '🧑🏽‍🩰' => 'ballarin:a: pel media',
+    '🧑🏾‍🩰' => 'ballarin:a: pel mez stgira',
+    '🧑🏿‍🩰' => 'ballarin:a: pel stgira',
+    '🧔🏻‍♂' => 'um: pel clera, barba',
+    '🧔🏼‍♂' => 'um: pel mez clera, barba',
+    '🧔🏽‍♂' => 'um: pel media, barba',
+    '🧔🏾‍♂' => 'um: pel mez stgira, barba',
+    '🧔🏿‍♂' => 'um: pel stgira, barba',
+    '👱🏻‍♂' => 'um: pel clera, chavels blonds',
+    '👱🏼‍♂' => 'um: pel mez clera, chavels blonds',
+    '👱🏽‍♂' => 'um: pel media, chavels blonds',
+    '👱🏾‍♂' => 'um: pel mez stgira, chavels blonds',
+    '👱🏿‍♂' => 'um: pel stgira, chavels blonds',
+    '👨🏻‍🦰' => 'um: pel clera, chavels cotschens',
+    '👨🏼‍🦰' => 'um: pel mez clera, chavels cotschens',
+    '👨🏽‍🦰' => 'um: pel media, chavels cotschens',
+    '👨🏾‍🦰' => 'um: pel mez stgira, chavels cotschens',
+    '👨🏿‍🦰' => 'um: pel stgira, chavels cotschens',
+    '👨🏻‍🦱' => 'um: pel clera, chavels ritschads',
+    '👨🏼‍🦱' => 'um: pel mez clera, chavels ritschads',
+    '👨🏽‍🦱' => 'um: pel media, chavels ritschads',
+    '👨🏾‍🦱' => 'um: pel mez stgira, chavels ritschads',
+    '👨🏿‍🦱' => 'um: pel stgira, chavels ritschads',
+    '👨🏻‍🦳' => 'um: pel clera, chavels alvs',
+    '👨🏼‍🦳' => 'um: pel mez clera, chavels alvs',
+    '👨🏽‍🦳' => 'um: pel media, chavels alvs',
+    '👨🏾‍🦳' => 'um: pel mez stgira, chavels alvs',
+    '👨🏿‍🦳' => 'um: pel stgira, chavels alvs',
+    '👨🏻‍🦲' => 'um: pel clera, chau blut',
+    '👨🏼‍🦲' => 'um: pel mez clera, chau blut',
+    '👨🏽‍🦲' => 'um: pel media, chau blut',
+    '👨🏾‍🦲' => 'um: pel mez stgira, chau blut',
+    '👨🏿‍🦲' => 'um: pel stgira, chau blut',
+    '🧔🏻‍♀' => 'dunna: pel clera, barba',
+    '🧔🏼‍♀' => 'dunna: pel mez clera, barba',
+    '🧔🏽‍♀' => 'dunna: pel media, barba',
+    '🧔🏾‍♀' => 'dunna: pel mez stgira, barba',
+    '🧔🏿‍♀' => 'dunna: pel stgira, barba',
+    '👱🏻‍♀' => 'dunna: pel clera, chavels blonds',
+    '👱🏼‍♀' => 'dunna: pel mez clera, chavels blonds',
+    '👱🏽‍♀' => 'dunna: pel media, chavels blonds',
+    '👱🏾‍♀' => 'dunna: pel mez stgira, chavels blonds',
+    '👱🏿‍♀' => 'dunna: pel stgira, chavels blonds',
+    '👩🏻‍🦰' => 'dunna: pel clera, chavels cotschens',
+    '👩🏼‍🦰' => 'dunna: pel mez clera, chavels cotschens',
+    '👩🏽‍🦰' => 'dunna: pel media, chavels cotschens',
+    '👩🏾‍🦰' => 'dunna: pel mez stgira, chavels cotschens',
+    '👩🏿‍🦰' => 'dunna: pel stgira, chavels cotschens',
+    '👩🏻‍🦱' => 'dunna: pel clera, chavels ritschads',
+    '👩🏼‍🦱' => 'dunna: pel mez clera, chavels ritschads',
+    '👩🏽‍🦱' => 'dunna: pel media, chavels ritschads',
+    '👩🏾‍🦱' => 'dunna: pel mez stgira, chavels ritschads',
+    '👩🏿‍🦱' => 'dunna: pel stgira, chavels ritschads',
+    '👩🏻‍🦳' => 'dunna: pel clera, chavels alvs',
+    '👩🏼‍🦳' => 'dunna: pel mez clera, chavels alvs',
+    '👩🏽‍🦳' => 'dunna: pel media, chavels alvs',
+    '👩🏾‍🦳' => 'dunna: pel mez stgira, chavels alvs',
+    '👩🏿‍🦳' => 'dunna: pel stgira, chavels alvs',
+    '👩🏻‍🦲' => 'dunna: pel clera, chau blut',
+    '👩🏼‍🦲' => 'dunna: pel mez clera, chau blut',
+    '👩🏽‍🦲' => 'dunna: pel media, chau blut',
+    '👩🏾‍🦲' => 'dunna: pel mez stgira, chau blut',
+    '👩🏿‍🦲' => 'dunna: pel stgira, chau blut',
+    '🙍🏻‍♂' => 'um malcuntent: pel clera',
+    '🙍🏼‍♂' => 'um malcuntent: pel mez clera',
+    '🙍🏽‍♂' => 'um malcuntent: pel media',
+    '🙍🏾‍♂' => 'um malcuntent: pel mez stgira',
+    '🙍🏿‍♂' => 'um malcuntent: pel stgira',
+    '🙍🏻‍♀' => 'dunna malcuntenta: pel clera',
+    '🙍🏼‍♀' => 'dunna malcuntenta: pel mez clera',
+    '🙍🏽‍♀' => 'dunna malcuntenta: pel media',
+    '🙍🏾‍♀' => 'dunna malcuntenta: pel mez stgira',
+    '🙍🏿‍♀' => 'dunna malcuntenta: pel stgira',
+    '🙎🏻‍♂' => 'um permalà: pel clera',
+    '🙎🏼‍♂' => 'um permalà: pel mez clera',
+    '🙎🏽‍♂' => 'um permalà: pel media',
+    '🙎🏾‍♂' => 'um permalà: pel mez stgira',
+    '🙎🏿‍♂' => 'um permalà: pel stgira',
+    '🙎🏻‍♀' => 'dunna permalada: pel clera',
+    '🙎🏼‍♀' => 'dunna permalada: pel mez clera',
+    '🙎🏽‍♀' => 'dunna permalada: pel media',
+    '🙎🏾‍♀' => 'dunna permalada: pel mez stgira',
+    '🙎🏿‍♀' => 'dunna permalada: pel stgira',
+    '🙅🏻‍♂' => 'um cun bratscha cruschada: pel clera',
+    '🙅🏼‍♂' => 'um cun bratscha cruschada: pel mez clera',
+    '🙅🏽‍♂' => 'um cun bratscha cruschada: pel media',
+    '🙅🏾‍♂' => 'um cun bratscha cruschada: pel mez stgira',
+    '🙅🏿‍♂' => 'um cun bratscha cruschada: pel stgira',
+    '🙅🏻‍♀' => 'dunna cun bratscha cruschada: pel clera',
+    '🙅🏼‍♀' => 'dunna cun bratscha cruschada: pel mez clera',
+    '🙅🏽‍♀' => 'dunna cun bratscha cruschada: pel media',
+    '🙅🏾‍♀' => 'dunna cun bratscha cruschada: pel mez stgira',
+    '🙅🏿‍♀' => 'dunna cun bratscha cruschada: pel stgira',
+    '🙆🏻‍♂' => 'um che tegna ils mauns sin il chau: pel clera',
+    '🙆🏼‍♂' => 'um che tegna ils mauns sin il chau: pel mez clera',
+    '🙆🏽‍♂' => 'um che tegna ils mauns sin il chau: pel media',
+    '🙆🏾‍♂' => 'um che tegna ils mauns sin il chau: pel mez stgira',
+    '🙆🏿‍♂' => 'um che tegna ils mauns sin il chau: pel stgira',
+    '🙆🏻‍♀' => 'dunna che tegna ils mauns sin il chau: pel clera',
+    '🙆🏼‍♀' => 'dunna che tegna ils mauns sin il chau: pel mez clera',
+    '🙆🏽‍♀' => 'dunna che tegna ils mauns sin il chau: pel media',
+    '🙆🏾‍♀' => 'dunna che tegna ils mauns sin il chau: pel mez stgira',
+    '🙆🏿‍♀' => 'dunna che tegna ils mauns sin il chau: pel stgira',
+    '💁🏻‍♂' => 'um che tegna la palma-maun vers ensi: pel clera',
+    '💁🏼‍♂' => 'um che tegna la palma-maun vers ensi: pel mez clera',
+    '💁🏽‍♂' => 'um che tegna la palma-maun vers ensi: pel media',
+    '💁🏾‍♂' => 'um che tegna la palma-maun vers ensi: pel mez stgira',
+    '💁🏿‍♂' => 'um che tegna la palma-maun vers ensi: pel stgira',
+    '💁🏻‍♀' => 'dunna che tegna la palma-maun vers ensi: pel clera',
+    '💁🏼‍♀' => 'dunna che tegna la palma-maun vers ensi: pel mez clera',
+    '💁🏽‍♀' => 'dunna che tegna la palma-maun vers ensi: pel media',
+    '💁🏾‍♀' => 'dunna che tegna la palma-maun vers ensi: pel mez stgira',
+    '💁🏿‍♀' => 'dunna che tegna la palma-maun vers ensi: pel stgira',
+    '🙋🏻‍♂' => 'um che auza il maun: pel clera',
+    '🙋🏼‍♂' => 'um che auza il maun: pel mez clera',
+    '🙋🏽‍♂' => 'um che auza il maun: pel media',
+    '🙋🏾‍♂' => 'um che auza il maun: pel mez stgira',
+    '🙋🏿‍♂' => 'um che auza il maun: pel stgira',
+    '🙋🏻‍♀' => 'dunna che auza il maun: pel clera',
+    '🙋🏼‍♀' => 'dunna che auza il maun: pel mez clera',
+    '🙋🏽‍♀' => 'dunna che auza il maun: pel media',
+    '🙋🏾‍♀' => 'dunna che auza il maun: pel mez stgira',
+    '🙋🏿‍♀' => 'dunna che auza il maun: pel stgira',
+    '🧏🏻‍♂' => 'um surd: pel clera',
+    '🧏🏼‍♂' => 'um surd: pel mez clera',
+    '🧏🏽‍♂' => 'um surd: pel media',
+    '🧏🏾‍♂' => 'um surd: pel mez stgira',
+    '🧏🏿‍♂' => 'um surd: pel stgira',
+    '🧏🏻‍♀' => 'dunna surda: pel clera',
+    '🧏🏼‍♀' => 'dunna surda: pel mez clera',
+    '🧏🏽‍♀' => 'dunna surda: pel media',
+    '🧏🏾‍♀' => 'dunna surda: pel mez stgira',
+    '🧏🏿‍♀' => 'dunna surda: pel stgira',
+    '🙇🏻‍♂' => 'um che s’enclina: pel clera',
+    '🙇🏼‍♂' => 'um che s’enclina: pel mez clera',
+    '🙇🏽‍♂' => 'um che s’enclina: pel media',
+    '🙇🏾‍♂' => 'um che s’enclina: pel mez stgira',
+    '🙇🏿‍♂' => 'um che s’enclina: pel stgira',
+    '🙇🏻‍♀' => 'dunna che s’enclina: pel clera',
+    '🙇🏼‍♀' => 'dunna che s’enclina: pel mez clera',
+    '🙇🏽‍♀' => 'dunna che s’enclina: pel media',
+    '🙇🏾‍♀' => 'dunna che s’enclina: pel mez stgira',
+    '🙇🏿‍♀' => 'dunna che s’enclina: pel stgira',
+    '🤦🏻‍♂' => 'um cun la palma-maun sin la fatscha: pel clera',
+    '🤦🏼‍♂' => 'um cun la palma-maun sin la fatscha: pel mez clera',
+    '🤦🏽‍♂' => 'um cun la palma-maun sin la fatscha: pel media',
+    '🤦🏾‍♂' => 'um cun la palma-maun sin la fatscha: pel mez stgira',
+    '🤦🏿‍♂' => 'um cun la palma-maun sin la fatscha: pel stgira',
+    '🤦🏻‍♀' => 'dunna cun la palma-maun sin la fatscha: pel clera',
+    '🤦🏼‍♀' => 'dunna cun la palma-maun sin la fatscha: pel mez clera',
+    '🤦🏽‍♀' => 'dunna cun la palma-maun sin la fatscha: pel media',
+    '🤦🏾‍♀' => 'dunna cun la palma-maun sin la fatscha: pel mez stgira',
+    '🤦🏿‍♀' => 'dunna cun la palma-maun sin la fatscha: pel stgira',
+    '🤷🏻‍♂' => 'um che auza las spatlas: pel clera',
+    '🤷🏼‍♂' => 'um che auza las spatlas: pel mez clera',
+    '🤷🏽‍♂' => 'um che auza las spatlas: pel media',
+    '🤷🏾‍♂' => 'um che auza las spatlas: pel mez stgira',
+    '🤷🏿‍♂' => 'um che auza las spatlas: pel stgira',
+    '🤷🏻‍♀' => 'dunna che auza las spatlas: pel clera',
+    '🤷🏼‍♀' => 'dunna che auza las spatlas: pel mez clera',
+    '🤷🏽‍♀' => 'dunna che auza las spatlas: pel media',
+    '🤷🏾‍♀' => 'dunna che auza las spatlas: pel mez stgira',
+    '🤷🏿‍♀' => 'dunna che auza las spatlas: pel stgira',
+    '🧑🏻‍⚕' => 'persuna che lavura en il sectur da la sanadad: pel clera',
+    '🧑🏼‍⚕' => 'persuna che lavura en il sectur da la sanadad: pel mez clera',
+    '🧑🏽‍⚕' => 'persuna che lavura en il sectur da la sanadad: pel media',
+    '🧑🏾‍⚕' => 'persuna che lavura en il sectur da la sanadad: pel mez stgira',
+    '🧑🏿‍⚕' => 'persuna che lavura en il sectur da la sanadad: pel stgira',
+    '👨🏻‍⚕' => 'um che lavura en il sectur da la sanadad: pel clera',
+    '👨🏼‍⚕' => 'um che lavura en il sectur da la sanadad: pel mez clera',
+    '👨🏽‍⚕' => 'um che lavura en il sectur da la sanadad: pel media',
+    '👨🏾‍⚕' => 'um che lavura en il sectur da la sanadad: pel mez stgira',
+    '👨🏿‍⚕' => 'um che lavura en il sectur da la sanadad: pel stgira',
+    '👩🏻‍⚕' => 'dunna che lavura en il sectur da la sanadad: pel clera',
+    '👩🏼‍⚕' => 'dunna che lavura en il sectur da la sanadad: pel mez clera',
+    '👩🏽‍⚕' => 'dunna che lavura en il sectur da la sanadad: pel media',
+    '👩🏾‍⚕' => 'dunna che lavura en il sectur da la sanadad: pel mez stgira',
+    '👩🏿‍⚕' => 'dunna che lavura en il sectur da la sanadad: pel stgira',
+    '🧑🏻‍🎓' => 'student:a: pel clera',
+    '🧑🏼‍🎓' => 'student:a: pel mez clera',
+    '🧑🏽‍🎓' => 'student:a: pel media',
+    '🧑🏾‍🎓' => 'student:a: pel mez stgira',
+    '🧑🏿‍🎓' => 'student:a: pel stgira',
+    '👨🏻‍🎓' => 'student: pel clera',
+    '👨🏼‍🎓' => 'student: pel mez clera',
+    '👨🏽‍🎓' => 'student: pel media',
+    '👨🏾‍🎓' => 'student: pel mez stgira',
+    '👨🏿‍🎓' => 'student: pel stgira',
+    '👩🏻‍🎓' => 'studenta: pel clera',
+    '👩🏼‍🎓' => 'studenta: pel mez clera',
+    '👩🏽‍🎓' => 'studenta: pel media',
+    '👩🏾‍🎓' => 'studenta: pel mez stgira',
+    '👩🏿‍🎓' => 'studenta: pel stgira',
+    '🧑🏻‍🏫' => 'scolast:a: pel clera',
+    '🧑🏼‍🏫' => 'scolast:a: pel mez clera',
+    '🧑🏽‍🏫' => 'scolast:a: pel media',
+    '🧑🏾‍🏫' => 'scolast:a: pel mez stgira',
+    '🧑🏿‍🏫' => 'scolast:a: pel stgira',
+    '👨🏻‍🏫' => 'scolast: pel clera',
+    '👨🏼‍🏫' => 'scolast: pel mez clera',
+    '👨🏽‍🏫' => 'scolast: pel media',
+    '👨🏾‍🏫' => 'scolast: pel mez stgira',
+    '👨🏿‍🏫' => 'scolast: pel stgira',
+    '👩🏻‍🏫' => 'scolasta: pel clera',
+    '👩🏼‍🏫' => 'scolasta: pel mez clera',
+    '👩🏽‍🏫' => 'scolasta: pel media',
+    '👩🏾‍🏫' => 'scolasta: pel mez stgira',
+    '👩🏿‍🏫' => 'scolasta: pel stgira',
+    '🧑🏻‍⚖' => 'derschad:ra: pel clera',
+    '🧑🏼‍⚖' => 'derschad:ra: pel mez clera',
+    '🧑🏽‍⚖' => 'derschad:ra: pel media',
+    '🧑🏾‍⚖' => 'derschad:ra: pel mez stgira',
+    '🧑🏿‍⚖' => 'derschad:ra: pel stgira',
+    '👨🏻‍⚖' => 'derschader: pel clera',
+    '👨🏼‍⚖' => 'derschader: pel mez clera',
+    '👨🏽‍⚖' => 'derschader: pel media',
+    '👨🏾‍⚖' => 'derschader: pel mez stgira',
+    '👨🏿‍⚖' => 'derschader: pel stgira',
+    '👩🏻‍⚖' => 'derschadra: pel clera',
+    '👩🏼‍⚖' => 'derschadra: pel mez clera',
+    '👩🏽‍⚖' => 'derschadra: pel media',
+    '👩🏾‍⚖' => 'derschadra: pel mez stgira',
+    '👩🏿‍⚖' => 'derschadra: pel stgira',
+    '🧑🏻‍🌾' => 'pur:a: pel clera',
+    '🧑🏼‍🌾' => 'pur:a: pel mez clera',
+    '🧑🏽‍🌾' => 'pur:a: pel media',
+    '🧑🏾‍🌾' => 'pur:a: pel mez stgira',
+    '🧑🏿‍🌾' => 'pur:a: pel stgira',
+    '👨🏻‍🌾' => 'pur: pel clera',
+    '👨🏼‍🌾' => 'pur: pel mez clera',
+    '👨🏽‍🌾' => 'pur: pel media',
+    '👨🏾‍🌾' => 'pur: pel mez stgira',
+    '👨🏿‍🌾' => 'pur: pel stgira',
+    '👩🏻‍🌾' => 'pura: pel clera',
+    '👩🏼‍🌾' => 'pura: pel mez clera',
+    '👩🏽‍🌾' => 'pura: pel media',
+    '👩🏾‍🌾' => 'pura: pel mez stgira',
+    '👩🏿‍🌾' => 'pura: pel stgira',
+    '🧑🏻‍🍳' => 'cuschinier:a: pel clera',
+    '🧑🏼‍🍳' => 'cuschinier:a: pel mez clera',
+    '🧑🏽‍🍳' => 'cuschinier:a: pel media',
+    '🧑🏾‍🍳' => 'cuschinier:a: pel mez stgira',
+    '🧑🏿‍🍳' => 'cuschinier:a: pel stgira',
+    '👨🏻‍🍳' => 'cuschinier: pel clera',
+    '👨🏼‍🍳' => 'cuschinier: pel mez clera',
+    '👨🏽‍🍳' => 'cuschinier: pel media',
+    '👨🏾‍🍳' => 'cuschinier: pel mez stgira',
+    '👨🏿‍🍳' => 'cuschinier: pel stgira',
+    '👩🏻‍🍳' => 'cuschiniera: pel clera',
+    '👩🏼‍🍳' => 'cuschiniera: pel mez clera',
+    '👩🏽‍🍳' => 'cuschiniera: pel media',
+    '👩🏾‍🍳' => 'cuschiniera: pel mez stgira',
+    '👩🏿‍🍳' => 'cuschiniera: pel stgira',
+    '🧑🏻‍🔧' => 'mecanist:a: pel clera',
+    '🧑🏼‍🔧' => 'mecanist:a: pel mez clera',
+    '🧑🏽‍🔧' => 'mecanist:a: pel media',
+    '🧑🏾‍🔧' => 'mecanist:a: pel mez stgira',
+    '🧑🏿‍🔧' => 'mecanist:a: pel stgira',
+    '👨🏻‍🔧' => 'mecanist: pel clera',
+    '👨🏼‍🔧' => 'mecanist: pel mez clera',
+    '👨🏽‍🔧' => 'mecanist: pel media',
+    '👨🏾‍🔧' => 'mecanist: pel mez stgira',
+    '👨🏿‍🔧' => 'mecanist: pel stgira',
+    '👩🏻‍🔧' => 'mecanista: pel clera',
+    '👩🏼‍🔧' => 'mecanista: pel mez clera',
+    '👩🏽‍🔧' => 'mecanista: pel media',
+    '👩🏾‍🔧' => 'mecanista: pel mez stgira',
+    '👩🏿‍🔧' => 'mecanista: pel stgira',
+    '🧑🏻‍🏭' => 'persuna che lavura en fabrica: pel clera',
+    '🧑🏼‍🏭' => 'persuna che lavura en fabrica: pel mez clera',
+    '🧑🏽‍🏭' => 'persuna che lavura en fabrica: pel media',
+    '🧑🏾‍🏭' => 'persuna che lavura en fabrica: pel mez stgira',
+    '🧑🏿‍🏭' => 'persuna che lavura en fabrica: pel stgira',
+    '👨🏻‍🏭' => 'um che lavura en fabrica: pel clera',
+    '👨🏼‍🏭' => 'um che lavura en fabrica: pel mez clera',
+    '👨🏽‍🏭' => 'um che lavura en fabrica: pel media',
+    '👨🏾‍🏭' => 'um che lavura en fabrica: pel mez stgira',
+    '👨🏿‍🏭' => 'um che lavura en fabrica: pel stgira',
+    '👩🏻‍🏭' => 'dunna che lavura en fabrica: pel clera',
+    '👩🏼‍🏭' => 'dunna che lavura en fabrica: pel mez clera',
+    '👩🏽‍🏭' => 'dunna che lavura en fabrica: pel media',
+    '👩🏾‍🏭' => 'dunna che lavura en fabrica: pel mez stgira',
+    '👩🏿‍🏭' => 'dunna che lavura en fabrica: pel stgira',
+    '🧑🏻‍💼' => 'birolist:a: pel clera',
+    '🧑🏼‍💼' => 'birolist:a: pel mez clera',
+    '🧑🏽‍💼' => 'birolist:a: pel media',
+    '🧑🏾‍💼' => 'birolist:a: pel mez stgira',
+    '🧑🏿‍💼' => 'birolist:a: pel stgira',
+    '👨🏻‍💼' => 'birolist: pel clera',
+    '👨🏼‍💼' => 'birolist: pel mez clera',
+    '👨🏽‍💼' => 'birolist: pel media',
+    '👨🏾‍💼' => 'birolist: pel mez stgira',
+    '👨🏿‍💼' => 'birolist: pel stgira',
+    '👩🏻‍💼' => 'birolista: pel clera',
+    '👩🏼‍💼' => 'birolista: pel mez clera',
+    '👩🏽‍💼' => 'birolista: pel media',
+    '👩🏾‍💼' => 'birolista: pel mez stgira',
+    '👩🏿‍💼' => 'birolista: pel stgira',
+    '🧑🏻‍🔬' => 'scienzia:da: pel clera',
+    '🧑🏼‍🔬' => 'scienzia:da: pel mez clera',
+    '🧑🏽‍🔬' => 'scienzia:da: pel media',
+    '🧑🏾‍🔬' => 'scienzia:da: pel mez stgira',
+    '🧑🏿‍🔬' => 'scienzia:da: pel stgira',
+    '👨🏻‍🔬' => 'scienzià: pel clera',
+    '👨🏼‍🔬' => 'scienzià: pel mez clera',
+    '👨🏽‍🔬' => 'scienzià: pel media',
+    '👨🏾‍🔬' => 'scienzià: pel mez stgira',
+    '👨🏿‍🔬' => 'scienzià: pel stgira',
+    '👩🏻‍🔬' => 'scienziada: pel clera',
+    '👩🏼‍🔬' => 'scienziada: pel mez clera',
+    '👩🏽‍🔬' => 'scienziada: pel media',
+    '👩🏾‍🔬' => 'scienziada: pel mez stgira',
+    '👩🏿‍🔬' => 'scienziada: pel stgira',
+    '🧑🏻‍💻' => 'tecnolog:a: pel clera',
+    '🧑🏼‍💻' => 'tecnolog:a: pel mez clera',
+    '🧑🏽‍💻' => 'tecnolog:a: pel media',
+    '🧑🏾‍💻' => 'tecnolog:a: pel mez stgira',
+    '🧑🏿‍💻' => 'tecnolog:a: pel stgira',
+    '👨🏻‍💻' => 'tecnolog: pel clera',
+    '👨🏼‍💻' => 'tecnolog: pel mez clera',
+    '👨🏽‍💻' => 'tecnolog: pel media',
+    '👨🏾‍💻' => 'tecnolog: pel mez stgira',
+    '👨🏿‍💻' => 'tecnolog: pel stgira',
+    '👩🏻‍💻' => 'tecnologa: pel clera',
+    '👩🏼‍💻' => 'tecnologa: pel mez clera',
+    '👩🏽‍💻' => 'tecnologa: pel media',
+    '👩🏾‍💻' => 'tecnologa: pel mez stgira',
+    '👩🏿‍💻' => 'tecnologa: pel stgira',
+    '🧑🏻‍🎤' => 'chantadur:a: pel clera',
+    '🧑🏼‍🎤' => 'chantadur:a: pel mez clera',
+    '🧑🏽‍🎤' => 'chantadur:a: pel media',
+    '🧑🏾‍🎤' => 'chantadur:a: pel mez stgira',
+    '🧑🏿‍🎤' => 'chantadur:a: pel stgira',
+    '👨🏻‍🎤' => 'chantadur: pel clera',
+    '👨🏼‍🎤' => 'chantadur: pel mez clera',
+    '👨🏽‍🎤' => 'chantadur: pel media',
+    '👨🏾‍🎤' => 'chantadur: pel mez stgira',
+    '👨🏿‍🎤' => 'chantadur: pel stgira',
+    '👩🏻‍🎤' => 'chantadura: pel clera',
+    '👩🏼‍🎤' => 'chantadura: pel mez clera',
+    '👩🏽‍🎤' => 'chantadura: pel media',
+    '👩🏾‍🎤' => 'chantadura: pel mez stgira',
+    '👩🏿‍🎤' => 'chantadura: pel stgira',
+    '🧑🏻‍🎨' => 'pictur:a artist:a: pel clera',
+    '🧑🏼‍🎨' => 'pictur:a artist:a: pel mez clera',
+    '🧑🏽‍🎨' => 'pictur:a artist:a: pel media',
+    '🧑🏾‍🎨' => 'pictur:a artist:a: pel mez stgira',
+    '🧑🏿‍🎨' => 'pictur:a artist:a: pel stgira',
+    '👨🏻‍🎨' => 'pictur artist: pel clera',
+    '👨🏼‍🎨' => 'pictur artist: pel mez clera',
+    '👨🏽‍🎨' => 'pictur artist: pel media',
+    '👨🏾‍🎨' => 'pictur artist: pel mez stgira',
+    '👨🏿‍🎨' => 'pictur artist: pel stgira',
+    '👩🏻‍🎨' => 'pictura artista: pel clera',
+    '👩🏼‍🎨' => 'pictura artista: pel mez clera',
+    '👩🏽‍🎨' => 'pictura artista: pel media',
+    '👩🏾‍🎨' => 'pictura artista: pel mez stgira',
+    '👩🏿‍🎨' => 'pictura artista: pel stgira',
+    '🧑🏻‍✈' => 'pilot:a: pel clera',
+    '🧑🏼‍✈' => 'pilot:a: pel mez clera',
+    '🧑🏽‍✈' => 'pilot:a: pel media',
+    '🧑🏾‍✈' => 'pilot:a: pel mez stgira',
+    '🧑🏿‍✈' => 'pilot:a: pel stgira',
+    '👨🏻‍✈' => 'pilot: pel clera',
+    '👨🏼‍✈' => 'pilot: pel mez clera',
+    '👨🏽‍✈' => 'pilot: pel media',
+    '👨🏾‍✈' => 'pilot: pel mez stgira',
+    '👨🏿‍✈' => 'pilot: pel stgira',
+    '👩🏻‍✈' => 'pilota: pel clera',
+    '👩🏼‍✈' => 'pilota: pel mez clera',
+    '👩🏽‍✈' => 'pilota: pel media',
+    '👩🏾‍✈' => 'pilota: pel mez stgira',
+    '👩🏿‍✈' => 'pilota: pel stgira',
+    '🧑🏻‍🚀' => 'astronaut:a: pel clera',
+    '🧑🏼‍🚀' => 'astronaut:a: pel mez clera',
+    '🧑🏽‍🚀' => 'astronaut:a: pel media',
+    '🧑🏾‍🚀' => 'astronaut:a: pel mez stgira',
+    '🧑🏿‍🚀' => 'astronaut:a: pel stgira',
+    '👨🏻‍🚀' => 'astronaut: pel clera',
+    '👨🏼‍🚀' => 'astronaut: pel mez clera',
+    '👨🏽‍🚀' => 'astronaut: pel media',
+    '👨🏾‍🚀' => 'astronaut: pel mez stgira',
+    '👨🏿‍🚀' => 'astronaut: pel stgira',
+    '👩🏻‍🚀' => 'astronauta: pel clera',
+    '👩🏼‍🚀' => 'astronauta: pel mez clera',
+    '👩🏽‍🚀' => 'astronauta: pel media',
+    '👩🏾‍🚀' => 'astronauta: pel mez stgira',
+    '👩🏿‍🚀' => 'astronauta: pel stgira',
+    '🧑🏻‍🚒' => 'pumpier:a: pel clera',
+    '🧑🏼‍🚒' => 'pumpier:a: pel mez clera',
+    '🧑🏽‍🚒' => 'pumpier:a: pel media',
+    '🧑🏾‍🚒' => 'pumpier:a: pel mez stgira',
+    '🧑🏿‍🚒' => 'pumpier:a: pel stgira',
+    '👨🏻‍🚒' => 'pumpier: pel clera',
+    '👨🏼‍🚒' => 'pumpier: pel mez clera',
+    '👨🏽‍🚒' => 'pumpier: pel media',
+    '👨🏾‍🚒' => 'pumpier: pel mez stgira',
+    '👨🏿‍🚒' => 'pumpier: pel stgira',
+    '👩🏻‍🚒' => 'pumpiera: pel clera',
+    '👩🏼‍🚒' => 'pumpiera: pel mez clera',
+    '👩🏽‍🚒' => 'pumpiera: pel media',
+    '👩🏾‍🚒' => 'pumpiera: pel mez stgira',
+    '👩🏿‍🚒' => 'pumpiera: pel stgira',
+    '👮🏻‍♂' => 'policist: pel clera',
+    '👮🏼‍♂' => 'policist: pel mez clera',
+    '👮🏽‍♂' => 'policist: pel media',
+    '👮🏾‍♂' => 'policist: pel mez stgira',
+    '👮🏿‍♂' => 'policist: pel stgira',
+    '👮🏻‍♀' => 'policista: pel clera',
+    '👮🏼‍♀' => 'policista: pel mez clera',
+    '👮🏽‍♀' => 'policista: pel media',
+    '👮🏾‍♀' => 'policista: pel mez stgira',
+    '👮🏿‍♀' => 'policista: pel stgira',
+    '🕵🏻‍♂' => 'detectiv: pel clera',
+    '🕵🏼‍♂' => 'detectiv: pel mez clera',
+    '🕵🏽‍♂' => 'detectiv: pel media',
+    '🕵🏾‍♂' => 'detectiv: pel mez stgira',
+    '🕵🏿‍♂' => 'detectiv: pel stgira',
+    '🕵🏻‍♀' => 'detectiva: pel clera',
+    '🕵🏼‍♀' => 'detectiva: pel mez clera',
+    '🕵🏽‍♀' => 'detectiva: pel media',
+    '🕵🏾‍♀' => 'detectiva: pel mez stgira',
+    '🕵🏿‍♀' => 'detectiva: pel stgira',
+    '👷🏻‍♂' => 'lavurer da construcziun: pel clera',
+    '👷🏼‍♂' => 'lavurer da construcziun: pel mez clera',
+    '👷🏽‍♂' => 'lavurer da construcziun: pel media',
+    '👷🏾‍♂' => 'lavurer da construcziun: pel mez stgira',
+    '👷🏿‍♂' => 'lavurer da construcziun: pel stgira',
+    '👷🏻‍♀' => 'lavurera da construcziun: pel clera',
+    '👷🏼‍♀' => 'lavurera da construcziun: pel mez clera',
+    '👷🏽‍♀' => 'lavurera da construcziun: pel media',
+    '👷🏾‍♀' => 'lavurera da construcziun: pel mez stgira',
+    '👷🏿‍♀' => 'lavurera da construcziun: pel stgira',
+    '👳🏻‍♂' => 'um cun in turban: pel clera',
+    '👳🏼‍♂' => 'um cun in turban: pel mez clera',
+    '👳🏽‍♂' => 'um cun in turban: pel media',
+    '👳🏾‍♂' => 'um cun in turban: pel mez stgira',
+    '👳🏿‍♂' => 'um cun in turban: pel stgira',
+    '👳🏻‍♀' => 'dunna cun in turban: pel clera',
+    '👳🏼‍♀' => 'dunna cun in turban: pel mez clera',
+    '👳🏽‍♀' => 'dunna cun in turban: pel media',
+    '👳🏾‍♀' => 'dunna cun in turban: pel mez stgira',
+    '👳🏿‍♀' => 'dunna cun in turban: pel stgira',
     '🤵🏻‍♂' => 'um cun smoking: pel clera',
     '🤵🏼‍♂' => 'um cun smoking: pel mez clera',
     '🤵🏽‍♂' => 'um cun smoking: pel media',
@@ -21,10 +1022,991 @@
     '👰🏽‍♀' => 'dunna cun vel: pel media',
     '👰🏾‍♀' => 'dunna cun vel: pel mez stgira',
     '👰🏿‍♀' => 'dunna cun vel: pel stgira',
+    '👩🏻‍🍼' => 'dunna che dat latg: pel clera',
+    '👩🏼‍🍼' => 'dunna che dat latg: pel mez clera',
+    '👩🏽‍🍼' => 'dunna che dat latg: pel media',
+    '👩🏾‍🍼' => 'dunna che dat latg: pel mez stgira',
+    '👩🏿‍🍼' => 'dunna che dat latg: pel stgira',
+    '👨🏻‍🍼' => 'um che dat latg: pel clera',
+    '👨🏼‍🍼' => 'um che dat latg: pel mez clera',
+    '👨🏽‍🍼' => 'um che dat latg: pel media',
+    '👨🏾‍🍼' => 'um che dat latg: pel mez stgira',
+    '👨🏿‍🍼' => 'um che dat latg: pel stgira',
+    '🧑🏻‍🍼' => 'persuna che dat la clocca ad in pop: pel clera',
+    '🧑🏼‍🍼' => 'persuna che dat la clocca ad in pop: pel mez clera',
+    '🧑🏽‍🍼' => 'persuna che dat la clocca ad in pop: pel media',
+    '🧑🏾‍🍼' => 'persuna che dat la clocca ad in pop: pel mez stgira',
+    '🧑🏿‍🍼' => 'persuna che dat la clocca ad in pop: pel stgira',
+    '🧑🏻‍🎄' => 'Santa Claus: pel clera',
+    '🧑🏼‍🎄' => 'Santa Claus: pel mez clera',
+    '🧑🏽‍🎄' => 'Santa Claus: pel media',
+    '🧑🏾‍🎄' => 'Santa Claus: pel mez stgira',
+    '🧑🏿‍🎄' => 'Santa Claus: pel stgira',
+    '🦸🏻‍♂' => 'supererox: pel clera',
+    '🦸🏼‍♂' => 'supererox: pel mez clera',
+    '🦸🏽‍♂' => 'supererox: pel media',
+    '🦸🏾‍♂' => 'supererox: pel mez stgira',
+    '🦸🏿‍♂' => 'supererox: pel stgira',
+    '🦸🏻‍♀' => 'supereroxa: pel clera',
+    '🦸🏼‍♀' => 'supereroxa: pel mez clera',
+    '🦸🏽‍♀' => 'supereroxa: pel media',
+    '🦸🏾‍♀' => 'supereroxa: pel mez stgira',
+    '🦸🏿‍♀' => 'supereroxa: pel stgira',
+    '🦹🏻‍♂' => 'supernausch: pel clera',
+    '🦹🏼‍♂' => 'supernausch: pel mez clera',
+    '🦹🏽‍♂' => 'supernausch: pel media',
+    '🦹🏾‍♂' => 'supernausch: pel mez stgira',
+    '🦹🏿‍♂' => 'supernausch: pel stgira',
+    '🦹🏻‍♀' => 'supernauscha: pel clera',
+    '🦹🏼‍♀' => 'supernauscha: pel mez clera',
+    '🦹🏽‍♀' => 'supernauscha: pel media',
+    '🦹🏾‍♀' => 'supernauscha: pel mez stgira',
+    '🦹🏿‍♀' => 'supernauscha: pel stgira',
+    '🧙🏻‍♂' => 'striun: pel clera',
+    '🧙🏼‍♂' => 'striun: pel mez clera',
+    '🧙🏽‍♂' => 'striun: pel media',
+    '🧙🏾‍♂' => 'striun: pel mez stgira',
+    '🧙🏿‍♂' => 'striun: pel stgira',
+    '🧙🏻‍♀' => 'striuna: pel clera',
+    '🧙🏼‍♀' => 'striuna: pel mez clera',
+    '🧙🏽‍♀' => 'striuna: pel media',
+    '🧙🏾‍♀' => 'striuna: pel mez stgira',
+    '🧙🏿‍♀' => 'striuna: pel stgira',
+    '🧚🏻‍♂' => 'dial: pel clera',
+    '🧚🏼‍♂' => 'dial: pel mez clera',
+    '🧚🏽‍♂' => 'dial: pel media',
+    '🧚🏾‍♂' => 'dial: pel mez stgira',
+    '🧚🏿‍♂' => 'dial: pel stgira',
+    '🧚🏻‍♀' => 'diala: pel clera',
+    '🧚🏼‍♀' => 'diala: pel mez clera',
+    '🧚🏽‍♀' => 'diala: pel media',
+    '🧚🏾‍♀' => 'diala: pel mez stgira',
+    '🧚🏿‍♀' => 'diala: pel stgira',
+    '🧛🏻‍♂' => 'vampir: pel clera',
+    '🧛🏼‍♂' => 'vampir: pel mez clera',
+    '🧛🏽‍♂' => 'vampir: pel media',
+    '🧛🏾‍♂' => 'vampir: pel mez stgira',
+    '🧛🏿‍♂' => 'vampir: pel stgira',
+    '🧛🏻‍♀' => 'vamipra: pel clera',
+    '🧛🏼‍♀' => 'vamipra: pel mez clera',
+    '🧛🏽‍♀' => 'vamipra: pel media',
+    '🧛🏾‍♀' => 'vamipra: pel mez stgira',
+    '🧛🏿‍♀' => 'vamipra: pel stgira',
+    '🧜🏻‍♂' => 'um da l’aua: pel clera',
+    '🧜🏼‍♂' => 'um da l’aua: pel mez clera',
+    '🧜🏽‍♂' => 'um da l’aua: pel media',
+    '🧜🏾‍♂' => 'um da l’aua: pel mez stgira',
+    '🧜🏿‍♂' => 'um da l’aua: pel stgira',
+    '🧜🏻‍♀' => 'sirena: pel clera',
+    '🧜🏼‍♀' => 'sirena: pel mez clera',
+    '🧜🏽‍♀' => 'sirena: pel media',
+    '🧜🏾‍♀' => 'sirena: pel mez stgira',
+    '🧜🏿‍♀' => 'sirena: pel stgira',
+    '🧝🏻‍♂' => 'elf: pel clera',
+    '🧝🏼‍♂' => 'elf: pel mez clera',
+    '🧝🏽‍♂' => 'elf: pel media',
+    '🧝🏾‍♂' => 'elf: pel mez stgira',
+    '🧝🏿‍♂' => 'elf: pel stgira',
+    '🧝🏻‍♀' => 'elfa: pel clera',
+    '🧝🏼‍♀' => 'elfa: pel mez clera',
+    '🧝🏽‍♀' => 'elfa: pel media',
+    '🧝🏾‍♀' => 'elfa: pel mez stgira',
+    '🧝🏿‍♀' => 'elfa: pel stgira',
+    '💆🏻‍♂' => 'um che vegn massà: pel clera',
+    '💆🏼‍♂' => 'um che vegn massà: pel mez clera',
+    '💆🏽‍♂' => 'um che vegn massà: pel media',
+    '💆🏾‍♂' => 'um che vegn massà: pel mez stgira',
+    '💆🏿‍♂' => 'um che vegn massà: pel stgira',
+    '💆🏻‍♀' => 'dunna che vegn massada: pel clera',
+    '💆🏼‍♀' => 'dunna che vegn massada: pel mez clera',
+    '💆🏽‍♀' => 'dunna che vegn massada: pel media',
+    '💆🏾‍♀' => 'dunna che vegn massada: pel mez stgira',
+    '💆🏿‍♀' => 'dunna che vegn massada: pel stgira',
+    '💇🏻‍♂' => 'um che sa lascha tagliar ils chavels: pel clera',
+    '💇🏼‍♂' => 'um che sa lascha tagliar ils chavels: pel mez clera',
+    '💇🏽‍♂' => 'um che sa lascha tagliar ils chavels: pel media',
+    '💇🏾‍♂' => 'um che sa lascha tagliar ils chavels: pel mez stgira',
+    '💇🏿‍♂' => 'um che sa lascha tagliar ils chavels: pel stgira',
+    '💇🏻‍♀' => 'dunna che sa lascha tagliar ils chavels: pel clera',
+    '💇🏼‍♀' => 'dunna che sa lascha tagliar ils chavels: pel mez clera',
+    '💇🏽‍♀' => 'dunna che sa lascha tagliar ils chavels: pel media',
+    '💇🏾‍♀' => 'dunna che sa lascha tagliar ils chavels: pel mez stgira',
+    '💇🏿‍♀' => 'dunna che sa lascha tagliar ils chavels: pel stgira',
+    '🚶🏻‍♂' => 'um che va a pe: pel clera',
+    '🚶🏼‍♂' => 'um che va a pe: pel mez clera',
+    '🚶🏽‍♂' => 'um che va a pe: pel media',
+    '🚶🏾‍♂' => 'um che va a pe: pel mez stgira',
+    '🚶🏿‍♂' => 'um che va a pe: pel stgira',
+    '🚶🏻‍♀' => 'dunna che va a pe: pel clera',
+    '🚶🏼‍♀' => 'dunna che va a pe: pel mez clera',
+    '🚶🏽‍♀' => 'dunna che va a pe: pel media',
+    '🚶🏾‍♀' => 'dunna che va a pe: pel mez stgira',
+    '🚶🏿‍♀' => 'dunna che va a pe: pel stgira',
+    '🚶🏻‍➡' => 'persuna che va a pe: pel clera, a dretga',
+    '🚶🏼‍➡' => 'persuna che va a pe: pel mez clera, a dretga',
+    '🚶🏽‍➡' => 'persuna che va a pe: pel media, a dretga',
+    '🚶🏾‍➡' => 'persuna che va a pe: pel mez stgira, a dretga',
+    '🚶🏿‍➡' => 'persuna che va a pe: pel stgira, a dretga',
+    '🧍🏻‍♂' => 'um en pe: pel clera',
+    '🧍🏼‍♂' => 'um en pe: pel mez clera',
+    '🧍🏽‍♂' => 'um en pe: pel media',
+    '🧍🏾‍♂' => 'um en pe: pel mez stgira',
+    '🧍🏿‍♂' => 'um en pe: pel stgira',
+    '🧍🏻‍♀' => 'dunna en pe: pel clera',
+    '🧍🏼‍♀' => 'dunna en pe: pel mez clera',
+    '🧍🏽‍♀' => 'dunna en pe: pel media',
+    '🧍🏾‍♀' => 'dunna en pe: pel mez stgira',
+    '🧍🏿‍♀' => 'dunna en pe: pel stgira',
+    '🧎🏻‍♂' => 'um en schanuglias: pel clera',
+    '🧎🏼‍♂' => 'um en schanuglias: pel mez clera',
+    '🧎🏽‍♂' => 'um en schanuglias: pel media',
+    '🧎🏾‍♂' => 'um en schanuglias: pel mez stgira',
+    '🧎🏿‍♂' => 'um en schanuglias: pel stgira',
+    '🧎🏻‍♀' => 'dunna en schanuglias: pel clera',
+    '🧎🏼‍♀' => 'dunna en schanuglias: pel mez clera',
+    '🧎🏽‍♀' => 'dunna en schanuglias: pel media',
+    '🧎🏾‍♀' => 'dunna en schanuglias: pel mez stgira',
+    '🧎🏿‍♀' => 'dunna en schanuglias: pel stgira',
+    '🧎🏻‍➡' => 'persuna en schanuglias: pel clera, a dretga',
+    '🧎🏼‍➡' => 'persuna en schanuglias: pel mez clera, a dretga',
+    '🧎🏽‍➡' => 'persuna en schanuglias: pel media, a dretga',
+    '🧎🏾‍➡' => 'persuna en schanuglias: pel mez stgira, a dretga',
+    '🧎🏿‍➡' => 'persuna en schanuglias: pel stgira, a dretga',
+    '🧑🏻‍🦯' => 'persuna cun ina channa da tschorvs: pel clera',
+    '🧑🏼‍🦯' => 'persuna cun ina channa da tschorvs: pel mez clera',
+    '🧑🏽‍🦯' => 'persuna cun ina channa da tschorvs: pel media',
+    '🧑🏾‍🦯' => 'persuna cun ina channa da tschorvs: pel mez stgira',
+    '🧑🏿‍🦯' => 'persuna cun ina channa da tschorvs: pel stgira',
+    '👨🏻‍🦯' => 'um cun channa: pel clera',
+    '👨🏼‍🦯' => 'um cun channa: pel mez clera',
+    '👨🏽‍🦯' => 'um cun channa: pel media',
+    '👨🏾‍🦯' => 'um cun channa: pel mez stgira',
+    '👨🏿‍🦯' => 'um cun channa: pel stgira',
+    '👩🏻‍🦯' => 'dunna cun channa: pel clera',
+    '👩🏼‍🦯' => 'dunna cun channa: pel mez clera',
+    '👩🏽‍🦯' => 'dunna cun channa: pel media',
+    '👩🏾‍🦯' => 'dunna cun channa: pel mez stgira',
+    '👩🏿‍🦯' => 'dunna cun channa: pel stgira',
+    '🧑🏻‍🦼' => 'persuna en ina sutga cun rodas electrica: pel clera',
+    '🧑🏼‍🦼' => 'persuna en ina sutga cun rodas electrica: pel mez clera',
+    '🧑🏽‍🦼' => 'persuna en ina sutga cun rodas electrica: pel media',
+    '🧑🏾‍🦼' => 'persuna en ina sutga cun rodas electrica: pel mez stgira',
+    '🧑🏿‍🦼' => 'persuna en ina sutga cun rodas electrica: pel stgira',
+    '👨🏻‍🦼' => 'um en ina sutga cun rodas electrica: pel clera',
+    '👨🏼‍🦼' => 'um en ina sutga cun rodas electrica: pel mez clera',
+    '👨🏽‍🦼' => 'um en ina sutga cun rodas electrica: pel media',
+    '👨🏾‍🦼' => 'um en ina sutga cun rodas electrica: pel mez stgira',
+    '👨🏿‍🦼' => 'um en ina sutga cun rodas electrica: pel stgira',
+    '👩🏻‍🦼' => 'dunna en ina sutga cun rodas electrica: pel clera',
+    '👩🏼‍🦼' => 'dunna en ina sutga cun rodas electrica: pel mez clera',
+    '👩🏽‍🦼' => 'dunna en ina sutga cun rodas electrica: pel media',
+    '👩🏾‍🦼' => 'dunna en ina sutga cun rodas electrica: pel mez stgira',
+    '👩🏿‍🦼' => 'dunna en ina sutga cun rodas electrica: pel stgira',
+    '🧑🏻‍🦽' => 'persuna en ina sutga cun rodas manuala: pel clera',
+    '🧑🏼‍🦽' => 'persuna en ina sutga cun rodas manuala: pel mez clera',
+    '🧑🏽‍🦽' => 'persuna en ina sutga cun rodas manuala: pel media',
+    '🧑🏾‍🦽' => 'persuna en ina sutga cun rodas manuala: pel mez stgira',
+    '🧑🏿‍🦽' => 'persuna en ina sutga cun rodas manuala: pel stgira',
+    '👨🏻‍🦽' => 'um en ina sutga cun rodas manuala: pel clera',
+    '👨🏼‍🦽' => 'um en ina sutga cun rodas manuala: pel mez clera',
+    '👨🏽‍🦽' => 'um en ina sutga cun rodas manuala: pel media',
+    '👨🏾‍🦽' => 'um en ina sutga cun rodas manuala: pel mez stgira',
+    '👨🏿‍🦽' => 'um en ina sutga cun rodas manuala: pel stgira',
+    '👩🏻‍🦽' => 'dunna en ina sutga cun rodas manuala: pel clera',
+    '👩🏼‍🦽' => 'dunna en ina sutga cun rodas manuala: pel mez clera',
+    '👩🏽‍🦽' => 'dunna en ina sutga cun rodas manuala: pel media',
+    '👩🏾‍🦽' => 'dunna en ina sutga cun rodas manuala: pel mez stgira',
+    '👩🏿‍🦽' => 'dunna en ina sutga cun rodas manuala: pel stgira',
+    '🏃🏻‍♂' => 'um che curra: pel clera',
+    '🏃🏼‍♂' => 'um che curra: pel mez clera',
+    '🏃🏽‍♂' => 'um che curra: pel media',
+    '🏃🏾‍♂' => 'um che curra: pel mez stgira',
+    '🏃🏿‍♂' => 'um che curra: pel stgira',
+    '🏃🏻‍♀' => 'dunna che curra: pel clera',
+    '🏃🏼‍♀' => 'dunna che curra: pel mez clera',
+    '🏃🏽‍♀' => 'dunna che curra: pel media',
+    '🏃🏾‍♀' => 'dunna che curra: pel mez stgira',
+    '🏃🏿‍♀' => 'dunna che curra: pel stgira',
+    '🏃🏻‍➡' => 'persuna che curra: pel clera, a dretga',
+    '🏃🏼‍➡' => 'persuna che curra: pel mez clera, a dretga',
+    '🏃🏽‍➡' => 'persuna che curra: pel media, a dretga',
+    '🏃🏾‍➡' => 'persuna che curra: pel mez stgira, a dretga',
+    '🏃🏿‍➡' => 'persuna che curra: pel stgira, a dretga',
+    '👯🏻‍♀' => 'dunnas cun ureglias da lieur: pel clera',
+    '👯🏼‍♀' => 'dunnas cun ureglias da lieur: pel mez clera',
+    '👯🏽‍♀' => 'dunnas cun ureglias da lieur: pel media',
+    '👯🏾‍♀' => 'dunnas cun ureglias da lieur: pel mez stgira',
+    '👯🏿‍♀' => 'dunnas cun ureglias da lieur: pel stgira',
+    '👯🏻‍♂' => 'umens cun ureglias da lieur: pel clera',
+    '👯🏼‍♂' => 'umens cun ureglias da lieur: pel mez clera',
+    '👯🏽‍♂' => 'umens cun ureglias da lieur: pel media',
+    '👯🏾‍♂' => 'umens cun ureglias da lieur: pel mez stgira',
+    '👯🏿‍♂' => 'umens cun ureglias da lieur: pel stgira',
+    '🧖🏻‍♂' => 'um en ina stanza cun vapur: pel clera',
+    '🧖🏼‍♂' => 'um en ina stanza cun vapur: pel mez clera',
+    '🧖🏽‍♂' => 'um en ina stanza cun vapur: pel media',
+    '🧖🏾‍♂' => 'um en ina stanza cun vapur: pel mez stgira',
+    '🧖🏿‍♂' => 'um en ina stanza cun vapur: pel stgira',
+    '🧖🏻‍♀' => 'dunna en ina stanza cun vapur: pel clera',
+    '🧖🏼‍♀' => 'dunna en ina stanza cun vapur: pel mez clera',
+    '🧖🏽‍♀' => 'dunna en ina stanza cun vapur: pel media',
+    '🧖🏾‍♀' => 'dunna en ina stanza cun vapur: pel mez stgira',
+    '🧖🏿‍♀' => 'dunna en ina stanza cun vapur: pel stgira',
+    '🧗🏻‍♂' => 'um che raiva: pel clera',
+    '🧗🏼‍♂' => 'um che raiva: pel mez clera',
+    '🧗🏽‍♂' => 'um che raiva: pel media',
+    '🧗🏾‍♂' => 'um che raiva: pel mez stgira',
+    '🧗🏿‍♂' => 'um che raiva: pel stgira',
+    '🧗🏻‍♀' => 'dunna che raiva: pel clera',
+    '🧗🏼‍♀' => 'dunna che raiva: pel mez clera',
+    '🧗🏽‍♀' => 'dunna che raiva: pel media',
+    '🧗🏾‍♀' => 'dunna che raiva: pel mez stgira',
+    '🧗🏿‍♀' => 'dunna che raiva: pel stgira',
+    '🏌🏻‍♂' => 'um che dat golf: pel clera',
+    '🏌🏼‍♂' => 'um che dat golf: pel mez clera',
+    '🏌🏽‍♂' => 'um che dat golf: pel media',
+    '🏌🏾‍♂' => 'um che dat golf: pel mez stgira',
+    '🏌🏿‍♂' => 'um che dat golf: pel stgira',
+    '🏌🏻‍♀' => 'dunna che dat golf: pel clera',
+    '🏌🏼‍♀' => 'dunna che dat golf: pel mez clera',
+    '🏌🏽‍♀' => 'dunna che dat golf: pel media',
+    '🏌🏾‍♀' => 'dunna che dat golf: pel mez stgira',
+    '🏌🏿‍♀' => 'dunna che dat golf: pel stgira',
+    '🏄🏻‍♂' => 'um che fa surfing: pel clera',
+    '🏄🏼‍♂' => 'um che fa surfing: pel mez clera',
+    '🏄🏽‍♂' => 'um che fa surfing: pel media',
+    '🏄🏾‍♂' => 'um che fa surfing: pel mez stgira',
+    '🏄🏿‍♂' => 'um che fa surfing: pel stgira',
+    '🏄🏻‍♀' => 'dunna che fa surfing: pel clera',
+    '🏄🏼‍♀' => 'dunna che fa surfing: pel mez clera',
+    '🏄🏽‍♀' => 'dunna che fa surfing: pel media',
+    '🏄🏾‍♀' => 'dunna che fa surfing: pel mez stgira',
+    '🏄🏿‍♀' => 'dunna che fa surfing: pel stgira',
+    '🚣🏻‍♂' => 'um che rembla: pel clera',
+    '🚣🏼‍♂' => 'um che rembla: pel mez clera',
+    '🚣🏽‍♂' => 'um che rembla: pel media',
+    '🚣🏾‍♂' => 'um che rembla: pel mez stgira',
+    '🚣🏿‍♂' => 'um che rembla: pel stgira',
+    '🚣🏻‍♀' => 'dunna che rembla: pel clera',
+    '🚣🏼‍♀' => 'dunna che rembla: pel mez clera',
+    '🚣🏽‍♀' => 'dunna che rembla: pel media',
+    '🚣🏾‍♀' => 'dunna che rembla: pel mez stgira',
+    '🚣🏿‍♀' => 'dunna che rembla: pel stgira',
+    '🏊🏻‍♂' => 'um che noda: pel clera',
+    '🏊🏼‍♂' => 'um che noda: pel mez clera',
+    '🏊🏽‍♂' => 'um che noda: pel media',
+    '🏊🏾‍♂' => 'um che noda: pel mez stgira',
+    '🏊🏿‍♂' => 'um che noda: pel stgira',
+    '🏊🏻‍♀' => 'dunna che noda: pel clera',
+    '🏊🏼‍♀' => 'dunna che noda: pel mez clera',
+    '🏊🏽‍♀' => 'dunna che noda: pel media',
+    '🏊🏾‍♀' => 'dunna che noda: pel mez stgira',
+    '🏊🏿‍♀' => 'dunna che noda: pel stgira',
+    '⛹🏻‍♂' => 'um cun balla: pel clera',
+    '⛹🏼‍♂' => 'um cun balla: pel mez clera',
+    '⛹🏽‍♂' => 'um cun balla: pel media',
+    '⛹🏾‍♂' => 'um cun balla: pel mez stgira',
+    '⛹🏿‍♂' => 'um cun balla: pel stgira',
+    '⛹🏻‍♀' => 'dunna cun balla: pel clera',
+    '⛹🏼‍♀' => 'dunna cun balla: pel mez clera',
+    '⛹🏽‍♀' => 'dunna cun balla: pel media',
+    '⛹🏾‍♀' => 'dunna cun balla: pel mez stgira',
+    '⛹🏿‍♀' => 'dunna cun balla: pel stgira',
+    '🏋🏻‍♂' => 'um che auza pais: pel clera',
+    '🏋🏼‍♂' => 'um che auza pais: pel mez clera',
+    '🏋🏽‍♂' => 'um che auza pais: pel media',
+    '🏋🏾‍♂' => 'um che auza pais: pel mez stgira',
+    '🏋🏿‍♂' => 'um che auza pais: pel stgira',
+    '🏋🏻‍♀' => 'dunna che auza pais: pel clera',
+    '🏋🏼‍♀' => 'dunna che auza pais: pel mez clera',
+    '🏋🏽‍♀' => 'dunna che auza pais: pel media',
+    '🏋🏾‍♀' => 'dunna che auza pais: pel mez stgira',
+    '🏋🏿‍♀' => 'dunna che auza pais: pel stgira',
+    '🚴🏻‍♂' => 'um che va cun velo: pel clera',
+    '🚴🏼‍♂' => 'um che va cun velo: pel mez clera',
+    '🚴🏽‍♂' => 'um che va cun velo: pel media',
+    '🚴🏾‍♂' => 'um che va cun velo: pel mez stgira',
+    '🚴🏿‍♂' => 'um che va cun velo: pel stgira',
+    '🚴🏻‍♀' => 'dunna che va cun velo: pel clera',
+    '🚴🏼‍♀' => 'dunna che va cun velo: pel mez clera',
+    '🚴🏽‍♀' => 'dunna che va cun velo: pel media',
+    '🚴🏾‍♀' => 'dunna che va cun velo: pel mez stgira',
+    '🚴🏿‍♀' => 'dunna che va cun velo: pel stgira',
+    '🚵🏻‍♂' => 'um che va cun mountainbike: pel clera',
+    '🚵🏼‍♂' => 'um che va cun mountainbike: pel mez clera',
+    '🚵🏽‍♂' => 'um che va cun mountainbike: pel media',
+    '🚵🏾‍♂' => 'um che va cun mountainbike: pel mez stgira',
+    '🚵🏿‍♂' => 'um che va cun mountainbike: pel stgira',
+    '🚵🏻‍♀' => 'dunna che va cun mountainbike: pel clera',
+    '🚵🏼‍♀' => 'dunna che va cun mountainbike: pel mez clera',
+    '🚵🏽‍♀' => 'dunna che va cun mountainbike: pel media',
+    '🚵🏾‍♀' => 'dunna che va cun mountainbike: pel mez stgira',
+    '🚵🏿‍♀' => 'dunna che va cun mountainbike: pel stgira',
+    '🤸🏻‍♂' => 'um che fa la roda: pel clera',
+    '🤸🏼‍♂' => 'um che fa la roda: pel mez clera',
+    '🤸🏽‍♂' => 'um che fa la roda: pel media',
+    '🤸🏾‍♂' => 'um che fa la roda: pel mez stgira',
+    '🤸🏿‍♂' => 'um che fa la roda: pel stgira',
+    '🤸🏻‍♀' => 'dunna che fa la roda: pel clera',
+    '🤸🏼‍♀' => 'dunna che fa la roda: pel mez clera',
+    '🤸🏽‍♀' => 'dunna che fa la roda: pel media',
+    '🤸🏾‍♀' => 'dunna che fa la roda: pel mez stgira',
+    '🤸🏿‍♀' => 'dunna che fa la roda: pel stgira',
+    '🤼🏻‍♀' => 'dunnas che lutgan: pel clera',
+    '🤼🏼‍♀' => 'dunnas che lutgan: pel mez clera',
+    '🤼🏽‍♀' => 'dunnas che lutgan: pel media',
+    '🤼🏾‍♀' => 'dunnas che lutgan: pel mez stgira',
+    '🤼🏿‍♀' => 'dunnas che lutgan: pel stgira',
+    '🤼🏻‍♂' => 'umens che lutgan: pel clera',
+    '🤼🏼‍♂' => 'umens che lutgan: pel mez clera',
+    '🤼🏽‍♂' => 'umens che lutgan: pel media',
+    '🤼🏾‍♂' => 'umens che lutgan: pel mez stgira',
+    '🤼🏿‍♂' => 'umens che lutgan: pel stgira',
+    '🤽🏻‍♂' => 'um che gioga ballanataziun: pel clera',
+    '🤽🏼‍♂' => 'um che gioga ballanataziun: pel mez clera',
+    '🤽🏽‍♂' => 'um che gioga ballanataziun: pel media',
+    '🤽🏾‍♂' => 'um che gioga ballanataziun: pel mez stgira',
+    '🤽🏿‍♂' => 'um che gioga ballanataziun: pel stgira',
+    '🤽🏻‍♀' => 'dunna che gioga ballanataziun: pel clera',
+    '🤽🏼‍♀' => 'dunna che gioga ballanataziun: pel mez clera',
+    '🤽🏽‍♀' => 'dunna che gioga ballanataziun: pel media',
+    '🤽🏾‍♀' => 'dunna che gioga ballanataziun: pel mez stgira',
+    '🤽🏿‍♀' => 'dunna che gioga ballanataziun: pel stgira',
+    '🤾🏻‍♂' => 'um che gioga ballamaun: pel clera',
+    '🤾🏼‍♂' => 'um che gioga ballamaun: pel mez clera',
+    '🤾🏽‍♂' => 'um che gioga ballamaun: pel media',
+    '🤾🏾‍♂' => 'um che gioga ballamaun: pel mez stgira',
+    '🤾🏿‍♂' => 'um che gioga ballamaun: pel stgira',
+    '🤾🏻‍♀' => 'dunna che gioga ballamaun: pel clera',
+    '🤾🏼‍♀' => 'dunna che gioga ballamaun: pel mez clera',
+    '🤾🏽‍♀' => 'dunna che gioga ballamaun: pel media',
+    '🤾🏾‍♀' => 'dunna che gioga ballamaun: pel mez stgira',
+    '🤾🏿‍♀' => 'dunna che gioga ballamaun: pel stgira',
+    '🤹🏻‍♂' => 'um che schonglescha: pel clera',
+    '🤹🏼‍♂' => 'um che schonglescha: pel mez clera',
+    '🤹🏽‍♂' => 'um che schonglescha: pel media',
+    '🤹🏾‍♂' => 'um che schonglescha: pel mez stgira',
+    '🤹🏿‍♂' => 'um che schonglescha: pel stgira',
+    '🤹🏻‍♀' => 'dunna che schonglescha: pel clera',
+    '🤹🏼‍♀' => 'dunna che schonglescha: pel mez clera',
+    '🤹🏽‍♀' => 'dunna che schonglescha: pel media',
+    '🤹🏾‍♀' => 'dunna che schonglescha: pel mez stgira',
+    '🤹🏿‍♀' => 'dunna che schonglescha: pel stgira',
+    '🧘🏻‍♂' => 'um en la posiziun da lotos: pel clera',
+    '🧘🏼‍♂' => 'um en la posiziun da lotos: pel mez clera',
+    '🧘🏽‍♂' => 'um en la posiziun da lotos: pel media',
+    '🧘🏾‍♂' => 'um en la posiziun da lotos: pel mez stgira',
+    '🧘🏿‍♂' => 'um en la posiziun da lotos: pel stgira',
+    '🧘🏻‍♀' => 'dunna en la posiziun da lotos: pel clera',
+    '🧘🏼‍♀' => 'dunna en la posiziun da lotos: pel mez clera',
+    '🧘🏽‍♀' => 'dunna en la posiziun da lotos: pel media',
+    '🧘🏾‍♀' => 'dunna en la posiziun da lotos: pel mez stgira',
+    '🧘🏿‍♀' => 'dunna en la posiziun da lotos: pel stgira',
+    '🧑‍🦰' => 'persuna: chavels cotschens',
+    '🧑‍🦱' => 'persuna: chavels ritschads',
+    '🧑‍🦳' => 'persuna: chavels alvs',
+    '🧑‍🦲' => 'persuna: chau blut',
+    '👨‍🦰' => 'um: chavels cotschens',
+    '👨‍🦱' => 'um: chavels ritschads',
+    '👨‍🦳' => 'um: chavels alvs',
+    '👨‍🦲' => 'um: chau blut',
+    '👩‍🦰' => 'dunna: chavels cotschens',
+    '👩‍🦱' => 'dunna: chavels ritschads',
+    '👩‍🦳' => 'dunna: chavels alvs',
+    '👩‍🦲' => 'dunna: chau blut',
+    '🚶‍➡' => 'persuna che va a pe: a dretga',
+    '🧎‍➡' => 'persuna en schanuglias: a dretga',
+    '🏃‍➡' => 'persuna che curra: a dretga',
+    '👨‍👦' => 'famiglia: um, mattet',
+    '👨‍👧' => 'famiglia: um, mattetta',
+    '👩‍👦' => 'famiglia: dunna, mattet',
+    '👩‍👧' => 'famiglia: dunna, mattetta',
+    '😶‍🌫' => 'fatscha en nivels',
+    '😮‍💨' => 'fatscha che expira',
+    '🙂‍↕' => 'dar dal chau',
+    '😵‍💫' => 'fatscha cun egls en furma da spirala',
+    '❤‍🔥' => 'cor che arda',
+    '❤‍🩹' => 'cor cun bandascha',
+    '👁‍🗨' => 'egl en ina nivletta',
+    '🧔‍♂' => 'um: barba',
+    '👱‍♂' => 'um: chavels blonds',
+    '🧔‍♀' => 'dunna: barba',
+    '👱‍♀' => 'dunna: chavels blonds',
+    '🙍‍♂' => 'um malcuntent',
+    '🙍‍♀' => 'dunna malcuntenta',
+    '🙎‍♂' => 'um permalà',
+    '🙎‍♀' => 'dunna permalada',
+    '🙅‍♂' => 'um cun bratscha cruschada',
+    '🙅‍♀' => 'dunna cun bratscha cruschada',
+    '🙆‍♂' => 'um che tegna ils mauns sin il chau',
+    '🙆‍♀' => 'dunna che tegna ils mauns sin il chau',
+    '💁‍♂' => 'um che tegna la palma-maun vers ensi',
+    '💁‍♀' => 'dunna che tegna la palma-maun vers ensi',
+    '🙋‍♂' => 'um che auza il maun',
+    '🙋‍♀' => 'dunna che auza il maun',
+    '🧏‍♂' => 'um surd',
+    '🧏‍♀' => 'dunna surda',
+    '🙇‍♂' => 'um che s’enclina',
+    '🙇‍♀' => 'dunna che s’enclina',
+    '🤦‍♂' => 'um cun la palma-maun sin la fatscha',
+    '🤦‍♀' => 'dunna cun la palma-maun sin la fatscha',
+    '🤷‍♂' => 'um che auza las spatlas',
+    '🤷‍♀' => 'dunna che auza las spatlas',
+    '🧑‍⚕' => 'persuna che lavura en il sectur da la sanadad',
+    '👨‍⚕' => 'um che lavura en il sectur da la sanadad',
+    '👩‍⚕' => 'dunna che lavura en il sectur da la sanadad',
+    '🧑‍🎓' => 'student:a',
+    '👨‍🎓' => 'student',
+    '👩‍🎓' => 'studenta',
+    '🧑‍🏫' => 'scolast:a',
+    '👨‍🏫' => 'scolast',
+    '👩‍🏫' => 'scolasta',
+    '🧑‍⚖' => 'derschad:ra',
+    '👨‍⚖' => 'derschader',
+    '👩‍⚖' => 'derschadra',
+    '🧑‍🌾' => 'pur:a',
+    '👨‍🌾' => 'pur',
+    '👩‍🌾' => 'pura',
+    '🧑‍🍳' => 'cuschinier:a',
+    '👨‍🍳' => 'cuschinier',
+    '👩‍🍳' => 'cuschiniera',
+    '🧑‍🔧' => 'mecanist:a',
+    '👨‍🔧' => 'mecanist',
+    '👩‍🔧' => 'mecanista',
+    '🧑‍🏭' => 'persuna che lavura en fabrica',
+    '👨‍🏭' => 'um che lavura en fabrica',
+    '👩‍🏭' => 'dunna che lavura en fabrica',
+    '🧑‍💼' => 'birolist:a',
+    '👨‍💼' => 'birolist',
+    '👩‍💼' => 'birolista',
+    '🧑‍🔬' => 'scienzia:da',
+    '👨‍🔬' => 'scienzià',
+    '👩‍🔬' => 'scienziada',
+    '🧑‍💻' => 'tecnolog:a',
+    '👨‍💻' => 'tecnolog',
+    '👩‍💻' => 'tecnologa',
+    '🧑‍🎤' => 'chantadur:a',
+    '👨‍🎤' => 'chantadur',
+    '👩‍🎤' => 'chantadura',
+    '🧑‍🎨' => 'pictur:a artist:a',
+    '👨‍🎨' => 'pictur artist',
+    '👩‍🎨' => 'pictura artista',
+    '🧑‍✈' => 'pilot:a',
+    '👨‍✈' => 'pilot',
+    '👩‍✈' => 'pilota',
+    '🧑‍🚀' => 'astronaut:a',
+    '👨‍🚀' => 'astronaut',
+    '👩‍🚀' => 'astronauta',
+    '🧑‍🚒' => 'pumpier:a',
+    '👨‍🚒' => 'pumpier',
+    '👩‍🚒' => 'pumpiera',
+    '👮‍♂' => 'policist',
+    '👮‍♀' => 'policista',
+    '🕵‍♂' => 'detectiv',
+    '🕵‍♀' => 'detectiva',
+    '👷‍♂' => 'lavurer da construcziun',
+    '👷‍♀' => 'lavurera da construcziun',
+    '👳‍♂' => 'um cun in turban',
+    '👳‍♀' => 'dunna cun in turban',
     '🤵‍♂' => 'um cun smoking',
     '🤵‍♀' => 'dunna cun smoking',
     '👰‍♂' => 'um cun vel',
     '👰‍♀' => 'dunna cun vel',
+    '👩‍🍼' => 'dunna che dat latg',
+    '👨‍🍼' => 'um che dat latg',
+    '🧑‍🍼' => 'persuna che dat la clocca ad in pop',
+    '🧑‍🎄' => 'Santa Claus',
+    '🦸‍♂' => 'supererox',
+    '🦸‍♀' => 'supereroxa',
+    '🦹‍♂' => 'supernausch',
+    '🦹‍♀' => 'supernauscha',
+    '🧙‍♂' => 'striun',
+    '🧙‍♀' => 'striuna',
+    '🧚‍♂' => 'dial',
+    '🧚‍♀' => 'diala',
+    '🧛‍♂' => 'vampir',
+    '🧛‍♀' => 'vamipra',
+    '🧜‍♂' => 'um da l’aua',
+    '🧜‍♀' => 'sirena',
+    '🧝‍♂' => 'elf',
+    '🧝‍♀' => 'elfa',
+    '🧞‍♂' => 'spiert da buttiglia masculin',
+    '🧞‍♀' => 'spiert da buttiglia feminin',
+    '🧟‍♂' => 'um zombi',
+    '🧟‍♀' => 'dunna zombi',
+    '💆‍♂' => 'um che vegn massà',
+    '💆‍♀' => 'dunna che vegn massada',
+    '💇‍♂' => 'um che sa lascha tagliar ils chavels',
+    '💇‍♀' => 'dunna che sa lascha tagliar ils chavels',
+    '🚶‍♂' => 'um che va a pe',
+    '🚶‍♀' => 'dunna che va a pe',
+    '🧍‍♂' => 'um en pe',
+    '🧍‍♀' => 'dunna en pe',
+    '🧎‍♂' => 'um en schanuglias',
+    '🧎‍♀' => 'dunna en schanuglias',
+    '🧑‍🦯' => 'persuna cun ina channa da tschorvs',
+    '👨‍🦯' => 'um cun channa',
+    '👩‍🦯' => 'dunna cun channa',
+    '🧑‍🦼' => 'persuna en ina sutga cun rodas electrica',
+    '👨‍🦼' => 'um en ina sutga cun rodas electrica',
+    '👩‍🦼' => 'dunna en ina sutga cun rodas electrica',
+    '🧑‍🦽' => 'persuna en ina sutga cun rodas manuala',
+    '👨‍🦽' => 'um en ina sutga cun rodas manuala',
+    '👩‍🦽' => 'dunna en ina sutga cun rodas manuala',
+    '🏃‍♂' => 'um che curra',
+    '🏃‍♀' => 'dunna che curra',
+    '🧑‍🩰' => 'ballarin:a',
+    '👯‍♂' => 'umens cun ureglias da lieur',
+    '👯‍♀' => 'dunnas cun ureglias da lieur',
+    '🧖‍♂' => 'um en ina stanza cun vapur',
+    '🧖‍♀' => 'dunna en ina stanza cun vapur',
+    '🧗‍♂' => 'um che raiva',
+    '🧗‍♀' => 'dunna che raiva',
+    '🏌‍♂' => 'um che dat golf',
+    '🏌‍♀' => 'dunna che dat golf',
+    '🏄‍♂' => 'um che fa surfing',
+    '🏄‍♀' => 'dunna che fa surfing',
+    '🚣‍♂' => 'um che rembla',
+    '🚣‍♀' => 'dunna che rembla',
+    '🏊‍♂' => 'um che noda',
+    '🏊‍♀' => 'dunna che noda',
+    '⛹‍♂' => 'um cun balla',
+    '⛹‍♀' => 'dunna cun balla',
+    '🏋‍♂' => 'um che auza pais',
+    '🏋‍♀' => 'dunna che auza pais',
+    '🚴‍♂' => 'um che va cun velo',
+    '🚴‍♀' => 'dunna che va cun velo',
+    '🚵‍♂' => 'um che va cun mountainbike',
+    '🚵‍♀' => 'dunna che va cun mountainbike',
+    '🤸‍♂' => 'um che fa la roda',
+    '🤸‍♀' => 'dunna che fa la roda',
+    '🤼‍♂' => 'umens che lutgan',
+    '🤼‍♀' => 'dunnas che lutgan',
+    '🤽‍♂' => 'um che gioga ballanataziun',
+    '🤽‍♀' => 'dunna che gioga ballanataziun',
+    '🤾‍♂' => 'um che gioga ballamaun',
+    '🤾‍♀' => 'dunna che gioga ballamaun',
+    '🤹‍♂' => 'um che schonglescha',
+    '🤹‍♀' => 'dunna che schonglescha',
+    '🧘‍♂' => 'um en la posiziun da lotos',
+    '🧘‍♀' => 'dunna en la posiziun da lotos',
+    '🧑‍🧒' => 'famiglia: persuna creschida, uffant',
+    '🐕‍🦺' => 'chaun d’assistenza',
+    '🐈‍⬛' => 'giat nair',
+    '🐻‍❄' => 'urs polar',
+    '🐦‍⬛' => 'utschè nair',
+    '🐦‍🔥' => 'fenix',
+    '🍋‍🟩' => 'limetta',
+    '🍄‍🟫' => 'bulieu brin',
+    '⛓‍💥' => 'chadaina rutta',
+    '🏳‍🌈' => 'bandiera da l’artg',
+    '🏳‍⚧' => 'bandiera transgender',
+    '🏴‍☠' => 'bandiera da pirats',
+    '👋🏻' => 'dar dal maun: pel clera',
+    '👋🏼' => 'dar dal maun: pel mez clera',
+    '👋🏽' => 'dar dal maun: pel media',
+    '👋🏾' => 'dar dal maun: pel mez stgira',
+    '👋🏿' => 'dar dal maun: pel stgira',
+    '🤚🏻' => 'dies dal maun auzà: pel clera',
+    '🤚🏼' => 'dies dal maun auzà: pel mez clera',
+    '🤚🏽' => 'dies dal maun auzà: pel media',
+    '🤚🏾' => 'dies dal maun auzà: pel mez stgira',
+    '🤚🏿' => 'dies dal maun auzà: pel stgira',
+    '🖐🏻' => 'maun avert: pel clera',
+    '🖐🏼' => 'maun avert: pel mez clera',
+    '🖐🏽' => 'maun avert: pel media',
+    '🖐🏾' => 'maun avert: pel mez stgira',
+    '🖐🏿' => 'maun avert: pel stgira',
+    '✋🏻' => 'maun auzà: pel clera',
+    '✋🏼' => 'maun auzà: pel mez clera',
+    '✋🏽' => 'maun auzà: pel media',
+    '✋🏾' => 'maun auzà: pel mez stgira',
+    '✋🏿' => 'maun auzà: pel stgira',
+    '🖖🏻' => 'salid vulcanic: pel clera',
+    '🖖🏼' => 'salid vulcanic: pel mez clera',
+    '🖖🏽' => 'salid vulcanic: pel media',
+    '🖖🏾' => 'salid vulcanic: pel mez stgira',
+    '🖖🏿' => 'salid vulcanic: pel stgira',
+    '🫱🏻' => 'maun che mussa a dretga: pel clera',
+    '🫱🏼' => 'maun che mussa a dretga: pel mez clera',
+    '🫱🏽' => 'maun che mussa a dretga: pel media',
+    '🫱🏾' => 'maun che mussa a dretga: pel mez stgira',
+    '🫱🏿' => 'maun che mussa a dretga: pel stgira',
+    '🫲🏻' => 'maun che mussa a sanestra: pel clera',
+    '🫲🏼' => 'maun che mussa a sanestra: pel mez clera',
+    '🫲🏽' => 'maun che mussa a sanestra: pel media',
+    '🫲🏾' => 'maun che mussa a sanestra: pel mez stgira',
+    '🫲🏿' => 'maun che mussa a sanestra: pel stgira',
+    '🫳🏻' => 'maun cun la palma engiu: pel clera',
+    '🫳🏼' => 'maun cun la palma engiu: pel mez clera',
+    '🫳🏽' => 'maun cun la palma engiu: pel media',
+    '🫳🏾' => 'maun cun la palma engiu: pel mez stgira',
+    '🫳🏿' => 'maun cun la palma engiu: pel stgira',
+    '🫴🏻' => 'maun cun la palma maun ensi: pel clera',
+    '🫴🏼' => 'maun cun la palma maun ensi: pel mez clera',
+    '🫴🏽' => 'maun cun la palma maun ensi: pel media',
+    '🫴🏾' => 'maun cun la palma maun ensi: pel mez stgira',
+    '🫴🏿' => 'maun cun la palma maun ensi: pel stgira',
+    '🫷🏻' => 'maun che stauscha a sanestra: pel clera',
+    '🫷🏼' => 'maun che stauscha a sanestra: pel mez clera',
+    '🫷🏽' => 'maun che stauscha a sanestra: pel media',
+    '🫷🏾' => 'maun che stauscha a sanestra: pel mez stgira',
+    '🫷🏿' => 'maun che stauscha a sanestra: pel stgira',
+    '🫸🏻' => 'maun che stauscha a dretga: pel clera',
+    '🫸🏼' => 'maun che stauscha a dretga: pel mez clera',
+    '🫸🏽' => 'maun che stauscha a dretga: pel media',
+    '🫸🏾' => 'maun che stauscha a dretga: pel mez stgira',
+    '🫸🏿' => 'maun che stauscha a dretga: pel stgira',
+    '👌🏻' => 'maun che mussa ok: pel clera',
+    '👌🏼' => 'maun che mussa ok: pel mez clera',
+    '👌🏽' => 'maun che mussa ok: pel media',
+    '👌🏾' => 'maun che mussa ok: pel mez stgira',
+    '👌🏿' => 'maun che mussa ok: pel stgira',
+    '🤌🏻' => 'maun cun pizza da la detta che sa tutga: pel clera',
+    '🤌🏼' => 'maun cun pizza da la detta che sa tutga: pel mez clera',
+    '🤌🏽' => 'maun cun pizza da la detta che sa tutga: pel media',
+    '🤌🏾' => 'maun cun pizza da la detta che sa tutga: pel mez stgira',
+    '🤌🏿' => 'maun cun pizza da la detta che sa tutga: pel stgira',
+    '🤏🏻' => 'maun che mussa pitschen: pel clera',
+    '🤏🏼' => 'maun che mussa pitschen: pel mez clera',
+    '🤏🏽' => 'maun che mussa pitschen: pel media',
+    '🤏🏾' => 'maun che mussa pitschen: pel mez stgira',
+    '🤏🏿' => 'maun che mussa pitschen: pel stgira',
+    '✌🏻' => 'gest victory: pel clera',
+    '✌🏼' => 'gest victory: pel mez clera',
+    '✌🏽' => 'gest victory: pel media',
+    '✌🏾' => 'gest victory: pel mez stgira',
+    '✌🏿' => 'gest victory: pel stgira',
+    '🤞🏻' => 'dus dets cruschads: pel clera',
+    '🤞🏼' => 'dus dets cruschads: pel mez clera',
+    '🤞🏽' => 'dus dets cruschads: pel media',
+    '🤞🏾' => 'dus dets cruschads: pel mez stgira',
+    '🤞🏿' => 'dus dets cruschads: pel stgira',
+    '🫰🏻' => 'gest per char: pel clera',
+    '🫰🏼' => 'gest per char: pel mez clera',
+    '🫰🏽' => 'gest per char: pel media',
+    '🫰🏾' => 'gest per char: pel mez stgira',
+    '🫰🏿' => 'gest per char: pel stgira',
+    '🤟🏻' => 'gest «jau t’am»: pel clera',
+    '🤟🏼' => 'gest «jau t’am»: pel mez clera',
+    '🤟🏽' => 'gest «jau t’am»: pel media',
+    '🤟🏾' => 'gest «jau t’am»: pel mez stgira',
+    '🤟🏿' => 'gest «jau t’am»: pel stgira',
+    '🤘🏻' => 'gest da cornas: pel clera',
+    '🤘🏼' => 'gest da cornas: pel mez clera',
+    '🤘🏽' => 'gest da cornas: pel media',
+    '🤘🏾' => 'gest da cornas: pel mez stgira',
+    '🤘🏿' => 'gest da cornas: pel stgira',
+    '🤙🏻' => 'gest da telefonar: pel clera',
+    '🤙🏼' => 'gest da telefonar: pel mez clera',
+    '🤙🏽' => 'gest da telefonar: pel media',
+    '🤙🏾' => 'gest da telefonar: pel mez stgira',
+    '🤙🏿' => 'gest da telefonar: pel stgira',
+    '👈🏻' => 'dies dal maun cun det che mussa a sanestra: pel clera',
+    '👈🏼' => 'dies dal maun cun det che mussa a sanestra: pel mez clera',
+    '👈🏽' => 'dies dal maun cun det che mussa a sanestra: pel media',
+    '👈🏾' => 'dies dal maun cun det che mussa a sanestra: pel mez stgira',
+    '👈🏿' => 'dies dal maun cun det che mussa a sanestra: pel stgira',
+    '👉🏻' => 'dies dal maun cun det che mussa a dretga: pel clera',
+    '👉🏼' => 'dies dal maun cun det che mussa a dretga: pel mez clera',
+    '👉🏽' => 'dies dal maun cun det che mussa a dretga: pel media',
+    '👉🏾' => 'dies dal maun cun det che mussa a dretga: pel mez stgira',
+    '👉🏿' => 'dies dal maun cun det che mussa a dretga: pel stgira',
+    '👆🏻' => 'dies dal maun cun det mussader vers ensi: pel clera',
+    '👆🏼' => 'dies dal maun cun det mussader vers ensi: pel mez clera',
+    '👆🏽' => 'dies dal maun cun det mussader vers ensi: pel media',
+    '👆🏾' => 'dies dal maun cun det mussader vers ensi: pel mez stgira',
+    '👆🏿' => 'dies dal maun cun det mussader vers ensi: pel stgira',
+    '🖕🏻' => 'det d’amez stendì: pel clera',
+    '🖕🏼' => 'det d’amez stendì: pel mez clera',
+    '🖕🏽' => 'det d’amez stendì: pel media',
+    '🖕🏾' => 'det d’amez stendì: pel mez stgira',
+    '🖕🏿' => 'det d’amez stendì: pel stgira',
+    '👇🏻' => 'dies dal maun cun det mussader vers engiu: pel clera',
+    '👇🏼' => 'dies dal maun cun det mussader vers engiu: pel mez clera',
+    '👇🏽' => 'dies dal maun cun det mussader vers engiu: pel media',
+    '👇🏾' => 'dies dal maun cun det mussader vers engiu: pel mez stgira',
+    '👇🏿' => 'dies dal maun cun det mussader vers engiu: pel stgira',
+    '☝🏻' => 'det mussader che mussa ensi: pel clera',
+    '☝🏼' => 'det mussader che mussa ensi: pel mez clera',
+    '☝🏽' => 'det mussader che mussa ensi: pel media',
+    '☝🏾' => 'det mussader che mussa ensi: pel mez stgira',
+    '☝🏿' => 'det mussader che mussa ensi: pel stgira',
+    '🫵🏻' => 'det mussader che mussa sin mai: pel clera',
+    '🫵🏼' => 'det mussader che mussa sin mai: pel mez clera',
+    '🫵🏽' => 'det mussader che mussa sin mai: pel media',
+    '🫵🏾' => 'det mussader che mussa sin mai: pel mez stgira',
+    '🫵🏿' => 'det mussader che mussa sin mai: pel stgira',
+    '👍🏻' => 'polesch che mussa ensi: pel clera',
+    '👍🏼' => 'polesch che mussa ensi: pel mez clera',
+    '👍🏽' => 'polesch che mussa ensi: pel media',
+    '👍🏾' => 'polesch che mussa ensi: pel mez stgira',
+    '👍🏿' => 'polesch che mussa ensi: pel stgira',
+    '👎🏻' => 'polesch che mussa engiu: pel clera',
+    '👎🏼' => 'polesch che mussa engiu: pel mez clera',
+    '👎🏽' => 'polesch che mussa engiu: pel media',
+    '👎🏾' => 'polesch che mussa engiu: pel mez stgira',
+    '👎🏿' => 'polesch che mussa engiu: pel stgira',
+    '✊🏻' => 'pugn ad aut: pel clera',
+    '✊🏼' => 'pugn ad aut: pel mez clera',
+    '✊🏽' => 'pugn ad aut: pel media',
+    '✊🏾' => 'pugn ad aut: pel mez stgira',
+    '✊🏿' => 'pugn ad aut: pel stgira',
+    '👊🏻' => 'pugn vers mai: pel clera',
+    '👊🏼' => 'pugn vers mai: pel mez clera',
+    '👊🏽' => 'pugn vers mai: pel media',
+    '👊🏾' => 'pugn vers mai: pel mez stgira',
+    '👊🏿' => 'pugn vers mai: pel stgira',
+    '🤛🏻' => 'pugn che mussa a sanestra: pel clera',
+    '🤛🏼' => 'pugn che mussa a sanestra: pel mez clera',
+    '🤛🏽' => 'pugn che mussa a sanestra: pel media',
+    '🤛🏾' => 'pugn che mussa a sanestra: pel mez stgira',
+    '🤛🏿' => 'pugn che mussa a sanestra: pel stgira',
+    '🤜🏻' => 'pugn che mussa a dretga: pel clera',
+    '🤜🏼' => 'pugn che mussa a dretga: pel mez clera',
+    '🤜🏽' => 'pugn che mussa a dretga: pel media',
+    '🤜🏾' => 'pugn che mussa a dretga: pel mez stgira',
+    '🤜🏿' => 'pugn che mussa a dretga: pel stgira',
+    '👏🏻' => 'mauns che applaudeschan: pel clera',
+    '👏🏼' => 'mauns che applaudeschan: pel mez clera',
+    '👏🏽' => 'mauns che applaudeschan: pel media',
+    '👏🏾' => 'mauns che applaudeschan: pel mez stgira',
+    '👏🏿' => 'mauns che applaudeschan: pel stgira',
+    '🙌🏻' => 'mauns auzads: pel clera',
+    '🙌🏼' => 'mauns auzads: pel mez clera',
+    '🙌🏽' => 'mauns auzads: pel media',
+    '🙌🏾' => 'mauns auzads: pel mez stgira',
+    '🙌🏿' => 'mauns auzads: pel stgira',
+    '🫶🏻' => 'mauns che furman in cor: pel clera',
+    '🫶🏼' => 'mauns che furman in cor: pel mez clera',
+    '🫶🏽' => 'mauns che furman in cor: pel media',
+    '🫶🏾' => 'mauns che furman in cor: pel mez stgira',
+    '🫶🏿' => 'mauns che furman in cor: pel stgira',
+    '👐🏻' => 'mauns averts: pel clera',
+    '👐🏼' => 'mauns averts: pel mez clera',
+    '👐🏽' => 'mauns averts: pel media',
+    '👐🏾' => 'mauns averts: pel mez stgira',
+    '👐🏿' => 'mauns averts: pel stgira',
+    '🤲🏻' => 'omaduas palmas-maun ina sper l’autra: pel clera',
+    '🤲🏼' => 'omaduas palmas-maun ina sper l’autra: pel mez clera',
+    '🤲🏽' => 'omaduas palmas-maun ina sper l’autra: pel media',
+    '🤲🏾' => 'omaduas palmas-maun ina sper l’autra: pel mez stgira',
+    '🤲🏿' => 'omaduas palmas-maun ina sper l’autra: pel stgira',
+    '🤝🏻' => 'dar il maun: pel clera',
+    '🤝🏼' => 'dar il maun: pel mez clera',
+    '🤝🏽' => 'dar il maun: pel media',
+    '🤝🏾' => 'dar il maun: pel mez stgira',
+    '🤝🏿' => 'dar il maun: pel stgira',
+    '🙏🏻' => 'palmas-maun ina sin l‘autra: pel clera',
+    '🙏🏼' => 'palmas-maun ina sin l‘autra: pel mez clera',
+    '🙏🏽' => 'palmas-maun ina sin l‘autra: pel media',
+    '🙏🏾' => 'palmas-maun ina sin l‘autra: pel mez stgira',
+    '🙏🏿' => 'palmas-maun ina sin l‘autra: pel stgira',
+    '✍🏻' => 'maun che scriva: pel clera',
+    '✍🏼' => 'maun che scriva: pel mez clera',
+    '✍🏽' => 'maun che scriva: pel media',
+    '✍🏾' => 'maun che scriva: pel mez stgira',
+    '✍🏿' => 'maun che scriva: pel stgira',
+    '💅🏻' => 'vernisch dad unglas: pel clera',
+    '💅🏼' => 'vernisch dad unglas: pel mez clera',
+    '💅🏽' => 'vernisch dad unglas: pel media',
+    '💅🏾' => 'vernisch dad unglas: pel mez stgira',
+    '💅🏿' => 'vernisch dad unglas: pel stgira',
+    '🤳🏻' => 'selfie: pel clera',
+    '🤳🏼' => 'selfie: pel mez clera',
+    '🤳🏽' => 'selfie: pel media',
+    '🤳🏾' => 'selfie: pel mez stgira',
+    '🤳🏿' => 'selfie: pel stgira',
+    '💪🏻' => 'biceps tendì: pel clera',
+    '💪🏼' => 'biceps tendì: pel mez clera',
+    '💪🏽' => 'biceps tendì: pel media',
+    '💪🏾' => 'biceps tendì: pel mez stgira',
+    '💪🏿' => 'biceps tendì: pel stgira',
+    '🦵🏻' => 'chomma: pel clera',
+    '🦵🏼' => 'chomma: pel mez clera',
+    '🦵🏽' => 'chomma: pel media',
+    '🦵🏾' => 'chomma: pel mez stgira',
+    '🦵🏿' => 'chomma: pel stgira',
+    '🦶🏻' => 'pe: pel clera',
+    '🦶🏼' => 'pe: pel mez clera',
+    '🦶🏽' => 'pe: pel media',
+    '🦶🏾' => 'pe: pel mez stgira',
+    '🦶🏿' => 'pe: pel stgira',
+    '👂🏻' => 'ureglia: pel clera',
+    '👂🏼' => 'ureglia: pel mez clera',
+    '👂🏽' => 'ureglia: pel media',
+    '👂🏾' => 'ureglia: pel mez stgira',
+    '👂🏿' => 'ureglia: pel stgira',
+    '🦻🏻' => 'ureglia cun apparat d’udida: pel clera',
+    '🦻🏼' => 'ureglia cun apparat d’udida: pel mez clera',
+    '🦻🏽' => 'ureglia cun apparat d’udida: pel media',
+    '🦻🏾' => 'ureglia cun apparat d’udida: pel mez stgira',
+    '🦻🏿' => 'ureglia cun apparat d’udida: pel stgira',
+    '👃🏻' => 'nas: pel clera',
+    '👃🏼' => 'nas: pel mez clera',
+    '👃🏽' => 'nas: pel media',
+    '👃🏾' => 'nas: pel mez stgira',
+    '👃🏿' => 'nas: pel stgira',
+    '👶🏻' => 'uffantin: pel clera',
+    '👶🏼' => 'uffantin: pel mez clera',
+    '👶🏽' => 'uffantin: pel media',
+    '👶🏾' => 'uffantin: pel mez stgira',
+    '👶🏿' => 'uffantin: pel stgira',
+    '🧒🏻' => 'uffant: pel clera',
+    '🧒🏼' => 'uffant: pel mez clera',
+    '🧒🏽' => 'uffant: pel media',
+    '🧒🏾' => 'uffant: pel mez stgira',
+    '🧒🏿' => 'uffant: pel stgira',
+    '👦🏻' => 'mattet: pel clera',
+    '👦🏼' => 'mattet: pel mez clera',
+    '👦🏽' => 'mattet: pel media',
+    '👦🏾' => 'mattet: pel mez stgira',
+    '👦🏿' => 'mattet: pel stgira',
+    '👧🏻' => 'mattetta: pel clera',
+    '👧🏼' => 'mattetta: pel mez clera',
+    '👧🏽' => 'mattetta: pel media',
+    '👧🏾' => 'mattetta: pel mez stgira',
+    '👧🏿' => 'mattetta: pel stgira',
+    '🧑🏻' => 'persuna: pel clera',
+    '🧑🏼' => 'persuna: pel mez clera',
+    '🧑🏽' => 'persuna: pel media',
+    '🧑🏾' => 'persuna: pel mez stgira',
+    '🧑🏿' => 'persuna: pel stgira',
+    '👱🏻' => 'persuna: pel clera, chavels blonds',
+    '👱🏼' => 'persuna: pel mez clera, chavels blonds',
+    '👱🏽' => 'persuna: pel media, chavels blonds',
+    '👱🏾' => 'persuna: pel mez stgira, chavels blonds',
+    '👱🏿' => 'persuna: pel stgira, chavels blonds',
+    '👨🏻' => 'um: pel clera',
+    '👨🏼' => 'um: pel mez clera',
+    '👨🏽' => 'um: pel media',
+    '👨🏾' => 'um: pel mez stgira',
+    '👨🏿' => 'um: pel stgira',
+    '🧔🏻' => 'persuna: pel clera, barba',
+    '🧔🏼' => 'persuna: pel mez clera, barba',
+    '🧔🏽' => 'persuna: pel media, barba',
+    '🧔🏾' => 'persuna: pel mez stgira, barba',
+    '🧔🏿' => 'persuna: pel stgira, barba',
+    '👩🏻' => 'dunna: pel clera',
+    '👩🏼' => 'dunna: pel mez clera',
+    '👩🏽' => 'dunna: pel media',
+    '👩🏾' => 'dunna: pel mez stgira',
+    '👩🏿' => 'dunna: pel stgira',
+    '🧓🏻' => 'persuna pli veglia: pel clera',
+    '🧓🏼' => 'persuna pli veglia: pel mez clera',
+    '🧓🏽' => 'persuna pli veglia: pel media',
+    '🧓🏾' => 'persuna pli veglia: pel mez stgira',
+    '🧓🏿' => 'persuna pli veglia: pel stgira',
+    '👴🏻' => 'um vegl: pel clera',
+    '👴🏼' => 'um vegl: pel mez clera',
+    '👴🏽' => 'um vegl: pel media',
+    '👴🏾' => 'um vegl: pel mez stgira',
+    '👴🏿' => 'um vegl: pel stgira',
+    '👵🏻' => 'dunna veglia: pel clera',
+    '👵🏼' => 'dunna veglia: pel mez clera',
+    '👵🏽' => 'dunna veglia: pel media',
+    '👵🏾' => 'dunna veglia: pel mez stgira',
+    '👵🏿' => 'dunna veglia: pel stgira',
+    '🙍🏻' => 'persuna malcuntenta: pel clera',
+    '🙍🏼' => 'persuna malcuntenta: pel mez clera',
+    '🙍🏽' => 'persuna malcuntenta: pel media',
+    '🙍🏾' => 'persuna malcuntenta: pel mez stgira',
+    '🙍🏿' => 'persuna malcuntenta: pel stgira',
+    '🙎🏻' => 'persuna permalada: pel clera',
+    '🙎🏼' => 'persuna permalada: pel mez clera',
+    '🙎🏽' => 'persuna permalada: pel media',
+    '🙎🏾' => 'persuna permalada: pel mez stgira',
+    '🙎🏿' => 'persuna permalada: pel stgira',
+    '🙅🏻' => 'persuna cun bratscha cruschada: pel clera',
+    '🙅🏼' => 'persuna cun bratscha cruschada: pel mez clera',
+    '🙅🏽' => 'persuna cun bratscha cruschada: pel media',
+    '🙅🏾' => 'persuna cun bratscha cruschada: pel mez stgira',
+    '🙅🏿' => 'persuna cun bratscha cruschada: pel stgira',
+    '🙆🏻' => 'persuna che tegna ils mauns sin il chau: pel clera',
+    '🙆🏼' => 'persuna che tegna ils mauns sin il chau: pel mez clera',
+    '🙆🏽' => 'persuna che tegna ils mauns sin il chau: pel media',
+    '🙆🏾' => 'persuna che tegna ils mauns sin il chau: pel mez stgira',
+    '🙆🏿' => 'persuna che tegna ils mauns sin il chau: pel stgira',
+    '💁🏻' => 'persuna che tegna la palma-maun vers ensi: pel clera',
+    '💁🏼' => 'persuna che tegna la palma-maun vers ensi: pel mez clera',
+    '💁🏽' => 'persuna che tegna la palma-maun vers ensi: pel media',
+    '💁🏾' => 'persuna che tegna la palma-maun vers ensi: pel mez stgira',
+    '💁🏿' => 'persuna che tegna la palma-maun vers ensi: pel stgira',
+    '🙋🏻' => 'persuna che auza il maun: pel clera',
+    '🙋🏼' => 'persuna che auza il maun: pel mez clera',
+    '🙋🏽' => 'persuna che auza il maun: pel media',
+    '🙋🏾' => 'persuna che auza il maun: pel mez stgira',
+    '🙋🏿' => 'persuna che auza il maun: pel stgira',
+    '🧏🏻' => 'persuna surda: pel clera',
+    '🧏🏼' => 'persuna surda: pel mez clera',
+    '🧏🏽' => 'persuna surda: pel media',
+    '🧏🏾' => 'persuna surda: pel mez stgira',
+    '🧏🏿' => 'persuna surda: pel stgira',
+    '🙇🏻' => 'persuna che s’enclina: pel clera',
+    '🙇🏼' => 'persuna che s’enclina: pel mez clera',
+    '🙇🏽' => 'persuna che s’enclina: pel media',
+    '🙇🏾' => 'persuna che s’enclina: pel mez stgira',
+    '🙇🏿' => 'persuna che s’enclina: pel stgira',
+    '🤦🏻' => 'persuna cun la palma-maun sin la fatscha: pel clera',
+    '🤦🏼' => 'persuna cun la palma-maun sin la fatscha: pel mez clera',
+    '🤦🏽' => 'persuna cun la palma-maun sin la fatscha: pel media',
+    '🤦🏾' => 'persuna cun la palma-maun sin la fatscha: pel mez stgira',
+    '🤦🏿' => 'persuna cun la palma-maun sin la fatscha: pel stgira',
+    '🤷🏻' => 'persuna che auza las spatlas: pel clera',
+    '🤷🏼' => 'persuna che auza las spatlas: pel mez clera',
+    '🤷🏽' => 'persuna che auza las spatlas: pel media',
+    '🤷🏾' => 'persuna che auza las spatlas: pel mez stgira',
+    '🤷🏿' => 'persuna che auza las spatlas: pel stgira',
+    '👮🏻' => 'policist:a: pel clera',
+    '👮🏼' => 'policist:a: pel mez clera',
+    '👮🏽' => 'policist:a: pel media',
+    '👮🏾' => 'policist:a: pel mez stgira',
+    '👮🏿' => 'policist:a: pel stgira',
+    '🕵🏻' => 'detectiv:a: pel clera',
+    '🕵🏼' => 'detectiv:a: pel mez clera',
+    '🕵🏽' => 'detectiv:a: pel media',
+    '🕵🏾' => 'detectiv:a: pel mez stgira',
+    '🕵🏿' => 'detectiv:a: pel stgira',
+    '🥷🏻' => 'ninja: pel clera',
+    '🥷🏼' => 'ninja: pel mez clera',
+    '🥷🏽' => 'ninja: pel media',
+    '🥷🏾' => 'ninja: pel mez stgira',
+    '🥷🏿' => 'ninja: pel stgira',
+    '👷🏻' => 'lavurer:a da construcziun: pel clera',
+    '👷🏼' => 'lavurer:a da construcziun: pel mez clera',
+    '👷🏽' => 'lavurer:a da construcziun: pel media',
+    '👷🏾' => 'lavurer:a da construcziun: pel mez stgira',
+    '👷🏿' => 'lavurer:a da construcziun: pel stgira',
+    '🫅🏻' => 'persuna cun curuna: pel clera',
+    '🫅🏼' => 'persuna cun curuna: pel mez clera',
+    '🫅🏽' => 'persuna cun curuna: pel media',
+    '🫅🏾' => 'persuna cun curuna: pel mez stgira',
+    '🫅🏿' => 'persuna cun curuna: pel stgira',
+    '🤴🏻' => 'prinzi: pel clera',
+    '🤴🏼' => 'prinzi: pel mez clera',
+    '🤴🏽' => 'prinzi: pel media',
+    '🤴🏾' => 'prinzi: pel mez stgira',
+    '🤴🏿' => 'prinzi: pel stgira',
+    '👸🏻' => 'princessa: pel clera',
+    '👸🏼' => 'princessa: pel mez clera',
+    '👸🏽' => 'princessa: pel media',
+    '👸🏾' => 'princessa: pel mez stgira',
+    '👸🏿' => 'princessa: pel stgira',
+    '👳🏻' => 'persuna cun in turban: pel clera',
+    '👳🏼' => 'persuna cun in turban: pel mez clera',
+    '👳🏽' => 'persuna cun in turban: pel media',
+    '👳🏾' => 'persuna cun in turban: pel mez stgira',
+    '👳🏿' => 'persuna cun in turban: pel stgira',
+    '👲🏻' => 'persuna cun in chapè chinais: pel clera',
+    '👲🏼' => 'persuna cun in chapè chinais: pel mez clera',
+    '👲🏽' => 'persuna cun in chapè chinais: pel media',
+    '👲🏾' => 'persuna cun in chapè chinais: pel mez stgira',
+    '👲🏿' => 'persuna cun in chapè chinais: pel stgira',
+    '🧕🏻' => 'dunna cun faziel da chau: pel clera',
+    '🧕🏼' => 'dunna cun faziel da chau: pel mez clera',
+    '🧕🏽' => 'dunna cun faziel da chau: pel media',
+    '🧕🏾' => 'dunna cun faziel da chau: pel mez stgira',
+    '🧕🏿' => 'dunna cun faziel da chau: pel stgira',
     '🤵🏻' => 'persuna cun smoking: pel clera',
     '🤵🏼' => 'persuna cun smoking: pel mez clera',
     '🤵🏽' => 'persuna cun smoking: pel media',
@@ -35,20 +2017,1900 @@
     '👰🏽' => 'persuna cun vel: pel media',
     '👰🏾' => 'persuna cun vel: pel mez stgira',
     '👰🏿' => 'persuna cun vel: pel stgira',
+    '🤰🏻' => 'dunna en speranza: pel clera',
+    '🤰🏼' => 'dunna en speranza: pel mez clera',
+    '🤰🏽' => 'dunna en speranza: pel media',
+    '🤰🏾' => 'dunna en speranza: pel mez stgira',
+    '🤰🏿' => 'dunna en speranza: pel stgira',
+    '🫃🏻' => 'um en speranza: pel clera',
+    '🫃🏼' => 'um en speranza: pel mez clera',
+    '🫃🏽' => 'um en speranza: pel media',
+    '🫃🏾' => 'um en speranza: pel mez stgira',
+    '🫃🏿' => 'um en speranza: pel stgira',
+    '🫄🏻' => 'persuna en speranza: pel clera',
+    '🫄🏼' => 'persuna en speranza: pel mez clera',
+    '🫄🏽' => 'persuna en speranza: pel media',
+    '🫄🏾' => 'persuna en speranza: pel mez stgira',
+    '🫄🏿' => 'persuna en speranza: pel stgira',
+    '🤱🏻' => 'dar latg: pel clera',
+    '🤱🏼' => 'dar latg: pel mez clera',
+    '🤱🏽' => 'dar latg: pel media',
+    '🤱🏾' => 'dar latg: pel mez stgira',
+    '🤱🏿' => 'dar latg: pel stgira',
+    '👼🏻' => 'anghelin: pel clera',
+    '👼🏼' => 'anghelin: pel mez clera',
+    '👼🏽' => 'anghelin: pel media',
+    '👼🏾' => 'anghelin: pel mez stgira',
+    '👼🏿' => 'anghelin: pel stgira',
+    '🎅🏻' => 'Son Niclà: pel clera',
+    '🎅🏼' => 'Son Niclà: pel mez clera',
+    '🎅🏽' => 'Son Niclà: pel media',
+    '🎅🏾' => 'Son Niclà: pel mez stgira',
+    '🎅🏿' => 'Son Niclà: pel stgira',
+    '🤶🏻' => 'Sontga Nicoletta: pel clera',
+    '🤶🏼' => 'Sontga Nicoletta: pel mez clera',
+    '🤶🏽' => 'Sontga Nicoletta: pel media',
+    '🤶🏾' => 'Sontga Nicoletta: pel mez stgira',
+    '🤶🏿' => 'Sontga Nicoletta: pel stgira',
+    '🦸🏻' => 'supererox:a: pel clera',
+    '🦸🏼' => 'supererox:a: pel mez clera',
+    '🦸🏽' => 'supererox:a: pel media',
+    '🦸🏾' => 'supererox:a: pel mez stgira',
+    '🦸🏿' => 'supererox:a: pel stgira',
+    '🦹🏻' => 'supernausch:a: pel clera',
+    '🦹🏼' => 'supernausch:a: pel mez clera',
+    '🦹🏽' => 'supernausch:a: pel media',
+    '🦹🏾' => 'supernausch:a: pel mez stgira',
+    '🦹🏿' => 'supernausch:a: pel stgira',
+    '🧙🏻' => 'striun:a: pel clera',
+    '🧙🏼' => 'striun:a: pel mez clera',
+    '🧙🏽' => 'striun:a: pel media',
+    '🧙🏾' => 'striun:a: pel mez stgira',
+    '🧙🏿' => 'striun:a: pel stgira',
+    '🧚🏻' => 'dial:a: pel clera',
+    '🧚🏼' => 'dial:a: pel mez clera',
+    '🧚🏽' => 'dial:a: pel media',
+    '🧚🏾' => 'dial:a: pel mez stgira',
+    '🧚🏿' => 'dial:a: pel stgira',
+    '🧛🏻' => 'vampir:a: pel clera',
+    '🧛🏼' => 'vampir:a: pel mez clera',
+    '🧛🏽' => 'vampir:a: pel media',
+    '🧛🏾' => 'vampir:a: pel mez stgira',
+    '🧛🏿' => 'vampir:a: pel stgira',
+    '🧜🏻' => 'uman da l’aua: pel clera',
+    '🧜🏼' => 'uman da l’aua: pel mez clera',
+    '🧜🏽' => 'uman da l’aua: pel media',
+    '🧜🏾' => 'uman da l’aua: pel mez stgira',
+    '🧜🏿' => 'uman da l’aua: pel stgira',
+    '🧝🏻' => 'elf:a: pel clera',
+    '🧝🏼' => 'elf:a: pel mez clera',
+    '🧝🏽' => 'elf:a: pel media',
+    '🧝🏾' => 'elf:a: pel mez stgira',
+    '🧝🏿' => 'elf:a: pel stgira',
+    '💆🏻' => 'persuna che vegn massada: pel clera',
+    '💆🏼' => 'persuna che vegn massada: pel mez clera',
+    '💆🏽' => 'persuna che vegn massada: pel media',
+    '💆🏾' => 'persuna che vegn massada: pel mez stgira',
+    '💆🏿' => 'persuna che vegn massada: pel stgira',
+    '💇🏻' => 'persuna che sa lascha tagliar ils chavels: pel clera',
+    '💇🏼' => 'persuna che sa lascha tagliar ils chavels: pel mez clera',
+    '💇🏽' => 'persuna che sa lascha tagliar ils chavels: pel media',
+    '💇🏾' => 'persuna che sa lascha tagliar ils chavels: pel mez stgira',
+    '💇🏿' => 'persuna che sa lascha tagliar ils chavels: pel stgira',
+    '🚶🏻' => 'persuna che va a pe: pel clera',
+    '🚶🏼' => 'persuna che va a pe: pel mez clera',
+    '🚶🏽' => 'persuna che va a pe: pel media',
+    '🚶🏾' => 'persuna che va a pe: pel mez stgira',
+    '🚶🏿' => 'persuna che va a pe: pel stgira',
+    '🧍🏻' => 'persuna en pe: pel clera',
+    '🧍🏼' => 'persuna en pe: pel mez clera',
+    '🧍🏽' => 'persuna en pe: pel media',
+    '🧍🏾' => 'persuna en pe: pel mez stgira',
+    '🧍🏿' => 'persuna en pe: pel stgira',
+    '🧎🏻' => 'persuna en schanuglias: pel clera',
+    '🧎🏼' => 'persuna en schanuglias: pel mez clera',
+    '🧎🏽' => 'persuna en schanuglias: pel media',
+    '🧎🏾' => 'persuna en schanuglias: pel mez stgira',
+    '🧎🏿' => 'persuna en schanuglias: pel stgira',
+    '🏃🏻' => 'persuna che curra: pel clera',
+    '🏃🏼' => 'persuna che curra: pel mez clera',
+    '🏃🏽' => 'persuna che curra: pel media',
+    '🏃🏾' => 'persuna che curra: pel mez stgira',
+    '🏃🏿' => 'persuna che curra: pel stgira',
+    '💃🏻' => 'dunna che balla: pel clera',
+    '💃🏼' => 'dunna che balla: pel mez clera',
+    '💃🏽' => 'dunna che balla: pel media',
+    '💃🏾' => 'dunna che balla: pel mez stgira',
+    '💃🏿' => 'dunna che balla: pel stgira',
+    '🕺🏻' => 'um che balla: pel clera',
+    '🕺🏼' => 'um che balla: pel mez clera',
+    '🕺🏽' => 'um che balla: pel media',
+    '🕺🏾' => 'um che balla: pel mez stgira',
+    '🕺🏿' => 'um che balla: pel stgira',
+    '🕴🏻' => 'persuna en vestgì che levitescha: pel clera',
+    '🕴🏼' => 'persuna en vestgì che levitescha: pel mez clera',
+    '🕴🏽' => 'persuna en vestgì che levitescha: pel media',
+    '🕴🏾' => 'persuna en vestgì che levitescha: pel mez stgira',
+    '🕴🏿' => 'persuna en vestgì che levitescha: pel stgira',
+    '👯🏻' => 'persunas cun ureglias da lieur: pel clera',
+    '👯🏼' => 'persunas cun ureglias da lieur: pel mez clera',
+    '👯🏽' => 'persunas cun ureglias da lieur: pel media',
+    '👯🏾' => 'persunas cun ureglias da lieur: pel mez stgira',
+    '👯🏿' => 'persunas cun ureglias da lieur: pel stgira',
+    '🧖🏻' => 'persuna en ina stanza cun vapur: pel clera',
+    '🧖🏼' => 'persuna en ina stanza cun vapur: pel mez clera',
+    '🧖🏽' => 'persuna en ina stanza cun vapur: pel media',
+    '🧖🏾' => 'persuna en ina stanza cun vapur: pel mez stgira',
+    '🧖🏿' => 'persuna en ina stanza cun vapur: pel stgira',
+    '🧗🏻' => 'persuna che raiva: pel clera',
+    '🧗🏼' => 'persuna che raiva: pel mez clera',
+    '🧗🏽' => 'persuna che raiva: pel media',
+    '🧗🏾' => 'persuna che raiva: pel mez stgira',
+    '🧗🏿' => 'persuna che raiva: pel stgira',
+    '🏇🏻' => 'cursa da chavals: pel clera',
+    '🏇🏼' => 'cursa da chavals: pel mez clera',
+    '🏇🏽' => 'cursa da chavals: pel media',
+    '🏇🏾' => 'cursa da chavals: pel mez stgira',
+    '🏇🏿' => 'cursa da chavals: pel stgira',
+    '🏂🏻' => 'snowboardist:a: pel clera',
+    '🏂🏼' => 'snowboardist:a: pel mez clera',
+    '🏂🏽' => 'snowboardist:a: pel media',
+    '🏂🏾' => 'snowboardist:a: pel mez stgira',
+    '🏂🏿' => 'snowboardist:a: pel stgira',
+    '🏌🏻' => 'persuna che dat golf: pel clera',
+    '🏌🏼' => 'persuna che dat golf: pel mez clera',
+    '🏌🏽' => 'persuna che dat golf: pel media',
+    '🏌🏾' => 'persuna che dat golf: pel mez stgira',
+    '🏌🏿' => 'persuna che dat golf: pel stgira',
+    '🏄🏻' => 'persuna che fa surfing: pel clera',
+    '🏄🏼' => 'persuna che fa surfing: pel mez clera',
+    '🏄🏽' => 'persuna che fa surfing: pel media',
+    '🏄🏾' => 'persuna che fa surfing: pel mez stgira',
+    '🏄🏿' => 'persuna che fa surfing: pel stgira',
+    '🚣🏻' => 'persuna che rembla: pel clera',
+    '🚣🏼' => 'persuna che rembla: pel mez clera',
+    '🚣🏽' => 'persuna che rembla: pel media',
+    '🚣🏾' => 'persuna che rembla: pel mez stgira',
+    '🚣🏿' => 'persuna che rembla: pel stgira',
+    '🏊🏻' => 'persuna che noda: pel clera',
+    '🏊🏼' => 'persuna che noda: pel mez clera',
+    '🏊🏽' => 'persuna che noda: pel media',
+    '🏊🏾' => 'persuna che noda: pel mez stgira',
+    '🏊🏿' => 'persuna che noda: pel stgira',
+    '⛹🏻' => 'persuna cun balla: pel clera',
+    '⛹🏼' => 'persuna cun balla: pel mez clera',
+    '⛹🏽' => 'persuna cun balla: pel media',
+    '⛹🏾' => 'persuna cun balla: pel mez stgira',
+    '⛹🏿' => 'persuna cun balla: pel stgira',
+    '🏋🏻' => 'persuna che auza pais: pel clera',
+    '🏋🏼' => 'persuna che auza pais: pel mez clera',
+    '🏋🏽' => 'persuna che auza pais: pel media',
+    '🏋🏾' => 'persuna che auza pais: pel mez stgira',
+    '🏋🏿' => 'persuna che auza pais: pel stgira',
+    '🚴🏻' => 'persuna che va cun velo: pel clera',
+    '🚴🏼' => 'persuna che va cun velo: pel mez clera',
+    '🚴🏽' => 'persuna che va cun velo: pel media',
+    '🚴🏾' => 'persuna che va cun velo: pel mez stgira',
+    '🚴🏿' => 'persuna che va cun velo: pel stgira',
+    '🚵🏻' => 'persuna che va cun mountainbike: pel clera',
+    '🚵🏼' => 'persuna che va cun mountainbike: pel mez clera',
+    '🚵🏽' => 'persuna che va cun mountainbike: pel media',
+    '🚵🏾' => 'persuna che va cun mountainbike: pel mez stgira',
+    '🚵🏿' => 'persuna che va cun mountainbike: pel stgira',
+    '🤸🏻' => 'persuna che fa la roda: pel clera',
+    '🤸🏼' => 'persuna che fa la roda: pel mez clera',
+    '🤸🏽' => 'persuna che fa la roda: pel media',
+    '🤸🏾' => 'persuna che fa la roda: pel mez stgira',
+    '🤸🏿' => 'persuna che fa la roda: pel stgira',
+    '🤼🏻' => 'persunas che lutgan: pel clera',
+    '🤼🏼' => 'persunas che lutgan: pel mez clera',
+    '🤼🏽' => 'persunas che lutgan: pel media',
+    '🤼🏾' => 'persunas che lutgan: pel mez stgira',
+    '🤼🏿' => 'persunas che lutgan: pel stgira',
+    '🤽🏻' => 'persuna che gioga ballanataziun: pel clera',
+    '🤽🏼' => 'persuna che gioga ballanataziun: pel mez clera',
+    '🤽🏽' => 'persuna che gioga ballanataziun: pel media',
+    '🤽🏾' => 'persuna che gioga ballanataziun: pel mez stgira',
+    '🤽🏿' => 'persuna che gioga ballanataziun: pel stgira',
+    '🤾🏻' => 'persuna che gioga ballamaun: pel clera',
+    '🤾🏼' => 'persuna che gioga ballamaun: pel mez clera',
+    '🤾🏽' => 'persuna che gioga ballamaun: pel media',
+    '🤾🏾' => 'persuna che gioga ballamaun: pel mez stgira',
+    '🤾🏿' => 'persuna che gioga ballamaun: pel stgira',
+    '🤹🏻' => 'persuna che schonglescha: pel clera',
+    '🤹🏼' => 'persuna che schonglescha: pel mez clera',
+    '🤹🏽' => 'persuna che schonglescha: pel media',
+    '🤹🏾' => 'persuna che schonglescha: pel mez stgira',
+    '🤹🏿' => 'persuna che schonglescha: pel stgira',
+    '🧘🏻' => 'persuna en la posiziun da lotos: pel clera',
+    '🧘🏼' => 'persuna en la posiziun da lotos: pel mez clera',
+    '🧘🏽' => 'persuna en la posiziun da lotos: pel media',
+    '🧘🏾' => 'persuna en la posiziun da lotos: pel mez stgira',
+    '🧘🏿' => 'persuna en la posiziun da lotos: pel stgira',
+    '🛀🏻' => 'persuna che fa bogn: pel clera',
+    '🛀🏼' => 'persuna che fa bogn: pel mez clera',
+    '🛀🏽' => 'persuna che fa bogn: pel media',
+    '🛀🏾' => 'persuna che fa bogn: pel mez stgira',
+    '🛀🏿' => 'persuna che fa bogn: pel stgira',
+    '🛌🏻' => 'persuna en letg: pel clera',
+    '🛌🏼' => 'persuna en letg: pel mez clera',
+    '🛌🏽' => 'persuna en letg: pel media',
+    '🛌🏾' => 'persuna en letg: pel mez stgira',
+    '🛌🏿' => 'persuna en letg: pel stgira',
+    '👭🏻' => 'dunnas che tegnan il maun: pel clera',
+    '👭🏼' => 'dunnas che tegnan il maun: pel mez clera',
+    '👭🏽' => 'dunnas che tegnan il maun: pel media',
+    '👭🏾' => 'dunnas che tegnan il maun: pel mez stgira',
+    '👭🏿' => 'dunnas che tegnan il maun: pel stgira',
+    '👫🏻' => 'dunna ed um che tegnan ils mauns: pel clera',
+    '👫🏼' => 'dunna ed um che tegnan ils mauns: pel mez clera',
+    '👫🏽' => 'dunna ed um che tegnan ils mauns: pel media',
+    '👫🏾' => 'dunna ed um che tegnan ils mauns: pel mez stgira',
+    '👫🏿' => 'dunna ed um che tegnan ils mauns: pel stgira',
+    '👬🏻' => 'umens che tegnan il maun: pel clera',
+    '👬🏼' => 'umens che tegnan il maun: pel mez clera',
+    '👬🏽' => 'umens che tegnan il maun: pel media',
+    '👬🏾' => 'umens che tegnan il maun: pel mez stgira',
+    '👬🏿' => 'umens che tegnan il maun: pel stgira',
+    '💏🏻' => 'bitsch: pel clera',
+    '💏🏼' => 'bitsch: pel mez clera',
+    '💏🏽' => 'bitsch: pel media',
+    '💏🏾' => 'bitsch: pel mez stgira',
+    '💏🏿' => 'bitsch: pel stgira',
+    '💑🏻' => 'pèr cun cor: pel clera',
+    '💑🏼' => 'pèr cun cor: pel mez clera',
+    '💑🏽' => 'pèr cun cor: pel media',
+    '💑🏾' => 'pèr cun cor: pel mez stgira',
+    '💑🏿' => 'pèr cun cor: pel stgira',
+    '🇦🇨' => 'bandiera: Insla da l’Ascensiun',
+    '🇦🇩' => 'bandiera: Andorra',
+    '🇦🇪' => 'bandiera: Emirats Arabs Unids',
+    '🇦🇫' => 'bandiera: Afganistan',
+    '🇦🇬' => 'bandiera: Antigua e Barbuda',
+    '🇦🇮' => 'bandiera: Anguilla',
+    '🇦🇱' => 'bandiera: Albania',
+    '🇦🇲' => 'bandiera: Armenia',
+    '🇦🇴' => 'bandiera: Angola',
+    '🇦🇶' => 'bandiera: Antarctica',
+    '🇦🇷' => 'bandiera: Argentina',
+    '🇦🇸' => 'bandiera: Samoa Americana',
+    '🇦🇹' => 'bandiera: Austria',
+    '🇦🇺' => 'bandiera: Australia',
+    '🇦🇼' => 'bandiera: Aruba',
+    '🇦🇽' => 'bandiera: Inslas Aland',
+    '🇦🇿' => 'bandiera: Aserbaidschan',
+    '🇧🇦' => 'bandiera: Bosnia ed Erzegovina',
+    '🇧🇧' => 'bandiera: Barbados',
+    '🇧🇩' => 'bandiera: Bangladesch',
+    '🇧🇪' => 'bandiera: Belgia',
+    '🇧🇫' => 'bandiera: Burkina Faso',
+    '🇧🇬' => 'bandiera: Bulgaria',
+    '🇧🇭' => 'bandiera: Bahrain',
+    '🇧🇮' => 'bandiera: Burundi',
+    '🇧🇯' => 'bandiera: Benin',
+    '🇧🇱' => 'bandiera: Son Barthélemy',
+    '🇧🇲' => 'bandiera: Bermudas',
+    '🇧🇳' => 'bandiera: Brunei',
+    '🇧🇴' => 'bandiera: Bolivia',
+    '🇧🇶' => 'bandiera: Pajais Bass caribics',
+    '🇧🇷' => 'bandiera: Brasilia',
+    '🇧🇸' => 'bandiera: Bahamas',
+    '🇧🇹' => 'bandiera: Butan',
+    '🇧🇻' => 'bandiera: Insla da Bouvet',
+    '🇧🇼' => 'bandiera: Botsuana',
+    '🇧🇾' => 'bandiera: Belarus',
+    '🇧🇿' => 'bandiera: Belize',
+    '🇨🇦' => 'bandiera: Canada',
+    '🇨🇨' => 'bandiera: Inslas Cocos',
+    '🇨🇩' => 'bandiera: Congo-Kinshasa',
+    '🇨🇫' => 'bandiera: Republica Centralafricana',
+    '🇨🇬' => 'bandiera: Congo-Brazzaville',
+    '🇨🇭' => 'bandiera: Svizra',
+    '🇨🇮' => 'bandiera: Costa d’Ivur',
+    '🇨🇰' => 'bandiera: Inslas Cook',
+    '🇨🇱' => 'bandiera: Chile',
+    '🇨🇲' => 'bandiera: Camerun',
+    '🇨🇳' => 'bandiera: China',
+    '🇨🇴' => 'bandiera: Columbia',
+    '🇨🇵' => 'bandiera: Insla Clipperton',
+    '🇨🇶' => 'bandiera: Sark',
+    '🇨🇷' => 'bandiera: Costa Rica',
+    '🇨🇺' => 'bandiera: Cuba',
+    '🇨🇻' => 'bandiera: Cap Verd',
+    '🇨🇼' => 'bandiera: Curaçao',
+    '🇨🇽' => 'bandiera: Insla da Nadal',
+    '🇨🇾' => 'bandiera: Cipra',
+    '🇨🇿' => 'bandiera: Tschechia',
+    '🇩🇪' => 'bandiera: Germania',
+    '🇩🇬' => 'bandiera: Diego Garcia',
+    '🇩🇯' => 'bandiera: Dschibuti',
+    '🇩🇰' => 'bandiera: Danemarc',
+    '🇩🇲' => 'bandiera: Dominica',
+    '🇩🇴' => 'bandiera: Republica Dominicana',
+    '🇩🇿' => 'bandiera: Algeria',
+    '🇪🇦' => 'bandiera: Ceuta e Melilla',
+    '🇪🇨' => 'bandiera: Ecuador',
+    '🇪🇪' => 'bandiera: Estonia',
+    '🇪🇬' => 'bandiera: Egipta',
+    '🇪🇭' => 'bandiera: Sahara Occidentala',
+    '🇪🇷' => 'bandiera: Eritrea',
+    '🇪🇸' => 'bandiera: Spagna',
+    '🇪🇹' => 'bandiera: Etiopia',
+    '🇪🇺' => 'bandiera: Uniun europeica',
+    '🇫🇮' => 'bandiera: Finlanda',
+    '🇫🇯' => 'bandiera: Fidschi',
+    '🇫🇰' => 'bandiera: Inslas Falkland',
+    '🇫🇲' => 'bandiera: Micronesia',
+    '🇫🇴' => 'bandiera: Inslas Feroe',
+    '🇫🇷' => 'bandiera: Frantscha',
+    '🇬🇦' => 'bandiera: Gabun',
+    '🇬🇧' => 'bandiera: Reginavel Unì',
+    '🇬🇩' => 'bandiera: Grenada',
+    '🇬🇪' => 'bandiera: Georgia',
+    '🇬🇫' => 'bandiera: Guyana Franzosa',
+    '🇬🇬' => 'bandiera: Guernsey',
+    '🇬🇭' => 'bandiera: Ghana',
+    '🇬🇮' => 'bandiera: Gibraltar',
+    '🇬🇱' => 'bandiera: Grönlanda',
+    '🇬🇲' => 'bandiera: Gambia',
+    '🇬🇳' => 'bandiera: Guinea',
+    '🇬🇵' => 'bandiera: Guadalupa',
+    '🇬🇶' => 'bandiera: Guinea Equatoriala',
+    '🇬🇷' => 'bandiera: Grezia',
+    '🇬🇸' => 'bandiera: Georgia dal Sid e las Inslas Sandwich dal Sid',
+    '🇬🇹' => 'bandiera: Guatemala',
+    '🇬🇺' => 'bandiera: Guam',
+    '🇬🇼' => 'bandiera: Guinea-Bissau',
+    '🇬🇾' => 'bandiera: Guyana',
+    '🇭🇰' => 'bandiera: Regiun d’administraziun speziala Hongkong, China',
+    '🇭🇲' => 'bandiera: Inslas da Heard e McDonald',
+    '🇭🇳' => 'bandiera: Honduras',
+    '🇭🇷' => 'bandiera: Croazia',
+    '🇭🇹' => 'bandiera: Haiti',
+    '🇭🇺' => 'bandiera: Ungaria',
+    '🇮🇨' => 'bandiera: Inslas Canarias',
+    '🇮🇩' => 'bandiera: Indonesia',
+    '🇮🇪' => 'bandiera: Irlanda',
+    '🇮🇱' => 'bandiera: Israel',
+    '🇮🇲' => 'bandiera: Insla da Man',
+    '🇮🇳' => 'bandiera: India',
+    '🇮🇴' => 'bandiera: Territori Britannic da l’Ocean Indic',
+    '🇮🇶' => 'bandiera: Irac',
+    '🇮🇷' => 'bandiera: Iran',
+    '🇮🇸' => 'bandiera: Islanda',
+    '🇮🇹' => 'bandiera: Italia',
+    '🇯🇪' => 'bandiera: Jersey',
+    '🇯🇲' => 'bandiera: Giamaica',
+    '🇯🇴' => 'bandiera: Jordania',
+    '🇯🇵' => 'bandiera: Giapun',
+    '🇰🇪' => 'bandiera: Kenia',
+    '🇰🇬' => 'bandiera: Kirghistan',
+    '🇰🇭' => 'bandiera: Cambodscha',
+    '🇰🇮' => 'bandiera: Kiribati',
+    '🇰🇲' => 'bandiera: Comoras',
+    '🇰🇳' => 'bandiera: Son Cristof e Nevis',
+    '🇰🇵' => 'bandiera: Corea dal Nord',
+    '🇰🇷' => 'bandiera: Corea dal Sid',
+    '🇰🇼' => 'bandiera: Kuwait',
+    '🇰🇾' => 'bandiera: Inslas Cayman',
+    '🇰🇿' => 'bandiera: Kasachstan',
+    '🇱🇦' => 'bandiera: Laos',
+    '🇱🇧' => 'bandiera: Libanon',
+    '🇱🇨' => 'bandiera: Sontga Lucia',
+    '🇱🇮' => 'bandiera: Liechtenstein',
+    '🇱🇰' => 'bandiera: Sri Lanka',
+    '🇱🇷' => 'bandiera: Liberia',
+    '🇱🇸' => 'bandiera: Lesotho',
+    '🇱🇹' => 'bandiera: Lituania',
+    '🇱🇺' => 'bandiera: Luxemburg',
+    '🇱🇻' => 'bandiera: Lettonia',
+    '🇱🇾' => 'bandiera: Libia',
+    '🇲🇦' => 'bandiera: Maroc',
+    '🇲🇨' => 'bandiera: Monaco',
+    '🇲🇩' => 'bandiera: Moldavia',
+    '🇲🇪' => 'bandiera: Montenegro',
+    '🇲🇫' => 'bandiera: Saint Martin',
+    '🇲🇬' => 'bandiera: Madagascar',
+    '🇲🇭' => 'bandiera: Inslas da Marshall',
+    '🇲🇰' => 'bandiera: Macedonia dal Nord',
+    '🇲🇱' => 'bandiera: Mali',
+    '🇲🇲' => 'bandiera: Myanmar (Burma)',
+    '🇲🇳' => 'bandiera: Mongolia',
+    '🇲🇴' => 'bandiera: Regiun d’administraziun speziala Macao, China',
+    '🇲🇵' => 'bandiera: Inslas Mariannas dal Nord',
+    '🇲🇶' => 'bandiera: Martinica',
+    '🇲🇷' => 'bandiera: Mauretania',
+    '🇲🇸' => 'bandiera: Montserrat',
+    '🇲🇹' => 'bandiera: Malta',
+    '🇲🇺' => 'bandiera: Mauritius',
+    '🇲🇻' => 'bandiera: Maledivas',
+    '🇲🇼' => 'bandiera: Malawi',
+    '🇲🇽' => 'bandiera: Mexico',
+    '🇲🇾' => 'bandiera: Malaisia',
+    '🇲🇿' => 'bandiera: Mosambic',
+    '🇳🇦' => 'bandiera: Namibia',
+    '🇳🇨' => 'bandiera: Nova Caledonia',
+    '🇳🇪' => 'bandiera: Niger',
+    '🇳🇫' => 'bandiera: Insla Norfolk',
+    '🇳🇬' => 'bandiera: Nigeria',
+    '🇳🇮' => 'bandiera: Nicaragua',
+    '🇳🇱' => 'bandiera: Pajais Bass',
+    '🇳🇴' => 'bandiera: Norvegia',
+    '🇳🇵' => 'bandiera: Nepal',
+    '🇳🇷' => 'bandiera: Nauru',
+    '🇳🇺' => 'bandiera: Niue',
+    '🇳🇿' => 'bandiera: Nova Zelanda',
+    '🇴🇲' => 'bandiera: Oman',
+    '🇵🇦' => 'bandiera: Panama',
+    '🇵🇪' => 'bandiera: Peru',
+    '🇵🇫' => 'bandiera: Polinesia Franzosa',
+    '🇵🇬' => 'bandiera: Papua Nova Guinea',
+    '🇵🇭' => 'bandiera: Filippinas',
+    '🇵🇰' => 'bandiera: Pakistan',
+    '🇵🇱' => 'bandiera: Pologna',
+    '🇵🇲' => 'bandiera: Saint Pierre e Miquelon',
+    '🇵🇳' => 'bandiera: Pitcairn',
+    '🇵🇷' => 'bandiera: Puerto Rico',
+    '🇵🇸' => 'bandiera: Territori Palestinais',
+    '🇵🇹' => 'bandiera: Portugal',
+    '🇵🇼' => 'bandiera: Palau',
+    '🇵🇾' => 'bandiera: Paraguai',
+    '🇶🇦' => 'bandiera: Qatar',
+    '🇷🇪' => 'bandiera: Réunion',
+    '🇷🇴' => 'bandiera: Rumenia',
+    '🇷🇸' => 'bandiera: Serbia',
+    '🇷🇺' => 'bandiera: Russia',
+    '🇷🇼' => 'bandiera: Ruanda',
+    '🇸🇦' => 'bandiera: Arabia Saudita',
+    '🇸🇧' => 'bandiera: Inslas da Salomon',
+    '🇸🇨' => 'bandiera: Seychellas',
+    '🇸🇩' => 'bandiera: Sudan',
+    '🇸🇪' => 'bandiera: Svezia',
+    '🇸🇬' => 'bandiera: Singapur',
+    '🇸🇭' => 'bandiera: Sontg’Elena',
+    '🇸🇮' => 'bandiera: Slovenia',
+    '🇸🇯' => 'bandiera: Svalbard e Jan Mayen',
+    '🇸🇰' => 'bandiera: Slovachia',
+    '🇸🇱' => 'bandiera: Sierra Leone',
+    '🇸🇲' => 'bandiera: Son Marin',
+    '🇸🇳' => 'bandiera: Senegal',
+    '🇸🇴' => 'bandiera: Somalia',
+    '🇸🇷' => 'bandiera: Surinam',
+    '🇸🇸' => 'bandiera: Sudan dal Sid',
+    '🇸🇹' => 'bandiera: São Tomé e Príncipe',
+    '🇸🇻' => 'bandiera: El Salvador',
+    '🇸🇽' => 'bandiera: Sint Maarten',
+    '🇸🇾' => 'bandiera: Siria',
+    '🇸🇿' => 'bandiera: Eswatini',
+    '🇹🇦' => 'bandiera: Tristan da Cunha',
+    '🇹🇨' => 'bandiera: Inslas Turks e Caicos',
+    '🇹🇩' => 'bandiera: Tschad',
+    '🇹🇫' => 'bandiera: Territoris Franzos Meridiunals',
+    '🇹🇬' => 'bandiera: Togo',
+    '🇹🇭' => 'bandiera: Tailanda',
+    '🇹🇯' => 'bandiera: Tadschikistan',
+    '🇹🇰' => 'bandiera: Tokelau',
+    '🇹🇱' => 'bandiera: Timor da l’Ost',
+    '🇹🇲' => 'bandiera: Turkmenistan',
+    '🇹🇳' => 'bandiera: Tunesia',
+    '🇹🇴' => 'bandiera: Tonga',
+    '🇹🇷' => 'bandiera: Tirchia',
+    '🇹🇹' => 'bandiera: Trinidad e Tobago',
+    '🇹🇻' => 'bandiera: Tuvalu',
+    '🇹🇼' => 'bandiera: Taiwan',
+    '🇹🇿' => 'bandiera: Tansania',
+    '🇺🇦' => 'bandiera: Ucraina',
+    '🇺🇬' => 'bandiera: Uganda',
+    '🇺🇲' => 'bandiera: Inslas Pitschnas Perifericas dals Stadis Unids da l’America',
+    '🇺🇳' => 'bandiera: Naziuns unidas',
+    '🇺🇸' => 'bandiera: Stadis Unids da l’America',
+    '🇺🇾' => 'bandiera: Uruguai',
+    '🇺🇿' => 'bandiera: Usbekistan',
+    '🇻🇦' => 'bandiera: Citad dal Vatican',
+    '🇻🇨' => 'bandiera: Son Vincenz e las Grenadinas',
+    '🇻🇪' => 'bandiera: Venezuela',
+    '🇻🇬' => 'bandiera: Inslas Virginas Britannicas',
+    '🇻🇮' => 'bandiera: Inslas Virginas Americanas',
+    '🇻🇳' => 'bandiera: Vietnam',
+    '🇻🇺' => 'bandiera: Vanuatu',
+    '🇼🇫' => 'bandiera: Wallis e Futuna',
+    '🇼🇸' => 'bandiera: Samoa',
+    '🇽🇰' => 'bandiera: Cosovo',
+    '🇾🇪' => 'bandiera: Jemen',
+    '🇾🇹' => 'bandiera: Mayotte',
+    '🇿🇦' => 'bandiera: Africa dal Sid',
+    '🇿🇲' => 'bandiera: Sambia',
+    '🇿🇼' => 'bandiera: Simbabwe',
+    '🔟' => 'tasta: 10',
     '🏻' => 'pel clera',
     '🏼' => 'pel mez clera',
     '🏽' => 'pel media',
     '🏾' => 'pel mez stgira',
     '🏿' => 'pel stgira',
+    '😀' => 'fatscha che ri',
+    '😃' => 'fatscha che ri cun gronds egls',
+    '😄' => 'fatscha che ri cun egls che surrin',
+    '😁' => 'fatscha che ri cun dents',
+    '😆' => 'fatscha che ri e tschegna',
+    '😅' => 'fatscha che ri cun suaditsch',
+    '🤣' => 'fatscha che sa storscha dal rir',
+    '😂' => 'fatscha cun larmas da plaschair',
+    '🙂' => 'fatscha che surri',
+    '🙃' => 'fatscha sutsura',
+    '🫠' => 'fatscha che lieua',
+    '😉' => 'fatscha che tschegna',
+    '😊' => 'fatscha cuntenta cun egls che rin',
+    '😇' => 'fatscha che ri cun gloriola',
+    '🥰' => 'fatscha che ri cun cors',
+    '😍' => 'fatscha che ri cun cors sco egls',
+    '🤩' => 'fatscha che ri cun stailas sco egls',
+    '😘' => 'fatscha che sufla in cor',
+    '😗' => 'fatscha che bitscha',
+    '☺' => 'fatscha simpla che ri',
+    '😚' => 'fatscha che bitscha cun egls serrads',
+    '😙' => 'fatscha che bitscha cun egls che rin',
+    '🥲' => 'fatscha che ri cun larma',
+    '😋' => 'fatscha che litga ils lefs',
+    '😛' => 'fatscha cun lieunga',
+    '🤪' => 'fatscha narra',
+    '😝' => 'fatscha che tschegna e mussa la lieunga',
+    '🤑' => 'fatscha cun daners en bucca',
+    '🤗' => 'fatscha che ri cun mauns averts',
+    '🤭' => 'fatscha cun maun davant la bucca',
+    '🫢' => 'fatscha cun egls averts e maun davant la bucca',
+    '🫣' => 'fatscha cun egl che cuchegia',
+    '🤫' => 'fatscha cun det che mussa da star airi',
+    '🫡' => 'fatscha che salutescha',
+    '🤐' => 'fatscha cun bucca da serranetga',
+    '🤨' => 'fatscha cun survantscheglia auzada',
+    '😐' => 'fatscha neutrala',
+    '😑' => 'fatscha senza expressiun',
+    '😶' => 'fatscha senza bucca',
+    '🫥' => 'fatscha cun lingia da stritgins',
+    '😏' => 'fatscha che sghigna',
+    '😒' => 'fatscha malcuntenta',
+    '🙄' => 'fatscha che volva ils egls',
+    '😬' => 'fatscha cun grimassa',
+    '🤥' => 'fatscha che di manzegnas',
+    '🫨' => 'fatscha che trembla',
+    '😌' => 'fatscha surlevgiada',
+    '😔' => 'fatscha pensiva',
+    '😪' => 'fatscha dormulenta',
+    '🤤' => 'fatscha che sbava',
+    '😴' => 'fatscha che dorma',
+    '🫩' => 'fatscha cun rintgs sut ils egls',
+    '😷' => 'fatscha cun mascrina d’igiena',
+    '🤒' => 'fatscha cun termometer',
+    '🤕' => 'fatscha cun bandascha',
+    '🤢' => 'fatscha cun disgust',
+    '🤮' => 'fatscha che vomitescha',
+    '🤧' => 'fatscha che starnida',
+    '🥵' => 'fatscha chauda',
+    '🥶' => 'fatscha fraida',
+    '🥴' => 'fatscha sturna',
+    '😵' => 'fatscha cun egls en furma da crusch',
+    '🤯' => 'chau ch’explodescha',
+    '🤠' => 'fatscha cun chapè da cowboy',
+    '🥳' => 'fatscha da festa',
+    '🥸' => 'fatscha cun mascra',
+    '😎' => 'fatscha che ri cun egliers da sulegl',
+    '🤓' => 'fatscha da nerd',
+    '🧐' => 'fatscha cun monochel',
+    '🫤' => 'fatscha cun bucca guerscha',
+    '😟' => 'fatscha preoccupada',
+    '🙁' => 'fatscha deprimida',
+    '☹' => 'fatscha deprimida simpla',
+    '😮' => 'fatscha cun bucca averta',
+    '😯' => 'fatscha surstada',
+    '😲' => 'fatscha perplexa',
+    '😳' => 'fatscha cun gronds egls e vistas cotschnas',
+    '🫪' => 'fatscha defurmada',
+    '🥺' => 'fatscha che roga',
+    '🥹' => 'fatscha che retegn las larmas',
+    '😦' => 'fatscha spaventada cun bucca averta',
+    '😧' => 'fatscha plain anguscha',
+    '😨' => 'fatscha che ha orrur',
+    '😰' => 'fatscha che ha orrur e sua',
+    '😥' => 'fatscha trista ma surlevgiada',
+    '😢' => 'fatscha che crida',
+    '😭' => 'fatscha che bragia dad aut',
+    '😱' => 'fatscha che sbragia da la tema',
+    '😖' => 'fatscha confusa',
+    '😣' => 'fatscha resoluta',
+    '😞' => 'fatscha dischillusiunada',
+    '😓' => 'fatscha deprimida cun suaditsch',
+    '😩' => 'fatscha stracca',
+    '😫' => 'fatscha stancla',
+    '🥱' => 'fatscha che susda',
+    '😤' => 'fatscha cun vapur en il nas',
+    '😡' => 'fatscha furiusa',
+    '😠' => 'fatscha vilada',
+    '🤬' => 'fatscha cun simbols sin la bucca',
+    '😈' => 'fatscha cun cornas che ri',
+    '👿' => 'fatscha gritta cun cornas',
+    '💀' => 'chavazza da mort',
+    '☠' => 'chavazza da mort simpla cun ossa en crusch',
+    '💩' => 'cac',
+    '🤡' => 'fatscha da clown',
+    '👹' => 'monster',
+    '👺' => 'cobold',
+    '👻' => 'spiert',
+    '👽' => 'extraterrester',
+    '👾' => 'monster en pixels',
+    '🤖' => 'roboter',
+    '😺' => 'gat che ri',
+    '😸' => 'giat che ri cun egls che surrin',
+    '😹' => 'giat cun larmas da plaschair',
+    '😻' => 'giat che ri cun cors sco egls',
+    '😼' => 'giat che ri cun bucca guerscha',
+    '😽' => 'giat che dat in bitsch',
+    '🙀' => 'giat spaventà',
+    '😿' => 'giat che crida',
+    '😾' => 'giat che fa il botsch',
+    '🙈' => 'schimgia cun mauns davant ils egls',
+    '🙉' => 'schimgia cun mauns sin las ureglias',
+    '🙊' => 'schimgia che tegna la bucca',
+    '💌' => 'brev d’amur',
+    '💘' => 'cor cun frizza',
+    '💝' => 'cor cun mascha',
+    '💖' => 'cor che sbrinzla',
+    '💗' => 'cor che crescha',
+    '💓' => 'cor che batta',
+    '💞' => 'cors che giran',
+    '💕' => 'dus cors',
+    '💟' => 'cor decorativ',
+    '❣' => 'cor sco segn d’exclamaziun',
+    '💔' => 'cor rut',
+    '❤' => 'cor cotschen',
+    '🩷' => 'cor rosa',
+    '🧡' => 'cor oransch',
+    '💛' => 'cor mellen',
+    '💚' => 'cor verd',
+    '💙' => 'cor blau',
+    '🩵' => 'cor blau cler',
+    '💜' => 'cor violet',
+    '🤎' => 'cor brin',
+    '🖤' => 'cor nair',
+    '🩶' => 'cor grisch',
+    '🤍' => 'cor alv',
+    '💋' => 'lefs cotschens',
+    '💯' => '100 puncts',
+    '💢' => 'simbol da ravgia',
+    '🫯' => 'nivel da cumbat',
+    '💥' => 'collisiun',
+    '💫' => 'sturn',
+    '💦' => 'daguts da suaditsch',
+    '💨' => 'nivel da pulvra',
+    '🕳' => 'rusna',
+    '💬' => 'nivletta cun trais puncts',
+    '🗨' => 'nivletta a sanestra',
+    '🗯' => 'nivletta gritta a dretga',
+    '💭' => 'nivletta cun patratgs',
+    '💤' => 'sien',
+    '👋' => 'dar dal maun',
+    '🤚' => 'dies dal maun auzà',
+    '🖐' => 'maun avert',
+    '✋' => 'maun auzà',
+    '🖖' => 'salid vulcanic',
+    '🫱' => 'maun che mussa a dretga',
+    '🫲' => 'maun che mussa a sanestra',
+    '🫳' => 'maun cun la palma engiu',
+    '🫴' => 'maun cun la palma maun ensi',
+    '🫷' => 'maun che stauscha a sanestra',
+    '🫸' => 'maun che stauscha a dretga',
+    '👌' => 'maun che mussa ok',
+    '🤌' => 'maun cun pizza da la detta che sa tutga',
+    '🤏' => 'maun che mussa pitschen',
+    '✌' => 'gest victory',
+    '🤞' => 'dus dets cruschads',
+    '🫰' => 'gest per char',
+    '🤟' => 'gest «jau t’am»',
+    '🤘' => 'gest da cornas',
+    '🤙' => 'gest da telefonar',
+    '👈' => 'dies dal maun cun det che mussa a sanestra',
+    '👉' => 'dies dal maun cun det che mussa a dretga',
+    '👆' => 'dies dal maun cun det mussader vers ensi',
+    '🖕' => 'det d’amez stendì',
+    '👇' => 'dies dal maun cun det mussader vers engiu',
+    '☝' => 'det mussader che mussa ensi',
+    '🫵' => 'det mussader che mussa sin mai',
+    '👍' => 'polesch che mussa ensi',
+    '👎' => 'polesch che mussa engiu',
+    '✊' => 'pugn ad aut',
+    '👊' => 'pugn vers mai',
+    '🤛' => 'pugn che mussa a sanestra',
+    '🤜' => 'pugn che mussa a dretga',
+    '👏' => 'mauns che applaudeschan',
+    '🙌' => 'mauns auzads',
+    '🫶' => 'mauns che furman in cor',
+    '👐' => 'mauns averts',
+    '🤲' => 'omaduas palmas-maun ina sper l’autra',
+    '🤝' => 'dar il maun',
+    '🙏' => 'palmas-maun ina sin l‘autra',
+    '✍' => 'maun che scriva',
+    '💅' => 'vernisch dad unglas',
+    '🤳' => 'selfie',
+    '💪' => 'biceps tendì',
+    '🦾' => 'protesa da bratsch',
+    '🦿' => 'protesa da chomma',
+    '🦵' => 'chomma',
+    '🦶' => 'pe',
+    '👂' => 'ureglia',
+    '🦻' => 'ureglia cun apparat d’udida',
+    '👃' => 'nas',
+    '🧠' => 'tscharvè',
+    '🫀' => 'cor sco organ',
+    '🫁' => 'pulmun',
+    '🦷' => 'dent',
+    '🦴' => 'oss',
+    '👀' => 'egls',
+    '👁' => 'egl',
+    '👅' => 'lieunga',
+    '👄' => 'bucca',
+    '🫦' => 'morder il lef',
+    '👶' => 'uffantin',
+    '🧒' => 'uffant',
+    '👦' => 'mattet',
+    '👧' => 'mattetta',
+    '🧑' => 'persuna',
+    '👱' => 'persuna: chavels blonds',
+    '👨' => 'um',
+    '🧔' => 'persuna: barba',
+    '👩' => 'dunna',
+    '🧓' => 'persuna pli veglia',
+    '👴' => 'um vegl',
+    '👵' => 'dunna veglia',
+    '🙍' => 'persuna malcuntenta',
+    '🙎' => 'persuna permalada',
+    '🙅' => 'persuna cun bratscha cruschada',
+    '🙆' => 'persuna che tegna ils mauns sin il chau',
+    '💁' => 'persuna che tegna la palma-maun vers ensi',
+    '🙋' => 'persuna che auza il maun',
+    '🧏' => 'persuna surda',
+    '🙇' => 'persuna che s’enclina',
+    '🤦' => 'persuna cun la palma-maun sin la fatscha',
+    '🤷' => 'persuna che auza las spatlas',
+    '👮' => 'policist:a',
+    '🕵' => 'detectiv:a',
+    '🥷' => 'ninja',
+    '👷' => 'lavurer:a da construcziun',
+    '🫅' => 'persuna cun curuna',
+    '🤴' => 'prinzi',
+    '👸' => 'princessa',
+    '👳' => 'persuna cun in turban',
+    '👲' => 'persuna cun in chapè chinais',
+    '🧕' => 'dunna cun faziel da chau',
     '🤵' => 'persuna cun smoking',
     '👰' => 'persuna cun vel',
+    '🤰' => 'dunna en speranza',
+    '🫃' => 'um en speranza',
+    '🫄' => 'persuna en speranza',
+    '🤱' => 'dar latg',
+    '👼' => 'anghelin',
+    '🎅' => 'Son Niclà',
+    '🤶' => 'Sontga Nicoletta',
+    '🦸' => 'supererox:a',
+    '🦹' => 'supernausch:a',
+    '🧙' => 'striun:a',
+    '🧚' => 'dial:a',
+    '🧛' => 'vampir:a',
+    '🧜' => 'uman da l’aua',
+    '🧝' => 'elf:a',
+    '🧞' => 'spiert da buttiglia',
+    '🧟' => 'zombi',
+    '🧌' => 'trol',
+    '🫈' => 'creatira pailusa',
+    '💆' => 'persuna che vegn massada',
+    '💇' => 'persuna che sa lascha tagliar ils chavels',
+    '🚶' => 'persuna che va a pe',
+    '🧍' => 'persuna en pe',
+    '🧎' => 'persuna en schanuglias',
+    '🏃' => 'persuna che curra',
+    '💃' => 'dunna che balla',
+    '🕺' => 'um che balla',
+    '🕴' => 'persuna en vestgì che levitescha',
+    '👯' => 'persunas cun ureglias da lieur',
+    '🧖' => 'persuna en ina stanza cun vapur',
+    '🧗' => 'persuna che raiva',
+    '🤺' => 'persuna che scrima',
+    '🏇' => 'cursa da chavals',
+    '⛷' => 'ir cun skis',
+    '🏂' => 'snowboardist:a',
+    '🏌' => 'persuna che dat golf',
+    '🏄' => 'persuna che fa surfing',
+    '🚣' => 'persuna che rembla',
+    '🏊' => 'persuna che noda',
+    '⛹' => 'persuna cun balla',
+    '🏋' => 'persuna che auza pais',
+    '🚴' => 'persuna che va cun velo',
+    '🚵' => 'persuna che va cun mountainbike',
+    '🤸' => 'persuna che fa la roda',
+    '🤼' => 'persunas che lutgan',
+    '🤽' => 'persuna che gioga ballanataziun',
+    '🤾' => 'persuna che gioga ballamaun',
+    '🤹' => 'persuna che schonglescha',
+    '🧘' => 'persuna en la posiziun da lotos',
+    '🛀' => 'persuna che fa bogn',
+    '🛌' => 'persuna en letg',
+    '👭' => 'dunnas che tegnan il maun',
+    '👫' => 'dunna ed um che tegnan ils mauns',
+    '👬' => 'umens che tegnan il maun',
+    '💏' => 'bitsch',
+    '💑' => 'pèr cun cor',
+    '🗣' => 'chau che discurra',
+    '👤' => 'schema foto da passaport',
+    '👥' => 'schema da dus chaus',
+    '🫂' => 'persunas che s’embratschan',
+    '👪' => 'famiglia',
+    '👣' => 'passidas',
+    '🫆' => 'impronta dal det',
     '🦰' => 'chavels cotschens',
     '🦱' => 'chavels ritschads',
+    '🦳' => 'chavels alvs',
+    '🦲' => 'chau blut',
     '🐵' => 'fatscha da schimgia',
     '🐒' => 'schimgia',
     '🦍' => 'gorilla',
     '🦧' => 'orangutan',
     '🐶' => 'fatscha da chaun',
     '🐕' => 'chaun',
+    '🦮' => 'chaun per tschorvs',
     '🐩' => 'pudel',
+    '🐺' => 'luf',
+    '🦊' => 'vulp',
+    '🦝' => 'urset american',
+    '🐱' => 'fatscha da giat',
+    '🐈' => 'giat',
+    '🦁' => 'liun',
+    '🐯' => 'fatscha da tigher',
+    '🐅' => 'tigher',
+    '🐆' => 'leopard',
+    '🐴' => 'chau da chaval',
+    '🫎' => 'elan',
+    '🫏' => 'asen',
+    '🐎' => 'chaval',
+    '🦄' => 'unicorn',
+    '🦓' => 'zebra',
+    '🦌' => 'tschierv',
+    '🦬' => 'bison',
+    '🐮' => 'chau da vatga',
+    '🐂' => 'bov',
+    '🐃' => 'biffel da l’aua',
+    '🐄' => 'vatga',
+    '🐷' => 'chau da portg',
+    '🐖' => 'portg',
+    '🐗' => 'portg selvadi',
+    '🐽' => 'gnif da portg',
+    '🐏' => 'botsch',
+    '🐑' => 'nursa',
+    '🐐' => 'chaura',
+    '🐪' => 'dromedar',
+    '🐫' => 'chamel',
+    '🦙' => 'lama',
+    '🦒' => 'giraffa',
+    '🐘' => 'elefant',
+    '🦣' => 'mamut',
+    '🦏' => 'rinoceros',
+    '🦛' => 'ippopotam',
+    '🐭' => 'chau da mieur',
+    '🐁' => 'mieur',
+    '🐀' => 'ratun',
+    '🐹' => 'raspun',
+    '🐰' => 'chau da lieur',
+    '🐇' => 'lieur',
+    '🐿' => 'stgilat',
+    '🦫' => 'castur',
+    '🦔' => 'erizun',
+    '🦇' => 'utschè-mezmieur',
+    '🐻' => 'chau da l’urs',
+    '🐨' => 'koala',
+    '🐼' => 'panda',
+    '🦥' => 'smarschun',
+    '🦦' => 'ludra',
+    '🦨' => 'scunc',
+    '🦘' => 'kenguru',
+    '🦡' => 'tais',
+    '🐾' => 'fastizs',
+    '🦃' => 'galdin',
+    '🐔' => 'giaglina',
+    '🐓' => 'cot',
+    '🐣' => 'pulschain che vegn or da l’ov',
+    '🐤' => 'pulschain',
+    '🐥' => 'pulschain da davanten',
+    '🐦' => 'utschè',
+    '🐧' => 'pinguin',
+    '🕊' => 'columba',
+    '🦅' => 'evla',
+    '🦆' => 'anda',
+    '🦢' => 'cign',
+    '🦉' => 'tschuetta',
+    '🦤' => 'dodo',
+    '🪶' => 'plima',
+    '🦩' => 'flamingo',
+    '🦚' => 'pavun',
+    '🦜' => 'papagagl',
+    '🪽' => 'ala',
+    '🪿' => 'auca',
+    '🐸' => 'rauna',
+    '🐊' => 'crocodil',
+    '🐢' => 'tartaruga',
+    '🦎' => 'luschard',
+    '🐍' => 'serp',
+    '🐲' => 'chau da dragun',
+    '🐉' => 'dragun',
+    '🦕' => 'sauropod',
+    '🦖' => 'tirannosaur',
+    '🐳' => 'balena che squitta aua',
+    '🐋' => 'balena',
+    '🐬' => 'delfin',
+    '🫍' => 'orca',
+    '🦭' => 'foca',
+    '🐟' => 'pesch',
+    '🐠' => 'pesch tropic',
+    '🐡' => 'pesch-ballun',
+    '🦈' => 'squagl',
+    '🐙' => 'octopus',
+    '🐚' => 'chasa da la lindorna',
+    '🪸' => 'cural',
+    '🪼' => 'medusa',
+    '🦀' => 'giomber',
+    '🦞' => 'giomber da mar',
+    '🦐' => 'crevetta',
+    '🦑' => 'chalimar',
+    '🦪' => 'austra',
+    '🐌' => 'lindorna',
+    '🦋' => 'tgiralla',
+    '🐛' => 'rasulauna',
+    '🐜' => 'furmia',
+    '🐝' => 'avieul',
+    '🪲' => 'bau',
+    '🐞' => 'bau da Nossadunna',
+    '🦗' => 'grigl',
+    '🪳' => 'chamulauna da cuschina',
+    '🕷' => 'filien',
+    '🕸' => 'taila-filien',
+    '🦂' => 'scorpiun',
+    '🦟' => 'mosquito',
+    '🪰' => 'mustga',
+    '🪱' => 'verm',
+    '🦠' => 'microba',
+    '💐' => 'matg flurs',
+    '🌸' => 'flur da tscharescha',
+    '💮' => 'flur alva',
+    '🪷' => 'flur da lotos',
+    '🏵' => 'planta a rosettas',
+    '🌹' => 'rosa',
+    '🥀' => 'flur sflurida',
+    '🌺' => 'ibiscus',
+    '🌻' => 'flur-sulegl',
+    '🌼' => 'flur',
+    '🌷' => 'tulipana',
+    '🪻' => 'giacinta',
+    '🌱' => 'scherm',
+    '🪴' => 'planta en vasch',
+    '🌲' => 'pign',
+    '🌳' => 'planta da feglia',
+    '🌴' => 'palma',
+    '🌵' => 'cactus',
+    '🌾' => 'spia da ris',
+    '🌿' => 'ervas',
+    '☘' => 'traifegl',
+    '🍀' => 'quatterfegl',
+    '🍁' => 'fegl d’ischi',
+    '🍂' => 'feglia',
+    '🍃' => 'fegl che sgulatscha en il vent',
+    '🪹' => 'igniv vid',
+    '🪺' => 'igniv cun ovs',
+    '🍄' => 'bulieu',
+    '🪾' => 'planta senza feglia',
+    '🍇' => 'iva',
+    '🍈' => 'melona',
+    '🍉' => 'melona d’aua',
+    '🍊' => 'mandarina',
+    '🍋' => 'citrona',
+    '🍌' => 'banana',
+    '🍍' => 'ananas',
+    '🥭' => 'mango',
+    '🍎' => 'mail cotschen',
+    '🍏' => 'mail verd',
+    '🍐' => 'pair',
+    '🍑' => 'persic',
+    '🍒' => 'tschareschas',
+    '🍓' => 'fraja',
+    '🫐' => 'izun',
+    '🥝' => 'kiwi',
+    '🍅' => 'tomata',
+    '🫒' => 'uliva',
+    '🥥' => 'nusch da cocos',
+    '🥑' => 'avocado',
+    '🍆' => 'oberschina',
+    '🥔' => 'tartuffel',
+    '🥕' => 'carotta',
+    '🌽' => 'spia da tirc',
+    '🌶' => 'chili',
+    '🫑' => 'peperoni',
+    '🥒' => 'cucumera',
+    '🥬' => 'legums da feglia',
+    '🥦' => 'broccoli',
+    '🧄' => 'agl',
+    '🧅' => 'tschagula',
+    '🥜' => 'spagnoletta',
+    '🫘' => 'fava',
+    '🌰' => 'nitschola',
+    '🫚' => 'ragisch da schentsch',
+    '🫛' => 'arveglia',
+    '🫜' => 'legums da ragisch',
+    '🍞' => 'paun',
+    '🥐' => 'stortin',
+    '🥖' => 'baghet',
+    '🫓' => 'paun plat',
+    '🥨' => 'brezel',
+    '🥯' => 'bagel',
+    '🥞' => 'pancakes',
+    '🧇' => 'guafla',
+    '🧀' => 'chaschiel',
+    '🍖' => 'charn cun oss',
+    '🍗' => 'chalun-pulaster',
+    '🥩' => 'toc charn',
+    '🥓' => 'charnpiertg',
+    '🍔' => 'hamburger',
+    '🍟' => 'pomfrits',
+    '🍕' => 'pizza',
+    '🌭' => 'hotdog',
+    '🥪' => 'sandwich',
+    '🌮' => 'taco',
+    '🌯' => 'burrito',
+    '🫔' => 'tamale',
+    '🥙' => 'kebab',
+    '🧆' => 'falafel',
+    '🥚' => 'ov',
+    '🍳' => 'ov en paintg en ina padella',
+    '🥘' => 'padella cun plat unì',
+    '🍲' => 'avnaun cun legums',
+    '🫕' => 'fondue',
+    '🥣' => 'cuppa cun tschadun',
+    '🥗' => 'salata',
+    '🍿' => 'popcorn',
+    '🧈' => 'paintg',
+    '🧂' => 'sal',
+    '🥫' => 'vivonda da conserva',
+    '🍱' => 'boxa per la marenda',
+    '🍘' => 'guafla da ris',
+    '🍙' => 'culla da ris',
+    '🍚' => 'ris cuschinà',
+    '🍛' => 'curry cun ris',
+    '🍜' => 'cuppa cun tratga e bastunets chinais',
+    '🍝' => 'spaghets',
+    '🍠' => 'patat dultsch',
+    '🍢' => 'oden',
+    '🍣' => 'sushi',
+    '🍤' => 'crevetta frittada',
+    '🍥' => 'fricadella da pesch cun spirala',
+    '🥮' => 'turta da glina',
+    '🍡' => 'dango',
+    '🥟' => 'tastgina da pasta',
+    '🥠' => 'biscuit da fortuna',
+    '🥡' => 'stgatla per take-away',
+    '🍦' => 'soft ice',
+    '🍧' => 'glatsch d’aua',
+    '🍨' => 'glatsch',
+    '🍩' => 'donut',
+    '🍪' => 'biscuit',
+    '🎂' => 'turta d’anniversari',
+    '🍰' => 'toc turta',
+    '🧁' => 'cupcake',
+    '🥧' => 'petta',
+    '🍫' => 'tschigulatta',
+    '🍬' => 'zutgerin',
+    '🍭' => 'tschitsch',
+    '🍮' => 'chau da caramella',
+    '🍯' => 'magiel mel d’avieuls',
+    '🍼' => 'clocca',
+    '🥛' => 'magiel da latg',
+    '☕' => 'bavronda chauda',
+    '🫖' => 'cria da té',
+    '🍵' => 'cuppin da té senza ureglia',
+    '🍶' => 'saké',
+    '🍾' => 'buttiglia cun cucun che siglia davent',
+    '🍷' => 'magiel vin',
+    '🍸' => 'coctail',
+    '🍹' => 'coctail exotic',
+    '🍺' => 'biera',
+    '🍻' => 'viva cun buccaluns',
+    '🥂' => 'far viva',
+    '🥃' => 'magiel tumbler',
+    '🫗' => 'derscher ora liquid',
+    '🥤' => 'cup cun strom',
+    '🧋' => 'bubble tea',
+    '🧃' => 'pachet cun bavronda',
+    '🧉' => 'mate',
+    '🧊' => 'quadrin da glatsch',
+    '🥢' => 'bastunets chinais',
+    '🍽' => 'furtgetta e cuntè cun plat',
+    '🍴' => 'furtgetta e cuntè',
+    '🥄' => 'tschadun',
+    '🔪' => 'cuntè da cuschina',
+    '🫙' => 'confitura',
+    '🏺' => 'amfora',
+    '🌍' => 'globus che mussa l’Europa e l’Africa',
+    '🌎' => 'globus che mussa l’America',
+    '🌏' => 'globus che mussa l’Asia e l’Australia',
+    '🌐' => 'globus cun meridians',
+    '🗺' => 'charta dal mund',
+    '🗾' => 'charta dal Giapun',
+    '🧭' => 'cumpass',
+    '🏔' => 'muntogna cuverta da naiv',
+    '⛰' => 'muntogna',
+    '🛘' => 'bova',
+    '🌋' => 'vulcan',
+    '🗻' => 'muntogna Fuji',
+    '🏕' => 'campadi',
+    '🏖' => 'splagia cun parasol',
+    '🏜' => 'desert',
+    '🏝' => 'insla solitaria',
+    '🏞' => 'parc naziunal',
+    '🏟' => 'stadion',
+    '🏛' => 'edifizi antic',
+    '🏗' => 'edifizi en construcziun',
+    '🧱' => 'mir da quadrels',
+    '🪨' => 'grip',
+    '🪵' => 'lain',
+    '🛖' => 'chamona',
+    '🏘' => 'chasas',
+    '🏚' => 'chasa en decadenza',
+    '🏠' => 'chasa',
+    '🏡' => 'chasa cun curtin',
+    '🏢' => 'edifizi da biros',
+    '🏣' => 'posta giapunaisa',
+    '🏤' => 'posta',
+    '🏥' => 'ospital',
+    '🏦' => 'banca',
+    '🏨' => 'hotel',
+    '🏩' => 'hotel per ura',
+    '🏪' => 'butietta da 24 uras',
+    '🏫' => 'scola',
+    '🏬' => 'negozi',
+    '🏭' => 'fabrica',
+    '🏯' => 'chastè giapunais',
+    '🏰' => 'chastè',
+    '💒' => 'nozzas',
+    '🗼' => 'Tur da Tokyo',
+    '🗽' => 'statua da la libertad',
+    '⛪' => 'baselgia',
+    '🕌' => 'moschea',
+    '🛕' => 'tempel hinduistic',
+    '🕍' => 'sinagoga',
+    '⛩' => 'sanctuari schintoistic',
+    '🕋' => 'kaaba',
+    '⛲' => 'funtauna siglinta',
+    '⛺' => 'tenda',
+    '🌁' => 'brentinus',
+    '🌃' => 'notg cun stailas',
+    '🏙' => 'cuntrada urbana',
+    '🌄' => 'levada dal sulegl en las muntognas',
+    '🌅' => 'levada dal sulegl',
+    '🌆' => 'citad sin il far notg',
+    '🌇' => 'tramunt',
+    '🌉' => 'punt da notg',
+    '♨' => 'funtaunas chaudas',
+    '🎠' => 'chaval da carussel',
+    '🛝' => 'ruschnera',
+    '🎡' => 'roda panoramica',
+    '🎢' => 'rodaglia auta',
+    '💈' => 'segn da barbier',
+    '🎪' => 'tenda da circus',
+    '🚂' => 'locomotiva',
+    '🚃' => 'vagun',
+    '🚄' => 'tren ad auta sveltezza',
+    '🚅' => 'tren ad auta sveltezza cun nas radund',
+    '🚆' => 'tren',
+    '🚇' => 'metro',
+    '🚈' => 'tren urban',
+    '🚉' => 'staziun',
+    '🚊' => 'tram',
+    '🚝' => 'monorodaglia',
+    '🚞' => 'viafier da muntogna',
+    '🚋' => 'vagun da tram',
+    '🚌' => 'bus',
+    '🚍' => 'bus da davanten',
+    '🚎' => 'trolleybus',
+    '🚐' => 'minibus',
+    '🚑' => 'ambulanza',
+    '🚒' => 'auto da pumpiers',
+    '🚓' => 'auto da polizia',
+    '🚔' => 'auto da polizia che arriva',
+    '🚕' => 'taxi',
+    '🚖' => 'taxi da davanten',
+    '🚗' => 'auto',
+    '🚘' => 'auto da davanten',
+    '🚙' => 'SUV',
+    '🛻' => 'camiunetta',
+    '🚚' => 'camiun',
+    '🚛' => 'camiun-tractor',
+    '🚜' => 'tractor',
+    '🏎' => 'auto da cursa',
+    '🏍' => 'moto',
+    '🛵' => 'motoretta',
+    '🦽' => 'sutga cun rodas manuala',
+    '🦼' => 'sutga cun rodas electrica',
+    '🛺' => 'mototaxi',
+    '🚲' => 'velo',
+    '🛴' => 'trottinet',
+    '🛹' => 'skateboard',
+    '🛼' => 'patins cun rodas',
+    '🚏' => 'fermada dal bus',
+    '🛣' => 'autostrada',
+    '🛤' => 'rodaglias',
+    '🛢' => 'butschin dad ieli',
+    '⛽' => 'distributur da benzin',
+    '🛞' => 'roda',
+    '🚨' => 'glisch d’avertiment',
+    '🚥' => 'ampla orizontala',
+    '🚦' => 'ampla verticala',
+    '🛑' => 'signal da stop',
+    '🚧' => 'plazzal',
+    '⚓' => 'ancra',
+    '🛟' => 'rintg da salvament',
+    '⛵' => 'bartga a vela',
+    '🛶' => 'canu',
+    '🚤' => 'bartga rapida',
+    '🛳' => 'nav da passagiers',
+    '⛴' => 'nav-fera',
+    '🛥' => 'bartga a motor',
+    '🚢' => 'bastiment',
+    '✈' => 'aviun',
+    '🛩' => 'pitschen aviun',
+    '🛫' => 'partenza d’in aviun',
+    '🛬' => 'atterrament d’in aviun',
+    '🪂' => 'paracrudada',
+    '💺' => 'sez',
+    '🚁' => 'helicopter',
+    '🚟' => 'viafier pendenta',
+    '🚠' => 'teleferica',
+    '🚡' => 'pendiculara',
+    '🛰' => 'satellit',
+    '🚀' => 'racheta',
+    '🛸' => 'ufo',
+    '🛎' => 'scalin d’hotel',
+    '🧳' => 'bagascha',
+    '⌛' => 'ura da sablun',
+    '⏳' => 'ura da sablun che scurra',
+    '⌚' => 'ura da bratsch',
+    '⏰' => 'svegliarin',
+    '⏱' => 'cronometer',
+    '⏲' => 'ura d’ovs',
+    '🕰' => 'ura da cheminé',
+    '🕛' => 'las dudesch',
+    '🕧' => 'las dudesch e mesa',
+    '🕐' => 'l’ina',
+    '🕜' => 'l’ina e mesa',
+    '🕑' => 'las duas',
+    '🕝' => 'las duas e mesa',
+    '🕒' => 'las trais',
+    '🕞' => 'las trais e mesa',
+    '🕓' => 'las quatter',
+    '🕟' => 'las quatter e mesa',
+    '🕔' => 'las tschintg',
+    '🕠' => 'las tschintg e mesa',
+    '🕕' => 'las sis',
+    '🕡' => 'las sis e mesa',
+    '🕖' => 'las set',
+    '🕢' => 'las set e mesa',
+    '🕗' => 'las otg',
+    '🕣' => 'las otg e mesa',
+    '🕘' => 'las nov',
+    '🕤' => 'las nov e mesa',
+    '🕙' => 'las diesch',
+    '🕥' => 'las diesch e mesa',
+    '🕚' => 'las endisch',
+    '🕦' => 'las endisch e mesa',
+    '🌑' => 'glina nova',
+    '🌒' => 'farcla glina creschenta',
+    '🌓' => 'mesa glina creschenta',
+    '🌔' => 'glina creschenta per trais quarts plaina',
+    '🌕' => 'glina plaina',
+    '🌖' => 'glina digren per trais quarts plaina',
+    '🌗' => 'mesa glina digren',
+    '🌘' => 'farcla glina digren',
+    '🌙' => 'glina creschenta',
+    '🌚' => 'fatscha glina nova',
+    '🌛' => 'farcla da la glina creschenta cun fatscha',
+    '🌜' => 'farcla da la glina digren cun fatscha',
+    '🌡' => 'termometer',
+    '☀' => 'sulegl',
+    '🌝' => 'fatscha da glina plaina',
+    '🌞' => 'sulegl cun fatscha',
+    '🪐' => 'planet cun rintg',
+    '⭐' => 'staila',
+    '🌟' => 'staila che briglia',
+    '🌠' => 'staila crudanta',
+    '🌌' => 'via da latg',
+    '☁' => 'nivel',
+    '⛅' => 'sulegl davos in nivel',
+    '⛈' => 'nivel cun chametg e plievgia',
+    '🌤' => 'sulegl davos in pitschen nivel',
+    '🌥' => 'sulegl davos in grond nivel',
+    '🌦' => 'sulegl davos in nivel da plievgia',
+    '🌧' => 'nivel cun plievgia',
+    '🌨' => 'nivel cun scrottas da naiv',
+    '🌩' => 'nivel cun chametg',
+    '🌪' => 'tornado',
+    '🌫' => 'tschajera',
+    '🌬' => 'vent cun fatscha',
+    '🌀' => 'ciclon',
+    '🌈' => 'artg s. Martin',
+    '🌂' => 'paraplievgia serrà',
+    '☂' => 'paraplievgia',
+    '☔' => 'paraplievgia cun daguts da plievgia',
+    '⛱' => 'parasol sin il sablun',
+    '⚡' => 'auta tensiun',
+    '❄' => 'floc da naiv',
+    '☃' => 'um da naiv cun flocs da naiv',
+    '⛄' => 'um da naiv',
+    '☄' => 'comet',
+    '🔥' => 'fieu',
+    '💧' => 'dagut',
+    '🌊' => 'unda',
+    '🎃' => 'zitga da Halloween',
+    '🎄' => 'pignol da Nadal',
+    '🎆' => 'fieu artifizial',
+    '🎇' => 'chandaila magica',
+    '🧨' => 'petarda chastrada',
+    '✨' => 'sbrinzlas',
+    '🎈' => 'ballun',
+    '🎉' => 'bumba da confettis',
+    '🎊' => 'confettis',
+    '🎋' => 'planta da tanabata',
+    '🎍' => 'bambus decorà',
+    '🎎' => 'poppas giapunaisas',
+    '🎏' => 'dragun da carpas',
+    '🎐' => 'carillon da vent',
+    '🎑' => 'ceremonia da contemplaziun da la glina',
+    '🧧' => 'busta cotschna',
+    '🎀' => 'mascha',
+    '🎁' => 'regal',
+    '🎗' => 'mascha da regurdanza',
+    '🎟' => 'bigliets d’entrada',
+    '🎫' => 'bigliet',
+    '🎖' => 'medaglia militara',
+    '🏆' => 'pocal',
+    '🏅' => 'medaglia da sport',
+    '🥇' => 'medaglia d’aur',
+    '🥈' => 'medaglia d’argient',
+    '🥉' => 'medaglia da bronz',
+    '⚽' => 'balla da ballape',
+    '⚾' => 'balla da baseball',
+    '🥎' => 'balla da softball',
+    '🏀' => 'balla-basket',
+    '🏐' => 'balla-volley',
+    '🏈' => 'balla dad american football',
+    '🏉' => 'balla da rugby',
+    '🎾' => 'tennis',
+    '🥏' => 'frisbee',
+    '🎳' => 'bowling',
+    '🏏' => 'crichet',
+    '🏑' => 'unihockey',
+    '🏒' => 'hockey sin glatsch',
+    '🥍' => 'lacrosse',
+    '🏓' => 'pingpong',
+    '🏸' => 'badminton',
+    '🥊' => 'guant da boxar',
+    '🥋' => 'mandura da sports da cumbat',
+    '🥅' => 'gol',
+    '⛳' => 'bandiera da golf',
+    '⛸' => 'patin',
+    '🎣' => 'pertga cun pesch',
+    '🤿' => 'mascra da sfunsar',
+    '🎽' => 'chamischola da currer',
+    '🎿' => 'skis',
+    '🛷' => 'scarsola',
+    '🥌' => 'crap da curling',
+    '🎯' => 'schiba da darts',
+    '🪀' => 'jojo',
+    '🔫' => 'pistola d’aua',
+    '🎱' => 'culla da bigliard',
+    '🔮' => 'culla da cristal',
+    '🪄' => 'batgetta magica',
+    '🎮' => 'controller',
+    '🕹' => 'joystick',
+    '🎰' => 'automat da gieu',
+    '🎲' => 'dat da gieu',
+    '🧩' => 'toc da puzzle',
+    '🧸' => 'urset',
+    '🪅' => 'piñata',
+    '🪩' => 'culla da disco',
+    '🪆' => 'matroschka',
+    '♠' => 'palas',
+    '♥' => 'cors',
+    '♦' => 'pizs',
+    '♣' => 'cruschs',
+    '♟' => 'figura da schah',
+    '🃏' => 'joker',
+    '🀄' => 'dragun cotschen mahjong',
+    '🎴' => 'carta da gieu cun flurs',
+    '🎭' => 'mascras',
+    '🖼' => 'maletg enramà',
+    '🎨' => 'paletta da colurs',
+    '🧵' => 'spol da fil',
+    '🪡' => 'guglia da cuser',
+    '🧶' => 'chanè da launa',
+    '🪢' => 'nuf',
+    '👓' => 'egliers',
+    '🕶' => 'egliers da sulegl',
+    '🥽' => 'egliers da protecziun',
+    '🥼' => 'scussal da labor',
+    '🦺' => 'vesta da segirezza',
+    '👔' => 'cravatta',
+    '👕' => 't-shirt',
+    '👖' => 'jeans',
+    '🧣' => 'schal',
+    '🧤' => 'guants',
+    '🧥' => 'mantè',
+    '🧦' => 'soccas',
+    '👗' => 'vestgì',
+    '👘' => 'kimono',
+    '🥻' => 'sari',
+    '🩱' => 'vestgì da bogn en in toc',
+    '🩲' => 'slip',
+    '🩳' => 'schorts',
+    '👙' => 'bikini',
+    '👚' => 'resti da dunnas',
+    '🪭' => 'ventagl',
+    '👛' => 'bursa',
+    '👜' => 'tastga da maun',
+    '👝' => 'tastgetta da maun',
+    '🛍' => 'satgs',
+    '🎒' => 'satgados',
+    '🩴' => 'flip-flops',
+    '👞' => 'chalzer dad umens',
+    '👟' => 'chalzer da sport',
+    '🥾' => 'chalzers da viandar',
+    '🥿' => 'chalzer plat',
+    '👠' => 'chalzer cun tatg aut',
+    '👡' => 'sandala da dunnas',
+    '🩰' => 'chalzers da ballet',
+    '👢' => 'stivals da dunnas',
+    '🪮' => 'petgen afro',
+    '👑' => 'curuna',
+    '👒' => 'chapè da dunnas',
+    '🎩' => 'cilinder',
+    '🎓' => 'chapè universitar',
+    '🧢' => 'chapè da baseball',
+    '🪖' => 'chapellina militara',
+    '⛑' => 'chapellina cun crusch alva',
+    '📿' => 'rusari',
+    '💄' => 'lefzagl',
+    '💍' => 'anè',
+    '💎' => 'pedra preziusa',
+    '🔇' => 'autpledader deactivà',
+    '🔈' => 'autpledader da bass',
+    '🔉' => 'autpledader cun volumen mesaun',
+    '🔊' => 'autpledader dad aut',
+    '📢' => 'autpledader',
+    '📣' => 'megafon',
+    '📯' => 'corn da postigliun',
+    '🔔' => 'brunsina',
+    '🔕' => 'brunsina deactivada',
+    '🎼' => 'clav da violina',
+    '🎵' => 'nota musicala',
+    '🎶' => 'notas musicalas',
+    '🎙' => 'microfon da studio',
+    '🎚' => 'reglader ruschnant',
+    '🎛' => 'regladers rotativs',
+    '🎤' => 'microfon',
+    '🎧' => 'uregliers',
+    '📻' => 'radio',
+    '🎷' => 'saxofon',
+    '🎺' => 'trumbetta',
+    '🪊' => 'posauna',
+    '🪗' => 'accordeon',
+    '🎸' => 'ghitarra',
+    '🎹' => 'claviatura',
+    '🎻' => 'gìa',
+    '🪕' => 'banjo',
+    '🥁' => 'schumber',
+    '🪘' => 'schumber conga',
+    '🪇' => 'maracas',
+    '🪈' => 'flauta',
+    '🪉' => 'arpa',
+    '📱' => 'telefonin',
+    '📲' => 'telefonin cun frizza',
+    '☎' => 'telefon',
+    '📞' => 'corn dal telefon',
+    '📟' => 'pager',
+    '📠' => 'fax',
+    '🔋' => 'battaria',
+    '🪫' => 'battaria vida',
+    '🔌' => 'spina',
+    '💻' => 'laptop',
+    '🖥' => 'computer desktop',
+    '🖨' => 'stampader',
+    '⌨' => 'tastatura',
+    '🖱' => 'mieur dal computer',
+    '🖲' => 'trackball',
+    '💽' => 'minidisc',
+    '💾' => 'floppydisc',
+    '💿' => 'DC',
+    '📀' => 'DVD',
+    '🧮' => 'abacus',
+    '🎥' => 'camera',
+    '🎞' => 'bindel da film',
+    '📽' => 'projectur da films',
+    '🎬' => 'clappa da film',
+    '📺' => 'televisiun',
+    '📷' => 'apparat da fotografar',
+    '📸' => 'apparat da fotografar cun chametg',
+    '📹' => 'camera da video',
+    '📼' => 'videocassetta',
+    '🔍' => 'marella a sanestra',
+    '🔎' => 'marella a dretga',
+    '🕯' => 'chandaila',
+    '💡' => 'pair electric',
+    '🔦' => 'lampa da maun',
+    '🏮' => 'laterna da palpiri cotschna',
+    '🪔' => 'glisch dad ieli',
+    '📔' => 'cudeschet da notizias cun liadira decorativa',
+    '📕' => 'cudesch serrà',
+    '📖' => 'cudesch avert',
+    '📗' => 'cudesch verd',
+    '📘' => 'cudesch blau',
+    '📙' => 'cudesch oransch',
+    '📚' => 'cudeschs',
+    '📓' => 'cudeschet da notizias',
+    '📒' => 'carnet a spirala',
+    '📃' => 'fegl rudlà en',
+    '📜' => 'pergiamina rullada',
+    '📄' => 'vart davant dad in fegl',
+    '📰' => 'gasetta',
+    '🗞' => 'gasetta rudlada en',
+    '📑' => 'segnapaginas che tatgan',
+    '🔖' => 'segnapagina',
+    '🏷' => 'etichetta',
+    '🪙' => 'munaida',
+    '💰' => 'satg cun daners',
+    '🪎' => 'trucca da stgazis',
+    '💴' => 'bancnota yen',
+    '💵' => 'bancnota dollar',
+    '💶' => 'bancnota euro',
+    '💷' => 'bancnota glivra sterlina',
+    '💸' => 'daners cun alas',
+    '💳' => 'carta da credit',
+    '🧾' => 'quittanza',
+    '💹' => 'curs creschent cun yen',
+    '✉' => 'cuverta',
+    '📧' => 'e-mail',
+    '📨' => 'cuverta che arriva',
+    '📩' => 'cuverta cun frizza',
+    '📤' => 'posta sortida',
+    '📥' => 'posta entrada',
+    '📦' => 'pac',
+    '📫' => 'chascha da brevs serrada cun posta',
+    '📪' => 'chascha da brevs serrada senza posta',
+    '📬' => 'chascha da brevs averta cun posta',
+    '📭' => 'chascha da brevs averta senza posta',
+    '📮' => 'chascha da posta',
+    '🗳' => 'urna cun cedel da votar',
+    '✏' => 'rispli',
+    '✒' => 'stilograf nair',
+    '🖋' => 'penna',
+    '🖊' => 'culli',
+    '🖌' => 'penel',
+    '🖍' => 'colur da tschaira',
+    '📝' => 'notizia',
+    '💼' => 'mappa d’actas',
+    '📁' => 'dossier',
+    '📂' => 'dossier avert',
+    '🗂' => 'chavallets',
+    '📅' => 'chalender',
+    '📆' => 'chalender da fegliets',
+    '🗒' => 'bloc da notizias cun spirala',
+    '🗓' => 'chalender cun spirala',
+    '📇' => 'cartoteca',
+    '📈' => 'graf ascendent',
+    '📉' => 'graf descendent',
+    '📊' => 'diagram a travs',
+    '📋' => 'tegnafegls',
+    '📌' => 'pidera',
+    '📍' => 'gluva',
+    '📎' => 'fermagl',
+    '🖇' => 'fermagls entretschads',
+    '📏' => 'lingera',
+    '📐' => 'geotriangul',
+    '✂' => 'forsch',
+    '🗃' => 'cartoteca en ina stgatla',
+    '🗄' => 'stgaffa d’actas',
+    '🗑' => 'chanaster da palpiri',
+    '🔒' => 'marschlos serrà',
+    '🔓' => 'marschlos avert',
+    '🔏' => 'marschlos cun stilograf',
+    '🔐' => 'marschlos cun clav',
+    '🔑' => 'clav',
+    '🗝' => 'clav veglia',
+    '🔨' => 'martè',
+    '🪓' => 'manera',
+    '⛏' => 'zappun',
+    '⚒' => 'martè e mazzot',
+    '🛠' => 'martè e clav da struvas',
+    '🗡' => 'stilet',
+    '⚔' => 'spadas cruschadas',
+    '💣' => 'bumba',
+    '🪃' => 'bumerang',
+    '🏹' => 'artg cun frizza',
+    '🛡' => 'scut',
+    '🪚' => 'resgia a maun',
+    '🔧' => 'clav da struvas',
+    '🪛' => 'tirastruvas',
+    '🔩' => 'struva cun vaira',
+    '⚙' => 'roda dentada',
+    '🗜' => 'serraditscha',
+    '⚖' => 'ballantscha',
+    '🦯' => 'channa da tschorvs',
+    '🔗' => 'colliaziun',
+    '⛓' => 'chadainas',
+    '🪝' => 'crutsch',
+    '🧰' => 'chascha d’utensils',
+    '🧲' => 'magnet',
+    '🪜' => 'stgala',
+    '🪏' => 'badigl',
+    '⚗' => 'alambic',
+    '🧪' => 'vaider da reagenza',
+    '🧫' => 'cuppina da Petri',
+    '🧬' => 'ADN',
+    '🔬' => 'microscop',
+    '🔭' => 'telescop',
+    '📡' => 'antenna parabolica',
+    '💉' => 'squitta',
+    '🩸' => 'gut da sang',
+    '💊' => 'tabletta',
+    '🩹' => 'plaster',
+    '🩼' => 'crutscha',
+    '🩺' => 'stetoscop',
+    '🩻' => 'radiografia',
+    '🚪' => 'isch',
+    '🛗' => 'ascensur',
+    '🪞' => 'spievel',
+    '🪟' => 'fanestra',
+    '🛏' => 'letg',
+    '🛋' => 'canapé cun lampa',
+    '🪑' => 'sutga',
+    '🚽' => 'tualetta',
+    '🪠' => 'tschitschader',
+    '🚿' => 'duscha',
+    '🛁' => 'bognera',
+    '🪤' => 'trapla da mieurs',
+    '🪒' => 'rasuir',
+    '🧴' => 'buttiglia da loziun',
+    '🧷' => 'gluva da serra',
+    '🧹' => 'scua',
+    '🧺' => 'chanaster',
+    '🧻' => 'rolla da cuschina',
+    '🪣' => 'sadella',
+    '🧼' => 'savun',
+    '🫧' => 'borlas da savun',
+    '🪥' => 'barschun da dents',
+    '🧽' => 'spungia',
+    '🧯' => 'stizzafieu',
+    '🛒' => 'charret da cumpras',
+    '🚬' => 'cigaretta',
+    '⚰' => 'vaschè',
+    '🪦' => 'crap da fossa',
+    '⚱' => 'urna',
+    '🧿' => 'amulet da nazar',
+    '🪬' => 'hamsa',
+    '🗿' => 'moai',
+    '🪧' => 'tavla da protest',
+    '🪪' => 'carta d’identitad',
+    '🏧' => 'segn automat da daners',
+    '🚮' => 'simbol chanaster da palpiri',
+    '🚰' => 'aua da baiver',
+    '♿' => 'simbol sutga cun rodas',
+    '🚹' => 'tualetta d’umens',
+    '🚺' => 'tualetta da dunnas',
+    '🚼' => 'simbol poppa',
+    '🚾' => 'WC',
+    '🛂' => 'controlla da passaport',
+    '🛃' => 'controlla da duana',
+    '🛄' => 'distribuziun da bagascha',
+    '🛅' => 'deposit da bagascha',
+    '⚠' => 'avertiment',
+    '🚸' => 'uffants traversan la via',
+    '⛔' => 'nagin access',
+    '🚫' => 'scumandà',
+    '🚳' => 'scumond da velos',
+    '🚭' => 'scumandà da fimar',
+    '🚯' => 'scumandà da deponer rument',
+    '🚱' => 'aua betg da baiver',
+    '🚷' => 'scumandà per peduns',
+    '📵' => 'scumond per telefonins',
+    '🔞' => 'scumandà per minorens',
+    '☢' => 'radioactiv',
+    '☣' => 'signal da privel biologic',
+    '⬆' => 'frizza ensi',
+    '↗' => 'frizza vers sura a dretga',
+    '➡' => 'frizza a dretga',
+    '↘' => 'frizza vers sut a dretga',
+    '⬇' => 'frizza engiu',
+    '↙' => 'frizza vers sut a sanestra',
+    '⬅' => 'frizza a sanestra',
+    '↖' => 'frizza vers sura a sanestra',
+    '↕' => 'frizza ensi ed engiu',
+    '↔' => 'frizza a dretga ed a sanestra',
+    '↩' => 'frizza curvada a sanestra',
+    '↪' => 'frizza curvada a dretga',
+    '⤴' => 'frizza curvada ensi',
+    '⤵' => 'frizza curvada engiu',
+    '🔃' => 'frizzas circularas en direcziun da l’ura',
+    '🔄' => 'frizzas circularas en senn cuntrari a l’ura',
+    '🔙' => 'frizza BACK',
+    '🔚' => 'frizza END',
+    '🔛' => 'frizza ON!',
+    '🔜' => 'frizza SOON',
+    '🔝' => 'frizza TOP',
+    '🛐' => 'lieu religius',
+    '⚛' => 'simbol d’atom',
+    '🕉' => 'om',
+    '✡' => 'staila da David',
+    '☸' => 'roda da Dharma',
+    '☯' => 'yin e yang',
+    '✝' => 'crusch latina',
+    '☦' => 'crusch ortodoxa',
+    '☪' => 'farcla da la glina cun staila',
+    '☮' => 'segn da pasch',
+    '🕎' => 'menora',
+    '🔯' => 'hexagram cun punct',
+    '🪯' => 'khanda',
+    '♈' => 'Botsch',
+    '♉' => 'Taur',
+    '♊' => 'Schumellins',
+    '♋' => 'Giomber',
+    '♌' => 'Liun',
+    '♍' => 'Giuvintschella',
+    '♎' => 'Stadaira',
+    '♏' => 'Scorpiun',
+    '♐' => 'Tiradur',
+    '♑' => 'Capricorn',
+    '♒' => 'Um da l’aua',
+    '♓' => 'Peschs',
+    '⛎' => 'Portaserps',
+    '🔀' => 'modus casual',
+    '🔁' => 'repeter',
+    '🔂' => 'repeter il toc',
+    '▶' => 'reproducziun',
+    '⏩' => 'buttun d’avanzament svelt',
+    '⏭' => 'buttun proxim toc',
+    '⏯' => 'buttun per far ir u interrumper',
+    '◀' => 'buttun revers',
+    '⏪' => 'buttun da returnar svelt',
+    '⏮' => 'buttun ultim toc',
+    '🔼' => 'buttun ensi',
+    '⏫' => 'buttun svelt ensi',
+    '🔽' => 'buttun engiu',
+    '⏬' => 'buttun svelt engiu',
+    '⏸' => 'buttun da pausa',
+    '⏹' => 'buttun per fermar',
+    '⏺' => 'buttun per registrar',
+    '⏏' => 'buttun per bittar ora',
+    '🎦' => 'kino',
+    '🔅' => 'buttun stgirentar',
+    '🔆' => 'buttun sclerentar',
+    '📶' => 'travs da rait',
+    '🛜' => 'senza fil',
+    '📳' => 'modus da vibraziun',
+    '📴' => 'telefonin ord funcziun',
+    '♀' => 'simbol da las dunnas',
+    '♂' => 'simbol masculin',
+    '⚧' => 'simbol transgender',
+    '✖' => 'multiplicaziun',
+    '➕' => 'plus',
+    '➖' => 'minus',
+    '➗' => 'divider',
+    '🟰' => 'egual',
+    '♾' => 'infinit',
+    '‼' => 'segn d’exclamaziun dubel',
+    '⁉' => 'segn d’exclamaziun e da dumonda',
+    '❓' => 'segn da dumonda cotschen',
+    '❔' => 'segn da dumonda alv',
+    '❕' => 'segn d’exclamaziun alv',
+    '❗' => 'segn d’exclamaziun cotschen',
+    '〰' => 'lingia ondulada',
+    '💱' => 'stgomi da daners',
+    '💲' => 'segn da dollar',
+    '⚕' => 'bastun d’Esculap',
+    '♻' => 'simbol da recicladi',
+    '⚜' => 'gilgia eraldica',
+    '🔱' => 'trianza',
+    '📛' => 'tavla dal num',
+    '🔰' => 'simbol giapunais per principiants',
+    '⭕' => 'rudè vid cotschen',
+    '✅' => 'crutschet controllà',
+    '☑' => 'quadrat cun crutschet',
+    '✔' => 'crutschet grass',
+    '❌' => 'crusch per marcar',
+    '❎' => 'buttun cun crusch',
+    '➰' => 'latsch',
+    '➿' => 'latsch dubel',
+    '〽' => 'simbol dad alternanza da las parts',
+    '✳' => 'asterisc cun otg radis',
+    '✴' => 'staila cun otg radis',
+    '❇' => 'sbrinzlar',
+    '™' => 'marca',
+    '🫟' => 'flatg',
+    '🔠' => 'buttun cun maiusclas latinas',
+    '🔡' => 'buttun cun minusclas latinas',
+    '🔢' => 'buttun cun cifras',
+    '🔣' => 'buttun cun simbols',
+    '🔤' => 'buttun cun letras latinas',
+    '🅰' => 'buttun A (gruppa da sang)',
+    '🆎' => 'buttun AB (gruppa da sang)',
+    '🅱' => 'buttun B (gruppa da sang)',
+    '🆑' => 'buttun CL',
+    '🆒' => 'buttun COOL',
+    '🆓' => 'buttun FREE',
+    'ℹ' => 'infurmaziun',
+    '🆔' => 'buttun ID',
+    'Ⓜ' => 'M en rudè',
+    '🆕' => 'buttun NEW',
+    '🆖' => 'buttun NG',
+    '🅾' => 'buttun 0 (gruppa da sang)',
+    '🆗' => 'buttun OK',
+    '🅿' => 'buttun P',
+    '🆘' => 'buttun SOS',
+    '🆙' => 'buttun UP!',
+    '🆚' => 'buttun VS',
+    '🈁' => 'buttun giapunais «qua»',
+    '🈂' => 'buttun giapunais «custs dal servetsch»',
+    '🈷' => 'buttun giapunais «import mensil»',
+    '🈶' => 'buttun giapunais «betg gratuit»',
+    '🈯' => 'buttun giapunais «reservà»',
+    '🉐' => 'buttun giapunais «sgnappet»',
+    '🈹' => 'buttun giapunais «rabat»',
+    '🈚' => 'buttun giapunais «gratuit»',
+    '🈲' => 'buttun giapunais «scumandà»',
+    '🉑' => 'buttun giapunais «acceptabel»',
+    '🈸' => 'buttun giapunais «applicaziun»',
+    '🈴' => 'buttun giapunais «nota cun success»',
+    '🈳' => 'buttun giapunais «chombras libras»',
+    '㊗' => 'buttun giapunais «gratulaziun»',
+    '㊙' => 'buttun giapunais «secret»',
+    '🈺' => 'buttun giapunais «avert»',
+    '🈵' => 'buttun giapunais «naginas chombras libras»',
+    '🔴' => 'rudè cotschen',
+    '🟠' => 'rudè oransch',
+    '🟡' => 'rudè mellen',
+    '🟢' => 'rudè verd',
+    '🔵' => 'rudè blau',
+    '🟣' => 'rudè violet',
+    '🟤' => 'rudè brin',
+    '⚫' => 'rudè nair',
+    '⚪' => 'rudè alv',
+    '🟥' => 'quadrat cotschen',
+    '🟧' => 'quadrat oransch',
+    '🟨' => 'quadrat mellen',
+    '🟩' => 'quadrat verd',
+    '🟦' => 'quadrat blau',
+    '🟪' => 'quadrat violet',
+    '🟫' => 'quadrat brin',
+    '⬛' => 'quadrat nair grond',
+    '⬜' => 'quadrat alv grond',
+    '◼' => 'quadrat nair mesaun',
+    '◻' => 'quadrat alv mesaun',
+    '◾' => 'quadrat nair mesaun-pitschen',
+    '◽' => 'quadrat alv mesaun-pitschen',
+    '▪' => 'quadrat nair pitschen',
+    '▫' => 'quadrat alv pitschen',
+    '🔶' => 'piz oransch grond',
+    '🔷' => 'piz blau grond',
+    '🔸' => 'piz oransch pitschen',
+    '🔹' => 'piz blau pitschen',
+    '🔺' => 'triangul cotschen che mussa ensi',
+    '🔻' => 'triangul cotschen che mussa engiu',
+    '💠' => 'piz cun in punct amez',
+    '🔘' => 'buttun d’opziun',
+    '🔳' => 'buttun quadratic alv',
+    '🔲' => 'buttun quadratic nair',
+    '🏁' => 'bandiera cun muster da schah',
+    '🚩' => 'bandiera cotschna triangulara',
+    '🎌' => 'bandieras cruschadas',
+    '🏴' => 'bandiera naira',
+    '🏳' => 'bandiera alva',
 ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-root.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-root.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-root.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-root.php	2026-05-20 10:56:49.000000000 +0200
@@ -141,6 +141,7 @@
     '👩‍🦽' => 'E12–007',
     '🏃‍♂' => 'E10-1147',
     '🏃‍♀' => 'E10-1146',
+    '🧑‍🩰' => 'E17-004',
     '👯‍♂' => 'E10-1193',
     '👯‍♀' => 'E10-1192',
     '🧖‍♂' => 'E10-1245',
@@ -192,13 +193,6 @@
     '🏽' => 'E10-442',
     '🏾' => 'E10-443',
     '🏿' => 'E10-444',
-    '🪉' => 'E16-001',
-    '🪏' => 'E16-002',
-    '🪾' => 'E16-003',
-    '🫆' => 'E16-004',
-    '🫜' => 'E16-005',
-    '🫟' => 'E16-006',
-    '🫩' => 'E16-007',
     '😀' => 'E10-836',
     '😃' => 'E10-839',
     '😄' => 'E10-840',
@@ -252,6 +246,7 @@
     '😪' => 'E10-878',
     '🤤' => 'E10-1030',
     '😴' => 'E10-888',
+    '🫩' => 'E16-007',
     '😷' => 'E10-891',
     '🤒' => 'E10-1012',
     '🤕' => 'E10-1015',
@@ -278,6 +273,7 @@
     '😯' => 'E10-883',
     '😲' => 'E10-886',
     '😳' => 'E10-887',
+    '🫪' => 'E17-001',
     '🥺' => 'E11-017',
     '🥹' => 'E14-007',
     '😦' => 'E10-874',
@@ -349,6 +345,7 @@
     '💋' => 'E10-584',
     '💯' => 'E10-620',
     '💢' => 'E10-607',
+    '🫯' => 'E17-002',
     '💥' => 'E10-610',
     '💫' => 'E10-616',
     '💦' => 'E10-611',
@@ -472,6 +469,7 @@
     '🧞' => 'E10-1135',
     '🧟' => 'E10-1136',
     '🧌' => 'E14-019',
+    '🫈' => 'E17-003',
     '💆' => 'E10-579',
     '💇' => 'E10-580',
     '🚶' => 'E10-970',
@@ -515,6 +513,7 @@
     '🫂' => 'E13-026',
     '👪' => 'E10-551',
     '👣' => 'E10-544',
+    '🫆' => 'E16-004',
     '🦰' => 'E11-033',
     '🦱' => 'E11-034',
     '🦳' => 'E11-036',
@@ -614,6 +613,7 @@
     '🐳' => 'E10-496',
     '🐋' => 'E10-456',
     '🐬' => 'E10-489',
+    '🫍' => 'E17-005',
     '🦭' => 'E13-032',
     '🐟' => 'E10-476',
     '🐠' => 'E10-477',
@@ -623,6 +623,11 @@
     '🐚' => 'E10-471',
     '🪸' => 'E14-020',
     '🪼' => 'E15-012',
+    '🦀' => 'E10-1096',
+    '🦞' => 'E11-028',
+    '🦐' => 'E10-1112',
+    '🦑' => 'E10-1113',
+    '🦪' => 'E12–033',
     '🐌' => 'E10-457',
     '🦋' => 'E10-1107',
     '🐛' => 'E10-472',
@@ -667,6 +672,7 @@
     '🪹' => 'E14-022',
     '🪺' => 'E14-023',
     '🍄' => 'E10-265',
+    '🪾' => 'E16-003',
     '🍇' => 'E10-268',
     '🍈' => 'E10-269',
     '🍉' => 'E10-270',
@@ -703,6 +709,7 @@
     '🌰' => 'E10-245',
     '🫚' => 'E15-014',
     '🫛' => 'E15-015',
+    '🫜' => 'E16-005',
     '🍞' => 'E10-291',
     '🥐' => 'E10-1068',
     '🥖' => 'E10-1074',
@@ -754,11 +761,6 @@
     '🥟' => 'E10-1083',
     '🥠' => 'E10-1084',
     '🥡' => 'E10-1085',
-    '🦀' => 'E10-1096',
-    '🦞' => 'E11-028',
-    '🦐' => 'E10-1112',
-    '🦑' => 'E10-1113',
-    '🦪' => 'E12–033',
     '🍦' => 'E10-299',
     '🍧' => 'E10-300',
     '🍨' => 'E10-301',
@@ -809,6 +811,7 @@
     '🧭' => 'E11-055',
     '🏔' => 'E10-404',
     '⛰' => 'E10-110',
+    '🛘' => 'E17-007',
     '🌋' => 'E10-210',
     '🗻' => 'E10-831',
     '🏕' => 'E10-405',
@@ -1169,16 +1172,18 @@
     '🎧' => 'E10-359',
     '📻' => 'E10-696',
     '🎷' => 'E10-375',
+    '🎺' => 'E10-378',
+    '🪊' => 'E17-008',
     '🪗' => 'E13-058',
     '🎸' => 'E10-376',
     '🎹' => 'E10-377',
-    '🎺' => 'E10-378',
     '🎻' => 'E10-379',
     '🪕' => 'E12–074',
     '🥁' => 'E10-1057',
     '🪘' => 'E13-059',
     '🪇' => 'E15-018',
     '🪈' => 'E15-019',
+    '🪉' => 'E16-001',
     '📱' => 'E10-686',
     '📲' => 'E10-687',
     '☎' => 'E10-046',
@@ -1232,8 +1237,9 @@
     '📑' => 'E10-654',
     '🔖' => 'E10-722',
     '🏷' => 'E10-436',
-    '💰' => 'E10-621',
     '🪙' => 'E13-060',
+    '💰' => 'E10-621',
+    '🪎' => 'E17-009',
     '💴' => 'E10-625',
     '💵' => 'E10-626',
     '💶' => 'E10-627',
@@ -1316,6 +1322,7 @@
     '🧰' => 'E11-058',
     '🧲' => 'E11-060',
     '🪜' => 'E13-064',
+    '🪏' => 'E16-002',
     '⚗' => 'E10-088',
     '🧪' => 'E11-052',
     '🧫' => 'E11-053',
@@ -1499,6 +1506,7 @@
     '✴' => 'E10-137',
     '❇' => 'E10-139',
     '™' => 'E10-004',
+    '🫟' => 'E16-006',
     '🔠' => 'E10-732',
     '🔡' => 'E10-733',
     '🔢' => 'E10-734',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ro.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ro.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ro.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ro.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'sărut: femeie, femeie, ton închis al pielii, ton mediu al pielii',
     '👩🏿‍❤‍💋‍👩🏾' => 'sărut: femeie, femeie, ton închis al pielii, ton semi‑închis al pielii',
     '👩🏿‍❤‍💋‍👩🏿' => 'sărut: femeie, femeie, ton închis al pielii',
+    '🧑🏻‍🫯‍🧑🏼' => 'persoane care practică wrestling: ton deschis al pielii, ton semi‑deschis al pielii',
+    '🧑🏻‍🫯‍🧑🏽' => 'persoane care practică wrestling: ton deschis al pielii, ton mediu al pielii',
+    '🧑🏻‍🫯‍🧑🏾' => 'persoane care practică wrestling: ton deschis al pielii, ton semi‑închis al pielii',
+    '🧑🏻‍🫯‍🧑🏿' => 'persoane care practică wrestling: ton deschis al pielii, ton închis al pielii',
+    '🧑🏼‍🫯‍🧑🏻' => 'persoane care practică wrestling: ton semi‑deschis al pielii, ton deschis al pielii',
+    '🧑🏼‍🫯‍🧑🏽' => 'persoane care practică wrestling: ton semi‑deschis al pielii, ton mediu al pielii',
+    '🧑🏼‍🫯‍🧑🏾' => 'persoane care practică wrestling: ton semi‑deschis al pielii, ton semi‑închis al pielii',
+    '🧑🏼‍🫯‍🧑🏿' => 'persoane care practică wrestling: ton semi‑deschis al pielii, ton închis al pielii',
+    '🧑🏽‍🫯‍🧑🏻' => 'persoane care practică wrestling: ton mediu al pielii, ton deschis al pielii',
+    '🧑🏽‍🫯‍🧑🏼' => 'persoane care practică wrestling: ton mediu al pielii, ton semi‑deschis al pielii',
+    '🧑🏽‍🫯‍🧑🏾' => 'persoane care practică wrestling: ton mediu al pielii, ton semi‑închis al pielii',
+    '🧑🏽‍🫯‍🧑🏿' => 'persoane care practică wrestling: ton mediu al pielii, ton închis al pielii',
+    '🧑🏾‍🫯‍🧑🏻' => 'persoane care practică wrestling: ton semi‑închis al pielii, ton deschis al pielii',
+    '🧑🏾‍🫯‍🧑🏼' => 'persoane care practică wrestling: ton semi‑închis al pielii, ton semi‑deschis al pielii',
+    '🧑🏾‍🫯‍🧑🏽' => 'persoane care practică wrestling: ton semi‑închis al pielii, ton mediu al pielii',
+    '🧑🏾‍🫯‍🧑🏿' => 'persoane care practică wrestling: ton semi‑închis al pielii, ton închis al pielii',
+    '🧑🏿‍🫯‍🧑🏻' => 'persoane care practică wrestling: ton închis al pielii, ton deschis al pielii',
+    '🧑🏿‍🫯‍🧑🏼' => 'persoane care practică wrestling: ton închis al pielii, ton semi‑deschis al pielii',
+    '🧑🏿‍🫯‍🧑🏽' => 'persoane care practică wrestling: ton închis al pielii, ton mediu al pielii',
+    '🧑🏿‍🫯‍🧑🏾' => 'persoane care practică wrestling: ton închis al pielii, ton semi‑închis al pielii',
     '🧑🏻‍❤‍🧑🏼' => 'cuplu cu inimă: adult, adult, ton deschis al pielii, ton semi‑deschis al pielii',
     '🧑🏻‍❤‍🧑🏽' => 'cuplu cu inimă: adult, adult, ton deschis al pielii, ton mediu al pielii',
     '🧑🏻‍❤‍🧑🏾' => 'cuplu cu inimă: adult, adult, ton deschis al pielii, ton semi‑închis al pielii',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'cuplu cu inimă: adult, adult, ton închis al pielii, ton semi‑deschis al pielii',
     '🧑🏿‍❤‍🧑🏽' => 'cuplu cu inimă: adult, adult, ton închis al pielii, ton mediu al pielii',
     '🧑🏿‍❤‍🧑🏾' => 'cuplu cu inimă: adult, adult, ton închis al pielii, ton semi‑închis al pielii',
+    '🧑🏻‍🐰‍🧑🏼' => 'persoane care poartă urechi de iepuraș: ton deschis al pielii, ton semi‑deschis al pielii',
+    '🧑🏻‍🐰‍🧑🏽' => 'persoane care poartă urechi de iepuraș: ton deschis al pielii, ton mediu al pielii',
+    '🧑🏻‍🐰‍🧑🏾' => 'persoane care poartă urechi de iepuraș: ton deschis al pielii, ton semi‑închis al pielii',
+    '🧑🏻‍🐰‍🧑🏿' => 'persoane care poartă urechi de iepuraș: ton deschis al pielii, ton închis al pielii',
+    '🧑🏼‍🐰‍🧑🏻' => 'persoane care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton deschis al pielii',
+    '🧑🏼‍🐰‍🧑🏽' => 'persoane care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton mediu al pielii',
+    '🧑🏼‍🐰‍🧑🏾' => 'persoane care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton semi‑închis al pielii',
+    '🧑🏼‍🐰‍🧑🏿' => 'persoane care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton închis al pielii',
+    '🧑🏽‍🐰‍🧑🏻' => 'persoane care poartă urechi de iepuraș: ton mediu al pielii, ton deschis al pielii',
+    '🧑🏽‍🐰‍🧑🏼' => 'persoane care poartă urechi de iepuraș: ton mediu al pielii, ton semi‑deschis al pielii',
+    '🧑🏽‍🐰‍🧑🏾' => 'persoane care poartă urechi de iepuraș: ton mediu al pielii, ton semi‑închis al pielii',
+    '🧑🏽‍🐰‍🧑🏿' => 'persoane care poartă urechi de iepuraș: ton mediu al pielii, ton închis al pielii',
+    '🧑🏾‍🐰‍🧑🏻' => 'persoane care poartă urechi de iepuraș: ton semi‑închis al pielii, ton deschis al pielii',
+    '🧑🏾‍🐰‍🧑🏼' => 'persoane care poartă urechi de iepuraș: ton semi‑închis al pielii, ton semi‑deschis al pielii',
+    '🧑🏾‍🐰‍🧑🏽' => 'persoane care poartă urechi de iepuraș: ton semi‑închis al pielii, ton mediu al pielii',
+    '🧑🏾‍🐰‍🧑🏿' => 'persoane care poartă urechi de iepuraș: ton semi‑închis al pielii, ton închis al pielii',
+    '🧑🏿‍🐰‍🧑🏻' => 'persoane care poartă urechi de iepuraș: ton închis al pielii, ton deschis al pielii',
+    '🧑🏿‍🐰‍🧑🏼' => 'persoane care poartă urechi de iepuraș: ton închis al pielii, ton semi‑deschis al pielii',
+    '🧑🏿‍🐰‍🧑🏽' => 'persoane care poartă urechi de iepuraș: ton închis al pielii, ton mediu al pielii',
+    '🧑🏿‍🐰‍🧑🏾' => 'persoane care poartă urechi de iepuraș: ton închis al pielii, ton semi‑închis al pielii',
+    '👨🏻‍🫯‍👨🏼' => 'bărbat care practică wrestling: ton deschis al pielii, ton semi‑deschis al pielii',
+    '👨🏻‍🫯‍👨🏽' => 'bărbat care practică wrestling: ton deschis al pielii, ton mediu al pielii',
+    '👨🏻‍🫯‍👨🏾' => 'bărbat care practică wrestling: ton deschis al pielii, ton semi‑închis al pielii',
+    '👨🏻‍🫯‍👨🏿' => 'bărbat care practică wrestling: ton deschis al pielii, ton închis al pielii',
+    '👨🏼‍🫯‍👨🏻' => 'bărbat care practică wrestling: ton semi‑deschis al pielii, ton deschis al pielii',
+    '👨🏼‍🫯‍👨🏽' => 'bărbat care practică wrestling: ton semi‑deschis al pielii, ton mediu al pielii',
+    '👨🏼‍🫯‍👨🏾' => 'bărbat care practică wrestling: ton semi‑deschis al pielii, ton semi‑închis al pielii',
+    '👨🏼‍🫯‍👨🏿' => 'bărbat care practică wrestling: ton semi‑deschis al pielii, ton închis al pielii',
+    '👨🏽‍🫯‍👨🏻' => 'bărbat care practică wrestling: ton mediu al pielii, ton deschis al pielii',
+    '👨🏽‍🫯‍👨🏼' => 'bărbat care practică wrestling: ton mediu al pielii, ton semi‑deschis al pielii',
+    '👨🏽‍🫯‍👨🏾' => 'bărbat care practică wrestling: ton mediu al pielii, ton semi‑închis al pielii',
+    '👨🏽‍🫯‍👨🏿' => 'bărbat care practică wrestling: ton mediu al pielii, ton închis al pielii',
+    '👨🏾‍🫯‍👨🏻' => 'bărbat care practică wrestling: ton semi‑închis al pielii, ton deschis al pielii',
+    '👨🏾‍🫯‍👨🏼' => 'bărbat care practică wrestling: ton semi‑închis al pielii, ton semi‑deschis al pielii',
+    '👨🏾‍🫯‍👨🏽' => 'bărbat care practică wrestling: ton semi‑închis al pielii, ton mediu al pielii',
+    '👨🏾‍🫯‍👨🏿' => 'bărbat care practică wrestling: ton semi‑închis al pielii, ton închis al pielii',
+    '👨🏿‍🫯‍👨🏻' => 'bărbat care practică wrestling: ton închis al pielii, ton deschis al pielii',
+    '👨🏿‍🫯‍👨🏼' => 'bărbat care practică wrestling: ton închis al pielii, ton semi‑deschis al pielii',
+    '👨🏿‍🫯‍👨🏽' => 'bărbat care practică wrestling: ton închis al pielii, ton mediu al pielii',
+    '👨🏿‍🫯‍👨🏾' => 'bărbat care practică wrestling: ton închis al pielii, ton semi‑închis al pielii',
     '👨🏻‍❤‍👨🏻' => 'cuplu cu inimă: bărbat, bărbat, ton deschis al pielii',
     '👨🏻‍❤‍👨🏼' => 'cuplu cu inimă: bărbat, bărbat, ton deschis al pielii, ton semi‑deschis al pielii',
     '👨🏻‍❤‍👨🏽' => 'cuplu cu inimă: bărbat, bărbat, ton deschis al pielii, ton mediu al pielii',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'cuplu cu inimă: bărbat, bărbat, ton închis al pielii, ton mediu al pielii',
     '👨🏿‍❤‍👨🏾' => 'cuplu cu inimă: bărbat, bărbat, ton închis al pielii, ton semi‑închis al pielii',
     '👨🏿‍❤‍👨🏿' => 'cuplu cu inimă: bărbat, bărbat, ton închis al pielii',
+    '👨🏻‍🐰‍👨🏼' => 'bărbați care poartă urechi de iepuraș: ton deschis al pielii, ton semi‑deschis al pielii',
+    '👨🏻‍🐰‍👨🏽' => 'bărbați care poartă urechi de iepuraș: ton deschis al pielii, ton mediu al pielii',
+    '👨🏻‍🐰‍👨🏾' => 'bărbați care poartă urechi de iepuraș: ton deschis al pielii, ton semi‑închis al pielii',
+    '👨🏻‍🐰‍👨🏿' => 'bărbați care poartă urechi de iepuraș: ton deschis al pielii, ton închis al pielii',
+    '👨🏼‍🐰‍👨🏻' => 'bărbați care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton deschis al pielii',
+    '👨🏼‍🐰‍👨🏽' => 'bărbați care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton mediu al pielii',
+    '👨🏼‍🐰‍👨🏾' => 'bărbați care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton semi‑închis al pielii',
+    '👨🏼‍🐰‍👨🏿' => 'bărbați care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton închis al pielii',
+    '👨🏽‍🐰‍👨🏻' => 'bărbați care poartă urechi de iepuraș: ton mediu al pielii, ton deschis al pielii',
+    '👨🏽‍🐰‍👨🏼' => 'bărbați care poartă urechi de iepuraș: ton mediu al pielii, ton semi‑deschis al pielii',
+    '👨🏽‍🐰‍👨🏾' => 'bărbați care poartă urechi de iepuraș: ton mediu al pielii, ton semi‑închis al pielii',
+    '👨🏽‍🐰‍👨🏿' => 'bărbați care poartă urechi de iepuraș: ton mediu al pielii, ton închis al pielii',
+    '👨🏾‍🐰‍👨🏻' => 'bărbați care poartă urechi de iepuraș: ton semi‑închis al pielii, ton deschis al pielii',
+    '👨🏾‍🐰‍👨🏼' => 'bărbați care poartă urechi de iepuraș: ton semi‑închis al pielii, ton semi‑deschis al pielii',
+    '👨🏾‍🐰‍👨🏽' => 'bărbați care poartă urechi de iepuraș: ton semi‑închis al pielii, ton mediu al pielii',
+    '👨🏾‍🐰‍👨🏿' => 'bărbați care poartă urechi de iepuraș: ton semi‑închis al pielii, ton închis al pielii',
+    '👨🏿‍🐰‍👨🏻' => 'bărbați care poartă urechi de iepuraș: ton închis al pielii, ton deschis al pielii',
+    '👨🏿‍🐰‍👨🏼' => 'bărbați care poartă urechi de iepuraș: ton închis al pielii, ton semi‑deschis al pielii',
+    '👨🏿‍🐰‍👨🏽' => 'bărbați care poartă urechi de iepuraș: ton închis al pielii, ton mediu al pielii',
+    '👨🏿‍🐰‍👨🏾' => 'bărbați care poartă urechi de iepuraș: ton închis al pielii, ton semi‑închis al pielii',
+    '👩🏻‍🫯‍👩🏼' => 'femeie care practică wrestling: ton deschis al pielii, ton semi‑deschis al pielii',
+    '👩🏻‍🫯‍👩🏽' => 'femeie care practică wrestling: ton deschis al pielii, ton mediu al pielii',
+    '👩🏻‍🫯‍👩🏾' => 'femeie care practică wrestling: ton deschis al pielii, ton semi‑închis al pielii',
+    '👩🏻‍🫯‍👩🏿' => 'femeie care practică wrestling: ton deschis al pielii, ton închis al pielii',
+    '👩🏼‍🫯‍👩🏻' => 'femeie care practică wrestling: ton semi‑deschis al pielii, ton deschis al pielii',
+    '👩🏼‍🫯‍👩🏽' => 'femeie care practică wrestling: ton semi‑deschis al pielii, ton mediu al pielii',
+    '👩🏼‍🫯‍👩🏾' => 'femeie care practică wrestling: ton semi‑deschis al pielii, ton semi‑închis al pielii',
+    '👩🏼‍🫯‍👩🏿' => 'femeie care practică wrestling: ton semi‑deschis al pielii, ton închis al pielii',
+    '👩🏽‍🫯‍👩🏻' => 'femeie care practică wrestling: ton mediu al pielii, ton deschis al pielii',
+    '👩🏽‍🫯‍👩🏼' => 'femeie care practică wrestling: ton mediu al pielii, ton semi‑deschis al pielii',
+    '👩🏽‍🫯‍👩🏾' => 'femeie care practică wrestling: ton mediu al pielii, ton semi‑închis al pielii',
+    '👩🏽‍🫯‍👩🏿' => 'femeie care practică wrestling: ton mediu al pielii, ton închis al pielii',
+    '👩🏾‍🫯‍👩🏻' => 'femeie care practică wrestling: ton semi‑închis al pielii, ton deschis al pielii',
+    '👩🏾‍🫯‍👩🏼' => 'femeie care practică wrestling: ton semi‑închis al pielii, ton semi‑deschis al pielii',
+    '👩🏾‍🫯‍👩🏽' => 'femeie care practică wrestling: ton semi‑închis al pielii, ton mediu al pielii',
+    '👩🏾‍🫯‍👩🏿' => 'femeie care practică wrestling: ton semi‑închis al pielii, ton închis al pielii',
+    '👩🏿‍🫯‍👩🏻' => 'femeie care practică wrestling: ton închis al pielii, ton deschis al pielii',
+    '👩🏿‍🫯‍👩🏼' => 'femeie care practică wrestling: ton închis al pielii, ton semi‑deschis al pielii',
+    '👩🏿‍🫯‍👩🏽' => 'femeie care practică wrestling: ton închis al pielii, ton mediu al pielii',
+    '👩🏿‍🫯‍👩🏾' => 'femeie care practică wrestling: ton închis al pielii, ton semi‑închis al pielii',
     '👩🏻‍❤‍👨🏻' => 'cuplu cu inimă: femeie, bărbat, ton deschis al pielii',
     '👩🏻‍❤‍👨🏼' => 'cuplu cu inimă: femeie, bărbat, ton deschis al pielii, ton semi‑deschis al pielii',
     '👩🏻‍❤‍👨🏽' => 'cuplu cu inimă: femeie, bărbat, ton deschis al pielii, ton mediu al pielii',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'cuplu cu inimă: femeie, femeie, ton închis al pielii, ton mediu al pielii',
     '👩🏿‍❤‍👩🏾' => 'cuplu cu inimă: femeie, femeie, ton închis al pielii, ton semi‑închis al pielii',
     '👩🏿‍❤‍👩🏿' => 'cuplu cu inimă: femeie, femeie, ton închis al pielii',
+    '👩🏻‍🐰‍👩🏼' => 'femei care poartă urechi de iepuraș: ton deschis al pielii, ton semi‑deschis al pielii',
+    '👩🏻‍🐰‍👩🏽' => 'femei care poartă urechi de iepuraș: ton deschis al pielii, ton mediu al pielii',
+    '👩🏻‍🐰‍👩🏾' => 'femei care poartă urechi de iepuraș: ton deschis al pielii, ton semi‑închis al pielii',
+    '👩🏻‍🐰‍👩🏿' => 'femei care poartă urechi de iepuraș: ton deschis al pielii, ton închis al pielii',
+    '👩🏼‍🐰‍👩🏻' => 'femei care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton deschis al pielii',
+    '👩🏼‍🐰‍👩🏽' => 'femei care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton mediu al pielii',
+    '👩🏼‍🐰‍👩🏾' => 'femei care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton semi‑închis al pielii',
+    '👩🏼‍🐰‍👩🏿' => 'femei care poartă urechi de iepuraș: ton semi‑deschis al pielii, ton închis al pielii',
+    '👩🏽‍🐰‍👩🏻' => 'femei care poartă urechi de iepuraș: ton mediu al pielii, ton deschis al pielii',
+    '👩🏽‍🐰‍👩🏼' => 'femei care poartă urechi de iepuraș: ton mediu al pielii, ton semi‑deschis al pielii',
+    '👩🏽‍🐰‍👩🏾' => 'femei care poartă urechi de iepuraș: ton mediu al pielii, ton semi‑închis al pielii',
+    '👩🏽‍🐰‍👩🏿' => 'femei care poartă urechi de iepuraș: ton mediu al pielii, ton închis al pielii',
+    '👩🏾‍🐰‍👩🏻' => 'femei care poartă urechi de iepuraș: ton semi‑închis al pielii, ton deschis al pielii',
+    '👩🏾‍🐰‍👩🏼' => 'femei care poartă urechi de iepuraș: ton semi‑închis al pielii, ton semi‑deschis al pielii',
+    '👩🏾‍🐰‍👩🏽' => 'femei care poartă urechi de iepuraș: ton semi‑închis al pielii, ton mediu al pielii',
+    '👩🏾‍🐰‍👩🏿' => 'femei care poartă urechi de iepuraș: ton semi‑închis al pielii, ton închis al pielii',
+    '👩🏿‍🐰‍👩🏻' => 'femei care poartă urechi de iepuraș: ton închis al pielii, ton deschis al pielii',
+    '👩🏿‍🐰‍👩🏼' => 'femei care poartă urechi de iepuraș: ton închis al pielii, ton semi‑deschis al pielii',
+    '👩🏿‍🐰‍👩🏽' => 'femei care poartă urechi de iepuraș: ton închis al pielii, ton mediu al pielii',
+    '👩🏿‍🐰‍👩🏾' => 'femei care poartă urechi de iepuraș: ton închis al pielii, ton semi‑închis al pielii',
     '🧑🏻‍🤝‍🧑🏻' => 'persoane ținându-se de mână: ton deschis al pielii',
     '🧑🏻‍🤝‍🧑🏼' => 'persoane ținându-se de mână: ton deschis al pielii, ton semi‑deschis al pielii',
     '🧑🏻‍🤝‍🧑🏽' => 'persoane ținându-se de mână: ton deschis al pielii, ton mediu al pielii',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'steag: Scoția',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'steag: Țara Galilor',
     '🧑‍🧑‍🧒‍🧒' => 'familie: adult, adult, copil, copil',
-    '🚶🏻‍♀‍➡' => 'femeie care merge orientate spre dreapta',
-    '🚶🏼‍♀‍➡' => 'femeie care merge orientate spre dreapta',
-    '🚶🏽‍♀‍➡' => 'femeie care merge orientate spre dreapta',
-    '🚶🏾‍♀‍➡' => 'femeie care merge orientate spre dreapta',
-    '🚶🏿‍♀‍➡' => 'femeie care merge orientate spre dreapta',
-    '🚶🏻‍♂‍➡' => 'bărbat care merge orientate spre dreapta',
-    '🚶🏼‍♂‍➡' => 'bărbat care merge orientate spre dreapta',
-    '🚶🏽‍♂‍➡' => 'bărbat care merge orientate spre dreapta',
-    '🚶🏾‍♂‍➡' => 'bărbat care merge orientate spre dreapta',
-    '🚶🏿‍♂‍➡' => 'bărbat care merge orientate spre dreapta',
-    '🧎🏻‍♀‍➡' => 'femeie în genunchi orientate spre dreapta',
-    '🧎🏼‍♀‍➡' => 'femeie în genunchi orientate spre dreapta',
-    '🧎🏽‍♀‍➡' => 'femeie în genunchi orientate spre dreapta',
-    '🧎🏾‍♀‍➡' => 'femeie în genunchi orientate spre dreapta',
-    '🧎🏿‍♀‍➡' => 'femeie în genunchi orientate spre dreapta',
-    '🧎🏻‍♂‍➡' => 'bărbat în genunchi orientate spre dreapta',
-    '🧎🏼‍♂‍➡' => 'bărbat în genunchi orientate spre dreapta',
-    '🧎🏽‍♂‍➡' => 'bărbat în genunchi orientate spre dreapta',
-    '🧎🏾‍♂‍➡' => 'bărbat în genunchi orientate spre dreapta',
-    '🧎🏿‍♂‍➡' => 'bărbat în genunchi orientate spre dreapta',
-    '🧑🏻‍🦯‍➡' => 'persoană cu baston pentru nevăzători orientate spre dreapta',
-    '🧑🏼‍🦯‍➡' => 'persoană cu baston pentru nevăzători orientate spre dreapta',
-    '🧑🏽‍🦯‍➡' => 'persoană cu baston pentru nevăzători orientate spre dreapta',
-    '🧑🏾‍🦯‍➡' => 'persoană cu baston pentru nevăzători orientate spre dreapta',
-    '🧑🏿‍🦯‍➡' => 'persoană cu baston pentru nevăzători orientate spre dreapta',
-    '👨🏻‍🦯‍➡' => 'bărbat cu baston pentru nevăzători orientate spre dreapta',
-    '👨🏼‍🦯‍➡' => 'bărbat cu baston pentru nevăzători orientate spre dreapta',
-    '👨🏽‍🦯‍➡' => 'bărbat cu baston pentru nevăzători orientate spre dreapta',
-    '👨🏾‍🦯‍➡' => 'bărbat cu baston pentru nevăzători orientate spre dreapta',
-    '👨🏿‍🦯‍➡' => 'bărbat cu baston pentru nevăzători orientate spre dreapta',
-    '👩🏻‍🦯‍➡' => 'femeie cu baston pentru nevăzători orientate spre dreapta',
-    '👩🏼‍🦯‍➡' => 'femeie cu baston pentru nevăzători orientate spre dreapta',
-    '👩🏽‍🦯‍➡' => 'femeie cu baston pentru nevăzători orientate spre dreapta',
-    '👩🏾‍🦯‍➡' => 'femeie cu baston pentru nevăzători orientate spre dreapta',
-    '👩🏿‍🦯‍➡' => 'femeie cu baston pentru nevăzători orientate spre dreapta',
-    '🧑🏻‍🦼‍➡' => 'persoană în scaun cu rotile motorizat orientate spre dreapta',
-    '🧑🏼‍🦼‍➡' => 'persoană în scaun cu rotile motorizat orientate spre dreapta',
-    '🧑🏽‍🦼‍➡' => 'persoană în scaun cu rotile motorizat orientate spre dreapta',
-    '🧑🏾‍🦼‍➡' => 'persoană în scaun cu rotile motorizat orientate spre dreapta',
-    '🧑🏿‍🦼‍➡' => 'persoană în scaun cu rotile motorizat orientate spre dreapta',
-    '👨🏻‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat orientate spre dreapta',
-    '👨🏼‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat orientate spre dreapta',
-    '👨🏽‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat orientate spre dreapta',
-    '👨🏾‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat orientate spre dreapta',
-    '👨🏿‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat orientate spre dreapta',
-    '👩🏻‍🦼‍➡' => 'femeie în scaun cu rotile motorizat orientate spre dreapta',
-    '👩🏼‍🦼‍➡' => 'femeie în scaun cu rotile motorizat orientate spre dreapta',
-    '👩🏽‍🦼‍➡' => 'femeie în scaun cu rotile motorizat orientate spre dreapta',
-    '👩🏾‍🦼‍➡' => 'femeie în scaun cu rotile motorizat orientate spre dreapta',
-    '👩🏿‍🦼‍➡' => 'femeie în scaun cu rotile motorizat orientate spre dreapta',
-    '🧑🏻‍🦽‍➡' => 'persoană în scaun cu rotile manual orientate spre dreapta',
-    '🧑🏼‍🦽‍➡' => 'persoană în scaun cu rotile manual orientate spre dreapta',
-    '🧑🏽‍🦽‍➡' => 'persoană în scaun cu rotile manual orientate spre dreapta',
-    '🧑🏾‍🦽‍➡' => 'persoană în scaun cu rotile manual orientate spre dreapta',
-    '🧑🏿‍🦽‍➡' => 'persoană în scaun cu rotile manual orientate spre dreapta',
-    '👨🏻‍🦽‍➡' => 'bărbat în scaun cu rotile manual orientate spre dreapta',
-    '👨🏼‍🦽‍➡' => 'bărbat în scaun cu rotile manual orientate spre dreapta',
-    '👨🏽‍🦽‍➡' => 'bărbat în scaun cu rotile manual orientate spre dreapta',
-    '👨🏾‍🦽‍➡' => 'bărbat în scaun cu rotile manual orientate spre dreapta',
-    '👨🏿‍🦽‍➡' => 'bărbat în scaun cu rotile manual orientate spre dreapta',
-    '👩🏻‍🦽‍➡' => 'femeie în scaun cu rotile manual orientate spre dreapta',
-    '👩🏼‍🦽‍➡' => 'femeie în scaun cu rotile manual orientate spre dreapta',
-    '👩🏽‍🦽‍➡' => 'femeie în scaun cu rotile manual orientate spre dreapta',
-    '👩🏾‍🦽‍➡' => 'femeie în scaun cu rotile manual orientate spre dreapta',
-    '👩🏿‍🦽‍➡' => 'femeie în scaun cu rotile manual orientate spre dreapta',
-    '🏃🏻‍♀‍➡' => 'femeie care aleargă orientate spre dreapta',
-    '🏃🏼‍♀‍➡' => 'femeie care aleargă orientate spre dreapta',
-    '🏃🏽‍♀‍➡' => 'femeie care aleargă orientate spre dreapta',
-    '🏃🏾‍♀‍➡' => 'femeie care aleargă orientate spre dreapta',
-    '🏃🏿‍♀‍➡' => 'femeie care aleargă orientate spre dreapta',
-    '🏃🏻‍♂‍➡' => 'bărbat care aleargă orientate spre dreapta',
-    '🏃🏼‍♂‍➡' => 'bărbat care aleargă orientate spre dreapta',
-    '🏃🏽‍♂‍➡' => 'bărbat care aleargă orientate spre dreapta',
-    '🏃🏾‍♂‍➡' => 'bărbat care aleargă orientate spre dreapta',
-    '🏃🏿‍♂‍➡' => 'bărbat care aleargă orientate spre dreapta',
+    '🚶🏻‍♀‍➡' => 'femeie care merge: ton deschis al pielii, orientate spre dreapta',
+    '🚶🏼‍♀‍➡' => 'femeie care merge: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🚶🏽‍♀‍➡' => 'femeie care merge: ton mediu al pielii, orientate spre dreapta',
+    '🚶🏾‍♀‍➡' => 'femeie care merge: ton semi‑închis al pielii, orientate spre dreapta',
+    '🚶🏿‍♀‍➡' => 'femeie care merge: ton închis al pielii, orientate spre dreapta',
+    '🚶🏻‍♂‍➡' => 'bărbat care merge: ton deschis al pielii, orientate spre dreapta',
+    '🚶🏼‍♂‍➡' => 'bărbat care merge: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🚶🏽‍♂‍➡' => 'bărbat care merge: ton mediu al pielii, orientate spre dreapta',
+    '🚶🏾‍♂‍➡' => 'bărbat care merge: ton semi‑închis al pielii, orientate spre dreapta',
+    '🚶🏿‍♂‍➡' => 'bărbat care merge: ton închis al pielii, orientate spre dreapta',
+    '🧎🏻‍♀‍➡' => 'femeie în genunchi: ton deschis al pielii, orientate spre dreapta',
+    '🧎🏼‍♀‍➡' => 'femeie în genunchi: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🧎🏽‍♀‍➡' => 'femeie în genunchi: ton mediu al pielii, orientate spre dreapta',
+    '🧎🏾‍♀‍➡' => 'femeie în genunchi: ton semi‑închis al pielii, orientate spre dreapta',
+    '🧎🏿‍♀‍➡' => 'femeie în genunchi: ton închis al pielii, orientate spre dreapta',
+    '🧎🏻‍♂‍➡' => 'bărbat în genunchi: ton deschis al pielii, orientate spre dreapta',
+    '🧎🏼‍♂‍➡' => 'bărbat în genunchi: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🧎🏽‍♂‍➡' => 'bărbat în genunchi: ton mediu al pielii, orientate spre dreapta',
+    '🧎🏾‍♂‍➡' => 'bărbat în genunchi: ton semi‑închis al pielii, orientate spre dreapta',
+    '🧎🏿‍♂‍➡' => 'bărbat în genunchi: ton închis al pielii, orientate spre dreapta',
+    '🧑🏻‍🦯‍➡' => 'persoană cu baston pentru nevăzători: ton deschis al pielii, orientate spre dreapta',
+    '🧑🏼‍🦯‍➡' => 'persoană cu baston pentru nevăzători: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🧑🏽‍🦯‍➡' => 'persoană cu baston pentru nevăzători: ton mediu al pielii, orientate spre dreapta',
+    '🧑🏾‍🦯‍➡' => 'persoană cu baston pentru nevăzători: ton semi‑închis al pielii, orientate spre dreapta',
+    '🧑🏿‍🦯‍➡' => 'persoană cu baston pentru nevăzători: ton închis al pielii, orientate spre dreapta',
+    '👨🏻‍🦯‍➡' => 'bărbat cu baston pentru nevăzători: ton deschis al pielii, orientate spre dreapta',
+    '👨🏼‍🦯‍➡' => 'bărbat cu baston pentru nevăzători: ton semi‑deschis al pielii, orientate spre dreapta',
+    '👨🏽‍🦯‍➡' => 'bărbat cu baston pentru nevăzători: ton mediu al pielii, orientate spre dreapta',
+    '👨🏾‍🦯‍➡' => 'bărbat cu baston pentru nevăzători: ton semi‑închis al pielii, orientate spre dreapta',
+    '👨🏿‍🦯‍➡' => 'bărbat cu baston pentru nevăzători: ton închis al pielii, orientate spre dreapta',
+    '👩🏻‍🦯‍➡' => 'femeie cu baston pentru nevăzători: ton deschis al pielii, orientate spre dreapta',
+    '👩🏼‍🦯‍➡' => 'femeie cu baston pentru nevăzători: ton semi‑deschis al pielii, orientate spre dreapta',
+    '👩🏽‍🦯‍➡' => 'femeie cu baston pentru nevăzători: ton mediu al pielii, orientate spre dreapta',
+    '👩🏾‍🦯‍➡' => 'femeie cu baston pentru nevăzători: ton semi‑închis al pielii, orientate spre dreapta',
+    '👩🏿‍🦯‍➡' => 'femeie cu baston pentru nevăzători: ton închis al pielii, orientate spre dreapta',
+    '🧑🏻‍🦼‍➡' => 'persoană în scaun cu rotile motorizat: ton deschis al pielii, orientate spre dreapta',
+    '🧑🏼‍🦼‍➡' => 'persoană în scaun cu rotile motorizat: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🧑🏽‍🦼‍➡' => 'persoană în scaun cu rotile motorizat: ton mediu al pielii, orientate spre dreapta',
+    '🧑🏾‍🦼‍➡' => 'persoană în scaun cu rotile motorizat: ton semi‑închis al pielii, orientate spre dreapta',
+    '🧑🏿‍🦼‍➡' => 'persoană în scaun cu rotile motorizat: ton închis al pielii, orientate spre dreapta',
+    '👨🏻‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat: ton deschis al pielii, orientate spre dreapta',
+    '👨🏼‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat: ton semi‑deschis al pielii, orientate spre dreapta',
+    '👨🏽‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat: ton mediu al pielii, orientate spre dreapta',
+    '👨🏾‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat: ton semi‑închis al pielii, orientate spre dreapta',
+    '👨🏿‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat: ton închis al pielii, orientate spre dreapta',
+    '👩🏻‍🦼‍➡' => 'femeie în scaun cu rotile motorizat: ton deschis al pielii, orientate spre dreapta',
+    '👩🏼‍🦼‍➡' => 'femeie în scaun cu rotile motorizat: ton semi‑deschis al pielii, orientate spre dreapta',
+    '👩🏽‍🦼‍➡' => 'femeie în scaun cu rotile motorizat: ton mediu al pielii, orientate spre dreapta',
+    '👩🏾‍🦼‍➡' => 'femeie în scaun cu rotile motorizat: ton semi‑închis al pielii, orientate spre dreapta',
+    '👩🏿‍🦼‍➡' => 'femeie în scaun cu rotile motorizat: ton închis al pielii, orientate spre dreapta',
+    '🧑🏻‍🦽‍➡' => 'persoană în scaun cu rotile manual: ton deschis al pielii, orientate spre dreapta',
+    '🧑🏼‍🦽‍➡' => 'persoană în scaun cu rotile manual: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🧑🏽‍🦽‍➡' => 'persoană în scaun cu rotile manual: ton mediu al pielii, orientate spre dreapta',
+    '🧑🏾‍🦽‍➡' => 'persoană în scaun cu rotile manual: ton semi‑închis al pielii, orientate spre dreapta',
+    '🧑🏿‍🦽‍➡' => 'persoană în scaun cu rotile manual: ton închis al pielii, orientate spre dreapta',
+    '👨🏻‍🦽‍➡' => 'bărbat în scaun cu rotile manual: ton deschis al pielii, orientate spre dreapta',
+    '👨🏼‍🦽‍➡' => 'bărbat în scaun cu rotile manual: ton semi‑deschis al pielii, orientate spre dreapta',
+    '👨🏽‍🦽‍➡' => 'bărbat în scaun cu rotile manual: ton mediu al pielii, orientate spre dreapta',
+    '👨🏾‍🦽‍➡' => 'bărbat în scaun cu rotile manual: ton semi‑închis al pielii, orientate spre dreapta',
+    '👨🏿‍🦽‍➡' => 'bărbat în scaun cu rotile manual: ton închis al pielii, orientate spre dreapta',
+    '👩🏻‍🦽‍➡' => 'femeie în scaun cu rotile manual: ton deschis al pielii, orientate spre dreapta',
+    '👩🏼‍🦽‍➡' => 'femeie în scaun cu rotile manual: ton semi‑deschis al pielii, orientate spre dreapta',
+    '👩🏽‍🦽‍➡' => 'femeie în scaun cu rotile manual: ton mediu al pielii, orientate spre dreapta',
+    '👩🏾‍🦽‍➡' => 'femeie în scaun cu rotile manual: ton semi‑închis al pielii, orientate spre dreapta',
+    '👩🏿‍🦽‍➡' => 'femeie în scaun cu rotile manual: ton închis al pielii, orientate spre dreapta',
+    '🏃🏻‍♀‍➡' => 'femeie care aleargă: ton deschis al pielii, orientate spre dreapta',
+    '🏃🏼‍♀‍➡' => 'femeie care aleargă: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🏃🏽‍♀‍➡' => 'femeie care aleargă: ton mediu al pielii, orientate spre dreapta',
+    '🏃🏾‍♀‍➡' => 'femeie care aleargă: ton semi‑închis al pielii, orientate spre dreapta',
+    '🏃🏿‍♀‍➡' => 'femeie care aleargă: ton închis al pielii, orientate spre dreapta',
+    '🏃🏻‍♂‍➡' => 'bărbat care aleargă: ton deschis al pielii, orientate spre dreapta',
+    '🏃🏼‍♂‍➡' => 'bărbat care aleargă: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🏃🏽‍♂‍➡' => 'bărbat care aleargă: ton mediu al pielii, orientate spre dreapta',
+    '🏃🏾‍♂‍➡' => 'bărbat care aleargă: ton semi‑închis al pielii, orientate spre dreapta',
+    '🏃🏿‍♂‍➡' => 'bărbat care aleargă: ton închis al pielii, orientate spre dreapta',
     '🫱🏻‍🫲🏼' => 'strângere de mână: ton deschis al pielii, ton semi‑deschis al pielii',
     '🫱🏻‍🫲🏽' => 'strângere de mână: ton deschis al pielii, ton mediu al pielii',
     '🫱🏻‍🫲🏾' => 'strângere de mână: ton deschis al pielii, ton semi‑închis al pielii',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'strângere de mână: ton închis al pielii, ton semi‑deschis al pielii',
     '🫱🏿‍🫲🏽' => 'strângere de mână: ton închis al pielii, ton mediu al pielii',
     '🫱🏿‍🫲🏾' => 'strângere de mână: ton închis al pielii, ton semi‑închis al pielii',
-    '🚶‍♀‍➡' => 'femeie care merge orientate spre dreapta',
-    '🚶‍♂‍➡' => 'bărbat care merge orientate spre dreapta',
-    '🧎‍♀‍➡' => 'femeie în genunchi orientate spre dreapta',
-    '🧎‍♂‍➡' => 'bărbat în genunchi orientate spre dreapta',
-    '🧑‍🦯‍➡' => 'persoană cu baston pentru nevăzători orientate spre dreapta',
-    '👨‍🦯‍➡' => 'bărbat cu baston pentru nevăzători orientate spre dreapta',
-    '👩‍🦯‍➡' => 'femeie cu baston pentru nevăzători orientate spre dreapta',
-    '🧑‍🦼‍➡' => 'persoană în scaun cu rotile motorizat orientate spre dreapta',
-    '👨‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat orientate spre dreapta',
-    '👩‍🦼‍➡' => 'femeie în scaun cu rotile motorizat orientate spre dreapta',
-    '🧑‍🦽‍➡' => 'persoană în scaun cu rotile manual orientate spre dreapta',
-    '👨‍🦽‍➡' => 'bărbat în scaun cu rotile manual orientate spre dreapta',
-    '👩‍🦽‍➡' => 'femeie în scaun cu rotile manual orientate spre dreapta',
-    '🏃‍♀‍➡' => 'femeie care aleargă orientate spre dreapta',
-    '🏃‍♂‍➡' => 'bărbat care aleargă orientate spre dreapta',
+    '🚶‍♀‍➡' => 'femeie care merge: orientate spre dreapta',
+    '🚶‍♂‍➡' => 'bărbat care merge: orientate spre dreapta',
+    '🧎‍♀‍➡' => 'femeie în genunchi: orientate spre dreapta',
+    '🧎‍♂‍➡' => 'bărbat în genunchi: orientate spre dreapta',
+    '🧑‍🦯‍➡' => 'persoană cu baston pentru nevăzători: orientate spre dreapta',
+    '👨‍🦯‍➡' => 'bărbat cu baston pentru nevăzători: orientate spre dreapta',
+    '👩‍🦯‍➡' => 'femeie cu baston pentru nevăzători: orientate spre dreapta',
+    '🧑‍🦼‍➡' => 'persoană în scaun cu rotile motorizat: orientate spre dreapta',
+    '👨‍🦼‍➡' => 'bărbat în scaun cu rotile motorizat: orientate spre dreapta',
+    '👩‍🦼‍➡' => 'femeie în scaun cu rotile motorizat: orientate spre dreapta',
+    '🧑‍🦽‍➡' => 'persoană în scaun cu rotile manual: orientate spre dreapta',
+    '👨‍🦽‍➡' => 'bărbat în scaun cu rotile manual: orientate spre dreapta',
+    '👩‍🦽‍➡' => 'femeie în scaun cu rotile manual: orientate spre dreapta',
+    '🏃‍♀‍➡' => 'femeie care aleargă: orientate spre dreapta',
+    '🏃‍♂‍➡' => 'bărbat care aleargă: orientate spre dreapta',
     '👩‍❤‍👨' => 'cuplu cu inimă: femeie, bărbat',
     '👨‍❤‍👨' => 'cuplu cu inimă: bărbat, bărbat',
     '👩‍❤‍👩' => 'cuplu cu inimă: femeie, femeie',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'adult: ton mediu al pielii, chelie',
     '🧑🏾‍🦲' => 'adult: ton semi‑închis al pielii, chelie',
     '🧑🏿‍🦲' => 'adult: ton închis al pielii, chelie',
+    '🧑🏻‍🩰' => 'balerin sau balerină: ton deschis al pielii',
+    '🧑🏼‍🩰' => 'balerin sau balerină: ton semi‑deschis al pielii',
+    '🧑🏽‍🩰' => 'balerin sau balerină: ton mediu al pielii',
+    '🧑🏾‍🩰' => 'balerin sau balerină: ton semi‑închis al pielii',
+    '🧑🏿‍🩰' => 'balerin sau balerină: ton închis al pielii',
     '🧔🏻‍♂' => 'bărbat: ton deschis al pielii, barbă',
     '🧔🏼‍♂' => 'bărbat: ton semi‑deschis al pielii, barbă',
     '🧔🏽‍♂' => 'bărbat: ton mediu al pielii, barbă',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'femeie care merge: ton mediu al pielii',
     '🚶🏾‍♀' => 'femeie care merge: ton semi‑închis al pielii',
     '🚶🏿‍♀' => 'femeie care merge: ton închis al pielii',
-    '🚶🏻‍➡' => 'persoană care merge orientate spre dreapta',
-    '🚶🏼‍➡' => 'persoană care merge orientate spre dreapta',
-    '🚶🏽‍➡' => 'persoană care merge orientate spre dreapta',
-    '🚶🏾‍➡' => 'persoană care merge orientate spre dreapta',
-    '🚶🏿‍➡' => 'persoană care merge orientate spre dreapta',
+    '🚶🏻‍➡' => 'persoană care merge: ton deschis al pielii, orientate spre dreapta',
+    '🚶🏼‍➡' => 'persoană care merge: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🚶🏽‍➡' => 'persoană care merge: ton mediu al pielii, orientate spre dreapta',
+    '🚶🏾‍➡' => 'persoană care merge: ton semi‑închis al pielii, orientate spre dreapta',
+    '🚶🏿‍➡' => 'persoană care merge: ton închis al pielii, orientate spre dreapta',
     '🧍🏻‍♂' => 'bărbat în picioare: ton deschis al pielii',
     '🧍🏼‍♂' => 'bărbat în picioare: ton semi‑deschis al pielii',
     '🧍🏽‍♂' => 'bărbat în picioare: ton mediu al pielii',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'femeie în genunchi: ton mediu al pielii',
     '🧎🏾‍♀' => 'femeie în genunchi: ton semi‑închis al pielii',
     '🧎🏿‍♀' => 'femeie în genunchi: ton închis al pielii',
-    '🧎🏻‍➡' => 'persoană în genunchi orientate spre dreapta',
-    '🧎🏼‍➡' => 'persoană în genunchi orientate spre dreapta',
-    '🧎🏽‍➡' => 'persoană în genunchi orientate spre dreapta',
-    '🧎🏾‍➡' => 'persoană în genunchi orientate spre dreapta',
-    '🧎🏿‍➡' => 'persoană în genunchi orientate spre dreapta',
+    '🧎🏻‍➡' => 'persoană în genunchi: ton deschis al pielii, orientate spre dreapta',
+    '🧎🏼‍➡' => 'persoană în genunchi: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🧎🏽‍➡' => 'persoană în genunchi: ton mediu al pielii, orientate spre dreapta',
+    '🧎🏾‍➡' => 'persoană în genunchi: ton semi‑închis al pielii, orientate spre dreapta',
+    '🧎🏿‍➡' => 'persoană în genunchi: ton închis al pielii, orientate spre dreapta',
     '🧑🏻‍🦯' => 'persoană cu baston pentru nevăzători: ton deschis al pielii',
     '🧑🏼‍🦯' => 'persoană cu baston pentru nevăzători: ton semi‑deschis al pielii',
     '🧑🏽‍🦯' => 'persoană cu baston pentru nevăzători: ton mediu al pielii',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'femeie care aleargă: ton mediu al pielii',
     '🏃🏾‍♀' => 'femeie care aleargă: ton semi‑închis al pielii',
     '🏃🏿‍♀' => 'femeie care aleargă: ton închis al pielii',
-    '🏃🏻‍➡' => 'persoană care aleargă orientate spre dreapta',
-    '🏃🏼‍➡' => 'persoană care aleargă orientate spre dreapta',
-    '🏃🏽‍➡' => 'persoană care aleargă orientate spre dreapta',
-    '🏃🏾‍➡' => 'persoană care aleargă orientate spre dreapta',
-    '🏃🏿‍➡' => 'persoană care aleargă orientate spre dreapta',
+    '🏃🏻‍➡' => 'persoană care aleargă: ton deschis al pielii, orientate spre dreapta',
+    '🏃🏼‍➡' => 'persoană care aleargă: ton semi‑deschis al pielii, orientate spre dreapta',
+    '🏃🏽‍➡' => 'persoană care aleargă: ton mediu al pielii, orientate spre dreapta',
+    '🏃🏾‍➡' => 'persoană care aleargă: ton semi‑închis al pielii, orientate spre dreapta',
+    '🏃🏿‍➡' => 'persoană care aleargă: ton închis al pielii, orientate spre dreapta',
+    '👯🏻‍♀' => 'femei care poartă urechi de iepuraș: ton deschis al pielii',
+    '👯🏼‍♀' => 'femei care poartă urechi de iepuraș: ton semi‑deschis al pielii',
+    '👯🏽‍♀' => 'femei care poartă urechi de iepuraș: ton mediu al pielii',
+    '👯🏾‍♀' => 'femei care poartă urechi de iepuraș: ton semi‑închis al pielii',
+    '👯🏿‍♀' => 'femei care poartă urechi de iepuraș: ton închis al pielii',
+    '👯🏻‍♂' => 'bărbați care poartă urechi de iepuraș: ton deschis al pielii',
+    '👯🏼‍♂' => 'bărbați care poartă urechi de iepuraș: ton semi‑deschis al pielii',
+    '👯🏽‍♂' => 'bărbați care poartă urechi de iepuraș: ton mediu al pielii',
+    '👯🏾‍♂' => 'bărbați care poartă urechi de iepuraș: ton semi‑închis al pielii',
+    '👯🏿‍♂' => 'bărbați care poartă urechi de iepuraș: ton închis al pielii',
     '🧖🏻‍♂' => 'bărbat în saună: ton deschis al pielii',
     '🧖🏼‍♂' => 'bărbat în saună: ton semi‑deschis al pielii',
     '🧖🏽‍♂' => 'bărbat în saună: ton mediu al pielii',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'femeie care face roata: ton mediu al pielii',
     '🤸🏾‍♀' => 'femeie care face roata: ton semi‑închis al pielii',
     '🤸🏿‍♀' => 'femeie care face roata: ton închis al pielii',
+    '🤼🏻‍♀' => 'femeie care practică wrestling: ton deschis al pielii',
+    '🤼🏼‍♀' => 'femeie care practică wrestling: ton semi‑deschis al pielii',
+    '🤼🏽‍♀' => 'femeie care practică wrestling: ton mediu al pielii',
+    '🤼🏾‍♀' => 'femeie care practică wrestling: ton semi‑închis al pielii',
+    '🤼🏿‍♀' => 'femeie care practică wrestling: ton închis al pielii',
+    '🤼🏻‍♂' => 'bărbat care practică wrestling: ton deschis al pielii',
+    '🤼🏼‍♂' => 'bărbat care practică wrestling: ton semi‑deschis al pielii',
+    '🤼🏽‍♂' => 'bărbat care practică wrestling: ton mediu al pielii',
+    '🤼🏾‍♂' => 'bărbat care practică wrestling: ton semi‑închis al pielii',
+    '🤼🏿‍♂' => 'bărbat care practică wrestling: ton închis al pielii',
     '🤽🏻‍♂' => 'bărbat care joacă polo pe apă: ton deschis al pielii',
     '🤽🏼‍♂' => 'bărbat care joacă polo pe apă: ton semi‑deschis al pielii',
     '🤽🏽‍♂' => 'bărbat care joacă polo pe apă: ton mediu al pielii',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'femeie: păr creț',
     '👩‍🦳' => 'femeie: păr alb',
     '👩‍🦲' => 'femeie: chelie',
-    '🚶‍➡' => 'persoană care merge orientate spre dreapta',
-    '🧎‍➡' => 'persoană în genunchi orientate spre dreapta',
-    '🏃‍➡' => 'persoană care aleargă orientate spre dreapta',
+    '🚶‍➡' => 'persoană care merge: orientate spre dreapta',
+    '🧎‍➡' => 'persoană în genunchi: orientate spre dreapta',
+    '🏃‍➡' => 'persoană care aleargă: orientate spre dreapta',
     '👨‍👦' => 'familie: bărbat, băiat',
     '👨‍👧' => 'familie: bărbat, fată',
     '👩‍👦' => 'familie: femeie, băiat',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'femeie în scaun cu rotile manual',
     '🏃‍♂' => 'bărbat care aleargă',
     '🏃‍♀' => 'femeie care aleargă',
+    '🧑‍🩰' => 'balerin sau balerină',
     '👯‍♂' => 'bărbați care poartă urechi de iepuraș',
     '👯‍♀' => 'femei care poartă urechi de iepuraș',
     '🧖‍♂' => 'bărbat în saună',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'persoană în costum, levitând: ton mediu al pielii',
     '🕴🏾' => 'persoană în costum, levitând: ton semi‑închis al pielii',
     '🕴🏿' => 'persoană în costum, levitând: ton închis al pielii',
+    '👯🏻' => 'persoane care poartă urechi de iepuraș: ton deschis al pielii',
+    '👯🏼' => 'persoane care poartă urechi de iepuraș: ton semi‑deschis al pielii',
+    '👯🏽' => 'persoane care poartă urechi de iepuraș: ton mediu al pielii',
+    '👯🏾' => 'persoane care poartă urechi de iepuraș: ton semi‑închis al pielii',
+    '👯🏿' => 'persoane care poartă urechi de iepuraș: ton închis al pielii',
     '🧖🏻' => 'persoană în saună: ton deschis al pielii',
     '🧖🏼' => 'persoană în saună: ton semi‑deschis al pielii',
     '🧖🏽' => 'persoană în saună: ton mediu al pielii',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'persoană care face roata: ton mediu al pielii',
     '🤸🏾' => 'persoană care face roata: ton semi‑închis al pielii',
     '🤸🏿' => 'persoană care face roata: ton închis al pielii',
+    '🤼🏻' => 'persoane care practică wrestling: ton deschis al pielii',
+    '🤼🏼' => 'persoane care practică wrestling: ton semi‑deschis al pielii',
+    '🤼🏽' => 'persoane care practică wrestling: ton mediu al pielii',
+    '🤼🏾' => 'persoane care practică wrestling: ton semi‑închis al pielii',
+    '🤼🏿' => 'persoane care practică wrestling: ton închis al pielii',
     '🤽🏻' => 'persoană care joacă polo pe apă: ton deschis al pielii',
     '🤽🏼' => 'persoană care joacă polo pe apă: ton semi‑deschis al pielii',
     '🤽🏽' => 'persoană care joacă polo pe apă: ton mediu al pielii',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'steag: China',
     '🇨🇴' => 'steag: Columbia',
     '🇨🇵' => 'steag: Insula Clipperton',
+    '🇨🇶' => 'steag: Sark',
     '🇨🇷' => 'steag: Costa Rica',
     '🇨🇺' => 'steag: Cuba',
     '🇨🇻' => 'steag: Capul Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ton mediu al pielii',
     '🏾' => 'ton semi‑închis al pielii',
     '🏿' => 'ton închis al pielii',
-    '🪉' => 'harpă',
-    '🪏' => 'lopată',
-    '🪾' => 'copac desfrunzit',
-    '🫆' => 'amprentă',
-    '🫜' => 'legumă rădăcinoasă',
-    '🫟' => 'împroșcare',
-    '🫩' => 'față cu cearcăne',
     '😀' => 'față încântată',
     '😃' => 'față încântată cu ochii mari',
     '😄' => 'față încântată cu ochi zâmbitori',
@@ -2450,6 +2600,7 @@
     '😪' => 'față somnoroasă',
     '🤤' => 'față care salivează',
     '😴' => 'față adormită',
+    '🫩' => 'față cu cearcăne',
     '😷' => 'față cu mască medicală',
     '🤒' => 'față cu termometru',
     '🤕' => 'față cu capul bandajat',
@@ -2476,6 +2627,7 @@
     '😯' => 'față amuțită',
     '😲' => 'față uimită',
     '😳' => 'față îmbujorată',
+    '🫪' => 'față distorsionată',
     '🥺' => 'față rugătoare',
     '🥹' => 'față cu lacrimi în ochi',
     '😦' => 'față tristă cu gura deschisă',
@@ -2547,6 +2699,7 @@
     '💋' => 'urme de buze',
     '💯' => 'o sută de puncte',
     '💢' => 'simbol mânie',
+    '🫯' => 'nor de bătaie',
     '💥' => 'coliziune',
     '💫' => 'amețit',
     '💦' => 'picături de transpirație',
@@ -2670,6 +2823,7 @@
     '🧞' => 'duh',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'creatură păroasă',
     '💆' => 'persoană care primește un masaj facial',
     '💇' => 'persoană care se tunde',
     '🚶' => 'persoană care merge',
@@ -2713,6 +2867,7 @@
     '🫂' => 'persoane îmbrățișate',
     '👪' => 'familie',
     '👣' => 'urme de pași',
+    '🫆' => 'amprentă',
     '🦰' => 'păr roșcat',
     '🦱' => 'păr creț',
     '🦳' => 'păr alb',
@@ -2812,6 +2967,7 @@
     '🐳' => 'balenă împroșcând apă',
     '🐋' => 'balenă',
     '🐬' => 'delfin',
+    '🫍' => 'orca',
     '🦭' => 'focă',
     '🐟' => 'pește',
     '🐠' => 'pește tropical',
@@ -2821,6 +2977,11 @@
     '🐚' => 'cochilie spiralată',
     '🪸' => 'coral',
     '🪼' => 'meduză',
+    '🦀' => 'rac',
+    '🦞' => 'homar',
+    '🦐' => 'crevete',
+    '🦑' => 'calmar',
+    '🦪' => 'stridie',
     '🐌' => 'melc',
     '🦋' => 'fluture',
     '🐛' => 'gândac',
@@ -2865,6 +3026,7 @@
     '🪹' => 'cuib gol',
     '🪺' => 'cuib cu ouă',
     '🍄' => 'ciupercă',
+    '🪾' => 'copac desfrunzit',
     '🍇' => 'struguri',
     '🍈' => 'pepene galben',
     '🍉' => 'pepene verde',
@@ -2901,6 +3063,7 @@
     '🌰' => 'castană',
     '🫚' => 'rădăcină de ghimbir',
     '🫛' => 'păstaie de mazăre',
+    '🫜' => 'legumă rădăcinoasă',
     '🍞' => 'pâine',
     '🥐' => 'croasant',
     '🥖' => 'baghetă de pâine',
@@ -2952,11 +3115,6 @@
     '🥟' => 'găluște chinezești',
     '🥠' => 'prăjiturele cu răvaș',
     '🥡' => 'mâncare la pachet',
-    '🦀' => 'rac',
-    '🦞' => 'homar',
-    '🦐' => 'crevete',
-    '🦑' => 'calmar',
-    '🦪' => 'stridie',
     '🍦' => 'înghețată cremă',
     '🍧' => 'desert din fulgi de gheață',
     '🍨' => 'înghețată',
@@ -3007,6 +3165,7 @@
     '🧭' => 'busolă',
     '🏔' => 'vârf de munte înzăpezit',
     '⛰' => 'munte',
+    '🛘' => 'alunecare de teren',
     '🌋' => 'vulcan',
     '🗻' => 'muntele Fuji',
     '🏕' => 'camping',
@@ -3367,16 +3526,18 @@
     '🎧' => 'cască audio',
     '📻' => 'radio',
     '🎷' => 'saxofon',
+    '🎺' => 'trompetă',
+    '🪊' => 'trombon',
     '🪗' => 'acordeon',
     '🎸' => 'chitară',
     '🎹' => 'claviatură muzicală',
-    '🎺' => 'trompetă',
     '🎻' => 'vioară',
     '🪕' => 'banjo',
     '🥁' => 'tobă',
     '🪘' => 'tobă înaltă',
     '🪇' => 'maracas',
     '🪈' => 'flaut',
+    '🪉' => 'harpă',
     '📱' => 'telefon mobil',
     '📲' => 'telefon mobil cu săgeată',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'marcatoare de pagini',
     '🔖' => 'semn de carte',
     '🏷' => 'etichetă',
-    '💰' => 'sac cu bani',
     '🪙' => 'monedă',
+    '💰' => 'sac cu bani',
+    '🪎' => 'cufăr de comori',
     '💴' => 'bancnotă yen',
     '💵' => 'bancnotă dolar',
     '💶' => 'bancnotă euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'trusă de scule',
     '🧲' => 'magnet',
     '🪜' => 'scară',
+    '🪏' => 'lopată',
     '⚗' => 'alambic',
     '🧪' => 'eprubetă',
     '🧫' => 'vas Petri',
@@ -3697,6 +3860,7 @@
     '✴' => 'stea cu opt colțuri',
     '❇' => 'strălucire',
     '™' => 'marcă comercială',
+    '🫟' => 'împroșcare',
     '🔠' => 'introducere majuscule latine',
     '🔡' => 'introducere minuscule latine',
     '🔢' => 'introducere numere',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ru.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ru.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ru.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ru.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'поцелуй: женщина женщина очень темный тон кожи средний тон кожи',
     '👩🏿‍❤‍💋‍👩🏾' => 'поцелуй: женщина женщина очень темный тон кожи темный тон кожи',
     '👩🏿‍❤‍💋‍👩🏿' => 'поцелуй: женщина женщина очень темный тон кожи',
+    '🧑🏻‍🫯‍🧑🏼' => 'борцы: очень светлый тон кожи светлый тон кожи',
+    '🧑🏻‍🫯‍🧑🏽' => 'борцы: очень светлый тон кожи средний тон кожи',
+    '🧑🏻‍🫯‍🧑🏾' => 'борцы: очень светлый тон кожи темный тон кожи',
+    '🧑🏻‍🫯‍🧑🏿' => 'борцы: очень светлый тон кожи очень темный тон кожи',
+    '🧑🏼‍🫯‍🧑🏻' => 'борцы: светлый тон кожи очень светлый тон кожи',
+    '🧑🏼‍🫯‍🧑🏽' => 'борцы: светлый тон кожи средний тон кожи',
+    '🧑🏼‍🫯‍🧑🏾' => 'борцы: светлый тон кожи темный тон кожи',
+    '🧑🏼‍🫯‍🧑🏿' => 'борцы: светлый тон кожи очень темный тон кожи',
+    '🧑🏽‍🫯‍🧑🏻' => 'борцы: средний тон кожи очень светлый тон кожи',
+    '🧑🏽‍🫯‍🧑🏼' => 'борцы: средний тон кожи светлый тон кожи',
+    '🧑🏽‍🫯‍🧑🏾' => 'борцы: средний тон кожи темный тон кожи',
+    '🧑🏽‍🫯‍🧑🏿' => 'борцы: средний тон кожи очень темный тон кожи',
+    '🧑🏾‍🫯‍🧑🏻' => 'борцы: темный тон кожи очень светлый тон кожи',
+    '🧑🏾‍🫯‍🧑🏼' => 'борцы: темный тон кожи светлый тон кожи',
+    '🧑🏾‍🫯‍🧑🏽' => 'борцы: темный тон кожи средний тон кожи',
+    '🧑🏾‍🫯‍🧑🏿' => 'борцы: темный тон кожи очень темный тон кожи',
+    '🧑🏿‍🫯‍🧑🏻' => 'борцы: очень темный тон кожи очень светлый тон кожи',
+    '🧑🏿‍🫯‍🧑🏼' => 'борцы: очень темный тон кожи светлый тон кожи',
+    '🧑🏿‍🫯‍🧑🏽' => 'борцы: очень темный тон кожи средний тон кожи',
+    '🧑🏿‍🫯‍🧑🏾' => 'борцы: очень темный тон кожи темный тон кожи',
     '🧑🏻‍❤‍🧑🏼' => 'влюбленная пара: взрослый взрослый очень светлый тон кожи светлый тон кожи',
     '🧑🏻‍❤‍🧑🏽' => 'влюбленная пара: взрослый взрослый очень светлый тон кожи средний тон кожи',
     '🧑🏻‍❤‍🧑🏾' => 'влюбленная пара: взрослый взрослый очень светлый тон кожи темный тон кожи',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'влюбленная пара: взрослый взрослый очень темный тон кожи светлый тон кожи',
     '🧑🏿‍❤‍🧑🏽' => 'влюбленная пара: взрослый взрослый очень темный тон кожи средний тон кожи',
     '🧑🏿‍❤‍🧑🏾' => 'влюбленная пара: взрослый взрослый очень темный тон кожи темный тон кожи',
+    '🧑🏻‍🐰‍🧑🏼' => 'люди с ушами кролика: очень светлый тон кожи светлый тон кожи',
+    '🧑🏻‍🐰‍🧑🏽' => 'люди с ушами кролика: очень светлый тон кожи средний тон кожи',
+    '🧑🏻‍🐰‍🧑🏾' => 'люди с ушами кролика: очень светлый тон кожи темный тон кожи',
+    '🧑🏻‍🐰‍🧑🏿' => 'люди с ушами кролика: очень светлый тон кожи очень темный тон кожи',
+    '🧑🏼‍🐰‍🧑🏻' => 'люди с ушами кролика: светлый тон кожи очень светлый тон кожи',
+    '🧑🏼‍🐰‍🧑🏽' => 'люди с ушами кролика: светлый тон кожи средний тон кожи',
+    '🧑🏼‍🐰‍🧑🏾' => 'люди с ушами кролика: светлый тон кожи темный тон кожи',
+    '🧑🏼‍🐰‍🧑🏿' => 'люди с ушами кролика: светлый тон кожи очень темный тон кожи',
+    '🧑🏽‍🐰‍🧑🏻' => 'люди с ушами кролика: средний тон кожи очень светлый тон кожи',
+    '🧑🏽‍🐰‍🧑🏼' => 'люди с ушами кролика: средний тон кожи светлый тон кожи',
+    '🧑🏽‍🐰‍🧑🏾' => 'люди с ушами кролика: средний тон кожи темный тон кожи',
+    '🧑🏽‍🐰‍🧑🏿' => 'люди с ушами кролика: средний тон кожи очень темный тон кожи',
+    '🧑🏾‍🐰‍🧑🏻' => 'люди с ушами кролика: темный тон кожи очень светлый тон кожи',
+    '🧑🏾‍🐰‍🧑🏼' => 'люди с ушами кролика: темный тон кожи светлый тон кожи',
+    '🧑🏾‍🐰‍🧑🏽' => 'люди с ушами кролика: темный тон кожи средний тон кожи',
+    '🧑🏾‍🐰‍🧑🏿' => 'люди с ушами кролика: темный тон кожи очень темный тон кожи',
+    '🧑🏿‍🐰‍🧑🏻' => 'люди с ушами кролика: очень темный тон кожи очень светлый тон кожи',
+    '🧑🏿‍🐰‍🧑🏼' => 'люди с ушами кролика: очень темный тон кожи светлый тон кожи',
+    '🧑🏿‍🐰‍🧑🏽' => 'люди с ушами кролика: очень темный тон кожи средний тон кожи',
+    '🧑🏿‍🐰‍🧑🏾' => 'люди с ушами кролика: очень темный тон кожи темный тон кожи',
+    '👨🏻‍🫯‍👨🏼' => 'мужчины-борцы: очень светлый тон кожи светлый тон кожи',
+    '👨🏻‍🫯‍👨🏽' => 'мужчины-борцы: очень светлый тон кожи средний тон кожи',
+    '👨🏻‍🫯‍👨🏾' => 'мужчины-борцы: очень светлый тон кожи темный тон кожи',
+    '👨🏻‍🫯‍👨🏿' => 'мужчины-борцы: очень светлый тон кожи очень темный тон кожи',
+    '👨🏼‍🫯‍👨🏻' => 'мужчины-борцы: светлый тон кожи очень светлый тон кожи',
+    '👨🏼‍🫯‍👨🏽' => 'мужчины-борцы: светлый тон кожи средний тон кожи',
+    '👨🏼‍🫯‍👨🏾' => 'мужчины-борцы: светлый тон кожи темный тон кожи',
+    '👨🏼‍🫯‍👨🏿' => 'мужчины-борцы: светлый тон кожи очень темный тон кожи',
+    '👨🏽‍🫯‍👨🏻' => 'мужчины-борцы: средний тон кожи очень светлый тон кожи',
+    '👨🏽‍🫯‍👨🏼' => 'мужчины-борцы: средний тон кожи светлый тон кожи',
+    '👨🏽‍🫯‍👨🏾' => 'мужчины-борцы: средний тон кожи темный тон кожи',
+    '👨🏽‍🫯‍👨🏿' => 'мужчины-борцы: средний тон кожи очень темный тон кожи',
+    '👨🏾‍🫯‍👨🏻' => 'мужчины-борцы: темный тон кожи очень светлый тон кожи',
+    '👨🏾‍🫯‍👨🏼' => 'мужчины-борцы: темный тон кожи светлый тон кожи',
+    '👨🏾‍🫯‍👨🏽' => 'мужчины-борцы: темный тон кожи средний тон кожи',
+    '👨🏾‍🫯‍👨🏿' => 'мужчины-борцы: темный тон кожи очень темный тон кожи',
+    '👨🏿‍🫯‍👨🏻' => 'мужчины-борцы: очень темный тон кожи очень светлый тон кожи',
+    '👨🏿‍🫯‍👨🏼' => 'мужчины-борцы: очень темный тон кожи светлый тон кожи',
+    '👨🏿‍🫯‍👨🏽' => 'мужчины-борцы: очень темный тон кожи средний тон кожи',
+    '👨🏿‍🫯‍👨🏾' => 'мужчины-борцы: очень темный тон кожи темный тон кожи',
     '👨🏻‍❤‍👨🏻' => 'влюбленная пара: мужчина мужчина очень светлый тон кожи',
     '👨🏻‍❤‍👨🏼' => 'влюбленная пара: мужчина мужчина очень светлый тон кожи светлый тон кожи',
     '👨🏻‍❤‍👨🏽' => 'влюбленная пара: мужчина мужчина очень светлый тон кожи средний тон кожи',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'влюбленная пара: мужчина мужчина очень темный тон кожи средний тон кожи',
     '👨🏿‍❤‍👨🏾' => 'влюбленная пара: мужчина мужчина очень темный тон кожи темный тон кожи',
     '👨🏿‍❤‍👨🏿' => 'влюбленная пара: мужчина мужчина очень темный тон кожи',
+    '👨🏻‍🐰‍👨🏼' => 'мужчины с ушами кролика: очень светлый тон кожи светлый тон кожи',
+    '👨🏻‍🐰‍👨🏽' => 'мужчины с ушами кролика: очень светлый тон кожи средний тон кожи',
+    '👨🏻‍🐰‍👨🏾' => 'мужчины с ушами кролика: очень светлый тон кожи темный тон кожи',
+    '👨🏻‍🐰‍👨🏿' => 'мужчины с ушами кролика: очень светлый тон кожи очень темный тон кожи',
+    '👨🏼‍🐰‍👨🏻' => 'мужчины с ушами кролика: светлый тон кожи очень светлый тон кожи',
+    '👨🏼‍🐰‍👨🏽' => 'мужчины с ушами кролика: светлый тон кожи средний тон кожи',
+    '👨🏼‍🐰‍👨🏾' => 'мужчины с ушами кролика: светлый тон кожи темный тон кожи',
+    '👨🏼‍🐰‍👨🏿' => 'мужчины с ушами кролика: светлый тон кожи очень темный тон кожи',
+    '👨🏽‍🐰‍👨🏻' => 'мужчины с ушами кролика: средний тон кожи очень светлый тон кожи',
+    '👨🏽‍🐰‍👨🏼' => 'мужчины с ушами кролика: средний тон кожи светлый тон кожи',
+    '👨🏽‍🐰‍👨🏾' => 'мужчины с ушами кролика: средний тон кожи темный тон кожи',
+    '👨🏽‍🐰‍👨🏿' => 'мужчины с ушами кролика: средний тон кожи очень темный тон кожи',
+    '👨🏾‍🐰‍👨🏻' => 'мужчины с ушами кролика: темный тон кожи очень светлый тон кожи',
+    '👨🏾‍🐰‍👨🏼' => 'мужчины с ушами кролика: темный тон кожи светлый тон кожи',
+    '👨🏾‍🐰‍👨🏽' => 'мужчины с ушами кролика: темный тон кожи средний тон кожи',
+    '👨🏾‍🐰‍👨🏿' => 'мужчины с ушами кролика: темный тон кожи очень темный тон кожи',
+    '👨🏿‍🐰‍👨🏻' => 'мужчины с ушами кролика: очень темный тон кожи очень светлый тон кожи',
+    '👨🏿‍🐰‍👨🏼' => 'мужчины с ушами кролика: очень темный тон кожи светлый тон кожи',
+    '👨🏿‍🐰‍👨🏽' => 'мужчины с ушами кролика: очень темный тон кожи средний тон кожи',
+    '👨🏿‍🐰‍👨🏾' => 'мужчины с ушами кролика: очень темный тон кожи темный тон кожи',
+    '👩🏻‍🫯‍👩🏼' => 'женщины-борцы: очень светлый тон кожи светлый тон кожи',
+    '👩🏻‍🫯‍👩🏽' => 'женщины-борцы: очень светлый тон кожи средний тон кожи',
+    '👩🏻‍🫯‍👩🏾' => 'женщины-борцы: очень светлый тон кожи темный тон кожи',
+    '👩🏻‍🫯‍👩🏿' => 'женщины-борцы: очень светлый тон кожи очень темный тон кожи',
+    '👩🏼‍🫯‍👩🏻' => 'женщины-борцы: светлый тон кожи очень светлый тон кожи',
+    '👩🏼‍🫯‍👩🏽' => 'женщины-борцы: светлый тон кожи средний тон кожи',
+    '👩🏼‍🫯‍👩🏾' => 'женщины-борцы: светлый тон кожи темный тон кожи',
+    '👩🏼‍🫯‍👩🏿' => 'женщины-борцы: светлый тон кожи очень темный тон кожи',
+    '👩🏽‍🫯‍👩🏻' => 'женщины-борцы: средний тон кожи очень светлый тон кожи',
+    '👩🏽‍🫯‍👩🏼' => 'женщины-борцы: средний тон кожи светлый тон кожи',
+    '👩🏽‍🫯‍👩🏾' => 'женщины-борцы: средний тон кожи темный тон кожи',
+    '👩🏽‍🫯‍👩🏿' => 'женщины-борцы: средний тон кожи очень темный тон кожи',
+    '👩🏾‍🫯‍👩🏻' => 'женщины-борцы: темный тон кожи очень светлый тон кожи',
+    '👩🏾‍🫯‍👩🏼' => 'женщины-борцы: темный тон кожи светлый тон кожи',
+    '👩🏾‍🫯‍👩🏽' => 'женщины-борцы: темный тон кожи средний тон кожи',
+    '👩🏾‍🫯‍👩🏿' => 'женщины-борцы: темный тон кожи очень темный тон кожи',
+    '👩🏿‍🫯‍👩🏻' => 'женщины-борцы: очень темный тон кожи очень светлый тон кожи',
+    '👩🏿‍🫯‍👩🏼' => 'женщины-борцы: очень темный тон кожи светлый тон кожи',
+    '👩🏿‍🫯‍👩🏽' => 'женщины-борцы: очень темный тон кожи средний тон кожи',
+    '👩🏿‍🫯‍👩🏾' => 'женщины-борцы: очень темный тон кожи темный тон кожи',
     '👩🏻‍❤‍👨🏻' => 'влюбленная пара: женщина мужчина очень светлый тон кожи',
     '👩🏻‍❤‍👨🏼' => 'влюбленная пара: женщина мужчина очень светлый тон кожи светлый тон кожи',
     '👩🏻‍❤‍👨🏽' => 'влюбленная пара: женщина мужчина очень светлый тон кожи средний тон кожи',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'влюбленная пара: женщина женщина очень темный тон кожи средний тон кожи',
     '👩🏿‍❤‍👩🏾' => 'влюбленная пара: женщина женщина очень темный тон кожи темный тон кожи',
     '👩🏿‍❤‍👩🏿' => 'влюбленная пара: женщина женщина очень темный тон кожи',
+    '👩🏻‍🐰‍👩🏼' => 'женщины с ушами кролика: очень светлый тон кожи светлый тон кожи',
+    '👩🏻‍🐰‍👩🏽' => 'женщины с ушами кролика: очень светлый тон кожи средний тон кожи',
+    '👩🏻‍🐰‍👩🏾' => 'женщины с ушами кролика: очень светлый тон кожи темный тон кожи',
+    '👩🏻‍🐰‍👩🏿' => 'женщины с ушами кролика: очень светлый тон кожи очень темный тон кожи',
+    '👩🏼‍🐰‍👩🏻' => 'женщины с ушами кролика: светлый тон кожи очень светлый тон кожи',
+    '👩🏼‍🐰‍👩🏽' => 'женщины с ушами кролика: светлый тон кожи средний тон кожи',
+    '👩🏼‍🐰‍👩🏾' => 'женщины с ушами кролика: светлый тон кожи темный тон кожи',
+    '👩🏼‍🐰‍👩🏿' => 'женщины с ушами кролика: светлый тон кожи очень темный тон кожи',
+    '👩🏽‍🐰‍👩🏻' => 'женщины с ушами кролика: средний тон кожи очень светлый тон кожи',
+    '👩🏽‍🐰‍👩🏼' => 'женщины с ушами кролика: средний тон кожи светлый тон кожи',
+    '👩🏽‍🐰‍👩🏾' => 'женщины с ушами кролика: средний тон кожи темный тон кожи',
+    '👩🏽‍🐰‍👩🏿' => 'женщины с ушами кролика: средний тон кожи очень темный тон кожи',
+    '👩🏾‍🐰‍👩🏻' => 'женщины с ушами кролика: темный тон кожи очень светлый тон кожи',
+    '👩🏾‍🐰‍👩🏼' => 'женщины с ушами кролика: темный тон кожи светлый тон кожи',
+    '👩🏾‍🐰‍👩🏽' => 'женщины с ушами кролика: темный тон кожи средний тон кожи',
+    '👩🏾‍🐰‍👩🏿' => 'женщины с ушами кролика: темный тон кожи очень темный тон кожи',
+    '👩🏿‍🐰‍👩🏻' => 'женщины с ушами кролика: очень темный тон кожи очень светлый тон кожи',
+    '👩🏿‍🐰‍👩🏼' => 'женщины с ушами кролика: очень темный тон кожи светлый тон кожи',
+    '👩🏿‍🐰‍👩🏽' => 'женщины с ушами кролика: очень темный тон кожи средний тон кожи',
+    '👩🏿‍🐰‍👩🏾' => 'женщины с ушами кролика: очень темный тон кожи темный тон кожи',
     '🧑🏻‍🤝‍🧑🏻' => 'люди, держащиеся за руки: очень светлый тон кожи',
     '🧑🏻‍🤝‍🧑🏼' => 'люди, держащиеся за руки: очень светлый тон кожи светлый тон кожи',
     '🧑🏻‍🤝‍🧑🏽' => 'люди, держащиеся за руки: очень светлый тон кожи средний тон кожи',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'флаг: Шотландия',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'флаг: Уэльс',
     '🧑‍🧑‍🧒‍🧒' => 'семья: двое взрослых и двое детей',
-    '🚶🏻‍♀‍➡' => 'женщина идет, направленные вправо',
-    '🚶🏼‍♀‍➡' => 'женщина идет, направленные вправо',
-    '🚶🏽‍♀‍➡' => 'женщина идет, направленные вправо',
-    '🚶🏾‍♀‍➡' => 'женщина идет, направленные вправо',
-    '🚶🏿‍♀‍➡' => 'женщина идет, направленные вправо',
-    '🚶🏻‍♂‍➡' => 'мужчина идет, направленные вправо',
-    '🚶🏼‍♂‍➡' => 'мужчина идет, направленные вправо',
-    '🚶🏽‍♂‍➡' => 'мужчина идет, направленные вправо',
-    '🚶🏾‍♂‍➡' => 'мужчина идет, направленные вправо',
-    '🚶🏿‍♂‍➡' => 'мужчина идет, направленные вправо',
-    '🧎🏻‍♀‍➡' => 'женщина на коленях, направленные вправо',
-    '🧎🏼‍♀‍➡' => 'женщина на коленях, направленные вправо',
-    '🧎🏽‍♀‍➡' => 'женщина на коленях, направленные вправо',
-    '🧎🏾‍♀‍➡' => 'женщина на коленях, направленные вправо',
-    '🧎🏿‍♀‍➡' => 'женщина на коленях, направленные вправо',
-    '🧎🏻‍♂‍➡' => 'мужчина на коленях, направленные вправо',
-    '🧎🏼‍♂‍➡' => 'мужчина на коленях, направленные вправо',
-    '🧎🏽‍♂‍➡' => 'мужчина на коленях, направленные вправо',
-    '🧎🏾‍♂‍➡' => 'мужчина на коленях, направленные вправо',
-    '🧎🏿‍♂‍➡' => 'мужчина на коленях, направленные вправо',
-    '🧑🏻‍🦯‍➡' => 'человек с белой тростью, направленные вправо',
-    '🧑🏼‍🦯‍➡' => 'человек с белой тростью, направленные вправо',
-    '🧑🏽‍🦯‍➡' => 'человек с белой тростью, направленные вправо',
-    '🧑🏾‍🦯‍➡' => 'человек с белой тростью, направленные вправо',
-    '🧑🏿‍🦯‍➡' => 'человек с белой тростью, направленные вправо',
-    '👨🏻‍🦯‍➡' => 'мужчина с тростью для ходьбы, направленные вправо',
-    '👨🏼‍🦯‍➡' => 'мужчина с тростью для ходьбы, направленные вправо',
-    '👨🏽‍🦯‍➡' => 'мужчина с тростью для ходьбы, направленные вправо',
-    '👨🏾‍🦯‍➡' => 'мужчина с тростью для ходьбы, направленные вправо',
-    '👨🏿‍🦯‍➡' => 'мужчина с тростью для ходьбы, направленные вправо',
-    '👩🏻‍🦯‍➡' => 'женщина с тростью для ходьбы, направленные вправо',
-    '👩🏼‍🦯‍➡' => 'женщина с тростью для ходьбы, направленные вправо',
-    '👩🏽‍🦯‍➡' => 'женщина с тростью для ходьбы, направленные вправо',
-    '👩🏾‍🦯‍➡' => 'женщина с тростью для ходьбы, направленные вправо',
-    '👩🏿‍🦯‍➡' => 'женщина с тростью для ходьбы, направленные вправо',
-    '🧑🏻‍🦼‍➡' => 'человек в кресле-коляске с мотором, направленные вправо',
-    '🧑🏼‍🦼‍➡' => 'человек в кресле-коляске с мотором, направленные вправо',
-    '🧑🏽‍🦼‍➡' => 'человек в кресле-коляске с мотором, направленные вправо',
-    '🧑🏾‍🦼‍➡' => 'человек в кресле-коляске с мотором, направленные вправо',
-    '🧑🏿‍🦼‍➡' => 'человек в кресле-коляске с мотором, направленные вправо',
-    '👨🏻‍🦼‍➡' => 'мужчина в электрическом кресле-коляске, направленные вправо',
-    '👨🏼‍🦼‍➡' => 'мужчина в электрическом кресле-коляске, направленные вправо',
-    '👨🏽‍🦼‍➡' => 'мужчина в электрическом кресле-коляске, направленные вправо',
-    '👨🏾‍🦼‍➡' => 'мужчина в электрическом кресле-коляске, направленные вправо',
-    '👨🏿‍🦼‍➡' => 'мужчина в электрическом кресле-коляске, направленные вправо',
-    '👩🏻‍🦼‍➡' => 'женщина в электрическом кресле-коляске, направленные вправо',
-    '👩🏼‍🦼‍➡' => 'женщина в электрическом кресле-коляске, направленные вправо',
-    '👩🏽‍🦼‍➡' => 'женщина в электрическом кресле-коляске, направленные вправо',
-    '👩🏾‍🦼‍➡' => 'женщина в электрическом кресле-коляске, направленные вправо',
-    '👩🏿‍🦼‍➡' => 'женщина в электрическом кресле-коляске, направленные вправо',
-    '🧑🏻‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом, направленные вправо',
-    '🧑🏼‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом, направленные вправо',
-    '🧑🏽‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом, направленные вправо',
-    '🧑🏾‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом, направленные вправо',
-    '🧑🏿‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом, направленные вправо',
-    '👨🏻‍🦽‍➡' => 'мужчина в ручном кресле-коляске, направленные вправо',
-    '👨🏼‍🦽‍➡' => 'мужчина в ручном кресле-коляске, направленные вправо',
-    '👨🏽‍🦽‍➡' => 'мужчина в ручном кресле-коляске, направленные вправо',
-    '👨🏾‍🦽‍➡' => 'мужчина в ручном кресле-коляске, направленные вправо',
-    '👨🏿‍🦽‍➡' => 'мужчина в ручном кресле-коляске, направленные вправо',
-    '👩🏻‍🦽‍➡' => 'женщина в ручном кресле-коляске, направленные вправо',
-    '👩🏼‍🦽‍➡' => 'женщина в ручном кресле-коляске, направленные вправо',
-    '👩🏽‍🦽‍➡' => 'женщина в ручном кресле-коляске, направленные вправо',
-    '👩🏾‍🦽‍➡' => 'женщина в ручном кресле-коляске, направленные вправо',
-    '👩🏿‍🦽‍➡' => 'женщина в ручном кресле-коляске, направленные вправо',
-    '🏃🏻‍♀‍➡' => 'женщина бежит, направленные вправо',
-    '🏃🏼‍♀‍➡' => 'женщина бежит, направленные вправо',
-    '🏃🏽‍♀‍➡' => 'женщина бежит, направленные вправо',
-    '🏃🏾‍♀‍➡' => 'женщина бежит, направленные вправо',
-    '🏃🏿‍♀‍➡' => 'женщина бежит, направленные вправо',
-    '🏃🏻‍♂‍➡' => 'мужчина бежит, направленные вправо',
-    '🏃🏼‍♂‍➡' => 'мужчина бежит, направленные вправо',
-    '🏃🏽‍♂‍➡' => 'мужчина бежит, направленные вправо',
-    '🏃🏾‍♂‍➡' => 'мужчина бежит, направленные вправо',
-    '🏃🏿‍♂‍➡' => 'мужчина бежит, направленные вправо',
+    '🚶🏻‍♀‍➡' => 'женщина идет: очень светлый тон кожи , направленные вправо',
+    '🚶🏼‍♀‍➡' => 'женщина идет: светлый тон кожи , направленные вправо',
+    '🚶🏽‍♀‍➡' => 'женщина идет: средний тон кожи , направленные вправо',
+    '🚶🏾‍♀‍➡' => 'женщина идет: темный тон кожи , направленные вправо',
+    '🚶🏿‍♀‍➡' => 'женщина идет: очень темный тон кожи , направленные вправо',
+    '🚶🏻‍♂‍➡' => 'мужчина идет: очень светлый тон кожи , направленные вправо',
+    '🚶🏼‍♂‍➡' => 'мужчина идет: светлый тон кожи , направленные вправо',
+    '🚶🏽‍♂‍➡' => 'мужчина идет: средний тон кожи , направленные вправо',
+    '🚶🏾‍♂‍➡' => 'мужчина идет: темный тон кожи , направленные вправо',
+    '🚶🏿‍♂‍➡' => 'мужчина идет: очень темный тон кожи , направленные вправо',
+    '🧎🏻‍♀‍➡' => 'женщина на коленях: очень светлый тон кожи , направленные вправо',
+    '🧎🏼‍♀‍➡' => 'женщина на коленях: светлый тон кожи , направленные вправо',
+    '🧎🏽‍♀‍➡' => 'женщина на коленях: средний тон кожи , направленные вправо',
+    '🧎🏾‍♀‍➡' => 'женщина на коленях: темный тон кожи , направленные вправо',
+    '🧎🏿‍♀‍➡' => 'женщина на коленях: очень темный тон кожи , направленные вправо',
+    '🧎🏻‍♂‍➡' => 'мужчина на коленях: очень светлый тон кожи , направленные вправо',
+    '🧎🏼‍♂‍➡' => 'мужчина на коленях: светлый тон кожи , направленные вправо',
+    '🧎🏽‍♂‍➡' => 'мужчина на коленях: средний тон кожи , направленные вправо',
+    '🧎🏾‍♂‍➡' => 'мужчина на коленях: темный тон кожи , направленные вправо',
+    '🧎🏿‍♂‍➡' => 'мужчина на коленях: очень темный тон кожи , направленные вправо',
+    '🧑🏻‍🦯‍➡' => 'человек с белой тростью: очень светлый тон кожи , направленные вправо',
+    '🧑🏼‍🦯‍➡' => 'человек с белой тростью: светлый тон кожи , направленные вправо',
+    '🧑🏽‍🦯‍➡' => 'человек с белой тростью: средний тон кожи , направленные вправо',
+    '🧑🏾‍🦯‍➡' => 'человек с белой тростью: темный тон кожи , направленные вправо',
+    '🧑🏿‍🦯‍➡' => 'человек с белой тростью: очень темный тон кожи , направленные вправо',
+    '👨🏻‍🦯‍➡' => 'мужчина с тростью для ходьбы: очень светлый тон кожи , направленные вправо',
+    '👨🏼‍🦯‍➡' => 'мужчина с тростью для ходьбы: светлый тон кожи , направленные вправо',
+    '👨🏽‍🦯‍➡' => 'мужчина с тростью для ходьбы: средний тон кожи , направленные вправо',
+    '👨🏾‍🦯‍➡' => 'мужчина с тростью для ходьбы: темный тон кожи , направленные вправо',
+    '👨🏿‍🦯‍➡' => 'мужчина с тростью для ходьбы: очень темный тон кожи , направленные вправо',
+    '👩🏻‍🦯‍➡' => 'женщина с тростью для ходьбы: очень светлый тон кожи , направленные вправо',
+    '👩🏼‍🦯‍➡' => 'женщина с тростью для ходьбы: светлый тон кожи , направленные вправо',
+    '👩🏽‍🦯‍➡' => 'женщина с тростью для ходьбы: средний тон кожи , направленные вправо',
+    '👩🏾‍🦯‍➡' => 'женщина с тростью для ходьбы: темный тон кожи , направленные вправо',
+    '👩🏿‍🦯‍➡' => 'женщина с тростью для ходьбы: очень темный тон кожи , направленные вправо',
+    '🧑🏻‍🦼‍➡' => 'человек в кресле-коляске с мотором: очень светлый тон кожи , направленные вправо',
+    '🧑🏼‍🦼‍➡' => 'человек в кресле-коляске с мотором: светлый тон кожи , направленные вправо',
+    '🧑🏽‍🦼‍➡' => 'человек в кресле-коляске с мотором: средний тон кожи , направленные вправо',
+    '🧑🏾‍🦼‍➡' => 'человек в кресле-коляске с мотором: темный тон кожи , направленные вправо',
+    '🧑🏿‍🦼‍➡' => 'человек в кресле-коляске с мотором: очень темный тон кожи , направленные вправо',
+    '👨🏻‍🦼‍➡' => 'мужчина в электрическом кресле-коляске: очень светлый тон кожи , направленные вправо',
+    '👨🏼‍🦼‍➡' => 'мужчина в электрическом кресле-коляске: светлый тон кожи , направленные вправо',
+    '👨🏽‍🦼‍➡' => 'мужчина в электрическом кресле-коляске: средний тон кожи , направленные вправо',
+    '👨🏾‍🦼‍➡' => 'мужчина в электрическом кресле-коляске: темный тон кожи , направленные вправо',
+    '👨🏿‍🦼‍➡' => 'мужчина в электрическом кресле-коляске: очень темный тон кожи , направленные вправо',
+    '👩🏻‍🦼‍➡' => 'женщина в электрическом кресле-коляске: очень светлый тон кожи , направленные вправо',
+    '👩🏼‍🦼‍➡' => 'женщина в электрическом кресле-коляске: светлый тон кожи , направленные вправо',
+    '👩🏽‍🦼‍➡' => 'женщина в электрическом кресле-коляске: средний тон кожи , направленные вправо',
+    '👩🏾‍🦼‍➡' => 'женщина в электрическом кресле-коляске: темный тон кожи , направленные вправо',
+    '👩🏿‍🦼‍➡' => 'женщина в электрическом кресле-коляске: очень темный тон кожи , направленные вправо',
+    '🧑🏻‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом: очень светлый тон кожи , направленные вправо',
+    '🧑🏼‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом: светлый тон кожи , направленные вправо',
+    '🧑🏽‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом: средний тон кожи , направленные вправо',
+    '🧑🏾‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом: темный тон кожи , направленные вправо',
+    '🧑🏿‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом: очень темный тон кожи , направленные вправо',
+    '👨🏻‍🦽‍➡' => 'мужчина в ручном кресле-коляске: очень светлый тон кожи , направленные вправо',
+    '👨🏼‍🦽‍➡' => 'мужчина в ручном кресле-коляске: светлый тон кожи , направленные вправо',
+    '👨🏽‍🦽‍➡' => 'мужчина в ручном кресле-коляске: средний тон кожи , направленные вправо',
+    '👨🏾‍🦽‍➡' => 'мужчина в ручном кресле-коляске: темный тон кожи , направленные вправо',
+    '👨🏿‍🦽‍➡' => 'мужчина в ручном кресле-коляске: очень темный тон кожи , направленные вправо',
+    '👩🏻‍🦽‍➡' => 'женщина в ручном кресле-коляске: очень светлый тон кожи , направленные вправо',
+    '👩🏼‍🦽‍➡' => 'женщина в ручном кресле-коляске: светлый тон кожи , направленные вправо',
+    '👩🏽‍🦽‍➡' => 'женщина в ручном кресле-коляске: средний тон кожи , направленные вправо',
+    '👩🏾‍🦽‍➡' => 'женщина в ручном кресле-коляске: темный тон кожи , направленные вправо',
+    '👩🏿‍🦽‍➡' => 'женщина в ручном кресле-коляске: очень темный тон кожи , направленные вправо',
+    '🏃🏻‍♀‍➡' => 'женщина бежит: очень светлый тон кожи , направленные вправо',
+    '🏃🏼‍♀‍➡' => 'женщина бежит: светлый тон кожи , направленные вправо',
+    '🏃🏽‍♀‍➡' => 'женщина бежит: средний тон кожи , направленные вправо',
+    '🏃🏾‍♀‍➡' => 'женщина бежит: темный тон кожи , направленные вправо',
+    '🏃🏿‍♀‍➡' => 'женщина бежит: очень темный тон кожи , направленные вправо',
+    '🏃🏻‍♂‍➡' => 'мужчина бежит: очень светлый тон кожи , направленные вправо',
+    '🏃🏼‍♂‍➡' => 'мужчина бежит: светлый тон кожи , направленные вправо',
+    '🏃🏽‍♂‍➡' => 'мужчина бежит: средний тон кожи , направленные вправо',
+    '🏃🏾‍♂‍➡' => 'мужчина бежит: темный тон кожи , направленные вправо',
+    '🏃🏿‍♂‍➡' => 'мужчина бежит: очень темный тон кожи , направленные вправо',
     '🫱🏻‍🫲🏼' => 'рукопожатие: очень светлый тон кожи светлый тон кожи',
     '🫱🏻‍🫲🏽' => 'рукопожатие: очень светлый тон кожи средний тон кожи',
     '🫱🏻‍🫲🏾' => 'рукопожатие: очень светлый тон кожи темный тон кожи',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'рукопожатие: очень темный тон кожи светлый тон кожи',
     '🫱🏿‍🫲🏽' => 'рукопожатие: очень темный тон кожи средний тон кожи',
     '🫱🏿‍🫲🏾' => 'рукопожатие: очень темный тон кожи темный тон кожи',
-    '🚶‍♀‍➡' => 'женщина идет, направленные вправо',
-    '🚶‍♂‍➡' => 'мужчина идет, направленные вправо',
-    '🧎‍♀‍➡' => 'женщина на коленях, направленные вправо',
-    '🧎‍♂‍➡' => 'мужчина на коленях, направленные вправо',
-    '🧑‍🦯‍➡' => 'человек с белой тростью, направленные вправо',
-    '👨‍🦯‍➡' => 'мужчина с тростью для ходьбы, направленные вправо',
-    '👩‍🦯‍➡' => 'женщина с тростью для ходьбы, направленные вправо',
-    '🧑‍🦼‍➡' => 'человек в кресле-коляске с мотором, направленные вправо',
-    '👨‍🦼‍➡' => 'мужчина в электрическом кресле-коляске, направленные вправо',
-    '👩‍🦼‍➡' => 'женщина в электрическом кресле-коляске, направленные вправо',
-    '🧑‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом, направленные вправо',
-    '👨‍🦽‍➡' => 'мужчина в ручном кресле-коляске, направленные вправо',
-    '👩‍🦽‍➡' => 'женщина в ручном кресле-коляске, направленные вправо',
-    '🏃‍♀‍➡' => 'женщина бежит, направленные вправо',
-    '🏃‍♂‍➡' => 'мужчина бежит, направленные вправо',
+    '🚶‍♀‍➡' => 'женщина идет: , направленные вправо',
+    '🚶‍♂‍➡' => 'мужчина идет: , направленные вправо',
+    '🧎‍♀‍➡' => 'женщина на коленях: , направленные вправо',
+    '🧎‍♂‍➡' => 'мужчина на коленях: , направленные вправо',
+    '🧑‍🦯‍➡' => 'человек с белой тростью: , направленные вправо',
+    '👨‍🦯‍➡' => 'мужчина с тростью для ходьбы: , направленные вправо',
+    '👩‍🦯‍➡' => 'женщина с тростью для ходьбы: , направленные вправо',
+    '🧑‍🦼‍➡' => 'человек в кресле-коляске с мотором: , направленные вправо',
+    '👨‍🦼‍➡' => 'мужчина в электрическом кресле-коляске: , направленные вправо',
+    '👩‍🦼‍➡' => 'женщина в электрическом кресле-коляске: , направленные вправо',
+    '🧑‍🦽‍➡' => 'человек в кресле-коляске с ручным приводом: , направленные вправо',
+    '👨‍🦽‍➡' => 'мужчина в ручном кресле-коляске: , направленные вправо',
+    '👩‍🦽‍➡' => 'женщина в ручном кресле-коляске: , направленные вправо',
+    '🏃‍♀‍➡' => 'женщина бежит: , направленные вправо',
+    '🏃‍♂‍➡' => 'мужчина бежит: , направленные вправо',
     '👩‍❤‍👨' => 'влюбленная пара: женщина мужчина',
     '👨‍❤‍👨' => 'влюбленная пара: мужчина мужчина',
     '👩‍❤‍👩' => 'влюбленная пара: женщина женщина',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'взрослый: средний тон кожи без волос',
     '🧑🏾‍🦲' => 'взрослый: темный тон кожи без волос',
     '🧑🏿‍🦲' => 'взрослый: очень темный тон кожи без волос',
+    '🧑🏻‍🩰' => 'артист балета: очень светлый тон кожи',
+    '🧑🏼‍🩰' => 'артист балета: светлый тон кожи',
+    '🧑🏽‍🩰' => 'артист балета: средний тон кожи',
+    '🧑🏾‍🩰' => 'артист балета: темный тон кожи',
+    '🧑🏿‍🩰' => 'артист балета: очень темный тон кожи',
     '🧔🏻‍♂' => 'бородатый мужчина: очень светлый тон кожи',
     '🧔🏼‍♂' => 'бородатый мужчина: светлый тон кожи',
     '🧔🏽‍♂' => 'бородатый мужчина: средний тон кожи',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'женщина идет: средний тон кожи',
     '🚶🏾‍♀' => 'женщина идет: темный тон кожи',
     '🚶🏿‍♀' => 'женщина идет: очень темный тон кожи',
-    '🚶🏻‍➡' => 'человек идет, направленные вправо',
-    '🚶🏼‍➡' => 'человек идет, направленные вправо',
-    '🚶🏽‍➡' => 'человек идет, направленные вправо',
-    '🚶🏾‍➡' => 'человек идет, направленные вправо',
-    '🚶🏿‍➡' => 'человек идет, направленные вправо',
+    '🚶🏻‍➡' => 'человек идет: очень светлый тон кожи , направленные вправо',
+    '🚶🏼‍➡' => 'человек идет: светлый тон кожи , направленные вправо',
+    '🚶🏽‍➡' => 'человек идет: средний тон кожи , направленные вправо',
+    '🚶🏾‍➡' => 'человек идет: темный тон кожи , направленные вправо',
+    '🚶🏿‍➡' => 'человек идет: очень темный тон кожи , направленные вправо',
     '🧍🏻‍♂' => 'мужчина стоит: очень светлый тон кожи',
     '🧍🏼‍♂' => 'мужчина стоит: светлый тон кожи',
     '🧍🏽‍♂' => 'мужчина стоит: средний тон кожи',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'женщина на коленях: средний тон кожи',
     '🧎🏾‍♀' => 'женщина на коленях: темный тон кожи',
     '🧎🏿‍♀' => 'женщина на коленях: очень темный тон кожи',
-    '🧎🏻‍➡' => 'человек на коленях, направленные вправо',
-    '🧎🏼‍➡' => 'человек на коленях, направленные вправо',
-    '🧎🏽‍➡' => 'человек на коленях, направленные вправо',
-    '🧎🏾‍➡' => 'человек на коленях, направленные вправо',
-    '🧎🏿‍➡' => 'человек на коленях, направленные вправо',
+    '🧎🏻‍➡' => 'человек на коленях: очень светлый тон кожи , направленные вправо',
+    '🧎🏼‍➡' => 'человек на коленях: светлый тон кожи , направленные вправо',
+    '🧎🏽‍➡' => 'человек на коленях: средний тон кожи , направленные вправо',
+    '🧎🏾‍➡' => 'человек на коленях: темный тон кожи , направленные вправо',
+    '🧎🏿‍➡' => 'человек на коленях: очень темный тон кожи , направленные вправо',
     '🧑🏻‍🦯' => 'человек с белой тростью: очень светлый тон кожи',
     '🧑🏼‍🦯' => 'человек с белой тростью: светлый тон кожи',
     '🧑🏽‍🦯' => 'человек с белой тростью: средний тон кожи',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'женщина бежит: средний тон кожи',
     '🏃🏾‍♀' => 'женщина бежит: темный тон кожи',
     '🏃🏿‍♀' => 'женщина бежит: очень темный тон кожи',
-    '🏃🏻‍➡' => 'человек бежит, направленные вправо',
-    '🏃🏼‍➡' => 'человек бежит, направленные вправо',
-    '🏃🏽‍➡' => 'человек бежит, направленные вправо',
-    '🏃🏾‍➡' => 'человек бежит, направленные вправо',
-    '🏃🏿‍➡' => 'человек бежит, направленные вправо',
+    '🏃🏻‍➡' => 'человек бежит: очень светлый тон кожи , направленные вправо',
+    '🏃🏼‍➡' => 'человек бежит: светлый тон кожи , направленные вправо',
+    '🏃🏽‍➡' => 'человек бежит: средний тон кожи , направленные вправо',
+    '🏃🏾‍➡' => 'человек бежит: темный тон кожи , направленные вправо',
+    '🏃🏿‍➡' => 'человек бежит: очень темный тон кожи , направленные вправо',
+    '👯🏻‍♀' => 'женщины с ушами кролика: очень светлый тон кожи',
+    '👯🏼‍♀' => 'женщины с ушами кролика: светлый тон кожи',
+    '👯🏽‍♀' => 'женщины с ушами кролика: средний тон кожи',
+    '👯🏾‍♀' => 'женщины с ушами кролика: темный тон кожи',
+    '👯🏿‍♀' => 'женщины с ушами кролика: очень темный тон кожи',
+    '👯🏻‍♂' => 'мужчины с ушами кролика: очень светлый тон кожи',
+    '👯🏼‍♂' => 'мужчины с ушами кролика: светлый тон кожи',
+    '👯🏽‍♂' => 'мужчины с ушами кролика: средний тон кожи',
+    '👯🏾‍♂' => 'мужчины с ушами кролика: темный тон кожи',
+    '👯🏿‍♂' => 'мужчины с ушами кролика: очень темный тон кожи',
     '🧖🏻‍♂' => 'мужчина в бане: очень светлый тон кожи',
     '🧖🏼‍♂' => 'мужчина в бане: светлый тон кожи',
     '🧖🏽‍♂' => 'мужчина в бане: средний тон кожи',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'женщина-акробат: средний тон кожи',
     '🤸🏾‍♀' => 'женщина-акробат: темный тон кожи',
     '🤸🏿‍♀' => 'женщина-акробат: очень темный тон кожи',
+    '🤼🏻‍♀' => 'женщины-борцы: очень светлый тон кожи',
+    '🤼🏼‍♀' => 'женщины-борцы: светлый тон кожи',
+    '🤼🏽‍♀' => 'женщины-борцы: средний тон кожи',
+    '🤼🏾‍♀' => 'женщины-борцы: темный тон кожи',
+    '🤼🏿‍♀' => 'женщины-борцы: очень темный тон кожи',
+    '🤼🏻‍♂' => 'мужчины-борцы: очень светлый тон кожи',
+    '🤼🏼‍♂' => 'мужчины-борцы: светлый тон кожи',
+    '🤼🏽‍♂' => 'мужчины-борцы: средний тон кожи',
+    '🤼🏾‍♂' => 'мужчины-борцы: темный тон кожи',
+    '🤼🏿‍♂' => 'мужчины-борцы: очень темный тон кожи',
     '🤽🏻‍♂' => 'мужчина играет в водное поло: очень светлый тон кожи',
     '🤽🏼‍♂' => 'мужчина играет в водное поло: светлый тон кожи',
     '🤽🏽‍♂' => 'мужчина играет в водное поло: средний тон кожи',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'женщина: кудрявые волосы',
     '👩‍🦳' => 'женщина: седые волосы',
     '👩‍🦲' => 'женщина: без волос',
-    '🚶‍➡' => 'человек идет, направленные вправо',
-    '🧎‍➡' => 'человек на коленях, направленные вправо',
-    '🏃‍➡' => 'человек бежит, направленные вправо',
+    '🚶‍➡' => 'человек идет: , направленные вправо',
+    '🧎‍➡' => 'человек на коленях: , направленные вправо',
+    '🏃‍➡' => 'человек бежит: , направленные вправо',
     '👨‍👦' => 'семья: мужчина мальчик',
     '👨‍👧' => 'семья: мужчина девочка',
     '👩‍👦' => 'семья: женщина мальчик',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'женщина в ручном кресле-коляске',
     '🏃‍♂' => 'мужчина бежит',
     '🏃‍♀' => 'женщина бежит',
+    '🧑‍🩰' => 'артист балета',
     '👯‍♂' => 'мужчины с ушами кролика',
     '👯‍♀' => 'женщины с ушами кролика',
     '🧖‍♂' => 'мужчина в бане',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'бизнесмен в воздухе: средний тон кожи',
     '🕴🏾' => 'бизнесмен в воздухе: темный тон кожи',
     '🕴🏿' => 'бизнесмен в воздухе: очень темный тон кожи',
+    '👯🏻' => 'люди с ушами кролика: очень светлый тон кожи',
+    '👯🏼' => 'люди с ушами кролика: светлый тон кожи',
+    '👯🏽' => 'люди с ушами кролика: средний тон кожи',
+    '👯🏾' => 'люди с ушами кролика: темный тон кожи',
+    '👯🏿' => 'люди с ушами кролика: очень темный тон кожи',
     '🧖🏻' => 'человек в бане: очень светлый тон кожи',
     '🧖🏼' => 'человек в бане: светлый тон кожи',
     '🧖🏽' => 'человек в бане: средний тон кожи',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'акробатический трюк: средний тон кожи',
     '🤸🏾' => 'акробатический трюк: темный тон кожи',
     '🤸🏿' => 'акробатический трюк: очень темный тон кожи',
+    '🤼🏻' => 'борцы: очень светлый тон кожи',
+    '🤼🏼' => 'борцы: светлый тон кожи',
+    '🤼🏽' => 'борцы: средний тон кожи',
+    '🤼🏾' => 'борцы: темный тон кожи',
+    '🤼🏿' => 'борцы: очень темный тон кожи',
     '🤽🏻' => 'водное поло: очень светлый тон кожи',
     '🤽🏼' => 'водное поло: светлый тон кожи',
     '🤽🏽' => 'водное поло: средний тон кожи',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'флаг: Китай',
     '🇨🇴' => 'флаг: Колумбия',
     '🇨🇵' => 'флаг: о-в Клиппертон',
+    '🇨🇶' => 'флаг: Сарк',
     '🇨🇷' => 'флаг: Коста-Рика',
     '🇨🇺' => 'флаг: Куба',
     '🇨🇻' => 'флаг: Кабо-Верде',
@@ -2390,13 +2547,6 @@
     '🏽' => 'средний тон кожи',
     '🏾' => 'темный тон кожи',
     '🏿' => 'очень темный тон кожи',
-    '🪉' => 'арфа',
-    '🪏' => 'лопата',
-    '🪾' => 'дерево без листвы',
-    '🫆' => 'отпечаток пальца',
-    '🫜' => 'корнеплод',
-    '🫟' => 'клякса',
-    '🫩' => 'лицо с мешками под глазами',
     '😀' => 'широко улыбается',
     '😃' => 'смеется',
     '😄' => 'смеется с закрытыми глазами',
@@ -2450,6 +2600,7 @@
     '😪' => 'хочет спать',
     '🤤' => 'пускает слюни',
     '😴' => 'спит',
+    '🫩' => 'лицо с мешками под глазами',
     '😷' => 'в медицинской маске',
     '🤒' => 'с градусником во рту',
     '🤕' => 'с перевязанной головой',
@@ -2476,6 +2627,7 @@
     '😯' => 'неприятный сюрприз',
     '😲' => 'в шоке',
     '😳' => 'краснеет',
+    '🫪' => 'лицо перекосило',
     '🥺' => 'умоляет',
     '🥹' => 'еле сдерживает слезы',
     '😦' => 'в изумлении',
@@ -2547,6 +2699,7 @@
     '💋' => 'след от поцелуя',
     '💯' => 'сто баллов',
     '💢' => 'значок «гнев»',
+    '🫯' => 'драка',
     '💥' => 'взрыв',
     '💫' => 'кружащаяся звезда',
     '💦' => 'капли пота',
@@ -2670,6 +2823,7 @@
     '🧞' => 'джинн',
     '🧟' => 'зомби',
     '🧌' => 'тролль',
+    '🫈' => 'снежный человек',
     '💆' => 'человеку массируют лицо',
     '💇' => 'человек у парикмахера',
     '🚶' => 'человек идет',
@@ -2713,6 +2867,7 @@
     '🫂' => 'обнимающиеся люди',
     '👪' => 'семья',
     '👣' => 'следы',
+    '🫆' => 'отпечаток пальца',
     '🦰' => 'рыжие волосы',
     '🦱' => 'кудрявые волосы',
     '🦳' => 'седые волосы',
@@ -2812,6 +2967,7 @@
     '🐳' => 'кит с фонтанчиком',
     '🐋' => 'кит',
     '🐬' => 'дельфин',
+    '🫍' => 'косатка',
     '🦭' => 'тюлень',
     '🐟' => 'рыба',
     '🐠' => 'тропическая рыба',
@@ -2821,6 +2977,11 @@
     '🐚' => 'раковина',
     '🪸' => 'коралл',
     '🪼' => 'медуза',
+    '🦀' => 'краб',
+    '🦞' => 'омар',
+    '🦐' => 'креветка',
+    '🦑' => 'кальмар',
+    '🦪' => 'устрица',
     '🐌' => 'улитка',
     '🦋' => 'бабочка',
     '🐛' => 'гусеница',
@@ -2865,6 +3026,7 @@
     '🪹' => 'пустое гнездо',
     '🪺' => 'гнездо с яйцами',
     '🍄' => 'гриб',
+    '🪾' => 'дерево без листвы',
     '🍇' => 'виноград',
     '🍈' => 'дыня',
     '🍉' => 'арбуз',
@@ -2901,6 +3063,7 @@
     '🌰' => 'каштан',
     '🫚' => 'корень имбиря',
     '🫛' => 'стручок гороха',
+    '🫜' => 'корнеплод',
     '🍞' => 'хлеб',
     '🥐' => 'круассан',
     '🥖' => 'багет',
@@ -2952,11 +3115,6 @@
     '🥟' => 'вареник',
     '🥠' => 'печенье с предсказанием',
     '🥡' => 'коробка для еды на вынос',
-    '🦀' => 'краб',
-    '🦞' => 'омар',
-    '🦐' => 'креветка',
-    '🦑' => 'кальмар',
-    '🦪' => 'устрица',
     '🍦' => 'мороженое в стаканчике',
     '🍧' => 'мороженое в креманке',
     '🍨' => 'мороженое',
@@ -3007,6 +3165,7 @@
     '🧭' => 'компас',
     '🏔' => 'гора со снежной шапкой',
     '⛰' => 'гора',
+    '🛘' => 'оползень',
     '🌋' => 'вулкан',
     '🗻' => 'Фудзияма',
     '🏕' => 'кемпинг',
@@ -3367,16 +3526,18 @@
     '🎧' => 'наушники',
     '📻' => 'радио',
     '🎷' => 'саксофон',
+    '🎺' => 'труба',
+    '🪊' => 'тромбон',
     '🪗' => 'аккордеон',
     '🎸' => 'гитара',
     '🎹' => 'клавишные',
-    '🎺' => 'труба',
     '🎻' => 'скрипка',
     '🪕' => 'банджо',
     '🥁' => 'барабан',
     '🪘' => 'конга',
     '🪇' => 'маракасы',
     '🪈' => 'флейта',
+    '🪉' => 'арфа',
     '📱' => 'мобильный телефон',
     '📲' => 'входящий вызов',
     '☎' => 'телефон',
@@ -3430,8 +3591,9 @@
     '📑' => 'стикеры-закладки',
     '🔖' => 'закладка',
     '🏷' => 'бирка',
-    '💰' => 'мешок денег',
     '🪙' => 'монета',
+    '💰' => 'мешок денег',
+    '🪎' => 'сундук с сокровищами',
     '💴' => 'банкнота иены',
     '💵' => 'банкнота доллара',
     '💶' => 'банкнота евро',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ящик для инструментов',
     '🧲' => 'магнит',
     '🪜' => 'лестница',
+    '🪏' => 'лопата',
     '⚗' => 'перегонный сосуд',
     '🧪' => 'пробирка',
     '🧫' => 'чашка Петри',
@@ -3697,6 +3860,7 @@
     '✴' => 'восьмиконечная звезда',
     '❇' => 'искра',
     '™' => 'товарный знак',
+    '🫟' => 'клякса',
     '🔠' => 'ввод прописными',
     '🔡' => 'ввод строчными',
     '🔢' => 'ввод цифр',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-rw.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'gusomana: umugore, umugore, ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe',
     '👩🏿‍❤‍💋‍👩🏾' => 'gusomana: umugore, umugore, ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe yirabura',
     '👩🏿‍❤‍💋‍👩🏿' => 'gusomana: umugore, umugore, ibara ry’uruhu rwirabura',
+    '🧑🏻‍🫯‍🧑🏼' => 'umuntu uri gukirana: ibara ry’uruhu rwera, ibara ry’uruhu rwera gahoro',
+    '🧑🏻‍🫯‍🧑🏽' => 'umuntu uri gukirana: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe',
+    '🧑🏻‍🫯‍🧑🏾' => 'umuntu uri gukirana: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe yirabura',
+    '🧑🏻‍🫯‍🧑🏿' => 'umuntu uri gukirana: ibara ry’uruhu rwera, ibara ry’uruhu rwirabura',
+    '🧑🏼‍🫯‍🧑🏻' => 'umuntu uri gukirana: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwera',
+    '🧑🏼‍🫯‍🧑🏽' => 'umuntu uri gukirana: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe',
+    '🧑🏼‍🫯‍🧑🏾' => 'umuntu uri gukirana: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe yirabura',
+    '🧑🏼‍🫯‍🧑🏿' => 'umuntu uri gukirana: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwirabura',
+    '🧑🏽‍🫯‍🧑🏻' => 'umuntu uri gukirana: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera',
+    '🧑🏽‍🫯‍🧑🏼' => 'umuntu uri gukirana: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera gahoro',
+    '🧑🏽‍🫯‍🧑🏾' => 'umuntu uri gukirana: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rw’inzobe yirabura',
+    '🧑🏽‍🫯‍🧑🏿' => 'umuntu uri gukirana: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwirabura',
+    '🧑🏾‍🫯‍🧑🏻' => 'umuntu uri gukirana: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera',
+    '🧑🏾‍🫯‍🧑🏼' => 'umuntu uri gukirana: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera gahoro',
+    '🧑🏾‍🫯‍🧑🏽' => 'umuntu uri gukirana: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rw’inzobe',
+    '🧑🏾‍🫯‍🧑🏿' => 'umuntu uri gukirana: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwirabura',
+    '🧑🏿‍🫯‍🧑🏻' => 'umuntu uri gukirana: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera',
+    '🧑🏿‍🫯‍🧑🏼' => 'umuntu uri gukirana: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera gahoro',
+    '🧑🏿‍🫯‍🧑🏽' => 'umuntu uri gukirana: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe',
+    '🧑🏿‍🫯‍🧑🏾' => 'umuntu uri gukirana: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe yirabura',
     '🧑🏻‍❤‍🧑🏼' => 'ikupule n’umutima: umuntu mukuru, umuntu mukuru, ibara ry’uruhu rwera, ibara ry’uruhu rwera gahoro',
     '🧑🏻‍❤‍🧑🏽' => 'ikupule n’umutima: umuntu mukuru, umuntu mukuru, ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe',
     '🧑🏻‍❤‍🧑🏾' => 'ikupule n’umutima: umuntu mukuru, umuntu mukuru, ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe yirabura',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ikupule n’umutima: umuntu mukuru, umuntu mukuru, ibara ry’uruhu rwirabura, ibara ry’uruhu rwera gahoro',
     '🧑🏿‍❤‍🧑🏽' => 'ikupule n’umutima: umuntu mukuru, umuntu mukuru, ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe',
     '🧑🏿‍❤‍🧑🏾' => 'ikupule n’umutima: umuntu mukuru, umuntu mukuru, ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe yirabura',
+    '🧑🏻‍🐰‍🧑🏼' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwera, ibara ry’uruhu rwera gahoro',
+    '🧑🏻‍🐰‍🧑🏽' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe',
+    '🧑🏻‍🐰‍🧑🏾' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe yirabura',
+    '🧑🏻‍🐰‍🧑🏿' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwera, ibara ry’uruhu rwirabura',
+    '🧑🏼‍🐰‍🧑🏻' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwera',
+    '🧑🏼‍🐰‍🧑🏽' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe',
+    '🧑🏼‍🐰‍🧑🏾' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe yirabura',
+    '🧑🏼‍🐰‍🧑🏿' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwirabura',
+    '🧑🏽‍🐰‍🧑🏻' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera',
+    '🧑🏽‍🐰‍🧑🏼' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera gahoro',
+    '🧑🏽‍🐰‍🧑🏾' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rw’inzobe yirabura',
+    '🧑🏽‍🐰‍🧑🏿' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwirabura',
+    '🧑🏾‍🐰‍🧑🏻' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera',
+    '🧑🏾‍🐰‍🧑🏼' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera gahoro',
+    '🧑🏾‍🐰‍🧑🏽' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rw’inzobe',
+    '🧑🏾‍🐰‍🧑🏿' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwirabura',
+    '🧑🏿‍🐰‍🧑🏻' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera',
+    '🧑🏿‍🐰‍🧑🏼' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera gahoro',
+    '🧑🏿‍🐰‍🧑🏽' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe',
+    '🧑🏿‍🐰‍🧑🏾' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe yirabura',
+    '👨🏻‍🫯‍👨🏼' => 'abagabo barushanwa: ibara ry’uruhu rwera, ibara ry’uruhu rwera gahoro',
+    '👨🏻‍🫯‍👨🏽' => 'abagabo barushanwa: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe',
+    '👨🏻‍🫯‍👨🏾' => 'abagabo barushanwa: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe yirabura',
+    '👨🏻‍🫯‍👨🏿' => 'abagabo barushanwa: ibara ry’uruhu rwera, ibara ry’uruhu rwirabura',
+    '👨🏼‍🫯‍👨🏻' => 'abagabo barushanwa: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwera',
+    '👨🏼‍🫯‍👨🏽' => 'abagabo barushanwa: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe',
+    '👨🏼‍🫯‍👨🏾' => 'abagabo barushanwa: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe yirabura',
+    '👨🏼‍🫯‍👨🏿' => 'abagabo barushanwa: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwirabura',
+    '👨🏽‍🫯‍👨🏻' => 'abagabo barushanwa: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera',
+    '👨🏽‍🫯‍👨🏼' => 'abagabo barushanwa: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera gahoro',
+    '👨🏽‍🫯‍👨🏾' => 'abagabo barushanwa: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rw’inzobe yirabura',
+    '👨🏽‍🫯‍👨🏿' => 'abagabo barushanwa: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwirabura',
+    '👨🏾‍🫯‍👨🏻' => 'abagabo barushanwa: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera',
+    '👨🏾‍🫯‍👨🏼' => 'abagabo barushanwa: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera gahoro',
+    '👨🏾‍🫯‍👨🏽' => 'abagabo barushanwa: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rw’inzobe',
+    '👨🏾‍🫯‍👨🏿' => 'abagabo barushanwa: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwirabura',
+    '👨🏿‍🫯‍👨🏻' => 'abagabo barushanwa: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera',
+    '👨🏿‍🫯‍👨🏼' => 'abagabo barushanwa: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera gahoro',
+    '👨🏿‍🫯‍👨🏽' => 'abagabo barushanwa: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe',
+    '👨🏿‍🫯‍👨🏾' => 'abagabo barushanwa: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe yirabura',
     '👨🏻‍❤‍👨🏻' => 'ikupule n’umutima: umugabo, umugabo, ibara ry’uruhu rwera',
     '👨🏻‍❤‍👨🏼' => 'ikupule n’umutima: umugabo, umugabo, ibara ry’uruhu rwera, ibara ry’uruhu rwera gahoro',
     '👨🏻‍❤‍👨🏽' => 'ikupule n’umutima: umugabo, umugabo, ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ikupule n’umutima: umugabo, umugabo, ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe',
     '👨🏿‍❤‍👨🏾' => 'ikupule n’umutima: umugabo, umugabo, ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe yirabura',
     '👨🏿‍❤‍👨🏿' => 'ikupule n’umutima: umugabo, umugabo, ibara ry’uruhu rwirabura',
+    '👨🏻‍🐰‍👨🏼' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera, ibara ry’uruhu rwera gahoro',
+    '👨🏻‍🐰‍👨🏽' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe',
+    '👨🏻‍🐰‍👨🏾' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe yirabura',
+    '👨🏻‍🐰‍👨🏿' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera, ibara ry’uruhu rwirabura',
+    '👨🏼‍🐰‍👨🏻' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwera',
+    '👨🏼‍🐰‍👨🏽' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe',
+    '👨🏼‍🐰‍👨🏾' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe yirabura',
+    '👨🏼‍🐰‍👨🏿' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwirabura',
+    '👨🏽‍🐰‍👨🏻' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera',
+    '👨🏽‍🐰‍👨🏼' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera gahoro',
+    '👨🏽‍🐰‍👨🏾' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rw’inzobe yirabura',
+    '👨🏽‍🐰‍👨🏿' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwirabura',
+    '👨🏾‍🐰‍👨🏻' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera',
+    '👨🏾‍🐰‍👨🏼' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera gahoro',
+    '👨🏾‍🐰‍👨🏽' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rw’inzobe',
+    '👨🏾‍🐰‍👨🏿' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwirabura',
+    '👨🏿‍🐰‍👨🏻' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera',
+    '👨🏿‍🐰‍👨🏼' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera gahoro',
+    '👨🏿‍🐰‍👨🏽' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe',
+    '👨🏿‍🐰‍👨🏾' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe yirabura',
+    '👩🏻‍🫯‍👩🏼' => 'abagore barushanwa: ibara ry’uruhu rwera, ibara ry’uruhu rwera gahoro',
+    '👩🏻‍🫯‍👩🏽' => 'abagore barushanwa: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe',
+    '👩🏻‍🫯‍👩🏾' => 'abagore barushanwa: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe yirabura',
+    '👩🏻‍🫯‍👩🏿' => 'abagore barushanwa: ibara ry’uruhu rwera, ibara ry’uruhu rwirabura',
+    '👩🏼‍🫯‍👩🏻' => 'abagore barushanwa: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwera',
+    '👩🏼‍🫯‍👩🏽' => 'abagore barushanwa: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe',
+    '👩🏼‍🫯‍👩🏾' => 'abagore barushanwa: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe yirabura',
+    '👩🏼‍🫯‍👩🏿' => 'abagore barushanwa: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwirabura',
+    '👩🏽‍🫯‍👩🏻' => 'abagore barushanwa: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera',
+    '👩🏽‍🫯‍👩🏼' => 'abagore barushanwa: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera gahoro',
+    '👩🏽‍🫯‍👩🏾' => 'abagore barushanwa: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rw’inzobe yirabura',
+    '👩🏽‍🫯‍👩🏿' => 'abagore barushanwa: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwirabura',
+    '👩🏾‍🫯‍👩🏻' => 'abagore barushanwa: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera',
+    '👩🏾‍🫯‍👩🏼' => 'abagore barushanwa: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera gahoro',
+    '👩🏾‍🫯‍👩🏽' => 'abagore barushanwa: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rw’inzobe',
+    '👩🏾‍🫯‍👩🏿' => 'abagore barushanwa: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwirabura',
+    '👩🏿‍🫯‍👩🏻' => 'abagore barushanwa: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera',
+    '👩🏿‍🫯‍👩🏼' => 'abagore barushanwa: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera gahoro',
+    '👩🏿‍🫯‍👩🏽' => 'abagore barushanwa: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe',
+    '👩🏿‍🫯‍👩🏾' => 'abagore barushanwa: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe yirabura',
     '👩🏻‍❤‍👨🏻' => 'ikupule n’umutima: umugore, umugabo, ibara ry’uruhu rwera',
     '👩🏻‍❤‍👨🏼' => 'ikupule n’umutima: umugore, umugabo, ibara ry’uruhu rwera, ibara ry’uruhu rwera gahoro',
     '👩🏻‍❤‍👨🏽' => 'ikupule n’umutima: umugore, umugabo, ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ikupule n’umutima: umugore, umugore, ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe',
     '👩🏿‍❤‍👩🏾' => 'ikupule n’umutima: umugore, umugore, ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe yirabura',
     '👩🏿‍❤‍👩🏿' => 'ikupule n’umutima: umugore, umugore, ibara ry’uruhu rwirabura',
+    '👩🏻‍🐰‍👩🏼' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera, ibara ry’uruhu rwera gahoro',
+    '👩🏻‍🐰‍👩🏽' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe',
+    '👩🏻‍🐰‍👩🏾' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe yirabura',
+    '👩🏻‍🐰‍👩🏿' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera, ibara ry’uruhu rwirabura',
+    '👩🏼‍🐰‍👩🏻' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwera',
+    '👩🏼‍🐰‍👩🏽' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe',
+    '👩🏼‍🐰‍👩🏾' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rw’inzobe yirabura',
+    '👩🏼‍🐰‍👩🏿' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera gahoro, ibara ry’uruhu rwirabura',
+    '👩🏽‍🐰‍👩🏻' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera',
+    '👩🏽‍🐰‍👩🏼' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwera gahoro',
+    '👩🏽‍🐰‍👩🏾' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rw’inzobe yirabura',
+    '👩🏽‍🐰‍👩🏿' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe, ibara ry’uruhu rwirabura',
+    '👩🏾‍🐰‍👩🏻' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera',
+    '👩🏾‍🐰‍👩🏼' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwera gahoro',
+    '👩🏾‍🐰‍👩🏽' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rw’inzobe',
+    '👩🏾‍🐰‍👩🏿' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe yirabura, ibara ry’uruhu rwirabura',
+    '👩🏿‍🐰‍👩🏻' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera',
+    '👩🏿‍🐰‍👩🏼' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwirabura, ibara ry’uruhu rwera gahoro',
+    '👩🏿‍🐰‍👩🏽' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe',
+    '👩🏿‍🐰‍👩🏾' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwirabura, ibara ry’uruhu rw’inzobe yirabura',
     '👩🏻‍🤝‍👩🏼' => 'abagore babiri bafatanye ibigaza: ibara ry’uruhu rwera, ibara ry’uruhu rwera gahoro',
     '👩🏻‍🤝‍👩🏽' => 'abagore babiri bafatanye ibigaza: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe',
     '👩🏻‍🤝‍👩🏾' => 'abagore babiri bafatanye ibigaza: ibara ry’uruhu rwera, ibara ry’uruhu rw’inzobe yirabura',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'umugore wirukanka: ibara ry’uruhu rw’inzobe',
     '🏃🏾‍♀' => 'umugore wirukanka: ibara ry’uruhu rw’inzobe yirabura',
     '🏃🏿‍♀' => 'umugore wirukanka: ibara ry’uruhu rwirabura',
+    '👯🏻‍♀' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera',
+    '👯🏼‍♀' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera gahoro',
+    '👯🏽‍♀' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe',
+    '👯🏾‍♀' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe yirabura',
+    '👯🏿‍♀' => 'abagore bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwirabura',
+    '👯🏻‍♂' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera',
+    '👯🏼‍♂' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwera gahoro',
+    '👯🏽‍♂' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe',
+    '👯🏾‍♂' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rw’inzobe yirabura',
+    '👯🏿‍♂' => 'abagabo bambaye amatwi y’urukwavu bakora umunsi mukuru: ibara ry’uruhu rwirabura',
     '🧖🏻‍♂' => 'umugabo uri muri sawuna: ibara ry’uruhu rwera',
     '🧖🏼‍♂' => 'umugabo uri muri sawuna: ibara ry’uruhu rwera gahoro',
     '🧖🏽‍♂' => 'umugabo uri muri sawuna: ibara ry’uruhu rw’inzobe',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'umugore umangamanga: ibara ry’uruhu rw’inzobe',
     '🤸🏾‍♀' => 'umugore umangamanga: ibara ry’uruhu rw’inzobe yirabura',
     '🤸🏿‍♀' => 'umugore umangamanga: ibara ry’uruhu rwirabura',
+    '🤼🏻‍♀' => 'abagore barushanwa: ibara ry’uruhu rwera',
+    '🤼🏼‍♀' => 'abagore barushanwa: ibara ry’uruhu rwera gahoro',
+    '🤼🏽‍♀' => 'abagore barushanwa: ibara ry’uruhu rw’inzobe',
+    '🤼🏾‍♀' => 'abagore barushanwa: ibara ry’uruhu rw’inzobe yirabura',
+    '🤼🏿‍♀' => 'abagore barushanwa: ibara ry’uruhu rwirabura',
+    '🤼🏻‍♂' => 'abagabo barushanwa: ibara ry’uruhu rwera',
+    '🤼🏼‍♂' => 'abagabo barushanwa: ibara ry’uruhu rwera gahoro',
+    '🤼🏽‍♂' => 'abagabo barushanwa: ibara ry’uruhu rw’inzobe',
+    '🤼🏾‍♂' => 'abagabo barushanwa: ibara ry’uruhu rw’inzobe yirabura',
+    '🤼🏿‍♂' => 'abagabo barushanwa: ibara ry’uruhu rwirabura',
     '🤽🏻‍♂' => 'umugabo ukina umukino wa polo wo mu mazi: ibara ry’uruhu rwera',
     '🤽🏼‍♂' => 'umugabo ukina umukino wa polo wo mu mazi: ibara ry’uruhu rwera gahoro',
     '🤽🏽‍♂' => 'umugabo ukina umukino wa polo wo mu mazi: ibara ry’uruhu rw’inzobe',
@@ -1392,6 +1532,11 @@
     '🕴🏽' => 'umuntu wambaye ikositimu uzamuye: ibara ry’uruhu rw’inzobe',
     '🕴🏾' => 'umuntu wambaye ikositimu uzamuye: ibara ry’uruhu rw’inzobe yirabura',
     '🕴🏿' => 'umuntu wambaye ikositimu uzamuye: ibara ry’uruhu rwirabura',
+    '👯🏻' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwera',
+    '👯🏼' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwera gahoro',
+    '👯🏽' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rw’inzobe',
+    '👯🏾' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rw’inzobe yirabura',
+    '👯🏿' => 'abantu bambaye amatwi y’urukwavu bari mu birori: ibara ry’uruhu rwirabura',
     '🧖🏻' => 'umuntu uri muri sawuna: ibara ry’uruhu rwera',
     '🧖🏼' => 'umuntu uri muri sawuna: ibara ry’uruhu rwera gahoro',
     '🧖🏽' => 'umuntu uri muri sawuna: ibara ry’uruhu rw’inzobe',
@@ -1457,6 +1602,11 @@
     '🤸🏽' => 'umuntu uri kumangamanga: ibara ry’uruhu rw’inzobe',
     '🤸🏾' => 'umuntu uri kumangamanga: ibara ry’uruhu rw’inzobe yirabura',
     '🤸🏿' => 'umuntu uri kumangamanga: ibara ry’uruhu rwirabura',
+    '🤼🏻' => 'umuntu uri gukirana: ibara ry’uruhu rwera',
+    '🤼🏼' => 'umuntu uri gukirana: ibara ry’uruhu rwera gahoro',
+    '🤼🏽' => 'umuntu uri gukirana: ibara ry’uruhu rw’inzobe',
+    '🤼🏾' => 'umuntu uri gukirana: ibara ry’uruhu rw’inzobe yirabura',
+    '🤼🏿' => 'umuntu uri gukirana: ibara ry’uruhu rwirabura',
     '🤽🏻' => 'umuntu uri gukina umukino wa water polo: ibara ry’uruhu rwera',
     '🤽🏼' => 'umuntu uri gukina umukino wa water polo: ibara ry’uruhu rwera gahoro',
     '🤽🏽' => 'umuntu uri gukina umukino wa water polo: ibara ry’uruhu rw’inzobe',
@@ -1857,6 +2007,9 @@
     '🦈' => 'roke',
     '🐙' => 'igikoko cyo mumazi',
     '🐚' => 'igikonoshwa',
+    '🦀' => 'karabu',
+    '🦐' => 'kerevete',
+    '🦑' => 'sikwidi',
     '🐌' => 'ikinyamunjonjorerwa',
     '🦋' => 'ikinyugunyugu',
     '🐛' => 'kemura ibibazo',
@@ -1958,9 +2111,6 @@
     '🥟' => 'umugati wokeje',
     '🥠' => 'igisuguti',
     '🥡' => 'agakarito batwaramo ibiryo',
-    '🦀' => 'karabu',
-    '🦐' => 'kerevete',
-    '🦑' => 'sikwidi',
     '🍦' => 'ayisikirimu yoroheje',
     '🍧' => 'urubura rusennye neza',
     '🍨' => 'ayisikirimu',
@@ -2312,9 +2462,9 @@
     '🎧' => 'ekuteri',
     '📻' => 'radiyo',
     '🎷' => 'umwirongi',
+    '🎺' => 'umuduri',
     '🎸' => 'gitari',
     '🎹' => 'sentetizeri',
-    '🎺' => 'umuduri',
     '🎻' => 'inanga',
     '🥁' => 'ingoma',
     '📱' => 'telefone igendanwa',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sat.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sat.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sat.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sat.php	2026-05-20 10:56:49.000000000 +0200
@@ -453,6 +453,7 @@
     '🐟' => 'ᱦᱟᱹᱠᱩ',
     '🐙' => 'ᱤᱨᱟᱹᱞ ᱠᱟᱴᱟ ᱦᱟᱹᱠᱩ',
     '🐚' => 'ᱨᱚᱠᱚᱡ ᱪᱷᱤᱞᱠᱟᱹ',
+    '🦀' => 'ᱠᱟᱴᱠᱚᱢ',
     '🐌' => 'ᱨᱚᱠᱚᱡ',
     '🦋' => 'ᱯᱤᱯᱤᱲᱤᱭᱟᱹ',
     '🐛' => 'ᱩᱨᱩ',
@@ -514,7 +515,6 @@
     '🧂' => 'ᱵᱩᱞᱩᱢ',
     '🍙' => 'ᱫᱟᱠᱟ ᱜᱩᱞᱟᱹᱭ',
     '🍚' => 'ᱤᱥᱤᱱ ᱠᱟᱱ ᱪᱟᱣᱞᱮ',
-    '🦀' => 'ᱠᱟᱴᱠᱚᱢ',
     '🍨' => 'ᱵᱚᱨᱚᱯᱷ ᱪᱷᱟᱞᱮ',
     '🍪' => 'ᱞᱟᱹᱰᱩ',
     '🎂' => 'ᱡᱟᱱᱟᱢ ᱢᱟᱦᱟᱸ ᱯᱤᱴᱷᱟᱹ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sc.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sc.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sc.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sc.php	2026-05-20 10:56:49.000000000 +0200
@@ -621,7 +621,7 @@
     '🇵🇹' => 'bandera: Portogallu',
     '🇵🇼' => 'bandera: Palau',
     '🇵🇾' => 'bandera: Paraguày',
-    '🇶🇦' => 'bandera: Catar',
+    '🇶🇦' => 'bandera: Catàr',
     '🇷🇪' => 'bandera: Riunione',
     '🇷🇴' => 'bandera: Romania',
     '🇷🇸' => 'bandera: Sèrbia',
@@ -693,7 +693,6 @@
     '🏽' => 'pedde de colore mèdiu',
     '🏾' => 'pedde bastante iscura',
     '🏿' => 'pedde iscura',
-    '🪉' => 'arpa',
     '😀' => 'cara risulana',
     '😃' => 'cara risulana cun ogros ispamparriados',
     '😄' => 'cara risulana cun sos ogros chi rident',
@@ -1398,16 +1397,17 @@
     '🎧' => 'cùfias',
     '📻' => 'ràdiu',
     '🎷' => 'sassòfonu',
+    '🎺' => 'trumba',
     '🪗' => 'organitu',
     '🎸' => 'chiterra',
     '🎹' => 'tecladu musicale',
-    '🎺' => 'trumba',
     '🎻' => 'violinu',
     '🪕' => 'banjo',
     '🥁' => 'tamburu',
     '🪘' => 'tamburu longu',
     '🪇' => 'maracas',
     '🪈' => 'flàutu',
+    '🪉' => 'arpa',
     '📱' => 'telefoneddu',
     '📲' => 'telefoneddu cun fritza',
     '☎' => 'telèfonu',
@@ -1461,8 +1461,8 @@
     '📑' => 'etichetas sinnalibru',
     '🔖' => 'sinnalibru',
     '🏷' => 'eticheta',
-    '💰' => 'sacu de dinare',
     '🪙' => 'moneda',
+    '💰' => 'sacu de dinare',
     '💴' => 'banconota in yen',
     '💵' => 'banconota in dòllaros',
     '💶' => 'banconota in èuros',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sd.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sd.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sd.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sd.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'چمي: عورت، عورت، ڪارو رنگ, پڪو رنگ',
     '👩🏿‍❤‍💋‍👩🏾' => 'چمي: عورت، عورت، ڪارو رنگ, وچولو ڪارو رنگ',
     '👩🏿‍❤‍💋‍👩🏿' => 'چمي: عورت، عورت, ڪارو رنگ',
+    '🧑🏻‍🫯‍🧑🏼' => 'ماڻهو ڪشتي وڙهندي: گوري رنگت، وچولي گوري رنگت',
+    '🧑🏻‍🫯‍🧑🏽' => 'ماڻهو ڪشتي وڙهندي: گوري رنگت، پڪو رنگ',
+    '🧑🏻‍🫯‍🧑🏾' => 'ماڻهو ڪشتي وڙهندي: گوري رنگت، وچولو ڪارو رنگ',
+    '🧑🏻‍🫯‍🧑🏿' => 'ماڻهو ڪشتي وڙهندي: گوري رنگت، ڪارو رنگ',
+    '🧑🏼‍🫯‍🧑🏻' => 'ماڻهو ڪشتي وڙهندي: وچولي گوري رنگت، گوري رنگت',
+    '🧑🏼‍🫯‍🧑🏽' => 'ماڻهو ڪشتي وڙهندي: وچولي گوري رنگت، پڪو رنگ',
+    '🧑🏼‍🫯‍🧑🏾' => 'ماڻهو ڪشتي وڙهندي: وچولي گوري رنگت، وچولو ڪارو رنگ',
+    '🧑🏼‍🫯‍🧑🏿' => 'ماڻهو ڪشتي وڙهندي: وچولي گوري رنگت، ڪارو رنگ',
+    '🧑🏽‍🫯‍🧑🏻' => 'ماڻهو ڪشتي وڙهندي: پڪو رنگ، گوري رنگت',
+    '🧑🏽‍🫯‍🧑🏼' => 'ماڻهو ڪشتي وڙهندي: پڪو رنگ، وچولي گوري رنگت',
+    '🧑🏽‍🫯‍🧑🏾' => 'ماڻهو ڪشتي وڙهندي: پڪو رنگ، وچولو ڪارو رنگ',
+    '🧑🏽‍🫯‍🧑🏿' => 'ماڻهو ڪشتي وڙهندي: پڪو رنگ، ڪارو رنگ',
+    '🧑🏾‍🫯‍🧑🏻' => 'ماڻهو ڪشتي وڙهندي: وچولو ڪارو رنگ، گوري رنگت',
+    '🧑🏾‍🫯‍🧑🏼' => 'ماڻهو ڪشتي وڙهندي: وچولو ڪارو رنگ، وچولي گوري رنگت',
+    '🧑🏾‍🫯‍🧑🏽' => 'ماڻهو ڪشتي وڙهندي: وچولو ڪارو رنگ، پڪو رنگ',
+    '🧑🏾‍🫯‍🧑🏿' => 'ماڻهو ڪشتي وڙهندي: وچولو ڪارو رنگ، ڪارو رنگ',
+    '🧑🏿‍🫯‍🧑🏻' => 'ماڻهو ڪشتي وڙهندي: ڪارو رنگ، گوري رنگت',
+    '🧑🏿‍🫯‍🧑🏼' => 'ماڻهو ڪشتي وڙهندي: ڪارو رنگ، وچولي گوري رنگت',
+    '🧑🏿‍🫯‍🧑🏽' => 'ماڻهو ڪشتي وڙهندي: ڪارو رنگ، پڪو رنگ',
+    '🧑🏿‍🫯‍🧑🏾' => 'ماڻهو ڪشتي وڙهندي: ڪارو رنگ، وچولو ڪارو رنگ',
     '🧑🏻‍❤‍🧑🏼' => 'دل سان جوڙو: بالغ، بالغ، گوري رنگت, وچولي گوري رنگت',
     '🧑🏻‍❤‍🧑🏽' => 'دل سان جوڙو: بالغ، بالغ، گوري رنگت, پڪو رنگ',
     '🧑🏻‍❤‍🧑🏾' => 'دل سان جوڙو: بالغ، بالغ، گوري رنگت, وچولو ڪارو رنگ',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'دل سان جوڙو: بالغ، بالغ، ڪارو رنگ, وچولي گوري رنگت',
     '🧑🏿‍❤‍🧑🏽' => 'دل سان جوڙو: بالغ، بالغ، ڪارو رنگ, پڪو رنگ',
     '🧑🏿‍❤‍🧑🏾' => 'دل سان جوڙو: بالغ، بالغ، ڪارو رنگ, وچولو ڪارو رنگ',
+    '🧑🏻‍🐰‍🧑🏼' => 'خرگوش جي ڪنن وارو ماڻهو: گوري رنگت، وچولي گوري رنگت',
+    '🧑🏻‍🐰‍🧑🏽' => 'خرگوش جي ڪنن وارو ماڻهو: گوري رنگت، پڪو رنگ',
+    '🧑🏻‍🐰‍🧑🏾' => 'خرگوش جي ڪنن وارو ماڻهو: گوري رنگت، وچولو ڪارو رنگ',
+    '🧑🏻‍🐰‍🧑🏿' => 'خرگوش جي ڪنن وارو ماڻهو: گوري رنگت، ڪارو رنگ',
+    '🧑🏼‍🐰‍🧑🏻' => 'خرگوش جي ڪنن وارو ماڻهو: وچولي گوري رنگت، گوري رنگت',
+    '🧑🏼‍🐰‍🧑🏽' => 'خرگوش جي ڪنن وارو ماڻهو: وچولي گوري رنگت، پڪو رنگ',
+    '🧑🏼‍🐰‍🧑🏾' => 'خرگوش جي ڪنن وارو ماڻهو: وچولي گوري رنگت، وچولو ڪارو رنگ',
+    '🧑🏼‍🐰‍🧑🏿' => 'خرگوش جي ڪنن وارو ماڻهو: وچولي گوري رنگت، ڪارو رنگ',
+    '🧑🏽‍🐰‍🧑🏻' => 'خرگوش جي ڪنن وارو ماڻهو: پڪو رنگ، گوري رنگت',
+    '🧑🏽‍🐰‍🧑🏼' => 'خرگوش جي ڪنن وارو ماڻهو: پڪو رنگ، وچولي گوري رنگت',
+    '🧑🏽‍🐰‍🧑🏾' => 'خرگوش جي ڪنن وارو ماڻهو: پڪو رنگ، وچولو ڪارو رنگ',
+    '🧑🏽‍🐰‍🧑🏿' => 'خرگوش جي ڪنن وارو ماڻهو: پڪو رنگ، ڪارو رنگ',
+    '🧑🏾‍🐰‍🧑🏻' => 'خرگوش جي ڪنن وارو ماڻهو: وچولو ڪارو رنگ، گوري رنگت',
+    '🧑🏾‍🐰‍🧑🏼' => 'خرگوش جي ڪنن وارو ماڻهو: وچولو ڪارو رنگ، وچولي گوري رنگت',
+    '🧑🏾‍🐰‍🧑🏽' => 'خرگوش جي ڪنن وارو ماڻهو: وچولو ڪارو رنگ، پڪو رنگ',
+    '🧑🏾‍🐰‍🧑🏿' => 'خرگوش جي ڪنن وارو ماڻهو: وچولو ڪارو رنگ، ڪارو رنگ',
+    '🧑🏿‍🐰‍🧑🏻' => 'خرگوش جي ڪنن وارو ماڻهو: ڪارو رنگ، گوري رنگت',
+    '🧑🏿‍🐰‍🧑🏼' => 'خرگوش جي ڪنن وارو ماڻهو: ڪارو رنگ، وچولي گوري رنگت',
+    '🧑🏿‍🐰‍🧑🏽' => 'خرگوش جي ڪنن وارو ماڻهو: ڪارو رنگ، پڪو رنگ',
+    '🧑🏿‍🐰‍🧑🏾' => 'خرگوش جي ڪنن وارو ماڻهو: ڪارو رنگ، وچولو ڪارو رنگ',
+    '👨🏻‍🫯‍👨🏼' => 'مرد ڪشتي وڙهندي: گوري رنگت، وچولي گوري رنگت',
+    '👨🏻‍🫯‍👨🏽' => 'مرد ڪشتي وڙهندي: گوري رنگت، پڪو رنگ',
+    '👨🏻‍🫯‍👨🏾' => 'مرد ڪشتي وڙهندي: گوري رنگت، وچولو ڪارو رنگ',
+    '👨🏻‍🫯‍👨🏿' => 'مرد ڪشتي وڙهندي: گوري رنگت، ڪارو رنگ',
+    '👨🏼‍🫯‍👨🏻' => 'مرد ڪشتي وڙهندي: وچولي گوري رنگت، گوري رنگت',
+    '👨🏼‍🫯‍👨🏽' => 'مرد ڪشتي وڙهندي: وچولي گوري رنگت، پڪو رنگ',
+    '👨🏼‍🫯‍👨🏾' => 'مرد ڪشتي وڙهندي: وچولي گوري رنگت، وچولو ڪارو رنگ',
+    '👨🏼‍🫯‍👨🏿' => 'مرد ڪشتي وڙهندي: وچولي گوري رنگت، ڪارو رنگ',
+    '👨🏽‍🫯‍👨🏻' => 'مرد ڪشتي وڙهندي: پڪو رنگ، گوري رنگت',
+    '👨🏽‍🫯‍👨🏼' => 'مرد ڪشتي وڙهندي: پڪو رنگ، وچولي گوري رنگت',
+    '👨🏽‍🫯‍👨🏾' => 'مرد ڪشتي وڙهندي: پڪو رنگ، وچولو ڪارو رنگ',
+    '👨🏽‍🫯‍👨🏿' => 'مرد ڪشتي وڙهندي: پڪو رنگ، ڪارو رنگ',
+    '👨🏾‍🫯‍👨🏻' => 'مرد ڪشتي وڙهندي: وچولو ڪارو رنگ، گوري رنگت',
+    '👨🏾‍🫯‍👨🏼' => 'مرد ڪشتي وڙهندي: وچولو ڪارو رنگ، وچولي گوري رنگت',
+    '👨🏾‍🫯‍👨🏽' => 'مرد ڪشتي وڙهندي: وچولو ڪارو رنگ، پڪو رنگ',
+    '👨🏾‍🫯‍👨🏿' => 'مرد ڪشتي وڙهندي: وچولو ڪارو رنگ، ڪارو رنگ',
+    '👨🏿‍🫯‍👨🏻' => 'مرد ڪشتي وڙهندي: ڪارو رنگ، گوري رنگت',
+    '👨🏿‍🫯‍👨🏼' => 'مرد ڪشتي وڙهندي: ڪارو رنگ، وچولي گوري رنگت',
+    '👨🏿‍🫯‍👨🏽' => 'مرد ڪشتي وڙهندي: ڪارو رنگ، پڪو رنگ',
+    '👨🏿‍🫯‍👨🏾' => 'مرد ڪشتي وڙهندي: ڪارو رنگ، وچولو ڪارو رنگ',
     '👨🏻‍❤‍👨🏻' => 'دل سان جوڙو: ماڻهو، ماڻهو, گوري رنگت',
     '👨🏻‍❤‍👨🏼' => 'دل سان جوڙو: ماڻهو، ماڻهو، گوري رنگت, وچولي گوري رنگت',
     '👨🏻‍❤‍👨🏽' => 'دل سان جوڙو: ماڻهو، ماڻهو، گوري رنگت, پڪو رنگ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'دل سان جوڙو: ماڻهو، ماڻهو، ڪارو رنگ, پڪو رنگ',
     '👨🏿‍❤‍👨🏾' => 'دل سان جوڙو: ماڻهو، ماڻهو، ڪارو رنگ, وچولو ڪارو رنگ',
     '👨🏿‍❤‍👨🏿' => 'دل سان جوڙو: ماڻهو، ماڻهو, ڪارو رنگ',
+    '👨🏻‍🐰‍👨🏼' => 'خرگوش جي ڪنن وارو مرد: گوري رنگت، وچولي گوري رنگت',
+    '👨🏻‍🐰‍👨🏽' => 'خرگوش جي ڪنن وارو مرد: گوري رنگت، پڪو رنگ',
+    '👨🏻‍🐰‍👨🏾' => 'خرگوش جي ڪنن وارو مرد: گوري رنگت، وچولو ڪارو رنگ',
+    '👨🏻‍🐰‍👨🏿' => 'خرگوش جي ڪنن وارو مرد: گوري رنگت، ڪارو رنگ',
+    '👨🏼‍🐰‍👨🏻' => 'خرگوش جي ڪنن وارو مرد: وچولي گوري رنگت، گوري رنگت',
+    '👨🏼‍🐰‍👨🏽' => 'خرگوش جي ڪنن وارو مرد: وچولي گوري رنگت، پڪو رنگ',
+    '👨🏼‍🐰‍👨🏾' => 'خرگوش جي ڪنن وارو مرد: وچولي گوري رنگت، وچولو ڪارو رنگ',
+    '👨🏼‍🐰‍👨🏿' => 'خرگوش جي ڪنن وارو مرد: وچولي گوري رنگت، ڪارو رنگ',
+    '👨🏽‍🐰‍👨🏻' => 'خرگوش جي ڪنن وارو مرد: پڪو رنگ، گوري رنگت',
+    '👨🏽‍🐰‍👨🏼' => 'خرگوش جي ڪنن وارو مرد: پڪو رنگ، وچولي گوري رنگت',
+    '👨🏽‍🐰‍👨🏾' => 'خرگوش جي ڪنن وارو مرد: پڪو رنگ، وچولو ڪارو رنگ',
+    '👨🏽‍🐰‍👨🏿' => 'خرگوش جي ڪنن وارو مرد: پڪو رنگ، ڪارو رنگ',
+    '👨🏾‍🐰‍👨🏻' => 'خرگوش جي ڪنن وارو مرد: وچولو ڪارو رنگ، گوري رنگت',
+    '👨🏾‍🐰‍👨🏼' => 'خرگوش جي ڪنن وارو مرد: وچولو ڪارو رنگ، وچولي گوري رنگت',
+    '👨🏾‍🐰‍👨🏽' => 'خرگوش جي ڪنن وارو مرد: وچولو ڪارو رنگ، پڪو رنگ',
+    '👨🏾‍🐰‍👨🏿' => 'خرگوش جي ڪنن وارو مرد: وچولو ڪارو رنگ، ڪارو رنگ',
+    '👨🏿‍🐰‍👨🏻' => 'خرگوش جي ڪنن وارو مرد: ڪارو رنگ، گوري رنگت',
+    '👨🏿‍🐰‍👨🏼' => 'خرگوش جي ڪنن وارو مرد: ڪارو رنگ، وچولي گوري رنگت',
+    '👨🏿‍🐰‍👨🏽' => 'خرگوش جي ڪنن وارو مرد: ڪارو رنگ، پڪو رنگ',
+    '👨🏿‍🐰‍👨🏾' => 'خرگوش جي ڪنن وارو مرد: ڪارو رنگ، وچولو ڪارو رنگ',
+    '👩🏻‍🫯‍👩🏼' => 'عورتون ڪشتي وڙهندي: گوري رنگت، وچولي گوري رنگت',
+    '👩🏻‍🫯‍👩🏽' => 'عورتون ڪشتي وڙهندي: گوري رنگت، پڪو رنگ',
+    '👩🏻‍🫯‍👩🏾' => 'عورتون ڪشتي وڙهندي: گوري رنگت، وچولو ڪارو رنگ',
+    '👩🏻‍🫯‍👩🏿' => 'عورتون ڪشتي وڙهندي: گوري رنگت، ڪارو رنگ',
+    '👩🏼‍🫯‍👩🏻' => 'عورتون ڪشتي وڙهندي: وچولي گوري رنگت، گوري رنگت',
+    '👩🏼‍🫯‍👩🏽' => 'عورتون ڪشتي وڙهندي: وچولي گوري رنگت، پڪو رنگ',
+    '👩🏼‍🫯‍👩🏾' => 'عورتون ڪشتي وڙهندي: وچولي گوري رنگت، وچولو ڪارو رنگ',
+    '👩🏼‍🫯‍👩🏿' => 'عورتون ڪشتي وڙهندي: وچولي گوري رنگت، ڪارو رنگ',
+    '👩🏽‍🫯‍👩🏻' => 'عورتون ڪشتي وڙهندي: پڪو رنگ، گوري رنگت',
+    '👩🏽‍🫯‍👩🏼' => 'عورتون ڪشتي وڙهندي: پڪو رنگ، وچولي گوري رنگت',
+    '👩🏽‍🫯‍👩🏾' => 'عورتون ڪشتي وڙهندي: پڪو رنگ، وچولو ڪارو رنگ',
+    '👩🏽‍🫯‍👩🏿' => 'عورتون ڪشتي وڙهندي: پڪو رنگ، ڪارو رنگ',
+    '👩🏾‍🫯‍👩🏻' => 'عورتون ڪشتي وڙهندي: وچولو ڪارو رنگ، گوري رنگت',
+    '👩🏾‍🫯‍👩🏼' => 'عورتون ڪشتي وڙهندي: وچولو ڪارو رنگ، وچولي گوري رنگت',
+    '👩🏾‍🫯‍👩🏽' => 'عورتون ڪشتي وڙهندي: وچولو ڪارو رنگ، پڪو رنگ',
+    '👩🏾‍🫯‍👩🏿' => 'عورتون ڪشتي وڙهندي: وچولو ڪارو رنگ، ڪارو رنگ',
+    '👩🏿‍🫯‍👩🏻' => 'عورتون ڪشتي وڙهندي: ڪارو رنگ، گوري رنگت',
+    '👩🏿‍🫯‍👩🏼' => 'عورتون ڪشتي وڙهندي: ڪارو رنگ، وچولي گوري رنگت',
+    '👩🏿‍🫯‍👩🏽' => 'عورتون ڪشتي وڙهندي: ڪارو رنگ، پڪو رنگ',
+    '👩🏿‍🫯‍👩🏾' => 'عورتون ڪشتي وڙهندي: ڪارو رنگ، وچولو ڪارو رنگ',
     '👩🏻‍❤‍👨🏻' => 'دل سان جوڙو: عورت، ماڻهو, گوري رنگت',
     '👩🏻‍❤‍👨🏼' => 'دل سان جوڙو: عورت، ماڻهو، گوري رنگت, وچولي گوري رنگت',
     '👩🏻‍❤‍👨🏽' => 'دل سان جوڙو: عورت، ماڻهو، گوري رنگت, پڪو رنگ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'دل سان جوڙو: عورت، عورت، ڪارو رنگ, پڪو رنگ',
     '👩🏿‍❤‍👩🏾' => 'دل سان جوڙو: عورت، عورت، ڪارو رنگ, وچولو ڪارو رنگ',
     '👩🏿‍❤‍👩🏿' => 'دل سان جوڙو: عورت، عورت, ڪارو رنگ',
+    '👩🏻‍🐰‍👩🏼' => 'خرگوش جي ڪنن وري عورت: گوري رنگت، وچولي گوري رنگت',
+    '👩🏻‍🐰‍👩🏽' => 'خرگوش جي ڪنن وري عورت: گوري رنگت، پڪو رنگ',
+    '👩🏻‍🐰‍👩🏾' => 'خرگوش جي ڪنن وري عورت: گوري رنگت، وچولو ڪارو رنگ',
+    '👩🏻‍🐰‍👩🏿' => 'خرگوش جي ڪنن وري عورت: گوري رنگت، ڪارو رنگ',
+    '👩🏼‍🐰‍👩🏻' => 'خرگوش جي ڪنن وري عورت: وچولي گوري رنگت، گوري رنگت',
+    '👩🏼‍🐰‍👩🏽' => 'خرگوش جي ڪنن وري عورت: وچولي گوري رنگت، پڪو رنگ',
+    '👩🏼‍🐰‍👩🏾' => 'خرگوش جي ڪنن وري عورت: وچولي گوري رنگت، وچولو ڪارو رنگ',
+    '👩🏼‍🐰‍👩🏿' => 'خرگوش جي ڪنن وري عورت: وچولي گوري رنگت، ڪارو رنگ',
+    '👩🏽‍🐰‍👩🏻' => 'خرگوش جي ڪنن وري عورت: پڪو رنگ، گوري رنگت',
+    '👩🏽‍🐰‍👩🏼' => 'خرگوش جي ڪنن وري عورت: پڪو رنگ، وچولي گوري رنگت',
+    '👩🏽‍🐰‍👩🏾' => 'خرگوش جي ڪنن وري عورت: پڪو رنگ، وچولو ڪارو رنگ',
+    '👩🏽‍🐰‍👩🏿' => 'خرگوش جي ڪنن وري عورت: پڪو رنگ، ڪارو رنگ',
+    '👩🏾‍🐰‍👩🏻' => 'خرگوش جي ڪنن وري عورت: وچولو ڪارو رنگ، گوري رنگت',
+    '👩🏾‍🐰‍👩🏼' => 'خرگوش جي ڪنن وري عورت: وچولو ڪارو رنگ، وچولي گوري رنگت',
+    '👩🏾‍🐰‍👩🏽' => 'خرگوش جي ڪنن وري عورت: وچولو ڪارو رنگ، پڪو رنگ',
+    '👩🏾‍🐰‍👩🏿' => 'خرگوش جي ڪنن وري عورت: وچولو ڪارو رنگ، ڪارو رنگ',
+    '👩🏿‍🐰‍👩🏻' => 'خرگوش جي ڪنن وري عورت: ڪارو رنگ، گوري رنگت',
+    '👩🏿‍🐰‍👩🏼' => 'خرگوش جي ڪنن وري عورت: ڪارو رنگ، وچولي گوري رنگت',
+    '👩🏿‍🐰‍👩🏽' => 'خرگوش جي ڪنن وري عورت: ڪارو رنگ، پڪو رنگ',
+    '👩🏿‍🐰‍👩🏾' => 'خرگوش جي ڪنن وري عورت: ڪارو رنگ، وچولو ڪارو رنگ',
     '🧑🏻‍🤝‍🧑🏻' => 'هٿ جهليل ماڻهو: گوري رنگت',
     '🧑🏻‍🤝‍🧑🏼' => 'هٿ جهليل ماڻهو: گوري رنگت، وچولي گوري رنگت',
     '🧑🏻‍🤝‍🧑🏽' => 'هٿ جهليل ماڻهو: گوري رنگت، پڪو رنگ',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'جهنڊو: اسڪاٽلينڊ',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'جهنڊو: ويلز',
     '🧑‍🧑‍🧒‍🧒' => 'ڪٽنب: بالغ، بالغ، ٻار، ٻار',
-    '🚶🏻‍♀‍➡' => 'عورت سير ڪندي ساڄي طرف منهن',
-    '🚶🏼‍♀‍➡' => 'عورت سير ڪندي ساڄي طرف منهن',
-    '🚶🏽‍♀‍➡' => 'عورت سير ڪندي ساڄي طرف منهن',
-    '🚶🏾‍♀‍➡' => 'عورت سير ڪندي ساڄي طرف منهن',
-    '🚶🏿‍♀‍➡' => 'عورت سير ڪندي ساڄي طرف منهن',
-    '🚶🏻‍♂‍➡' => 'مرد سير ڪندي ساڄي طرف منهن',
-    '🚶🏼‍♂‍➡' => 'مرد سير ڪندي ساڄي طرف منهن',
-    '🚶🏽‍♂‍➡' => 'مرد سير ڪندي ساڄي طرف منهن',
-    '🚶🏾‍♂‍➡' => 'مرد سير ڪندي ساڄي طرف منهن',
-    '🚶🏿‍♂‍➡' => 'مرد سير ڪندي ساڄي طرف منهن',
-    '🧎🏻‍♀‍➡' => 'گوڏا کوڙيل عورت ساڄي طرف منهن',
-    '🧎🏼‍♀‍➡' => 'گوڏا کوڙيل عورت ساڄي طرف منهن',
-    '🧎🏽‍♀‍➡' => 'گوڏا کوڙيل عورت ساڄي طرف منهن',
-    '🧎🏾‍♀‍➡' => 'گوڏا کوڙيل عورت ساڄي طرف منهن',
-    '🧎🏿‍♀‍➡' => 'گوڏا کوڙيل عورت ساڄي طرف منهن',
-    '🧎🏻‍♂‍➡' => 'گوڏا کوڙيل ماڻهو ساڄي طرف منهن',
-    '🧎🏼‍♂‍➡' => 'گوڏا کوڙيل ماڻهو ساڄي طرف منهن',
-    '🧎🏽‍♂‍➡' => 'گوڏا کوڙيل ماڻهو ساڄي طرف منهن',
-    '🧎🏾‍♂‍➡' => 'گوڏا کوڙيل ماڻهو ساڄي طرف منهن',
-    '🧎🏿‍♂‍➡' => 'گوڏا کوڙيل ماڻهو ساڄي طرف منهن',
-    '🧑🏻‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو ساڄي طرف منهن',
-    '🧑🏼‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو ساڄي طرف منهن',
-    '🧑🏽‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو ساڄي طرف منهن',
-    '🧑🏾‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو ساڄي طرف منهن',
-    '🧑🏿‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو ساڄي طرف منهن',
-    '👨🏻‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو ساڄي طرف منهن',
-    '👨🏼‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو ساڄي طرف منهن',
-    '👨🏽‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو ساڄي طرف منهن',
-    '👨🏾‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو ساڄي طرف منهن',
-    '👨🏿‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو ساڄي طرف منهن',
-    '👩🏻‍🦯‍➡' => 'پروبنگ ڪين سان عورت ساڄي طرف منهن',
-    '👩🏼‍🦯‍➡' => 'پروبنگ ڪين سان عورت ساڄي طرف منهن',
-    '👩🏽‍🦯‍➡' => 'پروبنگ ڪين سان عورت ساڄي طرف منهن',
-    '👩🏾‍🦯‍➡' => 'پروبنگ ڪين سان عورت ساڄي طرف منهن',
-    '👩🏿‍🦯‍➡' => 'پروبنگ ڪين سان عورت ساڄي طرف منهن',
-    '🧑🏻‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص ساڄي طرف منهن',
-    '🧑🏼‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص ساڄي طرف منهن',
-    '🧑🏽‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص ساڄي طرف منهن',
-    '🧑🏾‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص ساڄي طرف منهن',
-    '🧑🏿‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص ساڄي طرف منهن',
-    '👨🏻‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👨🏼‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👨🏽‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👨🏾‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👨🏿‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👩🏻‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت ساڄي طرف منهن',
-    '👩🏼‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت ساڄي طرف منهن',
-    '👩🏽‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت ساڄي طرف منهن',
-    '👩🏾‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت ساڄي طرف منهن',
-    '👩🏿‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت ساڄي طرف منهن',
-    '🧑🏻‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي ساڄي طرف منهن',
-    '🧑🏼‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي ساڄي طرف منهن',
-    '🧑🏽‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي ساڄي طرف منهن',
-    '🧑🏾‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي ساڄي طرف منهن',
-    '🧑🏿‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي ساڄي طرف منهن',
-    '👨🏻‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👨🏼‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👨🏽‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👨🏾‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👨🏿‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👩🏻‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت ساڄي طرف منهن',
-    '👩🏼‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت ساڄي طرف منهن',
-    '👩🏽‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت ساڄي طرف منهن',
-    '👩🏾‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت ساڄي طرف منهن',
-    '👩🏿‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت ساڄي طرف منهن',
-    '🏃🏻‍♀‍➡' => 'ڊوڙندي عورت ساڄي طرف منهن',
-    '🏃🏼‍♀‍➡' => 'ڊوڙندي عورت ساڄي طرف منهن',
-    '🏃🏽‍♀‍➡' => 'ڊوڙندي عورت ساڄي طرف منهن',
-    '🏃🏾‍♀‍➡' => 'ڊوڙندي عورت ساڄي طرف منهن',
-    '🏃🏿‍♀‍➡' => 'ڊوڙندي عورت ساڄي طرف منهن',
-    '🏃🏻‍♂‍➡' => 'مرد ڊوڙندي ساڄي طرف منهن',
-    '🏃🏼‍♂‍➡' => 'مرد ڊوڙندي ساڄي طرف منهن',
-    '🏃🏽‍♂‍➡' => 'مرد ڊوڙندي ساڄي طرف منهن',
-    '🏃🏾‍♂‍➡' => 'مرد ڊوڙندي ساڄي طرف منهن',
-    '🏃🏿‍♂‍➡' => 'مرد ڊوڙندي ساڄي طرف منهن',
+    '🚶🏻‍♀‍➡' => 'عورت سير ڪندي: گوري رنگت، ساڄي طرف منهن',
+    '🚶🏼‍♀‍➡' => 'عورت سير ڪندي: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🚶🏽‍♀‍➡' => 'عورت سير ڪندي: پڪو رنگ، ساڄي طرف منهن',
+    '🚶🏾‍♀‍➡' => 'عورت سير ڪندي: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🚶🏿‍♀‍➡' => 'عورت سير ڪندي: ڪارو رنگ، ساڄي طرف منهن',
+    '🚶🏻‍♂‍➡' => 'مرد سير ڪندي: گوري رنگت، ساڄي طرف منهن',
+    '🚶🏼‍♂‍➡' => 'مرد سير ڪندي: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🚶🏽‍♂‍➡' => 'مرد سير ڪندي: پڪو رنگ، ساڄي طرف منهن',
+    '🚶🏾‍♂‍➡' => 'مرد سير ڪندي: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🚶🏿‍♂‍➡' => 'مرد سير ڪندي: ڪارو رنگ، ساڄي طرف منهن',
+    '🧎🏻‍♀‍➡' => 'گوڏا کوڙيل عورت: گوري رنگت، ساڄي طرف منهن',
+    '🧎🏼‍♀‍➡' => 'گوڏا کوڙيل عورت: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🧎🏽‍♀‍➡' => 'گوڏا کوڙيل عورت: پڪو رنگ، ساڄي طرف منهن',
+    '🧎🏾‍♀‍➡' => 'گوڏا کوڙيل عورت: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🧎🏿‍♀‍➡' => 'گوڏا کوڙيل عورت: ڪارو رنگ، ساڄي طرف منهن',
+    '🧎🏻‍♂‍➡' => 'گوڏا کوڙيل ماڻهو: گوري رنگت، ساڄي طرف منهن',
+    '🧎🏼‍♂‍➡' => 'گوڏا کوڙيل ماڻهو: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🧎🏽‍♂‍➡' => 'گوڏا کوڙيل ماڻهو: پڪو رنگ، ساڄي طرف منهن',
+    '🧎🏾‍♂‍➡' => 'گوڏا کوڙيل ماڻهو: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🧎🏿‍♂‍➡' => 'گوڏا کوڙيل ماڻهو: ڪارو رنگ، ساڄي طرف منهن',
+    '🧑🏻‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو: گوري رنگت، ساڄي طرف منهن',
+    '🧑🏼‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🧑🏽‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو: پڪو رنگ، ساڄي طرف منهن',
+    '🧑🏾‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🧑🏿‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو: ڪارو رنگ، ساڄي طرف منهن',
+    '👨🏻‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو: گوري رنگت، ساڄي طرف منهن',
+    '👨🏼‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو: وچولي گوري رنگت، ساڄي طرف منهن',
+    '👨🏽‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو: پڪو رنگ، ساڄي طرف منهن',
+    '👨🏾‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '👨🏿‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو: ڪارو رنگ، ساڄي طرف منهن',
+    '👩🏻‍🦯‍➡' => 'پروبنگ ڪين سان عورت: گوري رنگت، ساڄي طرف منهن',
+    '👩🏼‍🦯‍➡' => 'پروبنگ ڪين سان عورت: وچولي گوري رنگت، ساڄي طرف منهن',
+    '👩🏽‍🦯‍➡' => 'پروبنگ ڪين سان عورت: پڪو رنگ، ساڄي طرف منهن',
+    '👩🏾‍🦯‍➡' => 'پروبنگ ڪين سان عورت: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '👩🏿‍🦯‍➡' => 'پروبنگ ڪين سان عورت: ڪارو رنگ، ساڄي طرف منهن',
+    '🧑🏻‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص: گوري رنگت، ساڄي طرف منهن',
+    '🧑🏼‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🧑🏽‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص: پڪو رنگ، ساڄي طرف منهن',
+    '🧑🏾‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🧑🏿‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص: ڪارو رنگ، ساڄي طرف منهن',
+    '👨🏻‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو: گوري رنگت، ساڄي طرف منهن',
+    '👨🏼‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو: وچولي گوري رنگت، ساڄي طرف منهن',
+    '👨🏽‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو: پڪو رنگ، ساڄي طرف منهن',
+    '👨🏾‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '👨🏿‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو: ڪارو رنگ، ساڄي طرف منهن',
+    '👩🏻‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت: گوري رنگت، ساڄي طرف منهن',
+    '👩🏼‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت: وچولي گوري رنگت، ساڄي طرف منهن',
+    '👩🏽‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت: پڪو رنگ، ساڄي طرف منهن',
+    '👩🏾‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '👩🏿‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت: ڪارو رنگ، ساڄي طرف منهن',
+    '🧑🏻‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي: گوري رنگت، ساڄي طرف منهن',
+    '🧑🏼‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🧑🏽‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي: پڪو رنگ، ساڄي طرف منهن',
+    '🧑🏾‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🧑🏿‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي: ڪارو رنگ، ساڄي طرف منهن',
+    '👨🏻‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو: گوري رنگت، ساڄي طرف منهن',
+    '👨🏼‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو: وچولي گوري رنگت، ساڄي طرف منهن',
+    '👨🏽‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو: پڪو رنگ، ساڄي طرف منهن',
+    '👨🏾‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '👨🏿‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو: ڪارو رنگ، ساڄي طرف منهن',
+    '👩🏻‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت: گوري رنگت، ساڄي طرف منهن',
+    '👩🏼‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت: وچولي گوري رنگت، ساڄي طرف منهن',
+    '👩🏽‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت: پڪو رنگ، ساڄي طرف منهن',
+    '👩🏾‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '👩🏿‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت: ڪارو رنگ، ساڄي طرف منهن',
+    '🏃🏻‍♀‍➡' => 'ڊوڙندي عورت: گوري رنگت، ساڄي طرف منهن',
+    '🏃🏼‍♀‍➡' => 'ڊوڙندي عورت: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🏃🏽‍♀‍➡' => 'ڊوڙندي عورت: پڪو رنگ، ساڄي طرف منهن',
+    '🏃🏾‍♀‍➡' => 'ڊوڙندي عورت: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🏃🏿‍♀‍➡' => 'ڊوڙندي عورت: ڪارو رنگ، ساڄي طرف منهن',
+    '🏃🏻‍♂‍➡' => 'مرد ڊوڙندي: گوري رنگت، ساڄي طرف منهن',
+    '🏃🏼‍♂‍➡' => 'مرد ڊوڙندي: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🏃🏽‍♂‍➡' => 'مرد ڊوڙندي: پڪو رنگ، ساڄي طرف منهن',
+    '🏃🏾‍♂‍➡' => 'مرد ڊوڙندي: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🏃🏿‍♂‍➡' => 'مرد ڊوڙندي: ڪارو رنگ، ساڄي طرف منهن',
     '🫱🏻‍🫲🏼' => 'هٿ ملائڻ: گوري رنگت، وچولي گوري رنگت',
     '🫱🏻‍🫲🏽' => 'هٿ ملائڻ: گوري رنگت، پڪو رنگ',
     '🫱🏻‍🫲🏾' => 'هٿ ملائڻ: گوري رنگت، وچولو ڪارو رنگ',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'هٿ ملائڻ: ڪارو رنگ، وچولي گوري رنگت',
     '🫱🏿‍🫲🏽' => 'هٿ ملائڻ: ڪارو رنگ، پڪو رنگ',
     '🫱🏿‍🫲🏾' => 'هٿ ملائڻ: ڪارو رنگ، وچولو ڪارو رنگ',
-    '🚶‍♀‍➡' => 'عورت سير ڪندي ساڄي طرف منهن',
-    '🚶‍♂‍➡' => 'مرد سير ڪندي ساڄي طرف منهن',
-    '🧎‍♀‍➡' => 'گوڏا کوڙيل عورت ساڄي طرف منهن',
-    '🧎‍♂‍➡' => 'گوڏا کوڙيل ماڻهو ساڄي طرف منهن',
-    '🧑‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو ساڄي طرف منهن',
-    '👨‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو ساڄي طرف منهن',
-    '👩‍🦯‍➡' => 'پروبنگ ڪين سان عورت ساڄي طرف منهن',
-    '🧑‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص ساڄي طرف منهن',
-    '👨‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👩‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت ساڄي طرف منهن',
-    '🧑‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي ساڄي طرف منهن',
-    '👨‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو ساڄي طرف منهن',
-    '👩‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت ساڄي طرف منهن',
-    '🏃‍♀‍➡' => 'ڊوڙندي عورت ساڄي طرف منهن',
-    '🏃‍♂‍➡' => 'مرد ڊوڙندي ساڄي طرف منهن',
+    '🚶‍♀‍➡' => 'عورت سير ڪندي: ساڄي طرف منهن',
+    '🚶‍♂‍➡' => 'مرد سير ڪندي: ساڄي طرف منهن',
+    '🧎‍♀‍➡' => 'گوڏا کوڙيل عورت: ساڄي طرف منهن',
+    '🧎‍♂‍➡' => 'گوڏا کوڙيل ماڻهو: ساڄي طرف منهن',
+    '🧑‍🦯‍➡' => 'پروبنگ لٺ وارو ماڻهو: ساڄي طرف منهن',
+    '👨‍🦯‍➡' => 'پروبنگ ڪين سان ماڻهو: ساڄي طرف منهن',
+    '👩‍🦯‍➡' => 'پروبنگ ڪين سان عورت: ساڄي طرف منهن',
+    '🧑‍🦼‍➡' => 'موٽر واري وهيل چيئر تي شخص: ساڄي طرف منهن',
+    '👨‍🦼‍➡' => 'موٽر واري وهيل چيئر ۾ ماڻهو: ساڄي طرف منهن',
+    '👩‍🦼‍➡' => 'موٽر واري ڦيٿائين ڪرسي تي عورت: ساڄي طرف منهن',
+    '🧑‍🦽‍➡' => 'ماڻھو دستي ويل چيئر تي: ساڄي طرف منهن',
+    '👨‍🦽‍➡' => 'دستي وهيل چيئر ۾ ماڻهو: ساڄي طرف منهن',
+    '👩‍🦽‍➡' => 'دستي وهيل چيئر ۾ عورت: ساڄي طرف منهن',
+    '🏃‍♀‍➡' => 'ڊوڙندي عورت: ساڄي طرف منهن',
+    '🏃‍♂‍➡' => 'مرد ڊوڙندي: ساڄي طرف منهن',
     '👩‍❤‍👨' => 'دل سان جوڙو: عورت، ماڻهو',
     '👨‍❤‍👨' => 'دل سان جوڙو: ماڻهو، ماڻهو',
     '👩‍❤‍👩' => 'دل سان جوڙو: عورت، عورت',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'بالغ: پڪو رنگ، گنجو',
     '🧑🏾‍🦲' => 'بالغ: وچولو ڪارو رنگ، گنجو',
     '🧑🏿‍🦲' => 'بالغ: ڪارو رنگ، گنجو',
+    '🧑🏻‍🩰' => 'بيلي ناچڻي: گوري رنگت',
+    '🧑🏼‍🩰' => 'بيلي ناچڻي: وچولي گوري رنگت',
+    '🧑🏽‍🩰' => 'بيلي ناچڻي: پڪو رنگ',
+    '🧑🏾‍🩰' => 'بيلي ناچڻي: وچولو ڪارو رنگ',
+    '🧑🏿‍🩰' => 'بيلي ناچڻي: ڪارو رنگ',
     '🧔🏻‍♂' => 'ماڻهو: گوري رنگت، ڏاڙهي',
     '🧔🏼‍♂' => 'ماڻهو: وچولي گوري رنگت، ڏاڙهي',
     '🧔🏽‍♂' => 'ماڻهو: پڪو رنگ، ڏاڙهي',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'عورت سير ڪندي: پڪو رنگ',
     '🚶🏾‍♀' => 'عورت سير ڪندي: وچولو ڪارو رنگ',
     '🚶🏿‍♀' => 'عورت سير ڪندي: ڪارو رنگ',
-    '🚶🏻‍➡' => 'شخص هلندي ساڄي طرف منهن',
-    '🚶🏼‍➡' => 'شخص هلندي ساڄي طرف منهن',
-    '🚶🏽‍➡' => 'شخص هلندي ساڄي طرف منهن',
-    '🚶🏾‍➡' => 'شخص هلندي ساڄي طرف منهن',
-    '🚶🏿‍➡' => 'شخص هلندي ساڄي طرف منهن',
+    '🚶🏻‍➡' => 'شخص هلندي: گوري رنگت، ساڄي طرف منهن',
+    '🚶🏼‍➡' => 'شخص هلندي: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🚶🏽‍➡' => 'شخص هلندي: پڪو رنگ، ساڄي طرف منهن',
+    '🚶🏾‍➡' => 'شخص هلندي: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🚶🏿‍➡' => 'شخص هلندي: ڪارو رنگ، ساڄي طرف منهن',
     '🧍🏻‍♂' => 'ماڻهو بيٺل: گوري رنگت',
     '🧍🏼‍♂' => 'ماڻهو بيٺل: وچولي گوري رنگت',
     '🧍🏽‍♂' => 'ماڻهو بيٺل: پڪو رنگ',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'گوڏا کوڙيل عورت: پڪو رنگ',
     '🧎🏾‍♀' => 'گوڏا کوڙيل عورت: وچولو ڪارو رنگ',
     '🧎🏿‍♀' => 'گوڏا کوڙيل عورت: ڪارو رنگ',
-    '🧎🏻‍➡' => 'گوڏن ڀر ويٺل ماڻهو ساڄي طرف منهن',
-    '🧎🏼‍➡' => 'گوڏن ڀر ويٺل ماڻهو ساڄي طرف منهن',
-    '🧎🏽‍➡' => 'گوڏن ڀر ويٺل ماڻهو ساڄي طرف منهن',
-    '🧎🏾‍➡' => 'گوڏن ڀر ويٺل ماڻهو ساڄي طرف منهن',
-    '🧎🏿‍➡' => 'گوڏن ڀر ويٺل ماڻهو ساڄي طرف منهن',
+    '🧎🏻‍➡' => 'گوڏن ڀر ويٺل ماڻهو: گوري رنگت، ساڄي طرف منهن',
+    '🧎🏼‍➡' => 'گوڏن ڀر ويٺل ماڻهو: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🧎🏽‍➡' => 'گوڏن ڀر ويٺل ماڻهو: پڪو رنگ، ساڄي طرف منهن',
+    '🧎🏾‍➡' => 'گوڏن ڀر ويٺل ماڻهو: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🧎🏿‍➡' => 'گوڏن ڀر ويٺل ماڻهو: ڪارو رنگ، ساڄي طرف منهن',
     '🧑🏻‍🦯' => 'پروبنگ لٺ وارو ماڻهو: گوري رنگت',
     '🧑🏼‍🦯' => 'پروبنگ لٺ وارو ماڻهو: وچولي گوري رنگت',
     '🧑🏽‍🦯' => 'پروبنگ لٺ وارو ماڻهو: پڪو رنگ',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ڊوڙندي عورت: پڪو رنگ',
     '🏃🏾‍♀' => 'ڊوڙندي عورت: وچولو ڪارو رنگ',
     '🏃🏿‍♀' => 'ڊوڙندي عورت: ڪارو رنگ',
-    '🏃🏻‍➡' => 'شخص ڊوڙندي ساڄي طرف منهن',
-    '🏃🏼‍➡' => 'شخص ڊوڙندي ساڄي طرف منهن',
-    '🏃🏽‍➡' => 'شخص ڊوڙندي ساڄي طرف منهن',
-    '🏃🏾‍➡' => 'شخص ڊوڙندي ساڄي طرف منهن',
-    '🏃🏿‍➡' => 'شخص ڊوڙندي ساڄي طرف منهن',
+    '🏃🏻‍➡' => 'شخص ڊوڙندي: گوري رنگت، ساڄي طرف منهن',
+    '🏃🏼‍➡' => 'شخص ڊوڙندي: وچولي گوري رنگت، ساڄي طرف منهن',
+    '🏃🏽‍➡' => 'شخص ڊوڙندي: پڪو رنگ، ساڄي طرف منهن',
+    '🏃🏾‍➡' => 'شخص ڊوڙندي: وچولو ڪارو رنگ، ساڄي طرف منهن',
+    '🏃🏿‍➡' => 'شخص ڊوڙندي: ڪارو رنگ، ساڄي طرف منهن',
+    '👯🏻‍♀' => 'خرگوش جي ڪنن وري عورت: گوري رنگت',
+    '👯🏼‍♀' => 'خرگوش جي ڪنن وري عورت: وچولي گوري رنگت',
+    '👯🏽‍♀' => 'خرگوش جي ڪنن وري عورت: پڪو رنگ',
+    '👯🏾‍♀' => 'خرگوش جي ڪنن وري عورت: وچولو ڪارو رنگ',
+    '👯🏿‍♀' => 'خرگوش جي ڪنن وري عورت: ڪارو رنگ',
+    '👯🏻‍♂' => 'خرگوش جي ڪنن وارو مرد: گوري رنگت',
+    '👯🏼‍♂' => 'خرگوش جي ڪنن وارو مرد: وچولي گوري رنگت',
+    '👯🏽‍♂' => 'خرگوش جي ڪنن وارو مرد: پڪو رنگ',
+    '👯🏾‍♂' => 'خرگوش جي ڪنن وارو مرد: وچولو ڪارو رنگ',
+    '👯🏿‍♂' => 'خرگوش جي ڪنن وارو مرد: ڪارو رنگ',
     '🧖🏻‍♂' => 'مرد ٻاڦ واري ڪمري ۾: گوري رنگت',
     '🧖🏼‍♂' => 'مرد ٻاڦ واري ڪمري ۾: وچولي گوري رنگت',
     '🧖🏽‍♂' => 'مرد ٻاڦ واري ڪمري ۾: پڪو رنگ',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'عورت ڪارٽ وهيلنگ ڪندي: پڪو رنگ',
     '🤸🏾‍♀' => 'عورت ڪارٽ وهيلنگ ڪندي: وچولو ڪارو رنگ',
     '🤸🏿‍♀' => 'عورت ڪارٽ وهيلنگ ڪندي: ڪارو رنگ',
+    '🤼🏻‍♀' => 'عورتون ڪشتي وڙهندي: گوري رنگت',
+    '🤼🏼‍♀' => 'عورتون ڪشتي وڙهندي: وچولي گوري رنگت',
+    '🤼🏽‍♀' => 'عورتون ڪشتي وڙهندي: پڪو رنگ',
+    '🤼🏾‍♀' => 'عورتون ڪشتي وڙهندي: وچولو ڪارو رنگ',
+    '🤼🏿‍♀' => 'عورتون ڪشتي وڙهندي: ڪارو رنگ',
+    '🤼🏻‍♂' => 'مرد ڪشتي وڙهندي: گوري رنگت',
+    '🤼🏼‍♂' => 'مرد ڪشتي وڙهندي: وچولي گوري رنگت',
+    '🤼🏽‍♂' => 'مرد ڪشتي وڙهندي: پڪو رنگ',
+    '🤼🏾‍♂' => 'مرد ڪشتي وڙهندي: وچولو ڪارو رنگ',
+    '🤼🏿‍♂' => 'مرد ڪشتي وڙهندي: ڪارو رنگ',
     '🤽🏻‍♂' => 'مرد پاڻي وارو پولو کيڏيندي: گوري رنگت',
     '🤽🏼‍♂' => 'مرد پاڻي وارو پولو کيڏيندي: وچولي گوري رنگت',
     '🤽🏽‍♂' => 'مرد پاڻي وارو پولو کيڏيندي: پڪو رنگ',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'عورت: گهنگرالو وار',
     '👩‍🦳' => 'عورت: اڇا وار',
     '👩‍🦲' => 'عورت: گنجو',
-    '🚶‍➡' => 'شخص هلندي ساڄي طرف منهن',
-    '🧎‍➡' => 'گوڏن ڀر ويٺل ماڻهو ساڄي طرف منهن',
-    '🏃‍➡' => 'شخص ڊوڙندي ساڄي طرف منهن',
+    '🚶‍➡' => 'شخص هلندي: ساڄي طرف منهن',
+    '🧎‍➡' => 'گوڏن ڀر ويٺل ماڻهو: ساڄي طرف منهن',
+    '🏃‍➡' => 'شخص ڊوڙندي: ساڄي طرف منهن',
     '👨‍👦' => 'ڪٽنب: ماڻهو، ڇوڪرو',
     '👨‍👧' => 'ڪٽنب: ماڻهو، ڇوڪري',
     '👩‍👦' => 'ڪٽنب: عورت، ڇوڪرو',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'دستي وهيل چيئر ۾ عورت',
     '🏃‍♂' => 'مرد ڊوڙندي',
     '🏃‍♀' => 'ڊوڙندي عورت',
+    '🧑‍🩰' => 'بيلي ناچڻي',
     '👯‍♂' => 'خرگوش جي ڪنن وارو مرد',
     '👯‍♀' => 'خرگوش جي ڪنن وري عورت',
     '🧖‍♂' => 'مرد ٻاڦ واري ڪمري ۾',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'مرد سوٽ ۾: پڪو رنگ',
     '🕴🏾' => 'مرد سوٽ ۾: وچولو ڪارو رنگ',
     '🕴🏿' => 'مرد سوٽ ۾: ڪارو رنگ',
+    '👯🏻' => 'خرگوش جي ڪنن وارو ماڻهو: گوري رنگت',
+    '👯🏼' => 'خرگوش جي ڪنن وارو ماڻهو: وچولي گوري رنگت',
+    '👯🏽' => 'خرگوش جي ڪنن وارو ماڻهو: پڪو رنگ',
+    '👯🏾' => 'خرگوش جي ڪنن وارو ماڻهو: وچولو ڪارو رنگ',
+    '👯🏿' => 'خرگوش جي ڪنن وارو ماڻهو: ڪارو رنگ',
     '🧖🏻' => 'شخص ٻاڦ واري ڪمري ۾: گوري رنگت',
     '🧖🏼' => 'شخص ٻاڦ واري ڪمري ۾: وچولي گوري رنگت',
     '🧖🏽' => 'شخص ٻاڦ واري ڪمري ۾: پڪو رنگ',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'شخص ڪارٽ وهلينگ ڪندي: پڪو رنگ',
     '🤸🏾' => 'شخص ڪارٽ وهلينگ ڪندي: وچولو ڪارو رنگ',
     '🤸🏿' => 'شخص ڪارٽ وهلينگ ڪندي: ڪارو رنگ',
+    '🤼🏻' => 'ماڻهو ڪشتي وڙهندي: گوري رنگت',
+    '🤼🏼' => 'ماڻهو ڪشتي وڙهندي: وچولي گوري رنگت',
+    '🤼🏽' => 'ماڻهو ڪشتي وڙهندي: پڪو رنگ',
+    '🤼🏾' => 'ماڻهو ڪشتي وڙهندي: وچولو ڪارو رنگ',
+    '🤼🏿' => 'ماڻهو ڪشتي وڙهندي: ڪارو رنگ',
     '🤽🏻' => 'ماڻهو پاڻي وارو پولو کيڏيندي: گوري رنگت',
     '🤽🏼' => 'ماڻهو پاڻي وارو پولو کيڏيندي: وچولي گوري رنگت',
     '🤽🏽' => 'ماڻهو پاڻي وارو پولو کيڏيندي: پڪو رنگ',
@@ -2130,10 +2286,10 @@
     '🇦🇩' => 'جهنڊو: اندورا',
     '🇦🇪' => 'جهنڊو: متحده عرب امارات',
     '🇦🇫' => 'جهنڊو: افغانستان',
-    '🇦🇬' => 'جهنڊو: انٽيگا ۽ باربد',
+    '🇦🇬' => 'جهنڊو: اينٽيگا ۽ باربوڊا',
     '🇦🇮' => 'جهنڊو: انگويلا',
     '🇦🇱' => 'جهنڊو: البانيا',
-    '🇦🇲' => 'جهنڊو: ارمینیا',
+    '🇦🇲' => 'جهنڊو: آرمينيا',
     '🇦🇴' => 'جهنڊو: انگولا',
     '🇦🇶' => 'جهنڊو: انٽارڪٽيڪا',
     '🇦🇷' => 'جهنڊو: ارجنٽينا',
@@ -2143,7 +2299,7 @@
     '🇦🇼' => 'جهنڊو: عروبا',
     '🇦🇽' => 'جهنڊو: الند ٻيٽ',
     '🇦🇿' => 'جهنڊو: آذربائيجان',
-    '🇧🇦' => 'جهنڊو: بوسنيا ۽ هرزوگووينا',
+    '🇧🇦' => 'جهنڊو: بوسنيا ۽ هرزيگووينا',
     '🇧🇧' => 'جهنڊو: باربڊوس',
     '🇧🇩' => 'جهنڊو: بنگلاديش',
     '🇧🇪' => 'جهنڊو: بيلجيم',
@@ -2162,7 +2318,7 @@
     '🇧🇹' => 'جهنڊو: ڀوٽان',
     '🇧🇻' => 'جهنڊو: بووٽ ٻيٽ',
     '🇧🇼' => 'جهنڊو: بوٽسوانا',
-    '🇧🇾' => 'جهنڊو: بیلارس',
+    '🇧🇾' => 'جهنڊو: بيلاروس',
     '🇧🇿' => 'جهنڊو: بيليز',
     '🇨🇦' => 'جهنڊو: ڪينيڊا',
     '🇨🇨' => 'جهنڊو: ڪوڪوس ٻيٽ',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'جهنڊو: چين',
     '🇨🇴' => 'جهنڊو: ڪولمبيا',
     '🇨🇵' => 'جهنڊو: ڪلپرٽن ٻيٽ',
+    '🇨🇶' => 'جهنڊو: سارڪ',
     '🇨🇷' => 'جهنڊو: ڪوسٽا ريڪا',
     '🇨🇺' => 'جهنڊو: ڪيوبا',
     '🇨🇻' => 'جهنڊو: ڪيپ وردي',
@@ -2225,7 +2382,7 @@
     '🇬🇺' => 'جهنڊو: گوام',
     '🇬🇼' => 'جهنڊو: گني بسائو',
     '🇬🇾' => 'جهنڊو: گيانا',
-    '🇭🇰' => 'جهنڊو: هانگ ڪانگ SAR',
+    '🇭🇰' => 'جهنڊو: هانگ ڪانگ SAR چين',
     '🇭🇲' => 'جهنڊو: هرڊ ۽ مڪڊونلڊ ٻيٽ',
     '🇭🇳' => 'جهنڊو: هنڊورس',
     '🇭🇷' => 'جهنڊو: ڪروئيشيا',
@@ -2311,7 +2468,7 @@
     '🇵🇭' => 'جهنڊو: فلپائن',
     '🇵🇰' => 'جهنڊو: پاڪستان',
     '🇵🇱' => 'جهنڊو: پولينڊ',
-    '🇵🇲' => 'جهنڊو: سینٽ پیئر و میڪوئیلون',
+    '🇵🇲' => 'جهنڊو: سينٽ پيئر ۽ ميڪيلون',
     '🇵🇳' => 'جهنڊو: پٽڪئرن ٻيٽ',
     '🇵🇷' => 'جهنڊو: پيوئرٽو ريڪو',
     '🇵🇸' => 'جهنڊو: فلسطيني علائقا',
@@ -2332,15 +2489,15 @@
     '🇸🇬' => 'جهنڊو: سنگاپور',
     '🇸🇭' => 'جهنڊو: سينٽ ھيلينا',
     '🇸🇮' => 'جهنڊو: سلوینیا',
-    '🇸🇯' => 'جهنڊو: سوالبارڊ ۽ جان ماین',
+    '🇸🇯' => 'جهنڊو: سوالبارڊ ۽ يان ماین',
     '🇸🇰' => 'جهنڊو: سلوواڪيا',
     '🇸🇱' => 'جهنڊو: سيرا ليون',
-    '🇸🇲' => 'جهنڊو: سین مرینو',
+    '🇸🇲' => 'جهنڊو: سان مرینو',
     '🇸🇳' => 'جهنڊو: سينيگال',
     '🇸🇴' => 'جهنڊو: سوماليا',
     '🇸🇷' => 'جهنڊو: سورينام',
     '🇸🇸' => 'جهنڊو: ڏکڻ سوڊان',
-    '🇸🇹' => 'جهنڊو: سائو ٽوم ۽ پرنسپیي',
+    '🇸🇹' => 'جهنڊو: سائو ٽومي ۽ پرنسپیي',
     '🇸🇻' => 'جهنڊو: ال سلواڊور',
     '🇸🇽' => 'جهنڊو: سنٽ مارٽن',
     '🇸🇾' => 'جهنڊو: شام',
@@ -2358,7 +2515,7 @@
     '🇹🇳' => 'جهنڊو: تيونيسيا',
     '🇹🇴' => 'جهنڊو: ٽونگا',
     '🇹🇷' => 'جهنڊو: ترڪييي',
-    '🇹🇹' => 'جهنڊو: ٽريني ڊيڊ ۽ ٽوباگو ٻيٽ',
+    '🇹🇹' => 'جهنڊو: ٽرينيڊاڊ ۽ ٽوباگو',
     '🇹🇻' => 'جهنڊو: توالو',
     '🇹🇼' => 'جهنڊو: تائیوان',
     '🇹🇿' => 'جهنڊو: تنزانيا',
@@ -2390,13 +2547,6 @@
     '🏽' => 'پڪو رنگ',
     '🏾' => 'وچولو ڪارو رنگ',
     '🏿' => 'ڪارو رنگ',
-    '🪉' => 'سرندو',
-    '🪏' => 'بيلچو',
-    '🪾' => 'ٺوڙهو وڻ',
-    '🫆' => 'آڱرين جا نشان',
-    '🫜' => 'پاڙي سبزي',
-    '🫟' => 'ڦهلائڻ',
-    '🫩' => 'اکيون سڄل وارو منهن',
     '😀' => 'وڏي کل وارو چهرو',
     '😃' => 'وڏين انکين سان وڏي کل وارو چهرو',
     '😄' => 'کلندڙ اکين سان وڏي کل وارو چهرو',
@@ -2450,6 +2600,7 @@
     '😪' => 'ننڊ وارو چهرو',
     '🤤' => 'رال ٽپڪائيندڙ چهرو',
     '😴' => 'سمهندڙ چهرو',
+    '🫩' => 'اکيون سڄل وارو منهن',
     '😷' => 'ميڊيڪل ماسڪ سان گڏ چهرو',
     '🤒' => 'ٿرماميٽر سان گڏ چهرو',
     '🤕' => 'مٿي تي پٽي ٻڌل چهرو',
@@ -2476,6 +2627,7 @@
     '😯' => 'چپ ٿيل چهرو',
     '😲' => 'حيران ٿيل چهرو',
     '😳' => 'سرخي ڇانيل چهرو',
+    '🫪' => 'بگڙيل چهرو',
     '🥺' => 'دلڪش چهرو',
     '🥹' => 'ڳوڙھا لڪائيندڙ چھرو',
     '😦' => 'کليل وات سان اداس چهرو',
@@ -2547,6 +2699,7 @@
     '💋' => 'چمي جو نشان',
     '💯' => 'سو نقطا',
     '💢' => 'ڪاوڙ جي نشاني',
+    '🫯' => 'جهيڙي وارو ڪڪر',
     '💥' => 'ٽڪراءُ',
     '💫' => 'چڪرائيندڙ',
     '💦' => 'پگهر جا قطرا',
@@ -2670,6 +2823,7 @@
     '🧞' => 'جن',
     '🧟' => 'زومبي',
     '🧌' => 'جنڙو',
+    '🫈' => 'بجري مخلوق',
     '💆' => 'مساج وٺندڙ شخص',
     '💇' => 'وارن جي ڪٽ وٺندڙ شخص',
     '🚶' => 'شخص هلندي',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ڀاڪر پائيندڙ شخص',
     '👪' => 'ڪٽنب',
     '👣' => 'پيرن جا نشان',
+    '🫆' => 'آڱرين جا نشان',
     '🦰' => 'ڳاڙها وار',
     '🦱' => 'گهنگرالو وار',
     '🦳' => 'اڇا وار',
@@ -2812,6 +2967,7 @@
     '🐳' => 'اسپائوٽنگ وهيل',
     '🐋' => 'وهيل',
     '🐬' => 'ڊالفن',
+    '🫍' => 'اورڪا',
     '🦭' => 'سيل',
     '🐟' => 'مڇي',
     '🐠' => 'مداريني مڇي',
@@ -2821,6 +2977,11 @@
     '🐚' => 'ور وڪڙ واري ڪوڏي',
     '🪸' => 'مرجاني پٿر',
     '🪼' => 'جيلي فش',
+    '🦀' => 'سرطان',
+    '🦞' => 'لوبسٽر',
+    '🦐' => 'جهينگو',
+    '🦑' => 'اسڪواڊ',
+    '🦪' => 'اوئيسٽر',
     '🐌' => 'سيپي',
     '🦋' => 'پوپٽ',
     '🐛' => 'مونگهڻ',
@@ -2865,6 +3026,7 @@
     '🪹' => 'خالي آکيرو',
     '🪺' => 'آنن وارو آکيرو',
     '🍄' => 'خمبي',
+    '🪾' => 'ٺوڙهو وڻ',
     '🍇' => 'انگور',
     '🍈' => 'گدرو',
     '🍉' => 'ڇانهه',
@@ -2901,6 +3063,7 @@
     '🌰' => 'شاه بلوط',
     '🫚' => 'ادرڪ',
     '🫛' => 'مٽرن جي ڦري',
+    '🫜' => 'پاڙي سبزي',
     '🍞' => 'روٽي',
     '🥐' => 'ڪروئيسانٽ',
     '🥖' => 'باگيٽ ماني',
@@ -2944,7 +3107,7 @@
     '🍝' => 'اسپگيٽي',
     '🍠' => 'ڀڳل مٺي گجر',
     '🍢' => 'اوڊن',
-    '🍣' => 'شوشي',
+    '🍣' => 'سوشي',
     '🍤' => 'تريل جهينگا',
     '🍥' => 'گول مڇي ڪيڪ',
     '🥮' => 'مون ڪيڪ',
@@ -2952,11 +3115,6 @@
     '🥟' => 'پڪوڙو',
     '🥠' => 'فارچيون ڪوڪي',
     '🥡' => 'ٻاهر وٺي وڃڻ وارو ڏٻو',
-    '🦀' => 'سرطان',
-    '🦞' => 'لوبسٽر',
-    '🦐' => 'جهينگو',
-    '🦑' => 'اسڪواڊ',
-    '🦪' => 'اوئيسٽر',
     '🍦' => 'نرم آئسڪريم',
     '🍧' => 'گنڊو',
     '🍨' => 'آئسڪريم',
@@ -3007,6 +3165,7 @@
     '🧭' => 'ڪمپاس',
     '🏔' => 'برف سان ڍڪيل جبل',
     '⛰' => 'جبل',
+    '🛘' => 'زميني تودو',
     '🌋' => 'ٻرندڙ جبل',
     '🗻' => 'مائونٽ فوجي',
     '🏕' => 'ڪيمپ لڳائڻ',
@@ -3367,16 +3526,18 @@
     '🎧' => 'هيڊ فون',
     '📻' => 'ريڊيو',
     '🎷' => 'سيڪسو فون',
+    '🎺' => 'ترم',
+    '🪊' => 'ٽرومبون',
     '🪗' => 'اڪورڊيون',
     '🎸' => 'گٽار',
     '🎹' => 'موسيقي وارو ڪيبورڊ',
-    '🎺' => 'ترم',
     '🎻' => 'وائلن',
     '🪕' => 'بانجو',
     '🥁' => 'ڊهول',
     '🪘' => 'وڏو ڊرم',
     '🪇' => 'ڇمڪڻا',
     '🪈' => 'بانسري',
+    '🪉' => 'سرندو',
     '📱' => 'موبائيل فون',
     '📲' => 'تير سان گڏ موبائل فون',
     '☎' => 'ٽيليفون',
@@ -3430,8 +3591,9 @@
     '📑' => 'بڪ مارڪ وارا ٽيب',
     '🔖' => 'بڪ مارڪ',
     '🏷' => 'ٺپو',
-    '💰' => 'پئسن جي ڳوٿري',
     '🪙' => 'سڪو',
+    '💰' => 'پئسن جي ڳوٿري',
+    '🪎' => 'خزاني جي پيٽي',
     '💴' => 'يين بئنڪ نوٽ',
     '💵' => 'ڊائر بئنڪ نوٽ',
     '💶' => 'يورو بئنڪ نوٽ',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ٽول باڪس',
     '🧲' => 'ميگنيٽ',
     '🪜' => 'چاڙهي',
+    '🪏' => 'بيلچو',
     '⚗' => 'اليمبڪ',
     '🧪' => 'ٽيسٽ ٽيوب',
     '🧫' => 'پيٽري ڊش',
@@ -3697,6 +3860,7 @@
     '✴' => 'اٺ نوڪدار نشان',
     '❇' => 'ٽمڪڻ',
     '™' => 'ٽريڊ مارڪ',
+    '🫟' => 'ڦهلائڻ',
     '🔠' => 'انپٽ لاطيني وڏو ڪيس',
     '🔡' => 'انپٽ لاطيني ننڍو ڪيس',
     '🔢' => 'انپٽ نمبر',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-shn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-shn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-shn.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-shn.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,3904 @@
+<?php
+
+return [
+    '🧑🏻‍❤‍💋‍🧑🏼' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏻‍❤‍💋‍🧑🏽' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏻‍❤‍💋‍🧑🏾' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏻‍❤‍💋‍🧑🏿' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏼‍❤‍💋‍🧑🏻' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍❤‍💋‍🧑🏽' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏼‍❤‍💋‍🧑🏾' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏼‍❤‍💋‍🧑🏿' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏽‍❤‍💋‍🧑🏻' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏽‍❤‍💋‍🧑🏼' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍❤‍💋‍🧑🏾' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏽‍❤‍💋‍🧑🏿' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏾‍❤‍💋‍🧑🏻' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏾‍❤‍💋‍🧑🏼' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏾‍❤‍💋‍🧑🏽' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍❤‍💋‍🧑🏿' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏿‍❤‍💋‍🧑🏻' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏿‍❤‍💋‍🧑🏼' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏿‍❤‍💋‍🧑🏽' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏿‍❤‍💋‍🧑🏾' => 'ၸုပ်ႇ: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏻‍❤‍💋‍👨🏻' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏻‍❤‍💋‍👨🏼' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏻‍❤‍💋‍👨🏽' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏻‍❤‍💋‍👨🏾' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏻‍❤‍💋‍👨🏿' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏼‍❤‍💋‍👨🏻' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍❤‍💋‍👨🏼' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏼‍❤‍💋‍👨🏽' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏼‍❤‍💋‍👨🏾' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏼‍❤‍💋‍👨🏿' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏽‍❤‍💋‍👨🏻' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏽‍❤‍💋‍👨🏼' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍❤‍💋‍👨🏽' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏽‍❤‍💋‍👨🏾' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏽‍❤‍💋‍👨🏿' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏾‍❤‍💋‍👨🏻' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏾‍❤‍💋‍👨🏼' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏾‍❤‍💋‍👨🏽' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍❤‍💋‍👨🏾' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏾‍❤‍💋‍👨🏿' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏿‍❤‍💋‍👨🏻' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏿‍❤‍💋‍👨🏼' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏿‍❤‍💋‍👨🏽' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏿‍❤‍💋‍👨🏾' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍❤‍💋‍👨🏿' => 'ၸုပ်ႇ: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍❤‍💋‍👨🏻' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏻‍❤‍💋‍👨🏼' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏻‍❤‍💋‍👨🏽' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏻‍❤‍💋‍👨🏾' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍❤‍💋‍👨🏿' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏼‍❤‍💋‍👨🏻' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍❤‍💋‍👨🏼' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏼‍❤‍💋‍👨🏽' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏼‍❤‍💋‍👨🏾' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏼‍❤‍💋‍👨🏿' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏽‍❤‍💋‍👨🏻' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏽‍❤‍💋‍👨🏼' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍❤‍💋‍👨🏽' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏽‍❤‍💋‍👨🏾' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏽‍❤‍💋‍👨🏿' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏾‍❤‍💋‍👨🏻' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏾‍❤‍💋‍👨🏼' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏾‍❤‍💋‍👨🏽' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍❤‍💋‍👨🏾' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏾‍❤‍💋‍👨🏿' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏿‍❤‍💋‍👨🏻' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏿‍❤‍💋‍👨🏼' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏿‍❤‍💋‍👨🏽' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏿‍❤‍💋‍👨🏾' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍❤‍💋‍👨🏿' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍❤‍💋‍👩🏻' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏻‍❤‍💋‍👩🏼' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏻‍❤‍💋‍👩🏽' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏻‍❤‍💋‍👩🏾' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍❤‍💋‍👩🏿' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏼‍❤‍💋‍👩🏻' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍❤‍💋‍👩🏼' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏼‍❤‍💋‍👩🏽' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏼‍❤‍💋‍👩🏾' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏼‍❤‍💋‍👩🏿' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏽‍❤‍💋‍👩🏻' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏽‍❤‍💋‍👩🏼' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍❤‍💋‍👩🏽' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏽‍❤‍💋‍👩🏾' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏽‍❤‍💋‍👩🏿' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏾‍❤‍💋‍👩🏻' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏾‍❤‍💋‍👩🏼' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏾‍❤‍💋‍👩🏽' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍❤‍💋‍👩🏾' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏾‍❤‍💋‍👩🏿' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏿‍❤‍💋‍👩🏻' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏿‍❤‍💋‍👩🏼' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏿‍❤‍💋‍👩🏽' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏿‍❤‍💋‍👩🏾' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍❤‍💋‍👩🏿' => 'ၸုပ်ႇ: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🫯‍🧑🏼' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏻‍🫯‍🧑🏽' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏻‍🫯‍🧑🏾' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏻‍🫯‍🧑🏿' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏼‍🫯‍🧑🏻' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🫯‍🧑🏽' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏼‍🫯‍🧑🏾' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏼‍🫯‍🧑🏿' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏽‍🫯‍🧑🏻' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏽‍🫯‍🧑🏼' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🫯‍🧑🏾' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏽‍🫯‍🧑🏿' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏾‍🫯‍🧑🏻' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏾‍🫯‍🧑🏼' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏾‍🫯‍🧑🏽' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🫯‍🧑🏿' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏿‍🫯‍🧑🏻' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏿‍🫯‍🧑🏼' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏿‍🫯‍🧑🏽' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏿‍🫯‍🧑🏾' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏻‍❤‍🧑🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏻‍❤‍🧑🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏻‍❤‍🧑🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏻‍❤‍🧑🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏼‍❤‍🧑🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍❤‍🧑🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏼‍❤‍🧑🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏼‍❤‍🧑🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏽‍❤‍🧑🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏽‍❤‍🧑🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍❤‍🧑🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏽‍❤‍🧑🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏾‍❤‍🧑🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏾‍❤‍🧑🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏾‍❤‍🧑🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍❤‍🧑🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏿‍❤‍🧑🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏿‍❤‍🧑🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏿‍❤‍🧑🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏿‍❤‍🧑🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သုၼ်ႇၵူၼ်း၊ သုၼ်ႇၵူၼ်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏻‍🐰‍🧑🏼' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏻‍🐰‍🧑🏽' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏻‍🐰‍🧑🏾' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏻‍🐰‍🧑🏿' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏼‍🐰‍🧑🏻' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🐰‍🧑🏽' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏼‍🐰‍🧑🏾' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏼‍🐰‍🧑🏿' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏽‍🐰‍🧑🏻' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏽‍🐰‍🧑🏼' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🐰‍🧑🏾' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏽‍🐰‍🧑🏿' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏾‍🐰‍🧑🏻' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏾‍🐰‍🧑🏼' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏾‍🐰‍🧑🏽' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🐰‍🧑🏿' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏿‍🐰‍🧑🏻' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏿‍🐰‍🧑🏼' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏿‍🐰‍🧑🏽' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏿‍🐰‍🧑🏾' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏻‍🫯‍👨🏼' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏻‍🫯‍👨🏽' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏻‍🫯‍👨🏾' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏻‍🫯‍👨🏿' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏼‍🫯‍👨🏻' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🫯‍👨🏽' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏼‍🫯‍👨🏾' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏼‍🫯‍👨🏿' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏽‍🫯‍👨🏻' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏽‍🫯‍👨🏼' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🫯‍👨🏾' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏽‍🫯‍👨🏿' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏾‍🫯‍👨🏻' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏾‍🫯‍👨🏼' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏾‍🫯‍👨🏽' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🫯‍👨🏿' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏿‍🫯‍👨🏻' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏿‍🫯‍👨🏼' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏿‍🫯‍👨🏽' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏿‍🫯‍👨🏾' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏻‍❤‍👨🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏻‍❤‍👨🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏻‍❤‍👨🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏻‍❤‍👨🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏻‍❤‍👨🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏼‍❤‍👨🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍❤‍👨🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏼‍❤‍👨🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏼‍❤‍👨🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏼‍❤‍👨🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏽‍❤‍👨🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏽‍❤‍👨🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍❤‍👨🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏽‍❤‍👨🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏽‍❤‍👨🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏾‍❤‍👨🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏾‍❤‍👨🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏾‍❤‍👨🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍❤‍👨🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏾‍❤‍👨🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏿‍❤‍👨🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏿‍❤‍👨🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏿‍❤‍👨🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏿‍❤‍👨🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍❤‍👨🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🐰‍👨🏼' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏻‍🐰‍👨🏽' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏻‍🐰‍👨🏾' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏻‍🐰‍👨🏿' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏼‍🐰‍👨🏻' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🐰‍👨🏽' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏼‍🐰‍👨🏾' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏼‍🐰‍👨🏿' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏽‍🐰‍👨🏻' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏽‍🐰‍👨🏼' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🐰‍👨🏾' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏽‍🐰‍👨🏿' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏾‍🐰‍👨🏻' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏾‍🐰‍👨🏼' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏾‍🐰‍👨🏽' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🐰‍👨🏿' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏿‍🐰‍👨🏻' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏿‍🐰‍👨🏼' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏿‍🐰‍👨🏽' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏿‍🐰‍👨🏾' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍🫯‍👩🏼' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏻‍🫯‍👩🏽' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏻‍🫯‍👩🏾' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍🫯‍👩🏿' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏼‍🫯‍👩🏻' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🫯‍👩🏽' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏼‍🫯‍👩🏾' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏼‍🫯‍👩🏿' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏽‍🫯‍👩🏻' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏽‍🫯‍👩🏼' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🫯‍👩🏾' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏽‍🫯‍👩🏿' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏾‍🫯‍👩🏻' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏾‍🫯‍👩🏼' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏾‍🫯‍👩🏽' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🫯‍👩🏿' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏿‍🫯‍👩🏻' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏿‍🫯‍👩🏼' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏿‍🫯‍👩🏽' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏿‍🫯‍👩🏾' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍❤‍👨🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏻‍❤‍👨🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏻‍❤‍👨🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏻‍❤‍👨🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍❤‍👨🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏼‍❤‍👨🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍❤‍👨🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏼‍❤‍👨🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏼‍❤‍👨🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏼‍❤‍👨🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏽‍❤‍👨🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏽‍❤‍👨🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍❤‍👨🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏽‍❤‍👨🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏽‍❤‍👨🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏾‍❤‍👨🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏾‍❤‍👨🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏾‍❤‍👨🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍❤‍👨🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏾‍❤‍👨🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏿‍❤‍👨🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏿‍❤‍👨🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏿‍❤‍👨🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏿‍❤‍👨🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍❤‍👨🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈၸၢႆး လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍❤‍👩🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏻‍❤‍👩🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏻‍❤‍👩🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏻‍❤‍👩🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍❤‍👩🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏼‍❤‍👩🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍❤‍👩🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏼‍❤‍👩🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏼‍❤‍👩🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏼‍❤‍👩🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏽‍❤‍👩🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏽‍❤‍👩🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍❤‍👩🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏽‍❤‍👩🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏽‍❤‍👩🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏾‍❤‍👩🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏾‍❤‍👩🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏾‍❤‍👩🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍❤‍👩🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏾‍❤‍👩🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏿‍❤‍👩🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏿‍❤‍👩🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏿‍❤‍👩🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏿‍❤‍👩🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း၊ သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍❤‍👩🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🐰‍👩🏼' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏻‍🐰‍👩🏽' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏻‍🐰‍👩🏾' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍🐰‍👩🏿' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏼‍🐰‍👩🏻' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🐰‍👩🏽' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏼‍🐰‍👩🏾' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏼‍🐰‍👩🏿' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏽‍🐰‍👩🏻' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏽‍🐰‍👩🏼' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🐰‍👩🏾' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏽‍🐰‍👩🏿' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏾‍🐰‍👩🏻' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏾‍🐰‍👩🏼' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏾‍🐰‍👩🏽' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🐰‍👩🏿' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏿‍🐰‍👩🏻' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏿‍🐰‍👩🏼' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏿‍🐰‍👩🏽' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏿‍🐰‍👩🏾' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏻‍🤝‍🧑🏻' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏻‍🤝‍🧑🏼' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏻‍🤝‍🧑🏽' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏻‍🤝‍🧑🏾' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏻‍🤝‍🧑🏿' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏼‍🤝‍🧑🏻' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🤝‍🧑🏼' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏼‍🤝‍🧑🏽' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏼‍🤝‍🧑🏾' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏼‍🤝‍🧑🏿' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏽‍🤝‍🧑🏻' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏽‍🤝‍🧑🏼' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🤝‍🧑🏽' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏽‍🤝‍🧑🏾' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏽‍🤝‍🧑🏿' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏾‍🤝‍🧑🏻' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏾‍🤝‍🧑🏼' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏾‍🤝‍🧑🏽' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🤝‍🧑🏾' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏾‍🤝‍🧑🏿' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏿‍🤝‍🧑🏻' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏿‍🤝‍🧑🏼' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏿‍🤝‍🧑🏽' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏿‍🤝‍🧑🏾' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🤝‍🧑🏿' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🤝‍👩🏼' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏻‍🤝‍👩🏽' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏻‍🤝‍👩🏾' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍🤝‍👩🏿' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏼‍🤝‍👩🏻' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🤝‍👩🏽' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏼‍🤝‍👩🏾' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏼‍🤝‍👩🏿' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏽‍🤝‍👩🏻' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏽‍🤝‍👩🏼' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🤝‍👩🏾' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏽‍🤝‍👩🏿' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏾‍🤝‍👩🏻' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏾‍🤝‍👩🏼' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏾‍🤝‍👩🏽' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🤝‍👩🏿' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏿‍🤝‍👩🏻' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏿‍🤝‍👩🏼' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏿‍🤝‍👩🏽' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏿‍🤝‍👩🏾' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍🤝‍👨🏼' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏻‍🤝‍👨🏽' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏻‍🤝‍👨🏾' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏻‍🤝‍👨🏿' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏼‍🤝‍👨🏻' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🤝‍👨🏽' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏼‍🤝‍👨🏾' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏼‍🤝‍👨🏿' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏽‍🤝‍👨🏻' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏽‍🤝‍👨🏼' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🤝‍👨🏾' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏽‍🤝‍👨🏿' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏾‍🤝‍👨🏻' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏾‍🤝‍👨🏼' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏾‍🤝‍👨🏽' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🤝‍👨🏿' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏿‍🤝‍👨🏻' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏿‍🤝‍👨🏼' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏿‍🤝‍👨🏽' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏿‍🤝‍👨🏾' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏻‍🤝‍👨🏼' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏻‍🤝‍👨🏽' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏻‍🤝‍👨🏾' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏻‍🤝‍👨🏿' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏼‍🤝‍👨🏻' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🤝‍👨🏽' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏼‍🤝‍👨🏾' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏼‍🤝‍👨🏿' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏽‍🤝‍👨🏻' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏽‍🤝‍👨🏼' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🤝‍👨🏾' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏽‍🤝‍👨🏿' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏾‍🤝‍👨🏻' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏾‍🤝‍👨🏼' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏾‍🤝‍👨🏽' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🤝‍👨🏿' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏿‍🤝‍👨🏻' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏿‍🤝‍👨🏼' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏿‍🤝‍👨🏽' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏿‍🤝‍👨🏾' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩‍❤‍💋‍👨' => 'ၸုပ်ႇ: ၽူႈယိင်း လႄႈ ၽူႈၸၢႆး',
+    '👨‍❤‍💋‍👨' => 'ၸုပ်ႇ: ၽူႈၸၢႆး လႄႈ ၽူႈၸၢႆး',
+    '👩‍❤‍💋‍👩' => 'ၸုပ်ႇ: ၽူႈယိင်း လႄႈ ၽူႈယိင်း',
+    '👨‍👩‍👧‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ၽူႈယိင်း၊ တႃႁိူဝ်ႈ လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👨‍👩‍👦‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ၽူႈယိင်း၊ ဢွၼ်ႇၸၢႆး လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👨‍👩‍👧‍👧' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ၽူႈယိင်း၊ တႃႁိူဝ်ႈ လႄႈ တႃႁိူဝ်ႈ',
+    '👨‍👨‍👧‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ တႃႁိူဝ်ႈ လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👨‍👨‍👦‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ ဢွၼ်ႇၸၢႆး လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👨‍👨‍👧‍👧' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး၊ တႃႁိူဝ်ႈ လႄႈ တႃႁိူဝ်ႈ',
+    '👩‍👩‍👧‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈယိင်း၊ ၽူႈယိင်း၊ တႃႁိူဝ်ႈ လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👩‍👩‍👦‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈယိင်း၊ ၽူႈယိင်း၊ ဢွၼ်ႇၸၢႆး လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👩‍👩‍👧‍👧' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈယိင်း၊ ၽူႈယိင်း၊ တႃႁိူဝ်ႈ လႄႈ တႃႁိူဝ်ႈ',
+    '🚶🏻‍♀‍➡' => 'ၽူႈယိင်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏼‍♀‍➡' => 'ၽူႈယိင်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏽‍♀‍➡' => 'ၽူႈယိင်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏾‍♀‍➡' => 'ၽူႈယိင်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏿‍♀‍➡' => 'ၽူႈယိင်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏻‍♂‍➡' => 'ၽူႈၸၢႆးပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏼‍♂‍➡' => 'ၽူႈၸၢႆးပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏽‍♂‍➡' => 'ၽူႈၸၢႆးပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏾‍♂‍➡' => 'ၽူႈၸၢႆးပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏿‍♂‍➡' => 'ၽူႈၸၢႆးပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏻‍♀‍➡' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏼‍♀‍➡' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏽‍♀‍➡' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏾‍♀‍➡' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏿‍♀‍➡' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏻‍♂‍➡' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏼‍♂‍➡' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏽‍♂‍➡' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏾‍♂‍➡' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏿‍♂‍➡' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏻‍🦯‍➡' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏼‍🦯‍➡' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏽‍🦯‍➡' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏾‍🦯‍➡' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏿‍🦯‍➡' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏻‍🦯‍➡' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏼‍🦯‍➡' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏽‍🦯‍➡' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '👨🏾‍🦯‍➡' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏿‍🦯‍➡' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏻‍🦯‍➡' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏼‍🦯‍➡' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏽‍🦯‍➡' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '👩🏾‍🦯‍➡' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏿‍🦯‍➡' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏻‍🦼‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏼‍🦼‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏽‍🦼‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏾‍🦼‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏿‍🦼‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏻‍🦼‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏼‍🦼‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏽‍🦼‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '👨🏾‍🦼‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏿‍🦼‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏻‍🦼‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏼‍🦼‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏽‍🦼‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '👩🏾‍🦼‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏿‍🦼‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏻‍🦽‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏼‍🦽‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏽‍🦽‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏾‍🦽‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏿‍🦽‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏻‍🦽‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏼‍🦽‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏽‍🦽‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '👨🏾‍🦽‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👨🏿‍🦽‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏻‍🦽‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏼‍🦽‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏽‍🦽‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '👩🏾‍🦽‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '👩🏿‍🦽‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏻‍♀‍➡' => 'ၽူႈယိင်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏼‍♀‍➡' => 'ၽူႈယိင်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏽‍♀‍➡' => 'ၽူႈယိင်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏾‍♀‍➡' => 'ၽူႈယိင်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏿‍♀‍➡' => 'ၽူႈယိင်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏻‍♂‍➡' => 'ၽူႈၸၢႆးလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏼‍♂‍➡' => 'ၽူႈၸၢႆးလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏽‍♂‍➡' => 'ၽူႈၸၢႆးလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏾‍♂‍➡' => 'ၽူႈၸၢႆးလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏿‍♂‍➡' => 'ၽူႈၸၢႆးလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🫱🏻‍🫲🏼' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫱🏻‍🫲🏽' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫱🏻‍🫲🏾' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫱🏻‍🫲🏿' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫱🏼‍🫲🏻' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫱🏼‍🫲🏽' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫱🏼‍🫲🏾' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫱🏼‍🫲🏿' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫱🏽‍🫲🏻' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫱🏽‍🫲🏼' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫱🏽‍🫲🏾' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫱🏽‍🫲🏿' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫱🏾‍🫲🏻' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫱🏾‍🫲🏼' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫱🏾‍🫲🏽' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫱🏾‍🫲🏿' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫱🏿‍🫲🏻' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫱🏿‍🫲🏼' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫱🏿‍🫲🏽' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫱🏿‍🫲🏾' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚶‍♀‍➡' => 'ၽူႈယိင်းပႆတၢင်း: မုင်ႈၶႂႃ',
+    '🚶‍♂‍➡' => 'ၽူႈၸၢႆးပႆတၢင်း: မုင်ႈၶႂႃ',
+    '🧎‍♀‍➡' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: မုင်ႈၶႂႃ',
+    '🧎‍♂‍➡' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: မုင်ႈၶႂႃ',
+    '🧑‍🦯‍➡' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: မုင်ႈၶႂႃ',
+    '👨‍🦯‍➡' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: မုင်ႈၶႂႃ',
+    '👩‍🦯‍➡' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: မုင်ႈၶႂႃ',
+    '🧑‍🦼‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: မုင်ႈၶႂႃ',
+    '👨‍🦼‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: မုင်ႈၶႂႃ',
+    '👩‍🦼‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: မုင်ႈၶႂႃ',
+    '🧑‍🦽‍➡' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: မုင်ႈၶႂႃ',
+    '👨‍🦽‍➡' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: မုင်ႈၶႂႃ',
+    '👩‍🦽‍➡' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: မုင်ႈၶႂႃ',
+    '🏃‍♀‍➡' => 'ၽူႈယိင်းလႅၼ်ႈ: မုင်ႈၶႂႃ',
+    '🏃‍♂‍➡' => 'ၽူႈၸၢႆးလႅၼ်ႈ: မုင်ႈၶႂႃ',
+    '👩‍❤‍👨' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း လႄႈ ၽူႈၸၢႆး',
+    '👨‍❤‍👨' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈၸၢႆး လႄႈ ၽူႈၸၢႆး',
+    '👩‍❤‍👩' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: ၽူႈယိင်း လႄႈ ၽူႈယိင်း',
+    '👨‍👩‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ၽူႈယိင်း လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👨‍👩‍👧' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ၽူႈယိင်း လႄႈ တႃႁိူဝ်ႈ',
+    '👨‍👨‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👨‍👨‍👧' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ၽူႈၸၢႆး လႄႈ တႃႁိူဝ်ႈ',
+    '👩‍👩‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👩‍👩‍👧' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈယိင်း၊ ၽူႈယိင်း လႄႈ တႃႁိူဝ်ႈ',
+    '👨‍👦‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ ဢွၼ်ႇၸၢႆး လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👨‍👧‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ တႃႁိူဝ်ႈ လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👨‍👧‍👧' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး၊ တႃႁိူဝ်ႈ လႄႈ တႃႁိူဝ်ႈ',
+    '👩‍👦‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈယိင်း၊ ဢွၼ်ႇၸၢႆး လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👩‍👧‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈယိင်း၊ တႃႁိူဝ်ႈ လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👩‍👧‍👧' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈယိင်း၊ တႃႁိူဝ်ႈ လႄႈ တႃႁိူဝ်ႈ',
+    '🧑‍🤝‍🧑' => 'ၵူၼ်းယိပ်းမိုဝ်းၵၼ်',
+    '🧑🏻‍🦰' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '🧑🏼‍🦰' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '🧑🏽‍🦰' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '🧑🏾‍🦰' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '🧑🏿‍🦰' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '🧑🏻‍🦱' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '🧑🏼‍🦱' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '🧑🏽‍🦱' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '🧑🏾‍🦱' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '🧑🏿‍🦱' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '🧑🏻‍🦳' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '🧑🏼‍🦳' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '🧑🏽‍🦳' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '🧑🏾‍🦳' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '🧑🏿‍🦳' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '🧑🏻‍🦲' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ႁူဝ်လွမ်ႈ',
+    '🧑🏼‍🦲' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ႁူဝ်လွမ်ႈ',
+    '🧑🏽‍🦲' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ႁူဝ်လွမ်ႈ',
+    '🧑🏾‍🦲' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ႁူဝ်လွမ်ႈ',
+    '🧑🏿‍🦲' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ႁူဝ်လွမ်ႈ',
+    '🧑🏻‍🩰' => 'ၽူႈၵႃႈပႄးလေး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🩰' => 'ၽူႈၵႃႈပႄးလေး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🩰' => 'ၽူႈၵႃႈပႄးလေး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🩰' => 'ၽူႈၵႃႈပႄးလေး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🩰' => 'ၽူႈၵႃႈပႄးလေး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧔🏻‍♂' => 'ၽူႈၸၢႆး:ၵၢင်းၶူၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧔🏼‍♂' => 'ၽူႈၸၢႆး:ၵၢင်းၶူၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧔🏽‍♂' => 'ၽူႈၸၢႆး:ၵၢင်းၶူၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧔🏾‍♂' => 'ၽူႈၸၢႆး:ၵၢင်းၶူၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧔🏿‍♂' => 'ၽူႈၸၢႆး:ၵၢင်းၶူၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👱🏻‍♂' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ',
+    '👱🏼‍♂' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ',
+    '👱🏽‍♂' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ',
+    '👱🏾‍♂' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ',
+    '👱🏿‍♂' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ',
+    '👨🏻‍🦰' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '👨🏼‍🦰' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '👨🏽‍🦰' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '👨🏾‍🦰' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '👨🏿‍🦰' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '👨🏻‍🦱' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '👨🏼‍🦱' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '👨🏽‍🦱' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '👨🏾‍🦱' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '👨🏿‍🦱' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '👨🏻‍🦳' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👨🏼‍🦳' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👨🏽‍🦳' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👨🏾‍🦳' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👨🏿‍🦳' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👨🏻‍🦲' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ႁူဝ်လွမ်ႈ',
+    '👨🏼‍🦲' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ႁူဝ်လွမ်ႈ',
+    '👨🏽‍🦲' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ႁူဝ်လွမ်ႈ',
+    '👨🏾‍🦲' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ႁူဝ်လွမ်ႈ',
+    '👨🏿‍🦲' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ႁူဝ်လွမ်ႈ',
+    '🧔🏻‍♀' => 'ၽူႈယိင်း:ၵၢင်းၶူၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧔🏼‍♀' => 'ၽူႈယိင်း:ၵၢင်းၶူၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧔🏽‍♀' => 'ၽူႈယိင်း:ၵၢင်းၶူၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧔🏾‍♀' => 'ၽူႈယိင်း:ၵၢင်းၶူၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧔🏿‍♀' => 'ၽူႈယိင်း:ၵၢင်းၶူၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👱🏻‍♀' => 'ၽူႈယိင်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👱🏼‍♀' => 'ၽူႈယိင်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👱🏽‍♀' => 'ၽူႈယိင်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👱🏾‍♀' => 'ၽူႈယိင်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👱🏿‍♀' => 'ၽူႈယိင်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🦰' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '👩🏼‍🦰' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '👩🏽‍🦰' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '👩🏾‍🦰' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '👩🏿‍🦰' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ၶူၼ်ႁူဝ်လႅင်',
+    '👩🏻‍🦱' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '👩🏼‍🦱' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '👩🏽‍🦱' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '👩🏾‍🦱' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '👩🏿‍🦱' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ၶူၼ်​ႁူဝ်ငေႃး',
+    '👩🏻‍🦳' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👩🏼‍🦳' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👩🏽‍🦳' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👩🏾‍🦳' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👩🏿‍🦳' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👩🏻‍🦲' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ ႁူဝ်လွမ်ႈ',
+    '👩🏼‍🦲' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ ႁူဝ်လွမ်ႈ',
+    '👩🏽‍🦲' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ ႁူဝ်လွမ်ႈ',
+    '👩🏾‍🦲' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ ႁူဝ်လွမ်ႈ',
+    '👩🏿‍🦲' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ ႁူဝ်လွမ်ႈ',
+    '🙍🏻‍♂' => 'ၽူႈၸၢႆးႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙍🏼‍♂' => 'ၽူႈၸၢႆးႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙍🏽‍♂' => 'ၽူႈၸၢႆးႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙍🏾‍♂' => 'ၽူႈၸၢႆးႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙍🏿‍♂' => 'ၽူႈၸၢႆးႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙍🏻‍♀' => 'ၽူႈယိင်းႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙍🏼‍♀' => 'ၽူႈယိင်းႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙍🏽‍♀' => 'ၽူႈယိင်းႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙍🏾‍♀' => 'ၽူႈယိင်းႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙍🏿‍♀' => 'ၽူႈယိင်းႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙎🏻‍♂' => 'ၽူႈၸၢႆးပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙎🏼‍♂' => 'ၽူႈၸၢႆးပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙎🏽‍♂' => 'ၽူႈၸၢႆးပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙎🏾‍♂' => 'ၽူႈၸၢႆးပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙎🏿‍♂' => 'ၽူႈၸၢႆးပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙎🏻‍♀' => 'ၽူႈယိင်းပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙎🏼‍♀' => 'ၽူႈယိင်းပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙎🏽‍♀' => 'ၽူႈယိင်းပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙎🏾‍♀' => 'ၽူႈယိင်းပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙎🏿‍♀' => 'ၽူႈယိင်းပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙅🏻‍♂' => 'ၽူႈၸၢႆး ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙅🏼‍♂' => 'ၽူႈၸၢႆး ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙅🏽‍♂' => 'ၽူႈၸၢႆး ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙅🏾‍♂' => 'ၽူႈၸၢႆး ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙅🏿‍♂' => 'ၽူႈၸၢႆး ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙅🏻‍♀' => 'ၽူႈယိင်း ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙅🏼‍♀' => 'ၽူႈယိင်း ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙅🏽‍♀' => 'ၽူႈယိင်း ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙅🏾‍♀' => 'ၽူႈယိင်း ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙅🏿‍♀' => 'ၽူႈယိင်း ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙆🏻‍♂' => 'ၽူႈၸၢႆးၼႄႁၢင်ႈဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙆🏼‍♂' => 'ၽူႈၸၢႆးၼႄႁၢင်ႈဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙆🏽‍♂' => 'ၽူႈၸၢႆးၼႄႁၢင်ႈဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙆🏾‍♂' => 'ၽူႈၸၢႆးၼႄႁၢင်ႈဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙆🏿‍♂' => 'ၽူႈၸၢႆးၼႄႁၢင်ႈဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙆🏻‍♀' => 'ၽူႈယိင်းၼႄႁၢင်ႈဢူဝ်ၶေႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙆🏼‍♀' => 'ၽူႈယိင်းၼႄႁၢင်ႈဢူဝ်ၶေႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙆🏽‍♀' => 'ၽူႈယိင်းၼႄႁၢင်ႈဢူဝ်ၶေႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙆🏾‍♀' => 'ၽူႈယိင်းၼႄႁၢင်ႈဢူဝ်ၶေႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙆🏿‍♀' => 'ၽူႈယိင်းၼႄႁၢင်ႈဢူဝ်ၶေႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💁🏻‍♂' => 'ၽူႈၸၢႆးပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💁🏼‍♂' => 'ၽူႈၸၢႆးပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💁🏽‍♂' => 'ၽူႈၸၢႆးပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💁🏾‍♂' => 'ၽူႈၸၢႆးပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💁🏿‍♂' => 'ၽူႈၸၢႆးပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💁🏻‍♀' => 'ၽူႈယိင်းပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💁🏼‍♀' => 'ၽူႈယိင်းပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💁🏽‍♀' => 'ၽူႈယိင်းပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💁🏾‍♀' => 'ၽူႈယိင်းပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💁🏿‍♀' => 'ၽူႈယိင်းပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙋🏻‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙋🏼‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙋🏽‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙋🏾‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙋🏿‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙋🏻‍♀' => 'ၽူႈယိင်းယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙋🏼‍♀' => 'ၽူႈယိင်းယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙋🏽‍♀' => 'ၽူႈယိင်းယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙋🏾‍♀' => 'ၽူႈယိင်းယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙋🏿‍♀' => 'ၽူႈယိင်းယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧏🏻‍♂' => 'ၽူႈၸၢႆးႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧏🏼‍♂' => 'ၽူႈၸၢႆးႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧏🏽‍♂' => 'ၽူႈၸၢႆးႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧏🏾‍♂' => 'ၽူႈၸၢႆးႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧏🏿‍♂' => 'ၽူႈၸၢႆးႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧏🏻‍♀' => 'ၽူႈယိင်းႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧏🏼‍♀' => 'ၽူႈယိင်းႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧏🏽‍♀' => 'ၽူႈယိင်းႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧏🏾‍♀' => 'ၽူႈယိင်းႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧏🏿‍♀' => 'ၽူႈယိင်းႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙇🏻‍♂' => 'ၽူႈၸၢႆးယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙇🏼‍♂' => 'ၽူႈၸၢႆးယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙇🏽‍♂' => 'ၽူႈၸၢႆးယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙇🏾‍♂' => 'ၽူႈၸၢႆးယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙇🏿‍♂' => 'ၽူႈၸၢႆးယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙇🏻‍♀' => 'ၽူႈယိင်းယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙇🏼‍♀' => 'ၽူႈယိင်းယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙇🏽‍♀' => 'ၽူႈယိင်းယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙇🏾‍♀' => 'ၽူႈယိင်းယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙇🏿‍♀' => 'ၽူႈယိင်းယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤦🏻‍♂' => 'ၽူႈၸၢႆးတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤦🏼‍♂' => 'ၽူႈၸၢႆးတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤦🏽‍♂' => 'ၽူႈၸၢႆးတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤦🏾‍♂' => 'ၽူႈၸၢႆးတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤦🏿‍♂' => 'ၽူႈၸၢႆးတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤦🏻‍♀' => 'ၽူႈယိင်းတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤦🏼‍♀' => 'ၽူႈယိင်းတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤦🏽‍♀' => 'ၽူႈယိင်းတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤦🏾‍♀' => 'ၽူႈယိင်းတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤦🏿‍♀' => 'ၽူႈယိင်းတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤷🏻‍♂' => 'ၽူႈၸၢႆးယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤷🏼‍♂' => 'ၽူႈၸၢႆးယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤷🏽‍♂' => 'ၽူႈၸၢႆးယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤷🏾‍♂' => 'ၽူႈၸၢႆးယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤷🏿‍♂' => 'ၽူႈၸၢႆးယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤷🏻‍♀' => 'ၽူႈယိင်းယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤷🏼‍♀' => 'ၽူႈယိင်းယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤷🏽‍♀' => 'ၽူႈယိင်းယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤷🏾‍♀' => 'ၽူႈယိင်းယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤷🏿‍♀' => 'ၽူႈယိင်းယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍⚕' => 'ၽူႈႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍⚕' => 'ၽူႈႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍⚕' => 'ၽူႈႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍⚕' => 'ၽူႈႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍⚕' => 'ၽူႈႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍⚕' => 'ၽူႈၸၢႆးႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍⚕' => 'ၽူႈၸၢႆးႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍⚕' => 'ၽူႈၸၢႆးႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍⚕' => 'ၽူႈၸၢႆးႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍⚕' => 'ၽူႈၸၢႆးႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍⚕' => 'ၽူႈယိင်းႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍⚕' => 'ၽူႈယိင်းႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍⚕' => 'ၽူႈယိင်းႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍⚕' => 'ၽူႈယိင်းႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍⚕' => 'ၽူႈယိင်းႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🎓' => 'လုၵ်ႈႁဵၼ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🎓' => 'လုၵ်ႈႁဵၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🎓' => 'လုၵ်ႈႁဵၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🎓' => 'လုၵ်ႈႁဵၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🎓' => 'လုၵ်ႈႁဵၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🎓' => 'လုၵ်ႈႁဵၼ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🎓' => 'လုၵ်ႈႁဵၼ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🎓' => 'လုၵ်ႈႁဵၼ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🎓' => 'လုၵ်ႈႁဵၼ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🎓' => 'လုၵ်ႈႁဵၼ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🎓' => 'လုၵ်ႈႁဵၼ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🎓' => 'လုၵ်ႈႁဵၼ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🎓' => 'လုၵ်ႈႁဵၼ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🎓' => 'လုၵ်ႈႁဵၼ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🎓' => 'လုၵ်ႈႁဵၼ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🏫' => 'မေႃသွၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🏫' => 'မေႃသွၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🏫' => 'မေႃသွၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🏫' => 'မေႃသွၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🏫' => 'မေႃသွၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🏫' => 'မေႃသွၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🏫' => 'မေႃသွၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🏫' => 'မေႃသွၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🏫' => 'မေႃသွၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🏫' => 'မေႃသွၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🏫' => 'မေႃသွၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🏫' => 'မေႃသွၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🏫' => 'မေႃသွၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🏫' => 'မေႃသွၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🏫' => 'မေႃသွၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍⚖' => 'ၽူႈထတ်းသိၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍⚖' => 'ၽူႈထတ်းသိၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍⚖' => 'ၽူႈထတ်းသိၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍⚖' => 'ၽူႈထတ်းသိၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍⚖' => 'ၽူႈထတ်းသိၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍⚖' => 'ၽူႈထတ်းသိၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍⚖' => 'ၽူႈထတ်းသိၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍⚖' => 'ၽူႈထတ်းသိၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍⚖' => 'ၽူႈထတ်းသိၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍⚖' => 'ၽူႈထတ်းသိၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍⚖' => 'ၽူႈထတ်းသိၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍⚖' => 'ၽူႈထတ်းသိၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍⚖' => 'ၽူႈထတ်းသိၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍⚖' => 'ၽူႈထတ်းသိၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍⚖' => 'ၽူႈထတ်းသိၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🌾' => 'ၸဝ်ႈၼႃး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🌾' => 'ၸဝ်ႈၼႃး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🌾' => 'ၸဝ်ႈၼႃး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🌾' => 'ၸဝ်ႈၼႃး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🌾' => 'ၸဝ်ႈၼႃး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🌾' => 'ၸဝ်ႈၼႃးၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🌾' => 'ၸဝ်ႈၼႃးၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🌾' => 'ၸဝ်ႈၼႃးၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🌾' => 'ၸဝ်ႈၼႃးၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🌾' => 'ၸဝ်ႈၼႃးၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🌾' => 'ၸဝ်ႈၼႃးယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🌾' => 'ၸဝ်ႈၼႃးယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🌾' => 'ၸဝ်ႈၼႃးယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🌾' => 'ၸဝ်ႈၼႃးယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🌾' => 'ၸဝ်ႈၼႃးယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🍳' => 'မေႃမိုဝ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🍳' => 'မေႃမိုဝ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🍳' => 'မေႃမိုဝ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🍳' => 'မေႃမိုဝ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🍳' => 'မေႃမိုဝ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🍳' => 'မေႃမိုဝ်ႉၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🍳' => 'မေႃမိုဝ်ႉၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🍳' => 'မေႃမိုဝ်ႉၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🍳' => 'မေႃမိုဝ်ႉၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🍳' => 'မေႃမိုဝ်ႉၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🍳' => 'မေႃမိုဝ်ႉယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🍳' => 'မေႃမိုဝ်ႉယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🍳' => 'မေႃမိုဝ်ႉယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🍳' => 'မေႃမိုဝ်ႉယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🍳' => 'မေႃမိုဝ်ႉယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🔧' => 'မေႃၸၢၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🔧' => 'မေႃၸၢၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🔧' => 'မေႃၸၢၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🔧' => 'မေႃၸၢၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🔧' => 'မေႃၸၢၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🔧' => 'မေႃၸၢၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🔧' => 'မေႃၸၢၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🔧' => 'မေႃၸၢၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🔧' => 'မေႃၸၢၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🔧' => 'မေႃၸၢၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🔧' => 'မေႃၸၢၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🔧' => 'မေႃၸၢၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🔧' => 'မေႃၸၢၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🔧' => 'မေႃၸၢၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🔧' => 'မေႃၸၢၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ႁူင်းၸၢၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ႁူင်းၸၢၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ႁူင်းၸၢၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ႁူင်းၸၢၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ႁူင်းၸၢၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🔬' => 'ပၢႆးသၢႆႊ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🔬' => 'ပၢႆးသၢႆႊ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🔬' => 'ပၢႆးသၢႆႊ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🔬' => 'ပၢႆးသၢႆႊ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🔬' => 'ပၢႆးသၢႆႊ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🎤' => 'မေႃၵႂၢမ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🎤' => 'မေႃၵႂၢမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🎤' => 'မေႃၵႂၢမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🎤' => 'မေႃၵႂၢမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🎤' => 'မေႃၵႂၢမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🎤' => 'မေႃၵႂၢမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🎤' => 'မေႃၵႂၢမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🎤' => 'မေႃၵႂၢမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🎤' => 'မေႃၵႂၢမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🎤' => 'မေႃၵႂၢမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🎤' => 'မေႃၵႂၢမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🎤' => 'မေႃၵႂၢမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🎤' => 'မေႃၵႂၢမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🎤' => 'မေႃၵႂၢမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🎤' => 'မေႃၵႂၢမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🎨' => 'မေႃပၢၼ်းသီ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🎨' => 'မေႃပၢၼ်းသီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🎨' => 'မေႃပၢၼ်းသီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🎨' => 'မေႃပၢၼ်းသီ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🎨' => 'မေႃပၢၼ်းသီ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🎨' => 'မေႃပၢၼ်းသီၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🎨' => 'မေႃပၢၼ်းသီၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🎨' => 'မေႃပၢၼ်းသီၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🎨' => 'မေႃပၢၼ်းသီၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🎨' => 'မေႃပၢၼ်းသီၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🎨' => 'မေႃပၢၼ်းသီယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🎨' => 'မေႃပၢၼ်းသီယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🎨' => 'မေႃပၢၼ်းသီယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🎨' => 'မေႃပၢၼ်းသီယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🎨' => 'မေႃပၢၼ်းသီယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🚒' => 'ၵူၼ်းၶႄၾႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🚒' => 'ၵူၼ်းၶႄၾႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🚒' => 'ၵူၼ်းၶႄၾႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🚒' => 'ၵူၼ်းၶႄၾႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🚒' => 'ၵူၼ်းၶႄၾႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🚒' => 'ၵူၼ်းၶႄၾႆးၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🚒' => 'ၵူၼ်းၶႄၾႆးၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🚒' => 'ၵူၼ်းၶႄၾႆးၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🚒' => 'ၵူၼ်းၶႄၾႆးၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🚒' => 'ၵူၼ်းၶႄၾႆးၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🚒' => 'ၵူၼ်းၶႄၾႆးယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🚒' => 'ၵူၼ်းၶႄၾႆးယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🚒' => 'ၵူၼ်းၶႄၾႆးယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🚒' => 'ၵူၼ်းၶႄၾႆးယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🚒' => 'ၵူၼ်းၶႄၾႆးယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👮🏻‍♂' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👮🏼‍♂' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👮🏽‍♂' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👮🏾‍♂' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👮🏿‍♂' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👮🏻‍♀' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👮🏼‍♀' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👮🏽‍♀' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👮🏾‍♀' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👮🏿‍♀' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🕵🏻‍♂' => 'ၽူႈၸွပ်ႇၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🕵🏼‍♂' => 'ၽူႈၸွပ်ႇၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🕵🏽‍♂' => 'ၽူႈၸွပ်ႇၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🕵🏾‍♂' => 'ၽူႈၸွပ်ႇၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🕵🏿‍♂' => 'ၽူႈၸွပ်ႇၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🕵🏻‍♀' => 'ၽူႈၸွပ်ႇယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🕵🏼‍♀' => 'ၽူႈၸွပ်ႇယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🕵🏽‍♀' => 'ၽူႈၸွပ်ႇယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🕵🏾‍♀' => 'ၽူႈၸွပ်ႇယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🕵🏿‍♀' => 'ၽူႈၸွပ်ႇယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💂🏻‍♂' => 'ၽူႈပႂ်ႉယၢမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💂🏼‍♂' => 'ၽူႈပႂ်ႉယၢမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💂🏽‍♂' => 'ၽူႈပႂ်ႉယၢမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💂🏾‍♂' => 'ၽူႈပႂ်ႉယၢမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💂🏿‍♂' => 'ၽူႈပႂ်ႉယၢမ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💂🏻‍♀' => 'ၽူႈပႂ်ႉယၢမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💂🏼‍♀' => 'ၽူႈပႂ်ႉယၢမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💂🏽‍♀' => 'ၽူႈပႂ်ႉယၢမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💂🏾‍♀' => 'ၽူႈပႂ်ႉယၢမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💂🏿‍♀' => 'ၽူႈပႂ်ႉယၢမ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👷🏻‍♂' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👷🏼‍♂' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👷🏽‍♂' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👷🏾‍♂' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👷🏿‍♂' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👷🏻‍♀' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👷🏼‍♀' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👷🏽‍♀' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👷🏾‍♀' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👷🏿‍♀' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👳🏻‍♂' => 'ၽူႈၸၢႆးၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👳🏼‍♂' => 'ၽူႈၸၢႆးၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👳🏽‍♂' => 'ၽူႈၸၢႆးၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👳🏾‍♂' => 'ၽူႈၸၢႆးၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👳🏿‍♂' => 'ၽူႈၸၢႆးၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👳🏻‍♀' => 'ၽူႈယိင်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👳🏼‍♀' => 'ၽူႈယိင်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👳🏽‍♀' => 'ၽူႈယိင်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👳🏾‍♀' => 'ၽူႈယိင်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👳🏿‍♀' => 'ၽူႈယိင်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤵🏻‍♂' => 'ၽူႈၸၢႆးလဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤵🏼‍♂' => 'ၽူႈၸၢႆးလဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤵🏽‍♂' => 'ၽူႈၸၢႆးလဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤵🏾‍♂' => 'ၽူႈၸၢႆးလဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤵🏿‍♂' => 'ၽူႈၸၢႆးလဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤵🏻‍♀' => 'ၽူႈယိင်းလဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤵🏼‍♀' => 'ၽူႈယိင်းလဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤵🏽‍♀' => 'ၽူႈယိင်းလဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤵🏾‍♀' => 'ၽူႈယိင်းလဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤵🏿‍♀' => 'ၽူႈယိင်းလဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👰🏻‍♂' => 'ၽူႈၸၢႆးဢၼ်မီးၽႃႇတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👰🏼‍♂' => 'ၽူႈၸၢႆးဢၼ်မီးၽႃႇတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👰🏽‍♂' => 'ၽူႈၸၢႆးဢၼ်မီးၽႃႇတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👰🏾‍♂' => 'ၽူႈၸၢႆးဢၼ်မီးၽႃႇတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👰🏿‍♂' => 'ၽူႈၸၢႆးဢၼ်မီးၽႃႇတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👰🏻‍♀' => 'ၽူႈယိင်းဢၼ်မီးၽႃႈတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👰🏼‍♀' => 'ၽူႈယိင်းဢၼ်မီးၽႃႈတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👰🏽‍♀' => 'ၽူႈယိင်းဢၼ်မီးၽႃႈတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👰🏾‍♀' => 'ၽူႈယိင်းဢၼ်မီးၽႃႈတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👰🏿‍♀' => 'ၽူႈယိင်းဢၼ်မီးၽႃႈတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🍼' => 'ၽူႈယိင်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🍼' => 'ၽူႈယိင်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🍼' => 'ၽူႈယိင်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🍼' => 'ၽူႈယိင်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🍼' => 'ၽူႈယိင်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🍼' => 'ၽူႈၸၢႆးသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🍼' => 'ၽူႈၸၢႆးသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🍼' => 'ၽူႈၸၢႆးသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🍼' => 'ၽူႈၸၢႆးသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🍼' => 'ၽူႈၸၢႆးသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🍼' => 'ၵူၼ်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🍼' => 'ၵူၼ်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🍼' => 'ၵူၼ်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🍼' => 'ၵူၼ်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🍼' => 'ၵူၼ်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🦸🏻‍♂' => 'သူႇပႃႇႁီးရူဝ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🦸🏼‍♂' => 'သူႇပႃႇႁီးရူဝ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🦸🏽‍♂' => 'သူႇပႃႇႁီးရူဝ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🦸🏾‍♂' => 'သူႇပႃႇႁီးရူဝ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🦸🏿‍♂' => 'သူႇပႃႇႁီးရူဝ်းၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🦸🏻‍♀' => 'သူႇပႃႇႁီးရူဝ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🦸🏼‍♀' => 'သူႇပႃႇႁီးရူဝ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🦸🏽‍♀' => 'သူႇပႃႇႁီးရူဝ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🦸🏾‍♀' => 'သူႇပႃႇႁီးရူဝ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🦸🏿‍♀' => 'သူႇပႃႇႁီးရူဝ်းယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🦹🏻‍♂' => 'ၸၢႆးႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🦹🏼‍♂' => 'ၸၢႆးႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🦹🏽‍♂' => 'ၸၢႆးႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🦹🏾‍♂' => 'ၸၢႆးႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🦹🏿‍♂' => 'ၸၢႆးႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🦹🏻‍♀' => 'ယိင်းႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🦹🏼‍♀' => 'ယိင်းႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🦹🏽‍♀' => 'ယိင်းႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🦹🏾‍♀' => 'ယိင်းႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🦹🏿‍♀' => 'ယိင်းႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧙🏻‍♂' => 'ၶိင်းမေႃၽီ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧙🏼‍♂' => 'ၶိင်းမေႃၽီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧙🏽‍♂' => 'ၶိင်းမေႃၽီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧙🏾‍♂' => 'ၶိင်းမေႃၽီ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧙🏿‍♂' => 'ၶိင်းမေႃၽီ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧙🏻‍♀' => 'မႄႈၽီ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧙🏼‍♀' => 'မႄႈၽီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧙🏽‍♀' => 'မႄႈၽီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧙🏾‍♀' => 'မႄႈၽီ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧙🏿‍♀' => 'မႄႈၽီ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧚🏻‍♂' => 'ၸၢႆးၽီဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧚🏼‍♂' => 'ၸၢႆးၽီဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧚🏽‍♂' => 'ၸၢႆးၽီဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧚🏾‍♂' => 'ၸၢႆးၽီဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧚🏿‍♂' => 'ၸၢႆးၽီဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧚🏻‍♀' => 'ၼၢင်းၽီဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧚🏼‍♀' => 'ၼၢင်းၽီဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧚🏽‍♀' => 'ၼၢင်းၽီဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧚🏾‍♀' => 'ၼၢင်းၽီဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧚🏿‍♀' => 'ၼၢင်းၽီဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧛🏻‍♂' => 'ဝႅမ်ႇပႃႇယႃႇပေႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧛🏼‍♂' => 'ဝႅမ်ႇပႃႇယႃႇပေႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧛🏽‍♂' => 'ဝႅမ်ႇပႃႇယႃႇပေႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧛🏾‍♂' => 'ဝႅမ်ႇပႃႇယႃႇပေႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧛🏿‍♂' => 'ဝႅမ်ႇပႃႇယႃႇပေႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧛🏻‍♀' => 'ဝႅမ်ႇပႃႇယႃႇမႄႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧛🏼‍♀' => 'ဝႅမ်ႇပႃႇယႃႇမႄႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧛🏽‍♀' => 'ဝႅမ်ႇပႃႇယႃႇမႄႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧛🏾‍♀' => 'ဝႅမ်ႇပႃႇယႃႇမႄႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧛🏿‍♀' => 'ဝႅမ်ႇပႃႇယႃႇမႄႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧜🏻‍♂' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်ပေႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧜🏼‍♂' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်ပေႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧜🏽‍♂' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်ပေႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧜🏾‍♂' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်ပေႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧜🏿‍♂' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်ပေႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧜🏻‍♀' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်မႄႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧜🏼‍♀' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်မႄႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧜🏽‍♀' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်မႄႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧜🏾‍♀' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်မႄႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧜🏿‍♀' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်မႄႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧝🏻‍♂' => 'ဢႄးလ်ၾ်ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧝🏼‍♂' => 'ဢႄးလ်ၾ်ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧝🏽‍♂' => 'ဢႄးလ်ၾ်ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧝🏾‍♂' => 'ဢႄးလ်ၾ်ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧝🏿‍♂' => 'ဢႄးလ်ၾ်ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧝🏻‍♀' => 'ဢႄးလ်ၾ်ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧝🏼‍♀' => 'ဢႄးလ်ၾ်ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧝🏽‍♀' => 'ဢႄးလ်ၾ်ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧝🏾‍♀' => 'ဢႄးလ်ၾ်ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧝🏿‍♀' => 'ဢႄးလ်ၾ်ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💆🏻‍♂' => 'ၼူတ်ႈၼႃႈၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💆🏼‍♂' => 'ၼူတ်ႈၼႃႈၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💆🏽‍♂' => 'ၼူတ်ႈၼႃႈၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💆🏾‍♂' => 'ၼူတ်ႈၼႃႈၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💆🏿‍♂' => 'ၼူတ်ႈၼႃႈၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💆🏻‍♀' => 'ၼူတ်ႈၼႃႈၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💆🏼‍♀' => 'ၼူတ်ႈၼႃႈၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💆🏽‍♀' => 'ၼူတ်ႈၼႃႈၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💆🏾‍♀' => 'ၼူတ်ႈၼႃႈၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💆🏿‍♀' => 'ၼူတ်ႈၼႃႈၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💇🏻‍♂' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💇🏼‍♂' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💇🏽‍♂' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💇🏾‍♂' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💇🏿‍♂' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💇🏻‍♀' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💇🏼‍♀' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💇🏽‍♀' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💇🏾‍♀' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💇🏿‍♀' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚶🏻‍♂' => 'ၽူႈၸၢႆးပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚶🏼‍♂' => 'ၽူႈၸၢႆးပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚶🏽‍♂' => 'ၽူႈၸၢႆးပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚶🏾‍♂' => 'ၽူႈၸၢႆးပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚶🏿‍♂' => 'ၽူႈၸၢႆးပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚶🏻‍♀' => 'ၽူႈယိင်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚶🏼‍♀' => 'ၽူႈယိင်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚶🏽‍♀' => 'ၽူႈယိင်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚶🏾‍♀' => 'ၽူႈယိင်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚶🏿‍♀' => 'ၽူႈယိင်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚶🏻‍➡' => 'ၵူၼ်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏼‍➡' => 'ၵူၼ်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏽‍➡' => 'ၵူၼ်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏾‍➡' => 'ၵူၼ်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🚶🏿‍➡' => 'ၵူၼ်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🧍🏻‍♂' => 'ၽူႈၸၢႆးၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧍🏼‍♂' => 'ၽူႈၸၢႆးၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧍🏽‍♂' => 'ၽူႈၸၢႆးၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧍🏾‍♂' => 'ၽူႈၸၢႆးၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧍🏿‍♂' => 'ၽူႈၸၢႆးၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧍🏻‍♀' => 'ၽူႈယိင်းၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧍🏼‍♀' => 'ၽူႈယိင်းၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧍🏽‍♀' => 'ၽူႈယိင်းၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧍🏾‍♀' => 'ၽူႈယိင်းၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧍🏿‍♀' => 'ၽူႈယိင်းၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧎🏻‍♂' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧎🏼‍♂' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧎🏽‍♂' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧎🏾‍♂' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧎🏿‍♂' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧎🏻‍♀' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧎🏼‍♀' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧎🏽‍♀' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧎🏾‍♀' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧎🏿‍♀' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧎🏻‍➡' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏼‍➡' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏽‍➡' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏾‍➡' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🧎🏿‍➡' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '🧑🏻‍🦯' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🦯' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🦯' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🦯' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🦯' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🦯' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🦯' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🦯' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🦯' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🦯' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🦯' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🦯' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🦯' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🦯' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🦯' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🦼' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🦼' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🦼' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🦼' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🦼' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🦼' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🦼' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🦼' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🦼' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🦼' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🦼' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🦼' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🦼' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🦼' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🦼' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻‍🦽' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼‍🦽' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽‍🦽' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾‍🦽' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿‍🦽' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻‍🦽' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼‍🦽' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽‍🦽' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾‍🦽' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿‍🦽' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻‍🦽' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼‍🦽' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽‍🦽' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾‍🦽' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿‍🦽' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏃🏻‍♂' => 'ၽူႈၸၢႆးလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏃🏼‍♂' => 'ၽူႈၸၢႆးလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏃🏽‍♂' => 'ၽူႈၸၢႆးလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏃🏾‍♂' => 'ၽူႈၸၢႆးလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏃🏿‍♂' => 'ၽူႈၸၢႆးလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏃🏻‍♀' => 'ၽူႈယိင်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏃🏼‍♀' => 'ၽူႈယိင်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏃🏽‍♀' => 'ၽူႈယိင်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏃🏾‍♀' => 'ၽူႈယိင်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏃🏿‍♀' => 'ၽူႈယိင်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏃🏻‍➡' => 'ၵူၼ်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏼‍➡' => 'ၵူၼ်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏽‍➡' => 'ၵူၼ်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏾‍➡' => 'ၵူၼ်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင် လႄႈ မုင်ႈၶႂႃ',
+    '🏃🏿‍➡' => 'ၵူၼ်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ် လႄႈ မုင်ႈၶႂႃ',
+    '👯🏻‍♀' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👯🏼‍♀' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👯🏽‍♀' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👯🏾‍♀' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👯🏿‍♀' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👯🏻‍♂' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👯🏼‍♂' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👯🏽‍♂' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👯🏾‍♂' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👯🏿‍♂' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧖🏻‍♂' => 'ၽူႈၸၢႆးၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧖🏼‍♂' => 'ၽူႈၸၢႆးၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧖🏽‍♂' => 'ၽူႈၸၢႆးၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧖🏾‍♂' => 'ၽူႈၸၢႆးၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧖🏿‍♂' => 'ၽူႈၸၢႆးၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧖🏻‍♀' => 'ၽူႈယိင်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧖🏼‍♀' => 'ၽူႈယိင်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧖🏽‍♀' => 'ၽူႈယိင်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧖🏾‍♀' => 'ၽူႈယိင်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧖🏿‍♀' => 'ၽူႈယိင်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧗🏻‍♂' => 'ၽူႈၸၢႆးၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧗🏼‍♂' => 'ၽူႈၸၢႆးၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧗🏽‍♂' => 'ၽူႈၸၢႆးၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧗🏾‍♂' => 'ၽူႈၸၢႆးၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧗🏿‍♂' => 'ၽူႈၸၢႆးၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧗🏻‍♀' => 'ၽူႈယိင်းၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧗🏼‍♀' => 'ၽူႈယိင်းၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧗🏽‍♀' => 'ၽူႈယိင်းၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧗🏾‍♀' => 'ၽူႈယိင်းၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧗🏿‍♀' => 'ၽူႈယိင်းၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏌🏻‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏌🏼‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏌🏽‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏌🏾‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏌🏿‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏌🏻‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏌🏼‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏌🏽‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏌🏾‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏌🏿‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏄🏻‍♂' => 'ၽူႈၸၢႆးၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏄🏼‍♂' => 'ၽူႈၸၢႆးၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏄🏽‍♂' => 'ၽူႈၸၢႆးၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏄🏾‍♂' => 'ၽူႈၸၢႆးၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏄🏿‍♂' => 'ၽူႈၸၢႆးၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏄🏻‍♀' => 'ၽူႈယိင်းၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏄🏼‍♀' => 'ၽူႈယိင်းၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏄🏽‍♀' => 'ၽူႈယိင်းၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏄🏾‍♀' => 'ၽူႈယိင်းၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏄🏿‍♀' => 'ၽူႈယိင်းၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚣🏻‍♂' => 'ၽူႈၸၢႆးၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚣🏼‍♂' => 'ၽူႈၸၢႆးၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚣🏽‍♂' => 'ၽူႈၸၢႆးၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚣🏾‍♂' => 'ၽူႈၸၢႆးၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚣🏿‍♂' => 'ၽူႈၸၢႆးၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚣🏻‍♀' => 'ၽူႈယိင်းၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚣🏼‍♀' => 'ၽူႈယိင်းၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚣🏽‍♀' => 'ၽူႈယိင်းၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚣🏾‍♀' => 'ၽူႈယိင်းၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚣🏿‍♀' => 'ၽူႈယိင်းၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏊🏻‍♂' => 'ၽူႈၸၢႆးလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏊🏼‍♂' => 'ၽူႈၸၢႆးလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏊🏽‍♂' => 'ၽူႈၸၢႆးလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏊🏾‍♂' => 'ၽူႈၸၢႆးလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏊🏿‍♂' => 'ၽူႈၸၢႆးလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏊🏻‍♀' => 'ၽူႈယိင်းလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏊🏼‍♀' => 'ၽူႈယိင်းလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏊🏽‍♀' => 'ၽူႈယိင်းလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏊🏾‍♀' => 'ၽူႈယိင်းလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏊🏿‍♀' => 'ၽူႈယိင်းလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '⛹🏻‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '⛹🏼‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '⛹🏽‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '⛹🏾‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '⛹🏿‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '⛹🏻‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '⛹🏼‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '⛹🏽‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '⛹🏾‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '⛹🏿‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏋🏻‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏋🏼‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏋🏽‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏋🏾‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏋🏿‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏋🏻‍♀' => 'ၽူႈယိင်းယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏋🏼‍♀' => 'ၽူႈယိင်းယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏋🏽‍♀' => 'ၽူႈယိင်းယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏋🏾‍♀' => 'ၽူႈယိင်းယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏋🏿‍♀' => 'ၽူႈယိင်းယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚴🏻‍♂' => 'ၽူႈၸၢႆႈၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚴🏼‍♂' => 'ၽူႈၸၢႆႈၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚴🏽‍♂' => 'ၽူႈၸၢႆႈၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚴🏾‍♂' => 'ၽူႈၸၢႆႈၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚴🏿‍♂' => 'ၽူႈၸၢႆႈၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚴🏻‍♀' => 'ၽူႈယိင်းၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚴🏼‍♀' => 'ၽူႈယိင်းၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚴🏽‍♀' => 'ၽူႈယိင်းၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚴🏾‍♀' => 'ၽူႈယိင်းၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚴🏿‍♀' => 'ၽူႈယိင်းၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚵🏻‍♂' => 'ၽူႈၸၢႆးၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚵🏼‍♂' => 'ၽူႈၸၢႆးၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚵🏽‍♂' => 'ၽူႈၸၢႆးၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚵🏾‍♂' => 'ၽူႈၸၢႆးၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚵🏿‍♂' => 'ၽူႈၸၢႆးၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚵🏻‍♀' => 'ၽူႈယိင်းၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚵🏼‍♀' => 'ၽူႈယိင်းၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚵🏽‍♀' => 'ၽူႈယိင်းၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚵🏾‍♀' => 'ၽူႈယိင်းၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚵🏿‍♀' => 'ၽူႈယိင်းၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤸🏻‍♂' => 'ၽူႈၸၢႆးၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤸🏼‍♂' => 'ၽူႈၸၢႆးၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤸🏽‍♂' => 'ၽူႈၸၢႆးၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤸🏾‍♂' => 'ၽူႈၸၢႆးၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤸🏿‍♂' => 'ၽူႈၸၢႆးၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤸🏻‍♀' => 'ၽူႈယိင်းၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤸🏼‍♀' => 'ၽူႈယိင်းၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤸🏽‍♀' => 'ၽူႈယိင်းၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤸🏾‍♀' => 'ၽူႈယိင်းၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤸🏿‍♀' => 'ၽူႈယိင်းၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤼🏻‍♀' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤼🏼‍♀' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤼🏽‍♀' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤼🏾‍♀' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤼🏿‍♀' => 'ၽူႈယိင်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤼🏻‍♂' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤼🏼‍♂' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤼🏽‍♂' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤼🏾‍♂' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤼🏿‍♂' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤽🏻‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤽🏼‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤽🏽‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤽🏾‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤽🏿‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤽🏻‍♀' => 'ၽူႈယိင်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤽🏼‍♀' => 'ၽူႈယိင်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤽🏽‍♀' => 'ၽူႈယိင်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤽🏾‍♀' => 'ၽူႈယိင်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤽🏿‍♀' => 'ၽူႈယိင်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤾🏻‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤾🏼‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤾🏽‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤾🏾‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤾🏿‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤾🏻‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤾🏼‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤾🏽‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤾🏾‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤾🏿‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤹🏻‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤹🏼‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤹🏽‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤹🏾‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤹🏿‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤹🏻‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤹🏼‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤹🏽‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤹🏾‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤹🏿‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧘🏻‍♂' => 'ၽူႈၸၢႆးၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧘🏼‍♂' => 'ၽူႈၸၢႆးၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧘🏽‍♂' => 'ၽူႈၸၢႆးၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧘🏾‍♂' => 'ၽူႈၸၢႆးၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧘🏿‍♂' => 'ၽူႈၸၢႆးၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧘🏻‍♀' => 'ၽူႈယိင်းၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧘🏼‍♀' => 'ၽူႈယိင်းၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧘🏽‍♀' => 'ၽူႈယိင်းၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧘🏾‍♀' => 'ၽူႈယိင်းၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧘🏿‍♀' => 'ၽူႈယိင်းၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑‍🦰' => 'သုၼ်ႇၵူၼ်း: ၶူၼ်ႁူဝ်လႅင်',
+    '🧑‍🦱' => 'သုၼ်ႇၵူၼ်း: ၶူၼ်​ႁူဝ်ငေႃး',
+    '🧑‍🦳' => 'သုၼ်ႇၵူၼ်း: ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '🧑‍🦲' => 'သုၼ်ႇၵူၼ်း: ႁူဝ်လွမ်ႈ',
+    '👨‍🦰' => 'ၽူႈၸၢႆး: ၶူၼ်ႁူဝ်လႅင်',
+    '👨‍🦱' => 'ၽူႈၸၢႆး: ၶူၼ်​ႁူဝ်ငေႃး',
+    '👨‍🦳' => 'ၽူႈၸၢႆး: ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👨‍🦲' => 'ၽူႈၸၢႆး: ႁူဝ်လွမ်ႈ',
+    '👩‍🦰' => 'ၽူႈယိင်း: ၶူၼ်ႁူဝ်လႅင်',
+    '👩‍🦱' => 'ၽူႈယိင်း: ၶူၼ်​ႁူဝ်ငေႃး',
+    '👩‍🦳' => 'ၽူႈယိင်း: ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '👩‍🦲' => 'ၽူႈယိင်း: ႁူဝ်လွမ်ႈ',
+    '🚶‍➡' => 'ၵူၼ်းပႆတၢင်း: မုင်ႈၶႂႃ',
+    '🧎‍➡' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: မုင်ႈၶႂႃ',
+    '🏃‍➡' => 'ၵူၼ်းလႅၼ်ႈ: မုင်ႈၶႂႃ',
+    '👨‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👨‍👧' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈၸၢႆး လႄႈ တႃႁိူဝ်ႈ',
+    '👩‍👦' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈယိင်း လႄႈ ဢွၼ်ႇၸၢႆး',
+    '👩‍👧' => 'မုင်ႉႁေႃႁိူၼ်း: ၽူႈယိင်း လႄႈ တႃႁိူဝ်ႈ',
+    '😶‍🌫' => 'ၼႃႈမွၵ်ႇၵုမ်ႈ',
+    '😮‍💨' => 'ၼႃႈထူၺ်ႈၸႂ်လူင်',
+    '🙂‍↕' => 'ဝႆႁူဝ်ၶိုၼ်ႈလူင်း',
+    '😵‍💫' => 'ၼႃႈတႃပၼ်ႇတူင်ႇ',
+    '❤‍🔥' => 'ၾႆးမႆႈႁူဝ်ၸႂ်',
+    '❤‍🩹' => 'ႁူဝ်ၸႂ်ပူၵ်ႉဝႆႉ',
+    '👁‍🗨' => 'တႃၼႂ်းၵႂၢမ်းလၢတ်ႈ',
+    '🧔‍♂' => 'ၽူႈၸၢႆး:ၵၢင်းၶူၼ်',
+    '👱‍♂' => 'ၽူႈၸၢႆး: ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ',
+    '🧔‍♀' => 'ၽူႈယိင်း:ၵၢင်းၶူၼ်',
+    '👱‍♀' => 'ၽူႈယိင်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ',
+    '🙍‍♂' => 'ၽူႈၸၢႆးႁူႇၼႃႈႁူႇတႃ',
+    '🙍‍♀' => 'ၽူႈယိင်းႁူႇၼႃႈႁူႇတႃ',
+    '🙎‍♂' => 'ၽူႈၸၢႆးပၢၵ်ႇယိုၼ်ႈ',
+    '🙎‍♀' => 'ၽူႈယိင်းပၢၵ်ႇယိုၼ်ႈ',
+    '🙅‍♂' => 'ၽူႈၸၢႆး ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ',
+    '🙅‍♀' => 'ၽူႈယိင်း ၼႄမိုဝ်း လွင်ႈဝႃႈ ဢမ်ႇ',
+    '🙆‍♂' => 'ၽူႈၸၢႆးၼႄႁၢင်ႈဢူဝ်ႇၶေႇ',
+    '🙆‍♀' => 'ၽူႈယိင်းၼႄႁၢင်ႈဢူဝ်ၶေႇ',
+    '💁‍♂' => 'ၽူႈၸၢႆးပူၵ်းသွၵ်ႇ',
+    '💁‍♀' => 'ၽူႈယိင်းပူၵ်းသွၵ်ႇ',
+    '🙋‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉမိုဝ်း',
+    '🙋‍♀' => 'ၽူႈယိင်းယုၵ်ႉမိုဝ်း',
+    '🧏‍♂' => 'ၽူႈၸၢႆးႁူၼူၵ်ႇ',
+    '🧏‍♀' => 'ၽူႈယိင်းႁူၼူၵ်ႇ',
+    '🙇‍♂' => 'ၽူႈၸၢႆးယွမ်းၼွမ်း',
+    '🙇‍♀' => 'ၽူႈယိင်းယွမ်းၼွမ်း',
+    '🤦‍♂' => 'ၽူႈၸၢႆးတူမ်းၼႃႈ',
+    '🤦‍♀' => 'ၽူႈယိင်းတူမ်းၼႃႈ',
+    '🤷‍♂' => 'ၽူႈၸၢႆးယေႃႈႁူဝ်မႃႇ',
+    '🤷‍♀' => 'ၽူႈယိင်းယေႃႈႁူဝ်မႃႇ',
+    '🧑‍⚕' => 'ၽူႈႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ',
+    '👨‍⚕' => 'ၽူႈၸၢႆးႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ',
+    '👩‍⚕' => 'ၽူႈယိင်းႁၢပ်ႇၵၢၼ်ပၢႆးယူႇလီ',
+    '🧑‍🎓' => 'လုၵ်ႈႁဵၼ်း',
+    '👨‍🎓' => 'လုၵ်ႈႁဵၼ်းၸၢႆး',
+    '👩‍🎓' => 'လုၵ်ႈႁဵၼ်းယိင်း',
+    '🧑‍🏫' => 'မေႃသွၼ်',
+    '👨‍🏫' => 'မေႃသွၼ်ၸၢႆး',
+    '👩‍🏫' => 'မေႃသွၼ်ယိင်း',
+    '🧑‍⚖' => 'ၽူႈထတ်းသိၼ်',
+    '👨‍⚖' => 'ၽူႈထတ်းသိၼ်ၸၢႆး',
+    '👩‍⚖' => 'ၽူႈထတ်းသိၼ်ယိင်း',
+    '🧑‍🌾' => 'ၸဝ်ႈၼႃး',
+    '👨‍🌾' => 'ၸဝ်ႈၼႃးၸၢႆး',
+    '👩‍🌾' => 'ၸဝ်ႈၼႃးယိင်း',
+    '🧑‍🍳' => 'မေႃမိုဝ်ႉ',
+    '👨‍🍳' => 'မေႃမိုဝ်ႉၸၢႆး',
+    '👩‍🍳' => 'မေႃမိုဝ်ႉယိင်း',
+    '🧑‍🔧' => 'မေႃၸၢၵ်ႈ',
+    '👨‍🔧' => 'မေႃၸၢၵ်ႈၸၢႆး',
+    '👩‍🔧' => 'မေႃၸၢၵ်ႈယိင်း',
+    '🧑‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ႁူင်းၸၢၵ်ႈ',
+    '👨‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈၸၢႆး',
+    '👩‍🏭' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၸၢၵ်ႈယိင်း',
+    '🧑‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်း',
+    '👨‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းၸၢႆး',
+    '👩‍💼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်လုမ်းယိင်း',
+    '🧑‍🔬' => 'ပၢႆးသၢႆႊ',
+    '👨‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊၸၢႆး',
+    '👩‍🔬' => 'ၸဝ်ႈပၢႆးသၢႆႊယိင်း',
+    '🧑‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈ',
+    '👨‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈၸၢႆး',
+    '👩‍💻' => 'ၽူႈလူင်ႉလႅၼ်ႇပၢႆးၸၢင်ႈယိင်း',
+    '🧑‍🎤' => 'မေႃၵႂၢမ်း',
+    '👨‍🎤' => 'မေႃၵႂၢမ်းၸၢႆး',
+    '👩‍🎤' => 'မေႃၵႂၢမ်းယိင်း',
+    '🧑‍🎨' => 'မေႃပၢၼ်းသီ',
+    '👨‍🎨' => 'မေႃပၢၼ်းသီၸၢႆး',
+    '👩‍🎨' => 'မေႃပၢၼ်းသီယိင်း',
+    '🧑‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်',
+    '👨‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ၸၢႆး',
+    '👩‍✈' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ယိင်း',
+    '🧑‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသ',
+    '👨‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသၸၢႆး',
+    '👩‍🚀' => 'ၵူၼ်းႁေႃႈႁိူဝ်းမိၼ်ဢႃႇၵႃႇသယိင်း',
+    '🧑‍🚒' => 'ၵူၼ်းၶႄၾႆး',
+    '👨‍🚒' => 'ၵူၼ်းၶႄၾႆးၸၢႆး',
+    '👩‍🚒' => 'ၵူၼ်းၶႄၾႆးယိင်း',
+    '👮‍♂' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈၸၢႆး',
+    '👮‍♀' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈယိင်း',
+    '🕵‍♂' => 'ၽူႈၸွပ်ႇၸၢႆး',
+    '🕵‍♀' => 'ၽူႈၸွပ်ႇယိင်း',
+    '💂‍♂' => 'ၽူႈပႂ်ႉယၢမ်းၸၢႆး',
+    '💂‍♀' => 'ၽူႈပႂ်ႉယၢမ်းယိင်း',
+    '👷‍♂' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈၸၢႆး',
+    '👷‍♀' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈယိင်း',
+    '👳‍♂' => 'ၽူႈၸၢႆးၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်',
+    '👳‍♀' => 'ၽူႈယိင်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်',
+    '🤵‍♂' => 'ၽူႈၸၢႆးလဝ်း',
+    '🤵‍♀' => 'ၽူႈယိင်းလဝ်း',
+    '👰‍♂' => 'ၽူႈၸၢႆးဢၼ်မီးၽႃႇတူမ်းၼႃႈ',
+    '👰‍♀' => 'ၽူႈယိင်းဢၼ်မီးၽႃႈတူမ်းၼႃႈ',
+    '👩‍🍼' => 'ၽူႈယိင်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ',
+    '👨‍🍼' => 'ၽူႈၸၢႆးသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ',
+    '🧑‍🍼' => 'ၵူၼ်းသွမ်ၼူမ်းလုၵ်ႈဢွၼ်ႇ',
+    '🦸‍♂' => 'သူႇပႃႇႁီးရူဝ်းၸၢႆး',
+    '🦸‍♀' => 'သူႇပႃႇႁီးရူဝ်းယိင်း',
+    '🦹‍♂' => 'ၸၢႆးႁၢႆႉလူင်',
+    '🦹‍♀' => 'ယိင်းႁၢႆႉလူင်',
+    '🧙‍♂' => 'ၶိင်းမေႃၽီ',
+    '🧙‍♀' => 'မႄႈၽီ',
+    '🧚‍♂' => 'ၸၢႆးၽီဢွၼ်ႇ',
+    '🧚‍♀' => 'ၼၢင်းၽီဢွၼ်ႇ',
+    '🧛‍♂' => 'ဝႅမ်ႇပႃႇယႃႇပေႃႈ',
+    '🧛‍♀' => 'ဝႅမ်ႇပႃႇယႃႇမႄႈ',
+    '🧜‍♂' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်ပေႃႈ',
+    '🧜‍♀' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈတူဝ်မႄႈ',
+    '🧝‍♂' => 'ဢႄးလ်ၾ်ၽူႈၸၢႆး',
+    '🧝‍♀' => 'ဢႄးလ်ၾ်ၽူႈယိင်း',
+    '🧞‍♂' => 'ယၵ်းၵျီးၼီႇတူဝ်ပေႃႈ',
+    '🧞‍♀' => 'ယၵ်းၵျီးၼီႇတူဝ်မႄႈ',
+    '🧟‍♂' => 'ၸွမ်ႇပီႇတူဝ်ပေႃႈ',
+    '🧟‍♀' => 'ၸွမ်ႇပီႇတူဝ်မႄႈ',
+    '💆‍♂' => 'ၼူတ်ႈၼႃႈၽူႈၸၢႆး',
+    '💆‍♀' => 'ၼူတ်ႈၼႃႈၽူႈယိင်း',
+    '💇‍♂' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈၸၢႆး',
+    '💇‍♀' => 'ၵႅတ်းၶူၼ်ႁူဝ်ၽူႈယိင်း',
+    '🚶‍♂' => 'ၽူႈၸၢႆးပႆတၢင်း',
+    '🚶‍♀' => 'ၽူႈယိင်းပႆတၢင်း',
+    '🧍‍♂' => 'ၽူႈၸၢႆးၸုၵ်း',
+    '🧍‍♀' => 'ၽူႈယိင်းၸုၵ်း',
+    '🧎‍♂' => 'ၽူႈၸၢႆးၶုပ်ႉၶဝ်ႇ',
+    '🧎‍♀' => 'ၽူႈယိင်းၶုပ်ႉၶဝ်ႇ',
+    '🧑‍🦯' => 'ၵူၼ်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း',
+    '👨‍🦯' => 'ၽူႈၸၢႆးပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း',
+    '👩‍🦯' => 'ၽူႈယိင်းပႃးၶွၼ်ႉတဝ်ႉပႆတၢင်း',
+    '🧑‍🦼' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ',
+    '👨‍🦼' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ',
+    '👩‍🦼' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄးၾႆးၾႃႉ',
+    '🧑‍🦽' => 'ၵူၼ်းၼင်ႈဝီးလ်ၶျႄး',
+    '👨‍🦽' => 'ၽူႈၸၢႆးၼင်ႈဝီးလ်ၶျႄး',
+    '👩‍🦽' => 'ၽူႈယိင်းၼင်ႈဝီးလ်ၶျႄး',
+    '🏃‍♂' => 'ၽူႈၸၢႆးလႅၼ်ႈ',
+    '🏃‍♀' => 'ၽူႈယိင်းလႅၼ်ႈ',
+    '🧑‍🩰' => 'ၽူႈၵႃႈပႄးလေး',
+    '👯‍♂' => 'ၽူႈၸၢႆးသႂ်ႇႁူပၢင်တၢႆး',
+    '👯‍♀' => 'ၽူႈယိင်းသႂ်ႇႁူပၢင်တၢႆး',
+    '🧖‍♂' => 'ၽူႈၸၢႆးၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ',
+    '🧖‍♀' => 'ၽူႈယိင်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ',
+    '🧗‍♂' => 'ၽူႈၸၢႆးၶိုၼ်ႈလွႆ',
+    '🧗‍♀' => 'ၽူႈယိင်းၶိုၼ်ႈလွႆ',
+    '🏌‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵွပ်ႉၾ်',
+    '🏌‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵွပ်ႉၾ်',
+    '🏄‍♂' => 'ၽူႈၸၢႆးၶီႇပႅၼ်ႈၼမ်ႉ',
+    '🏄‍♀' => 'ၽူႈယိင်းၶီႇပႅၼ်ႈၼမ်ႉ',
+    '🚣‍♂' => 'ၽူႈၸၢႆးၽၢႆးႁိူဝ်း',
+    '🚣‍♀' => 'ၽူႈယိင်းၽၢႆးႁိူဝ်း',
+    '🏊‍♂' => 'ၽူႈၸၢႆးလုၺ်းၼမ်ႉ',
+    '🏊‍♀' => 'ၽူႈယိင်းလုၺ်းၼမ်ႉ',
+    '⛹‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်',
+    '⛹‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်',
+    '🏋‍♂' => 'ၽူႈၸၢႆးယုၵ်ႉၼမ်ႉၼၵ်း',
+    '🏋‍♀' => 'ၽူႈယိင်းယုၵ်ႉၼမ်ႉၼၵ်း',
+    '🚴‍♂' => 'ၽူႈၸၢႆႈၶီႇလႅင်',
+    '🚴‍♀' => 'ၽူႈယိင်းၶီႇလႅင်',
+    '🚵‍♂' => 'ၽူႈၸၢႆးၶီႇလႅင်လွႆ',
+    '🚵‍♀' => 'ၽူႈယိင်းၶီႇလႅင်လွႆ',
+    '🤸‍♂' => 'ၽူႈၸၢႆးၶိတ်းတင်ႈတူး',
+    '🤸‍♀' => 'ၽူႈယိင်းၶိတ်းတင်ႈတူး',
+    '🤼‍♂' => 'ၽူႈၸၢႆးၵုၼ်းၵၼ်',
+    '🤼‍♀' => 'ၽူႈယိင်းၵုၼ်းၵၼ်',
+    '🤽‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ',
+    '🤽‍♀' => 'ၽူႈယိင်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ',
+    '🤾‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း',
+    '🤾‍♀' => 'ၽူႈယိင်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း',
+    '🤹‍♂' => 'ၽူႈၸၢႆးလဵၼ်ႈၵျၵ်းၵလိင်း',
+    '🤹‍♀' => 'ၽူႈယိင်းလဵၼ်ႈၵျၵ်းၵလိင်း',
+    '🧘‍♂' => 'ၽူႈၸၢႆးၼင်ႈသမႃႇထိ',
+    '🧘‍♀' => 'ၽူႈယိင်းၼင်ႈသမႃႇထိ',
+    '🐕‍🦺' => 'မႃၸွႆႈၵၢၼ်',
+    '🐈‍⬛' => 'မႅဝ်းလမ်',
+    '🐻‍❄' => 'မီၶၢဝ်',
+    '🐦‍⬛' => 'ၼူၵ်ႉလမ်',
+    '🐦‍🔥' => 'ၽီးၼိၵ်ႉ',
+    '🍋‍🟩' => 'မၢၵ်ႇၽႃႈ',
+    '🍄‍🟫' => 'ႁဵပ်းၵမ်ႇ',
+    '⛓‍💥' => 'ၸိူၵ်ႈလဵၵ်းၶၢတ်ႇ',
+    '🏳‍🌈' => 'ၸွမ်ပိဝ်ႁုင်းႁႆး',
+    '🏳‍⚧' => 'ၸွမ်ပိဝ်ၽူႈလႅၵ်ႈလၢႆႈၽဵတ်ႈ',
+    '🏴‍☠' => 'ၸွမ်ပိဝ်ၸူၼ်ပၢင်ႇလၢႆႇ',
+    '👋🏻' => 'ဝႆမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👋🏼' => 'ဝႆမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👋🏽' => 'ဝႆမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👋🏾' => 'ဝႆမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👋🏿' => 'ဝႆမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤚🏻' => 'ယုၵ်ႉလင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤚🏼' => 'ယုၵ်ႉလင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤚🏽' => 'ယုၵ်ႉလင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤚🏾' => 'ယုၵ်ႉလင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤚🏿' => 'ယုၵ်ႉလင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🖐🏻' => 'ယုၵ်ႉသေဢႃႈၼိဝ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🖐🏼' => 'ယုၵ်ႉသေဢႃႈၼိဝ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🖐🏽' => 'ယုၵ်ႉသေဢႃႈၼိဝ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🖐🏾' => 'ယုၵ်ႉသေဢႃႈၼိဝ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🖐🏿' => 'ယုၵ်ႉသေဢႃႈၼိဝ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '✋🏻' => 'ယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '✋🏼' => 'ယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '✋🏽' => 'ယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '✋🏾' => 'ယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '✋🏿' => 'ယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🖖🏻' => 'ဝူဝ်ႇလ်ၵႅၼ်ႇ ၼပ်ႉယမ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🖖🏼' => 'ဝူဝ်ႇလ်ၵႅၼ်ႇ ၼပ်ႉယမ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🖖🏽' => 'ဝူဝ်ႇလ်ၵႅၼ်ႇ ၼပ်ႉယမ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🖖🏾' => 'ဝူဝ်ႇလ်ၵႅၼ်ႇ ၼပ်ႉယမ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🖖🏿' => 'ဝူဝ်ႇလ်ၵႅၼ်ႇ ၼပ်ႉယမ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫱🏻' => 'မိုဝ်းဝၢႆႇၶႂႃ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫱🏼' => 'မိုဝ်းဝၢႆႇၶႂႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫱🏽' => 'မိုဝ်းဝၢႆႇၶႂႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫱🏾' => 'မိုဝ်းဝၢႆႇၶႂႃ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫱🏿' => 'မိုဝ်းဝၢႆႇၶႂႃ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫲🏻' => 'မိုဝ်းဝၢႆႇသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫲🏼' => 'မိုဝ်းဝၢႆႇသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫲🏽' => 'မိုဝ်းဝၢႆႇသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫲🏾' => 'မိုဝ်းဝၢႆႇသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫲🏿' => 'မိုဝ်းဝၢႆႇသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫳🏻' => 'မိုဝ်းဝၢႆႇလူင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫳🏼' => 'မိုဝ်းဝၢႆႇလူင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫳🏽' => 'မိုဝ်းဝၢႆႇလူင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫳🏾' => 'မိုဝ်းဝၢႆႇလူင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫳🏿' => 'မိုဝ်းဝၢႆႇလူင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫴🏻' => 'မိုဝ်းဝၢႆႇၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫴🏼' => 'မိုဝ်းဝၢႆႇၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫴🏽' => 'မိုဝ်းဝၢႆႇၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫴🏾' => 'မိုဝ်းဝၢႆႇၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫴🏿' => 'မိုဝ်းဝၢႆႇၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👌🏻' => 'ႁဵတ်းမိုဝ်းဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👌🏼' => 'ႁဵတ်းမိုဝ်းဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👌🏽' => 'ႁဵတ်းမိုဝ်းဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👌🏾' => 'ႁဵတ်းမိုဝ်းဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👌🏿' => 'ႁဵတ်းမိုဝ်းဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤌🏻' => 'ႁုပ်ႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤌🏼' => 'ႁုပ်ႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤌🏽' => 'ႁုပ်ႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤌🏾' => 'ႁုပ်ႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤌🏿' => 'ႁုပ်ႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤏🏻' => 'မိုဝ်းပိတ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤏🏼' => 'မိုဝ်းပိတ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤏🏽' => 'မိုဝ်းပိတ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤏🏾' => 'မိုဝ်းပိတ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤏🏿' => 'မိုဝ်းပိတ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '✌🏻' => 'ယုၵ်ႉမိုဝ်းသွင်ၼိဝ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '✌🏼' => 'ယုၵ်ႉမိုဝ်းသွင်ၼိဝ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '✌🏽' => 'ယုၵ်ႉမိုဝ်းသွင်ၼိဝ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '✌🏾' => 'ယုၵ်ႉမိုဝ်းသွင်ၼိဝ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '✌🏿' => 'ယုၵ်ႉမိုဝ်းသွင်ၼိဝ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤞🏻' => 'ၼိဝ်ႉမိုဝ်းၵဵဝ်ႈၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤞🏼' => 'ၼိဝ်ႉမိုဝ်းၵဵဝ်ႈၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤞🏽' => 'ၼိဝ်ႉမိုဝ်းၵဵဝ်ႈၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤞🏾' => 'ၼိဝ်ႉမိုဝ်းၵဵဝ်ႈၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤞🏿' => 'ၼိဝ်ႉမိုဝ်းၵဵဝ်ႈၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫰🏻' => 'ၼိဝ်ႉၸီႉၵဵဝ်ႈႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫰🏼' => 'ၼိဝ်ႉၸီႉၵဵဝ်ႈႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫰🏽' => 'ၼိဝ်ႉၸီႉၵဵဝ်ႈႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫰🏾' => 'ၼိဝ်ႉၸီႉၵဵဝ်ႈႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫰🏿' => 'ၼိဝ်ႉၸီႉၵဵဝ်ႈႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤟🏻' => 'ၼႄႁၢင်ႈမိုဝ်းႁၵ်ႉသူ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤟🏼' => 'ၼႄႁၢင်ႈမိုဝ်းႁၵ်ႉသူ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤟🏽' => 'ၼႄႁၢင်ႈမိုဝ်းႁၵ်ႉသူ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤟🏾' => 'ၼႄႁၢင်ႈမိုဝ်းႁၵ်ႉသူ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤟🏿' => 'ၼႄႁၢင်ႈမိုဝ်းႁၵ်ႉသူ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤘🏻' => 'မိၵ်ႈမၢႆၶဝ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤘🏼' => 'မိၵ်ႈမၢႆၶဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤘🏽' => 'မိၵ်ႈမၢႆၶဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤘🏾' => 'မိၵ်ႈမၢႆၶဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤘🏿' => 'မိၵ်ႈမၢႆၶဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤙🏻' => 'မိုဝ်းထူဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤙🏼' => 'မိုဝ်းထူဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤙🏽' => 'မိုဝ်းထူဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤙🏾' => 'မိုဝ်းထူဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤙🏿' => 'မိုဝ်းထူဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👈🏻' => 'လင်မိုဝ်းၸီႉသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👈🏼' => 'လင်မိုဝ်းၸီႉသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👈🏽' => 'လင်မိုဝ်းၸီႉသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👈🏾' => 'လင်မိုဝ်းၸီႉသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👈🏿' => 'လင်မိုဝ်းၸီႉသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👉🏻' => 'လင်မိုဝ်းၸီႉၶႂႃ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👉🏼' => 'လင်မိုဝ်းၸီႉၶႂႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👉🏽' => 'လင်မိုဝ်းၸီႉၶႂႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👉🏾' => 'လင်မိုဝ်းၸီႉၶႂႃ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👉🏿' => 'လင်မိုဝ်းၸီႉၶႂႃ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👆🏻' => 'လင်မိုဝ်းၸီႉၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👆🏼' => 'လင်မိုဝ်းၸီႉၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👆🏽' => 'လင်မိုဝ်းၸီႉၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👆🏾' => 'လင်မိုဝ်းၸီႉၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👆🏿' => 'လင်မိုဝ်းၸီႉၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🖕🏻' => 'ၼိဝ်ႉၵၢင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🖕🏼' => 'ၼိဝ်ႉၵၢင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🖕🏽' => 'ၼိဝ်ႉၵၢင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🖕🏾' => 'ၼိဝ်ႉၵၢင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🖕🏿' => 'ၼိဝ်ႉၵၢင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👇🏻' => 'လင်မိုဝ်းၸီႉလူင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👇🏼' => 'လင်မိုဝ်းၸီႉလူင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👇🏽' => 'လင်မိုဝ်းၸီႉလူင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👇🏾' => 'လင်မိုဝ်းၸီႉလူင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👇🏿' => 'လင်မိုဝ်းၸီႉလူင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '☝🏻' => 'ၸီႉၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '☝🏼' => 'ၸီႉၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '☝🏽' => 'ၸီႉၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '☝🏾' => 'ၸီႉၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '☝🏿' => 'ၸီႉၶိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫵🏻' => 'ၸီႉတေႃႇၵူၼ်းတူၺ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫵🏼' => 'ၸီႉတေႃႇၵူၼ်းတူၺ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫵🏽' => 'ၸီႉတေႃႇၵူၼ်းတူၺ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫵🏾' => 'ၸီႉတေႃႇၵူၼ်းတူၺ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫵🏿' => 'ၸီႉတေႃႇၵူၼ်းတူၺ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👍🏻' => 'ပူၵ်းႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👍🏼' => 'ပူၵ်းႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👍🏽' => 'ပူၵ်းႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👍🏾' => 'ပူၵ်းႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👍🏿' => 'ပူၵ်းႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👎🏻' => 'ၶွမ်ႈႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👎🏼' => 'ၶွမ်ႈႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👎🏽' => 'ၶွမ်ႈႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👎🏾' => 'ၶွမ်ႈႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👎🏿' => 'ၶွမ်ႈႁူဝ်မႄႈမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '✊🏻' => 'ၵမ်တႃမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '✊🏼' => 'ၵမ်တႃမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '✊🏽' => 'ၵမ်တႃမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '✊🏾' => 'ၵမ်တႃမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '✊🏿' => 'ၵမ်တႃမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👊🏻' => 'တႃမိုဝ်းမႃးၽၢႆႇၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👊🏼' => 'တႃမိုဝ်းမႃးၽၢႆႇၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👊🏽' => 'တႃမိုဝ်းမႃးၽၢႆႇၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👊🏾' => 'တႃမိုဝ်းမႃးၽၢႆႇၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👊🏿' => 'တႃမိုဝ်းမႃးၽၢႆႇၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤛🏻' => 'တႃမိုဝ်းဝၢႆႇသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤛🏼' => 'တႃမိုဝ်းဝၢႆႇသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤛🏽' => 'တႃမိုဝ်းဝၢႆႇသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤛🏾' => 'တႃမိုဝ်းဝၢႆႇသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤛🏿' => 'တႃမိုဝ်းဝၢႆႇသၢႆႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤜🏻' => 'တႃမိုဝ်းဝၢႆႇၶႂႃ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤜🏼' => 'တႃမိုဝ်းဝၢႆႇၶႂႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤜🏽' => 'တႃမိုဝ်းဝၢႆႇၶႂႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤜🏾' => 'တႃမိုဝ်းဝၢႆႇၶႂႃ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤜🏿' => 'တႃမိုဝ်းဝၢႆႇၶႂႃ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👏🏻' => 'တူပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👏🏼' => 'တူပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👏🏽' => 'တူပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👏🏾' => 'တူပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👏🏿' => 'တူပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫶🏻' => 'မိုဝ်းႁူဝ်ၸႂ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫶🏼' => 'မိုဝ်းႁူဝ်ၸႂ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫶🏽' => 'မိုဝ်းႁူဝ်ၸႂ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫶🏾' => 'မိုဝ်းႁူဝ်ၸႂ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫶🏿' => 'မိုဝ်းႁူဝ်ၸႂ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👐🏻' => 'ပိုတ်ႇမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👐🏼' => 'ပိုတ်ႇမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👐🏽' => 'ပိုတ်ႇမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👐🏾' => 'ပိုတ်ႇမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👐🏿' => 'ပိုတ်ႇမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤲🏻' => 'ၵွပ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤲🏼' => 'ၵွပ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤲🏽' => 'ၵွပ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤲🏾' => 'ၵွပ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤲🏿' => 'ၵွပ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤝🏻' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤝🏼' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤝🏽' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤝🏾' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤝🏿' => 'ယိပ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙏🏻' => 'ႁွမ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙏🏼' => 'ႁွမ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙏🏽' => 'ႁွမ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙏🏾' => 'ႁွမ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙏🏿' => 'ႁွမ်းမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '✍🏻' => 'မိုဝ်းတႅမ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '✍🏼' => 'မိုဝ်းတႅမ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '✍🏽' => 'မိုဝ်းတႅမ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '✍🏾' => 'မိုဝ်းတႅမ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '✍🏿' => 'မိုဝ်းတႅမ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💅🏻' => 'ယွမ်ႉၼဵပ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💅🏼' => 'ယွမ်ႉၼဵပ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💅🏽' => 'ယွမ်ႉၼဵပ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💅🏾' => 'ယွမ်ႉၼဵပ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💅🏿' => 'ယွမ်ႉၼဵပ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤳🏻' => 'သႄႇလ်ၾီႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤳🏼' => 'သႄႇလ်ၾီႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤳🏽' => 'သႄႇလ်ၾီႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤳🏾' => 'သႄႇလ်ၾီႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤳🏿' => 'သႄႇလ်ၾီႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💪🏻' => 'ၵူင်ႇၶႅၼ်ၼႄႁႅင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💪🏼' => 'ၵူင်ႇၶႅၼ်ၼႄႁႅင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💪🏽' => 'ၵူင်ႇၶႅၼ်ၼႄႁႅင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💪🏾' => 'ၵူင်ႇၶႅၼ်ၼႄႁႅင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💪🏿' => 'ၵူင်ႇၶႅၼ်ၼႄႁႅင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🦵🏻' => 'ၶႃ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🦵🏼' => 'ၶႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🦵🏽' => 'ၶႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🦵🏾' => 'ၶႃ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🦵🏿' => 'ၶႃ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🦶🏻' => 'တိၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🦶🏼' => 'တိၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🦶🏽' => 'တိၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🦶🏾' => 'တိၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🦶🏿' => 'တိၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👂🏻' => 'ႁူ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👂🏼' => 'ႁူ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👂🏽' => 'ႁူ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👂🏾' => 'ႁူ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👂🏿' => 'ႁူ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🦻🏻' => 'ႁူပႃးၶိူင်ႈထွမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🦻🏼' => 'ႁူပႃးၶိူင်ႈထွမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🦻🏽' => 'ႁူပႃးၶိူင်ႈထွမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🦻🏾' => 'ႁူပႃးၶိူင်ႈထွမ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🦻🏿' => 'ႁူပႃးၶိူင်ႈထွမ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👃🏻' => 'ၶူႈလင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👃🏼' => 'ၶူႈလင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👃🏽' => 'ၶူႈလင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👃🏾' => 'ၶူႈလင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👃🏿' => 'ၶူႈလင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👶🏻' => 'လုၵ်ႈဢွၼ်ႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👶🏼' => 'လုၵ်ႈဢွၼ်ႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👶🏽' => 'လုၵ်ႈဢွၼ်ႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👶🏾' => 'လုၵ်ႈဢွၼ်ႇလႅင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👶🏿' => 'လုၵ်ႈဢွၼ်ႇလႅင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧒🏻' => 'လုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧒🏼' => 'လုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧒🏽' => 'လုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧒🏾' => 'လုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧒🏿' => 'လုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👦🏻' => 'ဢွၼ်ႇၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👦🏼' => 'ဢွၼ်ႇၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👦🏽' => 'ဢွၼ်ႇၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👦🏾' => 'ဢွၼ်ႇၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👦🏿' => 'ဢွၼ်ႇၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👧🏻' => 'တႃႁိူဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👧🏼' => 'တႃႁိူဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👧🏽' => 'တႃႁိူဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👧🏾' => 'တႃႁိူဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👧🏿' => 'တႃႁိူဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧑🏻' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧑🏼' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧑🏽' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧑🏾' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧑🏿' => 'သုၼ်ႇၵူၼ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👱🏻' => 'ၵူၼ်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👱🏼' => 'ၵူၼ်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👱🏽' => 'ၵူၼ်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👱🏾' => 'ၵူၼ်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👱🏿' => 'ၵူၼ်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👨🏻' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👨🏼' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👨🏽' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👨🏾' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👨🏿' => 'ၽူႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧔🏻' => 'ၵူၼ်း:မွႆၵၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧔🏼' => 'ၵူၼ်း:မွႆၵၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧔🏽' => 'ၵူၼ်း:မွႆၵၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧔🏾' => 'ၵူၼ်း:မွႆၵၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧔🏿' => 'ၵူၼ်း:မွႆၵၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👩🏻' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👩🏼' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👩🏽' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👩🏾' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👩🏿' => 'ၽူႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧓🏻' => 'ၵူၼ်းထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧓🏼' => 'ၵူၼ်းထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧓🏽' => 'ၵူၼ်းထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧓🏾' => 'ၵူၼ်းထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧓🏿' => 'ၵူၼ်းထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👴🏻' => 'ပူႇထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👴🏼' => 'ပူႇထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👴🏽' => 'ပူႇထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👴🏾' => 'ပူႇထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👴🏿' => 'ပူႇထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👵🏻' => 'ၼၢႆးထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👵🏼' => 'ၼၢႆးထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👵🏽' => 'ၼၢႆးထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👵🏾' => 'ၼၢႆးထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👵🏿' => 'ၼၢႆးထဝ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙍🏻' => 'ၵူၼ်းႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙍🏼' => 'ၵူၼ်းႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙍🏽' => 'ၵူၼ်းႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙍🏾' => 'ၵူၼ်းႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙍🏿' => 'ၵူၼ်းႁူႇၼႃႈႁူႇတႃ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙎🏻' => 'ပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙎🏼' => 'ပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙎🏽' => 'ပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙎🏾' => 'ပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙎🏿' => 'ပၢၵ်ႇယိုၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙅🏻' => 'မိုဝ်းႁဵတ်းၼႄ လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙅🏼' => 'မိုဝ်းႁဵတ်းၼႄ လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙅🏽' => 'မိုဝ်းႁဵတ်းၼႄ လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙅🏾' => 'မိုဝ်းႁဵတ်းၼႄ လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙅🏿' => 'မိုဝ်းႁဵတ်းၼႄ လွင်ႈဝႃႈ ဢမ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙆🏻' => 'ႁဵတ်းၼႄတူဝ်ဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙆🏼' => 'ႁဵတ်းၼႄတူဝ်ဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙆🏽' => 'ႁဵတ်းၼႄတူဝ်ဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙆🏾' => 'ႁဵတ်းၼႄတူဝ်ဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙆🏿' => 'ႁဵတ်းၼႄတူဝ်ဢူဝ်ႇၶေႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💁🏻' => 'ၵူၼ်းပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💁🏼' => 'ၵူၼ်းပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💁🏽' => 'ၵူၼ်းပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💁🏾' => 'ၵူၼ်းပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💁🏿' => 'ၵူၼ်းပူၵ်းသွၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙋🏻' => 'ၵူၼ်းယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙋🏼' => 'ၵူၼ်းယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙋🏽' => 'ၵူၼ်းယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙋🏾' => 'ၵူၼ်းယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙋🏿' => 'ၵူၼ်းယုၵ်ႉမိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧏🏻' => 'ၵူၼ်းႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧏🏼' => 'ၵူၼ်းႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧏🏽' => 'ၵူၼ်းႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧏🏾' => 'ၵူၼ်းႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧏🏿' => 'ၵူၼ်းႁူၼူၵ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🙇🏻' => 'ၵူၼ်းယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🙇🏼' => 'ၵူၼ်းယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🙇🏽' => 'ၵူၼ်းယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🙇🏾' => 'ၵူၼ်းယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🙇🏿' => 'ၵူၼ်းယွမ်းၼွမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤦🏻' => 'ၵူၼ်းတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤦🏼' => 'ၵူၼ်းတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤦🏽' => 'ၵူၼ်းတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤦🏾' => 'ၵူၼ်းတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤦🏿' => 'ၵူၼ်းတူမ်းၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤷🏻' => 'ၵူၼ်းယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤷🏼' => 'ၵူၼ်းယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤷🏽' => 'ၵူၼ်းယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤷🏾' => 'ၵူၼ်းယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤷🏿' => 'ၵူၼ်းယေႃႈႁူဝ်မႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👮🏻' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👮🏼' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👮🏽' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👮🏾' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👮🏿' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🕵🏻' => 'ၽူႈၸွပ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🕵🏼' => 'ၽူႈၸွပ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🕵🏽' => 'ၽူႈၸွပ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🕵🏾' => 'ၽူႈၸွပ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🕵🏿' => 'ၽူႈၸွပ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💂🏻' => 'ၽူႈပႂ်ႉယၢမ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💂🏼' => 'ၽူႈပႂ်ႉယၢမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💂🏽' => 'ၽူႈပႂ်ႉယၢမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💂🏾' => 'ၽူႈပႂ်ႉယၢမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💂🏿' => 'ၽူႈပႂ်ႉယၢမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🥷🏻' => 'ၼိၼ်ႇၵျႃႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🥷🏼' => 'ၼိၼ်ႇၵျႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🥷🏽' => 'ၼိၼ်ႇၵျႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🥷🏾' => 'ၼိၼ်ႇၵျႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🥷🏿' => 'ၼိၼ်ႇၵျႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👷🏻' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👷🏼' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👷🏽' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👷🏾' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👷🏿' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫅🏻' => 'ၵူၼ်းသုပ်းဝႅၼ်ႁူဝ်ၶမ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫅🏼' => 'ၵူၼ်းသုပ်းဝႅၼ်ႁူဝ်ၶမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫅🏽' => 'ၵူၼ်းသုပ်းဝႅၼ်ႁူဝ်ၶမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫅🏾' => 'ၵူၼ်းသုပ်းဝႅၼ်ႁူဝ်ၶမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫅🏿' => 'ၵူၼ်းသုပ်းဝႅၼ်ႁူဝ်ၶမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤴🏻' => 'ၸဝ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤴🏼' => 'ၸဝ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤴🏽' => 'ၸဝ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤴🏾' => 'ၸဝ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤴🏿' => 'ၸဝ်ႈၸၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👸🏻' => 'ၸဝ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👸🏼' => 'ၸဝ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👸🏽' => 'ၸဝ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👸🏾' => 'ၸဝ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👸🏿' => 'ၸဝ်ႈယိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👳🏻' => 'ၵူၼ်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👳🏼' => 'ၵူၼ်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👳🏽' => 'ၵူၼ်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👳🏾' => 'ၵူၼ်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👳🏿' => 'ၵူၼ်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👲🏻' => 'ၸၢႆးၶႄႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👲🏼' => 'ၸၢႆးၶႄႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👲🏽' => 'ၸၢႆးၶႄႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👲🏾' => 'ၸၢႆးၶႄႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👲🏿' => 'ၸၢႆးၶႄႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧕🏻' => 'ၼၢင်းယိင်းသုပ်းၽႃႈႁူမ်ႇႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧕🏼' => 'ၼၢင်းယိင်းသုပ်းၽႃႈႁူမ်ႇႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧕🏽' => 'ၼၢင်းယိင်းသုပ်းၽႃႈႁူမ်ႇႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧕🏾' => 'ၼၢင်းယိင်းသုပ်းၽႃႈႁူမ်ႇႁူဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧕🏿' => 'ၼၢင်းယိင်းသုပ်းၽႃႈႁူမ်ႇႁူဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤵🏻' => 'ၵူၼ်းလဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤵🏼' => 'ၵူၼ်းလဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤵🏽' => 'ၵူၼ်းလဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤵🏾' => 'ၵူၼ်းလဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤵🏿' => 'ၵူၼ်းလဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👰🏻' => 'ၸဝ်ႈသၢဝ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👰🏼' => 'ၸဝ်ႈသၢဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👰🏽' => 'ၸဝ်ႈသၢဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👰🏾' => 'ၸဝ်ႈသၢဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👰🏿' => 'ၸဝ်ႈသၢဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤰🏻' => 'ၽူႈယိင်းပႃးတွင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤰🏼' => 'ၽူႈယိင်းပႃးတွင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤰🏽' => 'ၽူႈယိင်းပႃးတွင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤰🏾' => 'ၽူႈယိင်းပႃးတွင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤰🏿' => 'ၽူႈယိင်းပႃးတွင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫃🏻' => 'ၽူႈၸၢႆးပႃးတွင်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫃🏼' => 'ၽူႈၸၢႆးပႃးတွင်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫃🏽' => 'ၽူႈၸၢႆးပႃးတွင်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫃🏾' => 'ၽူႈၸၢႆးပႃးတွင်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫃🏿' => 'ၽူႈၸၢႆးပႃးတွင်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🫄🏻' => 'ၵူၼ်းပႃးတွင်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🫄🏼' => 'ၵူၼ်းပႃးတွင်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🫄🏽' => 'ၵူၼ်းပႃးတွင်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🫄🏾' => 'ၵူၼ်းပႃးတွင်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🫄🏿' => 'ၵူၼ်းပႃးတွင်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤱🏻' => 'လဵင်ႉၼူမ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤱🏼' => 'လဵင်ႉၼူမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤱🏽' => 'လဵင်ႉၼူမ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤱🏾' => 'လဵင်ႉၼူမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤱🏿' => 'လဵင်ႉၼူမ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👼🏻' => 'ၶုၼ်ၽီလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👼🏼' => 'ၶုၼ်ၽီလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👼🏽' => 'ၶုၼ်ၽီလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👼🏾' => 'ၶုၼ်ၽီလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👼🏿' => 'ၶုၼ်ၽီလုၵ်ႈဢွၼ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🎅🏻' => 'သၼ်ႇတႃႇၶလွတ်ႉသ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🎅🏼' => 'သၼ်ႇတႃႇၶလွတ်ႉသ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🎅🏽' => 'သၼ်ႇတႃႇၶလွတ်ႉသ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🎅🏾' => 'သၼ်ႇတႃႇၶလွတ်ႉသ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🎅🏿' => 'သၼ်ႇတႃႇၶလွတ်ႉသ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤶🏻' => 'ၼၢင်းသၼ်ႇတႃႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤶🏼' => 'ၼၢင်းသၼ်ႇတႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤶🏽' => 'ၼၢင်းသၼ်ႇတႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤶🏾' => 'ၼၢင်းသၼ်ႇတႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤶🏿' => 'ၼၢင်းသၼ်ႇတႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🦸🏻' => 'သူႇပႃႇႁီးရူဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🦸🏼' => 'သူႇပႃႇႁီးရူဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🦸🏽' => 'သူႇပႃႇႁီးရူဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🦸🏾' => 'သူႇပႃႇႁီးရူဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🦸🏿' => 'သူႇပႃႇႁီးရူဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🦹🏻' => 'ၵူၼ်းႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🦹🏼' => 'ၵူၼ်းႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🦹🏽' => 'ၵူၼ်းႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🦹🏾' => 'ၵူၼ်းႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🦹🏿' => 'ၵူၼ်းႁၢႆႉလူင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧙🏻' => 'မေႃၽီ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧙🏼' => 'မေႃၽီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧙🏽' => 'မေႃၽီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧙🏾' => 'မေႃၽီ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧙🏿' => 'မေႃၽီ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧚🏻' => 'ၼၢင်းၽီ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧚🏼' => 'ၼၢင်းၽီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧚🏽' => 'ၼၢင်းၽီ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧚🏾' => 'ၼၢင်းၽီ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧚🏿' => 'ၼၢင်းၽီ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧛🏻' => 'ဝႅမ်ႇပႃႇယႃႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧛🏼' => 'ဝႅမ်ႇပႃႇယႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧛🏽' => 'ဝႅမ်ႇပႃႇယႃႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧛🏾' => 'ဝႅမ်ႇပႃႇယႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧛🏿' => 'ဝႅမ်ႇပႃႇယႃႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧜🏻' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧜🏼' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧜🏽' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧜🏾' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧜🏿' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧝🏻' => 'ဢႄးလ်ၾ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧝🏼' => 'ဢႄးလ်ၾ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧝🏽' => 'ဢႄးလ်ၾ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧝🏾' => 'ဢႄးလ်ၾ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧝🏿' => 'ဢႄးလ်ၾ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💆🏻' => 'ၼူတ်ႈၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💆🏼' => 'ၼူတ်ႈၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💆🏽' => 'ၼူတ်ႈၼႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💆🏾' => 'ၼူတ်ႈၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💆🏿' => 'ၼူတ်ႈၼႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💇🏻' => 'ၵႅတ်းၶူၼ်ႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💇🏼' => 'ၵႅတ်းၶူၼ်ႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💇🏽' => 'ၵႅတ်းၶူၼ်ႁူဝ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💇🏾' => 'ၵႅတ်းၶူၼ်ႁူဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💇🏿' => 'ၵႅတ်းၶူၼ်ႁူဝ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚶🏻' => 'ၵူၼ်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚶🏼' => 'ၵူၼ်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚶🏽' => 'ၵူၼ်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚶🏾' => 'ၵူၼ်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚶🏿' => 'ၵူၼ်းပႆတၢင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧍🏻' => 'ၵူၼ်းၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧍🏼' => 'ၵူၼ်းၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧍🏽' => 'ၵူၼ်းၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧍🏾' => 'ၵူၼ်းၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧍🏿' => 'ၵူၼ်းၸုၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧎🏻' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧎🏼' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧎🏽' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧎🏾' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧎🏿' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏃🏻' => 'ၵူၼ်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏃🏼' => 'ၵူၼ်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏃🏽' => 'ၵူၼ်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏃🏾' => 'ၵူၼ်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏃🏿' => 'ၵူၼ်းလႅၼ်ႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💃🏻' => 'ၽူႈယိင်းၵႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💃🏼' => 'ၽူႈယိင်းၵႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💃🏽' => 'ၽူႈယိင်းၵႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💃🏾' => 'ၽူႈယိင်းၵႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💃🏿' => 'ၽူႈယိင်းၵႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🕺🏻' => 'ၽူႈၸၢႆးၵႃႈ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🕺🏼' => 'ၽူႈၸၢႆးၵႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🕺🏽' => 'ၽူႈၸၢႆးၵႃႈ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🕺🏾' => 'ၽူႈၸၢႆးၵႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🕺🏿' => 'ၽူႈၸၢႆးၵႃႈ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🕴🏻' => 'ၵူၼ်းၼုင်ႈသိူဝ်ႈၶူဝ်းသုတ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🕴🏼' => 'ၵူၼ်းၼုင်ႈသိူဝ်ႈၶူဝ်းသုတ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🕴🏽' => 'ၵူၼ်းၼုင်ႈသိူဝ်ႈၶူဝ်းသုတ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🕴🏾' => 'ၵူၼ်းၼုင်ႈသိူဝ်ႈၶူဝ်းသုတ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🕴🏿' => 'ၵူၼ်းၼုင်ႈသိူဝ်ႈၶူဝ်းသုတ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👯🏻' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👯🏼' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👯🏽' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👯🏾' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👯🏿' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧖🏻' => 'ၵူၼ်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧖🏼' => 'ၵူၼ်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧖🏽' => 'ၵူၼ်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧖🏾' => 'ၵူၼ်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧖🏿' => 'ၵူၼ်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧗🏻' => 'ၵူၼ်းၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧗🏼' => 'ၵူၼ်းၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧗🏽' => 'ၵူၼ်းၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧗🏾' => 'ၵူၼ်းၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧗🏿' => 'ၵူၼ်းၶိုၼ်ႈလွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏇🏻' => 'ၶႄႉၶဵင်ႇမႃႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏇🏼' => 'ၶႄႉၶဵင်ႇမႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏇🏽' => 'ၶႄႉၶဵင်ႇမႃႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏇🏾' => 'ၶႄႉၶဵင်ႇမႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏇🏿' => 'ၶႄႉၶဵင်ႇမႃႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏂🏻' => 'ၵူၼ်းၶီႇပႅၼ်ႈမူၺ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏂🏼' => 'ၵူၼ်းၶီႇပႅၼ်ႈမူၺ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏂🏽' => 'ၵူၼ်းၶီႇပႅၼ်ႈမူၺ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏂🏾' => 'ၵူၼ်းၶီႇပႅၼ်ႈမူၺ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏂🏿' => 'ၵူၼ်းၶီႇပႅၼ်ႈမူၺ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏌🏻' => 'ၵူၼ်းလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏌🏼' => 'ၵူၼ်းလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏌🏽' => 'ၵူၼ်းလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏌🏾' => 'ၵူၼ်းလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏌🏿' => 'ၵူၼ်းလဵၼ်ႈၵွပ်ႉၾ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏄🏻' => 'ၵူၼ်းၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏄🏼' => 'ၵူၼ်းၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏄🏽' => 'ၵူၼ်းၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏄🏾' => 'ၵူၼ်းၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏄🏿' => 'ၵူၼ်းၶီႇပႅၼ်ႈၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚣🏻' => 'ၵူၼ်းၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚣🏼' => 'ၵူၼ်းၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚣🏽' => 'ၵူၼ်းၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚣🏾' => 'ၵူၼ်းၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚣🏿' => 'ၵူၼ်းၽၢႆးႁိူဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏊🏻' => 'ၵူၼ်းလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏊🏼' => 'ၵူၼ်းလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏊🏽' => 'ၵူၼ်းလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏊🏾' => 'ၵူၼ်းလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏊🏿' => 'ၵူၼ်းလုၺ်းၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '⛹🏻' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '⛹🏼' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '⛹🏽' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '⛹🏾' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '⛹🏿' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🏋🏻' => 'ၵူၼ်းယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏋🏼' => 'ၵူၼ်းယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏋🏽' => 'ၵူၼ်းယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏋🏾' => 'ၵူၼ်းယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏋🏿' => 'ၵူၼ်းယုၵ်ႉၼမ်ႉၼၵ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚴🏻' => 'ၵူၼ်းၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚴🏼' => 'ၵူၼ်းၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚴🏽' => 'ၵူၼ်းၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚴🏾' => 'ၵူၼ်းၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚴🏿' => 'ၵူၼ်းၶီႇလႅင်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🚵🏻' => 'ၵူၼ်းၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🚵🏼' => 'ၵူၼ်းၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🚵🏽' => 'ၵူၼ်းၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🚵🏾' => 'ၵူၼ်းၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🚵🏿' => 'ၵူၼ်းၶီႇလႅင်လွႆ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤸🏻' => 'ၵူၼ်းၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤸🏼' => 'ၵူၼ်းၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤸🏽' => 'ၵူၼ်းၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤸🏾' => 'ၵူၼ်းၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤸🏿' => 'ၵူၼ်းၶိတ်းတင်ႈတူး: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤼🏻' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤼🏼' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤼🏽' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤼🏾' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤼🏿' => 'ၵူၼ်းၵုၼ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤽🏻' => 'ၵူၼ်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤽🏼' => 'ၵူၼ်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤽🏽' => 'ၵူၼ်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤽🏾' => 'ၵူၼ်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤽🏿' => 'ၵူၼ်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤾🏻' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤾🏼' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤾🏽' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤾🏾' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤾🏿' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🤹🏻' => 'ၵူၼ်းလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🤹🏼' => 'ၵူၼ်းလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🤹🏽' => 'ၵူၼ်းလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🤹🏾' => 'ၵူၼ်းလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🤹🏿' => 'ၵူၼ်းလဵၼ်ႈၵျၵ်းၵလိင်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🧘🏻' => 'ၵူၼ်းၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🧘🏼' => 'ၵူၼ်းၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🧘🏽' => 'ၵူၼ်းၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🧘🏾' => 'ၵူၼ်းၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🧘🏿' => 'ၵူၼ်းၼင်ႈသမႃႇထိ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🛀🏻' => 'ၵူၼ်းဢၢပ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🛀🏼' => 'ၵူၼ်းဢၢပ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🛀🏽' => 'ၵူၼ်းဢၢပ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🛀🏾' => 'ၵူၼ်းဢၢပ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🛀🏿' => 'ၵူၼ်းဢၢပ်ႇၼမ်ႉ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🛌🏻' => 'ၵူၼ်းၼွၼ်းလပ်း: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🛌🏼' => 'ၵူၼ်းၼွၼ်းလပ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🛌🏽' => 'ၵူၼ်းၼွၼ်းလပ်း: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🛌🏾' => 'ၵူၼ်းၼွၼ်းလပ်း: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🛌🏿' => 'ၵူၼ်းၼွၼ်းလပ်း: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👭🏻' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👭🏼' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👭🏽' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👭🏾' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👭🏿' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👫🏻' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👫🏼' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👫🏽' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👫🏾' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👫🏿' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '👬🏻' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '👬🏼' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '👬🏽' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '👬🏾' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '👬🏿' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💏🏻' => 'ၸုပ်ႇ: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💏🏼' => 'ၸုပ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💏🏽' => 'ၸုပ်ႇ: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💏🏾' => 'ၸုပ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💏🏿' => 'ၸုပ်ႇ: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '💑🏻' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '💑🏼' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '💑🏽' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '💑🏾' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '💑🏿' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်: သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '🇦🇨' => 'ၸွမ်ပိဝ်: ၵုၼ်ဢေႇသႅၼ်းသျိၼ်ႇ',
+    '🇦🇩' => 'ၸွမ်ပိဝ်: ဢႅၼ်ႇတူဝ်ႇရႃႇ',
+    '🇦🇪' => 'ၸွမ်ပိဝ်: မိူင်းႁူမ်ႈတုမ် ၸဝ်ႈၾႃႉ ဢႃႇရၢပ်ႈ',
+    '🇦🇫' => 'ၸွမ်ပိဝ်: ဢႃႇၾၵၢၼ်ႇၼီႇသတၢၼ်ႇ',
+    '🇦🇬' => 'ၸွမ်ပိဝ်: ဢႅၼ်ႇထီႇၵႂႃႇ လႄႈ ပႃႇပူးတႃႇ',
+    '🇦🇮' => 'ၸွမ်ပိဝ်: ဢႅၼ်ႇၵုၺ်ႇလႃႇ',
+    '🇦🇱' => 'ၸွမ်ပိဝ်: ဢႃႇပႃးၼီးယႃး',
+    '🇦🇲' => 'ၸွမ်ပိဝ်: ဢႃႇမေးၼီးယႃး',
+    '🇦🇴' => 'ၸွမ်ပိဝ်: ဢႅၼ်ႇၵူဝ်ႇလႃႇ',
+    '🇦🇶' => 'ၸွမ်ပိဝ်: ဢႅၼ်ႇတၢၵ်ႈတီးၵႃႈ',
+    '🇦🇷' => 'ၸွမ်ပိဝ်: ဢႃႇၵျႅၼ်ႇတီးၼႃး',
+    '🇦🇸' => 'ၸွမ်ပိဝ်: သႃႇမူဝ်းဝႃႇ ၶွ​င် ဢမႄႇရိၵၢၼ်ႇ',
+    '🇦🇹' => 'ၸွမ်ပိဝ်: ဢေႃးသထရီးယႃး',
+    '🇦🇺' => 'ၸွမ်ပိဝ်: ဢေႃႉသထရေးလီးယႃး',
+    '🇦🇼' => 'ၸွမ်ပိဝ်: ဢႃႇရူးပႃး',
+    '🇦🇽' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ဢေႃးလႅၼ်ႇ',
+    '🇦🇿' => 'ၸွမ်ပိဝ်: ဢႃႇၸႃႇပၢႆႇၸၼ်ႇ',
+    '🇧🇦' => 'ၸွမ်ပိဝ်: ပေႃးသၼီးယႃး လႄႈ ႁႃႇၸီႇၵူဝ်းဝီးၼႃး',
+    '🇧🇧' => 'ၸွမ်ပိဝ်: ပႃးပေႇတူတ်ႈ',
+    '🇧🇩' => 'ၸွမ်ပိဝ်: ပင်းၵလႃးတဵတ်ႈ',
+    '🇧🇪' => 'ၸွမ်ပိဝ်: ပႄႇၵျီႇယမ်ႇ',
+    '🇧🇫' => 'ၸွမ်ပိဝ်: ပူႇၵီႇၼႃးၾႃးသူဝ်ႇ',
+    '🇧🇬' => 'ၸွမ်ပိဝ်: ပူႇၵႃႇရီႇယႃႇ',
+    '🇧🇭' => 'ၸွမ်ပိဝ်: ပႃႇရဵၼ်း',
+    '🇧🇮' => 'ၸွမ်ပိဝ်: ပူႇရုၼ်းတီႇ',
+    '🇧🇯' => 'ၸွမ်ပိဝ်: ပႄႇၼိၼ်း',
+    '🇧🇱' => 'ၸွမ်ပိဝ်: သဵင်ႉပႃႇထႄးလႄႇမီႇ',
+    '🇧🇲' => 'ၸွမ်ပိဝ်: ပႃႇမိဝ်းတႃး',
+    '🇧🇳' => 'ၸွမ်ပိဝ်: ပရူႇၼၢႆး',
+    '🇧🇴' => 'ၸွမ်ပိဝ်: ပူဝ်ႇလီးပီးယႃး',
+    '🇧🇶' => 'ၸွမ်ပိဝ်: ၼႄႇတႃႇလႅၼ်ႇ တီႈ ၶႃႇရိပ်ႈပီႇယၼ်ႇ',
+    '🇧🇷' => 'ၸွမ်ပိဝ်: ပရႃႇၸီး',
+    '🇧🇸' => 'ၸွမ်ပိဝ်: ပႃႇႁႃးမႃး',
+    '🇧🇹' => 'ၸွမ်ပိဝ်: ၽူႇတၢၼ်ႇ',
+    '🇧🇻' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ပူးဝႅတ်ႉ',
+    '🇧🇼' => 'ၸွမ်ပိဝ်: ပွတ်ႉသဝႃႇၼႃႇ',
+    '🇧🇾' => 'ၸွမ်ပိဝ်: ပႄႇလႃႇရုတ်ႈ',
+    '🇧🇿' => 'ၸွမ်ပိဝ်: ပႄႇလိတ်ႈ',
+    '🇨🇦' => 'ၸွမ်ပိဝ်: ၶႅၼ်ႇၼေႇတႃႇ',
+    '🇨🇨' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ၶူဝ်းၵတ်ႉ (ၶီးလိင်း)',
+    '🇨🇩' => 'ၸွမ်ပိဝ်: ၶွင်ႇၵူဝ်ႇ - ၶိၼ်သျႃးသႃႇ',
+    '🇨🇫' => 'ၸွမ်ပိဝ်: မိူင်းႁူမ်ႈပွင်လူၺ်ႈၵူၼ်းလၢႆ ဢႃႇၾရိၵ ပွတ်းၵၢင်',
+    '🇨🇬' => 'ၸွမ်ပိဝ်: ၶွင်ႇၵူဝ်ႇ - ပရႃၸဝီးလ်',
+    '🇨🇭' => 'ၸွမ်ပိဝ်: သဝိတ်ႈၸႃႇလႅၼ်ႇ',
+    '🇨🇮' => 'ၸွမ်ပိဝ်: ဢၢႆႇဝူဝ်ႇရီႇၶူတ်ႈ',
+    '🇨🇰' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ၶုၵ်ႈ',
+    '🇨🇱' => 'ၸွမ်ပိဝ်: ၶျီႇလီႇ',
+    '🇨🇲' => 'ၸွမ်ပိဝ်: ၶႅမ်းမႃးရုၼ်း',
+    '🇨🇳' => 'ၸွမ်ပိဝ်: ၶႄႇ',
+    '🇨🇴' => 'ၸွမ်ပိဝ်: ၵူဝ်ႇလမ်ႇပီႇယႃႇ',
+    '🇨🇵' => 'ၸွမ်ပိဝ်: ၵုၼ်ၶလိပ်ႉပႃႇတၼ်ႇ',
+    '🇨🇶' => 'ၸွမ်ပိဝ်: သၢၵ်ႉၶ်',
+    '🇨🇷' => 'ၸွမ်ပိဝ်: ၵေႃးသတႃႇရိၵႃႇ',
+    '🇨🇺' => 'ၸွမ်ပိဝ်: ၵူးပႃး',
+    '🇨🇻' => 'ၸွမ်ပိဝ်: ၶဵပ်ႉဝႄႇတီႇ',
+    '🇨🇼' => 'ၸွမ်ပိဝ်: ၵူးရႃႇသၢဝ်ႇ',
+    '🇨🇽' => 'ၸွမ်ပိဝ်: ၵုၼ်ၶရိတ်ႉသမၢတ်ႉ',
+    '🇨🇾' => 'ၸွမ်ပိဝ်: သၢႆႉပရႅတ်ႈ',
+    '🇨🇿' => 'ၸွမ်ပိဝ်: ၶျႅၵ်ႈ',
+    '🇩🇪' => 'ၸွမ်ပိဝ်: ၵျႃႇမၼီႇ',
+    '🇩🇬' => 'ၸွမ်ပိဝ်: တီႇယေးၵူဝ်း ၵရႃႇသီးယႃး',
+    '🇩🇯' => 'ၸွမ်ပိဝ်: ၵျီႇပူးတီႇ',
+    '🇩🇰' => 'ၸွမ်ပိဝ်: တႅၼ်းမၢၵ်ႈ',
+    '🇩🇲' => 'ၸွမ်ပိဝ်: တူဝ်ႇမီႇၼိၵ',
+    '🇩🇴' => 'ၸွမ်ပိဝ်: တူဝ်ႇမီႇၼီႇၵၼ်ႇ',
+    '🇩🇿' => 'ၸွမ်ပိဝ်: ဢႄးၵျီးရီးယႃး',
+    '🇪🇦' => 'ၸွမ်ပိဝ်: သူးတ လႄႈ မႄႇလီႇလႃႇ',
+    '🇪🇨' => 'ၸွမ်ပိဝ်: ဢေႇၵႂႃႇတေႃႇ',
+    '🇪🇪' => 'ၸွမ်ပိဝ်: ဢႄႇသတူဝ်းၼီးယႃး',
+    '🇪🇬' => 'ၸွမ်ပိဝ်: ဢီးၵျိပ်ႈ',
+    '🇪🇭' => 'ၸွမ်ပိဝ်: သႃႇႁႃႇရႃႇ ပွတ်းတူၵ်း',
+    '🇪🇷' => 'ၸွမ်ပိဝ်: ဢႄႇရီႇထရီးယႃး',
+    '🇪🇸' => 'ၸွမ်ပိဝ်: သပဵၼ်ႇ',
+    '🇪🇹' => 'ၸွမ်ပိဝ်: ဢီႇတီႇယူဝ်းပီးယႃး',
+    '🇪🇺' => 'ၸွမ်ပိဝ်: ၸုမ်းၽွမ်ႉႁူမ်ႈ ယူးရူပ်ႉ',
+    '🇫🇮' => 'ၸွမ်ပိဝ်: ၾိၼ်ႇလႅၼ်ႇ',
+    '🇫🇯' => 'ၸွမ်ပိဝ်: ၾီႇၵျီႇ',
+    '🇫🇰' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ၾွၵ်ႉလႅၼ်ႇ',
+    '🇫🇲' => 'ၸွမ်ပိဝ်: ၼႃႈလိၼ် မၢႆႇၶရူဝ်ႇၼေးသျၼ်း',
+    '🇫🇴' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ၾႄးရူဝ်း',
+    '🇫🇷' => 'ၸွမ်ပိဝ်: ၾရၢင်ႇသဵတ်ႈ',
+    '🇬🇦' => 'ၸွမ်ပိဝ်: ၵႄးပုၼ်ႇ',
+    '🇬🇧' => 'ၸွမ်ပိဝ်: မိူင်းႁူမ်ႈတုမ်ႁေႃၶမ်း ပရိတ်ႈတဵၼ်ႇ',
+    '🇬🇩' => 'ၸွမ်ပိဝ်: ၵရႄႇၼႃႇတႃႇ',
+    '🇬🇪' => 'ၸွမ်ပိဝ်: ၵျေႃႇၵျႃႇ',
+    '🇬🇫' => 'ၸွမ်ပိဝ်: ၵုၺ်ႇယႃႇၼႃႇ ၶွင် ၾရၢင်ႇသဵတ်ႈ',
+    '🇬🇬' => 'ၸွမ်ပိဝ်: ၵႂၢၼ်းသီ',
+    '🇬🇭' => 'ၸွမ်ပိဝ်: ၵႃႇၼႃႇ',
+    '🇬🇮' => 'ၸွမ်ပိဝ်: ၵျီႇပရေႃးတႃး',
+    '🇬🇱' => 'ၸွမ်ပိဝ်: ၵရိၼ်းလႅၼ်း',
+    '🇬🇲' => 'ၸွမ်ပိဝ်: ၵမ်ႇပီးယႃး',
+    '🇬🇳' => 'ၸွမ်ပိဝ်: ၵီးၼီး',
+    '🇬🇵' => 'ၸွမ်ပိဝ်: ၵႂႃးတီႇလုပ်ႈ',
+    '🇬🇶' => 'ၸွမ်ပိဝ်: ဢီႇၵူၺ်ႇတေႃႇရီႇယႃႇ ၵီးၼီး',
+    '🇬🇷' => 'ၸွမ်ပိဝ်: ၵရိတ်ႈ',
+    '🇬🇸' => 'ၸွမ်ပိဝ်: ၵျေႃႇၵျႃႇ ပွတ်းၸၢၼ်း လႄႈ မူႇၵုၼ် သၢၼ်းဝိတ်ႉ ပွတ်းၸၢတ်း',
+    '🇬🇹' => 'ၸွမ်ပိဝ်: ၵႂႃႇတမႃႇလႃႇ',
+    '🇬🇺' => 'ၸွမ်ပိဝ်: ၵႂၢမ်ႇ',
+    '🇬🇼' => 'ၸွမ်ပိဝ်: ၵီးၼီး-ပိတ်ႈသၢဝ်ႇ',
+    '🇬🇾' => 'ၸွမ်ပိဝ်: ၵၢႆႇယႃးၼႃႇ',
+    '🇭🇰' => 'ၸွမ်ပိဝ်: ႁွင်းၵွင်း ၼႃႈလိၵ်ႈဢုပ်ႉပိူင်ႇၶိုၵ်ႉတွၼ်း ၶႄႇ',
+    '🇭🇲' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ႁိူတ်ႉ လႄႈ မူႇၵုၼ် မႅၵ်ႇတေႃႇၼႄႇ',
+    '🇭🇳' => 'ၸွမ်ပိဝ်: ႁွၼ်ႇတူးရႅတ်ႈ',
+    '🇭🇷' => 'ၸွမ်ပိဝ်: ၶရူဝ်ႇဢေးသျႃး',
+    '🇭🇹' => 'ၸွမ်ပိဝ်: ႁေးတီႇ',
+    '🇭🇺' => 'ၸွမ်ပိဝ်: ႁၢင်ႇၵေႇရီႇ',
+    '🇮🇨' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ၶႅၼ်ႇၼရီႇ',
+    '🇮🇩' => 'ၸွမ်ပိဝ်: ဢိၼ်ႇတူဝ်ႇၼီးသျႃး',
+    '🇮🇪' => 'ၸွမ်ပိဝ်: ဢၢႆႇယႃႇလႅၼ်ႇ',
+    '🇮🇱' => 'ၸွမ်ပိဝ်: ဢိတ်ႇသရေး',
+    '🇮🇲' => 'ၸွမ်ပိဝ်: ၵုၼ်မႅၼ်း',
+    '🇮🇳' => 'ၸွမ်ပိဝ်: ဢိၼ်းတီးယႃး',
+    '🇮🇴' => 'ၸွမ်ပိဝ်: ၼႃႈလိၼ် သမုၵ်ႉတရႃႇဢိၼ်းတီးယႃး ၶွင် ဢိင်းၵလဵတ်ႈ',
+    '🇮🇶' => 'ၸွမ်ပိဝ်: ဢီႇရၢၵ်ႈ',
+    '🇮🇷' => 'ၸွမ်ပိဝ်: ဢီႇရၢၼ်း',
+    '🇮🇸' => 'ၸွမ်ပိဝ်: ဢၢႆးသလႅၼ်ႇ',
+    '🇮🇹' => 'ၸွမ်ပိဝ်: ဢီႇတႃႇလီႇ',
+    '🇯🇪' => 'ၸွမ်ပိဝ်: ၵျႃႇသီႇ',
+    '🇯🇲' => 'ၸွမ်ပိဝ်: ၵျႃႇမေႇၵႃႇ',
+    '🇯🇴' => 'ၸွမ်ပိဝ်: ၵျေႃႇတၼ်ႇ',
+    '🇯🇵' => 'ၸွမ်ပိဝ်: ၵျႃႇပၢၼ်ႇ',
+    '🇰🇪' => 'ၸွမ်ပိဝ်: ၶႅၼ်ႇၺႃႇ',
+    '🇰🇬' => 'ၸွမ်ပိဝ်: ၵႃႇၵိတ်ႈသတၼ်ႇ',
+    '🇰🇭' => 'ၸွမ်ပိဝ်: ၵမ်ႇပေႃးတီးယႃး',
+    '🇰🇮' => 'ၸွမ်ပိဝ်: ၵိရိပတီႇ',
+    '🇰🇲' => 'ၸွမ်ပိဝ်: ၶူဝ်ႇမူဝ်ႇရူတ်ႈ',
+    '🇰🇳' => 'ၸွမ်ပိဝ်: သဵင်ႉၶိတ်ႈ လႄႈ ၼႄးဝိတ်ႈ',
+    '🇰🇵' => 'ၸွမ်ပိဝ်: ၵၢဝ်းလီႁွင်ႇ',
+    '🇰🇷' => 'ၸွမ်ပိဝ်: ၵၢဝ်းလီၸၢၼ်း',
+    '🇰🇼' => 'ၸွမ်ပိဝ်: ၶူႇဝဵတ်ႈ',
+    '🇰🇾' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ၶေးမႅၼ်း',
+    '🇰🇿' => 'ၸွမ်ပိဝ်: ၵႃႇၸၢၵ်ႈသတၼ်ႇ',
+    '🇱🇦' => 'ၸွမ်ပိဝ်: လၢဝ်း',
+    '🇱🇧' => 'ၸွမ်ပိဝ်: လႄႇပႃႇၼွၼ်ႇ',
+    '🇱🇨' => 'ၸွမ်ပိဝ်: သဵင်ႉလူႉသျႃႇ',
+    '🇱🇮' => 'ၸွမ်ပိဝ်: လိၵ်ႈတိၼ်ႇသတၢႆႇ',
+    '🇱🇰' => 'ၸွမ်ပိဝ်: သီႇရိလင်းၵႃ',
+    '🇱🇷' => 'ၸွမ်ပိဝ်: လၢႆႇပေးရီးယႃး',
+    '🇱🇸' => 'ၸွမ်ပိဝ်: လႄႇသူဝ်းတူဝ်ႇ',
+    '🇱🇹' => 'ၸွမ်ပိဝ်: လီႉတူႇဝေးၼီးယႃး',
+    '🇱🇺' => 'ၸွမ်ပိဝ်: လၢၵ်ႈၸိမ်ႇပၢၵ်ႈ',
+    '🇱🇻' => 'ၸွမ်ပိဝ်: လၢတ်ႈဝီႇယႃႇ',
+    '🇱🇾' => 'ၸွမ်ပိဝ်: လိပ်ႉပျႃး',
+    '🇲🇦' => 'ၸွမ်ပိဝ်: မေႃႇရူဝ်ႇၵူဝ်ႇ',
+    '🇲🇨' => 'ၸွမ်ပိဝ်: မူဝ်ႇၼႃႉၶူဝ်ႇ',
+    '🇲🇩' => 'ၸွမ်ပိဝ်: မေႃႇတူဝ်းဝႃး',
+    '🇲🇪' => 'ၸွမ်ပိဝ်: မွၼ်ႇတေႇၼေးၵရူဝ်ႇ',
+    '🇲🇫' => 'ၸွမ်ပိဝ်: သဵင်ႉမႃႇတိၼ်',
+    '🇲🇬' => 'ၸွမ်ပိဝ်: မၢတ်ႈတႃႇၵၢတ်ႈသၵႃႇ',
+    '🇲🇭' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် မႃးသျႄႇ',
+    '🇲🇰' => 'ၸွမ်ပိဝ်: မႄႇၶေႇတူဝ်းၼီးယႃးႁွင်ႇ',
+    '🇲🇱' => 'ၸွမ်ပိဝ်: မႃႇလီႇ',
+    '🇲🇲' => 'ၸွမ်ပိဝ်: မျၢၼ်ႇမႃႇ (မိူင်းမၢၼ်ႈ)',
+    '🇲🇳' => 'ၸွမ်ပိဝ်: မူင်ႇၵူဝ်းလီးယႃး',
+    '🇲🇴' => 'ၸွမ်ပိဝ်: မႃႇၵၢဝ်ႈ ၼႃႈလိၼ်ဢုပ်ႉပိူင်ႇၶိုၵ်ႉတွၼ်း ၶႄႇ',
+    '🇲🇵' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် မေႇရီႇယႃႇၼႃႇ ပွတ်းႁွင်ႇ',
+    '🇲🇶' => 'ၸွမ်ပိဝ်: မႃးတိၼ်ႇၼိၵ်ႈ',
+    '🇲🇷' => 'ၸွမ်ပိဝ်: မေႃႇရီႇတေးၼီးယႃး',
+    '🇲🇸' => 'ၸွမ်ပိဝ်: မွၼ်းသိူဝ်းရၢတ်ႈ',
+    '🇲🇹' => 'ၸွမ်ပိဝ်: မေႃးတႃႇ',
+    '🇲🇺' => 'ၸွမ်ပိဝ်: မေႃးရီႇသႃႇ',
+    '🇲🇻' => 'ၸွမ်ပိဝ်: မေႃႇတိပ်ႈ',
+    '🇲🇼' => 'ၸွမ်ပိဝ်: မႃႇလႃႇဝီႇ',
+    '🇲🇽' => 'ၸွမ်ပိဝ်: မႅၵ်ႇသီႇၵူဝ်ႇ',
+    '🇲🇾' => 'ၸွမ်ပိဝ်: မလေးသျႃး',
+    '🇲🇿' => 'ၸွမ်ပိဝ်: မူဝ်ႇၸမ်းပိၵ်ႈ',
+    '🇳🇦' => 'ၸွမ်ပိဝ်: ၼႃႇမီးပီးယႃး',
+    '🇳🇨' => 'ၸွမ်ပိဝ်: ၼိဝ်းၶႄႇလီႇတူဝ်းၼီးယႃး',
+    '🇳🇪' => 'ၸွမ်ပိဝ်: ၼၢႆးၵျႃး',
+    '🇳🇫' => 'ၸွမ်ပိဝ်: ၵုၼ်ၼေႃႇၾုၵ်ႉ',
+    '🇳🇬' => 'ၸွမ်ပိဝ်: ၼၢႆႇၵျီးရီးယႃး',
+    '🇳🇮' => 'ၸွမ်ပိဝ်: ၼီႇၵႃႇရႃႇၵႂႃႇ',
+    '🇳🇱' => 'ၸွမ်ပိဝ်: ၼႄႇတႃႇလႅၼ်ႇ',
+    '🇳🇴' => 'ၸွမ်ပိဝ်: ၼေႃႇဝူၺ်း',
+    '🇳🇵' => 'ၸွမ်ပိဝ်: ၼေႇပေႃး',
+    '🇳🇷' => 'ၸွမ်ပိဝ်: ၼၢဝ်ရူး',
+    '🇳🇺' => 'ၸွမ်ပိဝ်: ၼီးဝႄႇ',
+    '🇳🇿' => 'ၸွမ်ပိဝ်: ၼိဝ်းၸီႇလႅၼ်ႇ',
+    '🇴🇲' => 'ၸွမ်ပိဝ်: ဢူဝ်ႇမၢၼ်ႇ',
+    '🇵🇦' => 'ၸွမ်ပိဝ်: ပႃႈၼႃးမႃး',
+    '🇵🇪' => 'ၸွမ်ပိဝ်: ပေႇရူႉ',
+    '🇵🇫' => 'ၸွမ်ပိဝ်: ပေႃႇလီႇၼေးသျႃး ၶွင် ၾရၢင်ႇသဵတ်ႈ',
+    '🇵🇬' => 'ၸွမ်ပိဝ်: ပႃးပႂႃႇၼိဝ်းၵီးၼီး',
+    '🇵🇭' => 'ၸွမ်ပိဝ်: ၾီလိပ်ႈပိၼ်း',
+    '🇵🇰' => 'ၸွမ်ပိဝ်: ပႃႇၵိတ်ႈသတၼ်ႇ',
+    '🇵🇱' => 'ၸွမ်ပိဝ်: ပူဝ်ႇလႅၼ်ႇ',
+    '🇵🇲' => 'ၸွမ်ပိဝ်: သဵင်ႉပီးယႃး လႄႈ မိၵ်ႈၵွႆႇလွၼ်ႇ',
+    '🇵🇳' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ၽိတ်ႉၶႅၼ်ႇ',
+    '🇵🇷' => 'ၸွမ်ပိဝ်: ပေႃႇတူဝ်ႇရီးၵူဝ်း',
+    '🇵🇸' => 'ၸွမ်ပိဝ်: ၼႃႈလိၼ် ပႃႇလႅတ်ႇသတိၼ်းၼီးယႅၼ်း',
+    '🇵🇹' => 'ၸွမ်ပိဝ်: ပေႃးတူႉၵၢဝ်ႇ',
+    '🇵🇼' => 'ၸွမ်ပိဝ်: ပႃႇလၢဝ်း',
+    '🇵🇾' => 'ၸွမ်ပိဝ်: ပႃႇရႃႇၵူၺ်း',
+    '🇶🇦' => 'ၸွမ်ပိဝ်: ၶႃႇတႃႇ',
+    '🇷🇪' => 'ၸွမ်ပိဝ်: ရေႇၼီႇယၼ်ႇ',
+    '🇷🇴' => 'ၸွမ်ပိဝ်: ရူဝ်ႇမေးၼီးယႃး',
+    '🇷🇸' => 'ၸွမ်ပိဝ်: သႃးပီးယႃး',
+    '🇷🇺' => 'ၸွမ်ပိဝ်: ရတ်ႈသျႃး',
+    '🇷🇼' => 'ၸွမ်ပိဝ်: ရဝၢၼ်းတႃႇ',
+    '🇸🇦' => 'ၸွမ်ပိဝ်: သေႃႇတီႇဢႃႇရေးပီးယႃး',
+    '🇸🇧' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် သေႃႇလေႃႇမၼ်ႇ',
+    '🇸🇨' => 'ၸွမ်ပိဝ်: သေးသျႄႇ',
+    '🇸🇩' => 'ၸွမ်ပိဝ်: သူႇတၼ်ႇ',
+    '🇸🇪' => 'ၸွမ်ပိဝ်: သုၺ်ႇတိၼ်ႇ',
+    '🇸🇬' => 'ၸွမ်ပိဝ်: သိင်ႇၵႃႇပူဝ်ႇ',
+    '🇸🇭' => 'ၸွမ်ပိဝ်: သဵင်ႉႁႄးလႄးၼႃႇ',
+    '🇸🇮' => 'ၸွမ်ပိဝ်: သလူဝ်ႇဝေးၼီးယႃး',
+    '🇸🇯' => 'ၸွမ်ပိဝ်: သဝႃးလ်ပၢတ်ႇ လႄႈ ၸၼ်မၢႆးယႅၼ်ႇ',
+    '🇸🇰' => 'ၸွမ်ပိဝ်: သလူဝ်ႇဝႃးၵီးယႃး',
+    '🇸🇱' => 'ၸွမ်ပိဝ်: သီႇဢႄႇရႃႇလီႇယူၼ်ႇ',
+    '🇸🇲' => 'ၸွမ်ပိဝ်: သၼ်းမႃႇရီႇၼေႃႇ',
+    '🇸🇳' => 'ၸွမ်ပိဝ်: သီႇၼီႇၵႃႇ',
+    '🇸🇴' => 'ၸွမ်ပိဝ်: သူဝ်ႇမႃႇလီႇယႃး',
+    '🇸🇷' => 'ၸွမ်ပိဝ်: သျူးရီးၼႃႇမႄႇ',
+    '🇸🇸' => 'ၸွမ်ပိဝ်: သူႇတၼ်ႇၸၢၼ်း',
+    '🇸🇹' => 'ၸွမ်ပိဝ်: သူၼ်ႇတူဝ်ႇမေး လႄႈ ပရိၼ်ႇသီႇပေႇ',
+    '🇸🇻' => 'ၸွမ်ပိဝ်: ဢႄႇသႃႇဝႃႇတေႃႇ',
+    '🇸🇽' => 'ၸွမ်ပိဝ်: သိၼ်ႉမႃႇတိၼ်ႇ',
+    '🇸🇾' => 'ၸွမ်ပိဝ်: သီးရီးယႃး',
+    '🇸🇿' => 'ၸွမ်ပိဝ်: ဢႅတ်ႇသ်ဝႃႇတီးၼီႇ',
+    '🇹🇦' => 'ၸွမ်ပိဝ်: ထရီႇသၼ်ႇ တႃႇ ၶုၼ်းၺႃႇ',
+    '🇹🇨' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ထၢၵ်ႈ လႄႈ ၶေးၶတ်ႉ',
+    '🇹🇩' => 'ၸွမ်ပိဝ်: ၶျၢတ်ႈ',
+    '🇹🇫' => 'ၸွမ်ပိဝ်: ၼႃႈလိၼ် ၾရၢင်ႇသဵတ်ႈ ပွတ်းၸၢၼ်း',
+    '🇹🇬' => 'ၸွမ်ပိဝ်: ထူဝ်းၵူဝ်ႇ',
+    '🇹🇭' => 'ၸွမ်ပိဝ်: မိူင်းထႆး',
+    '🇹🇯' => 'ၸွမ်ပိဝ်: တႃႇၵျီႇၵီႇသတၼ်ႇ',
+    '🇹🇰' => 'ၸွမ်ပိဝ်: ထူဝ်းၵေႇလၢဝ်ႇ',
+    '🇹🇱' => 'ၸွမ်ပိဝ်: တီႇမေႃး-လႅတ်ႉသ်တႄး',
+    '🇹🇲' => 'ၸွမ်ပိဝ်: တၢၵ်ႈမႅၼ်ႇၼီႇသတၼ်ႇ',
+    '🇹🇳' => 'ၸွမ်ပိဝ်: တူႇၼီးသျႃး',
+    '🇹🇴' => 'ၸွမ်ပိဝ်: ထွင်းၵႃႇ',
+    '🇹🇷' => 'ၸွမ်ပိဝ်: တိူဝ်ႇၵီႇ',
+    '🇹🇹' => 'ၸွမ်ပိဝ်: ထရီႇၼီႇတၢတ်ႈ လႄႈ ထူဝ်ႇပေးၵူဝ်ႇ',
+    '🇹🇻' => 'ၸွမ်ပိဝ်: ထူးဝႃႇလူႇ',
+    '🇹🇼' => 'ၸွမ်ပိဝ်: ထၢႆႇဝၢၼ်း',
+    '🇹🇿' => 'ၸွမ်ပိဝ်: ထၼ်ႇၸၼ်းၼီးယႃး',
+    '🇺🇦' => 'ၸွမ်ပိဝ်: ယူႇၶရဵၼ်း',
+    '🇺🇬' => 'ၸွမ်ပိဝ်: ယူႇၵၼ်ႇတႃႇ',
+    '🇺🇲' => 'ၸွမ်ပိဝ်: မူႇၵုၼ်ဢွၼ်ႇ ဢၼ်မီးၽၢႆႇၼွၵ်ႈ ယူႇဢႅတ်ႉသ်',
+    '🇺🇳' => 'ၸွမ်ပိဝ်: ၸၢတ်ႈၸိုင်ႈလုမ်ႈၾႃႉ',
+    '🇺🇸' => 'ၸွမ်ပိဝ်: မိူင်းႁူမ်ႈတုမ် ဢမႄႇရိၵ',
+    '🇺🇾' => 'ၸွမ်ပိဝ်: ဢုရုၵူၺ်း',
+    '🇺🇿' => 'ၸွမ်ပိဝ်: ဢူႇၸပႄႉၵိတ်ႇသတၼ်ႇ',
+    '🇻🇦' => 'ၸွမ်ပိဝ်: ဝႃႇတီႇၵၼ်ႇသီးတီး',
+    '🇻🇨' => 'ၸွမ်ပိဝ်: သဵင်ႉဝိၼ်းသႅၼ်ႉ လႄႈ ၵရႄးၼႃးတိၼ်း',
+    '🇻🇪' => 'ၸွမ်ပိဝ်: ဝႄႇၼေႇၸွႆးလႃး',
+    '🇻🇬' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ဝႃႇၵျိၼ်ႇ ၶွင် ဢိင်းၵလဵတ်ႈ',
+    '🇻🇮' => 'ၸွမ်ပိဝ်: မူႇၵုၼ် ဝႃႇၵျိၼ်ႇ ၶွင် ယူႇဢႅတ်ႉသ်',
+    '🇻🇳' => 'ၸွမ်ပိဝ်: ဝႅတ်ႉၼမ်း',
+    '🇻🇺' => 'ၸွမ်ပိဝ်: ဝႅၼ်ႇၼူးဝႃႇထူႇ',
+    '🇼🇫' => 'ၸွမ်ပိဝ်: ဝႃးလိတ်ႈ လႄႈ ၾူႇတူးၼႃး',
+    '🇼🇸' => 'ၸွမ်ပိဝ်: သႃႇမူဝ်းဝႃႇ',
+    '🇽🇰' => 'ၸွမ်ပိဝ်: ၵူဝ်ႇသူဝ်ႇဝူဝ်ႇ',
+    '🇾🇪' => 'ၸွမ်ပိဝ်: ယႄႇမႅၼ်ႇ',
+    '🇾🇹' => 'ၸွမ်ပိဝ်: မႃႇယူတ်ႈ',
+    '🇿🇦' => 'ၸွမ်ပိဝ်: ဢႃႇၾရိၵၸၢၼ်း',
+    '🇿🇲' => 'ၸွမ်ပိဝ်: ၸမ်းပီးယႃး',
+    '🇿🇼' => 'ၸွမ်ပိဝ်: ၸိမ်ႇပႃႇပူၺ်ႇ',
+    '🔟' => 'ၼဵၼ်ၼဵၵ်း: 10',
+    '🏻' => 'သီၽိဝ်ၼိူဝ်ႉၶၢဝ်',
+    '🏼' => 'သီၽိဝ်ၼိူဝ်ႉၵမ်ႇပၢၼ်ၵၢင်',
+    '🏽' => 'သီၽိဝ်ၼိူဝ်ႉၵမ်ႇ',
+    '🏾' => 'သီၽိဝ်ၼိူဝ်ႉလမ်ပၢၼ်ၵၢင်',
+    '🏿' => 'သီၽိဝ်ၼိူဝ်ႉလမ်',
+    '😀' => 'ၼႃႈယုမ်ႉၶူဝ်',
+    '😃' => 'ၼႃႈယုမ်ႉတႃယႂ်ႇ',
+    '😄' => 'ၼႃႈယုမ်ႉတႃယုမ်ႉ',
+    '😁' => 'ၼႃႈႁိူဝ်ႈတႃလႅင်း',
+    '😆' => 'လပ်းႁူလပ်းတႃသေ ယုမ်ႉပိူဝ်ႉယုမ်ႉပိူဝ်ႉ',
+    '😅' => 'ၼႃႈၶူဝ်ယုမ်ႉႁိူဝ်ႇတႅၵ်ႇ',
+    '🤣' => 'ၶူဝ် ပေႃးလေႇၵိင်ႈလူင်ဝႆႉ',
+    '😂' => 'ၶူဝ်ၼမ်ႉတႃပေႃးဢွၵ်ႇ',
+    '🙂' => 'ၼႃႈတႃတေႃႉတႄႉယုမ်ႉ',
+    '🙃' => 'ၼႃႈပိၼ်ႈၽိူၼ်',
+    '🫠' => 'ၼႃႈၸိူမ်ႈ',
+    '😉' => 'ၼႃႈလိၵ်းတႃ',
+    '😊' => 'ၼႃႈယုမ်ႉတႃဝၢၼ်',
+    '😇' => 'ၼႃႈယုမ်ႉဢိၵ်ႇတင်းဝူင်းႁိူဝ်ႈ',
+    '🥰' => 'ၼႃႈယုမ်ႉပႃးႁူဝ်ၸႂ်',
+    '😍' => 'ၼႃႈယုမ်ႉတင်းတႃႁူဝ်ၸႂ်',
+    '🤩' => 'ၼႃႈတႃလူင်ႇလၢဝ်',
+    '😘' => 'ၼႃႈပဝ်ႇသူင်ႇၸုပ်ႇ',
+    '😗' => 'ၼႃႈတိုၵ်ႉၸုပ်ႉ',
+    '☺' => 'ၼႃႈယုမ်ႉ',
+    '😚' => 'ၼႃႈလပ်းတႃသေၸုပ်ႇ',
+    '😙' => 'ၼႃႈၸုပ်ႇတႃဝၢၼ်',
+    '🥲' => 'ၼႃႈယုမ်ႉတင်းၼမ်ႉတႃ',
+    '😋' => 'ၼႃႈတႃမႅပ်ႈလိၼ်ႉ',
+    '😛' => 'ၼႃႈမႅပ်ႈလိၼ်ႉ',
+    '😜' => 'ၼႃႈတႃလိၵ််းမႅပ်ႈလိၼ်ႉ',
+    '🤪' => 'ၼႃႈယွင်ႇ',
+    '😝' => 'လိၵ်းတႃမႅပ်ႈလိၼ်ႉ',
+    '🤑' => 'ၼႃႈသူပ်းငိုၼ်း',
+    '🤗' => 'ၼႃႈယုမ်ႉယုၵ်ႉမိုဝ်း',
+    '🤭' => 'ၼႃႈတူမ်းသူပ်းသေယုမ်ႉ',
+    '🫢' => 'ၼႃႈပိုတ်ႇတႃတူမ်းသူပ်း',
+    '🫣' => 'ၼႃႈတႃလၵ်ႉတူၺ်း',
+    '🤫' => 'ၼႃႈလၢတ်ႈႁႂ်းယူႇယဵၼ်',
+    '🤔' => 'ၼႃႈတိုၵ်ႉဝူၼ်ႉ',
+    '🫡' => 'ၼႃႈၼပ်ႉယမ်',
+    '🤐' => 'ၼႃႈသူပ်းၸိပ်ႉ',
+    '🤨' => 'ၼႃႈယုၵ်ႉၶူၼ်တႃ',
+    '😐' => 'ၼႃႈၽဵၼ်ႈၽဵၼ်ႈ',
+    '😑' => 'ၼႃႈဢမ်ႇပႃးၸႂ်',
+    '😶' => 'ၼႃႈဢမ်ႇပႃးသူပ်း',
+    '🫥' => 'ၼႃႈမဵတ်ႉၸမ်ႈ',
+    '😏' => 'ယုမ်ႉဝၢႆႈလႅင်ႈ',
+    '🙄' => 'ၼႃႁူၺ်ႇတႃၵိင်ႈ',
+    '😬' => 'ၼႃႈႁူတႃႁႄ',
+    '🤥' => 'ၼႃႈၵူၼ်းလႅၼ်',
+    '🫨' => 'ၼႃႈဝႆႁူဝ်',
+    '😌' => 'ၼႃႈၸိုၼ်ႈၶႅၼ်း',
+    '😔' => 'ၼႃႈဝူၼ်ႉငဝ်',
+    '😪' => 'ၼႃႈငဝ်ၼွၼ်း',
+    '🤤' => 'ၼႃႈတႃၵႃႉယွႆႉ',
+    '🫩' => 'ၼႃႈၶွပ်ႇတႃတႂ်ႈတိုင်ႇ',
+    '😷' => 'ၼႃႈဢၼ်ပႃးၽႃႈတူမ်းသူပ်းယႃႈယႃ',
+    '🤒' => 'ၼႃႈဢၼ်ပႃးတႃႇမူဝ်ႇမီႇတႃႇ',
+    '🤕' => 'ၼႃႈဢၼ်ပႃး ၽႅၼ်ႇပူၵ်ႉႁူဝ်',
+    '🤢' => 'ၼႃႈဝူၺ်ႇႁင်ႈ',
+    '🤮' => 'ၼႃႈႁၢၵ်ႈ',
+    '🤧' => 'ၼႃႈၶီႈၸၢမ်',
+    '🥵' => 'ၼႃႈမႆႈ',
+    '🥶' => 'ၼႃႈၵတ်း',
+    '🥴' => 'ၼႃႈသၼ်ႇသၼ်ႇသၢႆသၢႆ',
+    '😵' => 'ၼႃႈမဝ်း',
+    '🤯' => 'ႁူဝ်တႅၵ်ႇ',
+    '🤠' => 'ၼႃႈမၢၵ်ႇႁူဝ်ၶၢဝ်းပွႆႇ',
+    '🥳' => 'ၼႃႈၶဝ်ႈပွႆးပႃႇတီႇ',
+    '🥸' => 'ၼႃႈတႃႁဵတ်းၵႅင်ႈ',
+    '😎' => 'ၼႃႈတႃယုမ်ႉတင်းၵႅဝ်ႈတႃ',
+    '🤓' => 'ၼႃႈလူင်ႉလႅၼ်ႇ',
+    '🧐' => 'ၼႃႈဢၼ်ပႃး ၵႅဝ်ႈတႃၽၢႆႇလဵဝ်',
+    '😕' => 'ၼႃႈတႃၸႂ်သုၵ်ႉသၵ်ႉ',
+    '🫤' => 'ၼႃႈၸၢႆႉသူပ်း',
+    '😟' => 'ၼႃႈတႃမႆႈၸႂ်',
+    '🙁' => 'တေႃႉတႄႉမီႇၼႃႈမီႇတႃ',
+    '☹' => 'မီႇၼႃႈမီႇတႃ',
+    '😮' => 'ၼႃႈဢႃႈပၢၵ်ႇဢႃႈသူပ်း',
+    '😯' => 'ၼႃႈတႃတူၵ်းၸႂ်',
+    '😲' => 'ၼႃႈဢၢမ်း',
+    '😳' => 'ၼႃႈလႅင်',
+    '🫪' => 'ၼႃႈတႃဢၼ်ႁၢင်ႈႁၢႆႉ',
+    '🥺' => 'ၼႃႈတႃယွမ်းၼွမ်း',
+    '🥹' => 'ၼမ်ႉတႃယိုင်ႈႁူၺ်ႇ',
+    '😦' => 'ၼႃႈၵူၼ်ႇတႃပင်းဢႃႈသူပ်း',
+    '😧' => 'ၼႃႈဢမ်ႇတွင်ႉဢမ်ႇတေႇ',
+    '😨' => 'ၼႃႈတႃၵူဝ်ႁႄ',
+    '😰' => 'ၼႃႈတႃၵူဝ်ႁႄဢွၵ်ႇႁိူဝ်ႇ',
+    '😥' => 'ၼႃႈတႃမွင်ၸႂ်သေတႃႉ လူမ်ၸႂ်',
+    '😢' => 'ၼႃႈႁႆႈ',
+    '😭' => 'ၼႃႈႁႆႈတႄႉႁႆႈဝႃႈ',
+    '😱' => 'ၼႃႈတူၵ်းၸႂ်သေႁွင်ႉသႅၼ်ႇ',
+    '😖' => 'ၼႃႈသုၵ်ႉသၵ်ႉ',
+    '😣' => 'ၼႃႈဢၼ်ႁၢမ်းလွင်ႈၸွႆႈထႅမ်',
+    '😞' => 'ၼႃႈတႃၸႂ်လူႉ',
+    '😓' => 'ၼႃႈတႃၸႂ်တူၵ်း',
+    '😩' => 'ၼႃႈဢိမ်ႇ',
+    '😫' => 'ၼႃႈတႃႁိူဝ်ႉမွႆႈ',
+    '🥱' => 'ၼႃႈတႃႁၢဝ်',
+    '😤' => 'ၼႃႈဢွၵ်ႇၵူၼ်းတီႈၶူႈလင်',
+    '😡' => 'ၼႃႈတူႇ',
+    '😠' => 'ၼႃႈၸႂ်လမ်',
+    '🤬' => 'ၼႃႈဢၼ်မီးတူဝ်မၢႆတီႈသူပ်း',
+    '😈' => 'ၼႃႈယုမ်ႉမီးၶဝ်',
+    '👿' => 'ၼႃႈၸမ်လမ်မီးၶဝ်',
+    '💀' => 'လုပ်ႇၵွၵ်းႁူဝ်',
+    '☠' => 'လုပ်ႇၵွၵ်းႁူဝ် လႄႈ လုပ်ႇၶႂႆႇၶႃပေ',
+    '💩' => 'ၵွင်ၶီႈ',
+    '🤡' => 'ၼႃႈၵူၼ်းပျၢၵ်ႈ',
+    '👹' => 'ၽီလူးၵျႃႇပၢၼ်ႇ',
+    '👺' => 'ၽီၵျႃႇပၢၼ်ႇ',
+    '👻' => 'ၽဵတ်ႇ',
+    '👽' => 'ၵူၼ်းတၢင်ႇၵျူဝ်ႇ',
+    '👾' => 'ၽီႁၢႆႉတၢင်ႇၵျူဝ်ႇ',
+    '🤖' => 'ရူဝ်ႇပွတ်ႉ',
+    '😺' => 'ၼႃႈမႅဝ်းယုမ်ႉပိူဝ်ႉယုမ်ႉပိူဝ်ႉ',
+    '😸' => 'မႅဝ်းယုမ်ႉပိူဝ်ႉ တင်း တႃယုမ်ႉ',
+    '😹' => 'မႅဝ်းဢွၵ်ႇၼမ်ႉတႃၸူမ်း',
+    '😻' => 'မႅဝ်းယုမ်ႉတင်းတႃႁူဝ်ၸႂ်',
+    '😼' => 'မႅဝ်းယုမ်ႉဝၢႆႈလႅင်ႈ',
+    '😽' => 'မႅဝ်းႁွမ်',
+    '🙀' => 'မႅဝ်းတူၵ်းၸႂ်',
+    '😿' => 'မႅဝ်းႁႆႈ',
+    '😾' => 'မႅဝ်းၸႂ်လမ်',
+    '🙈' => 'လိင်းဢိုတ်းတႃ',
+    '🙉' => 'လိင်းဢိုတ်းႁူ',
+    '🙊' => 'လိင်းဢိုတ်းသူပ်း',
+    '💌' => 'လိၵ်ႈႁၵ်ႉ',
+    '💘' => 'ႁူဝ်ၸႂ်ပိုၼ်ၵၢင်ႇ',
+    '💝' => 'ႁူဝ်ၸႂ်ဢၼ်မီးသၢႆရိပ်ႉပိၼ်ႇ',
+    '💖' => 'ႁူဝ်ၸႂ်ႁိူဝ်ႈလႅင်း',
+    '💗' => 'ႁူဝ်ၸႂ်ၵႂၢင်ႈ',
+    '💓' => 'ႁူဝ်ၸႂ်တူင်ႉ',
+    '💞' => 'ႁူဝ်ၸႂ်ပၼ်ႇႁွပ်ႈ',
+    '💕' => 'သွင်ႁူဝ်ၸႂ်',
+    '💟' => 'ႁၢင်ႈၶိူင်ႈႁူဝ်ၸႂ်',
+    '❣' => 'တူဝ်မၢႆတူင်ႉတိုၼ်ႇႁူဝ်ၸႂ်',
+    '💔' => 'ႁူဝ်ၸႂ်တႅၵ်ႇ',
+    '❤' => 'ႁူဝ်ၸႂ်သီလႅင်',
+    '🩷' => 'ႁူဝ်ၸႂ်သီၶွင်ႇ',
+    '🧡' => 'ႁူဝ်ၸႂ်သီလိူင်မၢၵ်ႇဝၢၼ်',
+    '💛' => 'ႁူဝ်ၸႂ်သီလိူင်',
+    '💚' => 'ႁူဝ်ၸႂ်သီၶဵဝ်',
+    '💙' => 'ႁူဝ်ၸႂ်သီသွမ်ႇ',
+    '🩵' => 'ႁူဝ်ၸႂ်သီသွမ်ႇလႅင်း',
+    '💜' => 'ႁူဝ်ၸႂ်သီၵမ်ႇမၢၵ်ႇၶိူဝ်',
+    '🤎' => 'ႁူဝ်ၸႂ်သီၵမ်ႇ',
+    '🖤' => 'ႁူဝ်ၸႂ်သီလမ်',
+    '🩶' => 'ႁူဝ်ၸႂ်သီၶွၼ်ႇ',
+    '🤍' => 'ႁူဝ်ၸႂ်သီၶၢဝ်',
+    '💋' => 'ႁွႆးၸုပ်ႇ',
+    '💯' => 'တဵမ်ထူၼ်ႈႁူဝ်ပၢၵ်ႇ',
+    '💢' => 'တူဝ်မၢႆလွင်ႈၸႂ်လမ်',
+    '🫯' => 'မွၵ်ႇၵုမ်ႈမင်ၵၼ်',
+    '💥' => 'လွင်ႈၽႃႇၺႃးၵၼ်',
+    '💫' => 'မဝ်း',
+    '💦' => 'ယွတ်ႇႁိူဝ်ႇ',
+    '💨' => 'လႅၼ်ႈပၢႆႈၵႂႃႇ',
+    '🕳' => 'ႁူး',
+    '💬' => 'လၢတ်ႈဢမ်ႇဢွၵ်ႇ',
+    '🗨' => 'ၽွင်ၵႂၢမ်းလၢတ်ႈၽၢႆႇသၢႆႉ',
+    '🗯' => 'ၽွင်ၸႂ်လမ်ၽၢႆႇၶႂႃ',
+    '💭' => 'ပွင်းလူမ်းဝူၼ်ႉ',
+    '💤' => 'လပ်းလီၶွတ်ႉၶွတ်ႉ',
+    '👋' => 'ဝႆမိုဝ်း',
+    '🤚' => 'ယုၵ်ႉလင်မိုဝ်း',
+    '🖐' => 'ယုၵ်ႉသေဢႃႈၼိဝ်ႉမိုဝ်း',
+    '✋' => 'ယုၵ်ႉမိုဝ်း',
+    '🖖' => 'ဝူဝ်ႇလ်ၵႅၼ်ႇ ၼပ်ႉယမ်',
+    '🫱' => 'မိုဝ်းဝၢႆႇၶႂႃ',
+    '🫲' => 'မိုဝ်းဝၢႆႇသၢႆႉ',
+    '🫳' => 'မိုဝ်းဝၢႆႇလူင်း',
+    '🫴' => 'မိုဝ်းဝၢႆႇၶိုၼ်ႈ',
+    '👌' => 'ႁဵတ်းမိုဝ်းဢူဝ်ႇၶေႇ',
+    '🤌' => 'ႁုပ်ႈမိုဝ်း',
+    '🤏' => 'မိုဝ်းပိတ်း',
+    '✌' => 'ယုၵ်ႉမိုဝ်းသွင်ၼိဝ်ႉ',
+    '🤞' => 'ၼိဝ်ႉမိုဝ်းၵဵဝ်ႈၵၼ်',
+    '🫰' => 'ၼိဝ်ႉၸီႉၵဵဝ်ႈႁူဝ်မႄႈမိုဝ်း',
+    '🤟' => 'ၼႄႁၢင်ႈမိုဝ်းႁၵ်ႉသူ',
+    '🤘' => 'မိၵ်ႈမၢႆၶဝ်',
+    '🤙' => 'မိုဝ်းထူဝ်း',
+    '👈' => 'လင်မိုဝ်းၸီႉသၢႆႉ',
+    '👉' => 'လင်မိုဝ်းၸီႉၶႂႃ',
+    '👆' => 'လင်မိုဝ်းၸီႉၶိုၼ်ႈ',
+    '🖕' => 'ၼိဝ်ႉၵၢင်',
+    '👇' => 'လင်မိုဝ်းၸီႉလူင်း',
+    '☝' => 'ၸီႉၶိုၼ်ႈ',
+    '🫵' => 'ၸီႉတေႃႇၵူၼ်းတူၺ်း',
+    '👍' => 'ပူၵ်းႁူဝ်မႄႈမိုဝ်း',
+    '👎' => 'ၶွမ်ႈႁူဝ်မႄႈမိုဝ်း',
+    '✊' => 'ၵမ်တႃမိုဝ်း',
+    '👊' => 'တႃမိုဝ်းမႃးၽၢႆႇၼႃႈ',
+    '🤛' => 'တႃမိုဝ်းဝၢႆႇသၢႆႉ',
+    '🤜' => 'တႃမိုဝ်းဝၢႆႇၶႂႃ',
+    '👏' => 'တူပ်းမိုဝ်း',
+    '🫶' => 'မိုဝ်းႁူဝ်ၸႂ်',
+    '👐' => 'ပိုတ်ႇမိုဝ်း',
+    '🤲' => 'ၵွပ်ႇ',
+    '🤝' => 'ယိပ်းမိုဝ်း',
+    '🙏' => 'ႁွမ်းမိုဝ်း',
+    '✍' => 'မိုဝ်းတႅမ်ႈ',
+    '💅' => 'ယွမ်ႉၼဵပ်ႉမိုဝ်း',
+    '🤳' => 'သႄႇလ်ၾီႇ',
+    '💪' => 'ၵူင်ႇၶႅၼ်ၼႄႁႅင်း',
+    '🦾' => 'ၶႅၼ်မိုဝ်းလဵၵ်း',
+    '🦿' => 'ၶႃလဵၵ်း',
+    '🦵' => 'ၶႃ',
+    '🦶' => 'တိၼ်',
+    '👂' => 'ႁူ',
+    '🦻' => 'ႁူပႃးၶိူင်ႈထွမ်ႇ',
+    '👃' => 'ၶူႈလင်',
+    '🧠' => 'ဢွၵ်းဢေႃ',
+    '🫀' => 'ၶၢၼ်ႇထႃႇႁူဝ်ၸႂ်',
+    '🫁' => 'ပွတ်ႇ',
+    '🦷' => 'ၶဵဝ်ႈ',
+    '🦴' => 'လုပ်ႇ',
+    '👀' => 'တႃ',
+    '👁' => 'ႁူၺ်ႇတႃ',
+    '👅' => 'လိၼ်ႉ',
+    '👄' => 'သူပ်း',
+    '🫦' => 'ၵၢပ်ႈတိၼ်ႇသူပ်း',
+    '👶' => 'လုၵ်ႈဢွၼ်ႇလႅင်',
+    '🧒' => 'လုၵ်ႈဢွၼ်ႇ',
+    '👦' => 'ဢွၼ်ႇၸၢႆး',
+    '👧' => 'တႃႁိူဝ်ႈ',
+    '🧑' => 'သုၼ်ႇၵူၼ်း',
+    '👱' => 'ၵူၼ်း:ၶူၼ်ႁူဝ်သီလိူင်ၶွၼ်ႇ',
+    '👨' => 'ၽူႈၸၢႆး',
+    '🧔' => 'ၵူၼ်း:မွႆၵၢင်း',
+    '👩' => 'ၽူႈယိင်း',
+    '🧓' => 'ၵူၼ်းထဝ်ႈ',
+    '👴' => 'ပူႇထဝ်ႈ',
+    '👵' => 'ၼၢႆးထဝ်ႈ',
+    '🙍' => 'ၵူၼ်းႁူႇၼႃႈႁူႇတႃ',
+    '🙎' => 'ပၢၵ်ႇယိုၼ်ႈ',
+    '🙅' => 'မိုဝ်းႁဵတ်းၼႄ လွင်ႈဝႃႈ ဢမ်ႇ',
+    '🙆' => 'ႁဵတ်းၼႄတူဝ်ဢူဝ်ႇၶေႇ',
+    '💁' => 'ၵူၼ်းပူၵ်းသွၵ်ႇ',
+    '🙋' => 'ၵူၼ်းယုၵ်ႉမိုဝ်း',
+    '🧏' => 'ၵူၼ်းႁူၼူၵ်ႇ',
+    '🙇' => 'ၵူၼ်းယွမ်းၼွမ်း',
+    '🤦' => 'ၵူၼ်းတူမ်းၼႃႈ',
+    '🤷' => 'ၵူၼ်းယေႃႈႁူဝ်မႃႇ',
+    '👮' => 'ၸဝ်ႈၼႃႈတီႈပလိၵ်ႈ',
+    '🕵' => 'ၽူႈၸွပ်ႇ',
+    '💂' => 'ၽူႈပႂ်ႉယၢမ်း',
+    '🥷' => 'ၼိၼ်ႇၵျႃႇ',
+    '👷' => 'ၵူၼ်းႁဵတ်းၵၢၼ်ၵေႃႇသၢင်ႈ',
+    '🫅' => 'ၵူၼ်းသုပ်းဝႅၼ်ႁူဝ်ၶမ်း',
+    '🤴' => 'ၸဝ်ႈၸၢႆး',
+    '👸' => 'ၸဝ်ႈယိင်း',
+    '👳' => 'ၵူၼ်းၶဵၼ်းဝႆႉၶဵၼ်းႁူဝ်',
+    '👲' => 'ၸၢႆးၶႄႇ',
+    '🧕' => 'ၼၢင်းယိင်းသုပ်းၽႃႈႁူမ်ႇႁူဝ်',
+    '🤵' => 'ၵူၼ်းလဝ်း',
+    '👰' => 'ၸဝ်ႈသၢဝ်',
+    '🤰' => 'ၽူႈယိင်းပႃးတွင်း',
+    '🫃' => 'ၽူႈၸၢႆးပႃးတွင်ႉ',
+    '🫄' => 'ၵူၼ်းပႃးတွင်ႉ',
+    '🤱' => 'လဵင်ႉၼူမ်း',
+    '👼' => 'ၶုၼ်ၽီလုၵ်ႈဢွၼ်ႇ',
+    '🎅' => 'သၼ်ႇတႃႇၶလွတ်ႉသ်',
+    '🤶' => 'ၼၢင်းသၼ်ႇတႃႇ',
+    '🦸' => 'သူႇပႃႇႁီးရူဝ်း',
+    '🦹' => 'ၵူၼ်းႁၢႆႉလူင်',
+    '🧙' => 'မေႃၽီ',
+    '🧚' => 'ၼၢင်းၽီ',
+    '🧛' => 'ဝႅမ်ႇပႃႇယႃႇ',
+    '🧜' => 'ၵူၼ်းၶိုင်ႈပႃၶိုင်ႈ',
+    '🧝' => 'ဢႄးလ်ၾ်',
+    '🧞' => 'ယၵ်းၵျီးၼီႇ',
+    '🧟' => 'ၸွမ်ႇပီႇ',
+    '🧌' => 'ထရူဝ်း',
+    '🫈' => 'တူဝ်သတ်းၶူၼ်ယုၺ်း',
+    '💆' => 'ၼူတ်ႈၼႃႈ',
+    '💇' => 'ၵႅတ်းၶူၼ်ႁူဝ်',
+    '🚶' => 'ၵူၼ်းပႆတၢင်း',
+    '🧍' => 'ၵူၼ်းၸုၵ်း',
+    '🧎' => 'ၵူၼ်းၶုပ်ႉၶဝ်ႇ',
+    '🏃' => 'ၵူၼ်းလႅၼ်ႈ',
+    '💃' => 'ၽူႈယိင်းၵႃႈ',
+    '🕺' => 'ၽူႈၸၢႆးၵႃႈ',
+    '🕴' => 'ၵူၼ်းၼုင်ႈသိူဝ်ႈၶူဝ်းသုတ်ႉ',
+    '👯' => 'ၵူၼ်းသႂ်ႇႁူပၢင်တၢႆး',
+    '🧖' => 'ၵူၼ်းၼႂ်းႁွင်ႈဢုပ်ႉဢၢႆၼမ်ႉ',
+    '🧗' => 'ၵူၼ်းၶိုၼ်ႈလွႆ',
+    '🤺' => 'ၵူၼ်းၽၼ်းလႅဝ်း',
+    '🏇' => 'ၶႄႉၶဵင်ႇမႃႉ',
+    '⛷' => 'ၵူၼ်းလဵၼ်ႈသၵီႇ',
+    '🏂' => 'ၵူၼ်းၶီႇပႅၼ်ႈမူၺ်',
+    '🏌' => 'ၵူၼ်းလဵၼ်ႈၵွပ်ႉၾ်',
+    '🏄' => 'ၵူၼ်းၶီႇပႅၼ်ႈၼမ်ႉ',
+    '🚣' => 'ၵူၼ်းၽၢႆးႁိူဝ်း',
+    '🏊' => 'ၵူၼ်းလုၺ်းၼမ်ႉ',
+    '⛹' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်',
+    '🏋' => 'ၵူၼ်းယုၵ်ႉၼမ်ႉၼၵ်း',
+    '🚴' => 'ၵူၼ်းၶီႇလႅင်',
+    '🚵' => 'ၵူၼ်းၶီႇလႅင်လွႆ',
+    '🤸' => 'ၵူၼ်းၶိတ်းတင်ႈတူး',
+    '🤼' => 'ၵူၼ်းၵုၼ်းၵၼ်',
+    '🤽' => 'ၵူၼ်းလဵၼ်ႈပူဝ်ႇလူဝ်ႇၼမ်ႉ',
+    '🤾' => 'ၵူၼ်းလဵၼ်ႈမၢၵ်ႇၼင်မိုဝ်း',
+    '🤹' => 'ၵူၼ်းလဵၼ်ႈၵျၵ်းၵလိင်း',
+    '🧘' => 'ၵူၼ်းၼင်ႈသမႃႇထိ',
+    '🛀' => 'ၵူၼ်းဢၢပ်ႇၼမ်ႉ',
+    '🛌' => 'ၵူၼ်းၼွၼ်းလပ်း',
+    '👭' => 'ယိင်း-ယိင်းယိပ်းမိုဝ်းၵၼ်',
+    '👫' => 'ယိင်း-ၸၢႆးယိပ်းမိုဝ်းၵၼ်',
+    '👬' => 'ၸၢႆး-ၸၢႆးယိပ်းမိုဝ်းၵၼ်',
+    '💏' => 'ၸုပ်ႇ',
+    '💑' => 'ၵူႈႁၵ်ႉလႄႈႁူဝ်ၸႂ်',
+    '🗣' => 'ငဝ်းၵူၼ်းလၢတ်ႈၵႂၢမ်း',
+    '👤' => 'ငဝ်းၶိုင်ႈတူဝ်ၼိုင်ႈၵေႃႉ',
+    '👥' => 'ငဝ်းၶိုင်ႈတူဝ်သွင်ၵေႃႉ',
+    '🫂' => 'ၵူၼ်းၵွတ်ႇၵၼ်',
+    '👪' => 'မုင်ႉႁေႃႁိူၼ်း',
+    '👣' => 'ႁွႆးတိၼ်',
+    '🫆' => 'ႁွႆးမိုဝ်း',
+    '🦰' => 'ၶူၼ်ႁူဝ်လႅင်',
+    '🦱' => 'ၶူၼ်​ႁူဝ်ငေႃး',
+    '🦳' => 'ၶူၼ်ႁူဝ်ၶၢဝ်',
+    '🦲' => 'ႁူဝ်လွမ်ႈ',
+    '🐵' => 'ၼႃႈလိင်း',
+    '🐒' => 'လိင်း',
+    '🦍' => 'ၵူဝ်ႇရီႇလႃႇ',
+    '🦧' => 'ဢူဝ်ႇရၼ်ႇၵူႇတၢၼ်ႇ',
+    '🐶' => 'ၼႃႈမႃ',
+    '🐕' => 'မႃ',
+    '🦮' => 'မႃၼမ်းတၢင်း',
+    '🐩' => 'ၽူးတႄႇလ်',
+    '🐺' => 'မႃၼႆး',
+    '🦊' => 'မႃလိၼ်',
+    '🦝' => 'ရႅၵ်ႈၶုၼ်း',
+    '🐱' => 'ၼႃႈမႅဝ်း',
+    '🐈' => 'မႅဝ်း',
+    '🦁' => 'သၢင်ႇသီႈ',
+    '🐯' => 'ၼႃႈသိူဝ်',
+    '🐅' => 'သိူဝ်',
+    '🐆' => 'သိူဝ်ၶူး',
+    '🐴' => 'ၼႃႈမႃႉ',
+    '🫎' => 'ၵႂၢင်ၵူင်းလူင်',
+    '🫏' => 'လႃး',
+    '🐎' => 'မႃႉ',
+    '🦄' => 'ယူႇၼီႇၶွၼ်း',
+    '🦓' => 'မႃႉလၢႆး',
+    '🦌' => 'ၵႂၢင်',
+    '🦬' => 'ၵႂႆၢးထိူၼ်ႇ',
+    '🐮' => 'ၼႃႈဝူဝ်း',
+    '🐂' => 'ဝူဝ်းငၢၼ်',
+    '🐃' => 'ၵႂၢႆး',
+    '🐄' => 'ဝူဝ်းမႄႈ',
+    '🐷' => 'ၼႃႈမူ',
+    '🐖' => 'မူ',
+    '🐗' => 'မူထိူၼ်ႇတူဝ်ပေႃႈ',
+    '🐽' => 'ၶူႈလင်မူ',
+    '🐏' => 'ၸဵၼ်တူဝ်ပေႃႈ',
+    '🐑' => 'မႄႈၸဵၼ်',
+    '🐐' => 'ပႄႉ',
+    '🐪' => 'မႃႉၵုင်',
+    '🐫' => 'မႃႉၵုင်သွင်ၼွၵ်ႇ',
+    '🦙' => 'လႃးမႃး',
+    '🦒' => 'ယီးလၢႆးၶေႃးယၢဝ်း',
+    '🐘' => 'ၸၢင်ႉ',
+    '🦣' => 'ၸၢင်ႉမႅမ်မွတ်ႉ',
+    '🦏' => 'ၸူင်',
+    '🦛' => 'မႃႉၼမ်ႉ',
+    '🐭' => 'ၼႃႈၼူ',
+    '🐁' => 'ၼူဢွၼ်ႇ',
+    '🐀' => 'ၼူ',
+    '🐹' => 'ၼူႁႅမ်းသတႃႇ',
+    '🐰' => 'ၼႃႈပၢင်တၢႆး',
+    '🐇' => 'ပၢင်တၢႆး',
+    '🐿' => 'ၼႆႇ',
+    '🦫' => 'တွၼ်ႇႁၢင်လၢမ်ႈ',
+    '🦔' => 'မဵၼ်ႈ',
+    '🦇' => 'မိင်ႇ',
+    '🐻' => 'မီ',
+    '🐨' => 'ၵူဝ်ႇဢႃးလႃး',
+    '🐼' => 'မီၽႅၼ်ႇတႃႇ',
+    '🦥' => 'သလွတ်ႉ',
+    '🦦' => 'မူၼ်ႈ',
+    '🦨' => 'လင်လၢႆး',
+    '🦘' => 'ပုမ်ထွင်း',
+    '🦡' => 'ပႅတ်ႉၵျႃႇ',
+    '🐾' => 'ႁွႆးတိၼ်သတ်း',
+    '🦃' => 'ၵႆႇၸၢင်ႉ',
+    '🐔' => 'ၵႆႇ',
+    '🐓' => 'ၵႆႇၽူႈ',
+    '🐣' => 'ၼူၵ်ႉဢွၼ်ႇတႅၵ်ႇဢွၵ်ႇမႃးတီႈၶႆႇ',
+    '🐤' => 'ၵႆႇဢွၼ်ႇ',
+    '🐥' => 'ၼူၵ်ႉဢွၼ်ႇၸုၵ်းဝၢႆႇၼႃႈၵႂႃႇတၢင်းၼႃႈ',
+    '🐦' => 'ၼူၵ်ႉ',
+    '🐧' => 'ၽႅၼ်ႇၵႂိၼ်း',
+    '🕊' => 'ၼူၵ်ႉတူႈ',
+    '🦅' => 'ႁုင်ႉ',
+    '🦆' => 'ပဵတ်း',
+    '🦢' => 'ႁၢၼ်ႇ',
+    '🦉' => 'ၵဝ်ႉ',
+    '🦤' => 'ၼူၵ်ႉတူဝ်တူဝ်',
+    '🪶' => 'ၶူၼ်ၼူၵ်ႉ',
+    '🦩' => 'ၼူၵ်ႉၾလမိၼ်းၵူဝ်ႇ',
+    '🦚' => 'ၼူၵ်ႉယုင်း',
+    '🦜' => 'ၼူၵ်ႉၶဵဝ်',
+    '🪽' => 'ပိၵ်ႇ',
+    '🪿' => 'ပဵတ်းဢၢတ်ႇ',
+    '🐸' => 'ၶဵတ်ႇ',
+    '🐊' => 'ငိူၵ်ႈ',
+    '🐢' => 'တဝ်ႇ',
+    '🦎' => 'ဢၢၵ်ႇၶၢင်',
+    '🐍' => 'ငူး',
+    '🐲' => 'ၼႃႈၼၵႃး',
+    '🐉' => 'ၼၵႃး',
+    '🦕' => 'သေႃးရူဝ်ပွတ်ႉ',
+    '🦖' => 'တီႇရႅၵ်ႉ',
+    '🐳' => 'ပႃလူင်မိူင်းႁူတ်းၼမ်ႉ',
+    '🐋' => 'ပႃလူင်မိူင်း',
+    '🐬' => 'ပႃၶႃႇ',
+    '🫍' => 'ပႃဝေးလ်ဢေႃးၵႃႇ',
+    '🐟' => 'ပႃ',
+    '🐠' => 'ပႃပွတ်းမႆႈ',
+    '🐡' => 'ပႃပွင်းလူမ်း',
+    '🦈' => 'ပႃႁၢႆႉ',
+    '🐙' => 'ပႃဝိုၵ်း',
+    '🐚' => 'ၵၢပ်ႇႁွႆ',
+    '🪸' => 'ႁိၼ်ၵႅဝ်ႈ',
+    '🪼' => 'ပႃတင်',
+    '🦀' => 'ပူ',
+    '🦞' => 'ၵုင်ႈလူင်',
+    '🦐' => 'ၵုင်ႈ',
+    '🦑' => 'ပႃမိုၵ်ႉ',
+    '🦪' => 'ႁွႆဢွင်ႇငႄး',
+    '🐌' => 'ႁွႆတၢၵ်ႇ',
+    '🦋' => 'ၵၢပ်ႇမိူဝ်ႈ',
+    '🐛' => 'မူင်ႈ',
+    '🐜' => 'မူတ်ႉ',
+    '🐝' => 'ၽိုင်ႈ',
+    '🪲' => 'ၸူႇၸီႈ',
+    '🐞' => 'မႅင်းလႅင်',
+    '🦗' => 'ၸၵ်းၸႃႈ',
+    '🪳' => 'မႅင်းသၢပ်ႇ',
+    '🕷' => 'ၵူင်ႇၵၢဝ်',
+    '🕸' => 'ယႂ်းၵူင်ႇၵၢဝ်',
+    '🦂' => 'မႅင်းၵူၼ်ႈငေႃး',
+    '🦟' => 'ယုင်း',
+    '🪰' => 'မႅင်းမူၼ်း',
+    '🪱' => 'တိူၵ်ႇ',
+    '🦠' => 'မူင်ႈမႅင်းလဵၵ်ႉၼွႆႉ',
+    '💐' => 'မတ်ႉမွၵ်ႇ',
+    '🌸' => 'မွၵ်ႇၵွၼ်',
+    '💮' => 'မွၵ်ႇၶၢဝ်',
+    '🪷' => 'မွၵ်ႇမူဝ်',
+    '🏵' => 'ႁၢင်ႈမွၵ်ႇၵွၼ်',
+    '🌹' => 'မွၵ်ႇၵၢႆးလဝ်း',
+    '🥀' => 'မွၵ်ႇႁဵဝ်ႇ',
+    '🌺' => 'မွၵ်ႇႁိပ်ႉပိတ်ႉၸၵတ်ႉသ်',
+    '🌻' => 'မွၵ်ႇဝၢႆႇဝၼ်း',
+    '🌼' => 'မွၵ်ႇယုမ်းၶိူဝ်း',
+    '🌷' => 'မွၵ်ႇထူးလိပ်ႉ',
+    '🪻' => 'မွၵ်ႇႁၢႆးသိၼ်ႇ',
+    '🌱' => 'တူၼ်ႈဢွၼ်ႇ',
+    '🪴' => 'တူၼ်ႈၼႂ်းဢုမ်',
+    '🌲' => 'တူၼ်ႈပႅၵ်ႇ',
+    '🌳' => 'တူၼ်ႈမႆႉႁွမ်',
+    '🌴' => 'တူၼ်ႈမၢၵ်ႇဢုၼ်',
+    '🌵' => 'တူၼ်ႈၼၢမ်',
+    '🌾' => 'ႁူင်းၶဝ်ႈ',
+    '🌿' => 'ၵီးႁွမ်',
+    '☘' => 'တူၼ်ႈမႆႉသႅမ်း',
+    '🍀' => 'တူၼ်ႈမွၵ်ႇမႂ်သီႇမႂ်',
+    '🍁' => 'မႂ်မေႇပႄႇလ်',
+    '🍂' => 'မႂ်မႆႉတူၵ်း',
+    '🍃' => 'မႂ်မႆႉပိဝ်ၸွမ်းလူမ်း',
+    '🪹' => 'ႁၢင်းပဝ်ႇ',
+    '🪺' => 'ႁၢင်းဢၼ်မီးၶႆႇ',
+    '🍄' => 'ႁဵပ်း',
+    '🪾' => 'တူၼ်ႈမႆႉႁၢမ်းမႂ်',
+    '🍇' => 'မၢၵ်ႇဢိတ်ႇ',
+    '🍈' => 'တႅင်ႁွမ်',
+    '🍉' => 'တႅင်ၸမ်ႇပူႇ',
+    '🍊' => 'မၢၵ်ႇၸွၵ်း',
+    '🍋' => 'မၢၵ်ႇဢိုၼ်ႈ',
+    '🍌' => 'ၵူၺ်ႈ',
+    '🍍' => 'မၢၵ်ႇၵဵင်',
+    '🥭' => 'မၢၵ်ႇမူင်ႈ',
+    '🍎' => 'မၢၵ်ႇၵႅမ်ႈၶွင်ႇသီလႅင်',
+    '🍏' => 'မၢၵ်ႇၵႅမ်ႈၶွင်ႇသီၶဵဝ်',
+    '🍐' => 'မၢၵ်ႇၵေႃႈ',
+    '🍑' => 'မၢၵ်ႇမူၼ်ႇ',
+    '🍒' => 'မၢၵ်ႇၵွၼ်',
+    '🍓' => 'မၢၵ်ႇႁူႈလႅင်',
+    '🫐' => 'မၢၵ်ႇႁူႈၵမ်ႇ',
+    '🥝' => 'မၢၵ်ႇၵီႇဝီႇ',
+    '🍅' => 'မၢၵ်ႇၶိူဝ်သူမ်ႈ',
+    '🫒' => 'မၢၵ်ႇၵွၵ်ႇ',
+    '🥥' => 'မၢၵ်ႇဢုၼ်',
+    '🥑' => 'မၢၵ်ႇၶႆၼိူၺ်း',
+    '🍆' => 'မၢၵ်ႇၶိူဝ်',
+    '🥔' => 'ဢႃႇလူး',
+    '🥕' => 'ႁူဝ်ပိုၵ်ႉလႅင်',
+    '🌽' => 'ၶဝ်ႈၵၢပ်ႇ',
+    '🌶' => 'မၢၵ်ႇၽိတ်ႉ',
+    '🫑' => 'မၢၵ်ႇၽိတ်ႉလူင်',
+    '🥒' => 'တႅင်',
+    '🥬' => 'ၽၵ်းၶဵဝ်',
+    '🥦' => 'ၽၵ်းၵၢတ်ႇမွၵ်ႇ',
+    '🧄' => 'ၽၵ်းမီႇႁေႃ',
+    '🧅' => 'ၽၵ်းမီႇႁူဝ်လႅင်',
+    '🥜' => 'ထူဝ်ႇလိၼ်',
+    '🫘' => 'ထူဝ်ႇ',
+    '🌰' => 'မၢၵ်ႇၵေႃႇ',
+    '🫚' => 'ၶိင်',
+    '🫛' => 'ၽၵ်းထူဝ်ႇ',
+    '🫜' => 'ႁၢၵ်ႈၽၵ်းၶဵဝ်',
+    '🍞' => 'ၶဝ်ႈၼုမ်ပင်း',
+    '🥐' => 'ၶရူဝ်ႇသွင်ႇ',
+    '🥖' => 'ၶဝ်ႈၼုမ်ႇပင်းၾရၢင်ႇသဵတ်ႈ',
+    '🫓' => 'ၶဝ်ႈၼုမ်ႇပင်းၽႅပ်ႉ',
+    '🥨' => 'ပရႅတ်ႉၸႄႇလ်',
+    '🥯' => 'ပေးၵႄႇလ်',
+    '🥞' => 'ပႅၼ်ႇၵဵၵ်ႉ',
+    '🧇' => 'ဝႅပ်ႇၾိဝ်း',
+    '🧀' => 'ၼိူၺ်းၶႅင်',
+    '🍖' => 'ၼိူဝ်ႉ',
+    '🍗' => 'ၶႃၵႆႇ',
+    '🥩' => 'ပုတ်းၼိူဝ်ႉ',
+    '🥓' => 'ပေႇၶွၼ်ႇ',
+    '🍔' => 'ႁႅမ်းပႃႇၵႃႇ',
+    '🍟' => 'ဢႃႇလူးၶူဝ်ႈ',
+    '🍕' => 'ၽိတ်ႉၸႃႇ 1 သိၵ်ႈ',
+    '🌭' => 'ႁွတ်ႉတွၵ်ႉ',
+    '🥪' => 'သႅၼ်းဝိတ်ႉၶ်ျ',
+    '🌮' => 'တႃႇၵူဝ်ႇ',
+    '🌯' => 'ပူႇရီႇတူဝ်ႇ',
+    '🫔' => 'တမ်ႇမႃႇလႄႇ',
+    '🥙' => 'ၶဝ်ႈမုၼ်းၽႅပ်ႉဢၼ်သႂ်ႇဝႆႉဢွၵ်း',
+    '🧆' => 'ၽႃႇလႃႇၾႄး',
+    '🥚' => 'ၶႆႇ',
+    '🍳' => 'တူမ်ႈႁုင်',
+    '🥘' => 'မေႃႈၶူဝ်ႈတၢင်းၵိၼ်',
+    '🍲' => 'မေႃႈတၢင်းၵိၼ်',
+    '🫕' => 'ၾွၼ်းတူး',
+    '🥣' => 'ဝၢၼ်ႈ လႄႈ ၸေႃႉ',
+    '🥗' => 'ၽၵ်းၶဵဝ်သႃႈ',
+    '🍿' => 'ပွပ်ႉၶွၼ်း',
+    '🧈' => 'ၶႆၼိူၺ်း',
+    '🧂' => 'ၵိူဝ်',
+    '🥫' => 'တၢင်းၵိၼ်ၼႂ်းဢႅပ်ႇ',
+    '🍱' => 'ၵွၵ်းပႅၼ်ႇတူဝ်ႇ',
+    '🍘' => 'ၶဝ်ႈမဵတ်ႉၵၢႆႇ',
+    '🍙' => 'ၶဝ်ႈပၼ်ႈ',
+    '🍚' => 'ၶဝ်ႈသုၵ်း',
+    '🍛' => 'ၶဝ်ႈၽၵ်း',
+    '🍜' => 'ရႃႇမႅၼ်ႇ',
+    '🍝' => 'သပႃးၵႅတ်ႉတီႇ',
+    '🍠' => 'မၼ်းလႅင်ၸီႇ',
+    '🍢' => 'ဢူဝ်ႇတႅၼ်း',
+    '🍣' => 'သူႇသျီႇ',
+    '🍤' => 'ၵုင်ႈၶူဝ်ႈ',
+    '🍥' => 'ၼိူဝ်ႉၵွၼ်ႈပႃ',
+    '🥮' => 'ၶဝ်ႈမုၼ်းလိူၼ်',
+    '🍡' => 'တင်ႇၵူဝ်ႇ',
+    '🥟' => 'ၼိူဝ်ႉၸွၵ်း',
+    '🥠' => 'ၶုၵ်ႉၶီးတိုဝ်ႉတၢင်း',
+    '🥡' => 'တၢင်းၵိၼ်ၸွၵ်းသႂ်ႇဢႅပ်ႇၵႂႃႇ',
+    '🍦' => 'သွပ်ႉၾ်ၶရိမ်ႇ',
+    '🍧' => 'ၼမ်ႉၶႅင်ႁေႃး',
+    '🍨' => 'ဢၢႆးသ်ၶရိမ်ႇ',
+    '🍩' => 'တူဝ်းၼတ်ႉ',
+    '🍪' => 'ၶုၵ်ႉၶီး',
+    '🎂' => 'ၶဵၵ်ႉဝၼ်းၵိူတ်ႇ',
+    '🍰' => 'ၶဵၵ်ႉပွတ်း',
+    '🧁' => 'ၶၢပ်ႉၶဵၵ်ႉ',
+    '🥧' => 'ၽၢႆး',
+    '🍫' => 'ၶျေႃးၵလႅတ်ႉ',
+    '🍬' => 'မၢၵ်ႇဢူမ်',
+    '🍭' => 'ဢူမ်ယုမ်ႉ',
+    '🍮' => 'ၶႅတ်ႉသတႃႇ',
+    '🍯' => 'ဢွမ်ၼမ်ႉၽိုင်ႈ',
+    '🍼' => 'တဝ်ႈၼူမ်း',
+    '🥛' => 'ၵွၵ်းၼူမ်း',
+    '☕' => 'ၼမ်ႉမႆႈ',
+    '🫖' => 'ငွႆးၼမ်ႉၼဵင်ႈ',
+    '🍵' => 'ၵွၵ်းႁူ',
+    '🍶' => 'သႃႇၵေး',
+    '🍾' => 'သျႅမ်ႇပဵင်ႇ',
+    '🍷' => 'ၵွၵ်းဝၢႆႇ',
+    '🍸' => 'ၵွၵ်းၶွၵ်ႉတေးလ်',
+    '🍹' => 'ၼမ်ႉမၢၵ်ႇမႆႉလေႃးလဝ်ႈ',
+    '🍺' => 'ၵွၵ်းပီႇယႃႇ',
+    '🍻' => 'လေႃႇၵွၵ်းပီႇယႃႇ',
+    '🥂' => 'လေႃႇၵွၵ်း',
+    '🥃' => 'ၵွၵ်းလဝ်ႈ',
+    '🫗' => 'ၼမ်ႉႁေႈ',
+    '🥤' => 'ၵွၵ်းတင်းလွတ်ႇ',
+    '🧋' => 'ၼမ်ႉၼဵင်ႈၶႆႇမုၵ်း',
+    '🧃' => 'ဢႅပ်ႇၼမ်ႉမၢၵ်ႇ',
+    '🧉' => 'ၼမ်ႉၼဵင်ႈမႃႇတေး',
+    '🧊' => 'ၵွၼ်ႈၼမ်ႉၶႅင်',
+    '🥢' => 'ထူႇ',
+    '🍽' => 'ဝၢၼ်ႇ လႄႈ ၸေႃႉငႅမ်ႈတင်းမိတ်ႈ',
+    '🍴' => 'ၸေႃႉငႅမ်ႈ လႄႈ မိတ်ႈ',
+    '🥄' => 'ၸေႃႉ',
+    '🔪' => 'မိတ်ႈသိုင်ႇၽႆး',
+    '🫙' => 'ၵွၵ်းၵႅဝ်ႈလူင်',
+    '🏺' => 'ဢုမ်ၵဝ်ႇၵႄႇ',
+    '🌍' => 'လူၵ်ႈဢၼ်ၼႄ​ ယူးရူပ်ႉ-ဢႃႇၾရိၵ',
+    '🌎' => 'လူၵ်ႈဢၼ်ၼႄ​ ဢမႄႇရိၵ',
+    '🌏' => 'လူၵ်ႈဢၼ်ၼႄ​ ဢေးသျႃး-ဢေႃႉသထရေးလီးယႃး',
+    '🌐' => 'လူၵ်ႈဢၼ်မီးသဵၼ်ႈမေႇရီႇတီးယႅၼ်ႇ',
+    '🗺' => 'ၽႅၼ်ႇလိၼ်ၵမ်ႇၽႃႇ',
+    '🗾' => 'ၽႅၼ်ႇလိၼ်ၵျႃႇပၢၼ်ႇ',
+    '🧭' => 'ၶွမ်းပၢတ်ႉ',
+    '🏔' => 'လွႆမူၺ်',
+    '⛰' => 'လွႆ',
+    '🛘' => 'လွႆၵူၼ်ႇ',
+    '🌋' => 'လွႆၽႆး',
+    '🗻' => 'လွႆၾူႇၵျီႇ',
+    '🏕' => 'ပၢင်သဝ်း',
+    '🏖' => 'ၽင်ႇပၢင်ႇလၢႆႇ တင်း ၸွင်ႈ',
+    '🏜' => 'ႁၢတ်ႇသၢႆး',
+    '🏝' => 'ၵုၼ်ႁၢတ်ႇသၢႆး',
+    '🏞' => 'သူၼ်ၸိူဝ်ႉၸၢတ်ႈ',
+    '🏟' => 'ႁူင်းလဵၼ်ႈႁႅင်း',
+    '🏛' => 'ႁူင်းၵေႃႇသၢင်ႈ ၽၢင်ႁၢင်ႈၵဝ်ႇၵႄႇ',
+    '🏗' => 'ၵၢၼ်ၵေႃႇသၢင်ႈႁူင်းႁေႃ',
+    '🧱' => 'မၢၵ်ႇဢုတ်ႇ',
+    '🪨' => 'မၢၵ်ႇႁိၼ်',
+    '🪵' => 'မႆႉ',
+    '🛖' => 'သုမ်ႉတွပ်း',
+    '🏘' => 'ႁိူၼ်း',
+    '🏚' => 'ႁိူၼ်းႁၢမ်း',
+    '🏠' => 'ႁိူၼ်းလဵဝ်',
+    '🏡' => 'ႁိူၼ်းမီးသူၼ်မွၵ်ႇ',
+    '🏢' => 'ႁူင်းလုမ်း',
+    '🏣' => 'ႁူင်းသူင်ႇလိၵ်ႈၵျႃႇပၢၼ်ႇ',
+    '🏤' => 'ႁူင်းသူင်ႇလိၵ်ႈ',
+    '🏥' => 'ႁူင်းယႃ',
+    '🏦' => 'ယေးငိုၼ်း',
+    '🏨' => 'ႁူင်းႁႅမ်း',
+    '🏩' => 'ႁူင်းႁႅမ်းႁၵ်ႉ',
+    '🏪' => 'လၢၼ်ႉၶၢႆၶူဝ်းၶွင်',
+    '🏫' => 'ႁူင်းႁဵၼ်း',
+    '🏬' => 'လၢၼ်ႉၶၢႆၶူဝ်းလူင်',
+    '🏭' => 'ႁူင်းၸၢၵ်ႈ',
+    '🏯' => 'ႁေႃႁိၼ်ၵျႃႇပၢၼ်ႇ',
+    '🏰' => 'ႁေႃတမ်ႇတိူင်း',
+    '💒' => 'ပၢင်ၶႅၵ်ႇ',
+    '🗼' => 'ၶဵင်ႇမုင်ႈတူဝ်ႇၵျူဝ်ႇ',
+    '🗽' => 'ႁုၼ်ႇႁၢင်ႈ လွတ်ႈလႅဝ်းသဝ်းၶေႃ',
+    '⛪' => 'ၵျွင်းၶရိတ်ႉယၢၼ်ႇ',
+    '🕌' => 'ၵျွင်းဢိတ်ႉသလမ်း',
+    '🛕' => 'ၵျွင်းႁိၼ်ႇတူႇ',
+    '🕍' => 'ၵျွင်းၵျူး',
+    '⛩' => 'ၵျွင်းၽြႃးသျိၼ်ႇတူဝ်ႇ',
+    '🕋' => 'ၵႃႇပႃႇ',
+    '⛲' => 'ၼမ်ႉၽုတ်း',
+    '⛺' => 'သုမ်ႉ',
+    '🌁' => 'ဢိူမ်ႈ',
+    '🏙' => 'မူႇတိူၵ်ႈသုင်',
+    '🌄' => 'လႅတ်ႇဢွၵ်ႇၵၢင်လွႆ',
+    '🌅' => 'လႅတ်ႇဢွၵ်ႇ',
+    '🌆' => 'ဝဵင်းမိူဝ်ႈၵၢင်ၶမ်ႈ',
+    '🌇' => 'ၵၢင်ဝၼ်းတူၵ်း',
+    '🌉' => 'ၶူဝ်မိူဝ်ႈၵၢင်ၶမ်ႈ',
+    '♨' => 'တႃႈၼမ်ႉဢုၼ်ႇ',
+    '🎠' => 'မႃႉပၼ်ႇႁွပ်ႈ',
+    '🛝' => 'ဢွင်ႈတီႈလေႃလဵၼ်ႈ',
+    '🎡' => 'ၵူင်းပၼ်ႇ',
+    '🎢' => 'ရူတ်ႉလဵၼ်းမိၼ်',
+    '💈' => 'လၢၼ်ႉၵႅတ်းၶူၼ်ႁူဝ်',
+    '🎪' => 'သုမ်ႉၸိူင်းသတ်း',
+    '🚂' => 'ႁူဝ်လူတ်ႉၸၢၵ်ႈဢၢႆၼမ်ႉ',
+    '🚃' => 'ၵႃးလူတ်ႉလဵၼ်း',
+    '🚄' => 'သျိၼ်းၵၼ်းသႅၼ်ႇ',
+    '🚅' => 'လူတ်ႉလဵၼ်းမၢၵ်ႇၵွင်ႈ',
+    '🚆' => 'လူတ်ႉလဵၼ်း',
+    '🚇' => 'လူတ်ႉလဵၼ်းတႂ်ႈလိၼ်',
+    '🚈' => 'လူတ်ႉလဵၼ်းသၢႆၾႆး',
+    '🚉' => 'တႃႈလူတ်ႉလဵၼ်း',
+    '🚊' => 'လူတ်ႉၾႆး',
+    '🚝' => 'လူတ်ႉလဵၼ်းတၢင်းလဵဝ်',
+    '🚞' => 'တၢင်းလူတ်ႉလဵၼ်းၸွမ်းလွႆ',
+    '🚋' => 'ၵႃးလူတ်ႉၾႆး',
+    '🚌' => 'လူတ်ႉပၢသ်ႉ',
+    '🚍' => 'ပၢသ်ႉဢၼ်တေမႃး',
+    '🚎' => 'လူတ်ႉထရေႃႇလီႇ',
+    '🚐' => 'လူတ်ႉပၢသ်ႉဢွၼ်ႇ',
+    '🚑' => 'လူတ်ႉႁူင်းယႃ',
+    '🚒' => 'လူတ်ႉၶႄၾႆး',
+    '🚓' => 'လူတ်ႉပလိၵ်ႈ',
+    '🚔' => 'လူတ်ႉပလိၵ်ႈဢၼ်မႃးၽၢႆႇၼႃႈ',
+    '🚕' => 'ထႅၵ်ႇသီႇ',
+    '🚖' => 'ထႅၵ်ႇသီႇဢၼ်မႃးၽၢႆႇၼႃႈ',
+    '🚗' => 'လူတ်ႉ',
+    '🚘' => 'လူတ်ႉဢၼ်မႃးၽၢႆႇၼႃႈ',
+    '🚙' => 'လူတ်ႉႁိူၼ်း',
+    '🛻' => 'လူတ်ႉတၢင်ႇၶူဝ်း',
+    '🚚' => 'လူတ်ႉသူင်ႇၶူဝ်း',
+    '🚛' => 'လူတ်ႉတၢင်ႇၵုၼ်ႇ',
+    '🚜' => 'လူတ်ႉထႆ',
+    '🏎' => 'လူတ်ႉၶႄႉၶဵင်ႇ',
+    '🏍' => 'လူတ်ႉၶိူင်ႈ',
+    '🛵' => 'လူတ်ႉၶိူင်ႈဢွၼ်ႇ',
+    '🦽' => 'တင်ႇမၢၵ်ႇလေႃႉထမ်ႇမတႃႇ',
+    '🦼' => 'ၼင်ႇမၢၵ်ႇလေႃႈဢၼ်သႂ်ႇၸၢၵ်ႈ',
+    '🛺' => 'လူတ်ႉသၢမ်လေႃႉ',
+    '🚲' => 'လႅင်',
+    '🛴' => 'သၵူႇတႃႇ',
+    '🛹' => 'သၵဵၵ်ႉပွတ်ႉ',
+    '🛼' => 'သွၵ်းတိၼ်သၵဵၵ်ႉ',
+    '🚏' => 'တီႈၵိုတ်းလူတ်ႉပၢသ်ႉ',
+    '🛣' => 'သဵၼ်ႈတၢင်းလူင်',
+    '🛤' => 'တၢင်းလူတ်ႉလဵၼ်း',
+    '🛢' => 'ပုင်းတရမ်ႇၼမ်ႉမၼ်း',
+    '⛽' => 'ပၢမ်ႉၼမ်ႉမၼ်း',
+    '🛞' => 'မၢၵ်ႇလူတ်ႉ',
+    '🚨' => 'ၾႆးလူတ်ႉပလိၵ်ႈ',
+    '🚥' => 'ၶၢဝ်ႈၾႆးဢၼ်ၼွၼ်း',
+    '🚦' => 'ၶၢဝ်ႈၾႆးဢၼ်တင်ႈ',
+    '🛑' => 'ပၢႆႉၵိုတ်း',
+    '🚧' => 'ပၢႆႉဢွင်ႈတီႈၵေႃႇသၢင်ႈ',
+    '⚓' => 'လဵၵ်းလၢမ်ႈႁိူဝ်း',
+    '🛟' => 'တူင်ႇၸွႆႈသၢႆၸႂ်',
+    '⛵' => 'ႁိူဝ်းယွတ်ႈ',
+    '🛶' => 'ၶႄၼူး',
+    '🚤' => 'ႁိူဝ်းၶၼ်ဝႆး',
+    '🛳' => 'ႁိူဝ်းတၢင်ႇၵူၼ်း',
+    '⛴' => 'ႁိူဝ်းၾႄႇရီႇ',
+    '🛥' => 'ႁိူဝ်းမေႃႇတေႃႇ',
+    '🚢' => 'ႁိူဝ်း',
+    '✈' => 'ႁိူဝ်းမိၼ်',
+    '🛩' => 'ႁိူၼ်းမိၼ်ဢွၼ်ႇ',
+    '🛫' => 'ႁိူဝ်းမိၼ်ၶိုၼ်ႈ',
+    '🛬' => 'ႁိူဝ်းမိၼ်ႁွတ်ႈမႃး',
+    '🪂' => 'ၸွင်ႈလူမ်း',
+    '💺' => 'တီႈၼင်ႈ',
+    '🚁' => 'ႁိူဝ်းမိၼ်မႅင်းမီႈ',
+    '🚟' => 'သဵၼ်ႈတၢင်းလူတ်ႉလဵၼ်းၽႅၼ်',
+    '🚠' => '​ၵႃးၵေႇပႄႇလ်',
+    '🚡' => 'လူတ်ႉၾႆးလႆၼိူဝ်ၵၢင်ႁၢဝ်',
+    '🛰' => 'လႅင်လၢဝ်',
+    '🚀' => 'ၼူၾႆး',
+    '🛸' => 'ဢၢင်ႇမိၼ်',
+    '🛎' => 'ႁိင်ႇႁူင်းႁႅမ်း',
+    '🧳' => 'တိူၵ်ႈၶူဝ်း',
+    '⌛' => 'ၼႃႇလီႇသၢႆး',
+    '⏳' => 'ၼႃႇလီႇသၢႆးဢၼ်ပႆႇယဝ်ႉတူဝ်ႈ',
+    '⌚' => 'ၼႃႇလီႇၶွပ်ႈမိုဝ်း',
+    '⏰' => 'ၼႃႇလီႇပၼ်ၽၢင်ႉ',
+    '⏱' => 'ၼႃႇလီႇမၢႆၶၢဝ်း',
+    '⏲' => 'ၼႃႇလီႇၼပ်ႉၶၢဝ်းယၢမ်း',
+    '🕰' => 'ၼႃႇလီႇၼိူဝ်ၶဵင်ႇ',
+    '🕛' => 'သိပ်းသွင်မူင်း',
+    '🕧' => 'သိပ်းသွင်မူင်းၶိုင်ႈ',
+    '🕐' => 'ၼိုင်ႈမူင်း',
+    '🕜' => 'ၼိုင်ႈမူင်းၶိုင်ႈ',
+    '🕑' => 'သွင်မူင်း',
+    '🕝' => 'သွင်မူင်းၶိုင်ႈ',
+    '🕒' => 'သၢမ်မူင်း',
+    '🕞' => 'သၢမ်မူင်းၶိုင်ႈ',
+    '🕓' => 'သီႇမူင်း',
+    '🕟' => 'သီႇမူင်းၶိုင်ႈ',
+    '🕔' => 'ႁႃႈမူင်း',
+    '🕠' => 'ႁႃႈမူင်းၶိုင်ႈ',
+    '🕕' => 'ႁူၵ်းမူင်း',
+    '🕡' => 'ႁူၵ်းမူင်းၶိုင်ႈ',
+    '🕖' => 'ၸဵတ်းမူင်း',
+    '🕢' => 'ၸဵတ်းမူင်ႈၶိူင်ႈ',
+    '🕗' => 'ပႅတ်ႇမူင်း',
+    '🕣' => 'ပႅတ်ႇမူင်းၶိုင်ႈ',
+    '🕘' => 'ၵဝ်ႈမူင်း',
+    '🕤' => 'ၵဝ်ႈမူင်းၶိုင်ႈ',
+    '🕙' => 'သိပ်းမူင်း',
+    '🕥' => 'သိပ်းမူင်းၶိုင်ႈ',
+    '🕚' => 'သိပ်းဢဵတ်းမူင်း',
+    '🕦' => 'သိပ်းဢဵတ်းမူင်းၶိုင်ႈ',
+    '🌑' => 'လိူၼ်လပ်း',
+    '🌒' => 'လိူၼ်မႂ်ႇ',
+    '🌓' => 'လိူၼ်ၽၢၵ်ႇၽၢႆႇၶႂႃ',
+    '🌔' => 'ဝူင်ႈၼႃႈလိူၼ်မူၼ်း',
+    '🌕' => 'လိူၼ်မူၼ်း',
+    '🌖' => 'လိူၼ်လွင်ႈ',
+    '🌗' => 'လိူၼ်ၽၢၵ်ႇၽၢႆႇသၢႆႉ',
+    '🌘' => 'ဝူင်ႈၼႃႈလိူၼ်လပ်း',
+    '🌙' => 'လိူၼ်ၽၢၵ်ႇ',
+    '🌚' => 'ၼႃႈလိူၼ်လပ်း',
+    '🌛' => 'ၼႃႈလိူၼ်ၽၢၵ်ႇၽၢႆႇၶႂႃ',
+    '🌜' => 'ၼႃႈလိူၼ်ၽၢၵ်ႇၽၢႆႇသၢႆႉ',
+    '🌡' => 'ၶိူင်ႈတႅၵ်ႈလူမ်းမႆႈ',
+    '☀' => 'လႅတ်ႇ',
+    '🌝' => 'ၼႃႈလိူၼ်မူၼ်း',
+    '🌞' => 'ၼႃႈလႅတ်ႇ',
+    '🪐' => 'ၵျူဝ်ႇဢၼ်မီးဝူင်း',
+    '⭐' => 'လၢဝ်',
+    '🌟' => 'လၢဝ်ႁိူဝ်ႈ',
+    '🌠' => 'လၢဝ်ယွတ်ႇ',
+    '🌌' => 'ၵလႅတ်ႇသီႇၵႂၼ်းလၢဝ်',
+    '☁' => 'မွၵ်ႇၵုမ်ႈ',
+    '⛅' => 'လႅတ်ႇၽၢႆႇလင်မွၵ်ႇၵုမ်ႈ',
+    '⛈' => 'မွၵ်ႇၵုမ်ႈဢၼ်မီးၾႃႉၽႃႇလႄႈၾူၼ်တူၵ်း',
+    '🌤' => 'လႅတ်ႇၽၢႆႇလင်မွၵ်ႇၵုမ်ႈဢွၼ်ႇ',
+    '🌥' => 'လႅတ်ႇၽၢႆႇလင်မွၵ်ႇၵုမ်ႈလူင်',
+    '🌦' => 'လႅတ်ႇၽၢႆႇလင်မွၵ်ႇၵုမ်ႈၽူၼ်',
+    '🌧' => 'မွၵ်ႇၵုမ်ႈဢၼ်မီးၾူၼ်',
+    '🌨' => 'မွၵ်ႇၵုမ်ႈဢၼ်မီးမူၺ်',
+    '🌩' => 'မွၵ်ႇၵုမ်ႈဢၼ်မီးသၢႆၾႃႉမႅပ်ႈ',
+    '🌪' => 'လူမ်းပၼ်ႇၵဝ်ႉ',
+    '🌫' => 'မွၵ်ႇဢိူမ်ႈ',
+    '🌬' => 'ႁၢင်ႈၼႃႈလူမ်းပဝ်ႇ',
+    '🌀' => 'လူမ်းလႅင်ႉလူင်',
+    '🌈' => 'ႁုင်းႁႆး',
+    '🌂' => 'ၸွင်ႈဢၼ်တုပ်ႇဝႆႉ',
+    '☂' => 'ၸွင်ႈ',
+    '☔' => 'ၽႃႈၵင်ႈၼမ်ႉၽူၼ်',
+    '⛱' => 'ၸွင်ႈၼိူဝ်လိၼ်',
+    '⚡' => 'ႁႅင်းၾႆးၾႃႉသုင်',
+    '❄' => 'ၽွင်မူၺ်',
+    '☃' => 'ၵူၼ်းမူၺ်',
+    '⛄' => 'ၵူၼ်းမူၺ်ဢမ်ႇမီးမူၺ်',
+    '☄' => 'လၢဝ်ပုင်ႈသၢဝ်ႈ',
+    '🔥' => 'ၽႆး',
+    '💧' => 'ယွတ်ႇၼမ်ႉ',
+    '🌊' => 'ႁွၼ်ၼမ်ႉ',
+    '🎃' => 'မၢၵ်ႇပၵ်ႉႁေႃးလူဝ်းဝိၼ်း',
+    '🎄' => 'တူၼ်ႈမႆႉၶရိတ်ႉသမၢတ်ႉ',
+    '🎆' => 'မွၵ်ႇၾႆး',
+    '🧨' => 'မူၵ်ႇတႅၵ်ႇ',
+    '✨' => 'ႁိူဝ်ႈလႅင်းဝိတ်းဝွတ်း',
+    '🎈' => 'ပွင်းလူမ်း',
+    '🎉' => 'မူၵ်ႇတႅၵ်ႇပႃႇတီႇ',
+    '🎊' => 'မူၵ်ႇတႅၵ်ႇပႃႇတီႇဢၼ်ပႃးၸေႈလၢႆလၢႆသီ',
+    '🎋' => 'တူၼ်ႈတၼႃႇပတ',
+    '🎍' => 'ႁၢင်ႈၶိူင်ႈတူၼ်ႈပႅၵ်ႇ',
+    '🎎' => 'ႁုၼ်ႇႁၢင်ႈၵျႃႇပၢၼ်ႇ',
+    '🎏' => 'တုင်းပႃ',
+    '🎐' => 'ႁိင်ႇလူမ်း',
+    '🎑' => 'ပွႆးတူၺ်းလိူၼ်မူၼ်း',
+    '🧧' => 'ထူင်လိၵ်ႈသီလႅင်',
+    '🎀' => 'သၢႆၽႄး',
+    '🎁' => 'ၶူဝ်းတွၼ်ႈဢၼ်ႁေႃႇဝႆႉ',
+    '🎗' => 'သၢႆၽႄးမၢႆတွင်း',
+    '🎟' => 'ဝႂ်ၶဝ်ႈပွႆး',
+    '🎫' => 'ဝႂ်',
+    '🎖' => 'ၶႅပ်းသူးသိုၵ်း',
+    '🏆' => 'သူးထႅၼ်ႈ',
+    '🏅' => 'သူးလဵၼ်ႈႁႅင်း',
+    '🥇' => 'သူးတီႈ 1',
+    '🥈' => 'သူးတီႈ 2',
+    '🥉' => 'သူးတီႈ 3',
+    '⚽' => 'မၢၵ်ႇၼင်',
+    '⚾' => 'မၢၵ်ႇၼင်ၽတ်ႉ',
+    '🥎' => 'မၢၵ်ႇၼင်ဢူၼ်ႈ',
+    '🏀' => 'မၢၵ်ႇၼင်သွင်း',
+    '🏐' => 'မၢၵ်ႇၼင်တူပ်း',
+    '🏈' => 'မၢၵ်ႇၼင်ဢမႄႇရိၵၢၼ်ႇ',
+    '🏉' => 'မၢၵ်ႇၼင်ရၢၵ်ႉပီႇ',
+    '🎾' => 'ထႅၼ်းၼိတ်ႉသ်',
+    '🥏' => 'ၶႅပ်းမိၼ်',
+    '🎳' => 'ပူဝ်းလိင်း',
+    '🏏' => 'ပၢင်လဵၼ်ႈၶရိၵ်ႉၶႅတ်ႉ',
+    '🏑' => 'ႁွၵ်ႇၵီႇ',
+    '🏒' => 'ႁွၵ်ႇၵီႇၼမ်ႉၶႅင်',
+    '🥍' => 'လႅၵ်ႉၶရွတ်ႉသ်',
+    '🏓' => 'ပိင်းပွင်ႇ',
+    '🏸' => 'ပႅတ်ႉမိၼ်ႇတၼ်ႇ',
+    '🥊' => 'မူင်မိုဝ်းပူၺ်း',
+    '🥋' => 'ၶူဝ်းၸဝ်ႈလၢႆး',
+    '🥅' => 'ယႅင်ႉၵူဝ်းလ်',
+    '⛳' => 'ၸွမ်ပိဝ်ၼႂ်းႁူး',
+    '⛸' => 'သၵဵၵ်ႉၼမ်ႉၶႅင်',
+    '🎣' => 'ၶွၼ်ႉမဵတ်းပႃ',
+    '🤿' => 'ၼႃႈၵၢပ်ႇလမ်ၼမ်ႉ',
+    '🎽' => 'သိူဝ်ႈလႅၼ်ႈ',
+    '🎿' => 'သၵီႇ',
+    '🛷' => 'လေႃႉမူၺ်',
+    '🥌' => 'လုၵ်ႈဢိင်ႈႁိၼ်',
+    '🎯' => 'ၵၢင်ပဝ်ႉ',
+    '🪀' => 'ယူဝ်ႇယူဝ်ႇ',
+    '🪁' => 'ၵႃဝၢဝ်ႇ',
+    '🔫' => 'ၵွင်ႈသိတ်းၼမ်ႉ',
+    '🎱' => 'ပိလိယႅတ်ႉ',
+    '🔮' => 'လုၵ်ႈၵႅဝ်ႈဝိသဵတ်ႇ',
+    '🪄' => 'ၶွၼ်ႉမေႃၽီ',
+    '🎮' => 'ဝီးတီးဢူဝ်းၵဵမ်း',
+    '🕹' => 'ၵျွႆးသတိၵ်ႉ',
+    '🎰' => 'ၸၢၵ်ႈသလွတ်ႉ',
+    '🎲' => 'မၢၵ်ႇတႅဝ်ႇ',
+    '🧩' => 'ၵျိၵ်ႉသေႃး',
+    '🧸' => 'မီတႅတ်ႉတီႇ',
+    '🪅' => 'ပိၼ်ႇယႃႇတႃႇ',
+    '🪩' => 'မၢၵ်ႇလုၵ်ႈၵႅဝ်ႈ',
+    '🪆' => 'တၢင်းလဵၼ်ႈ',
+    '♠' => 'ၽူးလမ်',
+    '♥' => 'ၽူးလႅင်',
+    '♦' => 'ၶဝ်ႈလၢမ်တတ်း',
+    '♣' => 'မွၵ်ႇၸိၵ်း',
+    '♟' => 'ၶျႅတ်ႉပွၼ်း',
+    '🃏' => 'ၽၢႆႉၵျူဝ်ႇၵႃႇ',
+    '🀄' => 'မႃၵႅဝ်ႉၼၵႃးလႅင်',
+    '🎴' => 'ၽၢႆႉမွၵ်ႇ',
+    '🎭' => 'ၵၢပ်ႇၼႃႈ',
+    '🖼' => 'ၶႅပ်းႁၢင်ႈဢၼ်သႂ်ႇၶွပ်ႇဝႆႉ',
+    '🎨' => 'ပၢၼ်ႉသီမေႃပၢၼ်းသီ',
+    '🧵' => 'လေႃႇမႆ',
+    '🪡' => 'ၶဵမ်ယဵပ်ႉၶူဝ်း',
+    '🧶' => 'ပူၼ်းမႆ',
+    '🪢' => 'ပူၼ်းၸိူၵ်ႈ',
+    '👓' => 'ၵႅဝ်ႈတႃ',
+    '🕶' => 'ၵႅဝ်ႈတႃလႅတ်ႇ',
+    '🥽' => 'ၵႅဝ်ႈတႃၵင်ႈလူမ်း',
+    '🥼' => 'သိူဝ်ႈၶူဝ်းႁွင်ႈၽႃႇထၢတ်ႈ',
+    '🦺' => 'သိူဝ်ႈၶူဝ်းႁူမ်ႇလူမ်ႈ',
+    '👔' => 'ၼႅၵ်ႇတၢႆး',
+    '👕' => 'သိူဝ်ႈယိုတ်း',
+    '👖' => 'ၵူၼ်ၵျိၼ်း',
+    '🧣' => 'ၽႃႈပၢႆႉၶေႃး',
+    '🧤' => 'မူင်မိုဝ်း',
+    '🧥' => 'သိူဝ်ႈသွၼ်ႉ',
+    '🧦' => 'မူင်တိၼ်',
+    '👗' => 'ၶူဝ်းတုၺ်ႇၼၢင်းယိင်း',
+    '👘' => 'ၵီႇမူဝ်ႇၼူဝ်ႇ',
+    '🥻' => 'သႃႇရီႇ',
+    '🩱' => 'ၶူဝ်းလုၺ်းၼမ်ႉၼိုင်ႈၽိုၼ်',
+    '🩲' => 'ၵူၼ်ပိတ်း',
+    '🩳' => 'ၵူၼ်ပွတ်း',
+    '👙' => 'ပိၵ်ႇၵီႇၼီႇ',
+    '👚' => 'ၶူဝ်းၼၢင်းယိင်း',
+    '🪭' => 'ဝီးတူပ်ႉ',
+    '👛' => 'ဢႅပ်ႇငိုၼ်း',
+    '👜' => 'ထူင်မိုဝ်း',
+    '👝' => 'ထူင်မိုဝ်းဢွၼ်ႇ',
+    '🛍' => 'ထူင်ၸၢႆႇၵၢတ်ႇ',
+    '🎒' => 'ထူင်ပိူဝ်ႉ',
+    '🩴' => 'ၶႅပ်းတိၼ်',
+    '👞' => 'သွၵ်းတိၼ်ၵူၼ်းၸၢႆး',
+    '👟' => 'သွၵ်းတိၼ်လႅၼ်ႈ',
+    '🥾' => 'သွၵ်းတိၼ်ၶိုၼ်ႈလွႆ',
+    '🥿' => 'သွၵ်းတိၼ်ၽႅပ်ႉ',
+    '👠' => 'သွၵ်းတိၼ်သူၼ်ႈသုင်',
+    '👡' => 'ၶႅပ်းတိၼ်ၼၢင်းယိင်း',
+    '🩰' => 'သွၵ်းတိၼ်ပႄးလေး',
+    '👢' => 'သွၵ်းတိၼ်တၢင်းယိင်း',
+    '🪮' => 'ဝီငႅမ်ႈ',
+    '👑' => 'ဝႅၼ်ႁူဝ်ၶမ်း',
+    '👒' => 'မၢၵ်ႇႁူဝ်ၼၢင်းယိင်း',
+    '🎩' => 'မၢၵ်ႇႁူဝ်သုင်',
+    '🎓' => 'မၢၵ်ႇႁူဝ်ဢွင်ႇပူၼ်ႉၸၼ်ႉ',
+    '🧢' => 'မၢၵ်ႇႁူဝ်လိၼ်ႉ',
+    '🪖' => 'မၢၵ်ႇႁူဝ်သိုၵ်း',
+    '⛑' => 'မၢၵ်ႇႁူဝ်ၵူၼ်းၽူတ်ႇၸွႆႈ',
+    '📿' => 'မၢၵ်ႇၼပ်ႉ',
+    '💄' => 'ၶူဝ်းယွမ်ႉသူပ်း',
+    '💍' => 'ၵၢင်းသႅင်',
+    '💎' => 'သႅင်',
+    '🔇' => 'ဢမ်ႇၸႂ်ႉသဵင်',
+    '🔈' => 'သပိၵ်ႇၵႃႇသဵင်တႅမ်ႇ',
+    '🔉' => 'သပိၵ်ႇၵႃႇသဵင်ၵၢင်',
+    '🔊' => 'သပိၵ်ႇၵႃႇသဵင်သုင်',
+    '📢' => 'ဢူတ်ႇဢူဝ်',
+    '📣' => 'မႅၵ်ႇၵႃႇၾူင်း',
+    '📯' => 'ႁွၼ်းသူင်ႇလိၵ်ႈ',
+    '🔔' => 'ႁိင်ႇ',
+    '🔕' => 'ဢမ်ႇမီးႁိင်ႇ',
+    '🎼' => 'ႁၢင်ႈမၢႆၽဵင်း',
+    '🎵' => 'ၼူတ်ႉၽဵင်း',
+    '🎙' => 'မႅၵ်ႉသတူႇတီႇယူဝ်ႇ',
+    '🎚' => 'ၶိူင်ႈထေႃၸၼ်ႉ',
+    '🎛' => 'ၼဵၼ်ၵုမ်းထိင်း',
+    '🎤' => 'မၢႆၶရူဝ်ႇၾူၼ်း',
+    '🎧' => 'ၶိူင်ႈထွမ်ႇႁူ',
+    '📻' => 'ရေႇတီႇယူဝ်ႇ',
+    '🎷' => 'သႅၵ်ႉသူဝ်ႇၾူၼ်း',
+    '🎺' => 'ပီႇလူမ်း',
+    '🪊' => 'ထရွမ်ႇပုၼ်ႇ',
+    '🪗' => 'ဢႅၵ်ႉၵူဝ်ႇတီႇယၼ်ႇ',
+    '🎸' => 'တိင်ႇ',
+    '🎹' => 'ၶီးပူတ်ႉၽဵင်း',
+    '🎻' => 'တြေႃး',
+    '🪕' => 'ပႅၼ်ႇၵျူဝ်ႇ',
+    '🥁' => 'ၵွင်',
+    '🪘' => 'ၵွင်ၵူၼ်ႈယၢဝ်း',
+    '🪇' => 'မႃႇရႃႇၶၢတ်ႉ',
+    '🪈' => 'ပီႇ',
+    '🪉' => 'ႁၢပ်း',
+    '📱' => 'ၾူၼ်းမိုဝ်းထိုဝ်',
+    '📲' => 'ၾူၼ်းမိုဝ်းထိုဝ် ဢၼ်ပႃးပိုၼ်ၵၢင်ႇ',
+    '☎' => 'တႄႇလီႇၾူၼ်း',
+    '📞' => 'ၶိူင်ႈႁပ်ႉၾူၼ်း',
+    '📟' => 'ပေႇၵျႃႇ',
+    '📠' => 'ၶိူင်ႈၾႅၵ်ႉသ်',
+    '🔋' => 'မၢၵ်ႇထၢတ်ႈ',
+    '🪫' => 'မၢၵ်ႇထၢတ်ႈႁႅင်းဢေႇ',
+    '🔌' => 'ပလၵ်ႉၾႆးၾႃႉ',
+    '💻' => 'လႅပ်ႉထွပ်ႉ',
+    '🖥' => 'ၶွမ်ႇပိဝ်ႇတႃႇၼိူဝ်ၽိူၼ်',
+    '🖨' => 'ၶိူင်ႈဢိတ်ႇလိၵ်ႈ',
+    '⌨' => 'ၶီးပူတ်ႉ',
+    '🖱' => 'ၼူၶွမ်း',
+    '🖲' => 'ထရႅၵ်ႉပေႃး',
+    '💽' => 'ၶႅပ်းၶွမ်း',
+    '💾' => 'ၶႅပ်းၾလွပ်ႇပီႇ',
+    '💿' => 'ၶႅပ်းသၢႆလႅင်း',
+    '📀' => 'တီႇဝီႇတီႇ',
+    '🧮' => 'ၽၢင်ၼပ်ႉ',
+    '🎥' => 'ၵွင်ႈထႆႇငဝ်းတူင်ႉ',
+    '🎞' => 'ၶွပ်ႇၾလိမ်ႇ',
+    '📽' => 'ၸၢၵ်ႈၼႄငဝ်းတူင်ႉ',
+    '🎬' => 'ပႅၼ်ႈၶလႅပ်ႉပႃႇ',
+    '📺' => 'ငဝ်းႁၢင်ႈသဵင်',
+    '📷' => 'ၵွင်ႈထႆႇ',
+    '📸' => 'ၵွင်ႈထႆႇဢၼ်ပိုတ်ႇၾလႅတ်ႉ',
+    '📹' => 'ၵွင်ႈထႆႇဝီႇတီႇယူဝ်ႇ',
+    '📼' => 'ၶႅပ်းဝီႇတီႇယူဝ်ႇ',
+    '🔍' => 'မၢၼ်ႇၽီလူး ဢၼ်ၵိူင်းၽၢႆႇသၢႆႉ',
+    '🔎' => 'မၢၼ်ႇၽီလူး ဢၼ်ၵိူင်းၽၢႆႇၶႂႃ',
+    '🕯' => 'တဵၼ်း',
+    '💡' => 'ဢွမ်ၾႆး',
+    '🔦' => 'ၾႆးထၢတ်ႈ',
+    '🏮' => 'ႁူင်းၽႆးလႅင်',
+    '🪔' => 'ၽႆးတီႇယႃႇ',
+    '📔' => 'ပပ်ႉမၢႆတွင်း ဢၼ်ႁၢင်ႈၶိူင်ႈၼႃႈသိူဝ်ႈဝႆႉ',
+    '📕' => 'ပပ်ႉဢၼ်ဢိုတ်းဝႆႉ',
+    '📖' => 'ပိုတ်ႇပပ်ႉ',
+    '📗' => 'ပပ်ႉၶဵဝ်',
+    '📘' => 'ပပ်ႉသွမ်ႇ',
+    '📙' => 'ပပ်ႉသီလိူင်မၢၵ်ႇဝၢၼ်',
+    '📚' => 'ပပ်ႉ',
+    '📓' => 'ပပ်ႉမၢႆတွင်း',
+    '📒' => 'ပပ်ႉလႄႇၵျႃႇ',
+    '📃' => 'ၼႃႈလိၵ်ႈဢၼ်ၵဵၼ်ငေႃး',
+    '📜' => 'ၵဵၼ်လိၵ်ႈ',
+    '📄' => 'ၽိုၼ်လိၵ်ႈ',
+    '📰' => 'လိၵ်ႈၽိုၼ်ၶၢဝ်ႇ',
+    '🗞' => 'ၵဵၼ်လိၵ်ႈၽိုၼ်ၶၢဝ်ႇ',
+    '📑' => 'ၽႅၼ်ႇမၢႆၶပ်ႉ',
+    '🔖' => 'တီႈၶၼ်ႈပပ်ႉ',
+    '🏷' => 'ပၢႆႉ',
+    '🪙' => 'မဵတ်ႉယွႆႈ',
+    '💰' => 'ထူင်ငိုၼ်း',
+    '🪎' => 'တိူၵ်ႈၵႅဝ်ႈသႅင်ငိုၼ်းၶမ်း',
+    '💴' => 'မႂ်ငိုၼ်းယႅၼ်း',
+    '💵' => 'မႂ်ငိုၼ်းတေႃႇလႃႇ',
+    '💶' => 'မႂ်ငိုၼ်းယူႇရူဝ်ႇ',
+    '💷' => 'မႂ်ငိုၼ်းပွၼ်း',
+    '💸' => 'ငိုၼ်းမီးပိၵ်ႇ',
+    '💳' => 'ၶႅပ်းၶရႅတ်ႉတိတ်ႉ',
+    '🧾' => 'မႂ်ႁပ်ႉငိုၼ်း',
+    '💹' => 'ငိုၼ်းယႅၼ်း ၶၼ်ၶိုၼ်ႈ',
+    '✉' => 'ထူင်လိၵ်ႈ',
+    '📧' => 'ဢီးမေးလ်',
+    '📨' => 'ထူင်လိၵ်ႈဢၼ်ၶဝ်ႈမႃး',
+    '📩' => 'ထူင်လိၵ်ႈပႃးပိုၼ်ၵၢင်ႇ',
+    '📤' => 'တိူၵ်ႈလိၵ်ႈဢွၵ်ႇ',
+    '📥' => 'တိူၵ်ႈလိၵ်ႈၶဝ်ႈ',
+    '📦' => 'ႁေႃႇ',
+    '📫' => 'တိူၵ်ႈလိၵ်ႈဢိုတ်းဢၼ်ၸွမ်ပိဝ်ပူၵ်းဝႆႉ',
+    '📪' => 'တိူၵ်ႈလိၵ်ႈဢိုတ်းဢၼ်ၸွမ်ပိဝ်ၼွၼ်းဝႆႉ',
+    '📬' => 'တိူၵ်ႈလိၵ်ႈပိုတ်ႇဢၼ်ၸွမ်ပိဝ်ပူၵ်းဝႆႉ',
+    '📭' => 'တိူၵ်ႈလိၵ်ႈပိုတ်ႇဢၼ်ၸွမ်ပိဝ်ၼွၼ်းဝႆႉ',
+    '📮' => 'တိူၵ်ႈသူင်ႇလိၵ်ႈ',
+    '🗳' => 'တိူၵ်ႈၶႅပ်းၵၢင်ၸႂ် ဢၼ်ပႃး ၶႅပ်းၵၢင်ၸႂ်',
+    '✏' => 'ၵမ်ၸိုၼ်း',
+    '✒' => 'ၵမ်ၸိုမ်းလမ်',
+    '🖋' => 'ၾွင်ႇတိၼ်ႇ',
+    '🖊' => 'ပေႃးပႅၼ်ႇ',
+    '🖌' => 'ယူႈယွမ်ႉသီ',
+    '🖍' => 'ၵမ်ၸိုၼ်းသီ',
+    '📝' => 'ၶေႃႈမၢႆတွင်း',
+    '💼' => 'ထူင်လုမ်း',
+    '📁' => 'ၾူဝ်ႇတႃႇၾၢႆႇ',
+    '📂' => 'ပိုတ်ႇၾူဝ်ႇတႃႇၾၢႆႇ',
+    '🗂' => 'ၶႅပ်းၶိူင်ႈၸႅၵ်ႇဢိၼ်းတႅၵ်ႉ',
+    '📅' => 'ပၵ်းယဵမ်ႈဝၼ်း',
+    '📆' => 'ပၵ်းယဵမ်ႈဝၼ်းသိၵ်ႇဢွၵ်ႇ',
+    '🗒' => 'ပပ်ႉမၢႆတွင်းပၼ်ႇႁွပ်ႈ',
+    '🗓' => 'ပၵ်းယဵမ်ႈဝၼ်းပၼ်ႇႁွပ်ႈ',
+    '📇' => 'ဢိၼ်းတႅၵ်ႉၶႅပ်း',
+    '📈' => 'လွၵ်းႁၢင်ႈၵူင်ႇၶိုၼ်ႈ',
+    '📉' => 'လွၵ်းႁၢင်ႈၵူင်ႇလူင်း',
+    '📊' => 'လွၵ်းႁၢင်ႈထႅဝ်',
+    '📋' => 'ၶလိပ်ႉပူတ်ႉ',
+    '📌' => 'ၶဵမ်ၼဵပ်း',
+    '📍' => 'ၶဵမ်ၼဵပ်းမူၼ်း',
+    '📎' => 'ၶလိပ်ႉၸေႈ',
+    '🖇' => 'ၶလိပ်ႉၸေႈဢၼ်ၵွင်ႉၵၼ်ဝႆႉ',
+    '📏' => 'ၶႅပ်းထတ်းၽဵင်ႇ',
+    '📐' => 'ၶႅပ်းထတ်းသၢမ်ၸဵင်ႇ',
+    '✂' => 'ၵိမ်းႁႆး',
+    '🗃' => 'တိူၵ်ႈသႂ်ႇၾၢႆႇ',
+    '🗄' => 'ၶွင်ႈထွတ်ႇၾၢႆႇ',
+    '🗑' => 'သွင်းယုၵ်းယၵ်း',
+    '🔒' => 'ၶတ်းသေႃးဝႆႉ',
+    '🔓' => 'ပိုတ်ႇသေႃးဝႆႉ',
+    '🔏' => 'ၶတ်းသေႃးဝႆႉတင်းၵမ်ၸိုမ်း',
+    '🔐' => 'ၶတ်းသေႃးဝႆႉတင်းၵၢၵ်ႇသေႃး',
+    '🔑' => 'ၵၢၵ်ႇသေႃး',
+    '🗝' => 'ၵၢၵ်ႇသေႃးမိူဝ်ႈၵွၼ်ႇ',
+    '🔨' => 'ၶွၼ်ႉၸွၵ်း',
+    '🪓' => 'တႃမၢတ်ႇ',
+    '⛏' => 'ၶေႃ',
+    '⚒' => 'ၶွၼ်ႉၸွၵ်း လႄႈ ၶေႃ',
+    '🛠' => 'ၶွၼ်ႉၸွၵ်း လႄႈ ငႅမ်ႈလဵၵ်း',
+    '🗡' => 'လႅဝ်း',
+    '⚔' => 'လႅဝ်းၶႂႆႇၶႃပေ',
+    '💣' => 'မၢၵ်ႇပွမ်း',
+    '🪃' => 'ပူမ်ႇမႃႇရၢၼ်ႇ',
+    '🏹' => 'ပိုၼ်လႄႈၵၢင်ႇ',
+    '🛡' => 'ၵၢပ်ႇႁႄႉ',
+    '🪚' => 'လဵၵ်းလိူဝ်ႈ',
+    '🔧' => 'ၵိမ်းႁူဝ်ၵဝ်ႉ',
+    '🪛' => 'ၶိူင်ႈလိမ်ႇသႆႈမူ',
+    '🔩' => 'ၼတ်ႉ လႄႈ ႁူဝ်ၼတ်ႉ',
+    '⚙' => 'ၵီႇယႃႇ',
+    '🗜' => 'ၶိူင်ႈမိပ်ႇႁတ်ႉ',
+    '⚖' => 'ယႃႇၸူႇ',
+    '🦯' => 'ၶွၼ်ႉတဝ်ႉၶၢဝ်',
+    '🔗' => 'ၵဵဝ်ႇၵွင်ႉ',
+    '⛓' => 'ၸိူၵ်ႈလဵၵ်း',
+    '🪝' => 'မဵတ်း',
+    '🧰' => 'တိူၵ်ႈၶိူင်ႈမိုဝ်း',
+    '🧲' => 'မႄႈလဵၵ်း',
+    '🪜' => 'ၶူဝ်လႆ',
+    '🪏' => 'သူၵ်ႇ',
+    '⚗' => 'ဢွမ်ဢဝ်ၵႂၼ်းႁိူဝ်ႇ',
+    '🧪' => 'လွတ်ႇၵူတ်ႇထတ်း',
+    '🧫' => 'ၵွၵ်းၵႅဝ်ႈဢွၼ်ႇ ဢၼ်ၸႂ်ႉၼႂ်း ႁွင်ႈၽႃႇထၢတ်ႈ',
+    '🧬' => 'တီႇဢႅၼ်ႇဢေႇ',
+    '🔬' => 'ၵႅဝ်ႈတူၺ်းဢၼ်လဵၵ်ႉ',
+    '🔭' => 'ၵႅဝ်ႈတူၺ်းၵႆ',
+    '📡' => 'ဢႅၼ်ႇတၼႃႇလႅင်ၾႃႉ',
+    '💉' => 'မူၵ်ႇသမ်းၶဵမ်',
+    '🩸' => 'ယွတ်ႇလိူတ်ႈ',
+    '💊' => 'မဵတ်ႉယႃႈယႃ',
+    '🩹' => 'ပလၢတ်ႇသတႃႇႁွႆးၸဵပ်း',
+    '🩼' => 'မႆႉတဝ်ႉၵိင်ႇႁႄႉ',
+    '🩺' => 'ၶိူင်ႈထွမ်ႇၵူတ်ႇ',
+    '🩻' => 'ဢဵၵ်ႉသ်ရေး',
+    '🚪' => 'ၽၵ်းတူ',
+    '🛗' => 'လိပ်ႉၾ်',
+    '🪞' => 'မၢၼ်ႇၸမ်ႈ',
+    '🪟' => 'ႁူးလႅင်း',
+    '🛏' => 'တီႈၼွၼ်း',
+    '🛋' => 'သူဝ်ႇၾႃႇလႄႈငွႆးၾႆး',
+    '🪑' => 'တင်ႇ',
+    '🚽' => 'ထၢင်',
+    '🪠' => 'ၶိူင်ႈလၢင်းလွတ်ႇၼမ်ႉ',
+    '🚿' => 'ဢၢပ်ႇၼမ်ႉ',
+    '🛁' => 'ဢၢင်ႇဢၢပ်ႇၼမ်ႉ',
+    '🪤' => 'ႁႅဝ်ႉၼူ',
+    '🪒' => 'မိတ်ႈထႃၶူၼ်',
+    '🧴' => 'တဝ်ႈလူဝ်းသျိၼ်း',
+    '🧷' => 'ၶဵမ်ၶေႃ',
+    '🧹' => 'ယူး',
+    '🧺' => 'ပဵတ်ႈ',
+    '🧻' => 'ၸေႈႁွင်ႈၼမ်ႉ',
+    '🪣' => 'ပုင်း',
+    '🧼' => 'ၵွၼ်ႈသီ',
+    '🫧' => 'ပုၼ်းပူၵ်ႇ',
+    '🪥' => 'ယူႈသီၶဵဝ်ႈ',
+    '🧽' => 'ၽေႃႉၼမ်ႉ',
+    '🧯' => 'ၶိူင်ႈမွတ်ႇၽႆး',
+    '🛒' => 'လေႃႉသိုဝ်ႉၶူဝ်း',
+    '🚬' => 'လႅၼ်းယႃႈ',
+    '⚰' => 'ၵွမ်ႇ',
+    '🪦' => 'ၶႅပ်းႁိၼ်မၢႆတွင်း',
+    '⚱' => 'ဢုမ်ၽဝ်ႇၵူၼ်းတၢႆ',
+    '🧿' => 'တႃႁၢႆႉ',
+    '🪬' => 'မိုဝ်းႁၢမ်းသႃႇ',
+    '🗿' => 'ႁုၼ်ႇႁၢင်ႈမူဝ်းဢၢႆ',
+    '🪪' => 'ဝႂ်ၵပ်းတူဝ်',
+    '🏧' => 'ဢေႇထီႇဢႅမ်ႇ',
+    '🚮' => 'ပၢႆႉတႃႇပႅတ်ႈယုၵ်းယၵ်း',
+    '🚰' => 'ၼမ်ႉၵိၼ်',
+    '♿' => 'တင်ႇၼင်ႈမၢၵ်ႇလေႃႉ',
+    '🚹' => 'ႁွင်ႈၼမ်ႉၸၢႆး',
+    '🚺' => 'ႁွင်ႈၼမ်ႉယိင်း',
+    '🚻' => 'ႁွင်ႈဢၢပ်ႇၼမ်ႉ',
+    '🚼' => 'ပၢႆႉလုၵ်ႈဢွၼ်ႇ',
+    '🚾' => 'ပၢႆးႁွင်ႈၼမ်ႉ',
+    '🛂' => 'ၵုမ်းၵမ်ဝႂ်ၶၢမ်ႈမိူင်း',
+    '🛃' => 'ထၢၼ်ၶွၼ်ႇ',
+    '🛄' => 'တႃႇလိူၵ်ႈထူင်ၶူဝ်း',
+    '🛅' => 'တႃႇဢၢပ်ႈထူင်ၶူဝ်း',
+    '⚠' => 'ပၼ်ၽၢင်ႉ',
+    '🚸' => 'တီႈလုၵ်ႈဢွၼ်ႇၶၢမ်ႈတၢင်း',
+    '⛔' => 'ႁၢမ်ႈၶဝ်ႈ',
+    '🚫' => 'ႁၢမ်ႈ',
+    '🚳' => 'ႁၢမ်ႈလႅင်',
+    '🚭' => 'ယႃႇလုတ်ႇလႅၼ်းယႃႈ',
+    '🚯' => 'ယႃႇပႅတ်ႈယုၵ်းယၵ်း',
+    '🚱' => 'ဢမ်ႇၸႂ်ႈၼမ်ႉၵိၼ်',
+    '🚷' => 'ယႃႇလတ်းၶၢမ်ႈ',
+    '📵' => 'ယႃႇၸႂ်ႉၾူၼ်းမိုဝ်းထိုဝ်',
+    '🔞' => 'ႁၢမ်ႈဢႃႇယုသိပ်းပႅတ်ႇလူင်းတႂ်ႈ',
+    '☢' => 'ထၢတ်ႈသၢႆလႅင်း',
+    '☣' => 'ၽေးသၢႆၸႂ်',
+    '⬆' => 'ပိုၼ်ၸီႉၶိုၼ်ႈ',
+    '↗' => 'ပိုၼ်ၸီႉၽၢႆႇၶႂႃၼိူဝ်',
+    '➡' => 'ပိုၼ်ၸီႉၶႂႃ',
+    '↘' => 'ပိုၼ်ၸီႉၽၢႆႇၶႂႃတႂ်ႈ',
+    '⬇' => 'ပိုၼ်ၸီႉလူင်း',
+    '↙' => 'ပိုၼ်ၸီႉၽၢႆႇသၢႆႉတႂ်ႈ',
+    '⬅' => 'ပိုၼ်ၸီႉသၢႆႉ',
+    '↖' => 'ပိုၼ်ၸီႉၽၢႆႇသၢႆႉၼိူဝ်',
+    '↕' => 'ပိုၼ်ၸီႉၶိုၼ်ႈ-လူင်း',
+    '↔' => 'ပိုၼ်ၸီႉသၢႆႉ-ၶႂႃ',
+    '↩' => 'ပိုၼ်ၶႂႃၵူင်ႇသၢႆႉ',
+    '↪' => 'ပိုၼ်သၢႆၵူင်ႇၶႂႃ',
+    '⤴' => 'ပိုၼ်ၶႂႃၵူင်ႇၶိုၼ်ႈ',
+    '⤵' => 'ပိုၼ်ၶႂႃၵူင်ႇလူင်း',
+    '🔃' => 'ပိုၼ်ႁွပ်ႈဢၼ်တင်ႈ',
+    '🔄' => 'ၼဵၼ်ပိုၼ်ပၼ်ႇပိၼ်ႈၽိူၼ်',
+    '🔙' => 'ပိုၼ်ၽၢႆႇလင်',
+    '🔚' => 'ပိုၼ်သုတ်း',
+    '🔛' => 'ပိုတ်ႇ',
+    '🔜' => 'တူဝ်မၢႆ ဢမ်ႇႁိုင်ဢမ်ႇၼၢၼ်း',
+    '🔝' => 'တူဝ်မၢႆၸိၵ်းၸွမ်',
+    '🛐' => 'တီႈတိူင်ႇၵၢဝ်ႇ',
+    '⚛' => 'တူဝ်မၢႆဢႅတ်ႇတမ်ႇ',
+    '🕉' => 'ဢုံ',
+    '✡' => 'လၢဝ်တေးဝိတ်ႉ',
+    '☸' => 'ထမ်ႇမၸၵ်ႇ',
+    '☯' => 'ယိင်းယၢင်း',
+    '✝' => 'မႆႉၶႂႆႇၶႃပေလတိၼ်ႇ',
+    '☦' => 'မႆႉၶႂႆႇၶႃပေဢူဝ်းတူဝ်​တွၵ်ႉသ်',
+    '☪' => 'လၢဝ်လႄႈလိူၼ်ၽၢၵ်ႇ',
+    '☮' => 'တူဝ်မၢႆငမ်းယဵၼ်',
+    '🕎' => 'မႅၼ်ႇၼူဝ်ႇရႃႇ',
+    '🔯' => 'လၢဝ်ႁူၵ်းၸဵင်ႇ ဢၼ်မီးတုမ်ႇ',
+    '🪯' => 'ၶၢၼ်းတႃႇ',
+    '♈' => 'မေသျ',
+    '♉' => 'ဝရိသꧤ',
+    '♊' => 'မိထုၼ',
+    '♋' => 'ၵရၵႃ',
+    '♌' => 'သိင်ႁ',
+    '♍' => 'ၵၼ်ယႃ',
+    '♎' => 'တုလႃ',
+    '♏' => 'ဝရိသ်ၸိၵ',
+    '♐' => 'ꩪၼုသျ',
+    '♑' => 'မၵႃရ',
+    '♒' => 'ၵုမ်ꧤ',
+    '♓' => 'မီၼ',
+    '⛎' => 'ၸုမ်းလၢဝ်ၵူၼ်းယိပ်းငူး',
+    '🔀' => 'ၼဵၼ်ၽဵင်းၶဝ်းၶူၼ်း',
+    '🔁' => 'ၼဵၼ်လဵၼ်ႈၶိုၼ်း',
+    '🔂' => 'ၼဵၼ်လဵၼ်ႈၶိုၼ်းႁူဝ်လဵဝ်',
+    '▶' => 'ၼဵၼ်လဵၼ်ႈ',
+    '⏩' => 'ၼဵၼ်ၶိုၼ်ႈၼႃႈဝႆး',
+    '⏭' => 'ၼဵၼ်ၽဵင်းၵႂၢမ်းထႅင်ႈႁူဝ်ၼိုင်ႈ',
+    '⏯' => 'ၼဵၼလဵၼ်ႁိုဝ်ယင်ႉ',
+    '◀' => 'ၼဵၼ်ႁူၼ်',
+    '⏪' => 'ၼဵၼ်ႁူၼ်ဝႆး',
+    '⏮' => 'ၼဵၼ်ၽဵင်းၵႂၢမ်းလိုၼ်းသုတ်း',
+    '🔼' => 'ၼဵၼ်ၶိုၼ်ႈၼိူဝ်',
+    '⏫' => 'ၼဵၼ်ၶိုၼ်ႈဝႆး',
+    '🔽' => 'ၼဵၼ်လူင်းတႂ်ႈ',
+    '⏬' => 'ၼဵၼ်လူင်းဝႆး',
+    '⏸' => 'ၼဵၼ်ယင်ႉ',
+    '⏹' => 'ၼဵၼ်ၵိုတ်း',
+    '⏺' => 'ၼဵၼ်ဢတ်း',
+    '⏏' => 'ၼဵၼ်ထွၼ်ဢွၵ်ႇ',
+    '🎦' => 'ငဝ်းတူင်ႉ',
+    '🔅' => 'ၼဵၼ်လပ်းသိင်ႇ',
+    '🔆' => 'ၼဵၼ်ႁိူဝ်ႈ',
+    '📶' => 'ႁၢဝ်းဢႅၼ်ႇတၼႃႇ',
+    '🛜' => 'ႁၢမ်းသၢႆ',
+    '📳' => 'လၢႆးသၼ်ႇဝႆ',
+    '📴' => 'ဢိုတ်းၾူၼ်းမိုဝ်းထိုဝ်',
+    '♀' => 'မိၵ်ႈမၢႆၼၢင်းယိင်း',
+    '♂' => 'မိၵ်ႈမၢႆၸၢႆး',
+    '⚧' => 'တူဝ်မၢႆၵူၼ်းလႅၵ်ႈလၢႆႈၽဵတ်ႈ',
+    '✖' => 'ၵုၼ်း',
+    '➕' => 'လေႃး',
+    '➖' => 'ထွၼ်',
+    '➗' => 'ၸႅၵ်ႇ',
+    '🟰' => 'မၢႆၽဵင်ႇဢၼ်ၼႅၼ်ႈၼႃ',
+    '♾' => 'မိုၼ်ႇမုင်ႈ',
+    '‼' => 'မၢႆတိုၼ်ႇသွင်တူဝ်',
+    '⁉' => 'မၢႆတိုၼ်ႇထၢမ်',
+    '❓' => 'မၢႆထၢမ်သီလႅင်',
+    '❔' => 'မၢႆထၢမ်သီၶၢဝ်',
+    '❕' => 'မၢႆတိုၼ်ႇသီၶၢဝ်',
+    '❗' => 'မၢႆတိုၼ်ႇသီလႅင်',
+    '〰' => 'သဵၼ်ႈႁွၼ်',
+    '💱' => 'ၵၢၼ်လႅၵ်ႈငိုၼ်း',
+    '💲' => 'မဵတ်ႇမၢႆတေႃႇလႃႇၼႅၼ်ႈၼႃ',
+    '⚕' => 'မိၵ်ႈမၢႆပၢႆးယႃႈယႃ',
+    '♻' => 'မိၵ်ႈမၢႆၸႂ်ႉၶိုၼ်း',
+    '⚜' => 'ႁၢင်ႈမွၵ်ႇမူၺ်',
+    '🔱' => 'ႁွၵ်ႇသၢမ်ငႅမ်ႈ',
+    '📛' => 'ပၢႆႉၸိုဝ်ႈ',
+    '🔰' => 'မဵတ်ႇမၢႆၵျႃႇပၢၼ်ႇ တွၼ်ႈတႃႇၽူႈတႄႇတင်ႈ',
+    '⭕' => 'ဝူင်းၵူင်သီလႅင်',
+    '✅' => 'ၼဵၼ်ထတ်းမၢႆ',
+    '☑' => 'လွၵ်းထတ်းမၢႆ ဢၼ်မၢႆဝႆႉ',
+    '✔' => 'မၢႆထတ်း',
+    '❌' => 'မၢႆၶႂႆႇၶႃပေ',
+    '❎' => 'ၼဵၼ်မၢႆၶႂႆၶႃပေ',
+    '➰' => 'တူင်ႇငေႃး',
+    '➿' => 'သွင်တူင်ႇငေႃး',
+    '〽' => 'မၢႆလႅၵ်ႈလၢႆႈဝႆႉၶူဝ်းၶွင်',
+    '✳' => 'မၢႆလၢဝ်ပႅတ်ႇသိၵ်ႈ',
+    '✴' => 'လၢဝ်ပႅတ်ႇၸဵင်ႇ',
+    '❇' => 'သီႁိူဝ်ႈလႅင်း',
+    '™' => 'မိၵ်ႈမၢႆၵႃႉၶၢႆ',
+    '🫟' => 'ၽူင်ႉဢိူၵ်ႇ',
+    '🔠' => 'သႂ်ႇတူဝ်လိၵ်ႈလတိၼ်ႇယႂ်ႇ',
+    '🔡' => 'သႂ်ႇတူဝ်လိၵ်ႈလတိၼ်ႇလဵၵ်ႉ',
+    '🔢' => 'သႂ်ႇတူဝ်ၼပ်ႉ',
+    '🔣' => 'သႂ်ႇတူဝ်မၢႆ',
+    '🔤' => 'သႂ်ႇတူဝ်လိၵ်ႈလတိၼ်ႇ',
+    '🅰' => 'ၼဵၼ်ဢေႇ (မဵဝ်းလိူတ်ႈ)',
+    '🆎' => 'ၼဵၼ်ဢေႇပီႇ (မဵဝ်းလိူတ်ႈ)',
+    '🅱' => 'ၼဵၼ်ပီႇ (မဵဝ်းလိူတ်ႈ)',
+    '🆑' => 'ၼဵၼ်ၽဵဝ်ႈလၢင်ႉယဝ်ႉ',
+    '🆒' => 'ၼဵၼ်ယဵၼ်',
+    '🆓' => 'ၼဵၼ်ၾရီး',
+    'ℹ' => 'ၶေႃႈမုၼ်းလွၼ်ႉ',
+    '🆔' => 'ၼဵၼ်လၵ်းထၢၼ်တူဝ်',
+    'Ⓜ' => 'တူဝ်ဢႅမ်ႇၼႂ်းဝူင်း',
+    '🆕' => 'ၼဵၼ်မႂ်ႇ',
+    '🆖' => 'ၼဵၼ်ဢႅၼ်ႇၵျီႇ',
+    '🅾' => 'ၼဵၼ်ဢူဝ်ႇ (မဵဝ်းလိူတ်ႈ)',
+    '🆗' => 'ၼဵၼ်ဢူဝ်ႇၶေႇ',
+    '🅿' => 'ၼဵၼ်တီႈၵိုတ်းလူတ်ႉၵႃး',
+    '🆘' => 'ၼဵၼ်ၸွႆႈထႅမ်',
+    '🆙' => 'ၼဵၼ်ၽၢႆႇၼိူဝ်',
+    '🆚' => 'ၼဵၼ်တေႃႇသူႈတင်း',
+    '🈁' => 'ၼဵၼ် “တီႈၼႆႈ” ၵျႃႇပၢၼ်ႇ',
+    '🈂' => 'ၼဵၼ် “ၵႃႈၸႂ်ႉၸၢႆႇ” ၵျႃႇပၢၼ်ႇ',
+    '🈷' => 'ၼဵၼ် “ငိုၼ်းႁူဝ်လိူၼ်” ၵျႃႇပၢၼ်ႇ‘',
+    '🈶' => 'ၼဵၼ် “ဢမ်ႇၸႂ်ႈဢၼ်လႆႈလၢႆ” ၵျႃႇပၢၼ်ႇ',
+    '🈯' => 'ၼဵၼ် "သင်ႇဝႆႉယဝ်ႉ" ၵျႃႇပၢၼ်ႇ',
+    '🉐' => 'ၼဵၼ် “ၵႃႈၶၼ်ထုၵ်ႇ” ၵျႃႇပၢၼ်ႇ',
+    '🈹' => 'ၼဵၼ် “လူတ်းယွမ်း” ၵျႃႇပၢၼ်ႇ',
+    '🈚' => 'ၼဵၼ် “ဢမ်ႇလႆႈပၼ်ၸႂ်ႉၸၢႆႇ” ၵျႃႇပၢၼ်ႇ',
+    '🈲' => 'ၼဵၼ် “ႁၢမ်ႈ” ၵျႃႇပၢၼ်ႇ',
+    '🉑' => 'ၼဵၼ် “ဢၼ်ႁပ်ႉလႆႈ” ၵျႃႇပၢၼ်ႇ',
+    '🈸' => 'ၼဵၼ် “လူင်းသဵၼ်ႈမၢႆ” ၵျႃႇပၢၼ်ႇ',
+    '🈴' => 'ၼဵၼ် “ပူၼ်ႉၸၼ်ႉ” ၵျႃႇပၢၼ်ႇ',
+    '🈳' => 'ၼဵၼ် “တီႈပဝ်ႇ” ၵျႃႇပၢၼ်ႇ',
+    '㊗' => 'ၼဵၼ် “ယိၼ်းၸူမ်းၸွမ်း” ၵျႃႇပၢၼ်ႇ',
+    '㊙' => 'ၼဵၼ် “လပ်ႉ” ၵျႃႇပၢၼ်ႇ',
+    '🈺' => 'ၼဵၼ် “ပိုတ်ႇတႃႇၵၢၼ်ပၢႆးမၢၵ်ႈမီး” ၵျႃႇပၢၼ်ႇ',
+    '🈵' => 'ၼဵၼ် “ဢမ်ႇမီးတီႈပဝ်ႇ” ၵျႃႇပၢၼ်ႇ',
+    '🔴' => 'တူင်ႇမူၼ်းသီလႅင်',
+    '🟠' => 'တူၼ်ႇမူၼ်းသီလိူင်မၢၵ်ႇဝၢၼ်',
+    '🟡' => 'တူင်ႇမူၼ်းသီလိူင်',
+    '🟢' => 'တူင်ႇမူၼ်းသီၶဵဝ်',
+    '🔵' => 'တူင်ႇမူၼ်းသီသွမ်ႇ',
+    '🟣' => 'တူင်ႇမူၼ်းသီၵမ်ႇမၢၵ်ႇၶိူဝ်',
+    '🟤' => 'တူင်ႇမူၼ်းသီႇၵမ်ႇ',
+    '⚫' => 'တူင်ႇမူၼ်းသီလမ်',
+    '⚪' => 'တူင်ႇမူၼ်းသီၶၢဝ်',
+    '🟥' => 'လွၵ်းသီႇၸဵင်ႇသီလႅင်',
+    '🟧' => 'လွၵ်းသီႇၸဵင်ႇသီလိူင်မၢၵ်ႇဝၢၼ်',
+    '🟨' => 'လွၵ်းသီႇၸဵင်ႇသီလိူင်',
+    '🟩' => 'လွၵ်းသီႇၸဵင်ႇသီၶဵဝ်',
+    '🟦' => 'လွၵ်းသီႇၸဵင်ႇသီသွမ်ႇ',
+    '🟪' => 'လွၵ်းသီႇၸဵင်ႇသီၵမ်ႇမၢၵ်ႇၶိူဝ်',
+    '🟫' => 'လွၵ်းသီႇၸဵင်ႇသီၵမ်ႇ',
+    '⬛' => 'လွၵ်းသီႇၸဵင်ႇယႂ်ႇသီလမ်',
+    '⬜' => 'လွၵ်းသီႇၸဵင်ႇယႂ်ႇသီၶၢဝ်',
+    '◼' => 'လွၵ်းသီႇၸဵင်ႇပၢၼ်ၵၢင်သီလမ်',
+    '◻' => 'လွၵ်းသီႇၸဵင်ႇပၢၼ်ၵၢင်သီၶၢဝ်',
+    '◾' => 'လွၵ်းသီႇၸဵင်ႇပၢၼ်ၵၢင်လဵၵ်ႉသီလမ်',
+    '◽' => 'လွၵ်းသီႇၸဵင်ႇပၢၼ်ၵၢင်လဵၵ်ႉသီၶၢဝ်',
+    '▪' => 'လွၵ်းသီႇၸဵင်ႇလဵၵ်ႉသီလမ်',
+    '▫' => 'လွၵ်းသီႇၸဵင်ႇလဵၵ်ႉသီၶၢဝ်',
+    '🔶' => 'သႅင်သီလိူင်မၢၵ်ႇဝၢၼ်ယႂ်ႇ',
+    '🔷' => 'သႅင်သီသွမ်ႇယႂ်ႇ',
+    '🔸' => 'သႅင်သီလိူင်မၢၵ်ႇဝၢၼ်လဵၵ်ႉ',
+    '🔹' => 'သႅင်သီသွမ်ႇလဵၵ်ႉ',
+    '🔺' => 'သၢမ်ၸဵင်ႇသီလႅင် ၸီႉၶိုၼ်ႈ',
+    '🔻' => 'သၢမ်ၸဵင်ႇသီလႅင် ၸီႉလူင်း',
+    '💠' => 'သႅင်ဢၼ်မီးတုမ်ႇ',
+    '🔘' => 'ၼဵၼ်ရေႇတီႇယူဝ်ႇ',
+    '🔳' => 'ၼဵၼ်လွၵ်းသီႇၸဵင်ႇသီၶၢဝ်',
+    '🔲' => 'ၼဵၼ်လွၵ်းသီႇၸဵင်ႇသီလမ်',
+    '🏁' => 'ၸွမ်ပိဝ်လၢႆးလွၵ်း',
+    '🚩' => 'ၸွမ်ပိဝ်သၢမ်ၸဵင်ႇ',
+    '🎌' => 'ၸွမ်ပိဝ်ၶႂႆႇၶႃပေ',
+    '🏴' => 'ၸွမ်ပိဝ်လမ်',
+    '🏳' => 'ၸွမ်ပိဝ်ၶၢဝ်',
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-si.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-si.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-si.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-si.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'හාදුව: කාන්තාව, කාන්තාව, සමෙහි වර්ගය-6, සහ සමෙහි වර්ගය-4',
     '👩🏿‍❤‍💋‍👩🏾' => 'හාදුව: කාන්තාව, කාන්තාව, සමෙහි වර්ගය-6, සහ සමෙහි වර්ගය-5',
     '👩🏿‍❤‍💋‍👩🏿' => 'හාදුව: කාන්තාව, කාන්තාව, සහ සමෙහි වර්ගය-6',
+    '🧑🏻‍🫯‍🧑🏼' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-3',
+    '🧑🏻‍🫯‍🧑🏽' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-4',
+    '🧑🏻‍🫯‍🧑🏾' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-5',
+    '🧑🏻‍🫯‍🧑🏿' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-6',
+    '🧑🏼‍🫯‍🧑🏻' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-1-2',
+    '🧑🏼‍🫯‍🧑🏽' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-4',
+    '🧑🏼‍🫯‍🧑🏾' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-5',
+    '🧑🏼‍🫯‍🧑🏿' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-6',
+    '🧑🏽‍🫯‍🧑🏻' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-1-2',
+    '🧑🏽‍🫯‍🧑🏼' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-3',
+    '🧑🏽‍🫯‍🧑🏾' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-5',
+    '🧑🏽‍🫯‍🧑🏿' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-6',
+    '🧑🏾‍🫯‍🧑🏻' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-1-2',
+    '🧑🏾‍🫯‍🧑🏼' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-3',
+    '🧑🏾‍🫯‍🧑🏽' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-4',
+    '🧑🏾‍🫯‍🧑🏿' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-6',
+    '🧑🏿‍🫯‍🧑🏻' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-1-2',
+    '🧑🏿‍🫯‍🧑🏼' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-3',
+    '🧑🏿‍🫯‍🧑🏽' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-4',
+    '🧑🏿‍🫯‍🧑🏾' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-5',
     '🧑🏻‍❤‍🧑🏼' => 'හදවතක් සමගින් යුවල: වැඩිහිටියා, වැඩිහිටියා, සමෙහි වර්ගය-1-2, සහ සමෙහි වර්ගය-3',
     '🧑🏻‍❤‍🧑🏽' => 'හදවතක් සමගින් යුවල: වැඩිහිටියා, වැඩිහිටියා, සමෙහි වර්ගය-1-2, සහ සමෙහි වර්ගය-4',
     '🧑🏻‍❤‍🧑🏾' => 'හදවතක් සමගින් යුවල: වැඩිහිටියා, වැඩිහිටියා, සමෙහි වර්ගය-1-2, සහ සමෙහි වර්ගය-5',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'හදවතක් සමගින් යුවල: වැඩිහිටියා, වැඩිහිටියා, සමෙහි වර්ගය-6, සහ සමෙහි වර්ගය-3',
     '🧑🏿‍❤‍🧑🏽' => 'හදවතක් සමගින් යුවල: වැඩිහිටියා, වැඩිහිටියා, සමෙහි වර්ගය-6, සහ සමෙහි වර්ගය-4',
     '🧑🏿‍❤‍🧑🏾' => 'හදවතක් සමගින් යුවල: වැඩිහිටියා, වැඩිහිටියා, සමෙහි වර්ගය-6, සහ සමෙහි වර්ගය-5',
+    '🧑🏻‍🐰‍🧑🏼' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-3',
+    '🧑🏻‍🐰‍🧑🏽' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-4',
+    '🧑🏻‍🐰‍🧑🏾' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-5',
+    '🧑🏻‍🐰‍🧑🏿' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-6',
+    '🧑🏼‍🐰‍🧑🏻' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-1-2',
+    '🧑🏼‍🐰‍🧑🏽' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-4',
+    '🧑🏼‍🐰‍🧑🏾' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-5',
+    '🧑🏼‍🐰‍🧑🏿' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-6',
+    '🧑🏽‍🐰‍🧑🏻' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-1-2',
+    '🧑🏽‍🐰‍🧑🏼' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-3',
+    '🧑🏽‍🐰‍🧑🏾' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-5',
+    '🧑🏽‍🐰‍🧑🏿' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-6',
+    '🧑🏾‍🐰‍🧑🏻' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-1-2',
+    '🧑🏾‍🐰‍🧑🏼' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-3',
+    '🧑🏾‍🐰‍🧑🏽' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-4',
+    '🧑🏾‍🐰‍🧑🏿' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-6',
+    '🧑🏿‍🐰‍🧑🏻' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-1-2',
+    '🧑🏿‍🐰‍🧑🏼' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-3',
+    '🧑🏿‍🐰‍🧑🏽' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-4',
+    '🧑🏿‍🐰‍🧑🏾' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-5',
+    '👨🏻‍🫯‍👨🏼' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-3',
+    '👨🏻‍🫯‍👨🏽' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-4',
+    '👨🏻‍🫯‍👨🏾' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-5',
+    '👨🏻‍🫯‍👨🏿' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-6',
+    '👨🏼‍🫯‍👨🏻' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-1-2',
+    '👨🏼‍🫯‍👨🏽' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-4',
+    '👨🏼‍🫯‍👨🏾' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-5',
+    '👨🏼‍🫯‍👨🏿' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-6',
+    '👨🏽‍🫯‍👨🏻' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-1-2',
+    '👨🏽‍🫯‍👨🏼' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-3',
+    '👨🏽‍🫯‍👨🏾' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-5',
+    '👨🏽‍🫯‍👨🏿' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-6',
+    '👨🏾‍🫯‍👨🏻' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-1-2',
+    '👨🏾‍🫯‍👨🏼' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-3',
+    '👨🏾‍🫯‍👨🏽' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-4',
+    '👨🏾‍🫯‍👨🏿' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-6',
+    '👨🏿‍🫯‍👨🏻' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-1-2',
+    '👨🏿‍🫯‍👨🏼' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-3',
+    '👨🏿‍🫯‍👨🏽' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-4',
+    '👨🏿‍🫯‍👨🏾' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-5',
     '👨🏻‍❤‍👨🏻' => 'හදවතක් සමගින් යුවල: පිරිිමියා, පිරිිමියා, සහ සමෙහි වර්ගය-1-2',
     '👨🏻‍❤‍👨🏼' => 'හදවතක් සමගින් යුවල: පිරිිමියා, පිරිිමියා, සමෙහි වර්ගය-1-2, සහ සමෙහි වර්ගය-3',
     '👨🏻‍❤‍👨🏽' => 'හදවතක් සමගින් යුවල: පිරිිමියා, පිරිිමියා, සමෙහි වර්ගය-1-2, සහ සමෙහි වර්ගය-4',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'හදවතක් සමගින් යුවල: පිරිිමියා, පිරිිමියා, සමෙහි වර්ගය-6, සහ සමෙහි වර්ගය-4',
     '👨🏿‍❤‍👨🏾' => 'හදවතක් සමගින් යුවල: පිරිිමියා, පිරිිමියා, සමෙහි වර්ගය-6, සහ සමෙහි වර්ගය-5',
     '👨🏿‍❤‍👨🏿' => 'හදවතක් සමගින් යුවල: පිරිිමියා, පිරිිමියා, සහ සමෙහි වර්ගය-6',
+    '👨🏻‍🐰‍👨🏼' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-3',
+    '👨🏻‍🐰‍👨🏽' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-4',
+    '👨🏻‍🐰‍👨🏾' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-5',
+    '👨🏻‍🐰‍👨🏿' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-6',
+    '👨🏼‍🐰‍👨🏻' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-1-2',
+    '👨🏼‍🐰‍👨🏽' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-4',
+    '👨🏼‍🐰‍👨🏾' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-5',
+    '👨🏼‍🐰‍👨🏿' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-6',
+    '👨🏽‍🐰‍👨🏻' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-1-2',
+    '👨🏽‍🐰‍👨🏼' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-3',
+    '👨🏽‍🐰‍👨🏾' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-5',
+    '👨🏽‍🐰‍👨🏿' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-6',
+    '👨🏾‍🐰‍👨🏻' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-1-2',
+    '👨🏾‍🐰‍👨🏼' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-3',
+    '👨🏾‍🐰‍👨🏽' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-4',
+    '👨🏾‍🐰‍👨🏿' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-6',
+    '👨🏿‍🐰‍👨🏻' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-1-2',
+    '👨🏿‍🐰‍👨🏼' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-3',
+    '👨🏿‍🐰‍👨🏽' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-4',
+    '👨🏿‍🐰‍👨🏾' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-5',
+    '👩🏻‍🫯‍👩🏼' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-3',
+    '👩🏻‍🫯‍👩🏽' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-4',
+    '👩🏻‍🫯‍👩🏾' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-5',
+    '👩🏻‍🫯‍👩🏿' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-6',
+    '👩🏼‍🫯‍👩🏻' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-1-2',
+    '👩🏼‍🫯‍👩🏽' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-4',
+    '👩🏼‍🫯‍👩🏾' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-5',
+    '👩🏼‍🫯‍👩🏿' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-6',
+    '👩🏽‍🫯‍👩🏻' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-1-2',
+    '👩🏽‍🫯‍👩🏼' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-3',
+    '👩🏽‍🫯‍👩🏾' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-5',
+    '👩🏽‍🫯‍👩🏿' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-6',
+    '👩🏾‍🫯‍👩🏻' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-1-2',
+    '👩🏾‍🫯‍👩🏼' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-3',
+    '👩🏾‍🫯‍👩🏽' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-4',
+    '👩🏾‍🫯‍👩🏿' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-6',
+    '👩🏿‍🫯‍👩🏻' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-1-2',
+    '👩🏿‍🫯‍👩🏼' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-3',
+    '👩🏿‍🫯‍👩🏽' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-4',
+    '👩🏿‍🫯‍👩🏾' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-5',
     '👩🏻‍❤‍👨🏻' => 'හදවතක් සමගින් යුවල: කාන්තාව, පිරිිමියා, සහ සමෙහි වර්ගය-1-2',
     '👩🏻‍❤‍👨🏼' => 'හදවතක් සමගින් යුවල: කාන්තාව, පිරිිමියා, සමෙහි වර්ගය-1-2, සහ සමෙහි වර්ගය-3',
     '👩🏻‍❤‍👨🏽' => 'හදවතක් සමගින් යුවල: කාන්තාව, පිරිිමියා, සමෙහි වර්ගය-1-2, සහ සමෙහි වර්ගය-4',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'හදවතක් සමගින් යුවල: කාන්තාව, කාන්තාව, සමෙහි වර්ගය-6, සහ සමෙහි වර්ගය-4',
     '👩🏿‍❤‍👩🏾' => 'හදවතක් සමගින් යුවල: කාන්තාව, කාන්තාව, සමෙහි වර්ගය-6, සහ සමෙහි වර්ගය-5',
     '👩🏿‍❤‍👩🏿' => 'හදවතක් සමගින් යුවල: කාන්තාව, කාන්තාව, සහ සමෙහි වර්ගය-6',
+    '👩🏻‍🐰‍👩🏼' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-3',
+    '👩🏻‍🐰‍👩🏽' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-4',
+    '👩🏻‍🐰‍👩🏾' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-5',
+    '👩🏻‍🐰‍👩🏿' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-6',
+    '👩🏼‍🐰‍👩🏻' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-1-2',
+    '👩🏼‍🐰‍👩🏽' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-4',
+    '👩🏼‍🐰‍👩🏾' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-5',
+    '👩🏼‍🐰‍👩🏿' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-3 සහ සමෙහි වර්ගය-6',
+    '👩🏽‍🐰‍👩🏻' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-1-2',
+    '👩🏽‍🐰‍👩🏼' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-3',
+    '👩🏽‍🐰‍👩🏾' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-5',
+    '👩🏽‍🐰‍👩🏿' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-4 සහ සමෙහි වර්ගය-6',
+    '👩🏾‍🐰‍👩🏻' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-1-2',
+    '👩🏾‍🐰‍👩🏼' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-3',
+    '👩🏾‍🐰‍👩🏽' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-4',
+    '👩🏾‍🐰‍👩🏿' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-5 සහ සමෙහි වර්ගය-6',
+    '👩🏿‍🐰‍👩🏻' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-1-2',
+    '👩🏿‍🐰‍👩🏼' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-3',
+    '👩🏿‍🐰‍👩🏽' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-4',
+    '👩🏿‍🐰‍👩🏾' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-5',
     '🧑🏻‍🤝‍🧑🏻' => 'අත් අල්ලා ගෙන සිටින පුද්ගලයන්: සමෙහි වර්ගය-1-2',
     '🧑🏻‍🤝‍🧑🏼' => 'අත් අල්ලා ගෙන සිටින පුද්ගලයන්: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-3',
     '🧑🏻‍🤝‍🧑🏽' => 'අත් අල්ලා ගෙන සිටින පුද්ගලයන්: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-4',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'කොඩිය: ස්කොට්ලන්තය',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'කොඩිය: වේල්සය',
     '🧑‍🧑‍🧒‍🧒' => 'පවුල: වැඩිහිටි, වැඩිහිටි, දරුවා, දරුවා',
-    '🚶🏻‍♀‍➡' => 'ඇවිදීන කාන්තාව දකුණට මුහුණලා',
-    '🚶🏼‍♀‍➡' => 'ඇවිදීන කාන්තාව දකුණට මුහුණලා',
-    '🚶🏽‍♀‍➡' => 'ඇවිදීන කාන්තාව දකුණට මුහුණලා',
-    '🚶🏾‍♀‍➡' => 'ඇවිදීන කාන්තාව දකුණට මුහුණලා',
-    '🚶🏿‍♀‍➡' => 'ඇවිදීන කාන්තාව දකුණට මුහුණලා',
-    '🚶🏻‍♂‍➡' => 'ඇවිදීන පිරිමියා දකුණට මුහුණලා',
-    '🚶🏼‍♂‍➡' => 'ඇවිදීන පිරිමියා දකුණට මුහුණලා',
-    '🚶🏽‍♂‍➡' => 'ඇවිදීන පිරිමියා දකුණට මුහුණලා',
-    '🚶🏾‍♂‍➡' => 'ඇවිදීන පිරිමියා දකුණට මුහුණලා',
-    '🚶🏿‍♂‍➡' => 'ඇවිදීන පිරිමියා දකුණට මුහුණලා',
-    '🧎🏻‍♀‍➡' => 'කාන්තාව දණ ගසයි දකුණට මුහුණලා',
-    '🧎🏼‍♀‍➡' => 'කාන්තාව දණ ගසයි දකුණට මුහුණලා',
-    '🧎🏽‍♀‍➡' => 'කාන්තාව දණ ගසයි දකුණට මුහුණලා',
-    '🧎🏾‍♀‍➡' => 'කාන්තාව දණ ගසයි දකුණට මුහුණලා',
-    '🧎🏿‍♀‍➡' => 'කාන්තාව දණ ගසයි දකුණට මුහුණලා',
-    '🧎🏻‍♂‍➡' => 'මිනිසා දණ ගසයි දකුණට මුහුණලා',
-    '🧎🏼‍♂‍➡' => 'මිනිසා දණ ගසයි දකුණට මුහුණලා',
-    '🧎🏽‍♂‍➡' => 'මිනිසා දණ ගසයි දකුණට මුහුණලා',
-    '🧎🏾‍♂‍➡' => 'මිනිසා දණ ගසයි දකුණට මුහුණලා',
-    '🧎🏿‍♂‍➡' => 'මිනිසා දණ ගසයි දකුණට මුහුණලා',
-    '🧑🏻‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏼‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏽‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏾‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏿‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා දකුණට මුහුණලා',
-    '👨🏻‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා දකුණට මුහුණලා',
-    '👨🏼‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා දකුණට මුහුණලා',
-    '👨🏽‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා දකුණට මුහුණලා',
-    '👨🏾‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා දකුණට මුහුණලා',
-    '👨🏿‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා දකුණට මුහුණලා',
-    '👩🏻‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව දකුණට මුහුණලා',
-    '👩🏼‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව දකුණට මුහුණලා',
-    '👩🏽‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව දකුණට මුහුණලා',
-    '👩🏾‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව දකුණට මුහුණලා',
-    '👩🏿‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව දකුණට මුහුණලා',
-    '🧑🏻‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏼‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏽‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏾‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏿‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '👨🏻‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👨🏼‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👨🏽‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👨🏾‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👨🏿‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👩🏻‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '👩🏼‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '👩🏽‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '👩🏾‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '👩🏿‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '🧑🏻‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏼‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏽‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏾‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '🧑🏿‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '👨🏻‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👨🏼‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👨🏽‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👨🏾‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👨🏿‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👩🏻‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '👩🏼‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '👩🏽‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '👩🏾‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '👩🏿‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '🏃🏻‍♀‍➡' => 'දුවන කාන්තාව දකුණට මුහුණලා',
-    '🏃🏼‍♀‍➡' => 'දුවන කාන්තාව දකුණට මුහුණලා',
-    '🏃🏽‍♀‍➡' => 'දුවන කාන්තාව දකුණට මුහුණලා',
-    '🏃🏾‍♀‍➡' => 'දුවන කාන්තාව දකුණට මුහුණලා',
-    '🏃🏿‍♀‍➡' => 'දුවන කාන්තාව දකුණට මුහුණලා',
-    '🏃🏻‍♂‍➡' => 'දුවන පිරිමියා දකුණට මුහුණලා',
-    '🏃🏼‍♂‍➡' => 'දුවන පිරිමියා දකුණට මුහුණලා',
-    '🏃🏽‍♂‍➡' => 'දුවන පිරිමියා දකුණට මුහුණලා',
-    '🏃🏾‍♂‍➡' => 'දුවන පිරිමියා දකුණට මුහුණලා',
-    '🏃🏿‍♂‍➡' => 'දුවන පිරිමියා දකුණට මුහුණලා',
+    '🚶🏻‍♀‍➡' => 'ඇවිදීන කාන්තාව: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🚶🏼‍♀‍➡' => 'ඇවිදීන කාන්තාව: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🚶🏽‍♀‍➡' => 'ඇවිදීන කාන්තාව: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🚶🏾‍♀‍➡' => 'ඇවිදීන කාන්තාව: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🚶🏿‍♀‍➡' => 'ඇවිදීන කාන්තාව: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '🚶🏻‍♂‍➡' => 'ඇවිදීන පිරිමියා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🚶🏼‍♂‍➡' => 'ඇවිදීන පිරිමියා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🚶🏽‍♂‍➡' => 'ඇවිදීන පිරිමියා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🚶🏾‍♂‍➡' => 'ඇවිදීන පිරිමියා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🚶🏿‍♂‍➡' => 'ඇවිදීන පිරිමියා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '🧎🏻‍♀‍➡' => 'කාන්තාව දණ ගසයි: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🧎🏼‍♀‍➡' => 'කාන්තාව දණ ගසයි: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🧎🏽‍♀‍➡' => 'කාන්තාව දණ ගසයි: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🧎🏾‍♀‍➡' => 'කාන්තාව දණ ගසයි: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🧎🏿‍♀‍➡' => 'කාන්තාව දණ ගසයි: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '🧎🏻‍♂‍➡' => 'මිනිසා දණ ගසයි: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🧎🏼‍♂‍➡' => 'මිනිසා දණ ගසයි: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🧎🏽‍♂‍➡' => 'මිනිසා දණ ගසයි: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🧎🏾‍♂‍➡' => 'මිනිසා දණ ගසයි: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🧎🏿‍♂‍➡' => 'මිනිසා දණ ගසයි: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '🧑🏻‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🧑🏼‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🧑🏽‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🧑🏾‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🧑🏿‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '👨🏻‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '👨🏼‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '👨🏽‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '👨🏾‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '👨🏿‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '👩🏻‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '👩🏼‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '👩🏽‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '👩🏾‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '👩🏿‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '🧑🏻‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🧑🏼‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🧑🏽‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🧑🏾‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🧑🏿‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '👨🏻‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '👨🏼‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '👨🏽‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '👨🏾‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '👨🏿‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '👩🏻‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '👩🏼‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '👩🏽‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '👩🏾‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '👩🏿‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '🧑🏻‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🧑🏼‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🧑🏽‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🧑🏾‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🧑🏿‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '👨🏻‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '👨🏼‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '👨🏽‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '👨🏾‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '👨🏿‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '👩🏻‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '👩🏼‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '👩🏽‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '👩🏾‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '👩🏿‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '🏃🏻‍♀‍➡' => 'දුවන කාන්තාව: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🏃🏼‍♀‍➡' => 'දුවන කාන්තාව: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🏃🏽‍♀‍➡' => 'දුවන කාන්තාව: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🏃🏾‍♀‍➡' => 'දුවන කාන්තාව: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🏃🏿‍♀‍➡' => 'දුවන කාන්තාව: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '🏃🏻‍♂‍➡' => 'දුවන පිරිමියා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🏃🏼‍♂‍➡' => 'දුවන පිරිමියා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🏃🏽‍♂‍➡' => 'දුවන පිරිමියා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🏃🏾‍♂‍➡' => 'දුවන පිරිමියා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🏃🏿‍♂‍➡' => 'දුවන පිරිමියා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
     '🫱🏻‍🫲🏼' => 'අතට අත දීම: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-3',
     '🫱🏻‍🫲🏽' => 'අතට අත දීම: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-4',
     '🫱🏻‍🫲🏾' => 'අතට අත දීම: සමෙහි වර්ගය-1-2 සහ සමෙහි වර්ගය-5',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'අතට අත දීම: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-3',
     '🫱🏿‍🫲🏽' => 'අතට අත දීම: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-4',
     '🫱🏿‍🫲🏾' => 'අතට අත දීම: සමෙහි වර්ගය-6 සහ සමෙහි වර්ගය-5',
-    '🚶‍♀‍➡' => 'ඇවිදීන කාන්තාව දකුණට මුහුණලා',
-    '🚶‍♂‍➡' => 'ඇවිදීන පිරිමියා දකුණට මුහුණලා',
-    '🧎‍♀‍➡' => 'කාන්තාව දණ ගසයි දකුණට මුහුණලා',
-    '🧎‍♂‍➡' => 'මිනිසා දණ ගසයි දකුණට මුහුණලා',
-    '🧑‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා දකුණට මුහුණලා',
-    '👨‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා දකුණට මුහුණලා',
-    '👩‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව දකුණට මුහුණලා',
-    '🧑‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '👨‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👩‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '🧑‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා දකුණට මුහුණලා',
-    '👨‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා දකුණට මුහුණලා',
-    '👩‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව දකුණට මුහුණලා',
-    '🏃‍♀‍➡' => 'දුවන කාන්තාව දකුණට මුහුණලා',
-    '🏃‍♂‍➡' => 'දුවන පිරිමියා දකුණට මුහුණලා',
+    '🚶‍♀‍➡' => 'ඇවිදීන කාන්තාව: දකුණට මුහුණලා',
+    '🚶‍♂‍➡' => 'ඇවිදීන පිරිමියා: දකුණට මුහුණලා',
+    '🧎‍♀‍➡' => 'කාන්තාව දණ ගසයි: දකුණට මුහුණලා',
+    '🧎‍♂‍➡' => 'මිනිසා දණ ගසයි: දකුණට මුහුණලා',
+    '🧑‍🦯‍➡' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා: දකුණට මුහුණලා',
+    '👨‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත මිනිසා: දකුණට මුහුණලා',
+    '👩‍🦯‍➡' => 'ඒෂණ දණ්ඩක් සහිත කාන්තාව: දකුණට මුහුණලා',
+    '🧑‍🦼‍➡' => 'මෝටර් රෝද පුටුවේ සිටින පුද්ගලයා: දකුණට මුහුණලා',
+    '👨‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින මිනිසා: දකුණට මුහුණලා',
+    '👩‍🦼‍➡' => 'මෝටර් රෝද පුටුවක සිටින කාන්තාව: දකුණට මුහුණලා',
+    '🧑‍🦽‍➡' => 'රෝද පුටුවේ සිටින පුද්ගලයා: දකුණට මුහුණලා',
+    '👨‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින මිනිසා: දකුණට මුහුණලා',
+    '👩‍🦽‍➡' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව: දකුණට මුහුණලා',
+    '🏃‍♀‍➡' => 'දුවන කාන්තාව: දකුණට මුහුණලා',
+    '🏃‍♂‍➡' => 'දුවන පිරිමියා: දකුණට මුහුණලා',
     '👩‍❤‍👨' => 'හදවතක් සමගින් යුවල: කාන්තාව සහ පිරිිමියා',
     '👨‍❤‍👨' => 'හදවතක් සමගින් යුවල: පිරිිමියා සහ පිරිිමියා',
     '👩‍❤‍👩' => 'හදවතක් සමගින් යුවල: කාන්තාව සහ කාන්තාව',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'වැඩිහිටියා: සමෙහි වර්ගය-4 සහ තට්ට',
     '🧑🏾‍🦲' => 'වැඩිහිටියා: සමෙහි වර්ගය-5 සහ තට්ට',
     '🧑🏿‍🦲' => 'වැඩිහිටියා: සමෙහි වර්ගය-6 සහ තට්ට',
+    '🧑🏻‍🩰' => 'බැලේ නර්තන ශිල්පිනිය: සමෙහි වර්ගය-1-2',
+    '🧑🏼‍🩰' => 'බැලේ නර්තන ශිල්පිනිය: සමෙහි වර්ගය-3',
+    '🧑🏽‍🩰' => 'බැලේ නර්තන ශිල්පිනිය: සමෙහි වර්ගය-4',
+    '🧑🏾‍🩰' => 'බැලේ නර්තන ශිල්පිනිය: සමෙහි වර්ගය-5',
+    '🧑🏿‍🩰' => 'බැලේ නර්තන ශිල්පිනිය: සමෙහි වර්ගය-6',
     '🧔🏻‍♂' => 'මිනිසා: සමෙහි වර්ගය-1-2 සහ රැවුල',
     '🧔🏼‍♂' => 'මිනිසා: සමෙහි වර්ගය-3 සහ රැවුල',
     '🧔🏽‍♂' => 'මිනිසා: සමෙහි වර්ගය-4 සහ රැවුල',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'ඇවිදීන කාන්තාව: සමෙහි වර්ගය-4',
     '🚶🏾‍♀' => 'ඇවිදීන කාන්තාව: සමෙහි වර්ගය-5',
     '🚶🏿‍♀' => 'ඇවිදීන කාන්තාව: සමෙහි වර්ගය-6',
-    '🚶🏻‍➡' => 'පදිකයා දකුණට මුහුණලා',
-    '🚶🏼‍➡' => 'පදිකයා දකුණට මුහුණලා',
-    '🚶🏽‍➡' => 'පදිකයා දකුණට මුහුණලා',
-    '🚶🏾‍➡' => 'පදිකයා දකුණට මුහුණලා',
-    '🚶🏿‍➡' => 'පදිකයා දකුණට මුහුණලා',
+    '🚶🏻‍➡' => 'පදිකයා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🚶🏼‍➡' => 'පදිකයා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🚶🏽‍➡' => 'පදිකයා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🚶🏾‍➡' => 'පදිකයා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🚶🏿‍➡' => 'පදිකයා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
     '🧍🏻‍♂' => 'මිනිසා සිටිගෙන සිටී: සමෙහි වර්ගය-1-2',
     '🧍🏼‍♂' => 'මිනිසා සිටිගෙන සිටී: සමෙහි වර්ගය-3',
     '🧍🏽‍♂' => 'මිනිසා සිටිගෙන සිටී: සමෙහි වර්ගය-4',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'කාන්තාව දණ ගසයි: සමෙහි වර්ගය-4',
     '🧎🏾‍♀' => 'කාන්තාව දණ ගසයි: සමෙහි වර්ගය-5',
     '🧎🏿‍♀' => 'කාන්තාව දණ ගසයි: සමෙහි වර්ගය-6',
-    '🧎🏻‍➡' => 'දණ ගසන පුද්ගලයා දකුණට මුහුණලා',
-    '🧎🏼‍➡' => 'දණ ගසන පුද්ගලයා දකුණට මුහුණලා',
-    '🧎🏽‍➡' => 'දණ ගසන පුද්ගලයා දකුණට මුහුණලා',
-    '🧎🏾‍➡' => 'දණ ගසන පුද්ගලයා දකුණට මුහුණලා',
-    '🧎🏿‍➡' => 'දණ ගසන පුද්ගලයා දකුණට මුහුණලා',
+    '🧎🏻‍➡' => 'දණ ගසන පුද්ගලයා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🧎🏼‍➡' => 'දණ ගසන පුද්ගලයා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🧎🏽‍➡' => 'දණ ගසන පුද්ගලයා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🧎🏾‍➡' => 'දණ ගසන පුද්ගලයා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🧎🏿‍➡' => 'දණ ගසන පුද්ගලයා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
     '🧑🏻‍🦯' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා: සමෙහි වර්ගය-1-2',
     '🧑🏼‍🦯' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා: සමෙහි වර්ගය-3',
     '🧑🏽‍🦯' => 'සැරයැටියක් රැගෙන යන පුද්ගලයා: සමෙහි වර්ගය-4',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'දුවන කාන්තාව: සමෙහි වර්ගය-4',
     '🏃🏾‍♀' => 'දුවන කාන්තාව: සමෙහි වර්ගය-5',
     '🏃🏿‍♀' => 'දුවන කාන්තාව: සමෙහි වර්ගය-6',
-    '🏃🏻‍➡' => 'දුවන්නා දකුණට මුහුණලා',
-    '🏃🏼‍➡' => 'දුවන්නා දකුණට මුහුණලා',
-    '🏃🏽‍➡' => 'දුවන්නා දකුණට මුහුණලා',
-    '🏃🏾‍➡' => 'දුවන්නා දකුණට මුහුණලා',
-    '🏃🏿‍➡' => 'දුවන්නා දකුණට මුහුණලා',
+    '🏃🏻‍➡' => 'දුවන්නා: සමෙහි වර්ගය-1-2 සහ දකුණට මුහුණලා',
+    '🏃🏼‍➡' => 'දුවන්නා: සමෙහි වර්ගය-3 සහ දකුණට මුහුණලා',
+    '🏃🏽‍➡' => 'දුවන්නා: සමෙහි වර්ගය-4 සහ දකුණට මුහුණලා',
+    '🏃🏾‍➡' => 'දුවන්නා: සමෙහි වර්ගය-5 සහ දකුණට මුහුණලා',
+    '🏃🏿‍➡' => 'දුවන්නා: සමෙහි වර්ගය-6 සහ දකුණට මුහුණලා',
+    '👯🏻‍♀' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-1-2',
+    '👯🏼‍♀' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-3',
+    '👯🏽‍♀' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-4',
+    '👯🏾‍♀' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-5',
+    '👯🏿‍♀' => 'හා කන් ඇති කාන්තාව: සමෙහි වර්ගය-6',
+    '👯🏻‍♂' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-1-2',
+    '👯🏼‍♂' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-3',
+    '👯🏽‍♂' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-4',
+    '👯🏾‍♂' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-5',
+    '👯🏿‍♂' => 'හා කන් ඇති පිරිමි: සමෙහි වර්ගය-6',
     '🧖🏻‍♂' => 'හුමාල කාමරය තුළ පිරිමියා: සමෙහි වර්ගය-1-2',
     '🧖🏼‍♂' => 'හුමාල කාමරය තුළ පිරිමියා: සමෙහි වර්ගය-3',
     '🧖🏽‍♂' => 'හුමාල කාමරය තුළ පිරිමියා: සමෙහි වර්ගය-4',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'කරත්ත රෝද කරන මිනිසා: සමෙහි වර්ගය-4',
     '🤸🏾‍♀' => 'කරත්ත රෝද කරන මිනිසා: සමෙහි වර්ගය-5',
     '🤸🏿‍♀' => 'කරත්ත රෝද කරන මිනිසා: සමෙහි වර්ගය-6',
+    '🤼🏻‍♀' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-1-2',
+    '🤼🏼‍♀' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-3',
+    '🤼🏽‍♀' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-4',
+    '🤼🏾‍♀' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-5',
+    '🤼🏿‍♀' => 'ගැහැණු මල්ලව පොර: සමෙහි වර්ගය-6',
+    '🤼🏻‍♂' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-1-2',
+    '🤼🏼‍♂' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-3',
+    '🤼🏽‍♂' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-4',
+    '🤼🏾‍♂' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-5',
+    '🤼🏿‍♂' => 'පිරිමි මල්ලව පොර: සමෙහි වර්ගය-6',
     '🤽🏻‍♂' => 'ජල පන්දු ක්‍රීඩා කරන මිනිසා: සමෙහි වර්ගය-1-2',
     '🤽🏼‍♂' => 'ජල පන්දු ක්‍රීඩා කරන මිනිසා: සමෙහි වර්ගය-3',
     '🤽🏽‍♂' => 'ජල පන්දු ක්‍රීඩා කරන මිනිසා: සමෙහි වර්ගය-4',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'කාන්තාව: රොද සහිත කොණ්ඩය',
     '👩‍🦳' => 'කාන්තාව: සුදු කොන්ඩය',
     '👩‍🦲' => 'කාන්තාව: තට්ට',
-    '🚶‍➡' => 'පදිකයා දකුණට මුහුණලා',
-    '🧎‍➡' => 'දණ ගසන පුද්ගලයා දකුණට මුහුණලා',
-    '🏃‍➡' => 'දුවන්නා දකුණට මුහුණලා',
+    '🚶‍➡' => 'පදිකයා: දකුණට මුහුණලා',
+    '🧎‍➡' => 'දණ ගසන පුද්ගලයා: දකුණට මුහුණලා',
+    '🏃‍➡' => 'දුවන්නා: දකුණට මුහුණලා',
     '👨‍👦' => 'පවුල: පිරිිමියා සහ පිරිමි ළමයා',
     '👨‍👧' => 'පවුල: පිරිිමියා සහ ගැහුණු ළමයා',
     '👩‍👦' => 'පවුල: කාන්තාව සහ පිරිමි ළමයා',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'අතින් කරකන රෝද පුටුවක සිටින කාන්තාව',
     '🏃‍♂' => 'දුවන පිරිමියා',
     '🏃‍♀' => 'දුවන කාන්තාව',
+    '🧑‍🩰' => 'බැලේ නර්තන ශිල්පිනිය',
     '👯‍♂' => 'හා කන් ඇති පිරිමි',
     '👯‍♀' => 'හා කන් ඇති කාන්තාව',
     '🧖‍♂' => 'හුමාල කාමරය තුළ පිරිමියා',
@@ -2001,11 +2147,16 @@
     '🕺🏽' => 'නටන පිරිමියා: සමෙහි වර්ගය-4',
     '🕺🏾' => 'නටන පිරිමියා: සමෙහි වර්ගය-5',
     '🕺🏿' => 'නටන පිරිමියා: සමෙහි වර්ගය-6',
-    '🕴🏻' => 'ව්‍යාාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා: සමෙහි වර්ගය-1-2',
-    '🕴🏼' => 'ව්‍යාාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා: සමෙහි වර්ගය-3',
-    '🕴🏽' => 'ව්‍යාාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා: සමෙහි වර්ගය-4',
-    '🕴🏾' => 'ව්‍යාාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා: සමෙහි වර්ගය-5',
-    '🕴🏿' => 'ව්‍යාාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා: සමෙහි වර්ගය-6',
+    '🕴🏻' => 'ව්‍යාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා: සමෙහි වර්ගය-1-2',
+    '🕴🏼' => 'ව්‍යාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා: සමෙහි වර්ගය-3',
+    '🕴🏽' => 'ව්‍යාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා: සමෙහි වර්ගය-4',
+    '🕴🏾' => 'ව්‍යාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා: සමෙහි වර්ගය-5',
+    '🕴🏿' => 'ව්‍යාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා: සමෙහි වර්ගය-6',
+    '👯🏻' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-1-2',
+    '👯🏼' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-3',
+    '👯🏽' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-4',
+    '👯🏾' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-5',
+    '👯🏿' => 'හා කන් ඇති මිනිසුන්: සමෙහි වර්ගය-6',
     '🧖🏻' => 'හුමාල කාමරය තුළ පුද්ගලයා: සමෙහි වර්ගය-1-2',
     '🧖🏼' => 'හුමාල කාමරය තුළ පුද්ගලයා: සමෙහි වර්ගය-3',
     '🧖🏽' => 'හුමාල කාමරය තුළ පුද්ගලයා: සමෙහි වර්ගය-4',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'කරත්ත රෝදය: සමෙහි වර්ගය-4',
     '🤸🏾' => 'කරත්ත රෝදය: සමෙහි වර්ගය-5',
     '🤸🏿' => 'කරත්ත රෝදය: සමෙහි වර්ගය-6',
+    '🤼🏻' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-1-2',
+    '🤼🏼' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-3',
+    '🤼🏽' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-4',
+    '🤼🏾' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-5',
+    '🤼🏿' => 'මල්ලව පොර කරුවන්: සමෙහි වර්ගය-6',
     '🤽🏻' => 'ජල පන්දු: සමෙහි වර්ගය-1-2',
     '🤽🏼' => 'ජල පන්දු: සමෙහි වර්ගය-3',
     '🤽🏽' => 'ජල පන්දු: සමෙහි වර්ගය-4',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'කොඩිය: චීනය',
     '🇨🇴' => 'කොඩිය: කොළොම්බියාව',
     '🇨🇵' => 'කොඩිය: ක්ලීපර්ටන් දූපත',
+    '🇨🇶' => 'කොඩිය: සාර්ක්',
     '🇨🇷' => 'කොඩිය: කොස්ටරිකාව',
     '🇨🇺' => 'කොඩිය: කියුබාව',
     '🇨🇻' => 'කොඩිය: කේප් වර්ඩ්',
@@ -2390,13 +2547,6 @@
     '🏽' => 'සමෙහි වර්ගය-4',
     '🏾' => 'සමෙහි වර්ගය-5',
     '🏿' => 'සමෙහි වර්ගය-6',
-    '🪉' => 'වීණාව',
-    '🪏' => 'සවල',
-    '🪾' => 'කොළ නැති ගස',
-    '🫆' => 'ඇඟිලි සලකුණ',
-    '🫜' => 'මූල එළවළු',
-    '🫟' => 'ඉසීම',
-    '🫩' => 'ඇස් යට බෑග් සහිත මුහුණ',
     '😀' => 'සිනහ මුහුණ',
     '😃' => 'කට ඇරුණ සිනාසෙන මුහුණ',
     '😄' => 'කට ඇරුණ සිනාාසෙන ඇස් සහිත සිනහ මුහුණ',
@@ -2450,6 +2600,7 @@
     '😪' => 'නිදිබර මුහුණ',
     '🤤' => 'කෙළ බේරෙන මුහුණ',
     '😴' => 'නිදින මුහුණ',
+    '🫩' => 'ඇස් යට බෑග් සහිත මුහුණ',
     '😷' => 'මුකවාඩමක් සහිත මුහුණ',
     '🤒' => 'උණකටුවක් රඳවා ගත් මුහුණ',
     '🤕' => 'හිසට බැන්ඩේජ් දැමූ මුහුණ',
@@ -2476,6 +2627,7 @@
     '😯' => 'නිශ්ශබ්ද මුහුණ',
     '😲' => 'විස්මයට පත් මුහුණ',
     '😳' => 'රතු වූ මුහුණ',
+    '🫪' => 'විකෘති මුහුණ',
     '🥺' => 'කණගාටුයි මුහුණ',
     '🥹' => 'කඳුළු සඟවාගෙන සිටින මුහුණ',
     '😦' => 'කට ඇරුණ රවන මුහුණ',
@@ -2547,6 +2699,7 @@
     '💋' => 'හාදු ලකුණ',
     '💯' => 'ලකුණු සියයි',
     '💢' => 'තරහ ලකුණ',
+    '🫯' => 'සටන් වලාකුළ',
     '💥' => 'ඝට්ටනය',
     '💫' => 'වල්ග තාරකාව',
     '💦' => 'දහඩිය බිඳු',
@@ -2670,6 +2823,7 @@
     '🧞' => 'බහිරවයා',
     '🧟' => 'සොම්බි',
     '🧌' => 'රාක්ෂයා',
+    '🫈' => 'කෙසඟ සත්වයා',
     '💆' => 'මුහුණ මසාජ් කිරීම',
     '💇' => 'කොණ්ඩය කැපීම',
     '🚶' => 'පදිකයා',
@@ -2678,7 +2832,7 @@
     '🏃' => 'දුවන්නා',
     '💃' => 'නැට්ටුක්කාරි',
     '🕺' => 'නටන පිරිමියා',
-    '🕴' => 'ව්‍යාාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා',
+    '🕴' => 'ව්‍යාපාර ඇඳුමෙන් ඉහළ පහළ යන මිනිසා',
     '👯' => 'හා කන් ඇති මිනිසුන්',
     '🧖' => 'හුමාල කාමරය තුළ පුද්ගලයා',
     '🧗' => 'කඳු නගින පුද්ගලයා',
@@ -2713,6 +2867,7 @@
     '🫂' => 'මිනිස්සු බදාගන්නවා',
     '👪' => 'පවුල',
     '👣' => 'පා සලකුණු',
+    '🫆' => 'ඇඟිලි සලකුණ',
     '🦰' => 'රතු කොණ්ඩය',
     '🦱' => 'රොද සහිත කොණ්ඩය',
     '🦳' => 'සුදු කොන්ඩය',
@@ -2812,6 +2967,7 @@
     '🐳' => 'දිය විදින තල්මසා',
     '🐋' => 'තල්මහා',
     '🐬' => 'ඩොල්ෆින්',
+    '🫍' => 'ඕර්කා',
     '🦭' => 'සීල් මත්ස්‍යයා',
     '🐟' => 'මාළුවා',
     '🐠' => 'නිවර්තන මාළුවා',
@@ -2821,6 +2977,11 @@
     '🐚' => 'සර්පිල කටුව',
     '🪸' => 'කොරල්',
     '🪼' => 'ජෙලිෆිෂ්',
+    '🦀' => 'කකුළුවා',
+    '🦞' => 'පොකිරිස්සා',
+    '🦐' => 'කූනිස්සා',
+    '🦑' => 'දැල්ලා',
+    '🦪' => 'බෙල්ලා',
     '🐌' => 'ගොළුබෙල්ලා',
     '🦋' => 'සමනළයා',
     '🐛' => 'මකුණා',
@@ -2865,6 +3026,7 @@
     '🪹' => 'හිස් කැදැල්ල',
     '🪺' => 'බිත්තර සමඟ කූඩුව',
     '🍄' => 'හතු',
+    '🪾' => 'කොළ නැති ගස',
     '🍇' => 'මිදි',
     '🍈' => 'කොමඩු',
     '🍉' => 'පැණි කොමඩු',
@@ -2901,6 +3063,7 @@
     '🌰' => 'චෙස්ට්නට්',
     '🫚' => 'ඉඟුරු අල',
     '🫛' => 'කඩල කරල්',
+    '🫜' => 'මූල එළවළු',
     '🍞' => 'පාන්',
     '🥐' => 'කිඹුලා බනිස්',
     '🥖' => 'බෑගට් පාන්',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ඩම්ප්ලිං',
     '🥠' => 'වාසනාවන්ත කුකී',
     '🥡' => 'කෑම ගෙන යන පෙට්ටිය',
-    '🦀' => 'කකුළුවා',
-    '🦞' => 'පොකිරිස්සා',
-    '🦐' => 'කූනිස්සා',
-    '🦑' => 'දැල්ලා',
-    '🦪' => 'බෙල්ලා',
     '🍦' => 'මෘදු අයිස් ක්‍රීම්',
     '🍧' => 'වර්ණ ගැන්වූ අයිස්',
     '🍨' => 'අයිස් ක්‍රීම්',
@@ -3007,6 +3165,7 @@
     '🧭' => 'මාලිමාව',
     '🏔' => 'හිම සහිත කඳු මුදුන',
     '⛰' => 'කන්ද',
+    '🛘' => 'නායයෑම්',
     '🌋' => 'ගිනිකන්ද',
     '🗻' => 'ෆීජි කන්ද',
     '🏕' => 'කඳවුරු බැඳීම',
@@ -3367,16 +3526,18 @@
     '🎧' => 'හෙඩ්ෆෝනය',
     '📻' => 'රෝඩියෝව',
     '🎷' => 'සැක්සෆෝනය',
+    '🎺' => 'ට්‍රම්පට්',
+    '🪊' => 'ට්‍රොම්බෝන්',
     '🪗' => 'එකෝඩින්',
     '🎸' => 'ගිටාරය',
     '🎹' => 'සංගීතමය යතුරු පුවරුව',
-    '🎺' => 'ට්‍රම්පට්',
     '🎻' => 'වයලීනය',
     '🪕' => 'බන්ජෝ',
     '🥁' => 'බෙරය',
     '🪘' => 'දිගු බෙර',
     '🪇' => 'මාරකාස්',
     '🪈' => 'නළාව',
+    '🪉' => 'වීණාව',
     '📱' => 'ජංගම දුරකථනය',
     '📲' => 'ඊතලයක් සහිත ජංගම දුරකථනය',
     '☎' => 'ටෙලිෆෝනය',
@@ -3430,8 +3591,9 @@
     '📑' => 'පිටු සලකුණු ටැබ',
     '🔖' => 'පිටු සලකුණ',
     '🏷' => 'ලේබලය',
-    '💰' => 'මුදල් බෑගය',
     '🪙' => 'කාසිය',
+    '💰' => 'මුදල් බෑගය',
+    '🪎' => 'නිධන් පෙට්ටිය',
     '💴' => 'යෙන් බැංකු නෝට්ටුව',
     '💵' => 'ඩොලර් බැංකු නෝට්ටුව',
     '💶' => 'යූරෝ බැංකු නෝට්ටුව',
@@ -3514,6 +3676,7 @@
     '🧰' => 'මෙවලම් පෙට්ටිය',
     '🧲' => 'චුම්බකය',
     '🪜' => 'ඉණිමඟ',
+    '🪏' => 'සවල',
     '⚗' => 'ආස්‍රැත පාත්‍රය',
     '🧪' => 'පරීක්ෂණ නලය',
     '🧫' => 'පෙට්‍ට්‍රි දීසිය',
@@ -3697,6 +3860,7 @@
     '✴' => 'කොණ් අටේ තරුව',
     '❇' => 'දිදුලන',
     '™' => 'වෙළඳ ලකුණ',
+    '🫟' => 'ඉසීම',
     '🔠' => 'ලතින් කැපිටල් අකුරු අදානය',
     '🔡' => 'ලතින් සිම්පල් අකුරු ආදානය',
     '🔢' => 'අංක ආදානය',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sk.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'bozk: žena, žena, tmavý tón pleti, stredný tón pleti',
     '👩🏿‍❤‍💋‍👩🏾' => 'bozk: žena, žena, tmavý tón pleti, stredne tmavý tón pleti',
     '👩🏿‍❤‍💋‍👩🏿' => 'bozk: žena, žena, tmavý tón pleti',
+    '🧑🏻‍🫯‍🧑🏼' => 'zápasiaci ľudia: svetlý tón pleti, stredne svetlý tón pleti',
+    '🧑🏻‍🫯‍🧑🏽' => 'zápasiaci ľudia: svetlý tón pleti, stredný tón pleti',
+    '🧑🏻‍🫯‍🧑🏾' => 'zápasiaci ľudia: svetlý tón pleti, stredne tmavý tón pleti',
+    '🧑🏻‍🫯‍🧑🏿' => 'zápasiaci ľudia: svetlý tón pleti, tmavý tón pleti',
+    '🧑🏼‍🫯‍🧑🏻' => 'zápasiaci ľudia: stredne svetlý tón pleti, svetlý tón pleti',
+    '🧑🏼‍🫯‍🧑🏽' => 'zápasiaci ľudia: stredne svetlý tón pleti, stredný tón pleti',
+    '🧑🏼‍🫯‍🧑🏾' => 'zápasiaci ľudia: stredne svetlý tón pleti, stredne tmavý tón pleti',
+    '🧑🏼‍🫯‍🧑🏿' => 'zápasiaci ľudia: stredne svetlý tón pleti, tmavý tón pleti',
+    '🧑🏽‍🫯‍🧑🏻' => 'zápasiaci ľudia: stredný tón pleti, svetlý tón pleti',
+    '🧑🏽‍🫯‍🧑🏼' => 'zápasiaci ľudia: stredný tón pleti, stredne svetlý tón pleti',
+    '🧑🏽‍🫯‍🧑🏾' => 'zápasiaci ľudia: stredný tón pleti, stredne tmavý tón pleti',
+    '🧑🏽‍🫯‍🧑🏿' => 'zápasiaci ľudia: stredný tón pleti, tmavý tón pleti',
+    '🧑🏾‍🫯‍🧑🏻' => 'zápasiaci ľudia: stredne tmavý tón pleti, svetlý tón pleti',
+    '🧑🏾‍🫯‍🧑🏼' => 'zápasiaci ľudia: stredne tmavý tón pleti, stredne svetlý tón pleti',
+    '🧑🏾‍🫯‍🧑🏽' => 'zápasiaci ľudia: stredne tmavý tón pleti, stredný tón pleti',
+    '🧑🏾‍🫯‍🧑🏿' => 'zápasiaci ľudia: stredne tmavý tón pleti, tmavý tón pleti',
+    '🧑🏿‍🫯‍🧑🏻' => 'zápasiaci ľudia: tmavý tón pleti, svetlý tón pleti',
+    '🧑🏿‍🫯‍🧑🏼' => 'zápasiaci ľudia: tmavý tón pleti, stredne svetlý tón pleti',
+    '🧑🏿‍🫯‍🧑🏽' => 'zápasiaci ľudia: tmavý tón pleti, stredný tón pleti',
+    '🧑🏿‍🫯‍🧑🏾' => 'zápasiaci ľudia: tmavý tón pleti, stredne tmavý tón pleti',
     '🧑🏻‍❤‍🧑🏼' => 'pár so srdcom: dospelý, dospelý, svetlý tón pleti, stredne svetlý tón pleti',
     '🧑🏻‍❤‍🧑🏽' => 'pár so srdcom: dospelý, dospelý, svetlý tón pleti, stredný tón pleti',
     '🧑🏻‍❤‍🧑🏾' => 'pár so srdcom: dospelý, dospelý, svetlý tón pleti, stredne tmavý tón pleti',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'pár so srdcom: dospelý, dospelý, tmavý tón pleti, stredne svetlý tón pleti',
     '🧑🏿‍❤‍🧑🏽' => 'pár so srdcom: dospelý, dospelý, tmavý tón pleti, stredný tón pleti',
     '🧑🏿‍❤‍🧑🏾' => 'pár so srdcom: dospelý, dospelý, tmavý tón pleti, stredne tmavý tón pleti',
+    '🧑🏻‍🐰‍🧑🏼' => 'ľudia so zajačími ušami: svetlý tón pleti, stredne svetlý tón pleti',
+    '🧑🏻‍🐰‍🧑🏽' => 'ľudia so zajačími ušami: svetlý tón pleti, stredný tón pleti',
+    '🧑🏻‍🐰‍🧑🏾' => 'ľudia so zajačími ušami: svetlý tón pleti, stredne tmavý tón pleti',
+    '🧑🏻‍🐰‍🧑🏿' => 'ľudia so zajačími ušami: svetlý tón pleti, tmavý tón pleti',
+    '🧑🏼‍🐰‍🧑🏻' => 'ľudia so zajačími ušami: stredne svetlý tón pleti, svetlý tón pleti',
+    '🧑🏼‍🐰‍🧑🏽' => 'ľudia so zajačími ušami: stredne svetlý tón pleti, stredný tón pleti',
+    '🧑🏼‍🐰‍🧑🏾' => 'ľudia so zajačími ušami: stredne svetlý tón pleti, stredne tmavý tón pleti',
+    '🧑🏼‍🐰‍🧑🏿' => 'ľudia so zajačími ušami: stredne svetlý tón pleti, tmavý tón pleti',
+    '🧑🏽‍🐰‍🧑🏻' => 'ľudia so zajačími ušami: stredný tón pleti, svetlý tón pleti',
+    '🧑🏽‍🐰‍🧑🏼' => 'ľudia so zajačími ušami: stredný tón pleti, stredne svetlý tón pleti',
+    '🧑🏽‍🐰‍🧑🏾' => 'ľudia so zajačími ušami: stredný tón pleti, stredne tmavý tón pleti',
+    '🧑🏽‍🐰‍🧑🏿' => 'ľudia so zajačími ušami: stredný tón pleti, tmavý tón pleti',
+    '🧑🏾‍🐰‍🧑🏻' => 'ľudia so zajačími ušami: stredne tmavý tón pleti, svetlý tón pleti',
+    '🧑🏾‍🐰‍🧑🏼' => 'ľudia so zajačími ušami: stredne tmavý tón pleti, stredne svetlý tón pleti',
+    '🧑🏾‍🐰‍🧑🏽' => 'ľudia so zajačími ušami: stredne tmavý tón pleti, stredný tón pleti',
+    '🧑🏾‍🐰‍🧑🏿' => 'ľudia so zajačími ušami: stredne tmavý tón pleti, tmavý tón pleti',
+    '🧑🏿‍🐰‍🧑🏻' => 'ľudia so zajačími ušami: tmavý tón pleti, svetlý tón pleti',
+    '🧑🏿‍🐰‍🧑🏼' => 'ľudia so zajačími ušami: tmavý tón pleti, stredne svetlý tón pleti',
+    '🧑🏿‍🐰‍🧑🏽' => 'ľudia so zajačími ušami: tmavý tón pleti, stredný tón pleti',
+    '🧑🏿‍🐰‍🧑🏾' => 'ľudia so zajačími ušami: tmavý tón pleti, stredne tmavý tón pleti',
+    '👨🏻‍🫯‍👨🏼' => 'zápasníci: svetlý tón pleti, stredne svetlý tón pleti',
+    '👨🏻‍🫯‍👨🏽' => 'zápasníci: svetlý tón pleti, stredný tón pleti',
+    '👨🏻‍🫯‍👨🏾' => 'zápasníci: svetlý tón pleti, stredne tmavý tón pleti',
+    '👨🏻‍🫯‍👨🏿' => 'zápasníci: svetlý tón pleti, tmavý tón pleti',
+    '👨🏼‍🫯‍👨🏻' => 'zápasníci: stredne svetlý tón pleti, svetlý tón pleti',
+    '👨🏼‍🫯‍👨🏽' => 'zápasníci: stredne svetlý tón pleti, stredný tón pleti',
+    '👨🏼‍🫯‍👨🏾' => 'zápasníci: stredne svetlý tón pleti, stredne tmavý tón pleti',
+    '👨🏼‍🫯‍👨🏿' => 'zápasníci: stredne svetlý tón pleti, tmavý tón pleti',
+    '👨🏽‍🫯‍👨🏻' => 'zápasníci: stredný tón pleti, svetlý tón pleti',
+    '👨🏽‍🫯‍👨🏼' => 'zápasníci: stredný tón pleti, stredne svetlý tón pleti',
+    '👨🏽‍🫯‍👨🏾' => 'zápasníci: stredný tón pleti, stredne tmavý tón pleti',
+    '👨🏽‍🫯‍👨🏿' => 'zápasníci: stredný tón pleti, tmavý tón pleti',
+    '👨🏾‍🫯‍👨🏻' => 'zápasníci: stredne tmavý tón pleti, svetlý tón pleti',
+    '👨🏾‍🫯‍👨🏼' => 'zápasníci: stredne tmavý tón pleti, stredne svetlý tón pleti',
+    '👨🏾‍🫯‍👨🏽' => 'zápasníci: stredne tmavý tón pleti, stredný tón pleti',
+    '👨🏾‍🫯‍👨🏿' => 'zápasníci: stredne tmavý tón pleti, tmavý tón pleti',
+    '👨🏿‍🫯‍👨🏻' => 'zápasníci: tmavý tón pleti, svetlý tón pleti',
+    '👨🏿‍🫯‍👨🏼' => 'zápasníci: tmavý tón pleti, stredne svetlý tón pleti',
+    '👨🏿‍🫯‍👨🏽' => 'zápasníci: tmavý tón pleti, stredný tón pleti',
+    '👨🏿‍🫯‍👨🏾' => 'zápasníci: tmavý tón pleti, stredne tmavý tón pleti',
     '👨🏻‍❤‍👨🏻' => 'pár so srdcom: muž, muž, svetlý tón pleti',
     '👨🏻‍❤‍👨🏼' => 'pár so srdcom: muž, muž, svetlý tón pleti, stredne svetlý tón pleti',
     '👨🏻‍❤‍👨🏽' => 'pár so srdcom: muž, muž, svetlý tón pleti, stredný tón pleti',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'pár so srdcom: muž, muž, tmavý tón pleti, stredný tón pleti',
     '👨🏿‍❤‍👨🏾' => 'pár so srdcom: muž, muž, tmavý tón pleti, stredne tmavý tón pleti',
     '👨🏿‍❤‍👨🏿' => 'pár so srdcom: muž, muž, tmavý tón pleti',
+    '👨🏻‍🐰‍👨🏼' => 'muži so zajačími ušami: svetlý tón pleti, stredne svetlý tón pleti',
+    '👨🏻‍🐰‍👨🏽' => 'muži so zajačími ušami: svetlý tón pleti, stredný tón pleti',
+    '👨🏻‍🐰‍👨🏾' => 'muži so zajačími ušami: svetlý tón pleti, stredne tmavý tón pleti',
+    '👨🏻‍🐰‍👨🏿' => 'muži so zajačími ušami: svetlý tón pleti, tmavý tón pleti',
+    '👨🏼‍🐰‍👨🏻' => 'muži so zajačími ušami: stredne svetlý tón pleti, svetlý tón pleti',
+    '👨🏼‍🐰‍👨🏽' => 'muži so zajačími ušami: stredne svetlý tón pleti, stredný tón pleti',
+    '👨🏼‍🐰‍👨🏾' => 'muži so zajačími ušami: stredne svetlý tón pleti, stredne tmavý tón pleti',
+    '👨🏼‍🐰‍👨🏿' => 'muži so zajačími ušami: stredne svetlý tón pleti, tmavý tón pleti',
+    '👨🏽‍🐰‍👨🏻' => 'muži so zajačími ušami: stredný tón pleti, svetlý tón pleti',
+    '👨🏽‍🐰‍👨🏼' => 'muži so zajačími ušami: stredný tón pleti, stredne svetlý tón pleti',
+    '👨🏽‍🐰‍👨🏾' => 'muži so zajačími ušami: stredný tón pleti, stredne tmavý tón pleti',
+    '👨🏽‍🐰‍👨🏿' => 'muži so zajačími ušami: stredný tón pleti, tmavý tón pleti',
+    '👨🏾‍🐰‍👨🏻' => 'muži so zajačími ušami: stredne tmavý tón pleti, svetlý tón pleti',
+    '👨🏾‍🐰‍👨🏼' => 'muži so zajačími ušami: stredne tmavý tón pleti, stredne svetlý tón pleti',
+    '👨🏾‍🐰‍👨🏽' => 'muži so zajačími ušami: stredne tmavý tón pleti, stredný tón pleti',
+    '👨🏾‍🐰‍👨🏿' => 'muži so zajačími ušami: stredne tmavý tón pleti, tmavý tón pleti',
+    '👨🏿‍🐰‍👨🏻' => 'muži so zajačími ušami: tmavý tón pleti, svetlý tón pleti',
+    '👨🏿‍🐰‍👨🏼' => 'muži so zajačími ušami: tmavý tón pleti, stredne svetlý tón pleti',
+    '👨🏿‍🐰‍👨🏽' => 'muži so zajačími ušami: tmavý tón pleti, stredný tón pleti',
+    '👨🏿‍🐰‍👨🏾' => 'muži so zajačími ušami: tmavý tón pleti, stredne tmavý tón pleti',
+    '👩🏻‍🫯‍👩🏼' => 'zápasníčky: svetlý tón pleti, stredne svetlý tón pleti',
+    '👩🏻‍🫯‍👩🏽' => 'zápasníčky: svetlý tón pleti, stredný tón pleti',
+    '👩🏻‍🫯‍👩🏾' => 'zápasníčky: svetlý tón pleti, stredne tmavý tón pleti',
+    '👩🏻‍🫯‍👩🏿' => 'zápasníčky: svetlý tón pleti, tmavý tón pleti',
+    '👩🏼‍🫯‍👩🏻' => 'zápasníčky: stredne svetlý tón pleti, svetlý tón pleti',
+    '👩🏼‍🫯‍👩🏽' => 'zápasníčky: stredne svetlý tón pleti, stredný tón pleti',
+    '👩🏼‍🫯‍👩🏾' => 'zápasníčky: stredne svetlý tón pleti, stredne tmavý tón pleti',
+    '👩🏼‍🫯‍👩🏿' => 'zápasníčky: stredne svetlý tón pleti, tmavý tón pleti',
+    '👩🏽‍🫯‍👩🏻' => 'zápasníčky: stredný tón pleti, svetlý tón pleti',
+    '👩🏽‍🫯‍👩🏼' => 'zápasníčky: stredný tón pleti, stredne svetlý tón pleti',
+    '👩🏽‍🫯‍👩🏾' => 'zápasníčky: stredný tón pleti, stredne tmavý tón pleti',
+    '👩🏽‍🫯‍👩🏿' => 'zápasníčky: stredný tón pleti, tmavý tón pleti',
+    '👩🏾‍🫯‍👩🏻' => 'zápasníčky: stredne tmavý tón pleti, svetlý tón pleti',
+    '👩🏾‍🫯‍👩🏼' => 'zápasníčky: stredne tmavý tón pleti, stredne svetlý tón pleti',
+    '👩🏾‍🫯‍👩🏽' => 'zápasníčky: stredne tmavý tón pleti, stredný tón pleti',
+    '👩🏾‍🫯‍👩🏿' => 'zápasníčky: stredne tmavý tón pleti, tmavý tón pleti',
+    '👩🏿‍🫯‍👩🏻' => 'zápasníčky: tmavý tón pleti, svetlý tón pleti',
+    '👩🏿‍🫯‍👩🏼' => 'zápasníčky: tmavý tón pleti, stredne svetlý tón pleti',
+    '👩🏿‍🫯‍👩🏽' => 'zápasníčky: tmavý tón pleti, stredný tón pleti',
+    '👩🏿‍🫯‍👩🏾' => 'zápasníčky: tmavý tón pleti, stredne tmavý tón pleti',
     '👩🏻‍❤‍👨🏻' => 'pár so srdcom: žena, muž, svetlý tón pleti',
     '👩🏻‍❤‍👨🏼' => 'pár so srdcom: žena, muž, svetlý tón pleti, stredne svetlý tón pleti',
     '👩🏻‍❤‍👨🏽' => 'pár so srdcom: žena, muž, svetlý tón pleti, stredný tón pleti',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'pár so srdcom: žena, žena, tmavý tón pleti, stredný tón pleti',
     '👩🏿‍❤‍👩🏾' => 'pár so srdcom: žena, žena, tmavý tón pleti, stredne tmavý tón pleti',
     '👩🏿‍❤‍👩🏿' => 'pár so srdcom: žena, žena, tmavý tón pleti',
+    '👩🏻‍🐰‍👩🏼' => 'ženy so zajačími ušami: svetlý tón pleti, stredne svetlý tón pleti',
+    '👩🏻‍🐰‍👩🏽' => 'ženy so zajačími ušami: svetlý tón pleti, stredný tón pleti',
+    '👩🏻‍🐰‍👩🏾' => 'ženy so zajačími ušami: svetlý tón pleti, stredne tmavý tón pleti',
+    '👩🏻‍🐰‍👩🏿' => 'ženy so zajačími ušami: svetlý tón pleti, tmavý tón pleti',
+    '👩🏼‍🐰‍👩🏻' => 'ženy so zajačími ušami: stredne svetlý tón pleti, svetlý tón pleti',
+    '👩🏼‍🐰‍👩🏽' => 'ženy so zajačími ušami: stredne svetlý tón pleti, stredný tón pleti',
+    '👩🏼‍🐰‍👩🏾' => 'ženy so zajačími ušami: stredne svetlý tón pleti, stredne tmavý tón pleti',
+    '👩🏼‍🐰‍👩🏿' => 'ženy so zajačími ušami: stredne svetlý tón pleti, tmavý tón pleti',
+    '👩🏽‍🐰‍👩🏻' => 'ženy so zajačími ušami: stredný tón pleti, svetlý tón pleti',
+    '👩🏽‍🐰‍👩🏼' => 'ženy so zajačími ušami: stredný tón pleti, stredne svetlý tón pleti',
+    '👩🏽‍🐰‍👩🏾' => 'ženy so zajačími ušami: stredný tón pleti, stredne tmavý tón pleti',
+    '👩🏽‍🐰‍👩🏿' => 'ženy so zajačími ušami: stredný tón pleti, tmavý tón pleti',
+    '👩🏾‍🐰‍👩🏻' => 'ženy so zajačími ušami: stredne tmavý tón pleti, svetlý tón pleti',
+    '👩🏾‍🐰‍👩🏼' => 'ženy so zajačími ušami: stredne tmavý tón pleti, stredne svetlý tón pleti',
+    '👩🏾‍🐰‍👩🏽' => 'ženy so zajačími ušami: stredne tmavý tón pleti, stredný tón pleti',
+    '👩🏾‍🐰‍👩🏿' => 'ženy so zajačími ušami: stredne tmavý tón pleti, tmavý tón pleti',
+    '👩🏿‍🐰‍👩🏻' => 'ženy so zajačími ušami: tmavý tón pleti, svetlý tón pleti',
+    '👩🏿‍🐰‍👩🏼' => 'ženy so zajačími ušami: tmavý tón pleti, stredne svetlý tón pleti',
+    '👩🏿‍🐰‍👩🏽' => 'ženy so zajačími ušami: tmavý tón pleti, stredný tón pleti',
+    '👩🏿‍🐰‍👩🏾' => 'ženy so zajačími ušami: tmavý tón pleti, stredne tmavý tón pleti',
     '🧑🏻‍🤝‍🧑🏻' => 'ľudia držiaci sa za ruky: svetlý tón pleti',
     '🧑🏻‍🤝‍🧑🏼' => 'ľudia držiaci sa za ruky: svetlý tón pleti, stredne svetlý tón pleti',
     '🧑🏻‍🤝‍🧑🏽' => 'ľudia držiaci sa za ruky: svetlý tón pleti, stredný tón pleti',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'zástava: Škótsko',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'zástava: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'rodina: dospelý, dospelý, dieťa, dieťa',
-    '🚶🏻‍♀‍➡' => 'chodkyňa smerom doprava',
-    '🚶🏼‍♀‍➡' => 'chodkyňa smerom doprava',
-    '🚶🏽‍♀‍➡' => 'chodkyňa smerom doprava',
-    '🚶🏾‍♀‍➡' => 'chodkyňa smerom doprava',
-    '🚶🏿‍♀‍➡' => 'chodkyňa smerom doprava',
-    '🚶🏻‍♂‍➡' => 'chodec smerom doprava',
-    '🚶🏼‍♂‍➡' => 'chodec smerom doprava',
-    '🚶🏽‍♂‍➡' => 'chodec smerom doprava',
-    '🚶🏾‍♂‍➡' => 'chodec smerom doprava',
-    '🚶🏿‍♂‍➡' => 'chodec smerom doprava',
-    '🧎🏻‍♀‍➡' => 'kľačiaca žena smerom doprava',
-    '🧎🏼‍♀‍➡' => 'kľačiaca žena smerom doprava',
-    '🧎🏽‍♀‍➡' => 'kľačiaca žena smerom doprava',
-    '🧎🏾‍♀‍➡' => 'kľačiaca žena smerom doprava',
-    '🧎🏿‍♀‍➡' => 'kľačiaca žena smerom doprava',
-    '🧎🏻‍♂‍➡' => 'kľačiaci muž smerom doprava',
-    '🧎🏼‍♂‍➡' => 'kľačiaci muž smerom doprava',
-    '🧎🏽‍♂‍➡' => 'kľačiaci muž smerom doprava',
-    '🧎🏾‍♂‍➡' => 'kľačiaci muž smerom doprava',
-    '🧎🏿‍♂‍➡' => 'kľačiaci muž smerom doprava',
-    '🧑🏻‍🦯‍➡' => 'človek s bielou palicou smerom doprava',
-    '🧑🏼‍🦯‍➡' => 'človek s bielou palicou smerom doprava',
-    '🧑🏽‍🦯‍➡' => 'človek s bielou palicou smerom doprava',
-    '🧑🏾‍🦯‍➡' => 'človek s bielou palicou smerom doprava',
-    '🧑🏿‍🦯‍➡' => 'človek s bielou palicou smerom doprava',
-    '👨🏻‍🦯‍➡' => 'muž s bielou palicou smerom doprava',
-    '👨🏼‍🦯‍➡' => 'muž s bielou palicou smerom doprava',
-    '👨🏽‍🦯‍➡' => 'muž s bielou palicou smerom doprava',
-    '👨🏾‍🦯‍➡' => 'muž s bielou palicou smerom doprava',
-    '👨🏿‍🦯‍➡' => 'muž s bielou palicou smerom doprava',
-    '👩🏻‍🦯‍➡' => 'žena so slepeckou palicou smerom doprava',
-    '👩🏼‍🦯‍➡' => 'žena so slepeckou palicou smerom doprava',
-    '👩🏽‍🦯‍➡' => 'žena so slepeckou palicou smerom doprava',
-    '👩🏾‍🦯‍➡' => 'žena so slepeckou palicou smerom doprava',
-    '👩🏿‍🦯‍➡' => 'žena so slepeckou palicou smerom doprava',
-    '🧑🏻‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku smerom doprava',
-    '🧑🏼‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku smerom doprava',
-    '🧑🏽‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku smerom doprava',
-    '🧑🏾‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku smerom doprava',
-    '🧑🏿‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku smerom doprava',
-    '👨🏻‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku smerom doprava',
-    '👨🏼‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku smerom doprava',
-    '👨🏽‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku smerom doprava',
-    '👨🏾‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku smerom doprava',
-    '👨🏿‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku smerom doprava',
-    '👩🏻‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku smerom doprava',
-    '👩🏼‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku smerom doprava',
-    '👩🏽‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku smerom doprava',
-    '👩🏾‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku smerom doprava',
-    '👩🏿‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku smerom doprava',
-    '🧑🏻‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku smerom doprava',
-    '🧑🏼‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku smerom doprava',
-    '🧑🏽‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku smerom doprava',
-    '🧑🏾‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku smerom doprava',
-    '🧑🏿‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku smerom doprava',
-    '👨🏻‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku smerom doprava',
-    '👨🏼‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku smerom doprava',
-    '👨🏽‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku smerom doprava',
-    '👨🏾‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku smerom doprava',
-    '👨🏿‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku smerom doprava',
-    '👩🏻‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku smerom doprava',
-    '👩🏼‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku smerom doprava',
-    '👩🏽‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku smerom doprava',
-    '👩🏾‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku smerom doprava',
-    '👩🏿‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku smerom doprava',
-    '🏃🏻‍♀‍➡' => 'bežkyňa smerom doprava',
-    '🏃🏼‍♀‍➡' => 'bežkyňa smerom doprava',
-    '🏃🏽‍♀‍➡' => 'bežkyňa smerom doprava',
-    '🏃🏾‍♀‍➡' => 'bežkyňa smerom doprava',
-    '🏃🏿‍♀‍➡' => 'bežkyňa smerom doprava',
-    '🏃🏻‍♂‍➡' => 'bežec smerom doprava',
-    '🏃🏼‍♂‍➡' => 'bežec smerom doprava',
-    '🏃🏽‍♂‍➡' => 'bežec smerom doprava',
-    '🏃🏾‍♂‍➡' => 'bežec smerom doprava',
-    '🏃🏿‍♂‍➡' => 'bežec smerom doprava',
+    '🚶🏻‍♀‍➡' => 'chodkyňa: svetlý tón pleti, smerom doprava',
+    '🚶🏼‍♀‍➡' => 'chodkyňa: stredne svetlý tón pleti, smerom doprava',
+    '🚶🏽‍♀‍➡' => 'chodkyňa: stredný tón pleti, smerom doprava',
+    '🚶🏾‍♀‍➡' => 'chodkyňa: stredne tmavý tón pleti, smerom doprava',
+    '🚶🏿‍♀‍➡' => 'chodkyňa: tmavý tón pleti, smerom doprava',
+    '🚶🏻‍♂‍➡' => 'chodec: svetlý tón pleti, smerom doprava',
+    '🚶🏼‍♂‍➡' => 'chodec: stredne svetlý tón pleti, smerom doprava',
+    '🚶🏽‍♂‍➡' => 'chodec: stredný tón pleti, smerom doprava',
+    '🚶🏾‍♂‍➡' => 'chodec: stredne tmavý tón pleti, smerom doprava',
+    '🚶🏿‍♂‍➡' => 'chodec: tmavý tón pleti, smerom doprava',
+    '🧎🏻‍♀‍➡' => 'kľačiaca žena: svetlý tón pleti, smerom doprava',
+    '🧎🏼‍♀‍➡' => 'kľačiaca žena: stredne svetlý tón pleti, smerom doprava',
+    '🧎🏽‍♀‍➡' => 'kľačiaca žena: stredný tón pleti, smerom doprava',
+    '🧎🏾‍♀‍➡' => 'kľačiaca žena: stredne tmavý tón pleti, smerom doprava',
+    '🧎🏿‍♀‍➡' => 'kľačiaca žena: tmavý tón pleti, smerom doprava',
+    '🧎🏻‍♂‍➡' => 'kľačiaci muž: svetlý tón pleti, smerom doprava',
+    '🧎🏼‍♂‍➡' => 'kľačiaci muž: stredne svetlý tón pleti, smerom doprava',
+    '🧎🏽‍♂‍➡' => 'kľačiaci muž: stredný tón pleti, smerom doprava',
+    '🧎🏾‍♂‍➡' => 'kľačiaci muž: stredne tmavý tón pleti, smerom doprava',
+    '🧎🏿‍♂‍➡' => 'kľačiaci muž: tmavý tón pleti, smerom doprava',
+    '🧑🏻‍🦯‍➡' => 'človek s bielou palicou: svetlý tón pleti, smerom doprava',
+    '🧑🏼‍🦯‍➡' => 'človek s bielou palicou: stredne svetlý tón pleti, smerom doprava',
+    '🧑🏽‍🦯‍➡' => 'človek s bielou palicou: stredný tón pleti, smerom doprava',
+    '🧑🏾‍🦯‍➡' => 'človek s bielou palicou: stredne tmavý tón pleti, smerom doprava',
+    '🧑🏿‍🦯‍➡' => 'človek s bielou palicou: tmavý tón pleti, smerom doprava',
+    '👨🏻‍🦯‍➡' => 'muž s bielou palicou: svetlý tón pleti, smerom doprava',
+    '👨🏼‍🦯‍➡' => 'muž s bielou palicou: stredne svetlý tón pleti, smerom doprava',
+    '👨🏽‍🦯‍➡' => 'muž s bielou palicou: stredný tón pleti, smerom doprava',
+    '👨🏾‍🦯‍➡' => 'muž s bielou palicou: stredne tmavý tón pleti, smerom doprava',
+    '👨🏿‍🦯‍➡' => 'muž s bielou palicou: tmavý tón pleti, smerom doprava',
+    '👩🏻‍🦯‍➡' => 'žena so slepeckou palicou: svetlý tón pleti, smerom doprava',
+    '👩🏼‍🦯‍➡' => 'žena so slepeckou palicou: stredne svetlý tón pleti, smerom doprava',
+    '👩🏽‍🦯‍➡' => 'žena so slepeckou palicou: stredný tón pleti, smerom doprava',
+    '👩🏾‍🦯‍➡' => 'žena so slepeckou palicou: stredne tmavý tón pleti, smerom doprava',
+    '👩🏿‍🦯‍➡' => 'žena so slepeckou palicou: tmavý tón pleti, smerom doprava',
+    '🧑🏻‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku: svetlý tón pleti, smerom doprava',
+    '🧑🏼‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku: stredne svetlý tón pleti, smerom doprava',
+    '🧑🏽‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku: stredný tón pleti, smerom doprava',
+    '🧑🏾‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku: stredne tmavý tón pleti, smerom doprava',
+    '🧑🏿‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku: tmavý tón pleti, smerom doprava',
+    '👨🏻‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku: svetlý tón pleti, smerom doprava',
+    '👨🏼‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku: stredne svetlý tón pleti, smerom doprava',
+    '👨🏽‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku: stredný tón pleti, smerom doprava',
+    '👨🏾‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku: stredne tmavý tón pleti, smerom doprava',
+    '👨🏿‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku: tmavý tón pleti, smerom doprava',
+    '👩🏻‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku: svetlý tón pleti, smerom doprava',
+    '👩🏼‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku: stredne svetlý tón pleti, smerom doprava',
+    '👩🏽‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku: stredný tón pleti, smerom doprava',
+    '👩🏾‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku: stredne tmavý tón pleti, smerom doprava',
+    '👩🏿‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku: tmavý tón pleti, smerom doprava',
+    '🧑🏻‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku: svetlý tón pleti, smerom doprava',
+    '🧑🏼‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku: stredne svetlý tón pleti, smerom doprava',
+    '🧑🏽‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku: stredný tón pleti, smerom doprava',
+    '🧑🏾‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku: stredne tmavý tón pleti, smerom doprava',
+    '🧑🏿‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku: tmavý tón pleti, smerom doprava',
+    '👨🏻‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku: svetlý tón pleti, smerom doprava',
+    '👨🏼‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku: stredne svetlý tón pleti, smerom doprava',
+    '👨🏽‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku: stredný tón pleti, smerom doprava',
+    '👨🏾‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku: stredne tmavý tón pleti, smerom doprava',
+    '👨🏿‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku: tmavý tón pleti, smerom doprava',
+    '👩🏻‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku: svetlý tón pleti, smerom doprava',
+    '👩🏼‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku: stredne svetlý tón pleti, smerom doprava',
+    '👩🏽‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku: stredný tón pleti, smerom doprava',
+    '👩🏾‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku: stredne tmavý tón pleti, smerom doprava',
+    '👩🏿‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku: tmavý tón pleti, smerom doprava',
+    '🏃🏻‍♀‍➡' => 'bežkyňa: svetlý tón pleti, smerom doprava',
+    '🏃🏼‍♀‍➡' => 'bežkyňa: stredne svetlý tón pleti, smerom doprava',
+    '🏃🏽‍♀‍➡' => 'bežkyňa: stredný tón pleti, smerom doprava',
+    '🏃🏾‍♀‍➡' => 'bežkyňa: stredne tmavý tón pleti, smerom doprava',
+    '🏃🏿‍♀‍➡' => 'bežkyňa: tmavý tón pleti, smerom doprava',
+    '🏃🏻‍♂‍➡' => 'bežec: svetlý tón pleti, smerom doprava',
+    '🏃🏼‍♂‍➡' => 'bežec: stredne svetlý tón pleti, smerom doprava',
+    '🏃🏽‍♂‍➡' => 'bežec: stredný tón pleti, smerom doprava',
+    '🏃🏾‍♂‍➡' => 'bežec: stredne tmavý tón pleti, smerom doprava',
+    '🏃🏿‍♂‍➡' => 'bežec: tmavý tón pleti, smerom doprava',
     '🫱🏻‍🫲🏼' => 'potrasenie rukami: svetlý tón pleti, stredne svetlý tón pleti',
     '🫱🏻‍🫲🏽' => 'potrasenie rukami: svetlý tón pleti, stredný tón pleti',
     '🫱🏻‍🫲🏾' => 'potrasenie rukami: svetlý tón pleti, stredne tmavý tón pleti',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'potrasenie rukami: tmavý tón pleti, stredne svetlý tón pleti',
     '🫱🏿‍🫲🏽' => 'potrasenie rukami: tmavý tón pleti, stredný tón pleti',
     '🫱🏿‍🫲🏾' => 'potrasenie rukami: tmavý tón pleti, stredne tmavý tón pleti',
-    '🚶‍♀‍➡' => 'chodkyňa smerom doprava',
-    '🚶‍♂‍➡' => 'chodec smerom doprava',
-    '🧎‍♀‍➡' => 'kľačiaca žena smerom doprava',
-    '🧎‍♂‍➡' => 'kľačiaci muž smerom doprava',
-    '🧑‍🦯‍➡' => 'človek s bielou palicou smerom doprava',
-    '👨‍🦯‍➡' => 'muž s bielou palicou smerom doprava',
-    '👩‍🦯‍➡' => 'žena so slepeckou palicou smerom doprava',
-    '🧑‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku smerom doprava',
-    '👨‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku smerom doprava',
-    '👩‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku smerom doprava',
-    '🧑‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku smerom doprava',
-    '👨‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku smerom doprava',
-    '👩‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku smerom doprava',
-    '🏃‍♀‍➡' => 'bežkyňa smerom doprava',
-    '🏃‍♂‍➡' => 'bežec smerom doprava',
+    '🚶‍♀‍➡' => 'chodkyňa: smerom doprava',
+    '🚶‍♂‍➡' => 'chodec: smerom doprava',
+    '🧎‍♀‍➡' => 'kľačiaca žena: smerom doprava',
+    '🧎‍♂‍➡' => 'kľačiaci muž: smerom doprava',
+    '🧑‍🦯‍➡' => 'človek s bielou palicou: smerom doprava',
+    '👨‍🦯‍➡' => 'muž s bielou palicou: smerom doprava',
+    '👩‍🦯‍➡' => 'žena so slepeckou palicou: smerom doprava',
+    '🧑‍🦼‍➡' => 'človek na elektrickom invalidnom vozíku: smerom doprava',
+    '👨‍🦼‍➡' => 'muž na elektrickom invalidnom vozíku: smerom doprava',
+    '👩‍🦼‍➡' => 'žena na elektrickom invalidnom vozíku: smerom doprava',
+    '🧑‍🦽‍➡' => 'človek na mechanickom invalidnom vozíku: smerom doprava',
+    '👨‍🦽‍➡' => 'muž na mechanickom invalidnom vozíku: smerom doprava',
+    '👩‍🦽‍➡' => 'žena na mechanickom invalidnom vozíku: smerom doprava',
+    '🏃‍♀‍➡' => 'bežkyňa: smerom doprava',
+    '🏃‍♂‍➡' => 'bežec: smerom doprava',
     '👩‍❤‍👨' => 'pár so srdcom: žena, muž',
     '👨‍❤‍👨' => 'pár so srdcom: muž, muž',
     '👩‍❤‍👩' => 'pár so srdcom: žena, žena',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'dospelý: stredný tón pleti, holá hlava',
     '🧑🏾‍🦲' => 'dospelý: stredne tmavý tón pleti, holá hlava',
     '🧑🏿‍🦲' => 'dospelý: tmavý tón pleti, holá hlava',
+    '🧑🏻‍🩰' => 'baletka: svetlý tón pleti',
+    '🧑🏼‍🩰' => 'baletka: stredne svetlý tón pleti',
+    '🧑🏽‍🩰' => 'baletka: stredný tón pleti',
+    '🧑🏾‍🩰' => 'baletka: stredne tmavý tón pleti',
+    '🧑🏿‍🩰' => 'baletka: tmavý tón pleti',
     '🧔🏻‍♂' => 'bradatý muž: svetlý tón pleti',
     '🧔🏼‍♂' => 'bradatý muž: stredne svetlý tón pleti',
     '🧔🏽‍♂' => 'bradatý muž: stredný tón pleti',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'chodkyňa: stredný tón pleti',
     '🚶🏾‍♀' => 'chodkyňa: stredne tmavý tón pleti',
     '🚶🏿‍♀' => 'chodkyňa: tmavý tón pleti',
-    '🚶🏻‍➡' => 'chodiaci človek smerom doprava',
-    '🚶🏼‍➡' => 'chodiaci človek smerom doprava',
-    '🚶🏽‍➡' => 'chodiaci človek smerom doprava',
-    '🚶🏾‍➡' => 'chodiaci človek smerom doprava',
-    '🚶🏿‍➡' => 'chodiaci človek smerom doprava',
+    '🚶🏻‍➡' => 'chodiaci človek: svetlý tón pleti, smerom doprava',
+    '🚶🏼‍➡' => 'chodiaci človek: stredne svetlý tón pleti, smerom doprava',
+    '🚶🏽‍➡' => 'chodiaci človek: stredný tón pleti, smerom doprava',
+    '🚶🏾‍➡' => 'chodiaci človek: stredne tmavý tón pleti, smerom doprava',
+    '🚶🏿‍➡' => 'chodiaci človek: tmavý tón pleti, smerom doprava',
     '🧍🏻‍♂' => 'stojaci muž: svetlý tón pleti',
     '🧍🏼‍♂' => 'stojaci muž: stredne svetlý tón pleti',
     '🧍🏽‍♂' => 'stojaci muž: stredný tón pleti',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'kľačiaca žena: stredný tón pleti',
     '🧎🏾‍♀' => 'kľačiaca žena: stredne tmavý tón pleti',
     '🧎🏿‍♀' => 'kľačiaca žena: tmavý tón pleti',
-    '🧎🏻‍➡' => 'kľačiaci človek smerom doprava',
-    '🧎🏼‍➡' => 'kľačiaci človek smerom doprava',
-    '🧎🏽‍➡' => 'kľačiaci človek smerom doprava',
-    '🧎🏾‍➡' => 'kľačiaci človek smerom doprava',
-    '🧎🏿‍➡' => 'kľačiaci človek smerom doprava',
+    '🧎🏻‍➡' => 'kľačiaci človek: svetlý tón pleti, smerom doprava',
+    '🧎🏼‍➡' => 'kľačiaci človek: stredne svetlý tón pleti, smerom doprava',
+    '🧎🏽‍➡' => 'kľačiaci človek: stredný tón pleti, smerom doprava',
+    '🧎🏾‍➡' => 'kľačiaci človek: stredne tmavý tón pleti, smerom doprava',
+    '🧎🏿‍➡' => 'kľačiaci človek: tmavý tón pleti, smerom doprava',
     '🧑🏻‍🦯' => 'človek s bielou palicou: svetlý tón pleti',
     '🧑🏼‍🦯' => 'človek s bielou palicou: stredne svetlý tón pleti',
     '🧑🏽‍🦯' => 'človek s bielou palicou: stredný tón pleti',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'bežkyňa: stredný tón pleti',
     '🏃🏾‍♀' => 'bežkyňa: stredne tmavý tón pleti',
     '🏃🏿‍♀' => 'bežkyňa: tmavý tón pleti',
-    '🏃🏻‍➡' => 'bežiaci človek smerom doprava',
-    '🏃🏼‍➡' => 'bežiaci človek smerom doprava',
-    '🏃🏽‍➡' => 'bežiaci človek smerom doprava',
-    '🏃🏾‍➡' => 'bežiaci človek smerom doprava',
-    '🏃🏿‍➡' => 'bežiaci človek smerom doprava',
+    '🏃🏻‍➡' => 'bežiaci človek: svetlý tón pleti, smerom doprava',
+    '🏃🏼‍➡' => 'bežiaci človek: stredne svetlý tón pleti, smerom doprava',
+    '🏃🏽‍➡' => 'bežiaci človek: stredný tón pleti, smerom doprava',
+    '🏃🏾‍➡' => 'bežiaci človek: stredne tmavý tón pleti, smerom doprava',
+    '🏃🏿‍➡' => 'bežiaci človek: tmavý tón pleti, smerom doprava',
+    '👯🏻‍♀' => 'ženy so zajačími ušami: svetlý tón pleti',
+    '👯🏼‍♀' => 'ženy so zajačími ušami: stredne svetlý tón pleti',
+    '👯🏽‍♀' => 'ženy so zajačími ušami: stredný tón pleti',
+    '👯🏾‍♀' => 'ženy so zajačími ušami: stredne tmavý tón pleti',
+    '👯🏿‍♀' => 'ženy so zajačími ušami: tmavý tón pleti',
+    '👯🏻‍♂' => 'muži so zajačími ušami: svetlý tón pleti',
+    '👯🏼‍♂' => 'muži so zajačími ušami: stredne svetlý tón pleti',
+    '👯🏽‍♂' => 'muži so zajačími ušami: stredný tón pleti',
+    '👯🏾‍♂' => 'muži so zajačími ušami: stredne tmavý tón pleti',
+    '👯🏿‍♂' => 'muži so zajačími ušami: tmavý tón pleti',
     '🧖🏻‍♂' => 'muž v pare: svetlý tón pleti',
     '🧖🏼‍♂' => 'muž v pare: stredne svetlý tón pleti',
     '🧖🏽‍♂' => 'muž v pare: stredný tón pleti',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'žena robí hviezdu: stredný tón pleti',
     '🤸🏾‍♀' => 'žena robí hviezdu: stredne tmavý tón pleti',
     '🤸🏿‍♀' => 'žena robí hviezdu: tmavý tón pleti',
+    '🤼🏻‍♀' => 'zápasníčky: svetlý tón pleti',
+    '🤼🏼‍♀' => 'zápasníčky: stredne svetlý tón pleti',
+    '🤼🏽‍♀' => 'zápasníčky: stredný tón pleti',
+    '🤼🏾‍♀' => 'zápasníčky: stredne tmavý tón pleti',
+    '🤼🏿‍♀' => 'zápasníčky: tmavý tón pleti',
+    '🤼🏻‍♂' => 'zápasníci: svetlý tón pleti',
+    '🤼🏼‍♂' => 'zápasníci: stredne svetlý tón pleti',
+    '🤼🏽‍♂' => 'zápasníci: stredný tón pleti',
+    '🤼🏾‍♂' => 'zápasníci: stredne tmavý tón pleti',
+    '🤼🏿‍♂' => 'zápasníci: tmavý tón pleti',
     '🤽🏻‍♂' => 'pólista: svetlý tón pleti',
     '🤽🏼‍♂' => 'pólista: stredne svetlý tón pleti',
     '🤽🏽‍♂' => 'pólista: stredný tón pleti',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'žena: kučeravé vlasy',
     '👩‍🦳' => 'žena: sivé vlasy',
     '👩‍🦲' => 'žena: holá hlava',
-    '🚶‍➡' => 'chodiaci človek smerom doprava',
-    '🧎‍➡' => 'kľačiaci človek smerom doprava',
-    '🏃‍➡' => 'bežiaci človek smerom doprava',
+    '🚶‍➡' => 'chodiaci človek: smerom doprava',
+    '🧎‍➡' => 'kľačiaci človek: smerom doprava',
+    '🏃‍➡' => 'bežiaci človek: smerom doprava',
     '👨‍👦' => 'rodina: muž, chlapec',
     '👨‍👧' => 'rodina: muž, dievča',
     '👩‍👦' => 'rodina: žena, chlapec',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'žena na mechanickom invalidnom vozíku',
     '🏃‍♂' => 'bežec',
     '🏃‍♀' => 'bežkyňa',
+    '🧑‍🩰' => 'baletka',
     '👯‍♂' => 'muži so zajačími ušami',
     '👯‍♀' => 'ženy so zajačími ušami',
     '🧖‍♂' => 'muž v pare',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'levitujúci muž v saku: stredný tón pleti',
     '🕴🏾' => 'levitujúci muž v saku: stredne tmavý tón pleti',
     '🕴🏿' => 'levitujúci muž v saku: tmavý tón pleti',
+    '👯🏻' => 'ľudia so zajačími ušami: svetlý tón pleti',
+    '👯🏼' => 'ľudia so zajačími ušami: stredne svetlý tón pleti',
+    '👯🏽' => 'ľudia so zajačími ušami: stredný tón pleti',
+    '👯🏾' => 'ľudia so zajačími ušami: stredne tmavý tón pleti',
+    '👯🏿' => 'ľudia so zajačími ušami: tmavý tón pleti',
     '🧖🏻' => 'človek v pare: svetlý tón pleti',
     '🧖🏼' => 'človek v pare: stredne svetlý tón pleti',
     '🧖🏽' => 'človek v pare: stredný tón pleti',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'človek robí hviezdu: stredný tón pleti',
     '🤸🏾' => 'človek robí hviezdu: stredne tmavý tón pleti',
     '🤸🏿' => 'človek robí hviezdu: tmavý tón pleti',
+    '🤼🏻' => 'zápasiaci ľudia: svetlý tón pleti',
+    '🤼🏼' => 'zápasiaci ľudia: stredne svetlý tón pleti',
+    '🤼🏽' => 'zápasiaci ľudia: stredný tón pleti',
+    '🤼🏾' => 'zápasiaci ľudia: stredne tmavý tón pleti',
+    '🤼🏿' => 'zápasiaci ľudia: tmavý tón pleti',
     '🤽🏻' => 'vodné pólo: svetlý tón pleti',
     '🤽🏼' => 'vodné pólo: stredne svetlý tón pleti',
     '🤽🏽' => 'vodné pólo: stredný tón pleti',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'zástava: Čína',
     '🇨🇴' => 'zástava: Kolumbia',
     '🇨🇵' => 'zástava: Clipperton',
+    '🇨🇶' => 'zástava: Sark',
     '🇨🇷' => 'zástava: Kostarika',
     '🇨🇺' => 'zástava: Kuba',
     '🇨🇻' => 'zástava: Kapverdy',
@@ -2390,13 +2547,6 @@
     '🏽' => 'stredný tón pleti',
     '🏾' => 'stredne tmavý tón pleti',
     '🏿' => 'tmavý tón pleti',
-    '🪉' => 'harfa',
-    '🪏' => 'lopata',
-    '🪾' => 'strom bez listov',
-    '🫆' => 'odtlačok prsta',
-    '🫜' => 'koreňová zelenina',
-    '🫟' => 'machuľa',
-    '🫩' => 'tvár s kruhmi pod očami',
     '😀' => 'škeriaca sa tvár',
     '😃' => 'škeriaca sa tvár s veľkými očami',
     '😄' => 'škeriaca sa tvár s prižmúrenými očami',
@@ -2450,6 +2600,7 @@
     '😪' => 'ospalá tvár',
     '🤤' => 'slintajúca tvár',
     '😴' => 'spiaca tvár',
+    '🫩' => 'tvár s kruhmi pod očami',
     '😷' => 'tvár s rúškom',
     '🤒' => 'tvár s teplomerom',
     '🤕' => 'tvár s obväzom',
@@ -2476,6 +2627,7 @@
     '😯' => 'umlčaná tvár',
     '😲' => 'udivená tvár',
     '😳' => 'zapýrená tvár',
+    '🫪' => 'zdeformovaná tvár',
     '🥺' => 'prosebná tvár',
     '🥹' => 'tvár zadržujúca slzy',
     '😦' => 'zamračená tvár s otvorenými ústami',
@@ -2547,6 +2699,7 @@
     '💋' => 'odtlačok pier',
     '💯' => 'sto bodov',
     '💢' => 'symbol hnevu',
+    '🫯' => 'oblak bitky',
     '💥' => 'zrážka',
     '💫' => 'mám závrat',
     '💦' => 'kvapky potu',
@@ -2670,6 +2823,7 @@
     '🧞' => 'džin',
     '🧟' => 'zombia',
     '🧌' => 'obor',
+    '🫈' => 'chlpaté stvorenie',
     '💆' => 'masáž tváre',
     '💇' => 'strihanie vlasov',
     '🚶' => 'chodiaci človek',
@@ -2713,6 +2867,7 @@
     '🫂' => 'objímajúci sa ľudia',
     '👪' => 'rodina',
     '👣' => 'stopy',
+    '🫆' => 'odtlačok prsta',
     '🦰' => 'ryšavé vlasy',
     '🦱' => 'kučeravé vlasy',
     '🦳' => 'sivé vlasy',
@@ -2812,6 +2967,7 @@
     '🐳' => 'veľryba s gejzírom',
     '🐋' => 'veľryba',
     '🐬' => 'delfín',
+    '🫍' => 'kosatka',
     '🦭' => 'uškatec',
     '🐟' => 'ryba',
     '🐠' => 'tropická ryba',
@@ -2821,6 +2977,11 @@
     '🐚' => 'špirálovitá mušľa',
     '🪸' => 'koral',
     '🪼' => 'medúza',
+    '🦀' => 'krab',
+    '🦞' => 'homár',
+    '🦐' => 'kreveta',
+    '🦑' => 'kalmár',
+    '🦪' => 'ustrica',
     '🐌' => 'slimák',
     '🦋' => 'motýľ',
     '🐛' => 'húsenica',
@@ -2865,6 +3026,7 @@
     '🪹' => 'prázdne hniezdo',
     '🪺' => 'hniezdo s vajcami',
     '🍄' => 'huba',
+    '🪾' => 'strom bez listov',
     '🍇' => 'hrozno',
     '🍈' => 'cukrový melón',
     '🍉' => 'melón',
@@ -2901,6 +3063,7 @@
     '🌰' => 'gaštan',
     '🫚' => 'koreň ďumbiera',
     '🫛' => 'hrachový struk',
+    '🫜' => 'koreňová zelenina',
     '🍞' => 'chlieb',
     '🥐' => 'croissant',
     '🥖' => 'bageta',
@@ -2952,11 +3115,6 @@
     '🥟' => 'knedlička',
     '🥠' => 'sušienka s predpoveďou',
     '🥡' => 'rýchle občerstvenie',
-    '🦀' => 'krab',
-    '🦞' => 'homár',
-    '🦐' => 'kreveta',
-    '🦑' => 'kalmár',
-    '🦪' => 'ustrica',
     '🍦' => 'točená zmrzlina',
     '🍧' => 'mrazená dreň',
     '🍨' => 'zmrzlina',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'zasnežený vrch',
     '⛰' => 'vrch',
+    '🛘' => 'zosuv pôdy',
     '🌋' => 'sopka',
     '🗻' => 'Fudžisan',
     '🏕' => 'stanovanie',
@@ -3367,16 +3526,18 @@
     '🎧' => 'slúchadlá',
     '📻' => 'rádio',
     '🎷' => 'saxofón',
+    '🎺' => 'trúbka',
+    '🪊' => 'trombón',
     '🪗' => 'akordeón',
     '🎸' => 'gitara',
     '🎹' => 'klávesy',
-    '🎺' => 'trúbka',
     '🎻' => 'husle',
     '🪕' => 'bendžo',
     '🥁' => 'bubon',
     '🪘' => 'kongo',
     '🪇' => 'rumbagule',
     '🪈' => 'píšťalka',
+    '🪉' => 'harfa',
     '📱' => 'mobil',
     '📲' => 'mobil so šípkou',
     '☎' => 'telefón',
@@ -3430,8 +3591,9 @@
     '📑' => 'záložky',
     '🔖' => 'záložka',
     '🏷' => 'štítok',
-    '💰' => 'mešec peňazí',
     '🪙' => 'minca',
+    '💰' => 'mešec peňazí',
+    '🪎' => 'truhlica s pokladom',
     '💴' => 'jenová bankovka',
     '💵' => 'dolárová bankovka',
     '💶' => 'eurová bankovka',
@@ -3514,6 +3676,7 @@
     '🧰' => 'kufrík na náradie',
     '🧲' => 'magnet',
     '🪜' => 'rebrík',
+    '🪏' => 'lopata',
     '⚗' => 'krivuľa',
     '🧪' => 'skúmavka',
     '🧫' => 'Petriho miska',
@@ -3697,6 +3860,7 @@
     '✴' => 'osemcípa hviezda',
     '❇' => 'iskra',
     '™' => 'obchodná známka',
+    '🫟' => 'machuľa',
     '🔠' => 'zadávanie veľkých písmen latinky',
     '🔡' => 'zadávanie malých písmen latinky',
     '🔢' => 'zadávanie čísel',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-slack.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-slack.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-slack.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-slack.php	2026-05-20 10:56:49.000000000 +0200
@@ -320,6 +320,7 @@
     '🇨🇳' => ':cn:',
     '🇨🇴' => ':flag-co:',
     '🇨🇵' => ':flag-cp:',
+    '🇨🇶' => ':flag-sark:',
     '🇨🇷' => ':flag-cr:',
     '🇨🇺' => ':flag-cu:',
     '🇨🇻' => ':flag-cv:',
@@ -1758,6 +1759,8 @@
     '🪆' => ':nesting_dolls:',
     '🪇' => ':maracas:',
     '🪈' => ':flute:',
+    '🪉' => ':harp:',
+    '🪏' => ':shovel:',
     '🪐' => ':ringed_planet:',
     '🪑' => ':chair:',
     '🪒' => ':razor:',
@@ -1804,6 +1807,7 @@
     '🪻' => ':hyacinth:',
     '🪼' => ':jellyfish:',
     '🪽' => ':wing:',
+    '🪾' => ':leafless_tree:',
     '🪿' => ':goose:',
     '🫀' => ':anatomical_heart:',
     '🫁' => ':lungs:',
@@ -1811,6 +1815,7 @@
     '🫃' => ':pregnant_man:',
     '🫄' => ':pregnant_person:',
     '🫅' => ':person_with_crown:',
+    '🫆' => ':fingerprint:',
     '🫎' => ':moose:',
     '🫏' => ':donkey:',
     '🫐' => ':blueberries:',
@@ -1825,6 +1830,8 @@
     '🫙' => ':jar:',
     '🫚' => ':ginger_root:',
     '🫛' => ':pea_pod:',
+    '🫜' => ':root_vegetable:',
+    '🫟' => ':splatter:',
     '🫠' => ':melting_face:',
     '🫡' => ':saluting_face:',
     '🫢' => ':face_with_open_eyes_and_hand_over_mouth:',
@@ -1834,6 +1841,7 @@
     '🫦' => ':biting_lip:',
     '🫧' => ':bubbles:',
     '🫨' => ':shaking_face:',
+    '🫩' => ':face_with_bags_under_eyes:',
     '🫰' => ':hand_with_index_finger_and_thumb_crossed:',
     '🫱' => ':rightwards_hand:',
     '🫲' => ':leftwards_hand:',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sl.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'poljub: ženska, ženska, temen ten kože in srednji ten kože',
     '👩🏿‍❤‍💋‍👩🏾' => 'poljub: ženska, ženska, temen ten kože in srednje temen ten kože',
     '👩🏿‍❤‍💋‍👩🏿' => 'poljub: ženska, ženska in temen ten kože',
+    '🧑🏻‍🫯‍🧑🏼' => 'rokoborba: svetel ten kože in srednje svetel ten kože',
+    '🧑🏻‍🫯‍🧑🏽' => 'rokoborba: svetel ten kože in srednji ten kože',
+    '🧑🏻‍🫯‍🧑🏾' => 'rokoborba: svetel ten kože in srednje temen ten kože',
+    '🧑🏻‍🫯‍🧑🏿' => 'rokoborba: svetel ten kože in temen ten kože',
+    '🧑🏼‍🫯‍🧑🏻' => 'rokoborba: srednje svetel ten kože in svetel ten kože',
+    '🧑🏼‍🫯‍🧑🏽' => 'rokoborba: srednje svetel ten kože in srednji ten kože',
+    '🧑🏼‍🫯‍🧑🏾' => 'rokoborba: srednje svetel ten kože in srednje temen ten kože',
+    '🧑🏼‍🫯‍🧑🏿' => 'rokoborba: srednje svetel ten kože in temen ten kože',
+    '🧑🏽‍🫯‍🧑🏻' => 'rokoborba: srednji ten kože in svetel ten kože',
+    '🧑🏽‍🫯‍🧑🏼' => 'rokoborba: srednji ten kože in srednje svetel ten kože',
+    '🧑🏽‍🫯‍🧑🏾' => 'rokoborba: srednji ten kože in srednje temen ten kože',
+    '🧑🏽‍🫯‍🧑🏿' => 'rokoborba: srednji ten kože in temen ten kože',
+    '🧑🏾‍🫯‍🧑🏻' => 'rokoborba: srednje temen ten kože in svetel ten kože',
+    '🧑🏾‍🫯‍🧑🏼' => 'rokoborba: srednje temen ten kože in srednje svetel ten kože',
+    '🧑🏾‍🫯‍🧑🏽' => 'rokoborba: srednje temen ten kože in srednji ten kože',
+    '🧑🏾‍🫯‍🧑🏿' => 'rokoborba: srednje temen ten kože in temen ten kože',
+    '🧑🏿‍🫯‍🧑🏻' => 'rokoborba: temen ten kože in svetel ten kože',
+    '🧑🏿‍🫯‍🧑🏼' => 'rokoborba: temen ten kože in srednje svetel ten kože',
+    '🧑🏿‍🫯‍🧑🏽' => 'rokoborba: temen ten kože in srednji ten kože',
+    '🧑🏿‍🫯‍🧑🏾' => 'rokoborba: temen ten kože in srednje temen ten kože',
     '🧑🏻‍❤‍🧑🏼' => 'par s srčkom: odrasla oseba, odrasla oseba, svetel ten kože in srednje svetel ten kože',
     '🧑🏻‍❤‍🧑🏽' => 'par s srčkom: odrasla oseba, odrasla oseba, svetel ten kože in srednji ten kože',
     '🧑🏻‍❤‍🧑🏾' => 'par s srčkom: odrasla oseba, odrasla oseba, svetel ten kože in srednje temen ten kože',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par s srčkom: odrasla oseba, odrasla oseba, temen ten kože in srednje svetel ten kože',
     '🧑🏿‍❤‍🧑🏽' => 'par s srčkom: odrasla oseba, odrasla oseba, temen ten kože in srednji ten kože',
     '🧑🏿‍❤‍🧑🏾' => 'par s srčkom: odrasla oseba, odrasla oseba, temen ten kože in srednje temen ten kože',
+    '🧑🏻‍🐰‍🧑🏼' => 'žurerski ženski: svetel ten kože in srednje svetel ten kože',
+    '🧑🏻‍🐰‍🧑🏽' => 'žurerski ženski: svetel ten kože in srednji ten kože',
+    '🧑🏻‍🐰‍🧑🏾' => 'žurerski ženski: svetel ten kože in srednje temen ten kože',
+    '🧑🏻‍🐰‍🧑🏿' => 'žurerski ženski: svetel ten kože in temen ten kože',
+    '🧑🏼‍🐰‍🧑🏻' => 'žurerski ženski: srednje svetel ten kože in svetel ten kože',
+    '🧑🏼‍🐰‍🧑🏽' => 'žurerski ženski: srednje svetel ten kože in srednji ten kože',
+    '🧑🏼‍🐰‍🧑🏾' => 'žurerski ženski: srednje svetel ten kože in srednje temen ten kože',
+    '🧑🏼‍🐰‍🧑🏿' => 'žurerski ženski: srednje svetel ten kože in temen ten kože',
+    '🧑🏽‍🐰‍🧑🏻' => 'žurerski ženski: srednji ten kože in svetel ten kože',
+    '🧑🏽‍🐰‍🧑🏼' => 'žurerski ženski: srednji ten kože in srednje svetel ten kože',
+    '🧑🏽‍🐰‍🧑🏾' => 'žurerski ženski: srednji ten kože in srednje temen ten kože',
+    '🧑🏽‍🐰‍🧑🏿' => 'žurerski ženski: srednji ten kože in temen ten kože',
+    '🧑🏾‍🐰‍🧑🏻' => 'žurerski ženski: srednje temen ten kože in svetel ten kože',
+    '🧑🏾‍🐰‍🧑🏼' => 'žurerski ženski: srednje temen ten kože in srednje svetel ten kože',
+    '🧑🏾‍🐰‍🧑🏽' => 'žurerski ženski: srednje temen ten kože in srednji ten kože',
+    '🧑🏾‍🐰‍🧑🏿' => 'žurerski ženski: srednje temen ten kože in temen ten kože',
+    '🧑🏿‍🐰‍🧑🏻' => 'žurerski ženski: temen ten kože in svetel ten kože',
+    '🧑🏿‍🐰‍🧑🏼' => 'žurerski ženski: temen ten kože in srednje svetel ten kože',
+    '🧑🏿‍🐰‍🧑🏽' => 'žurerski ženski: temen ten kože in srednji ten kože',
+    '🧑🏿‍🐰‍🧑🏾' => 'žurerski ženski: temen ten kože in srednje temen ten kože',
+    '👨🏻‍🫯‍👨🏼' => 'moška rokoborba: svetel ten kože in srednje svetel ten kože',
+    '👨🏻‍🫯‍👨🏽' => 'moška rokoborba: svetel ten kože in srednji ten kože',
+    '👨🏻‍🫯‍👨🏾' => 'moška rokoborba: svetel ten kože in srednje temen ten kože',
+    '👨🏻‍🫯‍👨🏿' => 'moška rokoborba: svetel ten kože in temen ten kože',
+    '👨🏼‍🫯‍👨🏻' => 'moška rokoborba: srednje svetel ten kože in svetel ten kože',
+    '👨🏼‍🫯‍👨🏽' => 'moška rokoborba: srednje svetel ten kože in srednji ten kože',
+    '👨🏼‍🫯‍👨🏾' => 'moška rokoborba: srednje svetel ten kože in srednje temen ten kože',
+    '👨🏼‍🫯‍👨🏿' => 'moška rokoborba: srednje svetel ten kože in temen ten kože',
+    '👨🏽‍🫯‍👨🏻' => 'moška rokoborba: srednji ten kože in svetel ten kože',
+    '👨🏽‍🫯‍👨🏼' => 'moška rokoborba: srednji ten kože in srednje svetel ten kože',
+    '👨🏽‍🫯‍👨🏾' => 'moška rokoborba: srednji ten kože in srednje temen ten kože',
+    '👨🏽‍🫯‍👨🏿' => 'moška rokoborba: srednji ten kože in temen ten kože',
+    '👨🏾‍🫯‍👨🏻' => 'moška rokoborba: srednje temen ten kože in svetel ten kože',
+    '👨🏾‍🫯‍👨🏼' => 'moška rokoborba: srednje temen ten kože in srednje svetel ten kože',
+    '👨🏾‍🫯‍👨🏽' => 'moška rokoborba: srednje temen ten kože in srednji ten kože',
+    '👨🏾‍🫯‍👨🏿' => 'moška rokoborba: srednje temen ten kože in temen ten kože',
+    '👨🏿‍🫯‍👨🏻' => 'moška rokoborba: temen ten kože in svetel ten kože',
+    '👨🏿‍🫯‍👨🏼' => 'moška rokoborba: temen ten kože in srednje svetel ten kože',
+    '👨🏿‍🫯‍👨🏽' => 'moška rokoborba: temen ten kože in srednji ten kože',
+    '👨🏿‍🫯‍👨🏾' => 'moška rokoborba: temen ten kože in srednje temen ten kože',
     '👨🏻‍❤‍👨🏻' => 'par s srčkom: moški, moški in svetel ten kože',
     '👨🏻‍❤‍👨🏼' => 'par s srčkom: moški, moški, svetel ten kože in srednje svetel ten kože',
     '👨🏻‍❤‍👨🏽' => 'par s srčkom: moški, moški, svetel ten kože in srednji ten kože',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'par s srčkom: moški, moški, temen ten kože in srednji ten kože',
     '👨🏿‍❤‍👨🏾' => 'par s srčkom: moški, moški, temen ten kože in srednje temen ten kože',
     '👨🏿‍❤‍👨🏿' => 'par s srčkom: moški, moški in temen ten kože',
+    '👨🏻‍🐰‍👨🏼' => 'moška zabava: svetel ten kože in srednje svetel ten kože',
+    '👨🏻‍🐰‍👨🏽' => 'moška zabava: svetel ten kože in srednji ten kože',
+    '👨🏻‍🐰‍👨🏾' => 'moška zabava: svetel ten kože in srednje temen ten kože',
+    '👨🏻‍🐰‍👨🏿' => 'moška zabava: svetel ten kože in temen ten kože',
+    '👨🏼‍🐰‍👨🏻' => 'moška zabava: srednje svetel ten kože in svetel ten kože',
+    '👨🏼‍🐰‍👨🏽' => 'moška zabava: srednje svetel ten kože in srednji ten kože',
+    '👨🏼‍🐰‍👨🏾' => 'moška zabava: srednje svetel ten kože in srednje temen ten kože',
+    '👨🏼‍🐰‍👨🏿' => 'moška zabava: srednje svetel ten kože in temen ten kože',
+    '👨🏽‍🐰‍👨🏻' => 'moška zabava: srednji ten kože in svetel ten kože',
+    '👨🏽‍🐰‍👨🏼' => 'moška zabava: srednji ten kože in srednje svetel ten kože',
+    '👨🏽‍🐰‍👨🏾' => 'moška zabava: srednji ten kože in srednje temen ten kože',
+    '👨🏽‍🐰‍👨🏿' => 'moška zabava: srednji ten kože in temen ten kože',
+    '👨🏾‍🐰‍👨🏻' => 'moška zabava: srednje temen ten kože in svetel ten kože',
+    '👨🏾‍🐰‍👨🏼' => 'moška zabava: srednje temen ten kože in srednje svetel ten kože',
+    '👨🏾‍🐰‍👨🏽' => 'moška zabava: srednje temen ten kože in srednji ten kože',
+    '👨🏾‍🐰‍👨🏿' => 'moška zabava: srednje temen ten kože in temen ten kože',
+    '👨🏿‍🐰‍👨🏻' => 'moška zabava: temen ten kože in svetel ten kože',
+    '👨🏿‍🐰‍👨🏼' => 'moška zabava: temen ten kože in srednje svetel ten kože',
+    '👨🏿‍🐰‍👨🏽' => 'moška zabava: temen ten kože in srednji ten kože',
+    '👨🏿‍🐰‍👨🏾' => 'moška zabava: temen ten kože in srednje temen ten kože',
+    '👩🏻‍🫯‍👩🏼' => 'ženska rokoborba: svetel ten kože in srednje svetel ten kože',
+    '👩🏻‍🫯‍👩🏽' => 'ženska rokoborba: svetel ten kože in srednji ten kože',
+    '👩🏻‍🫯‍👩🏾' => 'ženska rokoborba: svetel ten kože in srednje temen ten kože',
+    '👩🏻‍🫯‍👩🏿' => 'ženska rokoborba: svetel ten kože in temen ten kože',
+    '👩🏼‍🫯‍👩🏻' => 'ženska rokoborba: srednje svetel ten kože in svetel ten kože',
+    '👩🏼‍🫯‍👩🏽' => 'ženska rokoborba: srednje svetel ten kože in srednji ten kože',
+    '👩🏼‍🫯‍👩🏾' => 'ženska rokoborba: srednje svetel ten kože in srednje temen ten kože',
+    '👩🏼‍🫯‍👩🏿' => 'ženska rokoborba: srednje svetel ten kože in temen ten kože',
+    '👩🏽‍🫯‍👩🏻' => 'ženska rokoborba: srednji ten kože in svetel ten kože',
+    '👩🏽‍🫯‍👩🏼' => 'ženska rokoborba: srednji ten kože in srednje svetel ten kože',
+    '👩🏽‍🫯‍👩🏾' => 'ženska rokoborba: srednji ten kože in srednje temen ten kože',
+    '👩🏽‍🫯‍👩🏿' => 'ženska rokoborba: srednji ten kože in temen ten kože',
+    '👩🏾‍🫯‍👩🏻' => 'ženska rokoborba: srednje temen ten kože in svetel ten kože',
+    '👩🏾‍🫯‍👩🏼' => 'ženska rokoborba: srednje temen ten kože in srednje svetel ten kože',
+    '👩🏾‍🫯‍👩🏽' => 'ženska rokoborba: srednje temen ten kože in srednji ten kože',
+    '👩🏾‍🫯‍👩🏿' => 'ženska rokoborba: srednje temen ten kože in temen ten kože',
+    '👩🏿‍🫯‍👩🏻' => 'ženska rokoborba: temen ten kože in svetel ten kože',
+    '👩🏿‍🫯‍👩🏼' => 'ženska rokoborba: temen ten kože in srednje svetel ten kože',
+    '👩🏿‍🫯‍👩🏽' => 'ženska rokoborba: temen ten kože in srednji ten kože',
+    '👩🏿‍🫯‍👩🏾' => 'ženska rokoborba: temen ten kože in srednje temen ten kože',
     '👩🏻‍❤‍👨🏻' => 'par s srčkom: ženska, moški in svetel ten kože',
     '👩🏻‍❤‍👨🏼' => 'par s srčkom: ženska, moški, svetel ten kože in srednje svetel ten kože',
     '👩🏻‍❤‍👨🏽' => 'par s srčkom: ženska, moški, svetel ten kože in srednji ten kože',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'par s srčkom: ženska, ženska, temen ten kože in srednji ten kože',
     '👩🏿‍❤‍👩🏾' => 'par s srčkom: ženska, ženska, temen ten kože in srednje temen ten kože',
     '👩🏿‍❤‍👩🏿' => 'par s srčkom: ženska, ženska in temen ten kože',
+    '👩🏻‍🐰‍👩🏼' => 'ženska zabava: svetel ten kože in srednje svetel ten kože',
+    '👩🏻‍🐰‍👩🏽' => 'ženska zabava: svetel ten kože in srednji ten kože',
+    '👩🏻‍🐰‍👩🏾' => 'ženska zabava: svetel ten kože in srednje temen ten kože',
+    '👩🏻‍🐰‍👩🏿' => 'ženska zabava: svetel ten kože in temen ten kože',
+    '👩🏼‍🐰‍👩🏻' => 'ženska zabava: srednje svetel ten kože in svetel ten kože',
+    '👩🏼‍🐰‍👩🏽' => 'ženska zabava: srednje svetel ten kože in srednji ten kože',
+    '👩🏼‍🐰‍👩🏾' => 'ženska zabava: srednje svetel ten kože in srednje temen ten kože',
+    '👩🏼‍🐰‍👩🏿' => 'ženska zabava: srednje svetel ten kože in temen ten kože',
+    '👩🏽‍🐰‍👩🏻' => 'ženska zabava: srednji ten kože in svetel ten kože',
+    '👩🏽‍🐰‍👩🏼' => 'ženska zabava: srednji ten kože in srednje svetel ten kože',
+    '👩🏽‍🐰‍👩🏾' => 'ženska zabava: srednji ten kože in srednje temen ten kože',
+    '👩🏽‍🐰‍👩🏿' => 'ženska zabava: srednji ten kože in temen ten kože',
+    '👩🏾‍🐰‍👩🏻' => 'ženska zabava: srednje temen ten kože in svetel ten kože',
+    '👩🏾‍🐰‍👩🏼' => 'ženska zabava: srednje temen ten kože in srednje svetel ten kože',
+    '👩🏾‍🐰‍👩🏽' => 'ženska zabava: srednje temen ten kože in srednji ten kože',
+    '👩🏾‍🐰‍👩🏿' => 'ženska zabava: srednje temen ten kože in temen ten kože',
+    '👩🏿‍🐰‍👩🏻' => 'ženska zabava: temen ten kože in svetel ten kože',
+    '👩🏿‍🐰‍👩🏼' => 'ženska zabava: temen ten kože in srednje svetel ten kože',
+    '👩🏿‍🐰‍👩🏽' => 'ženska zabava: temen ten kože in srednji ten kože',
+    '👩🏿‍🐰‍👩🏾' => 'ženska zabava: temen ten kože in srednje temen ten kože',
     '🧑🏻‍🤝‍🧑🏻' => 'osebi se držita za roke: svetel ten kože',
     '🧑🏻‍🤝‍🧑🏼' => 'osebi se držita za roke: svetel ten kože in srednje svetel ten kože',
     '🧑🏻‍🤝‍🧑🏽' => 'osebi se držita za roke: svetel ten kože in srednji ten kože',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'zastava: Škotska',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'zastava: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'družina: odrasel, odrasel, otrok, otrok',
-    '🚶🏻‍♀‍➡' => 'ženska, ki hodi, obrnjen v desno',
-    '🚶🏼‍♀‍➡' => 'ženska, ki hodi, obrnjen v desno',
-    '🚶🏽‍♀‍➡' => 'ženska, ki hodi, obrnjen v desno',
-    '🚶🏾‍♀‍➡' => 'ženska, ki hodi, obrnjen v desno',
-    '🚶🏿‍♀‍➡' => 'ženska, ki hodi, obrnjen v desno',
-    '🚶🏻‍♂‍➡' => 'moški, ki hodi, obrnjen v desno',
-    '🚶🏼‍♂‍➡' => 'moški, ki hodi, obrnjen v desno',
-    '🚶🏽‍♂‍➡' => 'moški, ki hodi, obrnjen v desno',
-    '🚶🏾‍♂‍➡' => 'moški, ki hodi, obrnjen v desno',
-    '🚶🏿‍♂‍➡' => 'moški, ki hodi, obrnjen v desno',
-    '🧎🏻‍♀‍➡' => 'klečeča ženska, obrnjen v desno',
-    '🧎🏼‍♀‍➡' => 'klečeča ženska, obrnjen v desno',
-    '🧎🏽‍♀‍➡' => 'klečeča ženska, obrnjen v desno',
-    '🧎🏾‍♀‍➡' => 'klečeča ženska, obrnjen v desno',
-    '🧎🏿‍♀‍➡' => 'klečeča ženska, obrnjen v desno',
-    '🧎🏻‍♂‍➡' => 'klečeč moški, obrnjen v desno',
-    '🧎🏼‍♂‍➡' => 'klečeč moški, obrnjen v desno',
-    '🧎🏽‍♂‍➡' => 'klečeč moški, obrnjen v desno',
-    '🧎🏾‍♂‍➡' => 'klečeč moški, obrnjen v desno',
-    '🧎🏿‍♂‍➡' => 'klečeč moški, obrnjen v desno',
-    '🧑🏻‍🦯‍➡' => 'oseba s palico za slepe, obrnjen v desno',
-    '🧑🏼‍🦯‍➡' => 'oseba s palico za slepe, obrnjen v desno',
-    '🧑🏽‍🦯‍➡' => 'oseba s palico za slepe, obrnjen v desno',
-    '🧑🏾‍🦯‍➡' => 'oseba s palico za slepe, obrnjen v desno',
-    '🧑🏿‍🦯‍➡' => 'oseba s palico za slepe, obrnjen v desno',
-    '👨🏻‍🦯‍➡' => 'moški s palico za slepe, obrnjen v desno',
-    '👨🏼‍🦯‍➡' => 'moški s palico za slepe, obrnjen v desno',
-    '👨🏽‍🦯‍➡' => 'moški s palico za slepe, obrnjen v desno',
-    '👨🏾‍🦯‍➡' => 'moški s palico za slepe, obrnjen v desno',
-    '👨🏿‍🦯‍➡' => 'moški s palico za slepe, obrnjen v desno',
-    '👩🏻‍🦯‍➡' => 'ženska s palico za slepe, obrnjen v desno',
-    '👩🏼‍🦯‍➡' => 'ženska s palico za slepe, obrnjen v desno',
-    '👩🏽‍🦯‍➡' => 'ženska s palico za slepe, obrnjen v desno',
-    '👩🏾‍🦯‍➡' => 'ženska s palico za slepe, obrnjen v desno',
-    '👩🏿‍🦯‍➡' => 'ženska s palico za slepe, obrnjen v desno',
-    '🧑🏻‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '🧑🏼‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '🧑🏽‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '🧑🏾‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '🧑🏿‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👨🏻‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👨🏼‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👨🏽‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👨🏾‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👨🏿‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👩🏻‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👩🏼‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👩🏽‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👩🏾‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👩🏿‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '🧑🏻‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku, obrnjen v desno',
-    '🧑🏼‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku, obrnjen v desno',
-    '🧑🏽‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku, obrnjen v desno',
-    '🧑🏾‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku, obrnjen v desno',
-    '🧑🏿‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku, obrnjen v desno',
-    '👨🏻‍🦽‍➡' => 'moški na ročnem invalidskem vozičku, obrnjen v desno',
-    '👨🏼‍🦽‍➡' => 'moški na ročnem invalidskem vozičku, obrnjen v desno',
-    '👨🏽‍🦽‍➡' => 'moški na ročnem invalidskem vozičku, obrnjen v desno',
-    '👨🏾‍🦽‍➡' => 'moški na ročnem invalidskem vozičku, obrnjen v desno',
-    '👨🏿‍🦽‍➡' => 'moški na ročnem invalidskem vozičku, obrnjen v desno',
-    '👩🏻‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku, obrnjen v desno',
-    '👩🏼‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku, obrnjen v desno',
-    '👩🏽‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku, obrnjen v desno',
-    '👩🏾‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku, obrnjen v desno',
-    '👩🏿‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku, obrnjen v desno',
-    '🏃🏻‍♀‍➡' => 'ženska, ki teče, obrnjen v desno',
-    '🏃🏼‍♀‍➡' => 'ženska, ki teče, obrnjen v desno',
-    '🏃🏽‍♀‍➡' => 'ženska, ki teče, obrnjen v desno',
-    '🏃🏾‍♀‍➡' => 'ženska, ki teče, obrnjen v desno',
-    '🏃🏿‍♀‍➡' => 'ženska, ki teče, obrnjen v desno',
-    '🏃🏻‍♂‍➡' => 'moški, ki teče, obrnjen v desno',
-    '🏃🏼‍♂‍➡' => 'moški, ki teče, obrnjen v desno',
-    '🏃🏽‍♂‍➡' => 'moški, ki teče, obrnjen v desno',
-    '🏃🏾‍♂‍➡' => 'moški, ki teče, obrnjen v desno',
-    '🏃🏿‍♂‍➡' => 'moški, ki teče, obrnjen v desno',
+    '🚶🏻‍♀‍➡' => 'ženska, ki hodi: svetel ten kože in , obrnjen v desno',
+    '🚶🏼‍♀‍➡' => 'ženska, ki hodi: srednje svetel ten kože in , obrnjen v desno',
+    '🚶🏽‍♀‍➡' => 'ženska, ki hodi: srednji ten kože in , obrnjen v desno',
+    '🚶🏾‍♀‍➡' => 'ženska, ki hodi: srednje temen ten kože in , obrnjen v desno',
+    '🚶🏿‍♀‍➡' => 'ženska, ki hodi: temen ten kože in , obrnjen v desno',
+    '🚶🏻‍♂‍➡' => 'moški, ki hodi: svetel ten kože in , obrnjen v desno',
+    '🚶🏼‍♂‍➡' => 'moški, ki hodi: srednje svetel ten kože in , obrnjen v desno',
+    '🚶🏽‍♂‍➡' => 'moški, ki hodi: srednji ten kože in , obrnjen v desno',
+    '🚶🏾‍♂‍➡' => 'moški, ki hodi: srednje temen ten kože in , obrnjen v desno',
+    '🚶🏿‍♂‍➡' => 'moški, ki hodi: temen ten kože in , obrnjen v desno',
+    '🧎🏻‍♀‍➡' => 'klečeča ženska: svetel ten kože in , obrnjen v desno',
+    '🧎🏼‍♀‍➡' => 'klečeča ženska: srednje svetel ten kože in , obrnjen v desno',
+    '🧎🏽‍♀‍➡' => 'klečeča ženska: srednji ten kože in , obrnjen v desno',
+    '🧎🏾‍♀‍➡' => 'klečeča ženska: srednje temen ten kože in , obrnjen v desno',
+    '🧎🏿‍♀‍➡' => 'klečeča ženska: temen ten kože in , obrnjen v desno',
+    '🧎🏻‍♂‍➡' => 'klečeč moški: svetel ten kože in , obrnjen v desno',
+    '🧎🏼‍♂‍➡' => 'klečeč moški: srednje svetel ten kože in , obrnjen v desno',
+    '🧎🏽‍♂‍➡' => 'klečeč moški: srednji ten kože in , obrnjen v desno',
+    '🧎🏾‍♂‍➡' => 'klečeč moški: srednje temen ten kože in , obrnjen v desno',
+    '🧎🏿‍♂‍➡' => 'klečeč moški: temen ten kože in , obrnjen v desno',
+    '🧑🏻‍🦯‍➡' => 'oseba s palico za slepe: svetel ten kože in , obrnjen v desno',
+    '🧑🏼‍🦯‍➡' => 'oseba s palico za slepe: srednje svetel ten kože in , obrnjen v desno',
+    '🧑🏽‍🦯‍➡' => 'oseba s palico za slepe: srednji ten kože in , obrnjen v desno',
+    '🧑🏾‍🦯‍➡' => 'oseba s palico za slepe: srednje temen ten kože in , obrnjen v desno',
+    '🧑🏿‍🦯‍➡' => 'oseba s palico za slepe: temen ten kože in , obrnjen v desno',
+    '👨🏻‍🦯‍➡' => 'moški s palico za slepe: svetel ten kože in , obrnjen v desno',
+    '👨🏼‍🦯‍➡' => 'moški s palico za slepe: srednje svetel ten kože in , obrnjen v desno',
+    '👨🏽‍🦯‍➡' => 'moški s palico za slepe: srednji ten kože in , obrnjen v desno',
+    '👨🏾‍🦯‍➡' => 'moški s palico za slepe: srednje temen ten kože in , obrnjen v desno',
+    '👨🏿‍🦯‍➡' => 'moški s palico za slepe: temen ten kože in , obrnjen v desno',
+    '👩🏻‍🦯‍➡' => 'ženska s palico za slepe: svetel ten kože in , obrnjen v desno',
+    '👩🏼‍🦯‍➡' => 'ženska s palico za slepe: srednje svetel ten kože in , obrnjen v desno',
+    '👩🏽‍🦯‍➡' => 'ženska s palico za slepe: srednji ten kože in , obrnjen v desno',
+    '👩🏾‍🦯‍➡' => 'ženska s palico za slepe: srednje temen ten kože in , obrnjen v desno',
+    '👩🏿‍🦯‍➡' => 'ženska s palico za slepe: temen ten kože in , obrnjen v desno',
+    '🧑🏻‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku: svetel ten kože in , obrnjen v desno',
+    '🧑🏼‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku: srednje svetel ten kože in , obrnjen v desno',
+    '🧑🏽‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku: srednji ten kože in , obrnjen v desno',
+    '🧑🏾‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku: srednje temen ten kože in , obrnjen v desno',
+    '🧑🏿‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku: temen ten kože in , obrnjen v desno',
+    '👨🏻‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku: svetel ten kože in , obrnjen v desno',
+    '👨🏼‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku: srednje svetel ten kože in , obrnjen v desno',
+    '👨🏽‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku: srednji ten kože in , obrnjen v desno',
+    '👨🏾‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku: srednje temen ten kože in , obrnjen v desno',
+    '👨🏿‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku: temen ten kože in , obrnjen v desno',
+    '👩🏻‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku: svetel ten kože in , obrnjen v desno',
+    '👩🏼‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku: srednje svetel ten kože in , obrnjen v desno',
+    '👩🏽‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku: srednji ten kože in , obrnjen v desno',
+    '👩🏾‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku: srednje temen ten kože in , obrnjen v desno',
+    '👩🏿‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku: temen ten kože in , obrnjen v desno',
+    '🧑🏻‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku: svetel ten kože in , obrnjen v desno',
+    '🧑🏼‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku: srednje svetel ten kože in , obrnjen v desno',
+    '🧑🏽‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku: srednji ten kože in , obrnjen v desno',
+    '🧑🏾‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku: srednje temen ten kože in , obrnjen v desno',
+    '🧑🏿‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku: temen ten kože in , obrnjen v desno',
+    '👨🏻‍🦽‍➡' => 'moški na ročnem invalidskem vozičku: svetel ten kože in , obrnjen v desno',
+    '👨🏼‍🦽‍➡' => 'moški na ročnem invalidskem vozičku: srednje svetel ten kože in , obrnjen v desno',
+    '👨🏽‍🦽‍➡' => 'moški na ročnem invalidskem vozičku: srednji ten kože in , obrnjen v desno',
+    '👨🏾‍🦽‍➡' => 'moški na ročnem invalidskem vozičku: srednje temen ten kože in , obrnjen v desno',
+    '👨🏿‍🦽‍➡' => 'moški na ročnem invalidskem vozičku: temen ten kože in , obrnjen v desno',
+    '👩🏻‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku: svetel ten kože in , obrnjen v desno',
+    '👩🏼‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku: srednje svetel ten kože in , obrnjen v desno',
+    '👩🏽‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku: srednji ten kože in , obrnjen v desno',
+    '👩🏾‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku: srednje temen ten kože in , obrnjen v desno',
+    '👩🏿‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku: temen ten kože in , obrnjen v desno',
+    '🏃🏻‍♀‍➡' => 'ženska, ki teče: svetel ten kože in , obrnjen v desno',
+    '🏃🏼‍♀‍➡' => 'ženska, ki teče: srednje svetel ten kože in , obrnjen v desno',
+    '🏃🏽‍♀‍➡' => 'ženska, ki teče: srednji ten kože in , obrnjen v desno',
+    '🏃🏾‍♀‍➡' => 'ženska, ki teče: srednje temen ten kože in , obrnjen v desno',
+    '🏃🏿‍♀‍➡' => 'ženska, ki teče: temen ten kože in , obrnjen v desno',
+    '🏃🏻‍♂‍➡' => 'moški, ki teče: svetel ten kože in , obrnjen v desno',
+    '🏃🏼‍♂‍➡' => 'moški, ki teče: srednje svetel ten kože in , obrnjen v desno',
+    '🏃🏽‍♂‍➡' => 'moški, ki teče: srednji ten kože in , obrnjen v desno',
+    '🏃🏾‍♂‍➡' => 'moški, ki teče: srednje temen ten kože in , obrnjen v desno',
+    '🏃🏿‍♂‍➡' => 'moški, ki teče: temen ten kože in , obrnjen v desno',
     '🫱🏻‍🫲🏼' => 'rokovanje: svetel ten kože in srednje svetel ten kože',
     '🫱🏻‍🫲🏽' => 'rokovanje: svetel ten kože in srednji ten kože',
     '🫱🏻‍🫲🏾' => 'rokovanje: svetel ten kože in srednje temen ten kože',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'rokovanje: temen ten kože in srednje svetel ten kože',
     '🫱🏿‍🫲🏽' => 'rokovanje: temen ten kože in srednji ten kože',
     '🫱🏿‍🫲🏾' => 'rokovanje: temen ten kože in srednje temen ten kože',
-    '🚶‍♀‍➡' => 'ženska, ki hodi, obrnjen v desno',
-    '🚶‍♂‍➡' => 'moški, ki hodi, obrnjen v desno',
-    '🧎‍♀‍➡' => 'klečeča ženska, obrnjen v desno',
-    '🧎‍♂‍➡' => 'klečeč moški, obrnjen v desno',
-    '🧑‍🦯‍➡' => 'oseba s palico za slepe, obrnjen v desno',
-    '👨‍🦯‍➡' => 'moški s palico za slepe, obrnjen v desno',
-    '👩‍🦯‍➡' => 'ženska s palico za slepe, obrnjen v desno',
-    '🧑‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👨‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '👩‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku, obrnjen v desno',
-    '🧑‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku, obrnjen v desno',
-    '👨‍🦽‍➡' => 'moški na ročnem invalidskem vozičku, obrnjen v desno',
-    '👩‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku, obrnjen v desno',
-    '🏃‍♀‍➡' => 'ženska, ki teče, obrnjen v desno',
-    '🏃‍♂‍➡' => 'moški, ki teče, obrnjen v desno',
+    '🚶‍♀‍➡' => 'ženska, ki hodi: , obrnjen v desno',
+    '🚶‍♂‍➡' => 'moški, ki hodi: , obrnjen v desno',
+    '🧎‍♀‍➡' => 'klečeča ženska: , obrnjen v desno',
+    '🧎‍♂‍➡' => 'klečeč moški: , obrnjen v desno',
+    '🧑‍🦯‍➡' => 'oseba s palico za slepe: , obrnjen v desno',
+    '👨‍🦯‍➡' => 'moški s palico za slepe: , obrnjen v desno',
+    '👩‍🦯‍➡' => 'ženska s palico za slepe: , obrnjen v desno',
+    '🧑‍🦼‍➡' => 'oseba na motoriziranem invalidskem vozičku: , obrnjen v desno',
+    '👨‍🦼‍➡' => 'moški na motoriziranem invalidskem vozičku: , obrnjen v desno',
+    '👩‍🦼‍➡' => 'ženska na motoriziranem invalidskem vozičku: , obrnjen v desno',
+    '🧑‍🦽‍➡' => 'oseba na ročnem invalidskem vozičku: , obrnjen v desno',
+    '👨‍🦽‍➡' => 'moški na ročnem invalidskem vozičku: , obrnjen v desno',
+    '👩‍🦽‍➡' => 'ženska na ročnem invalidskem vozičku: , obrnjen v desno',
+    '🏃‍♀‍➡' => 'ženska, ki teče: , obrnjen v desno',
+    '🏃‍♂‍➡' => 'moški, ki teče: , obrnjen v desno',
     '👩‍❤‍👨' => 'par s srčkom: ženska in moški',
     '👨‍❤‍👨' => 'par s srčkom: moški in moški',
     '👩‍❤‍👩' => 'par s srčkom: ženska in ženska',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'odrasla oseba: srednji ten kože in plešast',
     '🧑🏾‍🦲' => 'odrasla oseba: srednje temen ten kože in plešast',
     '🧑🏿‍🦲' => 'odrasla oseba: temen ten kože in plešast',
+    '🧑🏻‍🩰' => 'baletka: svetel ten kože',
+    '🧑🏼‍🩰' => 'baletka: srednje svetel ten kože',
+    '🧑🏽‍🩰' => 'baletka: srednji ten kože',
+    '🧑🏾‍🩰' => 'baletka: srednje temen ten kože',
+    '🧑🏿‍🩰' => 'baletka: temen ten kože',
     '🧔🏻‍♂' => 'moški: svetel ten kože in brada',
     '🧔🏼‍♂' => 'moški: srednje svetel ten kože in brada',
     '🧔🏽‍♂' => 'moški: srednji ten kože in brada',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'ženska, ki hodi: srednji ten kože',
     '🚶🏾‍♀' => 'ženska, ki hodi: srednje temen ten kože',
     '🚶🏿‍♀' => 'ženska, ki hodi: temen ten kože',
-    '🚶🏻‍➡' => 'pešec, obrnjen v desno',
-    '🚶🏼‍➡' => 'pešec, obrnjen v desno',
-    '🚶🏽‍➡' => 'pešec, obrnjen v desno',
-    '🚶🏾‍➡' => 'pešec, obrnjen v desno',
-    '🚶🏿‍➡' => 'pešec, obrnjen v desno',
+    '🚶🏻‍➡' => 'pešec: svetel ten kože in , obrnjen v desno',
+    '🚶🏼‍➡' => 'pešec: srednje svetel ten kože in , obrnjen v desno',
+    '🚶🏽‍➡' => 'pešec: srednji ten kože in , obrnjen v desno',
+    '🚶🏾‍➡' => 'pešec: srednje temen ten kože in , obrnjen v desno',
+    '🚶🏿‍➡' => 'pešec: temen ten kože in , obrnjen v desno',
     '🧍🏻‍♂' => 'stoječ moški: svetel ten kože',
     '🧍🏼‍♂' => 'stoječ moški: srednje svetel ten kože',
     '🧍🏽‍♂' => 'stoječ moški: srednji ten kože',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'klečeča ženska: srednji ten kože',
     '🧎🏾‍♀' => 'klečeča ženska: srednje temen ten kože',
     '🧎🏿‍♀' => 'klečeča ženska: temen ten kože',
-    '🧎🏻‍➡' => 'klečeča oseba, obrnjen v desno',
-    '🧎🏼‍➡' => 'klečeča oseba, obrnjen v desno',
-    '🧎🏽‍➡' => 'klečeča oseba, obrnjen v desno',
-    '🧎🏾‍➡' => 'klečeča oseba, obrnjen v desno',
-    '🧎🏿‍➡' => 'klečeča oseba, obrnjen v desno',
+    '🧎🏻‍➡' => 'klečeča oseba: svetel ten kože in , obrnjen v desno',
+    '🧎🏼‍➡' => 'klečeča oseba: srednje svetel ten kože in , obrnjen v desno',
+    '🧎🏽‍➡' => 'klečeča oseba: srednji ten kože in , obrnjen v desno',
+    '🧎🏾‍➡' => 'klečeča oseba: srednje temen ten kože in , obrnjen v desno',
+    '🧎🏿‍➡' => 'klečeča oseba: temen ten kože in , obrnjen v desno',
     '🧑🏻‍🦯' => 'oseba s palico za slepe: svetel ten kože',
     '🧑🏼‍🦯' => 'oseba s palico za slepe: srednje svetel ten kože',
     '🧑🏽‍🦯' => 'oseba s palico za slepe: srednji ten kože',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ženska, ki teče: srednji ten kože',
     '🏃🏾‍♀' => 'ženska, ki teče: srednje temen ten kože',
     '🏃🏿‍♀' => 'ženska, ki teče: temen ten kože',
-    '🏃🏻‍➡' => 'tekač, obrnjen v desno',
-    '🏃🏼‍➡' => 'tekač, obrnjen v desno',
-    '🏃🏽‍➡' => 'tekač, obrnjen v desno',
-    '🏃🏾‍➡' => 'tekač, obrnjen v desno',
-    '🏃🏿‍➡' => 'tekač, obrnjen v desno',
+    '🏃🏻‍➡' => 'tekač: svetel ten kože in , obrnjen v desno',
+    '🏃🏼‍➡' => 'tekač: srednje svetel ten kože in , obrnjen v desno',
+    '🏃🏽‍➡' => 'tekač: srednji ten kože in , obrnjen v desno',
+    '🏃🏾‍➡' => 'tekač: srednje temen ten kože in , obrnjen v desno',
+    '🏃🏿‍➡' => 'tekač: temen ten kože in , obrnjen v desno',
+    '👯🏻‍♀' => 'ženska zabava: svetel ten kože',
+    '👯🏼‍♀' => 'ženska zabava: srednje svetel ten kože',
+    '👯🏽‍♀' => 'ženska zabava: srednji ten kože',
+    '👯🏾‍♀' => 'ženska zabava: srednje temen ten kože',
+    '👯🏿‍♀' => 'ženska zabava: temen ten kože',
+    '👯🏻‍♂' => 'moška zabava: svetel ten kože',
+    '👯🏼‍♂' => 'moška zabava: srednje svetel ten kože',
+    '👯🏽‍♂' => 'moška zabava: srednji ten kože',
+    '👯🏾‍♂' => 'moška zabava: srednje temen ten kože',
+    '👯🏿‍♂' => 'moška zabava: temen ten kože',
     '🧖🏻‍♂' => 'moški v parni savni: svetel ten kože',
     '🧖🏼‍♂' => 'moški v parni savni: srednje svetel ten kože',
     '🧖🏽‍♂' => 'moški v parni savni: srednji ten kože',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'ženska, ki dela premet vstran: srednji ten kože',
     '🤸🏾‍♀' => 'ženska, ki dela premet vstran: srednje temen ten kože',
     '🤸🏿‍♀' => 'ženska, ki dela premet vstran: temen ten kože',
+    '🤼🏻‍♀' => 'ženska rokoborba: svetel ten kože',
+    '🤼🏼‍♀' => 'ženska rokoborba: srednje svetel ten kože',
+    '🤼🏽‍♀' => 'ženska rokoborba: srednji ten kože',
+    '🤼🏾‍♀' => 'ženska rokoborba: srednje temen ten kože',
+    '🤼🏿‍♀' => 'ženska rokoborba: temen ten kože',
+    '🤼🏻‍♂' => 'moška rokoborba: svetel ten kože',
+    '🤼🏼‍♂' => 'moška rokoborba: srednje svetel ten kože',
+    '🤼🏽‍♂' => 'moška rokoborba: srednji ten kože',
+    '🤼🏾‍♂' => 'moška rokoborba: srednje temen ten kože',
+    '🤼🏿‍♂' => 'moška rokoborba: temen ten kože',
     '🤽🏻‍♂' => 'moški vaterpolo: svetel ten kože',
     '🤽🏼‍♂' => 'moški vaterpolo: srednje svetel ten kože',
     '🤽🏽‍♂' => 'moški vaterpolo: srednji ten kože',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ženska: kodrasti lasje',
     '👩‍🦳' => 'ženska: sivi lasje',
     '👩‍🦲' => 'ženska: plešast',
-    '🚶‍➡' => 'pešec, obrnjen v desno',
-    '🧎‍➡' => 'klečeča oseba, obrnjen v desno',
-    '🏃‍➡' => 'tekač, obrnjen v desno',
+    '🚶‍➡' => 'pešec: , obrnjen v desno',
+    '🧎‍➡' => 'klečeča oseba: , obrnjen v desno',
+    '🏃‍➡' => 'tekač: , obrnjen v desno',
     '👨‍👦' => 'družina: moški in fant',
     '👨‍👧' => 'družina: moški in dekle',
     '👩‍👦' => 'družina: ženska in fant',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ženska na ročnem invalidskem vozičku',
     '🏃‍♂' => 'moški, ki teče',
     '🏃‍♀' => 'ženska, ki teče',
+    '🧑‍🩰' => 'baletka',
     '👯‍♂' => 'moška zabava',
     '👯‍♀' => 'ženska zabava',
     '🧖‍♂' => 'moški v parni savni',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'moški v poslovni obleki, ki lebdi: srednji ten kože',
     '🕴🏾' => 'moški v poslovni obleki, ki lebdi: srednje temen ten kože',
     '🕴🏿' => 'moški v poslovni obleki, ki lebdi: temen ten kože',
+    '👯🏻' => 'žurerski ženski: svetel ten kože',
+    '👯🏼' => 'žurerski ženski: srednje svetel ten kože',
+    '👯🏽' => 'žurerski ženski: srednji ten kože',
+    '👯🏾' => 'žurerski ženski: srednje temen ten kože',
+    '👯🏿' => 'žurerski ženski: temen ten kože',
     '🧖🏻' => 'oseba v parni savni: svetel ten kože',
     '🧖🏼' => 'oseba v parni savni: srednje svetel ten kože',
     '🧖🏽' => 'oseba v parni savni: srednji ten kože',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'oseba izvaja kolo: srednji ten kože',
     '🤸🏾' => 'oseba izvaja kolo: srednje temen ten kože',
     '🤸🏿' => 'oseba izvaja kolo: temen ten kože',
+    '🤼🏻' => 'rokoborba: svetel ten kože',
+    '🤼🏼' => 'rokoborba: srednje svetel ten kože',
+    '🤼🏽' => 'rokoborba: srednji ten kože',
+    '🤼🏾' => 'rokoborba: srednje temen ten kože',
+    '🤼🏿' => 'rokoborba: temen ten kože',
     '🤽🏻' => 'vaterpolo: svetel ten kože',
     '🤽🏼' => 'vaterpolo: srednje svetel ten kože',
     '🤽🏽' => 'vaterpolo: srednji ten kože',
@@ -2141,7 +2297,7 @@
     '🇦🇹' => 'zastava: Avstrija',
     '🇦🇺' => 'zastava: Avstralija',
     '🇦🇼' => 'zastava: Aruba',
-    '🇦🇽' => 'zastava: Ålandski otoki',
+    '🇦🇽' => 'zastava: Alandski otoki',
     '🇦🇿' => 'zastava: Azerbajdžan',
     '🇧🇦' => 'zastava: Bosna in Hercegovina',
     '🇧🇧' => 'zastava: Barbados',
@@ -2152,7 +2308,7 @@
     '🇧🇭' => 'zastava: Bahrajn',
     '🇧🇮' => 'zastava: Burundi',
     '🇧🇯' => 'zastava: Benin',
-    '🇧🇱' => 'zastava: Saint Barthélemy',
+    '🇧🇱' => 'zastava: Sveti Bartolomej',
     '🇧🇲' => 'zastava: Bermudi',
     '🇧🇳' => 'zastava: Brunej',
     '🇧🇴' => 'zastava: Bolivija',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'zastava: Kitajska',
     '🇨🇴' => 'zastava: Kolumbija',
     '🇨🇵' => 'zastava: Otok Clipperton',
+    '🇨🇶' => 'zastava: Sark',
     '🇨🇷' => 'zastava: Kostarika',
     '🇨🇺' => 'zastava: Kuba',
     '🇨🇻' => 'zastava: Zelenortski otoki',
@@ -2217,12 +2374,12 @@
     '🇬🇱' => 'zastava: Grenlandija',
     '🇬🇲' => 'zastava: Gambija',
     '🇬🇳' => 'zastava: Gvineja',
-    '🇬🇵' => 'zastava: Guadeloupe',
+    '🇬🇵' => 'zastava: Gvadelup',
     '🇬🇶' => 'zastava: Ekvatorialna Gvineja',
     '🇬🇷' => 'zastava: Grčija',
     '🇬🇸' => 'zastava: Južna Georgia in Južni Sandwichevi otoki',
     '🇬🇹' => 'zastava: Gvatemala',
-    '🇬🇺' => 'zastava: Guam',
+    '🇬🇺' => 'zastava: Gvam',
     '🇬🇼' => 'zastava: Gvineja Bissau',
     '🇬🇾' => 'zastava: Gvajana',
     '🇭🇰' => 'zastava: Posebno upravno območje Ljudske republike Kitajske Hongkong',
@@ -2251,15 +2408,15 @@
     '🇰🇭' => 'zastava: Kambodža',
     '🇰🇮' => 'zastava: Kiribati',
     '🇰🇲' => 'zastava: Komori',
-    '🇰🇳' => 'zastava: Saint Kitts in Nevis',
+    '🇰🇳' => 'zastava: Sveti Krištof in Nevis',
     '🇰🇵' => 'zastava: Severna Koreja',
     '🇰🇷' => 'zastava: Južna Koreja',
     '🇰🇼' => 'zastava: Kuvajt',
-    '🇰🇾' => 'zastava: Kajmanski otoki',
+    '🇰🇾' => 'zastava: Kajmanji otoki',
     '🇰🇿' => 'zastava: Kazahstan',
     '🇱🇦' => 'zastava: Laos',
     '🇱🇧' => 'zastava: Libanon',
-    '🇱🇨' => 'zastava: Saint Lucia',
+    '🇱🇨' => 'zastava: Sveta Lucija',
     '🇱🇮' => 'zastava: Lihtenštajn',
     '🇱🇰' => 'zastava: Šrilanka',
     '🇱🇷' => 'zastava: Liberija',
@@ -2272,20 +2429,20 @@
     '🇲🇨' => 'zastava: Monako',
     '🇲🇩' => 'zastava: Moldavija',
     '🇲🇪' => 'zastava: Črna gora',
-    '🇲🇫' => 'zastava: Saint Martin',
+    '🇲🇫' => 'zastava: Francoski Sveti Martin',
     '🇲🇬' => 'zastava: Madagaskar',
     '🇲🇭' => 'zastava: Marshallovi otoki',
     '🇲🇰' => 'zastava: Severna Makedonija',
     '🇲🇱' => 'zastava: Mali',
     '🇲🇲' => 'zastava: Mjanmar (Burma)',
     '🇲🇳' => 'zastava: Mongolija',
-    '🇲🇴' => 'zastava: Posebno upravno območje Ljudske republike Kitajske Macao',
+    '🇲🇴' => 'zastava: Posebno upravno območje Kitajske Makav',
     '🇲🇵' => 'zastava: Severni Marianski otoki',
     '🇲🇶' => 'zastava: Martinik',
     '🇲🇷' => 'zastava: Mavretanija',
     '🇲🇸' => 'zastava: Montserrat',
     '🇲🇹' => 'zastava: Malta',
-    '🇲🇺' => 'zastava: Mauritius',
+    '🇲🇺' => 'zastava: Mavricij',
     '🇲🇻' => 'zastava: Maldivi',
     '🇲🇼' => 'zastava: Malavi',
     '🇲🇽' => 'zastava: Mehika',
@@ -2311,12 +2468,12 @@
     '🇵🇭' => 'zastava: Filipini',
     '🇵🇰' => 'zastava: Pakistan',
     '🇵🇱' => 'zastava: Poljska',
-    '🇵🇲' => 'zastava: Saint Pierre in Miquelon',
+    '🇵🇲' => 'zastava: Sveta Peter in Mihael',
     '🇵🇳' => 'zastava: Pitcairn',
     '🇵🇷' => 'zastava: Portoriko',
     '🇵🇸' => 'zastava: Palestinsko ozemlje',
     '🇵🇹' => 'zastava: Portugalska',
-    '🇵🇼' => 'zastava: Palau',
+    '🇵🇼' => 'zastava: Palav',
     '🇵🇾' => 'zastava: Paragvaj',
     '🇶🇦' => 'zastava: Katar',
     '🇷🇪' => 'zastava: Reunion',
@@ -2340,9 +2497,9 @@
     '🇸🇴' => 'zastava: Somalija',
     '🇸🇷' => 'zastava: Surinam',
     '🇸🇸' => 'zastava: Južni Sudan',
-    '🇸🇹' => 'zastava: Sao Tome in Principe',
+    '🇸🇹' => 'zastava: Sveti Tomaž in Princ',
     '🇸🇻' => 'zastava: Salvador',
-    '🇸🇽' => 'zastava: Sint Maarten',
+    '🇸🇽' => 'zastava: Nizozemski Sveti Martin',
     '🇸🇾' => 'zastava: Sirija',
     '🇸🇿' => 'zastava: Esvatini',
     '🇹🇦' => 'zastava: Tristan da Cunha',
@@ -2352,7 +2509,7 @@
     '🇹🇬' => 'zastava: Togo',
     '🇹🇭' => 'zastava: Tajska',
     '🇹🇯' => 'zastava: Tadžikistan',
-    '🇹🇰' => 'zastava: Tokelau',
+    '🇹🇰' => 'zastava: Tokelav',
     '🇹🇱' => 'zastava: Timor-Leste',
     '🇹🇲' => 'zastava: Turkmenistan',
     '🇹🇳' => 'zastava: Tunizija',
@@ -2370,7 +2527,7 @@
     '🇺🇾' => 'zastava: Urugvaj',
     '🇺🇿' => 'zastava: Uzbekistan',
     '🇻🇦' => 'zastava: Vatikan',
-    '🇻🇨' => 'zastava: Saint Vincent in Grenadine',
+    '🇻🇨' => 'zastava: Sveti Vincencij in Grenadine',
     '🇻🇪' => 'zastava: Venezuela',
     '🇻🇬' => 'zastava: Britanski Deviški otoki',
     '🇻🇮' => 'zastava: Ameriški Deviški otoki',
@@ -2389,13 +2546,6 @@
     '🏽' => 'srednji ten kože',
     '🏾' => 'srednje temen ten kože',
     '🏿' => 'temen ten kože',
-    '🪉' => 'harfa',
-    '🪏' => 'lopata',
-    '🪾' => 'drevo brez listja',
-    '🫆' => 'prstni odtis',
-    '🫜' => 'korenasta zelenjava',
-    '🫟' => 'packa',
-    '🫩' => 'obraz s podočnjaki',
     '😀' => 'režeči obraz',
     '😃' => 'smejoči obraz z odprtimi usti',
     '😄' => 'smejoči obraz z odprtimi usti in smejočimi očmi',
@@ -2449,6 +2599,7 @@
     '😪' => 'zaspan obraz',
     '🤤' => 'obraz, ki se slini',
     '😴' => 'speči obraz',
+    '🫩' => 'obraz s podočnjaki',
     '😷' => 'obraz z medicinsko masko',
     '🤒' => 'obraz s termometrom',
     '🤕' => 'obraz, obvezan s povojem',
@@ -2546,6 +2697,7 @@
     '💋' => 'sled šminke po poljubu',
     '💯' => 'sto točk',
     '💢' => 'simbol jeze',
+    '🫯' => 'spor v oblaku',
     '💥' => 'trk',
     '💫' => 'omotica',
     '💦' => 'potne kapljice',
@@ -2669,6 +2821,7 @@
     '🧞' => 'duh iz steklenice',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'kosmato bitje',
     '💆' => 'masaža obraza',
     '💇' => 'striženje',
     '🚶' => 'pešec',
@@ -2712,6 +2865,7 @@
     '🫂' => 'osebi, ki se objemata',
     '👪' => 'družina',
     '👣' => 'stopinje',
+    '🫆' => 'prstni odtis',
     '🦰' => 'rdeči lasje',
     '🦱' => 'kodrasti lasje',
     '🦳' => 'sivi lasje',
@@ -2811,6 +2965,7 @@
     '🐳' => 'kit, ki brizga vodo',
     '🐋' => 'kit',
     '🐬' => 'delfin',
+    '🫍' => 'orka',
     '🦭' => 'tjulenj',
     '🐟' => 'riba',
     '🐠' => 'tropska riba',
@@ -2820,6 +2975,11 @@
     '🐚' => 'spiralna školjka',
     '🪸' => 'korala',
     '🪼' => 'meduza',
+    '🦀' => 'rakovica',
+    '🦞' => 'jastog',
+    '🦐' => 'morski rakec',
+    '🦑' => 'ligenj',
+    '🦪' => 'ostriga',
     '🐌' => 'polž',
     '🦋' => 'metulj',
     '🐛' => 'žuželka',
@@ -2864,6 +3024,7 @@
     '🪹' => 'prazno gnezdo',
     '🪺' => 'gnezdo z jajcema',
     '🍄' => 'goba',
+    '🪾' => 'drevo brez listja',
     '🍇' => 'grozdje',
     '🍈' => 'melona',
     '🍉' => 'lubenica',
@@ -2891,7 +3052,7 @@
     '🌶' => 'feferon',
     '🫑' => 'paprika',
     '🥒' => 'kumara',
-    '🥬' => 'listnato zelena',
+    '🥬' => 'listnata zelenjava',
     '🥦' => 'brokoli',
     '🧄' => 'česen',
     '🧅' => 'čebula',
@@ -2900,6 +3061,7 @@
     '🌰' => 'kostanj',
     '🫚' => 'korenina ingverja',
     '🫛' => 'strok graha',
+    '🫜' => 'korenasta zelenjava',
     '🍞' => 'kruh',
     '🥐' => 'rogljič',
     '🥖' => 'bageta',
@@ -2951,11 +3113,6 @@
     '🥟' => 'cmok',
     '🥠' => 'piškotek sreče',
     '🥡' => 'embalaža za hrano',
-    '🦀' => 'rakovica',
-    '🦞' => 'jastog',
-    '🦐' => 'morski rakec',
-    '🦑' => 'ligenj',
-    '🦪' => 'ostriga',
     '🍦' => 'rahel sladoled',
     '🍧' => 'nastrgan led',
     '🍨' => 'sladoled',
@@ -3006,6 +3163,7 @@
     '🧭' => 'kompas',
     '🏔' => 'zasnežena gora',
     '⛰' => 'gora',
+    '🛘' => 'zemeljski plaz',
     '🌋' => 'vulkan',
     '🗻' => 'gora Fuji',
     '🏕' => 'kampiranje',
@@ -3366,16 +3524,18 @@
     '🎧' => 'slušalka',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'trobenta',
+    '🪊' => 'pozavna',
     '🪗' => 'harmonika',
     '🎸' => 'kitara',
     '🎹' => 'klaviatura',
-    '🎺' => 'trobenta',
     '🎻' => 'violina',
     '🪕' => 'bendžo',
     '🥁' => 'boben',
     '🪘' => 'visok boben',
     '🪇' => 'marake',
     '🪈' => 'flavta',
+    '🪉' => 'harfa',
     '📱' => 'mobilni telefon',
     '📲' => 'mobilni telefon s puščico',
     '☎' => 'telefon',
@@ -3429,8 +3589,9 @@
     '📑' => 'zaznamki na straneh',
     '🔖' => 'zaznamek',
     '🏷' => 'etiketa',
-    '💰' => 'vreča denarja',
     '🪙' => 'kovanec',
+    '💰' => 'vreča denarja',
+    '🪎' => 'skrinja z zakladom',
     '💴' => 'bankovec za jen',
     '💵' => 'dolarski bankovec',
     '💶' => 'evrski bankovec',
@@ -3513,6 +3674,7 @@
     '🧰' => 'zaboj za orodje',
     '🧲' => 'magnet',
     '🪜' => 'lestev',
+    '🪏' => 'lopata',
     '⚗' => 'destilator',
     '🧪' => 'epruveta',
     '🧫' => 'petrijevka',
@@ -3696,6 +3858,7 @@
     '✴' => 'osemkraka zvezda',
     '❇' => 'iskra',
     '™' => 'blagovna znamka',
+    '🫟' => 'packa',
     '🔠' => 'vnos velikih črk latinice',
     '🔡' => 'vnos malih črk latinice',
     '🔢' => 'vnos številk',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-so.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-so.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-so.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-so.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'shumis: naag, naag, jidh madaw, jidh nooc dhexe',
     '👩🏿‍❤‍💋‍👩🏾' => 'shumis: naag, naag, jidh madaw, jidh nooc madaw oo dhexe',
     '👩🏿‍❤‍💋‍👩🏿' => 'shumis: naag, naag, jidh madaw',
+    '🧑🏻‍🫯‍🧑🏼' => 'dad lagdamaya: jidh fudud, jidh fudud oo dhexe',
+    '🧑🏻‍🫯‍🧑🏽' => 'dad lagdamaya: jidh fudud, jidh nooc dhexe',
+    '🧑🏻‍🫯‍🧑🏾' => 'dad lagdamaya: jidh fudud, jidh nooc madaw oo dhexe',
+    '🧑🏻‍🫯‍🧑🏿' => 'dad lagdamaya: jidh fudud, jidh madaw',
+    '🧑🏼‍🫯‍🧑🏻' => 'dad lagdamaya: jidh fudud oo dhexe, jidh fudud',
+    '🧑🏼‍🫯‍🧑🏽' => 'dad lagdamaya: jidh fudud oo dhexe, jidh nooc dhexe',
+    '🧑🏼‍🫯‍🧑🏾' => 'dad lagdamaya: jidh fudud oo dhexe, jidh nooc madaw oo dhexe',
+    '🧑🏼‍🫯‍🧑🏿' => 'dad lagdamaya: jidh fudud oo dhexe, jidh madaw',
+    '🧑🏽‍🫯‍🧑🏻' => 'dad lagdamaya: jidh nooc dhexe, jidh fudud',
+    '🧑🏽‍🫯‍🧑🏼' => 'dad lagdamaya: jidh nooc dhexe, jidh fudud oo dhexe',
+    '🧑🏽‍🫯‍🧑🏾' => 'dad lagdamaya: jidh nooc dhexe, jidh nooc madaw oo dhexe',
+    '🧑🏽‍🫯‍🧑🏿' => 'dad lagdamaya: jidh nooc dhexe, jidh madaw',
+    '🧑🏾‍🫯‍🧑🏻' => 'dad lagdamaya: jidh nooc madaw oo dhexe, jidh fudud',
+    '🧑🏾‍🫯‍🧑🏼' => 'dad lagdamaya: jidh nooc madaw oo dhexe, jidh fudud oo dhexe',
+    '🧑🏾‍🫯‍🧑🏽' => 'dad lagdamaya: jidh nooc madaw oo dhexe, jidh nooc dhexe',
+    '🧑🏾‍🫯‍🧑🏿' => 'dad lagdamaya: jidh nooc madaw oo dhexe, jidh madaw',
+    '🧑🏿‍🫯‍🧑🏻' => 'dad lagdamaya: jidh madaw, jidh fudud',
+    '🧑🏿‍🫯‍🧑🏼' => 'dad lagdamaya: jidh madaw, jidh fudud oo dhexe',
+    '🧑🏿‍🫯‍🧑🏽' => 'dad lagdamaya: jidh madaw, jidh nooc dhexe',
+    '🧑🏿‍🫯‍🧑🏾' => 'dad lagdamaya: jidh madaw, jidh nooc madaw oo dhexe',
     '🧑🏻‍❤‍🧑🏼' => 'lammaane is jecel: qof, qof, jidh fudud, jidh fudud oo dhexe',
     '🧑🏻‍❤‍🧑🏽' => 'lammaane is jecel: qof, qof, jidh fudud, jidh nooc dhexe',
     '🧑🏻‍❤‍🧑🏾' => 'lammaane is jecel: qof, qof, jidh fudud, jidh nooc madaw oo dhexe',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'lammaane is jecel: qof, qof, jidh madaw, jidh fudud oo dhexe',
     '🧑🏿‍❤‍🧑🏽' => 'lammaane is jecel: qof, qof, jidh madaw, jidh nooc dhexe',
     '🧑🏿‍❤‍🧑🏾' => 'lammaane is jecel: qof, qof, jidh madaw, jidh nooc madaw oo dhexe',
+    '🧑🏻‍🐰‍🧑🏼' => 'dad leh dhaggo bakayle: jidh fudud, jidh fudud oo dhexe',
+    '🧑🏻‍🐰‍🧑🏽' => 'dad leh dhaggo bakayle: jidh fudud, jidh nooc dhexe',
+    '🧑🏻‍🐰‍🧑🏾' => 'dad leh dhaggo bakayle: jidh fudud, jidh nooc madaw oo dhexe',
+    '🧑🏻‍🐰‍🧑🏿' => 'dad leh dhaggo bakayle: jidh fudud, jidh madaw',
+    '🧑🏼‍🐰‍🧑🏻' => 'dad leh dhaggo bakayle: jidh fudud oo dhexe, jidh fudud',
+    '🧑🏼‍🐰‍🧑🏽' => 'dad leh dhaggo bakayle: jidh fudud oo dhexe, jidh nooc dhexe',
+    '🧑🏼‍🐰‍🧑🏾' => 'dad leh dhaggo bakayle: jidh fudud oo dhexe, jidh nooc madaw oo dhexe',
+    '🧑🏼‍🐰‍🧑🏿' => 'dad leh dhaggo bakayle: jidh fudud oo dhexe, jidh madaw',
+    '🧑🏽‍🐰‍🧑🏻' => 'dad leh dhaggo bakayle: jidh nooc dhexe, jidh fudud',
+    '🧑🏽‍🐰‍🧑🏼' => 'dad leh dhaggo bakayle: jidh nooc dhexe, jidh fudud oo dhexe',
+    '🧑🏽‍🐰‍🧑🏾' => 'dad leh dhaggo bakayle: jidh nooc dhexe, jidh nooc madaw oo dhexe',
+    '🧑🏽‍🐰‍🧑🏿' => 'dad leh dhaggo bakayle: jidh nooc dhexe, jidh madaw',
+    '🧑🏾‍🐰‍🧑🏻' => 'dad leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh fudud',
+    '🧑🏾‍🐰‍🧑🏼' => 'dad leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh fudud oo dhexe',
+    '🧑🏾‍🐰‍🧑🏽' => 'dad leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh nooc dhexe',
+    '🧑🏾‍🐰‍🧑🏿' => 'dad leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh madaw',
+    '🧑🏿‍🐰‍🧑🏻' => 'dad leh dhaggo bakayle: jidh madaw, jidh fudud',
+    '🧑🏿‍🐰‍🧑🏼' => 'dad leh dhaggo bakayle: jidh madaw, jidh fudud oo dhexe',
+    '🧑🏿‍🐰‍🧑🏽' => 'dad leh dhaggo bakayle: jidh madaw, jidh nooc dhexe',
+    '🧑🏿‍🐰‍🧑🏾' => 'dad leh dhaggo bakayle: jidh madaw, jidh nooc madaw oo dhexe',
+    '👨🏻‍🫯‍👨🏼' => 'rag lagdamaya: jidh fudud, jidh fudud oo dhexe',
+    '👨🏻‍🫯‍👨🏽' => 'rag lagdamaya: jidh fudud, jidh nooc dhexe',
+    '👨🏻‍🫯‍👨🏾' => 'rag lagdamaya: jidh fudud, jidh nooc madaw oo dhexe',
+    '👨🏻‍🫯‍👨🏿' => 'rag lagdamaya: jidh fudud, jidh madaw',
+    '👨🏼‍🫯‍👨🏻' => 'rag lagdamaya: jidh fudud oo dhexe, jidh fudud',
+    '👨🏼‍🫯‍👨🏽' => 'rag lagdamaya: jidh fudud oo dhexe, jidh nooc dhexe',
+    '👨🏼‍🫯‍👨🏾' => 'rag lagdamaya: jidh fudud oo dhexe, jidh nooc madaw oo dhexe',
+    '👨🏼‍🫯‍👨🏿' => 'rag lagdamaya: jidh fudud oo dhexe, jidh madaw',
+    '👨🏽‍🫯‍👨🏻' => 'rag lagdamaya: jidh nooc dhexe, jidh fudud',
+    '👨🏽‍🫯‍👨🏼' => 'rag lagdamaya: jidh nooc dhexe, jidh fudud oo dhexe',
+    '👨🏽‍🫯‍👨🏾' => 'rag lagdamaya: jidh nooc dhexe, jidh nooc madaw oo dhexe',
+    '👨🏽‍🫯‍👨🏿' => 'rag lagdamaya: jidh nooc dhexe, jidh madaw',
+    '👨🏾‍🫯‍👨🏻' => 'rag lagdamaya: jidh nooc madaw oo dhexe, jidh fudud',
+    '👨🏾‍🫯‍👨🏼' => 'rag lagdamaya: jidh nooc madaw oo dhexe, jidh fudud oo dhexe',
+    '👨🏾‍🫯‍👨🏽' => 'rag lagdamaya: jidh nooc madaw oo dhexe, jidh nooc dhexe',
+    '👨🏾‍🫯‍👨🏿' => 'rag lagdamaya: jidh nooc madaw oo dhexe, jidh madaw',
+    '👨🏿‍🫯‍👨🏻' => 'rag lagdamaya: jidh madaw, jidh fudud',
+    '👨🏿‍🫯‍👨🏼' => 'rag lagdamaya: jidh madaw, jidh fudud oo dhexe',
+    '👨🏿‍🫯‍👨🏽' => 'rag lagdamaya: jidh madaw, jidh nooc dhexe',
+    '👨🏿‍🫯‍👨🏾' => 'rag lagdamaya: jidh madaw, jidh nooc madaw oo dhexe',
     '👨🏻‍❤‍👨🏻' => 'lammaane is jecel: ninka, ninka, jidh fudud',
     '👨🏻‍❤‍👨🏼' => 'lammaane is jecel: ninka, ninka, jidh fudud, jidh fudud oo dhexe',
     '👨🏻‍❤‍👨🏽' => 'lammaane is jecel: ninka, ninka, jidh fudud, jidh nooc dhexe',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'lammaane is jecel: ninka, ninka, jidh madaw, jidh nooc dhexe',
     '👨🏿‍❤‍👨🏾' => 'lammaane is jecel: ninka, ninka, jidh madaw, jidh nooc madaw oo dhexe',
     '👨🏿‍❤‍👨🏿' => 'lammaane is jecel: ninka, ninka, jidh madaw',
+    '👨🏻‍🐰‍👨🏼' => 'rag leh dhaggo bakayle: jidh fudud, jidh fudud oo dhexe',
+    '👨🏻‍🐰‍👨🏽' => 'rag leh dhaggo bakayle: jidh fudud, jidh nooc dhexe',
+    '👨🏻‍🐰‍👨🏾' => 'rag leh dhaggo bakayle: jidh fudud, jidh nooc madaw oo dhexe',
+    '👨🏻‍🐰‍👨🏿' => 'rag leh dhaggo bakayle: jidh fudud, jidh madaw',
+    '👨🏼‍🐰‍👨🏻' => 'rag leh dhaggo bakayle: jidh fudud oo dhexe, jidh fudud',
+    '👨🏼‍🐰‍👨🏽' => 'rag leh dhaggo bakayle: jidh fudud oo dhexe, jidh nooc dhexe',
+    '👨🏼‍🐰‍👨🏾' => 'rag leh dhaggo bakayle: jidh fudud oo dhexe, jidh nooc madaw oo dhexe',
+    '👨🏼‍🐰‍👨🏿' => 'rag leh dhaggo bakayle: jidh fudud oo dhexe, jidh madaw',
+    '👨🏽‍🐰‍👨🏻' => 'rag leh dhaggo bakayle: jidh nooc dhexe, jidh fudud',
+    '👨🏽‍🐰‍👨🏼' => 'rag leh dhaggo bakayle: jidh nooc dhexe, jidh fudud oo dhexe',
+    '👨🏽‍🐰‍👨🏾' => 'rag leh dhaggo bakayle: jidh nooc dhexe, jidh nooc madaw oo dhexe',
+    '👨🏽‍🐰‍👨🏿' => 'rag leh dhaggo bakayle: jidh nooc dhexe, jidh madaw',
+    '👨🏾‍🐰‍👨🏻' => 'rag leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh fudud',
+    '👨🏾‍🐰‍👨🏼' => 'rag leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh fudud oo dhexe',
+    '👨🏾‍🐰‍👨🏽' => 'rag leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh nooc dhexe',
+    '👨🏾‍🐰‍👨🏿' => 'rag leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh madaw',
+    '👨🏿‍🐰‍👨🏻' => 'rag leh dhaggo bakayle: jidh madaw, jidh fudud',
+    '👨🏿‍🐰‍👨🏼' => 'rag leh dhaggo bakayle: jidh madaw, jidh fudud oo dhexe',
+    '👨🏿‍🐰‍👨🏽' => 'rag leh dhaggo bakayle: jidh madaw, jidh nooc dhexe',
+    '👨🏿‍🐰‍👨🏾' => 'rag leh dhaggo bakayle: jidh madaw, jidh nooc madaw oo dhexe',
+    '👩🏻‍🫯‍👩🏼' => 'naaga lagdamaya: jidh fudud, jidh fudud oo dhexe',
+    '👩🏻‍🫯‍👩🏽' => 'naaga lagdamaya: jidh fudud, jidh nooc dhexe',
+    '👩🏻‍🫯‍👩🏾' => 'naaga lagdamaya: jidh fudud, jidh nooc madaw oo dhexe',
+    '👩🏻‍🫯‍👩🏿' => 'naaga lagdamaya: jidh fudud, jidh madaw',
+    '👩🏼‍🫯‍👩🏻' => 'naaga lagdamaya: jidh fudud oo dhexe, jidh fudud',
+    '👩🏼‍🫯‍👩🏽' => 'naaga lagdamaya: jidh fudud oo dhexe, jidh nooc dhexe',
+    '👩🏼‍🫯‍👩🏾' => 'naaga lagdamaya: jidh fudud oo dhexe, jidh nooc madaw oo dhexe',
+    '👩🏼‍🫯‍👩🏿' => 'naaga lagdamaya: jidh fudud oo dhexe, jidh madaw',
+    '👩🏽‍🫯‍👩🏻' => 'naaga lagdamaya: jidh nooc dhexe, jidh fudud',
+    '👩🏽‍🫯‍👩🏼' => 'naaga lagdamaya: jidh nooc dhexe, jidh fudud oo dhexe',
+    '👩🏽‍🫯‍👩🏾' => 'naaga lagdamaya: jidh nooc dhexe, jidh nooc madaw oo dhexe',
+    '👩🏽‍🫯‍👩🏿' => 'naaga lagdamaya: jidh nooc dhexe, jidh madaw',
+    '👩🏾‍🫯‍👩🏻' => 'naaga lagdamaya: jidh nooc madaw oo dhexe, jidh fudud',
+    '👩🏾‍🫯‍👩🏼' => 'naaga lagdamaya: jidh nooc madaw oo dhexe, jidh fudud oo dhexe',
+    '👩🏾‍🫯‍👩🏽' => 'naaga lagdamaya: jidh nooc madaw oo dhexe, jidh nooc dhexe',
+    '👩🏾‍🫯‍👩🏿' => 'naaga lagdamaya: jidh nooc madaw oo dhexe, jidh madaw',
+    '👩🏿‍🫯‍👩🏻' => 'naaga lagdamaya: jidh madaw, jidh fudud',
+    '👩🏿‍🫯‍👩🏼' => 'naaga lagdamaya: jidh madaw, jidh fudud oo dhexe',
+    '👩🏿‍🫯‍👩🏽' => 'naaga lagdamaya: jidh madaw, jidh nooc dhexe',
+    '👩🏿‍🫯‍👩🏾' => 'naaga lagdamaya: jidh madaw, jidh nooc madaw oo dhexe',
     '👩🏻‍❤‍👨🏻' => 'lammaane is jecel: naag, ninka, jidh fudud',
     '👩🏻‍❤‍👨🏼' => 'lammaane is jecel: naag, ninka, jidh fudud, jidh fudud oo dhexe',
     '👩🏻‍❤‍👨🏽' => 'lammaane is jecel: naag, ninka, jidh fudud, jidh nooc dhexe',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'lammaane is jecel: naag, naag, jidh madaw, jidh nooc dhexe',
     '👩🏿‍❤‍👩🏾' => 'lammaane is jecel: naag, naag, jidh madaw, jidh nooc madaw oo dhexe',
     '👩🏿‍❤‍👩🏿' => 'lammaane is jecel: naag, naag, jidh madaw',
+    '👩🏻‍🐰‍👩🏼' => 'naag leh dhaggo bakayle: jidh fudud, jidh fudud oo dhexe',
+    '👩🏻‍🐰‍👩🏽' => 'naag leh dhaggo bakayle: jidh fudud, jidh nooc dhexe',
+    '👩🏻‍🐰‍👩🏾' => 'naag leh dhaggo bakayle: jidh fudud, jidh nooc madaw oo dhexe',
+    '👩🏻‍🐰‍👩🏿' => 'naag leh dhaggo bakayle: jidh fudud, jidh madaw',
+    '👩🏼‍🐰‍👩🏻' => 'naag leh dhaggo bakayle: jidh fudud oo dhexe, jidh fudud',
+    '👩🏼‍🐰‍👩🏽' => 'naag leh dhaggo bakayle: jidh fudud oo dhexe, jidh nooc dhexe',
+    '👩🏼‍🐰‍👩🏾' => 'naag leh dhaggo bakayle: jidh fudud oo dhexe, jidh nooc madaw oo dhexe',
+    '👩🏼‍🐰‍👩🏿' => 'naag leh dhaggo bakayle: jidh fudud oo dhexe, jidh madaw',
+    '👩🏽‍🐰‍👩🏻' => 'naag leh dhaggo bakayle: jidh nooc dhexe, jidh fudud',
+    '👩🏽‍🐰‍👩🏼' => 'naag leh dhaggo bakayle: jidh nooc dhexe, jidh fudud oo dhexe',
+    '👩🏽‍🐰‍👩🏾' => 'naag leh dhaggo bakayle: jidh nooc dhexe, jidh nooc madaw oo dhexe',
+    '👩🏽‍🐰‍👩🏿' => 'naag leh dhaggo bakayle: jidh nooc dhexe, jidh madaw',
+    '👩🏾‍🐰‍👩🏻' => 'naag leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh fudud',
+    '👩🏾‍🐰‍👩🏼' => 'naag leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh fudud oo dhexe',
+    '👩🏾‍🐰‍👩🏽' => 'naag leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh nooc dhexe',
+    '👩🏾‍🐰‍👩🏿' => 'naag leh dhaggo bakayle: jidh nooc madaw oo dhexe, jidh madaw',
+    '👩🏿‍🐰‍👩🏻' => 'naag leh dhaggo bakayle: jidh madaw, jidh fudud',
+    '👩🏿‍🐰‍👩🏼' => 'naag leh dhaggo bakayle: jidh madaw, jidh fudud oo dhexe',
+    '👩🏿‍🐰‍👩🏽' => 'naag leh dhaggo bakayle: jidh madaw, jidh nooc dhexe',
+    '👩🏿‍🐰‍👩🏾' => 'naag leh dhaggo bakayle: jidh madaw, jidh nooc madaw oo dhexe',
     '🧑🏻‍🤝‍🧑🏻' => 'dad gacmaha is haysta: jidh fudud',
     '🧑🏻‍🤝‍🧑🏼' => 'dad gacmaha is haysta: jidh fudud, jidh fudud oo dhexe',
     '🧑🏻‍🤝‍🧑🏽' => 'dad gacmaha is haysta: jidh fudud, jidh nooc dhexe',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'calan: Skotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'calan: Waalis',
     '🧑‍🧑‍🧒‍🧒' => 'qoys: qof weyn, qof weyn, ilmo, ilmo',
-    '🚶🏻‍♀‍➡' => 'haweeney soconaysa midig u jeeda',
-    '🚶🏼‍♀‍➡' => 'haweeney soconaysa midig u jeeda',
-    '🚶🏽‍♀‍➡' => 'haweeney soconaysa midig u jeeda',
-    '🚶🏾‍♀‍➡' => 'haweeney soconaysa midig u jeeda',
-    '🚶🏿‍♀‍➡' => 'haweeney soconaysa midig u jeeda',
-    '🚶🏻‍♂‍➡' => 'nin soconaya midig u jeeda',
-    '🚶🏼‍♂‍➡' => 'nin soconaya midig u jeeda',
-    '🚶🏽‍♂‍➡' => 'nin soconaya midig u jeeda',
-    '🚶🏾‍♂‍➡' => 'nin soconaya midig u jeeda',
-    '🚶🏿‍♂‍➡' => 'nin soconaya midig u jeeda',
-    '🧎🏻‍♀‍➡' => 'naag jilba dhiganaysa midig u jeeda',
-    '🧎🏼‍♀‍➡' => 'naag jilba dhiganaysa midig u jeeda',
-    '🧎🏽‍♀‍➡' => 'naag jilba dhiganaysa midig u jeeda',
-    '🧎🏾‍♀‍➡' => 'naag jilba dhiganaysa midig u jeeda',
-    '🧎🏿‍♀‍➡' => 'naag jilba dhiganaysa midig u jeeda',
-    '🧎🏻‍♂‍➡' => 'nin jilba dhiganaya midig u jeeda',
-    '🧎🏼‍♂‍➡' => 'nin jilba dhiganaya midig u jeeda',
-    '🧎🏽‍♂‍➡' => 'nin jilba dhiganaya midig u jeeda',
-    '🧎🏾‍♂‍➡' => 'nin jilba dhiganaya midig u jeeda',
-    '🧎🏿‍♂‍➡' => 'nin jilba dhiganaya midig u jeeda',
-    '🧑🏻‍🦯‍➡' => 'qof wata bakoorad cas midig u jeeda',
-    '🧑🏼‍🦯‍➡' => 'qof wata bakoorad cas midig u jeeda',
-    '🧑🏽‍🦯‍➡' => 'qof wata bakoorad cas midig u jeeda',
-    '🧑🏾‍🦯‍➡' => 'qof wata bakoorad cas midig u jeeda',
-    '🧑🏿‍🦯‍➡' => 'qof wata bakoorad cas midig u jeeda',
-    '👨🏻‍🦯‍➡' => 'nin sita usha cad indhoolaha midig u jeeda',
-    '👨🏼‍🦯‍➡' => 'nin sita usha cad indhoolaha midig u jeeda',
-    '👨🏽‍🦯‍➡' => 'nin sita usha cad indhoolaha midig u jeeda',
-    '👨🏾‍🦯‍➡' => 'nin sita usha cad indhoolaha midig u jeeda',
-    '👨🏿‍🦯‍➡' => 'nin sita usha cad indhoolaha midig u jeeda',
-    '👩🏻‍🦯‍➡' => 'naag sidata usha cad indhoolaha midig u jeeda',
-    '👩🏼‍🦯‍➡' => 'naag sidata usha cad indhoolaha midig u jeeda',
-    '👩🏽‍🦯‍➡' => 'naag sidata usha cad indhoolaha midig u jeeda',
-    '👩🏾‍🦯‍➡' => 'naag sidata usha cad indhoolaha midig u jeeda',
-    '👩🏿‍🦯‍➡' => 'naag sidata usha cad indhoolaha midig u jeeda',
-    '🧑🏻‍🦼‍➡' => 'qof kufadhiya gaari matoor leh midig u jeeda',
-    '🧑🏼‍🦼‍➡' => 'qof kufadhiya gaari matoor leh midig u jeeda',
-    '🧑🏽‍🦼‍➡' => 'qof kufadhiya gaari matoor leh midig u jeeda',
-    '🧑🏾‍🦼‍➡' => 'qof kufadhiya gaari matoor leh midig u jeeda',
-    '🧑🏿‍🦼‍➡' => 'qof kufadhiya gaari matoor leh midig u jeeda',
-    '👨🏻‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh midig u jeeda',
-    '👨🏼‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh midig u jeeda',
-    '👨🏽‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh midig u jeeda',
-    '👨🏾‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh midig u jeeda',
-    '👨🏿‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh midig u jeeda',
-    '👩🏻‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh midig u jeeda',
-    '👩🏼‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh midig u jeeda',
-    '👩🏽‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh midig u jeeda',
-    '👩🏾‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh midig u jeeda',
-    '👩🏿‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh midig u jeeda',
-    '🧑🏻‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta midig u jeeda',
-    '🧑🏼‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta midig u jeeda',
-    '🧑🏽‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta midig u jeeda',
-    '🧑🏾‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta midig u jeeda',
-    '🧑🏿‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta midig u jeeda',
-    '👨🏻‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah midig u jeeda',
-    '👨🏼‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah midig u jeeda',
-    '👨🏽‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah midig u jeeda',
-    '👨🏾‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah midig u jeeda',
-    '👨🏿‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah midig u jeeda',
-    '👩🏻‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah midig u jeeda',
-    '👩🏼‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah midig u jeeda',
-    '👩🏽‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah midig u jeeda',
-    '👩🏾‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah midig u jeeda',
-    '👩🏿‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah midig u jeeda',
-    '🏃🏻‍♀‍➡' => 'naag ordaysa midig u jeeda',
-    '🏃🏼‍♀‍➡' => 'naag ordaysa midig u jeeda',
-    '🏃🏽‍♀‍➡' => 'naag ordaysa midig u jeeda',
-    '🏃🏾‍♀‍➡' => 'naag ordaysa midig u jeeda',
-    '🏃🏿‍♀‍➡' => 'naag ordaysa midig u jeeda',
-    '🏃🏻‍♂‍➡' => 'nin ordaya midig u jeeda',
-    '🏃🏼‍♂‍➡' => 'nin ordaya midig u jeeda',
-    '🏃🏽‍♂‍➡' => 'nin ordaya midig u jeeda',
-    '🏃🏾‍♂‍➡' => 'nin ordaya midig u jeeda',
-    '🏃🏿‍♂‍➡' => 'nin ordaya midig u jeeda',
+    '🚶🏻‍♀‍➡' => 'haweeney soconaysa: jidh fudud, midig u jeeda',
+    '🚶🏼‍♀‍➡' => 'haweeney soconaysa: jidh fudud oo dhexe, midig u jeeda',
+    '🚶🏽‍♀‍➡' => 'haweeney soconaysa: jidh nooc dhexe, midig u jeeda',
+    '🚶🏾‍♀‍➡' => 'haweeney soconaysa: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🚶🏿‍♀‍➡' => 'haweeney soconaysa: jidh madaw, midig u jeeda',
+    '🚶🏻‍♂‍➡' => 'nin soconaya: jidh fudud, midig u jeeda',
+    '🚶🏼‍♂‍➡' => 'nin soconaya: jidh fudud oo dhexe, midig u jeeda',
+    '🚶🏽‍♂‍➡' => 'nin soconaya: jidh nooc dhexe, midig u jeeda',
+    '🚶🏾‍♂‍➡' => 'nin soconaya: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🚶🏿‍♂‍➡' => 'nin soconaya: jidh madaw, midig u jeeda',
+    '🧎🏻‍♀‍➡' => 'naag jilba dhiganaysa: jidh fudud, midig u jeeda',
+    '🧎🏼‍♀‍➡' => 'naag jilba dhiganaysa: jidh fudud oo dhexe, midig u jeeda',
+    '🧎🏽‍♀‍➡' => 'naag jilba dhiganaysa: jidh nooc dhexe, midig u jeeda',
+    '🧎🏾‍♀‍➡' => 'naag jilba dhiganaysa: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🧎🏿‍♀‍➡' => 'naag jilba dhiganaysa: jidh madaw, midig u jeeda',
+    '🧎🏻‍♂‍➡' => 'nin jilba dhiganaya: jidh fudud, midig u jeeda',
+    '🧎🏼‍♂‍➡' => 'nin jilba dhiganaya: jidh fudud oo dhexe, midig u jeeda',
+    '🧎🏽‍♂‍➡' => 'nin jilba dhiganaya: jidh nooc dhexe, midig u jeeda',
+    '🧎🏾‍♂‍➡' => 'nin jilba dhiganaya: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🧎🏿‍♂‍➡' => 'nin jilba dhiganaya: jidh madaw, midig u jeeda',
+    '🧑🏻‍🦯‍➡' => 'qof wata bakoorad cas: jidh fudud, midig u jeeda',
+    '🧑🏼‍🦯‍➡' => 'qof wata bakoorad cas: jidh fudud oo dhexe, midig u jeeda',
+    '🧑🏽‍🦯‍➡' => 'qof wata bakoorad cas: jidh nooc dhexe, midig u jeeda',
+    '🧑🏾‍🦯‍➡' => 'qof wata bakoorad cas: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🧑🏿‍🦯‍➡' => 'qof wata bakoorad cas: jidh madaw, midig u jeeda',
+    '👨🏻‍🦯‍➡' => 'nin sita usha cad indhoolaha: jidh fudud, midig u jeeda',
+    '👨🏼‍🦯‍➡' => 'nin sita usha cad indhoolaha: jidh fudud oo dhexe, midig u jeeda',
+    '👨🏽‍🦯‍➡' => 'nin sita usha cad indhoolaha: jidh nooc dhexe, midig u jeeda',
+    '👨🏾‍🦯‍➡' => 'nin sita usha cad indhoolaha: jidh nooc madaw oo dhexe, midig u jeeda',
+    '👨🏿‍🦯‍➡' => 'nin sita usha cad indhoolaha: jidh madaw, midig u jeeda',
+    '👩🏻‍🦯‍➡' => 'naag sidata usha cad indhoolaha: jidh fudud, midig u jeeda',
+    '👩🏼‍🦯‍➡' => 'naag sidata usha cad indhoolaha: jidh fudud oo dhexe, midig u jeeda',
+    '👩🏽‍🦯‍➡' => 'naag sidata usha cad indhoolaha: jidh nooc dhexe, midig u jeeda',
+    '👩🏾‍🦯‍➡' => 'naag sidata usha cad indhoolaha: jidh nooc madaw oo dhexe, midig u jeeda',
+    '👩🏿‍🦯‍➡' => 'naag sidata usha cad indhoolaha: jidh madaw, midig u jeeda',
+    '🧑🏻‍🦼‍➡' => 'qof kufadhiya gaari matoor leh: jidh fudud, midig u jeeda',
+    '🧑🏼‍🦼‍➡' => 'qof kufadhiya gaari matoor leh: jidh fudud oo dhexe, midig u jeeda',
+    '🧑🏽‍🦼‍➡' => 'qof kufadhiya gaari matoor leh: jidh nooc dhexe, midig u jeeda',
+    '🧑🏾‍🦼‍➡' => 'qof kufadhiya gaari matoor leh: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🧑🏿‍🦼‍➡' => 'qof kufadhiya gaari matoor leh: jidh madaw, midig u jeeda',
+    '👨🏻‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh: jidh fudud, midig u jeeda',
+    '👨🏼‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh: jidh fudud oo dhexe, midig u jeeda',
+    '👨🏽‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh: jidh nooc dhexe, midig u jeeda',
+    '👨🏾‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh: jidh nooc madaw oo dhexe, midig u jeeda',
+    '👨🏿‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh: jidh madaw, midig u jeeda',
+    '👩🏻‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh: jidh fudud, midig u jeeda',
+    '👩🏼‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh: jidh fudud oo dhexe, midig u jeeda',
+    '👩🏽‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh: jidh nooc dhexe, midig u jeeda',
+    '👩🏾‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh: jidh nooc madaw oo dhexe, midig u jeeda',
+    '👩🏿‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh: jidh madaw, midig u jeeda',
+    '🧑🏻‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta: jidh fudud, midig u jeeda',
+    '🧑🏼‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta: jidh fudud oo dhexe, midig u jeeda',
+    '🧑🏽‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta: jidh nooc dhexe, midig u jeeda',
+    '🧑🏾‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🧑🏿‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta: jidh madaw, midig u jeeda',
+    '👨🏻‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah: jidh fudud, midig u jeeda',
+    '👨🏼‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah: jidh fudud oo dhexe, midig u jeeda',
+    '👨🏽‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah: jidh nooc dhexe, midig u jeeda',
+    '👨🏾‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah: jidh nooc madaw oo dhexe, midig u jeeda',
+    '👨🏿‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah: jidh madaw, midig u jeeda',
+    '👩🏻‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah: jidh fudud, midig u jeeda',
+    '👩🏼‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah: jidh fudud oo dhexe, midig u jeeda',
+    '👩🏽‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah: jidh nooc dhexe, midig u jeeda',
+    '👩🏾‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah: jidh nooc madaw oo dhexe, midig u jeeda',
+    '👩🏿‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah: jidh madaw, midig u jeeda',
+    '🏃🏻‍♀‍➡' => 'naag ordaysa: jidh fudud, midig u jeeda',
+    '🏃🏼‍♀‍➡' => 'naag ordaysa: jidh fudud oo dhexe, midig u jeeda',
+    '🏃🏽‍♀‍➡' => 'naag ordaysa: jidh nooc dhexe, midig u jeeda',
+    '🏃🏾‍♀‍➡' => 'naag ordaysa: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🏃🏿‍♀‍➡' => 'naag ordaysa: jidh madaw, midig u jeeda',
+    '🏃🏻‍♂‍➡' => 'nin ordaya: jidh fudud, midig u jeeda',
+    '🏃🏼‍♂‍➡' => 'nin ordaya: jidh fudud oo dhexe, midig u jeeda',
+    '🏃🏽‍♂‍➡' => 'nin ordaya: jidh nooc dhexe, midig u jeeda',
+    '🏃🏾‍♂‍➡' => 'nin ordaya: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🏃🏿‍♂‍➡' => 'nin ordaya: jidh madaw, midig u jeeda',
     '🫱🏻‍🫲🏼' => 'gacan-qaadka salaanta: jidh fudud, jidh fudud oo dhexe',
     '🫱🏻‍🫲🏽' => 'gacan-qaadka salaanta: jidh fudud, jidh nooc dhexe',
     '🫱🏻‍🫲🏾' => 'gacan-qaadka salaanta: jidh fudud, jidh nooc madaw oo dhexe',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'gacan-qaadka salaanta: jidh madaw, jidh fudud oo dhexe',
     '🫱🏿‍🫲🏽' => 'gacan-qaadka salaanta: jidh madaw, jidh nooc dhexe',
     '🫱🏿‍🫲🏾' => 'gacan-qaadka salaanta: jidh madaw, jidh nooc madaw oo dhexe',
-    '🚶‍♀‍➡' => 'haweeney soconaysa midig u jeeda',
-    '🚶‍♂‍➡' => 'nin soconaya midig u jeeda',
-    '🧎‍♀‍➡' => 'naag jilba dhiganaysa midig u jeeda',
-    '🧎‍♂‍➡' => 'nin jilba dhiganaya midig u jeeda',
-    '🧑‍🦯‍➡' => 'qof wata bakoorad cas midig u jeeda',
-    '👨‍🦯‍➡' => 'nin sita usha cad indhoolaha midig u jeeda',
-    '👩‍🦯‍➡' => 'naag sidata usha cad indhoolaha midig u jeeda',
-    '🧑‍🦼‍➡' => 'qof kufadhiya gaari matoor leh midig u jeeda',
-    '👨‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh midig u jeeda',
-    '👩‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh midig u jeeda',
-    '🧑‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta midig u jeeda',
-    '👨‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah midig u jeeda',
-    '👩‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah midig u jeeda',
-    '🏃‍♀‍➡' => 'naag ordaysa midig u jeeda',
-    '🏃‍♂‍➡' => 'nin ordaya midig u jeeda',
+    '🚶‍♀‍➡' => 'haweeney soconaysa: midig u jeeda',
+    '🚶‍♂‍➡' => 'nin soconaya: midig u jeeda',
+    '🧎‍♀‍➡' => 'naag jilba dhiganaysa: midig u jeeda',
+    '🧎‍♂‍➡' => 'nin jilba dhiganaya: midig u jeeda',
+    '🧑‍🦯‍➡' => 'qof wata bakoorad cas: midig u jeeda',
+    '👨‍🦯‍➡' => 'nin sita usha cad indhoolaha: midig u jeeda',
+    '👩‍🦯‍➡' => 'naag sidata usha cad indhoolaha: midig u jeeda',
+    '🧑‍🦼‍➡' => 'qof kufadhiya gaari matoor leh: midig u jeeda',
+    '👨‍🦼‍➡' => 'nin saaran kursi curyaan matoor leh: midig u jeeda',
+    '👩‍🦼‍➡' => 'gabadh saaran kursi curyaan matoor leh: midig u jeeda',
+    '🧑‍🦽‍➡' => 'qof ku fadhiya gaari curyaanka gacanta: midig u jeeda',
+    '👨‍🦽‍➡' => 'nin saaran kursiga curyaanka macmac ah: midig u jeeda',
+    '👩‍🦽‍➡' => 'naag fadhida kursiga curyaanka macmal ah: midig u jeeda',
+    '🏃‍♀‍➡' => 'naag ordaysa: midig u jeeda',
+    '🏃‍♂‍➡' => 'nin ordaya: midig u jeeda',
     '👩‍❤‍👨' => 'lammaane is jecel: naag, ninka',
     '👨‍❤‍👨' => 'lammaane is jecel: ninka, ninka',
     '👩‍❤‍👩' => 'lammaane is jecel: naag, naag',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'qof: jidh nooc dhexe, bidaar',
     '🧑🏾‍🦲' => 'qof: jidh nooc madaw oo dhexe, bidaar',
     '🧑🏿‍🦲' => 'qof: jidh madaw, bidaar',
+    '🧑🏻‍🩰' => 'qoob ka ciyaare faneed: jidh fudud',
+    '🧑🏼‍🩰' => 'qoob ka ciyaare faneed: jidh fudud oo dhexe',
+    '🧑🏽‍🩰' => 'qoob ka ciyaare faneed: jidh nooc dhexe',
+    '🧑🏾‍🩰' => 'qoob ka ciyaare faneed: jidh nooc madaw oo dhexe',
+    '🧑🏿‍🩰' => 'qoob ka ciyaare faneed: jidh madaw',
     '🧔🏻‍♂' => 'nin: jidh fudud, gadh',
     '🧔🏼‍♂' => 'nin: jidh fudud oo dhexe, gadh',
     '🧔🏽‍♂' => 'nin: jidh nooc dhexe, gadh',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'haweeney soconaysa: jidh nooc dhexe',
     '🚶🏾‍♀' => 'haweeney soconaysa: jidh nooc madaw oo dhexe',
     '🚶🏿‍♀' => 'haweeney soconaysa: jidh madaw',
-    '🚶🏻‍➡' => 'qof soconaya midig u jeeda',
-    '🚶🏼‍➡' => 'qof soconaya midig u jeeda',
-    '🚶🏽‍➡' => 'qof soconaya midig u jeeda',
-    '🚶🏾‍➡' => 'qof soconaya midig u jeeda',
-    '🚶🏿‍➡' => 'qof soconaya midig u jeeda',
+    '🚶🏻‍➡' => 'qof soconaya: jidh fudud, midig u jeeda',
+    '🚶🏼‍➡' => 'qof soconaya: jidh fudud oo dhexe, midig u jeeda',
+    '🚶🏽‍➡' => 'qof soconaya: jidh nooc dhexe, midig u jeeda',
+    '🚶🏾‍➡' => 'qof soconaya: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🚶🏿‍➡' => 'qof soconaya: jidh madaw, midig u jeeda',
     '🧍🏻‍♂' => 'nin taaggan: jidh fudud',
     '🧍🏼‍♂' => 'nin taaggan: jidh fudud oo dhexe',
     '🧍🏽‍♂' => 'nin taaggan: jidh nooc dhexe',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'naag jilba dhiganaysa: jidh nooc dhexe',
     '🧎🏾‍♀' => 'naag jilba dhiganaysa: jidh nooc madaw oo dhexe',
     '🧎🏿‍♀' => 'naag jilba dhiganaysa: jidh madaw',
-    '🧎🏻‍➡' => 'qof jilbaha dhiganaya midig u jeeda',
-    '🧎🏼‍➡' => 'qof jilbaha dhiganaya midig u jeeda',
-    '🧎🏽‍➡' => 'qof jilbaha dhiganaya midig u jeeda',
-    '🧎🏾‍➡' => 'qof jilbaha dhiganaya midig u jeeda',
-    '🧎🏿‍➡' => 'qof jilbaha dhiganaya midig u jeeda',
+    '🧎🏻‍➡' => 'qof jilbaha dhiganaya: jidh fudud, midig u jeeda',
+    '🧎🏼‍➡' => 'qof jilbaha dhiganaya: jidh fudud oo dhexe, midig u jeeda',
+    '🧎🏽‍➡' => 'qof jilbaha dhiganaya: jidh nooc dhexe, midig u jeeda',
+    '🧎🏾‍➡' => 'qof jilbaha dhiganaya: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🧎🏿‍➡' => 'qof jilbaha dhiganaya: jidh madaw, midig u jeeda',
     '🧑🏻‍🦯' => 'qof wata bakoorad cas: jidh fudud',
     '🧑🏼‍🦯' => 'qof wata bakoorad cas: jidh fudud oo dhexe',
     '🧑🏽‍🦯' => 'qof wata bakoorad cas: jidh nooc dhexe',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'naag ordaysa: jidh nooc dhexe',
     '🏃🏾‍♀' => 'naag ordaysa: jidh nooc madaw oo dhexe',
     '🏃🏿‍♀' => 'naag ordaysa: jidh madaw',
-    '🏃🏻‍➡' => 'qof ordaya midig u jeeda',
-    '🏃🏼‍➡' => 'qof ordaya midig u jeeda',
-    '🏃🏽‍➡' => 'qof ordaya midig u jeeda',
-    '🏃🏾‍➡' => 'qof ordaya midig u jeeda',
-    '🏃🏿‍➡' => 'qof ordaya midig u jeeda',
+    '🏃🏻‍➡' => 'qof ordaya: jidh fudud, midig u jeeda',
+    '🏃🏼‍➡' => 'qof ordaya: jidh fudud oo dhexe, midig u jeeda',
+    '🏃🏽‍➡' => 'qof ordaya: jidh nooc dhexe, midig u jeeda',
+    '🏃🏾‍➡' => 'qof ordaya: jidh nooc madaw oo dhexe, midig u jeeda',
+    '🏃🏿‍➡' => 'qof ordaya: jidh madaw, midig u jeeda',
+    '👯🏻‍♀' => 'naag leh dhaggo bakayle: jidh fudud',
+    '👯🏼‍♀' => 'naag leh dhaggo bakayle: jidh fudud oo dhexe',
+    '👯🏽‍♀' => 'naag leh dhaggo bakayle: jidh nooc dhexe',
+    '👯🏾‍♀' => 'naag leh dhaggo bakayle: jidh nooc madaw oo dhexe',
+    '👯🏿‍♀' => 'naag leh dhaggo bakayle: jidh madaw',
+    '👯🏻‍♂' => 'rag leh dhaggo bakayle: jidh fudud',
+    '👯🏼‍♂' => 'rag leh dhaggo bakayle: jidh fudud oo dhexe',
+    '👯🏽‍♂' => 'rag leh dhaggo bakayle: jidh nooc dhexe',
+    '👯🏾‍♂' => 'rag leh dhaggo bakayle: jidh nooc madaw oo dhexe',
+    '👯🏿‍♂' => 'rag leh dhaggo bakayle: jidh madaw',
     '🧖🏻‍♂' => 'nin ku jira qol uummi ah: jidh fudud',
     '🧖🏼‍♂' => 'nin ku jira qol uummi ah: jidh fudud oo dhexe',
     '🧖🏽‍♂' => 'nin ku jira qol uummi ah: jidh nooc dhexe',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'naag jimicsanaysa: jidh nooc dhexe',
     '🤸🏾‍♀' => 'naag jimicsanaysa: jidh nooc madaw oo dhexe',
     '🤸🏿‍♀' => 'naag jimicsanaysa: jidh madaw',
+    '🤼🏻‍♀' => 'naaga lagdamaya: jidh fudud',
+    '🤼🏼‍♀' => 'naaga lagdamaya: jidh fudud oo dhexe',
+    '🤼🏽‍♀' => 'naaga lagdamaya: jidh nooc dhexe',
+    '🤼🏾‍♀' => 'naaga lagdamaya: jidh nooc madaw oo dhexe',
+    '🤼🏿‍♀' => 'naaga lagdamaya: jidh madaw',
+    '🤼🏻‍♂' => 'rag lagdamaya: jidh fudud',
+    '🤼🏼‍♂' => 'rag lagdamaya: jidh fudud oo dhexe',
+    '🤼🏽‍♂' => 'rag lagdamaya: jidh nooc dhexe',
+    '🤼🏾‍♂' => 'rag lagdamaya: jidh nooc madaw oo dhexe',
+    '🤼🏿‍♂' => 'rag lagdamaya: jidh madaw',
     '🤽🏻‍♂' => 'nin cayaaraya kubadda biyaha: jidh fudud',
     '🤽🏼‍♂' => 'nin cayaaraya kubadda biyaha: jidh fudud oo dhexe',
     '🤽🏽‍♂' => 'nin cayaaraya kubadda biyaha: jidh nooc dhexe',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'naag: timo walaaqan',
     '👩‍🦳' => 'naag: caddaan',
     '👩‍🦲' => 'naag: bidaar',
-    '🚶‍➡' => 'qof soconaya midig u jeeda',
-    '🧎‍➡' => 'qof jilbaha dhiganaya midig u jeeda',
-    '🏃‍➡' => 'qof ordaya midig u jeeda',
+    '🚶‍➡' => 'qof soconaya: midig u jeeda',
+    '🧎‍➡' => 'qof jilbaha dhiganaya: midig u jeeda',
+    '🏃‍➡' => 'qof ordaya: midig u jeeda',
     '👨‍👦' => 'Qooys caruur ah: ninka, wiil',
     '👨‍👧' => 'Qooys caruur ah: ninka, gabar',
     '👩‍👦' => 'Qooys caruur ah: naag, wiil',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'naag fadhida kursiga curyaanka macmal ah',
     '🏃‍♂' => 'nin ordaya',
     '🏃‍♀' => 'naag ordaysa',
+    '🧑‍🩰' => 'qoob ka ciyaare faneed',
     '👯‍♂' => 'rag leh dhaggo bakayle',
     '👯‍♀' => 'naag leh dhaggo bakayle',
     '🧖‍♂' => 'nin ku jira qol uummi ah',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'nin suud xiran oo milicsanaya: jidh nooc dhexe',
     '🕴🏾' => 'nin suud xiran oo milicsanaya: jidh nooc madaw oo dhexe',
     '🕴🏿' => 'nin suud xiran oo milicsanaya: jidh madaw',
+    '👯🏻' => 'dad leh dhaggo bakayle: jidh fudud',
+    '👯🏼' => 'dad leh dhaggo bakayle: jidh fudud oo dhexe',
+    '👯🏽' => 'dad leh dhaggo bakayle: jidh nooc dhexe',
+    '👯🏾' => 'dad leh dhaggo bakayle: jidh nooc madaw oo dhexe',
+    '👯🏿' => 'dad leh dhaggo bakayle: jidh madaw',
     '🧖🏻' => 'qof ku jira qol uummi ah: jidh fudud',
     '🧖🏼' => 'qof ku jira qol uummi ah: jidh fudud oo dhexe',
     '🧖🏽' => 'qof ku jira qol uummi ah: jidh nooc dhexe',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'qof samayanaya jimicsiga gacma saarka: jidh nooc dhexe',
     '🤸🏾' => 'qof samayanaya jimicsiga gacma saarka: jidh nooc madaw oo dhexe',
     '🤸🏿' => 'qof samayanaya jimicsiga gacma saarka: jidh madaw',
+    '🤼🏻' => 'dad lagdamaya: jidh fudud',
+    '🤼🏼' => 'dad lagdamaya: jidh fudud oo dhexe',
+    '🤼🏽' => 'dad lagdamaya: jidh nooc dhexe',
+    '🤼🏾' => 'dad lagdamaya: jidh nooc madaw oo dhexe',
+    '🤼🏿' => 'dad lagdamaya: jidh madaw',
     '🤽🏻' => 'qof cayaaraya kubadda biyaha: jidh fudud',
     '🤽🏼' => 'qof cayaaraya kubadda biyaha: jidh fudud oo dhexe',
     '🤽🏽' => 'qof cayaaraya kubadda biyaha: jidh nooc dhexe',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'calan: Shiinaha',
     '🇨🇴' => 'calan: Koloombiya',
     '🇨🇵' => 'calan: Jasiiradda Kilibarton',
+    '🇨🇶' => 'calan: Sark',
     '🇨🇷' => 'calan: Costa Rica',
     '🇨🇺' => 'calan: Kuuba',
     '🇨🇻' => 'calan: Jasiiradda Kayb Faarde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'jidh nooc dhexe',
     '🏾' => 'jidh nooc madaw oo dhexe',
     '🏿' => 'jidh madaw',
-    '🪉' => 'gitaar',
-    '🪏' => 'badeel',
-    '🪾' => 'geed caleen la’aan ah',
-    '🫆' => 'sawirka faraha',
-    '🫜' => 'khudradda xididka ah',
-    '🫟' => 'firdhiye',
-    '🫩' => 'weji ay baagag uga hoos yaalan indhaha',
     '😀' => 'dareenka wajiga',
     '😃' => 'muuqaalka wejiga indhaha weyn',
     '😄' => 'waji indho dhoola cadynaya leh',
@@ -2450,6 +2600,7 @@
     '😪' => 'waji hurdeysan',
     '🤤' => 'waji dhareer',
     '😴' => 'waji hurdadeysan',
+    '🫩' => 'weji ay baagag uga hoos yaalan indhaha',
     '😷' => 'waji maaskaro caafimaad leh',
     '🤒' => 'waji leh heerkulbeegga',
     '🤕' => 'waji leh faashid madaxeed',
@@ -2476,6 +2627,7 @@
     '😯' => 'waji iftiimaayo',
     '😲' => 'waji amakaagsan',
     '😳' => 'waji xishood leh',
+    '🫪' => 'weji la qaloociyay',
     '🥺' => 'waji doodsan',
     '🥹' => 'wajah adoo oohinta celinaya',
     '😦' => 'waji macbuus af furan leh',
@@ -2547,6 +2699,7 @@
     '💋' => 'calaamadda dhunkashada',
     '💯' => 'boqol dhibco',
     '💢' => 'calaamadda xanaaqa',
+    '🫯' => 'daruur dagaalameyso',
     '💥' => 'isku dhac',
     '💫' => 'wareer',
     '💦' => 'dhibco dhidid ah',
@@ -2556,7 +2709,7 @@
     '🗨' => 'xumbo hadal bidix',
     '🗯' => 'xanaaqa xumbo midig',
     '💭' => 'baalluunta fakarka',
-    '💤' => 'zzz calaamadda hurdada',
+    '💤' => 'ZZZ',
     '👋' => 'gacan haadin',
     '🤚' => 'kor u qaaday gacanta gadaal',
     '🖐' => 'gacan iyo faraha ayaa lagu fidiyay',
@@ -2670,6 +2823,7 @@
     '🧞' => 'jinka',
     '🧟' => 'qof dhintay soo noolaaday',
     '🧌' => 'foolxun',
+    '🫈' => 'makhluuqa xaadoolaha',
     '💆' => 'qof loo duugayo',
     '💇' => 'qof timaha loo jarayo',
     '🚶' => 'qof soconaya',
@@ -2713,6 +2867,7 @@
     '🫂' => 'dad hab isi siinaya',
     '👪' => 'Qooys caruur ah',
     '👣' => 'raadad',
+    '🫆' => 'sawirka faraha',
     '🦰' => 'timo cas',
     '🦱' => 'timo walaaqan',
     '🦳' => 'caddaan',
@@ -2812,6 +2967,7 @@
     '🐳' => 'nibiriga mataga',
     '🐋' => 'nibiri',
     '🐬' => 'hoon-baro',
+    '🫍' => 'nibiriga orkaha',
     '🦭' => 'shaabad',
     '🐟' => 'kalluun',
     '🐠' => 'kalluunka kulaylaha',
@@ -2821,6 +2977,11 @@
     '🐚' => 'xanjaleel wareegaya',
     '🪸' => 'dhagax badeed',
     '🪼' => 'kaluun qolof leh',
+    '🦀' => 'carsaanyo',
+    '🦞' => 'argoosto',
+    '🦐' => 'kalluun qolof la shiilay',
+    '🦑' => 'xayawaan badeed',
+    '🦪' => 'lohod',
     '🐌' => 'dixiri qolof leh',
     '🦋' => 'balanbaalis',
     '🐛' => 'kutaan',
@@ -2865,6 +3026,7 @@
     '🪹' => 'buul faaruq ah',
     '🪺' => 'buul leh ukumo',
     '🍄' => 'barkin waraabe',
+    '🪾' => 'geed caleen la’aan ah',
     '🍇' => 'canab',
     '🍈' => 'batiikh',
     '🍉' => 'qare',
@@ -2901,6 +3063,7 @@
     '🌰' => 'loows duban',
     '🫚' => 'xidid sinjibiil',
     '🫛' => 'Qubka digirta',
+    '🫜' => 'khudradda xididka ah',
     '🍞' => 'rooti',
     '🥐' => 'qureec faransiis macaan',
     '🥖' => 'rootiga baguette-ka',
@@ -2952,11 +3115,6 @@
     '🥟' => 'cajiimid',
     '🥠' => 'buskud macaan',
     '🥡' => 'sabduuqa lohodka lagu qaato',
-    '🦀' => 'carsaanyo',
-    '🦞' => 'argoosto',
-    '🦐' => 'kalluun qolof la shiilay',
-    '🦑' => 'xayawaan badeed',
-    '🦪' => 'lohod',
     '🍦' => 'jallaato jilicsan',
     '🍧' => 'macmacaan baraf la buburiyay',
     '🍨' => 'jallaato',
@@ -3007,6 +3165,7 @@
     '🧭' => 'jiheeye',
     '🏔' => 'buur baraf ah',
     '⛰' => 'buur',
+    '🛘' => 'dhul go’id',
     '🌋' => 'folkano',
     '🗻' => 'buurta fuji',
     '🏕' => 'xero',
@@ -3367,16 +3526,18 @@
     '🎧' => 'dhago',
     '📻' => 'raadiyow',
     '🎷' => 'buun',
+    '🎺' => 'fuugwo',
+    '🪊' => 'turumbo',
     '🪗' => 'alab muusik',
     '🎸' => 'giitaar',
     '🎹' => 'kiiboodhka muusika',
-    '🎺' => 'fuugwo',
     '🎻' => 'seese',
     '🪕' => 'gitaar nooc mareykan ah',
     '🥁' => 'durbaan',
     '🪘' => 'durbaan dheer',
     '🪇' => 'maracas',
     '🪈' => 'biibiile',
+    '🪉' => 'gitaar',
     '📱' => 'moobil',
     '📲' => 'moobil leh xariiq',
     '☎' => 'telefoon',
@@ -3430,8 +3591,9 @@
     '📑' => 'qeybaha calaamadeynta buuga',
     '🔖' => 'calaamadeeye',
     '🏷' => 'warqad wax sheegaysa',
-    '💰' => 'bac lacaga',
     '🪙' => 'lacag bir ah',
+    '💰' => 'bac lacaga',
+    '🪎' => 'sanduuqa keyd maaliyadeedka',
     '💴' => 'lacag yeen ah',
     '💵' => 'lacag doolar ah',
     '💶' => 'lacag yuuro ah',
@@ -3514,6 +3676,7 @@
     '🧰' => 'tuulbogos',
     '🧲' => 'birlab',
     '🪜' => 'jaranjaro',
+    '🪏' => 'badeel',
     '⚗' => 'qalab nadiifin',
     '🧪' => 'tuyuubka tijaabinta',
     '🧫' => 'saxan wax laga dhex arki karo',
@@ -3697,6 +3860,7 @@
     '✴' => 'xiddig siddeed geeslood oo tilmaama',
     '❇' => 'dhalaal',
     '™' => 'sumadda ganacsiga',
+    '🫟' => 'firdhiye',
     '🔠' => 'geli xarfa weyn oo latin ah',
     '🔡' => 'geli xarfo latin oo yar yar',
     '🔢' => 'geli tirooyin',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sq.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sq.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sq.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sq.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'puthje: grua, grua, nuancë lëkure e errët e nuancë lëkure zeshkane',
     '👩🏿‍❤‍💋‍👩🏾' => 'puthje: grua, grua, nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
     '👩🏿‍❤‍💋‍👩🏿' => 'puthje: grua, grua e nuancë lëkure e errët',
+    '🧑🏻‍🫯‍🧑🏼' => 'mundës: nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
+    '🧑🏻‍🫯‍🧑🏽' => 'mundës: nuancë lëkure e çelët e nuancë lëkure zeshkane',
+    '🧑🏻‍🫯‍🧑🏾' => 'mundës: nuancë lëkure e çelët e nuancë lëkure gjysmë e errët',
+    '🧑🏻‍🫯‍🧑🏿' => 'mundës: nuancë lëkure e çelët e nuancë lëkure e errët',
+    '🧑🏼‍🫯‍🧑🏻' => 'mundës: nuancë lëkure gjysmë e çelët e nuancë lëkure e çelët',
+    '🧑🏼‍🫯‍🧑🏽' => 'mundës: nuancë lëkure gjysmë e çelët e nuancë lëkure zeshkane',
+    '🧑🏼‍🫯‍🧑🏾' => 'mundës: nuancë lëkure gjysmë e çelët e nuancë lëkure gjysmë e errët',
+    '🧑🏼‍🫯‍🧑🏿' => 'mundës: nuancë lëkure gjysmë e çelët e nuancë lëkure e errët',
+    '🧑🏽‍🫯‍🧑🏻' => 'mundës: nuancë lëkure zeshkane e nuancë lëkure e çelët',
+    '🧑🏽‍🫯‍🧑🏼' => 'mundës: nuancë lëkure zeshkane e nuancë lëkure gjysmë e çelët',
+    '🧑🏽‍🫯‍🧑🏾' => 'mundës: nuancë lëkure zeshkane e nuancë lëkure gjysmë e errët',
+    '🧑🏽‍🫯‍🧑🏿' => 'mundës: nuancë lëkure zeshkane e nuancë lëkure e errët',
+    '🧑🏾‍🫯‍🧑🏻' => 'mundës: nuancë lëkure gjysmë e errët e nuancë lëkure e çelët',
+    '🧑🏾‍🫯‍🧑🏼' => 'mundës: nuancë lëkure gjysmë e errët e nuancë lëkure gjysmë e çelët',
+    '🧑🏾‍🫯‍🧑🏽' => 'mundës: nuancë lëkure gjysmë e errët e nuancë lëkure zeshkane',
+    '🧑🏾‍🫯‍🧑🏿' => 'mundës: nuancë lëkure gjysmë e errët e nuancë lëkure e errët',
+    '🧑🏿‍🫯‍🧑🏻' => 'mundës: nuancë lëkure e errët e nuancë lëkure e çelët',
+    '🧑🏿‍🫯‍🧑🏼' => 'mundës: nuancë lëkure e errët e nuancë lëkure gjysmë e çelët',
+    '🧑🏿‍🫯‍🧑🏽' => 'mundës: nuancë lëkure e errët e nuancë lëkure zeshkane',
+    '🧑🏿‍🫯‍🧑🏾' => 'mundës: nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
     '🧑🏻‍❤‍🧑🏼' => 'çift me zemër: fëmijë i rritur, fëmijë i rritur, nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
     '🧑🏻‍❤‍🧑🏽' => 'çift me zemër: fëmijë i rritur, fëmijë i rritur, nuancë lëkure e çelët e nuancë lëkure zeshkane',
     '🧑🏻‍❤‍🧑🏾' => 'çift me zemër: fëmijë i rritur, fëmijë i rritur, nuancë lëkure e çelët e nuancë lëkure gjysmë e errët',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'çift me zemër: fëmijë i rritur, fëmijë i rritur, nuancë lëkure e errët e nuancë lëkure gjysmë e çelët',
     '🧑🏿‍❤‍🧑🏽' => 'çift me zemër: fëmijë i rritur, fëmijë i rritur, nuancë lëkure e errët e nuancë lëkure zeshkane',
     '🧑🏿‍❤‍🧑🏾' => 'çift me zemër: fëmijë i rritur, fëmijë i rritur, nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
+    '🧑🏻‍🐰‍🧑🏼' => 'gra duke festuar: nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
+    '🧑🏻‍🐰‍🧑🏽' => 'gra duke festuar: nuancë lëkure e çelët e nuancë lëkure zeshkane',
+    '🧑🏻‍🐰‍🧑🏾' => 'gra duke festuar: nuancë lëkure e çelët e nuancë lëkure gjysmë e errët',
+    '🧑🏻‍🐰‍🧑🏿' => 'gra duke festuar: nuancë lëkure e çelët e nuancë lëkure e errët',
+    '🧑🏼‍🐰‍🧑🏻' => 'gra duke festuar: nuancë lëkure gjysmë e çelët e nuancë lëkure e çelët',
+    '🧑🏼‍🐰‍🧑🏽' => 'gra duke festuar: nuancë lëkure gjysmë e çelët e nuancë lëkure zeshkane',
+    '🧑🏼‍🐰‍🧑🏾' => 'gra duke festuar: nuancë lëkure gjysmë e çelët e nuancë lëkure gjysmë e errët',
+    '🧑🏼‍🐰‍🧑🏿' => 'gra duke festuar: nuancë lëkure gjysmë e çelët e nuancë lëkure e errët',
+    '🧑🏽‍🐰‍🧑🏻' => 'gra duke festuar: nuancë lëkure zeshkane e nuancë lëkure e çelët',
+    '🧑🏽‍🐰‍🧑🏼' => 'gra duke festuar: nuancë lëkure zeshkane e nuancë lëkure gjysmë e çelët',
+    '🧑🏽‍🐰‍🧑🏾' => 'gra duke festuar: nuancë lëkure zeshkane e nuancë lëkure gjysmë e errët',
+    '🧑🏽‍🐰‍🧑🏿' => 'gra duke festuar: nuancë lëkure zeshkane e nuancë lëkure e errët',
+    '🧑🏾‍🐰‍🧑🏻' => 'gra duke festuar: nuancë lëkure gjysmë e errët e nuancë lëkure e çelët',
+    '🧑🏾‍🐰‍🧑🏼' => 'gra duke festuar: nuancë lëkure gjysmë e errët e nuancë lëkure gjysmë e çelët',
+    '🧑🏾‍🐰‍🧑🏽' => 'gra duke festuar: nuancë lëkure gjysmë e errët e nuancë lëkure zeshkane',
+    '🧑🏾‍🐰‍🧑🏿' => 'gra duke festuar: nuancë lëkure gjysmë e errët e nuancë lëkure e errët',
+    '🧑🏿‍🐰‍🧑🏻' => 'gra duke festuar: nuancë lëkure e errët e nuancë lëkure e çelët',
+    '🧑🏿‍🐰‍🧑🏼' => 'gra duke festuar: nuancë lëkure e errët e nuancë lëkure gjysmë e çelët',
+    '🧑🏿‍🐰‍🧑🏽' => 'gra duke festuar: nuancë lëkure e errët e nuancë lëkure zeshkane',
+    '🧑🏿‍🐰‍🧑🏾' => 'gra duke festuar: nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
+    '👨🏻‍🫯‍👨🏼' => 'burra që bëjnë mundje: nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
+    '👨🏻‍🫯‍👨🏽' => 'burra që bëjnë mundje: nuancë lëkure e çelët e nuancë lëkure zeshkane',
+    '👨🏻‍🫯‍👨🏾' => 'burra që bëjnë mundje: nuancë lëkure e çelët e nuancë lëkure gjysmë e errët',
+    '👨🏻‍🫯‍👨🏿' => 'burra që bëjnë mundje: nuancë lëkure e çelët e nuancë lëkure e errët',
+    '👨🏼‍🫯‍👨🏻' => 'burra që bëjnë mundje: nuancë lëkure gjysmë e çelët e nuancë lëkure e çelët',
+    '👨🏼‍🫯‍👨🏽' => 'burra që bëjnë mundje: nuancë lëkure gjysmë e çelët e nuancë lëkure zeshkane',
+    '👨🏼‍🫯‍👨🏾' => 'burra që bëjnë mundje: nuancë lëkure gjysmë e çelët e nuancë lëkure gjysmë e errët',
+    '👨🏼‍🫯‍👨🏿' => 'burra që bëjnë mundje: nuancë lëkure gjysmë e çelët e nuancë lëkure e errët',
+    '👨🏽‍🫯‍👨🏻' => 'burra që bëjnë mundje: nuancë lëkure zeshkane e nuancë lëkure e çelët',
+    '👨🏽‍🫯‍👨🏼' => 'burra që bëjnë mundje: nuancë lëkure zeshkane e nuancë lëkure gjysmë e çelët',
+    '👨🏽‍🫯‍👨🏾' => 'burra që bëjnë mundje: nuancë lëkure zeshkane e nuancë lëkure gjysmë e errët',
+    '👨🏽‍🫯‍👨🏿' => 'burra që bëjnë mundje: nuancë lëkure zeshkane e nuancë lëkure e errët',
+    '👨🏾‍🫯‍👨🏻' => 'burra që bëjnë mundje: nuancë lëkure gjysmë e errët e nuancë lëkure e çelët',
+    '👨🏾‍🫯‍👨🏼' => 'burra që bëjnë mundje: nuancë lëkure gjysmë e errët e nuancë lëkure gjysmë e çelët',
+    '👨🏾‍🫯‍👨🏽' => 'burra që bëjnë mundje: nuancë lëkure gjysmë e errët e nuancë lëkure zeshkane',
+    '👨🏾‍🫯‍👨🏿' => 'burra që bëjnë mundje: nuancë lëkure gjysmë e errët e nuancë lëkure e errët',
+    '👨🏿‍🫯‍👨🏻' => 'burra që bëjnë mundje: nuancë lëkure e errët e nuancë lëkure e çelët',
+    '👨🏿‍🫯‍👨🏼' => 'burra që bëjnë mundje: nuancë lëkure e errët e nuancë lëkure gjysmë e çelët',
+    '👨🏿‍🫯‍👨🏽' => 'burra që bëjnë mundje: nuancë lëkure e errët e nuancë lëkure zeshkane',
+    '👨🏿‍🫯‍👨🏾' => 'burra që bëjnë mundje: nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
     '👨🏻‍❤‍👨🏻' => 'çift me zemër: burrë, burrë e nuancë lëkure e çelët',
     '👨🏻‍❤‍👨🏼' => 'çift me zemër: burrë, burrë, nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
     '👨🏻‍❤‍👨🏽' => 'çift me zemër: burrë, burrë, nuancë lëkure e çelët e nuancë lëkure zeshkane',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'çift me zemër: burrë, burrë, nuancë lëkure e errët e nuancë lëkure zeshkane',
     '👨🏿‍❤‍👨🏾' => 'çift me zemër: burrë, burrë, nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
     '👨🏿‍❤‍👨🏿' => 'çift me zemër: burrë, burrë e nuancë lëkure e errët',
+    '👨🏻‍🐰‍👨🏼' => 'burra që festojnë: nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
+    '👨🏻‍🐰‍👨🏽' => 'burra që festojnë: nuancë lëkure e çelët e nuancë lëkure zeshkane',
+    '👨🏻‍🐰‍👨🏾' => 'burra që festojnë: nuancë lëkure e çelët e nuancë lëkure gjysmë e errët',
+    '👨🏻‍🐰‍👨🏿' => 'burra që festojnë: nuancë lëkure e çelët e nuancë lëkure e errët',
+    '👨🏼‍🐰‍👨🏻' => 'burra që festojnë: nuancë lëkure gjysmë e çelët e nuancë lëkure e çelët',
+    '👨🏼‍🐰‍👨🏽' => 'burra që festojnë: nuancë lëkure gjysmë e çelët e nuancë lëkure zeshkane',
+    '👨🏼‍🐰‍👨🏾' => 'burra që festojnë: nuancë lëkure gjysmë e çelët e nuancë lëkure gjysmë e errët',
+    '👨🏼‍🐰‍👨🏿' => 'burra që festojnë: nuancë lëkure gjysmë e çelët e nuancë lëkure e errët',
+    '👨🏽‍🐰‍👨🏻' => 'burra që festojnë: nuancë lëkure zeshkane e nuancë lëkure e çelët',
+    '👨🏽‍🐰‍👨🏼' => 'burra që festojnë: nuancë lëkure zeshkane e nuancë lëkure gjysmë e çelët',
+    '👨🏽‍🐰‍👨🏾' => 'burra që festojnë: nuancë lëkure zeshkane e nuancë lëkure gjysmë e errët',
+    '👨🏽‍🐰‍👨🏿' => 'burra që festojnë: nuancë lëkure zeshkane e nuancë lëkure e errët',
+    '👨🏾‍🐰‍👨🏻' => 'burra që festojnë: nuancë lëkure gjysmë e errët e nuancë lëkure e çelët',
+    '👨🏾‍🐰‍👨🏼' => 'burra që festojnë: nuancë lëkure gjysmë e errët e nuancë lëkure gjysmë e çelët',
+    '👨🏾‍🐰‍👨🏽' => 'burra që festojnë: nuancë lëkure gjysmë e errët e nuancë lëkure zeshkane',
+    '👨🏾‍🐰‍👨🏿' => 'burra që festojnë: nuancë lëkure gjysmë e errët e nuancë lëkure e errët',
+    '👨🏿‍🐰‍👨🏻' => 'burra që festojnë: nuancë lëkure e errët e nuancë lëkure e çelët',
+    '👨🏿‍🐰‍👨🏼' => 'burra që festojnë: nuancë lëkure e errët e nuancë lëkure gjysmë e çelët',
+    '👨🏿‍🐰‍👨🏽' => 'burra që festojnë: nuancë lëkure e errët e nuancë lëkure zeshkane',
+    '👨🏿‍🐰‍👨🏾' => 'burra që festojnë: nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
+    '👩🏻‍🫯‍👩🏼' => 'gra që bëjnë mundje: nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
+    '👩🏻‍🫯‍👩🏽' => 'gra që bëjnë mundje: nuancë lëkure e çelët e nuancë lëkure zeshkane',
+    '👩🏻‍🫯‍👩🏾' => 'gra që bëjnë mundje: nuancë lëkure e çelët e nuancë lëkure gjysmë e errët',
+    '👩🏻‍🫯‍👩🏿' => 'gra që bëjnë mundje: nuancë lëkure e çelët e nuancë lëkure e errët',
+    '👩🏼‍🫯‍👩🏻' => 'gra që bëjnë mundje: nuancë lëkure gjysmë e çelët e nuancë lëkure e çelët',
+    '👩🏼‍🫯‍👩🏽' => 'gra që bëjnë mundje: nuancë lëkure gjysmë e çelët e nuancë lëkure zeshkane',
+    '👩🏼‍🫯‍👩🏾' => 'gra që bëjnë mundje: nuancë lëkure gjysmë e çelët e nuancë lëkure gjysmë e errët',
+    '👩🏼‍🫯‍👩🏿' => 'gra që bëjnë mundje: nuancë lëkure gjysmë e çelët e nuancë lëkure e errët',
+    '👩🏽‍🫯‍👩🏻' => 'gra që bëjnë mundje: nuancë lëkure zeshkane e nuancë lëkure e çelët',
+    '👩🏽‍🫯‍👩🏼' => 'gra që bëjnë mundje: nuancë lëkure zeshkane e nuancë lëkure gjysmë e çelët',
+    '👩🏽‍🫯‍👩🏾' => 'gra që bëjnë mundje: nuancë lëkure zeshkane e nuancë lëkure gjysmë e errët',
+    '👩🏽‍🫯‍👩🏿' => 'gra që bëjnë mundje: nuancë lëkure zeshkane e nuancë lëkure e errët',
+    '👩🏾‍🫯‍👩🏻' => 'gra që bëjnë mundje: nuancë lëkure gjysmë e errët e nuancë lëkure e çelët',
+    '👩🏾‍🫯‍👩🏼' => 'gra që bëjnë mundje: nuancë lëkure gjysmë e errët e nuancë lëkure gjysmë e çelët',
+    '👩🏾‍🫯‍👩🏽' => 'gra që bëjnë mundje: nuancë lëkure gjysmë e errët e nuancë lëkure zeshkane',
+    '👩🏾‍🫯‍👩🏿' => 'gra që bëjnë mundje: nuancë lëkure gjysmë e errët e nuancë lëkure e errët',
+    '👩🏿‍🫯‍👩🏻' => 'gra që bëjnë mundje: nuancë lëkure e errët e nuancë lëkure e çelët',
+    '👩🏿‍🫯‍👩🏼' => 'gra që bëjnë mundje: nuancë lëkure e errët e nuancë lëkure gjysmë e çelët',
+    '👩🏿‍🫯‍👩🏽' => 'gra që bëjnë mundje: nuancë lëkure e errët e nuancë lëkure zeshkane',
+    '👩🏿‍🫯‍👩🏾' => 'gra që bëjnë mundje: nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
     '👩🏻‍❤‍👨🏻' => 'çift me zemër: grua, burrë e nuancë lëkure e çelët',
     '👩🏻‍❤‍👨🏼' => 'çift me zemër: grua, burrë, nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
     '👩🏻‍❤‍👨🏽' => 'çift me zemër: grua, burrë, nuancë lëkure e çelët e nuancë lëkure zeshkane',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'çift me zemër: grua, grua, nuancë lëkure e errët e nuancë lëkure zeshkane',
     '👩🏿‍❤‍👩🏾' => 'çift me zemër: grua, grua, nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
     '👩🏿‍❤‍👩🏿' => 'çift me zemër: grua, grua e nuancë lëkure e errët',
+    '👩🏻‍🐰‍👩🏼' => 'gra që festojnë: nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
+    '👩🏻‍🐰‍👩🏽' => 'gra që festojnë: nuancë lëkure e çelët e nuancë lëkure zeshkane',
+    '👩🏻‍🐰‍👩🏾' => 'gra që festojnë: nuancë lëkure e çelët e nuancë lëkure gjysmë e errët',
+    '👩🏻‍🐰‍👩🏿' => 'gra që festojnë: nuancë lëkure e çelët e nuancë lëkure e errët',
+    '👩🏼‍🐰‍👩🏻' => 'gra që festojnë: nuancë lëkure gjysmë e çelët e nuancë lëkure e çelët',
+    '👩🏼‍🐰‍👩🏽' => 'gra që festojnë: nuancë lëkure gjysmë e çelët e nuancë lëkure zeshkane',
+    '👩🏼‍🐰‍👩🏾' => 'gra që festojnë: nuancë lëkure gjysmë e çelët e nuancë lëkure gjysmë e errët',
+    '👩🏼‍🐰‍👩🏿' => 'gra që festojnë: nuancë lëkure gjysmë e çelët e nuancë lëkure e errët',
+    '👩🏽‍🐰‍👩🏻' => 'gra që festojnë: nuancë lëkure zeshkane e nuancë lëkure e çelët',
+    '👩🏽‍🐰‍👩🏼' => 'gra që festojnë: nuancë lëkure zeshkane e nuancë lëkure gjysmë e çelët',
+    '👩🏽‍🐰‍👩🏾' => 'gra që festojnë: nuancë lëkure zeshkane e nuancë lëkure gjysmë e errët',
+    '👩🏽‍🐰‍👩🏿' => 'gra që festojnë: nuancë lëkure zeshkane e nuancë lëkure e errët',
+    '👩🏾‍🐰‍👩🏻' => 'gra që festojnë: nuancë lëkure gjysmë e errët e nuancë lëkure e çelët',
+    '👩🏾‍🐰‍👩🏼' => 'gra që festojnë: nuancë lëkure gjysmë e errët e nuancë lëkure gjysmë e çelët',
+    '👩🏾‍🐰‍👩🏽' => 'gra që festojnë: nuancë lëkure gjysmë e errët e nuancë lëkure zeshkane',
+    '👩🏾‍🐰‍👩🏿' => 'gra që festojnë: nuancë lëkure gjysmë e errët e nuancë lëkure e errët',
+    '👩🏿‍🐰‍👩🏻' => 'gra që festojnë: nuancë lëkure e errët e nuancë lëkure e çelët',
+    '👩🏿‍🐰‍👩🏼' => 'gra që festojnë: nuancë lëkure e errët e nuancë lëkure gjysmë e çelët',
+    '👩🏿‍🐰‍👩🏽' => 'gra që festojnë: nuancë lëkure e errët e nuancë lëkure zeshkane',
+    '👩🏿‍🐰‍👩🏾' => 'gra që festojnë: nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
     '🧑🏻‍🤝‍🧑🏻' => 'njerëz të kapur për duarsh: nuancë lëkure e çelët',
     '🧑🏻‍🤝‍🧑🏼' => 'njerëz të kapur për duarsh: nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
     '🧑🏻‍🤝‍🧑🏽' => 'njerëz të kapur për duarsh: nuancë lëkure e çelët e nuancë lëkure zeshkane',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flamur: Skoci',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flamur: Uells',
     '🧑‍🧑‍🧒‍🧒' => 'familje: i rritur, i rritur, fëmijë, fëmijë',
-    '🚶🏻‍♀‍➡' => 'grua që ecën me drejtim djathtas',
-    '🚶🏼‍♀‍➡' => 'grua që ecën me drejtim djathtas',
-    '🚶🏽‍♀‍➡' => 'grua që ecën me drejtim djathtas',
-    '🚶🏾‍♀‍➡' => 'grua që ecën me drejtim djathtas',
-    '🚶🏿‍♀‍➡' => 'grua që ecën me drejtim djathtas',
-    '🚶🏻‍♂‍➡' => 'burrë që ecën me drejtim djathtas',
-    '🚶🏼‍♂‍➡' => 'burrë që ecën me drejtim djathtas',
-    '🚶🏽‍♂‍➡' => 'burrë që ecën me drejtim djathtas',
-    '🚶🏾‍♂‍➡' => 'burrë që ecën me drejtim djathtas',
-    '🚶🏿‍♂‍➡' => 'burrë që ecën me drejtim djathtas',
-    '🧎🏻‍♀‍➡' => 'grua në gjunjë me drejtim djathtas',
-    '🧎🏼‍♀‍➡' => 'grua në gjunjë me drejtim djathtas',
-    '🧎🏽‍♀‍➡' => 'grua në gjunjë me drejtim djathtas',
-    '🧎🏾‍♀‍➡' => 'grua në gjunjë me drejtim djathtas',
-    '🧎🏿‍♀‍➡' => 'grua në gjunjë me drejtim djathtas',
-    '🧎🏻‍♂‍➡' => 'burrë në gjunjë me drejtim djathtas',
-    '🧎🏼‍♂‍➡' => 'burrë në gjunjë me drejtim djathtas',
-    '🧎🏽‍♂‍➡' => 'burrë në gjunjë me drejtim djathtas',
-    '🧎🏾‍♂‍➡' => 'burrë në gjunjë me drejtim djathtas',
-    '🧎🏿‍♂‍➡' => 'burrë në gjunjë me drejtim djathtas',
-    '🧑🏻‍🦯‍➡' => 'person me shkop gjurmimi me drejtim djathtas',
-    '🧑🏼‍🦯‍➡' => 'person me shkop gjurmimi me drejtim djathtas',
-    '🧑🏽‍🦯‍➡' => 'person me shkop gjurmimi me drejtim djathtas',
-    '🧑🏾‍🦯‍➡' => 'person me shkop gjurmimi me drejtim djathtas',
-    '🧑🏿‍🦯‍➡' => 'person me shkop gjurmimi me drejtim djathtas',
-    '👨🏻‍🦯‍➡' => 'burrë me shkop gjurmimi me drejtim djathtas',
-    '👨🏼‍🦯‍➡' => 'burrë me shkop gjurmimi me drejtim djathtas',
-    '👨🏽‍🦯‍➡' => 'burrë me shkop gjurmimi me drejtim djathtas',
-    '👨🏾‍🦯‍➡' => 'burrë me shkop gjurmimi me drejtim djathtas',
-    '👨🏿‍🦯‍➡' => 'burrë me shkop gjurmimi me drejtim djathtas',
-    '👩🏻‍🦯‍➡' => 'grua me shkop gjurmimi me drejtim djathtas',
-    '👩🏼‍🦯‍➡' => 'grua me shkop gjurmimi me drejtim djathtas',
-    '👩🏽‍🦯‍➡' => 'grua me shkop gjurmimi me drejtim djathtas',
-    '👩🏾‍🦯‍➡' => 'grua me shkop gjurmimi me drejtim djathtas',
-    '👩🏿‍🦯‍➡' => 'grua me shkop gjurmimi me drejtim djathtas',
-    '🧑🏻‍🦼‍➡' => 'person në karrocë të motorizuar invalidi me drejtim djathtas',
-    '🧑🏼‍🦼‍➡' => 'person në karrocë të motorizuar invalidi me drejtim djathtas',
-    '🧑🏽‍🦼‍➡' => 'person në karrocë të motorizuar invalidi me drejtim djathtas',
-    '🧑🏾‍🦼‍➡' => 'person në karrocë të motorizuar invalidi me drejtim djathtas',
-    '🧑🏿‍🦼‍➡' => 'person në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👨🏻‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👨🏼‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👨🏽‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👨🏾‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👨🏿‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👩🏻‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👩🏼‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👩🏽‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👩🏾‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👩🏿‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi me drejtim djathtas',
-    '🧑🏻‍🦽‍➡' => 'person në karrocë invalidi manuale me drejtim djathtas',
-    '🧑🏼‍🦽‍➡' => 'person në karrocë invalidi manuale me drejtim djathtas',
-    '🧑🏽‍🦽‍➡' => 'person në karrocë invalidi manuale me drejtim djathtas',
-    '🧑🏾‍🦽‍➡' => 'person në karrocë invalidi manuale me drejtim djathtas',
-    '🧑🏿‍🦽‍➡' => 'person në karrocë invalidi manuale me drejtim djathtas',
-    '👨🏻‍🦽‍➡' => 'burrë në karrocë manuale invalidi me drejtim djathtas',
-    '👨🏼‍🦽‍➡' => 'burrë në karrocë manuale invalidi me drejtim djathtas',
-    '👨🏽‍🦽‍➡' => 'burrë në karrocë manuale invalidi me drejtim djathtas',
-    '👨🏾‍🦽‍➡' => 'burrë në karrocë manuale invalidi me drejtim djathtas',
-    '👨🏿‍🦽‍➡' => 'burrë në karrocë manuale invalidi me drejtim djathtas',
-    '👩🏻‍🦽‍➡' => 'grua në karrocë manuale invalidi me drejtim djathtas',
-    '👩🏼‍🦽‍➡' => 'grua në karrocë manuale invalidi me drejtim djathtas',
-    '👩🏽‍🦽‍➡' => 'grua në karrocë manuale invalidi me drejtim djathtas',
-    '👩🏾‍🦽‍➡' => 'grua në karrocë manuale invalidi me drejtim djathtas',
-    '👩🏿‍🦽‍➡' => 'grua në karrocë manuale invalidi me drejtim djathtas',
-    '🏃🏻‍♀‍➡' => 'grua që vrapon me drejtim djathtas',
-    '🏃🏼‍♀‍➡' => 'grua që vrapon me drejtim djathtas',
-    '🏃🏽‍♀‍➡' => 'grua që vrapon me drejtim djathtas',
-    '🏃🏾‍♀‍➡' => 'grua që vrapon me drejtim djathtas',
-    '🏃🏿‍♀‍➡' => 'grua që vrapon me drejtim djathtas',
-    '🏃🏻‍♂‍➡' => 'burrë që vrapon me drejtim djathtas',
-    '🏃🏼‍♂‍➡' => 'burrë që vrapon me drejtim djathtas',
-    '🏃🏽‍♂‍➡' => 'burrë që vrapon me drejtim djathtas',
-    '🏃🏾‍♂‍➡' => 'burrë që vrapon me drejtim djathtas',
-    '🏃🏿‍♂‍➡' => 'burrë që vrapon me drejtim djathtas',
+    '🚶🏻‍♀‍➡' => 'grua që ecën: nuancë lëkure e çelët e me drejtim djathtas',
+    '🚶🏼‍♀‍➡' => 'grua që ecën: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🚶🏽‍♀‍➡' => 'grua që ecën: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🚶🏾‍♀‍➡' => 'grua që ecën: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🚶🏿‍♀‍➡' => 'grua që ecën: nuancë lëkure e errët e me drejtim djathtas',
+    '🚶🏻‍♂‍➡' => 'burrë që ecën: nuancë lëkure e çelët e me drejtim djathtas',
+    '🚶🏼‍♂‍➡' => 'burrë që ecën: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🚶🏽‍♂‍➡' => 'burrë që ecën: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🚶🏾‍♂‍➡' => 'burrë që ecën: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🚶🏿‍♂‍➡' => 'burrë që ecën: nuancë lëkure e errët e me drejtim djathtas',
+    '🧎🏻‍♀‍➡' => 'grua në gjunjë: nuancë lëkure e çelët e me drejtim djathtas',
+    '🧎🏼‍♀‍➡' => 'grua në gjunjë: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🧎🏽‍♀‍➡' => 'grua në gjunjë: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🧎🏾‍♀‍➡' => 'grua në gjunjë: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🧎🏿‍♀‍➡' => 'grua në gjunjë: nuancë lëkure e errët e me drejtim djathtas',
+    '🧎🏻‍♂‍➡' => 'burrë në gjunjë: nuancë lëkure e çelët e me drejtim djathtas',
+    '🧎🏼‍♂‍➡' => 'burrë në gjunjë: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🧎🏽‍♂‍➡' => 'burrë në gjunjë: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🧎🏾‍♂‍➡' => 'burrë në gjunjë: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🧎🏿‍♂‍➡' => 'burrë në gjunjë: nuancë lëkure e errët e me drejtim djathtas',
+    '🧑🏻‍🦯‍➡' => 'person me shkop gjurmimi: nuancë lëkure e çelët e me drejtim djathtas',
+    '🧑🏼‍🦯‍➡' => 'person me shkop gjurmimi: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🧑🏽‍🦯‍➡' => 'person me shkop gjurmimi: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🧑🏾‍🦯‍➡' => 'person me shkop gjurmimi: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🧑🏿‍🦯‍➡' => 'person me shkop gjurmimi: nuancë lëkure e errët e me drejtim djathtas',
+    '👨🏻‍🦯‍➡' => 'burrë me shkop gjurmimi: nuancë lëkure e çelët e me drejtim djathtas',
+    '👨🏼‍🦯‍➡' => 'burrë me shkop gjurmimi: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '👨🏽‍🦯‍➡' => 'burrë me shkop gjurmimi: nuancë lëkure zeshkane e me drejtim djathtas',
+    '👨🏾‍🦯‍➡' => 'burrë me shkop gjurmimi: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '👨🏿‍🦯‍➡' => 'burrë me shkop gjurmimi: nuancë lëkure e errët e me drejtim djathtas',
+    '👩🏻‍🦯‍➡' => 'grua me shkop gjurmimi: nuancë lëkure e çelët e me drejtim djathtas',
+    '👩🏼‍🦯‍➡' => 'grua me shkop gjurmimi: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '👩🏽‍🦯‍➡' => 'grua me shkop gjurmimi: nuancë lëkure zeshkane e me drejtim djathtas',
+    '👩🏾‍🦯‍➡' => 'grua me shkop gjurmimi: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '👩🏿‍🦯‍➡' => 'grua me shkop gjurmimi: nuancë lëkure e errët e me drejtim djathtas',
+    '🧑🏻‍🦼‍➡' => 'person në karrocë të motorizuar invalidi: nuancë lëkure e çelët e me drejtim djathtas',
+    '🧑🏼‍🦼‍➡' => 'person në karrocë të motorizuar invalidi: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🧑🏽‍🦼‍➡' => 'person në karrocë të motorizuar invalidi: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🧑🏾‍🦼‍➡' => 'person në karrocë të motorizuar invalidi: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🧑🏿‍🦼‍➡' => 'person në karrocë të motorizuar invalidi: nuancë lëkure e errët e me drejtim djathtas',
+    '👨🏻‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi: nuancë lëkure e çelët e me drejtim djathtas',
+    '👨🏼‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '👨🏽‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi: nuancë lëkure zeshkane e me drejtim djathtas',
+    '👨🏾‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '👨🏿‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi: nuancë lëkure e errët e me drejtim djathtas',
+    '👩🏻‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi: nuancë lëkure e çelët e me drejtim djathtas',
+    '👩🏼‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '👩🏽‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi: nuancë lëkure zeshkane e me drejtim djathtas',
+    '👩🏾‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '👩🏿‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi: nuancë lëkure e errët e me drejtim djathtas',
+    '🧑🏻‍🦽‍➡' => 'person në karrocë invalidi manuale: nuancë lëkure e çelët e me drejtim djathtas',
+    '🧑🏼‍🦽‍➡' => 'person në karrocë invalidi manuale: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🧑🏽‍🦽‍➡' => 'person në karrocë invalidi manuale: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🧑🏾‍🦽‍➡' => 'person në karrocë invalidi manuale: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🧑🏿‍🦽‍➡' => 'person në karrocë invalidi manuale: nuancë lëkure e errët e me drejtim djathtas',
+    '👨🏻‍🦽‍➡' => 'burrë në karrocë manuale invalidi: nuancë lëkure e çelët e me drejtim djathtas',
+    '👨🏼‍🦽‍➡' => 'burrë në karrocë manuale invalidi: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '👨🏽‍🦽‍➡' => 'burrë në karrocë manuale invalidi: nuancë lëkure zeshkane e me drejtim djathtas',
+    '👨🏾‍🦽‍➡' => 'burrë në karrocë manuale invalidi: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '👨🏿‍🦽‍➡' => 'burrë në karrocë manuale invalidi: nuancë lëkure e errët e me drejtim djathtas',
+    '👩🏻‍🦽‍➡' => 'grua në karrocë manuale invalidi: nuancë lëkure e çelët e me drejtim djathtas',
+    '👩🏼‍🦽‍➡' => 'grua në karrocë manuale invalidi: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '👩🏽‍🦽‍➡' => 'grua në karrocë manuale invalidi: nuancë lëkure zeshkane e me drejtim djathtas',
+    '👩🏾‍🦽‍➡' => 'grua në karrocë manuale invalidi: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '👩🏿‍🦽‍➡' => 'grua në karrocë manuale invalidi: nuancë lëkure e errët e me drejtim djathtas',
+    '🏃🏻‍♀‍➡' => 'grua që vrapon: nuancë lëkure e çelët e me drejtim djathtas',
+    '🏃🏼‍♀‍➡' => 'grua që vrapon: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🏃🏽‍♀‍➡' => 'grua që vrapon: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🏃🏾‍♀‍➡' => 'grua që vrapon: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🏃🏿‍♀‍➡' => 'grua që vrapon: nuancë lëkure e errët e me drejtim djathtas',
+    '🏃🏻‍♂‍➡' => 'burrë që vrapon: nuancë lëkure e çelët e me drejtim djathtas',
+    '🏃🏼‍♂‍➡' => 'burrë që vrapon: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🏃🏽‍♂‍➡' => 'burrë që vrapon: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🏃🏾‍♂‍➡' => 'burrë që vrapon: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🏃🏿‍♂‍➡' => 'burrë që vrapon: nuancë lëkure e errët e me drejtim djathtas',
     '🫱🏻‍🫲🏼' => 'shtrëngim duarsh: nuancë lëkure e çelët e nuancë lëkure gjysmë e çelët',
     '🫱🏻‍🫲🏽' => 'shtrëngim duarsh: nuancë lëkure e çelët e nuancë lëkure zeshkane',
     '🫱🏻‍🫲🏾' => 'shtrëngim duarsh: nuancë lëkure e çelët e nuancë lëkure gjysmë e errët',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'shtrëngim duarsh: nuancë lëkure e errët e nuancë lëkure gjysmë e çelët',
     '🫱🏿‍🫲🏽' => 'shtrëngim duarsh: nuancë lëkure e errët e nuancë lëkure zeshkane',
     '🫱🏿‍🫲🏾' => 'shtrëngim duarsh: nuancë lëkure e errët e nuancë lëkure gjysmë e errët',
-    '🚶‍♀‍➡' => 'grua që ecën me drejtim djathtas',
-    '🚶‍♂‍➡' => 'burrë që ecën me drejtim djathtas',
-    '🧎‍♀‍➡' => 'grua në gjunjë me drejtim djathtas',
-    '🧎‍♂‍➡' => 'burrë në gjunjë me drejtim djathtas',
-    '🧑‍🦯‍➡' => 'person me shkop gjurmimi me drejtim djathtas',
-    '👨‍🦯‍➡' => 'burrë me shkop gjurmimi me drejtim djathtas',
-    '👩‍🦯‍➡' => 'grua me shkop gjurmimi me drejtim djathtas',
-    '🧑‍🦼‍➡' => 'person në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👨‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi me drejtim djathtas',
-    '👩‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi me drejtim djathtas',
-    '🧑‍🦽‍➡' => 'person në karrocë invalidi manuale me drejtim djathtas',
-    '👨‍🦽‍➡' => 'burrë në karrocë manuale invalidi me drejtim djathtas',
-    '👩‍🦽‍➡' => 'grua në karrocë manuale invalidi me drejtim djathtas',
-    '🏃‍♀‍➡' => 'grua që vrapon me drejtim djathtas',
-    '🏃‍♂‍➡' => 'burrë që vrapon me drejtim djathtas',
+    '🚶‍♀‍➡' => 'grua që ecën: me drejtim djathtas',
+    '🚶‍♂‍➡' => 'burrë që ecën: me drejtim djathtas',
+    '🧎‍♀‍➡' => 'grua në gjunjë: me drejtim djathtas',
+    '🧎‍♂‍➡' => 'burrë në gjunjë: me drejtim djathtas',
+    '🧑‍🦯‍➡' => 'person me shkop gjurmimi: me drejtim djathtas',
+    '👨‍🦯‍➡' => 'burrë me shkop gjurmimi: me drejtim djathtas',
+    '👩‍🦯‍➡' => 'grua me shkop gjurmimi: me drejtim djathtas',
+    '🧑‍🦼‍➡' => 'person në karrocë të motorizuar invalidi: me drejtim djathtas',
+    '👨‍🦼‍➡' => 'burrë në karrocë të motorizuar invalidi: me drejtim djathtas',
+    '👩‍🦼‍➡' => 'grua në karrocë të motorizuar invalidi: me drejtim djathtas',
+    '🧑‍🦽‍➡' => 'person në karrocë invalidi manuale: me drejtim djathtas',
+    '👨‍🦽‍➡' => 'burrë në karrocë manuale invalidi: me drejtim djathtas',
+    '👩‍🦽‍➡' => 'grua në karrocë manuale invalidi: me drejtim djathtas',
+    '🏃‍♀‍➡' => 'grua që vrapon: me drejtim djathtas',
+    '🏃‍♂‍➡' => 'burrë që vrapon: me drejtim djathtas',
     '👩‍❤‍👨' => 'çift me zemër: grua e burrë',
     '👨‍❤‍👨' => 'çift me zemër: burrë e burrë',
     '👩‍❤‍👩' => 'çift me zemër: grua e grua',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'fëmijë i rritur: nuancë lëkure zeshkane e qeros',
     '🧑🏾‍🦲' => 'fëmijë i rritur: nuancë lëkure gjysmë e errët e qeros',
     '🧑🏿‍🦲' => 'fëmijë i rritur: nuancë lëkure e errët e qeros',
+    '🧑🏻‍🩰' => 'balerin: nuancë lëkure e çelët',
+    '🧑🏼‍🩰' => 'balerin: nuancë lëkure gjysmë e çelët',
+    '🧑🏽‍🩰' => 'balerin: nuancë lëkure zeshkane',
+    '🧑🏾‍🩰' => 'balerin: nuancë lëkure gjysmë e errët',
+    '🧑🏿‍🩰' => 'balerin: nuancë lëkure e errët',
     '🧔🏻‍♂' => 'burrë: nuancë lëkure e çelët e mjekër',
     '🧔🏼‍♂' => 'burrë: nuancë lëkure gjysmë e çelët e mjekër',
     '🧔🏽‍♂' => 'burrë: nuancë lëkure zeshkane e mjekër',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'grua që ecën: nuancë lëkure zeshkane',
     '🚶🏾‍♀' => 'grua që ecën: nuancë lëkure gjysmë e errët',
     '🚶🏿‍♀' => 'grua që ecën: nuancë lëkure e errët',
-    '🚶🏻‍➡' => 'këmbësor me drejtim djathtas',
-    '🚶🏼‍➡' => 'këmbësor me drejtim djathtas',
-    '🚶🏽‍➡' => 'këmbësor me drejtim djathtas',
-    '🚶🏾‍➡' => 'këmbësor me drejtim djathtas',
-    '🚶🏿‍➡' => 'këmbësor me drejtim djathtas',
+    '🚶🏻‍➡' => 'këmbësor: nuancë lëkure e çelët e me drejtim djathtas',
+    '🚶🏼‍➡' => 'këmbësor: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🚶🏽‍➡' => 'këmbësor: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🚶🏾‍➡' => 'këmbësor: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🚶🏿‍➡' => 'këmbësor: nuancë lëkure e errët e me drejtim djathtas',
     '🧍🏻‍♂' => 'burrë në këmbë: nuancë lëkure e çelët',
     '🧍🏼‍♂' => 'burrë në këmbë: nuancë lëkure gjysmë e çelët',
     '🧍🏽‍♂' => 'burrë në këmbë: nuancë lëkure zeshkane',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'grua në gjunjë: nuancë lëkure zeshkane',
     '🧎🏾‍♀' => 'grua në gjunjë: nuancë lëkure gjysmë e errët',
     '🧎🏿‍♀' => 'grua në gjunjë: nuancë lëkure e errët',
-    '🧎🏻‍➡' => 'person në gjunjë me drejtim djathtas',
-    '🧎🏼‍➡' => 'person në gjunjë me drejtim djathtas',
-    '🧎🏽‍➡' => 'person në gjunjë me drejtim djathtas',
-    '🧎🏾‍➡' => 'person në gjunjë me drejtim djathtas',
-    '🧎🏿‍➡' => 'person në gjunjë me drejtim djathtas',
+    '🧎🏻‍➡' => 'person në gjunjë: nuancë lëkure e çelët e me drejtim djathtas',
+    '🧎🏼‍➡' => 'person në gjunjë: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🧎🏽‍➡' => 'person në gjunjë: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🧎🏾‍➡' => 'person në gjunjë: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🧎🏿‍➡' => 'person në gjunjë: nuancë lëkure e errët e me drejtim djathtas',
     '🧑🏻‍🦯' => 'person me shkop gjurmimi: nuancë lëkure e çelët',
     '🧑🏼‍🦯' => 'person me shkop gjurmimi: nuancë lëkure gjysmë e çelët',
     '🧑🏽‍🦯' => 'person me shkop gjurmimi: nuancë lëkure zeshkane',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'grua që vrapon: nuancë lëkure zeshkane',
     '🏃🏾‍♀' => 'grua që vrapon: nuancë lëkure gjysmë e errët',
     '🏃🏿‍♀' => 'grua që vrapon: nuancë lëkure e errët',
-    '🏃🏻‍➡' => 'vrapues me drejtim djathtas',
-    '🏃🏼‍➡' => 'vrapues me drejtim djathtas',
-    '🏃🏽‍➡' => 'vrapues me drejtim djathtas',
-    '🏃🏾‍➡' => 'vrapues me drejtim djathtas',
-    '🏃🏿‍➡' => 'vrapues me drejtim djathtas',
+    '🏃🏻‍➡' => 'vrapues: nuancë lëkure e çelët e me drejtim djathtas',
+    '🏃🏼‍➡' => 'vrapues: nuancë lëkure gjysmë e çelët e me drejtim djathtas',
+    '🏃🏽‍➡' => 'vrapues: nuancë lëkure zeshkane e me drejtim djathtas',
+    '🏃🏾‍➡' => 'vrapues: nuancë lëkure gjysmë e errët e me drejtim djathtas',
+    '🏃🏿‍➡' => 'vrapues: nuancë lëkure e errët e me drejtim djathtas',
+    '👯🏻‍♀' => 'gra që festojnë: nuancë lëkure e çelët',
+    '👯🏼‍♀' => 'gra që festojnë: nuancë lëkure gjysmë e çelët',
+    '👯🏽‍♀' => 'gra që festojnë: nuancë lëkure zeshkane',
+    '👯🏾‍♀' => 'gra që festojnë: nuancë lëkure gjysmë e errët',
+    '👯🏿‍♀' => 'gra që festojnë: nuancë lëkure e errët',
+    '👯🏻‍♂' => 'burra që festojnë: nuancë lëkure e çelët',
+    '👯🏼‍♂' => 'burra që festojnë: nuancë lëkure gjysmë e çelët',
+    '👯🏽‍♂' => 'burra që festojnë: nuancë lëkure zeshkane',
+    '👯🏾‍♂' => 'burra që festojnë: nuancë lëkure gjysmë e errët',
+    '👯🏿‍♂' => 'burra që festojnë: nuancë lëkure e errët',
     '🧖🏻‍♂' => 'burrë në dhomë me avull: nuancë lëkure e çelët',
     '🧖🏼‍♂' => 'burrë në dhomë me avull: nuancë lëkure gjysmë e çelët',
     '🧖🏽‍♂' => 'burrë në dhomë me avull: nuancë lëkure zeshkane',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'grua që bën kapërdimje: nuancë lëkure zeshkane',
     '🤸🏾‍♀' => 'grua që bën kapërdimje: nuancë lëkure gjysmë e errët',
     '🤸🏿‍♀' => 'grua që bën kapërdimje: nuancë lëkure e errët',
+    '🤼🏻‍♀' => 'gra që bëjnë mundje: nuancë lëkure e çelët',
+    '🤼🏼‍♀' => 'gra që bëjnë mundje: nuancë lëkure gjysmë e çelët',
+    '🤼🏽‍♀' => 'gra që bëjnë mundje: nuancë lëkure zeshkane',
+    '🤼🏾‍♀' => 'gra që bëjnë mundje: nuancë lëkure gjysmë e errët',
+    '🤼🏿‍♀' => 'gra që bëjnë mundje: nuancë lëkure e errët',
+    '🤼🏻‍♂' => 'burra që bëjnë mundje: nuancë lëkure e çelët',
+    '🤼🏼‍♂' => 'burra që bëjnë mundje: nuancë lëkure gjysmë e çelët',
+    '🤼🏽‍♂' => 'burra që bëjnë mundje: nuancë lëkure zeshkane',
+    '🤼🏾‍♂' => 'burra që bëjnë mundje: nuancë lëkure gjysmë e errët',
+    '🤼🏿‍♂' => 'burra që bëjnë mundje: nuancë lëkure e errët',
     '🤽🏻‍♂' => 'burra që luajnë vaterpolo: nuancë lëkure e çelët',
     '🤽🏼‍♂' => 'burra që luajnë vaterpolo: nuancë lëkure gjysmë e çelët',
     '🤽🏽‍♂' => 'burra që luajnë vaterpolo: nuancë lëkure zeshkane',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'grua: flokë kaçurrele',
     '👩‍🦳' => 'grua: flokë të bardha',
     '👩‍🦲' => 'grua: qeros',
-    '🚶‍➡' => 'këmbësor me drejtim djathtas',
-    '🧎‍➡' => 'person në gjunjë me drejtim djathtas',
-    '🏃‍➡' => 'vrapues me drejtim djathtas',
+    '🚶‍➡' => 'këmbësor: me drejtim djathtas',
+    '🧎‍➡' => 'person në gjunjë: me drejtim djathtas',
+    '🏃‍➡' => 'vrapues: me drejtim djathtas',
     '👨‍👦' => 'familje: burrë e djalë',
     '👨‍👧' => 'familje: burrë e vajzë',
     '👩‍👦' => 'familje: grua e djalë',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'grua në karrocë manuale invalidi',
     '🏃‍♂' => 'burrë që vrapon',
     '🏃‍♀' => 'grua që vrapon',
+    '🧑‍🩰' => 'balerin',
     '👯‍♂' => 'burra që festojnë',
     '👯‍♀' => 'gra që festojnë',
     '🧖‍♂' => 'burrë në dhomë me avull',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'burrë me kostum që ngrihet: nuancë lëkure zeshkane',
     '🕴🏾' => 'burrë me kostum që ngrihet: nuancë lëkure gjysmë e errët',
     '🕴🏿' => 'burrë me kostum që ngrihet: nuancë lëkure e errët',
+    '👯🏻' => 'gra duke festuar: nuancë lëkure e çelët',
+    '👯🏼' => 'gra duke festuar: nuancë lëkure gjysmë e çelët',
+    '👯🏽' => 'gra duke festuar: nuancë lëkure zeshkane',
+    '👯🏾' => 'gra duke festuar: nuancë lëkure gjysmë e errët',
+    '👯🏿' => 'gra duke festuar: nuancë lëkure e errët',
     '🧖🏻' => 'person në dhomë me avull: nuancë lëkure e çelët',
     '🧖🏼' => 'person në dhomë me avull: nuancë lëkure gjysmë e çelët',
     '🧖🏽' => 'person në dhomë me avull: nuancë lëkure zeshkane',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'kapërdimje: nuancë lëkure zeshkane',
     '🤸🏾' => 'kapërdimje: nuancë lëkure gjysmë e errët',
     '🤸🏿' => 'kapërdimje: nuancë lëkure e errët',
+    '🤼🏻' => 'mundës: nuancë lëkure e çelët',
+    '🤼🏼' => 'mundës: nuancë lëkure gjysmë e çelët',
+    '🤼🏽' => 'mundës: nuancë lëkure zeshkane',
+    '🤼🏾' => 'mundës: nuancë lëkure gjysmë e errët',
+    '🤼🏿' => 'mundës: nuancë lëkure e errët',
     '🤽🏻' => 'vaterpolo: nuancë lëkure e çelët',
     '🤽🏼' => 'vaterpolo: nuancë lëkure gjysmë e çelët',
     '🤽🏽' => 'vaterpolo: nuancë lëkure zeshkane',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'flamur: Kinë',
     '🇨🇴' => 'flamur: Kolumbi',
     '🇨🇵' => 'flamur: Ishulli Klipërton',
+    '🇨🇶' => 'flamur: Sark',
     '🇨🇷' => 'flamur: Kosta-Rikë',
     '🇨🇺' => 'flamur: Kubë',
     '🇨🇻' => 'flamur: Kepi i Gjelbër',
@@ -2390,13 +2547,6 @@
     '🏽' => 'nuancë lëkure zeshkane',
     '🏾' => 'nuancë lëkure gjysmë e errët',
     '🏿' => 'nuancë lëkure e errët',
-    '🪉' => 'harpë',
-    '🪏' => 'lopatë',
-    '🪾' => 'pemë e zhveshur',
-    '🫆' => 'gjurmë gishti',
-    '🫜' => 'perime me rrënjë',
-    '🫟' => 'spërkë',
-    '🫩' => 'fytyrë me qeska poshtë syve',
     '😀' => 'fytyrë e zgërdheshur',
     '😃' => 'fytyrë e qeshur me gojën e hapur',
     '😄' => 'fytyrë me gojë të hapur dhe sy të qeshur',
@@ -2450,6 +2600,7 @@
     '😪' => 'fytyrë e përgjumur',
     '🤤' => 'fytyrë jargëse',
     '😴' => 'fytyrë në gjumë',
+    '🫩' => 'fytyrë me qeska poshtë syve',
     '😷' => 'fytyrë me maskë mjekësore',
     '🤒' => 'fytyrë me termometër',
     '🤕' => 'fytyrë me fashë në kokë',
@@ -2476,6 +2627,7 @@
     '😯' => 'fytyrë e heshtur',
     '😲' => 'fytyrë e çuditur',
     '😳' => 'fytyrë e skuqur',
+    '🫪' => 'fytyrë e shtrembëruar',
     '🥺' => 'fytyrë qaramane',
     '🥹' => 'fytyrë që mezi mban lotët',
     '😦' => 'fytyrë e vrenjtur me gojë të hapur',
@@ -2547,6 +2699,7 @@
     '💋' => 'shenja e puthjes',
     '💯' => 'njëqind pikë',
     '💢' => 'simboli i zemërimit',
+    '🫯' => 're grindjesh',
     '💥' => 'përplasje',
     '💫' => 'i trullosur',
     '💦' => 'pika djerse',
@@ -2670,6 +2823,7 @@
     '🧞' => 'xhind',
     '🧟' => 'zombi',
     '🧌' => 'xhuxh',
+    '🫈' => 'krijesë leshatore',
     '💆' => 'masazh fytyre',
     '💇' => 'prerje flokësh',
     '🚶' => 'këmbësor',
@@ -2713,6 +2867,7 @@
     '🫂' => 'njerëz që përqafohen',
     '👪' => 'familje',
     '👣' => 'gjurmë këmbësh',
+    '🫆' => 'gjurmë gishti',
     '🦰' => 'flokë të kuqe',
     '🦱' => 'flokë kaçurrele',
     '🦳' => 'flokë të bardha',
@@ -2812,6 +2967,7 @@
     '🐳' => 'balenë që hedh ujë',
     '🐋' => 'balenë',
     '🐬' => 'delfin',
+    '🫍' => 'orkë',
     '🦭' => 'fokë',
     '🐟' => 'peshk',
     '🐠' => 'peshk tropikal',
@@ -2821,6 +2977,11 @@
     '🐚' => 'guaskë spirale',
     '🪸' => 'koral',
     '🪼' => 'kandil deti',
+    '🦀' => 'gaforre',
+    '🦞' => 'karavidhe',
+    '🦐' => 'karkalec deti',
+    '🦑' => 'kallamar',
+    '🦪' => 'gocë deti',
     '🐌' => 'kërmill',
     '🦋' => 'flutur',
     '🐛' => 'shumëkëmbësh',
@@ -2865,6 +3026,7 @@
     '🪹' => 'fole bosh',
     '🪺' => 'fole me vezë',
     '🍄' => 'kërpudhë',
+    '🪾' => 'pemë e zhveshur',
     '🍇' => 'rrush',
     '🍈' => 'pjepër',
     '🍉' => 'shalqi',
@@ -2901,6 +3063,7 @@
     '🌰' => 'lajthi',
     '🫚' => 'rrënjë xhenxhefili',
     '🫛' => 'bizele bishtajë',
+    '🫜' => 'perime me rrënjë',
     '🍞' => 'bukë',
     '🥐' => 'kroasant',
     '🥖' => 'bagetë',
@@ -2952,11 +3115,6 @@
     '🥟' => 'top brumi i mbushur',
     '🥠' => 'biskotë fati',
     '🥡' => 'kuti për ushqim me vete',
-    '🦀' => 'gaforre',
-    '🦞' => 'karavidhe',
-    '🦐' => 'karkalec deti',
-    '🦑' => 'kallamar',
-    '🦪' => 'gocë deti',
     '🍦' => 'akullore e butë',
     '🍧' => 'akull i grirë',
     '🍨' => 'akullore',
@@ -3007,6 +3165,7 @@
     '🧭' => 'busull',
     '🏔' => 'mal i mbuluar me borë në majë',
     '⛰' => 'mal',
+    '🛘' => 'rrëshqitje dheu',
     '🌋' => 'vullkan',
     '🗻' => 'mali i Fuxhit',
     '🏕' => 'kamp',
@@ -3367,16 +3526,18 @@
     '🎧' => 'kufje',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'trombë',
+    '🪊' => 'trombon',
     '🪗' => 'fizarmonikë',
     '🎸' => 'kitarë',
     '🎹' => 'tastierë muzikore',
-    '🎺' => 'trombë',
     '🎻' => 'violinë',
     '🪕' => 'banxho',
     '🥁' => 'daulle',
     '🪘' => 'daulle e gjatë',
     '🪇' => 'maraka',
     '🪈' => 'flaut',
+    '🪉' => 'harpë',
     '📱' => 'celular',
     '📲' => 'celular me shigjetë',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'skedat e faqeshënuesve',
     '🔖' => 'faqeshënues',
     '🏷' => 'etiketë',
-    '💰' => 'qese parash',
     '🪙' => 'monedhë',
+    '💰' => 'qese parash',
+    '🪎' => 'arkë thesari',
     '💴' => 'kartëmonedhë jeni',
     '💵' => 'kartëmonedhë dollari',
     '💶' => 'kartëmonedhë euroje',
@@ -3514,6 +3676,7 @@
     '🧰' => 'kuti veglash',
     '🧲' => 'magnet',
     '🪜' => 'shkallë',
+    '🪏' => 'lopatë',
     '⚗' => 'lambik',
     '🧪' => 'epruvetë',
     '🧫' => 'lamelë',
@@ -3697,6 +3860,7 @@
     '✴' => 'yll me tetë cepa',
     '❇' => 'xixëllim',
     '™' => 'markë tregtare',
+    '🫟' => 'spërkë',
     '🔠' => 'fut shkronja latine kapitale',
     '🔡' => 'fut shkronja latine jokapitale',
     '🔢' => 'fut numra',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_cyrl_ba.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_cyrl_ba.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_cyrl_ba.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_cyrl_ba.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'пољубац: жена, жена, тамна кожа и ни свијетла ни тамна кожа',
     '👩🏿‍❤‍💋‍👩🏾' => 'пољубац: жена, жена, тамна кожа и средње тамна кожа',
     '👩🏿‍❤‍💋‍👩🏿' => 'пољубац: жена, жена и тамна кожа',
+    '🧑🏻‍🫯‍🧑🏼' => 'рвање: свијетла кожа и средње свијетла кожа',
+    '🧑🏻‍🫯‍🧑🏽' => 'рвање: свијетла кожа и ни свијетла ни тамна кожа',
+    '🧑🏻‍🫯‍🧑🏾' => 'рвање: свијетла кожа и средње тамна кожа',
+    '🧑🏻‍🫯‍🧑🏿' => 'рвање: свијетла кожа и тамна кожа',
+    '🧑🏼‍🫯‍🧑🏻' => 'рвање: средње свијетла кожа и свијетла кожа',
+    '🧑🏼‍🫯‍🧑🏽' => 'рвање: средње свијетла кожа и ни свијетла ни тамна кожа',
+    '🧑🏼‍🫯‍🧑🏾' => 'рвање: средње свијетла кожа и средње тамна кожа',
+    '🧑🏼‍🫯‍🧑🏿' => 'рвање: средње свијетла кожа и тамна кожа',
+    '🧑🏽‍🫯‍🧑🏻' => 'рвање: ни свијетла ни тамна кожа и свијетла кожа',
+    '🧑🏽‍🫯‍🧑🏼' => 'рвање: ни свијетла ни тамна кожа и средње свијетла кожа',
+    '🧑🏽‍🫯‍🧑🏾' => 'рвање: ни свијетла ни тамна кожа и средње тамна кожа',
+    '🧑🏽‍🫯‍🧑🏿' => 'рвање: ни свијетла ни тамна кожа и тамна кожа',
+    '🧑🏾‍🫯‍🧑🏻' => 'рвање: средње тамна кожа и свијетла кожа',
+    '🧑🏾‍🫯‍🧑🏼' => 'рвање: средње тамна кожа и средње свијетла кожа',
+    '🧑🏾‍🫯‍🧑🏽' => 'рвање: средње тамна кожа и ни свијетла ни тамна кожа',
+    '🧑🏾‍🫯‍🧑🏿' => 'рвање: средње тамна кожа и тамна кожа',
+    '🧑🏿‍🫯‍🧑🏻' => 'рвање: тамна кожа и свијетла кожа',
+    '🧑🏿‍🫯‍🧑🏼' => 'рвање: тамна кожа и средње свијетла кожа',
+    '🧑🏿‍🫯‍🧑🏽' => 'рвање: тамна кожа и ни свијетла ни тамна кожа',
+    '🧑🏿‍🫯‍🧑🏾' => 'рвање: тамна кожа и средње тамна кожа',
     '🧑🏻‍❤‍🧑🏼' => 'пар са срцем: одрасла особа, одрасла особа, свијетла кожа и средње свијетла кожа',
     '🧑🏻‍❤‍🧑🏽' => 'пар са срцем: одрасла особа, одрасла особа, свијетла кожа и ни свијетла ни тамна кожа',
     '🧑🏻‍❤‍🧑🏾' => 'пар са срцем: одрасла особа, одрасла особа, свијетла кожа и средње тамна кожа',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'пар са срцем: одрасла особа, одрасла особа, тамна кожа и средње свијетла кожа',
     '🧑🏿‍❤‍🧑🏽' => 'пар са срцем: одрасла особа, одрасла особа, тамна кожа и ни свијетла ни тамна кожа',
     '🧑🏿‍❤‍🧑🏾' => 'пар са срцем: одрасла особа, одрасла особа, тамна кожа и средње тамна кожа',
+    '🧑🏻‍🐰‍🧑🏼' => 'особе у проводу: свијетла кожа и средње свијетла кожа',
+    '🧑🏻‍🐰‍🧑🏽' => 'особе у проводу: свијетла кожа и ни свијетла ни тамна кожа',
+    '🧑🏻‍🐰‍🧑🏾' => 'особе у проводу: свијетла кожа и средње тамна кожа',
+    '🧑🏻‍🐰‍🧑🏿' => 'особе у проводу: свијетла кожа и тамна кожа',
+    '🧑🏼‍🐰‍🧑🏻' => 'особе у проводу: средње свијетла кожа и свијетла кожа',
+    '🧑🏼‍🐰‍🧑🏽' => 'особе у проводу: средње свијетла кожа и ни свијетла ни тамна кожа',
+    '🧑🏼‍🐰‍🧑🏾' => 'особе у проводу: средње свијетла кожа и средње тамна кожа',
+    '🧑🏼‍🐰‍🧑🏿' => 'особе у проводу: средње свијетла кожа и тамна кожа',
+    '🧑🏽‍🐰‍🧑🏻' => 'особе у проводу: ни свијетла ни тамна кожа и свијетла кожа',
+    '🧑🏽‍🐰‍🧑🏼' => 'особе у проводу: ни свијетла ни тамна кожа и средње свијетла кожа',
+    '🧑🏽‍🐰‍🧑🏾' => 'особе у проводу: ни свијетла ни тамна кожа и средње тамна кожа',
+    '🧑🏽‍🐰‍🧑🏿' => 'особе у проводу: ни свијетла ни тамна кожа и тамна кожа',
+    '🧑🏾‍🐰‍🧑🏻' => 'особе у проводу: средње тамна кожа и свијетла кожа',
+    '🧑🏾‍🐰‍🧑🏼' => 'особе у проводу: средње тамна кожа и средње свијетла кожа',
+    '🧑🏾‍🐰‍🧑🏽' => 'особе у проводу: средње тамна кожа и ни свијетла ни тамна кожа',
+    '🧑🏾‍🐰‍🧑🏿' => 'особе у проводу: средње тамна кожа и тамна кожа',
+    '🧑🏿‍🐰‍🧑🏻' => 'особе у проводу: тамна кожа и свијетла кожа',
+    '🧑🏿‍🐰‍🧑🏼' => 'особе у проводу: тамна кожа и средње свијетла кожа',
+    '🧑🏿‍🐰‍🧑🏽' => 'особе у проводу: тамна кожа и ни свијетла ни тамна кожа',
+    '🧑🏿‍🐰‍🧑🏾' => 'особе у проводу: тамна кожа и средње тамна кожа',
+    '👨🏻‍🫯‍👨🏼' => 'рвачи: свијетла кожа и средње свијетла кожа',
+    '👨🏻‍🫯‍👨🏽' => 'рвачи: свијетла кожа и ни свијетла ни тамна кожа',
+    '👨🏻‍🫯‍👨🏾' => 'рвачи: свијетла кожа и средње тамна кожа',
+    '👨🏻‍🫯‍👨🏿' => 'рвачи: свијетла кожа и тамна кожа',
+    '👨🏼‍🫯‍👨🏻' => 'рвачи: средње свијетла кожа и свијетла кожа',
+    '👨🏼‍🫯‍👨🏽' => 'рвачи: средње свијетла кожа и ни свијетла ни тамна кожа',
+    '👨🏼‍🫯‍👨🏾' => 'рвачи: средње свијетла кожа и средње тамна кожа',
+    '👨🏼‍🫯‍👨🏿' => 'рвачи: средње свијетла кожа и тамна кожа',
+    '👨🏽‍🫯‍👨🏻' => 'рвачи: ни свијетла ни тамна кожа и свијетла кожа',
+    '👨🏽‍🫯‍👨🏼' => 'рвачи: ни свијетла ни тамна кожа и средње свијетла кожа',
+    '👨🏽‍🫯‍👨🏾' => 'рвачи: ни свијетла ни тамна кожа и средње тамна кожа',
+    '👨🏽‍🫯‍👨🏿' => 'рвачи: ни свијетла ни тамна кожа и тамна кожа',
+    '👨🏾‍🫯‍👨🏻' => 'рвачи: средње тамна кожа и свијетла кожа',
+    '👨🏾‍🫯‍👨🏼' => 'рвачи: средње тамна кожа и средње свијетла кожа',
+    '👨🏾‍🫯‍👨🏽' => 'рвачи: средње тамна кожа и ни свијетла ни тамна кожа',
+    '👨🏾‍🫯‍👨🏿' => 'рвачи: средње тамна кожа и тамна кожа',
+    '👨🏿‍🫯‍👨🏻' => 'рвачи: тамна кожа и свијетла кожа',
+    '👨🏿‍🫯‍👨🏼' => 'рвачи: тамна кожа и средње свијетла кожа',
+    '👨🏿‍🫯‍👨🏽' => 'рвачи: тамна кожа и ни свијетла ни тамна кожа',
+    '👨🏿‍🫯‍👨🏾' => 'рвачи: тамна кожа и средње тамна кожа',
     '👨🏻‍❤‍👨🏻' => 'пар са срцем: мушкарац, мушкарац и свијетла кожа',
     '👨🏻‍❤‍👨🏼' => 'пар са срцем: мушкарац, мушкарац, свијетла кожа и средње свијетла кожа',
     '👨🏻‍❤‍👨🏽' => 'пар са срцем: мушкарац, мушкарац, свијетла кожа и ни свијетла ни тамна кожа',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'пар са срцем: мушкарац, мушкарац, тамна кожа и ни свијетла ни тамна кожа',
     '👨🏿‍❤‍👨🏾' => 'пар са срцем: мушкарац, мушкарац, тамна кожа и средње тамна кожа',
     '👨🏿‍❤‍👨🏿' => 'пар са срцем: мушкарац, мушкарац и тамна кожа',
+    '👨🏻‍🐰‍👨🏼' => 'мушкарци у проводу: свијетла кожа и средње свијетла кожа',
+    '👨🏻‍🐰‍👨🏽' => 'мушкарци у проводу: свијетла кожа и ни свијетла ни тамна кожа',
+    '👨🏻‍🐰‍👨🏾' => 'мушкарци у проводу: свијетла кожа и средње тамна кожа',
+    '👨🏻‍🐰‍👨🏿' => 'мушкарци у проводу: свијетла кожа и тамна кожа',
+    '👨🏼‍🐰‍👨🏻' => 'мушкарци у проводу: средње свијетла кожа и свијетла кожа',
+    '👨🏼‍🐰‍👨🏽' => 'мушкарци у проводу: средње свијетла кожа и ни свијетла ни тамна кожа',
+    '👨🏼‍🐰‍👨🏾' => 'мушкарци у проводу: средње свијетла кожа и средње тамна кожа',
+    '👨🏼‍🐰‍👨🏿' => 'мушкарци у проводу: средње свијетла кожа и тамна кожа',
+    '👨🏽‍🐰‍👨🏻' => 'мушкарци у проводу: ни свијетла ни тамна кожа и свијетла кожа',
+    '👨🏽‍🐰‍👨🏼' => 'мушкарци у проводу: ни свијетла ни тамна кожа и средње свијетла кожа',
+    '👨🏽‍🐰‍👨🏾' => 'мушкарци у проводу: ни свијетла ни тамна кожа и средње тамна кожа',
+    '👨🏽‍🐰‍👨🏿' => 'мушкарци у проводу: ни свијетла ни тамна кожа и тамна кожа',
+    '👨🏾‍🐰‍👨🏻' => 'мушкарци у проводу: средње тамна кожа и свијетла кожа',
+    '👨🏾‍🐰‍👨🏼' => 'мушкарци у проводу: средње тамна кожа и средње свијетла кожа',
+    '👨🏾‍🐰‍👨🏽' => 'мушкарци у проводу: средње тамна кожа и ни свијетла ни тамна кожа',
+    '👨🏾‍🐰‍👨🏿' => 'мушкарци у проводу: средње тамна кожа и тамна кожа',
+    '👨🏿‍🐰‍👨🏻' => 'мушкарци у проводу: тамна кожа и свијетла кожа',
+    '👨🏿‍🐰‍👨🏼' => 'мушкарци у проводу: тамна кожа и средње свијетла кожа',
+    '👨🏿‍🐰‍👨🏽' => 'мушкарци у проводу: тамна кожа и ни свијетла ни тамна кожа',
+    '👨🏿‍🐰‍👨🏾' => 'мушкарци у проводу: тамна кожа и средње тамна кожа',
+    '👩🏻‍🫯‍👩🏼' => 'рвачице: свијетла кожа и средње свијетла кожа',
+    '👩🏻‍🫯‍👩🏽' => 'рвачице: свијетла кожа и ни свијетла ни тамна кожа',
+    '👩🏻‍🫯‍👩🏾' => 'рвачице: свијетла кожа и средње тамна кожа',
+    '👩🏻‍🫯‍👩🏿' => 'рвачице: свијетла кожа и тамна кожа',
+    '👩🏼‍🫯‍👩🏻' => 'рвачице: средње свијетла кожа и свијетла кожа',
+    '👩🏼‍🫯‍👩🏽' => 'рвачице: средње свијетла кожа и ни свијетла ни тамна кожа',
+    '👩🏼‍🫯‍👩🏾' => 'рвачице: средње свијетла кожа и средње тамна кожа',
+    '👩🏼‍🫯‍👩🏿' => 'рвачице: средње свијетла кожа и тамна кожа',
+    '👩🏽‍🫯‍👩🏻' => 'рвачице: ни свијетла ни тамна кожа и свијетла кожа',
+    '👩🏽‍🫯‍👩🏼' => 'рвачице: ни свијетла ни тамна кожа и средње свијетла кожа',
+    '👩🏽‍🫯‍👩🏾' => 'рвачице: ни свијетла ни тамна кожа и средње тамна кожа',
+    '👩🏽‍🫯‍👩🏿' => 'рвачице: ни свијетла ни тамна кожа и тамна кожа',
+    '👩🏾‍🫯‍👩🏻' => 'рвачице: средње тамна кожа и свијетла кожа',
+    '👩🏾‍🫯‍👩🏼' => 'рвачице: средње тамна кожа и средње свијетла кожа',
+    '👩🏾‍🫯‍👩🏽' => 'рвачице: средње тамна кожа и ни свијетла ни тамна кожа',
+    '👩🏾‍🫯‍👩🏿' => 'рвачице: средње тамна кожа и тамна кожа',
+    '👩🏿‍🫯‍👩🏻' => 'рвачице: тамна кожа и свијетла кожа',
+    '👩🏿‍🫯‍👩🏼' => 'рвачице: тамна кожа и средње свијетла кожа',
+    '👩🏿‍🫯‍👩🏽' => 'рвачице: тамна кожа и ни свијетла ни тамна кожа',
+    '👩🏿‍🫯‍👩🏾' => 'рвачице: тамна кожа и средње тамна кожа',
     '👩🏻‍❤‍👨🏻' => 'пар са срцем: жена, мушкарац и свијетла кожа',
     '👩🏻‍❤‍👨🏼' => 'пар са срцем: жена, мушкарац, свијетла кожа и средње свијетла кожа',
     '👩🏻‍❤‍👨🏽' => 'пар са срцем: жена, мушкарац, свијетла кожа и ни свијетла ни тамна кожа',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'пар са срцем: жена, жена, тамна кожа и ни свијетла ни тамна кожа',
     '👩🏿‍❤‍👩🏾' => 'пар са срцем: жена, жена, тамна кожа и средње тамна кожа',
     '👩🏿‍❤‍👩🏿' => 'пар са срцем: жена, жена и тамна кожа',
+    '👩🏻‍🐰‍👩🏼' => 'жене у проводу: свијетла кожа и средње свијетла кожа',
+    '👩🏻‍🐰‍👩🏽' => 'жене у проводу: свијетла кожа и ни свијетла ни тамна кожа',
+    '👩🏻‍🐰‍👩🏾' => 'жене у проводу: свијетла кожа и средње тамна кожа',
+    '👩🏻‍🐰‍👩🏿' => 'жене у проводу: свијетла кожа и тамна кожа',
+    '👩🏼‍🐰‍👩🏻' => 'жене у проводу: средње свијетла кожа и свијетла кожа',
+    '👩🏼‍🐰‍👩🏽' => 'жене у проводу: средње свијетла кожа и ни свијетла ни тамна кожа',
+    '👩🏼‍🐰‍👩🏾' => 'жене у проводу: средње свијетла кожа и средње тамна кожа',
+    '👩🏼‍🐰‍👩🏿' => 'жене у проводу: средње свијетла кожа и тамна кожа',
+    '👩🏽‍🐰‍👩🏻' => 'жене у проводу: ни свијетла ни тамна кожа и свијетла кожа',
+    '👩🏽‍🐰‍👩🏼' => 'жене у проводу: ни свијетла ни тамна кожа и средње свијетла кожа',
+    '👩🏽‍🐰‍👩🏾' => 'жене у проводу: ни свијетла ни тамна кожа и средње тамна кожа',
+    '👩🏽‍🐰‍👩🏿' => 'жене у проводу: ни свијетла ни тамна кожа и тамна кожа',
+    '👩🏾‍🐰‍👩🏻' => 'жене у проводу: средње тамна кожа и свијетла кожа',
+    '👩🏾‍🐰‍👩🏼' => 'жене у проводу: средње тамна кожа и средње свијетла кожа',
+    '👩🏾‍🐰‍👩🏽' => 'жене у проводу: средње тамна кожа и ни свијетла ни тамна кожа',
+    '👩🏾‍🐰‍👩🏿' => 'жене у проводу: средње тамна кожа и тамна кожа',
+    '👩🏿‍🐰‍👩🏻' => 'жене у проводу: тамна кожа и свијетла кожа',
+    '👩🏿‍🐰‍👩🏼' => 'жене у проводу: тамна кожа и средње свијетла кожа',
+    '👩🏿‍🐰‍👩🏽' => 'жене у проводу: тамна кожа и ни свијетла ни тамна кожа',
+    '👩🏿‍🐰‍👩🏾' => 'жене у проводу: тамна кожа и средње тамна кожа',
     '🧑🏻‍🤝‍🧑🏻' => 'особе се држе за руке: свијетла кожа',
     '🧑🏻‍🤝‍🧑🏼' => 'особе се држе за руке: свијетла кожа и средње свијетла кожа',
     '🧑🏻‍🤝‍🧑🏽' => 'особе се држе за руке: свијетла кожа и ни свијетла ни тамна кожа',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'застава: Шкотска',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'застава: Велс',
     '🧑‍🧑‍🧒‍🧒' => 'породица: одрасла особа, одрасла особа, дијете, дијете',
-    '🚶🏻‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏼‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏽‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏾‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏿‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏻‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏼‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏽‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏾‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏿‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🧎🏻‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏼‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏽‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏾‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏿‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏻‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏼‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏽‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏾‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏿‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧑🏻‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏼‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏽‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏾‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏿‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '👨🏻‍🦯‍➡' => 'човјек са помоћним штапом гледа удесно',
-    '👨🏼‍🦯‍➡' => 'човјек са помоћним штапом гледа удесно',
-    '👨🏽‍🦯‍➡' => 'човјек са помоћним штапом гледа удесно',
-    '👨🏾‍🦯‍➡' => 'човјек са помоћним штапом гледа удесно',
-    '👨🏿‍🦯‍➡' => 'човјек са помоћним штапом гледа удесно',
-    '👩🏻‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏼‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏽‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏾‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏿‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '🧑🏻‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏼‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏽‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏾‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏿‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '👨🏻‍🦼‍➡' => 'човјек у моторним колицима гледа удесно',
-    '👨🏼‍🦼‍➡' => 'човјек у моторним колицима гледа удесно',
-    '👨🏽‍🦼‍➡' => 'човјек у моторним колицима гледа удесно',
-    '👨🏾‍🦼‍➡' => 'човјек у моторним колицима гледа удесно',
-    '👨🏿‍🦼‍➡' => 'човјек у моторним колицима гледа удесно',
-    '👩🏻‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏼‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏽‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏾‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏿‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '🧑🏻‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏼‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏽‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏾‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏿‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '👨🏻‍🦽‍➡' => 'човјек у механичким колицима гледа удесно',
-    '👨🏼‍🦽‍➡' => 'човјек у механичким колицима гледа удесно',
-    '👨🏽‍🦽‍➡' => 'човјек у механичким колицима гледа удесно',
-    '👨🏾‍🦽‍➡' => 'човјек у механичким колицима гледа удесно',
-    '👨🏿‍🦽‍➡' => 'човјек у механичким колицима гледа удесно',
-    '👩🏻‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏼‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏽‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏾‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏿‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '🏃🏻‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏼‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏽‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏾‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏿‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏻‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏼‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏽‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏾‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏿‍♂‍➡' => 'мушкарац трчи гледа удесно',
+    '🚶🏻‍♀‍➡' => 'жена хода: свијетла кожа и гледа удесно',
+    '🚶🏼‍♀‍➡' => 'жена хода: средње свијетла кожа и гледа удесно',
+    '🚶🏽‍♀‍➡' => 'жена хода: ни свијетла ни тамна кожа и гледа удесно',
+    '🚶🏾‍♀‍➡' => 'жена хода: средње тамна кожа и гледа удесно',
+    '🚶🏿‍♀‍➡' => 'жена хода: тамна кожа и гледа удесно',
+    '🚶🏻‍♂‍➡' => 'мушкарац хода: свијетла кожа и гледа удесно',
+    '🚶🏼‍♂‍➡' => 'мушкарац хода: средње свијетла кожа и гледа удесно',
+    '🚶🏽‍♂‍➡' => 'мушкарац хода: ни свијетла ни тамна кожа и гледа удесно',
+    '🚶🏾‍♂‍➡' => 'мушкарац хода: средње тамна кожа и гледа удесно',
+    '🚶🏿‍♂‍➡' => 'мушкарац хода: тамна кожа и гледа удесно',
+    '🧎🏻‍♀‍➡' => 'жена клечи: свијетла кожа и гледа удесно',
+    '🧎🏼‍♀‍➡' => 'жена клечи: средње свијетла кожа и гледа удесно',
+    '🧎🏽‍♀‍➡' => 'жена клечи: ни свијетла ни тамна кожа и гледа удесно',
+    '🧎🏾‍♀‍➡' => 'жена клечи: средње тамна кожа и гледа удесно',
+    '🧎🏿‍♀‍➡' => 'жена клечи: тамна кожа и гледа удесно',
+    '🧎🏻‍♂‍➡' => 'човек клечи: свијетла кожа и гледа удесно',
+    '🧎🏼‍♂‍➡' => 'човек клечи: средње свијетла кожа и гледа удесно',
+    '🧎🏽‍♂‍➡' => 'човек клечи: ни свијетла ни тамна кожа и гледа удесно',
+    '🧎🏾‍♂‍➡' => 'човек клечи: средње тамна кожа и гледа удесно',
+    '🧎🏿‍♂‍➡' => 'човек клечи: тамна кожа и гледа удесно',
+    '🧑🏻‍🦯‍➡' => 'особа са помоћним штапом: свијетла кожа и гледа удесно',
+    '🧑🏼‍🦯‍➡' => 'особа са помоћним штапом: средње свијетла кожа и гледа удесно',
+    '🧑🏽‍🦯‍➡' => 'особа са помоћним штапом: ни свијетла ни тамна кожа и гледа удесно',
+    '🧑🏾‍🦯‍➡' => 'особа са помоћним штапом: средње тамна кожа и гледа удесно',
+    '🧑🏿‍🦯‍➡' => 'особа са помоћним штапом: тамна кожа и гледа удесно',
+    '👨🏻‍🦯‍➡' => 'човјек са помоћним штапом: свијетла кожа и гледа удесно',
+    '👨🏼‍🦯‍➡' => 'човјек са помоћним штапом: средње свијетла кожа и гледа удесно',
+    '👨🏽‍🦯‍➡' => 'човјек са помоћним штапом: ни свијетла ни тамна кожа и гледа удесно',
+    '👨🏾‍🦯‍➡' => 'човјек са помоћним штапом: средње тамна кожа и гледа удесно',
+    '👨🏿‍🦯‍➡' => 'човјек са помоћним штапом: тамна кожа и гледа удесно',
+    '👩🏻‍🦯‍➡' => 'жена са помоћним штапом: свијетла кожа и гледа удесно',
+    '👩🏼‍🦯‍➡' => 'жена са помоћним штапом: средње свијетла кожа и гледа удесно',
+    '👩🏽‍🦯‍➡' => 'жена са помоћним штапом: ни свијетла ни тамна кожа и гледа удесно',
+    '👩🏾‍🦯‍➡' => 'жена са помоћним штапом: средње тамна кожа и гледа удесно',
+    '👩🏿‍🦯‍➡' => 'жена са помоћним штапом: тамна кожа и гледа удесно',
+    '🧑🏻‍🦼‍➡' => 'особа у моторним колицима: свијетла кожа и гледа удесно',
+    '🧑🏼‍🦼‍➡' => 'особа у моторним колицима: средње свијетла кожа и гледа удесно',
+    '🧑🏽‍🦼‍➡' => 'особа у моторним колицима: ни свијетла ни тамна кожа и гледа удесно',
+    '🧑🏾‍🦼‍➡' => 'особа у моторним колицима: средње тамна кожа и гледа удесно',
+    '🧑🏿‍🦼‍➡' => 'особа у моторним колицима: тамна кожа и гледа удесно',
+    '👨🏻‍🦼‍➡' => 'човјек у моторним колицима: свијетла кожа и гледа удесно',
+    '👨🏼‍🦼‍➡' => 'човјек у моторним колицима: средње свијетла кожа и гледа удесно',
+    '👨🏽‍🦼‍➡' => 'човјек у моторним колицима: ни свијетла ни тамна кожа и гледа удесно',
+    '👨🏾‍🦼‍➡' => 'човјек у моторним колицима: средње тамна кожа и гледа удесно',
+    '👨🏿‍🦼‍➡' => 'човјек у моторним колицима: тамна кожа и гледа удесно',
+    '👩🏻‍🦼‍➡' => 'жена у моторним колицима: свијетла кожа и гледа удесно',
+    '👩🏼‍🦼‍➡' => 'жена у моторним колицима: средње свијетла кожа и гледа удесно',
+    '👩🏽‍🦼‍➡' => 'жена у моторним колицима: ни свијетла ни тамна кожа и гледа удесно',
+    '👩🏾‍🦼‍➡' => 'жена у моторним колицима: средње тамна кожа и гледа удесно',
+    '👩🏿‍🦼‍➡' => 'жена у моторним колицима: тамна кожа и гледа удесно',
+    '🧑🏻‍🦽‍➡' => 'особа у механичким колицима: свијетла кожа и гледа удесно',
+    '🧑🏼‍🦽‍➡' => 'особа у механичким колицима: средње свијетла кожа и гледа удесно',
+    '🧑🏽‍🦽‍➡' => 'особа у механичким колицима: ни свијетла ни тамна кожа и гледа удесно',
+    '🧑🏾‍🦽‍➡' => 'особа у механичким колицима: средње тамна кожа и гледа удесно',
+    '🧑🏿‍🦽‍➡' => 'особа у механичким колицима: тамна кожа и гледа удесно',
+    '👨🏻‍🦽‍➡' => 'човјек у механичким колицима: свијетла кожа и гледа удесно',
+    '👨🏼‍🦽‍➡' => 'човјек у механичким колицима: средње свијетла кожа и гледа удесно',
+    '👨🏽‍🦽‍➡' => 'човјек у механичким колицима: ни свијетла ни тамна кожа и гледа удесно',
+    '👨🏾‍🦽‍➡' => 'човјек у механичким колицима: средње тамна кожа и гледа удесно',
+    '👨🏿‍🦽‍➡' => 'човјек у механичким колицима: тамна кожа и гледа удесно',
+    '👩🏻‍🦽‍➡' => 'жена у механичким колицима: свијетла кожа и гледа удесно',
+    '👩🏼‍🦽‍➡' => 'жена у механичким колицима: средње свијетла кожа и гледа удесно',
+    '👩🏽‍🦽‍➡' => 'жена у механичким колицима: ни свијетла ни тамна кожа и гледа удесно',
+    '👩🏾‍🦽‍➡' => 'жена у механичким колицима: средње тамна кожа и гледа удесно',
+    '👩🏿‍🦽‍➡' => 'жена у механичким колицима: тамна кожа и гледа удесно',
+    '🏃🏻‍♀‍➡' => 'жена трчи: свијетла кожа и гледа удесно',
+    '🏃🏼‍♀‍➡' => 'жена трчи: средње свијетла кожа и гледа удесно',
+    '🏃🏽‍♀‍➡' => 'жена трчи: ни свијетла ни тамна кожа и гледа удесно',
+    '🏃🏾‍♀‍➡' => 'жена трчи: средње тамна кожа и гледа удесно',
+    '🏃🏿‍♀‍➡' => 'жена трчи: тамна кожа и гледа удесно',
+    '🏃🏻‍♂‍➡' => 'мушкарац трчи: свијетла кожа и гледа удесно',
+    '🏃🏼‍♂‍➡' => 'мушкарац трчи: средње свијетла кожа и гледа удесно',
+    '🏃🏽‍♂‍➡' => 'мушкарац трчи: ни свијетла ни тамна кожа и гледа удесно',
+    '🏃🏾‍♂‍➡' => 'мушкарац трчи: средње тамна кожа и гледа удесно',
+    '🏃🏿‍♂‍➡' => 'мушкарац трчи: тамна кожа и гледа удесно',
     '🫱🏻‍🫲🏼' => 'руковање: свијетла кожа и средње свијетла кожа',
     '🫱🏻‍🫲🏽' => 'руковање: свијетла кожа и ни свијетла ни тамна кожа',
     '🫱🏻‍🫲🏾' => 'руковање: свијетла кожа и средње тамна кожа',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'руковање: тамна кожа и средње свијетла кожа',
     '🫱🏿‍🫲🏽' => 'руковање: тамна кожа и ни свијетла ни тамна кожа',
     '🫱🏿‍🫲🏾' => 'руковање: тамна кожа и средње тамна кожа',
-    '🚶‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🧎‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧑‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '👨‍🦯‍➡' => 'човјек са помоћним штапом гледа удесно',
-    '👩‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '🧑‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '👨‍🦼‍➡' => 'човјек у моторним колицима гледа удесно',
-    '👩‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '🧑‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '👨‍🦽‍➡' => 'човјек у механичким колицима гледа удесно',
-    '👩‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '🏃‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃‍♂‍➡' => 'мушкарац трчи гледа удесно',
+    '🚶‍♀‍➡' => 'жена хода: гледа удесно',
+    '🚶‍♂‍➡' => 'мушкарац хода: гледа удесно',
+    '🧎‍♀‍➡' => 'жена клечи: гледа удесно',
+    '🧎‍♂‍➡' => 'човек клечи: гледа удесно',
+    '🧑‍🦯‍➡' => 'особа са помоћним штапом: гледа удесно',
+    '👨‍🦯‍➡' => 'човјек са помоћним штапом: гледа удесно',
+    '👩‍🦯‍➡' => 'жена са помоћним штапом: гледа удесно',
+    '🧑‍🦼‍➡' => 'особа у моторним колицима: гледа удесно',
+    '👨‍🦼‍➡' => 'човјек у моторним колицима: гледа удесно',
+    '👩‍🦼‍➡' => 'жена у моторним колицима: гледа удесно',
+    '🧑‍🦽‍➡' => 'особа у механичким колицима: гледа удесно',
+    '👨‍🦽‍➡' => 'човјек у механичким колицима: гледа удесно',
+    '👩‍🦽‍➡' => 'жена у механичким колицима: гледа удесно',
+    '🏃‍♀‍➡' => 'жена трчи: гледа удесно',
+    '🏃‍♂‍➡' => 'мушкарац трчи: гледа удесно',
     '👩‍❤‍👨' => 'пар са срцем: жена и мушкарац',
     '👨‍❤‍👨' => 'пар са срцем: мушкарац и мушкарац',
     '👩‍❤‍👩' => 'пар са срцем: жена и жена',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'одрасла особа: ни свијетла ни тамна кожа и ћелав',
     '🧑🏾‍🦲' => 'одрасла особа: средње тамна кожа и ћелав',
     '🧑🏿‍🦲' => 'одрасла особа: тамна кожа и ћелав',
+    '🧑🏻‍🩰' => 'балетан: свијетла кожа',
+    '🧑🏼‍🩰' => 'балетан: средње свијетла кожа',
+    '🧑🏽‍🩰' => 'балетан: ни свијетла ни тамна кожа',
+    '🧑🏾‍🩰' => 'балетан: средње тамна кожа',
+    '🧑🏿‍🩰' => 'балетан: тамна кожа',
     '🧔🏻‍♂' => 'мушкарац: свијетла кожа и брада',
     '🧔🏼‍♂' => 'мушкарац: средње свијетла кожа и брада',
     '🧔🏽‍♂' => 'мушкарац: ни свијетла ни тамна кожа и брада',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'жена хода: ни свијетла ни тамна кожа',
     '🚶🏾‍♀' => 'жена хода: средње тамна кожа',
     '🚶🏿‍♀' => 'жена хода: тамна кожа',
-    '🚶🏻‍➡' => 'пјешак гледа удесно',
-    '🚶🏼‍➡' => 'пјешак гледа удесно',
-    '🚶🏽‍➡' => 'пјешак гледа удесно',
-    '🚶🏾‍➡' => 'пјешак гледа удесно',
-    '🚶🏿‍➡' => 'пјешак гледа удесно',
+    '🚶🏻‍➡' => 'пјешак: свијетла кожа и гледа удесно',
+    '🚶🏼‍➡' => 'пјешак: средње свијетла кожа и гледа удесно',
+    '🚶🏽‍➡' => 'пјешак: ни свијетла ни тамна кожа и гледа удесно',
+    '🚶🏾‍➡' => 'пјешак: средње тамна кожа и гледа удесно',
+    '🚶🏿‍➡' => 'пјешак: тамна кожа и гледа удесно',
     '🧍🏻‍♂' => 'човјек стоји: свијетла кожа',
     '🧍🏼‍♂' => 'човјек стоји: средње свијетла кожа',
     '🧍🏽‍♂' => 'човјек стоји: ни свијетла ни тамна кожа',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'жена клечи: ни свијетла ни тамна кожа',
     '🧎🏾‍♀' => 'жена клечи: средње тамна кожа',
     '🧎🏿‍♀' => 'жена клечи: тамна кожа',
-    '🧎🏻‍➡' => 'особа клечи гледа удесно',
-    '🧎🏼‍➡' => 'особа клечи гледа удесно',
-    '🧎🏽‍➡' => 'особа клечи гледа удесно',
-    '🧎🏾‍➡' => 'особа клечи гледа удесно',
-    '🧎🏿‍➡' => 'особа клечи гледа удесно',
+    '🧎🏻‍➡' => 'особа клечи: свијетла кожа и гледа удесно',
+    '🧎🏼‍➡' => 'особа клечи: средње свијетла кожа и гледа удесно',
+    '🧎🏽‍➡' => 'особа клечи: ни свијетла ни тамна кожа и гледа удесно',
+    '🧎🏾‍➡' => 'особа клечи: средње тамна кожа и гледа удесно',
+    '🧎🏿‍➡' => 'особа клечи: тамна кожа и гледа удесно',
     '🧑🏻‍🦯' => 'особа са помоћним штапом: свијетла кожа',
     '🧑🏼‍🦯' => 'особа са помоћним штапом: средње свијетла кожа',
     '🧑🏽‍🦯' => 'особа са помоћним штапом: ни свијетла ни тамна кожа',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'жена трчи: ни свијетла ни тамна кожа',
     '🏃🏾‍♀' => 'жена трчи: средње тамна кожа',
     '🏃🏿‍♀' => 'жена трчи: тамна кожа',
-    '🏃🏻‍➡' => 'тркач гледа удесно',
-    '🏃🏼‍➡' => 'тркач гледа удесно',
-    '🏃🏽‍➡' => 'тркач гледа удесно',
-    '🏃🏾‍➡' => 'тркач гледа удесно',
-    '🏃🏿‍➡' => 'тркач гледа удесно',
+    '🏃🏻‍➡' => 'тркач: свијетла кожа и гледа удесно',
+    '🏃🏼‍➡' => 'тркач: средње свијетла кожа и гледа удесно',
+    '🏃🏽‍➡' => 'тркач: ни свијетла ни тамна кожа и гледа удесно',
+    '🏃🏾‍➡' => 'тркач: средње тамна кожа и гледа удесно',
+    '🏃🏿‍➡' => 'тркач: тамна кожа и гледа удесно',
+    '👯🏻‍♀' => 'жене у проводу: свијетла кожа',
+    '👯🏼‍♀' => 'жене у проводу: средње свијетла кожа',
+    '👯🏽‍♀' => 'жене у проводу: ни свијетла ни тамна кожа',
+    '👯🏾‍♀' => 'жене у проводу: средње тамна кожа',
+    '👯🏿‍♀' => 'жене у проводу: тамна кожа',
+    '👯🏻‍♂' => 'мушкарци у проводу: свијетла кожа',
+    '👯🏼‍♂' => 'мушкарци у проводу: средње свијетла кожа',
+    '👯🏽‍♂' => 'мушкарци у проводу: ни свијетла ни тамна кожа',
+    '👯🏾‍♂' => 'мушкарци у проводу: средње тамна кожа',
+    '👯🏿‍♂' => 'мушкарци у проводу: тамна кожа',
     '🧖🏻‍♂' => 'мушкарац у парном купатилу: свијетла кожа',
     '🧖🏼‍♂' => 'мушкарац у парном купатилу: средње свијетла кожа',
     '🧖🏽‍♂' => 'мушкарац у парном купатилу: ни свијетла ни тамна кожа',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'гимнастичарка: ни свијетла ни тамна кожа',
     '🤸🏾‍♀' => 'гимнастичарка: средње тамна кожа',
     '🤸🏿‍♀' => 'гимнастичарка: тамна кожа',
+    '🤼🏻‍♀' => 'рвачице: свијетла кожа',
+    '🤼🏼‍♀' => 'рвачице: средње свијетла кожа',
+    '🤼🏽‍♀' => 'рвачице: ни свијетла ни тамна кожа',
+    '🤼🏾‍♀' => 'рвачице: средње тамна кожа',
+    '🤼🏿‍♀' => 'рвачице: тамна кожа',
+    '🤼🏻‍♂' => 'рвачи: свијетла кожа',
+    '🤼🏼‍♂' => 'рвачи: средње свијетла кожа',
+    '🤼🏽‍♂' => 'рвачи: ни свијетла ни тамна кожа',
+    '🤼🏾‍♂' => 'рвачи: средње тамна кожа',
+    '🤼🏿‍♂' => 'рвачи: тамна кожа',
     '🤽🏻‍♂' => 'ватерполиста: свијетла кожа',
     '🤽🏼‍♂' => 'ватерполиста: средње свијетла кожа',
     '🤽🏽‍♂' => 'ватерполиста: ни свијетла ни тамна кожа',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'жена: коврџава коса',
     '👩‍🦳' => 'жена: сиједа коса',
     '👩‍🦲' => 'жена: ћелав',
-    '🚶‍➡' => 'пјешак гледа удесно',
-    '🧎‍➡' => 'особа клечи гледа удесно',
-    '🏃‍➡' => 'тркач гледа удесно',
+    '🚶‍➡' => 'пјешак: гледа удесно',
+    '🧎‍➡' => 'особа клечи: гледа удесно',
+    '🏃‍➡' => 'тркач: гледа удесно',
     '👨‍👦' => 'породица: мушкарац и дјечак',
     '👨‍👧' => 'породица: мушкарац и дјевојчица',
     '👩‍👦' => 'породица: жена и дјечак',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'жена у механичким колицима',
     '🏃‍♂' => 'мушкарац трчи',
     '🏃‍♀' => 'жена трчи',
+    '🧑‍🩰' => 'балетан',
     '👯‍♂' => 'мушкарци у проводу',
     '👯‍♀' => 'жене у проводу',
     '🧖‍♂' => 'мушкарац у парном купатилу',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'мушкарац у пословном одијелу који лебди: ни свијетла ни тамна кожа',
     '🕴🏾' => 'мушкарац у пословном одијелу који лебди: средње тамна кожа',
     '🕴🏿' => 'мушкарац у пословном одијелу који лебди: тамна кожа',
+    '👯🏻' => 'особе у проводу: свијетла кожа',
+    '👯🏼' => 'особе у проводу: средње свијетла кожа',
+    '👯🏽' => 'особе у проводу: ни свијетла ни тамна кожа',
+    '👯🏾' => 'особе у проводу: средње тамна кожа',
+    '👯🏿' => 'особе у проводу: тамна кожа',
     '🧖🏻' => 'особа у парном купатилу: свијетла кожа',
     '🧖🏼' => 'особа у парном купатилу: средње свијетла кожа',
     '🧖🏽' => 'особа у парном купатилу: ни свијетла ни тамна кожа',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'гимнастичарска звезда: ни свијетла ни тамна кожа',
     '🤸🏾' => 'гимнастичарска звезда: средње тамна кожа',
     '🤸🏿' => 'гимнастичарска звезда: тамна кожа',
+    '🤼🏻' => 'рвање: свијетла кожа',
+    '🤼🏼' => 'рвање: средње свијетла кожа',
+    '🤼🏽' => 'рвање: ни свијетла ни тамна кожа',
+    '🤼🏾' => 'рвање: средње тамна кожа',
+    '🤼🏿' => 'рвање: тамна кожа',
     '🤽🏻' => 'ватерполо: свијетла кожа',
     '🤽🏼' => 'ватерполо: средње свијетла кожа',
     '🤽🏽' => 'ватерполо: ни свијетла ни тамна кожа',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'застава: Кина',
     '🇨🇴' => 'застава: Колумбија',
     '🇨🇵' => 'застава: острво Клипертон',
+    '🇨🇶' => 'застава: Сарк',
     '🇨🇷' => 'застава: Костарика',
     '🇨🇺' => 'застава: Куба',
     '🇨🇻' => 'застава: Зеленортска Острва',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ни свијетла ни тамна кожа',
     '🏾' => 'средње тамна кожа',
     '🏿' => 'тамна кожа',
-    '🪉' => 'харфа',
-    '🪏' => 'лопата',
-    '🪾' => 'дрво без лишћа',
-    '🫆' => 'отисак прста',
-    '🫜' => 'корјенасто поврће',
-    '🫟' => 'просуто',
-    '🫩' => 'лице са подочњацима',
     '😀' => 'лице са широким осмијехом',
     '😃' => 'лице са одушевљеним осмијехом',
     '😄' => 'лице које се слатко смије',
@@ -2450,6 +2600,7 @@
     '😪' => 'поспано лице',
     '🤤' => 'лице којем иде вода на уста',
     '😴' => 'лице које спава',
+    '🫩' => 'лице са подочњацима',
     '😷' => 'лице са медицинском маском',
     '🤒' => 'лице са топломјером',
     '🤕' => 'лице са завојем на глави',
@@ -2476,6 +2627,7 @@
     '😯' => 'изненађено лице',
     '😲' => 'запањено лице',
     '😳' => 'зајапурено лице',
+    '🫪' => 'искривљено лице',
     '🥺' => 'молећиво лице',
     '🥹' => 'лице задржава сузе',
     '😦' => 'зачуђено лице',
@@ -2547,6 +2699,7 @@
     '💋' => 'отисак пољупца',
     '💯' => 'сто поена',
     '💢' => 'симбол љутње',
+    '🫯' => 'облак туче',
     '💥' => 'судар',
     '💫' => 'вртоглавица',
     '💦' => 'капљице зноја',
@@ -2670,6 +2823,7 @@
     '🧞' => 'добри дух',
     '🧟' => 'зомби',
     '🧌' => 'трол',
+    '🫈' => 'длакаво створење',
     '💆' => 'масажа лица',
     '💇' => 'шишање',
     '🚶' => 'пјешак',
@@ -2713,6 +2867,7 @@
     '🫂' => 'људи се грле',
     '👪' => 'породица',
     '👣' => 'отисци стопала',
+    '🫆' => 'отисак прста',
     '🦰' => 'црвена коса',
     '🦱' => 'коврџава коса',
     '🦳' => 'сиједа коса',
@@ -2812,6 +2967,7 @@
     '🐳' => 'кит који прска',
     '🐋' => 'кит',
     '🐬' => 'делфин',
+    '🫍' => 'орка',
     '🦭' => 'фока',
     '🐟' => 'риба',
     '🐠' => 'тропска риба',
@@ -2821,6 +2977,11 @@
     '🐚' => 'спирална шкољка',
     '🪸' => 'корал',
     '🪼' => 'медуза',
+    '🦀' => 'краба',
+    '🦞' => 'јастог',
+    '🦐' => 'рачић',
+    '🦑' => 'хоботница',
+    '🦪' => 'острига',
     '🐌' => 'пуж',
     '🦋' => 'лептир',
     '🐛' => 'гусјеница',
@@ -2865,6 +3026,7 @@
     '🪹' => 'празно гнијездо',
     '🪺' => 'гнијездо с јајима',
     '🍄' => 'печурка',
+    '🪾' => 'дрво без лишћа',
     '🍇' => 'грожђе',
     '🍈' => 'диња',
     '🍉' => 'лубеница',
@@ -2901,6 +3063,7 @@
     '🌰' => 'кестен',
     '🫚' => 'коријен ђумбира',
     '🫛' => 'махуна грашка',
+    '🫜' => 'корјенасто поврће',
     '🍞' => 'хљеб',
     '🥐' => 'кроасан',
     '🥖' => 'багет',
@@ -2952,11 +3115,6 @@
     '🥟' => 'кнедла',
     '🥠' => 'колачић судбине',
     '🥡' => 'кутија за храну',
-    '🦀' => 'краба',
-    '🦞' => 'јастог',
-    '🦐' => 'рачић',
-    '🦑' => 'хоботница',
-    '🦪' => 'острига',
     '🍦' => 'сладолед у корнету',
     '🍧' => 'сорбе',
     '🍨' => 'сладолед',
@@ -3007,6 +3165,7 @@
     '🧭' => 'компас',
     '🏔' => 'сњежни врх планине',
     '⛰' => 'планина',
+    '🛘' => 'одрон',
     '🌋' => 'вулкан',
     '🗻' => 'планина фуџи',
     '🏕' => 'камповање',
@@ -3367,16 +3526,18 @@
     '🎧' => 'слушалица',
     '📻' => 'радио',
     '🎷' => 'саксофон',
+    '🎺' => 'труба',
+    '🪊' => 'тромбон',
     '🪗' => 'хармоника',
     '🎸' => 'гитара',
     '🎹' => 'клавијатура',
-    '🎺' => 'труба',
     '🎻' => 'виолина',
     '🪕' => 'бенџо',
     '🥁' => 'добош',
     '🪘' => 'тимпан',
     '🪇' => 'марака',
     '🪈' => 'флаута',
+    '🪉' => 'харфа',
     '📱' => 'мобилни телефон',
     '📲' => 'мобилни телефон са стрелицом',
     '☎' => 'телефон',
@@ -3430,8 +3591,9 @@
     '📑' => 'странице са биљешкама',
     '🔖' => 'обиљеживач страница у књизи',
     '🏷' => 'ознака',
-    '💰' => 'врећа новца',
     '🪙' => 'новчић',
+    '💰' => 'врећа новца',
+    '🪎' => 'ковчег с благом',
     '💴' => 'новчаница са знаком јена',
     '💵' => 'новчаница са знаком долара',
     '💶' => 'новчаница са знаком евра',
@@ -3514,6 +3676,7 @@
     '🧰' => 'кутија за алат',
     '🧲' => 'магнет',
     '🪜' => 'мердевине',
+    '🪏' => 'лопата',
     '⚗' => 'алембик',
     '🧪' => 'епрувета',
     '🧫' => 'петријева шоља',
@@ -3697,6 +3860,7 @@
     '✴' => 'осмокрака звјездица',
     '❇' => 'искра',
     '™' => 'жиг',
+    '🫟' => 'просуто',
     '🔠' => 'унос великих слова',
     '🔡' => 'унос малих слова',
     '🔢' => 'унос бројева',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_cyrl.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_cyrl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_cyrl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_cyrl.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'пољубац: жена, жена, тамна кожа и ни светла ни тамна кожа',
     '👩🏿‍❤‍💋‍👩🏾' => 'пољубац: жена, жена, тамна кожа и средње тамна кожа',
     '👩🏿‍❤‍💋‍👩🏿' => 'пољубац: жена, жена и тамна кожа',
+    '🧑🏻‍🫯‍🧑🏼' => 'рвање: светла кожа и средње светла кожа',
+    '🧑🏻‍🫯‍🧑🏽' => 'рвање: светла кожа и ни светла ни тамна кожа',
+    '🧑🏻‍🫯‍🧑🏾' => 'рвање: светла кожа и средње тамна кожа',
+    '🧑🏻‍🫯‍🧑🏿' => 'рвање: светла кожа и тамна кожа',
+    '🧑🏼‍🫯‍🧑🏻' => 'рвање: средње светла кожа и светла кожа',
+    '🧑🏼‍🫯‍🧑🏽' => 'рвање: средње светла кожа и ни светла ни тамна кожа',
+    '🧑🏼‍🫯‍🧑🏾' => 'рвање: средње светла кожа и средње тамна кожа',
+    '🧑🏼‍🫯‍🧑🏿' => 'рвање: средње светла кожа и тамна кожа',
+    '🧑🏽‍🫯‍🧑🏻' => 'рвање: ни светла ни тамна кожа и светла кожа',
+    '🧑🏽‍🫯‍🧑🏼' => 'рвање: ни светла ни тамна кожа и средње светла кожа',
+    '🧑🏽‍🫯‍🧑🏾' => 'рвање: ни светла ни тамна кожа и средње тамна кожа',
+    '🧑🏽‍🫯‍🧑🏿' => 'рвање: ни светла ни тамна кожа и тамна кожа',
+    '🧑🏾‍🫯‍🧑🏻' => 'рвање: средње тамна кожа и светла кожа',
+    '🧑🏾‍🫯‍🧑🏼' => 'рвање: средње тамна кожа и средње светла кожа',
+    '🧑🏾‍🫯‍🧑🏽' => 'рвање: средње тамна кожа и ни светла ни тамна кожа',
+    '🧑🏾‍🫯‍🧑🏿' => 'рвање: средње тамна кожа и тамна кожа',
+    '🧑🏿‍🫯‍🧑🏻' => 'рвање: тамна кожа и светла кожа',
+    '🧑🏿‍🫯‍🧑🏼' => 'рвање: тамна кожа и средње светла кожа',
+    '🧑🏿‍🫯‍🧑🏽' => 'рвање: тамна кожа и ни светла ни тамна кожа',
+    '🧑🏿‍🫯‍🧑🏾' => 'рвање: тамна кожа и средње тамна кожа',
     '🧑🏻‍❤‍🧑🏼' => 'пар са срцем: одрасла особа, одрасла особа, светла кожа и средње светла кожа',
     '🧑🏻‍❤‍🧑🏽' => 'пар са срцем: одрасла особа, одрасла особа, светла кожа и ни светла ни тамна кожа',
     '🧑🏻‍❤‍🧑🏾' => 'пар са срцем: одрасла особа, одрасла особа, светла кожа и средње тамна кожа',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'пар са срцем: одрасла особа, одрасла особа, тамна кожа и средње светла кожа',
     '🧑🏿‍❤‍🧑🏽' => 'пар са срцем: одрасла особа, одрасла особа, тамна кожа и ни светла ни тамна кожа',
     '🧑🏿‍❤‍🧑🏾' => 'пар са срцем: одрасла особа, одрасла особа, тамна кожа и средње тамна кожа',
+    '🧑🏻‍🐰‍🧑🏼' => 'особе у проводу: светла кожа и средње светла кожа',
+    '🧑🏻‍🐰‍🧑🏽' => 'особе у проводу: светла кожа и ни светла ни тамна кожа',
+    '🧑🏻‍🐰‍🧑🏾' => 'особе у проводу: светла кожа и средње тамна кожа',
+    '🧑🏻‍🐰‍🧑🏿' => 'особе у проводу: светла кожа и тамна кожа',
+    '🧑🏼‍🐰‍🧑🏻' => 'особе у проводу: средње светла кожа и светла кожа',
+    '🧑🏼‍🐰‍🧑🏽' => 'особе у проводу: средње светла кожа и ни светла ни тамна кожа',
+    '🧑🏼‍🐰‍🧑🏾' => 'особе у проводу: средње светла кожа и средње тамна кожа',
+    '🧑🏼‍🐰‍🧑🏿' => 'особе у проводу: средње светла кожа и тамна кожа',
+    '🧑🏽‍🐰‍🧑🏻' => 'особе у проводу: ни светла ни тамна кожа и светла кожа',
+    '🧑🏽‍🐰‍🧑🏼' => 'особе у проводу: ни светла ни тамна кожа и средње светла кожа',
+    '🧑🏽‍🐰‍🧑🏾' => 'особе у проводу: ни светла ни тамна кожа и средње тамна кожа',
+    '🧑🏽‍🐰‍🧑🏿' => 'особе у проводу: ни светла ни тамна кожа и тамна кожа',
+    '🧑🏾‍🐰‍🧑🏻' => 'особе у проводу: средње тамна кожа и светла кожа',
+    '🧑🏾‍🐰‍🧑🏼' => 'особе у проводу: средње тамна кожа и средње светла кожа',
+    '🧑🏾‍🐰‍🧑🏽' => 'особе у проводу: средње тамна кожа и ни светла ни тамна кожа',
+    '🧑🏾‍🐰‍🧑🏿' => 'особе у проводу: средње тамна кожа и тамна кожа',
+    '🧑🏿‍🐰‍🧑🏻' => 'особе у проводу: тамна кожа и светла кожа',
+    '🧑🏿‍🐰‍🧑🏼' => 'особе у проводу: тамна кожа и средње светла кожа',
+    '🧑🏿‍🐰‍🧑🏽' => 'особе у проводу: тамна кожа и ни светла ни тамна кожа',
+    '🧑🏿‍🐰‍🧑🏾' => 'особе у проводу: тамна кожа и средње тамна кожа',
+    '👨🏻‍🫯‍👨🏼' => 'рвачи: светла кожа и средње светла кожа',
+    '👨🏻‍🫯‍👨🏽' => 'рвачи: светла кожа и ни светла ни тамна кожа',
+    '👨🏻‍🫯‍👨🏾' => 'рвачи: светла кожа и средње тамна кожа',
+    '👨🏻‍🫯‍👨🏿' => 'рвачи: светла кожа и тамна кожа',
+    '👨🏼‍🫯‍👨🏻' => 'рвачи: средње светла кожа и светла кожа',
+    '👨🏼‍🫯‍👨🏽' => 'рвачи: средње светла кожа и ни светла ни тамна кожа',
+    '👨🏼‍🫯‍👨🏾' => 'рвачи: средње светла кожа и средње тамна кожа',
+    '👨🏼‍🫯‍👨🏿' => 'рвачи: средње светла кожа и тамна кожа',
+    '👨🏽‍🫯‍👨🏻' => 'рвачи: ни светла ни тамна кожа и светла кожа',
+    '👨🏽‍🫯‍👨🏼' => 'рвачи: ни светла ни тамна кожа и средње светла кожа',
+    '👨🏽‍🫯‍👨🏾' => 'рвачи: ни светла ни тамна кожа и средње тамна кожа',
+    '👨🏽‍🫯‍👨🏿' => 'рвачи: ни светла ни тамна кожа и тамна кожа',
+    '👨🏾‍🫯‍👨🏻' => 'рвачи: средње тамна кожа и светла кожа',
+    '👨🏾‍🫯‍👨🏼' => 'рвачи: средње тамна кожа и средње светла кожа',
+    '👨🏾‍🫯‍👨🏽' => 'рвачи: средње тамна кожа и ни светла ни тамна кожа',
+    '👨🏾‍🫯‍👨🏿' => 'рвачи: средње тамна кожа и тамна кожа',
+    '👨🏿‍🫯‍👨🏻' => 'рвачи: тамна кожа и светла кожа',
+    '👨🏿‍🫯‍👨🏼' => 'рвачи: тамна кожа и средње светла кожа',
+    '👨🏿‍🫯‍👨🏽' => 'рвачи: тамна кожа и ни светла ни тамна кожа',
+    '👨🏿‍🫯‍👨🏾' => 'рвачи: тамна кожа и средње тамна кожа',
     '👨🏻‍❤‍👨🏻' => 'пар са срцем: мушкарац, мушкарац и светла кожа',
     '👨🏻‍❤‍👨🏼' => 'пар са срцем: мушкарац, мушкарац, светла кожа и средње светла кожа',
     '👨🏻‍❤‍👨🏽' => 'пар са срцем: мушкарац, мушкарац, светла кожа и ни светла ни тамна кожа',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'пар са срцем: мушкарац, мушкарац, тамна кожа и ни светла ни тамна кожа',
     '👨🏿‍❤‍👨🏾' => 'пар са срцем: мушкарац, мушкарац, тамна кожа и средње тамна кожа',
     '👨🏿‍❤‍👨🏿' => 'пар са срцем: мушкарац, мушкарац и тамна кожа',
+    '👨🏻‍🐰‍👨🏼' => 'мушкарци у проводу: светла кожа и средње светла кожа',
+    '👨🏻‍🐰‍👨🏽' => 'мушкарци у проводу: светла кожа и ни светла ни тамна кожа',
+    '👨🏻‍🐰‍👨🏾' => 'мушкарци у проводу: светла кожа и средње тамна кожа',
+    '👨🏻‍🐰‍👨🏿' => 'мушкарци у проводу: светла кожа и тамна кожа',
+    '👨🏼‍🐰‍👨🏻' => 'мушкарци у проводу: средње светла кожа и светла кожа',
+    '👨🏼‍🐰‍👨🏽' => 'мушкарци у проводу: средње светла кожа и ни светла ни тамна кожа',
+    '👨🏼‍🐰‍👨🏾' => 'мушкарци у проводу: средње светла кожа и средње тамна кожа',
+    '👨🏼‍🐰‍👨🏿' => 'мушкарци у проводу: средње светла кожа и тамна кожа',
+    '👨🏽‍🐰‍👨🏻' => 'мушкарци у проводу: ни светла ни тамна кожа и светла кожа',
+    '👨🏽‍🐰‍👨🏼' => 'мушкарци у проводу: ни светла ни тамна кожа и средње светла кожа',
+    '👨🏽‍🐰‍👨🏾' => 'мушкарци у проводу: ни светла ни тамна кожа и средње тамна кожа',
+    '👨🏽‍🐰‍👨🏿' => 'мушкарци у проводу: ни светла ни тамна кожа и тамна кожа',
+    '👨🏾‍🐰‍👨🏻' => 'мушкарци у проводу: средње тамна кожа и светла кожа',
+    '👨🏾‍🐰‍👨🏼' => 'мушкарци у проводу: средње тамна кожа и средње светла кожа',
+    '👨🏾‍🐰‍👨🏽' => 'мушкарци у проводу: средње тамна кожа и ни светла ни тамна кожа',
+    '👨🏾‍🐰‍👨🏿' => 'мушкарци у проводу: средње тамна кожа и тамна кожа',
+    '👨🏿‍🐰‍👨🏻' => 'мушкарци у проводу: тамна кожа и светла кожа',
+    '👨🏿‍🐰‍👨🏼' => 'мушкарци у проводу: тамна кожа и средње светла кожа',
+    '👨🏿‍🐰‍👨🏽' => 'мушкарци у проводу: тамна кожа и ни светла ни тамна кожа',
+    '👨🏿‍🐰‍👨🏾' => 'мушкарци у проводу: тамна кожа и средње тамна кожа',
+    '👩🏻‍🫯‍👩🏼' => 'рвачице: светла кожа и средње светла кожа',
+    '👩🏻‍🫯‍👩🏽' => 'рвачице: светла кожа и ни светла ни тамна кожа',
+    '👩🏻‍🫯‍👩🏾' => 'рвачице: светла кожа и средње тамна кожа',
+    '👩🏻‍🫯‍👩🏿' => 'рвачице: светла кожа и тамна кожа',
+    '👩🏼‍🫯‍👩🏻' => 'рвачице: средње светла кожа и светла кожа',
+    '👩🏼‍🫯‍👩🏽' => 'рвачице: средње светла кожа и ни светла ни тамна кожа',
+    '👩🏼‍🫯‍👩🏾' => 'рвачице: средње светла кожа и средње тамна кожа',
+    '👩🏼‍🫯‍👩🏿' => 'рвачице: средње светла кожа и тамна кожа',
+    '👩🏽‍🫯‍👩🏻' => 'рвачице: ни светла ни тамна кожа и светла кожа',
+    '👩🏽‍🫯‍👩🏼' => 'рвачице: ни светла ни тамна кожа и средње светла кожа',
+    '👩🏽‍🫯‍👩🏾' => 'рвачице: ни светла ни тамна кожа и средње тамна кожа',
+    '👩🏽‍🫯‍👩🏿' => 'рвачице: ни светла ни тамна кожа и тамна кожа',
+    '👩🏾‍🫯‍👩🏻' => 'рвачице: средње тамна кожа и светла кожа',
+    '👩🏾‍🫯‍👩🏼' => 'рвачице: средње тамна кожа и средње светла кожа',
+    '👩🏾‍🫯‍👩🏽' => 'рвачице: средње тамна кожа и ни светла ни тамна кожа',
+    '👩🏾‍🫯‍👩🏿' => 'рвачице: средње тамна кожа и тамна кожа',
+    '👩🏿‍🫯‍👩🏻' => 'рвачице: тамна кожа и светла кожа',
+    '👩🏿‍🫯‍👩🏼' => 'рвачице: тамна кожа и средње светла кожа',
+    '👩🏿‍🫯‍👩🏽' => 'рвачице: тамна кожа и ни светла ни тамна кожа',
+    '👩🏿‍🫯‍👩🏾' => 'рвачице: тамна кожа и средње тамна кожа',
     '👩🏻‍❤‍👨🏻' => 'пар са срцем: жена, мушкарац и светла кожа',
     '👩🏻‍❤‍👨🏼' => 'пар са срцем: жена, мушкарац, светла кожа и средње светла кожа',
     '👩🏻‍❤‍👨🏽' => 'пар са срцем: жена, мушкарац, светла кожа и ни светла ни тамна кожа',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'пар са срцем: жена, жена, тамна кожа и ни светла ни тамна кожа',
     '👩🏿‍❤‍👩🏾' => 'пар са срцем: жена, жена, тамна кожа и средње тамна кожа',
     '👩🏿‍❤‍👩🏿' => 'пар са срцем: жена, жена и тамна кожа',
+    '👩🏻‍🐰‍👩🏼' => 'жене у проводу: светла кожа и средње светла кожа',
+    '👩🏻‍🐰‍👩🏽' => 'жене у проводу: светла кожа и ни светла ни тамна кожа',
+    '👩🏻‍🐰‍👩🏾' => 'жене у проводу: светла кожа и средње тамна кожа',
+    '👩🏻‍🐰‍👩🏿' => 'жене у проводу: светла кожа и тамна кожа',
+    '👩🏼‍🐰‍👩🏻' => 'жене у проводу: средње светла кожа и светла кожа',
+    '👩🏼‍🐰‍👩🏽' => 'жене у проводу: средње светла кожа и ни светла ни тамна кожа',
+    '👩🏼‍🐰‍👩🏾' => 'жене у проводу: средње светла кожа и средње тамна кожа',
+    '👩🏼‍🐰‍👩🏿' => 'жене у проводу: средње светла кожа и тамна кожа',
+    '👩🏽‍🐰‍👩🏻' => 'жене у проводу: ни светла ни тамна кожа и светла кожа',
+    '👩🏽‍🐰‍👩🏼' => 'жене у проводу: ни светла ни тамна кожа и средње светла кожа',
+    '👩🏽‍🐰‍👩🏾' => 'жене у проводу: ни светла ни тамна кожа и средње тамна кожа',
+    '👩🏽‍🐰‍👩🏿' => 'жене у проводу: ни светла ни тамна кожа и тамна кожа',
+    '👩🏾‍🐰‍👩🏻' => 'жене у проводу: средње тамна кожа и светла кожа',
+    '👩🏾‍🐰‍👩🏼' => 'жене у проводу: средње тамна кожа и средње светла кожа',
+    '👩🏾‍🐰‍👩🏽' => 'жене у проводу: средње тамна кожа и ни светла ни тамна кожа',
+    '👩🏾‍🐰‍👩🏿' => 'жене у проводу: средње тамна кожа и тамна кожа',
+    '👩🏿‍🐰‍👩🏻' => 'жене у проводу: тамна кожа и светла кожа',
+    '👩🏿‍🐰‍👩🏼' => 'жене у проводу: тамна кожа и средње светла кожа',
+    '👩🏿‍🐰‍👩🏽' => 'жене у проводу: тамна кожа и ни светла ни тамна кожа',
+    '👩🏿‍🐰‍👩🏾' => 'жене у проводу: тамна кожа и средње тамна кожа',
     '🧑🏻‍🤝‍🧑🏻' => 'особе се држе за руке: светла кожа',
     '🧑🏻‍🤝‍🧑🏼' => 'особе се држе за руке: светла кожа и средње светла кожа',
     '🧑🏻‍🤝‍🧑🏽' => 'особе се држе за руке: светла кожа и ни светла ни тамна кожа',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'застава: Шкотска',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'застава: Велс',
     '🧑‍🧑‍🧒‍🧒' => 'породица: одрасла особа, одрасла особа, дете, дете',
-    '🚶🏻‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏼‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏽‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏾‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏿‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏻‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏼‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏽‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏾‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏿‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🧎🏻‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏼‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏽‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏾‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏿‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏻‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏼‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏽‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏾‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏿‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧑🏻‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏼‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏽‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏾‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏿‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '👨🏻‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👨🏼‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👨🏽‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👨🏾‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👨🏿‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👩🏻‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏼‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏽‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏾‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏿‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '🧑🏻‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏼‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏽‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏾‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏿‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '👨🏻‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👨🏼‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👨🏽‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👨🏾‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👨🏿‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👩🏻‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏼‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏽‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏾‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏿‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '🧑🏻‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏼‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏽‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏾‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏿‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '👨🏻‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👨🏼‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👨🏽‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👨🏾‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👨🏿‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👩🏻‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏼‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏽‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏾‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏿‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '🏃🏻‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏼‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏽‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏾‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏿‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏻‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏼‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏽‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏾‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏿‍♂‍➡' => 'мушкарац трчи гледа удесно',
+    '🚶🏻‍♀‍➡' => 'жена хода: светла кожа и гледа удесно',
+    '🚶🏼‍♀‍➡' => 'жена хода: средње светла кожа и гледа удесно',
+    '🚶🏽‍♀‍➡' => 'жена хода: ни светла ни тамна кожа и гледа удесно',
+    '🚶🏾‍♀‍➡' => 'жена хода: средње тамна кожа и гледа удесно',
+    '🚶🏿‍♀‍➡' => 'жена хода: тамна кожа и гледа удесно',
+    '🚶🏻‍♂‍➡' => 'мушкарац хода: светла кожа и гледа удесно',
+    '🚶🏼‍♂‍➡' => 'мушкарац хода: средње светла кожа и гледа удесно',
+    '🚶🏽‍♂‍➡' => 'мушкарац хода: ни светла ни тамна кожа и гледа удесно',
+    '🚶🏾‍♂‍➡' => 'мушкарац хода: средње тамна кожа и гледа удесно',
+    '🚶🏿‍♂‍➡' => 'мушкарац хода: тамна кожа и гледа удесно',
+    '🧎🏻‍♀‍➡' => 'жена клечи: светла кожа и гледа удесно',
+    '🧎🏼‍♀‍➡' => 'жена клечи: средње светла кожа и гледа удесно',
+    '🧎🏽‍♀‍➡' => 'жена клечи: ни светла ни тамна кожа и гледа удесно',
+    '🧎🏾‍♀‍➡' => 'жена клечи: средње тамна кожа и гледа удесно',
+    '🧎🏿‍♀‍➡' => 'жена клечи: тамна кожа и гледа удесно',
+    '🧎🏻‍♂‍➡' => 'човек клечи: светла кожа и гледа удесно',
+    '🧎🏼‍♂‍➡' => 'човек клечи: средње светла кожа и гледа удесно',
+    '🧎🏽‍♂‍➡' => 'човек клечи: ни светла ни тамна кожа и гледа удесно',
+    '🧎🏾‍♂‍➡' => 'човек клечи: средње тамна кожа и гледа удесно',
+    '🧎🏿‍♂‍➡' => 'човек клечи: тамна кожа и гледа удесно',
+    '🧑🏻‍🦯‍➡' => 'особа са помоћним штапом: светла кожа и гледа удесно',
+    '🧑🏼‍🦯‍➡' => 'особа са помоћним штапом: средње светла кожа и гледа удесно',
+    '🧑🏽‍🦯‍➡' => 'особа са помоћним штапом: ни светла ни тамна кожа и гледа удесно',
+    '🧑🏾‍🦯‍➡' => 'особа са помоћним штапом: средње тамна кожа и гледа удесно',
+    '🧑🏿‍🦯‍➡' => 'особа са помоћним штапом: тамна кожа и гледа удесно',
+    '👨🏻‍🦯‍➡' => 'човек са помоћним штапом: светла кожа и гледа удесно',
+    '👨🏼‍🦯‍➡' => 'човек са помоћним штапом: средње светла кожа и гледа удесно',
+    '👨🏽‍🦯‍➡' => 'човек са помоћним штапом: ни светла ни тамна кожа и гледа удесно',
+    '👨🏾‍🦯‍➡' => 'човек са помоћним штапом: средње тамна кожа и гледа удесно',
+    '👨🏿‍🦯‍➡' => 'човек са помоћним штапом: тамна кожа и гледа удесно',
+    '👩🏻‍🦯‍➡' => 'жена са помоћним штапом: светла кожа и гледа удесно',
+    '👩🏼‍🦯‍➡' => 'жена са помоћним штапом: средње светла кожа и гледа удесно',
+    '👩🏽‍🦯‍➡' => 'жена са помоћним штапом: ни светла ни тамна кожа и гледа удесно',
+    '👩🏾‍🦯‍➡' => 'жена са помоћним штапом: средње тамна кожа и гледа удесно',
+    '👩🏿‍🦯‍➡' => 'жена са помоћним штапом: тамна кожа и гледа удесно',
+    '🧑🏻‍🦼‍➡' => 'особа у моторним колицима: светла кожа и гледа удесно',
+    '🧑🏼‍🦼‍➡' => 'особа у моторним колицима: средње светла кожа и гледа удесно',
+    '🧑🏽‍🦼‍➡' => 'особа у моторним колицима: ни светла ни тамна кожа и гледа удесно',
+    '🧑🏾‍🦼‍➡' => 'особа у моторним колицима: средње тамна кожа и гледа удесно',
+    '🧑🏿‍🦼‍➡' => 'особа у моторним колицима: тамна кожа и гледа удесно',
+    '👨🏻‍🦼‍➡' => 'човек у моторним колицима: светла кожа и гледа удесно',
+    '👨🏼‍🦼‍➡' => 'човек у моторним колицима: средње светла кожа и гледа удесно',
+    '👨🏽‍🦼‍➡' => 'човек у моторним колицима: ни светла ни тамна кожа и гледа удесно',
+    '👨🏾‍🦼‍➡' => 'човек у моторним колицима: средње тамна кожа и гледа удесно',
+    '👨🏿‍🦼‍➡' => 'човек у моторним колицима: тамна кожа и гледа удесно',
+    '👩🏻‍🦼‍➡' => 'жена у моторним колицима: светла кожа и гледа удесно',
+    '👩🏼‍🦼‍➡' => 'жена у моторним колицима: средње светла кожа и гледа удесно',
+    '👩🏽‍🦼‍➡' => 'жена у моторним колицима: ни светла ни тамна кожа и гледа удесно',
+    '👩🏾‍🦼‍➡' => 'жена у моторним колицима: средње тамна кожа и гледа удесно',
+    '👩🏿‍🦼‍➡' => 'жена у моторним колицима: тамна кожа и гледа удесно',
+    '🧑🏻‍🦽‍➡' => 'особа у механичким колицима: светла кожа и гледа удесно',
+    '🧑🏼‍🦽‍➡' => 'особа у механичким колицима: средње светла кожа и гледа удесно',
+    '🧑🏽‍🦽‍➡' => 'особа у механичким колицима: ни светла ни тамна кожа и гледа удесно',
+    '🧑🏾‍🦽‍➡' => 'особа у механичким колицима: средње тамна кожа и гледа удесно',
+    '🧑🏿‍🦽‍➡' => 'особа у механичким колицима: тамна кожа и гледа удесно',
+    '👨🏻‍🦽‍➡' => 'човек у механичким колицима: светла кожа и гледа удесно',
+    '👨🏼‍🦽‍➡' => 'човек у механичким колицима: средње светла кожа и гледа удесно',
+    '👨🏽‍🦽‍➡' => 'човек у механичким колицима: ни светла ни тамна кожа и гледа удесно',
+    '👨🏾‍🦽‍➡' => 'човек у механичким колицима: средње тамна кожа и гледа удесно',
+    '👨🏿‍🦽‍➡' => 'човек у механичким колицима: тамна кожа и гледа удесно',
+    '👩🏻‍🦽‍➡' => 'жена у механичким колицима: светла кожа и гледа удесно',
+    '👩🏼‍🦽‍➡' => 'жена у механичким колицима: средње светла кожа и гледа удесно',
+    '👩🏽‍🦽‍➡' => 'жена у механичким колицима: ни светла ни тамна кожа и гледа удесно',
+    '👩🏾‍🦽‍➡' => 'жена у механичким колицима: средње тамна кожа и гледа удесно',
+    '👩🏿‍🦽‍➡' => 'жена у механичким колицима: тамна кожа и гледа удесно',
+    '🏃🏻‍♀‍➡' => 'жена трчи: светла кожа и гледа удесно',
+    '🏃🏼‍♀‍➡' => 'жена трчи: средње светла кожа и гледа удесно',
+    '🏃🏽‍♀‍➡' => 'жена трчи: ни светла ни тамна кожа и гледа удесно',
+    '🏃🏾‍♀‍➡' => 'жена трчи: средње тамна кожа и гледа удесно',
+    '🏃🏿‍♀‍➡' => 'жена трчи: тамна кожа и гледа удесно',
+    '🏃🏻‍♂‍➡' => 'мушкарац трчи: светла кожа и гледа удесно',
+    '🏃🏼‍♂‍➡' => 'мушкарац трчи: средње светла кожа и гледа удесно',
+    '🏃🏽‍♂‍➡' => 'мушкарац трчи: ни светла ни тамна кожа и гледа удесно',
+    '🏃🏾‍♂‍➡' => 'мушкарац трчи: средње тамна кожа и гледа удесно',
+    '🏃🏿‍♂‍➡' => 'мушкарац трчи: тамна кожа и гледа удесно',
     '🫱🏻‍🫲🏼' => 'руковање: светла кожа и средње светла кожа',
     '🫱🏻‍🫲🏽' => 'руковање: светла кожа и ни светла ни тамна кожа',
     '🫱🏻‍🫲🏾' => 'руковање: светла кожа и средње тамна кожа',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'руковање: тамна кожа и средње светла кожа',
     '🫱🏿‍🫲🏽' => 'руковање: тамна кожа и ни светла ни тамна кожа',
     '🫱🏿‍🫲🏾' => 'руковање: тамна кожа и средње тамна кожа',
-    '🚶‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🧎‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧑‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '👨‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👩‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '🧑‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '👨‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👩‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '🧑‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '👨‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👩‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '🏃‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃‍♂‍➡' => 'мушкарац трчи гледа удесно',
+    '🚶‍♀‍➡' => 'жена хода: гледа удесно',
+    '🚶‍♂‍➡' => 'мушкарац хода: гледа удесно',
+    '🧎‍♀‍➡' => 'жена клечи: гледа удесно',
+    '🧎‍♂‍➡' => 'човек клечи: гледа удесно',
+    '🧑‍🦯‍➡' => 'особа са помоћним штапом: гледа удесно',
+    '👨‍🦯‍➡' => 'човек са помоћним штапом: гледа удесно',
+    '👩‍🦯‍➡' => 'жена са помоћним штапом: гледа удесно',
+    '🧑‍🦼‍➡' => 'особа у моторним колицима: гледа удесно',
+    '👨‍🦼‍➡' => 'човек у моторним колицима: гледа удесно',
+    '👩‍🦼‍➡' => 'жена у моторним колицима: гледа удесно',
+    '🧑‍🦽‍➡' => 'особа у механичким колицима: гледа удесно',
+    '👨‍🦽‍➡' => 'човек у механичким колицима: гледа удесно',
+    '👩‍🦽‍➡' => 'жена у механичким колицима: гледа удесно',
+    '🏃‍♀‍➡' => 'жена трчи: гледа удесно',
+    '🏃‍♂‍➡' => 'мушкарац трчи: гледа удесно',
     '👩‍❤‍👨' => 'пар са срцем: жена и мушкарац',
     '👨‍❤‍👨' => 'пар са срцем: мушкарац и мушкарац',
     '👩‍❤‍👩' => 'пар са срцем: жена и жена',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'одрасла особа: ни светла ни тамна кожа и ћелав',
     '🧑🏾‍🦲' => 'одрасла особа: средње тамна кожа и ћелав',
     '🧑🏿‍🦲' => 'одрасла особа: тамна кожа и ћелав',
+    '🧑🏻‍🩰' => 'балетан: светла кожа',
+    '🧑🏼‍🩰' => 'балетан: средње светла кожа',
+    '🧑🏽‍🩰' => 'балетан: ни светла ни тамна кожа',
+    '🧑🏾‍🩰' => 'балетан: средње тамна кожа',
+    '🧑🏿‍🩰' => 'балетан: тамна кожа',
     '🧔🏻‍♂' => 'мушкарац: светла кожа и брада',
     '🧔🏼‍♂' => 'мушкарац: средње светла кожа и брада',
     '🧔🏽‍♂' => 'мушкарац: ни светла ни тамна кожа и брада',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'жена хода: ни светла ни тамна кожа',
     '🚶🏾‍♀' => 'жена хода: средње тамна кожа',
     '🚶🏿‍♀' => 'жена хода: тамна кожа',
-    '🚶🏻‍➡' => 'пешак гледа удесно',
-    '🚶🏼‍➡' => 'пешак гледа удесно',
-    '🚶🏽‍➡' => 'пешак гледа удесно',
-    '🚶🏾‍➡' => 'пешак гледа удесно',
-    '🚶🏿‍➡' => 'пешак гледа удесно',
+    '🚶🏻‍➡' => 'пешак: светла кожа и гледа удесно',
+    '🚶🏼‍➡' => 'пешак: средње светла кожа и гледа удесно',
+    '🚶🏽‍➡' => 'пешак: ни светла ни тамна кожа и гледа удесно',
+    '🚶🏾‍➡' => 'пешак: средње тамна кожа и гледа удесно',
+    '🚶🏿‍➡' => 'пешак: тамна кожа и гледа удесно',
     '🧍🏻‍♂' => 'човек стоји: светла кожа',
     '🧍🏼‍♂' => 'човек стоји: средње светла кожа',
     '🧍🏽‍♂' => 'човек стоји: ни светла ни тамна кожа',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'жена клечи: ни светла ни тамна кожа',
     '🧎🏾‍♀' => 'жена клечи: средње тамна кожа',
     '🧎🏿‍♀' => 'жена клечи: тамна кожа',
-    '🧎🏻‍➡' => 'особа клечи гледа удесно',
-    '🧎🏼‍➡' => 'особа клечи гледа удесно',
-    '🧎🏽‍➡' => 'особа клечи гледа удесно',
-    '🧎🏾‍➡' => 'особа клечи гледа удесно',
-    '🧎🏿‍➡' => 'особа клечи гледа удесно',
+    '🧎🏻‍➡' => 'особа клечи: светла кожа и гледа удесно',
+    '🧎🏼‍➡' => 'особа клечи: средње светла кожа и гледа удесно',
+    '🧎🏽‍➡' => 'особа клечи: ни светла ни тамна кожа и гледа удесно',
+    '🧎🏾‍➡' => 'особа клечи: средње тамна кожа и гледа удесно',
+    '🧎🏿‍➡' => 'особа клечи: тамна кожа и гледа удесно',
     '🧑🏻‍🦯' => 'особа са помоћним штапом: светла кожа',
     '🧑🏼‍🦯' => 'особа са помоћним штапом: средње светла кожа',
     '🧑🏽‍🦯' => 'особа са помоћним штапом: ни светла ни тамна кожа',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'жена трчи: ни светла ни тамна кожа',
     '🏃🏾‍♀' => 'жена трчи: средње тамна кожа',
     '🏃🏿‍♀' => 'жена трчи: тамна кожа',
-    '🏃🏻‍➡' => 'тркач гледа удесно',
-    '🏃🏼‍➡' => 'тркач гледа удесно',
-    '🏃🏽‍➡' => 'тркач гледа удесно',
-    '🏃🏾‍➡' => 'тркач гледа удесно',
-    '🏃🏿‍➡' => 'тркач гледа удесно',
+    '🏃🏻‍➡' => 'тркач: светла кожа и гледа удесно',
+    '🏃🏼‍➡' => 'тркач: средње светла кожа и гледа удесно',
+    '🏃🏽‍➡' => 'тркач: ни светла ни тамна кожа и гледа удесно',
+    '🏃🏾‍➡' => 'тркач: средње тамна кожа и гледа удесно',
+    '🏃🏿‍➡' => 'тркач: тамна кожа и гледа удесно',
+    '👯🏻‍♀' => 'жене у проводу: светла кожа',
+    '👯🏼‍♀' => 'жене у проводу: средње светла кожа',
+    '👯🏽‍♀' => 'жене у проводу: ни светла ни тамна кожа',
+    '👯🏾‍♀' => 'жене у проводу: средње тамна кожа',
+    '👯🏿‍♀' => 'жене у проводу: тамна кожа',
+    '👯🏻‍♂' => 'мушкарци у проводу: светла кожа',
+    '👯🏼‍♂' => 'мушкарци у проводу: средње светла кожа',
+    '👯🏽‍♂' => 'мушкарци у проводу: ни светла ни тамна кожа',
+    '👯🏾‍♂' => 'мушкарци у проводу: средње тамна кожа',
+    '👯🏿‍♂' => 'мушкарци у проводу: тамна кожа',
     '🧖🏻‍♂' => 'мушкарац у парном купатилу: светла кожа',
     '🧖🏼‍♂' => 'мушкарац у парном купатилу: средње светла кожа',
     '🧖🏽‍♂' => 'мушкарац у парном купатилу: ни светла ни тамна кожа',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'гимнастичарка: ни светла ни тамна кожа',
     '🤸🏾‍♀' => 'гимнастичарка: средње тамна кожа',
     '🤸🏿‍♀' => 'гимнастичарка: тамна кожа',
+    '🤼🏻‍♀' => 'рвачице: светла кожа',
+    '🤼🏼‍♀' => 'рвачице: средње светла кожа',
+    '🤼🏽‍♀' => 'рвачице: ни светла ни тамна кожа',
+    '🤼🏾‍♀' => 'рвачице: средње тамна кожа',
+    '🤼🏿‍♀' => 'рвачице: тамна кожа',
+    '🤼🏻‍♂' => 'рвачи: светла кожа',
+    '🤼🏼‍♂' => 'рвачи: средње светла кожа',
+    '🤼🏽‍♂' => 'рвачи: ни светла ни тамна кожа',
+    '🤼🏾‍♂' => 'рвачи: средње тамна кожа',
+    '🤼🏿‍♂' => 'рвачи: тамна кожа',
     '🤽🏻‍♂' => 'ватерполиста: светла кожа',
     '🤽🏼‍♂' => 'ватерполиста: средње светла кожа',
     '🤽🏽‍♂' => 'ватерполиста: ни светла ни тамна кожа',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'жена: коврџава коса',
     '👩‍🦳' => 'жена: седа коса',
     '👩‍🦲' => 'жена: ћелав',
-    '🚶‍➡' => 'пешак гледа удесно',
-    '🧎‍➡' => 'особа клечи гледа удесно',
-    '🏃‍➡' => 'тркач гледа удесно',
+    '🚶‍➡' => 'пешак: гледа удесно',
+    '🧎‍➡' => 'особа клечи: гледа удесно',
+    '🏃‍➡' => 'тркач: гледа удесно',
     '👨‍👦' => 'породица: мушкарац и дечак',
     '👨‍👧' => 'породица: мушкарац и девојчица',
     '👩‍👦' => 'породица: жена и дечак',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'жена у механичким колицима',
     '🏃‍♂' => 'мушкарац трчи',
     '🏃‍♀' => 'жена трчи',
+    '🧑‍🩰' => 'балетан',
     '👯‍♂' => 'мушкарци у проводу',
     '👯‍♀' => 'жене у проводу',
     '🧖‍♂' => 'мушкарац у парном купатилу',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'мушкарац у пословном оделу који лебди: ни светла ни тамна кожа',
     '🕴🏾' => 'мушкарац у пословном оделу који лебди: средње тамна кожа',
     '🕴🏿' => 'мушкарац у пословном оделу који лебди: тамна кожа',
+    '👯🏻' => 'особе у проводу: светла кожа',
+    '👯🏼' => 'особе у проводу: средње светла кожа',
+    '👯🏽' => 'особе у проводу: ни светла ни тамна кожа',
+    '👯🏾' => 'особе у проводу: средње тамна кожа',
+    '👯🏿' => 'особе у проводу: тамна кожа',
     '🧖🏻' => 'особа у парном купатилу: светла кожа',
     '🧖🏼' => 'особа у парном купатилу: средње светла кожа',
     '🧖🏽' => 'особа у парном купатилу: ни светла ни тамна кожа',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'гимнастичарска звезда: ни светла ни тамна кожа',
     '🤸🏾' => 'гимнастичарска звезда: средње тамна кожа',
     '🤸🏿' => 'гимнастичарска звезда: тамна кожа',
+    '🤼🏻' => 'рвање: светла кожа',
+    '🤼🏼' => 'рвање: средње светла кожа',
+    '🤼🏽' => 'рвање: ни светла ни тамна кожа',
+    '🤼🏾' => 'рвање: средње тамна кожа',
+    '🤼🏿' => 'рвање: тамна кожа',
     '🤽🏻' => 'ватерполо: светла кожа',
     '🤽🏼' => 'ватерполо: средње светла кожа',
     '🤽🏽' => 'ватерполо: ни светла ни тамна кожа',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'застава: Кина',
     '🇨🇴' => 'застава: Колумбија',
     '🇨🇵' => 'застава: Острво Клипертон',
+    '🇨🇶' => 'застава: Сарк',
     '🇨🇷' => 'застава: Костарика',
     '🇨🇺' => 'застава: Куба',
     '🇨🇻' => 'застава: Зеленортска Острва',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ни светла ни тамна кожа',
     '🏾' => 'средње тамна кожа',
     '🏿' => 'тамна кожа',
-    '🪉' => 'харфа',
-    '🪏' => 'лопата',
-    '🪾' => 'дрво без лишћа',
-    '🫆' => 'отисак прста',
-    '🫜' => 'коренасто поврће',
-    '🫟' => 'просуто',
-    '🫩' => 'лице са подочњацима',
     '😀' => 'лице са широким осмехом',
     '😃' => 'лице са одушевљеним осмехом',
     '😄' => 'лице које се слатко смеје',
@@ -2450,6 +2600,7 @@
     '😪' => 'поспано лице',
     '🤤' => 'лице којем иде вода на уста',
     '😴' => 'лице које спава',
+    '🫩' => 'лице са подочњацима',
     '😷' => 'лице са медицинском маском',
     '🤒' => 'лице са топломером',
     '🤕' => 'лице са завојем на глави',
@@ -2476,6 +2627,7 @@
     '😯' => 'изненађено лице',
     '😲' => 'запањено лице',
     '😳' => 'зајапурено лице',
+    '🫪' => 'искривљено лице',
     '🥺' => 'молећиво лице',
     '🥹' => 'лице задржава сузе',
     '😦' => 'зачуђено лице',
@@ -2547,6 +2699,7 @@
     '💋' => 'отисак пољупца',
     '💯' => 'сто поена',
     '💢' => 'симбол љутње',
+    '🫯' => 'облак туче',
     '💥' => 'судар',
     '💫' => 'вртоглавица',
     '💦' => 'капљице зноја',
@@ -2670,6 +2823,7 @@
     '🧞' => 'добри дух',
     '🧟' => 'зомби',
     '🧌' => 'трол',
+    '🫈' => 'длакаво створење',
     '💆' => 'масажа лица',
     '💇' => 'шишање',
     '🚶' => 'пешак',
@@ -2713,6 +2867,7 @@
     '🫂' => 'људи се грле',
     '👪' => 'породица',
     '👣' => 'отисци стопала',
+    '🫆' => 'отисак прста',
     '🦰' => 'црвена коса',
     '🦱' => 'коврџава коса',
     '🦳' => 'седа коса',
@@ -2812,6 +2967,7 @@
     '🐳' => 'кит који прска',
     '🐋' => 'кит',
     '🐬' => 'делфин',
+    '🫍' => 'орка',
     '🦭' => 'фока',
     '🐟' => 'риба',
     '🐠' => 'тропска риба',
@@ -2821,6 +2977,11 @@
     '🐚' => 'спирална шкољка',
     '🪸' => 'корал',
     '🪼' => 'медуза',
+    '🦀' => 'краба',
+    '🦞' => 'јастог',
+    '🦐' => 'рачић',
+    '🦑' => 'хоботница',
+    '🦪' => 'острига',
     '🐌' => 'пуж',
     '🦋' => 'лептир',
     '🐛' => 'гусеница',
@@ -2865,6 +3026,7 @@
     '🪹' => 'празно гнездо',
     '🪺' => 'гнездо с јајима',
     '🍄' => 'печурка',
+    '🪾' => 'дрво без лишћа',
     '🍇' => 'грожђе',
     '🍈' => 'диња',
     '🍉' => 'лубеница',
@@ -2901,6 +3063,7 @@
     '🌰' => 'кестен',
     '🫚' => 'корен ђумбира',
     '🫛' => 'махуна грашка',
+    '🫜' => 'коренасто поврће',
     '🍞' => 'хлеб',
     '🥐' => 'кроасан',
     '🥖' => 'багет',
@@ -2952,11 +3115,6 @@
     '🥟' => 'кнедла',
     '🥠' => 'колачић судбине',
     '🥡' => 'кутија за храну',
-    '🦀' => 'краба',
-    '🦞' => 'јастог',
-    '🦐' => 'рачић',
-    '🦑' => 'хоботница',
-    '🦪' => 'острига',
     '🍦' => 'сладолед у корнету',
     '🍧' => 'сорбе',
     '🍨' => 'сладолед',
@@ -3007,6 +3165,7 @@
     '🧭' => 'компас',
     '🏔' => 'снежни врх планине',
     '⛰' => 'планина',
+    '🛘' => 'одрон',
     '🌋' => 'вулкан',
     '🗻' => 'планина фуџи',
     '🏕' => 'камповање',
@@ -3367,16 +3526,18 @@
     '🎧' => 'слушалица',
     '📻' => 'радио',
     '🎷' => 'саксофон',
+    '🎺' => 'труба',
+    '🪊' => 'тромбон',
     '🪗' => 'хармоника',
     '🎸' => 'гитара',
     '🎹' => 'клавијатура',
-    '🎺' => 'труба',
     '🎻' => 'виолина',
     '🪕' => 'бенџо',
     '🥁' => 'добош',
     '🪘' => 'тимпан',
     '🪇' => 'марака',
     '🪈' => 'флаута',
+    '🪉' => 'харфа',
     '📱' => 'мобилни телефон',
     '📲' => 'мобилни телефон са стрелицом',
     '☎' => 'телефон',
@@ -3430,8 +3591,9 @@
     '📑' => 'странице са белешкама',
     '🔖' => 'обележивач страница у књизи',
     '🏷' => 'ознака',
-    '💰' => 'врећа новца',
     '🪙' => 'новчић',
+    '💰' => 'врећа новца',
+    '🪎' => 'ковчег с благом',
     '💴' => 'новчаница са знаком јена',
     '💵' => 'новчаница са знаком долара',
     '💶' => 'новчаница са знаком евра',
@@ -3514,6 +3676,7 @@
     '🧰' => 'кутија за алат',
     '🧲' => 'магнет',
     '🪜' => 'мердевине',
+    '🪏' => 'лопата',
     '⚗' => 'алембик',
     '🧪' => 'епрувета',
     '🧫' => 'петријева шоља',
@@ -3697,6 +3860,7 @@
     '✴' => 'осмокрака звездица',
     '❇' => 'искра',
     '™' => 'жиг',
+    '🫟' => 'просуто',
     '🔠' => 'унос великих слова',
     '🔡' => 'унос малих слова',
     '🔢' => 'унос бројева',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_latn_ba.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_latn_ba.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_latn_ba.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_latn_ba.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'poljubac: žena, žena, tamna koža i ni svijetla ni tamna koža',
     '👩🏿‍❤‍💋‍👩🏾' => 'poljubac: žena, žena, tamna koža i srednje tamna koža',
     '👩🏿‍❤‍💋‍👩🏿' => 'poljubac: žena, žena i tamna koža',
+    '🧑🏻‍🫯‍🧑🏼' => 'rvanje: svijetla koža i srednje svijetla koža',
+    '🧑🏻‍🫯‍🧑🏽' => 'rvanje: svijetla koža i ni svijetla ni tamna koža',
+    '🧑🏻‍🫯‍🧑🏾' => 'rvanje: svijetla koža i srednje tamna koža',
+    '🧑🏻‍🫯‍🧑🏿' => 'rvanje: svijetla koža i tamna koža',
+    '🧑🏼‍🫯‍🧑🏻' => 'rvanje: srednje svijetla koža i svijetla koža',
+    '🧑🏼‍🫯‍🧑🏽' => 'rvanje: srednje svijetla koža i ni svijetla ni tamna koža',
+    '🧑🏼‍🫯‍🧑🏾' => 'rvanje: srednje svijetla koža i srednje tamna koža',
+    '🧑🏼‍🫯‍🧑🏿' => 'rvanje: srednje svijetla koža i tamna koža',
+    '🧑🏽‍🫯‍🧑🏻' => 'rvanje: ni svijetla ni tamna koža i svijetla koža',
+    '🧑🏽‍🫯‍🧑🏼' => 'rvanje: ni svijetla ni tamna koža i srednje svijetla koža',
+    '🧑🏽‍🫯‍🧑🏾' => 'rvanje: ni svijetla ni tamna koža i srednje tamna koža',
+    '🧑🏽‍🫯‍🧑🏿' => 'rvanje: ni svijetla ni tamna koža i tamna koža',
+    '🧑🏾‍🫯‍🧑🏻' => 'rvanje: srednje tamna koža i svijetla koža',
+    '🧑🏾‍🫯‍🧑🏼' => 'rvanje: srednje tamna koža i srednje svijetla koža',
+    '🧑🏾‍🫯‍🧑🏽' => 'rvanje: srednje tamna koža i ni svijetla ni tamna koža',
+    '🧑🏾‍🫯‍🧑🏿' => 'rvanje: srednje tamna koža i tamna koža',
+    '🧑🏿‍🫯‍🧑🏻' => 'rvanje: tamna koža i svijetla koža',
+    '🧑🏿‍🫯‍🧑🏼' => 'rvanje: tamna koža i srednje svijetla koža',
+    '🧑🏿‍🫯‍🧑🏽' => 'rvanje: tamna koža i ni svijetla ni tamna koža',
+    '🧑🏿‍🫯‍🧑🏾' => 'rvanje: tamna koža i srednje tamna koža',
     '🧑🏻‍❤‍🧑🏼' => 'par sa srcem: odrasla osoba, odrasla osoba, svijetla koža i srednje svijetla koža',
     '🧑🏻‍❤‍🧑🏽' => 'par sa srcem: odrasla osoba, odrasla osoba, svijetla koža i ni svijetla ni tamna koža',
     '🧑🏻‍❤‍🧑🏾' => 'par sa srcem: odrasla osoba, odrasla osoba, svijetla koža i srednje tamna koža',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par sa srcem: odrasla osoba, odrasla osoba, tamna koža i srednje svijetla koža',
     '🧑🏿‍❤‍🧑🏽' => 'par sa srcem: odrasla osoba, odrasla osoba, tamna koža i ni svijetla ni tamna koža',
     '🧑🏿‍❤‍🧑🏾' => 'par sa srcem: odrasla osoba, odrasla osoba, tamna koža i srednje tamna koža',
+    '🧑🏻‍🐰‍🧑🏼' => 'osobe u provodu: svijetla koža i srednje svijetla koža',
+    '🧑🏻‍🐰‍🧑🏽' => 'osobe u provodu: svijetla koža i ni svijetla ni tamna koža',
+    '🧑🏻‍🐰‍🧑🏾' => 'osobe u provodu: svijetla koža i srednje tamna koža',
+    '🧑🏻‍🐰‍🧑🏿' => 'osobe u provodu: svijetla koža i tamna koža',
+    '🧑🏼‍🐰‍🧑🏻' => 'osobe u provodu: srednje svijetla koža i svijetla koža',
+    '🧑🏼‍🐰‍🧑🏽' => 'osobe u provodu: srednje svijetla koža i ni svijetla ni tamna koža',
+    '🧑🏼‍🐰‍🧑🏾' => 'osobe u provodu: srednje svijetla koža i srednje tamna koža',
+    '🧑🏼‍🐰‍🧑🏿' => 'osobe u provodu: srednje svijetla koža i tamna koža',
+    '🧑🏽‍🐰‍🧑🏻' => 'osobe u provodu: ni svijetla ni tamna koža i svijetla koža',
+    '🧑🏽‍🐰‍🧑🏼' => 'osobe u provodu: ni svijetla ni tamna koža i srednje svijetla koža',
+    '🧑🏽‍🐰‍🧑🏾' => 'osobe u provodu: ni svijetla ni tamna koža i srednje tamna koža',
+    '🧑🏽‍🐰‍🧑🏿' => 'osobe u provodu: ni svijetla ni tamna koža i tamna koža',
+    '🧑🏾‍🐰‍🧑🏻' => 'osobe u provodu: srednje tamna koža i svijetla koža',
+    '🧑🏾‍🐰‍🧑🏼' => 'osobe u provodu: srednje tamna koža i srednje svijetla koža',
+    '🧑🏾‍🐰‍🧑🏽' => 'osobe u provodu: srednje tamna koža i ni svijetla ni tamna koža',
+    '🧑🏾‍🐰‍🧑🏿' => 'osobe u provodu: srednje tamna koža i tamna koža',
+    '🧑🏿‍🐰‍🧑🏻' => 'osobe u provodu: tamna koža i svijetla koža',
+    '🧑🏿‍🐰‍🧑🏼' => 'osobe u provodu: tamna koža i srednje svijetla koža',
+    '🧑🏿‍🐰‍🧑🏽' => 'osobe u provodu: tamna koža i ni svijetla ni tamna koža',
+    '🧑🏿‍🐰‍🧑🏾' => 'osobe u provodu: tamna koža i srednje tamna koža',
+    '👨🏻‍🫯‍👨🏼' => 'rvači: svijetla koža i srednje svijetla koža',
+    '👨🏻‍🫯‍👨🏽' => 'rvači: svijetla koža i ni svijetla ni tamna koža',
+    '👨🏻‍🫯‍👨🏾' => 'rvači: svijetla koža i srednje tamna koža',
+    '👨🏻‍🫯‍👨🏿' => 'rvači: svijetla koža i tamna koža',
+    '👨🏼‍🫯‍👨🏻' => 'rvači: srednje svijetla koža i svijetla koža',
+    '👨🏼‍🫯‍👨🏽' => 'rvači: srednje svijetla koža i ni svijetla ni tamna koža',
+    '👨🏼‍🫯‍👨🏾' => 'rvači: srednje svijetla koža i srednje tamna koža',
+    '👨🏼‍🫯‍👨🏿' => 'rvači: srednje svijetla koža i tamna koža',
+    '👨🏽‍🫯‍👨🏻' => 'rvači: ni svijetla ni tamna koža i svijetla koža',
+    '👨🏽‍🫯‍👨🏼' => 'rvači: ni svijetla ni tamna koža i srednje svijetla koža',
+    '👨🏽‍🫯‍👨🏾' => 'rvači: ni svijetla ni tamna koža i srednje tamna koža',
+    '👨🏽‍🫯‍👨🏿' => 'rvači: ni svijetla ni tamna koža i tamna koža',
+    '👨🏾‍🫯‍👨🏻' => 'rvači: srednje tamna koža i svijetla koža',
+    '👨🏾‍🫯‍👨🏼' => 'rvači: srednje tamna koža i srednje svijetla koža',
+    '👨🏾‍🫯‍👨🏽' => 'rvači: srednje tamna koža i ni svijetla ni tamna koža',
+    '👨🏾‍🫯‍👨🏿' => 'rvači: srednje tamna koža i tamna koža',
+    '👨🏿‍🫯‍👨🏻' => 'rvači: tamna koža i svijetla koža',
+    '👨🏿‍🫯‍👨🏼' => 'rvači: tamna koža i srednje svijetla koža',
+    '👨🏿‍🫯‍👨🏽' => 'rvači: tamna koža i ni svijetla ni tamna koža',
+    '👨🏿‍🫯‍👨🏾' => 'rvači: tamna koža i srednje tamna koža',
     '👨🏻‍❤‍👨🏻' => 'par sa srcem: muškarac, muškarac i svijetla koža',
     '👨🏻‍❤‍👨🏼' => 'par sa srcem: muškarac, muškarac, svijetla koža i srednje svijetla koža',
     '👨🏻‍❤‍👨🏽' => 'par sa srcem: muškarac, muškarac, svijetla koža i ni svijetla ni tamna koža',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'par sa srcem: muškarac, muškarac, tamna koža i ni svijetla ni tamna koža',
     '👨🏿‍❤‍👨🏾' => 'par sa srcem: muškarac, muškarac, tamna koža i srednje tamna koža',
     '👨🏿‍❤‍👨🏿' => 'par sa srcem: muškarac, muškarac i tamna koža',
+    '👨🏻‍🐰‍👨🏼' => 'muškarci u provodu: svijetla koža i srednje svijetla koža',
+    '👨🏻‍🐰‍👨🏽' => 'muškarci u provodu: svijetla koža i ni svijetla ni tamna koža',
+    '👨🏻‍🐰‍👨🏾' => 'muškarci u provodu: svijetla koža i srednje tamna koža',
+    '👨🏻‍🐰‍👨🏿' => 'muškarci u provodu: svijetla koža i tamna koža',
+    '👨🏼‍🐰‍👨🏻' => 'muškarci u provodu: srednje svijetla koža i svijetla koža',
+    '👨🏼‍🐰‍👨🏽' => 'muškarci u provodu: srednje svijetla koža i ni svijetla ni tamna koža',
+    '👨🏼‍🐰‍👨🏾' => 'muškarci u provodu: srednje svijetla koža i srednje tamna koža',
+    '👨🏼‍🐰‍👨🏿' => 'muškarci u provodu: srednje svijetla koža i tamna koža',
+    '👨🏽‍🐰‍👨🏻' => 'muškarci u provodu: ni svijetla ni tamna koža i svijetla koža',
+    '👨🏽‍🐰‍👨🏼' => 'muškarci u provodu: ni svijetla ni tamna koža i srednje svijetla koža',
+    '👨🏽‍🐰‍👨🏾' => 'muškarci u provodu: ni svijetla ni tamna koža i srednje tamna koža',
+    '👨🏽‍🐰‍👨🏿' => 'muškarci u provodu: ni svijetla ni tamna koža i tamna koža',
+    '👨🏾‍🐰‍👨🏻' => 'muškarci u provodu: srednje tamna koža i svijetla koža',
+    '👨🏾‍🐰‍👨🏼' => 'muškarci u provodu: srednje tamna koža i srednje svijetla koža',
+    '👨🏾‍🐰‍👨🏽' => 'muškarci u provodu: srednje tamna koža i ni svijetla ni tamna koža',
+    '👨🏾‍🐰‍👨🏿' => 'muškarci u provodu: srednje tamna koža i tamna koža',
+    '👨🏿‍🐰‍👨🏻' => 'muškarci u provodu: tamna koža i svijetla koža',
+    '👨🏿‍🐰‍👨🏼' => 'muškarci u provodu: tamna koža i srednje svijetla koža',
+    '👨🏿‍🐰‍👨🏽' => 'muškarci u provodu: tamna koža i ni svijetla ni tamna koža',
+    '👨🏿‍🐰‍👨🏾' => 'muškarci u provodu: tamna koža i srednje tamna koža',
+    '👩🏻‍🫯‍👩🏼' => 'rvačice: svijetla koža i srednje svijetla koža',
+    '👩🏻‍🫯‍👩🏽' => 'rvačice: svijetla koža i ni svijetla ni tamna koža',
+    '👩🏻‍🫯‍👩🏾' => 'rvačice: svijetla koža i srednje tamna koža',
+    '👩🏻‍🫯‍👩🏿' => 'rvačice: svijetla koža i tamna koža',
+    '👩🏼‍🫯‍👩🏻' => 'rvačice: srednje svijetla koža i svijetla koža',
+    '👩🏼‍🫯‍👩🏽' => 'rvačice: srednje svijetla koža i ni svijetla ni tamna koža',
+    '👩🏼‍🫯‍👩🏾' => 'rvačice: srednje svijetla koža i srednje tamna koža',
+    '👩🏼‍🫯‍👩🏿' => 'rvačice: srednje svijetla koža i tamna koža',
+    '👩🏽‍🫯‍👩🏻' => 'rvačice: ni svijetla ni tamna koža i svijetla koža',
+    '👩🏽‍🫯‍👩🏼' => 'rvačice: ni svijetla ni tamna koža i srednje svijetla koža',
+    '👩🏽‍🫯‍👩🏾' => 'rvačice: ni svijetla ni tamna koža i srednje tamna koža',
+    '👩🏽‍🫯‍👩🏿' => 'rvačice: ni svijetla ni tamna koža i tamna koža',
+    '👩🏾‍🫯‍👩🏻' => 'rvačice: srednje tamna koža i svijetla koža',
+    '👩🏾‍🫯‍👩🏼' => 'rvačice: srednje tamna koža i srednje svijetla koža',
+    '👩🏾‍🫯‍👩🏽' => 'rvačice: srednje tamna koža i ni svijetla ni tamna koža',
+    '👩🏾‍🫯‍👩🏿' => 'rvačice: srednje tamna koža i tamna koža',
+    '👩🏿‍🫯‍👩🏻' => 'rvačice: tamna koža i svijetla koža',
+    '👩🏿‍🫯‍👩🏼' => 'rvačice: tamna koža i srednje svijetla koža',
+    '👩🏿‍🫯‍👩🏽' => 'rvačice: tamna koža i ni svijetla ni tamna koža',
+    '👩🏿‍🫯‍👩🏾' => 'rvačice: tamna koža i srednje tamna koža',
     '👩🏻‍❤‍👨🏻' => 'par sa srcem: žena, muškarac i svijetla koža',
     '👩🏻‍❤‍👨🏼' => 'par sa srcem: žena, muškarac, svijetla koža i srednje svijetla koža',
     '👩🏻‍❤‍👨🏽' => 'par sa srcem: žena, muškarac, svijetla koža i ni svijetla ni tamna koža',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'par sa srcem: žena, žena, tamna koža i ni svijetla ni tamna koža',
     '👩🏿‍❤‍👩🏾' => 'par sa srcem: žena, žena, tamna koža i srednje tamna koža',
     '👩🏿‍❤‍👩🏿' => 'par sa srcem: žena, žena i tamna koža',
+    '👩🏻‍🐰‍👩🏼' => 'žene u provodu: svijetla koža i srednje svijetla koža',
+    '👩🏻‍🐰‍👩🏽' => 'žene u provodu: svijetla koža i ni svijetla ni tamna koža',
+    '👩🏻‍🐰‍👩🏾' => 'žene u provodu: svijetla koža i srednje tamna koža',
+    '👩🏻‍🐰‍👩🏿' => 'žene u provodu: svijetla koža i tamna koža',
+    '👩🏼‍🐰‍👩🏻' => 'žene u provodu: srednje svijetla koža i svijetla koža',
+    '👩🏼‍🐰‍👩🏽' => 'žene u provodu: srednje svijetla koža i ni svijetla ni tamna koža',
+    '👩🏼‍🐰‍👩🏾' => 'žene u provodu: srednje svijetla koža i srednje tamna koža',
+    '👩🏼‍🐰‍👩🏿' => 'žene u provodu: srednje svijetla koža i tamna koža',
+    '👩🏽‍🐰‍👩🏻' => 'žene u provodu: ni svijetla ni tamna koža i svijetla koža',
+    '👩🏽‍🐰‍👩🏼' => 'žene u provodu: ni svijetla ni tamna koža i srednje svijetla koža',
+    '👩🏽‍🐰‍👩🏾' => 'žene u provodu: ni svijetla ni tamna koža i srednje tamna koža',
+    '👩🏽‍🐰‍👩🏿' => 'žene u provodu: ni svijetla ni tamna koža i tamna koža',
+    '👩🏾‍🐰‍👩🏻' => 'žene u provodu: srednje tamna koža i svijetla koža',
+    '👩🏾‍🐰‍👩🏼' => 'žene u provodu: srednje tamna koža i srednje svijetla koža',
+    '👩🏾‍🐰‍👩🏽' => 'žene u provodu: srednje tamna koža i ni svijetla ni tamna koža',
+    '👩🏾‍🐰‍👩🏿' => 'žene u provodu: srednje tamna koža i tamna koža',
+    '👩🏿‍🐰‍👩🏻' => 'žene u provodu: tamna koža i svijetla koža',
+    '👩🏿‍🐰‍👩🏼' => 'žene u provodu: tamna koža i srednje svijetla koža',
+    '👩🏿‍🐰‍👩🏽' => 'žene u provodu: tamna koža i ni svijetla ni tamna koža',
+    '👩🏿‍🐰‍👩🏾' => 'žene u provodu: tamna koža i srednje tamna koža',
     '🧑🏻‍🤝‍🧑🏻' => 'osobe se drže za ruke: svijetla koža',
     '🧑🏻‍🤝‍🧑🏼' => 'osobe se drže za ruke: svijetla koža i srednje svijetla koža',
     '🧑🏻‍🤝‍🧑🏽' => 'osobe se drže za ruke: svijetla koža i ni svijetla ni tamna koža',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'zastava: Škotska',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'zastava: Vels',
     '🧑‍🧑‍🧒‍🧒' => 'porodica: odrasla osoba, odrasla osoba, dijete, dijete',
-    '🚶🏻‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶🏼‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶🏽‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶🏾‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶🏿‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶🏻‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🚶🏼‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🚶🏽‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🚶🏾‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🚶🏿‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🧎🏻‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎🏼‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎🏽‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎🏾‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎🏿‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎🏻‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧎🏼‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧎🏽‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧎🏾‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧎🏿‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧑🏻‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '🧑🏼‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '🧑🏽‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '🧑🏾‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '🧑🏿‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '👨🏻‍🦯‍➡' => 'čovjek sa pomoćnim štapom gleda udesno',
-    '👨🏼‍🦯‍➡' => 'čovjek sa pomoćnim štapom gleda udesno',
-    '👨🏽‍🦯‍➡' => 'čovjek sa pomoćnim štapom gleda udesno',
-    '👨🏾‍🦯‍➡' => 'čovjek sa pomoćnim štapom gleda udesno',
-    '👨🏿‍🦯‍➡' => 'čovjek sa pomoćnim štapom gleda udesno',
-    '👩🏻‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '👩🏼‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '👩🏽‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '👩🏾‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '👩🏿‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '🧑🏻‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '🧑🏼‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '🧑🏽‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '🧑🏾‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '🧑🏿‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '👨🏻‍🦼‍➡' => 'čovjek u motornim kolicima gleda udesno',
-    '👨🏼‍🦼‍➡' => 'čovjek u motornim kolicima gleda udesno',
-    '👨🏽‍🦼‍➡' => 'čovjek u motornim kolicima gleda udesno',
-    '👨🏾‍🦼‍➡' => 'čovjek u motornim kolicima gleda udesno',
-    '👨🏿‍🦼‍➡' => 'čovjek u motornim kolicima gleda udesno',
-    '👩🏻‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '👩🏼‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '👩🏽‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '👩🏾‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '👩🏿‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '🧑🏻‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '🧑🏼‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '🧑🏽‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '🧑🏾‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '🧑🏿‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '👨🏻‍🦽‍➡' => 'čovjek u mehaničkim kolicima gleda udesno',
-    '👨🏼‍🦽‍➡' => 'čovjek u mehaničkim kolicima gleda udesno',
-    '👨🏽‍🦽‍➡' => 'čovjek u mehaničkim kolicima gleda udesno',
-    '👨🏾‍🦽‍➡' => 'čovjek u mehaničkim kolicima gleda udesno',
-    '👨🏿‍🦽‍➡' => 'čovjek u mehaničkim kolicima gleda udesno',
-    '👩🏻‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '👩🏼‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '👩🏽‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '👩🏾‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '👩🏿‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '🏃🏻‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃🏼‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃🏽‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃🏾‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃🏿‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃🏻‍♂‍➡' => 'muškarac trči gleda udesno',
-    '🏃🏼‍♂‍➡' => 'muškarac trči gleda udesno',
-    '🏃🏽‍♂‍➡' => 'muškarac trči gleda udesno',
-    '🏃🏾‍♂‍➡' => 'muškarac trči gleda udesno',
-    '🏃🏿‍♂‍➡' => 'muškarac trči gleda udesno',
+    '🚶🏻‍♀‍➡' => 'žena hoda: svijetla koža i gleda udesno',
+    '🚶🏼‍♀‍➡' => 'žena hoda: srednje svijetla koža i gleda udesno',
+    '🚶🏽‍♀‍➡' => 'žena hoda: ni svijetla ni tamna koža i gleda udesno',
+    '🚶🏾‍♀‍➡' => 'žena hoda: srednje tamna koža i gleda udesno',
+    '🚶🏿‍♀‍➡' => 'žena hoda: tamna koža i gleda udesno',
+    '🚶🏻‍♂‍➡' => 'muškarac hoda: svijetla koža i gleda udesno',
+    '🚶🏼‍♂‍➡' => 'muškarac hoda: srednje svijetla koža i gleda udesno',
+    '🚶🏽‍♂‍➡' => 'muškarac hoda: ni svijetla ni tamna koža i gleda udesno',
+    '🚶🏾‍♂‍➡' => 'muškarac hoda: srednje tamna koža i gleda udesno',
+    '🚶🏿‍♂‍➡' => 'muškarac hoda: tamna koža i gleda udesno',
+    '🧎🏻‍♀‍➡' => 'žena kleči: svijetla koža i gleda udesno',
+    '🧎🏼‍♀‍➡' => 'žena kleči: srednje svijetla koža i gleda udesno',
+    '🧎🏽‍♀‍➡' => 'žena kleči: ni svijetla ni tamna koža i gleda udesno',
+    '🧎🏾‍♀‍➡' => 'žena kleči: srednje tamna koža i gleda udesno',
+    '🧎🏿‍♀‍➡' => 'žena kleči: tamna koža i gleda udesno',
+    '🧎🏻‍♂‍➡' => 'čovek kleči: svijetla koža i gleda udesno',
+    '🧎🏼‍♂‍➡' => 'čovek kleči: srednje svijetla koža i gleda udesno',
+    '🧎🏽‍♂‍➡' => 'čovek kleči: ni svijetla ni tamna koža i gleda udesno',
+    '🧎🏾‍♂‍➡' => 'čovek kleči: srednje tamna koža i gleda udesno',
+    '🧎🏿‍♂‍➡' => 'čovek kleči: tamna koža i gleda udesno',
+    '🧑🏻‍🦯‍➡' => 'osoba sa pomoćnim štapom: svijetla koža i gleda udesno',
+    '🧑🏼‍🦯‍➡' => 'osoba sa pomoćnim štapom: srednje svijetla koža i gleda udesno',
+    '🧑🏽‍🦯‍➡' => 'osoba sa pomoćnim štapom: ni svijetla ni tamna koža i gleda udesno',
+    '🧑🏾‍🦯‍➡' => 'osoba sa pomoćnim štapom: srednje tamna koža i gleda udesno',
+    '🧑🏿‍🦯‍➡' => 'osoba sa pomoćnim štapom: tamna koža i gleda udesno',
+    '👨🏻‍🦯‍➡' => 'čovjek sa pomoćnim štapom: svijetla koža i gleda udesno',
+    '👨🏼‍🦯‍➡' => 'čovjek sa pomoćnim štapom: srednje svijetla koža i gleda udesno',
+    '👨🏽‍🦯‍➡' => 'čovjek sa pomoćnim štapom: ni svijetla ni tamna koža i gleda udesno',
+    '👨🏾‍🦯‍➡' => 'čovjek sa pomoćnim štapom: srednje tamna koža i gleda udesno',
+    '👨🏿‍🦯‍➡' => 'čovjek sa pomoćnim štapom: tamna koža i gleda udesno',
+    '👩🏻‍🦯‍➡' => 'žena sa pomoćnim štapom: svijetla koža i gleda udesno',
+    '👩🏼‍🦯‍➡' => 'žena sa pomoćnim štapom: srednje svijetla koža i gleda udesno',
+    '👩🏽‍🦯‍➡' => 'žena sa pomoćnim štapom: ni svijetla ni tamna koža i gleda udesno',
+    '👩🏾‍🦯‍➡' => 'žena sa pomoćnim štapom: srednje tamna koža i gleda udesno',
+    '👩🏿‍🦯‍➡' => 'žena sa pomoćnim štapom: tamna koža i gleda udesno',
+    '🧑🏻‍🦼‍➡' => 'osoba u motornim kolicima: svijetla koža i gleda udesno',
+    '🧑🏼‍🦼‍➡' => 'osoba u motornim kolicima: srednje svijetla koža i gleda udesno',
+    '🧑🏽‍🦼‍➡' => 'osoba u motornim kolicima: ni svijetla ni tamna koža i gleda udesno',
+    '🧑🏾‍🦼‍➡' => 'osoba u motornim kolicima: srednje tamna koža i gleda udesno',
+    '🧑🏿‍🦼‍➡' => 'osoba u motornim kolicima: tamna koža i gleda udesno',
+    '👨🏻‍🦼‍➡' => 'čovjek u motornim kolicima: svijetla koža i gleda udesno',
+    '👨🏼‍🦼‍➡' => 'čovjek u motornim kolicima: srednje svijetla koža i gleda udesno',
+    '👨🏽‍🦼‍➡' => 'čovjek u motornim kolicima: ni svijetla ni tamna koža i gleda udesno',
+    '👨🏾‍🦼‍➡' => 'čovjek u motornim kolicima: srednje tamna koža i gleda udesno',
+    '👨🏿‍🦼‍➡' => 'čovjek u motornim kolicima: tamna koža i gleda udesno',
+    '👩🏻‍🦼‍➡' => 'žena u motornim kolicima: svijetla koža i gleda udesno',
+    '👩🏼‍🦼‍➡' => 'žena u motornim kolicima: srednje svijetla koža i gleda udesno',
+    '👩🏽‍🦼‍➡' => 'žena u motornim kolicima: ni svijetla ni tamna koža i gleda udesno',
+    '👩🏾‍🦼‍➡' => 'žena u motornim kolicima: srednje tamna koža i gleda udesno',
+    '👩🏿‍🦼‍➡' => 'žena u motornim kolicima: tamna koža i gleda udesno',
+    '🧑🏻‍🦽‍➡' => 'osoba u mehaničkim kolicima: svijetla koža i gleda udesno',
+    '🧑🏼‍🦽‍➡' => 'osoba u mehaničkim kolicima: srednje svijetla koža i gleda udesno',
+    '🧑🏽‍🦽‍➡' => 'osoba u mehaničkim kolicima: ni svijetla ni tamna koža i gleda udesno',
+    '🧑🏾‍🦽‍➡' => 'osoba u mehaničkim kolicima: srednje tamna koža i gleda udesno',
+    '🧑🏿‍🦽‍➡' => 'osoba u mehaničkim kolicima: tamna koža i gleda udesno',
+    '👨🏻‍🦽‍➡' => 'čovjek u mehaničkim kolicima: svijetla koža i gleda udesno',
+    '👨🏼‍🦽‍➡' => 'čovjek u mehaničkim kolicima: srednje svijetla koža i gleda udesno',
+    '👨🏽‍🦽‍➡' => 'čovjek u mehaničkim kolicima: ni svijetla ni tamna koža i gleda udesno',
+    '👨🏾‍🦽‍➡' => 'čovjek u mehaničkim kolicima: srednje tamna koža i gleda udesno',
+    '👨🏿‍🦽‍➡' => 'čovjek u mehaničkim kolicima: tamna koža i gleda udesno',
+    '👩🏻‍🦽‍➡' => 'žena u mehaničkim kolicima: svijetla koža i gleda udesno',
+    '👩🏼‍🦽‍➡' => 'žena u mehaničkim kolicima: srednje svijetla koža i gleda udesno',
+    '👩🏽‍🦽‍➡' => 'žena u mehaničkim kolicima: ni svijetla ni tamna koža i gleda udesno',
+    '👩🏾‍🦽‍➡' => 'žena u mehaničkim kolicima: srednje tamna koža i gleda udesno',
+    '👩🏿‍🦽‍➡' => 'žena u mehaničkim kolicima: tamna koža i gleda udesno',
+    '🏃🏻‍♀‍➡' => 'žena trči: svijetla koža i gleda udesno',
+    '🏃🏼‍♀‍➡' => 'žena trči: srednje svijetla koža i gleda udesno',
+    '🏃🏽‍♀‍➡' => 'žena trči: ni svijetla ni tamna koža i gleda udesno',
+    '🏃🏾‍♀‍➡' => 'žena trči: srednje tamna koža i gleda udesno',
+    '🏃🏿‍♀‍➡' => 'žena trči: tamna koža i gleda udesno',
+    '🏃🏻‍♂‍➡' => 'muškarac trči: svijetla koža i gleda udesno',
+    '🏃🏼‍♂‍➡' => 'muškarac trči: srednje svijetla koža i gleda udesno',
+    '🏃🏽‍♂‍➡' => 'muškarac trči: ni svijetla ni tamna koža i gleda udesno',
+    '🏃🏾‍♂‍➡' => 'muškarac trči: srednje tamna koža i gleda udesno',
+    '🏃🏿‍♂‍➡' => 'muškarac trči: tamna koža i gleda udesno',
     '🫱🏻‍🫲🏼' => 'rukovanje: svijetla koža i srednje svijetla koža',
     '🫱🏻‍🫲🏽' => 'rukovanje: svijetla koža i ni svijetla ni tamna koža',
     '🫱🏻‍🫲🏾' => 'rukovanje: svijetla koža i srednje tamna koža',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'rukovanje: tamna koža i srednje svijetla koža',
     '🫱🏿‍🫲🏽' => 'rukovanje: tamna koža i ni svijetla ni tamna koža',
     '🫱🏿‍🫲🏾' => 'rukovanje: tamna koža i srednje tamna koža',
-    '🚶‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🧎‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧑‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '👨‍🦯‍➡' => 'čovjek sa pomoćnim štapom gleda udesno',
-    '👩‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '🧑‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '👨‍🦼‍➡' => 'čovjek u motornim kolicima gleda udesno',
-    '👩‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '🧑‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '👨‍🦽‍➡' => 'čovjek u mehaničkim kolicima gleda udesno',
-    '👩‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '🏃‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃‍♂‍➡' => 'muškarac trči gleda udesno',
+    '🚶‍♀‍➡' => 'žena hoda: gleda udesno',
+    '🚶‍♂‍➡' => 'muškarac hoda: gleda udesno',
+    '🧎‍♀‍➡' => 'žena kleči: gleda udesno',
+    '🧎‍♂‍➡' => 'čovek kleči: gleda udesno',
+    '🧑‍🦯‍➡' => 'osoba sa pomoćnim štapom: gleda udesno',
+    '👨‍🦯‍➡' => 'čovjek sa pomoćnim štapom: gleda udesno',
+    '👩‍🦯‍➡' => 'žena sa pomoćnim štapom: gleda udesno',
+    '🧑‍🦼‍➡' => 'osoba u motornim kolicima: gleda udesno',
+    '👨‍🦼‍➡' => 'čovjek u motornim kolicima: gleda udesno',
+    '👩‍🦼‍➡' => 'žena u motornim kolicima: gleda udesno',
+    '🧑‍🦽‍➡' => 'osoba u mehaničkim kolicima: gleda udesno',
+    '👨‍🦽‍➡' => 'čovjek u mehaničkim kolicima: gleda udesno',
+    '👩‍🦽‍➡' => 'žena u mehaničkim kolicima: gleda udesno',
+    '🏃‍♀‍➡' => 'žena trči: gleda udesno',
+    '🏃‍♂‍➡' => 'muškarac trči: gleda udesno',
     '👩‍❤‍👨' => 'par sa srcem: žena i muškarac',
     '👨‍❤‍👨' => 'par sa srcem: muškarac i muškarac',
     '👩‍❤‍👩' => 'par sa srcem: žena i žena',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'odrasla osoba: ni svijetla ni tamna koža i ćelav',
     '🧑🏾‍🦲' => 'odrasla osoba: srednje tamna koža i ćelav',
     '🧑🏿‍🦲' => 'odrasla osoba: tamna koža i ćelav',
+    '🧑🏻‍🩰' => 'baletan: svijetla koža',
+    '🧑🏼‍🩰' => 'baletan: srednje svijetla koža',
+    '🧑🏽‍🩰' => 'baletan: ni svijetla ni tamna koža',
+    '🧑🏾‍🩰' => 'baletan: srednje tamna koža',
+    '🧑🏿‍🩰' => 'baletan: tamna koža',
     '🧔🏻‍♂' => 'muškarac: svijetla koža i brada',
     '🧔🏼‍♂' => 'muškarac: srednje svijetla koža i brada',
     '🧔🏽‍♂' => 'muškarac: ni svijetla ni tamna koža i brada',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'žena hoda: ni svijetla ni tamna koža',
     '🚶🏾‍♀' => 'žena hoda: srednje tamna koža',
     '🚶🏿‍♀' => 'žena hoda: tamna koža',
-    '🚶🏻‍➡' => 'pješak gleda udesno',
-    '🚶🏼‍➡' => 'pješak gleda udesno',
-    '🚶🏽‍➡' => 'pješak gleda udesno',
-    '🚶🏾‍➡' => 'pješak gleda udesno',
-    '🚶🏿‍➡' => 'pješak gleda udesno',
+    '🚶🏻‍➡' => 'pješak: svijetla koža i gleda udesno',
+    '🚶🏼‍➡' => 'pješak: srednje svijetla koža i gleda udesno',
+    '🚶🏽‍➡' => 'pješak: ni svijetla ni tamna koža i gleda udesno',
+    '🚶🏾‍➡' => 'pješak: srednje tamna koža i gleda udesno',
+    '🚶🏿‍➡' => 'pješak: tamna koža i gleda udesno',
     '🧍🏻‍♂' => 'čovjek stoji: svijetla koža',
     '🧍🏼‍♂' => 'čovjek stoji: srednje svijetla koža',
     '🧍🏽‍♂' => 'čovjek stoji: ni svijetla ni tamna koža',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'žena kleči: ni svijetla ni tamna koža',
     '🧎🏾‍♀' => 'žena kleči: srednje tamna koža',
     '🧎🏿‍♀' => 'žena kleči: tamna koža',
-    '🧎🏻‍➡' => 'osoba kleči gleda udesno',
-    '🧎🏼‍➡' => 'osoba kleči gleda udesno',
-    '🧎🏽‍➡' => 'osoba kleči gleda udesno',
-    '🧎🏾‍➡' => 'osoba kleči gleda udesno',
-    '🧎🏿‍➡' => 'osoba kleči gleda udesno',
+    '🧎🏻‍➡' => 'osoba kleči: svijetla koža i gleda udesno',
+    '🧎🏼‍➡' => 'osoba kleči: srednje svijetla koža i gleda udesno',
+    '🧎🏽‍➡' => 'osoba kleči: ni svijetla ni tamna koža i gleda udesno',
+    '🧎🏾‍➡' => 'osoba kleči: srednje tamna koža i gleda udesno',
+    '🧎🏿‍➡' => 'osoba kleči: tamna koža i gleda udesno',
     '🧑🏻‍🦯' => 'osoba sa pomoćnim štapom: svijetla koža',
     '🧑🏼‍🦯' => 'osoba sa pomoćnim štapom: srednje svijetla koža',
     '🧑🏽‍🦯' => 'osoba sa pomoćnim štapom: ni svijetla ni tamna koža',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'žena trči: ni svijetla ni tamna koža',
     '🏃🏾‍♀' => 'žena trči: srednje tamna koža',
     '🏃🏿‍♀' => 'žena trči: tamna koža',
-    '🏃🏻‍➡' => 'trkač gleda udesno',
-    '🏃🏼‍➡' => 'trkač gleda udesno',
-    '🏃🏽‍➡' => 'trkač gleda udesno',
-    '🏃🏾‍➡' => 'trkač gleda udesno',
-    '🏃🏿‍➡' => 'trkač gleda udesno',
+    '🏃🏻‍➡' => 'trkač: svijetla koža i gleda udesno',
+    '🏃🏼‍➡' => 'trkač: srednje svijetla koža i gleda udesno',
+    '🏃🏽‍➡' => 'trkač: ni svijetla ni tamna koža i gleda udesno',
+    '🏃🏾‍➡' => 'trkač: srednje tamna koža i gleda udesno',
+    '🏃🏿‍➡' => 'trkač: tamna koža i gleda udesno',
+    '👯🏻‍♀' => 'žene u provodu: svijetla koža',
+    '👯🏼‍♀' => 'žene u provodu: srednje svijetla koža',
+    '👯🏽‍♀' => 'žene u provodu: ni svijetla ni tamna koža',
+    '👯🏾‍♀' => 'žene u provodu: srednje tamna koža',
+    '👯🏿‍♀' => 'žene u provodu: tamna koža',
+    '👯🏻‍♂' => 'muškarci u provodu: svijetla koža',
+    '👯🏼‍♂' => 'muškarci u provodu: srednje svijetla koža',
+    '👯🏽‍♂' => 'muškarci u provodu: ni svijetla ni tamna koža',
+    '👯🏾‍♂' => 'muškarci u provodu: srednje tamna koža',
+    '👯🏿‍♂' => 'muškarci u provodu: tamna koža',
     '🧖🏻‍♂' => 'muškarac u parnom kupatilu: svijetla koža',
     '🧖🏼‍♂' => 'muškarac u parnom kupatilu: srednje svijetla koža',
     '🧖🏽‍♂' => 'muškarac u parnom kupatilu: ni svijetla ni tamna koža',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'gimnastičarka: ni svijetla ni tamna koža',
     '🤸🏾‍♀' => 'gimnastičarka: srednje tamna koža',
     '🤸🏿‍♀' => 'gimnastičarka: tamna koža',
+    '🤼🏻‍♀' => 'rvačice: svijetla koža',
+    '🤼🏼‍♀' => 'rvačice: srednje svijetla koža',
+    '🤼🏽‍♀' => 'rvačice: ni svijetla ni tamna koža',
+    '🤼🏾‍♀' => 'rvačice: srednje tamna koža',
+    '🤼🏿‍♀' => 'rvačice: tamna koža',
+    '🤼🏻‍♂' => 'rvači: svijetla koža',
+    '🤼🏼‍♂' => 'rvači: srednje svijetla koža',
+    '🤼🏽‍♂' => 'rvači: ni svijetla ni tamna koža',
+    '🤼🏾‍♂' => 'rvači: srednje tamna koža',
+    '🤼🏿‍♂' => 'rvači: tamna koža',
     '🤽🏻‍♂' => 'vaterpolista: svijetla koža',
     '🤽🏼‍♂' => 'vaterpolista: srednje svijetla koža',
     '🤽🏽‍♂' => 'vaterpolista: ni svijetla ni tamna koža',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'žena: kovrdžava kosa',
     '👩‍🦳' => 'žena: sijeda kosa',
     '👩‍🦲' => 'žena: ćelav',
-    '🚶‍➡' => 'pješak gleda udesno',
-    '🧎‍➡' => 'osoba kleči gleda udesno',
-    '🏃‍➡' => 'trkač gleda udesno',
+    '🚶‍➡' => 'pješak: gleda udesno',
+    '🧎‍➡' => 'osoba kleči: gleda udesno',
+    '🏃‍➡' => 'trkač: gleda udesno',
     '👨‍👦' => 'porodica: muškarac i dječak',
     '👨‍👧' => 'porodica: muškarac i djevojčica',
     '👩‍👦' => 'porodica: žena i dječak',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'žena u mehaničkim kolicima',
     '🏃‍♂' => 'muškarac trči',
     '🏃‍♀' => 'žena trči',
+    '🧑‍🩰' => 'baletan',
     '👯‍♂' => 'muškarci u provodu',
     '👯‍♀' => 'žene u provodu',
     '🧖‍♂' => 'muškarac u parnom kupatilu',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'muškarac u poslovnom odijelu koji lebdi: ni svijetla ni tamna koža',
     '🕴🏾' => 'muškarac u poslovnom odijelu koji lebdi: srednje tamna koža',
     '🕴🏿' => 'muškarac u poslovnom odijelu koji lebdi: tamna koža',
+    '👯🏻' => 'osobe u provodu: svijetla koža',
+    '👯🏼' => 'osobe u provodu: srednje svijetla koža',
+    '👯🏽' => 'osobe u provodu: ni svijetla ni tamna koža',
+    '👯🏾' => 'osobe u provodu: srednje tamna koža',
+    '👯🏿' => 'osobe u provodu: tamna koža',
     '🧖🏻' => 'osoba u parnom kupatilu: svijetla koža',
     '🧖🏼' => 'osoba u parnom kupatilu: srednje svijetla koža',
     '🧖🏽' => 'osoba u parnom kupatilu: ni svijetla ni tamna koža',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'gimnastičarska zvezda: ni svijetla ni tamna koža',
     '🤸🏾' => 'gimnastičarska zvezda: srednje tamna koža',
     '🤸🏿' => 'gimnastičarska zvezda: tamna koža',
+    '🤼🏻' => 'rvanje: svijetla koža',
+    '🤼🏼' => 'rvanje: srednje svijetla koža',
+    '🤼🏽' => 'rvanje: ni svijetla ni tamna koža',
+    '🤼🏾' => 'rvanje: srednje tamna koža',
+    '🤼🏿' => 'rvanje: tamna koža',
     '🤽🏻' => 'vaterpolo: svijetla koža',
     '🤽🏼' => 'vaterpolo: srednje svijetla koža',
     '🤽🏽' => 'vaterpolo: ni svijetla ni tamna koža',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'zastava: Kina',
     '🇨🇴' => 'zastava: Kolumbija',
     '🇨🇵' => 'zastava: ostrvo Kliperton',
+    '🇨🇶' => 'zastava: Sark',
     '🇨🇷' => 'zastava: Kostarika',
     '🇨🇺' => 'zastava: Kuba',
     '🇨🇻' => 'zastava: Zelenortska Ostrva',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ni svijetla ni tamna koža',
     '🏾' => 'srednje tamna koža',
     '🏿' => 'tamna koža',
-    '🪉' => 'harfa',
-    '🪏' => 'lopata',
-    '🪾' => 'drvo bez lišća',
-    '🫆' => 'otisak prsta',
-    '🫜' => 'korjenasto povrće',
-    '🫟' => 'prosuto',
-    '🫩' => 'lice sa podočnjacima',
     '😀' => 'lice sa širokim osmijehom',
     '😃' => 'lice sa oduševljenim osmijehom',
     '😄' => 'lice koje se slatko smije',
@@ -2450,6 +2600,7 @@
     '😪' => 'pospano lice',
     '🤤' => 'lice kojem ide voda na usta',
     '😴' => 'lice koje spava',
+    '🫩' => 'lice sa podočnjacima',
     '😷' => 'lice sa medicinskom maskom',
     '🤒' => 'lice sa toplomjerom',
     '🤕' => 'lice sa zavojem na glavi',
@@ -2476,6 +2627,7 @@
     '😯' => 'iznenađeno lice',
     '😲' => 'zapanjeno lice',
     '😳' => 'zajapureno lice',
+    '🫪' => 'iskrivljeno lice',
     '🥺' => 'molećivo lice',
     '🥹' => 'lice zadržava suze',
     '😦' => 'začuđeno lice',
@@ -2547,6 +2699,7 @@
     '💋' => 'otisak poljupca',
     '💯' => 'sto poena',
     '💢' => 'simbol ljutnje',
+    '🫯' => 'oblak tuče',
     '💥' => 'sudar',
     '💫' => 'vrtoglavica',
     '💦' => 'kapljice znoja',
@@ -2670,6 +2823,7 @@
     '🧞' => 'dobri duh',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'dlakavo stvorenje',
     '💆' => 'masaža lica',
     '💇' => 'šišanje',
     '🚶' => 'pješak',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ljudi se grle',
     '👪' => 'porodica',
     '👣' => 'otisci stopala',
+    '🫆' => 'otisak prsta',
     '🦰' => 'crvena kosa',
     '🦱' => 'kovrdžava kosa',
     '🦳' => 'sijeda kosa',
@@ -2812,6 +2967,7 @@
     '🐳' => 'kit koji prska',
     '🐋' => 'kit',
     '🐬' => 'delfin',
+    '🫍' => 'orka',
     '🦭' => 'foka',
     '🐟' => 'riba',
     '🐠' => 'tropska riba',
@@ -2821,6 +2977,11 @@
     '🐚' => 'spiralna školjka',
     '🪸' => 'koral',
     '🪼' => 'meduza',
+    '🦀' => 'kraba',
+    '🦞' => 'jastog',
+    '🦐' => 'račić',
+    '🦑' => 'hobotnica',
+    '🦪' => 'ostriga',
     '🐌' => 'puž',
     '🦋' => 'leptir',
     '🐛' => 'gusjenica',
@@ -2865,6 +3026,7 @@
     '🪹' => 'prazno gnijezdo',
     '🪺' => 'gnijezdo s jajima',
     '🍄' => 'pečurka',
+    '🪾' => 'drvo bez lišća',
     '🍇' => 'grožđe',
     '🍈' => 'dinja',
     '🍉' => 'lubenica',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kesten',
     '🫚' => 'korijen đumbira',
     '🫛' => 'mahuna graška',
+    '🫜' => 'korjenasto povrće',
     '🍞' => 'hljeb',
     '🥐' => 'kroasan',
     '🥖' => 'baget',
@@ -2952,11 +3115,6 @@
     '🥟' => 'knedla',
     '🥠' => 'kolačić sudbine',
     '🥡' => 'kutija za hranu',
-    '🦀' => 'kraba',
-    '🦞' => 'jastog',
-    '🦐' => 'račić',
-    '🦑' => 'hobotnica',
-    '🦪' => 'ostriga',
     '🍦' => 'sladoled u kornetu',
     '🍧' => 'sorbe',
     '🍨' => 'sladoled',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'snježni vrh planine',
     '⛰' => 'planina',
+    '🛘' => 'odron',
     '🌋' => 'vulkan',
     '🗻' => 'planina fudži',
     '🏕' => 'kampovanje',
@@ -3367,16 +3526,18 @@
     '🎧' => 'slušalica',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'truba',
+    '🪊' => 'trombon',
     '🪗' => 'harmonika',
     '🎸' => 'gitara',
     '🎹' => 'klavijatura',
-    '🎺' => 'truba',
     '🎻' => 'violina',
     '🪕' => 'bendžo',
     '🥁' => 'doboš',
     '🪘' => 'timpan',
     '🪇' => 'maraka',
     '🪈' => 'flauta',
+    '🪉' => 'harfa',
     '📱' => 'mobilni telefon',
     '📲' => 'mobilni telefon sa strelicom',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'stranice sa bilješkama',
     '🔖' => 'obilježivač stranica u knjizi',
     '🏷' => 'oznaka',
-    '💰' => 'vreća novca',
     '🪙' => 'novčić',
+    '💰' => 'vreća novca',
+    '🪎' => 'kovčeg s blagom',
     '💴' => 'novčanica sa znakom jena',
     '💵' => 'novčanica sa znakom dolara',
     '💶' => 'novčanica sa znakom evra',
@@ -3514,6 +3676,7 @@
     '🧰' => 'kutija za alat',
     '🧲' => 'magnet',
     '🪜' => 'merdevine',
+    '🪏' => 'lopata',
     '⚗' => 'alembik',
     '🧪' => 'epruveta',
     '🧫' => 'petrijeva šolja',
@@ -3697,6 +3860,7 @@
     '✴' => 'osmokraka zvjezdica',
     '❇' => 'iskra',
     '™' => 'žig',
+    '🫟' => 'prosuto',
     '🔠' => 'unos velikih slova',
     '🔡' => 'unos malih slova',
     '🔢' => 'unos brojeva',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_latn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_latn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_latn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr_latn.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'poljubac: žena, žena, tamna koža i ni svetla ni tamna koža',
     '👩🏿‍❤‍💋‍👩🏾' => 'poljubac: žena, žena, tamna koža i srednje tamna koža',
     '👩🏿‍❤‍💋‍👩🏿' => 'poljubac: žena, žena i tamna koža',
+    '🧑🏻‍🫯‍🧑🏼' => 'rvanje: svetla koža i srednje svetla koža',
+    '🧑🏻‍🫯‍🧑🏽' => 'rvanje: svetla koža i ni svetla ni tamna koža',
+    '🧑🏻‍🫯‍🧑🏾' => 'rvanje: svetla koža i srednje tamna koža',
+    '🧑🏻‍🫯‍🧑🏿' => 'rvanje: svetla koža i tamna koža',
+    '🧑🏼‍🫯‍🧑🏻' => 'rvanje: srednje svetla koža i svetla koža',
+    '🧑🏼‍🫯‍🧑🏽' => 'rvanje: srednje svetla koža i ni svetla ni tamna koža',
+    '🧑🏼‍🫯‍🧑🏾' => 'rvanje: srednje svetla koža i srednje tamna koža',
+    '🧑🏼‍🫯‍🧑🏿' => 'rvanje: srednje svetla koža i tamna koža',
+    '🧑🏽‍🫯‍🧑🏻' => 'rvanje: ni svetla ni tamna koža i svetla koža',
+    '🧑🏽‍🫯‍🧑🏼' => 'rvanje: ni svetla ni tamna koža i srednje svetla koža',
+    '🧑🏽‍🫯‍🧑🏾' => 'rvanje: ni svetla ni tamna koža i srednje tamna koža',
+    '🧑🏽‍🫯‍🧑🏿' => 'rvanje: ni svetla ni tamna koža i tamna koža',
+    '🧑🏾‍🫯‍🧑🏻' => 'rvanje: srednje tamna koža i svetla koža',
+    '🧑🏾‍🫯‍🧑🏼' => 'rvanje: srednje tamna koža i srednje svetla koža',
+    '🧑🏾‍🫯‍🧑🏽' => 'rvanje: srednje tamna koža i ni svetla ni tamna koža',
+    '🧑🏾‍🫯‍🧑🏿' => 'rvanje: srednje tamna koža i tamna koža',
+    '🧑🏿‍🫯‍🧑🏻' => 'rvanje: tamna koža i svetla koža',
+    '🧑🏿‍🫯‍🧑🏼' => 'rvanje: tamna koža i srednje svetla koža',
+    '🧑🏿‍🫯‍🧑🏽' => 'rvanje: tamna koža i ni svetla ni tamna koža',
+    '🧑🏿‍🫯‍🧑🏾' => 'rvanje: tamna koža i srednje tamna koža',
     '🧑🏻‍❤‍🧑🏼' => 'par sa srcem: odrasla osoba, odrasla osoba, svetla koža i srednje svetla koža',
     '🧑🏻‍❤‍🧑🏽' => 'par sa srcem: odrasla osoba, odrasla osoba, svetla koža i ni svetla ni tamna koža',
     '🧑🏻‍❤‍🧑🏾' => 'par sa srcem: odrasla osoba, odrasla osoba, svetla koža i srednje tamna koža',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par sa srcem: odrasla osoba, odrasla osoba, tamna koža i srednje svetla koža',
     '🧑🏿‍❤‍🧑🏽' => 'par sa srcem: odrasla osoba, odrasla osoba, tamna koža i ni svetla ni tamna koža',
     '🧑🏿‍❤‍🧑🏾' => 'par sa srcem: odrasla osoba, odrasla osoba, tamna koža i srednje tamna koža',
+    '🧑🏻‍🐰‍🧑🏼' => 'osobe u provodu: svetla koža i srednje svetla koža',
+    '🧑🏻‍🐰‍🧑🏽' => 'osobe u provodu: svetla koža i ni svetla ni tamna koža',
+    '🧑🏻‍🐰‍🧑🏾' => 'osobe u provodu: svetla koža i srednje tamna koža',
+    '🧑🏻‍🐰‍🧑🏿' => 'osobe u provodu: svetla koža i tamna koža',
+    '🧑🏼‍🐰‍🧑🏻' => 'osobe u provodu: srednje svetla koža i svetla koža',
+    '🧑🏼‍🐰‍🧑🏽' => 'osobe u provodu: srednje svetla koža i ni svetla ni tamna koža',
+    '🧑🏼‍🐰‍🧑🏾' => 'osobe u provodu: srednje svetla koža i srednje tamna koža',
+    '🧑🏼‍🐰‍🧑🏿' => 'osobe u provodu: srednje svetla koža i tamna koža',
+    '🧑🏽‍🐰‍🧑🏻' => 'osobe u provodu: ni svetla ni tamna koža i svetla koža',
+    '🧑🏽‍🐰‍🧑🏼' => 'osobe u provodu: ni svetla ni tamna koža i srednje svetla koža',
+    '🧑🏽‍🐰‍🧑🏾' => 'osobe u provodu: ni svetla ni tamna koža i srednje tamna koža',
+    '🧑🏽‍🐰‍🧑🏿' => 'osobe u provodu: ni svetla ni tamna koža i tamna koža',
+    '🧑🏾‍🐰‍🧑🏻' => 'osobe u provodu: srednje tamna koža i svetla koža',
+    '🧑🏾‍🐰‍🧑🏼' => 'osobe u provodu: srednje tamna koža i srednje svetla koža',
+    '🧑🏾‍🐰‍🧑🏽' => 'osobe u provodu: srednje tamna koža i ni svetla ni tamna koža',
+    '🧑🏾‍🐰‍🧑🏿' => 'osobe u provodu: srednje tamna koža i tamna koža',
+    '🧑🏿‍🐰‍🧑🏻' => 'osobe u provodu: tamna koža i svetla koža',
+    '🧑🏿‍🐰‍🧑🏼' => 'osobe u provodu: tamna koža i srednje svetla koža',
+    '🧑🏿‍🐰‍🧑🏽' => 'osobe u provodu: tamna koža i ni svetla ni tamna koža',
+    '🧑🏿‍🐰‍🧑🏾' => 'osobe u provodu: tamna koža i srednje tamna koža',
+    '👨🏻‍🫯‍👨🏼' => 'rvači: svetla koža i srednje svetla koža',
+    '👨🏻‍🫯‍👨🏽' => 'rvači: svetla koža i ni svetla ni tamna koža',
+    '👨🏻‍🫯‍👨🏾' => 'rvači: svetla koža i srednje tamna koža',
+    '👨🏻‍🫯‍👨🏿' => 'rvači: svetla koža i tamna koža',
+    '👨🏼‍🫯‍👨🏻' => 'rvači: srednje svetla koža i svetla koža',
+    '👨🏼‍🫯‍👨🏽' => 'rvači: srednje svetla koža i ni svetla ni tamna koža',
+    '👨🏼‍🫯‍👨🏾' => 'rvači: srednje svetla koža i srednje tamna koža',
+    '👨🏼‍🫯‍👨🏿' => 'rvači: srednje svetla koža i tamna koža',
+    '👨🏽‍🫯‍👨🏻' => 'rvači: ni svetla ni tamna koža i svetla koža',
+    '👨🏽‍🫯‍👨🏼' => 'rvači: ni svetla ni tamna koža i srednje svetla koža',
+    '👨🏽‍🫯‍👨🏾' => 'rvači: ni svetla ni tamna koža i srednje tamna koža',
+    '👨🏽‍🫯‍👨🏿' => 'rvači: ni svetla ni tamna koža i tamna koža',
+    '👨🏾‍🫯‍👨🏻' => 'rvači: srednje tamna koža i svetla koža',
+    '👨🏾‍🫯‍👨🏼' => 'rvači: srednje tamna koža i srednje svetla koža',
+    '👨🏾‍🫯‍👨🏽' => 'rvači: srednje tamna koža i ni svetla ni tamna koža',
+    '👨🏾‍🫯‍👨🏿' => 'rvači: srednje tamna koža i tamna koža',
+    '👨🏿‍🫯‍👨🏻' => 'rvači: tamna koža i svetla koža',
+    '👨🏿‍🫯‍👨🏼' => 'rvači: tamna koža i srednje svetla koža',
+    '👨🏿‍🫯‍👨🏽' => 'rvači: tamna koža i ni svetla ni tamna koža',
+    '👨🏿‍🫯‍👨🏾' => 'rvači: tamna koža i srednje tamna koža',
     '👨🏻‍❤‍👨🏻' => 'par sa srcem: muškarac, muškarac i svetla koža',
     '👨🏻‍❤‍👨🏼' => 'par sa srcem: muškarac, muškarac, svetla koža i srednje svetla koža',
     '👨🏻‍❤‍👨🏽' => 'par sa srcem: muškarac, muškarac, svetla koža i ni svetla ni tamna koža',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'par sa srcem: muškarac, muškarac, tamna koža i ni svetla ni tamna koža',
     '👨🏿‍❤‍👨🏾' => 'par sa srcem: muškarac, muškarac, tamna koža i srednje tamna koža',
     '👨🏿‍❤‍👨🏿' => 'par sa srcem: muškarac, muškarac i tamna koža',
+    '👨🏻‍🐰‍👨🏼' => 'muškarci u provodu: svetla koža i srednje svetla koža',
+    '👨🏻‍🐰‍👨🏽' => 'muškarci u provodu: svetla koža i ni svetla ni tamna koža',
+    '👨🏻‍🐰‍👨🏾' => 'muškarci u provodu: svetla koža i srednje tamna koža',
+    '👨🏻‍🐰‍👨🏿' => 'muškarci u provodu: svetla koža i tamna koža',
+    '👨🏼‍🐰‍👨🏻' => 'muškarci u provodu: srednje svetla koža i svetla koža',
+    '👨🏼‍🐰‍👨🏽' => 'muškarci u provodu: srednje svetla koža i ni svetla ni tamna koža',
+    '👨🏼‍🐰‍👨🏾' => 'muškarci u provodu: srednje svetla koža i srednje tamna koža',
+    '👨🏼‍🐰‍👨🏿' => 'muškarci u provodu: srednje svetla koža i tamna koža',
+    '👨🏽‍🐰‍👨🏻' => 'muškarci u provodu: ni svetla ni tamna koža i svetla koža',
+    '👨🏽‍🐰‍👨🏼' => 'muškarci u provodu: ni svetla ni tamna koža i srednje svetla koža',
+    '👨🏽‍🐰‍👨🏾' => 'muškarci u provodu: ni svetla ni tamna koža i srednje tamna koža',
+    '👨🏽‍🐰‍👨🏿' => 'muškarci u provodu: ni svetla ni tamna koža i tamna koža',
+    '👨🏾‍🐰‍👨🏻' => 'muškarci u provodu: srednje tamna koža i svetla koža',
+    '👨🏾‍🐰‍👨🏼' => 'muškarci u provodu: srednje tamna koža i srednje svetla koža',
+    '👨🏾‍🐰‍👨🏽' => 'muškarci u provodu: srednje tamna koža i ni svetla ni tamna koža',
+    '👨🏾‍🐰‍👨🏿' => 'muškarci u provodu: srednje tamna koža i tamna koža',
+    '👨🏿‍🐰‍👨🏻' => 'muškarci u provodu: tamna koža i svetla koža',
+    '👨🏿‍🐰‍👨🏼' => 'muškarci u provodu: tamna koža i srednje svetla koža',
+    '👨🏿‍🐰‍👨🏽' => 'muškarci u provodu: tamna koža i ni svetla ni tamna koža',
+    '👨🏿‍🐰‍👨🏾' => 'muškarci u provodu: tamna koža i srednje tamna koža',
+    '👩🏻‍🫯‍👩🏼' => 'rvačice: svetla koža i srednje svetla koža',
+    '👩🏻‍🫯‍👩🏽' => 'rvačice: svetla koža i ni svetla ni tamna koža',
+    '👩🏻‍🫯‍👩🏾' => 'rvačice: svetla koža i srednje tamna koža',
+    '👩🏻‍🫯‍👩🏿' => 'rvačice: svetla koža i tamna koža',
+    '👩🏼‍🫯‍👩🏻' => 'rvačice: srednje svetla koža i svetla koža',
+    '👩🏼‍🫯‍👩🏽' => 'rvačice: srednje svetla koža i ni svetla ni tamna koža',
+    '👩🏼‍🫯‍👩🏾' => 'rvačice: srednje svetla koža i srednje tamna koža',
+    '👩🏼‍🫯‍👩🏿' => 'rvačice: srednje svetla koža i tamna koža',
+    '👩🏽‍🫯‍👩🏻' => 'rvačice: ni svetla ni tamna koža i svetla koža',
+    '👩🏽‍🫯‍👩🏼' => 'rvačice: ni svetla ni tamna koža i srednje svetla koža',
+    '👩🏽‍🫯‍👩🏾' => 'rvačice: ni svetla ni tamna koža i srednje tamna koža',
+    '👩🏽‍🫯‍👩🏿' => 'rvačice: ni svetla ni tamna koža i tamna koža',
+    '👩🏾‍🫯‍👩🏻' => 'rvačice: srednje tamna koža i svetla koža',
+    '👩🏾‍🫯‍👩🏼' => 'rvačice: srednje tamna koža i srednje svetla koža',
+    '👩🏾‍🫯‍👩🏽' => 'rvačice: srednje tamna koža i ni svetla ni tamna koža',
+    '👩🏾‍🫯‍👩🏿' => 'rvačice: srednje tamna koža i tamna koža',
+    '👩🏿‍🫯‍👩🏻' => 'rvačice: tamna koža i svetla koža',
+    '👩🏿‍🫯‍👩🏼' => 'rvačice: tamna koža i srednje svetla koža',
+    '👩🏿‍🫯‍👩🏽' => 'rvačice: tamna koža i ni svetla ni tamna koža',
+    '👩🏿‍🫯‍👩🏾' => 'rvačice: tamna koža i srednje tamna koža',
     '👩🏻‍❤‍👨🏻' => 'par sa srcem: žena, muškarac i svetla koža',
     '👩🏻‍❤‍👨🏼' => 'par sa srcem: žena, muškarac, svetla koža i srednje svetla koža',
     '👩🏻‍❤‍👨🏽' => 'par sa srcem: žena, muškarac, svetla koža i ni svetla ni tamna koža',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'par sa srcem: žena, žena, tamna koža i ni svetla ni tamna koža',
     '👩🏿‍❤‍👩🏾' => 'par sa srcem: žena, žena, tamna koža i srednje tamna koža',
     '👩🏿‍❤‍👩🏿' => 'par sa srcem: žena, žena i tamna koža',
+    '👩🏻‍🐰‍👩🏼' => 'žene u provodu: svetla koža i srednje svetla koža',
+    '👩🏻‍🐰‍👩🏽' => 'žene u provodu: svetla koža i ni svetla ni tamna koža',
+    '👩🏻‍🐰‍👩🏾' => 'žene u provodu: svetla koža i srednje tamna koža',
+    '👩🏻‍🐰‍👩🏿' => 'žene u provodu: svetla koža i tamna koža',
+    '👩🏼‍🐰‍👩🏻' => 'žene u provodu: srednje svetla koža i svetla koža',
+    '👩🏼‍🐰‍👩🏽' => 'žene u provodu: srednje svetla koža i ni svetla ni tamna koža',
+    '👩🏼‍🐰‍👩🏾' => 'žene u provodu: srednje svetla koža i srednje tamna koža',
+    '👩🏼‍🐰‍👩🏿' => 'žene u provodu: srednje svetla koža i tamna koža',
+    '👩🏽‍🐰‍👩🏻' => 'žene u provodu: ni svetla ni tamna koža i svetla koža',
+    '👩🏽‍🐰‍👩🏼' => 'žene u provodu: ni svetla ni tamna koža i srednje svetla koža',
+    '👩🏽‍🐰‍👩🏾' => 'žene u provodu: ni svetla ni tamna koža i srednje tamna koža',
+    '👩🏽‍🐰‍👩🏿' => 'žene u provodu: ni svetla ni tamna koža i tamna koža',
+    '👩🏾‍🐰‍👩🏻' => 'žene u provodu: srednje tamna koža i svetla koža',
+    '👩🏾‍🐰‍👩🏼' => 'žene u provodu: srednje tamna koža i srednje svetla koža',
+    '👩🏾‍🐰‍👩🏽' => 'žene u provodu: srednje tamna koža i ni svetla ni tamna koža',
+    '👩🏾‍🐰‍👩🏿' => 'žene u provodu: srednje tamna koža i tamna koža',
+    '👩🏿‍🐰‍👩🏻' => 'žene u provodu: tamna koža i svetla koža',
+    '👩🏿‍🐰‍👩🏼' => 'žene u provodu: tamna koža i srednje svetla koža',
+    '👩🏿‍🐰‍👩🏽' => 'žene u provodu: tamna koža i ni svetla ni tamna koža',
+    '👩🏿‍🐰‍👩🏾' => 'žene u provodu: tamna koža i srednje tamna koža',
     '🧑🏻‍🤝‍🧑🏻' => 'osobe se drže za ruke: svetla koža',
     '🧑🏻‍🤝‍🧑🏼' => 'osobe se drže za ruke: svetla koža i srednje svetla koža',
     '🧑🏻‍🤝‍🧑🏽' => 'osobe se drže za ruke: svetla koža i ni svetla ni tamna koža',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'zastava: Škotska',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'zastava: Vels',
     '🧑‍🧑‍🧒‍🧒' => 'porodica: odrasla osoba, odrasla osoba, dete, dete',
-    '🚶🏻‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶🏼‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶🏽‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶🏾‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶🏿‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶🏻‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🚶🏼‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🚶🏽‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🚶🏾‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🚶🏿‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🧎🏻‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎🏼‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎🏽‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎🏾‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎🏿‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎🏻‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧎🏼‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧎🏽‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧎🏾‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧎🏿‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧑🏻‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '🧑🏼‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '🧑🏽‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '🧑🏾‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '🧑🏿‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '👨🏻‍🦯‍➡' => 'čovek sa pomoćnim štapom gleda udesno',
-    '👨🏼‍🦯‍➡' => 'čovek sa pomoćnim štapom gleda udesno',
-    '👨🏽‍🦯‍➡' => 'čovek sa pomoćnim štapom gleda udesno',
-    '👨🏾‍🦯‍➡' => 'čovek sa pomoćnim štapom gleda udesno',
-    '👨🏿‍🦯‍➡' => 'čovek sa pomoćnim štapom gleda udesno',
-    '👩🏻‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '👩🏼‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '👩🏽‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '👩🏾‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '👩🏿‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '🧑🏻‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '🧑🏼‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '🧑🏽‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '🧑🏾‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '🧑🏿‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '👨🏻‍🦼‍➡' => 'čovek u motornim kolicima gleda udesno',
-    '👨🏼‍🦼‍➡' => 'čovek u motornim kolicima gleda udesno',
-    '👨🏽‍🦼‍➡' => 'čovek u motornim kolicima gleda udesno',
-    '👨🏾‍🦼‍➡' => 'čovek u motornim kolicima gleda udesno',
-    '👨🏿‍🦼‍➡' => 'čovek u motornim kolicima gleda udesno',
-    '👩🏻‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '👩🏼‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '👩🏽‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '👩🏾‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '👩🏿‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '🧑🏻‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '🧑🏼‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '🧑🏽‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '🧑🏾‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '🧑🏿‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '👨🏻‍🦽‍➡' => 'čovek u mehaničkim kolicima gleda udesno',
-    '👨🏼‍🦽‍➡' => 'čovek u mehaničkim kolicima gleda udesno',
-    '👨🏽‍🦽‍➡' => 'čovek u mehaničkim kolicima gleda udesno',
-    '👨🏾‍🦽‍➡' => 'čovek u mehaničkim kolicima gleda udesno',
-    '👨🏿‍🦽‍➡' => 'čovek u mehaničkim kolicima gleda udesno',
-    '👩🏻‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '👩🏼‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '👩🏽‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '👩🏾‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '👩🏿‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '🏃🏻‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃🏼‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃🏽‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃🏾‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃🏿‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃🏻‍♂‍➡' => 'muškarac trči gleda udesno',
-    '🏃🏼‍♂‍➡' => 'muškarac trči gleda udesno',
-    '🏃🏽‍♂‍➡' => 'muškarac trči gleda udesno',
-    '🏃🏾‍♂‍➡' => 'muškarac trči gleda udesno',
-    '🏃🏿‍♂‍➡' => 'muškarac trči gleda udesno',
+    '🚶🏻‍♀‍➡' => 'žena hoda: svetla koža i gleda udesno',
+    '🚶🏼‍♀‍➡' => 'žena hoda: srednje svetla koža i gleda udesno',
+    '🚶🏽‍♀‍➡' => 'žena hoda: ni svetla ni tamna koža i gleda udesno',
+    '🚶🏾‍♀‍➡' => 'žena hoda: srednje tamna koža i gleda udesno',
+    '🚶🏿‍♀‍➡' => 'žena hoda: tamna koža i gleda udesno',
+    '🚶🏻‍♂‍➡' => 'muškarac hoda: svetla koža i gleda udesno',
+    '🚶🏼‍♂‍➡' => 'muškarac hoda: srednje svetla koža i gleda udesno',
+    '🚶🏽‍♂‍➡' => 'muškarac hoda: ni svetla ni tamna koža i gleda udesno',
+    '🚶🏾‍♂‍➡' => 'muškarac hoda: srednje tamna koža i gleda udesno',
+    '🚶🏿‍♂‍➡' => 'muškarac hoda: tamna koža i gleda udesno',
+    '🧎🏻‍♀‍➡' => 'žena kleči: svetla koža i gleda udesno',
+    '🧎🏼‍♀‍➡' => 'žena kleči: srednje svetla koža i gleda udesno',
+    '🧎🏽‍♀‍➡' => 'žena kleči: ni svetla ni tamna koža i gleda udesno',
+    '🧎🏾‍♀‍➡' => 'žena kleči: srednje tamna koža i gleda udesno',
+    '🧎🏿‍♀‍➡' => 'žena kleči: tamna koža i gleda udesno',
+    '🧎🏻‍♂‍➡' => 'čovek kleči: svetla koža i gleda udesno',
+    '🧎🏼‍♂‍➡' => 'čovek kleči: srednje svetla koža i gleda udesno',
+    '🧎🏽‍♂‍➡' => 'čovek kleči: ni svetla ni tamna koža i gleda udesno',
+    '🧎🏾‍♂‍➡' => 'čovek kleči: srednje tamna koža i gleda udesno',
+    '🧎🏿‍♂‍➡' => 'čovek kleči: tamna koža i gleda udesno',
+    '🧑🏻‍🦯‍➡' => 'osoba sa pomoćnim štapom: svetla koža i gleda udesno',
+    '🧑🏼‍🦯‍➡' => 'osoba sa pomoćnim štapom: srednje svetla koža i gleda udesno',
+    '🧑🏽‍🦯‍➡' => 'osoba sa pomoćnim štapom: ni svetla ni tamna koža i gleda udesno',
+    '🧑🏾‍🦯‍➡' => 'osoba sa pomoćnim štapom: srednje tamna koža i gleda udesno',
+    '🧑🏿‍🦯‍➡' => 'osoba sa pomoćnim štapom: tamna koža i gleda udesno',
+    '👨🏻‍🦯‍➡' => 'čovek sa pomoćnim štapom: svetla koža i gleda udesno',
+    '👨🏼‍🦯‍➡' => 'čovek sa pomoćnim štapom: srednje svetla koža i gleda udesno',
+    '👨🏽‍🦯‍➡' => 'čovek sa pomoćnim štapom: ni svetla ni tamna koža i gleda udesno',
+    '👨🏾‍🦯‍➡' => 'čovek sa pomoćnim štapom: srednje tamna koža i gleda udesno',
+    '👨🏿‍🦯‍➡' => 'čovek sa pomoćnim štapom: tamna koža i gleda udesno',
+    '👩🏻‍🦯‍➡' => 'žena sa pomoćnim štapom: svetla koža i gleda udesno',
+    '👩🏼‍🦯‍➡' => 'žena sa pomoćnim štapom: srednje svetla koža i gleda udesno',
+    '👩🏽‍🦯‍➡' => 'žena sa pomoćnim štapom: ni svetla ni tamna koža i gleda udesno',
+    '👩🏾‍🦯‍➡' => 'žena sa pomoćnim štapom: srednje tamna koža i gleda udesno',
+    '👩🏿‍🦯‍➡' => 'žena sa pomoćnim štapom: tamna koža i gleda udesno',
+    '🧑🏻‍🦼‍➡' => 'osoba u motornim kolicima: svetla koža i gleda udesno',
+    '🧑🏼‍🦼‍➡' => 'osoba u motornim kolicima: srednje svetla koža i gleda udesno',
+    '🧑🏽‍🦼‍➡' => 'osoba u motornim kolicima: ni svetla ni tamna koža i gleda udesno',
+    '🧑🏾‍🦼‍➡' => 'osoba u motornim kolicima: srednje tamna koža i gleda udesno',
+    '🧑🏿‍🦼‍➡' => 'osoba u motornim kolicima: tamna koža i gleda udesno',
+    '👨🏻‍🦼‍➡' => 'čovek u motornim kolicima: svetla koža i gleda udesno',
+    '👨🏼‍🦼‍➡' => 'čovek u motornim kolicima: srednje svetla koža i gleda udesno',
+    '👨🏽‍🦼‍➡' => 'čovek u motornim kolicima: ni svetla ni tamna koža i gleda udesno',
+    '👨🏾‍🦼‍➡' => 'čovek u motornim kolicima: srednje tamna koža i gleda udesno',
+    '👨🏿‍🦼‍➡' => 'čovek u motornim kolicima: tamna koža i gleda udesno',
+    '👩🏻‍🦼‍➡' => 'žena u motornim kolicima: svetla koža i gleda udesno',
+    '👩🏼‍🦼‍➡' => 'žena u motornim kolicima: srednje svetla koža i gleda udesno',
+    '👩🏽‍🦼‍➡' => 'žena u motornim kolicima: ni svetla ni tamna koža i gleda udesno',
+    '👩🏾‍🦼‍➡' => 'žena u motornim kolicima: srednje tamna koža i gleda udesno',
+    '👩🏿‍🦼‍➡' => 'žena u motornim kolicima: tamna koža i gleda udesno',
+    '🧑🏻‍🦽‍➡' => 'osoba u mehaničkim kolicima: svetla koža i gleda udesno',
+    '🧑🏼‍🦽‍➡' => 'osoba u mehaničkim kolicima: srednje svetla koža i gleda udesno',
+    '🧑🏽‍🦽‍➡' => 'osoba u mehaničkim kolicima: ni svetla ni tamna koža i gleda udesno',
+    '🧑🏾‍🦽‍➡' => 'osoba u mehaničkim kolicima: srednje tamna koža i gleda udesno',
+    '🧑🏿‍🦽‍➡' => 'osoba u mehaničkim kolicima: tamna koža i gleda udesno',
+    '👨🏻‍🦽‍➡' => 'čovek u mehaničkim kolicima: svetla koža i gleda udesno',
+    '👨🏼‍🦽‍➡' => 'čovek u mehaničkim kolicima: srednje svetla koža i gleda udesno',
+    '👨🏽‍🦽‍➡' => 'čovek u mehaničkim kolicima: ni svetla ni tamna koža i gleda udesno',
+    '👨🏾‍🦽‍➡' => 'čovek u mehaničkim kolicima: srednje tamna koža i gleda udesno',
+    '👨🏿‍🦽‍➡' => 'čovek u mehaničkim kolicima: tamna koža i gleda udesno',
+    '👩🏻‍🦽‍➡' => 'žena u mehaničkim kolicima: svetla koža i gleda udesno',
+    '👩🏼‍🦽‍➡' => 'žena u mehaničkim kolicima: srednje svetla koža i gleda udesno',
+    '👩🏽‍🦽‍➡' => 'žena u mehaničkim kolicima: ni svetla ni tamna koža i gleda udesno',
+    '👩🏾‍🦽‍➡' => 'žena u mehaničkim kolicima: srednje tamna koža i gleda udesno',
+    '👩🏿‍🦽‍➡' => 'žena u mehaničkim kolicima: tamna koža i gleda udesno',
+    '🏃🏻‍♀‍➡' => 'žena trči: svetla koža i gleda udesno',
+    '🏃🏼‍♀‍➡' => 'žena trči: srednje svetla koža i gleda udesno',
+    '🏃🏽‍♀‍➡' => 'žena trči: ni svetla ni tamna koža i gleda udesno',
+    '🏃🏾‍♀‍➡' => 'žena trči: srednje tamna koža i gleda udesno',
+    '🏃🏿‍♀‍➡' => 'žena trči: tamna koža i gleda udesno',
+    '🏃🏻‍♂‍➡' => 'muškarac trči: svetla koža i gleda udesno',
+    '🏃🏼‍♂‍➡' => 'muškarac trči: srednje svetla koža i gleda udesno',
+    '🏃🏽‍♂‍➡' => 'muškarac trči: ni svetla ni tamna koža i gleda udesno',
+    '🏃🏾‍♂‍➡' => 'muškarac trči: srednje tamna koža i gleda udesno',
+    '🏃🏿‍♂‍➡' => 'muškarac trči: tamna koža i gleda udesno',
     '🫱🏻‍🫲🏼' => 'rukovanje: svetla koža i srednje svetla koža',
     '🫱🏻‍🫲🏽' => 'rukovanje: svetla koža i ni svetla ni tamna koža',
     '🫱🏻‍🫲🏾' => 'rukovanje: svetla koža i srednje tamna koža',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'rukovanje: tamna koža i srednje svetla koža',
     '🫱🏿‍🫲🏽' => 'rukovanje: tamna koža i ni svetla ni tamna koža',
     '🫱🏿‍🫲🏾' => 'rukovanje: tamna koža i srednje tamna koža',
-    '🚶‍♀‍➡' => 'žena hoda gleda udesno',
-    '🚶‍♂‍➡' => 'muškarac hoda gleda udesno',
-    '🧎‍♀‍➡' => 'žena kleči gleda udesno',
-    '🧎‍♂‍➡' => 'čovek kleči gleda udesno',
-    '🧑‍🦯‍➡' => 'osoba sa pomoćnim štapom gleda udesno',
-    '👨‍🦯‍➡' => 'čovek sa pomoćnim štapom gleda udesno',
-    '👩‍🦯‍➡' => 'žena sa pomoćnim štapom gleda udesno',
-    '🧑‍🦼‍➡' => 'osoba u motornim kolicima gleda udesno',
-    '👨‍🦼‍➡' => 'čovek u motornim kolicima gleda udesno',
-    '👩‍🦼‍➡' => 'žena u motornim kolicima gleda udesno',
-    '🧑‍🦽‍➡' => 'osoba u mehaničkim kolicima gleda udesno',
-    '👨‍🦽‍➡' => 'čovek u mehaničkim kolicima gleda udesno',
-    '👩‍🦽‍➡' => 'žena u mehaničkim kolicima gleda udesno',
-    '🏃‍♀‍➡' => 'žena trči gleda udesno',
-    '🏃‍♂‍➡' => 'muškarac trči gleda udesno',
+    '🚶‍♀‍➡' => 'žena hoda: gleda udesno',
+    '🚶‍♂‍➡' => 'muškarac hoda: gleda udesno',
+    '🧎‍♀‍➡' => 'žena kleči: gleda udesno',
+    '🧎‍♂‍➡' => 'čovek kleči: gleda udesno',
+    '🧑‍🦯‍➡' => 'osoba sa pomoćnim štapom: gleda udesno',
+    '👨‍🦯‍➡' => 'čovek sa pomoćnim štapom: gleda udesno',
+    '👩‍🦯‍➡' => 'žena sa pomoćnim štapom: gleda udesno',
+    '🧑‍🦼‍➡' => 'osoba u motornim kolicima: gleda udesno',
+    '👨‍🦼‍➡' => 'čovek u motornim kolicima: gleda udesno',
+    '👩‍🦼‍➡' => 'žena u motornim kolicima: gleda udesno',
+    '🧑‍🦽‍➡' => 'osoba u mehaničkim kolicima: gleda udesno',
+    '👨‍🦽‍➡' => 'čovek u mehaničkim kolicima: gleda udesno',
+    '👩‍🦽‍➡' => 'žena u mehaničkim kolicima: gleda udesno',
+    '🏃‍♀‍➡' => 'žena trči: gleda udesno',
+    '🏃‍♂‍➡' => 'muškarac trči: gleda udesno',
     '👩‍❤‍👨' => 'par sa srcem: žena i muškarac',
     '👨‍❤‍👨' => 'par sa srcem: muškarac i muškarac',
     '👩‍❤‍👩' => 'par sa srcem: žena i žena',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'odrasla osoba: ni svetla ni tamna koža i ćelav',
     '🧑🏾‍🦲' => 'odrasla osoba: srednje tamna koža i ćelav',
     '🧑🏿‍🦲' => 'odrasla osoba: tamna koža i ćelav',
+    '🧑🏻‍🩰' => 'baletan: svetla koža',
+    '🧑🏼‍🩰' => 'baletan: srednje svetla koža',
+    '🧑🏽‍🩰' => 'baletan: ni svetla ni tamna koža',
+    '🧑🏾‍🩰' => 'baletan: srednje tamna koža',
+    '🧑🏿‍🩰' => 'baletan: tamna koža',
     '🧔🏻‍♂' => 'muškarac: svetla koža i brada',
     '🧔🏼‍♂' => 'muškarac: srednje svetla koža i brada',
     '🧔🏽‍♂' => 'muškarac: ni svetla ni tamna koža i brada',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'žena hoda: ni svetla ni tamna koža',
     '🚶🏾‍♀' => 'žena hoda: srednje tamna koža',
     '🚶🏿‍♀' => 'žena hoda: tamna koža',
-    '🚶🏻‍➡' => 'pešak gleda udesno',
-    '🚶🏼‍➡' => 'pešak gleda udesno',
-    '🚶🏽‍➡' => 'pešak gleda udesno',
-    '🚶🏾‍➡' => 'pešak gleda udesno',
-    '🚶🏿‍➡' => 'pešak gleda udesno',
+    '🚶🏻‍➡' => 'pešak: svetla koža i gleda udesno',
+    '🚶🏼‍➡' => 'pešak: srednje svetla koža i gleda udesno',
+    '🚶🏽‍➡' => 'pešak: ni svetla ni tamna koža i gleda udesno',
+    '🚶🏾‍➡' => 'pešak: srednje tamna koža i gleda udesno',
+    '🚶🏿‍➡' => 'pešak: tamna koža i gleda udesno',
     '🧍🏻‍♂' => 'čovek stoji: svetla koža',
     '🧍🏼‍♂' => 'čovek stoji: srednje svetla koža',
     '🧍🏽‍♂' => 'čovek stoji: ni svetla ni tamna koža',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'žena kleči: ni svetla ni tamna koža',
     '🧎🏾‍♀' => 'žena kleči: srednje tamna koža',
     '🧎🏿‍♀' => 'žena kleči: tamna koža',
-    '🧎🏻‍➡' => 'osoba kleči gleda udesno',
-    '🧎🏼‍➡' => 'osoba kleči gleda udesno',
-    '🧎🏽‍➡' => 'osoba kleči gleda udesno',
-    '🧎🏾‍➡' => 'osoba kleči gleda udesno',
-    '🧎🏿‍➡' => 'osoba kleči gleda udesno',
+    '🧎🏻‍➡' => 'osoba kleči: svetla koža i gleda udesno',
+    '🧎🏼‍➡' => 'osoba kleči: srednje svetla koža i gleda udesno',
+    '🧎🏽‍➡' => 'osoba kleči: ni svetla ni tamna koža i gleda udesno',
+    '🧎🏾‍➡' => 'osoba kleči: srednje tamna koža i gleda udesno',
+    '🧎🏿‍➡' => 'osoba kleči: tamna koža i gleda udesno',
     '🧑🏻‍🦯' => 'osoba sa pomoćnim štapom: svetla koža',
     '🧑🏼‍🦯' => 'osoba sa pomoćnim štapom: srednje svetla koža',
     '🧑🏽‍🦯' => 'osoba sa pomoćnim štapom: ni svetla ni tamna koža',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'žena trči: ni svetla ni tamna koža',
     '🏃🏾‍♀' => 'žena trči: srednje tamna koža',
     '🏃🏿‍♀' => 'žena trči: tamna koža',
-    '🏃🏻‍➡' => 'trkač gleda udesno',
-    '🏃🏼‍➡' => 'trkač gleda udesno',
-    '🏃🏽‍➡' => 'trkač gleda udesno',
-    '🏃🏾‍➡' => 'trkač gleda udesno',
-    '🏃🏿‍➡' => 'trkač gleda udesno',
+    '🏃🏻‍➡' => 'trkač: svetla koža i gleda udesno',
+    '🏃🏼‍➡' => 'trkač: srednje svetla koža i gleda udesno',
+    '🏃🏽‍➡' => 'trkač: ni svetla ni tamna koža i gleda udesno',
+    '🏃🏾‍➡' => 'trkač: srednje tamna koža i gleda udesno',
+    '🏃🏿‍➡' => 'trkač: tamna koža i gleda udesno',
+    '👯🏻‍♀' => 'žene u provodu: svetla koža',
+    '👯🏼‍♀' => 'žene u provodu: srednje svetla koža',
+    '👯🏽‍♀' => 'žene u provodu: ni svetla ni tamna koža',
+    '👯🏾‍♀' => 'žene u provodu: srednje tamna koža',
+    '👯🏿‍♀' => 'žene u provodu: tamna koža',
+    '👯🏻‍♂' => 'muškarci u provodu: svetla koža',
+    '👯🏼‍♂' => 'muškarci u provodu: srednje svetla koža',
+    '👯🏽‍♂' => 'muškarci u provodu: ni svetla ni tamna koža',
+    '👯🏾‍♂' => 'muškarci u provodu: srednje tamna koža',
+    '👯🏿‍♂' => 'muškarci u provodu: tamna koža',
     '🧖🏻‍♂' => 'muškarac u parnom kupatilu: svetla koža',
     '🧖🏼‍♂' => 'muškarac u parnom kupatilu: srednje svetla koža',
     '🧖🏽‍♂' => 'muškarac u parnom kupatilu: ni svetla ni tamna koža',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'gimnastičarka: ni svetla ni tamna koža',
     '🤸🏾‍♀' => 'gimnastičarka: srednje tamna koža',
     '🤸🏿‍♀' => 'gimnastičarka: tamna koža',
+    '🤼🏻‍♀' => 'rvačice: svetla koža',
+    '🤼🏼‍♀' => 'rvačice: srednje svetla koža',
+    '🤼🏽‍♀' => 'rvačice: ni svetla ni tamna koža',
+    '🤼🏾‍♀' => 'rvačice: srednje tamna koža',
+    '🤼🏿‍♀' => 'rvačice: tamna koža',
+    '🤼🏻‍♂' => 'rvači: svetla koža',
+    '🤼🏼‍♂' => 'rvači: srednje svetla koža',
+    '🤼🏽‍♂' => 'rvači: ni svetla ni tamna koža',
+    '🤼🏾‍♂' => 'rvači: srednje tamna koža',
+    '🤼🏿‍♂' => 'rvači: tamna koža',
     '🤽🏻‍♂' => 'vaterpolista: svetla koža',
     '🤽🏼‍♂' => 'vaterpolista: srednje svetla koža',
     '🤽🏽‍♂' => 'vaterpolista: ni svetla ni tamna koža',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'žena: kovrdžava kosa',
     '👩‍🦳' => 'žena: seda kosa',
     '👩‍🦲' => 'žena: ćelav',
-    '🚶‍➡' => 'pešak gleda udesno',
-    '🧎‍➡' => 'osoba kleči gleda udesno',
-    '🏃‍➡' => 'trkač gleda udesno',
+    '🚶‍➡' => 'pešak: gleda udesno',
+    '🧎‍➡' => 'osoba kleči: gleda udesno',
+    '🏃‍➡' => 'trkač: gleda udesno',
     '👨‍👦' => 'porodica: muškarac i dečak',
     '👨‍👧' => 'porodica: muškarac i devojčica',
     '👩‍👦' => 'porodica: žena i dečak',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'žena u mehaničkim kolicima',
     '🏃‍♂' => 'muškarac trči',
     '🏃‍♀' => 'žena trči',
+    '🧑‍🩰' => 'baletan',
     '👯‍♂' => 'muškarci u provodu',
     '👯‍♀' => 'žene u provodu',
     '🧖‍♂' => 'muškarac u parnom kupatilu',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'muškarac u poslovnom odelu koji lebdi: ni svetla ni tamna koža',
     '🕴🏾' => 'muškarac u poslovnom odelu koji lebdi: srednje tamna koža',
     '🕴🏿' => 'muškarac u poslovnom odelu koji lebdi: tamna koža',
+    '👯🏻' => 'osobe u provodu: svetla koža',
+    '👯🏼' => 'osobe u provodu: srednje svetla koža',
+    '👯🏽' => 'osobe u provodu: ni svetla ni tamna koža',
+    '👯🏾' => 'osobe u provodu: srednje tamna koža',
+    '👯🏿' => 'osobe u provodu: tamna koža',
     '🧖🏻' => 'osoba u parnom kupatilu: svetla koža',
     '🧖🏼' => 'osoba u parnom kupatilu: srednje svetla koža',
     '🧖🏽' => 'osoba u parnom kupatilu: ni svetla ni tamna koža',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'gimnastičarska zvezda: ni svetla ni tamna koža',
     '🤸🏾' => 'gimnastičarska zvezda: srednje tamna koža',
     '🤸🏿' => 'gimnastičarska zvezda: tamna koža',
+    '🤼🏻' => 'rvanje: svetla koža',
+    '🤼🏼' => 'rvanje: srednje svetla koža',
+    '🤼🏽' => 'rvanje: ni svetla ni tamna koža',
+    '🤼🏾' => 'rvanje: srednje tamna koža',
+    '🤼🏿' => 'rvanje: tamna koža',
     '🤽🏻' => 'vaterpolo: svetla koža',
     '🤽🏼' => 'vaterpolo: srednje svetla koža',
     '🤽🏽' => 'vaterpolo: ni svetla ni tamna koža',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'zastava: Kina',
     '🇨🇴' => 'zastava: Kolumbija',
     '🇨🇵' => 'zastava: Ostrvo Kliperton',
+    '🇨🇶' => 'zastava: Sark',
     '🇨🇷' => 'zastava: Kostarika',
     '🇨🇺' => 'zastava: Kuba',
     '🇨🇻' => 'zastava: Zelenortska Ostrva',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ni svetla ni tamna koža',
     '🏾' => 'srednje tamna koža',
     '🏿' => 'tamna koža',
-    '🪉' => 'harfa',
-    '🪏' => 'lopata',
-    '🪾' => 'drvo bez lišća',
-    '🫆' => 'otisak prsta',
-    '🫜' => 'korenasto povrće',
-    '🫟' => 'prosuto',
-    '🫩' => 'lice sa podočnjacima',
     '😀' => 'lice sa širokim osmehom',
     '😃' => 'lice sa oduševljenim osmehom',
     '😄' => 'lice koje se slatko smeje',
@@ -2450,6 +2600,7 @@
     '😪' => 'pospano lice',
     '🤤' => 'lice kojem ide voda na usta',
     '😴' => 'lice koje spava',
+    '🫩' => 'lice sa podočnjacima',
     '😷' => 'lice sa medicinskom maskom',
     '🤒' => 'lice sa toplomerom',
     '🤕' => 'lice sa zavojem na glavi',
@@ -2476,6 +2627,7 @@
     '😯' => 'iznenađeno lice',
     '😲' => 'zapanjeno lice',
     '😳' => 'zajapureno lice',
+    '🫪' => 'iskrivljeno lice',
     '🥺' => 'molećivo lice',
     '🥹' => 'lice zadržava suze',
     '😦' => 'začuđeno lice',
@@ -2547,6 +2699,7 @@
     '💋' => 'otisak poljupca',
     '💯' => 'sto poena',
     '💢' => 'simbol ljutnje',
+    '🫯' => 'oblak tuče',
     '💥' => 'sudar',
     '💫' => 'vrtoglavica',
     '💦' => 'kapljice znoja',
@@ -2670,6 +2823,7 @@
     '🧞' => 'dobri duh',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'dlakavo stvorenje',
     '💆' => 'masaža lica',
     '💇' => 'šišanje',
     '🚶' => 'pešak',
@@ -2713,6 +2867,7 @@
     '🫂' => 'ljudi se grle',
     '👪' => 'porodica',
     '👣' => 'otisci stopala',
+    '🫆' => 'otisak prsta',
     '🦰' => 'crvena kosa',
     '🦱' => 'kovrdžava kosa',
     '🦳' => 'seda kosa',
@@ -2812,6 +2967,7 @@
     '🐳' => 'kit koji prska',
     '🐋' => 'kit',
     '🐬' => 'delfin',
+    '🫍' => 'orka',
     '🦭' => 'foka',
     '🐟' => 'riba',
     '🐠' => 'tropska riba',
@@ -2821,6 +2977,11 @@
     '🐚' => 'spiralna školjka',
     '🪸' => 'koral',
     '🪼' => 'meduza',
+    '🦀' => 'kraba',
+    '🦞' => 'jastog',
+    '🦐' => 'račić',
+    '🦑' => 'hobotnica',
+    '🦪' => 'ostriga',
     '🐌' => 'puž',
     '🦋' => 'leptir',
     '🐛' => 'gusenica',
@@ -2865,6 +3026,7 @@
     '🪹' => 'prazno gnezdo',
     '🪺' => 'gnezdo s jajima',
     '🍄' => 'pečurka',
+    '🪾' => 'drvo bez lišća',
     '🍇' => 'grožđe',
     '🍈' => 'dinja',
     '🍉' => 'lubenica',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kesten',
     '🫚' => 'koren đumbira',
     '🫛' => 'mahuna graška',
+    '🫜' => 'korenasto povrće',
     '🍞' => 'hleb',
     '🥐' => 'kroasan',
     '🥖' => 'baget',
@@ -2952,11 +3115,6 @@
     '🥟' => 'knedla',
     '🥠' => 'kolačić sudbine',
     '🥡' => 'kutija za hranu',
-    '🦀' => 'kraba',
-    '🦞' => 'jastog',
-    '🦐' => 'račić',
-    '🦑' => 'hobotnica',
-    '🦪' => 'ostriga',
     '🍦' => 'sladoled u kornetu',
     '🍧' => 'sorbe',
     '🍨' => 'sladoled',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'snežni vrh planine',
     '⛰' => 'planina',
+    '🛘' => 'odron',
     '🌋' => 'vulkan',
     '🗻' => 'planina fudži',
     '🏕' => 'kampovanje',
@@ -3367,16 +3526,18 @@
     '🎧' => 'slušalica',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'truba',
+    '🪊' => 'trombon',
     '🪗' => 'harmonika',
     '🎸' => 'gitara',
     '🎹' => 'klavijatura',
-    '🎺' => 'truba',
     '🎻' => 'violina',
     '🪕' => 'bendžo',
     '🥁' => 'doboš',
     '🪘' => 'timpan',
     '🪇' => 'maraka',
     '🪈' => 'flauta',
+    '🪉' => 'harfa',
     '📱' => 'mobilni telefon',
     '📲' => 'mobilni telefon sa strelicom',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'stranice sa beleškama',
     '🔖' => 'obeleživač stranica u knjizi',
     '🏷' => 'oznaka',
-    '💰' => 'vreća novca',
     '🪙' => 'novčić',
+    '💰' => 'vreća novca',
+    '🪎' => 'kovčeg s blagom',
     '💴' => 'novčanica sa znakom jena',
     '💵' => 'novčanica sa znakom dolara',
     '💶' => 'novčanica sa znakom evra',
@@ -3514,6 +3676,7 @@
     '🧰' => 'kutija za alat',
     '🧲' => 'magnet',
     '🪜' => 'merdevine',
+    '🪏' => 'lopata',
     '⚗' => 'alembik',
     '🧪' => 'epruveta',
     '🧫' => 'petrijeva šolja',
@@ -3697,6 +3860,7 @@
     '✴' => 'osmokraka zvezdica',
     '❇' => 'iskra',
     '™' => 'žig',
+    '🫟' => 'prosuto',
     '🔠' => 'unos velikih slova',
     '🔡' => 'unos malih slova',
     '🔢' => 'unos brojeva',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sr.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'пољубац: жена, жена, тамна кожа и ни светла ни тамна кожа',
     '👩🏿‍❤‍💋‍👩🏾' => 'пољубац: жена, жена, тамна кожа и средње тамна кожа',
     '👩🏿‍❤‍💋‍👩🏿' => 'пољубац: жена, жена и тамна кожа',
+    '🧑🏻‍🫯‍🧑🏼' => 'рвање: светла кожа и средње светла кожа',
+    '🧑🏻‍🫯‍🧑🏽' => 'рвање: светла кожа и ни светла ни тамна кожа',
+    '🧑🏻‍🫯‍🧑🏾' => 'рвање: светла кожа и средње тамна кожа',
+    '🧑🏻‍🫯‍🧑🏿' => 'рвање: светла кожа и тамна кожа',
+    '🧑🏼‍🫯‍🧑🏻' => 'рвање: средње светла кожа и светла кожа',
+    '🧑🏼‍🫯‍🧑🏽' => 'рвање: средње светла кожа и ни светла ни тамна кожа',
+    '🧑🏼‍🫯‍🧑🏾' => 'рвање: средње светла кожа и средње тамна кожа',
+    '🧑🏼‍🫯‍🧑🏿' => 'рвање: средње светла кожа и тамна кожа',
+    '🧑🏽‍🫯‍🧑🏻' => 'рвање: ни светла ни тамна кожа и светла кожа',
+    '🧑🏽‍🫯‍🧑🏼' => 'рвање: ни светла ни тамна кожа и средње светла кожа',
+    '🧑🏽‍🫯‍🧑🏾' => 'рвање: ни светла ни тамна кожа и средње тамна кожа',
+    '🧑🏽‍🫯‍🧑🏿' => 'рвање: ни светла ни тамна кожа и тамна кожа',
+    '🧑🏾‍🫯‍🧑🏻' => 'рвање: средње тамна кожа и светла кожа',
+    '🧑🏾‍🫯‍🧑🏼' => 'рвање: средње тамна кожа и средње светла кожа',
+    '🧑🏾‍🫯‍🧑🏽' => 'рвање: средње тамна кожа и ни светла ни тамна кожа',
+    '🧑🏾‍🫯‍🧑🏿' => 'рвање: средње тамна кожа и тамна кожа',
+    '🧑🏿‍🫯‍🧑🏻' => 'рвање: тамна кожа и светла кожа',
+    '🧑🏿‍🫯‍🧑🏼' => 'рвање: тамна кожа и средње светла кожа',
+    '🧑🏿‍🫯‍🧑🏽' => 'рвање: тамна кожа и ни светла ни тамна кожа',
+    '🧑🏿‍🫯‍🧑🏾' => 'рвање: тамна кожа и средње тамна кожа',
     '🧑🏻‍❤‍🧑🏼' => 'пар са срцем: одрасла особа, одрасла особа, светла кожа и средње светла кожа',
     '🧑🏻‍❤‍🧑🏽' => 'пар са срцем: одрасла особа, одрасла особа, светла кожа и ни светла ни тамна кожа',
     '🧑🏻‍❤‍🧑🏾' => 'пар са срцем: одрасла особа, одрасла особа, светла кожа и средње тамна кожа',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'пар са срцем: одрасла особа, одрасла особа, тамна кожа и средње светла кожа',
     '🧑🏿‍❤‍🧑🏽' => 'пар са срцем: одрасла особа, одрасла особа, тамна кожа и ни светла ни тамна кожа',
     '🧑🏿‍❤‍🧑🏾' => 'пар са срцем: одрасла особа, одрасла особа, тамна кожа и средње тамна кожа',
+    '🧑🏻‍🐰‍🧑🏼' => 'особе у проводу: светла кожа и средње светла кожа',
+    '🧑🏻‍🐰‍🧑🏽' => 'особе у проводу: светла кожа и ни светла ни тамна кожа',
+    '🧑🏻‍🐰‍🧑🏾' => 'особе у проводу: светла кожа и средње тамна кожа',
+    '🧑🏻‍🐰‍🧑🏿' => 'особе у проводу: светла кожа и тамна кожа',
+    '🧑🏼‍🐰‍🧑🏻' => 'особе у проводу: средње светла кожа и светла кожа',
+    '🧑🏼‍🐰‍🧑🏽' => 'особе у проводу: средње светла кожа и ни светла ни тамна кожа',
+    '🧑🏼‍🐰‍🧑🏾' => 'особе у проводу: средње светла кожа и средње тамна кожа',
+    '🧑🏼‍🐰‍🧑🏿' => 'особе у проводу: средње светла кожа и тамна кожа',
+    '🧑🏽‍🐰‍🧑🏻' => 'особе у проводу: ни светла ни тамна кожа и светла кожа',
+    '🧑🏽‍🐰‍🧑🏼' => 'особе у проводу: ни светла ни тамна кожа и средње светла кожа',
+    '🧑🏽‍🐰‍🧑🏾' => 'особе у проводу: ни светла ни тамна кожа и средње тамна кожа',
+    '🧑🏽‍🐰‍🧑🏿' => 'особе у проводу: ни светла ни тамна кожа и тамна кожа',
+    '🧑🏾‍🐰‍🧑🏻' => 'особе у проводу: средње тамна кожа и светла кожа',
+    '🧑🏾‍🐰‍🧑🏼' => 'особе у проводу: средње тамна кожа и средње светла кожа',
+    '🧑🏾‍🐰‍🧑🏽' => 'особе у проводу: средње тамна кожа и ни светла ни тамна кожа',
+    '🧑🏾‍🐰‍🧑🏿' => 'особе у проводу: средње тамна кожа и тамна кожа',
+    '🧑🏿‍🐰‍🧑🏻' => 'особе у проводу: тамна кожа и светла кожа',
+    '🧑🏿‍🐰‍🧑🏼' => 'особе у проводу: тамна кожа и средње светла кожа',
+    '🧑🏿‍🐰‍🧑🏽' => 'особе у проводу: тамна кожа и ни светла ни тамна кожа',
+    '🧑🏿‍🐰‍🧑🏾' => 'особе у проводу: тамна кожа и средње тамна кожа',
+    '👨🏻‍🫯‍👨🏼' => 'рвачи: светла кожа и средње светла кожа',
+    '👨🏻‍🫯‍👨🏽' => 'рвачи: светла кожа и ни светла ни тамна кожа',
+    '👨🏻‍🫯‍👨🏾' => 'рвачи: светла кожа и средње тамна кожа',
+    '👨🏻‍🫯‍👨🏿' => 'рвачи: светла кожа и тамна кожа',
+    '👨🏼‍🫯‍👨🏻' => 'рвачи: средње светла кожа и светла кожа',
+    '👨🏼‍🫯‍👨🏽' => 'рвачи: средње светла кожа и ни светла ни тамна кожа',
+    '👨🏼‍🫯‍👨🏾' => 'рвачи: средње светла кожа и средње тамна кожа',
+    '👨🏼‍🫯‍👨🏿' => 'рвачи: средње светла кожа и тамна кожа',
+    '👨🏽‍🫯‍👨🏻' => 'рвачи: ни светла ни тамна кожа и светла кожа',
+    '👨🏽‍🫯‍👨🏼' => 'рвачи: ни светла ни тамна кожа и средње светла кожа',
+    '👨🏽‍🫯‍👨🏾' => 'рвачи: ни светла ни тамна кожа и средње тамна кожа',
+    '👨🏽‍🫯‍👨🏿' => 'рвачи: ни светла ни тамна кожа и тамна кожа',
+    '👨🏾‍🫯‍👨🏻' => 'рвачи: средње тамна кожа и светла кожа',
+    '👨🏾‍🫯‍👨🏼' => 'рвачи: средње тамна кожа и средње светла кожа',
+    '👨🏾‍🫯‍👨🏽' => 'рвачи: средње тамна кожа и ни светла ни тамна кожа',
+    '👨🏾‍🫯‍👨🏿' => 'рвачи: средње тамна кожа и тамна кожа',
+    '👨🏿‍🫯‍👨🏻' => 'рвачи: тамна кожа и светла кожа',
+    '👨🏿‍🫯‍👨🏼' => 'рвачи: тамна кожа и средње светла кожа',
+    '👨🏿‍🫯‍👨🏽' => 'рвачи: тамна кожа и ни светла ни тамна кожа',
+    '👨🏿‍🫯‍👨🏾' => 'рвачи: тамна кожа и средње тамна кожа',
     '👨🏻‍❤‍👨🏻' => 'пар са срцем: мушкарац, мушкарац и светла кожа',
     '👨🏻‍❤‍👨🏼' => 'пар са срцем: мушкарац, мушкарац, светла кожа и средње светла кожа',
     '👨🏻‍❤‍👨🏽' => 'пар са срцем: мушкарац, мушкарац, светла кожа и ни светла ни тамна кожа',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'пар са срцем: мушкарац, мушкарац, тамна кожа и ни светла ни тамна кожа',
     '👨🏿‍❤‍👨🏾' => 'пар са срцем: мушкарац, мушкарац, тамна кожа и средње тамна кожа',
     '👨🏿‍❤‍👨🏿' => 'пар са срцем: мушкарац, мушкарац и тамна кожа',
+    '👨🏻‍🐰‍👨🏼' => 'мушкарци у проводу: светла кожа и средње светла кожа',
+    '👨🏻‍🐰‍👨🏽' => 'мушкарци у проводу: светла кожа и ни светла ни тамна кожа',
+    '👨🏻‍🐰‍👨🏾' => 'мушкарци у проводу: светла кожа и средње тамна кожа',
+    '👨🏻‍🐰‍👨🏿' => 'мушкарци у проводу: светла кожа и тамна кожа',
+    '👨🏼‍🐰‍👨🏻' => 'мушкарци у проводу: средње светла кожа и светла кожа',
+    '👨🏼‍🐰‍👨🏽' => 'мушкарци у проводу: средње светла кожа и ни светла ни тамна кожа',
+    '👨🏼‍🐰‍👨🏾' => 'мушкарци у проводу: средње светла кожа и средње тамна кожа',
+    '👨🏼‍🐰‍👨🏿' => 'мушкарци у проводу: средње светла кожа и тамна кожа',
+    '👨🏽‍🐰‍👨🏻' => 'мушкарци у проводу: ни светла ни тамна кожа и светла кожа',
+    '👨🏽‍🐰‍👨🏼' => 'мушкарци у проводу: ни светла ни тамна кожа и средње светла кожа',
+    '👨🏽‍🐰‍👨🏾' => 'мушкарци у проводу: ни светла ни тамна кожа и средње тамна кожа',
+    '👨🏽‍🐰‍👨🏿' => 'мушкарци у проводу: ни светла ни тамна кожа и тамна кожа',
+    '👨🏾‍🐰‍👨🏻' => 'мушкарци у проводу: средње тамна кожа и светла кожа',
+    '👨🏾‍🐰‍👨🏼' => 'мушкарци у проводу: средње тамна кожа и средње светла кожа',
+    '👨🏾‍🐰‍👨🏽' => 'мушкарци у проводу: средње тамна кожа и ни светла ни тамна кожа',
+    '👨🏾‍🐰‍👨🏿' => 'мушкарци у проводу: средње тамна кожа и тамна кожа',
+    '👨🏿‍🐰‍👨🏻' => 'мушкарци у проводу: тамна кожа и светла кожа',
+    '👨🏿‍🐰‍👨🏼' => 'мушкарци у проводу: тамна кожа и средње светла кожа',
+    '👨🏿‍🐰‍👨🏽' => 'мушкарци у проводу: тамна кожа и ни светла ни тамна кожа',
+    '👨🏿‍🐰‍👨🏾' => 'мушкарци у проводу: тамна кожа и средње тамна кожа',
+    '👩🏻‍🫯‍👩🏼' => 'рвачице: светла кожа и средње светла кожа',
+    '👩🏻‍🫯‍👩🏽' => 'рвачице: светла кожа и ни светла ни тамна кожа',
+    '👩🏻‍🫯‍👩🏾' => 'рвачице: светла кожа и средње тамна кожа',
+    '👩🏻‍🫯‍👩🏿' => 'рвачице: светла кожа и тамна кожа',
+    '👩🏼‍🫯‍👩🏻' => 'рвачице: средње светла кожа и светла кожа',
+    '👩🏼‍🫯‍👩🏽' => 'рвачице: средње светла кожа и ни светла ни тамна кожа',
+    '👩🏼‍🫯‍👩🏾' => 'рвачице: средње светла кожа и средње тамна кожа',
+    '👩🏼‍🫯‍👩🏿' => 'рвачице: средње светла кожа и тамна кожа',
+    '👩🏽‍🫯‍👩🏻' => 'рвачице: ни светла ни тамна кожа и светла кожа',
+    '👩🏽‍🫯‍👩🏼' => 'рвачице: ни светла ни тамна кожа и средње светла кожа',
+    '👩🏽‍🫯‍👩🏾' => 'рвачице: ни светла ни тамна кожа и средње тамна кожа',
+    '👩🏽‍🫯‍👩🏿' => 'рвачице: ни светла ни тамна кожа и тамна кожа',
+    '👩🏾‍🫯‍👩🏻' => 'рвачице: средње тамна кожа и светла кожа',
+    '👩🏾‍🫯‍👩🏼' => 'рвачице: средње тамна кожа и средње светла кожа',
+    '👩🏾‍🫯‍👩🏽' => 'рвачице: средње тамна кожа и ни светла ни тамна кожа',
+    '👩🏾‍🫯‍👩🏿' => 'рвачице: средње тамна кожа и тамна кожа',
+    '👩🏿‍🫯‍👩🏻' => 'рвачице: тамна кожа и светла кожа',
+    '👩🏿‍🫯‍👩🏼' => 'рвачице: тамна кожа и средње светла кожа',
+    '👩🏿‍🫯‍👩🏽' => 'рвачице: тамна кожа и ни светла ни тамна кожа',
+    '👩🏿‍🫯‍👩🏾' => 'рвачице: тамна кожа и средње тамна кожа',
     '👩🏻‍❤‍👨🏻' => 'пар са срцем: жена, мушкарац и светла кожа',
     '👩🏻‍❤‍👨🏼' => 'пар са срцем: жена, мушкарац, светла кожа и средње светла кожа',
     '👩🏻‍❤‍👨🏽' => 'пар са срцем: жена, мушкарац, светла кожа и ни светла ни тамна кожа',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'пар са срцем: жена, жена, тамна кожа и ни светла ни тамна кожа',
     '👩🏿‍❤‍👩🏾' => 'пар са срцем: жена, жена, тамна кожа и средње тамна кожа',
     '👩🏿‍❤‍👩🏿' => 'пар са срцем: жена, жена и тамна кожа',
+    '👩🏻‍🐰‍👩🏼' => 'жене у проводу: светла кожа и средње светла кожа',
+    '👩🏻‍🐰‍👩🏽' => 'жене у проводу: светла кожа и ни светла ни тамна кожа',
+    '👩🏻‍🐰‍👩🏾' => 'жене у проводу: светла кожа и средње тамна кожа',
+    '👩🏻‍🐰‍👩🏿' => 'жене у проводу: светла кожа и тамна кожа',
+    '👩🏼‍🐰‍👩🏻' => 'жене у проводу: средње светла кожа и светла кожа',
+    '👩🏼‍🐰‍👩🏽' => 'жене у проводу: средње светла кожа и ни светла ни тамна кожа',
+    '👩🏼‍🐰‍👩🏾' => 'жене у проводу: средње светла кожа и средње тамна кожа',
+    '👩🏼‍🐰‍👩🏿' => 'жене у проводу: средње светла кожа и тамна кожа',
+    '👩🏽‍🐰‍👩🏻' => 'жене у проводу: ни светла ни тамна кожа и светла кожа',
+    '👩🏽‍🐰‍👩🏼' => 'жене у проводу: ни светла ни тамна кожа и средње светла кожа',
+    '👩🏽‍🐰‍👩🏾' => 'жене у проводу: ни светла ни тамна кожа и средње тамна кожа',
+    '👩🏽‍🐰‍👩🏿' => 'жене у проводу: ни светла ни тамна кожа и тамна кожа',
+    '👩🏾‍🐰‍👩🏻' => 'жене у проводу: средње тамна кожа и светла кожа',
+    '👩🏾‍🐰‍👩🏼' => 'жене у проводу: средње тамна кожа и средње светла кожа',
+    '👩🏾‍🐰‍👩🏽' => 'жене у проводу: средње тамна кожа и ни светла ни тамна кожа',
+    '👩🏾‍🐰‍👩🏿' => 'жене у проводу: средње тамна кожа и тамна кожа',
+    '👩🏿‍🐰‍👩🏻' => 'жене у проводу: тамна кожа и светла кожа',
+    '👩🏿‍🐰‍👩🏼' => 'жене у проводу: тамна кожа и средње светла кожа',
+    '👩🏿‍🐰‍👩🏽' => 'жене у проводу: тамна кожа и ни светла ни тамна кожа',
+    '👩🏿‍🐰‍👩🏾' => 'жене у проводу: тамна кожа и средње тамна кожа',
     '🧑🏻‍🤝‍🧑🏻' => 'особе се држе за руке: светла кожа',
     '🧑🏻‍🤝‍🧑🏼' => 'особе се држе за руке: светла кожа и средње светла кожа',
     '🧑🏻‍🤝‍🧑🏽' => 'особе се држе за руке: светла кожа и ни светла ни тамна кожа',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'застава: Шкотска',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'застава: Велс',
     '🧑‍🧑‍🧒‍🧒' => 'породица: одрасла особа, одрасла особа, дете, дете',
-    '🚶🏻‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏼‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏽‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏾‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏿‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶🏻‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏼‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏽‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏾‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🚶🏿‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🧎🏻‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏼‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏽‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏾‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏿‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎🏻‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏼‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏽‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏾‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧎🏿‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧑🏻‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏼‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏽‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏾‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '🧑🏿‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '👨🏻‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👨🏼‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👨🏽‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👨🏾‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👨🏿‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👩🏻‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏼‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏽‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏾‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '👩🏿‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '🧑🏻‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏼‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏽‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏾‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '🧑🏿‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '👨🏻‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👨🏼‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👨🏽‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👨🏾‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👨🏿‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👩🏻‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏼‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏽‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏾‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '👩🏿‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '🧑🏻‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏼‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏽‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏾‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '🧑🏿‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '👨🏻‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👨🏼‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👨🏽‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👨🏾‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👨🏿‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👩🏻‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏼‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏽‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏾‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '👩🏿‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '🏃🏻‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏼‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏽‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏾‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏿‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃🏻‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏼‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏽‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏾‍♂‍➡' => 'мушкарац трчи гледа удесно',
-    '🏃🏿‍♂‍➡' => 'мушкарац трчи гледа удесно',
+    '🚶🏻‍♀‍➡' => 'жена хода: светла кожа и гледа удесно',
+    '🚶🏼‍♀‍➡' => 'жена хода: средње светла кожа и гледа удесно',
+    '🚶🏽‍♀‍➡' => 'жена хода: ни светла ни тамна кожа и гледа удесно',
+    '🚶🏾‍♀‍➡' => 'жена хода: средње тамна кожа и гледа удесно',
+    '🚶🏿‍♀‍➡' => 'жена хода: тамна кожа и гледа удесно',
+    '🚶🏻‍♂‍➡' => 'мушкарац хода: светла кожа и гледа удесно',
+    '🚶🏼‍♂‍➡' => 'мушкарац хода: средње светла кожа и гледа удесно',
+    '🚶🏽‍♂‍➡' => 'мушкарац хода: ни светла ни тамна кожа и гледа удесно',
+    '🚶🏾‍♂‍➡' => 'мушкарац хода: средње тамна кожа и гледа удесно',
+    '🚶🏿‍♂‍➡' => 'мушкарац хода: тамна кожа и гледа удесно',
+    '🧎🏻‍♀‍➡' => 'жена клечи: светла кожа и гледа удесно',
+    '🧎🏼‍♀‍➡' => 'жена клечи: средње светла кожа и гледа удесно',
+    '🧎🏽‍♀‍➡' => 'жена клечи: ни светла ни тамна кожа и гледа удесно',
+    '🧎🏾‍♀‍➡' => 'жена клечи: средње тамна кожа и гледа удесно',
+    '🧎🏿‍♀‍➡' => 'жена клечи: тамна кожа и гледа удесно',
+    '🧎🏻‍♂‍➡' => 'човек клечи: светла кожа и гледа удесно',
+    '🧎🏼‍♂‍➡' => 'човек клечи: средње светла кожа и гледа удесно',
+    '🧎🏽‍♂‍➡' => 'човек клечи: ни светла ни тамна кожа и гледа удесно',
+    '🧎🏾‍♂‍➡' => 'човек клечи: средње тамна кожа и гледа удесно',
+    '🧎🏿‍♂‍➡' => 'човек клечи: тамна кожа и гледа удесно',
+    '🧑🏻‍🦯‍➡' => 'особа са помоћним штапом: светла кожа и гледа удесно',
+    '🧑🏼‍🦯‍➡' => 'особа са помоћним штапом: средње светла кожа и гледа удесно',
+    '🧑🏽‍🦯‍➡' => 'особа са помоћним штапом: ни светла ни тамна кожа и гледа удесно',
+    '🧑🏾‍🦯‍➡' => 'особа са помоћним штапом: средње тамна кожа и гледа удесно',
+    '🧑🏿‍🦯‍➡' => 'особа са помоћним штапом: тамна кожа и гледа удесно',
+    '👨🏻‍🦯‍➡' => 'човек са помоћним штапом: светла кожа и гледа удесно',
+    '👨🏼‍🦯‍➡' => 'човек са помоћним штапом: средње светла кожа и гледа удесно',
+    '👨🏽‍🦯‍➡' => 'човек са помоћним штапом: ни светла ни тамна кожа и гледа удесно',
+    '👨🏾‍🦯‍➡' => 'човек са помоћним штапом: средње тамна кожа и гледа удесно',
+    '👨🏿‍🦯‍➡' => 'човек са помоћним штапом: тамна кожа и гледа удесно',
+    '👩🏻‍🦯‍➡' => 'жена са помоћним штапом: светла кожа и гледа удесно',
+    '👩🏼‍🦯‍➡' => 'жена са помоћним штапом: средње светла кожа и гледа удесно',
+    '👩🏽‍🦯‍➡' => 'жена са помоћним штапом: ни светла ни тамна кожа и гледа удесно',
+    '👩🏾‍🦯‍➡' => 'жена са помоћним штапом: средње тамна кожа и гледа удесно',
+    '👩🏿‍🦯‍➡' => 'жена са помоћним штапом: тамна кожа и гледа удесно',
+    '🧑🏻‍🦼‍➡' => 'особа у моторним колицима: светла кожа и гледа удесно',
+    '🧑🏼‍🦼‍➡' => 'особа у моторним колицима: средње светла кожа и гледа удесно',
+    '🧑🏽‍🦼‍➡' => 'особа у моторним колицима: ни светла ни тамна кожа и гледа удесно',
+    '🧑🏾‍🦼‍➡' => 'особа у моторним колицима: средње тамна кожа и гледа удесно',
+    '🧑🏿‍🦼‍➡' => 'особа у моторним колицима: тамна кожа и гледа удесно',
+    '👨🏻‍🦼‍➡' => 'човек у моторним колицима: светла кожа и гледа удесно',
+    '👨🏼‍🦼‍➡' => 'човек у моторним колицима: средње светла кожа и гледа удесно',
+    '👨🏽‍🦼‍➡' => 'човек у моторним колицима: ни светла ни тамна кожа и гледа удесно',
+    '👨🏾‍🦼‍➡' => 'човек у моторним колицима: средње тамна кожа и гледа удесно',
+    '👨🏿‍🦼‍➡' => 'човек у моторним колицима: тамна кожа и гледа удесно',
+    '👩🏻‍🦼‍➡' => 'жена у моторним колицима: светла кожа и гледа удесно',
+    '👩🏼‍🦼‍➡' => 'жена у моторним колицима: средње светла кожа и гледа удесно',
+    '👩🏽‍🦼‍➡' => 'жена у моторним колицима: ни светла ни тамна кожа и гледа удесно',
+    '👩🏾‍🦼‍➡' => 'жена у моторним колицима: средње тамна кожа и гледа удесно',
+    '👩🏿‍🦼‍➡' => 'жена у моторним колицима: тамна кожа и гледа удесно',
+    '🧑🏻‍🦽‍➡' => 'особа у механичким колицима: светла кожа и гледа удесно',
+    '🧑🏼‍🦽‍➡' => 'особа у механичким колицима: средње светла кожа и гледа удесно',
+    '🧑🏽‍🦽‍➡' => 'особа у механичким колицима: ни светла ни тамна кожа и гледа удесно',
+    '🧑🏾‍🦽‍➡' => 'особа у механичким колицима: средње тамна кожа и гледа удесно',
+    '🧑🏿‍🦽‍➡' => 'особа у механичким колицима: тамна кожа и гледа удесно',
+    '👨🏻‍🦽‍➡' => 'човек у механичким колицима: светла кожа и гледа удесно',
+    '👨🏼‍🦽‍➡' => 'човек у механичким колицима: средње светла кожа и гледа удесно',
+    '👨🏽‍🦽‍➡' => 'човек у механичким колицима: ни светла ни тамна кожа и гледа удесно',
+    '👨🏾‍🦽‍➡' => 'човек у механичким колицима: средње тамна кожа и гледа удесно',
+    '👨🏿‍🦽‍➡' => 'човек у механичким колицима: тамна кожа и гледа удесно',
+    '👩🏻‍🦽‍➡' => 'жена у механичким колицима: светла кожа и гледа удесно',
+    '👩🏼‍🦽‍➡' => 'жена у механичким колицима: средње светла кожа и гледа удесно',
+    '👩🏽‍🦽‍➡' => 'жена у механичким колицима: ни светла ни тамна кожа и гледа удесно',
+    '👩🏾‍🦽‍➡' => 'жена у механичким колицима: средње тамна кожа и гледа удесно',
+    '👩🏿‍🦽‍➡' => 'жена у механичким колицима: тамна кожа и гледа удесно',
+    '🏃🏻‍♀‍➡' => 'жена трчи: светла кожа и гледа удесно',
+    '🏃🏼‍♀‍➡' => 'жена трчи: средње светла кожа и гледа удесно',
+    '🏃🏽‍♀‍➡' => 'жена трчи: ни светла ни тамна кожа и гледа удесно',
+    '🏃🏾‍♀‍➡' => 'жена трчи: средње тамна кожа и гледа удесно',
+    '🏃🏿‍♀‍➡' => 'жена трчи: тамна кожа и гледа удесно',
+    '🏃🏻‍♂‍➡' => 'мушкарац трчи: светла кожа и гледа удесно',
+    '🏃🏼‍♂‍➡' => 'мушкарац трчи: средње светла кожа и гледа удесно',
+    '🏃🏽‍♂‍➡' => 'мушкарац трчи: ни светла ни тамна кожа и гледа удесно',
+    '🏃🏾‍♂‍➡' => 'мушкарац трчи: средње тамна кожа и гледа удесно',
+    '🏃🏿‍♂‍➡' => 'мушкарац трчи: тамна кожа и гледа удесно',
     '🫱🏻‍🫲🏼' => 'руковање: светла кожа и средње светла кожа',
     '🫱🏻‍🫲🏽' => 'руковање: светла кожа и ни светла ни тамна кожа',
     '🫱🏻‍🫲🏾' => 'руковање: светла кожа и средње тамна кожа',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'руковање: тамна кожа и средње светла кожа',
     '🫱🏿‍🫲🏽' => 'руковање: тамна кожа и ни светла ни тамна кожа',
     '🫱🏿‍🫲🏾' => 'руковање: тамна кожа и средње тамна кожа',
-    '🚶‍♀‍➡' => 'жена хода гледа удесно',
-    '🚶‍♂‍➡' => 'мушкарац хода гледа удесно',
-    '🧎‍♀‍➡' => 'жена клечи гледа удесно',
-    '🧎‍♂‍➡' => 'човек клечи гледа удесно',
-    '🧑‍🦯‍➡' => 'особа са помоћним штапом гледа удесно',
-    '👨‍🦯‍➡' => 'човек са помоћним штапом гледа удесно',
-    '👩‍🦯‍➡' => 'жена са помоћним штапом гледа удесно',
-    '🧑‍🦼‍➡' => 'особа у моторним колицима гледа удесно',
-    '👨‍🦼‍➡' => 'човек у моторним колицима гледа удесно',
-    '👩‍🦼‍➡' => 'жена у моторним колицима гледа удесно',
-    '🧑‍🦽‍➡' => 'особа у механичким колицима гледа удесно',
-    '👨‍🦽‍➡' => 'човек у механичким колицима гледа удесно',
-    '👩‍🦽‍➡' => 'жена у механичким колицима гледа удесно',
-    '🏃‍♀‍➡' => 'жена трчи гледа удесно',
-    '🏃‍♂‍➡' => 'мушкарац трчи гледа удесно',
+    '🚶‍♀‍➡' => 'жена хода: гледа удесно',
+    '🚶‍♂‍➡' => 'мушкарац хода: гледа удесно',
+    '🧎‍♀‍➡' => 'жена клечи: гледа удесно',
+    '🧎‍♂‍➡' => 'човек клечи: гледа удесно',
+    '🧑‍🦯‍➡' => 'особа са помоћним штапом: гледа удесно',
+    '👨‍🦯‍➡' => 'човек са помоћним штапом: гледа удесно',
+    '👩‍🦯‍➡' => 'жена са помоћним штапом: гледа удесно',
+    '🧑‍🦼‍➡' => 'особа у моторним колицима: гледа удесно',
+    '👨‍🦼‍➡' => 'човек у моторним колицима: гледа удесно',
+    '👩‍🦼‍➡' => 'жена у моторним колицима: гледа удесно',
+    '🧑‍🦽‍➡' => 'особа у механичким колицима: гледа удесно',
+    '👨‍🦽‍➡' => 'човек у механичким колицима: гледа удесно',
+    '👩‍🦽‍➡' => 'жена у механичким колицима: гледа удесно',
+    '🏃‍♀‍➡' => 'жена трчи: гледа удесно',
+    '🏃‍♂‍➡' => 'мушкарац трчи: гледа удесно',
     '👩‍❤‍👨' => 'пар са срцем: жена и мушкарац',
     '👨‍❤‍👨' => 'пар са срцем: мушкарац и мушкарац',
     '👩‍❤‍👩' => 'пар са срцем: жена и жена',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'одрасла особа: ни светла ни тамна кожа и ћелав',
     '🧑🏾‍🦲' => 'одрасла особа: средње тамна кожа и ћелав',
     '🧑🏿‍🦲' => 'одрасла особа: тамна кожа и ћелав',
+    '🧑🏻‍🩰' => 'балетан: светла кожа',
+    '🧑🏼‍🩰' => 'балетан: средње светла кожа',
+    '🧑🏽‍🩰' => 'балетан: ни светла ни тамна кожа',
+    '🧑🏾‍🩰' => 'балетан: средње тамна кожа',
+    '🧑🏿‍🩰' => 'балетан: тамна кожа',
     '🧔🏻‍♂' => 'мушкарац: светла кожа и брада',
     '🧔🏼‍♂' => 'мушкарац: средње светла кожа и брада',
     '🧔🏽‍♂' => 'мушкарац: ни светла ни тамна кожа и брада',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'жена хода: ни светла ни тамна кожа',
     '🚶🏾‍♀' => 'жена хода: средње тамна кожа',
     '🚶🏿‍♀' => 'жена хода: тамна кожа',
-    '🚶🏻‍➡' => 'пешак гледа удесно',
-    '🚶🏼‍➡' => 'пешак гледа удесно',
-    '🚶🏽‍➡' => 'пешак гледа удесно',
-    '🚶🏾‍➡' => 'пешак гледа удесно',
-    '🚶🏿‍➡' => 'пешак гледа удесно',
+    '🚶🏻‍➡' => 'пешак: светла кожа и гледа удесно',
+    '🚶🏼‍➡' => 'пешак: средње светла кожа и гледа удесно',
+    '🚶🏽‍➡' => 'пешак: ни светла ни тамна кожа и гледа удесно',
+    '🚶🏾‍➡' => 'пешак: средње тамна кожа и гледа удесно',
+    '🚶🏿‍➡' => 'пешак: тамна кожа и гледа удесно',
     '🧍🏻‍♂' => 'човек стоји: светла кожа',
     '🧍🏼‍♂' => 'човек стоји: средње светла кожа',
     '🧍🏽‍♂' => 'човек стоји: ни светла ни тамна кожа',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'жена клечи: ни светла ни тамна кожа',
     '🧎🏾‍♀' => 'жена клечи: средње тамна кожа',
     '🧎🏿‍♀' => 'жена клечи: тамна кожа',
-    '🧎🏻‍➡' => 'особа клечи гледа удесно',
-    '🧎🏼‍➡' => 'особа клечи гледа удесно',
-    '🧎🏽‍➡' => 'особа клечи гледа удесно',
-    '🧎🏾‍➡' => 'особа клечи гледа удесно',
-    '🧎🏿‍➡' => 'особа клечи гледа удесно',
+    '🧎🏻‍➡' => 'особа клечи: светла кожа и гледа удесно',
+    '🧎🏼‍➡' => 'особа клечи: средње светла кожа и гледа удесно',
+    '🧎🏽‍➡' => 'особа клечи: ни светла ни тамна кожа и гледа удесно',
+    '🧎🏾‍➡' => 'особа клечи: средње тамна кожа и гледа удесно',
+    '🧎🏿‍➡' => 'особа клечи: тамна кожа и гледа удесно',
     '🧑🏻‍🦯' => 'особа са помоћним штапом: светла кожа',
     '🧑🏼‍🦯' => 'особа са помоћним штапом: средње светла кожа',
     '🧑🏽‍🦯' => 'особа са помоћним штапом: ни светла ни тамна кожа',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'жена трчи: ни светла ни тамна кожа',
     '🏃🏾‍♀' => 'жена трчи: средње тамна кожа',
     '🏃🏿‍♀' => 'жена трчи: тамна кожа',
-    '🏃🏻‍➡' => 'тркач гледа удесно',
-    '🏃🏼‍➡' => 'тркач гледа удесно',
-    '🏃🏽‍➡' => 'тркач гледа удесно',
-    '🏃🏾‍➡' => 'тркач гледа удесно',
-    '🏃🏿‍➡' => 'тркач гледа удесно',
+    '🏃🏻‍➡' => 'тркач: светла кожа и гледа удесно',
+    '🏃🏼‍➡' => 'тркач: средње светла кожа и гледа удесно',
+    '🏃🏽‍➡' => 'тркач: ни светла ни тамна кожа и гледа удесно',
+    '🏃🏾‍➡' => 'тркач: средње тамна кожа и гледа удесно',
+    '🏃🏿‍➡' => 'тркач: тамна кожа и гледа удесно',
+    '👯🏻‍♀' => 'жене у проводу: светла кожа',
+    '👯🏼‍♀' => 'жене у проводу: средње светла кожа',
+    '👯🏽‍♀' => 'жене у проводу: ни светла ни тамна кожа',
+    '👯🏾‍♀' => 'жене у проводу: средње тамна кожа',
+    '👯🏿‍♀' => 'жене у проводу: тамна кожа',
+    '👯🏻‍♂' => 'мушкарци у проводу: светла кожа',
+    '👯🏼‍♂' => 'мушкарци у проводу: средње светла кожа',
+    '👯🏽‍♂' => 'мушкарци у проводу: ни светла ни тамна кожа',
+    '👯🏾‍♂' => 'мушкарци у проводу: средње тамна кожа',
+    '👯🏿‍♂' => 'мушкарци у проводу: тамна кожа',
     '🧖🏻‍♂' => 'мушкарац у парном купатилу: светла кожа',
     '🧖🏼‍♂' => 'мушкарац у парном купатилу: средње светла кожа',
     '🧖🏽‍♂' => 'мушкарац у парном купатилу: ни светла ни тамна кожа',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'гимнастичарка: ни светла ни тамна кожа',
     '🤸🏾‍♀' => 'гимнастичарка: средње тамна кожа',
     '🤸🏿‍♀' => 'гимнастичарка: тамна кожа',
+    '🤼🏻‍♀' => 'рвачице: светла кожа',
+    '🤼🏼‍♀' => 'рвачице: средње светла кожа',
+    '🤼🏽‍♀' => 'рвачице: ни светла ни тамна кожа',
+    '🤼🏾‍♀' => 'рвачице: средње тамна кожа',
+    '🤼🏿‍♀' => 'рвачице: тамна кожа',
+    '🤼🏻‍♂' => 'рвачи: светла кожа',
+    '🤼🏼‍♂' => 'рвачи: средње светла кожа',
+    '🤼🏽‍♂' => 'рвачи: ни светла ни тамна кожа',
+    '🤼🏾‍♂' => 'рвачи: средње тамна кожа',
+    '🤼🏿‍♂' => 'рвачи: тамна кожа',
     '🤽🏻‍♂' => 'ватерполиста: светла кожа',
     '🤽🏼‍♂' => 'ватерполиста: средње светла кожа',
     '🤽🏽‍♂' => 'ватерполиста: ни светла ни тамна кожа',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'жена: коврџава коса',
     '👩‍🦳' => 'жена: седа коса',
     '👩‍🦲' => 'жена: ћелав',
-    '🚶‍➡' => 'пешак гледа удесно',
-    '🧎‍➡' => 'особа клечи гледа удесно',
-    '🏃‍➡' => 'тркач гледа удесно',
+    '🚶‍➡' => 'пешак: гледа удесно',
+    '🧎‍➡' => 'особа клечи: гледа удесно',
+    '🏃‍➡' => 'тркач: гледа удесно',
     '👨‍👦' => 'породица: мушкарац и дечак',
     '👨‍👧' => 'породица: мушкарац и девојчица',
     '👩‍👦' => 'породица: жена и дечак',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'жена у механичким колицима',
     '🏃‍♂' => 'мушкарац трчи',
     '🏃‍♀' => 'жена трчи',
+    '🧑‍🩰' => 'балетан',
     '👯‍♂' => 'мушкарци у проводу',
     '👯‍♀' => 'жене у проводу',
     '🧖‍♂' => 'мушкарац у парном купатилу',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'мушкарац у пословном оделу који лебди: ни светла ни тамна кожа',
     '🕴🏾' => 'мушкарац у пословном оделу који лебди: средње тамна кожа',
     '🕴🏿' => 'мушкарац у пословном оделу који лебди: тамна кожа',
+    '👯🏻' => 'особе у проводу: светла кожа',
+    '👯🏼' => 'особе у проводу: средње светла кожа',
+    '👯🏽' => 'особе у проводу: ни светла ни тамна кожа',
+    '👯🏾' => 'особе у проводу: средње тамна кожа',
+    '👯🏿' => 'особе у проводу: тамна кожа',
     '🧖🏻' => 'особа у парном купатилу: светла кожа',
     '🧖🏼' => 'особа у парном купатилу: средње светла кожа',
     '🧖🏽' => 'особа у парном купатилу: ни светла ни тамна кожа',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'гимнастичарска звезда: ни светла ни тамна кожа',
     '🤸🏾' => 'гимнастичарска звезда: средње тамна кожа',
     '🤸🏿' => 'гимнастичарска звезда: тамна кожа',
+    '🤼🏻' => 'рвање: светла кожа',
+    '🤼🏼' => 'рвање: средње светла кожа',
+    '🤼🏽' => 'рвање: ни светла ни тамна кожа',
+    '🤼🏾' => 'рвање: средње тамна кожа',
+    '🤼🏿' => 'рвање: тамна кожа',
     '🤽🏻' => 'ватерполо: светла кожа',
     '🤽🏼' => 'ватерполо: средње светла кожа',
     '🤽🏽' => 'ватерполо: ни светла ни тамна кожа',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'застава: Кина',
     '🇨🇴' => 'застава: Колумбија',
     '🇨🇵' => 'застава: Острво Клипертон',
+    '🇨🇶' => 'застава: Сарк',
     '🇨🇷' => 'застава: Костарика',
     '🇨🇺' => 'застава: Куба',
     '🇨🇻' => 'застава: Зеленортска Острва',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ни светла ни тамна кожа',
     '🏾' => 'средње тамна кожа',
     '🏿' => 'тамна кожа',
-    '🪉' => 'харфа',
-    '🪏' => 'лопата',
-    '🪾' => 'дрво без лишћа',
-    '🫆' => 'отисак прста',
-    '🫜' => 'коренасто поврће',
-    '🫟' => 'просуто',
-    '🫩' => 'лице са подочњацима',
     '😀' => 'лице са широким осмехом',
     '😃' => 'лице са одушевљеним осмехом',
     '😄' => 'лице које се слатко смеје',
@@ -2450,6 +2600,7 @@
     '😪' => 'поспано лице',
     '🤤' => 'лице којем иде вода на уста',
     '😴' => 'лице које спава',
+    '🫩' => 'лице са подочњацима',
     '😷' => 'лице са медицинском маском',
     '🤒' => 'лице са топломером',
     '🤕' => 'лице са завојем на глави',
@@ -2476,6 +2627,7 @@
     '😯' => 'изненађено лице',
     '😲' => 'запањено лице',
     '😳' => 'зајапурено лице',
+    '🫪' => 'искривљено лице',
     '🥺' => 'молећиво лице',
     '🥹' => 'лице задржава сузе',
     '😦' => 'зачуђено лице',
@@ -2547,6 +2699,7 @@
     '💋' => 'отисак пољупца',
     '💯' => 'сто поена',
     '💢' => 'симбол љутње',
+    '🫯' => 'облак туче',
     '💥' => 'судар',
     '💫' => 'вртоглавица',
     '💦' => 'капљице зноја',
@@ -2670,6 +2823,7 @@
     '🧞' => 'добри дух',
     '🧟' => 'зомби',
     '🧌' => 'трол',
+    '🫈' => 'длакаво створење',
     '💆' => 'масажа лица',
     '💇' => 'шишање',
     '🚶' => 'пешак',
@@ -2713,6 +2867,7 @@
     '🫂' => 'људи се грле',
     '👪' => 'породица',
     '👣' => 'отисци стопала',
+    '🫆' => 'отисак прста',
     '🦰' => 'црвена коса',
     '🦱' => 'коврџава коса',
     '🦳' => 'седа коса',
@@ -2812,6 +2967,7 @@
     '🐳' => 'кит који прска',
     '🐋' => 'кит',
     '🐬' => 'делфин',
+    '🫍' => 'орка',
     '🦭' => 'фока',
     '🐟' => 'риба',
     '🐠' => 'тропска риба',
@@ -2821,6 +2977,11 @@
     '🐚' => 'спирална шкољка',
     '🪸' => 'корал',
     '🪼' => 'медуза',
+    '🦀' => 'краба',
+    '🦞' => 'јастог',
+    '🦐' => 'рачић',
+    '🦑' => 'хоботница',
+    '🦪' => 'острига',
     '🐌' => 'пуж',
     '🦋' => 'лептир',
     '🐛' => 'гусеница',
@@ -2865,6 +3026,7 @@
     '🪹' => 'празно гнездо',
     '🪺' => 'гнездо с јајима',
     '🍄' => 'печурка',
+    '🪾' => 'дрво без лишћа',
     '🍇' => 'грожђе',
     '🍈' => 'диња',
     '🍉' => 'лубеница',
@@ -2901,6 +3063,7 @@
     '🌰' => 'кестен',
     '🫚' => 'корен ђумбира',
     '🫛' => 'махуна грашка',
+    '🫜' => 'коренасто поврће',
     '🍞' => 'хлеб',
     '🥐' => 'кроасан',
     '🥖' => 'багет',
@@ -2952,11 +3115,6 @@
     '🥟' => 'кнедла',
     '🥠' => 'колачић судбине',
     '🥡' => 'кутија за храну',
-    '🦀' => 'краба',
-    '🦞' => 'јастог',
-    '🦐' => 'рачић',
-    '🦑' => 'хоботница',
-    '🦪' => 'острига',
     '🍦' => 'сладолед у корнету',
     '🍧' => 'сорбе',
     '🍨' => 'сладолед',
@@ -3007,6 +3165,7 @@
     '🧭' => 'компас',
     '🏔' => 'снежни врх планине',
     '⛰' => 'планина',
+    '🛘' => 'одрон',
     '🌋' => 'вулкан',
     '🗻' => 'планина фуџи',
     '🏕' => 'камповање',
@@ -3367,16 +3526,18 @@
     '🎧' => 'слушалица',
     '📻' => 'радио',
     '🎷' => 'саксофон',
+    '🎺' => 'труба',
+    '🪊' => 'тромбон',
     '🪗' => 'хармоника',
     '🎸' => 'гитара',
     '🎹' => 'клавијатура',
-    '🎺' => 'труба',
     '🎻' => 'виолина',
     '🪕' => 'бенџо',
     '🥁' => 'добош',
     '🪘' => 'тимпан',
     '🪇' => 'марака',
     '🪈' => 'флаута',
+    '🪉' => 'харфа',
     '📱' => 'мобилни телефон',
     '📲' => 'мобилни телефон са стрелицом',
     '☎' => 'телефон',
@@ -3430,8 +3591,9 @@
     '📑' => 'странице са белешкама',
     '🔖' => 'обележивач страница у књизи',
     '🏷' => 'ознака',
-    '💰' => 'врећа новца',
     '🪙' => 'новчић',
+    '💰' => 'врећа новца',
+    '🪎' => 'ковчег с благом',
     '💴' => 'новчаница са знаком јена',
     '💵' => 'новчаница са знаком долара',
     '💶' => 'новчаница са знаком евра',
@@ -3514,6 +3676,7 @@
     '🧰' => 'кутија за алат',
     '🧲' => 'магнет',
     '🪜' => 'мердевине',
+    '🪏' => 'лопата',
     '⚗' => 'алембик',
     '🧪' => 'епрувета',
     '🧫' => 'петријева шоља',
@@ -3697,6 +3860,7 @@
     '✴' => 'осмокрака звездица',
     '❇' => 'искра',
     '™' => 'жиг',
+    '🫟' => 'просуто',
     '🔠' => 'унос великих слова',
     '🔡' => 'унос малих слова',
     '🔢' => 'унос бројева',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-strip.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-strip.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-strip.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-strip.php	2026-05-20 10:56:49.000000000 +0200
@@ -430,6 +430,126 @@
     '🏃🏾‍♂️‍➡' => '',
     '🏃🏿‍♂‍➡️' => '',
     '🏃🏿‍♂️‍➡' => '',
+    '🧑🏻‍🐰‍🧑🏼' => '',
+    '🧑🏻‍🐰‍🧑🏽' => '',
+    '🧑🏻‍🐰‍🧑🏾' => '',
+    '🧑🏻‍🐰‍🧑🏿' => '',
+    '🧑🏼‍🐰‍🧑🏻' => '',
+    '🧑🏼‍🐰‍🧑🏽' => '',
+    '🧑🏼‍🐰‍🧑🏾' => '',
+    '🧑🏼‍🐰‍🧑🏿' => '',
+    '🧑🏽‍🐰‍🧑🏻' => '',
+    '🧑🏽‍🐰‍🧑🏼' => '',
+    '🧑🏽‍🐰‍🧑🏾' => '',
+    '🧑🏽‍🐰‍🧑🏿' => '',
+    '🧑🏾‍🐰‍🧑🏻' => '',
+    '🧑🏾‍🐰‍🧑🏼' => '',
+    '🧑🏾‍🐰‍🧑🏽' => '',
+    '🧑🏾‍🐰‍🧑🏿' => '',
+    '🧑🏿‍🐰‍🧑🏻' => '',
+    '🧑🏿‍🐰‍🧑🏼' => '',
+    '🧑🏿‍🐰‍🧑🏽' => '',
+    '🧑🏿‍🐰‍🧑🏾' => '',
+    '👨🏻‍🐰‍👨🏼' => '',
+    '👨🏻‍🐰‍👨🏽' => '',
+    '👨🏻‍🐰‍👨🏾' => '',
+    '👨🏻‍🐰‍👨🏿' => '',
+    '👨🏼‍🐰‍👨🏻' => '',
+    '👨🏼‍🐰‍👨🏽' => '',
+    '👨🏼‍🐰‍👨🏾' => '',
+    '👨🏼‍🐰‍👨🏿' => '',
+    '👨🏽‍🐰‍👨🏻' => '',
+    '👨🏽‍🐰‍👨🏼' => '',
+    '👨🏽‍🐰‍👨🏾' => '',
+    '👨🏽‍🐰‍👨🏿' => '',
+    '👨🏾‍🐰‍👨🏻' => '',
+    '👨🏾‍🐰‍👨🏼' => '',
+    '👨🏾‍🐰‍👨🏽' => '',
+    '👨🏾‍🐰‍👨🏿' => '',
+    '👨🏿‍🐰‍👨🏻' => '',
+    '👨🏿‍🐰‍👨🏼' => '',
+    '👨🏿‍🐰‍👨🏽' => '',
+    '👨🏿‍🐰‍👨🏾' => '',
+    '👩🏻‍🐰‍👩🏼' => '',
+    '👩🏻‍🐰‍👩🏽' => '',
+    '👩🏻‍🐰‍👩🏾' => '',
+    '👩🏻‍🐰‍👩🏿' => '',
+    '👩🏼‍🐰‍👩🏻' => '',
+    '👩🏼‍🐰‍👩🏽' => '',
+    '👩🏼‍🐰‍👩🏾' => '',
+    '👩🏼‍🐰‍👩🏿' => '',
+    '👩🏽‍🐰‍👩🏻' => '',
+    '👩🏽‍🐰‍👩🏼' => '',
+    '👩🏽‍🐰‍👩🏾' => '',
+    '👩🏽‍🐰‍👩🏿' => '',
+    '👩🏾‍🐰‍👩🏻' => '',
+    '👩🏾‍🐰‍👩🏼' => '',
+    '👩🏾‍🐰‍👩🏽' => '',
+    '👩🏾‍🐰‍👩🏿' => '',
+    '👩🏿‍🐰‍👩🏻' => '',
+    '👩🏿‍🐰‍👩🏼' => '',
+    '👩🏿‍🐰‍👩🏽' => '',
+    '👩🏿‍🐰‍👩🏾' => '',
+    '🧑🏻‍🫯‍🧑🏼' => '',
+    '🧑🏻‍🫯‍🧑🏽' => '',
+    '🧑🏻‍🫯‍🧑🏾' => '',
+    '🧑🏻‍🫯‍🧑🏿' => '',
+    '🧑🏼‍🫯‍🧑🏻' => '',
+    '🧑🏼‍🫯‍🧑🏽' => '',
+    '🧑🏼‍🫯‍🧑🏾' => '',
+    '🧑🏼‍🫯‍🧑🏿' => '',
+    '🧑🏽‍🫯‍🧑🏻' => '',
+    '🧑🏽‍🫯‍🧑🏼' => '',
+    '🧑🏽‍🫯‍🧑🏾' => '',
+    '🧑🏽‍🫯‍🧑🏿' => '',
+    '🧑🏾‍🫯‍🧑🏻' => '',
+    '🧑🏾‍🫯‍🧑🏼' => '',
+    '🧑🏾‍🫯‍🧑🏽' => '',
+    '🧑🏾‍🫯‍🧑🏿' => '',
+    '🧑🏿‍🫯‍🧑🏻' => '',
+    '🧑🏿‍🫯‍🧑🏼' => '',
+    '🧑🏿‍🫯‍🧑🏽' => '',
+    '🧑🏿‍🫯‍🧑🏾' => '',
+    '👨🏻‍🫯‍👨🏼' => '',
+    '👨🏻‍🫯‍👨🏽' => '',
+    '👨🏻‍🫯‍👨🏾' => '',
+    '👨🏻‍🫯‍👨🏿' => '',
+    '👨🏼‍🫯‍👨🏻' => '',
+    '👨🏼‍🫯‍👨🏽' => '',
+    '👨🏼‍🫯‍👨🏾' => '',
+    '👨🏼‍🫯‍👨🏿' => '',
+    '👨🏽‍🫯‍👨🏻' => '',
+    '👨🏽‍🫯‍👨🏼' => '',
+    '👨🏽‍🫯‍👨🏾' => '',
+    '👨🏽‍🫯‍👨🏿' => '',
+    '👨🏾‍🫯‍👨🏻' => '',
+    '👨🏾‍🫯‍👨🏼' => '',
+    '👨🏾‍🫯‍👨🏽' => '',
+    '👨🏾‍🫯‍👨🏿' => '',
+    '👨🏿‍🫯‍👨🏻' => '',
+    '👨🏿‍🫯‍👨🏼' => '',
+    '👨🏿‍🫯‍👨🏽' => '',
+    '👨🏿‍🫯‍👨🏾' => '',
+    '👩🏻‍🫯‍👩🏼' => '',
+    '👩🏻‍🫯‍👩🏽' => '',
+    '👩🏻‍🫯‍👩🏾' => '',
+    '👩🏻‍🫯‍👩🏿' => '',
+    '👩🏼‍🫯‍👩🏻' => '',
+    '👩🏼‍🫯‍👩🏽' => '',
+    '👩🏼‍🫯‍👩🏾' => '',
+    '👩🏼‍🫯‍👩🏿' => '',
+    '👩🏽‍🫯‍👩🏻' => '',
+    '👩🏽‍🫯‍👩🏼' => '',
+    '👩🏽‍🫯‍👩🏾' => '',
+    '👩🏽‍🫯‍👩🏿' => '',
+    '👩🏾‍🫯‍👩🏻' => '',
+    '👩🏾‍🫯‍👩🏼' => '',
+    '👩🏾‍🫯‍👩🏽' => '',
+    '👩🏾‍🫯‍👩🏿' => '',
+    '👩🏿‍🫯‍👩🏻' => '',
+    '👩🏿‍🫯‍👩🏼' => '',
+    '👩🏿‍🫯‍👩🏽' => '',
+    '👩🏿‍🫯‍👩🏾' => '',
     '🧑🏻‍🤝‍🧑🏻' => '',
     '🧑🏻‍🤝‍🧑🏼' => '',
     '🧑🏻‍🤝‍🧑🏽' => '',
@@ -1143,6 +1263,16 @@
     '🏃🏿‍➡️' => '',
     '🏃‍♀‍➡' => '',
     '🏃‍♂‍➡' => '',
+    '👯🏻‍♂️' => '',
+    '👯🏼‍♂️' => '',
+    '👯🏽‍♂️' => '',
+    '👯🏾‍♂️' => '',
+    '👯🏿‍♂️' => '',
+    '👯🏻‍♀️' => '',
+    '👯🏼‍♀️' => '',
+    '👯🏽‍♀️' => '',
+    '👯🏾‍♀️' => '',
+    '👯🏿‍♀️' => '',
     '🧖🏻‍♂️' => '',
     '🧖🏼‍♂️' => '',
     '🧖🏽‍♂️' => '',
@@ -1259,6 +1389,16 @@
     '🤸🏽‍♀️' => '',
     '🤸🏾‍♀️' => '',
     '🤸🏿‍♀️' => '',
+    '🤼🏻‍♂️' => '',
+    '🤼🏼‍♂️' => '',
+    '🤼🏽‍♂️' => '',
+    '🤼🏾‍♂️' => '',
+    '🤼🏿‍♂️' => '',
+    '🤼🏻‍♀️' => '',
+    '🤼🏼‍♀️' => '',
+    '🤼🏽‍♀️' => '',
+    '🤼🏾‍♀️' => '',
+    '🤼🏿‍♀️' => '',
     '🤽🏻‍♂️' => '',
     '🤽🏼‍♂️' => '',
     '🤽🏽‍♂️' => '',
@@ -2106,8 +2246,23 @@
     '🏃🏽‍➡' => '',
     '🏃🏾‍➡' => '',
     '🏃🏿‍➡' => '',
+    '🧑🏻‍🩰' => '',
+    '🧑🏼‍🩰' => '',
+    '🧑🏽‍🩰' => '',
+    '🧑🏾‍🩰' => '',
+    '🧑🏿‍🩰' => '',
     '👯‍♂️' => '',
+    '👯🏻‍♂' => '',
+    '👯🏼‍♂' => '',
+    '👯🏽‍♂' => '',
+    '👯🏾‍♂' => '',
+    '👯🏿‍♂' => '',
     '👯‍♀️' => '',
+    '👯🏻‍♀' => '',
+    '👯🏼‍♀' => '',
+    '👯🏽‍♀' => '',
+    '👯🏾‍♀' => '',
+    '👯🏿‍♀' => '',
     '🧖‍♂️' => '',
     '🧖🏻‍♂' => '',
     '🧖🏼‍♂' => '',
@@ -2247,7 +2402,17 @@
     '🤸🏾‍♀' => '',
     '🤸🏿‍♀' => '',
     '🤼‍♂️' => '',
+    '🤼🏻‍♂' => '',
+    '🤼🏼‍♂' => '',
+    '🤼🏽‍♂' => '',
+    '🤼🏾‍♂' => '',
+    '🤼🏿‍♂' => '',
     '🤼‍♀️' => '',
+    '🤼🏻‍♀' => '',
+    '🤼🏼‍♀' => '',
+    '🤼🏽‍♀' => '',
+    '🤼🏾‍♀' => '',
+    '🤼🏿‍♀' => '',
     '🤽‍♂️' => '',
     '🤽🏻‍♂' => '',
     '🤽🏼‍♂' => '',
@@ -2453,6 +2618,7 @@
     '🏃‍♂' => '',
     '🏃‍♀' => '',
     '🏃‍➡' => '',
+    '🧑‍🩰' => '',
     '👯‍♂' => '',
     '👯‍♀' => '',
     '🧖‍♂' => '',
@@ -3065,6 +3231,11 @@
     '🕴🏽' => '',
     '🕴🏾' => '',
     '🕴🏿' => '',
+    '👯🏻' => '',
+    '👯🏼' => '',
+    '👯🏽' => '',
+    '👯🏾' => '',
+    '👯🏿' => '',
     '🧖🏻' => '',
     '🧖🏼' => '',
     '🧖🏽' => '',
@@ -3134,6 +3305,11 @@
     '🤸🏽' => '',
     '🤸🏾' => '',
     '🤸🏿' => '',
+    '🤼🏻' => '',
+    '🤼🏼' => '',
+    '🤼🏽' => '',
+    '🤼🏾' => '',
+    '🤼🏿' => '',
     '🤽🏻' => '',
     '🤽🏼' => '',
     '🤽🏽' => '',
@@ -3728,6 +3904,7 @@
     '😯' => '',
     '😲' => '',
     '😳' => '',
+    '🫪' => '',
     '🥺' => '',
     '🥹' => '',
     '😦' => '',
@@ -3799,6 +3976,7 @@
     '💋' => '',
     '💯' => '',
     '💢' => '',
+    '🫯' => '',
     '💥' => '',
     '💫' => '',
     '💦' => '',
@@ -3922,6 +4100,7 @@
     '🧞' => '',
     '🧟' => '',
     '🧌' => '',
+    '🫈' => '',
     '💆' => '',
     '💇' => '',
     '🚶' => '',
@@ -4070,6 +4249,7 @@
     '🐳' => '',
     '🐋' => '',
     '🐬' => '',
+    '🫍' => '',
     '🦭' => '',
     '🐟' => '',
     '🐠' => '',
@@ -4267,6 +4447,7 @@
     '🧭' => '',
     '🏔' => '',
     '⛰' => '',
+    '🛘' => '',
     '🌋' => '',
     '🗻' => '',
     '🏕' => '',
@@ -4627,10 +4808,11 @@
     '🎧' => '',
     '📻' => '',
     '🎷' => '',
+    '🎺' => '',
+    '🪊' => '',
     '🪗' => '',
     '🎸' => '',
     '🎹' => '',
-    '🎺' => '',
     '🎻' => '',
     '🪕' => '',
     '🥁' => '',
@@ -4691,8 +4873,9 @@
     '📑' => '',
     '🔖' => '',
     '🏷' => '',
-    '💰' => '',
     '🪙' => '',
+    '💰' => '',
+    '🪎' => '',
     '💴' => '',
     '💵' => '',
     '💶' => '',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sv_fi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sv_fi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sv_fi.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sv_fi.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,3941 @@
+<?php
+
+return [
+    '🧑🏻‍❤‍💋‍🧑🏼' => 'puss: person, person, ljus hy, mellanljus hy',
+    '🧑🏻‍❤‍💋‍🧑🏽' => 'puss: person, person, ljus hy, mellanfärgad hy',
+    '🧑🏻‍❤‍💋‍🧑🏾' => 'puss: person, person, ljus hy, mellanmörk hy',
+    '🧑🏻‍❤‍💋‍🧑🏿' => 'puss: person, person, ljus hy, mörk hy',
+    '🧑🏼‍❤‍💋‍🧑🏻' => 'puss: person, person, mellanljus hy, ljus hy',
+    '🧑🏼‍❤‍💋‍🧑🏽' => 'puss: person, person, mellanljus hy, mellanfärgad hy',
+    '🧑🏼‍❤‍💋‍🧑🏾' => 'puss: person, person, mellanljus hy, mellanmörk hy',
+    '🧑🏼‍❤‍💋‍🧑🏿' => 'puss: person, person, mellanljus hy, mörk hy',
+    '🧑🏽‍❤‍💋‍🧑🏻' => 'puss: person, person, mellanfärgad hy, ljus hy',
+    '🧑🏽‍❤‍💋‍🧑🏼' => 'puss: person, person, mellanfärgad hy, mellanljus hy',
+    '🧑🏽‍❤‍💋‍🧑🏾' => 'puss: person, person, mellanfärgad hy, mellanmörk hy',
+    '🧑🏽‍❤‍💋‍🧑🏿' => 'puss: person, person, mellanfärgad hy, mörk hy',
+    '🧑🏾‍❤‍💋‍🧑🏻' => 'puss: person, person, mellanmörk hy, ljus hy',
+    '🧑🏾‍❤‍💋‍🧑🏼' => 'puss: person, person, mellanmörk hy, mellanljus hy',
+    '🧑🏾‍❤‍💋‍🧑🏽' => 'puss: person, person, mellanmörk hy, mellanfärgad hy',
+    '🧑🏾‍❤‍💋‍🧑🏿' => 'puss: person, person, mellanmörk hy, mörk hy',
+    '🧑🏿‍❤‍💋‍🧑🏻' => 'puss: person, person, mörk hy, ljus hy',
+    '🧑🏿‍❤‍💋‍🧑🏼' => 'puss: person, person, mörk hy, mellanljus hy',
+    '🧑🏿‍❤‍💋‍🧑🏽' => 'puss: person, person, mörk hy, mellanfärgad hy',
+    '🧑🏿‍❤‍💋‍🧑🏾' => 'puss: person, person, mörk hy, mellanmörk hy',
+    '👨🏻‍❤‍💋‍👨🏻' => 'puss: man, man, ljus hy',
+    '👨🏻‍❤‍💋‍👨🏼' => 'puss: man, man, ljus hy, mellanljus hy',
+    '👨🏻‍❤‍💋‍👨🏽' => 'puss: man, man, ljus hy, mellanfärgad hy',
+    '👨🏻‍❤‍💋‍👨🏾' => 'puss: man, man, ljus hy, mellanmörk hy',
+    '👨🏻‍❤‍💋‍👨🏿' => 'puss: man, man, ljus hy, mörk hy',
+    '👨🏼‍❤‍💋‍👨🏻' => 'puss: man, man, mellanljus hy, ljus hy',
+    '👨🏼‍❤‍💋‍👨🏼' => 'puss: man, man, mellanljus hy',
+    '👨🏼‍❤‍💋‍👨🏽' => 'puss: man, man, mellanljus hy, mellanfärgad hy',
+    '👨🏼‍❤‍💋‍👨🏾' => 'puss: man, man, mellanljus hy, mellanmörk hy',
+    '👨🏼‍❤‍💋‍👨🏿' => 'puss: man, man, mellanljus hy, mörk hy',
+    '👨🏽‍❤‍💋‍👨🏻' => 'puss: man, man, mellanfärgad hy, ljus hy',
+    '👨🏽‍❤‍💋‍👨🏼' => 'puss: man, man, mellanfärgad hy, mellanljus hy',
+    '👨🏽‍❤‍💋‍👨🏽' => 'puss: man, man, mellanfärgad hy',
+    '👨🏽‍❤‍💋‍👨🏾' => 'puss: man, man, mellanfärgad hy, mellanmörk hy',
+    '👨🏽‍❤‍💋‍👨🏿' => 'puss: man, man, mellanfärgad hy, mörk hy',
+    '👨🏾‍❤‍💋‍👨🏻' => 'puss: man, man, mellanmörk hy, ljus hy',
+    '👨🏾‍❤‍💋‍👨🏼' => 'puss: man, man, mellanmörk hy, mellanljus hy',
+    '👨🏾‍❤‍💋‍👨🏽' => 'puss: man, man, mellanmörk hy, mellanfärgad hy',
+    '👨🏾‍❤‍💋‍👨🏾' => 'puss: man, man, mellanmörk hy',
+    '👨🏾‍❤‍💋‍👨🏿' => 'puss: man, man, mellanmörk hy, mörk hy',
+    '👨🏿‍❤‍💋‍👨🏻' => 'puss: man, man, mörk hy, ljus hy',
+    '👨🏿‍❤‍💋‍👨🏼' => 'puss: man, man, mörk hy, mellanljus hy',
+    '👨🏿‍❤‍💋‍👨🏽' => 'puss: man, man, mörk hy, mellanfärgad hy',
+    '👨🏿‍❤‍💋‍👨🏾' => 'puss: man, man, mörk hy, mellanmörk hy',
+    '👨🏿‍❤‍💋‍👨🏿' => 'puss: man, man, mörk hy',
+    '👩🏻‍❤‍💋‍👨🏻' => 'puss: kvinna, man, ljus hy',
+    '👩🏻‍❤‍💋‍👨🏼' => 'puss: kvinna, man, ljus hy, mellanljus hy',
+    '👩🏻‍❤‍💋‍👨🏽' => 'puss: kvinna, man, ljus hy, mellanfärgad hy',
+    '👩🏻‍❤‍💋‍👨🏾' => 'puss: kvinna, man, ljus hy, mellanmörk hy',
+    '👩🏻‍❤‍💋‍👨🏿' => 'puss: kvinna, man, ljus hy, mörk hy',
+    '👩🏼‍❤‍💋‍👨🏻' => 'puss: kvinna, man, mellanljus hy, ljus hy',
+    '👩🏼‍❤‍💋‍👨🏼' => 'puss: kvinna, man, mellanljus hy',
+    '👩🏼‍❤‍💋‍👨🏽' => 'puss: kvinna, man, mellanljus hy, mellanfärgad hy',
+    '👩🏼‍❤‍💋‍👨🏾' => 'puss: kvinna, man, mellanljus hy, mellanmörk hy',
+    '👩🏼‍❤‍💋‍👨🏿' => 'puss: kvinna, man, mellanljus hy, mörk hy',
+    '👩🏽‍❤‍💋‍👨🏻' => 'puss: kvinna, man, mellanfärgad hy, ljus hy',
+    '👩🏽‍❤‍💋‍👨🏼' => 'puss: kvinna, man, mellanfärgad hy, mellanljus hy',
+    '👩🏽‍❤‍💋‍👨🏽' => 'puss: kvinna, man, mellanfärgad hy',
+    '👩🏽‍❤‍💋‍👨🏾' => 'puss: kvinna, man, mellanfärgad hy, mellanmörk hy',
+    '👩🏽‍❤‍💋‍👨🏿' => 'puss: kvinna, man, mellanfärgad hy, mörk hy',
+    '👩🏾‍❤‍💋‍👨🏻' => 'puss: kvinna, man, mellanmörk hy, ljus hy',
+    '👩🏾‍❤‍💋‍👨🏼' => 'puss: kvinna, man, mellanmörk hy, mellanljus hy',
+    '👩🏾‍❤‍💋‍👨🏽' => 'puss: kvinna, man, mellanmörk hy, mellanfärgad hy',
+    '👩🏾‍❤‍💋‍👨🏾' => 'puss: kvinna, man, mellanmörk hy',
+    '👩🏾‍❤‍💋‍👨🏿' => 'puss: kvinna, man, mellanmörk hy, mörk hy',
+    '👩🏿‍❤‍💋‍👨🏻' => 'puss: kvinna, man, mörk hy, ljus hy',
+    '👩🏿‍❤‍💋‍👨🏼' => 'puss: kvinna, man, mörk hy, mellanljus hy',
+    '👩🏿‍❤‍💋‍👨🏽' => 'puss: kvinna, man, mörk hy, mellanfärgad hy',
+    '👩🏿‍❤‍💋‍👨🏾' => 'puss: kvinna, man, mörk hy, mellanmörk hy',
+    '👩🏿‍❤‍💋‍👨🏿' => 'puss: kvinna, man, mörk hy',
+    '👩🏻‍❤‍💋‍👩🏻' => 'puss: kvinna, kvinna, ljus hy',
+    '👩🏻‍❤‍💋‍👩🏼' => 'puss: kvinna, kvinna, ljus hy, mellanljus hy',
+    '👩🏻‍❤‍💋‍👩🏽' => 'puss: kvinna, kvinna, ljus hy, mellanfärgad hy',
+    '👩🏻‍❤‍💋‍👩🏾' => 'puss: kvinna, kvinna, ljus hy, mellanmörk hy',
+    '👩🏻‍❤‍💋‍👩🏿' => 'puss: kvinna, kvinna, ljus hy, mörk hy',
+    '👩🏼‍❤‍💋‍👩🏻' => 'puss: kvinna, kvinna, mellanljus hy, ljus hy',
+    '👩🏼‍❤‍💋‍👩🏼' => 'puss: kvinna, kvinna, mellanljus hy',
+    '👩🏼‍❤‍💋‍👩🏽' => 'puss: kvinna, kvinna, mellanljus hy, mellanfärgad hy',
+    '👩🏼‍❤‍💋‍👩🏾' => 'puss: kvinna, kvinna, mellanljus hy, mellanmörk hy',
+    '👩🏼‍❤‍💋‍👩🏿' => 'puss: kvinna, kvinna, mellanljus hy, mörk hy',
+    '👩🏽‍❤‍💋‍👩🏻' => 'puss: kvinna, kvinna, mellanfärgad hy, ljus hy',
+    '👩🏽‍❤‍💋‍👩🏼' => 'puss: kvinna, kvinna, mellanfärgad hy, mellanljus hy',
+    '👩🏽‍❤‍💋‍👩🏽' => 'puss: kvinna, kvinna, mellanfärgad hy',
+    '👩🏽‍❤‍💋‍👩🏾' => 'puss: kvinna, kvinna, mellanfärgad hy, mellanmörk hy',
+    '👩🏽‍❤‍💋‍👩🏿' => 'puss: kvinna, kvinna, mellanfärgad hy, mörk hy',
+    '👩🏾‍❤‍💋‍👩🏻' => 'puss: kvinna, kvinna, mellanmörk hy, ljus hy',
+    '👩🏾‍❤‍💋‍👩🏼' => 'puss: kvinna, kvinna, mellanmörk hy, mellanljus hy',
+    '👩🏾‍❤‍💋‍👩🏽' => 'puss: kvinna, kvinna, mellanmörk hy, mellanfärgad hy',
+    '👩🏾‍❤‍💋‍👩🏾' => 'puss: kvinna, kvinna, mellanmörk hy',
+    '👩🏾‍❤‍💋‍👩🏿' => 'puss: kvinna, kvinna, mellanmörk hy, mörk hy',
+    '👩🏿‍❤‍💋‍👩🏻' => 'puss: kvinna, kvinna, mörk hy, ljus hy',
+    '👩🏿‍❤‍💋‍👩🏼' => 'puss: kvinna, kvinna, mörk hy, mellanljus hy',
+    '👩🏿‍❤‍💋‍👩🏽' => 'puss: kvinna, kvinna, mörk hy, mellanfärgad hy',
+    '👩🏿‍❤‍💋‍👩🏾' => 'puss: kvinna, kvinna, mörk hy, mellanmörk hy',
+    '👩🏿‍❤‍💋‍👩🏿' => 'puss: kvinna, kvinna, mörk hy',
+    '🧑🏻‍🫯‍🧑🏼' => 'brottande personer: ljus hy, mellanljus hy',
+    '🧑🏻‍🫯‍🧑🏽' => 'brottande personer: ljus hy, mellanfärgad hy',
+    '🧑🏻‍🫯‍🧑🏾' => 'brottande personer: ljus hy, mellanmörk hy',
+    '🧑🏻‍🫯‍🧑🏿' => 'brottande personer: ljus hy, mörk hy',
+    '🧑🏼‍🫯‍🧑🏻' => 'brottande personer: mellanljus hy, ljus hy',
+    '🧑🏼‍🫯‍🧑🏽' => 'brottande personer: mellanljus hy, mellanfärgad hy',
+    '🧑🏼‍🫯‍🧑🏾' => 'brottande personer: mellanljus hy, mellanmörk hy',
+    '🧑🏼‍🫯‍🧑🏿' => 'brottande personer: mellanljus hy, mörk hy',
+    '🧑🏽‍🫯‍🧑🏻' => 'brottande personer: mellanfärgad hy, ljus hy',
+    '🧑🏽‍🫯‍🧑🏼' => 'brottande personer: mellanfärgad hy, mellanljus hy',
+    '🧑🏽‍🫯‍🧑🏾' => 'brottande personer: mellanfärgad hy, mellanmörk hy',
+    '🧑🏽‍🫯‍🧑🏿' => 'brottande personer: mellanfärgad hy, mörk hy',
+    '🧑🏾‍🫯‍🧑🏻' => 'brottande personer: mellanmörk hy, ljus hy',
+    '🧑🏾‍🫯‍🧑🏼' => 'brottande personer: mellanmörk hy, mellanljus hy',
+    '🧑🏾‍🫯‍🧑🏽' => 'brottande personer: mellanmörk hy, mellanfärgad hy',
+    '🧑🏾‍🫯‍🧑🏿' => 'brottande personer: mellanmörk hy, mörk hy',
+    '🧑🏿‍🫯‍🧑🏻' => 'brottande personer: mörk hy, ljus hy',
+    '🧑🏿‍🫯‍🧑🏼' => 'brottande personer: mörk hy, mellanljus hy',
+    '🧑🏿‍🫯‍🧑🏽' => 'brottande personer: mörk hy, mellanfärgad hy',
+    '🧑🏿‍🫯‍🧑🏾' => 'brottande personer: mörk hy, mellanmörk hy',
+    '🧑🏻‍❤‍🧑🏼' => 'par med hjärta: person, person, ljus hy, mellanljus hy',
+    '🧑🏻‍❤‍🧑🏽' => 'par med hjärta: person, person, ljus hy, mellanfärgad hy',
+    '🧑🏻‍❤‍🧑🏾' => 'par med hjärta: person, person, ljus hy, mellanmörk hy',
+    '🧑🏻‍❤‍🧑🏿' => 'par med hjärta: person, person, ljus hy, mörk hy',
+    '🧑🏼‍❤‍🧑🏻' => 'par med hjärta: person, person, mellanljus hy, ljus hy',
+    '🧑🏼‍❤‍🧑🏽' => 'par med hjärta: person, person, mellanljus hy, mellanfärgad hy',
+    '🧑🏼‍❤‍🧑🏾' => 'par med hjärta: person, person, mellanljus hy, mellanmörk hy',
+    '🧑🏼‍❤‍🧑🏿' => 'par med hjärta: person, person, mellanljus hy, mörk hy',
+    '🧑🏽‍❤‍🧑🏻' => 'par med hjärta: person, person, mellanfärgad hy, ljus hy',
+    '🧑🏽‍❤‍🧑🏼' => 'par med hjärta: person, person, mellanfärgad hy, mellanljus hy',
+    '🧑🏽‍❤‍🧑🏾' => 'par med hjärta: person, person, mellanfärgad hy, mellanmörk hy',
+    '🧑🏽‍❤‍🧑🏿' => 'par med hjärta: person, person, mellanfärgad hy, mörk hy',
+    '🧑🏾‍❤‍🧑🏻' => 'par med hjärta: person, person, mellanmörk hy, ljus hy',
+    '🧑🏾‍❤‍🧑🏼' => 'par med hjärta: person, person, mellanmörk hy, mellanljus hy',
+    '🧑🏾‍❤‍🧑🏽' => 'par med hjärta: person, person, mellanmörk hy, mellanfärgad hy',
+    '🧑🏾‍❤‍🧑🏿' => 'par med hjärta: person, person, mellanmörk hy, mörk hy',
+    '🧑🏿‍❤‍🧑🏻' => 'par med hjärta: person, person, mörk hy, ljus hy',
+    '🧑🏿‍❤‍🧑🏼' => 'par med hjärta: person, person, mörk hy, mellanljus hy',
+    '🧑🏿‍❤‍🧑🏽' => 'par med hjärta: person, person, mörk hy, mellanfärgad hy',
+    '🧑🏿‍❤‍🧑🏾' => 'par med hjärta: person, person, mörk hy, mellanmörk hy',
+    '🧑🏻‍🐰‍🧑🏼' => 'personer med kaninöron: ljus hy, mellanljus hy',
+    '🧑🏻‍🐰‍🧑🏽' => 'personer med kaninöron: ljus hy, mellanfärgad hy',
+    '🧑🏻‍🐰‍🧑🏾' => 'personer med kaninöron: ljus hy, mellanmörk hy',
+    '🧑🏻‍🐰‍🧑🏿' => 'personer med kaninöron: ljus hy, mörk hy',
+    '🧑🏼‍🐰‍🧑🏻' => 'personer med kaninöron: mellanljus hy, ljus hy',
+    '🧑🏼‍🐰‍🧑🏽' => 'personer med kaninöron: mellanljus hy, mellanfärgad hy',
+    '🧑🏼‍🐰‍🧑🏾' => 'personer med kaninöron: mellanljus hy, mellanmörk hy',
+    '🧑🏼‍🐰‍🧑🏿' => 'personer med kaninöron: mellanljus hy, mörk hy',
+    '🧑🏽‍🐰‍🧑🏻' => 'personer med kaninöron: mellanfärgad hy, ljus hy',
+    '🧑🏽‍🐰‍🧑🏼' => 'personer med kaninöron: mellanfärgad hy, mellanljus hy',
+    '🧑🏽‍🐰‍🧑🏾' => 'personer med kaninöron: mellanfärgad hy, mellanmörk hy',
+    '🧑🏽‍🐰‍🧑🏿' => 'personer med kaninöron: mellanfärgad hy, mörk hy',
+    '🧑🏾‍🐰‍🧑🏻' => 'personer med kaninöron: mellanmörk hy, ljus hy',
+    '🧑🏾‍🐰‍🧑🏼' => 'personer med kaninöron: mellanmörk hy, mellanljus hy',
+    '🧑🏾‍🐰‍🧑🏽' => 'personer med kaninöron: mellanmörk hy, mellanfärgad hy',
+    '🧑🏾‍🐰‍🧑🏿' => 'personer med kaninöron: mellanmörk hy, mörk hy',
+    '🧑🏿‍🐰‍🧑🏻' => 'personer med kaninöron: mörk hy, ljus hy',
+    '🧑🏿‍🐰‍🧑🏼' => 'personer med kaninöron: mörk hy, mellanljus hy',
+    '🧑🏿‍🐰‍🧑🏽' => 'personer med kaninöron: mörk hy, mellanfärgad hy',
+    '🧑🏿‍🐰‍🧑🏾' => 'personer med kaninöron: mörk hy, mellanmörk hy',
+    '👨🏻‍🫯‍👨🏼' => 'brottande män: ljus hy, mellanljus hy',
+    '👨🏻‍🫯‍👨🏽' => 'brottande män: ljus hy, mellanfärgad hy',
+    '👨🏻‍🫯‍👨🏾' => 'brottande män: ljus hy, mellanmörk hy',
+    '👨🏻‍🫯‍👨🏿' => 'brottande män: ljus hy, mörk hy',
+    '👨🏼‍🫯‍👨🏻' => 'brottande män: mellanljus hy, ljus hy',
+    '👨🏼‍🫯‍👨🏽' => 'brottande män: mellanljus hy, mellanfärgad hy',
+    '👨🏼‍🫯‍👨🏾' => 'brottande män: mellanljus hy, mellanmörk hy',
+    '👨🏼‍🫯‍👨🏿' => 'brottande män: mellanljus hy, mörk hy',
+    '👨🏽‍🫯‍👨🏻' => 'brottande män: mellanfärgad hy, ljus hy',
+    '👨🏽‍🫯‍👨🏼' => 'brottande män: mellanfärgad hy, mellanljus hy',
+    '👨🏽‍🫯‍👨🏾' => 'brottande män: mellanfärgad hy, mellanmörk hy',
+    '👨🏽‍🫯‍👨🏿' => 'brottande män: mellanfärgad hy, mörk hy',
+    '👨🏾‍🫯‍👨🏻' => 'brottande män: mellanmörk hy, ljus hy',
+    '👨🏾‍🫯‍👨🏼' => 'brottande män: mellanmörk hy, mellanljus hy',
+    '👨🏾‍🫯‍👨🏽' => 'brottande män: mellanmörk hy, mellanfärgad hy',
+    '👨🏾‍🫯‍👨🏿' => 'brottande män: mellanmörk hy, mörk hy',
+    '👨🏿‍🫯‍👨🏻' => 'brottande män: mörk hy, ljus hy',
+    '👨🏿‍🫯‍👨🏼' => 'brottande män: mörk hy, mellanljus hy',
+    '👨🏿‍🫯‍👨🏽' => 'brottande män: mörk hy, mellanfärgad hy',
+    '👨🏿‍🫯‍👨🏾' => 'brottande män: mörk hy, mellanmörk hy',
+    '👨🏻‍❤‍👨🏻' => 'par med hjärta: man, man, ljus hy',
+    '👨🏻‍❤‍👨🏼' => 'par med hjärta: man, man, ljus hy, mellanljus hy',
+    '👨🏻‍❤‍👨🏽' => 'par med hjärta: man, man, ljus hy, mellanfärgad hy',
+    '👨🏻‍❤‍👨🏾' => 'par med hjärta: man, man, ljus hy, mellanmörk hy',
+    '👨🏻‍❤‍👨🏿' => 'par med hjärta: man, man, ljus hy, mörk hy',
+    '👨🏼‍❤‍👨🏻' => 'par med hjärta: man, man, mellanljus hy, ljus hy',
+    '👨🏼‍❤‍👨🏼' => 'par med hjärta: man, man, mellanljus hy',
+    '👨🏼‍❤‍👨🏽' => 'par med hjärta: man, man, mellanljus hy, mellanfärgad hy',
+    '👨🏼‍❤‍👨🏾' => 'par med hjärta: man, man, mellanljus hy, mellanmörk hy',
+    '👨🏼‍❤‍👨🏿' => 'par med hjärta: man, man, mellanljus hy, mörk hy',
+    '👨🏽‍❤‍👨🏻' => 'par med hjärta: man, man, mellanfärgad hy, ljus hy',
+    '👨🏽‍❤‍👨🏼' => 'par med hjärta: man, man, mellanfärgad hy, mellanljus hy',
+    '👨🏽‍❤‍👨🏽' => 'par med hjärta: man, man, mellanfärgad hy',
+    '👨🏽‍❤‍👨🏾' => 'par med hjärta: man, man, mellanfärgad hy, mellanmörk hy',
+    '👨🏽‍❤‍👨🏿' => 'par med hjärta: man, man, mellanfärgad hy, mörk hy',
+    '👨🏾‍❤‍👨🏻' => 'par med hjärta: man, man, mellanmörk hy, ljus hy',
+    '👨🏾‍❤‍👨🏼' => 'par med hjärta: man, man, mellanmörk hy, mellanljus hy',
+    '👨🏾‍❤‍👨🏽' => 'par med hjärta: man, man, mellanmörk hy, mellanfärgad hy',
+    '👨🏾‍❤‍👨🏾' => 'par med hjärta: man, man, mellanmörk hy',
+    '👨🏾‍❤‍👨🏿' => 'par med hjärta: man, man, mellanmörk hy, mörk hy',
+    '👨🏿‍❤‍👨🏻' => 'par med hjärta: man, man, mörk hy, ljus hy',
+    '👨🏿‍❤‍👨🏼' => 'par med hjärta: man, man, mörk hy, mellanljus hy',
+    '👨🏿‍❤‍👨🏽' => 'par med hjärta: man, man, mörk hy, mellanfärgad hy',
+    '👨🏿‍❤‍👨🏾' => 'par med hjärta: man, man, mörk hy, mellanmörk hy',
+    '👨🏿‍❤‍👨🏿' => 'par med hjärta: man, man, mörk hy',
+    '👨🏻‍🐰‍👨🏼' => 'män med kaninöron: ljus hy, mellanljus hy',
+    '👨🏻‍🐰‍👨🏽' => 'män med kaninöron: ljus hy, mellanfärgad hy',
+    '👨🏻‍🐰‍👨🏾' => 'män med kaninöron: ljus hy, mellanmörk hy',
+    '👨🏻‍🐰‍👨🏿' => 'män med kaninöron: ljus hy, mörk hy',
+    '👨🏼‍🐰‍👨🏻' => 'män med kaninöron: mellanljus hy, ljus hy',
+    '👨🏼‍🐰‍👨🏽' => 'män med kaninöron: mellanljus hy, mellanfärgad hy',
+    '👨🏼‍🐰‍👨🏾' => 'män med kaninöron: mellanljus hy, mellanmörk hy',
+    '👨🏼‍🐰‍👨🏿' => 'män med kaninöron: mellanljus hy, mörk hy',
+    '👨🏽‍🐰‍👨🏻' => 'män med kaninöron: mellanfärgad hy, ljus hy',
+    '👨🏽‍🐰‍👨🏼' => 'män med kaninöron: mellanfärgad hy, mellanljus hy',
+    '👨🏽‍🐰‍👨🏾' => 'män med kaninöron: mellanfärgad hy, mellanmörk hy',
+    '👨🏽‍🐰‍👨🏿' => 'män med kaninöron: mellanfärgad hy, mörk hy',
+    '👨🏾‍🐰‍👨🏻' => 'män med kaninöron: mellanmörk hy, ljus hy',
+    '👨🏾‍🐰‍👨🏼' => 'män med kaninöron: mellanmörk hy, mellanljus hy',
+    '👨🏾‍🐰‍👨🏽' => 'män med kaninöron: mellanmörk hy, mellanfärgad hy',
+    '👨🏾‍🐰‍👨🏿' => 'män med kaninöron: mellanmörk hy, mörk hy',
+    '👨🏿‍🐰‍👨🏻' => 'män med kaninöron: mörk hy, ljus hy',
+    '👨🏿‍🐰‍👨🏼' => 'män med kaninöron: mörk hy, mellanljus hy',
+    '👨🏿‍🐰‍👨🏽' => 'män med kaninöron: mörk hy, mellanfärgad hy',
+    '👨🏿‍🐰‍👨🏾' => 'män med kaninöron: mörk hy, mellanmörk hy',
+    '👩🏻‍🫯‍👩🏼' => 'brottande kvinnor: ljus hy, mellanljus hy',
+    '👩🏻‍🫯‍👩🏽' => 'brottande kvinnor: ljus hy, mellanfärgad hy',
+    '👩🏻‍🫯‍👩🏾' => 'brottande kvinnor: ljus hy, mellanmörk hy',
+    '👩🏻‍🫯‍👩🏿' => 'brottande kvinnor: ljus hy, mörk hy',
+    '👩🏼‍🫯‍👩🏻' => 'brottande kvinnor: mellanljus hy, ljus hy',
+    '👩🏼‍🫯‍👩🏽' => 'brottande kvinnor: mellanljus hy, mellanfärgad hy',
+    '👩🏼‍🫯‍👩🏾' => 'brottande kvinnor: mellanljus hy, mellanmörk hy',
+    '👩🏼‍🫯‍👩🏿' => 'brottande kvinnor: mellanljus hy, mörk hy',
+    '👩🏽‍🫯‍👩🏻' => 'brottande kvinnor: mellanfärgad hy, ljus hy',
+    '👩🏽‍🫯‍👩🏼' => 'brottande kvinnor: mellanfärgad hy, mellanljus hy',
+    '👩🏽‍🫯‍👩🏾' => 'brottande kvinnor: mellanfärgad hy, mellanmörk hy',
+    '👩🏽‍🫯‍👩🏿' => 'brottande kvinnor: mellanfärgad hy, mörk hy',
+    '👩🏾‍🫯‍👩🏻' => 'brottande kvinnor: mellanmörk hy, ljus hy',
+    '👩🏾‍🫯‍👩🏼' => 'brottande kvinnor: mellanmörk hy, mellanljus hy',
+    '👩🏾‍🫯‍👩🏽' => 'brottande kvinnor: mellanmörk hy, mellanfärgad hy',
+    '👩🏾‍🫯‍👩🏿' => 'brottande kvinnor: mellanmörk hy, mörk hy',
+    '👩🏿‍🫯‍👩🏻' => 'brottande kvinnor: mörk hy, ljus hy',
+    '👩🏿‍🫯‍👩🏼' => 'brottande kvinnor: mörk hy, mellanljus hy',
+    '👩🏿‍🫯‍👩🏽' => 'brottande kvinnor: mörk hy, mellanfärgad hy',
+    '👩🏿‍🫯‍👩🏾' => 'brottande kvinnor: mörk hy, mellanmörk hy',
+    '👩🏻‍❤‍👨🏻' => 'par med hjärta: kvinna, man, ljus hy',
+    '👩🏻‍❤‍👨🏼' => 'par med hjärta: kvinna, man, ljus hy, mellanljus hy',
+    '👩🏻‍❤‍👨🏽' => 'par med hjärta: kvinna, man, ljus hy, mellanfärgad hy',
+    '👩🏻‍❤‍👨🏾' => 'par med hjärta: kvinna, man, ljus hy, mellanmörk hy',
+    '👩🏻‍❤‍👨🏿' => 'par med hjärta: kvinna, man, ljus hy, mörk hy',
+    '👩🏼‍❤‍👨🏻' => 'par med hjärta: kvinna, man, mellanljus hy, ljus hy',
+    '👩🏼‍❤‍👨🏼' => 'par med hjärta: kvinna, man, mellanljus hy',
+    '👩🏼‍❤‍👨🏽' => 'par med hjärta: kvinna, man, mellanljus hy, mellanfärgad hy',
+    '👩🏼‍❤‍👨🏾' => 'par med hjärta: kvinna, man, mellanljus hy, mellanmörk hy',
+    '👩🏼‍❤‍👨🏿' => 'par med hjärta: kvinna, man, mellanljus hy, mörk hy',
+    '👩🏽‍❤‍👨🏻' => 'par med hjärta: kvinna, man, mellanfärgad hy, ljus hy',
+    '👩🏽‍❤‍👨🏼' => 'par med hjärta: kvinna, man, mellanfärgad hy, mellanljus hy',
+    '👩🏽‍❤‍👨🏽' => 'par med hjärta: kvinna, man, mellanfärgad hy',
+    '👩🏽‍❤‍👨🏾' => 'par med hjärta: kvinna, man, mellanfärgad hy, mellanmörk hy',
+    '👩🏽‍❤‍👨🏿' => 'par med hjärta: kvinna, man, mellanfärgad hy, mörk hy',
+    '👩🏾‍❤‍👨🏻' => 'par med hjärta: kvinna, man, mellanmörk hy, ljus hy',
+    '👩🏾‍❤‍👨🏼' => 'par med hjärta: kvinna, man, mellanmörk hy, mellanljus hy',
+    '👩🏾‍❤‍👨🏽' => 'par med hjärta: kvinna, man, mellanmörk hy, mellanfärgad hy',
+    '👩🏾‍❤‍👨🏾' => 'par med hjärta: kvinna, man, mellanmörk hy',
+    '👩🏾‍❤‍👨🏿' => 'par med hjärta: kvinna, man, mellanmörk hy, mörk hy',
+    '👩🏿‍❤‍👨🏻' => 'par med hjärta: kvinna, man, mörk hy, ljus hy',
+    '👩🏿‍❤‍👨🏼' => 'par med hjärta: kvinna, man, mörk hy, mellanljus hy',
+    '👩🏿‍❤‍👨🏽' => 'par med hjärta: kvinna, man, mörk hy, mellanfärgad hy',
+    '👩🏿‍❤‍👨🏾' => 'par med hjärta: kvinna, man, mörk hy, mellanmörk hy',
+    '👩🏿‍❤‍👨🏿' => 'par med hjärta: kvinna, man, mörk hy',
+    '👩🏻‍❤‍👩🏻' => 'par med hjärta: kvinna, kvinna, ljus hy',
+    '👩🏻‍❤‍👩🏼' => 'par med hjärta: kvinna, kvinna, ljus hy, mellanljus hy',
+    '👩🏻‍❤‍👩🏽' => 'par med hjärta: kvinna, kvinna, ljus hy, mellanfärgad hy',
+    '👩🏻‍❤‍👩🏾' => 'par med hjärta: kvinna, kvinna, ljus hy, mellanmörk hy',
+    '👩🏻‍❤‍👩🏿' => 'par med hjärta: kvinna, kvinna, ljus hy, mörk hy',
+    '👩🏼‍❤‍👩🏻' => 'par med hjärta: kvinna, kvinna, mellanljus hy, ljus hy',
+    '👩🏼‍❤‍👩🏼' => 'par med hjärta: kvinna, kvinna, mellanljus hy',
+    '👩🏼‍❤‍👩🏽' => 'par med hjärta: kvinna, kvinna, mellanljus hy, mellanfärgad hy',
+    '👩🏼‍❤‍👩🏾' => 'par med hjärta: kvinna, kvinna, mellanljus hy, mellanmörk hy',
+    '👩🏼‍❤‍👩🏿' => 'par med hjärta: kvinna, kvinna, mellanljus hy, mörk hy',
+    '👩🏽‍❤‍👩🏻' => 'par med hjärta: kvinna, kvinna, mellanfärgad hy, ljus hy',
+    '👩🏽‍❤‍👩🏼' => 'par med hjärta: kvinna, kvinna, mellanfärgad hy, mellanljus hy',
+    '👩🏽‍❤‍👩🏽' => 'par med hjärta: kvinna, kvinna, mellanfärgad hy',
+    '👩🏽‍❤‍👩🏾' => 'par med hjärta: kvinna, kvinna, mellanfärgad hy, mellanmörk hy',
+    '👩🏽‍❤‍👩🏿' => 'par med hjärta: kvinna, kvinna, mellanfärgad hy, mörk hy',
+    '👩🏾‍❤‍👩🏻' => 'par med hjärta: kvinna, kvinna, mellanmörk hy, ljus hy',
+    '👩🏾‍❤‍👩🏼' => 'par med hjärta: kvinna, kvinna, mellanmörk hy, mellanljus hy',
+    '👩🏾‍❤‍👩🏽' => 'par med hjärta: kvinna, kvinna, mellanmörk hy, mellanfärgad hy',
+    '👩🏾‍❤‍👩🏾' => 'par med hjärta: kvinna, kvinna, mellanmörk hy',
+    '👩🏾‍❤‍👩🏿' => 'par med hjärta: kvinna, kvinna, mellanmörk hy, mörk hy',
+    '👩🏿‍❤‍👩🏻' => 'par med hjärta: kvinna, kvinna, mörk hy, ljus hy',
+    '👩🏿‍❤‍👩🏼' => 'par med hjärta: kvinna, kvinna, mörk hy, mellanljus hy',
+    '👩🏿‍❤‍👩🏽' => 'par med hjärta: kvinna, kvinna, mörk hy, mellanfärgad hy',
+    '👩🏿‍❤‍👩🏾' => 'par med hjärta: kvinna, kvinna, mörk hy, mellanmörk hy',
+    '👩🏿‍❤‍👩🏿' => 'par med hjärta: kvinna, kvinna, mörk hy',
+    '👩🏻‍🐰‍👩🏼' => 'kvinnor med kaninöron: ljus hy, mellanljus hy',
+    '👩🏻‍🐰‍👩🏽' => 'kvinnor med kaninöron: ljus hy, mellanfärgad hy',
+    '👩🏻‍🐰‍👩🏾' => 'kvinnor med kaninöron: ljus hy, mellanmörk hy',
+    '👩🏻‍🐰‍👩🏿' => 'kvinnor med kaninöron: ljus hy, mörk hy',
+    '👩🏼‍🐰‍👩🏻' => 'kvinnor med kaninöron: mellanljus hy, ljus hy',
+    '👩🏼‍🐰‍👩🏽' => 'kvinnor med kaninöron: mellanljus hy, mellanfärgad hy',
+    '👩🏼‍🐰‍👩🏾' => 'kvinnor med kaninöron: mellanljus hy, mellanmörk hy',
+    '👩🏼‍🐰‍👩🏿' => 'kvinnor med kaninöron: mellanljus hy, mörk hy',
+    '👩🏽‍🐰‍👩🏻' => 'kvinnor med kaninöron: mellanfärgad hy, ljus hy',
+    '👩🏽‍🐰‍👩🏼' => 'kvinnor med kaninöron: mellanfärgad hy, mellanljus hy',
+    '👩🏽‍🐰‍👩🏾' => 'kvinnor med kaninöron: mellanfärgad hy, mellanmörk hy',
+    '👩🏽‍🐰‍👩🏿' => 'kvinnor med kaninöron: mellanfärgad hy, mörk hy',
+    '👩🏾‍🐰‍👩🏻' => 'kvinnor med kaninöron: mellanmörk hy, ljus hy',
+    '👩🏾‍🐰‍👩🏼' => 'kvinnor med kaninöron: mellanmörk hy, mellanljus hy',
+    '👩🏾‍🐰‍👩🏽' => 'kvinnor med kaninöron: mellanmörk hy, mellanfärgad hy',
+    '👩🏾‍🐰‍👩🏿' => 'kvinnor med kaninöron: mellanmörk hy, mörk hy',
+    '👩🏿‍🐰‍👩🏻' => 'kvinnor med kaninöron: mörk hy, ljus hy',
+    '👩🏿‍🐰‍👩🏼' => 'kvinnor med kaninöron: mörk hy, mellanljus hy',
+    '👩🏿‍🐰‍👩🏽' => 'kvinnor med kaninöron: mörk hy, mellanfärgad hy',
+    '👩🏿‍🐰‍👩🏾' => 'kvinnor med kaninöron: mörk hy, mellanmörk hy',
+    '🧑🏻‍🤝‍🧑🏻' => 'personer som håller hand: ljus hy',
+    '🧑🏻‍🤝‍🧑🏼' => 'personer som håller hand: ljus hy, mellanljus hy',
+    '🧑🏻‍🤝‍🧑🏽' => 'personer som håller hand: ljus hy, mellanfärgad hy',
+    '🧑🏻‍🤝‍🧑🏾' => 'personer som håller hand: ljus hy, mellanmörk hy',
+    '🧑🏻‍🤝‍🧑🏿' => 'personer som håller hand: ljus hy, mörk hy',
+    '🧑🏼‍🤝‍🧑🏻' => 'personer som håller hand: mellanljus hy, ljus hy',
+    '🧑🏼‍🤝‍🧑🏼' => 'personer som håller hand: mellanljus hy',
+    '🧑🏼‍🤝‍🧑🏽' => 'personer som håller hand: mellanljus hy, mellanfärgad hy',
+    '🧑🏼‍🤝‍🧑🏾' => 'personer som håller hand: mellanljus hy, mellanmörk hy',
+    '🧑🏼‍🤝‍🧑🏿' => 'personer som håller hand: mellanljus hy, mörk hy',
+    '🧑🏽‍🤝‍🧑🏻' => 'personer som håller hand: mellanfärgad hy, ljus hy',
+    '🧑🏽‍🤝‍🧑🏼' => 'personer som håller hand: mellanfärgad hy, mellanljus hy',
+    '🧑🏽‍🤝‍🧑🏽' => 'personer som håller hand: mellanfärgad hy',
+    '🧑🏽‍🤝‍🧑🏾' => 'personer som håller hand: mellanfärgad hy, mellanmörk hy',
+    '🧑🏽‍🤝‍🧑🏿' => 'personer som håller hand: mellanfärgad hy, mörk hy',
+    '🧑🏾‍🤝‍🧑🏻' => 'personer som håller hand: mellanmörk hy, ljus hy',
+    '🧑🏾‍🤝‍🧑🏼' => 'personer som håller hand: mellanmörk hy, mellanljus hy',
+    '🧑🏾‍🤝‍🧑🏽' => 'personer som håller hand: mellanmörk hy, mellanfärgad hy',
+    '🧑🏾‍🤝‍🧑🏾' => 'personer som håller hand: mellanmörk hy',
+    '🧑🏾‍🤝‍🧑🏿' => 'personer som håller hand: mellanmörk hy, mörk hy',
+    '🧑🏿‍🤝‍🧑🏻' => 'personer som håller hand: mörk hy, ljus hy',
+    '🧑🏿‍🤝‍🧑🏼' => 'personer som håller hand: mörk hy, mellanljus hy',
+    '🧑🏿‍🤝‍🧑🏽' => 'personer som håller hand: mörk hy, mellanfärgad hy',
+    '🧑🏿‍🤝‍🧑🏾' => 'personer som håller hand: mörk hy, mellanmörk hy',
+    '🧑🏿‍🤝‍🧑🏿' => 'personer som håller hand: mörk hy',
+    '👩🏻‍🤝‍👩🏼' => 'två kvinnor håller hand: ljus hy, mellanljus hy',
+    '👩🏻‍🤝‍👩🏽' => 'två kvinnor håller hand: ljus hy, mellanfärgad hy',
+    '👩🏻‍🤝‍👩🏾' => 'två kvinnor håller hand: ljus hy, mellanmörk hy',
+    '👩🏻‍🤝‍👩🏿' => 'två kvinnor håller hand: ljus hy, mörk hy',
+    '👩🏼‍🤝‍👩🏻' => 'två kvinnor håller hand: mellanljus hy, ljus hy',
+    '👩🏼‍🤝‍👩🏽' => 'två kvinnor håller hand: mellanljus hy, mellanfärgad hy',
+    '👩🏼‍🤝‍👩🏾' => 'två kvinnor håller hand: mellanljus hy, mellanmörk hy',
+    '👩🏼‍🤝‍👩🏿' => 'två kvinnor håller hand: mellanljus hy, mörk hy',
+    '👩🏽‍🤝‍👩🏻' => 'två kvinnor håller hand: mellanfärgad hy, ljus hy',
+    '👩🏽‍🤝‍👩🏼' => 'två kvinnor håller hand: mellanfärgad hy, mellanljus hy',
+    '👩🏽‍🤝‍👩🏾' => 'två kvinnor håller hand: mellanfärgad hy, mellanmörk hy',
+    '👩🏽‍🤝‍👩🏿' => 'två kvinnor håller hand: mellanfärgad hy, mörk hy',
+    '👩🏾‍🤝‍👩🏻' => 'två kvinnor håller hand: mellanmörk hy, ljus hy',
+    '👩🏾‍🤝‍👩🏼' => 'två kvinnor håller hand: mellanmörk hy, mellanljus hy',
+    '👩🏾‍🤝‍👩🏽' => 'två kvinnor håller hand: mellanmörk hy, mellanfärgad hy',
+    '👩🏾‍🤝‍👩🏿' => 'två kvinnor håller hand: mellanmörk hy, mörk hy',
+    '👩🏿‍🤝‍👩🏻' => 'två kvinnor håller hand: mörk hy, ljus hy',
+    '👩🏿‍🤝‍👩🏼' => 'två kvinnor håller hand: mörk hy, mellanljus hy',
+    '👩🏿‍🤝‍👩🏽' => 'två kvinnor håller hand: mörk hy, mellanfärgad hy',
+    '👩🏿‍🤝‍👩🏾' => 'två kvinnor håller hand: mörk hy, mellanmörk hy',
+    '👩🏻‍🤝‍👨🏼' => 'man och kvinna håller hand: ljus hy, mellanljus hy',
+    '👩🏻‍🤝‍👨🏽' => 'man och kvinna håller hand: ljus hy, mellanfärgad hy',
+    '👩🏻‍🤝‍👨🏾' => 'man och kvinna håller hand: ljus hy, mellanmörk hy',
+    '👩🏻‍🤝‍👨🏿' => 'man och kvinna håller hand: ljus hy, mörk hy',
+    '👩🏼‍🤝‍👨🏻' => 'man och kvinna håller hand: mellanljus hy, ljus hy',
+    '👩🏼‍🤝‍👨🏽' => 'man och kvinna håller hand: mellanljus hy, mellanfärgad hy',
+    '👩🏼‍🤝‍👨🏾' => 'man och kvinna håller hand: mellanljus hy, mellanmörk hy',
+    '👩🏼‍🤝‍👨🏿' => 'man och kvinna håller hand: mellanljus hy, mörk hy',
+    '👩🏽‍🤝‍👨🏻' => 'man och kvinna håller hand: mellanfärgad hy, ljus hy',
+    '👩🏽‍🤝‍👨🏼' => 'man och kvinna håller hand: mellanfärgad hy, mellanljus hy',
+    '👩🏽‍🤝‍👨🏾' => 'man och kvinna håller hand: mellanfärgad hy, mellanmörk hy',
+    '👩🏽‍🤝‍👨🏿' => 'man och kvinna håller hand: mellanfärgad hy, mörk hy',
+    '👩🏾‍🤝‍👨🏻' => 'man och kvinna håller hand: mellanmörk hy, ljus hy',
+    '👩🏾‍🤝‍👨🏼' => 'man och kvinna håller hand: mellanmörk hy, mellanljus hy',
+    '👩🏾‍🤝‍👨🏽' => 'man och kvinna håller hand: mellanmörk hy, mellanfärgad hy',
+    '👩🏾‍🤝‍👨🏿' => 'man och kvinna håller hand: mellanmörk hy, mörk hy',
+    '👩🏿‍🤝‍👨🏻' => 'man och kvinna håller hand: mörk hy, ljus hy',
+    '👩🏿‍🤝‍👨🏼' => 'man och kvinna håller hand: mörk hy, mellanljus hy',
+    '👩🏿‍🤝‍👨🏽' => 'man och kvinna håller hand: mörk hy, mellanfärgad hy',
+    '👩🏿‍🤝‍👨🏾' => 'man och kvinna håller hand: mörk hy, mellanmörk hy',
+    '👨🏻‍🤝‍👨🏼' => 'två män håller hand: ljus hy, mellanljus hy',
+    '👨🏻‍🤝‍👨🏽' => 'två män håller hand: ljus hy, mellanfärgad hy',
+    '👨🏻‍🤝‍👨🏾' => 'två män håller hand: ljus hy, mellanmörk hy',
+    '👨🏻‍🤝‍👨🏿' => 'två män håller hand: ljus hy, mörk hy',
+    '👨🏼‍🤝‍👨🏻' => 'två män håller hand: mellanljus hy, ljus hy',
+    '👨🏼‍🤝‍👨🏽' => 'två män håller hand: mellanljus hy, mellanfärgad hy',
+    '👨🏼‍🤝‍👨🏾' => 'två män håller hand: mellanljus hy, mellanmörk hy',
+    '👨🏼‍🤝‍👨🏿' => 'två män håller hand: mellanljus hy, mörk hy',
+    '👨🏽‍🤝‍👨🏻' => 'två män håller hand: mellanfärgad hy, ljus hy',
+    '👨🏽‍🤝‍👨🏼' => 'två män håller hand: mellanfärgad hy, mellanljus hy',
+    '👨🏽‍🤝‍👨🏾' => 'två män håller hand: mellanfärgad hy, mellanmörk hy',
+    '👨🏽‍🤝‍👨🏿' => 'två män håller hand: mellanfärgad hy, mörk hy',
+    '👨🏾‍🤝‍👨🏻' => 'två män håller hand: mellanmörk hy, ljus hy',
+    '👨🏾‍🤝‍👨🏼' => 'två män håller hand: mellanmörk hy, mellanljus hy',
+    '👨🏾‍🤝‍👨🏽' => 'två män håller hand: mellanmörk hy, mellanfärgad hy',
+    '👨🏾‍🤝‍👨🏿' => 'två män håller hand: mellanmörk hy, mörk hy',
+    '👨🏿‍🤝‍👨🏻' => 'två män håller hand: mörk hy, ljus hy',
+    '👨🏿‍🤝‍👨🏼' => 'två män håller hand: mörk hy, mellanljus hy',
+    '👨🏿‍🤝‍👨🏽' => 'två män håller hand: mörk hy, mellanfärgad hy',
+    '👨🏿‍🤝‍👨🏾' => 'två män håller hand: mörk hy, mellanmörk hy',
+    '👩‍❤‍💋‍👨' => 'puss: kvinna, man',
+    '👨‍❤‍💋‍👨' => 'puss: man, man',
+    '👩‍❤‍💋‍👩' => 'puss: kvinna, kvinna',
+    '👨‍👩‍👧‍👦' => 'familj: man, kvinna, flicka, pojke',
+    '👨‍👩‍👦‍👦' => 'familj: man, kvinna, pojke, pojke',
+    '👨‍👩‍👧‍👧' => 'familj: man, kvinna, flicka, flicka',
+    '👨‍👨‍👧‍👦' => 'familj: man, man, flicka, pojke',
+    '👨‍👨‍👦‍👦' => 'familj: man, man, pojke, pojke',
+    '👨‍👨‍👧‍👧' => 'familj: man, man, flicka, flicka',
+    '👩‍👩‍👧‍👦' => 'familj: kvinna, kvinna, flicka, pojke',
+    '👩‍👩‍👦‍👦' => 'familj: kvinna, kvinna, pojke, pojke',
+    '👩‍👩‍👧‍👧' => 'familj: kvinna, kvinna, flicka, flicka',
+    '🏴󠁧󠁢󠁥󠁮󠁧󠁿' => 'flagga: England',
+    '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flagga: Skottland',
+    '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flagga: Wales',
+    '🧑‍🧑‍🧒‍🧒' => 'familj: vuxen, vuxen, barn, barn',
+    '🚶🏻‍♀‍➡' => 'kvinna som går: ljus hy, åt höger',
+    '🚶🏼‍♀‍➡' => 'kvinna som går: mellanljus hy, åt höger',
+    '🚶🏽‍♀‍➡' => 'kvinna som går: mellanfärgad hy, åt höger',
+    '🚶🏾‍♀‍➡' => 'kvinna som går: mellanmörk hy, åt höger',
+    '🚶🏿‍♀‍➡' => 'kvinna som går: mörk hy, åt höger',
+    '🚶🏻‍♂‍➡' => 'man som går: ljus hy, åt höger',
+    '🚶🏼‍♂‍➡' => 'man som går: mellanljus hy, åt höger',
+    '🚶🏽‍♂‍➡' => 'man som går: mellanfärgad hy, åt höger',
+    '🚶🏾‍♂‍➡' => 'man som går: mellanmörk hy, åt höger',
+    '🚶🏿‍♂‍➡' => 'man som går: mörk hy, åt höger',
+    '🧎🏻‍♀‍➡' => 'knäsittande kvinna: ljus hy, åt höger',
+    '🧎🏼‍♀‍➡' => 'knäsittande kvinna: mellanljus hy, åt höger',
+    '🧎🏽‍♀‍➡' => 'knäsittande kvinna: mellanfärgad hy, åt höger',
+    '🧎🏾‍♀‍➡' => 'knäsittande kvinna: mellanmörk hy, åt höger',
+    '🧎🏿‍♀‍➡' => 'knäsittande kvinna: mörk hy, åt höger',
+    '🧎🏻‍♂‍➡' => 'knäsittande man: ljus hy, åt höger',
+    '🧎🏼‍♂‍➡' => 'knäsittande man: mellanljus hy, åt höger',
+    '🧎🏽‍♂‍➡' => 'knäsittande man: mellanfärgad hy, åt höger',
+    '🧎🏾‍♂‍➡' => 'knäsittande man: mellanmörk hy, åt höger',
+    '🧎🏿‍♂‍➡' => 'knäsittande man: mörk hy, åt höger',
+    '🧑🏻‍🦯‍➡' => 'person med vit käpp: ljus hy, åt höger',
+    '🧑🏼‍🦯‍➡' => 'person med vit käpp: mellanljus hy, åt höger',
+    '🧑🏽‍🦯‍➡' => 'person med vit käpp: mellanfärgad hy, åt höger',
+    '🧑🏾‍🦯‍➡' => 'person med vit käpp: mellanmörk hy, åt höger',
+    '🧑🏿‍🦯‍➡' => 'person med vit käpp: mörk hy, åt höger',
+    '👨🏻‍🦯‍➡' => 'man med vit käpp: ljus hy, åt höger',
+    '👨🏼‍🦯‍➡' => 'man med vit käpp: mellanljus hy, åt höger',
+    '👨🏽‍🦯‍➡' => 'man med vit käpp: mellanfärgad hy, åt höger',
+    '👨🏾‍🦯‍➡' => 'man med vit käpp: mellanmörk hy, åt höger',
+    '👨🏿‍🦯‍➡' => 'man med vit käpp: mörk hy, åt höger',
+    '👩🏻‍🦯‍➡' => 'kvinna med vit käpp: ljus hy, åt höger',
+    '👩🏼‍🦯‍➡' => 'kvinna med vit käpp: mellanljus hy, åt höger',
+    '👩🏽‍🦯‍➡' => 'kvinna med vit käpp: mellanfärgad hy, åt höger',
+    '👩🏾‍🦯‍➡' => 'kvinna med vit käpp: mellanmörk hy, åt höger',
+    '👩🏿‍🦯‍➡' => 'kvinna med vit käpp: mörk hy, åt höger',
+    '🧑🏻‍🦼‍➡' => 'person i permobil: ljus hy, åt höger',
+    '🧑🏼‍🦼‍➡' => 'person i permobil: mellanljus hy, åt höger',
+    '🧑🏽‍🦼‍➡' => 'person i permobil: mellanfärgad hy, åt höger',
+    '🧑🏾‍🦼‍➡' => 'person i permobil: mellanmörk hy, åt höger',
+    '🧑🏿‍🦼‍➡' => 'person i permobil: mörk hy, åt höger',
+    '👨🏻‍🦼‍➡' => 'man i permobil: ljus hy, åt höger',
+    '👨🏼‍🦼‍➡' => 'man i permobil: mellanljus hy, åt höger',
+    '👨🏽‍🦼‍➡' => 'man i permobil: mellanfärgad hy, åt höger',
+    '👨🏾‍🦼‍➡' => 'man i permobil: mellanmörk hy, åt höger',
+    '👨🏿‍🦼‍➡' => 'man i permobil: mörk hy, åt höger',
+    '👩🏻‍🦼‍➡' => 'kvinna i permobil: ljus hy, åt höger',
+    '👩🏼‍🦼‍➡' => 'kvinna i permobil: mellanljus hy, åt höger',
+    '👩🏽‍🦼‍➡' => 'kvinna i permobil: mellanfärgad hy, åt höger',
+    '👩🏾‍🦼‍➡' => 'kvinna i permobil: mellanmörk hy, åt höger',
+    '👩🏿‍🦼‍➡' => 'kvinna i permobil: mörk hy, åt höger',
+    '🧑🏻‍🦽‍➡' => 'person i manuell rullstol: ljus hy, åt höger',
+    '🧑🏼‍🦽‍➡' => 'person i manuell rullstol: mellanljus hy, åt höger',
+    '🧑🏽‍🦽‍➡' => 'person i manuell rullstol: mellanfärgad hy, åt höger',
+    '🧑🏾‍🦽‍➡' => 'person i manuell rullstol: mellanmörk hy, åt höger',
+    '🧑🏿‍🦽‍➡' => 'person i manuell rullstol: mörk hy, åt höger',
+    '👨🏻‍🦽‍➡' => 'man i manuell rullstol: ljus hy, åt höger',
+    '👨🏼‍🦽‍➡' => 'man i manuell rullstol: mellanljus hy, åt höger',
+    '👨🏽‍🦽‍➡' => 'man i manuell rullstol: mellanfärgad hy, åt höger',
+    '👨🏾‍🦽‍➡' => 'man i manuell rullstol: mellanmörk hy, åt höger',
+    '👨🏿‍🦽‍➡' => 'man i manuell rullstol: mörk hy, åt höger',
+    '👩🏻‍🦽‍➡' => 'kvinna i manuell rullstol: ljus hy, åt höger',
+    '👩🏼‍🦽‍➡' => 'kvinna i manuell rullstol: mellanljus hy, åt höger',
+    '👩🏽‍🦽‍➡' => 'kvinna i manuell rullstol: mellanfärgad hy, åt höger',
+    '👩🏾‍🦽‍➡' => 'kvinna i manuell rullstol: mellanmörk hy, åt höger',
+    '👩🏿‍🦽‍➡' => 'kvinna i manuell rullstol: mörk hy, åt höger',
+    '🏃🏻‍♀‍➡' => 'kvinna som springer: ljus hy, åt höger',
+    '🏃🏼‍♀‍➡' => 'kvinna som springer: mellanljus hy, åt höger',
+    '🏃🏽‍♀‍➡' => 'kvinna som springer: mellanfärgad hy, åt höger',
+    '🏃🏾‍♀‍➡' => 'kvinna som springer: mellanmörk hy, åt höger',
+    '🏃🏿‍♀‍➡' => 'kvinna som springer: mörk hy, åt höger',
+    '🏃🏻‍♂‍➡' => 'man som springer: ljus hy, åt höger',
+    '🏃🏼‍♂‍➡' => 'man som springer: mellanljus hy, åt höger',
+    '🏃🏽‍♂‍➡' => 'man som springer: mellanfärgad hy, åt höger',
+    '🏃🏾‍♂‍➡' => 'man som springer: mellanmörk hy, åt höger',
+    '🏃🏿‍♂‍➡' => 'man som springer: mörk hy, åt höger',
+    '🫱🏻‍🫲🏼' => 'handskakning: ljus hy, mellanljus hy',
+    '🫱🏻‍🫲🏽' => 'handskakning: ljus hy, mellanfärgad hy',
+    '🫱🏻‍🫲🏾' => 'handskakning: ljus hy, mellanmörk hy',
+    '🫱🏻‍🫲🏿' => 'handskakning: ljus hy, mörk hy',
+    '🫱🏼‍🫲🏻' => 'handskakning: mellanljus hy, ljus hy',
+    '🫱🏼‍🫲🏽' => 'handskakning: mellanljus hy, mellanfärgad hy',
+    '🫱🏼‍🫲🏾' => 'handskakning: mellanljus hy, mellanmörk hy',
+    '🫱🏼‍🫲🏿' => 'handskakning: mellanljus hy, mörk hy',
+    '🫱🏽‍🫲🏻' => 'handskakning: mellanfärgad hy, ljus hy',
+    '🫱🏽‍🫲🏼' => 'handskakning: mellanfärgad hy, mellanljus hy',
+    '🫱🏽‍🫲🏾' => 'handskakning: mellanfärgad hy, mellanmörk hy',
+    '🫱🏽‍🫲🏿' => 'handskakning: mellanfärgad hy, mörk hy',
+    '🫱🏾‍🫲🏻' => 'handskakning: mellanmörk hy, ljus hy',
+    '🫱🏾‍🫲🏼' => 'handskakning: mellanmörk hy, mellanljus hy',
+    '🫱🏾‍🫲🏽' => 'handskakning: mellanmörk hy, mellanfärgad hy',
+    '🫱🏾‍🫲🏿' => 'handskakning: mellanmörk hy, mörk hy',
+    '🫱🏿‍🫲🏻' => 'handskakning: mörk hy, ljus hy',
+    '🫱🏿‍🫲🏼' => 'handskakning: mörk hy, mellanljus hy',
+    '🫱🏿‍🫲🏽' => 'handskakning: mörk hy, mellanfärgad hy',
+    '🫱🏿‍🫲🏾' => 'handskakning: mörk hy, mellanmörk hy',
+    '🚶‍♀‍➡' => 'kvinna som går: åt höger',
+    '🚶‍♂‍➡' => 'man som går: åt höger',
+    '🧎‍♀‍➡' => 'knäsittande kvinna: åt höger',
+    '🧎‍♂‍➡' => 'knäsittande man: åt höger',
+    '🧑‍🦯‍➡' => 'person med vit käpp: åt höger',
+    '👨‍🦯‍➡' => 'man med vit käpp: åt höger',
+    '👩‍🦯‍➡' => 'kvinna med vit käpp: åt höger',
+    '🧑‍🦼‍➡' => 'person i permobil: åt höger',
+    '👨‍🦼‍➡' => 'man i permobil: åt höger',
+    '👩‍🦼‍➡' => 'kvinna i permobil: åt höger',
+    '🧑‍🦽‍➡' => 'person i manuell rullstol: åt höger',
+    '👨‍🦽‍➡' => 'man i manuell rullstol: åt höger',
+    '👩‍🦽‍➡' => 'kvinna i manuell rullstol: åt höger',
+    '🏃‍♀‍➡' => 'kvinna som springer: åt höger',
+    '🏃‍♂‍➡' => 'man som springer: åt höger',
+    '👩‍❤‍👨' => 'par med hjärta: kvinna, man',
+    '👨‍❤‍👨' => 'par med hjärta: man, man',
+    '👩‍❤‍👩' => 'par med hjärta: kvinna, kvinna',
+    '👨‍👩‍👦' => 'familj: man, kvinna, pojke',
+    '👨‍👩‍👧' => 'familj: man, kvinna, flicka',
+    '👨‍👨‍👦' => 'familj: man, man, pojke',
+    '👨‍👨‍👧' => 'familj: man, man, flicka',
+    '👩‍👩‍👦' => 'familj: kvinna, kvinna, pojke',
+    '👩‍👩‍👧' => 'familj: kvinna, kvinna, flicka',
+    '👨‍👦‍👦' => 'familj: man, pojke, pojke',
+    '👨‍👧‍👦' => 'familj: man, flicka, pojke',
+    '👨‍👧‍👧' => 'familj: man, flicka, flicka',
+    '👩‍👦‍👦' => 'familj: kvinna, pojke, pojke',
+    '👩‍👧‍👦' => 'familj: kvinna, flicka, pojke',
+    '👩‍👧‍👧' => 'familj: kvinna, flicka, flicka',
+    '🧑‍🤝‍🧑' => 'personer som håller hand',
+    '🧑‍🧑‍🧒' => 'familj: vuxen, vuxen, barn',
+    '🧑‍🧒‍🧒' => 'familj: vuxen, barn, barn',
+    '🧑🏻‍🦰' => 'person: ljus hy, rödhårig',
+    '🧑🏼‍🦰' => 'person: mellanljus hy, rödhårig',
+    '🧑🏽‍🦰' => 'person: mellanfärgad hy, rödhårig',
+    '🧑🏾‍🦰' => 'person: mellanmörk hy, rödhårig',
+    '🧑🏿‍🦰' => 'person: mörk hy, rödhårig',
+    '🧑🏻‍🦱' => 'person: ljus hy, lockigt hår',
+    '🧑🏼‍🦱' => 'person: mellanljus hy, lockigt hår',
+    '🧑🏽‍🦱' => 'person: mellanfärgad hy, lockigt hår',
+    '🧑🏾‍🦱' => 'person: mellanmörk hy, lockigt hår',
+    '🧑🏿‍🦱' => 'person: mörk hy, lockigt hår',
+    '🧑🏻‍🦳' => 'person: ljus hy, vithårig',
+    '🧑🏼‍🦳' => 'person: mellanljus hy, vithårig',
+    '🧑🏽‍🦳' => 'person: mellanfärgad hy, vithårig',
+    '🧑🏾‍🦳' => 'person: mellanmörk hy, vithårig',
+    '🧑🏿‍🦳' => 'person: mörk hy, vithårig',
+    '🧑🏻‍🦲' => 'person: ljus hy, skallig',
+    '🧑🏼‍🦲' => 'person: mellanljus hy, skallig',
+    '🧑🏽‍🦲' => 'person: mellanfärgad hy, skallig',
+    '🧑🏾‍🦲' => 'person: mellanmörk hy, skallig',
+    '🧑🏿‍🦲' => 'person: mörk hy, skallig',
+    '🧑🏻‍🩰' => 'balettdansare: ljus hy',
+    '🧑🏼‍🩰' => 'balettdansare: mellanljus hy',
+    '🧑🏽‍🩰' => 'balettdansare: mellanfärgad hy',
+    '🧑🏾‍🩰' => 'balettdansare: mellanmörk hy',
+    '🧑🏿‍🩰' => 'balettdansare: mörk hy',
+    '🧔🏻‍♂' => 'man: ljus hy, skägg',
+    '🧔🏼‍♂' => 'man: mellanljus hy, skägg',
+    '🧔🏽‍♂' => 'man: mellanfärgad hy, skägg',
+    '🧔🏾‍♂' => 'man: mellanmörk hy, skägg',
+    '🧔🏿‍♂' => 'man: mörk hy, skägg',
+    '👱🏻‍♂' => 'blond man: ljus hy',
+    '👱🏼‍♂' => 'blond man: mellanljus hy',
+    '👱🏽‍♂' => 'blond man: mellanfärgad hy',
+    '👱🏾‍♂' => 'blond man: mellanmörk hy',
+    '👱🏿‍♂' => 'blond man: mörk hy',
+    '👨🏻‍🦰' => 'man: ljus hy, rödhårig',
+    '👨🏼‍🦰' => 'man: mellanljus hy, rödhårig',
+    '👨🏽‍🦰' => 'man: mellanfärgad hy, rödhårig',
+    '👨🏾‍🦰' => 'man: mellanmörk hy, rödhårig',
+    '👨🏿‍🦰' => 'man: mörk hy, rödhårig',
+    '👨🏻‍🦱' => 'man: ljus hy, lockigt hår',
+    '👨🏼‍🦱' => 'man: mellanljus hy, lockigt hår',
+    '👨🏽‍🦱' => 'man: mellanfärgad hy, lockigt hår',
+    '👨🏾‍🦱' => 'man: mellanmörk hy, lockigt hår',
+    '👨🏿‍🦱' => 'man: mörk hy, lockigt hår',
+    '👨🏻‍🦳' => 'man: ljus hy, vithårig',
+    '👨🏼‍🦳' => 'man: mellanljus hy, vithårig',
+    '👨🏽‍🦳' => 'man: mellanfärgad hy, vithårig',
+    '👨🏾‍🦳' => 'man: mellanmörk hy, vithårig',
+    '👨🏿‍🦳' => 'man: mörk hy, vithårig',
+    '👨🏻‍🦲' => 'man: ljus hy, skallig',
+    '👨🏼‍🦲' => 'man: mellanljus hy, skallig',
+    '👨🏽‍🦲' => 'man: mellanfärgad hy, skallig',
+    '👨🏾‍🦲' => 'man: mellanmörk hy, skallig',
+    '👨🏿‍🦲' => 'man: mörk hy, skallig',
+    '🧔🏻‍♀' => 'kvinna: ljus hy, skägg',
+    '🧔🏼‍♀' => 'kvinna: mellanljus hy, skägg',
+    '🧔🏽‍♀' => 'kvinna: mellanfärgad hy, skägg',
+    '🧔🏾‍♀' => 'kvinna: mellanmörk hy, skägg',
+    '🧔🏿‍♀' => 'kvinna: mörk hy, skägg',
+    '👱🏻‍♀' => 'blond kvinna: ljus hy',
+    '👱🏼‍♀' => 'blond kvinna: mellanljus hy',
+    '👱🏽‍♀' => 'blond kvinna: mellanfärgad hy',
+    '👱🏾‍♀' => 'blond kvinna: mellanmörk hy',
+    '👱🏿‍♀' => 'blond kvinna: mörk hy',
+    '👩🏻‍🦰' => 'kvinna: ljus hy, rödhårig',
+    '👩🏼‍🦰' => 'kvinna: mellanljus hy, rödhårig',
+    '👩🏽‍🦰' => 'kvinna: mellanfärgad hy, rödhårig',
+    '👩🏾‍🦰' => 'kvinna: mellanmörk hy, rödhårig',
+    '👩🏿‍🦰' => 'kvinna: mörk hy, rödhårig',
+    '👩🏻‍🦱' => 'kvinna: ljus hy, lockigt hår',
+    '👩🏼‍🦱' => 'kvinna: mellanljus hy, lockigt hår',
+    '👩🏽‍🦱' => 'kvinna: mellanfärgad hy, lockigt hår',
+    '👩🏾‍🦱' => 'kvinna: mellanmörk hy, lockigt hår',
+    '👩🏿‍🦱' => 'kvinna: mörk hy, lockigt hår',
+    '👩🏻‍🦳' => 'kvinna: ljus hy, vithårig',
+    '👩🏼‍🦳' => 'kvinna: mellanljus hy, vithårig',
+    '👩🏽‍🦳' => 'kvinna: mellanfärgad hy, vithårig',
+    '👩🏾‍🦳' => 'kvinna: mellanmörk hy, vithårig',
+    '👩🏿‍🦳' => 'kvinna: mörk hy, vithårig',
+    '👩🏻‍🦲' => 'kvinna: ljus hy, skallig',
+    '👩🏼‍🦲' => 'kvinna: mellanljus hy, skallig',
+    '👩🏽‍🦲' => 'kvinna: mellanfärgad hy, skallig',
+    '👩🏾‍🦲' => 'kvinna: mellanmörk hy, skallig',
+    '👩🏿‍🦲' => 'kvinna: mörk hy, skallig',
+    '🙍🏻‍♂' => 'sur man: ljus hy',
+    '🙍🏼‍♂' => 'sur man: mellanljus hy',
+    '🙍🏽‍♂' => 'sur man: mellanfärgad hy',
+    '🙍🏾‍♂' => 'sur man: mellanmörk hy',
+    '🙍🏿‍♂' => 'sur man: mörk hy',
+    '🙍🏻‍♀' => 'sur kvinna: ljus hy',
+    '🙍🏼‍♀' => 'sur kvinna: mellanljus hy',
+    '🙍🏽‍♀' => 'sur kvinna: mellanfärgad hy',
+    '🙍🏾‍♀' => 'sur kvinna: mellanmörk hy',
+    '🙍🏿‍♀' => 'sur kvinna: mörk hy',
+    '🙎🏻‍♂' => 'plutande man: ljus hy',
+    '🙎🏼‍♂' => 'plutande man: mellanljus hy',
+    '🙎🏽‍♂' => 'plutande man: mellanfärgad hy',
+    '🙎🏾‍♂' => 'plutande man: mellanmörk hy',
+    '🙎🏿‍♂' => 'plutande man: mörk hy',
+    '🙎🏻‍♀' => 'plutande kvinna: ljus hy',
+    '🙎🏼‍♀' => 'plutande kvinna: mellanljus hy',
+    '🙎🏽‍♀' => 'plutande kvinna: mellanfärgad hy',
+    '🙎🏾‍♀' => 'plutande kvinna: mellanmörk hy',
+    '🙎🏿‍♀' => 'plutande kvinna: mörk hy',
+    '🙅🏻‍♂' => 'man gestikulerar NEJ: ljus hy',
+    '🙅🏼‍♂' => 'man gestikulerar NEJ: mellanljus hy',
+    '🙅🏽‍♂' => 'man gestikulerar NEJ: mellanfärgad hy',
+    '🙅🏾‍♂' => 'man gestikulerar NEJ: mellanmörk hy',
+    '🙅🏿‍♂' => 'man gestikulerar NEJ: mörk hy',
+    '🙅🏻‍♀' => 'kvinna gestikulerar NEJ: ljus hy',
+    '🙅🏼‍♀' => 'kvinna gestikulerar NEJ: mellanljus hy',
+    '🙅🏽‍♀' => 'kvinna gestikulerar NEJ: mellanfärgad hy',
+    '🙅🏾‍♀' => 'kvinna gestikulerar NEJ: mellanmörk hy',
+    '🙅🏿‍♀' => 'kvinna gestikulerar NEJ: mörk hy',
+    '🙆🏻‍♂' => 'man gestikulerar OK: ljus hy',
+    '🙆🏼‍♂' => 'man gestikulerar OK: mellanljus hy',
+    '🙆🏽‍♂' => 'man gestikulerar OK: mellanfärgad hy',
+    '🙆🏾‍♂' => 'man gestikulerar OK: mellanmörk hy',
+    '🙆🏿‍♂' => 'man gestikulerar OK: mörk hy',
+    '🙆🏻‍♀' => 'kvinna gestikulerar OK: ljus hy',
+    '🙆🏼‍♀' => 'kvinna gestikulerar OK: mellanljus hy',
+    '🙆🏽‍♀' => 'kvinna gestikulerar OK: mellanfärgad hy',
+    '🙆🏾‍♀' => 'kvinna gestikulerar OK: mellanmörk hy',
+    '🙆🏿‍♀' => 'kvinna gestikulerar OK: mörk hy',
+    '💁🏻‍♂' => 'hjälpande man: ljus hy',
+    '💁🏼‍♂' => 'hjälpande man: mellanljus hy',
+    '💁🏽‍♂' => 'hjälpande man: mellanfärgad hy',
+    '💁🏾‍♂' => 'hjälpande man: mellanmörk hy',
+    '💁🏿‍♂' => 'hjälpande man: mörk hy',
+    '💁🏻‍♀' => 'hjälpande kvinna: ljus hy',
+    '💁🏼‍♀' => 'hjälpande kvinna: mellanljus hy',
+    '💁🏽‍♀' => 'hjälpande kvinna: mellanfärgad hy',
+    '💁🏾‍♀' => 'hjälpande kvinna: mellanmörk hy',
+    '💁🏿‍♀' => 'hjälpande kvinna: mörk hy',
+    '🙋🏻‍♂' => 'man som räcker upp handen: ljus hy',
+    '🙋🏼‍♂' => 'man som räcker upp handen: mellanljus hy',
+    '🙋🏽‍♂' => 'man som räcker upp handen: mellanfärgad hy',
+    '🙋🏾‍♂' => 'man som räcker upp handen: mellanmörk hy',
+    '🙋🏿‍♂' => 'man som räcker upp handen: mörk hy',
+    '🙋🏻‍♀' => 'kvinna som räcker upp handen: ljus hy',
+    '🙋🏼‍♀' => 'kvinna som räcker upp handen: mellanljus hy',
+    '🙋🏽‍♀' => 'kvinna som räcker upp handen: mellanfärgad hy',
+    '🙋🏾‍♀' => 'kvinna som räcker upp handen: mellanmörk hy',
+    '🙋🏿‍♀' => 'kvinna som räcker upp handen: mörk hy',
+    '🧏🏻‍♂' => 'hörselskadad man: ljus hy',
+    '🧏🏼‍♂' => 'hörselskadad man: mellanljus hy',
+    '🧏🏽‍♂' => 'hörselskadad man: mellanfärgad hy',
+    '🧏🏾‍♂' => 'hörselskadad man: mellanmörk hy',
+    '🧏🏿‍♂' => 'hörselskadad man: mörk hy',
+    '🧏🏻‍♀' => 'hörselskadad kvinna: ljus hy',
+    '🧏🏼‍♀' => 'hörselskadad kvinna: mellanljus hy',
+    '🧏🏽‍♀' => 'hörselskadad kvinna: mellanfärgad hy',
+    '🧏🏾‍♀' => 'hörselskadad kvinna: mellanmörk hy',
+    '🧏🏿‍♀' => 'hörselskadad kvinna: mörk hy',
+    '🙇🏻‍♂' => 'bugande man: ljus hy',
+    '🙇🏼‍♂' => 'bugande man: mellanljus hy',
+    '🙇🏽‍♂' => 'bugande man: mellanfärgad hy',
+    '🙇🏾‍♂' => 'bugande man: mellanmörk hy',
+    '🙇🏿‍♂' => 'bugande man: mörk hy',
+    '🙇🏻‍♀' => 'bugande kvinna: ljus hy',
+    '🙇🏼‍♀' => 'bugande kvinna: mellanljus hy',
+    '🙇🏽‍♀' => 'bugande kvinna: mellanfärgad hy',
+    '🙇🏾‍♀' => 'bugande kvinna: mellanmörk hy',
+    '🙇🏿‍♀' => 'bugande kvinna: mörk hy',
+    '🤦🏻‍♂' => 'man som slår sig för pannan: ljus hy',
+    '🤦🏼‍♂' => 'man som slår sig för pannan: mellanljus hy',
+    '🤦🏽‍♂' => 'man som slår sig för pannan: mellanfärgad hy',
+    '🤦🏾‍♂' => 'man som slår sig för pannan: mellanmörk hy',
+    '🤦🏿‍♂' => 'man som slår sig för pannan: mörk hy',
+    '🤦🏻‍♀' => 'kvinna som slår sig för pannan: ljus hy',
+    '🤦🏼‍♀' => 'kvinna som slår sig för pannan: mellanljus hy',
+    '🤦🏽‍♀' => 'kvinna som slår sig för pannan: mellanfärgad hy',
+    '🤦🏾‍♀' => 'kvinna som slår sig för pannan: mellanmörk hy',
+    '🤦🏿‍♀' => 'kvinna som slår sig för pannan: mörk hy',
+    '🤷🏻‍♂' => 'man som rycker på axlarna: ljus hy',
+    '🤷🏼‍♂' => 'man som rycker på axlarna: mellanljus hy',
+    '🤷🏽‍♂' => 'man som rycker på axlarna: mellanfärgad hy',
+    '🤷🏾‍♂' => 'man som rycker på axlarna: mellanmörk hy',
+    '🤷🏿‍♂' => 'man som rycker på axlarna: mörk hy',
+    '🤷🏻‍♀' => 'kvinna som rycker på axlarna: ljus hy',
+    '🤷🏼‍♀' => 'kvinna som rycker på axlarna: mellanljus hy',
+    '🤷🏽‍♀' => 'kvinna som rycker på axlarna: mellanfärgad hy',
+    '🤷🏾‍♀' => 'kvinna som rycker på axlarna: mellanmörk hy',
+    '🤷🏿‍♀' => 'kvinna som rycker på axlarna: mörk hy',
+    '🧑🏻‍⚕' => 'läkare: ljus hy',
+    '🧑🏼‍⚕' => 'läkare: mellanljus hy',
+    '🧑🏽‍⚕' => 'läkare: mellanfärgad hy',
+    '🧑🏾‍⚕' => 'läkare: mellanmörk hy',
+    '🧑🏿‍⚕' => 'läkare: mörk hy',
+    '👨🏻‍⚕' => 'manlig läkare: ljus hy',
+    '👨🏼‍⚕' => 'manlig läkare: mellanljus hy',
+    '👨🏽‍⚕' => 'manlig läkare: mellanfärgad hy',
+    '👨🏾‍⚕' => 'manlig läkare: mellanmörk hy',
+    '👨🏿‍⚕' => 'manlig läkare: mörk hy',
+    '👩🏻‍⚕' => 'kvinnlig läkare: ljus hy',
+    '👩🏼‍⚕' => 'kvinnlig läkare: mellanljus hy',
+    '👩🏽‍⚕' => 'kvinnlig läkare: mellanfärgad hy',
+    '👩🏾‍⚕' => 'kvinnlig läkare: mellanmörk hy',
+    '👩🏿‍⚕' => 'kvinnlig läkare: mörk hy',
+    '🧑🏻‍🎓' => 'student: ljus hy',
+    '🧑🏼‍🎓' => 'student: mellanljus hy',
+    '🧑🏽‍🎓' => 'student: mellanfärgad hy',
+    '🧑🏾‍🎓' => 'student: mellanmörk hy',
+    '🧑🏿‍🎓' => 'student: mörk hy',
+    '👨🏻‍🎓' => 'manlig student: ljus hy',
+    '👨🏼‍🎓' => 'manlig student: mellanljus hy',
+    '👨🏽‍🎓' => 'manlig student: mellanfärgad hy',
+    '👨🏾‍🎓' => 'manlig student: mellanmörk hy',
+    '👨🏿‍🎓' => 'manlig student: mörk hy',
+    '👩🏻‍🎓' => 'kvinnlig student: ljus hy',
+    '👩🏼‍🎓' => 'kvinnlig student: mellanljus hy',
+    '👩🏽‍🎓' => 'kvinnlig student: mellanfärgad hy',
+    '👩🏾‍🎓' => 'kvinnlig student: mellanmörk hy',
+    '👩🏿‍🎓' => 'kvinnlig student: mörk hy',
+    '🧑🏻‍🏫' => 'lärare: ljus hy',
+    '🧑🏼‍🏫' => 'lärare: mellanljus hy',
+    '🧑🏽‍🏫' => 'lärare: mellanfärgad hy',
+    '🧑🏾‍🏫' => 'lärare: mellanmörk hy',
+    '🧑🏿‍🏫' => 'lärare: mörk hy',
+    '👨🏻‍🏫' => 'manlig lärare: ljus hy',
+    '👨🏼‍🏫' => 'manlig lärare: mellanljus hy',
+    '👨🏽‍🏫' => 'manlig lärare: mellanfärgad hy',
+    '👨🏾‍🏫' => 'manlig lärare: mellanmörk hy',
+    '👨🏿‍🏫' => 'manlig lärare: mörk hy',
+    '👩🏻‍🏫' => 'kvinnlig lärare: ljus hy',
+    '👩🏼‍🏫' => 'kvinnlig lärare: mellanljus hy',
+    '👩🏽‍🏫' => 'kvinnlig lärare: mellanfärgad hy',
+    '👩🏾‍🏫' => 'kvinnlig lärare: mellanmörk hy',
+    '👩🏿‍🏫' => 'kvinnlig lärare: mörk hy',
+    '🧑🏻‍⚖' => 'domare: ljus hy',
+    '🧑🏼‍⚖' => 'domare: mellanljus hy',
+    '🧑🏽‍⚖' => 'domare: mellanfärgad hy',
+    '🧑🏾‍⚖' => 'domare: mellanmörk hy',
+    '🧑🏿‍⚖' => 'domare: mörk hy',
+    '👨🏻‍⚖' => 'manlig domare: ljus hy',
+    '👨🏼‍⚖' => 'manlig domare: mellanljus hy',
+    '👨🏽‍⚖' => 'manlig domare: mellanfärgad hy',
+    '👨🏾‍⚖' => 'manlig domare: mellanmörk hy',
+    '👨🏿‍⚖' => 'manlig domare: mörk hy',
+    '👩🏻‍⚖' => 'kvinnlig domare: ljus hy',
+    '👩🏼‍⚖' => 'kvinnlig domare: mellanljus hy',
+    '👩🏽‍⚖' => 'kvinnlig domare: mellanfärgad hy',
+    '👩🏾‍⚖' => 'kvinnlig domare: mellanmörk hy',
+    '👩🏿‍⚖' => 'kvinnlig domare: mörk hy',
+    '🧑🏻‍🌾' => 'bonde: ljus hy',
+    '🧑🏼‍🌾' => 'bonde: mellanljus hy',
+    '🧑🏽‍🌾' => 'bonde: mellanfärgad hy',
+    '🧑🏾‍🌾' => 'bonde: mellanmörk hy',
+    '🧑🏿‍🌾' => 'bonde: mörk hy',
+    '👨🏻‍🌾' => 'manlig bonde: ljus hy',
+    '👨🏼‍🌾' => 'manlig bonde: mellanljus hy',
+    '👨🏽‍🌾' => 'manlig bonde: mellanfärgad hy',
+    '👨🏾‍🌾' => 'manlig bonde: mellanmörk hy',
+    '👨🏿‍🌾' => 'manlig bonde: mörk hy',
+    '👩🏻‍🌾' => 'kvinnlig bonde: ljus hy',
+    '👩🏼‍🌾' => 'kvinnlig bonde: mellanljus hy',
+    '👩🏽‍🌾' => 'kvinnlig bonde: mellanfärgad hy',
+    '👩🏾‍🌾' => 'kvinnlig bonde: mellanmörk hy',
+    '👩🏿‍🌾' => 'kvinnlig bonde: mörk hy',
+    '🧑🏻‍🍳' => 'kock: ljus hy',
+    '🧑🏼‍🍳' => 'kock: mellanljus hy',
+    '🧑🏽‍🍳' => 'kock: mellanfärgad hy',
+    '🧑🏾‍🍳' => 'kock: mellanmörk hy',
+    '🧑🏿‍🍳' => 'kock: mörk hy',
+    '👨🏻‍🍳' => 'manlig kock: ljus hy',
+    '👨🏼‍🍳' => 'manlig kock: mellanljus hy',
+    '👨🏽‍🍳' => 'manlig kock: mellanfärgad hy',
+    '👨🏾‍🍳' => 'manlig kock: mellanmörk hy',
+    '👨🏿‍🍳' => 'manlig kock: mörk hy',
+    '👩🏻‍🍳' => 'kvinnlig kock: ljus hy',
+    '👩🏼‍🍳' => 'kvinnlig kock: mellanljus hy',
+    '👩🏽‍🍳' => 'kvinnlig kock: mellanfärgad hy',
+    '👩🏾‍🍳' => 'kvinnlig kock: mellanmörk hy',
+    '👩🏿‍🍳' => 'kvinnlig kock: mörk hy',
+    '🧑🏻‍🔧' => 'mekaniker: ljus hy',
+    '🧑🏼‍🔧' => 'mekaniker: mellanljus hy',
+    '🧑🏽‍🔧' => 'mekaniker: mellanfärgad hy',
+    '🧑🏾‍🔧' => 'mekaniker: mellanmörk hy',
+    '🧑🏿‍🔧' => 'mekaniker: mörk hy',
+    '👨🏻‍🔧' => 'manlig mekaniker: ljus hy',
+    '👨🏼‍🔧' => 'manlig mekaniker: mellanljus hy',
+    '👨🏽‍🔧' => 'manlig mekaniker: mellanfärgad hy',
+    '👨🏾‍🔧' => 'manlig mekaniker: mellanmörk hy',
+    '👨🏿‍🔧' => 'manlig mekaniker: mörk hy',
+    '👩🏻‍🔧' => 'kvinnlig mekaniker: ljus hy',
+    '👩🏼‍🔧' => 'kvinnlig mekaniker: mellanljus hy',
+    '👩🏽‍🔧' => 'kvinnlig mekaniker: mellanfärgad hy',
+    '👩🏾‍🔧' => 'kvinnlig mekaniker: mellanmörk hy',
+    '👩🏿‍🔧' => 'kvinnlig mekaniker: mörk hy',
+    '🧑🏻‍🏭' => 'fabriksarbetare: ljus hy',
+    '🧑🏼‍🏭' => 'fabriksarbetare: mellanljus hy',
+    '🧑🏽‍🏭' => 'fabriksarbetare: mellanfärgad hy',
+    '🧑🏾‍🏭' => 'fabriksarbetare: mellanmörk hy',
+    '🧑🏿‍🏭' => 'fabriksarbetare: mörk hy',
+    '👨🏻‍🏭' => 'manlig fabriksarbetare: ljus hy',
+    '👨🏼‍🏭' => 'manlig fabriksarbetare: mellanljus hy',
+    '👨🏽‍🏭' => 'manlig fabriksarbetare: mellanfärgad hy',
+    '👨🏾‍🏭' => 'manlig fabriksarbetare: mellanmörk hy',
+    '👨🏿‍🏭' => 'manlig fabriksarbetare: mörk hy',
+    '👩🏻‍🏭' => 'kvinnlig fabriksarbetare: ljus hy',
+    '👩🏼‍🏭' => 'kvinnlig fabriksarbetare: mellanljus hy',
+    '👩🏽‍🏭' => 'kvinnlig fabriksarbetare: mellanfärgad hy',
+    '👩🏾‍🏭' => 'kvinnlig fabriksarbetare: mellanmörk hy',
+    '👩🏿‍🏭' => 'kvinnlig fabriksarbetare: mörk hy',
+    '🧑🏻‍💼' => 'kontorist: ljus hy',
+    '🧑🏼‍💼' => 'kontorist: mellanljus hy',
+    '🧑🏽‍💼' => 'kontorist: mellanfärgad hy',
+    '🧑🏾‍💼' => 'kontorist: mellanmörk hy',
+    '🧑🏿‍💼' => 'kontorist: mörk hy',
+    '👨🏻‍💼' => 'kontorstjänsteman: ljus hy',
+    '👨🏼‍💼' => 'kontorstjänsteman: mellanljus hy',
+    '👨🏽‍💼' => 'kontorstjänsteman: mellanfärgad hy',
+    '👨🏾‍💼' => 'kontorstjänsteman: mellanmörk hy',
+    '👨🏿‍💼' => 'kontorstjänsteman: mörk hy',
+    '👩🏻‍💼' => 'kontorstjänstekvinna: ljus hy',
+    '👩🏼‍💼' => 'kontorstjänstekvinna: mellanljus hy',
+    '👩🏽‍💼' => 'kontorstjänstekvinna: mellanfärgad hy',
+    '👩🏾‍💼' => 'kontorstjänstekvinna: mellanmörk hy',
+    '👩🏿‍💼' => 'kontorstjänstekvinna: mörk hy',
+    '🧑🏻‍🔬' => 'forskare: ljus hy',
+    '🧑🏼‍🔬' => 'forskare: mellanljus hy',
+    '🧑🏽‍🔬' => 'forskare: mellanfärgad hy',
+    '🧑🏾‍🔬' => 'forskare: mellanmörk hy',
+    '🧑🏿‍🔬' => 'forskare: mörk hy',
+    '👨🏻‍🔬' => 'manlig forskare: ljus hy',
+    '👨🏼‍🔬' => 'manlig forskare: mellanljus hy',
+    '👨🏽‍🔬' => 'manlig forskare: mellanfärgad hy',
+    '👨🏾‍🔬' => 'manlig forskare: mellanmörk hy',
+    '👨🏿‍🔬' => 'manlig forskare: mörk hy',
+    '👩🏻‍🔬' => 'kvinnlig forskare: ljus hy',
+    '👩🏼‍🔬' => 'kvinnlig forskare: mellanljus hy',
+    '👩🏽‍🔬' => 'kvinnlig forskare: mellanfärgad hy',
+    '👩🏾‍🔬' => 'kvinnlig forskare: mellanmörk hy',
+    '👩🏿‍🔬' => 'kvinnlig forskare: mörk hy',
+    '🧑🏻‍💻' => 'IT-tekniker: ljus hy',
+    '🧑🏼‍💻' => 'IT-tekniker: mellanljus hy',
+    '🧑🏽‍💻' => 'IT-tekniker: mellanfärgad hy',
+    '🧑🏾‍💻' => 'IT-tekniker: mellanmörk hy',
+    '🧑🏿‍💻' => 'IT-tekniker: mörk hy',
+    '👨🏻‍💻' => 'manlig IT-expert: ljus hy',
+    '👨🏼‍💻' => 'manlig IT-expert: mellanljus hy',
+    '👨🏽‍💻' => 'manlig IT-expert: mellanfärgad hy',
+    '👨🏾‍💻' => 'manlig IT-expert: mellanmörk hy',
+    '👨🏿‍💻' => 'manlig IT-expert: mörk hy',
+    '👩🏻‍💻' => 'kvinnlig IT-expert: ljus hy',
+    '👩🏼‍💻' => 'kvinnlig IT-expert: mellanljus hy',
+    '👩🏽‍💻' => 'kvinnlig IT-expert: mellanfärgad hy',
+    '👩🏾‍💻' => 'kvinnlig IT-expert: mellanmörk hy',
+    '👩🏿‍💻' => 'kvinnlig IT-expert: mörk hy',
+    '🧑🏻‍🎤' => 'sångare: ljus hy',
+    '🧑🏼‍🎤' => 'sångare: mellanljus hy',
+    '🧑🏽‍🎤' => 'sångare: mellanfärgad hy',
+    '🧑🏾‍🎤' => 'sångare: mellanmörk hy',
+    '🧑🏿‍🎤' => 'sångare: mörk hy',
+    '👨🏻‍🎤' => 'manlig sångare: ljus hy',
+    '👨🏼‍🎤' => 'manlig sångare: mellanljus hy',
+    '👨🏽‍🎤' => 'manlig sångare: mellanfärgad hy',
+    '👨🏾‍🎤' => 'manlig sångare: mellanmörk hy',
+    '👨🏿‍🎤' => 'manlig sångare: mörk hy',
+    '👩🏻‍🎤' => 'kvinnlig sångare: ljus hy',
+    '👩🏼‍🎤' => 'kvinnlig sångare: mellanljus hy',
+    '👩🏽‍🎤' => 'kvinnlig sångare: mellanfärgad hy',
+    '👩🏾‍🎤' => 'kvinnlig sångare: mellanmörk hy',
+    '👩🏿‍🎤' => 'kvinnlig sångare: mörk hy',
+    '🧑🏻‍🎨' => 'konstnär: ljus hy',
+    '🧑🏼‍🎨' => 'konstnär: mellanljus hy',
+    '🧑🏽‍🎨' => 'konstnär: mellanfärgad hy',
+    '🧑🏾‍🎨' => 'konstnär: mellanmörk hy',
+    '🧑🏿‍🎨' => 'konstnär: mörk hy',
+    '👨🏻‍🎨' => 'manlig konstnär: ljus hy',
+    '👨🏼‍🎨' => 'manlig konstnär: mellanljus hy',
+    '👨🏽‍🎨' => 'manlig konstnär: mellanfärgad hy',
+    '👨🏾‍🎨' => 'manlig konstnär: mellanmörk hy',
+    '👨🏿‍🎨' => 'manlig konstnär: mörk hy',
+    '👩🏻‍🎨' => 'kvinnlig konstnär: ljus hy',
+    '👩🏼‍🎨' => 'kvinnlig konstnär: mellanljus hy',
+    '👩🏽‍🎨' => 'kvinnlig konstnär: mellanfärgad hy',
+    '👩🏾‍🎨' => 'kvinnlig konstnär: mellanmörk hy',
+    '👩🏿‍🎨' => 'kvinnlig konstnär: mörk hy',
+    '🧑🏻‍✈' => 'pilot: ljus hy',
+    '🧑🏼‍✈' => 'pilot: mellanljus hy',
+    '🧑🏽‍✈' => 'pilot: mellanfärgad hy',
+    '🧑🏾‍✈' => 'pilot: mellanmörk hy',
+    '🧑🏿‍✈' => 'pilot: mörk hy',
+    '👨🏻‍✈' => 'manlig pilot: ljus hy',
+    '👨🏼‍✈' => 'manlig pilot: mellanljus hy',
+    '👨🏽‍✈' => 'manlig pilot: mellanfärgad hy',
+    '👨🏾‍✈' => 'manlig pilot: mellanmörk hy',
+    '👨🏿‍✈' => 'manlig pilot: mörk hy',
+    '👩🏻‍✈' => 'kvinnlig pilot: ljus hy',
+    '👩🏼‍✈' => 'kvinnlig pilot: mellanljus hy',
+    '👩🏽‍✈' => 'kvinnlig pilot: mellanfärgad hy',
+    '👩🏾‍✈' => 'kvinnlig pilot: mellanmörk hy',
+    '👩🏿‍✈' => 'kvinnlig pilot: mörk hy',
+    '🧑🏻‍🚀' => 'astronaut: ljus hy',
+    '🧑🏼‍🚀' => 'astronaut: mellanljus hy',
+    '🧑🏽‍🚀' => 'astronaut: mellanfärgad hy',
+    '🧑🏾‍🚀' => 'astronaut: mellanmörk hy',
+    '🧑🏿‍🚀' => 'astronaut: mörk hy',
+    '👨🏻‍🚀' => 'manlig astronaut: ljus hy',
+    '👨🏼‍🚀' => 'manlig astronaut: mellanljus hy',
+    '👨🏽‍🚀' => 'manlig astronaut: mellanfärgad hy',
+    '👨🏾‍🚀' => 'manlig astronaut: mellanmörk hy',
+    '👨🏿‍🚀' => 'manlig astronaut: mörk hy',
+    '👩🏻‍🚀' => 'kvinnlig astronaut: ljus hy',
+    '👩🏼‍🚀' => 'kvinnlig astronaut: mellanljus hy',
+    '👩🏽‍🚀' => 'kvinnlig astronaut: mellanfärgad hy',
+    '👩🏾‍🚀' => 'kvinnlig astronaut: mellanmörk hy',
+    '👩🏿‍🚀' => 'kvinnlig astronaut: mörk hy',
+    '🧑🏻‍🚒' => 'brandman: ljus hy',
+    '🧑🏼‍🚒' => 'brandman: mellanljus hy',
+    '🧑🏽‍🚒' => 'brandman: mellanfärgad hy',
+    '🧑🏾‍🚒' => 'brandman: mellanmörk hy',
+    '🧑🏿‍🚒' => 'brandman: mörk hy',
+    '👨🏻‍🚒' => 'manlig brandman: ljus hy',
+    '👨🏼‍🚒' => 'manlig brandman: mellanljus hy',
+    '👨🏽‍🚒' => 'manlig brandman: mellanfärgad hy',
+    '👨🏾‍🚒' => 'manlig brandman: mellanmörk hy',
+    '👨🏿‍🚒' => 'manlig brandman: mörk hy',
+    '👩🏻‍🚒' => 'kvinnlig brandman: ljus hy',
+    '👩🏼‍🚒' => 'kvinnlig brandman: mellanljus hy',
+    '👩🏽‍🚒' => 'kvinnlig brandman: mellanfärgad hy',
+    '👩🏾‍🚒' => 'kvinnlig brandman: mellanmörk hy',
+    '👩🏿‍🚒' => 'kvinnlig brandman: mörk hy',
+    '👮🏻‍♂' => 'manlig polis: ljus hy',
+    '👮🏼‍♂' => 'manlig polis: mellanljus hy',
+    '👮🏽‍♂' => 'manlig polis: mellanfärgad hy',
+    '👮🏾‍♂' => 'manlig polis: mellanmörk hy',
+    '👮🏿‍♂' => 'manlig polis: mörk hy',
+    '👮🏻‍♀' => 'kvinnlig polis: ljus hy',
+    '👮🏼‍♀' => 'kvinnlig polis: mellanljus hy',
+    '👮🏽‍♀' => 'kvinnlig polis: mellanfärgad hy',
+    '👮🏾‍♀' => 'kvinnlig polis: mellanmörk hy',
+    '👮🏿‍♀' => 'kvinnlig polis: mörk hy',
+    '🕵🏻‍♂' => 'manlig detektiv: ljus hy',
+    '🕵🏼‍♂' => 'manlig detektiv: mellanljus hy',
+    '🕵🏽‍♂' => 'manlig detektiv: mellanfärgad hy',
+    '🕵🏾‍♂' => 'manlig detektiv: mellanmörk hy',
+    '🕵🏿‍♂' => 'manlig detektiv: mörk hy',
+    '🕵🏻‍♀' => 'kvinnlig detektiv: ljus hy',
+    '🕵🏼‍♀' => 'kvinnlig detektiv: mellanljus hy',
+    '🕵🏽‍♀' => 'kvinnlig detektiv: mellanfärgad hy',
+    '🕵🏾‍♀' => 'kvinnlig detektiv: mellanmörk hy',
+    '🕵🏿‍♀' => 'kvinnlig detektiv: mörk hy',
+    '💂🏻‍♂' => 'manlig grenadjär: ljus hy',
+    '💂🏼‍♂' => 'manlig grenadjär: mellanljus hy',
+    '💂🏽‍♂' => 'manlig grenadjär: mellanfärgad hy',
+    '💂🏾‍♂' => 'manlig grenadjär: mellanmörk hy',
+    '💂🏿‍♂' => 'manlig grenadjär: mörk hy',
+    '💂🏻‍♀' => 'kvinnlig grenadjär: ljus hy',
+    '💂🏼‍♀' => 'kvinnlig grenadjär: mellanljus hy',
+    '💂🏽‍♀' => 'kvinnlig grenadjär: mellanfärgad hy',
+    '💂🏾‍♀' => 'kvinnlig grenadjär: mellanmörk hy',
+    '💂🏿‍♀' => 'kvinnlig grenadjär: mörk hy',
+    '👷🏻‍♂' => 'manlig byggarbetare: ljus hy',
+    '👷🏼‍♂' => 'manlig byggarbetare: mellanljus hy',
+    '👷🏽‍♂' => 'manlig byggarbetare: mellanfärgad hy',
+    '👷🏾‍♂' => 'manlig byggarbetare: mellanmörk hy',
+    '👷🏿‍♂' => 'manlig byggarbetare: mörk hy',
+    '👷🏻‍♀' => 'kvinnlig byggarbetare: ljus hy',
+    '👷🏼‍♀' => 'kvinnlig byggarbetare: mellanljus hy',
+    '👷🏽‍♀' => 'kvinnlig byggarbetare: mellanfärgad hy',
+    '👷🏾‍♀' => 'kvinnlig byggarbetare: mellanmörk hy',
+    '👷🏿‍♀' => 'kvinnlig byggarbetare: mörk hy',
+    '👳🏻‍♂' => 'man i turban: ljus hy',
+    '👳🏼‍♂' => 'man i turban: mellanljus hy',
+    '👳🏽‍♂' => 'man i turban: mellanfärgad hy',
+    '👳🏾‍♂' => 'man i turban: mellanmörk hy',
+    '👳🏿‍♂' => 'man i turban: mörk hy',
+    '👳🏻‍♀' => 'kvinna i turban: ljus hy',
+    '👳🏼‍♀' => 'kvinna i turban: mellanljus hy',
+    '👳🏽‍♀' => 'kvinna i turban: mellanfärgad hy',
+    '👳🏾‍♀' => 'kvinna i turban: mellanmörk hy',
+    '👳🏿‍♀' => 'kvinna i turban: mörk hy',
+    '🤵🏻‍♂' => 'man i smoking: ljus hy',
+    '🤵🏼‍♂' => 'man i smoking: mellanljus hy',
+    '🤵🏽‍♂' => 'man i smoking: mellanfärgad hy',
+    '🤵🏾‍♂' => 'man i smoking: mellanmörk hy',
+    '🤵🏿‍♂' => 'man i smoking: mörk hy',
+    '🤵🏻‍♀' => 'kvinna i smoking: ljus hy',
+    '🤵🏼‍♀' => 'kvinna i smoking: mellanljus hy',
+    '🤵🏽‍♀' => 'kvinna i smoking: mellanfärgad hy',
+    '🤵🏾‍♀' => 'kvinna i smoking: mellanmörk hy',
+    '🤵🏿‍♀' => 'kvinna i smoking: mörk hy',
+    '👰🏻‍♂' => 'man i brudslöja: ljus hy',
+    '👰🏼‍♂' => 'man i brudslöja: mellanljus hy',
+    '👰🏽‍♂' => 'man i brudslöja: mellanfärgad hy',
+    '👰🏾‍♂' => 'man i brudslöja: mellanmörk hy',
+    '👰🏿‍♂' => 'man i brudslöja: mörk hy',
+    '👰🏻‍♀' => 'kvinna i brudslöja: ljus hy',
+    '👰🏼‍♀' => 'kvinna i brudslöja: mellanljus hy',
+    '👰🏽‍♀' => 'kvinna i brudslöja: mellanfärgad hy',
+    '👰🏾‍♀' => 'kvinna i brudslöja: mellanmörk hy',
+    '👰🏿‍♀' => 'kvinna i brudslöja: mörk hy',
+    '👩🏻‍🍼' => 'kvinna matar spädbarn: ljus hy',
+    '👩🏼‍🍼' => 'kvinna matar spädbarn: mellanljus hy',
+    '👩🏽‍🍼' => 'kvinna matar spädbarn: mellanfärgad hy',
+    '👩🏾‍🍼' => 'kvinna matar spädbarn: mellanmörk hy',
+    '👩🏿‍🍼' => 'kvinna matar spädbarn: mörk hy',
+    '👨🏻‍🍼' => 'man matar spädbarn: ljus hy',
+    '👨🏼‍🍼' => 'man matar spädbarn: mellanljus hy',
+    '👨🏽‍🍼' => 'man matar spädbarn: mellanfärgad hy',
+    '👨🏾‍🍼' => 'man matar spädbarn: mellanmörk hy',
+    '👨🏿‍🍼' => 'man matar spädbarn: mörk hy',
+    '🧑🏻‍🍼' => 'person ammar spädbarn: ljus hy',
+    '🧑🏼‍🍼' => 'person ammar spädbarn: mellanljus hy',
+    '🧑🏽‍🍼' => 'person ammar spädbarn: mellanfärgad hy',
+    '🧑🏾‍🍼' => 'person ammar spädbarn: mellanmörk hy',
+    '🧑🏿‍🍼' => 'person ammar spädbarn: mörk hy',
+    '🧑🏻‍🎄' => 'könsneutral tomte: ljus hy',
+    '🧑🏼‍🎄' => 'könsneutral tomte: mellanljus hy',
+    '🧑🏽‍🎄' => 'könsneutral tomte: mellanfärgad hy',
+    '🧑🏾‍🎄' => 'könsneutral tomte: mellanmörk hy',
+    '🧑🏿‍🎄' => 'könsneutral tomte: mörk hy',
+    '🦸🏻‍♂' => 'manlig superhjälte: ljus hy',
+    '🦸🏼‍♂' => 'manlig superhjälte: mellanljus hy',
+    '🦸🏽‍♂' => 'manlig superhjälte: mellanfärgad hy',
+    '🦸🏾‍♂' => 'manlig superhjälte: mellanmörk hy',
+    '🦸🏿‍♂' => 'manlig superhjälte: mörk hy',
+    '🦸🏻‍♀' => 'kvinnlig superhjälte: ljus hy',
+    '🦸🏼‍♀' => 'kvinnlig superhjälte: mellanljus hy',
+    '🦸🏽‍♀' => 'kvinnlig superhjälte: mellanfärgad hy',
+    '🦸🏾‍♀' => 'kvinnlig superhjälte: mellanmörk hy',
+    '🦸🏿‍♀' => 'kvinnlig superhjälte: mörk hy',
+    '🦹🏻‍♂' => 'manlig superskurk: ljus hy',
+    '🦹🏼‍♂' => 'manlig superskurk: mellanljus hy',
+    '🦹🏽‍♂' => 'manlig superskurk: mellanfärgad hy',
+    '🦹🏾‍♂' => 'manlig superskurk: mellanmörk hy',
+    '🦹🏿‍♂' => 'manlig superskurk: mörk hy',
+    '🦹🏻‍♀' => 'kvinnlig superskurk: ljus hy',
+    '🦹🏼‍♀' => 'kvinnlig superskurk: mellanljus hy',
+    '🦹🏽‍♀' => 'kvinnlig superskurk: mellanfärgad hy',
+    '🦹🏾‍♀' => 'kvinnlig superskurk: mellanmörk hy',
+    '🦹🏿‍♀' => 'kvinnlig superskurk: mörk hy',
+    '🧙🏻‍♂' => 'manlig magiker: ljus hy',
+    '🧙🏼‍♂' => 'manlig magiker: mellanljus hy',
+    '🧙🏽‍♂' => 'manlig magiker: mellanfärgad hy',
+    '🧙🏾‍♂' => 'manlig magiker: mellanmörk hy',
+    '🧙🏿‍♂' => 'manlig magiker: mörk hy',
+    '🧙🏻‍♀' => 'kvinnlig magiker: ljus hy',
+    '🧙🏼‍♀' => 'kvinnlig magiker: mellanljus hy',
+    '🧙🏽‍♀' => 'kvinnlig magiker: mellanfärgad hy',
+    '🧙🏾‍♀' => 'kvinnlig magiker: mellanmörk hy',
+    '🧙🏿‍♀' => 'kvinnlig magiker: mörk hy',
+    '🧚🏻‍♂' => 'manlig älva: ljus hy',
+    '🧚🏼‍♂' => 'manlig älva: mellanljus hy',
+    '🧚🏽‍♂' => 'manlig älva: mellanfärgad hy',
+    '🧚🏾‍♂' => 'manlig älva: mellanmörk hy',
+    '🧚🏿‍♂' => 'manlig älva: mörk hy',
+    '🧚🏻‍♀' => 'kvinnlig fé: ljus hy',
+    '🧚🏼‍♀' => 'kvinnlig fé: mellanljus hy',
+    '🧚🏽‍♀' => 'kvinnlig fé: mellanfärgad hy',
+    '🧚🏾‍♀' => 'kvinnlig fé: mellanmörk hy',
+    '🧚🏿‍♀' => 'kvinnlig fé: mörk hy',
+    '🧛🏻‍♂' => 'manlig vampyr: ljus hy',
+    '🧛🏼‍♂' => 'manlig vampyr: mellanljus hy',
+    '🧛🏽‍♂' => 'manlig vampyr: mellanfärgad hy',
+    '🧛🏾‍♂' => 'manlig vampyr: mellanmörk hy',
+    '🧛🏿‍♂' => 'manlig vampyr: mörk hy',
+    '🧛🏻‍♀' => 'kvinnlig vampyr: ljus hy',
+    '🧛🏼‍♀' => 'kvinnlig vampyr: mellanljus hy',
+    '🧛🏽‍♀' => 'kvinnlig vampyr: mellanfärgad hy',
+    '🧛🏾‍♀' => 'kvinnlig vampyr: mellanmörk hy',
+    '🧛🏿‍♀' => 'kvinnlig vampyr: mörk hy',
+    '🧜🏻‍♂' => 'strömkarl: ljus hy',
+    '🧜🏼‍♂' => 'strömkarl: mellanljus hy',
+    '🧜🏽‍♂' => 'strömkarl: mellanfärgad hy',
+    '🧜🏾‍♂' => 'strömkarl: mellanmörk hy',
+    '🧜🏿‍♂' => 'strömkarl: mörk hy',
+    '🧜🏻‍♀' => 'sjöjungfru: ljus hy',
+    '🧜🏼‍♀' => 'sjöjungfru: mellanljus hy',
+    '🧜🏽‍♀' => 'sjöjungfru: mellanfärgad hy',
+    '🧜🏾‍♀' => 'sjöjungfru: mellanmörk hy',
+    '🧜🏿‍♀' => 'sjöjungfru: mörk hy',
+    '🧝🏻‍♂' => 'manlig alv: ljus hy',
+    '🧝🏼‍♂' => 'manlig alv: mellanljus hy',
+    '🧝🏽‍♂' => 'manlig alv: mellanfärgad hy',
+    '🧝🏾‍♂' => 'manlig alv: mellanmörk hy',
+    '🧝🏿‍♂' => 'manlig alv: mörk hy',
+    '🧝🏻‍♀' => 'kvinnlig alv: ljus hy',
+    '🧝🏼‍♀' => 'kvinnlig alv: mellanljus hy',
+    '🧝🏽‍♀' => 'kvinnlig alv: mellanfärgad hy',
+    '🧝🏾‍♀' => 'kvinnlig alv: mellanmörk hy',
+    '🧝🏿‍♀' => 'kvinnlig alv: mörk hy',
+    '💆🏻‍♂' => 'man som blir masserad: ljus hy',
+    '💆🏼‍♂' => 'man som blir masserad: mellanljus hy',
+    '💆🏽‍♂' => 'man som blir masserad: mellanfärgad hy',
+    '💆🏾‍♂' => 'man som blir masserad: mellanmörk hy',
+    '💆🏿‍♂' => 'man som blir masserad: mörk hy',
+    '💆🏻‍♀' => 'kvinna som blir masserad: ljus hy',
+    '💆🏼‍♀' => 'kvinna som blir masserad: mellanljus hy',
+    '💆🏽‍♀' => 'kvinna som blir masserad: mellanfärgad hy',
+    '💆🏾‍♀' => 'kvinna som blir masserad: mellanmörk hy',
+    '💆🏿‍♀' => 'kvinna som blir masserad: mörk hy',
+    '💇🏻‍♂' => 'man som får håret klippt: ljus hy',
+    '💇🏼‍♂' => 'man som får håret klippt: mellanljus hy',
+    '💇🏽‍♂' => 'man som får håret klippt: mellanfärgad hy',
+    '💇🏾‍♂' => 'man som får håret klippt: mellanmörk hy',
+    '💇🏿‍♂' => 'man som får håret klippt: mörk hy',
+    '💇🏻‍♀' => 'kvinna som får håret klippt: ljus hy',
+    '💇🏼‍♀' => 'kvinna som får håret klippt: mellanljus hy',
+    '💇🏽‍♀' => 'kvinna som får håret klippt: mellanfärgad hy',
+    '💇🏾‍♀' => 'kvinna som får håret klippt: mellanmörk hy',
+    '💇🏿‍♀' => 'kvinna som får håret klippt: mörk hy',
+    '🚶🏻‍♂' => 'man som går: ljus hy',
+    '🚶🏼‍♂' => 'man som går: mellanljus hy',
+    '🚶🏽‍♂' => 'man som går: mellanfärgad hy',
+    '🚶🏾‍♂' => 'man som går: mellanmörk hy',
+    '🚶🏿‍♂' => 'man som går: mörk hy',
+    '🚶🏻‍♀' => 'kvinna som går: ljus hy',
+    '🚶🏼‍♀' => 'kvinna som går: mellanljus hy',
+    '🚶🏽‍♀' => 'kvinna som går: mellanfärgad hy',
+    '🚶🏾‍♀' => 'kvinna som går: mellanmörk hy',
+    '🚶🏿‍♀' => 'kvinna som går: mörk hy',
+    '🚶🏻‍➡' => 'fotgängare: ljus hy, åt höger',
+    '🚶🏼‍➡' => 'fotgängare: mellanljus hy, åt höger',
+    '🚶🏽‍➡' => 'fotgängare: mellanfärgad hy, åt höger',
+    '🚶🏾‍➡' => 'fotgängare: mellanmörk hy, åt höger',
+    '🚶🏿‍➡' => 'fotgängare: mörk hy, åt höger',
+    '🧍🏻‍♂' => 'stående man: ljus hy',
+    '🧍🏼‍♂' => 'stående man: mellanljus hy',
+    '🧍🏽‍♂' => 'stående man: mellanfärgad hy',
+    '🧍🏾‍♂' => 'stående man: mellanmörk hy',
+    '🧍🏿‍♂' => 'stående man: mörk hy',
+    '🧍🏻‍♀' => 'stående kvinna: ljus hy',
+    '🧍🏼‍♀' => 'stående kvinna: mellanljus hy',
+    '🧍🏽‍♀' => 'stående kvinna: mellanfärgad hy',
+    '🧍🏾‍♀' => 'stående kvinna: mellanmörk hy',
+    '🧍🏿‍♀' => 'stående kvinna: mörk hy',
+    '🧎🏻‍♂' => 'knäsittande man: ljus hy',
+    '🧎🏼‍♂' => 'knäsittande man: mellanljus hy',
+    '🧎🏽‍♂' => 'knäsittande man: mellanfärgad hy',
+    '🧎🏾‍♂' => 'knäsittande man: mellanmörk hy',
+    '🧎🏿‍♂' => 'knäsittande man: mörk hy',
+    '🧎🏻‍♀' => 'knäsittande kvinna: ljus hy',
+    '🧎🏼‍♀' => 'knäsittande kvinna: mellanljus hy',
+    '🧎🏽‍♀' => 'knäsittande kvinna: mellanfärgad hy',
+    '🧎🏾‍♀' => 'knäsittande kvinna: mellanmörk hy',
+    '🧎🏿‍♀' => 'knäsittande kvinna: mörk hy',
+    '🧎🏻‍➡' => 'knäsittande person: ljus hy, åt höger',
+    '🧎🏼‍➡' => 'knäsittande person: mellanljus hy, åt höger',
+    '🧎🏽‍➡' => 'knäsittande person: mellanfärgad hy, åt höger',
+    '🧎🏾‍➡' => 'knäsittande person: mellanmörk hy, åt höger',
+    '🧎🏿‍➡' => 'knäsittande person: mörk hy, åt höger',
+    '🧑🏻‍🦯' => 'person med vit käpp: ljus hy',
+    '🧑🏼‍🦯' => 'person med vit käpp: mellanljus hy',
+    '🧑🏽‍🦯' => 'person med vit käpp: mellanfärgad hy',
+    '🧑🏾‍🦯' => 'person med vit käpp: mellanmörk hy',
+    '🧑🏿‍🦯' => 'person med vit käpp: mörk hy',
+    '👨🏻‍🦯' => 'man med vit käpp: ljus hy',
+    '👨🏼‍🦯' => 'man med vit käpp: mellanljus hy',
+    '👨🏽‍🦯' => 'man med vit käpp: mellanfärgad hy',
+    '👨🏾‍🦯' => 'man med vit käpp: mellanmörk hy',
+    '👨🏿‍🦯' => 'man med vit käpp: mörk hy',
+    '👩🏻‍🦯' => 'kvinna med vit käpp: ljus hy',
+    '👩🏼‍🦯' => 'kvinna med vit käpp: mellanljus hy',
+    '👩🏽‍🦯' => 'kvinna med vit käpp: mellanfärgad hy',
+    '👩🏾‍🦯' => 'kvinna med vit käpp: mellanmörk hy',
+    '👩🏿‍🦯' => 'kvinna med vit käpp: mörk hy',
+    '🧑🏻‍🦼' => 'person i permobil: ljus hy',
+    '🧑🏼‍🦼' => 'person i permobil: mellanljus hy',
+    '🧑🏽‍🦼' => 'person i permobil: mellanfärgad hy',
+    '🧑🏾‍🦼' => 'person i permobil: mellanmörk hy',
+    '🧑🏿‍🦼' => 'person i permobil: mörk hy',
+    '👨🏻‍🦼' => 'man i permobil: ljus hy',
+    '👨🏼‍🦼' => 'man i permobil: mellanljus hy',
+    '👨🏽‍🦼' => 'man i permobil: mellanfärgad hy',
+    '👨🏾‍🦼' => 'man i permobil: mellanmörk hy',
+    '👨🏿‍🦼' => 'man i permobil: mörk hy',
+    '👩🏻‍🦼' => 'kvinna i permobil: ljus hy',
+    '👩🏼‍🦼' => 'kvinna i permobil: mellanljus hy',
+    '👩🏽‍🦼' => 'kvinna i permobil: mellanfärgad hy',
+    '👩🏾‍🦼' => 'kvinna i permobil: mellanmörk hy',
+    '👩🏿‍🦼' => 'kvinna i permobil: mörk hy',
+    '🧑🏻‍🦽' => 'person i manuell rullstol: ljus hy',
+    '🧑🏼‍🦽' => 'person i manuell rullstol: mellanljus hy',
+    '🧑🏽‍🦽' => 'person i manuell rullstol: mellanfärgad hy',
+    '🧑🏾‍🦽' => 'person i manuell rullstol: mellanmörk hy',
+    '🧑🏿‍🦽' => 'person i manuell rullstol: mörk hy',
+    '👨🏻‍🦽' => 'man i manuell rullstol: ljus hy',
+    '👨🏼‍🦽' => 'man i manuell rullstol: mellanljus hy',
+    '👨🏽‍🦽' => 'man i manuell rullstol: mellanfärgad hy',
+    '👨🏾‍🦽' => 'man i manuell rullstol: mellanmörk hy',
+    '👨🏿‍🦽' => 'man i manuell rullstol: mörk hy',
+    '👩🏻‍🦽' => 'kvinna i manuell rullstol: ljus hy',
+    '👩🏼‍🦽' => 'kvinna i manuell rullstol: mellanljus hy',
+    '👩🏽‍🦽' => 'kvinna i manuell rullstol: mellanfärgad hy',
+    '👩🏾‍🦽' => 'kvinna i manuell rullstol: mellanmörk hy',
+    '👩🏿‍🦽' => 'kvinna i manuell rullstol: mörk hy',
+    '🏃🏻‍♂' => 'man som springer: ljus hy',
+    '🏃🏼‍♂' => 'man som springer: mellanljus hy',
+    '🏃🏽‍♂' => 'man som springer: mellanfärgad hy',
+    '🏃🏾‍♂' => 'man som springer: mellanmörk hy',
+    '🏃🏿‍♂' => 'man som springer: mörk hy',
+    '🏃🏻‍♀' => 'kvinna som springer: ljus hy',
+    '🏃🏼‍♀' => 'kvinna som springer: mellanljus hy',
+    '🏃🏽‍♀' => 'kvinna som springer: mellanfärgad hy',
+    '🏃🏾‍♀' => 'kvinna som springer: mellanmörk hy',
+    '🏃🏿‍♀' => 'kvinna som springer: mörk hy',
+    '🏃🏻‍➡' => 'person som springer: ljus hy, åt höger',
+    '🏃🏼‍➡' => 'person som springer: mellanljus hy, åt höger',
+    '🏃🏽‍➡' => 'person som springer: mellanfärgad hy, åt höger',
+    '🏃🏾‍➡' => 'person som springer: mellanmörk hy, åt höger',
+    '🏃🏿‍➡' => 'person som springer: mörk hy, åt höger',
+    '👯🏻‍♀' => 'kvinnor med kaninöron: ljus hy',
+    '👯🏼‍♀' => 'kvinnor med kaninöron: mellanljus hy',
+    '👯🏽‍♀' => 'kvinnor med kaninöron: mellanfärgad hy',
+    '👯🏾‍♀' => 'kvinnor med kaninöron: mellanmörk hy',
+    '👯🏿‍♀' => 'kvinnor med kaninöron: mörk hy',
+    '👯🏻‍♂' => 'män med kaninöron: ljus hy',
+    '👯🏼‍♂' => 'män med kaninöron: mellanljus hy',
+    '👯🏽‍♂' => 'män med kaninöron: mellanfärgad hy',
+    '👯🏾‍♂' => 'män med kaninöron: mellanmörk hy',
+    '👯🏿‍♂' => 'män med kaninöron: mörk hy',
+    '🧖🏻‍♂' => 'man i ångbastu: ljus hy',
+    '🧖🏼‍♂' => 'man i ångbastu: mellanljus hy',
+    '🧖🏽‍♂' => 'man i ångbastu: mellanfärgad hy',
+    '🧖🏾‍♂' => 'man i ångbastu: mellanmörk hy',
+    '🧖🏿‍♂' => 'man i ångbastu: mörk hy',
+    '🧖🏻‍♀' => 'kvinna i ångbastu: ljus hy',
+    '🧖🏼‍♀' => 'kvinna i ångbastu: mellanljus hy',
+    '🧖🏽‍♀' => 'kvinna i ångbastu: mellanfärgad hy',
+    '🧖🏾‍♀' => 'kvinna i ångbastu: mellanmörk hy',
+    '🧖🏿‍♀' => 'kvinna i ångbastu: mörk hy',
+    '🧗🏻‍♂' => 'man som klättrar: ljus hy',
+    '🧗🏼‍♂' => 'man som klättrar: mellanljus hy',
+    '🧗🏽‍♂' => 'man som klättrar: mellanfärgad hy',
+    '🧗🏾‍♂' => 'man som klättrar: mellanmörk hy',
+    '🧗🏿‍♂' => 'man som klättrar: mörk hy',
+    '🧗🏻‍♀' => 'kvinna som klättrar: ljus hy',
+    '🧗🏼‍♀' => 'kvinna som klättrar: mellanljus hy',
+    '🧗🏽‍♀' => 'kvinna som klättrar: mellanfärgad hy',
+    '🧗🏾‍♀' => 'kvinna som klättrar: mellanmörk hy',
+    '🧗🏿‍♀' => 'kvinna som klättrar: mörk hy',
+    '🏌🏻‍♂' => 'man som spelar golf: ljus hy',
+    '🏌🏼‍♂' => 'man som spelar golf: mellanljus hy',
+    '🏌🏽‍♂' => 'man som spelar golf: mellanfärgad hy',
+    '🏌🏾‍♂' => 'man som spelar golf: mellanmörk hy',
+    '🏌🏿‍♂' => 'man som spelar golf: mörk hy',
+    '🏌🏻‍♀' => 'kvinna som spelar golf: ljus hy',
+    '🏌🏼‍♀' => 'kvinna som spelar golf: mellanljus hy',
+    '🏌🏽‍♀' => 'kvinna som spelar golf: mellanfärgad hy',
+    '🏌🏾‍♀' => 'kvinna som spelar golf: mellanmörk hy',
+    '🏌🏿‍♀' => 'kvinna som spelar golf: mörk hy',
+    '🏄🏻‍♂' => 'man som surfar: ljus hy',
+    '🏄🏼‍♂' => 'man som surfar: mellanljus hy',
+    '🏄🏽‍♂' => 'man som surfar: mellanfärgad hy',
+    '🏄🏾‍♂' => 'man som surfar: mellanmörk hy',
+    '🏄🏿‍♂' => 'man som surfar: mörk hy',
+    '🏄🏻‍♀' => 'kvinna som surfar: ljus hy',
+    '🏄🏼‍♀' => 'kvinna som surfar: mellanljus hy',
+    '🏄🏽‍♀' => 'kvinna som surfar: mellanfärgad hy',
+    '🏄🏾‍♀' => 'kvinna som surfar: mellanmörk hy',
+    '🏄🏿‍♀' => 'kvinna som surfar: mörk hy',
+    '🚣🏻‍♂' => 'man som ror en båt: ljus hy',
+    '🚣🏼‍♂' => 'man som ror en båt: mellanljus hy',
+    '🚣🏽‍♂' => 'man som ror en båt: mellanfärgad hy',
+    '🚣🏾‍♂' => 'man som ror en båt: mellanmörk hy',
+    '🚣🏿‍♂' => 'man som ror en båt: mörk hy',
+    '🚣🏻‍♀' => 'kvinna som ror en båt: ljus hy',
+    '🚣🏼‍♀' => 'kvinna som ror en båt: mellanljus hy',
+    '🚣🏽‍♀' => 'kvinna som ror en båt: mellanfärgad hy',
+    '🚣🏾‍♀' => 'kvinna som ror en båt: mellanmörk hy',
+    '🚣🏿‍♀' => 'kvinna som ror en båt: mörk hy',
+    '🏊🏻‍♂' => 'man som simmar: ljus hy',
+    '🏊🏼‍♂' => 'man som simmar: mellanljus hy',
+    '🏊🏽‍♂' => 'man som simmar: mellanfärgad hy',
+    '🏊🏾‍♂' => 'man som simmar: mellanmörk hy',
+    '🏊🏿‍♂' => 'man som simmar: mörk hy',
+    '🏊🏻‍♀' => 'kvinna som simmar: ljus hy',
+    '🏊🏼‍♀' => 'kvinna som simmar: mellanljus hy',
+    '🏊🏽‍♀' => 'kvinna som simmar: mellanfärgad hy',
+    '🏊🏾‍♀' => 'kvinna som simmar: mellanmörk hy',
+    '🏊🏿‍♀' => 'kvinna som simmar: mörk hy',
+    '⛹🏻‍♂' => 'man med boll: ljus hy',
+    '⛹🏼‍♂' => 'man med boll: mellanljus hy',
+    '⛹🏽‍♂' => 'man med boll: mellanfärgad hy',
+    '⛹🏾‍♂' => 'man med boll: mellanmörk hy',
+    '⛹🏿‍♂' => 'man med boll: mörk hy',
+    '⛹🏻‍♀' => 'kvinna med boll: ljus hy',
+    '⛹🏼‍♀' => 'kvinna med boll: mellanljus hy',
+    '⛹🏽‍♀' => 'kvinna med boll: mellanfärgad hy',
+    '⛹🏾‍♀' => 'kvinna med boll: mellanmörk hy',
+    '⛹🏿‍♀' => 'kvinna med boll: mörk hy',
+    '🏋🏻‍♂' => 'man som lyfter tyngder: ljus hy',
+    '🏋🏼‍♂' => 'man som lyfter tyngder: mellanljus hy',
+    '🏋🏽‍♂' => 'man som lyfter tyngder: mellanfärgad hy',
+    '🏋🏾‍♂' => 'man som lyfter tyngder: mellanmörk hy',
+    '🏋🏿‍♂' => 'man som lyfter tyngder: mörk hy',
+    '🏋🏻‍♀' => 'kvinna som lyfter tyngder: ljus hy',
+    '🏋🏼‍♀' => 'kvinna som lyfter tyngder: mellanljus hy',
+    '🏋🏽‍♀' => 'kvinna som lyfter tyngder: mellanfärgad hy',
+    '🏋🏾‍♀' => 'kvinna som lyfter tyngder: mellanmörk hy',
+    '🏋🏿‍♀' => 'kvinna som lyfter tyngder: mörk hy',
+    '🚴🏻‍♂' => 'man som cyklar: ljus hy',
+    '🚴🏼‍♂' => 'man som cyklar: mellanljus hy',
+    '🚴🏽‍♂' => 'man som cyklar: mellanfärgad hy',
+    '🚴🏾‍♂' => 'man som cyklar: mellanmörk hy',
+    '🚴🏿‍♂' => 'man som cyklar: mörk hy',
+    '🚴🏻‍♀' => 'kvinna som cyklar: ljus hy',
+    '🚴🏼‍♀' => 'kvinna som cyklar: mellanljus hy',
+    '🚴🏽‍♀' => 'kvinna som cyklar: mellanfärgad hy',
+    '🚴🏾‍♀' => 'kvinna som cyklar: mellanmörk hy',
+    '🚴🏿‍♀' => 'kvinna som cyklar: mörk hy',
+    '🚵🏻‍♂' => 'man som cyklar på en mountainbike: ljus hy',
+    '🚵🏼‍♂' => 'man som cyklar på en mountainbike: mellanljus hy',
+    '🚵🏽‍♂' => 'man som cyklar på en mountainbike: mellanfärgad hy',
+    '🚵🏾‍♂' => 'man som cyklar på en mountainbike: mellanmörk hy',
+    '🚵🏿‍♂' => 'man som cyklar på en mountainbike: mörk hy',
+    '🚵🏻‍♀' => 'kvinna som cyklar på en mountainbike: ljus hy',
+    '🚵🏼‍♀' => 'kvinna som cyklar på en mountainbike: mellanljus hy',
+    '🚵🏽‍♀' => 'kvinna som cyklar på en mountainbike: mellanfärgad hy',
+    '🚵🏾‍♀' => 'kvinna som cyklar på en mountainbike: mellanmörk hy',
+    '🚵🏿‍♀' => 'kvinna som cyklar på en mountainbike: mörk hy',
+    '🤸🏻‍♂' => 'man som hjular: ljus hy',
+    '🤸🏼‍♂' => 'man som hjular: mellanljus hy',
+    '🤸🏽‍♂' => 'man som hjular: mellanfärgad hy',
+    '🤸🏾‍♂' => 'man som hjular: mellanmörk hy',
+    '🤸🏿‍♂' => 'man som hjular: mörk hy',
+    '🤸🏻‍♀' => 'kvinna som hjular: ljus hy',
+    '🤸🏼‍♀' => 'kvinna som hjular: mellanljus hy',
+    '🤸🏽‍♀' => 'kvinna som hjular: mellanfärgad hy',
+    '🤸🏾‍♀' => 'kvinna som hjular: mellanmörk hy',
+    '🤸🏿‍♀' => 'kvinna som hjular: mörk hy',
+    '🤼🏻‍♀' => 'brottande kvinnor: ljus hy',
+    '🤼🏼‍♀' => 'brottande kvinnor: mellanljus hy',
+    '🤼🏽‍♀' => 'brottande kvinnor: mellanfärgad hy',
+    '🤼🏾‍♀' => 'brottande kvinnor: mellanmörk hy',
+    '🤼🏿‍♀' => 'brottande kvinnor: mörk hy',
+    '🤼🏻‍♂' => 'brottande män: ljus hy',
+    '🤼🏼‍♂' => 'brottande män: mellanljus hy',
+    '🤼🏽‍♂' => 'brottande män: mellanfärgad hy',
+    '🤼🏾‍♂' => 'brottande män: mellanmörk hy',
+    '🤼🏿‍♂' => 'brottande män: mörk hy',
+    '🤽🏻‍♂' => 'man som spelar vattenpolo: ljus hy',
+    '🤽🏼‍♂' => 'man som spelar vattenpolo: mellanljus hy',
+    '🤽🏽‍♂' => 'man som spelar vattenpolo: mellanfärgad hy',
+    '🤽🏾‍♂' => 'man som spelar vattenpolo: mellanmörk hy',
+    '🤽🏿‍♂' => 'man som spelar vattenpolo: mörk hy',
+    '🤽🏻‍♀' => 'kvinna som spelar vattenpolo: ljus hy',
+    '🤽🏼‍♀' => 'kvinna som spelar vattenpolo: mellanljus hy',
+    '🤽🏽‍♀' => 'kvinna som spelar vattenpolo: mellanfärgad hy',
+    '🤽🏾‍♀' => 'kvinna som spelar vattenpolo: mellanmörk hy',
+    '🤽🏿‍♀' => 'kvinna som spelar vattenpolo: mörk hy',
+    '🤾🏻‍♂' => 'man som spelar handboll: ljus hy',
+    '🤾🏼‍♂' => 'man som spelar handboll: mellanljus hy',
+    '🤾🏽‍♂' => 'man som spelar handboll: mellanfärgad hy',
+    '🤾🏾‍♂' => 'man som spelar handboll: mellanmörk hy',
+    '🤾🏿‍♂' => 'man som spelar handboll: mörk hy',
+    '🤾🏻‍♀' => 'kvinna som spelar handboll: ljus hy',
+    '🤾🏼‍♀' => 'kvinna som spelar handboll: mellanljus hy',
+    '🤾🏽‍♀' => 'kvinna som spelar handboll: mellanfärgad hy',
+    '🤾🏾‍♀' => 'kvinna som spelar handboll: mellanmörk hy',
+    '🤾🏿‍♀' => 'kvinna som spelar handboll: mörk hy',
+    '🤹🏻‍♂' => 'man som jonglerar: ljus hy',
+    '🤹🏼‍♂' => 'man som jonglerar: mellanljus hy',
+    '🤹🏽‍♂' => 'man som jonglerar: mellanfärgad hy',
+    '🤹🏾‍♂' => 'man som jonglerar: mellanmörk hy',
+    '🤹🏿‍♂' => 'man som jonglerar: mörk hy',
+    '🤹🏻‍♀' => 'kvinna som jonglerar: ljus hy',
+    '🤹🏼‍♀' => 'kvinna som jonglerar: mellanljus hy',
+    '🤹🏽‍♀' => 'kvinna som jonglerar: mellanfärgad hy',
+    '🤹🏾‍♀' => 'kvinna som jonglerar: mellanmörk hy',
+    '🤹🏿‍♀' => 'kvinna som jonglerar: mörk hy',
+    '🧘🏻‍♂' => 'man i lotusposition: ljus hy',
+    '🧘🏼‍♂' => 'man i lotusposition: mellanljus hy',
+    '🧘🏽‍♂' => 'man i lotusposition: mellanfärgad hy',
+    '🧘🏾‍♂' => 'man i lotusposition: mellanmörk hy',
+    '🧘🏿‍♂' => 'man i lotusposition: mörk hy',
+    '🧘🏻‍♀' => 'kvinna i lotusposition: ljus hy',
+    '🧘🏼‍♀' => 'kvinna i lotusposition: mellanljus hy',
+    '🧘🏽‍♀' => 'kvinna i lotusposition: mellanfärgad hy',
+    '🧘🏾‍♀' => 'kvinna i lotusposition: mellanmörk hy',
+    '🧘🏿‍♀' => 'kvinna i lotusposition: mörk hy',
+    '🧑‍🦰' => 'person: rödhårig',
+    '🧑‍🦱' => 'person: lockigt hår',
+    '🧑‍🦳' => 'person: vithårig',
+    '🧑‍🦲' => 'person: skallig',
+    '👨‍🦰' => 'man: rödhårig',
+    '👨‍🦱' => 'man: lockigt hår',
+    '👨‍🦳' => 'man: vithårig',
+    '👨‍🦲' => 'man: skallig',
+    '👩‍🦰' => 'kvinna: rödhårig',
+    '👩‍🦱' => 'kvinna: lockigt hår',
+    '👩‍🦳' => 'kvinna: vithårig',
+    '👩‍🦲' => 'kvinna: skallig',
+    '🚶‍➡' => 'fotgängare: åt höger',
+    '🧎‍➡' => 'knäsittande person: åt höger',
+    '🏃‍➡' => 'person som springer: åt höger',
+    '👨‍👦' => 'familj: man, pojke',
+    '👨‍👧' => 'familj: man, flicka',
+    '👩‍👦' => 'familj: kvinna, pojke',
+    '👩‍👧' => 'familj: kvinna, flicka',
+    '😶‍🌫' => 'ansikte i moln',
+    '😮‍💨' => 'ansikte andas ut',
+    '🙂‍↕' => 'huvud skakar vertikalt',
+    '😵‍💫' => 'ansikte med spiralögon',
+    '❤‍🔥' => 'brinnande hjärta',
+    '❤‍🩹' => 'läkande hjärta',
+    '👁‍🗨' => 'öga i pratbubbla',
+    '🧔‍♂' => 'man: skägg',
+    '👱‍♂' => 'blond man',
+    '🧔‍♀' => 'kvinna: skägg',
+    '👱‍♀' => 'blond kvinna',
+    '🙍‍♂' => 'sur man',
+    '🙍‍♀' => 'sur kvinna',
+    '🙎‍♂' => 'plutande man',
+    '🙎‍♀' => 'plutande kvinna',
+    '🙅‍♂' => 'man gestikulerar NEJ',
+    '🙅‍♀' => 'kvinna gestikulerar NEJ',
+    '🙆‍♂' => 'man gestikulerar OK',
+    '🙆‍♀' => 'kvinna gestikulerar OK',
+    '💁‍♂' => 'hjälpande man',
+    '💁‍♀' => 'hjälpande kvinna',
+    '🙋‍♂' => 'man som räcker upp handen',
+    '🙋‍♀' => 'kvinna som räcker upp handen',
+    '🧏‍♂' => 'hörselskadad man',
+    '🧏‍♀' => 'hörselskadad kvinna',
+    '🙇‍♂' => 'bugande man',
+    '🙇‍♀' => 'bugande kvinna',
+    '🤦‍♂' => 'man som slår sig för pannan',
+    '🤦‍♀' => 'kvinna som slår sig för pannan',
+    '🤷‍♂' => 'man som rycker på axlarna',
+    '🤷‍♀' => 'kvinna som rycker på axlarna',
+    '🧑‍⚕' => 'läkare',
+    '👨‍⚕' => 'manlig läkare',
+    '👩‍⚕' => 'kvinnlig läkare',
+    '🧑‍🎓' => 'student',
+    '👨‍🎓' => 'manlig student',
+    '👩‍🎓' => 'kvinnlig student',
+    '🧑‍🏫' => 'lärare',
+    '👨‍🏫' => 'manlig lärare',
+    '👩‍🏫' => 'kvinnlig lärare',
+    '🧑‍⚖' => 'domare',
+    '👨‍⚖' => 'manlig domare',
+    '👩‍⚖' => 'kvinnlig domare',
+    '🧑‍🌾' => 'bonde',
+    '👨‍🌾' => 'manlig bonde',
+    '👩‍🌾' => 'kvinnlig bonde',
+    '🧑‍🍳' => 'kock',
+    '👨‍🍳' => 'manlig kock',
+    '👩‍🍳' => 'kvinnlig kock',
+    '🧑‍🔧' => 'mekaniker',
+    '👨‍🔧' => 'manlig mekaniker',
+    '👩‍🔧' => 'kvinnlig mekaniker',
+    '🧑‍🏭' => 'fabriksarbetare',
+    '👨‍🏭' => 'manlig fabriksarbetare',
+    '👩‍🏭' => 'kvinnlig fabriksarbetare',
+    '🧑‍💼' => 'kontorist',
+    '👨‍💼' => 'kontorstjänsteman',
+    '👩‍💼' => 'kontorstjänstekvinna',
+    '🧑‍🔬' => 'forskare',
+    '👨‍🔬' => 'manlig forskare',
+    '👩‍🔬' => 'kvinnlig forskare',
+    '🧑‍💻' => 'IT-tekniker',
+    '👨‍💻' => 'manlig IT-expert',
+    '👩‍💻' => 'kvinnlig IT-expert',
+    '🧑‍🎤' => 'sångare',
+    '👨‍🎤' => 'manlig sångare',
+    '👩‍🎤' => 'kvinnlig sångare',
+    '🧑‍🎨' => 'konstnär',
+    '👨‍🎨' => 'manlig konstnär',
+    '👩‍🎨' => 'kvinnlig konstnär',
+    '🧑‍✈' => 'pilot',
+    '👨‍✈' => 'manlig pilot',
+    '👩‍✈' => 'kvinnlig pilot',
+    '🧑‍🚀' => 'astronaut',
+    '👨‍🚀' => 'manlig astronaut',
+    '👩‍🚀' => 'kvinnlig astronaut',
+    '🧑‍🚒' => 'brandman',
+    '👨‍🚒' => 'manlig brandman',
+    '👩‍🚒' => 'kvinnlig brandman',
+    '👮‍♂' => 'manlig polis',
+    '👮‍♀' => 'kvinnlig polis',
+    '🕵‍♂' => 'manlig detektiv',
+    '🕵‍♀' => 'kvinnlig detektiv',
+    '💂‍♂' => 'manlig grenadjär',
+    '💂‍♀' => 'kvinnlig grenadjär',
+    '👷‍♂' => 'manlig byggarbetare',
+    '👷‍♀' => 'kvinnlig byggarbetare',
+    '👳‍♂' => 'man i turban',
+    '👳‍♀' => 'kvinna i turban',
+    '🤵‍♂' => 'man i smoking',
+    '🤵‍♀' => 'kvinna i smoking',
+    '👰‍♂' => 'man i brudslöja',
+    '👰‍♀' => 'kvinna i brudslöja',
+    '👩‍🍼' => 'kvinna matar spädbarn',
+    '👨‍🍼' => 'man matar spädbarn',
+    '🧑‍🍼' => 'person ammar spädbarn',
+    '🧑‍🎄' => 'könsneutral tomte',
+    '🦸‍♂' => 'manlig superhjälte',
+    '🦸‍♀' => 'kvinnlig superhjälte',
+    '🦹‍♂' => 'manlig superskurk',
+    '🦹‍♀' => 'kvinnlig superskurk',
+    '🧙‍♂' => 'manlig magiker',
+    '🧙‍♀' => 'kvinnlig magiker',
+    '🧚‍♂' => 'manlig älva',
+    '🧚‍♀' => 'kvinnlig fé',
+    '🧛‍♂' => 'manlig vampyr',
+    '🧛‍♀' => 'kvinnlig vampyr',
+    '🧜‍♂' => 'strömkarl',
+    '🧜‍♀' => 'sjöjungfru',
+    '🧝‍♂' => 'manlig alv',
+    '🧝‍♀' => 'kvinnlig alv',
+    '🧞‍♂' => 'manlig ande',
+    '🧞‍♀' => 'kvinnlig ande',
+    '🧟‍♂' => 'manlig zombie',
+    '🧟‍♀' => 'kvinnlig zombie',
+    '💆‍♂' => 'man som blir masserad',
+    '💆‍♀' => 'kvinna som blir masserad',
+    '💇‍♂' => 'man som får håret klippt',
+    '💇‍♀' => 'kvinna som får håret klippt',
+    '🚶‍♂' => 'man som går',
+    '🚶‍♀' => 'kvinna som går',
+    '🧍‍♂' => 'stående man',
+    '🧍‍♀' => 'stående kvinna',
+    '🧎‍♂' => 'knäsittande man',
+    '🧎‍♀' => 'knäsittande kvinna',
+    '🧑‍🦯' => 'person med vit käpp',
+    '👨‍🦯' => 'man med vit käpp',
+    '👩‍🦯' => 'kvinna med vit käpp',
+    '🧑‍🦼' => 'person i permobil',
+    '👨‍🦼' => 'man i permobil',
+    '👩‍🦼' => 'kvinna i permobil',
+    '🧑‍🦽' => 'person i manuell rullstol',
+    '👨‍🦽' => 'man i manuell rullstol',
+    '👩‍🦽' => 'kvinna i manuell rullstol',
+    '🏃‍♂' => 'man som springer',
+    '🏃‍♀' => 'kvinna som springer',
+    '🧑‍🩰' => 'balettdansare',
+    '👯‍♂' => 'män med kaninöron',
+    '👯‍♀' => 'kvinnor med kaninöron',
+    '🧖‍♂' => 'man i ångbastu',
+    '🧖‍♀' => 'kvinna i ångbastu',
+    '🧗‍♂' => 'man som klättrar',
+    '🧗‍♀' => 'kvinna som klättrar',
+    '🏌‍♂' => 'man som spelar golf',
+    '🏌‍♀' => 'kvinna som spelar golf',
+    '🏄‍♂' => 'man som surfar',
+    '🏄‍♀' => 'kvinna som surfar',
+    '🚣‍♂' => 'man som ror en båt',
+    '🚣‍♀' => 'kvinna som ror en båt',
+    '🏊‍♂' => 'man som simmar',
+    '🏊‍♀' => 'kvinna som simmar',
+    '⛹‍♂' => 'man med boll',
+    '⛹‍♀' => 'kvinna med boll',
+    '🏋‍♂' => 'man som lyfter tyngder',
+    '🏋‍♀' => 'kvinna som lyfter tyngder',
+    '🚴‍♂' => 'man som cyklar',
+    '🚴‍♀' => 'kvinna som cyklar',
+    '🚵‍♂' => 'man som cyklar på en mountainbike',
+    '🚵‍♀' => 'kvinna som cyklar på en mountainbike',
+    '🤸‍♂' => 'man som hjular',
+    '🤸‍♀' => 'kvinna som hjular',
+    '🤼‍♂' => 'brottande män',
+    '🤼‍♀' => 'brottande kvinnor',
+    '🤽‍♂' => 'man som spelar vattenpolo',
+    '🤽‍♀' => 'kvinna som spelar vattenpolo',
+    '🤾‍♂' => 'man som spelar handboll',
+    '🤾‍♀' => 'kvinna som spelar handboll',
+    '🤹‍♂' => 'man som jonglerar',
+    '🤹‍♀' => 'kvinna som jonglerar',
+    '🧘‍♂' => 'man i lotusposition',
+    '🧘‍♀' => 'kvinna i lotusposition',
+    '🧑‍🧒' => 'familj: vuxen, barn',
+    '🐕‍🦺' => 'servicehund',
+    '🐈‍⬛' => 'svart katt',
+    '🐻‍❄' => 'isbjörn',
+    '🐦‍⬛' => 'koltrast',
+    '🐦‍🔥' => 'fenix',
+    '🍋‍🟩' => 'lime',
+    '🍄‍🟫' => 'brun svamp',
+    '⛓‍💥' => 'bruten länk',
+    '🏳‍🌈' => 'regnbågsflagga',
+    '🏳‍⚧' => 'transflagga',
+    '🏴‍☠' => 'sjörövarflagga',
+    '👋🏻' => 'vinkande hand: ljus hy',
+    '👋🏼' => 'vinkande hand: mellanljus hy',
+    '👋🏽' => 'vinkande hand: mellanfärgad hy',
+    '👋🏾' => 'vinkande hand: mellanmörk hy',
+    '👋🏿' => 'vinkande hand: mörk hy',
+    '🤚🏻' => 'höjd handrygg: ljus hy',
+    '🤚🏼' => 'höjd handrygg: mellanljus hy',
+    '🤚🏽' => 'höjd handrygg: mellanfärgad hy',
+    '🤚🏾' => 'höjd handrygg: mellanmörk hy',
+    '🤚🏿' => 'höjd handrygg: mörk hy',
+    '🖐🏻' => 'hand med utspretade fingrar: ljus hy',
+    '🖐🏼' => 'hand med utspretade fingrar: mellanljus hy',
+    '🖐🏽' => 'hand med utspretade fingrar: mellanfärgad hy',
+    '🖐🏾' => 'hand med utspretade fingrar: mellanmörk hy',
+    '🖐🏿' => 'hand med utspretade fingrar: mörk hy',
+    '✋🏻' => 'hand i luften: ljus hy',
+    '✋🏼' => 'hand i luften: mellanljus hy',
+    '✋🏽' => 'hand i luften: mellanfärgad hy',
+    '✋🏾' => 'hand i luften: mellanmörk hy',
+    '✋🏿' => 'hand i luften: mörk hy',
+    '🖖🏻' => 'vulcan-hälsning: ljus hy',
+    '🖖🏼' => 'vulcan-hälsning: mellanljus hy',
+    '🖖🏽' => 'vulcan-hälsning: mellanfärgad hy',
+    '🖖🏾' => 'vulcan-hälsning: mellanmörk hy',
+    '🖖🏿' => 'vulcan-hälsning: mörk hy',
+    '🫱🏻' => 'hand som pekar till höger: ljus hy',
+    '🫱🏼' => 'hand som pekar till höger: mellanljus hy',
+    '🫱🏽' => 'hand som pekar till höger: mellanfärgad hy',
+    '🫱🏾' => 'hand som pekar till höger: mellanmörk hy',
+    '🫱🏿' => 'hand som pekar till höger: mörk hy',
+    '🫲🏻' => 'hand som pekar till vänster: ljus hy',
+    '🫲🏼' => 'hand som pekar till vänster: mellanljus hy',
+    '🫲🏽' => 'hand som pekar till vänster: mellanfärgad hy',
+    '🫲🏾' => 'hand som pekar till vänster: mellanmörk hy',
+    '🫲🏿' => 'hand som pekar till vänster: mörk hy',
+    '🫳🏻' => 'handflatan nedåt: ljus hy',
+    '🫳🏼' => 'handflatan nedåt: mellanljus hy',
+    '🫳🏽' => 'handflatan nedåt: mellanfärgad hy',
+    '🫳🏾' => 'handflatan nedåt: mellanmörk hy',
+    '🫳🏿' => 'handflatan nedåt: mörk hy',
+    '🫴🏻' => 'handflatan uppåt: ljus hy',
+    '🫴🏼' => 'handflatan uppåt: mellanljus hy',
+    '🫴🏽' => 'handflatan uppåt: mellanfärgad hy',
+    '🫴🏾' => 'handflatan uppåt: mellanmörk hy',
+    '🫴🏿' => 'handflatan uppåt: mörk hy',
+    '🫷🏻' => 'hand som knuffar åt vänster: ljus hy',
+    '🫷🏼' => 'hand som knuffar åt vänster: mellanljus hy',
+    '🫷🏽' => 'hand som knuffar åt vänster: mellanfärgad hy',
+    '🫷🏾' => 'hand som knuffar åt vänster: mellanmörk hy',
+    '🫷🏿' => 'hand som knuffar åt vänster: mörk hy',
+    '🫸🏻' => 'hand som knuffar åt höger: ljus hy',
+    '🫸🏼' => 'hand som knuffar åt höger: mellanljus hy',
+    '🫸🏽' => 'hand som knuffar åt höger: mellanfärgad hy',
+    '🫸🏾' => 'hand som knuffar åt höger: mellanmörk hy',
+    '🫸🏿' => 'hand som knuffar åt höger: mörk hy',
+    '👌🏻' => 'OK-tecken: ljus hy',
+    '👌🏼' => 'OK-tecken: mellanljus hy',
+    '👌🏽' => 'OK-tecken: mellanfärgad hy',
+    '👌🏾' => 'OK-tecken: mellanmörk hy',
+    '👌🏿' => 'OK-tecken: mörk hy',
+    '🤌🏻' => 'fingerportmonnä: ljus hy',
+    '🤌🏼' => 'fingerportmonnä: mellanljus hy',
+    '🤌🏽' => 'fingerportmonnä: mellanfärgad hy',
+    '🤌🏾' => 'fingerportmonnä: mellanmörk hy',
+    '🤌🏿' => 'fingerportmonnä: mörk hy',
+    '🤏🏻' => 'nypande hand: ljus hy',
+    '🤏🏼' => 'nypande hand: mellanljus hy',
+    '🤏🏽' => 'nypande hand: mellanfärgad hy',
+    '🤏🏾' => 'nypande hand: mellanmörk hy',
+    '🤏🏿' => 'nypande hand: mörk hy',
+    '✌🏻' => 'v-tecken: ljus hy',
+    '✌🏼' => 'v-tecken: mellanljus hy',
+    '✌🏽' => 'v-tecken: mellanfärgad hy',
+    '✌🏾' => 'v-tecken: mellanmörk hy',
+    '✌🏿' => 'v-tecken: mörk hy',
+    '🤞🏻' => 'korsade fingrar: ljus hy',
+    '🤞🏼' => 'korsade fingrar: mellanljus hy',
+    '🤞🏽' => 'korsade fingrar: mellanfärgad hy',
+    '🤞🏾' => 'korsade fingrar: mellanmörk hy',
+    '🤞🏿' => 'korsade fingrar: mörk hy',
+    '🫰🏻' => 'hand med tummen och pekfingret korsade: ljus hy',
+    '🫰🏼' => 'hand med tummen och pekfingret korsade: mellanljus hy',
+    '🫰🏽' => 'hand med tummen och pekfingret korsade: mellanfärgad hy',
+    '🫰🏾' => 'hand med tummen och pekfingret korsade: mellanmörk hy',
+    '🫰🏿' => 'hand med tummen och pekfingret korsade: mörk hy',
+    '🤟🏻' => 'jag älskar dig-gest: ljus hy',
+    '🤟🏼' => 'jag älskar dig-gest: mellanljus hy',
+    '🤟🏽' => 'jag älskar dig-gest: mellanfärgad hy',
+    '🤟🏾' => 'jag älskar dig-gest: mellanmörk hy',
+    '🤟🏿' => 'jag älskar dig-gest: mörk hy',
+    '🤘🏻' => 'djävulstecknet: ljus hy',
+    '🤘🏼' => 'djävulstecknet: mellanljus hy',
+    '🤘🏽' => 'djävulstecknet: mellanfärgad hy',
+    '🤘🏾' => 'djävulstecknet: mellanmörk hy',
+    '🤘🏿' => 'djävulstecknet: mörk hy',
+    '🤙🏻' => 'ring mig-hand: ljus hy',
+    '🤙🏼' => 'ring mig-hand: mellanljus hy',
+    '🤙🏽' => 'ring mig-hand: mellanfärgad hy',
+    '🤙🏾' => 'ring mig-hand: mellanmörk hy',
+    '🤙🏿' => 'ring mig-hand: mörk hy',
+    '👈🏻' => 'vänsterpekande finger: ljus hy',
+    '👈🏼' => 'vänsterpekande finger: mellanljus hy',
+    '👈🏽' => 'vänsterpekande finger: mellanfärgad hy',
+    '👈🏾' => 'vänsterpekande finger: mellanmörk hy',
+    '👈🏿' => 'vänsterpekande finger: mörk hy',
+    '👉🏻' => 'högerpekande finger: ljus hy',
+    '👉🏼' => 'högerpekande finger: mellanljus hy',
+    '👉🏽' => 'högerpekande finger: mellanfärgad hy',
+    '👉🏾' => 'högerpekande finger: mellanmörk hy',
+    '👉🏿' => 'högerpekande finger: mörk hy',
+    '👆🏻' => 'pekfinger upp: ljus hy',
+    '👆🏼' => 'pekfinger upp: mellanljus hy',
+    '👆🏽' => 'pekfinger upp: mellanfärgad hy',
+    '👆🏾' => 'pekfinger upp: mellanmörk hy',
+    '👆🏿' => 'pekfinger upp: mörk hy',
+    '🖕🏻' => 'långfinger upp: ljus hy',
+    '🖕🏼' => 'långfinger upp: mellanljus hy',
+    '🖕🏽' => 'långfinger upp: mellanfärgad hy',
+    '🖕🏾' => 'långfinger upp: mellanmörk hy',
+    '🖕🏿' => 'långfinger upp: mörk hy',
+    '👇🏻' => 'nedåtpekande finger: ljus hy',
+    '👇🏼' => 'nedåtpekande finger: mellanljus hy',
+    '👇🏽' => 'nedåtpekande finger: mellanfärgad hy',
+    '👇🏾' => 'nedåtpekande finger: mellanmörk hy',
+    '👇🏿' => 'nedåtpekande finger: mörk hy',
+    '☝🏻' => 'finger upp: ljus hy',
+    '☝🏼' => 'finger upp: mellanljus hy',
+    '☝🏽' => 'finger upp: mellanfärgad hy',
+    '☝🏾' => 'finger upp: mellanmörk hy',
+    '☝🏿' => 'finger upp: mörk hy',
+    '🫵🏻' => 'finger som pekar på mig: ljus hy',
+    '🫵🏼' => 'finger som pekar på mig: mellanljus hy',
+    '🫵🏽' => 'finger som pekar på mig: mellanfärgad hy',
+    '🫵🏾' => 'finger som pekar på mig: mellanmörk hy',
+    '🫵🏿' => 'finger som pekar på mig: mörk hy',
+    '👍🏻' => 'tummen upp: ljus hy',
+    '👍🏼' => 'tummen upp: mellanljus hy',
+    '👍🏽' => 'tummen upp: mellanfärgad hy',
+    '👍🏾' => 'tummen upp: mellanmörk hy',
+    '👍🏿' => 'tummen upp: mörk hy',
+    '👎🏻' => 'tummen ned: ljus hy',
+    '👎🏼' => 'tummen ned: mellanljus hy',
+    '👎🏽' => 'tummen ned: mellanfärgad hy',
+    '👎🏾' => 'tummen ned: mellanmörk hy',
+    '👎🏿' => 'tummen ned: mörk hy',
+    '✊🏻' => 'knytnäve i luften: ljus hy',
+    '✊🏼' => 'knytnäve i luften: mellanljus hy',
+    '✊🏽' => 'knytnäve i luften: mellanfärgad hy',
+    '✊🏾' => 'knytnäve i luften: mellanmörk hy',
+    '✊🏿' => 'knytnäve i luften: mörk hy',
+    '👊🏻' => 'knuten hand: ljus hy',
+    '👊🏼' => 'knuten hand: mellanljus hy',
+    '👊🏽' => 'knuten hand: mellanfärgad hy',
+    '👊🏾' => 'knuten hand: mellanmörk hy',
+    '👊🏿' => 'knuten hand: mörk hy',
+    '🤛🏻' => 'vänstervänd näve: ljus hy',
+    '🤛🏼' => 'vänstervänd näve: mellanljus hy',
+    '🤛🏽' => 'vänstervänd näve: mellanfärgad hy',
+    '🤛🏾' => 'vänstervänd näve: mellanmörk hy',
+    '🤛🏿' => 'vänstervänd näve: mörk hy',
+    '🤜🏻' => 'högervänd näve: ljus hy',
+    '🤜🏼' => 'högervänd näve: mellanljus hy',
+    '🤜🏽' => 'högervänd näve: mellanfärgad hy',
+    '🤜🏾' => 'högervänd näve: mellanmörk hy',
+    '🤜🏿' => 'högervänd näve: mörk hy',
+    '👏🏻' => 'klappande händer: ljus hy',
+    '👏🏼' => 'klappande händer: mellanljus hy',
+    '👏🏽' => 'klappande händer: mellanfärgad hy',
+    '👏🏾' => 'klappande händer: mellanmörk hy',
+    '👏🏿' => 'klappande händer: mörk hy',
+    '🙌🏻' => 'båda händerna i luften: ljus hy',
+    '🙌🏼' => 'båda händerna i luften: mellanljus hy',
+    '🙌🏽' => 'båda händerna i luften: mellanfärgad hy',
+    '🙌🏾' => 'båda händerna i luften: mellanmörk hy',
+    '🙌🏿' => 'båda händerna i luften: mörk hy',
+    '🫶🏻' => 'handhjärta: ljus hy',
+    '🫶🏼' => 'handhjärta: mellanljus hy',
+    '🫶🏽' => 'handhjärta: mellanfärgad hy',
+    '🫶🏾' => 'handhjärta: mellanmörk hy',
+    '🫶🏿' => 'handhjärta: mörk hy',
+    '👐🏻' => 'öppna händer: ljus hy',
+    '👐🏼' => 'öppna händer: mellanljus hy',
+    '👐🏽' => 'öppna händer: mellanfärgad hy',
+    '👐🏾' => 'öppna händer: mellanmörk hy',
+    '👐🏿' => 'öppna händer: mörk hy',
+    '🤲🏻' => 'handflatorna upp: ljus hy',
+    '🤲🏼' => 'handflatorna upp: mellanljus hy',
+    '🤲🏽' => 'handflatorna upp: mellanfärgad hy',
+    '🤲🏾' => 'handflatorna upp: mellanmörk hy',
+    '🤲🏿' => 'handflatorna upp: mörk hy',
+    '🤝🏻' => 'handskakning: ljus hy',
+    '🤝🏼' => 'handskakning: mellanljus hy',
+    '🤝🏽' => 'handskakning: mellanfärgad hy',
+    '🤝🏾' => 'handskakning: mellanmörk hy',
+    '🤝🏿' => 'handskakning: mörk hy',
+    '🙏🏻' => 'beende händer: ljus hy',
+    '🙏🏼' => 'beende händer: mellanljus hy',
+    '🙏🏽' => 'beende händer: mellanfärgad hy',
+    '🙏🏾' => 'beende händer: mellanmörk hy',
+    '🙏🏿' => 'beende händer: mörk hy',
+    '✍🏻' => 'hand som skriver: ljus hy',
+    '✍🏼' => 'hand som skriver: mellanljus hy',
+    '✍🏽' => 'hand som skriver: mellanfärgad hy',
+    '✍🏾' => 'hand som skriver: mellanmörk hy',
+    '✍🏿' => 'hand som skriver: mörk hy',
+    '💅🏻' => 'nagellack: ljus hy',
+    '💅🏼' => 'nagellack: mellanljus hy',
+    '💅🏽' => 'nagellack: mellanfärgad hy',
+    '💅🏾' => 'nagellack: mellanmörk hy',
+    '💅🏿' => 'nagellack: mörk hy',
+    '🤳🏻' => 'selfie: ljus hy',
+    '🤳🏼' => 'selfie: mellanljus hy',
+    '🤳🏽' => 'selfie: mellanfärgad hy',
+    '🤳🏾' => 'selfie: mellanmörk hy',
+    '🤳🏿' => 'selfie: mörk hy',
+    '💪🏻' => 'spänd biceps: ljus hy',
+    '💪🏼' => 'spänd biceps: mellanljus hy',
+    '💪🏽' => 'spänd biceps: mellanfärgad hy',
+    '💪🏾' => 'spänd biceps: mellanmörk hy',
+    '💪🏿' => 'spänd biceps: mörk hy',
+    '🦵🏻' => 'ben: ljus hy',
+    '🦵🏼' => 'ben: mellanljus hy',
+    '🦵🏽' => 'ben: mellanfärgad hy',
+    '🦵🏾' => 'ben: mellanmörk hy',
+    '🦵🏿' => 'ben: mörk hy',
+    '🦶🏻' => 'fot: ljus hy',
+    '🦶🏼' => 'fot: mellanljus hy',
+    '🦶🏽' => 'fot: mellanfärgad hy',
+    '🦶🏾' => 'fot: mellanmörk hy',
+    '🦶🏿' => 'fot: mörk hy',
+    '👂🏻' => 'öra: ljus hy',
+    '👂🏼' => 'öra: mellanljus hy',
+    '👂🏽' => 'öra: mellanfärgad hy',
+    '👂🏾' => 'öra: mellanmörk hy',
+    '👂🏿' => 'öra: mörk hy',
+    '🦻🏻' => 'öra med hörapparat: ljus hy',
+    '🦻🏼' => 'öra med hörapparat: mellanljus hy',
+    '🦻🏽' => 'öra med hörapparat: mellanfärgad hy',
+    '🦻🏾' => 'öra med hörapparat: mellanmörk hy',
+    '🦻🏿' => 'öra med hörapparat: mörk hy',
+    '👃🏻' => 'näsa: ljus hy',
+    '👃🏼' => 'näsa: mellanljus hy',
+    '👃🏽' => 'näsa: mellanfärgad hy',
+    '👃🏾' => 'näsa: mellanmörk hy',
+    '👃🏿' => 'näsa: mörk hy',
+    '👶🏻' => 'bebis: ljus hy',
+    '👶🏼' => 'bebis: mellanljus hy',
+    '👶🏽' => 'bebis: mellanfärgad hy',
+    '👶🏾' => 'bebis: mellanmörk hy',
+    '👶🏿' => 'bebis: mörk hy',
+    '🧒🏻' => 'barn: ljus hy',
+    '🧒🏼' => 'barn: mellanljus hy',
+    '🧒🏽' => 'barn: mellanfärgad hy',
+    '🧒🏾' => 'barn: mellanmörk hy',
+    '🧒🏿' => 'barn: mörk hy',
+    '👦🏻' => 'pojke: ljus hy',
+    '👦🏼' => 'pojke: mellanljus hy',
+    '👦🏽' => 'pojke: mellanfärgad hy',
+    '👦🏾' => 'pojke: mellanmörk hy',
+    '👦🏿' => 'pojke: mörk hy',
+    '👧🏻' => 'flicka: ljus hy',
+    '👧🏼' => 'flicka: mellanljus hy',
+    '👧🏽' => 'flicka: mellanfärgad hy',
+    '👧🏾' => 'flicka: mellanmörk hy',
+    '👧🏿' => 'flicka: mörk hy',
+    '🧑🏻' => 'person: ljus hy',
+    '🧑🏼' => 'person: mellanljus hy',
+    '🧑🏽' => 'person: mellanfärgad hy',
+    '🧑🏾' => 'person: mellanmörk hy',
+    '🧑🏿' => 'person: mörk hy',
+    '👱🏻' => 'blond person: ljus hy',
+    '👱🏼' => 'blond person: mellanljus hy',
+    '👱🏽' => 'blond person: mellanfärgad hy',
+    '👱🏾' => 'blond person: mellanmörk hy',
+    '👱🏿' => 'blond person: mörk hy',
+    '👨🏻' => 'man: ljus hy',
+    '👨🏼' => 'man: mellanljus hy',
+    '👨🏽' => 'man: mellanfärgad hy',
+    '👨🏾' => 'man: mellanmörk hy',
+    '👨🏿' => 'man: mörk hy',
+    '🧔🏻' => 'man med skägg: ljus hy',
+    '🧔🏼' => 'man med skägg: mellanljus hy',
+    '🧔🏽' => 'man med skägg: mellanfärgad hy',
+    '🧔🏾' => 'man med skägg: mellanmörk hy',
+    '🧔🏿' => 'man med skägg: mörk hy',
+    '👩🏻' => 'kvinna: ljus hy',
+    '👩🏼' => 'kvinna: mellanljus hy',
+    '👩🏽' => 'kvinna: mellanfärgad hy',
+    '👩🏾' => 'kvinna: mellanmörk hy',
+    '👩🏿' => 'kvinna: mörk hy',
+    '🧓🏻' => 'äldre person: ljus hy',
+    '🧓🏼' => 'äldre person: mellanljus hy',
+    '🧓🏽' => 'äldre person: mellanfärgad hy',
+    '🧓🏾' => 'äldre person: mellanmörk hy',
+    '🧓🏿' => 'äldre person: mörk hy',
+    '👴🏻' => 'gammal man: ljus hy',
+    '👴🏼' => 'gammal man: mellanljus hy',
+    '👴🏽' => 'gammal man: mellanfärgad hy',
+    '👴🏾' => 'gammal man: mellanmörk hy',
+    '👴🏿' => 'gammal man: mörk hy',
+    '👵🏻' => 'gammal kvinna: ljus hy',
+    '👵🏼' => 'gammal kvinna: mellanljus hy',
+    '👵🏽' => 'gammal kvinna: mellanfärgad hy',
+    '👵🏾' => 'gammal kvinna: mellanmörk hy',
+    '👵🏿' => 'gammal kvinna: mörk hy',
+    '🙍🏻' => 'sur person: ljus hy',
+    '🙍🏼' => 'sur person: mellanljus hy',
+    '🙍🏽' => 'sur person: mellanfärgad hy',
+    '🙍🏾' => 'sur person: mellanmörk hy',
+    '🙍🏿' => 'sur person: mörk hy',
+    '🙎🏻' => 'plutande person: ljus hy',
+    '🙎🏼' => 'plutande person: mellanljus hy',
+    '🙎🏽' => 'plutande person: mellanfärgad hy',
+    '🙎🏾' => 'plutande person: mellanmörk hy',
+    '🙎🏿' => 'plutande person: mörk hy',
+    '🙅🏻' => 'person gestikulerar NEJ: ljus hy',
+    '🙅🏼' => 'person gestikulerar NEJ: mellanljus hy',
+    '🙅🏽' => 'person gestikulerar NEJ: mellanfärgad hy',
+    '🙅🏾' => 'person gestikulerar NEJ: mellanmörk hy',
+    '🙅🏿' => 'person gestikulerar NEJ: mörk hy',
+    '🙆🏻' => 'person gestikulerar OK: ljus hy',
+    '🙆🏼' => 'person gestikulerar OK: mellanljus hy',
+    '🙆🏽' => 'person gestikulerar OK: mellanfärgad hy',
+    '🙆🏾' => 'person gestikulerar OK: mellanmörk hy',
+    '🙆🏿' => 'person gestikulerar OK: mörk hy',
+    '💁🏻' => 'receptionist: ljus hy',
+    '💁🏼' => 'receptionist: mellanljus hy',
+    '💁🏽' => 'receptionist: mellanfärgad hy',
+    '💁🏾' => 'receptionist: mellanmörk hy',
+    '💁🏿' => 'receptionist: mörk hy',
+    '🙋🏻' => 'person som räcker upp handen: ljus hy',
+    '🙋🏼' => 'person som räcker upp handen: mellanljus hy',
+    '🙋🏽' => 'person som räcker upp handen: mellanfärgad hy',
+    '🙋🏾' => 'person som räcker upp handen: mellanmörk hy',
+    '🙋🏿' => 'person som räcker upp handen: mörk hy',
+    '🧏🏻' => 'hörselskadad person: ljus hy',
+    '🧏🏼' => 'hörselskadad person: mellanljus hy',
+    '🧏🏽' => 'hörselskadad person: mellanfärgad hy',
+    '🧏🏾' => 'hörselskadad person: mellanmörk hy',
+    '🧏🏿' => 'hörselskadad person: mörk hy',
+    '🙇🏻' => 'bugande person: ljus hy',
+    '🙇🏼' => 'bugande person: mellanljus hy',
+    '🙇🏽' => 'bugande person: mellanfärgad hy',
+    '🙇🏾' => 'bugande person: mellanmörk hy',
+    '🙇🏿' => 'bugande person: mörk hy',
+    '🤦🏻' => 'person som slår sig för pannan: ljus hy',
+    '🤦🏼' => 'person som slår sig för pannan: mellanljus hy',
+    '🤦🏽' => 'person som slår sig för pannan: mellanfärgad hy',
+    '🤦🏾' => 'person som slår sig för pannan: mellanmörk hy',
+    '🤦🏿' => 'person som slår sig för pannan: mörk hy',
+    '🤷🏻' => 'person som rycker på axlarna: ljus hy',
+    '🤷🏼' => 'person som rycker på axlarna: mellanljus hy',
+    '🤷🏽' => 'person som rycker på axlarna: mellanfärgad hy',
+    '🤷🏾' => 'person som rycker på axlarna: mellanmörk hy',
+    '🤷🏿' => 'person som rycker på axlarna: mörk hy',
+    '👮🏻' => 'polis: ljus hy',
+    '👮🏼' => 'polis: mellanljus hy',
+    '👮🏽' => 'polis: mellanfärgad hy',
+    '👮🏾' => 'polis: mellanmörk hy',
+    '👮🏿' => 'polis: mörk hy',
+    '🕵🏻' => 'detektiv: ljus hy',
+    '🕵🏼' => 'detektiv: mellanljus hy',
+    '🕵🏽' => 'detektiv: mellanfärgad hy',
+    '🕵🏾' => 'detektiv: mellanmörk hy',
+    '🕵🏿' => 'detektiv: mörk hy',
+    '💂🏻' => 'vakt: ljus hy',
+    '💂🏼' => 'vakt: mellanljus hy',
+    '💂🏽' => 'vakt: mellanfärgad hy',
+    '💂🏾' => 'vakt: mellanmörk hy',
+    '💂🏿' => 'vakt: mörk hy',
+    '🥷🏻' => 'ninja: ljus hy',
+    '🥷🏼' => 'ninja: mellanljus hy',
+    '🥷🏽' => 'ninja: mellanfärgad hy',
+    '🥷🏾' => 'ninja: mellanmörk hy',
+    '🥷🏿' => 'ninja: mörk hy',
+    '👷🏻' => 'byggarbetare: ljus hy',
+    '👷🏼' => 'byggarbetare: mellanljus hy',
+    '👷🏽' => 'byggarbetare: mellanfärgad hy',
+    '👷🏾' => 'byggarbetare: mellanmörk hy',
+    '👷🏿' => 'byggarbetare: mörk hy',
+    '🫅🏻' => 'person med krona: ljus hy',
+    '🫅🏼' => 'person med krona: mellanljus hy',
+    '🫅🏽' => 'person med krona: mellanfärgad hy',
+    '🫅🏾' => 'person med krona: mellanmörk hy',
+    '🫅🏿' => 'person med krona: mörk hy',
+    '🤴🏻' => 'prins: ljus hy',
+    '🤴🏼' => 'prins: mellanljus hy',
+    '🤴🏽' => 'prins: mellanfärgad hy',
+    '🤴🏾' => 'prins: mellanmörk hy',
+    '🤴🏿' => 'prins: mörk hy',
+    '👸🏻' => 'prinsessa: ljus hy',
+    '👸🏼' => 'prinsessa: mellanljus hy',
+    '👸🏽' => 'prinsessa: mellanfärgad hy',
+    '👸🏾' => 'prinsessa: mellanmörk hy',
+    '👸🏿' => 'prinsessa: mörk hy',
+    '👳🏻' => 'man med turban: ljus hy',
+    '👳🏼' => 'man med turban: mellanljus hy',
+    '👳🏽' => 'man med turban: mellanfärgad hy',
+    '👳🏾' => 'man med turban: mellanmörk hy',
+    '👳🏿' => 'man med turban: mörk hy',
+    '👲🏻' => 'man med kinesisk hatt: ljus hy',
+    '👲🏼' => 'man med kinesisk hatt: mellanljus hy',
+    '👲🏽' => 'man med kinesisk hatt: mellanfärgad hy',
+    '👲🏾' => 'man med kinesisk hatt: mellanmörk hy',
+    '👲🏿' => 'man med kinesisk hatt: mörk hy',
+    '🧕🏻' => 'kvinna i sjal: ljus hy',
+    '🧕🏼' => 'kvinna i sjal: mellanljus hy',
+    '🧕🏽' => 'kvinna i sjal: mellanfärgad hy',
+    '🧕🏾' => 'kvinna i sjal: mellanmörk hy',
+    '🧕🏿' => 'kvinna i sjal: mörk hy',
+    '🤵🏻' => 'person i smoking: ljus hy',
+    '🤵🏼' => 'person i smoking: mellanljus hy',
+    '🤵🏽' => 'person i smoking: mellanfärgad hy',
+    '🤵🏾' => 'person i smoking: mellanmörk hy',
+    '🤵🏿' => 'person i smoking: mörk hy',
+    '👰🏻' => 'person i brudslöja: ljus hy',
+    '👰🏼' => 'person i brudslöja: mellanljus hy',
+    '👰🏽' => 'person i brudslöja: mellanfärgad hy',
+    '👰🏾' => 'person i brudslöja: mellanmörk hy',
+    '👰🏿' => 'person i brudslöja: mörk hy',
+    '🤰🏻' => 'gravid kvinna: ljus hy',
+    '🤰🏼' => 'gravid kvinna: mellanljus hy',
+    '🤰🏽' => 'gravid kvinna: mellanfärgad hy',
+    '🤰🏾' => 'gravid kvinna: mellanmörk hy',
+    '🤰🏿' => 'gravid kvinna: mörk hy',
+    '🫃🏻' => 'gravid man: ljus hy',
+    '🫃🏼' => 'gravid man: mellanljus hy',
+    '🫃🏽' => 'gravid man: mellanfärgad hy',
+    '🫃🏾' => 'gravid man: mellanmörk hy',
+    '🫃🏿' => 'gravid man: mörk hy',
+    '🫄🏻' => 'gravid person: ljus hy',
+    '🫄🏼' => 'gravid person: mellanljus hy',
+    '🫄🏽' => 'gravid person: mellanfärgad hy',
+    '🫄🏾' => 'gravid person: mellanmörk hy',
+    '🫄🏿' => 'gravid person: mörk hy',
+    '🤱🏻' => 'amning: ljus hy',
+    '🤱🏼' => 'amning: mellanljus hy',
+    '🤱🏽' => 'amning: mellanfärgad hy',
+    '🤱🏾' => 'amning: mellanmörk hy',
+    '🤱🏿' => 'amning: mörk hy',
+    '👼🏻' => 'bebisängel: ljus hy',
+    '👼🏼' => 'bebisängel: mellanljus hy',
+    '👼🏽' => 'bebisängel: mellanfärgad hy',
+    '👼🏾' => 'bebisängel: mellanmörk hy',
+    '👼🏿' => 'bebisängel: mörk hy',
+    '🎅🏻' => 'jultomte: ljus hy',
+    '🎅🏼' => 'jultomte: mellanljus hy',
+    '🎅🏽' => 'jultomte: mellanfärgad hy',
+    '🎅🏾' => 'jultomte: mellanmörk hy',
+    '🎅🏿' => 'jultomte: mörk hy',
+    '🤶🏻' => 'tomtemor: ljus hy',
+    '🤶🏼' => 'tomtemor: mellanljus hy',
+    '🤶🏽' => 'tomtemor: mellanfärgad hy',
+    '🤶🏾' => 'tomtemor: mellanmörk hy',
+    '🤶🏿' => 'tomtemor: mörk hy',
+    '🦸🏻' => 'superhjälte: ljus hy',
+    '🦸🏼' => 'superhjälte: mellanljus hy',
+    '🦸🏽' => 'superhjälte: mellanfärgad hy',
+    '🦸🏾' => 'superhjälte: mellanmörk hy',
+    '🦸🏿' => 'superhjälte: mörk hy',
+    '🦹🏻' => 'superskurk: ljus hy',
+    '🦹🏼' => 'superskurk: mellanljus hy',
+    '🦹🏽' => 'superskurk: mellanfärgad hy',
+    '🦹🏾' => 'superskurk: mellanmörk hy',
+    '🦹🏿' => 'superskurk: mörk hy',
+    '🧙🏻' => 'magiker: ljus hy',
+    '🧙🏼' => 'magiker: mellanljus hy',
+    '🧙🏽' => 'magiker: mellanfärgad hy',
+    '🧙🏾' => 'magiker: mellanmörk hy',
+    '🧙🏿' => 'magiker: mörk hy',
+    '🧚🏻' => 'fé: ljus hy',
+    '🧚🏼' => 'fé: mellanljus hy',
+    '🧚🏽' => 'fé: mellanfärgad hy',
+    '🧚🏾' => 'fé: mellanmörk hy',
+    '🧚🏿' => 'fé: mörk hy',
+    '🧛🏻' => 'vampyr: ljus hy',
+    '🧛🏼' => 'vampyr: mellanljus hy',
+    '🧛🏽' => 'vampyr: mellanfärgad hy',
+    '🧛🏾' => 'vampyr: mellanmörk hy',
+    '🧛🏿' => 'vampyr: mörk hy',
+    '🧜🏻' => 'vattenväsen: ljus hy',
+    '🧜🏼' => 'vattenväsen: mellanljus hy',
+    '🧜🏽' => 'vattenväsen: mellanfärgad hy',
+    '🧜🏾' => 'vattenväsen: mellanmörk hy',
+    '🧜🏿' => 'vattenväsen: mörk hy',
+    '🧝🏻' => 'alv: ljus hy',
+    '🧝🏼' => 'alv: mellanljus hy',
+    '🧝🏽' => 'alv: mellanfärgad hy',
+    '🧝🏾' => 'alv: mellanmörk hy',
+    '🧝🏿' => 'alv: mörk hy',
+    '💆🏻' => 'person som blir masserad: ljus hy',
+    '💆🏼' => 'person som blir masserad: mellanljus hy',
+    '💆🏽' => 'person som blir masserad: mellanfärgad hy',
+    '💆🏾' => 'person som blir masserad: mellanmörk hy',
+    '💆🏿' => 'person som blir masserad: mörk hy',
+    '💇🏻' => 'person som får håret klippt: ljus hy',
+    '💇🏼' => 'person som får håret klippt: mellanljus hy',
+    '💇🏽' => 'person som får håret klippt: mellanfärgad hy',
+    '💇🏾' => 'person som får håret klippt: mellanmörk hy',
+    '💇🏿' => 'person som får håret klippt: mörk hy',
+    '🚶🏻' => 'fotgängare: ljus hy',
+    '🚶🏼' => 'fotgängare: mellanljus hy',
+    '🚶🏽' => 'fotgängare: mellanfärgad hy',
+    '🚶🏾' => 'fotgängare: mellanmörk hy',
+    '🚶🏿' => 'fotgängare: mörk hy',
+    '🧍🏻' => 'stående person: ljus hy',
+    '🧍🏼' => 'stående person: mellanljus hy',
+    '🧍🏽' => 'stående person: mellanfärgad hy',
+    '🧍🏾' => 'stående person: mellanmörk hy',
+    '🧍🏿' => 'stående person: mörk hy',
+    '🧎🏻' => 'knäsittande person: ljus hy',
+    '🧎🏼' => 'knäsittande person: mellanljus hy',
+    '🧎🏽' => 'knäsittande person: mellanfärgad hy',
+    '🧎🏾' => 'knäsittande person: mellanmörk hy',
+    '🧎🏿' => 'knäsittande person: mörk hy',
+    '🏃🏻' => 'person som springer: ljus hy',
+    '🏃🏼' => 'person som springer: mellanljus hy',
+    '🏃🏽' => 'person som springer: mellanfärgad hy',
+    '🏃🏾' => 'person som springer: mellanmörk hy',
+    '🏃🏿' => 'person som springer: mörk hy',
+    '💃🏻' => 'dansande kvinna: ljus hy',
+    '💃🏼' => 'dansande kvinna: mellanljus hy',
+    '💃🏽' => 'dansande kvinna: mellanfärgad hy',
+    '💃🏾' => 'dansande kvinna: mellanmörk hy',
+    '💃🏿' => 'dansande kvinna: mörk hy',
+    '🕺🏻' => 'dansande man: ljus hy',
+    '🕺🏼' => 'dansande man: mellanljus hy',
+    '🕺🏽' => 'dansande man: mellanfärgad hy',
+    '🕺🏾' => 'dansande man: mellanmörk hy',
+    '🕺🏿' => 'dansande man: mörk hy',
+    '🕴🏻' => 'svävande man i kostym: ljus hy',
+    '🕴🏼' => 'svävande man i kostym: mellanljus hy',
+    '🕴🏽' => 'svävande man i kostym: mellanfärgad hy',
+    '🕴🏾' => 'svävande man i kostym: mellanmörk hy',
+    '🕴🏿' => 'svävande man i kostym: mörk hy',
+    '👯🏻' => 'personer med kaninöron: ljus hy',
+    '👯🏼' => 'personer med kaninöron: mellanljus hy',
+    '👯🏽' => 'personer med kaninöron: mellanfärgad hy',
+    '👯🏾' => 'personer med kaninöron: mellanmörk hy',
+    '👯🏿' => 'personer med kaninöron: mörk hy',
+    '🧖🏻' => 'person i ångbastu: ljus hy',
+    '🧖🏼' => 'person i ångbastu: mellanljus hy',
+    '🧖🏽' => 'person i ångbastu: mellanfärgad hy',
+    '🧖🏾' => 'person i ångbastu: mellanmörk hy',
+    '🧖🏿' => 'person i ångbastu: mörk hy',
+    '🧗🏻' => 'person som klättrar: ljus hy',
+    '🧗🏼' => 'person som klättrar: mellanljus hy',
+    '🧗🏽' => 'person som klättrar: mellanfärgad hy',
+    '🧗🏾' => 'person som klättrar: mellanmörk hy',
+    '🧗🏿' => 'person som klättrar: mörk hy',
+    '🏇🏻' => 'hästkapplöpning: ljus hy',
+    '🏇🏼' => 'hästkapplöpning: mellanljus hy',
+    '🏇🏽' => 'hästkapplöpning: mellanfärgad hy',
+    '🏇🏾' => 'hästkapplöpning: mellanmörk hy',
+    '🏇🏿' => 'hästkapplöpning: mörk hy',
+    '🏂🏻' => 'snowboardåkare: ljus hy',
+    '🏂🏼' => 'snowboardåkare: mellanljus hy',
+    '🏂🏽' => 'snowboardåkare: mellanfärgad hy',
+    '🏂🏾' => 'snowboardåkare: mellanmörk hy',
+    '🏂🏿' => 'snowboardåkare: mörk hy',
+    '🏌🏻' => 'person som spelar golf: ljus hy',
+    '🏌🏼' => 'person som spelar golf: mellanljus hy',
+    '🏌🏽' => 'person som spelar golf: mellanfärgad hy',
+    '🏌🏾' => 'person som spelar golf: mellanmörk hy',
+    '🏌🏿' => 'person som spelar golf: mörk hy',
+    '🏄🏻' => 'person som surfar: ljus hy',
+    '🏄🏼' => 'person som surfar: mellanljus hy',
+    '🏄🏽' => 'person som surfar: mellanfärgad hy',
+    '🏄🏾' => 'person som surfar: mellanmörk hy',
+    '🏄🏿' => 'person som surfar: mörk hy',
+    '🚣🏻' => 'person som ror en båt: ljus hy',
+    '🚣🏼' => 'person som ror en båt: mellanljus hy',
+    '🚣🏽' => 'person som ror en båt: mellanfärgad hy',
+    '🚣🏾' => 'person som ror en båt: mellanmörk hy',
+    '🚣🏿' => 'person som ror en båt: mörk hy',
+    '🏊🏻' => 'person som simmar: ljus hy',
+    '🏊🏼' => 'person som simmar: mellanljus hy',
+    '🏊🏽' => 'person som simmar: mellanfärgad hy',
+    '🏊🏾' => 'person som simmar: mellanmörk hy',
+    '🏊🏿' => 'person som simmar: mörk hy',
+    '⛹🏻' => 'person med boll: ljus hy',
+    '⛹🏼' => 'person med boll: mellanljus hy',
+    '⛹🏽' => 'person med boll: mellanfärgad hy',
+    '⛹🏾' => 'person med boll: mellanmörk hy',
+    '⛹🏿' => 'person med boll: mörk hy',
+    '🏋🏻' => 'person som lyfter tyngder: ljus hy',
+    '🏋🏼' => 'person som lyfter tyngder: mellanljus hy',
+    '🏋🏽' => 'person som lyfter tyngder: mellanfärgad hy',
+    '🏋🏾' => 'person som lyfter tyngder: mellanmörk hy',
+    '🏋🏿' => 'person som lyfter tyngder: mörk hy',
+    '🚴🏻' => 'person som cyklar: ljus hy',
+    '🚴🏼' => 'person som cyklar: mellanljus hy',
+    '🚴🏽' => 'person som cyklar: mellanfärgad hy',
+    '🚴🏾' => 'person som cyklar: mellanmörk hy',
+    '🚴🏿' => 'person som cyklar: mörk hy',
+    '🚵🏻' => 'person som cyklar på en mountainbike: ljus hy',
+    '🚵🏼' => 'person som cyklar på en mountainbike: mellanljus hy',
+    '🚵🏽' => 'person som cyklar på en mountainbike: mellanfärgad hy',
+    '🚵🏾' => 'person som cyklar på en mountainbike: mellanmörk hy',
+    '🚵🏿' => 'person som cyklar på en mountainbike: mörk hy',
+    '🤸🏻' => 'person som hjular: ljus hy',
+    '🤸🏼' => 'person som hjular: mellanljus hy',
+    '🤸🏽' => 'person som hjular: mellanfärgad hy',
+    '🤸🏾' => 'person som hjular: mellanmörk hy',
+    '🤸🏿' => 'person som hjular: mörk hy',
+    '🤼🏻' => 'brottande personer: ljus hy',
+    '🤼🏼' => 'brottande personer: mellanljus hy',
+    '🤼🏽' => 'brottande personer: mellanfärgad hy',
+    '🤼🏾' => 'brottande personer: mellanmörk hy',
+    '🤼🏿' => 'brottande personer: mörk hy',
+    '🤽🏻' => 'person som spelar vattenpolo: ljus hy',
+    '🤽🏼' => 'person som spelar vattenpolo: mellanljus hy',
+    '🤽🏽' => 'person som spelar vattenpolo: mellanfärgad hy',
+    '🤽🏾' => 'person som spelar vattenpolo: mellanmörk hy',
+    '🤽🏿' => 'person som spelar vattenpolo: mörk hy',
+    '🤾🏻' => 'person som spelar handboll: ljus hy',
+    '🤾🏼' => 'person som spelar handboll: mellanljus hy',
+    '🤾🏽' => 'person som spelar handboll: mellanfärgad hy',
+    '🤾🏾' => 'person som spelar handboll: mellanmörk hy',
+    '🤾🏿' => 'person som spelar handboll: mörk hy',
+    '🤹🏻' => 'person som jonglerar: ljus hy',
+    '🤹🏼' => 'person som jonglerar: mellanljus hy',
+    '🤹🏽' => 'person som jonglerar: mellanfärgad hy',
+    '🤹🏾' => 'person som jonglerar: mellanmörk hy',
+    '🤹🏿' => 'person som jonglerar: mörk hy',
+    '🧘🏻' => 'person i lotusposition: ljus hy',
+    '🧘🏼' => 'person i lotusposition: mellanljus hy',
+    '🧘🏽' => 'person i lotusposition: mellanfärgad hy',
+    '🧘🏾' => 'person i lotusposition: mellanmörk hy',
+    '🧘🏿' => 'person i lotusposition: mörk hy',
+    '🛀🏻' => 'person som badar: ljus hy',
+    '🛀🏼' => 'person som badar: mellanljus hy',
+    '🛀🏽' => 'person som badar: mellanfärgad hy',
+    '🛀🏾' => 'person som badar: mellanmörk hy',
+    '🛀🏿' => 'person som badar: mörk hy',
+    '🛌🏻' => 'person i en säng: ljus hy',
+    '🛌🏼' => 'person i en säng: mellanljus hy',
+    '🛌🏽' => 'person i en säng: mellanfärgad hy',
+    '🛌🏾' => 'person i en säng: mellanmörk hy',
+    '🛌🏿' => 'person i en säng: mörk hy',
+    '👭🏻' => 'två kvinnor håller hand: ljus hy',
+    '👭🏼' => 'två kvinnor håller hand: mellanljus hy',
+    '👭🏽' => 'två kvinnor håller hand: mellanfärgad hy',
+    '👭🏾' => 'två kvinnor håller hand: mellanmörk hy',
+    '👭🏿' => 'två kvinnor håller hand: mörk hy',
+    '👫🏻' => 'man och kvinna håller hand: ljus hy',
+    '👫🏼' => 'man och kvinna håller hand: mellanljus hy',
+    '👫🏽' => 'man och kvinna håller hand: mellanfärgad hy',
+    '👫🏾' => 'man och kvinna håller hand: mellanmörk hy',
+    '👫🏿' => 'man och kvinna håller hand: mörk hy',
+    '👬🏻' => 'två män håller hand: ljus hy',
+    '👬🏼' => 'två män håller hand: mellanljus hy',
+    '👬🏽' => 'två män håller hand: mellanfärgad hy',
+    '👬🏾' => 'två män håller hand: mellanmörk hy',
+    '👬🏿' => 'två män håller hand: mörk hy',
+    '💏🏻' => 'puss: ljus hy',
+    '💏🏼' => 'puss: mellanljus hy',
+    '💏🏽' => 'puss: mellanfärgad hy',
+    '💏🏾' => 'puss: mellanmörk hy',
+    '💏🏿' => 'puss: mörk hy',
+    '💑🏻' => 'par med hjärta: ljus hy',
+    '💑🏼' => 'par med hjärta: mellanljus hy',
+    '💑🏽' => 'par med hjärta: mellanfärgad hy',
+    '💑🏾' => 'par med hjärta: mellanmörk hy',
+    '💑🏿' => 'par med hjärta: mörk hy',
+    '🇦🇨' => 'flagga: Ascension',
+    '🇦🇩' => 'flagga: Andorra',
+    '🇦🇪' => 'flagga: Förenade Arabemiraten',
+    '🇦🇫' => 'flagga: Afghanistan',
+    '🇦🇬' => 'flagga: Antigua och Barbuda',
+    '🇦🇮' => 'flagga: Anguilla',
+    '🇦🇱' => 'flagga: Albanien',
+    '🇦🇲' => 'flagga: Armenien',
+    '🇦🇴' => 'flagga: Angola',
+    '🇦🇶' => 'flagga: Antarktis',
+    '🇦🇷' => 'flagga: Argentina',
+    '🇦🇸' => 'flagga: Amerikanska Samoa',
+    '🇦🇹' => 'flagga: Österrike',
+    '🇦🇺' => 'flagga: Australien',
+    '🇦🇼' => 'flagga: Aruba',
+    '🇦🇽' => 'flagga: Åland',
+    '🇦🇿' => 'flagga: Azerbajdzjan',
+    '🇧🇦' => 'flagga: Bosnien och Hercegovina',
+    '🇧🇧' => 'flagga: Barbados',
+    '🇧🇩' => 'flagga: Bangladesh',
+    '🇧🇪' => 'flagga: Belgien',
+    '🇧🇫' => 'flagga: Burkina Faso',
+    '🇧🇬' => 'flagga: Bulgarien',
+    '🇧🇭' => 'flagga: Bahrain',
+    '🇧🇮' => 'flagga: Burundi',
+    '🇧🇯' => 'flagga: Benin',
+    '🇧🇱' => 'flagga: S:t Barthélemy',
+    '🇧🇲' => 'flagga: Bermuda',
+    '🇧🇳' => 'flagga: Brunei',
+    '🇧🇴' => 'flagga: Bolivia',
+    '🇧🇶' => 'flagga: Karibiska Nederländerna',
+    '🇧🇷' => 'flagga: Brasilien',
+    '🇧🇸' => 'flagga: Bahamas',
+    '🇧🇹' => 'flagga: Bhutan',
+    '🇧🇻' => 'flagga: Bouvetön',
+    '🇧🇼' => 'flagga: Botswana',
+    '🇧🇾' => 'flagga: Belarus',
+    '🇧🇿' => 'flagga: Belize',
+    '🇨🇦' => 'flagga: Kanada',
+    '🇨🇨' => 'flagga: Kokosöarna',
+    '🇨🇩' => 'flagga: Kongo-Kinshasa',
+    '🇨🇫' => 'flagga: Centralafrikanska republiken',
+    '🇨🇬' => 'flagga: Kongo-Brazzaville',
+    '🇨🇭' => 'flagga: Schweiz',
+    '🇨🇮' => 'flagga: Elfenbenskusten',
+    '🇨🇰' => 'flagga: Cooköarna',
+    '🇨🇱' => 'flagga: Chile',
+    '🇨🇲' => 'flagga: Kamerun',
+    '🇨🇳' => 'flagga: Kina',
+    '🇨🇴' => 'flagga: Colombia',
+    '🇨🇵' => 'flagga: Clippertonön',
+    '🇨🇶' => 'flagga: Sark',
+    '🇨🇷' => 'flagga: Costa Rica',
+    '🇨🇺' => 'flagga: Kuba',
+    '🇨🇻' => 'flagga: Kap Verde',
+    '🇨🇼' => 'flagga: Curaçao',
+    '🇨🇽' => 'flagga: Julön',
+    '🇨🇾' => 'flagga: Cypern',
+    '🇨🇿' => 'flagga: Tjeckien',
+    '🇩🇪' => 'flagga: Tyskland',
+    '🇩🇬' => 'flagga: Diego Garcia',
+    '🇩🇯' => 'flagga: Djibouti',
+    '🇩🇰' => 'flagga: Danmark',
+    '🇩🇲' => 'flagga: Dominica',
+    '🇩🇴' => 'flagga: Dominikanska republiken',
+    '🇩🇿' => 'flagga: Algeriet',
+    '🇪🇦' => 'flagga: Ceuta och Melilla',
+    '🇪🇨' => 'flagga: Ecuador',
+    '🇪🇪' => 'flagga: Estland',
+    '🇪🇬' => 'flagga: Egypten',
+    '🇪🇭' => 'flagga: Västsahara',
+    '🇪🇷' => 'flagga: Eritrea',
+    '🇪🇸' => 'flagga: Spanien',
+    '🇪🇹' => 'flagga: Etiopien',
+    '🇪🇺' => 'flagga: Europeiska unionen',
+    '🇫🇮' => 'flagga: Finland',
+    '🇫🇯' => 'flagga: Fiji',
+    '🇫🇰' => 'flagga: Falklandsöarna',
+    '🇫🇲' => 'flagga: Mikronesien',
+    '🇫🇴' => 'flagga: Färöarna',
+    '🇫🇷' => 'flagga: Frankrike',
+    '🇬🇦' => 'flagga: Gabon',
+    '🇬🇧' => 'flagga: Storbritannien',
+    '🇬🇩' => 'flagga: Grenada',
+    '🇬🇪' => 'flagga: Georgien',
+    '🇬🇫' => 'flagga: Franska Guyana',
+    '🇬🇬' => 'flagga: Guernsey',
+    '🇬🇭' => 'flagga: Ghana',
+    '🇬🇮' => 'flagga: Gibraltar',
+    '🇬🇱' => 'flagga: Grönland',
+    '🇬🇲' => 'flagga: Gambia',
+    '🇬🇳' => 'flagga: Guinea',
+    '🇬🇵' => 'flagga: Guadeloupe',
+    '🇬🇶' => 'flagga: Ekvatorialguinea',
+    '🇬🇷' => 'flagga: Grekland',
+    '🇬🇸' => 'flagga: Sydgeorgien och Sydsandwichöarna',
+    '🇬🇹' => 'flagga: Guatemala',
+    '🇬🇺' => 'flagga: Guam',
+    '🇬🇼' => 'flagga: Guinea-Bissau',
+    '🇬🇾' => 'flagga: Guyana',
+    '🇭🇰' => 'flagga: Hongkong SAR',
+    '🇭🇲' => 'flagga: Heardön och McDonaldöarna',
+    '🇭🇳' => 'flagga: Honduras',
+    '🇭🇷' => 'flagga: Kroatien',
+    '🇭🇹' => 'flagga: Haiti',
+    '🇭🇺' => 'flagga: Ungern',
+    '🇮🇨' => 'flagga: Kanarieöarna',
+    '🇮🇩' => 'flagga: Indonesien',
+    '🇮🇪' => 'flagga: Irland',
+    '🇮🇱' => 'flagga: Israel',
+    '🇮🇲' => 'flagga: Isle of Man',
+    '🇮🇳' => 'flagga: Indien',
+    '🇮🇴' => 'flagga: Brittiska territoriet i Indiska oceanen',
+    '🇮🇶' => 'flagga: Irak',
+    '🇮🇷' => 'flagga: Iran',
+    '🇮🇸' => 'flagga: Island',
+    '🇮🇹' => 'flagga: Italien',
+    '🇯🇪' => 'flagga: Jersey',
+    '🇯🇲' => 'flagga: Jamaica',
+    '🇯🇴' => 'flagga: Jordanien',
+    '🇯🇵' => 'flagga: Japan',
+    '🇰🇪' => 'flagga: Kenya',
+    '🇰🇬' => 'flagga: Kirgizistan',
+    '🇰🇭' => 'flagga: Kambodja',
+    '🇰🇮' => 'flagga: Kiribati',
+    '🇰🇲' => 'flagga: Komorerna',
+    '🇰🇳' => 'flagga: S:t Kitts och Nevis',
+    '🇰🇵' => 'flagga: Nordkorea',
+    '🇰🇷' => 'flagga: Sydkorea',
+    '🇰🇼' => 'flagga: Kuwait',
+    '🇰🇾' => 'flagga: Caymanöarna',
+    '🇰🇿' => 'flagga: Kazakstan',
+    '🇱🇦' => 'flagga: Laos',
+    '🇱🇧' => 'flagga: Libanon',
+    '🇱🇨' => 'flagga: S:t Lucia',
+    '🇱🇮' => 'flagga: Liechtenstein',
+    '🇱🇰' => 'flagga: Sri Lanka',
+    '🇱🇷' => 'flagga: Liberia',
+    '🇱🇸' => 'flagga: Lesotho',
+    '🇱🇹' => 'flagga: Litauen',
+    '🇱🇺' => 'flagga: Luxemburg',
+    '🇱🇻' => 'flagga: Lettland',
+    '🇱🇾' => 'flagga: Libyen',
+    '🇲🇦' => 'flagga: Marocko',
+    '🇲🇨' => 'flagga: Monaco',
+    '🇲🇩' => 'flagga: Moldavien',
+    '🇲🇪' => 'flagga: Montenegro',
+    '🇲🇫' => 'flagga: Saint-Martin',
+    '🇲🇬' => 'flagga: Madagaskar',
+    '🇲🇭' => 'flagga: Marshallöarna',
+    '🇲🇰' => 'flagga: Nordmakedonien',
+    '🇲🇱' => 'flagga: Mali',
+    '🇲🇲' => 'flagga: Myanmar (Burma)',
+    '🇲🇳' => 'flagga: Mongoliet',
+    '🇲🇴' => 'flagga: Macao SAR',
+    '🇲🇵' => 'flagga: Nordmarianerna',
+    '🇲🇶' => 'flagga: Martinique',
+    '🇲🇷' => 'flagga: Mauretanien',
+    '🇲🇸' => 'flagga: Montserrat',
+    '🇲🇹' => 'flagga: Malta',
+    '🇲🇺' => 'flagga: Mauritius',
+    '🇲🇻' => 'flagga: Maldiverna',
+    '🇲🇼' => 'flagga: Malawi',
+    '🇲🇽' => 'flagga: Mexiko',
+    '🇲🇾' => 'flagga: Malaysia',
+    '🇲🇿' => 'flagga: Moçambique',
+    '🇳🇦' => 'flagga: Namibia',
+    '🇳🇨' => 'flagga: Nya Kaledonien',
+    '🇳🇪' => 'flagga: Niger',
+    '🇳🇫' => 'flagga: Norfolkön',
+    '🇳🇬' => 'flagga: Nigeria',
+    '🇳🇮' => 'flagga: Nicaragua',
+    '🇳🇱' => 'flagga: Nederländerna',
+    '🇳🇴' => 'flagga: Norge',
+    '🇳🇵' => 'flagga: Nepal',
+    '🇳🇷' => 'flagga: Nauru',
+    '🇳🇺' => 'flagga: Niue',
+    '🇳🇿' => 'flagga: Nya Zeeland',
+    '🇴🇲' => 'flagga: Oman',
+    '🇵🇦' => 'flagga: Panama',
+    '🇵🇪' => 'flagga: Peru',
+    '🇵🇫' => 'flagga: Franska Polynesien',
+    '🇵🇬' => 'flagga: Papua Nya Guinea',
+    '🇵🇭' => 'flagga: Filippinerna',
+    '🇵🇰' => 'flagga: Pakistan',
+    '🇵🇱' => 'flagga: Polen',
+    '🇵🇲' => 'flagga: S:t Pierre och Miquelon',
+    '🇵🇳' => 'flagga: Pitcairnöarna',
+    '🇵🇷' => 'flagga: Puerto Rico',
+    '🇵🇸' => 'flagga: Palestinska territorierna',
+    '🇵🇹' => 'flagga: Portugal',
+    '🇵🇼' => 'flagga: Palau',
+    '🇵🇾' => 'flagga: Paraguay',
+    '🇶🇦' => 'flagga: Qatar',
+    '🇷🇪' => 'flagga: Réunion',
+    '🇷🇴' => 'flagga: Rumänien',
+    '🇷🇸' => 'flagga: Serbien',
+    '🇷🇺' => 'flagga: Ryssland',
+    '🇷🇼' => 'flagga: Rwanda',
+    '🇸🇦' => 'flagga: Saudiarabien',
+    '🇸🇧' => 'flagga: Salomonöarna',
+    '🇸🇨' => 'flagga: Seychellerna',
+    '🇸🇩' => 'flagga: Sudan',
+    '🇸🇪' => 'flagga: Sverige',
+    '🇸🇬' => 'flagga: Singapore',
+    '🇸🇭' => 'flagga: S:t Helena',
+    '🇸🇮' => 'flagga: Slovenien',
+    '🇸🇯' => 'flagga: Svalbard och Jan Mayen',
+    '🇸🇰' => 'flagga: Slovakien',
+    '🇸🇱' => 'flagga: Sierra Leone',
+    '🇸🇲' => 'flagga: San Marino',
+    '🇸🇳' => 'flagga: Senegal',
+    '🇸🇴' => 'flagga: Somalia',
+    '🇸🇷' => 'flagga: Surinam',
+    '🇸🇸' => 'flagga: Sydsudan',
+    '🇸🇹' => 'flagga: São Tomé och Príncipe',
+    '🇸🇻' => 'flagga: El Salvador',
+    '🇸🇽' => 'flagga: Sint Maarten',
+    '🇸🇾' => 'flagga: Syrien',
+    '🇸🇿' => 'flagga: Eswatini',
+    '🇹🇦' => 'flagga: Tristan da Cunha',
+    '🇹🇨' => 'flagga: Turks- och Caicosöarna',
+    '🇹🇩' => 'flagga: Tchad',
+    '🇹🇫' => 'flagga: Franska sydterritorierna',
+    '🇹🇬' => 'flagga: Togo',
+    '🇹🇭' => 'flagga: Thailand',
+    '🇹🇯' => 'flagga: Tadzjikistan',
+    '🇹🇰' => 'flagga: Tokelauöarna',
+    '🇹🇱' => 'flagga: Östtimor',
+    '🇹🇲' => 'flagga: Turkmenistan',
+    '🇹🇳' => 'flagga: Tunisien',
+    '🇹🇴' => 'flagga: Tonga',
+    '🇹🇷' => 'flagga: Turkiet',
+    '🇹🇹' => 'flagga: Trinidad och Tobago',
+    '🇹🇻' => 'flagga: Tuvalu',
+    '🇹🇼' => 'flagga: Taiwan',
+    '🇹🇿' => 'flagga: Tanzania',
+    '🇺🇦' => 'flagga: Ukraina',
+    '🇺🇬' => 'flagga: Uganda',
+    '🇺🇲' => 'flagga: USA:s yttre öar',
+    '🇺🇳' => 'flagga: Förenta Nationerna',
+    '🇺🇸' => 'flagga: USA',
+    '🇺🇾' => 'flagga: Uruguay',
+    '🇺🇿' => 'flagga: Uzbekistan',
+    '🇻🇦' => 'flagga: Vatikanstaten',
+    '🇻🇨' => 'flagga: S:t Vincent och Grenadinerna',
+    '🇻🇪' => 'flagga: Venezuela',
+    '🇻🇬' => 'flagga: Brittiska Jungfruöarna',
+    '🇻🇮' => 'flagga: Amerikanska Jungfruöarna',
+    '🇻🇳' => 'flagga: Vietnam',
+    '🇻🇺' => 'flagga: Vanuatu',
+    '🇼🇫' => 'flagga: Wallis- och Futunaöarna',
+    '🇼🇸' => 'flagga: Samoa',
+    '🇽🇰' => 'flagga: Kosovo',
+    '🇾🇪' => 'flagga: Jemen',
+    '🇾🇹' => 'flagga: Mayotte',
+    '🇿🇦' => 'flagga: Sydafrika',
+    '🇿🇲' => 'flagga: Zambia',
+    '🇿🇼' => 'flagga: Zimbabwe',
+    '🏻' => 'ljus hy',
+    '🏼' => 'mellanljus hy',
+    '🏽' => 'mellanfärgad hy',
+    '🏾' => 'mellanmörk hy',
+    '🏿' => 'mörk hy',
+    '😀' => 'ansikte med stort leende',
+    '😃' => 'flinande ansikte med stora ögon',
+    '😄' => 'flinande ansikte med leende ögon',
+    '😁' => 'strålande ansikte med leende ögon',
+    '😆' => 'flinande ansikte med kisande ögon',
+    '😅' => 'flinande ansikte med svettdroppe',
+    '🤣' => 'rullar runt på golvet och skrattar',
+    '😂' => 'ansikte med glädjetårar',
+    '🙂' => 'småleende ansikte',
+    '🙃' => 'upp-och-nervänt ansikte',
+    '🫠' => 'smältande ansikte',
+    '😉' => 'ansikte som blinkar med ett öga',
+    '😊' => 'leende ansikte och ögon',
+    '😇' => 'leende ansikte med gloria',
+    '🥰' => 'leende ansikte med tre hjärtan',
+    '😍' => 'leende ansikte med hjärtformade ögon',
+    '🤩' => 'stjärnögt ansikte',
+    '😘' => 'ansikte ger en slängkyss',
+    '😗' => 'pussande ansikte',
+    '☺' => 'leende ansikte',
+    '😚' => 'pussande ansikte med slutna ögon',
+    '😙' => 'pussande ansikte med leende ögon',
+    '🥲' => 'tårögt leende ansikte',
+    '😋' => 'ansikte som njuter av god mat',
+    '😛' => 'ansikte räcker ut tungan',
+    '😜' => 'blinkande ansikte räcker ut tungan',
+    '🤪' => 'tokigt ansikte',
+    '😝' => 'ansikte räcker ut tungan med stängda ögon',
+    '🤑' => 'ansikte med dollarögon',
+    '🤗' => 'ansikte som kramas',
+    '🤭' => 'ansikte med handen för munnen',
+    '🫢' => 'ansikte med öppna ögon och hand för munnen',
+    '🫣' => 'ansikte med kikande öga',
+    '🤫' => 'hyssjande ansikte',
+    '🤔' => 'ansikte som tänker',
+    '🫡' => 'ansikte som gör honnör',
+    '🤐' => 'ansikte som tiger',
+    '🤨' => 'ansikte med höjt ögonbryn',
+    '😐' => 'neutralt ansikte',
+    '😑' => 'uttryckslöst ansikte',
+    '😶' => 'ansikte utan mun',
+    '🫥' => 'osynligt ansikte',
+    '😏' => 'halvleende ansikte',
+    '😒' => 'missnöjt ansikte',
+    '🙄' => 'ansikte som himlar med ögonen',
+    '😬' => 'grimaserande ansikte',
+    '🤥' => 'ljugande ansikte',
+    '🫨' => 'skakande ansikte',
+    '😌' => 'lättat ansikte',
+    '😔' => 'funderande ansikte',
+    '😪' => 'sömnigt ansikte',
+    '🤤' => 'dreglande ansikte',
+    '😴' => 'sovande ansikte',
+    '🫩' => 'ansikte med påsar under ögonen',
+    '😷' => 'ansikte med munskydd',
+    '🤒' => 'ansikte med termometer',
+    '🤕' => 'ansikte med bandage på huvudet',
+    '🤢' => 'äcklat ansikte',
+    '🤮' => 'kräkande ansikte',
+    '🤧' => 'nysande ansikte',
+    '🥵' => 'hett ansikte',
+    '🥶' => 'kallt ansikte',
+    '🥴' => 'yrt ansikte',
+    '😵' => 'omtumlat ansikte',
+    '🤯' => 'exploderande huvud',
+    '🤠' => 'ansikte med cowboyhatt',
+    '🥳' => 'festande ansikte',
+    '🥸' => 'maskerat ansikte',
+    '😎' => 'leende ansikte med solglasögon',
+    '🤓' => 'nördansikte',
+    '🧐' => 'ansikte med monokel',
+    '😕' => 'förbryllat ansikte',
+    '🫤' => 'ansikte med diagonal mun',
+    '😟' => 'bekymrat ansikte',
+    '🙁' => 'ansikte med lite sur mun',
+    '☹' => 'ansikte med sur mun',
+    '😮' => 'förvånat ansikte',
+    '😯' => 'hyssjat ansikte',
+    '😲' => 'chockat ansikte',
+    '😳' => 'rodnande ansikte',
+    '🫪' => 'ansikte i närbild',
+    '🥺' => 'bönfallande ansikte',
+    '🥹' => 'ansikte som håller tillbaka tårarna',
+    '😦' => 'ogillande ansikte med öppen mun',
+    '😧' => 'plågat ansikte',
+    '😨' => 'skrämt ansikte',
+    '😰' => 'oroligt svettigt ansikte',
+    '😥' => 'besviket men lättat ansikte',
+    '😢' => 'gråtande ansikte',
+    '😭' => 'storgråtande ansikte',
+    '😱' => 'ansikte som skriker av fasa',
+    '😖' => 'förvirrat ansikte',
+    '😣' => 'uthålligt ansikte',
+    '😞' => 'besviket ansikte',
+    '😓' => 'nedslaget kallsvettigt ansikte',
+    '😩' => 'uttröttat ansikte',
+    '😫' => 'trött ansikte',
+    '🥱' => 'gäspande ansikte',
+    '😤' => 'ansikte med ånga ur näsan',
+    '😡' => 'rasande ansikte',
+    '😠' => 'argt ansikte',
+    '🤬' => 'ansikte med symboler på munnen',
+    '😈' => 'leende ansikte med horn',
+    '👿' => 'argt ansikte med horn',
+    '💀' => 'dödskalle',
+    '☠' => 'dödskalle med ben i kors',
+    '💩' => 'bajshög',
+    '🤡' => 'clownansikte',
+    '👹' => 'japanskt monster',
+    '👺' => 'japanskt troll',
+    '👻' => 'spöke',
+    '👽' => 'utomjording',
+    '👾' => 'utomjordiskt monster',
+    '🤖' => 'robotansikte',
+    '😺' => 'flinande kattansikte',
+    '😸' => 'flinande kattansikte med leende ögon',
+    '😹' => 'kattansikte med glädjetårar',
+    '😻' => 'leende kattansikte med hjärtformade ögon',
+    '😼' => 'kattansikte med snett leende',
+    '😽' => 'kyssande kattansikte',
+    '🙀' => 'uttröttat kattansikte',
+    '😿' => 'gråtande kattansikte',
+    '😾' => 'tjurande katt',
+    '🙈' => 'apa ser inget',
+    '🙉' => 'apa hör inget',
+    '🙊' => 'apa säger inget',
+    '💌' => 'kärleksbrev',
+    '💘' => 'hjärta med pil',
+    '💝' => 'hjärta med rosett',
+    '💖' => 'gnistrande hjärta',
+    '💗' => 'växande hjärta',
+    '💓' => 'bultande hjärta',
+    '💞' => 'snurrande hjärtan',
+    '💕' => 'två hjärtan',
+    '💟' => 'hjärtdekoration',
+    '❣' => 'utropstecken i form av ett hjärta',
+    '💔' => 'brustet hjärta',
+    '❤' => 'rött hjärta',
+    '🩷' => 'rosa hjärta',
+    '🧡' => 'hjärta i orange',
+    '💛' => 'gult hjärta',
+    '💚' => 'grönt hjärta',
+    '💙' => 'blått hjärta',
+    '🩵' => 'ljusblått hjärta',
+    '💜' => 'lila hjärta',
+    '🤎' => 'brunt hjärta',
+    '🖤' => 'svart hjärta',
+    '🩶' => 'grått hjärta',
+    '🤍' => 'vitt hjärta',
+    '💋' => 'läppavtryck',
+    '💯' => '100 poäng',
+    '💢' => 'symbol för ilska',
+    '🫯' => 'slagsmål',
+    '💥' => 'explosion',
+    '💫' => 'omtumlad',
+    '💦' => 'stänkande svett',
+    '💨' => 'fartsymbol',
+    '🕳' => 'hål',
+    '💬' => 'pratbubbla',
+    '🗨' => 'pratbubbla åt vänster',
+    '🗯' => 'arg pratbubbla åt höger',
+    '💭' => 'tankebubbla',
+    '💤' => 'snarkningar',
+    '👋' => 'vinkande hand',
+    '🤚' => 'höjd handrygg',
+    '🖐' => 'hand med utspretade fingrar',
+    '✋' => 'hand i luften',
+    '🖖' => 'vulcan-hälsning',
+    '🫱' => 'hand som pekar till höger',
+    '🫲' => 'hand som pekar till vänster',
+    '🫳' => 'handflatan nedåt',
+    '🫴' => 'handflatan uppåt',
+    '🫷' => 'hand som knuffar åt vänster',
+    '🫸' => 'hand som knuffar åt höger',
+    '👌' => 'OK-tecken',
+    '🤌' => 'fingerportmonnä',
+    '🤏' => 'nypande hand',
+    '✌' => 'v-tecken',
+    '🤞' => 'korsade fingrar',
+    '🫰' => 'hand med tummen och pekfingret korsade',
+    '🤟' => 'jag älskar dig-gest',
+    '🤘' => 'djävulstecknet',
+    '🤙' => 'ring mig-hand',
+    '👈' => 'vänsterpekande finger',
+    '👉' => 'högerpekande finger',
+    '👆' => 'pekfinger upp',
+    '🖕' => 'långfinger upp',
+    '👇' => 'nedåtpekande finger',
+    '☝' => 'finger upp',
+    '🫵' => 'finger som pekar på mig',
+    '👍' => 'tummen upp',
+    '👎' => 'tummen ned',
+    '✊' => 'knytnäve i luften',
+    '👊' => 'knuten hand',
+    '🤛' => 'vänstervänd näve',
+    '🤜' => 'högervänd näve',
+    '👏' => 'klappande händer',
+    '🙌' => 'båda händerna i luften',
+    '🫶' => 'handhjärta',
+    '👐' => 'öppna händer',
+    '🤲' => 'handflatorna upp',
+    '🤝' => 'handskakning',
+    '🙏' => 'beende händer',
+    '✍' => 'hand som skriver',
+    '💅' => 'nagellack',
+    '🤳' => 'selfie',
+    '💪' => 'spänd biceps',
+    '🦾' => 'mekanisk arm',
+    '🦿' => 'mekaniskt ben',
+    '🦵' => 'ben',
+    '🦶' => 'fot',
+    '👂' => 'öra',
+    '🦻' => 'öra med hörapparat',
+    '👃' => 'näsa',
+    '🧠' => 'hjärna',
+    '🫀' => 'hjärta',
+    '🫁' => 'lungor',
+    '🦷' => 'tand',
+    '🦴' => 'benknota',
+    '👀' => 'ögon',
+    '👁' => 'öga',
+    '👅' => 'tunga',
+    '👄' => 'mun',
+    '🫦' => 'biter i läppen',
+    '👶' => 'bebis',
+    '🧒' => 'barn',
+    '👦' => 'pojke',
+    '👧' => 'flicka',
+    '🧑' => 'person',
+    '👱' => 'blond person',
+    '👨' => 'man',
+    '🧔' => 'man med skägg',
+    '👩' => 'kvinna',
+    '🧓' => 'äldre person',
+    '👴' => 'gammal man',
+    '👵' => 'gammal kvinna',
+    '🙍' => 'sur person',
+    '🙎' => 'plutande person',
+    '🙅' => 'person gestikulerar NEJ',
+    '🙆' => 'person gestikulerar OK',
+    '💁' => 'receptionist',
+    '🙋' => 'person som räcker upp handen',
+    '🧏' => 'hörselskadad person',
+    '🙇' => 'bugande person',
+    '🤦' => 'person som slår sig för pannan',
+    '🤷' => 'person som rycker på axlarna',
+    '👮' => 'polis',
+    '🕵' => 'detektiv',
+    '💂' => 'vakt',
+    '🥷' => 'ninja',
+    '👷' => 'byggarbetare',
+    '🫅' => 'person med krona',
+    '🤴' => 'prins',
+    '👸' => 'prinsessa',
+    '👳' => 'man med turban',
+    '👲' => 'man med kinesisk hatt',
+    '🧕' => 'kvinna i sjal',
+    '🤵' => 'person i smoking',
+    '👰' => 'person i brudslöja',
+    '🤰' => 'gravid kvinna',
+    '🫃' => 'gravid man',
+    '🫄' => 'gravid person',
+    '🤱' => 'amning',
+    '👼' => 'bebisängel',
+    '🎅' => 'jultomte',
+    '🤶' => 'tomtemor',
+    '🦸' => 'superhjälte',
+    '🦹' => 'superskurk',
+    '🧙' => 'magiker',
+    '🧚' => 'fé',
+    '🧛' => 'vampyr',
+    '🧜' => 'vattenväsen',
+    '🧝' => 'alv',
+    '🧞' => 'ande',
+    '🧟' => 'zombie',
+    '🧌' => 'troll',
+    '🫈' => 'hårig varelse',
+    '💆' => 'person som blir masserad',
+    '💇' => 'person som får håret klippt',
+    '🚶' => 'fotgängare',
+    '🧍' => 'stående person',
+    '🧎' => 'knäsittande person',
+    '🏃' => 'person som springer',
+    '💃' => 'dansande kvinna',
+    '🕺' => 'dansande man',
+    '🕴' => 'svävande man i kostym',
+    '👯' => 'personer med kaninöron',
+    '🧖' => 'person i ångbastu',
+    '🧗' => 'person som klättrar',
+    '🤺' => 'person som fäktas',
+    '🏇' => 'hästkapplöpning',
+    '⛷' => 'skidåkare',
+    '🏂' => 'snowboardåkare',
+    '🏌' => 'person som spelar golf',
+    '🏄' => 'person som surfar',
+    '🚣' => 'person som ror en båt',
+    '🏊' => 'person som simmar',
+    '⛹' => 'person med boll',
+    '🏋' => 'person som lyfter tyngder',
+    '🚴' => 'person som cyklar',
+    '🚵' => 'person som cyklar på en mountainbike',
+    '🤸' => 'person som hjular',
+    '🤼' => 'brottande personer',
+    '🤽' => 'person som spelar vattenpolo',
+    '🤾' => 'person som spelar handboll',
+    '🤹' => 'person som jonglerar',
+    '🧘' => 'person i lotusposition',
+    '🛀' => 'person som badar',
+    '🛌' => 'person i en säng',
+    '👭' => 'två kvinnor håller hand',
+    '👫' => 'man och kvinna håller hand',
+    '👬' => 'två män håller hand',
+    '💏' => 'puss',
+    '💑' => 'par med hjärta',
+    '🗣' => 'silhuett som talar',
+    '👤' => 'figur i silhuett',
+    '👥' => 'figurer i silhuett',
+    '🫂' => 'personer kramas',
+    '👪' => 'familj',
+    '👣' => 'fotavtryck',
+    '🫆' => 'fingeravtryck',
+    '🦰' => 'rödhårig',
+    '🦱' => 'lockigt hår',
+    '🦳' => 'vithårig',
+    '🦲' => 'skallig',
+    '🐵' => 'apansikte',
+    '🐒' => 'apa',
+    '🦍' => 'gorilla',
+    '🦧' => 'orangutang',
+    '🐶' => 'hundansikte',
+    '🐕' => 'hund',
+    '🦮' => 'ledarhund',
+    '🐩' => 'pudel',
+    '🐺' => 'vargansikte',
+    '🦊' => 'rävansikte',
+    '🦝' => 'tvättbjörn',
+    '🐱' => 'kattansikte',
+    '🐈' => 'katt',
+    '🦁' => 'lejonansikte',
+    '🐯' => 'tigeransikte',
+    '🐅' => 'tiger',
+    '🐆' => 'leopard',
+    '🐴' => 'hästansikte',
+    '🫎' => 'älg',
+    '🫏' => 'åsna',
+    '🐎' => 'häst',
+    '🦄' => 'enhörningsansikte',
+    '🦓' => 'zebra',
+    '🦌' => 'hjort',
+    '🦬' => 'bisonoxe',
+    '🐮' => 'koansikte',
+    '🐂' => 'oxe',
+    '🐃' => 'vattenbuffel',
+    '🐄' => 'ko',
+    '🐷' => 'grisansikte',
+    '🐖' => 'gris',
+    '🐗' => 'vildsvin',
+    '🐽' => 'gristryne',
+    '🐏' => 'vädur',
+    '🐑' => 'tacka',
+    '🐐' => 'get',
+    '🐪' => 'dromedar',
+    '🐫' => 'kamel',
+    '🦙' => 'lama',
+    '🦒' => 'giraff',
+    '🐘' => 'elefant',
+    '🦣' => 'mammut',
+    '🦏' => 'noshörning',
+    '🦛' => 'flodhäst',
+    '🐭' => 'musansikte',
+    '🐁' => 'mus',
+    '🐀' => 'råtta',
+    '🐹' => 'hamsteransikte',
+    '🐰' => 'kaninansikte',
+    '🐇' => 'kanin',
+    '🐿' => 'jordekorre',
+    '🦫' => 'bäver',
+    '🦔' => 'igelkott',
+    '🦇' => 'fladdermus',
+    '🐻' => 'björnansikte',
+    '🐨' => 'koala',
+    '🐼' => 'pandaansikte',
+    '🦥' => 'sengångare',
+    '🦦' => 'utter',
+    '🦨' => 'skunk',
+    '🦘' => 'känguru',
+    '🦡' => 'grävling',
+    '🐾' => 'tassavtryck',
+    '🦃' => 'kalkon',
+    '🐔' => 'höna',
+    '🐓' => 'tupp',
+    '🐣' => 'nykläckt kyckling',
+    '🐤' => 'kyckling',
+    '🐥' => 'kyckling framifrån',
+    '🐦' => 'fågel',
+    '🐧' => 'pingvin',
+    '🕊' => 'duva',
+    '🦅' => 'örn',
+    '🦆' => 'and',
+    '🦢' => 'svan',
+    '🦉' => 'uggla',
+    '🦤' => 'dront',
+    '🪶' => 'fågelfjäder',
+    '🦩' => 'flamingo',
+    '🦚' => 'påfågel',
+    '🦜' => 'papegoja',
+    '🪽' => 'vinge',
+    '🪿' => 'gås',
+    '🐸' => 'grodansikte',
+    '🐊' => 'krokodil',
+    '🐢' => 'sköldpadda',
+    '🦎' => 'ödla',
+    '🐍' => 'orm',
+    '🐲' => 'drakansikte',
+    '🐉' => 'drake',
+    '🦕' => 'sauropod',
+    '🦖' => 'T-rex',
+    '🐳' => 'val som sprutar vatten',
+    '🐋' => 'val',
+    '🐬' => 'delfin',
+    '🫍' => 'späckhuggare',
+    '🦭' => 'säl',
+    '🐟' => 'fisk',
+    '🐠' => 'tropisk fisk',
+    '🐡' => 'blåsfisk',
+    '🦈' => 'haj',
+    '🐙' => 'bläckfisk',
+    '🐚' => 'snäcka',
+    '🪸' => 'korall',
+    '🪼' => 'manet',
+    '🦀' => 'krabba',
+    '🦞' => 'hummer',
+    '🦐' => 'räka',
+    '🦑' => 'mindre bläckfisk',
+    '🦪' => 'ostron',
+    '🐌' => 'snigel',
+    '🦋' => 'fjäril',
+    '🐛' => 'tusenfoting',
+    '🐜' => 'myra',
+    '🐝' => 'bi',
+    '🪲' => 'skalbagge',
+    '🐞' => 'nyckelpiga',
+    '🦗' => 'syrsa',
+    '🪳' => 'kackerlacka',
+    '🕷' => 'spindel',
+    '🕸' => 'spindelnät',
+    '🦂' => 'skorpion',
+    '🦟' => 'mygga',
+    '🪰' => 'fluga',
+    '🪱' => 'mask',
+    '🦠' => 'mikrob',
+    '💐' => 'blombukett',
+    '🌸' => 'körsbärsblomma',
+    '💮' => 'vit blomma',
+    '🪷' => 'lotus',
+    '🏵' => 'bandros',
+    '🌹' => 'ros',
+    '🥀' => 'vissnad blomma',
+    '🌺' => 'hibiskus',
+    '🌻' => 'solros',
+    '🌼' => 'blomma',
+    '🌷' => 'tulpan',
+    '🪻' => 'hyacint',
+    '🌱' => 'skott',
+    '🪴' => 'krukväxt',
+    '🌲' => 'barrträd',
+    '🌳' => 'lövträd',
+    '🌴' => 'palm',
+    '🌵' => 'kaktus',
+    '🌾' => 'risax',
+    '🌿' => 'ört',
+    '☘' => 'treklöver',
+    '🍀' => 'fyrklöver',
+    '🍁' => 'lönnlöv',
+    '🍂' => 'fallande löv',
+    '🍃' => 'löv i vinden',
+    '🪹' => 'tomt bo',
+    '🪺' => 'bo med ägg',
+    '🍄' => 'svamp',
+    '🪾' => 'träd utan löv',
+    '🍇' => 'vindruvor',
+    '🍈' => 'melon',
+    '🍉' => 'vattenmelon',
+    '🍊' => 'mandarin',
+    '🍋' => 'citron',
+    '🍌' => 'banan',
+    '🍍' => 'ananas',
+    '🥭' => 'mango',
+    '🍎' => 'rött äpple',
+    '🍏' => 'grönt äpple',
+    '🍐' => 'päron',
+    '🍑' => 'persika',
+    '🍒' => 'körsbär',
+    '🍓' => 'jordgubbe',
+    '🫐' => 'blåbär',
+    '🥝' => 'kiwifrukt',
+    '🍅' => 'tomat',
+    '🫒' => 'oliv',
+    '🥥' => 'kokosnöt',
+    '🥑' => 'avokado',
+    '🍆' => 'aubergine',
+    '🥔' => 'potatis',
+    '🥕' => 'morot',
+    '🌽' => 'majskolv',
+    '🌶' => 'chili',
+    '🫑' => 'paprika',
+    '🥒' => 'gurka',
+    '🥬' => 'sallat',
+    '🥦' => 'broccoli',
+    '🧄' => 'vitlök',
+    '🧅' => 'lök',
+    '🥜' => 'jordnötter',
+    '🫘' => 'bönor',
+    '🌰' => 'kastanj',
+    '🫚' => 'ingefära',
+    '🫛' => 'ärtskida',
+    '🫜' => 'rotfrukt',
+    '🍞' => 'bröd',
+    '🥐' => 'croissant',
+    '🥖' => 'baguette',
+    '🫓' => 'tunnbröd',
+    '🥨' => 'pretzel',
+    '🥯' => 'bagel',
+    '🥞' => 'pannkakor',
+    '🧇' => 'våffla',
+    '🧀' => 'ostbit',
+    '🍖' => 'köttben',
+    '🍗' => 'kycklinglår',
+    '🥩' => 'styckdel',
+    '🥓' => 'bacon',
+    '🍔' => 'hamburgare',
+    '🍟' => 'pommes frites',
+    '🍕' => 'pizzabit',
+    '🌭' => 'varmkorv',
+    '🥪' => 'smörgås',
+    '🌮' => 'taco',
+    '🌯' => 'burrito',
+    '🫔' => 'tamale',
+    '🥙' => 'pitabröd',
+    '🧆' => 'falafel',
+    '🥚' => 'ägg',
+    '🍳' => 'matlagning',
+    '🥘' => 'paella',
+    '🍲' => 'gryta',
+    '🫕' => 'fondue',
+    '🥣' => 'skål och sked',
+    '🥗' => 'grönsallad',
+    '🍿' => 'popcorn',
+    '🧈' => 'smör',
+    '🧂' => 'salt',
+    '🥫' => 'konserv',
+    '🍱' => 'bentolåda',
+    '🍘' => 'riskaka',
+    '🍙' => 'risboll',
+    '🍚' => 'kokt ris',
+    '🍛' => 'curry och ris',
+    '🍜' => 'skål nudelsoppa',
+    '🍝' => 'spagetti',
+    '🍠' => 'rostad sötpotatis',
+    '🍢' => 'skaldjursspett',
+    '🍣' => 'sushi',
+    '🍤' => 'friterad räka',
+    '🍥' => 'fiskkaka',
+    '🥮' => 'månkaka',
+    '🍡' => 'dango',
+    '🥟' => 'dumpling',
+    '🥠' => 'lyckokaka',
+    '🥡' => 'hämtmatkartong',
+    '🍦' => 'mjukglass',
+    '🍧' => 'kakigōri',
+    '🍨' => 'glass',
+    '🍩' => 'munk',
+    '🍪' => 'kaka',
+    '🎂' => 'födelsedagstårta',
+    '🍰' => 'tårtbit',
+    '🧁' => 'muffin',
+    '🥧' => 'paj',
+    '🍫' => 'chokladkaka',
+    '🍬' => 'godis',
+    '🍭' => 'klubba',
+    '🍮' => 'brylépudding',
+    '🍯' => 'honungsburk',
+    '🍼' => 'nappflaska',
+    '🥛' => 'mjölkglas',
+    '☕' => 'varm dryck',
+    '🫖' => 'tekanna',
+    '🍵' => 'tekopp',
+    '🍶' => 'sake',
+    '🍾' => 'champagne',
+    '🍷' => 'vinglas',
+    '🍸' => 'cocktailglas',
+    '🍹' => 'tropisk drink',
+    '🍺' => 'ölstop',
+    '🍻' => 'skålande ölstop',
+    '🥂' => 'skålande glas',
+    '🥃' => 'whiskyglas',
+    '🫗' => 'hälla vätska',
+    '🥤' => 'mugg med sugrör',
+    '🧋' => 'bubbelte',
+    '🧃' => 'dryckeskartong',
+    '🧉' => 'mate-te',
+    '🧊' => 'isbit',
+    '🥢' => 'ätpinnar',
+    '🍽' => 'tallrik, kniv och gaffel',
+    '🍴' => 'kniv och gaffel',
+    '🥄' => 'sked',
+    '🔪' => 'kökskniv',
+    '🫙' => 'burk',
+    '🏺' => 'amfora',
+    '🌍' => 'jordglob Europa–Afrika',
+    '🌎' => 'jordglob nord- och sydamerika',
+    '🌏' => 'jordglob Asien–Australien',
+    '🌐' => 'jordglob med meridianer',
+    '🗺' => 'världskarta',
+    '🗾' => 'karta över Japan',
+    '🧭' => 'kompass',
+    '🏔' => 'snöklätt berg',
+    '⛰' => 'berg',
+    '🛘' => 'jordskred',
+    '🌋' => 'vulkan',
+    '🗻' => 'Fuji',
+    '🏕' => 'camping',
+    '🏖' => 'strand med parasoll',
+    '🏜' => 'öken',
+    '🏝' => 'öde ö',
+    '🏞' => 'nationalpark',
+    '🏟' => 'stadion',
+    '🏛' => 'klassisk byggnad',
+    '🏗' => 'byggarbetsplats',
+    '🧱' => 'tegelsten',
+    '🪨' => 'sten',
+    '🪵' => 'trästockar',
+    '🛖' => 'koja',
+    '🏘' => 'flera hus',
+    '🏚' => 'fallfärdigt hus',
+    '🏠' => 'hus',
+    '🏡' => 'hus med trädgård',
+    '🏢' => 'kontorsbyggnad',
+    '🏣' => 'japanskt postkontor',
+    '🏤' => 'postkontor',
+    '🏥' => 'sjukhus',
+    '🏦' => 'bank',
+    '🏨' => 'hotell',
+    '🏩' => 'kärlekshotell',
+    '🏪' => 'jourbutik',
+    '🏫' => 'skola',
+    '🏬' => 'varuhus',
+    '🏭' => 'fabrik',
+    '🏯' => 'japanskt slott',
+    '🏰' => 'slott',
+    '💒' => 'bröllop',
+    '🗼' => 'Tokyo Tower',
+    '🗽' => 'Frihetsgudinnan',
+    '⛪' => 'kyrka',
+    '🕌' => 'moské',
+    '🛕' => 'hindutempel',
+    '🕍' => 'synagoga',
+    '⛩' => 'shintohelgedom',
+    '🕋' => 'kaba',
+    '⛲' => 'fontän',
+    '⛺' => 'tält',
+    '🌁' => 'dimmigt',
+    '🌃' => 'stjärnklar natt',
+    '🏙' => 'stadsbild',
+    '🌄' => 'soluppgång över berg',
+    '🌅' => 'soluppgång',
+    '🌆' => 'stad i skymning',
+    '🌇' => 'solnedgång',
+    '🌉' => 'bro på natten',
+    '♨' => 'varma källor',
+    '🎠' => 'karusellhäst',
+    '🛝' => 'rutschbana',
+    '🎡' => 'pariserhjul',
+    '🎢' => 'berg- och dalbana',
+    '💈' => 'barberarstolpe',
+    '🎪' => 'cirkustält',
+    '🚂' => 'ånglok',
+    '🚃' => 'tågvagn',
+    '🚄' => 'snabbtåg',
+    '🚅' => 'höghastighetståg',
+    '🚆' => 'tåg',
+    '🚇' => 'tunnelbana',
+    '🚈' => 'snabbspårväg',
+    '🚉' => 'tågstation',
+    '🚊' => 'spårvagn',
+    '🚝' => 'monorail',
+    '🚞' => 'bergbana',
+    '🚋' => 'spårvagnsvagn',
+    '🚌' => 'buss',
+    '🚍' => 'mötande buss',
+    '🚎' => 'trådbuss',
+    '🚐' => 'minibuss',
+    '🚑' => 'ambulans',
+    '🚒' => 'brandbil',
+    '🚓' => 'polisbil',
+    '🚔' => 'mötande polisbil',
+    '🚕' => 'taxi',
+    '🚖' => 'mötande taxi',
+    '🚗' => 'bil',
+    '🚘' => 'mötande bil',
+    '🚙' => 'SUV',
+    '🛻' => 'pickup',
+    '🚚' => 'budbil',
+    '🚛' => 'lastbil',
+    '🚜' => 'traktor',
+    '🏎' => 'racerbil',
+    '🏍' => 'motorcykel',
+    '🛵' => 'skoter',
+    '🦽' => 'manuell rullstol',
+    '🦼' => 'eldriven rullstol',
+    '🛺' => 'automatisk riksha',
+    '🚲' => 'cykel',
+    '🛴' => 'sparkcykel',
+    '🛹' => 'skateboard',
+    '🛼' => 'rullskridsko',
+    '🚏' => 'busshållplats',
+    '🛣' => 'motorväg',
+    '🛤' => 'räls',
+    '🛢' => 'oljefat',
+    '⛽' => 'bränslepump',
+    '🛞' => 'hjul',
+    '🚨' => 'polisbilslampa',
+    '🚥' => 'vågräta trafikljus',
+    '🚦' => 'lodräta trafikljus',
+    '🛑' => 'stoppskylt',
+    '🚧' => 'skylt för byggområde',
+    '⚓' => 'ankare',
+    '🛟' => 'livboj',
+    '⛵' => 'segelbåt',
+    '🛶' => 'kanot',
+    '🚤' => 'racerbåt',
+    '🛳' => 'passagerarfartyg',
+    '⛴' => 'färja',
+    '🛥' => 'motorbåt',
+    '🚢' => 'fartyg',
+    '✈' => 'flygplan',
+    '🛩' => 'litet flygplan',
+    '🛫' => 'avgång med flyg',
+    '🛬' => 'ankomst med flyg',
+    '🪂' => 'fallskärm',
+    '💺' => 'flygstol',
+    '🚁' => 'helikopter',
+    '🚟' => 'hängbana',
+    '🚠' => 'linbana',
+    '🚡' => 'kabinbana',
+    '🛰' => 'satellit',
+    '🚀' => 'raket',
+    '🛸' => 'flygande tefat',
+    '🛎' => 'receptionsklocka',
+    '🧳' => 'bagage',
+    '⌛' => 'utrunnet timglas',
+    '⏳' => 'timglas med rinnande sand',
+    '⌚' => 'armbandsur',
+    '⏰' => 'väckarklocka',
+    '⏱' => 'tidtagarur',
+    '⏲' => 'timer',
+    '🕰' => 'mantelklocka',
+    '🕛' => 'klockan tolv',
+    '🕧' => 'halv ett',
+    '🕐' => 'klockan ett',
+    '🕜' => 'halv två',
+    '🕑' => 'klockan två',
+    '🕝' => 'halv tre',
+    '🕒' => 'klockan tre',
+    '🕞' => 'halv fyra',
+    '🕓' => 'klockan fyra',
+    '🕟' => 'halv fem',
+    '🕔' => 'klockan fem',
+    '🕠' => 'halv sex',
+    '🕕' => 'klockan sex',
+    '🕡' => 'halv sju',
+    '🕖' => 'klockan sju',
+    '🕢' => 'halv åtta',
+    '🕗' => 'klockan åtta',
+    '🕣' => 'halv nio',
+    '🕘' => 'klockan nio',
+    '🕤' => 'halv tio',
+    '🕙' => 'klockan tio',
+    '🕥' => 'halv elva',
+    '🕚' => 'klockan elva',
+    '🕦' => 'halv tolv',
+    '🌑' => 'nymåne',
+    '🌒' => 'måne i första kvarteret',
+    '🌓' => 'tilltagande halvmåne',
+    '🌔' => 'måne i andra kvarteret',
+    '🌕' => 'fullmåne',
+    '🌖' => 'måne i tredje kvarteret',
+    '🌗' => 'avtagande halvmåne',
+    '🌘' => 'måne i fjärde kvarteret',
+    '🌙' => 'månskära',
+    '🌚' => 'nymåne med ansikte',
+    '🌛' => 'tilltagande halvmåne med ansikte',
+    '🌜' => 'avtagande halvmåne med ansikte',
+    '🌡' => 'termometer',
+    '☀' => 'sol',
+    '🌝' => 'fullmåne med ansikte',
+    '🌞' => 'sol med ansikte',
+    '🪐' => 'planet med ringar',
+    '⭐' => 'stjärna',
+    '🌟' => 'blänkande stjärna',
+    '🌠' => 'stjärnfall',
+    '🌌' => 'Vintergatan',
+    '☁' => 'moln',
+    '⛅' => 'sol bakom moln',
+    '⛈' => 'moln med regn och blixtar',
+    '🌤' => 'sol bakom litet moln',
+    '🌥' => 'sol bakom stort moln',
+    '🌦' => 'sol bakom moln med regn',
+    '🌧' => 'regnmoln',
+    '🌨' => 'moln med snö',
+    '🌩' => 'moln med blixt',
+    '🌪' => 'tornado',
+    '🌫' => 'dimma',
+    '🌬' => 'blåser vind',
+    '🌀' => 'cyklon',
+    '🌈' => 'regnbåge',
+    '🌂' => 'hopfällt paraply',
+    '☂' => 'paraply',
+    '☔' => 'paraply med regndroppar',
+    '⛱' => 'parasoll på marken',
+    '⚡' => 'högspänning',
+    '❄' => 'snöflinga',
+    '☃' => 'snögubbe',
+    '⛄' => 'snögubbe utan snö',
+    '☄' => 'komet',
+    '🔥' => 'eld',
+    '💧' => 'droppe',
+    '🌊' => 'våg',
+    '🎃' => 'lyktgubbe',
+    '🎄' => 'julgran',
+    '🎆' => 'fyrverkerier',
+    '🎇' => 'glittrande fyrverkeri',
+    '🧨' => 'smällare',
+    '✨' => 'gnistrande stjärnor',
+    '🎈' => 'ballong',
+    '🎉' => 'konfettismällare',
+    '🎊' => 'konfettiboll',
+    '🎋' => 'tanabataträd',
+    '🎍' => 'pinjedekoration',
+    '🎎' => 'japanska dockor',
+    '🎏' => 'karpvindstrut',
+    '🎐' => 'vindspel',
+    '🎑' => 'månskådning',
+    '🧧' => 'rött kuvert',
+    '🎀' => 'rosett',
+    '🎁' => 'inslagen present',
+    '🎗' => 'påminnelseband',
+    '🎟' => 'inträdesbiljetter',
+    '🎫' => 'biljett',
+    '🎖' => 'militär medalj',
+    '🏆' => 'pokal',
+    '🏅' => 'sportmedalj',
+    '🥇' => 'guldmedalj',
+    '🥈' => 'silvermedalj',
+    '🥉' => 'bronsmedalj',
+    '⚽' => 'fotboll',
+    '⚾' => 'baseboll',
+    '🥎' => 'softboll',
+    '🏀' => 'basketboll',
+    '🏐' => 'volleyboll',
+    '🏈' => 'amerikansk fotboll',
+    '🏉' => 'rugbyboll',
+    '🎾' => 'tennis',
+    '🥏' => 'frisbee',
+    '🎳' => 'bowling',
+    '🏏' => 'cricket',
+    '🏑' => 'landhockey',
+    '🏒' => 'ishockey',
+    '🥍' => 'lacrosse',
+    '🏓' => 'bordtennis',
+    '🏸' => 'badminton',
+    '🥊' => 'boxningshandske',
+    '🥋' => 'kampsportdräkt',
+    '🥅' => 'målnät',
+    '⛳' => 'flagga i hål',
+    '⛸' => 'skridsko',
+    '🎣' => 'fiskespö',
+    '🤿' => 'dykmask',
+    '🎽' => 'löparlinne',
+    '🎿' => 'skidor',
+    '🛷' => 'kälke',
+    '🥌' => 'curlingsten',
+    '🎯' => 'mitt i prick',
+    '🪀' => 'jojo',
+    '🪁' => 'flygande drake',
+    '🔫' => 'vattenpistol',
+    '🎱' => 'biljardboll',
+    '🔮' => 'kristallkula',
+    '🪄' => 'trollspö',
+    '🎮' => 'tv-spel',
+    '🕹' => 'joystick',
+    '🎰' => 'enarmad bandit',
+    '🎲' => 'speltärning',
+    '🧩' => 'pusselbit',
+    '🧸' => 'nallebjörn',
+    '🪅' => 'piñata',
+    '🪩' => 'discokula',
+    '🪆' => 'ryska dockor',
+    '♠' => 'spader',
+    '♥' => 'hjärter',
+    '♦' => 'ruter',
+    '♣' => 'klöver',
+    '♟' => 'schackbonde',
+    '🃏' => 'joker',
+    '🀄' => 'mahjong-bricka',
+    '🎴' => 'spelkort med blomma',
+    '🎭' => 'dans och teater',
+    '🖼' => 'tavla',
+    '🎨' => 'färgpalett',
+    '🧵' => 'tråd',
+    '🪡' => 'synål',
+    '🧶' => 'garn',
+    '🪢' => 'knut',
+    '👓' => 'glasögon',
+    '🕶' => 'solglasögon',
+    '🥽' => 'simglasögon',
+    '🥼' => 'labbrock',
+    '🦺' => 'varselväst',
+    '👔' => 'skjorta med slips',
+    '👕' => 't-shirt',
+    '👖' => 'jeans',
+    '🧣' => 'halsduk',
+    '🧤' => 'handske',
+    '🧥' => 'jacka',
+    '🧦' => 'sockor',
+    '👗' => 'klänning',
+    '👘' => 'kimono',
+    '🥻' => 'sari',
+    '🩱' => 'baddräkt',
+    '🩲' => 'badbyxor',
+    '🩳' => 'shorts',
+    '👙' => 'bikini',
+    '👚' => 'blus',
+    '🪭' => 'solfjäder',
+    '👛' => 'portmonnä',
+    '👜' => 'handväska',
+    '👝' => 'kuvertväska',
+    '🛍' => 'shoppingpåsar',
+    '🎒' => 'ryggsäck',
+    '🩴' => 'flip-flops',
+    '👞' => 'herrsko',
+    '👟' => 'gympasko',
+    '🥾' => 'vandringskänga',
+    '🥿' => 'ballerinasko',
+    '👠' => 'högklackad sko',
+    '👡' => 'damsandal',
+    '🩰' => 'ballettskor',
+    '👢' => 'damstövel',
+    '🪮' => 'afrokam',
+    '👑' => 'krona',
+    '👒' => 'damhatt',
+    '🎩' => 'hög hatt',
+    '🎓' => 'examenshatt',
+    '🧢' => 'skärmmössa',
+    '🪖' => 'militärhjälm',
+    '⛑' => 'räddningsarbetarhjälm',
+    '📿' => 'radband',
+    '💄' => 'läppstift',
+    '💍' => 'ring',
+    '💎' => 'ädelsten',
+    '🔇' => 'avstängd högtalare',
+    '🔈' => 'högtalare',
+    '🔉' => 'högtalare med medium volym',
+    '🔊' => 'högtalare med hög volym',
+    '📢' => 'handhögtalare',
+    '📣' => 'megafon',
+    '📯' => 'postsymbol',
+    '🔔' => 'ringklocka',
+    '🔕' => 'överstruken ringklocka',
+    '🎼' => 'g-klav',
+    '🎵' => 'musiknot',
+    '🎶' => 'musiknoter',
+    '🎙' => 'studiomikrofon',
+    '🎚' => 'nivåreglage',
+    '🎛' => 'reglagevred',
+    '🎤' => 'mikrofon',
+    '🎧' => 'hörlur',
+    '📻' => 'radio',
+    '🎷' => 'saxofon',
+    '🎺' => 'trumpet',
+    '🪊' => 'trombon',
+    '🪗' => 'dragspel',
+    '🎸' => 'gitarr',
+    '🎹' => 'klaviatur',
+    '🎻' => 'fiol',
+    '🪕' => 'banjo',
+    '🥁' => 'trumma',
+    '🪘' => 'congatrumma',
+    '🪇' => 'maracas',
+    '🪈' => 'flöjt',
+    '🪉' => 'harpa',
+    '📱' => 'mobiltelefon',
+    '📲' => 'mobiltelefon med pil',
+    '☎' => 'telefon',
+    '📞' => 'telefonlur',
+    '📟' => 'personsökare',
+    '📠' => 'fax',
+    '🔋' => 'batteri',
+    '🪫' => 'låg batterinivå',
+    '🔌' => 'elkontakt',
+    '💻' => 'bärbar dator',
+    '🖥' => 'stationär dator',
+    '🖨' => 'skrivare',
+    '⌨' => 'tangentbord',
+    '🖱' => 'datormus',
+    '🖲' => 'styrkula',
+    '💽' => 'datordiskett',
+    '💾' => 'diskett',
+    '💿' => 'optisk skiva',
+    '📀' => 'dvd-skiva',
+    '🧮' => 'kulram',
+    '🎥' => 'filmkamera',
+    '🎞' => 'filmnegativ',
+    '📽' => 'filmprojektor',
+    '🎬' => 'filmklappa',
+    '📺' => 'tv',
+    '📷' => 'kamera',
+    '📸' => 'kamera med blixt',
+    '📹' => 'videokamera',
+    '📼' => 'videokassett',
+    '🔍' => 'förstoringsglas som lutar åt vänster',
+    '🔎' => 'förstoringsglas som lutar åt höger',
+    '🕯' => 'stearinljus',
+    '💡' => 'glödlampa',
+    '🔦' => 'ficklampa',
+    '🏮' => 'röd papperslykta',
+    '🪔' => 'diyalampa',
+    '📔' => 'anteckningsbok med dekorativt omslag',
+    '📕' => 'stängd bok',
+    '📖' => 'öppen bok',
+    '📗' => 'grön bok',
+    '📘' => 'blå bok',
+    '📙' => 'orange bok',
+    '📚' => 'böcker',
+    '📓' => 'anteckningsbok',
+    '📒' => 'liggare',
+    '📃' => 'upprullad sida',
+    '📜' => 'bokrulle',
+    '📄' => 'sida med text uppåt',
+    '📰' => 'tidning',
+    '🗞' => 'ihoprullad tidning',
+    '📑' => 'bokmärkesflikar',
+    '🔖' => 'bokmärke',
+    '🏷' => 'etikett',
+    '🪙' => 'mynt',
+    '💰' => 'pengapåse',
+    '🪎' => 'skattkista',
+    '💴' => 'yensedel',
+    '💵' => 'dollarsedel',
+    '💶' => 'eurosedel',
+    '💷' => 'pundsedel',
+    '💸' => 'pengar med vingar',
+    '💳' => 'kreditkort',
+    '🧾' => 'kvitto',
+    '💹' => 'stigande diagram med yen',
+    '✉' => 'kuvert',
+    '📧' => 'e-post',
+    '📨' => 'inkommande brev',
+    '📩' => 'kuvert med pil',
+    '📤' => 'utkorg',
+    '📥' => 'inkorg',
+    '📦' => 'paket',
+    '📫' => 'stängd brevlåda med hissad flagga',
+    '📪' => 'stängd brevlåda med sänkt flagga',
+    '📬' => 'öppen brevlåda med hissad flagga',
+    '📭' => 'öppen brevlåda med sänkt flagga',
+    '📮' => 'postlåda',
+    '🗳' => 'valurna med röstsedel',
+    '✏' => 'blyertspenna',
+    '✒' => 'stiftpenna',
+    '🖋' => 'reservoarpenna',
+    '🖊' => 'kulspetspenna',
+    '🖌' => 'målarpensel',
+    '🖍' => 'krita',
+    '📝' => 'kom ihåg-block',
+    '💼' => 'portfölj',
+    '📁' => 'arkivmapp',
+    '📂' => 'öppen mapp',
+    '🗂' => 'indexflikar',
+    '📅' => 'kalender',
+    '📆' => 'avdragbar kalender',
+    '🗒' => 'anteckningsblock',
+    '🗓' => 'spiralbunden kalender',
+    '📇' => 'kortregister',
+    '📈' => 'uppåtgående trend',
+    '📉' => 'nedåtgående trend',
+    '📊' => 'stapeldiagram',
+    '📋' => 'skrivplatta',
+    '📌' => 'kartnål',
+    '📍' => 'knappnål',
+    '📎' => 'gem',
+    '🖇' => 'länkade gem',
+    '📏' => 'linjal',
+    '📐' => 'rätvinklig linjal',
+    '✂' => 'sax',
+    '🗃' => 'kartotek',
+    '🗄' => 'dokumentskåp',
+    '🗑' => 'papperskorg',
+    '🔒' => 'låst lås',
+    '🔓' => 'öppet lås',
+    '🔏' => 'lås med bläckpenna',
+    '🔐' => 'lås med nyckel',
+    '🔑' => 'nyckel',
+    '🗝' => 'gammal nyckel',
+    '🔨' => 'hammare',
+    '🪓' => 'yxa',
+    '⛏' => 'hacka',
+    '⚒' => 'hammare och hacka',
+    '🛠' => 'hammare och skiftnyckel',
+    '🗡' => 'dolk',
+    '⚔' => 'korslagda svärd',
+    '💣' => 'bomb',
+    '🪃' => 'boomerang',
+    '🏹' => 'pil och båge',
+    '🛡' => 'sköld',
+    '🪚' => 'fogsvans',
+    '🔧' => 'skiftnyckel',
+    '🪛' => 'skruvmejsel',
+    '🔩' => 'skruv och mutter',
+    '⚙' => 'kugghjul',
+    '🗜' => 'skruvtving',
+    '⚖' => 'balansvåg',
+    '🦯' => 'blindkäpp',
+    '🔗' => 'länk',
+    '⛓' => 'kedjor',
+    '🪝' => 'krok',
+    '🧰' => 'verktygslåda',
+    '🧲' => 'magnet',
+    '🪜' => 'stege',
+    '🪏' => 'spade',
+    '⚗' => 'retort',
+    '🧪' => 'provrör',
+    '🧫' => 'petriskål',
+    '🧬' => 'DNA',
+    '🔬' => 'mikroskop',
+    '🔭' => 'teleskop',
+    '📡' => 'tv-satellit',
+    '💉' => 'spruta',
+    '🩸' => 'blodsdroppe',
+    '💊' => 'piller',
+    '🩹' => 'plåster',
+    '🩼' => 'krycka',
+    '🩺' => 'stetoskop',
+    '🩻' => 'röntgen',
+    '🚪' => 'dörr',
+    '🛗' => 'hiss',
+    '🪞' => 'spegel',
+    '🪟' => 'fönster',
+    '🛏' => 'säng',
+    '🛋' => 'soffa och lampa',
+    '🪑' => 'stol',
+    '🚽' => 'toalett',
+    '🪠' => 'vaskrensare',
+    '🚿' => 'dusch',
+    '🛁' => 'badkar',
+    '🪤' => 'musfälla',
+    '🪒' => 'rakhyvel',
+    '🧴' => 'lotionflaska',
+    '🧷' => 'säkerhetsnål',
+    '🧹' => 'kvast',
+    '🧺' => 'korg',
+    '🧻' => 'toarulle',
+    '🪣' => 'spann',
+    '🧼' => 'tvål',
+    '🫧' => 'bubblor',
+    '🪥' => 'tandborste',
+    '🧽' => 'tvättsvamp',
+    '🧯' => 'brandsläckare',
+    '🛒' => 'shoppingvagn',
+    '🚬' => 'cigarett',
+    '⚰' => 'kista',
+    '🪦' => 'gravsten',
+    '⚱' => 'begravningsurna',
+    '🧿' => 'onda ögat-sten',
+    '🪬' => 'hamsa',
+    '🗿' => 'staty',
+    '🪧' => 'plakat',
+    '🪪' => 'ID-kort',
+    '🏧' => 'bankomat',
+    '🚮' => 'soptunna',
+    '🚰' => 'dricksvatten',
+    '♿' => 'rullstolssymbol',
+    '🚹' => 'herrtoalett',
+    '🚺' => 'damtoalett',
+    '🚻' => 'wc-skylt',
+    '🚼' => 'bebissymbol',
+    '🚾' => 'WC',
+    '🛂' => 'passkontroll',
+    '🛃' => 'tull',
+    '🛄' => 'bagagehämtning',
+    '🛅' => 'kvarlämnat bagage',
+    '⚠' => 'varning',
+    '🚸' => 'passerande barn',
+    '⛔' => 'förbud mot infart med fordon',
+    '🚫' => 'förbjudet',
+    '🚳' => 'förbud mot trafik med cykel',
+    '🚭' => 'rökning förbjuden',
+    '🚯' => 'skräpa inte ner',
+    '🚱' => 'ej dricksvatten',
+    '🚷' => 'förbud mot gångtrafik',
+    '📵' => 'mobil förbjuden',
+    '🔞' => 'ej för minderåriga',
+    '☢' => 'varning för strålrisk',
+    '☣' => 'biologisk fara',
+    '⬆' => 'uppåtpil',
+    '↗' => 'uppåtpil höger',
+    '➡' => 'högerpil',
+    '↘' => 'nedåtpil höger',
+    '⬇' => 'nedåtpil',
+    '↙' => 'nedåtpil vänster',
+    '⬅' => 'vänsterpil',
+    '↖' => 'uppåtpil vänster',
+    '↕' => 'pil upp och ned',
+    '↔' => 'pil höger och vänster',
+    '↩' => 'svängd vänsterpil',
+    '↪' => 'svängd högerpil',
+    '⤴' => 'svängd uppåtpil',
+    '⤵' => 'svängd nedåtpil',
+    '🔃' => 'vertikala pilar medurs',
+    '🔄' => 'pilar moturs',
+    '🔙' => 'Back med vänsterpil',
+    '🔚' => 'End med högerpil',
+    '🔛' => 'ON! med pil höger och vänster ovanför',
+    '🔜' => 'Soon med högerpil ovanför',
+    '🔝' => 'Top med uppåtpil',
+    '🛐' => 'plats för tillbedjan',
+    '⚛' => 'symbol för atom',
+    '🕉' => 'aum-tecken',
+    '✡' => 'davidsstjärna',
+    '☸' => 'livets hjul',
+    '☯' => 'yin och yang',
+    '✝' => 'latinskt kors',
+    '☦' => 'ortodoxt kors',
+    '☪' => 'stjärna och halvmåne',
+    '☮' => 'fredssymbol',
+    '🕎' => 'menora',
+    '🔯' => 'sexuddig stjärna med prick',
+    '🪯' => 'khanda',
+    '♈' => 'Väduren',
+    '♉' => 'Oxen',
+    '♊' => 'Tvillingarna',
+    '♋' => 'Kräftan',
+    '♌' => 'Lejonet',
+    '♍' => 'Jungfrun',
+    '♎' => 'Vågen',
+    '♏' => 'Skorpionen',
+    '♐' => 'Skytten',
+    '♑' => 'Stenbocken',
+    '♒' => 'Vattumannen',
+    '♓' => 'Fiskarna',
+    '⛎' => 'Ormbäraren',
+    '🔀' => 'blanda låtar',
+    '🔁' => 'upprepning',
+    '🔂' => 'upprepa en låt',
+    '▶' => 'uppspelningsknapp',
+    '⏩' => 'framåtspolningsknapp',
+    '⏭' => 'knapp för nästa spår',
+    '⏯' => 'knapp för spela eller pausa',
+    '◀' => 'bakåtspolningsknapp',
+    '⏪' => 'knapp för snabbspola tillbaka',
+    '⏮' => 'knapp för sista spåret',
+    '🔼' => 'uppåtknapp',
+    '⏫' => 'dubbla uppåtpilar',
+    '🔽' => 'nedåtknapp',
+    '⏬' => 'dubbla nedåtpilar',
+    '⏸' => 'pausknapp',
+    '⏹' => 'stoppknapp',
+    '⏺' => 'inspelningsknapp',
+    '⏏' => 'utmatningsknapp',
+    '🎦' => 'bio',
+    '🔅' => 'låg ljusstyrka',
+    '🔆' => 'hög ljusstyrka',
+    '📶' => 'stapel signalstyrka',
+    '🛜' => 'trådlös',
+    '📳' => 'vibrationsläge',
+    '📴' => 'avstängd mobil',
+    '♀' => 'kvinnosymbol',
+    '♂' => 'manssymbol',
+    '⚧' => 'transgendersymbol',
+    '✖' => 'multiplicera',
+    '➕' => 'addera',
+    '➖' => 'subtrahera',
+    '➗' => 'dividera',
+    '🟰' => 'fetstilt likamedtecken',
+    '♾' => 'oändlighet',
+    '‼' => 'dubbla utropstecken',
+    '⁉' => 'utropstecken och frågetecken',
+    '❓' => 'rött frågetecken',
+    '❔' => 'vitt frågetecken',
+    '❕' => 'vitt utropstecken',
+    '❗' => 'rött utropstecken',
+    '〰' => 'vågigt tankstreck',
+    '💱' => 'valutaväxling',
+    '💲' => 'dollartecken',
+    '⚕' => 'medicinsk symbol',
+    '♻' => 'återvinningssymbol',
+    '⚜' => 'fransk lilja',
+    '🔱' => 'treudd',
+    '📛' => 'namnskylt',
+    '🔰' => 'japansk symbol för nybörjare',
+    '⭕' => 'tung stor cirkel',
+    '✅' => 'vit bockmarkering',
+    '☑' => 'kryssruta med bockmarkering',
+    '✔' => 'bockmarkering',
+    '❌' => 'rött kryss',
+    '❎' => 'vitt kryss i ruta',
+    '➰' => 'ögla',
+    '➿' => 'dubbel ögla',
+    '〽' => 'japansk kommatering',
+    '✳' => 'åttauddig spetsig stjärna',
+    '✴' => 'åttauddig stjärna',
+    '❇' => 'glittra',
+    '™' => 'skyddat varumärke',
+    '🫟' => 'stänk',
+    '🔠' => 'versaler',
+    '🔡' => 'gemener',
+    '🔢' => 'siffror',
+    '🔣' => 'specialtecken',
+    '🔤' => 'bokstäver',
+    '🅰' => 'blodgrupp A',
+    '🆎' => 'blodgrupp AB',
+    '🅱' => 'blodgrupp B',
+    '🆑' => 'rensa-symbol',
+    '🆒' => 'COOL-knapp',
+    '🆓' => 'FREE-knapp',
+    'ℹ' => 'information',
+    '🆔' => 'ID-knapp',
+    'Ⓜ' => 'm i en cirkel',
+    '🆕' => 'NEW-knapp',
+    '🆖' => 'NG-knapp',
+    '🅾' => 'blodgrupp 0',
+    '🆗' => 'OK-knapp',
+    '🅿' => 'P-knapp',
+    '🆘' => 'SOS-knapp',
+    '🆙' => 'UP!-knapp',
+    '🆚' => 'VS-knapp',
+    '🈁' => 'japansk ”här”-knapp',
+    '🈂' => 'japansk ”serviceavgift”-knapp',
+    '🈷' => 'japansk ”månadsbelopp”-knapp',
+    '🈶' => 'japansk ”inte gratis”-knapp',
+    '🈯' => 'japansk ”reserverad”-knapp',
+    '🉐' => 'japansk ”fynd”-knapp',
+    '🈹' => 'japansk ”rabatt”-knapp',
+    '🈚' => 'japansk ”gratis”-knapp',
+    '🈲' => 'japansk ”förbjudet”-knapp',
+    '🉑' => 'japansk ”godtagbart”-knapp',
+    '🈸' => 'japansk ”användning”-knapp',
+    '🈴' => 'japansk ”godkänt betyg”-knapp',
+    '🈳' => 'japansk ”lediga rum”-knapp',
+    '㊗' => 'japansk ”grattis”-knapp',
+    '㊙' => 'japansk ”hemligt”-knapp',
+    '🈺' => 'japansk ”öppet”-knapp',
+    '🈵' => 'japansk ”fullbelagt”-knapp',
+    '🔴' => 'röd cirkel',
+    '🟠' => 'orange cirkel',
+    '🟡' => 'gul cirkel',
+    '🟢' => 'grön cirkel',
+    '🔵' => 'blå cirkel',
+    '🟣' => 'lila cirkel',
+    '🟤' => 'brun cirkel',
+    '⚫' => 'svart cirkel',
+    '⚪' => 'vit cirkel',
+    '🟥' => 'röd kvadrat',
+    '🟧' => 'orange kvadrat',
+    '🟨' => 'gul kvadrat',
+    '🟩' => 'grön kvadrat',
+    '🟦' => 'blå kvadrat',
+    '🟪' => 'lila kvadrat',
+    '🟫' => 'brun kvadrat',
+    '⬛' => 'stor svart ruta',
+    '⬜' => 'stor vit ruta',
+    '◼' => 'mellanstor svart ruta',
+    '◻' => 'mellanstor vit ruta',
+    '◾' => 'mellanliten svart ruta',
+    '◽' => 'mellanliten vit ruta',
+    '▪' => 'liten svart ruta',
+    '▫' => 'liten vit ruta',
+    '🔶' => 'stor orange diamantform',
+    '🔷' => 'stor blå diamantform',
+    '🔸' => 'liten orange diamantform',
+    '🔹' => 'liten blå romb',
+    '🔺' => 'uppåtpekande röd triangel',
+    '🔻' => 'nedåtpekande röd triangel',
+    '💠' => 'diamantform med en prick',
+    '🔘' => 'alternativknapp',
+    '🔳' => 'vit fyrkantig knapp',
+    '🔲' => 'svart fyrkantig knapp',
+    '🏁' => 'schackrutig flagga',
+    '🚩' => 'trekantig flagga',
+    '🎌' => 'korsade flaggor',
+    '🏴' => 'svart flagga',
+    '🏳' => 'vit flagga',
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sv.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sv.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sv.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sv.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'puss: kvinna, kvinna, mörk hy, mellanfärgad hy',
     '👩🏿‍❤‍💋‍👩🏾' => 'puss: kvinna, kvinna, mörk hy, mellanmörk hy',
     '👩🏿‍❤‍💋‍👩🏿' => 'puss: kvinna, kvinna, mörk hy',
+    '🧑🏻‍🫯‍🧑🏼' => 'brottande personer: ljus hy, mellanljus hy',
+    '🧑🏻‍🫯‍🧑🏽' => 'brottande personer: ljus hy, mellanfärgad hy',
+    '🧑🏻‍🫯‍🧑🏾' => 'brottande personer: ljus hy, mellanmörk hy',
+    '🧑🏻‍🫯‍🧑🏿' => 'brottande personer: ljus hy, mörk hy',
+    '🧑🏼‍🫯‍🧑🏻' => 'brottande personer: mellanljus hy, ljus hy',
+    '🧑🏼‍🫯‍🧑🏽' => 'brottande personer: mellanljus hy, mellanfärgad hy',
+    '🧑🏼‍🫯‍🧑🏾' => 'brottande personer: mellanljus hy, mellanmörk hy',
+    '🧑🏼‍🫯‍🧑🏿' => 'brottande personer: mellanljus hy, mörk hy',
+    '🧑🏽‍🫯‍🧑🏻' => 'brottande personer: mellanfärgad hy, ljus hy',
+    '🧑🏽‍🫯‍🧑🏼' => 'brottande personer: mellanfärgad hy, mellanljus hy',
+    '🧑🏽‍🫯‍🧑🏾' => 'brottande personer: mellanfärgad hy, mellanmörk hy',
+    '🧑🏽‍🫯‍🧑🏿' => 'brottande personer: mellanfärgad hy, mörk hy',
+    '🧑🏾‍🫯‍🧑🏻' => 'brottande personer: mellanmörk hy, ljus hy',
+    '🧑🏾‍🫯‍🧑🏼' => 'brottande personer: mellanmörk hy, mellanljus hy',
+    '🧑🏾‍🫯‍🧑🏽' => 'brottande personer: mellanmörk hy, mellanfärgad hy',
+    '🧑🏾‍🫯‍🧑🏿' => 'brottande personer: mellanmörk hy, mörk hy',
+    '🧑🏿‍🫯‍🧑🏻' => 'brottande personer: mörk hy, ljus hy',
+    '🧑🏿‍🫯‍🧑🏼' => 'brottande personer: mörk hy, mellanljus hy',
+    '🧑🏿‍🫯‍🧑🏽' => 'brottande personer: mörk hy, mellanfärgad hy',
+    '🧑🏿‍🫯‍🧑🏾' => 'brottande personer: mörk hy, mellanmörk hy',
     '🧑🏻‍❤‍🧑🏼' => 'par med hjärta: person, person, ljus hy, mellanljus hy',
     '🧑🏻‍❤‍🧑🏽' => 'par med hjärta: person, person, ljus hy, mellanfärgad hy',
     '🧑🏻‍❤‍🧑🏾' => 'par med hjärta: person, person, ljus hy, mellanmörk hy',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'par med hjärta: person, person, mörk hy, mellanljus hy',
     '🧑🏿‍❤‍🧑🏽' => 'par med hjärta: person, person, mörk hy, mellanfärgad hy',
     '🧑🏿‍❤‍🧑🏾' => 'par med hjärta: person, person, mörk hy, mellanmörk hy',
+    '🧑🏻‍🐰‍🧑🏼' => 'personer med kaninöron: ljus hy, mellanljus hy',
+    '🧑🏻‍🐰‍🧑🏽' => 'personer med kaninöron: ljus hy, mellanfärgad hy',
+    '🧑🏻‍🐰‍🧑🏾' => 'personer med kaninöron: ljus hy, mellanmörk hy',
+    '🧑🏻‍🐰‍🧑🏿' => 'personer med kaninöron: ljus hy, mörk hy',
+    '🧑🏼‍🐰‍🧑🏻' => 'personer med kaninöron: mellanljus hy, ljus hy',
+    '🧑🏼‍🐰‍🧑🏽' => 'personer med kaninöron: mellanljus hy, mellanfärgad hy',
+    '🧑🏼‍🐰‍🧑🏾' => 'personer med kaninöron: mellanljus hy, mellanmörk hy',
+    '🧑🏼‍🐰‍🧑🏿' => 'personer med kaninöron: mellanljus hy, mörk hy',
+    '🧑🏽‍🐰‍🧑🏻' => 'personer med kaninöron: mellanfärgad hy, ljus hy',
+    '🧑🏽‍🐰‍🧑🏼' => 'personer med kaninöron: mellanfärgad hy, mellanljus hy',
+    '🧑🏽‍🐰‍🧑🏾' => 'personer med kaninöron: mellanfärgad hy, mellanmörk hy',
+    '🧑🏽‍🐰‍🧑🏿' => 'personer med kaninöron: mellanfärgad hy, mörk hy',
+    '🧑🏾‍🐰‍🧑🏻' => 'personer med kaninöron: mellanmörk hy, ljus hy',
+    '🧑🏾‍🐰‍🧑🏼' => 'personer med kaninöron: mellanmörk hy, mellanljus hy',
+    '🧑🏾‍🐰‍🧑🏽' => 'personer med kaninöron: mellanmörk hy, mellanfärgad hy',
+    '🧑🏾‍🐰‍🧑🏿' => 'personer med kaninöron: mellanmörk hy, mörk hy',
+    '🧑🏿‍🐰‍🧑🏻' => 'personer med kaninöron: mörk hy, ljus hy',
+    '🧑🏿‍🐰‍🧑🏼' => 'personer med kaninöron: mörk hy, mellanljus hy',
+    '🧑🏿‍🐰‍🧑🏽' => 'personer med kaninöron: mörk hy, mellanfärgad hy',
+    '🧑🏿‍🐰‍🧑🏾' => 'personer med kaninöron: mörk hy, mellanmörk hy',
+    '👨🏻‍🫯‍👨🏼' => 'brottande män: ljus hy, mellanljus hy',
+    '👨🏻‍🫯‍👨🏽' => 'brottande män: ljus hy, mellanfärgad hy',
+    '👨🏻‍🫯‍👨🏾' => 'brottande män: ljus hy, mellanmörk hy',
+    '👨🏻‍🫯‍👨🏿' => 'brottande män: ljus hy, mörk hy',
+    '👨🏼‍🫯‍👨🏻' => 'brottande män: mellanljus hy, ljus hy',
+    '👨🏼‍🫯‍👨🏽' => 'brottande män: mellanljus hy, mellanfärgad hy',
+    '👨🏼‍🫯‍👨🏾' => 'brottande män: mellanljus hy, mellanmörk hy',
+    '👨🏼‍🫯‍👨🏿' => 'brottande män: mellanljus hy, mörk hy',
+    '👨🏽‍🫯‍👨🏻' => 'brottande män: mellanfärgad hy, ljus hy',
+    '👨🏽‍🫯‍👨🏼' => 'brottande män: mellanfärgad hy, mellanljus hy',
+    '👨🏽‍🫯‍👨🏾' => 'brottande män: mellanfärgad hy, mellanmörk hy',
+    '👨🏽‍🫯‍👨🏿' => 'brottande män: mellanfärgad hy, mörk hy',
+    '👨🏾‍🫯‍👨🏻' => 'brottande män: mellanmörk hy, ljus hy',
+    '👨🏾‍🫯‍👨🏼' => 'brottande män: mellanmörk hy, mellanljus hy',
+    '👨🏾‍🫯‍👨🏽' => 'brottande män: mellanmörk hy, mellanfärgad hy',
+    '👨🏾‍🫯‍👨🏿' => 'brottande män: mellanmörk hy, mörk hy',
+    '👨🏿‍🫯‍👨🏻' => 'brottande män: mörk hy, ljus hy',
+    '👨🏿‍🫯‍👨🏼' => 'brottande män: mörk hy, mellanljus hy',
+    '👨🏿‍🫯‍👨🏽' => 'brottande män: mörk hy, mellanfärgad hy',
+    '👨🏿‍🫯‍👨🏾' => 'brottande män: mörk hy, mellanmörk hy',
     '👨🏻‍❤‍👨🏻' => 'par med hjärta: man, man, ljus hy',
     '👨🏻‍❤‍👨🏼' => 'par med hjärta: man, man, ljus hy, mellanljus hy',
     '👨🏻‍❤‍👨🏽' => 'par med hjärta: man, man, ljus hy, mellanfärgad hy',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'par med hjärta: man, man, mörk hy, mellanfärgad hy',
     '👨🏿‍❤‍👨🏾' => 'par med hjärta: man, man, mörk hy, mellanmörk hy',
     '👨🏿‍❤‍👨🏿' => 'par med hjärta: man, man, mörk hy',
+    '👨🏻‍🐰‍👨🏼' => 'män med kaninöron: ljus hy, mellanljus hy',
+    '👨🏻‍🐰‍👨🏽' => 'män med kaninöron: ljus hy, mellanfärgad hy',
+    '👨🏻‍🐰‍👨🏾' => 'män med kaninöron: ljus hy, mellanmörk hy',
+    '👨🏻‍🐰‍👨🏿' => 'män med kaninöron: ljus hy, mörk hy',
+    '👨🏼‍🐰‍👨🏻' => 'män med kaninöron: mellanljus hy, ljus hy',
+    '👨🏼‍🐰‍👨🏽' => 'män med kaninöron: mellanljus hy, mellanfärgad hy',
+    '👨🏼‍🐰‍👨🏾' => 'män med kaninöron: mellanljus hy, mellanmörk hy',
+    '👨🏼‍🐰‍👨🏿' => 'män med kaninöron: mellanljus hy, mörk hy',
+    '👨🏽‍🐰‍👨🏻' => 'män med kaninöron: mellanfärgad hy, ljus hy',
+    '👨🏽‍🐰‍👨🏼' => 'män med kaninöron: mellanfärgad hy, mellanljus hy',
+    '👨🏽‍🐰‍👨🏾' => 'män med kaninöron: mellanfärgad hy, mellanmörk hy',
+    '👨🏽‍🐰‍👨🏿' => 'män med kaninöron: mellanfärgad hy, mörk hy',
+    '👨🏾‍🐰‍👨🏻' => 'män med kaninöron: mellanmörk hy, ljus hy',
+    '👨🏾‍🐰‍👨🏼' => 'män med kaninöron: mellanmörk hy, mellanljus hy',
+    '👨🏾‍🐰‍👨🏽' => 'män med kaninöron: mellanmörk hy, mellanfärgad hy',
+    '👨🏾‍🐰‍👨🏿' => 'män med kaninöron: mellanmörk hy, mörk hy',
+    '👨🏿‍🐰‍👨🏻' => 'män med kaninöron: mörk hy, ljus hy',
+    '👨🏿‍🐰‍👨🏼' => 'män med kaninöron: mörk hy, mellanljus hy',
+    '👨🏿‍🐰‍👨🏽' => 'män med kaninöron: mörk hy, mellanfärgad hy',
+    '👨🏿‍🐰‍👨🏾' => 'män med kaninöron: mörk hy, mellanmörk hy',
+    '👩🏻‍🫯‍👩🏼' => 'brottande kvinnor: ljus hy, mellanljus hy',
+    '👩🏻‍🫯‍👩🏽' => 'brottande kvinnor: ljus hy, mellanfärgad hy',
+    '👩🏻‍🫯‍👩🏾' => 'brottande kvinnor: ljus hy, mellanmörk hy',
+    '👩🏻‍🫯‍👩🏿' => 'brottande kvinnor: ljus hy, mörk hy',
+    '👩🏼‍🫯‍👩🏻' => 'brottande kvinnor: mellanljus hy, ljus hy',
+    '👩🏼‍🫯‍👩🏽' => 'brottande kvinnor: mellanljus hy, mellanfärgad hy',
+    '👩🏼‍🫯‍👩🏾' => 'brottande kvinnor: mellanljus hy, mellanmörk hy',
+    '👩🏼‍🫯‍👩🏿' => 'brottande kvinnor: mellanljus hy, mörk hy',
+    '👩🏽‍🫯‍👩🏻' => 'brottande kvinnor: mellanfärgad hy, ljus hy',
+    '👩🏽‍🫯‍👩🏼' => 'brottande kvinnor: mellanfärgad hy, mellanljus hy',
+    '👩🏽‍🫯‍👩🏾' => 'brottande kvinnor: mellanfärgad hy, mellanmörk hy',
+    '👩🏽‍🫯‍👩🏿' => 'brottande kvinnor: mellanfärgad hy, mörk hy',
+    '👩🏾‍🫯‍👩🏻' => 'brottande kvinnor: mellanmörk hy, ljus hy',
+    '👩🏾‍🫯‍👩🏼' => 'brottande kvinnor: mellanmörk hy, mellanljus hy',
+    '👩🏾‍🫯‍👩🏽' => 'brottande kvinnor: mellanmörk hy, mellanfärgad hy',
+    '👩🏾‍🫯‍👩🏿' => 'brottande kvinnor: mellanmörk hy, mörk hy',
+    '👩🏿‍🫯‍👩🏻' => 'brottande kvinnor: mörk hy, ljus hy',
+    '👩🏿‍🫯‍👩🏼' => 'brottande kvinnor: mörk hy, mellanljus hy',
+    '👩🏿‍🫯‍👩🏽' => 'brottande kvinnor: mörk hy, mellanfärgad hy',
+    '👩🏿‍🫯‍👩🏾' => 'brottande kvinnor: mörk hy, mellanmörk hy',
     '👩🏻‍❤‍👨🏻' => 'par med hjärta: kvinna, man, ljus hy',
     '👩🏻‍❤‍👨🏼' => 'par med hjärta: kvinna, man, ljus hy, mellanljus hy',
     '👩🏻‍❤‍👨🏽' => 'par med hjärta: kvinna, man, ljus hy, mellanfärgad hy',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'par med hjärta: kvinna, kvinna, mörk hy, mellanfärgad hy',
     '👩🏿‍❤‍👩🏾' => 'par med hjärta: kvinna, kvinna, mörk hy, mellanmörk hy',
     '👩🏿‍❤‍👩🏿' => 'par med hjärta: kvinna, kvinna, mörk hy',
+    '👩🏻‍🐰‍👩🏼' => 'kvinnor med kaninöron: ljus hy, mellanljus hy',
+    '👩🏻‍🐰‍👩🏽' => 'kvinnor med kaninöron: ljus hy, mellanfärgad hy',
+    '👩🏻‍🐰‍👩🏾' => 'kvinnor med kaninöron: ljus hy, mellanmörk hy',
+    '👩🏻‍🐰‍👩🏿' => 'kvinnor med kaninöron: ljus hy, mörk hy',
+    '👩🏼‍🐰‍👩🏻' => 'kvinnor med kaninöron: mellanljus hy, ljus hy',
+    '👩🏼‍🐰‍👩🏽' => 'kvinnor med kaninöron: mellanljus hy, mellanfärgad hy',
+    '👩🏼‍🐰‍👩🏾' => 'kvinnor med kaninöron: mellanljus hy, mellanmörk hy',
+    '👩🏼‍🐰‍👩🏿' => 'kvinnor med kaninöron: mellanljus hy, mörk hy',
+    '👩🏽‍🐰‍👩🏻' => 'kvinnor med kaninöron: mellanfärgad hy, ljus hy',
+    '👩🏽‍🐰‍👩🏼' => 'kvinnor med kaninöron: mellanfärgad hy, mellanljus hy',
+    '👩🏽‍🐰‍👩🏾' => 'kvinnor med kaninöron: mellanfärgad hy, mellanmörk hy',
+    '👩🏽‍🐰‍👩🏿' => 'kvinnor med kaninöron: mellanfärgad hy, mörk hy',
+    '👩🏾‍🐰‍👩🏻' => 'kvinnor med kaninöron: mellanmörk hy, ljus hy',
+    '👩🏾‍🐰‍👩🏼' => 'kvinnor med kaninöron: mellanmörk hy, mellanljus hy',
+    '👩🏾‍🐰‍👩🏽' => 'kvinnor med kaninöron: mellanmörk hy, mellanfärgad hy',
+    '👩🏾‍🐰‍👩🏿' => 'kvinnor med kaninöron: mellanmörk hy, mörk hy',
+    '👩🏿‍🐰‍👩🏻' => 'kvinnor med kaninöron: mörk hy, ljus hy',
+    '👩🏿‍🐰‍👩🏼' => 'kvinnor med kaninöron: mörk hy, mellanljus hy',
+    '👩🏿‍🐰‍👩🏽' => 'kvinnor med kaninöron: mörk hy, mellanfärgad hy',
+    '👩🏿‍🐰‍👩🏾' => 'kvinnor med kaninöron: mörk hy, mellanmörk hy',
     '🧑🏻‍🤝‍🧑🏻' => 'personer som håller hand: ljus hy',
     '🧑🏻‍🤝‍🧑🏼' => 'personer som håller hand: ljus hy, mellanljus hy',
     '🧑🏻‍🤝‍🧑🏽' => 'personer som håller hand: ljus hy, mellanfärgad hy',
@@ -291,82 +411,82 @@
     '🏴󠁧󠁢󠁥󠁮󠁧󠁿' => 'flagga: England',
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'flagga: Skottland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'flagga: Wales',
-    '🧑‍🧑‍🧒‍🧒' => 'familj, vuxen, vuxen, barn, barn',
-    '🚶🏻‍♀‍➡' => 'kvinna som går åt höger',
-    '🚶🏼‍♀‍➡' => 'kvinna som går åt höger',
-    '🚶🏽‍♀‍➡' => 'kvinna som går åt höger',
-    '🚶🏾‍♀‍➡' => 'kvinna som går åt höger',
-    '🚶🏿‍♀‍➡' => 'kvinna som går åt höger',
-    '🚶🏻‍♂‍➡' => 'man som går åt höger',
-    '🚶🏼‍♂‍➡' => 'man som går åt höger',
-    '🚶🏽‍♂‍➡' => 'man som går åt höger',
-    '🚶🏾‍♂‍➡' => 'man som går åt höger',
-    '🚶🏿‍♂‍➡' => 'man som går åt höger',
-    '🧎🏻‍♀‍➡' => 'knäsittande kvinna åt höger',
-    '🧎🏼‍♀‍➡' => 'knäsittande kvinna åt höger',
-    '🧎🏽‍♀‍➡' => 'knäsittande kvinna åt höger',
-    '🧎🏾‍♀‍➡' => 'knäsittande kvinna åt höger',
-    '🧎🏿‍♀‍➡' => 'knäsittande kvinna åt höger',
-    '🧎🏻‍♂‍➡' => 'knäsittande man åt höger',
-    '🧎🏼‍♂‍➡' => 'knäsittande man åt höger',
-    '🧎🏽‍♂‍➡' => 'knäsittande man åt höger',
-    '🧎🏾‍♂‍➡' => 'knäsittande man åt höger',
-    '🧎🏿‍♂‍➡' => 'knäsittande man åt höger',
-    '🧑🏻‍🦯‍➡' => 'person med vit käpp åt höger',
-    '🧑🏼‍🦯‍➡' => 'person med vit käpp åt höger',
-    '🧑🏽‍🦯‍➡' => 'person med vit käpp åt höger',
-    '🧑🏾‍🦯‍➡' => 'person med vit käpp åt höger',
-    '🧑🏿‍🦯‍➡' => 'person med vit käpp åt höger',
-    '👨🏻‍🦯‍➡' => 'man med vit käpp åt höger',
-    '👨🏼‍🦯‍➡' => 'man med vit käpp åt höger',
-    '👨🏽‍🦯‍➡' => 'man med vit käpp åt höger',
-    '👨🏾‍🦯‍➡' => 'man med vit käpp åt höger',
-    '👨🏿‍🦯‍➡' => 'man med vit käpp åt höger',
-    '👩🏻‍🦯‍➡' => 'kvinna med vit käpp åt höger',
-    '👩🏼‍🦯‍➡' => 'kvinna med vit käpp åt höger',
-    '👩🏽‍🦯‍➡' => 'kvinna med vit käpp åt höger',
-    '👩🏾‍🦯‍➡' => 'kvinna med vit käpp åt höger',
-    '👩🏿‍🦯‍➡' => 'kvinna med vit käpp åt höger',
-    '🧑🏻‍🦼‍➡' => 'person i permobil åt höger',
-    '🧑🏼‍🦼‍➡' => 'person i permobil åt höger',
-    '🧑🏽‍🦼‍➡' => 'person i permobil åt höger',
-    '🧑🏾‍🦼‍➡' => 'person i permobil åt höger',
-    '🧑🏿‍🦼‍➡' => 'person i permobil åt höger',
-    '👨🏻‍🦼‍➡' => 'man i permobil åt höger',
-    '👨🏼‍🦼‍➡' => 'man i permobil åt höger',
-    '👨🏽‍🦼‍➡' => 'man i permobil åt höger',
-    '👨🏾‍🦼‍➡' => 'man i permobil åt höger',
-    '👨🏿‍🦼‍➡' => 'man i permobil åt höger',
-    '👩🏻‍🦼‍➡' => 'kvinna i permobil åt höger',
-    '👩🏼‍🦼‍➡' => 'kvinna i permobil åt höger',
-    '👩🏽‍🦼‍➡' => 'kvinna i permobil åt höger',
-    '👩🏾‍🦼‍➡' => 'kvinna i permobil åt höger',
-    '👩🏿‍🦼‍➡' => 'kvinna i permobil åt höger',
-    '🧑🏻‍🦽‍➡' => 'person i manuell rullstol åt höger',
-    '🧑🏼‍🦽‍➡' => 'person i manuell rullstol åt höger',
-    '🧑🏽‍🦽‍➡' => 'person i manuell rullstol åt höger',
-    '🧑🏾‍🦽‍➡' => 'person i manuell rullstol åt höger',
-    '🧑🏿‍🦽‍➡' => 'person i manuell rullstol åt höger',
-    '👨🏻‍🦽‍➡' => 'man i manuell rullstol åt höger',
-    '👨🏼‍🦽‍➡' => 'man i manuell rullstol åt höger',
-    '👨🏽‍🦽‍➡' => 'man i manuell rullstol åt höger',
-    '👨🏾‍🦽‍➡' => 'man i manuell rullstol åt höger',
-    '👨🏿‍🦽‍➡' => 'man i manuell rullstol åt höger',
-    '👩🏻‍🦽‍➡' => 'kvinna i manuell rullstol åt höger',
-    '👩🏼‍🦽‍➡' => 'kvinna i manuell rullstol åt höger',
-    '👩🏽‍🦽‍➡' => 'kvinna i manuell rullstol åt höger',
-    '👩🏾‍🦽‍➡' => 'kvinna i manuell rullstol åt höger',
-    '👩🏿‍🦽‍➡' => 'kvinna i manuell rullstol åt höger',
-    '🏃🏻‍♀‍➡' => 'kvinna som springer åt höger',
-    '🏃🏼‍♀‍➡' => 'kvinna som springer åt höger',
-    '🏃🏽‍♀‍➡' => 'kvinna som springer åt höger',
-    '🏃🏾‍♀‍➡' => 'kvinna som springer åt höger',
-    '🏃🏿‍♀‍➡' => 'kvinna som springer åt höger',
-    '🏃🏻‍♂‍➡' => 'man som springer åt höger',
-    '🏃🏼‍♂‍➡' => 'man som springer åt höger',
-    '🏃🏽‍♂‍➡' => 'man som springer åt höger',
-    '🏃🏾‍♂‍➡' => 'man som springer åt höger',
-    '🏃🏿‍♂‍➡' => 'man som springer åt höger',
+    '🧑‍🧑‍🧒‍🧒' => 'familj: vuxen, vuxen, barn, barn',
+    '🚶🏻‍♀‍➡' => 'kvinna som går: ljus hy, åt höger',
+    '🚶🏼‍♀‍➡' => 'kvinna som går: mellanljus hy, åt höger',
+    '🚶🏽‍♀‍➡' => 'kvinna som går: mellanfärgad hy, åt höger',
+    '🚶🏾‍♀‍➡' => 'kvinna som går: mellanmörk hy, åt höger',
+    '🚶🏿‍♀‍➡' => 'kvinna som går: mörk hy, åt höger',
+    '🚶🏻‍♂‍➡' => 'man som går: ljus hy, åt höger',
+    '🚶🏼‍♂‍➡' => 'man som går: mellanljus hy, åt höger',
+    '🚶🏽‍♂‍➡' => 'man som går: mellanfärgad hy, åt höger',
+    '🚶🏾‍♂‍➡' => 'man som går: mellanmörk hy, åt höger',
+    '🚶🏿‍♂‍➡' => 'man som går: mörk hy, åt höger',
+    '🧎🏻‍♀‍➡' => 'knäsittande kvinna: ljus hy, åt höger',
+    '🧎🏼‍♀‍➡' => 'knäsittande kvinna: mellanljus hy, åt höger',
+    '🧎🏽‍♀‍➡' => 'knäsittande kvinna: mellanfärgad hy, åt höger',
+    '🧎🏾‍♀‍➡' => 'knäsittande kvinna: mellanmörk hy, åt höger',
+    '🧎🏿‍♀‍➡' => 'knäsittande kvinna: mörk hy, åt höger',
+    '🧎🏻‍♂‍➡' => 'knäsittande man: ljus hy, åt höger',
+    '🧎🏼‍♂‍➡' => 'knäsittande man: mellanljus hy, åt höger',
+    '🧎🏽‍♂‍➡' => 'knäsittande man: mellanfärgad hy, åt höger',
+    '🧎🏾‍♂‍➡' => 'knäsittande man: mellanmörk hy, åt höger',
+    '🧎🏿‍♂‍➡' => 'knäsittande man: mörk hy, åt höger',
+    '🧑🏻‍🦯‍➡' => 'person med vit käpp: ljus hy, åt höger',
+    '🧑🏼‍🦯‍➡' => 'person med vit käpp: mellanljus hy, åt höger',
+    '🧑🏽‍🦯‍➡' => 'person med vit käpp: mellanfärgad hy, åt höger',
+    '🧑🏾‍🦯‍➡' => 'person med vit käpp: mellanmörk hy, åt höger',
+    '🧑🏿‍🦯‍➡' => 'person med vit käpp: mörk hy, åt höger',
+    '👨🏻‍🦯‍➡' => 'man med vit käpp: ljus hy, åt höger',
+    '👨🏼‍🦯‍➡' => 'man med vit käpp: mellanljus hy, åt höger',
+    '👨🏽‍🦯‍➡' => 'man med vit käpp: mellanfärgad hy, åt höger',
+    '👨🏾‍🦯‍➡' => 'man med vit käpp: mellanmörk hy, åt höger',
+    '👨🏿‍🦯‍➡' => 'man med vit käpp: mörk hy, åt höger',
+    '👩🏻‍🦯‍➡' => 'kvinna med vit käpp: ljus hy, åt höger',
+    '👩🏼‍🦯‍➡' => 'kvinna med vit käpp: mellanljus hy, åt höger',
+    '👩🏽‍🦯‍➡' => 'kvinna med vit käpp: mellanfärgad hy, åt höger',
+    '👩🏾‍🦯‍➡' => 'kvinna med vit käpp: mellanmörk hy, åt höger',
+    '👩🏿‍🦯‍➡' => 'kvinna med vit käpp: mörk hy, åt höger',
+    '🧑🏻‍🦼‍➡' => 'person i permobil: ljus hy, åt höger',
+    '🧑🏼‍🦼‍➡' => 'person i permobil: mellanljus hy, åt höger',
+    '🧑🏽‍🦼‍➡' => 'person i permobil: mellanfärgad hy, åt höger',
+    '🧑🏾‍🦼‍➡' => 'person i permobil: mellanmörk hy, åt höger',
+    '🧑🏿‍🦼‍➡' => 'person i permobil: mörk hy, åt höger',
+    '👨🏻‍🦼‍➡' => 'man i permobil: ljus hy, åt höger',
+    '👨🏼‍🦼‍➡' => 'man i permobil: mellanljus hy, åt höger',
+    '👨🏽‍🦼‍➡' => 'man i permobil: mellanfärgad hy, åt höger',
+    '👨🏾‍🦼‍➡' => 'man i permobil: mellanmörk hy, åt höger',
+    '👨🏿‍🦼‍➡' => 'man i permobil: mörk hy, åt höger',
+    '👩🏻‍🦼‍➡' => 'kvinna i permobil: ljus hy, åt höger',
+    '👩🏼‍🦼‍➡' => 'kvinna i permobil: mellanljus hy, åt höger',
+    '👩🏽‍🦼‍➡' => 'kvinna i permobil: mellanfärgad hy, åt höger',
+    '👩🏾‍🦼‍➡' => 'kvinna i permobil: mellanmörk hy, åt höger',
+    '👩🏿‍🦼‍➡' => 'kvinna i permobil: mörk hy, åt höger',
+    '🧑🏻‍🦽‍➡' => 'person i manuell rullstol: ljus hy, åt höger',
+    '🧑🏼‍🦽‍➡' => 'person i manuell rullstol: mellanljus hy, åt höger',
+    '🧑🏽‍🦽‍➡' => 'person i manuell rullstol: mellanfärgad hy, åt höger',
+    '🧑🏾‍🦽‍➡' => 'person i manuell rullstol: mellanmörk hy, åt höger',
+    '🧑🏿‍🦽‍➡' => 'person i manuell rullstol: mörk hy, åt höger',
+    '👨🏻‍🦽‍➡' => 'man i manuell rullstol: ljus hy, åt höger',
+    '👨🏼‍🦽‍➡' => 'man i manuell rullstol: mellanljus hy, åt höger',
+    '👨🏽‍🦽‍➡' => 'man i manuell rullstol: mellanfärgad hy, åt höger',
+    '👨🏾‍🦽‍➡' => 'man i manuell rullstol: mellanmörk hy, åt höger',
+    '👨🏿‍🦽‍➡' => 'man i manuell rullstol: mörk hy, åt höger',
+    '👩🏻‍🦽‍➡' => 'kvinna i manuell rullstol: ljus hy, åt höger',
+    '👩🏼‍🦽‍➡' => 'kvinna i manuell rullstol: mellanljus hy, åt höger',
+    '👩🏽‍🦽‍➡' => 'kvinna i manuell rullstol: mellanfärgad hy, åt höger',
+    '👩🏾‍🦽‍➡' => 'kvinna i manuell rullstol: mellanmörk hy, åt höger',
+    '👩🏿‍🦽‍➡' => 'kvinna i manuell rullstol: mörk hy, åt höger',
+    '🏃🏻‍♀‍➡' => 'kvinna som springer: ljus hy, åt höger',
+    '🏃🏼‍♀‍➡' => 'kvinna som springer: mellanljus hy, åt höger',
+    '🏃🏽‍♀‍➡' => 'kvinna som springer: mellanfärgad hy, åt höger',
+    '🏃🏾‍♀‍➡' => 'kvinna som springer: mellanmörk hy, åt höger',
+    '🏃🏿‍♀‍➡' => 'kvinna som springer: mörk hy, åt höger',
+    '🏃🏻‍♂‍➡' => 'man som springer: ljus hy, åt höger',
+    '🏃🏼‍♂‍➡' => 'man som springer: mellanljus hy, åt höger',
+    '🏃🏽‍♂‍➡' => 'man som springer: mellanfärgad hy, åt höger',
+    '🏃🏾‍♂‍➡' => 'man som springer: mellanmörk hy, åt höger',
+    '🏃🏿‍♂‍➡' => 'man som springer: mörk hy, åt höger',
     '🫱🏻‍🫲🏼' => 'handskakning: ljus hy, mellanljus hy',
     '🫱🏻‍🫲🏽' => 'handskakning: ljus hy, mellanfärgad hy',
     '🫱🏻‍🫲🏾' => 'handskakning: ljus hy, mellanmörk hy',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'handskakning: mörk hy, mellanljus hy',
     '🫱🏿‍🫲🏽' => 'handskakning: mörk hy, mellanfärgad hy',
     '🫱🏿‍🫲🏾' => 'handskakning: mörk hy, mellanmörk hy',
-    '🚶‍♀‍➡' => 'kvinna som går åt höger',
-    '🚶‍♂‍➡' => 'man som går åt höger',
-    '🧎‍♀‍➡' => 'knäsittande kvinna åt höger',
-    '🧎‍♂‍➡' => 'knäsittande man åt höger',
-    '🧑‍🦯‍➡' => 'person med vit käpp åt höger',
-    '👨‍🦯‍➡' => 'man med vit käpp åt höger',
-    '👩‍🦯‍➡' => 'kvinna med vit käpp åt höger',
-    '🧑‍🦼‍➡' => 'person i permobil åt höger',
-    '👨‍🦼‍➡' => 'man i permobil åt höger',
-    '👩‍🦼‍➡' => 'kvinna i permobil åt höger',
-    '🧑‍🦽‍➡' => 'person i manuell rullstol åt höger',
-    '👨‍🦽‍➡' => 'man i manuell rullstol åt höger',
-    '👩‍🦽‍➡' => 'kvinna i manuell rullstol åt höger',
-    '🏃‍♀‍➡' => 'kvinna som springer åt höger',
-    '🏃‍♂‍➡' => 'man som springer åt höger',
+    '🚶‍♀‍➡' => 'kvinna som går: åt höger',
+    '🚶‍♂‍➡' => 'man som går: åt höger',
+    '🧎‍♀‍➡' => 'knäsittande kvinna: åt höger',
+    '🧎‍♂‍➡' => 'knäsittande man: åt höger',
+    '🧑‍🦯‍➡' => 'person med vit käpp: åt höger',
+    '👨‍🦯‍➡' => 'man med vit käpp: åt höger',
+    '👩‍🦯‍➡' => 'kvinna med vit käpp: åt höger',
+    '🧑‍🦼‍➡' => 'person i permobil: åt höger',
+    '👨‍🦼‍➡' => 'man i permobil: åt höger',
+    '👩‍🦼‍➡' => 'kvinna i permobil: åt höger',
+    '🧑‍🦽‍➡' => 'person i manuell rullstol: åt höger',
+    '👨‍🦽‍➡' => 'man i manuell rullstol: åt höger',
+    '👩‍🦽‍➡' => 'kvinna i manuell rullstol: åt höger',
+    '🏃‍♀‍➡' => 'kvinna som springer: åt höger',
+    '🏃‍♂‍➡' => 'man som springer: åt höger',
     '👩‍❤‍👨' => 'par med hjärta: kvinna, man',
     '👨‍❤‍👨' => 'par med hjärta: man, man',
     '👩‍❤‍👩' => 'par med hjärta: kvinna, kvinna',
@@ -418,8 +538,8 @@
     '👩‍👧‍👦' => 'familj: kvinna, flicka, pojke',
     '👩‍👧‍👧' => 'familj: kvinna, flicka, flicka',
     '🧑‍🤝‍🧑' => 'personer som håller hand',
-    '🧑‍🧑‍🧒' => 'familj, vuxen, vuxen, barn',
-    '🧑‍🧒‍🧒' => 'familj, vuxen, barn, barn',
+    '🧑‍🧑‍🧒' => 'familj: vuxen, vuxen, barn',
+    '🧑‍🧒‍🧒' => 'familj: vuxen, barn, barn',
     '🧑🏻‍🦰' => 'person: ljus hy, rödhårig',
     '🧑🏼‍🦰' => 'person: mellanljus hy, rödhårig',
     '🧑🏽‍🦰' => 'person: mellanfärgad hy, rödhårig',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'person: mellanfärgad hy, skallig',
     '🧑🏾‍🦲' => 'person: mellanmörk hy, skallig',
     '🧑🏿‍🦲' => 'person: mörk hy, skallig',
+    '🧑🏻‍🩰' => 'balettdansare: ljus hy',
+    '🧑🏼‍🩰' => 'balettdansare: mellanljus hy',
+    '🧑🏽‍🩰' => 'balettdansare: mellanfärgad hy',
+    '🧑🏾‍🩰' => 'balettdansare: mellanmörk hy',
+    '🧑🏿‍🩰' => 'balettdansare: mörk hy',
     '🧔🏻‍♂' => 'man: ljus hy, skägg',
     '🧔🏼‍♂' => 'man: mellanljus hy, skägg',
     '🧔🏽‍♂' => 'man: mellanfärgad hy, skägg',
@@ -565,11 +690,11 @@
     '🧏🏽‍♂' => 'hörselskadad man: mellanfärgad hy',
     '🧏🏾‍♂' => 'hörselskadad man: mellanmörk hy',
     '🧏🏿‍♂' => 'hörselskadad man: mörk hy',
-    '🧏🏻‍♀' => 'hörselskada kvinna: ljus hy',
-    '🧏🏼‍♀' => 'hörselskada kvinna: mellanljus hy',
-    '🧏🏽‍♀' => 'hörselskada kvinna: mellanfärgad hy',
-    '🧏🏾‍♀' => 'hörselskada kvinna: mellanmörk hy',
-    '🧏🏿‍♀' => 'hörselskada kvinna: mörk hy',
+    '🧏🏻‍♀' => 'hörselskadad kvinna: ljus hy',
+    '🧏🏼‍♀' => 'hörselskadad kvinna: mellanljus hy',
+    '🧏🏽‍♀' => 'hörselskadad kvinna: mellanfärgad hy',
+    '🧏🏾‍♀' => 'hörselskadad kvinna: mellanmörk hy',
+    '🧏🏿‍♀' => 'hörselskadad kvinna: mörk hy',
     '🙇🏻‍♂' => 'bugande man: ljus hy',
     '🙇🏼‍♂' => 'bugande man: mellanljus hy',
     '🙇🏽‍♂' => 'bugande man: mellanfärgad hy',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'kvinna som går: mellanfärgad hy',
     '🚶🏾‍♀' => 'kvinna som går: mellanmörk hy',
     '🚶🏿‍♀' => 'kvinna som går: mörk hy',
-    '🚶🏻‍➡' => 'fotgängare åt höger',
-    '🚶🏼‍➡' => 'fotgängare åt höger',
-    '🚶🏽‍➡' => 'fotgängare åt höger',
-    '🚶🏾‍➡' => 'fotgängare åt höger',
-    '🚶🏿‍➡' => 'fotgängare åt höger',
+    '🚶🏻‍➡' => 'fotgängare: ljus hy, åt höger',
+    '🚶🏼‍➡' => 'fotgängare: mellanljus hy, åt höger',
+    '🚶🏽‍➡' => 'fotgängare: mellanfärgad hy, åt höger',
+    '🚶🏾‍➡' => 'fotgängare: mellanmörk hy, åt höger',
+    '🚶🏿‍➡' => 'fotgängare: mörk hy, åt höger',
     '🧍🏻‍♂' => 'stående man: ljus hy',
     '🧍🏼‍♂' => 'stående man: mellanljus hy',
     '🧍🏽‍♂' => 'stående man: mellanfärgad hy',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'knäsittande kvinna: mellanfärgad hy',
     '🧎🏾‍♀' => 'knäsittande kvinna: mellanmörk hy',
     '🧎🏿‍♀' => 'knäsittande kvinna: mörk hy',
-    '🧎🏻‍➡' => 'knäsittande person åt höger',
-    '🧎🏼‍➡' => 'knäsittande person åt höger',
-    '🧎🏽‍➡' => 'knäsittande person åt höger',
-    '🧎🏾‍➡' => 'knäsittande person åt höger',
-    '🧎🏿‍➡' => 'knäsittande person åt höger',
+    '🧎🏻‍➡' => 'knäsittande person: ljus hy, åt höger',
+    '🧎🏼‍➡' => 'knäsittande person: mellanljus hy, åt höger',
+    '🧎🏽‍➡' => 'knäsittande person: mellanfärgad hy, åt höger',
+    '🧎🏾‍➡' => 'knäsittande person: mellanmörk hy, åt höger',
+    '🧎🏿‍➡' => 'knäsittande person: mörk hy, åt höger',
     '🧑🏻‍🦯' => 'person med vit käpp: ljus hy',
     '🧑🏼‍🦯' => 'person med vit käpp: mellanljus hy',
     '🧑🏽‍🦯' => 'person med vit käpp: mellanfärgad hy',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'kvinna som springer: mellanfärgad hy',
     '🏃🏾‍♀' => 'kvinna som springer: mellanmörk hy',
     '🏃🏿‍♀' => 'kvinna som springer: mörk hy',
-    '🏃🏻‍➡' => 'person som springer åt höger',
-    '🏃🏼‍➡' => 'person som springer åt höger',
-    '🏃🏽‍➡' => 'person som springer åt höger',
-    '🏃🏾‍➡' => 'person som springer åt höger',
-    '🏃🏿‍➡' => 'person som springer åt höger',
+    '🏃🏻‍➡' => 'person som springer: ljus hy, åt höger',
+    '🏃🏼‍➡' => 'person som springer: mellanljus hy, åt höger',
+    '🏃🏽‍➡' => 'person som springer: mellanfärgad hy, åt höger',
+    '🏃🏾‍➡' => 'person som springer: mellanmörk hy, åt höger',
+    '🏃🏿‍➡' => 'person som springer: mörk hy, åt höger',
+    '👯🏻‍♀' => 'kvinnor med kaninöron: ljus hy',
+    '👯🏼‍♀' => 'kvinnor med kaninöron: mellanljus hy',
+    '👯🏽‍♀' => 'kvinnor med kaninöron: mellanfärgad hy',
+    '👯🏾‍♀' => 'kvinnor med kaninöron: mellanmörk hy',
+    '👯🏿‍♀' => 'kvinnor med kaninöron: mörk hy',
+    '👯🏻‍♂' => 'män med kaninöron: ljus hy',
+    '👯🏼‍♂' => 'män med kaninöron: mellanljus hy',
+    '👯🏽‍♂' => 'män med kaninöron: mellanfärgad hy',
+    '👯🏾‍♂' => 'män med kaninöron: mellanmörk hy',
+    '👯🏿‍♂' => 'män med kaninöron: mörk hy',
     '🧖🏻‍♂' => 'man i ångbastu: ljus hy',
     '🧖🏼‍♂' => 'man i ångbastu: mellanljus hy',
     '🧖🏽‍♂' => 'man i ångbastu: mellanfärgad hy',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'kvinna som hjular: mellanfärgad hy',
     '🤸🏾‍♀' => 'kvinna som hjular: mellanmörk hy',
     '🤸🏿‍♀' => 'kvinna som hjular: mörk hy',
+    '🤼🏻‍♀' => 'brottande kvinnor: ljus hy',
+    '🤼🏼‍♀' => 'brottande kvinnor: mellanljus hy',
+    '🤼🏽‍♀' => 'brottande kvinnor: mellanfärgad hy',
+    '🤼🏾‍♀' => 'brottande kvinnor: mellanmörk hy',
+    '🤼🏿‍♀' => 'brottande kvinnor: mörk hy',
+    '🤼🏻‍♂' => 'brottande män: ljus hy',
+    '🤼🏼‍♂' => 'brottande män: mellanljus hy',
+    '🤼🏽‍♂' => 'brottande män: mellanfärgad hy',
+    '🤼🏾‍♂' => 'brottande män: mellanmörk hy',
+    '🤼🏿‍♂' => 'brottande män: mörk hy',
     '🤽🏻‍♂' => 'man som spelar vattenpolo: ljus hy',
     '🤽🏼‍♂' => 'man som spelar vattenpolo: mellanljus hy',
     '🤽🏽‍♂' => 'man som spelar vattenpolo: mellanfärgad hy',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'kvinna: lockigt hår',
     '👩‍🦳' => 'kvinna: vithårig',
     '👩‍🦲' => 'kvinna: skallig',
-    '🚶‍➡' => 'fotgängare åt höger',
-    '🧎‍➡' => 'knäsittande person åt höger',
-    '🏃‍➡' => 'person som springer åt höger',
+    '🚶‍➡' => 'fotgängare: åt höger',
+    '🧎‍➡' => 'knäsittande person: åt höger',
+    '🏃‍➡' => 'person som springer: åt höger',
     '👨‍👦' => 'familj: man, pojke',
     '👨‍👧' => 'familj: man, flicka',
     '👩‍👦' => 'familj: kvinna, pojke',
@@ -1313,7 +1458,7 @@
     '🙋‍♂' => 'man som räcker upp handen',
     '🙋‍♀' => 'kvinna som räcker upp handen',
     '🧏‍♂' => 'hörselskadad man',
-    '🧏‍♀' => 'hörselskada kvinna',
+    '🧏‍♀' => 'hörselskadad kvinna',
     '🙇‍♂' => 'bugande man',
     '🙇‍♀' => 'bugande kvinna',
     '🤦‍♂' => 'man som slår sig för pannan',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'kvinna i manuell rullstol',
     '🏃‍♂' => 'man som springer',
     '🏃‍♀' => 'kvinna som springer',
+    '🧑‍🩰' => 'balettdansare',
     '👯‍♂' => 'män med kaninöron',
     '👯‍♀' => 'kvinnor med kaninöron',
     '🧖‍♂' => 'man i ångbastu',
@@ -1459,7 +1605,7 @@
     '🤹‍♀' => 'kvinna som jonglerar',
     '🧘‍♂' => 'man i lotusposition',
     '🧘‍♀' => 'kvinna i lotusposition',
-    '🧑‍🧒' => 'familj, vuxen, barn',
+    '🧑‍🧒' => 'familj: vuxen, barn',
     '🐕‍🦺' => 'servicehund',
     '🐈‍⬛' => 'svart katt',
     '🐻‍❄' => 'isbjörn',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'svävande man i kostym: mellanfärgad hy',
     '🕴🏾' => 'svävande man i kostym: mellanmörk hy',
     '🕴🏿' => 'svävande man i kostym: mörk hy',
+    '👯🏻' => 'personer med kaninöron: ljus hy',
+    '👯🏼' => 'personer med kaninöron: mellanljus hy',
+    '👯🏽' => 'personer med kaninöron: mellanfärgad hy',
+    '👯🏾' => 'personer med kaninöron: mellanmörk hy',
+    '👯🏿' => 'personer med kaninöron: mörk hy',
     '🧖🏻' => 'person i ångbastu: ljus hy',
     '🧖🏼' => 'person i ångbastu: mellanljus hy',
     '🧖🏽' => 'person i ångbastu: mellanfärgad hy',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'person som hjular: mellanfärgad hy',
     '🤸🏾' => 'person som hjular: mellanmörk hy',
     '🤸🏿' => 'person som hjular: mörk hy',
+    '🤼🏻' => 'brottande personer: ljus hy',
+    '🤼🏼' => 'brottande personer: mellanljus hy',
+    '🤼🏽' => 'brottande personer: mellanfärgad hy',
+    '🤼🏾' => 'brottande personer: mellanmörk hy',
+    '🤼🏿' => 'brottande personer: mörk hy',
     '🤽🏻' => 'person som spelar vattenpolo: ljus hy',
     '🤽🏼' => 'person som spelar vattenpolo: mellanljus hy',
     '🤽🏽' => 'person som spelar vattenpolo: mellanfärgad hy',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'flagga: Kina',
     '🇨🇴' => 'flagga: Colombia',
     '🇨🇵' => 'flagga: Clippertonön',
+    '🇨🇶' => 'flagga: Sark',
     '🇨🇷' => 'flagga: Costa Rica',
     '🇨🇺' => 'flagga: Kuba',
     '🇨🇻' => 'flagga: Kap Verde',
@@ -2389,13 +2546,6 @@
     '🏽' => 'mellanfärgad hy',
     '🏾' => 'mellanmörk hy',
     '🏿' => 'mörk hy',
-    '🪉' => 'harpa',
-    '🪏' => 'spade',
-    '🪾' => 'träd utan löv',
-    '🫆' => 'fingeravtryck',
-    '🫜' => 'rotfrukt',
-    '🫟' => 'stänk',
-    '🫩' => 'ansikte med påsar under ögonen',
     '😀' => 'ansikte med stort leende',
     '😃' => 'flinande ansikte med stora ögon',
     '😄' => 'flinande ansikte med leende ögon',
@@ -2427,7 +2577,7 @@
     '🤑' => 'ansikte med dollarögon',
     '🤗' => 'ansikte som kramas',
     '🤭' => 'ansikte med handen för munnen',
-    '🫢' => 'ansikte med ögonen öppna och handen för munnen',
+    '🫢' => 'ansikte med öppna ögon och hand för munnen',
     '🫣' => 'ansikte med kikande öga',
     '🤫' => 'hyssjande ansikte',
     '🤔' => 'ansikte som tänker',
@@ -2449,6 +2599,7 @@
     '😪' => 'sömnigt ansikte',
     '🤤' => 'dreglande ansikte',
     '😴' => 'sovande ansikte',
+    '🫩' => 'ansikte med påsar under ögonen',
     '😷' => 'ansikte med munskydd',
     '🤒' => 'ansikte med termometer',
     '🤕' => 'ansikte med bandage på huvudet',
@@ -2475,6 +2626,7 @@
     '😯' => 'hyssjat ansikte',
     '😲' => 'chockat ansikte',
     '😳' => 'rodnande ansikte',
+    '🫪' => 'ansikte i närbild',
     '🥺' => 'bönfallande ansikte',
     '🥹' => 'ansikte som håller tillbaka tårarna',
     '😦' => 'ogillande ansikte med öppen mun',
@@ -2546,6 +2698,7 @@
     '💋' => 'läppavtryck',
     '💯' => '100 poäng',
     '💢' => 'symbol för ilska',
+    '🫯' => 'slagsmål',
     '💥' => 'explosion',
     '💫' => 'omtumlad',
     '💦' => 'stänkande svett',
@@ -2669,6 +2822,7 @@
     '🧞' => 'ande',
     '🧟' => 'zombie',
     '🧌' => 'troll',
+    '🫈' => 'hårig varelse',
     '💆' => 'person som blir masserad',
     '💇' => 'person som får håret klippt',
     '🚶' => 'fotgängare',
@@ -2712,6 +2866,7 @@
     '🫂' => 'personer kramas',
     '👪' => 'familj',
     '👣' => 'fotavtryck',
+    '🫆' => 'fingeravtryck',
     '🦰' => 'rödhårig',
     '🦱' => 'lockigt hår',
     '🦳' => 'vithårig',
@@ -2811,6 +2966,7 @@
     '🐳' => 'val som sprutar vatten',
     '🐋' => 'val',
     '🐬' => 'delfin',
+    '🫍' => 'späckhuggare',
     '🦭' => 'säl',
     '🐟' => 'fisk',
     '🐠' => 'tropisk fisk',
@@ -2820,6 +2976,11 @@
     '🐚' => 'snäcka',
     '🪸' => 'korall',
     '🪼' => 'manet',
+    '🦀' => 'krabba',
+    '🦞' => 'hummer',
+    '🦐' => 'räka',
+    '🦑' => 'mindre bläckfisk',
+    '🦪' => 'ostron',
     '🐌' => 'snigel',
     '🦋' => 'fjäril',
     '🐛' => 'tusenfoting',
@@ -2864,6 +3025,7 @@
     '🪹' => 'tomt bo',
     '🪺' => 'bo med ägg',
     '🍄' => 'svamp',
+    '🪾' => 'träd utan löv',
     '🍇' => 'vindruvor',
     '🍈' => 'melon',
     '🍉' => 'vattenmelon',
@@ -2900,6 +3062,7 @@
     '🌰' => 'kastanj',
     '🫚' => 'ingefära',
     '🫛' => 'ärtskida',
+    '🫜' => 'rotfrukt',
     '🍞' => 'bröd',
     '🥐' => 'croissant',
     '🥖' => 'baguette',
@@ -2925,7 +3088,7 @@
     '🧆' => 'falafel',
     '🥚' => 'ägg',
     '🍳' => 'matlagning',
-    '🥘' => 'stekpanna',
+    '🥘' => 'paella',
     '🍲' => 'gryta',
     '🫕' => 'fondue',
     '🥣' => 'skål och sked',
@@ -2951,11 +3114,6 @@
     '🥟' => 'dumpling',
     '🥠' => 'lyckokaka',
     '🥡' => 'hämtmatkartong',
-    '🦀' => 'krabba',
-    '🦞' => 'hummer',
-    '🦐' => 'räka',
-    '🦑' => 'mindre bläckfisk',
-    '🦪' => 'ostron',
     '🍦' => 'mjukglass',
     '🍧' => 'kakigōri',
     '🍨' => 'glass',
@@ -3006,6 +3164,7 @@
     '🧭' => 'kompass',
     '🏔' => 'snöklätt berg',
     '⛰' => 'berg',
+    '🛘' => 'jordskred',
     '🌋' => 'vulkan',
     '🗻' => 'Fuji',
     '🏕' => 'camping',
@@ -3366,16 +3525,18 @@
     '🎧' => 'hörlur',
     '📻' => 'radio',
     '🎷' => 'saxofon',
+    '🎺' => 'trumpet',
+    '🪊' => 'trombon',
     '🪗' => 'dragspel',
     '🎸' => 'gitarr',
     '🎹' => 'klaviatur',
-    '🎺' => 'trumpet',
     '🎻' => 'fiol',
     '🪕' => 'banjo',
     '🥁' => 'trumma',
     '🪘' => 'congatrumma',
     '🪇' => 'maracas',
     '🪈' => 'flöjt',
+    '🪉' => 'harpa',
     '📱' => 'mobiltelefon',
     '📲' => 'mobiltelefon med pil',
     '☎' => 'telefon',
@@ -3429,8 +3590,9 @@
     '📑' => 'bokmärkesflikar',
     '🔖' => 'bokmärke',
     '🏷' => 'etikett',
-    '💰' => 'pengapåse',
     '🪙' => 'mynt',
+    '💰' => 'pengapåse',
+    '🪎' => 'skattkista',
     '💴' => 'yensedel',
     '💵' => 'dollarsedel',
     '💶' => 'eurosedel',
@@ -3513,6 +3675,7 @@
     '🧰' => 'verktygslåda',
     '🧲' => 'magnet',
     '🪜' => 'stege',
+    '🪏' => 'spade',
     '⚗' => 'retort',
     '🧪' => 'provrör',
     '🧫' => 'petriskål',
@@ -3696,6 +3859,7 @@
     '✴' => 'åttauddig stjärna',
     '❇' => 'glittra',
     '™' => 'skyddat varumärke',
+    '🫟' => 'stänk',
     '🔠' => 'versaler',
     '🔡' => 'gemener',
     '🔢' => 'siffror',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sw_ke.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sw_ke.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sw_ke.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sw_ke.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'busu: mwanamke, mwanamke, ngozi nyeusi na ngozi ya kahawia',
     '👩🏿‍❤‍💋‍👩🏾' => 'busu: mwanamke, mwanamke, ngozi nyeusi na ngozi nyeusi kiasi',
     '👩🏿‍❤‍💋‍👩🏿' => 'busu: mwanamke, mwanamke na ngozi nyeusi',
+    '🧑🏻‍🫯‍🧑🏼' => 'wanandondi: ngozi nyeupe na ngozi nyeupe kiasi',
+    '🧑🏻‍🫯‍🧑🏽' => 'wanandondi: ngozi nyeupe na ngozi ya kahawia',
+    '🧑🏻‍🫯‍🧑🏾' => 'wanandondi: ngozi nyeupe na ngozi nyeusi kiasi',
+    '🧑🏻‍🫯‍🧑🏿' => 'wanandondi: ngozi nyeupe na ngozi nyeusi',
+    '🧑🏼‍🫯‍🧑🏻' => 'wanandondi: ngozi nyeupe kiasi na ngozi nyeupe',
+    '🧑🏼‍🫯‍🧑🏽' => 'wanandondi: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '🧑🏼‍🫯‍🧑🏾' => 'wanandondi: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '🧑🏼‍🫯‍🧑🏿' => 'wanandondi: ngozi nyeupe kiasi na ngozi nyeusi',
+    '🧑🏽‍🫯‍🧑🏻' => 'wanandondi: ngozi ya kahawia na ngozi nyeupe',
+    '🧑🏽‍🫯‍🧑🏼' => 'wanandondi: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '🧑🏽‍🫯‍🧑🏾' => 'wanandondi: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '🧑🏽‍🫯‍🧑🏿' => 'wanandondi: ngozi ya kahawia na ngozi nyeusi',
+    '🧑🏾‍🫯‍🧑🏻' => 'wanandondi: ngozi nyeusi kiasi na ngozi nyeupe',
+    '🧑🏾‍🫯‍🧑🏼' => 'wanandondi: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '🧑🏾‍🫯‍🧑🏽' => 'wanandondi: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '🧑🏾‍🫯‍🧑🏿' => 'wanandondi: ngozi nyeusi kiasi na ngozi nyeusi',
+    '🧑🏿‍🫯‍🧑🏻' => 'wanandondi: ngozi nyeusi na ngozi nyeupe',
+    '🧑🏿‍🫯‍🧑🏼' => 'wanandondi: ngozi nyeusi na ngozi nyeupe kiasi',
+    '🧑🏿‍🫯‍🧑🏽' => 'wanandondi: ngozi nyeusi na ngozi ya kahawia',
+    '🧑🏿‍🫯‍🧑🏾' => 'wanandondi: ngozi nyeusi na ngozi nyeusi kiasi',
     '🧑🏻‍❤‍🧑🏼' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeupe na ngozi nyeupe kiasi',
     '🧑🏻‍❤‍🧑🏽' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeupe na ngozi ya kahawia',
     '🧑🏻‍❤‍🧑🏾' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeupe na ngozi nyeusi kiasi',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeusi na ngozi nyeupe kiasi',
     '🧑🏿‍❤‍🧑🏽' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeusi na ngozi ya kahawia',
     '🧑🏿‍❤‍🧑🏾' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeusi na ngozi nyeusi kiasi',
+    '🧑🏻‍🐰‍🧑🏼' => 'watu wanaosherehekea: ngozi nyeupe na ngozi nyeupe kiasi',
+    '🧑🏻‍🐰‍🧑🏽' => 'watu wanaosherehekea: ngozi nyeupe na ngozi ya kahawia',
+    '🧑🏻‍🐰‍🧑🏾' => 'watu wanaosherehekea: ngozi nyeupe na ngozi nyeusi kiasi',
+    '🧑🏻‍🐰‍🧑🏿' => 'watu wanaosherehekea: ngozi nyeupe na ngozi nyeusi',
+    '🧑🏼‍🐰‍🧑🏻' => 'watu wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeupe',
+    '🧑🏼‍🐰‍🧑🏽' => 'watu wanaosherehekea: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '🧑🏼‍🐰‍🧑🏾' => 'watu wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '🧑🏼‍🐰‍🧑🏿' => 'watu wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi',
+    '🧑🏽‍🐰‍🧑🏻' => 'watu wanaosherehekea: ngozi ya kahawia na ngozi nyeupe',
+    '🧑🏽‍🐰‍🧑🏼' => 'watu wanaosherehekea: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '🧑🏽‍🐰‍🧑🏾' => 'watu wanaosherehekea: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '🧑🏽‍🐰‍🧑🏿' => 'watu wanaosherehekea: ngozi ya kahawia na ngozi nyeusi',
+    '🧑🏾‍🐰‍🧑🏻' => 'watu wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe',
+    '🧑🏾‍🐰‍🧑🏼' => 'watu wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '🧑🏾‍🐰‍🧑🏽' => 'watu wanaosherehekea: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '🧑🏾‍🐰‍🧑🏿' => 'watu wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeusi',
+    '🧑🏿‍🐰‍🧑🏻' => 'watu wanaosherehekea: ngozi nyeusi na ngozi nyeupe',
+    '🧑🏿‍🐰‍🧑🏼' => 'watu wanaosherehekea: ngozi nyeusi na ngozi nyeupe kiasi',
+    '🧑🏿‍🐰‍🧑🏽' => 'watu wanaosherehekea: ngozi nyeusi na ngozi ya kahawia',
+    '🧑🏿‍🐰‍🧑🏾' => 'watu wanaosherehekea: ngozi nyeusi na ngozi nyeusi kiasi',
+    '👨🏻‍🫯‍👨🏼' => 'wanaume wanaomenyana miereka: ngozi nyeupe na ngozi nyeupe kiasi',
+    '👨🏻‍🫯‍👨🏽' => 'wanaume wanaomenyana miereka: ngozi nyeupe na ngozi ya kahawia',
+    '👨🏻‍🫯‍👨🏾' => 'wanaume wanaomenyana miereka: ngozi nyeupe na ngozi nyeusi kiasi',
+    '👨🏻‍🫯‍👨🏿' => 'wanaume wanaomenyana miereka: ngozi nyeupe na ngozi nyeusi',
+    '👨🏼‍🫯‍👨🏻' => 'wanaume wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeupe',
+    '👨🏼‍🫯‍👨🏽' => 'wanaume wanaomenyana miereka: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '👨🏼‍🫯‍👨🏾' => 'wanaume wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '👨🏼‍🫯‍👨🏿' => 'wanaume wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeusi',
+    '👨🏽‍🫯‍👨🏻' => 'wanaume wanaomenyana miereka: ngozi ya kahawia na ngozi nyeupe',
+    '👨🏽‍🫯‍👨🏼' => 'wanaume wanaomenyana miereka: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '👨🏽‍🫯‍👨🏾' => 'wanaume wanaomenyana miereka: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '👨🏽‍🫯‍👨🏿' => 'wanaume wanaomenyana miereka: ngozi ya kahawia na ngozi nyeusi',
+    '👨🏾‍🫯‍👨🏻' => 'wanaume wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeupe',
+    '👨🏾‍🫯‍👨🏼' => 'wanaume wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '👨🏾‍🫯‍👨🏽' => 'wanaume wanaomenyana miereka: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '👨🏾‍🫯‍👨🏿' => 'wanaume wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeusi',
+    '👨🏿‍🫯‍👨🏻' => 'wanaume wanaomenyana miereka: ngozi nyeusi na ngozi nyeupe',
+    '👨🏿‍🫯‍👨🏼' => 'wanaume wanaomenyana miereka: ngozi nyeusi na ngozi nyeupe kiasi',
+    '👨🏿‍🫯‍👨🏽' => 'wanaume wanaomenyana miereka: ngozi nyeusi na ngozi ya kahawia',
+    '👨🏿‍🫯‍👨🏾' => 'wanaume wanaomenyana miereka: ngozi nyeusi na ngozi nyeusi kiasi',
     '👨🏻‍❤‍👨🏻' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume na ngozi nyeupe',
     '👨🏻‍❤‍👨🏼' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume, ngozi nyeupe na ngozi nyeupe kiasi',
     '👨🏻‍❤‍👨🏽' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume, ngozi nyeupe na ngozi ya kahawia',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume, ngozi nyeusi na ngozi ya kahawia',
     '👨🏿‍❤‍👨🏾' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume, ngozi nyeusi na ngozi nyeusi kiasi',
     '👨🏿‍❤‍👨🏿' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume na ngozi nyeusi',
+    '👨🏻‍🐰‍👨🏼' => 'wanaume wanaosherehekea: ngozi nyeupe na ngozi nyeupe kiasi',
+    '👨🏻‍🐰‍👨🏽' => 'wanaume wanaosherehekea: ngozi nyeupe na ngozi ya kahawia',
+    '👨🏻‍🐰‍👨🏾' => 'wanaume wanaosherehekea: ngozi nyeupe na ngozi nyeusi kiasi',
+    '👨🏻‍🐰‍👨🏿' => 'wanaume wanaosherehekea: ngozi nyeupe na ngozi nyeusi',
+    '👨🏼‍🐰‍👨🏻' => 'wanaume wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeupe',
+    '👨🏼‍🐰‍👨🏽' => 'wanaume wanaosherehekea: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '👨🏼‍🐰‍👨🏾' => 'wanaume wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '👨🏼‍🐰‍👨🏿' => 'wanaume wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi',
+    '👨🏽‍🐰‍👨🏻' => 'wanaume wanaosherehekea: ngozi ya kahawia na ngozi nyeupe',
+    '👨🏽‍🐰‍👨🏼' => 'wanaume wanaosherehekea: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '👨🏽‍🐰‍👨🏾' => 'wanaume wanaosherehekea: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '👨🏽‍🐰‍👨🏿' => 'wanaume wanaosherehekea: ngozi ya kahawia na ngozi nyeusi',
+    '👨🏾‍🐰‍👨🏻' => 'wanaume wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe',
+    '👨🏾‍🐰‍👨🏼' => 'wanaume wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '👨🏾‍🐰‍👨🏽' => 'wanaume wanaosherehekea: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '👨🏾‍🐰‍👨🏿' => 'wanaume wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeusi',
+    '👨🏿‍🐰‍👨🏻' => 'wanaume wanaosherehekea: ngozi nyeusi na ngozi nyeupe',
+    '👨🏿‍🐰‍👨🏼' => 'wanaume wanaosherehekea: ngozi nyeusi na ngozi nyeupe kiasi',
+    '👨🏿‍🐰‍👨🏽' => 'wanaume wanaosherehekea: ngozi nyeusi na ngozi ya kahawia',
+    '👨🏿‍🐰‍👨🏾' => 'wanaume wanaosherehekea: ngozi nyeusi na ngozi nyeusi kiasi',
+    '👩🏻‍🫯‍👩🏼' => 'wanawake wanaomenyana miereka: ngozi nyeupe na ngozi nyeupe kiasi',
+    '👩🏻‍🫯‍👩🏽' => 'wanawake wanaomenyana miereka: ngozi nyeupe na ngozi ya kahawia',
+    '👩🏻‍🫯‍👩🏾' => 'wanawake wanaomenyana miereka: ngozi nyeupe na ngozi nyeusi kiasi',
+    '👩🏻‍🫯‍👩🏿' => 'wanawake wanaomenyana miereka: ngozi nyeupe na ngozi nyeusi',
+    '👩🏼‍🫯‍👩🏻' => 'wanawake wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeupe',
+    '👩🏼‍🫯‍👩🏽' => 'wanawake wanaomenyana miereka: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '👩🏼‍🫯‍👩🏾' => 'wanawake wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '👩🏼‍🫯‍👩🏿' => 'wanawake wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeusi',
+    '👩🏽‍🫯‍👩🏻' => 'wanawake wanaomenyana miereka: ngozi ya kahawia na ngozi nyeupe',
+    '👩🏽‍🫯‍👩🏼' => 'wanawake wanaomenyana miereka: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '👩🏽‍🫯‍👩🏾' => 'wanawake wanaomenyana miereka: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '👩🏽‍🫯‍👩🏿' => 'wanawake wanaomenyana miereka: ngozi ya kahawia na ngozi nyeusi',
+    '👩🏾‍🫯‍👩🏻' => 'wanawake wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeupe',
+    '👩🏾‍🫯‍👩🏼' => 'wanawake wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '👩🏾‍🫯‍👩🏽' => 'wanawake wanaomenyana miereka: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '👩🏾‍🫯‍👩🏿' => 'wanawake wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeusi',
+    '👩🏿‍🫯‍👩🏻' => 'wanawake wanaomenyana miereka: ngozi nyeusi na ngozi nyeupe',
+    '👩🏿‍🫯‍👩🏼' => 'wanawake wanaomenyana miereka: ngozi nyeusi na ngozi nyeupe kiasi',
+    '👩🏿‍🫯‍👩🏽' => 'wanawake wanaomenyana miereka: ngozi nyeusi na ngozi ya kahawia',
+    '👩🏿‍🫯‍👩🏾' => 'wanawake wanaomenyana miereka: ngozi nyeusi na ngozi nyeusi kiasi',
     '👩🏻‍❤‍👨🏻' => 'mume na mke na ishara ya moyo: mwanamke, mwanamume na ngozi nyeupe',
     '👩🏻‍❤‍👨🏼' => 'mume na mke na ishara ya moyo: mwanamke, mwanamume, ngozi nyeupe na ngozi nyeupe kiasi',
     '👩🏻‍❤‍👨🏽' => 'mume na mke na ishara ya moyo: mwanamke, mwanamume, ngozi nyeupe na ngozi ya kahawia',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'mume na mke na ishara ya moyo: mwanamke, mwanamke, ngozi nyeusi na ngozi ya kahawia',
     '👩🏿‍❤‍👩🏾' => 'mume na mke na ishara ya moyo: mwanamke, mwanamke, ngozi nyeusi na ngozi nyeusi kiasi',
     '👩🏿‍❤‍👩🏿' => 'mume na mke na ishara ya moyo: mwanamke, mwanamke na ngozi nyeusi',
+    '👩🏻‍🐰‍👩🏼' => 'wanawake wanaosherehekea: ngozi nyeupe na ngozi nyeupe kiasi',
+    '👩🏻‍🐰‍👩🏽' => 'wanawake wanaosherehekea: ngozi nyeupe na ngozi ya kahawia',
+    '👩🏻‍🐰‍👩🏾' => 'wanawake wanaosherehekea: ngozi nyeupe na ngozi nyeusi kiasi',
+    '👩🏻‍🐰‍👩🏿' => 'wanawake wanaosherehekea: ngozi nyeupe na ngozi nyeusi',
+    '👩🏼‍🐰‍👩🏻' => 'wanawake wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeupe',
+    '👩🏼‍🐰‍👩🏽' => 'wanawake wanaosherehekea: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '👩🏼‍🐰‍👩🏾' => 'wanawake wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '👩🏼‍🐰‍👩🏿' => 'wanawake wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi',
+    '👩🏽‍🐰‍👩🏻' => 'wanawake wanaosherehekea: ngozi ya kahawia na ngozi nyeupe',
+    '👩🏽‍🐰‍👩🏼' => 'wanawake wanaosherehekea: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '👩🏽‍🐰‍👩🏾' => 'wanawake wanaosherehekea: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '👩🏽‍🐰‍👩🏿' => 'wanawake wanaosherehekea: ngozi ya kahawia na ngozi nyeusi',
+    '👩🏾‍🐰‍👩🏻' => 'wanawake wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe',
+    '👩🏾‍🐰‍👩🏼' => 'wanawake wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '👩🏾‍🐰‍👩🏽' => 'wanawake wanaosherehekea: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '👩🏾‍🐰‍👩🏿' => 'wanawake wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeusi',
+    '👩🏿‍🐰‍👩🏻' => 'wanawake wanaosherehekea: ngozi nyeusi na ngozi nyeupe',
+    '👩🏿‍🐰‍👩🏼' => 'wanawake wanaosherehekea: ngozi nyeusi na ngozi nyeupe kiasi',
+    '👩🏿‍🐰‍👩🏽' => 'wanawake wanaosherehekea: ngozi nyeusi na ngozi ya kahawia',
+    '👩🏿‍🐰‍👩🏾' => 'wanawake wanaosherehekea: ngozi nyeusi na ngozi nyeusi kiasi',
     '🧑🏻‍🤝‍🧑🏻' => 'watu walioshikana mikono: ngozi nyeupe',
     '🧑🏻‍🤝‍🧑🏼' => 'watu walioshikana mikono: ngozi nyeupe na ngozi nyeupe kiasi',
     '🧑🏻‍🤝‍🧑🏽' => 'watu walioshikana mikono: ngozi nyeupe na ngozi ya kahawia',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bendera: Uskoti',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bendera: Wales',
     '🧑‍🧑‍🧒‍🧒' => 'familia: mtu mzima, mtu mzima, mtoto, mtoto',
-    '🚶🏻‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶🏼‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶🏽‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶🏾‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶🏿‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶🏻‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🚶🏼‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🚶🏽‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🚶🏾‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🚶🏿‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🧎🏻‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎🏼‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎🏽‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎🏾‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎🏿‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎🏻‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧎🏼‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧎🏽‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧎🏾‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧎🏿‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧑🏻‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑🏼‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑🏽‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑🏾‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑🏿‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '👨🏻‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👨🏼‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👨🏽‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👨🏾‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👨🏿‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👩🏻‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '👩🏼‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '👩🏽‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '👩🏾‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '👩🏿‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑🏻‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑🏼‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑🏽‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑🏾‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑🏿‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👨🏻‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👨🏼‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👨🏽‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👨🏾‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👨🏿‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👩🏻‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👩🏼‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👩🏽‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👩🏾‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👩🏿‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑🏻‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🧑🏼‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🧑🏽‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🧑🏾‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🧑🏿‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨🏻‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨🏼‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨🏽‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨🏾‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨🏿‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩🏻‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩🏼‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩🏽‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩🏾‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩🏿‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🏃🏻‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃🏼‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃🏽‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃🏾‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃🏿‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃🏻‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
-    '🏃🏼‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
-    '🏃🏽‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
-    '🏃🏾‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
-    '🏃🏿‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
+    '🚶🏻‍♀‍➡' => 'mwanamke anayetembea: ngozi nyeupe na inayoangalia kulia',
+    '🚶🏼‍♀‍➡' => 'mwanamke anayetembea: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🚶🏽‍♀‍➡' => 'mwanamke anayetembea: ngozi ya kahawia na inayoangalia kulia',
+    '🚶🏾‍♀‍➡' => 'mwanamke anayetembea: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🚶🏿‍♀‍➡' => 'mwanamke anayetembea: ngozi nyeusi na inayoangalia kulia',
+    '🚶🏻‍♂‍➡' => 'mwanamume anayetembea: ngozi nyeupe na inayoangalia kulia',
+    '🚶🏼‍♂‍➡' => 'mwanamume anayetembea: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🚶🏽‍♂‍➡' => 'mwanamume anayetembea: ngozi ya kahawia na inayoangalia kulia',
+    '🚶🏾‍♂‍➡' => 'mwanamume anayetembea: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🚶🏿‍♂‍➡' => 'mwanamume anayetembea: ngozi nyeusi na inayoangalia kulia',
+    '🧎🏻‍♀‍➡' => 'mwanamke aliyepiga magoti: ngozi nyeupe na inayoangalia kulia',
+    '🧎🏼‍♀‍➡' => 'mwanamke aliyepiga magoti: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧎🏽‍♀‍➡' => 'mwanamke aliyepiga magoti: ngozi ya kahawia na inayoangalia kulia',
+    '🧎🏾‍♀‍➡' => 'mwanamke aliyepiga magoti: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧎🏿‍♀‍➡' => 'mwanamke aliyepiga magoti: ngozi nyeusi na inayoangalia kulia',
+    '🧎🏻‍♂‍➡' => 'mwanamume aliyepiga magoti: ngozi nyeupe na inayoangalia kulia',
+    '🧎🏼‍♂‍➡' => 'mwanamume aliyepiga magoti: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧎🏽‍♂‍➡' => 'mwanamume aliyepiga magoti: ngozi ya kahawia na inayoangalia kulia',
+    '🧎🏾‍♂‍➡' => 'mwanamume aliyepiga magoti: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧎🏿‍♂‍➡' => 'mwanamume aliyepiga magoti: ngozi nyeusi na inayoangalia kulia',
+    '🧑🏻‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: ngozi nyeupe na inayoangalia kulia',
+    '🧑🏼‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧑🏽‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: ngozi ya kahawia na inayoangalia kulia',
+    '🧑🏾‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧑🏿‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: ngozi nyeusi na inayoangalia kulia',
+    '👨🏻‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: ngozi nyeupe na inayoangalia kulia',
+    '👨🏼‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👨🏽‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: ngozi ya kahawia na inayoangalia kulia',
+    '👨🏾‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👨🏿‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: ngozi nyeusi na inayoangalia kulia',
+    '👩🏻‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: ngozi nyeupe na inayoangalia kulia',
+    '👩🏼‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👩🏽‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: ngozi ya kahawia na inayoangalia kulia',
+    '👩🏾‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👩🏿‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: ngozi nyeusi na inayoangalia kulia',
+    '🧑🏻‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '🧑🏼‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧑🏽‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '🧑🏾‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧑🏿‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '👨🏻‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '👨🏼‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👨🏽‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '👨🏾‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👨🏿‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '👩🏻‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '👩🏼‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👩🏽‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '👩🏾‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👩🏿‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '🧑🏻‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '🧑🏼‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧑🏽‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '🧑🏾‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧑🏿‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '👨🏻‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '👨🏼‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👨🏽‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '👨🏾‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👨🏿‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '👩🏻‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '👩🏼‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👩🏽‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '👩🏾‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👩🏿‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '🏃🏻‍♀‍➡' => 'mwanamke anayekimbia: ngozi nyeupe na inayoangalia kulia',
+    '🏃🏼‍♀‍➡' => 'mwanamke anayekimbia: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🏃🏽‍♀‍➡' => 'mwanamke anayekimbia: ngozi ya kahawia na inayoangalia kulia',
+    '🏃🏾‍♀‍➡' => 'mwanamke anayekimbia: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🏃🏿‍♀‍➡' => 'mwanamke anayekimbia: ngozi nyeusi na inayoangalia kulia',
+    '🏃🏻‍♂‍➡' => 'mwanamume anayekimbia: ngozi nyeupe na inayoangalia kulia',
+    '🏃🏼‍♂‍➡' => 'mwanamume anayekimbia: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🏃🏽‍♂‍➡' => 'mwanamume anayekimbia: ngozi ya kahawia na inayoangalia kulia',
+    '🏃🏾‍♂‍➡' => 'mwanamume anayekimbia: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🏃🏿‍♂‍➡' => 'mwanamume anayekimbia: ngozi nyeusi na inayoangalia kulia',
     '🫱🏻‍🫲🏼' => 'kusalimiana: ngozi nyeupe na ngozi nyeupe kiasi',
     '🫱🏻‍🫲🏽' => 'kusalimiana: ngozi nyeupe na ngozi ya kahawia',
     '🫱🏻‍🫲🏾' => 'kusalimiana: ngozi nyeupe na ngozi nyeusi kiasi',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'kusalimiana: ngozi nyeusi na ngozi nyeupe kiasi',
     '🫱🏿‍🫲🏽' => 'kusalimiana: ngozi nyeusi na ngozi ya kahawia',
     '🫱🏿‍🫲🏾' => 'kusalimiana: ngozi nyeusi na ngozi nyeusi kiasi',
-    '🚶‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🧎‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧑‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '👨‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👩‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👨‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👩‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🏃‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
+    '🚶‍♀‍➡' => 'mwanamke anayetembea: inayoangalia kulia',
+    '🚶‍♂‍➡' => 'mwanamume anayetembea: inayoangalia kulia',
+    '🧎‍♀‍➡' => 'mwanamke aliyepiga magoti: inayoangalia kulia',
+    '🧎‍♂‍➡' => 'mwanamume aliyepiga magoti: inayoangalia kulia',
+    '🧑‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: inayoangalia kulia',
+    '👨‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: inayoangalia kulia',
+    '👩‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: inayoangalia kulia',
+    '🧑‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: inayoangalia kulia',
+    '👨‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: inayoangalia kulia',
+    '👩‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: inayoangalia kulia',
+    '🧑‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: inayoangalia kulia',
+    '👨‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: inayoangalia kulia',
+    '👩‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: inayoangalia kulia',
+    '🏃‍♀‍➡' => 'mwanamke anayekimbia: inayoangalia kulia',
+    '🏃‍♂‍➡' => 'mwanamume anayekimbia: inayoangalia kulia',
     '👩‍❤‍👨' => 'mume na mke na ishara ya moyo: mwanamke na mwanamume',
     '👨‍❤‍👨' => 'mume na mke na ishara ya moyo: mwanamume na mwanamume',
     '👩‍❤‍👩' => 'mume na mke na ishara ya moyo: mwanamke na mwanamke',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'mtu mzima: ngozi ya kahawia na upara',
     '🧑🏾‍🦲' => 'mtu mzima: ngozi nyeusi kiasi na upara',
     '🧑🏿‍🦲' => 'mtu mzima: ngozi nyeusi na upara',
+    '🧑🏻‍🩰' => 'mcheza bale: ngozi nyeupe',
+    '🧑🏼‍🩰' => 'mcheza bale: ngozi nyeupe kiasi',
+    '🧑🏽‍🩰' => 'mcheza bale: ngozi ya kahawia',
+    '🧑🏾‍🩰' => 'mcheza bale: ngozi nyeusi kiasi',
+    '🧑🏿‍🩰' => 'mcheza bale: ngozi nyeusi',
     '🧔🏻‍♂' => 'mwanamume: ngozi nyeupe na ndevu',
     '🧔🏼‍♂' => 'mwanamume: ngozi nyeupe kiasi na ndevu',
     '🧔🏽‍♂' => 'mwanamume: ngozi ya kahawia na ndevu',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'mwanamke anayetembea: ngozi ya kahawia',
     '🚶🏾‍♀' => 'mwanamke anayetembea: ngozi nyeusi kiasi',
     '🚶🏿‍♀' => 'mwanamke anayetembea: ngozi nyeusi',
-    '🚶🏻‍➡' => 'mtu anayetembea inayoangalia kulia',
-    '🚶🏼‍➡' => 'mtu anayetembea inayoangalia kulia',
-    '🚶🏽‍➡' => 'mtu anayetembea inayoangalia kulia',
-    '🚶🏾‍➡' => 'mtu anayetembea inayoangalia kulia',
-    '🚶🏿‍➡' => 'mtu anayetembea inayoangalia kulia',
+    '🚶🏻‍➡' => 'mtu anayetembea: ngozi nyeupe na inayoangalia kulia',
+    '🚶🏼‍➡' => 'mtu anayetembea: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🚶🏽‍➡' => 'mtu anayetembea: ngozi ya kahawia na inayoangalia kulia',
+    '🚶🏾‍➡' => 'mtu anayetembea: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🚶🏿‍➡' => 'mtu anayetembea: ngozi nyeusi na inayoangalia kulia',
     '🧍🏻‍♂' => 'mwanamume aliyesimama: ngozi nyeupe',
     '🧍🏼‍♂' => 'mwanamume aliyesimama: ngozi nyeupe kiasi',
     '🧍🏽‍♂' => 'mwanamume aliyesimama: ngozi ya kahawia',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'mwanamke aliyepiga magoti: ngozi ya kahawia',
     '🧎🏾‍♀' => 'mwanamke aliyepiga magoti: ngozi nyeusi kiasi',
     '🧎🏿‍♀' => 'mwanamke aliyepiga magoti: ngozi nyeusi',
-    '🧎🏻‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
-    '🧎🏼‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
-    '🧎🏽‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
-    '🧎🏾‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
-    '🧎🏿‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
+    '🧎🏻‍➡' => 'mtu aliyepiga magoti: ngozi nyeupe na inayoangalia kulia',
+    '🧎🏼‍➡' => 'mtu aliyepiga magoti: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧎🏽‍➡' => 'mtu aliyepiga magoti: ngozi ya kahawia na inayoangalia kulia',
+    '🧎🏾‍➡' => 'mtu aliyepiga magoti: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧎🏿‍➡' => 'mtu aliyepiga magoti: ngozi nyeusi na inayoangalia kulia',
     '🧑🏻‍🦯' => 'mtu anayetembea kwa mkongojo: ngozi nyeupe',
     '🧑🏼‍🦯' => 'mtu anayetembea kwa mkongojo: ngozi nyeupe kiasi',
     '🧑🏽‍🦯' => 'mtu anayetembea kwa mkongojo: ngozi ya kahawia',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'mwanamke anayekimbia: ngozi ya kahawia',
     '🏃🏾‍♀' => 'mwanamke anayekimbia: ngozi nyeusi kiasi',
     '🏃🏿‍♀' => 'mwanamke anayekimbia: ngozi nyeusi',
-    '🏃🏻‍➡' => 'mkimbiaji inayoangalia kulia',
-    '🏃🏼‍➡' => 'mkimbiaji inayoangalia kulia',
-    '🏃🏽‍➡' => 'mkimbiaji inayoangalia kulia',
-    '🏃🏾‍➡' => 'mkimbiaji inayoangalia kulia',
-    '🏃🏿‍➡' => 'mkimbiaji inayoangalia kulia',
+    '🏃🏻‍➡' => 'mkimbiaji: ngozi nyeupe na inayoangalia kulia',
+    '🏃🏼‍➡' => 'mkimbiaji: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🏃🏽‍➡' => 'mkimbiaji: ngozi ya kahawia na inayoangalia kulia',
+    '🏃🏾‍➡' => 'mkimbiaji: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🏃🏿‍➡' => 'mkimbiaji: ngozi nyeusi na inayoangalia kulia',
+    '👯🏻‍♀' => 'wanawake wanaosherehekea: ngozi nyeupe',
+    '👯🏼‍♀' => 'wanawake wanaosherehekea: ngozi nyeupe kiasi',
+    '👯🏽‍♀' => 'wanawake wanaosherehekea: ngozi ya kahawia',
+    '👯🏾‍♀' => 'wanawake wanaosherehekea: ngozi nyeusi kiasi',
+    '👯🏿‍♀' => 'wanawake wanaosherehekea: ngozi nyeusi',
+    '👯🏻‍♂' => 'wanaume wanaosherehekea: ngozi nyeupe',
+    '👯🏼‍♂' => 'wanaume wanaosherehekea: ngozi nyeupe kiasi',
+    '👯🏽‍♂' => 'wanaume wanaosherehekea: ngozi ya kahawia',
+    '👯🏾‍♂' => 'wanaume wanaosherehekea: ngozi nyeusi kiasi',
+    '👯🏿‍♂' => 'wanaume wanaosherehekea: ngozi nyeusi',
     '🧖🏻‍♂' => 'mwanamume katika bafu la mvuke: ngozi nyeupe',
     '🧖🏼‍♂' => 'mwanamume katika bafu la mvuke: ngozi nyeupe kiasi',
     '🧖🏽‍♂' => 'mwanamume katika bafu la mvuke: ngozi ya kahawia',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'mwanamke anayefanya sarakasi: ngozi ya kahawia',
     '🤸🏾‍♀' => 'mwanamke anayefanya sarakasi: ngozi nyeusi kiasi',
     '🤸🏿‍♀' => 'mwanamke anayefanya sarakasi: ngozi nyeusi',
+    '🤼🏻‍♀' => 'wanawake wanaomenyana miereka: ngozi nyeupe',
+    '🤼🏼‍♀' => 'wanawake wanaomenyana miereka: ngozi nyeupe kiasi',
+    '🤼🏽‍♀' => 'wanawake wanaomenyana miereka: ngozi ya kahawia',
+    '🤼🏾‍♀' => 'wanawake wanaomenyana miereka: ngozi nyeusi kiasi',
+    '🤼🏿‍♀' => 'wanawake wanaomenyana miereka: ngozi nyeusi',
+    '🤼🏻‍♂' => 'wanaume wanaomenyana miereka: ngozi nyeupe',
+    '🤼🏼‍♂' => 'wanaume wanaomenyana miereka: ngozi nyeupe kiasi',
+    '🤼🏽‍♂' => 'wanaume wanaomenyana miereka: ngozi ya kahawia',
+    '🤼🏾‍♂' => 'wanaume wanaomenyana miereka: ngozi nyeusi kiasi',
+    '🤼🏿‍♂' => 'wanaume wanaomenyana miereka: ngozi nyeusi',
     '🤽🏻‍♂' => 'mwanamume anayecheza mpira wa mikono majini: ngozi nyeupe',
     '🤽🏼‍♂' => 'mwanamume anayecheza mpira wa mikono majini: ngozi nyeupe kiasi',
     '🤽🏽‍♂' => 'mwanamume anayecheza mpira wa mikono majini: ngozi ya kahawia',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'mwanamke: nywele yenye mawimbi',
     '👩‍🦳' => 'mwanamke: nywele nyeupe',
     '👩‍🦲' => 'mwanamke: upara',
-    '🚶‍➡' => 'mtu anayetembea inayoangalia kulia',
-    '🧎‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
-    '🏃‍➡' => 'mkimbiaji inayoangalia kulia',
+    '🚶‍➡' => 'mtu anayetembea: inayoangalia kulia',
+    '🧎‍➡' => 'mtu aliyepiga magoti: inayoangalia kulia',
+    '🏃‍➡' => 'mkimbiaji: inayoangalia kulia',
     '👨‍👦' => 'familia: mwanamume na mvulana',
     '👨‍👧' => 'familia: mwanamume na msichana',
     '👩‍👦' => 'familia: mwanamke na mvulana',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'mwanamke anayejiendesha kwa kiti cha magurudumu',
     '🏃‍♂' => 'mwanamume anayekimbia',
     '🏃‍♀' => 'mwanamke anayekimbia',
+    '🧑‍🩰' => 'mcheza bale',
     '👯‍♂' => 'wanaume wanaosherehekea',
     '👯‍♀' => 'wanawake wanaosherehekea',
     '🧖‍♂' => 'mwanamume katika bafu la mvuke',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'mwanaume aliyevaa suti anayeelea hewani: ngozi ya kahawia',
     '🕴🏾' => 'mwanaume aliyevaa suti anayeelea hewani: ngozi nyeusi kiasi',
     '🕴🏿' => 'mwanaume aliyevaa suti anayeelea hewani: ngozi nyeusi',
+    '👯🏻' => 'watu wanaosherehekea: ngozi nyeupe',
+    '👯🏼' => 'watu wanaosherehekea: ngozi nyeupe kiasi',
+    '👯🏽' => 'watu wanaosherehekea: ngozi ya kahawia',
+    '👯🏾' => 'watu wanaosherehekea: ngozi nyeusi kiasi',
+    '👯🏿' => 'watu wanaosherehekea: ngozi nyeusi',
     '🧖🏻' => 'mtu katika bafu la mvuke: ngozi nyeupe',
     '🧖🏼' => 'mtu katika bafu la mvuke: ngozi nyeupe kiasi',
     '🧖🏽' => 'mtu katika bafu la mvuke: ngozi ya kahawia',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'sarakasi: ngozi ya kahawia',
     '🤸🏾' => 'sarakasi: ngozi nyeusi kiasi',
     '🤸🏿' => 'sarakasi: ngozi nyeusi',
+    '🤼🏻' => 'wanandondi: ngozi nyeupe',
+    '🤼🏼' => 'wanandondi: ngozi nyeupe kiasi',
+    '🤼🏽' => 'wanandondi: ngozi ya kahawia',
+    '🤼🏾' => 'wanandondi: ngozi nyeusi kiasi',
+    '🤼🏿' => 'wanandondi: ngozi nyeusi',
     '🤽🏻' => 'michezo kwenye bwawa la kuogelea: ngozi nyeupe',
     '🤽🏼' => 'michezo kwenye bwawa la kuogelea: ngozi nyeupe kiasi',
     '🤽🏽' => 'michezo kwenye bwawa la kuogelea: ngozi ya kahawia',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bendera: Uchina',
     '🇨🇴' => 'bendera: Kolombia',
     '🇨🇵' => 'bendera: Kisiwa cha Clipperton',
+    '🇨🇶' => 'bendera: Sark',
     '🇨🇷' => 'bendera: Kostarika',
     '🇨🇺' => 'bendera: Kuba',
     '🇨🇻' => 'bendera: Kepuvede',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ngozi ya kahawia',
     '🏾' => 'ngozi nyeusi kiasi',
     '🏿' => 'ngozi nyeusi',
-    '🪉' => 'kinubi',
-    '🪏' => 'sepetu',
-    '🪾' => 'mti bila majani',
-    '🫆' => 'alama ya kidole',
-    '🫜' => 'mzizi mboga',
-    '🫟' => 'mtawanyiko',
-    '🫩' => 'uso wenye macho yaliyovimba',
     '😀' => 'uso unaokenua',
     '😃' => 'uso unaotabasamu wenye macho makubwa',
     '😄' => 'uso unaotabasamu wenye macho ya tabasamu',
@@ -2450,6 +2600,7 @@
     '😪' => 'uso unaosinzia',
     '🤤' => 'kutema mate',
     '😴' => 'uso unaoonyesha usingizi',
+    '🫩' => 'uso wenye macho yaliyovimba',
     '😷' => 'uso uliovaa barakoa ya matibabu',
     '🤒' => 'uso wenye kipimajoto mdomoni',
     '🤕' => 'uso uliofungwa bandeji kichwani',
@@ -2476,6 +2627,7 @@
     '😯' => 'uso ulionyamaa',
     '😲' => 'uso uliostaajabu',
     '😳' => 'uso uliojawa msisimko',
+    '🫪' => 'uso ulioumbuka',
     '🥺' => 'uso unaosihi',
     '🥹' => 'uso unaolengwalengwa na machozi',
     '😦' => 'uso ulionuna wenye mdomo uliofunguliwa',
@@ -2547,6 +2699,7 @@
     '💋' => 'alama ya busu',
     '💯' => 'pointi mia moja',
     '💢' => 'alama ya hasira',
+    '🫯' => 'wingu la vita',
     '💥' => 'mgongano',
     '💫' => 'kizunguzungu',
     '💦' => 'matone ya jasho',
@@ -2713,6 +2866,7 @@
     '🫂' => 'watu wanaokumbatiana',
     '👪' => 'familia',
     '👣' => 'nyayo',
+    '🫆' => 'alama ya kidole',
     '🦰' => 'nywele nyekundu',
     '🦱' => 'nywele yenye mawimbi',
     '🦳' => 'nywele nyeupe',
@@ -2821,6 +2975,11 @@
     '🐚' => 'kombe la mzunguko',
     '🪸' => 'matumbawe',
     '🪼' => 'kiwavi wa baharini',
+    '🦀' => 'kaa',
+    '🦞' => 'kambamti',
+    '🦐' => 'uduvi',
+    '🦑' => 'ngisi',
+    '🦪' => 'chaza',
     '🐌' => 'konokono',
     '🦋' => 'kipepeo',
     '🐛' => 'mdudu',
@@ -2865,6 +3024,7 @@
     '🪹' => 'kiota tupu',
     '🪺' => 'kiota chenye mayai',
     '🍄' => 'uyoga',
+    '🪾' => 'mti bila majani',
     '🍇' => 'zabibu',
     '🍈' => 'tikiti',
     '🍉' => 'tikitimaji',
@@ -2901,6 +3061,7 @@
     '🌰' => 'aina ya njugu',
     '🫚' => 'tangawizi',
     '🫛' => 'ganda la njegere',
+    '🫜' => 'mzizi mboga',
     '🍞' => 'mkate',
     '🥐' => 'mahamri',
     '🥖' => 'mkate wa kifaransa',
@@ -2952,11 +3113,6 @@
     '🥟' => 'pudini ya kinyunya',
     '🥠' => 'biskuti ya bahati',
     '🥡' => 'kisanduku cha chakula',
-    '🦀' => 'kaa',
-    '🦞' => 'kambamti',
-    '🦐' => 'uduvi',
-    '🦑' => 'ngisi',
-    '🦪' => 'chaza',
     '🍦' => 'aisikrimu laini',
     '🍧' => 'barafu iliyochongwa',
     '🍨' => 'aisikrimu',
@@ -3007,6 +3163,7 @@
     '🧭' => 'dira',
     '🏔' => 'mlima wenye theluji',
     '⛰' => 'mlima',
+    '🛘' => 'maporomoko ya ardhi',
     '🌋' => 'volkano',
     '🗻' => 'mlima fuji',
     '🏕' => 'kupiga kambi',
@@ -3367,16 +3524,18 @@
     '🎧' => 'spika za masikioni',
     '📻' => 'redio',
     '🎷' => 'saksafoni',
+    '🎺' => 'tarumbeta',
+    '🪊' => 'tromboni',
     '🪗' => 'kodiani',
     '🎸' => 'gita',
     '🎹' => 'kinanda',
-    '🎺' => 'tarumbeta',
     '🎻' => 'fidla',
     '🪕' => 'gambusi',
     '🥁' => 'ngoma',
     '🪘' => 'ngoma refu',
     '🪇' => 'maraka',
     '🪈' => 'zumari',
+    '🪉' => 'kinubi',
     '📱' => 'simu ya mkononi',
     '📲' => 'simu ya mkononi yenye kishale',
     '☎' => 'simu',
@@ -3430,8 +3589,9 @@
     '📑' => 'vichupo vya alamisho',
     '🔖' => 'alamisho',
     '🏷' => 'lebo',
-    '💰' => 'mfuko wa pesa',
     '🪙' => 'sarafu',
+    '💰' => 'mfuko wa pesa',
+    '🪎' => 'kasha',
     '💴' => 'noti ya yeni',
     '💵' => 'noti ya dola',
     '💶' => 'noti ya yuro',
@@ -3514,6 +3674,7 @@
     '🧰' => 'kisanduku cha vifaa',
     '🧲' => 'sumaku',
     '🪜' => 'ngazi',
+    '🪏' => 'sepetu',
     '⚗' => 'alembiki',
     '🧪' => 'neli ya majaribio',
     '🧫' => 'chombo cha kupondea',
@@ -3697,6 +3858,7 @@
     '✴' => 'nyota yenye ncha nane',
     '❇' => 'metameta',
     '™' => 'chapa ya biashara',
+    '🫟' => 'mtawanyiko',
     '🔠' => 'weka herufi kubwa za kilatini',
     '🔡' => 'weka hefuri ndogo za kilatini',
     '🔢' => 'weka nambari',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sw.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sw.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sw.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-sw.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'busu: mwanamke, mwanamke, ngozi nyeusi na ngozi ya kahawia',
     '👩🏿‍❤‍💋‍👩🏾' => 'busu: mwanamke, mwanamke, ngozi nyeusi na ngozi nyeusi kiasi',
     '👩🏿‍❤‍💋‍👩🏿' => 'busu: mwanamke, mwanamke na ngozi nyeusi',
+    '🧑🏻‍🫯‍🧑🏼' => 'wanandondi: ngozi nyeupe na ngozi nyeupe kiasi',
+    '🧑🏻‍🫯‍🧑🏽' => 'wanandondi: ngozi nyeupe na ngozi ya kahawia',
+    '🧑🏻‍🫯‍🧑🏾' => 'wanandondi: ngozi nyeupe na ngozi nyeusi kiasi',
+    '🧑🏻‍🫯‍🧑🏿' => 'wanandondi: ngozi nyeupe na ngozi nyeusi',
+    '🧑🏼‍🫯‍🧑🏻' => 'wanandondi: ngozi nyeupe kiasi na ngozi nyeupe',
+    '🧑🏼‍🫯‍🧑🏽' => 'wanandondi: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '🧑🏼‍🫯‍🧑🏾' => 'wanandondi: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '🧑🏼‍🫯‍🧑🏿' => 'wanandondi: ngozi nyeupe kiasi na ngozi nyeusi',
+    '🧑🏽‍🫯‍🧑🏻' => 'wanandondi: ngozi ya kahawia na ngozi nyeupe',
+    '🧑🏽‍🫯‍🧑🏼' => 'wanandondi: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '🧑🏽‍🫯‍🧑🏾' => 'wanandondi: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '🧑🏽‍🫯‍🧑🏿' => 'wanandondi: ngozi ya kahawia na ngozi nyeusi',
+    '🧑🏾‍🫯‍🧑🏻' => 'wanandondi: ngozi nyeusi kiasi na ngozi nyeupe',
+    '🧑🏾‍🫯‍🧑🏼' => 'wanandondi: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '🧑🏾‍🫯‍🧑🏽' => 'wanandondi: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '🧑🏾‍🫯‍🧑🏿' => 'wanandondi: ngozi nyeusi kiasi na ngozi nyeusi',
+    '🧑🏿‍🫯‍🧑🏻' => 'wanandondi: ngozi nyeusi na ngozi nyeupe',
+    '🧑🏿‍🫯‍🧑🏼' => 'wanandondi: ngozi nyeusi na ngozi nyeupe kiasi',
+    '🧑🏿‍🫯‍🧑🏽' => 'wanandondi: ngozi nyeusi na ngozi ya kahawia',
+    '🧑🏿‍🫯‍🧑🏾' => 'wanandondi: ngozi nyeusi na ngozi nyeusi kiasi',
     '🧑🏻‍❤‍🧑🏼' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeupe na ngozi nyeupe kiasi',
     '🧑🏻‍❤‍🧑🏽' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeupe na ngozi ya kahawia',
     '🧑🏻‍❤‍🧑🏾' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeupe na ngozi nyeusi kiasi',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeusi na ngozi nyeupe kiasi',
     '🧑🏿‍❤‍🧑🏽' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeusi na ngozi ya kahawia',
     '🧑🏿‍❤‍🧑🏾' => 'mume na mke na ishara ya moyo: mtu mzima, mtu mzima, ngozi nyeusi na ngozi nyeusi kiasi',
+    '🧑🏻‍🐰‍🧑🏼' => 'watu wanaosherehekea: ngozi nyeupe na ngozi nyeupe kiasi',
+    '🧑🏻‍🐰‍🧑🏽' => 'watu wanaosherehekea: ngozi nyeupe na ngozi ya kahawia',
+    '🧑🏻‍🐰‍🧑🏾' => 'watu wanaosherehekea: ngozi nyeupe na ngozi nyeusi kiasi',
+    '🧑🏻‍🐰‍🧑🏿' => 'watu wanaosherehekea: ngozi nyeupe na ngozi nyeusi',
+    '🧑🏼‍🐰‍🧑🏻' => 'watu wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeupe',
+    '🧑🏼‍🐰‍🧑🏽' => 'watu wanaosherehekea: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '🧑🏼‍🐰‍🧑🏾' => 'watu wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '🧑🏼‍🐰‍🧑🏿' => 'watu wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi',
+    '🧑🏽‍🐰‍🧑🏻' => 'watu wanaosherehekea: ngozi ya kahawia na ngozi nyeupe',
+    '🧑🏽‍🐰‍🧑🏼' => 'watu wanaosherehekea: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '🧑🏽‍🐰‍🧑🏾' => 'watu wanaosherehekea: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '🧑🏽‍🐰‍🧑🏿' => 'watu wanaosherehekea: ngozi ya kahawia na ngozi nyeusi',
+    '🧑🏾‍🐰‍🧑🏻' => 'watu wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe',
+    '🧑🏾‍🐰‍🧑🏼' => 'watu wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '🧑🏾‍🐰‍🧑🏽' => 'watu wanaosherehekea: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '🧑🏾‍🐰‍🧑🏿' => 'watu wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeusi',
+    '🧑🏿‍🐰‍🧑🏻' => 'watu wanaosherehekea: ngozi nyeusi na ngozi nyeupe',
+    '🧑🏿‍🐰‍🧑🏼' => 'watu wanaosherehekea: ngozi nyeusi na ngozi nyeupe kiasi',
+    '🧑🏿‍🐰‍🧑🏽' => 'watu wanaosherehekea: ngozi nyeusi na ngozi ya kahawia',
+    '🧑🏿‍🐰‍🧑🏾' => 'watu wanaosherehekea: ngozi nyeusi na ngozi nyeusi kiasi',
+    '👨🏻‍🫯‍👨🏼' => 'wanaume wanaomenyana miereka: ngozi nyeupe na ngozi nyeupe kiasi',
+    '👨🏻‍🫯‍👨🏽' => 'wanaume wanaomenyana miereka: ngozi nyeupe na ngozi ya kahawia',
+    '👨🏻‍🫯‍👨🏾' => 'wanaume wanaomenyana miereka: ngozi nyeupe na ngozi nyeusi kiasi',
+    '👨🏻‍🫯‍👨🏿' => 'wanaume wanaomenyana miereka: ngozi nyeupe na ngozi nyeusi',
+    '👨🏼‍🫯‍👨🏻' => 'wanaume wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeupe',
+    '👨🏼‍🫯‍👨🏽' => 'wanaume wanaomenyana miereka: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '👨🏼‍🫯‍👨🏾' => 'wanaume wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '👨🏼‍🫯‍👨🏿' => 'wanaume wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeusi',
+    '👨🏽‍🫯‍👨🏻' => 'wanaume wanaomenyana miereka: ngozi ya kahawia na ngozi nyeupe',
+    '👨🏽‍🫯‍👨🏼' => 'wanaume wanaomenyana miereka: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '👨🏽‍🫯‍👨🏾' => 'wanaume wanaomenyana miereka: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '👨🏽‍🫯‍👨🏿' => 'wanaume wanaomenyana miereka: ngozi ya kahawia na ngozi nyeusi',
+    '👨🏾‍🫯‍👨🏻' => 'wanaume wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeupe',
+    '👨🏾‍🫯‍👨🏼' => 'wanaume wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '👨🏾‍🫯‍👨🏽' => 'wanaume wanaomenyana miereka: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '👨🏾‍🫯‍👨🏿' => 'wanaume wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeusi',
+    '👨🏿‍🫯‍👨🏻' => 'wanaume wanaomenyana miereka: ngozi nyeusi na ngozi nyeupe',
+    '👨🏿‍🫯‍👨🏼' => 'wanaume wanaomenyana miereka: ngozi nyeusi na ngozi nyeupe kiasi',
+    '👨🏿‍🫯‍👨🏽' => 'wanaume wanaomenyana miereka: ngozi nyeusi na ngozi ya kahawia',
+    '👨🏿‍🫯‍👨🏾' => 'wanaume wanaomenyana miereka: ngozi nyeusi na ngozi nyeusi kiasi',
     '👨🏻‍❤‍👨🏻' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume na ngozi nyeupe',
     '👨🏻‍❤‍👨🏼' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume, ngozi nyeupe na ngozi nyeupe kiasi',
     '👨🏻‍❤‍👨🏽' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume, ngozi nyeupe na ngozi ya kahawia',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume, ngozi nyeusi na ngozi ya kahawia',
     '👨🏿‍❤‍👨🏾' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume, ngozi nyeusi na ngozi nyeusi kiasi',
     '👨🏿‍❤‍👨🏿' => 'mume na mke na ishara ya moyo: mwanamume, mwanamume na ngozi nyeusi',
+    '👨🏻‍🐰‍👨🏼' => 'wanaume wanaosherehekea: ngozi nyeupe na ngozi nyeupe kiasi',
+    '👨🏻‍🐰‍👨🏽' => 'wanaume wanaosherehekea: ngozi nyeupe na ngozi ya kahawia',
+    '👨🏻‍🐰‍👨🏾' => 'wanaume wanaosherehekea: ngozi nyeupe na ngozi nyeusi kiasi',
+    '👨🏻‍🐰‍👨🏿' => 'wanaume wanaosherehekea: ngozi nyeupe na ngozi nyeusi',
+    '👨🏼‍🐰‍👨🏻' => 'wanaume wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeupe',
+    '👨🏼‍🐰‍👨🏽' => 'wanaume wanaosherehekea: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '👨🏼‍🐰‍👨🏾' => 'wanaume wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '👨🏼‍🐰‍👨🏿' => 'wanaume wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi',
+    '👨🏽‍🐰‍👨🏻' => 'wanaume wanaosherehekea: ngozi ya kahawia na ngozi nyeupe',
+    '👨🏽‍🐰‍👨🏼' => 'wanaume wanaosherehekea: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '👨🏽‍🐰‍👨🏾' => 'wanaume wanaosherehekea: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '👨🏽‍🐰‍👨🏿' => 'wanaume wanaosherehekea: ngozi ya kahawia na ngozi nyeusi',
+    '👨🏾‍🐰‍👨🏻' => 'wanaume wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe',
+    '👨🏾‍🐰‍👨🏼' => 'wanaume wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '👨🏾‍🐰‍👨🏽' => 'wanaume wanaosherehekea: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '👨🏾‍🐰‍👨🏿' => 'wanaume wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeusi',
+    '👨🏿‍🐰‍👨🏻' => 'wanaume wanaosherehekea: ngozi nyeusi na ngozi nyeupe',
+    '👨🏿‍🐰‍👨🏼' => 'wanaume wanaosherehekea: ngozi nyeusi na ngozi nyeupe kiasi',
+    '👨🏿‍🐰‍👨🏽' => 'wanaume wanaosherehekea: ngozi nyeusi na ngozi ya kahawia',
+    '👨🏿‍🐰‍👨🏾' => 'wanaume wanaosherehekea: ngozi nyeusi na ngozi nyeusi kiasi',
+    '👩🏻‍🫯‍👩🏼' => 'wanawake wanaomenyana miereka: ngozi nyeupe na ngozi nyeupe kiasi',
+    '👩🏻‍🫯‍👩🏽' => 'wanawake wanaomenyana miereka: ngozi nyeupe na ngozi ya kahawia',
+    '👩🏻‍🫯‍👩🏾' => 'wanawake wanaomenyana miereka: ngozi nyeupe na ngozi nyeusi kiasi',
+    '👩🏻‍🫯‍👩🏿' => 'wanawake wanaomenyana miereka: ngozi nyeupe na ngozi nyeusi',
+    '👩🏼‍🫯‍👩🏻' => 'wanawake wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeupe',
+    '👩🏼‍🫯‍👩🏽' => 'wanawake wanaomenyana miereka: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '👩🏼‍🫯‍👩🏾' => 'wanawake wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '👩🏼‍🫯‍👩🏿' => 'wanawake wanaomenyana miereka: ngozi nyeupe kiasi na ngozi nyeusi',
+    '👩🏽‍🫯‍👩🏻' => 'wanawake wanaomenyana miereka: ngozi ya kahawia na ngozi nyeupe',
+    '👩🏽‍🫯‍👩🏼' => 'wanawake wanaomenyana miereka: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '👩🏽‍🫯‍👩🏾' => 'wanawake wanaomenyana miereka: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '👩🏽‍🫯‍👩🏿' => 'wanawake wanaomenyana miereka: ngozi ya kahawia na ngozi nyeusi',
+    '👩🏾‍🫯‍👩🏻' => 'wanawake wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeupe',
+    '👩🏾‍🫯‍👩🏼' => 'wanawake wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '👩🏾‍🫯‍👩🏽' => 'wanawake wanaomenyana miereka: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '👩🏾‍🫯‍👩🏿' => 'wanawake wanaomenyana miereka: ngozi nyeusi kiasi na ngozi nyeusi',
+    '👩🏿‍🫯‍👩🏻' => 'wanawake wanaomenyana miereka: ngozi nyeusi na ngozi nyeupe',
+    '👩🏿‍🫯‍👩🏼' => 'wanawake wanaomenyana miereka: ngozi nyeusi na ngozi nyeupe kiasi',
+    '👩🏿‍🫯‍👩🏽' => 'wanawake wanaomenyana miereka: ngozi nyeusi na ngozi ya kahawia',
+    '👩🏿‍🫯‍👩🏾' => 'wanawake wanaomenyana miereka: ngozi nyeusi na ngozi nyeusi kiasi',
     '👩🏻‍❤‍👨🏻' => 'mume na mke na ishara ya moyo: mwanamke, mwanamume na ngozi nyeupe',
     '👩🏻‍❤‍👨🏼' => 'mume na mke na ishara ya moyo: mwanamke, mwanamume, ngozi nyeupe na ngozi nyeupe kiasi',
     '👩🏻‍❤‍👨🏽' => 'mume na mke na ishara ya moyo: mwanamke, mwanamume, ngozi nyeupe na ngozi ya kahawia',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'mume na mke na ishara ya moyo: mwanamke, mwanamke, ngozi nyeusi na ngozi ya kahawia',
     '👩🏿‍❤‍👩🏾' => 'mume na mke na ishara ya moyo: mwanamke, mwanamke, ngozi nyeusi na ngozi nyeusi kiasi',
     '👩🏿‍❤‍👩🏿' => 'mume na mke na ishara ya moyo: mwanamke, mwanamke na ngozi nyeusi',
+    '👩🏻‍🐰‍👩🏼' => 'wanawake wanaosherehekea: ngozi nyeupe na ngozi nyeupe kiasi',
+    '👩🏻‍🐰‍👩🏽' => 'wanawake wanaosherehekea: ngozi nyeupe na ngozi ya kahawia',
+    '👩🏻‍🐰‍👩🏾' => 'wanawake wanaosherehekea: ngozi nyeupe na ngozi nyeusi kiasi',
+    '👩🏻‍🐰‍👩🏿' => 'wanawake wanaosherehekea: ngozi nyeupe na ngozi nyeusi',
+    '👩🏼‍🐰‍👩🏻' => 'wanawake wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeupe',
+    '👩🏼‍🐰‍👩🏽' => 'wanawake wanaosherehekea: ngozi nyeupe kiasi na ngozi ya kahawia',
+    '👩🏼‍🐰‍👩🏾' => 'wanawake wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi kiasi',
+    '👩🏼‍🐰‍👩🏿' => 'wanawake wanaosherehekea: ngozi nyeupe kiasi na ngozi nyeusi',
+    '👩🏽‍🐰‍👩🏻' => 'wanawake wanaosherehekea: ngozi ya kahawia na ngozi nyeupe',
+    '👩🏽‍🐰‍👩🏼' => 'wanawake wanaosherehekea: ngozi ya kahawia na ngozi nyeupe kiasi',
+    '👩🏽‍🐰‍👩🏾' => 'wanawake wanaosherehekea: ngozi ya kahawia na ngozi nyeusi kiasi',
+    '👩🏽‍🐰‍👩🏿' => 'wanawake wanaosherehekea: ngozi ya kahawia na ngozi nyeusi',
+    '👩🏾‍🐰‍👩🏻' => 'wanawake wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe',
+    '👩🏾‍🐰‍👩🏼' => 'wanawake wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeupe kiasi',
+    '👩🏾‍🐰‍👩🏽' => 'wanawake wanaosherehekea: ngozi nyeusi kiasi na ngozi ya kahawia',
+    '👩🏾‍🐰‍👩🏿' => 'wanawake wanaosherehekea: ngozi nyeusi kiasi na ngozi nyeusi',
+    '👩🏿‍🐰‍👩🏻' => 'wanawake wanaosherehekea: ngozi nyeusi na ngozi nyeupe',
+    '👩🏿‍🐰‍👩🏼' => 'wanawake wanaosherehekea: ngozi nyeusi na ngozi nyeupe kiasi',
+    '👩🏿‍🐰‍👩🏽' => 'wanawake wanaosherehekea: ngozi nyeusi na ngozi ya kahawia',
+    '👩🏿‍🐰‍👩🏾' => 'wanawake wanaosherehekea: ngozi nyeusi na ngozi nyeusi kiasi',
     '🧑🏻‍🤝‍🧑🏻' => 'watu walioshikana mikono: ngozi nyeupe',
     '🧑🏻‍🤝‍🧑🏼' => 'watu walioshikana mikono: ngozi nyeupe na ngozi nyeupe kiasi',
     '🧑🏻‍🤝‍🧑🏽' => 'watu walioshikana mikono: ngozi nyeupe na ngozi ya kahawia',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bendera: Uskoti',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bendera: Welisi',
     '🧑‍🧑‍🧒‍🧒' => 'familia: mtu mzima, mtu mzima, mtoto, mtoto',
-    '🚶🏻‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶🏼‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶🏽‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶🏾‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶🏿‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶🏻‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🚶🏼‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🚶🏽‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🚶🏾‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🚶🏿‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🧎🏻‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎🏼‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎🏽‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎🏾‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎🏿‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎🏻‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧎🏼‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧎🏽‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧎🏾‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧎🏿‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧑🏻‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑🏼‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑🏽‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑🏾‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑🏿‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '👨🏻‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👨🏼‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👨🏽‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👨🏾‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👨🏿‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👩🏻‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '👩🏼‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '👩🏽‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '👩🏾‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '👩🏿‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑🏻‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑🏼‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑🏽‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑🏾‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑🏿‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👨🏻‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👨🏼‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👨🏽‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👨🏾‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👨🏿‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👩🏻‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👩🏼‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👩🏽‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👩🏾‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👩🏿‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑🏻‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🧑🏼‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🧑🏽‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🧑🏾‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🧑🏿‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨🏻‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨🏼‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨🏽‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨🏾‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨🏿‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩🏻‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩🏼‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩🏽‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩🏾‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩🏿‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🏃🏻‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃🏼‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃🏽‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃🏾‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃🏿‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃🏻‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
-    '🏃🏼‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
-    '🏃🏽‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
-    '🏃🏾‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
-    '🏃🏿‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
+    '🚶🏻‍♀‍➡' => 'mwanamke anayetembea: ngozi nyeupe na inayoangalia kulia',
+    '🚶🏼‍♀‍➡' => 'mwanamke anayetembea: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🚶🏽‍♀‍➡' => 'mwanamke anayetembea: ngozi ya kahawia na inayoangalia kulia',
+    '🚶🏾‍♀‍➡' => 'mwanamke anayetembea: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🚶🏿‍♀‍➡' => 'mwanamke anayetembea: ngozi nyeusi na inayoangalia kulia',
+    '🚶🏻‍♂‍➡' => 'mwanamume anayetembea: ngozi nyeupe na inayoangalia kulia',
+    '🚶🏼‍♂‍➡' => 'mwanamume anayetembea: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🚶🏽‍♂‍➡' => 'mwanamume anayetembea: ngozi ya kahawia na inayoangalia kulia',
+    '🚶🏾‍♂‍➡' => 'mwanamume anayetembea: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🚶🏿‍♂‍➡' => 'mwanamume anayetembea: ngozi nyeusi na inayoangalia kulia',
+    '🧎🏻‍♀‍➡' => 'mwanamke aliyepiga magoti: ngozi nyeupe na inayoangalia kulia',
+    '🧎🏼‍♀‍➡' => 'mwanamke aliyepiga magoti: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧎🏽‍♀‍➡' => 'mwanamke aliyepiga magoti: ngozi ya kahawia na inayoangalia kulia',
+    '🧎🏾‍♀‍➡' => 'mwanamke aliyepiga magoti: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧎🏿‍♀‍➡' => 'mwanamke aliyepiga magoti: ngozi nyeusi na inayoangalia kulia',
+    '🧎🏻‍♂‍➡' => 'mwanamume aliyepiga magoti: ngozi nyeupe na inayoangalia kulia',
+    '🧎🏼‍♂‍➡' => 'mwanamume aliyepiga magoti: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧎🏽‍♂‍➡' => 'mwanamume aliyepiga magoti: ngozi ya kahawia na inayoangalia kulia',
+    '🧎🏾‍♂‍➡' => 'mwanamume aliyepiga magoti: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧎🏿‍♂‍➡' => 'mwanamume aliyepiga magoti: ngozi nyeusi na inayoangalia kulia',
+    '🧑🏻‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: ngozi nyeupe na inayoangalia kulia',
+    '🧑🏼‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧑🏽‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: ngozi ya kahawia na inayoangalia kulia',
+    '🧑🏾‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧑🏿‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: ngozi nyeusi na inayoangalia kulia',
+    '👨🏻‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: ngozi nyeupe na inayoangalia kulia',
+    '👨🏼‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👨🏽‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: ngozi ya kahawia na inayoangalia kulia',
+    '👨🏾‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👨🏿‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: ngozi nyeusi na inayoangalia kulia',
+    '👩🏻‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: ngozi nyeupe na inayoangalia kulia',
+    '👩🏼‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👩🏽‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: ngozi ya kahawia na inayoangalia kulia',
+    '👩🏾‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👩🏿‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: ngozi nyeusi na inayoangalia kulia',
+    '🧑🏻‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '🧑🏼‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧑🏽‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '🧑🏾‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧑🏿‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '👨🏻‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '👨🏼‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👨🏽‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '👨🏾‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👨🏿‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '👩🏻‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '👩🏼‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👩🏽‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '👩🏾‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👩🏿‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '🧑🏻‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '🧑🏼‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧑🏽‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '🧑🏾‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧑🏿‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '👨🏻‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '👨🏼‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👨🏽‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '👨🏾‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👨🏿‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '👩🏻‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe na inayoangalia kulia',
+    '👩🏼‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: ngozi nyeupe kiasi na inayoangalia kulia',
+    '👩🏽‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: ngozi ya kahawia na inayoangalia kulia',
+    '👩🏾‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi kiasi na inayoangalia kulia',
+    '👩🏿‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: ngozi nyeusi na inayoangalia kulia',
+    '🏃🏻‍♀‍➡' => 'mwanamke anayekimbia: ngozi nyeupe na inayoangalia kulia',
+    '🏃🏼‍♀‍➡' => 'mwanamke anayekimbia: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🏃🏽‍♀‍➡' => 'mwanamke anayekimbia: ngozi ya kahawia na inayoangalia kulia',
+    '🏃🏾‍♀‍➡' => 'mwanamke anayekimbia: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🏃🏿‍♀‍➡' => 'mwanamke anayekimbia: ngozi nyeusi na inayoangalia kulia',
+    '🏃🏻‍♂‍➡' => 'mwanamume anayekimbia: ngozi nyeupe na inayoangalia kulia',
+    '🏃🏼‍♂‍➡' => 'mwanamume anayekimbia: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🏃🏽‍♂‍➡' => 'mwanamume anayekimbia: ngozi ya kahawia na inayoangalia kulia',
+    '🏃🏾‍♂‍➡' => 'mwanamume anayekimbia: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🏃🏿‍♂‍➡' => 'mwanamume anayekimbia: ngozi nyeusi na inayoangalia kulia',
     '🫱🏻‍🫲🏼' => 'kusalimiana: ngozi nyeupe na ngozi nyeupe kiasi',
     '🫱🏻‍🫲🏽' => 'kusalimiana: ngozi nyeupe na ngozi ya kahawia',
     '🫱🏻‍🫲🏾' => 'kusalimiana: ngozi nyeupe na ngozi nyeusi kiasi',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'kusalimiana: ngozi nyeusi na ngozi nyeupe kiasi',
     '🫱🏿‍🫲🏽' => 'kusalimiana: ngozi nyeusi na ngozi ya kahawia',
     '🫱🏿‍🫲🏾' => 'kusalimiana: ngozi nyeusi na ngozi nyeusi kiasi',
-    '🚶‍♀‍➡' => 'mwanamke anayetembea inayoangalia kulia',
-    '🚶‍♂‍➡' => 'mwanamume anayetembea inayoangalia kulia',
-    '🧎‍♀‍➡' => 'mwanamke aliyepiga magoti inayoangalia kulia',
-    '🧎‍♂‍➡' => 'mwanamume aliyepiga magoti inayoangalia kulia',
-    '🧑‍🦯‍➡' => 'mtu anayetembea kwa mkongojo inayoangalia kulia',
-    '👨‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo inayoangalia kulia',
-    '👩‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo inayoangalia kulia',
-    '🧑‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '👨‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu inayoangalia kulia',
-    '👩‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu inayoangalia kulia',
-    '🧑‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👨‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '👩‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu inayoangalia kulia',
-    '🏃‍♀‍➡' => 'mwanamke anayekimbia inayoangalia kulia',
-    '🏃‍♂‍➡' => 'mwanamume anayekimbia inayoangalia kulia',
+    '🚶‍♀‍➡' => 'mwanamke anayetembea: inayoangalia kulia',
+    '🚶‍♂‍➡' => 'mwanamume anayetembea: inayoangalia kulia',
+    '🧎‍♀‍➡' => 'mwanamke aliyepiga magoti: inayoangalia kulia',
+    '🧎‍♂‍➡' => 'mwanamume aliyepiga magoti: inayoangalia kulia',
+    '🧑‍🦯‍➡' => 'mtu anayetembea kwa mkongojo: inayoangalia kulia',
+    '👨‍🦯‍➡' => 'mwanamume anayetembea kwa mkongojo: inayoangalia kulia',
+    '👩‍🦯‍➡' => 'mwanamke anayetembea kwa mkongojo: inayoangalia kulia',
+    '🧑‍🦼‍➡' => 'mtu aliyeketia kiti cha magurudumu: inayoangalia kulia',
+    '👨‍🦼‍➡' => 'Mtu aliyeketi kwenye kiti cha magurudumu: inayoangalia kulia',
+    '👩‍🦼‍➡' => 'mwanamke aliyeketia kiti cha magurudumu: inayoangalia kulia',
+    '🧑‍🦽‍➡' => 'mtu anayejiendesha kwa kiti cha magurudumu: inayoangalia kulia',
+    '👨‍🦽‍➡' => 'mwanamume anayejiendesha kwa kiti cha magurudumu: inayoangalia kulia',
+    '👩‍🦽‍➡' => 'mwanamke anayejiendesha kwa kiti cha magurudumu: inayoangalia kulia',
+    '🏃‍♀‍➡' => 'mwanamke anayekimbia: inayoangalia kulia',
+    '🏃‍♂‍➡' => 'mwanamume anayekimbia: inayoangalia kulia',
     '👩‍❤‍👨' => 'mume na mke na ishara ya moyo: mwanamke na mwanamume',
     '👨‍❤‍👨' => 'mume na mke na ishara ya moyo: mwanamume na mwanamume',
     '👩‍❤‍👩' => 'mume na mke na ishara ya moyo: mwanamke na mwanamke',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'mtu mzima: ngozi ya kahawia na upara',
     '🧑🏾‍🦲' => 'mtu mzima: ngozi nyeusi kiasi na upara',
     '🧑🏿‍🦲' => 'mtu mzima: ngozi nyeusi na upara',
+    '🧑🏻‍🩰' => 'mcheza bale: ngozi nyeupe',
+    '🧑🏼‍🩰' => 'mcheza bale: ngozi nyeupe kiasi',
+    '🧑🏽‍🩰' => 'mcheza bale: ngozi ya kahawia',
+    '🧑🏾‍🩰' => 'mcheza bale: ngozi nyeusi kiasi',
+    '🧑🏿‍🩰' => 'mcheza bale: ngozi nyeusi',
     '🧔🏻‍♂' => 'mwanamume: ngozi nyeupe na ndevu',
     '🧔🏼‍♂' => 'mwanamume: ngozi nyeupe kiasi na ndevu',
     '🧔🏽‍♂' => 'mwanamume: ngozi ya kahawia na ndevu',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'mwanamke anayetembea: ngozi ya kahawia',
     '🚶🏾‍♀' => 'mwanamke anayetembea: ngozi nyeusi kiasi',
     '🚶🏿‍♀' => 'mwanamke anayetembea: ngozi nyeusi',
-    '🚶🏻‍➡' => 'mtu anayetembea inayoangalia kulia',
-    '🚶🏼‍➡' => 'mtu anayetembea inayoangalia kulia',
-    '🚶🏽‍➡' => 'mtu anayetembea inayoangalia kulia',
-    '🚶🏾‍➡' => 'mtu anayetembea inayoangalia kulia',
-    '🚶🏿‍➡' => 'mtu anayetembea inayoangalia kulia',
+    '🚶🏻‍➡' => 'mtu anayetembea: ngozi nyeupe na inayoangalia kulia',
+    '🚶🏼‍➡' => 'mtu anayetembea: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🚶🏽‍➡' => 'mtu anayetembea: ngozi ya kahawia na inayoangalia kulia',
+    '🚶🏾‍➡' => 'mtu anayetembea: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🚶🏿‍➡' => 'mtu anayetembea: ngozi nyeusi na inayoangalia kulia',
     '🧍🏻‍♂' => 'mwanamume aliyesimama: ngozi nyeupe',
     '🧍🏼‍♂' => 'mwanamume aliyesimama: ngozi nyeupe kiasi',
     '🧍🏽‍♂' => 'mwanamume aliyesimama: ngozi ya kahawia',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'mwanamke aliyepiga magoti: ngozi ya kahawia',
     '🧎🏾‍♀' => 'mwanamke aliyepiga magoti: ngozi nyeusi kiasi',
     '🧎🏿‍♀' => 'mwanamke aliyepiga magoti: ngozi nyeusi',
-    '🧎🏻‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
-    '🧎🏼‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
-    '🧎🏽‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
-    '🧎🏾‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
-    '🧎🏿‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
+    '🧎🏻‍➡' => 'mtu aliyepiga magoti: ngozi nyeupe na inayoangalia kulia',
+    '🧎🏼‍➡' => 'mtu aliyepiga magoti: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🧎🏽‍➡' => 'mtu aliyepiga magoti: ngozi ya kahawia na inayoangalia kulia',
+    '🧎🏾‍➡' => 'mtu aliyepiga magoti: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🧎🏿‍➡' => 'mtu aliyepiga magoti: ngozi nyeusi na inayoangalia kulia',
     '🧑🏻‍🦯' => 'mtu anayetembea kwa mkongojo: ngozi nyeupe',
     '🧑🏼‍🦯' => 'mtu anayetembea kwa mkongojo: ngozi nyeupe kiasi',
     '🧑🏽‍🦯' => 'mtu anayetembea kwa mkongojo: ngozi ya kahawia',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'mwanamke anayekimbia: ngozi ya kahawia',
     '🏃🏾‍♀' => 'mwanamke anayekimbia: ngozi nyeusi kiasi',
     '🏃🏿‍♀' => 'mwanamke anayekimbia: ngozi nyeusi',
-    '🏃🏻‍➡' => 'mkimbiaji inayoangalia kulia',
-    '🏃🏼‍➡' => 'mkimbiaji inayoangalia kulia',
-    '🏃🏽‍➡' => 'mkimbiaji inayoangalia kulia',
-    '🏃🏾‍➡' => 'mkimbiaji inayoangalia kulia',
-    '🏃🏿‍➡' => 'mkimbiaji inayoangalia kulia',
+    '🏃🏻‍➡' => 'mkimbiaji: ngozi nyeupe na inayoangalia kulia',
+    '🏃🏼‍➡' => 'mkimbiaji: ngozi nyeupe kiasi na inayoangalia kulia',
+    '🏃🏽‍➡' => 'mkimbiaji: ngozi ya kahawia na inayoangalia kulia',
+    '🏃🏾‍➡' => 'mkimbiaji: ngozi nyeusi kiasi na inayoangalia kulia',
+    '🏃🏿‍➡' => 'mkimbiaji: ngozi nyeusi na inayoangalia kulia',
+    '👯🏻‍♀' => 'wanawake wanaosherehekea: ngozi nyeupe',
+    '👯🏼‍♀' => 'wanawake wanaosherehekea: ngozi nyeupe kiasi',
+    '👯🏽‍♀' => 'wanawake wanaosherehekea: ngozi ya kahawia',
+    '👯🏾‍♀' => 'wanawake wanaosherehekea: ngozi nyeusi kiasi',
+    '👯🏿‍♀' => 'wanawake wanaosherehekea: ngozi nyeusi',
+    '👯🏻‍♂' => 'wanaume wanaosherehekea: ngozi nyeupe',
+    '👯🏼‍♂' => 'wanaume wanaosherehekea: ngozi nyeupe kiasi',
+    '👯🏽‍♂' => 'wanaume wanaosherehekea: ngozi ya kahawia',
+    '👯🏾‍♂' => 'wanaume wanaosherehekea: ngozi nyeusi kiasi',
+    '👯🏿‍♂' => 'wanaume wanaosherehekea: ngozi nyeusi',
     '🧖🏻‍♂' => 'mwanamume katika bafu la mvuke: ngozi nyeupe',
     '🧖🏼‍♂' => 'mwanamume katika bafu la mvuke: ngozi nyeupe kiasi',
     '🧖🏽‍♂' => 'mwanamume katika bafu la mvuke: ngozi ya kahawia',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'mwanamke anayefanya sarakasi: ngozi ya kahawia',
     '🤸🏾‍♀' => 'mwanamke anayefanya sarakasi: ngozi nyeusi kiasi',
     '🤸🏿‍♀' => 'mwanamke anayefanya sarakasi: ngozi nyeusi',
+    '🤼🏻‍♀' => 'wanawake wanaomenyana miereka: ngozi nyeupe',
+    '🤼🏼‍♀' => 'wanawake wanaomenyana miereka: ngozi nyeupe kiasi',
+    '🤼🏽‍♀' => 'wanawake wanaomenyana miereka: ngozi ya kahawia',
+    '🤼🏾‍♀' => 'wanawake wanaomenyana miereka: ngozi nyeusi kiasi',
+    '🤼🏿‍♀' => 'wanawake wanaomenyana miereka: ngozi nyeusi',
+    '🤼🏻‍♂' => 'wanaume wanaomenyana miereka: ngozi nyeupe',
+    '🤼🏼‍♂' => 'wanaume wanaomenyana miereka: ngozi nyeupe kiasi',
+    '🤼🏽‍♂' => 'wanaume wanaomenyana miereka: ngozi ya kahawia',
+    '🤼🏾‍♂' => 'wanaume wanaomenyana miereka: ngozi nyeusi kiasi',
+    '🤼🏿‍♂' => 'wanaume wanaomenyana miereka: ngozi nyeusi',
     '🤽🏻‍♂' => 'mwanamume anayecheza mpira wa mikono majini: ngozi nyeupe',
     '🤽🏼‍♂' => 'mwanamume anayecheza mpira wa mikono majini: ngozi nyeupe kiasi',
     '🤽🏽‍♂' => 'mwanamume anayecheza mpira wa mikono majini: ngozi ya kahawia',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'mwanamke: nywele yenye mawimbi',
     '👩‍🦳' => 'mwanamke: nywele nyeupe',
     '👩‍🦲' => 'mwanamke: upara',
-    '🚶‍➡' => 'mtu anayetembea inayoangalia kulia',
-    '🧎‍➡' => 'mtu aliyepiga magoti inayoangalia kulia',
-    '🏃‍➡' => 'mkimbiaji inayoangalia kulia',
+    '🚶‍➡' => 'mtu anayetembea: inayoangalia kulia',
+    '🧎‍➡' => 'mtu aliyepiga magoti: inayoangalia kulia',
+    '🏃‍➡' => 'mkimbiaji: inayoangalia kulia',
     '👨‍👦' => 'familia: mwanamume na mvulana',
     '👨‍👧' => 'familia: mwanamume na msichana',
     '👩‍👦' => 'familia: mwanamke na mvulana',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'mwanamke anayejiendesha kwa kiti cha magurudumu',
     '🏃‍♂' => 'mwanamume anayekimbia',
     '🏃‍♀' => 'mwanamke anayekimbia',
+    '🧑‍🩰' => 'mcheza bale',
     '👯‍♂' => 'wanaume wanaosherehekea',
     '👯‍♀' => 'wanawake wanaosherehekea',
     '🧖‍♂' => 'mwanamume katika bafu la mvuke',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'mwanaume aliyevaa suti anayeelea hewani: ngozi ya kahawia',
     '🕴🏾' => 'mwanaume aliyevaa suti anayeelea hewani: ngozi nyeusi kiasi',
     '🕴🏿' => 'mwanaume aliyevaa suti anayeelea hewani: ngozi nyeusi',
+    '👯🏻' => 'watu wanaosherehekea: ngozi nyeupe',
+    '👯🏼' => 'watu wanaosherehekea: ngozi nyeupe kiasi',
+    '👯🏽' => 'watu wanaosherehekea: ngozi ya kahawia',
+    '👯🏾' => 'watu wanaosherehekea: ngozi nyeusi kiasi',
+    '👯🏿' => 'watu wanaosherehekea: ngozi nyeusi',
     '🧖🏻' => 'mtu katika bafu la mvuke: ngozi nyeupe',
     '🧖🏼' => 'mtu katika bafu la mvuke: ngozi nyeupe kiasi',
     '🧖🏽' => 'mtu katika bafu la mvuke: ngozi ya kahawia',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'sarakasi: ngozi ya kahawia',
     '🤸🏾' => 'sarakasi: ngozi nyeusi kiasi',
     '🤸🏿' => 'sarakasi: ngozi nyeusi',
+    '🤼🏻' => 'wanandondi: ngozi nyeupe',
+    '🤼🏼' => 'wanandondi: ngozi nyeupe kiasi',
+    '🤼🏽' => 'wanandondi: ngozi ya kahawia',
+    '🤼🏾' => 'wanandondi: ngozi nyeusi kiasi',
+    '🤼🏿' => 'wanandondi: ngozi nyeusi',
     '🤽🏻' => 'michezo kwenye bwawa la kuogelea: ngozi nyeupe',
     '🤽🏼' => 'michezo kwenye bwawa la kuogelea: ngozi nyeupe kiasi',
     '🤽🏽' => 'michezo kwenye bwawa la kuogelea: ngozi ya kahawia',
@@ -2166,7 +2322,7 @@
     '🇧🇿' => 'bendera: Belize',
     '🇨🇦' => 'bendera: Kanada',
     '🇨🇨' => 'bendera: Visiwa vya Cocos (Keeling)',
-    '🇨🇩' => 'bendera: Jamhuri ya Kidemokrasia ya Kongo',
+    '🇨🇩' => 'bendera: Kongo - Kinshasa',
     '🇨🇫' => 'bendera: Jamhuri ya Afrika ya Kati',
     '🇨🇬' => 'bendera: Kongo - Brazzaville',
     '🇨🇭' => 'bendera: Uswisi',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bendera: Uchina',
     '🇨🇴' => 'bendera: Kolombia',
     '🇨🇵' => 'bendera: Kisiwa cha Clipperton',
+    '🇨🇶' => 'bendera: Sark',
     '🇨🇷' => 'bendera: Kostarika',
     '🇨🇺' => 'bendera: Kuba',
     '🇨🇻' => 'bendera: Cape Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'ngozi ya kahawia',
     '🏾' => 'ngozi nyeusi kiasi',
     '🏿' => 'ngozi nyeusi',
-    '🪉' => 'kinubi',
-    '🪏' => 'sepetu',
-    '🪾' => 'mti bila majani',
-    '🫆' => 'alama ya kidole',
-    '🫜' => 'mzizi mboga',
-    '🫟' => 'mtawanyiko',
-    '🫩' => 'uso wenye macho yaliyovimba',
     '😀' => 'uso unaokenua',
     '😃' => 'uso unaotabasamu wenye macho makubwa',
     '😄' => 'uso unaotabasamu wenye macho ya tabasamu',
@@ -2450,6 +2600,7 @@
     '😪' => 'uso unaosinzia',
     '🤤' => 'kutema mate',
     '😴' => 'uso unaoonyesha usingizi',
+    '🫩' => 'uso wenye macho yaliyovimba',
     '😷' => 'uso uliovaa barakoa ya matibabu',
     '🤒' => 'uso wenye kipimajoto mdomoni',
     '🤕' => 'uso uliofungwa bandeji kichwani',
@@ -2476,6 +2627,7 @@
     '😯' => 'uso ulionyamaa',
     '😲' => 'uso uliostaajabu',
     '😳' => 'uso uliojawa msisimko',
+    '🫪' => 'uso ulioumbuka',
     '🥺' => 'uso unaosihi',
     '🥹' => 'uso unaolengwalengwa na machozi',
     '😦' => 'uso ulionuna wenye mdomo uliofunguliwa',
@@ -2547,6 +2699,7 @@
     '💋' => 'alama ya busu',
     '💯' => 'pointi mia moja',
     '💢' => 'alama ya hasira',
+    '🫯' => 'wingu la vita',
     '💥' => 'mgongano',
     '💫' => 'kizunguzungu',
     '💦' => 'matone ya jasho',
@@ -2713,6 +2866,7 @@
     '🫂' => 'watu wanaokumbatiana',
     '👪' => 'familia',
     '👣' => 'nyayo',
+    '🫆' => 'alama ya kidole',
     '🦰' => 'nywele nyekundu',
     '🦱' => 'nywele yenye mawimbi',
     '🦳' => 'nywele nyeupe',
@@ -2821,6 +2975,11 @@
     '🐚' => 'kombe la mzunguko',
     '🪸' => 'matumbawe',
     '🪼' => 'kiwavi wa baharini',
+    '🦀' => 'kaa',
+    '🦞' => 'kambamti',
+    '🦐' => 'uduvi',
+    '🦑' => 'ngisi',
+    '🦪' => 'chaza',
     '🐌' => 'konokono',
     '🦋' => 'kipepeo',
     '🐛' => 'mdudu',
@@ -2865,6 +3024,7 @@
     '🪹' => 'kiota tupu',
     '🪺' => 'kiota chenye mayai',
     '🍄' => 'uyoga',
+    '🪾' => 'mti bila majani',
     '🍇' => 'zabibu',
     '🍈' => 'tikiti',
     '🍉' => 'tikitimaji',
@@ -2901,6 +3061,7 @@
     '🌰' => 'aina ya njugu',
     '🫚' => 'tangawizi',
     '🫛' => 'ganda la njegere',
+    '🫜' => 'mzizi mboga',
     '🍞' => 'mkate',
     '🥐' => 'mahamri',
     '🥖' => 'mkate wa kifaransa',
@@ -2952,11 +3113,6 @@
     '🥟' => 'pudini ya kinyunya',
     '🥠' => 'biskuti ya bahati',
     '🥡' => 'kisanduku cha chakula',
-    '🦀' => 'kaa',
-    '🦞' => 'kambamti',
-    '🦐' => 'uduvi',
-    '🦑' => 'ngisi',
-    '🦪' => 'chaza',
     '🍦' => 'aisikrimu laini',
     '🍧' => 'barafu iliyochongwa',
     '🍨' => 'aisikrimu',
@@ -3007,6 +3163,7 @@
     '🧭' => 'dira',
     '🏔' => 'mlima wenye theluji',
     '⛰' => 'mlima',
+    '🛘' => 'maporomoko ya ardhi',
     '🌋' => 'volkano',
     '🗻' => 'mlima fuji',
     '🏕' => 'kupiga kambi',
@@ -3367,16 +3524,18 @@
     '🎧' => 'spika za masikioni',
     '📻' => 'redio',
     '🎷' => 'saksafoni',
+    '🎺' => 'tarumbeta',
+    '🪊' => 'tromboni',
     '🪗' => 'kodiani',
     '🎸' => 'gita',
     '🎹' => 'kinanda',
-    '🎺' => 'tarumbeta',
     '🎻' => 'fidla',
     '🪕' => 'gambusi',
     '🥁' => 'ngoma',
     '🪘' => 'ngoma refu',
     '🪇' => 'maraka',
     '🪈' => 'zumari',
+    '🪉' => 'kinubi',
     '📱' => 'simu ya mkononi',
     '📲' => 'simu ya mkononi yenye kishale',
     '☎' => 'simu',
@@ -3430,8 +3589,9 @@
     '📑' => 'vichupo vya alamisho',
     '🔖' => 'alamisho',
     '🏷' => 'lebo',
-    '💰' => 'mfuko wa pesa',
     '🪙' => 'sarafu',
+    '💰' => 'mfuko wa pesa',
+    '🪎' => 'kasha',
     '💴' => 'noti ya yeni',
     '💵' => 'noti ya dola',
     '💶' => 'noti ya yuro',
@@ -3514,6 +3674,7 @@
     '🧰' => 'kisanduku cha vifaa',
     '🧲' => 'sumaku',
     '🪜' => 'ngazi',
+    '🪏' => 'sepetu',
     '⚗' => 'alembiki',
     '🧪' => 'neli ya majaribio',
     '🧫' => 'chombo cha kupondea',
@@ -3697,6 +3858,7 @@
     '✴' => 'nyota yenye ncha nane',
     '❇' => 'metameta',
     '™' => 'chapa ya biashara',
+    '🫟' => 'mtawanyiko',
     '🔠' => 'weka herufi kubwa za kilatini',
     '🔡' => 'weka hefuri ndogo za kilatini',
     '🔢' => 'weka nambari',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-syr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-syr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-syr.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-syr.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,20 @@
+<?php
+
+return [
+    '😀' => 'ܦܐܬܐ ܚܕܝܬܐ',
+    '😃' => 'ܦܐܬܐ ܚܕܝܬܐ ܘܥܝܢ̈ܐ ܪ̈ܒܐ',
+    '😄' => 'ܦܐܬܐ ܚܕܝܬܐ ܘܥܝܢ̈ܐ ܚܕܝ̈ܐ',
+    '😁' => 'ܦܐܬܐ ܒܣܝܡܬܐ ܘܥܝܢ̈ܐ ܚܕܝ̈ܐ',
+    '😆' => 'ܦܐܬܐ ܚܕܝܬܐ ܘܥܝܢ̈ܐ ܐܟܝܡ̈ܐ',
+    '😅' => 'ܦܐܬܐ ܚܕܝܬܐ ܘܕܘܥܬܐ',
+    '🤣' => 'ܡܓܘܪܚܠܐ ܥܠ ܐܪܥܐ ܒܓܘܚܟܐ',
+    '😂' => 'ܦܐܬܐ ܘܕܡܥ̈ܐ ܕܓܘܚܟܐ',
+    '🙂' => 'ܦܐܬܐ ܘܒܪܣܘܡܬܐ ܦܫܝܛܬܐ',
+    '🙃' => 'ܦܐܬܐ ܗܦܟܝܬܐ',
+    '🫠' => 'ܦܐܬܐ ܦܫܝܪܬܐ',
+    '😉' => 'ܦܐܬܐ ܪܡܝܙܬܐ',
+    '😊' => 'ܦܐܬܐ ܡܒܘܪܣܡܬܐ ܘܥܝܢ̈ܐ ܚܕܝ̈ܐ',
+    '😇' => 'ܦܐܬܐ ܡܒܘܪܣܡܬܐ ܘܚܘܓܬܐ',
+    '🥰' => 'ܦܐܬܐ ܡܒܘܪܣܡܬܐ ܥܡ ܠܒܘ̈ܬܐ',
+    '❤' => 'ܠܒܐ ܣܡܘܩܐ',
+];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ta.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ta.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ta.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ta.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'முத்தமிடுதல்: பெண், பெண், வகை 6, வகை 4',
     '👩🏿‍❤‍💋‍👩🏾' => 'முத்தமிடுதல்: பெண், பெண், வகை 6, வகை 5',
     '👩🏿‍❤‍💋‍👩🏿' => 'முத்தமிடுதல்: பெண், பெண், வகை 6',
+    '🧑🏻‍🫯‍🧑🏼' => 'மல்யுத்தம்: வகை 1–2, வகை 3',
+    '🧑🏻‍🫯‍🧑🏽' => 'மல்யுத்தம்: வகை 1–2, வகை 4',
+    '🧑🏻‍🫯‍🧑🏾' => 'மல்யுத்தம்: வகை 1–2, வகை 5',
+    '🧑🏻‍🫯‍🧑🏿' => 'மல்யுத்தம்: வகை 1–2, வகை 6',
+    '🧑🏼‍🫯‍🧑🏻' => 'மல்யுத்தம்: வகை 3, வகை 1–2',
+    '🧑🏼‍🫯‍🧑🏽' => 'மல்யுத்தம்: வகை 3, வகை 4',
+    '🧑🏼‍🫯‍🧑🏾' => 'மல்யுத்தம்: வகை 3, வகை 5',
+    '🧑🏼‍🫯‍🧑🏿' => 'மல்யுத்தம்: வகை 3, வகை 6',
+    '🧑🏽‍🫯‍🧑🏻' => 'மல்யுத்தம்: வகை 4, வகை 1–2',
+    '🧑🏽‍🫯‍🧑🏼' => 'மல்யுத்தம்: வகை 4, வகை 3',
+    '🧑🏽‍🫯‍🧑🏾' => 'மல்யுத்தம்: வகை 4, வகை 5',
+    '🧑🏽‍🫯‍🧑🏿' => 'மல்யுத்தம்: வகை 4, வகை 6',
+    '🧑🏾‍🫯‍🧑🏻' => 'மல்யுத்தம்: வகை 5, வகை 1–2',
+    '🧑🏾‍🫯‍🧑🏼' => 'மல்யுத்தம்: வகை 5, வகை 3',
+    '🧑🏾‍🫯‍🧑🏽' => 'மல்யுத்தம்: வகை 5, வகை 4',
+    '🧑🏾‍🫯‍🧑🏿' => 'மல்யுத்தம்: வகை 5, வகை 6',
+    '🧑🏿‍🫯‍🧑🏻' => 'மல்யுத்தம்: வகை 6, வகை 1–2',
+    '🧑🏿‍🫯‍🧑🏼' => 'மல்யுத்தம்: வகை 6, வகை 3',
+    '🧑🏿‍🫯‍🧑🏽' => 'மல்யுத்தம்: வகை 6, வகை 4',
+    '🧑🏿‍🫯‍🧑🏾' => 'மல்யுத்தம்: வகை 6, வகை 5',
     '🧑🏻‍❤‍🧑🏼' => 'காதலர்கள்: வயது வந்தவர், வயது வந்தவர், வகை 1–2, வகை 3',
     '🧑🏻‍❤‍🧑🏽' => 'காதலர்கள்: வயது வந்தவர், வயது வந்தவர், வகை 1–2, வகை 4',
     '🧑🏻‍❤‍🧑🏾' => 'காதலர்கள்: வயது வந்தவர், வயது வந்தவர், வகை 1–2, வகை 5',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'காதலர்கள்: வயது வந்தவர், வயது வந்தவர், வகை 6, வகை 3',
     '🧑🏿‍❤‍🧑🏽' => 'காதலர்கள்: வயது வந்தவர், வயது வந்தவர், வகை 6, வகை 4',
     '🧑🏿‍❤‍🧑🏾' => 'காதலர்கள்: வயது வந்தவர், வயது வந்தவர், வகை 6, வகை 5',
+    '🧑🏻‍🐰‍🧑🏼' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 1–2, வகை 3',
+    '🧑🏻‍🐰‍🧑🏽' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 1–2, வகை 4',
+    '🧑🏻‍🐰‍🧑🏾' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 1–2, வகை 5',
+    '🧑🏻‍🐰‍🧑🏿' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 1–2, வகை 6',
+    '🧑🏼‍🐰‍🧑🏻' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 3, வகை 1–2',
+    '🧑🏼‍🐰‍🧑🏽' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 3, வகை 4',
+    '🧑🏼‍🐰‍🧑🏾' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 3, வகை 5',
+    '🧑🏼‍🐰‍🧑🏿' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 3, வகை 6',
+    '🧑🏽‍🐰‍🧑🏻' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 4, வகை 1–2',
+    '🧑🏽‍🐰‍🧑🏼' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 4, வகை 3',
+    '🧑🏽‍🐰‍🧑🏾' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 4, வகை 5',
+    '🧑🏽‍🐰‍🧑🏿' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 4, வகை 6',
+    '🧑🏾‍🐰‍🧑🏻' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 5, வகை 1–2',
+    '🧑🏾‍🐰‍🧑🏼' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 5, வகை 3',
+    '🧑🏾‍🐰‍🧑🏽' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 5, வகை 4',
+    '🧑🏾‍🐰‍🧑🏿' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 5, வகை 6',
+    '🧑🏿‍🐰‍🧑🏻' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 6, வகை 1–2',
+    '🧑🏿‍🐰‍🧑🏼' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 6, வகை 3',
+    '🧑🏿‍🐰‍🧑🏽' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 6, வகை 4',
+    '🧑🏿‍🐰‍🧑🏾' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 6, வகை 5',
+    '👨🏻‍🫯‍👨🏼' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 1–2, வகை 3',
+    '👨🏻‍🫯‍👨🏽' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 1–2, வகை 4',
+    '👨🏻‍🫯‍👨🏾' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 1–2, வகை 5',
+    '👨🏻‍🫯‍👨🏿' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 1–2, வகை 6',
+    '👨🏼‍🫯‍👨🏻' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 3, வகை 1–2',
+    '👨🏼‍🫯‍👨🏽' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 3, வகை 4',
+    '👨🏼‍🫯‍👨🏾' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 3, வகை 5',
+    '👨🏼‍🫯‍👨🏿' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 3, வகை 6',
+    '👨🏽‍🫯‍👨🏻' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 4, வகை 1–2',
+    '👨🏽‍🫯‍👨🏼' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 4, வகை 3',
+    '👨🏽‍🫯‍👨🏾' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 4, வகை 5',
+    '👨🏽‍🫯‍👨🏿' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 4, வகை 6',
+    '👨🏾‍🫯‍👨🏻' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 5, வகை 1–2',
+    '👨🏾‍🫯‍👨🏼' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 5, வகை 3',
+    '👨🏾‍🫯‍👨🏽' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 5, வகை 4',
+    '👨🏾‍🫯‍👨🏿' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 5, வகை 6',
+    '👨🏿‍🫯‍👨🏻' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 6, வகை 1–2',
+    '👨🏿‍🫯‍👨🏼' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 6, வகை 3',
+    '👨🏿‍🫯‍👨🏽' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 6, வகை 4',
+    '👨🏿‍🫯‍👨🏾' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 6, வகை 5',
     '👨🏻‍❤‍👨🏻' => 'காதலர்கள்: ஆண், ஆண், வகை 1–2',
     '👨🏻‍❤‍👨🏼' => 'காதலர்கள்: ஆண், ஆண், வகை 1–2, வகை 3',
     '👨🏻‍❤‍👨🏽' => 'காதலர்கள்: ஆண், ஆண், வகை 1–2, வகை 4',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'காதலர்கள்: ஆண், ஆண், வகை 6, வகை 4',
     '👨🏿‍❤‍👨🏾' => 'காதலர்கள்: ஆண், ஆண், வகை 6, வகை 5',
     '👨🏿‍❤‍👨🏿' => 'காதலர்கள்: ஆண், ஆண், வகை 6',
+    '👨🏻‍🐰‍👨🏼' => 'நடனமாடும் ஆண்கள்: வகை 1–2, வகை 3',
+    '👨🏻‍🐰‍👨🏽' => 'நடனமாடும் ஆண்கள்: வகை 1–2, வகை 4',
+    '👨🏻‍🐰‍👨🏾' => 'நடனமாடும் ஆண்கள்: வகை 1–2, வகை 5',
+    '👨🏻‍🐰‍👨🏿' => 'நடனமாடும் ஆண்கள்: வகை 1–2, வகை 6',
+    '👨🏼‍🐰‍👨🏻' => 'நடனமாடும் ஆண்கள்: வகை 3, வகை 1–2',
+    '👨🏼‍🐰‍👨🏽' => 'நடனமாடும் ஆண்கள்: வகை 3, வகை 4',
+    '👨🏼‍🐰‍👨🏾' => 'நடனமாடும் ஆண்கள்: வகை 3, வகை 5',
+    '👨🏼‍🐰‍👨🏿' => 'நடனமாடும் ஆண்கள்: வகை 3, வகை 6',
+    '👨🏽‍🐰‍👨🏻' => 'நடனமாடும் ஆண்கள்: வகை 4, வகை 1–2',
+    '👨🏽‍🐰‍👨🏼' => 'நடனமாடும் ஆண்கள்: வகை 4, வகை 3',
+    '👨🏽‍🐰‍👨🏾' => 'நடனமாடும் ஆண்கள்: வகை 4, வகை 5',
+    '👨🏽‍🐰‍👨🏿' => 'நடனமாடும் ஆண்கள்: வகை 4, வகை 6',
+    '👨🏾‍🐰‍👨🏻' => 'நடனமாடும் ஆண்கள்: வகை 5, வகை 1–2',
+    '👨🏾‍🐰‍👨🏼' => 'நடனமாடும் ஆண்கள்: வகை 5, வகை 3',
+    '👨🏾‍🐰‍👨🏽' => 'நடனமாடும் ஆண்கள்: வகை 5, வகை 4',
+    '👨🏾‍🐰‍👨🏿' => 'நடனமாடும் ஆண்கள்: வகை 5, வகை 6',
+    '👨🏿‍🐰‍👨🏻' => 'நடனமாடும் ஆண்கள்: வகை 6, வகை 1–2',
+    '👨🏿‍🐰‍👨🏼' => 'நடனமாடும் ஆண்கள்: வகை 6, வகை 3',
+    '👨🏿‍🐰‍👨🏽' => 'நடனமாடும் ஆண்கள்: வகை 6, வகை 4',
+    '👨🏿‍🐰‍👨🏾' => 'நடனமாடும் ஆண்கள்: வகை 6, வகை 5',
+    '👩🏻‍🫯‍👩🏼' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 1–2, வகை 3',
+    '👩🏻‍🫯‍👩🏽' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 1–2, வகை 4',
+    '👩🏻‍🫯‍👩🏾' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 1–2, வகை 5',
+    '👩🏻‍🫯‍👩🏿' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 1–2, வகை 6',
+    '👩🏼‍🫯‍👩🏻' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 3, வகை 1–2',
+    '👩🏼‍🫯‍👩🏽' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 3, வகை 4',
+    '👩🏼‍🫯‍👩🏾' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 3, வகை 5',
+    '👩🏼‍🫯‍👩🏿' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 3, வகை 6',
+    '👩🏽‍🫯‍👩🏻' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 4, வகை 1–2',
+    '👩🏽‍🫯‍👩🏼' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 4, வகை 3',
+    '👩🏽‍🫯‍👩🏾' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 4, வகை 5',
+    '👩🏽‍🫯‍👩🏿' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 4, வகை 6',
+    '👩🏾‍🫯‍👩🏻' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 5, வகை 1–2',
+    '👩🏾‍🫯‍👩🏼' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 5, வகை 3',
+    '👩🏾‍🫯‍👩🏽' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 5, வகை 4',
+    '👩🏾‍🫯‍👩🏿' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 5, வகை 6',
+    '👩🏿‍🫯‍👩🏻' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 6, வகை 1–2',
+    '👩🏿‍🫯‍👩🏼' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 6, வகை 3',
+    '👩🏿‍🫯‍👩🏽' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 6, வகை 4',
+    '👩🏿‍🫯‍👩🏾' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 6, வகை 5',
     '👩🏻‍❤‍👨🏻' => 'காதலர்கள்: பெண், ஆண், வகை 1–2',
     '👩🏻‍❤‍👨🏼' => 'காதலர்கள்: பெண், ஆண், வகை 1–2, வகை 3',
     '👩🏻‍❤‍👨🏽' => 'காதலர்கள்: பெண், ஆண், வகை 1–2, வகை 4',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'காதலர்கள்: பெண், பெண், வகை 6, வகை 4',
     '👩🏿‍❤‍👩🏾' => 'காதலர்கள்: பெண், பெண், வகை 6, வகை 5',
     '👩🏿‍❤‍👩🏿' => 'காதலர்கள்: பெண், பெண், வகை 6',
+    '👩🏻‍🐰‍👩🏼' => 'நடனமாடும் பெண்கள்: வகை 1–2, வகை 3',
+    '👩🏻‍🐰‍👩🏽' => 'நடனமாடும் பெண்கள்: வகை 1–2, வகை 4',
+    '👩🏻‍🐰‍👩🏾' => 'நடனமாடும் பெண்கள்: வகை 1–2, வகை 5',
+    '👩🏻‍🐰‍👩🏿' => 'நடனமாடும் பெண்கள்: வகை 1–2, வகை 6',
+    '👩🏼‍🐰‍👩🏻' => 'நடனமாடும் பெண்கள்: வகை 3, வகை 1–2',
+    '👩🏼‍🐰‍👩🏽' => 'நடனமாடும் பெண்கள்: வகை 3, வகை 4',
+    '👩🏼‍🐰‍👩🏾' => 'நடனமாடும் பெண்கள்: வகை 3, வகை 5',
+    '👩🏼‍🐰‍👩🏿' => 'நடனமாடும் பெண்கள்: வகை 3, வகை 6',
+    '👩🏽‍🐰‍👩🏻' => 'நடனமாடும் பெண்கள்: வகை 4, வகை 1–2',
+    '👩🏽‍🐰‍👩🏼' => 'நடனமாடும் பெண்கள்: வகை 4, வகை 3',
+    '👩🏽‍🐰‍👩🏾' => 'நடனமாடும் பெண்கள்: வகை 4, வகை 5',
+    '👩🏽‍🐰‍👩🏿' => 'நடனமாடும் பெண்கள்: வகை 4, வகை 6',
+    '👩🏾‍🐰‍👩🏻' => 'நடனமாடும் பெண்கள்: வகை 5, வகை 1–2',
+    '👩🏾‍🐰‍👩🏼' => 'நடனமாடும் பெண்கள்: வகை 5, வகை 3',
+    '👩🏾‍🐰‍👩🏽' => 'நடனமாடும் பெண்கள்: வகை 5, வகை 4',
+    '👩🏾‍🐰‍👩🏿' => 'நடனமாடும் பெண்கள்: வகை 5, வகை 6',
+    '👩🏿‍🐰‍👩🏻' => 'நடனமாடும் பெண்கள்: வகை 6, வகை 1–2',
+    '👩🏿‍🐰‍👩🏼' => 'நடனமாடும் பெண்கள்: வகை 6, வகை 3',
+    '👩🏿‍🐰‍👩🏽' => 'நடனமாடும் பெண்கள்: வகை 6, வகை 4',
+    '👩🏿‍🐰‍👩🏾' => 'நடனமாடும் பெண்கள்: வகை 6, வகை 5',
     '🧑🏻‍🤝‍🧑🏻' => 'கை கோர்த்திருக்கும் மக்கள்: வகை 1–2',
     '🧑🏻‍🤝‍🧑🏼' => 'கை கோர்த்திருக்கும் மக்கள்: வகை 1–2, வகை 3',
     '🧑🏻‍🤝‍🧑🏽' => 'கை கோர்த்திருக்கும் மக்கள்: வகை 1–2, வகை 4',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'கொடி: ஸ்காட்லாந்து',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'கொடி: வேல்ஸ்',
     '🧑‍🧑‍🧒‍🧒' => 'குடும்பம்: பெரியவர், பெரியவர், குழந்தை, குழந்தை',
-    '🚶🏻‍♀‍➡' => 'நடந்து செல்லும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏼‍♀‍➡' => 'நடந்து செல்லும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏽‍♀‍➡' => 'நடந்து செல்லும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏾‍♀‍➡' => 'நடந்து செல்லும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏿‍♀‍➡' => 'நடந்து செல்லும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏻‍♂‍➡' => 'நடந்து செல்லும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏼‍♂‍➡' => 'நடந்து செல்லும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏽‍♂‍➡' => 'நடந்து செல்லும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏾‍♂‍➡' => 'நடந்து செல்லும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏿‍♂‍➡' => 'நடந்து செல்லும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏻‍♀‍➡' => 'மண்டியிட்டுள்ள பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏼‍♀‍➡' => 'மண்டியிட்டுள்ள பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏽‍♀‍➡' => 'மண்டியிட்டுள்ள பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏾‍♀‍➡' => 'மண்டியிட்டுள்ள பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏿‍♀‍➡' => 'மண்டியிட்டுள்ள பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏻‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏼‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏽‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏾‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏿‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏻‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏼‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏽‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏾‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏿‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏻‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏼‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏽‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏾‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏿‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏻‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏼‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏽‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏾‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏿‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏻‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏼‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏽‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏾‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏿‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏻‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏼‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏽‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏾‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏿‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏻‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏼‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏽‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏾‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏿‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏻‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏼‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏽‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏾‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑🏿‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏻‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏼‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏽‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏾‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨🏿‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏻‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏼‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏽‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏾‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩🏿‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏻‍♀‍➡' => 'ஓடும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏼‍♀‍➡' => 'ஓடும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏽‍♀‍➡' => 'ஓடும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏾‍♀‍➡' => 'ஓடும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏿‍♀‍➡' => 'ஓடும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏻‍♂‍➡' => 'ஓடும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏼‍♂‍➡' => 'ஓடும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏽‍♂‍➡' => 'ஓடும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏾‍♂‍➡' => 'ஓடும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏿‍♂‍➡' => 'ஓடும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏻‍♀‍➡' => 'நடந்து செல்லும் பெண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏼‍♀‍➡' => 'நடந்து செல்லும் பெண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏽‍♀‍➡' => 'நடந்து செல்லும் பெண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏾‍♀‍➡' => 'நடந்து செல்லும் பெண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏿‍♀‍➡' => 'நடந்து செல்லும் பெண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏻‍♂‍➡' => 'நடந்து செல்லும் ஆண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏼‍♂‍➡' => 'நடந்து செல்லும் ஆண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏽‍♂‍➡' => 'நடந்து செல்லும் ஆண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏾‍♂‍➡' => 'நடந்து செல்லும் ஆண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏿‍♂‍➡' => 'நடந்து செல்லும் ஆண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏻‍♀‍➡' => 'மண்டியிட்டுள்ள பெண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏼‍♀‍➡' => 'மண்டியிட்டுள்ள பெண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏽‍♀‍➡' => 'மண்டியிட்டுள்ள பெண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏾‍♀‍➡' => 'மண்டியிட்டுள்ள பெண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏿‍♀‍➡' => 'மண்டியிட்டுள்ள பெண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏻‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏼‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏽‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏾‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏿‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏻‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏼‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏽‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏾‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏿‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏻‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏼‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏽‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏾‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏿‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏻‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏼‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏽‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏾‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏿‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏻‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏼‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏽‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏾‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏿‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏻‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏼‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏽‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏾‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏿‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏻‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏼‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏽‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏾‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏿‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏻‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏼‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏽‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏾‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑🏿‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏻‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏼‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏽‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏾‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨🏿‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏻‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏼‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏽‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏾‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩🏿‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏻‍♀‍➡' => 'ஓடும் பெண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏼‍♀‍➡' => 'ஓடும் பெண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏽‍♀‍➡' => 'ஓடும் பெண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏾‍♀‍➡' => 'ஓடும் பெண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏿‍♀‍➡' => 'ஓடும் பெண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏻‍♂‍➡' => 'ஓடும் ஆண்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏼‍♂‍➡' => 'ஓடும் ஆண்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏽‍♂‍➡' => 'ஓடும் ஆண்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏾‍♂‍➡' => 'ஓடும் ஆண்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏿‍♂‍➡' => 'ஓடும் ஆண்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
     '🫱🏻‍🫲🏼' => 'கைகுலுக்கல்: வகை 1–2, வகை 3',
     '🫱🏻‍🫲🏽' => 'கைகுலுக்கல்: வகை 1–2, வகை 4',
     '🫱🏻‍🫲🏾' => 'கைகுலுக்கல்: வகை 1–2, வகை 5',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'கைகுலுக்கல்: வகை 6, வகை 3',
     '🫱🏿‍🫲🏽' => 'கைகுலுக்கல்: வகை 6, வகை 4',
     '🫱🏿‍🫲🏾' => 'கைகுலுக்கல்: வகை 6, வகை 5',
-    '🚶‍♀‍➡' => 'நடந்து செல்லும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶‍♂‍➡' => 'நடந்து செல்லும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎‍♀‍➡' => 'மண்டியிட்டுள்ள பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧑‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👨‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '👩‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃‍♀‍➡' => 'ஓடும் பெண் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃‍♂‍➡' => 'ஓடும் ஆண் வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶‍♀‍➡' => 'நடந்து செல்லும் பெண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶‍♂‍➡' => 'நடந்து செல்லும் ஆண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎‍♀‍➡' => 'மண்டியிட்டுள்ள பெண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎‍♂‍➡' => 'மண்டியிட்டுள்ள ஆண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑‍🦯‍➡' => 'தடியுடன் நடக்கும் நபர்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் ஆண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩‍🦯‍➡' => 'கைத்தடியுடன் நடக்கும் பெண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑‍🦼‍➡' => 'மோட்டார் சக்கர நாற்காலியில் இருக்கும் நபர்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩‍🦼‍➡' => 'மின்னாற்றலில் இயங்கும் சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧑‍🦽‍➡' => 'கையால் உந்தப்படும் சக்கர நாற்காலியில் இருக்கும் நபர்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👨‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் ஆண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👩‍🦽‍➡' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃‍♀‍➡' => 'ஓடும் பெண்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃‍♂‍➡' => 'ஓடும் ஆண்: வலதுபுறம் எதிர்கொள்ளுதல்',
     '👩‍❤‍👨' => 'காதலர்கள்: பெண், ஆண்',
     '👨‍❤‍👨' => 'காதலர்கள்: ஆண், ஆண்',
     '👩‍❤‍👩' => 'காதலர்கள்: பெண், பெண்',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'வயது வந்தவர்: வகை 4, வழுக்கை',
     '🧑🏾‍🦲' => 'வயது வந்தவர்: வகை 5, வழுக்கை',
     '🧑🏿‍🦲' => 'வயது வந்தவர்: வகை 6, வழுக்கை',
+    '🧑🏻‍🩰' => 'பாலட் நடனக் கலைஞர்: வகை 1–2',
+    '🧑🏼‍🩰' => 'பாலட் நடனக் கலைஞர்: வகை 3',
+    '🧑🏽‍🩰' => 'பாலட் நடனக் கலைஞர்: வகை 4',
+    '🧑🏾‍🩰' => 'பாலட் நடனக் கலைஞர்: வகை 5',
+    '🧑🏿‍🩰' => 'பாலட் நடனக் கலைஞர்: வகை 6',
     '🧔🏻‍♂' => 'தாடி வைத்த ஆண்: வகை 1–2',
     '🧔🏼‍♂' => 'தாடி வைத்த ஆண்: வகை 3',
     '🧔🏽‍♂' => 'தாடி வைத்த ஆண்: வகை 4',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'நடந்து செல்லும் பெண்: வகை 4',
     '🚶🏾‍♀' => 'நடந்து செல்லும் பெண்: வகை 5',
     '🚶🏿‍♀' => 'நடந்து செல்லும் பெண்: வகை 6',
-    '🚶🏻‍➡' => 'நடை வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏼‍➡' => 'நடை வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏽‍➡' => 'நடை வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏾‍➡' => 'நடை வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🚶🏿‍➡' => 'நடை வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏻‍➡' => 'நடை: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏼‍➡' => 'நடை: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏽‍➡' => 'நடை: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏾‍➡' => 'நடை: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶🏿‍➡' => 'நடை: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
     '🧍🏻‍♂' => 'நிற்கும் ஆண்: வகை 1–2',
     '🧍🏼‍♂' => 'நிற்கும் ஆண்: வகை 3',
     '🧍🏽‍♂' => 'நிற்கும் ஆண்: வகை 4',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'மண்டியிட்டுள்ள பெண்: வகை 4',
     '🧎🏾‍♀' => 'மண்டியிட்டுள்ள பெண்: வகை 5',
     '🧎🏿‍♀' => 'மண்டியிட்டுள்ள பெண்: வகை 6',
-    '🧎🏻‍➡' => 'மண்டியிடுதல் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏼‍➡' => 'மண்டியிடுதல் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏽‍➡' => 'மண்டியிடுதல் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏾‍➡' => 'மண்டியிடுதல் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎🏿‍➡' => 'மண்டியிடுதல் வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏻‍➡' => 'மண்டியிடுதல்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏼‍➡' => 'மண்டியிடுதல்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏽‍➡' => 'மண்டியிடுதல்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏾‍➡' => 'மண்டியிடுதல்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎🏿‍➡' => 'மண்டியிடுதல்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
     '🧑🏻‍🦯' => 'தடியுடன் நடக்கும் நபர்: வகை 1–2',
     '🧑🏼‍🦯' => 'தடியுடன் நடக்கும் நபர்: வகை 3',
     '🧑🏽‍🦯' => 'தடியுடன் நடக்கும் நபர்: வகை 4',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ஓடும் பெண்: வகை 4',
     '🏃🏾‍♀' => 'ஓடும் பெண்: வகை 5',
     '🏃🏿‍♀' => 'ஓடும் பெண்: வகை 6',
-    '🏃🏻‍➡' => 'ஓட்டம் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏼‍➡' => 'ஓட்டம் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏽‍➡' => 'ஓட்டம் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏾‍➡' => 'ஓட்டம் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃🏿‍➡' => 'ஓட்டம் வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏻‍➡' => 'ஓட்டம்: வகை 1–2, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏼‍➡' => 'ஓட்டம்: வகை 3, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏽‍➡' => 'ஓட்டம்: வகை 4, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏾‍➡' => 'ஓட்டம்: வகை 5, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃🏿‍➡' => 'ஓட்டம்: வகை 6, வலதுபுறம் எதிர்கொள்ளுதல்',
+    '👯🏻‍♀' => 'நடனமாடும் பெண்கள்: வகை 1–2',
+    '👯🏼‍♀' => 'நடனமாடும் பெண்கள்: வகை 3',
+    '👯🏽‍♀' => 'நடனமாடும் பெண்கள்: வகை 4',
+    '👯🏾‍♀' => 'நடனமாடும் பெண்கள்: வகை 5',
+    '👯🏿‍♀' => 'நடனமாடும் பெண்கள்: வகை 6',
+    '👯🏻‍♂' => 'நடனமாடும் ஆண்கள்: வகை 1–2',
+    '👯🏼‍♂' => 'நடனமாடும் ஆண்கள்: வகை 3',
+    '👯🏽‍♂' => 'நடனமாடும் ஆண்கள்: வகை 4',
+    '👯🏾‍♂' => 'நடனமாடும் ஆண்கள்: வகை 5',
+    '👯🏿‍♂' => 'நடனமாடும் ஆண்கள்: வகை 6',
     '🧖🏻‍♂' => 'நீராவிக் குளியல் எடுக்கும் ஆண்: வகை 1–2',
     '🧖🏼‍♂' => 'நீராவிக் குளியல் எடுக்கும் ஆண்: வகை 3',
     '🧖🏽‍♂' => 'நீராவிக் குளியல் எடுக்கும் ஆண்: வகை 4',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'ஜிம்னாஸ்டிக்ஸ் செய்யும் பெண்: வகை 4',
     '🤸🏾‍♀' => 'ஜிம்னாஸ்டிக்ஸ் செய்யும் பெண்: வகை 5',
     '🤸🏿‍♀' => 'ஜிம்னாஸ்டிக்ஸ் செய்யும் பெண்: வகை 6',
+    '🤼🏻‍♀' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 1–2',
+    '🤼🏼‍♀' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 3',
+    '🤼🏽‍♀' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 4',
+    '🤼🏾‍♀' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 5',
+    '🤼🏿‍♀' => 'மல்யுத்தம் செய்யும் பெண்கள்: வகை 6',
+    '🤼🏻‍♂' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 1–2',
+    '🤼🏼‍♂' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 3',
+    '🤼🏽‍♂' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 4',
+    '🤼🏾‍♂' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 5',
+    '🤼🏿‍♂' => 'மல்யுத்தம் செய்யும் ஆண்கள்: வகை 6',
     '🤽🏻‍♂' => 'வாட்டர் போலோ விளையாடும் ஆண்: வகை 1–2',
     '🤽🏼‍♂' => 'வாட்டர் போலோ விளையாடும் ஆண்: வகை 3',
     '🤽🏽‍♂' => 'வாட்டர் போலோ விளையாடும் ஆண்: வகை 4',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'பெண்: சுருட்டை முடி',
     '👩‍🦳' => 'பெண்: வெள்ளை முடி',
     '👩‍🦲' => 'பெண்: வழுக்கை',
-    '🚶‍➡' => 'நடை வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🧎‍➡' => 'மண்டியிடுதல் வலதுபுறம் எதிர்கொள்ளுதல்',
-    '🏃‍➡' => 'ஓட்டம் வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🚶‍➡' => 'நடை: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🧎‍➡' => 'மண்டியிடுதல்: வலதுபுறம் எதிர்கொள்ளுதல்',
+    '🏃‍➡' => 'ஓட்டம்: வலதுபுறம் எதிர்கொள்ளுதல்',
     '👨‍👦' => 'குடும்பம்: ஆண், சிறுவன்',
     '👨‍👧' => 'குடும்பம்: ஆண், சிறுமி',
     '👩‍👦' => 'குடும்பம்: பெண், சிறுவன்',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'சக்கர நாற்காலியில் அமர்ந்திருக்கும் பெண்',
     '🏃‍♂' => 'ஓடும் ஆண்',
     '🏃‍♀' => 'ஓடும் பெண்',
+    '🧑‍🩰' => 'பாலட் நடனக் கலைஞர்',
     '👯‍♂' => 'நடனமாடும் ஆண்கள்',
     '👯‍♀' => 'நடனமாடும் பெண்கள்',
     '🧖‍♂' => 'நீராவிக் குளியல் எடுக்கும் ஆண்',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'வணிகம் செய்பவர்: வகை 4',
     '🕴🏾' => 'வணிகம் செய்பவர்: வகை 5',
     '🕴🏿' => 'வணிகம் செய்பவர்: வகை 6',
+    '👯🏻' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 1–2',
+    '👯🏼' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 3',
+    '👯🏽' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 4',
+    '👯🏾' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 5',
+    '👯🏿' => 'பார்ட்டிக்குச் செல்லும் பெண்கள்: வகை 6',
     '🧖🏻' => 'நீராவிக் குளியல்: வகை 1–2',
     '🧖🏼' => 'நீராவிக் குளியல்: வகை 3',
     '🧖🏽' => 'நீராவிக் குளியல்: வகை 4',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ஜிம்னாஸ்டிக்ஸ்: வகை 4',
     '🤸🏾' => 'ஜிம்னாஸ்டிக்ஸ்: வகை 5',
     '🤸🏿' => 'ஜிம்னாஸ்டிக்ஸ்: வகை 6',
+    '🤼🏻' => 'மல்யுத்தம்: வகை 1–2',
+    '🤼🏼' => 'மல்யுத்தம்: வகை 3',
+    '🤼🏽' => 'மல்யுத்தம்: வகை 4',
+    '🤼🏾' => 'மல்யுத்தம்: வகை 5',
+    '🤼🏿' => 'மல்யுத்தம்: வகை 6',
     '🤽🏻' => 'வாட்டர் போலோ: வகை 1–2',
     '🤽🏼' => 'வாட்டர் போலோ: வகை 3',
     '🤽🏽' => 'வாட்டர் போலோ: வகை 4',
@@ -2128,7 +2284,7 @@
     '💑🏿' => 'காதலர்கள்: வகை 6',
     '🇦🇨' => 'கொடி: அஷன்ஷியன் தீவு',
     '🇦🇩' => 'கொடி: அன்டோரா',
-    '🇦🇪' => 'கொடி: ஐக்கிய அரபு எமிரேட்ஸ்',
+    '🇦🇪' => 'கொடி: ஐக்கிய அரபு அமீரகம்',
     '🇦🇫' => 'கொடி: ஆஃப்கானிஸ்தான்',
     '🇦🇬' => 'கொடி: ஆண்டிகுவா மற்றும் பார்புடா',
     '🇦🇮' => 'கொடி: அங்கியுலா',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'கொடி: சீனா',
     '🇨🇴' => 'கொடி: கொலம்பியா',
     '🇨🇵' => 'கொடி: கிலிப்பர்டன் தீவு',
+    '🇨🇶' => 'கொடி: சார்க்',
     '🇨🇷' => 'கொடி: கோஸ்டாரிகா',
     '🇨🇺' => 'கொடி: கியூபா',
     '🇨🇻' => 'கொடி: கேப் வெர்டே',
@@ -2243,7 +2400,7 @@
     '🇮🇸' => 'கொடி: ஐஸ்லாந்து',
     '🇮🇹' => 'கொடி: இத்தாலி',
     '🇯🇪' => 'கொடி: ஜெர்சி',
-    '🇯🇲' => 'கொடி: ஜமைகா',
+    '🇯🇲' => 'கொடி: ஜமைக்கா',
     '🇯🇴' => 'கொடி: ஜோர்டான்',
     '🇯🇵' => 'கொடி: ஜப்பான்',
     '🇰🇪' => 'கொடி: கென்யா',
@@ -2277,7 +2434,7 @@
     '🇲🇭' => 'கொடி: மார்ஷல் தீவுகள்',
     '🇲🇰' => 'கொடி: வடக்கு மாசிடோனியா',
     '🇲🇱' => 'கொடி: மாலி',
-    '🇲🇲' => 'கொடி: மியான்மார் (பர்மா)',
+    '🇲🇲' => 'கொடி: மியான்மர் (பர்மா)',
     '🇲🇳' => 'கொடி: மங்கோலியா',
     '🇲🇴' => 'கொடி: மகாவ் எஸ்ஏஆர் சீனா',
     '🇲🇵' => 'கொடி: வடக்கு மரியானா தீவுகள்',
@@ -2390,13 +2547,6 @@
     '🏽' => 'வகை 4',
     '🏾' => 'வகை 5',
     '🏿' => 'வகை 6',
-    '🪉' => 'யாழ்',
-    '🪏' => 'மண்வெட்டி',
-    '🪾' => 'இலை உதிர்ந்த மரம்',
-    '🫆' => 'கைரேகை',
-    '🫜' => 'பீட்ரூட்',
-    '🫟' => 'சிதறல்',
-    '🫩' => 'உறக்கமற்ற முகம்',
     '😀' => 'புன்னகைக்கும் முகம்',
     '😃' => 'கண்களை விரித்து சிரிக்கும் முகம்',
     '😄' => 'வாய் நிறைய சிரிப்புடன் புன்னகைக்கும் கண்கள் கொண்ட முகம்',
@@ -2450,6 +2600,7 @@
     '😪' => 'தூக்கக் கலக்கம்',
     '🤤' => 'ஜொள்ளு விடும் முகம்',
     '😴' => 'தூங்கும் முகம்',
+    '🫩' => 'உறக்கமற்ற முகம்',
     '😷' => 'மருத்துவ மாஸ்க் அணிந்த முகம்',
     '🤒' => 'வெப்பநிலைமானி வைத்திருக்கும் முகம்',
     '🤕' => 'தலைக்கட்டு கட்டப்பட்ட முகம்',
@@ -2476,6 +2627,7 @@
     '😯' => 'ஆச்சரியத்தை வெளிப்படுத்தும் முகம்',
     '😲' => 'அதிர்ச்சியை வெளிப்படுத்தும் முகம்',
     '😳' => 'திகைப்பைக் காட்டு முகம்',
+    '🫪' => 'உருமாறிய முகம்',
     '🥺' => 'கெஞ்சும் முகம்',
     '🥹' => 'கண்ணீரைத் தேக்கி வைத்துள்ள முகம்',
     '😦' => 'கண்களும் வாயும் திறந்த நிலையில் இருக்கும் முகம்',
@@ -2547,6 +2699,7 @@
     '💋' => 'முத்தம்',
     '💯' => 'நூற்றுக்கு நூறு',
     '💢' => 'கோபம்',
+    '🫯' => 'புகைச்சல்',
     '💥' => 'வெடித்தல்',
     '💫' => 'சுற்றல்',
     '💦' => 'வியர்வைத் துளிகள்',
@@ -2670,6 +2823,7 @@
     '🧞' => 'ஜீனி',
     '🧟' => 'ஜோம்பி',
     '🧌' => 'பூதம்',
+    '🫈' => 'உரோமம் நிறைந்த உயிரினம்',
     '💆' => 'மசாஜ் செய்துகொள்பவர்',
     '💇' => 'முடித்திருத்தம்',
     '🚶' => 'நடை',
@@ -2713,6 +2867,7 @@
     '🫂' => 'கட்டிப்பிடித்தல்',
     '👪' => 'குடும்பம்',
     '👣' => 'காலடித் தடம்',
+    '🫆' => 'கைரேகை',
     '🦰' => 'சிவப்பு முடி',
     '🦱' => 'சுருட்டை முடி',
     '🦳' => 'வெள்ளை முடி',
@@ -2812,6 +2967,7 @@
     '🐳' => 'தண்ணீரைப் பீய்ச்சி அடிக்கும் திமிங்கலம்',
     '🐋' => 'திமிங்கலம்',
     '🐬' => 'டால்பின்',
+    '🫍' => 'ஓர்க்கா',
     '🦭' => 'கடல் சிங்கம்',
     '🐟' => 'மீன்',
     '🐠' => 'நன்னீர் மீன்',
@@ -2821,6 +2977,11 @@
     '🐚' => 'சிப்பி',
     '🪸' => 'பவளம்',
     '🪼' => 'ஜெல்லிமீன்',
+    '🦀' => 'நண்டு',
+    '🦞' => 'கடல் நண்டு',
+    '🦐' => 'கூனிறால்',
+    '🦑' => 'கணவாய்',
+    '🦪' => 'சிப்பி உணவு வகை',
     '🐌' => 'நத்தை',
     '🦋' => 'பட்டாம்பூச்சி',
     '🐛' => 'மூட்டைப் பூச்சி',
@@ -2865,6 +3026,7 @@
     '🪹' => 'காலியான கூடு',
     '🪺' => 'முட்டைகள் உள்ள கூடு',
     '🍄' => 'காளான்',
+    '🪾' => 'இலை உதிர்ந்த மரம்',
     '🍇' => 'திராட்சை',
     '🍈' => 'மெலன்',
     '🍉' => 'தர்பூசணி',
@@ -2901,6 +3063,7 @@
     '🌰' => 'செஸ்ட்நட்',
     '🫚' => 'இஞ்சி வேர்',
     '🫛' => 'பட்டாணி காய்',
+    '🫜' => 'பீட்ரூட்',
     '🍞' => 'பிரெட்',
     '🥐' => 'மாவுப்பண்டம்',
     '🥖' => 'ரொட்டி உணவு',
@@ -2952,11 +3115,6 @@
     '🥟' => 'டம்ப்ளிங்',
     '🥠' => 'ஃபார்ச்சூன் குக்கீ',
     '🥡' => 'சாப்பாடுப் பெட்டி',
-    '🦀' => 'நண்டு',
-    '🦞' => 'கடல் நண்டு',
-    '🦐' => 'கூனிறால்',
-    '🦑' => 'கணவாய்',
-    '🦪' => 'சிப்பி உணவு வகை',
     '🍦' => 'கோன் ஐஸ்',
     '🍧' => 'சிரப் ஊற்றிய ஐஸ்கிரீம்',
     '🍨' => 'ஐஸ்கிரீம்',
@@ -3007,6 +3165,7 @@
     '🧭' => 'காம்பஸ்',
     '🏔' => 'பனி சூழ்ந்த மலை',
     '⛰' => 'மலை',
+    '🛘' => 'நிலச்சரிவு',
     '🌋' => 'எரிமலை',
     '🗻' => 'எவரெஸ்ட்',
     '🏕' => 'முகாமிடுதல்',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ஹெட்ஃபோன்',
     '📻' => 'ரேடியோ',
     '🎷' => 'சாக்ஸபோன்',
+    '🎺' => 'டிரம்பட்',
+    '🪊' => 'டிராம்போன்',
     '🪗' => 'அக்கார்டியன்',
     '🎸' => 'கிட்டார்',
     '🎹' => 'மியூசிக் கீபோர்ட்',
-    '🎺' => 'டிரம்பட்',
     '🎻' => 'வயலின்',
     '🪕' => 'பாஞ்சோ',
     '🥁' => 'மேளம்',
     '🪘' => 'நீண்ட மத்தளம்',
     '🪇' => 'மரக்காஸ்',
     '🪈' => 'புல்லாங்குழல்',
+    '🪉' => 'யாழ்',
     '📱' => 'மொபைல்',
     '📲' => 'அம்புக்குறியுடன் செல்போன்',
     '☎' => 'தொலைபேசி',
@@ -3430,8 +3591,9 @@
     '📑' => 'புக்மார்க் டேப்ஸ்',
     '🔖' => 'புக்மார்க்',
     '🏷' => 'லேபிள்',
-    '💰' => 'பணப்பை',
     '🪙' => 'நாணயம்',
+    '💰' => 'பணப்பை',
+    '🪎' => 'புதையல் பெட்டி',
     '💴' => 'யென் நோட்டு',
     '💵' => 'டாலர் நோட்டு',
     '💶' => 'யூரோ நோட்டு',
@@ -3514,6 +3676,7 @@
     '🧰' => 'டூல்பாக்ஸ்',
     '🧲' => 'காந்தம்',
     '🪜' => 'ஏணி',
+    '🪏' => 'மண்வெட்டி',
     '⚗' => 'அலெம்பிக்',
     '🧪' => 'சோதனைக் குழாய்',
     '🧫' => 'பெட்ரி டிஷ்',
@@ -3697,6 +3860,7 @@
     '✴' => 'எட்டு முனை நட்சத்திரம்',
     '❇' => 'ஸ்பார்கில்',
     '™' => 'வர்த்தக முத்திரை',
+    '🫟' => 'சிதறல்',
     '🔠' => 'லத்தீன் பேரேழுத்து',
     '🔡' => 'லத்தீன் சிற்றெழுத்து',
     '🔢' => 'எண்கள்',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-te.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-te.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-te.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-te.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ముద్దు: మహిళ, మహిళ, ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
     '👩🏿‍❤‍💋‍👩🏾' => 'ముద్దు: మహిళ, మహిళ, ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '👩🏿‍❤‍💋‍👩🏿' => 'ముద్దు: మహిళ, మహిళ, ముదురు చర్మపు రంగు',
+    '🧑🏻‍🫯‍🧑🏼' => 'రెజ్లర్‌లు: లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🧑🏻‍🫯‍🧑🏽' => 'రెజ్లర్‌లు: లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '🧑🏻‍🫯‍🧑🏾' => 'రెజ్లర్‌లు: లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🧑🏻‍🫯‍🧑🏿' => 'రెజ్లర్‌లు: లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '🧑🏼‍🫯‍🧑🏻' => 'రెజ్లర్‌లు: మధ్యస్థంగా లేత చర్మపు రంగు, లేత చర్మపు రంగు',
+    '🧑🏼‍🫯‍🧑🏽' => 'రెజ్లర్‌లు: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '🧑🏼‍🫯‍🧑🏾' => 'రెజ్లర్‌లు: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🧑🏼‍🫯‍🧑🏿' => 'రెజ్లర్‌లు: మధ్యస్థంగా లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '🧑🏽‍🫯‍🧑🏻' => 'రెజ్లర్‌లు: మధ్యస్థ చర్మపు రంగు, లేత చర్మపు రంగు',
+    '🧑🏽‍🫯‍🧑🏼' => 'రెజ్లర్‌లు: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🧑🏽‍🫯‍🧑🏾' => 'రెజ్లర్‌లు: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🧑🏽‍🫯‍🧑🏿' => 'రెజ్లర్‌లు: మధ్యస్థ చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '🧑🏾‍🫯‍🧑🏻' => 'రెజ్లర్‌లు: మధ్యస్థంగా ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '🧑🏾‍🫯‍🧑🏼' => 'రెజ్లర్‌లు: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🧑🏾‍🫯‍🧑🏽' => 'రెజ్లర్‌లు: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '🧑🏾‍🫯‍🧑🏿' => 'రెజ్లర్‌లు: మధ్యస్థంగా ముదురు చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '🧑🏿‍🫯‍🧑🏻' => 'రెజ్లర్‌లు: ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '🧑🏿‍🫯‍🧑🏼' => 'రెజ్లర్‌లు: ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🧑🏿‍🫯‍🧑🏽' => 'రెజ్లర్‌లు: ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '🧑🏿‍🫯‍🧑🏾' => 'రెజ్లర్‌లు: ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '🧑🏻‍❤‍🧑🏼' => 'జంట మధ్య ప్రేమ చిహ్నం: వయోజనుడు, వయోజనుడు, లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
     '🧑🏻‍❤‍🧑🏽' => 'జంట మధ్య ప్రేమ చిహ్నం: వయోజనుడు, వయోజనుడు, లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
     '🧑🏻‍❤‍🧑🏾' => 'జంట మధ్య ప్రేమ చిహ్నం: వయోజనుడు, వయోజనుడు, లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'జంట మధ్య ప్రేమ చిహ్నం: వయోజనుడు, వయోజనుడు, ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
     '🧑🏿‍❤‍🧑🏽' => 'జంట మధ్య ప్రేమ చిహ్నం: వయోజనుడు, వయోజనుడు, ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
     '🧑🏿‍❤‍🧑🏾' => 'జంట మధ్య ప్రేమ చిహ్నం: వయోజనుడు, వయోజనుడు, ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🧑🏻‍🐰‍🧑🏼' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🧑🏻‍🐰‍🧑🏽' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '🧑🏻‍🐰‍🧑🏾' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🧑🏻‍🐰‍🧑🏿' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '🧑🏼‍🐰‍🧑🏻' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థంగా లేత చర్మపు రంగు, లేత చర్మపు రంగు',
+    '🧑🏼‍🐰‍🧑🏽' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '🧑🏼‍🐰‍🧑🏾' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🧑🏼‍🐰‍🧑🏿' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థంగా లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '🧑🏽‍🐰‍🧑🏻' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థ చర్మపు రంగు, లేత చర్మపు రంగు',
+    '🧑🏽‍🐰‍🧑🏼' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🧑🏽‍🐰‍🧑🏾' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🧑🏽‍🐰‍🧑🏿' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థ చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '🧑🏾‍🐰‍🧑🏻' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థంగా ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '🧑🏾‍🐰‍🧑🏼' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🧑🏾‍🐰‍🧑🏽' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '🧑🏾‍🐰‍🧑🏿' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థంగా ముదురు చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '🧑🏿‍🐰‍🧑🏻' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '🧑🏿‍🐰‍🧑🏼' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🧑🏿‍🐰‍🧑🏽' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '🧑🏿‍🐰‍🧑🏾' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👨🏻‍🫯‍👨🏼' => 'కుస్తీ పడుతున్న పురుషుడు: లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👨🏻‍🫯‍👨🏽' => 'కుస్తీ పడుతున్న పురుషుడు: లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👨🏻‍🫯‍👨🏾' => 'కుస్తీ పడుతున్న పురుషుడు: లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👨🏻‍🫯‍👨🏿' => 'కుస్తీ పడుతున్న పురుషుడు: లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👨🏼‍🫯‍👨🏻' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👨🏼‍🫯‍👨🏽' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👨🏼‍🫯‍👨🏾' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👨🏼‍🫯‍👨🏿' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👨🏽‍🫯‍👨🏻' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థ చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👨🏽‍🫯‍👨🏼' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👨🏽‍🫯‍👨🏾' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👨🏽‍🫯‍👨🏿' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థ చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👨🏾‍🫯‍👨🏻' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👨🏾‍🫯‍👨🏼' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👨🏾‍🫯‍👨🏽' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👨🏾‍🫯‍👨🏿' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👨🏿‍🫯‍👨🏻' => 'కుస్తీ పడుతున్న పురుషుడు: ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👨🏿‍🫯‍👨🏼' => 'కుస్తీ పడుతున్న పురుషుడు: ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👨🏿‍🫯‍👨🏽' => 'కుస్తీ పడుతున్న పురుషుడు: ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👨🏿‍🫯‍👨🏾' => 'కుస్తీ పడుతున్న పురుషుడు: ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '👨🏻‍❤‍👨🏻' => 'జంట మధ్య ప్రేమ చిహ్నం: పురుషుడు, పురుషుడు, లేత చర్మపు రంగు',
     '👨🏻‍❤‍👨🏼' => 'జంట మధ్య ప్రేమ చిహ్నం: పురుషుడు, పురుషుడు, లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
     '👨🏻‍❤‍👨🏽' => 'జంట మధ్య ప్రేమ చిహ్నం: పురుషుడు, పురుషుడు, లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'జంట మధ్య ప్రేమ చిహ్నం: పురుషుడు, పురుషుడు, ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
     '👨🏿‍❤‍👨🏾' => 'జంట మధ్య ప్రేమ చిహ్నం: పురుషుడు, పురుషుడు, ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '👨🏿‍❤‍👨🏿' => 'జంట మధ్య ప్రేమ చిహ్నం: పురుషుడు, పురుషుడు, ముదురు చర్మపు రంగు',
+    '👨🏻‍🐰‍👨🏼' => 'కుందేలు చెవులతో పురుషులు: లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👨🏻‍🐰‍👨🏽' => 'కుందేలు చెవులతో పురుషులు: లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👨🏻‍🐰‍👨🏾' => 'కుందేలు చెవులతో పురుషులు: లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👨🏻‍🐰‍👨🏿' => 'కుందేలు చెవులతో పురుషులు: లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👨🏼‍🐰‍👨🏻' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థంగా లేత చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👨🏼‍🐰‍👨🏽' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👨🏼‍🐰‍👨🏾' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👨🏼‍🐰‍👨🏿' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థంగా లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👨🏽‍🐰‍👨🏻' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థ చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👨🏽‍🐰‍👨🏼' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👨🏽‍🐰‍👨🏾' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👨🏽‍🐰‍👨🏿' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థ చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👨🏾‍🐰‍👨🏻' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థంగా ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👨🏾‍🐰‍👨🏼' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👨🏾‍🐰‍👨🏽' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👨🏾‍🐰‍👨🏿' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థంగా ముదురు చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👨🏿‍🐰‍👨🏻' => 'కుందేలు చెవులతో పురుషులు: ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👨🏿‍🐰‍👨🏼' => 'కుందేలు చెవులతో పురుషులు: ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👨🏿‍🐰‍👨🏽' => 'కుందేలు చెవులతో పురుషులు: ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👨🏿‍🐰‍👨🏾' => 'కుందేలు చెవులతో పురుషులు: ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👩🏻‍🫯‍👩🏼' => 'కుస్తీ పడుతున్న స్త్రీ: లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👩🏻‍🫯‍👩🏽' => 'కుస్తీ పడుతున్న స్త్రీ: లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👩🏻‍🫯‍👩🏾' => 'కుస్తీ పడుతున్న స్త్రీ: లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👩🏻‍🫯‍👩🏿' => 'కుస్తీ పడుతున్న స్త్రీ: లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👩🏼‍🫯‍👩🏻' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👩🏼‍🫯‍👩🏽' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👩🏼‍🫯‍👩🏾' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👩🏼‍🫯‍👩🏿' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👩🏽‍🫯‍👩🏻' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👩🏽‍🫯‍👩🏼' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👩🏽‍🫯‍👩🏾' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👩🏽‍🫯‍👩🏿' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👩🏾‍🫯‍👩🏻' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👩🏾‍🫯‍👩🏼' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👩🏾‍🫯‍👩🏽' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👩🏾‍🫯‍👩🏿' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👩🏿‍🫯‍👩🏻' => 'కుస్తీ పడుతున్న స్త్రీ: ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👩🏿‍🫯‍👩🏼' => 'కుస్తీ పడుతున్న స్త్రీ: ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👩🏿‍🫯‍👩🏽' => 'కుస్తీ పడుతున్న స్త్రీ: ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👩🏿‍🫯‍👩🏾' => 'కుస్తీ పడుతున్న స్త్రీ: ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '👩🏻‍❤‍👨🏻' => 'జంట మధ్య ప్రేమ చిహ్నం: మహిళ, పురుషుడు, లేత చర్మపు రంగు',
     '👩🏻‍❤‍👨🏼' => 'జంట మధ్య ప్రేమ చిహ్నం: మహిళ, పురుషుడు, లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
     '👩🏻‍❤‍👨🏽' => 'జంట మధ్య ప్రేమ చిహ్నం: మహిళ, పురుషుడు, లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'జంట మధ్య ప్రేమ చిహ్నం: మహిళ, మహిళ, ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
     '👩🏿‍❤‍👩🏾' => 'జంట మధ్య ప్రేమ చిహ్నం: మహిళ, మహిళ, ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '👩🏿‍❤‍👩🏿' => 'జంట మధ్య ప్రేమ చిహ్నం: మహిళ, మహిళ, ముదురు చర్మపు రంగు',
+    '👩🏻‍🐰‍👩🏼' => 'కుందేలు చెవులతో స్త్రీలు: లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👩🏻‍🐰‍👩🏽' => 'కుందేలు చెవులతో స్త్రీలు: లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👩🏻‍🐰‍👩🏾' => 'కుందేలు చెవులతో స్త్రీలు: లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👩🏻‍🐰‍👩🏿' => 'కుందేలు చెవులతో స్త్రీలు: లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👩🏼‍🐰‍👩🏻' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థంగా లేత చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👩🏼‍🐰‍👩🏽' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👩🏼‍🐰‍👩🏾' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థంగా లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👩🏼‍🐰‍👩🏿' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థంగా లేత చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👩🏽‍🐰‍👩🏻' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థ చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👩🏽‍🐰‍👩🏼' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👩🏽‍🐰‍👩🏾' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థ చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👩🏽‍🐰‍👩🏿' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థ చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👩🏾‍🐰‍👩🏻' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థంగా ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👩🏾‍🐰‍👩🏼' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👩🏾‍🐰‍👩🏽' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థంగా ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👩🏾‍🐰‍👩🏿' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థంగా ముదురు చర్మపు రంగు, ముదురు చర్మపు రంగు',
+    '👩🏿‍🐰‍👩🏻' => 'కుందేలు చెవులతో స్త్రీలు: ముదురు చర్మపు రంగు, లేత చర్మపు రంగు',
+    '👩🏿‍🐰‍👩🏼' => 'కుందేలు చెవులతో స్త్రీలు: ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👩🏿‍🐰‍👩🏽' => 'కుందేలు చెవులతో స్త్రీలు: ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
+    '👩🏿‍🐰‍👩🏾' => 'కుందేలు చెవులతో స్త్రీలు: ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '🧑🏻‍🤝‍🧑🏻' => 'చేతులు పట్టుకున్న వ్యక్తులు: లేత చర్మపు రంగు',
     '🧑🏻‍🤝‍🧑🏼' => 'చేతులు పట్టుకున్న వ్యక్తులు: లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
     '🧑🏻‍🤝‍🧑🏽' => 'చేతులు పట్టుకున్న వ్యక్తులు: లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'పతాకం: స్కాట్లాండ్',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'పతాకం: వేల్స్',
     '🧑‍🧑‍🧒‍🧒' => 'కుటుంబం: నాన్న, అమ్మ, పిల్లలు, పిల్లలు',
-    '🚶🏻‍♀‍➡' => 'నడుస్తున్న స్త్రీ కుడివైపు చూడటం',
-    '🚶🏼‍♀‍➡' => 'నడుస్తున్న స్త్రీ కుడివైపు చూడటం',
-    '🚶🏽‍♀‍➡' => 'నడుస్తున్న స్త్రీ కుడివైపు చూడటం',
-    '🚶🏾‍♀‍➡' => 'నడుస్తున్న స్త్రీ కుడివైపు చూడటం',
-    '🚶🏿‍♀‍➡' => 'నడుస్తున్న స్త్రీ కుడివైపు చూడటం',
-    '🚶🏻‍♂‍➡' => 'నడుస్తున్న పురుషుడు కుడివైపు చూడటం',
-    '🚶🏼‍♂‍➡' => 'నడుస్తున్న పురుషుడు కుడివైపు చూడటం',
-    '🚶🏽‍♂‍➡' => 'నడుస్తున్న పురుషుడు కుడివైపు చూడటం',
-    '🚶🏾‍♂‍➡' => 'నడుస్తున్న పురుషుడు కుడివైపు చూడటం',
-    '🚶🏿‍♂‍➡' => 'నడుస్తున్న పురుషుడు కుడివైపు చూడటం',
-    '🧎🏻‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ కుడివైపు చూడటం',
-    '🧎🏼‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ కుడివైపు చూడటం',
-    '🧎🏽‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ కుడివైపు చూడటం',
-    '🧎🏾‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ కుడివైపు చూడటం',
-    '🧎🏿‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ కుడివైపు చూడటం',
-    '🧎🏻‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు కుడివైపు చూడటం',
-    '🧎🏼‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు కుడివైపు చూడటం',
-    '🧎🏽‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు కుడివైపు చూడటం',
-    '🧎🏾‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు కుడివైపు చూడటం',
-    '🧎🏿‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు కుడివైపు చూడటం',
-    '🧑🏻‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏼‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏽‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏾‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏿‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '👨🏻‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏼‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏽‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏾‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏿‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు కుడివైపు చూడటం',
-    '👩🏻‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏼‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏽‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏾‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏿‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ కుడివైపు చూడటం',
-    '🧑🏻‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏼‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏽‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏾‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏿‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '👨🏻‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏼‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏽‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏾‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏿‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👩🏻‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏼‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏽‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏾‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏿‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '🧑🏻‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏼‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏽‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏾‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '🧑🏿‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '👨🏻‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏼‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏽‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏾‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👨🏿‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👩🏻‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏼‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏽‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏾‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '👩🏿‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '🏃🏻‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ కుడివైపు చూడటం',
-    '🏃🏼‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ కుడివైపు చూడటం',
-    '🏃🏽‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ కుడివైపు చూడటం',
-    '🏃🏾‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ కుడివైపు చూడటం',
-    '🏃🏿‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ కుడివైపు చూడటం',
-    '🏃🏻‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు కుడివైపు చూడటం',
-    '🏃🏼‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు కుడివైపు చూడటం',
-    '🏃🏽‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు కుడివైపు చూడటం',
-    '🏃🏾‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు కుడివైపు చూడటం',
-    '🏃🏿‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు కుడివైపు చూడటం',
+    '🚶🏻‍♀‍➡' => 'నడుస్తున్న స్త్రీ: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏼‍♀‍➡' => 'నడుస్తున్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏽‍♀‍➡' => 'నడుస్తున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏾‍♀‍➡' => 'నడుస్తున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏿‍♀‍➡' => 'నడుస్తున్న స్త్రీ: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏻‍♂‍➡' => 'నడుస్తున్న పురుషుడు: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏼‍♂‍➡' => 'నడుస్తున్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏽‍♂‍➡' => 'నడుస్తున్న పురుషుడు: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏾‍♂‍➡' => 'నడుస్తున్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏿‍♂‍➡' => 'నడుస్తున్న పురుషుడు: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏻‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏼‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏽‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏾‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏿‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏻‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏼‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏽‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏾‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏿‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏻‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏼‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏽‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏾‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏿‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏻‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏼‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏽‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏾‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏿‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏻‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏼‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏽‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏾‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏿‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏻‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏼‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏽‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏾‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏿‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏻‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏼‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏽‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏾‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏿‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏻‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏼‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏽‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏾‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏿‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏻‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏼‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏽‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏾‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧑🏿‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏻‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏼‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏽‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏾‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👨🏿‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏻‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏼‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏽‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏾‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👩🏿‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏻‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏼‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏽‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏾‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏿‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏻‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏼‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏽‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏾‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏿‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
     '🫱🏻‍🫲🏼' => 'కరచాలనం: లేత చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
     '🫱🏻‍🫲🏽' => 'కరచాలనం: లేత చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
     '🫱🏻‍🫲🏾' => 'కరచాలనం: లేత చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'కరచాలనం: ముదురు చర్మపు రంగు, మధ్యస్థంగా లేత చర్మపు రంగు',
     '🫱🏿‍🫲🏽' => 'కరచాలనం: ముదురు చర్మపు రంగు, మధ్యస్థ చర్మపు రంగు',
     '🫱🏿‍🫲🏾' => 'కరచాలనం: ముదురు చర్మపు రంగు, మధ్యస్థంగా ముదురు చర్మపు రంగు',
-    '🚶‍♀‍➡' => 'నడుస్తున్న స్త్రీ కుడివైపు చూడటం',
-    '🚶‍♂‍➡' => 'నడుస్తున్న పురుషుడు కుడివైపు చూడటం',
-    '🧎‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ కుడివైపు చూడటం',
-    '🧎‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు కుడివైపు చూడటం',
-    '🧑‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '👨‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు కుడివైపు చూడటం',
-    '👩‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ కుడివైపు చూడటం',
-    '🧑‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '👨‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👩‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '🧑‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి కుడివైపు చూడటం',
-    '👨‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు కుడివైపు చూడటం',
-    '👩‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ కుడివైపు చూడటం',
-    '🏃‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ కుడివైపు చూడటం',
-    '🏃‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు కుడివైపు చూడటం',
+    '🚶‍♀‍➡' => 'నడుస్తున్న స్త్రీ: కుడివైపు చూడటం',
+    '🚶‍♂‍➡' => 'నడుస్తున్న పురుషుడు: కుడివైపు చూడటం',
+    '🧎‍♀‍➡' => 'మోకాళ్లపై కూర్చున్న స్త్రీ: కుడివైపు చూడటం',
+    '🧎‍♂‍➡' => 'మోకాళ్లపై కూర్చున్న పురుషుడు: కుడివైపు చూడటం',
+    '🧑‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి: కుడివైపు చూడటం',
+    '👨‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న పురుషుడు: కుడివైపు చూడటం',
+    '👩‍🦯‍➡' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న స్త్రీ: కుడివైపు చూడటం',
+    '🧑‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: కుడివైపు చూడటం',
+    '👨‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: కుడివైపు చూడటం',
+    '👩‍🦼‍➡' => 'మోటారు వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: కుడివైపు చూడటం',
+    '🧑‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న వ్యక్తి: కుడివైపు చూడటం',
+    '👨‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న పురుషుడు: కుడివైపు చూడటం',
+    '👩‍🦽‍➡' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ: కుడివైపు చూడటం',
+    '🏃‍♀‍➡' => 'పరిగెడుతున్న స్త్రీ: కుడివైపు చూడటం',
+    '🏃‍♂‍➡' => 'పరిగెడుతున్న పురుషుడు: కుడివైపు చూడటం',
     '👩‍❤‍👨' => 'జంట మధ్య ప్రేమ చిహ్నం: మహిళ, పురుషుడు',
     '👨‍❤‍👨' => 'జంట మధ్య ప్రేమ చిహ్నం: పురుషుడు, పురుషుడు',
     '👩‍❤‍👩' => 'జంట మధ్య ప్రేమ చిహ్నం: మహిళ, మహిళ',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'వయోజనుడు: మధ్యస్థ చర్మపు రంగు, బట్టతల',
     '🧑🏾‍🦲' => 'వయోజనుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు, బట్టతల',
     '🧑🏿‍🦲' => 'వయోజనుడు: ముదురు చర్మపు రంగు, బట్టతల',
+    '🧑🏻‍🩰' => 'బ్యాలే డ్యాన్సర్: లేత చర్మపు రంగు',
+    '🧑🏼‍🩰' => 'బ్యాలే డ్యాన్సర్: మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🧑🏽‍🩰' => 'బ్యాలే డ్యాన్సర్: మధ్యస్థ చర్మపు రంగు',
+    '🧑🏾‍🩰' => 'బ్యాలే డ్యాన్సర్: మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🧑🏿‍🩰' => 'బ్యాలే డ్యాన్సర్: ముదురు చర్మపు రంగు',
     '🧔🏻‍♂' => 'పురుషుడు: లేత చర్మపు రంగు, గెడ్డం',
     '🧔🏼‍♂' => 'పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు, గెడ్డం',
     '🧔🏽‍♂' => 'పురుషుడు: మధ్యస్థ చర్మపు రంగు, గెడ్డం',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'నడుస్తున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు',
     '🚶🏾‍♀' => 'నడుస్తున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '🚶🏿‍♀' => 'నడుస్తున్న స్త్రీ: ముదురు చర్మపు రంగు',
-    '🚶🏻‍➡' => 'నడుస్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '🚶🏼‍➡' => 'నడుస్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '🚶🏽‍➡' => 'నడుస్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '🚶🏾‍➡' => 'నడుస్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '🚶🏿‍➡' => 'నడుస్తున్న వ్యక్తి కుడివైపు చూడటం',
+    '🚶🏻‍➡' => 'నడుస్తున్న వ్యక్తి: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏼‍➡' => 'నడుస్తున్న వ్యక్తి: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏽‍➡' => 'నడుస్తున్న వ్యక్తి: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏾‍➡' => 'నడుస్తున్న వ్యక్తి: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🚶🏿‍➡' => 'నడుస్తున్న వ్యక్తి: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
     '🧍🏻‍♂' => 'నిలబడి ఉన్న పురుషుడు: లేత చర్మపు రంగు',
     '🧍🏼‍♂' => 'నిలబడి ఉన్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు',
     '🧍🏽‍♂' => 'నిలబడి ఉన్న పురుషుడు: మధ్యస్థ చర్మపు రంగు',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'మోకాళ్లపై కూర్చున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు',
     '🧎🏾‍♀' => 'మోకాళ్లపై కూర్చున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '🧎🏿‍♀' => 'మోకాళ్లపై కూర్చున్న స్త్రీ: ముదురు చర్మపు రంగు',
-    '🧎🏻‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి కుడివైపు చూడటం',
-    '🧎🏼‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి కుడివైపు చూడటం',
-    '🧎🏽‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి కుడివైపు చూడటం',
-    '🧎🏾‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి కుడివైపు చూడటం',
-    '🧎🏿‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి కుడివైపు చూడటం',
+    '🧎🏻‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏼‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏽‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏾‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🧎🏿‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
     '🧑🏻‍🦯' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి: లేత చర్మపు రంగు',
     '🧑🏼‍🦯' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి: మధ్యస్థంగా లేత చర్మపు రంగు',
     '🧑🏽‍🦯' => 'ప్రోబింగ్ కేన్‌తో వెళ్తున్న వ్యక్తి: మధ్యస్థ చర్మపు రంగు',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'పరిగెడుతున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు',
     '🏃🏾‍♀' => 'పరిగెడుతున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '🏃🏿‍♀' => 'పరిగెడుతున్న స్త్రీ: ముదురు చర్మపు రంగు',
-    '🏃🏻‍➡' => 'పరిగెడుతున్న వ్యక్తి కుడివైపు చూడటం',
-    '🏃🏼‍➡' => 'పరిగెడుతున్న వ్యక్తి కుడివైపు చూడటం',
-    '🏃🏽‍➡' => 'పరిగెడుతున్న వ్యక్తి కుడివైపు చూడటం',
-    '🏃🏾‍➡' => 'పరిగెడుతున్న వ్యక్తి కుడివైపు చూడటం',
-    '🏃🏿‍➡' => 'పరిగెడుతున్న వ్యక్తి కుడివైపు చూడటం',
+    '🏃🏻‍➡' => 'పరిగెడుతున్న వ్యక్తి: లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏼‍➡' => 'పరిగెడుతున్న వ్యక్తి: మధ్యస్థంగా లేత చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏽‍➡' => 'పరిగెడుతున్న వ్యక్తి: మధ్యస్థ చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏾‍➡' => 'పరిగెడుతున్న వ్యక్తి: మధ్యస్థంగా ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '🏃🏿‍➡' => 'పరిగెడుతున్న వ్యక్తి: ముదురు చర్మపు రంగు, కుడివైపు చూడటం',
+    '👯🏻‍♀' => 'కుందేలు చెవులతో స్త్రీలు: లేత చర్మపు రంగు',
+    '👯🏼‍♀' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👯🏽‍♀' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థ చర్మపు రంగు',
+    '👯🏾‍♀' => 'కుందేలు చెవులతో స్త్రీలు: మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👯🏿‍♀' => 'కుందేలు చెవులతో స్త్రీలు: ముదురు చర్మపు రంగు',
+    '👯🏻‍♂' => 'కుందేలు చెవులతో పురుషులు: లేత చర్మపు రంగు',
+    '👯🏼‍♂' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👯🏽‍♂' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థ చర్మపు రంగు',
+    '👯🏾‍♂' => 'కుందేలు చెవులతో పురుషులు: మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👯🏿‍♂' => 'కుందేలు చెవులతో పురుషులు: ముదురు చర్మపు రంగు',
     '🧖🏻‍♂' => 'ఆవిరి గదిలోని పురుషుడు: లేత చర్మపు రంగు',
     '🧖🏼‍♂' => 'ఆవిరి గదిలోని పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు',
     '🧖🏽‍♂' => 'ఆవిరి గదిలోని పురుషుడు: మధ్యస్థ చర్మపు రంగు',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'కార్ట్‌వీల్ చేస్తున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు',
     '🤸🏾‍♀' => 'కార్ట్‌వీల్ చేస్తున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '🤸🏿‍♀' => 'కార్ట్‌వీల్ చేస్తున్న స్త్రీ: ముదురు చర్మపు రంగు',
+    '🤼🏻‍♀' => 'కుస్తీ పడుతున్న స్త్రీ: లేత చర్మపు రంగు',
+    '🤼🏼‍♀' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🤼🏽‍♀' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థ చర్మపు రంగు',
+    '🤼🏾‍♀' => 'కుస్తీ పడుతున్న స్త్రీ: మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🤼🏿‍♀' => 'కుస్తీ పడుతున్న స్త్రీ: ముదురు చర్మపు రంగు',
+    '🤼🏻‍♂' => 'కుస్తీ పడుతున్న పురుషుడు: లేత చర్మపు రంగు',
+    '🤼🏼‍♂' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🤼🏽‍♂' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థ చర్మపు రంగు',
+    '🤼🏾‍♂' => 'కుస్తీ పడుతున్న పురుషుడు: మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🤼🏿‍♂' => 'కుస్తీ పడుతున్న పురుషుడు: ముదురు చర్మపు రంగు',
     '🤽🏻‍♂' => 'వాటర్ పోలో ఆడుతున్న పురుషుడు: లేత చర్మపు రంగు',
     '🤽🏼‍♂' => 'వాటర్ పోలో ఆడుతున్న పురుషుడు: మధ్యస్థంగా లేత చర్మపు రంగు',
     '🤽🏽‍♂' => 'వాటర్ పోలో ఆడుతున్న పురుషుడు: మధ్యస్థ చర్మపు రంగు',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'మహిళ: ఉంగరాల జుట్టు',
     '👩‍🦳' => 'మహిళ: తెల్లజుట్టు',
     '👩‍🦲' => 'మహిళ: బట్టతల',
-    '🚶‍➡' => 'నడుస్తున్న వ్యక్తి కుడివైపు చూడటం',
-    '🧎‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి కుడివైపు చూడటం',
-    '🏃‍➡' => 'పరిగెడుతున్న వ్యక్తి కుడివైపు చూడటం',
+    '🚶‍➡' => 'నడుస్తున్న వ్యక్తి: కుడివైపు చూడటం',
+    '🧎‍➡' => 'మోకాళ్లపై కూర్చున్న వ్యక్తి: కుడివైపు చూడటం',
+    '🏃‍➡' => 'పరిగెడుతున్న వ్యక్తి: కుడివైపు చూడటం',
     '👨‍👦' => 'కుటుంబం: పురుషుడు, అబ్బాయి',
     '👨‍👧' => 'కుటుంబం: పురుషుడు, అమ్మాయి',
     '👩‍👦' => 'కుటుంబం: మహిళ, అబ్బాయి',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'మాన్యువల్ వీల్‌చెయిర్‌లో ఉన్న స్త్రీ',
     '🏃‍♂' => 'పరిగెడుతున్న పురుషుడు',
     '🏃‍♀' => 'పరిగెడుతున్న స్త్రీ',
+    '🧑‍🩰' => 'బ్యాలే డ్యాన్సర్',
     '👯‍♂' => 'కుందేలు చెవులతో పురుషులు',
     '👯‍♀' => 'కుందేలు చెవులతో స్త్రీలు',
     '🧖‍♂' => 'ఆవిరి గదిలోని పురుషుడు',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'గాల్లో తేలుతున్న సూటు బూటు వేసుకున్న వ్యాపారవేత్త: మధ్యస్థ చర్మపు రంగు',
     '🕴🏾' => 'గాల్లో తేలుతున్న సూటు బూటు వేసుకున్న వ్యాపారవేత్త: మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '🕴🏿' => 'గాల్లో తేలుతున్న సూటు బూటు వేసుకున్న వ్యాపారవేత్త: ముదురు చర్మపు రంగు',
+    '👯🏻' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: లేత చర్మపు రంగు',
+    '👯🏼' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థంగా లేత చర్మపు రంగు',
+    '👯🏽' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థ చర్మపు రంగు',
+    '👯🏾' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '👯🏿' => 'కుందేలు చెవులు ఉన్న వ్యక్తులు: ముదురు చర్మపు రంగు',
     '🧖🏻' => 'ఆవిరి గదిలోని వ్యక్తి: లేత చర్మపు రంగు',
     '🧖🏼' => 'ఆవిరి గదిలోని వ్యక్తి: మధ్యస్థంగా లేత చర్మపు రంగు',
     '🧖🏽' => 'ఆవిరి గదిలోని వ్యక్తి: మధ్యస్థ చర్మపు రంగు',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'కార్ట్‌వీల్: మధ్యస్థ చర్మపు రంగు',
     '🤸🏾' => 'కార్ట్‌వీల్: మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '🤸🏿' => 'కార్ట్‌వీల్: ముదురు చర్మపు రంగు',
+    '🤼🏻' => 'రెజ్లర్‌లు: లేత చర్మపు రంగు',
+    '🤼🏼' => 'రెజ్లర్‌లు: మధ్యస్థంగా లేత చర్మపు రంగు',
+    '🤼🏽' => 'రెజ్లర్‌లు: మధ్యస్థ చర్మపు రంగు',
+    '🤼🏾' => 'రెజ్లర్‌లు: మధ్యస్థంగా ముదురు చర్మపు రంగు',
+    '🤼🏿' => 'రెజ్లర్‌లు: ముదురు చర్మపు రంగు',
     '🤽🏻' => 'వాటర్ పోలో ఆడుతున్న వ్యక్తి: లేత చర్మపు రంగు',
     '🤽🏼' => 'వాటర్ పోలో ఆడుతున్న వ్యక్తి: మధ్యస్థంగా లేత చర్మపు రంగు',
     '🤽🏽' => 'వాటర్ పోలో ఆడుతున్న వ్యక్తి: మధ్యస్థ చర్మపు రంగు',
@@ -2130,7 +2286,7 @@
     '🇦🇩' => 'పతాకం: ఆండోరా',
     '🇦🇪' => 'పతాకం: యునైటెడ్ అరబ్ ఎమిరేట్స్',
     '🇦🇫' => 'పతాకం: ఆఫ్ఘనిస్తాన్',
-    '🇦🇬' => 'పతాకం: ఆంటిగ్వా మరియు బార్బుడా',
+    '🇦🇬' => 'పతాకం: ఆంటిగ్వా & బార్బుడా',
     '🇦🇮' => 'పతాకం: ఆంగ్విల్లా',
     '🇦🇱' => 'పతాకం: అల్బేనియా',
     '🇦🇲' => 'పతాకం: ఆర్మేనియా',
@@ -2143,7 +2299,7 @@
     '🇦🇼' => 'పతాకం: అరుబా',
     '🇦🇽' => 'పతాకం: ఆలాండ్ దీవులు',
     '🇦🇿' => 'పతాకం: అజర్బైజాన్',
-    '🇧🇦' => 'పతాకం: బోస్నియా మరియు హెర్జిగోవినా',
+    '🇧🇦' => 'పతాకం: బోస్నియా & హెర్జిగోవినా',
     '🇧🇧' => 'పతాకం: బార్బడోస్',
     '🇧🇩' => 'పతాకం: బంగ్లాదేశ్',
     '🇧🇪' => 'పతాకం: బెల్జియం',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'పతాకం: చైనా',
     '🇨🇴' => 'పతాకం: కొలంబియా',
     '🇨🇵' => 'పతాకం: క్లిప్పర్టన్ దీవి',
+    '🇨🇶' => 'పతాకం: సార్క్',
     '🇨🇷' => 'పతాకం: కోస్టా రికా',
     '🇨🇺' => 'పతాకం: క్యూబా',
     '🇨🇻' => 'పతాకం: కేప్ వెర్డె',
@@ -2225,7 +2382,7 @@
     '🇬🇺' => 'పతాకం: గ్వామ్',
     '🇬🇼' => 'పతాకం: గినియా-బిస్సావ్',
     '🇬🇾' => 'పతాకం: గయానా',
-    '🇭🇰' => 'పతాకం: హాంకాంగ్ ఎస్ఏఆర్ చైనా',
+    '🇭🇰' => 'పతాకం: హాంకాంగ్ SAR చైనా',
     '🇭🇲' => 'పతాకం: హెర్డ్ దీవి మరియు మెక్‌డొనాల్డ్ దీవులు',
     '🇭🇳' => 'పతాకం: హోండురాస్',
     '🇭🇷' => 'పతాకం: క్రొయేషియా',
@@ -2251,7 +2408,7 @@
     '🇰🇭' => 'పతాకం: కంబోడియా',
     '🇰🇮' => 'పతాకం: కిరిబాటి',
     '🇰🇲' => 'పతాకం: కొమొరోస్',
-    '🇰🇳' => 'పతాకం: సెయింట్ కిట్స్ మరియు నెవిస్',
+    '🇰🇳' => 'పతాకం: సెయింట్ కిట్స్ & నెవిస్',
     '🇰🇵' => 'పతాకం: ఉత్తర కొరియా',
     '🇰🇷' => 'పతాకం: దక్షిణ కొరియా',
     '🇰🇼' => 'పతాకం: కువైట్',
@@ -2279,7 +2436,7 @@
     '🇲🇱' => 'పతాకం: మాలి',
     '🇲🇲' => 'పతాకం: మయన్మార్',
     '🇲🇳' => 'పతాకం: మంగోలియా',
-    '🇲🇴' => 'పతాకం: మకావ్ ఎస్ఏఆర్ చైనా',
+    '🇲🇴' => 'పతాకం: మకావ్ SAR చైనా',
     '🇲🇵' => 'పతాకం: ఉత్తర మరియానా దీవులు',
     '🇲🇶' => 'పతాకం: మార్టినీక్',
     '🇲🇷' => 'పతాకం: మారిటేనియా',
@@ -2292,7 +2449,7 @@
     '🇲🇾' => 'పతాకం: మలేషియా',
     '🇲🇿' => 'పతాకం: మొజాంబిక్',
     '🇳🇦' => 'పతాకం: నమీబియా',
-    '🇳🇨' => 'పతాకం: క్రొత్త కాలెడోనియా',
+    '🇳🇨' => 'పతాకం: కొత్త కాలెడోనియా',
     '🇳🇪' => 'పతాకం: నైజర్',
     '🇳🇫' => 'పతాకం: నార్ఫోక్ దీవి',
     '🇳🇬' => 'పతాకం: నైజీరియా',
@@ -2346,7 +2503,7 @@
     '🇸🇾' => 'పతాకం: సిరియా',
     '🇸🇿' => 'పతాకం: ఈస్వాటిని',
     '🇹🇦' => 'పతాకం: ట్రిస్టన్ డ కన్హా',
-    '🇹🇨' => 'పతాకం: టర్క్స్ మరియు కైకోస్ దీవులు',
+    '🇹🇨' => 'పతాకం: టర్క్స్ & కైకోస్ దీవులు',
     '🇹🇩' => 'పతాకం: చాద్',
     '🇹🇫' => 'పతాకం: ఫ్రెంచ్ దక్షిణ ప్రాంతాలు',
     '🇹🇬' => 'పతాకం: టోగో',
@@ -2364,7 +2521,7 @@
     '🇹🇿' => 'పతాకం: టాంజానియా',
     '🇺🇦' => 'పతాకం: ఉక్రెయిన్',
     '🇺🇬' => 'పతాకం: ఉగాండా',
-    '🇺🇲' => 'పతాకం: సంయుక్త రాజ్య అమెరికా బయట ఉన్న దీవులు',
+    '🇺🇲' => 'పతాకం: U.S. బయట ఉన్న దీవులు',
     '🇺🇳' => 'పతాకం: యునైటెడ్ నేషన్స్',
     '🇺🇸' => 'పతాకం: యునైటెడ్ స్టేట్స్',
     '🇺🇾' => 'పతాకం: ఉరుగ్వే',
@@ -2390,13 +2547,6 @@
     '🏽' => 'మధ్యస్థ చర్మపు రంగు',
     '🏾' => 'మధ్యస్థంగా ముదురు చర్మపు రంగు',
     '🏿' => 'ముదురు చర్మపు రంగు',
-    '🪉' => 'వీణ',
-    '🪏' => 'పార',
-    '🪾' => 'ఎండిపోయిన చెట్టు',
-    '🫆' => 'వేలిముద్ర',
-    '🫜' => 'దుంప',
-    '🫟' => 'స్ప్లాటర్',
-    '🫩' => 'కళ్ల కింద వలయాలు గల ముఖం',
     '😀' => 'పళ్లు చూపిస్తూ నవ్వుతున్న ముఖం',
     '😃' => 'పెద్ద కళ్లతో నోరు తెరిచి నవ్వుతున్న ముఖం',
     '😄' => 'నోరు తెరిచి సంతోషంతో నవ్వుతున్న ముఖం',
@@ -2450,6 +2600,7 @@
     '😪' => 'నిద్ర ఆవహించిన ముఖం',
     '🤤' => 'చొంగకారుతున్న ముఖం',
     '😴' => 'నిద్రపోతున్న ముఖం',
+    '🫩' => 'కళ్ల కింద వలయాలు గల ముఖం',
     '😷' => 'ఆసుపత్రుల్లో ధరించే మాస్క్‌తో ఉన్న ముఖం',
     '🤒' => 'థర్మామీటర్‌తో ఉన్న ముఖం',
     '🤕' => 'తలకు కట్టుతో ఉన్న ముఖం',
@@ -2476,6 +2627,7 @@
     '😯' => 'నిశ్శబ్దంగా చూస్తున్న ముఖం',
     '😲' => 'ఆశ్చర్యంతో నోరు తెరిచిన ముఖం',
     '😳' => 'కలవరపాటుగా ఉన్న ముఖం',
+    '🫪' => 'వికృత ముఖం',
     '🥺' => 'అభ్యర్థనగా ముఖం పెట్టడం',
     '🥹' => 'కళ్లలో నీళ్లను ఆపుకోని కృతజ్ఞతో చూస్తున్న ముఖం',
     '😦' => 'నోరు తెరిచి కోపంగా ఉన్న ముఖం',
@@ -2547,6 +2699,7 @@
     '💋' => 'ముద్దు గుర్తు',
     '💯' => '100 పాయింట్‌లు',
     '💢' => 'కోపానికి చిహ్నం',
+    '🫯' => 'జగడపు మేఘం',
     '💥' => 'ఢీకొనడం',
     '💫' => 'కళ్లు తిరగడం',
     '💦' => 'స్వేదం',
@@ -2670,6 +2823,7 @@
     '🧞' => 'జినీ',
     '🧟' => 'జాంబీ',
     '🧌' => 'ట్రోల్',
+    '🫈' => 'జుట్టు గల వింత జీవి',
     '💆' => 'ముఖంపై మర్దనా చేయించుకుంటున్న వ్యక్తి',
     '💇' => 'జుట్టు కత్తిరించుకుంటున్న వ్యక్తి',
     '🚶' => 'నడుస్తున్న వ్యక్తి',
@@ -2713,6 +2867,7 @@
     '🫂' => 'కౌగిలించుకుంటున్న వ్యక్తులు',
     '👪' => 'కుటుంబం',
     '👣' => 'కాలిముద్రలు',
+    '🫆' => 'వేలిముద్ర',
     '🦰' => 'ఎర్రటి జుట్టు',
     '🦱' => 'ఉంగరాల జుట్టు',
     '🦳' => 'తెల్లజుట్టు',
@@ -2812,6 +2967,7 @@
     '🐳' => 'నీళ్లు ఎగజిమ్మే తిమింగలం',
     '🐋' => 'తిమింగలం',
     '🐬' => 'డాల్ఫిన్',
+    '🫍' => 'ఆర్కా',
     '🦭' => 'సీల్',
     '🐟' => 'చేప',
     '🐠' => 'అయనవృత్తీయ చేప',
@@ -2821,6 +2977,11 @@
     '🐚' => 'శంఖాకృతి గవ్వ',
     '🪸' => 'పగడం',
     '🪼' => 'జెల్లిచేప',
+    '🦀' => 'పీత',
+    '🦞' => 'లాబ్‌స్టర్',
+    '🦐' => 'రొయ్య',
+    '🦑' => 'స్క్విడ్',
+    '🦪' => 'ఆయెస్టర్',
     '🐌' => 'నత్త',
     '🦋' => 'సీతాకోకచిలుక',
     '🐛' => 'నల్లి',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ఖాళీ గూడు',
     '🪺' => 'గుడ్లతో ఉన్న గూడు',
     '🍄' => 'పుట్టగొడుగు',
+    '🪾' => 'ఎండిపోయిన చెట్టు',
     '🍇' => 'ద్రాక్ష పళ్లు',
     '🍈' => 'ఖర్బూజాపండు',
     '🍉' => 'పుచ్చకాయ',
@@ -2901,6 +3063,7 @@
     '🌰' => 'బాదం వంటి దినుసు',
     '🫚' => 'అల్లం',
     '🫛' => 'బటాణీ గింజల మొక్క',
+    '🫜' => 'దుంప',
     '🍞' => 'బ్రెడ్డు',
     '🥐' => 'అర్ధచంద్రాకార రోల్',
     '🥖' => 'బ్యాగెట్ బ్రెడ్',
@@ -2952,11 +3115,6 @@
     '🥟' => 'డంప్లింగ్',
     '🥠' => 'ఫార్చ్యూన్ కుక్కీ',
     '🥡' => 'పార్శిల్ పెట్టె',
-    '🦀' => 'పీత',
-    '🦞' => 'లాబ్‌స్టర్',
-    '🦐' => 'రొయ్య',
-    '🦑' => 'స్క్విడ్',
-    '🦪' => 'ఆయెస్టర్',
     '🍦' => 'సాఫ్ట్ ఐస్ క్రీం',
     '🍧' => 'గుండ్రంగా చెక్కినట్లు ఉండే ఐస్',
     '🍨' => 'ఐస్ క్రీం',
@@ -3007,6 +3165,7 @@
     '🧭' => 'దిక్సూచి',
     '🏔' => 'మంచుతో కప్పబడిన పర్వతం',
     '⛰' => 'పర్వతం',
+    '🛘' => 'కొండచరియలు విరిగి పడటం',
     '🌋' => 'అగ్నిపర్వతం',
     '🗻' => 'ఫుజి పర్వతం',
     '🏕' => 'శిబిరం',
@@ -3367,16 +3526,18 @@
     '🎧' => 'హెడ్‌ఫోన్',
     '📻' => 'రేడియో',
     '🎷' => 'శాక్సోఫోన్',
+    '🎺' => 'ట్రంపెట్',
+    '🪊' => 'ట్రాంబోన్',
     '🪗' => 'అకార్డియాన్',
     '🎸' => 'గిటార్',
     '🎹' => 'సంగీత కీబోర్డ్',
-    '🎺' => 'ట్రంపెట్',
     '🎻' => 'వయోలిన్',
     '🪕' => 'బాంజో',
     '🥁' => 'డ్రమ్',
     '🪘' => 'పొడవాటి డ్రమ్',
     '🪇' => 'మరాకస్',
     '🪈' => 'పిల్లనగ్రోవి',
+    '🪉' => 'వీణ',
     '📱' => 'మొబైల్ ఫోన్',
     '📲' => 'బాణం గుర్తుతో సూచిస్తున్న మొబైల్ ఫోన్',
     '☎' => 'టెలిఫోన్',
@@ -3430,8 +3591,9 @@
     '📑' => 'బుక్‌మార్క్ ట్యాబ్‌లు',
     '🔖' => 'బుక్‌మార్క్',
     '🏷' => 'లేబుల్',
-    '💰' => 'డబ్బు సంచి',
     '🪙' => 'బిళ్ల',
+    '💰' => 'డబ్బు సంచి',
+    '🪎' => 'నిధి గల ట్రంకు పెట్టె',
     '💴' => 'యెన్ చిహ్నం ఉన్న బ్యాంకు నోటు',
     '💵' => 'డాలర్ చిహ్నం ఉన్న బ్యాంకు నోటు',
     '💶' => 'యూరో చిహ్నం ఉన్న బ్యాంకు నోటు',
@@ -3514,6 +3676,7 @@
     '🧰' => 'టూల్‌బాక్స్',
     '🧲' => 'అయస్కాంతం',
     '🪜' => 'నిచ్చెన',
+    '🪏' => 'పార',
     '⚗' => 'బట్టి',
     '🧪' => 'టెస్ట్ ట్యూబ్',
     '🧫' => 'పెట్రి డిష్',
@@ -3697,6 +3860,7 @@
     '✴' => 'ఎనిమిది కోణాల నక్షత్రం',
     '❇' => 'మెరుపు',
     '™' => 'ట్రేడ్ మార్క్ చిహ్నం',
+    '🫟' => 'స్ప్లాటర్',
     '🔠' => 'పెద్ద అక్షరాలు',
     '🔡' => 'చిన్న అక్షరాలు',
     '🔢' => 'ఇన్‌పుట్ సంఖ్యలు',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tg.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tg.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tg.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tg.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'бӯса: зан, зан, ранги торики пӯст, ранги миёнаи пӯст',
     '👩🏿‍❤‍💋‍👩🏾' => 'бӯса: зан, зан, ранги торики пӯст, ранги торики миёнаи пӯст',
     '👩🏿‍❤‍💋‍👩🏿' => 'бӯса: зан, зан, ранги торики пӯст',
+    '🧑🏻‍🫯‍🧑🏼' => 'нафарони гуштингирӣ карда истода: ранги равшани пӯст ва ранги равшании миёнаи пӯст',
+    '🧑🏻‍🫯‍🧑🏽' => 'нафарони гуштингирӣ карда истода: ранги равшани пӯст ва ранги миёнаи пӯст',
+    '🧑🏻‍🫯‍🧑🏾' => 'нафарони гуштингирӣ карда истода: ранги равшани пӯст ва ранги торики миёнаи пӯст',
+    '🧑🏻‍🫯‍🧑🏿' => 'нафарони гуштингирӣ карда истода: ранги равшани пӯст ва ранги торики пӯст',
+    '🧑🏼‍🫯‍🧑🏻' => 'нафарони гуштингирӣ карда истода: ранги равшании миёнаи пӯст ва ранги равшани пӯст',
+    '🧑🏼‍🫯‍🧑🏽' => 'нафарони гуштингирӣ карда истода: ранги равшании миёнаи пӯст ва ранги миёнаи пӯст',
+    '🧑🏼‍🫯‍🧑🏾' => 'нафарони гуштингирӣ карда истода: ранги равшании миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '🧑🏼‍🫯‍🧑🏿' => 'нафарони гуштингирӣ карда истода: ранги равшании миёнаи пӯст ва ранги торики пӯст',
+    '🧑🏽‍🫯‍🧑🏻' => 'нафарони гуштингирӣ карда истода: ранги миёнаи пӯст ва ранги равшани пӯст',
+    '🧑🏽‍🫯‍🧑🏼' => 'нафарони гуштингирӣ карда истода: ранги миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '🧑🏽‍🫯‍🧑🏾' => 'нафарони гуштингирӣ карда истода: ранги миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '🧑🏽‍🫯‍🧑🏿' => 'нафарони гуштингирӣ карда истода: ранги миёнаи пӯст ва ранги торики пӯст',
+    '🧑🏾‍🫯‍🧑🏻' => 'нафарони гуштингирӣ карда истода: ранги торики миёнаи пӯст ва ранги равшани пӯст',
+    '🧑🏾‍🫯‍🧑🏼' => 'нафарони гуштингирӣ карда истода: ранги торики миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '🧑🏾‍🫯‍🧑🏽' => 'нафарони гуштингирӣ карда истода: ранги торики миёнаи пӯст ва ранги миёнаи пӯст',
+    '🧑🏾‍🫯‍🧑🏿' => 'нафарони гуштингирӣ карда истода: ранги торики миёнаи пӯст ва ранги торики пӯст',
+    '🧑🏿‍🫯‍🧑🏻' => 'нафарони гуштингирӣ карда истода: ранги торики пӯст ва ранги равшани пӯст',
+    '🧑🏿‍🫯‍🧑🏼' => 'нафарони гуштингирӣ карда истода: ранги торики пӯст ва ранги равшании миёнаи пӯст',
+    '🧑🏿‍🫯‍🧑🏽' => 'нафарони гуштингирӣ карда истода: ранги торики пӯст ва ранги миёнаи пӯст',
+    '🧑🏿‍🫯‍🧑🏾' => 'нафарони гуштингирӣ карда истода: ранги торики пӯст ва ранги торики миёнаи пӯст',
     '🧑🏻‍❤‍🧑🏼' => 'ҷуфт бо дил: калонсол, калонсол, ранги равшани пӯст, ранги равшании миёнаи пӯст',
     '🧑🏻‍❤‍🧑🏽' => 'ҷуфт бо дил: калонсол, калонсол, ранги равшани пӯст, ранги миёнаи пӯст',
     '🧑🏻‍❤‍🧑🏾' => 'ҷуфт бо дил: калонсол, калонсол, ранги равшани пӯст, ранги торики миёнаи пӯст',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ҷуфт бо дил: калонсол, калонсол, ранги торики пӯст, ранги равшании миёнаи пӯст',
     '🧑🏿‍❤‍🧑🏽' => 'ҷуфт бо дил: калонсол, калонсол, ранги торики пӯст, ранги миёнаи пӯст',
     '🧑🏿‍❤‍🧑🏾' => 'ҷуфт бо дил: калонсол, калонсол, ранги торики пӯст, ранги торики миёнаи пӯст',
+    '🧑🏻‍🐰‍🧑🏼' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги равшании миёнаи пӯст',
+    '🧑🏻‍🐰‍🧑🏽' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги миёнаи пӯст',
+    '🧑🏻‍🐰‍🧑🏾' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги торики миёнаи пӯст',
+    '🧑🏻‍🐰‍🧑🏿' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги торики пӯст',
+    '🧑🏼‍🐰‍🧑🏻' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги равшани пӯст',
+    '🧑🏼‍🐰‍🧑🏽' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги миёнаи пӯст',
+    '🧑🏼‍🐰‍🧑🏾' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '🧑🏼‍🐰‍🧑🏿' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги торики пӯст',
+    '🧑🏽‍🐰‍🧑🏻' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги равшани пӯст',
+    '🧑🏽‍🐰‍🧑🏼' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '🧑🏽‍🐰‍🧑🏾' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '🧑🏽‍🐰‍🧑🏿' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги торики пӯст',
+    '🧑🏾‍🐰‍🧑🏻' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги равшани пӯст',
+    '🧑🏾‍🐰‍🧑🏼' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '🧑🏾‍🐰‍🧑🏽' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги миёнаи пӯст',
+    '🧑🏾‍🐰‍🧑🏿' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги торики пӯст',
+    '🧑🏿‍🐰‍🧑🏻' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги равшани пӯст',
+    '🧑🏿‍🐰‍🧑🏼' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги равшании миёнаи пӯст',
+    '🧑🏿‍🐰‍🧑🏽' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги миёнаи пӯст',
+    '🧑🏿‍🐰‍🧑🏾' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги торики миёнаи пӯст',
+    '👨🏻‍🫯‍👨🏼' => 'мардон гуштингирӣ карда истодаанд: ранги равшани пӯст ва ранги равшании миёнаи пӯст',
+    '👨🏻‍🫯‍👨🏽' => 'мардон гуштингирӣ карда истодаанд: ранги равшани пӯст ва ранги миёнаи пӯст',
+    '👨🏻‍🫯‍👨🏾' => 'мардон гуштингирӣ карда истодаанд: ранги равшани пӯст ва ранги торики миёнаи пӯст',
+    '👨🏻‍🫯‍👨🏿' => 'мардон гуштингирӣ карда истодаанд: ранги равшани пӯст ва ранги торики пӯст',
+    '👨🏼‍🫯‍👨🏻' => 'мардон гуштингирӣ карда истодаанд: ранги равшании миёнаи пӯст ва ранги равшани пӯст',
+    '👨🏼‍🫯‍👨🏽' => 'мардон гуштингирӣ карда истодаанд: ранги равшании миёнаи пӯст ва ранги миёнаи пӯст',
+    '👨🏼‍🫯‍👨🏾' => 'мардон гуштингирӣ карда истодаанд: ранги равшании миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '👨🏼‍🫯‍👨🏿' => 'мардон гуштингирӣ карда истодаанд: ранги равшании миёнаи пӯст ва ранги торики пӯст',
+    '👨🏽‍🫯‍👨🏻' => 'мардон гуштингирӣ карда истодаанд: ранги миёнаи пӯст ва ранги равшани пӯст',
+    '👨🏽‍🫯‍👨🏼' => 'мардон гуштингирӣ карда истодаанд: ранги миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '👨🏽‍🫯‍👨🏾' => 'мардон гуштингирӣ карда истодаанд: ранги миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '👨🏽‍🫯‍👨🏿' => 'мардон гуштингирӣ карда истодаанд: ранги миёнаи пӯст ва ранги торики пӯст',
+    '👨🏾‍🫯‍👨🏻' => 'мардон гуштингирӣ карда истодаанд: ранги торики миёнаи пӯст ва ранги равшани пӯст',
+    '👨🏾‍🫯‍👨🏼' => 'мардон гуштингирӣ карда истодаанд: ранги торики миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '👨🏾‍🫯‍👨🏽' => 'мардон гуштингирӣ карда истодаанд: ранги торики миёнаи пӯст ва ранги миёнаи пӯст',
+    '👨🏾‍🫯‍👨🏿' => 'мардон гуштингирӣ карда истодаанд: ранги торики миёнаи пӯст ва ранги торики пӯст',
+    '👨🏿‍🫯‍👨🏻' => 'мардон гуштингирӣ карда истодаанд: ранги торики пӯст ва ранги равшани пӯст',
+    '👨🏿‍🫯‍👨🏼' => 'мардон гуштингирӣ карда истодаанд: ранги торики пӯст ва ранги равшании миёнаи пӯст',
+    '👨🏿‍🫯‍👨🏽' => 'мардон гуштингирӣ карда истодаанд: ранги торики пӯст ва ранги миёнаи пӯст',
+    '👨🏿‍🫯‍👨🏾' => 'мардон гуштингирӣ карда истодаанд: ранги торики пӯст ва ранги торики миёнаи пӯст',
     '👨🏻‍❤‍👨🏻' => 'ҷуфт бо дил: мард, мард, ранги равшани пӯст',
     '👨🏻‍❤‍👨🏼' => 'ҷуфт бо дил: мард, мард, ранги равшани пӯст, ранги равшании миёнаи пӯст',
     '👨🏻‍❤‍👨🏽' => 'ҷуфт бо дил: мард, мард, ранги равшани пӯст, ранги миёнаи пӯст',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ҷуфт бо дил: мард, мард, ранги торики пӯст, ранги миёнаи пӯст',
     '👨🏿‍❤‍👨🏾' => 'ҷуфт бо дил: мард, мард, ранги торики пӯст, ранги торики миёнаи пӯст',
     '👨🏿‍❤‍👨🏿' => 'ҷуфт бо дил: мард, мард, ранги торики пӯст',
+    '👨🏻‍🐰‍👨🏼' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги равшании миёнаи пӯст',
+    '👨🏻‍🐰‍👨🏽' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги миёнаи пӯст',
+    '👨🏻‍🐰‍👨🏾' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги торики миёнаи пӯст',
+    '👨🏻‍🐰‍👨🏿' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги торики пӯст',
+    '👨🏼‍🐰‍👨🏻' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги равшани пӯст',
+    '👨🏼‍🐰‍👨🏽' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги миёнаи пӯст',
+    '👨🏼‍🐰‍👨🏾' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '👨🏼‍🐰‍👨🏿' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги торики пӯст',
+    '👨🏽‍🐰‍👨🏻' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги равшани пӯст',
+    '👨🏽‍🐰‍👨🏼' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '👨🏽‍🐰‍👨🏾' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '👨🏽‍🐰‍👨🏿' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги торики пӯст',
+    '👨🏾‍🐰‍👨🏻' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги равшани пӯст',
+    '👨🏾‍🐰‍👨🏼' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '👨🏾‍🐰‍👨🏽' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги миёнаи пӯст',
+    '👨🏾‍🐰‍👨🏿' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги торики пӯст',
+    '👨🏿‍🐰‍👨🏻' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги равшани пӯст',
+    '👨🏿‍🐰‍👨🏼' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги равшании миёнаи пӯст',
+    '👨🏿‍🐰‍👨🏽' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги миёнаи пӯст',
+    '👨🏿‍🐰‍👨🏾' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги торики миёнаи пӯст',
+    '👩🏻‍🫯‍👩🏼' => 'занон гуштингирӣ карда истодаанд: ранги равшани пӯст ва ранги равшании миёнаи пӯст',
+    '👩🏻‍🫯‍👩🏽' => 'занон гуштингирӣ карда истодаанд: ранги равшани пӯст ва ранги миёнаи пӯст',
+    '👩🏻‍🫯‍👩🏾' => 'занон гуштингирӣ карда истодаанд: ранги равшани пӯст ва ранги торики миёнаи пӯст',
+    '👩🏻‍🫯‍👩🏿' => 'занон гуштингирӣ карда истодаанд: ранги равшани пӯст ва ранги торики пӯст',
+    '👩🏼‍🫯‍👩🏻' => 'занон гуштингирӣ карда истодаанд: ранги равшании миёнаи пӯст ва ранги равшани пӯст',
+    '👩🏼‍🫯‍👩🏽' => 'занон гуштингирӣ карда истодаанд: ранги равшании миёнаи пӯст ва ранги миёнаи пӯст',
+    '👩🏼‍🫯‍👩🏾' => 'занон гуштингирӣ карда истодаанд: ранги равшании миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '👩🏼‍🫯‍👩🏿' => 'занон гуштингирӣ карда истодаанд: ранги равшании миёнаи пӯст ва ранги торики пӯст',
+    '👩🏽‍🫯‍👩🏻' => 'занон гуштингирӣ карда истодаанд: ранги миёнаи пӯст ва ранги равшани пӯст',
+    '👩🏽‍🫯‍👩🏼' => 'занон гуштингирӣ карда истодаанд: ранги миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '👩🏽‍🫯‍👩🏾' => 'занон гуштингирӣ карда истодаанд: ранги миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '👩🏽‍🫯‍👩🏿' => 'занон гуштингирӣ карда истодаанд: ранги миёнаи пӯст ва ранги торики пӯст',
+    '👩🏾‍🫯‍👩🏻' => 'занон гуштингирӣ карда истодаанд: ранги торики миёнаи пӯст ва ранги равшани пӯст',
+    '👩🏾‍🫯‍👩🏼' => 'занон гуштингирӣ карда истодаанд: ранги торики миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '👩🏾‍🫯‍👩🏽' => 'занон гуштингирӣ карда истодаанд: ранги торики миёнаи пӯст ва ранги миёнаи пӯст',
+    '👩🏾‍🫯‍👩🏿' => 'занон гуштингирӣ карда истодаанд: ранги торики миёнаи пӯст ва ранги торики пӯст',
+    '👩🏿‍🫯‍👩🏻' => 'занон гуштингирӣ карда истодаанд: ранги торики пӯст ва ранги равшани пӯст',
+    '👩🏿‍🫯‍👩🏼' => 'занон гуштингирӣ карда истодаанд: ранги торики пӯст ва ранги равшании миёнаи пӯст',
+    '👩🏿‍🫯‍👩🏽' => 'занон гуштингирӣ карда истодаанд: ранги торики пӯст ва ранги миёнаи пӯст',
+    '👩🏿‍🫯‍👩🏾' => 'занон гуштингирӣ карда истодаанд: ранги торики пӯст ва ранги торики миёнаи пӯст',
     '👩🏻‍❤‍👨🏻' => 'ҷуфт бо дил: зан, мард, ранги равшани пӯст',
     '👩🏻‍❤‍👨🏼' => 'ҷуфт бо дил: зан, мард, ранги равшани пӯст, ранги равшании миёнаи пӯст',
     '👩🏻‍❤‍👨🏽' => 'ҷуфт бо дил: зан, мард, ранги равшани пӯст, ранги миёнаи пӯст',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ҷуфт бо дил: зан, зан, ранги торики пӯст, ранги миёнаи пӯст',
     '👩🏿‍❤‍👩🏾' => 'ҷуфт бо дил: зан, зан, ранги торики пӯст, ранги торики миёнаи пӯст',
     '👩🏿‍❤‍👩🏿' => 'ҷуфт бо дил: зан, зан, ранги торики пӯст',
+    '👩🏻‍🐰‍👩🏼' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги равшании миёнаи пӯст',
+    '👩🏻‍🐰‍👩🏽' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги миёнаи пӯст',
+    '👩🏻‍🐰‍👩🏾' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги торики миёнаи пӯст',
+    '👩🏻‍🐰‍👩🏿' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст ва ранги торики пӯст',
+    '👩🏼‍🐰‍👩🏻' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги равшани пӯст',
+    '👩🏼‍🐰‍👩🏽' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги миёнаи пӯст',
+    '👩🏼‍🐰‍👩🏾' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '👩🏼‍🐰‍👩🏿' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст ва ранги торики пӯст',
+    '👩🏽‍🐰‍👩🏻' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги равшани пӯст',
+    '👩🏽‍🐰‍👩🏼' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '👩🏽‍🐰‍👩🏾' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги торики миёнаи пӯст',
+    '👩🏽‍🐰‍👩🏿' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст ва ранги торики пӯст',
+    '👩🏾‍🐰‍👩🏻' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги равшани пӯст',
+    '👩🏾‍🐰‍👩🏼' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги равшании миёнаи пӯст',
+    '👩🏾‍🐰‍👩🏽' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги миёнаи пӯст',
+    '👩🏾‍🐰‍👩🏿' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст ва ранги торики пӯст',
+    '👩🏿‍🐰‍👩🏻' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги равшани пӯст',
+    '👩🏿‍🐰‍👩🏼' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги равшании миёнаи пӯст',
+    '👩🏿‍🐰‍👩🏽' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги миёнаи пӯст',
+    '👩🏿‍🐰‍👩🏾' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст ва ранги торики миёнаи пӯст',
     '👩🏻‍🤝‍👩🏼' => 'ду зане, ки дастҳои якдигарро дошта истодаанд: ранги равшани пӯст ва ранги равшании миёнаи пӯст',
     '👩🏻‍🤝‍👩🏽' => 'ду зане, ки дастҳои якдигарро дошта истодаанд: ранги равшани пӯст ва ранги миёнаи пӯст',
     '👩🏻‍🤝‍👩🏾' => 'ду зане, ки дастҳои якдигарро дошта истодаанд: ранги равшани пӯст ва ранги торики миёнаи пӯст',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'зане, ки давида истодааст: ранги миёнаи пӯст',
     '🏃🏾‍♀' => 'зане, ки давида истодааст: ранги торики миёнаи пӯст',
     '🏃🏿‍♀' => 'зане, ки давида истодааст: ранги торики пӯст',
+    '👯🏻‍♀' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст',
+    '👯🏼‍♀' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст',
+    '👯🏽‍♀' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст',
+    '👯🏾‍♀' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст',
+    '👯🏿‍♀' => 'занони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст',
+    '👯🏻‍♂' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст',
+    '👯🏼‍♂' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст',
+    '👯🏽‍♂' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст',
+    '👯🏾‍♂' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст',
+    '👯🏿‍♂' => 'мардони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст',
     '🧖🏻‍♂' => 'марде дар ҳуҷраи буғ: ранги равшани пӯст',
     '🧖🏼‍♂' => 'марде дар ҳуҷраи буғ: ранги равшании миёнаи пӯст',
     '🧖🏽‍♂' => 'марде дар ҳуҷраи буғ: ранги миёнаи пӯст',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'зани чарх зада истода: ранги миёнаи пӯст',
     '🤸🏾‍♀' => 'зани чарх зада истода: ранги торики миёнаи пӯст',
     '🤸🏿‍♀' => 'зани чарх зада истода: ранги торики пӯст',
+    '🤼🏻‍♀' => 'занон гуштингирӣ карда истодаанд: ранги равшани пӯст',
+    '🤼🏼‍♀' => 'занон гуштингирӣ карда истодаанд: ранги равшании миёнаи пӯст',
+    '🤼🏽‍♀' => 'занон гуштингирӣ карда истодаанд: ранги миёнаи пӯст',
+    '🤼🏾‍♀' => 'занон гуштингирӣ карда истодаанд: ранги торики миёнаи пӯст',
+    '🤼🏿‍♀' => 'занон гуштингирӣ карда истодаанд: ранги торики пӯст',
+    '🤼🏻‍♂' => 'мардон гуштингирӣ карда истодаанд: ранги равшани пӯст',
+    '🤼🏼‍♂' => 'мардон гуштингирӣ карда истодаанд: ранги равшании миёнаи пӯст',
+    '🤼🏽‍♂' => 'мардон гуштингирӣ карда истодаанд: ранги миёнаи пӯст',
+    '🤼🏾‍♂' => 'мардон гуштингирӣ карда истодаанд: ранги торики миёнаи пӯст',
+    '🤼🏿‍♂' => 'мардон гуштингирӣ карда истодаанд: ранги торики пӯст',
     '🤽🏻‍♂' => 'марди ватерполо бозӣ карда истода: ранги равшани пӯст',
     '🤽🏼‍♂' => 'марди ватерполо бозӣ карда истода: ранги равшании миёнаи пӯст',
     '🤽🏽‍♂' => 'марди ватерполо бозӣ карда истода: ранги миёнаи пӯст',
@@ -1392,6 +1532,11 @@
     '🕴🏽' => 'марде, ки бо костюми корӣ баланд шуда истодааст: ранги миёнаи пӯст',
     '🕴🏾' => 'марде, ки бо костюми корӣ баланд шуда истодааст: ранги торики миёнаи пӯст',
     '🕴🏿' => 'марде, ки бо костюми корӣ баланд шуда истодааст: ранги торики пӯст',
+    '👯🏻' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшани пӯст',
+    '👯🏼' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги равшании миёнаи пӯст',
+    '👯🏽' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги миёнаи пӯст',
+    '👯🏾' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики миёнаи пӯст',
+    '👯🏿' => 'нафарони бо гӯшҳои харгӯш хурсандӣ карда истода: ранги торики пӯст',
     '🧖🏻' => 'шахсе дар ҳуҷраи буғ: ранги равшани пӯст',
     '🧖🏼' => 'шахсе дар ҳуҷраи буғ: ранги равшании миёнаи пӯст',
     '🧖🏽' => 'шахсе дар ҳуҷраи буғ: ранги миёнаи пӯст',
@@ -1457,6 +1602,11 @@
     '🤸🏽' => 'шахси чарх зада истода: ранги миёнаи пӯст',
     '🤸🏾' => 'шахси чарх зада истода: ранги торики миёнаи пӯст',
     '🤸🏿' => 'шахси чарх зада истода: ранги торики пӯст',
+    '🤼🏻' => 'нафарони гуштингирӣ карда истода: ранги равшани пӯст',
+    '🤼🏼' => 'нафарони гуштингирӣ карда истода: ранги равшании миёнаи пӯст',
+    '🤼🏽' => 'нафарони гуштингирӣ карда истода: ранги миёнаи пӯст',
+    '🤼🏾' => 'нафарони гуштингирӣ карда истода: ранги торики миёнаи пӯст',
+    '🤼🏿' => 'нафарони гуштингирӣ карда истода: ранги торики пӯст',
     '🤽🏻' => 'шахси ватерполо бозӣ карда истода: ранги равшани пӯст',
     '🤽🏼' => 'шахси ватерполо бозӣ карда истода: ранги равшании миёнаи пӯст',
     '🤽🏽' => 'шахси ватерполо бозӣ карда истода: ранги миёнаи пӯст',
@@ -1857,6 +2007,9 @@
     '🦈' => 'кӯсамоҳӣ',
     '🐙' => 'ҳаштпо',
     '🐚' => 'садафи морпеч',
+    '🦀' => 'харчанг',
+    '🦐' => 'гамбусакча',
+    '🦑' => 'калмар',
     '🐌' => 'тӯқумшуллуқ',
     '🦋' => 'шапалак',
     '🐛' => 'гамбуск',
@@ -1958,9 +2111,6 @@
     '🥟' => 'ғелаккабоб',
     '🥠' => 'кулчаҳои қандини туҳфадор',
     '🥡' => 'қуттии хӯроки бо худ гирифташаванда',
-    '🦀' => 'харчанг',
-    '🦐' => 'гамбусакча',
-    '🦑' => 'калмар',
     '🍦' => 'яхмоси мулоим',
     '🍧' => 'тарошаи ях',
     '🍨' => 'яхмос',
@@ -2312,9 +2462,9 @@
     '🎧' => 'гӯшмонак',
     '📻' => 'радио',
     '🎷' => 'саксофон',
+    '🎺' => 'карнай',
     '🎸' => 'гитар',
     '🎹' => 'клавиатураи мусиқӣ',
-    '🎺' => 'карнай',
     '🎻' => 'ғиҷҷак',
     '🥁' => 'нақора',
     '📱' => 'телефони мобилӣ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-th.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-th.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-th.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-th.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'จูบ: ผู้หญิง ผู้หญิง โทนผิวสีเข้ม และ โทนผิวสีเหลือง',
     '👩🏿‍❤‍💋‍👩🏾' => 'จูบ: ผู้หญิง ผู้หญิง โทนผิวสีเข้ม และ โทนผิวสีแทน',
     '👩🏿‍❤‍💋‍👩🏿' => 'จูบ: ผู้หญิง ผู้หญิง และ โทนผิวสีเข้ม',
+    '🧑🏻‍🫯‍🧑🏼' => 'นักมวยปล้ำ: โทนผิวสีขาว โทนผิวสีขาวเหลือง',
+    '🧑🏻‍🫯‍🧑🏽' => 'นักมวยปล้ำ: โทนผิวสีขาว โทนผิวสีเหลือง',
+    '🧑🏻‍🫯‍🧑🏾' => 'นักมวยปล้ำ: โทนผิวสีขาว โทนผิวสีแทน',
+    '🧑🏻‍🫯‍🧑🏿' => 'นักมวยปล้ำ: โทนผิวสีขาว โทนผิวสีเข้ม',
+    '🧑🏼‍🫯‍🧑🏻' => 'นักมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีขาว',
+    '🧑🏼‍🫯‍🧑🏽' => 'นักมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีเหลือง',
+    '🧑🏼‍🫯‍🧑🏾' => 'นักมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีแทน',
+    '🧑🏼‍🫯‍🧑🏿' => 'นักมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีเข้ม',
+    '🧑🏽‍🫯‍🧑🏻' => 'นักมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีขาว',
+    '🧑🏽‍🫯‍🧑🏼' => 'นักมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีขาวเหลือง',
+    '🧑🏽‍🫯‍🧑🏾' => 'นักมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีแทน',
+    '🧑🏽‍🫯‍🧑🏿' => 'นักมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีเข้ม',
+    '🧑🏾‍🫯‍🧑🏻' => 'นักมวยปล้ำ: โทนผิวสีแทน โทนผิวสีขาว',
+    '🧑🏾‍🫯‍🧑🏼' => 'นักมวยปล้ำ: โทนผิวสีแทน โทนผิวสีขาวเหลือง',
+    '🧑🏾‍🫯‍🧑🏽' => 'นักมวยปล้ำ: โทนผิวสีแทน โทนผิวสีเหลือง',
+    '🧑🏾‍🫯‍🧑🏿' => 'นักมวยปล้ำ: โทนผิวสีแทน โทนผิวสีเข้ม',
+    '🧑🏿‍🫯‍🧑🏻' => 'นักมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีขาว',
+    '🧑🏿‍🫯‍🧑🏼' => 'นักมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีขาวเหลือง',
+    '🧑🏿‍🫯‍🧑🏽' => 'นักมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีเหลือง',
+    '🧑🏿‍🫯‍🧑🏾' => 'นักมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีแทน',
     '🧑🏻‍❤‍🧑🏼' => 'คู่รัก: คน คน โทนผิวสีขาว และ โทนผิวสีขาวเหลือง',
     '🧑🏻‍❤‍🧑🏽' => 'คู่รัก: คน คน โทนผิวสีขาว และ โทนผิวสีเหลือง',
     '🧑🏻‍❤‍🧑🏾' => 'คู่รัก: คน คน โทนผิวสีขาว และ โทนผิวสีแทน',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'คู่รัก: คน คน โทนผิวสีเข้ม และ โทนผิวสีขาวเหลือง',
     '🧑🏿‍❤‍🧑🏽' => 'คู่รัก: คน คน โทนผิวสีเข้ม และ โทนผิวสีเหลือง',
     '🧑🏿‍❤‍🧑🏾' => 'คู่รัก: คน คน โทนผิวสีเข้ม และ โทนผิวสีแทน',
+    '🧑🏻‍🐰‍🧑🏼' => 'คนในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีขาวเหลือง',
+    '🧑🏻‍🐰‍🧑🏽' => 'คนในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีเหลือง',
+    '🧑🏻‍🐰‍🧑🏾' => 'คนในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีแทน',
+    '🧑🏻‍🐰‍🧑🏿' => 'คนในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีเข้ม',
+    '🧑🏼‍🐰‍🧑🏻' => 'คนในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีขาว',
+    '🧑🏼‍🐰‍🧑🏽' => 'คนในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีเหลือง',
+    '🧑🏼‍🐰‍🧑🏾' => 'คนในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีแทน',
+    '🧑🏼‍🐰‍🧑🏿' => 'คนในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีเข้ม',
+    '🧑🏽‍🐰‍🧑🏻' => 'คนในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีขาว',
+    '🧑🏽‍🐰‍🧑🏼' => 'คนในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีขาวเหลือง',
+    '🧑🏽‍🐰‍🧑🏾' => 'คนในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีแทน',
+    '🧑🏽‍🐰‍🧑🏿' => 'คนในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีเข้ม',
+    '🧑🏾‍🐰‍🧑🏻' => 'คนในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีขาว',
+    '🧑🏾‍🐰‍🧑🏼' => 'คนในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีขาวเหลือง',
+    '🧑🏾‍🐰‍🧑🏽' => 'คนในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีเหลือง',
+    '🧑🏾‍🐰‍🧑🏿' => 'คนในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีเข้ม',
+    '🧑🏿‍🐰‍🧑🏻' => 'คนในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีขาว',
+    '🧑🏿‍🐰‍🧑🏼' => 'คนในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีขาวเหลือง',
+    '🧑🏿‍🐰‍🧑🏽' => 'คนในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีเหลือง',
+    '🧑🏿‍🐰‍🧑🏾' => 'คนในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีแทน',
+    '👨🏻‍🫯‍👨🏼' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีขาว โทนผิวสีขาวเหลือง',
+    '👨🏻‍🫯‍👨🏽' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีขาว โทนผิวสีเหลือง',
+    '👨🏻‍🫯‍👨🏾' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีขาว โทนผิวสีแทน',
+    '👨🏻‍🫯‍👨🏿' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีขาว โทนผิวสีเข้ม',
+    '👨🏼‍🫯‍👨🏻' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีขาว',
+    '👨🏼‍🫯‍👨🏽' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีเหลือง',
+    '👨🏼‍🫯‍👨🏾' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีแทน',
+    '👨🏼‍🫯‍👨🏿' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีเข้ม',
+    '👨🏽‍🫯‍👨🏻' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีขาว',
+    '👨🏽‍🫯‍👨🏼' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีขาวเหลือง',
+    '👨🏽‍🫯‍👨🏾' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีแทน',
+    '👨🏽‍🫯‍👨🏿' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีเข้ม',
+    '👨🏾‍🫯‍👨🏻' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีแทน โทนผิวสีขาว',
+    '👨🏾‍🫯‍👨🏼' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีแทน โทนผิวสีขาวเหลือง',
+    '👨🏾‍🫯‍👨🏽' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีแทน โทนผิวสีเหลือง',
+    '👨🏾‍🫯‍👨🏿' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีแทน โทนผิวสีเข้ม',
+    '👨🏿‍🫯‍👨🏻' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีขาว',
+    '👨🏿‍🫯‍👨🏼' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีขาวเหลือง',
+    '👨🏿‍🫯‍👨🏽' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีเหลือง',
+    '👨🏿‍🫯‍👨🏾' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีแทน',
     '👨🏻‍❤‍👨🏻' => 'คู่รัก: ผู้ชาย ผู้ชาย และ โทนผิวสีขาว',
     '👨🏻‍❤‍👨🏼' => 'คู่รัก: ผู้ชาย ผู้ชาย โทนผิวสีขาว และ โทนผิวสีขาวเหลือง',
     '👨🏻‍❤‍👨🏽' => 'คู่รัก: ผู้ชาย ผู้ชาย โทนผิวสีขาว และ โทนผิวสีเหลือง',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'คู่รัก: ผู้ชาย ผู้ชาย โทนผิวสีเข้ม และ โทนผิวสีเหลือง',
     '👨🏿‍❤‍👨🏾' => 'คู่รัก: ผู้ชาย ผู้ชาย โทนผิวสีเข้ม และ โทนผิวสีแทน',
     '👨🏿‍❤‍👨🏿' => 'คู่รัก: ผู้ชาย ผู้ชาย และ โทนผิวสีเข้ม',
+    '👨🏻‍🐰‍👨🏼' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีขาวเหลือง',
+    '👨🏻‍🐰‍👨🏽' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีเหลือง',
+    '👨🏻‍🐰‍👨🏾' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีแทน',
+    '👨🏻‍🐰‍👨🏿' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีเข้ม',
+    '👨🏼‍🐰‍👨🏻' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีขาว',
+    '👨🏼‍🐰‍👨🏽' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีเหลือง',
+    '👨🏼‍🐰‍👨🏾' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีแทน',
+    '👨🏼‍🐰‍👨🏿' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีเข้ม',
+    '👨🏽‍🐰‍👨🏻' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีขาว',
+    '👨🏽‍🐰‍👨🏼' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีขาวเหลือง',
+    '👨🏽‍🐰‍👨🏾' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีแทน',
+    '👨🏽‍🐰‍👨🏿' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีเข้ม',
+    '👨🏾‍🐰‍👨🏻' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีขาว',
+    '👨🏾‍🐰‍👨🏼' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีขาวเหลือง',
+    '👨🏾‍🐰‍👨🏽' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีเหลือง',
+    '👨🏾‍🐰‍👨🏿' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีเข้ม',
+    '👨🏿‍🐰‍👨🏻' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีขาว',
+    '👨🏿‍🐰‍👨🏼' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีขาวเหลือง',
+    '👨🏿‍🐰‍👨🏽' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีเหลือง',
+    '👨🏿‍🐰‍👨🏾' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีแทน',
+    '👩🏻‍🫯‍👩🏼' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีขาว โทนผิวสีขาวเหลือง',
+    '👩🏻‍🫯‍👩🏽' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีขาว โทนผิวสีเหลือง',
+    '👩🏻‍🫯‍👩🏾' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีขาว โทนผิวสีแทน',
+    '👩🏻‍🫯‍👩🏿' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีขาว โทนผิวสีเข้ม',
+    '👩🏼‍🫯‍👩🏻' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีขาว',
+    '👩🏼‍🫯‍👩🏽' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีเหลือง',
+    '👩🏼‍🫯‍👩🏾' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีแทน',
+    '👩🏼‍🫯‍👩🏿' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีขาวเหลือง โทนผิวสีเข้ม',
+    '👩🏽‍🫯‍👩🏻' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีขาว',
+    '👩🏽‍🫯‍👩🏼' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีขาวเหลือง',
+    '👩🏽‍🫯‍👩🏾' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีแทน',
+    '👩🏽‍🫯‍👩🏿' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีเหลือง โทนผิวสีเข้ม',
+    '👩🏾‍🫯‍👩🏻' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีแทน โทนผิวสีขาว',
+    '👩🏾‍🫯‍👩🏼' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีแทน โทนผิวสีขาวเหลือง',
+    '👩🏾‍🫯‍👩🏽' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีแทน โทนผิวสีเหลือง',
+    '👩🏾‍🫯‍👩🏿' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีแทน โทนผิวสีเข้ม',
+    '👩🏿‍🫯‍👩🏻' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีขาว',
+    '👩🏿‍🫯‍👩🏼' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีขาวเหลือง',
+    '👩🏿‍🫯‍👩🏽' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีเหลือง',
+    '👩🏿‍🫯‍👩🏾' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีเข้ม โทนผิวสีแทน',
     '👩🏻‍❤‍👨🏻' => 'คู่รัก: ผู้หญิง ผู้ชาย และ โทนผิวสีขาว',
     '👩🏻‍❤‍👨🏼' => 'คู่รัก: ผู้หญิง ผู้ชาย โทนผิวสีขาว และ โทนผิวสีขาวเหลือง',
     '👩🏻‍❤‍👨🏽' => 'คู่รัก: ผู้หญิง ผู้ชาย โทนผิวสีขาว และ โทนผิวสีเหลือง',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'คู่รัก: ผู้หญิง ผู้หญิง โทนผิวสีเข้ม และ โทนผิวสีเหลือง',
     '👩🏿‍❤‍👩🏾' => 'คู่รัก: ผู้หญิง ผู้หญิง โทนผิวสีเข้ม และ โทนผิวสีแทน',
     '👩🏿‍❤‍👩🏿' => 'คู่รัก: ผู้หญิง ผู้หญิง และ โทนผิวสีเข้ม',
+    '👩🏻‍🐰‍👩🏼' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีขาวเหลือง',
+    '👩🏻‍🐰‍👩🏽' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีเหลือง',
+    '👩🏻‍🐰‍👩🏾' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีแทน',
+    '👩🏻‍🐰‍👩🏿' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีขาว โทนผิวสีเข้ม',
+    '👩🏼‍🐰‍👩🏻' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีขาว',
+    '👩🏼‍🐰‍👩🏽' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีเหลือง',
+    '👩🏼‍🐰‍👩🏾' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีแทน',
+    '👩🏼‍🐰‍👩🏿' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีขาวเหลือง โทนผิวสีเข้ม',
+    '👩🏽‍🐰‍👩🏻' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีขาว',
+    '👩🏽‍🐰‍👩🏼' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีขาวเหลือง',
+    '👩🏽‍🐰‍👩🏾' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีแทน',
+    '👩🏽‍🐰‍👩🏿' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีเหลือง โทนผิวสีเข้ม',
+    '👩🏾‍🐰‍👩🏻' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีขาว',
+    '👩🏾‍🐰‍👩🏼' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีขาวเหลือง',
+    '👩🏾‍🐰‍👩🏽' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีเหลือง',
+    '👩🏾‍🐰‍👩🏿' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีแทน โทนผิวสีเข้ม',
+    '👩🏿‍🐰‍👩🏻' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีขาว',
+    '👩🏿‍🐰‍👩🏼' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีขาวเหลือง',
+    '👩🏿‍🐰‍👩🏽' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีเหลือง',
+    '👩🏿‍🐰‍👩🏾' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีเข้ม โทนผิวสีแทน',
     '🧑🏻‍🤝‍🧑🏻' => 'คนจับมือกัน: โทนผิวสีขาว',
     '🧑🏻‍🤝‍🧑🏼' => 'คนจับมือกัน: โทนผิวสีขาว โทนผิวสีขาวเหลือง',
     '🧑🏻‍🤝‍🧑🏽' => 'คนจับมือกัน: โทนผิวสีขาว โทนผิวสีเหลือง',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'ธง: สกอตแลนด์',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'ธง: เวลส์',
     '🧑‍🧑‍🧒‍🧒' => 'ครอบครัว: ผู้ใหญ่, ผู้ใหญ่, เด็ก, เด็ก',
-    '🚶🏻‍♀‍➡' => 'ผู้หญิงเดิน หันขวา',
-    '🚶🏼‍♀‍➡' => 'ผู้หญิงเดิน หันขวา',
-    '🚶🏽‍♀‍➡' => 'ผู้หญิงเดิน หันขวา',
-    '🚶🏾‍♀‍➡' => 'ผู้หญิงเดิน หันขวา',
-    '🚶🏿‍♀‍➡' => 'ผู้หญิงเดิน หันขวา',
-    '🚶🏻‍♂‍➡' => 'ผู้ชายเดิน หันขวา',
-    '🚶🏼‍♂‍➡' => 'ผู้ชายเดิน หันขวา',
-    '🚶🏽‍♂‍➡' => 'ผู้ชายเดิน หันขวา',
-    '🚶🏾‍♂‍➡' => 'ผู้ชายเดิน หันขวา',
-    '🚶🏿‍♂‍➡' => 'ผู้ชายเดิน หันขวา',
-    '🧎🏻‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า หันขวา',
-    '🧎🏼‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า หันขวา',
-    '🧎🏽‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า หันขวา',
-    '🧎🏾‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า หันขวา',
-    '🧎🏿‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า หันขวา',
-    '🧎🏻‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า หันขวา',
-    '🧎🏼‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า หันขวา',
-    '🧎🏽‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า หันขวา',
-    '🧎🏾‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า หันขวา',
-    '🧎🏿‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า หันขวา',
-    '🧑🏻‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง หันขวา',
-    '🧑🏼‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง หันขวา',
-    '🧑🏽‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง หันขวา',
-    '🧑🏾‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง หันขวา',
-    '🧑🏿‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง หันขวา',
-    '👨🏻‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง หันขวา',
-    '👨🏼‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง หันขวา',
-    '👨🏽‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง หันขวา',
-    '👨🏾‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง หันขวา',
-    '👨🏿‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง หันขวา',
-    '👩🏻‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง หันขวา',
-    '👩🏼‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง หันขวา',
-    '👩🏽‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง หันขวา',
-    '👩🏾‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง หันขวา',
-    '👩🏿‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง หันขวา',
-    '🧑🏻‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '🧑🏼‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '🧑🏽‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '🧑🏾‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '🧑🏿‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👨🏻‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👨🏼‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👨🏽‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👨🏾‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👨🏿‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👩🏻‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👩🏼‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👩🏽‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👩🏾‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👩🏿‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '🧑🏻‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา หันขวา',
-    '🧑🏼‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา หันขวา',
-    '🧑🏽‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา หันขวา',
-    '🧑🏾‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา หันขวา',
-    '🧑🏿‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา หันขวา',
-    '👨🏻‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา หันขวา',
-    '👨🏼‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา หันขวา',
-    '👨🏽‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา หันขวา',
-    '👨🏾‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา หันขวา',
-    '👨🏿‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา หันขวา',
-    '👩🏻‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา หันขวา',
-    '👩🏼‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา หันขวา',
-    '👩🏽‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา หันขวา',
-    '👩🏾‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา หันขวา',
-    '👩🏿‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา หันขวา',
-    '🏃🏻‍♀‍➡' => 'ผู้หญิงวิ่ง หันขวา',
-    '🏃🏼‍♀‍➡' => 'ผู้หญิงวิ่ง หันขวา',
-    '🏃🏽‍♀‍➡' => 'ผู้หญิงวิ่ง หันขวา',
-    '🏃🏾‍♀‍➡' => 'ผู้หญิงวิ่ง หันขวา',
-    '🏃🏿‍♀‍➡' => 'ผู้หญิงวิ่ง หันขวา',
-    '🏃🏻‍♂‍➡' => 'ผู้ชายวิ่ง หันขวา',
-    '🏃🏼‍♂‍➡' => 'ผู้ชายวิ่ง หันขวา',
-    '🏃🏽‍♂‍➡' => 'ผู้ชายวิ่ง หันขวา',
-    '🏃🏾‍♂‍➡' => 'ผู้ชายวิ่ง หันขวา',
-    '🏃🏿‍♂‍➡' => 'ผู้ชายวิ่ง หันขวา',
+    '🚶🏻‍♀‍➡' => 'ผู้หญิงเดิน: โทนผิวสีขาว หันขวา',
+    '🚶🏼‍♀‍➡' => 'ผู้หญิงเดิน: โทนผิวสีขาวเหลือง หันขวา',
+    '🚶🏽‍♀‍➡' => 'ผู้หญิงเดิน: โทนผิวสีเหลือง หันขวา',
+    '🚶🏾‍♀‍➡' => 'ผู้หญิงเดิน: โทนผิวสีแทน หันขวา',
+    '🚶🏿‍♀‍➡' => 'ผู้หญิงเดิน: โทนผิวสีเข้ม หันขวา',
+    '🚶🏻‍♂‍➡' => 'ผู้ชายเดิน: โทนผิวสีขาว หันขวา',
+    '🚶🏼‍♂‍➡' => 'ผู้ชายเดิน: โทนผิวสีขาวเหลือง หันขวา',
+    '🚶🏽‍♂‍➡' => 'ผู้ชายเดิน: โทนผิวสีเหลือง หันขวา',
+    '🚶🏾‍♂‍➡' => 'ผู้ชายเดิน: โทนผิวสีแทน หันขวา',
+    '🚶🏿‍♂‍➡' => 'ผู้ชายเดิน: โทนผิวสีเข้ม หันขวา',
+    '🧎🏻‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า: โทนผิวสีขาว หันขวา',
+    '🧎🏼‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า: โทนผิวสีขาวเหลือง หันขวา',
+    '🧎🏽‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า: โทนผิวสีเหลือง หันขวา',
+    '🧎🏾‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า: โทนผิวสีแทน หันขวา',
+    '🧎🏿‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า: โทนผิวสีเข้ม หันขวา',
+    '🧎🏻‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า: โทนผิวสีขาว หันขวา',
+    '🧎🏼‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า: โทนผิวสีขาวเหลือง หันขวา',
+    '🧎🏽‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า: โทนผิวสีเหลือง หันขวา',
+    '🧎🏾‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า: โทนผิวสีแทน หันขวา',
+    '🧎🏿‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า: โทนผิวสีเข้ม หันขวา',
+    '🧑🏻‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง: โทนผิวสีขาว หันขวา',
+    '🧑🏼‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง: โทนผิวสีขาวเหลือง หันขวา',
+    '🧑🏽‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง: โทนผิวสีเหลือง หันขวา',
+    '🧑🏾‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง: โทนผิวสีแทน หันขวา',
+    '🧑🏿‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง: โทนผิวสีเข้ม หันขวา',
+    '👨🏻‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง: โทนผิวสีขาว หันขวา',
+    '👨🏼‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง: โทนผิวสีขาวเหลือง หันขวา',
+    '👨🏽‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง: โทนผิวสีเหลือง หันขวา',
+    '👨🏾‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง: โทนผิวสีแทน หันขวา',
+    '👨🏿‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง: โทนผิวสีเข้ม หันขวา',
+    '👩🏻‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง: โทนผิวสีขาว หันขวา',
+    '👩🏼‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง: โทนผิวสีขาวเหลือง หันขวา',
+    '👩🏽‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง: โทนผิวสีเหลือง หันขวา',
+    '👩🏾‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง: โทนผิวสีแทน หันขวา',
+    '👩🏿‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง: โทนผิวสีเข้ม หันขวา',
+    '🧑🏻‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า: โทนผิวสีขาว หันขวา',
+    '🧑🏼‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า: โทนผิวสีขาวเหลือง หันขวา',
+    '🧑🏽‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า: โทนผิวสีเหลือง หันขวา',
+    '🧑🏾‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า: โทนผิวสีแทน หันขวา',
+    '🧑🏿‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า: โทนผิวสีเข้ม หันขวา',
+    '👨🏻‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า: โทนผิวสีขาว หันขวา',
+    '👨🏼‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า: โทนผิวสีขาวเหลือง หันขวา',
+    '👨🏽‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า: โทนผิวสีเหลือง หันขวา',
+    '👨🏾‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า: โทนผิวสีแทน หันขวา',
+    '👨🏿‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า: โทนผิวสีเข้ม หันขวา',
+    '👩🏻‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า: โทนผิวสีขาว หันขวา',
+    '👩🏼‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า: โทนผิวสีขาวเหลือง หันขวา',
+    '👩🏽‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า: โทนผิวสีเหลือง หันขวา',
+    '👩🏾‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า: โทนผิวสีแทน หันขวา',
+    '👩🏿‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า: โทนผิวสีเข้ม หันขวา',
+    '🧑🏻‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา: โทนผิวสีขาว หันขวา',
+    '🧑🏼‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา: โทนผิวสีขาวเหลือง หันขวา',
+    '🧑🏽‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา: โทนผิวสีเหลือง หันขวา',
+    '🧑🏾‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา: โทนผิวสีแทน หันขวา',
+    '🧑🏿‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา: โทนผิวสีเข้ม หันขวา',
+    '👨🏻‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา: โทนผิวสีขาว หันขวา',
+    '👨🏼‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา: โทนผิวสีขาวเหลือง หันขวา',
+    '👨🏽‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา: โทนผิวสีเหลือง หันขวา',
+    '👨🏾‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา: โทนผิวสีแทน หันขวา',
+    '👨🏿‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา: โทนผิวสีเข้ม หันขวา',
+    '👩🏻‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา: โทนผิวสีขาว หันขวา',
+    '👩🏼‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา: โทนผิวสีขาวเหลือง หันขวา',
+    '👩🏽‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา: โทนผิวสีเหลือง หันขวา',
+    '👩🏾‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา: โทนผิวสีแทน หันขวา',
+    '👩🏿‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา: โทนผิวสีเข้ม หันขวา',
+    '🏃🏻‍♀‍➡' => 'ผู้หญิงวิ่ง: โทนผิวสีขาว หันขวา',
+    '🏃🏼‍♀‍➡' => 'ผู้หญิงวิ่ง: โทนผิวสีขาวเหลือง หันขวา',
+    '🏃🏽‍♀‍➡' => 'ผู้หญิงวิ่ง: โทนผิวสีเหลือง หันขวา',
+    '🏃🏾‍♀‍➡' => 'ผู้หญิงวิ่ง: โทนผิวสีแทน หันขวา',
+    '🏃🏿‍♀‍➡' => 'ผู้หญิงวิ่ง: โทนผิวสีเข้ม หันขวา',
+    '🏃🏻‍♂‍➡' => 'ผู้ชายวิ่ง: โทนผิวสีขาว หันขวา',
+    '🏃🏼‍♂‍➡' => 'ผู้ชายวิ่ง: โทนผิวสีขาวเหลือง หันขวา',
+    '🏃🏽‍♂‍➡' => 'ผู้ชายวิ่ง: โทนผิวสีเหลือง หันขวา',
+    '🏃🏾‍♂‍➡' => 'ผู้ชายวิ่ง: โทนผิวสีแทน หันขวา',
+    '🏃🏿‍♂‍➡' => 'ผู้ชายวิ่ง: โทนผิวสีเข้ม หันขวา',
     '🫱🏻‍🫲🏼' => 'จับมือ: โทนผิวสีขาว โทนผิวสีขาวเหลือง',
     '🫱🏻‍🫲🏽' => 'จับมือ: โทนผิวสีขาว โทนผิวสีเหลือง',
     '🫱🏻‍🫲🏾' => 'จับมือ: โทนผิวสีขาว โทนผิวสีแทน',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'จับมือ: โทนผิวสีเข้ม โทนผิวสีขาวเหลือง',
     '🫱🏿‍🫲🏽' => 'จับมือ: โทนผิวสีเข้ม โทนผิวสีเหลือง',
     '🫱🏿‍🫲🏾' => 'จับมือ: โทนผิวสีเข้ม โทนผิวสีแทน',
-    '🚶‍♀‍➡' => 'ผู้หญิงเดิน หันขวา',
-    '🚶‍♂‍➡' => 'ผู้ชายเดิน หันขวา',
-    '🧎‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า หันขวา',
-    '🧎‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า หันขวา',
-    '🧑‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง หันขวา',
-    '👨‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง หันขวา',
-    '👩‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง หันขวา',
-    '🧑‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👨‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '👩‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า หันขวา',
-    '🧑‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา หันขวา',
-    '👨‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา หันขวา',
-    '👩‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา หันขวา',
-    '🏃‍♀‍➡' => 'ผู้หญิงวิ่ง หันขวา',
-    '🏃‍♂‍➡' => 'ผู้ชายวิ่ง หันขวา',
+    '🚶‍♀‍➡' => 'ผู้หญิงเดิน: หันขวา',
+    '🚶‍♂‍➡' => 'ผู้ชายเดิน: หันขวา',
+    '🧎‍♀‍➡' => 'ผู้หญิงกำลังคุกเข่า: หันขวา',
+    '🧎‍♂‍➡' => 'ผู้ชายกำลังคุกเข่า: หันขวา',
+    '🧑‍🦯‍➡' => 'คนเดินถือไม้เท้านำทาง: หันขวา',
+    '👨‍🦯‍➡' => 'ผู้ชายเดินถือไม้เท้านำทาง: หันขวา',
+    '👩‍🦯‍➡' => 'ผู้หญิงเดินถือไม้เท้านำทาง: หันขวา',
+    '🧑‍🦼‍➡' => 'คนนั่งวีลแชร์ไฟฟ้า: หันขวา',
+    '👨‍🦼‍➡' => 'ผู้ชายนั่งวีลแชร์ไฟฟ้า: หันขวา',
+    '👩‍🦼‍➡' => 'ผู้หญิงนั่งวีลแชร์ไฟฟ้า: หันขวา',
+    '🧑‍🦽‍➡' => 'คนนั่งวีลแชร์ธรรมดา: หันขวา',
+    '👨‍🦽‍➡' => 'ผู้ชายนั่งวีลแชร์ธรรมดา: หันขวา',
+    '👩‍🦽‍➡' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา: หันขวา',
+    '🏃‍♀‍➡' => 'ผู้หญิงวิ่ง: หันขวา',
+    '🏃‍♂‍➡' => 'ผู้ชายวิ่ง: หันขวา',
     '👩‍❤‍👨' => 'คู่รัก: ผู้หญิง ผู้ชาย',
     '👨‍❤‍👨' => 'คู่รัก: ผู้ชาย ผู้ชาย',
     '👩‍❤‍👩' => 'คู่รัก: ผู้หญิง ผู้หญิง',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'คน: โทนผิวสีเหลือง หัวล้าน',
     '🧑🏾‍🦲' => 'คน: โทนผิวสีแทน หัวล้าน',
     '🧑🏿‍🦲' => 'คน: โทนผิวสีเข้ม หัวล้าน',
+    '🧑🏻‍🩰' => 'นักบัลเล่ต์: โทนผิวสีขาว',
+    '🧑🏼‍🩰' => 'นักบัลเล่ต์: โทนผิวสีขาวเหลือง',
+    '🧑🏽‍🩰' => 'นักบัลเล่ต์: โทนผิวสีเหลือง',
+    '🧑🏾‍🩰' => 'นักบัลเล่ต์: โทนผิวสีแทน',
+    '🧑🏿‍🩰' => 'นักบัลเล่ต์: โทนผิวสีเข้ม',
     '🧔🏻‍♂' => 'ชายมีเครา: โทนผิวสีขาว',
     '🧔🏼‍♂' => 'ชายมีเครา: โทนผิวสีขาวเหลือง',
     '🧔🏽‍♂' => 'ชายมีเครา: โทนผิวสีเหลือง',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'ผู้หญิงเดิน: โทนผิวสีเหลือง',
     '🚶🏾‍♀' => 'ผู้หญิงเดิน: โทนผิวสีแทน',
     '🚶🏿‍♀' => 'ผู้หญิงเดิน: โทนผิวสีเข้ม',
-    '🚶🏻‍➡' => 'คนเดิน หันขวา',
-    '🚶🏼‍➡' => 'คนเดิน หันขวา',
-    '🚶🏽‍➡' => 'คนเดิน หันขวา',
-    '🚶🏾‍➡' => 'คนเดิน หันขวา',
-    '🚶🏿‍➡' => 'คนเดิน หันขวา',
+    '🚶🏻‍➡' => 'คนเดิน: โทนผิวสีขาว หันขวา',
+    '🚶🏼‍➡' => 'คนเดิน: โทนผิวสีขาวเหลือง หันขวา',
+    '🚶🏽‍➡' => 'คนเดิน: โทนผิวสีเหลือง หันขวา',
+    '🚶🏾‍➡' => 'คนเดิน: โทนผิวสีแทน หันขวา',
+    '🚶🏿‍➡' => 'คนเดิน: โทนผิวสีเข้ม หันขวา',
     '🧍🏻‍♂' => 'ผู้ชายกำลังยืน: โทนผิวสีขาว',
     '🧍🏼‍♂' => 'ผู้ชายกำลังยืน: โทนผิวสีขาวเหลือง',
     '🧍🏽‍♂' => 'ผู้ชายกำลังยืน: โทนผิวสีเหลือง',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'ผู้หญิงกำลังคุกเข่า: โทนผิวสีเหลือง',
     '🧎🏾‍♀' => 'ผู้หญิงกำลังคุกเข่า: โทนผิวสีแทน',
     '🧎🏿‍♀' => 'ผู้หญิงกำลังคุกเข่า: โทนผิวสีเข้ม',
-    '🧎🏻‍➡' => 'คนกำลังคุกเข่า หันขวา',
-    '🧎🏼‍➡' => 'คนกำลังคุกเข่า หันขวา',
-    '🧎🏽‍➡' => 'คนกำลังคุกเข่า หันขวา',
-    '🧎🏾‍➡' => 'คนกำลังคุกเข่า หันขวา',
-    '🧎🏿‍➡' => 'คนกำลังคุกเข่า หันขวา',
+    '🧎🏻‍➡' => 'คนกำลังคุกเข่า: โทนผิวสีขาว หันขวา',
+    '🧎🏼‍➡' => 'คนกำลังคุกเข่า: โทนผิวสีขาวเหลือง หันขวา',
+    '🧎🏽‍➡' => 'คนกำลังคุกเข่า: โทนผิวสีเหลือง หันขวา',
+    '🧎🏾‍➡' => 'คนกำลังคุกเข่า: โทนผิวสีแทน หันขวา',
+    '🧎🏿‍➡' => 'คนกำลังคุกเข่า: โทนผิวสีเข้ม หันขวา',
     '🧑🏻‍🦯' => 'คนเดินถือไม้เท้านำทาง: โทนผิวสีขาว',
     '🧑🏼‍🦯' => 'คนเดินถือไม้เท้านำทาง: โทนผิวสีขาวเหลือง',
     '🧑🏽‍🦯' => 'คนเดินถือไม้เท้านำทาง: โทนผิวสีเหลือง',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ผู้หญิงวิ่ง: โทนผิวสีเหลือง',
     '🏃🏾‍♀' => 'ผู้หญิงวิ่ง: โทนผิวสีแทน',
     '🏃🏿‍♀' => 'ผู้หญิงวิ่ง: โทนผิวสีเข้ม',
-    '🏃🏻‍➡' => 'คนวิ่ง หันขวา',
-    '🏃🏼‍➡' => 'คนวิ่ง หันขวา',
-    '🏃🏽‍➡' => 'คนวิ่ง หันขวา',
-    '🏃🏾‍➡' => 'คนวิ่ง หันขวา',
-    '🏃🏿‍➡' => 'คนวิ่ง หันขวา',
+    '🏃🏻‍➡' => 'คนวิ่ง: โทนผิวสีขาว หันขวา',
+    '🏃🏼‍➡' => 'คนวิ่ง: โทนผิวสีขาวเหลือง หันขวา',
+    '🏃🏽‍➡' => 'คนวิ่ง: โทนผิวสีเหลือง หันขวา',
+    '🏃🏾‍➡' => 'คนวิ่ง: โทนผิวสีแทน หันขวา',
+    '🏃🏿‍➡' => 'คนวิ่ง: โทนผิวสีเข้ม หันขวา',
+    '👯🏻‍♀' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีขาว',
+    '👯🏼‍♀' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีขาวเหลือง',
+    '👯🏽‍♀' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีเหลือง',
+    '👯🏾‍♀' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีแทน',
+    '👯🏿‍♀' => 'ผู้หญิงในชุดหูกระต่าย: โทนผิวสีเข้ม',
+    '👯🏻‍♂' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีขาว',
+    '👯🏼‍♂' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีขาวเหลือง',
+    '👯🏽‍♂' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีเหลือง',
+    '👯🏾‍♂' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีแทน',
+    '👯🏿‍♂' => 'ผู้ชายในชุดหูกระต่าย: โทนผิวสีเข้ม',
     '🧖🏻‍♂' => 'ผู้ชายในห้องอบไอน้ำ: โทนผิวสีขาว',
     '🧖🏼‍♂' => 'ผู้ชายในห้องอบไอน้ำ: โทนผิวสีขาวเหลือง',
     '🧖🏽‍♂' => 'ผู้ชายในห้องอบไอน้ำ: โทนผิวสีเหลือง',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'ผู้หญิงตีลังกา: โทนผิวสีเหลือง',
     '🤸🏾‍♀' => 'ผู้หญิงตีลังกา: โทนผิวสีแทน',
     '🤸🏿‍♀' => 'ผู้หญิงตีลังกา: โทนผิวสีเข้ม',
+    '🤼🏻‍♀' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีขาว',
+    '🤼🏼‍♀' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีขาวเหลือง',
+    '🤼🏽‍♀' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีเหลือง',
+    '🤼🏾‍♀' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีแทน',
+    '🤼🏿‍♀' => 'ผู้หญิงเล่นมวยปล้ำ: โทนผิวสีเข้ม',
+    '🤼🏻‍♂' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีขาว',
+    '🤼🏼‍♂' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีขาวเหลือง',
+    '🤼🏽‍♂' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีเหลือง',
+    '🤼🏾‍♂' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีแทน',
+    '🤼🏿‍♂' => 'ผู้ชายเล่นมวยปล้ำ: โทนผิวสีเข้ม',
     '🤽🏻‍♂' => 'ผู้ชายเล่นโปโลน้ำ: โทนผิวสีขาว',
     '🤽🏼‍♂' => 'ผู้ชายเล่นโปโลน้ำ: โทนผิวสีขาวเหลือง',
     '🤽🏽‍♂' => 'ผู้ชายเล่นโปโลน้ำ: โทนผิวสีเหลือง',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ผู้หญิง: ผมหยิก',
     '👩‍🦳' => 'ผู้หญิง: ผมขาว',
     '👩‍🦲' => 'ผู้หญิง: หัวล้าน',
-    '🚶‍➡' => 'คนเดิน หันขวา',
-    '🧎‍➡' => 'คนกำลังคุกเข่า หันขวา',
-    '🏃‍➡' => 'คนวิ่ง หันขวา',
+    '🚶‍➡' => 'คนเดิน: หันขวา',
+    '🧎‍➡' => 'คนกำลังคุกเข่า: หันขวา',
+    '🏃‍➡' => 'คนวิ่ง: หันขวา',
     '👨‍👦' => 'ครอบครัว: ผู้ชาย เด็กชาย',
     '👨‍👧' => 'ครอบครัว: ผู้ชาย เด็กหญิง',
     '👩‍👦' => 'ครอบครัว: ผู้หญิง เด็กชาย',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'ผู้หญิงนั่งวีลแชร์ธรรมดา',
     '🏃‍♂' => 'ผู้ชายวิ่ง',
     '🏃‍♀' => 'ผู้หญิงวิ่ง',
+    '🧑‍🩰' => 'นักบัลเล่ต์',
     '👯‍♂' => 'ผู้ชายในชุดหูกระต่าย',
     '👯‍♀' => 'ผู้หญิงในชุดหูกระต่าย',
     '🧖‍♂' => 'ผู้ชายในห้องอบไอน้ำ',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'คนใส่สูทลอยได้: โทนผิวสีเหลือง',
     '🕴🏾' => 'คนใส่สูทลอยได้: โทนผิวสีแทน',
     '🕴🏿' => 'คนใส่สูทลอยได้: โทนผิวสีเข้ม',
+    '👯🏻' => 'คนในชุดหูกระต่าย: โทนผิวสีขาว',
+    '👯🏼' => 'คนในชุดหูกระต่าย: โทนผิวสีขาวเหลือง',
+    '👯🏽' => 'คนในชุดหูกระต่าย: โทนผิวสีเหลือง',
+    '👯🏾' => 'คนในชุดหูกระต่าย: โทนผิวสีแทน',
+    '👯🏿' => 'คนในชุดหูกระต่าย: โทนผิวสีเข้ม',
     '🧖🏻' => 'คนในห้องอบไอน้ำ: โทนผิวสีขาว',
     '🧖🏼' => 'คนในห้องอบไอน้ำ: โทนผิวสีขาวเหลือง',
     '🧖🏽' => 'คนในห้องอบไอน้ำ: โทนผิวสีเหลือง',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'คนตีลังกา: โทนผิวสีเหลือง',
     '🤸🏾' => 'คนตีลังกา: โทนผิวสีแทน',
     '🤸🏿' => 'คนตีลังกา: โทนผิวสีเข้ม',
+    '🤼🏻' => 'นักมวยปล้ำ: โทนผิวสีขาว',
+    '🤼🏼' => 'นักมวยปล้ำ: โทนผิวสีขาวเหลือง',
+    '🤼🏽' => 'นักมวยปล้ำ: โทนผิวสีเหลือง',
+    '🤼🏾' => 'นักมวยปล้ำ: โทนผิวสีแทน',
+    '🤼🏿' => 'นักมวยปล้ำ: โทนผิวสีเข้ม',
     '🤽🏻' => 'นักโปโลน้ำ: โทนผิวสีขาว',
     '🤽🏼' => 'นักโปโลน้ำ: โทนผิวสีขาวเหลือง',
     '🤽🏽' => 'นักโปโลน้ำ: โทนผิวสีเหลือง',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'ธง: จีน',
     '🇨🇴' => 'ธง: โคลอมเบีย',
     '🇨🇵' => 'ธง: เกาะคลิปเปอร์ตัน',
+    '🇨🇶' => 'ธง: ซาร์ก',
     '🇨🇷' => 'ธง: คอสตาริกา',
     '🇨🇺' => 'ธง: คิวบา',
     '🇨🇻' => 'ธง: เคปเวิร์ด',
@@ -2390,13 +2547,6 @@
     '🏽' => 'โทนผิวสีเหลือง',
     '🏾' => 'โทนผิวสีแทน',
     '🏿' => 'โทนผิวสีเข้ม',
-    '🪉' => 'ฮาร์ป',
-    '🪏' => 'พลั่ว',
-    '🪾' => 'ต้นไม้ไร้ใบ',
-    '🫆' => 'ลายนิ้วมือ',
-    '🫜' => 'พืชหัว',
-    '🫟' => 'กระเด็น',
-    '🫩' => 'ถุงใต้ตาบวม',
     '😀' => 'หน้ายิ้มยิงฟัน',
     '😃' => 'หน้ายิ้มอ้าปาก',
     '😄' => 'หน้ายิ้มตายิ้ม และอ้าปาก',
@@ -2450,6 +2600,7 @@
     '😪' => 'ง่วง',
     '🤤' => 'น้ำลายไหล',
     '😴' => 'หลับ',
+    '🫩' => 'ถุงใต้ตาบวม',
     '😷' => 'ผ้าคาดปาก',
     '🤒' => 'อมปรอท',
     '🤕' => 'หัวแตก',
@@ -2476,6 +2627,7 @@
     '😯' => 'หน้าจุ๊ๆ',
     '😲' => 'หน้าประหลาดใจ',
     '😳' => 'อายหน้าแดง',
+    '🫪' => 'หน้าบิดเบี้ยว',
     '🥺' => 'หน้าอ้อนวอน',
     '🥹' => 'หน้ากลั้นน้ำตา',
     '😦' => 'หน้าบึ้งอ้าปาก',
@@ -2547,6 +2699,7 @@
     '💋' => 'รอยจูบ',
     '💯' => 'คะแนนเต็ม',
     '💢' => 'สัญลักษณ์ความโกรธ',
+    '🫯' => 'ก้อนเมฆต่อสู้',
     '💥' => 'การปะทะ',
     '💫' => 'มึนหัว',
     '💦' => 'เหงื่อหยด',
@@ -2670,6 +2823,7 @@
     '🧞' => 'ยักษ์จีนี่',
     '🧟' => 'ซอมบี้',
     '🧌' => 'โทรลล์',
+    '🫈' => 'สิ่งมีชีวิตขนยาว',
     '💆' => 'นวดหน้า',
     '💇' => 'ตัดผม',
     '🚶' => 'คนเดิน',
@@ -2713,6 +2867,7 @@
     '🫂' => 'คนกอดกัน',
     '👪' => 'ครอบครัว',
     '👣' => 'รอยเท้า',
+    '🫆' => 'ลายนิ้วมือ',
     '🦰' => 'ผมแดง',
     '🦱' => 'ผมหยิก',
     '🦳' => 'ผมขาว',
@@ -2812,6 +2967,7 @@
     '🐳' => 'ปลาวาฬพ่นน้ำ',
     '🐋' => 'ปลาวาฬ',
     '🐬' => 'ปลาโลมา',
+    '🫍' => 'วาฬออร์กา',
     '🦭' => 'แมวน้ำ',
     '🐟' => 'ปลา',
     '🐠' => 'ปลาเขตร้อน',
@@ -2821,6 +2977,11 @@
     '🐚' => 'หอย',
     '🪸' => 'ปะการัง',
     '🪼' => 'แมงกะพรุน',
+    '🦀' => 'ปู',
+    '🦞' => 'กุ้งมังกร',
+    '🦐' => 'กุ้ง',
+    '🦑' => 'หมึก',
+    '🦪' => 'หอยนางรม',
     '🐌' => 'หอยทาก',
     '🦋' => 'ผีเสื้อ',
     '🐛' => 'แมลง',
@@ -2865,6 +3026,7 @@
     '🪹' => 'รังนกเปล่า',
     '🪺' => 'รังนกที่มีไข่',
     '🍄' => 'เห็ด',
+    '🪾' => 'ต้นไม้ไร้ใบ',
     '🍇' => 'องุ่น',
     '🍈' => 'เมลอน',
     '🍉' => 'แตงโม',
@@ -2901,6 +3063,7 @@
     '🌰' => 'เกาลัด',
     '🫚' => 'ขิง',
     '🫛' => 'ฝักถั่ว',
+    '🫜' => 'พืชหัว',
     '🍞' => 'ขนมปัง',
     '🥐' => 'ครัวซอง',
     '🥖' => 'ขนมปังฝรั่งเศส',
@@ -2952,11 +3115,6 @@
     '🥟' => 'เกี๊ยว',
     '🥠' => 'คุกกี้เสี่ยงทาย',
     '🥡' => 'อาหารกล่องซื้อกลับบ้าน',
-    '🦀' => 'ปู',
-    '🦞' => 'กุ้งมังกร',
-    '🦐' => 'กุ้ง',
-    '🦑' => 'หมึก',
-    '🦪' => 'หอยนางรม',
     '🍦' => 'ซอฟต์ครีม',
     '🍧' => 'น้ำแข็งไส',
     '🍨' => 'ไอศกรีม',
@@ -3007,6 +3165,7 @@
     '🧭' => 'เข็มทิศ',
     '🏔' => 'ภูเขามีหิมะ',
     '⛰' => 'ภูเขา',
+    '🛘' => 'ดินถล่ม',
     '🌋' => 'ภูเขาไฟ',
     '🗻' => 'ภูเขาไฟฟูจิ',
     '🏕' => 'ตั้งแคมป์',
@@ -3367,16 +3526,18 @@
     '🎧' => 'หูฟัง',
     '📻' => 'วิทยุ',
     '🎷' => 'แซ็กโซโฟน',
+    '🎺' => 'ทรัมเป็ต',
+    '🪊' => 'ทรอมโบน',
     '🪗' => 'แอคคอร์เดียน',
     '🎸' => 'กีต้าร์',
     '🎹' => 'เปียโน',
-    '🎺' => 'ทรัมเป็ต',
     '🎻' => 'ไวโอลิน',
     '🪕' => 'แบนโจ',
     '🥁' => 'กลอง',
     '🪘' => 'กลองยาว',
     '🪇' => 'มาราคัส',
     '🪈' => 'ขลุ่ย',
+    '🪉' => 'ฮาร์ป',
     '📱' => 'โทรศัพท์มือถือ',
     '📲' => 'โทรศัพท์มือถือพร้อมลูกศรชี้',
     '☎' => 'โทรศัพท์',
@@ -3430,8 +3591,9 @@
     '📑' => 'แถบคั่นหน้า',
     '🔖' => 'ที่คั่นหนังสือ',
     '🏷' => 'ป้าย',
-    '💰' => 'ถุงเงิน',
     '🪙' => 'เหรียญ',
+    '💰' => 'ถุงเงิน',
+    '🪎' => 'หีบสมบัติ',
     '💴' => 'ธนบัตรเยน',
     '💵' => 'ธนบัตรดอลลาร์',
     '💶' => 'ธนบัตรยูโร',
@@ -3514,6 +3676,7 @@
     '🧰' => 'กล่องเครื่องมือ',
     '🧲' => 'แม่เหล็ก',
     '🪜' => 'บันไดปีน',
+    '🪏' => 'พลั่ว',
     '⚗' => 'อุปกรณ์กลั่น',
     '🧪' => 'หลอดทดลอง',
     '🧫' => 'จานเพาะเชื้อ',
@@ -3697,6 +3860,7 @@
     '✴' => 'ดาว 8 แฉก',
     '❇' => 'เปล่งประกาย',
     '™' => 'เครื่องหมายการค้า',
+    '🫟' => 'กระเด็น',
     '🔠' => 'อักษรตัวพิมพ์ใหญ่',
     '🔡' => 'อักษรตัวพิมพ์เล็ก',
     '🔢' => 'หมายเลข',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ti.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ti.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ti.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ti.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ምስዓም፦ ሰበይቲ፣ ሰበይቲ፣ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
     '👩🏿‍❤‍💋‍👩🏾' => 'ምስዓም፦ ሰበይቲ፣ ሰበይቲ፣ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '👩🏿‍❤‍💋‍👩🏿' => 'ምስዓም፦ ሰበይቲ፣ ሰበይቲ፣ ጸሊም ቆርበት ቆርበት',
+    '🧑🏻‍🫯‍🧑🏼' => 'ሰባት እናተቓለሱ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🧑🏻‍🫯‍🧑🏽' => 'ሰባት እናተቓለሱ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '🧑🏻‍🫯‍🧑🏾' => 'ሰባት እናተቓለሱ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🧑🏻‍🫯‍🧑🏿' => 'ሰባት እናተቓለሱ፦ ፍኹስ ዝበለ ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '🧑🏼‍🫯‍🧑🏻' => 'ሰባት እናተቓለሱ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '🧑🏼‍🫯‍🧑🏽' => 'ሰባት እናተቓለሱ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ ቆርበት ዘለዎ',
+    '🧑🏼‍🫯‍🧑🏾' => 'ሰባት እናተቓለሱ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🧑🏼‍🫯‍🧑🏿' => 'ሰባት እናተቓለሱ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '🧑🏽‍🫯‍🧑🏻' => 'ሰባት እናተቓለሱ፦ ማእከላይ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '🧑🏽‍🫯‍🧑🏼' => 'ሰባት እናተቓለሱ፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🧑🏽‍🫯‍🧑🏾' => 'ሰባት እናተቓለሱ፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🧑🏽‍🫯‍🧑🏿' => 'ሰባት እናተቓለሱ፦ ማእከላይ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '🧑🏾‍🫯‍🧑🏻' => 'ሰባት እናተቓለሱ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '🧑🏾‍🫯‍🧑🏼' => 'ሰባት እናተቓለሱ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🧑🏾‍🫯‍🧑🏽' => 'ሰባት እናተቓለሱ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '🧑🏾‍🫯‍🧑🏿' => 'ሰባት እናተቓለሱ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '🧑🏿‍🫯‍🧑🏻' => 'ሰባት እናተቓለሱ፦ ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '🧑🏿‍🫯‍🧑🏼' => 'ሰባት እናተቓለሱ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🧑🏿‍🫯‍🧑🏽' => 'ሰባት እናተቓለሱ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '🧑🏿‍🫯‍🧑🏾' => 'ሰባት እናተቓለሱ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '🧑🏻‍❤‍🧑🏼' => 'መጻምድቲ ምስ ልቢ፦ ሰብ፣ ሰብ፣ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🧑🏻‍❤‍🧑🏽' => 'መጻምድቲ ምስ ልቢ፦ ሰብ፣ ሰብ፣ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
     '🧑🏻‍❤‍🧑🏾' => 'መጻምድቲ ምስ ልቢ፦ ሰብ፣ ሰብ፣ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'መጻምድቲ ምስ ልቢ፦ ሰብ፣ ሰብ፣ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🧑🏿‍❤‍🧑🏽' => 'መጻምድቲ ምስ ልቢ፦ ሰብ፣ ሰብ፣ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
     '🧑🏿‍❤‍🧑🏾' => 'መጻምድቲ ምስ ልቢ፦ ሰብ፣ ሰብ፣ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🧑🏻‍🐰‍🧑🏼' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🧑🏻‍🐰‍🧑🏽' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '🧑🏻‍🐰‍🧑🏾' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🧑🏻‍🐰‍🧑🏿' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ፍኹስ ዝበለ ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '🧑🏼‍🐰‍🧑🏻' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '🧑🏼‍🐰‍🧑🏽' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ ቆርበት ዘለዎ',
+    '🧑🏼‍🐰‍🧑🏾' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🧑🏼‍🐰‍🧑🏿' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '🧑🏽‍🐰‍🧑🏻' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '🧑🏽‍🐰‍🧑🏼' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🧑🏽‍🐰‍🧑🏾' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🧑🏽‍🐰‍🧑🏿' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '🧑🏾‍🐰‍🧑🏻' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '🧑🏾‍🐰‍🧑🏼' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🧑🏾‍🐰‍🧑🏽' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '🧑🏾‍🐰‍🧑🏿' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '🧑🏿‍🐰‍🧑🏻' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '🧑🏿‍🐰‍🧑🏼' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🧑🏿‍🐰‍🧑🏽' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '🧑🏿‍🐰‍🧑🏾' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👨🏻‍🫯‍👨🏼' => 'ደቂ ተባዕትዮ ቅልስ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👨🏻‍🫯‍👨🏽' => 'ደቂ ተባዕትዮ ቅልስ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👨🏻‍🫯‍👨🏾' => 'ደቂ ተባዕትዮ ቅልስ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👨🏻‍🫯‍👨🏿' => 'ደቂ ተባዕትዮ ቅልስ፦ ፍኹስ ዝበለ ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '👨🏼‍🫯‍👨🏻' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '👨🏼‍🫯‍👨🏽' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ ቆርበት ዘለዎ',
+    '👨🏼‍🫯‍👨🏾' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👨🏼‍🫯‍👨🏿' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '👨🏽‍🫯‍👨🏻' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '👨🏽‍🫯‍👨🏼' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👨🏽‍🫯‍👨🏾' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👨🏽‍🫯‍👨🏿' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '👨🏾‍🫯‍👨🏻' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '👨🏾‍🫯‍👨🏼' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👨🏾‍🫯‍👨🏽' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👨🏾‍🫯‍👨🏿' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '👨🏿‍🫯‍👨🏻' => 'ደቂ ተባዕትዮ ቅልስ፦ ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '👨🏿‍🫯‍👨🏼' => 'ደቂ ተባዕትዮ ቅልስ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👨🏿‍🫯‍👨🏽' => 'ደቂ ተባዕትዮ ቅልስ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👨🏿‍🫯‍👨🏾' => 'ደቂ ተባዕትዮ ቅልስ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '👨🏻‍❤‍👨🏻' => 'መጻምድቲ ምስ ልቢ፦ ሰብኣይ፣ ሰብኣይ፣ ፍኹስ ዝበለ ቆርበት',
     '👨🏻‍❤‍👨🏼' => 'መጻምድቲ ምስ ልቢ፦ ሰብኣይ፣ ሰብኣይ፣ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '👨🏻‍❤‍👨🏽' => 'መጻምድቲ ምስ ልቢ፦ ሰብኣይ፣ ሰብኣይ፣ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'መጻምድቲ ምስ ልቢ፦ ሰብኣይ፣ ሰብኣይ፣ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
     '👨🏿‍❤‍👨🏾' => 'መጻምድቲ ምስ ልቢ፦ ሰብኣይ፣ ሰብኣይ፣ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '👨🏿‍❤‍👨🏿' => 'መጻምድቲ ምስ ልቢ፦ ሰብኣይ፣ ሰብኣይ፣ ጸሊም ቆርበት ቆርበት',
+    '👨🏻‍🐰‍👨🏼' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👨🏻‍🐰‍👨🏽' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👨🏻‍🐰‍👨🏾' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👨🏻‍🐰‍👨🏿' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ፍኹስ ዝበለ ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '👨🏼‍🐰‍👨🏻' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '👨🏼‍🐰‍👨🏽' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ ቆርበት ዘለዎ',
+    '👨🏼‍🐰‍👨🏾' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👨🏼‍🐰‍👨🏿' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '👨🏽‍🐰‍👨🏻' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '👨🏽‍🐰‍👨🏼' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👨🏽‍🐰‍👨🏾' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👨🏽‍🐰‍👨🏿' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '👨🏾‍🐰‍👨🏻' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '👨🏾‍🐰‍👨🏼' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👨🏾‍🐰‍👨🏽' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👨🏾‍🐰‍👨🏿' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '👨🏿‍🐰‍👨🏻' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '👨🏿‍🐰‍👨🏼' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👨🏿‍🐰‍👨🏽' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👨🏿‍🐰‍👨🏾' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👩🏻‍🫯‍👩🏼' => 'ደቂ ኣንስትዮ ቅልስ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👩🏻‍🫯‍👩🏽' => 'ደቂ ኣንስትዮ ቅልስ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👩🏻‍🫯‍👩🏾' => 'ደቂ ኣንስትዮ ቅልስ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👩🏻‍🫯‍👩🏿' => 'ደቂ ኣንስትዮ ቅልስ፦ ፍኹስ ዝበለ ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '👩🏼‍🫯‍👩🏻' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '👩🏼‍🫯‍👩🏽' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ ቆርበት ዘለዎ',
+    '👩🏼‍🫯‍👩🏾' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👩🏼‍🫯‍👩🏿' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '👩🏽‍🫯‍👩🏻' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '👩🏽‍🫯‍👩🏼' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👩🏽‍🫯‍👩🏾' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👩🏽‍🫯‍👩🏿' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '👩🏾‍🫯‍👩🏻' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '👩🏾‍🫯‍👩🏼' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👩🏾‍🫯‍👩🏽' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👩🏾‍🫯‍👩🏿' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '👩🏿‍🫯‍👩🏻' => 'ደቂ ኣንስትዮ ቅልስ፦ ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '👩🏿‍🫯‍👩🏼' => 'ደቂ ኣንስትዮ ቅልስ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👩🏿‍🫯‍👩🏽' => 'ደቂ ኣንስትዮ ቅልስ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👩🏿‍🫯‍👩🏾' => 'ደቂ ኣንስትዮ ቅልስ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '👩🏻‍❤‍👨🏻' => 'መጻምድቲ ምስ ልቢ፦ ሰበይቲ፣ ሰብኣይ፣ ፍኹስ ዝበለ ቆርበት',
     '👩🏻‍❤‍👨🏼' => 'መጻምድቲ ምስ ልቢ፦ ሰበይቲ፣ ሰብኣይ፣ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '👩🏻‍❤‍👨🏽' => 'መጻምድቲ ምስ ልቢ፦ ሰበይቲ፣ ሰብኣይ፣ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'መጻምድቲ ምስ ልቢ፦ ሰበይቲ፣ ሰበይቲ፣ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
     '👩🏿‍❤‍👩🏾' => 'መጻምድቲ ምስ ልቢ፦ ሰበይቲ፣ ሰበይቲ፣ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '👩🏿‍❤‍👩🏿' => 'መጻምድቲ ምስ ልቢ፦ ሰበይቲ፣ ሰበይቲ፣ ጸሊም ቆርበት ቆርበት',
+    '👩🏻‍🐰‍👩🏼' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👩🏻‍🐰‍👩🏽' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👩🏻‍🐰‍👩🏾' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👩🏻‍🐰‍👩🏿' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ፍኹስ ዝበለ ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '👩🏼‍🐰‍👩🏻' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '👩🏼‍🐰‍👩🏽' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ ቆርበት ዘለዎ',
+    '👩🏼‍🐰‍👩🏾' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👩🏼‍🐰‍👩🏿' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '👩🏽‍🐰‍👩🏻' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ ቆርበት ዘለዎ፣ ፍኹስ ዝበለ ቆርበት',
+    '👩🏽‍🐰‍👩🏼' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👩🏽‍🐰‍👩🏾' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ ቆርበት ዘለዎ፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👩🏽‍🐰‍👩🏿' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ ቆርበት ዘለዎ፣ ጸሊም ቆርበት ቆርበት',
+    '👩🏾‍🐰‍👩🏻' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '👩🏾‍🐰‍👩🏼' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👩🏾‍🐰‍👩🏽' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👩🏾‍🐰‍👩🏿' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ጸሊም ቆርበት ቆርበት',
+    '👩🏿‍🐰‍👩🏻' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ጸሊም ቆርበት ቆርበት፣ ፍኹስ ዝበለ ቆርበት',
+    '👩🏿‍🐰‍👩🏼' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👩🏿‍🐰‍👩🏽' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
+    '👩🏿‍🐰‍👩🏾' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '🧑🏻‍🤝‍🧑🏻' => 'ሰባት ኢድ ንኢድ ተተሓሒዞም፦ ፍኹስ ዝበለ ቆርበት',
     '🧑🏻‍🤝‍🧑🏼' => 'ሰባት ኢድ ንኢድ ተተሓሒዞም፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🧑🏻‍🤝‍🧑🏽' => 'ሰባት ኢድ ንኢድ ተተሓሒዞም፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'ስድራ፦ ሰበይቲ፣ ሰበይቲ፣ ወዲ፣ ወዲ',
     '👩‍👩‍👧‍👧' => 'ስድራ፦ ሰበይቲ፣ ሰበይቲ፣ ጓል፣ ጓል',
     '🧑‍🧑‍🧒‍🧒' => 'ስድራቤት፡ ዓቢ፡ ዓቢ፡ ቆልዓ፡ ቆልዓ',
-    '🚶🏻‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት ናብ የማን ዝዘረ',
-    '🚶🏼‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት ናብ የማን ዝዘረ',
-    '🚶🏽‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት ናብ የማን ዝዘረ',
-    '🚶🏾‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት ናብ የማን ዝዘረ',
-    '🚶🏿‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት ናብ የማን ዝዘረ',
-    '🚶🏻‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🚶🏼‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🚶🏽‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🚶🏾‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🚶🏿‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🧎🏻‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ ናብ የማን ዝዘረ',
-    '🧎🏼‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ ናብ የማን ዝዘረ',
-    '🧎🏽‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ ናብ የማን ዝዘረ',
-    '🧎🏾‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ ናብ የማን ዝዘረ',
-    '🧎🏿‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ ናብ የማን ዝዘረ',
-    '🧎🏻‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🧎🏼‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🧎🏽‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🧎🏾‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🧎🏿‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🧑🏻‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ ናብ የማን ዝዘረ',
-    '🧑🏼‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ ናብ የማን ዝዘረ',
-    '🧑🏽‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ ናብ የማን ዝዘረ',
-    '🧑🏾‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ ናብ የማን ዝዘረ',
-    '🧑🏿‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ ናብ የማን ዝዘረ',
-    '👨🏻‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ ናብ የማን ዝዘረ',
-    '👨🏼‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ ናብ የማን ዝዘረ',
-    '👨🏽‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ ናብ የማን ዝዘረ',
-    '👨🏾‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ ናብ የማን ዝዘረ',
-    '👨🏿‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ ናብ የማን ዝዘረ',
-    '👩🏻‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ ናብ የማን ዝዘረ',
-    '👩🏼‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ ናብ የማን ዝዘረ',
-    '👩🏽‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ ናብ የማን ዝዘረ',
-    '👩🏾‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ ናብ የማን ዝዘረ',
-    '👩🏿‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ ናብ የማን ዝዘረ',
-    '🧑🏻‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ ናብ የማን ዝዘረ',
-    '🧑🏼‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ ናብ የማን ዝዘረ',
-    '🧑🏽‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ ናብ የማን ዝዘረ',
-    '🧑🏾‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ ናብ የማን ዝዘረ',
-    '🧑🏿‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ ናብ የማን ዝዘረ',
-    '👨🏻‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ ናብ የማን ዝዘረ',
-    '👨🏼‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ ናብ የማን ዝዘረ',
-    '👨🏽‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ ናብ የማን ዝዘረ',
-    '👨🏾‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ ናብ የማን ዝዘረ',
-    '👨🏿‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ ናብ የማን ዝዘረ',
-    '👩🏻‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👩🏼‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👩🏽‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👩🏾‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👩🏿‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '🧑🏻‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '🧑🏼‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '🧑🏽‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '🧑🏾‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '🧑🏿‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👨🏻‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👨🏼‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👨🏽‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👨🏾‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👨🏿‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👩🏻‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👩🏼‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👩🏽‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👩🏾‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👩🏿‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '🏃🏻‍♀‍➡' => 'ሰበይቲ ትጎዪ ናብ የማን ዝዘረ',
-    '🏃🏼‍♀‍➡' => 'ሰበይቲ ትጎዪ ናብ የማን ዝዘረ',
-    '🏃🏽‍♀‍➡' => 'ሰበይቲ ትጎዪ ናብ የማን ዝዘረ',
-    '🏃🏾‍♀‍➡' => 'ሰበይቲ ትጎዪ ናብ የማን ዝዘረ',
-    '🏃🏿‍♀‍➡' => 'ሰበይቲ ትጎዪ ናብ የማን ዝዘረ',
-    '🏃🏻‍♂‍➡' => 'ሰብኣይ ይጎዪ ናብ የማን ዝዘረ',
-    '🏃🏼‍♂‍➡' => 'ሰብኣይ ይጎዪ ናብ የማን ዝዘረ',
-    '🏃🏽‍♂‍➡' => 'ሰብኣይ ይጎዪ ናብ የማን ዝዘረ',
-    '🏃🏾‍♂‍➡' => 'ሰብኣይ ይጎዪ ናብ የማን ዝዘረ',
-    '🏃🏿‍♂‍➡' => 'ሰብኣይ ይጎዪ ናብ የማን ዝዘረ',
+    '🚶🏻‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🚶🏼‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🚶🏽‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🚶🏾‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🚶🏿‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🚶🏻‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🚶🏼‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🚶🏽‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🚶🏾‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🚶🏿‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧎🏻‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧎🏼‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧎🏽‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧎🏾‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧎🏿‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧎🏻‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧎🏼‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧎🏽‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧎🏾‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧎🏿‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧑🏻‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧑🏼‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧑🏽‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧑🏾‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧑🏿‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👨🏻‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '👨🏼‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👨🏽‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👨🏾‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👨🏿‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👩🏻‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '👩🏼‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👩🏽‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👩🏾‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👩🏿‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧑🏻‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧑🏼‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧑🏽‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧑🏾‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧑🏿‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👨🏻‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '👨🏼‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👨🏽‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👨🏾‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👨🏿‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👩🏻‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '👩🏼‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👩🏽‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👩🏾‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👩🏿‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧑🏻‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧑🏼‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧑🏽‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧑🏾‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧑🏿‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👨🏻‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '👨🏼‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👨🏽‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👨🏾‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👨🏿‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👩🏻‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '👩🏼‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👩🏽‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '👩🏾‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👩🏿‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🏃🏻‍♀‍➡' => 'ሰበይቲ ትጎዪ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🏃🏼‍♀‍➡' => 'ሰበይቲ ትጎዪ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🏃🏽‍♀‍➡' => 'ሰበይቲ ትጎዪ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🏃🏾‍♀‍➡' => 'ሰበይቲ ትጎዪ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🏃🏿‍♀‍➡' => 'ሰበይቲ ትጎዪ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🏃🏻‍♂‍➡' => 'ሰብኣይ ይጎዪ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🏃🏼‍♂‍➡' => 'ሰብኣይ ይጎዪ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🏃🏽‍♂‍➡' => 'ሰብኣይ ይጎዪ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🏃🏾‍♂‍➡' => 'ሰብኣይ ይጎዪ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🏃🏿‍♂‍➡' => 'ሰብኣይ ይጎዪ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
     '🫱🏻‍🫲🏼' => 'ምጭብባጥ ኢድ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🫱🏻‍🫲🏽' => 'ምጭብባጥ ኢድ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
     '🫱🏻‍🫲🏾' => 'ምጭብባጥ ኢድ፦ ፍኹስ ዝበለ ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'ምጭብባጥ ኢድ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🫱🏿‍🫲🏽' => 'ምጭብባጥ ኢድ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ ቆርበት ዘለዎ',
     '🫱🏿‍🫲🏾' => 'ምጭብባጥ ኢድ፦ ጸሊም ቆርበት ቆርበት፣ ማእከላይ-ጸሊም ቆርበት ቆርበት',
-    '🚶‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት ናብ የማን ዝዘረ',
-    '🚶‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🧎‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ ናብ የማን ዝዘረ',
-    '🧎‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🧑‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ ናብ የማን ዝዘረ',
-    '👨‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ ናብ የማን ዝዘረ',
-    '👩‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ ናብ የማን ዝዘረ',
-    '🧑‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ ናብ የማን ዝዘረ',
-    '👨‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ ናብ የማን ዝዘረ',
-    '👩‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '🧑‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👨‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '👩‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን ናብ የማን ዝዘረ',
-    '🏃‍♀‍➡' => 'ሰበይቲ ትጎዪ ናብ የማን ዝዘረ',
-    '🏃‍♂‍➡' => 'ሰብኣይ ይጎዪ ናብ የማን ዝዘረ',
+    '🚶‍♀‍➡' => 'ሰበይቲ እናተጓዕዘት፦ ናብ የማን ዝዘረ',
+    '🚶‍♂‍➡' => 'ሰብኣይ እናተጓዕዘ፦ ናብ የማን ዝዘረ',
+    '🧎‍♀‍➡' => 'ሰበይቲ ተንበርኪኻ፦ ናብ የማን ዝዘረ',
+    '🧎‍♂‍➡' => 'ሰብኣይ ተንበርኪኹ፦ ናብ የማን ዝዘረ',
+    '🧑‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብ፦ ናብ የማን ዝዘረ',
+    '👨‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዎ ሰብኣይ፦ ናብ የማን ዝዘረ',
+    '👩‍🦯‍➡' => 'ጻዕዳ በትሪ ዘለዋ ሰበይቲ፦ ናብ የማን ዝዘረ',
+    '🧑‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝነብር ሰብ፦ ናብ የማን ዝዘረ',
+    '👨‍🦼‍➡' => 'ብሞተር ዝሰርሕ ዓረብያ ስንኩላን ዝኸይድ ሰብኣይ፦ ናብ የማን ዝዘረ',
+    '👩‍🦼‍➡' => 'ጓል ኣንስተይቲ ኣብ ሞተር ዝሰርሕ ዓረብያ ስንኩላን፦ ናብ የማን ዝዘረ',
+    '🧑‍🦽‍➡' => 'ሰብ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ናብ የማን ዝዘረ',
+    '👨‍🦽‍➡' => 'ሰብኣይ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ናብ የማን ዝዘረ',
+    '👩‍🦽‍➡' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን፦ ናብ የማን ዝዘረ',
+    '🏃‍♀‍➡' => 'ሰበይቲ ትጎዪ፦ ናብ የማን ዝዘረ',
+    '🏃‍♂‍➡' => 'ሰብኣይ ይጎዪ፦ ናብ የማን ዝዘረ',
     '👩‍❤‍👨' => 'መጻምድቲ ምስ ልቢ፦ ሰበይቲ፣ ሰብኣይ',
     '👨‍❤‍👨' => 'መጻምድቲ ምስ ልቢ፦ ሰብኣይ፣ ሰብኣይ',
     '👩‍❤‍👩' => 'መጻምድቲ ምስ ልቢ፦ ሰበይቲ፣ ሰበይቲ',
@@ -437,6 +557,11 @@
     '🧑🏽‍🦲' => 'ሰብ፦ ማእከላይ ቆርበት ዘለዎ፣ በራሕ',
     '🧑🏾‍🦲' => 'ሰብ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ በራሕ',
     '🧑🏿‍🦲' => 'ሰብ፦ ጸሊም ቆርበት ቆርበት፣ በራሕ',
+    '🧑🏻‍🩰' => 'ባሌ ተወዛዋዚ፦ ፍኹስ ዝበለ ቆርበት',
+    '🧑🏼‍🩰' => 'ባሌ ተወዛዋዚ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🧑🏽‍🩰' => 'ባሌ ተወዛዋዚ፦ ማእከላይ ቆርበት ዘለዎ',
+    '🧑🏾‍🩰' => 'ባሌ ተወዛዋዚ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🧑🏿‍🩰' => 'ባሌ ተወዛዋዚ፦ ጸሊም ቆርበት ቆርበት',
     '🧔🏻‍♂' => 'ሰብኣይ፡ ጭሕሚ፦ ፍኹስ ዝበለ ቆርበት',
     '🧔🏼‍♂' => 'ሰብኣይ፡ ጭሕሚ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🧔🏽‍♂' => 'ሰብኣይ፡ ጭሕሚ፦ ማእከላይ ቆርበት ዘለዎ',
@@ -1027,11 +1152,11 @@
     '🚶🏽‍♀' => 'ሰበይቲ እናተጓዕዘት፦ ማእከላይ ቆርበት ዘለዎ',
     '🚶🏾‍♀' => 'ሰበይቲ እናተጓዕዘት፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '🚶🏿‍♀' => 'ሰበይቲ እናተጓዕዘት፦ ጸሊም ቆርበት ቆርበት',
-    '🚶🏻‍➡' => 'ሰብ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🚶🏼‍➡' => 'ሰብ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🚶🏽‍➡' => 'ሰብ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🚶🏾‍➡' => 'ሰብ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🚶🏿‍➡' => 'ሰብ እናተጓዕዘ ናብ የማን ዝዘረ',
+    '🚶🏻‍➡' => 'ሰብ እናተጓዕዘ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🚶🏼‍➡' => 'ሰብ እናተጓዕዘ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🚶🏽‍➡' => 'ሰብ እናተጓዕዘ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🚶🏾‍➡' => 'ሰብ እናተጓዕዘ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🚶🏿‍➡' => 'ሰብ እናተጓዕዘ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
     '🧍🏻‍♂' => 'ጠጠው ዝበለ ስብአይ፦ ፍኹስ ዝበለ ቆርበት',
     '🧍🏼‍♂' => 'ጠጠው ዝበለ ስብአይ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🧍🏽‍♂' => 'ጠጠው ዝበለ ስብአይ፦ ማእከላይ ቆርበት ዘለዎ',
@@ -1052,11 +1177,11 @@
     '🧎🏽‍♀' => 'ሰበይቲ ተንበርኪኻ፦ ማእከላይ ቆርበት ዘለዎ',
     '🧎🏾‍♀' => 'ሰበይቲ ተንበርኪኻ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '🧎🏿‍♀' => 'ሰበይቲ ተንበርኪኻ፦ ጸሊም ቆርበት ቆርበት',
-    '🧎🏻‍➡' => 'ሰብ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🧎🏼‍➡' => 'ሰብ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🧎🏽‍➡' => 'ሰብ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🧎🏾‍➡' => 'ሰብ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🧎🏿‍➡' => 'ሰብ ተንበርኪኹ ናብ የማን ዝዘረ',
+    '🧎🏻‍➡' => 'ሰብ ተንበርኪኹ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧎🏼‍➡' => 'ሰብ ተንበርኪኹ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧎🏽‍➡' => 'ሰብ ተንበርኪኹ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🧎🏾‍➡' => 'ሰብ ተንበርኪኹ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🧎🏿‍➡' => 'ሰብ ተንበርኪኹ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
     '🧑🏻‍🦯' => 'ጻዕዳ በትሪ ዘለዎ ሰብ፦ ፍኹስ ዝበለ ቆርበት',
     '🧑🏼‍🦯' => 'ጻዕዳ በትሪ ዘለዎ ሰብ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🧑🏽‍🦯' => 'ጻዕዳ በትሪ ዘለዎ ሰብ፦ ማእከላይ ቆርበት ዘለዎ',
@@ -1112,11 +1237,21 @@
     '🏃🏽‍♀' => 'ሰበይቲ ትጎዪ፦ ማእከላይ ቆርበት ዘለዎ',
     '🏃🏾‍♀' => 'ሰበይቲ ትጎዪ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '🏃🏿‍♀' => 'ሰበይቲ ትጎዪ፦ ጸሊም ቆርበት ቆርበት',
-    '🏃🏻‍➡' => 'ሰብ ዝጎዪ ናብ የማን ዝዘረ',
-    '🏃🏼‍➡' => 'ሰብ ዝጎዪ ናብ የማን ዝዘረ',
-    '🏃🏽‍➡' => 'ሰብ ዝጎዪ ናብ የማን ዝዘረ',
-    '🏃🏾‍➡' => 'ሰብ ዝጎዪ ናብ የማን ዝዘረ',
-    '🏃🏿‍➡' => 'ሰብ ዝጎዪ ናብ የማን ዝዘረ',
+    '🏃🏻‍➡' => 'ሰብ ዝጎዪ፦ ፍኹስ ዝበለ ቆርበት፣ ናብ የማን ዝዘረ',
+    '🏃🏼‍➡' => 'ሰብ ዝጎዪ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🏃🏽‍➡' => 'ሰብ ዝጎዪ፦ ማእከላይ ቆርበት ዘለዎ፣ ናብ የማን ዝዘረ',
+    '🏃🏾‍➡' => 'ሰብ ዝጎዪ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '🏃🏿‍➡' => 'ሰብ ዝጎዪ፦ ጸሊም ቆርበት ቆርበት፣ ናብ የማን ዝዘረ',
+    '👯🏻‍♀' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ፍኹስ ዝበለ ቆርበት',
+    '👯🏼‍♀' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👯🏽‍♀' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ ቆርበት ዘለዎ',
+    '👯🏾‍♀' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👯🏿‍♀' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ፦ ጸሊም ቆርበት ቆርበት',
+    '👯🏻‍♂' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ፍኹስ ዝበለ ቆርበት',
+    '👯🏼‍♂' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👯🏽‍♂' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ ቆርበት ዘለዎ',
+    '👯🏾‍♂' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👯🏿‍♂' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ፦ ጸሊም ቆርበት ቆርበት',
     '🧖🏻‍♂' => 'ሰብኣይ ኣብ ስቲም ዝመልአ ክፍሊ፦ ፍኹስ ዝበለ ቆርበት',
     '🧖🏼‍♂' => 'ሰብኣይ ኣብ ስቲም ዝመልአ ክፍሊ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🧖🏽‍♂' => 'ሰብኣይ ኣብ ስቲም ዝመልአ ክፍሊ፦ ማእከላይ ቆርበት ዘለዎ',
@@ -1227,6 +1362,16 @@
     '🤸🏽‍♀' => 'ሰበይቲ እንዳተገልበጠት፦ ማእከላይ ቆርበት ዘለዎ',
     '🤸🏾‍♀' => 'ሰበይቲ እንዳተገልበጠት፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '🤸🏿‍♀' => 'ሰበይቲ እንዳተገልበጠት፦ ጸሊም ቆርበት ቆርበት',
+    '🤼🏻‍♀' => 'ደቂ ኣንስትዮ ቅልስ፦ ፍኹስ ዝበለ ቆርበት',
+    '🤼🏼‍♀' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🤼🏽‍♀' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ ቆርበት ዘለዎ',
+    '🤼🏾‍♀' => 'ደቂ ኣንስትዮ ቅልስ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🤼🏿‍♀' => 'ደቂ ኣንስትዮ ቅልስ፦ ጸሊም ቆርበት ቆርበት',
+    '🤼🏻‍♂' => 'ደቂ ተባዕትዮ ቅልስ፦ ፍኹስ ዝበለ ቆርበት',
+    '🤼🏼‍♂' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🤼🏽‍♂' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ ቆርበት ዘለዎ',
+    '🤼🏾‍♂' => 'ደቂ ተባዕትዮ ቅልስ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🤼🏿‍♂' => 'ደቂ ተባዕትዮ ቅልስ፦ ጸሊም ቆርበት ቆርበት',
     '🤽🏻‍♂' => 'ሰብኣይ ዋተር ፖሎ እናተጻወተ፦ ፍኹስ ዝበለ ቆርበት',
     '🤽🏼‍♂' => 'ሰብኣይ ዋተር ፖሎ እናተጻወተ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🤽🏽‍♂' => 'ሰብኣይ ዋተር ፖሎ እናተጻወተ፦ ማእከላይ ቆርበት ዘለዎ',
@@ -1279,9 +1424,9 @@
     '👩‍🦱' => 'ሰበይቲ፦ ቁርጽራጽ ጸጉሪ',
     '👩‍🦳' => 'ሰበይቲ፦ ጻዕዳ ጸጉሪ',
     '👩‍🦲' => 'ሰበይቲ፦ በራሕ',
-    '🚶‍➡' => 'ሰብ እናተጓዕዘ ናብ የማን ዝዘረ',
-    '🧎‍➡' => 'ሰብ ተንበርኪኹ ናብ የማን ዝዘረ',
-    '🏃‍➡' => 'ሰብ ዝጎዪ ናብ የማን ዝዘረ',
+    '🚶‍➡' => 'ሰብ እናተጓዕዘ፦ ናብ የማን ዝዘረ',
+    '🧎‍➡' => 'ሰብ ተንበርኪኹ፦ ናብ የማን ዝዘረ',
+    '🏃‍➡' => 'ሰብ ዝጎዪ፦ ናብ የማን ዝዘረ',
     '👨‍👦' => 'ስድራ፦ ሰብኣይ፣ ወዲ',
     '👨‍👧' => 'ስድራ፦ ሰብኣይ፣ ጓል',
     '👩‍👦' => 'ስድራ፦ ሰበይቲ፣ ወዲ',
@@ -1422,6 +1567,7 @@
     '👩‍🦽' => 'ጓል ኣንስተይቲ ኣብ ማንዋል ዓረብያ ስንኩላን',
     '🏃‍♂' => 'ሰብኣይ ይጎዪ',
     '🏃‍♀' => 'ሰበይቲ ትጎዪ',
+    '🧑‍🩰' => 'ባሌ ተወዛዋዚ',
     '👯‍♂' => 'እዝኒ ባኒ ዘለዎም ደቂ ተባዕትዮ',
     '👯‍♀' => 'ደቂ ኣንስትዮ ምስ እዝኒ ባኒ',
     '🧖‍♂' => 'ሰብኣይ ኣብ ስቲም ዝመልአ ክፍሊ',
@@ -2003,6 +2149,11 @@
     '🕴🏽' => 'ኮስትሞ ዝለበሰ ሰብ ምልዓል፦ ማእከላይ ቆርበት ዘለዎ',
     '🕴🏾' => 'ኮስትሞ ዝለበሰ ሰብ ምልዓል፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '🕴🏿' => 'ኮስትሞ ዝለበሰ ሰብ ምልዓል፦ ጸሊም ቆርበት ቆርበት',
+    '👯🏻' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ፍኹስ ዝበለ ቆርበት',
+    '👯🏼' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '👯🏽' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ ቆርበት ዘለዎ',
+    '👯🏾' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '👯🏿' => 'እዝኒ ባኒ ዘለዎም ሰባት፦ ጸሊም ቆርበት ቆርበት',
     '🧖🏻' => 'ሰብ ኣብ ስቲም ዝመልአ ክፍሊ፦ ፍኹስ ዝበለ ቆርበት',
     '🧖🏼' => 'ሰብ ኣብ ስቲም ዝመልአ ክፍሊ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🧖🏽' => 'ሰብ ኣብ ስቲም ዝመልአ ክፍሊ፦ ማእከላይ ቆርበት ዘለዎ',
@@ -2068,6 +2219,11 @@
     '🤸🏽' => 'ሰብ ዓረብያ ምዝዋር፦ ማእከላይ ቆርበት ዘለዎ',
     '🤸🏾' => 'ሰብ ዓረብያ ምዝዋር፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '🤸🏿' => 'ሰብ ዓረብያ ምዝዋር፦ ጸሊም ቆርበት ቆርበት',
+    '🤼🏻' => 'ሰባት እናተቓለሱ፦ ፍኹስ ዝበለ ቆርበት',
+    '🤼🏼' => 'ሰባት እናተቓለሱ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
+    '🤼🏽' => 'ሰባት እናተቓለሱ፦ ማእከላይ ቆርበት ዘለዎ',
+    '🤼🏾' => 'ሰባት እናተቓለሱ፦ ማእከላይ-ጸሊም ቆርበት ቆርበት',
+    '🤼🏿' => 'ሰባት እናተቓለሱ፦ ጸሊም ቆርበት ቆርበት',
     '🤽🏻' => 'ዋተር ፖሎ ዝጻወት ሰብ፦ ፍኹስ ዝበለ ቆርበት',
     '🤽🏼' => 'ዋተር ፖሎ ዝጻወት ሰብ፦ ማእከላይ-ፈኲስ ቆርበት ዘለዎ',
     '🤽🏽' => 'ዋተር ፖሎ ዝጻወት ሰብ፦ ማእከላይ ቆርበት ዘለዎ',
@@ -2388,13 +2544,6 @@
     '🏽' => 'ማእከላይ ቆርበት ዘለዎ',
     '🏾' => 'ማእከላይ-ጸሊም ቆርበት ቆርበት',
     '🏿' => 'ጸሊም ቆርበት ቆርበት',
-    '🪉' => 'በገና',
-    '🪏' => 'አካፋ',
-    '🪾' => 'ቆጽሊ ዘይብሉ ገረብ',
-    '🫆' => 'ኣሰር ኣጻብዕቲ',
-    '🫜' => 'ሱር ኣሕምልቲ',
-    '🫟' => 'ረሳሕ ፈሳሲ',
-    '🫩' => 'ኣብ ትሕቲ ዓይኒ ቦርሳ ዘለዎ ገጽ',
     '😀' => 'ፍሽኽታ ዝመልኦ ገጽ',
     '😃' => 'ፍሽኽ ዝበለ ገጽ ምስ ዓበይቲ ኣዒንቲ',
     '😄' => 'ፍሽኽ ዝበለ ገጽ ምስ ፍሽኽ ዝበሉ ኣዒንቲ',
@@ -2448,6 +2597,7 @@
     '😪' => 'ዝታኸስ ገጽ',
     '🤤' => 'ዘለዚ ገጽ',
     '😴' => 'ዝድቅስ ገጽ',
+    '🫩' => 'ኣብ ትሕቲ ዓይኒ ቦርሳ ዘለዎ ገጽ',
     '😷' => 'ማስክ ዘለዎ ገጽ',
     '🤒' => 'ቴርሞሜትር ዘለዎ ገጽ',
     '🤕' => 'ፋሻ ዘለዎ ገጽ',
@@ -2474,6 +2624,7 @@
     '😯' => 'ዝተገረመ ገጽ',
     '😲' => 'ኣግራሞት ዝመልኦ ገጽ',
     '😳' => 'ብር ዝበለ ገጽ',
+    '🫪' => 'ዝተዛብዐ ገጽ',
     '🥺' => 'ዝልምን ገጽ',
     '🥹' => 'ንብዓቱ ዝቆጻጸር ዘሎ ገጽ',
     '😦' => 'ዝተጨምገገ ገጽ ምስ ክፉት ኣፍ',
@@ -2545,6 +2696,7 @@
     '💋' => 'ምልክት ምስዓም',
     '💯' => 'ሚእቲ ነጥብታት',
     '💢' => 'ምልክት ሕርቃን',
+    '🫯' => 'ቃልሲ ደበና',
     '💥' => 'ምግጫው',
     '💫' => 'ጽርውርው',
     '💦' => 'ነጠብታ ረሃጽ',
@@ -2668,6 +2820,7 @@
     '🧞' => 'ጂኒ',
     '🧟' => 'ዞምቢ',
     '🧌' => 'ትሮል',
+    '🫈' => 'ጸጉሪ ዘለዎ ፍጡር',
     '💆' => 'ሰብ ማሳጅ ዝገብር',
     '💇' => 'ሰብ ጸጉሪ ርእሲ ምቑራጽ',
     '🚶' => 'ሰብ እናተጓዕዘ',
@@ -2711,6 +2864,7 @@
     '🫂' => 'ሰባት እናተሓቛቖፉ',
     '👪' => 'ስድራ',
     '👣' => 'ኣሰር እግሪ',
+    '🫆' => 'ኣሰር ኣጻብዕቲ',
     '🦰' => 'ቀይሕ ጸጉሪ',
     '🦱' => 'ቁርጽራጽ ጸጉሪ',
     '🦳' => 'ጻዕዳ ጸጉሪ',
@@ -2810,6 +2964,7 @@
     '🐳' => 'ስፍሕ ዝበለ ዓሳ ነባሪ',
     '🐋' => 'ዓሳ ነባሪ',
     '🐬' => 'ኣቡ ሰላማ',
+    '🫍' => 'ኦርካ',
     '🦭' => 'ፎካ',
     '🐟' => 'ዓሳ',
     '🐠' => 'ትሮፒካዊ ዓሳ',
@@ -2819,6 +2974,11 @@
     '🐚' => 'ዛዕጎል ባሕሪ',
     '🪸' => 'መርጀን',
     '🪼' => 'ጀሊፊሽ',
+    '🦀' => 'ሻርጣን',
+    '🦞' => 'ሎብስተር',
+    '🦐' => 'ጋምበሪ',
+    '🦑' => 'ኣቡ ቐለም',
+    '🦪' => 'ኦይስተር',
     '🐌' => 'ኣረነ',
     '🦋' => 'ጽምብላሊዕ',
     '🐛' => 'ትዃን',
@@ -2863,6 +3023,7 @@
     '🪹' => 'ባዶ ሰፈር',
     '🪺' => 'ምስ እንቋቑሖ ሰፈር ምግባር',
     '🍄' => 'ቃንጥሻ',
+    '🪾' => 'ቆጽሊ ዘይብሉ ገረብ',
     '🍇' => 'ወይኒ',
     '🍈' => 'melon',
     '🍉' => 'ብርጭቕ',
@@ -2899,6 +3060,7 @@
     '🌰' => 'ቸስትነት',
     '🫚' => 'ሱር ጅንጅብል',
     '🫛' => 'ቆጽሊ ኣተር',
+    '🫜' => 'ሱር ኣሕምልቲ',
     '🍞' => 'ባኒ',
     '🥐' => 'ክሮሳንት',
     '🥖' => 'ባጌት ባኒ',
@@ -2950,11 +3112,6 @@
     '🥟' => 'ዱምፕሊንግ ምግባር',
     '🥠' => 'ብሽኮቲ ዕድል',
     '🥡' => 'ቴክኣውት መውሰዲ',
-    '🦀' => 'ሻርጣን',
-    '🦞' => 'ሎብስተር',
-    '🦐' => 'ጋምበሪ',
-    '🦑' => 'ኣቡ ቐለም',
-    '🦪' => 'ኦይስተር',
     '🍦' => 'ልስሉስ ኣይስክሪም',
     '🍧' => 'ዝተላጽየ በረድ',
     '🍨' => 'ጀላቶ',
@@ -3005,6 +3162,7 @@
     '🧭' => 'ኮምፓስ',
     '🏔' => 'ብበረድ ዝተሸፈነ እምባ',
     '⛰' => 'እምባ',
+    '🛘' => 'ምሽርታት መሬት',
     '🌋' => 'እሳተ ጎመራ',
     '🗻' => 'እምባ ፉጂ',
     '🏕' => 'ካምፒንግ ምግባር',
@@ -3365,16 +3523,18 @@
     '🎧' => 'ናይ ርእሲ ስልኪ',
     '📻' => 'ራድዮ',
     '🎷' => 'ሳክስፎን',
+    '🎺' => 'መለኸት',
+    '🪊' => 'ትሮምቦን',
     '🪗' => 'ኣኮርድዮን',
     '🎸' => 'ጊታር',
     '🎹' => 'ሙዚቃዊ ቁልፊ ሰሌዳ',
-    '🎺' => 'መለኸት',
     '🎻' => 'ክራር',
     '🪕' => 'ባንጆ',
     '🥁' => 'ከበሮ',
     '🪘' => 'ነዊሕ ከበሮ',
     '🪇' => 'ማራካስ',
     '🪈' => 'ዋጣ',
+    '🪉' => 'በገና',
     '📱' => 'ሞባይል ቴሌፎን',
     '📲' => 'ሞባይል ምስ ፍላጻ',
     '☎' => 'ተለፎን',
@@ -3428,8 +3588,9 @@
     '📑' => 'ዕልባት ትቦታት',
     '🔖' => 'ዕልባት ምልክት ምግባር',
     '🏷' => 'መፍለዪ',
-    '💰' => 'ናይ ገንዘብ ቦርሳ',
     '🪙' => 'ሰልዲ',
+    '💰' => 'ናይ ገንዘብ ቦርሳ',
+    '🪎' => 'ሳንዱቕ ሐብቲ',
     '💴' => 'የን ኖት ባንክ',
     '💵' => 'ናይ ዶላር ኖት',
     '💶' => 'ናይ ዩሮ ኖት',
@@ -3512,6 +3673,7 @@
     '🧰' => 'ሳንዱቕ መሳርሒታት',
     '🧲' => 'ማግኔት',
     '🪜' => 'መሳልል',
+    '🪏' => 'አካፋ',
     '⚗' => 'ኣለምቢክ',
     '🧪' => 'ናይ መርመራ ሻምብቆ',
     '🧫' => 'ፔትሪ ዲሽ',
@@ -3695,6 +3857,7 @@
     '✴' => 'ሻሙናይ-ነጥቢ ኮኾብ',
     '❇' => 'ኣብለጭላጪ',
     '™' => 'ምልክት ንግዲ',
+    '🫟' => 'ረሳሕ ፈሳሲ',
     '🔠' => 'ናይ ላቲን ዓበይቲ-ቃላት ኣእቱ',
     '🔡' => 'ናይ ላቲን ነኣሽቱ-ቃላት ኣእቱ',
     '🔢' => 'ቁጽርታት ኣእቱ',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tk.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'posa: zenan, zenan, goýy deri reňki, orta deri reňki',
     '👩🏿‍❤‍💋‍👩🏾' => 'posa: zenan, zenan, goýy deri reňki, orta goýy deri reňki',
     '👩🏿‍❤‍💋‍👩🏿' => 'posa: zenan, zenan, goýy deri reňki',
+    '🧑🏻‍🫯‍🧑🏼' => 'göreş tutýan adamlar: açyk deri reňki, orta açyk deri reňki',
+    '🧑🏻‍🫯‍🧑🏽' => 'göreş tutýan adamlar: açyk deri reňki, orta deri reňki',
+    '🧑🏻‍🫯‍🧑🏾' => 'göreş tutýan adamlar: açyk deri reňki, orta goýy deri reňki',
+    '🧑🏻‍🫯‍🧑🏿' => 'göreş tutýan adamlar: açyk deri reňki, goýy deri reňki',
+    '🧑🏼‍🫯‍🧑🏻' => 'göreş tutýan adamlar: orta açyk deri reňki, açyk deri reňki',
+    '🧑🏼‍🫯‍🧑🏽' => 'göreş tutýan adamlar: orta açyk deri reňki, orta deri reňki',
+    '🧑🏼‍🫯‍🧑🏾' => 'göreş tutýan adamlar: orta açyk deri reňki, orta goýy deri reňki',
+    '🧑🏼‍🫯‍🧑🏿' => 'göreş tutýan adamlar: orta açyk deri reňki, goýy deri reňki',
+    '🧑🏽‍🫯‍🧑🏻' => 'göreş tutýan adamlar: orta deri reňki, açyk deri reňki',
+    '🧑🏽‍🫯‍🧑🏼' => 'göreş tutýan adamlar: orta deri reňki, orta açyk deri reňki',
+    '🧑🏽‍🫯‍🧑🏾' => 'göreş tutýan adamlar: orta deri reňki, orta goýy deri reňki',
+    '🧑🏽‍🫯‍🧑🏿' => 'göreş tutýan adamlar: orta deri reňki, goýy deri reňki',
+    '🧑🏾‍🫯‍🧑🏻' => 'göreş tutýan adamlar: orta goýy deri reňki, açyk deri reňki',
+    '🧑🏾‍🫯‍🧑🏼' => 'göreş tutýan adamlar: orta goýy deri reňki, orta açyk deri reňki',
+    '🧑🏾‍🫯‍🧑🏽' => 'göreş tutýan adamlar: orta goýy deri reňki, orta deri reňki',
+    '🧑🏾‍🫯‍🧑🏿' => 'göreş tutýan adamlar: orta goýy deri reňki, goýy deri reňki',
+    '🧑🏿‍🫯‍🧑🏻' => 'göreş tutýan adamlar: goýy deri reňki, açyk deri reňki',
+    '🧑🏿‍🫯‍🧑🏼' => 'göreş tutýan adamlar: goýy deri reňki, orta açyk deri reňki',
+    '🧑🏿‍🫯‍🧑🏽' => 'göreş tutýan adamlar: goýy deri reňki, orta deri reňki',
+    '🧑🏿‍🫯‍🧑🏾' => 'göreş tutýan adamlar: goýy deri reňki, orta goýy deri reňki',
     '🧑🏻‍❤‍🧑🏼' => 'ýürekli jübüt: şahs, şahs, açyk deri reňki, orta açyk deri reňki',
     '🧑🏻‍❤‍🧑🏽' => 'ýürekli jübüt: şahs, şahs, açyk deri reňki, orta deri reňki',
     '🧑🏻‍❤‍🧑🏾' => 'ýürekli jübüt: şahs, şahs, açyk deri reňki, orta goýy deri reňki',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ýürekli jübüt: şahs, şahs, goýy deri reňki, orta açyk deri reňki',
     '🧑🏿‍❤‍🧑🏽' => 'ýürekli jübüt: şahs, şahs, goýy deri reňki, orta deri reňki',
     '🧑🏿‍❤‍🧑🏾' => 'ýürekli jübüt: şahs, şahs, goýy deri reňki, orta goýy deri reňki',
+    '🧑🏻‍🐰‍🧑🏼' => 'towşan gulakly adamlar: açyk deri reňki, orta açyk deri reňki',
+    '🧑🏻‍🐰‍🧑🏽' => 'towşan gulakly adamlar: açyk deri reňki, orta deri reňki',
+    '🧑🏻‍🐰‍🧑🏾' => 'towşan gulakly adamlar: açyk deri reňki, orta goýy deri reňki',
+    '🧑🏻‍🐰‍🧑🏿' => 'towşan gulakly adamlar: açyk deri reňki, goýy deri reňki',
+    '🧑🏼‍🐰‍🧑🏻' => 'towşan gulakly adamlar: orta açyk deri reňki, açyk deri reňki',
+    '🧑🏼‍🐰‍🧑🏽' => 'towşan gulakly adamlar: orta açyk deri reňki, orta deri reňki',
+    '🧑🏼‍🐰‍🧑🏾' => 'towşan gulakly adamlar: orta açyk deri reňki, orta goýy deri reňki',
+    '🧑🏼‍🐰‍🧑🏿' => 'towşan gulakly adamlar: orta açyk deri reňki, goýy deri reňki',
+    '🧑🏽‍🐰‍🧑🏻' => 'towşan gulakly adamlar: orta deri reňki, açyk deri reňki',
+    '🧑🏽‍🐰‍🧑🏼' => 'towşan gulakly adamlar: orta deri reňki, orta açyk deri reňki',
+    '🧑🏽‍🐰‍🧑🏾' => 'towşan gulakly adamlar: orta deri reňki, orta goýy deri reňki',
+    '🧑🏽‍🐰‍🧑🏿' => 'towşan gulakly adamlar: orta deri reňki, goýy deri reňki',
+    '🧑🏾‍🐰‍🧑🏻' => 'towşan gulakly adamlar: orta goýy deri reňki, açyk deri reňki',
+    '🧑🏾‍🐰‍🧑🏼' => 'towşan gulakly adamlar: orta goýy deri reňki, orta açyk deri reňki',
+    '🧑🏾‍🐰‍🧑🏽' => 'towşan gulakly adamlar: orta goýy deri reňki, orta deri reňki',
+    '🧑🏾‍🐰‍🧑🏿' => 'towşan gulakly adamlar: orta goýy deri reňki, goýy deri reňki',
+    '🧑🏿‍🐰‍🧑🏻' => 'towşan gulakly adamlar: goýy deri reňki, açyk deri reňki',
+    '🧑🏿‍🐰‍🧑🏼' => 'towşan gulakly adamlar: goýy deri reňki, orta açyk deri reňki',
+    '🧑🏿‍🐰‍🧑🏽' => 'towşan gulakly adamlar: goýy deri reňki, orta deri reňki',
+    '🧑🏿‍🐰‍🧑🏾' => 'towşan gulakly adamlar: goýy deri reňki, orta goýy deri reňki',
+    '👨🏻‍🫯‍👨🏼' => 'göreş tutýan erkekler: açyk deri reňki, orta açyk deri reňki',
+    '👨🏻‍🫯‍👨🏽' => 'göreş tutýan erkekler: açyk deri reňki, orta deri reňki',
+    '👨🏻‍🫯‍👨🏾' => 'göreş tutýan erkekler: açyk deri reňki, orta goýy deri reňki',
+    '👨🏻‍🫯‍👨🏿' => 'göreş tutýan erkekler: açyk deri reňki, goýy deri reňki',
+    '👨🏼‍🫯‍👨🏻' => 'göreş tutýan erkekler: orta açyk deri reňki, açyk deri reňki',
+    '👨🏼‍🫯‍👨🏽' => 'göreş tutýan erkekler: orta açyk deri reňki, orta deri reňki',
+    '👨🏼‍🫯‍👨🏾' => 'göreş tutýan erkekler: orta açyk deri reňki, orta goýy deri reňki',
+    '👨🏼‍🫯‍👨🏿' => 'göreş tutýan erkekler: orta açyk deri reňki, goýy deri reňki',
+    '👨🏽‍🫯‍👨🏻' => 'göreş tutýan erkekler: orta deri reňki, açyk deri reňki',
+    '👨🏽‍🫯‍👨🏼' => 'göreş tutýan erkekler: orta deri reňki, orta açyk deri reňki',
+    '👨🏽‍🫯‍👨🏾' => 'göreş tutýan erkekler: orta deri reňki, orta goýy deri reňki',
+    '👨🏽‍🫯‍👨🏿' => 'göreş tutýan erkekler: orta deri reňki, goýy deri reňki',
+    '👨🏾‍🫯‍👨🏻' => 'göreş tutýan erkekler: orta goýy deri reňki, açyk deri reňki',
+    '👨🏾‍🫯‍👨🏼' => 'göreş tutýan erkekler: orta goýy deri reňki, orta açyk deri reňki',
+    '👨🏾‍🫯‍👨🏽' => 'göreş tutýan erkekler: orta goýy deri reňki, orta deri reňki',
+    '👨🏾‍🫯‍👨🏿' => 'göreş tutýan erkekler: orta goýy deri reňki, goýy deri reňki',
+    '👨🏿‍🫯‍👨🏻' => 'göreş tutýan erkekler: goýy deri reňki, açyk deri reňki',
+    '👨🏿‍🫯‍👨🏼' => 'göreş tutýan erkekler: goýy deri reňki, orta açyk deri reňki',
+    '👨🏿‍🫯‍👨🏽' => 'göreş tutýan erkekler: goýy deri reňki, orta deri reňki',
+    '👨🏿‍🫯‍👨🏾' => 'göreş tutýan erkekler: goýy deri reňki, orta goýy deri reňki',
     '👨🏻‍❤‍👨🏻' => 'ýürekli jübüt: erkek, erkek, açyk deri reňki',
     '👨🏻‍❤‍👨🏼' => 'ýürekli jübüt: erkek, erkek, açyk deri reňki, orta açyk deri reňki',
     '👨🏻‍❤‍👨🏽' => 'ýürekli jübüt: erkek, erkek, açyk deri reňki, orta deri reňki',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ýürekli jübüt: erkek, erkek, goýy deri reňki, orta deri reňki',
     '👨🏿‍❤‍👨🏾' => 'ýürekli jübüt: erkek, erkek, goýy deri reňki, orta goýy deri reňki',
     '👨🏿‍❤‍👨🏿' => 'ýürekli jübüt: erkek, erkek, goýy deri reňki',
+    '👨🏻‍🐰‍👨🏼' => 'towşan gulakly erkekler: açyk deri reňki, orta açyk deri reňki',
+    '👨🏻‍🐰‍👨🏽' => 'towşan gulakly erkekler: açyk deri reňki, orta deri reňki',
+    '👨🏻‍🐰‍👨🏾' => 'towşan gulakly erkekler: açyk deri reňki, orta goýy deri reňki',
+    '👨🏻‍🐰‍👨🏿' => 'towşan gulakly erkekler: açyk deri reňki, goýy deri reňki',
+    '👨🏼‍🐰‍👨🏻' => 'towşan gulakly erkekler: orta açyk deri reňki, açyk deri reňki',
+    '👨🏼‍🐰‍👨🏽' => 'towşan gulakly erkekler: orta açyk deri reňki, orta deri reňki',
+    '👨🏼‍🐰‍👨🏾' => 'towşan gulakly erkekler: orta açyk deri reňki, orta goýy deri reňki',
+    '👨🏼‍🐰‍👨🏿' => 'towşan gulakly erkekler: orta açyk deri reňki, goýy deri reňki',
+    '👨🏽‍🐰‍👨🏻' => 'towşan gulakly erkekler: orta deri reňki, açyk deri reňki',
+    '👨🏽‍🐰‍👨🏼' => 'towşan gulakly erkekler: orta deri reňki, orta açyk deri reňki',
+    '👨🏽‍🐰‍👨🏾' => 'towşan gulakly erkekler: orta deri reňki, orta goýy deri reňki',
+    '👨🏽‍🐰‍👨🏿' => 'towşan gulakly erkekler: orta deri reňki, goýy deri reňki',
+    '👨🏾‍🐰‍👨🏻' => 'towşan gulakly erkekler: orta goýy deri reňki, açyk deri reňki',
+    '👨🏾‍🐰‍👨🏼' => 'towşan gulakly erkekler: orta goýy deri reňki, orta açyk deri reňki',
+    '👨🏾‍🐰‍👨🏽' => 'towşan gulakly erkekler: orta goýy deri reňki, orta deri reňki',
+    '👨🏾‍🐰‍👨🏿' => 'towşan gulakly erkekler: orta goýy deri reňki, goýy deri reňki',
+    '👨🏿‍🐰‍👨🏻' => 'towşan gulakly erkekler: goýy deri reňki, açyk deri reňki',
+    '👨🏿‍🐰‍👨🏼' => 'towşan gulakly erkekler: goýy deri reňki, orta açyk deri reňki',
+    '👨🏿‍🐰‍👨🏽' => 'towşan gulakly erkekler: goýy deri reňki, orta deri reňki',
+    '👨🏿‍🐰‍👨🏾' => 'towşan gulakly erkekler: goýy deri reňki, orta goýy deri reňki',
+    '👩🏻‍🫯‍👩🏼' => 'göreş tutýan zenanlar: açyk deri reňki, orta açyk deri reňki',
+    '👩🏻‍🫯‍👩🏽' => 'göreş tutýan zenanlar: açyk deri reňki, orta deri reňki',
+    '👩🏻‍🫯‍👩🏾' => 'göreş tutýan zenanlar: açyk deri reňki, orta goýy deri reňki',
+    '👩🏻‍🫯‍👩🏿' => 'göreş tutýan zenanlar: açyk deri reňki, goýy deri reňki',
+    '👩🏼‍🫯‍👩🏻' => 'göreş tutýan zenanlar: orta açyk deri reňki, açyk deri reňki',
+    '👩🏼‍🫯‍👩🏽' => 'göreş tutýan zenanlar: orta açyk deri reňki, orta deri reňki',
+    '👩🏼‍🫯‍👩🏾' => 'göreş tutýan zenanlar: orta açyk deri reňki, orta goýy deri reňki',
+    '👩🏼‍🫯‍👩🏿' => 'göreş tutýan zenanlar: orta açyk deri reňki, goýy deri reňki',
+    '👩🏽‍🫯‍👩🏻' => 'göreş tutýan zenanlar: orta deri reňki, açyk deri reňki',
+    '👩🏽‍🫯‍👩🏼' => 'göreş tutýan zenanlar: orta deri reňki, orta açyk deri reňki',
+    '👩🏽‍🫯‍👩🏾' => 'göreş tutýan zenanlar: orta deri reňki, orta goýy deri reňki',
+    '👩🏽‍🫯‍👩🏿' => 'göreş tutýan zenanlar: orta deri reňki, goýy deri reňki',
+    '👩🏾‍🫯‍👩🏻' => 'göreş tutýan zenanlar: orta goýy deri reňki, açyk deri reňki',
+    '👩🏾‍🫯‍👩🏼' => 'göreş tutýan zenanlar: orta goýy deri reňki, orta açyk deri reňki',
+    '👩🏾‍🫯‍👩🏽' => 'göreş tutýan zenanlar: orta goýy deri reňki, orta deri reňki',
+    '👩🏾‍🫯‍👩🏿' => 'göreş tutýan zenanlar: orta goýy deri reňki, goýy deri reňki',
+    '👩🏿‍🫯‍👩🏻' => 'göreş tutýan zenanlar: goýy deri reňki, açyk deri reňki',
+    '👩🏿‍🫯‍👩🏼' => 'göreş tutýan zenanlar: goýy deri reňki, orta açyk deri reňki',
+    '👩🏿‍🫯‍👩🏽' => 'göreş tutýan zenanlar: goýy deri reňki, orta deri reňki',
+    '👩🏿‍🫯‍👩🏾' => 'göreş tutýan zenanlar: goýy deri reňki, orta goýy deri reňki',
     '👩🏻‍❤‍👨🏻' => 'ýürekli jübüt: zenan, erkek, açyk deri reňki',
     '👩🏻‍❤‍👨🏼' => 'ýürekli jübüt: zenan, erkek, açyk deri reňki, orta açyk deri reňki',
     '👩🏻‍❤‍👨🏽' => 'ýürekli jübüt: zenan, erkek, açyk deri reňki, orta deri reňki',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ýürekli jübüt: zenan, zenan, goýy deri reňki, orta deri reňki',
     '👩🏿‍❤‍👩🏾' => 'ýürekli jübüt: zenan, zenan, goýy deri reňki, orta goýy deri reňki',
     '👩🏿‍❤‍👩🏿' => 'ýürekli jübüt: zenan, zenan, goýy deri reňki',
+    '👩🏻‍🐰‍👩🏼' => 'towşan gulakly zenanlar: açyk deri reňki, orta açyk deri reňki',
+    '👩🏻‍🐰‍👩🏽' => 'towşan gulakly zenanlar: açyk deri reňki, orta deri reňki',
+    '👩🏻‍🐰‍👩🏾' => 'towşan gulakly zenanlar: açyk deri reňki, orta goýy deri reňki',
+    '👩🏻‍🐰‍👩🏿' => 'towşan gulakly zenanlar: açyk deri reňki, goýy deri reňki',
+    '👩🏼‍🐰‍👩🏻' => 'towşan gulakly zenanlar: orta açyk deri reňki, açyk deri reňki',
+    '👩🏼‍🐰‍👩🏽' => 'towşan gulakly zenanlar: orta açyk deri reňki, orta deri reňki',
+    '👩🏼‍🐰‍👩🏾' => 'towşan gulakly zenanlar: orta açyk deri reňki, orta goýy deri reňki',
+    '👩🏼‍🐰‍👩🏿' => 'towşan gulakly zenanlar: orta açyk deri reňki, goýy deri reňki',
+    '👩🏽‍🐰‍👩🏻' => 'towşan gulakly zenanlar: orta deri reňki, açyk deri reňki',
+    '👩🏽‍🐰‍👩🏼' => 'towşan gulakly zenanlar: orta deri reňki, orta açyk deri reňki',
+    '👩🏽‍🐰‍👩🏾' => 'towşan gulakly zenanlar: orta deri reňki, orta goýy deri reňki',
+    '👩🏽‍🐰‍👩🏿' => 'towşan gulakly zenanlar: orta deri reňki, goýy deri reňki',
+    '👩🏾‍🐰‍👩🏻' => 'towşan gulakly zenanlar: orta goýy deri reňki, açyk deri reňki',
+    '👩🏾‍🐰‍👩🏼' => 'towşan gulakly zenanlar: orta goýy deri reňki, orta açyk deri reňki',
+    '👩🏾‍🐰‍👩🏽' => 'towşan gulakly zenanlar: orta goýy deri reňki, orta deri reňki',
+    '👩🏾‍🐰‍👩🏿' => 'towşan gulakly zenanlar: orta goýy deri reňki, goýy deri reňki',
+    '👩🏿‍🐰‍👩🏻' => 'towşan gulakly zenanlar: goýy deri reňki, açyk deri reňki',
+    '👩🏿‍🐰‍👩🏼' => 'towşan gulakly zenanlar: goýy deri reňki, orta açyk deri reňki',
+    '👩🏿‍🐰‍👩🏽' => 'towşan gulakly zenanlar: goýy deri reňki, orta deri reňki',
+    '👩🏿‍🐰‍👩🏾' => 'towşan gulakly zenanlar: goýy deri reňki, orta goýy deri reňki',
     '🧑🏻‍🤝‍🧑🏻' => 'el tutuşýan adamlar: açyk deri reňki',
     '🧑🏻‍🤝‍🧑🏼' => 'el tutuşýan adamlar: açyk deri reňki, orta açyk deri reňki',
     '🧑🏻‍🤝‍🧑🏽' => 'el tutuşýan adamlar: açyk deri reňki, orta deri reňki',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'baýdak: Şotlandiýa',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'baýdak: Uels',
     '🧑‍🧑‍🧒‍🧒' => 'maşgala: uly, uly, çaga, çaga',
-    '🚶🏻‍♀‍➡' => 'ýörap barýan zenan ýüzi saga',
-    '🚶🏼‍♀‍➡' => 'ýörap barýan zenan ýüzi saga',
-    '🚶🏽‍♀‍➡' => 'ýörap barýan zenan ýüzi saga',
-    '🚶🏾‍♀‍➡' => 'ýörap barýan zenan ýüzi saga',
-    '🚶🏿‍♀‍➡' => 'ýörap barýan zenan ýüzi saga',
-    '🚶🏻‍♂‍➡' => 'ýöräp barýan erkek ýüzi saga',
-    '🚶🏼‍♂‍➡' => 'ýöräp barýan erkek ýüzi saga',
-    '🚶🏽‍♂‍➡' => 'ýöräp barýan erkek ýüzi saga',
-    '🚶🏾‍♂‍➡' => 'ýöräp barýan erkek ýüzi saga',
-    '🚶🏿‍♂‍➡' => 'ýöräp barýan erkek ýüzi saga',
-    '🧎🏻‍♀‍➡' => 'dyza çöken zenan ýüzi saga',
-    '🧎🏼‍♀‍➡' => 'dyza çöken zenan ýüzi saga',
-    '🧎🏽‍♀‍➡' => 'dyza çöken zenan ýüzi saga',
-    '🧎🏾‍♀‍➡' => 'dyza çöken zenan ýüzi saga',
-    '🧎🏿‍♀‍➡' => 'dyza çöken zenan ýüzi saga',
-    '🧎🏻‍♂‍➡' => 'dyza çöken erkek ýüzi saga',
-    '🧎🏼‍♂‍➡' => 'dyza çöken erkek ýüzi saga',
-    '🧎🏽‍♂‍➡' => 'dyza çöken erkek ýüzi saga',
-    '🧎🏾‍♂‍➡' => 'dyza çöken erkek ýüzi saga',
-    '🧎🏿‍♂‍➡' => 'dyza çöken erkek ýüzi saga',
-    '🧑🏻‍🦯‍➡' => 'kör hasaly adam ýüzi saga',
-    '🧑🏼‍🦯‍➡' => 'kör hasaly adam ýüzi saga',
-    '🧑🏽‍🦯‍➡' => 'kör hasaly adam ýüzi saga',
-    '🧑🏾‍🦯‍➡' => 'kör hasaly adam ýüzi saga',
-    '🧑🏿‍🦯‍➡' => 'kör hasaly adam ýüzi saga',
-    '👨🏻‍🦯‍➡' => 'kör hasaly erkek ýüzi saga',
-    '👨🏼‍🦯‍➡' => 'kör hasaly erkek ýüzi saga',
-    '👨🏽‍🦯‍➡' => 'kör hasaly erkek ýüzi saga',
-    '👨🏾‍🦯‍➡' => 'kör hasaly erkek ýüzi saga',
-    '👨🏿‍🦯‍➡' => 'kör hasaly erkek ýüzi saga',
-    '👩🏻‍🦯‍➡' => 'kör hasaly zenan ýüzi saga',
-    '👩🏼‍🦯‍➡' => 'kör hasaly zenan ýüzi saga',
-    '👩🏽‍🦯‍➡' => 'kör hasaly zenan ýüzi saga',
-    '👩🏾‍🦯‍➡' => 'kör hasaly zenan ýüzi saga',
-    '👩🏿‍🦯‍➡' => 'kör hasaly zenan ýüzi saga',
-    '🧑🏻‍🦼‍➡' => 'motorly arabajykdaky adam ýüzi saga',
-    '🧑🏼‍🦼‍➡' => 'motorly arabajykdaky adam ýüzi saga',
-    '🧑🏽‍🦼‍➡' => 'motorly arabajykdaky adam ýüzi saga',
-    '🧑🏾‍🦼‍➡' => 'motorly arabajykdaky adam ýüzi saga',
-    '🧑🏿‍🦼‍➡' => 'motorly arabajykdaky adam ýüzi saga',
-    '👨🏻‍🦼‍➡' => 'motorly maýyp arabasynda erkek ýüzi saga',
-    '👨🏼‍🦼‍➡' => 'motorly maýyp arabasynda erkek ýüzi saga',
-    '👨🏽‍🦼‍➡' => 'motorly maýyp arabasynda erkek ýüzi saga',
-    '👨🏾‍🦼‍➡' => 'motorly maýyp arabasynda erkek ýüzi saga',
-    '👨🏿‍🦼‍➡' => 'motorly maýyp arabasynda erkek ýüzi saga',
-    '👩🏻‍🦼‍➡' => 'motorly maýyp arabasynda zenan ýüzi saga',
-    '👩🏼‍🦼‍➡' => 'motorly maýyp arabasynda zenan ýüzi saga',
-    '👩🏽‍🦼‍➡' => 'motorly maýyp arabasynda zenan ýüzi saga',
-    '👩🏾‍🦼‍➡' => 'motorly maýyp arabasynda zenan ýüzi saga',
-    '👩🏿‍🦼‍➡' => 'motorly maýyp arabasynda zenan ýüzi saga',
-    '🧑🏻‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam ýüzi saga',
-    '🧑🏼‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam ýüzi saga',
-    '🧑🏽‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam ýüzi saga',
-    '🧑🏾‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam ýüzi saga',
-    '🧑🏿‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam ýüzi saga',
-    '👨🏻‍🦽‍➡' => 'el maýyp arabasynda erkek ýüzi saga',
-    '👨🏼‍🦽‍➡' => 'el maýyp arabasynda erkek ýüzi saga',
-    '👨🏽‍🦽‍➡' => 'el maýyp arabasynda erkek ýüzi saga',
-    '👨🏾‍🦽‍➡' => 'el maýyp arabasynda erkek ýüzi saga',
-    '👨🏿‍🦽‍➡' => 'el maýyp arabasynda erkek ýüzi saga',
-    '👩🏻‍🦽‍➡' => 'el maýyp arabasynda zenan ýüzi saga',
-    '👩🏼‍🦽‍➡' => 'el maýyp arabasynda zenan ýüzi saga',
-    '👩🏽‍🦽‍➡' => 'el maýyp arabasynda zenan ýüzi saga',
-    '👩🏾‍🦽‍➡' => 'el maýyp arabasynda zenan ýüzi saga',
-    '👩🏿‍🦽‍➡' => 'el maýyp arabasynda zenan ýüzi saga',
-    '🏃🏻‍♀‍➡' => 'ylgap barýan zenan ýüzi saga',
-    '🏃🏼‍♀‍➡' => 'ylgap barýan zenan ýüzi saga',
-    '🏃🏽‍♀‍➡' => 'ylgap barýan zenan ýüzi saga',
-    '🏃🏾‍♀‍➡' => 'ylgap barýan zenan ýüzi saga',
-    '🏃🏿‍♀‍➡' => 'ylgap barýan zenan ýüzi saga',
-    '🏃🏻‍♂‍➡' => 'ylgap barýan erkek ýüzi saga',
-    '🏃🏼‍♂‍➡' => 'ylgap barýan erkek ýüzi saga',
-    '🏃🏽‍♂‍➡' => 'ylgap barýan erkek ýüzi saga',
-    '🏃🏾‍♂‍➡' => 'ylgap barýan erkek ýüzi saga',
-    '🏃🏿‍♂‍➡' => 'ylgap barýan erkek ýüzi saga',
+    '🚶🏻‍♀‍➡' => 'ýörap barýan zenan: açyk deri reňki, ýüzi saga',
+    '🚶🏼‍♀‍➡' => 'ýörap barýan zenan: orta açyk deri reňki, ýüzi saga',
+    '🚶🏽‍♀‍➡' => 'ýörap barýan zenan: orta deri reňki, ýüzi saga',
+    '🚶🏾‍♀‍➡' => 'ýörap barýan zenan: orta goýy deri reňki, ýüzi saga',
+    '🚶🏿‍♀‍➡' => 'ýörap barýan zenan: goýy deri reňki, ýüzi saga',
+    '🚶🏻‍♂‍➡' => 'ýöräp barýan erkek: açyk deri reňki, ýüzi saga',
+    '🚶🏼‍♂‍➡' => 'ýöräp barýan erkek: orta açyk deri reňki, ýüzi saga',
+    '🚶🏽‍♂‍➡' => 'ýöräp barýan erkek: orta deri reňki, ýüzi saga',
+    '🚶🏾‍♂‍➡' => 'ýöräp barýan erkek: orta goýy deri reňki, ýüzi saga',
+    '🚶🏿‍♂‍➡' => 'ýöräp barýan erkek: goýy deri reňki, ýüzi saga',
+    '🧎🏻‍♀‍➡' => 'dyza çöken zenan: açyk deri reňki, ýüzi saga',
+    '🧎🏼‍♀‍➡' => 'dyza çöken zenan: orta açyk deri reňki, ýüzi saga',
+    '🧎🏽‍♀‍➡' => 'dyza çöken zenan: orta deri reňki, ýüzi saga',
+    '🧎🏾‍♀‍➡' => 'dyza çöken zenan: orta goýy deri reňki, ýüzi saga',
+    '🧎🏿‍♀‍➡' => 'dyza çöken zenan: goýy deri reňki, ýüzi saga',
+    '🧎🏻‍♂‍➡' => 'dyza çöken erkek: açyk deri reňki, ýüzi saga',
+    '🧎🏼‍♂‍➡' => 'dyza çöken erkek: orta açyk deri reňki, ýüzi saga',
+    '🧎🏽‍♂‍➡' => 'dyza çöken erkek: orta deri reňki, ýüzi saga',
+    '🧎🏾‍♂‍➡' => 'dyza çöken erkek: orta goýy deri reňki, ýüzi saga',
+    '🧎🏿‍♂‍➡' => 'dyza çöken erkek: goýy deri reňki, ýüzi saga',
+    '🧑🏻‍🦯‍➡' => 'kör hasaly adam: açyk deri reňki, ýüzi saga',
+    '🧑🏼‍🦯‍➡' => 'kör hasaly adam: orta açyk deri reňki, ýüzi saga',
+    '🧑🏽‍🦯‍➡' => 'kör hasaly adam: orta deri reňki, ýüzi saga',
+    '🧑🏾‍🦯‍➡' => 'kör hasaly adam: orta goýy deri reňki, ýüzi saga',
+    '🧑🏿‍🦯‍➡' => 'kör hasaly adam: goýy deri reňki, ýüzi saga',
+    '👨🏻‍🦯‍➡' => 'kör hasaly erkek: açyk deri reňki, ýüzi saga',
+    '👨🏼‍🦯‍➡' => 'kör hasaly erkek: orta açyk deri reňki, ýüzi saga',
+    '👨🏽‍🦯‍➡' => 'kör hasaly erkek: orta deri reňki, ýüzi saga',
+    '👨🏾‍🦯‍➡' => 'kör hasaly erkek: orta goýy deri reňki, ýüzi saga',
+    '👨🏿‍🦯‍➡' => 'kör hasaly erkek: goýy deri reňki, ýüzi saga',
+    '👩🏻‍🦯‍➡' => 'kör hasaly zenan: açyk deri reňki, ýüzi saga',
+    '👩🏼‍🦯‍➡' => 'kör hasaly zenan: orta açyk deri reňki, ýüzi saga',
+    '👩🏽‍🦯‍➡' => 'kör hasaly zenan: orta deri reňki, ýüzi saga',
+    '👩🏾‍🦯‍➡' => 'kör hasaly zenan: orta goýy deri reňki, ýüzi saga',
+    '👩🏿‍🦯‍➡' => 'kör hasaly zenan: goýy deri reňki, ýüzi saga',
+    '🧑🏻‍🦼‍➡' => 'motorly arabajykdaky adam: açyk deri reňki, ýüzi saga',
+    '🧑🏼‍🦼‍➡' => 'motorly arabajykdaky adam: orta açyk deri reňki, ýüzi saga',
+    '🧑🏽‍🦼‍➡' => 'motorly arabajykdaky adam: orta deri reňki, ýüzi saga',
+    '🧑🏾‍🦼‍➡' => 'motorly arabajykdaky adam: orta goýy deri reňki, ýüzi saga',
+    '🧑🏿‍🦼‍➡' => 'motorly arabajykdaky adam: goýy deri reňki, ýüzi saga',
+    '👨🏻‍🦼‍➡' => 'motorly maýyp arabasynda erkek: açyk deri reňki, ýüzi saga',
+    '👨🏼‍🦼‍➡' => 'motorly maýyp arabasynda erkek: orta açyk deri reňki, ýüzi saga',
+    '👨🏽‍🦼‍➡' => 'motorly maýyp arabasynda erkek: orta deri reňki, ýüzi saga',
+    '👨🏾‍🦼‍➡' => 'motorly maýyp arabasynda erkek: orta goýy deri reňki, ýüzi saga',
+    '👨🏿‍🦼‍➡' => 'motorly maýyp arabasynda erkek: goýy deri reňki, ýüzi saga',
+    '👩🏻‍🦼‍➡' => 'motorly maýyp arabasynda zenan: açyk deri reňki, ýüzi saga',
+    '👩🏼‍🦼‍➡' => 'motorly maýyp arabasynda zenan: orta açyk deri reňki, ýüzi saga',
+    '👩🏽‍🦼‍➡' => 'motorly maýyp arabasynda zenan: orta deri reňki, ýüzi saga',
+    '👩🏾‍🦼‍➡' => 'motorly maýyp arabasynda zenan: orta goýy deri reňki, ýüzi saga',
+    '👩🏿‍🦼‍➡' => 'motorly maýyp arabasynda zenan: goýy deri reňki, ýüzi saga',
+    '🧑🏻‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam: açyk deri reňki, ýüzi saga',
+    '🧑🏼‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam: orta açyk deri reňki, ýüzi saga',
+    '🧑🏽‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam: orta deri reňki, ýüzi saga',
+    '🧑🏾‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam: orta goýy deri reňki, ýüzi saga',
+    '🧑🏿‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam: goýy deri reňki, ýüzi saga',
+    '👨🏻‍🦽‍➡' => 'el maýyp arabasynda erkek: açyk deri reňki, ýüzi saga',
+    '👨🏼‍🦽‍➡' => 'el maýyp arabasynda erkek: orta açyk deri reňki, ýüzi saga',
+    '👨🏽‍🦽‍➡' => 'el maýyp arabasynda erkek: orta deri reňki, ýüzi saga',
+    '👨🏾‍🦽‍➡' => 'el maýyp arabasynda erkek: orta goýy deri reňki, ýüzi saga',
+    '👨🏿‍🦽‍➡' => 'el maýyp arabasynda erkek: goýy deri reňki, ýüzi saga',
+    '👩🏻‍🦽‍➡' => 'el maýyp arabasynda zenan: açyk deri reňki, ýüzi saga',
+    '👩🏼‍🦽‍➡' => 'el maýyp arabasynda zenan: orta açyk deri reňki, ýüzi saga',
+    '👩🏽‍🦽‍➡' => 'el maýyp arabasynda zenan: orta deri reňki, ýüzi saga',
+    '👩🏾‍🦽‍➡' => 'el maýyp arabasynda zenan: orta goýy deri reňki, ýüzi saga',
+    '👩🏿‍🦽‍➡' => 'el maýyp arabasynda zenan: goýy deri reňki, ýüzi saga',
+    '🏃🏻‍♀‍➡' => 'ylgap barýan zenan: açyk deri reňki, ýüzi saga',
+    '🏃🏼‍♀‍➡' => 'ylgap barýan zenan: orta açyk deri reňki, ýüzi saga',
+    '🏃🏽‍♀‍➡' => 'ylgap barýan zenan: orta deri reňki, ýüzi saga',
+    '🏃🏾‍♀‍➡' => 'ylgap barýan zenan: orta goýy deri reňki, ýüzi saga',
+    '🏃🏿‍♀‍➡' => 'ylgap barýan zenan: goýy deri reňki, ýüzi saga',
+    '🏃🏻‍♂‍➡' => 'ylgap barýan erkek: açyk deri reňki, ýüzi saga',
+    '🏃🏼‍♂‍➡' => 'ylgap barýan erkek: orta açyk deri reňki, ýüzi saga',
+    '🏃🏽‍♂‍➡' => 'ylgap barýan erkek: orta deri reňki, ýüzi saga',
+    '🏃🏾‍♂‍➡' => 'ylgap barýan erkek: orta goýy deri reňki, ýüzi saga',
+    '🏃🏿‍♂‍➡' => 'ylgap barýan erkek: goýy deri reňki, ýüzi saga',
     '🫱🏻‍🫲🏼' => 'el gysyşmak: açyk deri reňki, orta açyk deri reňki',
     '🫱🏻‍🫲🏽' => 'el gysyşmak: açyk deri reňki, orta deri reňki',
     '🫱🏻‍🫲🏾' => 'el gysyşmak: açyk deri reňki, orta goýy deri reňki',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'el gysyşmak: goýy deri reňki, orta açyk deri reňki',
     '🫱🏿‍🫲🏽' => 'el gysyşmak: goýy deri reňki, orta deri reňki',
     '🫱🏿‍🫲🏾' => 'el gysyşmak: goýy deri reňki, orta goýy deri reňki',
-    '🚶‍♀‍➡' => 'ýörap barýan zenan ýüzi saga',
-    '🚶‍♂‍➡' => 'ýöräp barýan erkek ýüzi saga',
-    '🧎‍♀‍➡' => 'dyza çöken zenan ýüzi saga',
-    '🧎‍♂‍➡' => 'dyza çöken erkek ýüzi saga',
-    '🧑‍🦯‍➡' => 'kör hasaly adam ýüzi saga',
-    '👨‍🦯‍➡' => 'kör hasaly erkek ýüzi saga',
-    '👩‍🦯‍➡' => 'kör hasaly zenan ýüzi saga',
-    '🧑‍🦼‍➡' => 'motorly arabajykdaky adam ýüzi saga',
-    '👨‍🦼‍➡' => 'motorly maýyp arabasynda erkek ýüzi saga',
-    '👩‍🦼‍➡' => 'motorly maýyp arabasynda zenan ýüzi saga',
-    '🧑‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam ýüzi saga',
-    '👨‍🦽‍➡' => 'el maýyp arabasynda erkek ýüzi saga',
-    '👩‍🦽‍➡' => 'el maýyp arabasynda zenan ýüzi saga',
-    '🏃‍♀‍➡' => 'ylgap barýan zenan ýüzi saga',
-    '🏃‍♂‍➡' => 'ylgap barýan erkek ýüzi saga',
+    '🚶‍♀‍➡' => 'ýörap barýan zenan: ýüzi saga',
+    '🚶‍♂‍➡' => 'ýöräp barýan erkek: ýüzi saga',
+    '🧎‍♀‍➡' => 'dyza çöken zenan: ýüzi saga',
+    '🧎‍♂‍➡' => 'dyza çöken erkek: ýüzi saga',
+    '🧑‍🦯‍➡' => 'kör hasaly adam: ýüzi saga',
+    '👨‍🦯‍➡' => 'kör hasaly erkek: ýüzi saga',
+    '👩‍🦯‍➡' => 'kör hasaly zenan: ýüzi saga',
+    '🧑‍🦼‍➡' => 'motorly arabajykdaky adam: ýüzi saga',
+    '👨‍🦼‍➡' => 'motorly maýyp arabasynda erkek: ýüzi saga',
+    '👩‍🦼‍➡' => 'motorly maýyp arabasynda zenan: ýüzi saga',
+    '🧑‍🦽‍➡' => 'el bilen işleýän tigirçekli oturgyçdaky adam: ýüzi saga',
+    '👨‍🦽‍➡' => 'el maýyp arabasynda erkek: ýüzi saga',
+    '👩‍🦽‍➡' => 'el maýyp arabasynda zenan: ýüzi saga',
+    '🏃‍♀‍➡' => 'ylgap barýan zenan: ýüzi saga',
+    '🏃‍♂‍➡' => 'ylgap barýan erkek: ýüzi saga',
     '👩‍❤‍👨' => 'ýürekli jübüt: zenan, erkek',
     '👨‍❤‍👨' => 'ýürekli jübüt: erkek, erkek',
     '👩‍❤‍👩' => 'ýürekli jübüt: zenan, zenan',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'şahs: orta deri reňki, kel',
     '🧑🏾‍🦲' => 'şahs: orta goýy deri reňki, kel',
     '🧑🏿‍🦲' => 'şahs: goýy deri reňki, kel',
+    '🧑🏻‍🩰' => 'balerina: açyk deri reňki',
+    '🧑🏼‍🩰' => 'balerina: orta açyk deri reňki',
+    '🧑🏽‍🩰' => 'balerina: orta deri reňki',
+    '🧑🏾‍🩰' => 'balerina: orta goýy deri reňki',
+    '🧑🏿‍🩰' => 'balerina: goýy deri reňki',
     '🧔🏻‍♂' => 'adam: açyk deri reňki, sakal',
     '🧔🏼‍♂' => 'adam: orta açyk deri reňki, sakal',
     '🧔🏽‍♂' => 'adam: orta deri reňki, sakal',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'ýörap barýan zenan: orta deri reňki',
     '🚶🏾‍♀' => 'ýörap barýan zenan: orta goýy deri reňki',
     '🚶🏿‍♀' => 'ýörap barýan zenan: goýy deri reňki',
-    '🚶🏻‍➡' => 'ýöräp barýan adam ýüzi saga',
-    '🚶🏼‍➡' => 'ýöräp barýan adam ýüzi saga',
-    '🚶🏽‍➡' => 'ýöräp barýan adam ýüzi saga',
-    '🚶🏾‍➡' => 'ýöräp barýan adam ýüzi saga',
-    '🚶🏿‍➡' => 'ýöräp barýan adam ýüzi saga',
+    '🚶🏻‍➡' => 'ýöräp barýan adam: açyk deri reňki, ýüzi saga',
+    '🚶🏼‍➡' => 'ýöräp barýan adam: orta açyk deri reňki, ýüzi saga',
+    '🚶🏽‍➡' => 'ýöräp barýan adam: orta deri reňki, ýüzi saga',
+    '🚶🏾‍➡' => 'ýöräp barýan adam: orta goýy deri reňki, ýüzi saga',
+    '🚶🏿‍➡' => 'ýöräp barýan adam: goýy deri reňki, ýüzi saga',
     '🧍🏻‍♂' => 'dik duran erkek: açyk deri reňki',
     '🧍🏼‍♂' => 'dik duran erkek: orta açyk deri reňki',
     '🧍🏽‍♂' => 'dik duran erkek: orta deri reňki',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'dyza çöken zenan: orta deri reňki',
     '🧎🏾‍♀' => 'dyza çöken zenan: orta goýy deri reňki',
     '🧎🏿‍♀' => 'dyza çöken zenan: goýy deri reňki',
-    '🧎🏻‍➡' => 'dyza çöken adam ýüzi saga',
-    '🧎🏼‍➡' => 'dyza çöken adam ýüzi saga',
-    '🧎🏽‍➡' => 'dyza çöken adam ýüzi saga',
-    '🧎🏾‍➡' => 'dyza çöken adam ýüzi saga',
-    '🧎🏿‍➡' => 'dyza çöken adam ýüzi saga',
+    '🧎🏻‍➡' => 'dyza çöken adam: açyk deri reňki, ýüzi saga',
+    '🧎🏼‍➡' => 'dyza çöken adam: orta açyk deri reňki, ýüzi saga',
+    '🧎🏽‍➡' => 'dyza çöken adam: orta deri reňki, ýüzi saga',
+    '🧎🏾‍➡' => 'dyza çöken adam: orta goýy deri reňki, ýüzi saga',
+    '🧎🏿‍➡' => 'dyza çöken adam: goýy deri reňki, ýüzi saga',
     '🧑🏻‍🦯' => 'kör hasaly adam: açyk deri reňki',
     '🧑🏼‍🦯' => 'kör hasaly adam: orta açyk deri reňki',
     '🧑🏽‍🦯' => 'kör hasaly adam: orta deri reňki',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'ylgap barýan zenan: orta deri reňki',
     '🏃🏾‍♀' => 'ylgap barýan zenan: orta goýy deri reňki',
     '🏃🏿‍♀' => 'ylgap barýan zenan: goýy deri reňki',
-    '🏃🏻‍➡' => 'ylgap barýan adam ýüzi saga',
-    '🏃🏼‍➡' => 'ylgap barýan adam ýüzi saga',
-    '🏃🏽‍➡' => 'ylgap barýan adam ýüzi saga',
-    '🏃🏾‍➡' => 'ylgap barýan adam ýüzi saga',
-    '🏃🏿‍➡' => 'ylgap barýan adam ýüzi saga',
+    '🏃🏻‍➡' => 'ylgap barýan adam: açyk deri reňki, ýüzi saga',
+    '🏃🏼‍➡' => 'ylgap barýan adam: orta açyk deri reňki, ýüzi saga',
+    '🏃🏽‍➡' => 'ylgap barýan adam: orta deri reňki, ýüzi saga',
+    '🏃🏾‍➡' => 'ylgap barýan adam: orta goýy deri reňki, ýüzi saga',
+    '🏃🏿‍➡' => 'ylgap barýan adam: goýy deri reňki, ýüzi saga',
+    '👯🏻‍♀' => 'towşan gulakly zenanlar: açyk deri reňki',
+    '👯🏼‍♀' => 'towşan gulakly zenanlar: orta açyk deri reňki',
+    '👯🏽‍♀' => 'towşan gulakly zenanlar: orta deri reňki',
+    '👯🏾‍♀' => 'towşan gulakly zenanlar: orta goýy deri reňki',
+    '👯🏿‍♀' => 'towşan gulakly zenanlar: goýy deri reňki',
+    '👯🏻‍♂' => 'towşan gulakly erkekler: açyk deri reňki',
+    '👯🏼‍♂' => 'towşan gulakly erkekler: orta açyk deri reňki',
+    '👯🏽‍♂' => 'towşan gulakly erkekler: orta deri reňki',
+    '👯🏾‍♂' => 'towşan gulakly erkekler: orta goýy deri reňki',
+    '👯🏿‍♂' => 'towşan gulakly erkekler: goýy deri reňki',
     '🧖🏻‍♂' => 'bug otagyndaky erkek: açyk deri reňki',
     '🧖🏼‍♂' => 'bug otagyndaky erkek: orta açyk deri reňki',
     '🧖🏽‍♂' => 'bug otagyndaky erkek: orta deri reňki',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'ýanyn aşyr atýan zenan: orta deri reňki',
     '🤸🏾‍♀' => 'ýanyn aşyr atýan zenan: orta goýy deri reňki',
     '🤸🏿‍♀' => 'ýanyn aşyr atýan zenan: goýy deri reňki',
+    '🤼🏻‍♀' => 'göreş tutýan zenanlar: açyk deri reňki',
+    '🤼🏼‍♀' => 'göreş tutýan zenanlar: orta açyk deri reňki',
+    '🤼🏽‍♀' => 'göreş tutýan zenanlar: orta deri reňki',
+    '🤼🏾‍♀' => 'göreş tutýan zenanlar: orta goýy deri reňki',
+    '🤼🏿‍♀' => 'göreş tutýan zenanlar: goýy deri reňki',
+    '🤼🏻‍♂' => 'göreş tutýan erkekler: açyk deri reňki',
+    '🤼🏼‍♂' => 'göreş tutýan erkekler: orta açyk deri reňki',
+    '🤼🏽‍♂' => 'göreş tutýan erkekler: orta deri reňki',
+    '🤼🏾‍♂' => 'göreş tutýan erkekler: orta goýy deri reňki',
+    '🤼🏿‍♂' => 'göreş tutýan erkekler: goýy deri reňki',
     '🤽🏻‍♂' => 'suw polo oýnaýan erkek: açyk deri reňki',
     '🤽🏼‍♂' => 'suw polo oýnaýan erkek: orta açyk deri reňki',
     '🤽🏽‍♂' => 'suw polo oýnaýan erkek: orta deri reňki',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'zenan: buýra saç',
     '👩‍🦳' => 'zenan: ak saç',
     '👩‍🦲' => 'zenan: kel',
-    '🚶‍➡' => 'ýöräp barýan adam ýüzi saga',
-    '🧎‍➡' => 'dyza çöken adam ýüzi saga',
-    '🏃‍➡' => 'ylgap barýan adam ýüzi saga',
+    '🚶‍➡' => 'ýöräp barýan adam: ýüzi saga',
+    '🧎‍➡' => 'dyza çöken adam: ýüzi saga',
+    '🏃‍➡' => 'ylgap barýan adam: ýüzi saga',
     '👨‍👦' => 'maşgala: erkek, oglan',
     '👨‍👧' => 'maşgala: erkek, gyz',
     '👩‍👦' => 'maşgala: zenan, oglan',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'el maýyp arabasynda zenan',
     '🏃‍♂' => 'ylgap barýan erkek',
     '🏃‍♀' => 'ylgap barýan zenan',
+    '🧑‍🩰' => 'balerina',
     '👯‍♂' => 'towşan gulakly erkekler',
     '👯‍♀' => 'towşan gulakly zenanlar',
     '🧖‍♂' => 'bug otagyndaky erkek',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'kostýum-balakly ýokary galyp barýan kişi: orta deri reňki',
     '🕴🏾' => 'kostýum-balakly ýokary galyp barýan kişi: orta goýy deri reňki',
     '🕴🏿' => 'kostýum-balakly ýokary galyp barýan kişi: goýy deri reňki',
+    '👯🏻' => 'towşan gulakly adamlar: açyk deri reňki',
+    '👯🏼' => 'towşan gulakly adamlar: orta açyk deri reňki',
+    '👯🏽' => 'towşan gulakly adamlar: orta deri reňki',
+    '👯🏾' => 'towşan gulakly adamlar: orta goýy deri reňki',
+    '👯🏿' => 'towşan gulakly adamlar: goýy deri reňki',
     '🧖🏻' => 'bug otagyndaky adam: açyk deri reňki',
     '🧖🏼' => 'bug otagyndaky adam: orta açyk deri reňki',
     '🧖🏽' => 'bug otagyndaky adam: orta deri reňki',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'ýanyn aşyr atýan adam: orta deri reňki',
     '🤸🏾' => 'ýanyn aşyr atýan adam: orta goýy deri reňki',
     '🤸🏿' => 'ýanyn aşyr atýan adam: goýy deri reňki',
+    '🤼🏻' => 'göreş tutýan adamlar: açyk deri reňki',
+    '🤼🏼' => 'göreş tutýan adamlar: orta açyk deri reňki',
+    '🤼🏽' => 'göreş tutýan adamlar: orta deri reňki',
+    '🤼🏾' => 'göreş tutýan adamlar: orta goýy deri reňki',
+    '🤼🏿' => 'göreş tutýan adamlar: goýy deri reňki',
     '🤽🏻' => 'suw polo oýnaýan adam: açyk deri reňki',
     '🤽🏼' => 'suw polo oýnaýan adam: orta açyk deri reňki',
     '🤽🏽' => 'suw polo oýnaýan adam: orta deri reňki',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'baýdak: Hytaý',
     '🇨🇴' => 'baýdak: Kolumbiýa',
     '🇨🇵' => 'baýdak: Klipperton adasy',
+    '🇨🇶' => 'baýdak: Sark',
     '🇨🇷' => 'baýdak: Kosta-Rika',
     '🇨🇺' => 'baýdak: Kuba',
     '🇨🇻' => 'baýdak: Kabo-Werde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'orta deri reňki',
     '🏾' => 'orta goýy deri reňki',
     '🏿' => 'goýy deri reňki',
-    '🪉' => 'arfa',
-    '🪏' => 'pilçe',
-    '🪾' => 'ýapraksyz agaç',
-    '🫆' => 'barmak yzy',
-    '🫜' => 'köki miweli',
-    '🫟' => 'syçratgy',
-    '🫩' => 'gözüniň aşagy halkaly ýüz',
     '😀' => 'syrtarýan ýüz',
     '😃' => 'ullakan gözli syrtarýan ýüz',
     '😄' => 'gülýän gözli syrtarýan ýüz',
@@ -2450,6 +2600,7 @@
     '😪' => 'ukuly ýüz',
     '🤤' => 'gyllygy akýan ýüz',
     '😴' => 'uklap ýatan ýüz',
+    '🫩' => 'gözüniň aşagy halkaly ýüz',
     '😷' => 'saglyk maskaly ýüz',
     '🤒' => 'termometrli ýüz',
     '🤕' => 'kellesi sargyly ýüz',
@@ -2476,6 +2627,7 @@
     '😯' => 'aňalyp galan ýüz',
     '😲' => 'aňk-taňk bolan ýüz',
     '😳' => 'gyzaran ýüz',
+    '🫪' => 'gyşyk ýüz',
     '🥺' => 'ýalbarýan ýüz',
     '🥹' => 'gözýaşyny saklap duran ýüz',
     '😦' => 'açyk agyzly çytyk ýüz',
@@ -2547,6 +2699,7 @@
     '💋' => 'posa yzy',
     '💯' => 'ýüz utuk',
     '💢' => 'gaharyň nyşany',
+    '🫯' => 'uruş buludy',
     '💥' => 'çakyşma',
     '💫' => 'başy aýlanan',
     '💦' => 'der damjalary',
@@ -2670,6 +2823,7 @@
     '🧞' => 'jyn-arwah',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'tüýlek jandar',
     '💆' => 'massaž edilýän adam',
     '💇' => 'saçy kiçeldilýän adam',
     '🚶' => 'ýöräp barýan adam',
@@ -2713,6 +2867,7 @@
     '🫂' => 'gujaklaşýan adamlar',
     '👪' => 'maşgala',
     '👣' => 'aýak yzlary',
+    '🫆' => 'barmak yzy',
     '🦰' => 'gyzyl saç',
     '🦱' => 'buýra saç',
     '🦳' => 'ak saç',
@@ -2812,6 +2967,7 @@
     '🐳' => 'suw pürkýän kit',
     '🐋' => 'kit',
     '🐬' => 'delfin',
+    '🫍' => 'kosatka',
     '🦭' => 'düwlen',
     '🐟' => 'balyk',
     '🐠' => 'tropiki balyk',
@@ -2821,6 +2977,11 @@
     '🐚' => 'spiral çaňňalak',
     '🪸' => 'merjen',
     '🪼' => 'meduza',
+    '🦀' => 'leňňeç',
+    '🦞' => 'omar',
+    '🦐' => 'krewetka',
+    '🦑' => 'kalmar',
+    '🦪' => 'ustrisa',
     '🐌' => 'ulitka',
     '🦋' => 'kebelek',
     '🐛' => 'mör-möjek',
@@ -2865,6 +3026,7 @@
     '🪹' => 'boş höwürtge',
     '🪺' => 'içi ýumurtgaly höwürtge',
     '🍄' => 'kömelek',
+    '🪾' => 'ýapraksyz agaç',
     '🍇' => 'üzüm',
     '🍈' => 'gawun',
     '🍉' => 'garpyz',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kaştan',
     '🫚' => 'zenjebil köki',
     '🫛' => 'nohudyň kösügi',
+    '🫜' => 'köki miweli',
     '🍞' => 'çörek',
     '🥐' => 'kruassan',
     '🥖' => 'baget çörek',
@@ -2952,11 +3115,6 @@
     '🥟' => 'hytaý böregi',
     '🥠' => 'bagt kökesi',
     '🥡' => 'iýmit alyp gidilýän guty',
-    '🦀' => 'leňňeç',
-    '🦞' => 'omar',
-    '🦐' => 'krewetka',
-    '🦑' => 'kalmar',
-    '🦪' => 'ustrisa',
     '🍦' => 'ýumşak buzgaýmak',
     '🍧' => 'syrylan buz',
     '🍨' => 'buzgaýmak',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'üsti garly dag',
     '⛰' => 'dag',
+    '🛘' => 'ýer süýşgüni',
     '🌋' => 'ýanardag',
     '🗻' => 'Fuji dagy',
     '🏕' => 'kemping',
@@ -3272,8 +3431,8 @@
     '🥌' => 'kýorling daşy',
     '🎯' => 'dürs urgy',
     '🪀' => 'ýo-ýo',
-    '🪁' => 'batberek',
-    '🔫' => 'sapança',
+    '🪁' => 'batbörek',
+    '🔫' => 'suw sapançasy',
     '🎱' => '8 bilýard topy',
     '🔮' => 'hrustal şar',
     '🪄' => 'jadyly taýajyk',
@@ -3367,16 +3526,18 @@
     '🎧' => 'nauşnik',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'surnaý',
+    '🪊' => 'trombon',
     '🪗' => 'akkordeon',
     '🎸' => 'gitara',
     '🎹' => 'saz klawiaturasy',
-    '🎺' => 'surnaý',
     '🎻' => 'skripka',
     '🪕' => 'banjo',
     '🥁' => 'deprek',
     '🪘' => 'uzyn deprek',
     '🪇' => 'marakas',
     '🪈' => 'tüýdük',
+    '🪉' => 'arfa',
     '📱' => 'mobil telefon',
     '📲' => 'okly mobil telefon',
     '☎' => 'telefon trubkasy',
@@ -3430,8 +3591,9 @@
     '📑' => 'bellikçe tablary',
     '🔖' => 'bellikçe',
     '🏷' => 'tagma',
-    '💰' => 'pully halta',
     '🪙' => 'şaýlyk',
+    '💰' => 'pully halta',
+    '🪎' => 'hazyna sandygy',
     '💴' => 'ýen banknot',
     '💵' => 'dollar banknot',
     '💶' => 'ýewro banknot',
@@ -3514,6 +3676,7 @@
     '🧰' => 'gural gutusy',
     '🧲' => 'magnit',
     '🪜' => 'merdiwan',
+    '🪏' => 'pilçe',
     '⚗' => 'suwuklyk gaby',
     '🧪' => 'probirka',
     '🧫' => 'petri çaşkasy',
@@ -3697,6 +3860,7 @@
     '✴' => 'sekiz tikenli ýyldyzjyk',
     '❇' => 'uçgun',
     '™' => 'söwda belgisi',
+    '🫟' => 'syçratgy',
     '🔠' => 'latyn baş harp girizme',
     '🔡' => 'latyn setir harp girizme',
     '🔢' => 'san girizme',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tn.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tn.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'atla: mosadi, mosadi, letlalo la mmala o montsho, letlalo la mmala o o mo magareng',
     '👩🏿‍❤‍💋‍👩🏾' => 'atla: mosadi, mosadi, letlalo la mmala o montsho, letlalo la mmala wa bontsho jo bo mo magareng',
     '👩🏿‍❤‍💋‍👩🏿' => 'atla: mosadi, mosadi, letlalo la mmala o montsho',
+    '🧑🏻‍🫯‍🧑🏼' => 'batho ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo le le bosweu jo bo mo magareng',
+    '🧑🏻‍🫯‍🧑🏽' => 'batho ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo la mmala o o mo magareng',
+    '🧑🏻‍🫯‍🧑🏾' => 'batho ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo la mmala wa bontsho jo bo mo magareng',
+    '🧑🏻‍🫯‍🧑🏿' => 'batho ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo la mmala o montsho',
+    '🧑🏼‍🫯‍🧑🏻' => 'batho ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo le lesweu',
+    '🧑🏼‍🫯‍🧑🏽' => 'batho ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '🧑🏼‍🫯‍🧑🏾' => 'batho ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '🧑🏼‍🫯‍🧑🏿' => 'batho ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o montsho',
+    '🧑🏽‍🫯‍🧑🏻' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo le lesweu',
+    '🧑🏽‍🫯‍🧑🏼' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '🧑🏽‍🫯‍🧑🏾' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '🧑🏽‍🫯‍🧑🏿' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo la mmala o montsho',
+    '🧑🏾‍🫯‍🧑🏻' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le lesweu',
+    '🧑🏾‍🫯‍🧑🏼' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '🧑🏾‍🫯‍🧑🏽' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '🧑🏾‍🫯‍🧑🏿' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o montsho',
+    '🧑🏿‍🫯‍🧑🏻' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo le lesweu',
+    '🧑🏿‍🫯‍🧑🏼' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo le le bosweu jo bo mo magareng',
+    '🧑🏿‍🫯‍🧑🏽' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo la mmala o o mo magareng',
+    '🧑🏿‍🫯‍🧑🏾' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo la mmala wa bontsho jo bo mo magareng',
     '🧑🏻‍❤‍🧑🏼' => 'bobedi ka pelo: mogolo, mogolo, letlalo le lesweu, letlalo le le bosweu jo bo mo magareng',
     '🧑🏻‍❤‍🧑🏽' => 'bobedi ka pelo: mogolo, mogolo, letlalo le lesweu, letlalo la mmala o o mo magareng',
     '🧑🏻‍❤‍🧑🏾' => 'bobedi ka pelo: mogolo, mogolo, letlalo le lesweu, letlalo la mmala wa bontsho jo bo mo magareng',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'bobedi ka pelo: mogolo, mogolo, letlalo la mmala o montsho, letlalo le le bosweu jo bo mo magareng',
     '🧑🏿‍❤‍🧑🏽' => 'bobedi ka pelo: mogolo, mogolo, letlalo la mmala o montsho, letlalo la mmala o o mo magareng',
     '🧑🏿‍❤‍🧑🏾' => 'bobedi ka pelo: mogolo, mogolo, letlalo la mmala o montsho, letlalo la mmala wa bontsho jo bo mo magareng',
+    '🧑🏻‍🐰‍🧑🏼' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo le le bosweu jo bo mo magareng',
+    '🧑🏻‍🐰‍🧑🏽' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo la mmala o o mo magareng',
+    '🧑🏻‍🐰‍🧑🏾' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo la mmala wa bontsho jo bo mo magareng',
+    '🧑🏻‍🐰‍🧑🏿' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo la mmala o montsho',
+    '🧑🏼‍🐰‍🧑🏻' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo le lesweu',
+    '🧑🏼‍🐰‍🧑🏽' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '🧑🏼‍🐰‍🧑🏾' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '🧑🏼‍🐰‍🧑🏿' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o montsho',
+    '🧑🏽‍🐰‍🧑🏻' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo le lesweu',
+    '🧑🏽‍🐰‍🧑🏼' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '🧑🏽‍🐰‍🧑🏾' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '🧑🏽‍🐰‍🧑🏿' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo la mmala o montsho',
+    '🧑🏾‍🐰‍🧑🏻' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le lesweu',
+    '🧑🏾‍🐰‍🧑🏼' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '🧑🏾‍🐰‍🧑🏽' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '🧑🏾‍🐰‍🧑🏿' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o montsho',
+    '🧑🏿‍🐰‍🧑🏻' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo le lesweu',
+    '🧑🏿‍🐰‍🧑🏼' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo le le bosweu jo bo mo magareng',
+    '🧑🏿‍🐰‍🧑🏽' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo la mmala o o mo magareng',
+    '🧑🏿‍🐰‍🧑🏾' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👨🏻‍🫯‍👨🏼' => 'banna ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo le le bosweu jo bo mo magareng',
+    '👨🏻‍🫯‍👨🏽' => 'banna ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo la mmala o o mo magareng',
+    '👨🏻‍🫯‍👨🏾' => 'banna ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👨🏻‍🫯‍👨🏿' => 'banna ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo la mmala o montsho',
+    '👨🏼‍🫯‍👨🏻' => 'banna ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo le lesweu',
+    '👨🏼‍🫯‍👨🏽' => 'banna ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '👨🏼‍🫯‍👨🏾' => 'banna ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👨🏼‍🫯‍👨🏿' => 'banna ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o montsho',
+    '👨🏽‍🫯‍👨🏻' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo le lesweu',
+    '👨🏽‍🫯‍👨🏼' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '👨🏽‍🫯‍👨🏾' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👨🏽‍🫯‍👨🏿' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo la mmala o montsho',
+    '👨🏾‍🫯‍👨🏻' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le lesweu',
+    '👨🏾‍🫯‍👨🏼' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '👨🏾‍🫯‍👨🏽' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '👨🏾‍🫯‍👨🏿' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o montsho',
+    '👨🏿‍🫯‍👨🏻' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo le lesweu',
+    '👨🏿‍🫯‍👨🏼' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo le le bosweu jo bo mo magareng',
+    '👨🏿‍🫯‍👨🏽' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo la mmala o o mo magareng',
+    '👨🏿‍🫯‍👨🏾' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo la mmala wa bontsho jo bo mo magareng',
     '👨🏻‍❤‍👨🏻' => 'bobedi ka pelo: monna, monna, letlalo le lesweu',
     '👨🏻‍❤‍👨🏼' => 'bobedi ka pelo: monna, monna, letlalo le lesweu, letlalo le le bosweu jo bo mo magareng',
     '👨🏻‍❤‍👨🏽' => 'bobedi ka pelo: monna, monna, letlalo le lesweu, letlalo la mmala o o mo magareng',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'bobedi ka pelo: monna, monna, letlalo la mmala o montsho, letlalo la mmala o o mo magareng',
     '👨🏿‍❤‍👨🏾' => 'bobedi ka pelo: monna, monna, letlalo la mmala o montsho, letlalo la mmala wa bontsho jo bo mo magareng',
     '👨🏿‍❤‍👨🏿' => 'bobedi ka pelo: monna, monna, letlalo la mmala o montsho',
+    '👨🏻‍🐰‍👨🏼' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo le le bosweu jo bo mo magareng',
+    '👨🏻‍🐰‍👨🏽' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo la mmala o o mo magareng',
+    '👨🏻‍🐰‍👨🏾' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👨🏻‍🐰‍👨🏿' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo la mmala o montsho',
+    '👨🏼‍🐰‍👨🏻' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo le lesweu',
+    '👨🏼‍🐰‍👨🏽' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '👨🏼‍🐰‍👨🏾' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👨🏼‍🐰‍👨🏿' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o montsho',
+    '👨🏽‍🐰‍👨🏻' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo le lesweu',
+    '👨🏽‍🐰‍👨🏼' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '👨🏽‍🐰‍👨🏾' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👨🏽‍🐰‍👨🏿' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo la mmala o montsho',
+    '👨🏾‍🐰‍👨🏻' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le lesweu',
+    '👨🏾‍🐰‍👨🏼' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '👨🏾‍🐰‍👨🏽' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '👨🏾‍🐰‍👨🏿' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o montsho',
+    '👨🏿‍🐰‍👨🏻' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo le lesweu',
+    '👨🏿‍🐰‍👨🏼' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo le le bosweu jo bo mo magareng',
+    '👨🏿‍🐰‍👨🏽' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo la mmala o o mo magareng',
+    '👨🏿‍🐰‍👨🏾' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👩🏻‍🫯‍👩🏼' => 'basadi ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo le le bosweu jo bo mo magareng',
+    '👩🏻‍🫯‍👩🏽' => 'basadi ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo la mmala o o mo magareng',
+    '👩🏻‍🫯‍👩🏾' => 'basadi ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👩🏻‍🫯‍👩🏿' => 'basadi ba ba lwang ka go mekamekana: letlalo le lesweu, letlalo la mmala o montsho',
+    '👩🏼‍🫯‍👩🏻' => 'basadi ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo le lesweu',
+    '👩🏼‍🫯‍👩🏽' => 'basadi ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '👩🏼‍🫯‍👩🏾' => 'basadi ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👩🏼‍🫯‍👩🏿' => 'basadi ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o montsho',
+    '👩🏽‍🫯‍👩🏻' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo le lesweu',
+    '👩🏽‍🫯‍👩🏼' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '👩🏽‍🫯‍👩🏾' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👩🏽‍🫯‍👩🏿' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng, letlalo la mmala o montsho',
+    '👩🏾‍🫯‍👩🏻' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le lesweu',
+    '👩🏾‍🫯‍👩🏼' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '👩🏾‍🫯‍👩🏽' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '👩🏾‍🫯‍👩🏿' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o montsho',
+    '👩🏿‍🫯‍👩🏻' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo le lesweu',
+    '👩🏿‍🫯‍👩🏼' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo le le bosweu jo bo mo magareng',
+    '👩🏿‍🫯‍👩🏽' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo la mmala o o mo magareng',
+    '👩🏿‍🫯‍👩🏾' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala o montsho, letlalo la mmala wa bontsho jo bo mo magareng',
     '👩🏻‍❤‍👨🏻' => 'bobedi ka pelo: mosadi, monna, letlalo le lesweu',
     '👩🏻‍❤‍👨🏼' => 'bobedi ka pelo: mosadi, monna, letlalo le lesweu, letlalo le le bosweu jo bo mo magareng',
     '👩🏻‍❤‍👨🏽' => 'bobedi ka pelo: mosadi, monna, letlalo le lesweu, letlalo la mmala o o mo magareng',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'bobedi ka pelo: mosadi, mosadi, letlalo la mmala o montsho, letlalo la mmala o o mo magareng',
     '👩🏿‍❤‍👩🏾' => 'bobedi ka pelo: mosadi, mosadi, letlalo la mmala o montsho, letlalo la mmala wa bontsho jo bo mo magareng',
     '👩🏿‍❤‍👩🏿' => 'bobedi ka pelo: mosadi, mosadi, letlalo la mmala o montsho',
+    '👩🏻‍🐰‍👩🏼' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo le le bosweu jo bo mo magareng',
+    '👩🏻‍🐰‍👩🏽' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo la mmala o o mo magareng',
+    '👩🏻‍🐰‍👩🏾' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👩🏻‍🐰‍👩🏿' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu, letlalo la mmala o montsho',
+    '👩🏼‍🐰‍👩🏻' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo le lesweu',
+    '👩🏼‍🐰‍👩🏽' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '👩🏼‍🐰‍👩🏾' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👩🏼‍🐰‍👩🏿' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng, letlalo la mmala o montsho',
+    '👩🏽‍🐰‍👩🏻' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo le lesweu',
+    '👩🏽‍🐰‍👩🏼' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '👩🏽‍🐰‍👩🏾' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo la mmala wa bontsho jo bo mo magareng',
+    '👩🏽‍🐰‍👩🏿' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng, letlalo la mmala o montsho',
+    '👩🏾‍🐰‍👩🏻' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le lesweu',
+    '👩🏾‍🐰‍👩🏼' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo le le bosweu jo bo mo magareng',
+    '👩🏾‍🐰‍👩🏽' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o o mo magareng',
+    '👩🏾‍🐰‍👩🏿' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng, letlalo la mmala o montsho',
+    '👩🏿‍🐰‍👩🏻' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo le lesweu',
+    '👩🏿‍🐰‍👩🏼' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo le le bosweu jo bo mo magareng',
+    '👩🏿‍🐰‍👩🏽' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo la mmala o o mo magareng',
+    '👩🏿‍🐰‍👩🏾' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho, letlalo la mmala wa bontsho jo bo mo magareng',
     '👩🏻‍🤝‍👩🏼' => 'basadi ba babedi ba tshwarane matsogo: letlalo le lesweu, letlalo le le bosweu jo bo mo magareng',
     '👩🏻‍🤝‍👩🏽' => 'basadi ba babedi ba tshwarane matsogo: letlalo le lesweu, letlalo la mmala o o mo magareng',
     '👩🏻‍🤝‍👩🏾' => 'basadi ba babedi ba tshwarane matsogo: letlalo le lesweu, letlalo la mmala wa bontsho jo bo mo magareng',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'mosadi yo o tabogang: letlalo la mmala o o mo magareng',
     '🏃🏾‍♀' => 'mosadi yo o tabogang: letlalo la mmala wa bontsho jo bo mo magareng',
     '🏃🏿‍♀' => 'mosadi yo o tabogang: letlalo la mmala o montsho',
+    '👯🏻‍♀' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu',
+    '👯🏼‍♀' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng',
+    '👯🏽‍♀' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng',
+    '👯🏾‍♀' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng',
+    '👯🏿‍♀' => 'basadi ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho',
+    '👯🏻‍♂' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu',
+    '👯🏼‍♂' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng',
+    '👯🏽‍♂' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng',
+    '👯🏾‍♂' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng',
+    '👯🏿‍♂' => 'banna ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho',
     '🧖🏻‍♂' => 'monna mo kamoreng ya metsi a a belang: letlalo le lesweu',
     '🧖🏼‍♂' => 'monna mo kamoreng ya metsi a a belang: letlalo le le bosweu jo bo mo magareng',
     '🧖🏽‍♂' => 'monna mo kamoreng ya metsi a a belang: letlalo la mmala o o mo magareng',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'mosadi yo o tsamaisang kolotsana: letlalo la mmala o o mo magareng',
     '🤸🏾‍♀' => 'mosadi yo o tsamaisang kolotsana: letlalo la mmala wa bontsho jo bo mo magareng',
     '🤸🏿‍♀' => 'mosadi yo o tsamaisang kolotsana: letlalo la mmala o montsho',
+    '🤼🏻‍♀' => 'basadi ba ba lwang ka go mekamekana: letlalo le lesweu',
+    '🤼🏼‍♀' => 'basadi ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng',
+    '🤼🏽‍♀' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng',
+    '🤼🏾‍♀' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng',
+    '🤼🏿‍♀' => 'basadi ba ba lwang ka go mekamekana: letlalo la mmala o montsho',
+    '🤼🏻‍♂' => 'banna ba ba lwang ka go mekamekana: letlalo le lesweu',
+    '🤼🏼‍♂' => 'banna ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng',
+    '🤼🏽‍♂' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng',
+    '🤼🏾‍♂' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng',
+    '🤼🏿‍♂' => 'banna ba ba lwang ka go mekamekana: letlalo la mmala o montsho',
     '🤽🏻‍♂' => 'monna yo o tshamekang polo ya metsi: letlalo le lesweu',
     '🤽🏼‍♂' => 'monna yo o tshamekang polo ya metsi: letlalo le le bosweu jo bo mo magareng',
     '🤽🏽‍♂' => 'monna yo o tshamekang polo ya metsi: letlalo la mmala o o mo magareng',
@@ -1392,6 +1532,11 @@
     '🕴🏽' => 'monna mo sutung ya kgwebo a ya godimo: letlalo la mmala o o mo magareng',
     '🕴🏾' => 'monna mo sutung ya kgwebo a ya godimo: letlalo la mmala wa bontsho jo bo mo magareng',
     '🕴🏿' => 'monna mo sutung ya kgwebo a ya godimo: letlalo la mmala o montsho',
+    '👯🏻' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo le lesweu',
+    '👯🏼' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo le le bosweu jo bo mo magareng',
+    '👯🏽' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o o mo magareng',
+    '👯🏾' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala wa bontsho jo bo mo magareng',
+    '👯🏿' => 'batho ka ditsebe tsa mmutla mo moletlong: letlalo la mmala o montsho',
     '🧖🏻' => 'motho mo kamoreng ya metsi a a belang: letlalo le lesweu',
     '🧖🏼' => 'motho mo kamoreng ya metsi a a belang: letlalo le le bosweu jo bo mo magareng',
     '🧖🏽' => 'motho mo kamoreng ya metsi a a belang: letlalo la mmala o o mo magareng',
@@ -1457,6 +1602,11 @@
     '🤸🏽' => 'motho yo o tsamaisang kolotsana: letlalo la mmala o o mo magareng',
     '🤸🏾' => 'motho yo o tsamaisang kolotsana: letlalo la mmala wa bontsho jo bo mo magareng',
     '🤸🏿' => 'motho yo o tsamaisang kolotsana: letlalo la mmala o montsho',
+    '🤼🏻' => 'batho ba ba lwang ka go mekamekana: letlalo le lesweu',
+    '🤼🏼' => 'batho ba ba lwang ka go mekamekana: letlalo le le bosweu jo bo mo magareng',
+    '🤼🏽' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala o o mo magareng',
+    '🤼🏾' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala wa bontsho jo bo mo magareng',
+    '🤼🏿' => 'batho ba ba lwang ka go mekamekana: letlalo la mmala o montsho',
     '🤽🏻' => 'motho yo o tshamekang polo ya metsi: letlalo le lesweu',
     '🤽🏼' => 'motho yo o tshamekang polo ya metsi: letlalo le le bosweu jo bo mo magareng',
     '🤽🏽' => 'motho yo o tshamekang polo ya metsi: letlalo la mmala o o mo magareng',
@@ -1857,6 +2007,9 @@
     '🦈' => 'shaka',
     '🐙' => 'okothopase',
     '🐚' => 'kgapetla e e itshopang',
+    '🦀' => 'lekakaie',
+    '🦐' => 'shrimp',
+    '🦑' => 'squid',
     '🐌' => 'kgopa',
     '🦋' => 'serurubele',
     '🐛' => 'setshedinyana',
@@ -1958,9 +2111,6 @@
     '🥟' => 'ledombolo',
     '🥠' => 'khukhi ya lesego',
     '🥡' => 'lebokoso la dijo tse di jelwang kwa gae',
-    '🦀' => 'lekakaie',
-    '🦐' => 'shrimp',
-    '🦑' => 'squid',
     '🍦' => 'aese kirimi e e seng thata',
     '🍧' => 'shaved ice',
     '🍨' => 'aese kirimi',
@@ -2312,9 +2462,9 @@
     '🎧' => 'sereetsaditsebeng',
     '📻' => 'radio',
     '🎷' => 'sekesofouno',
+    '🎺' => 'lenaka',
     '🎸' => 'katara',
     '🎹' => 'khiiboto ya mmino',
-    '🎺' => 'lenaka',
     '🎻' => 'bayolene',
     '🥁' => 'moropa',
     '📱' => 'founo ya mobaele',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-to.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-to.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-to.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-to.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ʻuma: fefine, fefine, kili ʻuliʻuli mo e kili melomelo',
     '👩🏿‍❤‍💋‍👩🏾' => 'ʻuma: fefine, fefine, kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
     '👩🏿‍❤‍💋‍👩🏿' => 'ʻuma: fefine, fefine mo e kili ʻuliʻuli',
+    '🧑🏻‍🫯‍🧑🏼' => 'kakai fangatua: kili hinehina mo e kili kelokelo',
+    '🧑🏻‍🫯‍🧑🏽' => 'kakai fangatua: kili hinehina mo e kili melomelo',
+    '🧑🏻‍🫯‍🧑🏾' => 'kakai fangatua: kili hinehina mo e kili melomelo-ʻuliʻuli',
+    '🧑🏻‍🫯‍🧑🏿' => 'kakai fangatua: kili hinehina mo e kili ʻuliʻuli',
+    '🧑🏼‍🫯‍🧑🏻' => 'kakai fangatua: kili kelokelo mo e kili hinehina',
+    '🧑🏼‍🫯‍🧑🏽' => 'kakai fangatua: kili kelokelo mo e kili melomelo',
+    '🧑🏼‍🫯‍🧑🏾' => 'kakai fangatua: kili kelokelo mo e kili melomelo-ʻuliʻuli',
+    '🧑🏼‍🫯‍🧑🏿' => 'kakai fangatua: kili kelokelo mo e kili ʻuliʻuli',
+    '🧑🏽‍🫯‍🧑🏻' => 'kakai fangatua: kili melomelo mo e kili hinehina',
+    '🧑🏽‍🫯‍🧑🏼' => 'kakai fangatua: kili melomelo mo e kili kelokelo',
+    '🧑🏽‍🫯‍🧑🏾' => 'kakai fangatua: kili melomelo mo e kili melomelo-ʻuliʻuli',
+    '🧑🏽‍🫯‍🧑🏿' => 'kakai fangatua: kili melomelo mo e kili ʻuliʻuli',
+    '🧑🏾‍🫯‍🧑🏻' => 'kakai fangatua: kili melomelo-ʻuliʻuli mo e kili hinehina',
+    '🧑🏾‍🫯‍🧑🏼' => 'kakai fangatua: kili melomelo-ʻuliʻuli mo e kili kelokelo',
+    '🧑🏾‍🫯‍🧑🏽' => 'kakai fangatua: kili melomelo-ʻuliʻuli mo e kili melomelo',
+    '🧑🏾‍🫯‍🧑🏿' => 'kakai fangatua: kili melomelo-ʻuliʻuli mo e kili ʻuliʻuli',
+    '🧑🏿‍🫯‍🧑🏻' => 'kakai fangatua: kili ʻuliʻuli mo e kili hinehina',
+    '🧑🏿‍🫯‍🧑🏼' => 'kakai fangatua: kili ʻuliʻuli mo e kili kelokelo',
+    '🧑🏿‍🫯‍🧑🏽' => 'kakai fangatua: kili ʻuliʻuli mo e kili melomelo',
+    '🧑🏿‍🫯‍🧑🏾' => 'kakai fangatua: kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
     '🧑🏻‍❤‍🧑🏼' => 'ongo tokoua moe mafu: kakai lalahi, kakai lalahi, kili hinehina mo e kili kelokelo',
     '🧑🏻‍❤‍🧑🏽' => 'ongo tokoua moe mafu: kakai lalahi, kakai lalahi, kili hinehina mo e kili melomelo',
     '🧑🏻‍❤‍🧑🏾' => 'ongo tokoua moe mafu: kakai lalahi, kakai lalahi, kili hinehina mo e kili melomelo-ʻuliʻuli',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'ongo tokoua moe mafu: kakai lalahi, kakai lalahi, kili ʻuliʻuli mo e kili kelokelo',
     '🧑🏿‍❤‍🧑🏽' => 'ongo tokoua moe mafu: kakai lalahi, kakai lalahi, kili ʻuliʻuli mo e kili melomelo',
     '🧑🏿‍❤‍🧑🏾' => 'ongo tokoua moe mafu: kakai lalahi, kakai lalahi, kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
+    '🧑🏻‍🐰‍🧑🏼' => 'tokoua telinga-lāpisi: kili hinehina mo e kili kelokelo',
+    '🧑🏻‍🐰‍🧑🏽' => 'tokoua telinga-lāpisi: kili hinehina mo e kili melomelo',
+    '🧑🏻‍🐰‍🧑🏾' => 'tokoua telinga-lāpisi: kili hinehina mo e kili melomelo-ʻuliʻuli',
+    '🧑🏻‍🐰‍🧑🏿' => 'tokoua telinga-lāpisi: kili hinehina mo e kili ʻuliʻuli',
+    '🧑🏼‍🐰‍🧑🏻' => 'tokoua telinga-lāpisi: kili kelokelo mo e kili hinehina',
+    '🧑🏼‍🐰‍🧑🏽' => 'tokoua telinga-lāpisi: kili kelokelo mo e kili melomelo',
+    '🧑🏼‍🐰‍🧑🏾' => 'tokoua telinga-lāpisi: kili kelokelo mo e kili melomelo-ʻuliʻuli',
+    '🧑🏼‍🐰‍🧑🏿' => 'tokoua telinga-lāpisi: kili kelokelo mo e kili ʻuliʻuli',
+    '🧑🏽‍🐰‍🧑🏻' => 'tokoua telinga-lāpisi: kili melomelo mo e kili hinehina',
+    '🧑🏽‍🐰‍🧑🏼' => 'tokoua telinga-lāpisi: kili melomelo mo e kili kelokelo',
+    '🧑🏽‍🐰‍🧑🏾' => 'tokoua telinga-lāpisi: kili melomelo mo e kili melomelo-ʻuliʻuli',
+    '🧑🏽‍🐰‍🧑🏿' => 'tokoua telinga-lāpisi: kili melomelo mo e kili ʻuliʻuli',
+    '🧑🏾‍🐰‍🧑🏻' => 'tokoua telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili hinehina',
+    '🧑🏾‍🐰‍🧑🏼' => 'tokoua telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili kelokelo',
+    '🧑🏾‍🐰‍🧑🏽' => 'tokoua telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili melomelo',
+    '🧑🏾‍🐰‍🧑🏿' => 'tokoua telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili ʻuliʻuli',
+    '🧑🏿‍🐰‍🧑🏻' => 'tokoua telinga-lāpisi: kili ʻuliʻuli mo e kili hinehina',
+    '🧑🏿‍🐰‍🧑🏼' => 'tokoua telinga-lāpisi: kili ʻuliʻuli mo e kili kelokelo',
+    '🧑🏿‍🐰‍🧑🏽' => 'tokoua telinga-lāpisi: kili ʻuliʻuli mo e kili melomelo',
+    '🧑🏿‍🐰‍🧑🏾' => 'tokoua telinga-lāpisi: kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
+    '👨🏻‍🫯‍👨🏼' => 'ongo tangata fangatua: kili hinehina mo e kili kelokelo',
+    '👨🏻‍🫯‍👨🏽' => 'ongo tangata fangatua: kili hinehina mo e kili melomelo',
+    '👨🏻‍🫯‍👨🏾' => 'ongo tangata fangatua: kili hinehina mo e kili melomelo-ʻuliʻuli',
+    '👨🏻‍🫯‍👨🏿' => 'ongo tangata fangatua: kili hinehina mo e kili ʻuliʻuli',
+    '👨🏼‍🫯‍👨🏻' => 'ongo tangata fangatua: kili kelokelo mo e kili hinehina',
+    '👨🏼‍🫯‍👨🏽' => 'ongo tangata fangatua: kili kelokelo mo e kili melomelo',
+    '👨🏼‍🫯‍👨🏾' => 'ongo tangata fangatua: kili kelokelo mo e kili melomelo-ʻuliʻuli',
+    '👨🏼‍🫯‍👨🏿' => 'ongo tangata fangatua: kili kelokelo mo e kili ʻuliʻuli',
+    '👨🏽‍🫯‍👨🏻' => 'ongo tangata fangatua: kili melomelo mo e kili hinehina',
+    '👨🏽‍🫯‍👨🏼' => 'ongo tangata fangatua: kili melomelo mo e kili kelokelo',
+    '👨🏽‍🫯‍👨🏾' => 'ongo tangata fangatua: kili melomelo mo e kili melomelo-ʻuliʻuli',
+    '👨🏽‍🫯‍👨🏿' => 'ongo tangata fangatua: kili melomelo mo e kili ʻuliʻuli',
+    '👨🏾‍🫯‍👨🏻' => 'ongo tangata fangatua: kili melomelo-ʻuliʻuli mo e kili hinehina',
+    '👨🏾‍🫯‍👨🏼' => 'ongo tangata fangatua: kili melomelo-ʻuliʻuli mo e kili kelokelo',
+    '👨🏾‍🫯‍👨🏽' => 'ongo tangata fangatua: kili melomelo-ʻuliʻuli mo e kili melomelo',
+    '👨🏾‍🫯‍👨🏿' => 'ongo tangata fangatua: kili melomelo-ʻuliʻuli mo e kili ʻuliʻuli',
+    '👨🏿‍🫯‍👨🏻' => 'ongo tangata fangatua: kili ʻuliʻuli mo e kili hinehina',
+    '👨🏿‍🫯‍👨🏼' => 'ongo tangata fangatua: kili ʻuliʻuli mo e kili kelokelo',
+    '👨🏿‍🫯‍👨🏽' => 'ongo tangata fangatua: kili ʻuliʻuli mo e kili melomelo',
+    '👨🏿‍🫯‍👨🏾' => 'ongo tangata fangatua: kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
     '👨🏻‍❤‍👨🏻' => 'ongo tokoua moe mafu: tangata, tangata mo e kili hinehina',
     '👨🏻‍❤‍👨🏼' => 'ongo tokoua moe mafu: tangata, tangata, kili hinehina mo e kili kelokelo',
     '👨🏻‍❤‍👨🏽' => 'ongo tokoua moe mafu: tangata, tangata, kili hinehina mo e kili melomelo',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'ongo tokoua moe mafu: tangata, tangata, kili ʻuliʻuli mo e kili melomelo',
     '👨🏿‍❤‍👨🏾' => 'ongo tokoua moe mafu: tangata, tangata, kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
     '👨🏿‍❤‍👨🏿' => 'ongo tokoua moe mafu: tangata, tangata mo e kili ʻuliʻuli',
+    '👨🏻‍🐰‍👨🏼' => 'ongo tangata telinga-lāpisi: kili hinehina mo e kili kelokelo',
+    '👨🏻‍🐰‍👨🏽' => 'ongo tangata telinga-lāpisi: kili hinehina mo e kili melomelo',
+    '👨🏻‍🐰‍👨🏾' => 'ongo tangata telinga-lāpisi: kili hinehina mo e kili melomelo-ʻuliʻuli',
+    '👨🏻‍🐰‍👨🏿' => 'ongo tangata telinga-lāpisi: kili hinehina mo e kili ʻuliʻuli',
+    '👨🏼‍🐰‍👨🏻' => 'ongo tangata telinga-lāpisi: kili kelokelo mo e kili hinehina',
+    '👨🏼‍🐰‍👨🏽' => 'ongo tangata telinga-lāpisi: kili kelokelo mo e kili melomelo',
+    '👨🏼‍🐰‍👨🏾' => 'ongo tangata telinga-lāpisi: kili kelokelo mo e kili melomelo-ʻuliʻuli',
+    '👨🏼‍🐰‍👨🏿' => 'ongo tangata telinga-lāpisi: kili kelokelo mo e kili ʻuliʻuli',
+    '👨🏽‍🐰‍👨🏻' => 'ongo tangata telinga-lāpisi: kili melomelo mo e kili hinehina',
+    '👨🏽‍🐰‍👨🏼' => 'ongo tangata telinga-lāpisi: kili melomelo mo e kili kelokelo',
+    '👨🏽‍🐰‍👨🏾' => 'ongo tangata telinga-lāpisi: kili melomelo mo e kili melomelo-ʻuliʻuli',
+    '👨🏽‍🐰‍👨🏿' => 'ongo tangata telinga-lāpisi: kili melomelo mo e kili ʻuliʻuli',
+    '👨🏾‍🐰‍👨🏻' => 'ongo tangata telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili hinehina',
+    '👨🏾‍🐰‍👨🏼' => 'ongo tangata telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili kelokelo',
+    '👨🏾‍🐰‍👨🏽' => 'ongo tangata telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili melomelo',
+    '👨🏾‍🐰‍👨🏿' => 'ongo tangata telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili ʻuliʻuli',
+    '👨🏿‍🐰‍👨🏻' => 'ongo tangata telinga-lāpisi: kili ʻuliʻuli mo e kili hinehina',
+    '👨🏿‍🐰‍👨🏼' => 'ongo tangata telinga-lāpisi: kili ʻuliʻuli mo e kili kelokelo',
+    '👨🏿‍🐰‍👨🏽' => 'ongo tangata telinga-lāpisi: kili ʻuliʻuli mo e kili melomelo',
+    '👨🏿‍🐰‍👨🏾' => 'ongo tangata telinga-lāpisi: kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
+    '👩🏻‍🫯‍👩🏼' => 'fafine fangatua: kili hinehina mo e kili kelokelo',
+    '👩🏻‍🫯‍👩🏽' => 'fafine fangatua: kili hinehina mo e kili melomelo',
+    '👩🏻‍🫯‍👩🏾' => 'fafine fangatua: kili hinehina mo e kili melomelo-ʻuliʻuli',
+    '👩🏻‍🫯‍👩🏿' => 'fafine fangatua: kili hinehina mo e kili ʻuliʻuli',
+    '👩🏼‍🫯‍👩🏻' => 'fafine fangatua: kili kelokelo mo e kili hinehina',
+    '👩🏼‍🫯‍👩🏽' => 'fafine fangatua: kili kelokelo mo e kili melomelo',
+    '👩🏼‍🫯‍👩🏾' => 'fafine fangatua: kili kelokelo mo e kili melomelo-ʻuliʻuli',
+    '👩🏼‍🫯‍👩🏿' => 'fafine fangatua: kili kelokelo mo e kili ʻuliʻuli',
+    '👩🏽‍🫯‍👩🏻' => 'fafine fangatua: kili melomelo mo e kili hinehina',
+    '👩🏽‍🫯‍👩🏼' => 'fafine fangatua: kili melomelo mo e kili kelokelo',
+    '👩🏽‍🫯‍👩🏾' => 'fafine fangatua: kili melomelo mo e kili melomelo-ʻuliʻuli',
+    '👩🏽‍🫯‍👩🏿' => 'fafine fangatua: kili melomelo mo e kili ʻuliʻuli',
+    '👩🏾‍🫯‍👩🏻' => 'fafine fangatua: kili melomelo-ʻuliʻuli mo e kili hinehina',
+    '👩🏾‍🫯‍👩🏼' => 'fafine fangatua: kili melomelo-ʻuliʻuli mo e kili kelokelo',
+    '👩🏾‍🫯‍👩🏽' => 'fafine fangatua: kili melomelo-ʻuliʻuli mo e kili melomelo',
+    '👩🏾‍🫯‍👩🏿' => 'fafine fangatua: kili melomelo-ʻuliʻuli mo e kili ʻuliʻuli',
+    '👩🏿‍🫯‍👩🏻' => 'fafine fangatua: kili ʻuliʻuli mo e kili hinehina',
+    '👩🏿‍🫯‍👩🏼' => 'fafine fangatua: kili ʻuliʻuli mo e kili kelokelo',
+    '👩🏿‍🫯‍👩🏽' => 'fafine fangatua: kili ʻuliʻuli mo e kili melomelo',
+    '👩🏿‍🫯‍👩🏾' => 'fafine fangatua: kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
     '👩🏻‍❤‍👨🏻' => 'ongo tokoua moe mafu: fefine, tangata mo e kili hinehina',
     '👩🏻‍❤‍👨🏼' => 'ongo tokoua moe mafu: fefine, tangata, kili hinehina mo e kili kelokelo',
     '👩🏻‍❤‍👨🏽' => 'ongo tokoua moe mafu: fefine, tangata, kili hinehina mo e kili melomelo',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'ongo tokoua moe mafu: fefine, fefine, kili ʻuliʻuli mo e kili melomelo',
     '👩🏿‍❤‍👩🏾' => 'ongo tokoua moe mafu: fefine, fefine, kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
     '👩🏿‍❤‍👩🏿' => 'ongo tokoua moe mafu: fefine, fefine mo e kili ʻuliʻuli',
+    '👩🏻‍🐰‍👩🏼' => 'fafine telinga-lāpisi: kili hinehina mo e kili kelokelo',
+    '👩🏻‍🐰‍👩🏽' => 'fafine telinga-lāpisi: kili hinehina mo e kili melomelo',
+    '👩🏻‍🐰‍👩🏾' => 'fafine telinga-lāpisi: kili hinehina mo e kili melomelo-ʻuliʻuli',
+    '👩🏻‍🐰‍👩🏿' => 'fafine telinga-lāpisi: kili hinehina mo e kili ʻuliʻuli',
+    '👩🏼‍🐰‍👩🏻' => 'fafine telinga-lāpisi: kili kelokelo mo e kili hinehina',
+    '👩🏼‍🐰‍👩🏽' => 'fafine telinga-lāpisi: kili kelokelo mo e kili melomelo',
+    '👩🏼‍🐰‍👩🏾' => 'fafine telinga-lāpisi: kili kelokelo mo e kili melomelo-ʻuliʻuli',
+    '👩🏼‍🐰‍👩🏿' => 'fafine telinga-lāpisi: kili kelokelo mo e kili ʻuliʻuli',
+    '👩🏽‍🐰‍👩🏻' => 'fafine telinga-lāpisi: kili melomelo mo e kili hinehina',
+    '👩🏽‍🐰‍👩🏼' => 'fafine telinga-lāpisi: kili melomelo mo e kili kelokelo',
+    '👩🏽‍🐰‍👩🏾' => 'fafine telinga-lāpisi: kili melomelo mo e kili melomelo-ʻuliʻuli',
+    '👩🏽‍🐰‍👩🏿' => 'fafine telinga-lāpisi: kili melomelo mo e kili ʻuliʻuli',
+    '👩🏾‍🐰‍👩🏻' => 'fafine telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili hinehina',
+    '👩🏾‍🐰‍👩🏼' => 'fafine telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili kelokelo',
+    '👩🏾‍🐰‍👩🏽' => 'fafine telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili melomelo',
+    '👩🏾‍🐰‍👩🏿' => 'fafine telinga-lāpisi: kili melomelo-ʻuliʻuli mo e kili ʻuliʻuli',
+    '👩🏿‍🐰‍👩🏻' => 'fafine telinga-lāpisi: kili ʻuliʻuli mo e kili hinehina',
+    '👩🏿‍🐰‍👩🏼' => 'fafine telinga-lāpisi: kili ʻuliʻuli mo e kili kelokelo',
+    '👩🏿‍🐰‍👩🏽' => 'fafine telinga-lāpisi: kili ʻuliʻuli mo e kili melomelo',
+    '👩🏿‍🐰‍👩🏾' => 'fafine telinga-lāpisi: kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
     '🧑🏻‍🤝‍🧑🏻' => 'kakai fetakinima: kili hinehina',
     '🧑🏻‍🤝‍🧑🏼' => 'kakai fetakinima: kili hinehina mo e kili kelokelo',
     '🧑🏻‍🤝‍🧑🏽' => 'kakai fetakinima: kili hinehina mo e kili melomelo',
@@ -289,81 +409,81 @@
     '👩‍👩‍👦‍👦' => 'fāmili: fefine, fefine, tamasiʻi mo e tamasiʻi',
     '👩‍👩‍👧‍👧' => 'fāmili: fefine, fefine, taʻahine mo e taʻahine',
     '🧑‍🧑‍🧒‍🧒' => 'fāmili: ongo motuʻa, ongo fānau',
-    '🚶🏻‍♀‍➡' => 'fefine lue hangamataʻu',
-    '🚶🏼‍♀‍➡' => 'fefine lue hangamataʻu',
-    '🚶🏽‍♀‍➡' => 'fefine lue hangamataʻu',
-    '🚶🏾‍♀‍➡' => 'fefine lue hangamataʻu',
-    '🚶🏿‍♀‍➡' => 'fefine lue hangamataʻu',
-    '🚶🏻‍♂‍➡' => 'tangata lue hangamataʻu',
-    '🚶🏼‍♂‍➡' => 'tangata lue hangamataʻu',
-    '🚶🏽‍♂‍➡' => 'tangata lue hangamataʻu',
-    '🚶🏾‍♂‍➡' => 'tangata lue hangamataʻu',
-    '🚶🏿‍♂‍➡' => 'tangata lue hangamataʻu',
-    '🧎🏻‍♀‍➡' => 'fefine tūʻulutui hangamataʻu',
-    '🧎🏼‍♀‍➡' => 'fefine tūʻulutui hangamataʻu',
-    '🧎🏽‍♀‍➡' => 'fefine tūʻulutui hangamataʻu',
-    '🧎🏾‍♀‍➡' => 'fefine tūʻulutui hangamataʻu',
-    '🧎🏿‍♀‍➡' => 'fefine tūʻulutui hangamataʻu',
-    '🧎🏻‍♂‍➡' => 'tangata tūʻulutui hangamataʻu',
-    '🧎🏼‍♂‍➡' => 'tangata tūʻulutui hangamataʻu',
-    '🧎🏽‍♂‍➡' => 'tangata tūʻulutui hangamataʻu',
-    '🧎🏾‍♂‍➡' => 'tangata tūʻulutui hangamataʻu',
-    '🧎🏿‍♂‍➡' => 'tangata tūʻulutui hangamataʻu',
-    '🧑🏻‍🦯‍➡' => 'tokotaha moe tokotokokui hangamataʻu',
-    '🧑🏼‍🦯‍➡' => 'tokotaha moe tokotokokui hangamataʻu',
-    '🧑🏽‍🦯‍➡' => 'tokotaha moe tokotokokui hangamataʻu',
-    '🧑🏾‍🦯‍➡' => 'tokotaha moe tokotokokui hangamataʻu',
-    '🧑🏿‍🦯‍➡' => 'tokotaha moe tokotokokui hangamataʻu',
-    '👨🏻‍🦯‍➡' => 'tangata moe tokotokokui hangamataʻu',
-    '👨🏼‍🦯‍➡' => 'tangata moe tokotokokui hangamataʻu',
-    '👨🏽‍🦯‍➡' => 'tangata moe tokotokokui hangamataʻu',
-    '👨🏾‍🦯‍➡' => 'tangata moe tokotokokui hangamataʻu',
-    '👨🏿‍🦯‍➡' => 'tangata moe tokotokokui hangamataʻu',
-    '👩🏻‍🦯‍➡' => 'fefine moe tokotokokui hangamataʻu',
-    '👩🏼‍🦯‍➡' => 'fefine moe tokotokokui hangamataʻu',
-    '👩🏽‍🦯‍➡' => 'fefine moe tokotokokui hangamataʻu',
-    '👩🏾‍🦯‍➡' => 'fefine moe tokotokokui hangamataʻu',
-    '👩🏿‍🦯‍➡' => 'fefine moe tokotokokui hangamataʻu',
-    '🧑🏻‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '🧑🏼‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '🧑🏽‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '🧑🏾‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '🧑🏿‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👨🏻‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👨🏼‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👨🏽‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👨🏾‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👨🏿‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👩🏻‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👩🏼‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👩🏽‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👩🏾‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👩🏿‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '🧑🏻‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki hangamataʻu',
-    '🧑🏼‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki hangamataʻu',
-    '🧑🏽‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki hangamataʻu',
-    '🧑🏾‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki hangamataʻu',
-    '🧑🏿‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki hangamataʻu',
-    '👨🏻‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki hangamataʻu',
-    '👨🏼‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki hangamataʻu',
-    '👨🏽‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki hangamataʻu',
-    '👨🏾‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki hangamataʻu',
-    '👨🏿‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki hangamataʻu',
-    '👩🏻‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki hangamataʻu',
-    '👩🏼‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki hangamataʻu',
-    '👩🏽‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki hangamataʻu',
-    '👩🏾‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki hangamataʻu',
-    '👩🏿‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki hangamataʻu',
-    '🏃🏻‍♀‍➡' => 'fefine lele hangamataʻu',
-    '🏃🏼‍♀‍➡' => 'fefine lele hangamataʻu',
-    '🏃🏽‍♀‍➡' => 'fefine lele hangamataʻu',
-    '🏃🏾‍♀‍➡' => 'fefine lele hangamataʻu',
-    '🏃🏿‍♀‍➡' => 'fefine lele hangamataʻu',
-    '🏃🏻‍♂‍➡' => 'tangata lele hangamataʻu',
-    '🏃🏼‍♂‍➡' => 'tangata lele hangamataʻu',
-    '🏃🏽‍♂‍➡' => 'tangata lele hangamataʻu',
-    '🏃🏾‍♂‍➡' => 'tangata lele hangamataʻu',
-    '🏃🏿‍♂‍➡' => 'tangata lele hangamataʻu',
+    '🚶🏻‍♀‍➡' => 'fefine lue: kili hinehina mo e hangamataʻu',
+    '🚶🏼‍♀‍➡' => 'fefine lue: kili kelokelo mo e hangamataʻu',
+    '🚶🏽‍♀‍➡' => 'fefine lue: kili melomelo mo e hangamataʻu',
+    '🚶🏾‍♀‍➡' => 'fefine lue: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🚶🏿‍♀‍➡' => 'fefine lue: kili ʻuliʻuli mo e hangamataʻu',
+    '🚶🏻‍♂‍➡' => 'tangata lue: kili hinehina mo e hangamataʻu',
+    '🚶🏼‍♂‍➡' => 'tangata lue: kili kelokelo mo e hangamataʻu',
+    '🚶🏽‍♂‍➡' => 'tangata lue: kili melomelo mo e hangamataʻu',
+    '🚶🏾‍♂‍➡' => 'tangata lue: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🚶🏿‍♂‍➡' => 'tangata lue: kili ʻuliʻuli mo e hangamataʻu',
+    '🧎🏻‍♀‍➡' => 'fefine tūʻulutui: kili hinehina mo e hangamataʻu',
+    '🧎🏼‍♀‍➡' => 'fefine tūʻulutui: kili kelokelo mo e hangamataʻu',
+    '🧎🏽‍♀‍➡' => 'fefine tūʻulutui: kili melomelo mo e hangamataʻu',
+    '🧎🏾‍♀‍➡' => 'fefine tūʻulutui: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🧎🏿‍♀‍➡' => 'fefine tūʻulutui: kili ʻuliʻuli mo e hangamataʻu',
+    '🧎🏻‍♂‍➡' => 'tangata tūʻulutui: kili hinehina mo e hangamataʻu',
+    '🧎🏼‍♂‍➡' => 'tangata tūʻulutui: kili kelokelo mo e hangamataʻu',
+    '🧎🏽‍♂‍➡' => 'tangata tūʻulutui: kili melomelo mo e hangamataʻu',
+    '🧎🏾‍♂‍➡' => 'tangata tūʻulutui: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🧎🏿‍♂‍➡' => 'tangata tūʻulutui: kili ʻuliʻuli mo e hangamataʻu',
+    '🧑🏻‍🦯‍➡' => 'tokotaha moe tokotokokui: kili hinehina mo e hangamataʻu',
+    '🧑🏼‍🦯‍➡' => 'tokotaha moe tokotokokui: kili kelokelo mo e hangamataʻu',
+    '🧑🏽‍🦯‍➡' => 'tokotaha moe tokotokokui: kili melomelo mo e hangamataʻu',
+    '🧑🏾‍🦯‍➡' => 'tokotaha moe tokotokokui: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🧑🏿‍🦯‍➡' => 'tokotaha moe tokotokokui: kili ʻuliʻuli mo e hangamataʻu',
+    '👨🏻‍🦯‍➡' => 'tangata moe tokotokokui: kili hinehina mo e hangamataʻu',
+    '👨🏼‍🦯‍➡' => 'tangata moe tokotokokui: kili kelokelo mo e hangamataʻu',
+    '👨🏽‍🦯‍➡' => 'tangata moe tokotokokui: kili melomelo mo e hangamataʻu',
+    '👨🏾‍🦯‍➡' => 'tangata moe tokotokokui: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '👨🏿‍🦯‍➡' => 'tangata moe tokotokokui: kili ʻuliʻuli mo e hangamataʻu',
+    '👩🏻‍🦯‍➡' => 'fefine moe tokotokokui: kili hinehina mo e hangamataʻu',
+    '👩🏼‍🦯‍➡' => 'fefine moe tokotokokui: kili kelokelo mo e hangamataʻu',
+    '👩🏽‍🦯‍➡' => 'fefine moe tokotokokui: kili melomelo mo e hangamataʻu',
+    '👩🏾‍🦯‍➡' => 'fefine moe tokotokokui: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '👩🏿‍🦯‍➡' => 'fefine moe tokotokokui: kili ʻuliʻuli mo e hangamataʻu',
+    '🧑🏻‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini: kili hinehina mo e hangamataʻu',
+    '🧑🏼‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini: kili kelokelo mo e hangamataʻu',
+    '🧑🏽‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini: kili melomelo mo e hangamataʻu',
+    '🧑🏾‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🧑🏿‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini: kili ʻuliʻuli mo e hangamataʻu',
+    '👨🏻‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini: kili hinehina mo e hangamataʻu',
+    '👨🏼‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini: kili kelokelo mo e hangamataʻu',
+    '👨🏽‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini: kili melomelo mo e hangamataʻu',
+    '👨🏾‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '👨🏿‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini: kili ʻuliʻuli mo e hangamataʻu',
+    '👩🏻‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini: kili hinehina mo e hangamataʻu',
+    '👩🏼‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini: kili kelokelo mo e hangamataʻu',
+    '👩🏽‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini: kili melomelo mo e hangamataʻu',
+    '👩🏾‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '👩🏿‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini: kili ʻuliʻuli mo e hangamataʻu',
+    '🧑🏻‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki: kili hinehina mo e hangamataʻu',
+    '🧑🏼‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki: kili kelokelo mo e hangamataʻu',
+    '🧑🏽‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki: kili melomelo mo e hangamataʻu',
+    '🧑🏾‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🧑🏿‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki: kili ʻuliʻuli mo e hangamataʻu',
+    '👨🏻‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki: kili hinehina mo e hangamataʻu',
+    '👨🏼‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki: kili kelokelo mo e hangamataʻu',
+    '👨🏽‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki: kili melomelo mo e hangamataʻu',
+    '👨🏾‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '👨🏿‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki: kili ʻuliʻuli mo e hangamataʻu',
+    '👩🏻‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki: kili hinehina mo e hangamataʻu',
+    '👩🏼‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki: kili kelokelo mo e hangamataʻu',
+    '👩🏽‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki: kili melomelo mo e hangamataʻu',
+    '👩🏾‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '👩🏿‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki: kili ʻuliʻuli mo e hangamataʻu',
+    '🏃🏻‍♀‍➡' => 'fefine lele: kili hinehina mo e hangamataʻu',
+    '🏃🏼‍♀‍➡' => 'fefine lele: kili kelokelo mo e hangamataʻu',
+    '🏃🏽‍♀‍➡' => 'fefine lele: kili melomelo mo e hangamataʻu',
+    '🏃🏾‍♀‍➡' => 'fefine lele: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🏃🏿‍♀‍➡' => 'fefine lele: kili ʻuliʻuli mo e hangamataʻu',
+    '🏃🏻‍♂‍➡' => 'tangata lele: kili hinehina mo e hangamataʻu',
+    '🏃🏼‍♂‍➡' => 'tangata lele: kili kelokelo mo e hangamataʻu',
+    '🏃🏽‍♂‍➡' => 'tangata lele: kili melomelo mo e hangamataʻu',
+    '🏃🏾‍♂‍➡' => 'tangata lele: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🏃🏿‍♂‍➡' => 'tangata lele: kili ʻuliʻuli mo e hangamataʻu',
     '🫱🏻‍🫲🏼' => 'lulululu: kili hinehina mo e kili kelokelo',
     '🫱🏻‍🫲🏽' => 'lulululu: kili hinehina mo e kili melomelo',
     '🫱🏻‍🫲🏾' => 'lulululu: kili hinehina mo e kili melomelo-ʻuliʻuli',
@@ -384,21 +504,21 @@
     '🫱🏿‍🫲🏼' => 'lulululu: kili ʻuliʻuli mo e kili kelokelo',
     '🫱🏿‍🫲🏽' => 'lulululu: kili ʻuliʻuli mo e kili melomelo',
     '🫱🏿‍🫲🏾' => 'lulululu: kili ʻuliʻuli mo e kili melomelo-ʻuliʻuli',
-    '🚶‍♀‍➡' => 'fefine lue hangamataʻu',
-    '🚶‍♂‍➡' => 'tangata lue hangamataʻu',
-    '🧎‍♀‍➡' => 'fefine tūʻulutui hangamataʻu',
-    '🧎‍♂‍➡' => 'tangata tūʻulutui hangamataʻu',
-    '🧑‍🦯‍➡' => 'tokotaha moe tokotokokui hangamataʻu',
-    '👨‍🦯‍➡' => 'tangata moe tokotokokui hangamataʻu',
-    '👩‍🦯‍➡' => 'fefine moe tokotokokui hangamataʻu',
-    '🧑‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👨‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '👩‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini hangamataʻu',
-    '🧑‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki hangamataʻu',
-    '👨‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki hangamataʻu',
-    '👩‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki hangamataʻu',
-    '🏃‍♀‍➡' => 'fefine lele hangamataʻu',
-    '🏃‍♂‍➡' => 'tangata lele hangamataʻu',
+    '🚶‍♀‍➡' => 'fefine lue: hangamataʻu',
+    '🚶‍♂‍➡' => 'tangata lue: hangamataʻu',
+    '🧎‍♀‍➡' => 'fefine tūʻulutui: hangamataʻu',
+    '🧎‍♂‍➡' => 'tangata tūʻulutui: hangamataʻu',
+    '🧑‍🦯‍➡' => 'tokotaha moe tokotokokui: hangamataʻu',
+    '👨‍🦯‍➡' => 'tangata moe tokotokokui: hangamataʻu',
+    '👩‍🦯‍➡' => 'fefine moe tokotokokui: hangamataʻu',
+    '🧑‍🦼‍➡' => 'tokotaha ʻihe sāliote falemahaki mīsini: hangamataʻu',
+    '👨‍🦼‍➡' => 'tangata ʻihe sāliote falemahaki mīsini: hangamataʻu',
+    '👩‍🦼‍➡' => 'fefine ʻihe sāliote falemahaki mīsini: hangamataʻu',
+    '🧑‍🦽‍➡' => 'tokotaha ʻihe sāliote falemahaki: hangamataʻu',
+    '👨‍🦽‍➡' => 'tangata ʻihe sāliote falemahaki: hangamataʻu',
+    '👩‍🦽‍➡' => 'fefine ʻihe sāliote falemahaki: hangamataʻu',
+    '🏃‍♀‍➡' => 'fefine lele: hangamataʻu',
+    '🏃‍♂‍➡' => 'tangata lele: hangamataʻu',
     '👩‍❤‍👨' => 'ongo tokoua moe mafu: fefine mo e tangata',
     '👨‍❤‍👨' => 'ongo tokoua moe mafu: tangata mo e tangata',
     '👩‍❤‍👩' => 'ongo tokoua moe mafu: fefine mo e fefine',
@@ -437,6 +557,11 @@
     '🧑🏽‍🦲' => 'kakai lalahi: kili melomelo mo e ʻulu tula',
     '🧑🏾‍🦲' => 'kakai lalahi: kili melomelo-ʻuliʻuli mo e ʻulu tula',
     '🧑🏿‍🦲' => 'kakai lalahi: kili ʻuliʻuli mo e ʻulu tula',
+    '🧑🏻‍🩰' => 'tokotaha fakahulohula: kili hinehina',
+    '🧑🏼‍🩰' => 'tokotaha fakahulohula: kili kelokelo',
+    '🧑🏽‍🩰' => 'tokotaha fakahulohula: kili melomelo',
+    '🧑🏾‍🩰' => 'tokotaha fakahulohula: kili melomelo-ʻuliʻuli',
+    '🧑🏿‍🩰' => 'tokotaha fakahulohula: kili ʻuliʻuli',
     '🧔🏻‍♂' => 'tangata kava: kili hinehina',
     '🧔🏼‍♂' => 'tangata kava: kili kelokelo',
     '🧔🏽‍♂' => 'tangata kava: kili melomelo',
@@ -1027,11 +1152,11 @@
     '🚶🏽‍♀' => 'fefine lue: kili melomelo',
     '🚶🏾‍♀' => 'fefine lue: kili melomelo-ʻuliʻuli',
     '🚶🏿‍♀' => 'fefine lue: kili ʻuliʻuli',
-    '🚶🏻‍➡' => 'tokotaha lue hangamataʻu',
-    '🚶🏼‍➡' => 'tokotaha lue hangamataʻu',
-    '🚶🏽‍➡' => 'tokotaha lue hangamataʻu',
-    '🚶🏾‍➡' => 'tokotaha lue hangamataʻu',
-    '🚶🏿‍➡' => 'tokotaha lue hangamataʻu',
+    '🚶🏻‍➡' => 'tokotaha lue: kili hinehina mo e hangamataʻu',
+    '🚶🏼‍➡' => 'tokotaha lue: kili kelokelo mo e hangamataʻu',
+    '🚶🏽‍➡' => 'tokotaha lue: kili melomelo mo e hangamataʻu',
+    '🚶🏾‍➡' => 'tokotaha lue: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🚶🏿‍➡' => 'tokotaha lue: kili ʻuliʻuli mo e hangamataʻu',
     '🧍🏻‍♂' => 'tangata tuʻu: kili hinehina',
     '🧍🏼‍♂' => 'tangata tuʻu: kili kelokelo',
     '🧍🏽‍♂' => 'tangata tuʻu: kili melomelo',
@@ -1052,11 +1177,11 @@
     '🧎🏽‍♀' => 'fefine tūʻulutui: kili melomelo',
     '🧎🏾‍♀' => 'fefine tūʻulutui: kili melomelo-ʻuliʻuli',
     '🧎🏿‍♀' => 'fefine tūʻulutui: kili ʻuliʻuli',
-    '🧎🏻‍➡' => 'tokotaha tūʻulutui hangamataʻu',
-    '🧎🏼‍➡' => 'tokotaha tūʻulutui hangamataʻu',
-    '🧎🏽‍➡' => 'tokotaha tūʻulutui hangamataʻu',
-    '🧎🏾‍➡' => 'tokotaha tūʻulutui hangamataʻu',
-    '🧎🏿‍➡' => 'tokotaha tūʻulutui hangamataʻu',
+    '🧎🏻‍➡' => 'tokotaha tūʻulutui: kili hinehina mo e hangamataʻu',
+    '🧎🏼‍➡' => 'tokotaha tūʻulutui: kili kelokelo mo e hangamataʻu',
+    '🧎🏽‍➡' => 'tokotaha tūʻulutui: kili melomelo mo e hangamataʻu',
+    '🧎🏾‍➡' => 'tokotaha tūʻulutui: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🧎🏿‍➡' => 'tokotaha tūʻulutui: kili ʻuliʻuli mo e hangamataʻu',
     '🧑🏻‍🦯' => 'tokotaha moe tokotokokui: kili hinehina',
     '🧑🏼‍🦯' => 'tokotaha moe tokotokokui: kili kelokelo',
     '🧑🏽‍🦯' => 'tokotaha moe tokotokokui: kili melomelo',
@@ -1112,11 +1237,21 @@
     '🏃🏽‍♀' => 'fefine lele: kili melomelo',
     '🏃🏾‍♀' => 'fefine lele: kili melomelo-ʻuliʻuli',
     '🏃🏿‍♀' => 'fefine lele: kili ʻuliʻuli',
-    '🏃🏻‍➡' => 'tokotaha lele hangamataʻu',
-    '🏃🏼‍➡' => 'tokotaha lele hangamataʻu',
-    '🏃🏽‍➡' => 'tokotaha lele hangamataʻu',
-    '🏃🏾‍➡' => 'tokotaha lele hangamataʻu',
-    '🏃🏿‍➡' => 'tokotaha lele hangamataʻu',
+    '🏃🏻‍➡' => 'tokotaha lele: kili hinehina mo e hangamataʻu',
+    '🏃🏼‍➡' => 'tokotaha lele: kili kelokelo mo e hangamataʻu',
+    '🏃🏽‍➡' => 'tokotaha lele: kili melomelo mo e hangamataʻu',
+    '🏃🏾‍➡' => 'tokotaha lele: kili melomelo-ʻuliʻuli mo e hangamataʻu',
+    '🏃🏿‍➡' => 'tokotaha lele: kili ʻuliʻuli mo e hangamataʻu',
+    '👯🏻‍♀' => 'fafine telinga-lāpisi: kili hinehina',
+    '👯🏼‍♀' => 'fafine telinga-lāpisi: kili kelokelo',
+    '👯🏽‍♀' => 'fafine telinga-lāpisi: kili melomelo',
+    '👯🏾‍♀' => 'fafine telinga-lāpisi: kili melomelo-ʻuliʻuli',
+    '👯🏿‍♀' => 'fafine telinga-lāpisi: kili ʻuliʻuli',
+    '👯🏻‍♂' => 'ongo tangata telinga-lāpisi: kili hinehina',
+    '👯🏼‍♂' => 'ongo tangata telinga-lāpisi: kili kelokelo',
+    '👯🏽‍♂' => 'ongo tangata telinga-lāpisi: kili melomelo',
+    '👯🏾‍♂' => 'ongo tangata telinga-lāpisi: kili melomelo-ʻuliʻuli',
+    '👯🏿‍♂' => 'ongo tangata telinga-lāpisi: kili ʻuliʻuli',
     '🧖🏻‍♂' => 'tangata ʻi loki mao: kili hinehina',
     '🧖🏼‍♂' => 'tangata ʻi loki mao: kili kelokelo',
     '🧖🏽‍♂' => 'tangata ʻi loki mao: kili melomelo',
@@ -1227,6 +1362,16 @@
     '🤸🏽‍♀' => 'fefine tākisi: kili melomelo',
     '🤸🏾‍♀' => 'fefine tākisi: kili melomelo-ʻuliʻuli',
     '🤸🏿‍♀' => 'fefine tākisi: kili ʻuliʻuli',
+    '🤼🏻‍♀' => 'fafine fangatua: kili hinehina',
+    '🤼🏼‍♀' => 'fafine fangatua: kili kelokelo',
+    '🤼🏽‍♀' => 'fafine fangatua: kili melomelo',
+    '🤼🏾‍♀' => 'fafine fangatua: kili melomelo-ʻuliʻuli',
+    '🤼🏿‍♀' => 'fafine fangatua: kili ʻuliʻuli',
+    '🤼🏻‍♂' => 'ongo tangata fangatua: kili hinehina',
+    '🤼🏼‍♂' => 'ongo tangata fangatua: kili kelokelo',
+    '🤼🏽‍♂' => 'ongo tangata fangatua: kili melomelo',
+    '🤼🏾‍♂' => 'ongo tangata fangatua: kili melomelo-ʻuliʻuli',
+    '🤼🏿‍♂' => 'ongo tangata fangatua: kili ʻuliʻuli',
     '🤽🏻‍♂' => 'tangata polovai: kili hinehina',
     '🤽🏼‍♂' => 'tangata polovai: kili kelokelo',
     '🤽🏽‍♂' => 'tangata polovai: kili melomelo',
@@ -1279,9 +1424,9 @@
     '👩‍🦱' => 'fefine: ʻulu mingimingi',
     '👩‍🦳' => 'fefine: ʻulu hinā',
     '👩‍🦲' => 'fefine: ʻulu tula',
-    '🚶‍➡' => 'tokotaha lue hangamataʻu',
-    '🧎‍➡' => 'tokotaha tūʻulutui hangamataʻu',
-    '🏃‍➡' => 'tokotaha lele hangamataʻu',
+    '🚶‍➡' => 'tokotaha lue: hangamataʻu',
+    '🧎‍➡' => 'tokotaha tūʻulutui: hangamataʻu',
+    '🏃‍➡' => 'tokotaha lele: hangamataʻu',
     '👨‍👦' => 'fāmili: tangata mo e tamasiʻi',
     '👨‍👧' => 'fāmili: tangata mo e taʻahine',
     '👩‍👦' => 'fāmili: fefine mo e tamasiʻi',
@@ -1422,6 +1567,7 @@
     '👩‍🦽' => 'fefine ʻihe sāliote falemahaki',
     '🏃‍♂' => 'tangata lele',
     '🏃‍♀' => 'fefine lele',
+    '🧑‍🩰' => 'tokotaha fakahulohula',
     '👯‍♂' => 'ongo tangata telinga-lāpisi',
     '👯‍♀' => 'fafine telinga-lāpisi',
     '🧖‍♂' => 'tangata ʻi loki mao',
@@ -2003,6 +2149,11 @@
     '🕴🏽' => 'tangata ʻi vala tangata kakato ʻoku maʻanu: kili melomelo',
     '🕴🏾' => 'tangata ʻi vala tangata kakato ʻoku maʻanu: kili melomelo-ʻuliʻuli',
     '🕴🏿' => 'tangata ʻi vala tangata kakato ʻoku maʻanu: kili ʻuliʻuli',
+    '👯🏻' => 'tokoua telinga-lāpisi: kili hinehina',
+    '👯🏼' => 'tokoua telinga-lāpisi: kili kelokelo',
+    '👯🏽' => 'tokoua telinga-lāpisi: kili melomelo',
+    '👯🏾' => 'tokoua telinga-lāpisi: kili melomelo-ʻuliʻuli',
+    '👯🏿' => 'tokoua telinga-lāpisi: kili ʻuliʻuli',
     '🧖🏻' => 'tokotaha ʻi loki mao: kili hinehina',
     '🧖🏼' => 'tokotaha ʻi loki mao: kili kelokelo',
     '🧖🏽' => 'tokotaha ʻi loki mao: kili melomelo',
@@ -2068,6 +2219,11 @@
     '🤸🏽' => 'tokotaha tākisi: kili melomelo',
     '🤸🏾' => 'tokotaha tākisi: kili melomelo-ʻuliʻuli',
     '🤸🏿' => 'tokotaha tākisi: kili ʻuliʻuli',
+    '🤼🏻' => 'kakai fangatua: kili hinehina',
+    '🤼🏼' => 'kakai fangatua: kili kelokelo',
+    '🤼🏽' => 'kakai fangatua: kili melomelo',
+    '🤼🏾' => 'kakai fangatua: kili melomelo-ʻuliʻuli',
+    '🤼🏿' => 'kakai fangatua: kili ʻuliʻuli',
     '🤽🏻' => 'tokotaha polovai: kili hinehina',
     '🤽🏼' => 'tokotaha polovai: kili kelokelo',
     '🤽🏽' => 'tokotaha polovai: kili melomelo',
@@ -2388,12 +2544,6 @@
     '🏽' => 'kili melomelo',
     '🏾' => 'kili melomelo-ʻuliʻuli',
     '🏿' => 'kili ʻuliʻuli',
-    '🪉' => 'haʻape',
-    '🪏' => 'huo tata',
-    '🪾' => 'ʻakau taʻelau',
-    '🫆' => 'fakaʻilonganima',
-    '🫜' => 'meʻakai foha',
-    '🫟' => 'afuhia',
     '😀' => 'mata fiefia',
     '😃' => 'mata fiefia moe kanoʻimata lalahi',
     '😄' => 'mata fiefia moe kanoʻimata malimali',
@@ -2447,6 +2597,7 @@
     '😪' => 'mata fiemohea',
     '🤤' => 'mata ngutu hafu fāvai',
     '😴' => 'mata mohe',
+    '🫩' => 'mata kōkō',
     '😷' => 'mata moe pūloa fakafaitoʻo',
     '🤒' => 'mata moe meʻafuamafana',
     '🤕' => 'mata moe haʻi lavea',
@@ -2544,6 +2695,7 @@
     '💋' => 'ʻilonga loungutu',
     '💯' => 'poini ʻe teau',
     '💢' => 'fakaʻilonga ʻita',
+    '🫯' => 'ʻao uatau',
     '💥' => 'fepaki',
     '💫' => 'ninimo',
     '💦' => 'tautaʻa tulutā',
@@ -2667,6 +2819,7 @@
     '🧞' => 'faʻahikehe',
     '🧟' => 'tēvolo',
     '🧌' => 'fakatele',
+    '🫈' => 'tokotaha fulufula',
     '💆' => 'tokotaha fotofotaʻi',
     '💇' => 'tokotaha ʻulu kosi',
     '🚶' => 'tokotaha lue',
@@ -2710,6 +2863,7 @@
     '🫂' => 'kakai fāʻufua',
     '👪' => 'fāmili',
     '👣' => 'topuvaʻe',
+    '🫆' => 'fakaʻilonganima',
     '🦰' => 'ʻulu kulokula',
     '🦱' => 'ʻulu mingimingi',
     '🦳' => 'ʻulu hinā',
@@ -2809,6 +2963,7 @@
     '🐳' => 'tofuaʻa puhi',
     '🐋' => 'tofuaʻa',
     '🐬' => 'pungopunga',
+    '🫍' => 'tofuaʻa tāmateʻi',
     '🦭' => 'kulītahi',
     '🐟' => 'ika',
     '🐠' => 'ika he hakau',
@@ -2818,6 +2973,11 @@
     '🐚' => 'keleʻa',
     '🪸' => 'feo',
     '🪼' => 'kolokalu',
+    '🦀' => 'paka',
+    '🦞' => 'ʻuo',
+    '🦐' => 'ʻuosiʻisiʻi',
+    '🦑' => 'ngūfeke',
+    '🦪' => 'tofe',
     '🐌' => 'ʻelili',
     '🦋' => 'pepe',
     '🐛' => 'kutu',
@@ -2862,6 +3022,7 @@
     '🪹' => 'ngeʻesi pununga',
     '🪺' => 'pununga moe foʻimanu',
     '🍄' => 'fakamalu-ʻa-tēvolo',
+    '🪾' => 'ʻakau taʻelau',
     '🍇' => 'kālepi',
     '🍈' => 'meleni-pālangi',
     '🍉' => 'meleni',
@@ -2898,6 +3059,7 @@
     '🌰' => 'ifi',
     '🫚' => 'sinisā',
     '🫛' => 'ngeʻesi piini',
+    '🫜' => 'meʻakai foha',
     '🍞' => 'mā',
     '🥐' => 'mā kalipa',
     '🥖' => 'mā lōloa',
@@ -2949,11 +3111,6 @@
     '🥟' => 'tōpai',
     '🥠' => 'pisikete talamonū',
     '🥡' => 'kato meʻakai',
-    '🦀' => 'paka',
-    '🦞' => 'ʻuo',
-    '🦐' => 'ʻuosiʻisiʻi',
-    '🦑' => 'ngūfeke',
-    '🦪' => 'tofe',
     '🍦' => 'ʻaisikilimi molū',
     '🍧' => 'ʻaisitele',
     '🍨' => 'ʻaisikilimi',
@@ -3004,6 +3161,7 @@
     '🧭' => 'kāpasa',
     '🏔' => 'moʻunga ʻufiʻufiʻaki he sinou',
     '⛰' => 'moʻunga',
+    '🛘' => 'fonua kuo holo',
     '🌋' => 'moʻungaafi',
     '🗻' => 'moʻunga ko Fusi',
     '🏕' => 'fakateniti',
@@ -3364,16 +3522,18 @@
     '🎧' => 'sipika ʻulu',
     '📻' => 'letiō',
     '🎷' => 'sakisefoni',
+    '🎺' => 'meʻaifi',
+    '🪊' => 'talamapone',
     '🪗' => 'puhaleotoho',
     '🎸' => 'kitā',
     '🎹' => 'ʻū kī',
-    '🎺' => 'meʻaifi',
     '🎻' => 'vaiolini',
     '🪕' => 'penisiō',
     '🥁' => 'nafa talamu',
     '🪘' => 'nafa',
     '🪇' => 'malaka',
     '🪈' => 'fuluta',
+    '🪉' => 'haʻape',
     '📱' => 'foni toʻotoʻo',
     '📲' => 'foni toʻotoʻo moe ngahau',
     '☎' => 'telefoni',
@@ -3427,8 +3587,9 @@
     '📑' => 'vahevahe tohi',
     '🔖' => 'fakaʻilonga tohi',
     '🏷' => 'fakaʻilonga',
-    '💰' => 'tangai paʻanga',
     '🪙' => 'paʻanga maka',
+    '💰' => 'tangai paʻanga',
+    '🪎' => 'puha koloa',
     '💴' => 'laʻi paʻanga fakasiapani',
     '💵' => 'laʻi paʻanga fakaʻamelika',
     '💶' => 'laʻi paʻanga fakaʻeulope',
@@ -3511,6 +3672,7 @@
     '🧰' => 'puha meʻangāue',
     '🧲' => 'makinito',
     '🪜' => 'tuʻunga',
+    '🪏' => 'huo tata',
     '⚗' => 'hina hakaʻanga',
     '🧪' => 'tiupi kemi',
     '🧫' => 'tisi kemi',
@@ -3694,6 +3856,7 @@
     '✴' => 'fetuʻu tapavalu',
     '❇' => 'fetapaki',
     '™' => 'fefakatauʻaki',
+    '🫟' => 'afuhia',
     '🔠' => 'hū mataʻitohi lahi pē',
     '🔡' => 'hū mataʻitohi siʻi pē',
     '🔢' => 'hū mataʻifika pē',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tr.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-tr.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'öpücük: kadın kadın koyu cilt tonu orta cilt tonu',
     '👩🏿‍❤‍💋‍👩🏾' => 'öpücük: kadın kadın koyu cilt tonu orta koyu cilt tonu',
     '👩🏿‍❤‍💋‍👩🏿' => 'öpücük: kadın kadın koyu cilt tonu',
+    '🧑🏻‍🫯‍🧑🏼' => 'güreşen kişiler: açık cilt tonu orta açık cilt tonu',
+    '🧑🏻‍🫯‍🧑🏽' => 'güreşen kişiler: açık cilt tonu orta cilt tonu',
+    '🧑🏻‍🫯‍🧑🏾' => 'güreşen kişiler: açık cilt tonu orta koyu cilt tonu',
+    '🧑🏻‍🫯‍🧑🏿' => 'güreşen kişiler: açık cilt tonu koyu cilt tonu',
+    '🧑🏼‍🫯‍🧑🏻' => 'güreşen kişiler: orta açık cilt tonu açık cilt tonu',
+    '🧑🏼‍🫯‍🧑🏽' => 'güreşen kişiler: orta açık cilt tonu orta cilt tonu',
+    '🧑🏼‍🫯‍🧑🏾' => 'güreşen kişiler: orta açık cilt tonu orta koyu cilt tonu',
+    '🧑🏼‍🫯‍🧑🏿' => 'güreşen kişiler: orta açık cilt tonu koyu cilt tonu',
+    '🧑🏽‍🫯‍🧑🏻' => 'güreşen kişiler: orta cilt tonu açık cilt tonu',
+    '🧑🏽‍🫯‍🧑🏼' => 'güreşen kişiler: orta cilt tonu orta açık cilt tonu',
+    '🧑🏽‍🫯‍🧑🏾' => 'güreşen kişiler: orta cilt tonu orta koyu cilt tonu',
+    '🧑🏽‍🫯‍🧑🏿' => 'güreşen kişiler: orta cilt tonu koyu cilt tonu',
+    '🧑🏾‍🫯‍🧑🏻' => 'güreşen kişiler: orta koyu cilt tonu açık cilt tonu',
+    '🧑🏾‍🫯‍🧑🏼' => 'güreşen kişiler: orta koyu cilt tonu orta açık cilt tonu',
+    '🧑🏾‍🫯‍🧑🏽' => 'güreşen kişiler: orta koyu cilt tonu orta cilt tonu',
+    '🧑🏾‍🫯‍🧑🏿' => 'güreşen kişiler: orta koyu cilt tonu koyu cilt tonu',
+    '🧑🏿‍🫯‍🧑🏻' => 'güreşen kişiler: koyu cilt tonu açık cilt tonu',
+    '🧑🏿‍🫯‍🧑🏼' => 'güreşen kişiler: koyu cilt tonu orta açık cilt tonu',
+    '🧑🏿‍🫯‍🧑🏽' => 'güreşen kişiler: koyu cilt tonu orta cilt tonu',
+    '🧑🏿‍🫯‍🧑🏾' => 'güreşen kişiler: koyu cilt tonu orta koyu cilt tonu',
     '🧑🏻‍❤‍🧑🏼' => 'kalpli çift: yetişkin yetişkin açık cilt tonu orta açık cilt tonu',
     '🧑🏻‍❤‍🧑🏽' => 'kalpli çift: yetişkin yetişkin açık cilt tonu orta cilt tonu',
     '🧑🏻‍❤‍🧑🏾' => 'kalpli çift: yetişkin yetişkin açık cilt tonu orta koyu cilt tonu',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'kalpli çift: yetişkin yetişkin koyu cilt tonu orta açık cilt tonu',
     '🧑🏿‍❤‍🧑🏽' => 'kalpli çift: yetişkin yetişkin koyu cilt tonu orta cilt tonu',
     '🧑🏿‍❤‍🧑🏾' => 'kalpli çift: yetişkin yetişkin koyu cilt tonu orta koyu cilt tonu',
+    '🧑🏻‍🐰‍🧑🏼' => 'tavşan kulaklı kişiler: açık cilt tonu orta açık cilt tonu',
+    '🧑🏻‍🐰‍🧑🏽' => 'tavşan kulaklı kişiler: açık cilt tonu orta cilt tonu',
+    '🧑🏻‍🐰‍🧑🏾' => 'tavşan kulaklı kişiler: açık cilt tonu orta koyu cilt tonu',
+    '🧑🏻‍🐰‍🧑🏿' => 'tavşan kulaklı kişiler: açık cilt tonu koyu cilt tonu',
+    '🧑🏼‍🐰‍🧑🏻' => 'tavşan kulaklı kişiler: orta açık cilt tonu açık cilt tonu',
+    '🧑🏼‍🐰‍🧑🏽' => 'tavşan kulaklı kişiler: orta açık cilt tonu orta cilt tonu',
+    '🧑🏼‍🐰‍🧑🏾' => 'tavşan kulaklı kişiler: orta açık cilt tonu orta koyu cilt tonu',
+    '🧑🏼‍🐰‍🧑🏿' => 'tavşan kulaklı kişiler: orta açık cilt tonu koyu cilt tonu',
+    '🧑🏽‍🐰‍🧑🏻' => 'tavşan kulaklı kişiler: orta cilt tonu açık cilt tonu',
+    '🧑🏽‍🐰‍🧑🏼' => 'tavşan kulaklı kişiler: orta cilt tonu orta açık cilt tonu',
+    '🧑🏽‍🐰‍🧑🏾' => 'tavşan kulaklı kişiler: orta cilt tonu orta koyu cilt tonu',
+    '🧑🏽‍🐰‍🧑🏿' => 'tavşan kulaklı kişiler: orta cilt tonu koyu cilt tonu',
+    '🧑🏾‍🐰‍🧑🏻' => 'tavşan kulaklı kişiler: orta koyu cilt tonu açık cilt tonu',
+    '🧑🏾‍🐰‍🧑🏼' => 'tavşan kulaklı kişiler: orta koyu cilt tonu orta açık cilt tonu',
+    '🧑🏾‍🐰‍🧑🏽' => 'tavşan kulaklı kişiler: orta koyu cilt tonu orta cilt tonu',
+    '🧑🏾‍🐰‍🧑🏿' => 'tavşan kulaklı kişiler: orta koyu cilt tonu koyu cilt tonu',
+    '🧑🏿‍🐰‍🧑🏻' => 'tavşan kulaklı kişiler: koyu cilt tonu açık cilt tonu',
+    '🧑🏿‍🐰‍🧑🏼' => 'tavşan kulaklı kişiler: koyu cilt tonu orta açık cilt tonu',
+    '🧑🏿‍🐰‍🧑🏽' => 'tavşan kulaklı kişiler: koyu cilt tonu orta cilt tonu',
+    '🧑🏿‍🐰‍🧑🏾' => 'tavşan kulaklı kişiler: koyu cilt tonu orta koyu cilt tonu',
+    '👨🏻‍🫯‍👨🏼' => 'güreş yapan erkek: açık cilt tonu orta açık cilt tonu',
+    '👨🏻‍🫯‍👨🏽' => 'güreş yapan erkek: açık cilt tonu orta cilt tonu',
+    '👨🏻‍🫯‍👨🏾' => 'güreş yapan erkek: açık cilt tonu orta koyu cilt tonu',
+    '👨🏻‍🫯‍👨🏿' => 'güreş yapan erkek: açık cilt tonu koyu cilt tonu',
+    '👨🏼‍🫯‍👨🏻' => 'güreş yapan erkek: orta açık cilt tonu açık cilt tonu',
+    '👨🏼‍🫯‍👨🏽' => 'güreş yapan erkek: orta açık cilt tonu orta cilt tonu',
+    '👨🏼‍🫯‍👨🏾' => 'güreş yapan erkek: orta açık cilt tonu orta koyu cilt tonu',
+    '👨🏼‍🫯‍👨🏿' => 'güreş yapan erkek: orta açık cilt tonu koyu cilt tonu',
+    '👨🏽‍🫯‍👨🏻' => 'güreş yapan erkek: orta cilt tonu açık cilt tonu',
+    '👨🏽‍🫯‍👨🏼' => 'güreş yapan erkek: orta cilt tonu orta açık cilt tonu',
+    '👨🏽‍🫯‍👨🏾' => 'güreş yapan erkek: orta cilt tonu orta koyu cilt tonu',
+    '👨🏽‍🫯‍👨🏿' => 'güreş yapan erkek: orta cilt tonu koyu cilt tonu',
+    '👨🏾‍🫯‍👨🏻' => 'güreş yapan erkek: orta koyu cilt tonu açık cilt tonu',
+    '👨🏾‍🫯‍👨🏼' => 'güreş yapan erkek: orta koyu cilt tonu orta açık cilt tonu',
+    '👨🏾‍🫯‍👨🏽' => 'güreş yapan erkek: orta koyu cilt tonu orta cilt tonu',
+    '👨🏾‍🫯‍👨🏿' => 'güreş yapan erkek: orta koyu cilt tonu koyu cilt tonu',
+    '👨🏿‍🫯‍👨🏻' => 'güreş yapan erkek: koyu cilt tonu açık cilt tonu',
+    '👨🏿‍🫯‍👨🏼' => 'güreş yapan erkek: koyu cilt tonu orta açık cilt tonu',
+    '👨🏿‍🫯‍👨🏽' => 'güreş yapan erkek: koyu cilt tonu orta cilt tonu',
+    '👨🏿‍🫯‍👨🏾' => 'güreş yapan erkek: koyu cilt tonu orta koyu cilt tonu',
     '👨🏻‍❤‍👨🏻' => 'kalpli çift: erkek erkek açık cilt tonu',
     '👨🏻‍❤‍👨🏼' => 'kalpli çift: erkek erkek açık cilt tonu orta açık cilt tonu',
     '👨🏻‍❤‍👨🏽' => 'kalpli çift: erkek erkek açık cilt tonu orta cilt tonu',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'kalpli çift: erkek erkek koyu cilt tonu orta cilt tonu',
     '👨🏿‍❤‍👨🏾' => 'kalpli çift: erkek erkek koyu cilt tonu orta koyu cilt tonu',
     '👨🏿‍❤‍👨🏿' => 'kalpli çift: erkek erkek koyu cilt tonu',
+    '👨🏻‍🐰‍👨🏼' => 'tavşan kulaklı erkekler: açık cilt tonu orta açık cilt tonu',
+    '👨🏻‍🐰‍👨🏽' => 'tavşan kulaklı erkekler: açık cilt tonu orta cilt tonu',
+    '👨🏻‍🐰‍👨🏾' => 'tavşan kulaklı erkekler: açık cilt tonu orta koyu cilt tonu',
+    '👨🏻‍🐰‍👨🏿' => 'tavşan kulaklı erkekler: açık cilt tonu koyu cilt tonu',
+    '👨🏼‍🐰‍👨🏻' => 'tavşan kulaklı erkekler: orta açık cilt tonu açık cilt tonu',
+    '👨🏼‍🐰‍👨🏽' => 'tavşan kulaklı erkekler: orta açık cilt tonu orta cilt tonu',
+    '👨🏼‍🐰‍👨🏾' => 'tavşan kulaklı erkekler: orta açık cilt tonu orta koyu cilt tonu',
+    '👨🏼‍🐰‍👨🏿' => 'tavşan kulaklı erkekler: orta açık cilt tonu koyu cilt tonu',
+    '👨🏽‍🐰‍👨🏻' => 'tavşan kulaklı erkekler: orta cilt tonu açık cilt tonu',
+    '👨🏽‍🐰‍👨🏼' => 'tavşan kulaklı erkekler: orta cilt tonu orta açık cilt tonu',
+    '👨🏽‍🐰‍👨🏾' => 'tavşan kulaklı erkekler: orta cilt tonu orta koyu cilt tonu',
+    '👨🏽‍🐰‍👨🏿' => 'tavşan kulaklı erkekler: orta cilt tonu koyu cilt tonu',
+    '👨🏾‍🐰‍👨🏻' => 'tavşan kulaklı erkekler: orta koyu cilt tonu açık cilt tonu',
+    '👨🏾‍🐰‍👨🏼' => 'tavşan kulaklı erkekler: orta koyu cilt tonu orta açık cilt tonu',
+    '👨🏾‍🐰‍👨🏽' => 'tavşan kulaklı erkekler: orta koyu cilt tonu orta cilt tonu',
+    '👨🏾‍🐰‍👨🏿' => 'tavşan kulaklı erkekler: orta koyu cilt tonu koyu cilt tonu',
+    '👨🏿‍🐰‍👨🏻' => 'tavşan kulaklı erkekler: koyu cilt tonu açık cilt tonu',
+    '👨🏿‍🐰‍👨🏼' => 'tavşan kulaklı erkekler: koyu cilt tonu orta açık cilt tonu',
+    '👨🏿‍🐰‍👨🏽' => 'tavşan kulaklı erkekler: koyu cilt tonu orta cilt tonu',
+    '👨🏿‍🐰‍👨🏾' => 'tavşan kulaklı erkekler: koyu cilt tonu orta koyu cilt tonu',
+    '👩🏻‍🫯‍👩🏼' => 'güreş yapan kadın: açık cilt tonu orta açık cilt tonu',
+    '👩🏻‍🫯‍👩🏽' => 'güreş yapan kadın: açık cilt tonu orta cilt tonu',
+    '👩🏻‍🫯‍👩🏾' => 'güreş yapan kadın: açık cilt tonu orta koyu cilt tonu',
+    '👩🏻‍🫯‍👩🏿' => 'güreş yapan kadın: açık cilt tonu koyu cilt tonu',
+    '👩🏼‍🫯‍👩🏻' => 'güreş yapan kadın: orta açık cilt tonu açık cilt tonu',
+    '👩🏼‍🫯‍👩🏽' => 'güreş yapan kadın: orta açık cilt tonu orta cilt tonu',
+    '👩🏼‍🫯‍👩🏾' => 'güreş yapan kadın: orta açık cilt tonu orta koyu cilt tonu',
+    '👩🏼‍🫯‍👩🏿' => 'güreş yapan kadın: orta açık cilt tonu koyu cilt tonu',
+    '👩🏽‍🫯‍👩🏻' => 'güreş yapan kadın: orta cilt tonu açık cilt tonu',
+    '👩🏽‍🫯‍👩🏼' => 'güreş yapan kadın: orta cilt tonu orta açık cilt tonu',
+    '👩🏽‍🫯‍👩🏾' => 'güreş yapan kadın: orta cilt tonu orta koyu cilt tonu',
+    '👩🏽‍🫯‍👩🏿' => 'güreş yapan kadın: orta cilt tonu koyu cilt tonu',
+    '👩🏾‍🫯‍👩🏻' => 'güreş yapan kadın: orta koyu cilt tonu açık cilt tonu',
+    '👩🏾‍🫯‍👩🏼' => 'güreş yapan kadın: orta koyu cilt tonu orta açık cilt tonu',
+    '👩🏾‍🫯‍👩🏽' => 'güreş yapan kadın: orta koyu cilt tonu orta cilt tonu',
+    '👩🏾‍🫯‍👩🏿' => 'güreş yapan kadın: orta koyu cilt tonu koyu cilt tonu',
+    '👩🏿‍🫯‍👩🏻' => 'güreş yapan kadın: koyu cilt tonu açık cilt tonu',
+    '👩🏿‍🫯‍👩🏼' => 'güreş yapan kadın: koyu cilt tonu orta açık cilt tonu',
+    '👩🏿‍🫯‍👩🏽' => 'güreş yapan kadın: koyu cilt tonu orta cilt tonu',
+    '👩🏿‍🫯‍👩🏾' => 'güreş yapan kadın: koyu cilt tonu orta koyu cilt tonu',
     '👩🏻‍❤‍👨🏻' => 'kalpli çift: kadın erkek açık cilt tonu',
     '👩🏻‍❤‍👨🏼' => 'kalpli çift: kadın erkek açık cilt tonu orta açık cilt tonu',
     '👩🏻‍❤‍👨🏽' => 'kalpli çift: kadın erkek açık cilt tonu orta cilt tonu',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'kalpli çift: kadın kadın koyu cilt tonu orta cilt tonu',
     '👩🏿‍❤‍👩🏾' => 'kalpli çift: kadın kadın koyu cilt tonu orta koyu cilt tonu',
     '👩🏿‍❤‍👩🏿' => 'kalpli çift: kadın kadın koyu cilt tonu',
+    '👩🏻‍🐰‍👩🏼' => 'tavşan kulaklı kadınlar: açık cilt tonu orta açık cilt tonu',
+    '👩🏻‍🐰‍👩🏽' => 'tavşan kulaklı kadınlar: açık cilt tonu orta cilt tonu',
+    '👩🏻‍🐰‍👩🏾' => 'tavşan kulaklı kadınlar: açık cilt tonu orta koyu cilt tonu',
+    '👩🏻‍🐰‍👩🏿' => 'tavşan kulaklı kadınlar: açık cilt tonu koyu cilt tonu',
+    '👩🏼‍🐰‍👩🏻' => 'tavşan kulaklı kadınlar: orta açık cilt tonu açık cilt tonu',
+    '👩🏼‍🐰‍👩🏽' => 'tavşan kulaklı kadınlar: orta açık cilt tonu orta cilt tonu',
+    '👩🏼‍🐰‍👩🏾' => 'tavşan kulaklı kadınlar: orta açık cilt tonu orta koyu cilt tonu',
+    '👩🏼‍🐰‍👩🏿' => 'tavşan kulaklı kadınlar: orta açık cilt tonu koyu cilt tonu',
+    '👩🏽‍🐰‍👩🏻' => 'tavşan kulaklı kadınlar: orta cilt tonu açık cilt tonu',
+    '👩🏽‍🐰‍👩🏼' => 'tavşan kulaklı kadınlar: orta cilt tonu orta açık cilt tonu',
+    '👩🏽‍🐰‍👩🏾' => 'tavşan kulaklı kadınlar: orta cilt tonu orta koyu cilt tonu',
+    '👩🏽‍🐰‍👩🏿' => 'tavşan kulaklı kadınlar: orta cilt tonu koyu cilt tonu',
+    '👩🏾‍🐰‍👩🏻' => 'tavşan kulaklı kadınlar: orta koyu cilt tonu açık cilt tonu',
+    '👩🏾‍🐰‍👩🏼' => 'tavşan kulaklı kadınlar: orta koyu cilt tonu orta açık cilt tonu',
+    '👩🏾‍🐰‍👩🏽' => 'tavşan kulaklı kadınlar: orta koyu cilt tonu orta cilt tonu',
+    '👩🏾‍🐰‍👩🏿' => 'tavşan kulaklı kadınlar: orta koyu cilt tonu koyu cilt tonu',
+    '👩🏿‍🐰‍👩🏻' => 'tavşan kulaklı kadınlar: koyu cilt tonu açık cilt tonu',
+    '👩🏿‍🐰‍👩🏼' => 'tavşan kulaklı kadınlar: koyu cilt tonu orta açık cilt tonu',
+    '👩🏿‍🐰‍👩🏽' => 'tavşan kulaklı kadınlar: koyu cilt tonu orta cilt tonu',
+    '👩🏿‍🐰‍👩🏾' => 'tavşan kulaklı kadınlar: koyu cilt tonu orta koyu cilt tonu',
     '🧑🏻‍🤝‍🧑🏻' => 'el ele tutuşan insanlar: açık cilt tonu',
     '🧑🏻‍🤝‍🧑🏼' => 'el ele tutuşan insanlar: açık cilt tonu orta açık cilt tonu',
     '🧑🏻‍🤝‍🧑🏽' => 'el ele tutuşan insanlar: açık cilt tonu orta cilt tonu',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bayrak: İskoçya',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bayrak: Galler',
     '🧑‍🧑‍🧒‍🧒' => 'aile: yetişkin, yetişkin, çocuk, çocuk',
-    '🚶🏻‍♀‍➡' => 'sağa dönük yürüyen kadın',
-    '🚶🏼‍♀‍➡' => 'sağa dönük yürüyen kadın',
-    '🚶🏽‍♀‍➡' => 'sağa dönük yürüyen kadın',
-    '🚶🏾‍♀‍➡' => 'sağa dönük yürüyen kadın',
-    '🚶🏿‍♀‍➡' => 'sağa dönük yürüyen kadın',
-    '🚶🏻‍♂‍➡' => 'sağa dönük yürüyen erkek',
-    '🚶🏼‍♂‍➡' => 'sağa dönük yürüyen erkek',
-    '🚶🏽‍♂‍➡' => 'sağa dönük yürüyen erkek',
-    '🚶🏾‍♂‍➡' => 'sağa dönük yürüyen erkek',
-    '🚶🏿‍♂‍➡' => 'sağa dönük yürüyen erkek',
-    '🧎🏻‍♀‍➡' => 'sağa dönük diz çöken kadın',
-    '🧎🏼‍♀‍➡' => 'sağa dönük diz çöken kadın',
-    '🧎🏽‍♀‍➡' => 'sağa dönük diz çöken kadın',
-    '🧎🏾‍♀‍➡' => 'sağa dönük diz çöken kadın',
-    '🧎🏿‍♀‍➡' => 'sağa dönük diz çöken kadın',
-    '🧎🏻‍♂‍➡' => 'sağa dönük diz çöken erkek',
-    '🧎🏼‍♂‍➡' => 'sağa dönük diz çöken erkek',
-    '🧎🏽‍♂‍➡' => 'sağa dönük diz çöken erkek',
-    '🧎🏾‍♂‍➡' => 'sağa dönük diz çöken erkek',
-    '🧎🏿‍♂‍➡' => 'sağa dönük diz çöken erkek',
-    '🧑🏻‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kişi',
-    '🧑🏼‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kişi',
-    '🧑🏽‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kişi',
-    '🧑🏾‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kişi',
-    '🧑🏿‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kişi',
-    '👨🏻‍🦯‍➡' => 'sağa dönük görme engelli bastonlu erkek',
-    '👨🏼‍🦯‍➡' => 'sağa dönük görme engelli bastonlu erkek',
-    '👨🏽‍🦯‍➡' => 'sağa dönük görme engelli bastonlu erkek',
-    '👨🏾‍🦯‍➡' => 'sağa dönük görme engelli bastonlu erkek',
-    '👨🏿‍🦯‍➡' => 'sağa dönük görme engelli bastonlu erkek',
-    '👩🏻‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kadın',
-    '👩🏼‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kadın',
-    '👩🏽‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kadın',
-    '👩🏾‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kadın',
-    '👩🏿‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kadın',
-    '🧑🏻‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kişi',
-    '🧑🏼‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kişi',
-    '🧑🏽‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kişi',
-    '🧑🏾‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kişi',
-    '🧑🏿‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kişi',
-    '👨🏻‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede erkek',
-    '👨🏼‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede erkek',
-    '👨🏽‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede erkek',
-    '👨🏾‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede erkek',
-    '👨🏿‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede erkek',
-    '👩🏻‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kadın',
-    '👩🏼‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kadın',
-    '👩🏽‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kadın',
-    '👩🏾‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kadın',
-    '👩🏿‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kadın',
-    '🧑🏻‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kişi',
-    '🧑🏼‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kişi',
-    '🧑🏽‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kişi',
-    '🧑🏾‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kişi',
-    '🧑🏿‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kişi',
-    '👨🏻‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede erkek',
-    '👨🏼‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede erkek',
-    '👨🏽‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede erkek',
-    '👨🏾‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede erkek',
-    '👨🏿‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede erkek',
-    '👩🏻‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kadın',
-    '👩🏼‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kadın',
-    '👩🏽‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kadın',
-    '👩🏾‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kadın',
-    '👩🏿‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kadın',
-    '🏃🏻‍♀‍➡' => 'sağa dönük koşan kadın',
-    '🏃🏼‍♀‍➡' => 'sağa dönük koşan kadın',
-    '🏃🏽‍♀‍➡' => 'sağa dönük koşan kadın',
-    '🏃🏾‍♀‍➡' => 'sağa dönük koşan kadın',
-    '🏃🏿‍♀‍➡' => 'sağa dönük koşan kadın',
-    '🏃🏻‍♂‍➡' => 'sağa dönük koşan erkek',
-    '🏃🏼‍♂‍➡' => 'sağa dönük koşan erkek',
-    '🏃🏽‍♂‍➡' => 'sağa dönük koşan erkek',
-    '🏃🏾‍♂‍➡' => 'sağa dönük koşan erkek',
-    '🏃🏿‍♂‍➡' => 'sağa dönük koşan erkek',
+    '🚶🏻‍♀‍➡' => 'yürüyen kadın: açık cilt tonu sağa dönük',
+    '🚶🏼‍♀‍➡' => 'yürüyen kadın: orta açık cilt tonu sağa dönük',
+    '🚶🏽‍♀‍➡' => 'yürüyen kadın: orta cilt tonu sağa dönük',
+    '🚶🏾‍♀‍➡' => 'yürüyen kadın: orta koyu cilt tonu sağa dönük',
+    '🚶🏿‍♀‍➡' => 'yürüyen kadın: koyu cilt tonu sağa dönük',
+    '🚶🏻‍♂‍➡' => 'yürüyen erkek: açık cilt tonu sağa dönük',
+    '🚶🏼‍♂‍➡' => 'yürüyen erkek: orta açık cilt tonu sağa dönük',
+    '🚶🏽‍♂‍➡' => 'yürüyen erkek: orta cilt tonu sağa dönük',
+    '🚶🏾‍♂‍➡' => 'yürüyen erkek: orta koyu cilt tonu sağa dönük',
+    '🚶🏿‍♂‍➡' => 'yürüyen erkek: koyu cilt tonu sağa dönük',
+    '🧎🏻‍♀‍➡' => 'diz çöken kadın: açık cilt tonu sağa dönük',
+    '🧎🏼‍♀‍➡' => 'diz çöken kadın: orta açık cilt tonu sağa dönük',
+    '🧎🏽‍♀‍➡' => 'diz çöken kadın: orta cilt tonu sağa dönük',
+    '🧎🏾‍♀‍➡' => 'diz çöken kadın: orta koyu cilt tonu sağa dönük',
+    '🧎🏿‍♀‍➡' => 'diz çöken kadın: koyu cilt tonu sağa dönük',
+    '🧎🏻‍♂‍➡' => 'diz çöken erkek: açık cilt tonu sağa dönük',
+    '🧎🏼‍♂‍➡' => 'diz çöken erkek: orta açık cilt tonu sağa dönük',
+    '🧎🏽‍♂‍➡' => 'diz çöken erkek: orta cilt tonu sağa dönük',
+    '🧎🏾‍♂‍➡' => 'diz çöken erkek: orta koyu cilt tonu sağa dönük',
+    '🧎🏿‍♂‍➡' => 'diz çöken erkek: koyu cilt tonu sağa dönük',
+    '🧑🏻‍🦯‍➡' => 'görme engelli bastonlu kişi: açık cilt tonu sağa dönük',
+    '🧑🏼‍🦯‍➡' => 'görme engelli bastonlu kişi: orta açık cilt tonu sağa dönük',
+    '🧑🏽‍🦯‍➡' => 'görme engelli bastonlu kişi: orta cilt tonu sağa dönük',
+    '🧑🏾‍🦯‍➡' => 'görme engelli bastonlu kişi: orta koyu cilt tonu sağa dönük',
+    '🧑🏿‍🦯‍➡' => 'görme engelli bastonlu kişi: koyu cilt tonu sağa dönük',
+    '👨🏻‍🦯‍➡' => 'görme engelli bastonlu erkek: açık cilt tonu sağa dönük',
+    '👨🏼‍🦯‍➡' => 'görme engelli bastonlu erkek: orta açık cilt tonu sağa dönük',
+    '👨🏽‍🦯‍➡' => 'görme engelli bastonlu erkek: orta cilt tonu sağa dönük',
+    '👨🏾‍🦯‍➡' => 'görme engelli bastonlu erkek: orta koyu cilt tonu sağa dönük',
+    '👨🏿‍🦯‍➡' => 'görme engelli bastonlu erkek: koyu cilt tonu sağa dönük',
+    '👩🏻‍🦯‍➡' => 'görme engelli bastonlu kadın: açık cilt tonu sağa dönük',
+    '👩🏼‍🦯‍➡' => 'görme engelli bastonlu kadın: orta açık cilt tonu sağa dönük',
+    '👩🏽‍🦯‍➡' => 'görme engelli bastonlu kadın: orta cilt tonu sağa dönük',
+    '👩🏾‍🦯‍➡' => 'görme engelli bastonlu kadın: orta koyu cilt tonu sağa dönük',
+    '👩🏿‍🦯‍➡' => 'görme engelli bastonlu kadın: koyu cilt tonu sağa dönük',
+    '🧑🏻‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kişi: açık cilt tonu sağa dönük',
+    '🧑🏼‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kişi: orta açık cilt tonu sağa dönük',
+    '🧑🏽‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kişi: orta cilt tonu sağa dönük',
+    '🧑🏾‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kişi: orta koyu cilt tonu sağa dönük',
+    '🧑🏿‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kişi: koyu cilt tonu sağa dönük',
+    '👨🏻‍🦼‍➡' => 'elektrikli tekerlekli sandalyede erkek: açık cilt tonu sağa dönük',
+    '👨🏼‍🦼‍➡' => 'elektrikli tekerlekli sandalyede erkek: orta açık cilt tonu sağa dönük',
+    '👨🏽‍🦼‍➡' => 'elektrikli tekerlekli sandalyede erkek: orta cilt tonu sağa dönük',
+    '👨🏾‍🦼‍➡' => 'elektrikli tekerlekli sandalyede erkek: orta koyu cilt tonu sağa dönük',
+    '👨🏿‍🦼‍➡' => 'elektrikli tekerlekli sandalyede erkek: koyu cilt tonu sağa dönük',
+    '👩🏻‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kadın: açık cilt tonu sağa dönük',
+    '👩🏼‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kadın: orta açık cilt tonu sağa dönük',
+    '👩🏽‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kadın: orta cilt tonu sağa dönük',
+    '👩🏾‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kadın: orta koyu cilt tonu sağa dönük',
+    '👩🏿‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kadın: koyu cilt tonu sağa dönük',
+    '🧑🏻‍🦽‍➡' => 'tekerlekli sandalyede kişi: açık cilt tonu sağa dönük',
+    '🧑🏼‍🦽‍➡' => 'tekerlekli sandalyede kişi: orta açık cilt tonu sağa dönük',
+    '🧑🏽‍🦽‍➡' => 'tekerlekli sandalyede kişi: orta cilt tonu sağa dönük',
+    '🧑🏾‍🦽‍➡' => 'tekerlekli sandalyede kişi: orta koyu cilt tonu sağa dönük',
+    '🧑🏿‍🦽‍➡' => 'tekerlekli sandalyede kişi: koyu cilt tonu sağa dönük',
+    '👨🏻‍🦽‍➡' => 'tekerlekli sandalyede erkek: açık cilt tonu sağa dönük',
+    '👨🏼‍🦽‍➡' => 'tekerlekli sandalyede erkek: orta açık cilt tonu sağa dönük',
+    '👨🏽‍🦽‍➡' => 'tekerlekli sandalyede erkek: orta cilt tonu sağa dönük',
+    '👨🏾‍🦽‍➡' => 'tekerlekli sandalyede erkek: orta koyu cilt tonu sağa dönük',
+    '👨🏿‍🦽‍➡' => 'tekerlekli sandalyede erkek: koyu cilt tonu sağa dönük',
+    '👩🏻‍🦽‍➡' => 'tekerlekli sandalyede kadın: açık cilt tonu sağa dönük',
+    '👩🏼‍🦽‍➡' => 'tekerlekli sandalyede kadın: orta açık cilt tonu sağa dönük',
+    '👩🏽‍🦽‍➡' => 'tekerlekli sandalyede kadın: orta cilt tonu sağa dönük',
+    '👩🏾‍🦽‍➡' => 'tekerlekli sandalyede kadın: orta koyu cilt tonu sağa dönük',
+    '👩🏿‍🦽‍➡' => 'tekerlekli sandalyede kadın: koyu cilt tonu sağa dönük',
+    '🏃🏻‍♀‍➡' => 'koşan kadın: açık cilt tonu sağa dönük',
+    '🏃🏼‍♀‍➡' => 'koşan kadın: orta açık cilt tonu sağa dönük',
+    '🏃🏽‍♀‍➡' => 'koşan kadın: orta cilt tonu sağa dönük',
+    '🏃🏾‍♀‍➡' => 'koşan kadın: orta koyu cilt tonu sağa dönük',
+    '🏃🏿‍♀‍➡' => 'koşan kadın: koyu cilt tonu sağa dönük',
+    '🏃🏻‍♂‍➡' => 'koşan erkek: açık cilt tonu sağa dönük',
+    '🏃🏼‍♂‍➡' => 'koşan erkek: orta açık cilt tonu sağa dönük',
+    '🏃🏽‍♂‍➡' => 'koşan erkek: orta cilt tonu sağa dönük',
+    '🏃🏾‍♂‍➡' => 'koşan erkek: orta koyu cilt tonu sağa dönük',
+    '🏃🏿‍♂‍➡' => 'koşan erkek: koyu cilt tonu sağa dönük',
     '🫱🏻‍🫲🏼' => 'el sıkışma: açık cilt tonu orta açık cilt tonu',
     '🫱🏻‍🫲🏽' => 'el sıkışma: açık cilt tonu orta cilt tonu',
     '🫱🏻‍🫲🏾' => 'el sıkışma: açık cilt tonu orta koyu cilt tonu',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'el sıkışma: koyu cilt tonu orta açık cilt tonu',
     '🫱🏿‍🫲🏽' => 'el sıkışma: koyu cilt tonu orta cilt tonu',
     '🫱🏿‍🫲🏾' => 'el sıkışma: koyu cilt tonu orta koyu cilt tonu',
-    '🚶‍♀‍➡' => 'sağa dönük yürüyen kadın',
-    '🚶‍♂‍➡' => 'sağa dönük yürüyen erkek',
-    '🧎‍♀‍➡' => 'sağa dönük diz çöken kadın',
-    '🧎‍♂‍➡' => 'sağa dönük diz çöken erkek',
-    '🧑‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kişi',
-    '👨‍🦯‍➡' => 'sağa dönük görme engelli bastonlu erkek',
-    '👩‍🦯‍➡' => 'sağa dönük görme engelli bastonlu kadın',
-    '🧑‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kişi',
-    '👨‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede erkek',
-    '👩‍🦼‍➡' => 'sağa dönük elektrikli tekerlekli sandalyede kadın',
-    '🧑‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kişi',
-    '👨‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede erkek',
-    '👩‍🦽‍➡' => 'sağa dönük tekerlekli sandalyede kadın',
-    '🏃‍♀‍➡' => 'sağa dönük koşan kadın',
-    '🏃‍♂‍➡' => 'sağa dönük koşan erkek',
+    '🚶‍♀‍➡' => 'yürüyen kadın: sağa dönük',
+    '🚶‍♂‍➡' => 'yürüyen erkek: sağa dönük',
+    '🧎‍♀‍➡' => 'diz çöken kadın: sağa dönük',
+    '🧎‍♂‍➡' => 'diz çöken erkek: sağa dönük',
+    '🧑‍🦯‍➡' => 'görme engelli bastonlu kişi: sağa dönük',
+    '👨‍🦯‍➡' => 'görme engelli bastonlu erkek: sağa dönük',
+    '👩‍🦯‍➡' => 'görme engelli bastonlu kadın: sağa dönük',
+    '🧑‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kişi: sağa dönük',
+    '👨‍🦼‍➡' => 'elektrikli tekerlekli sandalyede erkek: sağa dönük',
+    '👩‍🦼‍➡' => 'elektrikli tekerlekli sandalyede kadın: sağa dönük',
+    '🧑‍🦽‍➡' => 'tekerlekli sandalyede kişi: sağa dönük',
+    '👨‍🦽‍➡' => 'tekerlekli sandalyede erkek: sağa dönük',
+    '👩‍🦽‍➡' => 'tekerlekli sandalyede kadın: sağa dönük',
+    '🏃‍♀‍➡' => 'koşan kadın: sağa dönük',
+    '🏃‍♂‍➡' => 'koşan erkek: sağa dönük',
     '👩‍❤‍👨' => 'kalpli çift: kadın erkek',
     '👨‍❤‍👨' => 'kalpli çift: erkek erkek',
     '👩‍❤‍👩' => 'kalpli çift: kadın kadın',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'yetişkin: orta cilt tonu kel',
     '🧑🏾‍🦲' => 'yetişkin: orta koyu cilt tonu kel',
     '🧑🏿‍🦲' => 'yetişkin: koyu cilt tonu kel',
+    '🧑🏻‍🩰' => 'bale dansçısı: açık cilt tonu',
+    '🧑🏼‍🩰' => 'bale dansçısı: orta açık cilt tonu',
+    '🧑🏽‍🩰' => 'bale dansçısı: orta cilt tonu',
+    '🧑🏾‍🩰' => 'bale dansçısı: orta koyu cilt tonu',
+    '🧑🏿‍🩰' => 'bale dansçısı: koyu cilt tonu',
     '🧔🏻‍♂' => 'erkek: açık cilt tonu sakal',
     '🧔🏼‍♂' => 'erkek: orta açık cilt tonu sakal',
     '🧔🏽‍♂' => 'erkek: orta cilt tonu sakal',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'yürüyen kadın: orta cilt tonu',
     '🚶🏾‍♀' => 'yürüyen kadın: orta koyu cilt tonu',
     '🚶🏿‍♀' => 'yürüyen kadın: koyu cilt tonu',
-    '🚶🏻‍➡' => 'sağa dönük yürüyen kişi',
-    '🚶🏼‍➡' => 'sağa dönük yürüyen kişi',
-    '🚶🏽‍➡' => 'sağa dönük yürüyen kişi',
-    '🚶🏾‍➡' => 'sağa dönük yürüyen kişi',
-    '🚶🏿‍➡' => 'sağa dönük yürüyen kişi',
+    '🚶🏻‍➡' => 'yürüyen kişi: açık cilt tonu sağa dönük',
+    '🚶🏼‍➡' => 'yürüyen kişi: orta açık cilt tonu sağa dönük',
+    '🚶🏽‍➡' => 'yürüyen kişi: orta cilt tonu sağa dönük',
+    '🚶🏾‍➡' => 'yürüyen kişi: orta koyu cilt tonu sağa dönük',
+    '🚶🏿‍➡' => 'yürüyen kişi: koyu cilt tonu sağa dönük',
     '🧍🏻‍♂' => 'ayakta duran erkek: açık cilt tonu',
     '🧍🏼‍♂' => 'ayakta duran erkek: orta açık cilt tonu',
     '🧍🏽‍♂' => 'ayakta duran erkek: orta cilt tonu',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'diz çöken kadın: orta cilt tonu',
     '🧎🏾‍♀' => 'diz çöken kadın: orta koyu cilt tonu',
     '🧎🏿‍♀' => 'diz çöken kadın: koyu cilt tonu',
-    '🧎🏻‍➡' => 'sağa dönük diz çöken kişi',
-    '🧎🏼‍➡' => 'sağa dönük diz çöken kişi',
-    '🧎🏽‍➡' => 'sağa dönük diz çöken kişi',
-    '🧎🏾‍➡' => 'sağa dönük diz çöken kişi',
-    '🧎🏿‍➡' => 'sağa dönük diz çöken kişi',
+    '🧎🏻‍➡' => 'diz çöken kişi: açık cilt tonu sağa dönük',
+    '🧎🏼‍➡' => 'diz çöken kişi: orta açık cilt tonu sağa dönük',
+    '🧎🏽‍➡' => 'diz çöken kişi: orta cilt tonu sağa dönük',
+    '🧎🏾‍➡' => 'diz çöken kişi: orta koyu cilt tonu sağa dönük',
+    '🧎🏿‍➡' => 'diz çöken kişi: koyu cilt tonu sağa dönük',
     '🧑🏻‍🦯' => 'görme engelli bastonlu kişi: açık cilt tonu',
     '🧑🏼‍🦯' => 'görme engelli bastonlu kişi: orta açık cilt tonu',
     '🧑🏽‍🦯' => 'görme engelli bastonlu kişi: orta cilt tonu',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'koşan kadın: orta cilt tonu',
     '🏃🏾‍♀' => 'koşan kadın: orta koyu cilt tonu',
     '🏃🏿‍♀' => 'koşan kadın: koyu cilt tonu',
-    '🏃🏻‍➡' => 'sağa dönük koşan kişi',
-    '🏃🏼‍➡' => 'sağa dönük koşan kişi',
-    '🏃🏽‍➡' => 'sağa dönük koşan kişi',
-    '🏃🏾‍➡' => 'sağa dönük koşan kişi',
-    '🏃🏿‍➡' => 'sağa dönük koşan kişi',
+    '🏃🏻‍➡' => 'koşan kişi: açık cilt tonu sağa dönük',
+    '🏃🏼‍➡' => 'koşan kişi: orta açık cilt tonu sağa dönük',
+    '🏃🏽‍➡' => 'koşan kişi: orta cilt tonu sağa dönük',
+    '🏃🏾‍➡' => 'koşan kişi: orta koyu cilt tonu sağa dönük',
+    '🏃🏿‍➡' => 'koşan kişi: koyu cilt tonu sağa dönük',
+    '👯🏻‍♀' => 'tavşan kulaklı kadınlar: açık cilt tonu',
+    '👯🏼‍♀' => 'tavşan kulaklı kadınlar: orta açık cilt tonu',
+    '👯🏽‍♀' => 'tavşan kulaklı kadınlar: orta cilt tonu',
+    '👯🏾‍♀' => 'tavşan kulaklı kadınlar: orta koyu cilt tonu',
+    '👯🏿‍♀' => 'tavşan kulaklı kadınlar: koyu cilt tonu',
+    '👯🏻‍♂' => 'tavşan kulaklı erkekler: açık cilt tonu',
+    '👯🏼‍♂' => 'tavşan kulaklı erkekler: orta açık cilt tonu',
+    '👯🏽‍♂' => 'tavşan kulaklı erkekler: orta cilt tonu',
+    '👯🏾‍♂' => 'tavşan kulaklı erkekler: orta koyu cilt tonu',
+    '👯🏿‍♂' => 'tavşan kulaklı erkekler: koyu cilt tonu',
     '🧖🏻‍♂' => 'buhar odasındaki erkek: açık cilt tonu',
     '🧖🏼‍♂' => 'buhar odasındaki erkek: orta açık cilt tonu',
     '🧖🏽‍♂' => 'buhar odasındaki erkek: orta cilt tonu',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'perende atan kadın: orta cilt tonu',
     '🤸🏾‍♀' => 'perende atan kadın: orta koyu cilt tonu',
     '🤸🏿‍♀' => 'perende atan kadın: koyu cilt tonu',
+    '🤼🏻‍♀' => 'güreş yapan kadın: açık cilt tonu',
+    '🤼🏼‍♀' => 'güreş yapan kadın: orta açık cilt tonu',
+    '🤼🏽‍♀' => 'güreş yapan kadın: orta cilt tonu',
+    '🤼🏾‍♀' => 'güreş yapan kadın: orta koyu cilt tonu',
+    '🤼🏿‍♀' => 'güreş yapan kadın: koyu cilt tonu',
+    '🤼🏻‍♂' => 'güreş yapan erkek: açık cilt tonu',
+    '🤼🏼‍♂' => 'güreş yapan erkek: orta açık cilt tonu',
+    '🤼🏽‍♂' => 'güreş yapan erkek: orta cilt tonu',
+    '🤼🏾‍♂' => 'güreş yapan erkek: orta koyu cilt tonu',
+    '🤼🏿‍♂' => 'güreş yapan erkek: koyu cilt tonu',
     '🤽🏻‍♂' => 'su topu oynayan erkek: açık cilt tonu',
     '🤽🏼‍♂' => 'su topu oynayan erkek: orta açık cilt tonu',
     '🤽🏽‍♂' => 'su topu oynayan erkek: orta cilt tonu',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'kadın: kıvırcık saç',
     '👩‍🦳' => 'kadın: beyaz saç',
     '👩‍🦲' => 'kadın: kel',
-    '🚶‍➡' => 'sağa dönük yürüyen kişi',
-    '🧎‍➡' => 'sağa dönük diz çöken kişi',
-    '🏃‍➡' => 'sağa dönük koşan kişi',
+    '🚶‍➡' => 'yürüyen kişi: sağa dönük',
+    '🧎‍➡' => 'diz çöken kişi: sağa dönük',
+    '🏃‍➡' => 'koşan kişi: sağa dönük',
     '👨‍👦' => 'aile: erkek erkek çocuk',
     '👨‍👧' => 'aile: erkek kız çocuk',
     '👩‍👦' => 'aile: kadın erkek çocuk',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'tekerlekli sandalyede kadın',
     '🏃‍♂' => 'koşan erkek',
     '🏃‍♀' => 'koşan kadın',
+    '🧑‍🩰' => 'bale dansçısı',
     '👯‍♂' => 'tavşan kulaklı erkekler',
     '👯‍♀' => 'tavşan kulaklı kadınlar',
     '🧖‍♂' => 'buhar odasındaki erkek',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'havalanan takım elbiseli adam: orta cilt tonu',
     '🕴🏾' => 'havalanan takım elbiseli adam: orta koyu cilt tonu',
     '🕴🏿' => 'havalanan takım elbiseli adam: koyu cilt tonu',
+    '👯🏻' => 'tavşan kulaklı kişiler: açık cilt tonu',
+    '👯🏼' => 'tavşan kulaklı kişiler: orta açık cilt tonu',
+    '👯🏽' => 'tavşan kulaklı kişiler: orta cilt tonu',
+    '👯🏾' => 'tavşan kulaklı kişiler: orta koyu cilt tonu',
+    '👯🏿' => 'tavşan kulaklı kişiler: koyu cilt tonu',
     '🧖🏻' => 'buhar odasındaki kişi: açık cilt tonu',
     '🧖🏼' => 'buhar odasındaki kişi: orta açık cilt tonu',
     '🧖🏽' => 'buhar odasındaki kişi: orta cilt tonu',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'perende atan kişi: orta cilt tonu',
     '🤸🏾' => 'perende atan kişi: orta koyu cilt tonu',
     '🤸🏿' => 'perende atan kişi: koyu cilt tonu',
+    '🤼🏻' => 'güreşen kişiler: açık cilt tonu',
+    '🤼🏼' => 'güreşen kişiler: orta açık cilt tonu',
+    '🤼🏽' => 'güreşen kişiler: orta cilt tonu',
+    '🤼🏾' => 'güreşen kişiler: orta koyu cilt tonu',
+    '🤼🏿' => 'güreşen kişiler: koyu cilt tonu',
     '🤽🏻' => 'su topu: açık cilt tonu',
     '🤽🏼' => 'su topu: orta açık cilt tonu',
     '🤽🏽' => 'su topu: orta cilt tonu',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bayrak: Çin',
     '🇨🇴' => 'bayrak: Kolombiya',
     '🇨🇵' => 'bayrak: Clipperton Adası',
+    '🇨🇶' => 'bayrak: Sark',
     '🇨🇷' => 'bayrak: Kosta Rika',
     '🇨🇺' => 'bayrak: Küba',
     '🇨🇻' => 'bayrak: Cabo Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'orta cilt tonu',
     '🏾' => 'orta koyu cilt tonu',
     '🏿' => 'koyu cilt tonu',
-    '🪉' => 'arp',
-    '🪏' => 'kürek',
-    '🪾' => 'yapraksız ağaç',
-    '🫆' => 'parmak izi',
-    '🫜' => 'kök sebze',
-    '🫟' => 'sıçratma',
-    '🫩' => 'gözlerinin altı torbalı yüz',
     '😀' => 'sırıtan yüz',
     '😃' => 'ağzı açık sırıtma',
     '😄' => 'gülen gözlerle ağzı açık sırıtma',
@@ -2450,6 +2600,7 @@
     '😪' => 'uykulu yüz',
     '🤤' => 'salya akıtan yüz',
     '😴' => 'uyuyan yüz',
+    '🫩' => 'gözlerinin altı torbalı yüz',
     '😷' => 'maskeli yüz',
     '🤒' => 'ağzında termometre olan yüz',
     '🤕' => 'kafası sarılı yüz',
@@ -2476,6 +2627,7 @@
     '😯' => 'şaşkın yüz',
     '😲' => 'afallamış yüz',
     '😳' => 'kızarmış ve şaşkın yüz',
+    '🫪' => 'biçimsiz yüz',
     '🥺' => 'yalvaran yüz',
     '🥹' => 'gözleri dolmuş yüz',
     '😦' => 'hoşnutsuz yüz',
@@ -2547,6 +2699,7 @@
     '💋' => 'öpücük izi',
     '💯' => 'yüz puan',
     '💢' => 'öfke simgesi',
+    '🫯' => 'dövüş bulutu',
     '💥' => 'çarpışma',
     '💫' => 'baş dönmesi',
     '💦' => 'ter damlası',
@@ -2670,6 +2823,7 @@
     '🧞' => 'cin',
     '🧟' => 'zombi',
     '🧌' => 'trol',
+    '🫈' => 'tüylü yaratık',
     '💆' => 'yüz masajı',
     '💇' => 'saç kesimi',
     '🚶' => 'yürüyen kişi',
@@ -2713,6 +2867,7 @@
     '🫂' => 'kucaklaşan insanlar',
     '👪' => 'aile',
     '👣' => 'ayak izi',
+    '🫆' => 'parmak izi',
     '🦰' => 'kızıl saç',
     '🦱' => 'kıvırcık saç',
     '🦳' => 'beyaz saç',
@@ -2812,6 +2967,7 @@
     '🐳' => 'su püskürten balina',
     '🐋' => 'balina',
     '🐬' => 'yunus',
+    '🫍' => 'orka',
     '🦭' => 'fok',
     '🐟' => 'balık',
     '🐠' => 'tropikal balık',
@@ -2821,6 +2977,11 @@
     '🐚' => 'deniz kabuğu',
     '🪸' => 'mercan',
     '🪼' => 'denizanası',
+    '🦀' => 'yengeç',
+    '🦞' => 'ıstakoz',
+    '🦐' => 'karides',
+    '🦑' => 'mürekkep balığı',
+    '🦪' => 'istiridye',
     '🐌' => 'salyangoz',
     '🦋' => 'kelebek',
     '🐛' => 'tırtıl',
@@ -2865,6 +3026,7 @@
     '🪹' => 'boş yuva',
     '🪺' => 'yumurta bulunan yuva',
     '🍄' => 'mantar',
+    '🪾' => 'yapraksız ağaç',
     '🍇' => 'üzüm',
     '🍈' => 'kavun',
     '🍉' => 'karpuz',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kestane',
     '🫚' => 'kök zencefil',
     '🫛' => 'kabuklu bezelye',
+    '🫜' => 'kök sebze',
     '🍞' => 'ekmek',
     '🥐' => 'kruvasan',
     '🥖' => 'baget ekmek',
@@ -2952,11 +3115,6 @@
     '🥟' => 'mantı',
     '🥠' => 'fal kurabiyesi',
     '🥡' => 'yiyecek paketi',
-    '🦀' => 'yengeç',
-    '🦞' => 'ıstakoz',
-    '🦐' => 'karides',
-    '🦑' => 'mürekkep balığı',
-    '🦪' => 'istiridye',
     '🍦' => 'yumuşak dondurma',
     '🍧' => 'meyveli buz',
     '🍨' => 'dondurma',
@@ -3007,6 +3165,7 @@
     '🧭' => 'pusula',
     '🏔' => 'karla kaplı dağ',
     '⛰' => 'dağ',
+    '🛘' => 'heyelan',
     '🌋' => 'yanardağ',
     '🗻' => 'Fuji Dağı',
     '🏕' => 'kamp',
@@ -3367,16 +3526,18 @@
     '🎧' => 'kulaklık',
     '📻' => 'radyo',
     '🎷' => 'saksafon',
+    '🎺' => 'trompet',
+    '🪊' => 'trombon',
     '🪗' => 'akordiyon',
     '🎸' => 'gitar',
     '🎹' => 'müzik klavyesi',
-    '🎺' => 'trompet',
     '🎻' => 'keman',
     '🪕' => 'banjo',
     '🥁' => 'davul',
     '🪘' => 'uzun davul',
     '🪇' => 'marakas',
     '🪈' => 'flüt',
+    '🪉' => 'arp',
     '📱' => 'cep telefonu',
     '📲' => 'ok işaretli cep telefonu',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'sayfa ayraçları',
     '🔖' => 'yer işareti',
     '🏷' => 'etiket',
-    '💰' => 'para torbası',
     '🪙' => 'bozuk para',
+    '💰' => 'para torbası',
+    '🪎' => 'hazine sandığı',
     '💴' => 'yen banknot',
     '💵' => 'dolar banknot',
     '💶' => 'euro banknot',
@@ -3514,6 +3676,7 @@
     '🧰' => 'alet çantası',
     '🧲' => 'mıknatıs',
     '🪜' => 'merdiven',
+    '🪏' => 'kürek',
     '⚗' => 'imbik',
     '🧪' => 'deney tüpü',
     '🧫' => 'petri kabı',
@@ -3697,6 +3860,7 @@
     '✴' => 'sekiz noktalı yıldız',
     '❇' => 'parlama',
     '™' => 'ticari marka işareti',
+    '🫟' => 'sıçratma',
     '🔠' => 'büyük harfler',
     '🔡' => 'küçük harfler',
     '🔢' => 'sayılar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ug.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ug.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ug.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ug.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'سۆيۈش: ئايال, ئايال, توق تېرە رەڭ, and ئارا تېرە رەڭگى',
     '👩🏿‍❤‍💋‍👩🏾' => 'سۆيۈش: ئايال, ئايال, توق تېرە رەڭ, and ئارا توق تېرە رەڭگى',
     '👩🏿‍❤‍💋‍👩🏿' => 'سۆيۈش: ئايال, ئايال, and توق تېرە رەڭ',
+    '🧑🏻‍🫯‍🧑🏼' => 'چېلىشچى: ئاچ تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '🧑🏻‍🫯‍🧑🏽' => 'چېلىشچى: ئاچ تېرە رەڭ and ئارا تېرە رەڭگى',
+    '🧑🏻‍🫯‍🧑🏾' => 'چېلىشچى: ئاچ تېرە رەڭ and ئارا توق تېرە رەڭگى',
+    '🧑🏻‍🫯‍🧑🏿' => 'چېلىشچى: ئاچ تېرە رەڭ and توق تېرە رەڭ',
+    '🧑🏼‍🫯‍🧑🏻' => 'چېلىشچى: ئارا ئاچ تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '🧑🏼‍🫯‍🧑🏽' => 'چېلىشچى: ئارا ئاچ تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '🧑🏼‍🫯‍🧑🏾' => 'چېلىشچى: ئارا ئاچ تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '🧑🏼‍🫯‍🧑🏿' => 'چېلىشچى: ئارا ئاچ تېرە رەڭگى and توق تېرە رەڭ',
+    '🧑🏽‍🫯‍🧑🏻' => 'چېلىشچى: ئارا تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '🧑🏽‍🫯‍🧑🏼' => 'چېلىشچى: ئارا تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '🧑🏽‍🫯‍🧑🏾' => 'چېلىشچى: ئارا تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '🧑🏽‍🫯‍🧑🏿' => 'چېلىشچى: ئارا تېرە رەڭگى and توق تېرە رەڭ',
+    '🧑🏾‍🫯‍🧑🏻' => 'چېلىشچى: ئارا توق تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '🧑🏾‍🫯‍🧑🏼' => 'چېلىشچى: ئارا توق تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '🧑🏾‍🫯‍🧑🏽' => 'چېلىشچى: ئارا توق تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '🧑🏾‍🫯‍🧑🏿' => 'چېلىشچى: ئارا توق تېرە رەڭگى and توق تېرە رەڭ',
+    '🧑🏿‍🫯‍🧑🏻' => 'چېلىشچى: توق تېرە رەڭ and ئاچ تېرە رەڭ',
+    '🧑🏿‍🫯‍🧑🏼' => 'چېلىشچى: توق تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '🧑🏿‍🫯‍🧑🏽' => 'چېلىشچى: توق تېرە رەڭ and ئارا تېرە رەڭگى',
+    '🧑🏿‍🫯‍🧑🏾' => 'چېلىشچى: توق تېرە رەڭ and ئارا توق تېرە رەڭگى',
     '🧑🏻‍❤‍🧑🏼' => 'يۈرەكلىك جۈپلەر: چوڭلار, چوڭلار, ئاچ تېرە رەڭ, and ئارا ئاچ تېرە رەڭگى',
     '🧑🏻‍❤‍🧑🏽' => 'يۈرەكلىك جۈپلەر: چوڭلار, چوڭلار, ئاچ تېرە رەڭ, and ئارا تېرە رەڭگى',
     '🧑🏻‍❤‍🧑🏾' => 'يۈرەكلىك جۈپلەر: چوڭلار, چوڭلار, ئاچ تېرە رەڭ, and ئارا توق تېرە رەڭگى',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'يۈرەكلىك جۈپلەر: چوڭلار, چوڭلار, توق تېرە رەڭ, and ئارا ئاچ تېرە رەڭگى',
     '🧑🏿‍❤‍🧑🏽' => 'يۈرەكلىك جۈپلەر: چوڭلار, چوڭلار, توق تېرە رەڭ, and ئارا تېرە رەڭگى',
     '🧑🏿‍❤‍🧑🏾' => 'يۈرەكلىك جۈپلەر: چوڭلار, چوڭلار, توق تېرە رەڭ, and ئارا توق تېرە رەڭگى',
+    '🧑🏻‍🐰‍🧑🏼' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئاچ تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '🧑🏻‍🐰‍🧑🏽' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئاچ تېرە رەڭ and ئارا تېرە رەڭگى',
+    '🧑🏻‍🐰‍🧑🏾' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئاچ تېرە رەڭ and ئارا توق تېرە رەڭگى',
+    '🧑🏻‍🐰‍🧑🏿' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئاچ تېرە رەڭ and توق تېرە رەڭ',
+    '🧑🏼‍🐰‍🧑🏻' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا ئاچ تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '🧑🏼‍🐰‍🧑🏽' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا ئاچ تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '🧑🏼‍🐰‍🧑🏾' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا ئاچ تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '🧑🏼‍🐰‍🧑🏿' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا ئاچ تېرە رەڭگى and توق تېرە رەڭ',
+    '🧑🏽‍🐰‍🧑🏻' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '🧑🏽‍🐰‍🧑🏼' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '🧑🏽‍🐰‍🧑🏾' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '🧑🏽‍🐰‍🧑🏿' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا تېرە رەڭگى and توق تېرە رەڭ',
+    '🧑🏾‍🐰‍🧑🏻' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا توق تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '🧑🏾‍🐰‍🧑🏼' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا توق تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '🧑🏾‍🐰‍🧑🏽' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا توق تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '🧑🏾‍🐰‍🧑🏿' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا توق تېرە رەڭگى and توق تېرە رەڭ',
+    '🧑🏿‍🐰‍🧑🏻' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: توق تېرە رەڭ and ئاچ تېرە رەڭ',
+    '🧑🏿‍🐰‍🧑🏼' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: توق تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '🧑🏿‍🐰‍🧑🏽' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: توق تېرە رەڭ and ئارا تېرە رەڭگى',
+    '🧑🏿‍🐰‍🧑🏾' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: توق تېرە رەڭ and ئارا توق تېرە رەڭگى',
+    '👨🏻‍🫯‍👨🏼' => 'ئەر چېلىشچى: ئاچ تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '👨🏻‍🫯‍👨🏽' => 'ئەر چېلىشچى: ئاچ تېرە رەڭ and ئارا تېرە رەڭگى',
+    '👨🏻‍🫯‍👨🏾' => 'ئەر چېلىشچى: ئاچ تېرە رەڭ and ئارا توق تېرە رەڭگى',
+    '👨🏻‍🫯‍👨🏿' => 'ئەر چېلىشچى: ئاچ تېرە رەڭ and توق تېرە رەڭ',
+    '👨🏼‍🫯‍👨🏻' => 'ئەر چېلىشچى: ئارا ئاچ تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👨🏼‍🫯‍👨🏽' => 'ئەر چېلىشچى: ئارا ئاچ تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '👨🏼‍🫯‍👨🏾' => 'ئەر چېلىشچى: ئارا ئاچ تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '👨🏼‍🫯‍👨🏿' => 'ئەر چېلىشچى: ئارا ئاچ تېرە رەڭگى and توق تېرە رەڭ',
+    '👨🏽‍🫯‍👨🏻' => 'ئەر چېلىشچى: ئارا تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👨🏽‍🫯‍👨🏼' => 'ئەر چېلىشچى: ئارا تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '👨🏽‍🫯‍👨🏾' => 'ئەر چېلىشچى: ئارا تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '👨🏽‍🫯‍👨🏿' => 'ئەر چېلىشچى: ئارا تېرە رەڭگى and توق تېرە رەڭ',
+    '👨🏾‍🫯‍👨🏻' => 'ئەر چېلىشچى: ئارا توق تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👨🏾‍🫯‍👨🏼' => 'ئەر چېلىشچى: ئارا توق تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '👨🏾‍🫯‍👨🏽' => 'ئەر چېلىشچى: ئارا توق تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '👨🏾‍🫯‍👨🏿' => 'ئەر چېلىشچى: ئارا توق تېرە رەڭگى and توق تېرە رەڭ',
+    '👨🏿‍🫯‍👨🏻' => 'ئەر چېلىشچى: توق تېرە رەڭ and ئاچ تېرە رەڭ',
+    '👨🏿‍🫯‍👨🏼' => 'ئەر چېلىشچى: توق تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '👨🏿‍🫯‍👨🏽' => 'ئەر چېلىشچى: توق تېرە رەڭ and ئارا تېرە رەڭگى',
+    '👨🏿‍🫯‍👨🏾' => 'ئەر چېلىشچى: توق تېرە رەڭ and ئارا توق تېرە رەڭگى',
     '👨🏻‍❤‍👨🏻' => 'يۈرەكلىك جۈپلەر: ئەر, ئەر, and ئاچ تېرە رەڭ',
     '👨🏻‍❤‍👨🏼' => 'يۈرەكلىك جۈپلەر: ئەر, ئەر, ئاچ تېرە رەڭ, and ئارا ئاچ تېرە رەڭگى',
     '👨🏻‍❤‍👨🏽' => 'يۈرەكلىك جۈپلەر: ئەر, ئەر, ئاچ تېرە رەڭ, and ئارا تېرە رەڭگى',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'يۈرەكلىك جۈپلەر: ئەر, ئەر, توق تېرە رەڭ, and ئارا تېرە رەڭگى',
     '👨🏿‍❤‍👨🏾' => 'يۈرەكلىك جۈپلەر: ئەر, ئەر, توق تېرە رەڭ, and ئارا توق تېرە رەڭگى',
     '👨🏿‍❤‍👨🏿' => 'يۈرەكلىك جۈپلەر: ئەر, ئەر, and توق تېرە رەڭ',
+    '👨🏻‍🐰‍👨🏼' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئاچ تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '👨🏻‍🐰‍👨🏽' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئاچ تېرە رەڭ and ئارا تېرە رەڭگى',
+    '👨🏻‍🐰‍👨🏾' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئاچ تېرە رەڭ and ئارا توق تېرە رەڭگى',
+    '👨🏻‍🐰‍👨🏿' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئاچ تېرە رەڭ and توق تېرە رەڭ',
+    '👨🏼‍🐰‍👨🏻' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا ئاچ تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👨🏼‍🐰‍👨🏽' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا ئاچ تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '👨🏼‍🐰‍👨🏾' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا ئاچ تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '👨🏼‍🐰‍👨🏿' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا ئاچ تېرە رەڭگى and توق تېرە رەڭ',
+    '👨🏽‍🐰‍👨🏻' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👨🏽‍🐰‍👨🏼' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '👨🏽‍🐰‍👨🏾' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '👨🏽‍🐰‍👨🏿' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا تېرە رەڭگى and توق تېرە رەڭ',
+    '👨🏾‍🐰‍👨🏻' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا توق تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👨🏾‍🐰‍👨🏼' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا توق تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '👨🏾‍🐰‍👨🏽' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا توق تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '👨🏾‍🐰‍👨🏿' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا توق تېرە رەڭگى and توق تېرە رەڭ',
+    '👨🏿‍🐰‍👨🏻' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: توق تېرە رەڭ and ئاچ تېرە رەڭ',
+    '👨🏿‍🐰‍👨🏼' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: توق تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '👨🏿‍🐰‍👨🏽' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: توق تېرە رەڭ and ئارا تېرە رەڭگى',
+    '👨🏿‍🐰‍👨🏾' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: توق تېرە رەڭ and ئارا توق تېرە رەڭگى',
+    '👩🏻‍🫯‍👩🏼' => 'ئايال چېلىشچى: ئاچ تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '👩🏻‍🫯‍👩🏽' => 'ئايال چېلىشچى: ئاچ تېرە رەڭ and ئارا تېرە رەڭگى',
+    '👩🏻‍🫯‍👩🏾' => 'ئايال چېلىشچى: ئاچ تېرە رەڭ and ئارا توق تېرە رەڭگى',
+    '👩🏻‍🫯‍👩🏿' => 'ئايال چېلىشچى: ئاچ تېرە رەڭ and توق تېرە رەڭ',
+    '👩🏼‍🫯‍👩🏻' => 'ئايال چېلىشچى: ئارا ئاچ تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👩🏼‍🫯‍👩🏽' => 'ئايال چېلىشچى: ئارا ئاچ تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '👩🏼‍🫯‍👩🏾' => 'ئايال چېلىشچى: ئارا ئاچ تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '👩🏼‍🫯‍👩🏿' => 'ئايال چېلىشچى: ئارا ئاچ تېرە رەڭگى and توق تېرە رەڭ',
+    '👩🏽‍🫯‍👩🏻' => 'ئايال چېلىشچى: ئارا تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👩🏽‍🫯‍👩🏼' => 'ئايال چېلىشچى: ئارا تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '👩🏽‍🫯‍👩🏾' => 'ئايال چېلىشچى: ئارا تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '👩🏽‍🫯‍👩🏿' => 'ئايال چېلىشچى: ئارا تېرە رەڭگى and توق تېرە رەڭ',
+    '👩🏾‍🫯‍👩🏻' => 'ئايال چېلىشچى: ئارا توق تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👩🏾‍🫯‍👩🏼' => 'ئايال چېلىشچى: ئارا توق تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '👩🏾‍🫯‍👩🏽' => 'ئايال چېلىشچى: ئارا توق تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '👩🏾‍🫯‍👩🏿' => 'ئايال چېلىشچى: ئارا توق تېرە رەڭگى and توق تېرە رەڭ',
+    '👩🏿‍🫯‍👩🏻' => 'ئايال چېلىشچى: توق تېرە رەڭ and ئاچ تېرە رەڭ',
+    '👩🏿‍🫯‍👩🏼' => 'ئايال چېلىشچى: توق تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '👩🏿‍🫯‍👩🏽' => 'ئايال چېلىشچى: توق تېرە رەڭ and ئارا تېرە رەڭگى',
+    '👩🏿‍🫯‍👩🏾' => 'ئايال چېلىشچى: توق تېرە رەڭ and ئارا توق تېرە رەڭگى',
     '👩🏻‍❤‍👨🏻' => 'يۈرەكلىك جۈپلەر: ئايال, ئەر, and ئاچ تېرە رەڭ',
     '👩🏻‍❤‍👨🏼' => 'يۈرەكلىك جۈپلەر: ئايال, ئەر, ئاچ تېرە رەڭ, and ئارا ئاچ تېرە رەڭگى',
     '👩🏻‍❤‍👨🏽' => 'يۈرەكلىك جۈپلەر: ئايال, ئەر, ئاچ تېرە رەڭ, and ئارا تېرە رەڭگى',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'يۈرەكلىك جۈپلەر: ئايال, ئايال, توق تېرە رەڭ, and ئارا تېرە رەڭگى',
     '👩🏿‍❤‍👩🏾' => 'يۈرەكلىك جۈپلەر: ئايال, ئايال, توق تېرە رەڭ, and ئارا توق تېرە رەڭگى',
     '👩🏿‍❤‍👩🏿' => 'يۈرەكلىك جۈپلەر: ئايال, ئايال, and توق تېرە رەڭ',
+    '👩🏻‍🐰‍👩🏼' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئاچ تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '👩🏻‍🐰‍👩🏽' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئاچ تېرە رەڭ and ئارا تېرە رەڭگى',
+    '👩🏻‍🐰‍👩🏾' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئاچ تېرە رەڭ and ئارا توق تېرە رەڭگى',
+    '👩🏻‍🐰‍👩🏿' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئاچ تېرە رەڭ and توق تېرە رەڭ',
+    '👩🏼‍🐰‍👩🏻' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا ئاچ تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👩🏼‍🐰‍👩🏽' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا ئاچ تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '👩🏼‍🐰‍👩🏾' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا ئاچ تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '👩🏼‍🐰‍👩🏿' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا ئاچ تېرە رەڭگى and توق تېرە رەڭ',
+    '👩🏽‍🐰‍👩🏻' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👩🏽‍🐰‍👩🏼' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '👩🏽‍🐰‍👩🏾' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا تېرە رەڭگى and ئارا توق تېرە رەڭگى',
+    '👩🏽‍🐰‍👩🏿' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا تېرە رەڭگى and توق تېرە رەڭ',
+    '👩🏾‍🐰‍👩🏻' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا توق تېرە رەڭگى and ئاچ تېرە رەڭ',
+    '👩🏾‍🐰‍👩🏼' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا توق تېرە رەڭگى and ئارا ئاچ تېرە رەڭگى',
+    '👩🏾‍🐰‍👩🏽' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا توق تېرە رەڭگى and ئارا تېرە رەڭگى',
+    '👩🏾‍🐰‍👩🏿' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا توق تېرە رەڭگى and توق تېرە رەڭ',
+    '👩🏿‍🐰‍👩🏻' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: توق تېرە رەڭ and ئاچ تېرە رەڭ',
+    '👩🏿‍🐰‍👩🏼' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: توق تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
+    '👩🏿‍🐰‍👩🏽' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: توق تېرە رەڭ and ئارا تېرە رەڭگى',
+    '👩🏿‍🐰‍👩🏾' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: توق تېرە رەڭ and ئارا توق تېرە رەڭگى',
     '👩🏻‍🤝‍👩🏼' => 'قول تۇتۇشقان ئاياللار: ئاچ تېرە رەڭ and ئارا ئاچ تېرە رەڭگى',
     '👩🏻‍🤝‍👩🏽' => 'قول تۇتۇشقان ئاياللار: ئاچ تېرە رەڭ and ئارا تېرە رەڭگى',
     '👩🏻‍🤝‍👩🏾' => 'قول تۇتۇشقان ئاياللار: ئاچ تېرە رەڭ and ئارا توق تېرە رەڭگى',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'يۈگۈرگەن ئايال: ئارا تېرە رەڭگى',
     '🏃🏾‍♀' => 'يۈگۈرگەن ئايال: ئارا توق تېرە رەڭگى',
     '🏃🏿‍♀' => 'يۈگۈرگەن ئايال: توق تېرە رەڭ',
+    '👯🏻‍♀' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئاچ تېرە رەڭ',
+    '👯🏼‍♀' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا ئاچ تېرە رەڭگى',
+    '👯🏽‍♀' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا تېرە رەڭگى',
+    '👯🏾‍♀' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: ئارا توق تېرە رەڭگى',
+    '👯🏿‍♀' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئايال: توق تېرە رەڭ',
+    '👯🏻‍♂' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئاچ تېرە رەڭ',
+    '👯🏼‍♂' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا ئاچ تېرە رەڭگى',
+    '👯🏽‍♂' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا تېرە رەڭگى',
+    '👯🏾‍♂' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: ئارا توق تېرە رەڭگى',
+    '👯🏿‍♂' => 'سورۇندىكى ئۇزۇن قۇلاق ئۇسسۇلچى ئەر: توق تېرە رەڭ',
     '🧖🏻‍♂' => 'ھورداقتىكى ئەر: ئاچ تېرە رەڭ',
     '🧖🏼‍♂' => 'ھورداقتىكى ئەر: ئارا ئاچ تېرە رەڭگى',
     '🧖🏽‍♂' => 'ھورداقتىكى ئەر: ئارا تېرە رەڭگى',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'پەي سوزۇۋاتقان ئايال: ئارا تېرە رەڭگى',
     '🤸🏾‍♀' => 'پەي سوزۇۋاتقان ئايال: ئارا توق تېرە رەڭگى',
     '🤸🏿‍♀' => 'پەي سوزۇۋاتقان ئايال: توق تېرە رەڭ',
+    '🤼🏻‍♀' => 'ئايال چېلىشچى: ئاچ تېرە رەڭ',
+    '🤼🏼‍♀' => 'ئايال چېلىشچى: ئارا ئاچ تېرە رەڭگى',
+    '🤼🏽‍♀' => 'ئايال چېلىشچى: ئارا تېرە رەڭگى',
+    '🤼🏾‍♀' => 'ئايال چېلىشچى: ئارا توق تېرە رەڭگى',
+    '🤼🏿‍♀' => 'ئايال چېلىشچى: توق تېرە رەڭ',
+    '🤼🏻‍♂' => 'ئەر چېلىشچى: ئاچ تېرە رەڭ',
+    '🤼🏼‍♂' => 'ئەر چېلىشچى: ئارا ئاچ تېرە رەڭگى',
+    '🤼🏽‍♂' => 'ئەر چېلىشچى: ئارا تېرە رەڭگى',
+    '🤼🏾‍♂' => 'ئەر چېلىشچى: ئارا توق تېرە رەڭگى',
+    '🤼🏿‍♂' => 'ئەر چېلىشچى: توق تېرە رەڭ',
     '🤽🏻‍♂' => 'سۇ توپى ئويناۋاتقان ئەر: ئاچ تېرە رەڭ',
     '🤽🏼‍♂' => 'سۇ توپى ئويناۋاتقان ئەر: ئارا ئاچ تېرە رەڭگى',
     '🤽🏽‍♂' => 'سۇ توپى ئويناۋاتقان ئەر: ئارا تېرە رەڭگى',
@@ -1392,6 +1532,11 @@
     '🕴🏽' => 'كاستۇملۇق ئەر: ئارا تېرە رەڭگى',
     '🕴🏾' => 'كاستۇملۇق ئەر: ئارا توق تېرە رەڭگى',
     '🕴🏿' => 'كاستۇملۇق ئەر: توق تېرە رەڭ',
+    '👯🏻' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئاچ تېرە رەڭ',
+    '👯🏼' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا ئاچ تېرە رەڭگى',
+    '👯🏽' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا تېرە رەڭگى',
+    '👯🏾' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: ئارا توق تېرە رەڭگى',
+    '👯🏿' => 'سورۇندىكى ئۇزۇن قۇلاق كىشىلەر: توق تېرە رەڭ',
     '🧖🏻' => 'ھورداقتىكى كىشى: ئاچ تېرە رەڭ',
     '🧖🏼' => 'ھورداقتىكى كىشى: ئارا ئاچ تېرە رەڭگى',
     '🧖🏽' => 'ھورداقتىكى كىشى: ئارا تېرە رەڭگى',
@@ -1457,6 +1602,11 @@
     '🤸🏽' => 'پەي سوزۇۋاتقان كىشى: ئارا تېرە رەڭگى',
     '🤸🏾' => 'پەي سوزۇۋاتقان كىشى: ئارا توق تېرە رەڭگى',
     '🤸🏿' => 'پەي سوزۇۋاتقان كىشى: توق تېرە رەڭ',
+    '🤼🏻' => 'چېلىشچى: ئاچ تېرە رەڭ',
+    '🤼🏼' => 'چېلىشچى: ئارا ئاچ تېرە رەڭگى',
+    '🤼🏽' => 'چېلىشچى: ئارا تېرە رەڭگى',
+    '🤼🏾' => 'چېلىشچى: ئارا توق تېرە رەڭگى',
+    '🤼🏿' => 'چېلىشچى: توق تېرە رەڭ',
     '🤽🏻' => 'سۇ توپى ئويناۋاتقانلار: ئاچ تېرە رەڭ',
     '🤽🏼' => 'سۇ توپى ئويناۋاتقانلار: ئارا ئاچ تېرە رەڭگى',
     '🤽🏽' => 'سۇ توپى ئويناۋاتقانلار: ئارا تېرە رەڭگى',
@@ -1857,6 +2007,9 @@
     '🦈' => 'لەھەڭ',
     '🐙' => 'سەككىز ئاياغ',
     '🐚' => 'قۇلۇلە قېپى',
+    '🦀' => 'قىسقۇچپاقا',
+    '🦐' => 'راك',
+    '🦑' => 'قاراقچىبېلىق',
     '🐌' => 'قۇلۇلە',
     '🦋' => 'كېپىنەك',
     '🐛' => 'قۇرت',
@@ -1958,9 +2111,6 @@
     '🥟' => 'تۈگرە',
     '🥠' => 'تەلەي پىشۇرقى',
     '🥡' => 'قەغەز قاپ',
-    '🦀' => 'قىسقۇچپاقا',
-    '🦐' => 'راك',
-    '🦑' => 'قاراقچىبېلىق',
     '🍦' => 'يۇمشاق مۇزقايماق',
     '🍧' => 'قىرغان مۇز',
     '🍨' => 'مۇزقايماق',
@@ -2312,9 +2462,9 @@
     '🎧' => 'تاقىما تىڭشىغۇچ',
     '📻' => 'رادىيو',
     '🎷' => 'ساكسوفون',
+    '🎺' => 'سۇناي',
     '🎸' => 'گىتار',
     '🎹' => 'مۇزىكا تىل تاختىسى',
-    '🎺' => 'سۇناي',
     '🎻' => 'ئىسكىرىپكا',
     '🥁' => 'دۇمباق',
     '📱' => 'يانفون',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-uk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-uk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-uk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-uk.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'чоловік і жінка, що цілуються: жінка, жінка, темний тон шкіри і помірний тон шкіри',
     '👩🏿‍❤‍💋‍👩🏾' => 'чоловік і жінка, що цілуються: жінка, жінка, темний тон шкіри і помірно темний тон шкіри',
     '👩🏿‍❤‍💋‍👩🏿' => 'чоловік і жінка, що цілуються: жінка, жінка і темний тон шкіри',
+    '🧑🏻‍🫯‍🧑🏼' => 'борці: світлий тон шкіри і помірно світлий тон шкіри',
+    '🧑🏻‍🫯‍🧑🏽' => 'борці: світлий тон шкіри і помірний тон шкіри',
+    '🧑🏻‍🫯‍🧑🏾' => 'борці: світлий тон шкіри і помірно темний тон шкіри',
+    '🧑🏻‍🫯‍🧑🏿' => 'борці: світлий тон шкіри і темний тон шкіри',
+    '🧑🏼‍🫯‍🧑🏻' => 'борці: помірно світлий тон шкіри і світлий тон шкіри',
+    '🧑🏼‍🫯‍🧑🏽' => 'борці: помірно світлий тон шкіри і помірний тон шкіри',
+    '🧑🏼‍🫯‍🧑🏾' => 'борці: помірно світлий тон шкіри і помірно темний тон шкіри',
+    '🧑🏼‍🫯‍🧑🏿' => 'борці: помірно світлий тон шкіри і темний тон шкіри',
+    '🧑🏽‍🫯‍🧑🏻' => 'борці: помірний тон шкіри і світлий тон шкіри',
+    '🧑🏽‍🫯‍🧑🏼' => 'борці: помірний тон шкіри і помірно світлий тон шкіри',
+    '🧑🏽‍🫯‍🧑🏾' => 'борці: помірний тон шкіри і помірно темний тон шкіри',
+    '🧑🏽‍🫯‍🧑🏿' => 'борці: помірний тон шкіри і темний тон шкіри',
+    '🧑🏾‍🫯‍🧑🏻' => 'борці: помірно темний тон шкіри і світлий тон шкіри',
+    '🧑🏾‍🫯‍🧑🏼' => 'борці: помірно темний тон шкіри і помірно світлий тон шкіри',
+    '🧑🏾‍🫯‍🧑🏽' => 'борці: помірно темний тон шкіри і помірний тон шкіри',
+    '🧑🏾‍🫯‍🧑🏿' => 'борці: помірно темний тон шкіри і темний тон шкіри',
+    '🧑🏿‍🫯‍🧑🏻' => 'борці: темний тон шкіри і світлий тон шкіри',
+    '🧑🏿‍🫯‍🧑🏼' => 'борці: темний тон шкіри і помірно світлий тон шкіри',
+    '🧑🏿‍🫯‍🧑🏽' => 'борці: темний тон шкіри і помірний тон шкіри',
+    '🧑🏿‍🫯‍🧑🏾' => 'борці: темний тон шкіри і помірно темний тон шкіри',
     '🧑🏻‍❤‍🧑🏼' => 'чоловік і жінка із серцем між ними: людина, людина, світлий тон шкіри і помірно світлий тон шкіри',
     '🧑🏻‍❤‍🧑🏽' => 'чоловік і жінка із серцем між ними: людина, людина, світлий тон шкіри і помірний тон шкіри',
     '🧑🏻‍❤‍🧑🏾' => 'чоловік і жінка із серцем між ними: людина, людина, світлий тон шкіри і помірно темний тон шкіри',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'чоловік і жінка із серцем між ними: людина, людина, темний тон шкіри і помірно світлий тон шкіри',
     '🧑🏿‍❤‍🧑🏽' => 'чоловік і жінка із серцем між ними: людина, людина, темний тон шкіри і помірний тон шкіри',
     '🧑🏿‍❤‍🧑🏾' => 'чоловік і жінка із серцем між ними: людина, людина, темний тон шкіри і помірно темний тон шкіри',
+    '🧑🏻‍🐰‍🧑🏼' => 'люди з кролячими вухами: світлий тон шкіри і помірно світлий тон шкіри',
+    '🧑🏻‍🐰‍🧑🏽' => 'люди з кролячими вухами: світлий тон шкіри і помірний тон шкіри',
+    '🧑🏻‍🐰‍🧑🏾' => 'люди з кролячими вухами: світлий тон шкіри і помірно темний тон шкіри',
+    '🧑🏻‍🐰‍🧑🏿' => 'люди з кролячими вухами: світлий тон шкіри і темний тон шкіри',
+    '🧑🏼‍🐰‍🧑🏻' => 'люди з кролячими вухами: помірно світлий тон шкіри і світлий тон шкіри',
+    '🧑🏼‍🐰‍🧑🏽' => 'люди з кролячими вухами: помірно світлий тон шкіри і помірний тон шкіри',
+    '🧑🏼‍🐰‍🧑🏾' => 'люди з кролячими вухами: помірно світлий тон шкіри і помірно темний тон шкіри',
+    '🧑🏼‍🐰‍🧑🏿' => 'люди з кролячими вухами: помірно світлий тон шкіри і темний тон шкіри',
+    '🧑🏽‍🐰‍🧑🏻' => 'люди з кролячими вухами: помірний тон шкіри і світлий тон шкіри',
+    '🧑🏽‍🐰‍🧑🏼' => 'люди з кролячими вухами: помірний тон шкіри і помірно світлий тон шкіри',
+    '🧑🏽‍🐰‍🧑🏾' => 'люди з кролячими вухами: помірний тон шкіри і помірно темний тон шкіри',
+    '🧑🏽‍🐰‍🧑🏿' => 'люди з кролячими вухами: помірний тон шкіри і темний тон шкіри',
+    '🧑🏾‍🐰‍🧑🏻' => 'люди з кролячими вухами: помірно темний тон шкіри і світлий тон шкіри',
+    '🧑🏾‍🐰‍🧑🏼' => 'люди з кролячими вухами: помірно темний тон шкіри і помірно світлий тон шкіри',
+    '🧑🏾‍🐰‍🧑🏽' => 'люди з кролячими вухами: помірно темний тон шкіри і помірний тон шкіри',
+    '🧑🏾‍🐰‍🧑🏿' => 'люди з кролячими вухами: помірно темний тон шкіри і темний тон шкіри',
+    '🧑🏿‍🐰‍🧑🏻' => 'люди з кролячими вухами: темний тон шкіри і світлий тон шкіри',
+    '🧑🏿‍🐰‍🧑🏼' => 'люди з кролячими вухами: темний тон шкіри і помірно світлий тон шкіри',
+    '🧑🏿‍🐰‍🧑🏽' => 'люди з кролячими вухами: темний тон шкіри і помірний тон шкіри',
+    '🧑🏿‍🐰‍🧑🏾' => 'люди з кролячими вухами: темний тон шкіри і помірно темний тон шкіри',
+    '👨🏻‍🫯‍👨🏼' => 'борець: світлий тон шкіри і помірно світлий тон шкіри',
+    '👨🏻‍🫯‍👨🏽' => 'борець: світлий тон шкіри і помірний тон шкіри',
+    '👨🏻‍🫯‍👨🏾' => 'борець: світлий тон шкіри і помірно темний тон шкіри',
+    '👨🏻‍🫯‍👨🏿' => 'борець: світлий тон шкіри і темний тон шкіри',
+    '👨🏼‍🫯‍👨🏻' => 'борець: помірно світлий тон шкіри і світлий тон шкіри',
+    '👨🏼‍🫯‍👨🏽' => 'борець: помірно світлий тон шкіри і помірний тон шкіри',
+    '👨🏼‍🫯‍👨🏾' => 'борець: помірно світлий тон шкіри і помірно темний тон шкіри',
+    '👨🏼‍🫯‍👨🏿' => 'борець: помірно світлий тон шкіри і темний тон шкіри',
+    '👨🏽‍🫯‍👨🏻' => 'борець: помірний тон шкіри і світлий тон шкіри',
+    '👨🏽‍🫯‍👨🏼' => 'борець: помірний тон шкіри і помірно світлий тон шкіри',
+    '👨🏽‍🫯‍👨🏾' => 'борець: помірний тон шкіри і помірно темний тон шкіри',
+    '👨🏽‍🫯‍👨🏿' => 'борець: помірний тон шкіри і темний тон шкіри',
+    '👨🏾‍🫯‍👨🏻' => 'борець: помірно темний тон шкіри і світлий тон шкіри',
+    '👨🏾‍🫯‍👨🏼' => 'борець: помірно темний тон шкіри і помірно світлий тон шкіри',
+    '👨🏾‍🫯‍👨🏽' => 'борець: помірно темний тон шкіри і помірний тон шкіри',
+    '👨🏾‍🫯‍👨🏿' => 'борець: помірно темний тон шкіри і темний тон шкіри',
+    '👨🏿‍🫯‍👨🏻' => 'борець: темний тон шкіри і світлий тон шкіри',
+    '👨🏿‍🫯‍👨🏼' => 'борець: темний тон шкіри і помірно світлий тон шкіри',
+    '👨🏿‍🫯‍👨🏽' => 'борець: темний тон шкіри і помірний тон шкіри',
+    '👨🏿‍🫯‍👨🏾' => 'борець: темний тон шкіри і помірно темний тон шкіри',
     '👨🏻‍❤‍👨🏻' => 'чоловік і жінка із серцем між ними: чоловік, чоловік і світлий тон шкіри',
     '👨🏻‍❤‍👨🏼' => 'чоловік і жінка із серцем між ними: чоловік, чоловік, світлий тон шкіри і помірно світлий тон шкіри',
     '👨🏻‍❤‍👨🏽' => 'чоловік і жінка із серцем між ними: чоловік, чоловік, світлий тон шкіри і помірний тон шкіри',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'чоловік і жінка із серцем між ними: чоловік, чоловік, темний тон шкіри і помірний тон шкіри',
     '👨🏿‍❤‍👨🏾' => 'чоловік і жінка із серцем між ними: чоловік, чоловік, темний тон шкіри і помірно темний тон шкіри',
     '👨🏿‍❤‍👨🏿' => 'чоловік і жінка із серцем між ними: чоловік, чоловік і темний тон шкіри',
+    '👨🏻‍🐰‍👨🏼' => 'чоловіки з кролячими вухами: світлий тон шкіри і помірно світлий тон шкіри',
+    '👨🏻‍🐰‍👨🏽' => 'чоловіки з кролячими вухами: світлий тон шкіри і помірний тон шкіри',
+    '👨🏻‍🐰‍👨🏾' => 'чоловіки з кролячими вухами: світлий тон шкіри і помірно темний тон шкіри',
+    '👨🏻‍🐰‍👨🏿' => 'чоловіки з кролячими вухами: світлий тон шкіри і темний тон шкіри',
+    '👨🏼‍🐰‍👨🏻' => 'чоловіки з кролячими вухами: помірно світлий тон шкіри і світлий тон шкіри',
+    '👨🏼‍🐰‍👨🏽' => 'чоловіки з кролячими вухами: помірно світлий тон шкіри і помірний тон шкіри',
+    '👨🏼‍🐰‍👨🏾' => 'чоловіки з кролячими вухами: помірно світлий тон шкіри і помірно темний тон шкіри',
+    '👨🏼‍🐰‍👨🏿' => 'чоловіки з кролячими вухами: помірно світлий тон шкіри і темний тон шкіри',
+    '👨🏽‍🐰‍👨🏻' => 'чоловіки з кролячими вухами: помірний тон шкіри і світлий тон шкіри',
+    '👨🏽‍🐰‍👨🏼' => 'чоловіки з кролячими вухами: помірний тон шкіри і помірно світлий тон шкіри',
+    '👨🏽‍🐰‍👨🏾' => 'чоловіки з кролячими вухами: помірний тон шкіри і помірно темний тон шкіри',
+    '👨🏽‍🐰‍👨🏿' => 'чоловіки з кролячими вухами: помірний тон шкіри і темний тон шкіри',
+    '👨🏾‍🐰‍👨🏻' => 'чоловіки з кролячими вухами: помірно темний тон шкіри і світлий тон шкіри',
+    '👨🏾‍🐰‍👨🏼' => 'чоловіки з кролячими вухами: помірно темний тон шкіри і помірно світлий тон шкіри',
+    '👨🏾‍🐰‍👨🏽' => 'чоловіки з кролячими вухами: помірно темний тон шкіри і помірний тон шкіри',
+    '👨🏾‍🐰‍👨🏿' => 'чоловіки з кролячими вухами: помірно темний тон шкіри і темний тон шкіри',
+    '👨🏿‍🐰‍👨🏻' => 'чоловіки з кролячими вухами: темний тон шкіри і світлий тон шкіри',
+    '👨🏿‍🐰‍👨🏼' => 'чоловіки з кролячими вухами: темний тон шкіри і помірно світлий тон шкіри',
+    '👨🏿‍🐰‍👨🏽' => 'чоловіки з кролячими вухами: темний тон шкіри і помірний тон шкіри',
+    '👨🏿‍🐰‍👨🏾' => 'чоловіки з кролячими вухами: темний тон шкіри і помірно темний тон шкіри',
+    '👩🏻‍🫯‍👩🏼' => 'борчиня: світлий тон шкіри і помірно світлий тон шкіри',
+    '👩🏻‍🫯‍👩🏽' => 'борчиня: світлий тон шкіри і помірний тон шкіри',
+    '👩🏻‍🫯‍👩🏾' => 'борчиня: світлий тон шкіри і помірно темний тон шкіри',
+    '👩🏻‍🫯‍👩🏿' => 'борчиня: світлий тон шкіри і темний тон шкіри',
+    '👩🏼‍🫯‍👩🏻' => 'борчиня: помірно світлий тон шкіри і світлий тон шкіри',
+    '👩🏼‍🫯‍👩🏽' => 'борчиня: помірно світлий тон шкіри і помірний тон шкіри',
+    '👩🏼‍🫯‍👩🏾' => 'борчиня: помірно світлий тон шкіри і помірно темний тон шкіри',
+    '👩🏼‍🫯‍👩🏿' => 'борчиня: помірно світлий тон шкіри і темний тон шкіри',
+    '👩🏽‍🫯‍👩🏻' => 'борчиня: помірний тон шкіри і світлий тон шкіри',
+    '👩🏽‍🫯‍👩🏼' => 'борчиня: помірний тон шкіри і помірно світлий тон шкіри',
+    '👩🏽‍🫯‍👩🏾' => 'борчиня: помірний тон шкіри і помірно темний тон шкіри',
+    '👩🏽‍🫯‍👩🏿' => 'борчиня: помірний тон шкіри і темний тон шкіри',
+    '👩🏾‍🫯‍👩🏻' => 'борчиня: помірно темний тон шкіри і світлий тон шкіри',
+    '👩🏾‍🫯‍👩🏼' => 'борчиня: помірно темний тон шкіри і помірно світлий тон шкіри',
+    '👩🏾‍🫯‍👩🏽' => 'борчиня: помірно темний тон шкіри і помірний тон шкіри',
+    '👩🏾‍🫯‍👩🏿' => 'борчиня: помірно темний тон шкіри і темний тон шкіри',
+    '👩🏿‍🫯‍👩🏻' => 'борчиня: темний тон шкіри і світлий тон шкіри',
+    '👩🏿‍🫯‍👩🏼' => 'борчиня: темний тон шкіри і помірно світлий тон шкіри',
+    '👩🏿‍🫯‍👩🏽' => 'борчиня: темний тон шкіри і помірний тон шкіри',
+    '👩🏿‍🫯‍👩🏾' => 'борчиня: темний тон шкіри і помірно темний тон шкіри',
     '👩🏻‍❤‍👨🏻' => 'чоловік і жінка із серцем між ними: жінка, чоловік і світлий тон шкіри',
     '👩🏻‍❤‍👨🏼' => 'чоловік і жінка із серцем між ними: жінка, чоловік, світлий тон шкіри і помірно світлий тон шкіри',
     '👩🏻‍❤‍👨🏽' => 'чоловік і жінка із серцем між ними: жінка, чоловік, світлий тон шкіри і помірний тон шкіри',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'чоловік і жінка із серцем між ними: жінка, жінка, темний тон шкіри і помірний тон шкіри',
     '👩🏿‍❤‍👩🏾' => 'чоловік і жінка із серцем між ними: жінка, жінка, темний тон шкіри і помірно темний тон шкіри',
     '👩🏿‍❤‍👩🏿' => 'чоловік і жінка із серцем між ними: жінка, жінка і темний тон шкіри',
+    '👩🏻‍🐰‍👩🏼' => 'жінки з кролячими вухами: світлий тон шкіри і помірно світлий тон шкіри',
+    '👩🏻‍🐰‍👩🏽' => 'жінки з кролячими вухами: світлий тон шкіри і помірний тон шкіри',
+    '👩🏻‍🐰‍👩🏾' => 'жінки з кролячими вухами: світлий тон шкіри і помірно темний тон шкіри',
+    '👩🏻‍🐰‍👩🏿' => 'жінки з кролячими вухами: світлий тон шкіри і темний тон шкіри',
+    '👩🏼‍🐰‍👩🏻' => 'жінки з кролячими вухами: помірно світлий тон шкіри і світлий тон шкіри',
+    '👩🏼‍🐰‍👩🏽' => 'жінки з кролячими вухами: помірно світлий тон шкіри і помірний тон шкіри',
+    '👩🏼‍🐰‍👩🏾' => 'жінки з кролячими вухами: помірно світлий тон шкіри і помірно темний тон шкіри',
+    '👩🏼‍🐰‍👩🏿' => 'жінки з кролячими вухами: помірно світлий тон шкіри і темний тон шкіри',
+    '👩🏽‍🐰‍👩🏻' => 'жінки з кролячими вухами: помірний тон шкіри і світлий тон шкіри',
+    '👩🏽‍🐰‍👩🏼' => 'жінки з кролячими вухами: помірний тон шкіри і помірно світлий тон шкіри',
+    '👩🏽‍🐰‍👩🏾' => 'жінки з кролячими вухами: помірний тон шкіри і помірно темний тон шкіри',
+    '👩🏽‍🐰‍👩🏿' => 'жінки з кролячими вухами: помірний тон шкіри і темний тон шкіри',
+    '👩🏾‍🐰‍👩🏻' => 'жінки з кролячими вухами: помірно темний тон шкіри і світлий тон шкіри',
+    '👩🏾‍🐰‍👩🏼' => 'жінки з кролячими вухами: помірно темний тон шкіри і помірно світлий тон шкіри',
+    '👩🏾‍🐰‍👩🏽' => 'жінки з кролячими вухами: помірно темний тон шкіри і помірний тон шкіри',
+    '👩🏾‍🐰‍👩🏿' => 'жінки з кролячими вухами: помірно темний тон шкіри і темний тон шкіри',
+    '👩🏿‍🐰‍👩🏻' => 'жінки з кролячими вухами: темний тон шкіри і світлий тон шкіри',
+    '👩🏿‍🐰‍👩🏼' => 'жінки з кролячими вухами: темний тон шкіри і помірно світлий тон шкіри',
+    '👩🏿‍🐰‍👩🏽' => 'жінки з кролячими вухами: темний тон шкіри і помірний тон шкіри',
+    '👩🏿‍🐰‍👩🏾' => 'жінки з кролячими вухами: темний тон шкіри і помірно темний тон шкіри',
     '🧑🏻‍🤝‍🧑🏻' => 'люди, що тримаються за руки: світлий тон шкіри',
     '🧑🏻‍🤝‍🧑🏼' => 'люди, що тримаються за руки: світлий тон шкіри і помірно світлий тон шкіри',
     '🧑🏻‍🤝‍🧑🏽' => 'люди, що тримаються за руки: світлий тон шкіри і помірний тон шкіри',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'прапор: Шотландія',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'прапор: Уельс',
     '🧑‍🧑‍🧒‍🧒' => 'родина: двоє дорослих і двоє дітей',
-    '🚶🏻‍♀‍➡' => 'правий профіль: жінка, що йде пішки',
-    '🚶🏼‍♀‍➡' => 'правий профіль: жінка, що йде пішки',
-    '🚶🏽‍♀‍➡' => 'правий профіль: жінка, що йде пішки',
-    '🚶🏾‍♀‍➡' => 'правий профіль: жінка, що йде пішки',
-    '🚶🏿‍♀‍➡' => 'правий профіль: жінка, що йде пішки',
-    '🚶🏻‍♂‍➡' => 'правий профіль: чоловік, що йде пішки',
-    '🚶🏼‍♂‍➡' => 'правий профіль: чоловік, що йде пішки',
-    '🚶🏽‍♂‍➡' => 'правий профіль: чоловік, що йде пішки',
-    '🚶🏾‍♂‍➡' => 'правий профіль: чоловік, що йде пішки',
-    '🚶🏿‍♂‍➡' => 'правий профіль: чоловік, що йде пішки',
-    '🧎🏻‍♀‍➡' => 'правий профіль: жінка навколішках',
-    '🧎🏼‍♀‍➡' => 'правий профіль: жінка навколішках',
-    '🧎🏽‍♀‍➡' => 'правий профіль: жінка навколішках',
-    '🧎🏾‍♀‍➡' => 'правий профіль: жінка навколішках',
-    '🧎🏿‍♀‍➡' => 'правий профіль: жінка навколішках',
-    '🧎🏻‍♂‍➡' => 'правий профіль: чоловік навколішках',
-    '🧎🏼‍♂‍➡' => 'правий профіль: чоловік навколішках',
-    '🧎🏽‍♂‍➡' => 'правий профіль: чоловік навколішках',
-    '🧎🏾‍♂‍➡' => 'правий профіль: чоловік навколішках',
-    '🧎🏿‍♂‍➡' => 'правий профіль: чоловік навколішках',
-    '🧑🏻‍🦯‍➡' => 'правий профіль: людина з тактильним ціпком',
-    '🧑🏼‍🦯‍➡' => 'правий профіль: людина з тактильним ціпком',
-    '🧑🏽‍🦯‍➡' => 'правий профіль: людина з тактильним ціпком',
-    '🧑🏾‍🦯‍➡' => 'правий профіль: людина з тактильним ціпком',
-    '🧑🏿‍🦯‍➡' => 'правий профіль: людина з тактильним ціпком',
-    '👨🏻‍🦯‍➡' => 'правий профіль: чоловік із тактильною тростиною',
-    '👨🏼‍🦯‍➡' => 'правий профіль: чоловік із тактильною тростиною',
-    '👨🏽‍🦯‍➡' => 'правий профіль: чоловік із тактильною тростиною',
-    '👨🏾‍🦯‍➡' => 'правий профіль: чоловік із тактильною тростиною',
-    '👨🏿‍🦯‍➡' => 'правий профіль: чоловік із тактильною тростиною',
-    '👩🏻‍🦯‍➡' => 'правий профіль: жінка з тактильною тростиною',
-    '👩🏼‍🦯‍➡' => 'правий профіль: жінка з тактильною тростиною',
-    '👩🏽‍🦯‍➡' => 'правий профіль: жінка з тактильною тростиною',
-    '👩🏾‍🦯‍➡' => 'правий профіль: жінка з тактильною тростиною',
-    '👩🏿‍🦯‍➡' => 'правий профіль: жінка з тактильною тростиною',
-    '🧑🏻‍🦼‍➡' => 'правий профіль: людина на моторизованому візку',
-    '🧑🏼‍🦼‍➡' => 'правий профіль: людина на моторизованому візку',
-    '🧑🏽‍🦼‍➡' => 'правий профіль: людина на моторизованому візку',
-    '🧑🏾‍🦼‍➡' => 'правий профіль: людина на моторизованому візку',
-    '🧑🏿‍🦼‍➡' => 'правий профіль: людина на моторизованому візку',
-    '👨🏻‍🦼‍➡' => 'правий профіль: чоловік у візку з електроприводом',
-    '👨🏼‍🦼‍➡' => 'правий профіль: чоловік у візку з електроприводом',
-    '👨🏽‍🦼‍➡' => 'правий профіль: чоловік у візку з електроприводом',
-    '👨🏾‍🦼‍➡' => 'правий профіль: чоловік у візку з електроприводом',
-    '👨🏿‍🦼‍➡' => 'правий профіль: чоловік у візку з електроприводом',
-    '👩🏻‍🦼‍➡' => 'правий профіль: жінка у візку з електроприводом',
-    '👩🏼‍🦼‍➡' => 'правий профіль: жінка у візку з електроприводом',
-    '👩🏽‍🦼‍➡' => 'правий профіль: жінка у візку з електроприводом',
-    '👩🏾‍🦼‍➡' => 'правий профіль: жінка у візку з електроприводом',
-    '👩🏿‍🦼‍➡' => 'правий профіль: жінка у візку з електроприводом',
-    '🧑🏻‍🦽‍➡' => 'правий профіль: людина у візку з ручним керуванням',
-    '🧑🏼‍🦽‍➡' => 'правий профіль: людина у візку з ручним керуванням',
-    '🧑🏽‍🦽‍➡' => 'правий профіль: людина у візку з ручним керуванням',
-    '🧑🏾‍🦽‍➡' => 'правий профіль: людина у візку з ручним керуванням',
-    '🧑🏿‍🦽‍➡' => 'правий профіль: людина у візку з ручним керуванням',
-    '👨🏻‍🦽‍➡' => 'правий профіль: чоловік у візку з ручним приводом',
-    '👨🏼‍🦽‍➡' => 'правий профіль: чоловік у візку з ручним приводом',
-    '👨🏽‍🦽‍➡' => 'правий профіль: чоловік у візку з ручним приводом',
-    '👨🏾‍🦽‍➡' => 'правий профіль: чоловік у візку з ручним приводом',
-    '👨🏿‍🦽‍➡' => 'правий профіль: чоловік у візку з ручним приводом',
-    '👩🏻‍🦽‍➡' => 'правий профіль: жінка у візку з ручним приводом',
-    '👩🏼‍🦽‍➡' => 'правий профіль: жінка у візку з ручним приводом',
-    '👩🏽‍🦽‍➡' => 'правий профіль: жінка у візку з ручним приводом',
-    '👩🏾‍🦽‍➡' => 'правий профіль: жінка у візку з ручним приводом',
-    '👩🏿‍🦽‍➡' => 'правий профіль: жінка у візку з ручним приводом',
-    '🏃🏻‍♀‍➡' => 'правий профіль: жінка, що біжить',
-    '🏃🏼‍♀‍➡' => 'правий профіль: жінка, що біжить',
-    '🏃🏽‍♀‍➡' => 'правий профіль: жінка, що біжить',
-    '🏃🏾‍♀‍➡' => 'правий профіль: жінка, що біжить',
-    '🏃🏿‍♀‍➡' => 'правий профіль: жінка, що біжить',
-    '🏃🏻‍♂‍➡' => 'правий профіль: чоловік, що біжить',
-    '🏃🏼‍♂‍➡' => 'правий профіль: чоловік, що біжить',
-    '🏃🏽‍♂‍➡' => 'правий профіль: чоловік, що біжить',
-    '🏃🏾‍♂‍➡' => 'правий профіль: чоловік, що біжить',
-    '🏃🏿‍♂‍➡' => 'правий профіль: чоловік, що біжить',
+    '🚶🏻‍♀‍➡' => 'жінка, що йде пішки: світлий тон шкіри і правий профіль:',
+    '🚶🏼‍♀‍➡' => 'жінка, що йде пішки: помірно світлий тон шкіри і правий профіль:',
+    '🚶🏽‍♀‍➡' => 'жінка, що йде пішки: помірний тон шкіри і правий профіль:',
+    '🚶🏾‍♀‍➡' => 'жінка, що йде пішки: помірно темний тон шкіри і правий профіль:',
+    '🚶🏿‍♀‍➡' => 'жінка, що йде пішки: темний тон шкіри і правий профіль:',
+    '🚶🏻‍♂‍➡' => 'чоловік, що йде пішки: світлий тон шкіри і правий профіль:',
+    '🚶🏼‍♂‍➡' => 'чоловік, що йде пішки: помірно світлий тон шкіри і правий профіль:',
+    '🚶🏽‍♂‍➡' => 'чоловік, що йде пішки: помірний тон шкіри і правий профіль:',
+    '🚶🏾‍♂‍➡' => 'чоловік, що йде пішки: помірно темний тон шкіри і правий профіль:',
+    '🚶🏿‍♂‍➡' => 'чоловік, що йде пішки: темний тон шкіри і правий профіль:',
+    '🧎🏻‍♀‍➡' => 'жінка навколішках: світлий тон шкіри і правий профіль:',
+    '🧎🏼‍♀‍➡' => 'жінка навколішках: помірно світлий тон шкіри і правий профіль:',
+    '🧎🏽‍♀‍➡' => 'жінка навколішках: помірний тон шкіри і правий профіль:',
+    '🧎🏾‍♀‍➡' => 'жінка навколішках: помірно темний тон шкіри і правий профіль:',
+    '🧎🏿‍♀‍➡' => 'жінка навколішках: темний тон шкіри і правий профіль:',
+    '🧎🏻‍♂‍➡' => 'чоловік навколішках: світлий тон шкіри і правий профіль:',
+    '🧎🏼‍♂‍➡' => 'чоловік навколішках: помірно світлий тон шкіри і правий профіль:',
+    '🧎🏽‍♂‍➡' => 'чоловік навколішках: помірний тон шкіри і правий профіль:',
+    '🧎🏾‍♂‍➡' => 'чоловік навколішках: помірно темний тон шкіри і правий профіль:',
+    '🧎🏿‍♂‍➡' => 'чоловік навколішках: темний тон шкіри і правий профіль:',
+    '🧑🏻‍🦯‍➡' => 'людина з тактильним ціпком: світлий тон шкіри і правий профіль:',
+    '🧑🏼‍🦯‍➡' => 'людина з тактильним ціпком: помірно світлий тон шкіри і правий профіль:',
+    '🧑🏽‍🦯‍➡' => 'людина з тактильним ціпком: помірний тон шкіри і правий профіль:',
+    '🧑🏾‍🦯‍➡' => 'людина з тактильним ціпком: помірно темний тон шкіри і правий профіль:',
+    '🧑🏿‍🦯‍➡' => 'людина з тактильним ціпком: темний тон шкіри і правий профіль:',
+    '👨🏻‍🦯‍➡' => 'чоловік із тактильною тростиною: світлий тон шкіри і правий профіль:',
+    '👨🏼‍🦯‍➡' => 'чоловік із тактильною тростиною: помірно світлий тон шкіри і правий профіль:',
+    '👨🏽‍🦯‍➡' => 'чоловік із тактильною тростиною: помірний тон шкіри і правий профіль:',
+    '👨🏾‍🦯‍➡' => 'чоловік із тактильною тростиною: помірно темний тон шкіри і правий профіль:',
+    '👨🏿‍🦯‍➡' => 'чоловік із тактильною тростиною: темний тон шкіри і правий профіль:',
+    '👩🏻‍🦯‍➡' => 'жінка з тактильною тростиною: світлий тон шкіри і правий профіль:',
+    '👩🏼‍🦯‍➡' => 'жінка з тактильною тростиною: помірно світлий тон шкіри і правий профіль:',
+    '👩🏽‍🦯‍➡' => 'жінка з тактильною тростиною: помірний тон шкіри і правий профіль:',
+    '👩🏾‍🦯‍➡' => 'жінка з тактильною тростиною: помірно темний тон шкіри і правий профіль:',
+    '👩🏿‍🦯‍➡' => 'жінка з тактильною тростиною: темний тон шкіри і правий профіль:',
+    '🧑🏻‍🦼‍➡' => 'людина на моторизованому візку: світлий тон шкіри і правий профіль:',
+    '🧑🏼‍🦼‍➡' => 'людина на моторизованому візку: помірно світлий тон шкіри і правий профіль:',
+    '🧑🏽‍🦼‍➡' => 'людина на моторизованому візку: помірний тон шкіри і правий профіль:',
+    '🧑🏾‍🦼‍➡' => 'людина на моторизованому візку: помірно темний тон шкіри і правий профіль:',
+    '🧑🏿‍🦼‍➡' => 'людина на моторизованому візку: темний тон шкіри і правий профіль:',
+    '👨🏻‍🦼‍➡' => 'чоловік у візку з електроприводом: світлий тон шкіри і правий профіль:',
+    '👨🏼‍🦼‍➡' => 'чоловік у візку з електроприводом: помірно світлий тон шкіри і правий профіль:',
+    '👨🏽‍🦼‍➡' => 'чоловік у візку з електроприводом: помірний тон шкіри і правий профіль:',
+    '👨🏾‍🦼‍➡' => 'чоловік у візку з електроприводом: помірно темний тон шкіри і правий профіль:',
+    '👨🏿‍🦼‍➡' => 'чоловік у візку з електроприводом: темний тон шкіри і правий профіль:',
+    '👩🏻‍🦼‍➡' => 'жінка у візку з електроприводом: світлий тон шкіри і правий профіль:',
+    '👩🏼‍🦼‍➡' => 'жінка у візку з електроприводом: помірно світлий тон шкіри і правий профіль:',
+    '👩🏽‍🦼‍➡' => 'жінка у візку з електроприводом: помірний тон шкіри і правий профіль:',
+    '👩🏾‍🦼‍➡' => 'жінка у візку з електроприводом: помірно темний тон шкіри і правий профіль:',
+    '👩🏿‍🦼‍➡' => 'жінка у візку з електроприводом: темний тон шкіри і правий профіль:',
+    '🧑🏻‍🦽‍➡' => 'людина у візку з ручним керуванням: світлий тон шкіри і правий профіль:',
+    '🧑🏼‍🦽‍➡' => 'людина у візку з ручним керуванням: помірно світлий тон шкіри і правий профіль:',
+    '🧑🏽‍🦽‍➡' => 'людина у візку з ручним керуванням: помірний тон шкіри і правий профіль:',
+    '🧑🏾‍🦽‍➡' => 'людина у візку з ручним керуванням: помірно темний тон шкіри і правий профіль:',
+    '🧑🏿‍🦽‍➡' => 'людина у візку з ручним керуванням: темний тон шкіри і правий профіль:',
+    '👨🏻‍🦽‍➡' => 'чоловік у візку з ручним приводом: світлий тон шкіри і правий профіль:',
+    '👨🏼‍🦽‍➡' => 'чоловік у візку з ручним приводом: помірно світлий тон шкіри і правий профіль:',
+    '👨🏽‍🦽‍➡' => 'чоловік у візку з ручним приводом: помірний тон шкіри і правий профіль:',
+    '👨🏾‍🦽‍➡' => 'чоловік у візку з ручним приводом: помірно темний тон шкіри і правий профіль:',
+    '👨🏿‍🦽‍➡' => 'чоловік у візку з ручним приводом: темний тон шкіри і правий профіль:',
+    '👩🏻‍🦽‍➡' => 'жінка у візку з ручним приводом: світлий тон шкіри і правий профіль:',
+    '👩🏼‍🦽‍➡' => 'жінка у візку з ручним приводом: помірно світлий тон шкіри і правий профіль:',
+    '👩🏽‍🦽‍➡' => 'жінка у візку з ручним приводом: помірний тон шкіри і правий профіль:',
+    '👩🏾‍🦽‍➡' => 'жінка у візку з ручним приводом: помірно темний тон шкіри і правий профіль:',
+    '👩🏿‍🦽‍➡' => 'жінка у візку з ручним приводом: темний тон шкіри і правий профіль:',
+    '🏃🏻‍♀‍➡' => 'жінка, що біжить: світлий тон шкіри і правий профіль:',
+    '🏃🏼‍♀‍➡' => 'жінка, що біжить: помірно світлий тон шкіри і правий профіль:',
+    '🏃🏽‍♀‍➡' => 'жінка, що біжить: помірний тон шкіри і правий профіль:',
+    '🏃🏾‍♀‍➡' => 'жінка, що біжить: помірно темний тон шкіри і правий профіль:',
+    '🏃🏿‍♀‍➡' => 'жінка, що біжить: темний тон шкіри і правий профіль:',
+    '🏃🏻‍♂‍➡' => 'чоловік, що біжить: світлий тон шкіри і правий профіль:',
+    '🏃🏼‍♂‍➡' => 'чоловік, що біжить: помірно світлий тон шкіри і правий профіль:',
+    '🏃🏽‍♂‍➡' => 'чоловік, що біжить: помірний тон шкіри і правий профіль:',
+    '🏃🏾‍♂‍➡' => 'чоловік, що біжить: помірно темний тон шкіри і правий профіль:',
+    '🏃🏿‍♂‍➡' => 'чоловік, що біжить: темний тон шкіри і правий профіль:',
     '🫱🏻‍🫲🏼' => 'рукостискання: світлий тон шкіри і помірно світлий тон шкіри',
     '🫱🏻‍🫲🏽' => 'рукостискання: світлий тон шкіри і помірний тон шкіри',
     '🫱🏻‍🫲🏾' => 'рукостискання: світлий тон шкіри і помірно темний тон шкіри',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'рукостискання: темний тон шкіри і помірно світлий тон шкіри',
     '🫱🏿‍🫲🏽' => 'рукостискання: темний тон шкіри і помірний тон шкіри',
     '🫱🏿‍🫲🏾' => 'рукостискання: темний тон шкіри і помірно темний тон шкіри',
-    '🚶‍♀‍➡' => 'правий профіль: жінка, що йде пішки',
-    '🚶‍♂‍➡' => 'правий профіль: чоловік, що йде пішки',
-    '🧎‍♀‍➡' => 'правий профіль: жінка навколішках',
-    '🧎‍♂‍➡' => 'правий профіль: чоловік навколішках',
-    '🧑‍🦯‍➡' => 'правий профіль: людина з тактильним ціпком',
-    '👨‍🦯‍➡' => 'правий профіль: чоловік із тактильною тростиною',
-    '👩‍🦯‍➡' => 'правий профіль: жінка з тактильною тростиною',
-    '🧑‍🦼‍➡' => 'правий профіль: людина на моторизованому візку',
-    '👨‍🦼‍➡' => 'правий профіль: чоловік у візку з електроприводом',
-    '👩‍🦼‍➡' => 'правий профіль: жінка у візку з електроприводом',
-    '🧑‍🦽‍➡' => 'правий профіль: людина у візку з ручним керуванням',
-    '👨‍🦽‍➡' => 'правий профіль: чоловік у візку з ручним приводом',
-    '👩‍🦽‍➡' => 'правий профіль: жінка у візку з ручним приводом',
-    '🏃‍♀‍➡' => 'правий профіль: жінка, що біжить',
-    '🏃‍♂‍➡' => 'правий профіль: чоловік, що біжить',
+    '🚶‍♀‍➡' => 'жінка, що йде пішки: правий профіль:',
+    '🚶‍♂‍➡' => 'чоловік, що йде пішки: правий профіль:',
+    '🧎‍♀‍➡' => 'жінка навколішках: правий профіль:',
+    '🧎‍♂‍➡' => 'чоловік навколішках: правий профіль:',
+    '🧑‍🦯‍➡' => 'людина з тактильним ціпком: правий профіль:',
+    '👨‍🦯‍➡' => 'чоловік із тактильною тростиною: правий профіль:',
+    '👩‍🦯‍➡' => 'жінка з тактильною тростиною: правий профіль:',
+    '🧑‍🦼‍➡' => 'людина на моторизованому візку: правий профіль:',
+    '👨‍🦼‍➡' => 'чоловік у візку з електроприводом: правий профіль:',
+    '👩‍🦼‍➡' => 'жінка у візку з електроприводом: правий профіль:',
+    '🧑‍🦽‍➡' => 'людина у візку з ручним керуванням: правий профіль:',
+    '👨‍🦽‍➡' => 'чоловік у візку з ручним приводом: правий профіль:',
+    '👩‍🦽‍➡' => 'жінка у візку з ручним приводом: правий профіль:',
+    '🏃‍♀‍➡' => 'жінка, що біжить: правий профіль:',
+    '🏃‍♂‍➡' => 'чоловік, що біжить: правий профіль:',
     '👩‍❤‍👨' => 'чоловік і жінка із серцем між ними: жінка і чоловік',
     '👨‍❤‍👨' => 'чоловік і жінка із серцем між ними: чоловік і чоловік',
     '👩‍❤‍👩' => 'чоловік і жінка із серцем між ними: жінка і жінка',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'людина: помірний тон шкіри і лисина',
     '🧑🏾‍🦲' => 'людина: помірно темний тон шкіри і лисина',
     '🧑🏿‍🦲' => 'людина: темний тон шкіри і лисина',
+    '🧑🏻‍🩰' => 'танцівник балету: світлий тон шкіри',
+    '🧑🏼‍🩰' => 'танцівник балету: помірно світлий тон шкіри',
+    '🧑🏽‍🩰' => 'танцівник балету: помірний тон шкіри',
+    '🧑🏾‍🩰' => 'танцівник балету: помірно темний тон шкіри',
+    '🧑🏿‍🩰' => 'танцівник балету: темний тон шкіри',
     '🧔🏻‍♂' => 'чоловік із бородою: світлий тон шкіри',
     '🧔🏼‍♂' => 'чоловік із бородою: помірно світлий тон шкіри',
     '🧔🏽‍♂' => 'чоловік із бородою: помірний тон шкіри',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'жінка, що йде пішки: помірний тон шкіри',
     '🚶🏾‍♀' => 'жінка, що йде пішки: помірно темний тон шкіри',
     '🚶🏿‍♀' => 'жінка, що йде пішки: темний тон шкіри',
-    '🚶🏻‍➡' => 'правий профіль: людина, що йде пішки',
-    '🚶🏼‍➡' => 'правий профіль: людина, що йде пішки',
-    '🚶🏽‍➡' => 'правий профіль: людина, що йде пішки',
-    '🚶🏾‍➡' => 'правий профіль: людина, що йде пішки',
-    '🚶🏿‍➡' => 'правий профіль: людина, що йде пішки',
+    '🚶🏻‍➡' => 'людина, що йде пішки: світлий тон шкіри і правий профіль:',
+    '🚶🏼‍➡' => 'людина, що йде пішки: помірно світлий тон шкіри і правий профіль:',
+    '🚶🏽‍➡' => 'людина, що йде пішки: помірний тон шкіри і правий профіль:',
+    '🚶🏾‍➡' => 'людина, що йде пішки: помірно темний тон шкіри і правий профіль:',
+    '🚶🏿‍➡' => 'людина, що йде пішки: темний тон шкіри і правий профіль:',
     '🧍🏻‍♂' => 'чоловік, що стоїть: світлий тон шкіри',
     '🧍🏼‍♂' => 'чоловік, що стоїть: помірно світлий тон шкіри',
     '🧍🏽‍♂' => 'чоловік, що стоїть: помірний тон шкіри',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'жінка навколішках: помірний тон шкіри',
     '🧎🏾‍♀' => 'жінка навколішках: помірно темний тон шкіри',
     '🧎🏿‍♀' => 'жінка навколішках: темний тон шкіри',
-    '🧎🏻‍➡' => 'правий профіль: людина навколішках',
-    '🧎🏼‍➡' => 'правий профіль: людина навколішках',
-    '🧎🏽‍➡' => 'правий профіль: людина навколішках',
-    '🧎🏾‍➡' => 'правий профіль: людина навколішках',
-    '🧎🏿‍➡' => 'правий профіль: людина навколішках',
+    '🧎🏻‍➡' => 'людина навколішках: світлий тон шкіри і правий профіль:',
+    '🧎🏼‍➡' => 'людина навколішках: помірно світлий тон шкіри і правий профіль:',
+    '🧎🏽‍➡' => 'людина навколішках: помірний тон шкіри і правий профіль:',
+    '🧎🏾‍➡' => 'людина навколішках: помірно темний тон шкіри і правий профіль:',
+    '🧎🏿‍➡' => 'людина навколішках: темний тон шкіри і правий профіль:',
     '🧑🏻‍🦯' => 'людина з тактильним ціпком: світлий тон шкіри',
     '🧑🏼‍🦯' => 'людина з тактильним ціпком: помірно світлий тон шкіри',
     '🧑🏽‍🦯' => 'людина з тактильним ціпком: помірний тон шкіри',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'жінка, що біжить: помірний тон шкіри',
     '🏃🏾‍♀' => 'жінка, що біжить: помірно темний тон шкіри',
     '🏃🏿‍♀' => 'жінка, що біжить: темний тон шкіри',
-    '🏃🏻‍➡' => 'правий профіль: людина, що біжить',
-    '🏃🏼‍➡' => 'правий профіль: людина, що біжить',
-    '🏃🏽‍➡' => 'правий профіль: людина, що біжить',
-    '🏃🏾‍➡' => 'правий профіль: людина, що біжить',
-    '🏃🏿‍➡' => 'правий профіль: людина, що біжить',
+    '🏃🏻‍➡' => 'людина, що біжить: світлий тон шкіри і правий профіль:',
+    '🏃🏼‍➡' => 'людина, що біжить: помірно світлий тон шкіри і правий профіль:',
+    '🏃🏽‍➡' => 'людина, що біжить: помірний тон шкіри і правий профіль:',
+    '🏃🏾‍➡' => 'людина, що біжить: помірно темний тон шкіри і правий профіль:',
+    '🏃🏿‍➡' => 'людина, що біжить: темний тон шкіри і правий профіль:',
+    '👯🏻‍♀' => 'жінки з кролячими вухами: світлий тон шкіри',
+    '👯🏼‍♀' => 'жінки з кролячими вухами: помірно світлий тон шкіри',
+    '👯🏽‍♀' => 'жінки з кролячими вухами: помірний тон шкіри',
+    '👯🏾‍♀' => 'жінки з кролячими вухами: помірно темний тон шкіри',
+    '👯🏿‍♀' => 'жінки з кролячими вухами: темний тон шкіри',
+    '👯🏻‍♂' => 'чоловіки з кролячими вухами: світлий тон шкіри',
+    '👯🏼‍♂' => 'чоловіки з кролячими вухами: помірно світлий тон шкіри',
+    '👯🏽‍♂' => 'чоловіки з кролячими вухами: помірний тон шкіри',
+    '👯🏾‍♂' => 'чоловіки з кролячими вухами: помірно темний тон шкіри',
+    '👯🏿‍♂' => 'чоловіки з кролячими вухами: темний тон шкіри',
     '🧖🏻‍♂' => 'чоловік у паркому приміщенні: світлий тон шкіри',
     '🧖🏼‍♂' => 'чоловік у паркому приміщенні: помірно світлий тон шкіри',
     '🧖🏽‍♂' => 'чоловік у паркому приміщенні: помірний тон шкіри',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'жінка, що перевертається «колесом»: помірний тон шкіри',
     '🤸🏾‍♀' => 'жінка, що перевертається «колесом»: помірно темний тон шкіри',
     '🤸🏿‍♀' => 'жінка, що перевертається «колесом»: темний тон шкіри',
+    '🤼🏻‍♀' => 'борчиня: світлий тон шкіри',
+    '🤼🏼‍♀' => 'борчиня: помірно світлий тон шкіри',
+    '🤼🏽‍♀' => 'борчиня: помірний тон шкіри',
+    '🤼🏾‍♀' => 'борчиня: помірно темний тон шкіри',
+    '🤼🏿‍♀' => 'борчиня: темний тон шкіри',
+    '🤼🏻‍♂' => 'борець: світлий тон шкіри',
+    '🤼🏼‍♂' => 'борець: помірно світлий тон шкіри',
+    '🤼🏽‍♂' => 'борець: помірний тон шкіри',
+    '🤼🏾‍♂' => 'борець: помірно темний тон шкіри',
+    '🤼🏿‍♂' => 'борець: темний тон шкіри',
     '🤽🏻‍♂' => 'ватерполіст: світлий тон шкіри',
     '🤽🏼‍♂' => 'ватерполіст: помірно світлий тон шкіри',
     '🤽🏽‍♂' => 'ватерполіст: помірний тон шкіри',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'жінка: кучеряве волосся',
     '👩‍🦳' => 'жінка: сиве волосся',
     '👩‍🦲' => 'жінка: лисина',
-    '🚶‍➡' => 'правий профіль: людина, що йде пішки',
-    '🧎‍➡' => 'правий профіль: людина навколішках',
-    '🏃‍➡' => 'правий профіль: людина, що біжить',
+    '🚶‍➡' => 'людина, що йде пішки: правий профіль:',
+    '🧎‍➡' => 'людина навколішках: правий профіль:',
+    '🏃‍➡' => 'людина, що біжить: правий профіль:',
     '👨‍👦' => 'родина: чоловік і хлопчик',
     '👨‍👧' => 'родина: чоловік і дівчинка',
     '👩‍👦' => 'родина: жінка і хлопчик',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'жінка у візку з ручним приводом',
     '🏃‍♂' => 'чоловік, що біжить',
     '🏃‍♀' => 'жінка, що біжить',
+    '🧑‍🩰' => 'танцівник балету',
     '👯‍♂' => 'чоловіки з кролячими вухами',
     '👯‍♀' => 'жінки з кролячими вухами',
     '🧖‍♂' => 'чоловік у паркому приміщенні',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'чоловік у діловому костюмі, що левітує: помірний тон шкіри',
     '🕴🏾' => 'чоловік у діловому костюмі, що левітує: помірно темний тон шкіри',
     '🕴🏿' => 'чоловік у діловому костюмі, що левітує: темний тон шкіри',
+    '👯🏻' => 'люди з кролячими вухами: світлий тон шкіри',
+    '👯🏼' => 'люди з кролячими вухами: помірно світлий тон шкіри',
+    '👯🏽' => 'люди з кролячими вухами: помірний тон шкіри',
+    '👯🏾' => 'люди з кролячими вухами: помірно темний тон шкіри',
+    '👯🏿' => 'люди з кролячими вухами: темний тон шкіри',
     '🧖🏻' => 'людина в паркому приміщенні: світлий тон шкіри',
     '🧖🏼' => 'людина в паркому приміщенні: помірно світлий тон шкіри',
     '🧖🏽' => 'людина в паркому приміщенні: помірний тон шкіри',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'людина, що перевертається «колесом»: помірний тон шкіри',
     '🤸🏾' => 'людина, що перевертається «колесом»: помірно темний тон шкіри',
     '🤸🏿' => 'людина, що перевертається «колесом»: темний тон шкіри',
+    '🤼🏻' => 'борці: світлий тон шкіри',
+    '🤼🏼' => 'борці: помірно світлий тон шкіри',
+    '🤼🏽' => 'борці: помірний тон шкіри',
+    '🤼🏾' => 'борці: помірно темний тон шкіри',
+    '🤼🏿' => 'борці: темний тон шкіри',
     '🤽🏻' => 'людина, що грає у ватерполо: світлий тон шкіри',
     '🤽🏼' => 'людина, що грає у ватерполо: помірно світлий тон шкіри',
     '🤽🏽' => 'людина, що грає у ватерполо: помірний тон шкіри',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'прапор: Китай',
     '🇨🇴' => 'прапор: Колумбія',
     '🇨🇵' => 'прапор: Острів Кліппертон',
+    '🇨🇶' => 'прапор: Сарк',
     '🇨🇷' => 'прапор: Коста-Рика',
     '🇨🇺' => 'прапор: Куба',
     '🇨🇻' => 'прапор: Кабо-Верде',
@@ -2390,13 +2547,6 @@
     '🏽' => 'помірний тон шкіри',
     '🏾' => 'помірно темний тон шкіри',
     '🏿' => 'темний тон шкіри',
-    '🪉' => 'арфа',
-    '🪏' => 'лопата',
-    '🪾' => 'сухе дерево',
-    '🫆' => 'відбиток пальця',
-    '🫜' => 'коренеплід',
-    '🫟' => 'ляпка',
-    '🫩' => 'невиспане обличчя',
     '😀' => 'широко всміхнене обличчя',
     '😃' => 'широко всміхнене обличчя з очищами',
     '😄' => 'широко всміхнене обличчя з примруженими очима',
@@ -2450,6 +2600,7 @@
     '😪' => 'заспане обличчя',
     '🤤' => 'обличчя, що пускає слину',
     '😴' => 'обличчя, що спить',
+    '🫩' => 'невиспане обличчя',
     '😷' => 'обличчя в медичній масці',
     '🤒' => 'обличчя з термометром',
     '🤕' => 'обличчя з головною повʼязкою',
@@ -2476,6 +2627,7 @@
     '😯' => 'здивоване і збентежене обличчя з бровами',
     '😲' => 'вражене обличчя',
     '😳' => 'зашаріле обличчя',
+    '🫪' => 'спотворене обличчя',
     '🥺' => 'благальне обличчя',
     '🥹' => 'обличчя, що ледве стримує сльози',
     '😦' => 'похмуре обличчя з відкритим ротом',
@@ -2547,6 +2699,7 @@
     '💋' => 'слід цілунку',
     '💯' => 'cто балів',
     '💢' => 'символ гніву',
+    '🫯' => 'бійка в хмарі',
     '💥' => 'зіткнення',
     '💫' => 'символ запаморочення',
     '💦' => 'краплі поту',
@@ -2670,6 +2823,7 @@
     '🧞' => 'джин',
     '🧟' => 'зомбі',
     '🧌' => 'троль',
+    '🫈' => 'волохата істота',
     '💆' => 'людина, якій роблять масаж голови',
     '💇' => 'людина, якій роблять стрижку',
     '🚶' => 'людина, що йде пішки',
@@ -2713,6 +2867,7 @@
     '🫂' => 'люди обіймаються',
     '👪' => 'родина',
     '👣' => 'сліди ніг',
+    '🫆' => 'відбиток пальця',
     '🦰' => 'руде волосся',
     '🦱' => 'кучеряве волосся',
     '🦳' => 'сиве волосся',
@@ -2812,6 +2967,7 @@
     '🐳' => 'кит, що пускає фонтан',
     '🐋' => 'кит',
     '🐬' => 'дельфін',
+    '🫍' => 'косатка',
     '🦭' => 'тюлень',
     '🐟' => 'риба',
     '🐠' => 'тропічна риба',
@@ -2821,6 +2977,11 @@
     '🐚' => 'морська мушля',
     '🪸' => 'корал',
     '🪼' => 'медуза',
+    '🦀' => 'краб',
+    '🦞' => 'омар',
+    '🦐' => 'креветка',
+    '🦑' => 'кальмар',
+    '🦪' => 'устриця',
     '🐌' => 'равлик',
     '🦋' => 'метелик',
     '🐛' => 'комаха',
@@ -2865,6 +3026,7 @@
     '🪹' => 'порожнє гніздо',
     '🪺' => 'гніздо з пташиними яйцями',
     '🍄' => 'гриб',
+    '🪾' => 'сухе дерево',
     '🍇' => 'виноград',
     '🍈' => 'диня',
     '🍉' => 'кавун',
@@ -2901,6 +3063,7 @@
     '🌰' => 'каштан',
     '🫚' => 'імбир',
     '🫛' => 'стручок гороху',
+    '🫜' => 'коренеплід',
     '🍞' => 'хліб',
     '🥐' => 'круасан',
     '🥖' => 'багет',
@@ -2952,11 +3115,6 @@
     '🥟' => 'вареник',
     '🥠' => 'печиво з передбаченням',
     '🥡' => 'коробка з їжею на винос',
-    '🦀' => 'краб',
-    '🦞' => 'омар',
-    '🦐' => 'креветка',
-    '🦑' => 'кальмар',
-    '🦪' => 'устриця',
     '🍦' => 'морозиво в ріжку',
     '🍧' => 'льодова стружка',
     '🍨' => 'морозиво',
@@ -3007,6 +3165,7 @@
     '🧭' => 'компас',
     '🏔' => 'гора із засніженою верхівкою',
     '⛰' => 'гора',
+    '🛘' => 'зсув',
     '🌋' => 'вулкан',
     '🗻' => 'гора Фудзі',
     '🏕' => 'кемпінг',
@@ -3367,16 +3526,18 @@
     '🎧' => 'навушники',
     '📻' => 'радіоприймач',
     '🎷' => 'саксофон',
+    '🎺' => 'труба',
+    '🪊' => 'тромбон',
     '🪗' => 'акордеон',
     '🎸' => 'гітара',
     '🎹' => 'музична клавіатура',
-    '🎺' => 'труба',
     '🎻' => 'скрипка',
     '🪕' => 'банджо',
     '🥁' => 'барабан',
     '🪘' => 'циліндричний барабан',
     '🪇' => 'маракас',
     '🪈' => 'флейта',
+    '🪉' => 'арфа',
     '📱' => 'мобільний телефон',
     '📲' => 'мобільний телефон зі стрілкою',
     '☎' => 'телефон',
@@ -3430,8 +3591,9 @@
     '📑' => 'мітки закладок',
     '🔖' => 'закладка',
     '🏷' => 'бирка',
-    '💰' => 'мішок грошей',
     '🪙' => 'монета',
+    '💰' => 'мішок грошей',
+    '🪎' => 'скриня скарбів',
     '💴' => 'єнові банкноти',
     '💵' => 'доларові банкноти',
     '💶' => 'єврові банкноти',
@@ -3514,6 +3676,7 @@
     '🧰' => 'скриня для інструментів',
     '🧲' => 'магніт',
     '🪜' => 'драбина',
+    '🪏' => 'лопата',
     '⚗' => 'перегінний куб',
     '🧪' => 'пробірка',
     '🧫' => 'чашка Петрі',
@@ -3697,6 +3860,7 @@
     '✴' => 'восьмикінцева зірка',
     '❇' => 'блискітка',
     '™' => 'торговельна марка',
+    '🫟' => 'ляпка',
     '🔠' => 'введення великими латинськими літерами',
     '🔡' => 'введення малими латинськими літерами',
     '🔢' => 'введення цифрами',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ur.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ur.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ur.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-ur.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'بوسہ: عورت، عورت، جلد کی سیاہ رنگت، اور جلد کی درمیانی رنگت',
     '👩🏿‍❤‍💋‍👩🏾' => 'بوسہ: عورت، عورت، جلد کی سیاہ رنگت، اور جلد کی درمیانی سیاہ رنگت',
     '👩🏿‍❤‍💋‍👩🏿' => 'بوسہ: عورت، عورت، اور جلد کی سیاہ رنگت',
+    '🧑🏻‍🫯‍🧑🏼' => 'پہلوان: جلد کی ہلکی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '🧑🏻‍🫯‍🧑🏽' => 'پہلوان: جلد کی ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '🧑🏻‍🫯‍🧑🏾' => 'پہلوان: جلد کی ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '🧑🏻‍🫯‍🧑🏿' => 'پہلوان: جلد کی ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '🧑🏼‍🫯‍🧑🏻' => 'پہلوان: جلد کی درمیانی -ہلکی رنگت اور جلد کی ہلکی رنگت',
+    '🧑🏼‍🫯‍🧑🏽' => 'پہلوان: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '🧑🏼‍🫯‍🧑🏾' => 'پہلوان: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '🧑🏼‍🫯‍🧑🏿' => 'پہلوان: جلد کی درمیانی -ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '🧑🏽‍🫯‍🧑🏻' => 'پہلوان: جلد کی درمیانی رنگت اور جلد کی ہلکی رنگت',
+    '🧑🏽‍🫯‍🧑🏼' => 'پہلوان: جلد کی درمیانی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '🧑🏽‍🫯‍🧑🏾' => 'پہلوان: جلد کی درمیانی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '🧑🏽‍🫯‍🧑🏿' => 'پہلوان: جلد کی درمیانی رنگت اور جلد کی سیاہ رنگت',
+    '🧑🏾‍🫯‍🧑🏻' => 'پہلوان: جلد کی درمیانی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '🧑🏾‍🫯‍🧑🏼' => 'پہلوان: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '🧑🏾‍🫯‍🧑🏽' => 'پہلوان: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '🧑🏾‍🫯‍🧑🏿' => 'پہلوان: جلد کی درمیانی سیاہ رنگت اور جلد کی سیاہ رنگت',
+    '🧑🏿‍🫯‍🧑🏻' => 'پہلوان: جلد کی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '🧑🏿‍🫯‍🧑🏼' => 'پہلوان: جلد کی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '🧑🏿‍🫯‍🧑🏽' => 'پہلوان: جلد کی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '🧑🏿‍🫯‍🧑🏾' => 'پہلوان: جلد کی سیاہ رنگت اور جلد کی درمیانی سیاہ رنگت',
     '🧑🏻‍❤‍🧑🏼' => 'دل اور جوڑا: شخص، شخص، جلد کی ہلکی رنگت، اور جلد کی درمیانی -ہلکی رنگت',
     '🧑🏻‍❤‍🧑🏽' => 'دل اور جوڑا: شخص، شخص، جلد کی ہلکی رنگت، اور جلد کی درمیانی رنگت',
     '🧑🏻‍❤‍🧑🏾' => 'دل اور جوڑا: شخص، شخص، جلد کی ہلکی رنگت، اور جلد کی درمیانی سیاہ رنگت',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'دل اور جوڑا: شخص، شخص، جلد کی سیاہ رنگت، اور جلد کی درمیانی -ہلکی رنگت',
     '🧑🏿‍❤‍🧑🏽' => 'دل اور جوڑا: شخص، شخص، جلد کی سیاہ رنگت، اور جلد کی درمیانی رنگت',
     '🧑🏿‍❤‍🧑🏾' => 'دل اور جوڑا: شخص، شخص، جلد کی سیاہ رنگت، اور جلد کی درمیانی سیاہ رنگت',
+    '🧑🏻‍🐰‍🧑🏼' => 'پارٹی کرتی عورتیں: جلد کی ہلکی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '🧑🏻‍🐰‍🧑🏽' => 'پارٹی کرتی عورتیں: جلد کی ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '🧑🏻‍🐰‍🧑🏾' => 'پارٹی کرتی عورتیں: جلد کی ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '🧑🏻‍🐰‍🧑🏿' => 'پارٹی کرتی عورتیں: جلد کی ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '🧑🏼‍🐰‍🧑🏻' => 'پارٹی کرتی عورتیں: جلد کی درمیانی -ہلکی رنگت اور جلد کی ہلکی رنگت',
+    '🧑🏼‍🐰‍🧑🏽' => 'پارٹی کرتی عورتیں: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '🧑🏼‍🐰‍🧑🏾' => 'پارٹی کرتی عورتیں: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '🧑🏼‍🐰‍🧑🏿' => 'پارٹی کرتی عورتیں: جلد کی درمیانی -ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '🧑🏽‍🐰‍🧑🏻' => 'پارٹی کرتی عورتیں: جلد کی درمیانی رنگت اور جلد کی ہلکی رنگت',
+    '🧑🏽‍🐰‍🧑🏼' => 'پارٹی کرتی عورتیں: جلد کی درمیانی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '🧑🏽‍🐰‍🧑🏾' => 'پارٹی کرتی عورتیں: جلد کی درمیانی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '🧑🏽‍🐰‍🧑🏿' => 'پارٹی کرتی عورتیں: جلد کی درمیانی رنگت اور جلد کی سیاہ رنگت',
+    '🧑🏾‍🐰‍🧑🏻' => 'پارٹی کرتی عورتیں: جلد کی درمیانی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '🧑🏾‍🐰‍🧑🏼' => 'پارٹی کرتی عورتیں: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '🧑🏾‍🐰‍🧑🏽' => 'پارٹی کرتی عورتیں: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '🧑🏾‍🐰‍🧑🏿' => 'پارٹی کرتی عورتیں: جلد کی درمیانی سیاہ رنگت اور جلد کی سیاہ رنگت',
+    '🧑🏿‍🐰‍🧑🏻' => 'پارٹی کرتی عورتیں: جلد کی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '🧑🏿‍🐰‍🧑🏼' => 'پارٹی کرتی عورتیں: جلد کی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '🧑🏿‍🐰‍🧑🏽' => 'پارٹی کرتی عورتیں: جلد کی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '🧑🏿‍🐰‍🧑🏾' => 'پارٹی کرتی عورتیں: جلد کی سیاہ رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👨🏻‍🫯‍👨🏼' => 'مردوں کی کشتی: جلد کی ہلکی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👨🏻‍🫯‍👨🏽' => 'مردوں کی کشتی: جلد کی ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '👨🏻‍🫯‍👨🏾' => 'مردوں کی کشتی: جلد کی ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👨🏻‍🫯‍👨🏿' => 'مردوں کی کشتی: جلد کی ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '👨🏼‍🫯‍👨🏻' => 'مردوں کی کشتی: جلد کی درمیانی -ہلکی رنگت اور جلد کی ہلکی رنگت',
+    '👨🏼‍🫯‍👨🏽' => 'مردوں کی کشتی: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '👨🏼‍🫯‍👨🏾' => 'مردوں کی کشتی: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👨🏼‍🫯‍👨🏿' => 'مردوں کی کشتی: جلد کی درمیانی -ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '👨🏽‍🫯‍👨🏻' => 'مردوں کی کشتی: جلد کی درمیانی رنگت اور جلد کی ہلکی رنگت',
+    '👨🏽‍🫯‍👨🏼' => 'مردوں کی کشتی: جلد کی درمیانی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👨🏽‍🫯‍👨🏾' => 'مردوں کی کشتی: جلد کی درمیانی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👨🏽‍🫯‍👨🏿' => 'مردوں کی کشتی: جلد کی درمیانی رنگت اور جلد کی سیاہ رنگت',
+    '👨🏾‍🫯‍👨🏻' => 'مردوں کی کشتی: جلد کی درمیانی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '👨🏾‍🫯‍👨🏼' => 'مردوں کی کشتی: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👨🏾‍🫯‍👨🏽' => 'مردوں کی کشتی: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '👨🏾‍🫯‍👨🏿' => 'مردوں کی کشتی: جلد کی درمیانی سیاہ رنگت اور جلد کی سیاہ رنگت',
+    '👨🏿‍🫯‍👨🏻' => 'مردوں کی کشتی: جلد کی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '👨🏿‍🫯‍👨🏼' => 'مردوں کی کشتی: جلد کی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👨🏿‍🫯‍👨🏽' => 'مردوں کی کشتی: جلد کی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '👨🏿‍🫯‍👨🏾' => 'مردوں کی کشتی: جلد کی سیاہ رنگت اور جلد کی درمیانی سیاہ رنگت',
     '👨🏻‍❤‍👨🏻' => 'دل اور جوڑا: مرد، مرد، اور جلد کی ہلکی رنگت',
     '👨🏻‍❤‍👨🏼' => 'دل اور جوڑا: مرد، مرد، جلد کی ہلکی رنگت، اور جلد کی درمیانی -ہلکی رنگت',
     '👨🏻‍❤‍👨🏽' => 'دل اور جوڑا: مرد، مرد، جلد کی ہلکی رنگت، اور جلد کی درمیانی رنگت',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'دل اور جوڑا: مرد، مرد، جلد کی سیاہ رنگت، اور جلد کی درمیانی رنگت',
     '👨🏿‍❤‍👨🏾' => 'دل اور جوڑا: مرد، مرد، جلد کی سیاہ رنگت، اور جلد کی درمیانی سیاہ رنگت',
     '👨🏿‍❤‍👨🏿' => 'دل اور جوڑا: مرد، مرد، اور جلد کی سیاہ رنگت',
+    '👨🏻‍🐰‍👨🏼' => 'ڈانس کرتے ہوئے مرد: جلد کی ہلکی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👨🏻‍🐰‍👨🏽' => 'ڈانس کرتے ہوئے مرد: جلد کی ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '👨🏻‍🐰‍👨🏾' => 'ڈانس کرتے ہوئے مرد: جلد کی ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👨🏻‍🐰‍👨🏿' => 'ڈانس کرتے ہوئے مرد: جلد کی ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '👨🏼‍🐰‍👨🏻' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی -ہلکی رنگت اور جلد کی ہلکی رنگت',
+    '👨🏼‍🐰‍👨🏽' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '👨🏼‍🐰‍👨🏾' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👨🏼‍🐰‍👨🏿' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی -ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '👨🏽‍🐰‍👨🏻' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی رنگت اور جلد کی ہلکی رنگت',
+    '👨🏽‍🐰‍👨🏼' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👨🏽‍🐰‍👨🏾' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👨🏽‍🐰‍👨🏿' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی رنگت اور جلد کی سیاہ رنگت',
+    '👨🏾‍🐰‍👨🏻' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '👨🏾‍🐰‍👨🏼' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👨🏾‍🐰‍👨🏽' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '👨🏾‍🐰‍👨🏿' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی سیاہ رنگت اور جلد کی سیاہ رنگت',
+    '👨🏿‍🐰‍👨🏻' => 'ڈانس کرتے ہوئے مرد: جلد کی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '👨🏿‍🐰‍👨🏼' => 'ڈانس کرتے ہوئے مرد: جلد کی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👨🏿‍🐰‍👨🏽' => 'ڈانس کرتے ہوئے مرد: جلد کی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '👨🏿‍🐰‍👨🏾' => 'ڈانس کرتے ہوئے مرد: جلد کی سیاہ رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👩🏻‍🫯‍👩🏼' => 'عورتوں کی کشتی: جلد کی ہلکی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👩🏻‍🫯‍👩🏽' => 'عورتوں کی کشتی: جلد کی ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '👩🏻‍🫯‍👩🏾' => 'عورتوں کی کشتی: جلد کی ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👩🏻‍🫯‍👩🏿' => 'عورتوں کی کشتی: جلد کی ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '👩🏼‍🫯‍👩🏻' => 'عورتوں کی کشتی: جلد کی درمیانی -ہلکی رنگت اور جلد کی ہلکی رنگت',
+    '👩🏼‍🫯‍👩🏽' => 'عورتوں کی کشتی: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '👩🏼‍🫯‍👩🏾' => 'عورتوں کی کشتی: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👩🏼‍🫯‍👩🏿' => 'عورتوں کی کشتی: جلد کی درمیانی -ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '👩🏽‍🫯‍👩🏻' => 'عورتوں کی کشتی: جلد کی درمیانی رنگت اور جلد کی ہلکی رنگت',
+    '👩🏽‍🫯‍👩🏼' => 'عورتوں کی کشتی: جلد کی درمیانی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👩🏽‍🫯‍👩🏾' => 'عورتوں کی کشتی: جلد کی درمیانی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👩🏽‍🫯‍👩🏿' => 'عورتوں کی کشتی: جلد کی درمیانی رنگت اور جلد کی سیاہ رنگت',
+    '👩🏾‍🫯‍👩🏻' => 'عورتوں کی کشتی: جلد کی درمیانی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '👩🏾‍🫯‍👩🏼' => 'عورتوں کی کشتی: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👩🏾‍🫯‍👩🏽' => 'عورتوں کی کشتی: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '👩🏾‍🫯‍👩🏿' => 'عورتوں کی کشتی: جلد کی درمیانی سیاہ رنگت اور جلد کی سیاہ رنگت',
+    '👩🏿‍🫯‍👩🏻' => 'عورتوں کی کشتی: جلد کی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '👩🏿‍🫯‍👩🏼' => 'عورتوں کی کشتی: جلد کی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👩🏿‍🫯‍👩🏽' => 'عورتوں کی کشتی: جلد کی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '👩🏿‍🫯‍👩🏾' => 'عورتوں کی کشتی: جلد کی سیاہ رنگت اور جلد کی درمیانی سیاہ رنگت',
     '👩🏻‍❤‍👨🏻' => 'دل اور جوڑا: عورت، مرد، اور جلد کی ہلکی رنگت',
     '👩🏻‍❤‍👨🏼' => 'دل اور جوڑا: عورت، مرد، جلد کی ہلکی رنگت، اور جلد کی درمیانی -ہلکی رنگت',
     '👩🏻‍❤‍👨🏽' => 'دل اور جوڑا: عورت، مرد، جلد کی ہلکی رنگت، اور جلد کی درمیانی رنگت',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'دل اور جوڑا: عورت، عورت، جلد کی سیاہ رنگت، اور جلد کی درمیانی رنگت',
     '👩🏿‍❤‍👩🏾' => 'دل اور جوڑا: عورت، عورت، جلد کی سیاہ رنگت، اور جلد کی درمیانی سیاہ رنگت',
     '👩🏿‍❤‍👩🏿' => 'دل اور جوڑا: عورت، عورت، اور جلد کی سیاہ رنگت',
+    '👩🏻‍🐰‍👩🏼' => 'ڈانس کرتی ہوئی عورتیں: جلد کی ہلکی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👩🏻‍🐰‍👩🏽' => 'ڈانس کرتی ہوئی عورتیں: جلد کی ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '👩🏻‍🐰‍👩🏾' => 'ڈانس کرتی ہوئی عورتیں: جلد کی ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👩🏻‍🐰‍👩🏿' => 'ڈانس کرتی ہوئی عورتیں: جلد کی ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '👩🏼‍🐰‍👩🏻' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی -ہلکی رنگت اور جلد کی ہلکی رنگت',
+    '👩🏼‍🐰‍👩🏽' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی رنگت',
+    '👩🏼‍🐰‍👩🏾' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی -ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👩🏼‍🐰‍👩🏿' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی -ہلکی رنگت اور جلد کی سیاہ رنگت',
+    '👩🏽‍🐰‍👩🏻' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی رنگت اور جلد کی ہلکی رنگت',
+    '👩🏽‍🐰‍👩🏼' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👩🏽‍🐰‍👩🏾' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی رنگت اور جلد کی درمیانی سیاہ رنگت',
+    '👩🏽‍🐰‍👩🏿' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی رنگت اور جلد کی سیاہ رنگت',
+    '👩🏾‍🐰‍👩🏻' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '👩🏾‍🐰‍👩🏼' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👩🏾‍🐰‍👩🏽' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '👩🏾‍🐰‍👩🏿' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی سیاہ رنگت اور جلد کی سیاہ رنگت',
+    '👩🏿‍🐰‍👩🏻' => 'ڈانس کرتی ہوئی عورتیں: جلد کی سیاہ رنگت اور جلد کی ہلکی رنگت',
+    '👩🏿‍🐰‍👩🏼' => 'ڈانس کرتی ہوئی عورتیں: جلد کی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
+    '👩🏿‍🐰‍👩🏽' => 'ڈانس کرتی ہوئی عورتیں: جلد کی سیاہ رنگت اور جلد کی درمیانی رنگت',
+    '👩🏿‍🐰‍👩🏾' => 'ڈانس کرتی ہوئی عورتیں: جلد کی سیاہ رنگت اور جلد کی درمیانی سیاہ رنگت',
     '🧑🏻‍🤝‍🧑🏻' => 'ہاتھ پکڑے ہوئے لوگ: جلد کی ہلکی رنگت',
     '🧑🏻‍🤝‍🧑🏼' => 'ہاتھ پکڑے ہوئے لوگ: جلد کی ہلکی رنگت اور جلد کی درمیانی -ہلکی رنگت',
     '🧑🏻‍🤝‍🧑🏽' => 'ہاتھ پکڑے ہوئے لوگ: جلد کی ہلکی رنگت اور جلد کی درمیانی رنگت',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'پرچم: اسکاٹ لینڈ',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'پرچم: ویلز',
     '🧑‍🧑‍🧒‍🧒' => 'خاندان: بالغ، بالغ، بچہ، بچہ',
-    '🚶🏻‍♀‍➡' => 'پیدل چلتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🚶🏼‍♀‍➡' => 'پیدل چلتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🚶🏽‍♀‍➡' => 'پیدل چلتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🚶🏾‍♀‍➡' => 'پیدل چلتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🚶🏿‍♀‍➡' => 'پیدل چلتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🚶🏻‍♂‍➡' => 'پیدل چلتا ہوا مرد دائیں طرف دیکھنے والا',
-    '🚶🏼‍♂‍➡' => 'پیدل چلتا ہوا مرد دائیں طرف دیکھنے والا',
-    '🚶🏽‍♂‍➡' => 'پیدل چلتا ہوا مرد دائیں طرف دیکھنے والا',
-    '🚶🏾‍♂‍➡' => 'پیدل چلتا ہوا مرد دائیں طرف دیکھنے والا',
-    '🚶🏿‍♂‍➡' => 'پیدل چلتا ہوا مرد دائیں طرف دیکھنے والا',
-    '🧎🏻‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت دائیں طرف دیکھنے والا',
-    '🧎🏼‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت دائیں طرف دیکھنے والا',
-    '🧎🏽‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت دائیں طرف دیکھنے والا',
-    '🧎🏾‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت دائیں طرف دیکھنے والا',
-    '🧎🏿‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت دائیں طرف دیکھنے والا',
-    '🧎🏻‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد دائیں طرف دیکھنے والا',
-    '🧎🏼‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد دائیں طرف دیکھنے والا',
-    '🧎🏽‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد دائیں طرف دیکھنے والا',
-    '🧎🏾‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد دائیں طرف دیکھنے والا',
-    '🧎🏿‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد دائیں طرف دیکھنے والا',
-    '🧑🏻‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد دائیں طرف دیکھنے والا',
-    '🧑🏼‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد دائیں طرف دیکھنے والا',
-    '🧑🏽‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد دائیں طرف دیکھنے والا',
-    '🧑🏾‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد دائیں طرف دیکھنے والا',
-    '🧑🏿‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد دائیں طرف دیکھنے والا',
-    '👨🏻‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد دائیں طرف دیکھنے والا',
-    '👨🏼‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد دائیں طرف دیکھنے والا',
-    '👨🏽‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد دائیں طرف دیکھنے والا',
-    '👨🏾‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد دائیں طرف دیکھنے والا',
-    '👨🏿‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد دائیں طرف دیکھنے والا',
-    '👩🏻‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت دائیں طرف دیکھنے والا',
-    '👩🏼‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت دائیں طرف دیکھنے والا',
-    '👩🏽‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت دائیں طرف دیکھنے والا',
-    '👩🏾‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت دائیں طرف دیکھنے والا',
-    '👩🏿‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت دائیں طرف دیکھنے والا',
-    '🧑🏻‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '🧑🏼‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '🧑🏽‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '🧑🏾‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '🧑🏿‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '👨🏻‍🦼‍➡' => 'برقی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👨🏼‍🦼‍➡' => 'برقی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👨🏽‍🦼‍➡' => 'برقی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👨🏾‍🦼‍➡' => 'برقی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👨🏿‍🦼‍➡' => 'برقی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👩🏻‍🦼‍➡' => 'برقی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '👩🏼‍🦼‍➡' => 'برقی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '👩🏽‍🦼‍➡' => 'برقی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '👩🏾‍🦼‍➡' => 'برقی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '👩🏿‍🦼‍➡' => 'برقی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '🧑🏻‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '🧑🏼‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '🧑🏽‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '🧑🏾‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '🧑🏿‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '👨🏻‍🦽‍➡' => 'دستی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👨🏼‍🦽‍➡' => 'دستی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👨🏽‍🦽‍➡' => 'دستی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👨🏾‍🦽‍➡' => 'دستی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👨🏿‍🦽‍➡' => 'دستی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👩🏻‍🦽‍➡' => 'دستی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '👩🏼‍🦽‍➡' => 'دستی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '👩🏽‍🦽‍➡' => 'دستی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '👩🏾‍🦽‍➡' => 'دستی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '👩🏿‍🦽‍➡' => 'دستی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '🏃🏻‍♀‍➡' => 'دوڑتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🏃🏼‍♀‍➡' => 'دوڑتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🏃🏽‍♀‍➡' => 'دوڑتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🏃🏾‍♀‍➡' => 'دوڑتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🏃🏿‍♀‍➡' => 'دوڑتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🏃🏻‍♂‍➡' => 'دوڑتا ہوا مرد دائیں طرف دیکھنے والا',
-    '🏃🏼‍♂‍➡' => 'دوڑتا ہوا مرد دائیں طرف دیکھنے والا',
-    '🏃🏽‍♂‍➡' => 'دوڑتا ہوا مرد دائیں طرف دیکھنے والا',
-    '🏃🏾‍♂‍➡' => 'دوڑتا ہوا مرد دائیں طرف دیکھنے والا',
-    '🏃🏿‍♂‍➡' => 'دوڑتا ہوا مرد دائیں طرف دیکھنے والا',
+    '🚶🏻‍♀‍➡' => 'پیدل چلتی ہوئی عورت: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏼‍♀‍➡' => 'پیدل چلتی ہوئی عورت: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏽‍♀‍➡' => 'پیدل چلتی ہوئی عورت: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏾‍♀‍➡' => 'پیدل چلتی ہوئی عورت: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏿‍♀‍➡' => 'پیدل چلتی ہوئی عورت: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏻‍♂‍➡' => 'پیدل چلتا ہوا مرد: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏼‍♂‍➡' => 'پیدل چلتا ہوا مرد: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏽‍♂‍➡' => 'پیدل چلتا ہوا مرد: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏾‍♂‍➡' => 'پیدل چلتا ہوا مرد: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏿‍♂‍➡' => 'پیدل چلتا ہوا مرد: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏻‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏼‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏽‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏾‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏿‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏻‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏼‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏽‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏾‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏿‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏻‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏼‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏽‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏾‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏿‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏻‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏼‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏽‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏾‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏿‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏻‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏼‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏽‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏾‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏿‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏻‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏼‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏽‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏾‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏿‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏻‍🦼‍➡' => 'برقی وہیل چئیر میں مرد: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏼‍🦼‍➡' => 'برقی وہیل چئیر میں مرد: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏽‍🦼‍➡' => 'برقی وہیل چئیر میں مرد: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏾‍🦼‍➡' => 'برقی وہیل چئیر میں مرد: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏿‍🦼‍➡' => 'برقی وہیل چئیر میں مرد: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏻‍🦼‍➡' => 'برقی وہیل چئیر میں عورت: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏼‍🦼‍➡' => 'برقی وہیل چئیر میں عورت: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏽‍🦼‍➡' => 'برقی وہیل چئیر میں عورت: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏾‍🦼‍➡' => 'برقی وہیل چئیر میں عورت: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏿‍🦼‍➡' => 'برقی وہیل چئیر میں عورت: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏻‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏼‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏽‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏾‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧑🏿‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏻‍🦽‍➡' => 'دستی وہیل چئیر میں مرد: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏼‍🦽‍➡' => 'دستی وہیل چئیر میں مرد: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏽‍🦽‍➡' => 'دستی وہیل چئیر میں مرد: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏾‍🦽‍➡' => 'دستی وہیل چئیر میں مرد: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👨🏿‍🦽‍➡' => 'دستی وہیل چئیر میں مرد: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏻‍🦽‍➡' => 'دستی وہیل چئیر میں عورت: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏼‍🦽‍➡' => 'دستی وہیل چئیر میں عورت: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏽‍🦽‍➡' => 'دستی وہیل چئیر میں عورت: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏾‍🦽‍➡' => 'دستی وہیل چئیر میں عورت: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👩🏿‍🦽‍➡' => 'دستی وہیل چئیر میں عورت: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏻‍♀‍➡' => 'دوڑتی ہوئی عورت: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏼‍♀‍➡' => 'دوڑتی ہوئی عورت: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏽‍♀‍➡' => 'دوڑتی ہوئی عورت: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏾‍♀‍➡' => 'دوڑتی ہوئی عورت: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏿‍♀‍➡' => 'دوڑتی ہوئی عورت: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏻‍♂‍➡' => 'دوڑتا ہوا مرد: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏼‍♂‍➡' => 'دوڑتا ہوا مرد: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏽‍♂‍➡' => 'دوڑتا ہوا مرد: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏾‍♂‍➡' => 'دوڑتا ہوا مرد: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏿‍♂‍➡' => 'دوڑتا ہوا مرد: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
     '🫱🏻‍🫲🏼' => 'ہاتھ ملانا: جلد کی ہلکی رنگت اور جلد کی درمیانی -ہلکی رنگت',
     '🫱🏻‍🫲🏽' => 'ہاتھ ملانا: جلد کی ہلکی رنگت اور جلد کی درمیانی رنگت',
     '🫱🏻‍🫲🏾' => 'ہاتھ ملانا: جلد کی ہلکی رنگت اور جلد کی درمیانی سیاہ رنگت',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'ہاتھ ملانا: جلد کی سیاہ رنگت اور جلد کی درمیانی -ہلکی رنگت',
     '🫱🏿‍🫲🏽' => 'ہاتھ ملانا: جلد کی سیاہ رنگت اور جلد کی درمیانی رنگت',
     '🫱🏿‍🫲🏾' => 'ہاتھ ملانا: جلد کی سیاہ رنگت اور جلد کی درمیانی سیاہ رنگت',
-    '🚶‍♀‍➡' => 'پیدل چلتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🚶‍♂‍➡' => 'پیدل چلتا ہوا مرد دائیں طرف دیکھنے والا',
-    '🧎‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت دائیں طرف دیکھنے والا',
-    '🧎‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد دائیں طرف دیکھنے والا',
-    '🧑‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد دائیں طرف دیکھنے والا',
-    '👨‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد دائیں طرف دیکھنے والا',
-    '👩‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت دائیں طرف دیکھنے والا',
-    '🧑‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '👨‍🦼‍➡' => 'برقی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👩‍🦼‍➡' => 'برقی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '🧑‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد دائیں طرف دیکھنے والا',
-    '👨‍🦽‍➡' => 'دستی وہیل چئیر میں مرد دائیں طرف دیکھنے والا',
-    '👩‍🦽‍➡' => 'دستی وہیل چئیر میں عورت دائیں طرف دیکھنے والا',
-    '🏃‍♀‍➡' => 'دوڑتی ہوئی عورت دائیں طرف دیکھنے والا',
-    '🏃‍♂‍➡' => 'دوڑتا ہوا مرد دائیں طرف دیکھنے والا',
+    '🚶‍♀‍➡' => 'پیدل چلتی ہوئی عورت: دائیں طرف دیکھنے والا',
+    '🚶‍♂‍➡' => 'پیدل چلتا ہوا مرد: دائیں طرف دیکھنے والا',
+    '🧎‍♀‍➡' => 'گھٹنوں کے بل بیٹھی عورت: دائیں طرف دیکھنے والا',
+    '🧎‍♂‍➡' => 'گھٹنوں کے بل بیٹھا مرد: دائیں طرف دیکھنے والا',
+    '🧑‍🦯‍➡' => 'ٹٹولنے والی چھڑی کے ساتھ فرد: دائیں طرف دیکھنے والا',
+    '👨‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ مرد: دائیں طرف دیکھنے والا',
+    '👩‍🦯‍➡' => 'نابینا افراد والی چھڑی کے ساتھ عورت: دائیں طرف دیکھنے والا',
+    '🧑‍🦼‍➡' => 'برقی وہیل چئیر میں بیٹھا فرد: دائیں طرف دیکھنے والا',
+    '👨‍🦼‍➡' => 'برقی وہیل چئیر میں مرد: دائیں طرف دیکھنے والا',
+    '👩‍🦼‍➡' => 'برقی وہیل چئیر میں عورت: دائیں طرف دیکھنے والا',
+    '🧑‍🦽‍➡' => 'دستی وہیل چیئر میں بیٹھا فرد: دائیں طرف دیکھنے والا',
+    '👨‍🦽‍➡' => 'دستی وہیل چئیر میں مرد: دائیں طرف دیکھنے والا',
+    '👩‍🦽‍➡' => 'دستی وہیل چئیر میں عورت: دائیں طرف دیکھنے والا',
+    '🏃‍♀‍➡' => 'دوڑتی ہوئی عورت: دائیں طرف دیکھنے والا',
+    '🏃‍♂‍➡' => 'دوڑتا ہوا مرد: دائیں طرف دیکھنے والا',
     '👩‍❤‍👨' => 'دل اور جوڑا: عورت اور مرد',
     '👨‍❤‍👨' => 'دل اور جوڑا: مرد اور مرد',
     '👩‍❤‍👩' => 'دل اور جوڑا: عورت اور عورت',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'شخص: جلد کی درمیانی رنگت اور گنجا',
     '🧑🏾‍🦲' => 'شخص: جلد کی درمیانی سیاہ رنگت اور گنجا',
     '🧑🏿‍🦲' => 'شخص: جلد کی سیاہ رنگت اور گنجا',
+    '🧑🏻‍🩰' => 'بیلے ڈانسر: جلد کی ہلکی رنگت',
+    '🧑🏼‍🩰' => 'بیلے ڈانسر: جلد کی درمیانی -ہلکی رنگت',
+    '🧑🏽‍🩰' => 'بیلے ڈانسر: جلد کی درمیانی رنگت',
+    '🧑🏾‍🩰' => 'بیلے ڈانسر: جلد کی درمیانی سیاہ رنگت',
+    '🧑🏿‍🩰' => 'بیلے ڈانسر: جلد کی سیاہ رنگت',
     '🧔🏻‍♂' => 'مرد: جلد کی ہلکی رنگت اور داڑھی',
     '🧔🏼‍♂' => 'مرد: جلد کی درمیانی -ہلکی رنگت اور داڑھی',
     '🧔🏽‍♂' => 'مرد: جلد کی درمیانی رنگت اور داڑھی',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'پیدل چلتی ہوئی عورت: جلد کی درمیانی رنگت',
     '🚶🏾‍♀' => 'پیدل چلتی ہوئی عورت: جلد کی درمیانی سیاہ رنگت',
     '🚶🏿‍♀' => 'پیدل چلتی ہوئی عورت: جلد کی سیاہ رنگت',
-    '🚶🏻‍➡' => 'پیدل چلتا شخص دائیں طرف دیکھنے والا',
-    '🚶🏼‍➡' => 'پیدل چلتا شخص دائیں طرف دیکھنے والا',
-    '🚶🏽‍➡' => 'پیدل چلتا شخص دائیں طرف دیکھنے والا',
-    '🚶🏾‍➡' => 'پیدل چلتا شخص دائیں طرف دیکھنے والا',
-    '🚶🏿‍➡' => 'پیدل چلتا شخص دائیں طرف دیکھنے والا',
+    '🚶🏻‍➡' => 'پیدل چلتا شخص: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏼‍➡' => 'پیدل چلتا شخص: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏽‍➡' => 'پیدل چلتا شخص: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏾‍➡' => 'پیدل چلتا شخص: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🚶🏿‍➡' => 'پیدل چلتا شخص: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
     '🧍🏻‍♂' => 'کھڑا ہوا مرد: جلد کی ہلکی رنگت',
     '🧍🏼‍♂' => 'کھڑا ہوا مرد: جلد کی درمیانی -ہلکی رنگت',
     '🧍🏽‍♂' => 'کھڑا ہوا مرد: جلد کی درمیانی رنگت',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'گھٹنوں کے بل بیٹھی عورت: جلد کی درمیانی رنگت',
     '🧎🏾‍♀' => 'گھٹنوں کے بل بیٹھی عورت: جلد کی درمیانی سیاہ رنگت',
     '🧎🏿‍♀' => 'گھٹنوں کے بل بیٹھی عورت: جلد کی سیاہ رنگت',
-    '🧎🏻‍➡' => 'گھٹنوں کے بل بیٹھا شخص دائیں طرف دیکھنے والا',
-    '🧎🏼‍➡' => 'گھٹنوں کے بل بیٹھا شخص دائیں طرف دیکھنے والا',
-    '🧎🏽‍➡' => 'گھٹنوں کے بل بیٹھا شخص دائیں طرف دیکھنے والا',
-    '🧎🏾‍➡' => 'گھٹنوں کے بل بیٹھا شخص دائیں طرف دیکھنے والا',
-    '🧎🏿‍➡' => 'گھٹنوں کے بل بیٹھا شخص دائیں طرف دیکھنے والا',
+    '🧎🏻‍➡' => 'گھٹنوں کے بل بیٹھا شخص: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏼‍➡' => 'گھٹنوں کے بل بیٹھا شخص: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏽‍➡' => 'گھٹنوں کے بل بیٹھا شخص: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏾‍➡' => 'گھٹنوں کے بل بیٹھا شخص: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🧎🏿‍➡' => 'گھٹنوں کے بل بیٹھا شخص: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
     '🧑🏻‍🦯' => 'ٹٹولنے والی چھڑی کے ساتھ فرد: جلد کی ہلکی رنگت',
     '🧑🏼‍🦯' => 'ٹٹولنے والی چھڑی کے ساتھ فرد: جلد کی درمیانی -ہلکی رنگت',
     '🧑🏽‍🦯' => 'ٹٹولنے والی چھڑی کے ساتھ فرد: جلد کی درمیانی رنگت',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'دوڑتی ہوئی عورت: جلد کی درمیانی رنگت',
     '🏃🏾‍♀' => 'دوڑتی ہوئی عورت: جلد کی درمیانی سیاہ رنگت',
     '🏃🏿‍♀' => 'دوڑتی ہوئی عورت: جلد کی سیاہ رنگت',
-    '🏃🏻‍➡' => 'دوڑتا ہوا شخص دائیں طرف دیکھنے والا',
-    '🏃🏼‍➡' => 'دوڑتا ہوا شخص دائیں طرف دیکھنے والا',
-    '🏃🏽‍➡' => 'دوڑتا ہوا شخص دائیں طرف دیکھنے والا',
-    '🏃🏾‍➡' => 'دوڑتا ہوا شخص دائیں طرف دیکھنے والا',
-    '🏃🏿‍➡' => 'دوڑتا ہوا شخص دائیں طرف دیکھنے والا',
+    '🏃🏻‍➡' => 'دوڑتا ہوا شخص: جلد کی ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏼‍➡' => 'دوڑتا ہوا شخص: جلد کی درمیانی -ہلکی رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏽‍➡' => 'دوڑتا ہوا شخص: جلد کی درمیانی رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏾‍➡' => 'دوڑتا ہوا شخص: جلد کی درمیانی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '🏃🏿‍➡' => 'دوڑتا ہوا شخص: جلد کی سیاہ رنگت اور دائیں طرف دیکھنے والا',
+    '👯🏻‍♀' => 'ڈانس کرتی ہوئی عورتیں: جلد کی ہلکی رنگت',
+    '👯🏼‍♀' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی -ہلکی رنگت',
+    '👯🏽‍♀' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی رنگت',
+    '👯🏾‍♀' => 'ڈانس کرتی ہوئی عورتیں: جلد کی درمیانی سیاہ رنگت',
+    '👯🏿‍♀' => 'ڈانس کرتی ہوئی عورتیں: جلد کی سیاہ رنگت',
+    '👯🏻‍♂' => 'ڈانس کرتے ہوئے مرد: جلد کی ہلکی رنگت',
+    '👯🏼‍♂' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی -ہلکی رنگت',
+    '👯🏽‍♂' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی رنگت',
+    '👯🏾‍♂' => 'ڈانس کرتے ہوئے مرد: جلد کی درمیانی سیاہ رنگت',
+    '👯🏿‍♂' => 'ڈانس کرتے ہوئے مرد: جلد کی سیاہ رنگت',
     '🧖🏻‍♂' => 'ایک مرد بھاپ سے بھرے کمرے میں: جلد کی ہلکی رنگت',
     '🧖🏼‍♂' => 'ایک مرد بھاپ سے بھرے کمرے میں: جلد کی درمیانی -ہلکی رنگت',
     '🧖🏽‍♂' => 'ایک مرد بھاپ سے بھرے کمرے میں: جلد کی درمیانی رنگت',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'قلابازی کھاتی ہوئی عورت: جلد کی درمیانی رنگت',
     '🤸🏾‍♀' => 'قلابازی کھاتی ہوئی عورت: جلد کی درمیانی سیاہ رنگت',
     '🤸🏿‍♀' => 'قلابازی کھاتی ہوئی عورت: جلد کی سیاہ رنگت',
+    '🤼🏻‍♀' => 'عورتوں کی کشتی: جلد کی ہلکی رنگت',
+    '🤼🏼‍♀' => 'عورتوں کی کشتی: جلد کی درمیانی -ہلکی رنگت',
+    '🤼🏽‍♀' => 'عورتوں کی کشتی: جلد کی درمیانی رنگت',
+    '🤼🏾‍♀' => 'عورتوں کی کشتی: جلد کی درمیانی سیاہ رنگت',
+    '🤼🏿‍♀' => 'عورتوں کی کشتی: جلد کی سیاہ رنگت',
+    '🤼🏻‍♂' => 'مردوں کی کشتی: جلد کی ہلکی رنگت',
+    '🤼🏼‍♂' => 'مردوں کی کشتی: جلد کی درمیانی -ہلکی رنگت',
+    '🤼🏽‍♂' => 'مردوں کی کشتی: جلد کی درمیانی رنگت',
+    '🤼🏾‍♂' => 'مردوں کی کشتی: جلد کی درمیانی سیاہ رنگت',
+    '🤼🏿‍♂' => 'مردوں کی کشتی: جلد کی سیاہ رنگت',
     '🤽🏻‍♂' => 'واٹر پولو کھیلتا ہوا مرد: جلد کی ہلکی رنگت',
     '🤽🏼‍♂' => 'واٹر پولو کھیلتا ہوا مرد: جلد کی درمیانی -ہلکی رنگت',
     '🤽🏽‍♂' => 'واٹر پولو کھیلتا ہوا مرد: جلد کی درمیانی رنگت',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'عورت: گھنگھریالے بال',
     '👩‍🦳' => 'عورت: سفید بال',
     '👩‍🦲' => 'عورت: گنجا',
-    '🚶‍➡' => 'پیدل چلتا شخص دائیں طرف دیکھنے والا',
-    '🧎‍➡' => 'گھٹنوں کے بل بیٹھا شخص دائیں طرف دیکھنے والا',
-    '🏃‍➡' => 'دوڑتا ہوا شخص دائیں طرف دیکھنے والا',
+    '🚶‍➡' => 'پیدل چلتا شخص: دائیں طرف دیکھنے والا',
+    '🧎‍➡' => 'گھٹنوں کے بل بیٹھا شخص: دائیں طرف دیکھنے والا',
+    '🏃‍➡' => 'دوڑتا ہوا شخص: دائیں طرف دیکھنے والا',
     '👨‍👦' => 'خاندان: مرد اور لڑکا',
     '👨‍👧' => 'خاندان: مرد اور لڑکی',
     '👩‍👦' => 'خاندان: عورت اور لڑکا',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'دستی وہیل چئیر میں عورت',
     '🏃‍♂' => 'دوڑتا ہوا مرد',
     '🏃‍♀' => 'دوڑتی ہوئی عورت',
+    '🧑‍🩰' => 'بیلے ڈانسر',
     '👯‍♂' => 'ڈانس کرتے ہوئے مرد',
     '👯‍♀' => 'ڈانس کرتی ہوئی عورتیں',
     '🧖‍♂' => 'ایک مرد بھاپ سے بھرے کمرے میں',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'بزنس سوٹ پہنے ہوا میں معلق شخص: جلد کی درمیانی رنگت',
     '🕴🏾' => 'بزنس سوٹ پہنے ہوا میں معلق شخص: جلد کی درمیانی سیاہ رنگت',
     '🕴🏿' => 'بزنس سوٹ پہنے ہوا میں معلق شخص: جلد کی سیاہ رنگت',
+    '👯🏻' => 'پارٹی کرتی عورتیں: جلد کی ہلکی رنگت',
+    '👯🏼' => 'پارٹی کرتی عورتیں: جلد کی درمیانی -ہلکی رنگت',
+    '👯🏽' => 'پارٹی کرتی عورتیں: جلد کی درمیانی رنگت',
+    '👯🏾' => 'پارٹی کرتی عورتیں: جلد کی درمیانی سیاہ رنگت',
+    '👯🏿' => 'پارٹی کرتی عورتیں: جلد کی سیاہ رنگت',
     '🧖🏻' => 'ایک شخص بھاپ سے بھرے کمرے میں: جلد کی ہلکی رنگت',
     '🧖🏼' => 'ایک شخص بھاپ سے بھرے کمرے میں: جلد کی درمیانی -ہلکی رنگت',
     '🧖🏽' => 'ایک شخص بھاپ سے بھرے کمرے میں: جلد کی درمیانی رنگت',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'قلابازی لگاتا شخص: جلد کی درمیانی رنگت',
     '🤸🏾' => 'قلابازی لگاتا شخص: جلد کی درمیانی سیاہ رنگت',
     '🤸🏿' => 'قلابازی لگاتا شخص: جلد کی سیاہ رنگت',
+    '🤼🏻' => 'پہلوان: جلد کی ہلکی رنگت',
+    '🤼🏼' => 'پہلوان: جلد کی درمیانی -ہلکی رنگت',
+    '🤼🏽' => 'پہلوان: جلد کی درمیانی رنگت',
+    '🤼🏾' => 'پہلوان: جلد کی درمیانی سیاہ رنگت',
+    '🤼🏿' => 'پہلوان: جلد کی سیاہ رنگت',
     '🤽🏻' => 'واٹر پولو: جلد کی ہلکی رنگت',
     '🤽🏼' => 'واٹر پولو: جلد کی درمیانی -ہلکی رنگت',
     '🤽🏽' => 'واٹر پولو: جلد کی درمیانی رنگت',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'پرچم: چین',
     '🇨🇴' => 'پرچم: کولمبیا',
     '🇨🇵' => 'پرچم: کلپرٹن آئلینڈ',
+    '🇨🇶' => 'پرچم: سارک',
     '🇨🇷' => 'پرچم: کوسٹا ریکا',
     '🇨🇺' => 'پرچم: کیوبا',
     '🇨🇻' => 'پرچم: کیپ ورڈی',
@@ -2390,13 +2547,6 @@
     '🏽' => 'جلد کی درمیانی رنگت',
     '🏾' => 'جلد کی درمیانی سیاہ رنگت',
     '🏿' => 'جلد کی سیاہ رنگت',
-    '🪉' => 'بربط',
-    '🪏' => 'بیلچہ',
-    '🪾' => 'بے برگ درخت',
-    '🫆' => 'انگلی کا نشان',
-    '🫜' => 'زیر زمین اگنے والی سبزی',
-    '🫟' => 'چھینٹے اڑانا',
-    '🫩' => 'آنکھوں کے گرد حلقوں والا چہرہ',
     '😀' => 'کھل کے ہنستا چہرہ',
     '😃' => 'بڑی آنکھوں والا کھلے منہ والا مسکراتا چہرہ',
     '😄' => 'کھلے منہ اور مسکراتی آنکھوں والا مسکراتا چہرہ',
@@ -2450,6 +2600,7 @@
     '😪' => 'خوابیدہ چہرہ',
     '🤤' => 'رال ٹپکاتا چہرہ',
     '😴' => 'سوتا ہوا چہرہ',
+    '🫩' => 'آنکھوں کے گرد حلقوں والا چہرہ',
     '😷' => 'طبی ماسک والا چہرہ',
     '🤒' => 'تھرمامیٹر لیے چہرہ',
     '🤕' => 'سر پر پٹی باندھے چہرہ',
@@ -2476,6 +2627,7 @@
     '😯' => 'شدید حیرت زدہ چہرہ',
     '😲' => 'حیرت زدہ چہرہ',
     '😳' => 'شرمندگی سے سرخ چہرہ',
+    '🫪' => 'بگڑا ہوا چہرہ',
     '🥺' => 'ملتجی چہرہ',
     '🥹' => 'آنسو روکے ہوئے چہرہ',
     '😦' => 'منہ کھولے تیوری چڑھاتا چہرہ',
@@ -2547,6 +2699,7 @@
     '💋' => 'بوسے کا نشان',
     '💯' => 'سو پوائنٹس',
     '💢' => 'غصے کی علامت',
+    '🫯' => 'فائٹ کلاؤڈ',
     '💥' => 'تصادم',
     '💫' => 'سر چکرانا',
     '💦' => 'پسینے کے قطرے',
@@ -2670,6 +2823,7 @@
     '🧞' => 'جن',
     '🧟' => 'زندہ مردہ',
     '🧌' => 'ٹرول',
+    '🫈' => 'بالوں والی مخلوق',
     '💆' => 'چہرے کا مساج',
     '💇' => 'حجامت',
     '🚶' => 'پیدل چلتا شخص',
@@ -2713,6 +2867,7 @@
     '🫂' => 'گلے ملتے لوگ',
     '👪' => 'خاندان',
     '👣' => 'قدموں کے نشانات',
+    '🫆' => 'انگلی کا نشان',
     '🦰' => 'سرخ بال',
     '🦱' => 'گھنگھریالے بال',
     '🦳' => 'سفید بال',
@@ -2812,6 +2967,7 @@
     '🐳' => 'پانی کا فوارہ نکالتی وہیل',
     '🐋' => 'وہیل',
     '🐬' => 'ڈولفن',
+    '🫍' => 'اورکا',
     '🦭' => 'سیل',
     '🐟' => 'مچھلی',
     '🐠' => 'ٹراپکل مچھلی',
@@ -2821,6 +2977,11 @@
     '🐚' => 'مرغولے دار شیل',
     '🪸' => 'مرجان',
     '🪼' => 'جیلی فش',
+    '🦀' => 'کیکڑا',
+    '🦞' => 'لوبسٹر',
+    '🦐' => 'جھینگا',
+    '🦑' => 'قیر ماہی',
+    '🦪' => 'صدفہ',
     '🐌' => 'گھونگھا',
     '🦋' => 'تتلی',
     '🐛' => 'کن کھجورا',
@@ -2865,6 +3026,7 @@
     '🪹' => 'خالی گھونسلہ',
     '🪺' => 'انڈوں کے ساتھ گھونسلہ',
     '🍄' => 'کھمبی',
+    '🪾' => 'بے برگ درخت',
     '🍇' => 'انگور',
     '🍈' => 'خربوزہ',
     '🍉' => 'تربوز',
@@ -2901,6 +3063,7 @@
     '🌰' => 'شاہ بلوط کا پھل',
     '🫚' => 'ادرک',
     '🫛' => 'مٹر کی پھلی',
+    '🫜' => 'زیر زمین اگنے والی سبزی',
     '🍞' => 'ڈبل روٹی',
     '🥐' => 'ہلال نما روٹی',
     '🥖' => 'بیگٹ ڈبل روٹی',
@@ -2952,11 +3115,6 @@
     '🥟' => 'پکوڑی',
     '🥠' => 'قسمت والا بسکٹ',
     '🥡' => 'پارسل کا ڈبہ',
-    '🦀' => 'کیکڑا',
-    '🦞' => 'لوبسٹر',
-    '🦐' => 'جھینگا',
-    '🦑' => 'قیر ماہی',
-    '🦪' => 'صدفہ',
     '🍦' => 'سافٹ آئس کریم',
     '🍧' => 'تراشیدہ برف',
     '🍨' => 'آئس کریم',
@@ -3007,6 +3165,7 @@
     '🧭' => 'قُطب نُما',
     '🏔' => 'برف سے ڈھکا پہاڑ',
     '⛰' => 'پہاڑ',
+    '🛘' => 'لینڈ سلائیڈ',
     '🌋' => 'آتش فشاں',
     '🗻' => 'ماؤنٹ فیوجی',
     '🏕' => 'پڑاؤ',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ہیڈ فون',
     '📻' => 'ریڈیو',
     '🎷' => 'سیکسو فون',
+    '🎺' => 'ٹرمپٹ',
+    '🪊' => 'ٹرومبون',
     '🪗' => 'ارگن باجا',
     '🎸' => 'گٹار',
     '🎹' => 'میوزیکل کی بورڈ',
-    '🎺' => 'ٹرمپٹ',
     '🎻' => 'وائلن',
     '🪕' => 'بینجو',
     '🥁' => 'ڈرم',
     '🪘' => 'لمبا ڈرم',
     '🪇' => 'مراکس',
     '🪈' => 'بانسری',
+    '🪉' => 'بربط',
     '📱' => 'موبائل فون',
     '📲' => 'تیر کے نشان کے ساتھ موبائل فون',
     '☎' => 'ٹیلیفون',
@@ -3430,8 +3591,9 @@
     '📑' => 'بُک مارک ٹیبز',
     '🔖' => 'بُک مارک',
     '🏷' => 'لیبل',
-    '💰' => 'پیسوں کا بیگ',
     '🪙' => 'سکہ',
+    '💰' => 'پیسوں کا بیگ',
+    '🪎' => 'ٹریژر چیسٹ',
     '💴' => 'ین بینک نوٹ',
     '💵' => 'ڈالر بینک نوٹ',
     '💶' => 'یورو بینک نوٹ',
@@ -3514,6 +3676,7 @@
     '🧰' => 'ٹُول بکس',
     '🧲' => 'مقناطیس',
     '🪜' => 'سیڑھی',
+    '🪏' => 'بیلچہ',
     '⚗' => 'الیمبک',
     '🧪' => 'ٹیسٹ ٹیوب',
     '🧫' => 'پیٹری ڈش',
@@ -3697,6 +3860,7 @@
     '✴' => 'آٹھ کونوں والا ستارہ',
     '❇' => 'چمک',
     '™' => 'تجارتی نشان',
+    '🫟' => 'چھینٹے اڑانا',
     '🔠' => 'ان پٹ لاطینی بڑے حروف',
     '🔡' => 'ان پٹ لاطینی چھوٹے حروف',
     '🔢' => 'ان پٹ اعداد',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-uz.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-uz.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-uz.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-uz.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'bo‘sa olish: ayol ayol 6-teri turi 4-teri turi',
     '👩🏿‍❤‍💋‍👩🏾' => 'bo‘sa olish: ayol ayol 6-teri turi 5-teri turi',
     '👩🏿‍❤‍💋‍👩🏿' => 'bo‘sa olish: ayol ayol 6-teri turi',
+    '🧑🏻‍🫯‍🧑🏼' => 'kurashchilar: 1–2-teri turi 3-teri turi',
+    '🧑🏻‍🫯‍🧑🏽' => 'kurashchilar: 1–2-teri turi 4-teri turi',
+    '🧑🏻‍🫯‍🧑🏾' => 'kurashchilar: 1–2-teri turi 5-teri turi',
+    '🧑🏻‍🫯‍🧑🏿' => 'kurashchilar: 1–2-teri turi 6-teri turi',
+    '🧑🏼‍🫯‍🧑🏻' => 'kurashchilar: 3-teri turi 1–2-teri turi',
+    '🧑🏼‍🫯‍🧑🏽' => 'kurashchilar: 3-teri turi 4-teri turi',
+    '🧑🏼‍🫯‍🧑🏾' => 'kurashchilar: 3-teri turi 5-teri turi',
+    '🧑🏼‍🫯‍🧑🏿' => 'kurashchilar: 3-teri turi 6-teri turi',
+    '🧑🏽‍🫯‍🧑🏻' => 'kurashchilar: 4-teri turi 1–2-teri turi',
+    '🧑🏽‍🫯‍🧑🏼' => 'kurashchilar: 4-teri turi 3-teri turi',
+    '🧑🏽‍🫯‍🧑🏾' => 'kurashchilar: 4-teri turi 5-teri turi',
+    '🧑🏽‍🫯‍🧑🏿' => 'kurashchilar: 4-teri turi 6-teri turi',
+    '🧑🏾‍🫯‍🧑🏻' => 'kurashchilar: 5-teri turi 1–2-teri turi',
+    '🧑🏾‍🫯‍🧑🏼' => 'kurashchilar: 5-teri turi 3-teri turi',
+    '🧑🏾‍🫯‍🧑🏽' => 'kurashchilar: 5-teri turi 4-teri turi',
+    '🧑🏾‍🫯‍🧑🏿' => 'kurashchilar: 5-teri turi 6-teri turi',
+    '🧑🏿‍🫯‍🧑🏻' => 'kurashchilar: 6-teri turi 1–2-teri turi',
+    '🧑🏿‍🫯‍🧑🏼' => 'kurashchilar: 6-teri turi 3-teri turi',
+    '🧑🏿‍🫯‍🧑🏽' => 'kurashchilar: 6-teri turi 4-teri turi',
+    '🧑🏿‍🫯‍🧑🏾' => 'kurashchilar: 6-teri turi 5-teri turi',
     '🧑🏻‍❤‍🧑🏼' => 'juftlik va yurak: voyaga yetgan voyaga yetgan 1–2-teri turi 3-teri turi',
     '🧑🏻‍❤‍🧑🏽' => 'juftlik va yurak: voyaga yetgan voyaga yetgan 1–2-teri turi 4-teri turi',
     '🧑🏻‍❤‍🧑🏾' => 'juftlik va yurak: voyaga yetgan voyaga yetgan 1–2-teri turi 5-teri turi',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'juftlik va yurak: voyaga yetgan voyaga yetgan 6-teri turi 3-teri turi',
     '🧑🏿‍❤‍🧑🏽' => 'juftlik va yurak: voyaga yetgan voyaga yetgan 6-teri turi 4-teri turi',
     '🧑🏿‍❤‍🧑🏾' => 'juftlik va yurak: voyaga yetgan voyaga yetgan 6-teri turi 5-teri turi',
+    '🧑🏻‍🐰‍🧑🏼' => 'quyon quloqli odamlar: 1–2-teri turi 3-teri turi',
+    '🧑🏻‍🐰‍🧑🏽' => 'quyon quloqli odamlar: 1–2-teri turi 4-teri turi',
+    '🧑🏻‍🐰‍🧑🏾' => 'quyon quloqli odamlar: 1–2-teri turi 5-teri turi',
+    '🧑🏻‍🐰‍🧑🏿' => 'quyon quloqli odamlar: 1–2-teri turi 6-teri turi',
+    '🧑🏼‍🐰‍🧑🏻' => 'quyon quloqli odamlar: 3-teri turi 1–2-teri turi',
+    '🧑🏼‍🐰‍🧑🏽' => 'quyon quloqli odamlar: 3-teri turi 4-teri turi',
+    '🧑🏼‍🐰‍🧑🏾' => 'quyon quloqli odamlar: 3-teri turi 5-teri turi',
+    '🧑🏼‍🐰‍🧑🏿' => 'quyon quloqli odamlar: 3-teri turi 6-teri turi',
+    '🧑🏽‍🐰‍🧑🏻' => 'quyon quloqli odamlar: 4-teri turi 1–2-teri turi',
+    '🧑🏽‍🐰‍🧑🏼' => 'quyon quloqli odamlar: 4-teri turi 3-teri turi',
+    '🧑🏽‍🐰‍🧑🏾' => 'quyon quloqli odamlar: 4-teri turi 5-teri turi',
+    '🧑🏽‍🐰‍🧑🏿' => 'quyon quloqli odamlar: 4-teri turi 6-teri turi',
+    '🧑🏾‍🐰‍🧑🏻' => 'quyon quloqli odamlar: 5-teri turi 1–2-teri turi',
+    '🧑🏾‍🐰‍🧑🏼' => 'quyon quloqli odamlar: 5-teri turi 3-teri turi',
+    '🧑🏾‍🐰‍🧑🏽' => 'quyon quloqli odamlar: 5-teri turi 4-teri turi',
+    '🧑🏾‍🐰‍🧑🏿' => 'quyon quloqli odamlar: 5-teri turi 6-teri turi',
+    '🧑🏿‍🐰‍🧑🏻' => 'quyon quloqli odamlar: 6-teri turi 1–2-teri turi',
+    '🧑🏿‍🐰‍🧑🏼' => 'quyon quloqli odamlar: 6-teri turi 3-teri turi',
+    '🧑🏿‍🐰‍🧑🏽' => 'quyon quloqli odamlar: 6-teri turi 4-teri turi',
+    '🧑🏿‍🐰‍🧑🏾' => 'quyon quloqli odamlar: 6-teri turi 5-teri turi',
+    '👨🏻‍🫯‍👨🏼' => 'kurashayotgan erkak: 1–2-teri turi 3-teri turi',
+    '👨🏻‍🫯‍👨🏽' => 'kurashayotgan erkak: 1–2-teri turi 4-teri turi',
+    '👨🏻‍🫯‍👨🏾' => 'kurashayotgan erkak: 1–2-teri turi 5-teri turi',
+    '👨🏻‍🫯‍👨🏿' => 'kurashayotgan erkak: 1–2-teri turi 6-teri turi',
+    '👨🏼‍🫯‍👨🏻' => 'kurashayotgan erkak: 3-teri turi 1–2-teri turi',
+    '👨🏼‍🫯‍👨🏽' => 'kurashayotgan erkak: 3-teri turi 4-teri turi',
+    '👨🏼‍🫯‍👨🏾' => 'kurashayotgan erkak: 3-teri turi 5-teri turi',
+    '👨🏼‍🫯‍👨🏿' => 'kurashayotgan erkak: 3-teri turi 6-teri turi',
+    '👨🏽‍🫯‍👨🏻' => 'kurashayotgan erkak: 4-teri turi 1–2-teri turi',
+    '👨🏽‍🫯‍👨🏼' => 'kurashayotgan erkak: 4-teri turi 3-teri turi',
+    '👨🏽‍🫯‍👨🏾' => 'kurashayotgan erkak: 4-teri turi 5-teri turi',
+    '👨🏽‍🫯‍👨🏿' => 'kurashayotgan erkak: 4-teri turi 6-teri turi',
+    '👨🏾‍🫯‍👨🏻' => 'kurashayotgan erkak: 5-teri turi 1–2-teri turi',
+    '👨🏾‍🫯‍👨🏼' => 'kurashayotgan erkak: 5-teri turi 3-teri turi',
+    '👨🏾‍🫯‍👨🏽' => 'kurashayotgan erkak: 5-teri turi 4-teri turi',
+    '👨🏾‍🫯‍👨🏿' => 'kurashayotgan erkak: 5-teri turi 6-teri turi',
+    '👨🏿‍🫯‍👨🏻' => 'kurashayotgan erkak: 6-teri turi 1–2-teri turi',
+    '👨🏿‍🫯‍👨🏼' => 'kurashayotgan erkak: 6-teri turi 3-teri turi',
+    '👨🏿‍🫯‍👨🏽' => 'kurashayotgan erkak: 6-teri turi 4-teri turi',
+    '👨🏿‍🫯‍👨🏾' => 'kurashayotgan erkak: 6-teri turi 5-teri turi',
     '👨🏻‍❤‍👨🏻' => 'juftlik va yurak: erkak erkak 1–2-teri turi',
     '👨🏻‍❤‍👨🏼' => 'juftlik va yurak: erkak erkak 1–2-teri turi 3-teri turi',
     '👨🏻‍❤‍👨🏽' => 'juftlik va yurak: erkak erkak 1–2-teri turi 4-teri turi',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'juftlik va yurak: erkak erkak 6-teri turi 4-teri turi',
     '👨🏿‍❤‍👨🏾' => 'juftlik va yurak: erkak erkak 6-teri turi 5-teri turi',
     '👨🏿‍❤‍👨🏿' => 'juftlik va yurak: erkak erkak 6-teri turi',
+    '👨🏻‍🐰‍👨🏼' => 'quyon quloqli erkaklar: 1–2-teri turi 3-teri turi',
+    '👨🏻‍🐰‍👨🏽' => 'quyon quloqli erkaklar: 1–2-teri turi 4-teri turi',
+    '👨🏻‍🐰‍👨🏾' => 'quyon quloqli erkaklar: 1–2-teri turi 5-teri turi',
+    '👨🏻‍🐰‍👨🏿' => 'quyon quloqli erkaklar: 1–2-teri turi 6-teri turi',
+    '👨🏼‍🐰‍👨🏻' => 'quyon quloqli erkaklar: 3-teri turi 1–2-teri turi',
+    '👨🏼‍🐰‍👨🏽' => 'quyon quloqli erkaklar: 3-teri turi 4-teri turi',
+    '👨🏼‍🐰‍👨🏾' => 'quyon quloqli erkaklar: 3-teri turi 5-teri turi',
+    '👨🏼‍🐰‍👨🏿' => 'quyon quloqli erkaklar: 3-teri turi 6-teri turi',
+    '👨🏽‍🐰‍👨🏻' => 'quyon quloqli erkaklar: 4-teri turi 1–2-teri turi',
+    '👨🏽‍🐰‍👨🏼' => 'quyon quloqli erkaklar: 4-teri turi 3-teri turi',
+    '👨🏽‍🐰‍👨🏾' => 'quyon quloqli erkaklar: 4-teri turi 5-teri turi',
+    '👨🏽‍🐰‍👨🏿' => 'quyon quloqli erkaklar: 4-teri turi 6-teri turi',
+    '👨🏾‍🐰‍👨🏻' => 'quyon quloqli erkaklar: 5-teri turi 1–2-teri turi',
+    '👨🏾‍🐰‍👨🏼' => 'quyon quloqli erkaklar: 5-teri turi 3-teri turi',
+    '👨🏾‍🐰‍👨🏽' => 'quyon quloqli erkaklar: 5-teri turi 4-teri turi',
+    '👨🏾‍🐰‍👨🏿' => 'quyon quloqli erkaklar: 5-teri turi 6-teri turi',
+    '👨🏿‍🐰‍👨🏻' => 'quyon quloqli erkaklar: 6-teri turi 1–2-teri turi',
+    '👨🏿‍🐰‍👨🏼' => 'quyon quloqli erkaklar: 6-teri turi 3-teri turi',
+    '👨🏿‍🐰‍👨🏽' => 'quyon quloqli erkaklar: 6-teri turi 4-teri turi',
+    '👨🏿‍🐰‍👨🏾' => 'quyon quloqli erkaklar: 6-teri turi 5-teri turi',
+    '👩🏻‍🫯‍👩🏼' => 'kurashayotgan ayol: 1–2-teri turi 3-teri turi',
+    '👩🏻‍🫯‍👩🏽' => 'kurashayotgan ayol: 1–2-teri turi 4-teri turi',
+    '👩🏻‍🫯‍👩🏾' => 'kurashayotgan ayol: 1–2-teri turi 5-teri turi',
+    '👩🏻‍🫯‍👩🏿' => 'kurashayotgan ayol: 1–2-teri turi 6-teri turi',
+    '👩🏼‍🫯‍👩🏻' => 'kurashayotgan ayol: 3-teri turi 1–2-teri turi',
+    '👩🏼‍🫯‍👩🏽' => 'kurashayotgan ayol: 3-teri turi 4-teri turi',
+    '👩🏼‍🫯‍👩🏾' => 'kurashayotgan ayol: 3-teri turi 5-teri turi',
+    '👩🏼‍🫯‍👩🏿' => 'kurashayotgan ayol: 3-teri turi 6-teri turi',
+    '👩🏽‍🫯‍👩🏻' => 'kurashayotgan ayol: 4-teri turi 1–2-teri turi',
+    '👩🏽‍🫯‍👩🏼' => 'kurashayotgan ayol: 4-teri turi 3-teri turi',
+    '👩🏽‍🫯‍👩🏾' => 'kurashayotgan ayol: 4-teri turi 5-teri turi',
+    '👩🏽‍🫯‍👩🏿' => 'kurashayotgan ayol: 4-teri turi 6-teri turi',
+    '👩🏾‍🫯‍👩🏻' => 'kurashayotgan ayol: 5-teri turi 1–2-teri turi',
+    '👩🏾‍🫯‍👩🏼' => 'kurashayotgan ayol: 5-teri turi 3-teri turi',
+    '👩🏾‍🫯‍👩🏽' => 'kurashayotgan ayol: 5-teri turi 4-teri turi',
+    '👩🏾‍🫯‍👩🏿' => 'kurashayotgan ayol: 5-teri turi 6-teri turi',
+    '👩🏿‍🫯‍👩🏻' => 'kurashayotgan ayol: 6-teri turi 1–2-teri turi',
+    '👩🏿‍🫯‍👩🏼' => 'kurashayotgan ayol: 6-teri turi 3-teri turi',
+    '👩🏿‍🫯‍👩🏽' => 'kurashayotgan ayol: 6-teri turi 4-teri turi',
+    '👩🏿‍🫯‍👩🏾' => 'kurashayotgan ayol: 6-teri turi 5-teri turi',
     '👩🏻‍❤‍👨🏻' => 'juftlik va yurak: ayol erkak 1–2-teri turi',
     '👩🏻‍❤‍👨🏼' => 'juftlik va yurak: ayol erkak 1–2-teri turi 3-teri turi',
     '👩🏻‍❤‍👨🏽' => 'juftlik va yurak: ayol erkak 1–2-teri turi 4-teri turi',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'juftlik va yurak: ayol ayol 6-teri turi 4-teri turi',
     '👩🏿‍❤‍👩🏾' => 'juftlik va yurak: ayol ayol 6-teri turi 5-teri turi',
     '👩🏿‍❤‍👩🏿' => 'juftlik va yurak: ayol ayol 6-teri turi',
+    '👩🏻‍🐰‍👩🏼' => 'quyon quloqli ayollar: 1–2-teri turi 3-teri turi',
+    '👩🏻‍🐰‍👩🏽' => 'quyon quloqli ayollar: 1–2-teri turi 4-teri turi',
+    '👩🏻‍🐰‍👩🏾' => 'quyon quloqli ayollar: 1–2-teri turi 5-teri turi',
+    '👩🏻‍🐰‍👩🏿' => 'quyon quloqli ayollar: 1–2-teri turi 6-teri turi',
+    '👩🏼‍🐰‍👩🏻' => 'quyon quloqli ayollar: 3-teri turi 1–2-teri turi',
+    '👩🏼‍🐰‍👩🏽' => 'quyon quloqli ayollar: 3-teri turi 4-teri turi',
+    '👩🏼‍🐰‍👩🏾' => 'quyon quloqli ayollar: 3-teri turi 5-teri turi',
+    '👩🏼‍🐰‍👩🏿' => 'quyon quloqli ayollar: 3-teri turi 6-teri turi',
+    '👩🏽‍🐰‍👩🏻' => 'quyon quloqli ayollar: 4-teri turi 1–2-teri turi',
+    '👩🏽‍🐰‍👩🏼' => 'quyon quloqli ayollar: 4-teri turi 3-teri turi',
+    '👩🏽‍🐰‍👩🏾' => 'quyon quloqli ayollar: 4-teri turi 5-teri turi',
+    '👩🏽‍🐰‍👩🏿' => 'quyon quloqli ayollar: 4-teri turi 6-teri turi',
+    '👩🏾‍🐰‍👩🏻' => 'quyon quloqli ayollar: 5-teri turi 1–2-teri turi',
+    '👩🏾‍🐰‍👩🏼' => 'quyon quloqli ayollar: 5-teri turi 3-teri turi',
+    '👩🏾‍🐰‍👩🏽' => 'quyon quloqli ayollar: 5-teri turi 4-teri turi',
+    '👩🏾‍🐰‍👩🏿' => 'quyon quloqli ayollar: 5-teri turi 6-teri turi',
+    '👩🏿‍🐰‍👩🏻' => 'quyon quloqli ayollar: 6-teri turi 1–2-teri turi',
+    '👩🏿‍🐰‍👩🏼' => 'quyon quloqli ayollar: 6-teri turi 3-teri turi',
+    '👩🏿‍🐰‍👩🏽' => 'quyon quloqli ayollar: 6-teri turi 4-teri turi',
+    '👩🏿‍🐰‍👩🏾' => 'quyon quloqli ayollar: 6-teri turi 5-teri turi',
     '🧑🏻‍🤝‍🧑🏻' => 'qoʻl ushlashib turgan odamlar: 1–2-teri turi',
     '🧑🏻‍🤝‍🧑🏼' => 'qoʻl ushlashib turgan odamlar: 1–2-teri turi 3-teri turi',
     '🧑🏻‍🤝‍🧑🏽' => 'qoʻl ushlashib turgan odamlar: 1–2-teri turi 4-teri turi',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'bayroq: Shotlandiya',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'bayroq: Uels',
     '🧑‍🧑‍🧒‍🧒' => 'oila: ikkita kattalar, ikkita bola',
-    '🚶🏻‍♀‍➡' => 'o‘ngga qaragan yurayotgan ayol',
-    '🚶🏼‍♀‍➡' => 'o‘ngga qaragan yurayotgan ayol',
-    '🚶🏽‍♀‍➡' => 'o‘ngga qaragan yurayotgan ayol',
-    '🚶🏾‍♀‍➡' => 'o‘ngga qaragan yurayotgan ayol',
-    '🚶🏿‍♀‍➡' => 'o‘ngga qaragan yurayotgan ayol',
-    '🚶🏻‍♂‍➡' => 'o‘ngga qaragan yurayotgan erkak',
-    '🚶🏼‍♂‍➡' => 'o‘ngga qaragan yurayotgan erkak',
-    '🚶🏽‍♂‍➡' => 'o‘ngga qaragan yurayotgan erkak',
-    '🚶🏾‍♂‍➡' => 'o‘ngga qaragan yurayotgan erkak',
-    '🚶🏿‍♂‍➡' => 'o‘ngga qaragan yurayotgan erkak',
-    '🧎🏻‍♀‍➡' => 'o‘ngga qaragan tiz choʻkkan ayol',
-    '🧎🏼‍♀‍➡' => 'o‘ngga qaragan tiz choʻkkan ayol',
-    '🧎🏽‍♀‍➡' => 'o‘ngga qaragan tiz choʻkkan ayol',
-    '🧎🏾‍♀‍➡' => 'o‘ngga qaragan tiz choʻkkan ayol',
-    '🧎🏿‍♀‍➡' => 'o‘ngga qaragan tiz choʻkkan ayol',
-    '🧎🏻‍♂‍➡' => 'o‘ngga qaragan tiz choʻkkan erkak',
-    '🧎🏼‍♂‍➡' => 'o‘ngga qaragan tiz choʻkkan erkak',
-    '🧎🏽‍♂‍➡' => 'o‘ngga qaragan tiz choʻkkan erkak',
-    '🧎🏾‍♂‍➡' => 'o‘ngga qaragan tiz choʻkkan erkak',
-    '🧎🏿‍♂‍➡' => 'o‘ngga qaragan tiz choʻkkan erkak',
-    '🧑🏻‍🦯‍➡' => 'o‘ngga qaragan hassali odam',
-    '🧑🏼‍🦯‍➡' => 'o‘ngga qaragan hassali odam',
-    '🧑🏽‍🦯‍➡' => 'o‘ngga qaragan hassali odam',
-    '🧑🏾‍🦯‍➡' => 'o‘ngga qaragan hassali odam',
-    '🧑🏿‍🦯‍➡' => 'o‘ngga qaragan hassali odam',
-    '👨🏻‍🦯‍➡' => 'o‘ngga qaragan hassali kishi',
-    '👨🏼‍🦯‍➡' => 'o‘ngga qaragan hassali kishi',
-    '👨🏽‍🦯‍➡' => 'o‘ngga qaragan hassali kishi',
-    '👨🏾‍🦯‍➡' => 'o‘ngga qaragan hassali kishi',
-    '👨🏿‍🦯‍➡' => 'o‘ngga qaragan hassali kishi',
-    '👩🏻‍🦯‍➡' => 'o‘ngga qaragan hassali ayol',
-    '👩🏼‍🦯‍➡' => 'o‘ngga qaragan hassali ayol',
-    '👩🏽‍🦯‍➡' => 'o‘ngga qaragan hassali ayol',
-    '👩🏾‍🦯‍➡' => 'o‘ngga qaragan hassali ayol',
-    '👩🏿‍🦯‍➡' => 'o‘ngga qaragan hassali ayol',
-    '🧑🏻‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlar aravachasidagi odam',
-    '🧑🏼‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlar aravachasidagi odam',
-    '🧑🏽‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlar aravachasidagi odam',
-    '🧑🏾‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlar aravachasidagi odam',
-    '🧑🏿‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlar aravachasidagi odam',
-    '👨🏻‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi erkak',
-    '👨🏼‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi erkak',
-    '👨🏽‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi erkak',
-    '👨🏾‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi erkak',
-    '👨🏿‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi erkak',
-    '👩🏻‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi ayol',
-    '👩🏼‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi ayol',
-    '👩🏽‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi ayol',
-    '👩🏾‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi ayol',
-    '👩🏿‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi ayol',
-    '🧑🏻‍🦽‍➡' => 'o‘ngga qaragan nogironlar aravachasidagi odam',
-    '🧑🏼‍🦽‍➡' => 'o‘ngga qaragan nogironlar aravachasidagi odam',
-    '🧑🏽‍🦽‍➡' => 'o‘ngga qaragan nogironlar aravachasidagi odam',
-    '🧑🏾‍🦽‍➡' => 'o‘ngga qaragan nogironlar aravachasidagi odam',
-    '🧑🏿‍🦽‍➡' => 'o‘ngga qaragan nogironlar aravachasidagi odam',
-    '👨🏻‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi erkak',
-    '👨🏼‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi erkak',
-    '👨🏽‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi erkak',
-    '👨🏾‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi erkak',
-    '👨🏿‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi erkak',
-    '👩🏻‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi ayol',
-    '👩🏼‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi ayol',
-    '👩🏽‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi ayol',
-    '👩🏾‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi ayol',
-    '👩🏿‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi ayol',
-    '🏃🏻‍♀‍➡' => 'o‘ngga qaragan yugurayotgan ayol',
-    '🏃🏼‍♀‍➡' => 'o‘ngga qaragan yugurayotgan ayol',
-    '🏃🏽‍♀‍➡' => 'o‘ngga qaragan yugurayotgan ayol',
-    '🏃🏾‍♀‍➡' => 'o‘ngga qaragan yugurayotgan ayol',
-    '🏃🏿‍♀‍➡' => 'o‘ngga qaragan yugurayotgan ayol',
-    '🏃🏻‍♂‍➡' => 'o‘ngga qaragan yugurayotgan erkak',
-    '🏃🏼‍♂‍➡' => 'o‘ngga qaragan yugurayotgan erkak',
-    '🏃🏽‍♂‍➡' => 'o‘ngga qaragan yugurayotgan erkak',
-    '🏃🏾‍♂‍➡' => 'o‘ngga qaragan yugurayotgan erkak',
-    '🏃🏿‍♂‍➡' => 'o‘ngga qaragan yugurayotgan erkak',
+    '🚶🏻‍♀‍➡' => 'yurayotgan ayol: 1–2-teri turi o‘ngga qaragan',
+    '🚶🏼‍♀‍➡' => 'yurayotgan ayol: 3-teri turi o‘ngga qaragan',
+    '🚶🏽‍♀‍➡' => 'yurayotgan ayol: 4-teri turi o‘ngga qaragan',
+    '🚶🏾‍♀‍➡' => 'yurayotgan ayol: 5-teri turi o‘ngga qaragan',
+    '🚶🏿‍♀‍➡' => 'yurayotgan ayol: 6-teri turi o‘ngga qaragan',
+    '🚶🏻‍♂‍➡' => 'yurayotgan erkak: 1–2-teri turi o‘ngga qaragan',
+    '🚶🏼‍♂‍➡' => 'yurayotgan erkak: 3-teri turi o‘ngga qaragan',
+    '🚶🏽‍♂‍➡' => 'yurayotgan erkak: 4-teri turi o‘ngga qaragan',
+    '🚶🏾‍♂‍➡' => 'yurayotgan erkak: 5-teri turi o‘ngga qaragan',
+    '🚶🏿‍♂‍➡' => 'yurayotgan erkak: 6-teri turi o‘ngga qaragan',
+    '🧎🏻‍♀‍➡' => 'tiz choʻkkan ayol: 1–2-teri turi o‘ngga qaragan',
+    '🧎🏼‍♀‍➡' => 'tiz choʻkkan ayol: 3-teri turi o‘ngga qaragan',
+    '🧎🏽‍♀‍➡' => 'tiz choʻkkan ayol: 4-teri turi o‘ngga qaragan',
+    '🧎🏾‍♀‍➡' => 'tiz choʻkkan ayol: 5-teri turi o‘ngga qaragan',
+    '🧎🏿‍♀‍➡' => 'tiz choʻkkan ayol: 6-teri turi o‘ngga qaragan',
+    '🧎🏻‍♂‍➡' => 'tiz choʻkkan erkak: 1–2-teri turi o‘ngga qaragan',
+    '🧎🏼‍♂‍➡' => 'tiz choʻkkan erkak: 3-teri turi o‘ngga qaragan',
+    '🧎🏽‍♂‍➡' => 'tiz choʻkkan erkak: 4-teri turi o‘ngga qaragan',
+    '🧎🏾‍♂‍➡' => 'tiz choʻkkan erkak: 5-teri turi o‘ngga qaragan',
+    '🧎🏿‍♂‍➡' => 'tiz choʻkkan erkak: 6-teri turi o‘ngga qaragan',
+    '🧑🏻‍🦯‍➡' => 'hassali odam: 1–2-teri turi o‘ngga qaragan',
+    '🧑🏼‍🦯‍➡' => 'hassali odam: 3-teri turi o‘ngga qaragan',
+    '🧑🏽‍🦯‍➡' => 'hassali odam: 4-teri turi o‘ngga qaragan',
+    '🧑🏾‍🦯‍➡' => 'hassali odam: 5-teri turi o‘ngga qaragan',
+    '🧑🏿‍🦯‍➡' => 'hassali odam: 6-teri turi o‘ngga qaragan',
+    '👨🏻‍🦯‍➡' => 'hassali kishi: 1–2-teri turi o‘ngga qaragan',
+    '👨🏼‍🦯‍➡' => 'hassali kishi: 3-teri turi o‘ngga qaragan',
+    '👨🏽‍🦯‍➡' => 'hassali kishi: 4-teri turi o‘ngga qaragan',
+    '👨🏾‍🦯‍➡' => 'hassali kishi: 5-teri turi o‘ngga qaragan',
+    '👨🏿‍🦯‍➡' => 'hassali kishi: 6-teri turi o‘ngga qaragan',
+    '👩🏻‍🦯‍➡' => 'hassali ayol: 1–2-teri turi o‘ngga qaragan',
+    '👩🏼‍🦯‍➡' => 'hassali ayol: 3-teri turi o‘ngga qaragan',
+    '👩🏽‍🦯‍➡' => 'hassali ayol: 4-teri turi o‘ngga qaragan',
+    '👩🏾‍🦯‍➡' => 'hassali ayol: 5-teri turi o‘ngga qaragan',
+    '👩🏿‍🦯‍➡' => 'hassali ayol: 6-teri turi o‘ngga qaragan',
+    '🧑🏻‍🦼‍➡' => 'motorli nogironlar aravachasidagi odam: 1–2-teri turi o‘ngga qaragan',
+    '🧑🏼‍🦼‍➡' => 'motorli nogironlar aravachasidagi odam: 3-teri turi o‘ngga qaragan',
+    '🧑🏽‍🦼‍➡' => 'motorli nogironlar aravachasidagi odam: 4-teri turi o‘ngga qaragan',
+    '🧑🏾‍🦼‍➡' => 'motorli nogironlar aravachasidagi odam: 5-teri turi o‘ngga qaragan',
+    '🧑🏿‍🦼‍➡' => 'motorli nogironlar aravachasidagi odam: 6-teri turi o‘ngga qaragan',
+    '👨🏻‍🦼‍➡' => 'motorli nogironlik aravachasidagi erkak: 1–2-teri turi o‘ngga qaragan',
+    '👨🏼‍🦼‍➡' => 'motorli nogironlik aravachasidagi erkak: 3-teri turi o‘ngga qaragan',
+    '👨🏽‍🦼‍➡' => 'motorli nogironlik aravachasidagi erkak: 4-teri turi o‘ngga qaragan',
+    '👨🏾‍🦼‍➡' => 'motorli nogironlik aravachasidagi erkak: 5-teri turi o‘ngga qaragan',
+    '👨🏿‍🦼‍➡' => 'motorli nogironlik aravachasidagi erkak: 6-teri turi o‘ngga qaragan',
+    '👩🏻‍🦼‍➡' => 'motorli nogironlik aravachasidagi ayol: 1–2-teri turi o‘ngga qaragan',
+    '👩🏼‍🦼‍➡' => 'motorli nogironlik aravachasidagi ayol: 3-teri turi o‘ngga qaragan',
+    '👩🏽‍🦼‍➡' => 'motorli nogironlik aravachasidagi ayol: 4-teri turi o‘ngga qaragan',
+    '👩🏾‍🦼‍➡' => 'motorli nogironlik aravachasidagi ayol: 5-teri turi o‘ngga qaragan',
+    '👩🏿‍🦼‍➡' => 'motorli nogironlik aravachasidagi ayol: 6-teri turi o‘ngga qaragan',
+    '🧑🏻‍🦽‍➡' => 'nogironlar aravachasidagi odam: 1–2-teri turi o‘ngga qaragan',
+    '🧑🏼‍🦽‍➡' => 'nogironlar aravachasidagi odam: 3-teri turi o‘ngga qaragan',
+    '🧑🏽‍🦽‍➡' => 'nogironlar aravachasidagi odam: 4-teri turi o‘ngga qaragan',
+    '🧑🏾‍🦽‍➡' => 'nogironlar aravachasidagi odam: 5-teri turi o‘ngga qaragan',
+    '🧑🏿‍🦽‍➡' => 'nogironlar aravachasidagi odam: 6-teri turi o‘ngga qaragan',
+    '👨🏻‍🦽‍➡' => 'nogironlik aravachasidagi erkak: 1–2-teri turi o‘ngga qaragan',
+    '👨🏼‍🦽‍➡' => 'nogironlik aravachasidagi erkak: 3-teri turi o‘ngga qaragan',
+    '👨🏽‍🦽‍➡' => 'nogironlik aravachasidagi erkak: 4-teri turi o‘ngga qaragan',
+    '👨🏾‍🦽‍➡' => 'nogironlik aravachasidagi erkak: 5-teri turi o‘ngga qaragan',
+    '👨🏿‍🦽‍➡' => 'nogironlik aravachasidagi erkak: 6-teri turi o‘ngga qaragan',
+    '👩🏻‍🦽‍➡' => 'nogironlik aravachasidagi ayol: 1–2-teri turi o‘ngga qaragan',
+    '👩🏼‍🦽‍➡' => 'nogironlik aravachasidagi ayol: 3-teri turi o‘ngga qaragan',
+    '👩🏽‍🦽‍➡' => 'nogironlik aravachasidagi ayol: 4-teri turi o‘ngga qaragan',
+    '👩🏾‍🦽‍➡' => 'nogironlik aravachasidagi ayol: 5-teri turi o‘ngga qaragan',
+    '👩🏿‍🦽‍➡' => 'nogironlik aravachasidagi ayol: 6-teri turi o‘ngga qaragan',
+    '🏃🏻‍♀‍➡' => 'yugurayotgan ayol: 1–2-teri turi o‘ngga qaragan',
+    '🏃🏼‍♀‍➡' => 'yugurayotgan ayol: 3-teri turi o‘ngga qaragan',
+    '🏃🏽‍♀‍➡' => 'yugurayotgan ayol: 4-teri turi o‘ngga qaragan',
+    '🏃🏾‍♀‍➡' => 'yugurayotgan ayol: 5-teri turi o‘ngga qaragan',
+    '🏃🏿‍♀‍➡' => 'yugurayotgan ayol: 6-teri turi o‘ngga qaragan',
+    '🏃🏻‍♂‍➡' => 'yugurayotgan erkak: 1–2-teri turi o‘ngga qaragan',
+    '🏃🏼‍♂‍➡' => 'yugurayotgan erkak: 3-teri turi o‘ngga qaragan',
+    '🏃🏽‍♂‍➡' => 'yugurayotgan erkak: 4-teri turi o‘ngga qaragan',
+    '🏃🏾‍♂‍➡' => 'yugurayotgan erkak: 5-teri turi o‘ngga qaragan',
+    '🏃🏿‍♂‍➡' => 'yugurayotgan erkak: 6-teri turi o‘ngga qaragan',
     '🫱🏻‍🫲🏼' => 'qo‘l siqish: 1–2-teri turi 3-teri turi',
     '🫱🏻‍🫲🏽' => 'qo‘l siqish: 1–2-teri turi 4-teri turi',
     '🫱🏻‍🫲🏾' => 'qo‘l siqish: 1–2-teri turi 5-teri turi',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'qo‘l siqish: 6-teri turi 3-teri turi',
     '🫱🏿‍🫲🏽' => 'qo‘l siqish: 6-teri turi 4-teri turi',
     '🫱🏿‍🫲🏾' => 'qo‘l siqish: 6-teri turi 5-teri turi',
-    '🚶‍♀‍➡' => 'o‘ngga qaragan yurayotgan ayol',
-    '🚶‍♂‍➡' => 'o‘ngga qaragan yurayotgan erkak',
-    '🧎‍♀‍➡' => 'o‘ngga qaragan tiz choʻkkan ayol',
-    '🧎‍♂‍➡' => 'o‘ngga qaragan tiz choʻkkan erkak',
-    '🧑‍🦯‍➡' => 'o‘ngga qaragan hassali odam',
-    '👨‍🦯‍➡' => 'o‘ngga qaragan hassali kishi',
-    '👩‍🦯‍➡' => 'o‘ngga qaragan hassali ayol',
-    '🧑‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlar aravachasidagi odam',
-    '👨‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi erkak',
-    '👩‍🦼‍➡' => 'o‘ngga qaragan motorli nogironlik aravachasidagi ayol',
-    '🧑‍🦽‍➡' => 'o‘ngga qaragan nogironlar aravachasidagi odam',
-    '👨‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi erkak',
-    '👩‍🦽‍➡' => 'o‘ngga qaragan nogironlik aravachasidagi ayol',
-    '🏃‍♀‍➡' => 'o‘ngga qaragan yugurayotgan ayol',
-    '🏃‍♂‍➡' => 'o‘ngga qaragan yugurayotgan erkak',
+    '🚶‍♀‍➡' => 'yurayotgan ayol: o‘ngga qaragan',
+    '🚶‍♂‍➡' => 'yurayotgan erkak: o‘ngga qaragan',
+    '🧎‍♀‍➡' => 'tiz choʻkkan ayol: o‘ngga qaragan',
+    '🧎‍♂‍➡' => 'tiz choʻkkan erkak: o‘ngga qaragan',
+    '🧑‍🦯‍➡' => 'hassali odam: o‘ngga qaragan',
+    '👨‍🦯‍➡' => 'hassali kishi: o‘ngga qaragan',
+    '👩‍🦯‍➡' => 'hassali ayol: o‘ngga qaragan',
+    '🧑‍🦼‍➡' => 'motorli nogironlar aravachasidagi odam: o‘ngga qaragan',
+    '👨‍🦼‍➡' => 'motorli nogironlik aravachasidagi erkak: o‘ngga qaragan',
+    '👩‍🦼‍➡' => 'motorli nogironlik aravachasidagi ayol: o‘ngga qaragan',
+    '🧑‍🦽‍➡' => 'nogironlar aravachasidagi odam: o‘ngga qaragan',
+    '👨‍🦽‍➡' => 'nogironlik aravachasidagi erkak: o‘ngga qaragan',
+    '👩‍🦽‍➡' => 'nogironlik aravachasidagi ayol: o‘ngga qaragan',
+    '🏃‍♀‍➡' => 'yugurayotgan ayol: o‘ngga qaragan',
+    '🏃‍♂‍➡' => 'yugurayotgan erkak: o‘ngga qaragan',
     '👩‍❤‍👨' => 'juftlik va yurak: ayol erkak',
     '👨‍❤‍👨' => 'juftlik va yurak: erkak erkak',
     '👩‍❤‍👩' => 'juftlik va yurak: ayol ayol',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'voyaga yetgan: 4-teri turi kal',
     '🧑🏾‍🦲' => 'voyaga yetgan: 5-teri turi kal',
     '🧑🏿‍🦲' => 'voyaga yetgan: 6-teri turi kal',
+    '🧑🏻‍🩰' => 'baletchi: 1–2-teri turi',
+    '🧑🏼‍🩰' => 'baletchi: 3-teri turi',
+    '🧑🏽‍🩰' => 'baletchi: 4-teri turi',
+    '🧑🏾‍🩰' => 'baletchi: 5-teri turi',
+    '🧑🏿‍🩰' => 'baletchi: 6-teri turi',
     '🧔🏻‍♂' => 'soqolli erkak: 1–2-teri turi',
     '🧔🏼‍♂' => 'soqolli erkak: 3-teri turi',
     '🧔🏽‍♂' => 'soqolli erkak: 4-teri turi',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'yurayotgan ayol: 4-teri turi',
     '🚶🏾‍♀' => 'yurayotgan ayol: 5-teri turi',
     '🚶🏿‍♀' => 'yurayotgan ayol: 6-teri turi',
-    '🚶🏻‍➡' => 'o‘ngga qaragan piyoda odam',
-    '🚶🏼‍➡' => 'o‘ngga qaragan piyoda odam',
-    '🚶🏽‍➡' => 'o‘ngga qaragan piyoda odam',
-    '🚶🏾‍➡' => 'o‘ngga qaragan piyoda odam',
-    '🚶🏿‍➡' => 'o‘ngga qaragan piyoda odam',
+    '🚶🏻‍➡' => 'piyoda odam: 1–2-teri turi o‘ngga qaragan',
+    '🚶🏼‍➡' => 'piyoda odam: 3-teri turi o‘ngga qaragan',
+    '🚶🏽‍➡' => 'piyoda odam: 4-teri turi o‘ngga qaragan',
+    '🚶🏾‍➡' => 'piyoda odam: 5-teri turi o‘ngga qaragan',
+    '🚶🏿‍➡' => 'piyoda odam: 6-teri turi o‘ngga qaragan',
     '🧍🏻‍♂' => 'tik turgan erkak: 1–2-teri turi',
     '🧍🏼‍♂' => 'tik turgan erkak: 3-teri turi',
     '🧍🏽‍♂' => 'tik turgan erkak: 4-teri turi',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'tiz choʻkkan ayol: 4-teri turi',
     '🧎🏾‍♀' => 'tiz choʻkkan ayol: 5-teri turi',
     '🧎🏿‍♀' => 'tiz choʻkkan ayol: 6-teri turi',
-    '🧎🏻‍➡' => 'o‘ngga qaragan tiz choʻkkan odam',
-    '🧎🏼‍➡' => 'o‘ngga qaragan tiz choʻkkan odam',
-    '🧎🏽‍➡' => 'o‘ngga qaragan tiz choʻkkan odam',
-    '🧎🏾‍➡' => 'o‘ngga qaragan tiz choʻkkan odam',
-    '🧎🏿‍➡' => 'o‘ngga qaragan tiz choʻkkan odam',
+    '🧎🏻‍➡' => 'tiz choʻkkan odam: 1–2-teri turi o‘ngga qaragan',
+    '🧎🏼‍➡' => 'tiz choʻkkan odam: 3-teri turi o‘ngga qaragan',
+    '🧎🏽‍➡' => 'tiz choʻkkan odam: 4-teri turi o‘ngga qaragan',
+    '🧎🏾‍➡' => 'tiz choʻkkan odam: 5-teri turi o‘ngga qaragan',
+    '🧎🏿‍➡' => 'tiz choʻkkan odam: 6-teri turi o‘ngga qaragan',
     '🧑🏻‍🦯' => 'hassali odam: 1–2-teri turi',
     '🧑🏼‍🦯' => 'hassali odam: 3-teri turi',
     '🧑🏽‍🦯' => 'hassali odam: 4-teri turi',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'yugurayotgan ayol: 4-teri turi',
     '🏃🏾‍♀' => 'yugurayotgan ayol: 5-teri turi',
     '🏃🏿‍♀' => 'yugurayotgan ayol: 6-teri turi',
-    '🏃🏻‍➡' => 'o‘ngga qaragan yuguruvchi',
-    '🏃🏼‍➡' => 'o‘ngga qaragan yuguruvchi',
-    '🏃🏽‍➡' => 'o‘ngga qaragan yuguruvchi',
-    '🏃🏾‍➡' => 'o‘ngga qaragan yuguruvchi',
-    '🏃🏿‍➡' => 'o‘ngga qaragan yuguruvchi',
+    '🏃🏻‍➡' => 'yuguruvchi: 1–2-teri turi o‘ngga qaragan',
+    '🏃🏼‍➡' => 'yuguruvchi: 3-teri turi o‘ngga qaragan',
+    '🏃🏽‍➡' => 'yuguruvchi: 4-teri turi o‘ngga qaragan',
+    '🏃🏾‍➡' => 'yuguruvchi: 5-teri turi o‘ngga qaragan',
+    '🏃🏿‍➡' => 'yuguruvchi: 6-teri turi o‘ngga qaragan',
+    '👯🏻‍♀' => 'quyon quloqli ayollar: 1–2-teri turi',
+    '👯🏼‍♀' => 'quyon quloqli ayollar: 3-teri turi',
+    '👯🏽‍♀' => 'quyon quloqli ayollar: 4-teri turi',
+    '👯🏾‍♀' => 'quyon quloqli ayollar: 5-teri turi',
+    '👯🏿‍♀' => 'quyon quloqli ayollar: 6-teri turi',
+    '👯🏻‍♂' => 'quyon quloqli erkaklar: 1–2-teri turi',
+    '👯🏼‍♂' => 'quyon quloqli erkaklar: 3-teri turi',
+    '👯🏽‍♂' => 'quyon quloqli erkaklar: 4-teri turi',
+    '👯🏾‍♂' => 'quyon quloqli erkaklar: 5-teri turi',
+    '👯🏿‍♂' => 'quyon quloqli erkaklar: 6-teri turi',
     '🧖🏻‍♂' => 'hammomdagi erkak: 1–2-teri turi',
     '🧖🏼‍♂' => 'hammomdagi erkak: 3-teri turi',
     '🧖🏽‍♂' => 'hammomdagi erkak: 4-teri turi',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'ayol o‘mbaloq oshmoqda: 4-teri turi',
     '🤸🏾‍♀' => 'ayol o‘mbaloq oshmoqda: 5-teri turi',
     '🤸🏿‍♀' => 'ayol o‘mbaloq oshmoqda: 6-teri turi',
+    '🤼🏻‍♀' => 'kurashayotgan ayol: 1–2-teri turi',
+    '🤼🏼‍♀' => 'kurashayotgan ayol: 3-teri turi',
+    '🤼🏽‍♀' => 'kurashayotgan ayol: 4-teri turi',
+    '🤼🏾‍♀' => 'kurashayotgan ayol: 5-teri turi',
+    '🤼🏿‍♀' => 'kurashayotgan ayol: 6-teri turi',
+    '🤼🏻‍♂' => 'kurashayotgan erkak: 1–2-teri turi',
+    '🤼🏼‍♂' => 'kurashayotgan erkak: 3-teri turi',
+    '🤼🏽‍♂' => 'kurashayotgan erkak: 4-teri turi',
+    '🤼🏾‍♂' => 'kurashayotgan erkak: 5-teri turi',
+    '🤼🏿‍♂' => 'kurashayotgan erkak: 6-teri turi',
     '🤽🏻‍♂' => 'erkak suv polosi o‘ynamoqda: 1–2-teri turi',
     '🤽🏼‍♂' => 'erkak suv polosi o‘ynamoqda: 3-teri turi',
     '🤽🏽‍♂' => 'erkak suv polosi o‘ynamoqda: 4-teri turi',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'ayol: jingalak soch',
     '👩‍🦳' => 'ayol: oqargan soch',
     '👩‍🦲' => 'ayol: kal',
-    '🚶‍➡' => 'o‘ngga qaragan piyoda odam',
-    '🧎‍➡' => 'o‘ngga qaragan tiz choʻkkan odam',
-    '🏃‍➡' => 'o‘ngga qaragan yuguruvchi',
+    '🚶‍➡' => 'piyoda odam: o‘ngga qaragan',
+    '🧎‍➡' => 'tiz choʻkkan odam: o‘ngga qaragan',
+    '🏃‍➡' => 'yuguruvchi: o‘ngga qaragan',
     '👨‍👦' => 'oila: erkak o‘g‘il bola',
     '👨‍👧' => 'oila: erkak qiz bola',
     '👩‍👦' => 'oila: ayol o‘g‘il bola',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'nogironlik aravachasidagi ayol',
     '🏃‍♂' => 'yugurayotgan erkak',
     '🏃‍♀' => 'yugurayotgan ayol',
+    '🧑‍🩰' => 'baletchi',
     '👯‍♂' => 'quyon quloqli erkaklar',
     '👯‍♀' => 'quyon quloqli ayollar',
     '🧖‍♂' => 'hammomdagi erkak',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'kostyum kiygan muallaq holatdagi kishi: 4-teri turi',
     '🕴🏾' => 'kostyum kiygan muallaq holatdagi kishi: 5-teri turi',
     '🕴🏿' => 'kostyum kiygan muallaq holatdagi kishi: 6-teri turi',
+    '👯🏻' => 'quyon quloqli odamlar: 1–2-teri turi',
+    '👯🏼' => 'quyon quloqli odamlar: 3-teri turi',
+    '👯🏽' => 'quyon quloqli odamlar: 4-teri turi',
+    '👯🏾' => 'quyon quloqli odamlar: 5-teri turi',
+    '👯🏿' => 'quyon quloqli odamlar: 6-teri turi',
     '🧖🏻' => 'hammomdagi odam: 1–2-teri turi',
     '🧖🏼' => 'hammomdagi odam: 3-teri turi',
     '🧖🏽' => 'hammomdagi odam: 4-teri turi',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'akrobatik mashq: 4-teri turi',
     '🤸🏾' => 'akrobatik mashq: 5-teri turi',
     '🤸🏿' => 'akrobatik mashq: 6-teri turi',
+    '🤼🏻' => 'kurashchilar: 1–2-teri turi',
+    '🤼🏼' => 'kurashchilar: 3-teri turi',
+    '🤼🏽' => 'kurashchilar: 4-teri turi',
+    '🤼🏾' => 'kurashchilar: 5-teri turi',
+    '🤼🏿' => 'kurashchilar: 6-teri turi',
     '🤽🏻' => 'suv polosi: 1–2-teri turi',
     '🤽🏼' => 'suv polosi: 3-teri turi',
     '🤽🏽' => 'suv polosi: 4-teri turi',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'bayroq: Xitoy',
     '🇨🇴' => 'bayroq: Kolumbiya',
     '🇨🇵' => 'bayroq: Klipperton oroli',
+    '🇨🇶' => 'bayroq: Sark',
     '🇨🇷' => 'bayroq: Kosta-Rika',
     '🇨🇺' => 'bayroq: Kuba',
     '🇨🇻' => 'bayroq: Kabo-Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => '4-teri turi',
     '🏾' => '5-teri turi',
     '🏿' => '6-teri turi',
-    '🪉' => 'arfa',
-    '🪏' => 'kurakcha',
-    '🪾' => 'bargsiz daraxt',
-    '🫆' => 'barmoq izi',
-    '🫜' => 'ildiz shaklidagi sabzavotlar',
-    '🫟' => 'sachratish',
-    '🫩' => 'ko‘zlar tagi shishgan yuz',
     '😀' => 'tirjaygan yuz',
     '😃' => 'og‘zini katta ochib kulayotgan yuz',
     '😄' => 'tabassum, og‘iz ochiq, ko‘zlar qisilgan',
@@ -2450,6 +2600,7 @@
     '😪' => 'uyqusiragan yuz',
     '🤤' => 'so‘lagi oqayotgan',
     '😴' => 'uxlayotgan yuz',
+    '🫩' => 'ko‘zlar tagi shishgan yuz',
     '😷' => 'tibbiy niqob taqqan yuz',
     '🤒' => 'harorat o‘lchagich tutgan yuz',
     '🤕' => 'boshi bint bilan o‘ralgan yuz',
@@ -2476,6 +2627,7 @@
     '😯' => 'hayratlanayotgan yuz',
     '😲' => 'hayratlangan yuz',
     '😳' => 'yuzi qizargan',
+    '🫪' => 'qiyshiq yuz',
     '🥺' => 'yalingan yuz',
     '🥹' => 'koʻz yoshi oqayotgan yuz',
     '😦' => 'og‘zini katta ochgan, qovog‘i solingan yuz',
@@ -2547,6 +2699,7 @@
     '💋' => 'bo‘sa tamg‘asi',
     '💯' => 'yuz ball',
     '💢' => 'jahl belgisi',
+    '🫯' => 'janjal',
     '💥' => 'to‘qnashuv',
     '💫' => 'bosh aylanishi',
     '💦' => 'ter tomchilari',
@@ -2670,6 +2823,7 @@
     '🧞' => 'jin',
     '🧟' => 'zombi',
     '🧌' => 'troll',
+    '🫈' => 'serjun maxluq',
     '💆' => 'yuzni uqalash',
     '💇' => 'soch qisqartirish',
     '🚶' => 'piyoda odam',
@@ -2713,6 +2867,7 @@
     '🫂' => 'quchoqlashayotgan odamlar',
     '👪' => 'oila',
     '👣' => 'oyoq izlari',
+    '🫆' => 'barmoq izi',
     '🦰' => 'malla soch',
     '🦱' => 'jingalak soch',
     '🦳' => 'oqargan soch',
@@ -2812,6 +2967,7 @@
     '🐳' => 'favvora hosil qilayotgan kit',
     '🐋' => 'kit',
     '🐬' => 'delfin',
+    '🫍' => 'orka',
     '🦭' => 'dengiz mushugi',
     '🐟' => 'baliq',
     '🐠' => 'tropik baliq',
@@ -2821,6 +2977,11 @@
     '🐚' => 'spiral qobiq',
     '🪸' => 'marjon',
     '🪼' => 'meduza',
+    '🦀' => 'qisqichbaqa',
+    '🦞' => 'omar',
+    '🦐' => 'mayda qisqichbaqa',
+    '🦑' => 'kalmar',
+    '🦪' => 'chigʻanoq',
     '🐌' => 'shilliqqurt',
     '🦋' => 'kapalak',
     '🐛' => 'taxtakana',
@@ -2865,6 +3026,7 @@
     '🪹' => 'boʻsh in',
     '🪺' => 'tuxumlar bor in',
     '🍄' => 'qo‘ziqorin',
+    '🪾' => 'bargsiz daraxt',
     '🍇' => 'uzum',
     '🍈' => 'qovun',
     '🍉' => 'tarvuz',
@@ -2901,6 +3063,7 @@
     '🌰' => 'kashtan yong‘og‘i',
     '🫚' => 'zanjabil ildizi',
     '🫛' => 'yashil loviya',
+    '🫜' => 'ildiz shaklidagi sabzavotlar',
     '🍞' => 'non',
     '🥐' => 'kruassan',
     '🥖' => 'baget',
@@ -2952,11 +3115,6 @@
     '🥟' => 'chuchvara',
     '🥠' => 'taqdir pechenyesi',
     '🥡' => 'taom olib ketish uchun quti',
-    '🦀' => 'qisqichbaqa',
-    '🦞' => 'omar',
-    '🦐' => 'mayda qisqichbaqa',
-    '🦑' => 'kalmar',
-    '🦪' => 'chigʻanoq',
     '🍦' => 'yumshoq muzqaymoq',
     '🍧' => 'qirilgan muz',
     '🍨' => 'muzqaymoq',
@@ -3007,6 +3165,7 @@
     '🧭' => 'kompas',
     '🏔' => 'qor qoplagan tog‘',
     '⛰' => 'tog‘',
+    '🛘' => 'ko‘chki',
     '🌋' => 'vulqon',
     '🗻' => 'fuji tog‘i',
     '🏕' => 'tabiat qo‘ynida dam',
@@ -3367,16 +3526,18 @@
     '🎧' => 'quloqlik',
     '📻' => 'radio',
     '🎷' => 'saksofon',
+    '🎺' => 'truba',
+    '🪊' => 'trombon',
     '🪗' => 'akkordeon',
     '🎸' => 'gitara',
     '🎹' => 'musiqiy klaviatura',
-    '🎺' => 'truba',
     '🎻' => 'skripka',
     '🪕' => 'banjo',
     '🥁' => 'baraban',
     '🪘' => 'uzun nogʻora',
     '🪇' => 'marakas',
     '🪈' => 'nay',
+    '🪉' => 'arfa',
     '📱' => 'mobil telefon',
     '📲' => 'mobil telefon va strelka',
     '☎' => 'telefon',
@@ -3430,8 +3591,9 @@
     '📑' => 'sahifalardagi xatcho‘p',
     '🔖' => 'xatcho‘p',
     '🏷' => 'yorliq',
-    '💰' => 'pul xalta',
     '🪙' => 'tanga',
+    '💰' => 'pul xalta',
+    '🪎' => 'xazina sandigʻi',
     '💴' => 'iyena banknotasi',
     '💵' => 'dollar banknotasi',
     '💶' => 'yevro banknotasi',
@@ -3514,6 +3676,7 @@
     '🧰' => 'asbob-uskuna qutisi',
     '🧲' => 'magnit',
     '🪜' => 'narvon',
+    '🪏' => 'kurakcha',
     '⚗' => 'haydash kimyoviy shishasi',
     '🧪' => 'probirka',
     '🧫' => 'petri idishi',
@@ -3697,6 +3860,7 @@
     '✴' => 'sakkiz burchakli yulduz',
     '❇' => 'uchqun',
     '™' => 'savdo belgisi',
+    '🫟' => 'sachratish',
     '🔠' => 'katta lotin harflarini kiritish',
     '🔡' => 'kichik lotin harflarini kiritish',
     '🔢' => 'raqam kiritish',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-vi.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-vi.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-vi.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-vi.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'nụ hôn: phụ nữ, phụ nữ, màu da tối, màu da trung bình',
     '👩🏿‍❤‍💋‍👩🏾' => 'nụ hôn: phụ nữ, phụ nữ, màu da tối, màu da tối trung bình',
     '👩🏿‍❤‍💋‍👩🏿' => 'nụ hôn: phụ nữ, phụ nữ, màu da tối',
+    '🧑🏻‍🫯‍🧑🏼' => 'người chơi vật: màu da sáng, màu da sáng trung bình',
+    '🧑🏻‍🫯‍🧑🏽' => 'người chơi vật: màu da sáng, màu da trung bình',
+    '🧑🏻‍🫯‍🧑🏾' => 'người chơi vật: màu da sáng, màu da tối trung bình',
+    '🧑🏻‍🫯‍🧑🏿' => 'người chơi vật: màu da sáng, màu da tối',
+    '🧑🏼‍🫯‍🧑🏻' => 'người chơi vật: màu da sáng trung bình, màu da sáng',
+    '🧑🏼‍🫯‍🧑🏽' => 'người chơi vật: màu da sáng trung bình, màu da trung bình',
+    '🧑🏼‍🫯‍🧑🏾' => 'người chơi vật: màu da sáng trung bình, màu da tối trung bình',
+    '🧑🏼‍🫯‍🧑🏿' => 'người chơi vật: màu da sáng trung bình, màu da tối',
+    '🧑🏽‍🫯‍🧑🏻' => 'người chơi vật: màu da trung bình, màu da sáng',
+    '🧑🏽‍🫯‍🧑🏼' => 'người chơi vật: màu da trung bình, màu da sáng trung bình',
+    '🧑🏽‍🫯‍🧑🏾' => 'người chơi vật: màu da trung bình, màu da tối trung bình',
+    '🧑🏽‍🫯‍🧑🏿' => 'người chơi vật: màu da trung bình, màu da tối',
+    '🧑🏾‍🫯‍🧑🏻' => 'người chơi vật: màu da tối trung bình, màu da sáng',
+    '🧑🏾‍🫯‍🧑🏼' => 'người chơi vật: màu da tối trung bình, màu da sáng trung bình',
+    '🧑🏾‍🫯‍🧑🏽' => 'người chơi vật: màu da tối trung bình, màu da trung bình',
+    '🧑🏾‍🫯‍🧑🏿' => 'người chơi vật: màu da tối trung bình, màu da tối',
+    '🧑🏿‍🫯‍🧑🏻' => 'người chơi vật: màu da tối, màu da sáng',
+    '🧑🏿‍🫯‍🧑🏼' => 'người chơi vật: màu da tối, màu da sáng trung bình',
+    '🧑🏿‍🫯‍🧑🏽' => 'người chơi vật: màu da tối, màu da trung bình',
+    '🧑🏿‍🫯‍🧑🏾' => 'người chơi vật: màu da tối, màu da tối trung bình',
     '🧑🏻‍❤‍🧑🏼' => 'cặp đôi với trái tim: người, người, màu da sáng, màu da sáng trung bình',
     '🧑🏻‍❤‍🧑🏽' => 'cặp đôi với trái tim: người, người, màu da sáng, màu da trung bình',
     '🧑🏻‍❤‍🧑🏾' => 'cặp đôi với trái tim: người, người, màu da sáng, màu da tối trung bình',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'cặp đôi với trái tim: người, người, màu da tối, màu da sáng trung bình',
     '🧑🏿‍❤‍🧑🏽' => 'cặp đôi với trái tim: người, người, màu da tối, màu da trung bình',
     '🧑🏿‍❤‍🧑🏾' => 'cặp đôi với trái tim: người, người, màu da tối, màu da tối trung bình',
+    '🧑🏻‍🐰‍🧑🏼' => 'những người đeo tai thỏ: màu da sáng, màu da sáng trung bình',
+    '🧑🏻‍🐰‍🧑🏽' => 'những người đeo tai thỏ: màu da sáng, màu da trung bình',
+    '🧑🏻‍🐰‍🧑🏾' => 'những người đeo tai thỏ: màu da sáng, màu da tối trung bình',
+    '🧑🏻‍🐰‍🧑🏿' => 'những người đeo tai thỏ: màu da sáng, màu da tối',
+    '🧑🏼‍🐰‍🧑🏻' => 'những người đeo tai thỏ: màu da sáng trung bình, màu da sáng',
+    '🧑🏼‍🐰‍🧑🏽' => 'những người đeo tai thỏ: màu da sáng trung bình, màu da trung bình',
+    '🧑🏼‍🐰‍🧑🏾' => 'những người đeo tai thỏ: màu da sáng trung bình, màu da tối trung bình',
+    '🧑🏼‍🐰‍🧑🏿' => 'những người đeo tai thỏ: màu da sáng trung bình, màu da tối',
+    '🧑🏽‍🐰‍🧑🏻' => 'những người đeo tai thỏ: màu da trung bình, màu da sáng',
+    '🧑🏽‍🐰‍🧑🏼' => 'những người đeo tai thỏ: màu da trung bình, màu da sáng trung bình',
+    '🧑🏽‍🐰‍🧑🏾' => 'những người đeo tai thỏ: màu da trung bình, màu da tối trung bình',
+    '🧑🏽‍🐰‍🧑🏿' => 'những người đeo tai thỏ: màu da trung bình, màu da tối',
+    '🧑🏾‍🐰‍🧑🏻' => 'những người đeo tai thỏ: màu da tối trung bình, màu da sáng',
+    '🧑🏾‍🐰‍🧑🏼' => 'những người đeo tai thỏ: màu da tối trung bình, màu da sáng trung bình',
+    '🧑🏾‍🐰‍🧑🏽' => 'những người đeo tai thỏ: màu da tối trung bình, màu da trung bình',
+    '🧑🏾‍🐰‍🧑🏿' => 'những người đeo tai thỏ: màu da tối trung bình, màu da tối',
+    '🧑🏿‍🐰‍🧑🏻' => 'những người đeo tai thỏ: màu da tối, màu da sáng',
+    '🧑🏿‍🐰‍🧑🏼' => 'những người đeo tai thỏ: màu da tối, màu da sáng trung bình',
+    '🧑🏿‍🐰‍🧑🏽' => 'những người đeo tai thỏ: màu da tối, màu da trung bình',
+    '🧑🏿‍🐰‍🧑🏾' => 'những người đeo tai thỏ: màu da tối, màu da tối trung bình',
+    '👨🏻‍🫯‍👨🏼' => 'những người đàn ông chơi vật: màu da sáng, màu da sáng trung bình',
+    '👨🏻‍🫯‍👨🏽' => 'những người đàn ông chơi vật: màu da sáng, màu da trung bình',
+    '👨🏻‍🫯‍👨🏾' => 'những người đàn ông chơi vật: màu da sáng, màu da tối trung bình',
+    '👨🏻‍🫯‍👨🏿' => 'những người đàn ông chơi vật: màu da sáng, màu da tối',
+    '👨🏼‍🫯‍👨🏻' => 'những người đàn ông chơi vật: màu da sáng trung bình, màu da sáng',
+    '👨🏼‍🫯‍👨🏽' => 'những người đàn ông chơi vật: màu da sáng trung bình, màu da trung bình',
+    '👨🏼‍🫯‍👨🏾' => 'những người đàn ông chơi vật: màu da sáng trung bình, màu da tối trung bình',
+    '👨🏼‍🫯‍👨🏿' => 'những người đàn ông chơi vật: màu da sáng trung bình, màu da tối',
+    '👨🏽‍🫯‍👨🏻' => 'những người đàn ông chơi vật: màu da trung bình, màu da sáng',
+    '👨🏽‍🫯‍👨🏼' => 'những người đàn ông chơi vật: màu da trung bình, màu da sáng trung bình',
+    '👨🏽‍🫯‍👨🏾' => 'những người đàn ông chơi vật: màu da trung bình, màu da tối trung bình',
+    '👨🏽‍🫯‍👨🏿' => 'những người đàn ông chơi vật: màu da trung bình, màu da tối',
+    '👨🏾‍🫯‍👨🏻' => 'những người đàn ông chơi vật: màu da tối trung bình, màu da sáng',
+    '👨🏾‍🫯‍👨🏼' => 'những người đàn ông chơi vật: màu da tối trung bình, màu da sáng trung bình',
+    '👨🏾‍🫯‍👨🏽' => 'những người đàn ông chơi vật: màu da tối trung bình, màu da trung bình',
+    '👨🏾‍🫯‍👨🏿' => 'những người đàn ông chơi vật: màu da tối trung bình, màu da tối',
+    '👨🏿‍🫯‍👨🏻' => 'những người đàn ông chơi vật: màu da tối, màu da sáng',
+    '👨🏿‍🫯‍👨🏼' => 'những người đàn ông chơi vật: màu da tối, màu da sáng trung bình',
+    '👨🏿‍🫯‍👨🏽' => 'những người đàn ông chơi vật: màu da tối, màu da trung bình',
+    '👨🏿‍🫯‍👨🏾' => 'những người đàn ông chơi vật: màu da tối, màu da tối trung bình',
     '👨🏻‍❤‍👨🏻' => 'cặp đôi với trái tim: đàn ông, đàn ông, màu da sáng',
     '👨🏻‍❤‍👨🏼' => 'cặp đôi với trái tim: đàn ông, đàn ông, màu da sáng, màu da sáng trung bình',
     '👨🏻‍❤‍👨🏽' => 'cặp đôi với trái tim: đàn ông, đàn ông, màu da sáng, màu da trung bình',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'cặp đôi với trái tim: đàn ông, đàn ông, màu da tối, màu da trung bình',
     '👨🏿‍❤‍👨🏾' => 'cặp đôi với trái tim: đàn ông, đàn ông, màu da tối, màu da tối trung bình',
     '👨🏿‍❤‍👨🏿' => 'cặp đôi với trái tim: đàn ông, đàn ông, màu da tối',
+    '👨🏻‍🐰‍👨🏼' => 'những người đàn ông đeo tai thỏ: màu da sáng, màu da sáng trung bình',
+    '👨🏻‍🐰‍👨🏽' => 'những người đàn ông đeo tai thỏ: màu da sáng, màu da trung bình',
+    '👨🏻‍🐰‍👨🏾' => 'những người đàn ông đeo tai thỏ: màu da sáng, màu da tối trung bình',
+    '👨🏻‍🐰‍👨🏿' => 'những người đàn ông đeo tai thỏ: màu da sáng, màu da tối',
+    '👨🏼‍🐰‍👨🏻' => 'những người đàn ông đeo tai thỏ: màu da sáng trung bình, màu da sáng',
+    '👨🏼‍🐰‍👨🏽' => 'những người đàn ông đeo tai thỏ: màu da sáng trung bình, màu da trung bình',
+    '👨🏼‍🐰‍👨🏾' => 'những người đàn ông đeo tai thỏ: màu da sáng trung bình, màu da tối trung bình',
+    '👨🏼‍🐰‍👨🏿' => 'những người đàn ông đeo tai thỏ: màu da sáng trung bình, màu da tối',
+    '👨🏽‍🐰‍👨🏻' => 'những người đàn ông đeo tai thỏ: màu da trung bình, màu da sáng',
+    '👨🏽‍🐰‍👨🏼' => 'những người đàn ông đeo tai thỏ: màu da trung bình, màu da sáng trung bình',
+    '👨🏽‍🐰‍👨🏾' => 'những người đàn ông đeo tai thỏ: màu da trung bình, màu da tối trung bình',
+    '👨🏽‍🐰‍👨🏿' => 'những người đàn ông đeo tai thỏ: màu da trung bình, màu da tối',
+    '👨🏾‍🐰‍👨🏻' => 'những người đàn ông đeo tai thỏ: màu da tối trung bình, màu da sáng',
+    '👨🏾‍🐰‍👨🏼' => 'những người đàn ông đeo tai thỏ: màu da tối trung bình, màu da sáng trung bình',
+    '👨🏾‍🐰‍👨🏽' => 'những người đàn ông đeo tai thỏ: màu da tối trung bình, màu da trung bình',
+    '👨🏾‍🐰‍👨🏿' => 'những người đàn ông đeo tai thỏ: màu da tối trung bình, màu da tối',
+    '👨🏿‍🐰‍👨🏻' => 'những người đàn ông đeo tai thỏ: màu da tối, màu da sáng',
+    '👨🏿‍🐰‍👨🏼' => 'những người đàn ông đeo tai thỏ: màu da tối, màu da sáng trung bình',
+    '👨🏿‍🐰‍👨🏽' => 'những người đàn ông đeo tai thỏ: màu da tối, màu da trung bình',
+    '👨🏿‍🐰‍👨🏾' => 'những người đàn ông đeo tai thỏ: màu da tối, màu da tối trung bình',
+    '👩🏻‍🫯‍👩🏼' => 'những người phụ nữ chơi vật: màu da sáng, màu da sáng trung bình',
+    '👩🏻‍🫯‍👩🏽' => 'những người phụ nữ chơi vật: màu da sáng, màu da trung bình',
+    '👩🏻‍🫯‍👩🏾' => 'những người phụ nữ chơi vật: màu da sáng, màu da tối trung bình',
+    '👩🏻‍🫯‍👩🏿' => 'những người phụ nữ chơi vật: màu da sáng, màu da tối',
+    '👩🏼‍🫯‍👩🏻' => 'những người phụ nữ chơi vật: màu da sáng trung bình, màu da sáng',
+    '👩🏼‍🫯‍👩🏽' => 'những người phụ nữ chơi vật: màu da sáng trung bình, màu da trung bình',
+    '👩🏼‍🫯‍👩🏾' => 'những người phụ nữ chơi vật: màu da sáng trung bình, màu da tối trung bình',
+    '👩🏼‍🫯‍👩🏿' => 'những người phụ nữ chơi vật: màu da sáng trung bình, màu da tối',
+    '👩🏽‍🫯‍👩🏻' => 'những người phụ nữ chơi vật: màu da trung bình, màu da sáng',
+    '👩🏽‍🫯‍👩🏼' => 'những người phụ nữ chơi vật: màu da trung bình, màu da sáng trung bình',
+    '👩🏽‍🫯‍👩🏾' => 'những người phụ nữ chơi vật: màu da trung bình, màu da tối trung bình',
+    '👩🏽‍🫯‍👩🏿' => 'những người phụ nữ chơi vật: màu da trung bình, màu da tối',
+    '👩🏾‍🫯‍👩🏻' => 'những người phụ nữ chơi vật: màu da tối trung bình, màu da sáng',
+    '👩🏾‍🫯‍👩🏼' => 'những người phụ nữ chơi vật: màu da tối trung bình, màu da sáng trung bình',
+    '👩🏾‍🫯‍👩🏽' => 'những người phụ nữ chơi vật: màu da tối trung bình, màu da trung bình',
+    '👩🏾‍🫯‍👩🏿' => 'những người phụ nữ chơi vật: màu da tối trung bình, màu da tối',
+    '👩🏿‍🫯‍👩🏻' => 'những người phụ nữ chơi vật: màu da tối, màu da sáng',
+    '👩🏿‍🫯‍👩🏼' => 'những người phụ nữ chơi vật: màu da tối, màu da sáng trung bình',
+    '👩🏿‍🫯‍👩🏽' => 'những người phụ nữ chơi vật: màu da tối, màu da trung bình',
+    '👩🏿‍🫯‍👩🏾' => 'những người phụ nữ chơi vật: màu da tối, màu da tối trung bình',
     '👩🏻‍❤‍👨🏻' => 'cặp đôi với trái tim: phụ nữ, đàn ông, màu da sáng',
     '👩🏻‍❤‍👨🏼' => 'cặp đôi với trái tim: phụ nữ, đàn ông, màu da sáng, màu da sáng trung bình',
     '👩🏻‍❤‍👨🏽' => 'cặp đôi với trái tim: phụ nữ, đàn ông, màu da sáng, màu da trung bình',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'cặp đôi với trái tim: phụ nữ, phụ nữ, màu da tối, màu da trung bình',
     '👩🏿‍❤‍👩🏾' => 'cặp đôi với trái tim: phụ nữ, phụ nữ, màu da tối, màu da tối trung bình',
     '👩🏿‍❤‍👩🏿' => 'cặp đôi với trái tim: phụ nữ, phụ nữ, màu da tối',
+    '👩🏻‍🐰‍👩🏼' => 'những người phụ nữ đeo tai thỏ: màu da sáng, màu da sáng trung bình',
+    '👩🏻‍🐰‍👩🏽' => 'những người phụ nữ đeo tai thỏ: màu da sáng, màu da trung bình',
+    '👩🏻‍🐰‍👩🏾' => 'những người phụ nữ đeo tai thỏ: màu da sáng, màu da tối trung bình',
+    '👩🏻‍🐰‍👩🏿' => 'những người phụ nữ đeo tai thỏ: màu da sáng, màu da tối',
+    '👩🏼‍🐰‍👩🏻' => 'những người phụ nữ đeo tai thỏ: màu da sáng trung bình, màu da sáng',
+    '👩🏼‍🐰‍👩🏽' => 'những người phụ nữ đeo tai thỏ: màu da sáng trung bình, màu da trung bình',
+    '👩🏼‍🐰‍👩🏾' => 'những người phụ nữ đeo tai thỏ: màu da sáng trung bình, màu da tối trung bình',
+    '👩🏼‍🐰‍👩🏿' => 'những người phụ nữ đeo tai thỏ: màu da sáng trung bình, màu da tối',
+    '👩🏽‍🐰‍👩🏻' => 'những người phụ nữ đeo tai thỏ: màu da trung bình, màu da sáng',
+    '👩🏽‍🐰‍👩🏼' => 'những người phụ nữ đeo tai thỏ: màu da trung bình, màu da sáng trung bình',
+    '👩🏽‍🐰‍👩🏾' => 'những người phụ nữ đeo tai thỏ: màu da trung bình, màu da tối trung bình',
+    '👩🏽‍🐰‍👩🏿' => 'những người phụ nữ đeo tai thỏ: màu da trung bình, màu da tối',
+    '👩🏾‍🐰‍👩🏻' => 'những người phụ nữ đeo tai thỏ: màu da tối trung bình, màu da sáng',
+    '👩🏾‍🐰‍👩🏼' => 'những người phụ nữ đeo tai thỏ: màu da tối trung bình, màu da sáng trung bình',
+    '👩🏾‍🐰‍👩🏽' => 'những người phụ nữ đeo tai thỏ: màu da tối trung bình, màu da trung bình',
+    '👩🏾‍🐰‍👩🏿' => 'những người phụ nữ đeo tai thỏ: màu da tối trung bình, màu da tối',
+    '👩🏿‍🐰‍👩🏻' => 'những người phụ nữ đeo tai thỏ: màu da tối, màu da sáng',
+    '👩🏿‍🐰‍👩🏼' => 'những người phụ nữ đeo tai thỏ: màu da tối, màu da sáng trung bình',
+    '👩🏿‍🐰‍👩🏽' => 'những người phụ nữ đeo tai thỏ: màu da tối, màu da trung bình',
+    '👩🏿‍🐰‍👩🏾' => 'những người phụ nữ đeo tai thỏ: màu da tối, màu da tối trung bình',
     '🧑🏻‍🤝‍🧑🏻' => 'hai người nắm tay: màu da sáng',
     '🧑🏻‍🤝‍🧑🏼' => 'hai người nắm tay: màu da sáng, màu da sáng trung bình',
     '🧑🏻‍🤝‍🧑🏽' => 'hai người nắm tay: màu da sáng, màu da trung bình',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'cờ: Scotland',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'cờ: Xứ Wales',
     '🧑‍🧑‍🧒‍🧒' => 'gia đình: người lớn, người lớn, trẻ em, trẻ em',
-    '🚶🏻‍♀‍➡' => 'người phụ nữ đi bộ hướng sang phải',
-    '🚶🏼‍♀‍➡' => 'người phụ nữ đi bộ hướng sang phải',
-    '🚶🏽‍♀‍➡' => 'người phụ nữ đi bộ hướng sang phải',
-    '🚶🏾‍♀‍➡' => 'người phụ nữ đi bộ hướng sang phải',
-    '🚶🏿‍♀‍➡' => 'người phụ nữ đi bộ hướng sang phải',
-    '🚶🏻‍♂‍➡' => 'người đàn ông đi bộ hướng sang phải',
-    '🚶🏼‍♂‍➡' => 'người đàn ông đi bộ hướng sang phải',
-    '🚶🏽‍♂‍➡' => 'người đàn ông đi bộ hướng sang phải',
-    '🚶🏾‍♂‍➡' => 'người đàn ông đi bộ hướng sang phải',
-    '🚶🏿‍♂‍➡' => 'người đàn ông đi bộ hướng sang phải',
-    '🧎🏻‍♀‍➡' => 'người phụ nữ quỳ hướng sang phải',
-    '🧎🏼‍♀‍➡' => 'người phụ nữ quỳ hướng sang phải',
-    '🧎🏽‍♀‍➡' => 'người phụ nữ quỳ hướng sang phải',
-    '🧎🏾‍♀‍➡' => 'người phụ nữ quỳ hướng sang phải',
-    '🧎🏿‍♀‍➡' => 'người phụ nữ quỳ hướng sang phải',
-    '🧎🏻‍♂‍➡' => 'người đàn ông quỳ hướng sang phải',
-    '🧎🏼‍♂‍➡' => 'người đàn ông quỳ hướng sang phải',
-    '🧎🏽‍♂‍➡' => 'người đàn ông quỳ hướng sang phải',
-    '🧎🏾‍♂‍➡' => 'người đàn ông quỳ hướng sang phải',
-    '🧎🏿‍♂‍➡' => 'người đàn ông quỳ hướng sang phải',
-    '🧑🏻‍🦯‍➡' => 'người với gậy dò đường hướng sang phải',
-    '🧑🏼‍🦯‍➡' => 'người với gậy dò đường hướng sang phải',
-    '🧑🏽‍🦯‍➡' => 'người với gậy dò đường hướng sang phải',
-    '🧑🏾‍🦯‍➡' => 'người với gậy dò đường hướng sang phải',
-    '🧑🏿‍🦯‍➡' => 'người với gậy dò đường hướng sang phải',
-    '👨🏻‍🦯‍➡' => 'người đàn ông với gậy dò đường hướng sang phải',
-    '👨🏼‍🦯‍➡' => 'người đàn ông với gậy dò đường hướng sang phải',
-    '👨🏽‍🦯‍➡' => 'người đàn ông với gậy dò đường hướng sang phải',
-    '👨🏾‍🦯‍➡' => 'người đàn ông với gậy dò đường hướng sang phải',
-    '👨🏿‍🦯‍➡' => 'người đàn ông với gậy dò đường hướng sang phải',
-    '👩🏻‍🦯‍➡' => 'người phụ nữ với gậy dò đường hướng sang phải',
-    '👩🏼‍🦯‍➡' => 'người phụ nữ với gậy dò đường hướng sang phải',
-    '👩🏽‍🦯‍➡' => 'người phụ nữ với gậy dò đường hướng sang phải',
-    '👩🏾‍🦯‍➡' => 'người phụ nữ với gậy dò đường hướng sang phải',
-    '👩🏿‍🦯‍➡' => 'người phụ nữ với gậy dò đường hướng sang phải',
-    '🧑🏻‍🦼‍➡' => 'người trên xe lăn điện hướng sang phải',
-    '🧑🏼‍🦼‍➡' => 'người trên xe lăn điện hướng sang phải',
-    '🧑🏽‍🦼‍➡' => 'người trên xe lăn điện hướng sang phải',
-    '🧑🏾‍🦼‍➡' => 'người trên xe lăn điện hướng sang phải',
-    '🧑🏿‍🦼‍➡' => 'người trên xe lăn điện hướng sang phải',
-    '👨🏻‍🦼‍➡' => 'người đàn ông trên xe lăn điện hướng sang phải',
-    '👨🏼‍🦼‍➡' => 'người đàn ông trên xe lăn điện hướng sang phải',
-    '👨🏽‍🦼‍➡' => 'người đàn ông trên xe lăn điện hướng sang phải',
-    '👨🏾‍🦼‍➡' => 'người đàn ông trên xe lăn điện hướng sang phải',
-    '👨🏿‍🦼‍➡' => 'người đàn ông trên xe lăn điện hướng sang phải',
-    '👩🏻‍🦼‍➡' => 'người phụ nữ trên xe lăn điện hướng sang phải',
-    '👩🏼‍🦼‍➡' => 'người phụ nữ trên xe lăn điện hướng sang phải',
-    '👩🏽‍🦼‍➡' => 'người phụ nữ trên xe lăn điện hướng sang phải',
-    '👩🏾‍🦼‍➡' => 'người phụ nữ trên xe lăn điện hướng sang phải',
-    '👩🏿‍🦼‍➡' => 'người phụ nữ trên xe lăn điện hướng sang phải',
-    '🧑🏻‍🦽‍➡' => 'người trên xe lăn tay hướng sang phải',
-    '🧑🏼‍🦽‍➡' => 'người trên xe lăn tay hướng sang phải',
-    '🧑🏽‍🦽‍➡' => 'người trên xe lăn tay hướng sang phải',
-    '🧑🏾‍🦽‍➡' => 'người trên xe lăn tay hướng sang phải',
-    '🧑🏿‍🦽‍➡' => 'người trên xe lăn tay hướng sang phải',
-    '👨🏻‍🦽‍➡' => 'người đàn ông trên xe lăn tay hướng sang phải',
-    '👨🏼‍🦽‍➡' => 'người đàn ông trên xe lăn tay hướng sang phải',
-    '👨🏽‍🦽‍➡' => 'người đàn ông trên xe lăn tay hướng sang phải',
-    '👨🏾‍🦽‍➡' => 'người đàn ông trên xe lăn tay hướng sang phải',
-    '👨🏿‍🦽‍➡' => 'người đàn ông trên xe lăn tay hướng sang phải',
-    '👩🏻‍🦽‍➡' => 'người phụ nữ trên xe lăn tay hướng sang phải',
-    '👩🏼‍🦽‍➡' => 'người phụ nữ trên xe lăn tay hướng sang phải',
-    '👩🏽‍🦽‍➡' => 'người phụ nữ trên xe lăn tay hướng sang phải',
-    '👩🏾‍🦽‍➡' => 'người phụ nữ trên xe lăn tay hướng sang phải',
-    '👩🏿‍🦽‍➡' => 'người phụ nữ trên xe lăn tay hướng sang phải',
-    '🏃🏻‍♀‍➡' => 'người phụ nữ đang chạy hướng sang phải',
-    '🏃🏼‍♀‍➡' => 'người phụ nữ đang chạy hướng sang phải',
-    '🏃🏽‍♀‍➡' => 'người phụ nữ đang chạy hướng sang phải',
-    '🏃🏾‍♀‍➡' => 'người phụ nữ đang chạy hướng sang phải',
-    '🏃🏿‍♀‍➡' => 'người phụ nữ đang chạy hướng sang phải',
-    '🏃🏻‍♂‍➡' => 'người đàn ông đang chạy hướng sang phải',
-    '🏃🏼‍♂‍➡' => 'người đàn ông đang chạy hướng sang phải',
-    '🏃🏽‍♂‍➡' => 'người đàn ông đang chạy hướng sang phải',
-    '🏃🏾‍♂‍➡' => 'người đàn ông đang chạy hướng sang phải',
-    '🏃🏿‍♂‍➡' => 'người đàn ông đang chạy hướng sang phải',
+    '🚶🏻‍♀‍➡' => 'người phụ nữ đi bộ: màu da sáng, hướng sang phải',
+    '🚶🏼‍♀‍➡' => 'người phụ nữ đi bộ: màu da sáng trung bình, hướng sang phải',
+    '🚶🏽‍♀‍➡' => 'người phụ nữ đi bộ: màu da trung bình, hướng sang phải',
+    '🚶🏾‍♀‍➡' => 'người phụ nữ đi bộ: màu da tối trung bình, hướng sang phải',
+    '🚶🏿‍♀‍➡' => 'người phụ nữ đi bộ: màu da tối, hướng sang phải',
+    '🚶🏻‍♂‍➡' => 'người đàn ông đi bộ: màu da sáng, hướng sang phải',
+    '🚶🏼‍♂‍➡' => 'người đàn ông đi bộ: màu da sáng trung bình, hướng sang phải',
+    '🚶🏽‍♂‍➡' => 'người đàn ông đi bộ: màu da trung bình, hướng sang phải',
+    '🚶🏾‍♂‍➡' => 'người đàn ông đi bộ: màu da tối trung bình, hướng sang phải',
+    '🚶🏿‍♂‍➡' => 'người đàn ông đi bộ: màu da tối, hướng sang phải',
+    '🧎🏻‍♀‍➡' => 'người phụ nữ quỳ: màu da sáng, hướng sang phải',
+    '🧎🏼‍♀‍➡' => 'người phụ nữ quỳ: màu da sáng trung bình, hướng sang phải',
+    '🧎🏽‍♀‍➡' => 'người phụ nữ quỳ: màu da trung bình, hướng sang phải',
+    '🧎🏾‍♀‍➡' => 'người phụ nữ quỳ: màu da tối trung bình, hướng sang phải',
+    '🧎🏿‍♀‍➡' => 'người phụ nữ quỳ: màu da tối, hướng sang phải',
+    '🧎🏻‍♂‍➡' => 'người đàn ông quỳ: màu da sáng, hướng sang phải',
+    '🧎🏼‍♂‍➡' => 'người đàn ông quỳ: màu da sáng trung bình, hướng sang phải',
+    '🧎🏽‍♂‍➡' => 'người đàn ông quỳ: màu da trung bình, hướng sang phải',
+    '🧎🏾‍♂‍➡' => 'người đàn ông quỳ: màu da tối trung bình, hướng sang phải',
+    '🧎🏿‍♂‍➡' => 'người đàn ông quỳ: màu da tối, hướng sang phải',
+    '🧑🏻‍🦯‍➡' => 'người với gậy dò đường: màu da sáng, hướng sang phải',
+    '🧑🏼‍🦯‍➡' => 'người với gậy dò đường: màu da sáng trung bình, hướng sang phải',
+    '🧑🏽‍🦯‍➡' => 'người với gậy dò đường: màu da trung bình, hướng sang phải',
+    '🧑🏾‍🦯‍➡' => 'người với gậy dò đường: màu da tối trung bình, hướng sang phải',
+    '🧑🏿‍🦯‍➡' => 'người với gậy dò đường: màu da tối, hướng sang phải',
+    '👨🏻‍🦯‍➡' => 'người đàn ông với gậy dò đường: màu da sáng, hướng sang phải',
+    '👨🏼‍🦯‍➡' => 'người đàn ông với gậy dò đường: màu da sáng trung bình, hướng sang phải',
+    '👨🏽‍🦯‍➡' => 'người đàn ông với gậy dò đường: màu da trung bình, hướng sang phải',
+    '👨🏾‍🦯‍➡' => 'người đàn ông với gậy dò đường: màu da tối trung bình, hướng sang phải',
+    '👨🏿‍🦯‍➡' => 'người đàn ông với gậy dò đường: màu da tối, hướng sang phải',
+    '👩🏻‍🦯‍➡' => 'người phụ nữ với gậy dò đường: màu da sáng, hướng sang phải',
+    '👩🏼‍🦯‍➡' => 'người phụ nữ với gậy dò đường: màu da sáng trung bình, hướng sang phải',
+    '👩🏽‍🦯‍➡' => 'người phụ nữ với gậy dò đường: màu da trung bình, hướng sang phải',
+    '👩🏾‍🦯‍➡' => 'người phụ nữ với gậy dò đường: màu da tối trung bình, hướng sang phải',
+    '👩🏿‍🦯‍➡' => 'người phụ nữ với gậy dò đường: màu da tối, hướng sang phải',
+    '🧑🏻‍🦼‍➡' => 'người trên xe lăn điện: màu da sáng, hướng sang phải',
+    '🧑🏼‍🦼‍➡' => 'người trên xe lăn điện: màu da sáng trung bình, hướng sang phải',
+    '🧑🏽‍🦼‍➡' => 'người trên xe lăn điện: màu da trung bình, hướng sang phải',
+    '🧑🏾‍🦼‍➡' => 'người trên xe lăn điện: màu da tối trung bình, hướng sang phải',
+    '🧑🏿‍🦼‍➡' => 'người trên xe lăn điện: màu da tối, hướng sang phải',
+    '👨🏻‍🦼‍➡' => 'người đàn ông trên xe lăn điện: màu da sáng, hướng sang phải',
+    '👨🏼‍🦼‍➡' => 'người đàn ông trên xe lăn điện: màu da sáng trung bình, hướng sang phải',
+    '👨🏽‍🦼‍➡' => 'người đàn ông trên xe lăn điện: màu da trung bình, hướng sang phải',
+    '👨🏾‍🦼‍➡' => 'người đàn ông trên xe lăn điện: màu da tối trung bình, hướng sang phải',
+    '👨🏿‍🦼‍➡' => 'người đàn ông trên xe lăn điện: màu da tối, hướng sang phải',
+    '👩🏻‍🦼‍➡' => 'người phụ nữ trên xe lăn điện: màu da sáng, hướng sang phải',
+    '👩🏼‍🦼‍➡' => 'người phụ nữ trên xe lăn điện: màu da sáng trung bình, hướng sang phải',
+    '👩🏽‍🦼‍➡' => 'người phụ nữ trên xe lăn điện: màu da trung bình, hướng sang phải',
+    '👩🏾‍🦼‍➡' => 'người phụ nữ trên xe lăn điện: màu da tối trung bình, hướng sang phải',
+    '👩🏿‍🦼‍➡' => 'người phụ nữ trên xe lăn điện: màu da tối, hướng sang phải',
+    '🧑🏻‍🦽‍➡' => 'người trên xe lăn tay: màu da sáng, hướng sang phải',
+    '🧑🏼‍🦽‍➡' => 'người trên xe lăn tay: màu da sáng trung bình, hướng sang phải',
+    '🧑🏽‍🦽‍➡' => 'người trên xe lăn tay: màu da trung bình, hướng sang phải',
+    '🧑🏾‍🦽‍➡' => 'người trên xe lăn tay: màu da tối trung bình, hướng sang phải',
+    '🧑🏿‍🦽‍➡' => 'người trên xe lăn tay: màu da tối, hướng sang phải',
+    '👨🏻‍🦽‍➡' => 'người đàn ông trên xe lăn tay: màu da sáng, hướng sang phải',
+    '👨🏼‍🦽‍➡' => 'người đàn ông trên xe lăn tay: màu da sáng trung bình, hướng sang phải',
+    '👨🏽‍🦽‍➡' => 'người đàn ông trên xe lăn tay: màu da trung bình, hướng sang phải',
+    '👨🏾‍🦽‍➡' => 'người đàn ông trên xe lăn tay: màu da tối trung bình, hướng sang phải',
+    '👨🏿‍🦽‍➡' => 'người đàn ông trên xe lăn tay: màu da tối, hướng sang phải',
+    '👩🏻‍🦽‍➡' => 'người phụ nữ trên xe lăn tay: màu da sáng, hướng sang phải',
+    '👩🏼‍🦽‍➡' => 'người phụ nữ trên xe lăn tay: màu da sáng trung bình, hướng sang phải',
+    '👩🏽‍🦽‍➡' => 'người phụ nữ trên xe lăn tay: màu da trung bình, hướng sang phải',
+    '👩🏾‍🦽‍➡' => 'người phụ nữ trên xe lăn tay: màu da tối trung bình, hướng sang phải',
+    '👩🏿‍🦽‍➡' => 'người phụ nữ trên xe lăn tay: màu da tối, hướng sang phải',
+    '🏃🏻‍♀‍➡' => 'người phụ nữ đang chạy: màu da sáng, hướng sang phải',
+    '🏃🏼‍♀‍➡' => 'người phụ nữ đang chạy: màu da sáng trung bình, hướng sang phải',
+    '🏃🏽‍♀‍➡' => 'người phụ nữ đang chạy: màu da trung bình, hướng sang phải',
+    '🏃🏾‍♀‍➡' => 'người phụ nữ đang chạy: màu da tối trung bình, hướng sang phải',
+    '🏃🏿‍♀‍➡' => 'người phụ nữ đang chạy: màu da tối, hướng sang phải',
+    '🏃🏻‍♂‍➡' => 'người đàn ông đang chạy: màu da sáng, hướng sang phải',
+    '🏃🏼‍♂‍➡' => 'người đàn ông đang chạy: màu da sáng trung bình, hướng sang phải',
+    '🏃🏽‍♂‍➡' => 'người đàn ông đang chạy: màu da trung bình, hướng sang phải',
+    '🏃🏾‍♂‍➡' => 'người đàn ông đang chạy: màu da tối trung bình, hướng sang phải',
+    '🏃🏿‍♂‍➡' => 'người đàn ông đang chạy: màu da tối, hướng sang phải',
     '🫱🏻‍🫲🏼' => 'bắt tay: màu da sáng, màu da sáng trung bình',
     '🫱🏻‍🫲🏽' => 'bắt tay: màu da sáng, màu da trung bình',
     '🫱🏻‍🫲🏾' => 'bắt tay: màu da sáng, màu da tối trung bình',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'bắt tay: màu da tối, màu da sáng trung bình',
     '🫱🏿‍🫲🏽' => 'bắt tay: màu da tối, màu da trung bình',
     '🫱🏿‍🫲🏾' => 'bắt tay: màu da tối, màu da tối trung bình',
-    '🚶‍♀‍➡' => 'người phụ nữ đi bộ hướng sang phải',
-    '🚶‍♂‍➡' => 'người đàn ông đi bộ hướng sang phải',
-    '🧎‍♀‍➡' => 'người phụ nữ quỳ hướng sang phải',
-    '🧎‍♂‍➡' => 'người đàn ông quỳ hướng sang phải',
-    '🧑‍🦯‍➡' => 'người với gậy dò đường hướng sang phải',
-    '👨‍🦯‍➡' => 'người đàn ông với gậy dò đường hướng sang phải',
-    '👩‍🦯‍➡' => 'người phụ nữ với gậy dò đường hướng sang phải',
-    '🧑‍🦼‍➡' => 'người trên xe lăn điện hướng sang phải',
-    '👨‍🦼‍➡' => 'người đàn ông trên xe lăn điện hướng sang phải',
-    '👩‍🦼‍➡' => 'người phụ nữ trên xe lăn điện hướng sang phải',
-    '🧑‍🦽‍➡' => 'người trên xe lăn tay hướng sang phải',
-    '👨‍🦽‍➡' => 'người đàn ông trên xe lăn tay hướng sang phải',
-    '👩‍🦽‍➡' => 'người phụ nữ trên xe lăn tay hướng sang phải',
-    '🏃‍♀‍➡' => 'người phụ nữ đang chạy hướng sang phải',
-    '🏃‍♂‍➡' => 'người đàn ông đang chạy hướng sang phải',
+    '🚶‍♀‍➡' => 'người phụ nữ đi bộ: hướng sang phải',
+    '🚶‍♂‍➡' => 'người đàn ông đi bộ: hướng sang phải',
+    '🧎‍♀‍➡' => 'người phụ nữ quỳ: hướng sang phải',
+    '🧎‍♂‍➡' => 'người đàn ông quỳ: hướng sang phải',
+    '🧑‍🦯‍➡' => 'người với gậy dò đường: hướng sang phải',
+    '👨‍🦯‍➡' => 'người đàn ông với gậy dò đường: hướng sang phải',
+    '👩‍🦯‍➡' => 'người phụ nữ với gậy dò đường: hướng sang phải',
+    '🧑‍🦼‍➡' => 'người trên xe lăn điện: hướng sang phải',
+    '👨‍🦼‍➡' => 'người đàn ông trên xe lăn điện: hướng sang phải',
+    '👩‍🦼‍➡' => 'người phụ nữ trên xe lăn điện: hướng sang phải',
+    '🧑‍🦽‍➡' => 'người trên xe lăn tay: hướng sang phải',
+    '👨‍🦽‍➡' => 'người đàn ông trên xe lăn tay: hướng sang phải',
+    '👩‍🦽‍➡' => 'người phụ nữ trên xe lăn tay: hướng sang phải',
+    '🏃‍♀‍➡' => 'người phụ nữ đang chạy: hướng sang phải',
+    '🏃‍♂‍➡' => 'người đàn ông đang chạy: hướng sang phải',
     '👩‍❤‍👨' => 'cặp đôi với trái tim: phụ nữ, đàn ông',
     '👨‍❤‍👨' => 'cặp đôi với trái tim: đàn ông, đàn ông',
     '👩‍❤‍👩' => 'cặp đôi với trái tim: phụ nữ, phụ nữ',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'người: màu da trung bình, hói',
     '🧑🏾‍🦲' => 'người: màu da tối trung bình, hói',
     '🧑🏿‍🦲' => 'người: màu da tối, hói',
+    '🧑🏻‍🩰' => 'vũ công ba lê: màu da sáng',
+    '🧑🏼‍🩰' => 'vũ công ba lê: màu da sáng trung bình',
+    '🧑🏽‍🩰' => 'vũ công ba lê: màu da trung bình',
+    '🧑🏾‍🩰' => 'vũ công ba lê: màu da tối trung bình',
+    '🧑🏿‍🩰' => 'vũ công ba lê: màu da tối',
     '🧔🏻‍♂' => 'người đàn ông có râu: màu da sáng',
     '🧔🏼‍♂' => 'người đàn ông có râu: màu da sáng trung bình',
     '🧔🏽‍♂' => 'người đàn ông có râu: màu da trung bình',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'người phụ nữ đi bộ: màu da trung bình',
     '🚶🏾‍♀' => 'người phụ nữ đi bộ: màu da tối trung bình',
     '🚶🏿‍♀' => 'người phụ nữ đi bộ: màu da tối',
-    '🚶🏻‍➡' => 'người đi bộ hướng sang phải',
-    '🚶🏼‍➡' => 'người đi bộ hướng sang phải',
-    '🚶🏽‍➡' => 'người đi bộ hướng sang phải',
-    '🚶🏾‍➡' => 'người đi bộ hướng sang phải',
-    '🚶🏿‍➡' => 'người đi bộ hướng sang phải',
+    '🚶🏻‍➡' => 'người đi bộ: màu da sáng, hướng sang phải',
+    '🚶🏼‍➡' => 'người đi bộ: màu da sáng trung bình, hướng sang phải',
+    '🚶🏽‍➡' => 'người đi bộ: màu da trung bình, hướng sang phải',
+    '🚶🏾‍➡' => 'người đi bộ: màu da tối trung bình, hướng sang phải',
+    '🚶🏿‍➡' => 'người đi bộ: màu da tối, hướng sang phải',
     '🧍🏻‍♂' => 'người đàn ông đứng: màu da sáng',
     '🧍🏼‍♂' => 'người đàn ông đứng: màu da sáng trung bình',
     '🧍🏽‍♂' => 'người đàn ông đứng: màu da trung bình',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'người phụ nữ quỳ: màu da trung bình',
     '🧎🏾‍♀' => 'người phụ nữ quỳ: màu da tối trung bình',
     '🧎🏿‍♀' => 'người phụ nữ quỳ: màu da tối',
-    '🧎🏻‍➡' => 'người quỳ hướng sang phải',
-    '🧎🏼‍➡' => 'người quỳ hướng sang phải',
-    '🧎🏽‍➡' => 'người quỳ hướng sang phải',
-    '🧎🏾‍➡' => 'người quỳ hướng sang phải',
-    '🧎🏿‍➡' => 'người quỳ hướng sang phải',
+    '🧎🏻‍➡' => 'người quỳ: màu da sáng, hướng sang phải',
+    '🧎🏼‍➡' => 'người quỳ: màu da sáng trung bình, hướng sang phải',
+    '🧎🏽‍➡' => 'người quỳ: màu da trung bình, hướng sang phải',
+    '🧎🏾‍➡' => 'người quỳ: màu da tối trung bình, hướng sang phải',
+    '🧎🏿‍➡' => 'người quỳ: màu da tối, hướng sang phải',
     '🧑🏻‍🦯' => 'người với gậy dò đường: màu da sáng',
     '🧑🏼‍🦯' => 'người với gậy dò đường: màu da sáng trung bình',
     '🧑🏽‍🦯' => 'người với gậy dò đường: màu da trung bình',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'người phụ nữ đang chạy: màu da trung bình',
     '🏃🏾‍♀' => 'người phụ nữ đang chạy: màu da tối trung bình',
     '🏃🏿‍♀' => 'người phụ nữ đang chạy: màu da tối',
-    '🏃🏻‍➡' => 'người chạy hướng sang phải',
-    '🏃🏼‍➡' => 'người chạy hướng sang phải',
-    '🏃🏽‍➡' => 'người chạy hướng sang phải',
-    '🏃🏾‍➡' => 'người chạy hướng sang phải',
-    '🏃🏿‍➡' => 'người chạy hướng sang phải',
+    '🏃🏻‍➡' => 'người chạy: màu da sáng, hướng sang phải',
+    '🏃🏼‍➡' => 'người chạy: màu da sáng trung bình, hướng sang phải',
+    '🏃🏽‍➡' => 'người chạy: màu da trung bình, hướng sang phải',
+    '🏃🏾‍➡' => 'người chạy: màu da tối trung bình, hướng sang phải',
+    '🏃🏿‍➡' => 'người chạy: màu da tối, hướng sang phải',
+    '👯🏻‍♀' => 'những người phụ nữ đeo tai thỏ: màu da sáng',
+    '👯🏼‍♀' => 'những người phụ nữ đeo tai thỏ: màu da sáng trung bình',
+    '👯🏽‍♀' => 'những người phụ nữ đeo tai thỏ: màu da trung bình',
+    '👯🏾‍♀' => 'những người phụ nữ đeo tai thỏ: màu da tối trung bình',
+    '👯🏿‍♀' => 'những người phụ nữ đeo tai thỏ: màu da tối',
+    '👯🏻‍♂' => 'những người đàn ông đeo tai thỏ: màu da sáng',
+    '👯🏼‍♂' => 'những người đàn ông đeo tai thỏ: màu da sáng trung bình',
+    '👯🏽‍♂' => 'những người đàn ông đeo tai thỏ: màu da trung bình',
+    '👯🏾‍♂' => 'những người đàn ông đeo tai thỏ: màu da tối trung bình',
+    '👯🏿‍♂' => 'những người đàn ông đeo tai thỏ: màu da tối',
     '🧖🏻‍♂' => 'người đàn ông ở trong phòng xông hơi: màu da sáng',
     '🧖🏼‍♂' => 'người đàn ông ở trong phòng xông hơi: màu da sáng trung bình',
     '🧖🏽‍♂' => 'người đàn ông ở trong phòng xông hơi: màu da trung bình',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'người phụ nữ nhào lộn: màu da trung bình',
     '🤸🏾‍♀' => 'người phụ nữ nhào lộn: màu da tối trung bình',
     '🤸🏿‍♀' => 'người phụ nữ nhào lộn: màu da tối',
+    '🤼🏻‍♀' => 'những người phụ nữ chơi vật: màu da sáng',
+    '🤼🏼‍♀' => 'những người phụ nữ chơi vật: màu da sáng trung bình',
+    '🤼🏽‍♀' => 'những người phụ nữ chơi vật: màu da trung bình',
+    '🤼🏾‍♀' => 'những người phụ nữ chơi vật: màu da tối trung bình',
+    '🤼🏿‍♀' => 'những người phụ nữ chơi vật: màu da tối',
+    '🤼🏻‍♂' => 'những người đàn ông chơi vật: màu da sáng',
+    '🤼🏼‍♂' => 'những người đàn ông chơi vật: màu da sáng trung bình',
+    '🤼🏽‍♂' => 'những người đàn ông chơi vật: màu da trung bình',
+    '🤼🏾‍♂' => 'những người đàn ông chơi vật: màu da tối trung bình',
+    '🤼🏿‍♂' => 'những người đàn ông chơi vật: màu da tối',
     '🤽🏻‍♂' => 'người đàn ông chơi bóng nước: màu da sáng',
     '🤽🏼‍♂' => 'người đàn ông chơi bóng nước: màu da sáng trung bình',
     '🤽🏽‍♂' => 'người đàn ông chơi bóng nước: màu da trung bình',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'phụ nữ: tóc xoăn',
     '👩‍🦳' => 'phụ nữ: tóc trắng',
     '👩‍🦲' => 'phụ nữ: hói',
-    '🚶‍➡' => 'người đi bộ hướng sang phải',
-    '🧎‍➡' => 'người quỳ hướng sang phải',
-    '🏃‍➡' => 'người chạy hướng sang phải',
+    '🚶‍➡' => 'người đi bộ: hướng sang phải',
+    '🧎‍➡' => 'người quỳ: hướng sang phải',
+    '🏃‍➡' => 'người chạy: hướng sang phải',
     '👨‍👦' => 'gia đình: đàn ông, con trai',
     '👨‍👧' => 'gia đình: đàn ông, con gái',
     '👩‍👦' => 'gia đình: phụ nữ, con trai',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'người phụ nữ trên xe lăn tay',
     '🏃‍♂' => 'người đàn ông đang chạy',
     '🏃‍♀' => 'người phụ nữ đang chạy',
+    '🧑‍🩰' => 'vũ công ba lê',
     '👯‍♂' => 'những người đàn ông đeo tai thỏ',
     '👯‍♀' => 'những người phụ nữ đeo tai thỏ',
     '🧖‍♂' => 'người đàn ông ở trong phòng xông hơi',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'người đàn ông mặc vest đang bay lên: màu da trung bình',
     '🕴🏾' => 'người đàn ông mặc vest đang bay lên: màu da tối trung bình',
     '🕴🏿' => 'người đàn ông mặc vest đang bay lên: màu da tối',
+    '👯🏻' => 'những người đeo tai thỏ: màu da sáng',
+    '👯🏼' => 'những người đeo tai thỏ: màu da sáng trung bình',
+    '👯🏽' => 'những người đeo tai thỏ: màu da trung bình',
+    '👯🏾' => 'những người đeo tai thỏ: màu da tối trung bình',
+    '👯🏿' => 'những người đeo tai thỏ: màu da tối',
     '🧖🏻' => 'người ở trong phòng xông hơi: màu da sáng',
     '🧖🏼' => 'người ở trong phòng xông hơi: màu da sáng trung bình',
     '🧖🏽' => 'người ở trong phòng xông hơi: màu da trung bình',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'người nhào lộn: màu da trung bình',
     '🤸🏾' => 'người nhào lộn: màu da tối trung bình',
     '🤸🏿' => 'người nhào lộn: màu da tối',
+    '🤼🏻' => 'người chơi vật: màu da sáng',
+    '🤼🏼' => 'người chơi vật: màu da sáng trung bình',
+    '🤼🏽' => 'người chơi vật: màu da trung bình',
+    '🤼🏾' => 'người chơi vật: màu da tối trung bình',
+    '🤼🏿' => 'người chơi vật: màu da tối',
     '🤽🏻' => 'người chơi bóng nước: màu da sáng',
     '🤽🏼' => 'người chơi bóng nước: màu da sáng trung bình',
     '🤽🏽' => 'người chơi bóng nước: màu da trung bình',
@@ -2139,7 +2295,7 @@
     '🇦🇷' => 'cờ: Argentina',
     '🇦🇸' => 'cờ: Samoa thuộc Mỹ',
     '🇦🇹' => 'cờ: Áo',
-    '🇦🇺' => 'cờ: Australia',
+    '🇦🇺' => 'cờ: Úc',
     '🇦🇼' => 'cờ: Aruba',
     '🇦🇽' => 'cờ: Quần đảo Åland',
     '🇦🇿' => 'cờ: Azerbaijan',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'cờ: Trung Quốc',
     '🇨🇴' => 'cờ: Colombia',
     '🇨🇵' => 'cờ: Đảo Clipperton',
+    '🇨🇶' => 'cờ: Sark',
     '🇨🇷' => 'cờ: Costa Rica',
     '🇨🇺' => 'cờ: Cuba',
     '🇨🇻' => 'cờ: Cape Verde',
@@ -2390,13 +2547,6 @@
     '🏽' => 'màu da trung bình',
     '🏾' => 'màu da tối trung bình',
     '🏿' => 'màu da tối',
-    '🪉' => 'đàn hạc',
-    '🪏' => 'xẻng',
-    '🪾' => 'cây trụi lá',
-    '🫆' => 'dấu vân tay',
-    '🫜' => 'rau củ',
-    '🫟' => 'bắn tung tóe',
-    '🫩' => 'mặt có túi mắt',
     '😀' => 'mặt cười toe toét',
     '😃' => 'mặt cười miệng há với mắt to',
     '😄' => 'mặt cười miệng há mắt cười',
@@ -2450,6 +2600,7 @@
     '😪' => 'mặt buồn ngủ',
     '🤤' => 'mặt chảy dãi',
     '😴' => 'mặt đang ngủ',
+    '🫩' => 'mặt có túi mắt',
     '😷' => 'mặt đeo khẩu trang y tế',
     '🤒' => 'mặt có miệng ngậm nhiệt kế',
     '🤕' => 'mặt đeo băng đầu',
@@ -2476,6 +2627,7 @@
     '😯' => 'mặt làm thinh',
     '😲' => 'mặt kinh ngạc',
     '😳' => 'mặt đỏ ửng',
+    '🫪' => 'mặt méo',
     '🥺' => 'mặt cầu xin',
     '🥹' => 'mặt kìm nén nước mắt',
     '😦' => 'mặt cau miệng há',
@@ -2539,18 +2691,19 @@
     '💚' => 'trái tim màu lục',
     '💙' => 'trái tim màu lam',
     '🩵' => 'trái tim màu xanh dương nhạt',
-    '💜' => 'trái tim tím',
+    '💜' => 'trái tim màu tím',
     '🤎' => 'trái tim màu nâu',
-    '🖤' => 'tim đen',
+    '🖤' => 'trái tim màu đen',
     '🩶' => 'trái tim màu xám',
     '🤍' => 'trái tim màu trắng',
     '💋' => 'dấu nụ hôn',
     '💯' => '100 điểm',
     '💢' => 'biểu tượng giận giữ',
+    '🫯' => 'đám mây chiến đấu',
     '💥' => 'va chạm',
     '💫' => 'choáng váng',
     '💦' => 'giọt mồ hôi',
-    '💨' => 'chớp nhoáng',
+    '💨' => 'lao đi',
     '🕳' => 'lỗ',
     '💬' => 'bong bóng lời nói',
     '🗨' => 'bong bóng lời nói trái',
@@ -2670,6 +2823,7 @@
     '🧞' => 'thần',
     '🧟' => 'xác chết sống lại',
     '🧌' => 'người khổng lồ độc ác',
+    '🫈' => 'sinh vật nhiều lông',
     '💆' => 'người được xoa bóp mặt',
     '💇' => 'người được cắt tóc',
     '🚶' => 'người đi bộ',
@@ -2713,6 +2867,7 @@
     '🫂' => 'hai người ôm nhau',
     '👪' => 'gia đình',
     '👣' => 'dấu chân',
+    '🫆' => 'dấu vân tay',
     '🦰' => 'tóc đỏ',
     '🦱' => 'tóc xoăn',
     '🦳' => 'tóc trắng',
@@ -2725,12 +2880,12 @@
     '🐕' => 'chó',
     '🦮' => 'chó dẫn đường',
     '🐩' => 'chó xù',
-    '🐺' => 'mặt chó sói',
+    '🐺' => 'chó sói',
     '🦊' => 'cáo',
     '🦝' => 'gấu trúc',
     '🐱' => 'mặt mèo',
     '🐈' => 'mèo',
-    '🦁' => 'mặt sư tử',
+    '🦁' => 'sư tử',
     '🐯' => 'mặt hổ',
     '🐅' => 'hổ',
     '🐆' => 'báo hoa mai',
@@ -2812,6 +2967,7 @@
     '🐳' => 'cá voi đang phun nước',
     '🐋' => 'cá voi',
     '🐬' => 'cá heo',
+    '🫍' => 'cá voi sát thủ',
     '🦭' => 'chó biển',
     '🐟' => 'cá',
     '🐠' => 'cá nhiệt đới',
@@ -2821,6 +2977,11 @@
     '🐚' => 'vỏ xoắn ốc',
     '🪸' => 'san hô',
     '🪼' => 'sứa',
+    '🦀' => 'cua',
+    '🦞' => 'tôm hùm',
+    '🦐' => 'tôm',
+    '🦑' => 'mực ống',
+    '🦪' => 'hàu',
     '🐌' => 'ốc sên',
     '🦋' => 'bướm',
     '🐛' => 'con bọ',
@@ -2865,6 +3026,7 @@
     '🪹' => 'tổ trống rỗng',
     '🪺' => 'tổ có trứng',
     '🍄' => 'nấm',
+    '🪾' => 'cây trụi lá',
     '🍇' => 'chùm nho',
     '🍈' => 'dưa',
     '🍉' => 'dưa hấu',
@@ -2901,6 +3063,7 @@
     '🌰' => 'hạt dẻ',
     '🫚' => 'củ gừng',
     '🫛' => 'đậu Hà Lan',
+    '🫜' => 'rau củ',
     '🍞' => 'bánh mì',
     '🥐' => 'bánh sừng bò',
     '🥖' => 'bánh mì que',
@@ -2952,11 +3115,6 @@
     '🥟' => 'bánh bao',
     '🥠' => 'bánh quy may mắn',
     '🥡' => 'hộp đựng đồ ăn mang đi',
-    '🦀' => 'cua',
-    '🦞' => 'tôm hùm',
-    '🦐' => 'tôm',
-    '🦑' => 'mực ống',
-    '🦪' => 'hàu',
     '🍦' => 'kem mềm',
     '🍧' => 'đá bào',
     '🍨' => 'kem',
@@ -3007,6 +3165,7 @@
     '🧭' => 'la bàn',
     '🏔' => 'đỉnh núi phủ tuyết',
     '⛰' => 'núi',
+    '🛘' => 'lở đất',
     '🌋' => 'núi lửa',
     '🗻' => 'núi Phú Sĩ',
     '🏕' => 'cắm trại',
@@ -3367,16 +3526,18 @@
     '🎧' => 'tai nghe',
     '📻' => 'radio',
     '🎷' => 'kèn saxophone',
+    '🎺' => 'kèn trumpet',
+    '🪊' => 'kèn trombone',
     '🪗' => 'phong cầm',
     '🎸' => 'đàn ghi-ta',
     '🎹' => 'phím đàn',
-    '🎺' => 'kèn trumpet',
     '🎻' => 'đàn violin',
     '🪕' => 'đàn banjo',
     '🥁' => 'trống',
     '🪘' => 'trống dài',
     '🪇' => 'maraca',
     '🪈' => 'sáo',
+    '🪉' => 'đàn hạc',
     '📱' => 'điện thoại di động',
     '📲' => 'điện thoại di động có mũi tên',
     '☎' => 'điện thoại bàn',
@@ -3430,8 +3591,9 @@
     '📑' => 'tab dấu trang',
     '🔖' => 'đánh dấu trang',
     '🏷' => 'nhãn',
-    '💰' => 'túi tiền',
     '🪙' => 'đồng tiền',
+    '💰' => 'túi tiền',
+    '🪎' => 'rương báu',
     '💴' => 'tiền giấy yên',
     '💵' => 'tiền giấy đô la',
     '💶' => 'tiền giấy euro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'hộp dụng cụ',
     '🧲' => 'nam châm',
     '🪜' => 'thang',
+    '🪏' => 'xẻng',
     '⚗' => 'bình chưng cất',
     '🧪' => 'ống nghiệm',
     '🧫' => 'đĩa petri',
@@ -3629,7 +3792,7 @@
     '♌' => 'Sư Tử',
     '♍' => 'Xử Nữ',
     '♎' => 'Thiên Bình',
-    '♏' => 'Thiên Yết',
+    '♏' => 'Bọ Cạp',
     '♐' => 'Nhân Mã',
     '♑' => 'Ma Kết',
     '♒' => 'Bảo Bình',
@@ -3697,6 +3860,7 @@
     '✴' => 'ngôi sao tám cánh',
     '❇' => 'lấp lánh',
     '™' => 'nhãn hiệu',
+    '🫟' => 'bắn tung tóe',
     '🔠' => 'nhập chữ hoa la tinh',
     '🔡' => 'nhập chữ thường la tinh',
     '🔢' => 'nhập số',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-wo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-wo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-wo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-wo.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'fóon: jigéen, jigéen, xeesaayu der bu ñuul, xeesaayu der bu yam',
     '👩🏿‍❤‍💋‍👩🏾' => 'fóon: jigéen, jigéen, xeesaayu der bu ñuul, xeesaayu der bu xawa ñuul',
     '👩🏿‍❤‍💋‍👩🏿' => 'fóon: jigéen, jigéen, xeesaayu der bu ñuul',
+    '🧑🏻‍🫯‍🧑🏼' => 'nit ñuy bëre: xeesaayu der bu woyof, xeesaayu der bu xeereer',
+    '🧑🏻‍🫯‍🧑🏽' => 'nit ñuy bëre: xeesaayu der bu woyof, xeesaayu der bu yam',
+    '🧑🏻‍🫯‍🧑🏾' => 'nit ñuy bëre: xeesaayu der bu woyof, xeesaayu der bu xawa ñuul',
+    '🧑🏻‍🫯‍🧑🏿' => 'nit ñuy bëre: xeesaayu der bu woyof, xeesaayu der bu ñuul',
+    '🧑🏼‍🫯‍🧑🏻' => 'nit ñuy bëre: xeesaayu der bu xeereer, xeesaayu der bu woyof',
+    '🧑🏼‍🫯‍🧑🏽' => 'nit ñuy bëre: xeesaayu der bu xeereer, xeesaayu der bu yam',
+    '🧑🏼‍🫯‍🧑🏾' => 'nit ñuy bëre: xeesaayu der bu xeereer, xeesaayu der bu xawa ñuul',
+    '🧑🏼‍🫯‍🧑🏿' => 'nit ñuy bëre: xeesaayu der bu xeereer, xeesaayu der bu ñuul',
+    '🧑🏽‍🫯‍🧑🏻' => 'nit ñuy bëre: xeesaayu der bu yam, xeesaayu der bu woyof',
+    '🧑🏽‍🫯‍🧑🏼' => 'nit ñuy bëre: xeesaayu der bu yam, xeesaayu der bu xeereer',
+    '🧑🏽‍🫯‍🧑🏾' => 'nit ñuy bëre: xeesaayu der bu yam, xeesaayu der bu xawa ñuul',
+    '🧑🏽‍🫯‍🧑🏿' => 'nit ñuy bëre: xeesaayu der bu yam, xeesaayu der bu ñuul',
+    '🧑🏾‍🫯‍🧑🏻' => 'nit ñuy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu woyof',
+    '🧑🏾‍🫯‍🧑🏼' => 'nit ñuy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu xeereer',
+    '🧑🏾‍🫯‍🧑🏽' => 'nit ñuy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu yam',
+    '🧑🏾‍🫯‍🧑🏿' => 'nit ñuy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu ñuul',
+    '🧑🏿‍🫯‍🧑🏻' => 'nit ñuy bëre: xeesaayu der bu ñuul, xeesaayu der bu woyof',
+    '🧑🏿‍🫯‍🧑🏼' => 'nit ñuy bëre: xeesaayu der bu ñuul, xeesaayu der bu xeereer',
+    '🧑🏿‍🫯‍🧑🏽' => 'nit ñuy bëre: xeesaayu der bu ñuul, xeesaayu der bu yam',
+    '🧑🏿‍🫯‍🧑🏾' => 'nit ñuy bëre: xeesaayu der bu ñuul, xeesaayu der bu xawa ñuul',
     '🧑🏻‍❤‍🧑🏼' => 'xol ak ñaar ñu bëggante: nit, nit, xeesaayu der bu woyof, xeesaayu der bu xeereer',
     '🧑🏻‍❤‍🧑🏽' => 'xol ak ñaar ñu bëggante: nit, nit, xeesaayu der bu woyof, xeesaayu der bu yam',
     '🧑🏻‍❤‍🧑🏾' => 'xol ak ñaar ñu bëggante: nit, nit, xeesaayu der bu woyof, xeesaayu der bu xawa ñuul',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'xol ak ñaar ñu bëggante: nit, nit, xeesaayu der bu ñuul, xeesaayu der bu xeereer',
     '🧑🏿‍❤‍🧑🏽' => 'xol ak ñaar ñu bëggante: nit, nit, xeesaayu der bu ñuul, xeesaayu der bu yam',
     '🧑🏿‍❤‍🧑🏾' => 'xol ak ñaar ñu bëggante: nit, nit, xeesaayu der bu ñuul, xeesaayu der bu xawa ñuul',
+    '🧑🏻‍🐰‍🧑🏼' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu woyof, xeesaayu der bu xeereer',
+    '🧑🏻‍🐰‍🧑🏽' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu woyof, xeesaayu der bu yam',
+    '🧑🏻‍🐰‍🧑🏾' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu woyof, xeesaayu der bu xawa ñuul',
+    '🧑🏻‍🐰‍🧑🏿' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu woyof, xeesaayu der bu ñuul',
+    '🧑🏼‍🐰‍🧑🏻' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu xeereer, xeesaayu der bu woyof',
+    '🧑🏼‍🐰‍🧑🏽' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu xeereer, xeesaayu der bu yam',
+    '🧑🏼‍🐰‍🧑🏾' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu xeereer, xeesaayu der bu xawa ñuul',
+    '🧑🏼‍🐰‍🧑🏿' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu xeereer, xeesaayu der bu ñuul',
+    '🧑🏽‍🐰‍🧑🏻' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu yam, xeesaayu der bu woyof',
+    '🧑🏽‍🐰‍🧑🏼' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu yam, xeesaayu der bu xeereer',
+    '🧑🏽‍🐰‍🧑🏾' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu yam, xeesaayu der bu xawa ñuul',
+    '🧑🏽‍🐰‍🧑🏿' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu yam, xeesaayu der bu ñuul',
+    '🧑🏾‍🐰‍🧑🏻' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu xawa ñuul, xeesaayu der bu woyof',
+    '🧑🏾‍🐰‍🧑🏼' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu xawa ñuul, xeesaayu der bu xeereer',
+    '🧑🏾‍🐰‍🧑🏽' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu xawa ñuul, xeesaayu der bu yam',
+    '🧑🏾‍🐰‍🧑🏿' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu xawa ñuul, xeesaayu der bu ñuul',
+    '🧑🏿‍🐰‍🧑🏻' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu ñuul, xeesaayu der bu woyof',
+    '🧑🏿‍🐰‍🧑🏼' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu ñuul, xeesaayu der bu xeereer',
+    '🧑🏿‍🐰‍🧑🏽' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu ñuul, xeesaayu der bu yam',
+    '🧑🏿‍🐰‍🧑🏾' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu ñuul, xeesaayu der bu xawa ñuul',
+    '👨🏻‍🫯‍👨🏼' => 'góor guy bëre: xeesaayu der bu woyof, xeesaayu der bu xeereer',
+    '👨🏻‍🫯‍👨🏽' => 'góor guy bëre: xeesaayu der bu woyof, xeesaayu der bu yam',
+    '👨🏻‍🫯‍👨🏾' => 'góor guy bëre: xeesaayu der bu woyof, xeesaayu der bu xawa ñuul',
+    '👨🏻‍🫯‍👨🏿' => 'góor guy bëre: xeesaayu der bu woyof, xeesaayu der bu ñuul',
+    '👨🏼‍🫯‍👨🏻' => 'góor guy bëre: xeesaayu der bu xeereer, xeesaayu der bu woyof',
+    '👨🏼‍🫯‍👨🏽' => 'góor guy bëre: xeesaayu der bu xeereer, xeesaayu der bu yam',
+    '👨🏼‍🫯‍👨🏾' => 'góor guy bëre: xeesaayu der bu xeereer, xeesaayu der bu xawa ñuul',
+    '👨🏼‍🫯‍👨🏿' => 'góor guy bëre: xeesaayu der bu xeereer, xeesaayu der bu ñuul',
+    '👨🏽‍🫯‍👨🏻' => 'góor guy bëre: xeesaayu der bu yam, xeesaayu der bu woyof',
+    '👨🏽‍🫯‍👨🏼' => 'góor guy bëre: xeesaayu der bu yam, xeesaayu der bu xeereer',
+    '👨🏽‍🫯‍👨🏾' => 'góor guy bëre: xeesaayu der bu yam, xeesaayu der bu xawa ñuul',
+    '👨🏽‍🫯‍👨🏿' => 'góor guy bëre: xeesaayu der bu yam, xeesaayu der bu ñuul',
+    '👨🏾‍🫯‍👨🏻' => 'góor guy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu woyof',
+    '👨🏾‍🫯‍👨🏼' => 'góor guy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu xeereer',
+    '👨🏾‍🫯‍👨🏽' => 'góor guy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu yam',
+    '👨🏾‍🫯‍👨🏿' => 'góor guy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu ñuul',
+    '👨🏿‍🫯‍👨🏻' => 'góor guy bëre: xeesaayu der bu ñuul, xeesaayu der bu woyof',
+    '👨🏿‍🫯‍👨🏼' => 'góor guy bëre: xeesaayu der bu ñuul, xeesaayu der bu xeereer',
+    '👨🏿‍🫯‍👨🏽' => 'góor guy bëre: xeesaayu der bu ñuul, xeesaayu der bu yam',
+    '👨🏿‍🫯‍👨🏾' => 'góor guy bëre: xeesaayu der bu ñuul, xeesaayu der bu xawa ñuul',
     '👨🏻‍❤‍👨🏻' => 'xol ak ñaar ñu bëggante: góor, góor, xeesaayu der bu woyof',
     '👨🏻‍❤‍👨🏼' => 'xol ak ñaar ñu bëggante: góor, góor, xeesaayu der bu woyof, xeesaayu der bu xeereer',
     '👨🏻‍❤‍👨🏽' => 'xol ak ñaar ñu bëggante: góor, góor, xeesaayu der bu woyof, xeesaayu der bu yam',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'xol ak ñaar ñu bëggante: góor, góor, xeesaayu der bu ñuul, xeesaayu der bu yam',
     '👨🏿‍❤‍👨🏾' => 'xol ak ñaar ñu bëggante: góor, góor, xeesaayu der bu ñuul, xeesaayu der bu xawa ñuul',
     '👨🏿‍❤‍👨🏿' => 'xol ak ñaar ñu bëggante: góor, góor, xeesaayu der bu ñuul',
+    '👨🏻‍🐰‍👨🏼' => 'góorak noppi lëks suwaare: xeesaayu der bu woyof, xeesaayu der bu xeereer',
+    '👨🏻‍🐰‍👨🏽' => 'góorak noppi lëks suwaare: xeesaayu der bu woyof, xeesaayu der bu yam',
+    '👨🏻‍🐰‍👨🏾' => 'góorak noppi lëks suwaare: xeesaayu der bu woyof, xeesaayu der bu xawa ñuul',
+    '👨🏻‍🐰‍👨🏿' => 'góorak noppi lëks suwaare: xeesaayu der bu woyof, xeesaayu der bu ñuul',
+    '👨🏼‍🐰‍👨🏻' => 'góorak noppi lëks suwaare: xeesaayu der bu xeereer, xeesaayu der bu woyof',
+    '👨🏼‍🐰‍👨🏽' => 'góorak noppi lëks suwaare: xeesaayu der bu xeereer, xeesaayu der bu yam',
+    '👨🏼‍🐰‍👨🏾' => 'góorak noppi lëks suwaare: xeesaayu der bu xeereer, xeesaayu der bu xawa ñuul',
+    '👨🏼‍🐰‍👨🏿' => 'góorak noppi lëks suwaare: xeesaayu der bu xeereer, xeesaayu der bu ñuul',
+    '👨🏽‍🐰‍👨🏻' => 'góorak noppi lëks suwaare: xeesaayu der bu yam, xeesaayu der bu woyof',
+    '👨🏽‍🐰‍👨🏼' => 'góorak noppi lëks suwaare: xeesaayu der bu yam, xeesaayu der bu xeereer',
+    '👨🏽‍🐰‍👨🏾' => 'góorak noppi lëks suwaare: xeesaayu der bu yam, xeesaayu der bu xawa ñuul',
+    '👨🏽‍🐰‍👨🏿' => 'góorak noppi lëks suwaare: xeesaayu der bu yam, xeesaayu der bu ñuul',
+    '👨🏾‍🐰‍👨🏻' => 'góorak noppi lëks suwaare: xeesaayu der bu xawa ñuul, xeesaayu der bu woyof',
+    '👨🏾‍🐰‍👨🏼' => 'góorak noppi lëks suwaare: xeesaayu der bu xawa ñuul, xeesaayu der bu xeereer',
+    '👨🏾‍🐰‍👨🏽' => 'góorak noppi lëks suwaare: xeesaayu der bu xawa ñuul, xeesaayu der bu yam',
+    '👨🏾‍🐰‍👨🏿' => 'góorak noppi lëks suwaare: xeesaayu der bu xawa ñuul, xeesaayu der bu ñuul',
+    '👨🏿‍🐰‍👨🏻' => 'góorak noppi lëks suwaare: xeesaayu der bu ñuul, xeesaayu der bu woyof',
+    '👨🏿‍🐰‍👨🏼' => 'góorak noppi lëks suwaare: xeesaayu der bu ñuul, xeesaayu der bu xeereer',
+    '👨🏿‍🐰‍👨🏽' => 'góorak noppi lëks suwaare: xeesaayu der bu ñuul, xeesaayu der bu yam',
+    '👨🏿‍🐰‍👨🏾' => 'góorak noppi lëks suwaare: xeesaayu der bu ñuul, xeesaayu der bu xawa ñuul',
+    '👩🏻‍🫯‍👩🏼' => 'jigéen juy bëre: xeesaayu der bu woyof, xeesaayu der bu xeereer',
+    '👩🏻‍🫯‍👩🏽' => 'jigéen juy bëre: xeesaayu der bu woyof, xeesaayu der bu yam',
+    '👩🏻‍🫯‍👩🏾' => 'jigéen juy bëre: xeesaayu der bu woyof, xeesaayu der bu xawa ñuul',
+    '👩🏻‍🫯‍👩🏿' => 'jigéen juy bëre: xeesaayu der bu woyof, xeesaayu der bu ñuul',
+    '👩🏼‍🫯‍👩🏻' => 'jigéen juy bëre: xeesaayu der bu xeereer, xeesaayu der bu woyof',
+    '👩🏼‍🫯‍👩🏽' => 'jigéen juy bëre: xeesaayu der bu xeereer, xeesaayu der bu yam',
+    '👩🏼‍🫯‍👩🏾' => 'jigéen juy bëre: xeesaayu der bu xeereer, xeesaayu der bu xawa ñuul',
+    '👩🏼‍🫯‍👩🏿' => 'jigéen juy bëre: xeesaayu der bu xeereer, xeesaayu der bu ñuul',
+    '👩🏽‍🫯‍👩🏻' => 'jigéen juy bëre: xeesaayu der bu yam, xeesaayu der bu woyof',
+    '👩🏽‍🫯‍👩🏼' => 'jigéen juy bëre: xeesaayu der bu yam, xeesaayu der bu xeereer',
+    '👩🏽‍🫯‍👩🏾' => 'jigéen juy bëre: xeesaayu der bu yam, xeesaayu der bu xawa ñuul',
+    '👩🏽‍🫯‍👩🏿' => 'jigéen juy bëre: xeesaayu der bu yam, xeesaayu der bu ñuul',
+    '👩🏾‍🫯‍👩🏻' => 'jigéen juy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu woyof',
+    '👩🏾‍🫯‍👩🏼' => 'jigéen juy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu xeereer',
+    '👩🏾‍🫯‍👩🏽' => 'jigéen juy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu yam',
+    '👩🏾‍🫯‍👩🏿' => 'jigéen juy bëre: xeesaayu der bu xawa ñuul, xeesaayu der bu ñuul',
+    '👩🏿‍🫯‍👩🏻' => 'jigéen juy bëre: xeesaayu der bu ñuul, xeesaayu der bu woyof',
+    '👩🏿‍🫯‍👩🏼' => 'jigéen juy bëre: xeesaayu der bu ñuul, xeesaayu der bu xeereer',
+    '👩🏿‍🫯‍👩🏽' => 'jigéen juy bëre: xeesaayu der bu ñuul, xeesaayu der bu yam',
+    '👩🏿‍🫯‍👩🏾' => 'jigéen juy bëre: xeesaayu der bu ñuul, xeesaayu der bu xawa ñuul',
     '👩🏻‍❤‍👨🏻' => 'xol ak ñaar ñu bëggante: jigéen, góor, xeesaayu der bu woyof',
     '👩🏻‍❤‍👨🏼' => 'xol ak ñaar ñu bëggante: jigéen, góor, xeesaayu der bu woyof, xeesaayu der bu xeereer',
     '👩🏻‍❤‍👨🏽' => 'xol ak ñaar ñu bëggante: jigéen, góor, xeesaayu der bu woyof, xeesaayu der bu yam',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'xol ak ñaar ñu bëggante: jigéen, jigéen, xeesaayu der bu ñuul, xeesaayu der bu yam',
     '👩🏿‍❤‍👩🏾' => 'xol ak ñaar ñu bëggante: jigéen, jigéen, xeesaayu der bu ñuul, xeesaayu der bu xawa ñuul',
     '👩🏿‍❤‍👩🏿' => 'xol ak ñaar ñu bëggante: jigéen, jigéen, xeesaayu der bu ñuul',
+    '👩🏻‍🐰‍👩🏼' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu woyof, xeesaayu der bu xeereer',
+    '👩🏻‍🐰‍👩🏽' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu woyof, xeesaayu der bu yam',
+    '👩🏻‍🐰‍👩🏾' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu woyof, xeesaayu der bu xawa ñuul',
+    '👩🏻‍🐰‍👩🏿' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu woyof, xeesaayu der bu ñuul',
+    '👩🏼‍🐰‍👩🏻' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu xeereer, xeesaayu der bu woyof',
+    '👩🏼‍🐰‍👩🏽' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu xeereer, xeesaayu der bu yam',
+    '👩🏼‍🐰‍👩🏾' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu xeereer, xeesaayu der bu xawa ñuul',
+    '👩🏼‍🐰‍👩🏿' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu xeereer, xeesaayu der bu ñuul',
+    '👩🏽‍🐰‍👩🏻' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu yam, xeesaayu der bu woyof',
+    '👩🏽‍🐰‍👩🏼' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu yam, xeesaayu der bu xeereer',
+    '👩🏽‍🐰‍👩🏾' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu yam, xeesaayu der bu xawa ñuul',
+    '👩🏽‍🐰‍👩🏿' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu yam, xeesaayu der bu ñuul',
+    '👩🏾‍🐰‍👩🏻' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu xawa ñuul, xeesaayu der bu woyof',
+    '👩🏾‍🐰‍👩🏼' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu xawa ñuul, xeesaayu der bu xeereer',
+    '👩🏾‍🐰‍👩🏽' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu xawa ñuul, xeesaayu der bu yam',
+    '👩🏾‍🐰‍👩🏿' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu xawa ñuul, xeesaayu der bu ñuul',
+    '👩🏿‍🐰‍👩🏻' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu ñuul, xeesaayu der bu woyof',
+    '👩🏿‍🐰‍👩🏼' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu ñuul, xeesaayu der bu xeereer',
+    '👩🏿‍🐰‍👩🏽' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu ñuul, xeesaayu der bu yam',
+    '👩🏿‍🐰‍👩🏾' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu ñuul, xeesaayu der bu xawa ñuul',
     '👩🏻‍🤝‍👩🏼' => 'ñaari jigéen yu jàppante loxo: xeesaayu der bu woyof, xeesaayu der bu xeereer',
     '👩🏻‍🤝‍👩🏽' => 'ñaari jigéen yu jàppante loxo: xeesaayu der bu woyof, xeesaayu der bu yam',
     '👩🏻‍🤝‍👩🏾' => 'ñaari jigéen yu jàppante loxo: xeesaayu der bu woyof, xeesaayu der bu xawa ñuul',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'jigéen daw: xeesaayu der bu yam',
     '🏃🏾‍♀' => 'jigéen daw: xeesaayu der bu xawa ñuul',
     '🏃🏿‍♀' => 'jigéen daw: xeesaayu der bu ñuul',
+    '👯🏻‍♀' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu woyof',
+    '👯🏼‍♀' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu xeereer',
+    '👯🏽‍♀' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu yam',
+    '👯🏾‍♀' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu xawa ñuul',
+    '👯🏿‍♀' => 'jigéen ak noppi lëks suwaare: xeesaayu der bu ñuul',
+    '👯🏻‍♂' => 'góorak noppi lëks suwaare: xeesaayu der bu woyof',
+    '👯🏼‍♂' => 'góorak noppi lëks suwaare: xeesaayu der bu xeereer',
+    '👯🏽‍♂' => 'góorak noppi lëks suwaare: xeesaayu der bu yam',
+    '👯🏾‍♂' => 'góorak noppi lëks suwaare: xeesaayu der bu xawa ñuul',
+    '👯🏿‍♂' => 'góorak noppi lëks suwaare: xeesaayu der bu ñuul',
     '🧖🏻‍♂' => 'góor ci néegu wapër: xeesaayu der bu woyof',
     '🧖🏼‍♂' => 'góor ci néegu wapër: xeesaayu der bu xeereer',
     '🧖🏽‍♂' => 'góor ci néegu wapër: xeesaayu der bu yam',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'jigéen juy pëno-sareet: xeesaayu der bu yam',
     '🤸🏾‍♀' => 'jigéen juy pëno-sareet: xeesaayu der bu xawa ñuul',
     '🤸🏿‍♀' => 'jigéen juy pëno-sareet: xeesaayu der bu ñuul',
+    '🤼🏻‍♀' => 'jigéen juy bëre: xeesaayu der bu woyof',
+    '🤼🏼‍♀' => 'jigéen juy bëre: xeesaayu der bu xeereer',
+    '🤼🏽‍♀' => 'jigéen juy bëre: xeesaayu der bu yam',
+    '🤼🏾‍♀' => 'jigéen juy bëre: xeesaayu der bu xawa ñuul',
+    '🤼🏿‍♀' => 'jigéen juy bëre: xeesaayu der bu ñuul',
+    '🤼🏻‍♂' => 'góor guy bëre: xeesaayu der bu woyof',
+    '🤼🏼‍♂' => 'góor guy bëre: xeesaayu der bu xeereer',
+    '🤼🏽‍♂' => 'góor guy bëre: xeesaayu der bu yam',
+    '🤼🏾‍♂' => 'góor guy bëre: xeesaayu der bu xawa ñuul',
+    '🤼🏿‍♂' => 'góor guy bëre: xeesaayu der bu ñuul',
     '🤽🏻‍♂' => 'góor guy polo ci ndox: xeesaayu der bu woyof',
     '🤽🏼‍♂' => 'góor guy polo ci ndox: xeesaayu der bu xeereer',
     '🤽🏽‍♂' => 'góor guy polo ci ndox: xeesaayu der bu yam',
@@ -1403,6 +1543,11 @@
     '🕴🏽' => 'góor ci bisnes kostim lewitasiyoŋ: xeesaayu der bu yam',
     '🕴🏾' => 'góor ci bisnes kostim lewitasiyoŋ: xeesaayu der bu xawa ñuul',
     '🕴🏿' => 'góor ci bisnes kostim lewitasiyoŋ: xeesaayu der bu ñuul',
+    '👯🏻' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu woyof',
+    '👯🏼' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu xeereer',
+    '👯🏽' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu yam',
+    '👯🏾' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu xawa ñuul',
+    '👯🏿' => 'nit ñuy fecc, ak noppi lëk: xeesaayu der bu ñuul',
     '🧖🏻' => 'nit ci néegu wapër: xeesaayu der bu woyof',
     '🧖🏼' => 'nit ci néegu wapër: xeesaayu der bu xeereer',
     '🧖🏽' => 'nit ci néegu wapër: xeesaayu der bu yam',
@@ -1468,6 +1613,11 @@
     '🤸🏽' => 'nit ñuy ànd bërëŋu: xeesaayu der bu yam',
     '🤸🏾' => 'nit ñuy ànd bërëŋu: xeesaayu der bu xawa ñuul',
     '🤸🏿' => 'nit ñuy ànd bërëŋu: xeesaayu der bu ñuul',
+    '🤼🏻' => 'nit ñuy bëre: xeesaayu der bu woyof',
+    '🤼🏼' => 'nit ñuy bëre: xeesaayu der bu xeereer',
+    '🤼🏽' => 'nit ñuy bëre: xeesaayu der bu yam',
+    '🤼🏾' => 'nit ñuy bëre: xeesaayu der bu xawa ñuul',
+    '🤼🏿' => 'nit ñuy bëre: xeesaayu der bu ñuul',
     '🤽🏻' => 'nit kuy polo ci ndox: xeesaayu der bu woyof',
     '🤽🏼' => 'nit kuy polo ci ndox: xeesaayu der bu xeereer',
     '🤽🏽' => 'nit kuy polo ci ndox: xeesaayu der bu yam',
@@ -1891,6 +2041,9 @@
     '🦈' => 'rekeŋ',
     '🐙' => 'oktopis',
     '🐚' => 'xoru espiraal',
+    '🦀' => 'junqoob',
+    '🦐' => 'krëwet',
+    '🦑' => 'kalamaar',
     '🐌' => 'eskargoo',
     '🦋' => 'lëppaalëp',
     '🐛' => 'gunóor',
@@ -1992,9 +2145,6 @@
     '🥟' => 'buleet',
     '🥠' => 'mbiskitu musuwaar',
     '🥡' => 'boyetu yóbbaale',
-    '🦀' => 'junqoob',
-    '🦐' => 'krëwet',
-    '🦑' => 'kalamaar',
     '🍦' => 'kreem galaas bu am suukar',
     '🍧' => 'galaas guñ dëbb',
     '🍨' => 'kreem galaase',
@@ -2347,9 +2497,9 @@
     '🎧' => 'kasku misik',
     '📻' => 'rajo',
     '🎷' => 'saksofon',
+    '🎺' => 'trompet',
     '🎸' => 'gitaar',
     '🎹' => 'klawiyee misik',
-    '🎺' => 'trompet',
     '🎻' => 'violon',
     '🥁' => 'ndënd',
     '📱' => 'telefon portaabal',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-xh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-xh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-xh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-xh.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'phuza: ibhinqa, ibhinqa, ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi',
     '👩🏿‍❤‍💋‍👩🏾' => 'phuza: ibhinqa, ibhinqa, ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi mnyama',
     '👩🏿‍❤‍💋‍👩🏿' => 'phuza: ibhinqa, ibhinqa, ithoni yesikhumba emnyama',
+    '🧑🏻‍🫯‍🧑🏼' => 'abantu abangqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esikhanyayo phakathi',
+    '🧑🏻‍🫯‍🧑🏽' => 'abantu abangqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi',
+    '🧑🏻‍🫯‍🧑🏾' => 'abantu abangqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi mnyama',
+    '🧑🏻‍🫯‍🧑🏿' => 'abantu abangqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba emnyama',
+    '🧑🏼‍🫯‍🧑🏻' => 'abantu abangqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esikhanyayo',
+    '🧑🏼‍🫯‍🧑🏽' => 'abantu abangqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi',
+    '🧑🏼‍🫯‍🧑🏾' => 'abantu abangqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi mnyama',
+    '🧑🏼‍🫯‍🧑🏿' => 'abantu abangqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba emnyama',
+    '🧑🏽‍🫯‍🧑🏻' => 'abantu abangqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo',
+    '🧑🏽‍🫯‍🧑🏼' => 'abantu abangqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo phakathi',
+    '🧑🏽‍🫯‍🧑🏾' => 'abantu abangqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba esiphakathi mnyama',
+    '🧑🏽‍🫯‍🧑🏿' => 'abantu abangqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba emnyama',
+    '🧑🏾‍🫯‍🧑🏻' => 'abantu abangqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo',
+    '🧑🏾‍🫯‍🧑🏼' => 'abantu abangqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '🧑🏾‍🫯‍🧑🏽' => 'abantu abangqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esiphakathi',
+    '🧑🏾‍🫯‍🧑🏿' => 'abantu abangqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba emnyama',
+    '🧑🏿‍🫯‍🧑🏻' => 'abantu abangqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo',
+    '🧑🏿‍🫯‍🧑🏼' => 'abantu abangqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '🧑🏿‍🫯‍🧑🏽' => 'abantu abangqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi',
+    '🧑🏿‍🫯‍🧑🏾' => 'abantu abangqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi mnyama',
     '🧑🏻‍❤‍🧑🏼' => 'isibini esinentliziyo: umntu omdala, umntu omdala, ithoni yesikhumba esikhanyayo, ithoni yesikhumba esikhanyayo phakathi',
     '🧑🏻‍❤‍🧑🏽' => 'isibini esinentliziyo: umntu omdala, umntu omdala, ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi',
     '🧑🏻‍❤‍🧑🏾' => 'isibini esinentliziyo: umntu omdala, umntu omdala, ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi mnyama',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'isibini esinentliziyo: umntu omdala, umntu omdala, ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo phakathi',
     '🧑🏿‍❤‍🧑🏽' => 'isibini esinentliziyo: umntu omdala, umntu omdala, ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi',
     '🧑🏿‍❤‍🧑🏾' => 'isibini esinentliziyo: umntu omdala, umntu omdala, ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi mnyama',
+    '🧑🏻‍🐰‍🧑🏼' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esikhanyayo phakathi',
+    '🧑🏻‍🐰‍🧑🏽' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi',
+    '🧑🏻‍🐰‍🧑🏾' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi mnyama',
+    '🧑🏻‍🐰‍🧑🏿' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba emnyama',
+    '🧑🏼‍🐰‍🧑🏻' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esikhanyayo',
+    '🧑🏼‍🐰‍🧑🏽' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi',
+    '🧑🏼‍🐰‍🧑🏾' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi mnyama',
+    '🧑🏼‍🐰‍🧑🏿' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba emnyama',
+    '🧑🏽‍🐰‍🧑🏻' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo',
+    '🧑🏽‍🐰‍🧑🏼' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo phakathi',
+    '🧑🏽‍🐰‍🧑🏾' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba esiphakathi mnyama',
+    '🧑🏽‍🐰‍🧑🏿' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba emnyama',
+    '🧑🏾‍🐰‍🧑🏻' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo',
+    '🧑🏾‍🐰‍🧑🏼' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '🧑🏾‍🐰‍🧑🏽' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esiphakathi',
+    '🧑🏾‍🐰‍🧑🏿' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba emnyama',
+    '🧑🏿‍🐰‍🧑🏻' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo',
+    '🧑🏿‍🐰‍🧑🏼' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '🧑🏿‍🐰‍🧑🏽' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi',
+    '🧑🏿‍🐰‍🧑🏾' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi mnyama',
+    '👨🏻‍🫯‍👨🏼' => 'amadoda angqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esikhanyayo phakathi',
+    '👨🏻‍🫯‍👨🏽' => 'amadoda angqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi',
+    '👨🏻‍🫯‍👨🏾' => 'amadoda angqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi mnyama',
+    '👨🏻‍🫯‍👨🏿' => 'amadoda angqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba emnyama',
+    '👨🏼‍🫯‍👨🏻' => 'amadoda angqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esikhanyayo',
+    '👨🏼‍🫯‍👨🏽' => 'amadoda angqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi',
+    '👨🏼‍🫯‍👨🏾' => 'amadoda angqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi mnyama',
+    '👨🏼‍🫯‍👨🏿' => 'amadoda angqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba emnyama',
+    '👨🏽‍🫯‍👨🏻' => 'amadoda angqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo',
+    '👨🏽‍🫯‍👨🏼' => 'amadoda angqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo phakathi',
+    '👨🏽‍🫯‍👨🏾' => 'amadoda angqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba esiphakathi mnyama',
+    '👨🏽‍🫯‍👨🏿' => 'amadoda angqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba emnyama',
+    '👨🏾‍🫯‍👨🏻' => 'amadoda angqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo',
+    '👨🏾‍🫯‍👨🏼' => 'amadoda angqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '👨🏾‍🫯‍👨🏽' => 'amadoda angqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esiphakathi',
+    '👨🏾‍🫯‍👨🏿' => 'amadoda angqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba emnyama',
+    '👨🏿‍🫯‍👨🏻' => 'amadoda angqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo',
+    '👨🏿‍🫯‍👨🏼' => 'amadoda angqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '👨🏿‍🫯‍👨🏽' => 'amadoda angqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi',
+    '👨🏿‍🫯‍👨🏾' => 'amadoda angqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi mnyama',
     '👨🏻‍❤‍👨🏻' => 'isibini esinentliziyo: indoda, indoda, ithoni yesikhumba esikhanyayo',
     '👨🏻‍❤‍👨🏼' => 'isibini esinentliziyo: indoda, indoda, ithoni yesikhumba esikhanyayo, ithoni yesikhumba esikhanyayo phakathi',
     '👨🏻‍❤‍👨🏽' => 'isibini esinentliziyo: indoda, indoda, ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'isibini esinentliziyo: indoda, indoda, ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi',
     '👨🏿‍❤‍👨🏾' => 'isibini esinentliziyo: indoda, indoda, ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi mnyama',
     '👨🏿‍❤‍👨🏿' => 'isibini esinentliziyo: indoda, indoda, ithoni yesikhumba emnyama',
+    '👨🏻‍🐰‍👨🏼' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esikhanyayo phakathi',
+    '👨🏻‍🐰‍👨🏽' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi',
+    '👨🏻‍🐰‍👨🏾' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi mnyama',
+    '👨🏻‍🐰‍👨🏿' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba emnyama',
+    '👨🏼‍🐰‍👨🏻' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esikhanyayo',
+    '👨🏼‍🐰‍👨🏽' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi',
+    '👨🏼‍🐰‍👨🏾' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi mnyama',
+    '👨🏼‍🐰‍👨🏿' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba emnyama',
+    '👨🏽‍🐰‍👨🏻' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo',
+    '👨🏽‍🐰‍👨🏼' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo phakathi',
+    '👨🏽‍🐰‍👨🏾' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba esiphakathi mnyama',
+    '👨🏽‍🐰‍👨🏿' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba emnyama',
+    '👨🏾‍🐰‍👨🏻' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo',
+    '👨🏾‍🐰‍👨🏼' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '👨🏾‍🐰‍👨🏽' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esiphakathi',
+    '👨🏾‍🐰‍👨🏿' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba emnyama',
+    '👨🏿‍🐰‍👨🏻' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo',
+    '👨🏿‍🐰‍👨🏼' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '👨🏿‍🐰‍👨🏽' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi',
+    '👨🏿‍🐰‍👨🏾' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi mnyama',
+    '👩🏻‍🫯‍👩🏼' => 'amabhinqa angqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esikhanyayo phakathi',
+    '👩🏻‍🫯‍👩🏽' => 'amabhinqa angqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi',
+    '👩🏻‍🫯‍👩🏾' => 'amabhinqa angqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi mnyama',
+    '👩🏻‍🫯‍👩🏿' => 'amabhinqa angqulanayo: ithoni yesikhumba esikhanyayo, ithoni yesikhumba emnyama',
+    '👩🏼‍🫯‍👩🏻' => 'amabhinqa angqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esikhanyayo',
+    '👩🏼‍🫯‍👩🏽' => 'amabhinqa angqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi',
+    '👩🏼‍🫯‍👩🏾' => 'amabhinqa angqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi mnyama',
+    '👩🏼‍🫯‍👩🏿' => 'amabhinqa angqulanayo: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba emnyama',
+    '👩🏽‍🫯‍👩🏻' => 'amabhinqa angqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo',
+    '👩🏽‍🫯‍👩🏼' => 'amabhinqa angqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo phakathi',
+    '👩🏽‍🫯‍👩🏾' => 'amabhinqa angqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba esiphakathi mnyama',
+    '👩🏽‍🫯‍👩🏿' => 'amabhinqa angqulanayo: ithoni yesikhumba esiphakathi, ithoni yesikhumba emnyama',
+    '👩🏾‍🫯‍👩🏻' => 'amabhinqa angqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo',
+    '👩🏾‍🫯‍👩🏼' => 'amabhinqa angqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '👩🏾‍🫯‍👩🏽' => 'amabhinqa angqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esiphakathi',
+    '👩🏾‍🫯‍👩🏿' => 'amabhinqa angqulanayo: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba emnyama',
+    '👩🏿‍🫯‍👩🏻' => 'amabhinqa angqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo',
+    '👩🏿‍🫯‍👩🏼' => 'amabhinqa angqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '👩🏿‍🫯‍👩🏽' => 'amabhinqa angqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi',
+    '👩🏿‍🫯‍👩🏾' => 'amabhinqa angqulanayo: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi mnyama',
     '👩🏻‍❤‍👨🏻' => 'isibini esinentliziyo: ibhinqa, indoda, ithoni yesikhumba esikhanyayo',
     '👩🏻‍❤‍👨🏼' => 'isibini esinentliziyo: ibhinqa, indoda, ithoni yesikhumba esikhanyayo, ithoni yesikhumba esikhanyayo phakathi',
     '👩🏻‍❤‍👨🏽' => 'isibini esinentliziyo: ibhinqa, indoda, ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'isibini esinentliziyo: ibhinqa, ibhinqa, ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi',
     '👩🏿‍❤‍👩🏾' => 'isibini esinentliziyo: ibhinqa, ibhinqa, ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi mnyama',
     '👩🏿‍❤‍👩🏿' => 'isibini esinentliziyo: ibhinqa, ibhinqa, ithoni yesikhumba emnyama',
+    '👩🏻‍🐰‍👩🏼' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esikhanyayo phakathi',
+    '👩🏻‍🐰‍👩🏽' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi',
+    '👩🏻‍🐰‍👩🏾' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi mnyama',
+    '👩🏻‍🐰‍👩🏿' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esikhanyayo, ithoni yesikhumba emnyama',
+    '👩🏼‍🐰‍👩🏻' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esikhanyayo',
+    '👩🏼‍🐰‍👩🏽' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi',
+    '👩🏼‍🐰‍👩🏾' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba esiphakathi mnyama',
+    '👩🏼‍🐰‍👩🏿' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esikhanyayo phakathi, ithoni yesikhumba emnyama',
+    '👩🏽‍🐰‍👩🏻' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo',
+    '👩🏽‍🐰‍👩🏼' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba esikhanyayo phakathi',
+    '👩🏽‍🐰‍👩🏾' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba esiphakathi mnyama',
+    '👩🏽‍🐰‍👩🏿' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esiphakathi, ithoni yesikhumba emnyama',
+    '👩🏾‍🐰‍👩🏻' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo',
+    '👩🏾‍🐰‍👩🏼' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '👩🏾‍🐰‍👩🏽' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba esiphakathi',
+    '👩🏾‍🐰‍👩🏿' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esiphakathi mnyama, ithoni yesikhumba emnyama',
+    '👩🏿‍🐰‍👩🏻' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo',
+    '👩🏿‍🐰‍👩🏼' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esikhanyayo phakathi',
+    '👩🏿‍🐰‍👩🏽' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi',
+    '👩🏿‍🐰‍👩🏾' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba emnyama, ithoni yesikhumba esiphakathi mnyama',
     '👩🏻‍🤝‍👩🏼' => 'amabhinqa amabini abambene ngezandla: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esikhanyayo phakathi',
     '👩🏻‍🤝‍👩🏽' => 'amabhinqa amabini abambene ngezandla: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi',
     '👩🏻‍🤝‍👩🏾' => 'amabhinqa amabini abambene ngezandla: ithoni yesikhumba esikhanyayo, ithoni yesikhumba esiphakathi mnyama',
@@ -698,6 +818,16 @@
     '🏃🏽‍♀' => 'ibhinqa elibhalekayo: ithoni yesikhumba esiphakathi',
     '🏃🏾‍♀' => 'ibhinqa elibhalekayo: ithoni yesikhumba esiphakathi mnyama',
     '🏃🏿‍♀' => 'ibhinqa elibhalekayo: ithoni yesikhumba emnyama',
+    '👯🏻‍♀' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esikhanyayo',
+    '👯🏼‍♀' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esikhanyayo phakathi',
+    '👯🏽‍♀' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esiphakathi',
+    '👯🏾‍♀' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba esiphakathi mnyama',
+    '👯🏿‍♀' => 'ibhinqa elineendlebe zomvundla elikwitheko: ithoni yesikhumba emnyama',
+    '👯🏻‍♂' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esikhanyayo',
+    '👯🏼‍♂' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esikhanyayo phakathi',
+    '👯🏽‍♂' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esiphakathi',
+    '👯🏾‍♂' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba esiphakathi mnyama',
+    '👯🏿‍♂' => 'amadoda aneneendlebe zomvundla akwitheko: ithoni yesikhumba emnyama',
     '🧖🏻‍♂' => 'indoda ekwigumbi lomphunga: ithoni yesikhumba esikhanyayo',
     '🧖🏼‍♂' => 'indoda ekwigumbi lomphunga: ithoni yesikhumba esikhanyayo phakathi',
     '🧖🏽‍♂' => 'indoda ekwigumbi lomphunga: ithoni yesikhumba esiphakathi',
@@ -808,6 +938,16 @@
     '🤸🏽‍♀' => 'ibhinqa elenza uqilikibhode ngecala: ithoni yesikhumba esiphakathi',
     '🤸🏾‍♀' => 'ibhinqa elenza uqilikibhode ngecala: ithoni yesikhumba esiphakathi mnyama',
     '🤸🏿‍♀' => 'ibhinqa elenza uqilikibhode ngecala: ithoni yesikhumba emnyama',
+    '🤼🏻‍♀' => 'amabhinqa angqulanayo: ithoni yesikhumba esikhanyayo',
+    '🤼🏼‍♀' => 'amabhinqa angqulanayo: ithoni yesikhumba esikhanyayo phakathi',
+    '🤼🏽‍♀' => 'amabhinqa angqulanayo: ithoni yesikhumba esiphakathi',
+    '🤼🏾‍♀' => 'amabhinqa angqulanayo: ithoni yesikhumba esiphakathi mnyama',
+    '🤼🏿‍♀' => 'amabhinqa angqulanayo: ithoni yesikhumba emnyama',
+    '🤼🏻‍♂' => 'amadoda angqulanayo: ithoni yesikhumba esikhanyayo',
+    '🤼🏼‍♂' => 'amadoda angqulanayo: ithoni yesikhumba esikhanyayo phakathi',
+    '🤼🏽‍♂' => 'amadoda angqulanayo: ithoni yesikhumba esiphakathi',
+    '🤼🏾‍♂' => 'amadoda angqulanayo: ithoni yesikhumba esiphakathi mnyama',
+    '🤼🏿‍♂' => 'amadoda angqulanayo: ithoni yesikhumba emnyama',
     '🤽🏻‍♂' => 'indoda edlala i-polo yasemanzini: ithoni yesikhumba esikhanyayo',
     '🤽🏼‍♂' => 'indoda edlala i-polo yasemanzini: ithoni yesikhumba esikhanyayo phakathi',
     '🤽🏽‍♂' => 'indoda edlala i-polo yasemanzini: ithoni yesikhumba esiphakathi',
@@ -1392,6 +1532,11 @@
     '🕴🏽' => 'indoda enxibe isuti yeshishini endandayo: ithoni yesikhumba esiphakathi',
     '🕴🏾' => 'indoda enxibe isuti yeshishini endandayo: ithoni yesikhumba esiphakathi mnyama',
     '🕴🏿' => 'indoda enxibe isuti yeshishini endandayo: ithoni yesikhumba emnyama',
+    '👯🏻' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esikhanyayo',
+    '👯🏼' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esikhanyayo phakathi',
+    '👯🏽' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esiphakathi',
+    '👯🏾' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba esiphakathi mnyama',
+    '👯🏿' => 'abantu abaneendlebe zomvundla abakwitheko: ithoni yesikhumba emnyama',
     '🧖🏻' => 'umntu okwigumbi lomphunga: ithoni yesikhumba esikhanyayo',
     '🧖🏼' => 'umntu okwigumbi lomphunga: ithoni yesikhumba esikhanyayo phakathi',
     '🧖🏽' => 'umntu okwigumbi lomphunga: ithoni yesikhumba esiphakathi',
@@ -1457,6 +1602,11 @@
     '🤸🏽' => 'umntu owenza uqilikibhode ngecala: ithoni yesikhumba esiphakathi',
     '🤸🏾' => 'umntu owenza uqilikibhode ngecala: ithoni yesikhumba esiphakathi mnyama',
     '🤸🏿' => 'umntu owenza uqilikibhode ngecala: ithoni yesikhumba emnyama',
+    '🤼🏻' => 'abantu abangqulanayo: ithoni yesikhumba esikhanyayo',
+    '🤼🏼' => 'abantu abangqulanayo: ithoni yesikhumba esikhanyayo phakathi',
+    '🤼🏽' => 'abantu abangqulanayo: ithoni yesikhumba esiphakathi',
+    '🤼🏾' => 'abantu abangqulanayo: ithoni yesikhumba esiphakathi mnyama',
+    '🤼🏿' => 'abantu abangqulanayo: ithoni yesikhumba emnyama',
     '🤽🏻' => 'umntu odlala i-polo yasemanzini: ithoni yesikhumba esikhanyayo',
     '🤽🏼' => 'umntu odlala i-polo yasemanzini: ithoni yesikhumba esikhanyayo phakathi',
     '🤽🏽' => 'umntu odlala i-polo yasemanzini: ithoni yesikhumba esiphakathi',
@@ -1857,6 +2007,9 @@
     '🦈' => 'ukrebe',
     '🐙' => 'ingwane',
     '🐚' => 'iqokobhe elijikelezayo',
+    '🦀' => 'unonkala',
+    '🦐' => 'inqonci',
+    '🦑' => 'i-squid',
     '🐌' => 'inkumba',
     '🦋' => 'ibhabhathane',
     '🐛' => 'incukuthu',
@@ -1958,9 +2111,6 @@
     '🥟' => 'imbulanga yentlama',
     '🥠' => 'iqebengwane lethamsanqa',
     '🥡' => 'ibhokisi ye-takeout',
-    '🦀' => 'unonkala',
-    '🦐' => 'inqonci',
-    '🦑' => 'i-squid',
     '🍦' => 'iayiskrim ethambileyo',
     '🍧' => 'umkhenkce osikiweyo',
     '🍨' => 'iayiskrim',
@@ -2312,9 +2462,9 @@
     '🎧' => 'i-headphone',
     '📻' => 'irediyo',
     '🎷' => 'i-saxophone',
+    '🎺' => 'ixolongo',
     '🎸' => 'ikatala',
     '🎹' => 'ikhibhodi yomculo',
-    '🎺' => 'ixolongo',
     '🎻' => 'i-violin',
     '🥁' => 'igubu',
     '📱' => 'iselfowuni',
@@ -2610,7 +2760,7 @@
     '🆙' => 'iqhosha elithi PHEZULU!',
     '🆚' => 'iqhosha elithi VS',
     '🈁' => 'iqhosha elithi "apha" laseJapan',
-    '🈂' => 'iqhosha elithi "intalwulo yenkonzo" lesiJapan',
+    '🈂' => 'Iqhosha elithi “intlawulo yenkonzo” elingesiJapan',
     '🈷' => 'iqhosha elithi "imali yenyanga" lesiJapan',
     '🈶' => 'iqhosha elithi "ayikho simahla" lesiJapan',
     '🈯' => 'iqhosha elithi "ibhukhishiwe" lesiJapan',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yo_bj.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yo_bj.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yo_bj.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yo_bj.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'Ifɛnuko: Obìnrin, Obìnrin, adúláwɔ̀, amɔ́láwɔ̀ díɛ̀',
     '👩🏿‍❤‍💋‍👩🏾' => 'Ifɛnuko: Obìnrin, Obìnrin, adúláwɔ̀, adúláwɔ̀ díɛ̀',
     '👩🏿‍❤‍💋‍👩🏿' => 'Ifɛnuko: Obìnrin, Obìnrin, adúláwɔ̀',
+    '🧑🏻‍🫯‍🧑🏼' => 'Awɔn Onigidigbo: amɔ́lára àtiamɔ́lára díɛ̀',
+    '🧑🏻‍🫯‍🧑🏽' => 'Awɔn Onigidigbo: amɔ́lára àtiamɔ́láwɔ̀ díɛ̀',
+    '🧑🏻‍🫯‍🧑🏾' => 'Awɔn Onigidigbo: amɔ́lára àtiadúláwɔ̀ díɛ̀',
+    '🧑🏻‍🫯‍🧑🏿' => 'Awɔn Onigidigbo: amɔ́lára àtiadúláwɔ̀',
+    '🧑🏼‍🫯‍🧑🏻' => 'Awɔn Onigidigbo: amɔ́lára díɛ̀ àtiamɔ́lára',
+    '🧑🏼‍🫯‍🧑🏽' => 'Awɔn Onigidigbo: amɔ́lára díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '🧑🏼‍🫯‍🧑🏾' => 'Awɔn Onigidigbo: amɔ́lára díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '🧑🏼‍🫯‍🧑🏿' => 'Awɔn Onigidigbo: amɔ́lára díɛ̀ àtiadúláwɔ̀',
+    '🧑🏽‍🫯‍🧑🏻' => 'Awɔn Onigidigbo: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára',
+    '🧑🏽‍🫯‍🧑🏼' => 'Awɔn Onigidigbo: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '🧑🏽‍🫯‍🧑🏾' => 'Awɔn Onigidigbo: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '🧑🏽‍🫯‍🧑🏿' => 'Awɔn Onigidigbo: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '🧑🏾‍🫯‍🧑🏻' => 'Awɔn Onigidigbo: adúláwɔ̀ díɛ̀ àtiamɔ́lára',
+    '🧑🏾‍🫯‍🧑🏼' => 'Awɔn Onigidigbo: adúláwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '🧑🏾‍🫯‍🧑🏽' => 'Awɔn Onigidigbo: adúláwɔ̀ díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '🧑🏾‍🫯‍🧑🏿' => 'Awɔn Onigidigbo: adúláwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '🧑🏿‍🫯‍🧑🏻' => 'Awɔn Onigidigbo: adúláwɔ̀ àtiamɔ́lára',
+    '🧑🏿‍🫯‍🧑🏼' => 'Awɔn Onigidigbo: adúláwɔ̀ àtiamɔ́lára díɛ̀',
+    '🧑🏿‍🫯‍🧑🏽' => 'Awɔn Onigidigbo: adúláwɔ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '🧑🏿‍🫯‍🧑🏾' => 'Awɔn Onigidigbo: adúláwɔ̀ àtiadúláwɔ̀ díɛ̀',
     '🧑🏻‍❤‍🧑🏼' => 'Lɔkɔlaya Pɛlu ɔkan: àgbà, àgbà, amɔ́lára, amɔ́lára díɛ̀',
     '🧑🏻‍❤‍🧑🏽' => 'Lɔkɔlaya Pɛlu ɔkan: àgbà, àgbà, amɔ́lára, amɔ́láwɔ̀ díɛ̀',
     '🧑🏻‍❤‍🧑🏾' => 'Lɔkɔlaya Pɛlu ɔkan: àgbà, àgbà, amɔ́lára, adúláwɔ̀ díɛ̀',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'Lɔkɔlaya Pɛlu ɔkan: àgbà, àgbà, adúláwɔ̀, amɔ́lára díɛ̀',
     '🧑🏿‍❤‍🧑🏽' => 'Lɔkɔlaya Pɛlu ɔkan: àgbà, àgbà, adúláwɔ̀, amɔ́láwɔ̀ díɛ̀',
     '🧑🏿‍❤‍🧑🏾' => 'Lɔkɔlaya Pɛlu ɔkan: àgbà, àgbà, adúláwɔ̀, adúláwɔ̀ díɛ̀',
+    '🧑🏻‍🐰‍🧑🏼' => 'awɔn eniyan eleti ehoro: amɔ́lára àtiamɔ́lára díɛ̀',
+    '🧑🏻‍🐰‍🧑🏽' => 'awɔn eniyan eleti ehoro: amɔ́lára àtiamɔ́láwɔ̀ díɛ̀',
+    '🧑🏻‍🐰‍🧑🏾' => 'awɔn eniyan eleti ehoro: amɔ́lára àtiadúláwɔ̀ díɛ̀',
+    '🧑🏻‍🐰‍🧑🏿' => 'awɔn eniyan eleti ehoro: amɔ́lára àtiadúláwɔ̀',
+    '🧑🏼‍🐰‍🧑🏻' => 'awɔn eniyan eleti ehoro: amɔ́lára díɛ̀ àtiamɔ́lára',
+    '🧑🏼‍🐰‍🧑🏽' => 'awɔn eniyan eleti ehoro: amɔ́lára díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '🧑🏼‍🐰‍🧑🏾' => 'awɔn eniyan eleti ehoro: amɔ́lára díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '🧑🏼‍🐰‍🧑🏿' => 'awɔn eniyan eleti ehoro: amɔ́lára díɛ̀ àtiadúláwɔ̀',
+    '🧑🏽‍🐰‍🧑🏻' => 'awɔn eniyan eleti ehoro: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára',
+    '🧑🏽‍🐰‍🧑🏼' => 'awɔn eniyan eleti ehoro: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '🧑🏽‍🐰‍🧑🏾' => 'awɔn eniyan eleti ehoro: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '🧑🏽‍🐰‍🧑🏿' => 'awɔn eniyan eleti ehoro: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '🧑🏾‍🐰‍🧑🏻' => 'awɔn eniyan eleti ehoro: adúláwɔ̀ díɛ̀ àtiamɔ́lára',
+    '🧑🏾‍🐰‍🧑🏼' => 'awɔn eniyan eleti ehoro: adúláwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '🧑🏾‍🐰‍🧑🏽' => 'awɔn eniyan eleti ehoro: adúláwɔ̀ díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '🧑🏾‍🐰‍🧑🏿' => 'awɔn eniyan eleti ehoro: adúláwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '🧑🏿‍🐰‍🧑🏻' => 'awɔn eniyan eleti ehoro: adúláwɔ̀ àtiamɔ́lára',
+    '🧑🏿‍🐰‍🧑🏼' => 'awɔn eniyan eleti ehoro: adúláwɔ̀ àtiamɔ́lára díɛ̀',
+    '🧑🏿‍🐰‍🧑🏽' => 'awɔn eniyan eleti ehoro: adúláwɔ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '🧑🏿‍🐰‍🧑🏾' => 'awɔn eniyan eleti ehoro: adúláwɔ̀ àtiadúláwɔ̀ díɛ̀',
+    '👨🏻‍🫯‍👨🏼' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́lára àtiamɔ́lára díɛ̀',
+    '👨🏻‍🫯‍👨🏽' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́lára àtiamɔ́láwɔ̀ díɛ̀',
+    '👨🏻‍🫯‍👨🏾' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́lára àtiadúláwɔ̀ díɛ̀',
+    '👨🏻‍🫯‍👨🏿' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́lára àtiadúláwɔ̀',
+    '👨🏼‍🫯‍👨🏻' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́lára díɛ̀ àtiamɔ́lára',
+    '👨🏼‍🫯‍👨🏽' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́lára díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👨🏼‍🫯‍👨🏾' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́lára díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '👨🏼‍🫯‍👨🏿' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́lára díɛ̀ àtiadúláwɔ̀',
+    '👨🏽‍🫯‍👨🏻' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára',
+    '👨🏽‍🫯‍👨🏼' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '👨🏽‍🫯‍👨🏾' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '👨🏽‍🫯‍👨🏿' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '👨🏾‍🫯‍👨🏻' => 'àwɔn ɔkùnrin ti n ja ijakadi: adúláwɔ̀ díɛ̀ àtiamɔ́lára',
+    '👨🏾‍🫯‍👨🏼' => 'àwɔn ɔkùnrin ti n ja ijakadi: adúláwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '👨🏾‍🫯‍👨🏽' => 'àwɔn ɔkùnrin ti n ja ijakadi: adúláwɔ̀ díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👨🏾‍🫯‍👨🏿' => 'àwɔn ɔkùnrin ti n ja ijakadi: adúláwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '👨🏿‍🫯‍👨🏻' => 'àwɔn ɔkùnrin ti n ja ijakadi: adúláwɔ̀ àtiamɔ́lára',
+    '👨🏿‍🫯‍👨🏼' => 'àwɔn ɔkùnrin ti n ja ijakadi: adúláwɔ̀ àtiamɔ́lára díɛ̀',
+    '👨🏿‍🫯‍👨🏽' => 'àwɔn ɔkùnrin ti n ja ijakadi: adúláwɔ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👨🏿‍🫯‍👨🏾' => 'àwɔn ɔkùnrin ti n ja ijakadi: adúláwɔ̀ àtiadúláwɔ̀ díɛ̀',
     '👨🏻‍❤‍👨🏻' => 'Lɔkɔlaya Pɛlu ɔkan: Ɔkùnrin, Ɔkùnrin, amɔ́lára',
     '👨🏻‍❤‍👨🏼' => 'Lɔkɔlaya Pɛlu ɔkan: Ɔkùnrin, Ɔkùnrin, amɔ́lára, amɔ́lára díɛ̀',
     '👨🏻‍❤‍👨🏽' => 'Lɔkɔlaya Pɛlu ɔkan: Ɔkùnrin, Ɔkùnrin, amɔ́lára, amɔ́láwɔ̀ díɛ̀',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'Lɔkɔlaya Pɛlu ɔkan: Ɔkùnrin, Ɔkùnrin, adúláwɔ̀, amɔ́láwɔ̀ díɛ̀',
     '👨🏿‍❤‍👨🏾' => 'Lɔkɔlaya Pɛlu ɔkan: Ɔkùnrin, Ɔkùnrin, adúláwɔ̀, adúláwɔ̀ díɛ̀',
     '👨🏿‍❤‍👨🏿' => 'Lɔkɔlaya Pɛlu ɔkan: Ɔkùnrin, Ɔkùnrin, adúláwɔ̀',
+    '👨🏻‍🐰‍👨🏼' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́lára àtiamɔ́lára díɛ̀',
+    '👨🏻‍🐰‍👨🏽' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́lára àtiamɔ́láwɔ̀ díɛ̀',
+    '👨🏻‍🐰‍👨🏾' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́lára àtiadúláwɔ̀ díɛ̀',
+    '👨🏻‍🐰‍👨🏿' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́lára àtiadúláwɔ̀',
+    '👨🏼‍🐰‍👨🏻' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́lára díɛ̀ àtiamɔ́lára',
+    '👨🏼‍🐰‍👨🏽' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́lára díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👨🏼‍🐰‍👨🏾' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́lára díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '👨🏼‍🐰‍👨🏿' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́lára díɛ̀ àtiadúláwɔ̀',
+    '👨🏽‍🐰‍👨🏻' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára',
+    '👨🏽‍🐰‍👨🏼' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '👨🏽‍🐰‍👨🏾' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '👨🏽‍🐰‍👨🏿' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '👨🏾‍🐰‍👨🏻' => 'àwɔn ɔkùnrin elétí ehoro: adúláwɔ̀ díɛ̀ àtiamɔ́lára',
+    '👨🏾‍🐰‍👨🏼' => 'àwɔn ɔkùnrin elétí ehoro: adúláwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '👨🏾‍🐰‍👨🏽' => 'àwɔn ɔkùnrin elétí ehoro: adúláwɔ̀ díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👨🏾‍🐰‍👨🏿' => 'àwɔn ɔkùnrin elétí ehoro: adúláwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '👨🏿‍🐰‍👨🏻' => 'àwɔn ɔkùnrin elétí ehoro: adúláwɔ̀ àtiamɔ́lára',
+    '👨🏿‍🐰‍👨🏼' => 'àwɔn ɔkùnrin elétí ehoro: adúláwɔ̀ àtiamɔ́lára díɛ̀',
+    '👨🏿‍🐰‍👨🏽' => 'àwɔn ɔkùnrin elétí ehoro: adúláwɔ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👨🏿‍🐰‍👨🏾' => 'àwɔn ɔkùnrin elétí ehoro: adúláwɔ̀ àtiadúláwɔ̀ díɛ̀',
+    '👩🏻‍🫯‍👩🏼' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́lára àtiamɔ́lára díɛ̀',
+    '👩🏻‍🫯‍👩🏽' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́lára àtiamɔ́láwɔ̀ díɛ̀',
+    '👩🏻‍🫯‍👩🏾' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́lára àtiadúláwɔ̀ díɛ̀',
+    '👩🏻‍🫯‍👩🏿' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́lára àtiadúláwɔ̀',
+    '👩🏼‍🫯‍👩🏻' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́lára díɛ̀ àtiamɔ́lára',
+    '👩🏼‍🫯‍👩🏽' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́lára díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👩🏼‍🫯‍👩🏾' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́lára díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '👩🏼‍🫯‍👩🏿' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́lára díɛ̀ àtiadúláwɔ̀',
+    '👩🏽‍🫯‍👩🏻' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára',
+    '👩🏽‍🫯‍👩🏼' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '👩🏽‍🫯‍👩🏾' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '👩🏽‍🫯‍👩🏿' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '👩🏾‍🫯‍👩🏻' => 'àwɔn obìnrn tí ń jà ijakadi: adúláwɔ̀ díɛ̀ àtiamɔ́lára',
+    '👩🏾‍🫯‍👩🏼' => 'àwɔn obìnrn tí ń jà ijakadi: adúláwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '👩🏾‍🫯‍👩🏽' => 'àwɔn obìnrn tí ń jà ijakadi: adúláwɔ̀ díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👩🏾‍🫯‍👩🏿' => 'àwɔn obìnrn tí ń jà ijakadi: adúláwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '👩🏿‍🫯‍👩🏻' => 'àwɔn obìnrn tí ń jà ijakadi: adúláwɔ̀ àtiamɔ́lára',
+    '👩🏿‍🫯‍👩🏼' => 'àwɔn obìnrn tí ń jà ijakadi: adúláwɔ̀ àtiamɔ́lára díɛ̀',
+    '👩🏿‍🫯‍👩🏽' => 'àwɔn obìnrn tí ń jà ijakadi: adúláwɔ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👩🏿‍🫯‍👩🏾' => 'àwɔn obìnrn tí ń jà ijakadi: adúláwɔ̀ àtiadúláwɔ̀ díɛ̀',
     '👩🏻‍❤‍👨🏻' => 'Lɔkɔlaya Pɛlu ɔkan: Obìnrin, Ɔkùnrin, amɔ́lára',
     '👩🏻‍❤‍👨🏼' => 'Lɔkɔlaya Pɛlu ɔkan: Obìnrin, Ɔkùnrin, amɔ́lára, amɔ́lára díɛ̀',
     '👩🏻‍❤‍👨🏽' => 'Lɔkɔlaya Pɛlu ɔkan: Obìnrin, Ɔkùnrin, amɔ́lára, amɔ́láwɔ̀ díɛ̀',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'Lɔkɔlaya Pɛlu ɔkan: Obìnrin, Obìnrin, adúláwɔ̀, amɔ́láwɔ̀ díɛ̀',
     '👩🏿‍❤‍👩🏾' => 'Lɔkɔlaya Pɛlu ɔkan: Obìnrin, Obìnrin, adúláwɔ̀, adúláwɔ̀ díɛ̀',
     '👩🏿‍❤‍👩🏿' => 'Lɔkɔlaya Pɛlu ɔkan: Obìnrin, Obìnrin, adúláwɔ̀',
+    '👩🏻‍🐰‍👩🏼' => 'awɔn obìnrin eleti ehoro: amɔ́lára àtiamɔ́lára díɛ̀',
+    '👩🏻‍🐰‍👩🏽' => 'awɔn obìnrin eleti ehoro: amɔ́lára àtiamɔ́láwɔ̀ díɛ̀',
+    '👩🏻‍🐰‍👩🏾' => 'awɔn obìnrin eleti ehoro: amɔ́lára àtiadúláwɔ̀ díɛ̀',
+    '👩🏻‍🐰‍👩🏿' => 'awɔn obìnrin eleti ehoro: amɔ́lára àtiadúláwɔ̀',
+    '👩🏼‍🐰‍👩🏻' => 'awɔn obìnrin eleti ehoro: amɔ́lára díɛ̀ àtiamɔ́lára',
+    '👩🏼‍🐰‍👩🏽' => 'awɔn obìnrin eleti ehoro: amɔ́lára díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👩🏼‍🐰‍👩🏾' => 'awɔn obìnrin eleti ehoro: amɔ́lára díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '👩🏼‍🐰‍👩🏿' => 'awɔn obìnrin eleti ehoro: amɔ́lára díɛ̀ àtiadúláwɔ̀',
+    '👩🏽‍🐰‍👩🏻' => 'awɔn obìnrin eleti ehoro: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára',
+    '👩🏽‍🐰‍👩🏼' => 'awɔn obìnrin eleti ehoro: amɔ́láwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '👩🏽‍🐰‍👩🏾' => 'awɔn obìnrin eleti ehoro: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀ díɛ̀',
+    '👩🏽‍🐰‍👩🏿' => 'awɔn obìnrin eleti ehoro: amɔ́láwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '👩🏾‍🐰‍👩🏻' => 'awɔn obìnrin eleti ehoro: adúláwɔ̀ díɛ̀ àtiamɔ́lára',
+    '👩🏾‍🐰‍👩🏼' => 'awɔn obìnrin eleti ehoro: adúláwɔ̀ díɛ̀ àtiamɔ́lára díɛ̀',
+    '👩🏾‍🐰‍👩🏽' => 'awɔn obìnrin eleti ehoro: adúláwɔ̀ díɛ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👩🏾‍🐰‍👩🏿' => 'awɔn obìnrin eleti ehoro: adúláwɔ̀ díɛ̀ àtiadúláwɔ̀',
+    '👩🏿‍🐰‍👩🏻' => 'awɔn obìnrin eleti ehoro: adúláwɔ̀ àtiamɔ́lára',
+    '👩🏿‍🐰‍👩🏼' => 'awɔn obìnrin eleti ehoro: adúláwɔ̀ àtiamɔ́lára díɛ̀',
+    '👩🏿‍🐰‍👩🏽' => 'awɔn obìnrin eleti ehoro: adúláwɔ̀ àtiamɔ́láwɔ̀ díɛ̀',
+    '👩🏿‍🐰‍👩🏾' => 'awɔn obìnrin eleti ehoro: adúláwɔ̀ àtiadúláwɔ̀ díɛ̀',
     '🧑🏻‍🤝‍🧑🏻' => 'àwɔn ènìyàn tó di ara wɔn lɔ́wɔ́ mú: amɔ́lára',
     '🧑🏻‍🤝‍🧑🏼' => 'àwɔn ènìyàn tó di ara wɔn lɔ́wɔ́ mú: amɔ́lára àtiamɔ́lára díɛ̀',
     '🧑🏻‍🤝‍🧑🏽' => 'àwɔn ènìyàn tó di ara wɔn lɔ́wɔ́ mú: amɔ́lára àtiamɔ́láwɔ̀ díɛ̀',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'filaagi: Skɔ́tlándì',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'filaagi: Wélsì',
     '🧑‍🧑‍🧒‍🧒' => 'ìdílé: àgbàlagbà, àgbàlagbà, ɔmɔdé, ɔmɔdé',
-    '🚶🏻‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🚶🏼‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🚶🏽‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🚶🏾‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🚶🏿‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🚶🏻‍♂‍➡' => 'ɔkùnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🚶🏼‍♂‍➡' => 'ɔkùnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🚶🏽‍♂‍➡' => 'ɔkùnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🚶🏾‍♂‍➡' => 'ɔkùnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🚶🏿‍♂‍➡' => 'ɔkùnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🧎🏻‍♀‍➡' => 'obìnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏼‍♀‍➡' => 'obìnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏽‍♀‍➡' => 'obìnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏾‍♀‍➡' => 'obìnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏿‍♀‍➡' => 'obìnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏻‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏼‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏽‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏾‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏿‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧑🏻‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '🧑🏼‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '🧑🏽‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '🧑🏾‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '🧑🏿‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👨🏻‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👨🏼‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👨🏽‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👨🏾‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👨🏿‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👩🏻‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👩🏼‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👩🏽‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👩🏾‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👩🏿‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '🧑🏻‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '🧑🏼‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '🧑🏽‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '🧑🏾‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '🧑🏿‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👨🏻‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👨🏼‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👨🏽‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👨🏾‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👨🏿‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👩🏻‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👩🏼‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👩🏽‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👩🏾‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👩🏿‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '🧑🏻‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '🧑🏼‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '🧑🏽‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '🧑🏾‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '🧑🏿‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👨🏻‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👨🏼‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👨🏽‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👨🏾‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👨🏿‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👩🏻‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👩🏼‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👩🏽‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👩🏾‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👩🏿‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '🏃🏻‍♀‍➡' => 'obìrin tí ń sáré ìdojúkɔ ɔ̀tún',
-    '🏃🏼‍♀‍➡' => 'obìrin tí ń sáré ìdojúkɔ ɔ̀tún',
-    '🏃🏽‍♀‍➡' => 'obìrin tí ń sáré ìdojúkɔ ɔ̀tún',
-    '🏃🏾‍♀‍➡' => 'obìrin tí ń sáré ìdojúkɔ ɔ̀tún',
-    '🏃🏿‍♀‍➡' => 'obìrin tí ń sáré ìdojúkɔ ɔ̀tún',
-    '🏃🏻‍♂‍➡' => 'ɔkùnrin tí ń sáré ìdojúkɔ ɔ̀tún',
-    '🏃🏼‍♂‍➡' => 'ɔkùnrin tí ń sáré ìdojúkɔ ɔ̀tún',
-    '🏃🏽‍♂‍➡' => 'ɔkùnrin tí ń sáré ìdojúkɔ ɔ̀tún',
-    '🏃🏾‍♂‍➡' => 'ɔkùnrin tí ń sáré ìdojúkɔ ɔ̀tún',
-    '🏃🏿‍♂‍➡' => 'ɔkùnrin tí ń sáré ìdojúkɔ ɔ̀tún',
+    '🚶🏻‍♀‍➡' => 'obìnrin tí ń rìn: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🚶🏼‍♀‍➡' => 'obìnrin tí ń rìn: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🚶🏽‍♀‍➡' => 'obìnrin tí ń rìn: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🚶🏾‍♀‍➡' => 'obìnrin tí ń rìn: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🚶🏿‍♀‍➡' => 'obìnrin tí ń rìn: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '🚶🏻‍♂‍➡' => 'ɔkùnrin tí ń rìn: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🚶🏼‍♂‍➡' => 'ɔkùnrin tí ń rìn: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🚶🏽‍♂‍➡' => 'ɔkùnrin tí ń rìn: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🚶🏾‍♂‍➡' => 'ɔkùnrin tí ń rìn: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🚶🏿‍♂‍➡' => 'ɔkùnrin tí ń rìn: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏻‍♀‍➡' => 'obìnrin tó kúnlɛ̀: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🧎🏼‍♀‍➡' => 'obìnrin tó kúnlɛ̀: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏽‍♀‍➡' => 'obìnrin tó kúnlɛ̀: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏾‍♀‍➡' => 'obìnrin tó kúnlɛ̀: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏿‍♀‍➡' => 'obìnrin tó kúnlɛ̀: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏻‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🧎🏼‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏽‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏾‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏿‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏻‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🧑🏼‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏽‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏾‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏿‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏻‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '👨🏼‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏽‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏾‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏿‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏻‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '👩🏼‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏽‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏾‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏿‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏻‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🧑🏼‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏽‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏾‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏿‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏻‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '👨🏼‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏽‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏾‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏿‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏻‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '👩🏼‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏽‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏾‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏿‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏻‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🧑🏼‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏽‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏾‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧑🏿‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏻‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '👨🏼‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏽‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏾‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👨🏿‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏻‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '👩🏼‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏽‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏾‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '👩🏿‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏻‍♀‍➡' => 'obìrin tí ń sáré: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🏃🏼‍♀‍➡' => 'obìrin tí ń sáré: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏽‍♀‍➡' => 'obìrin tí ń sáré: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏾‍♀‍➡' => 'obìrin tí ń sáré: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏿‍♀‍➡' => 'obìrin tí ń sáré: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏻‍♂‍➡' => 'ɔkùnrin tí ń sáré: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🏃🏼‍♂‍➡' => 'ɔkùnrin tí ń sáré: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏽‍♂‍➡' => 'ɔkùnrin tí ń sáré: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏾‍♂‍➡' => 'ɔkùnrin tí ń sáré: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏿‍♂‍➡' => 'ɔkùnrin tí ń sáré: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
     '🫱🏻‍🫲🏼' => 'Ìbɔwɔ́: amɔ́lára àtiamɔ́lára díɛ̀',
     '🫱🏻‍🫲🏽' => 'Ìbɔwɔ́: amɔ́lára àtiamɔ́láwɔ̀ díɛ̀',
     '🫱🏻‍🫲🏾' => 'Ìbɔwɔ́: amɔ́lára àtiadúláwɔ̀ díɛ̀',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'Ìbɔwɔ́: adúláwɔ̀ àtiamɔ́lára díɛ̀',
     '🫱🏿‍🫲🏽' => 'Ìbɔwɔ́: adúláwɔ̀ àtiamɔ́láwɔ̀ díɛ̀',
     '🫱🏿‍🫲🏾' => 'Ìbɔwɔ́: adúláwɔ̀ àtiadúláwɔ̀ díɛ̀',
-    '🚶‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🚶‍♂‍➡' => 'ɔkùnrin tí ń rìn ìdojúkɔ ɔ̀tún',
-    '🧎‍♀‍➡' => 'obìnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧑‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👨‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '👩‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun ìdojúkɔ ɔ̀tún',
-    '🧑‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👨‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '👩‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò ìdojúkɔ ɔ̀tún',
-    '🧑‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👨‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '👩‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí ìdojúkɔ ɔ̀tún',
-    '🏃‍♀‍➡' => 'obìrin tí ń sáré ìdojúkɔ ɔ̀tún',
-    '🏃‍♂‍➡' => 'ɔkùnrin tí ń sáré ìdojúkɔ ɔ̀tún',
+    '🚶‍♀‍➡' => 'obìnrin tí ń rìn: ìdojúkɔ ɔ̀tún',
+    '🚶‍♂‍➡' => 'ɔkùnrin tí ń rìn: ìdojúkɔ ɔ̀tún',
+    '🧎‍♀‍➡' => 'obìnrin tó kúnlɛ̀: ìdojúkɔ ɔ̀tún',
+    '🧎‍♂‍➡' => 'ɔkùnrin tó kúnlɛ̀: ìdojúkɔ ɔ̀tún',
+    '🧑‍🦯‍➡' => 'ènìyàn pɛ̀lú ɔ̀pá funfun: ìdojúkɔ ɔ̀tún',
+    '👨‍🦯‍➡' => 'ɔkùnrin pɛ̀lú ɔ̀pá funfun: ìdojúkɔ ɔ̀tún',
+    '👩‍🦯‍➡' => 'obìnrin pɛ̀lú ɔ̀pá funfun: ìdojúkɔ ɔ̀tún',
+    '🧑‍🦼‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: ìdojúkɔ ɔ̀tún',
+    '👨‍🦼‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: ìdojúkɔ ɔ̀tún',
+    '👩‍🦼‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn ɛlɛ́rɔ-mɔ́tò: ìdojúkɔ ɔ̀tún',
+    '🧑‍🦽‍➡' => 'ènìyàn nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: ìdojúkɔ ɔ̀tún',
+    '👨‍🦽‍➡' => 'ɔkùnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: ìdojúkɔ ɔ̀tún',
+    '👩‍🦽‍➡' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí: ìdojúkɔ ɔ̀tún',
+    '🏃‍♀‍➡' => 'obìrin tí ń sáré: ìdojúkɔ ɔ̀tún',
+    '🏃‍♂‍➡' => 'ɔkùnrin tí ń sáré: ìdojúkɔ ɔ̀tún',
     '👩‍❤‍👨' => 'Lɔkɔlaya Pɛlu ɔkan: Obìnrin àtiƆkùnrin',
     '👨‍❤‍👨' => 'Lɔkɔlaya Pɛlu ɔkan: Ɔkùnrin àtiƆkùnrin',
     '👩‍❤‍👩' => 'Lɔkɔlaya Pɛlu ɔkan: Obìnrin àtiObìnrin',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'àgbà: amɔ́láwɔ̀ díɛ̀ àtiorí pípá',
     '🧑🏾‍🦲' => 'àgbà: adúláwɔ̀ díɛ̀ àtiorí pípá',
     '🧑🏿‍🦲' => 'àgbà: adúláwɔ̀ àtiorí pípá',
+    '🧑🏻‍🩰' => 'oníjó alájòóyípo: amɔ́lára',
+    '🧑🏼‍🩰' => 'oníjó alájòóyípo: amɔ́lára díɛ̀',
+    '🧑🏽‍🩰' => 'oníjó alájòóyípo: amɔ́láwɔ̀ díɛ̀',
+    '🧑🏾‍🩰' => 'oníjó alájòóyípo: adúláwɔ̀ díɛ̀',
+    '🧑🏿‍🩰' => 'oníjó alájòóyípo: adúláwɔ̀',
     '🧔🏻‍♂' => 'ɔkùnrin: amɔ́lára àtiirùgbɔ̀n',
     '🧔🏼‍♂' => 'ɔkùnrin: amɔ́lára díɛ̀ àtiirùgbɔ̀n',
     '🧔🏽‍♂' => 'ɔkùnrin: amɔ́láwɔ̀ díɛ̀ àtiirùgbɔ̀n',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'obìnrin tí ń rìn: amɔ́láwɔ̀ díɛ̀',
     '🚶🏾‍♀' => 'obìnrin tí ń rìn: adúláwɔ̀ díɛ̀',
     '🚶🏿‍♀' => 'obìnrin tí ń rìn: adúláwɔ̀',
-    '🚶🏻‍➡' => 'Ɛni N Rin ìdojúkɔ ɔ̀tún',
-    '🚶🏼‍➡' => 'Ɛni N Rin ìdojúkɔ ɔ̀tún',
-    '🚶🏽‍➡' => 'Ɛni N Rin ìdojúkɔ ɔ̀tún',
-    '🚶🏾‍➡' => 'Ɛni N Rin ìdojúkɔ ɔ̀tún',
-    '🚶🏿‍➡' => 'Ɛni N Rin ìdojúkɔ ɔ̀tún',
+    '🚶🏻‍➡' => 'Ɛni N Rin: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🚶🏼‍➡' => 'Ɛni N Rin: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🚶🏽‍➡' => 'Ɛni N Rin: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🚶🏾‍➡' => 'Ɛni N Rin: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🚶🏿‍➡' => 'Ɛni N Rin: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
     '🧍🏻‍♂' => 'ɔkùnrin tó dúró: amɔ́lára',
     '🧍🏼‍♂' => 'ɔkùnrin tó dúró: amɔ́lára díɛ̀',
     '🧍🏽‍♂' => 'ɔkùnrin tó dúró: amɔ́láwɔ̀ díɛ̀',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'obìnrin tó kúnlɛ̀: amɔ́láwɔ̀ díɛ̀',
     '🧎🏾‍♀' => 'obìnrin tó kúnlɛ̀: adúláwɔ̀ díɛ̀',
     '🧎🏿‍♀' => 'obìnrin tó kúnlɛ̀: adúláwɔ̀',
-    '🧎🏻‍➡' => 'ènìyàn kíkúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏼‍➡' => 'ènìyàn kíkúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏽‍➡' => 'ènìyàn kíkúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏾‍➡' => 'ènìyàn kíkúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🧎🏿‍➡' => 'ènìyàn kíkúnlɛ̀ ìdojúkɔ ɔ̀tún',
+    '🧎🏻‍➡' => 'ènìyàn kíkúnlɛ̀: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🧎🏼‍➡' => 'ènìyàn kíkúnlɛ̀: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏽‍➡' => 'ènìyàn kíkúnlɛ̀: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏾‍➡' => 'ènìyàn kíkúnlɛ̀: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🧎🏿‍➡' => 'ènìyàn kíkúnlɛ̀: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
     '🧑🏻‍🦯' => 'ènìyàn pɛ̀lú ɔ̀pá funfun: amɔ́lára',
     '🧑🏼‍🦯' => 'ènìyàn pɛ̀lú ɔ̀pá funfun: amɔ́lára díɛ̀',
     '🧑🏽‍🦯' => 'ènìyàn pɛ̀lú ɔ̀pá funfun: amɔ́láwɔ̀ díɛ̀',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'obìrin tí ń sáré: amɔ́láwɔ̀ díɛ̀',
     '🏃🏾‍♀' => 'obìrin tí ń sáré: adúláwɔ̀ díɛ̀',
     '🏃🏿‍♀' => 'obìrin tí ń sáré: adúláwɔ̀',
-    '🏃🏻‍➡' => 'Ɛni N Sare ìdojúkɔ ɔ̀tún',
-    '🏃🏼‍➡' => 'Ɛni N Sare ìdojúkɔ ɔ̀tún',
-    '🏃🏽‍➡' => 'Ɛni N Sare ìdojúkɔ ɔ̀tún',
-    '🏃🏾‍➡' => 'Ɛni N Sare ìdojúkɔ ɔ̀tún',
-    '🏃🏿‍➡' => 'Ɛni N Sare ìdojúkɔ ɔ̀tún',
+    '🏃🏻‍➡' => 'Ɛni N Sare: amɔ́lára àtiìdojúkɔ ɔ̀tún',
+    '🏃🏼‍➡' => 'Ɛni N Sare: amɔ́lára díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏽‍➡' => 'Ɛni N Sare: amɔ́láwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏾‍➡' => 'Ɛni N Sare: adúláwɔ̀ díɛ̀ àtiìdojúkɔ ɔ̀tún',
+    '🏃🏿‍➡' => 'Ɛni N Sare: adúláwɔ̀ àtiìdojúkɔ ɔ̀tún',
+    '👯🏻‍♀' => 'awɔn obìnrin eleti ehoro: amɔ́lára',
+    '👯🏼‍♀' => 'awɔn obìnrin eleti ehoro: amɔ́lára díɛ̀',
+    '👯🏽‍♀' => 'awɔn obìnrin eleti ehoro: amɔ́láwɔ̀ díɛ̀',
+    '👯🏾‍♀' => 'awɔn obìnrin eleti ehoro: adúláwɔ̀ díɛ̀',
+    '👯🏿‍♀' => 'awɔn obìnrin eleti ehoro: adúláwɔ̀',
+    '👯🏻‍♂' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́lára',
+    '👯🏼‍♂' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́lára díɛ̀',
+    '👯🏽‍♂' => 'àwɔn ɔkùnrin elétí ehoro: amɔ́láwɔ̀ díɛ̀',
+    '👯🏾‍♂' => 'àwɔn ɔkùnrin elétí ehoro: adúláwɔ̀ díɛ̀',
+    '👯🏿‍♂' => 'àwɔn ɔkùnrin elétí ehoro: adúláwɔ̀',
     '🧖🏻‍♂' => 'Ɔkùnrin nínú Ìyàrá tó n gbóná: amɔ́lára',
     '🧖🏼‍♂' => 'Ɔkùnrin nínú Ìyàrá tó n gbóná: amɔ́lára díɛ̀',
     '🧖🏽‍♂' => 'Ɔkùnrin nínú Ìyàrá tó n gbóná: amɔ́láwɔ̀ díɛ̀',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'obìnrin tí ń yí kɛ̀kɛ́ alágbɔ̀n: amɔ́láwɔ̀ díɛ̀',
     '🤸🏾‍♀' => 'obìnrin tí ń yí kɛ̀kɛ́ alágbɔ̀n: adúláwɔ̀ díɛ̀',
     '🤸🏿‍♀' => 'obìnrin tí ń yí kɛ̀kɛ́ alágbɔ̀n: adúláwɔ̀',
+    '🤼🏻‍♀' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́lára',
+    '🤼🏼‍♀' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́lára díɛ̀',
+    '🤼🏽‍♀' => 'àwɔn obìnrn tí ń jà ijakadi: amɔ́láwɔ̀ díɛ̀',
+    '🤼🏾‍♀' => 'àwɔn obìnrn tí ń jà ijakadi: adúláwɔ̀ díɛ̀',
+    '🤼🏿‍♀' => 'àwɔn obìnrn tí ń jà ijakadi: adúláwɔ̀',
+    '🤼🏻‍♂' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́lára',
+    '🤼🏼‍♂' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́lára díɛ̀',
+    '🤼🏽‍♂' => 'àwɔn ɔkùnrin ti n ja ijakadi: amɔ́láwɔ̀ díɛ̀',
+    '🤼🏾‍♂' => 'àwɔn ɔkùnrin ti n ja ijakadi: adúláwɔ̀ díɛ̀',
+    '🤼🏿‍♂' => 'àwɔn ɔkùnrin ti n ja ijakadi: adúláwɔ̀',
     '🤽🏻‍♂' => 'ɔkùnrin n shere olomi: amɔ́lára',
     '🤽🏼‍♂' => 'ɔkùnrin n shere olomi: amɔ́lára díɛ̀',
     '🤽🏽‍♂' => 'ɔkùnrin n shere olomi: amɔ́láwɔ̀ díɛ̀',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'Obìnrin: irun rírɔ̀',
     '👩‍🦳' => 'Obìnrin: irun funfun',
     '👩‍🦲' => 'Obìnrin: orí pípá',
-    '🚶‍➡' => 'Ɛni N Rin ìdojúkɔ ɔ̀tún',
-    '🧎‍➡' => 'ènìyàn kíkúnlɛ̀ ìdojúkɔ ɔ̀tún',
-    '🏃‍➡' => 'Ɛni N Sare ìdojúkɔ ɔ̀tún',
+    '🚶‍➡' => 'Ɛni N Rin: ìdojúkɔ ɔ̀tún',
+    '🧎‍➡' => 'ènìyàn kíkúnlɛ̀: ìdojúkɔ ɔ̀tún',
+    '🏃‍➡' => 'Ɛni N Sare: ìdojúkɔ ɔ̀tún',
     '👨‍👦' => 'Ɛbí: Ɔkùnrin àtiɔmɔkùnrin',
     '👨‍👧' => 'Ɛbí: Ɔkùnrin àtiɔmɔbìrin',
     '👩‍👦' => 'Ɛbí: Obìnrin àtiɔmɔkùnrin',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'obìnrin nínú kɛ̀kɛ́-abirùn aláfɔwɔ́yí',
     '🏃‍♂' => 'ɔkùnrin tí ń sáré',
     '🏃‍♀' => 'obìrin tí ń sáré',
+    '🧑‍🩰' => 'oníjó alájòóyípo',
     '👯‍♂' => 'àwɔn ɔkùnrin elétí ehoro',
     '👯‍♀' => 'awɔn obìnrin eleti ehoro',
     '🧖‍♂' => 'Ɔkùnrin nínú Ìyàrá tó n gbóná',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'ɔkùnrin nínu kóòtú òwò: amɔ́láwɔ̀ díɛ̀',
     '🕴🏾' => 'ɔkùnrin nínu kóòtú òwò: adúláwɔ̀ díɛ̀',
     '🕴🏿' => 'ɔkùnrin nínu kóòtú òwò: adúláwɔ̀',
+    '👯🏻' => 'awɔn eniyan eleti ehoro: amɔ́lára',
+    '👯🏼' => 'awɔn eniyan eleti ehoro: amɔ́lára díɛ̀',
+    '👯🏽' => 'awɔn eniyan eleti ehoro: amɔ́láwɔ̀ díɛ̀',
+    '👯🏾' => 'awɔn eniyan eleti ehoro: adúláwɔ̀ díɛ̀',
+    '👯🏿' => 'awɔn eniyan eleti ehoro: adúláwɔ̀',
     '🧖🏻' => 'Ènìyàn nínú Ìyàrá tó n gbóná: amɔ́lára',
     '🧖🏼' => 'Ènìyàn nínú Ìyàrá tó n gbóná: amɔ́lára díɛ̀',
     '🧖🏽' => 'Ènìyàn nínú Ìyàrá tó n gbóná: amɔ́láwɔ̀ díɛ̀',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'Ɛni Kawɔ Tilɛ Kɛsɛ Soke: amɔ́láwɔ̀ díɛ̀',
     '🤸🏾' => 'Ɛni Kawɔ Tilɛ Kɛsɛ Soke: adúláwɔ̀ díɛ̀',
     '🤸🏿' => 'Ɛni Kawɔ Tilɛ Kɛsɛ Soke: adúláwɔ̀',
+    '🤼🏻' => 'Awɔn Onigidigbo: amɔ́lára',
+    '🤼🏼' => 'Awɔn Onigidigbo: amɔ́lára díɛ̀',
+    '🤼🏽' => 'Awɔn Onigidigbo: amɔ́láwɔ̀ díɛ̀',
+    '🤼🏾' => 'Awɔn Onigidigbo: adúláwɔ̀ díɛ̀',
+    '🤼🏿' => 'Awɔn Onigidigbo: adúláwɔ̀',
     '🤽🏻' => 'Ɛni N shere Olomi: amɔ́lára',
     '🤽🏼' => 'Ɛni N shere Olomi: amɔ́lára díɛ̀',
     '🤽🏽' => 'Ɛni N shere Olomi: amɔ́láwɔ̀ díɛ̀',
@@ -2169,7 +2325,7 @@
     '🇨🇩' => 'filaagi: Kóńgò – Kinshasa',
     '🇨🇫' => 'filaagi: Àrin gùngun Áfíríkà',
     '🇨🇬' => 'filaagi: Kóńgò – Brazaville',
-    '🇨🇭' => 'filaagi: switishilandi',
+    '🇨🇭' => 'filaagi: Súwísìlanìdì',
     '🇨🇮' => 'filaagi: Kóútè forà',
     '🇨🇰' => 'filaagi: Etíokun Kùúkù',
     '🇨🇱' => 'filaagi: Shílè',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'filaagi: Sháínà',
     '🇨🇴' => 'filaagi: Kòlómíbìa',
     '🇨🇵' => 'filaagi: Erékùsù Clipperston',
+    '🇨🇶' => 'filaagi: Sáàkì',
     '🇨🇷' => 'filaagi: Kuusita Ríkà',
     '🇨🇺' => 'filaagi: Kúbà',
     '🇨🇻' => 'filaagi: Etíokun Kápé féndè',
@@ -2337,7 +2494,7 @@
     '🇸🇱' => 'filaagi: Siria looni',
     '🇸🇲' => 'filaagi: Sani Marino',
     '🇸🇳' => 'filaagi: Sɛnɛga',
-    '🇸🇴' => 'filaagi: Somalia',
+    '🇸🇴' => 'filaagi: Sòmálíà',
     '🇸🇷' => 'filaagi: Surinami',
     '🇸🇸' => 'filaagi: Gúúsù Sudan',
     '🇸🇹' => 'filaagi: Sao tomi ati piriishipi',
@@ -2390,13 +2547,6 @@
     '🏽' => 'amɔ́láwɔ̀ díɛ̀',
     '🏾' => 'adúláwɔ̀ díɛ̀',
     '🏿' => 'adúláwɔ̀',
-    '🪉' => 'háàpù',
-    '🪏' => 'shɔ́bìrì',
-    '🪾' => 'igi tí kò léwɛ́',
-    '🫆' => 'ìtɛ̀ka',
-    '🫜' => 'ohun ɔ̀gbìn onígbòǹgbɔ̀',
-    '🫟' => 'fɔ́nká',
-    '🫩' => 'ojú pɛ̀lú ìsàlɛ̀ ojú tó wú',
     '😀' => 'Ojú tó rɛ́rìn',
     '😃' => 'Ojú tó rɛ́rìn Pɛ̀lú Ɛnu Lílà sílɛ̀',
     '😄' => 'ojú tó ń rɛ́rìń músɛ́ pɛ̀lú ɛnu lílà sílɛ̀ àti ɛyinjú tó ń rkrìń músɛ́',
@@ -2450,6 +2600,7 @@
     '😪' => 'Oju Iloorun',
     '🤤' => 'oju adatɔ',
     '😴' => 'Oju Ti O N Sun',
+    '🫩' => 'ojú pɛ̀lú ìsàlɛ̀ ojú tó wú',
     '😷' => 'Oju Pɛlu Iboju Ishoogun',
     '🤒' => 'oju pɛlu oshuwɔn igbona',
     '🤕' => 'Oju Pɛlu Ori ti a de Lɔja',
@@ -2476,6 +2627,7 @@
     '😯' => 'Oju Idakɛjɛ',
     '😲' => 'ojú ìyalɛnu',
     '😳' => 'Oju Idunnu',
+    '🫪' => 'ojú tó ti dìdàkudà',
     '🥺' => 'ojú tónbɛ̀bɛ̀',
     '🥹' => 'ojú tón mu ɛkún dúró',
     '😦' => 'Oju Ti o Faro Pɛlu Ɛnu lila silɛ',
@@ -2547,6 +2699,7 @@
     '💋' => 'Aami Ifɛnuko',
     '💯' => 'koko ɔgɔrun',
     '💢' => 'Àmì Ibinu',
+    '🫯' => 'ìjà inu ìkùukùu',
     '💥' => 'Ikɔlu',
     '💫' => 'Itoogbe',
     '💦' => 'Ilaagun Ti N kan',
@@ -2670,6 +2823,7 @@
     '🧞' => 'Ànjɔ̀nnú',
     '🧟' => 'Ɛbɔra',
     '🧌' => 'iwin nlá',
+    '🫈' => 'ɛ̀dá onírun',
     '💆' => 'ɛni N gba Ifɔwɔwɔnilara',
     '💇' => 'Ɛni N Gɛrun',
     '🚶' => 'Ɛni N Rin',
@@ -2713,6 +2867,7 @@
     '🫂' => 'àwɔn ènìyàn tóndìmɔ́ra',
     '👪' => 'Ɛbí',
     '👣' => 'Ipa ɛsɛ',
+    '🫆' => 'ìtɛ̀ka',
     '🦰' => 'irun pupa',
     '🦱' => 'irun rírɔ̀',
     '🦳' => 'irun funfun',
@@ -2812,6 +2967,7 @@
     '🐳' => 'Ɛja Nla Atutɔ',
     '🐋' => 'Ɛja Nla',
     '🐬' => 'Dɔfini',
+    '🫍' => 'òbéjé',
     '🦭' => 'alákàsà',
     '🐟' => 'Ɛja',
     '🐠' => 'Ɛja oorùn',
@@ -2821,6 +2977,11 @@
     '🐚' => 'Onikaraun Pinpin',
     '🪸' => 'kórà',
     '🪼' => 'ɛ̀ja jɛ́lì',
+    '🦀' => 'Alákàn',
+    '🦞' => 'akàn',
+    '🦐' => 'Ede',
+    '🦑' => 'Sikidi',
+    '🦪' => 'alákàn ńlá',
     '🐌' => 'Ìgbín',
     '🦋' => 'Labalaba',
     '🐛' => 'Ìyanjú Àshìshe',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ibi ìyéeyin òfìfo',
     '🪺' => 'ibi ìyéeyin pɛ̀lú ɛyin',
     '🍄' => 'Olu',
+    '🪾' => 'igi tí kò léwɛ́',
     '🍇' => 'Girapu',
     '🍈' => 'Ɛ̀gúsí',
     '🍉' => 'Eso Bara',
@@ -2901,6 +3063,7 @@
     '🌰' => 'Kóró inú èso búránù',
     '🫚' => 'jínjà',
     '🫛' => 'eap',
+    '🫜' => 'ohun ɔ̀gbìn onígbòǹgbɔ̀',
     '🍞' => 'Búrɛ́dì',
     '🥐' => 'Kurosanti',
     '🥖' => 'Burɛdi Baguette',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ìgbɛ́',
     '🥠' => 'kúkì fortune',
     '🥡' => 'àpótí àgbéjáde',
-    '🦀' => 'Alákàn',
-    '🦞' => 'akàn',
-    '🦐' => 'Ede',
-    '🦑' => 'Sikidi',
-    '🦪' => 'alákàn ńlá',
     '🍦' => 'Wara Didi Rirɔ',
     '🍧' => 'Yinyin Gige',
     '🍨' => 'Wara Didi',
@@ -3007,6 +3165,7 @@
     '🧭' => 'atɔ́nà',
     '🏔' => 'òkè yìnyín',
     '⛰' => 'òkè',
+    '🛘' => 'ìyɛ̀gɛ̀rɛ̀ ilɛ̀',
     '🌋' => 'Ifɛ-ilɛ',
     '🗻' => 'Oke Fuji',
     '🏕' => 'pípàgɔ́',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ɛ̀rɔ àdágbórinsétí',
     '📻' => 'rédíò',
     '🎷' => 'ipè',
+    '🎺' => 'kakaaki',
+    '🪊' => 'kàkàkí',
     '🪗' => 'akodíà',
     '🎸' => 'jìtá',
     '🎹' => 'duuru orin',
-    '🎺' => 'kakaaki',
     '🎻' => 'faolini',
     '🪕' => 'bánjò',
     '🥁' => 'Ìlù',
     '🪘' => 'ilu gigun',
     '🪇' => 'marakasi',
     '🪈' => 'fèrè',
+    '🪉' => 'háàpù',
     '📱' => 'fóònù alágbèéká',
     '📲' => 'fóònù alágbèéká pɛ̀lú ofà',
     '☎' => 'tɛlifóònù',
@@ -3430,8 +3591,9 @@
     '📑' => 'àmì ìwé àwɔn táàbù',
     '🔖' => 'àmì ìwé',
     '🏷' => 'àkɔ́lé',
-    '💰' => 'apo owo',
     '🪙' => 'koínì',
+    '💰' => 'apo owo',
+    '🪎' => 'àpótí ìshura',
     '💴' => 'owo yen',
     '💵' => 'owo dɔla',
     '💶' => 'owo uro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'nńkan èlo',
     '🧲' => 'lílɛ̀ mɔ́',
     '🪜' => 'àkàbà',
+    '🪏' => 'shɔ́bìrì',
     '⚗' => 'àlɛ́mbìk',
     '🧪' => 'tubu ayewo',
     '🧫' => 'ounje',
@@ -3697,6 +3860,7 @@
     '✴' => 'àmì àkíyèsí onígun-mé̩jɔ',
     '❇' => 'dán',
     '™' => 'àmì ìdánimɔ̀ iléeshɛ́',
+    '🫟' => 'fɔ́nká',
     '🔠' => 'shafikun latini ɔ̀rɔ̀ gbólóhùn ńlá',
     '🔡' => 'shafikun latini ɔ̀rɔ̀ gbólóhùn kékeré',
     '🔢' => 'shafikun awɔn nɔnba',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yo.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yo.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yo.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'Ifẹnuko: Obìnrin, Obìnrin, adúláwọ̀, amọ́láwọ̀ díẹ̀',
     '👩🏿‍❤‍💋‍👩🏾' => 'Ifẹnuko: Obìnrin, Obìnrin, adúláwọ̀, adúláwọ̀ díẹ̀',
     '👩🏿‍❤‍💋‍👩🏿' => 'Ifẹnuko: Obìnrin, Obìnrin, adúláwọ̀',
+    '🧑🏻‍🫯‍🧑🏼' => 'Awọn Onigidigbo: amọ́lára àtiamọ́lára díẹ̀',
+    '🧑🏻‍🫯‍🧑🏽' => 'Awọn Onigidigbo: amọ́lára àtiamọ́láwọ̀ díẹ̀',
+    '🧑🏻‍🫯‍🧑🏾' => 'Awọn Onigidigbo: amọ́lára àtiadúláwọ̀ díẹ̀',
+    '🧑🏻‍🫯‍🧑🏿' => 'Awọn Onigidigbo: amọ́lára àtiadúláwọ̀',
+    '🧑🏼‍🫯‍🧑🏻' => 'Awọn Onigidigbo: amọ́lára díẹ̀ àtiamọ́lára',
+    '🧑🏼‍🫯‍🧑🏽' => 'Awọn Onigidigbo: amọ́lára díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '🧑🏼‍🫯‍🧑🏾' => 'Awọn Onigidigbo: amọ́lára díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '🧑🏼‍🫯‍🧑🏿' => 'Awọn Onigidigbo: amọ́lára díẹ̀ àtiadúláwọ̀',
+    '🧑🏽‍🫯‍🧑🏻' => 'Awọn Onigidigbo: amọ́láwọ̀ díẹ̀ àtiamọ́lára',
+    '🧑🏽‍🫯‍🧑🏼' => 'Awọn Onigidigbo: amọ́láwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '🧑🏽‍🫯‍🧑🏾' => 'Awọn Onigidigbo: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '🧑🏽‍🫯‍🧑🏿' => 'Awọn Onigidigbo: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀',
+    '🧑🏾‍🫯‍🧑🏻' => 'Awọn Onigidigbo: adúláwọ̀ díẹ̀ àtiamọ́lára',
+    '🧑🏾‍🫯‍🧑🏼' => 'Awọn Onigidigbo: adúláwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '🧑🏾‍🫯‍🧑🏽' => 'Awọn Onigidigbo: adúláwọ̀ díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '🧑🏾‍🫯‍🧑🏿' => 'Awọn Onigidigbo: adúláwọ̀ díẹ̀ àtiadúláwọ̀',
+    '🧑🏿‍🫯‍🧑🏻' => 'Awọn Onigidigbo: adúláwọ̀ àtiamọ́lára',
+    '🧑🏿‍🫯‍🧑🏼' => 'Awọn Onigidigbo: adúláwọ̀ àtiamọ́lára díẹ̀',
+    '🧑🏿‍🫯‍🧑🏽' => 'Awọn Onigidigbo: adúláwọ̀ àtiamọ́láwọ̀ díẹ̀',
+    '🧑🏿‍🫯‍🧑🏾' => 'Awọn Onigidigbo: adúláwọ̀ àtiadúláwọ̀ díẹ̀',
     '🧑🏻‍❤‍🧑🏼' => 'Lọkọlaya Pẹlu ọkan: àgbà, àgbà, amọ́lára, amọ́lára díẹ̀',
     '🧑🏻‍❤‍🧑🏽' => 'Lọkọlaya Pẹlu ọkan: àgbà, àgbà, amọ́lára, amọ́láwọ̀ díẹ̀',
     '🧑🏻‍❤‍🧑🏾' => 'Lọkọlaya Pẹlu ọkan: àgbà, àgbà, amọ́lára, adúláwọ̀ díẹ̀',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'Lọkọlaya Pẹlu ọkan: àgbà, àgbà, adúláwọ̀, amọ́lára díẹ̀',
     '🧑🏿‍❤‍🧑🏽' => 'Lọkọlaya Pẹlu ọkan: àgbà, àgbà, adúláwọ̀, amọ́láwọ̀ díẹ̀',
     '🧑🏿‍❤‍🧑🏾' => 'Lọkọlaya Pẹlu ọkan: àgbà, àgbà, adúláwọ̀, adúláwọ̀ díẹ̀',
+    '🧑🏻‍🐰‍🧑🏼' => 'awọn eniyan eleti ehoro: amọ́lára àtiamọ́lára díẹ̀',
+    '🧑🏻‍🐰‍🧑🏽' => 'awọn eniyan eleti ehoro: amọ́lára àtiamọ́láwọ̀ díẹ̀',
+    '🧑🏻‍🐰‍🧑🏾' => 'awọn eniyan eleti ehoro: amọ́lára àtiadúláwọ̀ díẹ̀',
+    '🧑🏻‍🐰‍🧑🏿' => 'awọn eniyan eleti ehoro: amọ́lára àtiadúláwọ̀',
+    '🧑🏼‍🐰‍🧑🏻' => 'awọn eniyan eleti ehoro: amọ́lára díẹ̀ àtiamọ́lára',
+    '🧑🏼‍🐰‍🧑🏽' => 'awọn eniyan eleti ehoro: amọ́lára díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '🧑🏼‍🐰‍🧑🏾' => 'awọn eniyan eleti ehoro: amọ́lára díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '🧑🏼‍🐰‍🧑🏿' => 'awọn eniyan eleti ehoro: amọ́lára díẹ̀ àtiadúláwọ̀',
+    '🧑🏽‍🐰‍🧑🏻' => 'awọn eniyan eleti ehoro: amọ́láwọ̀ díẹ̀ àtiamọ́lára',
+    '🧑🏽‍🐰‍🧑🏼' => 'awọn eniyan eleti ehoro: amọ́láwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '🧑🏽‍🐰‍🧑🏾' => 'awọn eniyan eleti ehoro: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '🧑🏽‍🐰‍🧑🏿' => 'awọn eniyan eleti ehoro: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀',
+    '🧑🏾‍🐰‍🧑🏻' => 'awọn eniyan eleti ehoro: adúláwọ̀ díẹ̀ àtiamọ́lára',
+    '🧑🏾‍🐰‍🧑🏼' => 'awọn eniyan eleti ehoro: adúláwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '🧑🏾‍🐰‍🧑🏽' => 'awọn eniyan eleti ehoro: adúláwọ̀ díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '🧑🏾‍🐰‍🧑🏿' => 'awọn eniyan eleti ehoro: adúláwọ̀ díẹ̀ àtiadúláwọ̀',
+    '🧑🏿‍🐰‍🧑🏻' => 'awọn eniyan eleti ehoro: adúláwọ̀ àtiamọ́lára',
+    '🧑🏿‍🐰‍🧑🏼' => 'awọn eniyan eleti ehoro: adúláwọ̀ àtiamọ́lára díẹ̀',
+    '🧑🏿‍🐰‍🧑🏽' => 'awọn eniyan eleti ehoro: adúláwọ̀ àtiamọ́láwọ̀ díẹ̀',
+    '🧑🏿‍🐰‍🧑🏾' => 'awọn eniyan eleti ehoro: adúláwọ̀ àtiadúláwọ̀ díẹ̀',
+    '👨🏻‍🫯‍👨🏼' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́lára àtiamọ́lára díẹ̀',
+    '👨🏻‍🫯‍👨🏽' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́lára àtiamọ́láwọ̀ díẹ̀',
+    '👨🏻‍🫯‍👨🏾' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́lára àtiadúláwọ̀ díẹ̀',
+    '👨🏻‍🫯‍👨🏿' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́lára àtiadúláwọ̀',
+    '👨🏼‍🫯‍👨🏻' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́lára díẹ̀ àtiamọ́lára',
+    '👨🏼‍🫯‍👨🏽' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́lára díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👨🏼‍🫯‍👨🏾' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́lára díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '👨🏼‍🫯‍👨🏿' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́lára díẹ̀ àtiadúláwọ̀',
+    '👨🏽‍🫯‍👨🏻' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́láwọ̀ díẹ̀ àtiamọ́lára',
+    '👨🏽‍🫯‍👨🏼' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́láwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '👨🏽‍🫯‍👨🏾' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '👨🏽‍🫯‍👨🏿' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀',
+    '👨🏾‍🫯‍👨🏻' => 'àwọn ọkùnrin ti n ja ijakadi: adúláwọ̀ díẹ̀ àtiamọ́lára',
+    '👨🏾‍🫯‍👨🏼' => 'àwọn ọkùnrin ti n ja ijakadi: adúláwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '👨🏾‍🫯‍👨🏽' => 'àwọn ọkùnrin ti n ja ijakadi: adúláwọ̀ díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👨🏾‍🫯‍👨🏿' => 'àwọn ọkùnrin ti n ja ijakadi: adúláwọ̀ díẹ̀ àtiadúláwọ̀',
+    '👨🏿‍🫯‍👨🏻' => 'àwọn ọkùnrin ti n ja ijakadi: adúláwọ̀ àtiamọ́lára',
+    '👨🏿‍🫯‍👨🏼' => 'àwọn ọkùnrin ti n ja ijakadi: adúláwọ̀ àtiamọ́lára díẹ̀',
+    '👨🏿‍🫯‍👨🏽' => 'àwọn ọkùnrin ti n ja ijakadi: adúláwọ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👨🏿‍🫯‍👨🏾' => 'àwọn ọkùnrin ti n ja ijakadi: adúláwọ̀ àtiadúláwọ̀ díẹ̀',
     '👨🏻‍❤‍👨🏻' => 'Lọkọlaya Pẹlu ọkan: Ọkùnrin, Ọkùnrin, amọ́lára',
     '👨🏻‍❤‍👨🏼' => 'Lọkọlaya Pẹlu ọkan: Ọkùnrin, Ọkùnrin, amọ́lára, amọ́lára díẹ̀',
     '👨🏻‍❤‍👨🏽' => 'Lọkọlaya Pẹlu ọkan: Ọkùnrin, Ọkùnrin, amọ́lára, amọ́láwọ̀ díẹ̀',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'Lọkọlaya Pẹlu ọkan: Ọkùnrin, Ọkùnrin, adúláwọ̀, amọ́láwọ̀ díẹ̀',
     '👨🏿‍❤‍👨🏾' => 'Lọkọlaya Pẹlu ọkan: Ọkùnrin, Ọkùnrin, adúláwọ̀, adúláwọ̀ díẹ̀',
     '👨🏿‍❤‍👨🏿' => 'Lọkọlaya Pẹlu ọkan: Ọkùnrin, Ọkùnrin, adúláwọ̀',
+    '👨🏻‍🐰‍👨🏼' => 'àwọn ọkùnrin elétí ehoro: amọ́lára àtiamọ́lára díẹ̀',
+    '👨🏻‍🐰‍👨🏽' => 'àwọn ọkùnrin elétí ehoro: amọ́lára àtiamọ́láwọ̀ díẹ̀',
+    '👨🏻‍🐰‍👨🏾' => 'àwọn ọkùnrin elétí ehoro: amọ́lára àtiadúláwọ̀ díẹ̀',
+    '👨🏻‍🐰‍👨🏿' => 'àwọn ọkùnrin elétí ehoro: amọ́lára àtiadúláwọ̀',
+    '👨🏼‍🐰‍👨🏻' => 'àwọn ọkùnrin elétí ehoro: amọ́lára díẹ̀ àtiamọ́lára',
+    '👨🏼‍🐰‍👨🏽' => 'àwọn ọkùnrin elétí ehoro: amọ́lára díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👨🏼‍🐰‍👨🏾' => 'àwọn ọkùnrin elétí ehoro: amọ́lára díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '👨🏼‍🐰‍👨🏿' => 'àwọn ọkùnrin elétí ehoro: amọ́lára díẹ̀ àtiadúláwọ̀',
+    '👨🏽‍🐰‍👨🏻' => 'àwọn ọkùnrin elétí ehoro: amọ́láwọ̀ díẹ̀ àtiamọ́lára',
+    '👨🏽‍🐰‍👨🏼' => 'àwọn ọkùnrin elétí ehoro: amọ́láwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '👨🏽‍🐰‍👨🏾' => 'àwọn ọkùnrin elétí ehoro: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '👨🏽‍🐰‍👨🏿' => 'àwọn ọkùnrin elétí ehoro: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀',
+    '👨🏾‍🐰‍👨🏻' => 'àwọn ọkùnrin elétí ehoro: adúláwọ̀ díẹ̀ àtiamọ́lára',
+    '👨🏾‍🐰‍👨🏼' => 'àwọn ọkùnrin elétí ehoro: adúláwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '👨🏾‍🐰‍👨🏽' => 'àwọn ọkùnrin elétí ehoro: adúláwọ̀ díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👨🏾‍🐰‍👨🏿' => 'àwọn ọkùnrin elétí ehoro: adúláwọ̀ díẹ̀ àtiadúláwọ̀',
+    '👨🏿‍🐰‍👨🏻' => 'àwọn ọkùnrin elétí ehoro: adúláwọ̀ àtiamọ́lára',
+    '👨🏿‍🐰‍👨🏼' => 'àwọn ọkùnrin elétí ehoro: adúláwọ̀ àtiamọ́lára díẹ̀',
+    '👨🏿‍🐰‍👨🏽' => 'àwọn ọkùnrin elétí ehoro: adúláwọ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👨🏿‍🐰‍👨🏾' => 'àwọn ọkùnrin elétí ehoro: adúláwọ̀ àtiadúláwọ̀ díẹ̀',
+    '👩🏻‍🫯‍👩🏼' => 'àwọn obìnrn tí ń jà ijakadi: amọ́lára àtiamọ́lára díẹ̀',
+    '👩🏻‍🫯‍👩🏽' => 'àwọn obìnrn tí ń jà ijakadi: amọ́lára àtiamọ́láwọ̀ díẹ̀',
+    '👩🏻‍🫯‍👩🏾' => 'àwọn obìnrn tí ń jà ijakadi: amọ́lára àtiadúláwọ̀ díẹ̀',
+    '👩🏻‍🫯‍👩🏿' => 'àwọn obìnrn tí ń jà ijakadi: amọ́lára àtiadúláwọ̀',
+    '👩🏼‍🫯‍👩🏻' => 'àwọn obìnrn tí ń jà ijakadi: amọ́lára díẹ̀ àtiamọ́lára',
+    '👩🏼‍🫯‍👩🏽' => 'àwọn obìnrn tí ń jà ijakadi: amọ́lára díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👩🏼‍🫯‍👩🏾' => 'àwọn obìnrn tí ń jà ijakadi: amọ́lára díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '👩🏼‍🫯‍👩🏿' => 'àwọn obìnrn tí ń jà ijakadi: amọ́lára díẹ̀ àtiadúláwọ̀',
+    '👩🏽‍🫯‍👩🏻' => 'àwọn obìnrn tí ń jà ijakadi: amọ́láwọ̀ díẹ̀ àtiamọ́lára',
+    '👩🏽‍🫯‍👩🏼' => 'àwọn obìnrn tí ń jà ijakadi: amọ́láwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '👩🏽‍🫯‍👩🏾' => 'àwọn obìnrn tí ń jà ijakadi: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '👩🏽‍🫯‍👩🏿' => 'àwọn obìnrn tí ń jà ijakadi: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀',
+    '👩🏾‍🫯‍👩🏻' => 'àwọn obìnrn tí ń jà ijakadi: adúláwọ̀ díẹ̀ àtiamọ́lára',
+    '👩🏾‍🫯‍👩🏼' => 'àwọn obìnrn tí ń jà ijakadi: adúláwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '👩🏾‍🫯‍👩🏽' => 'àwọn obìnrn tí ń jà ijakadi: adúláwọ̀ díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👩🏾‍🫯‍👩🏿' => 'àwọn obìnrn tí ń jà ijakadi: adúláwọ̀ díẹ̀ àtiadúláwọ̀',
+    '👩🏿‍🫯‍👩🏻' => 'àwọn obìnrn tí ń jà ijakadi: adúláwọ̀ àtiamọ́lára',
+    '👩🏿‍🫯‍👩🏼' => 'àwọn obìnrn tí ń jà ijakadi: adúláwọ̀ àtiamọ́lára díẹ̀',
+    '👩🏿‍🫯‍👩🏽' => 'àwọn obìnrn tí ń jà ijakadi: adúláwọ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👩🏿‍🫯‍👩🏾' => 'àwọn obìnrn tí ń jà ijakadi: adúláwọ̀ àtiadúláwọ̀ díẹ̀',
     '👩🏻‍❤‍👨🏻' => 'Lọkọlaya Pẹlu ọkan: Obìnrin, Ọkùnrin, amọ́lára',
     '👩🏻‍❤‍👨🏼' => 'Lọkọlaya Pẹlu ọkan: Obìnrin, Ọkùnrin, amọ́lára, amọ́lára díẹ̀',
     '👩🏻‍❤‍👨🏽' => 'Lọkọlaya Pẹlu ọkan: Obìnrin, Ọkùnrin, amọ́lára, amọ́láwọ̀ díẹ̀',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'Lọkọlaya Pẹlu ọkan: Obìnrin, Obìnrin, adúláwọ̀, amọ́láwọ̀ díẹ̀',
     '👩🏿‍❤‍👩🏾' => 'Lọkọlaya Pẹlu ọkan: Obìnrin, Obìnrin, adúláwọ̀, adúláwọ̀ díẹ̀',
     '👩🏿‍❤‍👩🏿' => 'Lọkọlaya Pẹlu ọkan: Obìnrin, Obìnrin, adúláwọ̀',
+    '👩🏻‍🐰‍👩🏼' => 'awọn obìnrin eleti ehoro: amọ́lára àtiamọ́lára díẹ̀',
+    '👩🏻‍🐰‍👩🏽' => 'awọn obìnrin eleti ehoro: amọ́lára àtiamọ́láwọ̀ díẹ̀',
+    '👩🏻‍🐰‍👩🏾' => 'awọn obìnrin eleti ehoro: amọ́lára àtiadúláwọ̀ díẹ̀',
+    '👩🏻‍🐰‍👩🏿' => 'awọn obìnrin eleti ehoro: amọ́lára àtiadúláwọ̀',
+    '👩🏼‍🐰‍👩🏻' => 'awọn obìnrin eleti ehoro: amọ́lára díẹ̀ àtiamọ́lára',
+    '👩🏼‍🐰‍👩🏽' => 'awọn obìnrin eleti ehoro: amọ́lára díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👩🏼‍🐰‍👩🏾' => 'awọn obìnrin eleti ehoro: amọ́lára díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '👩🏼‍🐰‍👩🏿' => 'awọn obìnrin eleti ehoro: amọ́lára díẹ̀ àtiadúláwọ̀',
+    '👩🏽‍🐰‍👩🏻' => 'awọn obìnrin eleti ehoro: amọ́láwọ̀ díẹ̀ àtiamọ́lára',
+    '👩🏽‍🐰‍👩🏼' => 'awọn obìnrin eleti ehoro: amọ́láwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '👩🏽‍🐰‍👩🏾' => 'awọn obìnrin eleti ehoro: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀ díẹ̀',
+    '👩🏽‍🐰‍👩🏿' => 'awọn obìnrin eleti ehoro: amọ́láwọ̀ díẹ̀ àtiadúláwọ̀',
+    '👩🏾‍🐰‍👩🏻' => 'awọn obìnrin eleti ehoro: adúláwọ̀ díẹ̀ àtiamọ́lára',
+    '👩🏾‍🐰‍👩🏼' => 'awọn obìnrin eleti ehoro: adúláwọ̀ díẹ̀ àtiamọ́lára díẹ̀',
+    '👩🏾‍🐰‍👩🏽' => 'awọn obìnrin eleti ehoro: adúláwọ̀ díẹ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👩🏾‍🐰‍👩🏿' => 'awọn obìnrin eleti ehoro: adúláwọ̀ díẹ̀ àtiadúláwọ̀',
+    '👩🏿‍🐰‍👩🏻' => 'awọn obìnrin eleti ehoro: adúláwọ̀ àtiamọ́lára',
+    '👩🏿‍🐰‍👩🏼' => 'awọn obìnrin eleti ehoro: adúláwọ̀ àtiamọ́lára díẹ̀',
+    '👩🏿‍🐰‍👩🏽' => 'awọn obìnrin eleti ehoro: adúláwọ̀ àtiamọ́láwọ̀ díẹ̀',
+    '👩🏿‍🐰‍👩🏾' => 'awọn obìnrin eleti ehoro: adúláwọ̀ àtiadúláwọ̀ díẹ̀',
     '🧑🏻‍🤝‍🧑🏻' => 'àwọn ènìyàn tó di ara wọn lọ́wọ́ mú: amọ́lára',
     '🧑🏻‍🤝‍🧑🏼' => 'àwọn ènìyàn tó di ara wọn lọ́wọ́ mú: amọ́lára àtiamọ́lára díẹ̀',
     '🧑🏻‍🤝‍🧑🏽' => 'àwọn ènìyàn tó di ara wọn lọ́wọ́ mú: amọ́lára àtiamọ́láwọ̀ díẹ̀',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => 'filaagi: Skọ́tlándì',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => 'filaagi: Wélsì',
     '🧑‍🧑‍🧒‍🧒' => 'ìdílé: àgbàlagbà, àgbàlagbà, ọmọdé, ọmọdé',
-    '🚶🏻‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🚶🏼‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🚶🏽‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🚶🏾‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🚶🏿‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🚶🏻‍♂‍➡' => 'ọkùnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🚶🏼‍♂‍➡' => 'ọkùnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🚶🏽‍♂‍➡' => 'ọkùnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🚶🏾‍♂‍➡' => 'ọkùnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🚶🏿‍♂‍➡' => 'ọkùnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🧎🏻‍♀‍➡' => 'obìnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏼‍♀‍➡' => 'obìnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏽‍♀‍➡' => 'obìnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏾‍♀‍➡' => 'obìnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏿‍♀‍➡' => 'obìnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏻‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏼‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏽‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏾‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏿‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧑🏻‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '🧑🏼‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '🧑🏽‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '🧑🏾‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '🧑🏿‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👨🏻‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👨🏼‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👨🏽‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👨🏾‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👨🏿‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👩🏻‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👩🏼‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👩🏽‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👩🏾‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👩🏿‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '🧑🏻‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '🧑🏼‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '🧑🏽‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '🧑🏾‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '🧑🏿‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👨🏻‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👨🏼‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👨🏽‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👨🏾‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👨🏿‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👩🏻‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👩🏼‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👩🏽‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👩🏾‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👩🏿‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '🧑🏻‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '🧑🏼‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '🧑🏽‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '🧑🏾‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '🧑🏿‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👨🏻‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👨🏼‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👨🏽‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👨🏾‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👨🏿‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👩🏻‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👩🏼‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👩🏽‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👩🏾‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👩🏿‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '🏃🏻‍♀‍➡' => 'obìrin tí ń sáré ìdojúkọ ọ̀tún',
-    '🏃🏼‍♀‍➡' => 'obìrin tí ń sáré ìdojúkọ ọ̀tún',
-    '🏃🏽‍♀‍➡' => 'obìrin tí ń sáré ìdojúkọ ọ̀tún',
-    '🏃🏾‍♀‍➡' => 'obìrin tí ń sáré ìdojúkọ ọ̀tún',
-    '🏃🏿‍♀‍➡' => 'obìrin tí ń sáré ìdojúkọ ọ̀tún',
-    '🏃🏻‍♂‍➡' => 'ọkùnrin tí ń sáré ìdojúkọ ọ̀tún',
-    '🏃🏼‍♂‍➡' => 'ọkùnrin tí ń sáré ìdojúkọ ọ̀tún',
-    '🏃🏽‍♂‍➡' => 'ọkùnrin tí ń sáré ìdojúkọ ọ̀tún',
-    '🏃🏾‍♂‍➡' => 'ọkùnrin tí ń sáré ìdojúkọ ọ̀tún',
-    '🏃🏿‍♂‍➡' => 'ọkùnrin tí ń sáré ìdojúkọ ọ̀tún',
+    '🚶🏻‍♀‍➡' => 'obìnrin tí ń rìn: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🚶🏼‍♀‍➡' => 'obìnrin tí ń rìn: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🚶🏽‍♀‍➡' => 'obìnrin tí ń rìn: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🚶🏾‍♀‍➡' => 'obìnrin tí ń rìn: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🚶🏿‍♀‍➡' => 'obìnrin tí ń rìn: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '🚶🏻‍♂‍➡' => 'ọkùnrin tí ń rìn: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🚶🏼‍♂‍➡' => 'ọkùnrin tí ń rìn: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🚶🏽‍♂‍➡' => 'ọkùnrin tí ń rìn: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🚶🏾‍♂‍➡' => 'ọkùnrin tí ń rìn: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🚶🏿‍♂‍➡' => 'ọkùnrin tí ń rìn: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏻‍♀‍➡' => 'obìnrin tó kúnlẹ̀: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🧎🏼‍♀‍➡' => 'obìnrin tó kúnlẹ̀: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏽‍♀‍➡' => 'obìnrin tó kúnlẹ̀: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏾‍♀‍➡' => 'obìnrin tó kúnlẹ̀: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏿‍♀‍➡' => 'obìnrin tó kúnlẹ̀: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏻‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🧎🏼‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏽‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏾‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏿‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏻‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🧑🏼‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏽‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏾‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏿‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏻‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun: amọ́lára àtiìdojúkọ ọ̀tún',
+    '👨🏼‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏽‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏾‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏿‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏻‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun: amọ́lára àtiìdojúkọ ọ̀tún',
+    '👩🏼‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏽‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏾‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏿‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏻‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🧑🏼‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏽‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏾‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏿‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏻‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: amọ́lára àtiìdojúkọ ọ̀tún',
+    '👨🏼‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏽‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏾‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏿‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏻‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: amọ́lára àtiìdojúkọ ọ̀tún',
+    '👩🏼‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏽‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏾‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏿‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏻‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🧑🏼‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏽‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏾‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧑🏿‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏻‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: amọ́lára àtiìdojúkọ ọ̀tún',
+    '👨🏼‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏽‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏾‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👨🏿‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏻‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: amọ́lára àtiìdojúkọ ọ̀tún',
+    '👩🏼‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏽‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏾‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '👩🏿‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏻‍♀‍➡' => 'obìrin tí ń sáré: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🏃🏼‍♀‍➡' => 'obìrin tí ń sáré: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏽‍♀‍➡' => 'obìrin tí ń sáré: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏾‍♀‍➡' => 'obìrin tí ń sáré: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏿‍♀‍➡' => 'obìrin tí ń sáré: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏻‍♂‍➡' => 'ọkùnrin tí ń sáré: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🏃🏼‍♂‍➡' => 'ọkùnrin tí ń sáré: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏽‍♂‍➡' => 'ọkùnrin tí ń sáré: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏾‍♂‍➡' => 'ọkùnrin tí ń sáré: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏿‍♂‍➡' => 'ọkùnrin tí ń sáré: adúláwọ̀ àtiìdojúkọ ọ̀tún',
     '🫱🏻‍🫲🏼' => 'Ìbọwọ́: amọ́lára àtiamọ́lára díẹ̀',
     '🫱🏻‍🫲🏽' => 'Ìbọwọ́: amọ́lára àtiamọ́láwọ̀ díẹ̀',
     '🫱🏻‍🫲🏾' => 'Ìbọwọ́: amọ́lára àtiadúláwọ̀ díẹ̀',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => 'Ìbọwọ́: adúláwọ̀ àtiamọ́lára díẹ̀',
     '🫱🏿‍🫲🏽' => 'Ìbọwọ́: adúláwọ̀ àtiamọ́láwọ̀ díẹ̀',
     '🫱🏿‍🫲🏾' => 'Ìbọwọ́: adúláwọ̀ àtiadúláwọ̀ díẹ̀',
-    '🚶‍♀‍➡' => 'obìnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🚶‍♂‍➡' => 'ọkùnrin tí ń rìn ìdojúkọ ọ̀tún',
-    '🧎‍♀‍➡' => 'obìnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧑‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👨‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '👩‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun ìdojúkọ ọ̀tún',
-    '🧑‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👨‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '👩‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò ìdojúkọ ọ̀tún',
-    '🧑‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👨‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '👩‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí ìdojúkọ ọ̀tún',
-    '🏃‍♀‍➡' => 'obìrin tí ń sáré ìdojúkọ ọ̀tún',
-    '🏃‍♂‍➡' => 'ọkùnrin tí ń sáré ìdojúkọ ọ̀tún',
+    '🚶‍♀‍➡' => 'obìnrin tí ń rìn: ìdojúkọ ọ̀tún',
+    '🚶‍♂‍➡' => 'ọkùnrin tí ń rìn: ìdojúkọ ọ̀tún',
+    '🧎‍♀‍➡' => 'obìnrin tó kúnlẹ̀: ìdojúkọ ọ̀tún',
+    '🧎‍♂‍➡' => 'ọkùnrin tó kúnlẹ̀: ìdojúkọ ọ̀tún',
+    '🧑‍🦯‍➡' => 'ènìyàn pẹ̀lú ọ̀pá funfun: ìdojúkọ ọ̀tún',
+    '👨‍🦯‍➡' => 'ọkùnrin pẹ̀lú ọ̀pá funfun: ìdojúkọ ọ̀tún',
+    '👩‍🦯‍➡' => 'obìnrin pẹ̀lú ọ̀pá funfun: ìdojúkọ ọ̀tún',
+    '🧑‍🦼‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: ìdojúkọ ọ̀tún',
+    '👨‍🦼‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: ìdojúkọ ọ̀tún',
+    '👩‍🦼‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn ẹlẹ́rọ-mọ́tò: ìdojúkọ ọ̀tún',
+    '🧑‍🦽‍➡' => 'ènìyàn nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: ìdojúkọ ọ̀tún',
+    '👨‍🦽‍➡' => 'ọkùnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: ìdojúkọ ọ̀tún',
+    '👩‍🦽‍➡' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí: ìdojúkọ ọ̀tún',
+    '🏃‍♀‍➡' => 'obìrin tí ń sáré: ìdojúkọ ọ̀tún',
+    '🏃‍♂‍➡' => 'ọkùnrin tí ń sáré: ìdojúkọ ọ̀tún',
     '👩‍❤‍👨' => 'Lọkọlaya Pẹlu ọkan: Obìnrin àtiỌkùnrin',
     '👨‍❤‍👨' => 'Lọkọlaya Pẹlu ọkan: Ọkùnrin àtiỌkùnrin',
     '👩‍❤‍👩' => 'Lọkọlaya Pẹlu ọkan: Obìnrin àtiObìnrin',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => 'àgbà: amọ́láwọ̀ díẹ̀ àtiorí pípá',
     '🧑🏾‍🦲' => 'àgbà: adúláwọ̀ díẹ̀ àtiorí pípá',
     '🧑🏿‍🦲' => 'àgbà: adúláwọ̀ àtiorí pípá',
+    '🧑🏻‍🩰' => 'oníjó alájòóyípo: amọ́lára',
+    '🧑🏼‍🩰' => 'oníjó alájòóyípo: amọ́lára díẹ̀',
+    '🧑🏽‍🩰' => 'oníjó alájòóyípo: amọ́láwọ̀ díẹ̀',
+    '🧑🏾‍🩰' => 'oníjó alájòóyípo: adúláwọ̀ díẹ̀',
+    '🧑🏿‍🩰' => 'oníjó alájòóyípo: adúláwọ̀',
     '🧔🏻‍♂' => 'ọkùnrin: amọ́lára àtiirùgbọ̀n',
     '🧔🏼‍♂' => 'ọkùnrin: amọ́lára díẹ̀ àtiirùgbọ̀n',
     '🧔🏽‍♂' => 'ọkùnrin: amọ́láwọ̀ díẹ̀ àtiirùgbọ̀n',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => 'obìnrin tí ń rìn: amọ́láwọ̀ díẹ̀',
     '🚶🏾‍♀' => 'obìnrin tí ń rìn: adúláwọ̀ díẹ̀',
     '🚶🏿‍♀' => 'obìnrin tí ń rìn: adúláwọ̀',
-    '🚶🏻‍➡' => 'Ẹni N Rin ìdojúkọ ọ̀tún',
-    '🚶🏼‍➡' => 'Ẹni N Rin ìdojúkọ ọ̀tún',
-    '🚶🏽‍➡' => 'Ẹni N Rin ìdojúkọ ọ̀tún',
-    '🚶🏾‍➡' => 'Ẹni N Rin ìdojúkọ ọ̀tún',
-    '🚶🏿‍➡' => 'Ẹni N Rin ìdojúkọ ọ̀tún',
+    '🚶🏻‍➡' => 'Ẹni N Rin: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🚶🏼‍➡' => 'Ẹni N Rin: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🚶🏽‍➡' => 'Ẹni N Rin: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🚶🏾‍➡' => 'Ẹni N Rin: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🚶🏿‍➡' => 'Ẹni N Rin: adúláwọ̀ àtiìdojúkọ ọ̀tún',
     '🧍🏻‍♂' => 'ọkùnrin tó dúró: amọ́lára',
     '🧍🏼‍♂' => 'ọkùnrin tó dúró: amọ́lára díẹ̀',
     '🧍🏽‍♂' => 'ọkùnrin tó dúró: amọ́láwọ̀ díẹ̀',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => 'obìnrin tó kúnlẹ̀: amọ́láwọ̀ díẹ̀',
     '🧎🏾‍♀' => 'obìnrin tó kúnlẹ̀: adúláwọ̀ díẹ̀',
     '🧎🏿‍♀' => 'obìnrin tó kúnlẹ̀: adúláwọ̀',
-    '🧎🏻‍➡' => 'ènìyàn kíkúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏼‍➡' => 'ènìyàn kíkúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏽‍➡' => 'ènìyàn kíkúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏾‍➡' => 'ènìyàn kíkúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🧎🏿‍➡' => 'ènìyàn kíkúnlẹ̀ ìdojúkọ ọ̀tún',
+    '🧎🏻‍➡' => 'ènìyàn kíkúnlẹ̀: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🧎🏼‍➡' => 'ènìyàn kíkúnlẹ̀: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏽‍➡' => 'ènìyàn kíkúnlẹ̀: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏾‍➡' => 'ènìyàn kíkúnlẹ̀: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🧎🏿‍➡' => 'ènìyàn kíkúnlẹ̀: adúláwọ̀ àtiìdojúkọ ọ̀tún',
     '🧑🏻‍🦯' => 'ènìyàn pẹ̀lú ọ̀pá funfun: amọ́lára',
     '🧑🏼‍🦯' => 'ènìyàn pẹ̀lú ọ̀pá funfun: amọ́lára díẹ̀',
     '🧑🏽‍🦯' => 'ènìyàn pẹ̀lú ọ̀pá funfun: amọ́láwọ̀ díẹ̀',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => 'obìrin tí ń sáré: amọ́láwọ̀ díẹ̀',
     '🏃🏾‍♀' => 'obìrin tí ń sáré: adúláwọ̀ díẹ̀',
     '🏃🏿‍♀' => 'obìrin tí ń sáré: adúláwọ̀',
-    '🏃🏻‍➡' => 'Ẹni N Sare ìdojúkọ ọ̀tún',
-    '🏃🏼‍➡' => 'Ẹni N Sare ìdojúkọ ọ̀tún',
-    '🏃🏽‍➡' => 'Ẹni N Sare ìdojúkọ ọ̀tún',
-    '🏃🏾‍➡' => 'Ẹni N Sare ìdojúkọ ọ̀tún',
-    '🏃🏿‍➡' => 'Ẹni N Sare ìdojúkọ ọ̀tún',
+    '🏃🏻‍➡' => 'Ẹni N Sare: amọ́lára àtiìdojúkọ ọ̀tún',
+    '🏃🏼‍➡' => 'Ẹni N Sare: amọ́lára díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏽‍➡' => 'Ẹni N Sare: amọ́láwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏾‍➡' => 'Ẹni N Sare: adúláwọ̀ díẹ̀ àtiìdojúkọ ọ̀tún',
+    '🏃🏿‍➡' => 'Ẹni N Sare: adúláwọ̀ àtiìdojúkọ ọ̀tún',
+    '👯🏻‍♀' => 'awọn obìnrin eleti ehoro: amọ́lára',
+    '👯🏼‍♀' => 'awọn obìnrin eleti ehoro: amọ́lára díẹ̀',
+    '👯🏽‍♀' => 'awọn obìnrin eleti ehoro: amọ́láwọ̀ díẹ̀',
+    '👯🏾‍♀' => 'awọn obìnrin eleti ehoro: adúláwọ̀ díẹ̀',
+    '👯🏿‍♀' => 'awọn obìnrin eleti ehoro: adúláwọ̀',
+    '👯🏻‍♂' => 'àwọn ọkùnrin elétí ehoro: amọ́lára',
+    '👯🏼‍♂' => 'àwọn ọkùnrin elétí ehoro: amọ́lára díẹ̀',
+    '👯🏽‍♂' => 'àwọn ọkùnrin elétí ehoro: amọ́láwọ̀ díẹ̀',
+    '👯🏾‍♂' => 'àwọn ọkùnrin elétí ehoro: adúláwọ̀ díẹ̀',
+    '👯🏿‍♂' => 'àwọn ọkùnrin elétí ehoro: adúláwọ̀',
     '🧖🏻‍♂' => 'Ọkùnrin nínú Ìyàrá tó n gbóná: amọ́lára',
     '🧖🏼‍♂' => 'Ọkùnrin nínú Ìyàrá tó n gbóná: amọ́lára díẹ̀',
     '🧖🏽‍♂' => 'Ọkùnrin nínú Ìyàrá tó n gbóná: amọ́láwọ̀ díẹ̀',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => 'obìnrin tí ń yí kẹ̀kẹ́ alágbọ̀n: amọ́láwọ̀ díẹ̀',
     '🤸🏾‍♀' => 'obìnrin tí ń yí kẹ̀kẹ́ alágbọ̀n: adúláwọ̀ díẹ̀',
     '🤸🏿‍♀' => 'obìnrin tí ń yí kẹ̀kẹ́ alágbọ̀n: adúláwọ̀',
+    '🤼🏻‍♀' => 'àwọn obìnrn tí ń jà ijakadi: amọ́lára',
+    '🤼🏼‍♀' => 'àwọn obìnrn tí ń jà ijakadi: amọ́lára díẹ̀',
+    '🤼🏽‍♀' => 'àwọn obìnrn tí ń jà ijakadi: amọ́láwọ̀ díẹ̀',
+    '🤼🏾‍♀' => 'àwọn obìnrn tí ń jà ijakadi: adúláwọ̀ díẹ̀',
+    '🤼🏿‍♀' => 'àwọn obìnrn tí ń jà ijakadi: adúláwọ̀',
+    '🤼🏻‍♂' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́lára',
+    '🤼🏼‍♂' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́lára díẹ̀',
+    '🤼🏽‍♂' => 'àwọn ọkùnrin ti n ja ijakadi: amọ́láwọ̀ díẹ̀',
+    '🤼🏾‍♂' => 'àwọn ọkùnrin ti n ja ijakadi: adúláwọ̀ díẹ̀',
+    '🤼🏿‍♂' => 'àwọn ọkùnrin ti n ja ijakadi: adúláwọ̀',
     '🤽🏻‍♂' => 'ọkùnrin n ṣere olomi: amọ́lára',
     '🤽🏼‍♂' => 'ọkùnrin n ṣere olomi: amọ́lára díẹ̀',
     '🤽🏽‍♂' => 'ọkùnrin n ṣere olomi: amọ́láwọ̀ díẹ̀',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => 'Obìnrin: irun rírọ̀',
     '👩‍🦳' => 'Obìnrin: irun funfun',
     '👩‍🦲' => 'Obìnrin: orí pípá',
-    '🚶‍➡' => 'Ẹni N Rin ìdojúkọ ọ̀tún',
-    '🧎‍➡' => 'ènìyàn kíkúnlẹ̀ ìdojúkọ ọ̀tún',
-    '🏃‍➡' => 'Ẹni N Sare ìdojúkọ ọ̀tún',
+    '🚶‍➡' => 'Ẹni N Rin: ìdojúkọ ọ̀tún',
+    '🧎‍➡' => 'ènìyàn kíkúnlẹ̀: ìdojúkọ ọ̀tún',
+    '🏃‍➡' => 'Ẹni N Sare: ìdojúkọ ọ̀tún',
     '👨‍👦' => 'Ẹbí: Ọkùnrin àtiọmọkùnrin',
     '👨‍👧' => 'Ẹbí: Ọkùnrin àtiọmọbìrin',
     '👩‍👦' => 'Ẹbí: Obìnrin àtiọmọkùnrin',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => 'obìnrin nínú kẹ̀kẹ́-abirùn aláfọwọ́yí',
     '🏃‍♂' => 'ọkùnrin tí ń sáré',
     '🏃‍♀' => 'obìrin tí ń sáré',
+    '🧑‍🩰' => 'oníjó alájòóyípo',
     '👯‍♂' => 'àwọn ọkùnrin elétí ehoro',
     '👯‍♀' => 'awọn obìnrin eleti ehoro',
     '🧖‍♂' => 'Ọkùnrin nínú Ìyàrá tó n gbóná',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => 'ọkùnrin nínu kóòtú òwò: amọ́láwọ̀ díẹ̀',
     '🕴🏾' => 'ọkùnrin nínu kóòtú òwò: adúláwọ̀ díẹ̀',
     '🕴🏿' => 'ọkùnrin nínu kóòtú òwò: adúláwọ̀',
+    '👯🏻' => 'awọn eniyan eleti ehoro: amọ́lára',
+    '👯🏼' => 'awọn eniyan eleti ehoro: amọ́lára díẹ̀',
+    '👯🏽' => 'awọn eniyan eleti ehoro: amọ́láwọ̀ díẹ̀',
+    '👯🏾' => 'awọn eniyan eleti ehoro: adúláwọ̀ díẹ̀',
+    '👯🏿' => 'awọn eniyan eleti ehoro: adúláwọ̀',
     '🧖🏻' => 'Ènìyàn nínú Ìyàrá tó n gbóná: amọ́lára',
     '🧖🏼' => 'Ènìyàn nínú Ìyàrá tó n gbóná: amọ́lára díẹ̀',
     '🧖🏽' => 'Ènìyàn nínú Ìyàrá tó n gbóná: amọ́láwọ̀ díẹ̀',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => 'Ẹni Kawọ Tilẹ Kẹsẹ Soke: amọ́láwọ̀ díẹ̀',
     '🤸🏾' => 'Ẹni Kawọ Tilẹ Kẹsẹ Soke: adúláwọ̀ díẹ̀',
     '🤸🏿' => 'Ẹni Kawọ Tilẹ Kẹsẹ Soke: adúláwọ̀',
+    '🤼🏻' => 'Awọn Onigidigbo: amọ́lára',
+    '🤼🏼' => 'Awọn Onigidigbo: amọ́lára díẹ̀',
+    '🤼🏽' => 'Awọn Onigidigbo: amọ́láwọ̀ díẹ̀',
+    '🤼🏾' => 'Awọn Onigidigbo: adúláwọ̀ díẹ̀',
+    '🤼🏿' => 'Awọn Onigidigbo: adúláwọ̀',
     '🤽🏻' => 'Ẹni N ṣere Olomi: amọ́lára',
     '🤽🏼' => 'Ẹni N ṣere Olomi: amọ́lára díẹ̀',
     '🤽🏽' => 'Ẹni N ṣere Olomi: amọ́láwọ̀ díẹ̀',
@@ -2169,7 +2325,7 @@
     '🇨🇩' => 'filaagi: Kóńgò – Kinshasa',
     '🇨🇫' => 'filaagi: Àrin gùngun Áfíríkà',
     '🇨🇬' => 'filaagi: Kóńgò – Brazaville',
-    '🇨🇭' => 'filaagi: switiṣilandi',
+    '🇨🇭' => 'filaagi: Súwísìlanìdì',
     '🇨🇮' => 'filaagi: Kóútè forà',
     '🇨🇰' => 'filaagi: Etíokun Kùúkù',
     '🇨🇱' => 'filaagi: Ṣílè',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => 'filaagi: Ṣáínà',
     '🇨🇴' => 'filaagi: Kòlómíbìa',
     '🇨🇵' => 'filaagi: Erékùsù Clipperston',
+    '🇨🇶' => 'filaagi: Sáàkì',
     '🇨🇷' => 'filaagi: Kuusita Ríkà',
     '🇨🇺' => 'filaagi: Kúbà',
     '🇨🇻' => 'filaagi: Etíokun Kápé féndè',
@@ -2337,7 +2494,7 @@
     '🇸🇱' => 'filaagi: Siria looni',
     '🇸🇲' => 'filaagi: Sani Marino',
     '🇸🇳' => 'filaagi: Sẹnẹga',
-    '🇸🇴' => 'filaagi: Somalia',
+    '🇸🇴' => 'filaagi: Sòmálíà',
     '🇸🇷' => 'filaagi: Surinami',
     '🇸🇸' => 'filaagi: Gúúsù Sudan',
     '🇸🇹' => 'filaagi: Sao tomi ati piriiṣipi',
@@ -2390,13 +2547,6 @@
     '🏽' => 'amọ́láwọ̀ díẹ̀',
     '🏾' => 'adúláwọ̀ díẹ̀',
     '🏿' => 'adúláwọ̀',
-    '🪉' => 'háàpù',
-    '🪏' => 'ṣọ́bìrì',
-    '🪾' => 'igi tí kò léwẹ́',
-    '🫆' => 'ìtẹ̀ka',
-    '🫜' => 'ohun ọ̀gbìn onígbòǹgbọ̀',
-    '🫟' => 'fọ́nká',
-    '🫩' => 'ojú pẹ̀lú ìsàlẹ̀ ojú tó wú',
     '😀' => 'Ojú tó rẹ́rìn',
     '😃' => 'Ojú tó rẹ́rìn Pẹ̀lú Ẹnu Lílà sílẹ̀',
     '😄' => 'ojú tó ń rẹ́rìń músẹ́ pẹ̀lú ẹnu lílà sílẹ̀ àti ẹyinjú tó ń rkrìń músẹ́',
@@ -2450,6 +2600,7 @@
     '😪' => 'Oju Iloorun',
     '🤤' => 'oju adatọ',
     '😴' => 'Oju Ti O N Sun',
+    '🫩' => 'ojú pẹ̀lú ìsàlẹ̀ ojú tó wú',
     '😷' => 'Oju Pẹlu Iboju Iṣoogun',
     '🤒' => 'oju pẹlu oṣuwọn igbona',
     '🤕' => 'Oju Pẹlu Ori ti a de Lọja',
@@ -2476,6 +2627,7 @@
     '😯' => 'Oju Idakẹjẹ',
     '😲' => 'ojú ìyalẹnu',
     '😳' => 'Oju Idunnu',
+    '🫪' => 'ojú tó ti dìdàkudà',
     '🥺' => 'ojú tónbẹ̀bẹ̀',
     '🥹' => 'ojú tón mu ẹkún dúró',
     '😦' => 'Oju Ti o Faro Pẹlu Ẹnu lila silẹ',
@@ -2547,6 +2699,7 @@
     '💋' => 'Aami Ifẹnuko',
     '💯' => 'koko ọgọrun',
     '💢' => 'Àmì Ibinu',
+    '🫯' => 'ìjà inu ìkùukùu',
     '💥' => 'Ikọlu',
     '💫' => 'Itoogbe',
     '💦' => 'Ilaagun Ti N kan',
@@ -2670,6 +2823,7 @@
     '🧞' => 'Ànjọ̀nnú',
     '🧟' => 'Ẹbọra',
     '🧌' => 'iwin nlá',
+    '🫈' => 'ẹ̀dá onírun',
     '💆' => 'ẹni N gba Ifọwọwọnilara',
     '💇' => 'Ẹni N Gẹrun',
     '🚶' => 'Ẹni N Rin',
@@ -2713,6 +2867,7 @@
     '🫂' => 'àwọn ènìyàn tóndìmọ́ra',
     '👪' => 'Ẹbí',
     '👣' => 'Ipa ẹsẹ',
+    '🫆' => 'ìtẹ̀ka',
     '🦰' => 'irun pupa',
     '🦱' => 'irun rírọ̀',
     '🦳' => 'irun funfun',
@@ -2812,6 +2967,7 @@
     '🐳' => 'Ẹja Nla Atutọ',
     '🐋' => 'Ẹja Nla',
     '🐬' => 'Dọfini',
+    '🫍' => 'òbéjé',
     '🦭' => 'alákàsà',
     '🐟' => 'Ẹja',
     '🐠' => 'Ẹja oorùn',
@@ -2821,6 +2977,11 @@
     '🐚' => 'Onikaraun Pinpin',
     '🪸' => 'kórà',
     '🪼' => 'ẹ̀ja jẹ́lì',
+    '🦀' => 'Alákàn',
+    '🦞' => 'akàn',
+    '🦐' => 'Ede',
+    '🦑' => 'Sikidi',
+    '🦪' => 'alákàn ńlá',
     '🐌' => 'Ìgbín',
     '🦋' => 'Labalaba',
     '🐛' => 'Ìyanjú Àṣìṣe',
@@ -2865,6 +3026,7 @@
     '🪹' => 'ibi ìyéeyin òfìfo',
     '🪺' => 'ibi ìyéeyin pẹ̀lú ẹyin',
     '🍄' => 'Olu',
+    '🪾' => 'igi tí kò léwẹ́',
     '🍇' => 'Girapu',
     '🍈' => 'Ẹ̀gúsí',
     '🍉' => 'Eso Bara',
@@ -2901,6 +3063,7 @@
     '🌰' => 'Kóró inú èso búránù',
     '🫚' => 'jínjà',
     '🫛' => 'eap',
+    '🫜' => 'ohun ọ̀gbìn onígbòǹgbọ̀',
     '🍞' => 'Búrẹ́dì',
     '🥐' => 'Kurosanti',
     '🥖' => 'Burẹdi Baguette',
@@ -2952,11 +3115,6 @@
     '🥟' => 'ìgbẹ́',
     '🥠' => 'kúkì fortune',
     '🥡' => 'àpótí àgbéjáde',
-    '🦀' => 'Alákàn',
-    '🦞' => 'akàn',
-    '🦐' => 'Ede',
-    '🦑' => 'Sikidi',
-    '🦪' => 'alákàn ńlá',
     '🍦' => 'Wara Didi Rirọ',
     '🍧' => 'Yinyin Gige',
     '🍨' => 'Wara Didi',
@@ -3007,6 +3165,7 @@
     '🧭' => 'atọ́nà',
     '🏔' => 'òkè yìnyín',
     '⛰' => 'òkè',
+    '🛘' => 'ìyẹ̀gẹ̀rẹ̀ ilẹ̀',
     '🌋' => 'Ifẹ-ilẹ',
     '🗻' => 'Oke Fuji',
     '🏕' => 'pípàgọ́',
@@ -3367,16 +3526,18 @@
     '🎧' => 'ẹ̀rọ àdágbórinsétí',
     '📻' => 'rédíò',
     '🎷' => 'ipè',
+    '🎺' => 'kakaaki',
+    '🪊' => 'kàkàkí',
     '🪗' => 'akodíà',
     '🎸' => 'jìtá',
     '🎹' => 'duuru orin',
-    '🎺' => 'kakaaki',
     '🎻' => 'faolini',
     '🪕' => 'bánjò',
     '🥁' => 'Ìlù',
     '🪘' => 'ilu gigun',
     '🪇' => 'marakasi',
     '🪈' => 'fèrè',
+    '🪉' => 'háàpù',
     '📱' => 'fóònù alágbèéká',
     '📲' => 'fóònù alágbèéká pẹ̀lú ofà',
     '☎' => 'tẹlifóònù',
@@ -3430,8 +3591,9 @@
     '📑' => 'àmì ìwé àwọn táàbù',
     '🔖' => 'àmì ìwé',
     '🏷' => 'àkọ́lé',
-    '💰' => 'apo owo',
     '🪙' => 'koínì',
+    '💰' => 'apo owo',
+    '🪎' => 'àpótí ìṣura',
     '💴' => 'owo yen',
     '💵' => 'owo dọla',
     '💶' => 'owo uro',
@@ -3514,6 +3676,7 @@
     '🧰' => 'nńkan èlo',
     '🧲' => 'lílẹ̀ mọ́',
     '🪜' => 'àkàbà',
+    '🪏' => 'ṣọ́bìrì',
     '⚗' => 'àlẹ́mbìk',
     '🧪' => 'tubu ayewo',
     '🧫' => 'ounje',
@@ -3697,6 +3860,7 @@
     '✴' => 'àmì àkíyèsí onígun-mé̩jọ',
     '❇' => 'dán',
     '™' => 'àmì ìdánimọ̀ iléeṣẹ́',
+    '🫟' => 'fọ́nká',
     '🔠' => 'ṣafikun latini ọ̀rọ̀ gbólóhùn ńlá',
     '🔡' => 'ṣafikun latini ọ̀rọ̀ gbólóhùn kékeré',
     '🔢' => 'ṣafikun awọn nọnba',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yue_hans.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yue_hans.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yue_hans.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yue_hans.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => '吻: 女人 女人 深肤色 中肤色',
     '👩🏿‍❤‍💋‍👩🏾' => '吻: 女人 女人 深肤色 中深肤色',
     '👩🏿‍❤‍💋‍👩🏿' => '吻: 女人 女人 深肤色',
+    '🧑🏻‍🫯‍🧑🏼' => '摔交嘅人: 浅肤色 中浅肤色',
+    '🧑🏻‍🫯‍🧑🏽' => '摔交嘅人: 浅肤色 中肤色',
+    '🧑🏻‍🫯‍🧑🏾' => '摔交嘅人: 浅肤色 中深肤色',
+    '🧑🏻‍🫯‍🧑🏿' => '摔交嘅人: 浅肤色 深肤色',
+    '🧑🏼‍🫯‍🧑🏻' => '摔交嘅人: 中浅肤色 浅肤色',
+    '🧑🏼‍🫯‍🧑🏽' => '摔交嘅人: 中浅肤色 中肤色',
+    '🧑🏼‍🫯‍🧑🏾' => '摔交嘅人: 中浅肤色 中深肤色',
+    '🧑🏼‍🫯‍🧑🏿' => '摔交嘅人: 中浅肤色 深肤色',
+    '🧑🏽‍🫯‍🧑🏻' => '摔交嘅人: 中肤色 浅肤色',
+    '🧑🏽‍🫯‍🧑🏼' => '摔交嘅人: 中肤色 中浅肤色',
+    '🧑🏽‍🫯‍🧑🏾' => '摔交嘅人: 中肤色 中深肤色',
+    '🧑🏽‍🫯‍🧑🏿' => '摔交嘅人: 中肤色 深肤色',
+    '🧑🏾‍🫯‍🧑🏻' => '摔交嘅人: 中深肤色 浅肤色',
+    '🧑🏾‍🫯‍🧑🏼' => '摔交嘅人: 中深肤色 中浅肤色',
+    '🧑🏾‍🫯‍🧑🏽' => '摔交嘅人: 中深肤色 中肤色',
+    '🧑🏾‍🫯‍🧑🏿' => '摔交嘅人: 中深肤色 深肤色',
+    '🧑🏿‍🫯‍🧑🏻' => '摔交嘅人: 深肤色 浅肤色',
+    '🧑🏿‍🫯‍🧑🏼' => '摔交嘅人: 深肤色 中浅肤色',
+    '🧑🏿‍🫯‍🧑🏽' => '摔交嘅人: 深肤色 中肤色',
+    '🧑🏿‍🫯‍🧑🏾' => '摔交嘅人: 深肤色 中深肤色',
     '🧑🏻‍❤‍🧑🏼' => '夫妇同心: 成人 成人 浅肤色 中浅肤色',
     '🧑🏻‍❤‍🧑🏽' => '夫妇同心: 成人 成人 浅肤色 中肤色',
     '🧑🏻‍❤‍🧑🏾' => '夫妇同心: 成人 成人 浅肤色 中深肤色',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => '夫妇同心: 成人 成人 深肤色 中浅肤色',
     '🧑🏿‍❤‍🧑🏽' => '夫妇同心: 成人 成人 深肤色 中肤色',
     '🧑🏿‍❤‍🧑🏾' => '夫妇同心: 成人 成人 深肤色 中深肤色',
+    '🧑🏻‍🐰‍🧑🏼' => '戴兔仔耳嘅人: 浅肤色 中浅肤色',
+    '🧑🏻‍🐰‍🧑🏽' => '戴兔仔耳嘅人: 浅肤色 中肤色',
+    '🧑🏻‍🐰‍🧑🏾' => '戴兔仔耳嘅人: 浅肤色 中深肤色',
+    '🧑🏻‍🐰‍🧑🏿' => '戴兔仔耳嘅人: 浅肤色 深肤色',
+    '🧑🏼‍🐰‍🧑🏻' => '戴兔仔耳嘅人: 中浅肤色 浅肤色',
+    '🧑🏼‍🐰‍🧑🏽' => '戴兔仔耳嘅人: 中浅肤色 中肤色',
+    '🧑🏼‍🐰‍🧑🏾' => '戴兔仔耳嘅人: 中浅肤色 中深肤色',
+    '🧑🏼‍🐰‍🧑🏿' => '戴兔仔耳嘅人: 中浅肤色 深肤色',
+    '🧑🏽‍🐰‍🧑🏻' => '戴兔仔耳嘅人: 中肤色 浅肤色',
+    '🧑🏽‍🐰‍🧑🏼' => '戴兔仔耳嘅人: 中肤色 中浅肤色',
+    '🧑🏽‍🐰‍🧑🏾' => '戴兔仔耳嘅人: 中肤色 中深肤色',
+    '🧑🏽‍🐰‍🧑🏿' => '戴兔仔耳嘅人: 中肤色 深肤色',
+    '🧑🏾‍🐰‍🧑🏻' => '戴兔仔耳嘅人: 中深肤色 浅肤色',
+    '🧑🏾‍🐰‍🧑🏼' => '戴兔仔耳嘅人: 中深肤色 中浅肤色',
+    '🧑🏾‍🐰‍🧑🏽' => '戴兔仔耳嘅人: 中深肤色 中肤色',
+    '🧑🏾‍🐰‍🧑🏿' => '戴兔仔耳嘅人: 中深肤色 深肤色',
+    '🧑🏿‍🐰‍🧑🏻' => '戴兔仔耳嘅人: 深肤色 浅肤色',
+    '🧑🏿‍🐰‍🧑🏼' => '戴兔仔耳嘅人: 深肤色 中浅肤色',
+    '🧑🏿‍🐰‍🧑🏽' => '戴兔仔耳嘅人: 深肤色 中肤色',
+    '🧑🏿‍🐰‍🧑🏾' => '戴兔仔耳嘅人: 深肤色 中深肤色',
+    '👨🏻‍🫯‍👨🏼' => '摔交嘅男人: 浅肤色 中浅肤色',
+    '👨🏻‍🫯‍👨🏽' => '摔交嘅男人: 浅肤色 中肤色',
+    '👨🏻‍🫯‍👨🏾' => '摔交嘅男人: 浅肤色 中深肤色',
+    '👨🏻‍🫯‍👨🏿' => '摔交嘅男人: 浅肤色 深肤色',
+    '👨🏼‍🫯‍👨🏻' => '摔交嘅男人: 中浅肤色 浅肤色',
+    '👨🏼‍🫯‍👨🏽' => '摔交嘅男人: 中浅肤色 中肤色',
+    '👨🏼‍🫯‍👨🏾' => '摔交嘅男人: 中浅肤色 中深肤色',
+    '👨🏼‍🫯‍👨🏿' => '摔交嘅男人: 中浅肤色 深肤色',
+    '👨🏽‍🫯‍👨🏻' => '摔交嘅男人: 中肤色 浅肤色',
+    '👨🏽‍🫯‍👨🏼' => '摔交嘅男人: 中肤色 中浅肤色',
+    '👨🏽‍🫯‍👨🏾' => '摔交嘅男人: 中肤色 中深肤色',
+    '👨🏽‍🫯‍👨🏿' => '摔交嘅男人: 中肤色 深肤色',
+    '👨🏾‍🫯‍👨🏻' => '摔交嘅男人: 中深肤色 浅肤色',
+    '👨🏾‍🫯‍👨🏼' => '摔交嘅男人: 中深肤色 中浅肤色',
+    '👨🏾‍🫯‍👨🏽' => '摔交嘅男人: 中深肤色 中肤色',
+    '👨🏾‍🫯‍👨🏿' => '摔交嘅男人: 中深肤色 深肤色',
+    '👨🏿‍🫯‍👨🏻' => '摔交嘅男人: 深肤色 浅肤色',
+    '👨🏿‍🫯‍👨🏼' => '摔交嘅男人: 深肤色 中浅肤色',
+    '👨🏿‍🫯‍👨🏽' => '摔交嘅男人: 深肤色 中肤色',
+    '👨🏿‍🫯‍👨🏾' => '摔交嘅男人: 深肤色 中深肤色',
     '👨🏻‍❤‍👨🏻' => '夫妇同心: 男人 男人 浅肤色',
     '👨🏻‍❤‍👨🏼' => '夫妇同心: 男人 男人 浅肤色 中浅肤色',
     '👨🏻‍❤‍👨🏽' => '夫妇同心: 男人 男人 浅肤色 中肤色',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => '夫妇同心: 男人 男人 深肤色 中肤色',
     '👨🏿‍❤‍👨🏾' => '夫妇同心: 男人 男人 深肤色 中深肤色',
     '👨🏿‍❤‍👨🏿' => '夫妇同心: 男人 男人 深肤色',
+    '👨🏻‍🐰‍👨🏼' => '戴兔仔耳嘅男人: 浅肤色 中浅肤色',
+    '👨🏻‍🐰‍👨🏽' => '戴兔仔耳嘅男人: 浅肤色 中肤色',
+    '👨🏻‍🐰‍👨🏾' => '戴兔仔耳嘅男人: 浅肤色 中深肤色',
+    '👨🏻‍🐰‍👨🏿' => '戴兔仔耳嘅男人: 浅肤色 深肤色',
+    '👨🏼‍🐰‍👨🏻' => '戴兔仔耳嘅男人: 中浅肤色 浅肤色',
+    '👨🏼‍🐰‍👨🏽' => '戴兔仔耳嘅男人: 中浅肤色 中肤色',
+    '👨🏼‍🐰‍👨🏾' => '戴兔仔耳嘅男人: 中浅肤色 中深肤色',
+    '👨🏼‍🐰‍👨🏿' => '戴兔仔耳嘅男人: 中浅肤色 深肤色',
+    '👨🏽‍🐰‍👨🏻' => '戴兔仔耳嘅男人: 中肤色 浅肤色',
+    '👨🏽‍🐰‍👨🏼' => '戴兔仔耳嘅男人: 中肤色 中浅肤色',
+    '👨🏽‍🐰‍👨🏾' => '戴兔仔耳嘅男人: 中肤色 中深肤色',
+    '👨🏽‍🐰‍👨🏿' => '戴兔仔耳嘅男人: 中肤色 深肤色',
+    '👨🏾‍🐰‍👨🏻' => '戴兔仔耳嘅男人: 中深肤色 浅肤色',
+    '👨🏾‍🐰‍👨🏼' => '戴兔仔耳嘅男人: 中深肤色 中浅肤色',
+    '👨🏾‍🐰‍👨🏽' => '戴兔仔耳嘅男人: 中深肤色 中肤色',
+    '👨🏾‍🐰‍👨🏿' => '戴兔仔耳嘅男人: 中深肤色 深肤色',
+    '👨🏿‍🐰‍👨🏻' => '戴兔仔耳嘅男人: 深肤色 浅肤色',
+    '👨🏿‍🐰‍👨🏼' => '戴兔仔耳嘅男人: 深肤色 中浅肤色',
+    '👨🏿‍🐰‍👨🏽' => '戴兔仔耳嘅男人: 深肤色 中肤色',
+    '👨🏿‍🐰‍👨🏾' => '戴兔仔耳嘅男人: 深肤色 中深肤色',
+    '👩🏻‍🫯‍👩🏼' => '摔交嘅女人: 浅肤色 中浅肤色',
+    '👩🏻‍🫯‍👩🏽' => '摔交嘅女人: 浅肤色 中肤色',
+    '👩🏻‍🫯‍👩🏾' => '摔交嘅女人: 浅肤色 中深肤色',
+    '👩🏻‍🫯‍👩🏿' => '摔交嘅女人: 浅肤色 深肤色',
+    '👩🏼‍🫯‍👩🏻' => '摔交嘅女人: 中浅肤色 浅肤色',
+    '👩🏼‍🫯‍👩🏽' => '摔交嘅女人: 中浅肤色 中肤色',
+    '👩🏼‍🫯‍👩🏾' => '摔交嘅女人: 中浅肤色 中深肤色',
+    '👩🏼‍🫯‍👩🏿' => '摔交嘅女人: 中浅肤色 深肤色',
+    '👩🏽‍🫯‍👩🏻' => '摔交嘅女人: 中肤色 浅肤色',
+    '👩🏽‍🫯‍👩🏼' => '摔交嘅女人: 中肤色 中浅肤色',
+    '👩🏽‍🫯‍👩🏾' => '摔交嘅女人: 中肤色 中深肤色',
+    '👩🏽‍🫯‍👩🏿' => '摔交嘅女人: 中肤色 深肤色',
+    '👩🏾‍🫯‍👩🏻' => '摔交嘅女人: 中深肤色 浅肤色',
+    '👩🏾‍🫯‍👩🏼' => '摔交嘅女人: 中深肤色 中浅肤色',
+    '👩🏾‍🫯‍👩🏽' => '摔交嘅女人: 中深肤色 中肤色',
+    '👩🏾‍🫯‍👩🏿' => '摔交嘅女人: 中深肤色 深肤色',
+    '👩🏿‍🫯‍👩🏻' => '摔交嘅女人: 深肤色 浅肤色',
+    '👩🏿‍🫯‍👩🏼' => '摔交嘅女人: 深肤色 中浅肤色',
+    '👩🏿‍🫯‍👩🏽' => '摔交嘅女人: 深肤色 中肤色',
+    '👩🏿‍🫯‍👩🏾' => '摔交嘅女人: 深肤色 中深肤色',
     '👩🏻‍❤‍👨🏻' => '夫妇同心: 女人 男人 浅肤色',
     '👩🏻‍❤‍👨🏼' => '夫妇同心: 女人 男人 浅肤色 中浅肤色',
     '👩🏻‍❤‍👨🏽' => '夫妇同心: 女人 男人 浅肤色 中肤色',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => '夫妇同心: 女人 女人 深肤色 中肤色',
     '👩🏿‍❤‍👩🏾' => '夫妇同心: 女人 女人 深肤色 中深肤色',
     '👩🏿‍❤‍👩🏿' => '夫妇同心: 女人 女人 深肤色',
+    '👩🏻‍🐰‍👩🏼' => '戴兔仔耳嘅女人: 浅肤色 中浅肤色',
+    '👩🏻‍🐰‍👩🏽' => '戴兔仔耳嘅女人: 浅肤色 中肤色',
+    '👩🏻‍🐰‍👩🏾' => '戴兔仔耳嘅女人: 浅肤色 中深肤色',
+    '👩🏻‍🐰‍👩🏿' => '戴兔仔耳嘅女人: 浅肤色 深肤色',
+    '👩🏼‍🐰‍👩🏻' => '戴兔仔耳嘅女人: 中浅肤色 浅肤色',
+    '👩🏼‍🐰‍👩🏽' => '戴兔仔耳嘅女人: 中浅肤色 中肤色',
+    '👩🏼‍🐰‍👩🏾' => '戴兔仔耳嘅女人: 中浅肤色 中深肤色',
+    '👩🏼‍🐰‍👩🏿' => '戴兔仔耳嘅女人: 中浅肤色 深肤色',
+    '👩🏽‍🐰‍👩🏻' => '戴兔仔耳嘅女人: 中肤色 浅肤色',
+    '👩🏽‍🐰‍👩🏼' => '戴兔仔耳嘅女人: 中肤色 中浅肤色',
+    '👩🏽‍🐰‍👩🏾' => '戴兔仔耳嘅女人: 中肤色 中深肤色',
+    '👩🏽‍🐰‍👩🏿' => '戴兔仔耳嘅女人: 中肤色 深肤色',
+    '👩🏾‍🐰‍👩🏻' => '戴兔仔耳嘅女人: 中深肤色 浅肤色',
+    '👩🏾‍🐰‍👩🏼' => '戴兔仔耳嘅女人: 中深肤色 中浅肤色',
+    '👩🏾‍🐰‍👩🏽' => '戴兔仔耳嘅女人: 中深肤色 中肤色',
+    '👩🏾‍🐰‍👩🏿' => '戴兔仔耳嘅女人: 中深肤色 深肤色',
+    '👩🏿‍🐰‍👩🏻' => '戴兔仔耳嘅女人: 深肤色 浅肤色',
+    '👩🏿‍🐰‍👩🏼' => '戴兔仔耳嘅女人: 深肤色 中浅肤色',
+    '👩🏿‍🐰‍👩🏽' => '戴兔仔耳嘅女人: 深肤色 中肤色',
+    '👩🏿‍🐰‍👩🏾' => '戴兔仔耳嘅女人: 深肤色 中深肤色',
     '🧑🏻‍🤝‍🧑🏻' => '拖住嘅人: 浅肤色',
     '🧑🏻‍🤝‍🧑🏼' => '拖住嘅人: 浅肤色 中浅肤色',
     '🧑🏻‍🤝‍🧑🏽' => '拖住嘅人: 浅肤色 中肤色',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => '旗: 苏格兰',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => '旗: 威尔斯',
     '🧑‍🧑‍🧒‍🧒' => '家庭：两大两细',
-    '🚶🏻‍♀‍➡' => '行路嘅女人 向右',
-    '🚶🏼‍♀‍➡' => '行路嘅女人 向右',
-    '🚶🏽‍♀‍➡' => '行路嘅女人 向右',
-    '🚶🏾‍♀‍➡' => '行路嘅女人 向右',
-    '🚶🏿‍♀‍➡' => '行路嘅女人 向右',
-    '🚶🏻‍♂‍➡' => '行路嘅男人 向右',
-    '🚶🏼‍♂‍➡' => '行路嘅男人 向右',
-    '🚶🏽‍♂‍➡' => '行路嘅男人 向右',
-    '🚶🏾‍♂‍➡' => '行路嘅男人 向右',
-    '🚶🏿‍♂‍➡' => '行路嘅男人 向右',
-    '🧎🏻‍♀‍➡' => '跪嘅女人 向右',
-    '🧎🏼‍♀‍➡' => '跪嘅女人 向右',
-    '🧎🏽‍♀‍➡' => '跪嘅女人 向右',
-    '🧎🏾‍♀‍➡' => '跪嘅女人 向右',
-    '🧎🏿‍♀‍➡' => '跪嘅女人 向右',
-    '🧎🏻‍♂‍➡' => '跪嘅男人 向右',
-    '🧎🏼‍♂‍➡' => '跪嘅男人 向右',
-    '🧎🏽‍♂‍➡' => '跪嘅男人 向右',
-    '🧎🏾‍♂‍➡' => '跪嘅男人 向右',
-    '🧎🏿‍♂‍➡' => '跪嘅男人 向右',
-    '🧑🏻‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '🧑🏼‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '🧑🏽‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '🧑🏾‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '🧑🏿‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '👨🏻‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👨🏼‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👨🏽‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👨🏾‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👨🏿‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👩🏻‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '👩🏼‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '👩🏽‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '👩🏾‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '👩🏿‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '🧑🏻‍🦼‍➡' => '坐电动轮椅嘅人 向右',
-    '🧑🏼‍🦼‍➡' => '坐电动轮椅嘅人 向右',
-    '🧑🏽‍🦼‍➡' => '坐电动轮椅嘅人 向右',
-    '🧑🏾‍🦼‍➡' => '坐电动轮椅嘅人 向右',
-    '🧑🏿‍🦼‍➡' => '坐电动轮椅嘅人 向右',
-    '👨🏻‍🦼‍➡' => '坐电动轮椅嘅男人 向右',
-    '👨🏼‍🦼‍➡' => '坐电动轮椅嘅男人 向右',
-    '👨🏽‍🦼‍➡' => '坐电动轮椅嘅男人 向右',
-    '👨🏾‍🦼‍➡' => '坐电动轮椅嘅男人 向右',
-    '👨🏿‍🦼‍➡' => '坐电动轮椅嘅男人 向右',
-    '👩🏻‍🦼‍➡' => '坐电动轮椅嘅女人 向右',
-    '👩🏼‍🦼‍➡' => '坐电动轮椅嘅女人 向右',
-    '👩🏽‍🦼‍➡' => '坐电动轮椅嘅女人 向右',
-    '👩🏾‍🦼‍➡' => '坐电动轮椅嘅女人 向右',
-    '👩🏿‍🦼‍➡' => '坐电动轮椅嘅女人 向右',
-    '🧑🏻‍🦽‍➡' => '坐手动轮椅嘅人 向右',
-    '🧑🏼‍🦽‍➡' => '坐手动轮椅嘅人 向右',
-    '🧑🏽‍🦽‍➡' => '坐手动轮椅嘅人 向右',
-    '🧑🏾‍🦽‍➡' => '坐手动轮椅嘅人 向右',
-    '🧑🏿‍🦽‍➡' => '坐手动轮椅嘅人 向右',
-    '👨🏻‍🦽‍➡' => '坐手动轮椅嘅男人 向右',
-    '👨🏼‍🦽‍➡' => '坐手动轮椅嘅男人 向右',
-    '👨🏽‍🦽‍➡' => '坐手动轮椅嘅男人 向右',
-    '👨🏾‍🦽‍➡' => '坐手动轮椅嘅男人 向右',
-    '👨🏿‍🦽‍➡' => '坐手动轮椅嘅男人 向右',
-    '👩🏻‍🦽‍➡' => '坐手动轮椅嘅女人 向右',
-    '👩🏼‍🦽‍➡' => '坐手动轮椅嘅女人 向右',
-    '👩🏽‍🦽‍➡' => '坐手动轮椅嘅女人 向右',
-    '👩🏾‍🦽‍➡' => '坐手动轮椅嘅女人 向右',
-    '👩🏿‍🦽‍➡' => '坐手动轮椅嘅女人 向右',
-    '🏃🏻‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃🏼‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃🏽‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃🏾‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃🏿‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃🏻‍♂‍➡' => '跑步嘅男人 向右',
-    '🏃🏼‍♂‍➡' => '跑步嘅男人 向右',
-    '🏃🏽‍♂‍➡' => '跑步嘅男人 向右',
-    '🏃🏾‍♂‍➡' => '跑步嘅男人 向右',
-    '🏃🏿‍♂‍➡' => '跑步嘅男人 向右',
+    '🚶🏻‍♀‍➡' => '行路嘅女人: 浅肤色 向右',
+    '🚶🏼‍♀‍➡' => '行路嘅女人: 中浅肤色 向右',
+    '🚶🏽‍♀‍➡' => '行路嘅女人: 中肤色 向右',
+    '🚶🏾‍♀‍➡' => '行路嘅女人: 中深肤色 向右',
+    '🚶🏿‍♀‍➡' => '行路嘅女人: 深肤色 向右',
+    '🚶🏻‍♂‍➡' => '行路嘅男人: 浅肤色 向右',
+    '🚶🏼‍♂‍➡' => '行路嘅男人: 中浅肤色 向右',
+    '🚶🏽‍♂‍➡' => '行路嘅男人: 中肤色 向右',
+    '🚶🏾‍♂‍➡' => '行路嘅男人: 中深肤色 向右',
+    '🚶🏿‍♂‍➡' => '行路嘅男人: 深肤色 向右',
+    '🧎🏻‍♀‍➡' => '跪嘅女人: 浅肤色 向右',
+    '🧎🏼‍♀‍➡' => '跪嘅女人: 中浅肤色 向右',
+    '🧎🏽‍♀‍➡' => '跪嘅女人: 中肤色 向右',
+    '🧎🏾‍♀‍➡' => '跪嘅女人: 中深肤色 向右',
+    '🧎🏿‍♀‍➡' => '跪嘅女人: 深肤色 向右',
+    '🧎🏻‍♂‍➡' => '跪嘅男人: 浅肤色 向右',
+    '🧎🏼‍♂‍➡' => '跪嘅男人: 中浅肤色 向右',
+    '🧎🏽‍♂‍➡' => '跪嘅男人: 中肤色 向右',
+    '🧎🏾‍♂‍➡' => '跪嘅男人: 中深肤色 向右',
+    '🧎🏿‍♂‍➡' => '跪嘅男人: 深肤色 向右',
+    '🧑🏻‍🦯‍➡' => '揸柺杖嘅人: 浅肤色 向右',
+    '🧑🏼‍🦯‍➡' => '揸柺杖嘅人: 中浅肤色 向右',
+    '🧑🏽‍🦯‍➡' => '揸柺杖嘅人: 中肤色 向右',
+    '🧑🏾‍🦯‍➡' => '揸柺杖嘅人: 中深肤色 向右',
+    '🧑🏿‍🦯‍➡' => '揸柺杖嘅人: 深肤色 向右',
+    '👨🏻‍🦯‍➡' => '拎拐杖嘅男人: 浅肤色 向右',
+    '👨🏼‍🦯‍➡' => '拎拐杖嘅男人: 中浅肤色 向右',
+    '👨🏽‍🦯‍➡' => '拎拐杖嘅男人: 中肤色 向右',
+    '👨🏾‍🦯‍➡' => '拎拐杖嘅男人: 中深肤色 向右',
+    '👨🏿‍🦯‍➡' => '拎拐杖嘅男人: 深肤色 向右',
+    '👩🏻‍🦯‍➡' => '拎拐杖嘅女人: 浅肤色 向右',
+    '👩🏼‍🦯‍➡' => '拎拐杖嘅女人: 中浅肤色 向右',
+    '👩🏽‍🦯‍➡' => '拎拐杖嘅女人: 中肤色 向右',
+    '👩🏾‍🦯‍➡' => '拎拐杖嘅女人: 中深肤色 向右',
+    '👩🏿‍🦯‍➡' => '拎拐杖嘅女人: 深肤色 向右',
+    '🧑🏻‍🦼‍➡' => '坐电动轮椅嘅人: 浅肤色 向右',
+    '🧑🏼‍🦼‍➡' => '坐电动轮椅嘅人: 中浅肤色 向右',
+    '🧑🏽‍🦼‍➡' => '坐电动轮椅嘅人: 中肤色 向右',
+    '🧑🏾‍🦼‍➡' => '坐电动轮椅嘅人: 中深肤色 向右',
+    '🧑🏿‍🦼‍➡' => '坐电动轮椅嘅人: 深肤色 向右',
+    '👨🏻‍🦼‍➡' => '坐电动轮椅嘅男人: 浅肤色 向右',
+    '👨🏼‍🦼‍➡' => '坐电动轮椅嘅男人: 中浅肤色 向右',
+    '👨🏽‍🦼‍➡' => '坐电动轮椅嘅男人: 中肤色 向右',
+    '👨🏾‍🦼‍➡' => '坐电动轮椅嘅男人: 中深肤色 向右',
+    '👨🏿‍🦼‍➡' => '坐电动轮椅嘅男人: 深肤色 向右',
+    '👩🏻‍🦼‍➡' => '坐电动轮椅嘅女人: 浅肤色 向右',
+    '👩🏼‍🦼‍➡' => '坐电动轮椅嘅女人: 中浅肤色 向右',
+    '👩🏽‍🦼‍➡' => '坐电动轮椅嘅女人: 中肤色 向右',
+    '👩🏾‍🦼‍➡' => '坐电动轮椅嘅女人: 中深肤色 向右',
+    '👩🏿‍🦼‍➡' => '坐电动轮椅嘅女人: 深肤色 向右',
+    '🧑🏻‍🦽‍➡' => '坐手动轮椅嘅人: 浅肤色 向右',
+    '🧑🏼‍🦽‍➡' => '坐手动轮椅嘅人: 中浅肤色 向右',
+    '🧑🏽‍🦽‍➡' => '坐手动轮椅嘅人: 中肤色 向右',
+    '🧑🏾‍🦽‍➡' => '坐手动轮椅嘅人: 中深肤色 向右',
+    '🧑🏿‍🦽‍➡' => '坐手动轮椅嘅人: 深肤色 向右',
+    '👨🏻‍🦽‍➡' => '坐手动轮椅嘅男人: 浅肤色 向右',
+    '👨🏼‍🦽‍➡' => '坐手动轮椅嘅男人: 中浅肤色 向右',
+    '👨🏽‍🦽‍➡' => '坐手动轮椅嘅男人: 中肤色 向右',
+    '👨🏾‍🦽‍➡' => '坐手动轮椅嘅男人: 中深肤色 向右',
+    '👨🏿‍🦽‍➡' => '坐手动轮椅嘅男人: 深肤色 向右',
+    '👩🏻‍🦽‍➡' => '坐手动轮椅嘅女人: 浅肤色 向右',
+    '👩🏼‍🦽‍➡' => '坐手动轮椅嘅女人: 中浅肤色 向右',
+    '👩🏽‍🦽‍➡' => '坐手动轮椅嘅女人: 中肤色 向右',
+    '👩🏾‍🦽‍➡' => '坐手动轮椅嘅女人: 中深肤色 向右',
+    '👩🏿‍🦽‍➡' => '坐手动轮椅嘅女人: 深肤色 向右',
+    '🏃🏻‍♀‍➡' => '跑步嘅女人: 浅肤色 向右',
+    '🏃🏼‍♀‍➡' => '跑步嘅女人: 中浅肤色 向右',
+    '🏃🏽‍♀‍➡' => '跑步嘅女人: 中肤色 向右',
+    '🏃🏾‍♀‍➡' => '跑步嘅女人: 中深肤色 向右',
+    '🏃🏿‍♀‍➡' => '跑步嘅女人: 深肤色 向右',
+    '🏃🏻‍♂‍➡' => '跑步嘅男人: 浅肤色 向右',
+    '🏃🏼‍♂‍➡' => '跑步嘅男人: 中浅肤色 向右',
+    '🏃🏽‍♂‍➡' => '跑步嘅男人: 中肤色 向右',
+    '🏃🏾‍♂‍➡' => '跑步嘅男人: 中深肤色 向右',
+    '🏃🏿‍♂‍➡' => '跑步嘅男人: 深肤色 向右',
     '🫱🏻‍🫲🏼' => '握手: 浅肤色 中浅肤色',
     '🫱🏻‍🫲🏽' => '握手: 浅肤色 中肤色',
     '🫱🏻‍🫲🏾' => '握手: 浅肤色 中深肤色',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => '握手: 深肤色 中浅肤色',
     '🫱🏿‍🫲🏽' => '握手: 深肤色 中肤色',
     '🫱🏿‍🫲🏾' => '握手: 深肤色 中深肤色',
-    '🚶‍♀‍➡' => '行路嘅女人 向右',
-    '🚶‍♂‍➡' => '行路嘅男人 向右',
-    '🧎‍♀‍➡' => '跪嘅女人 向右',
-    '🧎‍♂‍➡' => '跪嘅男人 向右',
-    '🧑‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '👨‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👩‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '🧑‍🦼‍➡' => '坐电动轮椅嘅人 向右',
-    '👨‍🦼‍➡' => '坐电动轮椅嘅男人 向右',
-    '👩‍🦼‍➡' => '坐电动轮椅嘅女人 向右',
-    '🧑‍🦽‍➡' => '坐手动轮椅嘅人 向右',
-    '👨‍🦽‍➡' => '坐手动轮椅嘅男人 向右',
-    '👩‍🦽‍➡' => '坐手动轮椅嘅女人 向右',
-    '🏃‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃‍♂‍➡' => '跑步嘅男人 向右',
+    '🚶‍♀‍➡' => '行路嘅女人: 向右',
+    '🚶‍♂‍➡' => '行路嘅男人: 向右',
+    '🧎‍♀‍➡' => '跪嘅女人: 向右',
+    '🧎‍♂‍➡' => '跪嘅男人: 向右',
+    '🧑‍🦯‍➡' => '揸柺杖嘅人: 向右',
+    '👨‍🦯‍➡' => '拎拐杖嘅男人: 向右',
+    '👩‍🦯‍➡' => '拎拐杖嘅女人: 向右',
+    '🧑‍🦼‍➡' => '坐电动轮椅嘅人: 向右',
+    '👨‍🦼‍➡' => '坐电动轮椅嘅男人: 向右',
+    '👩‍🦼‍➡' => '坐电动轮椅嘅女人: 向右',
+    '🧑‍🦽‍➡' => '坐手动轮椅嘅人: 向右',
+    '👨‍🦽‍➡' => '坐手动轮椅嘅男人: 向右',
+    '👩‍🦽‍➡' => '坐手动轮椅嘅女人: 向右',
+    '🏃‍♀‍➡' => '跑步嘅女人: 向右',
+    '🏃‍♂‍➡' => '跑步嘅男人: 向右',
     '👩‍❤‍👨' => '夫妇同心: 女人 男人',
     '👨‍❤‍👨' => '夫妇同心: 男人 男人',
     '👩‍❤‍👩' => '夫妇同心: 女人 女人',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => '成人: 中肤色 光头',
     '🧑🏾‍🦲' => '成人: 中深肤色 光头',
     '🧑🏿‍🦲' => '成人: 深肤色 光头',
+    '🧑🏻‍🩰' => '芭蕾舞蹈员: 浅肤色',
+    '🧑🏼‍🩰' => '芭蕾舞蹈员: 中浅肤色',
+    '🧑🏽‍🩰' => '芭蕾舞蹈员: 中肤色',
+    '🧑🏾‍🩰' => '芭蕾舞蹈员: 中深肤色',
+    '🧑🏿‍🩰' => '芭蕾舞蹈员: 深肤色',
     '🧔🏻‍♂' => '男人：胡须: 浅肤色',
     '🧔🏼‍♂' => '男人：胡须: 中浅肤色',
     '🧔🏽‍♂' => '男人：胡须: 中肤色',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => '行路嘅女人: 中肤色',
     '🚶🏾‍♀' => '行路嘅女人: 中深肤色',
     '🚶🏿‍♀' => '行路嘅女人: 深肤色',
-    '🚶🏻‍➡' => '行路嘅人 向右',
-    '🚶🏼‍➡' => '行路嘅人 向右',
-    '🚶🏽‍➡' => '行路嘅人 向右',
-    '🚶🏾‍➡' => '行路嘅人 向右',
-    '🚶🏿‍➡' => '行路嘅人 向右',
+    '🚶🏻‍➡' => '行路嘅人: 浅肤色 向右',
+    '🚶🏼‍➡' => '行路嘅人: 中浅肤色 向右',
+    '🚶🏽‍➡' => '行路嘅人: 中肤色 向右',
+    '🚶🏾‍➡' => '行路嘅人: 中深肤色 向右',
+    '🚶🏿‍➡' => '行路嘅人: 深肤色 向右',
     '🧍🏻‍♂' => '企喺度嘅男人: 浅肤色',
     '🧍🏼‍♂' => '企喺度嘅男人: 中浅肤色',
     '🧍🏽‍♂' => '企喺度嘅男人: 中肤色',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => '跪嘅女人: 中肤色',
     '🧎🏾‍♀' => '跪嘅女人: 中深肤色',
     '🧎🏿‍♀' => '跪嘅女人: 深肤色',
-    '🧎🏻‍➡' => '跪嘅人 向右',
-    '🧎🏼‍➡' => '跪嘅人 向右',
-    '🧎🏽‍➡' => '跪嘅人 向右',
-    '🧎🏾‍➡' => '跪嘅人 向右',
-    '🧎🏿‍➡' => '跪嘅人 向右',
+    '🧎🏻‍➡' => '跪嘅人: 浅肤色 向右',
+    '🧎🏼‍➡' => '跪嘅人: 中浅肤色 向右',
+    '🧎🏽‍➡' => '跪嘅人: 中肤色 向右',
+    '🧎🏾‍➡' => '跪嘅人: 中深肤色 向右',
+    '🧎🏿‍➡' => '跪嘅人: 深肤色 向右',
     '🧑🏻‍🦯' => '揸柺杖嘅人: 浅肤色',
     '🧑🏼‍🦯' => '揸柺杖嘅人: 中浅肤色',
     '🧑🏽‍🦯' => '揸柺杖嘅人: 中肤色',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => '跑步嘅女人: 中肤色',
     '🏃🏾‍♀' => '跑步嘅女人: 中深肤色',
     '🏃🏿‍♀' => '跑步嘅女人: 深肤色',
-    '🏃🏻‍➡' => '跑步嘅人 向右',
-    '🏃🏼‍➡' => '跑步嘅人 向右',
-    '🏃🏽‍➡' => '跑步嘅人 向右',
-    '🏃🏾‍➡' => '跑步嘅人 向右',
-    '🏃🏿‍➡' => '跑步嘅人 向右',
+    '🏃🏻‍➡' => '跑步嘅人: 浅肤色 向右',
+    '🏃🏼‍➡' => '跑步嘅人: 中浅肤色 向右',
+    '🏃🏽‍➡' => '跑步嘅人: 中肤色 向右',
+    '🏃🏾‍➡' => '跑步嘅人: 中深肤色 向右',
+    '🏃🏿‍➡' => '跑步嘅人: 深肤色 向右',
+    '👯🏻‍♀' => '戴兔仔耳嘅女人: 浅肤色',
+    '👯🏼‍♀' => '戴兔仔耳嘅女人: 中浅肤色',
+    '👯🏽‍♀' => '戴兔仔耳嘅女人: 中肤色',
+    '👯🏾‍♀' => '戴兔仔耳嘅女人: 中深肤色',
+    '👯🏿‍♀' => '戴兔仔耳嘅女人: 深肤色',
+    '👯🏻‍♂' => '戴兔仔耳嘅男人: 浅肤色',
+    '👯🏼‍♂' => '戴兔仔耳嘅男人: 中浅肤色',
+    '👯🏽‍♂' => '戴兔仔耳嘅男人: 中肤色',
+    '👯🏾‍♂' => '戴兔仔耳嘅男人: 中深肤色',
+    '👯🏿‍♂' => '戴兔仔耳嘅男人: 深肤色',
     '🧖🏻‍♂' => '喺蒸气房嘅男人: 浅肤色',
     '🧖🏼‍♂' => '喺蒸气房嘅男人: 中浅肤色',
     '🧖🏽‍♂' => '喺蒸气房嘅男人: 中肤色',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => '侧手翻嘅女人: 中肤色',
     '🤸🏾‍♀' => '侧手翻嘅女人: 中深肤色',
     '🤸🏿‍♀' => '侧手翻嘅女人: 深肤色',
+    '🤼🏻‍♀' => '摔交嘅女人: 浅肤色',
+    '🤼🏼‍♀' => '摔交嘅女人: 中浅肤色',
+    '🤼🏽‍♀' => '摔交嘅女人: 中肤色',
+    '🤼🏾‍♀' => '摔交嘅女人: 中深肤色',
+    '🤼🏿‍♀' => '摔交嘅女人: 深肤色',
+    '🤼🏻‍♂' => '摔交嘅男人: 浅肤色',
+    '🤼🏼‍♂' => '摔交嘅男人: 中浅肤色',
+    '🤼🏽‍♂' => '摔交嘅男人: 中肤色',
+    '🤼🏾‍♂' => '摔交嘅男人: 中深肤色',
+    '🤼🏿‍♂' => '摔交嘅男人: 深肤色',
     '🤽🏻‍♂' => '玩水球嘅男人: 浅肤色',
     '🤽🏼‍♂' => '玩水球嘅男人: 中浅肤色',
     '🤽🏽‍♂' => '玩水球嘅男人: 中肤色',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => '女人: 曲发',
     '👩‍🦳' => '女人: 白色头发',
     '👩‍🦲' => '女人: 光头',
-    '🚶‍➡' => '行路嘅人 向右',
-    '🧎‍➡' => '跪嘅人 向右',
-    '🏃‍➡' => '跑步嘅人 向右',
+    '🚶‍➡' => '行路嘅人: 向右',
+    '🧎‍➡' => '跪嘅人: 向右',
+    '🏃‍➡' => '跑步嘅人: 向右',
     '👨‍👦' => '家庭: 男人 男仔',
     '👨‍👧' => '家庭: 男人 女仔',
     '👩‍👦' => '家庭: 女人 男仔',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => '坐手动轮椅嘅女人',
     '🏃‍♂' => '跑步嘅男人',
     '🏃‍♀' => '跑步嘅女人',
+    '🧑‍🩰' => '芭蕾舞蹈员',
     '👯‍♂' => '戴兔仔耳嘅男人',
     '👯‍♀' => '戴兔仔耳嘅女人',
     '🧖‍♂' => '喺蒸气房嘅男人',
@@ -1881,16 +2027,16 @@
     '🧕🏽' => '戴住头巾嘅女人: 中肤色',
     '🧕🏾' => '戴住头巾嘅女人: 中深肤色',
     '🧕🏿' => '戴住头巾嘅女人: 深肤色',
-    '🤵🏻' => '着晚礼服嘅男人: 浅肤色',
-    '🤵🏼' => '着晚礼服嘅男人: 中浅肤色',
-    '🤵🏽' => '着晚礼服嘅男人: 中肤色',
-    '🤵🏾' => '着晚礼服嘅男人: 中深肤色',
-    '🤵🏿' => '着晚礼服嘅男人: 深肤色',
-    '👰🏻' => '戴面纱嘅新娘: 浅肤色',
-    '👰🏼' => '戴面纱嘅新娘: 中浅肤色',
-    '👰🏽' => '戴面纱嘅新娘: 中肤色',
-    '👰🏾' => '戴面纱嘅新娘: 中深肤色',
-    '👰🏿' => '戴面纱嘅新娘: 深肤色',
+    '🤵🏻' => '着晚礼服嘅人: 浅肤色',
+    '🤵🏼' => '着晚礼服嘅人: 中浅肤色',
+    '🤵🏽' => '着晚礼服嘅人: 中肤色',
+    '🤵🏾' => '着晚礼服嘅人: 中深肤色',
+    '🤵🏿' => '着晚礼服嘅人: 深肤色',
+    '👰🏻' => '戴面纱嘅人: 浅肤色',
+    '👰🏼' => '戴面纱嘅人: 中浅肤色',
+    '👰🏽' => '戴面纱嘅人: 中肤色',
+    '👰🏾' => '戴面纱嘅人: 中深肤色',
+    '👰🏿' => '戴面纱嘅人: 深肤色',
     '🤰🏻' => '孕妇: 浅肤色',
     '🤰🏼' => '孕妇: 中浅肤色',
     '🤰🏽' => '孕妇: 中肤色',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => '着西装嘅男人: 中肤色',
     '🕴🏾' => '着西装嘅男人: 中深肤色',
     '🕴🏿' => '着西装嘅男人: 深肤色',
+    '👯🏻' => '戴兔仔耳嘅人: 浅肤色',
+    '👯🏼' => '戴兔仔耳嘅人: 中浅肤色',
+    '👯🏽' => '戴兔仔耳嘅人: 中肤色',
+    '👯🏾' => '戴兔仔耳嘅人: 中深肤色',
+    '👯🏿' => '戴兔仔耳嘅人: 深肤色',
     '🧖🏻' => '喺蒸气房嘅人: 浅肤色',
     '🧖🏼' => '喺蒸气房嘅人: 中浅肤色',
     '🧖🏽' => '喺蒸气房嘅人: 中肤色',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => '侧手翻嘅人: 中肤色',
     '🤸🏾' => '侧手翻嘅人: 中深肤色',
     '🤸🏿' => '侧手翻嘅人: 深肤色',
+    '🤼🏻' => '摔交嘅人: 浅肤色',
+    '🤼🏼' => '摔交嘅人: 中浅肤色',
+    '🤼🏽' => '摔交嘅人: 中肤色',
+    '🤼🏾' => '摔交嘅人: 中深肤色',
+    '🤼🏿' => '摔交嘅人: 深肤色',
     '🤽🏻' => '玩水球嘅人: 浅肤色',
     '🤽🏼' => '玩水球嘅人: 中浅肤色',
     '🤽🏽' => '玩水球嘅人: 中肤色',
@@ -2142,7 +2298,7 @@
     '🇦🇺' => '旗: 澳洲',
     '🇦🇼' => '旗: 荷属阿鲁巴',
     '🇦🇽' => '旗: 奥兰群岛',
-    '🇦🇿' => '旗: 亚塞拜然',
+    '🇦🇿' => '旗: 阿塞拜疆',
     '🇧🇦' => '旗: 波斯尼亚同黑塞哥维那',
     '🇧🇧' => '旗: 巴贝多',
     '🇧🇩' => '旗: 孟加拉',
@@ -2174,9 +2330,10 @@
     '🇨🇰' => '旗: 库克群岛',
     '🇨🇱' => '旗: 智利',
     '🇨🇲' => '旗: 喀麦隆',
-    '🇨🇳' => '旗: 中华人民共和国',
+    '🇨🇳' => '旗: 中国',
     '🇨🇴' => '旗: 哥伦比亚',
     '🇨🇵' => '旗: 克里派顿岛',
+    '🇨🇶' => '旗: 萨克',
     '🇨🇷' => '旗: 哥斯大黎加',
     '🇨🇺' => '旗: 古巴',
     '🇨🇻' => '旗: 维德角',
@@ -2209,7 +2366,7 @@
     '🇬🇦' => '旗: 加彭',
     '🇬🇧' => '旗: 英国',
     '🇬🇩' => '旗: 格瑞那达',
-    '🇬🇪' => '旗: 乔治亚共和国',
+    '🇬🇪' => '旗: 格鲁吉亚',
     '🇬🇫' => '旗: 法属圭亚那',
     '🇬🇬' => '旗: 根西岛',
     '🇬🇭' => '旗: 迦纳',
@@ -2225,7 +2382,7 @@
     '🇬🇺' => '旗: 关岛',
     '🇬🇼' => '旗: 几内亚比索',
     '🇬🇾' => '旗: 盖亚那',
-    '🇭🇰' => '旗: 中华人民共和国香港特别行政区',
+    '🇭🇰' => '旗: 中国香港特别行政区',
     '🇭🇲' => '旗: 赫德岛同麦克唐纳群岛',
     '🇭🇳' => '旗: 宏都拉斯',
     '🇭🇷' => '旗: 克罗埃西亚',
@@ -2241,7 +2398,7 @@
     '🇮🇶' => '旗: 伊拉克',
     '🇮🇷' => '旗: 伊朗',
     '🇮🇸' => '旗: 冰岛',
-    '🇮🇹' => '旗: 义大利',
+    '🇮🇹' => '旗: 意大利',
     '🇯🇪' => '旗: 泽西岛',
     '🇯🇲' => '旗: 牙买加',
     '🇯🇴' => '旗: 约旦',
@@ -2257,7 +2414,7 @@
     '🇰🇼' => '旗: 科威特',
     '🇰🇾' => '旗: 开曼群岛',
     '🇰🇿' => '旗: 哈萨克',
-    '🇱🇦' => '旗: 寮国',
+    '🇱🇦' => '旗: 老挝',
     '🇱🇧' => '旗: 黎巴嫩',
     '🇱🇨' => '旗: 圣露西亚',
     '🇱🇮' => '旗: 列支敦斯登',
@@ -2275,11 +2432,11 @@
     '🇲🇫' => '旗: 法属圣马丁',
     '🇲🇬' => '旗: 马达加斯加',
     '🇲🇭' => '旗: 马绍尔群岛',
-    '🇲🇰' => '旗: 马其顿',
+    '🇲🇰' => '旗: 北马其顿',
     '🇲🇱' => '旗: 马利',
     '🇲🇲' => '旗: 缅甸',
     '🇲🇳' => '旗: 蒙古',
-    '🇲🇴' => '旗: 中华人民共和国澳门特别行政区',
+    '🇲🇴' => '旗: 中国澳门特别行政区',
     '🇲🇵' => '旗: 北马里亚纳群岛',
     '🇲🇶' => '旗: 马丁尼克岛',
     '🇲🇷' => '旗: 茅利塔尼亚',
@@ -2302,7 +2459,7 @@
     '🇳🇵' => '旗: 尼泊尔',
     '🇳🇷' => '旗: 诺鲁',
     '🇳🇺' => '旗: 纽埃岛',
-    '🇳🇿' => '旗: 纽西兰',
+    '🇳🇿' => '旗: 新西兰',
     '🇴🇲' => '旗: 阿曼王国',
     '🇵🇦' => '旗: 巴拿马',
     '🇵🇪' => '旗: 秘鲁',
@@ -2324,7 +2481,7 @@
     '🇷🇸' => '旗: 塞尔维亚',
     '🇷🇺' => '旗: 俄罗斯',
     '🇷🇼' => '旗: 卢安达',
-    '🇸🇦' => '旗: 沙乌地阿拉伯',
+    '🇸🇦' => '旗: 沙特阿拉伯',
     '🇸🇧' => '旗: 索罗门群岛',
     '🇸🇨' => '旗: 塞席尔',
     '🇸🇩' => '旗: 苏丹',
@@ -2379,7 +2536,7 @@
     '🇼🇫' => '旗: 瓦利斯同富图纳群岛',
     '🇼🇸' => '旗: 萨摩亚',
     '🇽🇰' => '旗: 科索沃',
-    '🇾🇪' => '旗: 叶门',
+    '🇾🇪' => '旗: 也门',
     '🇾🇹' => '旗: 马约特',
     '🇿🇦' => '旗: 南非',
     '🇿🇲' => '旗: 尚比亚',
@@ -2390,17 +2547,10 @@
     '🏽' => '中肤色',
     '🏾' => '中深肤色',
     '🏿' => '深肤色',
-    '🪉' => '竖琴',
-    '🪏' => '铲',
-    '🪾' => '秃树',
-    '🫆' => '指纹',
-    '🫜' => '根茎类蔬菜',
-    '🫟' => '泼溅',
-    '🫩' => '有眼袋嘅脸',
     '😀' => '笑脸',
     '😃' => '大眼睛笑脸',
     '😄' => '笑脸同微笑眼睛',
-    '😁' => '光着脸同微笑眼睛',
+    '😁' => '带着微笑眼睛嘅欢欣脸孔',
     '😆' => '眯着笑嘅脸',
     '😅' => '出汗嘅笑脸',
     '🤣' => '笑到碌地',
@@ -2450,6 +2600,7 @@
     '😪' => '眼训嘅脸',
     '🤤' => '流口水嘅脸',
     '😴' => '训紧觉嘅脸',
+    '🫩' => '有眼袋嘅脸',
     '😷' => '戴口罩嘅脸',
     '🤒' => '探紧热嘅脸',
     '🤕' => '紥绷带嘅脸',
@@ -2476,6 +2627,7 @@
     '😯' => '沉默嘅脸',
     '😲' => '惊讶嘅脸',
     '😳' => '脸红',
+    '🫪' => '面容扭曲',
     '🥺' => '恳求嘅脸',
     '🥹' => '忍住眼泪嘅脸',
     '😦' => '开口皱眉嘅脸',
@@ -2547,6 +2699,7 @@
     '💋' => '唇印',
     '💯' => '一百分',
     '💢' => '嬲嘅标志',
+    '🫯' => '打交',
     '💥' => '碰撞',
     '💫' => '头晕',
     '💦' => '滴汗',
@@ -2651,8 +2804,8 @@
     '👳' => '戴头巾嘅人',
     '👲' => '戴中国帽嘅男人',
     '🧕' => '戴住头巾嘅女人',
-    '🤵' => '着晚礼服嘅男人',
-    '👰' => '戴面纱嘅新娘',
+    '🤵' => '着晚礼服嘅人',
+    '👰' => '戴面纱嘅人',
     '🤰' => '孕妇',
     '🫃' => '怀孕嘅男人',
     '🫄' => '怀孕嘅人',
@@ -2670,6 +2823,7 @@
     '🧞' => '神灯精灵',
     '🧟' => '殭尸',
     '🧌' => '巨魔',
+    '🫈' => '毛怪',
     '💆' => '享受按摩嘅人',
     '💇' => '剪头发嘅人',
     '🚶' => '行路嘅人',
@@ -2713,6 +2867,7 @@
     '🫂' => '拥抱',
     '👪' => '家庭',
     '👣' => '脚印',
+    '🫆' => '指纹',
     '🦰' => '红色头发',
     '🦱' => '曲发',
     '🦳' => '白色头发',
@@ -2812,6 +2967,7 @@
     '🐳' => '喷紧水嘅鲸鱼',
     '🐋' => '鲸鱼',
     '🐬' => '海豚',
+    '🫍' => '杀人鲸',
     '🦭' => '海豹',
     '🐟' => '鱼',
     '🐠' => '热带鱼',
@@ -2821,6 +2977,11 @@
     '🐚' => '螺',
     '🪸' => '珊瑚',
     '🪼' => '水母',
+    '🦀' => '蟹',
+    '🦞' => '龙虾',
+    '🦐' => '虾',
+    '🦑' => '鱿鱼',
+    '🦪' => '生蚝',
     '🐌' => '蜗牛',
     '🦋' => '蝴蝶',
     '🐛' => '毛虫',
@@ -2865,6 +3026,7 @@
     '🪹' => '空嘅雀巢',
     '🪺' => '有蛋嘅雀巢',
     '🍄' => '蘑菇',
+    '🪾' => '秃树',
     '🍇' => '提子',
     '🍈' => '蜜瓜',
     '🍉' => '西瓜',
@@ -2901,6 +3063,7 @@
     '🌰' => '栗子',
     '🫚' => '姜根',
     '🫛' => '豌豆荚',
+    '🫜' => '根茎类蔬菜',
     '🍞' => '面包',
     '🥐' => '牛角包',
     '🥖' => '法式面包',
@@ -2952,11 +3115,6 @@
     '🥟' => '饺子',
     '🥠' => '幸运曲奇',
     '🥡' => '外卖盒',
-    '🦀' => '蟹',
-    '🦞' => '龙虾',
-    '🦐' => '虾',
-    '🦑' => '鱿鱼',
-    '🦪' => '生蚝',
     '🍦' => '软雪糕',
     '🍧' => '刨冰',
     '🍨' => '雪糕',
@@ -3007,6 +3165,7 @@
     '🧭' => '指南针',
     '🏔' => '雪山',
     '⛰' => '山',
+    '🛘' => '山泥倾泻',
     '🌋' => '火山',
     '🗻' => '富士山',
     '🏕' => '露营',
@@ -3367,16 +3526,18 @@
     '🎧' => '耳机',
     '📻' => '收音机',
     '🎷' => '色士风',
+    '🎺' => '喇叭',
+    '🪊' => '长号',
     '🪗' => '手风琴',
     '🎸' => '结他',
     '🎹' => '音乐键盘',
-    '🎺' => '喇叭',
     '🎻' => '小提琴',
     '🪕' => '班卓琴',
     '🥁' => '鼓',
     '🪘' => '长鼓',
     '🪇' => '沙槌',
     '🪈' => '长笛',
+    '🪉' => '竖琴',
     '📱' => '手提电话',
     '📲' => '有箭咀嘅手提电话',
     '☎' => '电话',
@@ -3430,8 +3591,9 @@
     '📑' => '书签标签',
     '🔖' => '书签',
     '🏷' => '标签',
-    '💰' => '钱袋',
     '🪙' => '硬币',
+    '💰' => '钱袋',
+    '🪎' => '藏宝箱',
     '💴' => '日圆纸币',
     '💵' => '美元纸币',
     '💶' => '欧元纸币',
@@ -3514,6 +3676,7 @@
     '🧰' => '工具箱',
     '🧲' => '磁石',
     '🪜' => '梯',
+    '🪏' => '铲',
     '⚗' => '蒸馏器',
     '🧪' => '试管',
     '🧫' => '培养皿',
@@ -3606,9 +3769,9 @@
     '🔄' => '逆时针箭咀按钮',
     '🔙' => '返回箭咀',
     '🔚' => '结束箭咀',
-    '🔛' => '“在”箭咀',
-    '🔜' => '“不久”箭咀',
-    '🔝' => '“顶部”箭咀',
+    '🔛' => '「在」箭咀',
+    '🔜' => '「不久」箭咀',
+    '🔝' => '「顶部」箭咀',
     '🛐' => '宗教场所',
     '⚛' => '原子符号',
     '🕉' => '唵',
@@ -3674,7 +3837,7 @@
     '❓' => '红色问号',
     '❔' => '白色问号',
     '❕' => '白色感叹号',
-    '❗' => '红色感叹号',
+    '❗' => '感叹号',
     '〰' => '波浪破折号',
     '💱' => '货币兑换',
     '💲' => '粗美元符号',
@@ -3697,6 +3860,7 @@
     '✴' => '八角星星',
     '❇' => '闪闪',
     '™' => '商标',
+    '🫟' => '泼溅',
     '🔠' => '输入拉丁大阶字母',
     '🔡' => '输入拉丁细阶字母',
     '🔢' => '输入数字',
@@ -3719,23 +3883,23 @@
     '🆘' => 'SOS 按钮',
     '🆙' => 'UP! 按钮',
     '🆚' => 'VS 按钮',
-    '🈁' => '日本“呢度”按钮',
-    '🈂' => '日本“服务费”按钮',
-    '🈷' => '日本“月”按钮',
-    '🈶' => '日本“有”按钮',
-    '🈯' => '日本“指”按钮',
-    '🉐' => '日本“得”按钮',
-    '🈹' => '日本“割”按钮',
-    '🈚' => '日本“无”按钮',
-    '🈲' => '日本“禁”按钮',
-    '🉑' => '日本“可”按钮',
-    '🈸' => '日本“申”按钮',
-    '🈴' => '日本“合”按钮',
-    '🈳' => '日本“空”按钮',
-    '㊗' => '日本“祝”按钮',
-    '㊙' => '日本“秘”按钮',
-    '🈺' => '日本“营”按钮',
-    '🈵' => '日本“满”按钮',
+    '🈁' => '日本「呢度」按钮',
+    '🈂' => '日本「服务费」按钮',
+    '🈷' => '日本「月」按钮',
+    '🈶' => '日本「有」按钮',
+    '🈯' => '日本「指」按钮',
+    '🉐' => '日本「得」按钮',
+    '🈹' => '日本「割」按钮',
+    '🈚' => '日本「无」按钮',
+    '🈲' => '日本「禁」按钮',
+    '🉑' => '日本「可」按钮',
+    '🈸' => '日本「申」按钮',
+    '🈴' => '日本「合」按钮',
+    '🈳' => '日本「空」按钮',
+    '㊗' => '日本「祝」按钮',
+    '㊙' => '日本「秘」按钮',
+    '🈺' => '日本「营」按钮',
+    '🈵' => '日本「满」按钮',
     '🔴' => '红色圆形',
     '🟠' => '橙色圆形',
     '🟡' => '黄色圆形',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yue.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yue.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yue.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-yue.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => '吻: 女人 女人 深膚色 中膚色',
     '👩🏿‍❤‍💋‍👩🏾' => '吻: 女人 女人 深膚色 中深膚色',
     '👩🏿‍❤‍💋‍👩🏿' => '吻: 女人 女人 深膚色',
+    '🧑🏻‍🫯‍🧑🏼' => '摔跤嘅人: 淺膚色 中淺膚色',
+    '🧑🏻‍🫯‍🧑🏽' => '摔跤嘅人: 淺膚色 中膚色',
+    '🧑🏻‍🫯‍🧑🏾' => '摔跤嘅人: 淺膚色 中深膚色',
+    '🧑🏻‍🫯‍🧑🏿' => '摔跤嘅人: 淺膚色 深膚色',
+    '🧑🏼‍🫯‍🧑🏻' => '摔跤嘅人: 中淺膚色 淺膚色',
+    '🧑🏼‍🫯‍🧑🏽' => '摔跤嘅人: 中淺膚色 中膚色',
+    '🧑🏼‍🫯‍🧑🏾' => '摔跤嘅人: 中淺膚色 中深膚色',
+    '🧑🏼‍🫯‍🧑🏿' => '摔跤嘅人: 中淺膚色 深膚色',
+    '🧑🏽‍🫯‍🧑🏻' => '摔跤嘅人: 中膚色 淺膚色',
+    '🧑🏽‍🫯‍🧑🏼' => '摔跤嘅人: 中膚色 中淺膚色',
+    '🧑🏽‍🫯‍🧑🏾' => '摔跤嘅人: 中膚色 中深膚色',
+    '🧑🏽‍🫯‍🧑🏿' => '摔跤嘅人: 中膚色 深膚色',
+    '🧑🏾‍🫯‍🧑🏻' => '摔跤嘅人: 中深膚色 淺膚色',
+    '🧑🏾‍🫯‍🧑🏼' => '摔跤嘅人: 中深膚色 中淺膚色',
+    '🧑🏾‍🫯‍🧑🏽' => '摔跤嘅人: 中深膚色 中膚色',
+    '🧑🏾‍🫯‍🧑🏿' => '摔跤嘅人: 中深膚色 深膚色',
+    '🧑🏿‍🫯‍🧑🏻' => '摔跤嘅人: 深膚色 淺膚色',
+    '🧑🏿‍🫯‍🧑🏼' => '摔跤嘅人: 深膚色 中淺膚色',
+    '🧑🏿‍🫯‍🧑🏽' => '摔跤嘅人: 深膚色 中膚色',
+    '🧑🏿‍🫯‍🧑🏾' => '摔跤嘅人: 深膚色 中深膚色',
     '🧑🏻‍❤‍🧑🏼' => '夫婦同心: 成人 成人 淺膚色 中淺膚色',
     '🧑🏻‍❤‍🧑🏽' => '夫婦同心: 成人 成人 淺膚色 中膚色',
     '🧑🏻‍❤‍🧑🏾' => '夫婦同心: 成人 成人 淺膚色 中深膚色',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => '夫婦同心: 成人 成人 深膚色 中淺膚色',
     '🧑🏿‍❤‍🧑🏽' => '夫婦同心: 成人 成人 深膚色 中膚色',
     '🧑🏿‍❤‍🧑🏾' => '夫婦同心: 成人 成人 深膚色 中深膚色',
+    '🧑🏻‍🐰‍🧑🏼' => '戴兔仔耳嘅人: 淺膚色 中淺膚色',
+    '🧑🏻‍🐰‍🧑🏽' => '戴兔仔耳嘅人: 淺膚色 中膚色',
+    '🧑🏻‍🐰‍🧑🏾' => '戴兔仔耳嘅人: 淺膚色 中深膚色',
+    '🧑🏻‍🐰‍🧑🏿' => '戴兔仔耳嘅人: 淺膚色 深膚色',
+    '🧑🏼‍🐰‍🧑🏻' => '戴兔仔耳嘅人: 中淺膚色 淺膚色',
+    '🧑🏼‍🐰‍🧑🏽' => '戴兔仔耳嘅人: 中淺膚色 中膚色',
+    '🧑🏼‍🐰‍🧑🏾' => '戴兔仔耳嘅人: 中淺膚色 中深膚色',
+    '🧑🏼‍🐰‍🧑🏿' => '戴兔仔耳嘅人: 中淺膚色 深膚色',
+    '🧑🏽‍🐰‍🧑🏻' => '戴兔仔耳嘅人: 中膚色 淺膚色',
+    '🧑🏽‍🐰‍🧑🏼' => '戴兔仔耳嘅人: 中膚色 中淺膚色',
+    '🧑🏽‍🐰‍🧑🏾' => '戴兔仔耳嘅人: 中膚色 中深膚色',
+    '🧑🏽‍🐰‍🧑🏿' => '戴兔仔耳嘅人: 中膚色 深膚色',
+    '🧑🏾‍🐰‍🧑🏻' => '戴兔仔耳嘅人: 中深膚色 淺膚色',
+    '🧑🏾‍🐰‍🧑🏼' => '戴兔仔耳嘅人: 中深膚色 中淺膚色',
+    '🧑🏾‍🐰‍🧑🏽' => '戴兔仔耳嘅人: 中深膚色 中膚色',
+    '🧑🏾‍🐰‍🧑🏿' => '戴兔仔耳嘅人: 中深膚色 深膚色',
+    '🧑🏿‍🐰‍🧑🏻' => '戴兔仔耳嘅人: 深膚色 淺膚色',
+    '🧑🏿‍🐰‍🧑🏼' => '戴兔仔耳嘅人: 深膚色 中淺膚色',
+    '🧑🏿‍🐰‍🧑🏽' => '戴兔仔耳嘅人: 深膚色 中膚色',
+    '🧑🏿‍🐰‍🧑🏾' => '戴兔仔耳嘅人: 深膚色 中深膚色',
+    '👨🏻‍🫯‍👨🏼' => '摔跤嘅男人: 淺膚色 中淺膚色',
+    '👨🏻‍🫯‍👨🏽' => '摔跤嘅男人: 淺膚色 中膚色',
+    '👨🏻‍🫯‍👨🏾' => '摔跤嘅男人: 淺膚色 中深膚色',
+    '👨🏻‍🫯‍👨🏿' => '摔跤嘅男人: 淺膚色 深膚色',
+    '👨🏼‍🫯‍👨🏻' => '摔跤嘅男人: 中淺膚色 淺膚色',
+    '👨🏼‍🫯‍👨🏽' => '摔跤嘅男人: 中淺膚色 中膚色',
+    '👨🏼‍🫯‍👨🏾' => '摔跤嘅男人: 中淺膚色 中深膚色',
+    '👨🏼‍🫯‍👨🏿' => '摔跤嘅男人: 中淺膚色 深膚色',
+    '👨🏽‍🫯‍👨🏻' => '摔跤嘅男人: 中膚色 淺膚色',
+    '👨🏽‍🫯‍👨🏼' => '摔跤嘅男人: 中膚色 中淺膚色',
+    '👨🏽‍🫯‍👨🏾' => '摔跤嘅男人: 中膚色 中深膚色',
+    '👨🏽‍🫯‍👨🏿' => '摔跤嘅男人: 中膚色 深膚色',
+    '👨🏾‍🫯‍👨🏻' => '摔跤嘅男人: 中深膚色 淺膚色',
+    '👨🏾‍🫯‍👨🏼' => '摔跤嘅男人: 中深膚色 中淺膚色',
+    '👨🏾‍🫯‍👨🏽' => '摔跤嘅男人: 中深膚色 中膚色',
+    '👨🏾‍🫯‍👨🏿' => '摔跤嘅男人: 中深膚色 深膚色',
+    '👨🏿‍🫯‍👨🏻' => '摔跤嘅男人: 深膚色 淺膚色',
+    '👨🏿‍🫯‍👨🏼' => '摔跤嘅男人: 深膚色 中淺膚色',
+    '👨🏿‍🫯‍👨🏽' => '摔跤嘅男人: 深膚色 中膚色',
+    '👨🏿‍🫯‍👨🏾' => '摔跤嘅男人: 深膚色 中深膚色',
     '👨🏻‍❤‍👨🏻' => '夫婦同心: 男人 男人 淺膚色',
     '👨🏻‍❤‍👨🏼' => '夫婦同心: 男人 男人 淺膚色 中淺膚色',
     '👨🏻‍❤‍👨🏽' => '夫婦同心: 男人 男人 淺膚色 中膚色',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => '夫婦同心: 男人 男人 深膚色 中膚色',
     '👨🏿‍❤‍👨🏾' => '夫婦同心: 男人 男人 深膚色 中深膚色',
     '👨🏿‍❤‍👨🏿' => '夫婦同心: 男人 男人 深膚色',
+    '👨🏻‍🐰‍👨🏼' => '戴兔仔耳嘅男人: 淺膚色 中淺膚色',
+    '👨🏻‍🐰‍👨🏽' => '戴兔仔耳嘅男人: 淺膚色 中膚色',
+    '👨🏻‍🐰‍👨🏾' => '戴兔仔耳嘅男人: 淺膚色 中深膚色',
+    '👨🏻‍🐰‍👨🏿' => '戴兔仔耳嘅男人: 淺膚色 深膚色',
+    '👨🏼‍🐰‍👨🏻' => '戴兔仔耳嘅男人: 中淺膚色 淺膚色',
+    '👨🏼‍🐰‍👨🏽' => '戴兔仔耳嘅男人: 中淺膚色 中膚色',
+    '👨🏼‍🐰‍👨🏾' => '戴兔仔耳嘅男人: 中淺膚色 中深膚色',
+    '👨🏼‍🐰‍👨🏿' => '戴兔仔耳嘅男人: 中淺膚色 深膚色',
+    '👨🏽‍🐰‍👨🏻' => '戴兔仔耳嘅男人: 中膚色 淺膚色',
+    '👨🏽‍🐰‍👨🏼' => '戴兔仔耳嘅男人: 中膚色 中淺膚色',
+    '👨🏽‍🐰‍👨🏾' => '戴兔仔耳嘅男人: 中膚色 中深膚色',
+    '👨🏽‍🐰‍👨🏿' => '戴兔仔耳嘅男人: 中膚色 深膚色',
+    '👨🏾‍🐰‍👨🏻' => '戴兔仔耳嘅男人: 中深膚色 淺膚色',
+    '👨🏾‍🐰‍👨🏼' => '戴兔仔耳嘅男人: 中深膚色 中淺膚色',
+    '👨🏾‍🐰‍👨🏽' => '戴兔仔耳嘅男人: 中深膚色 中膚色',
+    '👨🏾‍🐰‍👨🏿' => '戴兔仔耳嘅男人: 中深膚色 深膚色',
+    '👨🏿‍🐰‍👨🏻' => '戴兔仔耳嘅男人: 深膚色 淺膚色',
+    '👨🏿‍🐰‍👨🏼' => '戴兔仔耳嘅男人: 深膚色 中淺膚色',
+    '👨🏿‍🐰‍👨🏽' => '戴兔仔耳嘅男人: 深膚色 中膚色',
+    '👨🏿‍🐰‍👨🏾' => '戴兔仔耳嘅男人: 深膚色 中深膚色',
+    '👩🏻‍🫯‍👩🏼' => '摔跤嘅女人: 淺膚色 中淺膚色',
+    '👩🏻‍🫯‍👩🏽' => '摔跤嘅女人: 淺膚色 中膚色',
+    '👩🏻‍🫯‍👩🏾' => '摔跤嘅女人: 淺膚色 中深膚色',
+    '👩🏻‍🫯‍👩🏿' => '摔跤嘅女人: 淺膚色 深膚色',
+    '👩🏼‍🫯‍👩🏻' => '摔跤嘅女人: 中淺膚色 淺膚色',
+    '👩🏼‍🫯‍👩🏽' => '摔跤嘅女人: 中淺膚色 中膚色',
+    '👩🏼‍🫯‍👩🏾' => '摔跤嘅女人: 中淺膚色 中深膚色',
+    '👩🏼‍🫯‍👩🏿' => '摔跤嘅女人: 中淺膚色 深膚色',
+    '👩🏽‍🫯‍👩🏻' => '摔跤嘅女人: 中膚色 淺膚色',
+    '👩🏽‍🫯‍👩🏼' => '摔跤嘅女人: 中膚色 中淺膚色',
+    '👩🏽‍🫯‍👩🏾' => '摔跤嘅女人: 中膚色 中深膚色',
+    '👩🏽‍🫯‍👩🏿' => '摔跤嘅女人: 中膚色 深膚色',
+    '👩🏾‍🫯‍👩🏻' => '摔跤嘅女人: 中深膚色 淺膚色',
+    '👩🏾‍🫯‍👩🏼' => '摔跤嘅女人: 中深膚色 中淺膚色',
+    '👩🏾‍🫯‍👩🏽' => '摔跤嘅女人: 中深膚色 中膚色',
+    '👩🏾‍🫯‍👩🏿' => '摔跤嘅女人: 中深膚色 深膚色',
+    '👩🏿‍🫯‍👩🏻' => '摔跤嘅女人: 深膚色 淺膚色',
+    '👩🏿‍🫯‍👩🏼' => '摔跤嘅女人: 深膚色 中淺膚色',
+    '👩🏿‍🫯‍👩🏽' => '摔跤嘅女人: 深膚色 中膚色',
+    '👩🏿‍🫯‍👩🏾' => '摔跤嘅女人: 深膚色 中深膚色',
     '👩🏻‍❤‍👨🏻' => '夫婦同心: 女人 男人 淺膚色',
     '👩🏻‍❤‍👨🏼' => '夫婦同心: 女人 男人 淺膚色 中淺膚色',
     '👩🏻‍❤‍👨🏽' => '夫婦同心: 女人 男人 淺膚色 中膚色',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => '夫婦同心: 女人 女人 深膚色 中膚色',
     '👩🏿‍❤‍👩🏾' => '夫婦同心: 女人 女人 深膚色 中深膚色',
     '👩🏿‍❤‍👩🏿' => '夫婦同心: 女人 女人 深膚色',
+    '👩🏻‍🐰‍👩🏼' => '戴兔仔耳嘅女人: 淺膚色 中淺膚色',
+    '👩🏻‍🐰‍👩🏽' => '戴兔仔耳嘅女人: 淺膚色 中膚色',
+    '👩🏻‍🐰‍👩🏾' => '戴兔仔耳嘅女人: 淺膚色 中深膚色',
+    '👩🏻‍🐰‍👩🏿' => '戴兔仔耳嘅女人: 淺膚色 深膚色',
+    '👩🏼‍🐰‍👩🏻' => '戴兔仔耳嘅女人: 中淺膚色 淺膚色',
+    '👩🏼‍🐰‍👩🏽' => '戴兔仔耳嘅女人: 中淺膚色 中膚色',
+    '👩🏼‍🐰‍👩🏾' => '戴兔仔耳嘅女人: 中淺膚色 中深膚色',
+    '👩🏼‍🐰‍👩🏿' => '戴兔仔耳嘅女人: 中淺膚色 深膚色',
+    '👩🏽‍🐰‍👩🏻' => '戴兔仔耳嘅女人: 中膚色 淺膚色',
+    '👩🏽‍🐰‍👩🏼' => '戴兔仔耳嘅女人: 中膚色 中淺膚色',
+    '👩🏽‍🐰‍👩🏾' => '戴兔仔耳嘅女人: 中膚色 中深膚色',
+    '👩🏽‍🐰‍👩🏿' => '戴兔仔耳嘅女人: 中膚色 深膚色',
+    '👩🏾‍🐰‍👩🏻' => '戴兔仔耳嘅女人: 中深膚色 淺膚色',
+    '👩🏾‍🐰‍👩🏼' => '戴兔仔耳嘅女人: 中深膚色 中淺膚色',
+    '👩🏾‍🐰‍👩🏽' => '戴兔仔耳嘅女人: 中深膚色 中膚色',
+    '👩🏾‍🐰‍👩🏿' => '戴兔仔耳嘅女人: 中深膚色 深膚色',
+    '👩🏿‍🐰‍👩🏻' => '戴兔仔耳嘅女人: 深膚色 淺膚色',
+    '👩🏿‍🐰‍👩🏼' => '戴兔仔耳嘅女人: 深膚色 中淺膚色',
+    '👩🏿‍🐰‍👩🏽' => '戴兔仔耳嘅女人: 深膚色 中膚色',
+    '👩🏿‍🐰‍👩🏾' => '戴兔仔耳嘅女人: 深膚色 中深膚色',
     '🧑🏻‍🤝‍🧑🏻' => '拖住嘅人: 淺膚色',
     '🧑🏻‍🤝‍🧑🏼' => '拖住嘅人: 淺膚色 中淺膚色',
     '🧑🏻‍🤝‍🧑🏽' => '拖住嘅人: 淺膚色 中膚色',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => '旗: 蘇格蘭',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => '旗: 威爾斯',
     '🧑‍🧑‍🧒‍🧒' => '家庭：兩大兩細',
-    '🚶🏻‍♀‍➡' => '行路嘅女人 向右',
-    '🚶🏼‍♀‍➡' => '行路嘅女人 向右',
-    '🚶🏽‍♀‍➡' => '行路嘅女人 向右',
-    '🚶🏾‍♀‍➡' => '行路嘅女人 向右',
-    '🚶🏿‍♀‍➡' => '行路嘅女人 向右',
-    '🚶🏻‍♂‍➡' => '行路嘅男人 向右',
-    '🚶🏼‍♂‍➡' => '行路嘅男人 向右',
-    '🚶🏽‍♂‍➡' => '行路嘅男人 向右',
-    '🚶🏾‍♂‍➡' => '行路嘅男人 向右',
-    '🚶🏿‍♂‍➡' => '行路嘅男人 向右',
-    '🧎🏻‍♀‍➡' => '跪嘅女人 向右',
-    '🧎🏼‍♀‍➡' => '跪嘅女人 向右',
-    '🧎🏽‍♀‍➡' => '跪嘅女人 向右',
-    '🧎🏾‍♀‍➡' => '跪嘅女人 向右',
-    '🧎🏿‍♀‍➡' => '跪嘅女人 向右',
-    '🧎🏻‍♂‍➡' => '跪嘅男人 向右',
-    '🧎🏼‍♂‍➡' => '跪嘅男人 向右',
-    '🧎🏽‍♂‍➡' => '跪嘅男人 向右',
-    '🧎🏾‍♂‍➡' => '跪嘅男人 向右',
-    '🧎🏿‍♂‍➡' => '跪嘅男人 向右',
-    '🧑🏻‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '🧑🏼‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '🧑🏽‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '🧑🏾‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '🧑🏿‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '👨🏻‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👨🏼‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👨🏽‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👨🏾‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👨🏿‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👩🏻‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '👩🏼‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '👩🏽‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '👩🏾‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '👩🏿‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '🧑🏻‍🦼‍➡' => '坐電動輪椅嘅人 向右',
-    '🧑🏼‍🦼‍➡' => '坐電動輪椅嘅人 向右',
-    '🧑🏽‍🦼‍➡' => '坐電動輪椅嘅人 向右',
-    '🧑🏾‍🦼‍➡' => '坐電動輪椅嘅人 向右',
-    '🧑🏿‍🦼‍➡' => '坐電動輪椅嘅人 向右',
-    '👨🏻‍🦼‍➡' => '坐電動輪椅嘅男人 向右',
-    '👨🏼‍🦼‍➡' => '坐電動輪椅嘅男人 向右',
-    '👨🏽‍🦼‍➡' => '坐電動輪椅嘅男人 向右',
-    '👨🏾‍🦼‍➡' => '坐電動輪椅嘅男人 向右',
-    '👨🏿‍🦼‍➡' => '坐電動輪椅嘅男人 向右',
-    '👩🏻‍🦼‍➡' => '坐電動輪椅嘅女人 向右',
-    '👩🏼‍🦼‍➡' => '坐電動輪椅嘅女人 向右',
-    '👩🏽‍🦼‍➡' => '坐電動輪椅嘅女人 向右',
-    '👩🏾‍🦼‍➡' => '坐電動輪椅嘅女人 向右',
-    '👩🏿‍🦼‍➡' => '坐電動輪椅嘅女人 向右',
-    '🧑🏻‍🦽‍➡' => '坐手動輪椅嘅人 向右',
-    '🧑🏼‍🦽‍➡' => '坐手動輪椅嘅人 向右',
-    '🧑🏽‍🦽‍➡' => '坐手動輪椅嘅人 向右',
-    '🧑🏾‍🦽‍➡' => '坐手動輪椅嘅人 向右',
-    '🧑🏿‍🦽‍➡' => '坐手動輪椅嘅人 向右',
-    '👨🏻‍🦽‍➡' => '坐手動輪椅嘅男人 向右',
-    '👨🏼‍🦽‍➡' => '坐手動輪椅嘅男人 向右',
-    '👨🏽‍🦽‍➡' => '坐手動輪椅嘅男人 向右',
-    '👨🏾‍🦽‍➡' => '坐手動輪椅嘅男人 向右',
-    '👨🏿‍🦽‍➡' => '坐手動輪椅嘅男人 向右',
-    '👩🏻‍🦽‍➡' => '坐手動輪椅嘅女人 向右',
-    '👩🏼‍🦽‍➡' => '坐手動輪椅嘅女人 向右',
-    '👩🏽‍🦽‍➡' => '坐手動輪椅嘅女人 向右',
-    '👩🏾‍🦽‍➡' => '坐手動輪椅嘅女人 向右',
-    '👩🏿‍🦽‍➡' => '坐手動輪椅嘅女人 向右',
-    '🏃🏻‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃🏼‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃🏽‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃🏾‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃🏿‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃🏻‍♂‍➡' => '跑步嘅男人 向右',
-    '🏃🏼‍♂‍➡' => '跑步嘅男人 向右',
-    '🏃🏽‍♂‍➡' => '跑步嘅男人 向右',
-    '🏃🏾‍♂‍➡' => '跑步嘅男人 向右',
-    '🏃🏿‍♂‍➡' => '跑步嘅男人 向右',
+    '🚶🏻‍♀‍➡' => '行路嘅女人: 淺膚色 向右',
+    '🚶🏼‍♀‍➡' => '行路嘅女人: 中淺膚色 向右',
+    '🚶🏽‍♀‍➡' => '行路嘅女人: 中膚色 向右',
+    '🚶🏾‍♀‍➡' => '行路嘅女人: 中深膚色 向右',
+    '🚶🏿‍♀‍➡' => '行路嘅女人: 深膚色 向右',
+    '🚶🏻‍♂‍➡' => '行路嘅男人: 淺膚色 向右',
+    '🚶🏼‍♂‍➡' => '行路嘅男人: 中淺膚色 向右',
+    '🚶🏽‍♂‍➡' => '行路嘅男人: 中膚色 向右',
+    '🚶🏾‍♂‍➡' => '行路嘅男人: 中深膚色 向右',
+    '🚶🏿‍♂‍➡' => '行路嘅男人: 深膚色 向右',
+    '🧎🏻‍♀‍➡' => '跪嘅女人: 淺膚色 向右',
+    '🧎🏼‍♀‍➡' => '跪嘅女人: 中淺膚色 向右',
+    '🧎🏽‍♀‍➡' => '跪嘅女人: 中膚色 向右',
+    '🧎🏾‍♀‍➡' => '跪嘅女人: 中深膚色 向右',
+    '🧎🏿‍♀‍➡' => '跪嘅女人: 深膚色 向右',
+    '🧎🏻‍♂‍➡' => '跪嘅男人: 淺膚色 向右',
+    '🧎🏼‍♂‍➡' => '跪嘅男人: 中淺膚色 向右',
+    '🧎🏽‍♂‍➡' => '跪嘅男人: 中膚色 向右',
+    '🧎🏾‍♂‍➡' => '跪嘅男人: 中深膚色 向右',
+    '🧎🏿‍♂‍➡' => '跪嘅男人: 深膚色 向右',
+    '🧑🏻‍🦯‍➡' => '揸柺杖嘅人: 淺膚色 向右',
+    '🧑🏼‍🦯‍➡' => '揸柺杖嘅人: 中淺膚色 向右',
+    '🧑🏽‍🦯‍➡' => '揸柺杖嘅人: 中膚色 向右',
+    '🧑🏾‍🦯‍➡' => '揸柺杖嘅人: 中深膚色 向右',
+    '🧑🏿‍🦯‍➡' => '揸柺杖嘅人: 深膚色 向右',
+    '👨🏻‍🦯‍➡' => '拎拐杖嘅男人: 淺膚色 向右',
+    '👨🏼‍🦯‍➡' => '拎拐杖嘅男人: 中淺膚色 向右',
+    '👨🏽‍🦯‍➡' => '拎拐杖嘅男人: 中膚色 向右',
+    '👨🏾‍🦯‍➡' => '拎拐杖嘅男人: 中深膚色 向右',
+    '👨🏿‍🦯‍➡' => '拎拐杖嘅男人: 深膚色 向右',
+    '👩🏻‍🦯‍➡' => '拎拐杖嘅女人: 淺膚色 向右',
+    '👩🏼‍🦯‍➡' => '拎拐杖嘅女人: 中淺膚色 向右',
+    '👩🏽‍🦯‍➡' => '拎拐杖嘅女人: 中膚色 向右',
+    '👩🏾‍🦯‍➡' => '拎拐杖嘅女人: 中深膚色 向右',
+    '👩🏿‍🦯‍➡' => '拎拐杖嘅女人: 深膚色 向右',
+    '🧑🏻‍🦼‍➡' => '坐電動輪椅嘅人: 淺膚色 向右',
+    '🧑🏼‍🦼‍➡' => '坐電動輪椅嘅人: 中淺膚色 向右',
+    '🧑🏽‍🦼‍➡' => '坐電動輪椅嘅人: 中膚色 向右',
+    '🧑🏾‍🦼‍➡' => '坐電動輪椅嘅人: 中深膚色 向右',
+    '🧑🏿‍🦼‍➡' => '坐電動輪椅嘅人: 深膚色 向右',
+    '👨🏻‍🦼‍➡' => '坐電動輪椅嘅男人: 淺膚色 向右',
+    '👨🏼‍🦼‍➡' => '坐電動輪椅嘅男人: 中淺膚色 向右',
+    '👨🏽‍🦼‍➡' => '坐電動輪椅嘅男人: 中膚色 向右',
+    '👨🏾‍🦼‍➡' => '坐電動輪椅嘅男人: 中深膚色 向右',
+    '👨🏿‍🦼‍➡' => '坐電動輪椅嘅男人: 深膚色 向右',
+    '👩🏻‍🦼‍➡' => '坐電動輪椅嘅女人: 淺膚色 向右',
+    '👩🏼‍🦼‍➡' => '坐電動輪椅嘅女人: 中淺膚色 向右',
+    '👩🏽‍🦼‍➡' => '坐電動輪椅嘅女人: 中膚色 向右',
+    '👩🏾‍🦼‍➡' => '坐電動輪椅嘅女人: 中深膚色 向右',
+    '👩🏿‍🦼‍➡' => '坐電動輪椅嘅女人: 深膚色 向右',
+    '🧑🏻‍🦽‍➡' => '坐手動輪椅嘅人: 淺膚色 向右',
+    '🧑🏼‍🦽‍➡' => '坐手動輪椅嘅人: 中淺膚色 向右',
+    '🧑🏽‍🦽‍➡' => '坐手動輪椅嘅人: 中膚色 向右',
+    '🧑🏾‍🦽‍➡' => '坐手動輪椅嘅人: 中深膚色 向右',
+    '🧑🏿‍🦽‍➡' => '坐手動輪椅嘅人: 深膚色 向右',
+    '👨🏻‍🦽‍➡' => '坐手動輪椅嘅男人: 淺膚色 向右',
+    '👨🏼‍🦽‍➡' => '坐手動輪椅嘅男人: 中淺膚色 向右',
+    '👨🏽‍🦽‍➡' => '坐手動輪椅嘅男人: 中膚色 向右',
+    '👨🏾‍🦽‍➡' => '坐手動輪椅嘅男人: 中深膚色 向右',
+    '👨🏿‍🦽‍➡' => '坐手動輪椅嘅男人: 深膚色 向右',
+    '👩🏻‍🦽‍➡' => '坐手動輪椅嘅女人: 淺膚色 向右',
+    '👩🏼‍🦽‍➡' => '坐手動輪椅嘅女人: 中淺膚色 向右',
+    '👩🏽‍🦽‍➡' => '坐手動輪椅嘅女人: 中膚色 向右',
+    '👩🏾‍🦽‍➡' => '坐手動輪椅嘅女人: 中深膚色 向右',
+    '👩🏿‍🦽‍➡' => '坐手動輪椅嘅女人: 深膚色 向右',
+    '🏃🏻‍♀‍➡' => '跑步嘅女人: 淺膚色 向右',
+    '🏃🏼‍♀‍➡' => '跑步嘅女人: 中淺膚色 向右',
+    '🏃🏽‍♀‍➡' => '跑步嘅女人: 中膚色 向右',
+    '🏃🏾‍♀‍➡' => '跑步嘅女人: 中深膚色 向右',
+    '🏃🏿‍♀‍➡' => '跑步嘅女人: 深膚色 向右',
+    '🏃🏻‍♂‍➡' => '跑步嘅男人: 淺膚色 向右',
+    '🏃🏼‍♂‍➡' => '跑步嘅男人: 中淺膚色 向右',
+    '🏃🏽‍♂‍➡' => '跑步嘅男人: 中膚色 向右',
+    '🏃🏾‍♂‍➡' => '跑步嘅男人: 中深膚色 向右',
+    '🏃🏿‍♂‍➡' => '跑步嘅男人: 深膚色 向右',
     '🫱🏻‍🫲🏼' => '握手: 淺膚色 中淺膚色',
     '🫱🏻‍🫲🏽' => '握手: 淺膚色 中膚色',
     '🫱🏻‍🫲🏾' => '握手: 淺膚色 中深膚色',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => '握手: 深膚色 中淺膚色',
     '🫱🏿‍🫲🏽' => '握手: 深膚色 中膚色',
     '🫱🏿‍🫲🏾' => '握手: 深膚色 中深膚色',
-    '🚶‍♀‍➡' => '行路嘅女人 向右',
-    '🚶‍♂‍➡' => '行路嘅男人 向右',
-    '🧎‍♀‍➡' => '跪嘅女人 向右',
-    '🧎‍♂‍➡' => '跪嘅男人 向右',
-    '🧑‍🦯‍➡' => '揸柺杖嘅人 向右',
-    '👨‍🦯‍➡' => '拎拐杖嘅男人 向右',
-    '👩‍🦯‍➡' => '拎拐杖嘅女人 向右',
-    '🧑‍🦼‍➡' => '坐電動輪椅嘅人 向右',
-    '👨‍🦼‍➡' => '坐電動輪椅嘅男人 向右',
-    '👩‍🦼‍➡' => '坐電動輪椅嘅女人 向右',
-    '🧑‍🦽‍➡' => '坐手動輪椅嘅人 向右',
-    '👨‍🦽‍➡' => '坐手動輪椅嘅男人 向右',
-    '👩‍🦽‍➡' => '坐手動輪椅嘅女人 向右',
-    '🏃‍♀‍➡' => '跑步嘅女人 向右',
-    '🏃‍♂‍➡' => '跑步嘅男人 向右',
+    '🚶‍♀‍➡' => '行路嘅女人: 向右',
+    '🚶‍♂‍➡' => '行路嘅男人: 向右',
+    '🧎‍♀‍➡' => '跪嘅女人: 向右',
+    '🧎‍♂‍➡' => '跪嘅男人: 向右',
+    '🧑‍🦯‍➡' => '揸柺杖嘅人: 向右',
+    '👨‍🦯‍➡' => '拎拐杖嘅男人: 向右',
+    '👩‍🦯‍➡' => '拎拐杖嘅女人: 向右',
+    '🧑‍🦼‍➡' => '坐電動輪椅嘅人: 向右',
+    '👨‍🦼‍➡' => '坐電動輪椅嘅男人: 向右',
+    '👩‍🦼‍➡' => '坐電動輪椅嘅女人: 向右',
+    '🧑‍🦽‍➡' => '坐手動輪椅嘅人: 向右',
+    '👨‍🦽‍➡' => '坐手動輪椅嘅男人: 向右',
+    '👩‍🦽‍➡' => '坐手動輪椅嘅女人: 向右',
+    '🏃‍♀‍➡' => '跑步嘅女人: 向右',
+    '🏃‍♂‍➡' => '跑步嘅男人: 向右',
     '👩‍❤‍👨' => '夫婦同心: 女人 男人',
     '👨‍❤‍👨' => '夫婦同心: 男人 男人',
     '👩‍❤‍👩' => '夫婦同心: 女人 女人',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => '成人: 中膚色 光頭',
     '🧑🏾‍🦲' => '成人: 中深膚色 光頭',
     '🧑🏿‍🦲' => '成人: 深膚色 光頭',
+    '🧑🏻‍🩰' => '芭蕾舞蹈員: 淺膚色',
+    '🧑🏼‍🩰' => '芭蕾舞蹈員: 中淺膚色',
+    '🧑🏽‍🩰' => '芭蕾舞蹈員: 中膚色',
+    '🧑🏾‍🩰' => '芭蕾舞蹈員: 中深膚色',
+    '🧑🏿‍🩰' => '芭蕾舞蹈員: 深膚色',
     '🧔🏻‍♂' => '男人：鬍鬚: 淺膚色',
     '🧔🏼‍♂' => '男人：鬍鬚: 中淺膚色',
     '🧔🏽‍♂' => '男人：鬍鬚: 中膚色',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => '行路嘅女人: 中膚色',
     '🚶🏾‍♀' => '行路嘅女人: 中深膚色',
     '🚶🏿‍♀' => '行路嘅女人: 深膚色',
-    '🚶🏻‍➡' => '行路嘅人 向右',
-    '🚶🏼‍➡' => '行路嘅人 向右',
-    '🚶🏽‍➡' => '行路嘅人 向右',
-    '🚶🏾‍➡' => '行路嘅人 向右',
-    '🚶🏿‍➡' => '行路嘅人 向右',
+    '🚶🏻‍➡' => '行路嘅人: 淺膚色 向右',
+    '🚶🏼‍➡' => '行路嘅人: 中淺膚色 向右',
+    '🚶🏽‍➡' => '行路嘅人: 中膚色 向右',
+    '🚶🏾‍➡' => '行路嘅人: 中深膚色 向右',
+    '🚶🏿‍➡' => '行路嘅人: 深膚色 向右',
     '🧍🏻‍♂' => '企喺度嘅男人: 淺膚色',
     '🧍🏼‍♂' => '企喺度嘅男人: 中淺膚色',
     '🧍🏽‍♂' => '企喺度嘅男人: 中膚色',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => '跪嘅女人: 中膚色',
     '🧎🏾‍♀' => '跪嘅女人: 中深膚色',
     '🧎🏿‍♀' => '跪嘅女人: 深膚色',
-    '🧎🏻‍➡' => '跪嘅人 向右',
-    '🧎🏼‍➡' => '跪嘅人 向右',
-    '🧎🏽‍➡' => '跪嘅人 向右',
-    '🧎🏾‍➡' => '跪嘅人 向右',
-    '🧎🏿‍➡' => '跪嘅人 向右',
+    '🧎🏻‍➡' => '跪嘅人: 淺膚色 向右',
+    '🧎🏼‍➡' => '跪嘅人: 中淺膚色 向右',
+    '🧎🏽‍➡' => '跪嘅人: 中膚色 向右',
+    '🧎🏾‍➡' => '跪嘅人: 中深膚色 向右',
+    '🧎🏿‍➡' => '跪嘅人: 深膚色 向右',
     '🧑🏻‍🦯' => '揸柺杖嘅人: 淺膚色',
     '🧑🏼‍🦯' => '揸柺杖嘅人: 中淺膚色',
     '🧑🏽‍🦯' => '揸柺杖嘅人: 中膚色',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => '跑步嘅女人: 中膚色',
     '🏃🏾‍♀' => '跑步嘅女人: 中深膚色',
     '🏃🏿‍♀' => '跑步嘅女人: 深膚色',
-    '🏃🏻‍➡' => '跑步嘅人 向右',
-    '🏃🏼‍➡' => '跑步嘅人 向右',
-    '🏃🏽‍➡' => '跑步嘅人 向右',
-    '🏃🏾‍➡' => '跑步嘅人 向右',
-    '🏃🏿‍➡' => '跑步嘅人 向右',
+    '🏃🏻‍➡' => '跑步嘅人: 淺膚色 向右',
+    '🏃🏼‍➡' => '跑步嘅人: 中淺膚色 向右',
+    '🏃🏽‍➡' => '跑步嘅人: 中膚色 向右',
+    '🏃🏾‍➡' => '跑步嘅人: 中深膚色 向右',
+    '🏃🏿‍➡' => '跑步嘅人: 深膚色 向右',
+    '👯🏻‍♀' => '戴兔仔耳嘅女人: 淺膚色',
+    '👯🏼‍♀' => '戴兔仔耳嘅女人: 中淺膚色',
+    '👯🏽‍♀' => '戴兔仔耳嘅女人: 中膚色',
+    '👯🏾‍♀' => '戴兔仔耳嘅女人: 中深膚色',
+    '👯🏿‍♀' => '戴兔仔耳嘅女人: 深膚色',
+    '👯🏻‍♂' => '戴兔仔耳嘅男人: 淺膚色',
+    '👯🏼‍♂' => '戴兔仔耳嘅男人: 中淺膚色',
+    '👯🏽‍♂' => '戴兔仔耳嘅男人: 中膚色',
+    '👯🏾‍♂' => '戴兔仔耳嘅男人: 中深膚色',
+    '👯🏿‍♂' => '戴兔仔耳嘅男人: 深膚色',
     '🧖🏻‍♂' => '喺蒸氣房嘅男人: 淺膚色',
     '🧖🏼‍♂' => '喺蒸氣房嘅男人: 中淺膚色',
     '🧖🏽‍♂' => '喺蒸氣房嘅男人: 中膚色',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => '側手翻嘅女人: 中膚色',
     '🤸🏾‍♀' => '側手翻嘅女人: 中深膚色',
     '🤸🏿‍♀' => '側手翻嘅女人: 深膚色',
+    '🤼🏻‍♀' => '摔跤嘅女人: 淺膚色',
+    '🤼🏼‍♀' => '摔跤嘅女人: 中淺膚色',
+    '🤼🏽‍♀' => '摔跤嘅女人: 中膚色',
+    '🤼🏾‍♀' => '摔跤嘅女人: 中深膚色',
+    '🤼🏿‍♀' => '摔跤嘅女人: 深膚色',
+    '🤼🏻‍♂' => '摔跤嘅男人: 淺膚色',
+    '🤼🏼‍♂' => '摔跤嘅男人: 中淺膚色',
+    '🤼🏽‍♂' => '摔跤嘅男人: 中膚色',
+    '🤼🏾‍♂' => '摔跤嘅男人: 中深膚色',
+    '🤼🏿‍♂' => '摔跤嘅男人: 深膚色',
     '🤽🏻‍♂' => '玩水球嘅男人: 淺膚色',
     '🤽🏼‍♂' => '玩水球嘅男人: 中淺膚色',
     '🤽🏽‍♂' => '玩水球嘅男人: 中膚色',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => '女人: 曲髮',
     '👩‍🦳' => '女人: 白色頭髮',
     '👩‍🦲' => '女人: 光頭',
-    '🚶‍➡' => '行路嘅人 向右',
-    '🧎‍➡' => '跪嘅人 向右',
-    '🏃‍➡' => '跑步嘅人 向右',
+    '🚶‍➡' => '行路嘅人: 向右',
+    '🧎‍➡' => '跪嘅人: 向右',
+    '🏃‍➡' => '跑步嘅人: 向右',
     '👨‍👦' => '家庭: 男人 男仔',
     '👨‍👧' => '家庭: 男人 女仔',
     '👩‍👦' => '家庭: 女人 男仔',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => '坐手動輪椅嘅女人',
     '🏃‍♂' => '跑步嘅男人',
     '🏃‍♀' => '跑步嘅女人',
+    '🧑‍🩰' => '芭蕾舞蹈員',
     '👯‍♂' => '戴兔仔耳嘅男人',
     '👯‍♀' => '戴兔仔耳嘅女人',
     '🧖‍♂' => '喺蒸氣房嘅男人',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => '著西裝嘅男人: 中膚色',
     '🕴🏾' => '著西裝嘅男人: 中深膚色',
     '🕴🏿' => '著西裝嘅男人: 深膚色',
+    '👯🏻' => '戴兔仔耳嘅人: 淺膚色',
+    '👯🏼' => '戴兔仔耳嘅人: 中淺膚色',
+    '👯🏽' => '戴兔仔耳嘅人: 中膚色',
+    '👯🏾' => '戴兔仔耳嘅人: 中深膚色',
+    '👯🏿' => '戴兔仔耳嘅人: 深膚色',
     '🧖🏻' => '喺蒸氣房嘅人: 淺膚色',
     '🧖🏼' => '喺蒸氣房嘅人: 中淺膚色',
     '🧖🏽' => '喺蒸氣房嘅人: 中膚色',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => '側手翻嘅人: 中膚色',
     '🤸🏾' => '側手翻嘅人: 中深膚色',
     '🤸🏿' => '側手翻嘅人: 深膚色',
+    '🤼🏻' => '摔跤嘅人: 淺膚色',
+    '🤼🏼' => '摔跤嘅人: 中淺膚色',
+    '🤼🏽' => '摔跤嘅人: 中膚色',
+    '🤼🏾' => '摔跤嘅人: 中深膚色',
+    '🤼🏿' => '摔跤嘅人: 深膚色',
     '🤽🏻' => '玩水球嘅人: 淺膚色',
     '🤽🏼' => '玩水球嘅人: 中淺膚色',
     '🤽🏽' => '玩水球嘅人: 中膚色',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => '旗: 中國',
     '🇨🇴' => '旗: 哥倫比亞',
     '🇨🇵' => '旗: 克里派頓島',
+    '🇨🇶' => '旗: 薩克',
     '🇨🇷' => '旗: 哥斯大黎加',
     '🇨🇺' => '旗: 古巴',
     '🇨🇻' => '旗: 維德角',
@@ -2390,13 +2547,6 @@
     '🏽' => '中膚色',
     '🏾' => '中深膚色',
     '🏿' => '深膚色',
-    '🪉' => '豎琴',
-    '🪏' => '鏟',
-    '🪾' => '禿樹',
-    '🫆' => '指紋',
-    '🫜' => '根莖類蔬菜',
-    '🫟' => '潑濺',
-    '🫩' => '有眼袋嘅臉',
     '😀' => '笑臉',
     '😃' => '大眼睛笑臉',
     '😄' => '笑臉同微笑眼睛',
@@ -2450,6 +2600,7 @@
     '😪' => '眼訓嘅臉',
     '🤤' => '流口水嘅臉',
     '😴' => '訓緊覺嘅臉',
+    '🫩' => '有眼袋嘅臉',
     '😷' => '戴口罩嘅臉',
     '🤒' => '探緊熱嘅臉',
     '🤕' => '紥繃帶嘅臉',
@@ -2476,6 +2627,7 @@
     '😯' => '沉默嘅臉',
     '😲' => '驚訝嘅臉',
     '😳' => '臉紅',
+    '🫪' => '面容扭曲',
     '🥺' => '懇求嘅臉',
     '🥹' => '忍住眼淚嘅臉',
     '😦' => '開口皺眉嘅臉',
@@ -2547,6 +2699,7 @@
     '💋' => '唇印',
     '💯' => '一百分',
     '💢' => '嬲嘅標誌',
+    '🫯' => '打交',
     '💥' => '碰撞',
     '💫' => '頭暈',
     '💦' => '滴汗',
@@ -2670,6 +2823,7 @@
     '🧞' => '神燈精靈',
     '🧟' => '殭屍',
     '🧌' => '巨魔',
+    '🫈' => '毛怪',
     '💆' => '享受按摩嘅人',
     '💇' => '剪頭髮嘅人',
     '🚶' => '行路嘅人',
@@ -2713,6 +2867,7 @@
     '🫂' => '擁抱',
     '👪' => '家庭',
     '👣' => '腳印',
+    '🫆' => '指紋',
     '🦰' => '紅色頭髮',
     '🦱' => '曲髮',
     '🦳' => '白色頭髮',
@@ -2812,6 +2967,7 @@
     '🐳' => '噴緊水嘅鯨魚',
     '🐋' => '鯨魚',
     '🐬' => '海豚',
+    '🫍' => '殺人鯨',
     '🦭' => '海豹',
     '🐟' => '魚',
     '🐠' => '熱帶魚',
@@ -2821,6 +2977,11 @@
     '🐚' => '螺',
     '🪸' => '珊瑚',
     '🪼' => '水母',
+    '🦀' => '蟹',
+    '🦞' => '龍蝦',
+    '🦐' => '蝦',
+    '🦑' => '魷魚',
+    '🦪' => '生蠔',
     '🐌' => '蝸牛',
     '🦋' => '蝴蝶',
     '🐛' => '毛蟲',
@@ -2865,6 +3026,7 @@
     '🪹' => '空嘅雀巢',
     '🪺' => '有蛋嘅雀巢',
     '🍄' => '蘑菇',
+    '🪾' => '禿樹',
     '🍇' => '提子',
     '🍈' => '蜜瓜',
     '🍉' => '西瓜',
@@ -2901,6 +3063,7 @@
     '🌰' => '栗子',
     '🫚' => '姜根',
     '🫛' => '豌豆莢',
+    '🫜' => '根莖類蔬菜',
     '🍞' => '麵包',
     '🥐' => '牛角包',
     '🥖' => '法式麵包',
@@ -2952,11 +3115,6 @@
     '🥟' => '餃子',
     '🥠' => '幸運曲奇',
     '🥡' => '外賣盒',
-    '🦀' => '蟹',
-    '🦞' => '龍蝦',
-    '🦐' => '蝦',
-    '🦑' => '魷魚',
-    '🦪' => '生蠔',
     '🍦' => '軟雪糕',
     '🍧' => '刨冰',
     '🍨' => '雪糕',
@@ -3007,6 +3165,7 @@
     '🧭' => '指南針',
     '🏔' => '雪山',
     '⛰' => '山',
+    '🛘' => '山泥傾瀉',
     '🌋' => '火山',
     '🗻' => '富士山',
     '🏕' => '露營',
@@ -3367,16 +3526,18 @@
     '🎧' => '耳機',
     '📻' => '收音機',
     '🎷' => '色士風',
+    '🎺' => '喇叭',
+    '🪊' => '長號',
     '🪗' => '手風琴',
     '🎸' => '結他',
     '🎹' => '音樂鍵盤',
-    '🎺' => '喇叭',
     '🎻' => '小提琴',
     '🪕' => '班卓琴',
     '🥁' => '鼓',
     '🪘' => '長鼓',
     '🪇' => '沙槌',
     '🪈' => '長笛',
+    '🪉' => '豎琴',
     '📱' => '手提電話',
     '📲' => '有箭咀嘅手提電話',
     '☎' => '電話',
@@ -3430,8 +3591,9 @@
     '📑' => '書籤標籤',
     '🔖' => '書籤',
     '🏷' => '標籤',
-    '💰' => '錢袋',
     '🪙' => '硬幣',
+    '💰' => '錢袋',
+    '🪎' => '藏寶箱',
     '💴' => '日圓紙幣',
     '💵' => '美元紙幣',
     '💶' => '歐元紙幣',
@@ -3514,6 +3676,7 @@
     '🧰' => '工具箱',
     '🧲' => '磁石',
     '🪜' => '梯',
+    '🪏' => '鏟',
     '⚗' => '蒸餾器',
     '🧪' => '試管',
     '🧫' => '培養皿',
@@ -3697,6 +3860,7 @@
     '✴' => '八角星星',
     '❇' => '閃閃',
     '™' => '商標',
+    '🫟' => '潑濺',
     '🔠' => '輸入拉丁大階字母',
     '🔡' => '輸入拉丁細階字母',
     '🔢' => '輸入數字',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh_hant_hk.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh_hant_hk.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh_hant_hk.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh_hant_hk.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => '錫緊嘅一男一女：女人 女人 黑皮膚 中等皮膚',
     '👩🏿‍❤‍💋‍👩🏾' => '錫緊嘅一男一女：女人 女人 黑皮膚 中深皮膚',
     '👩🏿‍❤‍💋‍👩🏿' => '錫緊嘅一男一女：女人 女人 黑皮膚',
+    '🧑🏻‍🫯‍🧑🏼' => '摔角選手：白皮膚 黃皮膚',
+    '🧑🏻‍🫯‍🧑🏽' => '摔角選手：白皮膚 中等皮膚',
+    '🧑🏻‍🫯‍🧑🏾' => '摔角選手：白皮膚 中深皮膚',
+    '🧑🏻‍🫯‍🧑🏿' => '摔角選手：白皮膚 黑皮膚',
+    '🧑🏼‍🫯‍🧑🏻' => '摔角選手：黃皮膚 白皮膚',
+    '🧑🏼‍🫯‍🧑🏽' => '摔角選手：黃皮膚 中等皮膚',
+    '🧑🏼‍🫯‍🧑🏾' => '摔角選手：黃皮膚 中深皮膚',
+    '🧑🏼‍🫯‍🧑🏿' => '摔角選手：黃皮膚 黑皮膚',
+    '🧑🏽‍🫯‍🧑🏻' => '摔角選手：中等皮膚 白皮膚',
+    '🧑🏽‍🫯‍🧑🏼' => '摔角選手：中等皮膚 黃皮膚',
+    '🧑🏽‍🫯‍🧑🏾' => '摔角選手：中等皮膚 中深皮膚',
+    '🧑🏽‍🫯‍🧑🏿' => '摔角選手：中等皮膚 黑皮膚',
+    '🧑🏾‍🫯‍🧑🏻' => '摔角選手：中深皮膚 白皮膚',
+    '🧑🏾‍🫯‍🧑🏼' => '摔角選手：中深皮膚 黃皮膚',
+    '🧑🏾‍🫯‍🧑🏽' => '摔角選手：中深皮膚 中等皮膚',
+    '🧑🏾‍🫯‍🧑🏿' => '摔角選手：中深皮膚 黑皮膚',
+    '🧑🏿‍🫯‍🧑🏻' => '摔角選手：黑皮膚 白皮膚',
+    '🧑🏿‍🫯‍🧑🏼' => '摔角選手：黑皮膚 黃皮膚',
+    '🧑🏿‍🫯‍🧑🏽' => '摔角選手：黑皮膚 中等皮膚',
+    '🧑🏿‍🫯‍🧑🏾' => '摔角選手：黑皮膚 中深皮膚',
     '🧑🏻‍❤‍🧑🏼' => '戀愛中：大人 大人 白皮膚 黃皮膚',
     '🧑🏻‍❤‍🧑🏽' => '戀愛中：大人 大人 白皮膚 中等皮膚',
     '🧑🏻‍❤‍🧑🏾' => '戀愛中：大人 大人 白皮膚 中深皮膚',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => '戀愛中：大人 大人 黑皮膚 黃皮膚',
     '🧑🏿‍❤‍🧑🏽' => '戀愛中：大人 大人 黑皮膚 中等皮膚',
     '🧑🏿‍❤‍🧑🏾' => '戀愛中：大人 大人 黑皮膚 中深皮膚',
+    '🧑🏻‍🐰‍🧑🏼' => '兔女郎：白皮膚 黃皮膚',
+    '🧑🏻‍🐰‍🧑🏽' => '兔女郎：白皮膚 中等皮膚',
+    '🧑🏻‍🐰‍🧑🏾' => '兔女郎：白皮膚 中深皮膚',
+    '🧑🏻‍🐰‍🧑🏿' => '兔女郎：白皮膚 黑皮膚',
+    '🧑🏼‍🐰‍🧑🏻' => '兔女郎：黃皮膚 白皮膚',
+    '🧑🏼‍🐰‍🧑🏽' => '兔女郎：黃皮膚 中等皮膚',
+    '🧑🏼‍🐰‍🧑🏾' => '兔女郎：黃皮膚 中深皮膚',
+    '🧑🏼‍🐰‍🧑🏿' => '兔女郎：黃皮膚 黑皮膚',
+    '🧑🏽‍🐰‍🧑🏻' => '兔女郎：中等皮膚 白皮膚',
+    '🧑🏽‍🐰‍🧑🏼' => '兔女郎：中等皮膚 黃皮膚',
+    '🧑🏽‍🐰‍🧑🏾' => '兔女郎：中等皮膚 中深皮膚',
+    '🧑🏽‍🐰‍🧑🏿' => '兔女郎：中等皮膚 黑皮膚',
+    '🧑🏾‍🐰‍🧑🏻' => '兔女郎：中深皮膚 白皮膚',
+    '🧑🏾‍🐰‍🧑🏼' => '兔女郎：中深皮膚 黃皮膚',
+    '🧑🏾‍🐰‍🧑🏽' => '兔女郎：中深皮膚 中等皮膚',
+    '🧑🏾‍🐰‍🧑🏿' => '兔女郎：中深皮膚 黑皮膚',
+    '🧑🏿‍🐰‍🧑🏻' => '兔女郎：黑皮膚 白皮膚',
+    '🧑🏿‍🐰‍🧑🏼' => '兔女郎：黑皮膚 黃皮膚',
+    '🧑🏿‍🐰‍🧑🏽' => '兔女郎：黑皮膚 中等皮膚',
+    '🧑🏿‍🐰‍🧑🏾' => '兔女郎：黑皮膚 中深皮膚',
+    '👨🏻‍🫯‍👨🏼' => '男摔角選手：白皮膚 黃皮膚',
+    '👨🏻‍🫯‍👨🏽' => '男摔角選手：白皮膚 中等皮膚',
+    '👨🏻‍🫯‍👨🏾' => '男摔角選手：白皮膚 中深皮膚',
+    '👨🏻‍🫯‍👨🏿' => '男摔角選手：白皮膚 黑皮膚',
+    '👨🏼‍🫯‍👨🏻' => '男摔角選手：黃皮膚 白皮膚',
+    '👨🏼‍🫯‍👨🏽' => '男摔角選手：黃皮膚 中等皮膚',
+    '👨🏼‍🫯‍👨🏾' => '男摔角選手：黃皮膚 中深皮膚',
+    '👨🏼‍🫯‍👨🏿' => '男摔角選手：黃皮膚 黑皮膚',
+    '👨🏽‍🫯‍👨🏻' => '男摔角選手：中等皮膚 白皮膚',
+    '👨🏽‍🫯‍👨🏼' => '男摔角選手：中等皮膚 黃皮膚',
+    '👨🏽‍🫯‍👨🏾' => '男摔角選手：中等皮膚 中深皮膚',
+    '👨🏽‍🫯‍👨🏿' => '男摔角選手：中等皮膚 黑皮膚',
+    '👨🏾‍🫯‍👨🏻' => '男摔角選手：中深皮膚 白皮膚',
+    '👨🏾‍🫯‍👨🏼' => '男摔角選手：中深皮膚 黃皮膚',
+    '👨🏾‍🫯‍👨🏽' => '男摔角選手：中深皮膚 中等皮膚',
+    '👨🏾‍🫯‍👨🏿' => '男摔角選手：中深皮膚 黑皮膚',
+    '👨🏿‍🫯‍👨🏻' => '男摔角選手：黑皮膚 白皮膚',
+    '👨🏿‍🫯‍👨🏼' => '男摔角選手：黑皮膚 黃皮膚',
+    '👨🏿‍🫯‍👨🏽' => '男摔角選手：黑皮膚 中等皮膚',
+    '👨🏿‍🫯‍👨🏾' => '男摔角選手：黑皮膚 中深皮膚',
     '👨🏻‍❤‍👨🏻' => '戀愛中：男人 男人 白皮膚',
     '👨🏻‍❤‍👨🏼' => '戀愛中：男人 男人 白皮膚 黃皮膚',
     '👨🏻‍❤‍👨🏽' => '戀愛中：男人 男人 白皮膚 中等皮膚',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => '戀愛中：男人 男人 黑皮膚 中等皮膚',
     '👨🏿‍❤‍👨🏾' => '戀愛中：男人 男人 黑皮膚 中深皮膚',
     '👨🏿‍❤‍👨🏿' => '戀愛中：男人 男人 黑皮膚',
+    '👨🏻‍🐰‍👨🏼' => '戴兔耳仔嘅男人：白皮膚 黃皮膚',
+    '👨🏻‍🐰‍👨🏽' => '戴兔耳仔嘅男人：白皮膚 中等皮膚',
+    '👨🏻‍🐰‍👨🏾' => '戴兔耳仔嘅男人：白皮膚 中深皮膚',
+    '👨🏻‍🐰‍👨🏿' => '戴兔耳仔嘅男人：白皮膚 黑皮膚',
+    '👨🏼‍🐰‍👨🏻' => '戴兔耳仔嘅男人：黃皮膚 白皮膚',
+    '👨🏼‍🐰‍👨🏽' => '戴兔耳仔嘅男人：黃皮膚 中等皮膚',
+    '👨🏼‍🐰‍👨🏾' => '戴兔耳仔嘅男人：黃皮膚 中深皮膚',
+    '👨🏼‍🐰‍👨🏿' => '戴兔耳仔嘅男人：黃皮膚 黑皮膚',
+    '👨🏽‍🐰‍👨🏻' => '戴兔耳仔嘅男人：中等皮膚 白皮膚',
+    '👨🏽‍🐰‍👨🏼' => '戴兔耳仔嘅男人：中等皮膚 黃皮膚',
+    '👨🏽‍🐰‍👨🏾' => '戴兔耳仔嘅男人：中等皮膚 中深皮膚',
+    '👨🏽‍🐰‍👨🏿' => '戴兔耳仔嘅男人：中等皮膚 黑皮膚',
+    '👨🏾‍🐰‍👨🏻' => '戴兔耳仔嘅男人：中深皮膚 白皮膚',
+    '👨🏾‍🐰‍👨🏼' => '戴兔耳仔嘅男人：中深皮膚 黃皮膚',
+    '👨🏾‍🐰‍👨🏽' => '戴兔耳仔嘅男人：中深皮膚 中等皮膚',
+    '👨🏾‍🐰‍👨🏿' => '戴兔耳仔嘅男人：中深皮膚 黑皮膚',
+    '👨🏿‍🐰‍👨🏻' => '戴兔耳仔嘅男人：黑皮膚 白皮膚',
+    '👨🏿‍🐰‍👨🏼' => '戴兔耳仔嘅男人：黑皮膚 黃皮膚',
+    '👨🏿‍🐰‍👨🏽' => '戴兔耳仔嘅男人：黑皮膚 中等皮膚',
+    '👨🏿‍🐰‍👨🏾' => '戴兔耳仔嘅男人：黑皮膚 中深皮膚',
+    '👩🏻‍🫯‍👩🏼' => '女摔角選手：白皮膚 黃皮膚',
+    '👩🏻‍🫯‍👩🏽' => '女摔角選手：白皮膚 中等皮膚',
+    '👩🏻‍🫯‍👩🏾' => '女摔角選手：白皮膚 中深皮膚',
+    '👩🏻‍🫯‍👩🏿' => '女摔角選手：白皮膚 黑皮膚',
+    '👩🏼‍🫯‍👩🏻' => '女摔角選手：黃皮膚 白皮膚',
+    '👩🏼‍🫯‍👩🏽' => '女摔角選手：黃皮膚 中等皮膚',
+    '👩🏼‍🫯‍👩🏾' => '女摔角選手：黃皮膚 中深皮膚',
+    '👩🏼‍🫯‍👩🏿' => '女摔角選手：黃皮膚 黑皮膚',
+    '👩🏽‍🫯‍👩🏻' => '女摔角選手：中等皮膚 白皮膚',
+    '👩🏽‍🫯‍👩🏼' => '女摔角選手：中等皮膚 黃皮膚',
+    '👩🏽‍🫯‍👩🏾' => '女摔角選手：中等皮膚 中深皮膚',
+    '👩🏽‍🫯‍👩🏿' => '女摔角選手：中等皮膚 黑皮膚',
+    '👩🏾‍🫯‍👩🏻' => '女摔角選手：中深皮膚 白皮膚',
+    '👩🏾‍🫯‍👩🏼' => '女摔角選手：中深皮膚 黃皮膚',
+    '👩🏾‍🫯‍👩🏽' => '女摔角選手：中深皮膚 中等皮膚',
+    '👩🏾‍🫯‍👩🏿' => '女摔角選手：中深皮膚 黑皮膚',
+    '👩🏿‍🫯‍👩🏻' => '女摔角選手：黑皮膚 白皮膚',
+    '👩🏿‍🫯‍👩🏼' => '女摔角選手：黑皮膚 黃皮膚',
+    '👩🏿‍🫯‍👩🏽' => '女摔角選手：黑皮膚 中等皮膚',
+    '👩🏿‍🫯‍👩🏾' => '女摔角選手：黑皮膚 中深皮膚',
     '👩🏻‍❤‍👨🏻' => '戀愛中：女人 男人 白皮膚',
     '👩🏻‍❤‍👨🏼' => '戀愛中：女人 男人 白皮膚 黃皮膚',
     '👩🏻‍❤‍👨🏽' => '戀愛中：女人 男人 白皮膚 中等皮膚',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => '戀愛中：女人 女人 黑皮膚 中等皮膚',
     '👩🏿‍❤‍👩🏾' => '戀愛中：女人 女人 黑皮膚 中深皮膚',
     '👩🏿‍❤‍👩🏿' => '戀愛中：女人 女人 黑皮膚',
+    '👩🏻‍🐰‍👩🏼' => '戴兔耳仔嘅女人：白皮膚 黃皮膚',
+    '👩🏻‍🐰‍👩🏽' => '戴兔耳仔嘅女人：白皮膚 中等皮膚',
+    '👩🏻‍🐰‍👩🏾' => '戴兔耳仔嘅女人：白皮膚 中深皮膚',
+    '👩🏻‍🐰‍👩🏿' => '戴兔耳仔嘅女人：白皮膚 黑皮膚',
+    '👩🏼‍🐰‍👩🏻' => '戴兔耳仔嘅女人：黃皮膚 白皮膚',
+    '👩🏼‍🐰‍👩🏽' => '戴兔耳仔嘅女人：黃皮膚 中等皮膚',
+    '👩🏼‍🐰‍👩🏾' => '戴兔耳仔嘅女人：黃皮膚 中深皮膚',
+    '👩🏼‍🐰‍👩🏿' => '戴兔耳仔嘅女人：黃皮膚 黑皮膚',
+    '👩🏽‍🐰‍👩🏻' => '戴兔耳仔嘅女人：中等皮膚 白皮膚',
+    '👩🏽‍🐰‍👩🏼' => '戴兔耳仔嘅女人：中等皮膚 黃皮膚',
+    '👩🏽‍🐰‍👩🏾' => '戴兔耳仔嘅女人：中等皮膚 中深皮膚',
+    '👩🏽‍🐰‍👩🏿' => '戴兔耳仔嘅女人：中等皮膚 黑皮膚',
+    '👩🏾‍🐰‍👩🏻' => '戴兔耳仔嘅女人：中深皮膚 白皮膚',
+    '👩🏾‍🐰‍👩🏼' => '戴兔耳仔嘅女人：中深皮膚 黃皮膚',
+    '👩🏾‍🐰‍👩🏽' => '戴兔耳仔嘅女人：中深皮膚 中等皮膚',
+    '👩🏾‍🐰‍👩🏿' => '戴兔耳仔嘅女人：中深皮膚 黑皮膚',
+    '👩🏿‍🐰‍👩🏻' => '戴兔耳仔嘅女人：黑皮膚 白皮膚',
+    '👩🏿‍🐰‍👩🏼' => '戴兔耳仔嘅女人：黑皮膚 黃皮膚',
+    '👩🏿‍🐰‍👩🏽' => '戴兔耳仔嘅女人：黑皮膚 中等皮膚',
+    '👩🏿‍🐰‍👩🏾' => '戴兔耳仔嘅女人：黑皮膚 中深皮膚',
     '🧑🏻‍🤝‍🧑🏻' => '拖手的人：白皮膚',
     '🧑🏻‍🤝‍🧑🏼' => '拖手的人：白皮膚 黃皮膚',
     '🧑🏻‍🤝‍🧑🏽' => '拖手的人：白皮膚 中等皮膚',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => '旗子：蘇格蘭',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => '旗子：威爾斯',
     '🧑‍🧑‍🧒‍🧒' => '家庭：兩大兩小',
-    '🚶🏻‍♀‍➡' => '行路嘅女人 面右',
-    '🚶🏼‍♀‍➡' => '行路嘅女人 面右',
-    '🚶🏽‍♀‍➡' => '行路嘅女人 面右',
-    '🚶🏾‍♀‍➡' => '行路嘅女人 面右',
-    '🚶🏿‍♀‍➡' => '行路嘅女人 面右',
-    '🚶🏻‍♂‍➡' => '行路嘅男人 面右',
-    '🚶🏼‍♂‍➡' => '行路嘅男人 面右',
-    '🚶🏽‍♂‍➡' => '行路嘅男人 面右',
-    '🚶🏾‍♂‍➡' => '行路嘅男人 面右',
-    '🚶🏿‍♂‍➡' => '行路嘅男人 面右',
-    '🧎🏻‍♀‍➡' => '跪係度嘅女人 面右',
-    '🧎🏼‍♀‍➡' => '跪係度嘅女人 面右',
-    '🧎🏽‍♀‍➡' => '跪係度嘅女人 面右',
-    '🧎🏾‍♀‍➡' => '跪係度嘅女人 面右',
-    '🧎🏿‍♀‍➡' => '跪係度嘅女人 面右',
-    '🧎🏻‍♂‍➡' => '跪係度嘅男人 面右',
-    '🧎🏼‍♂‍➡' => '跪係度嘅男人 面右',
-    '🧎🏽‍♂‍➡' => '跪係度嘅男人 面右',
-    '🧎🏾‍♂‍➡' => '跪係度嘅男人 面右',
-    '🧎🏿‍♂‍➡' => '跪係度嘅男人 面右',
-    '🧑🏻‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '🧑🏼‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '🧑🏽‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '🧑🏾‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '🧑🏿‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '👨🏻‍🦯‍➡' => '拎導盲拐杖嘅男人 面右',
-    '👨🏼‍🦯‍➡' => '拎導盲拐杖嘅男人 面右',
-    '👨🏽‍🦯‍➡' => '拎導盲拐杖嘅男人 面右',
-    '👨🏾‍🦯‍➡' => '拎導盲拐杖嘅男人 面右',
-    '👨🏿‍🦯‍➡' => '拎導盲拐杖嘅男人 面右',
-    '👩🏻‍🦯‍➡' => '拎導盲拐杖嘅女人 面右',
-    '👩🏼‍🦯‍➡' => '拎導盲拐杖嘅女人 面右',
-    '👩🏽‍🦯‍➡' => '拎導盲拐杖嘅女人 面右',
-    '👩🏾‍🦯‍➡' => '拎導盲拐杖嘅女人 面右',
-    '👩🏿‍🦯‍➡' => '拎導盲拐杖嘅女人 面右',
-    '🧑🏻‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '🧑🏼‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '🧑🏽‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '🧑🏾‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '🧑🏿‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '👨🏻‍🦼‍➡' => '坐電動輪椅嘅男人 面右',
-    '👨🏼‍🦼‍➡' => '坐電動輪椅嘅男人 面右',
-    '👨🏽‍🦼‍➡' => '坐電動輪椅嘅男人 面右',
-    '👨🏾‍🦼‍➡' => '坐電動輪椅嘅男人 面右',
-    '👨🏿‍🦼‍➡' => '坐電動輪椅嘅男人 面右',
-    '👩🏻‍🦼‍➡' => '坐電動輪椅嘅女人 面右',
-    '👩🏼‍🦼‍➡' => '坐電動輪椅嘅女人 面右',
-    '👩🏽‍🦼‍➡' => '坐電動輪椅嘅女人 面右',
-    '👩🏾‍🦼‍➡' => '坐電動輪椅嘅女人 面右',
-    '👩🏿‍🦼‍➡' => '坐電動輪椅嘅女人 面右',
-    '🧑🏻‍🦽‍➡' => '坐輪椅的人 面右',
-    '🧑🏼‍🦽‍➡' => '坐輪椅的人 面右',
-    '🧑🏽‍🦽‍➡' => '坐輪椅的人 面右',
-    '🧑🏾‍🦽‍➡' => '坐輪椅的人 面右',
-    '🧑🏿‍🦽‍➡' => '坐輪椅的人 面右',
-    '👨🏻‍🦽‍➡' => '坐輪椅嘅男人 面右',
-    '👨🏼‍🦽‍➡' => '坐輪椅嘅男人 面右',
-    '👨🏽‍🦽‍➡' => '坐輪椅嘅男人 面右',
-    '👨🏾‍🦽‍➡' => '坐輪椅嘅男人 面右',
-    '👨🏿‍🦽‍➡' => '坐輪椅嘅男人 面右',
-    '👩🏻‍🦽‍➡' => '坐輪椅嘅女人 面右',
-    '👩🏼‍🦽‍➡' => '坐輪椅嘅女人 面右',
-    '👩🏽‍🦽‍➡' => '坐輪椅嘅女人 面右',
-    '👩🏾‍🦽‍➡' => '坐輪椅嘅女人 面右',
-    '👩🏿‍🦽‍➡' => '坐輪椅嘅女人 面右',
-    '🏃🏻‍♀‍➡' => '跑步嘅女人 面右',
-    '🏃🏼‍♀‍➡' => '跑步嘅女人 面右',
-    '🏃🏽‍♀‍➡' => '跑步嘅女人 面右',
-    '🏃🏾‍♀‍➡' => '跑步嘅女人 面右',
-    '🏃🏿‍♀‍➡' => '跑步嘅女人 面右',
-    '🏃🏻‍♂‍➡' => '男跑手 面右',
-    '🏃🏼‍♂‍➡' => '男跑手 面右',
-    '🏃🏽‍♂‍➡' => '男跑手 面右',
-    '🏃🏾‍♂‍➡' => '男跑手 面右',
-    '🏃🏿‍♂‍➡' => '男跑手 面右',
+    '🚶🏻‍♀‍➡' => '行路嘅女人：白皮膚 面右',
+    '🚶🏼‍♀‍➡' => '行路嘅女人：黃皮膚 面右',
+    '🚶🏽‍♀‍➡' => '行路嘅女人：中等皮膚 面右',
+    '🚶🏾‍♀‍➡' => '行路嘅女人：中深皮膚 面右',
+    '🚶🏿‍♀‍➡' => '行路嘅女人：黑皮膚 面右',
+    '🚶🏻‍♂‍➡' => '行路嘅男人：白皮膚 面右',
+    '🚶🏼‍♂‍➡' => '行路嘅男人：黃皮膚 面右',
+    '🚶🏽‍♂‍➡' => '行路嘅男人：中等皮膚 面右',
+    '🚶🏾‍♂‍➡' => '行路嘅男人：中深皮膚 面右',
+    '🚶🏿‍♂‍➡' => '行路嘅男人：黑皮膚 面右',
+    '🧎🏻‍♀‍➡' => '跪係度嘅女人：白皮膚 面右',
+    '🧎🏼‍♀‍➡' => '跪係度嘅女人：黃皮膚 面右',
+    '🧎🏽‍♀‍➡' => '跪係度嘅女人：中等皮膚 面右',
+    '🧎🏾‍♀‍➡' => '跪係度嘅女人：中深皮膚 面右',
+    '🧎🏿‍♀‍➡' => '跪係度嘅女人：黑皮膚 面右',
+    '🧎🏻‍♂‍➡' => '跪係度嘅男人：白皮膚 面右',
+    '🧎🏼‍♂‍➡' => '跪係度嘅男人：黃皮膚 面右',
+    '🧎🏽‍♂‍➡' => '跪係度嘅男人：中等皮膚 面右',
+    '🧎🏾‍♂‍➡' => '跪係度嘅男人：中深皮膚 面右',
+    '🧎🏿‍♂‍➡' => '跪係度嘅男人：黑皮膚 面右',
+    '🧑🏻‍🦯‍➡' => '拿導盲手杖的人：白皮膚 面右',
+    '🧑🏼‍🦯‍➡' => '拿導盲手杖的人：黃皮膚 面右',
+    '🧑🏽‍🦯‍➡' => '拿導盲手杖的人：中等皮膚 面右',
+    '🧑🏾‍🦯‍➡' => '拿導盲手杖的人：中深皮膚 面右',
+    '🧑🏿‍🦯‍➡' => '拿導盲手杖的人：黑皮膚 面右',
+    '👨🏻‍🦯‍➡' => '拎導盲拐杖嘅男人：白皮膚 面右',
+    '👨🏼‍🦯‍➡' => '拎導盲拐杖嘅男人：黃皮膚 面右',
+    '👨🏽‍🦯‍➡' => '拎導盲拐杖嘅男人：中等皮膚 面右',
+    '👨🏾‍🦯‍➡' => '拎導盲拐杖嘅男人：中深皮膚 面右',
+    '👨🏿‍🦯‍➡' => '拎導盲拐杖嘅男人：黑皮膚 面右',
+    '👩🏻‍🦯‍➡' => '拎導盲拐杖嘅女人：白皮膚 面右',
+    '👩🏼‍🦯‍➡' => '拎導盲拐杖嘅女人：黃皮膚 面右',
+    '👩🏽‍🦯‍➡' => '拎導盲拐杖嘅女人：中等皮膚 面右',
+    '👩🏾‍🦯‍➡' => '拎導盲拐杖嘅女人：中深皮膚 面右',
+    '👩🏿‍🦯‍➡' => '拎導盲拐杖嘅女人：黑皮膚 面右',
+    '🧑🏻‍🦼‍➡' => '坐電動輪椅的人：白皮膚 面右',
+    '🧑🏼‍🦼‍➡' => '坐電動輪椅的人：黃皮膚 面右',
+    '🧑🏽‍🦼‍➡' => '坐電動輪椅的人：中等皮膚 面右',
+    '🧑🏾‍🦼‍➡' => '坐電動輪椅的人：中深皮膚 面右',
+    '🧑🏿‍🦼‍➡' => '坐電動輪椅的人：黑皮膚 面右',
+    '👨🏻‍🦼‍➡' => '坐電動輪椅嘅男人：白皮膚 面右',
+    '👨🏼‍🦼‍➡' => '坐電動輪椅嘅男人：黃皮膚 面右',
+    '👨🏽‍🦼‍➡' => '坐電動輪椅嘅男人：中等皮膚 面右',
+    '👨🏾‍🦼‍➡' => '坐電動輪椅嘅男人：中深皮膚 面右',
+    '👨🏿‍🦼‍➡' => '坐電動輪椅嘅男人：黑皮膚 面右',
+    '👩🏻‍🦼‍➡' => '坐電動輪椅嘅女人：白皮膚 面右',
+    '👩🏼‍🦼‍➡' => '坐電動輪椅嘅女人：黃皮膚 面右',
+    '👩🏽‍🦼‍➡' => '坐電動輪椅嘅女人：中等皮膚 面右',
+    '👩🏾‍🦼‍➡' => '坐電動輪椅嘅女人：中深皮膚 面右',
+    '👩🏿‍🦼‍➡' => '坐電動輪椅嘅女人：黑皮膚 面右',
+    '🧑🏻‍🦽‍➡' => '坐輪椅的人：白皮膚 面右',
+    '🧑🏼‍🦽‍➡' => '坐輪椅的人：黃皮膚 面右',
+    '🧑🏽‍🦽‍➡' => '坐輪椅的人：中等皮膚 面右',
+    '🧑🏾‍🦽‍➡' => '坐輪椅的人：中深皮膚 面右',
+    '🧑🏿‍🦽‍➡' => '坐輪椅的人：黑皮膚 面右',
+    '👨🏻‍🦽‍➡' => '坐輪椅嘅男人：白皮膚 面右',
+    '👨🏼‍🦽‍➡' => '坐輪椅嘅男人：黃皮膚 面右',
+    '👨🏽‍🦽‍➡' => '坐輪椅嘅男人：中等皮膚 面右',
+    '👨🏾‍🦽‍➡' => '坐輪椅嘅男人：中深皮膚 面右',
+    '👨🏿‍🦽‍➡' => '坐輪椅嘅男人：黑皮膚 面右',
+    '👩🏻‍🦽‍➡' => '坐輪椅嘅女人：白皮膚 面右',
+    '👩🏼‍🦽‍➡' => '坐輪椅嘅女人：黃皮膚 面右',
+    '👩🏽‍🦽‍➡' => '坐輪椅嘅女人：中等皮膚 面右',
+    '👩🏾‍🦽‍➡' => '坐輪椅嘅女人：中深皮膚 面右',
+    '👩🏿‍🦽‍➡' => '坐輪椅嘅女人：黑皮膚 面右',
+    '🏃🏻‍♀‍➡' => '跑步嘅女人：白皮膚 面右',
+    '🏃🏼‍♀‍➡' => '跑步嘅女人：黃皮膚 面右',
+    '🏃🏽‍♀‍➡' => '跑步嘅女人：中等皮膚 面右',
+    '🏃🏾‍♀‍➡' => '跑步嘅女人：中深皮膚 面右',
+    '🏃🏿‍♀‍➡' => '跑步嘅女人：黑皮膚 面右',
+    '🏃🏻‍♂‍➡' => '男跑手：白皮膚 面右',
+    '🏃🏼‍♂‍➡' => '男跑手：黃皮膚 面右',
+    '🏃🏽‍♂‍➡' => '男跑手：中等皮膚 面右',
+    '🏃🏾‍♂‍➡' => '男跑手：中深皮膚 面右',
+    '🏃🏿‍♂‍➡' => '男跑手：黑皮膚 面右',
     '🫱🏻‍🫲🏼' => '握手：白皮膚 黃皮膚',
     '🫱🏻‍🫲🏽' => '握手：白皮膚 中等皮膚',
     '🫱🏻‍🫲🏾' => '握手：白皮膚 中深皮膚',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => '握手：黑皮膚 黃皮膚',
     '🫱🏿‍🫲🏽' => '握手：黑皮膚 中等皮膚',
     '🫱🏿‍🫲🏾' => '握手：黑皮膚 中深皮膚',
-    '🚶‍♀‍➡' => '行路嘅女人 面右',
-    '🚶‍♂‍➡' => '行路嘅男人 面右',
-    '🧎‍♀‍➡' => '跪係度嘅女人 面右',
-    '🧎‍♂‍➡' => '跪係度嘅男人 面右',
-    '🧑‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '👨‍🦯‍➡' => '拎導盲拐杖嘅男人 面右',
-    '👩‍🦯‍➡' => '拎導盲拐杖嘅女人 面右',
-    '🧑‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '👨‍🦼‍➡' => '坐電動輪椅嘅男人 面右',
-    '👩‍🦼‍➡' => '坐電動輪椅嘅女人 面右',
-    '🧑‍🦽‍➡' => '坐輪椅的人 面右',
-    '👨‍🦽‍➡' => '坐輪椅嘅男人 面右',
-    '👩‍🦽‍➡' => '坐輪椅嘅女人 面右',
-    '🏃‍♀‍➡' => '跑步嘅女人 面右',
-    '🏃‍♂‍➡' => '男跑手 面右',
+    '🚶‍♀‍➡' => '行路嘅女人：面右',
+    '🚶‍♂‍➡' => '行路嘅男人：面右',
+    '🧎‍♀‍➡' => '跪係度嘅女人：面右',
+    '🧎‍♂‍➡' => '跪係度嘅男人：面右',
+    '🧑‍🦯‍➡' => '拿導盲手杖的人：面右',
+    '👨‍🦯‍➡' => '拎導盲拐杖嘅男人：面右',
+    '👩‍🦯‍➡' => '拎導盲拐杖嘅女人：面右',
+    '🧑‍🦼‍➡' => '坐電動輪椅的人：面右',
+    '👨‍🦼‍➡' => '坐電動輪椅嘅男人：面右',
+    '👩‍🦼‍➡' => '坐電動輪椅嘅女人：面右',
+    '🧑‍🦽‍➡' => '坐輪椅的人：面右',
+    '👨‍🦽‍➡' => '坐輪椅嘅男人：面右',
+    '👩‍🦽‍➡' => '坐輪椅嘅女人：面右',
+    '🏃‍♀‍➡' => '跑步嘅女人：面右',
+    '🏃‍♂‍➡' => '男跑手：面右',
     '👩‍❤‍👨' => '戀愛中：女人 男人',
     '👨‍❤‍👨' => '戀愛中：男人 男人',
     '👩‍❤‍👩' => '戀愛中：女人 女人',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => '大人：中等皮膚 禿頭',
     '🧑🏾‍🦲' => '大人：中深皮膚 禿頭',
     '🧑🏿‍🦲' => '大人：黑皮膚 禿頭',
+    '🧑🏻‍🩰' => '芭蕾舞者：白皮膚',
+    '🧑🏼‍🩰' => '芭蕾舞者：黃皮膚',
+    '🧑🏽‍🩰' => '芭蕾舞者：中等皮膚',
+    '🧑🏾‍🩰' => '芭蕾舞者：中深皮膚',
+    '🧑🏿‍🩰' => '芭蕾舞者：黑皮膚',
     '🧔🏻‍♂' => '男人: 蓄鬍的人：白皮膚',
     '🧔🏼‍♂' => '男人: 蓄鬍的人：黃皮膚',
     '🧔🏽‍♂' => '男人: 蓄鬍的人：中等皮膚',
@@ -550,11 +675,11 @@
     '💁🏽‍♀' => '攤開手嘅女人：中等皮膚',
     '💁🏾‍♀' => '攤開手嘅女人：中深皮膚',
     '💁🏿‍♀' => '攤開手嘅女人：黑皮膚',
-    '🙋🏻‍♂' => '開心｜舉起一隻手｜男人｜哈囉｜hi：白皮膚',
-    '🙋🏼‍♂' => '開心｜舉起一隻手｜男人｜哈囉｜hi：黃皮膚',
-    '🙋🏽‍♂' => '開心｜舉起一隻手｜男人｜哈囉｜hi：中等皮膚',
-    '🙋🏾‍♂' => '開心｜舉起一隻手｜男人｜哈囉｜hi：中深皮膚',
-    '🙋🏿‍♂' => '開心｜舉起一隻手｜男人｜哈囉｜hi：黑皮膚',
+    '🙋🏻‍♂' => '快樂的男人舉起一隻手：白皮膚',
+    '🙋🏼‍♂' => '快樂的男人舉起一隻手：黃皮膚',
+    '🙋🏽‍♂' => '快樂的男人舉起一隻手：中等皮膚',
+    '🙋🏾‍♂' => '快樂的男人舉起一隻手：中深皮膚',
+    '🙋🏿‍♂' => '快樂的男人舉起一隻手：黑皮膚',
     '🙋🏻‍♀' => '開心嘅女人舉起一隻手：白皮膚',
     '🙋🏼‍♀' => '開心嘅女人舉起一隻手：黃皮膚',
     '🙋🏽‍♀' => '開心嘅女人舉起一隻手：中等皮膚',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => '行路嘅女人：中等皮膚',
     '🚶🏾‍♀' => '行路嘅女人：中深皮膚',
     '🚶🏿‍♀' => '行路嘅女人：黑皮膚',
-    '🚶🏻‍➡' => '行人 面右',
-    '🚶🏼‍➡' => '行人 面右',
-    '🚶🏽‍➡' => '行人 面右',
-    '🚶🏾‍➡' => '行人 面右',
-    '🚶🏿‍➡' => '行人 面右',
+    '🚶🏻‍➡' => '行人：白皮膚 面右',
+    '🚶🏼‍➡' => '行人：黃皮膚 面右',
+    '🚶🏽‍➡' => '行人：中等皮膚 面右',
+    '🚶🏾‍➡' => '行人：中深皮膚 面右',
+    '🚶🏿‍➡' => '行人：黑皮膚 面右',
     '🧍🏻‍♂' => '企係度嘅男人：白皮膚',
     '🧍🏼‍♂' => '企係度嘅男人：黃皮膚',
     '🧍🏽‍♂' => '企係度嘅男人：中等皮膚',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => '跪係度嘅女人：中等皮膚',
     '🧎🏾‍♀' => '跪係度嘅女人：中深皮膚',
     '🧎🏿‍♀' => '跪係度嘅女人：黑皮膚',
-    '🧎🏻‍➡' => '跪係度嘅人 面右',
-    '🧎🏼‍➡' => '跪係度嘅人 面右',
-    '🧎🏽‍➡' => '跪係度嘅人 面右',
-    '🧎🏾‍➡' => '跪係度嘅人 面右',
-    '🧎🏿‍➡' => '跪係度嘅人 面右',
+    '🧎🏻‍➡' => '跪係度嘅人：白皮膚 面右',
+    '🧎🏼‍➡' => '跪係度嘅人：黃皮膚 面右',
+    '🧎🏽‍➡' => '跪係度嘅人：中等皮膚 面右',
+    '🧎🏾‍➡' => '跪係度嘅人：中深皮膚 面右',
+    '🧎🏿‍➡' => '跪係度嘅人：黑皮膚 面右',
     '🧑🏻‍🦯' => '拿導盲手杖的人：白皮膚',
     '🧑🏼‍🦯' => '拿導盲手杖的人：黃皮膚',
     '🧑🏽‍🦯' => '拿導盲手杖的人：中等皮膚',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => '跑步嘅女人：中等皮膚',
     '🏃🏾‍♀' => '跑步嘅女人：中深皮膚',
     '🏃🏿‍♀' => '跑步嘅女人：黑皮膚',
-    '🏃🏻‍➡' => '跑步嘅人 面右',
-    '🏃🏼‍➡' => '跑步嘅人 面右',
-    '🏃🏽‍➡' => '跑步嘅人 面右',
-    '🏃🏾‍➡' => '跑步嘅人 面右',
-    '🏃🏿‍➡' => '跑步嘅人 面右',
+    '🏃🏻‍➡' => '跑步嘅人：白皮膚 面右',
+    '🏃🏼‍➡' => '跑步嘅人：黃皮膚 面右',
+    '🏃🏽‍➡' => '跑步嘅人：中等皮膚 面右',
+    '🏃🏾‍➡' => '跑步嘅人：中深皮膚 面右',
+    '🏃🏿‍➡' => '跑步嘅人：黑皮膚 面右',
+    '👯🏻‍♀' => '戴兔耳仔嘅女人：白皮膚',
+    '👯🏼‍♀' => '戴兔耳仔嘅女人：黃皮膚',
+    '👯🏽‍♀' => '戴兔耳仔嘅女人：中等皮膚',
+    '👯🏾‍♀' => '戴兔耳仔嘅女人：中深皮膚',
+    '👯🏿‍♀' => '戴兔耳仔嘅女人：黑皮膚',
+    '👯🏻‍♂' => '戴兔耳仔嘅男人：白皮膚',
+    '👯🏼‍♂' => '戴兔耳仔嘅男人：黃皮膚',
+    '👯🏽‍♂' => '戴兔耳仔嘅男人：中等皮膚',
+    '👯🏾‍♂' => '戴兔耳仔嘅男人：中深皮膚',
+    '👯🏿‍♂' => '戴兔耳仔嘅男人：黑皮膚',
     '🧖🏻‍♂' => '焗桑拿嘅男人：白皮膚',
     '🧖🏼‍♂' => '焗桑拿嘅男人：黃皮膚',
     '🧖🏽‍♂' => '焗桑拿嘅男人：中等皮膚',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => '打側手翻嘅女人：中等皮膚',
     '🤸🏾‍♀' => '打側手翻嘅女人：中深皮膚',
     '🤸🏿‍♀' => '打側手翻嘅女人：黑皮膚',
+    '🤼🏻‍♀' => '女摔角選手：白皮膚',
+    '🤼🏼‍♀' => '女摔角選手：黃皮膚',
+    '🤼🏽‍♀' => '女摔角選手：中等皮膚',
+    '🤼🏾‍♀' => '女摔角選手：中深皮膚',
+    '🤼🏿‍♀' => '女摔角選手：黑皮膚',
+    '🤼🏻‍♂' => '男摔角選手：白皮膚',
+    '🤼🏼‍♂' => '男摔角選手：黃皮膚',
+    '🤼🏽‍♂' => '男摔角選手：中等皮膚',
+    '🤼🏾‍♂' => '男摔角選手：中深皮膚',
+    '🤼🏿‍♂' => '男摔角選手：黑皮膚',
     '🤽🏻‍♂' => '打水球嘅男人：白皮膚',
     '🤽🏼‍♂' => '打水球嘅男人：黃皮膚',
     '🤽🏽‍♂' => '打水球嘅男人：中等皮膚',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => '女人：曲髮',
     '👩‍🦳' => '女人：白頭髮',
     '👩‍🦲' => '女人：禿頭',
-    '🚶‍➡' => '行人 面右',
-    '🧎‍➡' => '跪係度嘅人 面右',
-    '🏃‍➡' => '跑步嘅人 面右',
+    '🚶‍➡' => '行人：面右',
+    '🧎‍➡' => '跪係度嘅人：面右',
+    '🏃‍➡' => '跑步嘅人：面右',
     '👨‍👦' => '家庭：男人 男孩',
     '👨‍👧' => '家庭：男人 女孩',
     '👩‍👦' => '家庭：女人 男孩',
@@ -1310,7 +1455,7 @@
     '🙆‍♀' => '用手勢表示 OK 嘅女人',
     '💁‍♂' => '男子抬手',
     '💁‍♀' => '攤開手嘅女人',
-    '🙋‍♂' => '開心｜舉起一隻手｜男人｜哈囉｜hi',
+    '🙋‍♂' => '快樂的男人舉起一隻手',
     '🙋‍♀' => '開心嘅女人舉起一隻手',
     '🧏‍♂' => '聽障男人',
     '🧏‍♀' => '聽障女人',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => '坐輪椅嘅女人',
     '🏃‍♂' => '男跑手',
     '🏃‍♀' => '跑步嘅女人',
+    '🧑‍🩰' => '芭蕾舞者',
     '👯‍♂' => '戴兔耳仔嘅男人',
     '👯‍♀' => '戴兔耳仔嘅女人',
     '🧖‍♂' => '焗桑拿嘅男人',
@@ -1536,11 +1682,11 @@
     '🤌🏽' => '捏手指：中等皮膚',
     '🤌🏾' => '捏手指：中深皮膚',
     '🤌🏿' => '捏手指：黑皮膚',
-    '🤏🏻' => '捏｜少少｜一啲啲：白皮膚',
-    '🤏🏼' => '捏｜少少｜一啲啲：黃皮膚',
-    '🤏🏽' => '捏｜少少｜一啲啲：中等皮膚',
-    '🤏🏾' => '捏｜少少｜一啲啲：中深皮膚',
-    '🤏🏿' => '捏｜少少｜一啲啲：黑皮膚',
+    '🤏🏻' => '捏：白皮膚',
+    '🤏🏼' => '捏：黃皮膚',
+    '🤏🏽' => '捏：中等皮膚',
+    '🤏🏾' => '捏：中深皮膚',
+    '🤏🏿' => '捏：黑皮膚',
     '✌🏻' => 'V字手勢：白皮膚',
     '✌🏼' => 'V字手勢：黃皮膚',
     '✌🏽' => 'V字手勢：中等皮膚',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => '着住西裝飄浮嘅男人：中等皮膚',
     '🕴🏾' => '着住西裝飄浮嘅男人：中深皮膚',
     '🕴🏿' => '着住西裝飄浮嘅男人：黑皮膚',
+    '👯🏻' => '兔女郎：白皮膚',
+    '👯🏼' => '兔女郎：黃皮膚',
+    '👯🏽' => '兔女郎：中等皮膚',
+    '👯🏾' => '兔女郎：中深皮膚',
+    '👯🏿' => '兔女郎：黑皮膚',
     '🧖🏻' => '焗桑拿嘅人：白皮膚',
     '🧖🏼' => '焗桑拿嘅人：黃皮膚',
     '🧖🏽' => '焗桑拿嘅人：中等皮膚',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => '側手翻：中等皮膚',
     '🤸🏾' => '側手翻：中深皮膚',
     '🤸🏿' => '側手翻：黑皮膚',
+    '🤼🏻' => '摔角選手：白皮膚',
+    '🤼🏼' => '摔角選手：黃皮膚',
+    '🤼🏽' => '摔角選手：中等皮膚',
+    '🤼🏾' => '摔角選手：中深皮膚',
+    '🤼🏿' => '摔角選手：黑皮膚',
     '🤽🏻' => '水球：白皮膚',
     '🤽🏼' => '水球：黃皮膚',
     '🤽🏽' => '水球：中等皮膚',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => '旗子：中國',
     '🇨🇴' => '旗子：哥倫比亞',
     '🇨🇵' => '旗子：克里珀頓島',
+    '🇨🇶' => '旗子：薩克島',
     '🇨🇷' => '旗子：哥斯達黎加',
     '🇨🇺' => '旗子：古巴',
     '🇨🇻' => '旗子：佛得角',
@@ -2390,13 +2547,6 @@
     '🏽' => '中等皮膚',
     '🏾' => '中深皮膚',
     '🏿' => '黑皮膚',
-    '🪉' => '豎琴',
-    '🪏' => '鏟子',
-    '🪾' => '沒有葉子的樹',
-    '🫆' => '指紋',
-    '🫜' => '根莖類蔬菜',
-    '🫟' => '潑濺',
-    '🫩' => '臉上有眼袋',
     '😀' => '笑臉',
     '😃' => '開眼嘅笑臉',
     '😄' => '含笑同笑嘻嘻嘅表情',
@@ -2450,6 +2600,7 @@
     '😪' => '睏',
     '🤤' => '流口水',
     '😴' => '睡著了',
+    '🫩' => '臉上有眼袋',
     '😷' => '口罩',
     '🤒' => '含溫度計',
     '🤕' => '包繃帶',
@@ -2476,6 +2627,7 @@
     '😯' => '驚訝嘅表情',
     '😲' => '震驚',
     '😳' => '臉紅',
+    '🫪' => '變形嘅樣',
     '🥺' => '請求嘅樣',
     '🥹' => '強忍眼淚嘅表情',
     '😦' => '皺眉掰大口',
@@ -2492,7 +2644,7 @@
     '😓' => '冷汗',
     '😩' => '面露疲憊',
     '😫' => '累',
-    '🥱' => '呵欠｜打喊露｜打呵欠｜打呵欠嘅樣',
+    '🥱' => '呵欠',
     '😤' => '傲慢',
     '😡' => '生氣',
     '😠' => '憤怒',
@@ -2540,13 +2692,14 @@
     '💙' => '藍心',
     '🩵' => '淺藍心',
     '💜' => '紫心',
-    '🤎' => '啡心｜啡色心｜啡色嘅心',
+    '🤎' => '啡心',
     '🖤' => '黑心',
     '🩶' => '灰色心',
-    '🤍' => '白心｜白色心｜白色嘅心',
+    '🤍' => '白心',
     '💋' => '唇印',
     '💯' => '100 分',
     '💢' => '怒',
+    '🫯' => '打交嘅雲',
     '💥' => '碰撞',
     '💫' => '頭暈星星',
     '💦' => '出汗',
@@ -2570,7 +2723,7 @@
     '🫸' => '手向右推',
     '👌' => 'OK 手勢',
     '🤌' => '捏手指',
-    '🤏' => '捏｜少少｜一啲啲',
+    '🤏' => '捏',
     '✌' => 'V字手勢',
     '🤞' => '祝好運',
     '🫰' => '食指和拇指交叉的手',
@@ -2670,6 +2823,7 @@
     '🧞' => '燈神',
     '🧟' => '喪屍',
     '🧌' => '巨人',
+    '🫈' => '毛怪',
     '💆' => '接受頭部按摩嘅人',
     '💇' => '剪頭髮',
     '🚶' => '行人',
@@ -2713,6 +2867,7 @@
     '🫂' => '擁抱的人',
     '👪' => '家庭',
     '👣' => '腳印',
+    '🫆' => '指紋',
     '🦰' => '紅髮',
     '🦱' => '曲髮',
     '🦳' => '白頭髮',
@@ -2812,6 +2967,7 @@
     '🐳' => '鯨魚',
     '🐋' => '座頭鯨',
     '🐬' => '海豚',
+    '🫍' => '殺人鯨',
     '🦭' => '海豹',
     '🐟' => '魚',
     '🐠' => '熱帶魚',
@@ -2821,6 +2977,11 @@
     '🐚' => '貝殼',
     '🪸' => '珊瑚',
     '🪼' => '水母',
+    '🦀' => '螃蟹',
+    '🦞' => '龍蝦',
+    '🦐' => '蝦',
+    '🦑' => '魷魚',
+    '🦪' => '蠔',
     '🐌' => '蝸牛',
     '🦋' => '蝴蝶',
     '🐛' => '毛蟲',
@@ -2865,6 +3026,7 @@
     '🪹' => '空巢',
     '🪺' => '有蛋的巢',
     '🍄' => '蘑菇',
+    '🪾' => '沒有葉子的樹',
     '🍇' => '葡萄',
     '🍈' => '蜜瓜',
     '🍉' => '西瓜',
@@ -2901,6 +3063,7 @@
     '🌰' => '栗子',
     '🫚' => '薑',
     '🫛' => '豌豆莢',
+    '🫜' => '根莖類蔬菜',
     '🍞' => '麵包',
     '🥐' => '牛角包',
     '🥖' => '法棍包',
@@ -2952,11 +3115,6 @@
     '🥟' => '水餃',
     '🥠' => '幸運曲奇',
     '🥡' => '外賣盒',
-    '🦀' => '螃蟹',
-    '🦞' => '龍蝦',
-    '🦐' => '蝦',
-    '🦑' => '魷魚',
-    '🦪' => '蠔',
     '🍦' => '軟雪糕',
     '🍧' => '刨冰',
     '🍨' => '雪糕',
@@ -3007,6 +3165,7 @@
     '🧭' => '指南針',
     '🏔' => '雪山',
     '⛰' => '山',
+    '🛘' => '山崩',
     '🌋' => '火山',
     '🗻' => '富士山',
     '🏕' => '露營',
@@ -3367,16 +3526,18 @@
     '🎧' => '耳筒',
     '📻' => '收音機',
     '🎷' => '色士風',
+    '🎺' => '小號',
+    '🪊' => '長號',
     '🪗' => '手風琴',
     '🎸' => '結他',
     '🎹' => '鋼琴',
-    '🎺' => '小號',
     '🎻' => '小提琴',
     '🪕' => '班卓琴',
     '🥁' => '鼓',
     '🪘' => '長鼓',
     '🪇' => '沙鈴',
     '🪈' => '長笛',
+    '🪉' => '豎琴',
     '📱' => '手提電話',
     '📲' => '個有箭嘴嘅電話',
     '☎' => '電話',
@@ -3430,8 +3591,9 @@
     '📑' => '書籤頁',
     '🔖' => '書籤',
     '🏷' => '標籤',
-    '💰' => '一袋錢',
     '🪙' => '硬幣',
+    '💰' => '一袋錢',
+    '🪎' => '寶箱',
     '💴' => '日元紙幣',
     '💵' => '美金紙幣',
     '💶' => '歐元紙幣',
@@ -3514,6 +3676,7 @@
     '🧰' => '工具箱',
     '🧲' => '磁鐵',
     '🪜' => '梯子',
+    '🪏' => '鏟子',
     '⚗' => '蒸餾器',
     '🧪' => '試管',
     '🧫' => '培養皿',
@@ -3697,6 +3860,7 @@
     '✴' => '八角星',
     '❇' => '火花',
     '™' => '商標',
+    '🫟' => '潑濺',
     '🔠' => '大階英文輸入',
     '🔡' => '細階英文輸入',
     '🔢' => '數字輸入',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh_hant.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh_hant.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh_hant.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh_hant.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => '親：女人 女人 黑皮膚 淺褐皮膚',
     '👩🏿‍❤‍💋‍👩🏾' => '親：女人 女人 黑皮膚 褐皮膚',
     '👩🏿‍❤‍💋‍👩🏿' => '親：女人 女人 黑皮膚',
+    '🧑🏻‍🫯‍🧑🏼' => '摔角手：白皮膚 黃皮膚',
+    '🧑🏻‍🫯‍🧑🏽' => '摔角手：白皮膚 淺褐皮膚',
+    '🧑🏻‍🫯‍🧑🏾' => '摔角手：白皮膚 褐皮膚',
+    '🧑🏻‍🫯‍🧑🏿' => '摔角手：白皮膚 黑皮膚',
+    '🧑🏼‍🫯‍🧑🏻' => '摔角手：黃皮膚 白皮膚',
+    '🧑🏼‍🫯‍🧑🏽' => '摔角手：黃皮膚 淺褐皮膚',
+    '🧑🏼‍🫯‍🧑🏾' => '摔角手：黃皮膚 褐皮膚',
+    '🧑🏼‍🫯‍🧑🏿' => '摔角手：黃皮膚 黑皮膚',
+    '🧑🏽‍🫯‍🧑🏻' => '摔角手：淺褐皮膚 白皮膚',
+    '🧑🏽‍🫯‍🧑🏼' => '摔角手：淺褐皮膚 黃皮膚',
+    '🧑🏽‍🫯‍🧑🏾' => '摔角手：淺褐皮膚 褐皮膚',
+    '🧑🏽‍🫯‍🧑🏿' => '摔角手：淺褐皮膚 黑皮膚',
+    '🧑🏾‍🫯‍🧑🏻' => '摔角手：褐皮膚 白皮膚',
+    '🧑🏾‍🫯‍🧑🏼' => '摔角手：褐皮膚 黃皮膚',
+    '🧑🏾‍🫯‍🧑🏽' => '摔角手：褐皮膚 淺褐皮膚',
+    '🧑🏾‍🫯‍🧑🏿' => '摔角手：褐皮膚 黑皮膚',
+    '🧑🏿‍🫯‍🧑🏻' => '摔角手：黑皮膚 白皮膚',
+    '🧑🏿‍🫯‍🧑🏼' => '摔角手：黑皮膚 黃皮膚',
+    '🧑🏿‍🫯‍🧑🏽' => '摔角手：黑皮膚 淺褐皮膚',
+    '🧑🏿‍🫯‍🧑🏾' => '摔角手：黑皮膚 褐皮膚',
     '🧑🏻‍❤‍🧑🏼' => '相愛：大人 大人 白皮膚 黃皮膚',
     '🧑🏻‍❤‍🧑🏽' => '相愛：大人 大人 白皮膚 淺褐皮膚',
     '🧑🏻‍❤‍🧑🏾' => '相愛：大人 大人 白皮膚 褐皮膚',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => '相愛：大人 大人 黑皮膚 黃皮膚',
     '🧑🏿‍❤‍🧑🏽' => '相愛：大人 大人 黑皮膚 淺褐皮膚',
     '🧑🏿‍❤‍🧑🏾' => '相愛：大人 大人 黑皮膚 褐皮膚',
+    '🧑🏻‍🐰‍🧑🏼' => '兔女郎：白皮膚 黃皮膚',
+    '🧑🏻‍🐰‍🧑🏽' => '兔女郎：白皮膚 淺褐皮膚',
+    '🧑🏻‍🐰‍🧑🏾' => '兔女郎：白皮膚 褐皮膚',
+    '🧑🏻‍🐰‍🧑🏿' => '兔女郎：白皮膚 黑皮膚',
+    '🧑🏼‍🐰‍🧑🏻' => '兔女郎：黃皮膚 白皮膚',
+    '🧑🏼‍🐰‍🧑🏽' => '兔女郎：黃皮膚 淺褐皮膚',
+    '🧑🏼‍🐰‍🧑🏾' => '兔女郎：黃皮膚 褐皮膚',
+    '🧑🏼‍🐰‍🧑🏿' => '兔女郎：黃皮膚 黑皮膚',
+    '🧑🏽‍🐰‍🧑🏻' => '兔女郎：淺褐皮膚 白皮膚',
+    '🧑🏽‍🐰‍🧑🏼' => '兔女郎：淺褐皮膚 黃皮膚',
+    '🧑🏽‍🐰‍🧑🏾' => '兔女郎：淺褐皮膚 褐皮膚',
+    '🧑🏽‍🐰‍🧑🏿' => '兔女郎：淺褐皮膚 黑皮膚',
+    '🧑🏾‍🐰‍🧑🏻' => '兔女郎：褐皮膚 白皮膚',
+    '🧑🏾‍🐰‍🧑🏼' => '兔女郎：褐皮膚 黃皮膚',
+    '🧑🏾‍🐰‍🧑🏽' => '兔女郎：褐皮膚 淺褐皮膚',
+    '🧑🏾‍🐰‍🧑🏿' => '兔女郎：褐皮膚 黑皮膚',
+    '🧑🏿‍🐰‍🧑🏻' => '兔女郎：黑皮膚 白皮膚',
+    '🧑🏿‍🐰‍🧑🏼' => '兔女郎：黑皮膚 黃皮膚',
+    '🧑🏿‍🐰‍🧑🏽' => '兔女郎：黑皮膚 淺褐皮膚',
+    '🧑🏿‍🐰‍🧑🏾' => '兔女郎：黑皮膚 褐皮膚',
+    '👨🏻‍🫯‍👨🏼' => '男子摔角：白皮膚 黃皮膚',
+    '👨🏻‍🫯‍👨🏽' => '男子摔角：白皮膚 淺褐皮膚',
+    '👨🏻‍🫯‍👨🏾' => '男子摔角：白皮膚 褐皮膚',
+    '👨🏻‍🫯‍👨🏿' => '男子摔角：白皮膚 黑皮膚',
+    '👨🏼‍🫯‍👨🏻' => '男子摔角：黃皮膚 白皮膚',
+    '👨🏼‍🫯‍👨🏽' => '男子摔角：黃皮膚 淺褐皮膚',
+    '👨🏼‍🫯‍👨🏾' => '男子摔角：黃皮膚 褐皮膚',
+    '👨🏼‍🫯‍👨🏿' => '男子摔角：黃皮膚 黑皮膚',
+    '👨🏽‍🫯‍👨🏻' => '男子摔角：淺褐皮膚 白皮膚',
+    '👨🏽‍🫯‍👨🏼' => '男子摔角：淺褐皮膚 黃皮膚',
+    '👨🏽‍🫯‍👨🏾' => '男子摔角：淺褐皮膚 褐皮膚',
+    '👨🏽‍🫯‍👨🏿' => '男子摔角：淺褐皮膚 黑皮膚',
+    '👨🏾‍🫯‍👨🏻' => '男子摔角：褐皮膚 白皮膚',
+    '👨🏾‍🫯‍👨🏼' => '男子摔角：褐皮膚 黃皮膚',
+    '👨🏾‍🫯‍👨🏽' => '男子摔角：褐皮膚 淺褐皮膚',
+    '👨🏾‍🫯‍👨🏿' => '男子摔角：褐皮膚 黑皮膚',
+    '👨🏿‍🫯‍👨🏻' => '男子摔角：黑皮膚 白皮膚',
+    '👨🏿‍🫯‍👨🏼' => '男子摔角：黑皮膚 黃皮膚',
+    '👨🏿‍🫯‍👨🏽' => '男子摔角：黑皮膚 淺褐皮膚',
+    '👨🏿‍🫯‍👨🏾' => '男子摔角：黑皮膚 褐皮膚',
     '👨🏻‍❤‍👨🏻' => '相愛：男人 男人 白皮膚',
     '👨🏻‍❤‍👨🏼' => '相愛：男人 男人 白皮膚 黃皮膚',
     '👨🏻‍❤‍👨🏽' => '相愛：男人 男人 白皮膚 淺褐皮膚',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => '相愛：男人 男人 黑皮膚 淺褐皮膚',
     '👨🏿‍❤‍👨🏾' => '相愛：男人 男人 黑皮膚 褐皮膚',
     '👨🏿‍❤‍👨🏿' => '相愛：男人 男人 黑皮膚',
+    '👨🏻‍🐰‍👨🏼' => '雙人兔男郎：白皮膚 黃皮膚',
+    '👨🏻‍🐰‍👨🏽' => '雙人兔男郎：白皮膚 淺褐皮膚',
+    '👨🏻‍🐰‍👨🏾' => '雙人兔男郎：白皮膚 褐皮膚',
+    '👨🏻‍🐰‍👨🏿' => '雙人兔男郎：白皮膚 黑皮膚',
+    '👨🏼‍🐰‍👨🏻' => '雙人兔男郎：黃皮膚 白皮膚',
+    '👨🏼‍🐰‍👨🏽' => '雙人兔男郎：黃皮膚 淺褐皮膚',
+    '👨🏼‍🐰‍👨🏾' => '雙人兔男郎：黃皮膚 褐皮膚',
+    '👨🏼‍🐰‍👨🏿' => '雙人兔男郎：黃皮膚 黑皮膚',
+    '👨🏽‍🐰‍👨🏻' => '雙人兔男郎：淺褐皮膚 白皮膚',
+    '👨🏽‍🐰‍👨🏼' => '雙人兔男郎：淺褐皮膚 黃皮膚',
+    '👨🏽‍🐰‍👨🏾' => '雙人兔男郎：淺褐皮膚 褐皮膚',
+    '👨🏽‍🐰‍👨🏿' => '雙人兔男郎：淺褐皮膚 黑皮膚',
+    '👨🏾‍🐰‍👨🏻' => '雙人兔男郎：褐皮膚 白皮膚',
+    '👨🏾‍🐰‍👨🏼' => '雙人兔男郎：褐皮膚 黃皮膚',
+    '👨🏾‍🐰‍👨🏽' => '雙人兔男郎：褐皮膚 淺褐皮膚',
+    '👨🏾‍🐰‍👨🏿' => '雙人兔男郎：褐皮膚 黑皮膚',
+    '👨🏿‍🐰‍👨🏻' => '雙人兔男郎：黑皮膚 白皮膚',
+    '👨🏿‍🐰‍👨🏼' => '雙人兔男郎：黑皮膚 黃皮膚',
+    '👨🏿‍🐰‍👨🏽' => '雙人兔男郎：黑皮膚 淺褐皮膚',
+    '👨🏿‍🐰‍👨🏾' => '雙人兔男郎：黑皮膚 褐皮膚',
+    '👩🏻‍🫯‍👩🏼' => '女子摔角：白皮膚 黃皮膚',
+    '👩🏻‍🫯‍👩🏽' => '女子摔角：白皮膚 淺褐皮膚',
+    '👩🏻‍🫯‍👩🏾' => '女子摔角：白皮膚 褐皮膚',
+    '👩🏻‍🫯‍👩🏿' => '女子摔角：白皮膚 黑皮膚',
+    '👩🏼‍🫯‍👩🏻' => '女子摔角：黃皮膚 白皮膚',
+    '👩🏼‍🫯‍👩🏽' => '女子摔角：黃皮膚 淺褐皮膚',
+    '👩🏼‍🫯‍👩🏾' => '女子摔角：黃皮膚 褐皮膚',
+    '👩🏼‍🫯‍👩🏿' => '女子摔角：黃皮膚 黑皮膚',
+    '👩🏽‍🫯‍👩🏻' => '女子摔角：淺褐皮膚 白皮膚',
+    '👩🏽‍🫯‍👩🏼' => '女子摔角：淺褐皮膚 黃皮膚',
+    '👩🏽‍🫯‍👩🏾' => '女子摔角：淺褐皮膚 褐皮膚',
+    '👩🏽‍🫯‍👩🏿' => '女子摔角：淺褐皮膚 黑皮膚',
+    '👩🏾‍🫯‍👩🏻' => '女子摔角：褐皮膚 白皮膚',
+    '👩🏾‍🫯‍👩🏼' => '女子摔角：褐皮膚 黃皮膚',
+    '👩🏾‍🫯‍👩🏽' => '女子摔角：褐皮膚 淺褐皮膚',
+    '👩🏾‍🫯‍👩🏿' => '女子摔角：褐皮膚 黑皮膚',
+    '👩🏿‍🫯‍👩🏻' => '女子摔角：黑皮膚 白皮膚',
+    '👩🏿‍🫯‍👩🏼' => '女子摔角：黑皮膚 黃皮膚',
+    '👩🏿‍🫯‍👩🏽' => '女子摔角：黑皮膚 淺褐皮膚',
+    '👩🏿‍🫯‍👩🏾' => '女子摔角：黑皮膚 褐皮膚',
     '👩🏻‍❤‍👨🏻' => '相愛：女人 男人 白皮膚',
     '👩🏻‍❤‍👨🏼' => '相愛：女人 男人 白皮膚 黃皮膚',
     '👩🏻‍❤‍👨🏽' => '相愛：女人 男人 白皮膚 淺褐皮膚',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => '相愛：女人 女人 黑皮膚 淺褐皮膚',
     '👩🏿‍❤‍👩🏾' => '相愛：女人 女人 黑皮膚 褐皮膚',
     '👩🏿‍❤‍👩🏿' => '相愛：女人 女人 黑皮膚',
+    '👩🏻‍🐰‍👩🏼' => '雙人兔女郎：白皮膚 黃皮膚',
+    '👩🏻‍🐰‍👩🏽' => '雙人兔女郎：白皮膚 淺褐皮膚',
+    '👩🏻‍🐰‍👩🏾' => '雙人兔女郎：白皮膚 褐皮膚',
+    '👩🏻‍🐰‍👩🏿' => '雙人兔女郎：白皮膚 黑皮膚',
+    '👩🏼‍🐰‍👩🏻' => '雙人兔女郎：黃皮膚 白皮膚',
+    '👩🏼‍🐰‍👩🏽' => '雙人兔女郎：黃皮膚 淺褐皮膚',
+    '👩🏼‍🐰‍👩🏾' => '雙人兔女郎：黃皮膚 褐皮膚',
+    '👩🏼‍🐰‍👩🏿' => '雙人兔女郎：黃皮膚 黑皮膚',
+    '👩🏽‍🐰‍👩🏻' => '雙人兔女郎：淺褐皮膚 白皮膚',
+    '👩🏽‍🐰‍👩🏼' => '雙人兔女郎：淺褐皮膚 黃皮膚',
+    '👩🏽‍🐰‍👩🏾' => '雙人兔女郎：淺褐皮膚 褐皮膚',
+    '👩🏽‍🐰‍👩🏿' => '雙人兔女郎：淺褐皮膚 黑皮膚',
+    '👩🏾‍🐰‍👩🏻' => '雙人兔女郎：褐皮膚 白皮膚',
+    '👩🏾‍🐰‍👩🏼' => '雙人兔女郎：褐皮膚 黃皮膚',
+    '👩🏾‍🐰‍👩🏽' => '雙人兔女郎：褐皮膚 淺褐皮膚',
+    '👩🏾‍🐰‍👩🏿' => '雙人兔女郎：褐皮膚 黑皮膚',
+    '👩🏿‍🐰‍👩🏻' => '雙人兔女郎：黑皮膚 白皮膚',
+    '👩🏿‍🐰‍👩🏼' => '雙人兔女郎：黑皮膚 黃皮膚',
+    '👩🏿‍🐰‍👩🏽' => '雙人兔女郎：黑皮膚 淺褐皮膚',
+    '👩🏿‍🐰‍👩🏾' => '雙人兔女郎：黑皮膚 褐皮膚',
     '🧑🏻‍🤝‍🧑🏻' => '握手的人：白皮膚',
     '🧑🏻‍🤝‍🧑🏼' => '握手的人：白皮膚 黃皮膚',
     '🧑🏻‍🤝‍🧑🏽' => '握手的人：白皮膚 淺褐皮膚',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => '旗子：蘇格蘭',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => '旗子：威爾斯',
     '🧑‍🧑‍🧒‍🧒' => '家庭：兩大兩小',
-    '🚶🏻‍♀‍➡' => '女行人 面右',
-    '🚶🏼‍♀‍➡' => '女行人 面右',
-    '🚶🏽‍♀‍➡' => '女行人 面右',
-    '🚶🏾‍♀‍➡' => '女行人 面右',
-    '🚶🏿‍♀‍➡' => '女行人 面右',
-    '🚶🏻‍♂‍➡' => '男行人 面右',
-    '🚶🏼‍♂‍➡' => '男行人 面右',
-    '🚶🏽‍♂‍➡' => '男行人 面右',
-    '🚶🏾‍♂‍➡' => '男行人 面右',
-    '🚶🏿‍♂‍➡' => '男行人 面右',
-    '🧎🏻‍♀‍➡' => '跪著的女子 面右',
-    '🧎🏼‍♀‍➡' => '跪著的女子 面右',
-    '🧎🏽‍♀‍➡' => '跪著的女子 面右',
-    '🧎🏾‍♀‍➡' => '跪著的女子 面右',
-    '🧎🏿‍♀‍➡' => '跪著的女子 面右',
-    '🧎🏻‍♂‍➡' => '跪著的男子 面右',
-    '🧎🏼‍♂‍➡' => '跪著的男子 面右',
-    '🧎🏽‍♂‍➡' => '跪著的男子 面右',
-    '🧎🏾‍♂‍➡' => '跪著的男子 面右',
-    '🧎🏿‍♂‍➡' => '跪著的男子 面右',
-    '🧑🏻‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '🧑🏼‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '🧑🏽‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '🧑🏾‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '🧑🏿‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '👨🏻‍🦯‍➡' => '拿導盲手杖的男子 面右',
-    '👨🏼‍🦯‍➡' => '拿導盲手杖的男子 面右',
-    '👨🏽‍🦯‍➡' => '拿導盲手杖的男子 面右',
-    '👨🏾‍🦯‍➡' => '拿導盲手杖的男子 面右',
-    '👨🏿‍🦯‍➡' => '拿導盲手杖的男子 面右',
-    '👩🏻‍🦯‍➡' => '拿導盲手杖的女子 面右',
-    '👩🏼‍🦯‍➡' => '拿導盲手杖的女子 面右',
-    '👩🏽‍🦯‍➡' => '拿導盲手杖的女子 面右',
-    '👩🏾‍🦯‍➡' => '拿導盲手杖的女子 面右',
-    '👩🏿‍🦯‍➡' => '拿導盲手杖的女子 面右',
-    '🧑🏻‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '🧑🏼‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '🧑🏽‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '🧑🏾‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '🧑🏿‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '👨🏻‍🦼‍➡' => '坐電動輪椅的男子 面右',
-    '👨🏼‍🦼‍➡' => '坐電動輪椅的男子 面右',
-    '👨🏽‍🦼‍➡' => '坐電動輪椅的男子 面右',
-    '👨🏾‍🦼‍➡' => '坐電動輪椅的男子 面右',
-    '👨🏿‍🦼‍➡' => '坐電動輪椅的男子 面右',
-    '👩🏻‍🦼‍➡' => '坐電動輪椅的女子 面右',
-    '👩🏼‍🦼‍➡' => '坐電動輪椅的女子 面右',
-    '👩🏽‍🦼‍➡' => '坐電動輪椅的女子 面右',
-    '👩🏾‍🦼‍➡' => '坐電動輪椅的女子 面右',
-    '👩🏿‍🦼‍➡' => '坐電動輪椅的女子 面右',
-    '🧑🏻‍🦽‍➡' => '坐輪椅的人 面右',
-    '🧑🏼‍🦽‍➡' => '坐輪椅的人 面右',
-    '🧑🏽‍🦽‍➡' => '坐輪椅的人 面右',
-    '🧑🏾‍🦽‍➡' => '坐輪椅的人 面右',
-    '🧑🏿‍🦽‍➡' => '坐輪椅的人 面右',
-    '👨🏻‍🦽‍➡' => '坐輪椅的男子 面右',
-    '👨🏼‍🦽‍➡' => '坐輪椅的男子 面右',
-    '👨🏽‍🦽‍➡' => '坐輪椅的男子 面右',
-    '👨🏾‍🦽‍➡' => '坐輪椅的男子 面右',
-    '👨🏿‍🦽‍➡' => '坐輪椅的男子 面右',
-    '👩🏻‍🦽‍➡' => '坐輪椅的女子 面右',
-    '👩🏼‍🦽‍➡' => '坐輪椅的女子 面右',
-    '👩🏽‍🦽‍➡' => '坐輪椅的女子 面右',
-    '👩🏾‍🦽‍➡' => '坐輪椅的女子 面右',
-    '👩🏿‍🦽‍➡' => '坐輪椅的女子 面右',
-    '🏃🏻‍♀‍➡' => '女跑者 面右',
-    '🏃🏼‍♀‍➡' => '女跑者 面右',
-    '🏃🏽‍♀‍➡' => '女跑者 面右',
-    '🏃🏾‍♀‍➡' => '女跑者 面右',
-    '🏃🏿‍♀‍➡' => '女跑者 面右',
-    '🏃🏻‍♂‍➡' => '男跑者 面右',
-    '🏃🏼‍♂‍➡' => '男跑者 面右',
-    '🏃🏽‍♂‍➡' => '男跑者 面右',
-    '🏃🏾‍♂‍➡' => '男跑者 面右',
-    '🏃🏿‍♂‍➡' => '男跑者 面右',
+    '🚶🏻‍♀‍➡' => '女行人：白皮膚 面右',
+    '🚶🏼‍♀‍➡' => '女行人：黃皮膚 面右',
+    '🚶🏽‍♀‍➡' => '女行人：淺褐皮膚 面右',
+    '🚶🏾‍♀‍➡' => '女行人：褐皮膚 面右',
+    '🚶🏿‍♀‍➡' => '女行人：黑皮膚 面右',
+    '🚶🏻‍♂‍➡' => '男行人：白皮膚 面右',
+    '🚶🏼‍♂‍➡' => '男行人：黃皮膚 面右',
+    '🚶🏽‍♂‍➡' => '男行人：淺褐皮膚 面右',
+    '🚶🏾‍♂‍➡' => '男行人：褐皮膚 面右',
+    '🚶🏿‍♂‍➡' => '男行人：黑皮膚 面右',
+    '🧎🏻‍♀‍➡' => '跪著的女子：白皮膚 面右',
+    '🧎🏼‍♀‍➡' => '跪著的女子：黃皮膚 面右',
+    '🧎🏽‍♀‍➡' => '跪著的女子：淺褐皮膚 面右',
+    '🧎🏾‍♀‍➡' => '跪著的女子：褐皮膚 面右',
+    '🧎🏿‍♀‍➡' => '跪著的女子：黑皮膚 面右',
+    '🧎🏻‍♂‍➡' => '跪著的男子：白皮膚 面右',
+    '🧎🏼‍♂‍➡' => '跪著的男子：黃皮膚 面右',
+    '🧎🏽‍♂‍➡' => '跪著的男子：淺褐皮膚 面右',
+    '🧎🏾‍♂‍➡' => '跪著的男子：褐皮膚 面右',
+    '🧎🏿‍♂‍➡' => '跪著的男子：黑皮膚 面右',
+    '🧑🏻‍🦯‍➡' => '拿導盲手杖的人：白皮膚 面右',
+    '🧑🏼‍🦯‍➡' => '拿導盲手杖的人：黃皮膚 面右',
+    '🧑🏽‍🦯‍➡' => '拿導盲手杖的人：淺褐皮膚 面右',
+    '🧑🏾‍🦯‍➡' => '拿導盲手杖的人：褐皮膚 面右',
+    '🧑🏿‍🦯‍➡' => '拿導盲手杖的人：黑皮膚 面右',
+    '👨🏻‍🦯‍➡' => '拿導盲手杖的男子：白皮膚 面右',
+    '👨🏼‍🦯‍➡' => '拿導盲手杖的男子：黃皮膚 面右',
+    '👨🏽‍🦯‍➡' => '拿導盲手杖的男子：淺褐皮膚 面右',
+    '👨🏾‍🦯‍➡' => '拿導盲手杖的男子：褐皮膚 面右',
+    '👨🏿‍🦯‍➡' => '拿導盲手杖的男子：黑皮膚 面右',
+    '👩🏻‍🦯‍➡' => '拿導盲手杖的女子：白皮膚 面右',
+    '👩🏼‍🦯‍➡' => '拿導盲手杖的女子：黃皮膚 面右',
+    '👩🏽‍🦯‍➡' => '拿導盲手杖的女子：淺褐皮膚 面右',
+    '👩🏾‍🦯‍➡' => '拿導盲手杖的女子：褐皮膚 面右',
+    '👩🏿‍🦯‍➡' => '拿導盲手杖的女子：黑皮膚 面右',
+    '🧑🏻‍🦼‍➡' => '坐電動輪椅的人：白皮膚 面右',
+    '🧑🏼‍🦼‍➡' => '坐電動輪椅的人：黃皮膚 面右',
+    '🧑🏽‍🦼‍➡' => '坐電動輪椅的人：淺褐皮膚 面右',
+    '🧑🏾‍🦼‍➡' => '坐電動輪椅的人：褐皮膚 面右',
+    '🧑🏿‍🦼‍➡' => '坐電動輪椅的人：黑皮膚 面右',
+    '👨🏻‍🦼‍➡' => '坐電動輪椅的男子：白皮膚 面右',
+    '👨🏼‍🦼‍➡' => '坐電動輪椅的男子：黃皮膚 面右',
+    '👨🏽‍🦼‍➡' => '坐電動輪椅的男子：淺褐皮膚 面右',
+    '👨🏾‍🦼‍➡' => '坐電動輪椅的男子：褐皮膚 面右',
+    '👨🏿‍🦼‍➡' => '坐電動輪椅的男子：黑皮膚 面右',
+    '👩🏻‍🦼‍➡' => '坐電動輪椅的女子：白皮膚 面右',
+    '👩🏼‍🦼‍➡' => '坐電動輪椅的女子：黃皮膚 面右',
+    '👩🏽‍🦼‍➡' => '坐電動輪椅的女子：淺褐皮膚 面右',
+    '👩🏾‍🦼‍➡' => '坐電動輪椅的女子：褐皮膚 面右',
+    '👩🏿‍🦼‍➡' => '坐電動輪椅的女子：黑皮膚 面右',
+    '🧑🏻‍🦽‍➡' => '坐輪椅的人：白皮膚 面右',
+    '🧑🏼‍🦽‍➡' => '坐輪椅的人：黃皮膚 面右',
+    '🧑🏽‍🦽‍➡' => '坐輪椅的人：淺褐皮膚 面右',
+    '🧑🏾‍🦽‍➡' => '坐輪椅的人：褐皮膚 面右',
+    '🧑🏿‍🦽‍➡' => '坐輪椅的人：黑皮膚 面右',
+    '👨🏻‍🦽‍➡' => '坐輪椅的男子：白皮膚 面右',
+    '👨🏼‍🦽‍➡' => '坐輪椅的男子：黃皮膚 面右',
+    '👨🏽‍🦽‍➡' => '坐輪椅的男子：淺褐皮膚 面右',
+    '👨🏾‍🦽‍➡' => '坐輪椅的男子：褐皮膚 面右',
+    '👨🏿‍🦽‍➡' => '坐輪椅的男子：黑皮膚 面右',
+    '👩🏻‍🦽‍➡' => '坐輪椅的女子：白皮膚 面右',
+    '👩🏼‍🦽‍➡' => '坐輪椅的女子：黃皮膚 面右',
+    '👩🏽‍🦽‍➡' => '坐輪椅的女子：淺褐皮膚 面右',
+    '👩🏾‍🦽‍➡' => '坐輪椅的女子：褐皮膚 面右',
+    '👩🏿‍🦽‍➡' => '坐輪椅的女子：黑皮膚 面右',
+    '🏃🏻‍♀‍➡' => '女跑者：白皮膚 面右',
+    '🏃🏼‍♀‍➡' => '女跑者：黃皮膚 面右',
+    '🏃🏽‍♀‍➡' => '女跑者：淺褐皮膚 面右',
+    '🏃🏾‍♀‍➡' => '女跑者：褐皮膚 面右',
+    '🏃🏿‍♀‍➡' => '女跑者：黑皮膚 面右',
+    '🏃🏻‍♂‍➡' => '男跑者：白皮膚 面右',
+    '🏃🏼‍♂‍➡' => '男跑者：黃皮膚 面右',
+    '🏃🏽‍♂‍➡' => '男跑者：淺褐皮膚 面右',
+    '🏃🏾‍♂‍➡' => '男跑者：褐皮膚 面右',
+    '🏃🏿‍♂‍➡' => '男跑者：黑皮膚 面右',
     '🫱🏻‍🫲🏼' => '握手：白皮膚 黃皮膚',
     '🫱🏻‍🫲🏽' => '握手：白皮膚 淺褐皮膚',
     '🫱🏻‍🫲🏾' => '握手：白皮膚 褐皮膚',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => '握手：黑皮膚 黃皮膚',
     '🫱🏿‍🫲🏽' => '握手：黑皮膚 淺褐皮膚',
     '🫱🏿‍🫲🏾' => '握手：黑皮膚 褐皮膚',
-    '🚶‍♀‍➡' => '女行人 面右',
-    '🚶‍♂‍➡' => '男行人 面右',
-    '🧎‍♀‍➡' => '跪著的女子 面右',
-    '🧎‍♂‍➡' => '跪著的男子 面右',
-    '🧑‍🦯‍➡' => '拿導盲手杖的人 面右',
-    '👨‍🦯‍➡' => '拿導盲手杖的男子 面右',
-    '👩‍🦯‍➡' => '拿導盲手杖的女子 面右',
-    '🧑‍🦼‍➡' => '坐電動輪椅的人 面右',
-    '👨‍🦼‍➡' => '坐電動輪椅的男子 面右',
-    '👩‍🦼‍➡' => '坐電動輪椅的女子 面右',
-    '🧑‍🦽‍➡' => '坐輪椅的人 面右',
-    '👨‍🦽‍➡' => '坐輪椅的男子 面右',
-    '👩‍🦽‍➡' => '坐輪椅的女子 面右',
-    '🏃‍♀‍➡' => '女跑者 面右',
-    '🏃‍♂‍➡' => '男跑者 面右',
+    '🚶‍♀‍➡' => '女行人：面右',
+    '🚶‍♂‍➡' => '男行人：面右',
+    '🧎‍♀‍➡' => '跪著的女子：面右',
+    '🧎‍♂‍➡' => '跪著的男子：面右',
+    '🧑‍🦯‍➡' => '拿導盲手杖的人：面右',
+    '👨‍🦯‍➡' => '拿導盲手杖的男子：面右',
+    '👩‍🦯‍➡' => '拿導盲手杖的女子：面右',
+    '🧑‍🦼‍➡' => '坐電動輪椅的人：面右',
+    '👨‍🦼‍➡' => '坐電動輪椅的男子：面右',
+    '👩‍🦼‍➡' => '坐電動輪椅的女子：面右',
+    '🧑‍🦽‍➡' => '坐輪椅的人：面右',
+    '👨‍🦽‍➡' => '坐輪椅的男子：面右',
+    '👩‍🦽‍➡' => '坐輪椅的女子：面右',
+    '🏃‍♀‍➡' => '女跑者：面右',
+    '🏃‍♂‍➡' => '男跑者：面右',
     '👩‍❤‍👨' => '相愛：女人 男人',
     '👨‍❤‍👨' => '相愛：男人 男人',
     '👩‍❤‍👩' => '相愛：女人 女人',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => '大人：淺褐皮膚 禿頭',
     '🧑🏾‍🦲' => '大人：褐皮膚 禿頭',
     '🧑🏿‍🦲' => '大人：黑皮膚 禿頭',
+    '🧑🏻‍🩰' => '芭蕾舞者：白皮膚',
+    '🧑🏼‍🩰' => '芭蕾舞者：黃皮膚',
+    '🧑🏽‍🩰' => '芭蕾舞者：淺褐皮膚',
+    '🧑🏾‍🩰' => '芭蕾舞者：褐皮膚',
+    '🧑🏿‍🩰' => '芭蕾舞者：黑皮膚',
     '🧔🏻‍♂' => '男人: 蓄鬍的人：白皮膚',
     '🧔🏼‍♂' => '男人: 蓄鬍的人：黃皮膚',
     '🧔🏽‍♂' => '男人: 蓄鬍的人：淺褐皮膚',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => '女行人：淺褐皮膚',
     '🚶🏾‍♀' => '女行人：褐皮膚',
     '🚶🏿‍♀' => '女行人：黑皮膚',
-    '🚶🏻‍➡' => '行人 面右',
-    '🚶🏼‍➡' => '行人 面右',
-    '🚶🏽‍➡' => '行人 面右',
-    '🚶🏾‍➡' => '行人 面右',
-    '🚶🏿‍➡' => '行人 面右',
+    '🚶🏻‍➡' => '行人：白皮膚 面右',
+    '🚶🏼‍➡' => '行人：黃皮膚 面右',
+    '🚶🏽‍➡' => '行人：淺褐皮膚 面右',
+    '🚶🏾‍➡' => '行人：褐皮膚 面右',
+    '🚶🏿‍➡' => '行人：黑皮膚 面右',
     '🧍🏻‍♂' => '站著的男子：白皮膚',
     '🧍🏼‍♂' => '站著的男子：黃皮膚',
     '🧍🏽‍♂' => '站著的男子：淺褐皮膚',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => '跪著的女子：淺褐皮膚',
     '🧎🏾‍♀' => '跪著的女子：褐皮膚',
     '🧎🏿‍♀' => '跪著的女子：黑皮膚',
-    '🧎🏻‍➡' => '跪著的人 面右',
-    '🧎🏼‍➡' => '跪著的人 面右',
-    '🧎🏽‍➡' => '跪著的人 面右',
-    '🧎🏾‍➡' => '跪著的人 面右',
-    '🧎🏿‍➡' => '跪著的人 面右',
+    '🧎🏻‍➡' => '跪著的人：白皮膚 面右',
+    '🧎🏼‍➡' => '跪著的人：黃皮膚 面右',
+    '🧎🏽‍➡' => '跪著的人：淺褐皮膚 面右',
+    '🧎🏾‍➡' => '跪著的人：褐皮膚 面右',
+    '🧎🏿‍➡' => '跪著的人：黑皮膚 面右',
     '🧑🏻‍🦯' => '拿導盲手杖的人：白皮膚',
     '🧑🏼‍🦯' => '拿導盲手杖的人：黃皮膚',
     '🧑🏽‍🦯' => '拿導盲手杖的人：淺褐皮膚',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => '女跑者：淺褐皮膚',
     '🏃🏾‍♀' => '女跑者：褐皮膚',
     '🏃🏿‍♀' => '女跑者：黑皮膚',
-    '🏃🏻‍➡' => '跑者 面右',
-    '🏃🏼‍➡' => '跑者 面右',
-    '🏃🏽‍➡' => '跑者 面右',
-    '🏃🏾‍➡' => '跑者 面右',
-    '🏃🏿‍➡' => '跑者 面右',
+    '🏃🏻‍➡' => '跑者：白皮膚 面右',
+    '🏃🏼‍➡' => '跑者：黃皮膚 面右',
+    '🏃🏽‍➡' => '跑者：淺褐皮膚 面右',
+    '🏃🏾‍➡' => '跑者：褐皮膚 面右',
+    '🏃🏿‍➡' => '跑者：黑皮膚 面右',
+    '👯🏻‍♀' => '雙人兔女郎：白皮膚',
+    '👯🏼‍♀' => '雙人兔女郎：黃皮膚',
+    '👯🏽‍♀' => '雙人兔女郎：淺褐皮膚',
+    '👯🏾‍♀' => '雙人兔女郎：褐皮膚',
+    '👯🏿‍♀' => '雙人兔女郎：黑皮膚',
+    '👯🏻‍♂' => '雙人兔男郎：白皮膚',
+    '👯🏼‍♂' => '雙人兔男郎：黃皮膚',
+    '👯🏽‍♂' => '雙人兔男郎：淺褐皮膚',
+    '👯🏾‍♂' => '雙人兔男郎：褐皮膚',
+    '👯🏿‍♂' => '雙人兔男郎：黑皮膚',
     '🧖🏻‍♂' => '做蒸氣浴的男子：白皮膚',
     '🧖🏼‍♂' => '做蒸氣浴的男子：黃皮膚',
     '🧖🏽‍♂' => '做蒸氣浴的男子：淺褐皮膚',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => '女生側翻：淺褐皮膚',
     '🤸🏾‍♀' => '女生側翻：褐皮膚',
     '🤸🏿‍♀' => '女生側翻：黑皮膚',
+    '🤼🏻‍♀' => '女子摔角：白皮膚',
+    '🤼🏼‍♀' => '女子摔角：黃皮膚',
+    '🤼🏽‍♀' => '女子摔角：淺褐皮膚',
+    '🤼🏾‍♀' => '女子摔角：褐皮膚',
+    '🤼🏿‍♀' => '女子摔角：黑皮膚',
+    '🤼🏻‍♂' => '男子摔角：白皮膚',
+    '🤼🏼‍♂' => '男子摔角：黃皮膚',
+    '🤼🏽‍♂' => '男子摔角：淺褐皮膚',
+    '🤼🏾‍♂' => '男子摔角：褐皮膚',
+    '🤼🏿‍♂' => '男子摔角：黑皮膚',
     '🤽🏻‍♂' => '男生打水球：白皮膚',
     '🤽🏼‍♂' => '男生打水球：黃皮膚',
     '🤽🏽‍♂' => '男生打水球：淺褐皮膚',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => '女人：卷髮',
     '👩‍🦳' => '女人：白髮',
     '👩‍🦲' => '女人：禿頭',
-    '🚶‍➡' => '行人 面右',
-    '🧎‍➡' => '跪著的人 面右',
-    '🏃‍➡' => '跑者 面右',
+    '🚶‍➡' => '行人：面右',
+    '🧎‍➡' => '跪著的人：面右',
+    '🏃‍➡' => '跑者：面右',
     '👨‍👦' => '家庭：男人 男孩',
     '👨‍👧' => '家庭：男人 女孩',
     '👩‍👦' => '家庭：女人 男孩',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => '坐輪椅的女子',
     '🏃‍♂' => '男跑者',
     '🏃‍♀' => '女跑者',
+    '🧑‍🩰' => '芭蕾舞者',
     '👯‍♂' => '雙人兔男郎',
     '👯‍♀' => '雙人兔女郎',
     '🧖‍♂' => '做蒸氣浴的男子',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => '穿西裝的人：淺褐皮膚',
     '🕴🏾' => '穿西裝的人：褐皮膚',
     '🕴🏿' => '穿西裝的人：黑皮膚',
+    '👯🏻' => '兔女郎：白皮膚',
+    '👯🏼' => '兔女郎：黃皮膚',
+    '👯🏽' => '兔女郎：淺褐皮膚',
+    '👯🏾' => '兔女郎：褐皮膚',
+    '👯🏿' => '兔女郎：黑皮膚',
     '🧖🏻' => '做蒸氣浴的人：白皮膚',
     '🧖🏼' => '做蒸氣浴的人：黃皮膚',
     '🧖🏽' => '做蒸氣浴的人：淺褐皮膚',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => '側翻：淺褐皮膚',
     '🤸🏾' => '側翻：褐皮膚',
     '🤸🏿' => '側翻：黑皮膚',
+    '🤼🏻' => '摔角手：白皮膚',
+    '🤼🏼' => '摔角手：黃皮膚',
+    '🤼🏽' => '摔角手：淺褐皮膚',
+    '🤼🏾' => '摔角手：褐皮膚',
+    '🤼🏿' => '摔角手：黑皮膚',
     '🤽🏻' => '水球運動：白皮膚',
     '🤽🏼' => '水球運動：黃皮膚',
     '🤽🏽' => '水球運動：淺褐皮膚',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => '旗子：中國',
     '🇨🇴' => '旗子：哥倫比亞',
     '🇨🇵' => '旗子：克里派頓島',
+    '🇨🇶' => '旗子：薩克島',
     '🇨🇷' => '旗子：哥斯大黎加',
     '🇨🇺' => '旗子：古巴',
     '🇨🇻' => '旗子：維德角',
@@ -2390,13 +2547,6 @@
     '🏽' => '淺褐皮膚',
     '🏾' => '褐皮膚',
     '🏿' => '黑皮膚',
-    '🪉' => '豎琴',
-    '🪏' => '鏟子',
-    '🪾' => '沒有葉子的樹',
-    '🫆' => '指紋',
-    '🫜' => '根莖類蔬菜',
-    '🫟' => '潑濺',
-    '🫩' => '臉上有眼袋',
     '😀' => '笑臉',
     '😃' => '大笑',
     '😄' => '呵呵',
@@ -2450,6 +2600,7 @@
     '😪' => '睏',
     '🤤' => '流口水',
     '😴' => '睡著了',
+    '🫩' => '臉上有眼袋',
     '😷' => '口罩',
     '🤒' => '含溫度計',
     '🤕' => '包繃帶',
@@ -2476,6 +2627,7 @@
     '😯' => '哦',
     '😲' => '震驚',
     '😳' => '愛慕',
+    '🫪' => '變形的臉',
     '🥺' => '請求的臉',
     '🥹' => '強忍淚水的臉',
     '😦' => '啊',
@@ -2547,6 +2699,7 @@
     '💋' => '唇印',
     '💯' => '滿分',
     '💢' => '怒',
+    '🫯' => '打鬥的雲',
     '💥' => '碰撞',
     '💫' => '暈頭轉向',
     '💦' => '出汗',
@@ -2670,6 +2823,7 @@
     '🧞' => '精靈',
     '🧟' => '殭屍',
     '🧌' => '巨人',
+    '🫈' => '毛怪',
     '💆' => '按摩',
     '💇' => '理髮',
     '🚶' => '行人',
@@ -2713,6 +2867,7 @@
     '🫂' => '擁抱的人',
     '👪' => '家庭',
     '👣' => '腳印',
+    '🫆' => '指紋',
     '🦰' => '紅髮',
     '🦱' => '卷髮',
     '🦳' => '白髮',
@@ -2812,6 +2967,7 @@
     '🐳' => '鯨魚',
     '🐋' => '藍鯨',
     '🐬' => '海豚',
+    '🫍' => '虎鯨',
     '🦭' => '海豹',
     '🐟' => '魚',
     '🐠' => '熱帶魚',
@@ -2821,6 +2977,11 @@
     '🐚' => '海螺',
     '🪸' => '珊瑚',
     '🪼' => '水母',
+    '🦀' => '螃蟹',
+    '🦞' => '龍蝦',
+    '🦐' => '蝦子',
+    '🦑' => '魷魚',
+    '🦪' => '牡蠣',
     '🐌' => '蝸牛',
     '🦋' => '蝴蝶',
     '🐛' => '毛毛蟲',
@@ -2865,6 +3026,7 @@
     '🪹' => '空巢',
     '🪺' => '有蛋的巢',
     '🍄' => '蘑菇',
+    '🪾' => '沒有葉子的樹',
     '🍇' => '葡萄',
     '🍈' => '瓜',
     '🍉' => '西瓜',
@@ -2901,6 +3063,7 @@
     '🌰' => '栗子',
     '🫚' => '薑',
     '🫛' => '豌豆莢',
+    '🫜' => '根莖類蔬菜',
     '🍞' => '吐司',
     '🥐' => '可頌',
     '🥖' => '法國麵包',
@@ -2952,11 +3115,6 @@
     '🥟' => '水餃',
     '🥠' => '幸運餅乾',
     '🥡' => '外帶餐盒',
-    '🦀' => '螃蟹',
-    '🦞' => '龍蝦',
-    '🦐' => '蝦子',
-    '🦑' => '魷魚',
-    '🦪' => '牡蠣',
     '🍦' => '霜淇淋',
     '🍧' => '刨冰',
     '🍨' => '冰淇淋',
@@ -3007,6 +3165,7 @@
     '🧭' => '指南針',
     '🏔' => '雪山',
     '⛰' => '山',
+    '🛘' => '山崩',
     '🌋' => '火山',
     '🗻' => '富士山',
     '🏕' => '露營',
@@ -3367,16 +3526,18 @@
     '🎧' => '耳機',
     '📻' => '收音機',
     '🎷' => '薩克斯風',
+    '🎺' => '小號',
+    '🪊' => '長號',
     '🪗' => '手風琴',
     '🎸' => '吉他',
     '🎹' => '鋼琴',
-    '🎺' => '小號',
     '🎻' => '小提琴',
     '🪕' => '斑鳩琴',
     '🥁' => '鼓',
     '🪘' => '長鼓',
     '🪇' => '沙鈴',
     '🪈' => '長笛',
+    '🪉' => '豎琴',
     '📱' => '手機',
     '📲' => '接電話',
     '☎' => '電話',
@@ -3430,8 +3591,9 @@
     '📑' => '頁籤',
     '🔖' => '書籤',
     '🏷' => '吊牌',
-    '💰' => '錢袋',
     '🪙' => '硬幣',
+    '💰' => '錢袋',
+    '🪎' => '藏寶箱',
     '💴' => '日幣',
     '💵' => '美金',
     '💶' => '歐元',
@@ -3514,6 +3676,7 @@
     '🧰' => '工具箱',
     '🧲' => '磁鐵',
     '🪜' => '梯子',
+    '🪏' => '鏟子',
     '⚗' => '蒸餾器',
     '🧪' => '試管',
     '🧫' => '培養皿',
@@ -3697,6 +3860,7 @@
     '✴' => '八角星',
     '❇' => '火花',
     '™' => '商標',
+    '🫟' => '潑濺',
     '🔠' => '大寫字母鍵',
     '🔡' => '小寫字母鍵',
     '🔢' => '數字鍵',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zh.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => '亲吻: 女人女人较深肤色中等肤色',
     '👩🏿‍❤‍💋‍👩🏾' => '亲吻: 女人女人较深肤色中等-深肤色',
     '👩🏿‍❤‍💋‍👩🏿' => '亲吻: 女人女人较深肤色',
+    '🧑🏻‍🫯‍🧑🏼' => '摔跤选手: 较浅肤色中等-浅肤色',
+    '🧑🏻‍🫯‍🧑🏽' => '摔跤选手: 较浅肤色中等肤色',
+    '🧑🏻‍🫯‍🧑🏾' => '摔跤选手: 较浅肤色中等-深肤色',
+    '🧑🏻‍🫯‍🧑🏿' => '摔跤选手: 较浅肤色较深肤色',
+    '🧑🏼‍🫯‍🧑🏻' => '摔跤选手: 中等-浅肤色较浅肤色',
+    '🧑🏼‍🫯‍🧑🏽' => '摔跤选手: 中等-浅肤色中等肤色',
+    '🧑🏼‍🫯‍🧑🏾' => '摔跤选手: 中等-浅肤色中等-深肤色',
+    '🧑🏼‍🫯‍🧑🏿' => '摔跤选手: 中等-浅肤色较深肤色',
+    '🧑🏽‍🫯‍🧑🏻' => '摔跤选手: 中等肤色较浅肤色',
+    '🧑🏽‍🫯‍🧑🏼' => '摔跤选手: 中等肤色中等-浅肤色',
+    '🧑🏽‍🫯‍🧑🏾' => '摔跤选手: 中等肤色中等-深肤色',
+    '🧑🏽‍🫯‍🧑🏿' => '摔跤选手: 中等肤色较深肤色',
+    '🧑🏾‍🫯‍🧑🏻' => '摔跤选手: 中等-深肤色较浅肤色',
+    '🧑🏾‍🫯‍🧑🏼' => '摔跤选手: 中等-深肤色中等-浅肤色',
+    '🧑🏾‍🫯‍🧑🏽' => '摔跤选手: 中等-深肤色中等肤色',
+    '🧑🏾‍🫯‍🧑🏿' => '摔跤选手: 中等-深肤色较深肤色',
+    '🧑🏿‍🫯‍🧑🏻' => '摔跤选手: 较深肤色较浅肤色',
+    '🧑🏿‍🫯‍🧑🏼' => '摔跤选手: 较深肤色中等-浅肤色',
+    '🧑🏿‍🫯‍🧑🏽' => '摔跤选手: 较深肤色中等肤色',
+    '🧑🏿‍🫯‍🧑🏾' => '摔跤选手: 较深肤色中等-深肤色',
     '🧑🏻‍❤‍🧑🏼' => '情侣: 成人成人较浅肤色中等-浅肤色',
     '🧑🏻‍❤‍🧑🏽' => '情侣: 成人成人较浅肤色中等肤色',
     '🧑🏻‍❤‍🧑🏾' => '情侣: 成人成人较浅肤色中等-深肤色',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => '情侣: 成人成人较深肤色中等-浅肤色',
     '🧑🏿‍❤‍🧑🏽' => '情侣: 成人成人较深肤色中等肤色',
     '🧑🏿‍❤‍🧑🏾' => '情侣: 成人成人较深肤色中等-深肤色',
+    '🧑🏻‍🐰‍🧑🏼' => '戴兔耳朵的人: 较浅肤色中等-浅肤色',
+    '🧑🏻‍🐰‍🧑🏽' => '戴兔耳朵的人: 较浅肤色中等肤色',
+    '🧑🏻‍🐰‍🧑🏾' => '戴兔耳朵的人: 较浅肤色中等-深肤色',
+    '🧑🏻‍🐰‍🧑🏿' => '戴兔耳朵的人: 较浅肤色较深肤色',
+    '🧑🏼‍🐰‍🧑🏻' => '戴兔耳朵的人: 中等-浅肤色较浅肤色',
+    '🧑🏼‍🐰‍🧑🏽' => '戴兔耳朵的人: 中等-浅肤色中等肤色',
+    '🧑🏼‍🐰‍🧑🏾' => '戴兔耳朵的人: 中等-浅肤色中等-深肤色',
+    '🧑🏼‍🐰‍🧑🏿' => '戴兔耳朵的人: 中等-浅肤色较深肤色',
+    '🧑🏽‍🐰‍🧑🏻' => '戴兔耳朵的人: 中等肤色较浅肤色',
+    '🧑🏽‍🐰‍🧑🏼' => '戴兔耳朵的人: 中等肤色中等-浅肤色',
+    '🧑🏽‍🐰‍🧑🏾' => '戴兔耳朵的人: 中等肤色中等-深肤色',
+    '🧑🏽‍🐰‍🧑🏿' => '戴兔耳朵的人: 中等肤色较深肤色',
+    '🧑🏾‍🐰‍🧑🏻' => '戴兔耳朵的人: 中等-深肤色较浅肤色',
+    '🧑🏾‍🐰‍🧑🏼' => '戴兔耳朵的人: 中等-深肤色中等-浅肤色',
+    '🧑🏾‍🐰‍🧑🏽' => '戴兔耳朵的人: 中等-深肤色中等肤色',
+    '🧑🏾‍🐰‍🧑🏿' => '戴兔耳朵的人: 中等-深肤色较深肤色',
+    '🧑🏿‍🐰‍🧑🏻' => '戴兔耳朵的人: 较深肤色较浅肤色',
+    '🧑🏿‍🐰‍🧑🏼' => '戴兔耳朵的人: 较深肤色中等-浅肤色',
+    '🧑🏿‍🐰‍🧑🏽' => '戴兔耳朵的人: 较深肤色中等肤色',
+    '🧑🏿‍🐰‍🧑🏾' => '戴兔耳朵的人: 较深肤色中等-深肤色',
+    '👨🏻‍🫯‍👨🏼' => '男生摔跤: 较浅肤色中等-浅肤色',
+    '👨🏻‍🫯‍👨🏽' => '男生摔跤: 较浅肤色中等肤色',
+    '👨🏻‍🫯‍👨🏾' => '男生摔跤: 较浅肤色中等-深肤色',
+    '👨🏻‍🫯‍👨🏿' => '男生摔跤: 较浅肤色较深肤色',
+    '👨🏼‍🫯‍👨🏻' => '男生摔跤: 中等-浅肤色较浅肤色',
+    '👨🏼‍🫯‍👨🏽' => '男生摔跤: 中等-浅肤色中等肤色',
+    '👨🏼‍🫯‍👨🏾' => '男生摔跤: 中等-浅肤色中等-深肤色',
+    '👨🏼‍🫯‍👨🏿' => '男生摔跤: 中等-浅肤色较深肤色',
+    '👨🏽‍🫯‍👨🏻' => '男生摔跤: 中等肤色较浅肤色',
+    '👨🏽‍🫯‍👨🏼' => '男生摔跤: 中等肤色中等-浅肤色',
+    '👨🏽‍🫯‍👨🏾' => '男生摔跤: 中等肤色中等-深肤色',
+    '👨🏽‍🫯‍👨🏿' => '男生摔跤: 中等肤色较深肤色',
+    '👨🏾‍🫯‍👨🏻' => '男生摔跤: 中等-深肤色较浅肤色',
+    '👨🏾‍🫯‍👨🏼' => '男生摔跤: 中等-深肤色中等-浅肤色',
+    '👨🏾‍🫯‍👨🏽' => '男生摔跤: 中等-深肤色中等肤色',
+    '👨🏾‍🫯‍👨🏿' => '男生摔跤: 中等-深肤色较深肤色',
+    '👨🏿‍🫯‍👨🏻' => '男生摔跤: 较深肤色较浅肤色',
+    '👨🏿‍🫯‍👨🏼' => '男生摔跤: 较深肤色中等-浅肤色',
+    '👨🏿‍🫯‍👨🏽' => '男生摔跤: 较深肤色中等肤色',
+    '👨🏿‍🫯‍👨🏾' => '男生摔跤: 较深肤色中等-深肤色',
     '👨🏻‍❤‍👨🏻' => '情侣: 男人男人较浅肤色',
     '👨🏻‍❤‍👨🏼' => '情侣: 男人男人较浅肤色中等-浅肤色',
     '👨🏻‍❤‍👨🏽' => '情侣: 男人男人较浅肤色中等肤色',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => '情侣: 男人男人较深肤色中等肤色',
     '👨🏿‍❤‍👨🏾' => '情侣: 男人男人较深肤色中等-深肤色',
     '👨🏿‍❤‍👨🏿' => '情侣: 男人男人较深肤色',
+    '👨🏻‍🐰‍👨🏼' => '兔先生: 较浅肤色中等-浅肤色',
+    '👨🏻‍🐰‍👨🏽' => '兔先生: 较浅肤色中等肤色',
+    '👨🏻‍🐰‍👨🏾' => '兔先生: 较浅肤色中等-深肤色',
+    '👨🏻‍🐰‍👨🏿' => '兔先生: 较浅肤色较深肤色',
+    '👨🏼‍🐰‍👨🏻' => '兔先生: 中等-浅肤色较浅肤色',
+    '👨🏼‍🐰‍👨🏽' => '兔先生: 中等-浅肤色中等肤色',
+    '👨🏼‍🐰‍👨🏾' => '兔先生: 中等-浅肤色中等-深肤色',
+    '👨🏼‍🐰‍👨🏿' => '兔先生: 中等-浅肤色较深肤色',
+    '👨🏽‍🐰‍👨🏻' => '兔先生: 中等肤色较浅肤色',
+    '👨🏽‍🐰‍👨🏼' => '兔先生: 中等肤色中等-浅肤色',
+    '👨🏽‍🐰‍👨🏾' => '兔先生: 中等肤色中等-深肤色',
+    '👨🏽‍🐰‍👨🏿' => '兔先生: 中等肤色较深肤色',
+    '👨🏾‍🐰‍👨🏻' => '兔先生: 中等-深肤色较浅肤色',
+    '👨🏾‍🐰‍👨🏼' => '兔先生: 中等-深肤色中等-浅肤色',
+    '👨🏾‍🐰‍👨🏽' => '兔先生: 中等-深肤色中等肤色',
+    '👨🏾‍🐰‍👨🏿' => '兔先生: 中等-深肤色较深肤色',
+    '👨🏿‍🐰‍👨🏻' => '兔先生: 较深肤色较浅肤色',
+    '👨🏿‍🐰‍👨🏼' => '兔先生: 较深肤色中等-浅肤色',
+    '👨🏿‍🐰‍👨🏽' => '兔先生: 较深肤色中等肤色',
+    '👨🏿‍🐰‍👨🏾' => '兔先生: 较深肤色中等-深肤色',
+    '👩🏻‍🫯‍👩🏼' => '女生摔跤: 较浅肤色中等-浅肤色',
+    '👩🏻‍🫯‍👩🏽' => '女生摔跤: 较浅肤色中等肤色',
+    '👩🏻‍🫯‍👩🏾' => '女生摔跤: 较浅肤色中等-深肤色',
+    '👩🏻‍🫯‍👩🏿' => '女生摔跤: 较浅肤色较深肤色',
+    '👩🏼‍🫯‍👩🏻' => '女生摔跤: 中等-浅肤色较浅肤色',
+    '👩🏼‍🫯‍👩🏽' => '女生摔跤: 中等-浅肤色中等肤色',
+    '👩🏼‍🫯‍👩🏾' => '女生摔跤: 中等-浅肤色中等-深肤色',
+    '👩🏼‍🫯‍👩🏿' => '女生摔跤: 中等-浅肤色较深肤色',
+    '👩🏽‍🫯‍👩🏻' => '女生摔跤: 中等肤色较浅肤色',
+    '👩🏽‍🫯‍👩🏼' => '女生摔跤: 中等肤色中等-浅肤色',
+    '👩🏽‍🫯‍👩🏾' => '女生摔跤: 中等肤色中等-深肤色',
+    '👩🏽‍🫯‍👩🏿' => '女生摔跤: 中等肤色较深肤色',
+    '👩🏾‍🫯‍👩🏻' => '女生摔跤: 中等-深肤色较浅肤色',
+    '👩🏾‍🫯‍👩🏼' => '女生摔跤: 中等-深肤色中等-浅肤色',
+    '👩🏾‍🫯‍👩🏽' => '女生摔跤: 中等-深肤色中等肤色',
+    '👩🏾‍🫯‍👩🏿' => '女生摔跤: 中等-深肤色较深肤色',
+    '👩🏿‍🫯‍👩🏻' => '女生摔跤: 较深肤色较浅肤色',
+    '👩🏿‍🫯‍👩🏼' => '女生摔跤: 较深肤色中等-浅肤色',
+    '👩🏿‍🫯‍👩🏽' => '女生摔跤: 较深肤色中等肤色',
+    '👩🏿‍🫯‍👩🏾' => '女生摔跤: 较深肤色中等-深肤色',
     '👩🏻‍❤‍👨🏻' => '情侣: 女人男人较浅肤色',
     '👩🏻‍❤‍👨🏼' => '情侣: 女人男人较浅肤色中等-浅肤色',
     '👩🏻‍❤‍👨🏽' => '情侣: 女人男人较浅肤色中等肤色',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => '情侣: 女人女人较深肤色中等肤色',
     '👩🏿‍❤‍👩🏾' => '情侣: 女人女人较深肤色中等-深肤色',
     '👩🏿‍❤‍👩🏿' => '情侣: 女人女人较深肤色',
+    '👩🏻‍🐰‍👩🏼' => '兔女郎: 较浅肤色中等-浅肤色',
+    '👩🏻‍🐰‍👩🏽' => '兔女郎: 较浅肤色中等肤色',
+    '👩🏻‍🐰‍👩🏾' => '兔女郎: 较浅肤色中等-深肤色',
+    '👩🏻‍🐰‍👩🏿' => '兔女郎: 较浅肤色较深肤色',
+    '👩🏼‍🐰‍👩🏻' => '兔女郎: 中等-浅肤色较浅肤色',
+    '👩🏼‍🐰‍👩🏽' => '兔女郎: 中等-浅肤色中等肤色',
+    '👩🏼‍🐰‍👩🏾' => '兔女郎: 中等-浅肤色中等-深肤色',
+    '👩🏼‍🐰‍👩🏿' => '兔女郎: 中等-浅肤色较深肤色',
+    '👩🏽‍🐰‍👩🏻' => '兔女郎: 中等肤色较浅肤色',
+    '👩🏽‍🐰‍👩🏼' => '兔女郎: 中等肤色中等-浅肤色',
+    '👩🏽‍🐰‍👩🏾' => '兔女郎: 中等肤色中等-深肤色',
+    '👩🏽‍🐰‍👩🏿' => '兔女郎: 中等肤色较深肤色',
+    '👩🏾‍🐰‍👩🏻' => '兔女郎: 中等-深肤色较浅肤色',
+    '👩🏾‍🐰‍👩🏼' => '兔女郎: 中等-深肤色中等-浅肤色',
+    '👩🏾‍🐰‍👩🏽' => '兔女郎: 中等-深肤色中等肤色',
+    '👩🏾‍🐰‍👩🏿' => '兔女郎: 中等-深肤色较深肤色',
+    '👩🏿‍🐰‍👩🏻' => '兔女郎: 较深肤色较浅肤色',
+    '👩🏿‍🐰‍👩🏼' => '兔女郎: 较深肤色中等-浅肤色',
+    '👩🏿‍🐰‍👩🏽' => '兔女郎: 较深肤色中等肤色',
+    '👩🏿‍🐰‍👩🏾' => '兔女郎: 较深肤色中等-深肤色',
     '🧑🏻‍🤝‍🧑🏻' => '手拉手的两个人: 较浅肤色',
     '🧑🏻‍🤝‍🧑🏼' => '手拉手的两个人: 较浅肤色中等-浅肤色',
     '🧑🏻‍🤝‍🧑🏽' => '手拉手的两个人: 较浅肤色中等肤色',
@@ -292,81 +412,81 @@
     '🏴󠁧󠁢󠁳󠁣󠁴󠁿' => '旗: 苏格兰',
     '🏴󠁧󠁢󠁷󠁬󠁳󠁿' => '旗: 威尔士',
     '🧑‍🧑‍🧒‍🧒' => '二孩家庭',
-    '🚶🏻‍♀‍➡' => '女行人面向右边',
-    '🚶🏼‍♀‍➡' => '女行人面向右边',
-    '🚶🏽‍♀‍➡' => '女行人面向右边',
-    '🚶🏾‍♀‍➡' => '女行人面向右边',
-    '🚶🏿‍♀‍➡' => '女行人面向右边',
-    '🚶🏻‍♂‍➡' => '男行人面向右边',
-    '🚶🏼‍♂‍➡' => '男行人面向右边',
-    '🚶🏽‍♂‍➡' => '男行人面向右边',
-    '🚶🏾‍♂‍➡' => '男行人面向右边',
-    '🚶🏿‍♂‍➡' => '男行人面向右边',
-    '🧎🏻‍♀‍➡' => '跪下的女人面向右边',
-    '🧎🏼‍♀‍➡' => '跪下的女人面向右边',
-    '🧎🏽‍♀‍➡' => '跪下的女人面向右边',
-    '🧎🏾‍♀‍➡' => '跪下的女人面向右边',
-    '🧎🏿‍♀‍➡' => '跪下的女人面向右边',
-    '🧎🏻‍♂‍➡' => '跪下的男人面向右边',
-    '🧎🏼‍♂‍➡' => '跪下的男人面向右边',
-    '🧎🏽‍♂‍➡' => '跪下的男人面向右边',
-    '🧎🏾‍♂‍➡' => '跪下的男人面向右边',
-    '🧎🏿‍♂‍➡' => '跪下的男人面向右边',
-    '🧑🏻‍🦯‍➡' => '拄盲杖的人面向右边',
-    '🧑🏼‍🦯‍➡' => '拄盲杖的人面向右边',
-    '🧑🏽‍🦯‍➡' => '拄盲杖的人面向右边',
-    '🧑🏾‍🦯‍➡' => '拄盲杖的人面向右边',
-    '🧑🏿‍🦯‍➡' => '拄盲杖的人面向右边',
-    '👨🏻‍🦯‍➡' => '拄盲杖的男人面向右边',
-    '👨🏼‍🦯‍➡' => '拄盲杖的男人面向右边',
-    '👨🏽‍🦯‍➡' => '拄盲杖的男人面向右边',
-    '👨🏾‍🦯‍➡' => '拄盲杖的男人面向右边',
-    '👨🏿‍🦯‍➡' => '拄盲杖的男人面向右边',
-    '👩🏻‍🦯‍➡' => '拄盲杖的女人面向右边',
-    '👩🏼‍🦯‍➡' => '拄盲杖的女人面向右边',
-    '👩🏽‍🦯‍➡' => '拄盲杖的女人面向右边',
-    '👩🏾‍🦯‍➡' => '拄盲杖的女人面向右边',
-    '👩🏿‍🦯‍➡' => '拄盲杖的女人面向右边',
-    '🧑🏻‍🦼‍➡' => '坐电动轮椅的人面向右边',
-    '🧑🏼‍🦼‍➡' => '坐电动轮椅的人面向右边',
-    '🧑🏽‍🦼‍➡' => '坐电动轮椅的人面向右边',
-    '🧑🏾‍🦼‍➡' => '坐电动轮椅的人面向右边',
-    '🧑🏿‍🦼‍➡' => '坐电动轮椅的人面向右边',
-    '👨🏻‍🦼‍➡' => '坐电动轮椅的男人面向右边',
-    '👨🏼‍🦼‍➡' => '坐电动轮椅的男人面向右边',
-    '👨🏽‍🦼‍➡' => '坐电动轮椅的男人面向右边',
-    '👨🏾‍🦼‍➡' => '坐电动轮椅的男人面向右边',
-    '👨🏿‍🦼‍➡' => '坐电动轮椅的男人面向右边',
-    '👩🏻‍🦼‍➡' => '坐电动轮椅的女人面向右边',
-    '👩🏼‍🦼‍➡' => '坐电动轮椅的女人面向右边',
-    '👩🏽‍🦼‍➡' => '坐电动轮椅的女人面向右边',
-    '👩🏾‍🦼‍➡' => '坐电动轮椅的女人面向右边',
-    '👩🏿‍🦼‍➡' => '坐电动轮椅的女人面向右边',
-    '🧑🏻‍🦽‍➡' => '坐手动轮椅的人面向右边',
-    '🧑🏼‍🦽‍➡' => '坐手动轮椅的人面向右边',
-    '🧑🏽‍🦽‍➡' => '坐手动轮椅的人面向右边',
-    '🧑🏾‍🦽‍➡' => '坐手动轮椅的人面向右边',
-    '🧑🏿‍🦽‍➡' => '坐手动轮椅的人面向右边',
-    '👨🏻‍🦽‍➡' => '坐手动轮椅的男人面向右边',
-    '👨🏼‍🦽‍➡' => '坐手动轮椅的男人面向右边',
-    '👨🏽‍🦽‍➡' => '坐手动轮椅的男人面向右边',
-    '👨🏾‍🦽‍➡' => '坐手动轮椅的男人面向右边',
-    '👨🏿‍🦽‍➡' => '坐手动轮椅的男人面向右边',
-    '👩🏻‍🦽‍➡' => '坐手动轮椅的女人面向右边',
-    '👩🏼‍🦽‍➡' => '坐手动轮椅的女人面向右边',
-    '👩🏽‍🦽‍➡' => '坐手动轮椅的女人面向右边',
-    '👩🏾‍🦽‍➡' => '坐手动轮椅的女人面向右边',
-    '👩🏿‍🦽‍➡' => '坐手动轮椅的女人面向右边',
-    '🏃🏻‍♀‍➡' => '女生跑步面向右边',
-    '🏃🏼‍♀‍➡' => '女生跑步面向右边',
-    '🏃🏽‍♀‍➡' => '女生跑步面向右边',
-    '🏃🏾‍♀‍➡' => '女生跑步面向右边',
-    '🏃🏿‍♀‍➡' => '女生跑步面向右边',
-    '🏃🏻‍♂‍➡' => '男生跑步面向右边',
-    '🏃🏼‍♂‍➡' => '男生跑步面向右边',
-    '🏃🏽‍♂‍➡' => '男生跑步面向右边',
-    '🏃🏾‍♂‍➡' => '男生跑步面向右边',
-    '🏃🏿‍♂‍➡' => '男生跑步面向右边',
+    '🚶🏻‍♀‍➡' => '女行人: 较浅肤色面向右边',
+    '🚶🏼‍♀‍➡' => '女行人: 中等-浅肤色面向右边',
+    '🚶🏽‍♀‍➡' => '女行人: 中等肤色面向右边',
+    '🚶🏾‍♀‍➡' => '女行人: 中等-深肤色面向右边',
+    '🚶🏿‍♀‍➡' => '女行人: 较深肤色面向右边',
+    '🚶🏻‍♂‍➡' => '男行人: 较浅肤色面向右边',
+    '🚶🏼‍♂‍➡' => '男行人: 中等-浅肤色面向右边',
+    '🚶🏽‍♂‍➡' => '男行人: 中等肤色面向右边',
+    '🚶🏾‍♂‍➡' => '男行人: 中等-深肤色面向右边',
+    '🚶🏿‍♂‍➡' => '男行人: 较深肤色面向右边',
+    '🧎🏻‍♀‍➡' => '跪下的女人: 较浅肤色面向右边',
+    '🧎🏼‍♀‍➡' => '跪下的女人: 中等-浅肤色面向右边',
+    '🧎🏽‍♀‍➡' => '跪下的女人: 中等肤色面向右边',
+    '🧎🏾‍♀‍➡' => '跪下的女人: 中等-深肤色面向右边',
+    '🧎🏿‍♀‍➡' => '跪下的女人: 较深肤色面向右边',
+    '🧎🏻‍♂‍➡' => '跪下的男人: 较浅肤色面向右边',
+    '🧎🏼‍♂‍➡' => '跪下的男人: 中等-浅肤色面向右边',
+    '🧎🏽‍♂‍➡' => '跪下的男人: 中等肤色面向右边',
+    '🧎🏾‍♂‍➡' => '跪下的男人: 中等-深肤色面向右边',
+    '🧎🏿‍♂‍➡' => '跪下的男人: 较深肤色面向右边',
+    '🧑🏻‍🦯‍➡' => '拄盲杖的人: 较浅肤色面向右边',
+    '🧑🏼‍🦯‍➡' => '拄盲杖的人: 中等-浅肤色面向右边',
+    '🧑🏽‍🦯‍➡' => '拄盲杖的人: 中等肤色面向右边',
+    '🧑🏾‍🦯‍➡' => '拄盲杖的人: 中等-深肤色面向右边',
+    '🧑🏿‍🦯‍➡' => '拄盲杖的人: 较深肤色面向右边',
+    '👨🏻‍🦯‍➡' => '拄盲杖的男人: 较浅肤色面向右边',
+    '👨🏼‍🦯‍➡' => '拄盲杖的男人: 中等-浅肤色面向右边',
+    '👨🏽‍🦯‍➡' => '拄盲杖的男人: 中等肤色面向右边',
+    '👨🏾‍🦯‍➡' => '拄盲杖的男人: 中等-深肤色面向右边',
+    '👨🏿‍🦯‍➡' => '拄盲杖的男人: 较深肤色面向右边',
+    '👩🏻‍🦯‍➡' => '拄盲杖的女人: 较浅肤色面向右边',
+    '👩🏼‍🦯‍➡' => '拄盲杖的女人: 中等-浅肤色面向右边',
+    '👩🏽‍🦯‍➡' => '拄盲杖的女人: 中等肤色面向右边',
+    '👩🏾‍🦯‍➡' => '拄盲杖的女人: 中等-深肤色面向右边',
+    '👩🏿‍🦯‍➡' => '拄盲杖的女人: 较深肤色面向右边',
+    '🧑🏻‍🦼‍➡' => '坐电动轮椅的人: 较浅肤色面向右边',
+    '🧑🏼‍🦼‍➡' => '坐电动轮椅的人: 中等-浅肤色面向右边',
+    '🧑🏽‍🦼‍➡' => '坐电动轮椅的人: 中等肤色面向右边',
+    '🧑🏾‍🦼‍➡' => '坐电动轮椅的人: 中等-深肤色面向右边',
+    '🧑🏿‍🦼‍➡' => '坐电动轮椅的人: 较深肤色面向右边',
+    '👨🏻‍🦼‍➡' => '坐电动轮椅的男人: 较浅肤色面向右边',
+    '👨🏼‍🦼‍➡' => '坐电动轮椅的男人: 中等-浅肤色面向右边',
+    '👨🏽‍🦼‍➡' => '坐电动轮椅的男人: 中等肤色面向右边',
+    '👨🏾‍🦼‍➡' => '坐电动轮椅的男人: 中等-深肤色面向右边',
+    '👨🏿‍🦼‍➡' => '坐电动轮椅的男人: 较深肤色面向右边',
+    '👩🏻‍🦼‍➡' => '坐电动轮椅的女人: 较浅肤色面向右边',
+    '👩🏼‍🦼‍➡' => '坐电动轮椅的女人: 中等-浅肤色面向右边',
+    '👩🏽‍🦼‍➡' => '坐电动轮椅的女人: 中等肤色面向右边',
+    '👩🏾‍🦼‍➡' => '坐电动轮椅的女人: 中等-深肤色面向右边',
+    '👩🏿‍🦼‍➡' => '坐电动轮椅的女人: 较深肤色面向右边',
+    '🧑🏻‍🦽‍➡' => '坐手动轮椅的人: 较浅肤色面向右边',
+    '🧑🏼‍🦽‍➡' => '坐手动轮椅的人: 中等-浅肤色面向右边',
+    '🧑🏽‍🦽‍➡' => '坐手动轮椅的人: 中等肤色面向右边',
+    '🧑🏾‍🦽‍➡' => '坐手动轮椅的人: 中等-深肤色面向右边',
+    '🧑🏿‍🦽‍➡' => '坐手动轮椅的人: 较深肤色面向右边',
+    '👨🏻‍🦽‍➡' => '坐手动轮椅的男人: 较浅肤色面向右边',
+    '👨🏼‍🦽‍➡' => '坐手动轮椅的男人: 中等-浅肤色面向右边',
+    '👨🏽‍🦽‍➡' => '坐手动轮椅的男人: 中等肤色面向右边',
+    '👨🏾‍🦽‍➡' => '坐手动轮椅的男人: 中等-深肤色面向右边',
+    '👨🏿‍🦽‍➡' => '坐手动轮椅的男人: 较深肤色面向右边',
+    '👩🏻‍🦽‍➡' => '坐手动轮椅的女人: 较浅肤色面向右边',
+    '👩🏼‍🦽‍➡' => '坐手动轮椅的女人: 中等-浅肤色面向右边',
+    '👩🏽‍🦽‍➡' => '坐手动轮椅的女人: 中等肤色面向右边',
+    '👩🏾‍🦽‍➡' => '坐手动轮椅的女人: 中等-深肤色面向右边',
+    '👩🏿‍🦽‍➡' => '坐手动轮椅的女人: 较深肤色面向右边',
+    '🏃🏻‍♀‍➡' => '女生跑步: 较浅肤色面向右边',
+    '🏃🏼‍♀‍➡' => '女生跑步: 中等-浅肤色面向右边',
+    '🏃🏽‍♀‍➡' => '女生跑步: 中等肤色面向右边',
+    '🏃🏾‍♀‍➡' => '女生跑步: 中等-深肤色面向右边',
+    '🏃🏿‍♀‍➡' => '女生跑步: 较深肤色面向右边',
+    '🏃🏻‍♂‍➡' => '男生跑步: 较浅肤色面向右边',
+    '🏃🏼‍♂‍➡' => '男生跑步: 中等-浅肤色面向右边',
+    '🏃🏽‍♂‍➡' => '男生跑步: 中等肤色面向右边',
+    '🏃🏾‍♂‍➡' => '男生跑步: 中等-深肤色面向右边',
+    '🏃🏿‍♂‍➡' => '男生跑步: 较深肤色面向右边',
     '🫱🏻‍🫲🏼' => '握手: 较浅肤色中等-浅肤色',
     '🫱🏻‍🫲🏽' => '握手: 较浅肤色中等肤色',
     '🫱🏻‍🫲🏾' => '握手: 较浅肤色中等-深肤色',
@@ -387,21 +507,21 @@
     '🫱🏿‍🫲🏼' => '握手: 较深肤色中等-浅肤色',
     '🫱🏿‍🫲🏽' => '握手: 较深肤色中等肤色',
     '🫱🏿‍🫲🏾' => '握手: 较深肤色中等-深肤色',
-    '🚶‍♀‍➡' => '女行人面向右边',
-    '🚶‍♂‍➡' => '男行人面向右边',
-    '🧎‍♀‍➡' => '跪下的女人面向右边',
-    '🧎‍♂‍➡' => '跪下的男人面向右边',
-    '🧑‍🦯‍➡' => '拄盲杖的人面向右边',
-    '👨‍🦯‍➡' => '拄盲杖的男人面向右边',
-    '👩‍🦯‍➡' => '拄盲杖的女人面向右边',
-    '🧑‍🦼‍➡' => '坐电动轮椅的人面向右边',
-    '👨‍🦼‍➡' => '坐电动轮椅的男人面向右边',
-    '👩‍🦼‍➡' => '坐电动轮椅的女人面向右边',
-    '🧑‍🦽‍➡' => '坐手动轮椅的人面向右边',
-    '👨‍🦽‍➡' => '坐手动轮椅的男人面向右边',
-    '👩‍🦽‍➡' => '坐手动轮椅的女人面向右边',
-    '🏃‍♀‍➡' => '女生跑步面向右边',
-    '🏃‍♂‍➡' => '男生跑步面向右边',
+    '🚶‍♀‍➡' => '女行人: 面向右边',
+    '🚶‍♂‍➡' => '男行人: 面向右边',
+    '🧎‍♀‍➡' => '跪下的女人: 面向右边',
+    '🧎‍♂‍➡' => '跪下的男人: 面向右边',
+    '🧑‍🦯‍➡' => '拄盲杖的人: 面向右边',
+    '👨‍🦯‍➡' => '拄盲杖的男人: 面向右边',
+    '👩‍🦯‍➡' => '拄盲杖的女人: 面向右边',
+    '🧑‍🦼‍➡' => '坐电动轮椅的人: 面向右边',
+    '👨‍🦼‍➡' => '坐电动轮椅的男人: 面向右边',
+    '👩‍🦼‍➡' => '坐电动轮椅的女人: 面向右边',
+    '🧑‍🦽‍➡' => '坐手动轮椅的人: 面向右边',
+    '👨‍🦽‍➡' => '坐手动轮椅的男人: 面向右边',
+    '👩‍🦽‍➡' => '坐手动轮椅的女人: 面向右边',
+    '🏃‍♀‍➡' => '女生跑步: 面向右边',
+    '🏃‍♂‍➡' => '男生跑步: 面向右边',
     '👩‍❤‍👨' => '情侣: 女人男人',
     '👨‍❤‍👨' => '情侣: 男人男人',
     '👩‍❤‍👩' => '情侣: 女人女人',
@@ -440,6 +560,11 @@
     '🧑🏽‍🦲' => '成人: 中等肤色秃顶',
     '🧑🏾‍🦲' => '成人: 中等-深肤色秃顶',
     '🧑🏿‍🦲' => '成人: 较深肤色秃顶',
+    '🧑🏻‍🩰' => '芭蕾舞者: 较浅肤色',
+    '🧑🏼‍🩰' => '芭蕾舞者: 中等-浅肤色',
+    '🧑🏽‍🩰' => '芭蕾舞者: 中等肤色',
+    '🧑🏾‍🩰' => '芭蕾舞者: 中等-深肤色',
+    '🧑🏿‍🩰' => '芭蕾舞者: 较深肤色',
     '🧔🏻‍♂' => '有络腮胡子的男人: 较浅肤色',
     '🧔🏼‍♂' => '有络腮胡子的男人: 中等-浅肤色',
     '🧔🏽‍♂' => '有络腮胡子的男人: 中等肤色',
@@ -1030,11 +1155,11 @@
     '🚶🏽‍♀' => '女行人: 中等肤色',
     '🚶🏾‍♀' => '女行人: 中等-深肤色',
     '🚶🏿‍♀' => '女行人: 较深肤色',
-    '🚶🏻‍➡' => '行人面向右边',
-    '🚶🏼‍➡' => '行人面向右边',
-    '🚶🏽‍➡' => '行人面向右边',
-    '🚶🏾‍➡' => '行人面向右边',
-    '🚶🏿‍➡' => '行人面向右边',
+    '🚶🏻‍➡' => '行人: 较浅肤色面向右边',
+    '🚶🏼‍➡' => '行人: 中等-浅肤色面向右边',
+    '🚶🏽‍➡' => '行人: 中等肤色面向右边',
+    '🚶🏾‍➡' => '行人: 中等-深肤色面向右边',
+    '🚶🏿‍➡' => '行人: 较深肤色面向右边',
     '🧍🏻‍♂' => '站立的男人: 较浅肤色',
     '🧍🏼‍♂' => '站立的男人: 中等-浅肤色',
     '🧍🏽‍♂' => '站立的男人: 中等肤色',
@@ -1055,11 +1180,11 @@
     '🧎🏽‍♀' => '跪下的女人: 中等肤色',
     '🧎🏾‍♀' => '跪下的女人: 中等-深肤色',
     '🧎🏿‍♀' => '跪下的女人: 较深肤色',
-    '🧎🏻‍➡' => '下跪者面向右边',
-    '🧎🏼‍➡' => '下跪者面向右边',
-    '🧎🏽‍➡' => '下跪者面向右边',
-    '🧎🏾‍➡' => '下跪者面向右边',
-    '🧎🏿‍➡' => '下跪者面向右边',
+    '🧎🏻‍➡' => '下跪者: 较浅肤色面向右边',
+    '🧎🏼‍➡' => '下跪者: 中等-浅肤色面向右边',
+    '🧎🏽‍➡' => '下跪者: 中等肤色面向右边',
+    '🧎🏾‍➡' => '下跪者: 中等-深肤色面向右边',
+    '🧎🏿‍➡' => '下跪者: 较深肤色面向右边',
     '🧑🏻‍🦯' => '拄盲杖的人: 较浅肤色',
     '🧑🏼‍🦯' => '拄盲杖的人: 中等-浅肤色',
     '🧑🏽‍🦯' => '拄盲杖的人: 中等肤色',
@@ -1115,11 +1240,21 @@
     '🏃🏽‍♀' => '女生跑步: 中等肤色',
     '🏃🏾‍♀' => '女生跑步: 中等-深肤色',
     '🏃🏿‍♀' => '女生跑步: 较深肤色',
-    '🏃🏻‍➡' => '跑步者面向右边',
-    '🏃🏼‍➡' => '跑步者面向右边',
-    '🏃🏽‍➡' => '跑步者面向右边',
-    '🏃🏾‍➡' => '跑步者面向右边',
-    '🏃🏿‍➡' => '跑步者面向右边',
+    '🏃🏻‍➡' => '跑步者: 较浅肤色面向右边',
+    '🏃🏼‍➡' => '跑步者: 中等-浅肤色面向右边',
+    '🏃🏽‍➡' => '跑步者: 中等肤色面向右边',
+    '🏃🏾‍➡' => '跑步者: 中等-深肤色面向右边',
+    '🏃🏿‍➡' => '跑步者: 较深肤色面向右边',
+    '👯🏻‍♀' => '兔女郎: 较浅肤色',
+    '👯🏼‍♀' => '兔女郎: 中等-浅肤色',
+    '👯🏽‍♀' => '兔女郎: 中等肤色',
+    '👯🏾‍♀' => '兔女郎: 中等-深肤色',
+    '👯🏿‍♀' => '兔女郎: 较深肤色',
+    '👯🏻‍♂' => '兔先生: 较浅肤色',
+    '👯🏼‍♂' => '兔先生: 中等-浅肤色',
+    '👯🏽‍♂' => '兔先生: 中等肤色',
+    '👯🏾‍♂' => '兔先生: 中等-深肤色',
+    '👯🏿‍♂' => '兔先生: 较深肤色',
     '🧖🏻‍♂' => '蒸房里的男人: 较浅肤色',
     '🧖🏼‍♂' => '蒸房里的男人: 中等-浅肤色',
     '🧖🏽‍♂' => '蒸房里的男人: 中等肤色',
@@ -1230,6 +1365,16 @@
     '🤸🏽‍♀' => '女生侧手翻: 中等肤色',
     '🤸🏾‍♀' => '女生侧手翻: 中等-深肤色',
     '🤸🏿‍♀' => '女生侧手翻: 较深肤色',
+    '🤼🏻‍♀' => '女生摔跤: 较浅肤色',
+    '🤼🏼‍♀' => '女生摔跤: 中等-浅肤色',
+    '🤼🏽‍♀' => '女生摔跤: 中等肤色',
+    '🤼🏾‍♀' => '女生摔跤: 中等-深肤色',
+    '🤼🏿‍♀' => '女生摔跤: 较深肤色',
+    '🤼🏻‍♂' => '男生摔跤: 较浅肤色',
+    '🤼🏼‍♂' => '男生摔跤: 中等-浅肤色',
+    '🤼🏽‍♂' => '男生摔跤: 中等肤色',
+    '🤼🏾‍♂' => '男生摔跤: 中等-深肤色',
+    '🤼🏿‍♂' => '男生摔跤: 较深肤色',
     '🤽🏻‍♂' => '男生玩水球: 较浅肤色',
     '🤽🏼‍♂' => '男生玩水球: 中等-浅肤色',
     '🤽🏽‍♂' => '男生玩水球: 中等肤色',
@@ -1282,9 +1427,9 @@
     '👩‍🦱' => '女人: 卷发',
     '👩‍🦳' => '女人: 白发',
     '👩‍🦲' => '女人: 秃顶',
-    '🚶‍➡' => '行人面向右边',
-    '🧎‍➡' => '下跪者面向右边',
-    '🏃‍➡' => '跑步者面向右边',
+    '🚶‍➡' => '行人: 面向右边',
+    '🧎‍➡' => '下跪者: 面向右边',
+    '🏃‍➡' => '跑步者: 面向右边',
     '👨‍👦' => '家庭: 男人男孩',
     '👨‍👧' => '家庭: 男人女孩',
     '👩‍👦' => '家庭: 女人男孩',
@@ -1425,6 +1570,7 @@
     '👩‍🦽' => '坐手动轮椅的女人',
     '🏃‍♂' => '男生跑步',
     '🏃‍♀' => '女生跑步',
+    '🧑‍🩰' => '芭蕾舞者',
     '👯‍♂' => '兔先生',
     '👯‍♀' => '兔女郎',
     '🧖‍♂' => '蒸房里的男人',
@@ -2006,6 +2152,11 @@
     '🕴🏽' => '西装革履的人: 中等肤色',
     '🕴🏾' => '西装革履的人: 中等-深肤色',
     '🕴🏿' => '西装革履的人: 较深肤色',
+    '👯🏻' => '戴兔耳朵的人: 较浅肤色',
+    '👯🏼' => '戴兔耳朵的人: 中等-浅肤色',
+    '👯🏽' => '戴兔耳朵的人: 中等肤色',
+    '👯🏾' => '戴兔耳朵的人: 中等-深肤色',
+    '👯🏿' => '戴兔耳朵的人: 较深肤色',
     '🧖🏻' => '蒸房里的人: 较浅肤色',
     '🧖🏼' => '蒸房里的人: 中等-浅肤色',
     '🧖🏽' => '蒸房里的人: 中等肤色',
@@ -2071,6 +2222,11 @@
     '🤸🏽' => '侧手翻: 中等肤色',
     '🤸🏾' => '侧手翻: 中等-深肤色',
     '🤸🏿' => '侧手翻: 较深肤色',
+    '🤼🏻' => '摔跤选手: 较浅肤色',
+    '🤼🏼' => '摔跤选手: 中等-浅肤色',
+    '🤼🏽' => '摔跤选手: 中等肤色',
+    '🤼🏾' => '摔跤选手: 中等-深肤色',
+    '🤼🏿' => '摔跤选手: 较深肤色',
     '🤽🏻' => '水球: 较浅肤色',
     '🤽🏼' => '水球: 中等-浅肤色',
     '🤽🏽' => '水球: 中等肤色',
@@ -2177,6 +2333,7 @@
     '🇨🇳' => '旗: 中国',
     '🇨🇴' => '旗: 哥伦比亚',
     '🇨🇵' => '旗: 克利珀顿岛',
+    '🇨🇶' => '旗: 萨克岛',
     '🇨🇷' => '旗: 哥斯达黎加',
     '🇨🇺' => '旗: 古巴',
     '🇨🇻' => '旗: 佛得角',
@@ -2390,13 +2547,6 @@
     '🏽' => '中等肤色',
     '🏾' => '中等-深肤色',
     '🏿' => '较深肤色',
-    '🪉' => '竖琴',
-    '🪏' => '铲',
-    '🪾' => '无叶树',
-    '🫆' => '指纹',
-    '🫜' => '根菜',
-    '🫟' => '泼溅',
-    '🫩' => '有眼袋',
     '😀' => '嘿嘿',
     '😃' => '哈哈',
     '😄' => '大笑',
@@ -2450,6 +2600,7 @@
     '😪' => '困',
     '🤤' => '流口水',
     '😴' => '睡着了',
+    '🫩' => '有眼袋',
     '😷' => '感冒',
     '🤒' => '发烧',
     '🤕' => '受伤',
@@ -2476,6 +2627,7 @@
     '😯' => '缄默',
     '😲' => '震惊',
     '😳' => '脸红',
+    '🫪' => '变形的脸',
     '🥺' => '恳求的脸',
     '🥹' => '忍住泪水',
     '😦' => '啊',
@@ -2547,6 +2699,7 @@
     '💋' => '唇印',
     '💯' => '一百分',
     '💢' => '怒',
+    '🫯' => '打斗云团',
     '💥' => '爆炸',
     '💫' => '头晕',
     '💦' => '汗滴',
@@ -2670,6 +2823,7 @@
     '🧞' => '妖怪',
     '🧟' => '僵尸',
     '🧌' => '穴居巨怪',
+    '🫈' => '毛怪',
     '💆' => '按摩',
     '💇' => '理发',
     '🚶' => '行人',
@@ -2713,6 +2867,7 @@
     '🫂' => '人的拥抱',
     '👪' => '家庭',
     '👣' => '脚印',
+    '🫆' => '指纹',
     '🦰' => '红发',
     '🦱' => '卷发',
     '🦳' => '白发',
@@ -2812,6 +2967,7 @@
     '🐳' => '喷水的鲸',
     '🐋' => '鲸鱼',
     '🐬' => '海豚',
+    '🫍' => '虎鲸',
     '🦭' => '海豹',
     '🐟' => '鱼',
     '🐠' => '热带鱼',
@@ -2821,6 +2977,11 @@
     '🐚' => '海螺',
     '🪸' => '珊瑚',
     '🪼' => '水母',
+    '🦀' => '蟹',
+    '🦞' => '龙虾',
+    '🦐' => '虾',
+    '🦑' => '乌贼',
+    '🦪' => '牡蛎',
     '🐌' => '蜗牛',
     '🦋' => '蝴蝶',
     '🐛' => '毛毛虫',
@@ -2865,6 +3026,7 @@
     '🪹' => '空巢',
     '🪺' => '有蛋的巢',
     '🍄' => '蘑菇',
+    '🪾' => '无叶树',
     '🍇' => '葡萄',
     '🍈' => '甜瓜',
     '🍉' => '西瓜',
@@ -2901,6 +3063,7 @@
     '🌰' => '栗子',
     '🫚' => '姜',
     '🫛' => '豌豆荚',
+    '🫜' => '根菜',
     '🍞' => '面包',
     '🥐' => '羊角面包',
     '🥖' => '法式长棍面包',
@@ -2952,11 +3115,6 @@
     '🥟' => '饺子',
     '🥠' => '幸运饼干',
     '🥡' => '外卖盒',
-    '🦀' => '蟹',
-    '🦞' => '龙虾',
-    '🦐' => '虾',
-    '🦑' => '乌贼',
-    '🦪' => '牡蛎',
     '🍦' => '圆筒冰激凌',
     '🍧' => '刨冰',
     '🍨' => '冰淇淋',
@@ -3007,6 +3165,7 @@
     '🧭' => '指南针',
     '🏔' => '雪山',
     '⛰' => '山',
+    '🛘' => '山体滑坡',
     '🌋' => '火山',
     '🗻' => '富士山',
     '🏕' => '露营',
@@ -3367,16 +3526,18 @@
     '🎧' => '耳机',
     '📻' => '收音机',
     '🎷' => '萨克斯管',
+    '🎺' => '小号',
+    '🪊' => '长号',
     '🪗' => '手风琴',
     '🎸' => '吉他',
     '🎹' => '音乐键盘',
-    '🎺' => '小号',
     '🎻' => '小提琴',
     '🪕' => '班卓琴',
     '🥁' => '鼓',
     '🪘' => '长鼓',
     '🪇' => '沙球',
     '🪈' => '长笛',
+    '🪉' => '竖琴',
     '📱' => '手机',
     '📲' => '带有箭头的手机',
     '☎' => '电话',
@@ -3430,8 +3591,9 @@
     '📑' => '标签页',
     '🔖' => '书签',
     '🏷' => '标签',
-    '💰' => '钱袋',
     '🪙' => '硬币',
+    '💰' => '钱袋',
+    '🪎' => '宝箱',
     '💴' => '日元',
     '💵' => '美元',
     '💶' => '欧元',
@@ -3514,6 +3676,7 @@
     '🧰' => '工具箱',
     '🧲' => '磁铁',
     '🪜' => '梯子',
+    '🪏' => '铲',
     '⚗' => '蒸馏器',
     '🧪' => '试管',
     '🧫' => '培养皿',
@@ -3697,6 +3860,7 @@
     '✴' => '八角星',
     '❇' => '火花',
     '™' => '商标',
+    '🫟' => '泼溅',
     '🔠' => '输入大写拉丁字母',
     '🔡' => '输入小写拉丁字母',
     '🔢' => '输入数字',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zu.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zu.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zu.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/emoji-zu.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,6 +96,26 @@
     '👩🏿‍❤‍💋‍👩🏽' => 'ukuqabula: umama, umama, uhlobo-6, uhlobo-4',
     '👩🏿‍❤‍💋‍👩🏾' => 'ukuqabula: umama, umama, uhlobo-6, uhlobo-5',
     '👩🏿‍❤‍💋‍👩🏿' => 'ukuqabula: umama, umama, uhlobo-6',
+    '🧑🏻‍🫯‍🧑🏼' => 'abashayi-sibhakela: uhlobo-1-2, uhlobo-3',
+    '🧑🏻‍🫯‍🧑🏽' => 'abashayi-sibhakela: uhlobo-1-2, uhlobo-4',
+    '🧑🏻‍🫯‍🧑🏾' => 'abashayi-sibhakela: uhlobo-1-2, uhlobo-5',
+    '🧑🏻‍🫯‍🧑🏿' => 'abashayi-sibhakela: uhlobo-1-2, uhlobo-6',
+    '🧑🏼‍🫯‍🧑🏻' => 'abashayi-sibhakela: uhlobo-3, uhlobo-1-2',
+    '🧑🏼‍🫯‍🧑🏽' => 'abashayi-sibhakela: uhlobo-3, uhlobo-4',
+    '🧑🏼‍🫯‍🧑🏾' => 'abashayi-sibhakela: uhlobo-3, uhlobo-5',
+    '🧑🏼‍🫯‍🧑🏿' => 'abashayi-sibhakela: uhlobo-3, uhlobo-6',
+    '🧑🏽‍🫯‍🧑🏻' => 'abashayi-sibhakela: uhlobo-4, uhlobo-1-2',
+    '🧑🏽‍🫯‍🧑🏼' => 'abashayi-sibhakela: uhlobo-4, uhlobo-3',
+    '🧑🏽‍🫯‍🧑🏾' => 'abashayi-sibhakela: uhlobo-4, uhlobo-5',
+    '🧑🏽‍🫯‍🧑🏿' => 'abashayi-sibhakela: uhlobo-4, uhlobo-6',
+    '🧑🏾‍🫯‍🧑🏻' => 'abashayi-sibhakela: uhlobo-5, uhlobo-1-2',
+    '🧑🏾‍🫯‍🧑🏼' => 'abashayi-sibhakela: uhlobo-5, uhlobo-3',
+    '🧑🏾‍🫯‍🧑🏽' => 'abashayi-sibhakela: uhlobo-5, uhlobo-4',
+    '🧑🏾‍🫯‍🧑🏿' => 'abashayi-sibhakela: uhlobo-5, uhlobo-6',
+    '🧑🏿‍🫯‍🧑🏻' => 'abashayi-sibhakela: uhlobo-6, uhlobo-1-2',
+    '🧑🏿‍🫯‍🧑🏼' => 'abashayi-sibhakela: uhlobo-6, uhlobo-3',
+    '🧑🏿‍🫯‍🧑🏽' => 'abashayi-sibhakela: uhlobo-6, uhlobo-4',
+    '🧑🏿‍🫯‍🧑🏾' => 'abashayi-sibhakela: uhlobo-6, uhlobo-5',
     '🧑🏻‍❤‍🧑🏼' => 'izithandani ezinenhliziyo: mdala, mdala, uhlobo-1-2, uhlobo-3',
     '🧑🏻‍❤‍🧑🏽' => 'izithandani ezinenhliziyo: mdala, mdala, uhlobo-1-2, uhlobo-4',
     '🧑🏻‍❤‍🧑🏾' => 'izithandani ezinenhliziyo: mdala, mdala, uhlobo-1-2, uhlobo-5',
@@ -116,6 +136,46 @@
     '🧑🏿‍❤‍🧑🏼' => 'izithandani ezinenhliziyo: mdala, mdala, uhlobo-6, uhlobo-3',
     '🧑🏿‍❤‍🧑🏽' => 'izithandani ezinenhliziyo: mdala, mdala, uhlobo-6, uhlobo-4',
     '🧑🏿‍❤‍🧑🏾' => 'izithandani ezinenhliziyo: mdala, mdala, uhlobo-6, uhlobo-5',
+    '🧑🏻‍🐰‍🧑🏼' => 'abantu abasemcimbini: uhlobo-1-2, uhlobo-3',
+    '🧑🏻‍🐰‍🧑🏽' => 'abantu abasemcimbini: uhlobo-1-2, uhlobo-4',
+    '🧑🏻‍🐰‍🧑🏾' => 'abantu abasemcimbini: uhlobo-1-2, uhlobo-5',
+    '🧑🏻‍🐰‍🧑🏿' => 'abantu abasemcimbini: uhlobo-1-2, uhlobo-6',
+    '🧑🏼‍🐰‍🧑🏻' => 'abantu abasemcimbini: uhlobo-3, uhlobo-1-2',
+    '🧑🏼‍🐰‍🧑🏽' => 'abantu abasemcimbini: uhlobo-3, uhlobo-4',
+    '🧑🏼‍🐰‍🧑🏾' => 'abantu abasemcimbini: uhlobo-3, uhlobo-5',
+    '🧑🏼‍🐰‍🧑🏿' => 'abantu abasemcimbini: uhlobo-3, uhlobo-6',
+    '🧑🏽‍🐰‍🧑🏻' => 'abantu abasemcimbini: uhlobo-4, uhlobo-1-2',
+    '🧑🏽‍🐰‍🧑🏼' => 'abantu abasemcimbini: uhlobo-4, uhlobo-3',
+    '🧑🏽‍🐰‍🧑🏾' => 'abantu abasemcimbini: uhlobo-4, uhlobo-5',
+    '🧑🏽‍🐰‍🧑🏿' => 'abantu abasemcimbini: uhlobo-4, uhlobo-6',
+    '🧑🏾‍🐰‍🧑🏻' => 'abantu abasemcimbini: uhlobo-5, uhlobo-1-2',
+    '🧑🏾‍🐰‍🧑🏼' => 'abantu abasemcimbini: uhlobo-5, uhlobo-3',
+    '🧑🏾‍🐰‍🧑🏽' => 'abantu abasemcimbini: uhlobo-5, uhlobo-4',
+    '🧑🏾‍🐰‍🧑🏿' => 'abantu abasemcimbini: uhlobo-5, uhlobo-6',
+    '🧑🏿‍🐰‍🧑🏻' => 'abantu abasemcimbini: uhlobo-6, uhlobo-1-2',
+    '🧑🏿‍🐰‍🧑🏼' => 'abantu abasemcimbini: uhlobo-6, uhlobo-3',
+    '🧑🏿‍🐰‍🧑🏽' => 'abantu abasemcimbini: uhlobo-6, uhlobo-4',
+    '🧑🏿‍🐰‍🧑🏾' => 'abantu abasemcimbini: uhlobo-6, uhlobo-5',
+    '👨🏻‍🫯‍👨🏼' => 'abashayisibhakela besilisa: uhlobo-1-2, uhlobo-3',
+    '👨🏻‍🫯‍👨🏽' => 'abashayisibhakela besilisa: uhlobo-1-2, uhlobo-4',
+    '👨🏻‍🫯‍👨🏾' => 'abashayisibhakela besilisa: uhlobo-1-2, uhlobo-5',
+    '👨🏻‍🫯‍👨🏿' => 'abashayisibhakela besilisa: uhlobo-1-2, uhlobo-6',
+    '👨🏼‍🫯‍👨🏻' => 'abashayisibhakela besilisa: uhlobo-3, uhlobo-1-2',
+    '👨🏼‍🫯‍👨🏽' => 'abashayisibhakela besilisa: uhlobo-3, uhlobo-4',
+    '👨🏼‍🫯‍👨🏾' => 'abashayisibhakela besilisa: uhlobo-3, uhlobo-5',
+    '👨🏼‍🫯‍👨🏿' => 'abashayisibhakela besilisa: uhlobo-3, uhlobo-6',
+    '👨🏽‍🫯‍👨🏻' => 'abashayisibhakela besilisa: uhlobo-4, uhlobo-1-2',
+    '👨🏽‍🫯‍👨🏼' => 'abashayisibhakela besilisa: uhlobo-4, uhlobo-3',
+    '👨🏽‍🫯‍👨🏾' => 'abashayisibhakela besilisa: uhlobo-4, uhlobo-5',
+    '👨🏽‍🫯‍👨🏿' => 'abashayisibhakela besilisa: uhlobo-4, uhlobo-6',
+    '👨🏾‍🫯‍👨🏻' => 'abashayisibhakela besilisa: uhlobo-5, uhlobo-1-2',
+    '👨🏾‍🫯‍👨🏼' => 'abashayisibhakela besilisa: uhlobo-5, uhlobo-3',
+    '👨🏾‍🫯‍👨🏽' => 'abashayisibhakela besilisa: uhlobo-5, uhlobo-4',
+    '👨🏾‍🫯‍👨🏿' => 'abashayisibhakela besilisa: uhlobo-5, uhlobo-6',
+    '👨🏿‍🫯‍👨🏻' => 'abashayisibhakela besilisa: uhlobo-6, uhlobo-1-2',
+    '👨🏿‍🫯‍👨🏼' => 'abashayisibhakela besilisa: uhlobo-6, uhlobo-3',
+    '👨🏿‍🫯‍👨🏽' => 'abashayisibhakela besilisa: uhlobo-6, uhlobo-4',
+    '👨🏿‍🫯‍👨🏾' => 'abashayisibhakela besilisa: uhlobo-6, uhlobo-5',
     '👨🏻‍❤‍👨🏻' => 'izithandani ezinenhliziyo: indoda, indoda, uhlobo-1-2',
     '👨🏻‍❤‍👨🏼' => 'izithandani ezinenhliziyo: indoda, indoda, uhlobo-1-2, uhlobo-3',
     '👨🏻‍❤‍👨🏽' => 'izithandani ezinenhliziyo: indoda, indoda, uhlobo-1-2, uhlobo-4',
@@ -141,6 +201,46 @@
     '👨🏿‍❤‍👨🏽' => 'izithandani ezinenhliziyo: indoda, indoda, uhlobo-6, uhlobo-4',
     '👨🏿‍❤‍👨🏾' => 'izithandani ezinenhliziyo: indoda, indoda, uhlobo-6, uhlobo-5',
     '👨🏿‍❤‍👨🏿' => 'izithandani ezinenhliziyo: indoda, indoda, uhlobo-6',
+    '👨🏻‍🐰‍👨🏼' => 'amadoda asemcimbini: uhlobo-1-2, uhlobo-3',
+    '👨🏻‍🐰‍👨🏽' => 'amadoda asemcimbini: uhlobo-1-2, uhlobo-4',
+    '👨🏻‍🐰‍👨🏾' => 'amadoda asemcimbini: uhlobo-1-2, uhlobo-5',
+    '👨🏻‍🐰‍👨🏿' => 'amadoda asemcimbini: uhlobo-1-2, uhlobo-6',
+    '👨🏼‍🐰‍👨🏻' => 'amadoda asemcimbini: uhlobo-3, uhlobo-1-2',
+    '👨🏼‍🐰‍👨🏽' => 'amadoda asemcimbini: uhlobo-3, uhlobo-4',
+    '👨🏼‍🐰‍👨🏾' => 'amadoda asemcimbini: uhlobo-3, uhlobo-5',
+    '👨🏼‍🐰‍👨🏿' => 'amadoda asemcimbini: uhlobo-3, uhlobo-6',
+    '👨🏽‍🐰‍👨🏻' => 'amadoda asemcimbini: uhlobo-4, uhlobo-1-2',
+    '👨🏽‍🐰‍👨🏼' => 'amadoda asemcimbini: uhlobo-4, uhlobo-3',
+    '👨🏽‍🐰‍👨🏾' => 'amadoda asemcimbini: uhlobo-4, uhlobo-5',
+    '👨🏽‍🐰‍👨🏿' => 'amadoda asemcimbini: uhlobo-4, uhlobo-6',
+    '👨🏾‍🐰‍👨🏻' => 'amadoda asemcimbini: uhlobo-5, uhlobo-1-2',
+    '👨🏾‍🐰‍👨🏼' => 'amadoda asemcimbini: uhlobo-5, uhlobo-3',
+    '👨🏾‍🐰‍👨🏽' => 'amadoda asemcimbini: uhlobo-5, uhlobo-4',
+    '👨🏾‍🐰‍👨🏿' => 'amadoda asemcimbini: uhlobo-5, uhlobo-6',
+    '👨🏿‍🐰‍👨🏻' => 'amadoda asemcimbini: uhlobo-6, uhlobo-1-2',
+    '👨🏿‍🐰‍👨🏼' => 'amadoda asemcimbini: uhlobo-6, uhlobo-3',
+    '👨🏿‍🐰‍👨🏽' => 'amadoda asemcimbini: uhlobo-6, uhlobo-4',
+    '👨🏿‍🐰‍👨🏾' => 'amadoda asemcimbini: uhlobo-6, uhlobo-5',
+    '👩🏻‍🫯‍👩🏼' => 'abashayisibhakela besimame: uhlobo-1-2, uhlobo-3',
+    '👩🏻‍🫯‍👩🏽' => 'abashayisibhakela besimame: uhlobo-1-2, uhlobo-4',
+    '👩🏻‍🫯‍👩🏾' => 'abashayisibhakela besimame: uhlobo-1-2, uhlobo-5',
+    '👩🏻‍🫯‍👩🏿' => 'abashayisibhakela besimame: uhlobo-1-2, uhlobo-6',
+    '👩🏼‍🫯‍👩🏻' => 'abashayisibhakela besimame: uhlobo-3, uhlobo-1-2',
+    '👩🏼‍🫯‍👩🏽' => 'abashayisibhakela besimame: uhlobo-3, uhlobo-4',
+    '👩🏼‍🫯‍👩🏾' => 'abashayisibhakela besimame: uhlobo-3, uhlobo-5',
+    '👩🏼‍🫯‍👩🏿' => 'abashayisibhakela besimame: uhlobo-3, uhlobo-6',
+    '👩🏽‍🫯‍👩🏻' => 'abashayisibhakela besimame: uhlobo-4, uhlobo-1-2',
+    '👩🏽‍🫯‍👩🏼' => 'abashayisibhakela besimame: uhlobo-4, uhlobo-3',
+    '👩🏽‍🫯‍👩🏾' => 'abashayisibhakela besimame: uhlobo-4, uhlobo-5',
+    '👩🏽‍🫯‍👩🏿' => 'abashayisibhakela besimame: uhlobo-4, uhlobo-6',
+    '👩🏾‍🫯‍👩🏻' => 'abashayisibhakela besimame: uhlobo-5, uhlobo-1-2',
+    '👩🏾‍🫯‍👩🏼' => 'abashayisibhakela besimame: uhlobo-5, uhlobo-3',
+    '👩🏾‍🫯‍👩🏽' => 'abashayisibhakela besimame: uhlobo-5, uhlobo-4',
+    '👩🏾‍🫯‍👩🏿' => 'abashayisibhakela besimame: uhlobo-5, uhlobo-6',
+    '👩🏿‍🫯‍👩🏻' => 'abashayisibhakela besimame: uhlobo-6, uhlobo-1-2',
+    '👩🏿‍🫯‍👩🏼' => 'abashayisibhakela besimame: uhlobo-6, uhlobo-3',
+    '👩🏿‍🫯‍👩🏽' => 'abashayisibhakela besimame: uhlobo-6, uhlobo-4',
+    '👩🏿‍🫯‍👩🏾' => 'abashayisibhakela besimame: uhlobo-6, uhlobo-5',
     '👩🏻‍❤‍👨🏻' => 'izithandani ezinenhliziyo: umama, indoda, uhlobo-1-2',
     '👩🏻‍❤‍👨🏼' => 'izithandani ezinenhliziyo: umama, indoda, uhlobo-1-2, uhlobo-3',
     '👩🏻‍❤‍👨🏽' => 'izithandani ezinenhliziyo: umama, indoda, uhlobo-1-2, uhlobo-4',
@@ -191,6 +291,26 @@
     '👩🏿‍❤‍👩🏽' => 'izithandani ezinenhliziyo: umama, umama, uhlobo-6, uhlobo-4',
     '👩🏿‍❤‍👩🏾' => 'izithandani ezinenhliziyo: umama, umama, uhlobo-6, uhlobo-5',
     '👩🏿‍❤‍👩🏿' => 'izithandani ezinenhliziyo: umama, umama, uhlobo-6',
+    '👩🏻‍🐰‍👩🏼' => 'abasemame abasemcimbini: uhlobo-1-2, uhlobo-3',
+    '👩🏻‍🐰‍👩🏽' => 'abasemame abasemcimbini: uhlobo-1-2, uhlobo-4',
+    '👩🏻‍🐰‍👩🏾' => 'abasemame abasemcimbini: uhlobo-1-2, uhlobo-5',
+    '👩🏻‍🐰‍👩🏿' => 'abasemame abasemcimbini: uhlobo-1-2, uhlobo-6',
+    '👩🏼‍🐰‍👩🏻' => 'abasemame abasemcimbini: uhlobo-3, uhlobo-1-2',
+    '👩🏼‍🐰‍👩🏽' => 'abasemame abasemcimbini: uhlobo-3, uhlobo-4',
+    '👩🏼‍🐰‍👩🏾' => 'abasemame abasemcimbini: uhlobo-3, uhlobo-5',
+    '👩🏼‍🐰‍👩🏿' => 'abasemame abasemcimbini: uhlobo-3, uhlobo-6',
+    '👩🏽‍🐰‍👩🏻' => 'abasemame abasemcimbini: uhlobo-4, uhlobo-1-2',
+    '👩🏽‍🐰‍👩🏼' => 'abasemame abasemcimbini: uhlobo-4, uhlobo-3',
+    '👩🏽‍🐰‍👩🏾' => 'abasemame abasemcimbini: uhlobo-4, uhlobo-5',
+    '👩🏽‍🐰‍👩🏿' => 'abasemame abasemcimbini: uhlobo-4, uhlobo-6',
+    '👩🏾‍🐰‍👩🏻' => 'abasemame abasemcimbini: uhlobo-5, uhlobo-1-2',
+    '👩🏾‍🐰‍👩🏼' => 'abasemame abasemcimbini: uhlobo-5, uhlobo-3',
+    '👩🏾‍🐰‍👩🏽' => 'abasemame abasemcimbini: uhlobo-5, uhlobo-4',
+    '👩🏾‍🐰‍👩🏿' => 'abasemame abasemcimbini: uhlobo-5, uhlobo-6',
+    '👩🏿‍🐰‍👩🏻' => 'abasemame abasemcimbini: uhlobo-6, uhlobo-1-2',
+    '👩🏿‍🐰‍👩🏼' => 'abasemame abasemcimbini: uhlobo-6, uhlobo-3',
+    '👩🏿‍🐰‍👩🏽' => 'abasemame abasemcimbini: uhlobo-6, uhlobo-4',
+    '👩🏿‍🐰‍👩🏾' => 'abasemame abasemcimbini: uhlobo-6, uhlobo-5',
     '🧑🏻‍🤝‍🧑🏻' => 'Abantu ababambene ngezandla: uhlobo-1-2',
     '🧑🏻‍🤝‍🧑🏼' => 'Abantu ababambene ngezandla: uhlobo-1-2, uhlobo-3',
     '🧑🏻‍🤝‍🧑🏽' => 'Abantu ababambene ngezandla: uhlobo-1-2, uhlobo-4',
@@ -350,6 +470,11 @@
     '🧑🏽‍🦲' => 'mdala: uhlobo-4, imbungculu',
     '🧑🏾‍🦲' => 'mdala: uhlobo-5, imbungculu',
     '🧑🏿‍🦲' => 'mdala: uhlobo-6, imbungculu',
+    '🧑🏻‍🩰' => 'ballet dancer: uhlobo-1-2',
+    '🧑🏼‍🩰' => 'ballet dancer: uhlobo-3',
+    '🧑🏽‍🩰' => 'ballet dancer: uhlobo-4',
+    '🧑🏾‍🩰' => 'ballet dancer: uhlobo-5',
+    '🧑🏿‍🩰' => 'ballet dancer: uhlobo-6',
     '🧔🏻‍♂' => 'indoda enezindevu: uhlobo-1-2',
     '🧔🏼‍♂' => 'indoda enezindevu: uhlobo-3',
     '🧔🏽‍♂' => 'indoda enezindevu: uhlobo-4',
@@ -1015,6 +1140,16 @@
     '🏃🏽‍♀' => 'owesimame ogijimayo: uhlobo-4',
     '🏃🏾‍♀' => 'owesimame ogijimayo: uhlobo-5',
     '🏃🏿‍♀' => 'owesimame ogijimayo: uhlobo-6',
+    '👯🏻‍♀' => 'abasemame abasemcimbini: uhlobo-1-2',
+    '👯🏼‍♀' => 'abasemame abasemcimbini: uhlobo-3',
+    '👯🏽‍♀' => 'abasemame abasemcimbini: uhlobo-4',
+    '👯🏾‍♀' => 'abasemame abasemcimbini: uhlobo-5',
+    '👯🏿‍♀' => 'abasemame abasemcimbini: uhlobo-6',
+    '👯🏻‍♂' => 'amadoda asemcimbini: uhlobo-1-2',
+    '👯🏼‍♂' => 'amadoda asemcimbini: uhlobo-3',
+    '👯🏽‍♂' => 'amadoda asemcimbini: uhlobo-4',
+    '👯🏾‍♂' => 'amadoda asemcimbini: uhlobo-5',
+    '👯🏿‍♂' => 'amadoda asemcimbini: uhlobo-6',
     '🧖🏻‍♂' => 'owesilisa egunjini lestimu: uhlobo-1-2',
     '🧖🏼‍♂' => 'owesilisa egunjini lestimu: uhlobo-3',
     '🧖🏽‍♂' => 'owesilisa egunjini lestimu: uhlobo-4',
@@ -1125,6 +1260,16 @@
     '🤸🏽‍♀' => 'owesimame enza isondo lekalishi: uhlobo-4',
     '🤸🏾‍♀' => 'owesimame enza isondo lekalishi: uhlobo-5',
     '🤸🏿‍♀' => 'owesimame enza isondo lekalishi: uhlobo-6',
+    '🤼🏻‍♀' => 'abashayisibhakela besimame: uhlobo-1-2',
+    '🤼🏼‍♀' => 'abashayisibhakela besimame: uhlobo-3',
+    '🤼🏽‍♀' => 'abashayisibhakela besimame: uhlobo-4',
+    '🤼🏾‍♀' => 'abashayisibhakela besimame: uhlobo-5',
+    '🤼🏿‍♀' => 'abashayisibhakela besimame: uhlobo-6',
+    '🤼🏻‍♂' => 'abashayisibhakela besilisa: uhlobo-1-2',
+    '🤼🏼‍♂' => 'abashayisibhakela besilisa: uhlobo-3',
+    '🤼🏽‍♂' => 'abashayisibhakela besilisa: uhlobo-4',
+    '🤼🏾‍♂' => 'abashayisibhakela besilisa: uhlobo-5',
+    '🤼🏿‍♂' => 'abashayisibhakela besilisa: uhlobo-6',
     '🤽🏻‍♂' => 'umdlalo webhola lasemanzini wowesilisa: uhlobo-1-2',
     '🤽🏼‍♂' => 'umdlalo webhola lasemanzini wowesilisa: uhlobo-3',
     '🤽🏽‍♂' => 'umdlalo webhola lasemanzini wowesilisa: uhlobo-4',
@@ -1317,6 +1462,7 @@
     '👩‍🦽' => 'umama osesitulweni sokuhanjiswa',
     '🏃‍♂' => 'indoda egijimayo',
     '🏃‍♀' => 'owesimame ogijimayo',
+    '🧑‍🩰' => 'ballet dancer',
     '👯‍♂' => 'amadoda asemcimbini',
     '👯‍♀' => 'abasemame abasemcimbini',
     '🧖‍♂' => 'owesilisa egunjini lestimu',
@@ -1898,6 +2044,11 @@
     '🕴🏽' => 'indoda egqoke isudu: uhlobo-4',
     '🕴🏾' => 'indoda egqoke isudu: uhlobo-5',
     '🕴🏿' => 'indoda egqoke isudu: uhlobo-6',
+    '👯🏻' => 'abantu abasemcimbini: uhlobo-1-2',
+    '👯🏼' => 'abantu abasemcimbini: uhlobo-3',
+    '👯🏽' => 'abantu abasemcimbini: uhlobo-4',
+    '👯🏾' => 'abantu abasemcimbini: uhlobo-5',
+    '👯🏿' => 'abantu abasemcimbini: uhlobo-6',
     '🧖🏻' => 'umuntu egumbini elinestimu: uhlobo-1-2',
     '🧖🏼' => 'umuntu egumbini elinestimu: uhlobo-3',
     '🧖🏽' => 'umuntu egumbini elinestimu: uhlobo-4',
@@ -1963,6 +2114,11 @@
     '🤸🏽' => 'isondo lekalishi: uhlobo-4',
     '🤸🏾' => 'isondo lekalishi: uhlobo-5',
     '🤸🏿' => 'isondo lekalishi: uhlobo-6',
+    '🤼🏻' => 'abashayi-sibhakela: uhlobo-1-2',
+    '🤼🏼' => 'abashayi-sibhakela: uhlobo-3',
+    '🤼🏽' => 'abashayi-sibhakela: uhlobo-4',
+    '🤼🏾' => 'abashayi-sibhakela: uhlobo-5',
+    '🤼🏿' => 'abashayi-sibhakela: uhlobo-6',
     '🤽🏻' => 'ukubhukuda: uhlobo-1-2',
     '🤽🏼' => 'ukubhukuda: uhlobo-3',
     '🤽🏽' => 'ukubhukuda: uhlobo-4',
@@ -2069,6 +2225,7 @@
     '🇨🇳' => 'ifulegi: i-China',
     '🇨🇴' => 'ifulegi: i-Colombia',
     '🇨🇵' => 'ifulegi: i-Clipperton Island',
+    '🇨🇶' => 'ifulegi: i-Sark',
     '🇨🇷' => 'ifulegi: i-Costa Rica',
     '🇨🇺' => 'ifulegi: i-Cuba',
     '🇨🇻' => 'ifulegi: i-Cape Verde',
@@ -2282,13 +2439,6 @@
     '🏽' => 'uhlobo-4',
     '🏾' => 'uhlobo-5',
     '🏿' => 'uhlobo-6',
-    '🪉' => 'harp',
-    '🪏' => 'shovel',
-    '🪾' => 'leafless tree',
-    '🫆' => 'fingerprint',
-    '🫜' => 'Iveji eliyingxabu',
-    '🫟' => 'splatter',
-    '🫩' => 'Ubuso obunezigobhe',
     '😀' => 'ubuso obusinekile',
     '😃' => 'ubuso obumoyizelayo obuvule umlomo',
     '😄' => 'ubuso obumoyizelayo obuvule umlomo bunamehlo ajabule',
@@ -2342,6 +2492,7 @@
     '😪' => 'ubuso obuzelayo',
     '🤤' => 'ukuhala',
     '😴' => 'ubuso obulalayo',
+    '🫩' => 'Ubuso obunezigobhe',
     '😷' => 'ubso obufake imaski yobuso kadokotela',
     '🤒' => 'ubuso obunesihlolakushisa',
     '🤕' => 'ubuso obufake ibhandishi',
@@ -2368,6 +2519,7 @@
     '😯' => 'ubuso obuthulisiwe',
     '😲' => 'ubuso obuthukile',
     '😳' => 'ubuso obumuncu',
+    '🫪' => 'ubuso obuhlanekezelwe',
     '🥺' => 'pleading face',
     '🥹' => 'face holding back tears',
     '😦' => 'ubuso obubiphile obuvule umlomo',
@@ -2439,6 +2591,7 @@
     '💋' => 'uphawu lokuqabula',
     '💯' => 'amaphuzu ayikhulu',
     '💢' => 'uphawu lokudinwa',
+    '🫯' => 'fight cloud',
     '💥' => 'ukushayisana',
     '💫' => 'inzululwane',
     '💦' => 'amaqabazi omjuluko',
@@ -2562,6 +2715,7 @@
     '🧞' => 'ijeni',
     '🧟' => 'isilwane',
     '🧌' => 'troll',
+    '🫈' => 'isidalwa esinoboya',
     '💆' => 'umuntu othola imasaji',
     '💇' => 'umuntu ogundayo',
     '🚶' => 'umuntu ohambayo',
@@ -2605,6 +2759,7 @@
     '🫂' => 'abantu abanganayo',
     '👪' => 'umndeni',
     '👣' => 'izinsalela zezinyawo',
+    '🫆' => 'fingerprint',
     '🦰' => 'izinwele ezibomvu',
     '🦱' => 'curly hair',
     '🦳' => 'izinwele ezimpunga',
@@ -2704,6 +2859,7 @@
     '🐳' => 'umkhomo ekhipha amanzi',
     '🐋' => 'umkhomo',
     '🐬' => 'ihlengethwa',
+    '🫍' => 'orca',
     '🦭' => 'i-seal',
     '🐟' => 'inhlanzi',
     '🐠' => 'ufishi',
@@ -2713,6 +2869,11 @@
     '🐚' => 'igobolondo elizungezile',
     '🪸' => 'i-coral',
     '🪼' => 'i-jellyfish',
+    '🦀' => 'inkalankala',
+    '🦞' => 'lobster',
+    '🦐' => 'imfanzi',
+    '🦑' => 'ingwane',
+    '🦪' => 'i-oyster',
     '🐌' => 'umnenke',
     '🦋' => 'uvemvane',
     '🐛' => 'isilokozane',
@@ -2757,6 +2918,7 @@
     '🪹' => 'isidleke esingenalutho',
     '🪺' => 'nest with eggs',
     '🍄' => 'ikhowe',
+    '🪾' => 'leafless tree',
     '🍇' => 'amagilebhisi',
     '🍈' => 'imeloni',
     '🍉' => 'ikhabe',
@@ -2793,6 +2955,7 @@
     '🌰' => 'ichestnut',
     '🫚' => 'ingxabu yejinja',
     '🫛' => 'i-pea pod',
+    '🫜' => 'Iveji eliyingxabu',
     '🍞' => 'ulofu',
     '🥐' => 'ibhanisi',
     '🥖' => 'isinkwa',
@@ -2844,11 +3007,6 @@
     '🥟' => 'idombolo',
     '🥠' => 'ikhekhe lenhlanhla',
     '🥡' => 'ibhokisi lokuthatha ngaphandle',
-    '🦀' => 'inkalankala',
-    '🦞' => 'lobster',
-    '🦐' => 'imfanzi',
-    '🦑' => 'ingwane',
-    '🦪' => 'i-oyster',
     '🍦' => 'u-ice cream othambile',
     '🍧' => 'i-shaved ice',
     '🍨' => 'u-ice cream',
@@ -2899,6 +3057,7 @@
     '🧭' => 'i-compass',
     '🏔' => 'intaba embethe iqhwa',
     '⛰' => 'intaba',
+    '🛘' => 'ukudilika komhlaba',
     '🌋' => 'intabamlilo',
     '🗻' => 'intaba ifuji',
     '🏕' => 'ukukhempa',
@@ -3259,16 +3418,18 @@
     '🎧' => 'ama-headphone',
     '📻' => 'umsakazo',
     '🎷' => 'imfiliji',
+    '🎺' => 'icilongo',
+    '🪊' => 'trombone',
     '🪗' => 'i-accordion',
     '🎸' => 'isigingci',
     '🎹' => 'ikhibhodi yomculo',
-    '🎺' => 'icilongo',
     '🎻' => 'ivayolini',
     '🪕' => 'i-banjo',
     '🥁' => 'idilamu',
     '🪘' => 'isigubhu eside',
     '🪇' => 'maracas',
     '🪈' => 'flute',
+    '🪉' => 'harp',
     '📱' => 'iselula',
     '📲' => 'iselula enomcibisholo',
     '☎' => 'ucingo',
@@ -3322,8 +3483,9 @@
     '📑' => 'ama-tabs okumaka ibhuku',
     '🔖' => 'ibhuku lokumaka',
     '🏷' => 'ilebula',
-    '💰' => 'isaka lemali',
     '🪙' => 'imali',
+    '💰' => 'isaka lemali',
+    '🪎' => 'treasure chest',
     '💴' => 'imali eyiyeni',
     '💵' => 'imali eyidola',
     '💶' => 'imali yase-euro',
@@ -3406,6 +3568,7 @@
     '🧰' => 'ibhokisi lamathuluzi',
     '🧲' => 'umayibuthe',
     '🪜' => 'ilada',
+    '🪏' => 'shovel',
     '⚗' => 'i-alambic',
     '🧪' => 'ishubhu lokuhlola',
     '🧫' => 'petri dish',
@@ -3589,6 +3752,7 @@
     '✴' => 'inkanyezi ecije kayisishayagalombili',
     '❇' => 'ukubhanyaza',
     '™' => 'uphawu lokuhweba',
+    '🫟' => 'splatter',
     '🔠' => 'ukufaka uhlamvu olukhulu lwesilatini',
     '🔡' => 'ukufaka uhlamvu oluncane lwesilatini',
     '🔢' => 'izinombolo ezifakiwe',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/slack-emoji.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/slack-emoji.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/slack-emoji.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/transliterator/emoji/slack-emoji.php	2026-05-20 10:56:49.000000000 +0200
@@ -323,6 +323,7 @@
     ':flag-cn:' => '🇨🇳',
     ':flag-co:' => '🇨🇴',
     ':flag-cp:' => '🇨🇵',
+    ':flag-sark:' => '🇨🇶',
     ':flag-cr:' => '🇨🇷',
     ':flag-cu:' => '🇨🇺',
     ':flag-cv:' => '🇨🇻',
@@ -1816,6 +1817,8 @@
     ':nesting_dolls:' => '🪆',
     ':maracas:' => '🪇',
     ':flute:' => '🪈',
+    ':harp:' => '🪉',
+    ':shovel:' => '🪏',
     ':ringed_planet:' => '🪐',
     ':chair:' => '🪑',
     ':razor:' => '🪒',
@@ -1862,6 +1865,7 @@
     ':hyacinth:' => '🪻',
     ':jellyfish:' => '🪼',
     ':wing:' => '🪽',
+    ':leafless_tree:' => '🪾',
     ':goose:' => '🪿',
     ':anatomical_heart:' => '🫀',
     ':lungs:' => '🫁',
@@ -1869,6 +1873,7 @@
     ':pregnant_man:' => '🫃',
     ':pregnant_person:' => '🫄',
     ':person_with_crown:' => '🫅',
+    ':fingerprint:' => '🫆',
     ':moose:' => '🫎',
     ':donkey:' => '🫏',
     ':blueberries:' => '🫐',
@@ -1883,6 +1888,8 @@
     ':jar:' => '🫙',
     ':ginger_root:' => '🫚',
     ':pea_pod:' => '🫛',
+    ':root_vegetable:' => '🫜',
+    ':splatter:' => '🫟',
     ':melting_face:' => '🫠',
     ':saluting_face:' => '🫡',
     ':face_with_open_eyes_and_hand_over_mouth:' => '🫢',
@@ -1892,6 +1899,7 @@
     ':biting_lip:' => '🫦',
     ':bubbles:' => '🫧',
     ':shaking_face:' => '🫨',
+    ':face_with_bags_under_eyes:' => '🫩',
     ':hand_with_index_finger_and_thumb_crossed:' => '🫰',
     ':rightwards_hand:' => '🫱',
     ':leftwards_hand:' => '🫲',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/version.txt symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/version.txt
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/data/version.txt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/data/version.txt	2026-05-20 10:56:49.000000000 +0200
@@ -1 +1 @@
-77.1
+78.3
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/emoji/build.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/emoji/build.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/emoji/build.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/emoji/build.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
             // 263A FE0F    ; fully-qualified     # ☺️ E0.6 smiling face
             preg_match('{^(?<codePoints>[\w ]+) +; [\w-]+ +# (?<emoji>.+) E\d+\.\d+ ?(?<name>.+)$}Uu', $line, $matches);
             if (!$matches) {
-                throw new \DomainException("Could not parse line: \"$line\".");
+                throw new DomainException("Could not parse line: \"$line\".");
             }
 
             $codePoints = strtolower(trim($matches['codePoints']));
@@ -167,7 +167,7 @@
             $emojiCodePoints = str_replace('-', ' ', strtolower($data['unified']));
             $shortCode = $data['short_name'];
             $shortCodes = $data['short_names'];
-            $shortCodes = array_map(fn ($v) => ":$v:", $shortCodes);
+            $shortCodes = array_map(static fn ($v) => ":$v:", $shortCodes);
 
             if (!array_key_exists($emojiCodePoints, $emojisCodePoints)) {
                 $ignored[] = [
@@ -258,3 +258,5 @@
         return $maps;
     }
 }
+
+// @php-cs-fixer-ignore psr_autoloading
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/emoji/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/emoji/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Resources/emoji/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Resources/emoji/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -4,20 +4,21 @@
             "type": "package",
             "package": {
                 "name": "unicode-org/cldr",
-                "version": "2022.06.29",
+                "version": "2025.10.29",
                 "source": {
                     "type": "git",
                     "url": "https://github.com/unicode-org/cldr",
-                    "reference": "production/2024-09-04-2208z"
+                    "reference": "release-48"
                 }
             }
         }
     ],
     "minimum-stability": "dev",
+    "prefer-stable": true,
     "require": {
-        "symfony/filesystem": "^6.4|^7.0",
-        "symfony/finder": "^6.4|^7.0",
-        "symfony/var-exporter": "^6.4|^7.0",
+        "symfony/filesystem": "^6.4||^7.3||^8.0",
+        "symfony/finder": "^6.4||^7.3||^8.0",
+        "symfony/var-exporter": "^6.4||^7.3||^8.0",
         "unicode-org/cldr": "*"
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/CountriesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/CountriesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/CountriesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/CountriesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -527,7 +527,6 @@
     ];
 
     private const ALPHA2_TO_NUMERIC = [
-        'AA' => '958',
         'AD' => '020',
         'AE' => '784',
         'AF' => '004',
@@ -715,18 +714,6 @@
         'PW' => '585',
         'PY' => '600',
         'QA' => '634',
-        'QM' => '959',
-        'QN' => '960',
-        'QP' => '962',
-        'QQ' => '963',
-        'QR' => '964',
-        'QS' => '965',
-        'QT' => '966',
-        'QV' => '968',
-        'QW' => '969',
-        'QX' => '970',
-        'QY' => '971',
-        'QZ' => '972',
         'RE' => '638',
         'RO' => '642',
         'RS' => '688',
@@ -784,29 +771,6 @@
         'VU' => '548',
         'WF' => '876',
         'WS' => '882',
-        'XC' => '975',
-        'XD' => '976',
-        'XE' => '977',
-        'XF' => '978',
-        'XG' => '979',
-        'XH' => '980',
-        'XI' => '981',
-        'XJ' => '982',
-        'XL' => '984',
-        'XM' => '985',
-        'XN' => '986',
-        'XO' => '987',
-        'XP' => '988',
-        'XQ' => '989',
-        'XR' => '990',
-        'XS' => '991',
-        'XT' => '992',
-        'XU' => '993',
-        'XV' => '994',
-        'XW' => '995',
-        'XX' => '996',
-        'XY' => '997',
-        'XZ' => '998',
         'YE' => '887',
         'YT' => '175',
         'ZA' => '710',
@@ -814,6 +778,19 @@
         'ZW' => '716',
     ];
 
+    public function testAllGettersGenerateTheSameDataSetCount()
+    {
+        $alpha2Count = \count(Countries::getCountryCodes());
+        $alpha3Count = \count(Countries::getAlpha3Codes());
+        $numericCodesCount = \count(Countries::getNumericCodes());
+        $namesCount = \count(Countries::getNames());
+
+        // we base all on Name count since it is the first to be generated
+        $this->assertEquals($namesCount, $alpha2Count, 'Alpha 2 count does not match');
+        $this->assertEquals($namesCount, $alpha3Count, 'Alpha 3 count does not match');
+        $this->assertEquals($namesCount, $numericCodesCount, 'Numeric codes count does not match');
+    }
+
     public function testGetCountryCodes()
     {
         $this->assertSame(self::COUNTRIES, Countries::getCountryCodes());
@@ -992,7 +969,7 @@
     public function testNumericCodeExists()
     {
         $this->assertTrue(Countries::numericCodeExists('250'));
-        $this->assertTrue(Countries::numericCodeExists('982'));
+        $this->assertTrue(Countries::numericCodeExists('008'));
         $this->assertTrue(Countries::numericCodeExists('716'));
         $this->assertTrue(Countries::numericCodeExists('036'));
         $this->assertFalse(Countries::numericCodeExists('667'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/CurrenciesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/CurrenciesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/CurrenciesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/CurrenciesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -455,6 +455,7 @@
         'NPR' => 524,
         'NLG' => 528,
         'ANG' => 532,
+        'XCG' => 532,
         'AWG' => 533,
         'VUV' => 548,
         'NZD' => 554,
@@ -697,7 +698,7 @@
     public static function provideCurrencies()
     {
         return array_map(
-            fn ($currency) => [$currency],
+            static fn ($currency) => [$currency],
             self::CURRENCIES
         );
     }
@@ -724,7 +725,7 @@
     public static function provideCurrenciesWithNumericEquivalent()
     {
         return array_map(
-            fn ($value) => [$value],
+            static fn ($value) => [$value],
             array_keys(self::ALPHA3_TO_NUMERIC)
         );
     }
@@ -740,7 +741,7 @@
     public static function provideCurrenciesWithoutNumericEquivalent()
     {
         return array_map(
-            fn ($value) => [$value],
+            static fn ($value) => [$value],
             array_diff(self::CURRENCIES, array_keys(self::ALPHA3_TO_NUMERIC))
         );
     }
@@ -759,7 +760,7 @@
         $numericToAlpha3 = self::getNumericToAlpha3Mapping();
 
         return array_map(
-            fn ($numeric, $alpha3) => [$numeric, $alpha3],
+            static fn ($numeric, $alpha3) => [$numeric, $alpha3],
             array_keys($numericToAlpha3),
             $numericToAlpha3
         );
@@ -785,7 +786,7 @@
         $invalidNumericCodes = array_diff(range(0, 1000), $validNumericCodes);
 
         return array_map(
-            fn ($value) => [$value],
+            static fn ($value) => [$value],
             $invalidNumericCodes
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Reader/BundleEntryReaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Reader/BundleEntryReaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Reader/BundleEntryReaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Reader/BundleEntryReaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Intl\Tests\Data\Bundle\Reader;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Intl\Data\Bundle\Reader\BundleEntryReader;
 use Symfony\Component\Intl\Data\Bundle\Reader\BundleEntryReaderInterface;
@@ -25,9 +24,6 @@
 {
     private const RES_DIR = '/res/dir';
 
-    private BundleEntryReader $reader;
-    private MockObject&BundleEntryReaderInterface $readerImpl;
-
     private const DATA = [
         'Entries' => [
             'Foo' => 'Bar',
@@ -57,25 +53,21 @@
         'Foo' => 'Bar',
     ];
 
-    protected function setUp(): void
-    {
-        $this->readerImpl = $this->createMock(BundleEntryReaderInterface::class);
-        $this->reader = new BundleEntryReader($this->readerImpl);
-    }
-
     public function testForwardCallToRead()
     {
-        $this->readerImpl->expects($this->once())
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+        $readerImpl->expects($this->once())
             ->method('read')
             ->with(self::RES_DIR, 'root')
             ->willReturn(self::DATA);
 
-        $this->assertSame(self::DATA, $this->reader->read(self::RES_DIR, 'root'));
+        $this->assertSame(self::DATA, $this->getReader($readerImpl)->read(self::RES_DIR, 'root'));
     }
 
     public function testReadEntireDataFileIfNoIndicesGiven()
     {
-        $this->readerImpl->expects($this->exactly(2))
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+        $readerImpl->expects($this->exactly(2))
             ->method('read')
             ->willReturnCallback(function (...$args) {
                 static $series = [
@@ -90,33 +82,36 @@
             })
         ;
 
-        $this->assertSame(self::MERGED_DATA, $this->reader->readEntry(self::RES_DIR, 'en', []));
+        $this->assertSame(self::MERGED_DATA, $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en', []));
     }
 
     public function testReadExistingEntry()
     {
-        $this->readerImpl->expects($this->once())
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+        $readerImpl->expects($this->once())
             ->method('read')
             ->with(self::RES_DIR, 'root')
             ->willReturn(self::DATA);
 
-        $this->assertSame('Bar', $this->reader->readEntry(self::RES_DIR, 'root', ['Entries', 'Foo']));
+        $this->assertSame('Bar', $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'root', ['Entries', 'Foo']));
     }
 
     public function testReadNonExistingEntry()
     {
         $this->expectException(MissingResourceException::class);
-        $this->readerImpl->expects($this->once())
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+        $readerImpl->expects($this->once())
             ->method('read')
             ->with(self::RES_DIR, 'root')
             ->willReturn(self::DATA);
 
-        $this->reader->readEntry(self::RES_DIR, 'root', ['Entries', 'NonExisting']);
+        $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'root', ['Entries', 'NonExisting']);
     }
 
     public function testFallbackIfEntryDoesNotExist()
     {
-        $this->readerImpl->expects($this->exactly(2))
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+        $readerImpl->expects($this->exactly(2))
             ->method('read')
             ->willReturnCallback(function (...$args) {
                 static $series = [
@@ -131,18 +126,19 @@
             })
         ;
 
-        $this->assertSame('Lah', $this->reader->readEntry(self::RES_DIR, 'en_GB', ['Entries', 'Bam']));
+        $this->assertSame('Lah', $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en_GB', ['Entries', 'Bam']));
     }
 
     public function testDontFallbackIfEntryDoesNotExistAndFallbackDisabled()
     {
         $this->expectException(MissingResourceException::class);
-        $this->readerImpl->expects($this->once())
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+        $readerImpl->expects($this->once())
             ->method('read')
             ->with(self::RES_DIR, 'en_GB')
             ->willReturn(self::DATA);
 
-        $this->reader->readEntry(self::RES_DIR, 'en_GB', ['Entries', 'Bam'], false);
+        $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en_GB', ['Entries', 'Bam'], false);
     }
 
     public function testFallbackIfLocaleDoesNotExist()
@@ -153,7 +149,8 @@
             [[self::RES_DIR, 'en'], self::FALLBACK_DATA],
         ];
 
-        $this->readerImpl->expects($this->exactly(2))
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+        $readerImpl->expects($this->exactly(2))
             ->method('read')
             ->willReturnCallback(function (...$args) use (&$series) {
                 [$expectedArgs, $return] = array_shift($series);
@@ -167,18 +164,19 @@
             })
         ;
 
-        $this->assertSame('Lah', $this->reader->readEntry(self::RES_DIR, 'en_GB', ['Entries', 'Bam']));
+        $this->assertSame('Lah', $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en_GB', ['Entries', 'Bam']));
     }
 
     public function testDontFallbackIfLocaleDoesNotExistAndFallbackDisabled()
     {
         $this->expectException(MissingResourceException::class);
-        $this->readerImpl->expects($this->once())
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+        $readerImpl->expects($this->once())
             ->method('read')
             ->with(self::RES_DIR, 'en_GB')
             ->willThrowException(new ResourceBundleNotFoundException());
 
-        $this->reader->readEntry(self::RES_DIR, 'en_GB', ['Entries', 'Bam'], false);
+        $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en_GB', ['Entries', 'Bam'], false);
     }
 
     public static function provideMergeableValues()
@@ -199,13 +197,15 @@
      */
     public function testMergeDataWithFallbackData($childData, $parentData, $result)
     {
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+
         if (null === $childData || \is_array($childData)) {
             $series = [
                 [[self::RES_DIR, 'en'], $childData],
                 [[self::RES_DIR, 'root'], $parentData],
             ];
 
-            $this->readerImpl->expects($this->exactly(2))
+            $readerImpl->expects($this->exactly(2))
                 ->method('read')
                 ->willReturnCallback(function (...$args) use (&$series) {
                     [$expectedArgs, $return] = array_shift($series);
@@ -215,13 +215,13 @@
                 })
             ;
         } else {
-            $this->readerImpl->expects($this->once())
+            $readerImpl->expects($this->once())
                 ->method('read')
                 ->with(self::RES_DIR, 'en')
                 ->willReturn($childData);
         }
 
-        $this->assertSame($result, $this->reader->readEntry(self::RES_DIR, 'en', [], true));
+        $this->assertSame($result, $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en', [], true));
     }
 
     /**
@@ -229,12 +229,13 @@
      */
     public function testDontMergeDataIfFallbackDisabled($childData, $parentData, $result)
     {
-        $this->readerImpl->expects($this->once())
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+        $readerImpl->expects($this->once())
             ->method('read')
             ->with(self::RES_DIR, 'en_GB')
             ->willReturn($childData);
 
-        $this->assertSame($childData, $this->reader->readEntry(self::RES_DIR, 'en_GB', [], false));
+        $this->assertSame($childData, $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en_GB', [], false));
     }
 
     /**
@@ -242,13 +243,15 @@
      */
     public function testMergeExistingEntryWithExistingFallbackEntry($childData, $parentData, $result)
     {
+        $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+
         if (null === $childData || \is_array($childData)) {
             $series = [
                 [[self::RES_DIR, 'en'], ['Foo' => ['Bar' => $childData]]],
                 [[self::RES_DIR, 'root'], ['Foo' => ['Bar' => $parentData]]],
             ];
 
-            $this->readerImpl->expects($this->exactly(2))
+            $readerImpl->expects($this->exactly(2))
                 ->method('read')
                 ->willReturnCallback(function (...$args) use (&$series) {
                     [$expectedArgs, $return] = array_shift($series);
@@ -258,13 +261,13 @@
                 })
             ;
         } else {
-            $this->readerImpl->expects($this->once())
+            $readerImpl->expects($this->once())
                 ->method('read')
                 ->with(self::RES_DIR, 'en')
                 ->willReturn(['Foo' => ['Bar' => $childData]]);
         }
 
-        $this->assertSame($result, $this->reader->readEntry(self::RES_DIR, 'en', ['Foo', 'Bar'], true));
+        $this->assertSame($result, $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en', ['Foo', 'Bar'], true));
     }
 
     /**
@@ -277,16 +280,17 @@
             [[self::RES_DIR, 'en'], ['Foo' => ['Bar' => $parentData]]],
         ];
 
-        $this->readerImpl
+        $readerImpl = $this->createStub(BundleEntryReaderInterface::class);
+        $readerImpl
             ->method('read')
-            ->willReturnCallback(function (...$args) use (&$series) {
+            ->willReturnCallback(static function (...$args) use (&$series) {
                 [$expectedArgs, $return] = array_shift($series);
 
                 return $expectedArgs === $args ? $return : null;
             })
         ;
 
-        $this->assertSame($parentData, $this->reader->readEntry(self::RES_DIR, 'en_GB', ['Foo', 'Bar'], true));
+        $this->assertSame($parentData, $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en_GB', ['Foo', 'Bar'], true));
     }
 
     /**
@@ -300,31 +304,34 @@
                 [[self::RES_DIR, 'en'], ['Foo' => 'Bar']],
             ];
 
-            $this->readerImpl
+            $readerImpl = $this->createStub(BundleEntryReaderInterface::class);
+            $readerImpl
                 ->method('read')
-                ->willReturnCallback(function (...$args) use (&$series) {
+                ->willReturnCallback(static function (...$args) use (&$series) {
                     [$expectedArgs, $return] = array_shift($series);
 
                     return $expectedArgs === $args ? $return : null;
                 })
             ;
         } else {
-            $this->readerImpl->expects($this->once())
+            $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+            $readerImpl->expects($this->once())
                 ->method('read')
                 ->with(self::RES_DIR, 'en_GB')
                 ->willReturn(['Foo' => ['Bar' => $childData]]);
         }
 
-        $this->assertSame($childData, $this->reader->readEntry(self::RES_DIR, 'en_GB', ['Foo', 'Bar'], true));
+        $this->assertSame($childData, $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en_GB', ['Foo', 'Bar'], true));
     }
 
     public function testFailIfEntryFoundNeitherInParentNorChild()
     {
         $this->expectException(MissingResourceException::class);
 
-        $this->readerImpl
+        $readerImpl = $this->createStub(BundleEntryReaderInterface::class);
+        $readerImpl
             ->method('read')
-            ->willReturnCallback(function (...$args) {
+            ->willReturnCallback(static function (...$args) {
                 static $series = [
                     [[self::RES_DIR, 'en_GB'], ['Foo' => 'Baz']],
                     [[self::RES_DIR, 'en'], ['Foo' => 'Bar']],
@@ -336,7 +343,7 @@
             })
         ;
 
-        $this->reader->readEntry(self::RES_DIR, 'en_GB', ['Foo', 'Bar'], true);
+        $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en_GB', ['Foo', 'Bar'], true);
     }
 
     /**
@@ -353,22 +360,24 @@
                 [[self::RES_DIR, 'en'], ['Foo' => ['Bar' => $parentData]]],
             ];
 
-            $this->readerImpl
+            $readerImpl = $this->createStub(BundleEntryReaderInterface::class);
+            $readerImpl
                 ->method('read')
-                ->willReturnCallback(function (...$args) use (&$series) {
+                ->willReturnCallback(static function (...$args) use (&$series) {
                     [$expectedArgs, $return] = array_shift($series);
 
                     return $expectedArgs === $args ? $return : null;
                 })
             ;
         } else {
-            $this->readerImpl->expects($this->once())
+            $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+            $readerImpl->expects($this->once())
                 ->method('read')
                 ->with(self::RES_DIR, 'en_GB')
                 ->willReturn(['Foo' => ['Bar' => $childData]]);
         }
 
-        $this->assertSame($result, $this->reader->readEntry(self::RES_DIR, 'en_GB', ['Foo', 'Bar'], true));
+        $this->assertSame($result, $this->getReader($readerImpl)->readEntry(self::RES_DIR, 'en_GB', ['Foo', 'Bar'], true));
     }
 
     /**
@@ -376,8 +385,6 @@
      */
     public function testFollowLocaleAliases($childData, $parentData, $result)
     {
-        $this->reader->setLocaleAliases(['mo' => 'ro_MD']);
-
         if (null === $childData || \is_array($childData)) {
             $series = [
                 [[self::RES_DIR, 'ro_MD'], ['Foo' => ['Bar' => $childData]]],
@@ -385,21 +392,31 @@
                 [[self::RES_DIR, 'ro'], ['Foo' => ['Bar' => $parentData]]],
             ];
 
-            $this->readerImpl
+            $readerImpl = $this->createStub(BundleEntryReaderInterface::class);
+            $readerImpl
                 ->method('read')
-                ->willReturnCallback(function (...$args) use (&$series) {
+                ->willReturnCallback(static function (...$args) use (&$series) {
                     [$expectedArgs, $return] = array_shift($series);
 
                     return $expectedArgs === $args ? $return : null;
                 })
             ;
         } else {
-            $this->readerImpl->expects($this->once())
+            $readerImpl = $this->createMock(BundleEntryReaderInterface::class);
+            $readerImpl->expects($this->once())
                 ->method('read')
                 ->with(self::RES_DIR, 'ro_MD')
                 ->willReturn(['Foo' => ['Bar' => $childData]]);
         }
 
-        $this->assertSame($result, $this->reader->readEntry(self::RES_DIR, 'mo', ['Foo', 'Bar'], true));
+        $reader = $this->getReader($readerImpl);
+        $reader->setLocaleAliases(['mo' => 'ro_MD']);
+
+        $this->assertSame($result, $reader->readEntry(self::RES_DIR, 'mo', ['Foo', 'Bar'], true));
+    }
+
+    private function getReader(?BundleEntryReaderInterface $entryReader = null): BundleEntryReader
+    {
+        return new BundleEntryReader($entryReader ?? $this->createStub(BundleEntryReaderInterface::class));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/JsonBundleWriterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/JsonBundleWriterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/JsonBundleWriterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/JsonBundleWriterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
     protected function setUp(): void
     {
         $this->writer = new JsonBundleWriter();
-        $this->directory = sys_get_temp_dir().'/JsonBundleWriterTest/'.mt_rand(1000, 9999);
+        $this->directory = sys_get_temp_dir().'/JsonBundleWriterTest/'.random_int(1000, 9999);
         $this->filesystem = new Filesystem();
 
         $this->filesystem->mkdir($this->directory);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/PhpBundleWriterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/PhpBundleWriterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/PhpBundleWriterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/PhpBundleWriterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
     protected function setUp(): void
     {
         $this->writer = new PhpBundleWriter();
-        $this->directory = sys_get_temp_dir().'/PhpBundleWriterTest/'.mt_rand(1000, 9999);
+        $this->directory = sys_get_temp_dir().'/PhpBundleWriterTest/'.random_int(1000, 9999);
         $this->filesystem = new Filesystem();
 
         $this->filesystem->mkdir($this->directory);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/TextBundleWriterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/TextBundleWriterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/TextBundleWriterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Data/Bundle/Writer/TextBundleWriterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
     protected function setUp(): void
     {
         $this->writer = new TextBundleWriter();
-        $this->directory = sys_get_temp_dir().'/TextBundleWriterTest/'.mt_rand(1000, 9999);
+        $this->directory = sys_get_temp_dir().'/TextBundleWriterTest/'.random_int(1000, 9999);
         $this->filesystem = new Filesystem();
 
         $this->filesystem->mkdir($this->directory);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Data/Util/LocaleScannerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Data/Util/LocaleScannerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Data/Util/LocaleScannerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Data/Util/LocaleScannerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
 
     protected function setUp(): void
     {
-        $this->directory = sys_get_temp_dir().'/LocaleScannerTest/'.mt_rand(1000, 9999);
+        $this->directory = sys_get_temp_dir().'/LocaleScannerTest/'.random_int(1000, 9999);
         $this->filesystem = new Filesystem();
         $this->scanner = new LocaleScanner();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/LanguagesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/LanguagesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/LanguagesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/LanguagesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -292,6 +292,7 @@
         'kcg',
         'kde',
         'kea',
+        'kek',
         'ken',
         'kfo',
         'kg',
@@ -407,6 +408,7 @@
         'mwl',
         'mwr',
         'mwv',
+        'mww',
         'my',
         'mye',
         'myv',
@@ -559,6 +561,7 @@
         'suk',
         'sus',
         'sux',
+        'suz',
         'sv',
         'sw',
         'swb',
@@ -939,6 +942,7 @@
         'kcg',
         'kde',
         'kea',
+        'kek',
         'ken',
         'kfo',
         'kgp',
@@ -1050,6 +1054,7 @@
         'mwl',
         'mwr',
         'mwv',
+        'mww',
         'mya',
         'mye',
         'myv',
@@ -1202,6 +1207,7 @@
         'sun',
         'sus',
         'sux',
+        'suz',
         'swa',
         'swb',
         'swc',
@@ -1788,7 +1794,7 @@
     public static function provideLanguagesWithAlpha3Equivalent()
     {
         return array_map(
-            fn ($value) => [$value],
+            static fn ($value) => [$value],
             array_keys(self::ALPHA2_TO_ALPHA3)
         );
     }
@@ -1804,7 +1810,7 @@
     public static function provideLanguagesWithoutAlpha3Equivalent()
     {
         return array_map(
-            fn ($value) => [$value],
+            static fn ($value) => [$value],
             array_diff(self::LANGUAGES, array_keys(self::ALPHA2_TO_ALPHA3))
         );
     }
@@ -1838,7 +1844,7 @@
     public static function provideLanguagesWithAlpha2Equivalent()
     {
         return array_map(
-            fn ($value) => [$value],
+            static fn ($value) => [$value],
             array_keys(self::ALPHA3_TO_ALPHA2)
         );
     }
@@ -1854,7 +1860,7 @@
     public static function provideLanguagesWithoutAlpha2Equivalent()
     {
         return array_map(
-            fn ($value) => [$value],
+            static fn ($value) => [$value],
             array_diff(self::ALPHA3_CODES, array_keys(self::ALPHA3_TO_ALPHA2))
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/ResourceBundleTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/ResourceBundleTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/ResourceBundleTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/ResourceBundleTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,6 +66,8 @@
         'az_Cyrl_AZ',
         'az_Latn',
         'az_Latn_AZ',
+        'ba',
+        'ba_RU',
         'be',
         'be_BY',
         'bg',
@@ -146,6 +148,7 @@
         'en_DG',
         'en_DK',
         'en_DM',
+        'en_EE',
         'en_ER',
         'en_ES',
         'en_FI',
@@ -155,6 +158,7 @@
         'en_FR',
         'en_GB',
         'en_GD',
+        'en_GE',
         'en_GG',
         'en_GH',
         'en_GI',
@@ -173,6 +177,7 @@
         'en_IT',
         'en_JE',
         'en_JM',
+        'en_JP',
         'en_KE',
         'en_KI',
         'en_KN',
@@ -180,6 +185,8 @@
         'en_LC',
         'en_LR',
         'en_LS',
+        'en_LT',
+        'en_LV',
         'en_MG',
         'en_MH',
         'en_MO',
@@ -228,6 +235,7 @@
         'en_TT',
         'en_TV',
         'en_TZ',
+        'en_UA',
         'en_UG',
         'en_UM',
         'en_US',
@@ -422,6 +430,8 @@
         'ki',
         'ki_KE',
         'kk',
+        'kk_Arab',
+        'kk_Arab_CN',
         'kk_Cyrl',
         'kk_Cyrl_KZ',
         'kk_KZ',
@@ -442,6 +452,11 @@
         'ks_Deva_IN',
         'ks_IN',
         'ku',
+        'ku_Latn',
+        'ku_Latn_IQ',
+        'ku_Latn_SY',
+        'ku_Latn_TR',
+        'ku_SY',
         'ku_TR',
         'kw',
         'kw_GB',
@@ -731,6 +746,7 @@
         'iw' => 'he',
         'iw_IL' => 'he_IL',
         'ks_IN' => 'ks_Arab_IN',
+        'ku_SY' => 'ku_Latn_SY',
         'mo' => 'ro',
         'no_NO' => 'no',
         'no_NO_NY' => 'nn_NO',
@@ -782,7 +798,7 @@
     public static function provideLocales()
     {
         return array_map(
-            fn ($locale) => [$locale],
+            static fn ($locale) => [$locale],
             static::getLocales()
         );
     }
@@ -790,7 +806,7 @@
     public static function provideLocaleAliases()
     {
         return array_map(
-            fn ($alias, $ofLocale) => [$alias, $ofLocale],
+            static fn ($alias, $ofLocale) => [$alias, $ofLocale],
             array_keys(static::getLocaleAliases()),
             static::getLocaleAliases()
         );
@@ -799,7 +815,7 @@
     public static function provideRootLocales()
     {
         return array_map(
-            fn ($locale) => [$locale],
+            static fn ($locale) => [$locale],
             static::getRootLocales()
         );
     }
@@ -817,7 +833,7 @@
     protected static function getRootLocales()
     {
         if (null === self::$rootLocales) {
-            self::$rootLocales = array_filter(static::getLocales(), fn ($locale) => // no locales for which fallback is possible (e.g "en_GB")
+            self::$rootLocales = array_filter(static::getLocales(), static fn ($locale) => // no locales for which fallback is possible (e.g "en_GB")
 !str_contains($locale, '_'));
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/ScriptsTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/ScriptsTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/ScriptsTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/ScriptsTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,6 +37,7 @@
         'Bass',
         'Batk',
         'Beng',
+        'Berf',
         'Bhks',
         'Blis',
         'Bopo',
@@ -181,6 +182,7 @@
         'Shaw',
         'Shrd',
         'Sidd',
+        'Sidt',
         'Sind',
         'Sinh',
         'Sogd',
@@ -201,6 +203,7 @@
         'Taml',
         'Tang',
         'Tavt',
+        'Tayo',
         'Telu',
         'Teng',
         'Tfng',
@@ -211,6 +214,7 @@
         'Tirh',
         'Tnsa',
         'Todr',
+        'Tols',
         'Toto',
         'Tutg',
         'Ugar',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/TimezonesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/TimezonesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/TimezonesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/TimezonesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,6 +28,7 @@
         'Africa/Accra',
         'Africa/Addis_Ababa',
         'Africa/Algiers',
+        'Africa/Asmara',
         'Africa/Asmera',
         'Africa/Bamako',
         'Africa/Bangui',
@@ -81,7 +82,12 @@
         'America/Anguilla',
         'America/Antigua',
         'America/Araguaina',
+        'America/Argentina/Buenos_Aires',
+        'America/Argentina/Catamarca',
+        'America/Argentina/Cordoba',
+        'America/Argentina/Jujuy',
         'America/Argentina/La_Rioja',
+        'America/Argentina/Mendoza',
         'America/Argentina/Rio_Gallegos',
         'America/Argentina/Salta',
         'America/Argentina/San_Juan',
@@ -90,6 +96,7 @@
         'America/Argentina/Ushuaia',
         'America/Aruba',
         'America/Asuncion',
+        'America/Atikokan',
         'America/Bahia',
         'America/Bahia_Banderas',
         'America/Barbados',
@@ -113,6 +120,7 @@
         'America/Coral_Harbour',
         'America/Cordoba',
         'America/Costa_Rica',
+        'America/Coyhaique',
         'America/Creston',
         'America/Cuiaba',
         'America/Curacao',
@@ -139,6 +147,7 @@
         'America/Halifax',
         'America/Havana',
         'America/Hermosillo',
+        'America/Indiana/Indianapolis',
         'America/Indiana/Knox',
         'America/Indiana/Marengo',
         'America/Indiana/Petersburg',
@@ -152,6 +161,7 @@
         'America/Jamaica',
         'America/Jujuy',
         'America/Juneau',
+        'America/Kentucky/Louisville',
         'America/Kentucky/Monticello',
         'America/Kralendijk',
         'America/La_Paz',
@@ -183,6 +193,7 @@
         'America/North_Dakota/Beulah',
         'America/North_Dakota/Center',
         'America/North_Dakota/New_Salem',
+        'America/Nuuk',
         'America/Ojinaga',
         'America/Panama',
         'America/Paramaribo',
@@ -258,6 +269,7 @@
         'Asia/Famagusta',
         'Asia/Gaza',
         'Asia/Hebron',
+        'Asia/Ho_Chi_Minh',
         'Asia/Hong_Kong',
         'Asia/Hovd',
         'Asia/Irkutsk',
@@ -267,8 +279,10 @@
         'Asia/Kabul',
         'Asia/Kamchatka',
         'Asia/Karachi',
+        'Asia/Kathmandu',
         'Asia/Katmandu',
         'Asia/Khandyga',
+        'Asia/Kolkata',
         'Asia/Krasnoyarsk',
         'Asia/Kuala_Lumpur',
         'Asia/Kuching',
@@ -311,6 +325,7 @@
         'Asia/Vientiane',
         'Asia/Vladivostok',
         'Asia/Yakutsk',
+        'Asia/Yangon',
         'Asia/Yekaterinburg',
         'Asia/Yerevan',
         'Atlantic/Azores',
@@ -318,6 +333,7 @@
         'Atlantic/Canary',
         'Atlantic/Cape_Verde',
         'Atlantic/Faeroe',
+        'Atlantic/Faroe',
         'Atlantic/Madeira',
         'Atlantic/Reykjavik',
         'Atlantic/South_Georgia',
@@ -359,6 +375,7 @@
         'Europe/Kaliningrad',
         'Europe/Kiev',
         'Europe/Kirov',
+        'Europe/Kyiv',
         'Europe/Lisbon',
         'Europe/Ljubljana',
         'Europe/London',
@@ -409,6 +426,7 @@
         'Pacific/Auckland',
         'Pacific/Bougainville',
         'Pacific/Chatham',
+        'Pacific/Chuuk',
         'Pacific/Easter',
         'Pacific/Efate',
         'Pacific/Enderbury',
@@ -420,6 +438,7 @@
         'Pacific/Guadalcanal',
         'Pacific/Guam',
         'Pacific/Honolulu',
+        'Pacific/Kanton',
         'Pacific/Kiritimati',
         'Pacific/Kosrae',
         'Pacific/Kwajalein',
@@ -433,6 +452,7 @@
         'Pacific/Pago_Pago',
         'Pacific/Palau',
         'Pacific/Pitcairn',
+        'Pacific/Pohnpei',
         'Pacific/Ponape',
         'Pacific/Port_Moresby',
         'Pacific/Rarotonga',
@@ -618,7 +638,7 @@
         try {
             new \DateTimeZone($timezone);
         } catch (\Exception $e) {
-           $this->markTestSkipped(sprintf('The timezone "%s" is not available.', $timezone));
+            $this->markTestSkipped(\sprintf('The timezone "%s" is not available.', $timezone));
         }
 
         // ensure each timezone identifier has a corresponding GMT offset
@@ -649,7 +669,7 @@
 
     public static function provideTimezones(): iterable
     {
-        return array_map(fn ($timezone) => [$timezone], self::ZONES);
+        return array_map(static fn ($timezone) => [$timezone], self::ZONES);
     }
 
     /**
@@ -665,7 +685,7 @@
 
     public static function provideCountries(): iterable
     {
-        return array_map(fn ($country) => [$country], Countries::getCountryCodes());
+        return array_map(static fn ($country) => [$country], Countries::getCountryCodes());
     }
 
     public function testGetRawOffsetChangeTimeCountry()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Transliterator/EmojiTransliteratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Transliterator/EmojiTransliteratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Transliterator/EmojiTransliteratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Transliterator/EmojiTransliteratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -109,7 +109,8 @@
     public function testTransliterateWithInvalidLocale()
     {
         $this->expectException(\IntlException::class);
-        $this->expectExceptionMessage('transliterator_create: unable to open ICU transliterator with id "emoji-invalid"');
+
+        $this->expectExceptionMessage(\sprintf('%s: unable to open ICU transliterator with id "emoji-invalid":', \PHP_VERSION_ID >= 80500 ? 'Transliterator::create()' : 'transliterator_create'));
 
         EmojiTransliterator::create('invalid');
     }
@@ -133,7 +134,7 @@
         $this->iniSet('intl.use_exceptions', 0);
 
         $this->assertFalse($tr->transliterate("Not \xE9 UTF-8"));
-        $this->assertSame('String conversion of string to UTF-16 failed: U_INVALID_CHAR_FOUND', intl_get_error_message());
+        $this->assertSame(\sprintf('%sString conversion of string to UTF-16 failed: U_INVALID_CHAR_FOUND', \PHP_VERSION_ID >= 80500 ? 'Transliterator::transliterate(): ' : ''), intl_get_error_message());
 
         $this->iniSet('intl.use_exceptions', 1);
 
@@ -150,12 +151,12 @@
         $this->iniSet('intl.use_exceptions', 0);
 
         $this->assertFalse($tr->transliterate('Abc', 1, 5));
-        $this->assertSame('transliterator_transliterate: Neither "start" nor the "end" arguments can exceed the number of UTF-16 code units (in this case, 3): U_ILLEGAL_ARGUMENT_ERROR', intl_get_error_message());
+        $this->assertSame(\sprintf('%s: Neither "start" nor the "end" arguments can exceed the number of UTF-16 code units (in this case, 3): U_ILLEGAL_ARGUMENT_ERROR', \PHP_VERSION_ID >= 80500 ? 'Transliterator::transliterate()' : 'transliterator_transliterate'), intl_get_error_message());
 
         $this->iniSet('intl.use_exceptions', 1);
 
         $this->expectException(\IntlException::class);
-        $this->expectExceptionMessage('transliterator_transliterate: Neither "start" nor the "end" arguments can exceed the number of UTF-16 code units (in this case, 3)');
+        $this->expectExceptionMessage(\sprintf('%s: Neither "start" nor the "end" arguments can exceed the number of UTF-16 code units (in this case, 3)', \PHP_VERSION_ID >= 80500 ? 'Transliterator::transliterate()' : 'transliterator_transliterate'));
 
         $this->assertFalse($tr->transliterate('Abc', 1, 5));
     }
@@ -189,6 +190,6 @@
     {
         $transliterator = EmojiTransliterator::create('emoji-en');
 
-        $this->assertFalse($transliterator->getErrorMessage());
+        $this->assertSame('', $transliterator->getErrorMessage());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Util/GitRepositoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Util/GitRepositoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Tests/Util/GitRepositoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Tests/Util/GitRepositoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
     {
         $this->expectException(RuntimeException::class);
 
-        @mkdir($this->targetDir, 0777, true);
+        @mkdir($this->targetDir, 0o777, true);
 
         new GitRepository($this->targetDir);
     }
@@ -59,14 +59,14 @@
         $this->assertNotEmpty($git->getLastAuthor());
         $this->assertInstanceOf(\DateTimeImmutable::class, $git->getLastAuthoredDate());
         $this->assertStringMatchesFormat('v%s', $git->getLastTag());
-        $this->assertStringMatchesFormat('v3%s', $git->getLastTag(fn ($tag) => str_starts_with($tag, 'v3')));
+        $this->assertStringMatchesFormat('v3%s', $git->getLastTag(static fn ($tag) => str_starts_with($tag, 'v3')));
     }
 
     public function testItCheckoutsToTheLastTag()
     {
         $git = GitRepository::download(self::REPO_URL, $this->targetDir);
         $lastCommitHash = $git->getLastCommitHash();
-        $lastV3Tag = $git->getLastTag(fn ($tag) => str_starts_with($tag, 'v3'));
+        $lastV3Tag = $git->getLastTag(static fn ($tag) => str_starts_with($tag, 'v3'));
 
         $git->checkout($lastV3Tag);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Timezones.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Timezones.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Timezones.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Timezones.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,7 +78,7 @@
         $offset = self::getRawOffset($timezone, $timestamp);
         $abs = abs($offset);
 
-        return sprintf(self::readEntry(['Meta', 'GmtFormat'], $displayLocale), sprintf(self::readEntry(['Meta', 'HourFormat'.(0 <= $offset ? 'Pos' : 'Neg')], $displayLocale), $abs / 3600, $abs / 60 % 60));
+        return \sprintf(self::readEntry(['Meta', 'GmtFormat'], $displayLocale), \sprintf(self::readEntry(['Meta', 'HourFormat'.(0 <= $offset ? 'Pos' : 'Neg')], $displayLocale), $abs / 3600, $abs / 60 % 60));
     }
 
     /**
@@ -102,7 +102,7 @@
             }
 
             if (Countries::exists(strtoupper($country))) {
-                throw new MissingResourceException(sprintf('Country codes must be in uppercase, but "%s" was passed. Try with "%s" country code instead.', $country, strtoupper($country)));
+                throw new MissingResourceException(\sprintf('Country codes must be in uppercase, but "%s" was passed. Try with "%s" country code instead.', $country, strtoupper($country)));
             }
 
             throw $e;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Transliterator/EmojiTransliterator.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Transliterator/EmojiTransliterator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Transliterator/EmojiTransliterator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Transliterator/EmojiTransliterator.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,7 +14,7 @@
 use Symfony\Component\Intl\Util\GzipStreamWrapper;
 
 if (!class_exists(\Transliterator::class)) {
-    throw new \LogicException(sprintf('You cannot use the "%s\EmojiTransliterator" class as the "intl" extension is not installed. See https://php.net/intl.', __NAMESPACE__));
+    throw new \LogicException(\sprintf('You cannot use the "%s\EmojiTransliterator" class as the "intl" extension is not installed. See https://php.net/intl.', __NAMESPACE__));
 } else {
     /**
      * @internal
@@ -57,7 +57,7 @@
                 $instance = ($newInstance ??= (new \ReflectionClass(self::class))->newInstanceWithoutConstructor(...))();
                 $instance->id = $id;
             } else {
-                $instance = unserialize(sprintf('O:%d:"%s":1:{s:2:"id";s:%d:"%s";}', \strlen(self::class), self::class, \strlen($id), $id));
+                $instance = unserialize(\sprintf('O:%d:"%s":1:{s:2:"id";s:%d:"%s";}', \strlen(self::class), self::class, \strlen($id), $id));
             }
 
             $instance->map = $maps[$id] ??= str_ends_with($file, '.gz') ? GzipStreamWrapper::require($file) : require $file;
@@ -70,14 +70,22 @@
             return self::create($this->id, self::REVERSE);
         }
 
+        /**
+         * @return int
+         */
+        #[\ReturnTypeWillChange]
         public function getErrorCode(): int|false
         {
             return isset($this->transliterator) ? $this->transliterator->getErrorCode() : 0;
         }
 
+        /**
+         * @return string
+         */
+        #[\ReturnTypeWillChange]
         public function getErrorMessage(): string|false
         {
-            return isset($this->transliterator) ? $this->transliterator->getErrorMessage() : false;
+            return isset($this->transliterator) ? $this->transliterator->getErrorMessage() : '';
         }
 
         public static function listIDs(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Util/GitRepository.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Util/GitRepository.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Util/GitRepository.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Util/GitRepository.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
             $filesystem->remove($targetDir);
             $filesystem->mkdir($targetDir);
 
-            self::exec(sprintf('git clone %s %s', escapeshellarg($remote), escapeshellarg($targetDir)));
+            self::exec(\sprintf('git clone %s %s', escapeshellarg($remote), escapeshellarg($targetDir)));
         }
 
         return new self(realpath($targetDir));
@@ -82,20 +82,20 @@
 
     public function checkout(string $branch): void
     {
-        $this->execInPath(sprintf('git checkout %s', escapeshellarg($branch)));
+        $this->execInPath(\sprintf('git checkout %s', escapeshellarg($branch)));
     }
 
     private function execInPath(string $command): array
     {
-        return self::exec(sprintf('cd %s && %s', escapeshellarg($this->path), $command));
+        return self::exec(\sprintf('cd %s && %s', escapeshellarg($this->path), $command));
     }
 
     private static function exec(string $command, ?string $customErrorMessage = null): array
     {
-        exec(sprintf('%s 2>&1', $command), $output, $result);
+        exec(\sprintf('%s 2>&1', $command), $output, $result);
 
         if (0 !== $result) {
-            throw new RuntimeException($customErrorMessage ?? sprintf('The "%s" command failed.', $command));
+            throw new RuntimeException($customErrorMessage ?? \sprintf('The "%s" command failed.', $command));
         }
 
         return $output;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Util/GzipStreamWrapper.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Util/GzipStreamWrapper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Util/GzipStreamWrapper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Util/GzipStreamWrapper.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public static function require(string $path): array
     {
         if (!\extension_loaded('zlib')) {
-            throw new \LogicException(sprintf('The "zlib" extension is required to load the "%s/%s" map, please enable it in your php.ini file.', basename(\dirname($path)), basename($path)));
+            throw new \LogicException(\sprintf('The "zlib" extension is required to load the "%s/%s" map, please enable it in your php.ini file.', basename(\dirname($path)), basename($path)));
         }
 
         if (!\function_exists('opcache_is_script_cached') || !@opcache_is_script_cached($path)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Util/Version.php symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Util/Version.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Intl/Util/Version.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Intl/Util/Version.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
         $pattern = '[^\.]+';
 
         for ($i = 2; $i <= $precision; ++$i) {
-            $pattern = sprintf('[^\.]+(\.%s)?', $pattern);
+            $pattern = \sprintf('[^\.]+(\.%s)?', $pattern);
         }
 
         if (!preg_match('/^'.$pattern.'/', $version, $matches)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/AbstractConnection.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/AbstractConnection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/AbstractConnection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/AbstractConnection.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,9 +43,9 @@
             'options' => [],
         ]);
 
-        $resolver->setDefault('port', fn (Options $options) => 'ssl' === $options['encryption'] ? 636 : 389);
+        $resolver->setDefault('port', static fn (Options $options) => 'ssl' === $options['encryption'] ? 636 : 389);
 
-        $resolver->setDefault('connection_string', fn (Options $options) => sprintf('ldap%s://%s:%s', 'ssl' === $options['encryption'] ? 's' : '', $options['host'], $options['port']));
+        $resolver->setDefault('connection_string', static fn (Options $options) => \sprintf('ldap%s://%s:%s', 'ssl' === $options['encryption'] ? 's' : '', $options['host'], $options['port']));
 
         $resolver->setAllowedTypes('host', 'string');
         $resolver->setAllowedTypes('port', 'numeric');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/AbstractQuery.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/AbstractQuery.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/AbstractQuery.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/AbstractQuery.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
         $resolver->setAllowedValues('deref', [static::DEREF_ALWAYS, static::DEREF_NEVER, static::DEREF_FINDING, static::DEREF_SEARCHING]);
         $resolver->setAllowedValues('scope', [static::SCOPE_BASE, static::SCOPE_ONE, static::SCOPE_SUB]);
 
-        $resolver->setNormalizer('filter', fn (Options $options, $value) => \is_array($value) ? $value : [$value]);
+        $resolver->setNormalizer('filter', static fn (Options $options, $value) => \is_array($value) ? $value : [$value]);
 
         $this->connection = $connection;
         $this->dn = $dn;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Adapter.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Adapter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Adapter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Adapter.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,4 +67,9 @@
 
         return $value;
     }
+
+    public function reset(): void
+    {
+        unset($this->entryManager, $this->connection);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Collection.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Collection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Collection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Collection.php	2026-05-20 10:56:49.000000000 +0200
@@ -125,10 +125,10 @@
     private function cleanupAttributes(array $entry): array
     {
         $attributes = array_diff_key($entry, array_flip(range(0, $entry['count'] - 1)) + [
-                'count' => null,
-                'dn' => null,
-            ]);
-        array_walk($attributes, function (&$value) {
+            'count' => null,
+            'dn' => null,
+        ]);
+        array_walk($attributes, static function (&$value) {
             unset($value['count']);
         });
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/ConnectionOptions.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/ConnectionOptions.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/ConnectionOptions.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/ConnectionOptions.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,7 +65,7 @@
 
     public static function getOptionName(string $name): string
     {
-        return sprintf('%s::%s', self::class, strtoupper($name));
+        return \sprintf('%s::%s', self::class, strtoupper($name));
     }
 
     /**
@@ -80,7 +80,7 @@
         $constantName = self::getOptionName($name);
 
         if (!\defined($constantName)) {
-            throw new LdapException(sprintf('Unknown option "%s".', $name));
+            throw new LdapException(\sprintf('Unknown option "%s".', $name));
         }
 
         return \constant($constantName);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,15 +39,12 @@
     private bool $bound = false;
     private ?LDAPConnection $connection = null;
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -103,7 +100,7 @@
     public function setOption(string $name, array|string|int|bool $value)
     {
         if (!@ldap_set_option($this->connection, ConnectionOptions::getOption($name), $value)) {
-            throw new LdapException(sprintf('Could not set value "%s" for option "%s".', $value, $name));
+            throw new LdapException(\sprintf('Could not set value "%s" for option "%s".', $value, $name));
         }
     }
 
@@ -113,7 +110,7 @@
     public function getOption(string $name)
     {
         if (!@ldap_get_option($this->connection, ConnectionOptions::getOption($name), $ret)) {
-            throw new LdapException(sprintf('Could not retrieve value for option "%s".', $name));
+            throw new LdapException(\sprintf('Could not retrieve value for option "%s".', $name));
         }
 
         return $ret;
@@ -130,7 +127,7 @@
         $resolver->setAllowedTypes('debug', 'bool');
         $resolver->setDefault('referrals', false);
         $resolver->setAllowedTypes('referrals', 'bool');
-        $resolver->setDefault('options', function (OptionsResolver $options, Options $parent) {
+        $resolver->setDefault('options', static function (OptionsResolver $options, Options $parent) {
             $options->setDefined(array_map('strtolower', array_keys((new \ReflectionClass(ConnectionOptions::class))->getConstants())));
 
             if (true === $parent['debug']) {
@@ -138,7 +135,7 @@
             }
 
             if (!isset($parent['network_timeout'])) {
-                $options->setDefault('network_timeout', \ini_get('default_socket_timeout'));
+                $options->setDefault('network_timeout', (int) \ini_get('default_socket_timeout'));
             }
 
             $options->setDefaults([
@@ -162,9 +159,8 @@
 
         if (false === $connection = ldap_connect($this->config['connection_string'])) {
             throw new LdapException('Invalid connection string: '.$this->config['connection_string']);
-        } else {
-            $this->connection = $connection;
         }
+        $this->connection = $connection;
 
         foreach ($this->config['options'] as $name => $value) {
             if (!\in_array(ConnectionOptions::getOption($name), self::PRECONNECT_OPTIONS, true)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/EntryManager.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/EntryManager.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/EntryManager.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/EntryManager.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
         $con = $this->getConnectionResource();
 
         if (!@ldap_add($con, $entry->getDn(), $entry->getAttributes())) {
-            throw new LdapException(sprintf('Could not add entry "%s": ', $entry->getDn()).ldap_error($con), ldap_errno($con));
+            throw new LdapException(\sprintf('Could not add entry "%s": ', $entry->getDn()).ldap_error($con), ldap_errno($con));
         }
 
         return $this;
@@ -51,7 +51,7 @@
         $con = $this->getConnectionResource();
 
         if (!@ldap_modify($con, $entry->getDn(), $entry->getAttributes())) {
-            throw new LdapException(sprintf('Could not update entry "%s": ', $entry->getDn()).ldap_error($con), ldap_errno($con));
+            throw new LdapException(\sprintf('Could not update entry "%s": ', $entry->getDn()).ldap_error($con), ldap_errno($con));
         }
 
         return $this;
@@ -65,7 +65,7 @@
         $con = $this->getConnectionResource();
 
         if (!@ldap_delete($con, $entry->getDn())) {
-            throw new LdapException(sprintf('Could not remove entry "%s": ', $entry->getDn()).ldap_error($con), ldap_errno($con));
+            throw new LdapException(\sprintf('Could not remove entry "%s": ', $entry->getDn()).ldap_error($con), ldap_errno($con));
         }
 
         return $this;
@@ -84,7 +84,7 @@
         $con = $this->getConnectionResource();
 
         if (!@ldap_mod_add($con, $entry->getDn(), [$attribute => $values])) {
-            throw new LdapException(sprintf('Could not add values to entry "%s", attribute "%s": ', $entry->getDn(), $attribute).ldap_error($con), ldap_errno($con));
+            throw new LdapException(\sprintf('Could not add values to entry "%s", attribute "%s": ', $entry->getDn(), $attribute).ldap_error($con), ldap_errno($con));
         }
 
         return $this;
@@ -103,7 +103,7 @@
         $con = $this->getConnectionResource();
 
         if (!@ldap_mod_del($con, $entry->getDn(), [$attribute => $values])) {
-            throw new LdapException(sprintf('Could not remove values from entry "%s", attribute "%s": ', $entry->getDn(), $attribute).ldap_error($con), ldap_errno($con));
+            throw new LdapException(\sprintf('Could not remove values from entry "%s", attribute "%s": ', $entry->getDn(), $attribute).ldap_error($con), ldap_errno($con));
         }
 
         return $this;
@@ -117,7 +117,7 @@
         $con = $this->getConnectionResource();
 
         if (!@ldap_rename($con, $entry->getDn(), $newRdn, '', $removeOldRdn)) {
-            throw new LdapException(sprintf('Could not rename entry "%s" to "%s": ', $entry->getDn(), $newRdn).ldap_error($con), ldap_errno($con));
+            throw new LdapException(\sprintf('Could not rename entry "%s" to "%s": ', $entry->getDn(), $newRdn).ldap_error($con), ldap_errno($con));
         }
 
         return $this;
@@ -137,7 +137,7 @@
         $con = $this->getConnectionResource();
         // deleteOldRdn does not matter here, since the Rdn will not be changing in the move.
         if (!@ldap_rename($con, $entry->getDn(), $rdn, $newParent, true)) {
-            throw new LdapException(sprintf('Could not move entry "%s" to "%s": ', $entry->getDn(), $newParent).ldap_error($con), ldap_errno($con));
+            throw new LdapException(\sprintf('Could not move entry "%s" to "%s": ', $entry->getDn(), $newParent).ldap_error($con), ldap_errno($con));
         }
 
         return $this;
@@ -172,7 +172,7 @@
 
         $con = $this->getConnectionResource();
         if (!@ldap_modify_batch($con, $dn, $operationsMapped)) {
-            throw new UpdateOperationException(sprintf('Error executing UpdateOperation on "%s": ', $dn).ldap_error($con), ldap_errno($con));
+            throw new UpdateOperationException(\sprintf('Error executing UpdateOperation on "%s": ', $dn).ldap_error($con), ldap_errno($con));
         }
 
         return $this;
@@ -181,7 +181,7 @@
     private function parseRdnFromEntry(Entry $entry): string
     {
         if (!preg_match('/(^[^,\\\\]*(?:\\\\.[^,\\\\]*)*),/', $entry->getDn(), $matches)) {
-            throw new LdapException(sprintf('Entry "%s" malformed, could not parse RDN.', $entry->getDn()));
+            throw new LdapException(\sprintf('Entry "%s" malformed, could not parse RDN.', $entry->getDn()));
         }
 
         return $matches[1];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,15 +30,12 @@
 
     private array $serverctrls = [];
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -76,7 +73,7 @@
                 static::SCOPE_BASE => 'ldap_read',
                 static::SCOPE_ONE => 'ldap_list',
                 static::SCOPE_SUB => 'ldap_search',
-                default => throw new LdapException(sprintf('Could not search in scope "%s".', $this->options['scope'])),
+                default => throw new LdapException(\sprintf('Could not search in scope "%s".', $this->options['scope'])),
             };
 
             $itemsLeft = $maxItems = $this->options['maxItems'];
@@ -104,13 +101,13 @@
                 if (false === $search) {
                     $ldapError = '';
                     if ($errno = ldap_errno($con)) {
-                        $ldapError = sprintf(' LDAP error was [%d] %s', $errno, ldap_error($con));
+                        $ldapError = \sprintf(' LDAP error was [%d] %s', $errno, ldap_error($con));
                     }
                     if ($pageControl) {
                         $this->resetPagination();
                     }
 
-                    throw new LdapException(sprintf('Could not complete search with dn "%s", query "%s" and filters "%s".%s.', $this->dn, $this->query, implode(',', $this->options['filter']), $ldapError), $errno);
+                    throw new LdapException(\sprintf('Could not complete search with dn "%s", query "%s" and filters "%s".%s.', $this->dn, $this->query, implode(',', $this->options['filter']), $ldapError), $errno);
                 }
 
                 $this->results[] = $search;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/UpdateOperation.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/UpdateOperation.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/UpdateOperation.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Adapter/ExtLdap/UpdateOperation.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,10 +35,10 @@
     public function __construct(int $operationType, string $attribute, ?array $values)
     {
         if (!\in_array($operationType, self::VALID_OPERATION_TYPES, true)) {
-            throw new UpdateOperationException(sprintf('"%s" is not a valid modification type.', $operationType));
+            throw new UpdateOperationException(\sprintf('"%s" is not a valid modification type.', $operationType));
         }
         if (\LDAP_MODIFY_BATCH_REMOVE_ALL === $operationType && null !== $values) {
-            throw new UpdateOperationException(sprintf('$values must be null for LDAP_MODIFY_BATCH_REMOVE_ALL operation, "%s" given.', get_debug_type($values)));
+            throw new UpdateOperationException(\sprintf('$values must be null for LDAP_MODIFY_BATCH_REMOVE_ALL operation, "%s" given.', get_debug_type($values)));
         }
 
         $this->operationType = $operationType;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Ldap.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Ldap.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Ldap.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Ldap.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,6 +49,13 @@
         return $this->adapter->escape($subject, $ignore, $flags);
     }
 
+    public function reset(): void
+    {
+        if (method_exists($this->adapter, 'reset')) {
+            $this->adapter->reset();
+        }
+    }
+
     /**
      * Creates a new Ldap instance.
      *
@@ -58,7 +65,7 @@
     public static function create(string $adapter, array $config = []): static
     {
         if ('ext_ldap' !== $adapter) {
-            throw new DriverNotFoundException(sprintf('Adapter "%s" not found. Only "ext_ldap" is supported at the moment.', $adapter));
+            throw new DriverNotFoundException(\sprintf('Adapter "%s" not found. Only "ext_ldap" is supported at the moment.', $adapter));
         }
 
         return new self(new Adapter($config));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Security/CheckLdapCredentialsListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Security/CheckLdapCredentialsListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Security/CheckLdapCredentialsListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Security/CheckLdapCredentialsListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
         }
 
         if (!$passport->hasBadge(PasswordCredentials::class)) {
-            throw new \LogicException(sprintf('LDAP authentication requires a passport containing password credentials, authenticator "%s" does not fulfill these requirements.', $event->getAuthenticator()::class));
+            throw new \LogicException(\sprintf('LDAP authentication requires a passport containing password credentials, authenticator "%s" does not fulfill these requirements.', $event->getAuthenticator()::class));
         }
 
         /** @var PasswordCredentials $passwordCredentials */
@@ -63,7 +63,7 @@
         }
 
         if (!$this->ldapLocator->has($ldapBadge->getLdapServiceId())) {
-            throw new \LogicException(sprintf('Cannot check credentials using the "%s" ldap service, as such service is not found. Did you maybe forget to add the "ldap" service tag to this service?', $ldapBadge->getLdapServiceId()));
+            throw new \LogicException(\sprintf('Cannot check credentials using the "%s" ldap service, as such service is not found. Did you maybe forget to add the "ldap" service tag to this service?', $ldapBadge->getLdapServiceId()));
         }
 
         $presentedPassword = $passwordCredentials->getPassword();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Security/LdapAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Security/LdapAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Security/LdapAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Security/LdapAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
      */
     public function createAuthenticatedToken(PassportInterface $passport, string $firewallName): TokenInterface
     {
-        throw new \BadMethodCallException(sprintf('The "%s()" method cannot be called.', __METHOD__));
+        throw new \BadMethodCallException(\sprintf('The "%s()" method cannot be called.', __METHOD__));
     }
 
     public function createToken(Passport $passport, string $firewallName): TokenInterface
@@ -91,7 +91,7 @@
     public function start(Request $request, ?AuthenticationException $authException = null): Response
     {
         if (!$this->authenticator instanceof AuthenticationEntryPointInterface) {
-            throw new NotAnEntryPointException(sprintf('Decorated authenticator "%s" does not implement interface "%s".', get_debug_type($this->authenticator), AuthenticationEntryPointInterface::class));
+            throw new NotAnEntryPointException(\sprintf('Decorated authenticator "%s" does not implement interface "%s".', get_debug_type($this->authenticator), AuthenticationEntryPointInterface::class));
         }
 
         return $this->authenticator->start($request, $authException);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Security/LdapUserProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Security/LdapUserProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Security/LdapUserProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Security/LdapUserProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -89,7 +89,7 @@
         $count = \count($entries);
 
         if (!$count) {
-            $e = new UserNotFoundException(sprintf('User "%s" not found.', $identifier));
+            $e = new UserNotFoundException(\sprintf('User "%s" not found.', $identifier));
             $e->setUserIdentifier($identifier);
 
             throw $e;
@@ -117,7 +117,7 @@
     public function refreshUser(UserInterface $user): UserInterface
     {
         if (!$user instanceof LdapUser) {
-            throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
+            throw new UnsupportedUserException(\sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
         }
 
         return new LdapUser($user->getEntry(), $user->getUserIdentifier(), $user->getPassword(), $user->getRoles(), $user->getExtraFields());
@@ -129,7 +129,7 @@
     public function upgradePassword(PasswordAuthenticatedUserInterface $user, string $newHashedPassword): void
     {
         if (!$user instanceof LdapUser) {
-            throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
+            throw new UnsupportedUserException(\sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
         }
 
         if (null === $this->passwordAttribute) {
@@ -172,7 +172,7 @@
     private function getAttributeValue(Entry $entry, string $attribute): mixed
     {
         if (!$entry->hasAttribute($attribute)) {
-            throw new InvalidArgumentException(sprintf('Missing attribute "%s" for user "%s".', $attribute, $entry->getDn()));
+            throw new InvalidArgumentException(\sprintf('Missing attribute "%s" for user "%s".', $attribute, $entry->getDn()));
         }
 
         $values = $entry->getAttribute($attribute);
@@ -181,7 +181,7 @@
         }
 
         if (1 !== \count($values)) {
-            throw new InvalidArgumentException(sprintf('Attribute "%s" has multiple values.', $attribute));
+            throw new InvalidArgumentException(\sprintf('Attribute "%s" has multiple values.', $attribute));
         }
 
         return $values[0];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/AdapterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/AdapterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/AdapterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/AdapterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,6 +34,22 @@
         $this->assertEquals('\20foo\3dbar\0d(baz)*\20', $ldap->escape(" foo=bar\r(baz)* ", '', LdapInterface::ESCAPE_DN));
     }
 
+    public function testResetClearsConnectionAndEntryManager()
+    {
+        $adapter = new Adapter();
+
+        $connection1 = $adapter->getConnection();
+        $entryManager1 = $adapter->getEntryManager();
+
+        $adapter->reset();
+
+        $connection2 = $adapter->getConnection();
+        $entryManager2 = $adapter->getEntryManager();
+
+        $this->assertNotSame($connection1, $connection2);
+        $this->assertNotSame($entryManager1, $entryManager2);
+    }
+
     /**
      * @group functional
      */
@@ -173,8 +189,8 @@
         // Create 25 'users' that we'll query for in different page sizes
         $em = $ldap->getEntryManager();
         for ($i = 0; $i < 25; ++$i) {
-            $cn = sprintf('user%d', $i);
-            $entry = new Entry(sprintf('cn=%s,dc=symfony,dc=com', $cn));
+            $cn = \sprintf('user%d', $i);
+            $entry = new Entry(\sprintf('cn=%s,dc=symfony,dc=com', $cn));
             $entry->setAttribute('objectClass', ['applicationProcess']);
             $entry->setAttribute('cn', [$cn]);
             try {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/EntryManagerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/EntryManagerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/EntryManagerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Tests/Adapter/ExtLdap/EntryManagerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,10 +24,9 @@
     {
         $this->expectException(LdapException::class);
         $this->expectExceptionMessage('Entry "$$$$$$" malformed, could not parse RDN.');
-        $connection = $this->createMock(Connection::class);
 
         $entry = new Entry('$$$$$$');
-        $entryManager = new EntryManager($connection);
+        $entryManager = new EntryManager(new Connection());
         $entryManager->move($entry, 'a');
     }
 
@@ -52,10 +51,8 @@
      */
     public function testMoveWithRFC4514DistinguishedName(string $dn, string $expectedRdn)
     {
-        $connection = $this->createMock(Connection::class);
-
         $entry = new Entry($dn);
-        $entryManager = new EntryManager($connection);
+        $entryManager = new EntryManager(new Connection());
 
         $method = (new \ReflectionClass(EntryManager::class))->getMethod('parseRdnFromEntry');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Tests/LdapTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Tests/LdapTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Tests/LdapTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Tests/LdapTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Ldap\Tests;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Ldap\Adapter\AdapterInterface;
 use Symfony\Component\Ldap\Adapter\ConnectionInterface;
@@ -21,15 +20,6 @@
 
 class LdapTest extends TestCase
 {
-    private MockObject&AdapterInterface $adapter;
-    private Ldap $ldap;
-
-    protected function setUp(): void
-    {
-        $this->adapter = $this->createMock(AdapterInterface::class);
-        $this->ldap = new Ldap($this->adapter);
-    }
-
     public function testLdapBind()
     {
         $connection = $this->createMock(ConnectionInterface::class);
@@ -38,35 +28,41 @@
             ->method('bind')
             ->with('foo', 'bar')
         ;
-        $this->adapter
+        $adapter = $this->createMock(AdapterInterface::class);
+        $adapter
             ->expects($this->once())
             ->method('getConnection')
             ->willReturn($connection)
         ;
-        $this->ldap->bind('foo', 'bar');
+        $ldap = new Ldap($adapter);
+        $ldap->bind('foo', 'bar');
     }
 
     public function testLdapEscape()
     {
-        $this->adapter
+        $adapter = $this->createMock(AdapterInterface::class);
+        $adapter
             ->expects($this->once())
             ->method('escape')
             ->with('foo', 'bar', 0)
             ->willReturn('')
         ;
 
-        $this->ldap->escape('foo', 'bar', 0);
+        $ldap = new Ldap($adapter);
+        $ldap->escape('foo', 'bar', 0);
     }
 
     public function testLdapQuery()
     {
-        $this->adapter
+        $adapter = $this->createMock(AdapterInterface::class);
+        $adapter
             ->expects($this->once())
             ->method('createQuery')
             ->with('foo', 'bar', ['baz'])
-            ->willReturn($this->createMock(QueryInterface::class))
+            ->willReturn($this->createStub(QueryInterface::class))
         ;
-        $this->ldap->query('foo', 'bar', ['baz']);
+        $ldap = new Ldap($adapter);
+        $ldap->query('foo', 'bar', ['baz']);
     }
 
     /**
@@ -83,4 +79,51 @@
         $this->expectException(DriverNotFoundException::class);
         Ldap::create('foo');
     }
+
+    public function testResetDelegatesToAdapter()
+    {
+        $adapter = new class implements AdapterInterface {
+            public bool $resetCalled = false;
+
+            public function getConnection(): ConnectionInterface
+            {
+                throw new \BadMethodCallException();
+            }
+
+            public function createQuery(string $dn, string $query, array $options = []): QueryInterface
+            {
+                throw new \BadMethodCallException();
+            }
+
+            public function getEntryManager(): \Symfony\Component\Ldap\Adapter\EntryManagerInterface
+            {
+                throw new \BadMethodCallException();
+            }
+
+            public function escape(string $subject, string $ignore = '', int $flags = 0): string
+            {
+                throw new \BadMethodCallException();
+            }
+
+            public function reset(): void
+            {
+                $this->resetCalled = true;
+            }
+        };
+
+        $ldap = new Ldap($adapter);
+        $ldap->reset();
+
+        $this->assertTrue($adapter->resetCalled);
+    }
+
+    public function testResetWithAdapterWithoutResetMethod()
+    {
+        $adapter = $this->createMock(AdapterInterface::class);
+
+        $ldap = new Ldap($adapter);
+        $ldap->reset();
+
+        $this->addToAssertionCount(1);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Tests/Security/CheckLdapCredentialsListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Tests/Security/CheckLdapCredentialsListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Tests/Security/CheckLdapCredentialsListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Tests/Security/CheckLdapCredentialsListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Ldap\Tests\Security;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Psr\Container\ContainerInterface;
 use Symfony\Component\HttpFoundation\Request;
@@ -38,21 +37,15 @@
 
 class CheckLdapCredentialsListenerTest extends TestCase
 {
-    private MockObject&LdapInterface $ldap;
-
-    protected function setUp(): void
-    {
-        $this->ldap = $this->createMock(LdapInterface::class);
-    }
-
     /**
      * @dataProvider provideShouldNotCheckPassport
      */
     public function testShouldNotCheckPassport($authenticator, $passport)
     {
-        $this->ldap->expects($this->never())->method('bind');
+        $ldap = $this->createMock(LdapInterface::class);
+        $ldap->expects($this->never())->method('bind');
 
-        $listener = $this->createListener();
+        $listener = $this->createListener($ldap);
         $listener->onCheckPassport(new CheckPassportEvent($authenticator, $passport));
     }
 
@@ -121,10 +114,11 @@
         $this->expectException(BadCredentialsException::class);
         $this->expectExceptionMessage('The presented password is invalid.');
 
-        $this->ldap->method('escape')->willReturnArgument(0);
-        $this->ldap->expects($this->any())->method('bind')->willThrowException(new InvalidCredentialsException());
+        $ldap = $this->createStub(LdapInterface::class);
+        $ldap->method('escape')->willReturnArgument(0);
+        $ldap->method('bind')->willThrowException(new InvalidCredentialsException());
 
-        $listener = $this->createListener();
+        $listener = $this->createListener($ldap);
         $listener->onCheckPassport($this->createEvent());
     }
 
@@ -145,7 +139,8 @@
         $query = $this->createMock(QueryInterface::class);
         $query->expects($this->once())->method('execute')->willReturn($collection);
 
-        $this->ldap
+        $ldap = $this->createMock(LdapInterface::class);
+        $ldap
             ->method('bind')
             ->willReturnCallback(function (...$args) {
                 static $series = [
@@ -156,10 +151,10 @@
                 $this->assertSame(array_shift($series), $args);
             })
         ;
-        $this->ldap->expects($this->any())->method('escape')->with('Wouter', '', LdapInterface::ESCAPE_FILTER)->willReturn('wouter');
-        $this->ldap->expects($this->once())->method('query')->with('{user_identifier}', 'wouter_test')->willReturn($query);
+        $ldap->expects($this->any())->method('escape')->with('Wouter', '', LdapInterface::ESCAPE_FILTER)->willReturn('wouter');
+        $ldap->expects($this->once())->method('query')->with('{user_identifier}', 'wouter_test')->willReturn($query);
 
-        $listener = $this->createListener();
+        $listener = $this->createListener($ldap);
         $listener->onCheckPassport($this->createEvent('s3cr3t', new LdapBadge('app.ldap', $dnString, 'elsa', 'test1234A$', $queryString)));
     }
 
@@ -183,7 +178,8 @@
         $query = $this->createMock(QueryInterface::class);
         $query->expects($this->once())->method('execute')->willReturn($collection);
 
-        $this->ldap
+        $ldap = $this->createMock(LdapInterface::class);
+        $ldap
             ->method('bind')
             ->willReturnCallback(function (...$args) {
                 static $series = [
@@ -194,10 +190,12 @@
                 $this->assertSame(array_shift($series), $args);
             })
         ;
-        $this->ldap->expects($this->any())->method('escape')->with('Wouter', '', LdapInterface::ESCAPE_FILTER)->willReturn('wouter');
-        $this->ldap->expects($this->once())->method('query')->with('{user_identifier}', 'wouter_test')->willReturn($query);
+        $ldap->method('escape')->willReturnMap([
+            ['Wouter', '', LdapInterface::ESCAPE_FILTER, 'wouter'],
+        ]);
+        $ldap->expects($this->once())->method('query')->with('{user_identifier}', 'wouter_test')->willReturn($query);
 
-        $listener = $this->createListener();
+        $listener = $this->createListener($ldap);
         $listener->onCheckPassport($this->createEvent('s3cr3t', new LdapBadge('app.ldap', '{user_identifier}', 'elsa', 'test1234A$', '{user_identifier}_test')));
     }
 
@@ -206,12 +204,13 @@
         $this->expectException(BadCredentialsException::class);
         $this->expectExceptionMessage('The presented user identifier is invalid.');
 
-        $collection = $this->createMock(CollectionInterface::class);
+        $collection = $this->createStub(CollectionInterface::class);
 
         $query = $this->createMock(QueryInterface::class);
         $query->expects($this->once())->method('execute')->willReturn($collection);
 
-        $this->ldap
+        $ldap = $this->createMock(LdapInterface::class);
+        $ldap
             ->method('bind')
             ->willReturnCallback(function (...$args) {
                 static $series = [
@@ -222,10 +221,10 @@
                 $this->assertSame(array_shift($series), $args);
             })
         ;
-        $this->ldap->method('escape')->willReturnArgument(0);
-        $this->ldap->expects($this->once())->method('query')->willReturn($query);
+        $ldap->method('escape')->willReturnArgument(0);
+        $ldap->expects($this->once())->method('query')->willReturn($query);
 
-        $listener = $this->createListener();
+        $listener = $this->createListener($ldap);
         $listener->onCheckPassport($this->createEvent('s3cr3t', new LdapBadge('app.ldap', '{user_identifier}', 'elsa', 'test1234A$', '{user_identifier}_test')));
     }
 
@@ -233,13 +232,13 @@
     {
         return new CheckPassportEvent(
             new TestAuthenticator(),
-            new Passport(new UserBadge('Wouter', fn () => new InMemoryUser('Wouter', null, ['ROLE_USER'])), new PasswordCredentials($password), [$ldapBadge ?? new LdapBadge('app.ldap')])
+            new Passport(new UserBadge('Wouter', static fn () => new InMemoryUser('Wouter', null, ['ROLE_USER'])), new PasswordCredentials($password), [$ldapBadge ?? new LdapBadge('app.ldap')])
         );
     }
 
-    private function createListener()
+    private function createListener(?LdapInterface $ldap = null)
     {
-        $ldapLocator = new class(['app.ldap' => fn () => $this->ldap]) implements ContainerInterface {
+        $ldapLocator = new class(['app.ldap' => fn () => $ldap ?? $this->createStub(LdapInterface::class)]) implements ContainerInterface {
             use ServiceLocatorTrait;
         };
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Tests/Security/LdapUserProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Tests/Security/LdapUserProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Ldap/Tests/Security/LdapUserProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Ldap/Tests/Security/LdapUserProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -123,8 +123,8 @@
             ->method('offsetGet')
             ->with(0)
             ->willReturn(new Entry('foo', [
-                    'sAMAccountName' => ['foo'],
-                    'userpassword' => ['bar', 'baz'],
+                'sAMAccountName' => ['foo'],
+                'userpassword' => ['bar', 'baz'],
             ]))
         ;
         $result
@@ -308,9 +308,9 @@
             ->method('offsetGet')
             ->with(0)
             ->willReturn(new Entry('foo', [
-                    'sAMAccountName' => ['foo'],
-                    'userpassword' => ['bar'],
-                    'email' => ['elsa@symfony.com'],
+                'sAMAccountName' => ['foo'],
+                'userpassword' => ['bar'],
+                'email' => ['elsa@symfony.com'],
             ]))
         ;
         $result
@@ -381,7 +381,7 @@
 
     public function testRefreshUserShouldReturnUserWithSameProperties()
     {
-        $ldap = $this->createMock(LdapInterface::class);
+        $ldap = $this->createStub(LdapInterface::class);
         $provider = new LdapUserProvider($ldap, 'ou=MyBusiness,dc=symfony,dc=com', null, null, [], 'sAMAccountName', '({uid_key}={user_identifier})', 'userpassword', ['email']);
 
         $user = new LdapUser(new Entry('foo'), 'foo', 'bar', ['ROLE_DUMMY'], ['email' => 'foo@symfony.com']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Key.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Key.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Key.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Key.php	2026-05-20 10:56:49.000000000 +0200
@@ -90,12 +90,16 @@
         return null !== $this->expiringTime && $this->expiringTime <= microtime(true);
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         if (!$this->serializable) {
             throw new UnserializableKeyException('The key cannot be serialized.');
         }
 
-        return ['resource', 'expiringTime', 'state'];
+        return [
+            'resource' => $this->resource,
+            'expiringTime' => $this->expiringTime,
+            'state' => $this->state,
+        ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Lock.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Lock.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Lock.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Lock.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,12 +42,12 @@
     ) {
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -98,7 +98,7 @@
                 } catch (\Exception) {
                     // swallow exception to not hide the original issue
                 }
-                throw new LockExpiredException(sprintf('Failed to store the "%s" lock.', $this->key));
+                throw new LockExpiredException(\sprintf('Failed to store the "%s" lock.', $this->key));
             }
 
             return true;
@@ -113,7 +113,7 @@
             return false;
         } catch (\Exception $e) {
             $this->logger?->notice('Failed to acquire the "{resource}" lock.', ['resource' => $this->key, 'exception' => $e]);
-            throw new LockAcquiringException(sprintf('Failed to acquire the "%s" lock.', $this->key), 0, $e);
+            throw new LockAcquiringException(\sprintf('Failed to acquire the "%s" lock.', $this->key), 0, $e);
         }
     }
 
@@ -156,7 +156,7 @@
                 } catch (\Exception) {
                     // swallow exception to not hide the original issue
                 }
-                throw new LockExpiredException(sprintf('Failed to store the "%s" lock.', $this->key));
+                throw new LockExpiredException(\sprintf('Failed to store the "%s" lock.', $this->key));
             }
 
             return true;
@@ -171,7 +171,7 @@
             return false;
         } catch (\Exception $e) {
             $this->logger?->notice('Failed to acquire the "{resource}" lock.', ['resource' => $this->key, 'exception' => $e]);
-            throw new LockAcquiringException(sprintf('Failed to acquire the "%s" lock.', $this->key), 0, $e);
+            throw new LockAcquiringException(\sprintf('Failed to acquire the "%s" lock.', $this->key), 0, $e);
         }
     }
 
@@ -192,7 +192,7 @@
                 } catch (\Exception) {
                     // swallow exception to not hide the original issue
                 }
-                throw new LockExpiredException(sprintf('Failed to put off the expiration of the "%s" lock within the specified time.', $this->key));
+                throw new LockExpiredException(\sprintf('Failed to put off the expiration of the "%s" lock within the specified time.', $this->key));
             }
 
             $this->logger?->debug('Expiration defined for "{resource}" lock for "{ttl}" seconds.', ['resource' => $this->key, 'ttl' => $ttl]);
@@ -202,7 +202,7 @@
             throw $e;
         } catch (\Exception $e) {
             $this->logger?->notice('Failed to define an expiration for the "{resource}" lock.', ['resource' => $this->key, 'exception' => $e]);
-            throw new LockAcquiringException(sprintf('Failed to define an expiration for the "%s" lock.', $this->key), 0, $e);
+            throw new LockAcquiringException(\sprintf('Failed to define an expiration for the "%s" lock.', $this->key), 0, $e);
         }
     }
 
@@ -220,11 +220,11 @@
             } catch (LockReleasingException $e) {
                 throw $e;
             } catch (\Exception $e) {
-                throw new LockReleasingException(sprintf('Failed to release the "%s" lock.', $this->key), 0, $e);
+                throw new LockReleasingException(\sprintf('Failed to release the "%s" lock.', $this->key), 0, $e);
             }
 
             if ($this->store->exists($this->key)) {
-                throw new LockReleasingException(sprintf('Failed to release the "%s" lock, the resource is still locked.', $this->key));
+                throw new LockReleasingException(\sprintf('Failed to release the "%s" lock, the resource is still locked.', $this->key));
             }
 
             $this->logger?->debug('Successfully released the "{resource}" lock.', ['resource' => $this->key]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/CombinedStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/CombinedStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/CombinedStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/CombinedStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
     {
         foreach ($stores as $store) {
             if (!$store instanceof PersistingStoreInterface) {
-                throw new InvalidArgumentException(sprintf('The store must implement "%s". Got "%s".', PersistingStoreInterface::class, get_debug_type($store)));
+                throw new InvalidArgumentException(\sprintf('The store must implement "%s". Got "%s".', PersistingStoreInterface::class, get_debug_type($store)));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/DatabaseTableTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/DatabaseTableTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/DatabaseTableTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/DatabaseTableTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,10 +30,10 @@
     private function init(array $options, float $gcProbability, int $initialTtl): void
     {
         if ($gcProbability < 0 || $gcProbability > 1) {
-            throw new InvalidArgumentException(sprintf('"%s" requires gcProbability between 0 and 1, "%f" given.', __METHOD__, $gcProbability));
+            throw new InvalidArgumentException(\sprintf('"%s" requires gcProbability between 0 and 1, "%f" given.', __METHOD__, $gcProbability));
         }
         if ($initialTtl < 1) {
-            throw new InvalidTtlException(sprintf('"%s()" expects a strictly positive TTL, "%d" given.', __METHOD__, $initialTtl));
+            throw new InvalidTtlException(\sprintf('"%s()" expects a strictly positive TTL, "%d" given.', __METHOD__, $initialTtl));
         }
 
         $this->table = $options['db_table'] ?? $this->table;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/DoctrineDbalPostgreSqlStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/DoctrineDbalPostgreSqlStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/DoctrineDbalPostgreSqlStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/DoctrineDbalPostgreSqlStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
     {
         if ($connOrUrl instanceof Connection) {
             if (!$connOrUrl->getDatabasePlatform() instanceof PostgreSQLPlatform) {
-                throw new InvalidArgumentException(sprintf('The adapter "%s" does not support the "%s" platform.', __CLASS__, $connOrUrl->getDatabasePlatform()::class));
+                throw new InvalidArgumentException(\sprintf('The adapter "%s" does not support the "%s" platform.', __CLASS__, $connOrUrl->getDatabasePlatform()::class));
             }
             $this->conn = $connOrUrl;
         } else {
@@ -294,10 +294,10 @@
         [$scheme, $rest] = explode(':', $dsn, 2);
         $driver = strtok($scheme, '+');
         if (!\in_array($driver, ['pgsql', 'postgres', 'postgresql'])) {
-            throw new InvalidArgumentException(sprintf('The adapter "%s" does not support the "%s" driver.', __CLASS__, $driver));
+            throw new InvalidArgumentException(\sprintf('The adapter "%s" does not support the "%s" driver.', __CLASS__, $driver));
         }
 
-        return sprintf('%s:%s', $driver, $rest);
+        return \sprintf('%s:%s', $driver, $rest);
     }
 
     private function getInternalStore(): SharedLockStoreInterface
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/DoctrineDbalStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/DoctrineDbalStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/DoctrineDbalStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/DoctrineDbalStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -103,6 +103,19 @@
     {
         $key->reduceLifetime($this->initialTtl);
 
+        $platform = $this->conn->getDatabasePlatform();
+        if ($platform instanceof \Doctrine\DBAL\Platforms\PostgreSQLPlatform) {
+            $this->doSavePostgres($key);
+        } else {
+            $this->doSave($key);
+        }
+
+        $this->randomlyPrune();
+        $this->checkNotExpired($key);
+    }
+
+    private function doSave(Key $key): void
+    {
         $sql = "INSERT INTO $this->table ($this->idCol, $this->tokenCol, $this->expirationCol) VALUES (?, ?, {$this->getCurrentTimestampStatement()} + $this->initialTtl)";
 
         try {
@@ -133,9 +146,43 @@
             // the lock is already acquired. It could be us. Let's try to put off.
             $this->putOffExpiration($key, $this->initialTtl);
         }
+    }
 
-        $this->randomlyPrune();
-        $this->checkNotExpired($key);
+    /**
+     * On PostgreSQL a constraint violation aborts the surrounding transaction (SQLSTATE 25P02), so
+     * the legacy "try INSERT, catch, fall back to UPDATE" path turns a benign lock contention into
+     * a fatal error for any caller wrapped in a transaction (Messenger doctrine_transaction
+     * middleware, functional tests using DAMADoctrineTestBundle, ...). Using atomic
+     * INSERT ... ON CONFLICT keeps the conflict resolution server-side and never raises,
+     * preserving the outer transaction.
+     */
+    private function doSavePostgres(Key $key): void
+    {
+        $now = $this->getCurrentTimestampStatement();
+        $sql = "INSERT INTO $this->table ($this->idCol, $this->tokenCol, $this->expirationCol) VALUES (?, ?, $now + $this->initialTtl)"
+            ." ON CONFLICT ($this->idCol) DO UPDATE SET $this->tokenCol = EXCLUDED.$this->tokenCol, $this->expirationCol = EXCLUDED.$this->expirationCol"
+            ." WHERE $this->table.$this->tokenCol = EXCLUDED.$this->tokenCol OR $this->table.$this->expirationCol <= $now";
+
+        $params = [
+            $this->getHashedKey($key),
+            $this->getUniqueToken($key),
+        ];
+        $types = [
+            ParameterType::STRING,
+            ParameterType::STRING,
+        ];
+
+        try {
+            $rows = (int) $this->conn->executeStatement($sql, $params, $types);
+        } catch (TableNotFoundException) {
+            // PostgreSQL supports DDL inside a transaction, so we can always create the table.
+            $this->createTable();
+            $rows = (int) $this->conn->executeStatement($sql, $params, $types);
+        }
+
+        if (0 === $rows) {
+            throw new LockConflictedException();
+        }
     }
 
     /**
@@ -144,7 +191,7 @@
     public function putOffExpiration(Key $key, $ttl)
     {
         if ($ttl < 1) {
-            throw new InvalidTtlException(sprintf('"%s()" expects a TTL greater or equals to 1 second. Got "%s".', __METHOD__, $ttl));
+            throw new InvalidTtlException(\sprintf('"%s()" expects a TTL greater or equals to 1 second. Got "%s".', __METHOD__, $ttl));
         }
 
         $key->reduceLifetime($ttl);
@@ -254,15 +301,15 @@
         $platform = $this->conn->getDatabasePlatform();
 
         return match (true) {
-            $platform instanceof \Doctrine\DBAL\Platforms\MySQLPlatform,
-            $platform instanceof \Doctrine\DBAL\Platforms\MySQL57Platform => 'UNIX_TIMESTAMP()',
-            $platform instanceof \Doctrine\DBAL\Platforms\SqlitePlatform => 'strftime(\'%s\',\'now\')',
-            $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQLPlatform,
-            $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQL94Platform => 'CAST(EXTRACT(epoch FROM NOW()) AS INT)',
-            $platform instanceof \Doctrine\DBAL\Platforms\OraclePlatform => '(SYSDATE - TO_DATE(\'19700101\',\'yyyymmdd\'))*86400 - TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone), 1, 3))*3600',
-            $platform instanceof \Doctrine\DBAL\Platforms\SQLServerPlatform,
-            $platform instanceof \Doctrine\DBAL\Platforms\SQLServer2012Platform => 'DATEDIFF(s, \'1970-01-01\', GETUTCDATE())',
-            default => (string) time(),
+            $platform instanceof \Doctrine\DBAL\Platforms\MySQL57Platform,
+            $platform instanceof \Doctrine\DBAL\Platforms\MySQLPlatform => 'UNIX_TIMESTAMP(NOW(6))',
+            $platform instanceof \Doctrine\DBAL\Platforms\SqlitePlatform => "(julianday('now') - 2440587.5) * 86400.0",
+            $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQL94Platform,
+            $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQLPlatform => 'CAST(EXTRACT(epoch FROM NOW()) AS DOUBLE PRECISION)',
+            $platform instanceof \Doctrine\DBAL\Platforms\OraclePlatform => "(CAST(systimestamp AT TIME ZONE 'UTC' AS DATE) - DATE '1970-01-01') * 86400 + TO_NUMBER(TO_CHAR(systimestamp AT TIME ZONE 'UTC', 'SSSSS.FF'))",
+            $platform instanceof \Doctrine\DBAL\Platforms\SQLServer2012Platform,
+            $platform instanceof \Doctrine\DBAL\Platforms\SQLServerPlatform => "CAST(DATEDIFF_BIG(ms, '1970-01-01', SYSUTCDATETIME()) AS FLOAT) / 1000.0",
+            default => (new \DateTimeImmutable())->format('U.u'),
         };
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/ExpiringStoreTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/ExpiringStoreTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/ExpiringStoreTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/ExpiringStoreTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
             } catch (\Exception) {
                 // swallow exception to not hide the original issue
             }
-            throw new LockExpiredException(sprintf('Failed to store the "%s" lock.', $key));
+            throw new LockExpiredException(\sprintf('Failed to store the "%s" lock.', $key));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/FlockStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/FlockStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/FlockStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/FlockStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,11 +40,11 @@
     public function __construct(?string $lockPath = null)
     {
         if (!is_dir($lockPath ??= sys_get_temp_dir())) {
-            if (false === @mkdir($lockPath, 0777, true) && !is_dir($lockPath)) {
-                throw new InvalidArgumentException(sprintf('The FlockStore directory "%s" does not exists and cannot be created.', $lockPath));
+            if (false === @mkdir($lockPath, 0o777, true) && !is_dir($lockPath)) {
+                throw new InvalidArgumentException(\sprintf('The FlockStore directory "%s" does not exists and cannot be created.', $lockPath));
             }
         } elseif (!is_writable($lockPath)) {
-            throw new InvalidArgumentException(sprintf('The FlockStore directory "%s" is not writable.', $lockPath));
+            throw new InvalidArgumentException(\sprintf('The FlockStore directory "%s" is not writable.', $lockPath));
         }
 
         $this->lockPath = $lockPath;
@@ -95,18 +95,18 @@
         }
 
         if (!$handle) {
-            $fileName = sprintf('%s/sf.%s.%s.lock',
+            $fileName = \sprintf('%s/sf.%s.%s.lock',
                 $this->lockPath,
                 substr(preg_replace('/[^a-z0-9\._-]+/i', '-', $key), 0, 50),
                 strtr(substr(base64_encode(hash('sha256', $key, true)), 0, 7), '/', '_')
             );
 
             // Silence error reporting
-            set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
+            set_error_handler(static function ($type, $msg) use (&$error) { $error = $msg; });
             try {
                 if (!$handle = fopen($fileName, 'r+') ?: fopen($fileName, 'r')) {
                     if ($handle = fopen($fileName, 'x')) {
-                        chmod($fileName, 0666);
+                        chmod($fileName, 0o666);
                     } elseif (!$handle = fopen($fileName, 'r+') ?: fopen($fileName, 'r')) {
                         usleep(100); // Give some time for chmod() to complete
                         $handle = fopen($fileName, 'r+') ?: fopen($fileName, 'r');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/MemcachedStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/MemcachedStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/MemcachedStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/MemcachedStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
         }
 
         if ($initialTtl < 1) {
-            throw new InvalidArgumentException(sprintf('"%s()" expects a strictly positive TTL. Got %d.', __METHOD__, $initialTtl));
+            throw new InvalidArgumentException(\sprintf('"%s()" expects a strictly positive TTL. Got %d.', __METHOD__, $initialTtl));
         }
 
         $this->memcached = $memcached;
@@ -76,7 +76,7 @@
     public function putOffExpiration(Key $key, float $ttl)
     {
         if ($ttl < 1) {
-            throw new InvalidTtlException(sprintf('"%s()" expects a TTL greater or equals to 1 second. Got %s.', __METHOD__, $ttl));
+            throw new InvalidTtlException(\sprintf('"%s()" expects a TTL greater or equals to 1 second. Got %s.', __METHOD__, $ttl));
         }
 
         // Interface defines a float value but Store required an integer.
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/MongoDbStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/MongoDbStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/MongoDbStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/MongoDbStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,8 @@
 use MongoDB\Driver\Exception\BulkWriteException;
 use MongoDB\Driver\Manager;
 use MongoDB\Driver\Query;
+use MongoDB\Driver\ReadPreference;
+use MongoDB\Driver\WriteConcern;
 use MongoDB\Exception\DriverRuntimeException;
 use MongoDB\Exception\InvalidArgumentException as MongoInvalidArgumentException;
 use MongoDB\Exception\UnsupportedException;
@@ -61,9 +63,9 @@
     private float $initialTtl;
 
     /**
-     * @param Collection|Client|Manager|string $mongo      An instance of a Collection or Client or URI @see https://docs.mongodb.com/manual/reference/connection-string/
-     * @param array                            $options    See below
-     * @param float                            $initialTtl The expiration delay of locks in seconds
+     * @param Collection|Database|Client|Manager|string $mongo      An instance of a Collection or Client or URI @see https://docs.mongodb.com/manual/reference/connection-string/
+     * @param array                                     $options    See below
+     * @param float                                     $initialTtl The expiration delay of locks in seconds
      *
      * @throws InvalidArgumentException If required options are not provided
      * @throws InvalidTtlException      When the initial ttl is not valid
@@ -89,8 +91,9 @@
      * to 0.0 and optionally leverage
      * self::createTtlIndex(int $expireAfterSeconds = 0).
      *
-     * writeConcern and readConcern are not specified by MongoDbStore meaning the connection's settings will take effect.
-     * readPreference is primary for all queries.
+     * readConcern is not specified by MongoDbStore meaning the connection's settings will take effect.
+     * writeConcern is majority for all update queries.
+     * readPreference is primary for all read queries.
      * @see https://docs.mongodb.com/manual/applications/replication/
      */
     public function __construct(Collection|Database|Client|Manager|string $mongo, array $options = [], float $initialTtl = 300.0)
@@ -128,19 +131,19 @@
         }
 
         if (null === $this->options['database']) {
-            throw new InvalidArgumentException(sprintf('"%s()" requires the "database" in the URI path or option.', __METHOD__));
+            throw new InvalidArgumentException(\sprintf('"%s()" requires the "database" in the URI path or option.', __METHOD__));
         }
         if (null === $this->options['collection']) {
-            throw new InvalidArgumentException(sprintf('"%s()" requires the "collection" in the URI querystring or option.', __METHOD__));
+            throw new InvalidArgumentException(\sprintf('"%s()" requires the "collection" in the URI querystring or option.', __METHOD__));
         }
         $this->namespace = $this->options['database'].'.'.$this->options['collection'];
 
         if ($this->options['gcProbability'] < 0.0 || $this->options['gcProbability'] > 1.0) {
-            throw new InvalidArgumentException(sprintf('"%s()" gcProbability must be a float from 0.0 to 1.0, "%f" given.', __METHOD__, $this->options['gcProbability']));
+            throw new InvalidArgumentException(\sprintf('"%s()" gcProbability must be a float from 0.0 to 1.0, "%f" given.', __METHOD__, $this->options['gcProbability']));
         }
 
         if ($this->initialTtl <= 0) {
-            throw new InvalidTtlException(sprintf('"%s()" expects a strictly positive TTL, got "%d".', __METHOD__, $this->initialTtl));
+            throw new InvalidTtlException(\sprintf('"%s()" expects a strictly positive TTL, got "%d".', __METHOD__, $this->initialTtl));
         }
     }
 
@@ -149,16 +152,16 @@
      *
      * Non-standard parameters are removed from the URI to improve libmongoc's re-use of connections.
      *
-     * @see https://www.php.net/manual/en/mongodb.connection-handling.php
+     * @see https://php.net/mongodb.connection-handling
      */
     private function skimUri(string $uri): string
     {
         if (!str_starts_with($uri, 'mongodb://') && !str_starts_with($uri, 'mongodb+srv://')) {
-            throw new InvalidArgumentException(sprintf('The given MongoDB Connection URI "%s" is invalid. Expecting "mongodb://" or "mongodb+srv://".', $uri));
+            throw new InvalidArgumentException(\sprintf('The given MongoDB Connection URI "%s" is invalid. Expecting "mongodb://" or "mongodb+srv://".', $uri));
         }
 
         if (false === $params = parse_url($uri)) {
-            throw new InvalidArgumentException(sprintf('The given MongoDB Connection URI "%s" is invalid.', $uri));
+            throw new InvalidArgumentException(\sprintf('The given MongoDB Connection URI "%s" is invalid.', $uri));
         }
         $pathDb = ltrim($params['path'] ?? '', '/') ?: null;
         if (null !== $pathDb) {
@@ -286,7 +289,11 @@
             ['limit' => 1]
         );
 
-        $this->getManager()->executeBulkWrite($this->namespace, $write);
+        $this->getManager()->executeBulkWrite(
+            $this->namespace,
+            $write,
+            ['writeConcern' => new WriteConcern(WriteConcern::MAJORITY)]
+        );
     }
 
     public function exists(Key $key): bool
@@ -303,7 +310,9 @@
                 'limit' => 1,
                 'projection' => ['_id' => 1],
             ]
-        ));
+        ), [
+            'readPreference' => new ReadPreference(ReadPreference::PRIMARY),
+        ]);
 
         return [] !== $cursor->toArray();
     }
@@ -345,7 +354,11 @@
             ]
         );
 
-        $this->getManager()->executeBulkWrite($this->namespace, $write);
+        $this->getManager()->executeBulkWrite(
+            $this->namespace,
+            $write,
+            ['writeConcern' => new WriteConcern(WriteConcern::MAJORITY)]
+        );
     }
 
     private function isDuplicateKeyException(BulkWriteException $e): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/PdoStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/PdoStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/PdoStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/PdoStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
 
         if ($connOrDsn instanceof \PDO) {
             if (\PDO::ERRMODE_EXCEPTION !== $connOrDsn->getAttribute(\PDO::ATTR_ERRMODE)) {
-                throw new InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __METHOD__));
+                throw new InvalidArgumentException(\sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __METHOD__));
             }
 
             $this->conn = $connOrDsn;
@@ -90,12 +90,24 @@
     {
         $key->reduceLifetime($this->initialTtl);
 
+        if ('pgsql' === $this->getDriver()) {
+            $this->doSavePostgres($key);
+        } else {
+            $this->doSave($key);
+        }
+
+        $this->randomlyPrune();
+        $this->checkNotExpired($key);
+    }
+
+    private function doSave(Key $key): void
+    {
         $sql = "INSERT INTO $this->table ($this->idCol, $this->tokenCol, $this->expirationCol) VALUES (:id, :token, {$this->getCurrentTimestampStatement()} + $this->initialTtl)";
         $conn = $this->getConnection();
         try {
             $stmt = $conn->prepare($sql);
         } catch (\PDOException $e) {
-            if ($this->isTableMissing($e) && (!$conn->inTransaction() || \in_array($this->getDriver(), ['pgsql', 'sqlite', 'sqlsrv'], true))) {
+            if ($this->isTableMissing($e) && (!$conn->inTransaction() || \in_array($this->getDriver(), ['sqlite', 'sqlsrv'], true))) {
                 $this->createTable();
             }
             $stmt = $conn->prepare($sql);
@@ -107,7 +119,7 @@
         try {
             $stmt->execute();
         } catch (\PDOException $e) {
-            if ($this->isTableMissing($e) && (!$conn->inTransaction() || \in_array($this->getDriver(), ['pgsql', 'sqlite', 'sqlsrv'], true))) {
+            if ($this->isTableMissing($e) && (!$conn->inTransaction() || \in_array($this->getDriver(), ['sqlite', 'sqlsrv'], true))) {
                 $this->createTable();
 
                 try {
@@ -120,9 +132,56 @@
                 $this->putOffExpiration($key, $this->initialTtl);
             }
         }
+    }
 
-        $this->randomlyPrune();
-        $this->checkNotExpired($key);
+    /**
+     * On PostgreSQL a constraint violation aborts the surrounding transaction (SQLSTATE 25P02), so
+     * the legacy "try INSERT, catch, fall back to UPDATE" path turns a benign lock contention into
+     * a fatal error for any caller wrapped in a transaction. Using atomic INSERT ... ON CONFLICT
+     * keeps the conflict resolution server-side and never raises, preserving the outer transaction.
+     */
+    private function doSavePostgres(Key $key): void
+    {
+        $now = $this->getCurrentTimestampStatement();
+        $sql = "INSERT INTO $this->table ($this->idCol, $this->tokenCol, $this->expirationCol) VALUES (:id, :token, $now + $this->initialTtl)"
+            ." ON CONFLICT ($this->idCol) DO UPDATE SET $this->tokenCol = EXCLUDED.$this->tokenCol, $this->expirationCol = EXCLUDED.$this->expirationCol"
+            ." WHERE $this->table.$this->tokenCol = EXCLUDED.$this->tokenCol OR $this->table.$this->expirationCol <= $now";
+
+        $conn = $this->getConnection();
+        $id = $this->getHashedKey($key);
+        $token = $this->getUniqueToken($key);
+
+        try {
+            $stmt = $conn->prepare($sql);
+        } catch (\PDOException $e) {
+            if (!$this->isTableMissing($e)) {
+                throw $e;
+            }
+            // PostgreSQL supports DDL inside a transaction, so we can always create the table.
+            $this->createTable();
+            $stmt = $conn->prepare($sql);
+        }
+
+        $stmt->bindValue(':id', $id);
+        $stmt->bindValue(':token', $token);
+
+        try {
+            $stmt->execute();
+        } catch (\PDOException $e) {
+            // Emulated prepares surface 42P01 at execute() time.
+            if (!$this->isTableMissing($e)) {
+                throw $e;
+            }
+            $this->createTable();
+            $stmt = $conn->prepare($sql);
+            $stmt->bindValue(':id', $id);
+            $stmt->bindValue(':token', $token);
+            $stmt->execute();
+        }
+
+        if (0 === $stmt->rowCount()) {
+            throw new LockConflictedException();
+        }
     }
 
     /**
@@ -131,7 +190,7 @@
     public function putOffExpiration(Key $key, float $ttl)
     {
         if ($ttl < 1) {
-            throw new InvalidTtlException(sprintf('"%s()" expects a TTL greater or equals to 1 second. Got "%s".', __METHOD__, $ttl));
+            throw new InvalidTtlException(\sprintf('"%s()" expects a TTL greater or equals to 1 second. Got "%s".', __METHOD__, $ttl));
         }
 
         $key->reduceLifetime($ttl);
@@ -197,12 +256,12 @@
     public function createTable(): void
     {
         $sql = match ($driver = $this->getDriver()) {
-            'mysql' => "CREATE TABLE $this->table ($this->idCol VARCHAR(64) NOT NULL PRIMARY KEY, $this->tokenCol VARCHAR(44) NOT NULL, $this->expirationCol INTEGER UNSIGNED NOT NULL) COLLATE utf8mb4_bin, ENGINE = InnoDB",
+            'mysql' => "CREATE TABLE $this->table ($this->idCol VARCHAR(64) NOT NULL PRIMARY KEY, $this->tokenCol VARCHAR(44) NOT NULL, $this->expirationCol INTEGER UNSIGNED NOT NULL) ENGINE = InnoDB",
             'sqlite' => "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->tokenCol TEXT NOT NULL, $this->expirationCol INTEGER)",
             'pgsql' => "CREATE TABLE $this->table ($this->idCol VARCHAR(64) NOT NULL PRIMARY KEY, $this->tokenCol VARCHAR(64) NOT NULL, $this->expirationCol INTEGER)",
             'oci' => "CREATE TABLE $this->table ($this->idCol VARCHAR2(64) NOT NULL PRIMARY KEY, $this->tokenCol VARCHAR2(64) NOT NULL, $this->expirationCol INTEGER)",
             'sqlsrv' => "CREATE TABLE $this->table ($this->idCol VARCHAR(64) NOT NULL PRIMARY KEY, $this->tokenCol VARCHAR(64) NOT NULL, $this->expirationCol INTEGER)",
-            default => throw new \DomainException(sprintf('Creating the lock table is currently not implemented for platform "%s".', $driver)),
+            default => throw new \DomainException(\sprintf('Creating the lock table is currently not implemented for platform "%s".', $driver)),
         };
 
         $this->getConnection()->exec($sql);
@@ -229,12 +288,12 @@
     private function getCurrentTimestampStatement(): string
     {
         return match ($this->getDriver()) {
-            'mysql' => 'UNIX_TIMESTAMP()',
-            'sqlite' => 'strftime(\'%s\',\'now\')',
-            'pgsql' => 'CAST(EXTRACT(epoch FROM NOW()) AS INT)',
-            'oci' => '(SYSDATE - TO_DATE(\'19700101\',\'yyyymmdd\'))*86400 - TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone), 1, 3))*3600',
-            'sqlsrv' => 'DATEDIFF(s, \'1970-01-01\', GETUTCDATE())',
-            default => (string) time(),
+            'mysql' => 'UNIX_TIMESTAMP(NOW(6))',
+            'sqlite' => "(julianday('now') - 2440587.5) * 86400.0",
+            'pgsql' => 'CAST(EXTRACT(epoch FROM NOW()) AS DOUBLE PRECISION)',
+            'oci' => "(CAST(systimestamp AT TIME ZONE 'UTC' AS DATE) - DATE '1970-01-01') * 86400 + TO_NUMBER(TO_CHAR(systimestamp AT TIME ZONE 'UTC', 'SSSSS.FF'))",
+            'sqlsrv' => "CAST(DATEDIFF_BIG(ms, '1970-01-01', SYSUTCDATETIME()) AS FLOAT) / 1000.0",
+            default => (new \DateTimeImmutable())->format('U.u'),
         };
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/PostgreSqlStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/PostgreSqlStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/PostgreSqlStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/PostgreSqlStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
     {
         if ($connOrDsn instanceof \PDO) {
             if (\PDO::ERRMODE_EXCEPTION !== $connOrDsn->getAttribute(\PDO::ATTR_ERRMODE)) {
-                throw new InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __METHOD__));
+                throw new InvalidArgumentException(\sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __METHOD__));
             }
 
             $this->conn = $connOrDsn;
@@ -295,7 +295,7 @@
     private function checkDriver(): void
     {
         if ('pgsql' !== $driver = $this->conn->getAttribute(\PDO::ATTR_DRIVER_NAME)) {
-            throw new InvalidArgumentException(sprintf('The adapter "%s" does not support the "%s" driver.', __CLASS__, $driver));
+            throw new InvalidArgumentException(\sprintf('The adapter "%s" does not support the "%s" driver.', __CLASS__, $driver));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/RedisStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/RedisStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/RedisStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/RedisStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
         private float $initialTtl = 300.0,
     ) {
         if ($initialTtl <= 0) {
-            throw new InvalidTtlException(sprintf('"%s()" expects a strictly positive TTL. Got %d.', __METHOD__, $initialTtl));
+            throw new InvalidTtlException(\sprintf('"%s()" expects a strictly positive TTL. Got %d.', __METHOD__, $initialTtl));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/StoreFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/StoreFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Store/StoreFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Store/StoreFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
                 return new ZookeeperStore($connection);
 
             case !\is_string($connection):
-                throw new InvalidArgumentException(sprintf('Unsupported Connection: "%s".', get_debug_type($connection)));
+                throw new InvalidArgumentException(\sprintf('Unsupported Connection: "%s".', get_debug_type($connection)));
             case 'flock' === $connection:
                 return new FlockStore();
 
@@ -108,6 +108,6 @@
                 return new InMemoryStore();
         }
 
-        throw new InvalidArgumentException(sprintf('Unsupported Connection: "%s".', $connection));
+        throw new InvalidArgumentException(\sprintf('Unsupported Connection: "%s".', $connection));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/LockFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/LockFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/LockFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/LockFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Lock\Tests;
 
 use PHPUnit\Framework\TestCase;
-use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
 use Symfony\Component\Lock\Key;
 use Symfony\Component\Lock\LockFactory;
 use Symfony\Component\Lock\PersistingStoreInterface;
@@ -25,21 +25,20 @@
     public function testCreateLock()
     {
         $store = $this->createMock(PersistingStoreInterface::class);
-        $store->expects($this->any())->method('exists')->willReturn(false);
+        $store->method('exists')->willReturn(false);
 
         $keys = [];
         $store
             ->expects($this->exactly(2))
             ->method('save')
-            ->with($this->callback(function ($key) use (&$keys) {
+            ->with($this->callback(static function ($key) use (&$keys) {
                 $keys[] = $key;
 
                 return true;
             }));
 
-        $logger = $this->createMock(LoggerInterface::class);
         $factory = new LockFactory($store);
-        $factory->setLogger($logger);
+        $factory->setLogger(new NullLogger());
 
         $lock1 = $factory->createLock('foo');
         $lock2 = $factory->createLock('foo');
@@ -54,21 +53,20 @@
     public function testCreateLockFromKey()
     {
         $store = $this->createMock(PersistingStoreInterface::class);
-        $store->expects($this->any())->method('exists')->willReturn(false);
+        $store->method('exists')->willReturn(false);
 
         $keys = [];
         $store
             ->expects($this->exactly(2))
             ->method('save')
-            ->with($this->callback(function ($key) use (&$keys) {
+            ->with($this->callback(static function ($key) use (&$keys) {
                 $keys[] = $key;
 
                 return true;
             }));
 
-        $logger = $this->createMock(LoggerInterface::class);
         $factory = new LockFactory($store);
-        $factory->setLogger($logger);
+        $factory->setLogger(new NullLogger());
 
         $key = new Key('foo');
         $lock1 = $factory->createLockFromKey($key);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/LockTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/LockTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/LockTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/LockTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -81,11 +81,10 @@
     public function testAcquireBlockingRetryWithPersistingStoreInterface()
     {
         $key = new Key(uniqid(__METHOD__, true));
-        $store = $this->createMock(PersistingStoreInterface::class);
+        $store = $this->createStub(PersistingStoreInterface::class);
         $lock = new Lock($key, $store);
 
         $store
-            ->expects($this->any())
             ->method('save')
             ->willReturnCallback(static function () {
                 if (1 === random_int(0, 1)) {
@@ -210,7 +209,7 @@
     public function testIsAquired()
     {
         $key = new Key(uniqid(__METHOD__, true));
-        $store = $this->createMock(PersistingStoreInterface::class);
+        $store = $this->createStub(PersistingStoreInterface::class);
         $lock = new Lock($key, $store, 10);
 
         $store
@@ -373,7 +372,7 @@
     {
         $key = new Key((string) random_int(100, 1000));
         $store = new InMemoryStore();
-        $logger = new class() extends AbstractLogger {
+        $logger = new class extends AbstractLogger {
             private array $logs = [];
 
             public function log($level, $message, array $context = []): void
@@ -403,7 +402,7 @@
     public function testExpiration($ttls, $expected)
     {
         $key = new Key(uniqid(__METHOD__, true));
-        $store = $this->createMock(PersistingStoreInterface::class);
+        $store = $this->createStub(PersistingStoreInterface::class);
         $lock = new Lock($key, $store, 10);
 
         foreach ($ttls as $ttl) {
@@ -422,7 +421,7 @@
     public function testExpirationStoreInterface($ttls, $expected)
     {
         $key = new Key(uniqid(__METHOD__, true));
-        $store = $this->createMock(PersistingStoreInterface::class);
+        $store = $this->createStub(PersistingStoreInterface::class);
         $lock = new Lock($key, $store, 10);
 
         foreach ($ttls as $ttl) {
@@ -468,7 +467,7 @@
     public function testAcquireReadTwiceWithExpiration()
     {
         $key = new Key(uniqid(__METHOD__, true));
-        $store = new class() implements PersistingStoreInterface {
+        $store = new class implements PersistingStoreInterface {
             use ExpiringStoreTrait;
             private array $keys = [];
             private int $initialTtl = 30;
@@ -512,7 +511,7 @@
     public function testAcquireTwiceWithExpiration()
     {
         $key = new Key(uniqid(__METHOD__, true));
-        $store = new class() implements PersistingStoreInterface {
+        $store = new class implements PersistingStoreInterface {
             use ExpiringStoreTrait;
             private array $keys = [];
             private int $initialTtl = 30;
@@ -569,11 +568,10 @@
     public function testAcquireReadBlockingWithSharedLockStoreInterface()
     {
         $key = new Key(uniqid(__METHOD__, true));
-        $store = $this->createMock(SharedLockStoreInterface::class);
+        $store = $this->createStub(SharedLockStoreInterface::class);
         $lock = new Lock($key, $store);
 
         $store
-            ->expects($this->any())
             ->method('saveRead')
             ->willReturnCallback(static function () {
                 if (1 === random_int(0, 1)) {
@@ -607,11 +605,10 @@
     public function testAcquireReadBlockingWithPersistingStoreInterface()
     {
         $key = new Key(uniqid(__METHOD__, true));
-        $store = $this->createMock(PersistingStoreInterface::class);
+        $store = $this->createStub(PersistingStoreInterface::class);
         $lock = new Lock($key, $store);
 
         $store
-            ->expects($this->any())
             ->method('save')
             ->willReturnCallback(static function () {
                 if (1 === random_int(0, 1)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/AbstractRedisStoreTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/AbstractRedisStoreTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/AbstractRedisStoreTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/AbstractRedisStoreTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -98,7 +98,7 @@
             return $this->redis->eval(...array_merge([$script, 1, $resource], $args));
         }
 
-        throw new InvalidArgumentException(sprintf('"%s()" expects being initialized with a Redis, Relay, RedisArray, RedisCluster or Predis\ClientInterface, "%s" given.', __METHOD__, get_debug_type($this->redis)));
+        throw new InvalidArgumentException(\sprintf('"%s()" expects being initialized with a Redis, Relay, RedisArray, RedisCluster or Predis\ClientInterface, "%s" given.', __METHOD__, get_debug_type($this->redis)));
     }
 
     private function getUniqueToken(Key $key): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/CombinedStoreTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/CombinedStoreTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/CombinedStoreTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/CombinedStoreTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Lock\Tests\Store;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use Symfony\Component\Lock\BlockingStoreInterface;
 use Symfony\Component\Lock\Exception\LockConflictedException;
 use Symfony\Component\Lock\Key;
@@ -50,81 +49,69 @@
         return new CombinedStore([new RedisStore($redis)], new UnanimousStrategy());
     }
 
-    private MockObject&StrategyInterface $strategy;
-    private MockObject&BlockingStoreInterface $store1;
-    private MockObject&BlockingStoreInterface $store2;
-    private CombinedStore $store;
-
-    protected function setUp(): void
-    {
-        $this->strategy = $this->createMock(StrategyInterface::class);
-        $this->store1 = $this->createMock(BlockingStoreInterface::class);
-        $this->store2 = $this->createMock(BlockingStoreInterface::class);
-
-        $this->store = new CombinedStore([$this->store1, $this->store2], $this->strategy);
-    }
-
     public function testSaveThrowsExceptionOnFailure()
     {
         $this->expectException(LockConflictedException::class);
         $key = new Key(uniqid(__METHOD__, true));
 
-        $this->store1
+        $store1 = $this->createMock(BlockingStoreInterface::class);
+        $store1
             ->expects($this->once())
             ->method('save')
             ->with($key)
             ->willThrowException(new LockConflictedException());
-        $this->store2
+        $store2 = $this->createMock(BlockingStoreInterface::class);
+        $store2
             ->expects($this->once())
             ->method('save')
             ->with($key)
             ->willThrowException(new LockConflictedException());
 
-        $this->strategy
-            ->expects($this->any())
+        $strategy = $this->createStub(StrategyInterface::class);
+        $strategy
             ->method('canBeMet')
             ->willReturn(true);
-        $this->strategy
-            ->expects($this->any())
+        $strategy
             ->method('isMet')
             ->willReturn(false);
 
-        $this->store->save($key);
+        $this->createCombinedStore($store1, $store2, $strategy)->save($key);
     }
 
     public function testSaveCleanupOnFailure()
     {
         $key = new Key(uniqid(__METHOD__, true));
 
-        $this->store1
+        $store1 = $this->createMock(BlockingStoreInterface::class);
+        $store1
             ->expects($this->once())
             ->method('save')
             ->with($key)
             ->willThrowException(new LockConflictedException());
-        $this->store2
+        $store2 = $this->createMock(BlockingStoreInterface::class);
+        $store2
             ->expects($this->once())
             ->method('save')
             ->with($key)
             ->willThrowException(new LockConflictedException());
 
-        $this->store1
+        $store1
             ->expects($this->once())
             ->method('delete');
-        $this->store2
+        $store2
             ->expects($this->once())
             ->method('delete');
 
-        $this->strategy
-            ->expects($this->any())
+        $strategy = $this->createStub(StrategyInterface::class);
+        $strategy
             ->method('canBeMet')
             ->willReturn(true);
-        $this->strategy
-            ->expects($this->any())
+        $strategy
             ->method('isMet')
             ->willReturn(false);
 
         try {
-            $this->store->save($key);
+            $this->createCombinedStore($store1, $store2, $strategy)->save($key);
         } catch (LockConflictedException $e) {
             // Catch the exception given this is not what we want to assert in this tests
         }
@@ -134,26 +121,28 @@
     {
         $key = new Key(uniqid(__METHOD__, true));
 
-        $this->store1
+        $store1 = $this->createMock(BlockingStoreInterface::class);
+        $store1
             ->expects($this->once())
             ->method('save')
             ->with($key)
             ->willThrowException(new LockConflictedException());
-        $this->store2
+        $store2 = $this->createMock(BlockingStoreInterface::class);
+        $store2
             ->expects($this->never())
             ->method('save');
 
-        $this->strategy
+        $strategy = $this->createMock(StrategyInterface::class);
+        $strategy
             ->expects($this->once())
             ->method('canBeMet')
             ->willReturn(false);
-        $this->strategy
-            ->expects($this->any())
+        $strategy
             ->method('isMet')
             ->willReturn(false);
 
         try {
-            $this->store->save($key);
+            $this->createCombinedStore($store1, $store2, $strategy)->save($key);
         } catch (LockConflictedException $e) {
             // Catch the exception given this is not what we want to assert in this tests
         }
@@ -165,27 +154,28 @@
         $key = new Key(uniqid(__METHOD__, true));
         $ttl = random_int(1, 10);
 
-        $this->store1
+        $store1 = $this->createMock(BlockingStoreInterface::class);
+        $store1
             ->expects($this->once())
             ->method('putOffExpiration')
             ->with($key, $this->lessThanOrEqual($ttl))
             ->willThrowException(new LockConflictedException());
-        $this->store2
+        $store2 = $this->createMock(BlockingStoreInterface::class);
+        $store2
             ->expects($this->once())
             ->method('putOffExpiration')
             ->with($key, $this->lessThanOrEqual($ttl))
             ->willThrowException(new LockConflictedException());
 
-        $this->strategy
-            ->expects($this->any())
+        $strategy = $this->createStub(StrategyInterface::class);
+        $strategy
             ->method('canBeMet')
             ->willReturn(true);
-        $this->strategy
-            ->expects($this->any())
+        $strategy
             ->method('isMet')
             ->willReturn(false);
 
-        $this->store->putOffExpiration($key, $ttl);
+        $this->createCombinedStore($store1, $store2, $strategy)->putOffExpiration($key, $ttl);
     }
 
     public function testputOffExpirationCleanupOnFailure()
@@ -193,35 +183,36 @@
         $key = new Key(uniqid(__METHOD__, true));
         $ttl = random_int(1, 10);
 
-        $this->store1
+        $store1 = $this->createMock(BlockingStoreInterface::class);
+        $store1
             ->expects($this->once())
             ->method('putOffExpiration')
             ->with($key, $this->lessThanOrEqual($ttl))
             ->willThrowException(new LockConflictedException());
-        $this->store2
+        $store2 = $this->createMock(BlockingStoreInterface::class);
+        $store2
             ->expects($this->once())
             ->method('putOffExpiration')
             ->with($key, $this->lessThanOrEqual($ttl))
             ->willThrowException(new LockConflictedException());
 
-        $this->store1
+        $store1
             ->expects($this->once())
             ->method('delete');
-        $this->store2
+        $store2
             ->expects($this->once())
             ->method('delete');
 
-        $this->strategy
-            ->expects($this->any())
+        $strategy = $this->createStub(StrategyInterface::class);
+        $strategy
             ->method('canBeMet')
             ->willReturn(true);
-        $this->strategy
-            ->expects($this->any())
+        $strategy
             ->method('isMet')
             ->willReturn(false);
 
         try {
-            $this->store->putOffExpiration($key, $ttl);
+            $this->createCombinedStore($store1, $store2, $strategy)->putOffExpiration($key, $ttl);
         } catch (LockConflictedException $e) {
             // Catch the exception given this is not what we want to assert in this tests
         }
@@ -232,26 +223,28 @@
         $key = new Key(uniqid(__METHOD__, true));
         $ttl = random_int(1, 10);
 
-        $this->store1
+        $store1 = $this->createMock(BlockingStoreInterface::class);
+        $store1
             ->expects($this->once())
             ->method('putOffExpiration')
             ->with($key, $this->lessThanOrEqual($ttl))
             ->willThrowException(new LockConflictedException());
-        $this->store2
+        $store2 = $this->createMock(BlockingStoreInterface::class);
+        $store2
             ->expects($this->never())
             ->method('putOffExpiration');
 
-        $this->strategy
+        $strategy = $this->createMock(StrategyInterface::class);
+        $strategy
             ->expects($this->once())
             ->method('canBeMet')
             ->willReturn(false);
-        $this->strategy
-            ->expects($this->any())
+        $strategy
             ->method('isMet')
             ->willReturn(false);
 
         try {
-            $this->store->putOffExpiration($key, $ttl);
+            $this->createCombinedStore($store1, $store2, $strategy)->putOffExpiration($key, $ttl);
         } catch (LockConflictedException $e) {
             // Catch the exception given this is not what we want to assert in this tests
         }
@@ -259,19 +252,19 @@
 
     public function testPutOffExpirationIgnoreNonExpiringStorage()
     {
-        $store1 = $this->createMock(PersistingStoreInterface::class);
-        $store2 = $this->createMock(PersistingStoreInterface::class);
+        $store1 = $this->createStub(PersistingStoreInterface::class);
+        $store2 = $this->createStub(PersistingStoreInterface::class);
+        $strategy = $this->createMock(StrategyInterface::class);
 
-        $store = new CombinedStore([$store1, $store2], $this->strategy);
+        $store = new CombinedStore([$store1, $store2], $strategy);
 
         $key = new Key(uniqid(__METHOD__, true));
         $ttl = random_int(1, 10);
 
-        $this->strategy
-            ->expects($this->any())
+        $strategy
             ->method('canBeMet')
             ->willReturn(true);
-        $this->strategy
+        $strategy
             ->expects($this->once())
             ->method('isMet')
             ->with(2, 2)
@@ -284,92 +277,98 @@
     {
         $key = new Key(uniqid(__METHOD__, true));
 
-        $this->store1
-            ->expects($this->any())
+        $store1 = $this->createStub(BlockingStoreInterface::class);
+        $store1
             ->method('exists')
             ->with($key)
             ->willReturn(false);
-        $this->store2
+        $store2 = $this->createMock(BlockingStoreInterface::class);
+        $store2
             ->expects($this->never())
             ->method('exists');
 
-        $this->strategy
-            ->expects($this->any())
+        $strategy = $this->createMock(StrategyInterface::class);
+        $strategy
             ->method('canBeMet')
             ->willReturn(true);
-        $this->strategy
+        $strategy
             ->expects($this->once())
             ->method('isMet')
             ->willReturn(true);
 
-        $this->assertTrue($this->store->exists($key));
+        $this->assertTrue($this->createCombinedStore($store1, $store2, $strategy)->exists($key));
     }
 
     public function testExistsAbortWhenStrategyCantBeMet()
     {
         $key = new Key(uniqid(__METHOD__, true));
 
-        $this->store1
-            ->expects($this->any())
+        $store1 = $this->createStub(BlockingStoreInterface::class);
+        $store1
             ->method('exists')
             ->with($key)
             ->willReturn(false);
-        $this->store2
+        $store2 = $this->createMock(BlockingStoreInterface::class);
+        $store2
             ->expects($this->never())
             ->method('exists');
 
-        $this->strategy
+        $strategy = $this->createMock(StrategyInterface::class);
+        $strategy
             ->expects($this->once())
             ->method('canBeMet')
             ->willReturn(false);
-        $this->strategy
+        $strategy
             ->expects($this->once())
             ->method('isMet')
             ->willReturn(false);
 
-        $this->assertFalse($this->store->exists($key));
+        $this->assertFalse($this->createCombinedStore($store1, $store2, $strategy)->exists($key));
     }
 
     public function testDeleteDontStopOnFailure()
     {
         $key = new Key(uniqid(__METHOD__, true));
 
-        $this->store1
+        $store1 = $this->createMock(BlockingStoreInterface::class);
+        $store1
             ->expects($this->once())
             ->method('delete')
             ->with($key)
             ->willThrowException(new \Exception());
-        $this->store2
+        $store2 = $this->createMock(BlockingStoreInterface::class);
+        $store2
             ->expects($this->once())
             ->method('delete')
             ->with($key);
 
-        $this->store->delete($key);
+        $this->createCombinedStore($store1, $store2)->delete($key);
     }
 
     public function testExistsDontStopOnFailure()
     {
         $key = new Key(uniqid(__METHOD__, true));
 
-        $this->strategy
-            ->expects($this->any())
+        $strategy = $this->createStub(StrategyInterface::class);
+        $strategy
             ->method('canBeMet')
             ->willReturn(true);
-        $this->strategy
-            ->expects($this->any())
+        $strategy
             ->method('isMet')
             ->willReturn(false);
-        $this->store1
+        $store1 = $this->createMock(BlockingStoreInterface::class);
+        $store1
             ->expects($this->once())
             ->method('exists')
             ->willThrowException(new \Exception());
-        $this->store2
+        $store2 = $this->createMock(BlockingStoreInterface::class);
+        $store2
             ->expects($this->once())
             ->method('exists')
             ->with($key)
             ->willReturn(false);
 
-        $this->assertFalse($this->store->exists($key));
+        $this->assertFalse($this->createCombinedStore($store1, $store2, $strategy)->exists($key));
     }
 
     public function testSaveReadWithCompatibleStore()
@@ -385,4 +384,9 @@
 
         $store->saveRead($key);
     }
+
+    private function createCombinedStore(?BlockingStoreInterface $store1 = null, ?BlockingStoreInterface $store2 = null, ?StrategyInterface $strategy = null): CombinedStore
+    {
+        return new CombinedStore([$store1 ?? $this->createStub(BlockingStoreInterface::class), $store2 ?? $this->createStub(BlockingStoreInterface::class)], $strategy ?? $this->createStub(StrategyInterface::class));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,6 +18,7 @@
 use Doctrine\DBAL\Platforms\AbstractPlatform;
 use Doctrine\DBAL\Schema\DefaultSchemaManagerFactory;
 use Doctrine\DBAL\Schema\Schema;
+use Symfony\Component\Lock\Exception\LockConflictedException;
 use Symfony\Component\Lock\Key;
 use Symfony\Component\Lock\PersistingStoreInterface;
 use Symfony\Component\Lock\Store\DoctrineDbalStore;
@@ -125,6 +126,98 @@
     }
 
     /**
+     * @requires extension pdo_pgsql
+     *
+     * @group integration
+     */
+    public function testSaveDoesNotAbortSurroundingPostgresTransactionOnLockContention()
+    {
+        if (!$host = getenv('POSTGRES_HOST')) {
+            $this->markTestSkipped('Missing POSTGRES_HOST env variable');
+        }
+
+        $config = new Configuration();
+        if (class_exists(DefaultSchemaManagerFactory::class)) {
+            $config->setSchemaManagerFactory(new DefaultSchemaManagerFactory());
+        }
+        $conn = DriverManager::getConnection([
+            'driver' => 'pdo_pgsql',
+            'host' => $host,
+            'user' => 'postgres',
+            'password' => 'password',
+        ], $config);
+
+        $resource = uniqid(__METHOD__, true);
+
+        try {
+            $store = new DoctrineDbalStore($conn);
+            $store->createTable();
+
+            $owner = new Key($resource);
+            $store->save($owner);
+
+            $conn->beginTransaction();
+
+            $contender = new Key($resource);
+            try {
+                $store->save($contender);
+                $this->fail('LockConflictedException was expected.');
+            } catch (LockConflictedException) {
+                // expected
+            }
+
+            $this->assertSame('alive', $conn->fetchOne("SELECT 'alive'"), 'The surrounding transaction must remain usable after a lock conflict.');
+            $conn->rollBack();
+        } finally {
+            if ($conn->isTransactionActive()) {
+                $conn->rollBack();
+            }
+            $conn->executeStatement('DROP TABLE IF EXISTS lock_keys');
+        }
+    }
+
+    /**
+     * @requires extension pdo_pgsql
+     *
+     * @group integration
+     */
+    public function testSavePostgresRefreshesSameKeyInsideTransaction()
+    {
+        if (!$host = getenv('POSTGRES_HOST')) {
+            $this->markTestSkipped('Missing POSTGRES_HOST env variable');
+        }
+
+        $config = new Configuration();
+        if (class_exists(DefaultSchemaManagerFactory::class)) {
+            $config->setSchemaManagerFactory(new DefaultSchemaManagerFactory());
+        }
+        $conn = DriverManager::getConnection([
+            'driver' => 'pdo_pgsql',
+            'host' => $host,
+            'user' => 'postgres',
+            'password' => 'password',
+        ], $config);
+
+        try {
+            $store = new DoctrineDbalStore($conn);
+            $store->createTable();
+
+            $key = new Key(uniqid(__METHOD__, true));
+            $store->save($key);
+
+            $conn->beginTransaction();
+            $store->save($key);
+            $this->assertTrue($store->exists($key));
+            $conn->rollBack();
+        } finally {
+            if ($conn->isTransactionActive()) {
+                $conn->rollBack();
+            }
+            $conn->executeStatement('DROP TABLE IF EXISTS lock_keys');
+        }
+    }
+
+    /**
      * @dataProvider providePlatforms
      */
     public function testCreatesTableInTransaction(string $platform)
@@ -132,14 +225,14 @@
         $conn = $this->createMock(Connection::class);
 
         $series = [
-            [$this->stringContains('INSERT INTO'), $this->createMock(TableNotFoundException::class)],
+            [$this->stringContains('INSERT INTO'), $this->createStub(TableNotFoundException::class)],
             [$this->matches('create sql stmt'), 1],
             [$this->stringContains('INSERT INTO'), 1],
         ];
 
         $conn->expects($this->atLeast(3))
             ->method('executeStatement')
-            ->willReturnCallback(function ($sql) use (&$series) {
+            ->willReturnCallback(static function ($sql) use (&$series) {
                 if ([$constraint, $return] = array_shift($series)) {
                     $constraint->evaluate($sql);
                 }
@@ -155,7 +248,7 @@
         $conn->method('isTransactionActive')
             ->willReturn(true);
 
-        $platform = $this->createMock($platform);
+        $platform = $this->createStub($platform);
         $platform->method(method_exists(AbstractPlatform::class, 'getCreateTablesSQL') ? 'getCreateTablesSQL' : 'getCreateTableSQL')
             ->willReturn(['create sql stmt']);
 
@@ -192,13 +285,13 @@
         $conn = $this->createMock(Connection::class);
 
         $series = [
-            [$this->stringContains('INSERT INTO'), $this->createMock(TableNotFoundException::class)],
+            [$this->stringContains('INSERT INTO'), $this->createStub(TableNotFoundException::class)],
             [$this->stringContains('INSERT INTO'), 1],
         ];
 
         $conn->expects($this->atLeast(2))
             ->method('executeStatement')
-            ->willReturnCallback(function ($sql) use (&$series) {
+            ->willReturnCallback(static function ($sql) use (&$series) {
                 if ([$constraint, $return] = array_shift($series)) {
                     $constraint->evaluate($sql);
                 }
@@ -214,7 +307,7 @@
         $conn->method('isTransactionActive')
             ->willReturn(true);
 
-        $platform = $this->createMock(AbstractPlatform::class);
+        $platform = $this->createStub(AbstractPlatform::class);
         $platform->method(method_exists(AbstractPlatform::class, 'getCreateTablesSQL') ? 'getCreateTablesSQL' : 'getCreateTableSQL')
             ->willReturn(['create sql stmt']);
 
@@ -233,14 +326,14 @@
         $conn = $this->createMock(Connection::class);
 
         $series = [
-            [$this->stringContains('INSERT INTO'), $this->createMock(TableNotFoundException::class)],
+            [$this->stringContains('INSERT INTO'), $this->createStub(TableNotFoundException::class)],
             [$this->matches('create sql stmt'), 1],
             [$this->stringContains('INSERT INTO'), 1],
         ];
 
         $conn->expects($this->atLeast(3))
             ->method('executeStatement')
-            ->willReturnCallback(function ($sql) use (&$series) {
+            ->willReturnCallback(static function ($sql) use (&$series) {
                 if ([$constraint, $return] = array_shift($series)) {
                     $constraint->evaluate($sql);
                 }
@@ -256,7 +349,7 @@
         $conn->method('isTransactionActive')
             ->willReturn(false);
 
-        $platform = $this->createMock(AbstractPlatform::class);
+        $platform = $this->createStub(AbstractPlatform::class);
         $platform->method(method_exists(AbstractPlatform::class, 'getCreateTablesSQL') ? 'getCreateTablesSQL' : 'getCreateTableSQL')
             ->willReturn(['create sql stmt']);
 
@@ -272,8 +365,8 @@
 
     public function testConfigureSchemaDifferentDatabase()
     {
-        $conn = $this->createMock(Connection::class);
-        $someFunction = fn () => false;
+        $conn = $this->createStub(Connection::class);
+        $someFunction = static fn () => false;
         $schema = new Schema();
 
         $dbalStore = new DoctrineDbalStore($conn);
@@ -283,8 +376,8 @@
 
     public function testConfigureSchemaSameDatabase()
     {
-        $conn = $this->createMock(Connection::class);
-        $someFunction = fn () => true;
+        $conn = $this->createStub(Connection::class);
+        $someFunction = static fn () => true;
         $schema = new Schema();
 
         $dbalStore = new DoctrineDbalStore($conn);
@@ -294,12 +387,12 @@
 
     public function testConfigureSchemaTableExists()
     {
-        $conn = $this->createMock(Connection::class);
+        $conn = $this->createStub(Connection::class);
         $schema = new Schema();
         $schema->createTable('lock_keys');
 
         $dbalStore = new DoctrineDbalStore($conn);
-        $someFunction = fn () => true;
+        $someFunction = static fn () => true;
         $dbalStore->configureSchema($schema, $someFunction);
         $table = $schema->getTable('lock_keys');
         $this->assertEmpty($table->getColumns(), 'The table was not overwritten');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/FlockStoreTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/FlockStoreTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/FlockStoreTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/FlockStoreTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
 
         $key = new Key('<?php echo "% hello word ! %" ?>');
 
-        $file = sprintf(
+        $file = \sprintf(
             '%s/sf.-php-echo-hello-word-.%s.lock',
             sys_get_temp_dir(),
             strtr(substr(base64_encode(hash('sha256', $key, true)), 0, 7), '/', '_')
@@ -87,7 +87,7 @@
 
         $key = new Key(str_repeat(__CLASS__, 100));
 
-        $file = sprintf(
+        $file = \sprintf(
             '%s/sf.Symfony-Component-Lock-Tests-Store-FlockStoreTestS.%s.lock',
             sys_get_temp_dir(),
             strtr(substr(base64_encode(hash('sha256', $key, true)), 0, 7), '/', '_')
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/PdoStoreTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/PdoStoreTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/PdoStoreTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/PdoStoreTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Lock\Tests\Store;
 
 use Symfony\Component\Lock\Exception\InvalidTtlException;
+use Symfony\Component\Lock\Exception\LockConflictedException;
 use Symfony\Component\Lock\Key;
 use Symfony\Component\Lock\PersistingStoreInterface;
 use Symfony\Component\Lock\Store\PdoStore;
@@ -120,4 +121,82 @@
             $pdo->exec('DROP TABLE IF EXISTS lock_keys');
         }
     }
+
+    /**
+     * @requires extension pdo_pgsql
+     *
+     * @group integration
+     */
+    public function testSaveDoesNotAbortSurroundingPostgresTransactionOnLockContention()
+    {
+        if (!$host = getenv('POSTGRES_HOST')) {
+            $this->markTestSkipped('Missing POSTGRES_HOST env variable');
+        }
+
+        $dsn = 'pgsql:host='.$host.';user=postgres;password=password';
+        $pdo = new \PDO($dsn);
+        $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
+
+        $resource = uniqid(__METHOD__, true);
+
+        try {
+            $store = new PdoStore($pdo);
+            $store->createTable();
+
+            $owner = new Key($resource);
+            $store->save($owner);
+
+            $pdo->beginTransaction();
+
+            $contender = new Key($resource);
+            try {
+                $store->save($contender);
+                $this->fail('LockConflictedException was expected.');
+            } catch (LockConflictedException) {
+                // expected
+            }
+
+            $this->assertSame('alive', $pdo->query("SELECT 'alive'")->fetchColumn(), 'The surrounding transaction must remain usable after a lock conflict.');
+            $pdo->rollBack();
+        } finally {
+            if ($pdo->inTransaction()) {
+                $pdo->rollBack();
+            }
+            $pdo->exec('DROP TABLE IF EXISTS lock_keys');
+        }
+    }
+
+    /**
+     * @requires extension pdo_pgsql
+     *
+     * @group integration
+     */
+    public function testSavePostgresRefreshesSameKeyInsideTransaction()
+    {
+        if (!$host = getenv('POSTGRES_HOST')) {
+            $this->markTestSkipped('Missing POSTGRES_HOST env variable');
+        }
+
+        $dsn = 'pgsql:host='.$host.';user=postgres;password=password';
+        $pdo = new \PDO($dsn);
+        $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
+
+        try {
+            $store = new PdoStore($pdo);
+            $store->createTable();
+
+            $key = new Key(uniqid(__METHOD__, true));
+            $store->save($key);
+
+            $pdo->beginTransaction();
+            $store->save($key);
+            $this->assertTrue($store->exists($key));
+            $pdo->rollBack();
+        } finally {
+            if ($pdo->inTransaction()) {
+                $pdo->rollBack();
+            }
+            $pdo->exec('DROP TABLE IF EXISTS lock_keys');
+        }
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/RedisProxyStoreFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/RedisProxyStoreFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/RedisProxyStoreFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/RedisProxyStoreFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
             $this->markTestSkipped();
         }
 
-        $store = StoreFactory::createStore($this->createMock(RedisProxy::class));
+        $store = StoreFactory::createStore($this->createStub(RedisProxy::class));
 
         $this->assertInstanceOf(RedisStore::class, $store);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/ZookeeperStoreFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/ZookeeperStoreFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Lock/Tests/Store/ZookeeperStoreFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Lock/Tests/Store/ZookeeperStoreFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
 {
     public function testCreateZooKeeperStore()
     {
-        $store = StoreFactory::createStore($this->createMock(\Zookeeper::class));
+        $store = StoreFactory::createStore($this->createStub(\Zookeeper::class));
 
         $this->assertInstanceOf(ZookeeperStore::class, $store);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesApiAsyncAwsTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesApiAsyncAwsTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesApiAsyncAwsTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesApiAsyncAwsTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -123,7 +123,7 @@
 
     public function testSendThrowsForErrorResponse()
     {
-        $client = new MockHttpClient(function (string $method, string $url, array $options): ResponseInterface {
+        $client = new MockHttpClient(static function (string $method, string $url, array $options): ResponseInterface {
             $json = json_encode([
                 'message' => 'i\'m a teapot',
                 'type' => 'sender',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesHttpAsyncAwsTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesHttpAsyncAwsTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesHttpAsyncAwsTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesHttpAsyncAwsTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -116,7 +116,7 @@
 
     public function testSendThrowsForErrorResponse()
     {
-        $client = new MockHttpClient(function (string $method, string $url, array $options): ResponseInterface {
+        $client = new MockHttpClient(static function (string $method, string $url, array $options): ResponseInterface {
             $json = json_encode([
                 'message' => 'i\'m a teapot',
                 'type' => 'sender',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesApiAsyncAwsTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesApiAsyncAwsTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesApiAsyncAwsTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesApiAsyncAwsTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
             $host = $configuration->get('region');
         }
 
-        return sprintf('ses+api://%s@%s', $configuration->get('accessKeyId'), $host);
+        return \sprintf('ses+api://%s@%s', $configuration->get('accessKeyId'), $host);
     }
 
     protected function getRequest(SentMessage $message): SendEmailRequest
@@ -46,7 +46,7 @@
         try {
             $email = MessageConverter::toEmail($message->getOriginalMessage());
         } catch (\Exception $e) {
-            throw new RuntimeException(sprintf('Unable to send message with the "%s" transport: ', __CLASS__).$e->getMessage(), 0, $e);
+            throw new RuntimeException(\sprintf('Unable to send message with the "%s" transport: ', __CLASS__).$e->getMessage(), 0, $e);
         }
 
         if ($email->getAttachments()) {
@@ -115,7 +115,7 @@
     {
         $emailRecipients = array_merge($email->getCc(), $email->getBcc());
 
-        return array_filter($envelope->getRecipients(), fn (Address $address) => !\in_array($address, $emailRecipients, true));
+        return array_filter($envelope->getRecipients(), static fn (Address $address) => !\in_array($address, $emailRecipients, true));
     }
 
     protected function stringifyAddresses(array $addresses): array
@@ -127,7 +127,7 @@
     {
         // AWS does not support UTF-8 address
         if (preg_match('~[\x00-\x08\x10-\x19\x7F-\xFF\r\n]~', $name = $a->getName())) {
-            return sprintf('=?UTF-8?B?%s?= <%s>',
+            return \sprintf('=?UTF-8?B?%s?= <%s>',
                 base64_encode($name),
                 $a->getEncodedAddress()
             );
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesHttpAsyncAwsTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesHttpAsyncAwsTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesHttpAsyncAwsTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesHttpAsyncAwsTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
             $host = $configuration->get('region');
         }
 
-        return sprintf('ses+https://%s@%s', $configuration->get('accessKeyId'), $host);
+        return \sprintf('ses+https://%s@%s', $configuration->get('accessKeyId'), $host);
     }
 
     protected function doSend(SentMessage $message): void
@@ -60,7 +60,7 @@
             $message->setMessageId($result->getMessageId());
             $message->appendDebug($response->getInfo('debug') ?? '');
         } catch (HttpException $e) {
-            $exception = new HttpTransportException(sprintf('Unable to send an email: %s (code %s).', $e->getAwsMessage() ?: $e->getMessage(), $e->getAwsCode() ?: $e->getCode()), $e->getResponse(), $e->getCode(), $e);
+            $exception = new HttpTransportException(\sprintf('Unable to send an email: %s (code %s).', $e->getAwsMessage() ?: $e->getMessage(), $e->getAwsCode() ?: $e->getCode()), $e->getResponse(), $e->getCode(), $e);
             $exception->appendDebug($e->getResponse()->getInfo('debug') ?? '');
 
             throw $exception;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesSmtpTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesSmtpTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesSmtpTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesSmtpTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
     public function __construct(string $username, #[\SensitiveParameter] string $password, ?string $region = null, ?EventDispatcherInterface $dispatcher = null, ?LoggerInterface $logger = null, string $host = 'default')
     {
         if ('default' === $host) {
-            $host = sprintf('email-smtp.%s.amazonaws.com', $region ?: 'eu-west-1');
+            $host = \sprintf('email-smtp.%s.amazonaws.com', $region ?: 'eu-west-1');
         }
 
         parent::__construct($host, 465, true, $dispatcher, $logger);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/RemoteEvent/BrevoPayloadConverter.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/RemoteEvent/BrevoPayloadConverter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/RemoteEvent/BrevoPayloadConverter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/RemoteEvent/BrevoPayloadConverter.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,13 +43,13 @@
                 'proxy_open' => MailerEngagementEvent::OPEN,
                 'unique_proxy_open' => MailerEngagementEvent::OPEN,
                 'complaint' => MailerEngagementEvent::SPAM,
-                default => throw new ParseException(sprintf('Unsupported event "%s".', $payload['event'])),
+                default => throw new ParseException(\sprintf('Unsupported event "%s".', $payload['event'])),
             };
             $event = new MailerEngagementEvent($name, $payload['message-id'], $payload);
         }
 
         if (!$date = \DateTimeImmutable::createFromFormat('U', $payload['ts_event'])) {
-            throw new ParseException(sprintf('Invalid date "%s".', $payload['ts_event']));
+            throw new ParseException(\sprintf('Invalid date "%s".', $payload['ts_event']));
         }
 
         if (
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/Transport/BrevoApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/Transport/BrevoApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/Transport/BrevoApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/Transport/BrevoApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
     public function __toString(): string
     {
-        return sprintf('brevo+api://%s', $this->getEndpoint());
+        return \sprintf('brevo+api://%s', $this->getEndpoint());
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
@@ -59,13 +59,13 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface) {
-            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote Brevo server.', $response, 0, $e);
         }
 
         if (201 !== $statusCode) {
-            throw new HttpTransportException('Unable to send an email: '.($result['message'] ?? $response->getContent(false)).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.($result['message'] ?? $response->getContent(false)).\sprintf(' (code %d).', $statusCode), $response);
         }
 
         $sentMessage->setMessageId($result['messageId']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/Webhook/BrevoRequestParser.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/Webhook/BrevoRequestParser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/Webhook/BrevoRequestParser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Brevo/Webhook/BrevoRequestParser.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,9 +35,9 @@
         return new ChainRequestMatcher([
             new MethodRequestMatcher('POST'),
             new IsJsonRequestMatcher(),
-            // https://developers.brevo.com/docs/how-to-use-webhooks#securing-your-webhooks
+            // https://help.brevo.com/hc/en-us/articles/15127404548498-Brevo-IP-ranges-List-of-publicly-exposed-services
             // localhost is added for testing
-            new IpsRequestMatcher(['185.107.232.1/24', '1.179.112.1/20', '127.0.0.1']),
+            new IpsRequestMatcher(['1.179.112.0/20', '172.246.240.0/20', '127.0.0.1']),
         ]);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Infobip/Tests/Transport/InfobipApiTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Infobip/Tests/Transport/InfobipApiTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Infobip/Tests/Transport/InfobipApiTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Infobip/Tests/Transport/InfobipApiTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -300,17 +300,17 @@
         $this->assertInstanceOf(SentMessage::class, $sentMessage);
         $this->assertStringMatchesFormat(
             <<<'TXT'
-            Subject: Subject of the email
-            From: from@example.com
-            To: to@example.com
-            Message-ID: <%x@example.com>
-            MIME-Version: %f
-            Date: %s
-            Content-Type: text/plain; charset=utf-8
-            Content-Transfer-Encoding: quoted-printable
+                Subject: Subject of the email
+                From: from@example.com
+                To: to@example.com
+                Message-ID: <%x@example.com>
+                MIME-Version: %f
+                Date: %s
+                Content-Type: text/plain; charset=utf-8
+                Content-Transfer-Encoding: quoted-printable
 
-            Some text
-            TXT,
+                Some text
+                TXT,
             $sentMessage->toString()
         );
     }
@@ -334,28 +334,28 @@
         $this->assertInstanceOf(SentMessage::class, $sentMessage);
         $this->assertStringMatchesFormat(
             <<<'TXT'
-            Subject: Subject of the email
-            From: From <from@example.com>
-            To: to1@example.com, to2@example.com
-            Cc: cc@example.com
-            Date: Thu, 28 Apr 2022 14:00:00 +0000
-            Reply-To: replyTo@example.com
-            Message-ID: <%x@example.com>
-            MIME-Version: 1.0
-            Content-Type: multipart/alternative; boundary=%s
-
-            --%s
-            Content-Type: text/plain; charset=utf-8
-            Content-Transfer-Encoding: quoted-printable
-
-            Some text
-            --%s
-            Content-Type: text/html; charset=utf-8
-            Content-Transfer-Encoding: quoted-printable
-
-            <html><p>Hello!</p></html>
-            --%s--
-            TXT,
+                Subject: Subject of the email
+                From: From <from@example.com>
+                To: to1@example.com, to2@example.com
+                Cc: cc@example.com
+                Date: Thu, 28 Apr 2022 14:00:00 +0000
+                Reply-To: replyTo@example.com
+                Message-ID: <%x@example.com>
+                MIME-Version: 1.0
+                Content-Type: multipart/alternative; boundary=%s
+
+                --%s
+                Content-Type: text/plain; charset=utf-8
+                Content-Transfer-Encoding: quoted-printable
+
+                Some text
+                --%s
+                Content-Type: text/html; charset=utf-8
+                Content-Transfer-Encoding: quoted-printable
+
+                <html><p>Hello!</p></html>
+                --%s--
+                TXT,
             $sentMessage->toString()
         );
         $this->assertInstanceOf(Email::class, $sentMessage->getOriginalMessage());
@@ -375,29 +375,29 @@
         $this->assertInstanceOf(SentMessage::class, $sentMessage);
         $this->assertStringMatchesFormat(
             <<<'TXT'
-            %a
-            Content-Type: multipart/mixed; boundary=%s
+                %a
+                Content-Type: multipart/mixed; boundary=%s
 
-            --%s
-            Content-Type: text/plain; charset=utf-8
-            Content-Transfer-Encoding: quoted-printable
-
-            foobar
-            --%s
-            Content-Type: text/plain; name=attachment.txt
-            Content-Transfer-Encoding: base64
-            Content-Disposition: attachment; name=attachment.txt;
-             filename=attachment.txt
-
-            c29tZSBhdHRhY2htZW50
-            --%s
-            Content-Type: text/plain; name=inline.txt
-            Content-Transfer-Encoding: base64
-            Content-Disposition: inline; name=inline.txt; filename=inline.txt
-
-            c29tZSBpbmxpbmUgYXR0YWNobWVudA==
-            --%s--
-            TXT,
+                --%s
+                Content-Type: text/plain; charset=utf-8
+                Content-Transfer-Encoding: quoted-printable
+
+                foobar
+                --%s
+                Content-Type: text/plain; name=attachment.txt
+                Content-Transfer-Encoding: base64
+                Content-Disposition: attachment; name=attachment.txt;
+                 filename=attachment.txt
+
+                c29tZSBhdHRhY2htZW50
+                --%s
+                Content-Type: text/plain; name=inline.txt
+                Content-Transfer-Encoding: base64
+                Content-Disposition: inline; name=inline.txt; filename=inline.txt
+
+                c29tZSBpbmxpbmUgYXR0YWNobWVudA==
+                --%s--
+                TXT,
             $sentMessage->toString()
         );
     }
@@ -417,14 +417,14 @@
         $this->assertInstanceOf(SentMessage::class, $sentMessage);
         $this->assertStringMatchesFormat(
             <<<'TXT'
-            %a
-            X-Infobip-IntermediateReport: true
-            X-Infobip-NotifyUrl: https://foo.bar
-            X-Infobip-NotifyContentType: application/json
-            X-Infobip-MessageId: RANDOM-CUSTOM-ID
-            X-Infobip-Track: false
-            %a
-            TXT,
+                %a
+                X-Infobip-IntermediateReport: true
+                X-Infobip-NotifyUrl: https://foo.bar
+                X-Infobip-NotifyContentType: application/json
+                X-Infobip-MessageId: RANDOM-CUSTOM-ID
+                X-Infobip-Track: false
+                %a
+                TXT,
             $sentMessage->toString()
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Infobip/Transport/InfobipApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Infobip/Transport/InfobipApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Infobip/Transport/InfobipApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Infobip/Transport/InfobipApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,7 +52,7 @@
 
     public function __toString(): string
     {
-        return sprintf('infobip+api://%s', $this->getEndpoint());
+        return \sprintf('infobip+api://%s', $this->getEndpoint());
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
@@ -65,7 +65,7 @@
 
         $response = $this->client->request(
             'POST',
-            sprintf('https://%s/email/%s/send', $this->getEndpoint(), self::API_VERSION),
+            \sprintf('https://%s/email/%s/send', $this->getEndpoint(), self::API_VERSION),
             [
                 'headers' => $headers,
                 'body' => $formData->bodyToIterable(),
@@ -79,13 +79,13 @@
         }
 
         if (200 !== $statusCode) {
-            throw new HttpTransportException(sprintf('Unable to send an email: "%s" (code %d).', $response->getContent(false), $statusCode), $response);
+            throw new HttpTransportException(\sprintf('Unable to send an email: "%s" (code %d).', $response->getContent(false), $statusCode), $response);
         }
 
         try {
             $result = $response->toArray();
         } catch (DecodingExceptionInterface $e) {
-            throw new HttpTransportException(sprintf('Unable to send an email: "%s" (code %d).', $response->getContent(false), $statusCode), $response, 0, $e);
+            throw new HttpTransportException(\sprintf('Unable to send an email: "%s" (code %d).', $response->getContent(false), $statusCode), $response, 0, $e);
         }
 
         if (isset($result['messages'][0]['messageId'])) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillApiTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillApiTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillApiTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillApiTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -103,7 +103,7 @@
 
     public function testSendThrowsForErrorResponse()
     {
-        $client = new MockHttpClient(fn (string $method, string $url, array $options): ResponseInterface => new JsonMockResponse(['status' => 'error', 'message' => 'i\'m a teapot', 'code' => 418], [
+        $client = new MockHttpClient(static fn (string $method, string $url, array $options): ResponseInterface => new JsonMockResponse(['status' => 'error', 'message' => 'i\'m a teapot', 'code' => 418], [
             'http_code' => 418,
         ]));
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillHttpTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillHttpTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillHttpTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillHttpTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -88,7 +88,7 @@
 
     public function testSendThrowsForErrorResponse()
     {
-        $client = new MockHttpClient(fn (string $method, string $url, array $options): ResponseInterface => new JsonMockResponse(['status' => 'error', 'message' => 'i\'m a teapot', 'code' => 418], [
+        $client = new MockHttpClient(static fn (string $method, string $url, array $options): ResponseInterface => new JsonMockResponse(['status' => 'error', 'message' => 'i\'m a teapot', 'code' => 418], [
             'http_code' => 418,
         ]));
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Transport/MandrillApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Transport/MandrillApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Transport/MandrillApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Transport/MandrillApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mandrill+api://%s', $this->getEndpoint());
+        return \sprintf('mandrill+api://%s', $this->getEndpoint());
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
@@ -56,17 +56,17 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface) {
-            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote Mandrill server.', $response, 0, $e);
         }
 
         if (200 !== $statusCode) {
             if ('error' === ($result['status'] ?? false)) {
-                throw new HttpTransportException('Unable to send an email: '.$result['message'].sprintf(' (code %d).', $result['code']), $response);
+                throw new HttpTransportException('Unable to send an email: '.$result['message'].\sprintf(' (code %d).', $result['code']), $response);
             }
 
-            throw new HttpTransportException(sprintf('Unable to send an email (code %d).', $result['code']), $response);
+            throw new HttpTransportException(\sprintf('Unable to send an email (code %d).', $result['code']), $response);
         }
 
         $firstRecipient = reset($result);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Transport/MandrillHttpTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Transport/MandrillHttpTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Transport/MandrillHttpTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailchimp/Transport/MandrillHttpTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mandrill+https://%s', $this->getEndpoint());
+        return \sprintf('mandrill+https://%s', $this->getEndpoint());
     }
 
     protected function doSendHttp(SentMessage $message): ResponseInterface
@@ -50,7 +50,7 @@
         $response = $this->client->request('POST', 'https://'.$this->getEndpoint().'/api/1.0/messages/send-raw.json', [
             'json' => [
                 'key' => $this->key,
-                'to' => array_map(fn (Address $recipient): string => $recipient->getAddress(), $envelope->getRecipients()),
+                'to' => array_map(static fn (Address $recipient): string => $recipient->getAddress(), $envelope->getRecipients()),
                 'from_email' => $envelope->getSender()->getAddress(),
                 'from_name' => $envelope->getSender()->getName(),
                 'raw_message' => $message->toString(),
@@ -61,17 +61,17 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface) {
-            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote Mandrill server.', $response, 0, $e);
         }
 
         if (200 !== $statusCode) {
             if ('error' === ($result['status'] ?? false)) {
-                throw new HttpTransportException('Unable to send an email: '.$result['message'].sprintf(' (code %d).', $result['code']), $response);
+                throw new HttpTransportException('Unable to send an email: '.$result['message'].\sprintf(' (code %d).', $result['code']), $response);
             }
 
-            throw new HttpTransportException(sprintf('Unable to send an email (code %d).', $result['code']), $response);
+            throw new HttpTransportException(\sprintf('Unable to send an email (code %d).', $result['code']), $response);
         }
 
         $message->setMessageId($result[0]['_id']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Tests/Transport/MailerSendApiTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Tests/Transport/MailerSendApiTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Tests/Transport/MailerSendApiTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Tests/Transport/MailerSendApiTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -129,11 +129,9 @@
 
     public function testSendThrowsForErrorResponse()
     {
-        $client = new MockHttpClient(function (string $method, string $url, array $options): ResponseInterface {
-            return new JsonMockResponse(['message' => 'i\'m a teapot'], [
-                'http_code' => 418,
-            ]);
-        });
+        $client = new MockHttpClient(static fn (string $method, string $url, array $options): ResponseInterface => new JsonMockResponse(['message' => 'i\'m a teapot'], [
+            'http_code' => 418,
+        ]));
 
         $transport = new MailerSendApiTransport('ACCESS_KEY', $client);
 
@@ -150,18 +148,16 @@
 
     public function testSendThrowsForAllSuppressed()
     {
-        $client = new MockHttpClient(function (string $method, string $url, array $options): ResponseInterface {
-            return new JsonMockResponse([
-                'message' => 'There are some warnings for your request.',
-                'warnings' => [
-                    [
-                        'type' => 'ALL_SUPPRESSED',
-                    ],
+        $client = new MockHttpClient(static fn (string $method, string $url, array $options): ResponseInterface => new JsonMockResponse([
+            'message' => 'There are some warnings for your request.',
+            'warnings' => [
+                [
+                    'type' => 'ALL_SUPPRESSED',
                 ],
-            ], [
-                'http_code' => 202,
-            ]);
-        });
+            ],
+        ], [
+            'http_code' => 202,
+        ]));
 
         $transport = new MailerSendApiTransport('ACCESS_KEY', $client);
 
@@ -178,11 +174,9 @@
 
     public function testSendThrowsForBadResponse()
     {
-        $client = new MockHttpClient(function (string $method, string $url, array $options): ResponseInterface {
-            return new MockResponse('test', [
-                'http_code' => 202,
-            ]);
-        });
+        $client = new MockHttpClient(static fn (string $method, string $url, array $options): ResponseInterface => new MockResponse('test', [
+            'http_code' => 202,
+        ]));
 
         $transport = new MailerSendApiTransport('ACCESS_KEY', $client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mailersend+api://%s', $this->getEndpoint());
+        return \sprintf('mailersend+api://%s', $this->getEndpoint());
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
@@ -63,11 +63,11 @@
         try {
             $result = '' !== $content ? $response->toArray(false) : null;
         } catch (JsonException $e) {
-            throw new HttpTransportException(sprintf('Unable to send an email: "%s" (code %d).', $content, $statusCode), $response, 0, $e);
+            throw new HttpTransportException(\sprintf('Unable to send an email: "%s" (code %d).', $content, $statusCode), $response, 0, $e);
         }
 
         if (202 !== $statusCode) {
-            throw new HttpTransportException('Unable to send an email: '.($result['message'] ?? '').sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.($result['message'] ?? '').\sprintf(' (code %d).', $statusCode), $response);
         }
 
         if (isset($result['warnings'][0]['type']) && 'ALL_SUPPRESSED' === $result['warnings'][0]['type']) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendSmtpTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendSmtpTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendSmtpTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendSmtpTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
 {
     public function __construct(string $username, #[\SensitiveParameter] string $password, ?EventDispatcherInterface $dispatcher = null, ?LoggerInterface $logger = null)
     {
-        parent::__construct('smtp.mailersend.net', 587, true, $dispatcher, $logger);
+        parent::__construct('smtp.mailersend.net', 587, false, $dispatcher, $logger);
 
         $this->setUsername($username);
         $this->setPassword($password);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendTransportFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendTransportFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendTransportFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendTransportFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
 
             'mailersend', 'mailersend+smtp' => new MailerSendSmtpTransport($this->getUser($dsn), $this->getPassword($dsn), $this->dispatcher, $this->logger),
 
-            default => throw new UnsupportedSchemeException($dsn, 'mailersend', $this->getSupportedSchemes())
+            default => throw new UnsupportedSchemeException($dsn, 'mailersend', $this->getSupportedSchemes()),
         };
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/RemoteEvent/MailgunPayloadConverter.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/RemoteEvent/MailgunPayloadConverter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/RemoteEvent/MailgunPayloadConverter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/RemoteEvent/MailgunPayloadConverter.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,12 +46,12 @@
                 'unsubscribed' => MailerEngagementEvent::UNSUBSCRIBE,
                 'opened' => MailerEngagementEvent::OPEN,
                 'complained' => MailerEngagementEvent::SPAM,
-                default => throw new ParseException(sprintf('Unsupported event "%s".', $payload['event'])),
+                default => throw new ParseException(\sprintf('Unsupported event "%s".', $payload['event'])),
             };
             $event = new MailerEngagementEvent($name, $payload['id'], $payload);
         }
-        if (!$date = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $payload['timestamp']))) {
-            throw new ParseException(sprintf('Invalid date "%s".', sprintf('%.6F', $payload['timestamp'])));
+        if (!$date = \DateTimeImmutable::createFromFormat('U.u', \sprintf('%.6F', $payload['timestamp']))) {
+            throw new ParseException(\sprintf('Invalid date "%s".', \sprintf('%.6F', $payload['timestamp'])));
         }
         $event->setDate($date);
         $event->setRecipientEmail($payload['recipient']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -98,14 +98,8 @@
         $this->assertEquals('amp-html-value', $payload['amp-html']);
     }
 
-    /**
-     * @legacy
-     */
     public function testPrefixHeaderWithH()
     {
-        $json = json_encode(['foo' => 'bar']);
-        $deliveryTime = (new \DateTimeImmutable('2020-03-20 13:01:00'))->format(\DateTimeInterface::RFC2822);
-
         $email = new Email();
         $email->getHeaders()->addTextHeader('h:bar', 'bar-value');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mailgun+api://%s?domain=%s', $this->getEndpoint(), $this->domain);
+        return \sprintf('mailgun+api://%s?domain=%s', $this->getEndpoint(), $this->domain);
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
@@ -59,7 +59,7 @@
             $headers[] = $header->toString();
         }
 
-        $endpoint = sprintf('%s/v3/%s/messages', $this->getEndpoint(), urlencode($this->domain));
+        $endpoint = \sprintf('%s/v3/%s/messages', $this->getEndpoint(), urlencode($this->domain));
         $response = $this->client->request('POST', 'https://'.$endpoint, [
             'http_version' => '1.1',
             'auth_basic' => 'api:'.$this->key,
@@ -71,13 +71,13 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface) {
-            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote Mailgun server.', $response, 0, $e);
         }
 
         if (200 !== $statusCode) {
-            throw new HttpTransportException('Unable to send an email: '.$result['message'].sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$result['message'].\sprintf(' (code %d).', $statusCode), $response);
         }
 
         $sentMessage->setMessageId($result['id']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunHttpTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunHttpTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunHttpTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunHttpTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mailgun+https://%s?domain=%s', $this->getEndpoint(), $this->domain);
+        return \sprintf('mailgun+https://%s?domain=%s', $this->getEndpoint(), $this->domain);
     }
 
     protected function doSendHttp(SentMessage $message): ResponseInterface
@@ -61,7 +61,7 @@
             $headers[] = $header->toString();
         }
 
-        $endpoint = sprintf('%s/v3/%s/messages.mime', $this->getEndpoint(), urlencode($this->domain));
+        $endpoint = \sprintf('%s/v3/%s/messages.mime', $this->getEndpoint(), urlencode($this->domain));
         $response = $this->client->request('POST', 'https://'.$endpoint, [
             'http_version' => '1.1',
             'auth_basic' => 'api:'.$this->key,
@@ -73,13 +73,13 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface) {
-            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote Mailgun server.', $response, 0, $e);
         }
 
         if (200 !== $statusCode) {
-            throw new HttpTransportException('Unable to send an email: '.$result['message'].sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$result['message'].\sprintf(' (code %d).', $statusCode), $response);
         }
 
         $message->setMessageId($result['id']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunSmtpTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunSmtpTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunSmtpTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunSmtpTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
 
     public function __construct(string $username, #[\SensitiveParameter] string $password, ?string $region = null, ?EventDispatcherInterface $dispatcher = null, ?LoggerInterface $logger = null)
     {
-        parent::__construct('us' !== ($region ?: 'us') ? sprintf('smtp.%s.mailgun.org', $region) : 'smtp.mailgun.org', 587, false, $dispatcher, $logger);
+        parent::__construct('us' !== ($region ?: 'us') ? \sprintf('smtp.%s.mailgun.org', $region) : 'smtp.mailgun.org', 587, false, $dispatcher, $logger);
 
         $this->setUsername($username);
         $this->setPassword($password);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -23,6 +23,9 @@
         "symfony/http-client": "^5.4|^6.0|^7.0",
         "symfony/webhook": "^6.3|^7.0"
     },
+    "conflict": {
+      "symfony/mime": "<6.2"
+    },
     "autoload": {
         "psr-4": { "Symfony\\Component\\Mailer\\Bridge\\Mailjet\\": "" },
         "exclude-from-classmap": [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/RemoteEvent/MailjetPayloadConverter.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/RemoteEvent/MailjetPayloadConverter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/RemoteEvent/MailjetPayloadConverter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/RemoteEvent/MailjetPayloadConverter.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,13 +36,13 @@
                 'open' => MailerEngagementEvent::OPEN,
                 'spam' => MailerEngagementEvent::SPAM,
                 'unsub' => MailerEngagementEvent::UNSUBSCRIBE,
-                default => throw new ParseException(sprintf('Unsupported event "%s".', $payload['event'])),
+                default => throw new ParseException(\sprintf('Unsupported event "%s".', $payload['event'])),
             };
             $event = new MailerEngagementEvent($name, $payload['MessageID'], $payload);
         }
 
         if (!$date = \DateTimeImmutable::createFromFormat('U', $payload['time'])) {
-            throw new ParseException(sprintf('Invalid date "%s".', $payload['time']));
+            throw new ParseException(\sprintf('Invalid date "%s".', $payload['time']));
         }
 
         $event->setDate($date);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Transport/MailjetApiTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Transport/MailjetApiTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Transport/MailjetApiTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Transport/MailjetApiTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,7 @@
 use Symfony\Component\Mailer\SentMessage;
 use Symfony\Component\Mime\Address;
 use Symfony\Component\Mime\Email;
+use Symfony\Component\Mime\Part\DataPart;
 
 class MailjetApiTransportTest extends TestCase
 {
@@ -257,7 +258,7 @@
             ->text('foobar');
 
         $this->expectExceptionObject(
-            new HttpTransportException(sprintf('Unable to send an email: "%s" malformed api response.', $json), $response)
+            new HttpTransportException(\sprintf('Unable to send an email: "%s" malformed api response.', $json), $response)
         );
 
         $transport->send($email);
@@ -430,4 +431,91 @@
             $method->invoke($transport, $email, $envelope)
         );
     }
+
+    public function testTemplateErrorReportingHeaderSupportsSmtpRelayFormat()
+    {
+        $email = (new Email())
+            ->subject('Sending email to mailjet API')
+            ->replyTo(new Address('qux@example.com', 'Qux'));
+        $email->getHeaders()
+            ->addTextHeader('X-MJ-TemplateErrorReporting', 'errors@mailjet.com');
+        $envelope = new Envelope(new Address('foo@example.com', 'Foo'), [
+            new Address('bar@example.com', 'Bar'),
+        ]);
+
+        $transport = new MailjetApiTransport(self::USER, self::PASSWORD);
+        $method = new \ReflectionMethod(MailjetApiTransport::class, 'getPayload');
+        self::assertSame(
+            [
+                'Messages' => [
+                    [
+                        'From' => [
+                            'Email' => 'foo@example.com',
+                            'Name' => 'Foo',
+                        ],
+                        'To' => [
+                            [
+                                'Email' => 'bar@example.com',
+                                'Name' => '',
+                            ],
+                        ],
+                        'Subject' => 'Sending email to mailjet API',
+                        'Attachments' => [],
+                        'InlinedAttachments' => [],
+                        'ReplyTo' => [
+                            'Email' => 'qux@example.com',
+                            'Name' => 'Qux',
+                        ],
+                        'TemplateErrorReporting' => [
+                            'Email' => 'errors@mailjet.com',
+                            'Name' => '',
+                        ],
+                    ],
+                ],
+                'SandBoxMode' => false,
+            ],
+            $method->invoke($transport, $email, $envelope)
+        );
+    }
+
+    public function testInlineWithCustomContentId()
+    {
+        $imagePart = (new DataPart('text-contents', 'text.txt'));
+        $imagePart->asInline();
+        $imagePart->setContentId('content-identifier@symfony');
+
+        $email = new Email();
+        $email->addPart($imagePart);
+        $envelope = new Envelope(new Address('alice@system.com'), [new Address('bob@system.com')]);
+
+        $transport = new MailjetApiTransport(self::USER, self::PASSWORD);
+        $method = new \ReflectionMethod(MailjetApiTransport::class, 'getPayload');
+        $payload = $method->invoke($transport, $email, $envelope);
+
+        $contentId = $payload['Messages'][0]['InlinedAttachments'][0]['ContentID'] ?? null;
+
+        $this->assertSame('content-identifier@symfony', $contentId);
+        $this->assertCount(1, $payload['Messages']);
+        $this->assertCount(1, $payload['Messages'][0]['InlinedAttachments']);
+    }
+
+    public function testInlineWithoutCustomContentId()
+    {
+        $imagePart = (new DataPart('text-contents', 'text.txt'));
+        $imagePart->asInline();
+
+        $email = new Email();
+        $email->addPart($imagePart);
+        $envelope = new Envelope(new Address('alice@system.com'), [new Address('bob@system.com')]);
+
+        $transport = new MailjetApiTransport(self::USER, self::PASSWORD);
+        $method = new \ReflectionMethod(MailjetApiTransport::class, 'getPayload');
+        $payload = $method->invoke($transport, $email, $envelope);
+
+        $contentId = $payload['Messages'][0]['InlinedAttachments'][0]['ContentID'] ?? null;
+
+        $this->assertSame('text.txt', $contentId ?? null);
+        $this->assertCount(1, $payload['Messages']);
+        $this->assertCount(1, $payload['Messages'][0]['InlinedAttachments']);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Webhook/MailjetRequestParserTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Webhook/MailjetRequestParserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Webhook/MailjetRequestParserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Webhook/MailjetRequestParserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,9 +11,11 @@
 
 namespace Symfony\Component\Mailer\Bridge\Mailjet\Tests\Webhook;
 
+use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Mailer\Bridge\Mailjet\RemoteEvent\MailjetPayloadConverter;
 use Symfony\Component\Mailer\Bridge\Mailjet\Webhook\MailjetRequestParser;
 use Symfony\Component\Webhook\Client\RequestParserInterface;
+use Symfony\Component\Webhook\Exception\RejectWebhookException;
 use Symfony\Component\Webhook\Test\AbstractRequestParserTestCase;
 
 class MailjetRequestParserTest extends AbstractRequestParserTestCase
@@ -22,4 +24,44 @@
     {
         return new MailjetRequestParser(new MailjetPayloadConverter());
     }
+
+    protected function getSecret(): string
+    {
+        return ':top-secret';
+    }
+
+    protected function createRequest(string $payload): Request
+    {
+        return Request::create('/', 'POST', [], [], [], [
+            'Content-Type' => 'application/json',
+            'HTTP_Authorization' => 'Basic '.base64_encode(':top-secret'),
+        ], $payload);
+    }
+
+    public function testRejectMissingCredentials()
+    {
+        $parser = new MailjetRequestParser(new MailjetPayloadConverter());
+        $payload = file_get_contents(__DIR__.'/Fixtures/sent.json');
+        $request = Request::create('/', 'POST', [], [], [], [
+            'Content-Type' => 'application/json',
+        ], $payload);
+
+        $this->expectException(RejectWebhookException::class);
+        $this->expectExceptionMessage('Invalid credentials.');
+        $parser->parse($request, ':top-secret');
+    }
+
+    public function testRejectWrongSecret()
+    {
+        $parser = new MailjetRequestParser(new MailjetPayloadConverter());
+        $payload = file_get_contents(__DIR__.'/Fixtures/sent.json');
+        $request = Request::create('/', 'POST', [], [], [], [
+            'Content-Type' => 'application/json',
+            'HTTP_Authorization' => 'Basic '.base64_encode(':wrong-secret'),
+        ], $payload);
+
+        $this->expectException(RejectWebhookException::class);
+        $this->expectExceptionMessage('Invalid credentials.');
+        $parser->parse($request, ':top-secret');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Transport/MailjetApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Transport/MailjetApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Transport/MailjetApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Transport/MailjetApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,25 +30,25 @@
     private const HOST = 'api.mailjet.com';
     private const API_VERSION = '3.1';
     private const FORBIDDEN_HEADERS = [
-        'Date', 'X-CSA-Complaints', 'Message-Id', 'X-MJ-StatisticsContactsListID',
-        'DomainKey-Status', 'Received-SPF', 'Authentication-Results', 'Received',
-        'From', 'Sender', 'Subject', 'To', 'Cc', 'Bcc', 'Reply-To', 'Return-Path', 'Delivered-To', 'DKIM-Signature',
-        'X-Feedback-Id', 'X-Mailjet-Segmentation', 'List-Id', 'X-MJ-MID', 'X-MJ-ErrorMessage',
-        'X-Mailjet-Debug', 'User-Agent', 'X-Mailer', 'X-MJ-WorkflowID',
+        'date', 'x-csa-complaints', 'message-id', 'x-mj-statisticscontactslistid',
+        'domainkey-status', 'received-spf', 'authentication-results', 'received',
+        'from', 'sender', 'subject', 'to', 'cc', 'bcc', 'reply-to', 'return-path', 'delivered-to', 'dkim-signature',
+        'x-feedback-id', 'x-mailjet-segmentation', 'list-id', 'x-mj-mid', 'x-mj-errormessage',
+        'x-mailjet-debug', 'user-agent', 'x-mailer', 'x-mj-workflowid',
     ];
     private const HEADER_TO_MESSAGE = [
-        'X-MJ-TemplateLanguage' => ['TemplateLanguage', 'bool'],
-        'X-MJ-TemplateID' => ['TemplateID', 'int'],
-        'X-MJ-TemplateErrorReporting' => ['TemplateErrorReporting', 'json'],
-        'X-MJ-TemplateErrorDeliver' => ['TemplateErrorDeliver', 'bool'],
-        'X-MJ-Vars' => ['Variables', 'json'],
-        'X-MJ-CustomID' => ['CustomID', 'string'],
-        'X-MJ-EventPayload' => ['EventPayload', 'string'],
-        'X-Mailjet-Campaign' => ['CustomCampaign', 'string'],
-        'X-Mailjet-DeduplicateCampaign' => ['DeduplicateCampaign', 'bool'],
-        'X-Mailjet-Prio' => ['Priority', 'int'],
-        'X-Mailjet-TrackClick' => ['TrackClicks', 'string'],
-        'X-Mailjet-TrackOpen' => ['TrackOpens', 'string'],
+        'x-mj-templatelanguage' => ['TemplateLanguage', 'bool'],
+        'x-mj-templateid' => ['TemplateID', 'int'],
+        'x-mj-templateerrorreporting' => ['TemplateErrorReporting', 'templateerrorreporting'],
+        'x-mj-templateerrordeliver' => ['TemplateErrorDeliver', 'bool'],
+        'x-mj-vars' => ['Variables', 'json'],
+        'x-mj-customid' => ['CustomID', 'string'],
+        'x-mj-eventpayload' => ['EventPayload', 'string'],
+        'x-mailjet-campaign' => ['CustomCampaign', 'string'],
+        'x-mailjet-deduplicatecampaign' => ['DeduplicateCampaign', 'bool'],
+        'x-mailjet-prio' => ['Priority', 'int'],
+        'x-mailjet-trackclick' => ['TrackClicks', 'string'],
+        'x-mailjet-trackopen' => ['TrackOpens', 'string'],
     ];
 
     private string $privateKey;
@@ -66,12 +66,12 @@
 
     public function __toString(): string
     {
-        return sprintf('mailjet+api://%s', $this->getEndpoint().($this->sandbox ? '?sandbox=true' : ''));
+        return \sprintf('mailjet+api://%s', $this->getEndpoint().($this->sandbox ? '?sandbox=true' : ''));
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
     {
-        $response = $this->client->request('POST', sprintf('https://%s/v%s/send', $this->getEndpoint(), self::API_VERSION), [
+        $response = $this->client->request('POST', \sprintf('https://%s/v%s/send', $this->getEndpoint(), self::API_VERSION), [
             'headers' => [
                 'Accept' => 'application/json',
             ],
@@ -83,7 +83,7 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface) {
-            throw new HttpTransportException(sprintf('Unable to send an email: "%s" (code %d).', $response->getContent(false), $statusCode), $response);
+            throw new HttpTransportException(\sprintf('Unable to send an email: "%s" (code %d).', $response->getContent(false), $statusCode), $response);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote Mailjet server.', $response, 0, $e);
         }
@@ -91,12 +91,12 @@
         if (200 !== $statusCode) {
             $errorDetails = $result['Messages'][0]['Errors'][0]['ErrorMessage'] ?? $response->getContent(false);
 
-            throw new HttpTransportException(sprintf('Unable to send an email: "%s" (code %d).', $errorDetails, $statusCode), $response);
+            throw new HttpTransportException(\sprintf('Unable to send an email: "%s" (code %d).', $errorDetails, $statusCode), $response);
         }
 
         // The response needs to contains a 'Messages' key that is an array
         if (!\array_key_exists('Messages', $result) || !\is_array($result['Messages']) || 0 === \count($result['Messages'])) {
-            throw new HttpTransportException(sprintf('Unable to send an email: "%s" malformed api response.', $response->getContent(false)), $response);
+            throw new HttpTransportException(\sprintf('Unable to send an email: "%s" malformed api response.', $response->getContent(false)), $response);
         }
 
         $sentMessage->setMessageId($result['Messages'][0]['To'][0]['MessageID'] ?? '');
@@ -130,7 +130,7 @@
         }
         if ($emails = $email->getReplyTo()) {
             if (1 < $length = \count($emails)) {
-                throw new TransportException(sprintf('Mailjet\'s API only supports one Reply-To email, %d given.', $length));
+                throw new TransportException(\sprintf('Mailjet\'s API only supports one Reply-To email, %d given.', $length));
             }
             $message['ReplyTo'] = $this->formatAddress($emails[0]);
         }
@@ -141,12 +141,13 @@
             $message['HTMLPart'] = $html;
         }
 
-        foreach ($email->getHeaders()->all() as $header) {
-            if ($convertConf = self::HEADER_TO_MESSAGE[$header->getName()] ?? false) {
+        foreach ($email->getHeaders()->all() as $headerName => $header) {
+            if ($convertConf = self::HEADER_TO_MESSAGE[$headerName] ?? false) {
                 $message[$convertConf[0]] = $this->castCustomHeader($header->getBodyAsString(), $convertConf[1]);
                 continue;
             }
-            if (\in_array($header->getName(), self::FORBIDDEN_HEADERS, true)) {
+
+            if (\in_array($headerName, self::FORBIDDEN_HEADERS, true)) {
                 continue;
             }
 
@@ -184,7 +185,7 @@
                 'Base64Content' => $attachment->bodyToString(),
             ];
             if ('inline' === $headers->getHeaderBody('Content-Disposition')) {
-                $formattedAttachment['ContentID'] = $headers->getHeaderParameter('Content-Disposition', 'name');
+                $formattedAttachment['ContentID'] = $attachment->hasContentId() ? $attachment->getContentId() : $filename;
                 $inlines[] = $formattedAttachment;
             } else {
                 $attachments[] = $formattedAttachment;
@@ -206,6 +207,9 @@
             'int' => (int) $value,
             'json' => json_decode($value, true, 512, \JSON_THROW_ON_ERROR),
             'string' => $value,
+
+            // The API transport supports a richer address format than the SMTP relay. Use a special case to support both with BC.
+            'templateerrorreporting' => false !== filter_var($value, \FILTER_VALIDATE_EMAIL) ? ['Email' => $value, 'Name' => ''] : $this->castCustomHeader($value, 'json'),
         };
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Webhook/MailjetRequestParser.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Webhook/MailjetRequestParser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Webhook/MailjetRequestParser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Mailjet/Webhook/MailjetRequestParser.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,6 +39,10 @@
 
     protected function doParse(Request $request, #[\SensitiveParameter] string $secret): ?AbstractMailerEvent
     {
+        if ($secret && !hash_equals('Basic '.base64_encode($secret), $request->headers->get('Authorization', ''))) {
+            throw new RejectWebhookException(403, 'Invalid credentials.');
+        }
+
         try {
             return $this->converter->convert($request->toArray());
         } catch (ParseException $e) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailPace/Tests/Transport/MailPaceApiTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailPace/Tests/Transport/MailPaceApiTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailPace/Tests/Transport/MailPaceApiTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailPace/Tests/Transport/MailPaceApiTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -119,19 +119,17 @@
 
     public function testSendThrowsForErrorsResponse()
     {
-        $client = new MockHttpClient(static function (string $method, string $url, array $options): ResponseInterface {
-            return new JsonMockResponse([
-                'errors' => [
-                    'to' => [
-                        'contains a blocked address',
-                        'number of email addresses exceeds maximum volume',
-                    ],
-                    'attachments.name' => ['Extension file type blocked, see Docs for full list of allowed file types'],
+        $client = new MockHttpClient(static fn (string $method, string $url, array $options): ResponseInterface => new JsonMockResponse([
+            'errors' => [
+                'to' => [
+                    'contains a blocked address',
+                    'number of email addresses exceeds maximum volume',
                 ],
-            ], [
-                'http_code' => 400,
-            ]);
-        });
+                'attachments.name' => ['Extension file type blocked, see Docs for full list of allowed file types'],
+            ],
+        ], [
+            'http_code' => 400,
+        ]));
         $transport = new MailPaceApiTransport('KEY', $client);
         $transport->setPort(8984);
 
@@ -148,9 +146,7 @@
 
     public function testSendThrowsForInternalServerErrorResponse()
     {
-        $client = new MockHttpClient(static function (string $method, string $url, array $options): ResponseInterface {
-            return new MockResponse('', ['http_code' => 500]);
-        });
+        $client = new MockHttpClient(static fn (string $method, string $url, array $options): ResponseInterface => new MockResponse('', ['http_code' => 500]));
         $transport = new MailPaceApiTransport('KEY', $client);
         $transport->setPort(8984);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailPace/Transport/MailPaceApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailPace/Transport/MailPaceApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/MailPace/Transport/MailPaceApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/MailPace/Transport/MailPaceApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mailpace+api://%s', $this->getEndpoint());
+        return \sprintf('mailpace+api://%s', $this->getEndpoint());
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
@@ -61,7 +61,7 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface $e) {
-            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response, 0, $e);
+            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response, 0, $e);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote MailPace endpoint.', $response, 0, $e);
         }
@@ -79,7 +79,7 @@
             } else {
                 $errorMessage .= 'unknown error';
             }
-            $errorMessage .= sprintf(' (code %d).', $statusCode);
+            $errorMessage .= \sprintf(' (code %d).', $statusCode);
             throw new HttpTransportException($errorMessage, $response);
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/OhMySmtp/README.md symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/OhMySmtp/README.md
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/OhMySmtp/README.md	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/OhMySmtp/README.md	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,10 @@
 OhMySMTP Bridge
 ===============
 
+# Deprecation Notice
+
+This package has been deprecated in favor of the symfony/mail-pace-mailer since OhMySMTP has been re-branded as MailPace.
+
 Provides [OhMySMTP](https://ohmysmtp.com) integration for Symfony Mailer.
 
 Configuration example:
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/OhMySmtp/Transport/OhMySmtpApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/OhMySmtp/Transport/OhMySmtpApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/OhMySmtp/Transport/OhMySmtpApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/OhMySmtp/Transport/OhMySmtpApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
 
     public function __toString(): string
     {
-        return sprintf('ohmysmtp+api://%s', $this->getEndpoint());
+        return \sprintf('ohmysmtp+api://%s', $this->getEndpoint());
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
@@ -66,7 +66,7 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface) {
-            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote OhMySMTP endpoint.', $response, 0, $e);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Postmark/RemoteEvent/PostmarkPayloadConverter.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Postmark/RemoteEvent/PostmarkPayloadConverter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Postmark/RemoteEvent/PostmarkPayloadConverter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Postmark/RemoteEvent/PostmarkPayloadConverter.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
                 'SubscriptionChange' => MailerEngagementEvent::UNSUBSCRIBE,
                 'Open' => MailerEngagementEvent::OPEN,
                 'SpamComplaint' => MailerEngagementEvent::SPAM,
-                default => throw new ParseException(sprintf('Unsupported event "%s".', $payload['RecordType'])),
+                default => throw new ParseException(\sprintf('Unsupported event "%s".', $payload['RecordType'])),
             };
             $event = new MailerEngagementEvent($name, $payload['MessageID'], $payload);
         }
@@ -45,7 +45,7 @@
             'SubscriptionChange' => $payload['ChangedAt'],
             'Open' => $payload['ReceivedAt'],
             'SpamComplaint' => $payload['BouncedAt'],
-            default => throw new ParseException(sprintf('Unsupported event "%s".', $payload['RecordType'])),
+            default => throw new ParseException(\sprintf('Unsupported event "%s".', $payload['RecordType'])),
         };
 
         $date = \DateTimeImmutable::createFromFormat(\DateTimeInterface::ATOM, $payloadDate)
@@ -55,7 +55,7 @@
             ?: \DateTimeImmutable::createFromFormat('Y-m-d\TH:i:s.u?P', $payloadDate);
 
         if (!$date) {
-            throw new ParseException(sprintf('Invalid date "%s".', $payloadDate));
+            throw new ParseException(\sprintf('Invalid date "%s".', $payloadDate));
         }
         $event->setDate($date);
         $event->setRecipientEmail($payload['Recipient'] ?? $payload['Email']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Postmark/Transport/PostmarkApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Postmark/Transport/PostmarkApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Postmark/Transport/PostmarkApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Postmark/Transport/PostmarkApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
 
     public function __toString(): string
     {
-        return sprintf('postmark+api://%s', $this->getEndpoint()).($this->messageStream ? '?message_stream='.$this->messageStream : '');
+        return \sprintf('postmark+api://%s', $this->getEndpoint()).($this->messageStream ? '?message_stream='.$this->messageStream : '');
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
@@ -63,13 +63,13 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface) {
-            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote Postmark server.', $response, 0, $e);
         }
 
         if (200 !== $statusCode) {
-            throw new HttpTransportException('Unable to send an email: '.$result['Message'].sprintf(' (code %d).', $result['ErrorCode']), $response);
+            throw new HttpTransportException('Unable to send an email: '.$result['Message'].\sprintf(' (code %d).', $result['ErrorCode']), $response);
         }
 
         $sentMessage->setMessageId($result['MessageID']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayApiTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayApiTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayApiTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayApiTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -94,11 +94,9 @@
 
     public function testSendThrowsForErrorResponse()
     {
-        $client = new MockHttpClient(function (string $method, string $url, array $options): ResponseInterface {
-            return new JsonMockResponse(['message' => 'i\'m a teapot'], [
-                'http_code' => 418,
-            ]);
-        });
+        $client = new MockHttpClient(static fn (string $method, string $url, array $options): ResponseInterface => new JsonMockResponse(['message' => 'i\'m a teapot'], [
+            'http_code' => 418,
+        ]));
         $transport = new ScalewayApiTransport('PROJECT_ID', 'TOKEN', 'fr-par', $client);
 
         $mail = new Email();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Scaleway/Transport/ScalewayApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Scaleway/Transport/ScalewayApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Scaleway/Transport/ScalewayApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Scaleway/Transport/ScalewayApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,13 +45,13 @@
     {
         $region = $this->region ? '?region='.$this->region : '';
 
-        return sprintf('scaleway+api://%s@%s%s', $this->getEndpoint(), $this->projectId, $region);
+        return \sprintf('scaleway+api://%s@%s%s', $this->getEndpoint(), $this->projectId, $region);
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
     {
         $region = $this->region ?? 'fr-par';
-        $path = sprintf('/transactional-email/v1alpha1/regions/%s/emails', $region);
+        $path = \sprintf('/transactional-email/v1alpha1/regions/%s/emails', $region);
 
         $response = $this->client->request('POST', 'https://'.$this->getEndpoint().$path, [
             'json' => $this->getPayload($email, $envelope),
@@ -64,13 +64,13 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface $e) {
-            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote Scaleway server.', $response, 0, $e);
         }
 
         if (200 !== $statusCode) {
-            throw new HttpTransportException('Unable to send an email: '.$result['message'].sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$result['message'].\sprintf(' (code %d).', $statusCode), $response);
         }
 
         $sentMessage->setMessageId($result['emails'][0]['message_id']);
@@ -156,9 +156,7 @@
 
     protected function formatAddresses(array $addresses): array
     {
-        return array_map(function (Address $address) {
-            return $this->formatAddress($address);
-        }, $addresses);
+        return array_map(fn (Address $address) => $this->formatAddress($address), $addresses);
     }
 
     private function getEndpoint(): ?string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/RemoteEvent/SendgridPayloadConverter.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/RemoteEvent/SendgridPayloadConverter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/RemoteEvent/SendgridPayloadConverter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/RemoteEvent/SendgridPayloadConverter.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,13 +39,13 @@
                 'unsubscribe' => MailerEngagementEvent::UNSUBSCRIBE,
                 'open' => MailerEngagementEvent::OPEN,
                 'spamreport' => MailerEngagementEvent::SPAM,
-                default => throw new ParseException(sprintf('Unsupported event "%s".', $payload['event'])),
+                default => throw new ParseException(\sprintf('Unsupported event "%s".', $payload['event'])),
             };
             $event = new MailerEngagementEvent($name, $payload['sg_message_id'] ?? $payload['sg_event_id'], $payload);
         }
 
         if (!$date = \DateTimeImmutable::createFromFormat('U', $payload['timestamp'])) {
-            throw new ParseException(sprintf('Invalid date "%s".', $payload['timestamp']));
+            throw new ParseException(\sprintf('Invalid date "%s".', $payload['timestamp']));
         }
 
         $event->setDate($date);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/RemoteEvent/SendgridPayloadConverterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/RemoteEvent/SendgridPayloadConverterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/RemoteEvent/SendgridPayloadConverterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/RemoteEvent/SendgridPayloadConverterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace Symfony\Component\Mailer\Bridge\Sendgrid\Tests\RemoteEvent;
 
 use PHPUnit\Framework\TestCase;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
 
     public function __toString(): string
     {
-        return sprintf('sendgrid+api://%s', $this->getEndpoint());
+        return \sprintf('sendgrid+api://%s', $this->getEndpoint());
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
@@ -65,9 +65,9 @@
             try {
                 $result = $response->toArray(false);
 
-                throw new HttpTransportException('Unable to send an email: '.implode('; ', array_column($result['errors'], 'message')).sprintf(' (code %d).', $statusCode), $response);
+                throw new HttpTransportException('Unable to send an email: '.implode('; ', array_column($result['errors'], 'message')).\sprintf(' (code %d).', $statusCode), $response);
             } catch (DecodingExceptionInterface $e) {
-                throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response, 0, $e);
+                throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response, 0, $e);
             }
         }
 
@@ -78,7 +78,7 @@
 
     private function getPayload(Email $email, Envelope $envelope): array
     {
-        $addressStringifier = function (Address $address) {
+        $addressStringifier = static function (Address $address) {
             $stringified = ['email' => $address->getAddress()];
 
             if ($address->getName()) {
@@ -127,7 +127,7 @@
 
             if ($header instanceof TagHeader) {
                 if (10 === \count($categories)) {
-                    throw new TransportException(sprintf('Too many "%s" instances present in the email headers. Sendgrid does not accept more than 10 categories on an email.', TagHeader::class));
+                    throw new TransportException(\sprintf('Too many "%s" instances present in the email headers. Sendgrid does not accept more than 10 categories on an email.', TagHeader::class));
                 }
                 $categories[] = mb_substr($header->getValue(), 0, 255);
             } elseif ($header instanceof MetadataHeader) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Sendinblue/README.md symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Sendinblue/README.md
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Sendinblue/README.md	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Sendinblue/README.md	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,10 @@
 Sendinblue Bridge
 =================
 
+# Deprecation Notice
+
+This package has been deprecated in favor of the symfony/brevo-mailer, since SendInBlue has re-branded as Brevo.
+
 Provides Sendinblue integration for Symfony Mailer.
 
 Configuration example:
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Sendinblue/Transport/SendinblueApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Sendinblue/Transport/SendinblueApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Bridge/Sendinblue/Transport/SendinblueApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Bridge/Sendinblue/Transport/SendinblueApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
 
     public function __toString(): string
     {
-        return sprintf('sendinblue+api://%s', $this->getEndpoint());
+        return \sprintf('sendinblue+api://%s', $this->getEndpoint());
     }
 
     protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $envelope): ResponseInterface
@@ -61,13 +61,13 @@
             $statusCode = $response->getStatusCode();
             $result = $response->toArray(false);
         } catch (DecodingExceptionInterface) {
-            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.$response->getContent(false).\sprintf(' (code %d).', $statusCode), $response);
         } catch (TransportExceptionInterface $e) {
             throw new HttpTransportException('Could not reach the remote Sendinblue server.', $response, 0, $e);
         }
 
         if (201 !== $statusCode) {
-            throw new HttpTransportException('Unable to send an email: '.($result['message'] ?? $response->getContent(false)).sprintf(' (code %d).', $statusCode), $response);
+            throw new HttpTransportException('Unable to send an email: '.($result['message'] ?? $response->getContent(false)).\sprintf(' (code %d).', $statusCode), $response);
         }
 
         $sentMessage->setMessageId($result['messageId']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Command/MailerTestCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Command/MailerTestCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Command/MailerTestCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Command/MailerTestCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,22 +35,22 @@
     {
         $this
             ->addArgument('to', InputArgument::REQUIRED, 'The recipient of the message')
-            ->addOption('from', null, InputOption::VALUE_OPTIONAL, 'The sender of the message', 'from@example.org')
-            ->addOption('subject', null, InputOption::VALUE_OPTIONAL, 'The subject of the message', 'Testing transport')
-            ->addOption('body', null, InputOption::VALUE_OPTIONAL, 'The body of the message', 'Testing body')
-            ->addOption('transport', null, InputOption::VALUE_OPTIONAL, 'The transport to be used')
+            ->addOption('from', null, InputOption::VALUE_REQUIRED, 'The sender of the message', 'from@example.org')
+            ->addOption('subject', null, InputOption::VALUE_REQUIRED, 'The subject of the message', 'Testing transport')
+            ->addOption('body', null, InputOption::VALUE_REQUIRED, 'The body of the message', 'Testing body')
+            ->addOption('transport', null, InputOption::VALUE_REQUIRED, 'The transport to be used')
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command tests a Mailer transport by sending a simple email message:
+                The <info>%command.name%</info> command tests a Mailer transport by sending a simple email message:
 
-<info>php %command.full_name% to@example.com</info>
+                <info>php %command.full_name% to@example.com</info>
 
-You can also specify a specific transport:
+                You can also specify a specific transport:
 
-    <info>php %command.full_name% to@example.com --transport=transport_name</info>
+                    <info>php %command.full_name% to@example.com --transport=transport_name</info>
 
-Note that this command bypasses the Messenger bus if configured.
+                Note that this command bypasses the Messenger bus if configured.
 
-EOF
+                EOF
             );
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Envelope.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Envelope.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Envelope.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Envelope.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
     {
         // to ensure deliverability of bounce emails independent of UTF-8 capabilities of SMTP servers
         if (!preg_match('/^[^@\x80-\xFF]++@/', $sender->getAddress())) {
-            throw new InvalidArgumentException(sprintf('Invalid sender "%s": non-ASCII characters not supported in local-part of email.', $sender->getAddress()));
+            throw new InvalidArgumentException(\sprintf('Invalid sender "%s": non-ASCII characters not supported in local-part of email.', $sender->getAddress()));
         }
         $this->sender = $sender;
     }
@@ -72,7 +72,7 @@
         $this->recipients = [];
         foreach ($recipients as $recipient) {
             if (!$recipient instanceof Address) {
-                throw new InvalidArgumentException(sprintf('A recipient must be an instance of "%s" (got "%s").', Address::class, get_debug_type($recipient)));
+                throw new InvalidArgumentException(\sprintf('A recipient must be an instance of "%s" (got "%s").', Address::class, get_debug_type($recipient)));
             }
             $this->recipients[] = new Address($recipient->getAddress());
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Event/MessageEvent.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Event/MessageEvent.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Event/MessageEvent.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Event/MessageEvent.php	2026-05-20 10:56:49.000000000 +0200
@@ -85,7 +85,7 @@
     public function addStamp(StampInterface $stamp): void
     {
         if (!$this->queued) {
-            throw new LogicException(sprintf('Cannot call "%s()" on a message that is not meant to be queued.', __METHOD__));
+            throw new LogicException(\sprintf('Cannot call "%s()" on a message that is not meant to be queued.', __METHOD__));
         }
 
         $this->stamps[] = $stamp;
@@ -97,7 +97,7 @@
     public function getStamps(): array
     {
         if (!$this->queued) {
-            throw new LogicException(sprintf('Cannot call "%s()" on a message that is not meant to be queued.', __METHOD__));
+            throw new LogicException(\sprintf('Cannot call "%s()" on a message that is not meant to be queued.', __METHOD__));
         }
 
         return $this->stamps;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/EventListener/MessageListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/EventListener/MessageListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/EventListener/MessageListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/EventListener/MessageListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
     public function addHeaderRule(string $headerName, int $rule): void
     {
         if ($rule < 1 || $rule > 3) {
-            throw new InvalidArgumentException(sprintf('The "%d" rule is not supported.', $rule));
+            throw new InvalidArgumentException(\sprintf('The "%d" rule is not supported.', $rule));
         }
 
         $this->headerRules[strtolower($headerName)] = $rule;
@@ -105,7 +105,7 @@
 
                     $h = $headers->get($name);
                     if (!$h instanceof MailboxListHeader) {
-                        throw new RuntimeException(sprintf('Unable to set header "%s".', $name));
+                        throw new RuntimeException(\sprintf('Unable to set header "%s".', $name));
                     }
 
                     Headers::checkHeaderClass($header);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Exception/UnsupportedSchemeException.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Exception/UnsupportedSchemeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Exception/UnsupportedSchemeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Exception/UnsupportedSchemeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,14 +86,14 @@
         }
         $package = self::SCHEME_TO_PACKAGE_MAP[$provider] ?? null;
         if ($package && !class_exists($package['class'])) {
-            parent::__construct(sprintf('Unable to send emails via "%s" as the bridge is not installed. Try running "composer require %s".', $provider, $package['package']));
+            parent::__construct(\sprintf('Unable to send emails via "%s" as the bridge is not installed. Try running "composer require %s".', $provider, $package['package']));
 
             return;
         }
 
-        $message = sprintf('The "%s" scheme is not supported', $dsn->getScheme());
+        $message = \sprintf('The "%s" scheme is not supported', $dsn->getScheme());
         if ($name && $supported) {
-            $message .= sprintf('; supported schemes for mailer "%s" are: "%s"', $name, implode('", "', $supported));
+            $message .= \sprintf('; supported schemes for mailer "%s" are: "%s"', $name, implode('", "', $supported));
         }
 
         parent::__construct($message.'.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/SentMessage.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/SentMessage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/SentMessage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/SentMessage.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,9 +25,6 @@
     private string $messageId;
     private string $debug = '';
 
-    /**
-     * @internal
-     */
     public function __construct(RawMessage $message, Envelope $envelope)
     {
         $message->ensureValidity();
@@ -63,11 +60,19 @@
         return $this->envelope;
     }
 
+    /**
+     * Sets the transport-level message ID.
+     */
     public function setMessageId(string $id): void
     {
         $this->messageId = $id;
     }
 
+    /**
+     * Gets the transport-level message ID.
+     *
+     * Not to be confused with the Message-ID header, which is available via getOriginalMessage()
+     */
     public function getMessageId(): string
     {
         return $this->messageId;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Test/Constraint/EmailCount.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Test/Constraint/EmailCount.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Test/Constraint/EmailCount.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Test/Constraint/EmailCount.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
 
     public function toString(): string
     {
-        return sprintf('%shas %s "%d" emails', $this->transport ? $this->transport.' ' : '', $this->queued ? 'queued' : 'sent', $this->expectedValue);
+        return \sprintf('%shas %s "%d" emails', $this->transport ? $this->transport.' ' : '', $this->queued ? 'queued' : 'sent', $this->expectedValue);
     }
 
     /**
@@ -45,7 +45,7 @@
      */
     protected function failureDescription($events): string
     {
-        return sprintf('the Transport %s (%d %s)', $this->toString(), $this->countEmails($events), $this->queued ? 'queued' : 'sent');
+        return \sprintf('the Transport %s (%d %s)', $this->toString(), $this->countEmails($events), $this->queued ? 'queued' : 'sent');
     }
 
     private function countEmails(MessageEvents $events): int
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,9 @@
 
 use PHPUnit\Framework\TestCase;
 use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
+use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\Mailer\Exception\IncompleteDsnException;
 use Symfony\Component\Mailer\Exception\UnsupportedSchemeException;
 use Symfony\Component\Mailer\Transport\Dsn;
@@ -102,16 +105,16 @@
 
     protected function getDispatcher(): EventDispatcherInterface
     {
-        return $this->dispatcher ??= $this->createMock(EventDispatcherInterface::class);
+        return $this->dispatcher ??= new EventDispatcher();
     }
 
     protected function getClient(): HttpClientInterface
     {
-        return $this->client ??= $this->createMock(HttpClientInterface::class);
+        return $this->client ??= new MockHttpClient();
     }
 
     protected function getLogger(): LoggerInterface
     {
-        return $this->logger ??= $this->createMock(LoggerInterface::class);
+        return $this->logger ??= new NullLogger();
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/EventListener/MessengerTransportListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/EventListener/MessengerTransportListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/EventListener/MessengerTransportListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/EventListener/MessengerTransportListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,6 @@
         $event = new MessageEvent($message, $envelope, 'smtp', true);
         $l->onMessage($event);
         $this->assertCount(1, $event->getStamps());
-        /* @var TransportNamesStamp $stamp */
         $this->assertInstanceOf(TransportNamesStamp::class, $stamp = $event->getStamps()[0]);
         $this->assertSame(['async'], $stamp->getTransportNames());
         $this->assertFalse($message->getHeaders()->has('X-Bus-Transport'));
@@ -57,7 +56,6 @@
         $event = new MessageEvent($message, $envelope, 'smtp', true);
         $l->onMessage($event);
         $this->assertCount(1, $event->getStamps());
-        /* @var TransportNamesStamp $stamp */
         $this->assertInstanceOf(TransportNamesStamp::class, $stamp = $event->getStamps()[0]);
         $this->assertSame(['async', 'async1', $name], $stamp->getTransportNames());
         $this->assertFalse($message->getHeaders()->has('X-Bus-Transport'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Exception/UnsupportedSchemeExceptionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Exception/UnsupportedSchemeExceptionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Exception/UnsupportedSchemeExceptionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Exception/UnsupportedSchemeExceptionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
         $dsn = new Dsn($scheme, 'localhost');
 
         $this->assertSame(
-            sprintf('Unable to send emails via "%s" as the bridge is not installed. Try running "composer require %s".', $scheme, $package),
+            \sprintf('Unable to send emails via "%s" as the bridge is not installed. Try running "composer require %s".', $scheme, $package),
             (new UnsupportedSchemeException($dsn))->getMessage()
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/MailerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/MailerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/MailerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/MailerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,8 +21,8 @@
 use Symfony\Component\Mailer\SentMessage;
 use Symfony\Component\Mailer\Transport\AbstractTransport;
 use Symfony\Component\Mailer\Transport\NullTransport;
-use Symfony\Component\Mailer\Transport\TransportInterface;
 use Symfony\Component\Messenger\Envelope;
+use Symfony\Component\Messenger\MessageBus;
 use Symfony\Component\Messenger\MessageBusInterface;
 use Symfony\Component\Messenger\Stamp\StampInterface;
 use Symfony\Component\Mime\Address;
@@ -35,13 +35,13 @@
     {
         $this->expectException(LogicException::class);
 
-        $transport = new Mailer($this->createMock(TransportInterface::class), $this->createMock(MessageBusInterface::class), $this->createMock(EventDispatcherInterface::class));
+        $transport = new Mailer(new DummyTransport('localhost'), new MessageBus(), new EventDispatcher());
         $transport->send(new RawMessage('Some raw email message'));
     }
 
     public function testSendMessageToBus()
     {
-        $bus = new class() implements MessageBusInterface {
+        $bus = new class implements MessageBusInterface {
             public array $messages = [];
             public array $stamps = [];
 
@@ -54,7 +54,7 @@
             }
         };
 
-        $stamp = $this->createMock(StampInterface::class);
+        $stamp = new class implements StampInterface {};
 
         $dispatcher = $this->createMock(EventDispatcherInterface::class);
         $dispatcher->expects($this->once())
@@ -87,8 +87,8 @@
     public function testRejectMessage()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(MessageEvent::class, fn (MessageEvent $event) => $event->reject(), 255);
-        $dispatcher->addListener(MessageEvent::class, fn () => throw new \RuntimeException('Should never be called.'));
+        $dispatcher->addListener(MessageEvent::class, static fn (MessageEvent $event) => $event->reject(), 255);
+        $dispatcher->addListener(MessageEvent::class, static fn () => throw new \RuntimeException('Should never be called.'));
 
         $transport = new class($dispatcher, $this) extends AbstractTransport {
             public function __construct(EventDispatcherInterface $dispatcher, private TestCase $test)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/AbstractTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/AbstractTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/AbstractTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/AbstractTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,8 +86,8 @@
     public function testRejectMessage()
     {
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(MessageEvent::class, fn (MessageEvent $event) => $event->reject(), 255);
-        $dispatcher->addListener(MessageEvent::class, fn () => throw new \RuntimeException('Should never be called.'));
+        $dispatcher->addListener(MessageEvent::class, static fn (MessageEvent $event) => $event->reject(), 255);
+        $dispatcher->addListener(MessageEvent::class, static fn () => throw new \RuntimeException('Should never be called.'));
 
         $transport = new class($dispatcher, $this) extends AbstractTransport {
             public function __construct(EventDispatcherInterface $dispatcher, private TestCase $test)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/FailoverTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/FailoverTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/FailoverTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/FailoverTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -89,7 +89,7 @@
         $t1Matcher = $this->any();
         $t1->expects($t1Matcher)
             ->method('send')
-            ->willReturnCallback(function () use ($t1Matcher) {
+            ->willReturnCallback(static function () use ($t1Matcher) {
                 if (1 === $t1Matcher->getInvocationCount()) {
                     throw new TransportException();
                 }
@@ -101,7 +101,7 @@
         $t2Matcher = $this->exactly(4);
         $t2->expects($t2Matcher)
             ->method('send')
-            ->willReturnCallback(function () use ($t2Matcher) {
+            ->willReturnCallback(static function () use ($t2Matcher) {
                 if (4 === $t2Matcher->getInvocationCount()) {
                     throw new TransportException();
                 }
@@ -135,7 +135,7 @@
         $matcher = $this->exactly(3);
         $t2->expects($matcher)
             ->method('send')
-            ->willReturnCallback(function () use ($matcher) {
+            ->willReturnCallback(static function () use ($matcher) {
                 if (3 === $matcher->getInvocationCount()) {
                     throw new TransportException();
                 }
@@ -156,7 +156,7 @@
     {
         $t1Matcher = $this->any();
         $t1 = $this->createMock(TransportInterface::class);
-        $t1->expects($t1Matcher)->method('send')->willReturnCallback(function () use ($t1Matcher) {
+        $t1->expects($t1Matcher)->method('send')->willReturnCallback(static function () use ($t1Matcher) {
             if (1 === $t1Matcher->getInvocationCount()) {
                 throw new TransportException();
             }
@@ -168,7 +168,7 @@
         $matcher = $this->exactly(3);
         $t2->expects($matcher)
             ->method('send')
-            ->willReturnCallback(function () use ($matcher) {
+            ->willReturnCallback(static function () use ($matcher) {
                 if (3 === $matcher->getInvocationCount()) {
                     throw new TransportException();
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/NativeTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/NativeTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/NativeTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/NativeTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,14 +33,14 @@
         $current = static::class;
 
         $eval = <<<EOT
-namespace $namespace;
+            namespace $namespace;
 
-function ini_get(\$key)
-{
-    \$vals = \\$current::\$fakeConfiguration;
-    return \$vals[\$key] ?? '';
-}
-EOT;
+            function ini_get(\$key)
+            {
+                \$vals = \\$current::\$fakeConfiguration;
+                return \$vals[\$key] ?? '';
+            }
+            EOT;
         eval($eval);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,8 @@
 use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
 use Symfony\Component\Mailer\Transport\RoundRobinTransport;
 use Symfony\Component\Mailer\Transport\TransportInterface;
+use Symfony\Component\Mime\Header\Headers;
+use Symfony\Component\Mime\Message;
 use Symfony\Component\Mime\RawMessage;
 
 /**
@@ -122,7 +124,7 @@
         $t2 = $this->createMock(TransportInterface::class);
         $t2->expects($matcher)
             ->method('send')
-            ->willReturnCallback(function () use ($matcher) {
+            ->willReturnCallback(static function () use ($matcher) {
                 if (1 === $matcher->getInvocationCount()) {
                     throw new TransportException();
                 }
@@ -143,6 +145,27 @@
         $this->assertTransports($t, 1, []);
     }
 
+    public function testSendOneDeadMessageAlterationsDoNotPersist()
+    {
+        $t1 = $this->createMock(TransportInterface::class);
+        $t1->expects($this->once())->method('send')
+            ->willReturnCallback(static function (Message $message) {
+                $message->getHeaders()->addTextHeader('X-Transport-1', 'value');
+                throw new TransportException();
+            });
+        $t2 = $this->createMock(TransportInterface::class);
+        $t2->expects($this->once())->method('send');
+        $t = new RoundRobinTransport([$t1, $t2]);
+        $p = new \ReflectionProperty($t, 'cursor');
+        $p->setValue($t, 0);
+        $headers = new Headers();
+        $headers->addTextHeader('X-Shared', 'value');
+        $message = new Message($headers);
+        $t->send($message);
+        $this->assertSame($message->getHeaders()->get('X-Shared')->getBody(), 'value');
+        $this->assertFalse($message->getHeaders()->has('X-Transport-1'));
+    }
+
     public function testFailureDebugInformation()
     {
         $t1 = $this->createMock(TransportInterface::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/SendmailTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/SendmailTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/SendmailTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/SendmailTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
         $sendmailTransport = new SendmailTransport(self::FAKE_SENDMAIL);
         $sendmailTransport->send($mail, $envelope);
 
-        $this->assertStringEqualsFile($this->argsPath, __DIR__.'/Fixtures/fake-sendmail.php -ffrom@mail.com to@mail.com');
+        $this->assertStringEqualsFile($this->argsPath, __DIR__.'/Fixtures/fake-sendmail.php -ffrom@mail.com -- to@mail.com');
     }
 
     public function testRecipientsAreUsedWhenSet()
@@ -79,7 +79,7 @@
         $sendmailTransport = new SendmailTransport(self::FAKE_SENDMAIL);
         $sendmailTransport->send($mail, $envelope);
 
-        $this->assertStringEqualsFile($this->argsPath, __DIR__.'/Fixtures/fake-sendmail.php -ffrom@mail.com recipient@mail.com');
+        $this->assertStringEqualsFile($this->argsPath, __DIR__.'/Fixtures/fake-sendmail.php -ffrom@mail.com -- recipient@mail.com');
     }
 
     public function testThrowsTransportExceptionOnFailure()
@@ -94,7 +94,6 @@
         $sendmailTransport->send($mail, $envelope);
 
         $streamProperty = new \ReflectionProperty(SendmailTransport::class, 'stream');
-        $streamProperty->setAccessible(true);
         $stream = $streamProperty->getValue($sendmailTransport);
         $this->assertNull($stream->stream);
     }
@@ -112,10 +111,8 @@
         }
 
         $streamProperty = new \ReflectionProperty(SendmailTransport::class, 'stream');
-        $streamProperty->setAccessible(true);
         $stream = $streamProperty->getValue($sendmailTransport);
         $innerStreamProperty = new \ReflectionProperty(ProcessStream::class, 'stream');
-        $innerStreamProperty->setAccessible(true);
         $this->assertNull($innerStreamProperty->getValue($stream));
     }
 
@@ -127,7 +124,6 @@
 
         $sendmailTransport = new SendmailTransport(self::FAKE_INTERACTIVE_SENDMAIL);
         $transportProperty = new \ReflectionProperty(SendmailTransport::class, 'transport');
-        $transportProperty->setAccessible(true);
 
         // Replace the transport with an anonymous consumer that trigger the stream methods
         $transportProperty->setValue($sendmailTransport, new class($transportProperty->getValue($sendmailTransport)->getStream()) extends SmtpTransport {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/Smtp/SmtpTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/Smtp/SmtpTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/Smtp/SmtpTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/Smtp/SmtpTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -143,8 +143,8 @@
     public function testMessageIdFromServerIsEmbeddedInSentMessageEvent()
     {
         $calls = 0;
-        $eventDispatcher = $this->createMock(EventDispatcherInterface::class);
-        $eventDispatcher->expects($this->any())
+        $eventDispatcher = $this->createStub(EventDispatcherInterface::class);
+        $eventDispatcher
             ->method('dispatch')
             ->with($this->callback(static function ($event) use (&$calls): bool {
                 ++$calls;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/TransportsTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/TransportsTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/Transport/TransportsTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/Transport/TransportsTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Mailer\Exception\InvalidArgumentException;
+use Symfony\Component\Mailer\Tests\DummyTransport;
 use Symfony\Component\Mailer\Transport\TransportInterface;
 use Symfony\Component\Mailer\Transport\Transports;
 use Symfony\Component\Mime\Header\Headers;
@@ -53,8 +54,8 @@
     public function testTransportDoesNotExist()
     {
         $transport = new Transports([
-            'foo' => $this->createMock(TransportInterface::class),
-            'bar' => $this->createMock(TransportInterface::class),
+            'foo' => new DummyTransport('localhost'),
+            'bar' => new DummyTransport('localhost'),
         ]);
 
         $headers = (new Headers())->addTextHeader('X-Transport', 'foobar');
@@ -69,7 +70,7 @@
     {
         $exception = new \Exception();
 
-        $fooTransport = $this->createMock(TransportInterface::class);
+        $fooTransport = $this->createStub(TransportInterface::class);
         $fooTransport->method('send')
             ->willThrowException($exception);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/TransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/TransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Tests/TransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Tests/TransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -100,7 +100,7 @@
     }
 }
 
-class DummyTransport implements Transport\TransportInterface
+class DummyTransport implements TransportInterface
 {
     private string $host;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/AbstractApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/AbstractApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/AbstractApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/AbstractApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
         try {
             $email = MessageConverter::toEmail($message->getOriginalMessage());
         } catch (\Exception $e) {
-            throw new RuntimeException(sprintf('Unable to send message with the "%s" transport: ', __CLASS__).$e->getMessage(), 0, $e);
+            throw new RuntimeException(\sprintf('Unable to send message with the "%s" transport: ', __CLASS__).$e->getMessage(), 0, $e);
         }
 
         return $this->doSendApi($message, $email, $message->getEnvelope());
@@ -42,6 +42,6 @@
      */
     protected function getRecipients(Email $email, Envelope $envelope): array
     {
-        return array_filter($envelope->getRecipients(), fn (Address $address) => false === \in_array($address, array_merge($email->getCc(), $email->getBcc()), true));
+        return array_filter($envelope->getRecipients(), static fn (Address $address) => false === \in_array($address, array_merge($email->getCc(), $email->getBcc()), true));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/AbstractHttpTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/AbstractHttpTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/AbstractHttpTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/AbstractHttpTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
         $this->client = $client;
         if (null === $client) {
             if (!class_exists(HttpClient::class)) {
-                throw new \LogicException(sprintf('You cannot use "%s" as the HttpClient component is not installed. Try running "composer require symfony/http-client".', __CLASS__));
+                throw new \LogicException(\sprintf('You cannot use "%s" as the HttpClient component is not installed. Try running "composer require symfony/http-client".', __CLASS__));
             }
 
             $this->client = HttpClient::create();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/AbstractTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/AbstractTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/AbstractTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/AbstractTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -81,7 +81,7 @@
             $message = $event->getMessage();
 
             if ($message instanceof TemplatedEmail && !$message->isRendered()) {
-                throw new LogicException(sprintf('You must configure a "%s" when a "%s" instance has a text or HTML template set.', BodyRendererInterface::class, get_debug_type($message)));
+                throw new LogicException(\sprintf('You must configure a "%s" when a "%s" instance has a text or HTML template set.', BodyRendererInterface::class, get_debug_type($message)));
             }
 
             $sentMessage = new SentMessage($message, $envelope);
@@ -112,7 +112,7 @@
      */
     protected function stringifyAddresses(array $addresses): array
     {
-        return array_map(fn (Address $a) => $a->toString(), $addresses);
+        return array_map(static fn (Address $a) => $a->toString(), $addresses);
     }
 
     protected function getLogger(): LoggerInterface
@@ -128,7 +128,7 @@
 
         $sleep = (1 / $this->rate) - (microtime(true) - $this->lastSent);
         if (0 < $sleep) {
-            $this->logger->debug(sprintf('Email transport "%s" sleeps for %.2f seconds', __CLASS__, $sleep));
+            $this->logger->debug(\sprintf('Email transport "%s" sleeps for %.2f seconds', __CLASS__, $sleep));
             usleep((int) ($sleep * 1000000));
         }
         $this->lastSent = microtime(true);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/NativeTransportFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/NativeTransportFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/NativeTransportFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/NativeTransportFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,3 +61,5 @@
         return ['native'];
     }
 }
+
+// @php-cs-fixer-ignore native_function_invocation As we explicitly break it for testability reason, ref https://github.com/symfony/symfony/pull/59195
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/RoundRobinTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/RoundRobinTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/RoundRobinTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/RoundRobinTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
     public function __construct(array $transports, int $retryPeriod = 60)
     {
         if (!$transports) {
-            throw new TransportException(sprintf('"%s" must have at least one transport configured.', static::class));
+            throw new TransportException(\sprintf('"%s" must have at least one transport configured.', static::class));
         }
 
         $this->transports = $transports;
@@ -52,10 +52,10 @@
 
         while ($transport = $this->getNextTransport()) {
             try {
-                return $transport->send($message, $envelope);
+                return $transport->send(clone $message, $envelope);
             } catch (TransportExceptionInterface $e) {
                 $exception ??= new TransportException('All transports failed.');
-                $exception->appendDebug(sprintf("Transport \"%s\": %s\n", $transport, $e->getDebug()));
+                $exception->appendDebug(\sprintf("Transport \"%s\": %s\n", $transport, $e->getDebug()));
                 $this->deadTransports[$transport] = microtime(true);
             }
         }
@@ -86,7 +86,7 @@
             }
 
             if ((microtime(true) - $this->deadTransports[$transport]) > $this->retryPeriod) {
-                $this->deadTransports->detach($transport);
+                unset($this->deadTransports[$transport]);
 
                 break;
             }
@@ -103,7 +103,7 @@
 
     protected function isTransportDead(TransportInterface $transport): bool
     {
-        return $this->deadTransports->contains($transport);
+        return $this->deadTransports->offsetExists($transport);
     }
 
     protected function getInitialCursor(): int
@@ -123,3 +123,5 @@
         return ++$cursor >= \count($this->transports) ? 0 : $cursor;
     }
 }
+
+// @php-cs-fixer-ignore random_api_migration
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/SendmailTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/SendmailTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/SendmailTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/SendmailTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
 
         if (null !== $command) {
             if (!str_contains($command, ' -bs') && !str_contains($command, ' -t')) {
-                throw new \InvalidArgumentException(sprintf('Unsupported sendmail command flags "%s"; must be one of "-bs" or "-t" but can include additional flags.', $command));
+                throw new \InvalidArgumentException(\sprintf('Unsupported sendmail command flags "%s"; must be one of "-bs" or "-t" but can include additional flags.', $command));
             }
 
             $this->command = $command;
@@ -89,7 +89,7 @@
 
     protected function doSend(SentMessage $message): void
     {
-        $this->getLogger()->debug(sprintf('Email transport "%s" starting', __CLASS__));
+        $this->getLogger()->debug(\sprintf('Email transport "%s" starting', __CLASS__));
 
         $command = $this->command;
 
@@ -107,6 +107,9 @@
             $chunks = AbstractStream::replace("\n.", "\n..", $chunks);
         }
 
+        if ($recipients) {
+            $command .= ' --';
+        }
         foreach ($recipients as $recipient) {
             $command .= ' '.escapeshellarg($recipient->getEncodedAddress());
         }
@@ -119,6 +122,6 @@
         $this->stream->flush();
         $this->stream->terminate();
 
-        $this->getLogger()->debug(sprintf('Email transport "%s" stopped', __CLASS__));
+        $this->getLogger()->debug(\sprintf('Email transport "%s" stopped', __CLASS__));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/CramMd5Authenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/CramMd5Authenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/CramMd5Authenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/CramMd5Authenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
         $challenge = $client->executeCommand("AUTH CRAM-MD5\r\n", [334]);
         $challenge = base64_decode(substr($challenge, 4));
         $message = base64_encode($client->getUsername().' '.$this->getResponse($client->getPassword(), $challenge));
-        $client->executeCommand(sprintf("%s\r\n", $message), [235]);
+        $client->executeCommand(\sprintf("%s\r\n", $message), [235]);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/LoginAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/LoginAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/LoginAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/LoginAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
     public function authenticate(EsmtpTransport $client): void
     {
         $client->executeCommand("AUTH LOGIN\r\n", [334]);
-        $client->executeCommand(sprintf("%s\r\n", base64_encode($client->getUsername())), [334]);
-        $client->executeCommand(sprintf("%s\r\n", base64_encode($client->getPassword())), [235]);
+        $client->executeCommand(\sprintf("%s\r\n", base64_encode($client->getUsername())), [334]);
+        $client->executeCommand(\sprintf("%s\r\n", base64_encode($client->getPassword())), [235]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/PlainAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/PlainAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/PlainAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Auth/PlainAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,6 +30,6 @@
      */
     public function authenticate(EsmtpTransport $client): void
     {
-        $client->executeCommand(sprintf("AUTH PLAIN %s\r\n", base64_encode($client->getUsername().\chr(0).$client->getUsername().\chr(0).$client->getPassword())), [235]);
+        $client->executeCommand(\sprintf("AUTH PLAIN %s\r\n", base64_encode($client->getUsername().\chr(0).$client->getUsername().\chr(0).$client->getPassword())), [235]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/EsmtpTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/EsmtpTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/EsmtpTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/EsmtpTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -126,10 +126,10 @@
     private function doEhloCommand(): string
     {
         try {
-            $response = $this->executeCommand(sprintf("EHLO %s\r\n", $this->getLocalDomain()), [250]);
+            $response = $this->executeCommand(\sprintf("EHLO %s\r\n", $this->getLocalDomain()), [250]);
         } catch (TransportExceptionInterface $e) {
             try {
-                return parent::executeCommand(sprintf("HELO %s\r\n", $this->getLocalDomain()), [250]);
+                return parent::executeCommand(\sprintf("HELO %s\r\n", $this->getLocalDomain()), [250]);
             } catch (TransportExceptionInterface $ex) {
                 if (!$ex->getCode()) {
                     throw $e;
@@ -153,7 +153,7 @@
                 throw new TransportException('Unable to connect with STARTTLS.');
             }
 
-            $response = $this->executeCommand(sprintf("EHLO %s\r\n", $this->getLocalDomain()), [250]);
+            $response = $this->executeCommand(\sprintf("EHLO %s\r\n", $this->getLocalDomain()), [250]);
             $this->capabilities = $this->parseCapabilities($response);
         }
 
@@ -215,12 +215,12 @@
         }
 
         if (!$authNames) {
-            throw new TransportException(sprintf('Failed to find an authenticator supported by the SMTP server, which currently supports: "%s".', implode('", "', $modes)), $code ?: 504);
+            throw new TransportException(\sprintf('Failed to find an authenticator supported by the SMTP server, which currently supports: "%s".', implode('", "', $modes)), $code ?: 504);
         }
 
-        $message = sprintf('Failed to authenticate on SMTP server with username "%s" using the following authenticators: "%s".', $this->username, implode('", "', $authNames));
+        $message = \sprintf('Failed to authenticate on SMTP server with username "%s" using the following authenticators: "%s".', $this->username, implode('", "', $authNames));
         foreach ($errors as $name => $error) {
-            $message .= sprintf(' Authenticator "%s" returned "%s".', $name, $error);
+            $message .= \sprintf(' Authenticator "%s" returned "%s".', $name, $error);
         }
 
         throw new TransportException($message, $code ?: 535);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -154,24 +154,13 @@
 
     protected function parseMessageId(string $mtaResult): string
     {
-        $regexps = [
-            '/250 Ok (?P<id>[0-9a-f-]+)\r?$/mis',
-            '/250 Ok:? queued as (?P<id>[A-Z0-9]+)\r?$/mis',
-        ];
-        $matches = [];
-        foreach ($regexps as $regexp) {
-            if (preg_match($regexp, $mtaResult, $matches)) {
-                return $matches['id'];
-            }
-        }
-
-        return '';
+        return preg_match('/^250 (?:\S+ )?Ok:?+ (?:queued as |id=)?+(?P<id>[A-Z0-9._-]++)/im', $mtaResult, $matches) ? $matches['id'] : '';
     }
 
     public function __toString(): string
     {
         if ($this->stream instanceof SocketStream) {
-            $name = sprintf('smtp%s://%s', ($tls = $this->stream->isTLS()) ? 's' : '', $this->stream->getHost());
+            $name = \sprintf('smtp%s://%s', ($tls = $this->stream->isTLS()) ? 's' : '', $this->stream->getHost());
             $port = $this->stream->getPort();
             if (!(25 === $port || ($tls && 465 === $port))) {
                 $name .= ':'.$port;
@@ -227,7 +216,7 @@
             } catch (\Exception $e) {
                 $this->stream->terminate();
                 $this->started = false;
-                $this->getLogger()->debug(sprintf('Email transport "%s" stopped', __CLASS__));
+                $this->getLogger()->debug(\sprintf('Email transport "%s" stopped', __CLASS__));
                 throw $e;
             }
             $mtaResult = $this->executeCommand("\r\n.\r\n", [250]);
@@ -251,17 +240,17 @@
      */
     protected function doHeloCommand(): void
     {
-        $this->executeCommand(sprintf("HELO %s\r\n", $this->domain), [250]);
+        $this->executeCommand(\sprintf("HELO %s\r\n", $this->domain), [250]);
     }
 
     private function doMailFromCommand(string $address): void
     {
-        $this->executeCommand(sprintf("MAIL FROM:<%s>\r\n", $address), [250]);
+        $this->executeCommand(\sprintf("MAIL FROM:<%s>\r\n", $address), [250]);
     }
 
     private function doRcptToCommand(string $address): void
     {
-        $this->executeCommand(sprintf("RCPT TO:<%s>\r\n", $address), [250, 251, 252]);
+        $this->executeCommand(\sprintf("RCPT TO:<%s>\r\n", $address), [250, 251, 252]);
     }
 
     public function start(): void
@@ -270,7 +259,7 @@
             return;
         }
 
-        $this->getLogger()->debug(sprintf('Email transport "%s" starting', __CLASS__));
+        $this->getLogger()->debug(\sprintf('Email transport "%s" starting', __CLASS__));
 
         $this->stream->initialize();
         $this->assertResponseCode($this->getFullResponse(), [220]);
@@ -278,7 +267,7 @@
         $this->started = true;
         $this->lastMessageTime = 0;
 
-        $this->getLogger()->debug(sprintf('Email transport "%s" started', __CLASS__));
+        $this->getLogger()->debug(\sprintf('Email transport "%s" started', __CLASS__));
     }
 
     /**
@@ -294,7 +283,7 @@
             return;
         }
 
-        $this->getLogger()->debug(sprintf('Email transport "%s" stopping', __CLASS__));
+        $this->getLogger()->debug(\sprintf('Email transport "%s" stopping', __CLASS__));
 
         try {
             $this->executeCommand("QUIT\r\n", [221]);
@@ -302,7 +291,7 @@
         } finally {
             $this->stream->terminate();
             $this->started = false;
-            $this->getLogger()->debug(sprintf('Email transport "%s" stopped', __CLASS__));
+            $this->getLogger()->debug(\sprintf('Email transport "%s" stopped', __CLASS__));
         }
     }
 
@@ -332,10 +321,10 @@
         $valid = \in_array($code, $codes);
 
         if (!$valid || !$response) {
-            $codeStr = $code ? sprintf('code "%s"', $code) : 'empty code';
-            $responseStr = $response ? sprintf(', with message "%s"', trim($response)) : '';
+            $codeStr = $code ? \sprintf('code "%s"', $code) : 'empty code';
+            $responseStr = $response ? \sprintf(', with message "%s"', trim($response)) : '';
 
-            throw new UnexpectedResponseException(sprintf('Expected response code "%s" but got ', implode('/', $codes)).$codeStr.$responseStr.'.', $code ?: 0);
+            throw new UnexpectedResponseException(\sprintf('Expected response code "%s" but got ', implode('/', $codes)).$codeStr.$responseStr.'.', $code ?: 0);
         }
     }
 
@@ -364,7 +353,7 @@
 
         $this->stop();
         if (0 < $sleep = $this->restartThresholdSleep) {
-            $this->getLogger()->debug(sprintf('Email transport "%s" sleeps for %d seconds after stopping', __CLASS__, $sleep));
+            $this->getLogger()->debug(\sprintf('Email transport "%s" sleeps for %d seconds after stopping', __CLASS__, $sleep));
 
             sleep($sleep);
         }
@@ -372,15 +361,12 @@
         $this->restartCounter = 0;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Stream/AbstractStream.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Stream/AbstractStream.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Stream/AbstractStream.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Stream/AbstractStream.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
     {
         if ($debug) {
             foreach (explode("\n", trim($bytes)) as $line) {
-                $this->debug .= sprintf("> %s\n", $line);
+                $this->debug .= \sprintf("> %s\n", $line);
             }
         }
 
@@ -81,17 +81,17 @@
         $line = @fgets($this->out);
         if ('' === $line || false === $line) {
             if (stream_get_meta_data($this->out)['timed_out']) {
-                throw new TransportException(sprintf('Connection to "%s" timed out.', $this->getReadConnectionDescription()));
+                throw new TransportException(\sprintf('Connection to "%s" timed out.', $this->getReadConnectionDescription()));
             }
             if (feof($this->out)) { // don't use "eof" metadata, it's not accurate on Windows
-                throw new TransportException(sprintf('Connection to "%s" has been closed unexpectedly.', $this->getReadConnectionDescription()));
+                throw new TransportException(\sprintf('Connection to "%s" has been closed unexpectedly.', $this->getReadConnectionDescription()));
             }
             if (false === $line) {
-                throw new TransportException(sprintf('Unable to read from connection to "%s": ', $this->getReadConnectionDescription().error_get_last()['message'] ?? ''));
+                throw new TransportException(\sprintf('Unable to read from connection to "%s": ', $this->getReadConnectionDescription().error_get_last()['message'] ?? ''));
             }
         }
 
-        $this->debug .= sprintf('< %s', $line);
+        $this->debug .= \sprintf('< %s', $line);
 
         return $line;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Stream/SocketStream.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Stream/SocketStream.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Stream/SocketStream.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Smtp/Stream/SocketStream.php	2026-05-20 10:56:49.000000000 +0200
@@ -151,7 +151,7 @@
 
         $timeout = $this->getTimeout();
         set_error_handler(function ($type, $msg) {
-            throw new TransportException(sprintf('Connection could not be established with host "%s": ', $this->url).$msg);
+            throw new TransportException(\sprintf('Connection could not be established with host "%s": ', $this->url).$msg);
         });
         try {
             $this->stream = stream_socket_client($this->url, $errno, $errstr, $timeout, \STREAM_CLIENT_CONNECT, $streamContext);
@@ -167,7 +167,7 @@
 
     public function startTLS(): bool
     {
-        set_error_handler(function ($type, $msg) {
+        set_error_handler(static function ($type, $msg) {
             throw new TransportException('Unable to connect with STARTTLS: '.$msg);
         });
         try {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Transports.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Transports.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport/Transports.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport/Transports.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
         }
 
         if (!$this->transports) {
-            throw new LogicException(sprintf('"%s" must have at least one transport configured.', __CLASS__));
+            throw new LogicException(\sprintf('"%s" must have at least one transport configured.', __CLASS__));
         }
     }
 
@@ -56,7 +56,7 @@
         $headers->remove('X-Transport');
 
         if (!isset($this->transports[$transport])) {
-            throw new InvalidArgumentException(sprintf('The "%s" transport does not exist (available transports: "%s").', $transport, implode('", "', array_keys($this->transports))));
+            throw new InvalidArgumentException(\sprintf('The "%s" transport does not exist (available transports: "%s").', $transport, implode('", "', array_keys($this->transports))));
         }
 
         try {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport.php symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mailer/Transport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mailer/Transport.php	2026-05-20 10:56:49.000000000 +0200
@@ -144,7 +144,7 @@
             }
 
             if (preg_match('{(\w+)\(}A', $dsn, $matches, 0, $offset)) {
-                throw new InvalidArgumentException(sprintf('The "%s" keyword is not valid (valid ones are "%s"), ', $matches[1], implode('", "', array_keys($keywords))));
+                throw new InvalidArgumentException(\sprintf('The "%s" keyword is not valid (valid ones are "%s"), ', $matches[1], implode('", "', array_keys($keywords))));
             }
 
             if ($pos = strcspn($dsn, ' )', $offset)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsReceiverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsReceiverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsReceiverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsReceiverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
         $serializer = $this->createSerializer();
 
         $sqsEnvelop = $this->createSqsEnvelope();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('get')->willReturn($sqsEnvelop);
 
         $receiver = new AmazonSqsReceiver($connection, $serializer);
@@ -42,7 +42,7 @@
     {
         $this->expectException(MessageDecodingFailedException::class);
 
-        $serializer = $this->createMock(PhpSerializer::class);
+        $serializer = $this->createStub(PhpSerializer::class);
         $serializer->method('decode')->willThrowException(new MessageDecodingFailedException());
 
         $sqsEnvelop = $this->createSqsEnvelope();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsSenderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsSenderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsSenderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsSenderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         $connection = $this->createMock(Connection::class);
         $connection->expects($this->once())->method('send')->with($encoded['body'], $encoded['headers']);
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $sender = new AmazonSqsSender($connection, $serializer);
@@ -46,9 +46,9 @@
 
         $connection = $this->createMock(Connection::class);
         $connection->expects($this->once())->method('send')
-            ->with($encoded['body'], $encoded['headers'], 0, $stamp->getMessageGroupId(), $stamp->getMessageDeduplicationId());
+            ->with($encoded['body'], $encoded['headers'], null, $stamp->getMessageGroupId(), $stamp->getMessageDeduplicationId());
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $sender = new AmazonSqsSender($connection, $serializer);
@@ -64,9 +64,9 @@
 
         $connection = $this->createMock(Connection::class);
         $connection->expects($this->once())->method('send')
-            ->with($encoded['body'], $encoded['headers'], 0, null, null, $stamp->getTraceId());
+            ->with($encoded['body'], $encoded['headers'], null, null, null, $stamp->getTraceId());
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $sender = new AmazonSqsSender($connection, $serializer);
@@ -81,7 +81,7 @@
         $connection = $this->createMock(Connection::class);
         $connection->expects($this->once())->method('send')->with(base64_encode($encoded['body']), $encoded['headers']);
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $sender = new AmazonSqsSender($connection, $serializer);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,7 +13,6 @@
 
 use AsyncAws\Core\Exception\Http\HttpException;
 use AsyncAws\Core\Exception\Http\ServerException;
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Messenger\Bridge\AmazonSqs\Tests\Fixtures\DummyMessage;
 use Symfony\Component\Messenger\Bridge\AmazonSqs\Transport\AmazonSqsReceiver;
@@ -30,21 +29,6 @@
 
 class AmazonSqsTransportTest extends TestCase
 {
-    private MockObject&Connection $connection;
-    private MockObject&ReceiverInterface $receiver;
-    private MockObject&SenderInterface $sender;
-    private AmazonSqsTransport $transport;
-
-    protected function setUp(): void
-    {
-        $this->connection = $this->createMock(Connection::class);
-        // Mocking the concrete receiver class because mocking multiple interfaces is deprecated
-        $this->receiver = $this->createMock(AmazonSqsReceiver::class);
-        $this->sender = $this->createMock(SenderInterface::class);
-
-        $this->transport = new AmazonSqsTransport($this->connection, null, $this->receiver, $this->sender);
-    }
-
     public function testItIsATransport()
     {
         $transport = $this->getTransport();
@@ -55,8 +39,8 @@
     public function testReceivesMessages()
     {
         $transport = $this->getTransport(
-            $serializer = $this->createMock(SerializerInterface::class),
-            $connection = $this->createMock(Connection::class)
+            $serializer = $this->createStub(SerializerInterface::class),
+            $connection = $this->createStub(Connection::class)
         );
 
         $decodedMessage = new DummyMessage('Decoded.');
@@ -83,86 +67,104 @@
 
     public function testItCanGetMessagesViaTheReceiver()
     {
+        $receiver = $this->createMock(AmazonSqsReceiver::class);
+        $transport = $this->getTransport(null, null, $receiver);
         $envelopes = [new Envelope(new \stdClass()), new Envelope(new \stdClass())];
-        $this->receiver->expects($this->once())->method('get')->willReturn($envelopes);
-        $this->assertSame($envelopes, $this->transport->get());
+        $receiver->expects($this->once())->method('get')->willReturn($envelopes);
+        $this->assertSame($envelopes, $transport->get());
     }
 
     public function testItCanAcknowledgeAMessageViaTheReceiver()
     {
+        $receiver = $this->createMock(AmazonSqsReceiver::class);
+        $transport = $this->getTransport(null, null, $receiver);
         $envelope = new Envelope(new \stdClass());
-        $this->receiver->expects($this->once())->method('ack')->with($envelope);
-        $this->transport->ack($envelope);
+        $receiver->expects($this->once())->method('ack')->with($envelope);
+        $transport->ack($envelope);
     }
 
     public function testItCanRejectAMessageViaTheReceiver()
     {
+        $receiver = $this->createMock(AmazonSqsReceiver::class);
+        $transport = $this->getTransport(null, null, $receiver);
         $envelope = new Envelope(new \stdClass());
-        $this->receiver->expects($this->once())->method('reject')->with($envelope);
-        $this->transport->reject($envelope);
+        $receiver->expects($this->once())->method('reject')->with($envelope);
+        $transport->reject($envelope);
     }
 
     public function testItCanGetMessageCountViaTheReceiver()
     {
+        $receiver = $this->createMock(AmazonSqsReceiver::class);
+        $transport = $this->getTransport(null, null, $receiver);
         $messageCount = 15;
-        $this->receiver->expects($this->once())->method('getMessageCount')->willReturn($messageCount);
-        $this->assertSame($messageCount, $this->transport->getMessageCount());
+        $receiver->expects($this->once())->method('getMessageCount')->willReturn($messageCount);
+        $this->assertSame($messageCount, $transport->getMessageCount());
     }
 
     public function testItCanSendAMessageViaTheSender()
     {
+        $sender = $this->createMock(SenderInterface::class);
+        $transport = $this->getTransport(null, null, null, $sender);
         $envelope = new Envelope(new \stdClass());
-        $this->sender->expects($this->once())->method('send')->with($envelope)->willReturn($envelope);
-        $this->assertSame($envelope, $this->transport->send($envelope));
+        $sender->expects($this->once())->method('send')->with($envelope)->willReturn($envelope);
+        $this->assertSame($envelope, $transport->send($envelope));
     }
 
     public function testItCanSetUpTheConnection()
     {
-        $this->connection->expects($this->once())->method('setup');
-        $this->transport->setup();
+        $connection = $this->createMock(Connection::class);
+        $transport = $this->getTransport(null, $connection);
+        $connection->expects($this->once())->method('setup');
+        $transport->setup();
     }
 
     public function testItConvertsHttpExceptionDuringSetupIntoTransportException()
     {
-        $this->connection
+        $connection = $this->createMock(Connection::class);
+        $transport = $this->getTransport(null, $connection);
+        $connection
             ->expects($this->once())
             ->method('setup')
             ->willThrowException($this->createHttpException());
 
         $this->expectException(TransportException::class);
 
-        $this->transport->setup();
+        $transport->setup();
     }
 
     public function testItCanResetTheConnection()
     {
-        $this->connection->expects($this->once())->method('reset');
-        $this->transport->reset();
+        $connection = $this->createMock(Connection::class);
+        $transport = $this->getTransport(null, $connection);
+        $connection->expects($this->once())->method('reset');
+        $transport->reset();
     }
 
     public function testItConvertsHttpExceptionDuringResetIntoTransportException()
     {
-        $this->connection
+        $connection = $this->createMock(Connection::class);
+        $transport = $this->getTransport(null, $connection);
+        $connection
             ->expects($this->once())
             ->method('reset')
             ->willThrowException($this->createHttpException());
 
         $this->expectException(TransportException::class);
 
-        $this->transport->reset();
+        $transport->reset();
     }
 
-    private function getTransport(?SerializerInterface $serializer = null, ?Connection $connection = null)
+    private function getTransport(?SerializerInterface $serializer = null, ?Connection $connection = null, ?ReceiverInterface $receiver = null, ?SenderInterface $sender = null)
     {
-        $serializer ??= $this->createMock(SerializerInterface::class);
-        $connection ??= $this->createMock(Connection::class);
+        $serializer ??= $this->createStub(SerializerInterface::class);
+        $connection ??= $this->createStub(Connection::class);
 
-        return new AmazonSqsTransport($connection, $serializer);
+        return new AmazonSqsTransport($connection, $serializer, $receiver, $sender);
     }
 
     private function createHttpException(): HttpException
     {
-        $response = $this->createMock(ResponseInterface::class);
+        $response = $this->createStub(ResponseInterface::class);
         $response->method('getInfo')->willReturnCallback(static function (?string $type = null) {
             $info = [
                 'http_code' => 500,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,6 @@
 use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Messenger\Bridge\AmazonSqs\Transport\Connection;
-use Symfony\Contracts\HttpClient\HttpClientInterface;
 
 class ConnectionTest extends TestCase
 {
@@ -46,7 +45,7 @@
         $awsKey = 'some_aws_access_key_value';
         $awsSecret = 'some_aws_secret_value';
         $region = 'eu-west-1';
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['queue_name' => 'queue'], new SqsClient(['region' => $region, 'accessKeyId' => $awsKey, 'accessKeySecret' => $awsSecret], null, $httpClient)),
             Connection::fromDsn('sqs://default/queue', [
@@ -63,7 +62,7 @@
         $awsSecret = 'some_aws_secret_value';
         $sessionToken = 'some_aws_sessionToken';
         $region = 'eu-west-1';
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['queue_name' => 'queue'], new SqsClient(['region' => $region, 'accessKeyId' => $awsKey, 'accessKeySecret' => $awsSecret, 'sessionToken' => $sessionToken], null, $httpClient)),
             Connection::fromDsn('sqs://default/queue', [
@@ -85,7 +84,7 @@
 
     public function testFromDsn()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['queue_name' => 'queue'], new SqsClient(['region' => 'eu-west-1', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)),
             Connection::fromDsn('sqs://default/queue', [], $httpClient)
@@ -94,16 +93,25 @@
 
     public function testDsnPrecedence()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['queue_name' => 'queue_dsn'], new SqsClient(['region' => 'us-east-2', 'accessKeyId' => 'key_dsn', 'accessKeySecret' => 'secret_dsn'], null, $httpClient)),
             Connection::fromDsn('sqs://key_dsn:secret_dsn@default/queue_dsn?region=us-east-2', ['region' => 'eu-west-3', 'queue_name' => 'queue_options', 'access_key' => 'key_option', 'secret_key' => 'secret_option'], $httpClient)
         );
     }
 
+    public function testQueueNameDefault()
+    {
+        $httpClient = new MockHttpClient();
+        $this->assertEquals(
+            new Connection(['queue_name' => 'messages'], new SqsClient(['region' => 'us-east-2', 'accessKeyId' => 'key_dsn', 'accessKeySecret' => 'secret_dsn'], null, $httpClient)),
+            Connection::fromDsn('sqs://key_dsn:secret_dsn@default/?region=us-east-2', ['region' => 'eu-west-3', 'access_key' => 'key_option', 'secret_key' => 'secret_option'], $httpClient)
+        );
+    }
+
     public function testFromDsnWithRegion()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['queue_name' => 'queue'], new SqsClient(['region' => 'us-west-2', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)),
             Connection::fromDsn('sqs://default/queue?region=us-west-2', [], $httpClient)
@@ -112,7 +120,7 @@
 
     public function testFromDsnAsQueueUrl()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['queue_name' => 'ab1-MyQueue-A2BCDEF3GHI4', 'account' => '123456789012'], new SqsClient(['region' => 'us-east-2', 'endpoint' => 'https://sqs.us-east-2.amazonaws.com', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient), 'https://sqs.us-east-2.amazonaws.com/123456789012/ab1-MyQueue-A2BCDEF3GHI4'),
             Connection::fromDsn('https://sqs.us-east-2.amazonaws.com/123456789012/ab1-MyQueue-A2BCDEF3GHI4', [], $httpClient)
@@ -121,7 +129,7 @@
 
     public function testFromDsnWithCustomEndpoint()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['queue_name' => 'queue'], new SqsClient(['region' => 'eu-west-1', 'endpoint' => 'https://localhost', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)),
             Connection::fromDsn('sqs://localhost/queue', [], $httpClient)
@@ -130,7 +138,7 @@
 
     public function testFromDsnWithSslMode()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['queue_name' => 'queue'], new SqsClient(['region' => 'eu-west-1', 'endpoint' => 'http://localhost', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)),
             Connection::fromDsn('sqs://localhost/queue?sslmode=disable', [], $httpClient)
@@ -139,7 +147,7 @@
 
     public function testFromDsnWithSslModeOnDefault()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['queue_name' => 'queue'], new SqsClient(['region' => 'eu-west-1', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)),
             Connection::fromDsn('sqs://default/queue?sslmode=disable', [], $httpClient)
@@ -148,7 +156,7 @@
 
     public function testFromDsnWithCustomEndpointAndPort()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['queue_name' => 'queue'], new SqsClient(['region' => 'eu-west-1', 'endpoint' => 'https://localhost:1234', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)),
             Connection::fromDsn('sqs://localhost:1234/queue', [], $httpClient)
@@ -157,7 +165,7 @@
 
     public function testFromDsnWithOptions()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['account' => '213', 'queue_name' => 'queue', 'buffer_size' => 1, 'wait_time' => 5, 'auto_setup' => false], new SqsClient(['region' => 'eu-west-1', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)),
             Connection::fromDsn('sqs://default/213/queue', ['buffer_size' => 1, 'wait_time' => 5, 'auto_setup' => false], $httpClient)
@@ -166,7 +174,7 @@
 
     public function testFromDsnWithQueryOptions()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
         $this->assertEquals(
             new Connection(['account' => '213', 'queue_name' => 'queue', 'buffer_size' => 1, 'wait_time' => 5, 'auto_setup' => false], new SqsClient(['region' => 'eu-west-1', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)),
             Connection::fromDsn('sqs://default/213/queue?buffer_size=1&wait_time=5&auto_setup=0', [], $httpClient)
@@ -175,7 +183,7 @@
 
     public function testFromDsnWithQueueNameOption()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
 
         $this->assertEquals(
             new Connection(['queue_name' => 'queue'], new SqsClient(['region' => 'eu-west-1', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)),
@@ -190,7 +198,7 @@
 
     public function testFromDsnWithAccountAndEndpointOption()
     {
-        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient = new MockHttpClient();
 
         $this->assertEquals(
             new Connection(['account' => 12345], new SqsClient(['endpoint' => 'https://custom-endpoint.tld', 'region' => 'eu-west-1', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)),
@@ -225,10 +233,11 @@
     public function testKeepGettingPendingMessages()
     {
         $client = $this->createMock(SqsClient::class);
-        $client->expects($this->any())
+        $client
             ->method('getQueueUrl')
-            ->with(['QueueName' => 'queue', 'QueueOwnerAWSAccountId' => 123])
-            ->willReturn(ResultMockFactory::create(GetQueueUrlResult::class, ['QueueUrl' => 'https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue']));
+            ->willReturnMap([
+                [['QueueName' => 'queue', 'QueueOwnerAWSAccountId' => 123], ResultMockFactory::create(GetQueueUrlResult::class, ['QueueUrl' => 'https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue'])],
+            ]);
 
         $firstResult = ResultMockFactory::create(ReceiveMessageResult::class, ['Messages' => [
             new Message(['MessageId' => 1, 'Body' => 'this is a test']),
@@ -272,8 +281,8 @@
         $this->expectException(HttpException::class);
         $this->expectExceptionMessage('SQS error happens');
 
-        $client = $this->createMock(SqsClient::class);
-        $client->expects($this->any())
+        $client = $this->createStub(SqsClient::class);
+        $client
             ->method('getQueueUrl')
             ->with(['QueueName' => 'queue', 'QueueOwnerAWSAccountId' => 123])
             ->willReturn(ResultMockFactory::createFailing(GetQueueUrlResult::class, 400, 'SQS error happens'));
@@ -362,23 +371,23 @@
         if ($this->isAsyncAwsSqsVersion2Installed()) {
             return new MockResponse(
                 <<<JSON
-{
-    "QueueUrl": "https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue"
-}
-JSON
+                    {
+                        "QueueUrl": "https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue"
+                    }
+                    JSON
             );
         }
 
         return new MockResponse(<<<XML
-<GetQueueUrlResponse>
-    <GetQueueUrlResult>
-        <QueueUrl>https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue</QueueUrl>
-    </GetQueueUrlResult>
-    <ResponseMetadata>
-        <RequestId>470a6f13-2ed9-4181-ad8a-2fdea142988e</RequestId>
-    </ResponseMetadata>
-</GetQueueUrlResponse>
-XML
+            <GetQueueUrlResponse>
+                <GetQueueUrlResult>
+                    <QueueUrl>https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue</QueueUrl>
+                </GetQueueUrlResult>
+                <ResponseMetadata>
+                    <RequestId>470a6f13-2ed9-4181-ad8a-2fdea142988e</RequestId>
+                </ResponseMetadata>
+            </GetQueueUrlResponse>
+            XML
         );
     }
 
@@ -386,61 +395,61 @@
     {
         if ($this->isAsyncAwsSqsVersion2Installed()) {
             return new MockResponse(<<<JSON
-{
-    "Messages": [
-        {
-            "Attributes": {
-                "SenderId": "195004372649",
-                "ApproximateFirstReceiveTimestamp": "1250700979248",
-                "ApproximateReceiveCount": "5",
-                "SentTimestamp": "1238099229000"
-            },
-            "Body": "This is a test message",
-            "MD5OfBody": "fafb00f5732ab283681e124bf8747ed1",
-            "MessageId": "5fea7756-0ea4-451a-a703-a558b933e274",
-            "ReceiptHandle": "MbZj6wDWli+JvwwJaBV+3dcjk2YW2vA3+STFFljTM8tJJg6HRG6PYSasuWXPJB+CwLj1FjgXUv1uSj1gUPAWV66FU/WeR4mq2OKpEGYWbnLmpRCJVAyeMjeU5ZBdtcQ+QEauMZc8ZRv37sIW2iJKq3M9MFx1YvV11A2x/KSbkJ0="
-        }
-    ]
-}
-JSON
+                {
+                    "Messages": [
+                        {
+                            "Attributes": {
+                                "SenderId": "195004372649",
+                                "ApproximateFirstReceiveTimestamp": "1250700979248",
+                                "ApproximateReceiveCount": "5",
+                                "SentTimestamp": "1238099229000"
+                            },
+                            "Body": "This is a test message",
+                            "MD5OfBody": "fafb00f5732ab283681e124bf8747ed1",
+                            "MessageId": "5fea7756-0ea4-451a-a703-a558b933e274",
+                            "ReceiptHandle": "MbZj6wDWli+JvwwJaBV+3dcjk2YW2vA3+STFFljTM8tJJg6HRG6PYSasuWXPJB+CwLj1FjgXUv1uSj1gUPAWV66FU/WeR4mq2OKpEGYWbnLmpRCJVAyeMjeU5ZBdtcQ+QEauMZc8ZRv37sIW2iJKq3M9MFx1YvV11A2x/KSbkJ0="
+                        }
+                    ]
+                }
+                JSON
             );
         }
 
         return new MockResponse(<<<XML
-<ReceiveMessageResponse>
-  <ReceiveMessageResult>
-    <Message>
-      <MessageId>5fea7756-0ea4-451a-a703-a558b933e274</MessageId>
-      <ReceiptHandle>
-        MbZj6wDWli+JvwwJaBV+3dcjk2YW2vA3+STFFljTM8tJJg6HRG6PYSasuWXPJB+Cw
-        Lj1FjgXUv1uSj1gUPAWV66FU/WeR4mq2OKpEGYWbnLmpRCJVAyeMjeU5ZBdtcQ+QE
-        auMZc8ZRv37sIW2iJKq3M9MFx1YvV11A2x/KSbkJ0=
-      </ReceiptHandle>
-      <MD5OfBody>fafb00f5732ab283681e124bf8747ed1</MD5OfBody>
-      <Body>This is a test message</Body>
-      <Attribute>
-        <Name>SenderId</Name>
-        <Value>195004372649</Value>
-      </Attribute>
-      <Attribute>
-        <Name>SentTimestamp</Name>
-        <Value>1238099229000</Value>
-      </Attribute>
-      <Attribute>
-        <Name>ApproximateReceiveCount</Name>
-        <Value>5</Value>
-      </Attribute>
-      <Attribute>
-        <Name>ApproximateFirstReceiveTimestamp</Name>
-        <Value>1250700979248</Value>
-      </Attribute>
-    </Message>
-  </ReceiveMessageResult>
-  <ResponseMetadata>
-    <RequestId>b6633655-283d-45b4-aee4-4e84e0ae6afa</RequestId>
-  </ResponseMetadata>
-</ReceiveMessageResponse>
-XML
+            <ReceiveMessageResponse>
+              <ReceiveMessageResult>
+                <Message>
+                  <MessageId>5fea7756-0ea4-451a-a703-a558b933e274</MessageId>
+                  <ReceiptHandle>
+                    MbZj6wDWli+JvwwJaBV+3dcjk2YW2vA3+STFFljTM8tJJg6HRG6PYSasuWXPJB+Cw
+                    Lj1FjgXUv1uSj1gUPAWV66FU/WeR4mq2OKpEGYWbnLmpRCJVAyeMjeU5ZBdtcQ+QE
+                    auMZc8ZRv37sIW2iJKq3M9MFx1YvV11A2x/KSbkJ0=
+                  </ReceiptHandle>
+                  <MD5OfBody>fafb00f5732ab283681e124bf8747ed1</MD5OfBody>
+                  <Body>This is a test message</Body>
+                  <Attribute>
+                    <Name>SenderId</Name>
+                    <Value>195004372649</Value>
+                  </Attribute>
+                  <Attribute>
+                    <Name>SentTimestamp</Name>
+                    <Value>1238099229000</Value>
+                  </Attribute>
+                  <Attribute>
+                    <Name>ApproximateReceiveCount</Name>
+                    <Value>5</Value>
+                  </Attribute>
+                  <Attribute>
+                    <Name>ApproximateFirstReceiveTimestamp</Name>
+                    <Value>1250700979248</Value>
+                  </Attribute>
+                </Message>
+              </ReceiveMessageResult>
+              <ResponseMetadata>
+                <RequestId>b6633655-283d-45b4-aee4-4e84e0ae6afa</RequestId>
+              </ResponseMetadata>
+            </ReceiveMessageResponse>
+            XML
         );
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsSender.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsSender.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsSender.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsSender.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
 
         /** @var DelayStamp|null $delayStamp */
         $delayStamp = $envelope->last(DelayStamp::class);
-        $delay = null !== $delayStamp ? (int) ceil($delayStamp->getDelay() / 1000) : 0;
+        $delay = null !== $delayStamp ? (int) ceil($delayStamp->getDelay() / 1000) : null;
 
         $messageGroupId = null;
         $messageDeduplicationId = null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,15 +65,12 @@
         $this->queueUrl = $queueUrl;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -117,13 +114,13 @@
         // check for extra keys in options
         $optionsExtraKeys = array_diff(array_keys($options), array_keys(self::DEFAULT_OPTIONS));
         if (0 < \count($optionsExtraKeys)) {
-            throw new InvalidArgumentException(sprintf('Unknown option found: [%s]. Allowed options are [%s].', implode(', ', $optionsExtraKeys), implode(', ', array_keys(self::DEFAULT_OPTIONS))));
+            throw new InvalidArgumentException(\sprintf('Unknown option found: [%s]. Allowed options are [%s].', implode(', ', $optionsExtraKeys), implode(', ', array_keys(self::DEFAULT_OPTIONS))));
         }
 
         // check for extra keys in options
         $queryExtraKeys = array_diff(array_keys($query), array_keys(self::DEFAULT_OPTIONS));
         if (0 < \count($queryExtraKeys)) {
-            throw new InvalidArgumentException(sprintf('Unknown option found in DSN: [%s]. Allowed options are [%s].', implode(', ', $queryExtraKeys), implode(', ', array_keys(self::DEFAULT_OPTIONS))));
+            throw new InvalidArgumentException(\sprintf('Unknown option found in DSN: [%s]. Allowed options are [%s].', implode(', ', $queryExtraKeys), implode(', ', array_keys(self::DEFAULT_OPTIONS))));
         }
 
         $options = $query + $options + self::DEFAULT_OPTIONS;
@@ -150,7 +147,7 @@
         unset($query['region']);
 
         if ('default' !== ($params['host'] ?? 'default')) {
-            $clientConfiguration['endpoint'] = sprintf('%s://%s%s', ($query['sslmode'] ?? null) === 'disable' ? 'http' : 'https', $params['host'], ($params['port'] ?? null) ? ':'.$params['port'] : '');
+            $clientConfiguration['endpoint'] = \sprintf('%s://%s%s', ($query['sslmode'] ?? null) === 'disable' ? 'http' : 'https', $params['host'], ($params['port'] ?? null) ? ':'.$params['port'] : '');
             if (preg_match(';^sqs\.([^\.]++)\.amazonaws\.com$;', $params['host'], $matches)) {
                 $clientConfiguration['region'] = $matches[1];
             }
@@ -277,7 +274,7 @@
         }
 
         if (null !== $this->configuration['account']) {
-            throw new InvalidArgumentException(sprintf('The Amazon SQS queue "%s" does not exist (or you don\'t have permissions on it), and can\'t be created when an account is provided.', $this->configuration['queue_name']));
+            throw new InvalidArgumentException(\sprintf('The Amazon SQS queue "%s" does not exist (or you don\'t have permissions on it), and can\'t be created when an account is provided.', $this->configuration['queue_name']));
         }
 
         $parameters = ['QueueName' => $this->configuration['queue_name']];
@@ -293,7 +290,7 @@
         // Blocking call to wait for the queue to be created
         $exists->wait();
         if (!$exists->isSuccess()) {
-            throw new TransportException(sprintf('Failed to create the Amazon SQS queue "%s".', $this->configuration['queue_name']));
+            throw new TransportException(\sprintf('Failed to create the Amazon SQS queue "%s".', $this->configuration['queue_name']));
         }
         $this->queueUrl = null;
     }
@@ -318,7 +315,7 @@
         return (int) ($attributes[QueueAttributeName::APPROXIMATE_NUMBER_OF_MESSAGES] ?? 0);
     }
 
-    public function send(string $body, array $headers, int $delay = 0, ?string $messageGroupId = null, ?string $messageDeduplicationId = null, ?string $xrayTraceId = null): void
+    public function send(string $body, array $headers, ?int $delay = null, ?string $messageGroupId = null, ?string $messageDeduplicationId = null, ?string $xrayTraceId = null): void
     {
         if ($this->configuration['auto_setup']) {
             $this->setup();
@@ -327,12 +324,15 @@
         $parameters = [
             'QueueUrl' => $this->getQueueUrl(),
             'MessageBody' => $body,
-            // Maximum delay is 15 minutes. See https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-timers.html.
-            'DelaySeconds' => min(900, $delay),
             'MessageAttributes' => [],
             'MessageSystemAttributes' => [],
         ];
 
+        if (null !== $delay) {
+            // Maximum delay is 15 minutes. See https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-timers.html.
+            $parameters['DelaySeconds'] = min(900, $delay);
+        }
+
         $specialHeaders = [];
         foreach ($headers as $name => $value) {
             if ('.' === $name[0] || self::MESSAGE_ATTRIBUTE_NAME === $name || \strlen($name) > 256 || str_ends_with($name, '.') || str_starts_with($name, 'AWS.') || str_starts_with($name, 'Amazon.') || preg_match('/([^a-zA-Z0-9_\.-]+|\.\.)/', $name)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/CHANGELOG.md symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/CHANGELOG.md
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/CHANGELOG.md	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/CHANGELOG.md	2026-05-20 10:56:49.000000000 +0200
@@ -1,6 +1,11 @@
 CHANGELOG
 =========
 
+6.4
+---
+
+ * Add option `delay[daily_delay_queues]` in the transport definition
+
 6.0
 ---
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpExtIntegrationTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpExtIntegrationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpExtIntegrationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpExtIntegrationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -116,7 +116,7 @@
 
         // this should be the custom routing key message first
         $this->assertCount(1, $envelopes);
-        /* @var Envelope $envelope */
+        /** @var Envelope $envelope */
         $receiver->ack($envelopes[0]);
         $this->assertEquals($customRoutingKeyMessage, $envelopes[0]->getMessage());
 
@@ -125,7 +125,7 @@
         // duration should be about 2 seconds
         $this->assertApproximateDuration($startTime, 2);
 
-        /* @var RedeliveryStamp|null $retryStamp */
+        /** @var RedeliveryStamp|null $retryStamp */
         // verify the stamp still exists from the last send
         $this->assertCount(1, $envelopes);
         $retryStamp = $envelopes[0]->last(RedeliveryStamp::class);
@@ -212,18 +212,19 @@
         $this->assertFalse($process->isRunning());
         $this->assertLessThan($amqpReadTimeout, microtime(true) - $signalTime);
         $this->assertSame($expectedOutput.<<<'TXT'
-Get envelope with message: Symfony\Component\Messenger\Bridge\Amqp\Tests\Fixtures\DummyMessage
-with stamps: [
-    "Symfony\\Component\\Messenger\\Stamp\\SerializedMessageStamp",
-    "Symfony\\Component\\Messenger\\Bridge\\Amqp\\Transport\\AmqpReceivedStamp",
-    "Symfony\\Component\\Messenger\\Stamp\\ReceivedStamp",
-    "Symfony\\Component\\Messenger\\Stamp\\ConsumedByWorkerStamp",
-    "Symfony\\Component\\Messenger\\Stamp\\AckStamp"
-]
-Done.
-
-TXT
-            , $process->getOutput());
+            Get envelope with message: Symfony\Component\Messenger\Bridge\Amqp\Tests\Fixtures\DummyMessage
+            with stamps: [
+                "Symfony\\Component\\Messenger\\Stamp\\SerializedMessageStamp",
+                "Symfony\\Component\\Messenger\\Bridge\\Amqp\\Transport\\AmqpReceivedStamp",
+                "Symfony\\Component\\Messenger\\Stamp\\ReceivedStamp",
+                "Symfony\\Component\\Messenger\\Stamp\\ConsumedByWorkerStamp",
+                "Symfony\\Component\\Messenger\\Stamp\\AckStamp"
+            ]
+            Done.
+
+            TXT,
+            $process->getOutput()
+        );
     }
 
     public function testItCountsMessagesInQueue()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpReceivedStampTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpReceivedStampTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpReceivedStampTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpReceivedStampTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
 {
     public function testStamp()
     {
-        $amqpEnvelope = $this->createMock(\AMQPEnvelope::class);
+        $amqpEnvelope = $this->createStub(\AMQPEnvelope::class);
 
         $stamp = new AmqpReceivedStamp($amqpEnvelope, 'queueName');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpReceiverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpReceiverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpReceiverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpReceiverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
         );
 
         $amqpEnvelope = $this->createAMQPEnvelope();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('getQueueNames')->willReturn(['queueName']);
         $connection->method('get')->with('queueName')->willReturn($amqpEnvelope);
 
@@ -49,9 +49,9 @@
     public function testItThrowsATransportExceptionIfItCannotAcknowledgeMessage()
     {
         $this->expectException(TransportException::class);
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $amqpEnvelope = $this->createAMQPEnvelope();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('getQueueNames')->willReturn(['queueName']);
         $connection->method('get')->with('queueName')->willReturn($amqpEnvelope);
         $connection->method('ack')->with($amqpEnvelope, 'queueName')->willThrowException(new \AMQPException());
@@ -63,9 +63,9 @@
     public function testItThrowsATransportExceptionIfItCannotRejectMessage()
     {
         $this->expectException(TransportException::class);
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $amqpEnvelope = $this->createAMQPEnvelope();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('getQueueNames')->willReturn(['queueName']);
         $connection->method('get')->with('queueName')->willReturn($amqpEnvelope);
         $connection->method('nack')->with($amqpEnvelope, 'queueName', \AMQP_NOPARAM)->willThrowException(new \AMQPException());
@@ -76,7 +76,7 @@
 
     private function createAMQPEnvelope(): \AMQPEnvelope
     {
-        $envelope = $this->createMock(\AMQPEnvelope::class);
+        $envelope = $this->createStub(\AMQPEnvelope::class);
         $envelope->method('getBody')->willReturn('{"message": "Hi"}');
         $envelope->method('getHeaders')->willReturn([
             'type' => DummyMessage::class,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpSenderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpSenderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpSenderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpSenderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,11 +13,14 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Messenger\Bridge\Amqp\Tests\Fixtures\DummyMessage;
+use Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceivedStamp;
 use Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpSender;
 use Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpStamp;
 use Symfony\Component\Messenger\Bridge\Amqp\Transport\Connection;
 use Symfony\Component\Messenger\Envelope;
 use Symfony\Component\Messenger\Exception\TransportException;
+use Symfony\Component\Messenger\Stamp\RedeliveryStamp;
+use Symfony\Component\Messenger\Stamp\SentToFailureTransportStamp;
 use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface;
 
 /**
@@ -30,7 +33,7 @@
         $envelope = new Envelope(new DummyMessage('Oy'));
         $encoded = ['body' => '...', 'headers' => ['type' => DummyMessage::class]];
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $connection = $this->createMock(Connection::class);
@@ -45,7 +48,7 @@
         $envelope = (new Envelope(new DummyMessage('Oy')))->with($stamp = new AmqpStamp('rk'));
         $encoded = ['body' => '...', 'headers' => ['type' => DummyMessage::class]];
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $connection = $this->createMock(Connection::class);
@@ -60,7 +63,7 @@
         $envelope = new Envelope(new DummyMessage('Oy'));
         $encoded = ['body' => '...'];
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $connection = $this->createMock(Connection::class);
@@ -75,7 +78,7 @@
         $envelope = new Envelope(new DummyMessage('Oy'));
         $encoded = ['body' => '...', 'headers' => ['type' => DummyMessage::class, 'Content-Type' => 'application/json']];
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $connection = $this->createMock(Connection::class);
@@ -92,7 +95,7 @@
         $envelope = (new Envelope(new DummyMessage('Oy')))->with($stamp = new AmqpStamp('rk', \AMQP_NOPARAM, ['content_type' => 'custom']));
         $encoded = ['body' => '...', 'headers' => ['type' => DummyMessage::class, 'Content-Type' => 'application/json']];
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $connection = $this->createMock(Connection::class);
@@ -109,13 +112,42 @@
         $envelope = new Envelope(new DummyMessage('Oy'));
         $encoded = ['body' => '...', 'headers' => ['type' => DummyMessage::class]];
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('publish')->with($encoded['body'], $encoded['headers'])->willThrowException(new \AMQPException());
 
         $sender = new AmqpSender($connection, $serializer);
         $sender->send($envelope);
+    }
+
+    public function testDoNotUseRetryRoutingKeyWhenSendingToFailureTransport()
+    {
+        $amqpEnvelope = $this->createStub(\AMQPEnvelope::class);
+        $amqpEnvelope->method('getRoutingKey')->willReturn('original_routing_key');
+
+        $envelope = new Envelope(new DummyMessage('Oy'), [
+            new AmqpReceivedStamp($amqpEnvelope, 'original_queue'),
+            new RedeliveryStamp(0),
+            new SentToFailureTransportStamp('async'),
+        ]);
+        $encoded = ['body' => '...', 'headers' => ['type' => DummyMessage::class]];
+
+        $serializer = $this->createStub(SerializerInterface::class);
+        $serializer->method('encode')->willReturn($encoded);
+
+        $connection = $this->createMock(Connection::class);
+        $connection->expects($this->once())->method('publish')
+            ->with($encoded['body'], $encoded['headers'], 0, $this->callback(function (AmqpStamp $stamp) {
+                // The routing key must NOT be the original queue name
+                $this->assertNotSame('original_queue', $stamp->getRoutingKey());
+                $this->assertFalse($stamp->isRetryAttempt());
+
+                return true;
+            }));
+
+        $sender = new AmqpSender($connection, $serializer);
+        $sender->send($envelope);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpStampTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpStampTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpStampTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpStampTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
 
     public function testCreateFromAmqpEnvelope()
     {
-        $amqpEnvelope = $this->createMock(\AMQPEnvelope::class);
+        $amqpEnvelope = $this->createStub(\AMQPEnvelope::class);
         $amqpEnvelope->method('getRoutingKey')->willReturn('routingkey');
         $amqpEnvelope->method('getDeliveryMode')->willReturn(2);
         $amqpEnvelope->method('getPriority')->willReturn(5);
@@ -56,7 +56,7 @@
 
     public function testCreateFromAmqpEnvelopeWithPreviousStamp()
     {
-        $amqpEnvelope = $this->createMock(\AMQPEnvelope::class);
+        $amqpEnvelope = $this->createStub(\AMQPEnvelope::class);
         $amqpEnvelope->method('getRoutingKey')->willReturn('routingkey');
         $amqpEnvelope->method('getDeliveryMode')->willReturn(2);
         $amqpEnvelope->method('getPriority')->willReturn(5);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
     public function testItCreatesTheTransport()
     {
         $factory = new AmqpTransportFactory();
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
 
         $expectedTransport = new AmqpTransport(Connection::fromDsn('amqp://localhost', ['host' => 'localhost']), $serializer);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,13 +34,13 @@
     public function testReceivesMessages()
     {
         $transport = $this->getTransport(
-            $serializer = $this->createMock(SerializerInterface::class),
-            $connection = $this->createMock(Connection::class)
+            $serializer = $this->createStub(SerializerInterface::class),
+            $connection = $this->createStub(Connection::class)
         );
 
         $decodedMessage = new DummyMessage('Decoded.');
 
-        $amqpEnvelope = $this->createMock(\AMQPEnvelope::class);
+        $amqpEnvelope = $this->createStub(\AMQPEnvelope::class);
         $amqpEnvelope->method('getBody')->willReturn('body');
         $amqpEnvelope->method('getHeaders')->willReturn(['my' => 'header']);
 
@@ -54,8 +54,8 @@
 
     private function getTransport(?SerializerInterface $serializer = null, ?Connection $connection = null): AmqpTransport
     {
-        $serializer ??= $this->createMock(SerializerInterface::class);
-        $connection ??= $this->createMock(Connection::class);
+        $serializer ??= $this->createStub(SerializerInterface::class);
+        $connection ??= $this->createStub(Connection::class);
 
         return new AmqpTransport($connection, $serializer);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/ConnectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/ConnectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/ConnectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/ConnectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,6 +34,21 @@
         Connection::fromDsn('amqp://:');
     }
 
+    public function testUserOptionIsAliasedToLogin()
+    {
+        $r = new \ReflectionProperty(Connection::class, 'connectionOptions');
+
+        $connection = new Connection(['host' => 'localhost', 'user' => 'alice'], ['name' => self::DEFAULT_EXCHANGE_NAME], [self::DEFAULT_EXCHANGE_NAME => []]);
+        $options = $r->getValue($connection);
+        $this->assertSame('alice', $options['login']);
+        $this->assertArrayNotHasKey('user', $options);
+
+        $connection = new Connection(['host' => 'localhost', 'user' => 'alice', 'login' => 'bob'], ['name' => self::DEFAULT_EXCHANGE_NAME], [self::DEFAULT_EXCHANGE_NAME => []]);
+        $options = $r->getValue($connection);
+        $this->assertSame('bob', $options['login']);
+        $this->assertArrayNotHasKey('user', $options);
+    }
+
     public function testItCanBeConstructedWithDefaults()
     {
         $this->assertEquals(
@@ -149,8 +164,8 @@
     public function testSetsParametersOnTheQueueAndExchange()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
             $amqpQueue = $this->createMock(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
@@ -232,8 +247,8 @@
         $factory = new TestAmqpFactory(
             $amqpConnection = $this->createMock(\AMQPConnection::class),
             $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
-            $amqpExchange = $this->createMock(\AMQPExchange::class)
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
+            $amqpExchange = $this->createStub(\AMQPExchange::class)
         );
 
         // makes sure the channel looks connected, so it's not re-created
@@ -249,8 +264,8 @@
         $factory = new TestAmqpFactory(
             $amqpConnection = $this->createMock(\AMQPConnection::class),
             $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
-            $amqpExchange = $this->createMock(\AMQPExchange::class)
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
+            $amqpExchange = $this->createStub(\AMQPExchange::class)
         );
 
         // makes sure the channel looks connected, so it's not re-created
@@ -264,8 +279,8 @@
     public function testItSetupsTheConnectionWithDefaults()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
             $amqpQueue = $this->createMock(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
@@ -281,13 +296,13 @@
 
     public function testItSetupsTheConnection()
     {
-        $amqpConnection = $this->createMock(\AMQPConnection::class);
-        $amqpChannel = $this->createMock(\AMQPChannel::class);
+        $amqpConnection = $this->createStub(\AMQPConnection::class);
+        $amqpChannel = $this->createStub(\AMQPChannel::class);
         $amqpExchange = $this->createMock(\AMQPExchange::class);
         $amqpQueue0 = $this->createMock(\AMQPQueue::class);
         $amqpQueue1 = $this->createMock(\AMQPQueue::class);
 
-        $factory = $this->createMock(AmqpFactory::class);
+        $factory = $this->createStub(AmqpFactory::class);
         $factory->method('createConnection')->willReturn($amqpConnection);
         $factory->method('createChannel')->willReturn($amqpChannel);
         $factory->method('createExchange')->willReturn($amqpExchange);
@@ -336,13 +351,13 @@
 
     public function testItSetupsTheTTLConnection()
     {
-        $amqpConnection = $this->createMock(\AMQPConnection::class);
-        $amqpChannel = $this->createMock(\AMQPChannel::class);
+        $amqpConnection = $this->createStub(\AMQPConnection::class);
+        $amqpChannel = $this->createStub(\AMQPChannel::class);
         $amqpExchange = $this->createMock(\AMQPExchange::class);
         $amqpQueue0 = $this->createMock(\AMQPQueue::class);
         $amqpQueue1 = $this->createMock(\AMQPQueue::class);
 
-        $factory = $this->createMock(AmqpFactory::class);
+        $factory = $this->createStub(AmqpFactory::class);
         $factory->method('createConnection')->willReturn($amqpConnection);
         $factory->method('createChannel')->willReturn($amqpChannel);
         $factory->method('createExchange')->willReturn($amqpExchange);
@@ -391,12 +406,12 @@
 
     public function testBindingArguments()
     {
-        $amqpConnection = $this->createMock(\AMQPConnection::class);
-        $amqpChannel = $this->createMock(\AMQPChannel::class);
+        $amqpConnection = $this->createStub(\AMQPConnection::class);
+        $amqpChannel = $this->createStub(\AMQPChannel::class);
         $amqpExchange = $this->createMock(\AMQPExchange::class);
         $amqpQueue = $this->createMock(\AMQPQueue::class);
 
-        $factory = $this->createMock(AmqpFactory::class);
+        $factory = $this->createStub(AmqpFactory::class);
         $factory->method('createConnection')->willReturn($amqpConnection);
         $factory->method('createChannel')->willReturn($amqpChannel);
         $factory->method('createExchange')->willReturn($amqpExchange);
@@ -417,8 +432,8 @@
     public function testItCanDisableTheSetup()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
             $amqpQueue = $this->createMock(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
@@ -440,8 +455,8 @@
     public function testItSetupQueuesOnce()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
             $amqpQueue = $this->createMock(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
@@ -457,17 +472,17 @@
 
     public function testAutoSetupWithDelayDeclaresExchangeQueuesAndDelay()
     {
-        $amqpConnection = $this->createMock(\AMQPConnection::class);
-        $amqpChannel = $this->createMock(\AMQPChannel::class);
+        $amqpConnection = $this->createStub(\AMQPConnection::class);
+        $amqpChannel = $this->createStub(\AMQPChannel::class);
 
-        $factory = $this->createMock(AmqpFactory::class);
+        $factory = $this->createStub(AmqpFactory::class);
         $factory->method('createConnection')->willReturn($amqpConnection);
         $factory->method('createChannel')->willReturn($amqpChannel);
 
         $amqpQueue = $this->createMock(\AMQPQueue::class);
         $factory
             ->method('createQueue')
-            ->willReturn($amqpQueue, $this->createMock(\AMQPQueue::class));
+            ->willReturn($amqpQueue, $this->createStub(\AMQPQueue::class));
 
         $amqpExchange = $this->createMock(\AMQPExchange::class);
         $delayExchange = $this->createMock(\AMQPExchange::class);
@@ -501,6 +516,52 @@
         $connection->publish('{}', ['x-some-headers' => 'foo'], 5000);
     }
 
+    public function testItPublishesImmediatelyWithNegativeDelay()
+    {
+        $factory = new TestAmqpFactory(
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
+            $amqpQueue = $this->createMock(\AMQPQueue::class),
+            $amqpExchange = $this->createMock(\AMQPExchange::class)
+        );
+
+        $amqpQueue->expects($this->once())->method('setName')->with('messages');
+        $amqpQueue->expects($this->never())->method('setArguments');
+
+        $amqpQueue->expects($this->once())->method('declareQueue');
+        $amqpQueue->expects($this->once())->method('bind')->with('messages');
+
+        $amqpExchange->expects($this->once())
+            ->method('publish')
+            ->with('{}', null, \AMQP_NOPARAM, [
+                'headers' => [
+                    'x-some-headers' => 'foo',
+                ],
+                'delivery_mode' => 2,
+                'timestamp' => time(),
+            ]);
+
+        $connection = Connection::fromDsn('amqp://localhost', [], $factory);
+
+        $connection->publish('{}', ['x-some-headers' => 'foo'], -5000);
+    }
+
+    public function testItDelaysTheMessageWithDailyDelayQueues()
+    {
+        $delayExchange = $this->createMock(\AMQPExchange::class);
+        $date = date('Y-m-d');
+        $delayExchange->expects($this->once())
+            ->method('publish')
+            ->with('{}', "delay_messages__5000_delay_$date", \AMQP_NOPARAM, [
+                'headers' => ['x-some-headers' => 'foo'],
+                'delivery_mode' => 2,
+                'timestamp' => time(),
+            ]);
+        $connection = $this->createDelayOrRetryConnection($delayExchange, self::DEFAULT_EXCHANGE_NAME, "delay_messages__5000_delay_$date", true);
+
+        $connection->publish('{}', ['x-some-headers' => 'foo'], 5000);
+    }
+
     public function testItRetriesTheMessage()
     {
         $delayExchange = $this->createMock(\AMQPExchange::class);
@@ -509,25 +570,53 @@
             ->with('{}', 'delay_messages__5000_retry', \AMQP_NOPARAM);
         $connection = $this->createDelayOrRetryConnection($delayExchange, '', 'delay_messages__5000_retry');
 
-        $amqpEnvelope = $this->createMock(\AMQPEnvelope::class);
+        $amqpEnvelope = $this->createStub(\AMQPEnvelope::class);
         $amqpStamp = AmqpStamp::createFromAmqpEnvelope($amqpEnvelope, null, '');
         $connection->publish('{}', [], 5000, $amqpStamp);
     }
 
+    public function testItRetriesTheMessageWithDailyDelayQueues()
+    {
+        $delayExchange = $this->createMock(\AMQPExchange::class);
+        $date = date('Y-m-d');
+        $delayExchange->expects($this->once())
+            ->method('publish')
+            ->with('{}', "delay_messages__5000_retry_$date", \AMQP_NOPARAM);
+        $connection = $this->createDelayOrRetryConnection($delayExchange, '', "delay_messages__5000_retry_$date", true);
+
+        $amqpStamp = AmqpStamp::createFromAmqpEnvelope($this->createStub(\AMQPEnvelope::class), null, '');
+        $connection->publish('{}', [], 5000, $amqpStamp);
+    }
+
+    public function testDailyDelayQueuesOptionIsNormalizedToBoolean()
+    {
+        $delayExchange = $this->createMock(\AMQPExchange::class);
+        $delayExchange->expects($this->once())
+            ->method('publish')
+            ->with('{}', 'delay_messages__5000_delay', \AMQP_NOPARAM, [
+                'headers' => ['x-some-headers' => 'foo'],
+                'delivery_mode' => 2,
+                'timestamp' => time(),
+            ]);
+        $connection = $this->createDelayOrRetryConnection($delayExchange, self::DEFAULT_EXCHANGE_NAME, 'delay_messages__5000_delay', 'false');
+
+        $connection->publish('{}', ['x-some-headers' => 'foo'], 5000);
+    }
+
     public function testItDelaysTheMessageWithADifferentRoutingKeyAndTTLs()
     {
-        $amqpConnection = $this->createMock(\AMQPConnection::class);
-        $amqpChannel = $this->createMock(\AMQPChannel::class);
+        $amqpConnection = $this->createStub(\AMQPConnection::class);
+        $amqpChannel = $this->createStub(\AMQPChannel::class);
 
-        $factory = $this->createMock(AmqpFactory::class);
+        $factory = $this->createStub(AmqpFactory::class);
         $factory->method('createConnection')->willReturn($amqpConnection);
         $factory->method('createChannel')->willReturn($amqpChannel);
 
         $delayQueue = $this->createMock(\AMQPQueue::class);
-        $factory->method('createQueue')->willReturn($this->createMock(\AMQPQueue::class), $delayQueue);
+        $factory->method('createQueue')->willReturn($this->createStub(\AMQPQueue::class), $delayQueue);
 
         $delayExchange = $this->createMock(\AMQPExchange::class);
-        $factory->method('createExchange')->willReturn($this->createMock(\AMQPExchange::class), $delayExchange);
+        $factory->method('createExchange')->willReturn($this->createStub(\AMQPExchange::class), $delayExchange);
 
         $connectionOptions = [
             'retry' => [
@@ -557,10 +646,10 @@
         $this->expectException(\AMQPException::class);
         $this->expectExceptionMessage('Could not connect to the AMQP server. Please verify the provided DSN.');
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
-            $amqpExchange = $this->createMock(\AMQPExchange::class)
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
+            $amqpExchange = $this->createStub(\AMQPExchange::class)
         );
 
         $amqpConnection->method('connect')->willThrowException(
@@ -577,10 +666,10 @@
         $this->expectExceptionMessage('No CA certificate has been provided. Set "amqp.cacert" in your php.ini or pass the "cacert" parameter in the DSN to use SSL. Alternatively, you can use amqp:// to use without SSL.');
 
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
-            $amqpExchange = $this->createMock(\AMQPExchange::class)
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
+            $amqpExchange = $this->createStub(\AMQPExchange::class)
         );
 
         $oldCaCertValue = ini_set('amqp.cacert', '');
@@ -595,9 +684,9 @@
     public function testAmqpStampHeadersAreUsed()
     {
         $factory = new TestAmqpFactory(
-            $this->createMock(\AMQPConnection::class),
-            $this->createMock(\AMQPChannel::class),
-            $this->createMock(\AMQPQueue::class),
+            $this->createStub(\AMQPConnection::class),
+            $this->createStub(\AMQPChannel::class),
+            $this->createStub(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
 
@@ -610,9 +699,9 @@
     public function testAmqpStampDeliveryModeIsUsed()
     {
         $factory = new TestAmqpFactory(
-            $this->createMock(\AMQPConnection::class),
-            $this->createMock(\AMQPChannel::class),
-            $this->createMock(\AMQPQueue::class),
+            $this->createStub(\AMQPConnection::class),
+            $this->createStub(\AMQPChannel::class),
+            $this->createStub(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
 
@@ -625,9 +714,9 @@
     public function testItCanPublishWithTheDefaultRoutingKey()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
 
@@ -640,9 +729,9 @@
     public function testItCanPublishWithASuppliedRoutingKey()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
 
@@ -654,18 +743,18 @@
 
     public function testItDelaysTheMessageWithTheInitialSuppliedRoutingKeyAsArgument()
     {
-        $amqpConnection = $this->createMock(\AMQPConnection::class);
-        $amqpChannel = $this->createMock(\AMQPChannel::class);
+        $amqpConnection = $this->createStub(\AMQPConnection::class);
+        $amqpChannel = $this->createStub(\AMQPChannel::class);
 
-        $factory = $this->createMock(AmqpFactory::class);
+        $factory = $this->createStub(AmqpFactory::class);
         $factory->method('createConnection')->willReturn($amqpConnection);
         $factory->method('createChannel')->willReturn($amqpChannel);
 
         $delayQueue = $this->createMock(\AMQPQueue::class);
-        $factory->method('createQueue')->willReturn($this->createMock(\AMQPQueue::class), $delayQueue);
+        $factory->method('createQueue')->willReturn($this->createStub(\AMQPQueue::class), $delayQueue);
 
         $delayExchange = $this->createMock(\AMQPExchange::class);
-        $factory->method('createExchange')->willReturn($this->createMock(\AMQPExchange::class), $delayExchange);
+        $factory->method('createExchange')->willReturn($this->createStub(\AMQPExchange::class), $delayExchange);
 
         $connectionOptions = [
             'retry' => [
@@ -693,9 +782,9 @@
     public function testItCanPublishWithCustomFlagsAndAttributes()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
 
@@ -713,10 +802,10 @@
     public function testItPublishMessagesWithoutWaitingForConfirmation()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
             $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
-            $amqpExchange = $this->createMock(\AMQPExchange::class)
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
+            $amqpExchange = $this->createStub(\AMQPExchange::class)
         );
 
         $amqpChannel->expects($this->never())->method('waitForConfirm')->with(0.5);
@@ -728,10 +817,10 @@
     public function testSetChannelToConfirmMessage()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
             $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
-            $amqpExchange = $this->createMock(\AMQPExchange::class)
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
+            $amqpExchange = $this->createStub(\AMQPExchange::class)
         );
 
         $amqpChannel->expects($this->once())->method('confirmSelect');
@@ -743,10 +832,10 @@
     public function testItCanPublishAndWaitForConfirmation()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
             $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
-            $amqpExchange = $this->createMock(\AMQPExchange::class)
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
+            $amqpExchange = $this->createStub(\AMQPExchange::class)
         );
 
         $amqpChannel->expects($this->once())->method('waitForConfirm')->with(0.5);
@@ -779,9 +868,9 @@
     public function testItCanRetryPublishWhenAMQPConnectionExceptionIsThrown()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
 
@@ -799,9 +888,9 @@
     public function testItCanRetryPublishWithDelayWhenAMQPConnectionExceptionIsThrown()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
 
@@ -816,12 +905,74 @@
         $connection->publish('body', [], 5000);
     }
 
+    public function testItDoesNotReconnectWhileMessageIsInFlightWhenHeartbeatExpires()
+    {
+        $connected = true;
+
+        $amqpConnection = $this->createMock(\AMQPConnection::class);
+        $amqpConnection->expects($this->never())->method('disconnect');
+        $amqpConnection->expects($this->never())->method('pdisconnect');
+        $amqpConnection->method('connect')->willReturnCallback(static function () use (&$connected) {
+            $connected = true;
+        });
+
+        $amqpChannel = $this->createStub(\AMQPChannel::class);
+        $amqpChannel->method('getConnection')->willReturn($amqpConnection);
+        $amqpChannel->method('isConnected')->willReturnCallback(static function () use (&$connected) {
+            return $connected;
+        });
+
+        $amqpExchange = $this->createMock(\AMQPExchange::class);
+        $amqpExchange->expects($this->once())->method('publish');
+
+        $amqpEnvelope = $this->createStub(\AMQPEnvelope::class);
+        $amqpEnvelope->method('getDeliveryTag')->willReturn(1);
+
+        $queue = $this->createMock(\AMQPQueue::class);
+        $queue->expects($this->once())->method('get')->willReturn($amqpEnvelope);
+        $queue->expects($this->once())->method('ack')->with(1);
+
+        $queueAfterReconnect = $this->createMock(\AMQPQueue::class);
+        $queueAfterReconnect->expects($this->never())->method('ack');
+
+        $factory = $this->createStub(AmqpFactory::class);
+        $factory->method('createConnection')->willReturn($amqpConnection);
+        $factory->method('createChannel')->willReturn($amqpChannel);
+        $factory->method('createExchange')->willReturn($amqpExchange);
+        $factory->method('createQueue')->willReturnOnConsecutiveCalls($queue, $queueAfterReconnect);
+
+        $connection = Connection::fromDsn('amqp://localhost?heartbeat=1', [], $factory);
+
+        $envelope = $connection->get(self::DEFAULT_EXCHANGE_NAME);
+
+        (new \ReflectionProperty($connection, 'lastActivityTime'))->setValue($connection, time() - 3);
+
+        $connection->publish('body');
+        $connection->ack($envelope, self::DEFAULT_EXCHANGE_NAME);
+    }
+
+    public function testClearResetsInFlightMessagesCounter()
+    {
+        $factory = $this->createStub(AmqpFactory::class);
+        $connection = Connection::fromDsn('amqp://localhost', [], $factory);
+
+        $reflection = new \ReflectionClass($connection);
+
+        $inFlightMessagesProperty = $reflection->getProperty('inFlightMessages');
+        $inFlightMessagesProperty->setValue($connection, 2);
+
+        $clearMethod = $reflection->getMethod('clear');
+        $clearMethod->invoke($connection);
+
+        $this->assertSame(0, $inFlightMessagesProperty->getValue($connection));
+    }
+
     public function testItWillRetryMaxThreeTimesWhenAMQPConnectionExceptionIsThrown()
     {
         $factory = new TestAmqpFactory(
-            $amqpConnection = $this->createMock(\AMQPConnection::class),
-            $amqpChannel = $this->createMock(\AMQPChannel::class),
-            $amqpQueue = $this->createMock(\AMQPQueue::class),
+            $amqpConnection = $this->createStub(\AMQPConnection::class),
+            $amqpChannel = $this->createStub(\AMQPChannel::class),
+            $amqpQueue = $this->createStub(\AMQPQueue::class),
             $amqpExchange = $this->createMock(\AMQPExchange::class)
         );
 
@@ -843,31 +994,32 @@
         $connection->publish('body');
     }
 
-    private function createDelayOrRetryConnection(\AMQPExchange $delayExchange, string $deadLetterExchangeName, string $delayQueueName): Connection
+    private function createDelayOrRetryConnection(\AMQPExchange $delayExchange, string $deadLetterExchangeName, string $delayQueueName, bool|string $dailyDelayQueues = false): Connection
     {
-        $amqpConnection = $this->createMock(\AMQPConnection::class);
-        $amqpChannel = $this->createMock(\AMQPChannel::class);
+        $amqpConnection = $this->createStub(\AMQPConnection::class);
+        $amqpChannel = $this->createStub(\AMQPChannel::class);
 
-        $factory = $this->createMock(AmqpFactory::class);
+        $factory = $this->createStub(AmqpFactory::class);
         $factory->method('createConnection')->willReturn($amqpConnection);
         $factory->method('createChannel')->willReturn($amqpChannel);
 
         $delayQueue = $this->createMock(\AMQPQueue::class);
-        $factory->method('createQueue')->willReturn($this->createMock(\AMQPQueue::class), $delayQueue);
-        $factory->method('createExchange')->willReturn($this->createMock(\AMQPExchange::class), $delayExchange);
-
+        $factory->method('createQueue')->willReturn($this->createStub(\AMQPQueue::class), $delayQueue);
+        $factory->method('createExchange')->willReturn($this->createStub(\AMQPExchange::class), $delayExchange);
+        $baseExpire = filter_var($dailyDelayQueues, \FILTER_VALIDATE_BOOL) ? 86400 * 1000 : 0;
         $delayQueue->expects($this->once())->method('setName')->with($delayQueueName);
         $delayQueue->expects($this->once())->method('setArguments')->with([
             'x-message-ttl' => 5000,
-            'x-expires' => 5000 + 10000,
+            'x-expires' => 5000 + 10000 + $baseExpire,
             'x-dead-letter-exchange' => $deadLetterExchangeName,
             'x-dead-letter-routing-key' => '',
         ]);
 
         $delayQueue->expects($this->once())->method('declareQueue');
         $delayQueue->expects($this->once())->method('bind')->with('delays', $delayQueueName);
+        $options = false === $dailyDelayQueues ? [] : ['delay' => ['daily_delay_queues' => $dailyDelayQueues]];
 
-        return Connection::fromDsn('amqp://localhost', [], $factory);
+        return Connection::fromDsn('amqp://localhost', $options, $factory);
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/AmqpSender.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/AmqpSender.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/AmqpSender.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/AmqpSender.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Component\Messenger\Exception\TransportException;
 use Symfony\Component\Messenger\Stamp\DelayStamp;
 use Symfony\Component\Messenger\Stamp\RedeliveryStamp;
+use Symfony\Component\Messenger\Stamp\SentToFailureTransportStamp;
 use Symfony\Component\Messenger\Transport\Sender\SenderInterface;
 use Symfony\Component\Messenger\Transport\Serialization\PhpSerializer;
 use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface;
@@ -59,7 +60,7 @@
             $amqpStamp = AmqpStamp::createFromAmqpEnvelope(
                 $amqpReceivedStamp->getAmqpEnvelope(),
                 $amqpStamp,
-                $envelope->last(RedeliveryStamp::class) ? $amqpReceivedStamp->getQueueName() : null
+                $envelope->last(RedeliveryStamp::class) && !$envelope->last(SentToFailureTransportStamp::class) ? $amqpReceivedStamp->getQueueName() : null
             );
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,6 +31,7 @@
         'x-max-length-bytes',
         'x-max-priority',
         'x-message-ttl',
+        'x-delivery-limit',
     ];
 
     /**
@@ -96,11 +97,17 @@
 
     private \AMQPExchange $amqpDelayExchange;
     private int $lastActivityTime = 0;
+    private int $inFlightMessages = 0;
 
     public function __construct(array $connectionOptions, array $exchangeOptions, array $queuesOptions, ?AmqpFactory $amqpFactory = null)
     {
         if (!\extension_loaded('amqp')) {
-            throw new LogicException(sprintf('You cannot use the "%s" as the "amqp" extension is not installed.', __CLASS__));
+            throw new LogicException(\sprintf('You cannot use the "%s" as the "amqp" extension is not installed.', __CLASS__));
+        }
+
+        if (isset($connectionOptions['user'])) {
+            $connectionOptions['login'] ??= $connectionOptions['user'];
+            unset($connectionOptions['user']);
         }
 
         $this->connectionOptions = array_replace_recursive([
@@ -143,6 +150,10 @@
      *   * delay:
      *     * queue_name_pattern: Pattern to use to create the queues (Default: "delay_%exchange_name%_%routing_key%_%delay%")
      *     * exchange_name: Name of the exchange to be used for the delayed/retried messages (Default: "delays")
+     *     * daily_delay_queues: When true, the current date is appended to the delay queue names
+     *       (e.g. "delay_messages__5000_delay_2025-04-28") and their "x-expires" argument is increased by 24 hours
+     *       (24 * 60 * 60 * 1000 ms), so RabbitMQ deletes them automatically once the day is over. This is useful for
+     *       quorum queues, which do not allow redeclaring a queue to renew its lease. (Default: false)
      *   * auto_setup: Enable or not the auto-setup of queues and exchanges (Default: true)
      *
      *   * Connection tuning options (see http://www.rabbitmq.com/amqp-0-9-1-reference.html#connection.tune for details):
@@ -208,7 +219,11 @@
             $amqpOptions['auto_setup'] = filter_var($amqpOptions['auto_setup'], \FILTER_VALIDATE_BOOL);
         }
 
-        $queuesOptions = array_map(function ($queueOptions) {
+        if (isset($amqpOptions['delay']['daily_delay_queues'])) {
+            $amqpOptions['delay']['daily_delay_queues'] = filter_var($amqpOptions['delay']['daily_delay_queues'], \FILTER_VALIDATE_BOOL);
+        }
+
+        $queuesOptions = array_map(static function ($queueOptions) {
             if (!\is_array($queueOptions)) {
                 $queueOptions = [];
             }
@@ -233,7 +248,7 @@
     private static function validateOptions(array $options): void
     {
         if (0 < \count($invalidOptions = array_diff(array_keys($options), self::AVAILABLE_OPTIONS))) {
-            throw new LogicException(sprintf('Invalid option(s) "%s" passed to the AMQP Messenger transport.', implode('", "', $invalidOptions)));
+            throw new LogicException(\sprintf('Invalid option(s) "%s" passed to the AMQP Messenger transport.', implode('", "', $invalidOptions)));
         }
 
         if (\is_array($options['queues'] ?? false)) {
@@ -243,14 +258,14 @@
                 }
 
                 if (0 < \count($invalidQueueOptions = array_diff(array_keys($queue), self::AVAILABLE_QUEUE_OPTIONS))) {
-                    throw new LogicException(sprintf('Invalid queue option(s) "%s" passed to the AMQP Messenger transport.', implode('", "', $invalidQueueOptions)));
+                    throw new LogicException(\sprintf('Invalid queue option(s) "%s" passed to the AMQP Messenger transport.', implode('", "', $invalidQueueOptions)));
                 }
             }
         }
 
         if (\is_array($options['exchange'] ?? false)
             && 0 < \count($invalidExchangeOptions = array_diff(array_keys($options['exchange']), self::AVAILABLE_EXCHANGE_OPTIONS))) {
-            throw new LogicException(sprintf('Invalid exchange option(s) "%s" passed to the AMQP Messenger transport.', implode('", "', $invalidExchangeOptions)));
+            throw new LogicException(\sprintf('Invalid exchange option(s) "%s" passed to the AMQP Messenger transport.', implode('", "', $invalidExchangeOptions)));
         }
     }
 
@@ -262,7 +277,7 @@
             }
 
             if (!is_numeric($arguments[$key])) {
-                throw new InvalidArgumentException(sprintf('Integer expected for queue argument "%s", "%s" given.', $key, get_debug_type($arguments[$key])));
+                throw new InvalidArgumentException(\sprintf('Integer expected for queue argument "%s", "%s" given.', $key, get_debug_type($arguments[$key])));
             }
 
             $arguments[$key] = (int) $arguments[$key];
@@ -288,7 +303,7 @@
         }
 
         $this->withConnectionExceptionRetry(function () use ($body, $headers, $delayInMs, $amqpStamp) {
-            if (0 !== $delayInMs) {
+            if (0 < $delayInMs) {
                 $this->publishWithDelay($body, $headers, $delayInMs, $amqpStamp);
 
                 return;
@@ -389,11 +404,14 @@
         $queue = $this->amqpFactory->createQueue($this->channel());
         $queue->setName($this->getRoutingKeyForDelay($delay, $routingKey, $isRetryAttempt));
         $queue->setFlags(\AMQP_DURABLE);
+        $queueExpirationBase = ($this->connectionOptions['delay']['daily_delay_queues'] ?? false) ? 24 * 60 * 60 * 1000 : 0;
         $queue->setArguments([
             'x-message-ttl' => $delay,
             // delete the delay queue 10 seconds after the message expires
-            // publishing another message redeclares the queue which renews the lease
-            'x-expires' => $delay + 10000,
+            // publishing another message redeclares the queue which renews the lease;
+            // quorum queues cannot be redeclared, so daily_delay_queues=true adds 24 hours (24 * 60 * 60 * 1000 ms)
+            // to the lease and uses a per-day queue name instead, letting RabbitMQ clean up old queues by itself
+            'x-expires' => $queueExpirationBase + $delay + 10000,
             // message should be broadcast to all consumers during delay, but to only one queue during retry
             // empty name is default direct exchange
             'x-dead-letter-exchange' => $isRetryAttempt ? '' : $this->exchangeOptions['name'],
@@ -408,12 +426,13 @@
     private function getRoutingKeyForDelay(int $delay, ?string $finalRoutingKey, bool $isRetryAttempt): string
     {
         $action = $isRetryAttempt ? '_retry' : '_delay';
+        $date = ($this->connectionOptions['delay']['daily_delay_queues'] ?? false) ? '_'.date('Y-m-d') : '';
 
         return str_replace(
             ['%delay%', '%exchange_name%', '%routing_key%'],
             [$delay, $this->exchangeOptions['name'], $finalRoutingKey ?? ''],
             $this->connectionOptions['delay']['queue_name_pattern']
-        ).$action;
+        ).$action.$date;
     }
 
     /**
@@ -430,20 +449,35 @@
         }
 
         if (false !== $message = $this->queue($queueName)->get()) {
+            ++$this->inFlightMessages;
+            $this->lastActivityTime = time();
+
             return $message;
         }
 
+        $this->lastActivityTime = time();
+
         return null;
     }
 
     public function ack(\AMQPEnvelope $message, string $queueName): bool
     {
-        return $this->queue($queueName)->ack($message->getDeliveryTag()) ?? true;
+        try {
+            return $this->queue($queueName)->ack($message->getDeliveryTag()) ?? true;
+        } finally {
+            $this->lastActivityTime = time();
+            $this->inFlightMessages = max(0, $this->inFlightMessages - 1);
+        }
     }
 
     public function nack(\AMQPEnvelope $message, string $queueName, int $flags = \AMQP_NOPARAM): bool
     {
-        return $this->queue($queueName)->nack($message->getDeliveryTag(), $flags) ?? true;
+        try {
+            return $this->queue($queueName)->nack($message->getDeliveryTag(), $flags) ?? true;
+        } finally {
+            $this->lastActivityTime = time();
+            $this->inFlightMessages = max(0, $this->inFlightMessages - 1);
+        }
     }
 
     public function setup(): void
@@ -501,7 +535,7 @@
             }
 
             $this->lastActivityTime = time();
-        } elseif (0 < ($this->connectionOptions['heartbeat'] ?? 0) && time() > $this->lastActivityTime + 2 * $this->connectionOptions['heartbeat']) {
+        } elseif (0 < ($this->connectionOptions['heartbeat'] ?? 0) && time() > $this->lastActivityTime + 2 * $this->connectionOptions['heartbeat'] && 0 === $this->inFlightMessages) {
             $disconnectMethod = 'true' === ($this->connectionOptions['persistent'] ?? 'false') ? 'pdisconnect' : 'disconnect';
             $this->amqpChannel->getConnection()->{$disconnectMethod}();
         }
@@ -555,6 +589,7 @@
     {
         unset($this->amqpChannel, $this->amqpExchange, $this->amqpDelayExchange);
         $this->amqpQueues = [];
+        $this->inFlightMessages = 0;
     }
 
     private function getDefaultPublishRoutingKey(): ?string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdSenderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdSenderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdSenderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdSenderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
             ->willReturn('1')
         ;
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $sender = new BeanstalkdSender($connection, $serializer);
@@ -53,7 +53,7 @@
         $connection = $this->createMock(Connection::class);
         $connection->expects($this->once())->method('send')->with($encoded['body'], $encoded['headers'], 500);
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $sender = new BeanstalkdSender($connection, $serializer);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function testCreateTransport()
     {
         $factory = new BeanstalkdTransportFactory();
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
 
         $this->assertEquals(
             new BeanstalkdTransport(Connection::fromDsn('beanstalkd://127.0.0.1'), $serializer),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,8 +31,8 @@
     public function testReceivesMessages()
     {
         $transport = $this->getTransport(
-            $serializer = $this->createMock(SerializerInterface::class),
-            $connection = $this->createMock(Connection::class)
+            $serializer = $this->createStub(SerializerInterface::class),
+            $connection = $this->createStub(Connection::class)
         );
 
         $decodedMessage = new DummyMessage('Decoded.');
@@ -52,8 +52,8 @@
 
     private function getTransport(?SerializerInterface $serializer = null, ?Connection $connection = null): BeanstalkdTransport
     {
-        $serializer ??= $this->createMock(SerializerInterface::class);
-        $connection ??= $this->createMock(Connection::class);
+        $serializer ??= $this->createStub(SerializerInterface::class);
+        $connection ??= $this->createStub(Connection::class);
 
         return new BeanstalkdTransport($connection, $serializer);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/ConnectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/ConnectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/ConnectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/ConnectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -174,7 +174,7 @@
 
         $client = $this->createMock(PheanstalkInterface::class);
         $client->expects($this->once())->method('useTube')->with($tube)->willReturn($client);
-        $client->expects($this->once())->method('delete')->with($this->callback(fn (JobId $jobId): bool => $jobId->getId() === $id));
+        $client->expects($this->once())->method('delete')->with($this->callback(static fn (JobId $jobId): bool => $jobId->getId() === $id));
 
         $connection = new Connection(['tube_name' => $tube], $client);
 
@@ -191,7 +191,7 @@
 
         $client = $this->createMock(PheanstalkInterface::class);
         $client->expects($this->once())->method('useTube')->with($tube)->willReturn($client);
-        $client->expects($this->once())->method('delete')->with($this->callback(fn (JobId $jobId): bool => $jobId->getId() === $id))->willThrowException($exception);
+        $client->expects($this->once())->method('delete')->with($this->callback(static fn (JobId $jobId): bool => $jobId->getId() === $id))->willThrowException($exception);
 
         $connection = new Connection(['tube_name' => $tube], $client);
 
@@ -207,7 +207,7 @@
 
         $client = $this->createMock(PheanstalkInterface::class);
         $client->expects($this->once())->method('useTube')->with($tube)->willReturn($client);
-        $client->expects($this->once())->method('delete')->with($this->callback(fn (JobId $jobId): bool => $jobId->getId() === $id));
+        $client->expects($this->once())->method('delete')->with($this->callback(static fn (JobId $jobId): bool => $jobId->getId() === $id));
 
         $connection = new Connection(['tube_name' => $tube], $client);
 
@@ -224,7 +224,7 @@
 
         $client = $this->createMock(PheanstalkInterface::class);
         $client->expects($this->once())->method('useTube')->with($tube)->willReturn($client);
-        $client->expects($this->once())->method('delete')->with($this->callback(fn (JobId $jobId): bool => $jobId->getId() === $id))->willThrowException($exception);
+        $client->expects($this->once())->method('delete')->with($this->callback(static fn (JobId $jobId): bool => $jobId->getId() === $id))->willThrowException($exception);
 
         $connection = new Connection(['tube_name' => $tube], $client);
 
@@ -277,7 +277,7 @@
         $client = $this->createMock(PheanstalkInterface::class);
         $client->expects($this->once())->method('useTube')->with($tube)->willReturn($client);
         $client->expects($this->once())->method('put')->with(
-            $this->callback(function (string $data) use ($body, $headers): bool {
+            $this->callback(static function (string $data) use ($body, $headers): bool {
                 $expectedMessage = json_encode([
                     'body' => $body,
                     'headers' => $headers,
@@ -311,7 +311,7 @@
         $client = $this->createMock(PheanstalkInterface::class);
         $client->expects($this->once())->method('useTube')->with($tube)->willReturn($client);
         $client->expects($this->once())->method('put')->with(
-            $this->callback(function (string $data) use ($body, $headers): bool {
+            $this->callback(static function (string $data) use ($body, $headers): bool {
                 $expectedMessage = json_encode([
                     'body' => $body,
                     'headers' => $headers,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Transport/Connection.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Transport/Connection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Transport/Connection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Beanstalkd/Transport/Connection.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,13 +78,13 @@
         // check for extra keys in options
         $optionsExtraKeys = array_diff(array_keys($options), array_keys(self::DEFAULT_OPTIONS));
         if (0 < \count($optionsExtraKeys)) {
-            throw new InvalidArgumentException(sprintf('Unknown option found : [%s]. Allowed options are [%s].', implode(', ', $optionsExtraKeys), implode(', ', array_keys(self::DEFAULT_OPTIONS))));
+            throw new InvalidArgumentException(\sprintf('Unknown option found : [%s]. Allowed options are [%s].', implode(', ', $optionsExtraKeys), implode(', ', array_keys(self::DEFAULT_OPTIONS))));
         }
 
         // check for extra keys in options
         $queryExtraKeys = array_diff(array_keys($query), array_keys(self::DEFAULT_OPTIONS));
         if (0 < \count($queryExtraKeys)) {
-            throw new InvalidArgumentException(sprintf('Unknown option found in DSN: [%s]. Allowed options are [%s].', implode(', ', $queryExtraKeys), implode(', ', array_keys(self::DEFAULT_OPTIONS))));
+            throw new InvalidArgumentException(\sprintf('Unknown option found in DSN: [%s]. Allowed options are [%s].', implode(', ', $queryExtraKeys), implode(', ', array_keys(self::DEFAULT_OPTIONS))));
         }
 
         return new self(
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/ConnectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/ConnectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/ConnectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/ConnectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,8 +37,8 @@
 {
     public function testGetAMessageWillChangeItsStatus()
     {
-        $queryBuilder = $this->getQueryBuilderMock();
-        $driverConnection = $this->getDBALConnectionMock();
+        $queryBuilder = $this->getQueryBuilderStub();
+        $driverConnection = $this->getDBALConnection();
         $stmt = $this->getResultMock([
             'id' => 1,
             'body' => '{"message":"Hi"}',
@@ -73,8 +73,8 @@
 
     public function testGetWithNoPendingMessageWillReturnNull()
     {
-        $queryBuilder = $this->getQueryBuilderMock();
-        $driverConnection = $this->getDBALConnectionMock();
+        $queryBuilder = $this->getQueryBuilderStub();
+        $driverConnection = $this->getDBALConnection(true);
         $stmt = $this->getResultMock(false);
 
         $queryBuilder
@@ -106,8 +106,8 @@
             $this->markTestSkipped('This test is for when forUpdate method exists.');
         }
 
-        $queryBuilder = $this->getQueryBuilderMock();
-        $driverConnection = $this->getDBALConnectionMock();
+        $queryBuilder = $this->getQueryBuilderStub();
+        $driverConnection = $this->getDBALConnection(true);
         $stmt = $this->getResultMock(false);
 
         $queryBuilder
@@ -130,10 +130,12 @@
             ->method('update');
         $driverConnection
             ->method('executeQuery')
-            ->with($this->callback(function ($sql) {
-                return str_contains($sql, 'SKIP LOCKED');
-            }))
-            ->willReturn($stmt);
+            ->willReturnCallback(function (string $sql) use ($stmt) {
+                $this->assertStringContainsString('SKIP LOCKED', $sql);
+
+                return $stmt;
+            })
+        ;
 
         $connection = new Connection(['skip_locked' => true], $driverConnection);
         $doctrineEnvelope = $connection->get();
@@ -146,8 +148,8 @@
             $this->markTestSkipped('This test is for when forUpdate method does not exist.');
         }
 
-        $queryBuilder = $this->getQueryBuilderMock();
-        $driverConnection = $this->getDBALConnectionMock();
+        $queryBuilder = $this->getQueryBuilderStub();
+        $driverConnection = $this->getDBALConnection();
         $stmt = $this->getResultMock(false);
 
         $queryBuilder
@@ -166,9 +168,7 @@
             ->method('update');
         $driverConnection
             ->method('executeQuery')
-            ->with($this->callback(function ($sql) {
-                return str_contains($sql, 'SKIP LOCKED');
-            }))
+            ->with($this->callback(static fn ($sql) => str_contains($sql, 'SKIP LOCKED')))
             ->willReturn($stmt);
 
         $connection = new Connection(['skip_locked' => true], $driverConnection);
@@ -179,7 +179,7 @@
     public function testItThrowsATransportExceptionIfItCannotAcknowledgeMessage()
     {
         $this->expectException(TransportException::class);
-        $driverConnection = $this->getDBALConnectionMock();
+        $driverConnection = $this->getDBALConnection();
         $driverConnection->method('delete')->willThrowException($this->createStub(DBALException::class));
 
         $connection = new Connection([], $driverConnection);
@@ -189,7 +189,7 @@
     public function testItThrowsATransportExceptionIfItCannotRejectMessage()
     {
         $this->expectException(TransportException::class);
-        $driverConnection = $this->getDBALConnectionMock();
+        $driverConnection = $this->getDBALConnection();
         $driverConnection->method('delete')->willThrowException($this->createStub(DBALException::class));
 
         $connection = new Connection([], $driverConnection);
@@ -199,7 +199,7 @@
     public function testSend()
     {
         $queryBuilder = $this->getQueryBuilderMock();
-        $driverConnection = $this->getDBALConnectionMock();
+        $driverConnection = $this->getDBALConnection(true);
 
         $driverConnection->expects($this->once())
             ->method('createQueryBuilder')
@@ -248,7 +248,7 @@
     public function testSendLastInsertIdReturnsInteger()
     {
         $queryBuilder = $this->getQueryBuilderMock();
-        $driverConnection = $this->getDBALConnectionMock();
+        $driverConnection = $this->getDBALConnection(true);
 
         $driverConnection->expects($this->once())
             ->method('createQueryBuilder')
@@ -294,21 +294,21 @@
         self::assertSame('1', $id);
     }
 
-    private function getDBALConnectionMock()
+    private function getDBALConnection(bool $mock = false)
     {
-        $driverConnection = $this->createMock(DBALConnection::class);
-        $platform = $this->createMock(AbstractPlatform::class);
+        $driverConnection = $mock ? $this->createMock(DBALConnection::class) : $this->createStub(DBALConnection::class);
+        $platform = $this->createStub(AbstractPlatform::class);
 
         if (!method_exists(QueryBuilder::class, 'forUpdate')) {
             $platform->method('getWriteLockSQL')->willReturn('FOR UPDATE SKIP LOCKED');
         }
 
-        $configuration = $this->createMock(\Doctrine\DBAL\Configuration::class);
+        $configuration = $this->createStub(\Doctrine\DBAL\Configuration::class);
         $driverConnection->method('getDatabasePlatform')->willReturn($platform);
         $driverConnection->method('getConfiguration')->willReturn($configuration);
 
-        $schemaManager = $this->createMock(AbstractSchemaManager::class);
-        $schemaConfig = $this->createMock(SchemaConfig::class);
+        $schemaManager = $this->createStub(AbstractSchemaManager::class);
+        $schemaConfig = $this->createStub(SchemaConfig::class);
         $schemaConfig->method('getMaxIdentifierLength')->willReturn(63);
         $schemaConfig->method('getDefaultTableOptions')->willReturn([]);
         $schemaManager->method('createSchemaConfig')->willReturn($schemaConfig);
@@ -339,6 +339,24 @@
         return $queryBuilder;
     }
 
+    private function getQueryBuilderStub()
+    {
+        $queryBuilder = $this->createStub(QueryBuilder::class);
+
+        $queryBuilder->method('select')->willReturn($queryBuilder);
+        $queryBuilder->method('update')->willReturn($queryBuilder);
+        $queryBuilder->method('from')->willReturn($queryBuilder);
+        $queryBuilder->method('set')->willReturn($queryBuilder);
+        $queryBuilder->method('where')->willReturn($queryBuilder);
+        $queryBuilder->method('andWhere')->willReturn($queryBuilder);
+        $queryBuilder->method('orderBy')->willReturn($queryBuilder);
+        $queryBuilder->method('setMaxResults')->willReturn($queryBuilder);
+        $queryBuilder->method('setParameter')->willReturn($queryBuilder);
+        $queryBuilder->method('setParameters')->willReturn($queryBuilder);
+
+        return $queryBuilder;
+    }
+
     private function getResultMock($expectedResult)
     {
         $stmt = $this->createMock(class_exists(Result::class) ? Result::class : ResultStatement::class);
@@ -452,8 +470,8 @@
 
     public function testFind()
     {
-        $queryBuilder = $this->getQueryBuilderMock();
-        $driverConnection = $this->getDBALConnectionMock();
+        $queryBuilder = $this->getQueryBuilderStub();
+        $driverConnection = $this->getDBALConnection();
         $id = 1;
         $stmt = $this->getResultMock([
             'id' => $id,
@@ -487,8 +505,8 @@
 
     public function testFindAll()
     {
-        $queryBuilder = $this->getQueryBuilderMock();
-        $driverConnection = $this->getDBALConnectionMock();
+        $queryBuilder = $this->getQueryBuilderStub();
+        $driverConnection = $this->getDBALConnection();
         $message1 = [
             'id' => 1,
             'body' => '{"message":"Hi"}',
@@ -543,13 +561,13 @@
     {
         $driverConnection = $this->createMock(DBALConnection::class);
         $driverConnection->method('getDatabasePlatform')->willReturn($platform);
-        $driverConnection->method('createQueryBuilder')->willReturnCallback(fn () => new QueryBuilder($driverConnection));
+        $driverConnection->method('createQueryBuilder')->willReturnCallback(static fn () => new QueryBuilder($driverConnection));
 
         if (class_exists(Result::class)) {
-            $result = $this->createMock(Result::class);
+            $result = $this->createStub(Result::class);
             $result->method('fetchAssociative')->willReturn(false);
         } else {
-            $result = $this->createMock(ResultStatement::class);
+            $result = $this->createStub(ResultStatement::class);
             $result->method('fetch')->willReturn(false);
         }
 
@@ -557,9 +575,7 @@
         $driverConnection
             ->expects($this->once())
             ->method('executeQuery')
-            ->with($this->callback(function ($sql) use ($expectedSql) {
-                return trim($expectedSql) === trim($sql);
-            }))
+            ->with($this->callback(static fn ($sql) => trim($expectedSql) === trim($sql)))
             ->willReturn($result)
         ;
         $driverConnection->expects($this->once())->method('commit');
@@ -584,7 +600,7 @@
 
         yield 'SQL Server' => [
             class_exists(SQLServerPlatform::class) && !class_exists(SQLServer2012Platform::class) ? new SQLServerPlatform() : new SQLServer2012Platform(),
-            sprintf('SELECT m.* FROM messenger_messages m WITH (UPDLOCK, ROWLOCK%s) WHERE (m.queue_name = ?) AND (m.delivered_at is null OR m.delivered_at < ?) AND (m.available_at <= ?) ORDER BY available_at ASC OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY  ', method_exists(QueryBuilder::class, 'forUpdate') ? ', READPAST' : ''),
+            \sprintf('SELECT m.* FROM messenger_messages m WITH (UPDLOCK, ROWLOCK%s) WHERE (m.queue_name = ?) AND (m.delivered_at is null OR m.delivered_at < ?) AND (m.available_at <= ?) ORDER BY available_at ASC OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY  ', method_exists(QueryBuilder::class, 'forUpdate') ? ', READPAST' : ''),
         ];
 
         if (!class_exists(MySQL57Platform::class)) {
@@ -597,40 +613,56 @@
             // DBAL < 4
             yield 'Oracle' => [
                 new OraclePlatform(),
-                sprintf('SELECT w.id AS "id", w.body AS "body", w.headers AS "headers", w.queue_name AS "queue_name", w.created_at AS "created_at", w.available_at AS "available_at", w.delivered_at AS "delivered_at" FROM messenger_messages w WHERE w.id IN (SELECT a.id FROM (SELECT m.id FROM messenger_messages m WHERE (m.queue_name = ?) AND (m.delivered_at is null OR m.delivered_at < ?) AND (m.available_at <= ?) ORDER BY available_at ASC) a WHERE ROWNUM <= 1) FOR UPDATE%s', method_exists(QueryBuilder::class, 'forUpdate') ? ' SKIP LOCKED' : ''),
+                \sprintf('SELECT w.id AS "id", w.body AS "body", w.headers AS "headers", w.queue_name AS "queue_name", w.created_at AS "created_at", w.available_at AS "available_at", w.delivered_at AS "delivered_at" FROM messenger_messages w WHERE w.id IN (SELECT a.id FROM (SELECT m.id FROM messenger_messages m WHERE (m.queue_name = ?) AND (m.delivered_at is null OR m.delivered_at < ?) AND (m.available_at <= ?) ORDER BY available_at ASC) a WHERE ROWNUM <= 1) FOR UPDATE%s', method_exists(QueryBuilder::class, 'forUpdate') ? ' SKIP LOCKED' : ''),
             ];
         }
     }
 
     public function testConfigureSchema()
     {
-        $driverConnection = $this->getDBALConnectionMock();
+        $driverConnection = $this->getDBALConnection();
         $schema = new Schema();
 
         $connection = new Connection(['table_name' => 'queue_table'], $driverConnection);
-        $connection->configureSchema($schema, $driverConnection, fn () => true);
+        $connection->configureSchema($schema, $driverConnection, static fn () => true);
         $this->assertTrue($schema->hasTable('queue_table'));
+
+        // Ensure the covering index for the SELECT query exists
+        $table = $schema->getTable('queue_table');
+        $hasCoveringIndex = false;
+        foreach ($table->getIndexes() as $index) {
+            // Doctrine DBAL 4+: use getIndexedColumns(); fallback to getColumns() for older versions
+            $columns = method_exists($index, 'getIndexedColumns')
+                ? array_map(static fn ($ic) => $ic->getColumnName()->toString(), $index->getIndexedColumns())
+                : $index->getColumns();
+
+            if ($columns === ['queue_name', 'available_at', 'delivered_at', 'id']) {
+                $hasCoveringIndex = true;
+                break;
+            }
+        }
+        $this->assertTrue($hasCoveringIndex, 'Expected covering index on [queue_name, available_at, delivered_at, id] not found');
     }
 
     public function testConfigureSchemaDifferentDbalConnection()
     {
-        $driverConnection = $this->getDBALConnectionMock();
-        $driverConnection2 = $this->getDBALConnectionMock();
+        $driverConnection = $this->getDBALConnection();
+        $driverConnection2 = $this->getDBALConnection();
         $schema = new Schema();
 
         $connection = new Connection([], $driverConnection);
-        $connection->configureSchema($schema, $driverConnection2, fn () => false);
+        $connection->configureSchema($schema, $driverConnection2, static fn () => false);
         $this->assertFalse($schema->hasTable('messenger_messages'));
     }
 
     public function testConfigureSchemaTableExists()
     {
-        $driverConnection = $this->getDBALConnectionMock();
+        $driverConnection = $this->getDBALConnection();
         $schema = new Schema();
         $schema->createTable('messenger_messages');
 
         $connection = new Connection([], $driverConnection);
-        $connection->configureSchema($schema, $driverConnection, fn () => true);
+        $connection->configureSchema($schema, $driverConnection, static fn () => true);
         $table = $schema->getTable('messenger_messages');
         $this->assertEmpty($table->getColumns(), 'The table was not overwritten');
     }
@@ -642,15 +674,13 @@
     {
         $driverConnection = $this->createMock(DBALConnection::class);
         $driverConnection->method('getDatabasePlatform')->willReturn($platform);
-        $driverConnection->method('createQueryBuilder')->willReturnCallback(function () use ($driverConnection) {
-            return new QueryBuilder($driverConnection);
-        });
+        $driverConnection->method('createQueryBuilder')->willReturnCallback(static fn () => new QueryBuilder($driverConnection));
 
         if (class_exists(Result::class)) {
-            $result = $this->createMock(Result::class);
+            $result = $this->createStub(Result::class);
             $result->method('fetchAllAssociative')->willReturn([]);
         } else {
-            $result = $this->createMock(ResultStatement::class);
+            $result = $this->createStub(ResultStatement::class);
             $result->method('fetchAll')->willReturn([]);
         }
 
@@ -701,18 +731,18 @@
 
     public function testConfigureSchemaOracleSequenceNameSuffixed()
     {
-        $driverConnection = $this->createMock(DBALConnection::class);
+        $driverConnection = $this->createStub(DBALConnection::class);
         $driverConnection->method('getDatabasePlatform')->willReturn(new OraclePlatform());
         $schema = new Schema();
 
         $connection = new Connection(['table_name' => 'messenger_messages'], $driverConnection);
-        $connection->configureSchema($schema, $driverConnection, fn () => true);
+        $connection->configureSchema($schema, $driverConnection, static fn () => true);
 
         $expectedSuffix = '_seq';
         $sequences = $schema->getSequences();
         $this->assertCount(1, $sequences);
         $sequence = array_pop($sequences);
-        $sequenceNameSuffix = substr($sequence->getName(), -strlen($expectedSuffix));
+        $sequenceNameSuffix = substr($sequence->getName(), -\strlen($expectedSuffix));
         $this->assertSame($expectedSuffix, $sequenceNameSuffix);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineReceiverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineReceiverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineReceiverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineReceiverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
         $serializer = $this->createSerializer();
 
         $doctrineEnvelope = $this->createDoctrineEnvelope();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('get')->willReturn($doctrineEnvelope);
 
         $receiver = new DoctrineReceiver($connection, $serializer);
@@ -63,7 +63,7 @@
     public function testItRejectTheMessageIfThereIsAMessageDecodingFailedException()
     {
         $this->expectException(MessageDecodingFailedException::class);
-        $serializer = $this->createMock(PhpSerializer::class);
+        $serializer = $this->createStub(PhpSerializer::class);
         $serializer->method('decode')->willThrowException(new MessageDecodingFailedException());
 
         $doctrineEnvelop = $this->createDoctrineEnvelope();
@@ -78,7 +78,7 @@
     public function testOccursRetryableExceptionFromConnection()
     {
         $serializer = $this->createSerializer();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $driverException = class_exists(Exception::class) ? Exception::new(new \PDOException('Deadlock', 40001)) : new PDOException(new \PDOException('Deadlock', 40001));
         if (!class_exists(Version::class)) {
             // This is doctrine/dbal 3.x
@@ -107,7 +107,7 @@
         $serializer = $this->createSerializer();
 
         $doctrineEnvelope = $this->createRetriedDoctrineEnvelope();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('get')->willReturn($doctrineEnvelope);
 
         $receiver = new DoctrineReceiver($connection, $serializer);
@@ -125,7 +125,7 @@
 
         $doctrineEnvelope1 = $this->createDoctrineEnvelope();
         $doctrineEnvelope2 = $this->createDoctrineEnvelope();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('findAll')->with(50)->willReturn([$doctrineEnvelope1, $doctrineEnvelope2]);
 
         $receiver = new DoctrineReceiver($connection, $serializer);
@@ -140,7 +140,7 @@
 
         $doctrineEnvelope1 = $this->createRetriedDoctrineEnvelope();
         $doctrineEnvelope2 = $this->createRetriedDoctrineEnvelope();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('findAll')->willReturn([$doctrineEnvelope1, $doctrineEnvelope2]);
 
         $receiver = new DoctrineReceiver($connection, $serializer);
@@ -157,7 +157,7 @@
         $serializer = $this->createSerializer();
 
         $doctrineEnvelope = $this->createDoctrineEnvelope();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('find')->with(10)->willReturn($doctrineEnvelope);
 
         $receiver = new DoctrineReceiver($connection, $serializer);
@@ -170,7 +170,7 @@
         $serializer = $this->createSerializer();
 
         $doctrineEnvelope = $this->createRetriedDoctrineEnvelope();
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('find')->with(3)->willReturn($doctrineEnvelope);
 
         $receiver = new DoctrineReceiver($connection, $serializer);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineSenderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineSenderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineSenderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineSenderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         $connection = $this->createMock(Connection::class);
         $connection->expects($this->once())->method('send')->with($encoded['body'], $encoded['headers'])->willReturn('15');
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $sender = new DoctrineSender($connection, $serializer);
@@ -50,7 +50,7 @@
         $connection = $this->createMock(Connection::class);
         $connection->expects($this->once())->method('send')->with($encoded['body'], $encoded['headers'], 500);
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $sender = new DoctrineSender($connection, $serializer);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
     public function testSupports()
     {
         $factory = new DoctrineTransportFactory(
-            $this->createMock(ConnectionRegistry::class)
+            $this->createStub(ConnectionRegistry::class)
         );
 
         $this->assertTrue($factory->supports('doctrine://default', []));
@@ -41,10 +41,10 @@
 
     public function testCreateTransport()
     {
-        $driverConnection = $this->createMock(\Doctrine\DBAL\Connection::class);
-        $schemaManager = $this->createMock(AbstractSchemaManager::class);
-        $schemaConfig = $this->createMock(SchemaConfig::class);
-        $platform = $this->createMock(AbstractPlatform::class);
+        $driverConnection = $this->createStub(\Doctrine\DBAL\Connection::class);
+        $schemaManager = $this->createStub(AbstractSchemaManager::class);
+        $schemaConfig = $this->createStub(SchemaConfig::class);
+        $platform = $this->createStub(AbstractPlatform::class);
         $schemaManager->method('createSchemaConfig')->willReturn($schemaConfig);
         $driverConnection->method(
             method_exists(\Doctrine\DBAL\Connection::class, 'createSchemaManager')
@@ -59,7 +59,7 @@
             ->willReturn($driverConnection);
 
         $factory = new DoctrineTransportFactory($registry);
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
 
         $this->assertEquals(
             new DoctrineTransport(new Connection(PostgreSqlConnection::buildConfiguration('doctrine://default'), $driverConnection), $serializer),
@@ -69,10 +69,10 @@
 
     public function testCreateTransportNotifyWithPostgreSQLPlatform()
     {
-        $driverConnection = $this->createMock(\Doctrine\DBAL\Connection::class);
-        $schemaManager = $this->createMock(AbstractSchemaManager::class);
-        $schemaConfig = $this->createMock(SchemaConfig::class);
-        $platform = $this->createMock(PostgreSQLPlatform::class);
+        $driverConnection = $this->createStub(\Doctrine\DBAL\Connection::class);
+        $schemaManager = $this->createStub(AbstractSchemaManager::class);
+        $schemaConfig = $this->createStub(SchemaConfig::class);
+        $platform = $this->createStub(PostgreSQLPlatform::class);
         $schemaManager->method('createSchemaConfig')->willReturn($schemaConfig);
         $driverConnection->method(
             method_exists(\Doctrine\DBAL\Connection::class, 'createSchemaManager')
@@ -88,7 +88,7 @@
             ->willReturn($driverConnection);
 
         $factory = new DoctrineTransportFactory($registry);
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
 
         $this->assertEquals(
             new DoctrineTransport(new PostgreSqlConnection(PostgreSqlConnection::buildConfiguration('doctrine://default'), $driverConnection), $serializer),
@@ -103,11 +103,13 @@
         $registry = $this->createMock(ConnectionRegistry::class);
         $registry->expects($this->once())
             ->method('getConnection')
-            ->willReturnCallback(function () {
+            ->willReturnCallback(static function () {
                 throw new \InvalidArgumentException();
             });
 
         $factory = new DoctrineTransportFactory($registry);
-        $factory->createTransport('doctrine://default', [], $this->createMock(SerializerInterface::class));
+        $factory->createTransport('doctrine://default', [], $this->createStub(SerializerInterface::class));
     }
 }
+
+// @php-cs-fixer-ignore fully_qualified_strict_types
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,8 +33,8 @@
     public function testReceivesMessages()
     {
         $transport = $this->getTransport(
-            $serializer = $this->createMock(SerializerInterface::class),
-            $connection = $this->createMock(Connection::class)
+            $serializer = $this->createStub(SerializerInterface::class),
+            $connection = $this->createStub(Connection::class)
         );
 
         $decodedMessage = new DummyMessage('Decoded.');
@@ -60,7 +60,7 @@
         );
 
         $schema = new Schema();
-        $dbalConnection = $this->createMock(DbalConnection::class);
+        $dbalConnection = $this->createStub(DbalConnection::class);
 
         $connection->expects($this->once())
             ->method('configureSchema')
@@ -71,8 +71,8 @@
 
     private function getTransport(?SerializerInterface $serializer = null, ?Connection $connection = null): DoctrineTransport
     {
-        $serializer ??= $this->createMock(SerializerInterface::class);
-        $connection ??= $this->createMock(Connection::class);
+        $serializer ??= $this->createStub(SerializerInterface::class);
+        $connection ??= $this->createStub(Connection::class);
 
         return new DoctrineTransport($connection, $serializer);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/PostgreSqlConnectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/PostgreSqlConnectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/PostgreSqlConnectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/PostgreSqlConnectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         $this->expectException(\BadMethodCallException::class);
         $this->expectExceptionMessage('Cannot serialize '.PostgreSqlConnection::class);
 
-        $driverConnection = $this->createMock(\Doctrine\DBAL\Connection::class);
+        $driverConnection = $this->createStub(\Doctrine\DBAL\Connection::class);
         $driverConnection->method('executeStatement')->willReturn(1);
 
         $connection = new PostgreSqlConnection([], $driverConnection);
@@ -42,11 +42,11 @@
         $this->expectException(\BadMethodCallException::class);
         $this->expectExceptionMessage('Cannot unserialize '.PostgreSqlConnection::class);
 
-        $driverConnection = $this->createMock(\Doctrine\DBAL\Connection::class);
+        $driverConnection = $this->createStub(\Doctrine\DBAL\Connection::class);
         $driverConnection->method('executeStatement')->willReturn(1);
 
         $connection = new PostgreSqlConnection([], $driverConnection);
-        $connection->__wakeup();
+        $connection->__unserialize([]);
     }
 
     public function testListenOnConnection()
@@ -55,16 +55,14 @@
         $driverConnection->method('executeStatement')->willReturn(1);
 
         $driverConnection
-            ->expects(self::any())
             ->method('getDatabasePlatform')
             ->willReturn(new PostgreSQLPlatform());
 
         $driverConnection
-            ->expects(self::any())
             ->method('createQueryBuilder')
             ->willReturn(new QueryBuilder($driverConnection));
 
-        $wrappedConnection = new class() {
+        $wrappedConnection = new class {
             private int $notifyCalls = 0;
 
             public function pgsqlGetNotify()
@@ -74,6 +72,13 @@
                 return false;
             }
 
+            public function getNotify()
+            {
+                ++$this->notifyCalls;
+
+                return false;
+            }
+
             public function countNotifyCalls()
             {
                 return $this->notifyCalls;
@@ -88,7 +93,6 @@
                 ->willReturn($wrappedConnection);
 
             $driverConnection
-                ->expects(self::any())
                 ->method('executeQuery')
                 ->willReturn(new ArrayStatement([]));
         } else {
@@ -102,7 +106,6 @@
             $driverResult->method('fetchAssociative')
                 ->willReturn(false);
             $driverConnection
-                ->expects(self::any())
                 ->method('executeQuery')
                 ->willReturn(new Result($driverResult, $driverConnection));
         }
@@ -112,43 +115,18 @@
         $connection->get();
         $connection->get();
 
-        $this->assertSame(2, $wrappedConnection->countNotifyCalls());
-    }
-
-    public function testGetExtraSetupSql()
-    {
-        $driverConnection = $this->createMock(\Doctrine\DBAL\Connection::class);
-        $driverConnection->method('executeStatement')->willReturn(1);
-        $connection = new PostgreSqlConnection(['table_name' => 'queue_table'], $driverConnection);
-
-        $table = new Table('queue_table');
-        $table->addOption('_symfony_messenger_table_name', 'queue_table');
-        $sql = implode("\n", $connection->getExtraSetupSqlForTable($table));
-
-        $this->assertStringContainsString('CREATE TRIGGER', $sql);
-
-        // We MUST NOT use transaction, that will mess with the PDO in PHP 8
-        $this->assertStringNotContainsString('BEGIN;', $sql);
-        $this->assertStringNotContainsString('COMMIT;', $sql);
-    }
+        $this->assertTrue($connection->isListening());
 
-    public function testTransformTableNameWithSchemaToValidProcedureName()
-    {
-        $driverConnection = $this->createMock(\Doctrine\DBAL\Connection::class);
-        $driverConnection->method('executeStatement')->willReturn(1);
-        $connection = new PostgreSqlConnection(['table_name' => 'schema.queue_table'], $driverConnection);
+        $this->assertSame(2, $wrappedConnection->countNotifyCalls());
 
-        $table = new Table('schema.queue_table');
-        $table->addOption('_symfony_messenger_table_name', 'schema.queue_table');
-        $sql = implode("\n", $connection->getExtraSetupSqlForTable($table));
+        $connection->__destruct();
 
-        $this->assertStringContainsString('CREATE OR REPLACE FUNCTION schema.notify_queue_table', $sql);
-        $this->assertStringContainsString('FOR EACH ROW EXECUTE PROCEDURE schema.notify_queue_table()', $sql);
+        $this->assertFalse($connection->isListening());
     }
 
     public function testGetExtraSetupSqlWrongTable()
     {
-        $driverConnection = $this->createMock(\Doctrine\DBAL\Connection::class);
+        $driverConnection = $this->createStub(\Doctrine\DBAL\Connection::class);
         $driverConnection->method('executeStatement')->willReturn(1);
         $connection = new PostgreSqlConnection(['table_name' => 'queue_table'], $driverConnection);
 
@@ -156,4 +134,12 @@
         // don't set the _symfony_messenger_table_name option
         $this->assertSame([], $connection->getExtraSetupSqlForTable($table));
     }
+
+    public function testIsListeningReturnsFalseWhenGetHasNotBeenCalled()
+    {
+        $driverConnection = $this->createStub(\Doctrine\DBAL\Connection::class);
+        $connection = new PostgreSqlConnection(['table_name' => 'queue_table'], $driverConnection);
+
+        $this->assertFalse($connection->isListening());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/Connection.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/Connection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/Connection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/Connection.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,12 +13,10 @@
 
 use Doctrine\DBAL\Abstraction\Result as AbstractionResult;
 use Doctrine\DBAL\Connection as DBALConnection;
-use Doctrine\DBAL\Driver\Exception as DriverException;
 use Doctrine\DBAL\Driver\ResultStatement;
 use Doctrine\DBAL\Exception as DBALException;
 use Doctrine\DBAL\Exception\TableNotFoundException;
 use Doctrine\DBAL\LockMode;
-use Doctrine\DBAL\Platforms\MySQLPlatform;
 use Doctrine\DBAL\Platforms\OraclePlatform;
 use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
 use Doctrine\DBAL\Query\ForUpdate\ConflictResolutionMode;
@@ -27,11 +25,13 @@
 use Doctrine\DBAL\Schema\AbstractAsset;
 use Doctrine\DBAL\Schema\AbstractSchemaManager;
 use Doctrine\DBAL\Schema\Comparator;
+use Doctrine\DBAL\Schema\ComparatorConfig;
 use Doctrine\DBAL\Schema\Schema;
 use Doctrine\DBAL\Schema\SchemaDiff;
 use Doctrine\DBAL\Schema\Synchronizer\SchemaSynchronizer;
 use Doctrine\DBAL\Schema\Table;
 use Doctrine\DBAL\Types\Types;
+use Satag\DoctrineFirebirdDriver\Platforms\FirebirdPlatform;
 use Symfony\Component\Messenger\Exception\InvalidArgumentException;
 use Symfony\Component\Messenger\Exception\TransportException;
 use Symfony\Contracts\Service\ResetInterface;
@@ -110,13 +110,13 @@
         // check for extra keys in options
         $optionsExtraKeys = array_diff(array_keys($options), array_keys(static::DEFAULT_OPTIONS));
         if (0 < \count($optionsExtraKeys)) {
-            throw new InvalidArgumentException(sprintf('Unknown option found: [%s]. Allowed options are [%s].', implode(', ', $optionsExtraKeys), implode(', ', array_keys(static::DEFAULT_OPTIONS))));
+            throw new InvalidArgumentException(\sprintf('Unknown option found: [%s]. Allowed options are [%s].', implode(', ', $optionsExtraKeys), implode(', ', array_keys(static::DEFAULT_OPTIONS))));
         }
 
         // check for extra keys in options
         $queryExtraKeys = array_diff(array_keys($query), array_keys(static::DEFAULT_OPTIONS));
         if (0 < \count($queryExtraKeys)) {
-            throw new InvalidArgumentException(sprintf('Unknown option found in DSN: [%s]. Allowed options are [%s].', implode(', ', $queryExtraKeys), implode(', ', array_keys(static::DEFAULT_OPTIONS))));
+            throw new InvalidArgumentException(\sprintf('Unknown option found in DSN: [%s]. Allowed options are [%s].', implode(', ', $queryExtraKeys), implode(', ', array_keys(static::DEFAULT_OPTIONS))));
         }
 
         return $configuration;
@@ -132,7 +132,7 @@
     public function send(string $body, array $headers, int $delay = 0): string
     {
         $now = new \DateTimeImmutable('UTC');
-        $availableAt = $now->modify(sprintf('%+d seconds', $delay / 1000));
+        $availableAt = $now->modify(\sprintf('%+d seconds', $delay / 1000));
 
         $queryBuilder = $this->driverConnection->createQueryBuilder()
             ->insert($this->configuration['table_name'])
@@ -161,18 +161,6 @@
 
     public function get(): ?array
     {
-        if ($this->driverConnection->getDatabasePlatform() instanceof MySQLPlatform) {
-            try {
-                $this->driverConnection->delete($this->configuration['table_name'], ['delivered_at' => '9999-12-31 23:59:59']);
-            } catch (DriverException $e) {
-                // Ignore the exception
-            } catch (TableNotFoundException $e) {
-                if ($this->autoSetup) {
-                    $this->setup();
-                }
-            }
-        }
-
         get:
         $this->driverConnection->beginTransaction();
         try {
@@ -214,8 +202,8 @@
             } elseif (preg_match('/FROM (.+) WHERE/', (string) $sql, $matches)) {
                 $fromClause = $matches[1];
                 $sql = str_replace(
-                    sprintf('FROM %s WHERE', $fromClause),
-                    sprintf('FROM %s WHERE', $this->driverConnection->getDatabasePlatform()->appendLockHint($fromClause, LockMode::PESSIMISTIC_WRITE)),
+                    \sprintf('FROM %s WHERE', $fromClause),
+                    \sprintf('FROM %s WHERE', $this->driverConnection->getDatabasePlatform()->appendLockHint($fromClause, LockMode::PESSIMISTIC_WRITE)),
                     $sql
                 );
             }
@@ -274,10 +262,6 @@
     public function ack(string $id): bool
     {
         try {
-            if ($this->driverConnection->getDatabasePlatform() instanceof MySQLPlatform) {
-                return $this->driverConnection->update($this->configuration['table_name'], ['delivered_at' => '9999-12-31 23:59:59'], ['id' => $id]) > 0;
-            }
-
             return $this->driverConnection->delete($this->configuration['table_name'], ['id' => $id]) > 0;
         } catch (DBALException $exception) {
             throw new TransportException($exception->getMessage(), 0, $exception);
@@ -287,10 +271,6 @@
     public function reject(string $id): bool
     {
         try {
-            if ($this->driverConnection->getDatabasePlatform() instanceof MySQLPlatform) {
-                return $this->driverConnection->update($this->configuration['table_name'], ['delivered_at' => '9999-12-31 23:59:59'], ['id' => $id]) > 0;
-            }
-
             return $this->driverConnection->delete($this->configuration['table_name'], ['id' => $id]) > 0;
         } catch (DBALException $exception) {
             throw new TransportException($exception->getMessage(), 0, $exception);
@@ -307,7 +287,7 @@
             }
 
             if (!\is_string($tableName)) {
-                throw new \TypeError(sprintf('The table name must be an instance of "%s" or a string ("%s" given).', AbstractAsset::class, get_debug_type($tableName)));
+                throw new \TypeError(\sprintf('The table name must be an instance of "%s" or a string ("%s" given).', AbstractAsset::class, get_debug_type($tableName)));
             }
 
             return $tableName === $this->configuration['table_name'];
@@ -380,7 +360,7 @@
     private function createAvailableMessagesQueryBuilder(): QueryBuilder
     {
         $now = new \DateTimeImmutable('UTC');
-        $redeliverLimit = $now->modify(sprintf('-%d seconds', $this->configuration['redeliver_timeout']));
+        $redeliverLimit = $now->modify(\sprintf('-%d seconds', $this->configuration['redeliver_timeout']));
 
         return $this->createQueryBuilder()
             ->where('m.queue_name = ?')
@@ -404,7 +384,9 @@
 
         $alias .= '.';
 
-        if (!$this->driverConnection->getDatabasePlatform() instanceof OraclePlatform) {
+        if (!$this->driverConnection->getDatabasePlatform() instanceof FirebirdPlatform
+            && !$this->driverConnection->getDatabasePlatform() instanceof OraclePlatform
+        ) {
             return $queryBuilder->select($alias.'*');
         }
 
@@ -465,23 +447,17 @@
 
         try {
             if ($this->driverConnection->getDatabasePlatform() instanceof PostgreSQLPlatform) {
-                $first = $this->driverConnection->fetchFirstColumn($sql, $parameters, $types);
-
-                $id = $first[0] ?? null;
-
-                if (!$id) {
+                if (!$id = $this->driverConnection->fetchFirstColumn($sql, $parameters, $types)[0] ?? null) {
                     throw new TransportException('no id was returned by PostgreSQL from RETURNING clause.');
                 }
+
+                $this->driverConnection->executeStatement('SELECT pg_notify(?, ?)', [$this->configuration['table_name'], $this->configuration['queue_name']]);
             } elseif ($this->driverConnection->getDatabasePlatform() instanceof OraclePlatform) {
                 $sequenceName = $this->configuration['table_name'].self::ORACLE_SEQUENCES_SUFFIX;
 
                 $this->driverConnection->executeStatement($sql, $parameters, $types);
 
-                $result = $this->driverConnection->fetchOne('SELECT '.$sequenceName.'.CURRVAL FROM DUAL');
-
-                $id = (int) $result;
-
-                if (!$id) {
+                if (!$id = (int) $this->driverConnection->fetchOne('SELECT '.$sequenceName.'.CURRVAL FROM DUAL')) {
                     throw new TransportException('no id was returned by Oracle from sequence: '.$sequenceName);
                 }
             } else {
@@ -538,9 +514,7 @@
         $table->addColumn('delivered_at', Types::DATETIME_IMMUTABLE)
             ->setNotnull(false);
         $table->setPrimaryKey(['id']);
-        $table->addIndex(['queue_name']);
-        $table->addIndex(['available_at']);
-        $table->addIndex(['delivered_at']);
+        $table->addIndex(['queue_name', 'available_at', 'delivered_at', 'id']);
 
         // We need to create a sequence for Oracle and set the id column to get the correct nextval
         if ($this->driverConnection->getDatabasePlatform() instanceof OraclePlatform) {
@@ -614,6 +588,10 @@
 
     private function createComparator(AbstractSchemaManager $schemaManager): Comparator
     {
+        if (class_exists(ComparatorConfig::class)) {
+            return $schemaManager->createComparator((new ComparatorConfig())->withReportModifiedIndexes(false));
+        }
+
         return method_exists($schemaManager, 'createComparator')
             ? $schemaManager->createComparator()
             : new Comparator();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/DoctrineReceiver.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/DoctrineReceiver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/DoctrineReceiver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/DoctrineReceiver.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,14 +67,14 @@
 
     public function ack(Envelope $envelope): void
     {
-        $this->withRetryableExceptionRetry(function() use ($envelope) {
+        $this->withRetryableExceptionRetry(function () use ($envelope) {
             $this->connection->ack($this->findDoctrineReceivedStamp($envelope)->getId());
         });
     }
 
     public function reject(Envelope $envelope): void
     {
-        $this->withRetryableExceptionRetry(function() use ($envelope) {
+        $this->withRetryableExceptionRetry(function () use ($envelope) {
             $this->connection->reject($this->findDoctrineReceivedStamp($envelope)->getId());
         });
     }
@@ -161,7 +161,7 @@
             $callable();
         } catch (RetryableException $exception) {
             if (++$retries <= self::MAX_RETRIES) {
-                $delay *=  $multiplier;
+                $delay *= $multiplier;
 
                 $randomness = (int) ($delay * $jitter);
                 $delay += random_int(-$randomness, +$randomness);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,8 +11,6 @@
 
 namespace Symfony\Component\Messenger\Bridge\Doctrine\Transport;
 
-use Doctrine\DBAL\Schema\Table;
-
 /**
  * Uses PostgreSQL LISTEN/NOTIFY to push messages to workers.
  *
@@ -24,24 +22,23 @@
  */
 final class PostgreSqlConnection extends Connection
 {
+    private bool $listening = false;
+
     /**
      * * check_delayed_interval: The interval to check for delayed messages, in milliseconds. Set to 0 to disable checks. Default: 60000 (1 minute)
-     * * get_notify_timeout: The length of time to wait for a response when calling PDO::pgsqlGetNotify, in milliseconds. Default: 0.
+     * * get_notify_timeout: The length of time to wait for a response when calling PDO::pgsqlGetNotify (or Pdo\Pgsql::getNotify on PHP 8.4+), in milliseconds. Default: 0.
      */
     protected const DEFAULT_OPTIONS = parent::DEFAULT_OPTIONS + [
         'check_delayed_interval' => 60000,
         'get_notify_timeout' => 0,
     ];
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -51,6 +48,11 @@
         $this->unlisten();
     }
 
+    public function isListening(): bool
+    {
+        return $this->listening;
+    }
+
     public function reset(): void
     {
         parent::reset();
@@ -65,7 +67,9 @@
 
         // This is secure because the table name must be a valid identifier:
         // https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
-        $this->executeStatement(sprintf('LISTEN "%s"', $this->configuration['table_name']));
+        $this->executeStatement(\sprintf('LISTEN "%s"', $this->configuration['table_name']));
+
+        $this->listening = true;
 
         // The condition should be removed once support for DBAL <3.3 is dropped
         if (method_exists($this->driverConnection, 'getNativeConnection')) {
@@ -77,7 +81,9 @@
             }
         }
 
-        $notification = $wrappedConnection->pgsqlGetNotify(\PDO::FETCH_ASSOC, $this->configuration['get_notify_timeout']);
+        $notification = \PHP_VERSION_ID >= 80500
+            ? $wrappedConnection->getNotify(\PDO::FETCH_ASSOC, $this->configuration['get_notify_timeout'])
+            : $wrappedConnection->pgsqlGetNotify(\PDO::FETCH_ASSOC, $this->configuration['get_notify_timeout']);
         if (
             // no notifications, or for another table or queue
             (false === $notification || $notification['message'] !== $this->configuration['table_name'] || $notification['payload'] !== $this->configuration['queue_name'])
@@ -92,63 +98,13 @@
         return parent::get();
     }
 
-    public function setup(): void
-    {
-        parent::setup();
-
-        $this->executeStatement(implode("\n", $this->getTriggerSql()));
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getExtraSetupSqlForTable(Table $createdTable): array
-    {
-        if (!$createdTable->hasOption(self::TABLE_OPTION_NAME)) {
-            return [];
-        }
-
-        if ($createdTable->getOption(self::TABLE_OPTION_NAME) !== $this->configuration['table_name']) {
-            return [];
-        }
-
-        return $this->getTriggerSql();
-    }
-
-    private function getTriggerSql(): array
-    {
-        $functionName = $this->createTriggerFunctionName();
-
-        return [
-            // create trigger function
-            sprintf(<<<'SQL'
-CREATE OR REPLACE FUNCTION %1$s() RETURNS TRIGGER AS $$
-    BEGIN
-        PERFORM pg_notify('%2$s', NEW.queue_name::text);
-        RETURN NEW;
-    END;
-$$ LANGUAGE plpgsql;
-SQL
-                , $functionName, $this->configuration['table_name']),
-            // register trigger
-            sprintf('DROP TRIGGER IF EXISTS notify_trigger ON %s;', $this->configuration['table_name']),
-            sprintf('CREATE TRIGGER notify_trigger AFTER INSERT OR UPDATE ON %1$s FOR EACH ROW EXECUTE PROCEDURE %2$s();', $this->configuration['table_name'], $functionName),
-        ];
-    }
-
-    private function createTriggerFunctionName(): string
+    private function unlisten(): void
     {
-        $tableConfig = explode('.', $this->configuration['table_name']);
-
-        if (1 === \count($tableConfig)) {
-            return sprintf('notify_%1$s', $tableConfig[0]);
+        if (!$this->listening) {
+            return;
         }
 
-        return sprintf('%1$s.notify_%2$s', $tableConfig[0], $tableConfig[1]);
-    }
-
-    private function unlisten(): void
-    {
-        $this->executeStatement(sprintf('UNLISTEN "%s"', $this->configuration['table_name']));
+        $this->executeStatement(\sprintf('UNLISTEN "%s"', $this->configuration['table_name']));
+        $this->listening = false;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/ConnectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/ConnectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/ConnectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/ConnectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
             ->method('connect')
             ->with('tls://127.0.0.1', 6379)
             ->willReturn(true);
-        $redis->expects($this->any())
+        $redis
             ->method('isConnected')
             ->willReturnOnConsecutiveCalls(false, true);
 
@@ -116,18 +116,38 @@
         $this->assertInstanceOf(Connection::class, new Connection([], $redis));
     }
 
-    public function testKeepGettingPendingMessages()
+    public function testPendingScanAdvancesCursorWithoutDuplicates()
     {
         $redis = $this->createRedisMock();
 
-        $redis->expects($this->exactly(3))->method('xreadgroup')
-            ->with('symfony', 'consumer', ['queue' => 0], 1, 1)
-            ->willReturn(['queue' => [['message' => json_encode(['body' => 'Test', 'headers' => []])]]]);
+        $redis->expects($this->exactly(4))->method('xreadgroup')
+            ->willReturnCallback(function (...$args) {
+                static $series = [
+                    // pending scan from '0': returns first pending message
+                    [['symfony', 'consumer', ['queue' => '0'], 1, 1], ['queue' => ['100-0' => ['message' => '{"body":"1","headers":[]}']]]],
+                    // pending scan advances cursor past '100-0': returns next pending message
+                    [['symfony', 'consumer', ['queue' => '100-0'], 1, 1], ['queue' => ['200-0' => ['message' => '{"body":"2","headers":[]}']]]],
+                    // pending scan advances cursor past '200-0': no more pending messages
+                    [['symfony', 'consumer', ['queue' => '200-0'], 1, 1], []],
+                    // fallback to new messages: none available
+                    [['symfony', 'consumer', ['queue' => '>'], 1, 1], []],
+                ];
+
+                [$expectedArgs, $return] = array_shift($series);
+                $this->assertSame($expectedArgs, $args);
+
+                return $return;
+            });
 
         $connection = Connection::fromDsn('redis://localhost/queue', [], $redis);
-        $this->assertNotNull($connection->get());
-        $this->assertNotNull($connection->get());
-        $this->assertNotNull($connection->get());
+
+        $msg1 = $connection->get();
+        $this->assertSame('100-0', $msg1['id']);
+
+        $msg2 = $connection->get();
+        $this->assertSame('200-0', $msg2['id']);
+
+        $this->assertNull($connection->get());
     }
 
     /**
@@ -403,26 +423,33 @@
         yield '100ms delay' => ['/^\w+\.\d+$/', 100, 'rawCommand', '1'];
     }
 
+    /**
+     * @group integration
+     */
     public function testInvalidSentinelMasterName()
     {
-        try {
-            Connection::fromDsn(getenv('MESSENGER_REDIS_DSN'), ['delete_after_ack' => true], null);
-        } catch (\Exception $e) {
-            self::markTestSkipped($e->getMessage());
+        if (!$hosts = getenv('REDIS_SENTINEL_HOSTS')) {
+            $this->markTestSkipped('REDIS_SENTINEL_HOSTS env var is not defined.');
         }
 
         if (!getenv('MESSENGER_REDIS_SENTINEL_MASTER')) {
             self::markTestSkipped('Redis sentinel is not configured');
         }
 
-        $master = getenv('MESSENGER_REDIS_DSN');
+        $dsn = 'redis:?host['.str_replace(' ', ']&host[', $hosts).']';
+
+        try {
+            Connection::fromDsn($dsn, ['delete_after_ack' => true, 'sentinel_master' => getenv('MESSENGER_REDIS_SENTINEL_MASTER')]);
+        } catch (\Exception $e) {
+            self::markTestSkipped($e->getMessage());
+        }
+
         $uid = uniqid('sentinel_', true);
 
-        $exp = explode('://', $master, 2)[1];
         $this->expectException(\InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('Failed to retrieve master information from master name "%s" and address "%s".', $uid, $exp));
+        $this->expectExceptionMessage(\sprintf('Failed to retrieve master information from sentinel "%s".', $uid));
 
-        Connection::fromDsn(sprintf('%s/messenger-clearlasterror', $master), ['delete_after_ack' => true, 'sentinel_master' => $uid], null);
+        Connection::fromDsn(\sprintf('%s/messenger-clearlasterror', $dsn), ['delete_after_ack' => true, 'sentinel_master' => $uid]);
     }
 
     public function testFromDsnOnUnixSocketWithUserAndPassword()
@@ -485,13 +512,238 @@
         );
     }
 
+    public function testSkipAlreadyInflightPendingMessage()
+    {
+        $redis = $this->createRedisMock();
+
+        $redis->expects($this->exactly(5))->method('xreadgroup')
+            ->willReturnCallback(function (...$args) {
+                static $series = [
+                    // get #1: pending scan returns msg-A
+                    [['symfony', 'consumer', ['queue' => '0'], 1, 1], ['queue' => ['msg-A' => ['message' => '{"body":"1","headers":[]}']]]],
+                    // get #2: pending scan from 'msg-A', no more pending
+                    [['symfony', 'consumer', ['queue' => 'msg-A'], 1, 1], []],
+                    // get #2: claim resets cursor to '0', rescan returns msg-A again — skipped (in-flight)
+                    [['symfony', 'consumer', ['queue' => '0'], 1, 1], ['queue' => ['msg-A' => ['message' => '{"body":"1","headers":[]}']]]],
+                    // get #2: cursor advances past msg-A, no more pending
+                    [['symfony', 'consumer', ['queue' => 'msg-A'], 1, 1], []],
+                    // get #2: fallback to new messages
+                    [['symfony', 'consumer', ['queue' => '>'], 1, 1], []],
+                ];
+
+                [$expectedArgs, $return] = array_shift($series);
+                $this->assertSame($expectedArgs, $args);
+
+                return $return;
+            });
+
+        $redis->expects($this->once())->method('xpending')
+            ->willReturn([[0 => 'other-msg', 1 => 'consumer-2', 2 => 3600001]]);
+        $redis->expects($this->once())->method('xclaim')->willReturn([]);
+
+        $connection = Connection::fromDsn('redis://localhost/queue', [], $redis);
+
+        $this->assertSame('msg-A', $connection->get()['id']);
+
+        // msg-A is still in-flight, so when the claim resets the cursor and
+        // the rescan encounters msg-A again, it must be skipped
+        $this->assertNull($connection->get());
+    }
+
+    public function testAckRemovesInflightId()
+    {
+        $redis = $this->createRedisMock();
+
+        $redis->expects($this->once())->method('xreadgroup')
+            ->with('symfony', 'consumer', ['queue' => '0'], 1, 1)
+            ->willReturn(['queue' => ['msg-A' => ['message' => '{"body":"1","headers":[]}']]]);
+
+        $redis->expects($this->once())->method('xack')
+            ->with('queue', 'symfony', ['msg-A'])
+            ->willReturn(1);
+        $redis->expects($this->once())->method('xdel')
+            ->with('queue', ['msg-A'])
+            ->willReturn(1);
+
+        $connection = Connection::fromDsn('redis://localhost/queue', [], $redis);
+
+        $inflightIds = (new \ReflectionClass(Connection::class))->getProperty('inflightIds');
+
+        $msg = $connection->get();
+        $this->assertSame('msg-A', $msg['id']);
+        $this->assertArrayHasKey('msg-A', $inflightIds->getValue($connection));
+
+        $connection->ack('msg-A');
+        $this->assertEmpty($inflightIds->getValue($connection));
+    }
+
+    public function testRejectRemovesInflightId()
+    {
+        $redis = $this->createRedisMock();
+
+        $redis->expects($this->once())->method('xreadgroup')
+            ->with('symfony', 'consumer', ['queue' => '0'], 1, 1)
+            ->willReturn(['queue' => ['msg-A' => ['message' => '{"body":"1","headers":[]}']]]);
+
+        $redis->expects($this->once())->method('xack')
+            ->with('queue', 'symfony', ['msg-A'])
+            ->willReturn(1);
+        $redis->expects($this->once())->method('xdel')
+            ->with('queue', ['msg-A'])
+            ->willReturn(1);
+
+        $connection = Connection::fromDsn('redis://localhost/queue?delete_after_reject=true', [], $redis);
+
+        $inflightIds = (new \ReflectionClass(Connection::class))->getProperty('inflightIds');
+
+        $msg = $connection->get();
+        $this->assertSame('msg-A', $msg['id']);
+        $this->assertArrayHasKey('msg-A', $inflightIds->getValue($connection));
+
+        $connection->reject('msg-A');
+        $this->assertEmpty($inflightIds->getValue($connection));
+    }
+
+    public function testClaimCanProcessMultipleMessagesWithinOneInterval()
+    {
+        $redis = $this->createRedisMock();
+
+        // Flow:
+        // get() #1: pending '0' → empty, claim finds claim-1, pending '0' → claim-1
+        // ack('claim-1')
+        // get() #2: pending 'claim-1' → empty, claim finds claim-2, pending '0' → claim-2
+        $redis->expects($this->exactly(4))->method('xreadgroup')
+            ->willReturnCallback(function (...$args) {
+                static $series = [
+                    [['symfony', 'consumer', ['queue' => '0'], 1, 1], []],
+                    [['symfony', 'consumer', ['queue' => '0'], 1, 1], ['queue' => ['claim-1' => ['message' => '{"body":"1","headers":[]}']]]],
+                    [['symfony', 'consumer', ['queue' => 'claim-1'], 1, 1], []],
+                    [['symfony', 'consumer', ['queue' => '0'], 1, 1], ['queue' => ['claim-2' => ['message' => '{"body":"2","headers":[]}']]]],
+                ];
+
+                [$expectedArgs, $return] = array_shift($series);
+                $this->assertSame($expectedArgs, $args);
+
+                return $return;
+            });
+
+        $redis->expects($this->exactly(2))->method('xpending')
+            ->willReturnOnConsecutiveCalls(
+                [[0 => 'claim-1', 1 => 'consumer-2', 2 => 3600001]],
+                [[0 => 'claim-2', 1 => 'consumer-2', 2 => 3600001]]
+            );
+
+        $redis->expects($this->exactly(2))->method('xclaim')
+            ->willReturn([]);
+
+        $redis->expects($this->once())->method('xack')
+            ->with('queue', 'symfony', ['claim-1'])
+            ->willReturn(1);
+        $redis->expects($this->once())->method('xdel')
+            ->with('queue', ['claim-1'])
+            ->willReturn(1);
+
+        $connection = Connection::fromDsn('redis://localhost/queue', [], $redis);
+
+        $msg1 = $connection->get();
+        $this->assertSame('claim-1', $msg1['id']);
+
+        $connection->ack('claim-1');
+
+        $msg2 = $connection->get();
+        $this->assertSame('claim-2', $msg2['id']);
+    }
+
+    public function testClaimIntervalAdvancedOnlyWhenNoClaimableMessages()
+    {
+        $redis = $this->createRedisMock();
+
+        $redis->expects($this->exactly(4))->method('xreadgroup')
+            ->willReturnCallback(function (...$args) {
+                static $series = [
+                    [['symfony', 'consumer', ['queue' => '0'], 1, 1], []],
+                    [['symfony', 'consumer', ['queue' => '0'], 1, 1], ['queue' => ['msg-A' => ['message' => '{"body":"1","headers":[]}']]]],
+                    [['symfony', 'consumer', ['queue' => 'msg-A'], 1, 1], []],
+                    [['symfony', 'consumer', ['queue' => '>'], 1, 1], []],
+                ];
+
+                [$expectedArgs, $return] = array_shift($series);
+                $this->assertSame($expectedArgs, $args);
+
+                return $return;
+            });
+
+        $redis->expects($this->exactly(2))->method('xpending')
+            ->willReturnOnConsecutiveCalls(
+                [[0 => 'msg-A', 1 => 'consumer-2', 2 => 3600001]],
+                []
+            );
+
+        $redis->expects($this->once())->method('xclaim')->willReturn([]);
+        $redis->expects($this->once())->method('xack')->willReturn(1);
+        $redis->expects($this->once())->method('xdel')->willReturn(1);
+
+        $connection = Connection::fromDsn('redis://localhost/queue', [], $redis);
+
+        $nextClaimProp = (new \ReflectionClass(Connection::class))->getProperty('nextClaim');
+
+        $this->assertSame(0.0, $nextClaimProp->getValue($connection));
+
+        $msg = $connection->get();
+        $this->assertSame('msg-A', $msg['id']);
+        $this->assertSame(0.0, $nextClaimProp->getValue($connection));
+
+        $connection->ack('msg-A');
+
+        $this->assertNull($connection->get());
+        $this->assertGreaterThan(0.0, $nextClaimProp->getValue($connection));
+    }
+
+    public function testClaimAdvancesIntervalWhenOldestPendingBelongsToOwnConsumer()
+    {
+        $redis = $this->createRedisMock();
+
+        // get #1: pending scan from '0' returns msg-A
+        // get #2: pending scan from 'msg-A' → empty (cursor exhausted)
+        //         claim: xpending returns msg-A owned by OUR consumer → should advance nextClaim, NOT rescan
+        //         fallback to new messages: none
+        $redis->expects($this->exactly(3))->method('xreadgroup')
+            ->willReturnCallback(function (...$args) {
+                static $series = [
+                    [['symfony', 'consumer', ['queue' => '0'], 1, 1], ['queue' => ['msg-A' => ['message' => '{"body":"1","headers":[]}']]]],
+                    [['symfony', 'consumer', ['queue' => 'msg-A'], 1, 1], []],
+                    [['symfony', 'consumer', ['queue' => '>'], 1, 1], []],
+                ];
+
+                [$expectedArgs, $return] = array_shift($series);
+                $this->assertSame($expectedArgs, $args);
+
+                return $return;
+            });
+
+        $redis->expects($this->once())->method('xpending')
+            ->willReturn([[0 => 'msg-A', 1 => 'consumer', 2 => 100]]);
+
+        $connection = Connection::fromDsn('redis://localhost/queue', [], $redis);
+
+        $nextClaimProp = (new \ReflectionClass(Connection::class))->getProperty('nextClaim');
+
+        $msg = $connection->get();
+        $this->assertSame('msg-A', $msg['id']);
+        $this->assertSame(0.0, $nextClaimProp->getValue($connection));
+
+        $this->assertNull($connection->get());
+        $this->assertGreaterThan(0.0, $nextClaimProp->getValue($connection));
+    }
+
     private function createRedisMock(): \Redis
     {
         $redis = $this->createMock(\Redis::class);
-        $redis->expects($this->any())
+        $redis
+            ->expects($this->atLeastOnce())
             ->method('connect')
             ->willReturn(true);
-        $redis->expects($this->any())
+        $redis
             ->method('isConnected')
             ->willReturnOnConsecutiveCalls(false, true, true);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisExtIntegrationTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisExtIntegrationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisExtIntegrationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisExtIntegrationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
 
         try {
             $this->redis = $this->createRedisClient();
-            $this->connection = Connection::fromDsn(getenv('MESSENGER_REDIS_DSN'), ['sentinel_master' => getenv('MESSENGER_REDIS_SENTINEL_MASTER') ?: null], $this->redis);
+            $this->connection = Connection::fromDsn(getenv('MESSENGER_REDIS_DSN'), [], $this->redis);
             $this->connection->cleanup();
             $this->connection->setup();
         } catch (\Exception $e) {
@@ -147,7 +147,7 @@
     public function testConnectionBelowRedeliverTimeout()
     {
         // lower redeliver timeout and claim interval
-        $connection = Connection::fromDsn(getenv('MESSENGER_REDIS_DSN'), ['sentinel_master' => getenv('MESSENGER_REDIS_SENTINEL_MASTER') ?: null], $this->redis);
+        $connection = Connection::fromDsn(getenv('MESSENGER_REDIS_DSN'), [], $this->redis);
 
         $connection->cleanup();
         $connection->setup();
@@ -175,7 +175,7 @@
         // lower redeliver timeout and claim interval
         $connection = Connection::fromDsn(
             getenv('MESSENGER_REDIS_DSN'),
-            ['redeliver_timeout' => 0, 'claim_interval' => 500, 'sentinel_master' => getenv('MESSENGER_REDIS_SENTINEL_MASTER') ?: null],
+            ['redeliver_timeout' => 0, 'claim_interval' => 500],
 
             $this->redis
         );
@@ -234,7 +234,7 @@
 
         $connection = Connection::fromDsn($dsn,
             ['delete_after_ack' => true,
-             'sentinel_master' => getenv('MESSENGER_REDIS_SENTINEL_MASTER') ?: null,
+                'sentinel_master' => getenv('MESSENGER_REDIS_SENTINEL_MASTER') ?: null,
             ], $this->redis);
 
         $connection->add('1', []);
@@ -251,10 +251,20 @@
 
     public function testLazySentinel()
     {
-        $connection = Connection::fromDsn(getenv('MESSENGER_REDIS_DSN'),
+        if (!$hosts = getenv('REDIS_SENTINEL_HOSTS')) {
+            $this->markTestSkipped('REDIS_SENTINEL_HOSTS env var is not defined.');
+        }
+
+        if (!getenv('MESSENGER_REDIS_SENTINEL_MASTER')) {
+            $this->markTestSkipped('MESSENGER_REDIS_SENTINEL_MASTER env var is not defined.');
+        }
+
+        $dsn = 'redis:?host['.str_replace(' ', ']&host[', $hosts).']';
+
+        $connection = Connection::fromDsn($dsn,
             ['lazy' => true,
-             'delete_after_ack' => true,
-             'sentinel_master' => getenv('MESSENGER_REDIS_SENTINEL_MASTER') ?: null,
+                'delete_after_ack' => true,
+                'sentinel_master' => getenv('MESSENGER_REDIS_SENTINEL_MASTER') ?: null,
             ], $this->redis);
 
         $connection->add('1', []);
@@ -323,10 +333,10 @@
 
         $hosts = explode(' ', getenv('REDIS_CLUSTER_HOSTS'));
 
-        $dsn = array_map(fn ($host) => 'redis://'.$host, $hosts);
+        $dsn = array_map(static fn ($host) => 'redis://'.$host, $hosts);
         $dsn = implode(',', $dsn);
 
-        $this->assertInstanceOf(Connection::class, Connection::fromDsn($dsn, ['sentinel_master' => getenv('MESSENGER_REDIS_SENTINEL_MASTER') ?: null]));
+        $this->assertInstanceOf(Connection::class, Connection::fromDsn($dsn, []));
     }
 
     public function testJsonError()
@@ -433,6 +443,35 @@
         $this->assertSame(1, $this->connection->getMessageCount());
     }
 
+    public function testPendingMessagesAreNotReturnedAsDuplicatesBeforeAck()
+    {
+        $this->connection->add('{"message": "1"}', ['type' => DummyMessage::class]);
+        $this->connection->add('{"message": "2"}', ['type' => DummyMessage::class]);
+        $this->connection->add('{"message": "3"}', ['type' => DummyMessage::class]);
+
+        // Fetch all 3 without acking — simulates a batch handler collecting messages.
+        // The old code would return msg-1 three times because it always read from ID '0'.
+        $msg1 = $this->connection->get();
+        $msg2 = $this->connection->get();
+        $msg3 = $this->connection->get();
+
+        $this->assertNotNull($msg1);
+        $this->assertNotNull($msg2);
+        $this->assertNotNull($msg3);
+
+        $ids = [$msg1['id'], $msg2['id'], $msg3['id']];
+        $this->assertCount(3, array_unique($ids), 'Each get() must return a distinct message, not duplicates');
+
+        // After all pending are consumed, next get() must return null (no new messages)
+        $this->assertNull($this->connection->get());
+
+        $this->connection->ack($msg1['id']);
+        $this->connection->ack($msg2['id']);
+        $this->connection->ack($msg3['id']);
+
+        $this->assertNull($this->connection->get());
+    }
+
     private function getConnectionGroup(Connection $connection): string
     {
         $property = (new \ReflectionClass(Connection::class))->getProperty('group');
@@ -450,7 +489,7 @@
     private function skipIfRedisClusterUnavailable()
     {
         try {
-            new \RedisCluster(null, getenv('REDIS_CLUSTER_HOST') ? explode(' ', getenv('REDIS_CLUSTER_HOST')) : []);
+            new \RedisCluster(null, getenv('REDIS_CLUSTER_HOSTS') ? explode(' ', getenv('REDIS_CLUSTER_HOSTS')) : []);
         } catch (\Exception $e) {
             self::markTestSkipped($e->getMessage());
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisReceiverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisReceiverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisReceiverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisReceiverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
      */
     public function testItReturnsTheDecodedMessageToTheHandler(array $redisEnvelope, $expectedMessage, SerializerInterface $serializer)
     {
-        $connection = $this->createMock(Connection::class);
+        $connection = $this->createStub(Connection::class);
         $connection->method('get')->willReturn($redisEnvelope);
 
         $receiver = new RedisReceiver($connection, $serializer);
@@ -57,7 +57,7 @@
     {
         $this->expectException(MessageDecodingFailedException::class);
 
-        $serializer = $this->createMock(PhpSerializer::class);
+        $serializer = $this->createStub(PhpSerializer::class);
         $serializer->method('decode')->willThrowException(new MessageDecodingFailedException());
 
         $connection = $this->createMock(Connection::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisSenderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisSenderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisSenderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisSenderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
         $connection = $this->createMock(Connection::class);
         $connection->expects($this->once())->method('add')->with($encoded['body'], $encoded['headers'])->willReturn('THE_MESSAGE_ID');
 
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $serializer->method('encode')->with($envelope)->willReturn($encoded);
 
         $sender = new RedisSender($connection, $serializer);
@@ -37,7 +37,7 @@
         /** @var TransportMessageIdStamp $stamp */
         $stamp = $sender->send($envelope)->last(TransportMessageIdStamp::class);
 
-        $this->assertNotNull($stamp, sprintf('A "%s" stamp should be added', TransportMessageIdStamp::class));
+        $this->assertNotNull($stamp, \sprintf('A "%s" stamp should be added', TransportMessageIdStamp::class));
         $this->assertSame('THE_MESSAGE_ID', $stamp->getId());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,8 +31,8 @@
     public function testReceivesMessages()
     {
         $transport = $this->getTransport(
-            $serializer = $this->createMock(SerializerInterface::class),
-            $connection = $this->createMock(Connection::class)
+            $serializer = $this->createStub(SerializerInterface::class),
+            $connection = $this->createStub(Connection::class)
         );
 
         $decodedMessage = new DummyMessage('Decoded.');
@@ -56,8 +56,8 @@
 
     private function getTransport(?SerializerInterface $serializer = null, ?Connection $connection = null): RedisTransport
     {
-        $serializer ??= $this->createMock(SerializerInterface::class);
-        $connection ??= $this->createMock(Connection::class);
+        $serializer ??= $this->createStub(SerializerInterface::class);
+        $connection ??= $this->createStub(Connection::class);
 
         return new RedisTransport($connection, $serializer);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,9 @@
     private float $claimInterval;
     private bool $deleteAfterAck;
     private bool $deleteAfterReject;
-    private bool $couldHavePendingMessages = true;
+    private ?string $lastPendingMessageId = '0';
+    /** @var array<string, true> */
+    private array $inflightIds = [];
 
     public function __construct(array $options, \Redis|Relay|\RedisCluster|null $redis = null)
     {
@@ -134,6 +136,10 @@
                                     'readTimeout' => $options['read_timeout'],
                                 ];
 
+                                if (null !== $options['ssl'] && version_compare(phpversion('redis'), '6.2.0', '>=')) {
+                                    $params['ssl'] = $options['ssl'];
+                                }
+
                                 $sentinel = @new \RedisSentinel($params);
                             } else {
                                 $sentinel = @new $sentinelClass($host, $port, $options['timeout'], $options['persistent_id'], $options['retry_interval'], $options['read_timeout']);
@@ -147,7 +153,7 @@
                     } while (++$hostIndex < \count($hosts) && !$address);
 
                     if (!$address) {
-                        throw new InvalidArgumentException(sprintf('Failed to retrieve master information from sentinel "%s".', $sentinelMaster), previous: $redisException ?? null);
+                        throw new InvalidArgumentException(\sprintf('Failed to retrieve master information from sentinel "%s".', $sentinelMaster), previous: $redisException ?? null);
                     }
                 }
 
@@ -161,7 +167,7 @@
 
         foreach (['stream', 'group', 'consumer'] as $key) {
             if ('' === $options[$key]) {
-                throw new InvalidArgumentException(sprintf('"%s" should be configured, got an empty string.', $key));
+                throw new InvalidArgumentException(\sprintf('"%s" should be configured, got an empty string.', $key));
             }
         }
 
@@ -191,7 +197,7 @@
         @$redis->{$connect}($host, $port, $params['timeout'], $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...(\defined('Redis::SCAN_PREFIX') || \extension_loaded('relay')) ? [['stream' => $params['ssl'] ?? null]] : []);
 
         $error = null;
-        set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
+        set_error_handler(static function ($type, $msg) use (&$error) { $error = $msg; });
 
         try {
             $isConnected = $redis->isConnected();
@@ -237,7 +243,7 @@
             }
         } else {
             $dsns = explode(',', $dsn);
-            $paramss = array_map(function ($dsn) use (&$options) {
+            $paramss = array_map(static function ($dsn) use (&$options) {
                 return self::parseDsn($dsn, $options);
             }, $dsns);
 
@@ -246,7 +252,7 @@
             $tls = 'rediss' === $params['scheme'];
 
             // Regroup all the hosts in an array interpretable by RedisCluster
-            $params['host'] = array_map(function ($params) use ($tls) {
+            $params['host'] = array_map(static function ($params) use ($tls) {
                 if (!isset($params['host'])) {
                     throw new InvalidArgumentException('Missing host in DSN, it must be defined when using Redis Cluster.');
                 }
@@ -259,7 +265,7 @@
         }
 
         if ($invalidOptions = array_diff(array_keys($options), array_keys(self::DEFAULT_OPTIONS), ['host', 'port'])) {
-            throw new LogicException(sprintf('Invalid option(s) "%s" passed to the Redis Messenger transport.', implode('", "', $invalidOptions)));
+            throw new LogicException(\sprintf('Invalid option(s) "%s" passed to the Redis Messenger transport.', implode('", "', $invalidOptions)));
         }
         foreach (self::DEFAULT_OPTIONS as $k => $v) {
             $options[$k] = match (\gettype($v)) {
@@ -282,7 +288,7 @@
                 $tcpScheme = $tls ? 'tls' : 'tcp';
 
                 if (!\is_array($hosts = $query['host'])) {
-                    throw new InvalidArgumentException(sprintf('Invalid Redis DSN: "%s".', $dsn));
+                    throw new InvalidArgumentException(\sprintf('Invalid Redis DSN: "%s".', $dsn));
                 }
                 foreach ($hosts as $host => $parameters) {
                     if (\is_string($parameters)) {
@@ -325,7 +331,7 @@
             $url = str_replace($scheme.':', 'file:', $dsn);
         }
 
-        $url = preg_replace_callback('#^'.$scheme.':(//)?(?:(?:(?<user>[^:@]*+):)?(?<password>[^@]*+)@)?#', function ($m) use (&$auth) {
+        $url = preg_replace_callback('#^'.$scheme.':(//)?(?:(?:(?<user>[^:@]*+):)?(?<password>[^@]*+)@)?#', static function ($m) use (&$auth) {
             if (isset($m['password'])) {
                 if (!\in_array($m['user'], ['', 'default'], true)) {
                     $auth['user'] = rawurldecode($m['user']);
@@ -357,45 +363,48 @@
 
     private function claimOldPendingMessages(): void
     {
+        $redis = $this->getRedis();
+
         try {
-            // This could soon be optimized with https://github.com/antirez/redis/issues/5212 or
-            // https://github.com/antirez/redis/issues/6256
-            $pendingMessages = $this->getRedis()->xpending($this->stream, $this->group, '-', '+', 1) ?: [];
+            $pendingMessages = $redis->xpending($this->stream, $this->group, '-', '+', 1) ?: [];
         } catch (\RedisException|\Relay\Exception $e) {
             throw new TransportException($e->getMessage(), 0, $e);
         }
 
-        $claimableIds = [];
-        foreach ($pendingMessages as $pendingMessage) {
-            if ($pendingMessage[1] === $this->consumer) {
-                $this->couldHavePendingMessages = true;
+        if (!$pendingMessages) {
+            $this->nextClaim = microtime(true) + $this->claimInterval;
 
-                return;
-            }
+            return;
+        }
 
-            if ($pendingMessage[2] >= $this->redeliverTimeout) {
-                $claimableIds[] = $pendingMessage[0];
-            }
+        $pendingMessage = $pendingMessages[0];
+
+        if ($pendingMessage[1] === $this->consumer) {
+            $this->nextClaim = microtime(true) + $this->claimInterval;
+
+            return;
         }
 
-        if (\count($claimableIds) > 0) {
-            try {
-                $this->getRedis()->xclaim(
-                    $this->stream,
-                    $this->group,
-                    $this->consumer,
-                    $this->redeliverTimeout,
-                    $claimableIds,
-                    ['JUSTID']
-                );
-
-                $this->couldHavePendingMessages = true;
-            } catch (\RedisException|\Relay\Exception $e) {
-                throw new TransportException($e->getMessage(), 0, $e);
-            }
+        if ($pendingMessage[2] < $this->redeliverTimeout) {
+            $this->nextClaim = microtime(true) + $this->claimInterval;
+
+            return;
         }
 
-        $this->nextClaim = microtime(true) + $this->claimInterval;
+        try {
+            $redis->xclaim(
+                $this->stream,
+                $this->group,
+                $this->consumer,
+                $this->redeliverTimeout,
+                [$pendingMessage[0]],
+                ['JUSTID']
+            );
+
+            $this->lastPendingMessageId = '0';
+        } catch (\RedisException|\Relay\Exception $e) {
+            throw new TransportException($e->getMessage(), 0, $e);
+        }
     }
 
     public function get(): ?array
@@ -403,6 +412,26 @@
         if ($this->autoSetup) {
             $this->setup();
         }
+
+        $this->handleDelayedMessages();
+
+        if (null !== $message = $this->getPendingMessage()) {
+            return $message;
+        }
+
+        if (null === $this->lastPendingMessageId && $this->nextClaim <= microtime(true)) {
+            $this->claimOldPendingMessages();
+
+            if (null !== $message = $this->getPendingMessage()) {
+                return $message;
+            }
+        }
+
+        return $this->getNewMessage();
+    }
+
+    private function handleDelayedMessages(): void
+    {
         $now = microtime();
         $now = substr($now, 11).substr($now, 2, 3);
 
@@ -429,16 +458,58 @@
             $decodedQueuedMessage = json_decode($queuedMessage, true);
             $this->add(\array_key_exists('body', $decodedQueuedMessage) ? $decodedQueuedMessage['body'] : $queuedMessage, $decodedQueuedMessage['headers'] ?? [], 0);
         }
+    }
 
-        if (!$this->couldHavePendingMessages && $this->nextClaim <= microtime(true)) {
-            $this->claimOldPendingMessages();
+    private function getPendingMessage(): ?array
+    {
+        if (null === $this->lastPendingMessageId) {
+            return null;
         }
 
-        $messageId = '>'; // will receive new messages
+        while (true) {
+            $messages = $this->xReadGroup($this->lastPendingMessageId);
+
+            if (empty($messages[$this->stream])) {
+                $this->lastPendingMessageId = null;
+
+                return null;
+            }
 
-        if ($this->couldHavePendingMessages) {
-            $messageId = '0'; // will receive consumers pending messages
+            /** @var string $key */
+            $key = array_key_first($messages[$this->stream]);
+            $this->lastPendingMessageId = $key;
+
+            if (isset($this->inflightIds[$key])) {
+                continue;
+            }
+
+            $this->inflightIds[$key] = true;
+
+            return [
+                'id' => $key,
+                'data' => $messages[$this->stream][$key],
+            ];
+        }
+    }
+
+    private function getNewMessage(): ?array
+    {
+        $messages = $this->xReadGroup('>');
+
+        foreach ($messages[$this->stream] ?? [] as $key => $message) {
+            $this->inflightIds[$key] = true;
+
+            return [
+                'id' => $key,
+                'data' => $message,
+            ];
         }
+
+        return null;
+    }
+
+    private function xReadGroup(string $messageId): array
+    {
         $redis = $this->getRedis();
 
         try {
@@ -453,7 +524,7 @@
             throw new TransportException($e->getMessage(), 0, $e);
         }
 
-        if (false === $messages) {
+        if (!\is_array($messages)) {
             if ($error = $redis->getLastError() ?: null) {
                 $redis->clearLastError();
             }
@@ -461,21 +532,7 @@
             throw new TransportException($error ?? 'Could not read messages from the redis stream.');
         }
 
-        if ($this->couldHavePendingMessages && empty($messages[$this->stream])) {
-            $this->couldHavePendingMessages = false;
-
-            // No pending messages so get a new one
-            return $this->get();
-        }
-
-        foreach ($messages[$this->stream] ?? [] as $key => $message) {
-            return [
-                'id' => $key,
-                'data' => $message,
-            ];
-        }
-
-        return null;
+        return $messages;
     }
 
     public function ack(string $id): void
@@ -495,8 +552,10 @@
             if ($error = $redis->getLastError() ?: null) {
                 $redis->clearLastError();
             }
-            throw new TransportException($error ?? sprintf('Could not acknowledge redis message "%s".', $id));
+            throw new TransportException($error ?? \sprintf('Could not acknowledge redis message "%s".', $id));
         }
+
+        unset($this->inflightIds[$id]);
     }
 
     public function reject(string $id): void
@@ -516,8 +575,10 @@
             if ($error = $redis->getLastError() ?: null) {
                 $redis->clearLastError();
             }
-            throw new TransportException($error ?? sprintf('Could not delete message "%s" from the redis stream.', $id));
+            throw new TransportException($error ?? \sprintf('Could not delete message "%s" from the redis stream.', $id));
         }
+
+        unset($this->inflightIds[$id]);
     }
 
     public function add(string $body, array $headers, int $delayInMs = 0): string
@@ -611,7 +672,7 @@
                 // support for Redis extension version 4.x
                 || (\is_string($groups) && substr_count($groups, '"name"'))
             ) {
-                throw new LogicException(sprintf('More than one group exists for stream "%s", delete_after_ack and delete_after_reject cannot be enabled as it risks deleting messages before all groups could consume them.', $this->stream));
+                throw new LogicException(\sprintf('More than one group exists for stream "%s", delete_after_ack and delete_after_reject cannot be enabled as it risks deleting messages before all groups could consume them.', $this->stream));
             }
         }
 
@@ -700,7 +761,7 @@
             if ($error = $redis->getLastError() ?: null) {
                 $redis->clearLastError();
             }
-            throw new TransportException($error ?? sprintf('Could not run "%s" on Redis queue.', $command));
+            throw new TransportException($error ?? \sprintf('Could not run "%s" on Redis queue.', $command));
         }
 
         return $result;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/AbstractFailedMessagesCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/AbstractFailedMessagesCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/AbstractFailedMessagesCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/AbstractFailedMessagesCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,8 +72,10 @@
         return $stamp?->getId();
     }
 
-    protected function displaySingleMessage(Envelope $envelope, SymfonyStyle $io): void
+    protected function displaySingleMessage(Envelope $envelope, SymfonyStyle $io, ?SymfonyStyle $errorIo = null): void
     {
+        $errorIo ??= $io->getErrorStyle();
+
         $io->title('Failed Message Details');
 
         /** @var SentToFailureTransportStamp|null $sentToFailureTransportStamp */
@@ -94,7 +96,7 @@
         }
 
         if (null === $sentToFailureTransportStamp) {
-            $io->warning('Message does not appear to have been sent to this transport after failing');
+            $errorIo->warning('Message does not appear to have been sent to this transport after failing');
         } else {
             $failedAt = '';
             $errorMessage = '';
@@ -126,14 +128,14 @@
         $redeliveryStamps = $envelope->all(RedeliveryStamp::class);
         $io->writeln(' Message history:');
         foreach ($redeliveryStamps as $redeliveryStamp) {
-            $io->writeln(sprintf('  * Message failed at <info>%s</info> and was redelivered', $redeliveryStamp->getRedeliveredAt()->format('Y-m-d H:i:s')));
+            $io->writeln(\sprintf('  * Message failed at <info>%s</info> and was redelivered', $redeliveryStamp->getRedeliveredAt()->format('Y-m-d H:i:s')));
         }
         $io->newLine();
 
         if ($io->isVeryVerbose()) {
             $io->title('Message:');
             if (null !== $lastMessageDecodingFailedStamp) {
-                $io->error('The message could not be decoded. See below an APPROXIMATIVE representation of the class.');
+                $errorIo->error('The message could not be decoded. See below an APPROXIMATIVE representation of the class.');
             }
             $dump = new Dumper($io, null, $this->createCloner());
             $io->writeln($dump($envelope->getMessage()));
@@ -142,7 +144,7 @@
             $io->writeln(null === $flattenException ? '(no data)' : $dump($flattenException));
         } else {
             if (null !== $lastMessageDecodingFailedStamp) {
-                $io->error('The message could not be decoded.');
+                $errorIo->error('The message could not be decoded.');
             }
             $io->writeln(' Re-run command with <info>-vv</info> to see more message & error details.');
         }
@@ -154,7 +156,7 @@
             if (1 === $receiver->getMessageCount()) {
                 $io->writeln('There is <comment>1</comment> message pending in the failure transport.');
             } else {
-                $io->writeln(sprintf('There are <comment>%d</comment> messages pending in the failure transport.', $receiver->getMessageCount()));
+                $io->writeln(\sprintf('There are <comment>%d</comment> messages pending in the failure transport.', $receiver->getMessageCount()));
             }
         }
     }
@@ -162,11 +164,11 @@
     protected function getReceiver(?string $name = null): ReceiverInterface
     {
         if (null === $name ??= $this->globalFailureReceiverName) {
-            throw new InvalidArgumentException(sprintf('No default failure transport is defined. Available transports are: "%s".', implode('", "', array_keys($this->failureTransports->getProvidedServices()))));
+            throw new InvalidArgumentException(\sprintf('No default failure transport is defined. Available transports are: "%s".', implode('", "', array_keys($this->failureTransports->getProvidedServices()))));
         }
 
         if (!$this->failureTransports->has($name)) {
-            throw new InvalidArgumentException(sprintf('The "%s" failure transport was not found. Available transports are: "%s".', $name, implode('", "', array_keys($this->failureTransports->getProvidedServices()))));
+            throw new InvalidArgumentException(\sprintf('The "%s" failure transport was not found. Available transports are: "%s".', $name, implode('", "', array_keys($this->failureTransports->getProvidedServices()))));
         }
 
         return $this->failureTransports->get($name);
@@ -179,7 +181,7 @@
         }
 
         $cloner = new VarCloner();
-        $cloner->addCasters([FlattenException::class => function (FlattenException $flattenException, array $a, Stub $stub): array {
+        $cloner->addCasters([FlattenException::class => static function (FlattenException $flattenException, array $a, Stub $stub): array {
             $stub->class = $flattenException->getClass();
 
             return [
@@ -200,9 +202,9 @@
         $failureTransportsCount = \count($failureTransports);
         if ($failureTransportsCount > 1) {
             $io->writeln([
-                sprintf('> Loading messages from the <comment>global</comment> failure transport <comment>%s</comment>.', $failureTransportName),
+                \sprintf('> Loading messages from the <comment>global</comment> failure transport <comment>%s</comment>.', $failureTransportName),
                 '> To use a different failure transport, pass <comment>--transport=</comment>.',
-                sprintf('> Available failure transports are: <comment>%s</comment>', implode(', ', $failureTransports)),
+                \sprintf('> Available failure transports are: <comment>%s</comment>', implode(', ', $failureTransports)),
                 "\n",
             ]);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,16 +23,15 @@
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\ConsoleOutputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Question\ChoiceQuestion;
+use Symfony\Component\Console\SignalRegistry\SignalRegistry;
 use Symfony\Component\Console\Style\SymfonyStyle;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\Messenger\EventListener\ResetServicesListener;
 use Symfony\Component\Messenger\EventListener\StopWorkerOnFailureLimitListener;
 use Symfony\Component\Messenger\EventListener\StopWorkerOnMemoryLimitListener;
 use Symfony\Component\Messenger\EventListener\StopWorkerOnMessageLimitListener;
-use Symfony\Component\Messenger\EventListener\StopWorkerOnTimeLimitListener;
 use Symfony\Component\Messenger\RoutableMessageBus;
 use Symfony\Component\Messenger\Worker;
 
@@ -85,45 +84,45 @@
                 new InputOption('no-reset', null, InputOption::VALUE_NONE, 'Do not reset container services after each message'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command consumes messages and dispatches them to the message bus.
+                The <info>%command.name%</info> command consumes messages and dispatches them to the message bus.
 
-    <info>php %command.full_name% <receiver-name></info>
+                    <info>php %command.full_name% <receiver-name></info>
 
-To receive from multiple transports, pass each name:
+                To receive from multiple transports, pass each name:
 
-    <info>php %command.full_name% receiver1 receiver2</info>
+                    <info>php %command.full_name% receiver1 receiver2</info>
 
-Use the --limit option to limit the number of messages received:
+                Use the --limit option to limit the number of messages received:
 
-    <info>php %command.full_name% <receiver-name> --limit=10</info>
+                    <info>php %command.full_name% <receiver-name> --limit=10</info>
 
-Use the --failure-limit option to stop the worker when the given number of failed messages is reached:
+                Use the --failure-limit option to stop the worker when the given number of failed messages is reached:
 
-    <info>php %command.full_name% <receiver-name> --failure-limit=2</info>
+                    <info>php %command.full_name% <receiver-name> --failure-limit=2</info>
 
-Use the --memory-limit option to stop the worker if it exceeds a given memory usage limit. You can use shorthand byte values [K, M or G]:
+                Use the --memory-limit option to stop the worker if it exceeds a given memory usage limit. You can use shorthand byte values [K, M or G]:
 
-    <info>php %command.full_name% <receiver-name> --memory-limit=128M</info>
+                    <info>php %command.full_name% <receiver-name> --memory-limit=128M</info>
 
-Use the --time-limit option to stop the worker when the given time limit (in seconds) is reached.
-If a message is being handled, the worker will stop after the processing is finished:
+                Use the --time-limit option to stop the worker when the given time limit (in seconds) is reached.
+                If a message is being handled, the worker will stop after the processing is finished:
 
-    <info>php %command.full_name% <receiver-name> --time-limit=3600</info>
+                    <info>php %command.full_name% <receiver-name> --time-limit=3600</info>
 
-Use the --bus option to specify the message bus to dispatch received messages
-to instead of trying to determine it automatically. This is required if the
-messages didn't originate from Messenger:
+                Use the --bus option to specify the message bus to dispatch received messages
+                to instead of trying to determine it automatically. This is required if the
+                messages didn't originate from Messenger:
 
-    <info>php %command.full_name% <receiver-name> --bus=event_bus</info>
+                    <info>php %command.full_name% <receiver-name> --bus=event_bus</info>
 
-Use the --queues option to limit a receiver to only certain queues (only supported by some receivers):
+                Use the --queues option to limit a receiver to only certain queues (only supported by some receivers):
 
-    <info>php %command.full_name% <receiver-name> --queues=fasttrack</info>
+                    <info>php %command.full_name% <receiver-name> --queues=fasttrack</info>
 
-Use the --no-reset option to prevent services resetting after each message (may lead to leaking services' state between messages):
+                Use the --no-reset option to prevent services resetting after each message (may lead to leaking services' state between messages):
 
-    <info>php %command.full_name% <receiver-name> --no-reset</info>
-EOF
+                    <info>php %command.full_name% <receiver-name> --no-reset</info>
+                EOF
             )
         ;
     }
@@ -133,7 +132,7 @@
      */
     protected function interact(InputInterface $input, OutputInterface $output)
     {
-        $io = new SymfonyStyle($input, $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output);
+        $io = new SymfonyStyle($input, $output);
 
         if ($this->receiverNames && !$input->getArgument('receivers')) {
             if (1 === \count($this->receiverNames)) {
@@ -146,7 +145,7 @@
 
             $io->writeln('Choose which receivers you want to consume messages from in order of priority.');
             if (\count($this->receiverNames) > 1) {
-                $io->writeln(sprintf('Hint: to consume from multiple, use a list of their names, e.g. <comment>%s</comment>', implode(', ', $this->receiverNames)));
+                $io->writeln(\sprintf('Hint: to consume from multiple, use a list of their names, e.g. <comment>%s</comment>', implode(', ', $this->receiverNames)));
             }
 
             $question = new ChoiceQuestion('Select receivers to consume:', $this->receiverNames, 0);
@@ -166,9 +165,9 @@
         $rateLimiters = [];
         foreach ($receiverNames = $input->getArgument('receivers') as $receiverName) {
             if (!$this->receiverLocator->has($receiverName)) {
-                $message = sprintf('The receiver "%s" does not exist.', $receiverName);
+                $message = \sprintf('The receiver "%s" does not exist.', $receiverName);
                 if ($this->receiverNames) {
-                    $message .= sprintf(' Valid receivers are: %s.', implode(', ', $this->receiverNames));
+                    $message .= \sprintf(' Valid receivers are: %s.', implode(', ', $this->receiverNames));
                 }
 
                 throw new RuntimeException($message);
@@ -187,7 +186,7 @@
         $stopsWhen = [];
         if (null !== $limit = $input->getOption('limit')) {
             if (!is_numeric($limit) || 0 >= $limit) {
-                throw new InvalidOptionException(sprintf('Option "limit" must be a positive integer, "%s" passed.', $limit));
+                throw new InvalidOptionException(\sprintf('Option "limit" must be a positive integer, "%s" passed.', $limit));
             }
 
             $stopsWhen[] = "processed {$limit} messages";
@@ -206,28 +205,28 @@
 
         if (null !== $timeLimit = $input->getOption('time-limit')) {
             if (!is_numeric($timeLimit) || 0 >= $timeLimit) {
-                throw new InvalidOptionException(sprintf('Option "time-limit" must be a positive integer, "%s" passed.', $timeLimit));
+                throw new InvalidOptionException(\sprintf('Option "time-limit" must be a positive integer, "%s" passed.', $timeLimit));
             }
 
             $stopsWhen[] = "been running for {$timeLimit}s";
-            $this->eventDispatcher->addSubscriber(new StopWorkerOnTimeLimitListener($timeLimit, $this->logger));
         }
 
         $stopsWhen[] = 'received a stop signal via the messenger:stop-workers command';
 
-        $io = new SymfonyStyle($input, $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output);
-        $io->success(sprintf('Consuming messages from transport%s "%s".', \count($receivers) > 1 ? 's' : '', implode(', ', $receiverNames)));
+        $io = new SymfonyStyle($input, $output);
+        $errorIo = $io->getErrorStyle();
+        $io->success(\sprintf('Consuming messages from transport%s "%s".', \count($receivers) > 1 ? 's' : '', implode(', ', $receiverNames)));
 
         if ($stopsWhen) {
             $last = array_pop($stopsWhen);
             $stopsWhen = ($stopsWhen ? implode(', ', $stopsWhen).' or ' : '').$last;
-            $io->comment("The worker will automatically exit once it has {$stopsWhen}.");
+            $errorIo->comment("The worker will automatically exit once it has {$stopsWhen}.");
         }
 
-        $io->comment('Quit the worker with CONTROL-C.');
+        $errorIo->comment('Quit the worker with CONTROL-C.');
 
         if (OutputInterface::VERBOSITY_VERBOSE > $output->getVerbosity()) {
-            $io->comment('Re-run the command with a -vv option to see logs about consumed messages.');
+            $errorIo->comment('Re-run the command with a -vv option to see logs about consumed messages.');
         }
 
         $bus = $input->getOption('bus') ? $this->routableBus->getMessageBus($input->getOption('bus')) : $this->routableBus;
@@ -235,6 +234,7 @@
         $this->worker = new Worker($receivers, $bus, $this->eventDispatcher, $this->logger, $rateLimiters);
         $options = [
             'sleep' => $input->getOption('sleep') * 1000000,
+            'time_limit' => null !== $timeLimit ? (int) $timeLimit : null,
         ];
         if ($queues = $input->getOption('queues')) {
             $options['queues'] = $queues;
@@ -264,7 +264,7 @@
 
     public function getSubscribedSignals(): array
     {
-        return $this->signals ?? (\extension_loaded('pcntl') ? [\SIGTERM, \SIGINT] : []);
+        return $this->signals ?? (SignalRegistry::isSupported() ? [\SIGTERM, \SIGINT] : []);
     }
 
     public function handleSignal(int $signal, int|false $previousExitCode = 0): int|false
@@ -289,7 +289,7 @@
         } elseif (str_starts_with($max, '0')) {
             $max = \intval($max, 8);
         } else {
-            $max = (int) $max;
+            $max = (float) $max;
         }
 
         switch (substr(rtrim($memoryLimit, 'b'), -1)) {
@@ -302,6 +302,6 @@
             case 'k': $max *= 1024;
         }
 
-        return $max;
+        return (int) $max;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/DebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/DebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/DebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/DebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,18 +44,18 @@
     protected function configure()
     {
         $this
-            ->addArgument('bus', InputArgument::OPTIONAL, sprintf('The bus id (one of "%s")', implode('", "', array_keys($this->mapping))))
+            ->addArgument('bus', InputArgument::OPTIONAL, \sprintf('The bus id (one of "%s")', implode('", "', array_keys($this->mapping))))
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command displays all messages that can be
-dispatched using the message buses:
+                The <info>%command.name%</info> command displays all messages that can be
+                dispatched using the message buses:
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-Or for a specific bus only:
+                Or for a specific bus only:
 
-  <info>php %command.full_name% command_bus</info>
+                  <info>php %command.full_name% command_bus</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -68,7 +68,7 @@
         $mapping = $this->mapping;
         if ($bus = $input->getArgument('bus')) {
             if (!isset($mapping[$bus])) {
-                throw new RuntimeException(sprintf('Bus "%s" does not exist. Known buses are "%s".', $bus, implode('", "', array_keys($this->mapping))));
+                throw new RuntimeException(\sprintf('Bus "%s" does not exist. Known buses are "%s".', $bus, implode('", "', array_keys($this->mapping))));
             }
             $mapping = [$bus => $mapping[$bus]];
         }
@@ -79,16 +79,16 @@
             $tableRows = [];
             foreach ($handlersByMessage as $message => $handlers) {
                 if ($description = self::getClassDescription($message)) {
-                    $tableRows[] = [sprintf('<comment>%s</>', $description)];
+                    $tableRows[] = [\sprintf('<comment>%s</>', $description)];
                 }
 
-                $tableRows[] = [sprintf('<fg=cyan>%s</fg=cyan>', $message)];
+                $tableRows[] = [\sprintf('<fg=cyan>%s</fg=cyan>', $message)];
                 foreach ($handlers as $handler) {
                     $tableRows[] = [
-                        sprintf('    handled by <info>%s</>', $handler[0]).$this->formatConditions($handler[1]),
+                        \sprintf('    handled by <info>%s</>', $handler[0]).$this->formatConditions($handler[1]),
                     ];
                     if ($handlerDescription = self::getClassDescription($handler[0])) {
-                        $tableRows[] = [sprintf('               <comment>%s</>', $handlerDescription)];
+                        $tableRows[] = [\sprintf('               <comment>%s</>', $handlerDescription)];
                     }
                 }
                 $tableRows[] = [''];
@@ -99,7 +99,7 @@
                 $io->newLine();
                 $io->table([], $tableRows);
             } else {
-                $io->warning(sprintf('No handled message found in bus "%s".', $bus));
+                $io->warning(\sprintf('No handled message found in bus "%s".', $bus));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesRemoveCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesRemoveCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesRemoveCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesRemoveCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,6 @@
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\ConsoleOutputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Style\SymfonyStyle;
 use Symfony\Component\Messenger\Transport\Receiver\ListableReceiverInterface;
@@ -35,27 +34,28 @@
                 new InputArgument('id', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, 'Specific message id(s) to remove'),
                 new InputOption('all', null, InputOption::VALUE_NONE, 'Remove all failed messages from the transport'),
                 new InputOption('force', null, InputOption::VALUE_NONE, 'Force the operation without confirmation'),
-                new InputOption('transport', null, InputOption::VALUE_OPTIONAL, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION),
+                new InputOption('transport', null, InputOption::VALUE_REQUIRED, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION),
                 new InputOption('show-messages', null, InputOption::VALUE_NONE, 'Display messages before removing it (if multiple ids are given)'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> removes given messages that are pending in the failure transport.
+                The <info>%command.name%</info> removes given messages that are pending in the failure transport.
 
-    <info>php %command.full_name% {id1} [{id2} ...]</info>
+                    <info>php %command.full_name% {id1} [{id2} ...]</info>
 
-The specific ids can be found via the messenger:failed:show command.
+                The specific ids can be found via the messenger:failed:show command.
 
-You can remove all failed messages from the failure transport by using the "--all" option:
+                You can remove all failed messages from the failure transport by using the "--all" option:
 
-    <info>php %command.full_name% --all</info>
-EOF
+                    <info>php %command.full_name% --all</info>
+                EOF
             )
         ;
     }
 
     protected function execute(InputInterface $input, OutputInterface $output): int
     {
-        $io = new SymfonyStyle($input, $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output);
+        $io = new SymfonyStyle($input, $output);
+        $errorIo = $io->getErrorStyle();
 
         $failureTransportName = $input->getOption('transport');
         if (self::DEFAULT_TRANSPORT_OPTION === $failureTransportName) {
@@ -78,19 +78,19 @@
         $shouldDisplayMessages = $input->getOption('show-messages') || 1 === $idsCount;
 
         if (!$receiver instanceof ListableReceiverInterface) {
-            throw new RuntimeException(sprintf('The "%s" receiver does not support removing specific messages.', $failureTransportName));
+            throw new RuntimeException(\sprintf('The "%s" receiver does not support removing specific messages.', $failureTransportName));
         }
 
         if ($shouldDeleteAllMessages) {
-            $this->removeAllMessages($receiver, $io, $shouldForce, $shouldDisplayMessages);
+            $this->removeAllMessages($receiver, $io, $errorIo, $shouldForce, $shouldDisplayMessages);
         } else {
-            $this->removeMessagesById($ids, $receiver, $io, $shouldForce, $shouldDisplayMessages);
+            $this->removeMessagesById($ids, $receiver, $io, $errorIo, $shouldForce, $shouldDisplayMessages);
         }
 
         return 0;
     }
 
-    private function removeMessagesById(array $ids, ListableReceiverInterface $receiver, SymfonyStyle $io, bool $shouldForce, bool $shouldDisplayMessages): void
+    private function removeMessagesById(array $ids, ListableReceiverInterface $receiver, SymfonyStyle $io, SymfonyStyle $errorIo, bool $shouldForce, bool $shouldDisplayMessages): void
     {
         foreach ($ids as $id) {
             $this->phpSerializer?->acceptPhpIncompleteClass();
@@ -101,34 +101,34 @@
             }
 
             if (null === $envelope) {
-                $io->error(sprintf('The message with id "%s" was not found.', $id));
+                $errorIo->error(\sprintf('The message with id "%s" was not found.', $id));
                 continue;
             }
 
             if ($shouldDisplayMessages) {
-                $this->displaySingleMessage($envelope, $io);
+                $this->displaySingleMessage($envelope, $io, $errorIo);
             }
 
-            if ($shouldForce || $io->confirm('Do you want to permanently remove this message?', false)) {
+            if ($shouldForce || $errorIo->confirm('Do you want to permanently remove this message?', false)) {
                 $receiver->reject($envelope);
 
-                $io->success(sprintf('Message with id %s removed.', $id));
+                $io->success(\sprintf('Message with id %s removed.', $id));
             } else {
-                $io->note(sprintf('Message with id %s not removed.', $id));
+                $errorIo->note(\sprintf('Message with id %s not removed.', $id));
             }
         }
     }
 
-    private function removeAllMessages(ListableReceiverInterface $receiver, SymfonyStyle $io, bool $shouldForce, bool $shouldDisplayMessages): void
+    private function removeAllMessages(ListableReceiverInterface $receiver, SymfonyStyle $io, SymfonyStyle $errorIo, bool $shouldForce, bool $shouldDisplayMessages): void
     {
         if (!$shouldForce) {
             if ($receiver instanceof MessageCountAwareInterface) {
-                $question = sprintf('Do you want to permanently remove all (%d) messages?', $receiver->getMessageCount());
+                $question = \sprintf('Do you want to permanently remove all (%d) messages?', $receiver->getMessageCount());
             } else {
                 $question = 'Do you want to permanently remove all failed messages?';
             }
 
-            if (!$io->confirm($question, false)) {
+            if (!$errorIo->confirm($question, false)) {
                 return;
             }
         }
@@ -136,13 +136,13 @@
         $count = 0;
         foreach ($receiver->all() as $envelope) {
             if ($shouldDisplayMessages) {
-                $this->displaySingleMessage($envelope, $io);
+                $this->displaySingleMessage($envelope, $io, $errorIo);
             }
 
             $receiver->reject($envelope);
             ++$count;
         }
 
-        $io->note(sprintf('%d messages were removed.', $count));
+        $errorIo->note(\sprintf('%d messages were removed.', $count));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,6 @@
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\ConsoleOutputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Style\SymfonyStyle;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
@@ -63,26 +62,26 @@
             ->setDefinition([
                 new InputArgument('id', InputArgument::IS_ARRAY, 'Specific message id(s) to retry'),
                 new InputOption('force', null, InputOption::VALUE_NONE, 'Force action without confirmation'),
-                new InputOption('transport', null, InputOption::VALUE_OPTIONAL, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION),
+                new InputOption('transport', null, InputOption::VALUE_REQUIRED, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> retries message in the failure transport.
+                The <info>%command.name%</info> retries message in the failure transport.
 
-    <info>php %command.full_name%</info>
+                    <info>php %command.full_name%</info>
 
-The command will interactively ask if each message should be retried
-or discarded.
+                The command will interactively ask if each message should be retried
+                or discarded.
 
-Some transports support retrying a specific message id, which comes
-from the <info>messenger:failed:show</info> command.
+                Some transports support retrying a specific message id, which comes
+                from the <info>messenger:failed:show</info> command.
 
-    <info>php %command.full_name% {id}</info>
+                    <info>php %command.full_name% {id}</info>
 
-Or pass multiple ids at once to process multiple messages:
+                Or pass multiple ids at once to process multiple messages:
 
-<info>php %command.full_name% {id1} {id2} {id3}</info>
+                <info>php %command.full_name% {id1} {id2} {id3}</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -91,25 +90,26 @@
     {
         $this->eventDispatcher->addSubscriber(new StopWorkerOnMessageLimitListener(1));
 
-        $io = new SymfonyStyle($input, $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output);
-        $io->comment('Quit this command with CONTROL-C.');
+        $io = new SymfonyStyle($input, $output);
+        $errorIo = $io->getErrorStyle();
+        $errorIo->comment('Quit this command with CONTROL-C.');
         if (!$output->isVeryVerbose()) {
-            $io->comment('Re-run the command with a -vv option to see logs about consumed messages.');
+            $errorIo->comment('Re-run the command with a -vv option to see logs about consumed messages.');
         }
 
         $failureTransportName = $input->getOption('transport');
         if (self::DEFAULT_TRANSPORT_OPTION === $failureTransportName) {
-            $this->printWarningAvailableFailureTransports($io, $this->getGlobalFailureReceiverName());
+            $this->printWarningAvailableFailureTransports($errorIo, $this->getGlobalFailureReceiverName());
         }
         if ('' === $failureTransportName || null === $failureTransportName) {
-            $failureTransportName = $this->interactiveChooseFailureTransport($io);
+            $failureTransportName = $this->interactiveChooseFailureTransport($errorIo);
         }
         $failureTransportName = self::DEFAULT_TRANSPORT_OPTION === $failureTransportName ? $this->getGlobalFailureReceiverName() : $failureTransportName;
 
         $receiver = $this->getReceiver($failureTransportName);
         $this->printPendingMessagesMessage($receiver, $io);
 
-        $io->writeln(sprintf('To retry all the messages, run <comment>messenger:consume %s</comment>', $failureTransportName));
+        $io->writeln(\sprintf('To retry all the messages, run <comment>messenger:consume %s</comment>', $failureTransportName));
 
         $shouldForce = $input->getOption('force');
         $ids = $input->getArgument('id');
@@ -118,12 +118,12 @@
                 throw new RuntimeException('Message id must be passed when in non-interactive mode.');
             }
 
-            $this->runInteractive($failureTransportName, $io, $shouldForce);
+            $this->runInteractive($failureTransportName, $io, $errorIo, $shouldForce);
 
             return 0;
         }
 
-        $this->retrySpecificIds($failureTransportName, $ids, $io, $shouldForce);
+        $this->retrySpecificIds($failureTransportName, $ids, $io, $errorIo, $shouldForce);
 
         if (!$this->shouldStop) {
             $io->success('All done!');
@@ -151,7 +151,7 @@
         return $this->forceExit ? 0 : false;
     }
 
-    private function runInteractive(string $failureTransportName, SymfonyStyle $io, bool $shouldForce): void
+    private function runInteractive(string $failureTransportName, SymfonyStyle $io, SymfonyStyle $errorIo, bool $shouldForce): void
     {
         $receiver = $this->failureTransports->get($failureTransportName);
         $count = 0;
@@ -178,11 +178,11 @@
                     break;
                 }
 
-                $this->retrySpecificEnvelopes($envelopes, $failureTransportName, $io, $shouldForce);
+                $this->retrySpecificEnvelopes($envelopes, $failureTransportName, $io, $errorIo, $shouldForce);
             }
         } else {
             // get() and ask messages one-by-one
-            $count = $this->runWorker($failureTransportName, $receiver, $io, $shouldForce);
+            $count = $this->runWorker($failureTransportName, $receiver, $io, $errorIo, $shouldForce);
         }
 
         // avoid success message if nothing was processed
@@ -191,22 +191,22 @@
         }
     }
 
-    private function runWorker(string $failureTransportName, ReceiverInterface $receiver, SymfonyStyle $io, bool $shouldForce): int
+    private function runWorker(string $failureTransportName, ReceiverInterface $receiver, SymfonyStyle $io, SymfonyStyle $errorIo, bool $shouldForce): int
     {
         $count = 0;
-        $listener = function (WorkerMessageReceivedEvent $messageReceivedEvent) use ($io, $receiver, $shouldForce, &$count) {
+        $listener = function (WorkerMessageReceivedEvent $messageReceivedEvent) use ($io, $errorIo, $receiver, $shouldForce, &$count) {
             ++$count;
             $envelope = $messageReceivedEvent->getEnvelope();
 
-            $this->displaySingleMessage($envelope, $io);
+            $this->displaySingleMessage($envelope, $io, $errorIo);
 
             if ($envelope->last(MessageDecodingFailedStamp::class)) {
-                throw new \RuntimeException(sprintf('The message with id "%s" could not decoded, it can only be shown or removed.', $this->getMessageId($envelope) ?? '?'));
+                throw new \RuntimeException(\sprintf('The message with id "%s" could not decoded, it can only be shown or removed.', $this->getMessageId($envelope) ?? '?'));
             }
 
             $this->forceExit = true;
             try {
-                $shouldHandle = $shouldForce || 'retry' === $io->choice('Please select an action', ['retry', 'delete'], 'retry');
+                $shouldHandle = $shouldForce || 'retry' === $errorIo->choice('Please select an action', ['retry', 'delete'], 'retry');
             } finally {
                 $this->forceExit = false;
             }
@@ -237,12 +237,12 @@
         return $count;
     }
 
-    private function retrySpecificIds(string $failureTransportName, array $ids, SymfonyStyle $io, bool $shouldForce): void
+    private function retrySpecificIds(string $failureTransportName, array $ids, SymfonyStyle $io, SymfonyStyle $errorIo, bool $shouldForce): void
     {
         $receiver = $this->getReceiver($failureTransportName);
 
         if (!$receiver instanceof ListableReceiverInterface) {
-            throw new RuntimeException(sprintf('The "%s" receiver does not support retrying messages by id.', $failureTransportName));
+            throw new RuntimeException(\sprintf('The "%s" receiver does not support retrying messages by id.', $failureTransportName));
         }
 
         foreach ($ids as $id) {
@@ -253,11 +253,11 @@
                 $this->phpSerializer?->rejectPhpIncompleteClass();
             }
             if (null === $envelope) {
-                throw new RuntimeException(sprintf('The message "%s" was not found.', $id));
+                throw new RuntimeException(\sprintf('The message "%s" was not found.', $id));
             }
 
             $singleReceiver = new SingleMessageReceiver($receiver, $envelope);
-            $this->runWorker($failureTransportName, $singleReceiver, $io, $shouldForce);
+            $this->runWorker($failureTransportName, $singleReceiver, $io, $errorIo, $shouldForce);
 
             if ($this->shouldStop) {
                 break;
@@ -265,13 +265,13 @@
         }
     }
 
-    private function retrySpecificEnvelopes(array $envelopes, string $failureTransportName, SymfonyStyle $io, bool $shouldForce): void
+    private function retrySpecificEnvelopes(array $envelopes, string $failureTransportName, SymfonyStyle $io, SymfonyStyle $errorIo, bool $shouldForce): void
     {
         $receiver = $this->getReceiver($failureTransportName);
 
         foreach ($envelopes as $envelope) {
             $singleReceiver = new SingleMessageReceiver($receiver, $envelope);
-            $this->runWorker($failureTransportName, $singleReceiver, $io, $shouldForce);
+            $this->runWorker($failureTransportName, $singleReceiver, $io, $errorIo, $shouldForce);
 
             if ($this->shouldStop) {
                 break;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,6 @@
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\ConsoleOutputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Style\SymfonyStyle;
 use Symfony\Component\Messenger\Stamp\ErrorDetailsStamp;
@@ -35,33 +34,34 @@
             ->setDefinition([
                 new InputArgument('id', InputArgument::OPTIONAL, 'Specific message id to show'),
                 new InputOption('max', null, InputOption::VALUE_REQUIRED, 'Maximum number of messages to list', 50),
-                new InputOption('transport', null, InputOption::VALUE_OPTIONAL, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION),
+                new InputOption('transport', null, InputOption::VALUE_REQUIRED, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION),
                 new InputOption('stats', null, InputOption::VALUE_NONE, 'Display the message count by class'),
                 new InputOption('class-filter', null, InputOption::VALUE_REQUIRED, 'Filter by a specific class name'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> shows message that are pending in the failure transport.
+                The <info>%command.name%</info> shows message that are pending in the failure transport.
 
-    <info>php %command.full_name%</info>
+                    <info>php %command.full_name%</info>
 
-Or look at a specific message by its id:
+                Or look at a specific message by its id:
 
-    <info>php %command.full_name% {id}</info>
-EOF
+                    <info>php %command.full_name% {id}</info>
+                EOF
             )
         ;
     }
 
     protected function execute(InputInterface $input, OutputInterface $output): int
     {
-        $io = new SymfonyStyle($input, $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output);
+        $io = new SymfonyStyle($input, $output);
+        $errorIo = $io->getErrorStyle();
 
         $failureTransportName = $input->getOption('transport');
         if (self::DEFAULT_TRANSPORT_OPTION === $failureTransportName) {
-            $this->printWarningAvailableFailureTransports($io, $this->getGlobalFailureReceiverName());
+            $this->printWarningAvailableFailureTransports($errorIo, $this->getGlobalFailureReceiverName());
         }
         if ('' === $failureTransportName || null === $failureTransportName) {
-            $failureTransportName = $this->interactiveChooseFailureTransport($io);
+            $failureTransportName = $this->interactiveChooseFailureTransport($errorIo);
         }
         $failureTransportName = self::DEFAULT_TRANSPORT_OPTION === $failureTransportName ? $this->getGlobalFailureReceiverName() : $failureTransportName;
 
@@ -70,21 +70,22 @@
         $this->printPendingMessagesMessage($receiver, $io);
 
         if (!$receiver instanceof ListableReceiverInterface) {
-            throw new RuntimeException(sprintf('The "%s" receiver does not support listing or showing specific messages.', $failureTransportName));
+            throw new RuntimeException(\sprintf('The "%s" receiver does not support listing or showing specific messages.', $failureTransportName));
         }
 
         if ($input->getOption('stats')) {
-            $this->listMessagesPerClass($failureTransportName, $io, $input->getOption('max'));
+            $max = $input->hasParameterOption(['--max'], true) ? $input->getOption('max') : null;
+            $this->listMessagesPerClass($failureTransportName, $io, $max);
         } elseif (null === $id = $input->getArgument('id')) {
-            $this->listMessages($failureTransportName, $io, $input->getOption('max'), $input->getOption('class-filter'));
+            $this->listMessages($failureTransportName, $io, $errorIo, $input->getOption('max'), $input->getOption('class-filter'));
         } else {
-            $this->showMessage($failureTransportName, $id, $io);
+            $this->showMessage($failureTransportName, $id, $io, $errorIo);
         }
 
         return 0;
     }
 
-    private function listMessages(?string $failedTransportName, SymfonyStyle $io, int $max, ?string $classFilter = null): void
+    private function listMessages(?string $failedTransportName, SymfonyStyle $io, SymfonyStyle $errorIo, int $max, ?string $classFilter = null): void
     {
         /** @var ListableReceiverInterface $receiver */
         $receiver = $this->getReceiver($failedTransportName);
@@ -93,7 +94,7 @@
         $rows = [];
 
         if ($classFilter) {
-            $io->comment(sprintf('Displaying only \'%s\' messages', $classFilter));
+            $errorIo->comment(\sprintf('Displaying only \'%s\' messages', $classFilter));
         }
 
         $this->phpSerializer?->acceptPhpIncompleteClass();
@@ -132,15 +133,15 @@
         $io->table(['Id', 'Class', 'Failed at', 'Error'], $rows);
 
         if ($rowsCount === $max) {
-            $io->comment(sprintf('Showing first %d messages.', $max));
+            $errorIo->comment(\sprintf('Showing first %d messages.', $max));
         } elseif ($classFilter) {
-            $io->comment(sprintf('Showing %d message(s).', $rowsCount));
+            $errorIo->comment(\sprintf('Showing %d message(s).', $rowsCount));
         }
 
-        $io->comment(sprintf('Run <comment>messenger:failed:show {id} --transport=%s -vv</comment> to see message details.', $failedTransportName));
+        $errorIo->comment(\sprintf('Run <comment>messenger:failed:show {id} --transport=%s -vv</comment> to see message details.', $failedTransportName));
     }
 
-    private function listMessagesPerClass(?string $failedTransportName, SymfonyStyle $io, int $max): void
+    private function listMessagesPerClass(?string $failedTransportName, SymfonyStyle $io, ?int $max): void
     {
         /** @var ListableReceiverInterface $receiver */
         $receiver = $this->getReceiver($failedTransportName);
@@ -172,7 +173,7 @@
         $io->table(['Class', 'Count'], $countPerClass);
     }
 
-    private function showMessage(?string $failedTransportName, string $id, SymfonyStyle $io): void
+    private function showMessage(?string $failedTransportName, string $id, SymfonyStyle $io, SymfonyStyle $errorIo): void
     {
         /** @var ListableReceiverInterface $receiver */
         $receiver = $this->getReceiver($failedTransportName);
@@ -183,15 +184,15 @@
             $this->phpSerializer?->rejectPhpIncompleteClass();
         }
         if (null === $envelope) {
-            throw new RuntimeException(sprintf('The message "%s" was not found.', $id));
+            throw new RuntimeException(\sprintf('The message "%s" was not found.', $id));
         }
 
-        $this->displaySingleMessage($envelope, $io);
+        $this->displaySingleMessage($envelope, $io, $errorIo);
 
         $io->writeln([
             '',
-            sprintf(' Run <comment>messenger:failed:retry %s --transport=%s</comment> to retry this message.', $id, $failedTransportName),
-            sprintf(' Run <comment>messenger:failed:remove %s --transport=%s</comment> to delete it.', $id, $failedTransportName),
+            \sprintf(' Run <comment>messenger:failed:retry %s --transport=%s</comment> to retry this message.', $id, $failedTransportName),
+            \sprintf(' Run <comment>messenger:failed:remove %s --transport=%s</comment> to delete it.', $id, $failedTransportName),
         ]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/SetupTransportsCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/SetupTransportsCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/SetupTransportsCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/SetupTransportsCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,14 +47,14 @@
         $this
             ->addArgument('transport', InputArgument::OPTIONAL, 'Name of the transport to setup', null)
             ->setHelp(<<<EOF
-The <info>%command.name%</info> command setups the transports:
+                The <info>%command.name%</info> command setups the transports:
 
-    <info>php %command.full_name%</info>
+                    <info>php %command.full_name%</info>
 
-Or a specific transport only:
+                Or a specific transport only:
 
-    <info>php %command.full_name% <transport></info>
-EOF
+                    <info>php %command.full_name% <transport></info>
+                EOF
             )
         ;
     }
@@ -67,7 +67,7 @@
         // do we want to set up only one transport?
         if ($transport = $input->getArgument('transport')) {
             if (!$this->transportLocator->has($transport)) {
-                throw new \RuntimeException(sprintf('The "%s" transport does not exist.', $transport));
+                throw new \RuntimeException(\sprintf('The "%s" transport does not exist.', $transport));
             }
             $transportNames = [$transport];
         }
@@ -75,15 +75,15 @@
         foreach ($transportNames as $id => $transportName) {
             $transport = $this->transportLocator->get($transportName);
             if (!$transport instanceof SetupableTransportInterface) {
-                $io->note(sprintf('The "%s" transport does not support setup.', $transportName));
+                $io->note(\sprintf('The "%s" transport does not support setup.', $transportName));
                 continue;
             }
 
             try {
                 $transport->setup();
-                $io->success(sprintf('The "%s" transport was set up successfully.', $transportName));
+                $io->success(\sprintf('The "%s" transport was set up successfully.', $transportName));
             } catch (\Exception $e) {
-                throw new \RuntimeException(sprintf('An error occurred while setting up the "%s" transport: ', $transportName).$e->getMessage(), 0, $e);
+                throw new \RuntimeException(\sprintf('An error occurred while setting up the "%s" transport: ', $transportName).$e->getMessage(), 0, $e);
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/StatsCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/StatsCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/StatsCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/StatsCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,6 @@
 use Symfony\Component\Console\Command\Command;
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\ConsoleOutputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Style\SymfonyStyle;
 use Symfony\Component\Messenger\Transport\Receiver\MessageCountAwareInterface;
@@ -46,21 +45,22 @@
         $this
             ->addArgument('transport_names', InputArgument::IS_ARRAY | InputArgument::OPTIONAL, 'List of transports\' names')
             ->setHelp(<<<EOF
-The <info>%command.name%</info> command counts the messages for all the transports:
+                The <info>%command.name%</info> command counts the messages for all the transports:
 
-    <info>php %command.full_name%</info>
+                    <info>php %command.full_name%</info>
 
-Or specific transports only:
+                Or specific transports only:
 
-    <info>php %command.full_name% <transportNames></info>
-EOF
+                    <info>php %command.full_name% <transportNames></info>
+                EOF
             )
         ;
     }
 
     protected function execute(InputInterface $input, OutputInterface $output): int
     {
-        $io = new SymfonyStyle($input, $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output);
+        $io = new SymfonyStyle($input, $output);
+        $errorIo = $io->getErrorStyle();
 
         $transportNames = $this->transportNames;
         if ($input->getArgument('transport_names')) {
@@ -71,7 +71,7 @@
         $uncountableTransports = [];
         foreach ($transportNames as $transportName) {
             if (!$this->transportLocator->has($transportName)) {
-                $io->warning(sprintf('The "%s" transport does not exist.', $transportName));
+                $errorIo->warning(\sprintf('The "%s" transport does not exist.', $transportName));
 
                 continue;
             }
@@ -87,7 +87,7 @@
         $io->table(['Transport', 'Count'], $outputTable);
 
         if ($uncountableTransports) {
-            $io->note(sprintf('Unable to get message count for the following transports: "%s".', implode('", "', $uncountableTransports)));
+            $errorIo->note(\sprintf('Unable to get message count for the following transports: "%s".', implode('", "', $uncountableTransports)));
         }
 
         return 0;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/StopWorkersCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/StopWorkersCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Command/StopWorkersCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Command/StopWorkersCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,6 @@
 use Symfony\Component\Console\Attribute\AsCommand;
 use Symfony\Component\Console\Command\Command;
 use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\ConsoleOutputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Style\SymfonyStyle;
 use Symfony\Component\Messenger\EventListener\StopWorkerOnRestartSignalListener;
@@ -40,21 +39,21 @@
         $this
             ->setDefinition([])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command sends a signal to stop any <info>messenger:consume</info> processes that are running.
+                The <info>%command.name%</info> command sends a signal to stop any <info>messenger:consume</info> processes that are running.
 
-    <info>php %command.full_name%</info>
+                    <info>php %command.full_name%</info>
 
-Each worker command will finish the message they are currently processing
-and then exit. Worker commands are *not* automatically restarted: that
-should be handled by a process control system.
-EOF
+                Each worker command will finish the message they are currently processing
+                and then exit. Worker commands are *not* automatically restarted: that
+                should be handled by a process control system.
+                EOF
             )
         ;
     }
 
     protected function execute(InputInterface $input, OutputInterface $output): int
     {
-        $io = new SymfonyStyle($input, $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output);
+        $io = new SymfonyStyle($input, $output);
 
         $cacheItem = $this->restartSignalCachePool->getItem(StopWorkerOnRestartSignalListener::RESTART_REQUESTED_TIMESTAMP_KEY);
         $cacheItem->set(microtime(true));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/DataCollector/MessengerDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/DataCollector/MessengerDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/DataCollector/MessengerDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/DataCollector/MessengerDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
         }
 
         // Order by call time
-        usort($messages, fn ($a, $b) => $a[1] <=> $b[1]);
+        usort($messages, static fn ($a, $b) => $a[1] <=> $b[1]);
 
         // Keep the messages clones only
         $this->data['messages'] = array_column($messages, 0);
@@ -122,7 +122,7 @@
             return $this->data['messages'];
         }
 
-        return array_filter($this->data['messages'], fn ($message) => $bus === $message['bus']);
+        return array_filter($this->data['messages'], static fn ($message) => $bus === $message['bus']);
     }
 
     public function getBuses(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,14 +67,14 @@
         foreach ($container->findTaggedServiceIds('messenger.message_handler', true) as $serviceId => $tags) {
             foreach ($tags as $tag) {
                 if (isset($tag['bus']) && !\in_array($tag['bus'], $busIds, true)) {
-                    throw new RuntimeException(sprintf('Invalid handler service "%s": bus "%s" specified on the tag "messenger.message_handler" does not exist (known ones are: "%s").', $serviceId, $tag['bus'], implode('", "', $busIds)));
+                    throw new RuntimeException(\sprintf('Invalid handler service "%s": bus "%s" specified on the tag "messenger.message_handler" does not exist (known ones are: "%s").', $serviceId, $tag['bus'], implode('", "', $busIds)));
                 }
 
                 $className = $this->getServiceClass($container, $serviceId);
                 $r = $container->getReflectionClass($className);
 
                 if (null === $r) {
-                    throw new RuntimeException(sprintf('Invalid service "%s": class "%s" does not exist.', $serviceId, $className));
+                    throw new RuntimeException(\sprintf('Invalid service "%s": class "%s" does not exist.', $serviceId, $className));
                 }
 
                 if (isset($tag['handles'])) {
@@ -94,7 +94,7 @@
                             $message = $options;
                             $options = [];
                         } else {
-                            throw new RuntimeException(sprintf('The handler configuration needs to return an array of messages or an associated array of message and configuration. Found value of type "%s" at position "%d" for service "%s".', get_debug_type($options), $message, $serviceId));
+                            throw new RuntimeException(\sprintf('The handler configuration needs to return an array of messages or an associated array of message and configuration. Found value of type "%s" at position "%d" for service "%s".', get_debug_type($options), $message, $serviceId));
                         }
                     }
 
@@ -112,9 +112,9 @@
                         if (!\in_array($options['bus'], $busIds)) {
                             // @deprecated since Symfony 6.2, in 7.0 change to:
                             // $messageLocation = isset($tag['handles']) ? 'declared in your tag attribute "handles"' : sprintf('used as argument type in method "%s::%s()"', $r->getName(), $method);
-                            $messageLocation = isset($tag['handles']) ? 'declared in your tag attribute "handles"' : ($r->implementsInterface(MessageSubscriberInterface::class) ? sprintf('returned by method "%s::getHandledMessages()"', $r->getName()) : sprintf('used as argument type in method "%s::%s()"', $r->getName(), $method));
+                            $messageLocation = isset($tag['handles']) ? 'declared in your tag attribute "handles"' : ($r->implementsInterface(MessageSubscriberInterface::class) ? \sprintf('returned by method "%s::getHandledMessages()"', $r->getName()) : \sprintf('used as argument type in method "%s::%s()"', $r->getName(), $method));
 
-                            throw new RuntimeException(sprintf('Invalid configuration '.$messageLocation.' for message "%s": bus "%s" does not exist.', $message, $options['bus']));
+                            throw new RuntimeException(\sprintf('Invalid configuration '.$messageLocation.' for message "%s": bus "%s" does not exist.', $message, $options['bus']));
                         }
 
                         $buses = [$options['bus']];
@@ -123,13 +123,13 @@
                     if ('*' !== $message && !class_exists($message) && !interface_exists($message, false)) {
                         // @deprecated since Symfony 6.2, in 7.0 change to:
                         // $messageLocation = isset($tag['handles']) ? 'declared in your tag attribute "handles"' : sprintf('used as argument type in method "%s::%s()"', $r->getName(), $method);
-                        $messageLocation = isset($tag['handles']) ? 'declared in your tag attribute "handles"' : ($r->implementsInterface(MessageSubscriberInterface::class) ? sprintf('returned by method "%s::getHandledMessages()"', $r->getName()) : sprintf('used as argument type in method "%s::%s()"', $r->getName(), $method));
+                        $messageLocation = isset($tag['handles']) ? 'declared in your tag attribute "handles"' : ($r->implementsInterface(MessageSubscriberInterface::class) ? \sprintf('returned by method "%s::getHandledMessages()"', $r->getName()) : \sprintf('used as argument type in method "%s::%s()"', $r->getName(), $method));
 
-                        throw new RuntimeException(sprintf('Invalid handler service "%s": class or interface "%s" '.$messageLocation.' not found.', $serviceId, $message));
+                        throw new RuntimeException(\sprintf('Invalid handler service "%s": class or interface "%s" '.$messageLocation.' not found.', $serviceId, $message));
                     }
 
                     if (!$r->hasMethod($method)) {
-                        throw new RuntimeException(sprintf('Invalid handler service "%s": method "%s::%s()" does not exist.', $serviceId, $r->getName(), $method));
+                        throw new RuntimeException(\sprintf('Invalid handler service "%s": method "%s::%s()" does not exist.', $serviceId, $r->getName(), $method));
                     }
 
                     if ('__invoke' !== $method || '' !== $fromTransport) {
@@ -148,7 +148,7 @@
                 }
 
                 if (null === $message) {
-                    throw new RuntimeException(sprintf('Invalid handler service "%s": method "%s::getHandledMessages()" must return one or more messages.', $serviceId, $r->getName()));
+                    throw new RuntimeException(\sprintf('Invalid handler service "%s": method "%s::getHandledMessages()" must return one or more messages.', $serviceId, $r->getName()));
                 }
             }
         }
@@ -217,11 +217,11 @@
         try {
             $method = $handlerClass->getMethod($methodName);
         } catch (\ReflectionException) {
-            throw new RuntimeException(sprintf('Invalid handler service "%s": class "%s" must have an "%s()" method.', $serviceId, $handlerClass->getName(), $methodName));
+            throw new RuntimeException(\sprintf('Invalid handler service "%s": class "%s" must have an "%s()" method.', $serviceId, $handlerClass->getName(), $methodName));
         }
 
         if (0 === $method->getNumberOfRequiredParameters()) {
-            throw new RuntimeException(sprintf('Invalid handler service "%s": method "%s::%s()" requires at least one argument, first one being the message it handles.', $serviceId, $handlerClass->getName(), $methodName));
+            throw new RuntimeException(\sprintf('Invalid handler service "%s": method "%s::%s()" requires at least one argument, first one being the message it handles.', $serviceId, $handlerClass->getName(), $methodName));
         }
 
         $parameters = $method->getParameters();
@@ -230,7 +230,7 @@
         $type = $parameters[0]->getType();
 
         if (!$type) {
-            throw new RuntimeException(sprintf('Invalid handler service "%s": argument "$%s" of method "%s::%s()" must have a type-hint corresponding to the message class it handles.', $serviceId, $parameters[0]->getName(), $handlerClass->getName(), $methodName));
+            throw new RuntimeException(\sprintf('Invalid handler service "%s": argument "$%s" of method "%s::%s()" must have a type-hint corresponding to the message class it handles.', $serviceId, $parameters[0]->getName(), $handlerClass->getName(), $methodName));
         }
 
         if ($type instanceof \ReflectionUnionType) {
@@ -248,11 +248,11 @@
                 return ('__invoke' === $methodName) ? $types : array_fill_keys($types, $methodName);
             }
 
-            throw new RuntimeException(sprintf('Invalid handler service "%s": type-hint of argument "$%s" in method "%s::__invoke()" must be a class , "%s" given.', $serviceId, $parameters[0]->getName(), $handlerClass->getName(), implode('|', $invalidTypes)));
+            throw new RuntimeException(\sprintf('Invalid handler service "%s": type-hint of argument "$%s" in method "%s::__invoke()" must be a class , "%s" given.', $serviceId, $parameters[0]->getName(), $handlerClass->getName(), implode('|', $invalidTypes)));
         }
 
         if ($type->isBuiltin()) {
-            throw new RuntimeException(sprintf('Invalid handler service "%s": type-hint of argument "$%s" in method "%s::%s()" must be a class , "%s" given.', $serviceId, $parameters[0]->getName(), $handlerClass->getName(), $methodName, $type instanceof \ReflectionNamedType ? $type->getName() : (string) $type));
+            throw new RuntimeException(\sprintf('Invalid handler service "%s": type-hint of argument "$%s" in method "%s::%s()" must be a class , "%s" given.', $serviceId, $parameters[0]->getName(), $handlerClass->getName(), $methodName, $type instanceof \ReflectionNamedType ? $type->getName() : (string) $type));
         }
 
         return ('__invoke' === $methodName) ? [$type->getName()] : [$type->getName() => $methodName];
@@ -278,7 +278,7 @@
         foreach ($container->findTaggedServiceIds('messenger.receiver') as $id => $tags) {
             $receiverClass = $this->getServiceClass($container, $id);
             if (!is_subclass_of($receiverClass, ReceiverInterface::class)) {
-                throw new RuntimeException(sprintf('Invalid receiver "%s": class "%s" must implement interface "%s".', $id, $receiverClass, ReceiverInterface::class));
+                throw new RuntimeException(\sprintf('Invalid receiver "%s": class "%s" must implement interface "%s".', $id, $receiverClass, ReceiverInterface::class));
             }
 
             $receiverMapping[$id] = new Reference($id);
@@ -290,7 +290,7 @@
                         $failureTransportsMap[$tag['alias']] = $receiverMapping[$id];
                     }
                 }
-                if (!isset($tag['is_consumable']) || $tag['is_consumable'] !== false) {
+                if (!isset($tag['is_consumable']) || false !== $tag['is_consumable']) {
                     $consumableReceiverNames[] = $tag['alias'] ?? $id;
                 }
             }
@@ -374,7 +374,7 @@
             }
 
             if (!$container->has($messengerMiddlewareId)) {
-                throw new RuntimeException(sprintf('Invalid middleware: service "%s" not found.', $id));
+                throw new RuntimeException(\sprintf('Invalid middleware: service "%s" not found.', $id));
             }
 
             if ($container->findDefinition($messengerMiddlewareId)->isAbstract()) {
@@ -385,7 +385,7 @@
                 }
                 $container->setDefinition($messengerMiddlewareId, $childDefinition);
             } elseif ($arguments) {
-                throw new RuntimeException(sprintf('Invalid middleware factory "%s": a middleware factory must be an abstract definition.', $id));
+                throw new RuntimeException(\sprintf('Invalid middleware factory "%s": a middleware factory must be an abstract definition.', $id));
             }
 
             $middlewareReferences[$messengerMiddlewareId] = new Reference($messengerMiddlewareId);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/EventListener/SendFailedMessageForRetryListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/EventListener/SendFailedMessageForRetryListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/EventListener/SendFailedMessageForRetryListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/EventListener/SendFailedMessageForRetryListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -165,6 +165,6 @@
             return $this->sendersLocator->get($alias);
         }
 
-        throw new RuntimeException(sprintf('Could not find sender "%s" based on the same receiver to send the failed message to for retry.', $alias));
+        throw new RuntimeException(\sprintf('Could not find sender "%s" based on the same receiver to send the failed message to for retry.', $alias));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/EventListener/SendFailedMessageToFailureTransportListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/EventListener/SendFailedMessageToFailureTransportListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/EventListener/SendFailedMessageToFailureTransportListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/EventListener/SendFailedMessageToFailureTransportListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,13 +26,11 @@
  */
 class SendFailedMessageToFailureTransportListener implements EventSubscriberInterface
 {
-    private ContainerInterface $failureSenders;
-    private ?LoggerInterface $logger;
-
-    public function __construct(ContainerInterface $failureSenders, ?LoggerInterface $logger = null)
-    {
-        $this->failureSenders = $failureSenders;
-        $this->logger = $logger;
+    public function __construct(
+        private ContainerInterface $failureSenders,
+        private ?LoggerInterface $logger = null,
+        private array $failureTransportsByName = [],
+    ) {
     }
 
     /**
@@ -52,8 +50,13 @@
 
         $envelope = $event->getEnvelope();
 
-        // avoid re-sending to the failed sender
-        if (null !== $envelope->last(SentToFailureTransportStamp::class)) {
+        // avoid re-sending to the failed sender: when the envelope has already been marked as sent
+        // to the failure transport of the current receiver (either by a previous run or manually
+        // from a subscriber that wants to opt out of the failure transport)
+        if (($stamp = $envelope->last(SentToFailureTransportStamp::class)) && $stamp->getOriginalReceiverName() === $event->getReceiverName()) {
+            return;
+        }
+        if (($this->failureTransportsByName[$event->getReceiverName()] ?? null) === $event->getReceiverName()) {
             return;
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Exception/DelayedMessageHandlingException.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Exception/DelayedMessageHandlingException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Exception/DelayedMessageHandlingException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Exception/DelayedMessageHandlingException.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,14 +31,14 @@
         $this->envelope = $envelope;
 
         $exceptionMessages = implode(", \n", array_map(
-            fn (\Throwable $e) => $e::class.': '.$e->getMessage(),
+            static fn (\Throwable $e) => $e::class.': '.$e->getMessage(),
             $exceptions
         ));
 
         if (1 === \count($exceptions)) {
-            $message = sprintf("A delayed message handler threw an exception: \n\n%s", $exceptionMessages);
+            $message = \sprintf("A delayed message handler threw an exception: \n\n%s", $exceptionMessages);
         } else {
-            $message = sprintf("Some delayed message handlers threw an exception: \n\n%s", $exceptionMessages);
+            $message = \sprintf("Some delayed message handlers threw an exception: \n\n%s", $exceptionMessages);
         }
 
         $this->exceptions = $exceptions;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Exception/HandlerFailedException.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Exception/HandlerFailedException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Exception/HandlerFailedException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Exception/HandlerFailedException.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,12 +26,12 @@
     {
         $firstFailure = current($exceptions);
 
-        $message = sprintf('Handling "%s" failed: ', $envelope->getMessage()::class);
+        $message = \sprintf('Handling "%s" failed: ', $envelope->getMessage()::class);
 
         parent::__construct(
             $message.(1 === \count($exceptions)
                 ? $firstFailure->getMessage()
-                : sprintf('%d handlers failed. First failure is: %s', \count($exceptions), $firstFailure->getMessage())
+                : \sprintf('%d handlers failed. First failure is: %s', \count($exceptions), $firstFailure->getMessage())
             ),
             (int) $firstFailure->getCode(),
             $firstFailure
@@ -68,7 +68,7 @@
         return array_values(
             array_filter(
                 $this->exceptions,
-                fn ($exception) => is_a($exception, $exceptionClassName)
+                static fn ($exception) => is_a($exception, $exceptionClassName)
             )
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Exception/ValidationFailedException.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Exception/ValidationFailedException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Exception/ValidationFailedException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Exception/ValidationFailedException.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         $this->violations = $violations;
         $this->envelope = $envelope;
 
-        parent::__construct(sprintf('Message of type "%s" failed validation.', $this->violatingMessage::class));
+        parent::__construct(\sprintf('Message of type "%s" failed validation.', $this->violatingMessage::class));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Handler/Acknowledger.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Handler/Acknowledger.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Handler/Acknowledger.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Handler/Acknowledger.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 {
     private string $handlerClass;
     private ?\Closure $ack;
-    private ?\Throwable $error = null;
+    private \Throwable|false|null $error = null;
     private mixed $result = null;
 
     /**
@@ -47,7 +47,7 @@
 
     public function getError(): ?\Throwable
     {
-        return $this->error;
+        return $this->error ?: null;
     }
 
     public function getResult(): mixed
@@ -63,18 +63,18 @@
     public function __destruct()
     {
         if (null !== $this->ack) {
-            throw new LogicException(sprintf('The acknowledger was not called by the "%s" batch handler.', $this->handlerClass));
+            throw new LogicException(\sprintf('The acknowledger was not called by the "%s" batch handler.', $this->handlerClass));
         }
     }
 
     private function doAck(?\Throwable $e = null, mixed $result = null): void
     {
-        if (!$ack = $this->ack) {
-            throw new LogicException(sprintf('The acknowledger cannot be called twice by the "%s" batch handler.', $this->handlerClass));
+        if (!($ack = $this->ack) || (null !== $this->error && (false !== $this->error || null === $e))) {
+            throw new LogicException(\sprintf('The acknowledger cannot be called twice by the "%s" batch handler.', $this->handlerClass));
         }
-        $this->ack = null;
-        $this->error = $e;
+        $this->error = $e ?: false;
         $this->result = $result;
         $ack($e, $result);
+        $this->ack = null;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Handler/BatchHandlerInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Handler/BatchHandlerInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Handler/BatchHandlerInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Handler/BatchHandlerInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,3 +32,5 @@
      */
     public function flush(bool $force): void;
 }
+
+// @php-cs-fixer-ignore no_superfluous_phpdoc_tags As long as `__invoke` method is commented out
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/HandleTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/HandleTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/HandleTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/HandleTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
     private function handle(object $message): mixed
     {
         if (!isset($this->messageBus)) {
-            throw new LogicException(sprintf('You must provide a "%s" instance in the "%s::$messageBus" property, but that property has not been initialized yet.', MessageBusInterface::class, static::class));
+            throw new LogicException(\sprintf('You must provide a "%s" instance in the "%s::$messageBus" property, but that property has not been initialized yet.', MessageBusInterface::class, static::class));
         }
 
         $envelope = $this->messageBus->dispatch($message);
@@ -42,13 +42,13 @@
         $handledStamps = $envelope->all(HandledStamp::class);
 
         if (!$handledStamps) {
-            throw new LogicException(sprintf('Message of type "%s" was handled zero times. Exactly one handler is expected when using "%s::%s()".', get_debug_type($envelope->getMessage()), static::class, __FUNCTION__));
+            throw new LogicException(\sprintf('Message of type "%s" was handled zero times. Exactly one handler is expected when using "%s::%s()".', get_debug_type($envelope->getMessage()), static::class, __FUNCTION__));
         }
 
         if (\count($handledStamps) > 1) {
-            $handlers = implode(', ', array_map(fn (HandledStamp $stamp): string => sprintf('"%s"', $stamp->getHandlerName()), $handledStamps));
+            $handlers = implode(', ', array_map(static fn (HandledStamp $stamp): string => \sprintf('"%s"', $stamp->getHandlerName()), $handledStamps));
 
-            throw new LogicException(sprintf('Message of type "%s" was handled multiple times. Only one handler is expected when using "%s::%s()", got %d: %s.', get_debug_type($envelope->getMessage()), static::class, __FUNCTION__, \count($handledStamps), $handlers));
+            throw new LogicException(\sprintf('Message of type "%s" was handled multiple times. Only one handler is expected when using "%s::%s()", got %d: %s.', get_debug_type($envelope->getMessage()), static::class, __FUNCTION__, \count($handledStamps), $handlers));
         }
 
         return $handledStamps[0]->getResult();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Message/RedispatchMessage.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Message/RedispatchMessage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Message/RedispatchMessage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Message/RedispatchMessage.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,6 +29,6 @@
     {
         $message = $this->envelope instanceof Envelope ? $this->envelope->getMessage() : $this->envelope;
 
-        return sprintf('%s via %s', $message instanceof \Stringable ? (string) $message : $message::class, implode(', ', (array) $this->transportNames));
+        return \sprintf('%s via %s', $message instanceof \Stringable ? (string) $message : $message::class, implode(', ', (array) $this->transportNames));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php	2026-05-20 10:56:49.000000000 +0200
@@ -77,7 +77,7 @@
                     $result = $this->callHandler($handler, $message, $ack, $envelope->last(HandlerArgumentsStamp::class));
 
                     if (!\is_int($result) || 0 > $result) {
-                        throw new LogicException(sprintf('A handler implementing BatchHandlerInterface must return the size of the current batch as a positive integer, "%s" returned from "%s".', \is_int($result) ? $result : get_debug_type($result), get_debug_type($batchHandler)));
+                        throw new LogicException(\sprintf('A handler implementing BatchHandlerInterface must return the size of the current batch as a positive integer, "%s" returned from "%s".', \is_int($result) ? $result : get_debug_type($result), get_debug_type($batchHandler)));
                     }
 
                     if (!$ack->isAcknowledged()) {
@@ -114,7 +114,7 @@
 
         if (null === $handler && !$alreadyHandled) {
             if (!$this->allowNoHandlers) {
-                throw new NoHandlerForMessageException(sprintf('No handler for message "%s".', $context['class']));
+                throw new NoHandlerForMessageException(\sprintf('No handler for message "%s".', $context['class']));
             }
 
             $this->logger?->info('No handler for message {class}', $context);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Middleware/RouterContextMiddleware.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Middleware/RouterContextMiddleware.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Middleware/RouterContextMiddleware.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Middleware/RouterContextMiddleware.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,6 @@
         $currentPathInfo = $context->getPathInfo();
         $currentQueryString = $context->getQueryString();
 
-        /* @var RouterContextStamp $contextStamp */
         $context
             ->setBaseUrl($contextStamp->getBaseUrl())
             ->setMethod($contextStamp->getMethod())
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Middleware/SendMessageMiddleware.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Middleware/SendMessageMiddleware.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Middleware/SendMessageMiddleware.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Middleware/SendMessageMiddleware.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,7 +63,7 @@
             }
 
             if (!$this->allowNoSenders && !$sender) {
-                throw new NoSenderForMessageException(sprintf('No sender for message "%s".', $context['class']));
+                throw new NoSenderForMessageException(\sprintf('No sender for message "%s".', $context['class']));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Middleware/StackMiddleware.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Middleware/StackMiddleware.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Middleware/StackMiddleware.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Middleware/StackMiddleware.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
         } elseif ($middlewareIterator instanceof MiddlewareInterface) {
             $this->stack->stack[] = $middlewareIterator;
         } else {
-            $this->stack->iterator = (function () use ($middlewareIterator) {
+            $this->stack->iterator = (static function () use ($middlewareIterator) {
                 yield from $middlewareIterator;
             })();
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Middleware/TraceableMiddleware.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Middleware/TraceableMiddleware.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Middleware/TraceableMiddleware.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Middleware/TraceableMiddleware.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,9 +72,9 @@
         if ($this->stack === $nextMiddleware = $this->stack->next()) {
             $this->currentEvent = 'Tail';
         } else {
-            $this->currentEvent = sprintf('"%s"', get_debug_type($nextMiddleware));
+            $this->currentEvent = \sprintf('"%s"', get_debug_type($nextMiddleware));
         }
-        $this->currentEvent .= sprintf(' on "%s"', $this->busName);
+        $this->currentEvent .= \sprintf(' on "%s"', $this->busName);
 
         $this->stopwatch->start($this->currentEvent, $this->eventCategory);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Retry/MultiplierRetryStrategy.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Retry/MultiplierRetryStrategy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Retry/MultiplierRetryStrategy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Retry/MultiplierRetryStrategy.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,17 +48,17 @@
         $this->maxRetries = $maxRetries;
 
         if ($delayMilliseconds < 0) {
-            throw new InvalidArgumentException(sprintf('Delay must be greater than or equal to zero: "%s" given.', $delayMilliseconds));
+            throw new InvalidArgumentException(\sprintf('Delay must be greater than or equal to zero: "%s" given.', $delayMilliseconds));
         }
         $this->delayMilliseconds = $delayMilliseconds;
 
         if ($multiplier < 1) {
-            throw new InvalidArgumentException(sprintf('Multiplier must be greater than zero: "%s" given.', $multiplier));
+            throw new InvalidArgumentException(\sprintf('Multiplier must be greater than zero: "%s" given.', $multiplier));
         }
         $this->multiplier = $multiplier;
 
         if ($maxDelayMilliseconds < 0) {
-            throw new InvalidArgumentException(sprintf('Max delay must be greater than or equal to zero: "%s" given.', $maxDelayMilliseconds));
+            throw new InvalidArgumentException(\sprintf('Max delay must be greater than or equal to zero: "%s" given.', $maxDelayMilliseconds));
         }
         $this->maxDelayMilliseconds = $maxDelayMilliseconds;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/RoutableMessageBus.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/RoutableMessageBus.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/RoutableMessageBus.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/RoutableMessageBus.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,7 +60,7 @@
     public function getMessageBus(string $busName): MessageBusInterface
     {
         if (!$this->busLocator->has($busName)) {
-            throw new InvalidArgumentException(sprintf('Bus named "%s" does not exist.', $busName));
+            throw new InvalidArgumentException(\sprintf('Bus named "%s" does not exist.', $busName));
         }
 
         return $this->busLocator->get($busName);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Stamp/ErrorDetailsStamp.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Stamp/ErrorDetailsStamp.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Stamp/ErrorDetailsStamp.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Stamp/ErrorDetailsStamp.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Symfony\Component\ErrorHandler\Exception\FlattenException;
 use Symfony\Component\Messenger\Exception\HandlerFailedException;
+use Symfony\Component\Messenger\Exception\RecoverableExceptionInterface;
 
 /**
  * Stamp applied when a messages fails due to an exception in the handler.
@@ -39,8 +40,9 @@
         }
 
         $flattenException = null;
-        if (class_exists(FlattenException::class)) {
+        if (!$throwable instanceof RecoverableExceptionInterface && class_exists(FlattenException::class)) {
             $flattenException = FlattenException::createFromThrowable($throwable);
+            $flattenException->setTrace([], $throwable->getFile(), $throwable->getLine());
         }
 
         return new self($throwable::class, $throwable->getCode(), $throwable->getMessage(), $flattenException);
@@ -75,7 +77,8 @@
         if ($this->flattenException && $that->flattenException) {
             return $this->flattenException->getClass() === $that->flattenException->getClass()
                 && $this->flattenException->getCode() === $that->flattenException->getCode()
-                && $this->flattenException->getMessage() === $that->flattenException->getMessage();
+                && $this->flattenException->getFile() === $that->flattenException->getFile()
+                && $this->flattenException->getLine() === $that->flattenException->getLine();
         }
 
         return $this->exceptionClass === $that->exceptionClass
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Test/Middleware/MiddlewareTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Test/Middleware/MiddlewareTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Test/Middleware/MiddlewareTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Test/Middleware/MiddlewareTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
         $nextMiddleware
             ->expects($this->once())
             ->method('handle')
-            ->willReturnCallback(fn (Envelope $envelope, StackInterface $stack): Envelope => $envelope)
+            ->willReturnCallback(static fn (Envelope $envelope, StackInterface $stack): Envelope => $envelope)
         ;
 
         return new StackMiddleware($nextMiddleware);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/ConsumeMessagesCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/ConsumeMessagesCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/ConsumeMessagesCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/ConsumeMessagesCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,18 +12,21 @@
 namespace Symfony\Component\Messenger\Tests\Command;
 
 use PHPUnit\Framework\TestCase;
+use Psr\Log\LoggerInterface;
+use Psr\Log\LoggerTrait;
 use Symfony\Component\Console\Application;
 use Symfony\Component\Console\Exception\InvalidOptionException;
 use Symfony\Component\Console\Tester\CommandCompletionTester;
 use Symfony\Component\Console\Tester\CommandTester;
+use Symfony\Component\DependencyInjection\Container;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\ServiceLocator;
 use Symfony\Component\EventDispatcher\EventDispatcher;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter;
 use Symfony\Component\Messenger\Command\ConsumeMessagesCommand;
 use Symfony\Component\Messenger\Envelope;
 use Symfony\Component\Messenger\EventListener\ResetServicesListener;
+use Symfony\Component\Messenger\MessageBus;
 use Symfony\Component\Messenger\MessageBusInterface;
 use Symfony\Component\Messenger\RoutableMessageBus;
 use Symfony\Component\Messenger\Stamp\BusNameStamp;
@@ -34,7 +37,7 @@
 {
     public function testConfigurationWithDefaultReceiver()
     {
-        $command = new ConsumeMessagesCommand($this->createMock(RoutableMessageBus::class), $this->createMock(ServiceLocator::class), $this->createMock(EventDispatcherInterface::class), null, ['amqp']);
+        $command = new ConsumeMessagesCommand(new RoutableMessageBus(new Container()), new ServiceLocator([]), new EventDispatcher(), null, ['amqp']);
         $inputArgument = $command->getDefinition()->getArgument('receivers');
         $this->assertFalse($inputArgument->isRequired());
         $this->assertSame(['amqp'], $inputArgument->getDefault());
@@ -187,31 +190,72 @@
     {
         $envelope = new Envelope(new \stdClass(), [new BusNameStamp('dummy-bus')]);
 
-        $receiver = $this->createMock(ReceiverInterface::class);
+        $receiver = $this->createStub(ReceiverInterface::class);
         $receiver->method('get')->willReturn([$envelope]);
 
         $receiverLocator = $this->createMock(ContainerInterface::class);
         $receiverLocator->method('has')->with('dummy-receiver')->willReturn(true);
         $receiverLocator->method('get')->with('dummy-receiver')->willReturn($receiver);
 
-        $bus = $this->createMock(MessageBusInterface::class);
+        $busLocator = new Container();
+        $busLocator->set('dummy-bus', new MessageBus());
+
+        $command = new ConsumeMessagesCommand(new RoutableMessageBus($busLocator), $receiverLocator, new EventDispatcher());
+
+        $application = new Application();
+        $application->add($command);
+        $tester = new CommandTester($application->get('messenger:consume'));
+        $tester->execute([
+            'receivers' => ['dummy-receiver'],
+            '--time-limit' => 1,
+        ]);
+
+        $this->assertSame(0, $tester->getStatusCode());
+        $this->assertStringContainsString('[OK] Consuming messages from transport "dummy-receiver"', $tester->getDisplay());
+    }
+
+    public function testRunWithMemoryLimit()
+    {
+        $envelope = new Envelope(new \stdClass(), [new BusNameStamp('dummy-bus')]);
+
+        $receiver = $this->createStub(ReceiverInterface::class);
+        $receiver->method('get')->willReturn([$envelope]);
+
+        $receiverLocator = $this->createMock(ContainerInterface::class);
+        $receiverLocator->method('has')->with('dummy-receiver')->willReturn(true);
+        $receiverLocator->method('get')->with('dummy-receiver')->willReturn($receiver);
+
+        $bus = $this->createStub(MessageBusInterface::class);
 
         $busLocator = $this->createMock(ContainerInterface::class);
         $busLocator->method('has')->with('dummy-bus')->willReturn(true);
         $busLocator->method('get')->with('dummy-bus')->willReturn($bus);
 
-        $command = new ConsumeMessagesCommand(new RoutableMessageBus($busLocator), $receiverLocator, new EventDispatcher());
+        $logger = new class implements LoggerInterface {
+            use LoggerTrait;
+
+            public array $logs = [];
+
+            public function log(...$args): void
+            {
+                $this->logs[] = $args;
+            }
+        };
+        $command = new ConsumeMessagesCommand(new RoutableMessageBus($busLocator), $receiverLocator, new EventDispatcher(), $logger);
 
         $application = new Application();
         $application->add($command);
         $tester = new CommandTester($application->get('messenger:consume'));
         $tester->execute([
             'receivers' => ['dummy-receiver'],
-            '--time-limit' => 1,
+            '--memory-limit' => '1.5M',
         ]);
 
         $this->assertSame(0, $tester->getStatusCode());
         $this->assertStringContainsString('[OK] Consuming messages from transport "dummy-receiver"', $tester->getDisplay());
+        $this->assertStringContainsString('The worker will automatically exit once it has exceeded 1.5M of memory', $tester->getDisplay());
+
+        $this->assertSame(1572864, $logger->logs[1][2]['limit']);
     }
 
     /**
@@ -219,9 +263,7 @@
      */
     public function testComplete(array $input, array $expectedSuggestions)
     {
-        $bus = $this->createMock(RoutableMessageBus::class);
-        $receiverLocator = $this->createMock(ContainerInterface::class);
-        $command = new ConsumeMessagesCommand($bus, $receiverLocator, new EventDispatcher(), null, ['async', 'async_high', 'failed'], null, ['messenger.bus.default']);
+        $command = new ConsumeMessagesCommand(new RoutableMessageBus(new Container()), new Container(), new EventDispatcher(), null, ['async', 'async_high', 'failed'], null, ['messenger.bus.default']);
         $tester = new CommandCompletionTester($command);
         $suggestions = $tester->complete($input);
         $this->assertSame($expectedSuggestions, $suggestions);
@@ -234,4 +276,74 @@
         yield 'receiver (no repeat)' => [['async', ''], ['async_high', 'failed']];
         yield 'option --bus' => [['--bus', ''], ['messenger.bus.default']];
     }
+
+    public function testSuccessMessageGoesToStdout()
+    {
+        $envelope = new Envelope(new \stdClass(), [new BusNameStamp('dummy-bus')]);
+
+        $receiver = $this->createMock(ReceiverInterface::class);
+        $receiver->expects($this->once())->method('get')->willReturn([$envelope]);
+
+        $receiverLocator = $this->createMock(ContainerInterface::class);
+        $receiverLocator->expects($this->once())->method('has')->with('dummy-receiver')->willReturn(true);
+        $receiverLocator->expects($this->once())->method('get')->with('dummy-receiver')->willReturn($receiver);
+
+        $bus = $this->createMock(MessageBusInterface::class);
+        $bus->expects($this->once())->method('dispatch');
+
+        $busLocator = $this->createMock(ContainerInterface::class);
+        $busLocator->expects($this->once())->method('has')->with('dummy-bus')->willReturn(true);
+        $busLocator->expects($this->once())->method('get')->with('dummy-bus')->willReturn($bus);
+
+        $command = new ConsumeMessagesCommand(new RoutableMessageBus($busLocator), $receiverLocator, new EventDispatcher());
+
+        $application = new Application();
+        $application->add($command);
+        $tester = new CommandTester($application->get('messenger:consume'));
+        $tester->execute([
+            'receivers' => ['dummy-receiver'],
+            '--limit' => 1,
+        ], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringContainsString('Consuming messages from transport', $stdout);
+        $this->assertStringNotContainsString('Consuming messages from transport', $stderr);
+    }
+
+    public function testCommentsGoToStderr()
+    {
+        $envelope = new Envelope(new \stdClass(), [new BusNameStamp('dummy-bus')]);
+
+        $receiver = $this->createMock(ReceiverInterface::class);
+        $receiver->expects($this->once())->method('get')->willReturn([$envelope]);
+
+        $receiverLocator = $this->createMock(ContainerInterface::class);
+        $receiverLocator->expects($this->once())->method('has')->with('dummy-receiver')->willReturn(true);
+        $receiverLocator->expects($this->once())->method('get')->with('dummy-receiver')->willReturn($receiver);
+
+        $bus = $this->createMock(MessageBusInterface::class);
+        $bus->expects($this->once())->method('dispatch');
+
+        $busLocator = $this->createMock(ContainerInterface::class);
+        $busLocator->expects($this->once())->method('has')->with('dummy-bus')->willReturn(true);
+        $busLocator->expects($this->once())->method('get')->with('dummy-bus')->willReturn($bus);
+
+        $command = new ConsumeMessagesCommand(new RoutableMessageBus($busLocator), $receiverLocator, new EventDispatcher());
+
+        $application = new Application();
+        $application->add($command);
+        $tester = new CommandTester($application->get('messenger:consume'));
+        $tester->execute([
+            'receivers' => ['dummy-receiver'],
+            '--limit' => 1,
+        ], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringNotContainsString('Quit the worker with CONTROL-C', $stdout);
+        $this->assertStringContainsString('Quit the worker with CONTROL-C', $stderr);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/DebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/DebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/DebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/DebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,71 +63,71 @@
 
         $this->assertSame(<<<TXT
 
-Messenger
-=========
+            Messenger
+            =========
 
-command_bus
------------
+            command_bus
+            -----------
 
- The following messages can be dispatched:
+             The following messages can be dispatched:
 
- ----------------------------------------------------------------------------------------------------------- 
-  Symfony\Component\Messenger\Tests\Fixtures\DummyCommand                                                    
-      handled by Symfony\Component\Messenger\Tests\Fixtures\DummyCommandHandler (when option1=1, option2=2)  
-                                                                                                             
-  Used whenever a test needs to show a message with a class description.                                     
-  Symfony\Component\Messenger\Tests\Fixtures\DummyCommandWithDescription                                     
-      handled by Symfony\Component\Messenger\Tests\Fixtures\DummyCommandWithDescriptionHandler               
-                 Used whenever a test needs to show a message handler with a class description.              
-                                                                                                             
-  Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessage                                            
-      handled by Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessageHandler                      
-                                                                                                             
- ----------------------------------------------------------------------------------------------------------- 
-
-query_bus
----------
-
- The following messages can be dispatched:
-
- --------------------------------------------------------------------------------------- 
-  Symfony\Component\Messenger\Tests\Fixtures\DummyQuery                                  
-      handled by Symfony\Component\Messenger\Tests\Fixtures\DummyQueryHandler            
-                                                                                         
-  Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessage                        
-      handled by Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessageHandler  
-                                                                                         
- --------------------------------------------------------------------------------------- 
+             ----------------------------------------------------------------------------------------------------------- 
+              Symfony\Component\Messenger\Tests\Fixtures\DummyCommand                                                    
+                  handled by Symfony\Component\Messenger\Tests\Fixtures\DummyCommandHandler (when option1=1, option2=2)  
+                                                                                                                         
+              Used whenever a test needs to show a message with a class description.                                     
+              Symfony\Component\Messenger\Tests\Fixtures\DummyCommandWithDescription                                     
+                  handled by Symfony\Component\Messenger\Tests\Fixtures\DummyCommandWithDescriptionHandler               
+                             Used whenever a test needs to show a message handler with a class description.              
+                                                                                                                         
+              Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessage                                            
+                  handled by Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessageHandler                      
+                                                                                                                         
+             ----------------------------------------------------------------------------------------------------------- 
+
+            query_bus
+            ---------
+
+             The following messages can be dispatched:
+
+             --------------------------------------------------------------------------------------- 
+              Symfony\Component\Messenger\Tests\Fixtures\DummyQuery                                  
+                  handled by Symfony\Component\Messenger\Tests\Fixtures\DummyQueryHandler            
+                                                                                                     
+              Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessage                        
+                  handled by Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessageHandler  
+                                                                                                     
+             --------------------------------------------------------------------------------------- 
 
 
-TXT
-            , $tester->getDisplay(true)
+            TXT,
+            $tester->getDisplay(true)
         );
 
         $tester->execute(['bus' => 'query_bus'], ['decorated' => false]);
 
         $this->assertSame(<<<TXT
 
-Messenger
-=========
+            Messenger
+            =========
 
-query_bus
----------
+            query_bus
+            ---------
 
- The following messages can be dispatched:
+             The following messages can be dispatched:
 
- --------------------------------------------------------------------------------------- 
-  Symfony\Component\Messenger\Tests\Fixtures\DummyQuery                                  
-      handled by Symfony\Component\Messenger\Tests\Fixtures\DummyQueryHandler            
-                                                                                         
-  Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessage                        
-      handled by Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessageHandler  
-                                                                                         
- --------------------------------------------------------------------------------------- 
+             --------------------------------------------------------------------------------------- 
+              Symfony\Component\Messenger\Tests\Fixtures\DummyQuery                                  
+                  handled by Symfony\Component\Messenger\Tests\Fixtures\DummyQueryHandler            
+                                                                                                     
+              Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessage                        
+                  handled by Symfony\Component\Messenger\Tests\Fixtures\MultipleBusesMessageHandler  
+                                                                                                     
+             --------------------------------------------------------------------------------------- 
 
 
-TXT
-            , $tester->getDisplay(true)
+            TXT,
+            $tester->getDisplay(true)
         );
     }
 
@@ -140,22 +140,22 @@
 
         $this->assertSame(<<<TXT
 
-Messenger
-=========
+            Messenger
+            =========
 
-command_bus
------------
+            command_bus
+            -----------
 
- [WARNING] No handled message found in bus "command_bus".                                                               
+             [WARNING] No handled message found in bus "command_bus".                                                               
 
-query_bus
----------
+            query_bus
+            ---------
 
- [WARNING] No handled message found in bus "query_bus".                                                                 
+             [WARNING] No handled message found in bus "query_bus".                                                                 
 
 
-TXT
-            , $tester->getDisplay(true)
+            TXT,
+            $tester->getDisplay(true)
         );
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesRemoveCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesRemoveCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesRemoveCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesRemoveCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,13 +30,10 @@
         $globalFailureReceiverName = 'failure_receiver';
         $receiver = $this->createMock(ListableReceiverInterface::class);
         $receiver->expects($this->once())->method('find')->with(20)->willReturn(new Envelope(new \stdClass()));
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($receiver);
 
         $command = new FailedMessagesRemoveCommand(
             $globalFailureReceiverName,
-            $serviceLocator
+            new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver])
         );
 
         $tester = new CommandTester($command);
@@ -51,13 +48,10 @@
         $globalFailureReceiverName = 'failure_receiver';
         $receiver = $this->createMock(ListableReceiverInterface::class);
         $receiver->expects($this->once())->method('find')->with(20)->willReturn(new Envelope(new \stdClass()));
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($receiver);
 
         $command = new FailedMessagesRemoveCommand(
             $globalFailureReceiverName,
-            $serviceLocator
+            new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver])
         );
 
         $tester = new CommandTester($command);
@@ -72,13 +66,10 @@
         $failureReveiverName = 'specific_failure_receiver';
         $receiver = $this->createMock(ListableReceiverInterface::class);
         $receiver->expects($this->once())->method('find')->with(20)->willReturn(new Envelope(new \stdClass()));
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($failureReveiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($failureReveiverName)->willReturn($receiver);
 
         $command = new FailedMessagesRemoveCommand(
             $failureReveiverName,
-            $serviceLocator
+            new ServiceLocator([$failureReveiverName => static fn () => $receiver])
         );
 
         $tester = new CommandTester($command);
@@ -92,13 +83,10 @@
     {
         $failureReceiverName = 'failure_receiver';
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($failureReceiverName)->willReturn(false);
-
         $this->expectException(InvalidArgumentException::class);
         $command = new FailedMessagesRemoveCommand(
             $failureReceiverName,
-            $serviceLocator
+            new ServiceLocator([])
         );
 
         $tester = new CommandTester($command);
@@ -128,13 +116,9 @@
             })
         ;
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($receiver);
-
         $command = new FailedMessagesRemoveCommand(
             $globalFailureReceiverName,
-            $serviceLocator
+            new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver])
         );
 
         $tester = new CommandTester($command);
@@ -165,13 +149,9 @@
             })
         ;
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($receiver);
-
         $command = new FailedMessagesRemoveCommand(
             $globalFailureReceiverName,
-            $serviceLocator
+            new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver])
         );
 
         $tester = new CommandTester($command);
@@ -186,17 +166,14 @@
     {
         $globalFailureReceiverName = 'failure_receiver';
 
-        $receiver = $this->createMock(ListableReceiverInterface::class);
-
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('getProvidedServices')->willReturn([
-            'global_receiver' => $receiver,
-            $globalFailureReceiverName => $receiver,
-        ]);
+        $receiver = $this->createStub(ListableReceiverInterface::class);
 
         $command = new FailedMessagesRemoveCommand(
             $globalFailureReceiverName,
-            $serviceLocator
+            new ServiceLocator([
+                'global_receiver' => static fn () => $receiver,
+                $globalFailureReceiverName => static fn () => $receiver,
+            ])
         );
         $tester = new CommandCompletionTester($command);
 
@@ -214,13 +191,9 @@
             Envelope::wrap(new \stdClass(), [new TransportMessageIdStamp('78c2da843723')]),
         ]);
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($receiver);
-
         $command = new FailedMessagesRemoveCommand(
             $globalFailureReceiverName,
-            $serviceLocator
+            new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver])
         );
         $tester = new CommandCompletionTester($command);
 
@@ -240,13 +213,9 @@
             Envelope::wrap(new \stdClass(), [new TransportMessageIdStamp('78c2da843723')]),
         ]);
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($anotherFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($anotherFailureReceiverName)->willReturn($receiver);
-
         $command = new FailedMessagesRemoveCommand(
             $globalFailureReceiverName,
-            $serviceLocator
+            new ServiceLocator([$anotherFailureReceiverName => static fn () => $receiver])
         );
 
         $tester = new CommandCompletionTester($command);
@@ -260,11 +229,7 @@
     {
         $globalFailureReceiverName = 'failure_receiver';
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($this->createMock(ListableReceiverInterface::class));
-
-        $command = new FailedMessagesRemoveCommand('failure_receiver', $serviceLocator);
+        $command = new FailedMessagesRemoveCommand('failure_receiver', new ServiceLocator([$globalFailureReceiverName => fn () => $this->createStub(ListableReceiverInterface::class)]));
         $tester = new CommandTester($command);
 
         $this->expectException(RuntimeException::class);
@@ -276,12 +241,9 @@
     {
         $globalFailureReceiverName = 'failure_receiver';
 
-        $receiver = $this->createMock(ListableReceiverInterface::class);
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($receiver);
+        $receiver = $this->createStub(ListableReceiverInterface::class);
 
-        $command = new FailedMessagesRemoveCommand('failure_receiver', $serviceLocator);
+        $command = new FailedMessagesRemoveCommand('failure_receiver', new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver]));
         $tester = new CommandTester($command);
 
         $tester->execute(['--all' => true]);
@@ -297,11 +259,7 @@
         $receiver = $this->createMock(DoctrineReceiver::class);
         $receiver->expects($this->once())->method('getMessageCount')->willReturn(2);
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($receiver);
-
-        $command = new FailedMessagesRemoveCommand('failure_receiver', $serviceLocator);
+        $command = new FailedMessagesRemoveCommand('failure_receiver', new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver]));
         $tester = new CommandTester($command);
 
         $tester->execute(['--all' => true]);
@@ -314,11 +272,7 @@
     {
         $globalFailureReceiverName = 'failure_receiver';
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($this->createMock(ListableReceiverInterface::class));
-
-        $command = new FailedMessagesRemoveCommand('failure_receiver', $serviceLocator);
+        $command = new FailedMessagesRemoveCommand('failure_receiver', new ServiceLocator([$globalFailureReceiverName => fn () => $this->createStub(ListableReceiverInterface::class)]));
         $tester = new CommandTester($command);
 
         $this->expectException(RuntimeException::class);
@@ -340,15 +294,68 @@
 
         $receiver->expects($this->once())->method('all')->willReturn($series);
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($receiver);
-
-        $command = new FailedMessagesRemoveCommand($globalFailureReceiverName, $serviceLocator);
+        $command = new FailedMessagesRemoveCommand($globalFailureReceiverName, new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver]));
         $tester = new CommandTester($command);
         $tester->execute(['--all' => true, '--force' => true, '--show-messages' => true]);
 
         $this->assertStringContainsString('Failed Message Details', $tester->getDisplay());
         $this->assertStringContainsString('4 messages were removed.', $tester->getDisplay());
     }
+
+    public function testSuccessMessageGoesToStdout()
+    {
+        $globalFailureReceiverName = 'failure_receiver';
+        $receiver = $this->createStub(ListableReceiverInterface::class);
+
+        $envelope = new Envelope(new \stdClass(), [new TransportMessageIdStamp('some_id')]);
+        $receiver->method('find')->with('some_id')->willReturn($envelope);
+
+        $command = new FailedMessagesRemoveCommand($globalFailureReceiverName, new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver]));
+        $tester = new CommandTester($command);
+        $tester->execute(['id' => ['some_id'], '--force' => true], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringContainsString('Message with id some_id removed', $stdout);
+        $this->assertStringNotContainsString('Message with id some_id removed', $stderr);
+    }
+
+    public function testErrorMessageGoesToStderr()
+    {
+        $globalFailureReceiverName = 'failure_receiver';
+        $receiver = $this->createStub(ListableReceiverInterface::class);
+
+        $receiver->method('find')->with('not_found')->willReturn(null);
+
+        $command = new FailedMessagesRemoveCommand($globalFailureReceiverName, new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver]));
+        $tester = new CommandTester($command);
+        $tester->execute(['id' => ['not_found']], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringNotContainsString('[ERROR]', $stdout);
+        $this->assertStringContainsString('The message with id "not_found" was not found', $stderr);
+    }
+
+    public function testNoteMessageGoesToStderr()
+    {
+        $globalFailureReceiverName = 'failure_receiver';
+        $receiver = $this->createStub(ListableReceiverInterface::class);
+
+        $envelope = new Envelope(new \stdClass(), [new TransportMessageIdStamp('some_id')]);
+        $receiver->method('find')->with('some_id')->willReturn($envelope);
+
+        $command = new FailedMessagesRemoveCommand($globalFailureReceiverName, new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver]));
+        $tester = new CommandTester($command);
+        $tester->setInputs(['no']);
+        $tester->execute(['id' => ['some_id']], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringNotContainsString('[NOTE]', $stdout);
+        $this->assertStringContainsString('Message with id some_id not removed', $stderr);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesRetryCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesRetryCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesRetryCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesRetryCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,9 +18,11 @@
 use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Messenger\Command\FailedMessagesRetryCommand;
 use Symfony\Component\Messenger\Envelope;
+use Symfony\Component\Messenger\MessageBus;
 use Symfony\Component\Messenger\MessageBusInterface;
 use Symfony\Component\Messenger\Stamp\TransportMessageIdStamp;
 use Symfony\Component\Messenger\Transport\Receiver\ListableReceiverInterface;
+use Symfony\Component\Messenger\Transport\Receiver\MessageCountAwareInterface;
 
 class FailedMessagesRetryCommandTest extends TestCase
 {
@@ -50,13 +52,10 @@
         $bus->expects($this->exactly(2))->method('dispatch')->willReturn(new Envelope(new \stdClass()));
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
         $command = new FailedMessagesRetryCommand(
             $failureTransportName,
-            $serviceLocator,
+            new ServiceLocator([$failureTransportName => static fn () => $receiver]),
             $bus,
             $dispatcher
         );
@@ -70,26 +69,21 @@
 
     public function testBasicRunWithServiceLocatorMultipleFailedTransportsDefined()
     {
-        $receiver = $this->createMock(ListableReceiverInterface::class);
+        $receiver = $this->createStub(ListableReceiverInterface::class);
         $receiver->method('all')->willReturn([]);
 
         $dispatcher = new EventDispatcher();
-        $bus = $this->createMock(MessageBusInterface::class);
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
-        $serviceLocator->method('getProvidedServices')->willReturn([
-            'failure_receiver' => [],
-            'failure_receiver_2' => [],
-            'failure_receiver_3' => [],
-        ]);
 
         $command = new FailedMessagesRetryCommand(
             $failureTransportName,
-            $serviceLocator,
-            $bus,
+            new ServiceLocator([
+                $failureTransportName => static fn () => $receiver,
+                'failure_receiver_2' => static fn () => $receiver,
+                'failure_receiver_3' => static fn () => $receiver,
+            ]),
+            new MessageBus(),
             $dispatcher
         );
         $tester = new CommandTester($command);
@@ -97,8 +91,8 @@
         $tester->execute(['--force' => true]);
 
         $expectedLadingMessage = <<<EOF
-> Available failure transports are: failure_receiver, failure_receiver_2, failure_receiver_3
-EOF;
+            > Available failure transports are: failure_receiver, failure_receiver_2, failure_receiver_3
+            EOF;
         $this->assertStringContainsString($expectedLadingMessage, $tester->getDisplay());
     }
 
@@ -128,13 +122,10 @@
         $bus->expects($this->exactly(2))->method('dispatch')->willReturn(new Envelope(new \stdClass()));
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
         $command = new FailedMessagesRetryCommand(
             $failureTransportName,
-            $serviceLocator,
+            new ServiceLocator([$failureTransportName => static fn () => $receiver]),
             $bus,
             $dispatcher
         );
@@ -149,18 +140,15 @@
     {
         $globalFailureReceiverName = 'failure_receiver';
 
-        $receiver = $this->createMock(ListableReceiverInterface::class);
-
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('getProvidedServices')->willReturn([
-            'global_receiver' => $receiver,
-            $globalFailureReceiverName => $receiver,
-        ]);
+        $receiver = $this->createStub(ListableReceiverInterface::class);
 
         $command = new FailedMessagesRetryCommand(
             $globalFailureReceiverName,
-            $serviceLocator,
-            $this->createMock(MessageBusInterface::class),
+            new ServiceLocator([
+                'global_receiver' => static fn () => $receiver,
+                $globalFailureReceiverName => static fn () => $receiver,
+            ]),
+            new MessageBus(),
             new EventDispatcher()
         );
         $tester = new CommandCompletionTester($command);
@@ -179,14 +167,10 @@
             Envelope::wrap(new \stdClass(), [new TransportMessageIdStamp('78c2da843723')]),
         ]);
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($receiver);
-
         $command = new FailedMessagesRetryCommand(
             $globalFailureReceiverName,
-            $serviceLocator,
-            $this->createMock(MessageBusInterface::class),
+            new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver]),
+            new MessageBus(),
             new EventDispatcher()
         );
         $tester = new CommandCompletionTester($command);
@@ -207,14 +191,10 @@
             Envelope::wrap(new \stdClass(), [new TransportMessageIdStamp('78c2da843723')]),
         ]);
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($anotherFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($anotherFailureReceiverName)->willReturn($receiver);
-
         $command = new FailedMessagesRetryCommand(
             $globalFailureReceiverName,
-            $serviceLocator,
-            $this->createMock(MessageBusInterface::class),
+            new ServiceLocator([$anotherFailureReceiverName => static fn () => $receiver]),
+            new MessageBus(),
             new EventDispatcher()
         );
         $tester = new CommandCompletionTester($command);
@@ -223,4 +203,103 @@
 
         $this->assertSame(['2ab50dfa1fbf', '78c2da843723'], $suggestions);
     }
+
+    public function testSuccessMessageGoesToStdout()
+    {
+        $envelope = new Envelope(new \stdClass(), [new TransportMessageIdStamp('some_id')]);
+        $receiver = $this->createStub(ListableReceiverInterface::class);
+        $receiver->method('find')->with('some_id')->willReturn($envelope);
+
+        $command = new FailedMessagesRetryCommand(
+            'failure_receiver',
+            new ServiceLocator(['failure_receiver' => static fn () => $receiver]),
+            new MessageBus(),
+            new EventDispatcher()
+        );
+
+        $tester = new CommandTester($command);
+        $tester->setInputs(['retry']);
+        $tester->execute(['id' => ['some_id']], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringContainsString('All done!', $stdout);
+        $this->assertStringNotContainsString('All done!', $stderr);
+    }
+
+    public function testCommentsGoToStderr()
+    {
+        $envelope = new Envelope(new \stdClass(), [new TransportMessageIdStamp('some_id')]);
+        $receiver = $this->createStub(ListableReceiverInterface::class);
+        $receiver->method('find')->with('some_id')->willReturn($envelope);
+
+        $command = new FailedMessagesRetryCommand(
+            'failure_receiver',
+            new ServiceLocator(['failure_receiver' => static fn () => $receiver]),
+            new MessageBus(),
+            new EventDispatcher()
+        );
+
+        $tester = new CommandTester($command);
+        $tester->setInputs(['retry']);
+        $tester->execute(['id' => ['some_id']], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringContainsString('Quit this command with CONTROL-C', $stderr);
+        $this->assertStringNotContainsString('Quit this command with CONTROL-C', $stdout);
+    }
+
+    public function testPendingMessageCountGoesToStdout()
+    {
+        $receiver = new class implements ListableReceiverInterface, MessageCountAwareInterface {
+            public function get(): iterable
+            {
+                return [];
+            }
+
+            public function ack(Envelope $envelope): void
+            {
+            }
+
+            public function reject(Envelope $envelope): void
+            {
+            }
+
+            public function find(mixed $id): ?Envelope
+            {
+                return null;
+            }
+
+            public function all(?int $limit = null): iterable
+            {
+                return [];
+            }
+
+            public function getMessageCount(): int
+            {
+                return 5;
+            }
+        };
+
+        $command = new FailedMessagesRetryCommand(
+            'failure_receiver',
+            new ServiceLocator(['failure_receiver' => static fn () => $receiver]),
+            new MessageBus(),
+            new EventDispatcher()
+        );
+
+        $tester = new CommandTester($command);
+        $tester->execute(['--force' => true], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringContainsString('There are', $stdout);
+        $this->assertStringContainsString('5', $stdout);
+        $this->assertStringContainsString('messages pending', $stdout);
+        $this->assertStringNotContainsString('messages pending', $stderr);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesShowCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesShowCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesShowCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/FailedMessagesShowCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,6 +23,7 @@
 use Symfony\Component\Messenger\Stamp\SentToFailureTransportStamp;
 use Symfony\Component\Messenger\Stamp\TransportMessageIdStamp;
 use Symfony\Component\Messenger\Transport\Receiver\ListableReceiverInterface;
+use Symfony\Component\Messenger\Transport\Receiver\MessageCountAwareInterface;
 use Symfony\Component\Messenger\Transport\Receiver\ReceiverInterface;
 
 /**
@@ -58,29 +59,25 @@
         $receiver->expects($this->once())->method('find')->with(15)->willReturn($envelope);
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
         $command = new FailedMessagesShowCommand(
             $failureTransportName,
-            $serviceLocator
+            new ServiceLocator([$failureTransportName => static fn () => $receiver])
         );
 
         $tester = new CommandTester($command);
         $tester->execute(['id' => 15]);
 
-        $this->assertStringContainsString(sprintf(<<<EOF
-------------- --------------------- 
-  Class         stdClass             
-  Message Id    15                   
-  Failed at     %s  
-  Error         Things are bad!      
-  Error Code    123                  
-  Error Class   Exception            
-  Transport     async
-EOF
-            ,
+        $this->assertStringContainsString(\sprintf(<<<EOF
+            ------------- --------------------- 
+              Class         stdClass             
+              Message Id    15                   
+              Failed at     %s  
+              Error         Things are bad!      
+              Error Code    123                  
+              Error Class   Exception            
+              Transport     async
+            EOF,
             $redeliveryStamp->getRedeliveredAt()->format('Y-m-d H:i:s')),
             $tester->getDisplay(true));
     }
@@ -102,42 +99,35 @@
         $receiver->expects($this->once())->method('find')->with(15)->willReturn($envelope);
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
         $command = new FailedMessagesShowCommand(
             $failureTransportName,
-            $serviceLocator
+            new ServiceLocator([$failureTransportName => static fn () => $receiver])
         );
         $tester = new CommandTester($command);
         $tester->execute(['id' => 15]);
-        $this->assertStringContainsString(sprintf(<<<EOF
- ------------- --------------------- 
-  Class         stdClass             
-  Message Id    15                   
-  Failed at     %s  
-  Error         Things are bad!      
-  Error Code    123                  
-  Error Class   Exception            
-  Transport     async
-EOF
-            ,
+        $this->assertStringContainsString(\sprintf(<<<EOF
+             ------------- --------------------- 
+              Class         stdClass             
+              Message Id    15                   
+              Failed at     %s  
+              Error         Things are bad!      
+              Error Code    123                  
+              Error Class   Exception            
+              Transport     async
+            EOF,
             $redeliveryStamp2->getRedeliveredAt()->format('Y-m-d H:i:s')),
             $tester->getDisplay(true));
     }
 
     public function testReceiverShouldBeListableWithServiceLocator()
     {
-        $receiver = $this->createMock(ReceiverInterface::class);
+        $receiver = $this->createStub(ReceiverInterface::class);
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
         $command = new FailedMessagesShowCommand(
             $failureTransportName,
-            $serviceLocator
+            new ServiceLocator([$failureTransportName => static fn () => $receiver])
         );
 
         $this->expectExceptionMessage('The "failure_receiver" receiver does not support listing or showing specific messages.');
@@ -161,32 +151,27 @@
         $receiver->expects($this->once())->method('all')->with()->willReturn([$envelope]);
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
-        $serviceLocator->method('getProvidedServices')->willReturn([
-            $failureTransportName => [],
-            'failure_receiver_2' => [],
-            'failure_receiver_3' => [],
-        ]);
         $command = new FailedMessagesShowCommand(
             $failureTransportName,
-            $serviceLocator
+            new ServiceLocator([
+                $failureTransportName => static fn () => $receiver,
+                'failure_receiver_2' => static fn () => $receiver,
+                'failure_receiver_3' => static fn () => $receiver,
+            ])
         );
         $tester = new CommandTester($command);
         $tester->setInputs([0]);
         $tester->execute([]);
 
-        $this->assertStringContainsString(sprintf(<<<EOF
-15   stdClass   %s   Things are bad!
-EOF
-            ,
+        $this->assertStringContainsString(\sprintf(<<<EOF
+            15   stdClass   %s   Things are bad!
+            EOF,
             $redeliveryStamp->getRedeliveredAt()->format('Y-m-d H:i:s')),
             $tester->getDisplay(true));
 
         $expectedLoadingMessage = <<<EOF
-> Available failure transports are: failure_receiver, failure_receiver_2, failure_receiver_3
-EOF;
+            > Available failure transports are: failure_receiver, failure_receiver_2, failure_receiver_3
+            EOF;
 
         $this->assertStringContainsString($expectedLoadingMessage, $tester->getDisplay());
         $this->assertStringContainsString('Run messenger:failed:show {id} --transport=failure_receiver -vv to see message details.', $tester->getDisplay());
@@ -197,13 +182,10 @@
         $receiver = $this->createMock(ListableReceiverInterface::class);
         $receiver->expects($this->once())->method('all')->with()->willReturn([]);
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
         $command = new FailedMessagesShowCommand(
             $failureTransportName,
-            $serviceLocator
+            new ServiceLocator([$failureTransportName => static fn () => $receiver])
         );
 
         $tester = new CommandTester($command);
@@ -224,13 +206,10 @@
         $receiver->expects($this->once())->method('all')->with()->willReturn([$envelope]);
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
         $command = new FailedMessagesShowCommand(
             $failureTransportName,
-            $serviceLocator
+            new ServiceLocator([$failureTransportName => static fn () => $receiver])
         );
 
         $tester = new CommandTester($command);
@@ -247,15 +226,12 @@
             new RedeliveryStamp(0),
             ErrorDetailsStamp::create(new \RuntimeException('Things are bad!')),
         ]);
-        $receiver = $this->createMock(ListableReceiverInterface::class);
+        $receiver = $this->createStub(ListableReceiverInterface::class);
         $receiver->method('all')->with()->willReturn([$envelope]);
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
-        $command = new FailedMessagesShowCommand('failure_receiver', $serviceLocator);
+        $command = new FailedMessagesShowCommand('failure_receiver', new ServiceLocator([$failureTransportName => static fn () => $receiver]));
 
         $tester = new CommandTester($command);
         $tester->execute([]);
@@ -279,33 +255,67 @@
             new RedeliveryStamp(0),
             ErrorDetailsStamp::create(new \RuntimeException('Things are bad!')),
         ]);
-        $receiver = $this->createMock(ListableReceiverInterface::class);
+        $receiver = $this->createStub(ListableReceiverInterface::class);
         $receiver->method('all')->with()->willReturn([$envelope, $envelope]);
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
-        $command = new FailedMessagesShowCommand('failure_receiver', $serviceLocator);
+        $command = new FailedMessagesShowCommand('failure_receiver', new ServiceLocator([$failureTransportName => static fn () => $receiver]));
 
         $tester = new CommandTester($command);
         $tester->execute(['--stats' => 1]);
         $this->assertStringContainsString('stdClass   2', $tester->getDisplay(true));
     }
 
-    public function testInvalidMessagesThrowsExceptionWithServiceLocator()
+    public function testStatsIgnoresDefaultMaxAndCountsAllMessages()
     {
+        $envelope = new Envelope(new \stdClass(), [
+            new TransportMessageIdStamp(15),
+            new SentToFailureTransportStamp('async'),
+            new RedeliveryStamp(0),
+            ErrorDetailsStamp::create(new \RuntimeException('Things are bad!')),
+        ]);
         $receiver = $this->createMock(ListableReceiverInterface::class);
+        $receiver->expects($this->once())->method('all')->with(null)->willReturn([$envelope, $envelope, $envelope]);
+
+        $failureTransportName = 'failure_receiver';
+
+        $command = new FailedMessagesShowCommand($failureTransportName, new ServiceLocator([$failureTransportName => static fn () => $receiver]));
+
+        $tester = new CommandTester($command);
+        $tester->execute(['--stats' => true]);
+        $this->assertStringContainsString('stdClass   3', $tester->getDisplay(true));
+    }
+
+    public function testStatsHonorsExplicitMax()
+    {
+        $envelope = new Envelope(new \stdClass(), [
+            new TransportMessageIdStamp(15),
+            new SentToFailureTransportStamp('async'),
+            new RedeliveryStamp(0),
+            ErrorDetailsStamp::create(new \RuntimeException('Things are bad!')),
+        ]);
+        $receiver = $this->createMock(ListableReceiverInterface::class);
+        $receiver->expects($this->once())->method('all')->with(10)->willReturn([$envelope]);
+
+        $failureTransportName = 'failure_receiver';
+
+        $command = new FailedMessagesShowCommand($failureTransportName, new ServiceLocator([$failureTransportName => static fn () => $receiver]));
+
+        $tester = new CommandTester($command);
+        $tester->execute(['--stats' => true, '--max' => 10]);
+        $this->assertStringContainsString('stdClass   1', $tester->getDisplay(true));
+    }
+
+    public function testInvalidMessagesThrowsExceptionWithServiceLocator()
+    {
+        $receiver = $this->createStub(ListableReceiverInterface::class);
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
         $command = new FailedMessagesShowCommand(
             $failureTransportName,
-            $serviceLocator
+            new ServiceLocator([$failureTransportName => static fn () => $receiver])
         );
 
         $this->expectExceptionMessage('The message "15" was not found.');
@@ -328,34 +338,24 @@
         $receiver->expects($this->once())->method('find')->with(42)->willReturn($envelope);
 
         $failureTransportName = 'failure_receiver';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
-        $command = new FailedMessagesShowCommand($failureTransportName, $serviceLocator);
+        $command = new FailedMessagesShowCommand($failureTransportName, new ServiceLocator([$failureTransportName => static fn () => $receiver]));
         $tester = new CommandTester($command);
         $tester->execute(['id' => 42], ['verbosity' => OutputInterface::VERBOSITY_VERY_VERBOSE]);
-        $this->assertStringMatchesFormat(sprintf(<<<'EOF'
-%%A
-Exception:
-==========
-
-RuntimeException {
-  message: "Things are bad!"
-  code: 0
-  file: "%s"
-  line: %d
-  trace: {
-    %%s%%eTests%%eCommand%%eFailedMessagesShowCommandTest.php:%d {
-      Symfony\Component\Messenger\Tests\Command\FailedMessagesShowCommandTest->testVeryVerboseOutputForSingleMessageContainsExceptionWithTraceWithServiceLocator()
-      › {
-      ›     $exception = new \RuntimeException('Things are bad!');
-      ›     $exceptionLine = __LINE__ - 1;
-    }
-%%A
-EOF
-            ,
-            __FILE__, $exceptionLine, $exceptionLine),
+        $this->assertStringMatchesFormat(\sprintf(<<<'EOF'
+            %%A
+            Exception:
+            ==========
+
+            RuntimeException {
+              message: "Things are bad!"
+              code: 0
+              file: "%s"
+              line: %d
+              trace: {
+            %%A
+            EOF,
+            __FILE__, $exceptionLine),
             $tester->getDisplay(true));
     }
 
@@ -374,41 +374,33 @@
         $receiver->expects($this->once())->method('all')->with()->willReturn([$envelope]);
 
         $failureTransportName = 'failure_receiver_another';
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($failureTransportName)->willReturn(true);
-        $serviceLocator->method('get')->with($failureTransportName)->willReturn($receiver);
 
         $command = new FailedMessagesShowCommand(
             'global_but_not_used',
-            $serviceLocator
+            new ServiceLocator([$failureTransportName => static fn () => $receiver])
         );
 
         $tester = new CommandTester($command);
         $tester->execute(['--transport' => $failureTransportName]);
-        $this->assertStringContainsString(sprintf(<<<EOF
-15   stdClass   %s   Things are bad!
-EOF
-            ,
+        $this->assertStringContainsString(\sprintf(<<<EOF
+            15   stdClass   %s   Things are bad!
+            EOF,
             $redeliveryStamp->getRedeliveredAt()->format('Y-m-d H:i:s')),
             $tester->getDisplay(true));
     }
 
-
     public function testCompletingTransport()
     {
         $globalFailureReceiverName = 'failure_receiver';
 
-        $receiver = $this->createMock(ListableReceiverInterface::class);
-
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('getProvidedServices')->willReturn([
-            'global_receiver' => $receiver,
-            $globalFailureReceiverName => $receiver,
-        ]);
+        $receiver = $this->createStub(ListableReceiverInterface::class);
 
         $command = new FailedMessagesShowCommand(
             $globalFailureReceiverName,
-            $serviceLocator
+            new ServiceLocator([
+                'global_receiver' => $receiver,
+                $globalFailureReceiverName => static fn () => $receiver,
+            ])
         );
         $tester = new CommandCompletionTester($command);
 
@@ -426,13 +418,9 @@
             Envelope::wrap(new \stdClass(), [new TransportMessageIdStamp('78c2da843723')]),
         ]);
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($globalFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($globalFailureReceiverName)->willReturn($receiver);
-
         $command = new FailedMessagesShowCommand(
             $globalFailureReceiverName,
-            $serviceLocator
+            new ServiceLocator([$globalFailureReceiverName => static fn () => $receiver])
         );
         $tester = new CommandCompletionTester($command);
 
@@ -452,13 +440,9 @@
             Envelope::wrap(new \stdClass(), [new TransportMessageIdStamp('78c2da843723')]),
         ]);
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->with($anotherFailureReceiverName)->willReturn(true);
-        $serviceLocator->expects($this->any())->method('get')->with($anotherFailureReceiverName)->willReturn($receiver);
-
         $command = new FailedMessagesShowCommand(
             $globalFailureReceiverName,
-            $serviceLocator
+            new ServiceLocator([$anotherFailureReceiverName => static fn () => $receiver])
         );
         $tester = new CommandCompletionTester($command);
 
@@ -466,4 +450,72 @@
 
         $this->assertSame(['2ab50dfa1fbf', '78c2da843723'], $suggestions);
     }
+
+    public function testTableOutputGoesToStdout()
+    {
+        $envelope = new Envelope(new \stdClass(), [
+            new TransportMessageIdStamp('2ab50dfa1fbf'),
+            new SentToFailureTransportStamp('async'),
+            new RedeliveryStamp(0),
+        ]);
+
+        $receiver = $this->createMock(ListableReceiverInterface::class);
+        $receiver->expects($this->once())->method('all')->with(50)->willReturn([$envelope]);
+
+        $command = new FailedMessagesShowCommand('failure_receiver', new ServiceLocator(['failure_receiver' => static fn () => $receiver]));
+        $tester = new CommandTester($command);
+        $tester->execute([], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringContainsString('2ab50dfa1fbf', $stdout);
+        $this->assertStringContainsString('messenger:failed:show', $stderr);
+        $this->assertStringNotContainsString('2ab50dfa1fbf', $stderr);
+    }
+
+    public function testPendingMessageCountGoesToStdout()
+    {
+        $receiver = new class implements ListableReceiverInterface, MessageCountAwareInterface {
+            public function get(): iterable
+            {
+                return [];
+            }
+
+            public function ack(Envelope $envelope): void
+            {
+            }
+
+            public function reject(Envelope $envelope): void
+            {
+            }
+
+            public function find(mixed $id): ?Envelope
+            {
+                return null;
+            }
+
+            public function all(?int $limit = null): iterable
+            {
+                return [];
+            }
+
+            public function getMessageCount(): int
+            {
+                return 3;
+            }
+        };
+
+        $command = new FailedMessagesShowCommand('failure_receiver', new ServiceLocator(['failure_receiver' => static fn () => $receiver]));
+        $tester = new CommandTester($command);
+        $tester->execute(['--max' => 5], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringContainsString('There are', $stdout);
+        $this->assertStringContainsString('3', $stdout);
+        $this->assertStringContainsString('messages pending', $stdout);
+        $this->assertStringNotContainsString('messages pending', $stderr);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/SetupTransportsCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/SetupTransportsCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/SetupTransportsCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/SetupTransportsCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,10 +11,10 @@
 
 namespace Symfony\Component\Messenger\Tests\Command;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Console\Tester\CommandCompletionTester;
 use Symfony\Component\Console\Tester\CommandTester;
+use Symfony\Component\DependencyInjection\Container;
 use Symfony\Component\DependencyInjection\ServiceLocator;
 use Symfony\Component\Messenger\Command\SetupTransportsCommand;
 use Symfony\Component\Messenger\Transport\SetupableTransportInterface;
@@ -24,21 +24,10 @@
 {
     public function testReceiverNames()
     {
-        // mock a service locator
-        /** @var MockObject&ServiceLocator $serviceLocator */
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        // get method must be call twice and will return consecutively a setup-able transport and a non setup-able transport
-        $serviceLocator->expects($this->exactly(2))
-            ->method('get')
-            ->willReturn(
-                $this->createMock(SetupableTransportInterface::class),
-                $this->createMock(TransportInterface::class)
-            );
-        $serviceLocator
-            ->method('has')
-            ->willReturn(true);
-
-        $command = new SetupTransportsCommand($serviceLocator, ['amqp', 'other_transport']);
+        $command = new SetupTransportsCommand(new ServiceLocator([
+            'amqp' => fn () => $this->createStub(SetupableTransportInterface::class),
+            'other_transport' => fn () => $this->createStub(TransportInterface::class),
+        ]), ['amqp', 'other_transport']);
         $tester = new CommandTester($command);
         $tester->execute([]);
         $display = $tester->getDisplay();
@@ -49,18 +38,7 @@
 
     public function testReceiverNameArgument()
     {
-        // mock a service locator
-        /** @var MockObject&ServiceLocator $serviceLocator */
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        // get method must be call twice and will return consecutively a setup-able transport and a non setup-able transport
-        $serviceLocator->expects($this->once())
-            ->method('get')
-            ->willReturn($this->createMock(SetupableTransportInterface::class));
-        $serviceLocator->expects($this->once())
-            ->method('has')
-            ->willReturn(true);
-
-        $command = new SetupTransportsCommand($serviceLocator, ['amqp', 'other_transport']);
+        $command = new SetupTransportsCommand(new ServiceLocator(['amqp' => fn () => $this->createStub(SetupableTransportInterface::class)]), ['amqp', 'other_transport']);
         $tester = new CommandTester($command);
         $tester->execute(['transport' => 'amqp']);
         $display = $tester->getDisplay();
@@ -70,17 +48,7 @@
 
     public function testReceiverNameArgumentNotFound()
     {
-        // mock a service locator
-        /** @var MockObject&ServiceLocator $serviceLocator */
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        // get method must be call twice and will return consecutively a setup-able transport and a non setup-able transport
-        $serviceLocator->expects($this->exactly(0))
-            ->method('get');
-        $serviceLocator->expects($this->exactly(1))
-            ->method('has')
-            ->willReturn(false);
-
-        $command = new SetupTransportsCommand($serviceLocator, ['amqp', 'other_transport']);
+        $command = new SetupTransportsCommand(new ServiceLocator([]), ['amqp', 'other_transport']);
         $tester = new CommandTester($command);
 
         $this->expectException(\RuntimeException::class);
@@ -96,17 +64,7 @@
             ->method('setup')
             ->willThrowException(new \RuntimeException('Server not found'));
 
-        // mock a service locator
-        /** @var MockObject&ServiceLocator $serviceLocator */
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->exactly(1))
-            ->method('get')
-            ->willReturn($amqpTransport);
-        $serviceLocator
-            ->method('has')
-            ->willReturn(true);
-
-        $command = new SetupTransportsCommand($serviceLocator, ['amqp']);
+        $command = new SetupTransportsCommand(new ServiceLocator(['amqp' => static fn () => $amqpTransport]), ['amqp']);
         $tester = new CommandTester($command);
 
         $this->expectException(\RuntimeException::class);
@@ -119,8 +77,7 @@
      */
     public function testComplete(array $input, array $expectedSuggestions)
     {
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $command = new SetupTransportsCommand($serviceLocator, ['amqp', 'other_transport']);
+        $command = new SetupTransportsCommand(new Container(), ['amqp', 'other_transport']);
         $tester = new CommandCompletionTester($command);
         $suggestions = $tester->complete($input);
         $this->assertSame($expectedSuggestions, $suggestions);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/StatsCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/StatsCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/StatsCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/StatsCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,17 +27,16 @@
 
     protected function setUp(): void
     {
-        $messageCountableTransport = $this->createMock(MessageCountAwareInterface::class);
+        $messageCountableTransport = $this->createStub(MessageCountAwareInterface::class);
         $messageCountableTransport->method('getMessageCount')->willReturn(6);
 
-        $simpleTransport = $this->createMock(TransportInterface::class);
+        $simpleTransport = $this->createStub(TransportInterface::class);
 
         // mock a service locator
-        /** @var MockObject&ServiceLocator $serviceLocator */
-        $serviceLocator = $this->createMock(ServiceLocator::class);
+        $serviceLocator = $this->createStub(ServiceLocator::class);
         $serviceLocator
             ->method('get')
-            ->willReturnCallback(function (string $transportName) use ($messageCountableTransport, $simpleTransport) {
+            ->willReturnCallback(static function (string $transportName) use ($messageCountableTransport, $simpleTransport) {
                 if (\in_array($transportName, ['message_countable', 'another_message_countable'], true)) {
                     return $messageCountableTransport;
                 }
@@ -46,7 +45,7 @@
             });
         $serviceLocator
             ->method('has')
-            ->willReturnCallback(fn (string $transportName) => \in_array($transportName, ['message_countable', 'simple', 'another_message_countable'], true))
+            ->willReturnCallback(static fn (string $transportName) => \in_array($transportName, ['message_countable', 'simple', 'another_message_countable'], true))
         ;
 
         $this->command = new StatsCommand($serviceLocator, [
@@ -116,4 +115,33 @@
         $this->assertStringNotContainsString('another_message_countable', $display);
         $this->assertStringNotContainsString('! [NOTE] Unable to get message count for the following transports: "simple".', $display);
     }
+
+    public function testTableOutputGoesToStdout()
+    {
+        $tester = new CommandTester($this->command);
+        $tester->execute([], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringContainsString('Transport', $stdout);
+        $this->assertStringContainsString('message_countable', $stdout);
+
+        $this->assertStringContainsString('[WARNING]', $stderr);
+        $this->assertStringContainsString('[NOTE]', $stderr);
+        $this->assertStringNotContainsString('Transport', $stderr);
+    }
+
+    public function testWarningsGoToStderrWithSpecificTransport()
+    {
+        $tester = new CommandTester($this->command);
+        $tester->execute(['transport_names' => ['message_countable']], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringContainsString('message_countable', $stdout);
+        $this->assertStringNotContainsString('[WARNING]', $stderr);
+        $this->assertStringNotContainsString('Transport', $stderr);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/StopWorkersCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/StopWorkersCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Command/StopWorkersCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Command/StopWorkersCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,4 +32,24 @@
         $tester = new CommandTester($command);
         $tester->execute([]);
     }
+
+    public function testSuccessMessageGoesToStdout()
+    {
+        $cachePool = $this->createStub(CacheItemPoolInterface::class);
+        $cacheItem = $this->createStub(CacheItemInterface::class);
+        $cacheItem->method('set');
+        $cachePool->method('getItem')->willReturn($cacheItem);
+        $cachePool->method('save');
+
+        $command = new StopWorkersCommand($cachePool);
+
+        $tester = new CommandTester($command);
+        $tester->execute([], ['capture_stderr_separately' => true]);
+
+        $stdout = $tester->getDisplay();
+        $stderr = $tester->getErrorOutput();
+
+        $this->assertStringContainsString('Signal successfully sent', $stdout);
+        $this->assertStringNotContainsString('Signal successfully sent', $stderr);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/DataCollector/MessengerDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/DataCollector/MessengerDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/DataCollector/MessengerDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/DataCollector/MessengerDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
         $message = new DummyMessage('dummy message');
         $envelope = new Envelope($message);
 
-        $bus = $this->createMock(MessageBusInterface::class);
+        $bus = $this->createStub(MessageBusInterface::class);
         $bus->method('dispatch')->with($message)->willReturn($envelope);
         $bus = new TraceableMessageBus($bus);
 
@@ -54,23 +54,23 @@
 
         $file = __FILE__;
         $expected = <<<DUMP
-array:5 [
-  "bus" => "default"
-  "stamps" => []
-  "stamps_after_dispatch" => []
-  "message" => array:2 [
-    "type" => "Symfony\Component\Messenger\Tests\Fixtures\DummyMessage"
-    "value" => Symfony\Component\Messenger\Tests\Fixtures\DummyMessage %A
-      -message: "dummy message"
-    }
-  ]
-  "caller" => array:3 [
-    "name" => "MessengerDataCollectorTest.php"
-    "file" => "$file"
-    "line" => %d
-  ]
-]
-DUMP;
+            array:5 [
+              "bus" => "default"
+              "stamps" => []
+              "stamps_after_dispatch" => []
+              "message" => array:2 [
+                "type" => "Symfony\Component\Messenger\Tests\Fixtures\DummyMessage"
+                "value" => Symfony\Component\Messenger\Tests\Fixtures\DummyMessage %A
+                  -message: "dummy message"
+                }
+              ]
+              "caller" => array:3 [
+                "name" => "MessengerDataCollectorTest.php"
+                "file" => "$file"
+                "line" => %d
+              ]
+            ]
+            DUMP;
 
         $this->assertStringMatchesFormat($expected, $this->getDataAsString($messages[0]));
     }
@@ -79,7 +79,7 @@
     {
         $message = new DummyMessage('dummy message');
 
-        $bus = $this->createMock(MessageBusInterface::class);
+        $bus = $this->createStub(MessageBusInterface::class);
         $bus->method('dispatch')->with($message)->willThrowException(new \RuntimeException('foo'));
         $bus = new TraceableMessageBus($bus);
 
@@ -100,37 +100,38 @@
 
         $file = __FILE__;
         $this->assertStringMatchesFormat(<<<DUMP
-array:6 [
-  "bus" => "default"
-  "stamps" => []
-  "stamps_after_dispatch" => []
-  "message" => array:2 [
-    "type" => "Symfony\Component\Messenger\Tests\Fixtures\DummyMessage"
-    "value" => Symfony\Component\Messenger\Tests\Fixtures\DummyMessage %A
-      -message: "dummy message"
-    }
-  ]
-  "caller" => array:3 [
-    "name" => "MessengerDataCollectorTest.php"
-    "file" => "$file"
-    "line" => $line
-  ]
-  "exception" => array:2 [
-    "type" => "RuntimeException"
-    "value" => RuntimeException %A
-  ]
-]
-DUMP
-            , $this->getDataAsString($messages[0]));
+            array:6 [
+              "bus" => "default"
+              "stamps" => []
+              "stamps_after_dispatch" => []
+              "message" => array:2 [
+                "type" => "Symfony\Component\Messenger\Tests\Fixtures\DummyMessage"
+                "value" => Symfony\Component\Messenger\Tests\Fixtures\DummyMessage %A
+                  -message: "dummy message"
+                }
+              ]
+              "caller" => array:3 [
+                "name" => "MessengerDataCollectorTest.php"
+                "file" => "$file"
+                "line" => $line
+              ]
+              "exception" => array:2 [
+                "type" => "RuntimeException"
+                "value" => RuntimeException %A
+              ]
+            ]
+            DUMP,
+            $this->getDataAsString($messages[0])
+        );
     }
 
     public function testKeepsOrderedDispatchCalls()
     {
-        $firstBus = $this->createMock(MessageBusInterface::class);
+        $firstBus = $this->createStub(MessageBusInterface::class);
         $firstBus->method('dispatch')->willReturn(new Envelope(new \stdClass()));
         $firstBus = new TraceableMessageBus($firstBus);
 
-        $secondBus = $this->createMock(MessageBusInterface::class);
+        $secondBus = $this->createStub(MessageBusInterface::class);
         $secondBus->method('dispatch')->willReturn(new Envelope(new \stdClass()));
         $secondBus = new TraceableMessageBus($secondBus);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -160,7 +160,7 @@
             unset($tagAttributes['fromTransport']);
             if ($reflector instanceof \ReflectionMethod) {
                 if (isset($tagAttributes['method'])) {
-                    throw new LogicException(sprintf('AsMessageHandler attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
+                    throw new LogicException(\sprintf('AsMessageHandler attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
                 }
                 $tagAttributes['method'] = $reflector->getName();
             }
@@ -213,7 +213,7 @@
             unset($tagAttributes['fromTransport']);
             if ($reflector instanceof \ReflectionMethod) {
                 if (isset($tagAttributes['method'])) {
-                    throw new LogicException(sprintf('AsMessageHandler attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
+                    throw new LogicException(\sprintf('AsMessageHandler attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
                 }
                 $tagAttributes['method'] = $reflector->getName();
             }
@@ -734,7 +734,7 @@
     public function testUnionBuiltinArgumentTypeHandler()
     {
         $this->expectException(RuntimeException::class);
-        $this->expectExceptionMessage(sprintf('Invalid handler service "%s": type-hint of argument "$message" in method "%s::__invoke()" must be a class , "string|int" given.', UnionBuiltinTypeArgumentHandler::class, UnionBuiltinTypeArgumentHandler::class));
+        $this->expectExceptionMessage(\sprintf('Invalid handler service "%s": type-hint of argument "$message" in method "%s::__invoke()" must be a class , "string|int" given.', UnionBuiltinTypeArgumentHandler::class, UnionBuiltinTypeArgumentHandler::class));
         $container = $this->getContainerBuilder();
         $container
             ->register(UnionBuiltinTypeArgumentHandler::class, UnionBuiltinTypeArgumentHandler::class)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/ResetServicesListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/ResetServicesListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/ResetServicesListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/ResetServicesListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
 use Symfony\Component\Messenger\Event\WorkerRunningEvent;
 use Symfony\Component\Messenger\Event\WorkerStoppedEvent;
 use Symfony\Component\Messenger\EventListener\ResetServicesListener;
+use Symfony\Component\Messenger\MessageBus;
 use Symfony\Component\Messenger\Worker;
 
 class ResetServicesListenerTest extends TestCase
@@ -34,7 +35,7 @@
         $servicesResetter = $this->createMock(ServicesResetter::class);
         $servicesResetter->expects($shouldReset ? $this->once() : $this->never())->method('reset');
 
-        $event = new WorkerRunningEvent($this->createMock(Worker::class), !$shouldReset);
+        $event = new WorkerRunningEvent(new Worker([], new MessageBus()), !$shouldReset);
 
         $resetListener = new ResetServicesListener($servicesResetter);
         $resetListener->resetServices($event);
@@ -45,7 +46,7 @@
         $servicesResetter = $this->createMock(ServicesResetter::class);
         $servicesResetter->expects($this->once())->method('reset');
 
-        $event = new WorkerStoppedEvent($this->createMock(Worker::class));
+        $event = new WorkerStoppedEvent(new Worker([], new MessageBus()));
 
         $resetListener = new ResetServicesListener($servicesResetter);
         $resetListener->resetServicesAtStop($event);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/SendFailedMessageForRetryListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/SendFailedMessageForRetryListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/SendFailedMessageForRetryListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/SendFailedMessageForRetryListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -200,9 +200,7 @@
         $envelope = new Envelope(new \stdClass());
 
         $sender = $this->createMock(SenderInterface::class);
-        $sender->expects($this->once())->method('send')->willReturnCallback(static function (Envelope $envelope) {
-            return $envelope->with(new TransportMessageIdStamp(123));
-        });
+        $sender->expects($this->once())->method('send')->willReturnCallback(static fn (Envelope $envelope) => $envelope->with(new TransportMessageIdStamp(123)));
 
         $eventDispatcher = $this->createMock(EventDispatcherInterface::class);
         $eventDispatcher->expects($this->once())->method('dispatch')->willReturnCallback(
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/SendFailedMessageToFailureTransportListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/SendFailedMessageToFailureTransportListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/SendFailedMessageToFailureTransportListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/SendFailedMessageToFailureTransportListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,10 +26,7 @@
         $receiverName = 'my_receiver';
         $sender = $this->createMock(SenderInterface::class);
         $sender->expects($this->once())->method('send')->with($this->callback(function ($envelope) use ($receiverName) {
-            /* @var Envelope $envelope */
             $this->assertInstanceOf(Envelope::class, $envelope);
-
-            /** @var SentToFailureTransportStamp $sentToFailureTransportStamp */
             $sentToFailureTransportStamp = $envelope->last(SentToFailureTransportStamp::class);
             $this->assertNotNull($sentToFailureTransportStamp);
             $this->assertSame($receiverName, $sentToFailureTransportStamp->getOriginalReceiverName());
@@ -37,9 +34,9 @@
             return true;
         }))->willReturnArgument(0);
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->expects($this->once())->method('has')->willReturn(true);
-        $serviceLocator->expects($this->once())->method('get')->with($receiverName)->willReturn($sender);
+        $serviceLocator = new ServiceLocator([
+            $receiverName => static fn () => $sender,
+        ]);
         $listener = new SendFailedMessageToFailureTransportListener($serviceLocator);
 
         $exception = new \Exception('no!');
@@ -54,8 +51,7 @@
         $sender = $this->createMock(SenderInterface::class);
         $sender->expects($this->never())->method('send');
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $listener = new SendFailedMessageToFailureTransportListener($serviceLocator);
+        $listener = new SendFailedMessageToFailureTransportListener(new ServiceLocator([]));
 
         $envelope = new Envelope(new \stdClass());
         $event = new WorkerMessageFailedEvent($envelope, 'my_receiver', new \Exception());
@@ -64,14 +60,61 @@
         $listener->onMessageFailed($event);
     }
 
-    public function testDoNotRedeliverToFailedWithServiceLocator()
+    public function testDoNotRedeliverToSelfReferentialFailureTransport()
     {
         $receiverName = 'my_receiver';
 
         $sender = $this->createMock(SenderInterface::class);
         $sender->expects($this->never())->method('send');
-        $serviceLocator = $this->createMock(ServiceLocator::class);
 
+        $serviceLocator = new ServiceLocator([
+            $receiverName => static fn () => $sender,
+        ]);
+        // The failure transport for 'my_receiver' is itself: skip to prevent an infinite loop
+        $listener = new SendFailedMessageToFailureTransportListener($serviceLocator, null, [$receiverName => $receiverName]);
+        $envelope = new Envelope(new \stdClass());
+        $event = new WorkerMessageFailedEvent($envelope, $receiverName, new \Exception());
+
+        $listener->onMessageFailed($event);
+    }
+
+    public function testItForwardsToChainedFailureTransportWhenDifferentFromReceiver()
+    {
+        $receiverName = 'failed';
+        $chainedFailureTransportName = 'super_failed';
+
+        $sender = $this->createMock(SenderInterface::class);
+        $sender->expects($this->once())->method('send')->with($this->callback(function ($envelope) use ($receiverName) {
+            $this->assertInstanceOf(Envelope::class, $envelope);
+            $sentToFailureTransportStamp = $envelope->last(SentToFailureTransportStamp::class);
+            $this->assertNotNull($sentToFailureTransportStamp);
+            $this->assertSame($receiverName, $sentToFailureTransportStamp->getOriginalReceiverName());
+
+            return true;
+        }))->willReturnArgument(0);
+
+        $serviceLocator = new ServiceLocator([
+            $receiverName => static fn () => $sender,
+        ]);
+        // The failure transport for 'failed' is 'super_failed' (different): it should forward
+        $listener = new SendFailedMessageToFailureTransportListener($serviceLocator, null, [$receiverName => $chainedFailureTransportName]);
+        $envelope = new Envelope(new \stdClass());
+        $event = new WorkerMessageFailedEvent($envelope, $receiverName, new \Exception());
+
+        $listener->onMessageFailed($event);
+    }
+
+    public function testDoNotRedeliverToFailedWithStampFallback()
+    {
+        $receiverName = 'my_receiver';
+
+        $sender = $this->createMock(SenderInterface::class);
+        $sender->expects($this->never())->method('send');
+
+        // No $failureTransportsByName: falls back to SentToFailureTransportStamp check
+        $serviceLocator = new ServiceLocator([
+            $receiverName => static fn () => $sender,
+        ]);
         $listener = new SendFailedMessageToFailureTransportListener($serviceLocator);
         $envelope = new Envelope(new \stdClass(), [
             new SentToFailureTransportStamp($receiverName),
@@ -81,13 +124,33 @@
         $listener->onMessageFailed($event);
     }
 
+    public function testDoNotRedeliverToFailedWithStampWhenFailureTransportsAreConfigured()
+    {
+        $receiverName = 'my_receiver';
+
+        $sender = $this->createMock(SenderInterface::class);
+        $sender->expects($this->never())->method('send');
+
+        // Subscribers may add SentToFailureTransportStamp manually to opt out of the failure transport,
+        // even when $failureTransportsByName is populated (e.g. several transports share one listener).
+        $serviceLocator = new ServiceLocator([
+            $receiverName => static fn () => $sender,
+        ]);
+        $listener = new SendFailedMessageToFailureTransportListener($serviceLocator, null, [$receiverName => 'failed']);
+        $envelope = new Envelope(new \stdClass(), [
+            new SentToFailureTransportStamp($receiverName),
+        ]);
+        $event = new WorkerMessageFailedEvent($envelope, $receiverName, new \Exception());
+
+        $listener->onMessageFailed($event);
+    }
+
     public function testDoNothingIfFailureTransportIsNotDefined()
     {
         $sender = $this->createMock(SenderInterface::class);
         $sender->expects($this->never())->method('send');
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $listener = new SendFailedMessageToFailureTransportListener($serviceLocator, null);
+        $listener = new SendFailedMessageToFailureTransportListener(new ServiceLocator([]), null);
 
         $exception = new \Exception('no!');
         $envelope = new Envelope(new \stdClass());
@@ -101,10 +164,7 @@
         $receiverName = 'my_receiver';
         $sender = $this->createMock(SenderInterface::class);
         $sender->expects($this->once())->method('send')->with($this->callback(function ($envelope) use ($receiverName) {
-            /* @var Envelope $envelope */
             $this->assertInstanceOf(Envelope::class, $envelope);
-
-            /** @var SentToFailureTransportStamp $sentToFailureTransportStamp */
             $sentToFailureTransportStamp = $envelope->last(SentToFailureTransportStamp::class);
             $this->assertNotNull($sentToFailureTransportStamp);
             $this->assertSame($receiverName, $sentToFailureTransportStamp->getOriginalReceiverName());
@@ -112,9 +172,9 @@
             return true;
         }))->willReturnArgument(0);
 
-        $serviceLocator = $this->createMock(ServiceLocator::class);
-        $serviceLocator->method('has')->with($receiverName)->willReturn(true);
-        $serviceLocator->method('get')->with($receiverName)->willReturn($sender);
+        $serviceLocator = new ServiceLocator([
+            $receiverName => static fn () => $sender,
+        ]);
 
         $listener = new SendFailedMessageToFailureTransportListener($serviceLocator);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnCustomStopExceptionListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnCustomStopExceptionListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnCustomStopExceptionListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnCustomStopExceptionListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
         yield 'it should not stop (1)' => [new \Exception(), false];
         yield 'it should not stop (2)' => [new HandlerFailedException(new Envelope(new \stdClass()), [new \Exception()]), false];
 
-        $t = new class() extends \Exception implements StopWorkerExceptionInterface {};
+        $t = new class extends \Exception implements StopWorkerExceptionInterface {};
         yield 'it should stop with custom exception' => [$t, true];
         yield 'it should stop with core exception' => [new StopWorkerException(), true];
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnFailureLimitListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnFailureLimitListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnFailureLimitListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnFailureLimitListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,7 @@
 use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent;
 use Symfony\Component\Messenger\Event\WorkerRunningEvent;
 use Symfony\Component\Messenger\EventListener\StopWorkerOnFailureLimitListener;
+use Symfony\Component\Messenger\MessageBus;
 use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
 use Symfony\Component\Messenger\Worker;
 
@@ -61,8 +62,7 @@
                 $this->equalTo(['count' => 1])
             );
 
-        $worker = $this->createMock(Worker::class);
-        $event = new WorkerRunningEvent($worker, false);
+        $event = new WorkerRunningEvent(new Worker([], new MessageBus()), false);
 
         $failureLimitListener = new StopWorkerOnFailureLimitListener(1, $logger);
         $failureLimitListener->onMessageFailed($this->createFailedEvent());
@@ -73,6 +73,6 @@
     {
         $envelope = new Envelope(new DummyMessage('hello'));
 
-        return new WorkerMessageFailedEvent($envelope, 'default', $this->createMock(\Throwable::class));
+        return new WorkerMessageFailedEvent($envelope, 'default', new \Exception());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnMemoryLimitListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnMemoryLimitListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnMemoryLimitListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnMemoryLimitListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Psr\Log\LoggerInterface;
 use Symfony\Component\Messenger\Event\WorkerRunningEvent;
 use Symfony\Component\Messenger\EventListener\StopWorkerOnMemoryLimitListener;
+use Symfony\Component\Messenger\MessageBus;
 use Symfony\Component\Messenger\Worker;
 
 class StopWorkerOnMemoryLimitListenerTest extends TestCase
@@ -24,7 +25,7 @@
      */
     public function testWorkerStopsWhenMemoryLimitExceeded(int $memoryUsage, int $memoryLimit, bool $shouldStop)
     {
-        $memoryResolver = fn () => $memoryUsage;
+        $memoryResolver = static fn () => $memoryUsage;
 
         $worker = $this->createMock(Worker::class);
         $worker->expects($shouldStop ? $this->once() : $this->never())->method('stop');
@@ -47,10 +48,9 @@
         $logger->expects($this->once())->method('info')
             ->with('Worker stopped due to memory limit of {limit} bytes exceeded ({memory} bytes used)', ['limit' => 64, 'memory' => 70]);
 
-        $memoryResolver = fn () => 70;
+        $memoryResolver = static fn () => 70;
 
-        $worker = $this->createMock(Worker::class);
-        $event = new WorkerRunningEvent($worker, false);
+        $event = new WorkerRunningEvent(new Worker([], new MessageBus()), false);
 
         $memoryLimitListener = new StopWorkerOnMemoryLimitListener(64, $logger, $memoryResolver);
         $memoryLimitListener->onWorkerRunning($event);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnMessageLimitListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnMessageLimitListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnMessageLimitListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnMessageLimitListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Psr\Log\LoggerInterface;
 use Symfony\Component\Messenger\Event\WorkerRunningEvent;
 use Symfony\Component\Messenger\EventListener\StopWorkerOnMessageLimitListener;
+use Symfony\Component\Messenger\MessageBus;
 use Symfony\Component\Messenger\Worker;
 
 class StopWorkerOnMessageLimitListenerTest extends TestCase
@@ -52,8 +53,7 @@
                 $this->equalTo(['count' => 1])
             );
 
-        $worker = $this->createMock(Worker::class);
-        $event = new WorkerRunningEvent($worker, false);
+        $event = new WorkerRunningEvent(new Worker([], new MessageBus()), false);
 
         $maximumCountListener = new StopWorkerOnMessageLimitListener(1, $logger);
         $maximumCountListener->onWorkerRunning($event);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Exception/HandlerFailedExceptionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Exception/HandlerFailedExceptionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Exception/HandlerFailedExceptionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Exception/HandlerFailedExceptionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,7 @@
     public function testThatStringErrorCodeConvertsToInteger()
     {
         $envelope = new Envelope(new \stdClass());
-        $exception = new class() extends \RuntimeException {
+        $exception = new class extends \RuntimeException {
             public function __construct()
             {
                 $this->code = 'HY000';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/FailureIntegrationTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/FailureIntegrationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/FailureIntegrationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/FailureIntegrationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,8 +56,8 @@
         $transport2 = new DummyFailureTestSenderAndReceiver();
         $failureTransport = new DummyFailureTestSenderAndReceiver();
         $sendersLocatorFailureTransport = new ServiceLocator([
-            'transport1' => fn () => $failureTransport,
-            'transport2' => fn () => $failureTransport,
+            'transport1' => static fn () => $failureTransport,
+            'transport2' => static fn () => $failureTransport,
         ]);
 
         $transports = [
@@ -72,7 +72,7 @@
             ->willReturn(true);
         $locator->expects($this->any())
             ->method('get')
-            ->willReturnCallback(fn ($transportName) => $transports[$transportName]);
+            ->willReturnCallback(static fn ($transportName) => $transports[$transportName]);
         $senderLocator = new SendersLocator(
             [DummyMessage::class => ['transport1', 'transport2']],
             $locator
@@ -118,9 +118,9 @@
         $dispatcher->addSubscriber(new SendFailedMessageToFailureTransportListener($sendersLocatorFailureTransport));
         $dispatcher->addSubscriber(new StopWorkerOnMessageLimitListener(1));
 
-        $runWorker = function (string $transportName) use ($transports, $bus, $dispatcher): ?\Throwable {
+        $runWorker = static function (string $transportName) use ($transports, $bus, $dispatcher): ?\Throwable {
             $throwable = null;
-            $failedListener = function (WorkerMessageFailedEvent $event) use (&$throwable) {
+            $failedListener = static function (WorkerMessageFailedEvent $event) use (&$throwable) {
                 $throwable = $event->getThrowable();
             };
             $dispatcher->addListener(WorkerMessageFailedEvent::class, $failedListener);
@@ -177,7 +177,7 @@
         /** @var ErrorDetailsStamp $errorDetailsStamp */
         $errorDetailsStamp = $failedEnvelope->last(ErrorDetailsStamp::class);
         $this->assertNotNull($errorDetailsStamp);
-        $this->assertSame('Failure from call 2', $errorDetailsStamp->getExceptionMessage());
+        $this->assertSame('Failure from call 1', $errorDetailsStamp->getExceptionMessage());
 
         /*
          * Failed message is handled, fails, and sent for a retry
@@ -241,8 +241,8 @@
         $failureTransport2 = new DummyFailureTestSenderAndReceiver();
 
         $sendersLocatorFailureTransport = new ServiceLocator([
-            'transport1' => fn () => $failureTransport1,
-            'transport2' => fn () => $failureTransport2,
+            'transport1' => static fn () => $failureTransport1,
+            'transport2' => static fn () => $failureTransport2,
         ]);
 
         $transports = [
@@ -258,7 +258,7 @@
             ->willReturn(true);
         $locator->expects($this->any())
             ->method('get')
-            ->willReturnCallback(fn ($transportName) => $transports[$transportName]);
+            ->willReturnCallback(static fn ($transportName) => $transports[$transportName]);
         $senderLocator = new SendersLocator(
             [DummyMessage::class => ['transport1', 'transport2']],
             $locator
@@ -301,9 +301,9 @@
         ));
         $dispatcher->addSubscriber(new StopWorkerOnMessageLimitListener(1));
 
-        $runWorker = function (string $transportName) use ($transports, $bus, $dispatcher): ?\Throwable {
+        $runWorker = static function (string $transportName) use ($transports, $bus, $dispatcher): ?\Throwable {
             $throwable = null;
-            $failedListener = function (WorkerMessageFailedEvent $event) use (&$throwable) {
+            $failedListener = static function (WorkerMessageFailedEvent $event) use (&$throwable) {
                 $throwable = $event->getThrowable();
             };
             $dispatcher->addListener(WorkerMessageFailedEvent::class, $failedListener);
@@ -379,7 +379,7 @@
             ->willReturn(true);
         $locator->expects($this->any())
             ->method('get')
-            ->willReturnCallback(fn ($transportName) => $transports[$transportName]);
+            ->willReturnCallback(static fn ($transportName) => $transports[$transportName]);
         $senderLocator = new SendersLocator([], $locator);
 
         $retryStrategyLocator = $this->createMock(ContainerInterface::class);
@@ -400,7 +400,7 @@
 
         $bus = new MessageBus($middlewareStack);
 
-        $transport1Handler = fn () => $bus->dispatch(new \stdClass(), [new DispatchAfterCurrentBusStamp()]);
+        $transport1Handler = static fn () => $bus->dispatch(new \stdClass(), [new DispatchAfterCurrentBusStamp()]);
 
         $handlerLocator = new HandlersLocator([
             DummyMessage::class => [new HandlerDescriptor($transport1Handler)],
@@ -414,9 +414,9 @@
         $dispatcher->addSubscriber(new SendFailedMessageForRetryListener($locator, $retryStrategyLocator));
         $dispatcher->addSubscriber(new StopWorkerOnMessageLimitListener(1));
 
-        $runWorker = function (string $transportName) use ($transports, $bus, $dispatcher): ?\Throwable {
+        $runWorker = static function (string $transportName) use ($transports, $bus, $dispatcher): ?\Throwable {
             $throwable = null;
-            $failedListener = function (WorkerMessageFailedEvent $event) use (&$throwable) {
+            $failedListener = static function (WorkerMessageFailedEvent $event) use (&$throwable) {
                 $throwable = $event->getThrowable();
             };
             $dispatcher->addListener(WorkerMessageFailedEvent::class, $failedListener);
@@ -460,7 +460,7 @@
             ->willReturn(true);
         $locator->expects($this->any())
             ->method('get')
-            ->willReturnCallback(fn ($transportName) => $transports[$transportName]);
+            ->willReturnCallback(static fn ($transportName) => $transports[$transportName]);
         $senderLocator = new SendersLocator([], $locator);
 
         $retryStrategyLocator = $this->createMock(ContainerInterface::class);
@@ -483,7 +483,7 @@
 
         $bus = new MessageBus($middlewareStack);
 
-        $transport1Handler = fn () => $bus->dispatch(new \stdClass(), [new DispatchAfterCurrentBusStamp()]);
+        $transport1Handler = static fn () => $bus->dispatch(new \stdClass(), [new DispatchAfterCurrentBusStamp()]);
 
         $handlerLocator = new HandlersLocator([
             DummyMessage::class => [new HandlerDescriptor($transport1Handler)],
@@ -496,9 +496,9 @@
         $dispatcher->addSubscriber(new SendFailedMessageForRetryListener($locator, $retryStrategyLocator));
         $dispatcher->addSubscriber(new StopWorkerOnMessageLimitListener(1));
 
-        $runWorker = function (string $transportName) use ($transports, $bus, $dispatcher): ?\Throwable {
+        $runWorker = static function (string $transportName) use ($transports, $bus, $dispatcher): ?\Throwable {
             $throwable = null;
-            $failedListener = function (WorkerMessageFailedEvent $event) use (&$throwable) {
+            $failedListener = static function (WorkerMessageFailedEvent $event) use (&$throwable) {
                 $throwable = $event->getThrowable();
             };
             $dispatcher->addListener(WorkerMessageFailedEvent::class, $failedListener);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Fixtures/DummyReceiver.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Fixtures/DummyReceiver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Fixtures/DummyReceiver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Fixtures/DummyReceiver.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,4 +63,9 @@
     {
         return $this->acknowledgedEnvelopes;
     }
+
+    public function getRejectedEnvelopes(): array
+    {
+        return $this->rejectedEnvelopes;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Handler/AcknowledgerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Handler/AcknowledgerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Handler/AcknowledgerTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Handler/AcknowledgerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,51 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Messenger\Tests\Handler;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Messenger\Handler\Acknowledger;
+
+class AcknowledgerTest extends TestCase
+{
+    public function testNackAfterAckThrowsIsAllowed()
+    {
+        $ackCalls = 0;
+        $nackCalls = 0;
+        $nackError = null;
+
+        $ack = static function (?\Throwable $error = null) use (&$ackCalls, &$nackCalls, &$nackError): void {
+            if (null === $error) {
+                ++$ackCalls;
+                throw new \RuntimeException('Ack failed.');
+            }
+
+            ++$nackCalls;
+            $nackError = $error;
+        };
+
+        $acknowledger = new Acknowledger('handler', $ack);
+
+        try {
+            $acknowledger->ack();
+        } catch (\RuntimeException) {
+        }
+
+        $error = new \RuntimeException('Nack failed.');
+        $acknowledger->nack($error);
+
+        $this->assertSame(1, $ackCalls);
+        $this->assertSame(1, $nackCalls);
+        $this->assertSame($error, $nackError);
+        $this->assertTrue($acknowledger->isAcknowledged());
+        $this->assertSame($error, $acknowledger->getError());
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandleDescriptorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandleDescriptorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandleDescriptorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandleDescriptorTest.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,63 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Messenger\Tests\Handler;
-
-use PHPUnit\Framework\TestCase;
-use Symfony\Component\Messenger\Handler\HandlerDescriptor;
-use Symfony\Component\Messenger\Tests\Fixtures\DummyCommandHandler;
-
-class HandleDescriptorTest extends TestCase
-{
-    /**
-     * @dataProvider provideHandlers
-     */
-    public function testDescriptorNames(callable $handler, ?string $expectedHandlerString)
-    {
-        $descriptor = new HandlerDescriptor($handler);
-
-        $this->assertStringMatchesFormat($expectedHandlerString, $descriptor->getName());
-    }
-
-    public static function provideHandlers(): iterable
-    {
-        yield [function () {}, 'Closure'];
-        yield ['var_dump', 'var_dump'];
-        yield [new DummyCommandHandler(), DummyCommandHandler::class.'::__invoke'];
-        yield [
-            [new DummyCommandHandlerWithSpecificMethod(), 'handle'],
-            DummyCommandHandlerWithSpecificMethod::class.'::handle',
-        ];
-        yield [\Closure::fromCallable(function () {}), 'Closure'];
-        yield [\Closure::fromCallable(new DummyCommandHandler()), DummyCommandHandler::class.'::__invoke'];
-        yield [\Closure::bind(\Closure::fromCallable(function () {}), new \stdClass()), 'Closure'];
-        yield [new class() {
-            public function __invoke()
-            {
-            }
-        }, 'class@anonymous%sHandleDescriptorTest.php%s::__invoke'];
-    }
-
-    public function testGetOptions()
-    {
-        $options = ['option1' => 'value1', 'option2' => 'value2'];
-        $descriptor = new HandlerDescriptor(function () {}, $options);
-
-        $this->assertSame($options, $descriptor->getOptions());
-    }
-}
-
-class DummyCommandHandlerWithSpecificMethod
-{
-    public function handle(): void
-    {
-    }
-}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandlerDescriptorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandlerDescriptorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandlerDescriptorTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandlerDescriptorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,65 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Messenger\Tests\Handler;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Messenger\Handler\HandlerDescriptor;
+use Symfony\Component\Messenger\Tests\Fixtures\DummyCommandHandler;
+
+class HandlerDescriptorTest extends TestCase
+{
+    /**
+     * @dataProvider provideHandlers
+     */
+    public function testDescriptorNames(callable $handler, ?string $expectedHandlerString)
+    {
+        $descriptor = new HandlerDescriptor($handler);
+
+        $this->assertStringMatchesFormat($expectedHandlerString, $descriptor->getName());
+    }
+
+    public static function provideHandlers(): iterable
+    {
+        yield [static function () {}, 'Closure'];
+        yield ['var_dump', 'var_dump'];
+        yield [new DummyCommandHandler(), DummyCommandHandler::class.'::__invoke'];
+        yield [
+            [new DummyCommandHandlerWithSpecificMethod(), 'handle'],
+            DummyCommandHandlerWithSpecificMethod::class.'::handle',
+        ];
+        yield [\Closure::fromCallable(static function () {}), 'Closure'];
+        yield [\Closure::fromCallable(new DummyCommandHandler()), DummyCommandHandler::class.'::__invoke'];
+        yield [\Closure::bind(\Closure::fromCallable(function () { \assert(null !== $this); }), new \stdClass()), 'Closure'];
+        yield [new class {
+            public function __invoke()
+            {
+            }
+        }, 'class@anonymous%sHandlerDescriptorTest.php%s::__invoke'];
+    }
+
+    public function testGetOptions()
+    {
+        $options = ['option1' => 'value1', 'option2' => 'value2'];
+        $descriptor = new HandlerDescriptor(static function () {}, $options);
+
+        $this->assertSame($options, $descriptor->getOptions());
+    }
+}
+
+class DummyCommandHandlerWithSpecificMethod
+{
+    public function handle(): void
+    {
+    }
+}
+
+// @php-cs-fixer-ignore static_lambda Lambda explicitly binded to an object, cannot be static
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandlersLocatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandlersLocatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandlersLocatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Handler/HandlersLocatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
 {
     public function testItYieldsHandlerDescriptors()
     {
-        $handler = $this->createPartialMock(HandlersLocatorTestCallable::class, ['__invoke']);
+        $handler = new HandlersLocatorTestCallable();
         $locator = new HandlersLocator([
             DummyMessage::class => [$handler],
         ]);
@@ -35,13 +35,13 @@
 
     public function testItReturnsOnlyHandlersMatchingTransport()
     {
-        $firstHandler = $this->createPartialMock(HandlersLocatorTestCallable::class, ['__invoke']);
-        $secondHandler = $this->createPartialMock(HandlersLocatorTestCallable::class, ['__invoke']);
+        $firstHandler = new HandlersLocatorTestCallable();
+        $secondHandler = new HandlersLocatorTestCallable();
 
         $locator = new HandlersLocator([
             DummyMessage::class => [
                 $first = new HandlerDescriptor($firstHandler, ['alias' => 'one']),
-                new HandlerDescriptor($this->createPartialMock(HandlersLocatorTestCallable::class, ['__invoke']), ['from_transport' => 'ignored', 'alias' => 'two']),
+                new HandlerDescriptor(new HandlersLocatorTestCallable(), ['from_transport' => 'ignored', 'alias' => 'two']),
                 $second = new HandlerDescriptor($secondHandler, ['from_transport' => 'transportName', 'alias' => 'three']),
             ],
         ]);
@@ -59,8 +59,8 @@
 
     public function testItReturnsOnlyHandlersMatchingMessageNamespace()
     {
-        $firstHandler = $this->createPartialMock(HandlersLocatorTestCallable::class, ['__invoke']);
-        $secondHandler = $this->createPartialMock(HandlersLocatorTestCallable::class, ['__invoke']);
+        $firstHandler = new HandlersLocatorTestCallable();
+        $secondHandler = new HandlersLocatorTestCallable();
 
         $locator = new HandlersLocator([
             str_replace('DummyMessage', '*', DummyMessage::class) => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/MessageBusTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/MessageBusTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/MessageBusTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/MessageBusTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
         $firstMiddleware->expects($this->once())
             ->method('handle')
             ->with($envelope, $this->anything())
-            ->willReturnCallback(fn ($envelope, $stack) => $stack->next()->handle($envelope, $stack));
+            ->willReturnCallback(static fn ($envelope, $stack) => $stack->next()->handle($envelope, $stack));
 
         $secondMiddleware = $this->createMock(MiddlewareInterface::class);
         $secondMiddleware->expects($this->once())
@@ -68,13 +68,13 @@
         $firstMiddleware->expects($this->once())
             ->method('handle')
             ->with($envelope, $this->anything())
-            ->willReturnCallback(fn ($envelope, $stack) => $stack->next()->handle($envelope->with(new AnEnvelopeStamp()), $stack));
+            ->willReturnCallback(static fn ($envelope, $stack) => $stack->next()->handle($envelope->with(new AnEnvelopeStamp()), $stack));
 
         $secondMiddleware = $this->createMock(MiddlewareInterface::class);
         $secondMiddleware->expects($this->once())
             ->method('handle')
             ->with($envelopeWithAnotherStamp, $this->anything())
-            ->willReturnCallback(fn ($envelope, $stack) => $stack->next()->handle($envelope, $stack));
+            ->willReturnCallback(static fn ($envelope, $stack) => $stack->next()->handle($envelope, $stack));
 
         $thirdMiddleware = $this->createMock(MiddlewareInterface::class);
         $thirdMiddleware->expects($this->once())
@@ -104,7 +104,7 @@
         $firstMiddleware->expects($this->once())
             ->method('handle')
             ->with($envelope, $this->anything())
-            ->willReturnCallback(fn ($envelope, $stack) => $stack->next()->handle($expectedEnvelope, $stack));
+            ->willReturnCallback(static fn ($envelope, $stack) => $stack->next()->handle($expectedEnvelope, $stack));
 
         $secondMiddleware = $this->createMock(MiddlewareInterface::class);
         $secondMiddleware->expects($this->once())
@@ -145,7 +145,7 @@
             new SimpleMiddleware(),
         ]];
 
-        yield 'generator' => [(function (): \Generator {
+        yield 'generator' => [(static function (): \Generator {
             yield new SimpleMiddleware();
             yield new SimpleMiddleware();
         })()];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/DispatchAfterCurrentBusMiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/DispatchAfterCurrentBusMiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/DispatchAfterCurrentBusMiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/DispatchAfterCurrentBusMiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
 
         $handlingMiddleware->expects($this->exactly(4))
             ->method('handle')
-            ->with($this->callback(function (Envelope $envelope) use (&$series) {
+            ->with($this->callback(static function (Envelope $envelope) use (&$series) {
                 return $envelope->getMessage() === array_shift($series);
             }))
             ->willReturnCallback($this->handleMessageCallback());
@@ -108,10 +108,10 @@
         $matcher = $this->exactly(3);
         $handlingMiddleware->expects($matcher)
             ->method('handle')
-            ->with($this->callback(function (Envelope $envelope) use (&$series) {
+            ->with($this->callback(static function (Envelope $envelope) use (&$series) {
                 return $envelope->getMessage() === array_shift($series);
             }))
-            ->willReturnCallback(function ($envelope, StackInterface $stack) use ($matcher) {
+            ->willReturnCallback(static function ($envelope, StackInterface $stack) use ($matcher) {
                 if (2 === $matcher->getInvocationCount()) {
                     throw new \RuntimeException('Some exception while handling first event');
                 }
@@ -177,10 +177,10 @@
         $matcher = $this->exactly(7);
         $handlingMiddleware->expects($matcher)
             ->method('handle')
-            ->with($this->callback(function (Envelope $envelope) use (&$series) {
+            ->with($this->callback(static function (Envelope $envelope) use (&$series) {
                 return $envelope->getMessage() === array_shift($series);
             }))
-            ->willReturnCallback(function ($envelope, StackInterface $stack) use ($eventBus, $eventL2a, $eventL2b, $eventL3a, $eventL3b, $matcher) {
+            ->willReturnCallback(static function ($envelope, StackInterface $stack) use ($eventBus, $eventL2a, $eventL2b, $eventL3a, $eventL3b, $matcher) {
                 switch ($matcher->getInvocationCount()) {
                     case 1:
                     case 2:
@@ -230,10 +230,10 @@
             $eventHandlingMiddleware,
         ]);
 
-        $fakePutMessageOnQueue = $this->createMock(MiddlewareInterface::class);
-        $fakePutMessageOnQueue->expects($this->any())
+        $fakePutMessageOnQueue = $this->createStub(MiddlewareInterface::class);
+        $fakePutMessageOnQueue
             ->method('handle')
-            ->with($this->callback(function ($envelope) use ($messageBusAfterQueue) {
+            ->with($this->callback(static function ($envelope) use ($messageBusAfterQueue) {
                 // Fake putting the message on the queue
                 // Fake reading the queue
                 // Now, we add the message back to a new bus.
@@ -259,11 +259,11 @@
         $commandHandlingMiddleware->expects($this->once())
             ->method('handle')
             ->with($this->expectHandledMessage($message))
-            ->willReturnCallback(fn ($envelope, StackInterface $stack) => $stack->next()->handle($envelope, $stack));
+            ->willReturnCallback(static fn ($envelope, StackInterface $stack) => $stack->next()->handle($envelope, $stack));
         $eventHandlingMiddleware->expects($this->once())
             ->method('handle')
             ->with($this->expectHandledMessage($event))
-            ->willReturnCallback(fn ($envelope, StackInterface $stack) => $stack->next()->handle($envelope, $stack));
+            ->willReturnCallback(static fn ($envelope, StackInterface $stack) => $stack->next()->handle($envelope, $stack));
         $messageBus->dispatch($message);
     }
 
@@ -272,7 +272,7 @@
         $event = new DummyEvent('First event');
 
         $middleware = new DispatchAfterCurrentBusMiddleware();
-        $handlingMiddleware = $this->createMock(MiddlewareInterface::class);
+        $handlingMiddleware = $this->createStub(MiddlewareInterface::class);
 
         $handlingMiddleware
             ->method('handle')
@@ -284,19 +284,19 @@
             $handlingMiddleware,
         ]);
 
-        $enveloppe = $eventBus->dispatch($event, [new DispatchAfterCurrentBusStamp()]);
+        $envelope = $eventBus->dispatch($event, [new DispatchAfterCurrentBusStamp()]);
 
-        self::assertNull($enveloppe->last(DispatchAfterCurrentBusStamp::class));
+        self::assertNull($envelope->last(DispatchAfterCurrentBusStamp::class));
     }
 
     private function expectHandledMessage($message): Callback
     {
-        return $this->callback(fn (Envelope $envelope) => $envelope->getMessage() === $message);
+        return $this->callback(static fn (Envelope $envelope) => $envelope->getMessage() === $message);
     }
 
     private function handleMessageCallback(): \Closure
     {
-        return fn ($envelope, StackInterface $stack) => $stack->next()->handle($envelope, $stack);
+        return static fn ($envelope, StackInterface $stack) => $stack->next()->handle($envelope, $stack);
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/HandleMessageMiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/HandleMessageMiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/HandleMessageMiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/HandleMessageMiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
     {
         $message = new DummyMessage('Hey');
         $envelope = new Envelope($message);
-        $handler = new class() {
+        $handler = new class {
             public function __invoke()
             {
                 throw new \Exception('failed');
@@ -100,7 +100,7 @@
 
     public static function itAddsHandledStampsProvider(): iterable
     {
-        $first = new class() extends HandleMessageMiddlewareTestCallable {
+        $first = new class extends HandleMessageMiddlewareTestCallable {
             public function __invoke()
             {
                 return 'first result';
@@ -108,7 +108,7 @@
         };
         $firstClass = $first::class;
 
-        $second = new class() extends HandleMessageMiddlewareTestCallable {
+        $second = new class extends HandleMessageMiddlewareTestCallable {
             public function __invoke()
             {
                 return null;
@@ -116,7 +116,7 @@
         };
         $secondClass = $second::class;
 
-        $failing = new class() extends HandleMessageMiddlewareTestCallable {
+        $failing = new class extends HandleMessageMiddlewareTestCallable {
             public function __invoke()
             {
                 throw new \Exception('handler failed.');
@@ -174,10 +174,8 @@
 
     public function testMessageAlreadyHandled()
     {
-        $handler = $this->createPartialMock(HandleMessageMiddlewareTestCallable::class, ['__invoke']);
-
         $middleware = new HandleMessageMiddleware(new HandlersLocator([
-            DummyMessage::class => [$handler],
+            DummyMessage::class => [new HandleMessageMiddlewareTestCallable()],
         ]));
 
         $envelope = new Envelope(new DummyMessage('Hey'));
@@ -199,7 +197,7 @@
 
     public function testBatchHandler()
     {
-        $handler = new class() implements BatchHandlerInterface {
+        $handler = new class implements BatchHandlerInterface {
             public array $processedMessages;
 
             use BatchHandlerTrait;
@@ -255,7 +253,7 @@
 
     public function testBatchHandlerNoAck()
     {
-        $handler = new class() implements BatchHandlerInterface {
+        $handler = new class implements BatchHandlerInterface {
             use BatchHandlerTrait;
 
             public function __invoke(DummyMessage $message, ?Acknowledger $ack = null)
@@ -290,7 +288,7 @@
 
     public function testBatchHandlerNoBatch()
     {
-        $handler = new class() implements BatchHandlerInterface {
+        $handler = new class implements BatchHandlerInterface {
             public array $processedMessages;
 
             use BatchHandlerTrait;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/SendMessageMiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/SendMessageMiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/SendMessageMiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/SendMessageMiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Psr\Container\ContainerInterface;
 use Psr\EventDispatcher\EventDispatcherInterface;
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Messenger\Envelope;
 use Symfony\Component\Messenger\Event\SendMessageToTransportsEvent;
 use Symfony\Component\Messenger\Exception\NoSenderForMessageException;
@@ -41,7 +42,6 @@
 
         $envelope = $middleware->handle($envelope, $this->getStackMock(false));
 
-        /* @var SentStamp $stamp */
         $this->assertInstanceOf(SentStamp::class, $stamp = $envelope->last(SentStamp::class), 'it adds a sent stamp');
         $this->assertSame('my_sender', $stamp->getSenderAlias());
         $this->assertStringMatchesFormat('Mock_SenderInterface_%s', $stamp->getSenderClass());
@@ -58,8 +58,7 @@
 
         $sender->expects($this->once())
             ->method('send')
-            ->with($this->callback(function (Envelope $envelope) {
-                /** @var SentStamp|null $lastSentStamp */
+            ->with($this->callback(static function (Envelope $envelope) {
                 $lastSentStamp = $envelope->last(SentStamp::class);
 
                 // last SentStamp should be the "foo" alias
@@ -68,8 +67,7 @@
             ->willReturnArgument(0);
         $sender2->expects($this->once())
             ->method('send')
-            ->with($this->callback(function (Envelope $envelope) {
-                /** @var SentStamp|null $lastSentStamp */
+            ->with($this->callback(static function (Envelope $envelope) {
                 $lastSentStamp = $envelope->last(SentStamp::class);
 
                 // last SentStamp should be the "bar" alias
@@ -79,7 +77,6 @@
 
         $envelope = $middleware->handle($envelope, $this->getStackMock(false));
 
-        /** @var SentStamp[] $sentStamps */
         $sentStamps = $envelope->all(SentStamp::class);
         $this->assertCount(2, $sentStamps);
     }
@@ -202,14 +199,12 @@
     {
         $envelope = new Envelope(new DummyMessage('original envelope'));
 
-        $dispatcher = $this->createMock(EventDispatcherInterface::class);
-
         $sendersLocator = $this->createSendersLocator([DummyMessage::class => []], []);
 
         $this->expectException(NoSenderForMessageException::class);
         $this->expectExceptionMessage('No sender for message "Symfony\Component\Messenger\Tests\Fixtures\DummyMessage"');
 
-        $middleware = new SendMessageMiddleware($sendersLocator, $dispatcher, false);
+        $middleware = new SendMessageMiddleware($sendersLocator, new EventDispatcher(), false);
         $middleware->handle($envelope, $this->getStackMock(false));
     }
 
@@ -237,10 +232,10 @@
         $container = $this->createMock(ContainerInterface::class);
         $container->expects($this->any())
             ->method('has')
-            ->willReturnCallback(fn ($id) => isset($senders[$id]));
+            ->willReturnCallback(static fn ($id) => isset($senders[$id]));
         $container->expects($this->any())
             ->method('get')
-            ->willReturnCallback(fn ($id) => $senders[$id]);
+            ->willReturnCallback(static fn ($id) => $senders[$id]);
 
         return new SendersLocator($sendersMap, $container);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/StackMiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/StackMiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/StackMiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/StackMiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
         $middleware1
             ->expects($this->once())
             ->method('handle')
-            ->willReturnCallback(function (Envelope $envelope, StackInterface $stack): Envelope {
+            ->willReturnCallback(static function (Envelope $envelope, StackInterface $stack): Envelope {
                 $fork = clone $stack;
 
                 $stack->next()->handle($envelope, $stack);
@@ -39,7 +39,7 @@
         $middleware2
             ->expects($this->exactly(2))
             ->method('handle')
-            ->willReturnCallback(fn (Envelope $envelope, StackInterface $stack): Envelope => $envelope)
+            ->willReturnCallback(static fn (Envelope $envelope, StackInterface $stack): Envelope => $envelope)
         ;
 
         $bus = new MessageBus([$middleware1, $middleware2]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/TraceableMiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/TraceableMiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/TraceableMiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/TraceableMiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
         $busId = 'command_bus';
         $envelope = new Envelope(new DummyMessage('Hello'));
 
-        $middleware = new class() implements MiddlewareInterface {
+        $middleware = new class implements MiddlewareInterface {
             public int $calls = 0;
 
             public function handle(Envelope $envelope, StackInterface $stack): Envelope
@@ -59,7 +59,7 @@
                 $constraint->evaluate($name);
                 $this->assertSame($expectedCategory, $category);
 
-                return $this->createMock(StopwatchEvent::class);
+                return new StopwatchEvent(1.0);
             })
         ;
         $stopwatch->expects($this->exactly(2))
@@ -72,7 +72,7 @@
 
                 $this->assertSame(array_shift($stopSeries), $name);
 
-                return $this->createMock(StopwatchEvent::class);
+                return new StopwatchEvent(1.0);
             })
         ;
 
@@ -149,13 +149,11 @@
 
         $stackMiddleware = new StackMiddleware([
             null,
-            $this->createMock(MiddlewareInterface::class),
-            $this->createMock(MiddlewareInterface::class),
+            $this->createStub(MiddlewareInterface::class),
+            $this->createStub(MiddlewareInterface::class),
         ]);
 
-        $stopwatch = $this->createMock(Stopwatch::class);
-
-        $traceableStack = new TraceableStack($stackMiddleware, $stopwatch, 'command_bus', 'messenger.middleware');
+        $traceableStack = new TraceableStack($stackMiddleware, new Stopwatch(), 'command_bus', 'messenger.middleware');
         $clonedStack = clone $traceableStack;
 
         $traceableStackMiddleware1 = $traceableStack->next();
@@ -180,7 +178,7 @@
         // import TraceableStack
         class_exists(TraceableMiddleware::class);
 
-        $middlewareIterable = [null, $this->createMock(MiddlewareInterface::class)];
+        $middlewareIterable = [null, $this->createStub(MiddlewareInterface::class)];
 
         $stackMiddleware = new StackMiddleware($middlewareIterable);
 
@@ -201,7 +199,7 @@
                 $constraint->evaluate($name);
                 $this->assertSame($expectedCategory, $category);
 
-                return $this->createMock(StopwatchEvent::class);
+                return new StopwatchEvent(1.0);
             })
         ;
 
@@ -211,11 +209,11 @@
         ];
         $stopwatch->expects($this->exactly(2))
             ->method('stop')
-            ->willReturnCallback(function (string $name) use (&$stopSeries) {
+            ->willReturnCallback(static function (string $name) use (&$stopSeries) {
                 $constraint = array_shift($stopSeries);
                 $constraint->evaluate($name);
 
-                return $this->createMock(StopwatchEvent::class);
+                return new StopwatchEvent(1.0);
             })
         ;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/ValidationMiddlewareTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/ValidationMiddlewareTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/ValidationMiddlewareTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Middleware/ValidationMiddlewareTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,7 @@
 use Symfony\Component\Messenger\Stamp\ValidationStamp;
 use Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase;
 use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
+use Symfony\Component\Validator\ConstraintViolationList;
 use Symfony\Component\Validator\ConstraintViolationListInterface;
 use Symfony\Component\Validator\Validator\ValidatorInterface;
 
@@ -32,7 +33,7 @@
             ->expects($this->once())
             ->method('validate')
             ->with($message)
-            ->willReturn($this->createMock(ConstraintViolationListInterface::class))
+            ->willReturn(new ConstraintViolationList())
         ;
 
         (new ValidationMiddleware($validator))->handle($envelope, $this->getStackMock());
@@ -47,7 +48,7 @@
             ->expects($this->once())
             ->method('validate')
             ->with($message, null, $groups)
-            ->willReturn($this->createMock(ConstraintViolationListInterface::class))
+            ->willReturn(new ConstraintViolationList())
         ;
 
         (new ValidationMiddleware($validator))->handle($envelope, $this->getStackMock());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Stamp/ErrorDetailsStampTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Stamp/ErrorDetailsStampTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Stamp/ErrorDetailsStampTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Stamp/ErrorDetailsStampTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Component\ErrorHandler\Exception\FlattenException;
 use Symfony\Component\Messenger\Envelope;
 use Symfony\Component\Messenger\Exception\HandlerFailedException;
+use Symfony\Component\Messenger\Exception\RecoverableExceptionInterface;
 use Symfony\Component\Messenger\Stamp\ErrorDetailsStamp;
 use Symfony\Component\Messenger\Transport\Serialization\Normalizer\FlattenExceptionNormalizer;
 use Symfony\Component\Messenger\Transport\Serialization\Serializer;
@@ -29,6 +30,7 @@
     {
         $exception = new \Exception('exception message');
         $flattenException = FlattenException::createFromThrowable($exception);
+        $flattenException->setTrace([], $exception->getFile(), $exception->getLine());
 
         $stamp = ErrorDetailsStamp::create($exception);
 
@@ -43,6 +45,7 @@
         $envelope = new Envelope(new \stdClass());
         $exception = new HandlerFailedException($envelope, [$wrappedException]);
         $flattenException = FlattenException::createFromThrowable($wrappedException);
+        $flattenException->setTrace([], $wrappedException->getFile(), $wrappedException->getLine());
 
         $stamp = ErrorDetailsStamp::create($exception);
 
@@ -56,6 +59,16 @@
     {
         $exception = new \Exception('exception message');
         $stamp = ErrorDetailsStamp::create($exception);
+
+        // FlattenExceptionNormalizer drops trace args, mirror that on the expected stamp
+        $flattenException = $stamp->getFlattenException();
+        $trace = array_map(static function (array $frame): array {
+            unset($frame['args']);
+
+            return $frame;
+        }, $flattenException->getTrace());
+        (new \ReflectionProperty(FlattenException::class, 'trace'))->setValue($flattenException, $trace);
+
         $serializer = new Serializer(
             new SymfonySerializer([
                 new ArrayDenormalizer(),
@@ -70,4 +83,42 @@
         $this->assertInstanceOf(ErrorDetailsStamp::class, $deserializedStamp);
         $this->assertEquals($stamp, $deserializedStamp);
     }
+
+    public function testRecoverableExceptionSkipsFlattenException()
+    {
+        $exception = new RecoverableTestException('recoverable message', 10);
+
+        $stamp = ErrorDetailsStamp::create($exception);
+
+        $this->assertSame($exception::class, $stamp->getExceptionClass());
+        $this->assertSame('recoverable message', $stamp->getExceptionMessage());
+        $this->assertSame(10, $stamp->getExceptionCode());
+        $this->assertNull($stamp->getFlattenException());
+    }
+
+    public function testEqualsUsesFlattenExceptionLocation()
+    {
+        $exceptionA = new \RuntimeException('same');
+        $exceptionB = new \RuntimeException('same');
+
+        $stampA = ErrorDetailsStamp::create($exceptionA);
+        $stampB = ErrorDetailsStamp::create($exceptionB);
+
+        $this->assertFalse($stampA->equals($stampB));
+    }
+
+    public function testEqualsFallsBackToExceptionDetailsWithoutFlattenException()
+    {
+        $exceptionA = new RecoverableTestException('recoverable', 123);
+        $exceptionB = new RecoverableTestException('recoverable', 123);
+
+        $stampA = ErrorDetailsStamp::create($exceptionA);
+        $stampB = ErrorDetailsStamp::create($exceptionB);
+
+        $this->assertTrue($stampA->equals($stampB));
+    }
+}
+
+class RecoverableTestException extends \RuntimeException implements RecoverableExceptionInterface
+{
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/InMemory/InMemoryTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/InMemory/InMemoryTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/InMemory/InMemoryTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/InMemory/InMemoryTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
     public function testCreateTransport()
     {
         /** @var SerializerInterface $serializer */
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
 
         $this->assertInstanceOf(InMemoryTransport::class, $this->factory->createTransport('in-memory://', [], $serializer));
     }
@@ -78,7 +78,7 @@
 
     public function testResetCreatedTransports()
     {
-        $transport = $this->factory->createTransport('in-memory://', [], $this->createMock(SerializerInterface::class));
+        $transport = $this->factory->createTransport('in-memory://', [], $this->createStub(SerializerInterface::class));
         $transport->send(Envelope::wrap(new DummyMessage('Hello.')));
 
         $this->assertCount(1, $transport->get());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/InMemory/InMemoryTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/InMemory/InMemoryTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/InMemory/InMemoryTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/InMemory/InMemoryTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
 
     protected function setUp(): void
     {
-        $this->serializer = $this->createMock(SerializerInterface::class);
+        $this->serializer = $this->createStub(SerializerInterface::class);
         $this->transport = new InMemoryTransport();
         $this->serializeTransport = new InMemoryTransport($this->serializer);
     }
@@ -51,13 +51,17 @@
         $envelopeDecoded = Envelope::wrap(new DummyMessage('Hello.'));
         $this->serializer
             ->method('encode')
-            ->with($this->equalTo($envelope->with(new TransportMessageIdStamp(1))))
-            ->willReturn(['foo' => 'ba'])
+            ->willReturnCallback(function (Envelope $encodedEnvelope) use ($envelope) {
+                $this->assertEquals($envelope->with(new TransportMessageIdStamp(1)), $encodedEnvelope);
+
+                return ['foo' => 'ba'];
+            })
         ;
         $this->serializer
             ->method('decode')
-            ->with(['foo' => 'ba'])
-            ->willReturn($envelopeDecoded)
+            ->willReturnMap([
+                [['foo' => 'ba'], $envelopeDecoded],
+            ])
         ;
         $this->serializeTransport->send($envelope);
         $this->assertSame([$envelopeDecoded], $this->serializeTransport->getSent());
@@ -91,13 +95,17 @@
         $envelopeDecoded = Envelope::wrap(new DummyMessage('Hello.'));
         $this->serializer
             ->method('encode')
-            ->with($this->equalTo($envelope->with(new TransportMessageIdStamp(1))))
-            ->willReturn(['foo' => 'ba'])
+            ->willReturnCallback(function (Envelope $encodedEnvelope) use ($envelope) {
+                $this->assertEquals($envelope->with(new TransportMessageIdStamp(1)), $encodedEnvelope);
+
+                return ['foo' => 'ba'];
+            })
         ;
         $this->serializer
             ->method('decode')
-            ->with(['foo' => 'ba'])
-            ->willReturn($envelopeDecoded)
+            ->willReturnMap([
+                [['foo' => 'ba'], $envelopeDecoded],
+            ])
         ;
         $this->serializeTransport->send($envelope);
         $this->assertSame([$envelopeDecoded], $this->serializeTransport->get());
@@ -130,13 +138,17 @@
         $envelopeDecoded = Envelope::wrap(new DummyMessage('Hello.'));
         $this->serializer
             ->method('encode')
-            ->with($this->equalTo($envelope->with(new TransportMessageIdStamp(1))))
-            ->willReturn(['foo' => 'ba'])
+            ->willReturnCallback(function (Envelope $encodedEnvelope) use ($envelope) {
+                $this->assertEquals($envelope->with(new TransportMessageIdStamp(1)), $encodedEnvelope);
+
+                return ['foo' => 'ba'];
+            })
         ;
         $this->serializer
             ->method('decode')
-            ->with(['foo' => 'ba'])
-            ->willReturn($envelopeDecoded)
+            ->willReturnMap([
+                [['foo' => 'ba'], $envelopeDecoded],
+            ])
         ;
         $this->serializeTransport->ack($envelope->with(new TransportMessageIdStamp(1)));
         $this->assertSame([$envelopeDecoded], $this->serializeTransport->getAcknowledged());
@@ -156,13 +168,17 @@
         $envelopeDecoded = Envelope::wrap(new DummyMessage('Hello.'));
         $this->serializer
             ->method('encode')
-            ->with($this->equalTo($envelope->with(new TransportMessageIdStamp(1))))
-            ->willReturn(['foo' => 'ba'])
+            ->willReturnCallback(function (Envelope $encodedEnvelope) use ($envelope) {
+                $this->assertEquals($envelope->with(new TransportMessageIdStamp(1)), $encodedEnvelope);
+
+                return ['foo' => 'ba'];
+            })
         ;
         $this->serializer
             ->method('decode')
-            ->with(['foo' => 'ba'])
-            ->willReturn($envelopeDecoded)
+            ->willReturnMap([
+                [['foo' => 'ba'], $envelopeDecoded],
+            ])
         ;
         $this->serializeTransport->reject($envelope->with(new TransportMessageIdStamp(1)));
         $this->assertSame([$envelopeDecoded], $this->serializeTransport->getRejected());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Receiver/SingleMessageReceiverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Receiver/SingleMessageReceiverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Receiver/SingleMessageReceiverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Receiver/SingleMessageReceiverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 {
     public function testItReceivesOnlyOneMessage()
     {
-        $innerReceiver = $this->createMock(ReceiverInterface::class);
+        $innerReceiver = $this->createStub(ReceiverInterface::class);
         $envelope = new Envelope(new \stdClass());
 
         $receiver = new SingleMessageReceiver($innerReceiver, $envelope);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Sender/SendersLocatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Sender/SendersLocatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Sender/SendersLocatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Sender/SendersLocatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
 {
     public function testItReturnsTheSenderBasedOnTheMessageClass()
     {
-        $sender = $this->createMock(SenderInterface::class);
+        $sender = $this->createStub(SenderInterface::class);
         $sendersLocator = $this->createContainer([
             'my_sender' => $sender,
         ]);
@@ -38,8 +38,8 @@
 
     public function testItReturnsTheSenderBasedOnTransportNamesStamp()
     {
-        $mySender = $this->createMock(SenderInterface::class);
-        $otherSender = $this->createMock(SenderInterface::class);
+        $mySender = $this->createStub(SenderInterface::class);
+        $otherSender = $this->createStub(SenderInterface::class);
         $sendersLocator = $this->createContainer([
             'my_sender' => $mySender,
             'other_sender' => $otherSender,
@@ -54,9 +54,9 @@
 
     public function testSendersMapWithFallback()
     {
-        $firstSender = $this->createMock(SenderInterface::class);
-        $secondSender = $this->createMock(SenderInterface::class);
-        $thirdSender = $this->createMock(SenderInterface::class);
+        $firstSender = $this->createStub(SenderInterface::class);
+        $secondSender = $this->createStub(SenderInterface::class);
+        $thirdSender = $this->createStub(SenderInterface::class);
         $sendersLocator = $this->createContainer([
             'first' => $firstSender,
             'second' => $secondSender,
@@ -76,10 +76,10 @@
         $container = $this->createMock(ContainerInterface::class);
         $container->expects($this->any())
             ->method('has')
-            ->willReturnCallback(fn ($id) => isset($senders[$id]));
+            ->willReturnCallback(static fn ($id) => isset($senders[$id]));
         $container->expects($this->any())
             ->method('get')
-            ->willReturnCallback(fn ($id) => $senders[$id]);
+            ->willReturnCallback(static fn ($id) => $senders[$id]);
 
         return $container;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Serialization/Normalizer/FlattenExceptionNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Serialization/Normalizer/FlattenExceptionNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Serialization/Normalizer/FlattenExceptionNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Serialization/Normalizer/FlattenExceptionNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,12 @@
         $this->assertSame($exception->getFile(), $normalized['file']);
         $this->assertSame($exception->getLine(), $normalized['line']);
         $this->assertSame($previous, $normalized['previous']);
-        $this->assertSame($exception->getTrace(), $normalized['trace']);
+        $expectedTrace = array_map(static function (array $frame): array {
+            unset($frame['args']);
+
+            return $frame;
+        }, $exception->getTrace());
+        $this->assertSame($expectedTrace, $normalized['trace']);
         $this->assertSame($exception->getTraceAsString(), $normalized['trace_as_string']);
         $this->assertSame($exception->getStatusText(), $normalized['status_text']);
     }
@@ -69,6 +74,31 @@
         ];
     }
 
+    public function testNormalizeStripsTraceArgs()
+    {
+        $exception = FlattenException::createFromThrowable(new \RuntimeException('boom'));
+
+        $trace = $exception->getTrace();
+        $trace[] = [
+            'namespace' => '', 'short_class' => '', 'class' => '', 'type' => '',
+            'function' => 'fromPdf', 'file' => 'foo.php', 'line' => 1,
+            'args' => [
+                ['string', 'valid utf8'],
+                ['string', "\x80\x81\xfe"],
+            ],
+        ];
+        $traceProperty = new \ReflectionProperty(FlattenException::class, 'trace');
+        $traceProperty->setValue($exception, $trace);
+
+        $normalized = $this->normalizer->normalize($exception, null, $this->getMessengerContext());
+
+        foreach ($normalized['trace'] as $frame) {
+            $this->assertArrayNotHasKey('args', $frame);
+        }
+
+        $this->assertNotFalse(json_encode($normalized, \JSON_THROW_ON_ERROR));
+    }
+
     public function testSupportsDenormalization()
     {
         $this->assertFalse($this->normalizer->supportsDenormalization(null, FlattenException::class));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,6 @@
 use Symfony\Component\Messenger\Stamp\ValidationStamp;
 use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
 use Symfony\Component\Messenger\Transport\Serialization\Serializer;
-use Symfony\Component\Serializer as SerializerComponent;
 use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
 use Symfony\Component\Serializer\SerializerInterface as SerializerComponentInterface;
 
@@ -78,7 +77,7 @@
     {
         $message = new DummyMessage('Foo');
 
-        $serializer = $this->createMock(SerializerComponent\SerializerInterface::class);
+        $serializer = $this->createMock(SerializerComponentInterface::class);
         $serializer->expects($this->once())->method('serialize')->with($message, 'csv', ['foo' => 'bar', Serializer::MESSENGER_SERIALIZATION_CONTEXT => true])->willReturn('Yay');
         $serializer->expects($this->once())->method('deserialize')->with('Yay', DummyMessage::class, 'csv', ['foo' => 'bar', Serializer::MESSENGER_SERIALIZATION_CONTEXT => true])->willReturn($message);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Sync/SyncTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Sync/SyncTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Sync/SyncTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/Transport/Sync/SyncTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Messenger\Tests\Transport\Sync;
 
 use PHPUnit\Framework\TestCase;
-use Symfony\Component\Messenger\MessageBusInterface;
+use Symfony\Component\Messenger\MessageBus;
 use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface;
 use Symfony\Component\Messenger\Transport\Sync\SyncTransport;
 use Symfony\Component\Messenger\Transport\Sync\SyncTransportFactory;
@@ -21,9 +21,8 @@
 {
     public function testCreateTransport()
     {
-        $serializer = $this->createMock(SerializerInterface::class);
-        $bus = $this->createMock(MessageBusInterface::class);
-        $factory = new SyncTransportFactory($bus);
+        $serializer = $this->createStub(SerializerInterface::class);
+        $factory = new SyncTransportFactory(new MessageBus());
         $transport = $factory->createTransport('sync://', [], $serializer);
         $this->assertInstanceOf(SyncTransport::class, $transport);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/WorkerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/WorkerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Tests/WorkerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Tests/WorkerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,10 +38,13 @@
 use Symfony\Component\Messenger\MessageBusInterface;
 use Symfony\Component\Messenger\Middleware\HandleMessageMiddleware;
 use Symfony\Component\Messenger\Stamp\ConsumedByWorkerStamp;
+use Symfony\Component\Messenger\Stamp\FlushBatchHandlersStamp;
+use Symfony\Component\Messenger\Stamp\NoAutoAckStamp;
 use Symfony\Component\Messenger\Stamp\ReceivedStamp;
 use Symfony\Component\Messenger\Stamp\SentStamp;
 use Symfony\Component\Messenger\Stamp\StampInterface;
 use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
+use Symfony\Component\Messenger\Tests\Fixtures\DummyMessageInterface;
 use Symfony\Component\Messenger\Tests\Fixtures\DummyReceiver;
 use Symfony\Component\Messenger\Tests\Fixtures\ResettableDummyReceiver;
 use Symfony\Component\Messenger\Transport\Receiver\QueueReceiverInterface;
@@ -70,7 +73,7 @@
 
         $bus->expects($this->exactly(2))
             ->method('dispatch')
-            ->willReturnCallback(function ($envelope) use (&$envelopes) {
+            ->willReturnCallback(static function ($envelope) use (&$envelopes) {
                 return $envelopes[] = $envelope;
             });
 
@@ -110,7 +113,7 @@
             [new Envelope(new DummyMessage('Hello'), [new SentStamp('Some\Sender', 'transport1')])],
         ]);
 
-        $bus = $this->createMock(MessageBusInterface::class);
+        $bus = $this->createStub(MessageBusInterface::class);
         $bus->method('dispatch')->willThrowException(new \InvalidArgumentException('Why not'));
 
         $dispatcher = new EventDispatcher();
@@ -130,8 +133,7 @@
         $dispatcher = new EventDispatcher();
         $dispatcher->addSubscriber(new ResetServicesListener(new ServicesResetter(new \ArrayIterator([$resettableReceiver]), ['reset'])));
 
-        $bus = $this->createMock(MessageBusInterface::class);
-        $worker = new Worker([$resettableReceiver], $bus, $dispatcher, clock: new MockClock());
+        $worker = new Worker([$resettableReceiver], new MessageBus(), $dispatcher, clock: new MockClock());
         $worker->stop();
         $worker->run();
         $this->assertTrue($resettableReceiver->hasBeenReset());
@@ -144,12 +146,11 @@
 
         $dispatcher = new EventDispatcher();
         $dispatcher->addSubscriber(new ResetServicesListener(new ServicesResetter(new \ArrayIterator([$resettableReceiver]), ['reset'])));
-        $dispatcher->addListener(WorkerRunningEvent::class, function (WorkerRunningEvent $event) {
+        $dispatcher->addListener(WorkerRunningEvent::class, static function (WorkerRunningEvent $event) {
             $event->getWorker()->stop();
         });
 
-        $bus = $this->createMock(MessageBusInterface::class);
-        $worker = new Worker([$resettableReceiver], $bus, $dispatcher, clock: new MockClock());
+        $worker = new Worker([$resettableReceiver], new MessageBus(), $dispatcher, clock: new MockClock());
         $worker->run();
         $this->assertTrue($resettableReceiver->hasBeenReset());
     }
@@ -159,14 +160,12 @@
         $envelope = new Envelope(new DummyMessage('Hello'));
         $resettableReceiver = new ResettableDummyReceiver([[$envelope]]);
 
-        $bus = $this->createMock(MessageBusInterface::class);
-
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(WorkerRunningEvent::class, function (WorkerRunningEvent $event) {
+        $dispatcher->addListener(WorkerRunningEvent::class, static function (WorkerRunningEvent $event) {
             $event->getWorker()->stop();
         });
 
-        $worker = new Worker([$resettableReceiver], $bus, $dispatcher, clock: new MockClock());
+        $worker = new Worker([$resettableReceiver], new MessageBus(), $dispatcher, clock: new MockClock());
         $worker->run();
         $this->assertFalse($resettableReceiver->hasBeenReset());
     }
@@ -181,7 +180,7 @@
         $bus->expects($this->never())->method('dispatch');
 
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(WorkerRunningEvent::class, function (WorkerRunningEvent $event) {
+        $dispatcher->addListener(WorkerRunningEvent::class, static function (WorkerRunningEvent $event) {
             $event->getWorker()->stop();
         });
 
@@ -194,7 +193,7 @@
         $envelope = new Envelope(new DummyMessage('Hello'));
         $receiver = new DummyReceiver([[$envelope]]);
 
-        $bus = $this->createMock(MessageBusInterface::class);
+        $bus = $this->createStub(MessageBusInterface::class);
         $bus->method('dispatch')->willReturn($envelope);
 
         $eventDispatcher = $this->createMock(EventDispatcherInterface::class);
@@ -209,7 +208,7 @@
 
         $eventDispatcher->expects($this->exactly(5))
             ->method('dispatch')
-            ->willReturnCallback(function ($event) use (&$series) {
+            ->willReturnCallback(static function ($event) use (&$series) {
                 array_shift($series)->evaluate($event);
 
                 if ($event instanceof WorkerRunningEvent) {
@@ -247,7 +246,7 @@
         $envelope = new Envelope(new DummyMessage('Hello'));
         $receiver = new DummyReceiver([[$envelope]]);
 
-        $bus = $this->createMock(MessageBusInterface::class);
+        $bus = $this->createStub(MessageBusInterface::class);
         $exception = new \InvalidArgumentException('Oh no!');
         $bus->method('dispatch')->willThrowException($exception);
 
@@ -263,7 +262,7 @@
 
         $eventDispatcher->expects($this->exactly(5))
             ->method('dispatch')
-            ->willReturnCallback(function ($event) use (&$series) {
+            ->willReturnCallback(static function ($event) use (&$series) {
                 array_shift($series)->evaluate($event);
 
                 if ($event instanceof WorkerRunningEvent) {
@@ -282,11 +281,11 @@
         $envelope = new Envelope(new DummyMessage('Hello'));
         $receiver = new DummyQueueReceiver([[$envelope]]);
 
-        $bus = $this->createMock(MessageBusInterface::class);
+        $bus = $this->createStub(MessageBusInterface::class);
         $bus->method('dispatch')->willReturn($envelope);
 
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(WorkerRunningEvent::class, function (WorkerRunningEvent $event) {
+        $dispatcher->addListener(WorkerRunningEvent::class, static function (WorkerRunningEvent $event) {
             $event->getWorker()->stop();
         });
 
@@ -312,17 +311,81 @@
             [new Envelope($apiMessage)],
         ]);
 
-        $bus = $this->createMock(MessageBusInterface::class);
-
         $dispatcher = new EventDispatcher();
         $dispatcher->addSubscriber(new StopWorkerOnMessageLimitListener(5));
 
         $clock = new MockClock('2023-03-19 14:00:00+00:00');
-        $worker = new Worker([$receiver], $bus, $dispatcher, clock: $clock);
+        $worker = new Worker([$receiver], new MessageBus(), $dispatcher, clock: $clock);
         $worker->run(['sleep' => 1000000]);
         $this->assertEquals(new \DateTimeImmutable('2023-03-19 14:00:03+00:00'), $clock->now());
     }
 
+    public function testWorkerDoesNotSleepWhenStoppedDuringIdleRunningEvent()
+    {
+        $clock = new MockClock('2023-03-19 14:00:00+00:00');
+        $receiver = new DummyReceiver([[]]);
+
+        $dispatcher = new EventDispatcher();
+        $dispatcher->addListener(WorkerRunningEvent::class, static function (WorkerRunningEvent $event) {
+            if ($event->isWorkerIdle()) {
+                $event->getWorker()->stop();
+            }
+        });
+
+        $worker = new Worker([$receiver], new MessageBus(), $dispatcher, clock: $clock);
+        $worker->run(['sleep' => 1000000]);
+
+        $this->assertEquals(new \DateTimeImmutable('2023-03-19 14:00:00+00:00'), $clock->now());
+    }
+
+    public function testWorkerCapsIdleSleepToRemainingTimeLimitAfterMessageConsumption()
+    {
+        $clock = new MockClock('2023-03-19 14:00:00+00:00');
+        $receiver = new DummyReceiver([
+            [new Envelope(new DummyMessage('API'))],
+            [],
+        ]);
+
+        $dispatcher = new EventDispatcher();
+        $dispatcher->addListener(WorkerRunningEvent::class, static function (WorkerRunningEvent $event) use ($clock) {
+            if (!$event->isWorkerIdle()) {
+                $clock->sleep(50);
+            }
+        });
+
+        $worker = new Worker([$receiver], new MessageBus(), $dispatcher, clock: $clock);
+        $worker->run(['sleep' => 20000000, 'time_limit' => 60]);
+
+        $this->assertEquals(new \DateTimeImmutable('2023-03-19 14:01:00+00:00'), $clock->now());
+    }
+
+    public function testWorkerLogsWhenStoppedDueToTimeLimit()
+    {
+        $clock = new MockClock('2023-03-19 14:00:00+00:00');
+        $receiver = new DummyReceiver([[]]);
+
+        $logger = $this->createMock(LoggerInterface::class);
+        $logger->expects($this->atLeastOnce())->method('info')
+            ->willReturnCallback(function (string $message, array $context = []) use (&$timeLimitLogged) {
+                if ('Worker stopped due to time limit of {timeLimit}s exceeded' === $message) {
+                    $this->assertSame(['timeLimit' => 60], $context);
+                    $timeLimitLogged = true;
+                }
+            });
+
+        $dispatcher = new EventDispatcher();
+        $dispatcher->addListener(WorkerRunningEvent::class, static function (WorkerRunningEvent $event) use ($clock) {
+            if ($event->isWorkerIdle()) {
+                $clock->sleep(70);
+            }
+        });
+
+        $worker = new Worker([$receiver], new MessageBus(), $dispatcher, $logger, clock: $clock);
+        $worker->run(['sleep' => 1000000, 'time_limit' => 60]);
+
+        $this->assertTrue($timeLimitLogged ?? false);
+    }
+
     public function testWorkerWithMultipleReceivers()
     {
         // envelopes, in their expected delivery order
@@ -358,15 +421,13 @@
             [$envelope6],
         ]);
 
-        $bus = $this->createMock(MessageBusInterface::class);
-
         $processedEnvelopes = [];
         $dispatcher = new EventDispatcher();
         $dispatcher->addSubscriber(new StopWorkerOnMessageLimitListener(6));
-        $dispatcher->addListener(WorkerMessageReceivedEvent::class, function (WorkerMessageReceivedEvent $event) use (&$processedEnvelopes) {
+        $dispatcher->addListener(WorkerMessageReceivedEvent::class, static function (WorkerMessageReceivedEvent $event) use (&$processedEnvelopes) {
             $processedEnvelopes[] = $event->getEnvelope();
         });
-        $worker = new Worker([$receiver1, $receiver2, $receiver3], $bus, $dispatcher, clock: new MockClock());
+        $worker = new Worker([$receiver1, $receiver2, $receiver3], new MessageBus(), $dispatcher, clock: new MockClock());
         $worker->run();
 
         // make sure they were processed in the correct order
@@ -386,23 +447,19 @@
             ->method('get')
         ;
 
-        $bus = $this->getMockBuilder(MessageBusInterface::class)->getMock();
-
         $dispatcher = new EventDispatcher();
         $dispatcher->addSubscriber(new StopWorkerOnMessageLimitListener(1));
 
-        $worker = new Worker(['transport' => $receiver], $bus, $dispatcher, clock: new MockClock());
+        $worker = new Worker(['transport' => $receiver], new MessageBus(), $dispatcher, clock: new MockClock());
         $worker->run(['queues' => ['foo']]);
     }
 
     public function testWorkerLimitQueuesUnsupported()
     {
-        $receiver1 = $this->createMock(QueueReceiverInterface::class);
-        $receiver2 = $this->createMock(ReceiverInterface::class);
+        $receiver1 = $this->createStub(QueueReceiverInterface::class);
+        $receiver2 = $this->createStub(ReceiverInterface::class);
 
-        $bus = $this->getMockBuilder(MessageBusInterface::class)->getMock();
-
-        $worker = new Worker(['transport1' => $receiver1, 'transport2' => $receiver2], $bus, clock: new MockClock());
+        $worker = new Worker(['transport1' => $receiver1, 'transport2' => $receiver2], new MessageBus(), clock: new MockClock());
         $this->expectException(RuntimeException::class);
         $this->expectExceptionMessage(\sprintf('Receiver for "transport2" does not implement "%s".', QueueReceiverInterface::class));
         $worker->run(['queues' => ['foo']]);
@@ -413,7 +470,7 @@
         $envelope = new Envelope(new DummyMessage('Hello'));
         $receiver = new DummyReceiver([[$envelope]]);
 
-        $bus = $this->createMock(MessageBusInterface::class);
+        $bus = $this->createStub(MessageBusInterface::class);
         $bus->method('dispatch')->willReturnArgument(0);
 
         $eventDispatcher = new EventDispatcher();
@@ -421,7 +478,7 @@
 
         $stamp = new class implements StampInterface {
         };
-        $listener = function (WorkerMessageReceivedEvent $event) use ($stamp) {
+        $listener = static function (WorkerMessageReceivedEvent $event) use ($stamp) {
             $event->addStamps($stamp);
         };
 
@@ -444,7 +501,7 @@
         ];
         $receiver = new DummyReceiver([$envelope]);
 
-        $bus = $this->createMock(MessageBusInterface::class);
+        $bus = $this->createStub(MessageBusInterface::class);
         $bus->method('dispatch')->willReturnArgument(0);
 
         $eventDispatcher = new EventDispatcher();
@@ -474,10 +531,9 @@
 
     public function testWorkerShouldLogOnStop()
     {
-        $bus = $this->createMock(MessageBusInterface::class);
         $logger = $this->createMock(LoggerInterface::class);
         $logger->expects($this->once())->method('info')->with('Stopping worker.');
-        $worker = new Worker([], $bus, new EventDispatcher(), $logger, clock: new MockClock());
+        $worker = new Worker([], new MessageBus(), new EventDispatcher(), $logger, clock: new MockClock());
 
         $worker->stop();
     }
@@ -528,6 +584,7 @@
         $receiver = new DummyReceiver([
             [new Envelope($expectedMessages[0])],
             [],
+            [],
         ]);
 
         $handler = new DummyBatchHandler();
@@ -537,19 +594,21 @@
         ]));
 
         $bus = new MessageBus([$middleware]);
+        $clock = new MockClock();
 
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(WorkerRunningEvent::class, function (WorkerRunningEvent $event) use ($receiver) {
+        $dispatcher->addListener(WorkerRunningEvent::class, function (WorkerRunningEvent $event) use ($receiver, $clock) {
             static $i = 0;
-            if (1 < ++$i) {
+            if (1 === ++$i) {
+                $this->assertSame(0, $receiver->getAcknowledgeCount());
+                $clock->sleep(30);
+            } elseif (2 === $i) {
                 $event->getWorker()->stop();
                 $this->assertSame(1, $receiver->getAcknowledgeCount());
-            } else {
-                $this->assertSame(0, $receiver->getAcknowledgeCount());
             }
         });
 
-        $worker = new Worker([$receiver], $bus, $dispatcher, clock: new MockClock());
+        $worker = new Worker([$receiver], $bus, $dispatcher, clock: $clock);
         $worker->run();
 
         $this->assertSame($expectedMessages, $handler->processedMessages);
@@ -584,6 +643,142 @@
 
         $this->assertSame($expectedMessages, $handler->processedMessages);
     }
+
+    public function testFlushMultipleBatchOnStop()
+    {
+        $expectedMessages = [
+            new DummyMessage('Hey'),
+        ];
+
+        $secondHandlerExpectedMessages = [
+            new SecondHandlerDummyMessage('Ho'),
+        ];
+
+        $receiver = new DummyReceiver([
+            [new Envelope($expectedMessages[0])],
+        ]);
+
+        $secondHandlerReceiver = new DummyReceiver([
+            [new Envelope($secondHandlerExpectedMessages[0])],
+        ]);
+
+        $handler = new DummyBatchHandler();
+        $secondHandler = new SecondDummyBatchHandler();
+
+        $middleware = new HandleMessageMiddleware(new HandlersLocator([
+            DummyMessage::class => [new HandlerDescriptor($handler)],
+            SecondHandlerDummyMessage::class => [new HandlerDescriptor($secondHandler)],
+        ]));
+
+        $bus = new MessageBus([$middleware]);
+
+        $dispatcher = new EventDispatcher();
+        $dispatcher->addListener(WorkerRunningEvent::class, function (WorkerRunningEvent $event) use ($receiver, $secondHandlerReceiver) {
+            static $i = 0;
+            if (1 < ++$i) {
+                $event->getWorker()->stop();
+            }
+
+            $this->assertSame(0, $receiver->getAcknowledgeCount());
+            $this->assertSame(0, $secondHandlerReceiver->getAcknowledgeCount());
+        });
+
+        $worker = new Worker(['first' => $receiver, 'second' => $secondHandlerReceiver], $bus, $dispatcher, clock: new MockClock());
+        $worker->run();
+
+        $this->assertSame($expectedMessages, $handler->processedMessages);
+        $this->assertSame($secondHandlerExpectedMessages, $secondHandler->processedMessages);
+    }
+
+    public function testBatchFlushOnInactivityWhileWorkerIsBusy()
+    {
+        $batchHandler = new LargeBatchHandler();
+
+        $middleware = new HandleMessageMiddleware(new HandlersLocator([
+            DummyMessage::class => [new HandlerDescriptor($batchHandler)],
+            SecondHandlerDummyMessage::class => [new HandlerDescriptor(static function (SecondHandlerDummyMessage $message) {})],
+        ]));
+
+        $bus = new MessageBus([$middleware]);
+        $clock = new MockClock('2024-01-01 00:00:00+00:00');
+
+        // 1 batch message, then 34 non-batch messages keeping the worker busy.
+        // The batch handler requires 100 messages to flush on its own,
+        // so shouldFlush() never triggers. The worker is never idle either.
+        $envelopes = [[new Envelope(new DummyMessage('batch'))]];
+        for ($i = 0; $i < 34; ++$i) {
+            $envelopes[] = [new Envelope(new SecondHandlerDummyMessage('regular'.$i))];
+        }
+        $receiver = new DummyReceiver($envelopes);
+
+        $loopCount = 0;
+        $flushedAtLoop = null;
+        $dispatcher = new EventDispatcher();
+        $dispatcher->addListener(WorkerRunningEvent::class, static function (WorkerRunningEvent $event) use ($clock, &$loopCount, &$flushedAtLoop, $batchHandler) {
+            ++$loopCount;
+            $clock->sleep(1);
+
+            if ($batchHandler->processedMessages) {
+                $flushedAtLoop ??= $loopCount;
+            }
+
+            if (43 <= $loopCount) {
+                $event->getWorker()->stop();
+            }
+        });
+
+        $worker = new Worker(['transport' => $receiver], $bus, $dispatcher, clock: $clock);
+        $worker->run();
+
+        // The batch message was received at t=0, then only non-batch messages arrived.
+        // After 30s of batch inactivity, the worker should force-flush.
+        $this->assertNotNull($flushedAtLoop, 'Batch should have been flushed after inactivity timeout');
+        $this->assertGreaterThanOrEqual(30, $flushedAtLoop);
+        $this->assertLessThanOrEqual(33, $flushedAtLoop);
+        $this->assertSame(['batch'], array_map(static fn ($m) => $m->getMessage(), $batchHandler->processedMessages));
+    }
+
+    public function testFlushRemovesNoAutoAckStampOnException()
+    {
+        $envelope = new Envelope(new DummyMessage('Test'));
+        $receiver = new DummyReceiver([[$envelope]]);
+
+        $bus = new class implements MessageBusInterface {
+            public function dispatch(object $message, array $stamps = []): Envelope
+            {
+                $envelope = Envelope::wrap($message, $stamps);
+                if ($envelope->last(FlushBatchHandlersStamp::class)) {
+                    throw new \RuntimeException('Flush failed');
+                }
+
+                return $envelope;
+            }
+        };
+
+        $dispatcher = new EventDispatcher();
+        $dispatcher->addListener(WorkerRunningEvent::class, static function (WorkerRunningEvent $event) {
+            static $calls = 0;
+            if (++$calls >= 2) {
+                $event->getWorker()->stop();
+            }
+        });
+
+        $worker = new Worker(['transport' => $receiver], $bus, $dispatcher, clock: new MockClock());
+
+        $dummyHandler = new DummyBatchHandler();
+        $envelopeWithNoAutoAck = $envelope->with(new NoAutoAckStamp(new HandlerDescriptor($dummyHandler)));
+        $unacks = new \SplObjectStorage();
+        $unacks[$dummyHandler] = [$envelopeWithNoAutoAck, 'transport', 0];
+        (new \ReflectionProperty($worker, 'unacks'))->setValue($worker, $unacks);
+
+        $worker->run();
+
+        $this->assertSame(1, $receiver->getRejectCount());
+        $rejectedEnvelopes = $receiver->getRejectedEnvelopes();
+        $this->assertCount(1, $rejectedEnvelopes);
+        $rejectedEnvelope = $rejectedEnvelopes[0];
+        $this->assertNull($rejectedEnvelope->last(NoAutoAckStamp::class));
+    }
 }
 
 class DummyQueueReceiver extends DummyReceiver implements QueueReceiverInterface
@@ -619,3 +814,70 @@
         }
     }
 }
+
+class SecondDummyBatchHandler implements BatchHandlerInterface
+{
+    use BatchHandlerTrait;
+
+    public array $processedMessages;
+
+    public function __invoke(SecondHandlerDummyMessage $message, ?Acknowledger $ack = null)
+    {
+        return $this->handle($message, $ack);
+    }
+
+    private function shouldFlush(): bool
+    {
+        return 5 <= \count($this->jobs);
+    }
+
+    private function process(array $jobs): void
+    {
+        $this->processedMessages = array_column($jobs, 0);
+
+        foreach ($jobs as [$job, $ack]) {
+            $ack->ack($job);
+        }
+    }
+}
+
+class LargeBatchHandler implements BatchHandlerInterface
+{
+    use BatchHandlerTrait;
+
+    public array $processedMessages = [];
+
+    public function __invoke(DummyMessage $message, ?Acknowledger $ack = null)
+    {
+        return $this->handle($message, $ack);
+    }
+
+    private function shouldFlush(): bool
+    {
+        return 100 <= \count($this->jobs);
+    }
+
+    private function process(array $jobs): void
+    {
+        $this->processedMessages = array_merge($this->processedMessages, array_column($jobs, 0));
+
+        foreach ($jobs as [$job, $ack]) {
+            $ack->ack($job);
+        }
+    }
+}
+
+class SecondHandlerDummyMessage implements DummyMessageInterface
+{
+    private string $message;
+
+    public function __construct(string $message)
+    {
+        $this->message = $message;
+    }
+
+    public function getMessage(): string
+    {
+        return $this->message;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/InMemory/InMemoryTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/InMemory/InMemoryTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/InMemory/InMemoryTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/InMemory/InMemoryTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -102,7 +102,7 @@
         /** @var DelayStamp|null $delayStamp */
         if ($delayStamp = $envelope->last(DelayStamp::class)) {
             $now = $this->clock?->now() ?? new \DateTimeImmutable();
-            $this->availableAt[$id] = $now->modify(sprintf('+%d seconds', $delayStamp->getDelay() / 1000));
+            $this->availableAt[$id] = $now->modify(\sprintf('+%d seconds', $delayStamp->getDelay() / 1000));
         }
 
         return $envelope;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/Sender/SendersLocator.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/Sender/SendersLocator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/Sender/SendersLocator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/Sender/SendersLocator.php	2026-05-20 10:56:49.000000000 +0200
@@ -69,7 +69,7 @@
     private function getSenderFromAlias(string $senderAlias): iterable
     {
         if (!$this->sendersLocator->has($senderAlias)) {
-            throw new RuntimeException(sprintf('Invalid senders configuration: sender "%s" is not in the senders locator.', $senderAlias));
+            throw new RuntimeException(\sprintf('Invalid senders configuration: sender "%s" is not in the senders locator.', $senderAlias));
         }
 
         yield $senderAlias => $this->sendersLocator->get($senderAlias);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/Normalizer/FlattenExceptionNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/Normalizer/FlattenExceptionNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/Normalizer/FlattenExceptionNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/Normalizer/FlattenExceptionNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
             'previous' => null === $object->getPrevious() ? null : $this->normalize($object->getPrevious(), $format, $context),
             'status' => $object->getStatusCode(),
             'status_text' => $object->getStatusText(),
-            'trace' => $object->getTrace(),
+            'trace' => self::sanitizeTrace($object->getTrace()),
             'trace_as_string' => $object->getTraceAsString(),
         ];
 
@@ -87,4 +87,15 @@
     {
         return FlattenException::class === $type && ($context[Serializer::MESSENGER_SERIALIZATION_CONTEXT] ?? false);
     }
+
+    private static function sanitizeTrace(array $trace): array
+    {
+        foreach ($trace as &$frame) {
+            if (isset($frame['args'])) {
+                unset($frame['args']);
+            }
+        }
+
+        return $trace;
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/PhpSerializer.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/PhpSerializer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/PhpSerializer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/PhpSerializer.php	2026-05-20 10:56:49.000000000 +0200
@@ -80,7 +80,7 @@
         } else {
             $prevUnserializeHandler = ini_set('unserialize_callback_func', self::class.'::handleUnserializeCallback');
         }
-        $prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler) {
+        $prevErrorHandler = set_error_handler(static function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler) {
             if (__FILE__ === $file && !\in_array($type, [\E_DEPRECATED, \E_USER_DEPRECATED], true)) {
                 throw new \ErrorException($msg, 0, $type, $file, $line);
             }
@@ -118,6 +118,6 @@
      */
     public static function handleUnserializeCallback(string $class): never
     {
-        throw new MessageDecodingFailedException(sprintf('Message class "%s" not found during decoding.', $class));
+        throw new MessageDecodingFailedException(\sprintf('Message class "%s" not found during decoding.', $class));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/Serializer.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/Serializer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/Serializer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/Serialization/Serializer.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
     public static function create(): self
     {
         if (!class_exists(SymfonySerializer::class)) {
-            throw new LogicException(sprintf('The "%s" class requires Symfony\'s Serializer component. Try running "composer require symfony/serializer" or use "%s" instead.', __CLASS__, PhpSerializer::class));
+            throw new LogicException(\sprintf('The "%s" class requires Symfony\'s Serializer component. Try running "composer require symfony/serializer" or use "%s" instead.', __CLASS__, PhpSerializer::class));
         }
 
         $encoders = [new XmlEncoder(), new JsonEncoder()];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/TransportFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/TransportFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Transport/TransportFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Transport/TransportFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
 
         // Help the user to select Symfony packages based on protocol.
         $packageSuggestion = '';
-        if (str_starts_with($dsn, 'amqp://')) {
+        if (str_starts_with($dsn, 'amqp://') || str_starts_with($dsn, 'amqps://')) {
             $packageSuggestion = ' Run "composer require symfony/amqp-messenger" to install AMQP transport.';
         } elseif (str_starts_with($dsn, 'doctrine://')) {
             $packageSuggestion = ' Run "composer require symfony/doctrine-messenger" to install Doctrine transport.';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Worker.php symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Worker.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Messenger/Worker.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Messenger/Worker.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
     private bool $shouldStop = false;
     private WorkerMetadata $metadata;
     private array $acks = [];
-    private \SplObjectStorage $unacks;
+    private ?\SplObjectStorage $unacks = null;
 
     /**
      * @param ReceiverInterface[] $receivers Where the key is the transport name
@@ -61,7 +61,6 @@
         $this->metadata = new WorkerMetadata([
             'transportNames' => array_keys($receivers),
         ]);
-        $this->unacks = new \SplObjectStorage();
     }
 
     /**
@@ -69,14 +68,17 @@
      *
      * Valid options are:
      *  * sleep (default: 1000000): Time in microseconds to sleep after no messages are found
+     *  * time_limit: The time limit in seconds the worker can handle new messages
      *  * queues: The queue names to consume from, instead of consuming from all queues. When this is used, all receivers must implement the QueueReceiverInterface
      */
     public function run(array $options = []): void
     {
         $options = array_merge([
             'sleep' => 1000000,
+            'time_limit' => null,
         ], $options);
         $queueNames = $options['queues'] ?? null;
+        $endTime = null !== $options['time_limit'] ? $this->clock->now()->format('U.u') + $options['time_limit'] : null;
 
         $this->metadata->set(['queueNames' => $queueNames]);
 
@@ -92,6 +94,11 @@
         }
 
         while (!$this->shouldStop) {
+            if (null !== $endTime && $this->clock->now()->format('U.u') >= $endTime) {
+                $this->logger?->info('Worker stopped due to time limit of {timeLimit}s exceeded', ['timeLimit' => $options['time_limit']]);
+                break;
+            }
+
             $envelopeHandled = false;
             $envelopeHandledStart = $this->clock->now();
             foreach ($this->receivers as $transportName => $receiver) {
@@ -125,11 +132,21 @@
                 continue;
             }
 
-            if (!$envelopeHandled) {
+            if (!$this->flush(30.0) && !$envelopeHandled) {
                 $this->eventDispatcher?->dispatch(new WorkerRunningEvent($this, true));
 
+                if ($this->shouldStop) {
+                    continue;
+                }
+
                 if (0 < $sleep = (int) ($options['sleep'] - 1e6 * ($this->clock->now()->format('U.u') - $envelopeHandledStart->format('U.u')))) {
-                    $this->clock->sleep($sleep / 1e6);
+                    if (null !== $endTime) {
+                        $sleep = min($sleep, (int) (1e6 * ($endTime - $this->clock->now()->format('U.u'))));
+                    }
+
+                    if (0 < $sleep) {
+                        $this->clock->sleep($sleep / 1e6);
+                    }
                 }
             }
         }
@@ -165,7 +182,8 @@
         if (!$acked && !$noAutoAckStamp) {
             $this->acks[] = [$transportName, $envelope, $e];
         } elseif ($noAutoAckStamp) {
-            $this->unacks[$noAutoAckStamp->getHandlerDescriptor()->getBatchHandler()] = [$envelope->withoutAll(AckStamp::class), $transportName];
+            $this->unacks ??= new \SplObjectStorage();
+            $this->unacks[$noAutoAckStamp->getHandlerDescriptor()->getBatchHandler()] = [$envelope->withoutAll(AckStamp::class), $transportName, $this->clock->now()->format('U.u')];
         }
 
         $this->ack();
@@ -243,23 +261,42 @@
         $rateLimiter->consume();
     }
 
-    private function flush(bool $force): bool
+    private function flush(bool|float $force): bool
     {
-        $unacks = $this->unacks;
+        if (!$this->unacks) {
+            return false;
+        }
+
+        if (\is_bool($force)) {
+            $unacks = $this->unacks;
+            $this->unacks = null;
+        } else {
+            $now = $this->clock->now()->format('U.u');
+            $remaining = new \SplObjectStorage();
+            $unacks = new \SplObjectStorage();
+
+            foreach ($this->unacks as $handler) {
+                if ($force <= $now - $this->unacks[$handler][2]) {
+                    $unacks[$handler] = $this->unacks[$handler];
+                } else {
+                    $remaining[$handler] = $this->unacks[$handler];
+                }
+            }
+
+            $this->unacks = $remaining->count() ? $remaining : null;
+            $force = true;
+        }
 
         if (!$unacks->count()) {
             return false;
         }
 
-        $this->unacks = new \SplObjectStorage();
-
-        foreach ($unacks as $batchHandler) {
-            [$envelope, $transportName] = $unacks[$batchHandler];
+        foreach ($unacks as $handler) {
+            [$envelope, $transportName] = $unacks[$handler];
             try {
                 $this->bus->dispatch($envelope->with(new FlushBatchHandlersStamp($force)));
-                $envelope = $envelope->withoutAll(NoAutoAckStamp::class);
-                unset($unacks[$batchHandler], $batchHandler);
             } catch (\Throwable $e) {
+                $envelope = $envelope->withoutAll(NoAutoAckStamp::class);
                 $this->acks[] = [$transportName, $envelope, $e];
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Address.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Address.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Address.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Address.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
     public function __construct(string $address, string $name = '')
     {
         if (!class_exists(EmailValidator::class)) {
-            throw new LogicException(sprintf('The "%s" class cannot be used as it needs "%s". Try running "composer require egulias/email-validator".', __CLASS__, EmailValidator::class));
+            throw new LogicException(\sprintf('The "%s" class cannot be used as it needs "%s". Try running "composer require egulias/email-validator".', __CLASS__, EmailValidator::class));
         }
 
         self::$validator ??= new EmailValidator();
@@ -50,8 +50,12 @@
         $this->address = trim($address);
         $this->name = trim(str_replace(["\n", "\r"], '', $name));
 
+        if (preg_match('/[\x00-\x1F\x7F]/', $this->address)) {
+            throw new InvalidArgumentException('Email address contains control characters.');
+        }
+
         if (!self::$validator->isValid($this->address, class_exists(MessageIDValidation::class) ? new MessageIDValidation() : new RFCValidation())) {
-            throw new RfcComplianceException(sprintf('Email "%s" does not comply with addr-spec of RFC 2822.', $address));
+            throw new RfcComplianceException(\sprintf('Email "%s" does not comply with addr-spec of RFC 2822.', $address));
         }
     }
 
@@ -83,7 +87,7 @@
             return '';
         }
 
-        return sprintf('"%s"', preg_replace('/"/u', '\"', $this->getName()));
+        return \sprintf('"%s"', preg_replace('/"/u', '\"', $this->getName()));
     }
 
     public static function create(self|string $address): self
@@ -97,7 +101,7 @@
         }
 
         if (!preg_match(self::FROM_STRING_PATTERN, $address, $matches)) {
-            throw new InvalidArgumentException(sprintf('Could not parse "%s" to a "%s" instance.', $address, self::class));
+            throw new InvalidArgumentException(\sprintf('Could not parse "%s" to a "%s" instance.', $address, self::class));
         }
 
         return new self($matches['addrSpec'], trim($matches['displayName'], ' \'"'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Crypto/DkimSigner.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Crypto/DkimSigner.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Crypto/DkimSigner.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Crypto/DkimSigner.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
     {
         $options += $this->defaultOptions;
         if (!\in_array($options['algorithm'], [self::ALGO_SHA256, self::ALGO_ED25519], true)) {
-            throw new InvalidArgumentException(sprintf('Invalid DKIM signing algorithm "%s".', $options['algorithm']));
+            throw new InvalidArgumentException(\sprintf('Invalid DKIM signing algorithm "%s".', $options['algorithm']));
         }
         $headersToIgnore['return-path'] = true;
         $headersToIgnore['x-transport'] = true;
@@ -119,7 +119,7 @@
                 throw new RuntimeException('Unable to sign DKIM hash: '.openssl_error_string());
             }
         } else {
-            throw new \RuntimeException(sprintf('The "%s" DKIM signing algorithm is not supported yet.', self::ALGO_ED25519));
+            throw new \RuntimeException(\sprintf('The "%s" DKIM signing algorithm is not supported yet.', self::ALGO_ED25519));
         }
         $header->setValue($value.' b='.trim(chunk_split(base64_encode($signature), 73, ' ')));
         $headers->add($header);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Crypto/SMimeEncrypter.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Crypto/SMimeEncrypter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Crypto/SMimeEncrypter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Crypto/SMimeEncrypter.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
 
     /**
      * @param string|string[] $certificate The path (or array of paths) of the file(s) containing the X.509 certificate(s)
-     * @param int|null        $cipher      A set of algorithms used to encrypt the message. Must be one of these PHP constants: https://www.php.net/manual/en/openssl.ciphers.php
+     * @param int|null        $cipher      A set of algorithms used to encrypt the message. Must be one of these PHP constants: https://php.net/openssl.ciphers
      */
     public function __construct(string|array $certificate, ?int $cipher = null)
     {
@@ -49,7 +49,7 @@
         $this->iteratorToFile($message->toIterable(), $bufferFile);
 
         if (!@openssl_pkcs7_encrypt(stream_get_meta_data($bufferFile)['uri'], stream_get_meta_data($outputFile)['uri'], $this->certs, [], 0, $this->cipher)) {
-            throw new RuntimeException(sprintf('Failed to encrypt S/Mime message. Error: "%s".', openssl_error_string()));
+            throw new RuntimeException(\sprintf('Failed to encrypt S/Mime message. Error: "%s".', openssl_error_string()));
         }
 
         $mimePart = $this->convertMessageToSMimePart($outputFile, 'application', 'pkcs7-mime');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Crypto/SMime.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Crypto/SMime.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Crypto/SMime.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Crypto/SMime.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
     protected function normalizeFilePath(string $path): string
     {
         if (!file_exists($path)) {
-            throw new RuntimeException(sprintf('File does not exist: "%s".', $path));
+            throw new RuntimeException(\sprintf('File does not exist: "%s".', $path));
         }
 
         return 'file://'.str_replace('\\', '/', realpath($path));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Crypto/SMimeSigner.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Crypto/SMimeSigner.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Crypto/SMimeSigner.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Crypto/SMimeSigner.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,7 +57,7 @@
         $this->iteratorToFile($message->getBody()->toIterable(), $bufferFile);
 
         if (!@openssl_pkcs7_sign(stream_get_meta_data($bufferFile)['uri'], stream_get_meta_data($outputFile)['uri'], $this->signCertificate, $this->signPrivateKey, [], $this->signOptions, $this->extraCerts)) {
-            throw new RuntimeException(sprintf('Failed to sign S/Mime message. Error: "%s".', openssl_error_string()));
+            throw new RuntimeException(\sprintf('Failed to sign S/Mime message. Error: "%s".', openssl_error_string()));
         }
 
         return new Message($message->getHeaders(), $this->convertMessageToSMimePart($outputFile, 'multipart', 'signed'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/DependencyInjection/AddMimeTypeGuesserPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/DependencyInjection/AddMimeTypeGuesserPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/DependencyInjection/AddMimeTypeGuesserPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/DependencyInjection/AddMimeTypeGuesserPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,11 +27,16 @@
      */
     public function process(ContainerBuilder $container)
     {
-        if ($container->has('mime_types')) {
-            $definition = $container->findDefinition('mime_types');
-            foreach ($container->findTaggedServiceIds('mime.mime_type_guesser', true) as $id => $attributes) {
-                $definition->addMethodCall('registerGuesser', [new Reference($id)]);
-            }
+        if (!$container->has('mime_types')) {
+            return;
+        }
+        $definition = $container->findDefinition('mime_types');
+        $id = null;
+        foreach ($container->findTaggedServiceIds('mime.mime_type_guesser', true) as $id => $attributes) {
+            $definition->addMethodCall('registerGuesser', [new Reference($id)]);
+        }
+        if (null !== $id) {
+            $definition->setPublic(true);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Email.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Email.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Email.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Email.php	2026-05-20 10:56:49.000000000 +0200
@@ -246,7 +246,7 @@
             $priority = 1;
         }
 
-        return $this->setHeaderBody('Text', 'X-Priority', sprintf('%d (%s)', $priority, self::PRIORITY_MAP[$priority]));
+        return $this->setHeaderBody('Text', 'X-Priority', \sprintf('%d (%s)', $priority, self::PRIORITY_MAP[$priority]));
     }
 
     /**
@@ -270,7 +270,7 @@
     public function text($body, string $charset = 'utf-8'): static
     {
         if (null !== $body && !\is_string($body) && !\is_resource($body)) {
-            throw new \TypeError(sprintf('The body must be a string, a resource or null (got "%s").', get_debug_type($body)));
+            throw new \TypeError(\sprintf('The body must be a string, a resource or null (got "%s").', get_debug_type($body)));
         }
 
         $this->cachedBody = null;
@@ -301,7 +301,7 @@
     public function html($body, string $charset = 'utf-8'): static
     {
         if (null !== $body && !\is_string($body) && !\is_resource($body)) {
-            throw new \TypeError(sprintf('The body must be a string, a resource or null (got "%s").', get_debug_type($body)));
+            throw new \TypeError(\sprintf('The body must be a string, a resource or null (got "%s").', get_debug_type($body)));
         }
 
         $this->cachedBody = null;
@@ -507,10 +507,10 @@
                 }
 
                 if ($name !== $part->getContentId()) {
-                    $html = str_replace('cid:'.$name, 'cid:'.$part->getContentId(), $html, $count);
+                    $html = str_replace('cid:'.$name, 'cid:'.$part->getContentId(), $html);
                 }
                 $relatedParts[$name] = $part;
-                $part->setName($part->getContentId())->asInline();
+                $part->setName($part->getName() ?? $part->getContentId())->asInline();
 
                 continue 2;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Encoder/Base64ContentEncoder.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Encoder/Base64ContentEncoder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Encoder/Base64ContentEncoder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Encoder/Base64ContentEncoder.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,7 @@
     public function encodeByteStream($stream, int $maxLineLength = 0): iterable
     {
         if (!\is_resource($stream)) {
-            throw new \TypeError(sprintf('Method "%s" takes a stream as a first argument.', __METHOD__));
+            throw new \TypeError(\sprintf('Method "%s" takes a stream as a first argument.', __METHOD__));
         }
 
         $filter = stream_filter_append($stream, 'convert.base64-encode', \STREAM_FILTER_READ, [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Encoder/IdnAddressEncoder.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Encoder/IdnAddressEncoder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Encoder/IdnAddressEncoder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Encoder/IdnAddressEncoder.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
             $domain = substr($address, $i + 1);
 
             if (preg_match('/[^\x00-\x7F]/', $domain)) {
-                $address = sprintf('%s@%s', $local, idn_to_ascii($domain, \IDNA_DEFAULT | \IDNA_USE_STD3_RULES | \IDNA_CHECK_BIDI | \IDNA_CHECK_CONTEXTJ | \IDNA_NONTRANSITIONAL_TO_ASCII, \INTL_IDNA_VARIANT_UTS46));
+                $address = \sprintf('%s@%s', $local, idn_to_ascii($domain, \IDNA_DEFAULT | \IDNA_USE_STD3_RULES | \IDNA_CHECK_BIDI | \IDNA_CHECK_CONTEXTJ | \IDNA_NONTRANSITIONAL_TO_ASCII, \INTL_IDNA_VARIANT_UTS46));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Encoder/QpContentEncoder.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Encoder/QpContentEncoder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Encoder/QpContentEncoder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Encoder/QpContentEncoder.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
     public function encodeByteStream($stream, int $maxLineLength = 0): iterable
     {
         if (!\is_resource($stream)) {
-            throw new \TypeError(sprintf('Method "%s" takes a stream as a first argument.', __METHOD__));
+            throw new \TypeError(\sprintf('Method "%s" takes a stream as a first argument.', __METHOD__));
         }
 
         // we don't use PHP stream filters here as the content should be small enough
@@ -46,9 +46,9 @@
         // transform =0D=0A to CRLF
         $string = str_replace(["\t=0D=0A", ' =0D=0A', '=0D=0A'], ["=09\r\n", "=20\r\n", "\r\n"], $string);
 
-        return match (\ord(substr($string, -1))) {
-            0x09 => substr_replace($string, '=09', -1),
-            0x20 => substr_replace($string, '=20', -1),
+        return match ($string[-1] ?? '') {
+            "\x09" => substr_replace($string, '=09', -1),
+            "\x20" => substr_replace($string, '=20', -1),
             default => $string,
         };
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Encoder/QpEncoder.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Encoder/QpEncoder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Encoder/QpEncoder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Encoder/QpEncoder.php	2026-05-20 10:56:49.000000000 +0200
@@ -183,9 +183,9 @@
     {
         $string = str_replace(["\t=0D=0A", ' =0D=0A', '=0D=0A'], ["=09\r\n", "=20\r\n", "\r\n"], $string);
 
-        return match ($end = \ord(substr($string, -1))) {
-            0x09,
-            0x20 => substr_replace($string, self::QP_MAP[$end], -1),
+        return match ($end = ($string[-1] ?? '')) {
+            "\x09",
+            "\x20" => substr_replace($string, self::QP_MAP[\ord($end)], -1),
             default => $string,
         };
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/FileBinaryMimeTypeGuesser.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/FileBinaryMimeTypeGuesser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/FileBinaryMimeTypeGuesser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/FileBinaryMimeTypeGuesser.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,38 +44,25 @@
             return $supported;
         }
 
-        if ('\\' === \DIRECTORY_SEPARATOR || !\function_exists('passthru') || !\function_exists('escapeshellarg')) {
+        if ('\\' === \DIRECTORY_SEPARATOR || !\function_exists('shell_exec') || !\function_exists('escapeshellarg')) {
             return $supported = false;
         }
 
-        ob_start();
-        passthru('command -v file', $exitStatus);
-        $binPath = trim(ob_get_clean());
-
-        return $supported = 0 === $exitStatus && '' !== $binPath;
+        return $supported = '' !== trim(shell_exec('command -v file') ?: '');
     }
 
     public function guessMimeType(string $path): ?string
     {
         if (!is_file($path) || !is_readable($path)) {
-            throw new InvalidArgumentException(sprintf('The "%s" file does not exist or is not readable.', $path));
+            throw new InvalidArgumentException(\sprintf('The "%s" file does not exist or is not readable.', $path));
         }
 
         if (!$this->isGuesserSupported()) {
-            throw new LogicException(sprintf('The "%s" guesser is not supported.', __CLASS__));
+            throw new LogicException(\sprintf('The "%s" guesser is not supported.', __CLASS__));
         }
 
-        ob_start();
-
         // need to use --mime instead of -i. see #6641
-        passthru(sprintf($this->cmd, escapeshellarg((str_starts_with($path, '-') ? './' : '').$path)), $return);
-        if ($return > 0) {
-            ob_end_clean();
-
-            return null;
-        }
-
-        $type = trim(ob_get_clean());
+        $type = trim(shell_exec(\sprintf($this->cmd, escapeshellarg((str_starts_with($path, '-') ? './' : '').$path))) ?: '');
 
         if (!preg_match('#^([a-z0-9\-]+/[a-z0-9\-\+\.]+)#i', $type, $match)) {
             // it's not a type, but an error message
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/FileinfoMimeTypeGuesser.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/FileinfoMimeTypeGuesser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/FileinfoMimeTypeGuesser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/FileinfoMimeTypeGuesser.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     /**
      * @param string|null $magicFile A magic file to use with the finfo instance
      *
-     * @see http://www.php.net/manual/en/function.finfo-open.php
+     * @see https://php.net/finfo-open
      */
     public function __construct(?string $magicFile = null)
     {
@@ -41,11 +41,11 @@
     public function guessMimeType(string $path): ?string
     {
         if (!is_file($path) || !is_readable($path)) {
-            throw new InvalidArgumentException(sprintf('The "%s" file does not exist or is not readable.', $path));
+            throw new InvalidArgumentException(\sprintf('The "%s" file does not exist or is not readable.', $path));
         }
 
         if (!$this->isGuesserSupported()) {
-            throw new LogicException(sprintf('The "%s" guesser is not supported.', __CLASS__));
+            throw new LogicException(\sprintf('The "%s" guesser is not supported.', __CLASS__));
         }
 
         if (false === $finfo = new \finfo(\FILEINFO_MIME_TYPE, $this->magicFile)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Header/Headers.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Header/Headers.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Header/Headers.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Header/Headers.php	2026-05-20 10:56:49.000000000 +0200
@@ -170,7 +170,7 @@
         $name = strtolower($header->getName());
 
         if (\in_array($name, self::UNIQUE_HEADERS, true) && isset($this->headers[$name]) && \count($this->headers[$name]) > 0) {
-            throw new LogicException(sprintf('Impossible to set header "%s" as it\'s already defined and must be unique.', $header->getName()));
+            throw new LogicException(\sprintf('Impossible to set header "%s" as it\'s already defined and must be unique.', $header->getName()));
         }
 
         $this->headers[$name][] = $header;
@@ -241,7 +241,7 @@
             }
         }
 
-        throw new LogicException(sprintf('The "%s" header must be an instance of "%s" (got "%s").', $header->getName(), implode('" or "', $headerClasses), get_debug_type($header)));
+        throw new LogicException(\sprintf('The "%s" header must be an instance of "%s" (got "%s").', $header->getName(), implode('" or "', $headerClasses), get_debug_type($header)));
     }
 
     public function toString(): string
@@ -291,7 +291,7 @@
 
         $header = $this->get($name);
         if (!$header instanceof ParameterizedHeader) {
-            throw new LogicException(sprintf('Unable to get parameter "%s" on header "%s" as the header is not of class "%s".', $parameter, $name, ParameterizedHeader::class));
+            throw new LogicException(\sprintf('Unable to get parameter "%s" on header "%s" as the header is not of class "%s".', $parameter, $name, ParameterizedHeader::class));
         }
 
         return $header->getParameter($parameter);
@@ -303,12 +303,12 @@
     public function setHeaderParameter(string $name, string $parameter, ?string $value): void
     {
         if (!$this->has($name)) {
-            throw new LogicException(sprintf('Unable to set parameter "%s" on header "%s" as the header is not defined.', $parameter, $name));
+            throw new LogicException(\sprintf('Unable to set parameter "%s" on header "%s" as the header is not defined.', $parameter, $name));
         }
 
         $header = $this->get($name);
         if (!$header instanceof ParameterizedHeader) {
-            throw new LogicException(sprintf('Unable to set parameter "%s" on header "%s" as the header is not of class "%s".', $parameter, $name, ParameterizedHeader::class));
+            throw new LogicException(\sprintf('Unable to set parameter "%s" on header "%s" as the header is not of class "%s".', $parameter, $name, ParameterizedHeader::class));
         }
 
         $header->setParameter($parameter, $value);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Header/ParameterizedHeader.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Header/ParameterizedHeader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Header/ParameterizedHeader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Header/ParameterizedHeader.php	2026-05-20 10:56:49.000000000 +0200
@@ -162,9 +162,9 @@
             }
 
             return implode(";\r\n ", $paramLines);
-        } else {
-            return $name.$this->getEndOfParameterValue($valueLines[0], $encoded, true);
         }
+
+        return $name.$this->getEndOfParameterValue($valueLines[0], $encoded, true);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/MessageConverter.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/MessageConverter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/MessageConverter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/MessageConverter.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,13 +55,13 @@
             } elseif ($parts[0] instanceof TextPart) {
                 $email = self::createEmailFromTextPart($message, $parts[0]);
             } else {
-                throw new RuntimeException(sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message)));
+                throw new RuntimeException(\sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message)));
             }
 
             return self::addParts($email, \array_slice($parts, 1));
         }
 
-        throw new RuntimeException(sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message)));
+        throw new RuntimeException(\sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message)));
     }
 
     private static function createEmailFromTextPart(Message $message, TextPart $part): Email
@@ -73,7 +73,7 @@
             return (new Email(clone $message->getHeaders()))->html($part->getBody(), $part->getPreparedHeaders()->getHeaderParameter('Content-Type', 'charset') ?: 'utf-8');
         }
 
-        throw new RuntimeException(sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message)));
+        throw new RuntimeException(\sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message)));
     }
 
     private static function createEmailFromAlternativePart(Message $message, AlternativePart $part): Email
@@ -90,7 +90,7 @@
             ;
         }
 
-        throw new RuntimeException(sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message)));
+        throw new RuntimeException(\sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message)));
     }
 
     private static function createEmailFromRelatedPart(Message $message, RelatedPart $part): Email
@@ -101,7 +101,7 @@
         } elseif ($parts[0] instanceof TextPart) {
             $email = self::createEmailFromTextPart($message, $parts[0]);
         } else {
-            throw new RuntimeException(sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message)));
+            throw new RuntimeException(\sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message)));
         }
 
         return self::addParts($email, \array_slice($parts, 1));
@@ -111,7 +111,7 @@
     {
         foreach ($parts as $part) {
             if (!$part instanceof DataPart) {
-                throw new RuntimeException(sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($email)));
+                throw new RuntimeException(\sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($email)));
             }
 
             $email->addPart($part);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/MimeTypes.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/MimeTypes.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/MimeTypes.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/MimeTypes.php	2026-05-20 10:56:49.000000000 +0200
@@ -135,7 +135,7 @@
     /**
      * A map of MIME types and their default extensions.
      *
-     * Updated from upstream on 2023-10-14.
+     * Updated from upstream on 2026-02-02.
      *
      * @see Resources/bin/update_mime_types.php
      */
@@ -143,7 +143,10 @@
         'application/acrobat' => ['pdf'],
         'application/andrew-inset' => ['ez'],
         'application/annodex' => ['anx'],
+        'application/appinstaller' => ['appinstaller'],
         'application/applixware' => ['aw'],
+        'application/appx' => ['appx'],
+        'application/appxbundle' => ['appxbundle'],
         'application/atom+xml' => ['atom'],
         'application/atomcat+xml' => ['atomcat'],
         'application/atomdeleted+xml' => ['atomdeleted'],
@@ -151,8 +154,11 @@
         'application/atsc-dwd+xml' => ['dwd'],
         'application/atsc-held+xml' => ['held'],
         'application/atsc-rsat+xml' => ['rsat'],
+        'application/automationml-aml+xml' => ['aml'],
+        'application/automationml-amlx+zip' => ['amlx'],
         'application/bat' => ['bat'],
         'application/bdoc' => ['bdoc'],
+        'application/buildstream+yaml' => ['bst'],
         'application/bzip2' => ['bz2', 'bz'],
         'application/calendar+xml' => ['xcs'],
         'application/cbor' => ['cbor'],
@@ -168,6 +174,7 @@
         'application/cpl+xml' => ['cpl'],
         'application/csv' => ['csv'],
         'application/cu-seeme' => ['cu'],
+        'application/cwl' => ['cwl'],
         'application/dash+xml' => ['mpd'],
         'application/dash-patch+xml' => ['mpp'],
         'application/davmount+xml' => ['davmount'],
@@ -184,6 +191,7 @@
         'application/epub+zip' => ['epub'],
         'application/exi' => ['exi'],
         'application/express' => ['exp'],
+        'application/fdf' => ['fdf'],
         'application/fdt+xml' => ['fdt'],
         'application/fits' => ['fits', 'fit', 'fts'],
         'application/font-tdpfr' => ['pfr'],
@@ -196,10 +204,12 @@
         'application/gpx+xml' => ['gpx'],
         'application/gxf' => ['gxf'],
         'application/gzip' => ['gz'],
+        'application/har+json' => ['har'],
         'application/hjson' => ['hjson'],
+        'application/hta' => ['hta'],
         'application/hyperstudio' => ['stk'],
         'application/ico' => ['ico'],
-        'application/ics' => ['vcs', 'ics'],
+        'application/ics' => ['vcs', 'ics', 'ifb', 'icalendar'],
         'application/illustrator' => ['ai'],
         'application/inkml+xml' => ['ink', 'inkml'],
         'application/ipfix' => ['ipfix'],
@@ -209,7 +219,7 @@
         'application/java-byte-code' => ['class'],
         'application/java-serialized-object' => ['ser'],
         'application/java-vm' => ['class'],
-        'application/javascript' => ['js', 'mjs', 'jsm'],
+        'application/javascript' => ['js', 'cjs', 'jsm', 'mjs'],
         'application/jrd+json' => ['jrd'],
         'application/json' => ['json', 'map'],
         'application/json-patch+json' => ['json-patch'],
@@ -235,16 +245,20 @@
         'application/metalink+xml' => ['metalink'],
         'application/metalink4+xml' => ['meta4'],
         'application/mets+xml' => ['mets'],
+        'application/microsoftpatch' => ['msp'],
+        'application/microsoftupdate' => ['msu'],
         'application/mmt-aei+xml' => ['maei'],
         'application/mmt-usd+xml' => ['musd'],
         'application/mods+xml' => ['mods'],
         'application/mp21' => ['m21', 'mp21'],
-        'application/mp4' => ['mp4s', 'm4p'],
+        'application/mp4' => ['mp4', 'mpg4', 'mp4s', 'm4p'],
         'application/mrb-consumer+xml' => ['xdf'],
         'application/mrb-publish+xml' => ['xdf'],
         'application/ms-tnef' => ['tnef', 'tnf'],
         'application/msaccess' => ['mdb'],
         'application/msexcel' => ['xls', 'xlc', 'xll', 'xlm', 'xlw', 'xla', 'xlt', 'xld'],
+        'application/msix' => ['msix'],
+        'application/msixbundle' => ['msixbundle'],
         'application/mspowerpoint' => ['ppz', 'ppt', 'pps', 'pot'],
         'application/msword' => ['doc', 'dot'],
         'application/msword-template' => ['dot'],
@@ -269,7 +283,7 @@
         'application/pgp' => ['pgp', 'gpg', 'asc'],
         'application/pgp-encrypted' => ['pgp', 'gpg', 'asc'],
         'application/pgp-keys' => ['asc', 'skr', 'pkr', 'pgp', 'gpg', 'key'],
-        'application/pgp-signature' => ['asc', 'sig', 'pgp', 'gpg'],
+        'application/pgp-signature' => ['sig', 'asc', 'pgp', 'gpg'],
         'application/photoshop' => ['psd'],
         'application/pics-rules' => ['prf'],
         'application/pkcs10' => ['p10'],
@@ -289,6 +303,8 @@
         'application/powerpoint' => ['ppz', 'ppt', 'pps', 'pot'],
         'application/provenance+xml' => ['provx'],
         'application/prs.cww' => ['cww'],
+        'application/prs.wavefront-obj' => ['obj'],
+        'application/prs.xsf+xml' => ['xsf'],
         'application/pskc+xml' => ['pskcxml'],
         'application/ram' => ['ram'],
         'application/raml+yaml' => ['raml'],
@@ -324,6 +340,7 @@
         'application/smil+xml' => ['smi', 'smil', 'sml', 'kino'],
         'application/sparql-query' => ['rq', 'qs'],
         'application/sparql-results+xml' => ['srx'],
+        'application/spdx+json' => ['spdx.json'],
         'application/sql' => ['sql'],
         'application/srgs' => ['gram'],
         'application/srgs+xml' => ['grxml'],
@@ -339,6 +356,7 @@
         'application/toml' => ['toml'],
         'application/trig' => ['trig'],
         'application/ttml+xml' => ['ttml'],
+        'application/typescript' => ['cts', 'mts', 'ts'],
         'application/ubjson' => ['ubj'],
         'application/urc-ressheet+xml' => ['rsheet'],
         'application/urc-targetdesc+xml' => ['td'],
@@ -371,6 +389,7 @@
         'application/vnd.anser-web-certificate-issue-initiation' => ['cii'],
         'application/vnd.anser-web-funds-transfer-initiation' => ['fti'],
         'application/vnd.antix.game-component' => ['atx'],
+        'application/vnd.apache.parquet' => ['parquet'],
         'application/vnd.appimage' => ['appimage'],
         'application/vnd.apple.installer+xml' => ['mpkg'],
         'application/vnd.apple.keynote' => ['key', 'keynote'],
@@ -378,6 +397,7 @@
         'application/vnd.apple.numbers' => ['numbers'],
         'application/vnd.apple.pages' => ['pages'],
         'application/vnd.apple.pkpass' => ['pkpass'],
+        'application/vnd.apple.pkpasses' => ['pkpasses'],
         'application/vnd.aristanetworks.swi' => ['swi'],
         'application/vnd.astraea-software.iota' => ['iota'],
         'application/vnd.audiograph' => ['aep'],
@@ -412,6 +432,8 @@
         'application/vnd.cups-ppd' => ['ppd'],
         'application/vnd.curl.car' => ['car'],
         'application/vnd.curl.pcurl' => ['pcurl'],
+        'application/vnd.cyclonedx+json' => ['cdx.json'],
+        'application/vnd.cyclonedx+xml' => ['cdx.xml'],
         'application/vnd.dart' => ['dart'],
         'application/vnd.data-vision.rdz' => ['rdz'],
         'application/vnd.dbf' => ['dbf'],
@@ -467,6 +489,7 @@
         'application/vnd.genomatix.tuxedo' => ['txd'],
         'application/vnd.geo+json' => ['geojson', 'geo.json'],
         'application/vnd.geogebra.file' => ['ggb'],
+        'application/vnd.geogebra.slides' => ['ggs'],
         'application/vnd.geogebra.tool' => ['ggt'],
         'application/vnd.geometry-explorer' => ['gex', 'gre'],
         'application/vnd.geonext' => ['gxt'],
@@ -479,6 +502,7 @@
         'application/vnd.google-apps.spreadsheet' => ['gsheet'],
         'application/vnd.google-earth.kml+xml' => ['kml'],
         'application/vnd.google-earth.kmz' => ['kmz'],
+        'application/vnd.gov.sk.xmldatacontainer+xml' => ['xdcf'],
         'application/vnd.grafeq' => ['gqf', 'gqs'],
         'application/vnd.groove-account' => ['gac'],
         'application/vnd.groove-help' => ['ghf'],
@@ -554,6 +578,7 @@
         'application/vnd.mfmp' => ['mfm'],
         'application/vnd.micrografx.flo' => ['flo'],
         'application/vnd.micrografx.igx' => ['igx'],
+        'application/vnd.microsoft.portable-executable' => ['exe', 'dll', 'cpl', 'drv', 'scr', 'efi', 'ocx', 'sys', 'lib'],
         'application/vnd.mif' => ['mif'],
         'application/vnd.mobius.daf' => ['daf'],
         'application/vnd.mobius.dis' => ['dis'],
@@ -609,7 +634,9 @@
         'application/vnd.musician' => ['mus'],
         'application/vnd.muvee.style' => ['msty'],
         'application/vnd.mynfc' => ['taglet'],
+        'application/vnd.nato.bindingdataobject+xml' => ['bdo'],
         'application/vnd.neurolanguage.nlu' => ['nlu'],
+        'application/vnd.nintendo.nitro.rom' => ['nds'],
         'application/vnd.nintendo.snes.rom' => ['sfc', 'smc'],
         'application/vnd.nitf' => ['ntf', 'nitf'],
         'application/vnd.noblenet-directory' => ['nnd'],
@@ -624,6 +651,7 @@
         'application/vnd.novadigm.edx' => ['edx'],
         'application/vnd.novadigm.ext' => ['ext'],
         'application/vnd.oasis.docbook+xml' => ['dbk', 'docbook'],
+        'application/vnd.oasis.opendocument.base' => ['odb'],
         'application/vnd.oasis.opendocument.chart' => ['odc'],
         'application/vnd.oasis.opendocument.chart-template' => ['otc'],
         'application/vnd.oasis.opendocument.database' => ['odb'],
@@ -643,6 +671,7 @@
         'application/vnd.oasis.opendocument.text' => ['odt'],
         'application/vnd.oasis.opendocument.text-flat-xml' => ['fodt'],
         'application/vnd.oasis.opendocument.text-master' => ['odm'],
+        'application/vnd.oasis.opendocument.text-master-template' => ['otm'],
         'application/vnd.oasis.opendocument.text-template' => ['ott'],
         'application/vnd.oasis.opendocument.text-web' => ['oth'],
         'application/vnd.olpc-sugar' => ['xo'],
@@ -673,7 +702,8 @@
         'application/vnd.proteus.magazine' => ['mgz'],
         'application/vnd.publishare-delta-tree' => ['qps'],
         'application/vnd.pvi.ptid1' => ['ptid'],
-        'application/vnd.quark.quarkxpress' => ['qxd', 'qxt', 'qwd', 'qwt', 'qxl', 'qxb'],
+        'application/vnd.pwg-xhtml-print+xml' => ['xhtm'],
+        'application/vnd.quark.quarkxpress' => ['qxd', 'qxt', 'qwd', 'qwt', 'qxl', 'qxb', 'qxp'],
         'application/vnd.rar' => ['rar'],
         'application/vnd.realvnc.bed' => ['bed'],
         'application/vnd.recordare.musicxml' => ['mxl'],
@@ -702,15 +732,16 @@
         'application/vnd.spotfire.dxp' => ['dxp'],
         'application/vnd.spotfire.sfs' => ['sfs'],
         'application/vnd.sqlite3' => ['sqlite3'],
-        'application/vnd.squashfs' => ['sqsh'],
+        'application/vnd.squashfs' => ['sfs', 'sqfs', 'sqsh', 'squashfs'],
         'application/vnd.stardivision.calc' => ['sdc'],
         'application/vnd.stardivision.chart' => ['sds'],
         'application/vnd.stardivision.draw' => ['sda'],
-        'application/vnd.stardivision.impress' => ['sdd', 'sdp'],
-        'application/vnd.stardivision.mail' => ['smd'],
+        'application/vnd.stardivision.impress' => ['sdd'],
+        'application/vnd.stardivision.impress-packed' => ['sdp'],
+        'application/vnd.stardivision.mail' => ['sdm'],
         'application/vnd.stardivision.math' => ['smf'],
-        'application/vnd.stardivision.writer' => ['sdw', 'vor', 'sgl'],
-        'application/vnd.stardivision.writer-global' => ['sgl', 'sdw', 'vor'],
+        'application/vnd.stardivision.writer' => ['sdw', 'vor'],
+        'application/vnd.stardivision.writer-global' => ['sgl'],
         'application/vnd.stepmania.package' => ['smzip'],
         'application/vnd.stepmania.stepchart' => ['sm'],
         'application/vnd.sun.wadl+xml' => ['wadl'],
@@ -743,7 +774,7 @@
         'application/vnd.uiq.theme' => ['utz'],
         'application/vnd.umajin' => ['umj'],
         'application/vnd.unity' => ['unityweb'],
-        'application/vnd.uoml+xml' => ['uoml'],
+        'application/vnd.uoml+xml' => ['uoml', 'uo'],
         'application/vnd.vcx' => ['vcx'],
         'application/vnd.visio' => ['vsd', 'vst', 'vss', 'vsw'],
         'application/vnd.visionary' => ['vis'],
@@ -786,7 +817,9 @@
         'application/x-abiword' => ['abw', 'abw.CRASHED', 'abw.gz', 'zabw'],
         'application/x-ace' => ['ace'],
         'application/x-ace-compressed' => ['ace'],
+        'application/x-alpine-package-keeper-package' => ['apk'],
         'application/x-alz' => ['alz'],
+        'application/x-amf' => ['amf'],
         'application/x-amiga-disk-format' => ['adf'],
         'application/x-amipro' => ['sam'],
         'application/x-annodex' => ['anx'],
@@ -796,7 +829,7 @@
         'application/x-appleworks-document' => ['cwk'],
         'application/x-applix-spreadsheet' => ['as'],
         'application/x-applix-word' => ['aw'],
-        'application/x-archive' => ['a', 'ar'],
+        'application/x-archive' => ['a', 'ar', 'lib'],
         'application/x-arj' => ['arj'],
         'application/x-asar' => ['asar'],
         'application/x-asp' => ['asp'],
@@ -811,14 +844,16 @@
         'application/x-bcpio' => ['bcpio'],
         'application/x-bdoc' => ['bdoc'],
         'application/x-bittorrent' => ['torrent'],
-        'application/x-blender' => ['blend', 'BLEND', 'blender'],
+        'application/x-blender' => ['blend', 'blender'],
         'application/x-blorb' => ['blb', 'blorb'],
         'application/x-bps-patch' => ['bps'],
         'application/x-bsdiff' => ['bsdiff'],
         'application/x-bz2' => ['bz2'],
         'application/x-bzdvi' => ['dvi.bz2'],
-        'application/x-bzip' => ['bz'],
-        'application/x-bzip-compressed-tar' => ['tar.bz', 'tbz', 'tbz2', 'tb2'],
+        'application/x-bzip' => ['bz', 'bz2'],
+        'application/x-bzip-compressed-tar' => ['tar.bz2', 'tbz2', 'tb2'],
+        'application/x-bzip1' => ['bz'],
+        'application/x-bzip1-compressed-tar' => ['tar.bz', 'tbz'],
         'application/x-bzip2' => ['bz2', 'boz'],
         'application/x-bzip2-compressed-tar' => ['tar.bz2', 'tbz2', 'tb2'],
         'application/x-bzip3' => ['bz3'],
@@ -866,6 +901,7 @@
         'application/x-docbook+xml' => ['dbk', 'docbook'],
         'application/x-doom' => ['wad'],
         'application/x-doom-wad' => ['wad'],
+        'application/x-dosexec' => ['exe'],
         'application/x-dreamcast-rom' => ['iso'],
         'application/x-dtbncx+xml' => ['ncx'],
         'application/x-dtbook+xml' => ['dtb'],
@@ -900,6 +936,8 @@
         'application/x-font-woff' => ['woff'],
         'application/x-frame' => ['fm'],
         'application/x-freearc' => ['arc'],
+        'application/x-freedesktop-appstream-component' => ['metainfo.xml', 'appdata.xml'],
+        'application/x-freedesktop-appstream-releases' => ['releases.xml'],
         'application/x-futuresplash' => ['spl'],
         'application/x-gameboy-color-rom' => ['gbc', 'cgb'],
         'application/x-gameboy-rom' => ['gb', 'sgb'],
@@ -912,7 +950,7 @@
         'application/x-gdscript' => ['gd'],
         'application/x-gedcom' => ['ged', 'gedcom'],
         'application/x-genesis-32x-rom' => ['32x', 'mdx'],
-        'application/x-genesis-rom' => ['gen', 'smd', 'sgd'],
+        'application/x-genesis-rom' => ['gen', 'smd', 'md', 'sgd'],
         'application/x-gerber' => ['gbr'],
         'application/x-gerber-job' => ['gbrjob'],
         'application/x-gettext' => ['po'],
@@ -964,7 +1002,7 @@
         'application/x-java-keystore' => ['jks', 'ks'],
         'application/x-java-pack200' => ['pack'],
         'application/x-java-vm' => ['class'],
-        'application/x-javascript' => ['js', 'jsm', 'mjs'],
+        'application/x-javascript' => ['js', 'cjs', 'jsm', 'mjs'],
         'application/x-jbuilder-project' => ['jpr', 'jpx'],
         'application/x-karbon' => ['karbon'],
         'application/x-kchart' => ['chrt'],
@@ -1018,7 +1056,8 @@
         'application/x-modrinth-modpack+zip' => ['mrpack'],
         'application/x-ms-application' => ['application'],
         'application/x-ms-asx' => ['asx', 'wax', 'wvx', 'wmx'],
-        'application/x-ms-dos-executable' => ['exe'],
+        'application/x-ms-dos-executable' => ['exe', 'dll', 'cpl', 'drv', 'scr'],
+        'application/x-ms-ne-executable' => ['exe', 'dll', 'cpl', 'drv', 'scr'],
         'application/x-ms-pdb' => ['pdb'],
         'application/x-ms-shortcut' => ['lnk'],
         'application/x-ms-wim' => ['wim', 'swm'],
@@ -1030,7 +1069,7 @@
         'application/x-mscardfile' => ['crd'],
         'application/x-msclip' => ['clp'],
         'application/x-msdos-program' => ['exe'],
-        'application/x-msdownload' => ['exe', 'dll', 'com', 'bat', 'msi'],
+        'application/x-msdownload' => ['exe', 'dll', 'com', 'bat', 'msi', 'cpl', 'drv', 'scr'],
         'application/x-msexcel' => ['xls', 'xlc', 'xll', 'xlm', 'xlw', 'xla', 'xlt', 'xld'],
         'application/x-msi' => ['msi'],
         'application/x-msmediaview' => ['mvb', 'm13', 'm14'],
@@ -1054,8 +1093,10 @@
         'application/x-nintendo-3ds-executable' => ['3dsx'],
         'application/x-nintendo-3ds-rom' => ['3ds', 'cci'],
         'application/x-nintendo-ds-rom' => ['nds'],
+        'application/x-nintendo-switch-xci' => ['xci'],
         'application/x-ns-proxy-autoconfig' => ['pac'],
         'application/x-nuscript' => ['nu'],
+        'application/x-nx-xci' => ['xci'],
         'application/x-nzb' => ['nzb'],
         'application/x-object' => ['o', 'mod'],
         'application/x-ogg' => ['ogx'],
@@ -1066,9 +1107,11 @@
         'application/x-pak' => ['pak'],
         'application/x-palm-database' => ['prc', 'pdb', 'pqa', 'oprc'],
         'application/x-par2' => ['PAR2', 'par2'],
+        'application/x-parquet' => ['parquet'],
         'application/x-partial-download' => ['wkdownload', 'crdownload', 'part'],
         'application/x-pc-engine-rom' => ['pce'],
         'application/x-pcap' => ['pcap', 'cap', 'dmp'],
+        'application/x-pcapng' => ['pcapng', 'scap', 'ntar'],
         'application/x-pdf' => ['pdf'],
         'application/x-perl' => ['pl', 'pm', 'PL', 'al', 'perl', 'pod', 't'],
         'application/x-photoshop' => ['psd'],
@@ -1079,15 +1122,17 @@
         'application/x-pkcs7-certreqresp' => ['p7r'],
         'application/x-planperfect' => ['pln'],
         'application/x-pocket-word' => ['psw'],
+        'application/x-powershell' => ['ps1'],
         'application/x-pw' => ['pw'],
         'application/x-pyspread-bz-spreadsheet' => ['pys'],
         'application/x-pyspread-spreadsheet' => ['pysu'],
         'application/x-python-bytecode' => ['pyc', 'pyo'],
+        'application/x-qbrew' => ['qbrew'],
         'application/x-qed-disk' => ['qed'],
         'application/x-qemu-disk' => ['qcow2', 'qcow'],
         'application/x-qpress' => ['qp'],
         'application/x-qtiplot' => ['qti', 'qti.gz'],
-        'application/x-quattropro' => ['wb1', 'wb2', 'wb3'],
+        'application/x-quattropro' => ['wb1', 'wb2', 'wb3', 'qpw'],
         'application/x-quicktime-media-link' => ['qtl'],
         'application/x-quicktimeplayer' => ['qtl'],
         'application/x-qw' => ['qif'],
@@ -1102,6 +1147,8 @@
         'application/x-rnc' => ['rnc'],
         'application/x-rpm' => ['rpm'],
         'application/x-ruby' => ['rb'],
+        'application/x-rzip' => ['rz'],
+        'application/x-rzip-compressed-tar' => ['tar.rz', 'trz'],
         'application/x-sami' => ['smi', 'sami'],
         'application/x-sap-file' => ['sap'],
         'application/x-saturn-rom' => ['iso'],
@@ -1113,7 +1160,7 @@
         'application/x-sh' => ['sh'],
         'application/x-shar' => ['shar'],
         'application/x-shared-library-la' => ['la'],
-        'application/x-sharedlib' => ['so'],
+        'application/x-sharedlib' => ['so', 'so.[0-9]*'],
         'application/x-shellscript' => ['sh'],
         'application/x-shockwave-flash' => ['swf', 'spl'],
         'application/x-shorten' => ['shn'],
@@ -1124,6 +1171,7 @@
         'application/x-smaf' => ['mmf', 'smaf'],
         'application/x-sms-rom' => ['sms'],
         'application/x-snes-rom' => ['sfc', 'smc'],
+        'application/x-sony-bbeb' => ['lrf'],
         'application/x-source-rpm' => ['src.rpm', 'spm'],
         'application/x-spss-por' => ['por'],
         'application/x-spss-sav' => ['sav', 'zsav'],
@@ -1132,11 +1180,20 @@
         'application/x-sqlite2' => ['sqlite2'],
         'application/x-sqlite3' => ['sqlite3'],
         'application/x-srt' => ['srt'],
+        'application/x-starcalc' => ['sdc'],
+        'application/x-starchart' => ['sds'],
+        'application/x-stardraw' => ['sda'],
+        'application/x-starimpress' => ['sdd'],
+        'application/x-starmail' => ['smd'],
+        'application/x-starmath' => ['smf'],
+        'application/x-starwriter' => ['sdw', 'vor'],
+        'application/x-starwriter-global' => ['sgl'],
         'application/x-stuffit' => ['sit'],
         'application/x-stuffitx' => ['sitx'],
         'application/x-subrip' => ['srt'],
         'application/x-sv4cpio' => ['sv4cpio'],
         'application/x-sv4crc' => ['sv4crc'],
+        'application/x-sylk' => ['sylk', 'slk'],
         'application/x-t3vm-image' => ['t3'],
         'application/x-t602' => ['602'],
         'application/x-tads' => ['gam'],
@@ -1160,7 +1217,7 @@
         'application/x-trash' => ['bak', 'old', 'sik'],
         'application/x-trig' => ['trig'],
         'application/x-troff' => ['tr', 'roff', 't'],
-        'application/x-troff-man' => ['man'],
+        'application/x-troff-man' => ['man', '[1-9]'],
         'application/x-tzo' => ['tar.lzo', 'tzo'],
         'application/x-ufraw' => ['ufraw'],
         'application/x-ustar' => ['ustar'],
@@ -1186,6 +1243,7 @@
         'application/x-wii-iso-image' => ['iso'],
         'application/x-wii-rom' => ['iso'],
         'application/x-wii-wad' => ['wad'],
+        'application/x-win-lnk' => ['lnk'],
         'application/x-windows-themepack' => ['themepack'],
         'application/x-wmf' => ['wmf'],
         'application/x-wonderswan-color-rom' => ['wsc'],
@@ -1212,6 +1270,10 @@
         'application/x-zoo' => ['zoo'],
         'application/x-zpaq' => ['zpaq'],
         'application/x-zstd-compressed-tar' => ['tar.zst', 'tzst'],
+        'application/x.sf3-archive' => ['ar.sf3', 'sf3'],
+        'application/x.sf3-log' => ['log.sf3', 'sf3'],
+        'application/x.sf3-table' => ['tab.sf3', 'sf3'],
+        'application/x.sf3-text' => ['txt.sf3', 'sf3'],
         'application/xaml+xml' => ['xaml'],
         'application/xcap-att+xml' => ['xav'],
         'application/xcap-caps+xml' => ['xca'],
@@ -1220,6 +1282,7 @@
         'application/xcap-error+xml' => ['xer'],
         'application/xcap-ns+xml' => ['xns'],
         'application/xenc+xml' => ['xenc'],
+        'application/xfdf' => ['xfdf'],
         'application/xhtml+xml' => ['xhtml', 'xht', 'html', 'htm'],
         'application/xliff+xml' => ['xlf', 'xliff'],
         'application/xml' => ['xml', 'xsl', 'xsd', 'rng', 'xbl'],
@@ -1231,7 +1294,7 @@
         'application/xslt+xml' => ['xsl', 'xslt'],
         'application/xspf+xml' => ['xspf'],
         'application/xv+xml' => ['mxml', 'xhvml', 'xvml', 'xvm'],
-        'application/yaml' => ['yaml', 'yml'],
+        'application/yaml' => ['yml', 'yaml'],
         'application/yang' => ['yang'],
         'application/yin+xml' => ['yin'],
         'application/zip' => ['zip', 'zipx'],
@@ -1240,7 +1303,7 @@
         'audio/3gpp' => ['3gpp', '3gp', '3ga'],
         'audio/3gpp-encrypted' => ['3gp', '3gpp', '3ga'],
         'audio/3gpp2' => ['3g2', '3gp2', '3gpp2'],
-        'audio/aac' => ['aac', 'adts', 'ass'],
+        'audio/aac' => ['adts', 'aac', 'ass'],
         'audio/ac3' => ['ac3'],
         'audio/adpcm' => ['adp'],
         'audio/amr' => ['amr'],
@@ -1256,6 +1319,7 @@
         'audio/imelody' => ['imy', 'ime'],
         'audio/m3u' => ['m3u', 'm3u8', 'vlc'],
         'audio/m4a' => ['m4a', 'f4a'],
+        'audio/matroska' => ['mka'],
         'audio/midi' => ['mid', 'midi', 'kar', 'rmi'],
         'audio/mobile-xmf' => ['mxmf'],
         'audio/mp2' => ['mp2'],
@@ -1293,6 +1357,8 @@
         'audio/wave' => ['wav'],
         'audio/webm' => ['weba'],
         'audio/wma' => ['wma'],
+        'audio/x-669' => ['669', 'uni'],
+        'audio/x-669-mod' => ['669', 'uni'],
         'audio/x-aac' => ['aac', 'adts', 'ass'],
         'audio/x-aifc' => ['aifc', 'aiffc'],
         'audio/x-aiff' => ['aif', 'aiff', 'aifc'],
@@ -1304,6 +1370,7 @@
         'audio/x-dff' => ['dff'],
         'audio/x-dsd' => ['dsf'],
         'audio/x-dsf' => ['dsf'],
+        'audio/x-dsp' => ['dsm', 'dsp'],
         'audio/x-dts' => ['dts'],
         'audio/x-dtshd' => ['dtshd'],
         'audio/x-flac' => ['flac'],
@@ -1318,10 +1385,11 @@
         'audio/x-m4b' => ['m4b', 'f4b'],
         'audio/x-m4r' => ['m4r'],
         'audio/x-matroska' => ['mka'],
+        'audio/x-med' => ['med'],
         'audio/x-midi' => ['mid', 'midi', 'kar'],
         'audio/x-minipsf' => ['minipsf'],
         'audio/x-mo3' => ['mo3'],
-        'audio/x-mod' => ['mod', 'ult', 'uni', 'm15', 'mtm', '669', 'med'],
+        'audio/x-mod' => ['mod', 'm15', 'stk', 'nst', 'fst', '669', 'med'],
         'audio/x-mp2' => ['mp2'],
         'audio/x-mp3' => ['mp3', 'mpga'],
         'audio/x-mp3-playlist' => ['m3u', 'm3u8', 'vlc'],
@@ -1332,6 +1400,9 @@
         'audio/x-ms-wax' => ['wax'],
         'audio/x-ms-wma' => ['wma'],
         'audio/x-ms-wmv' => ['wmv'],
+        'audio/x-mtm' => ['mtm'],
+        'audio/x-multimate-mod' => ['ult'],
+        'audio/x-multitrack' => ['mtm'],
         'audio/x-musepack' => ['mpc', 'mpp', 'mp+'],
         'audio/x-ogg' => ['oga', 'ogg', 'opus'],
         'audio/x-oggflac' => ['oga', 'ogg'],
@@ -1354,6 +1425,7 @@
         'audio/x-stm' => ['stm'],
         'audio/x-tak' => ['tak'],
         'audio/x-tta' => ['tta'],
+        'audio/x-ult' => ['ult'],
         'audio/x-voc' => ['voc'],
         'audio/x-vorbis' => ['oga', 'ogg'],
         'audio/x-vorbis+ogg' => ['oga', 'ogg'],
@@ -1363,6 +1435,7 @@
         'audio/x-xi' => ['xi'],
         'audio/x-xm' => ['xm'],
         'audio/x-xmf' => ['xmf'],
+        'audio/x.sf3' => ['au.sf3', 'sf3'],
         'audio/xm' => ['xm'],
         'audio/xmf' => ['xmf'],
         'chemical/x-cdx' => ['cdx'],
@@ -1370,6 +1443,7 @@
         'chemical/x-cmdf' => ['cmdf'],
         'chemical/x-cml' => ['cml'],
         'chemical/x-csml' => ['csml'],
+        'chemical/x-pdb' => ['pdb', 'brk'],
         'chemical/x-xyz' => ['xyz'],
         'flv-application/octet-stream' => ['flv'],
         'font/collection' => ['ttc'],
@@ -1388,6 +1462,7 @@
         'image/cdr' => ['cdr'],
         'image/cgm' => ['cgm'],
         'image/dicom-rle' => ['drle'],
+        'image/dpx' => ['dpx'],
         'image/emf' => ['emf'],
         'image/fax-g3' => ['g3'],
         'image/fits' => ['fits', 'fit', 'fts'],
@@ -1404,7 +1479,7 @@
         'image/ief' => ['ief'],
         'image/jls' => ['jls'],
         'image/jp2' => ['jp2', 'jpg2'],
-        'image/jpeg' => ['jpg', 'jpeg', 'jpe'],
+        'image/jpeg' => ['jpg', 'jpeg', 'jpe', 'jfif'],
         'image/jpeg2000' => ['jp2', 'jpg2'],
         'image/jpeg2000-image' => ['jp2', 'jpg2'],
         'image/jph' => ['jph'],
@@ -1424,9 +1499,9 @@
         'image/openraster' => ['ora'],
         'image/pdf' => ['pdf'],
         'image/photoshop' => ['psd'],
-        'image/pjpeg' => ['jpg', 'jpeg', 'jpe'],
+        'image/pjpeg' => ['jpg', 'jpeg', 'jpe', 'jfif'],
         'image/png' => ['png'],
-        'image/prs.btif' => ['btif'],
+        'image/prs.btif' => ['btif', 'btf'],
         'image/prs.pti' => ['pti'],
         'image/psd' => ['psd'],
         'image/qoi' => ['qoi'],
@@ -1460,6 +1535,7 @@
         'image/vnd.ms-photo' => ['wdp', 'jxr', 'hdp'],
         'image/vnd.net-fpx' => ['npx'],
         'image/vnd.pco.b16' => ['b16'],
+        'image/vnd.radiance' => ['hdr', 'pic', 'rgbe', 'xyze'],
         'image/vnd.rn-realpix' => ['rp'],
         'image/vnd.tencent.tap' => ['tap'],
         'image/vnd.valve.source.texture' => ['vtf'],
@@ -1486,12 +1562,14 @@
         'image/x-eps' => ['eps', 'epsi', 'epsf'],
         'image/x-exr' => ['exr'],
         'image/x-fits' => ['fits', 'fit', 'fts'],
+        'image/x-fpx' => ['fpx'],
         'image/x-freehand' => ['fh', 'fhc', 'fh4', 'fh5', 'fh7'],
         'image/x-fuji-raf' => ['raf'],
         'image/x-gimp-gbr' => ['gbr'],
         'image/x-gimp-gih' => ['gih'],
         'image/x-gimp-pat' => ['pat'],
         'image/x-gzeps' => ['eps.gz', 'epsi.gz', 'epsf.gz'],
+        'image/x-hdr' => ['hdr', 'pic', 'rgbe', 'xyze'],
         'image/x-icb' => ['tga', 'icb', 'tpic', 'vda', 'vst'],
         'image/x-icns' => ['icns'],
         'image/x-ico' => ['ico'],
@@ -1501,6 +1579,7 @@
         'image/x-jng' => ['jng'],
         'image/x-jp2-codestream' => ['j2c', 'j2k', 'jpc'],
         'image/x-jpeg2000-image' => ['jp2', 'jpg2'],
+        'image/x-kiss-cel' => ['cel', 'kcf'],
         'image/x-kodak-dcr' => ['dcr'],
         'image/x-kodak-k25' => ['k25'],
         'image/x-kodak-kdc' => ['kdc'],
@@ -1520,6 +1599,8 @@
         'image/x-panasonic-rw2' => ['rw2'],
         'image/x-pcx' => ['pcx'],
         'image/x-pentax-pef' => ['pef'],
+        'image/x-pfm' => ['pfm'],
+        'image/x-phm' => ['phm'],
         'image/x-photo-cd' => ['pcd'],
         'image/x-photoshop' => ['psd'],
         'image/x-pict' => ['pic', 'pct', 'pict', 'pict1', 'pict2'],
@@ -1528,8 +1609,10 @@
         'image/x-portable-graymap' => ['pgm'],
         'image/x-portable-pixmap' => ['ppm'],
         'image/x-psd' => ['psd'],
+        'image/x-pxr' => ['pxr'],
         'image/x-quicktime' => ['qtif', 'qif'],
         'image/x-rgb' => ['rgb'],
+        'image/x-sct' => ['sct'],
         'image/x-sgi' => ['sgi'],
         'image/x-sigma-x3f' => ['x3f'],
         'image/x-skencil' => ['sk', 'sk1'],
@@ -1549,6 +1632,8 @@
         'image/x-xpm' => ['xpm'],
         'image/x-xwindowdump' => ['xwd'],
         'image/x.djvu' => ['djvu', 'djv'],
+        'image/x.sf3' => ['img.sf3', 'sf3'],
+        'image/x.sf3-vector' => ['vec.sf3', 'sf3'],
         'message/disposition-notification' => ['disposition-notification'],
         'message/global' => ['u8msg'],
         'message/global-delivery-status' => ['u8dsn'],
@@ -1560,13 +1645,19 @@
         'model/gltf+json' => ['gltf'],
         'model/gltf-binary' => ['glb'],
         'model/iges' => ['igs', 'iges'],
+        'model/jt' => ['jt'],
         'model/mesh' => ['msh', 'mesh', 'silo'],
         'model/mtl' => ['mtl'],
         'model/obj' => ['obj'],
+        'model/prc' => ['prc'],
+        'model/step' => ['step', 'stp'],
         'model/step+xml' => ['stpx'],
         'model/step+zip' => ['stpz'],
         'model/step-xml+zip' => ['stpxz'],
         'model/stl' => ['stl'],
+        'model/u3d' => ['u3d'],
+        'model/vnd.bary' => ['bary'],
+        'model/vnd.cld' => ['cld'],
         'model/vnd.collada+xml' => ['dae'],
         'model/vnd.dwf' => ['dwf'],
         'model/vnd.gdl' => ['gdl'],
@@ -1575,11 +1666,15 @@
         'model/vnd.opengex' => ['ogex'],
         'model/vnd.parasolid.transmit.binary' => ['x_b'],
         'model/vnd.parasolid.transmit.text' => ['x_t'],
+        'model/vnd.pytha.pyox' => ['pyo', 'pyox'],
         'model/vnd.sap.vds' => ['vds'],
+        'model/vnd.usda' => ['usda'],
         'model/vnd.usdz+zip' => ['usdz'],
         'model/vnd.valve.source.compiled-map' => ['bsp'],
         'model/vnd.vtu' => ['vtu'],
         'model/vrml' => ['wrl', 'vrml', 'vrm'],
+        'model/x.sf3' => ['mod.sf3', 'sf3'],
+        'model/x.sf3-physics' => ['phys.sf3', 'sf3'],
         'model/x.stl-ascii' => ['stl'],
         'model/x.stl-binary' => ['stl'],
         'model/x3d+binary' => ['x3db', 'x3dbz'],
@@ -1588,7 +1683,7 @@
         'model/x3d+xml' => ['x3d', 'x3dz'],
         'model/x3d-vrml' => ['x3dv'],
         'text/cache-manifest' => ['appcache', 'manifest'],
-        'text/calendar' => ['ics', 'ifb', 'vcs'],
+        'text/calendar' => ['ics', 'ifb', 'vcs', 'icalendar'],
         'text/coffeescript' => ['coffee', 'litcoffee'],
         'text/crystal' => ['cr'],
         'text/css' => ['css'],
@@ -1601,7 +1696,9 @@
         'text/html' => ['html', 'htm', 'shtml'],
         'text/ico' => ['ico'],
         'text/jade' => ['jade'],
-        'text/javascript' => ['js', 'jsm', 'mjs'],
+        'text/javascript' => ['js', 'mjs', 'cjs', 'jsm'],
+        'text/jscript' => ['cjs', 'js', 'jsm', 'mjs'],
+        'text/jscript.encode' => ['jse'],
         'text/jsx' => ['jsx'],
         'text/julia' => ['jl'],
         'text/less' => ['less'],
@@ -1630,6 +1727,7 @@
         'text/uri-list' => ['uri', 'uris', 'urls'],
         'text/vbs' => ['vbs'],
         'text/vbscript' => ['vbs'],
+        'text/vbscript.encode' => ['vbe'],
         'text/vcard' => ['vcard', 'vcf', 'vct', 'gcrd'],
         'text/vnd.curl' => ['curl'],
         'text/vnd.curl.dcurl' => ['dcurl'],
@@ -1647,11 +1745,14 @@
         'text/vnd.senx.warpscript' => ['mc2'],
         'text/vnd.sun.j2me.app-descriptor' => ['jad'],
         'text/vnd.trolltech.linguist' => ['ts'],
+        'text/vnd.typst' => ['typ'],
         'text/vnd.wap.wml' => ['wml'],
         'text/vnd.wap.wmlscript' => ['wmls'],
         'text/vtt' => ['vtt'],
+        'text/wgsl' => ['wgsl'],
         'text/x-adasrc' => ['adb', 'ads'],
         'text/x-asm' => ['s', 'asm'],
+        'text/x-basic' => ['bas'],
         'text/x-bibtex' => ['bib'],
         'text/x-blueprint' => ['blp'],
         'text/x-c' => ['c', 'cc', 'cxx', 'cpp', 'h', 'hh', 'dic'],
@@ -1667,12 +1768,14 @@
         'text/x-csharp' => ['cs'],
         'text/x-csrc' => ['c'],
         'text/x-csv' => ['csv'],
+        'text/x-cython' => ['pxd', 'pxi', 'pyx'],
         'text/x-dart' => ['dart'],
         'text/x-dbus-service' => ['service'],
         'text/x-dcl' => ['dcl'],
         'text/x-devicetree-binary' => ['dtb'],
         'text/x-devicetree-source' => ['dts', 'dtsi'],
         'text/x-diff' => ['diff', 'patch'],
+        'text/x-dockerfile' => ['Dockerfile'],
         'text/x-dsl' => ['dsl'],
         'text/x-dsrc' => ['d', 'di'],
         'text/x-dtd' => ['dtd'],
@@ -1717,17 +1820,24 @@
         'text/x-mpsub' => ['sub'],
         'text/x-mrml' => ['mrml', 'mrl'],
         'text/x-ms-regedit' => ['reg'],
+        'text/x-ms-visualstudio.project' => ['dsp'],
+        'text/x-ms-visualstudio.workspace' => ['dsw'],
         'text/x-mup' => ['mup', 'not'],
         'text/x-nfo' => ['nfo'],
         'text/x-nim' => ['nim'],
         'text/x-nimscript' => ['nims', 'nimble'],
+        'text/x-nix' => ['nix'],
+        'text/x-nsis' => ['nsi', 'nsh'],
         'text/x-nu' => ['nu'],
+        'text/x-nushell' => ['nu'],
         'text/x-objc++src' => ['mm'],
         'text/x-objcsrc' => ['m'],
         'text/x-ocaml' => ['ml', 'mli'],
         'text/x-ocl' => ['ocl'],
         'text/x-octave' => ['m'],
         'text/x-ooc' => ['ooc'],
+        'text/x-opencl-c++src' => ['clcpp'],
+        'text/x-opencl-csrc' => ['cl'],
         'text/x-opencl-src' => ['cl'],
         'text/x-opml' => ['opml'],
         'text/x-opml+xml' => ['opml'],
@@ -1738,12 +1848,14 @@
         'text/x-po' => ['po'],
         'text/x-pot' => ['pot'],
         'text/x-processing' => ['pde'],
-        'text/x-python' => ['py', 'pyx', 'wsgi'],
-        'text/x-python3' => ['py', 'py3', 'py3x', 'pyi'],
+        'text/x-python' => ['py', 'wsgi'],
+        'text/x-python2' => ['py', 'py2'],
+        'text/x-python3' => ['py', 'py3', 'pyi'],
         'text/x-qml' => ['qml', 'qmltypes', 'qmlproject'],
         'text/x-reject' => ['rej'],
         'text/x-rpm-spec' => ['spec'],
         'text/x-rst' => ['rst'],
+        'text/x-ruby' => ['rb'],
         'text/x-sagemath' => ['sage'],
         'text/x-sass' => ['sass'],
         'text/x-scala' => ['scala', 'sc'],
@@ -1754,6 +1866,7 @@
         'text/x-sh' => ['sh'],
         'text/x-sql' => ['sql'],
         'text/x-ssa' => ['ssa', 'ass'],
+        'text/x-ssh-public-key' => ['pub'],
         'text/x-subviewer' => ['sub'],
         'text/x-suse-ymp' => ['ymp'],
         'text/x-svhdr' => ['svh'],
@@ -1772,7 +1885,8 @@
         'text/x-uil' => ['uil'],
         'text/x-uuencode' => ['uu', 'uue'],
         'text/x-vala' => ['vala', 'vapi'],
-        'text/x-vcalendar' => ['vcs', 'ics'],
+        'text/x-vb' => ['vb'],
+        'text/x-vcalendar' => ['vcs', 'ics', 'ifb', 'icalendar'],
         'text/x-vcard' => ['vcf', 'vcard', 'vct', 'gcrd'],
         'text/x-verilog' => ['v'],
         'text/x-vhdl' => ['vhd', 'vhdl'],
@@ -1799,12 +1913,14 @@
         'video/iso.segment' => ['m4s'],
         'video/jpeg' => ['jpgv'],
         'video/jpm' => ['jpm', 'jpgm'],
+        'video/matroska' => ['mkv', 'mks', 'mk3d'],
         'video/mj2' => ['mj2', 'mjp2'],
         'video/mp2t' => ['ts', 'm2t', 'm2ts', 'mts', 'cpi', 'clpi', 'mpl', 'mpls', 'bdm', 'bdmv'],
-        'video/mp4' => ['mp4', 'mp4v', 'mpg4', 'm4v', 'f4v', 'lrv'],
-        'video/mp4v-es' => ['mp4', 'm4v', 'f4v', 'lrv'],
+        'video/mp4' => ['mp4', 'mp4v', 'mpg4', 'm4v', 'f4v', 'lrv', 'lrf'],
+        'video/mp4v-es' => ['mp4', 'm4v', 'f4v', 'lrv', 'lrf'],
         'video/mpeg' => ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v', 'mp2', 'vob'],
         'video/mpeg-system' => ['mpeg', 'mpg', 'mp2', 'mpe', 'vob'],
+        'video/mpg4' => ['mpg4'],
         'video/msvideo' => ['avi', 'avf', 'divx'],
         'video/ogg' => ['ogv', 'ogg'],
         'video/quicktime' => ['mov', 'qt', 'moov', 'qtvr'],
@@ -1827,7 +1943,7 @@
         'video/vnd.vivo' => ['viv', 'vivo'],
         'video/vnd.youtube.yt' => ['yt'],
         'video/webm' => ['webm'],
-        'video/x-anim' => ['anim1', 'anim2', 'anim3', 'anim4', 'anim5', 'anim6', 'anim7', 'anim8', 'anim9', 'animj'],
+        'video/x-anim' => ['anim[1-9j]', 'anim2', 'anim3', 'anim4', 'anim5', 'anim6', 'anim7', 'anim8', 'anim9', 'animj'],
         'video/x-annodex' => ['axv'],
         'video/x-avi' => ['avi', 'avf', 'divx'],
         'video/x-f4v' => ['f4v'],
@@ -1835,7 +1951,7 @@
         'video/x-flic' => ['fli', 'flc'],
         'video/x-flv' => ['flv'],
         'video/x-javafx' => ['fxm'],
-        'video/x-m4v' => ['m4v', 'mp4', 'f4v', 'lrv'],
+        'video/x-m4v' => ['m4v', 'mp4', 'f4v', 'lrv', 'lrf'],
         'video/x-matroska' => ['mkv', 'mk3d', 'mks'],
         'video/x-matroska-3d' => ['mk3d'],
         'video/x-mjpeg' => ['mjpeg', 'mjpg'],
@@ -1889,14 +2005,15 @@
         '3gpp2' => ['audio/3gpp2', 'video/3gpp2'],
         '3mf' => ['application/vnd.ms-3mfdocument', 'model/3mf'],
         '602' => ['application/x-t602'],
-        '669' => ['audio/x-mod'],
+        '669' => ['audio/x-669', 'audio/x-669-mod', 'audio/x-mod'],
         '7z' => ['application/x-7z-compressed'],
         '7z.001' => ['application/x-7z-compressed'],
-        'BLEND' => ['application/x-blender'],
         'C' => ['text/x-c++src'],
+        'Dockerfile' => ['text/x-dockerfile'],
         'PAR2' => ['application/x-par2'],
         'PL' => ['application/x-perl', 'text/x-perl'],
         'Z' => ['application/x-compress'],
+        '[1-9]' => ['application/x-troff-man'],
         'a' => ['application/x-archive'],
         'a26' => ['application/x-atari-2600-rom'],
         'a78' => ['application/x-atari-7800-rom'],
@@ -1937,11 +2054,13 @@
         'ait' => ['application/vnd.dvb.ait'],
         'al' => ['application/x-perl', 'text/x-perl'],
         'alz' => ['application/x-alz'],
+        'amf' => ['application/x-amf'],
         'ami' => ['application/vnd.amiga.ami'],
+        'aml' => ['application/automationml-aml+xml'],
+        'amlx' => ['application/automationml-amlx+zip'],
         'amr' => ['audio/amr', 'audio/amr-encrypted'],
         'amz' => ['audio/x-amzxml'],
         'ani' => ['application/x-navi-animation'],
-        'anim1' => ['video/x-anim'],
         'anim2' => ['video/x-anim'],
         'anim3' => ['video/x-anim'],
         'anim4' => ['video/x-anim'],
@@ -1950,16 +2069,22 @@
         'anim7' => ['video/x-anim'],
         'anim8' => ['video/x-anim'],
         'anim9' => ['video/x-anim'],
+        'anim[1-9j]' => ['video/x-anim'],
         'animj' => ['video/x-anim'],
         'anx' => ['application/annodex', 'application/x-annodex'],
         'ape' => ['audio/x-ape'],
-        'apk' => ['application/vnd.android.package-archive'],
+        'apk' => ['application/vnd.android.package-archive', 'application/x-alpine-package-keeper-package'],
         'apng' => ['image/apng', 'image/vnd.mozilla.apng'],
         'appcache' => ['text/cache-manifest'],
+        'appdata.xml' => ['application/x-freedesktop-appstream-component'],
         'appimage' => ['application/vnd.appimage', 'application/x-iso9660-appimage'],
+        'appinstaller' => ['application/appinstaller'],
         'application' => ['application/x-ms-application'],
+        'appx' => ['application/appx'],
+        'appxbundle' => ['application/appxbundle'],
         'apr' => ['application/vnd.lotus-approach'],
         'ar' => ['application/x-archive'],
+        'ar.sf3' => ['application/x.sf3-archive'],
         'arc' => ['application/x-freearc'],
         'arj' => ['application/x-arj'],
         'arw' => ['image/x-sony-arw'],
@@ -1982,6 +2107,7 @@
         'atomsvc' => ['application/atomsvc+xml'],
         'atx' => ['application/vnd.antix.game-component'],
         'au' => ['audio/basic'],
+        'au.sf3' => ['audio/x.sf3'],
         'automount' => ['text/x-systemd-unit'],
         'avci' => ['image/avci'],
         'avcs' => ['image/avcs'],
@@ -2001,11 +2127,14 @@
         'azw3' => ['application/vnd.amazon.mobi8-ebook', 'application/x-mobi8-ebook'],
         'b16' => ['image/vnd.pco.b16'],
         'bak' => ['application/x-trash'],
+        'bary' => ['model/vnd.bary'],
+        'bas' => ['text/x-basic'],
         'bat' => ['application/bat', 'application/x-bat', 'application/x-msdownload'],
         'bcpio' => ['application/x-bcpio'],
         'bdf' => ['application/x-font-bdf'],
         'bdm' => ['application/vnd.syncml.dm+wbxml', 'video/mp2t'],
         'bdmv' => ['video/mp2t'],
+        'bdo' => ['application/vnd.nato.bindingdataobject+xml'],
         'bdoc' => ['application/bdoc', 'application/x-bdoc'],
         'bed' => ['application/vnd.realvnc.bed'],
         'bh2' => ['application/vnd.fujitsu.oasysprs'],
@@ -2025,11 +2154,14 @@
         'box' => ['application/vnd.previewsystems.box'],
         'boz' => ['application/x-bzip2'],
         'bps' => ['application/x-bps-patch'],
+        'brk' => ['chemical/x-pdb'],
         'bsdiff' => ['application/x-bsdiff'],
         'bsp' => ['model/vnd.valve.source.compiled-map'],
+        'bst' => ['application/buildstream+yaml'],
+        'btf' => ['image/prs.btif'],
         'btif' => ['image/prs.btif'],
-        'bz' => ['application/bzip2', 'application/x-bzip'],
-        'bz2' => ['application/x-bz2', 'application/bzip2', 'application/x-bzip2'],
+        'bz' => ['application/bzip2', 'application/x-bzip', 'application/x-bzip1'],
+        'bz2' => ['application/x-bz2', 'application/bzip2', 'application/x-bzip', 'application/x-bzip2'],
         'bz3' => ['application/x-bzip3'],
         'c' => ['text/x-c', 'text/x-csrc'],
         'c++' => ['text/x-c++src'],
@@ -2070,8 +2202,11 @@
         'cdmiq' => ['application/cdmi-queue'],
         'cdr' => ['application/cdr', 'application/coreldraw', 'application/vnd.corel-draw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'],
         'cdx' => ['chemical/x-cdx'],
+        'cdx.json' => ['application/vnd.cyclonedx+json'],
+        'cdx.xml' => ['application/vnd.cyclonedx+xml'],
         'cdxml' => ['application/vnd.chemdraw+xml'],
         'cdy' => ['application/vnd.cinderella'],
+        'cel' => ['image/x-kiss-cel'],
         'cer' => ['application/pkix-cert'],
         'cert' => ['application/x-x509-ca-cert'],
         'cfs' => ['application/x-cfs-compressed'],
@@ -2084,10 +2219,12 @@
         'cif' => ['chemical/x-cif'],
         'cii' => ['application/vnd.anser-web-certificate-issue-initiation'],
         'cil' => ['application/vnd.ms-artgalry'],
-        'cjs' => ['application/node'],
-        'cl' => ['text/x-opencl-src'],
+        'cjs' => ['application/javascript', 'application/node', 'application/x-javascript', 'text/javascript', 'text/jscript'],
+        'cl' => ['text/x-opencl-csrc', 'text/x-opencl-src'],
         'cla' => ['application/vnd.claymore'],
         'class' => ['application/java', 'application/java-byte-code', 'application/java-vm', 'application/x-java', 'application/x-java-class', 'application/x-java-vm'],
+        'clcpp' => ['text/x-opencl-c++src'],
+        'cld' => ['model/vnd.cld'],
         'clkk' => ['application/vnd.crick.clicker.keyboard'],
         'clkp' => ['application/vnd.crick.clicker.palette'],
         'clkt' => ['application/vnd.crick.clicker.template'],
@@ -2110,7 +2247,7 @@
         'cpi' => ['video/mp2t'],
         'cpio' => ['application/x-cpio'],
         'cpio.gz' => ['application/x-cpio-compressed'],
-        'cpl' => ['application/cpl+xml'],
+        'cpl' => ['application/cpl+xml', 'application/vnd.microsoft.portable-executable', 'application/x-ms-dos-executable', 'application/x-ms-ne-executable', 'application/x-msdownload'],
         'cpp' => ['text/x-c', 'text/x-c++src'],
         'cpt' => ['application/mac-compactpro'],
         'cr' => ['text/crystal', 'text/x-crystal'],
@@ -2133,11 +2270,13 @@
         'cst' => ['application/x-director'],
         'csv' => ['text/csv', 'application/csv', 'text/x-comma-separated-values', 'text/x-csv'],
         'csvs' => ['text/csv-schema'],
+        'cts' => ['application/typescript'],
         'cu' => ['application/cu-seeme'],
         'cue' => ['application/x-cue'],
         'cur' => ['image/x-win-bitmap'],
         'curl' => ['text/vnd.curl'],
         'cwk' => ['application/x-appleworks-document'],
+        'cwl' => ['application/cwl'],
         'cww' => ['application/prs.cww'],
         'cxt' => ['application/x-director'],
         'cxx' => ['text/x-c', 'text/x-c++src'],
@@ -2178,7 +2317,7 @@
         'divx' => ['video/avi', 'video/divx', 'video/msvideo', 'video/vnd.avi', 'video/vnd.divx', 'video/x-avi', 'video/x-msvideo'],
         'djv' => ['image/vnd.djvu', 'image/vnd.djvu+multipage', 'image/x-djvu', 'image/x.djvu'],
         'djvu' => ['image/vnd.djvu', 'image/vnd.djvu+multipage', 'image/x-djvu', 'image/x.djvu'],
-        'dll' => ['application/x-msdownload'],
+        'dll' => ['application/vnd.microsoft.portable-executable', 'application/x-ms-dos-executable', 'application/x-ms-ne-executable', 'application/x-msdownload'],
         'dmg' => ['application/x-apple-diskimage'],
         'dmp' => ['application/pcap', 'application/vnd.tcpdump.pcap', 'application/x-pcap'],
         'dna' => ['application/vnd.dna'],
@@ -2192,13 +2331,18 @@
         'dotx' => ['application/vnd.openxmlformats-officedocument.wordprocessingml.template'],
         'dp' => ['application/vnd.osgi.dp'],
         'dpg' => ['application/vnd.dpgraph'],
+        'dpx' => ['image/dpx'],
         'dra' => ['audio/vnd.dra'],
         'drl' => ['application/x-excellon'],
         'drle' => ['image/dicom-rle'],
+        'drv' => ['application/vnd.microsoft.portable-executable', 'application/x-ms-dos-executable', 'application/x-ms-ne-executable', 'application/x-msdownload'],
         'dsc' => ['text/prs.lines.tag'],
         'dsf' => ['audio/dsd', 'audio/dsf', 'audio/x-dsd', 'audio/x-dsf'],
         'dsl' => ['text/x-dsl'],
+        'dsm' => ['audio/x-dsp'],
+        'dsp' => ['audio/x-dsp', 'text/x-ms-visualstudio.project'],
         'dssc' => ['application/dssc+der'],
+        'dsw' => ['text/x-ms-visualstudio.workspace'],
         'dtb' => ['application/x-dtbook+xml', 'text/x-devicetree-binary'],
         'dtd' => ['application/xml-dtd', 'text/x-dtd'],
         'dts' => ['audio/vnd.dts', 'audio/x-dts', 'text/x-devicetree-source'],
@@ -2224,6 +2368,7 @@
         'ecma' => ['application/ecmascript'],
         'edm' => ['application/vnd.novadigm.edm'],
         'edx' => ['application/vnd.novadigm.edx'],
+        'efi' => ['application/vnd.microsoft.portable-executable'],
         'efif' => ['application/vnd.picsel'],
         'egon' => ['application/x-egon'],
         'ei6' => ['application/vnd.pg.osasli'],
@@ -2261,7 +2406,7 @@
         'eva' => ['application/x-eva'],
         'evy' => ['application/x-envoy'],
         'ex' => ['text/x-elixir'],
-        'exe' => ['application/x-ms-dos-executable', 'application/x-msdos-program', 'application/x-msdownload'],
+        'exe' => ['application/vnd.microsoft.portable-executable', 'application/x-dosexec', 'application/x-ms-dos-executable', 'application/x-ms-ne-executable', 'application/x-msdos-program', 'application/x-msdownload'],
         'exi' => ['application/exi'],
         'exp' => ['application/express'],
         'exr' => ['image/aces', 'image/x-exr'],
@@ -2284,7 +2429,7 @@
         'fcdt' => ['application/vnd.adobe.formscentral.fcdt'],
         'fcs' => ['application/vnd.isac.fcs'],
         'fd' => ['application/x-fd-file', 'application/x-raw-floppy-disk-image'],
-        'fdf' => ['application/vnd.fdf'],
+        'fdf' => ['application/fdf', 'application/vnd.fdf'],
         'fds' => ['application/x-fds-disk'],
         'fdt' => ['application/fdt+xml'],
         'fe_launch' => ['application/vnd.denovo.fcselayout-link'],
@@ -2320,10 +2465,10 @@
         'fods' => ['application/vnd.oasis.opendocument.spreadsheet-flat-xml'],
         'fodt' => ['application/vnd.oasis.opendocument.text-flat-xml'],
         'for' => ['text/x-fortran'],
-        'fpx' => ['image/vnd.fpx'],
+        'fpx' => ['image/vnd.fpx', 'image/x-fpx'],
         'frame' => ['application/vnd.framemaker'],
         'fsc' => ['application/vnd.fsc.weblaunch'],
-        'fst' => ['image/vnd.fst'],
+        'fst' => ['audio/x-mod', 'image/vnd.fst'],
         'ftc' => ['application/vnd.fluxtime.clip'],
         'fti' => ['application/vnd.anser-web-funds-transfer-initiation'],
         'fts' => ['application/fits', 'image/fits', 'image/x-fits'],
@@ -2361,6 +2506,7 @@
         'gf' => ['application/x-tex-gf'],
         'gg' => ['application/x-gamegear-rom'],
         'ggb' => ['application/vnd.geogebra.file'],
+        'ggs' => ['application/vnd.geogebra.slides'],
         'ggt' => ['application/vnd.geogebra.tool'],
         'ghf' => ['application/vnd.groove-help'],
         'gif' => ['image/gif'],
@@ -2418,6 +2564,7 @@
         'h4' => ['application/x-hdf'],
         'h5' => ['application/x-hdf'],
         'hal' => ['application/vnd.hal+xml'],
+        'har' => ['application/har+json'],
         'hbci' => ['application/vnd.hbci'],
         'hbs' => ['text/x-handlebars-template'],
         'hdd' => ['application/x-virtualbox-hdd'],
@@ -2425,6 +2572,7 @@
         'hdf4' => ['application/x-hdf'],
         'hdf5' => ['application/x-hdf'],
         'hdp' => ['image/jxr', 'image/vnd.ms-photo'],
+        'hdr' => ['image/vnd.radiance', 'image/x-hdr'],
         'heic' => ['image/heic', 'image/heic-sequence', 'image/heif', 'image/heif-sequence'],
         'heics' => ['image/heic-sequence'],
         'heif' => ['image/heic', 'image/heic-sequence', 'image/heif', 'image/heif-sequence'],
@@ -2444,6 +2592,7 @@
         'hqx' => ['application/stuffit', 'application/mac-binhex40'],
         'hs' => ['text/x-haskell'],
         'hsj2' => ['image/hsj2'],
+        'hta' => ['application/hta'],
         'htc' => ['text/x-component'],
         'htke' => ['application/vnd.kenameaapp'],
         'htm' => ['text/html', 'application/xhtml+xml'],
@@ -2456,6 +2605,7 @@
         'hxx' => ['text/x-c++hdr'],
         'i2g' => ['application/vnd.intergeo'],
         'ica' => ['application/x-ica'],
+        'icalendar' => ['application/ics', 'text/calendar', 'text/x-vcalendar'],
         'icb' => ['application/tga', 'application/x-targa', 'application/x-tga', 'image/targa', 'image/tga', 'image/x-icb', 'image/x-targa', 'image/x-tga'],
         'icc' => ['application/vnd.iccprofile'],
         'ice' => ['x-conference/x-cooltalk'],
@@ -2465,7 +2615,7 @@
         'ics' => ['application/ics', 'text/calendar', 'text/x-vcalendar'],
         'idl' => ['text/x-idl'],
         'ief' => ['image/ief'],
-        'ifb' => ['text/calendar'],
+        'ifb' => ['application/ics', 'text/calendar', 'text/x-vcalendar'],
         'iff' => ['image/x-iff', 'image/x-ilbm'],
         'ifm' => ['application/vnd.shana.informed.formdata'],
         'iges' => ['model/iges'],
@@ -2477,6 +2627,7 @@
         'ilbm' => ['image/x-iff', 'image/x-ilbm'],
         'ime' => ['audio/imelody', 'audio/x-imelody', 'text/x-imelody'],
         'img' => ['application/vnd.efi.img', 'application/x-raw-disk-image'],
+        'img.sf3' => ['image/x.sf3'],
         'img.xz' => ['application/x-raw-disk-image-xz-compressed'],
         'imp' => ['application/vnd.accpac.simply.imp'],
         'ims' => ['application/vnd.ms-ims'],
@@ -2512,6 +2663,7 @@
         'jardiff' => ['application/x-java-archive-diff'],
         'java' => ['text/x-java', 'text/x-java-source'],
         'jceks' => ['application/x-java-jce-keystore'],
+        'jfif' => ['image/jpeg', 'image/pjpeg'],
         'jhc' => ['image/jphc'],
         'jisp' => ['application/vnd.jisp'],
         'jks' => ['application/x-java-keystore'],
@@ -2535,14 +2687,16 @@
         'jpr' => ['application/x-jbuilder-project'],
         'jpx' => ['application/x-jbuilder-project', 'image/jpx'],
         'jrd' => ['application/jrd+json'],
-        'js' => ['text/javascript', 'application/javascript', 'application/x-javascript'],
-        'jsm' => ['application/javascript', 'application/x-javascript', 'text/javascript'],
+        'js' => ['text/javascript', 'application/javascript', 'application/x-javascript', 'text/jscript'],
+        'jse' => ['text/jscript.encode'],
+        'jsm' => ['application/javascript', 'application/x-javascript', 'text/javascript', 'text/jscript'],
         'json' => ['application/json', 'application/schema+json'],
         'json-patch' => ['application/json-patch+json'],
         'json5' => ['application/json5'],
         'jsonld' => ['application/ld+json'],
         'jsonml' => ['application/jsonml+json'],
         'jsx' => ['text/jsx'],
+        'jt' => ['model/jt'],
         'jxl' => ['image/jxl'],
         'jxr' => ['image/jxr', 'image/vnd.ms-photo'],
         'jxra' => ['image/jxra'],
@@ -2555,6 +2709,7 @@
         'k7' => ['application/x-thomson-cassette'],
         'kar' => ['audio/midi', 'audio/x-midi'],
         'karbon' => ['application/vnd.kde.karbon', 'application/x-karbon'],
+        'kcf' => ['image/x-kiss-cel'],
         'kdbx' => ['application/x-keepass2'],
         'kdc' => ['image/x-kodak-kdc'],
         'kdelnk' => ['application/x-desktop', 'application/x-gnome-app-info'],
@@ -2603,6 +2758,7 @@
         'lha' => ['application/x-lha', 'application/x-lzh-compressed'],
         'lhs' => ['text/x-literate-haskell'],
         'lhz' => ['application/x-lhz'],
+        'lib' => ['application/vnd.microsoft.portable-executable', 'application/x-archive'],
         'link66' => ['application/vnd.route66.link66+xml'],
         'lisp' => ['text/x-common-lisp'],
         'list' => ['text/plain'],
@@ -2610,11 +2766,13 @@
         'listafp' => ['application/vnd.ibm.modcap'],
         'litcoffee' => ['text/coffeescript'],
         'lmdb' => ['application/x-lmdb'],
-        'lnk' => ['application/x-ms-shortcut'],
+        'lnk' => ['application/x-ms-shortcut', 'application/x-win-lnk'],
         'lnx' => ['application/x-atari-lynx-rom'],
         'loas' => ['audio/usac'],
         'log' => ['text/plain', 'text/x-log'],
+        'log.sf3' => ['application/x.sf3-log'],
         'lostxml' => ['application/lost+xml'],
+        'lrf' => ['application/x-sony-bbeb', 'video/mp4', 'video/mp4v-es', 'video/x-m4v'],
         'lrm' => ['application/vnd.ms-lrm'],
         'lrv' => ['video/mp4', 'video/mp4v-es', 'video/x-m4v'],
         'lrz' => ['application/x-lrzip'],
@@ -2676,14 +2834,15 @@
         'mc2' => ['text/vnd.senx.warpscript'],
         'mcd' => ['application/vnd.mcd'],
         'mcurl' => ['text/vnd.curl.mcurl'],
-        'md' => ['text/markdown', 'text/x-markdown'],
+        'md' => ['text/markdown', 'text/x-markdown', 'application/x-genesis-rom'],
         'mdb' => ['application/x-msaccess', 'application/mdb', 'application/msaccess', 'application/vnd.ms-access', 'application/vnd.msaccess', 'application/x-lmdb', 'application/x-mdb', 'zz-application/zz-winassoc-mdb'],
         'mdi' => ['image/vnd.ms-modi'],
         'mdx' => ['application/x-genesis-32x-rom', 'text/mdx'],
         'me' => ['text/troff', 'text/x-troff-me'],
-        'med' => ['audio/x-mod'],
+        'med' => ['audio/x-med', 'audio/x-mod'],
         'mesh' => ['model/mesh'],
         'meta4' => ['application/metalink4+xml'],
+        'metainfo.xml' => ['application/x-freedesktop-appstream-component'],
         'metalink' => ['application/metalink+xml'],
         'mets' => ['application/mets+xml'],
         'mfm' => ['application/vnd.mfmp'],
@@ -2702,13 +2861,13 @@
         'mjp2' => ['video/mj2'],
         'mjpeg' => ['video/x-mjpeg'],
         'mjpg' => ['video/x-mjpeg'],
-        'mjs' => ['application/javascript', 'application/x-javascript', 'text/javascript'],
+        'mjs' => ['application/javascript', 'application/x-javascript', 'text/javascript', 'text/jscript'],
         'mk' => ['text/x-makefile'],
-        'mk3d' => ['video/x-matroska', 'video/x-matroska-3d'],
-        'mka' => ['audio/x-matroska'],
+        'mk3d' => ['video/matroska', 'video/x-matroska', 'video/x-matroska-3d'],
+        'mka' => ['audio/matroska', 'audio/x-matroska'],
         'mkd' => ['text/markdown', 'text/x-markdown'],
-        'mks' => ['video/x-matroska'],
-        'mkv' => ['video/x-matroska'],
+        'mks' => ['video/matroska', 'video/x-matroska'],
+        'mkv' => ['video/matroska', 'video/x-matroska'],
         'ml' => ['text/x-ocaml'],
         'mli' => ['text/x-ocaml'],
         'mlp' => ['application/vnd.dolby.mlp'],
@@ -2724,6 +2883,7 @@
         'mobi' => ['application/x-mobipocket-ebook'],
         'moc' => ['text/x-moc'],
         'mod' => ['application/x-object', 'audio/x-mod'],
+        'mod.sf3' => ['model/x.sf3'],
         'mods' => ['application/mods+xml'],
         'mof' => ['text/x-mof'],
         'moov' => ['video/quicktime'],
@@ -2735,7 +2895,7 @@
         'mp21' => ['application/mp21'],
         'mp2a' => ['audio/mpeg'],
         'mp3' => ['audio/mpeg', 'audio/mp3', 'audio/x-mp3', 'audio/x-mpeg', 'audio/x-mpg'],
-        'mp4' => ['video/mp4', 'video/mp4v-es', 'video/x-m4v'],
+        'mp4' => ['application/mp4', 'video/mp4', 'video/mp4v-es', 'video/x-m4v'],
         'mp4a' => ['audio/mp4'],
         'mp4s' => ['application/mp4'],
         'mp4v' => ['video/mp4'],
@@ -2745,7 +2905,7 @@
         'mpeg' => ['video/mpeg', 'video/mpeg-system', 'video/x-mpeg', 'video/x-mpeg-system', 'video/x-mpeg2'],
         'mpf' => ['application/media-policy-dataset+xml'],
         'mpg' => ['video/mpeg', 'video/mpeg-system', 'video/x-mpeg', 'video/x-mpeg-system', 'video/x-mpeg2'],
-        'mpg4' => ['video/mp4'],
+        'mpg4' => ['application/mp4', 'video/mp4', 'video/mpg4'],
         'mpga' => ['audio/mp3', 'audio/mpeg', 'audio/x-mp3', 'audio/x-mpeg', 'audio/x-mpg'],
         'mpkg' => ['application/vnd.apple.installer+xml'],
         'mpl' => ['text/x-mpl2', 'video/mp2t'],
@@ -2770,13 +2930,17 @@
         'msg' => ['application/vnd.ms-outlook'],
         'msh' => ['model/mesh'],
         'msi' => ['application/x-msdownload', 'application/x-msi'],
+        'msix' => ['application/msix'],
+        'msixbundle' => ['application/msixbundle'],
         'msl' => ['application/vnd.mobius.msl'],
         'msod' => ['image/x-msod'],
+        'msp' => ['application/microsoftpatch'],
         'msty' => ['application/vnd.muvee.style'],
+        'msu' => ['application/microsoftupdate'],
         'msx' => ['application/x-msx-rom'],
         'mtl' => ['model/mtl'],
-        'mtm' => ['audio/x-mod'],
-        'mts' => ['model/vnd.mts', 'video/mp2t'],
+        'mtm' => ['audio/x-mtm', 'audio/x-multitrack'],
+        'mts' => ['application/typescript', 'model/vnd.mts', 'video/mp2t'],
         'mup' => ['text/x-mup'],
         'mus' => ['application/vnd.musician'],
         'musd' => ['application/mmt-usd+xml'],
@@ -2797,7 +2961,7 @@
         'nbp' => ['application/vnd.wolfram.player'],
         'nc' => ['application/x-netcdf'],
         'ncx' => ['application/x-dtbncx+xml'],
-        'nds' => ['application/x-nintendo-ds-rom'],
+        'nds' => ['application/vnd.nintendo.nitro.rom', 'application/x-nintendo-ds-rom'],
         'nef' => ['image/x-nikon-nef'],
         'nes' => ['application/x-nes-rom'],
         'nez' => ['application/x-nes-rom'],
@@ -2809,6 +2973,7 @@
         'nimble' => ['text/x-nimscript'],
         'nims' => ['text/x-nimscript'],
         'nitf' => ['application/vnd.nitf'],
+        'nix' => ['text/x-nix'],
         'nlu' => ['application/vnd.neurolanguage.nlu'],
         'nml' => ['application/vnd.enliven'],
         'nnd' => ['application/vnd.noblenet-directory'],
@@ -2820,10 +2985,14 @@
         'nrw' => ['image/x-nikon-nrw'],
         'nsc' => ['application/x-conference', 'application/x-netshow-channel'],
         'nsf' => ['application/vnd.lotus-notes'],
+        'nsh' => ['text/x-nsis'],
+        'nsi' => ['text/x-nsis'],
+        'nst' => ['audio/x-mod'],
         'nsv' => ['video/x-nsv'],
         'nt' => ['application/n-triples'],
+        'ntar' => ['application/x-pcapng'],
         'ntf' => ['application/vnd.nitf'],
-        'nu' => ['application/x-nuscript', 'text/x-nu'],
+        'nu' => ['application/x-nuscript', 'text/x-nu', 'text/x-nushell'],
         'numbers' => ['application/vnd.apple.numbers', 'application/x-iwork-numbers-sffnumbers'],
         'nzb' => ['application/x-nzb'],
         'o' => ['application/x-object'],
@@ -2832,10 +3001,11 @@
         'oas' => ['application/vnd.fujitsu.oasys'],
         'obd' => ['application/x-msbinder'],
         'obgx' => ['application/vnd.openblox.game+xml'],
-        'obj' => ['application/x-tgif', 'model/obj'],
+        'obj' => ['application/prs.wavefront-obj', 'application/x-tgif', 'model/obj'],
         'ocl' => ['text/x-ocl'],
+        'ocx' => ['application/vnd.microsoft.portable-executable'],
         'oda' => ['application/oda'],
-        'odb' => ['application/vnd.oasis.opendocument.database', 'application/vnd.sun.xml.base'],
+        'odb' => ['application/vnd.oasis.opendocument.base', 'application/vnd.oasis.opendocument.database', 'application/vnd.sun.xml.base'],
         'odc' => ['application/vnd.oasis.opendocument.chart'],
         'odf' => ['application/vnd.oasis.opendocument.formula'],
         'odft' => ['application/vnd.oasis.opendocument.formula-template'],
@@ -2875,6 +3045,7 @@
         'otg' => ['application/vnd.oasis.opendocument.graphics-template'],
         'oth' => ['application/vnd.oasis.opendocument.text-web'],
         'oti' => ['application/vnd.oasis.opendocument.image-template'],
+        'otm' => ['application/vnd.oasis.opendocument.text-master-template'],
         'otp' => ['application/vnd.oasis.opendocument.presentation-template'],
         'ots' => ['application/vnd.oasis.opendocument.spreadsheet-template'],
         'ott' => ['application/vnd.oasis.opendocument.text-template'],
@@ -2901,6 +3072,7 @@
         'pages' => ['application/vnd.apple.pages', 'application/x-iwork-pages-sffpages'],
         'pak' => ['application/x-pak'],
         'par2' => ['application/x-par2'],
+        'parquet' => ['application/vnd.apache.parquet', 'application/x-parquet'],
         'part' => ['application/x-partial-download'],
         'pas' => ['text/x-pascal'],
         'pat' => ['image/x-gimp-pat'],
@@ -2910,6 +3082,7 @@
         'pbd' => ['application/vnd.powerbuilder6'],
         'pbm' => ['image/x-portable-bitmap'],
         'pcap' => ['application/pcap', 'application/vnd.tcpdump.pcap', 'application/x-pcap'],
+        'pcapng' => ['application/x-pcapng'],
         'pcd' => ['image/x-photo-cd'],
         'pce' => ['application/x-pc-engine-rom'],
         'pcf' => ['application/x-cisco-vpn-settings', 'application/x-font-pcf'],
@@ -2920,7 +3093,7 @@
         'pct' => ['image/x-pict'],
         'pcurl' => ['application/vnd.curl.pcurl'],
         'pcx' => ['image/vnd.zbrush.pcx', 'image/x-pcx'],
-        'pdb' => ['application/vnd.palm', 'application/x-aportisdoc', 'application/x-ms-pdb', 'application/x-palm-database', 'application/x-pilot'],
+        'pdb' => ['application/vnd.palm', 'application/x-aportisdoc', 'application/x-ms-pdb', 'application/x-palm-database', 'application/x-pilot', 'chemical/x-pdb'],
         'pdc' => ['application/x-aportisdoc'],
         'pde' => ['text/x-processing'],
         'pdf' => ['application/pdf', 'application/acrobat', 'application/nappdf', 'application/x-pdf', 'image/pdf'],
@@ -2933,18 +3106,20 @@
         'perl' => ['application/x-perl', 'text/x-perl'],
         'pfa' => ['application/x-font-type1'],
         'pfb' => ['application/x-font-type1'],
-        'pfm' => ['application/x-font-type1'],
+        'pfm' => ['application/x-font-type1', 'image/x-pfm'],
         'pfr' => ['application/font-tdpfr', 'application/vnd.truedoc'],
         'pfx' => ['application/pkcs12', 'application/x-pkcs12'],
         'pgm' => ['image/x-portable-graymap'],
         'pgn' => ['application/vnd.chess-pgn', 'application/x-chess-pgn'],
         'pgp' => ['application/pgp', 'application/pgp-encrypted', 'application/pgp-keys', 'application/pgp-signature'],
+        'phm' => ['image/x-phm'],
         'php' => ['application/x-php', 'application/x-httpd-php'],
         'php3' => ['application/x-php'],
         'php4' => ['application/x-php'],
         'php5' => ['application/x-php'],
         'phps' => ['application/x-php'],
-        'pic' => ['image/x-pict'],
+        'phys.sf3' => ['model/x.sf3-physics'],
+        'pic' => ['image/vnd.radiance', 'image/x-hdr', 'image/x-pict'],
         'pict' => ['image/x-pict'],
         'pict1' => ['image/x-pict'],
         'pict2' => ['image/x-pict'],
@@ -2953,6 +3128,7 @@
         'pki' => ['application/pkixcmp'],
         'pkipath' => ['application/pkix-pkipath'],
         'pkpass' => ['application/vnd.apple.pkpass'],
+        'pkpasses' => ['application/vnd.apple.pkpasses'],
         'pkr' => ['application/pgp-keys'],
         'pl' => ['application/x-perl', 'text/x-perl'],
         'pla' => ['audio/x-iriver-pla'],
@@ -2986,13 +3162,14 @@
         'pptx' => ['application/vnd.openxmlformats-officedocument.presentationml.presentation'],
         'ppz' => ['application/mspowerpoint', 'application/powerpoint', 'application/vnd.ms-powerpoint', 'application/x-mspowerpoint'],
         'pqa' => ['application/vnd.palm', 'application/x-palm-database'],
-        'prc' => ['application/vnd.palm', 'application/x-mobipocket-ebook', 'application/x-palm-database', 'application/x-pilot'],
+        'prc' => ['application/vnd.palm', 'application/x-mobipocket-ebook', 'application/x-palm-database', 'application/x-pilot', 'model/prc'],
         'pre' => ['application/vnd.lotus-freelance'],
         'prf' => ['application/pics-rules'],
         'provx' => ['application/provenance+xml'],
         'ps' => ['application/postscript'],
         'ps.bz2' => ['application/x-bzpostscript'],
         'ps.gz' => ['application/x-gzpostscript'],
+        'ps1' => ['application/x-powershell'],
         'psb' => ['application/vnd.3gpp.pic-bw-small'],
         'psd' => ['application/photoshop', 'application/x-photoshop', 'image/photoshop', 'image/psd', 'image/vnd.adobe.photoshop', 'image/x-photoshop', 'image/x-psd'],
         'psf' => ['application/x-font-linux-psf', 'audio/x-psf'],
@@ -3003,23 +3180,28 @@
         'psw' => ['application/x-pocket-word'],
         'pti' => ['image/prs.pti'],
         'ptid' => ['application/vnd.pvi.ptid1'],
-        'pub' => ['application/vnd.ms-publisher', 'application/x-mspublisher'],
+        'pub' => ['application/vnd.ms-publisher', 'application/x-mspublisher', 'text/x-ssh-public-key'],
         'pvb' => ['application/vnd.3gpp.pic-bw-var'],
         'pw' => ['application/x-pw'],
         'pwn' => ['application/vnd.3m.post-it-notes'],
-        'py' => ['text/x-python', 'text/x-python3'],
+        'pxd' => ['text/x-cython'],
+        'pxi' => ['text/x-cython'],
+        'pxr' => ['image/x-pxr'],
+        'py' => ['text/x-python', 'text/x-python2', 'text/x-python3'],
+        'py2' => ['text/x-python2'],
         'py3' => ['text/x-python3'],
-        'py3x' => ['text/x-python3'],
         'pya' => ['audio/vnd.ms-playready.media.pya'],
         'pyc' => ['application/x-python-bytecode'],
         'pyi' => ['text/x-python3'],
-        'pyo' => ['application/x-python-bytecode'],
+        'pyo' => ['application/x-python-bytecode', 'model/vnd.pytha.pyox'],
+        'pyox' => ['model/vnd.pytha.pyox'],
         'pys' => ['application/x-pyspread-bz-spreadsheet'],
         'pysu' => ['application/x-pyspread-spreadsheet'],
         'pyv' => ['video/vnd.ms-playready.media.pyv'],
-        'pyx' => ['text/x-python'],
+        'pyx' => ['text/x-cython'],
         'qam' => ['application/vnd.epson.quickanime'],
         'qbo' => ['application/vnd.intu.qbo'],
+        'qbrew' => ['application/x-qbrew'],
         'qcow' => ['application/x-qemu-disk'],
         'qcow2' => ['application/x-qemu-disk'],
         'qd' => ['application/x-fd-file', 'application/x-raw-floppy-disk-image'],
@@ -3032,6 +3214,7 @@
         'qoi' => ['image/qoi'],
         'qp' => ['application/x-qpress'],
         'qps' => ['application/vnd.publishare-delta-tree'],
+        'qpw' => ['application/x-quattropro'],
         'qs' => ['application/sparql-query'],
         'qt' => ['video/quicktime'],
         'qti' => ['application/x-qtiplot'],
@@ -3044,6 +3227,7 @@
         'qxb' => ['application/vnd.quark.quarkxpress'],
         'qxd' => ['application/vnd.quark.quarkxpress'],
         'qxl' => ['application/vnd.quark.quarkxpress'],
+        'qxp' => ['application/vnd.quark.quarkxpress'],
         'qxt' => ['application/vnd.quark.quarkxpress'],
         'ra' => ['audio/vnd.m-realaudio', 'audio/vnd.rn-realaudio', 'audio/x-pn-realaudio', 'audio/x-realaudio'],
         'raf' => ['image/x-fuji-raf'],
@@ -3056,17 +3240,19 @@
         'raw-disk-image' => ['application/vnd.efi.img', 'application/x-raw-disk-image'],
         'raw-disk-image.xz' => ['application/x-raw-disk-image-xz-compressed'],
         'rax' => ['audio/vnd.m-realaudio', 'audio/vnd.rn-realaudio', 'audio/x-pn-realaudio'],
-        'rb' => ['application/x-ruby'],
+        'rb' => ['application/x-ruby', 'text/x-ruby'],
         'rcprofile' => ['application/vnd.ipunplugged.rcprofile'],
         'rdf' => ['application/rdf+xml', 'text/rdf'],
         'rdfs' => ['application/rdf+xml', 'text/rdf'],
         'rdz' => ['application/vnd.data-vision.rdz'],
         'reg' => ['text/x-ms-regedit'],
         'rej' => ['application/x-reject', 'text/x-reject'],
+        'releases.xml' => ['application/x-freedesktop-appstream-releases'],
         'relo' => ['application/p2p-overlay+xml'],
         'rep' => ['application/vnd.businessobjects'],
         'res' => ['application/x-dtbresource+xml', 'application/x-godot-resource'],
         'rgb' => ['image/x-rgb'],
+        'rgbe' => ['image/vnd.radiance', 'image/x-hdr'],
         'rif' => ['application/reginfo+xml'],
         'rip' => ['audio/vnd.rip'],
         'ris' => ['application/x-research-info-systems'],
@@ -3107,6 +3293,7 @@
         'rv' => ['video/vnd.rn-realvideo', 'video/x-real-video'],
         'rvx' => ['video/vnd.rn-realvideo', 'video/x-real-video'],
         'rw2' => ['image/x-panasonic-raw2', 'image/x-panasonic-rw2'],
+        'rz' => ['application/x-rzip'],
         's' => ['text/x-asm'],
         's3m' => ['audio/s3m', 'audio/x-s3m'],
         'saf' => ['application/vnd.yamaha.smaf-audio'],
@@ -3119,22 +3306,26 @@
         'sbml' => ['application/sbml+xml'],
         'sc' => ['application/vnd.ibm.secure-container', 'text/x-scala'],
         'scala' => ['text/x-scala'],
+        'scap' => ['application/x-pcapng'],
         'scd' => ['application/x-msschedule'],
         'scm' => ['application/vnd.lotus-screencam', 'text/x-scheme'],
         'scn' => ['application/x-godot-scene'],
         'scope' => ['text/x-systemd-unit'],
         'scq' => ['application/scvp-cv-request'],
+        'scr' => ['application/vnd.microsoft.portable-executable', 'application/x-ms-dos-executable', 'application/x-ms-ne-executable', 'application/x-msdownload'],
         'scs' => ['application/scvp-cv-response'],
         'scss' => ['text/x-scss'],
+        'sct' => ['image/x-sct'],
         'scurl' => ['text/vnd.curl.scurl'],
-        'sda' => ['application/vnd.stardivision.draw'],
-        'sdc' => ['application/vnd.stardivision.calc'],
-        'sdd' => ['application/vnd.stardivision.impress'],
+        'sda' => ['application/vnd.stardivision.draw', 'application/x-stardraw'],
+        'sdc' => ['application/vnd.stardivision.calc', 'application/x-starcalc'],
+        'sdd' => ['application/vnd.stardivision.impress', 'application/x-starimpress'],
         'sdkd' => ['application/vnd.solent.sdkm+xml'],
         'sdkm' => ['application/vnd.solent.sdkm+xml'],
-        'sdp' => ['application/sdp', 'application/vnd.sdp', 'application/vnd.stardivision.impress', 'application/x-sdp'],
-        'sds' => ['application/vnd.stardivision.chart'],
-        'sdw' => ['application/vnd.stardivision.writer', 'application/vnd.stardivision.writer-global'],
+        'sdm' => ['application/vnd.stardivision.mail'],
+        'sdp' => ['application/sdp', 'application/vnd.sdp', 'application/vnd.stardivision.impress-packed', 'application/x-sdp'],
+        'sds' => ['application/vnd.stardivision.chart', 'application/x-starchart'],
+        'sdw' => ['application/vnd.stardivision.writer', 'application/x-starwriter'],
         'sea' => ['application/x-sea'],
         'see' => ['application/vnd.seemail'],
         'seed' => ['application/vnd.fdsn.seed'],
@@ -3147,16 +3338,17 @@
         'service' => ['text/x-dbus-service', 'text/x-systemd-unit'],
         'setpay' => ['application/set-payment-initiation'],
         'setreg' => ['application/set-registration-initiation'],
+        'sf3' => ['application/x.sf3-archive', 'application/x.sf3-log', 'application/x.sf3-table', 'application/x.sf3-text', 'audio/x.sf3', 'image/x.sf3', 'image/x.sf3-vector', 'model/x.sf3', 'model/x.sf3-physics'],
         'sfc' => ['application/vnd.nintendo.snes.rom', 'application/x-snes-rom'],
         'sfd-hdstx' => ['application/vnd.hydrostatix.sof-data'],
-        'sfs' => ['application/vnd.spotfire.sfs'],
+        'sfs' => ['application/vnd.spotfire.sfs', 'application/vnd.squashfs'],
         'sfv' => ['text/x-sfv'],
         'sg' => ['application/x-sg1000-rom'],
         'sgb' => ['application/x-gameboy-rom'],
         'sgd' => ['application/x-genesis-rom'],
         'sgf' => ['application/x-go-sgf'],
         'sgi' => ['image/sgi', 'image/x-sgi'],
-        'sgl' => ['application/vnd.stardivision.writer', 'application/vnd.stardivision.writer-global'],
+        'sgl' => ['application/vnd.stardivision.writer-global', 'application/x-starwriter-global'],
         'sgm' => ['text/sgml'],
         'sgml' => ['text/sgml'],
         'sh' => ['application/x-sh', 'application/x-shellscript', 'text/x-sh'],
@@ -3189,15 +3381,15 @@
         'sldx' => ['application/vnd.openxmlformats-officedocument.presentationml.slide'],
         'slice' => ['text/x-systemd-unit'],
         'slim' => ['text/slim'],
-        'slk' => ['text/spreadsheet'],
+        'slk' => ['application/x-sylk', 'text/spreadsheet'],
         'slm' => ['text/slim'],
         'sls' => ['application/route-s-tsid+xml'],
         'slt' => ['application/vnd.epson.salt'],
         'sm' => ['application/vnd.stepmania.stepchart'],
         'smaf' => ['application/vnd.smaf', 'application/x-smaf'],
         'smc' => ['application/vnd.nintendo.snes.rom', 'application/x-snes-rom'],
-        'smd' => ['application/vnd.stardivision.mail', 'application/x-genesis-rom'],
-        'smf' => ['application/vnd.stardivision.math'],
+        'smd' => ['application/x-genesis-rom', 'application/x-starmail'],
+        'smf' => ['application/vnd.stardivision.math', 'application/x-starmath'],
         'smi' => ['application/smil', 'application/smil+xml', 'application/x-sami'],
         'smil' => ['application/smil', 'application/smil+xml'],
         'smk' => ['video/vnd.radgamettools.smacker'],
@@ -3209,10 +3401,12 @@
         'snd' => ['audio/basic'],
         'snf' => ['application/x-font-snf'],
         'so' => ['application/x-sharedlib'],
+        'so.[0-9]*' => ['application/x-sharedlib'],
         'socket' => ['text/x-systemd-unit'],
         'spc' => ['application/x-pkcs7-certificates'],
         'spd' => ['application/x-font-speedo'],
         'spdx' => ['text/spdx'],
+        'spdx.json' => ['application/spdx+json'],
         'spec' => ['text/x-rpm-spec'],
         'spf' => ['application/vnd.yamaha.smaf-phrase'],
         'spl' => ['application/futuresplash', 'application/vnd.adobe.flash.movie', 'application/x-futuresplash', 'application/x-shockwave-flash'],
@@ -3221,10 +3415,12 @@
         'spp' => ['application/scvp-vp-response'],
         'spq' => ['application/scvp-vp-request'],
         'spx' => ['application/x-apple-systemprofiler+xml', 'audio/ogg', 'audio/x-speex', 'audio/x-speex+ogg'],
+        'sqfs' => ['application/vnd.squashfs'],
         'sql' => ['application/sql', 'application/x-sql', 'text/x-sql'],
         'sqlite2' => ['application/x-sqlite2'],
         'sqlite3' => ['application/vnd.sqlite3', 'application/x-sqlite3'],
         'sqsh' => ['application/vnd.squashfs'],
+        'squashfs' => ['application/vnd.squashfs'],
         'sr2' => ['image/x-sony-sr2'],
         'src' => ['application/x-wais-source'],
         'src.rpm' => ['application/x-source-rpm'],
@@ -3241,11 +3437,13 @@
         'st' => ['application/vnd.sailingtracker.track'],
         'stc' => ['application/vnd.sun.xml.calc.template'],
         'std' => ['application/vnd.sun.xml.draw.template'],
+        'step' => ['model/step'],
         'stf' => ['application/vnd.wt.stf'],
         'sti' => ['application/vnd.sun.xml.impress.template'],
-        'stk' => ['application/hyperstudio'],
+        'stk' => ['application/hyperstudio', 'audio/x-mod'],
         'stl' => ['application/vnd.ms-pki.stl', 'model/stl', 'model/x.stl-ascii', 'model/x.stl-binary'],
         'stm' => ['audio/x-stm'],
+        'stp' => ['model/step'],
         'stpx' => ['model/step+xml'],
         'stpxz' => ['model/step-xml+zip'],
         'stpz' => ['model/step+zip'],
@@ -3279,19 +3477,21 @@
         'sxi' => ['application/vnd.sun.xml.impress'],
         'sxm' => ['application/vnd.sun.xml.math'],
         'sxw' => ['application/vnd.sun.xml.writer'],
-        'sylk' => ['text/spreadsheet'],
+        'sylk' => ['application/x-sylk', 'text/spreadsheet'],
+        'sys' => ['application/vnd.microsoft.portable-executable'],
         't' => ['application/x-perl', 'application/x-troff', 'text/troff', 'text/x-perl', 'text/x-troff'],
         't2t' => ['text/x-txt2tags'],
         't3' => ['application/x-t3vm-image'],
         't38' => ['image/t38'],
+        'tab.sf3' => ['application/x.sf3-table'],
         'taglet' => ['application/vnd.mynfc'],
         'tak' => ['audio/x-tak'],
         'tao' => ['application/vnd.tao.intent-module-archive'],
         'tap' => ['image/vnd.tencent.tap'],
         'tar' => ['application/x-tar', 'application/x-gtar'],
         'tar.Z' => ['application/x-tarz'],
-        'tar.bz' => ['application/x-bzip-compressed-tar'],
-        'tar.bz2' => ['application/x-bzip2-compressed-tar'],
+        'tar.bz' => ['application/x-bzip1-compressed-tar'],
+        'tar.bz2' => ['application/x-bzip-compressed-tar', 'application/x-bzip2-compressed-tar'],
         'tar.bz3' => ['application/x-bzip3-compressed-tar'],
         'tar.gz' => ['application/x-compressed-tar'],
         'tar.lrz' => ['application/x-lrzip-compressed-tar'],
@@ -3299,13 +3499,14 @@
         'tar.lz4' => ['application/x-lz4-compressed-tar'],
         'tar.lzma' => ['application/x-lzma-compressed-tar'],
         'tar.lzo' => ['application/x-tzo'],
+        'tar.rz' => ['application/x-rzip-compressed-tar'],
         'tar.xz' => ['application/x-xz-compressed-tar'],
         'tar.zst' => ['application/x-zstd-compressed-tar'],
         'target' => ['text/x-systemd-unit'],
         'taz' => ['application/x-tarz'],
-        'tb2' => ['application/x-bzip2-compressed-tar', 'application/x-bzip-compressed-tar'],
-        'tbz' => ['application/x-bzip-compressed-tar'],
-        'tbz2' => ['application/x-bzip2-compressed-tar', 'application/x-bzip-compressed-tar'],
+        'tb2' => ['application/x-bzip-compressed-tar', 'application/x-bzip2-compressed-tar'],
+        'tbz' => ['application/x-bzip1-compressed-tar'],
+        'tbz2' => ['application/x-bzip-compressed-tar', 'application/x-bzip2-compressed-tar'],
         'tbz3' => ['application/x-bzip3-compressed-tar'],
         'tcap' => ['application/vnd.3gpp2.tcap'],
         'tcl' => ['application/x-tcl', 'text/tcl', 'text/x-tcl'],
@@ -3346,7 +3547,8 @@
         'tres' => ['application/x-godot-resource'],
         'trig' => ['application/trig', 'application/x-trig'],
         'trm' => ['application/x-msterminal'],
-        'ts' => ['application/x-linguist', 'text/vnd.qt.linguist', 'text/vnd.trolltech.linguist', 'video/mp2t'],
+        'trz' => ['application/x-rzip-compressed-tar'],
+        'ts' => ['application/typescript', 'application/x-linguist', 'text/vnd.qt.linguist', 'text/vnd.trolltech.linguist', 'video/mp2t'],
         'tscn' => ['application/x-godot-scene'],
         'tsd' => ['application/timestamped-data'],
         'tsv' => ['text/tab-separated-values'],
@@ -3363,11 +3565,13 @@
         'txd' => ['application/vnd.genomatix.tuxedo'],
         'txf' => ['application/vnd.mobius.txf'],
         'txt' => ['text/plain'],
+        'txt.sf3' => ['application/x.sf3-text'],
         'txz' => ['application/x-xz-compressed-tar'],
-        'typ' => ['text/x-typst'],
+        'typ' => ['text/vnd.typst', 'text/x-typst'],
         'tzo' => ['application/x-tzo'],
         'tzst' => ['application/x-zstd-compressed-tar'],
         'u32' => ['application/x-authorware-bin'],
+        'u3d' => ['model/u3d'],
         'u8dsn' => ['message/global-delivery-status'],
         'u8hdr' => ['message/global-headers'],
         'u8mdn' => ['message/global-disposition-notification'],
@@ -3379,18 +3583,20 @@
         'ufraw' => ['application/x-ufraw'],
         'ui' => ['application/x-designer', 'application/x-gtk-builder'],
         'uil' => ['text/x-uil'],
-        'ult' => ['audio/x-mod'],
+        'ult' => ['audio/x-multimate-mod', 'audio/x-ult'],
         'ulx' => ['application/x-glulx'],
         'umj' => ['application/vnd.umajin'],
         'unf' => ['application/x-nes-rom'],
-        'uni' => ['audio/x-mod'],
+        'uni' => ['audio/x-669', 'audio/x-669-mod'],
         'unif' => ['application/x-nes-rom'],
         'unityweb' => ['application/vnd.unity'],
+        'uo' => ['application/vnd.uoml+xml'],
         'uoml' => ['application/vnd.uoml+xml'],
         'uri' => ['text/uri-list'],
         'uris' => ['text/uri-list'],
         'url' => ['application/x-mswinurl'],
         'urls' => ['text/uri-list'],
+        'usda' => ['model/vnd.usda'],
         'usdz' => ['model/vnd.usdz+zip'],
         'ustar' => ['application/x-ustar'],
         'utz' => ['application/vnd.uiq.theme'],
@@ -3428,7 +3634,8 @@
         'v64' => ['application/x-n64-rom'],
         'vala' => ['text/x-vala'],
         'vapi' => ['text/x-vala'],
-        'vb' => ['application/x-virtual-boy-rom'],
+        'vb' => ['application/x-virtual-boy-rom', 'text/x-vb'],
+        'vbe' => ['text/vbscript.encode'],
         'vbox' => ['application/x-virtualbox-vbox'],
         'vbox-extpack' => ['application/x-virtualbox-vbox-extpack'],
         'vbs' => ['text/vbs', 'text/vbscript'],
@@ -3442,6 +3649,7 @@
         'vda' => ['application/tga', 'application/x-targa', 'application/x-tga', 'image/targa', 'image/tga', 'image/x-icb', 'image/x-targa', 'image/x-tga'],
         'vdi' => ['application/x-vdi-disk', 'application/x-virtualbox-vdi'],
         'vds' => ['model/vnd.sap.vds'],
+        'vec.sf3' => ['image/x.sf3-vector'],
         'vhd' => ['application/x-vhd-disk', 'application/x-virtualbox-vhd', 'text/x-vhdl'],
         'vhdl' => ['text/x-vhdl'],
         'vhdx' => ['application/x-vhdx-disk', 'application/x-virtualbox-vhdx'],
@@ -3452,7 +3660,7 @@
         'vmdk' => ['application/x-virtualbox-vmdk', 'application/x-vmdk-disk'],
         'vob' => ['video/mpeg', 'video/mpeg-system', 'video/x-mpeg', 'video/x-mpeg-system', 'video/x-mpeg2', 'video/x-ms-vob'],
         'voc' => ['audio/x-voc'],
-        'vor' => ['application/vnd.stardivision.writer', 'application/vnd.stardivision.writer-global'],
+        'vor' => ['application/vnd.stardivision.writer', 'application/x-starwriter'],
         'vox' => ['application/x-authorware-bin'],
         'vpc' => ['application/x-vhd-disk', 'application/x-virtualbox-vhd'],
         'vrm' => ['model/vrml'],
@@ -3494,6 +3702,7 @@
         'webmanifest' => ['application/manifest+json'],
         'webp' => ['image/webp'],
         'wg' => ['application/vnd.pmi.widget'],
+        'wgsl' => ['text/wgsl'],
         'wgt' => ['application/widget'],
         'wif' => ['application/watcherinfo+xml'],
         'wim' => ['application/x-ms-wim'],
@@ -3562,7 +3771,9 @@
         'xcf' => ['image/x-xcf'],
         'xcf.bz2' => ['image/x-compressed-xcf'],
         'xcf.gz' => ['image/x-compressed-xcf'],
+        'xci' => ['application/x-nintendo-switch-xci', 'application/x-nx-xci'],
         'xcs' => ['application/calendar+xml'],
+        'xdcf' => ['application/vnd.gov.sk.xmldatacontainer+xml'],
         'xdf' => ['application/mrb-consumer+xml', 'application/mrb-publish+xml', 'application/xcap-diff+xml'],
         'xdgapp' => ['application/vnd.flatpak', 'application/vnd.xdgapp'],
         'xdm' => ['application/vnd.syncml.dm+xml'],
@@ -3572,10 +3783,11 @@
         'xel' => ['application/xcap-el+xml'],
         'xenc' => ['application/xenc+xml'],
         'xer' => ['application/patch-ops-error+xml', 'application/xcap-error+xml'],
-        'xfdf' => ['application/vnd.adobe.xfdf'],
+        'xfdf' => ['application/vnd.adobe.xfdf', 'application/xfdf'],
         'xfdl' => ['application/vnd.xfdl'],
         'xhe' => ['audio/usac'],
         'xht' => ['application/xhtml+xml'],
+        'xhtm' => ['application/vnd.pwg-xhtml-print+xml'],
         'xhtml' => ['application/xhtml+xml'],
         'xhvml' => ['application/xv+xml'],
         'xi' => ['audio/x-xi'],
@@ -3612,6 +3824,7 @@
         'xpw' => ['application/vnd.intercon.formnet'],
         'xpx' => ['application/vnd.intercon.formnet'],
         'xsd' => ['application/xml', 'text/xml'],
+        'xsf' => ['application/prs.xsf+xml'],
         'xsl' => ['application/xml', 'application/xslt+xml'],
         'xslfo' => ['text/x-xslfo'],
         'xslt' => ['application/xslt+xml'],
@@ -3622,6 +3835,7 @@
         'xvml' => ['application/xv+xml'],
         'xwd' => ['image/x-xwindowdump'],
         'xyz' => ['chemical/x-xyz'],
+        'xyze' => ['image/vnd.radiance', 'image/x-hdr'],
         'xz' => ['application/x-xz'],
         'yaml' => ['application/yaml', 'application/x-yaml', 'text/x-yaml', 'text/yaml'],
         'yang' => ['application/yang'],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Part/DataPart.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Part/DataPart.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Part/DataPart.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Part/DataPart.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
     public function setContentId(string $cid): static
     {
         if (!str_contains($cid, '@')) {
-            throw new InvalidArgumentException(sprintf('Invalid cid "%s".', $cid));
+            throw new InvalidArgumentException(\sprintf('Invalid cid "%s".', $cid));
         }
 
         $this->cid = $cid;
@@ -141,7 +141,7 @@
         }
         $this->_headers = $this->getHeaders();
 
-        return ['_headers', '_parent', 'filename', 'mediaType'];
+        return ['_headers', '_parent', 'filename', 'mediaType', 'cid'];
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Part/MessagePart.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Part/MessagePart.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Part/MessagePart.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Part/MessagePart.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,13 +60,15 @@
         return $this->message->toIterable();
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
-        return ['message'];
+        return ['message' => $this->message];
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
+        $this->message = $data['message'] ?? $data["\0".self::class."\0message"];
+
         $this->__construct($this->message);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Part/Multipart/FormDataPart.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Part/Multipart/FormDataPart.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Part/Multipart/FormDataPart.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Part/Multipart/FormDataPart.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,14 +54,14 @@
         $prepare = function ($item, $key, $root = null) use (&$values, &$prepare) {
             if (null === $root && \is_int($key) && \is_array($item)) {
                 if (1 !== \count($item)) {
-                    throw new InvalidArgumentException(sprintf('Form field values with integer keys can only have one array element, the key being the field name and the value being the field value, %d provided.', \count($item)));
+                    throw new InvalidArgumentException(\sprintf('Form field values with integer keys can only have one array element, the key being the field name and the value being the field value, %d provided.', \count($item)));
                 }
 
                 $key = key($item);
                 $item = $item[$key];
             }
 
-            $fieldName = null !== $root ? sprintf('%s[%s]', $root, $key) : $key;
+            $fieldName = null !== $root ? \sprintf('%s[%s]', $root, $key) : $key;
 
             if (\is_array($item)) {
                 array_walk($item, $prepare, $fieldName);
@@ -70,7 +70,7 @@
             }
 
             if (!\is_string($item) && !$item instanceof TextPart) {
-                throw new InvalidArgumentException(sprintf('The value of the form field "%s" can only be a string, an array, or an instance of TextPart, "%s" given.', $fieldName, get_debug_type($item)));
+                throw new InvalidArgumentException(\sprintf('The value of the form field "%s" can only be a string, an array, or an instance of TextPart, "%s" given.', $fieldName, get_debug_type($item)));
             }
 
             $values[] = $this->preparePart($fieldName, $item);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Part/TextPart.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Part/TextPart.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Part/TextPart.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Part/TextPart.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,13 +45,13 @@
         parent::__construct();
 
         if (!\is_string($body) && !\is_resource($body) && !$body instanceof File) {
-            throw new \TypeError(sprintf('The body of "%s" must be a string, a resource, or an instance of "%s" (got "%s").', self::class, File::class, get_debug_type($body)));
+            throw new \TypeError(\sprintf('The body of "%s" must be a string, a resource, or an instance of "%s" (got "%s").', self::class, File::class, get_debug_type($body)));
         }
 
         if ($body instanceof File) {
             $path = $body->getPath();
             if ((is_file($path) && !is_readable($path)) || is_dir($path)) {
-                throw new InvalidArgumentException(sprintf('Path "%s" is not readable.', $path));
+                throw new InvalidArgumentException(\sprintf('Path "%s" is not readable.', $path));
             }
         }
 
@@ -64,7 +64,7 @@
             $this->encoding = $this->chooseEncoding();
         } else {
             if ('quoted-printable' !== $encoding && 'base64' !== $encoding && '8bit' !== $encoding) {
-                throw new InvalidArgumentException(sprintf('The encoding must be one of "quoted-printable", "base64", or "8bit" ("%s" given).', $encoding));
+                throw new InvalidArgumentException(\sprintf('The encoding must be one of "quoted-printable", "base64", or "8bit" ("%s" given).', $encoding));
             }
             $this->encoding = $encoding;
         }
@@ -151,7 +151,7 @@
         if ($this->body instanceof File) {
             $path = $this->body->getPath();
             if (false === $handle = @fopen($path, 'r', false)) {
-                throw new InvalidArgumentException(sprintf('Unable to open path "%s".', $path));
+                throw new InvalidArgumentException(\sprintf('Unable to open path "%s".', $path));
             }
 
             yield from $this->getEncoder()->encodeByteStream($handle);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php	2026-05-20 10:56:49.000000000 +0200
@@ -80,7 +80,7 @@
     'html' => ['text/html'],
     'jar' => ['application/x-java-archive'],
     'jpg' => ['image/jpeg'],
-    'js' => ['text/javascript'],
+    'js' => ['text/javascript', 'application/javascript', 'application/x-javascript'],
     'keynote' => ['application/vnd.apple.keynote'],
     'key' => ['application/vnd.apple.keynote'],
     'm3u' => ['audio/x-mpegurl'],
@@ -88,6 +88,10 @@
     'md' => ['text/markdown', 'text/x-markdown'],
     'mdb' => ['application/x-msaccess'],
     'mid' => ['audio/midi'],
+    'mk3d' => ['video/matroska'],
+    'mka' => ['audio/matroska'],
+    'mks' => ['video/matroska'],
+    'mkv' => ['video/matroska'],
     'mov' => ['video/quicktime'],
     'mp3' => ['audio/mpeg'],
     'ogg' => ['audio/ogg'],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailAddressContains.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailAddressContains.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailAddressContains.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailAddressContains.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
 
     public function toString(): string
     {
-        return sprintf('contains address "%s" with value "%s"', $this->headerName, $this->expectedValue);
+        return \sprintf('contains address "%s" with value "%s"', $this->headerName, $this->expectedValue);
     }
 
     /**
@@ -62,6 +62,6 @@
      */
     protected function failureDescription($message): string
     {
-        return sprintf('the Email %s (value is %s)', $this->toString(), $message->getHeaders()->get($this->headerName)->getBodyAsString());
+        return \sprintf('the Email %s (value is %s)', $this->toString(), $message->getHeaders()->get($this->headerName)->getBodyAsString());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailAttachmentCount.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailAttachmentCount.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailAttachmentCount.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailAttachmentCount.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
 
     public function toString(): string
     {
-        return sprintf('has sent "%d" attachment(s)', $this->expectedValue);
+        return \sprintf('has sent "%d" attachment(s)', $this->expectedValue);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHasHeader.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHasHeader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHasHeader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHasHeader.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
 
     public function toString(): string
     {
-        return sprintf('has header "%s"', $this->headerName);
+        return \sprintf('has header "%s"', $this->headerName);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHeaderSame.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHeaderSame.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHeaderSame.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHeaderSame.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
 
     public function toString(): string
     {
-        return sprintf('has header "%s" with value "%s"', $this->headerName, $this->expectedValue);
+        return \sprintf('has header "%s" with value "%s"', $this->headerName, $this->expectedValue);
     }
 
     /**
@@ -48,7 +48,7 @@
      */
     protected function failureDescription($message): string
     {
-        return sprintf('the Email %s (value is %s)', $this->toString(), $this->getHeaderValue($message) ?? 'null');
+        return \sprintf('the Email %s (value is %s)', $this->toString(), $this->getHeaderValue($message) ?? 'null');
     }
 
     private function getHeaderValue($message): ?string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHtmlBodyContains.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHtmlBodyContains.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHtmlBodyContains.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailHtmlBodyContains.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
 
     public function toString(): string
     {
-        return sprintf('contains "%s"', $this->expectedText);
+        return \sprintf('contains "%s"', $this->expectedText);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailSubjectContains.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailSubjectContains.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailSubjectContains.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailSubjectContains.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,7 @@
 
     public function toString(): string
     {
-        return sprintf('contains subject with value "%s"', $this->expectedSubjectValue);
+        return \sprintf('contains subject with value "%s"', $this->expectedSubjectValue);
     }
 
     protected function matches($other): bool
@@ -39,7 +39,7 @@
     {
         $message = 'The email subject '.$this->toString();
         if ($other instanceof Email) {
-            $message .= sprintf('. The subject was: "%s"', $other->getSubject() ?? '<empty>');
+            $message .= \sprintf('. The subject was: "%s"', $other->getSubject() ?? '<empty>');
         }
 
         return $message;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailTextBodyContains.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailTextBodyContains.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailTextBodyContains.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Test/Constraint/EmailTextBodyContains.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
 
     public function toString(): string
     {
-        return sprintf('contains "%s"', $this->expectedText);
+        return \sprintf('contains "%s"', $this->expectedText);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/AbstractMimeTypeGuesserTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/AbstractMimeTypeGuesserTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/AbstractMimeTypeGuesserTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/AbstractMimeTypeGuesserTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
     {
         $path = __DIR__.'/Fixtures/mimetypes/to_delete';
         if (file_exists($path)) {
-            @chmod($path, 0666);
+            @chmod($path, 0o666);
             @unlink($path);
         }
     }
@@ -114,9 +114,9 @@
 
         $path = __DIR__.'/Fixtures/mimetypes/to_delete';
         touch($path);
-        @chmod($path, 0333);
+        @chmod($path, 0o333);
 
-        if (str_ends_with(sprintf('%o', fileperms($path)), '0333')) {
+        if (str_ends_with(\sprintf('%o', fileperms($path)), '0333')) {
             $this->expectException(\InvalidArgumentException::class);
             $this->getGuesser()->guessMimeType($path);
         } else {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/AddressTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/AddressTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/AddressTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/AddressTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,6 +38,26 @@
         new Address('fab   pot@symfony.com');
     }
 
+    /**
+     * @dataProvider provideAddressesWithControlCharacters
+     */
+    public function testConstructorRejectsControlCharactersInAddress(string $address)
+    {
+        $this->expectException(InvalidArgumentException::class);
+        new Address($address);
+    }
+
+    public static function provideAddressesWithControlCharacters(): iterable
+    {
+        yield 'CRLF in quoted-string' => ["\"x\r\nBcc: attacker@evil\"@example.com"];
+        yield 'CR only' => ["foo\r@example.com"];
+        yield 'LF only' => ["foo\n@example.com"];
+        yield 'NUL byte' => ["foo\x00@example.com"];
+        yield 'HTAB' => ["foo\t@example.com"];
+        yield 'DEL (0x7F)' => ["foo\x7F@example.com"];
+        yield 'control char in domain' => ["foo@example\x01.com"];
+    }
+
     public function testCreate()
     {
         $this->assertSame($a = new Address('fabien@symfony.com'), Address::create($a));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Crypto/DkimSignerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Crypto/DkimSignerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Crypto/DkimSignerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Crypto/DkimSignerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,22 +26,22 @@
 class DkimSignerTest extends TestCase
 {
     private static string $pk = <<<EOF
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQC6lQYNOMaboSOE/c2KNl8Rwk61zoMXrEmXC926an3/jHrtj9wB
-ndP2DY2nUyz0vpmJlcDOjDwTGs8U/C7zn7PDdZ8EuuxlAa7oNo/38YYV+5Oki93m
-io6rGV8zLMGLLygAB1sJaJVP5W9wm0RLY776YFL4V/nekA5ZTnA4+KaIYwIDAQAB
-AoGAJLhjgoKkA8kI1omkxAjDWRlmqD1Ga4hKy2FYd/GxbnPVVZ+0atUG/Cvarw2d
-kWVZjkxcr8nFoPTrwHOJQgUyOXWLuIuirznoTtDKzC+4JlDsZJd8hkVohqwKfdPA
-v4iYceN6V0YRQpsLVwKJinr5k6oHpCGs3sNffpHQzrXc24ECQQDb0JLiMm5OZoYZ
-G3739DsYVycUmYmYJtXuUBHTIwBAaOyo0yEmeQ8Li4H5dSSWqeOO0XrfP7cQ3TOm
-6LuSrIXDAkEA2Uv2PuteQXGSzOEuQbDbYeR0Le0drDUFJkXBM4oS3XB3wx2+umD+
-WqpfLEIXWV3/hkuottTmlsQuuAP3Xv+o4QJAf5FyTRfbcGCLnnKYoyn4Sc36fjgE
-5GpVaXLKhXAgq0C5Z9jvujYzhw21pqJXU6DQ0Ye8+WcuxPi7Czix8xNwpQJBAMm1
-vexCSMivSPpuvaW1KrEAhOhtB/JndVRFxEa3kTOFx2aUIgyZJQO8y4QmBc6rdxuO
-+BpgH30st8GRzPuej4ECQAsLon/QgsyhkfquBMLDC1uhO027K59C/aYRlufPyHkq
-HIyrMg2pQ46h2ybEuB50Cs+xF19KwBuGafBtRjkvXdU=
------END RSA PRIVATE KEY-----
-EOF;
+        -----BEGIN RSA PRIVATE KEY-----
+        MIICXAIBAAKBgQC6lQYNOMaboSOE/c2KNl8Rwk61zoMXrEmXC926an3/jHrtj9wB
+        ndP2DY2nUyz0vpmJlcDOjDwTGs8U/C7zn7PDdZ8EuuxlAa7oNo/38YYV+5Oki93m
+        io6rGV8zLMGLLygAB1sJaJVP5W9wm0RLY776YFL4V/nekA5ZTnA4+KaIYwIDAQAB
+        AoGAJLhjgoKkA8kI1omkxAjDWRlmqD1Ga4hKy2FYd/GxbnPVVZ+0atUG/Cvarw2d
+        kWVZjkxcr8nFoPTrwHOJQgUyOXWLuIuirznoTtDKzC+4JlDsZJd8hkVohqwKfdPA
+        v4iYceN6V0YRQpsLVwKJinr5k6oHpCGs3sNffpHQzrXc24ECQQDb0JLiMm5OZoYZ
+        G3739DsYVycUmYmYJtXuUBHTIwBAaOyo0yEmeQ8Li4H5dSSWqeOO0XrfP7cQ3TOm
+        6LuSrIXDAkEA2Uv2PuteQXGSzOEuQbDbYeR0Le0drDUFJkXBM4oS3XB3wx2+umD+
+        WqpfLEIXWV3/hkuottTmlsQuuAP3Xv+o4QJAf5FyTRfbcGCLnnKYoyn4Sc36fjgE
+        5GpVaXLKhXAgq0C5Z9jvujYzhw21pqJXU6DQ0Ye8+WcuxPi7Czix8xNwpQJBAMm1
+        vexCSMivSPpuvaW1KrEAhOhtB/JndVRFxEa3kTOFx2aUIgyZJQO8y4QmBc6rdxuO
+        +BpgH30st8GRzPuej4ECQAsLon/QgsyhkfquBMLDC1uhO027K59C/aYRlufPyHkq
+        HIyrMg2pQ46h2ybEuB50Cs+xF19KwBuGafBtRjkvXdU=
+        -----END RSA PRIVATE KEY-----
+        EOF;
 
     /**
      * @dataProvider getSignData
@@ -94,7 +94,7 @@
 
     public function testSignWithUnsupportedAlgorithm()
     {
-        $message = $this->createMock(Message::class);
+        $message = $this->createStub(Message::class);
 
         $signer = new DkimSigner(self::$pk, 'testdkim.symfony.net', 'sf', [
             'algorithm' => 'unsupported-value',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeEncrypterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeEncrypterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeEncrypterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeEncrypterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -103,7 +103,7 @@
                 'file://'.$this->samplesDir.'encrypt.crt',
                 'file://'.$this->samplesDir.'encrypt.key'
             ),
-            sprintf('Decryption of the message failed. Internal error "%s".', openssl_error_string())
+            \sprintf('Decryption of the message failed. Internal error "%s".', openssl_error_string())
         );
         $this->assertEquals(str_replace("\r", '', $originalMessage->toString()), str_replace("\r", '', file_get_contents($outputFile)));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeSignerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeSignerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeSignerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeSignerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -158,12 +158,12 @@
         file_put_contents($messageFile, $messageString);
 
         $this->assertMessageHeaders($message, $originalMessage);
-        $this->assertTrue(openssl_pkcs7_verify($messageFile, 0, $this->generateTmpFilename(), [$this->samplesDir.'ca.crt']), sprintf('Verification of the message %s failed. Internal error "%s".', $messageFile, openssl_error_string()));
+        $this->assertTrue(openssl_pkcs7_verify($messageFile, 0, $this->generateTmpFilename(), [$this->samplesDir.'ca.crt']), \sprintf('Verification of the message %s failed. Internal error "%s".', $messageFile, openssl_error_string()));
 
         if (!str_contains($messageString, 'enveloped-data')) {
             // Tamper to ensure it actually verified
             file_put_contents($messageFile, str_replace('Content-Transfer-Encoding: ', 'Content-Transfer-Encoding:  ', $messageString));
-            $this->assertFalse(openssl_pkcs7_verify($messageFile, 0, $this->generateTmpFilename(), [$this->samplesDir.'ca.crt']), sprintf('Verification of the message failed. Internal error "%s".', openssl_error_string()));
+            $this->assertFalse(openssl_pkcs7_verify($messageFile, 0, $this->generateTmpFilename(), [$this->samplesDir.'ca.crt']), \sprintf('Verification of the message failed. Internal error "%s".', openssl_error_string()));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Crypto/SMimeTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,20 +20,30 @@
 {
     protected string $samplesDir;
 
+    private array $tmpFiles = [];
+
     protected function setUp(): void
     {
         $this->samplesDir = str_replace('\\', '/', realpath(__DIR__.'/../').'/_data/');
     }
 
+    protected function tearDown(): void
+    {
+        foreach ($this->tmpFiles as $file) {
+            @unlink($file);
+        }
+        $this->tmpFiles = [];
+    }
+
     protected function generateTmpFilename(): string
     {
-        return stream_get_meta_data(tmpfile())['uri'];
+        return $this->tmpFiles[] = tempnam(sys_get_temp_dir(), 'sf_mime_');
     }
 
     protected function normalizeFilePath(string $path): string
     {
         if (!file_exists($path)) {
-            throw new RuntimeException(sprintf('File does not exist: "%s"', $path));
+            throw new RuntimeException(\sprintf('File does not exist: "%s"', $path));
         }
 
         return str_replace('\\', '/', realpath($path));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/DependencyInjection/AddMimeTypeGuesserPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/DependencyInjection/AddMimeTypeGuesserPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/DependencyInjection/AddMimeTypeGuesserPassTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/DependencyInjection/AddMimeTypeGuesserPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,4 +39,28 @@
         $this->assertEquals('registerGuesser', $calls[0][0]);
         $this->assertEquals(new Reference('some_mime_type_guesser'), $calls[0][1][0]);
     }
+
+    public function testMimeTypesIsMadePublicWhenGuessersAreTagged()
+    {
+        $container = new ContainerBuilder();
+
+        $guesser = new Definition(FileinfoMimeTypeGuesser::class);
+        $guesser->addTag('mime.mime_type_guesser');
+        $container->setDefinition('some_mime_type_guesser', $guesser);
+        $container->register('mime_types', MimeTypes::class);
+
+        (new AddMimeTypeGuesserPass())->process($container);
+
+        $this->assertTrue($container->getDefinition('mime_types')->isPublic());
+    }
+
+    public function testMimeTypesStaysPrivateWhenNoGuesserIsTagged()
+    {
+        $container = new ContainerBuilder();
+        $container->register('mime_types', MimeTypes::class);
+
+        (new AddMimeTypeGuesserPass())->process($container);
+
+        $this->assertFalse($container->getDefinition('mime_types')->isPublic());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/EmailTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/EmailTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/EmailTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/EmailTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -464,6 +464,24 @@
         $this->assertStringMatchesFormat('<div background=3D"cid:%s@symfony"></div>', $parts[0]->bodyToString());
     }
 
+    public function testInlinedPartReferencedViaCidPreservesFilename()
+    {
+        $image = fopen(__DIR__.'/Fixtures/mimetypes/test.gif', 'r');
+        $e = (new Email())->from('me@example.com')->to('you@example.com');
+        $e->html('html content <img src="cid:logo-image.gif">');
+        $e->addPart((new DataPart($image, 'logo-image.gif'))->asInline());
+
+        $body = $e->getBody();
+        $this->assertInstanceOf(RelatedPart::class, $body);
+        $parts = $body->getParts();
+        $inlinePart = $parts[1];
+
+        $this->assertSame('logo-image.gif', $inlinePart->getName());
+        $headers = $inlinePart->getPreparedHeaders()->toString();
+        $this->assertStringContainsString('name=logo-image.gif', $headers);
+        $this->assertStringNotContainsString('name='.$inlinePart->getContentId(), $headers);
+    }
+
     private function generateSomeParts(): array
     {
         $text = new TextPart('text content');
@@ -477,7 +495,7 @@
     public function testAttachments()
     {
         // inline part
-        $contents = file_get_contents($name = __DIR__.'/Fixtures/mimetypes/test', 'r');
+        $contents = file_get_contents($name = __DIR__.'/Fixtures/mimetypes/test');
         $att = new DataPart($file = fopen($name, 'r'), 'test');
         $inline = (new DataPart($contents, 'test'))->asInline();
         $e = new Email();
@@ -491,8 +509,8 @@
         $e = new Email();
         $e->addPart(new DataPart(new File($name)));
         $e->addPart((new DataPart(new File($name)))->asInline());
-        $this->assertEquals([$att->bodyToString(), $inline->bodyToString()], array_map(fn (DataPart $a) => $a->bodyToString(), $e->getAttachments()));
-        $this->assertEquals([$att->getPreparedHeaders(), $inline->getPreparedHeaders()], array_map(fn (DataPart $a) => $a->getPreparedHeaders(), $e->getAttachments()));
+        $this->assertEquals([$att->bodyToString(), $inline->bodyToString()], array_map(static fn (DataPart $a) => $a->bodyToString(), $e->getAttachments()));
+        $this->assertEquals([$att->getPreparedHeaders(), $inline->getPreparedHeaders()], array_map(static fn (DataPart $a) => $a->getPreparedHeaders(), $e->getAttachments()));
     }
 
     public function testSerialize()
@@ -529,44 +547,44 @@
         $expected = clone $e;
 
         $expectedJson = <<<EOF
-{
-    "text": "Text content",
-    "textCharset": "utf-8",
-    "html": "HTML <b>content</b>",
-    "htmlCharset": "utf-8",
-    "attachments": [
-        {
-            "filename": "test.txt",
-            "mediaType": "application",
-            "body": "Some Text file",
-            "charset": null,
-            "subtype": "octet-stream",
-            "disposition": "attachment",
-            "name": "test.txt",
-            "encoding": "base64",
-            "headers": [],
-            "class": "Symfony\\\Component\\\Mime\\\Part\\\DataPart"
-        }
-    ],
-    "headers": {
-        "to": [
             {
-                "addresses": [
+                "text": "Text content",
+                "textCharset": "utf-8",
+                "html": "HTML <b>content</b>",
+                "htmlCharset": "utf-8",
+                "attachments": [
                     {
-                        "address": "you@example.com",
-                        "name": ""
+                        "filename": "test.txt",
+                        "mediaType": "application",
+                        "body": "Some Text file",
+                        "charset": null,
+                        "subtype": "octet-stream",
+                        "disposition": "attachment",
+                        "name": "test.txt",
+                        "encoding": "base64",
+                        "headers": [],
+                        "class": "Symfony\\\Component\\\Mime\\\Part\\\DataPart"
                     }
                 ],
-                "name": "To",
-                "lineLength": 76,
-                "lang": null,
-                "charset": "utf-8"
+                "headers": {
+                    "to": [
+                        {
+                            "addresses": [
+                                {
+                                    "address": "you@example.com",
+                                    "name": ""
+                                }
+                            ],
+                            "name": "To",
+                            "lineLength": 76,
+                            "lang": null,
+                            "charset": "utf-8"
+                        }
+                    ]
+                },
+                "body": null
             }
-        ]
-    },
-    "body": null
-}
-EOF;
+            EOF;
 
         $extractor = new PhpDocExtractor();
         $propertyNormalizer = new PropertyNormalizer(null, null, $extractor);
@@ -618,7 +636,7 @@
         $email->html(null);
         $this->assertNull($email->getHtmlBody());
 
-        $contents = file_get_contents(__DIR__.'/Fixtures/mimetypes/test', 'r');
+        $contents = file_get_contents(__DIR__.'/Fixtures/mimetypes/test');
         $email->html($contents);
         $this->assertSame($contents, $email->getHtmlBody());
     }
@@ -641,7 +659,7 @@
         $email->text(null);
         $this->assertNull($email->getTextBody());
 
-        $contents = file_get_contents(__DIR__.'/Fixtures/mimetypes/test', 'r');
+        $contents = file_get_contents(__DIR__.'/Fixtures/mimetypes/test');
         $email->text($contents);
         $this->assertSame($contents, $email->getTextBody());
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpContentEncoderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpContentEncoderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpContentEncoderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpContentEncoderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
     {
         $encoder = new QpContentEncoder();
 
-        $this->assertSame('message=09', $encoder->encodeString('message'.chr(0x09)));
-        $this->assertSame('message=20', $encoder->encodeString('message'.chr(0x20)));
+        $this->assertSame('message=09', $encoder->encodeString('message'.\chr(0x09)));
+        $this->assertSame('message=20', $encoder->encodeString('message'.\chr(0x20)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpEncoderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpEncoderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpEncoderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpEncoderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -169,7 +169,7 @@
         $encoder = new QpEncoder();
         foreach (range(0, 32) as $ordinal) {
             $char = \chr($ordinal);
-            $this->assertEquals(sprintf('=%02X', $ordinal), $encoder->encodeString($char));
+            $this->assertEquals(\sprintf('=%02X', $ordinal), $encoder->encodeString($char));
         }
     }
 
@@ -185,7 +185,7 @@
         // According to Rule (1 & 2)
         $encoder = new QpEncoder();
         foreach (range(127, 255) as $ordinal) {
-            $this->assertSame(sprintf('=%02X', $ordinal), $encoder->encodeString(\chr($ordinal), 'iso-8859-1'));
+            $this->assertSame(\sprintf('=%02X', $ordinal), $encoder->encodeString(\chr($ordinal), 'iso-8859-1'));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpMimeHeaderEncoderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpMimeHeaderEncoderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpMimeHeaderEncoderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Encoder/QpMimeHeaderEncoderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -105,7 +105,7 @@
                 // special case
                 $this->assertEquals('_', $encodedChar, 'Space character should be replaced.');
             } else {
-                $this->assertEquals(sprintf('=%02X', $byte), $encodedChar, 'Byte '.$byte.' should be encoded.');
+                $this->assertEquals(\sprintf('=%02X', $byte), $encodedChar, 'Byte '.$byte.' should be encoded.');
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Header/UnstructuredHeaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Header/UnstructuredHeaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Header/UnstructuredHeaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Header/UnstructuredHeaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -114,7 +114,7 @@
         $nonPrintableBytes = array_merge(range(0x00, 0x08), range(0x10, 0x19), [0x7F]);
         foreach ($nonPrintableBytes as $byte) {
             $char = pack('C', $byte);
-            $encodedChar = sprintf('=%02X', $byte);
+            $encodedChar = \sprintf('=%02X', $byte);
             $header = new UnstructuredHeader('X-A', $char);
             $header->setCharset('iso-8859-1');
             $this->assertEquals('X-A: =?'.$header->getCharset().'?Q?'.$encodedChar.'?=', $header->toString(), 'Non-printable ascii should be encoded');
@@ -125,7 +125,7 @@
     {
         foreach (range(0x80, 0xFF) as $byte) {
             $char = pack('C', $byte);
-            $encodedChar = sprintf('=%02X', $byte);
+            $encodedChar = \sprintf('=%02X', $byte);
             $header = new UnstructuredHeader('X-A', $char);
             $header->setCharset('iso-8859-1');
             $this->assertEquals('X-A: =?'.$header->getCharset().'?Q?'.$encodedChar.'?=', $header->toString(), '8-bit octets should be encoded');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/MessageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/MessageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/MessageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/MessageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -149,30 +149,30 @@
         $message = new Message();
         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']);
         $expected = <<<EOF
-From: fabien@symfony.com
-MIME-Version: 1.0
-Date: %s
-Message-ID: <%s@symfony.com>
-Content-Type: text/plain; charset=utf-8
-Content-Transfer-Encoding: quoted-printable
+            From: fabien@symfony.com
+            MIME-Version: 1.0
+            Date: %s
+            Message-ID: <%s@symfony.com>
+            Content-Type: text/plain; charset=utf-8
+            Content-Transfer-Encoding: quoted-printable
 
 
-EOF;
+            EOF;
         $this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", $message->toString()));
         $this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", implode('', iterator_to_array($message->toIterable(), false))));
 
         $message = new Message(null, new TextPart('content'));
         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']);
         $expected = <<<EOF
-From: fabien@symfony.com
-MIME-Version: 1.0
-Date: %s
-Message-ID: <%s@symfony.com>
-Content-Type: text/plain; charset=utf-8
-Content-Transfer-Encoding: quoted-printable
+            From: fabien@symfony.com
+            MIME-Version: 1.0
+            Date: %s
+            Message-ID: <%s@symfony.com>
+            Content-Type: text/plain; charset=utf-8
+            Content-Transfer-Encoding: quoted-printable
 
-content
-EOF;
+            content
+            EOF;
         $this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", $message->toString()));
         $this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", implode('', iterator_to_array($message->toIterable(), false))));
     }
@@ -192,81 +192,81 @@
         $expected = clone $e;
 
         $expectedJson = <<<EOF
-{
-    "headers": {
-        "to": [
             {
-                "addresses": [
-                    {
-                        "address": "you@example.com",
-                        "name": ""
-                    }
-                ],
-                "name": "To",
-                "lineLength": 76,
-                "lang": null,
-                "charset": "utf-8"
-            }
-        ]
-    },
-    "body": {
-        "boundary": null,
-        "parts": [
-            {
-                "boundary": null,
-                "parts": [
-                    {
-                        "body": "Text content",
-                        "charset": "utf-8",
-                        "subtype": "plain",
-                        "disposition": null,
-                        "name": null,
-                        "encoding": "quoted-printable",%A
-                        "headers": [],
-                        "class": "Symfony\\\\Component\\\\Mime\\\\Part\\\TextPart"
+                "headers": {
+                    "to": [
+                        {
+                            "addresses": [
+                                {
+                                    "address": "you@example.com",
+                                    "name": ""
+                                }
+                            ],
+                            "name": "To",
+                            "lineLength": 76,
+                            "lang": null,
+                            "charset": "utf-8"
+                        }
+                    ]
+                },
+                "body": {
+                    "boundary": null,
+                    "parts": [
+                        {
+                            "boundary": null,
+                            "parts": [
+                                {
+                                    "body": "Text content",
+                                    "charset": "utf-8",
+                                    "subtype": "plain",
+                                    "disposition": null,
+                                    "name": null,
+                                    "encoding": "quoted-printable",%A
+                                    "headers": [],
+                                    "class": "Symfony\\\\Component\\\\Mime\\\\Part\\\TextPart"
+                                },
+                                {
+                                    "body": "HTML content",
+                                    "charset": "utf-8",
+                                    "subtype": "html",
+                                    "disposition": null,
+                                    "name": null,
+                                    "encoding": "quoted-printable",%A
+                                    "headers": [],
+                                    "class": "Symfony\\\\Component\\\\Mime\\\\Part\\\\TextPart"
+                                }
+                            ],
+                            "headers": [],
+                            "class": "Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\AlternativePart"
+                        },
+                        {
+                            "filename": "text.txt",
+                            "mediaType": "application",%A
+                            "body": "text data",
+                            "charset": null,
+                            "subtype": "octet-stream",
+                            "disposition": "attachment",
+                            "name": "text.txt",
+                            "encoding": "base64",%A
+                            "headers": [],
+                            "class": "Symfony\\\\Component\\\\Mime\\\\Part\\\\DataPart"
+                        }
+                    ],
+                    "headers": {
+                        "foo": [
+                            {
+                                "value": "bar",
+                                "name": "foo",
+                                "lineLength": 76,
+                                "lang": null,
+                                "charset": "utf-8"
+                            }
+                        ]
                     },
-                    {
-                        "body": "HTML content",
-                        "charset": "utf-8",
-                        "subtype": "html",
-                        "disposition": null,
-                        "name": null,
-                        "encoding": "quoted-printable",%A
-                        "headers": [],
-                        "class": "Symfony\\\\Component\\\\Mime\\\\Part\\\\TextPart"
-                    }
-                ],
-                "headers": [],
-                "class": "Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\AlternativePart"
-            },
-            {
-                "filename": "text.txt",
-                "mediaType": "application",%A
-                "body": "text data",
-                "charset": null,
-                "subtype": "octet-stream",
-                "disposition": "attachment",
-                "name": "text.txt",
-                "encoding": "base64",%A
-                "headers": [],
-                "class": "Symfony\\\\Component\\\\Mime\\\\Part\\\\DataPart"
-            }
-        ],
-        "headers": {
-            "foo": [
-                {
-                    "value": "bar",
-                    "name": "foo",
-                    "lineLength": 76,
-                    "lang": null,
-                    "charset": "utf-8"
+                    "class": "Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\MixedPart"
                 }
-            ]
-        },
-        "class": "Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\MixedPart"
-    }
-}
-EOF;
+            }
+            EOF;
 
         $extractor = new PhpDocExtractor();
         $propertyNormalizer = new PropertyNormalizer(null, null, $extractor);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/MimeTypesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/MimeTypesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/MimeTypesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/MimeTypesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
     public function testUnsupportedGuesser()
     {
         $guesser = $this->getGuesser();
-        $guesser->registerGuesser(new class() implements MimeTypeGuesserInterface {
+        $guesser->registerGuesser(new class implements MimeTypeGuesserInterface {
             public function isGuesserSupported(): bool
             {
                 return false;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -222,4 +222,16 @@
         $expected = clone $p;
         $this->assertEquals($expected->toString(), unserialize(serialize($p))->toString());
     }
+
+    public function testSerializePreservesContentId()
+    {
+        $p = new DataPart('content', 'image.jpg', 'image/jpeg');
+        $p->asInline();
+        $cid = $p->getContentId();
+
+        $unserialized = unserialize(serialize($p));
+
+        $this->assertTrue($unserialized->hasContentId());
+        $this->assertSame($cid, $unserialized->getContentId());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/RawMessageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/RawMessageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Mime/Tests/RawMessageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Mime/Tests/RawMessageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -82,8 +82,8 @@
 
     public function testToIterableOnResourceRewindsAndYieldsLines()
     {
-        $handle = \fopen('php://memory', 'r+');
-        \fwrite($handle, "line1\nline2\nline3\n");
+        $handle = fopen('php://memory', 'r+');
+        fwrite($handle, "line1\nline2\nline3\n");
 
         $message = new RawMessage($handle);
         $this->assertSame("line1\nline2\nline3\n", implode('', iterator_to_array($message->toIterable())));
@@ -105,7 +105,11 @@
             'string' => ['some string', true],
             'traversable' => [new \ArrayObject(['some', ' ', 'string']), true],
             'array' => [['some', ' ', 'string'], true],
-            'generator' => [(function () { yield 'some'; yield ' '; yield 'string'; })(), false],
+            'generator' => [(static function () {
+                yield 'some';
+                yield ' ';
+                yield 'string';
+            })(), false],
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/AllMySms/AllMySmsTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/AllMySms/AllMySmsTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/AllMySms/AllMySmsTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/AllMySms/AllMySmsTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
     public function __toString(): string
     {
-        return sprintf('allmysms://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
+        return \sprintf('allmysms://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -62,7 +62,7 @@
         $options['to'] = $message->getPhone();
         $options['text'] = $message->getSubject();
 
-        $endpoint = sprintf('https://%s/sms/send/', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/sms/send/', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'auth_basic' => [$this->login, $this->apiKey],
             'json' => array_filter($options),
@@ -77,13 +77,13 @@
         if (201 !== $statusCode) {
             $error = $response->toArray(false);
 
-            throw new TransportException(sprintf('Unable to send the SMS: "%s" (%s).', $error['description'], $error['code']), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: "%s" (%s).', $error['description'], $error['code']), $response);
         }
 
         $success = $response->toArray(false);
 
         if (false === isset($success['smsId'])) {
-            throw new TransportException(sprintf('Unable to send the SMS: "%s" (%s).', $success['description'], $success['code']), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: "%s" (%s).', $success['description'], $success['code']), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/AmazonSns/AmazonSnsTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/AmazonSns/AmazonSnsTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/AmazonSns/AmazonSnsTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/AmazonSns/AmazonSnsTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
     {
         $configuration = $this->snsClient->getConfiguration();
 
-        return sprintf('sns://%s?region=%s', $this->getEndpoint(), $configuration->get('region'));
+        return \sprintf('sns://%s?region=%s', $this->getEndpoint(), $configuration->get('region'));
     }
 
     public function supports(MessageInterface $message): bool
@@ -51,11 +51,11 @@
     protected function doSend(MessageInterface $message): SentMessage
     {
         if (!$this->supports($message)) {
-            throw new UnsupportedMessageTypeException(__CLASS__, sprintf('"%s" or "%s"', SmsMessage::class, ChatMessage::class), $message);
+            throw new UnsupportedMessageTypeException(__CLASS__, \sprintf('"%s" or "%s"', SmsMessage::class, ChatMessage::class), $message);
         }
 
         if ($message instanceof SmsMessage && '' !== $message->getFrom()) {
-            throw new InvalidArgumentException(sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
+            throw new InvalidArgumentException(\sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
         }
 
         if ($message instanceof ChatMessage && $message->getOptions() instanceof AmazonSnsOptions) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Bandwidth/BandwidthTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Bandwidth/BandwidthTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Bandwidth/BandwidthTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Bandwidth/BandwidthTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,14 +37,14 @@
         private readonly string $applicationId,
         private readonly ?string $priority,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
 
     public function __toString(): string
     {
-        return sprintf('bandwidth://%s?from=%s&account_id=%s&application_id=%s%s', $this->getEndpoint(), $this->from, $this->accountId, $this->applicationId, null !== $this->priority ? '&priority='.$this->priority : '');
+        return \sprintf('bandwidth://%s?from=%s&account_id=%s&application_id=%s%s', $this->getEndpoint(), $this->from, $this->accountId, $this->applicationId, null !== $this->priority ? '&priority='.$this->priority : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -69,13 +69,13 @@
         $options['priority'] ??= $this->priority;
 
         if (!preg_match('/^\+[1-9]\d{1,14}$/', $options['from'])) {
-            throw new InvalidArgumentException(sprintf('The "From" number "%s" is not a valid phone number. The number must be in E.164 format.', $options['from']));
+            throw new InvalidArgumentException(\sprintf('The "From" number "%s" is not a valid phone number. The number must be in E.164 format.', $options['from']));
         }
 
         if (!preg_match('/^\+[1-9]\d{1,14}$/', $options['to'][0])) {
-            throw new InvalidArgumentException(sprintf('The "To" number "%s" is not a valid phone number. The number must be in E.164 format.', $options['to'][0]));
+            throw new InvalidArgumentException(\sprintf('The "To" number "%s" is not a valid phone number. The number must be in E.164 format.', $options['to'][0]));
         }
-        $endpoint = sprintf('https://%s/api/v2/users/%s/messages', $this->getEndpoint(), $options['accountId']);
+        $endpoint = \sprintf('https://%s/api/v2/users/%s/messages', $this->getEndpoint(), $options['accountId']);
         unset($options['accountId']);
 
         $response = $this->client->request('POST', $endpoint, [
@@ -91,7 +91,7 @@
 
         if (202 !== $statusCode) {
             $error = $response->toArray(false);
-            throw new TransportException(sprintf('Unable to send the SMS - "%s" - "%s".', $error['type'], $error['description']), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS - "%s" - "%s".', $error['type'], $error['description']), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Bandwidth/Tests/BandwidthTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Bandwidth/Tests/BandwidthTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Bandwidth/Tests/BandwidthTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Bandwidth/Tests/BandwidthTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Bandwidth\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Bandwidth\BandwidthOptions;
 use Symfony\Component\Notifier\Bridge\Bandwidth\BandwidthTransport;
 use Symfony\Component\Notifier\Exception\InvalidArgumentException;
@@ -49,7 +50,7 @@
         $transport = $this->createTransport(null, $from);
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "From" number "%s" is not a valid phone number. The number must be in E.164 format.', $from));
+        $this->expectExceptionMessage(\sprintf('The "From" number "%s" is not a valid phone number. The number must be in E.164 format.', $from));
 
         $transport->send(new SmsMessage('+33612345678', 'Hello!'));
     }
@@ -60,14 +61,11 @@
     public function testNoInvalidArgumentExceptionIsThrownIfFromIsValid(string $from)
     {
         $message = new SmsMessage('+33612345678', 'Hello!');
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects(self::exactly(2))->method('getStatusCode')->willReturn(202);
-        $response->expects(self::once())->method('getContent')->willReturn(json_encode(['id' => 'foo']));
-        $client = new MockHttpClient(function (string $method, string $url) use ($response): ResponseInterface {
+        $client = new MockHttpClient(static function (string $method, string $url): ResponseInterface {
             self::assertSame('POST', $method);
             self::assertSame('https://messaging.bandwidth.com/api/v2/users/account_id/messages', $url);
 
-            return $response;
+            return new MockResponse(json_encode(['id' => 'foo']), ['http_code' => 202]);
         });
         $transport = $this->createTransport($client, $from);
         $sentMessage = $transport->send($message);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Brevo/BrevoTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Brevo/BrevoTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Brevo/BrevoTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Brevo/BrevoTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,14 +32,14 @@
         #[\SensitiveParameter] private readonly string $apiKey,
         private readonly string $sender,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
 
     public function __toString(): string
     {
-        return sprintf('brevo://%s?sender=%s', $this->getEndpoint(), $this->sender);
+        return \sprintf('brevo://%s?sender=%s', $this->getEndpoint(), $this->sender);
     }
 
     public function supports(MessageInterface $message): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Brevo/Tests/BrevoTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Brevo/Tests/BrevoTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Brevo/Tests/BrevoTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Brevo/Tests/BrevoTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Brevo\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Brevo\BrevoTransport;
 use Symfony\Component\Notifier\Exception\TransportException;
 use Symfony\Component\Notifier\Message\ChatMessage;
@@ -46,15 +47,7 @@
 
     public function testSendWithErrorResponseThrowsTransportException()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['code' => 400, 'message' => 'bad request']));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(static fn (): ResponseInterface => new MockResponse(json_encode(['code' => 400, 'message' => 'bad request']), ['http_code' => 400]));
 
         $transport = self::createTransport($client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/ChatworkMessageBodyBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/ChatworkMessageBodyBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/ChatworkMessageBodyBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/ChatworkMessageBodyBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
     {
         $content = '';
         foreach ($this->to as $to) {
-            $content .= sprintf("[To:%s]\n", $to);
+            $content .= \sprintf("[To:%s]\n", $to);
         }
         $content .= $this->body;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/ChatworkTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/ChatworkTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/ChatworkTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/ChatworkTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
 
     public function __toString(): string
     {
-        return sprintf('chatwork://%s?room_id=%s', $this->getEndpoint(), $this->roomId);
+        return \sprintf('chatwork://%s?room_id=%s', $this->getEndpoint(), $this->roomId);
     }
 
     public function supports(MessageInterface $message): bool
@@ -68,7 +68,7 @@
             ->body($message->getSubject())
             ->getMessageBody();
 
-        $endpoint = sprintf('https://%s/v2/rooms/%s/messages', $this->getEndpoint(), $this->roomId);
+        $endpoint = \sprintf('https://%s/v2/rooms/%s/messages', $this->getEndpoint(), $this->roomId);
         $response = $this->client->request('POST', $endpoint, [
             'body' => $messageBody,
             'headers' => [
@@ -86,7 +86,7 @@
             $originalContent = $message->getSubject();
             $result = $response->toArray(false);
             $errors = $result['errors'];
-            throw new TransportException(sprintf('Unable to post the Chatwork message: "%s" (%d: %s).', $originalContent, $statusCode, implode(', ', $errors)), $response);
+            throw new TransportException(\sprintf('Unable to post the Chatwork message: "%s" (%d: %s).', $originalContent, $statusCode, implode(', ', $errors)), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/Tests/ChatworkMessageBodyBuilderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/Tests/ChatworkMessageBodyBuilderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/Tests/ChatworkMessageBodyBuilderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/Tests/ChatworkMessageBodyBuilderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,10 +52,10 @@
         ;
 
         $expectedBody = <<<EOT
-[To:abc]
-[To:def]
-test body
-EOT;
+            [To:abc]
+            [To:def]
+            test body
+            EOT;
         $expected = [
             'body' => $expectedBody,
             'self_unread' => true,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/Tests/ChatworkTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/Tests/ChatworkTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/Tests/ChatworkTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Chatwork/Tests/ChatworkTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Chatwork\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Chatwork\ChatworkTransport;
 use Symfony\Component\Notifier\Exception\TransportException;
 use Symfony\Component\Notifier\Message\ChatMessage;
@@ -20,7 +21,6 @@
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Component\Notifier\Transport\TransportInterface;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 class ChatworkTransportTest extends TransportTestCase
 {
@@ -47,15 +47,7 @@
 
     public function testWithErrorResponseThrows()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['errors' => ['first error', 'second error']]));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['errors' => ['first error', 'second error']]), ['http_code' => 400]));
 
         $transport = $this->createTransport($client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Clickatell/ClickatellTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Clickatell/ClickatellTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Clickatell/ClickatellTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Clickatell/ClickatellTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,10 +42,10 @@
     public function __toString(): string
     {
         if (null === $this->from) {
-            return sprintf('clickatell://%s', $this->getEndpoint());
+            return \sprintf('clickatell://%s', $this->getEndpoint());
         }
 
-        return sprintf('clickatell://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
+        return \sprintf('clickatell://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -59,7 +59,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/rest/message', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/rest/message', $this->getEndpoint());
 
         $options = [];
         $options['from'] = $message->getFrom() ?: $this->from;
@@ -95,6 +95,6 @@
         $errorInfo = $content['error']['description'] ?? '';
         $errorDocumentation = $content['error']['documentation'] ?? '';
 
-        throw new TransportException(sprintf('Unable to send SMS with Clickatell: Error code %d with message "%s" (%s).', $errorCode, $errorInfo, $errorDocumentation), $response);
+        throw new TransportException(\sprintf('Unable to send SMS with Clickatell: Error code %d with message "%s" (%s).', $errorCode, $errorInfo, $errorDocumentation), $response);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Clickatell/Tests/ClickatellTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Clickatell/Tests/ClickatellTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Clickatell/Tests/ClickatellTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Clickatell/Tests/ClickatellTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Clickatell\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Clickatell\ClickatellTransport;
 use Symfony\Component\Notifier\Exception\LogicException;
 use Symfony\Component\Notifier\Exception\TransportException;
@@ -21,7 +22,6 @@
 use Symfony\Component\Notifier\Test\TransportTestCase;
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 final class ClickatellTransportTest extends TransportTestCase
 {
@@ -53,26 +53,18 @@
 
         $this->expectException(LogicException::class);
 
-        $transport->send($this->createMock(MessageInterface::class));
+        $transport->send($this->createStub(MessageInterface::class));
     }
 
     public function testExceptionIsThrownWhenHttpSendFailed()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(500);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode([
-                'error' => [
-                    'code' => 105,
-                    'description' => 'Invalid Account Reference EX0000000',
-                    'documentation' => 'https://documentation-page',
-                ],
-            ]));
-
-        $client = new MockHttpClient($response);
+        $client = new MockHttpClient(new MockResponse(json_encode([
+            'error' => [
+                'code' => 105,
+                'description' => 'Invalid Account Reference EX0000000',
+                'documentation' => 'https://documentation-page',
+            ],
+        ]), ['http_code' => 500]));
 
         $transport = self::createTransport($client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/ClickSend/ClickSendTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/ClickSend/ClickSendTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/ClickSend/ClickSendTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/ClickSend/ClickSendTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
         private readonly ?string $listId = null,
         private readonly ?string $fromEmail = null,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
@@ -51,7 +51,7 @@
             'from_email' => $this->fromEmail,
         ]);
 
-        return sprintf('clicksend://%s%s', $this->getEndpoint(), $query ? '?'.http_build_query($query, '', '&') : '');
+        return \sprintf('clicksend://%s%s', $this->getEndpoint(), $query ? '?'.http_build_query($query, '', '&') : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -68,26 +68,26 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/v3/sms/send', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/v3/sms/send', $this->getEndpoint());
 
         $options = $message->getOptions()?->toArray() ?? [];
         $options['body'] = $message->getSubject();
         $options['from'] = $message->getFrom() ?: $this->from;
         $options['source'] ??= $this->source;
         $options['list_id'] ??= $this->listId;
-        $options['from_email'] ?? $this->fromEmail;
+        $options['from_email'] ??= $this->fromEmail;
 
         if (isset($options['from']) && !preg_match('/^[a-zA-Z0-9\s]{3,11}$/', $options['from']) && !preg_match('/^\+[1-9]\d{1,14}$/', $options['from'])) {
-            throw new InvalidArgumentException(sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $options['from']));
+            throw new InvalidArgumentException(\sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $options['from']));
         }
 
-        if ($options['list_id'] ?? false) {
+        if (!$options['list_id']) {
             $options['to'] = $message->getPhone();
         }
 
         $response = $this->client->request('POST', $endpoint, [
             'auth_basic' => [$this->apiUsername, $this->apiKey],
-            'json' => array_filter($options),
+            'json' => ['messages' => [array_filter($options)]],
         ]);
 
         try {
@@ -98,7 +98,7 @@
 
         if (200 !== $statusCode) {
             $error = $response->getContent(false);
-            throw new TransportException(sprintf('Unable to send the SMS - "%s".', $error ?: 'unknown failure'), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS - "%s".', $error ?: 'unknown failure'), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/ClickSend/Tests/ClickSendTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/ClickSend/Tests/ClickSendTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/ClickSend/Tests/ClickSendTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/ClickSend/Tests/ClickSendTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\ClickSend\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\ClickSend\ClickSendOptions;
 use Symfony\Component\Notifier\Bridge\ClickSend\ClickSendTransport;
 use Symfony\Component\Notifier\Exception\InvalidArgumentException;
@@ -24,7 +25,7 @@
 
 final class ClickSendTransportTest extends TransportTestCase
 {
-    public static function createTransport(?HttpClientInterface $client = null, string $from = 'test_from', string $source = 'test_source', int $listId = 99, string $fromEmail = 'foo@bar.com'): ClickSendTransport
+    public static function createTransport(?HttpClientInterface $client = null, ?string $from = 'test_from', ?string $source = 'test_source', ?int $listId = 99, ?string $fromEmail = 'foo@bar.com'): ClickSendTransport
     {
         return new ClickSendTransport('test_username', 'test_key', $from, $source, $listId, $fromEmail, $client ?? new MockHttpClient());
     }
@@ -49,7 +50,7 @@
         $transport = $this->createTransport(null, $from);
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
+        $this->expectExceptionMessage(\sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
 
         $transport->send(new SmsMessage('+33612345678', 'Hello!'));
     }
@@ -60,19 +61,44 @@
     public function testNoInvalidArgumentExceptionIsThrownIfFromIsValid(string $from)
     {
         $message = new SmsMessage('+33612345678', 'Hello!');
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects(self::exactly(2))->method('getStatusCode')->willReturn(200);
-        $response->expects(self::once())->method('getContent')->willReturn('');
-        $client = new MockHttpClient(function (string $method, string $url) use ($response): ResponseInterface {
+        $client = new MockHttpClient(static function (string $method, string $url, array $options): ResponseInterface {
             self::assertSame('POST', $method);
             self::assertSame('https://rest.clicksend.com/v3/sms/send', $url);
 
-            return $response;
+            $body = json_decode($options['body'], true);
+            self::assertIsArray($body);
+            self::assertArrayHasKey('messages', $body);
+            $message = reset($body['messages']);
+            self::assertArrayHasKey('from_email', $message);
+            self::assertArrayHasKey('list_id', $message);
+            self::assertArrayNotHasKey('to', $message);
+
+            return new MockResponse('');
         });
         $transport = $this->createTransport($client, $from);
         $transport->send($message);
     }
 
+    public function testNoInvalidArgumentExceptionIsThrownIfFromIsValidWithoutOptionalParameters()
+    {
+        $message = new SmsMessage('+33612345678', 'Hello!');
+        $client = new MockHttpClient(static function (string $method, string $url, array $options): ResponseInterface {
+            self::assertSame('POST', $method);
+            self::assertSame('https://rest.clicksend.com/v3/sms/send', $url);
+
+            $body = json_decode($options['body'], true);
+            self::assertIsArray($body);
+            self::assertArrayHasKey('messages', $body);
+            $message = reset($body['messages']);
+            self::assertArrayNotHasKey('list_id', $message);
+            self::assertArrayHasKey('to', $message);
+
+            return new MockResponse('');
+        });
+        $transport = $this->createTransport($client, null, null, null, null);
+        $transport->send($message);
+    }
+
     public static function toStringProvider(): iterable
     {
         yield ['clicksend://rest.clicksend.com?from=test_from&source=test_source&list_id=99&from_email=foo%40bar.com', self::createTransport()];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/ContactEveryone/ContactEveryoneTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/ContactEveryone/ContactEveryoneTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/ContactEveryone/ContactEveryoneTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/ContactEveryone/ContactEveryoneTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,14 +44,14 @@
 
     public function __toString(): string
     {
-        $dsn = sprintf('contact-everyone://%s', $this->getEndpoint());
+        $dsn = \sprintf('contact-everyone://%s', $this->getEndpoint());
 
         if ($this->diffusionName) {
-            $dsn .= sprintf('?diffusionname=%s', $this->diffusionName);
+            $dsn .= \sprintf('?diffusionname=%s', $this->diffusionName);
         }
 
         if ($this->category) {
-            $dsn .= sprintf('%scategory=%s', (null === $this->diffusionName) ? '?' : '&', $this->category);
+            $dsn .= \sprintf('%scategory=%s', (null === $this->diffusionName) ? '?' : '&', $this->category);
         }
 
         return $dsn;
@@ -69,7 +69,7 @@
         }
 
         if ('' !== $message->getFrom()) {
-            throw new InvalidArgumentException(sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
+            throw new InvalidArgumentException(\sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
         }
 
         $options = $message->getOptions()?->toArray() ?? [];
@@ -80,7 +80,7 @@
         $options['to'] = $message->getPhone();
         $options['msg'] = $message->getSubject();
 
-        $endpoint = sprintf('https://%s/api/light/diffusions/sms', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/api/light/diffusions/sms', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'query' => array_filter($options),
         ]);
@@ -93,7 +93,7 @@
 
         if (200 !== $statusCode) {
             $error = $response->toArray(false);
-            throw new TransportException(sprintf('Unable to send the Contact Everyone message with following error: "%s". For further details, please check this logId: "%s".', $error['message'], $error['logId']), $response);
+            throw new TransportException(\sprintf('Unable to send the Contact Everyone message with following error: "%s". For further details, please check this logId: "%s".', $error['message'], $error['logId']), $response);
         }
 
         $result = $response->getContent(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/ContactEveryone/Tests/ContactEveryoneTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/ContactEveryone/Tests/ContactEveryoneTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/ContactEveryone/Tests/ContactEveryoneTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/ContactEveryone/Tests/ContactEveryoneTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\ContactEveryone\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\ContactEveryone\ContactEveryoneOptions;
 use Symfony\Component\Notifier\Bridge\ContactEveryone\ContactEveryoneTransport;
 use Symfony\Component\Notifier\Exception\InvalidArgumentException;
@@ -49,9 +50,7 @@
     public function testSendSuccessfully()
     {
         $messageId = bin2hex(random_bytes(7));
-        $response = $this->createMock(ResponseInterface::class);
-        $response->method('getStatusCode')->willReturn(200);
-        $response->method('getContent')->willReturn($messageId);
+        $response = new MockResponse($messageId);
         $client = new MockHttpClient(static fn (): ResponseInterface => $response);
 
         $transport = $this->createTransport($client);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/DiscordOptions.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/DiscordOptions.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/DiscordOptions.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/DiscordOptions.php	2026-05-20 10:56:49.000000000 +0200
@@ -77,7 +77,7 @@
         }
 
         if (\count($this->options['embeds']) >= 10) {
-            throw new LogicException(sprintf('The "%s" only supports max 10 embeds.', __CLASS__));
+            throw new LogicException(\sprintf('The "%s" only supports max 10 embeds.', __CLASS__));
         }
 
         $this->options['embeds'][] = $embed->toArray();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/DiscordTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/DiscordTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/DiscordTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/DiscordTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
 
     public function __toString(): string
     {
-        return sprintf('discord://%s?webhook_id=%s', $this->getEndpoint(), $this->webhookId);
+        return \sprintf('discord://%s?webhook_id=%s', $this->getEndpoint(), $this->webhookId);
     }
 
     public function supports(MessageInterface $message): bool
@@ -66,10 +66,10 @@
         $options['content'] = $message->getSubject();
 
         if (mb_strlen($options['content'], 'UTF-8') > self::SUBJECT_LIMIT) {
-            throw new LengthException(sprintf('The subject length of a Discord message must not exceed %d characters.', self::SUBJECT_LIMIT));
+            throw new LengthException(\sprintf('The subject length of a Discord message must not exceed %d characters.', self::SUBJECT_LIMIT));
         }
 
-        $endpoint = sprintf('https://%s/api/webhooks/%s/%s', $this->getEndpoint(), $this->webhookId, $this->token);
+        $endpoint = \sprintf('https://%s/api/webhooks/%s/%s', $this->getEndpoint(), $this->webhookId, $this->token);
         $response = $this->client->request('POST', $endpoint, [
             'json' => array_filter($options),
         ]);
@@ -87,7 +87,7 @@
                 $originalContent = $message->getSubject();
                 $errorMessage = $result['message'];
                 $errorCode = $result['code'];
-                throw new TransportException(sprintf('Unable to post the Discord message: "%s" (%d: "%s").', $originalContent, $errorCode, $errorMessage), $response);
+                throw new TransportException(\sprintf('Unable to post the Discord message: "%s" (%d: "%s").', $originalContent, $errorCode, $errorMessage), $response);
             }
 
             if (400 === $statusCode) {
@@ -100,10 +100,10 @@
                 }
 
                 $errorMessage = trim($errorMessage);
-                throw new TransportException(sprintf('Unable to post the Discord message: "%s" (%s).', $originalContent, $errorMessage), $response);
+                throw new TransportException(\sprintf('Unable to post the Discord message: "%s" (%s).', $originalContent, $errorMessage), $response);
             }
 
-            throw new TransportException(sprintf('Unable to post the Discord message: "%s" (Status Code: %d).', $message->getSubject(), $statusCode), $response);
+            throw new TransportException(\sprintf('Unable to post the Discord message: "%s" (Status Code: %d).', $message->getSubject(), $statusCode), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordAuthorEmbedObject.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordAuthorEmbedObject.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordAuthorEmbedObject.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordAuthorEmbedObject.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public function name(string $name): static
     {
         if (mb_strlen($name, 'UTF-8') > self::NAME_LIMIT) {
-            throw new LengthException(sprintf('Maximum length for the name is %d characters.', self::NAME_LIMIT));
+            throw new LengthException(\sprintf('Maximum length for the name is %d characters.', self::NAME_LIMIT));
         }
 
         $this->options['name'] = $name;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordEmbed.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordEmbed.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordEmbed.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordEmbed.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
     public function title(string $title): static
     {
         if (mb_strlen($title, 'UTF-8') > self::TITLE_LIMIT) {
-            throw new LengthException(sprintf('Maximum length for the title is %d characters.', self::TITLE_LIMIT));
+            throw new LengthException(\sprintf('Maximum length for the title is %d characters.', self::TITLE_LIMIT));
         }
 
         $this->options['title'] = $title;
@@ -42,7 +42,7 @@
     public function description(string $description): static
     {
         if (mb_strlen($description, 'UTF-8') > self::DESCRIPTION_LIMIT) {
-            throw new LengthException(sprintf('Maximum length for the description is %d characters.', self::DESCRIPTION_LIMIT));
+            throw new LengthException(\sprintf('Maximum length for the description is %d characters.', self::DESCRIPTION_LIMIT));
         }
 
         $this->options['description'] = $description;
@@ -126,7 +126,7 @@
     public function addField(DiscordFieldEmbedObject $field): static
     {
         if (self::FIELDS_LIMIT === \count($this->options['fields'] ?? [])) {
-            throw new LengthException(sprintf('Maximum number of fields should not exceed %d.', self::FIELDS_LIMIT));
+            throw new LengthException(\sprintf('Maximum number of fields should not exceed %d.', self::FIELDS_LIMIT));
         }
 
         if (!isset($this->options['fields'])) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordFieldEmbedObject.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordFieldEmbedObject.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordFieldEmbedObject.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordFieldEmbedObject.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
     public function name(string $name): static
     {
         if (mb_strlen($name, 'UTF-8') > self::NAME_LIMIT) {
-            throw new LengthException(sprintf('Maximum length for the name is %d characters.', self::NAME_LIMIT));
+            throw new LengthException(\sprintf('Maximum length for the name is %d characters.', self::NAME_LIMIT));
         }
 
         $this->options['name'] = $name;
@@ -41,7 +41,7 @@
     public function value(string $value): static
     {
         if (mb_strlen($value, 'UTF-8') > self::VALUE_LIMIT) {
-            throw new LengthException(sprintf('Maximum length for the value is %d characters.', self::VALUE_LIMIT));
+            throw new LengthException(\sprintf('Maximum length for the value is %d characters.', self::VALUE_LIMIT));
         }
 
         $this->options['value'] = $value;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordFooterEmbedObject.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordFooterEmbedObject.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordFooterEmbedObject.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Embeds/DiscordFooterEmbedObject.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public function text(string $text): static
     {
         if (mb_strlen($text, 'UTF-8') > self::TEXT_LIMIT) {
-            throw new LengthException(sprintf('Maximum length for the text is %d characters.', self::TEXT_LIMIT));
+            throw new LengthException(\sprintf('Maximum length for the text is %d characters.', self::TEXT_LIMIT));
         }
 
         $this->options['text'] = $text;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Tests/DiscordTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Tests/DiscordTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Tests/DiscordTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Discord/Tests/DiscordTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Discord\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Discord\DiscordTransport;
 use Symfony\Component\Notifier\Exception\LengthException;
 use Symfony\Component\Notifier\Exception\TransportException;
@@ -20,7 +21,6 @@
 use Symfony\Component\Notifier\Test\TransportTestCase;
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 final class DiscordTransportTest extends TransportTestCase
 {
@@ -57,15 +57,7 @@
 
     public function testSendWithErrorResponseThrows()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['message' => 'testDescription', 'code' => 'testErrorCode']));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['message' => 'testDescription', 'code' => 'testErrorCode']), ['http_code' => 400]));
 
         $transport = self::createTransport($client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Engagespot/EngagespotOptions.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Engagespot/EngagespotOptions.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Engagespot/EngagespotOptions.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Engagespot/EngagespotOptions.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
  */
 final class EngagespotOptions implements MessageOptionsInterface
 {
-    protected $options;
+    private $options;
 
     public function __construct(array $options = [])
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Engagespot/EngagespotTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Engagespot/EngagespotTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Engagespot/EngagespotTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Engagespot/EngagespotTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
     public function __toString(): string
     {
-        return sprintf('engagespot://%s?campaign_name=%s', $this->getEndpoint(), $this->campaignName);
+        return \sprintf('engagespot://%s?campaign_name=%s', $this->getEndpoint(), $this->campaignName);
     }
 
     public function supports(MessageInterface $message): bool
@@ -57,7 +57,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, PushMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s', $this->getEndpoint());
         $options = $message->getOptions()?->toArray() ?? [];
         $options['to'] ??= $message->getRecipientId();
 
@@ -67,7 +67,7 @@
             if (null !== $options['to']) {
                 $identifiers = [$options['to']];
             } elseif (!\is_array($options['identifiers'] ?? null)) {
-                throw new InvalidArgumentException(sprintf('The "%s" transport required the "to" or "identifiers" option to be set when not sending to everyone.', __CLASS__));
+                throw new InvalidArgumentException(\sprintf('The "%s" transport required the "to" or "identifiers" option to be set when not sending to everyone.', __CLASS__));
             } else {
                 $identifiers = $options['identifiers'];
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
     public function __toString(): string
     {
-        return sprintf('esendex://%s?accountreference=%s&from=%s', $this->getEndpoint(), $this->accountReference, $this->from);
+        return \sprintf('esendex://%s?accountreference=%s&from=%s', $this->getEndpoint(), $this->accountReference, $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -93,14 +93,14 @@
             return $sentMessage;
         }
 
-        $message = sprintf('Unable to send the SMS: error %d.', $statusCode);
+        $message = \sprintf('Unable to send the SMS: error %d.', $statusCode);
 
         try {
             $result = $response->toArray(false);
             if (!empty($result['errors'])) {
                 $error = $result['errors'][0];
 
-                $message .= sprintf(' Details from Esendex: %s: "%s".', $error['code'], $error['description']);
+                $message .= \sprintf(' Details from Esendex: %s: "%s".', $error['code'], $error['description']);
             }
         } catch (JsonException) {
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Esendex/Tests/EsendexTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Esendex/Tests/EsendexTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Esendex/Tests/EsendexTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Esendex/Tests/EsendexTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Esendex\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Esendex\EsendexOptions;
 use Symfony\Component\Notifier\Bridge\Esendex\EsendexTransport;
 use Symfony\Component\Notifier\Exception\TransportException;
@@ -48,12 +49,7 @@
 
     public function testSendWithErrorResponseThrowsTransportException()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(500);
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse('', ['http_code' => 500]));
 
         $transport = self::createTransport($client);
 
@@ -65,15 +61,7 @@
 
     public function testSendWithErrorResponseContainingDetailsThrowsTransportException()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(500);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['errors' => [['code' => 'accountreference_invalid', 'description' => 'Invalid Account Reference EX0000000']]]));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['errors' => [['code' => 'accountreference_invalid', 'description' => 'Invalid Account Reference EX0000000']]]), ['http_code' => 500]));
 
         $transport = self::createTransport($client);
 
@@ -86,15 +74,7 @@
     public function testSendWithSuccessfulResponseDispatchesMessageEvent()
     {
         $messageId = bin2hex(random_bytes(7));
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['batch' => ['messageheaders' => [['id' => $messageId]]]]));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['batch' => ['messageheaders' => [['id' => $messageId]]]])));
 
         $transport = self::createTransport($client);
 
@@ -105,20 +85,11 @@
 
     public function testSentMessageContainsAnArrayOfMessages()
     {
-        $messageId = bin2hex(random_bytes(7));
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['batch' => ['messageheaders' => [['id' => $messageId]]]]));
-
         $requestOptions = [];
-        $client = new MockHttpClient(static function ($method, $url, $options) use (&$requestOptions, $response): ResponseInterface {
+        $client = new MockHttpClient(static function ($method, $url, $options) use (&$requestOptions): ResponseInterface {
             $requestOptions = $options;
 
-            return $response;
+            return new MockResponse(json_encode(['batch' => ['messageheaders' => [['id' => bin2hex(random_bytes(7))]]]]));
         });
 
         $transport = self::createTransport($client);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Expo/ExpoTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Expo/ExpoTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Expo/ExpoTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Expo/ExpoTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
 
     public function __toString(): string
     {
-        return sprintf('expo://%s', $this->getEndpoint());
+        return \sprintf('expo://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -58,12 +58,12 @@
             throw new UnsupportedMessageTypeException(__CLASS__, PushMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s', $this->getEndpoint());
         $options = $message->getOptions()?->toArray() ?? [];
         $options['to'] ??= $message->getRecipientId();
 
         if (!$options['to']) {
-            throw new InvalidArgumentException(sprintf('The "%s" transport required the "to" option to be set.', __CLASS__));
+            throw new InvalidArgumentException(\sprintf('The "%s" transport required the "to" option to be set.', __CLASS__));
         }
 
         $options['title'] = $message->getSubject();
@@ -72,7 +72,7 @@
 
         $response = $this->client->request('POST', $endpoint, [
             'headers' => [
-                'Authorization' => $this->token ? sprintf('Bearer %s', $this->token) : null,
+                'Authorization' => $this->token ? \sprintf('Bearer %s', $this->token) : null,
             ],
             'json' => array_filter($options),
         ]);
@@ -95,7 +95,7 @@
         $result ??= $response->toArray(false);
 
         if ('error' === $result['data']['status']) {
-            throw new TransportException(sprintf('Unable to post the Expo message: "%s" (%s)', $result['data']['message'], $result['data']['details']['error']), $response);
+            throw new TransportException(\sprintf('Unable to post the Expo message: "%s" (%s)', $result['data']['message'], $result['data']['details']['error']), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatEmailTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatEmailTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatEmailTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatEmailTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
 
     public function __toString(): string
     {
-        return sprintf('fakechat+email://%s?to=%s&from=%s', $this->getEndpoint(), $this->to, $this->from);
+        return \sprintf('fakechat+email://%s?to=%s&from=%s', $this->getEndpoint(), $this->to, $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -65,7 +65,7 @@
 
         $subject = 'New Chat message without specified recipient!';
         if (null !== $message->getRecipientId()) {
-            $subject = sprintf('New Chat message for recipient: %s', $message->getRecipientId());
+            $subject = \sprintf('New Chat message for recipient: %s', $message->getRecipientId());
         }
 
         $email = (new Email())
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatLoggerTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatLoggerTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatLoggerTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatLoggerTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
 
     public function __toString(): string
     {
-        return sprintf('fakechat+logger://%s', $this->getEndpoint());
+        return \sprintf('fakechat+logger://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -57,10 +57,10 @@
 
         $subject = 'New Chat message without specified recipient!';
         if (null !== $message->getRecipientId()) {
-            $subject = sprintf('New Chat message for recipient: %s', $message->getRecipientId());
+            $subject = \sprintf('New Chat message for recipient: %s', $message->getRecipientId());
         }
 
-        $this->logger->info(sprintf('%s: %s', $subject, $message->getSubject()));
+        $this->logger->info(\sprintf('%s: %s', $subject, $message->getSubject()));
 
         return new SentMessage($message, (string) $this);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatTransportFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatTransportFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatTransportFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/FakeChatTransportFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -71,6 +71,6 @@
 
     private function throwMissingDependencyException(string $scheme, string $missingDependency, string $suggestedPackage): void
     {
-        throw new LogicException(sprintf('Cannot create a transport for scheme "%s" without providing an implementation of "%s". Try running "composer require "%s"".', $scheme, $missingDependency, $suggestedPackage));
+        throw new LogicException(\sprintf('Cannot create a transport for scheme "%s" without providing an implementation of "%s". Try running "composer require "%s"".', $scheme, $missingDependency, $suggestedPackage));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatEmailTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatEmailTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatEmailTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatEmailTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
         $this->assertInstanceOf(Email::class, $sentEmail);
         $this->assertSame($to, $sentEmail->getTo()[0]->getEncodedAddress());
         $this->assertSame($from, $sentEmail->getFrom()[0]->getEncodedAddress());
-        $this->assertSame(sprintf('New Chat message for recipient: %s', $recipient), $sentEmail->getSubject());
+        $this->assertSame(\sprintf('New Chat message for recipient: %s', $recipient), $sentEmail->getSubject());
         $this->assertSame($subject, $sentEmail->getTextBody());
         $this->assertFalse($sentEmail->getHeaders()->has('X-Transport'));
     }
@@ -116,7 +116,7 @@
         $this->assertInstanceOf(Email::class, $sentEmail);
         $this->assertSame($to, $sentEmail->getTo()[0]->getEncodedAddress());
         $this->assertSame($from, $sentEmail->getFrom()[0]->getEncodedAddress());
-        $this->assertSame(sprintf('New Chat message for recipient: %s', $recipient), $sentEmail->getSubject());
+        $this->assertSame(\sprintf('New Chat message for recipient: %s', $recipient), $sentEmail->getSubject());
         $this->assertSame($subject, $sentEmail->getTextBody());
         $this->assertTrue($sentEmail->getHeaders()->has('X-Transport'));
         $this->assertSame($transportName, $sentEmail->getHeaders()->get('X-Transport')->getBody());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatLoggerTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatLoggerTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatLoggerTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatLoggerTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,10 +61,10 @@
         $this->assertNotEmpty($logs);
 
         $log1 = $logs[0];
-        $this->assertSame(sprintf('New Chat message for recipient: %s: %s', $recipient1, $subject1), $log1['message']);
+        $this->assertSame(\sprintf('New Chat message for recipient: %s: %s', $recipient1, $subject1), $log1['message']);
         $this->assertSame('info', $log1['level']);
 
         $log2 = $logs[1];
-        $this->assertSame(sprintf('New Chat message without specified recipient!: %s', $subject2), $log2['message']);
+        $this->assertSame(\sprintf('New Chat message without specified recipient!: %s', $subject2), $log2['message']);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeChat/Tests/FakeChatTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,10 @@
 namespace Symfony\Component\Notifier\Bridge\FakeChat\Tests;
 
 use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
+use Symfony\Component\Mailer\Mailer;
 use Symfony\Component\Mailer\MailerInterface;
+use Symfony\Component\Mailer\Transport\NullTransport;
 use Symfony\Component\Notifier\Bridge\FakeChat\FakeChatTransportFactory;
 use Symfony\Component\Notifier\Exception\LogicException;
 use Symfony\Component\Notifier\Test\TransportFactoryTestCase;
@@ -56,7 +59,7 @@
 
     public function createFactory(): FakeChatTransportFactory
     {
-        return new FakeChatTransportFactory($this->createMock(MailerInterface::class), $this->createMock(LoggerInterface::class));
+        return new FakeChatTransportFactory(new Mailer(new NullTransport()), new NullLogger());
     }
 
     public static function createProvider(): iterable
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Notifier\Bridge\FakeSms;
 
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
 use Symfony\Component\Mailer\MailerInterface;
 use Symfony\Component\Mime\Email;
@@ -20,6 +19,7 @@
 use Symfony\Component\Notifier\Message\SentMessage;
 use Symfony\Component\Notifier\Message\SmsMessage;
 use Symfony\Component\Notifier\Transport\AbstractTransport;
+use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
 
 /**
@@ -45,7 +45,7 @@
 
     public function __toString(): string
     {
-        return sprintf('fakesms+email://%s?to=%s&from=%s', $this->getEndpoint(), $this->to, $this->from);
+        return \sprintf('fakesms+email://%s?to=%s&from=%s', $this->getEndpoint(), $this->to, $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -65,9 +65,9 @@
         }
 
         $email = (new Email())
-            ->from($message->getFrom() ?: $this->from)
+            ->from($this->from)
             ->to($this->to)
-            ->subject(sprintf('New SMS on phone number: %s', $message->getPhone()))
+            ->subject(\sprintf('New SMS on phone number: %s', $message->getPhone()))
             ->html($message->getSubject())
             ->text($message->getSubject());
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsLoggerTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsLoggerTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsLoggerTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsLoggerTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,12 @@
 namespace Symfony\Component\Notifier\Bridge\FakeSms;
 
 use Psr\Log\LoggerInterface;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\Notifier\Exception\UnsupportedMessageTypeException;
 use Symfony\Component\Notifier\Message\MessageInterface;
 use Symfony\Component\Notifier\Message\SentMessage;
 use Symfony\Component\Notifier\Message\SmsMessage;
 use Symfony\Component\Notifier\Transport\AbstractTransport;
+use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
 
 /**
@@ -38,7 +38,7 @@
 
     public function __toString(): string
     {
-        return sprintf('fakesms+logger://%s', $this->getEndpoint());
+        return \sprintf('fakesms+logger://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -55,7 +55,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $this->logger->info(sprintf('New SMS on phone number: %s', $message->getPhone()));
+        $this->logger->info(\sprintf('New SMS on phone number: %s', $message->getPhone()));
 
         return new SentMessage($message, (string) $this);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsTransportFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsTransportFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsTransportFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsTransportFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,6 +72,6 @@
 
     private function throwMissingDependencyException(string $scheme, string $missingDependency, string $suggestedPackage): void
     {
-        throw new LogicException(sprintf('Cannot create a transport for scheme "%s" without providing an implementation of "%s". Try running "composer require "%s"".', $scheme, $missingDependency, $suggestedPackage));
+        throw new LogicException(\sprintf('Cannot create a transport for scheme "%s" without providing an implementation of "%s". Try running "composer require "%s"".', $scheme, $missingDependency, $suggestedPackage));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Mailer/DummyMailer.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Mailer/DummyMailer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Mailer/DummyMailer.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Mailer/DummyMailer.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Notifier\Bridge\FakeSms\Mailer;
+
+use Symfony\Component\Mailer\Envelope;
+use Symfony\Component\Mailer\MailerInterface;
+use Symfony\Component\Mime\RawMessage;
+
+class DummyMailer implements MailerInterface
+{
+    public ?RawMessage $sentEmail = null;
+
+    public function send(RawMessage $message, ?Envelope $envelope = null): void
+    {
+        $this->sentEmail = $message;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsEmailTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsEmailTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsEmailTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsEmailTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,10 +14,10 @@
 use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\Mime\Email;
 use Symfony\Component\Notifier\Bridge\FakeSms\FakeSmsEmailTransport;
+use Symfony\Component\Notifier\Bridge\FakeSms\Mailer\DummyMailer;
 use Symfony\Component\Notifier\Message\ChatMessage;
 use Symfony\Component\Notifier\Message\SmsMessage;
 use Symfony\Component\Notifier\Test\TransportTestCase;
-use Symfony\Component\Notifier\Tests\Mailer\DummyMailer;
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
 
@@ -66,11 +66,11 @@
         $transport->send($message);
 
         /** @var Email $sentEmail */
-        $sentEmail = $mailer->getSentEmail();
+        $sentEmail = $mailer->sentEmail;
         $this->assertInstanceOf(Email::class, $sentEmail);
         $this->assertSame($to, $sentEmail->getTo()[0]->getEncodedAddress());
         $this->assertSame($from, $sentEmail->getFrom()[0]->getEncodedAddress());
-        $this->assertSame(sprintf('New SMS on phone number: %s', $phone), $sentEmail->getSubject());
+        $this->assertSame(\sprintf('New SMS on phone number: %s', $phone), $sentEmail->getSubject());
         $this->assertSame($subject, $sentEmail->getTextBody());
         $this->assertFalse($sentEmail->getHeaders()->has('X-Transport'));
     }
@@ -89,13 +89,26 @@
         $transport->send($message);
 
         /** @var Email $sentEmail */
-        $sentEmail = $mailer->getSentEmail();
+        $sentEmail = $mailer->sentEmail;
         $this->assertInstanceOf(Email::class, $sentEmail);
         $this->assertSame($to, $sentEmail->getTo()[0]->getEncodedAddress());
         $this->assertSame($from, $sentEmail->getFrom()[0]->getEncodedAddress());
-        $this->assertSame(sprintf('New SMS on phone number: %s', $phone), $sentEmail->getSubject());
+        $this->assertSame(\sprintf('New SMS on phone number: %s', $phone), $sentEmail->getSubject());
         $this->assertSame($subject, $sentEmail->getTextBody());
         $this->assertTrue($sentEmail->getHeaders()->has('X-Transport'));
         $this->assertSame($transportName, $sentEmail->getHeaders()->get('X-Transport')->getBody());
     }
+
+    public function testSendWithFromInSmsMessage()
+    {
+        $mailer = new DummyMailer();
+        $transport = new FakeSmsEmailTransport($mailer, 'recipient@example.com', 'sender@example.com');
+        $transport->send(new SmsMessage('0611223344', 'Hello!', '+33611223344'));
+
+        $sentEmail = $mailer->sentEmail;
+        $this->assertInstanceOf(Email::class, $sentEmail);
+        $this->assertSame('recipient@example.com', $sentEmail->getTo()[0]->getEncodedAddress());
+        $this->assertSame('sender@example.com', $sentEmail->getFrom()[0]->getEncodedAddress());
+        $this->assertSame('New SMS on phone number: 0611223344', $sentEmail->getSubject());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsLoggerTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsLoggerTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsLoggerTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsLoggerTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,7 +61,7 @@
         $this->assertNotEmpty($logs);
 
         $log = $logs[0];
-        $this->assertSame(sprintf('New SMS on phone number: %s', $phone), $log['message']);
+        $this->assertSame(\sprintf('New SMS on phone number: %s', $phone), $log['message']);
         $this->assertSame('info', $log['level']);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,10 @@
 namespace Symfony\Component\Notifier\Bridge\FakeSms\Tests;
 
 use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
+use Symfony\Component\Mailer\Mailer;
 use Symfony\Component\Mailer\MailerInterface;
+use Symfony\Component\Mailer\Transport\NullTransport;
 use Symfony\Component\Notifier\Bridge\FakeSms\FakeSmsTransportFactory;
 use Symfony\Component\Notifier\Exception\LogicException;
 use Symfony\Component\Notifier\Test\TransportFactoryTestCase;
@@ -56,7 +59,7 @@
 
     public function createFactory(): FakeSmsTransportFactory
     {
-        return new FakeSmsTransportFactory($this->createMock(MailerInterface::class), $this->createMock(LoggerInterface::class));
+        return new FakeSmsTransportFactory(new Mailer(new NullTransport()), new NullLogger());
     }
 
     public static function createProvider(): iterable
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Firebase/FirebaseTransportFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Firebase/FirebaseTransportFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Firebase/FirebaseTransportFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Firebase/FirebaseTransportFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
             throw new UnsupportedSchemeException($dsn, 'firebase', $this->getSupportedSchemes());
         }
 
-        $token = sprintf('%s:%s', $this->getUser($dsn), $this->getPassword($dsn));
+        $token = \sprintf('%s:%s', $this->getUser($dsn), $this->getPassword($dsn));
         $host = 'default' === $dsn->getHost() ? null : $dsn->getHost();
         $port = $dsn->getPort();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Firebase/FirebaseTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Firebase/FirebaseTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Firebase/FirebaseTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Firebase/FirebaseTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
 
     public function __toString(): string
     {
-        return sprintf('firebase://%s', $this->getEndpoint());
+        return \sprintf('firebase://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -55,19 +55,19 @@
             throw new UnsupportedMessageTypeException(__CLASS__, ChatMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s', $this->getEndpoint());
         $options = $message->getOptions()?->toArray() ?? [];
         $options['to'] = $message->getRecipientId();
 
         if (!$options['to']) {
-            throw new InvalidArgumentException(sprintf('The "%s" transport required the "to" option to be set.', __CLASS__));
+            throw new InvalidArgumentException(\sprintf('The "%s" transport required the "to" option to be set.', __CLASS__));
         }
         $options['notification']['body'] = $message->getSubject();
         $options['data'] ??= [];
 
         $response = $this->client->request('POST', $endpoint, [
             'headers' => [
-                'Authorization' => sprintf('key=%s', $this->token),
+                'Authorization' => \sprintf('key=%s', $this->token),
             ],
             'json' => array_filter($options),
         ]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FortySixElks/FortySixElksTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FortySixElks/FortySixElksTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FortySixElks/FortySixElksTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FortySixElks/FortySixElksTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
     public function __toString(): string
     {
-        return sprintf('forty-six-elks://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('forty-six-elks://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -62,7 +62,7 @@
         $options['to'] = $message->getPhone();
         $options['message'] = $message->getSubject();
 
-        $endpoint = sprintf('https://%s/a1/sms', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/a1/sms', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'auth_basic' => [$this->apiUsername, $this->apiPassword],
             'body' => array_filter($options),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FortySixElks/Tests/FortySixElksTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FortySixElks/Tests/FortySixElksTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FortySixElks/Tests/FortySixElksTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FortySixElks/Tests/FortySixElksTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\FortySixElks\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\FortySixElks\FortySixElksTransport;
 use Symfony\Component\Notifier\Exception\TransportException;
 use Symfony\Component\Notifier\Message\ChatMessage;
@@ -20,7 +21,6 @@
 use Symfony\Component\Notifier\Test\TransportTestCase;
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 class FortySixElksTransportTest extends TransportTestCase
 {
@@ -47,10 +47,7 @@
 
     public function testSendSuccessfully()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->method('getStatusCode')->willReturn(200);
-        $response->method('getContent')->willReturn(file_get_contents(__DIR__.'/Fixtures/success-response.json'));
-        $client = new MockHttpClient($response);
+        $client = new MockHttpClient(new MockResponse(file_get_contents(__DIR__.'/Fixtures/success-response.json')));
         $transport = $this->createTransport($client);
         $sentMessage = $transport->send(new SmsMessage('+46701111111', 'Hello!'));
 
@@ -63,10 +60,7 @@
      */
     public function testExceptionIsThrownWhenSendFailed(int $statusCode, string $content, string $expectedExceptionMessage)
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->method('getStatusCode')->willReturn($statusCode);
-        $response->method('getContent')->willReturn($content);
-        $client = new MockHttpClient($response);
+        $client = new MockHttpClient(new MockResponse($content, ['http_code' => $statusCode]));
         $transport = $this->createTransport($client);
 
         $this->expectException(TransportException::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FreeMobile/FreeMobileTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FreeMobile/FreeMobileTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/FreeMobile/FreeMobileTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/FreeMobile/FreeMobileTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
 
     public function __toString(): string
     {
-        return sprintf('freemobile://%s?phone=%s', $this->getEndpoint(), $this->phone);
+        return \sprintf('freemobile://%s?phone=%s', $this->getEndpoint(), $this->phone);
     }
 
     public function supports(MessageInterface $message): bool
@@ -60,10 +60,10 @@
 
         /** @var SmsMessage $message */
         if ('' !== $message->getFrom()) {
-            throw new InvalidArgumentException(sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
+            throw new InvalidArgumentException(\sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
         }
 
-        $endpoint = sprintf('https://%s', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s', $this->getEndpoint());
 
         $response = $this->client->request('POST', $endpoint, [
             'query' => [
@@ -87,7 +87,7 @@
                 500 => 'Server error, please try again later.',
             ];
 
-            throw new TransportException(sprintf('Unable to send the SMS: error %d: ', $statusCode).($errors[$statusCode] ?? ''), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: error %d: ', $statusCode).($errors[$statusCode] ?? ''), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GatewayApi/GatewayApiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GatewayApi/GatewayApiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GatewayApi/GatewayApiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GatewayApi/GatewayApiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
 
     public function __toString(): string
     {
-        return sprintf('gatewayapi://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('gatewayapi://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -60,7 +60,7 @@
         $options['recipients'] = [['msisdn' => $message->getPhone()]];
         $options['message'] = $message->getSubject();
 
-        $endpoint = sprintf('https://%s/rest/mtsms', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/rest/mtsms', $this->getEndpoint());
 
         $response = $this->client->request('POST', $endpoint, [
             'auth_basic' => [$this->authToken, ''],
@@ -74,7 +74,7 @@
         }
 
         if (200 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to send the SMS: error %d.', $statusCode), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: error %d.', $statusCode), $response);
         }
 
         $content = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GatewayApi/Tests/GatewayApiTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GatewayApi/Tests/GatewayApiTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GatewayApi/Tests/GatewayApiTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GatewayApi/Tests/GatewayApiTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\GatewayApi\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\GatewayApi\GatewayApiOptions;
 use Symfony\Component\Notifier\Bridge\GatewayApi\GatewayApiTransport;
 use Symfony\Component\Notifier\Message\ChatMessage;
@@ -20,7 +21,6 @@
 use Symfony\Component\Notifier\Test\TransportTestCase;
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 /**
  * @author Piergiuseppe Longo <piergiuseppe.longo@gmail.com>
@@ -52,15 +52,7 @@
 
     public function testSend()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['ids' => [42]]));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['ids' => [42]])));
 
         $message = new SmsMessage('3333333333', 'Hello!');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Gitter/GitterTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Gitter/GitterTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Gitter/GitterTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Gitter/GitterTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
 
     public function __toString(): string
     {
-        return sprintf('gitter://%s?room_id=%s', $this->getEndpoint(), $this->roomId);
+        return \sprintf('gitter://%s?room_id=%s', $this->getEndpoint(), $this->roomId);
     }
 
     public function supports(MessageInterface $message): bool
@@ -58,7 +58,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, ChatMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/v1/rooms/%s/chatMessages', $this->getEndpoint(), $this->roomId);
+        $endpoint = \sprintf('https://%s/v1/rooms/%s/chatMessages', $this->getEndpoint(), $this->roomId);
 
         $response = $this->client->request('POST', $endpoint, [
             'auth_bearer' => $this->token,
@@ -74,7 +74,7 @@
         }
 
         if (200 !== $response->getStatusCode()) {
-            throw new TransportException(sprintf('Unable to post the Gitter message: "%s".', $result['error']), $response);
+            throw new TransportException(\sprintf('Unable to post the Gitter message: "%s".', $result['error']), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/GoIpTransportFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/GoIpTransportFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/GoIpTransportFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/GoIpTransportFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
         $password = $this->getPassword($dsn);
 
         if (0 === ($simSlot = (int) $dsn->getRequiredOption('sim_slot'))) {
-            throw new InvalidArgumentException(sprintf('The provided SIM-Slot: "%s" is not valid.', $simSlot));
+            throw new InvalidArgumentException(\sprintf('The provided SIM-Slot: "%s" is not valid.', $simSlot));
         }
 
         return (new GoIpTransport($username, $password, $simSlot, $this->client, $this->dispatcher))
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/GoIpTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/GoIpTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/GoIpTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/GoIpTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,14 +36,14 @@
         private readonly string $password,
         private readonly int $simSlot,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
 
     public function __toString(): string
     {
-        return sprintf('goip://%s?sim_slot=%s', $this->getEndpoint(), $this->simSlot);
+        return \sprintf('goip://%s?sim_slot=%s', $this->getEndpoint(), $this->simSlot);
     }
 
     public function supports(MessageInterface $message): bool
@@ -64,11 +64,11 @@
         }
 
         if (($options = $message->getOptions()) && !$options instanceof GoIpOptions) {
-            throw new LogicException(sprintf('The "%s" transport only supports an instance of the "%s" as an option class.', __CLASS__, GoIpOptions::class));
+            throw new LogicException(\sprintf('The "%s" transport only supports an instance of the "%s" as an option class.', __CLASS__, GoIpOptions::class));
         }
 
         if ('' !== $message->getFrom()) {
-            throw new LogicException(sprintf('The "%s" transport does not support the "From" option.', __CLASS__));
+            throw new LogicException(\sprintf('The "%s" transport does not support the "From" option.', __CLASS__));
         }
 
         $response = $this->client->request('GET', 'https://'.$this->getEndpoint(), [
@@ -88,15 +88,15 @@
         }
 
         if (200 !== $statusCode) {
-            throw new TransportException(sprintf('The GoIP gateway has responded with a wrong http_code: "%s" on the address: "%s".', $statusCode, $this->getEndpoint()), $response);
+            throw new TransportException(\sprintf('The GoIP gateway has responded with a wrong http_code: "%s" on the address: "%s".', $statusCode, $this->getEndpoint()), $response);
         }
 
         if (str_contains(strtolower($response->getContent()), 'error') || !str_contains(strtolower($response->getContent()), 'sending')) {
-            throw new TransportException(sprintf('Could not send the message through GoIP. Response: "%s".', $response->getContent()), $response);
+            throw new TransportException(\sprintf('Could not send the message through GoIP. Response: "%s".', $response->getContent()), $response);
         }
 
         if (!$messageId = $this->extractMessageIdFromContent($response->getContent())) {
-            throw new TransportException(sprintf('Could not extract the message id from the GoIP response: "%s".', $response->getContent()), $response);
+            throw new TransportException(\sprintf('Could not extract the message id from the GoIP response: "%s".', $response->getContent()), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/Tests/GoIpTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/Tests/GoIpTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/Tests/GoIpTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GoIp/Tests/GoIpTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
     public function testSendMessageWithUnsuccessfulReplyFromGoipThrows(string $goipError)
     {
         $this->expectException(TransportException::class);
-        $this->expectExceptionMessage(sprintf('Could not send the message through GoIP. Response: "%s".', $goipError));
+        $this->expectExceptionMessage(\sprintf('Could not send the message through GoIP. Response: "%s".', $goipError));
 
         $mockClient = new MockHttpClient(new MockResponse($goipError));
 
@@ -95,7 +95,7 @@
         $misFormedReply = 'Sending,L5 Send SMS to:0123';
 
         $this->expectException(TransportException::class);
-        $this->expectExceptionMessage(sprintf('Could not extract the message id from the GoIP response: "%s".', $misFormedReply));
+        $this->expectExceptionMessage(\sprintf('Could not extract the message id from the GoIP response: "%s".', $misFormedReply));
 
         $mockClient = new MockHttpClient(new MockResponse($misFormedReply));
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GoogleChat/GoogleChatTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GoogleChat/GoogleChatTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GoogleChat/GoogleChatTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GoogleChat/GoogleChatTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
 
     public function __toString(): string
     {
-        return sprintf('googlechat://%s/%s%s',
+        return \sprintf('googlechat://%s/%s%s',
             $this->getEndpoint(),
             $this->space,
             $this->threadKey ? '?thread_key='.urlencode($this->threadKey) : ''
@@ -78,7 +78,7 @@
         }
 
         if (($options = $message->getOptions()) && !$options instanceof GoogleChatOptions) {
-            throw new LogicException(sprintf('The "%s" transport only supports instances of "%s" for options.', __CLASS__, GoogleChatOptions::class));
+            throw new LogicException(\sprintf('The "%s" transport only supports instances of "%s" for options.', __CLASS__, GoogleChatOptions::class));
         }
 
         if (!$options) {
@@ -93,7 +93,7 @@
 
         $threadKey = $options->getThreadKey() ?: $this->threadKey;
 
-        $url = sprintf('https://%s/v1/spaces/%s/messages?key=%s&token=%s%s',
+        $url = \sprintf('https://%s/v1/spaces/%s/messages?key=%s&token=%s%s',
             $this->getEndpoint(),
             $this->space,
             urlencode($this->accessKey),
@@ -124,11 +124,11 @@
         }
 
         if (200 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to post the Google Chat message: "%s".', $result['error']['message'] ?? $response->getContent(false)), $response, $result['error']['code'] ?? $statusCode);
+            throw new TransportException(\sprintf('Unable to post the Google Chat message: "%s".', $result['error']['message'] ?? $response->getContent(false)), $response, $result['error']['code'] ?? $statusCode);
         }
 
         if (!\array_key_exists('name', $result)) {
-            throw new TransportException(sprintf('Unable to post the Google Chat message: "%s".', $response->getContent(false)), $response);
+            throw new TransportException(\sprintf('Unable to post the Google Chat message: "%s".', $response->getContent(false)), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GoogleChat/Tests/GoogleChatTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GoogleChat/Tests/GoogleChatTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/GoogleChat/Tests/GoogleChatTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/GoogleChat/Tests/GoogleChatTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\GoogleChat\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\GoogleChat\GoogleChatOptions;
 use Symfony\Component\Notifier\Bridge\GoogleChat\GoogleChatTransport;
 use Symfony\Component\Notifier\Exception\LogicException;
@@ -55,15 +56,7 @@
         $this->expectExceptionMessage('Unable to post the Google Chat message: "[]"');
         $this->expectExceptionCode(500);
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(500);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn('[]');
-
-        $client = new MockHttpClient(fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse('[]', ['http_code' => 500]));
 
         $transport = self::createTransport($client);
 
@@ -77,15 +70,7 @@
         $this->expectException(TransportException::class);
         $this->expectExceptionMessage('API key not valid. Please pass a valid API key.');
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn('{"error":{"code":400,"message":"API key not valid. Please pass a valid API key.","status":"INVALID_ARGUMENT"}}');
-
-        $client = new MockHttpClient(fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse('{"error":{"code":400,"message":"API key not valid. Please pass a valid API key.","status":"INVALID_ARGUMENT"}}', ['http_code' => 400]));
 
         $transport = self::createTransport($client);
 
@@ -98,24 +83,14 @@
     {
         $message = 'testMessage';
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn('{"name":"spaces/My-Space/messages/abcdefg.hijklmno"}');
-
         $expectedBody = json_encode(['text' => $message, 'thread' => ['threadKey' => 'My-Thread']]);
 
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $expectedBody): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($expectedBody): ResponseInterface {
             $this->assertSame('POST', $method);
             $this->assertSame('https://chat.googleapis.com/v1/spaces/My-Space/messages?key=theAccessKey&token=theAccessToken%3D&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD', $url);
             $this->assertSame($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse('{"name":"spaces/My-Space/messages/abcdefg.hijklmno"}');
         });
 
         $transport = self::createTransport($client, 'My-Thread');
@@ -127,16 +102,6 @@
 
     public function testSendWithNotification()
     {
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn('{"name":"spaces/My-Space/messages/abcdefg.hijklmno","thread":{"name":"spaces/My-Space/threads/abcdefg.hijklmno"}}');
-
         $notification = new Notification('testMessage');
         $chatMessage = ChatMessage::fromNotification($notification);
 
@@ -144,10 +109,10 @@
             'text' => ' *testMessage* ',
         ]);
 
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $expectedBody): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($expectedBody): ResponseInterface {
             $this->assertSame($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse('{"name":"spaces/My-Space/messages/abcdefg.hijklmno","thread":{"name":"spaces/My-Space/threads/abcdefg.hijklmno"}}');
         });
 
         $transport = self::createTransport($client);
@@ -162,7 +127,7 @@
         $this->expectException(LogicException::class);
         $this->expectExceptionMessage('The "'.GoogleChatTransport::class.'" transport only supports instances of "'.GoogleChatOptions::class.'" for options.');
 
-        $client = new MockHttpClient(fn (string $method, string $url, array $options = []): ResponseInterface => $this->createMock(ResponseInterface::class));
+        $client = new MockHttpClient(new MockResponse());
 
         $transport = self::createTransport($client);
 
@@ -175,22 +140,12 @@
 
         $this->expectException(TransportException::class);
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn('testErrorCode');
-
         $expectedBody = json_encode(['text' => $message]);
 
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $expectedBody): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($expectedBody): ResponseInterface {
             $this->assertSame($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse('testErrorCode');
         });
 
         $transport = self::createTransport($client);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Infobip/InfobipTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Infobip/InfobipTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Infobip/InfobipTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Infobip/InfobipTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
 
     public function __toString(): string
     {
-        return sprintf('infobip://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('infobip://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -54,7 +54,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/sms/2/text/advanced', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/sms/2/text/advanced', $this->getEndpoint());
 
         $response = $this->client->request('POST', $endpoint, [
             'headers' => [
@@ -86,7 +86,7 @@
             $errorMessage = $content['requestError']['serviceException']['messageId'] ?? '';
             $errorInfo = $content['requestError']['serviceException']['text'] ?? '';
 
-            throw new TransportException(sprintf('Unable to send the SMS: '.$errorMessage.' (%s).', $errorInfo), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: '.$errorMessage.' (%s).', $errorInfo), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Iqsms/IqsmsTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Iqsms/IqsmsTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Iqsms/IqsmsTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Iqsms/IqsmsTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
     public function __toString(): string
     {
-        return sprintf('iqsms://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('iqsms://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -80,7 +80,7 @@
 
         foreach ($result['messages'] as $msg) {
             if ('accepted' !== $msg['status']) {
-                throw new TransportException(sprintf('Unable to send the SMS: "%s".', $msg['status']), $response);
+                throw new TransportException(\sprintf('Unable to send the SMS: "%s".', $msg['status']), $response);
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Isendpro/IsendproTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Isendpro/IsendproTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Isendpro/IsendproTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Isendpro/IsendproTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
         private bool $noStop = false,
         private bool $sandbox = false,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
@@ -40,10 +40,10 @@
     public function __toString(): string
     {
         if (null === $this->from) {
-            return sprintf('isendpro://%s?no_stop=%d&sandbox=%d', $this->getEndpoint(), (int) $this->noStop, (int) $this->sandbox);
+            return \sprintf('isendpro://%s?no_stop=%d&sandbox=%d', $this->getEndpoint(), (int) $this->noStop, (int) $this->sandbox);
         }
 
-        return sprintf('isendpro://%s?from=%s&no_stop=%d&sandbox=%d', $this->getEndpoint(), $this->from, (int) $this->noStop, (int) $this->sandbox);
+        return \sprintf('isendpro://%s?from=%s&no_stop=%d&sandbox=%d', $this->getEndpoint(), $this->from, (int) $this->noStop, (int) $this->sandbox);
     }
 
     public function supports(MessageInterface $message): bool
@@ -98,16 +98,16 @@
                 return $sentMessage;
             }
 
-            $errorMessage = sprintf('Unable to send the SMS: error %d.', $statusCode);
+            $errorMessage = \sprintf('Unable to send the SMS: error %d.', $statusCode);
             $detailsMessage = $details['message'] ?? null;
 
             if ($detailsMessage) {
-                $errorMessage .= sprintf(' Details from iSendPro: %s: "%s".', $detailsCode, $detailsMessage);
+                $errorMessage .= \sprintf(' Details from iSendPro: %s: "%s".', $detailsCode, $detailsMessage);
             }
         } catch (TransportExceptionInterface $e) {
             throw new TransportException('Could not reach the remote iSendPro server.', $response, 0, $e);
         } catch (DecodingExceptionInterface $e) {
-            $errorMessage = sprintf('Unable to send the SMS: error %d. %s', $statusCode, $e->getMessage());
+            $errorMessage = \sprintf('Unable to send the SMS: error %d. %s', $statusCode, $e->getMessage());
         }
 
         throw new TransportException($errorMessage, $response);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Isendpro/Tests/IsendproTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Isendpro/Tests/IsendproTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Isendpro/Tests/IsendproTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Isendpro/Tests/IsendproTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Isendpro\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Isendpro\IsendproTransport;
 use Symfony\Component\Notifier\Exception\TransportException;
 use Symfony\Component\Notifier\Message\ChatMessage;
@@ -19,7 +20,6 @@
 use Symfony\Component\Notifier\Test\TransportTestCase;
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 final class IsendproTransportTest extends TransportTestCase
 {
@@ -46,12 +46,7 @@
 
     public function testSendWithErrorResponseThrowsTransportException()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(500);
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse('', ['http_code' => 500]));
 
         $transport = $this->createTransport($client);
 
@@ -63,15 +58,7 @@
 
     public function testSendWithErrorResponseContainingDetailsThrowsTransportException()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['etat' => ['etat' => [['code' => '3', 'message' => 'Your credentials are incorrect']]]]));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['etat' => ['etat' => [['code' => '3', 'message' => 'Your credentials are incorrect']]]]), ['http_code' => 400]));
 
         $transport = $this->createTransport($client);
 
@@ -83,15 +70,7 @@
 
     public function testSendWithSuccessfulResponseDispatchesMessageEvent()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['etat' => ['etat' => [['code' => 0]]]]));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['etat' => ['etat' => [['code' => 0]]]])));
 
         $transport = $this->createTransport($client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/KazInfoTeh/KazInfoTehTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/KazInfoTeh/KazInfoTehTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/KazInfoTeh/KazInfoTehTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/KazInfoTeh/KazInfoTehTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
     public function __toString(): string
     {
-        return sprintf('kaz-info-teh://%s?sender=%s', $this->getEndpoint(), $this->sender);
+        return \sprintf('kaz-info-teh://%s?sender=%s', $this->getEndpoint(), $this->sender);
     }
 
     public function supports(MessageInterface $message): bool
@@ -60,7 +60,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('http://%s/api', $this->getEndpoint());
+        $endpoint = \sprintf('http://%s/api', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'query' => [
                 'action' => 'sendmessage',
@@ -88,7 +88,7 @@
         if (200 !== $statusCode || '0' !== (string) $content->statuscode) {
             $error = (string) $content->statusmessage ?: $content->errormessage ?: 'unknown error';
 
-            throw new TransportException(sprintf('Unable to send the SMS: "%s".', $error), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: "%s".', $error), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LightSms/LightSmsTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LightSms/LightSmsTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LightSms/LightSmsTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LightSms/LightSmsTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,7 +86,7 @@
 
     public function __toString(): string
     {
-        return sprintf('lightsms://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('lightsms://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -109,7 +109,7 @@
         ];
         $data['signature'] = $this->generateSignature($data);
 
-        $endpoint = sprintf('https://%s/external/get/send.php', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/external/get/send.php', $this->getEndpoint());
         $response = $this->client->request('GET', $endpoint, [
             'query' => $data,
         ]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LineNotify/LineNotifyTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LineNotify/LineNotifyTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LineNotify/LineNotifyTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LineNotify/LineNotifyTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, ChatMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/api/notify', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/api/notify', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'auth_bearer' => $this->token,
             'query' => [
@@ -61,7 +61,7 @@
             $originalContent = $message->getSubject();
             $errorCode = $result['status'];
             $errorMessage = trim($result['message']);
-            throw new TransportException(sprintf('Unable to post the Line message: "%s" (%d: "%s").', $originalContent, $errorCode, $errorMessage), $response);
+            throw new TransportException(\sprintf('Unable to post the Line message: "%s" (%d: "%s").', $originalContent, $errorCode, $errorMessage), $response);
         }
 
         return new SentMessage($message, (string) $this);
@@ -74,6 +74,6 @@
 
     public function __toString(): string
     {
-        return sprintf('linenotify://%s', $this->getEndpoint());
+        return \sprintf('linenotify://%s', $this->getEndpoint());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LineNotify/Tests/LineNotifyTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LineNotify/Tests/LineNotifyTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LineNotify/Tests/LineNotifyTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LineNotify/Tests/LineNotifyTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\LineNotify\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\LineNotify\LineNotifyTransport;
 use Symfony\Component\Notifier\Exception\TransportException;
 use Symfony\Component\Notifier\Message\ChatMessage;
@@ -19,7 +20,6 @@
 use Symfony\Component\Notifier\Test\TransportTestCase;
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 /**
  * @author Akira Kurozumi <info@a-zumi.net>
@@ -49,15 +49,7 @@
 
     public function testSendWithErrorResponseThrows()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['message' => 'testDescription', 'code' => 'testErrorCode', 'status' => 'testStatus']));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['message' => 'testDescription', 'code' => 'testErrorCode', 'status' => 'testStatus']), ['http_code' => 400]));
 
         $transport = $this->createTransport($client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/LinkedInTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/LinkedInTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/LinkedInTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/LinkedInTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
 
     public function __toString(): string
     {
-        return sprintf('linkedin://%s', $this->getEndpoint());
+        return \sprintf('linkedin://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -63,7 +63,7 @@
         }
 
         if (($options = $message->getOptions()) && !$options instanceof LinkedInOptions) {
-            throw new LogicException(sprintf('The "%s" transport only supports instances of "%s" for options.', __CLASS__, LinkedInOptions::class));
+            throw new LogicException(\sprintf('The "%s" transport only supports instances of "%s" for options.', __CLASS__, LinkedInOptions::class));
         }
 
         if (!$options && $notification = $message->getNotification()) {
@@ -71,7 +71,7 @@
             $options->author(new AuthorShare($this->accountId));
         }
 
-        $endpoint = sprintf('https://%s/v2/ugcPosts', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/v2/ugcPosts', $this->getEndpoint());
 
         $response = $this->client->request('POST', $endpoint, [
             'auth_bearer' => $this->authToken,
@@ -86,13 +86,13 @@
         }
 
         if (201 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to post the Linkedin message: "%s".', $response->getContent(false)), $response);
+            throw new TransportException(\sprintf('Unable to post the Linkedin message: "%s".', $response->getContent(false)), $response);
         }
 
         $result = $response->toArray(false);
 
         if (!$result['id']) {
-            throw new TransportException(sprintf('Unable to post the Linkedin message: "%s".', $result['error']), $response);
+            throw new TransportException(\sprintf('Unable to post the Linkedin message: "%s".', $result['error']), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
@@ -117,7 +117,7 @@
                 'com.linkedin.ugc.MemberNetworkVisibility' => 'PUBLIC',
             ],
             'lifecycleState' => 'PUBLISHED',
-            'author' => sprintf('urn:li:person:%s', $this->accountId),
+            'author' => \sprintf('urn:li:person:%s', $this->accountId),
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/LifecycleStateShare.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/LifecycleStateShare.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/LifecycleStateShare.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/LifecycleStateShare.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
     public function __construct(string $lifecycleState = self::PUBLISHED)
     {
         if (!\in_array($lifecycleState, self::AVAILABLE_LIFECYCLE)) {
-            throw new LogicException(sprintf('"%s" is not a valid value, available lifecycle are "%s".', $lifecycleState, implode(', ', self::AVAILABLE_LIFECYCLE)));
+            throw new LogicException(\sprintf('"%s" is not a valid value, available lifecycle are "%s".', $lifecycleState, implode(', ', self::AVAILABLE_LIFECYCLE)));
         }
 
         $this->lifecycleState = $lifecycleState;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/ShareContentShare.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/ShareContentShare.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/ShareContentShare.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/ShareContentShare.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
 
         if ($shareMediaCategory) {
             if (!\in_array($shareMediaCategory, self::ALL)) {
-                throw new LogicException(sprintf('"%s" is not valid option, available options are "%s".', $shareMediaCategory, implode(', ', self::ALL)));
+                throw new LogicException(\sprintf('"%s" is not valid option, available options are "%s".', $shareMediaCategory, implode(', ', self::ALL)));
             }
 
             $this->options['shareMediaCategory'] = $shareMediaCategory;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/ShareMediaShare.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/ShareMediaShare.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/ShareMediaShare.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/ShareMediaShare.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
 
         if (null !== $landingPageTitle) {
             if (!\in_array($landingPageTitle, self::ALL)) {
-                throw new LogicException(sprintf('"%s" is not valid option, available options are "%s".', $landingPageTitle, implode(', ', self::ALL)));
+                throw new LogicException(\sprintf('"%s" is not valid option, available options are "%s".', $landingPageTitle, implode(', ', self::ALL)));
             }
 
             $this->options['landingPage']['landingPageTitle'] = $landingPageTitle;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/VisibilityShare.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/VisibilityShare.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/VisibilityShare.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Share/VisibilityShare.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,15 +40,15 @@
     public function __construct(string $visibility = self::MEMBER_NETWORK_VISIBILITY, string $value = 'PUBLIC')
     {
         if (!\in_array($visibility, self::AVAILABLE_VISIBILITY)) {
-            throw new LogicException(sprintf('"%s" is not a valid visibility, available visibility are "%s".', $visibility, implode(', ', self::AVAILABLE_VISIBILITY)));
+            throw new LogicException(\sprintf('"%s" is not a valid visibility, available visibility are "%s".', $visibility, implode(', ', self::AVAILABLE_VISIBILITY)));
         }
 
         if (self::MEMBER_NETWORK_VISIBILITY === $visibility && !\in_array($value, self::MEMBER_NETWORK)) {
-            throw new LogicException(sprintf('"%s" is not a valid value, available value for visibility "%s" are "%s".', $value, $visibility, implode(', ', self::MEMBER_NETWORK)));
+            throw new LogicException(\sprintf('"%s" is not a valid value, available value for visibility "%s" are "%s".', $value, $visibility, implode(', ', self::MEMBER_NETWORK)));
         }
 
         if (self::SPONSORED_CONTENT_VISIBILITY === $visibility && self::DARK !== $value) {
-            throw new LogicException(sprintf('"%s" is not a valid value, available value for visibility "%s" is "%s".', $value, $visibility, self::DARK));
+            throw new LogicException(\sprintf('"%s" is not a valid value, available value for visibility "%s" is "%s".', $value, $visibility, self::DARK));
         }
 
         $this->options['com.linkedin.ugc.'.$visibility] = $value;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Tests/LinkedInTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Tests/LinkedInTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Tests/LinkedInTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/LinkedIn/Tests/LinkedInTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\LinkedIn\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\LinkedIn\LinkedInTransport;
 use Symfony\Component\Notifier\Exception\LogicException;
 use Symfony\Component\Notifier\Exception\TransportException;
@@ -49,15 +50,7 @@
 
     public function testSendWithEmptyArrayResponseThrowsTransportException()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(500);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn('[]');
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse('[]', ['http_code' => 500]));
 
         $transport = self::createTransport($client);
 
@@ -71,16 +64,7 @@
         $this->expectException(TransportException::class);
         $this->expectExceptionMessage('testErrorCode');
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn('testErrorCode');
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse('testErrorCode', ['http_code' => 400]));
 
         $transport = self::createTransport($client);
 
@@ -91,16 +75,6 @@
     {
         $message = 'testMessage';
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(201);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['id' => '42']));
-
         $expectedBody = json_encode([
             'specificContent' => [
                 'com.linkedin.ugc.ShareContent' => [
@@ -119,12 +93,11 @@
         ]);
 
         $client = new MockHttpClient(function (string $method, string $url, array $options = []) use (
-            $response,
             $expectedBody
         ): ResponseInterface {
             $this->assertSame($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse(json_encode(['id' => '42']), ['http_code' => 201]);
         });
         $transport = self::createTransport($client);
 
@@ -135,16 +108,6 @@
     {
         $message = 'testMessage';
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(201);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['id' => '42']));
-
         $notification = new Notification($message);
         $chatMessage = ChatMessage::fromNotification($notification);
 
@@ -166,12 +129,11 @@
         ]);
 
         $client = new MockHttpClient(function (string $method, string $url, array $options = []) use (
-            $response,
             $expectedBody
         ): ResponseInterface {
             $this->assertSame($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse(json_encode(['id' => '42']), ['http_code' => 201]);
         });
 
         $transport = self::createTransport($client);
@@ -183,10 +145,10 @@
     {
         $this->expectException(LogicException::class);
 
-        $client = new MockHttpClient(fn (string $method, string $url, array $options = []): ResponseInterface => $this->createMock(ResponseInterface::class));
+        $client = new MockHttpClient(new MockResponse());
 
         $transport = self::createTransport($client);
 
-        $transport->send(new ChatMessage('testMessage', $this->createMock(MessageOptionsInterface::class)));
+        $transport->send(new ChatMessage('testMessage', $this->createStub(MessageOptionsInterface::class)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mailjet/MailjetTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mailjet/MailjetTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mailjet/MailjetTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mailjet/MailjetTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mailjet://%s@%s', $this->from, $this->getEndpoint());
+        return \sprintf('mailjet://%s@%s', $this->from, $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -55,7 +55,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/v4/sms-send', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/v4/sms-send', $this->getEndpoint());
 
         $response = $this->client->request('POST', $endpoint, [
             'auth_bearer' => $this->authToken,
@@ -77,7 +77,7 @@
             $errorMessage = $content['requestError']['serviceException']['messageId'] ?? '';
             $errorInfo = $content['requestError']['serviceException']['text'] ?? '';
 
-            throw new TransportException(sprintf('Unable to send the SMS: '.$errorMessage.' (%s).', $errorInfo), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: '.$errorMessage.' (%s).', $errorInfo), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mastodon/MastodonTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mastodon/MastodonTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mastodon/MastodonTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mastodon/MastodonTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mastodon://%s', $this->getEndpoint());
+        return \sprintf('mastodon://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -50,7 +50,7 @@
 
     public function request(string $method, string $url, array $options): ResponseInterface
     {
-        $url = sprintf('https://%s%s', $this->getEndpoint(), $url);
+        $url = \sprintf('https://%s%s', $this->getEndpoint(), $url);
 
         $options['auth_bearer'] = $this->accessToken;
 
@@ -88,7 +88,7 @@
         }
 
         if (200 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to post the Mastodon message: "%s" (%s).', $result['error_description'], $result['error']), $response);
+            throw new TransportException(\sprintf('Unable to post the Mastodon message: "%s" (%s).', $result['error_description'], $result['error']), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
@@ -136,7 +136,7 @@
                 $result = $response->toArray(false);
 
                 if (300 <= $response->getStatusCode()) {
-                    throw new TransportException(sprintf('Unable to upload media as attachment: "%s" (%s).', $result['error_description'], $result['error']), $response);
+                    throw new TransportException(\sprintf('Unable to upload media as attachment: "%s" (%s).', $result['error_description'], $result['error']), $response);
                 }
 
                 $mediaIds[] = $result['id'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mattermost/MattermostTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mattermost/MattermostTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mattermost/MattermostTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mattermost/MattermostTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mattermost://%s?channel=%s', $this->getEndpoint(), $this->channel);
+        return \sprintf('mattermost://%s?channel=%s', $this->getEndpoint(), $this->channel);
     }
 
     public function supports(MessageInterface $message): bool
@@ -62,7 +62,7 @@
         $options['message'] = $message->getSubject();
         $options['channel_id'] ??= $message->getRecipientId() ?: $this->channel;
 
-        $endpoint = sprintf('https://%s/api/v4/posts', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/api/v4/posts', $this->getEndpoint());
 
         $response = $this->client->request('POST', $endpoint, [
             'auth_bearer' => $this->token,
@@ -78,7 +78,7 @@
         if (201 !== $statusCode) {
             $result = $response->toArray(false);
 
-            throw new TransportException(sprintf('Unable to post the Mattermost message: %s (%s).', $result['message'], $result['id']), $response);
+            throw new TransportException(\sprintf('Unable to post the Mattermost message: %s (%s).', $result['message'], $result['id']), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/MercureTransportFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/MercureTransportFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/MercureTransportFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/MercureTransportFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
         try {
             $hub = $this->registry->getHub($hubId);
         } catch (InvalidArgumentException) {
-            throw new IncompleteDsnException(sprintf('Hub "%s" not found. Did you mean one of: "%s"?', $hubId, implode('", "', array_keys($this->registry->all()))));
+            throw new IncompleteDsnException(\sprintf('Hub "%s" not found. Did you mean one of: "%s"?', $hubId, implode('", "', array_keys($this->registry->all()))));
         }
 
         return new MercureTransport($hub, $hubId, $topic, $this->client, $this->dispatcher);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/MercureTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/MercureTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/MercureTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/MercureTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mercure://%s%s', $this->hubId, null !== $this->topics ? '?'.http_build_query(['topic' => $this->topics], '', '&') : '');
+        return \sprintf('mercure://%s%s', $this->hubId, null !== $this->topics ? '?'.http_build_query(['topic' => $this->topics], '', '&') : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -66,7 +66,7 @@
         }
 
         if (($options = $message->getOptions()) && !$options instanceof MercureOptions) {
-            throw new LogicException(sprintf('The "%s" transport only supports instances of "%s" for options.', __CLASS__, MercureOptions::class));
+            throw new LogicException(\sprintf('The "%s" transport only supports instances of "%s" for options.', __CLASS__, MercureOptions::class));
         }
 
         $options ??= new MercureOptions($this->topics);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/Tests/MercureTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/Tests/MercureTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/Tests/MercureTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/Tests/MercureTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
 {
     public function createFactory(): MercureTransportFactory
     {
-        $hub = $this->createMock(HubInterface::class);
+        $hub = $this->createStub(HubInterface::class);
         $hubRegistry = new HubRegistry($hub, ['hubId' => $hub]);
 
         return new MercureTransportFactory($hubRegistry);
@@ -62,7 +62,7 @@
 
     public function testNotFoundHubThrows()
     {
-        $hub = $this->createMock(HubInterface::class);
+        $hub = $this->createStub(HubInterface::class);
         $hubRegistry = new HubRegistry($hub, ['hubId' => $hub, 'anotherHubId' => $hub]);
         $factory = new MercureTransportFactory($hubRegistry);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/Tests/MercureTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/Tests/MercureTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/Tests/MercureTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mercure/Tests/MercureTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
     public function testSendWithNonMercureOptionsThrows()
     {
         $this->expectException(LogicException::class);
-        self::createTransport()->send(new ChatMessage('testMessage', $this->createMock(MessageOptionsInterface::class)));
+        self::createTransport()->send(new ChatMessage('testMessage', $this->createStub(MessageOptionsInterface::class)));
     }
 
     public function testSendWithTransportFailureThrows()
@@ -159,7 +159,7 @@
     {
         $messageId = 'urn:uuid:a7045be0-a75d-4d40-8bd2-29fa4e5dd10b';
 
-        $hub = new MockHub('https://foo.com/.well-known/mercure', new StaticTokenProvider('foo'), fn (Update $update): string => $messageId);
+        $hub = new MockHub('https://foo.com/.well-known/mercure', new StaticTokenProvider('foo'), static fn (Update $update): string => $messageId);
 
         $sentMessage = self::createTransport(null, $hub)->send(new ChatMessage('subject'));
         $this->assertSame($messageId, $sentMessage->getMessageId());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MessageBird/MessageBirdTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MessageBird/MessageBirdTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MessageBird/MessageBirdTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MessageBird/MessageBirdTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
 
     public function __toString(): string
     {
-        return sprintf('messagebird://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('messagebird://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -60,7 +60,7 @@
         $options['recipients'] = [$message->getPhone()];
         $options['body'] = $message->getSubject();
 
-        $endpoint = sprintf('https://%s/messages', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/messages', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'auth_basic' => ['AccessKey', $this->token],
             'body' => array_filter($options),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MessageMedia/MessageMediaTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MessageMedia/MessageMediaTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MessageMedia/MessageMediaTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MessageMedia/MessageMediaTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,10 +45,10 @@
     public function __toString(): string
     {
         if (null !== $this->from) {
-            return sprintf('messagemedia://%s?from=%s', $this->getEndpoint(), $this->from);
+            return \sprintf('messagemedia://%s?from=%s', $this->getEndpoint(), $this->from);
         }
 
-        return sprintf('messagemedia://%s', $this->getEndpoint());
+        return \sprintf('messagemedia://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -67,7 +67,7 @@
         $options['destination_number'] = $message->getPhone();
         $options['content'] = $message->getSubject();
 
-        $endpoint = sprintf('https://%s/v1/messages', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/v1/messages', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'auth_basic' => [$this->apiKey, $this->apiSecret],
             'json' => [
@@ -99,6 +99,6 @@
             $errorMessage = 'Unknown reason';
         }
 
-        throw new TransportException(sprintf('Unable to send the SMS: "%s".', $errorMessage), $response);
+        throw new TransportException(\sprintf('Unable to send the SMS: "%s".', $errorMessage), $response);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MessageMedia/Tests/MessageMediaTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MessageMedia/Tests/MessageMediaTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MessageMedia/Tests/MessageMediaTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MessageMedia/Tests/MessageMediaTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\MessageMedia\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\MessageMedia\MessageMediaOptions;
 use Symfony\Component\Notifier\Bridge\MessageMedia\MessageMediaTransport;
 use Symfony\Component\Notifier\Exception\TransportException;
@@ -21,7 +22,6 @@
 use Symfony\Component\Notifier\Test\TransportTestCase;
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 final class MessageMediaTransportTest extends TransportTestCase
 {
@@ -55,13 +55,7 @@
      */
     public function testExceptionIsThrownWhenHttpSendFailed(int $statusCode, string $content, string $expectedExceptionMessage)
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->method('getStatusCode')
-            ->willReturn($statusCode);
-        $response->method('getContent')
-            ->willReturn($content);
-
-        $client = new MockHttpClient($response);
+        $client = new MockHttpClient(new MockResponse($content, ['http_code' => $statusCode]));
 
         $transport = new MessageMediaTransport('apiKey', 'apiSecret', null, $client);
         $this->expectException(TransportException::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Action/Input/MultiChoiceInput.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Action/Input/MultiChoiceInput.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Action/Input/MultiChoiceInput.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Action/Input/MultiChoiceInput.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
     public function style(string $style): static
     {
         if (!\in_array($style, self::STYLES)) {
-            throw new InvalidArgumentException(sprintf('Supported styles for "%s" method are: "%s".', __METHOD__, implode('", "', self::STYLES)));
+            throw new InvalidArgumentException(\sprintf('Supported styles for "%s" method are: "%s".', __METHOD__, implode('", "', self::STYLES)));
         }
 
         $this->options['style'] = $style;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Action/OpenUriAction.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Action/OpenUriAction.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Action/OpenUriAction.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Action/OpenUriAction.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
     public function target(string $uri, string $os = 'default'): static
     {
         if (!\in_array($os, self::OPERATING_SYSTEMS)) {
-            throw new InvalidArgumentException(sprintf('Supported operating systems for "%s" method are: "%s".', __METHOD__, implode('", "', self::OPERATING_SYSTEMS)));
+            throw new InvalidArgumentException(\sprintf('Supported operating systems for "%s" method are: "%s".', __METHOD__, implode('", "', self::OPERATING_SYSTEMS)));
         }
 
         $this->options['targets'][] = ['os' => $os, 'uri' => $uri];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/MicrosoftTeamsOptions.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/MicrosoftTeamsOptions.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/MicrosoftTeamsOptions.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/MicrosoftTeamsOptions.php	2026-05-20 10:56:49.000000000 +0200
@@ -82,7 +82,7 @@
     public function recipient(string $path): static
     {
         if (!preg_match('/^\/webhookb2\//', $path)) {
-            throw new InvalidArgumentException(sprintf('"%s" require recipient id format to be "/webhookb2/{uuid}@{uuid}/IncomingWebhook/{id}/{uuid}", "%s" given.', __CLASS__, $path));
+            throw new InvalidArgumentException(\sprintf('"%s" require recipient id format to be "/webhookb2/{uuid}@{uuid}/IncomingWebhook/{id}/{uuid}", "%s" given.', __CLASS__, $path));
         }
 
         $this->options['recipient_id'] = $path;
@@ -169,7 +169,7 @@
     private function validateNumberOfActions(): void
     {
         if (\count($this->options['potentialAction'] ?? []) >= self::MAX_ACTIONS) {
-            throw new InvalidArgumentException(sprintf('MessageCard maximum number of "potentialAction" has been reached (%d).', self::MAX_ACTIONS));
+            throw new InvalidArgumentException(\sprintf('MessageCard maximum number of "potentialAction" has been reached (%d).', self::MAX_ACTIONS));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/MicrosoftTeamsTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/MicrosoftTeamsTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/MicrosoftTeamsTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/MicrosoftTeamsTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
 
     public function __toString(): string
     {
-        return sprintf('microsoftteams://%s%s', $this->getEndpoint(), $this->path);
+        return \sprintf('microsoftteams://%s%s', $this->getEndpoint(), $this->path);
     }
 
     public function supports(MessageInterface $message): bool
@@ -61,7 +61,7 @@
         $options['text'] ??= $message->getSubject();
 
         $path = $message->getRecipientId() ?? $this->path;
-        $endpoint = sprintf('https://%s%s', $this->getEndpoint(), $path);
+        $endpoint = \sprintf('https://%s%s', $this->getEndpoint(), $path);
         $response = $this->client->request('POST', $endpoint, [
             'json' => $options,
         ]);
@@ -76,14 +76,14 @@
         if (null === $requestId) {
             $originalContent = $message->getSubject();
 
-            throw new TransportException(sprintf('Unable to post the Microsoft Teams message: "%s" (request-id not found).', $originalContent), $response);
+            throw new TransportException(\sprintf('Unable to post the Microsoft Teams message: "%s" (request-id not found).', $originalContent), $response);
         }
 
         if (200 !== $statusCode) {
             $errorMessage = $response->getContent(false);
             $originalContent = $message->getSubject();
 
-            throw new TransportException(sprintf('Unable to post the Microsoft Teams message: "%s" (%s : "%s").', $originalContent, $requestId, $errorMessage), $response);
+            throw new TransportException(\sprintf('Unable to post the Microsoft Teams message: "%s" (%s : "%s").', $originalContent, $requestId, $errorMessage), $response);
         }
 
         $message = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Tests/MicrosoftTeamsOptionsTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Tests/MicrosoftTeamsOptionsTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Tests/MicrosoftTeamsOptionsTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Tests/MicrosoftTeamsOptionsTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
         $recipient = 'foo';
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('"%s" require recipient id format to be "/webhookb2/{uuid}@{uuid}/IncomingWebhook/{id}/{uuid}", "%s" given.', MicrosoftTeamsOptions::class, $recipient));
+        $this->expectExceptionMessage(\sprintf('"%s" require recipient id format to be "/webhookb2/{uuid}@{uuid}/IncomingWebhook/{id}/{uuid}", "%s" given.', MicrosoftTeamsOptions::class, $recipient));
 
         $options->recipient($recipient);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Tests/MicrosoftTeamsTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Tests/MicrosoftTeamsTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Tests/MicrosoftTeamsTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/MicrosoftTeams/Tests/MicrosoftTeamsTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
 
     public function testSendWithErrorResponseThrows()
     {
-        $client = new MockHttpClient(fn (string $method, string $url, array $options = []): ResponseInterface => new MockResponse('testErrorMessage', ['response_headers' => ['request-id' => ['testRequestId']], 'http_code' => 400]));
+        $client = new MockHttpClient(static fn (string $method, string $url, array $options = []): ResponseInterface => new MockResponse('testErrorMessage', ['response_headers' => ['request-id' => ['testRequestId']], 'http_code' => 400]));
 
         $transport = self::createTransport($client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mobyt/MobytOptions.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mobyt/MobytOptions.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mobyt/MobytOptions.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mobyt/MobytOptions.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
     public static function validateMessageType(string $type): string
     {
         if (!\in_array($type, $supported = [self::MESSAGE_TYPE_QUALITY_HIGH, self::MESSAGE_TYPE_QUALITY_MEDIUM, self::MESSAGE_TYPE_QUALITY_LOW], true)) {
-            throw new InvalidArgumentException(sprintf('The message type "%s" is not supported; supported message types are: "%s"', $type, implode('", "', $supported)));
+            throw new InvalidArgumentException(\sprintf('The message type "%s" is not supported; supported message types are: "%s"', $type, implode('", "', $supported)));
         }
 
         return $type;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mobyt/MobytTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mobyt/MobytTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Mobyt/MobytTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Mobyt/MobytTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
 
     public function __toString(): string
     {
-        return sprintf('mobyt://%s?from=%s&type_quality=%s', $this->getEndpoint(), $this->from, $this->typeQuality);
+        return \sprintf('mobyt://%s?from=%s&type_quality=%s', $this->getEndpoint(), $this->from, $this->typeQuality);
     }
 
     public function supports(MessageInterface $message): bool
@@ -84,13 +84,13 @@
         }
 
         if (401 === $statusCode || 404 === $statusCode) {
-            throw new TransportException(sprintf('Unable to send the SMS: "%s". Check your credentials.', $message->getSubject()), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: "%s". Check your credentials.', $message->getSubject()), $response);
         }
 
         if (201 !== $statusCode) {
             $error = $response->toArray(false);
 
-            throw new TransportException(sprintf('Unable to send the SMS: "%s".', $error['result']), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: "%s".', $error['result']), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Novu/NovuTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Novu/NovuTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Novu/NovuTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Novu/NovuTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,14 +32,14 @@
         #[\SensitiveParameter]
         protected string $apiKey,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
 
     public function __toString(): string
     {
-        return sprintf('novu://%s', $this->getEndpoint());
+        return \sprintf('novu://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -70,11 +70,11 @@
             'overrides' => $options['overrides'] ?? [],
         ];
 
-        $endpoint = sprintf('https://%s/v1/events/trigger', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/v1/events/trigger', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'body' => $body,
             'headers' => [
-                'Authorization' => sprintf('ApiKey %s', $this->apiKey),
+                'Authorization' => \sprintf('ApiKey %s', $this->apiKey),
                 'Content-Type' => 'application/json',
             ],
         ]);
@@ -89,7 +89,7 @@
             $originalContent = $message->getSubject();
             $result = $response->toArray(false);
             $error = $result['message'];
-            throw new TransportException(sprintf('Unable to post the Novu message: "%s" (%d: "%s").', $originalContent, $statusCode, $error), $response);
+            throw new TransportException(\sprintf('Unable to post the Novu message: "%s" (%d: "%s").', $originalContent, $statusCode, $error), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Novu/Tests/NovuTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Novu/Tests/NovuTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Novu/Tests/NovuTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Novu/Tests/NovuTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Novu\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Novu\NovuOptions;
 use Symfony\Component\Notifier\Bridge\Novu\NovuTransport;
 use Symfony\Component\Notifier\Exception\TransportException;
@@ -21,7 +22,6 @@
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Component\Notifier\Transport\TransportInterface;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 class NovuTransportTest extends TransportTestCase
 {
@@ -48,15 +48,7 @@
 
     public function testWithErrorResponseThrows()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['error' => 'Bad request', 'message' => 'subscriberId under property to is not configured']));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['error' => 'Bad request', 'message' => 'subscriberId under property to is not configured']), ['http_code' => 400]));
 
         $transport = $this->createTransport($client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Ntfy/NtfyTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Ntfy/NtfyTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Ntfy/NtfyTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Ntfy/NtfyTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
         }
 
         if ($message->getOptions() && !$message->getOptions() instanceof NtfyOptions) {
-            throw new LogicException(sprintf('The "%s" transport only supports instances of "%s" for options.', __CLASS__, NtfyOptions::class));
+            throw new LogicException(\sprintf('The "%s" transport only supports instances of "%s" for options.', __CLASS__, NtfyOptions::class));
         }
 
         if (!($opts = $message->getOptions()) && $notification = $message->getNotification()) {
@@ -83,7 +83,7 @@
         $headers = [];
 
         if (null !== $this->user && null !== $this->password) {
-            $headers['Authorization'] = 'Basic '.rtrim(base64_encode($this->user.':'.$this->password), '=');
+            $headers['Authorization'] = 'Basic '.base64_encode($this->user.':'.$this->password);
         } elseif (null !== $this->password) {
             $headers['Authorization'] = 'Bearer '.$this->password;
         }
@@ -100,13 +100,13 @@
         }
 
         if (200 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to send the Ntfy push notification: "%s".', $response->getContent(false)), $response);
+            throw new TransportException(\sprintf('Unable to send the Ntfy push notification: "%s".', $response->getContent(false)), $response);
         }
 
         $result = $response->toArray(false);
 
         if (empty($result['id'])) {
-            throw new TransportException(sprintf('Unable to send the Ntfy push notification: "%s".', $response->getContent(false)), $response);
+            throw new TransportException(\sprintf('Unable to send the Ntfy push notification: "%s".', $response->getContent(false)), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
@@ -123,6 +123,6 @@
 
     public function __toString(): string
     {
-        return sprintf('ntfy://%s/%s', $this->getEndpoint(), $this->getTopic());
+        return \sprintf('ntfy://%s/%s', $this->getEndpoint(), $this->getTopic());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Ntfy/Tests/NtfyTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Ntfy/Tests/NtfyTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Ntfy/Tests/NtfyTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Ntfy/Tests/NtfyTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Ntfy\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Ntfy\NtfyTransport;
 use Symfony\Component\Notifier\Message\PushMessage;
 use Symfony\Component\Notifier\Message\SmsMessage;
@@ -50,7 +51,7 @@
     {
         $transport = $this->createTransport();
         $transport->setHost($customHost = self::CUSTOM_HOST);
-        $this->assertSame(sprintf('ntfy://%s/test', $customHost), (string) $transport);
+        $this->assertSame(\sprintf('ntfy://%s/test', $customHost), (string) $transport);
     }
 
     public function testCanSetCustomHostAndPort()
@@ -58,24 +59,16 @@
         $transport = $this->createTransport();
         $transport->setHost($customHost = self::CUSTOM_HOST);
         $transport->setPort($customPort = self::CUSTOM_PORT);
-        $this->assertSame(sprintf('ntfy://%s:%s/test', $customHost, $customPort), (string) $transport);
+        $this->assertSame(\sprintf('ntfy://%s:%s/test', $customHost, $customPort), (string) $transport);
     }
 
     public function testSend()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['id' => '2BYIwRmvBKcv', 'event' => 'message']));
-
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []): ResponseInterface {
             $expectedBody = json_encode(['topic' => 'test', 'title' => 'Hello', 'message' => 'World']);
             $this->assertJsonStringEqualsJsonString($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse(json_encode(['id' => '2BYIwRmvBKcv', 'event' => 'message']));
         });
 
         $transport = $this->createTransport($client);
@@ -87,21 +80,13 @@
 
     public function testSendWithPassword()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['id' => '2BYIwRmvBKcv', 'event' => 'message']));
-
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []): ResponseInterface {
             $expectedBody = json_encode(['topic' => 'test', 'title' => 'Hello', 'message' => 'World']);
             $expectedAuthorization = 'Authorization: Bearer testtokentesttoken';
             $this->assertJsonStringEqualsJsonString($expectedBody, $options['body']);
             $this->assertTrue(\in_array($expectedAuthorization, $options['headers'], true));
 
-            return $response;
+            return new MockResponse(json_encode(['id' => '2BYIwRmvBKcv', 'event' => 'message']));
         });
 
         $transport = $this->createTransport($client)->setPassword('testtokentesttoken');
@@ -113,21 +98,13 @@
 
     public function testSendWithUserAndPassword()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['id' => '2BYIwRmvBKcv', 'event' => 'message']));
-
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []): ResponseInterface {
             $expectedBody = json_encode(['topic' => 'test', 'title' => 'Hello', 'message' => 'World']);
-            $expectedAuthorization = 'Authorization: Basic dGVzdF91c2VyOnRlc3RfcGFzc3dvcmQ';
+            $expectedAuthorization = 'Authorization: Basic dGVzdF91c2VyOnRlc3RfcGFzc3dvcmQ=';
             $this->assertJsonStringEqualsJsonString($expectedBody, $options['body']);
             $this->assertTrue(\in_array($expectedAuthorization, $options['headers']));
 
-            return $response;
+            return new MockResponse(json_encode(['id' => '2BYIwRmvBKcv', 'event' => 'message']));
         });
 
         $transport = $this->createTransport($client)->setUser('test_user')->setPassword('test_password');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Octopush/OctopushTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Octopush/OctopushTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Octopush/OctopushTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Octopush/OctopushTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
 
     public function __toString(): string
     {
-        return sprintf('octopush://%s?from=%s&type=%s', $this->getEndpoint(), $this->from, $this->type);
+        return \sprintf('octopush://%s?from=%s&type=%s', $this->getEndpoint(), $this->from, $this->type);
     }
 
     public function supports(MessageInterface $message): bool
@@ -61,7 +61,7 @@
 
         $from = $message->getFrom() ?: $this->from;
 
-        $endpoint = sprintf('https://%s/api/sms/json', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/api/sms/json', $this->getEndpoint());
 
         $response = $this->client->request('POST', $endpoint, [
             'body' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/OneSignal/OneSignalTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/OneSignal/OneSignalTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/OneSignal/OneSignalTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/OneSignal/OneSignalTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,10 +45,10 @@
     public function __toString(): string
     {
         if (null === $this->defaultRecipientId) {
-            return sprintf('onesignal://%s@%s', urlencode($this->appId), $this->getEndpoint());
+            return \sprintf('onesignal://%s@%s', urlencode($this->appId), $this->getEndpoint());
         }
 
-        return sprintf('onesignal://%s@%s?recipientId=%s', urlencode($this->appId), $this->getEndpoint(), $this->defaultRecipientId);
+        return \sprintf('onesignal://%s@%s?recipientId=%s', urlencode($this->appId), $this->getEndpoint(), $this->defaultRecipientId);
     }
 
     public function supports(MessageInterface $message): bool
@@ -72,7 +72,7 @@
         $recipientId = $message->getRecipientId() ?? $this->defaultRecipientId;
 
         if (null === $recipientId) {
-            throw new LogicException(sprintf('The "%s" transport should have configured `defaultRecipientId` via DSN or provided with message options.', __CLASS__));
+            throw new LogicException(\sprintf('The "%s" transport should have configured `defaultRecipientId` via DSN or provided with message options.', __CLASS__));
         }
 
         $options = $options?->toArray() ?? [];
@@ -96,13 +96,13 @@
         }
 
         if (200 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to send the OneSignal push notification: "%s".', $response->getContent(false)), $response);
+            throw new TransportException(\sprintf('Unable to send the OneSignal push notification: "%s".', $response->getContent(false)), $response);
         }
 
         $result = $response->toArray(false);
 
         if (empty($result['id'])) {
-            throw new TransportException(sprintf('Unable to send the OneSignal push notification: "%s".', $response->getContent(false)), $response);
+            throw new TransportException(\sprintf('Unable to send the OneSignal push notification: "%s".', $response->getContent(false)), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/OneSignal/Tests/OneSignalTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/OneSignal/Tests/OneSignalTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/OneSignal/Tests/OneSignalTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/OneSignal/Tests/OneSignalTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
 
         $transport->setHost($customHost = self::CUSTOM_HOST);
 
-        $this->assertSame(sprintf('onesignal://9fb175f0-0b32-4e99-ae97-bd228b9eb246@%s', $customHost), (string) $transport);
+        $this->assertSame(\sprintf('onesignal://9fb175f0-0b32-4e99-ae97-bd228b9eb246@%s', $customHost), (string) $transport);
     }
 
     public function testCanSetCustomHostAndPort()
@@ -50,7 +50,7 @@
         $transport->setHost($customHost = self::CUSTOM_HOST);
         $transport->setPort($customPort = self::CUSTOM_PORT);
 
-        $this->assertSame(sprintf('onesignal://9fb175f0-0b32-4e99-ae97-bd228b9eb246@%s:%d', $customHost, $customPort), (string) $transport);
+        $this->assertSame(\sprintf('onesignal://9fb175f0-0b32-4e99-ae97-bd228b9eb246@%s:%d', $customHost, $customPort), (string) $transport);
     }
 
     public static function toStringProvider(): iterable
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/OrangeSms/OrangeSmsTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/OrangeSms/OrangeSmsTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/OrangeSms/OrangeSmsTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/OrangeSms/OrangeSmsTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,10 +42,10 @@
     public function __toString(): string
     {
         if (null !== $this->senderName) {
-            return sprintf('orange-sms://%s?from=%s&sender_name=%s', $this->getEndpoint(), $this->from, $this->senderName);
+            return \sprintf('orange-sms://%s?from=%s&sender_name=%s', $this->getEndpoint(), $this->from, $this->senderName);
         }
 
-        return sprintf('orange-sms://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('orange-sms://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -85,7 +85,7 @@
             $errorMessage = $content['requestError']['serviceException']['messageId'] ?? '';
             $errorInfo = $content['requestError']['serviceException']['text'] ?? '';
 
-            throw new TransportException(sprintf('Unable to send the SMS: "%s" (%s).', $errorMessage, $errorInfo), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: "%s" (%s).', $errorMessage, $errorInfo), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/OvhCloud/OvhCloudTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/OvhCloud/OvhCloudTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/OvhCloud/OvhCloudTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/OvhCloud/OvhCloudTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
 
     public function __toString(): string
     {
-        return sprintf('ovhcloud://%s?service_name=%s%s', $this->getEndpoint(), $this->serviceName, $this->sender ? '&sender='.$this->sender : '');
+        return \sprintf('ovhcloud://%s?service_name=%s%s', $this->getEndpoint(), $this->serviceName, $this->sender ? '&sender='.$this->sender : '');
     }
 
     /**
@@ -81,7 +81,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/1.0/sms/%s/jobs', $this->getEndpoint(), $this->serviceName);
+        $endpoint = \sprintf('https://%s/1.0/sms/%s/jobs', $this->getEndpoint(), $this->serviceName);
 
         $content = [
             'charset' => 'UTF-8',
@@ -125,13 +125,13 @@
         if (200 !== $statusCode) {
             $error = $response->toArray(false);
 
-            throw new TransportException(sprintf('Unable to send the SMS: %s.', $error['message']), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: %s.', $error['message']), $response);
         }
 
         $success = $response->toArray(false);
 
         if (!isset($success['ids'][0])) {
-            throw new TransportException(sprintf('Attempt to send the SMS to invalid receivers: "%s".', implode(',', $success['invalidReceivers'])), $response);
+            throw new TransportException(\sprintf('Attempt to send the SMS to invalid receivers: "%s".', implode(',', $success['invalidReceivers'])), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
@@ -145,7 +145,7 @@
      */
     private function calculateTimeDelta(): int
     {
-        $endpoint = sprintf('https://%s/1.0/auth/time', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/1.0/auth/time', $this->getEndpoint());
         $response = $this->client->request('GET', $endpoint);
 
         return $response->getContent() - time();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/PagerDuty/PagerDutyTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/PagerDuty/PagerDutyTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/PagerDuty/PagerDutyTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/PagerDuty/PagerDutyTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
 
     public function __toString(): string
     {
-        return sprintf('pagerduty://%s', $this->getEndpoint());
+        return \sprintf('pagerduty://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -70,7 +70,7 @@
         $result = $response->toArray(false);
 
         if (202 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to post the PagerDuty message: "%s".', $result['error']['message']), $response);
+            throw new TransportException(\sprintf('Unable to post the PagerDuty message: "%s".', $result['error']['message']), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Plivo/PlivoTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Plivo/PlivoTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Plivo/PlivoTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Plivo/PlivoTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,14 +35,14 @@
         #[\SensitiveParameter] private readonly string $authToken,
         private readonly string $from,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
 
     public function __toString(): string
     {
-        return sprintf('plivo://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('plivo://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -62,10 +62,10 @@
         $options['dst'] = $message->getPhone();
 
         if (!preg_match('/^[a-zA-Z0-9\s]{2,11}$/', $options['src']) && !preg_match('/^\+?[1-9]\d{1,14}$/', $options['src'])) {
-            throw new InvalidArgumentException(sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID. Phone number must contain only numbers and optional + character.', $options['src']));
+            throw new InvalidArgumentException(\sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID. Phone number must contain only numbers and optional + character.', $options['src']));
         }
 
-        $endpoint = sprintf('https://%s/v1/Account/%s/Message/', $this->getEndpoint(), $this->authId);
+        $endpoint = \sprintf('https://%s/v1/Account/%s/Message/', $this->getEndpoint(), $this->authId);
         $response = $this->client->request('POST', $endpoint, [
             'auth_basic' => [$this->authId, $this->authToken],
             'json' => array_filter($options),
@@ -83,7 +83,7 @@
             } catch (JsonException) {
                 $error['error'] = $response->getContent(false);
             }
-            throw new TransportException(sprintf('Unable to send the SMS - status code: "%s": "%s".', $statusCode, $error['error'] ?? 'unknown error'), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS - status code: "%s": "%s".', $statusCode, $error['error'] ?? 'unknown error'), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Plivo/Tests/PlivoTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Plivo/Tests/PlivoTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Plivo/Tests/PlivoTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Plivo/Tests/PlivoTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Plivo\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Plivo\PlivoOptions;
 use Symfony\Component\Notifier\Bridge\Plivo\PlivoTransport;
 use Symfony\Component\Notifier\Exception\InvalidArgumentException;
@@ -51,7 +52,7 @@
         $transport = $this->createTransport(null, $from);
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
+        $this->expectExceptionMessage(\sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
 
         $transport->send(new SmsMessage('+33612345678', 'Hello!'));
     }
@@ -62,14 +63,11 @@
     public function testNoInvalidArgumentExceptionIsThrownIfFromIsValid(string $from)
     {
         $message = new SmsMessage('+33612345678', 'Hello!');
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects(self::exactly(2))->method('getStatusCode')->willReturn(202);
-        $response->expects(self::once())->method('getContent')->willReturn(json_encode(['message' => 'message(s) queued', 'message_uuid' => ['foo'], 'api_id' => 'bar']));
-        $client = new MockHttpClient(function (string $method, string $url) use ($response): ResponseInterface {
+        $client = new MockHttpClient(static function (string $method, string $url): ResponseInterface {
             self::assertSame('POST', $method);
             self::assertSame('https://api.plivo.com/v1/Account/authId/Message/', $url);
 
-            return $response;
+            return new MockResponse(json_encode(['message' => 'message(s) queued', 'message_uuid' => ['foo'], 'api_id' => 'bar']), ['http_code' => 202]);
         }
         );
         $transport = $this->createTransport($client, $from);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/PushoverOptions.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/PushoverOptions.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/PushoverOptions.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/PushoverOptions.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
             Notification::IMPORTANCE_URGENT => 2,
             Notification::IMPORTANCE_HIGH => 1,
             Notification::IMPORTANCE_MEDIUM => 0,
-            Notification::IMPORTANCE_LOW => -1
+            Notification::IMPORTANCE_LOW => -1,
         };
         $options->priority($priority);
 
@@ -116,7 +116,7 @@
     public function priority(int $priority): static
     {
         if (!\in_array($priority, self::PRIORITIES, true)) {
-            throw new InvalidArgumentException(sprintf('Pushover notification priority must be one of "%s".', implode(', ', self::PRIORITIES)));
+            throw new InvalidArgumentException(\sprintf('Pushover notification priority must be one of "%s".', implode(', ', self::PRIORITIES)));
         }
 
         $this->options['priority'] = $priority;
@@ -156,7 +156,7 @@
     public function sound(string $sound): static
     {
         if (!\in_array($sound, self::SOUNDS, true)) {
-            throw new InvalidArgumentException(sprintf('Pushover notification sound must be one of "%s".', implode(', ', self::SOUNDS)));
+            throw new InvalidArgumentException(\sprintf('Pushover notification sound must be one of "%s".', implode(', ', self::SOUNDS)));
         }
 
         $this->options['sound'] = $sound;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/PushoverTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/PushoverTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/PushoverTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/PushoverTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
 
     public function __toString(): string
     {
-        return sprintf('pushover://%s', $this->getEndpoint());
+        return \sprintf('pushover://%s', $this->getEndpoint());
     }
 
     protected function doSend(MessageInterface $message): SentMessage
@@ -59,7 +59,7 @@
         $options['token'] = $this->appToken;
         $options['user'] = $this->userKey;
 
-        $endpoint = sprintf('https://%s/1/messages.json', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/1/messages.json', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'body' => $options,
         ]);
@@ -71,13 +71,13 @@
         }
 
         if (200 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to send the Pushover push notification: "%s".', $response->getContent(false)), $response);
+            throw new TransportException(\sprintf('Unable to send the Pushover push notification: "%s".', $response->getContent(false)), $response);
         }
 
         $result = $response->toArray(false);
 
         if (!isset($result['request'])) {
-            throw new TransportException(sprintf('Unable to find the message id within the Pushover response: "%s".', $response->getContent(false)), $response);
+            throw new TransportException(\sprintf('Unable to find the message id within the Pushover response: "%s".', $response->getContent(false)), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/Tests/PushoverTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/Tests/PushoverTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/Tests/PushoverTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Pushover/Tests/PushoverTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Pushover\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Pushover\PushoverTransport;
 use Symfony\Component\Notifier\Message\ChatMessage;
 use Symfony\Component\Notifier\Message\PushMessage;
@@ -49,16 +50,6 @@
         $messageSubject = 'testMessageSubject';
         $messageContent = 'testMessageContent';
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['status' => 1, 'request' => 'uuid']));
-
         $expectedBody = http_build_query([
             'message' => 'testMessageContent',
             'title' => 'testMessageSubject',
@@ -67,12 +58,11 @@
         ], '', '&');
 
         $client = new MockHttpClient(function (string $method, string $url, array $options = []) use (
-            $response,
             $expectedBody
         ): ResponseInterface {
             $this->assertSame($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse(json_encode(['status' => 1, 'request' => 'uuid']));
         });
         $transport = self::createTransport($client);
 
@@ -86,16 +76,6 @@
         $messageSubject = 'testMessageSubject';
         $messageContent = 'testMessageContent';
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['status' => 1, 'request' => 'uuid']));
-
         $notification = (new Notification($messageSubject))->content($messageContent);
         $pushMessage = PushMessage::fromNotification($notification);
 
@@ -107,12 +87,11 @@
         ]);
 
         $client = new MockHttpClient(function (string $method, string $url, array $options = []) use (
-            $response,
             $expectedBody
         ): ResponseInterface {
             $this->assertSame($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse(json_encode(['status' => 1, 'request' => 'uuid']));
         });
         $transport = self::createTransport($client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Redlink/RedlinkOptions.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Redlink/RedlinkOptions.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Redlink/RedlinkOptions.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Redlink/RedlinkOptions.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
  */
 final class RedlinkOptions implements MessageOptionsInterface
 {
-    public function __construct(protected array $options = [])
+    public function __construct(private array $options = [])
     {
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Redlink/RedlinkTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Redlink/RedlinkTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Redlink/RedlinkTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Redlink/RedlinkTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
 
     public function __toString(): string
     {
-        return sprintf(
+        return \sprintf(
             'redlink://%s?from=%s&version=%s',
             $this->getEndpoint(),
             $this->from,
@@ -66,7 +66,7 @@
 
         $from = $message->getFrom() ?: $this->from;
 
-        $endpoint = sprintf('https://%s/%s/sms', $this->getEndpoint(), $this->version);
+        $endpoint = \sprintf('https://%s/%s/sms', $this->getEndpoint(), $this->version);
 
         $response = $this->client->request('POST', $endpoint, [
             'headers' => [
@@ -95,7 +95,7 @@
 
             $errorMessage = $content['errors'][0]['message'] ?? '';
 
-            throw new TransportException(sprintf('Unable to send the SMS: '.$errorMessage.'. UniqId: (%s).', $requestUniqueIdentifier), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: '.$errorMessage.'. UniqId: (%s).', $requestUniqueIdentifier), $response);
         }
 
         $messageId = $content['data'][0]['externalId'] ?? '';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/RingCentral/RingCentralTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/RingCentral/RingCentralTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/RingCentral/RingCentralTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/RingCentral/RingCentralTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,14 +33,14 @@
         #[\SensitiveParameter] private readonly string $apiToken,
         private readonly string $from,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
 
     public function __toString(): string
     {
-        return sprintf('ringcentral://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
+        return \sprintf('ringcentral://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -60,10 +60,10 @@
         $options['to'][]['phoneNumber'] = $message->getPhone();
 
         if (!preg_match('/^\+[1-9]\d{1,14}$/', $options['from']['phoneNumber'] ?? '')) {
-            throw new InvalidArgumentException(sprintf('The "From" number "%s" is not a valid phone number. Phone number must be in E.164 format.', $options['from']['phoneNumber'] ?? ''));
+            throw new InvalidArgumentException(\sprintf('The "From" number "%s" is not a valid phone number. Phone number must be in E.164 format.', $options['from']['phoneNumber'] ?? ''));
         }
 
-        $endpoint = sprintf('https://%s/restapi/v1.0/account/~/extension/~/sms', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/restapi/v1.0/account/~/extension/~/sms', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'auth_bearer' => $this->apiToken,
             'json' => array_filter($options),
@@ -77,7 +77,7 @@
 
         if (200 !== $statusCode) {
             $error = $response->toArray(false);
-            throw new TransportException(sprintf('Unable to send the SMS - "%s".', $error['message'] ?? $error['error_description'] ?? $error['description'] ?? 'unknown failure'), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS - "%s".', $error['message'] ?? $error['error_description'] ?? $error['description'] ?? 'unknown failure'), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/RingCentral/Tests/RingCentralTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/RingCentral/Tests/RingCentralTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/RingCentral/Tests/RingCentralTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/RingCentral/Tests/RingCentralTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\RingCentral\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\RingCentral\RingCentralOptions;
 use Symfony\Component\Notifier\Bridge\RingCentral\RingCentralTransport;
 use Symfony\Component\Notifier\Exception\InvalidArgumentException;
@@ -49,7 +50,7 @@
         $transport = $this->createTransport(null, $from);
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "From" number "%s" is not a valid phone number.', $from));
+        $this->expectExceptionMessage(\sprintf('The "From" number "%s" is not a valid phone number.', $from));
 
         $transport->send(new SmsMessage('+33612345678', 'Hello!'));
     }
@@ -60,14 +61,11 @@
     public function testNoInvalidArgumentExceptionIsThrownIfFromIsValid(string $from)
     {
         $message = new SmsMessage('+33612345678', 'Hello!');
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects(self::exactly(2))->method('getStatusCode')->willReturn(200);
-        $response->expects(self::once())->method('getContent')->willReturn(json_encode(['id' => 'foo']));
-        $client = new MockHttpClient(function (string $method, string $url) use ($response): ResponseInterface {
+        $client = new MockHttpClient(static function (string $method, string $url): ResponseInterface {
             self::assertSame('POST', $method);
             self::assertSame('https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/sms', $url);
 
-            return $response;
+            return new MockResponse(json_encode(['id' => 'foo']));
         }
         );
         $transport = $this->createTransport($client, $from);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/RocketChat/RocketChatTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/RocketChat/RocketChatTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/RocketChat/RocketChatTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/RocketChat/RocketChatTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
 
     public function __toString(): string
     {
-        return sprintf('rocketchat://%s%s', $this->getEndpoint(), null !== $this->chatChannel ? '?channel='.$this->chatChannel : '');
+        return \sprintf('rocketchat://%s%s', $this->getEndpoint(), null !== $this->chatChannel ? '?channel='.$this->chatChannel : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -63,7 +63,7 @@
         $options['channel'] ??= $message->getRecipientId() ?: $this->chatChannel;
         $options['text'] = $message->getSubject();
 
-        $endpoint = sprintf('https://%s/hooks/%s', $this->getEndpoint(), $this->accessToken);
+        $endpoint = \sprintf('https://%s/hooks/%s', $this->getEndpoint(), $this->accessToken);
         $response = $this->client->request('POST', $endpoint, [
             'json' => array_filter($options),
         ]);
@@ -75,12 +75,12 @@
         }
 
         if (200 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to post the RocketChat message: %s.', $response->getContent(false)), $response);
+            throw new TransportException(\sprintf('Unable to post the RocketChat message: %s.', $response->getContent(false)), $response);
         }
 
         $result = $response->toArray(false);
         if (!$result['success']) {
-            throw new TransportException(sprintf('Unable to post the RocketChat message: %s.', $result['error']), $response);
+            throw new TransportException(\sprintf('Unable to post the RocketChat message: %s.', $result['error']), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Sendberry/SendberryTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Sendberry/SendberryTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Sendberry/SendberryTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Sendberry/SendberryTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
 
     public function __toString(): string
     {
-        return sprintf('sendberry://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('sendberry://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -72,7 +72,7 @@
             }
         }
 
-        $endpoint = sprintf('https://%s/SMS/SEND', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/SMS/SEND', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'json' => [
                 'from' => $from,
@@ -96,7 +96,7 @@
 
         $responseArr = $response->toArray();
         if (isset($responseArr['status']) && 'ok' !== $responseArr['status']) {
-            throw new TransportException(sprintf("Unable to send the SMS. \n%s\n.", implode("\n", $responseArr['message'])), $response);
+            throw new TransportException(\sprintf("Unable to send the SMS. \n%s\n.", implode("\n", $responseArr['message'])), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Sendinblue/SendinblueTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Sendinblue/SendinblueTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Sendinblue/SendinblueTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Sendinblue/SendinblueTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
     public function __toString(): string
     {
-        return sprintf('sendinblue://%s?sender=%s', $this->getEndpoint(), $this->sender);
+        return \sprintf('sendinblue://%s?sender=%s', $this->getEndpoint(), $this->sender);
     }
 
     public function supports(MessageInterface $message): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Sendinblue/Tests/SendinblueTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Sendinblue/Tests/SendinblueTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Sendinblue/Tests/SendinblueTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Sendinblue/Tests/SendinblueTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Sendinblue\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Sendinblue\SendinblueTransport;
 use Symfony\Component\Notifier\Exception\TransportException;
 use Symfony\Component\Notifier\Message\ChatMessage;
@@ -19,7 +20,6 @@
 use Symfony\Component\Notifier\Test\TransportTestCase;
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 /**
  * @group legacy
@@ -49,15 +49,7 @@
 
     public function testSendWithErrorResponseThrowsTransportException()
     {
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['code' => 400, 'message' => 'bad request']));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['code' => 400, 'message' => 'bad request']), ['http_code' => 400]));
 
         $transport = self::createTransport($client);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SimpleTextin/SimpleTextinTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SimpleTextin/SimpleTextinTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SimpleTextin/SimpleTextinTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SimpleTextin/SimpleTextinTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,14 +33,14 @@
         #[\SensitiveParameter] private readonly string $apiKey,
         private readonly ?string $from = null,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
 
     public function __toString(): string
     {
-        return sprintf('simpletextin://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
+        return \sprintf('simpletextin://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -56,7 +56,7 @@
         if (!$message instanceof SmsMessage) {
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
-        $endpoint = sprintf('https://%s/v2/api/messages', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/v2/api/messages', $this->getEndpoint());
 
         $options = [];
         $options['text'] = $message->getSubject();
@@ -65,7 +65,7 @@
         $options['accountPhone'] = $message->getFrom() ?: $this->from;
 
         if (null !== $options['accountPhone'] && !preg_match('/^\+?[1-9]\d{1,14}$/', $options['accountPhone'])) {
-            throw new InvalidArgumentException(sprintf('The "From" number "%s" is not a valid phone number.', $options['accountPhone']));
+            throw new InvalidArgumentException(\sprintf('The "From" number "%s" is not a valid phone number.', $options['accountPhone']));
         }
 
         $response = $this->client->request('POST', $endpoint, [
@@ -81,7 +81,7 @@
 
         if (201 !== $statusCode) {
             $error = $response->getContent(false);
-            throw new TransportException(sprintf('Unable to send the SMS - "%s".', $error ?: 'unknown failure'), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS - "%s".', $error ?: 'unknown failure'), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SimpleTextin/Tests/SimpleTextinTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SimpleTextin/Tests/SimpleTextinTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SimpleTextin/Tests/SimpleTextinTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SimpleTextin/Tests/SimpleTextinTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\SimpleTextin\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\SimpleTextin\SimpleTextinTransport;
 use Symfony\Component\Notifier\Exception\InvalidArgumentException;
 use Symfony\Component\Notifier\Message\ChatMessage;
@@ -47,7 +48,7 @@
         $transport = $this->createTransport(null, $from);
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "From" number "%s" is not a valid phone number.', $from));
+        $this->expectExceptionMessage(\sprintf('The "From" number "%s" is not a valid phone number.', $from));
 
         $transport->send(new SmsMessage('+33612345678', 'Hello!'));
     }
@@ -59,15 +60,11 @@
     {
         $message = new SmsMessage('+33612345678', 'Hello!');
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects(self::exactly(2))->method('getStatusCode')->willReturn(201);
-        $response->expects(self::once())->method('getContent')->willReturn(json_encode(['id' => 'foo']));
-
-        $client = new MockHttpClient(function (string $method, string $url) use ($response): ResponseInterface {
+        $client = new MockHttpClient(static function (string $method, string $url): ResponseInterface {
             self::assertSame('POST', $method);
             self::assertSame('https://api-app2.simpletexting.com/v2/api/messages', $url);
 
-            return $response;
+            return new MockResponse(json_encode(['id' => 'foo']), ['http_code' => 201]);
         });
 
         $transport = $this->createTransport($client, $from);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Sinch/SinchTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Sinch/SinchTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Sinch/SinchTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Sinch/SinchTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
     public function __toString(): string
     {
-        return sprintf('sinch://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('sinch://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -57,7 +57,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/xms/v1/%s/batches', $this->getEndpoint(), $this->accountSid);
+        $endpoint = \sprintf('https://%s/xms/v1/%s/batches', $this->getEndpoint(), $this->accountSid);
         $response = $this->client->request('POST', $endpoint, [
             'auth_bearer' => $this->authToken,
             'json' => [
@@ -76,7 +76,7 @@
         if (201 !== $statusCode) {
             $error = $response->toArray(false);
 
-            throw new TransportException(sprintf('Unable to send the SMS: %s (%s).', $error['text'], $error['code']), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: %s (%s).', $error['text'], $error['code']), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Block/SlackContextBlock.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Block/SlackContextBlock.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Block/SlackContextBlock.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Block/SlackContextBlock.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public function text(string $text, bool $markdown = true, bool $emoji = true, bool $verbatim = false): static
     {
         if (self::ELEMENT_LIMIT === \count($this->options['elements'] ?? [])) {
-            throw new \LogicException(sprintf('Maximum number of elements should not exceed %d.', self::ELEMENT_LIMIT));
+            throw new \LogicException(\sprintf('Maximum number of elements should not exceed %d.', self::ELEMENT_LIMIT));
         }
 
         $element = [
@@ -49,7 +49,7 @@
     public function image(string $url, string $text): static
     {
         if (self::ELEMENT_LIMIT === \count($this->options['elements'] ?? [])) {
-            throw new \LogicException(sprintf('Maximum number of elements should not exceed %d.', self::ELEMENT_LIMIT));
+            throw new \LogicException(\sprintf('Maximum number of elements should not exceed %d.', self::ELEMENT_LIMIT));
         }
 
         $this->options['elements'][] = [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Block/SlackHeaderBlock.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Block/SlackHeaderBlock.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Block/SlackHeaderBlock.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Block/SlackHeaderBlock.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
     public function __construct(string $text)
     {
         if (\strlen($text) > self::TEXT_LIMIT) {
-            throw new LengthException(sprintf('Maximum length for the text is %d characters.', self::TEXT_LIMIT));
+            throw new LengthException(\sprintf('Maximum length for the text is %d characters.', self::TEXT_LIMIT));
         }
 
         $this->options = [
@@ -42,7 +42,7 @@
     public function id(string $id): static
     {
         if (\strlen($id) > self::ID_LIMIT) {
-            throw new LengthException(sprintf('Maximum length for the block id is %d characters.', self::ID_LIMIT));
+            throw new LengthException(\sprintf('Maximum length for the block id is %d characters.', self::ID_LIMIT));
         }
 
         $this->options['block_id'] = $id;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/SlackOptions.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/SlackOptions.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/SlackOptions.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/SlackOptions.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
         $this->options = $options;
 
         if (\count($this->options['blocks'] ?? []) > self::MAX_BLOCKS) {
-            throw new LogicException(sprintf('Maximum number of "blocks" has been reached (%d).', self::MAX_BLOCKS));
+            throw new LogicException(\sprintf('Maximum number of "blocks" has been reached (%d).', self::MAX_BLOCKS));
         }
     }
 
@@ -103,7 +103,7 @@
     public function block(SlackBlockInterface $block): static
     {
         if (\count($this->options['blocks'] ?? []) >= self::MAX_BLOCKS) {
-            throw new LogicException(sprintf('Maximum number of "blocks" has been reached (%d).', self::MAX_BLOCKS));
+            throw new LogicException(\sprintf('Maximum number of "blocks" has been reached (%d).', self::MAX_BLOCKS));
         }
 
         $this->options['blocks'][] = $block->toArray();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/SlackTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/SlackTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/SlackTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/SlackTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
             'channel' => $this->chatChannel,
         ]);
 
-        return sprintf('slack://%s%s', $this->getEndpoint(), $query ? '?'.http_build_query($query, '', '&') : '');
+        return \sprintf('slack://%s%s', $this->getEndpoint(), $query ? '?'.http_build_query($query, '', '&') : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -81,7 +81,7 @@
         }
 
         $response = $this->client->request('POST', 'https://'.$this->getEndpoint().'/api/'.$apiMethod, [
-            'json' => array_filter($options, function ($value): bool { return !\in_array($value, ['', [], null], true); }),
+            'json' => array_filter($options, static fn ($value): bool => !\in_array($value, ['', [], null], true)),
             'auth_bearer' => $this->accessToken,
             'headers' => [
                 'Content-Type' => 'application/json; charset=utf-8',
@@ -95,14 +95,14 @@
         }
 
         if (200 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to post the Slack message: "%s".', $response->getContent(false)), $response);
+            throw new TransportException(\sprintf('Unable to post the Slack message: "%s".', $response->getContent(false)), $response);
         }
 
         $result = $response->toArray(false);
         if (!$result['ok']) {
             $errors = isset($result['errors']) ? ' ('.implode('|', $result['errors']).')' : '';
 
-            throw new TransportException(sprintf('Unable to post the Slack message: "%s"%s.', $result['error'], $errors), $response);
+            throw new TransportException(\sprintf('Unable to post the Slack message: "%s"%s.', $result['error'], $errors), $response);
         }
 
         return new SlackSentMessage($message, (string) $this, $result['channel'], $result['ts']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Tests/SlackTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Tests/SlackTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Tests/SlackTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Slack/Tests/SlackTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Slack\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Slack\SlackOptions;
 use Symfony\Component\Notifier\Bridge\Slack\SlackSentMessage;
 use Symfony\Component\Notifier\Bridge\Slack\SlackTransport;
@@ -54,22 +55,14 @@
         $this->expectException(InvalidArgumentException::class);
         $this->expectExceptionMessage('A valid Slack token needs to start with "xoxb-", "xoxp-" or "xoxa-2". See https://api.slack.com/authentication/token-types for further information.');
 
-        new SlackTransport('token', 'testChannel', $this->createMock(HttpClientInterface::class));
+        new SlackTransport('token', 'testChannel', new MockHttpClient());
     }
 
     public function testSendWithEmptyArrayResponseThrowsTransportException()
     {
         $this->expectException(TransportException::class);
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(500);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn('[]');
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse('[]', ['http_code' => 500]));
 
         $transport = self::createTransport($client, 'testChannel');
 
@@ -81,16 +74,7 @@
         $this->expectException(TransportException::class);
         $this->expectExceptionMessageMatches('/testErrorCode/');
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['error' => 'testErrorCode']));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['error' => 'testErrorCode']), ['http_code' => 400]));
 
         $transport = self::createTransport($client, 'testChannel');
 
@@ -102,22 +86,12 @@
         $channel = 'testChannel';
         $message = 'testMessage';
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['ok' => true, 'ts' => '1503435956.000247', 'channel' => 'C123456']));
-
         $expectedBody = json_encode(['channel' => $channel, 'text' => $message]);
 
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $expectedBody): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($expectedBody): ResponseInterface {
             $this->assertJsonStringEqualsJsonString($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse(json_encode(['ok' => true, 'ts' => '1503435956.000247', 'channel' => 'C123456']));
         });
 
         $transport = self::createTransport($client, $channel);
@@ -134,16 +108,6 @@
         $channel = 'testChannel';
         $message = 'testMessage';
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['ok' => true, 'ts' => '1503435956.000247', 'channel' => 'C123456']));
-
         $notification = new Notification($message);
         $chatMessage = ChatMessage::fromNotification($notification);
         $options = SlackOptions::fromNotification($notification);
@@ -154,10 +118,10 @@
             'text' => $message,
         ]);
 
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $expectedBody): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($expectedBody): ResponseInterface {
             $this->assertJsonStringEqualsJsonString($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse(json_encode(['ok' => true, 'ts' => '1503435956.000247', 'channel' => 'C123456']));
         });
 
         $transport = self::createTransport($client, $channel);
@@ -176,16 +140,6 @@
         $channel = 'testChannel';
         $message = 'testMessage';
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['ok' => true, 'ts' => '1503435956.000247', 'channel' => 'C123456']));
-
         $options = new SlackOptions();
         $options->asUser($value);
         $options->linkNames($value);
@@ -206,10 +160,10 @@
             'unfurl_media' => $value,
         ]);
 
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $expectedBody): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($expectedBody): ResponseInterface {
             $this->assertJsonStringEqualsJsonString($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse(json_encode(['ok' => true, 'ts' => '1503435956.000247', 'channel' => 'C123456']));
         });
 
         $transport = self::createTransport($client, $channel);
@@ -224,22 +178,12 @@
 
         $this->expectException(TransportException::class);
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['ok' => false, 'error' => 'testErrorCode']));
-
         $expectedBody = json_encode(['channel' => $channel, 'text' => $message]);
 
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $expectedBody): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($expectedBody): ResponseInterface {
             $this->assertJsonStringEqualsJsonString($expectedBody, $options['body']);
 
-            return $response;
+            return new MockResponse(json_encode(['ok' => false, 'error' => 'testErrorCode']));
         });
 
         $transport = self::createTransport($client, $channel);
@@ -249,20 +193,10 @@
 
     public function testSendIncludesContentTypeWithCharset()
     {
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['ok' => true, 'ts' => '1503435956.000247', 'channel' => 'C123456']));
-
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []): ResponseInterface {
             $this->assertContains('Content-Type: application/json; charset=utf-8', $options['headers']);
 
-            return $response;
+            return new MockResponse(json_encode(['ok' => true, 'ts' => '1503435956.000247', 'channel' => 'C123456']));
         });
 
         $transport = self::createTransport($client);
@@ -272,21 +206,11 @@
 
     public function testSendWithErrorsIncluded()
     {
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode([
-                'ok' => false,
-                'error' => 'invalid_blocks',
-                'errors' => ['no more than 50 items allowed [json-pointer:/blocks]'],
-            ]));
-
-        $client = new MockHttpClient(fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode([
+            'ok' => false,
+            'error' => 'invalid_blocks',
+            'errors' => ['no more than 50 items allowed [json-pointer:/blocks]'],
+        ])));
 
         $transport = self::createTransport($client, 'testChannel');
 
@@ -298,16 +222,6 @@
 
     public function testUpdateMessage()
     {
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(200);
-
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['ok' => true, 'ts' => '1503435956.000247', 'channel' => 'C123456']));
-
         $sentMessage = new SlackSentMessage(new ChatMessage('Hello'), 'slack', 'C123456', '1503435956.000247');
         $chatMessage = $sentMessage->getUpdateMessage('Hello World');
 
@@ -317,11 +231,11 @@
             'text' => 'Hello World',
         ]);
 
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $expectedBody): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($expectedBody): ResponseInterface {
             $this->assertJsonStringEqualsJsonString($expectedBody, $options['body']);
             $this->assertStringEndsWith('chat.update', $url);
 
-            return $response;
+            return new MockResponse(json_encode(['ok' => true, 'ts' => '1503435956.000247', 'channel' => 'C123456']));
         });
 
         $transport = $this->createTransport($client, 'another-channel');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Sms77/Sms77Transport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Sms77/Sms77Transport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Sms77/Sms77Transport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Sms77/Sms77Transport.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
 
     public function __toString(): string
     {
-        return sprintf('sms77://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
+        return \sprintf('sms77://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -55,7 +55,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/api/sms', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/api/sms', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'headers' => [
                 'Content-Type' => 'application/json',
@@ -79,13 +79,13 @@
         if (200 !== $statusCode) {
             $error = $response->toArray(false);
 
-            throw new TransportException(sprintf('Unable to send the SMS: "%s" (%s).', $error['description'], $error['code']), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: "%s" (%s).', $error['description'], $error['code']), $response);
         }
 
         $success = $response->toArray(false);
 
         if (false === \in_array($success['success'], [100, 101])) {
-            throw new TransportException(sprintf('Unable to send the SMS: "%s".', $success['success']), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: "%s".', $success['success']), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Smsapi/SmsapiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Smsapi/SmsapiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Smsapi/SmsapiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Smsapi/SmsapiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
             'test' => (int) $this->test,
         ]);
 
-        return sprintf('smsapi://%s%s', $this->getEndpoint(), $query ? '?'.http_build_query($query, '', '&') : '');
+        return \sprintf('smsapi://%s%s', $this->getEndpoint(), $query ? '?'.http_build_query($query, '', '&') : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -98,7 +98,7 @@
             $body['from'] = $from;
         }
 
-        $endpoint = sprintf('https://%s/sms.do', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/sms.do', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'auth_bearer' => $this->authToken,
             'body' => $body,
@@ -117,7 +117,7 @@
         }
 
         if (isset($content['error']) || 200 !== $statusCode) {
-            throw new TransportException(sprintf('Unable to send the SMS: "%s".', $content['message'] ?? 'unknown error'), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: "%s".', $content['message'] ?? 'unknown error'), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SmsBiuras/SmsBiurasTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SmsBiuras/SmsBiurasTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SmsBiuras/SmsBiurasTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SmsBiuras/SmsBiurasTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
 
     public function __toString(): string
     {
-        return sprintf('smsbiuras://%s?from=%s%s', $this->getEndpoint(), $this->from, $this->testMode ? '&test_mode=1' : '');
+        return \sprintf('smsbiuras://%s?from=%s%s', $this->getEndpoint(), $this->from, $this->testMode ? '&test_mode=1' : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -73,7 +73,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/api?', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/api?', $this->getEndpoint());
 
         $response = $this->client->request('GET', $endpoint, [
             'query' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SmsBiuras/Tests/SmsBiurasTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SmsBiuras/Tests/SmsBiurasTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SmsBiuras/Tests/SmsBiurasTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SmsBiuras/Tests/SmsBiurasTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\SmsBiuras\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\SmsBiuras\SmsBiurasTransport;
 use Symfony\Component\Notifier\Message\ChatMessage;
 use Symfony\Component\Notifier\Message\SmsMessage;
@@ -50,17 +51,9 @@
     {
         $message = new SmsMessage('0037012345678', 'Hello World');
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->atLeast(1))
-            ->method('getStatusCode')
-            ->willReturn(200);
-        $response->expects($this->atLeast(1))
-            ->method('getContent')
-            ->willReturn('OK: 519545');
-
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $message, $expected): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($message, $expected): ResponseInterface {
             $this->assertSame('GET', $method);
-            $this->assertSame(sprintf(
+            $this->assertSame(\sprintf(
                 'https://savitarna.smsbiuras.lt/api?uid=uid&apikey=api_key&message=%s&from=from&test=%s&to=%s',
                 rawurlencode($message->getSubject()),
                 $expected,
@@ -68,10 +61,7 @@
             ), $url);
             $this->assertSame($expected, $options['query']['test']);
 
-            $this->assertSame(200, $response->getStatusCode());
-            $this->assertSame('OK: 519545', $response->getContent());
-
-            return $response;
+            return new MockResponse('OK: 519545');
         });
 
         $transport = new SmsBiurasTransport('uid', 'api_key', 'from', $testMode, $client);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Smsc/SmscTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Smsc/SmscTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Smsc/SmscTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Smsc/SmscTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
 
     public function __toString(): string
     {
-        return sprintf('smsc://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('smsc://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -70,7 +70,7 @@
             'time' => '0-24',
         ];
 
-        $endpoint = sprintf('https://%s/sys/send.php', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/sys/send.php', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, ['body' => $body]);
 
         try {
@@ -84,7 +84,7 @@
         }
 
         if (\array_key_exists('error', $result)) {
-            throw new TransportException(sprintf('Unable to send the SMS: code = %d, message = "%s".', $result['error_code'], $result['error']), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS: code = %d, message = "%s".', $result['error_code'], $result['error']), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SmsFactor/SmsFactorTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SmsFactor/SmsFactorTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SmsFactor/SmsFactorTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SmsFactor/SmsFactorTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
             'push_type' => $this->pushType?->value,
         ]);
 
-        return sprintf('sms-factor://%s%s', $this->getEndpoint(), $query ? '?'.http_build_query($query, '', '&') : '');
+        return \sprintf('sms-factor://%s%s', $this->getEndpoint(), $query ? '?'.http_build_query($query, '', '&') : '');
     }
 
     public function supports(MessageInterface $message): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Smsmode/SmsmodeTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Smsmode/SmsmodeTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Smsmode/SmsmodeTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Smsmode/SmsmodeTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,14 +33,14 @@
         #[\SensitiveParameter] private readonly string $apiKey,
         private readonly ?string $from = null,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
 
     public function __toString(): string
     {
-        return sprintf('smsmode://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
+        return \sprintf('smsmode://%s%s', $this->getEndpoint(), null !== $this->from ? '?from='.$this->from : '');
     }
 
     public function supports(MessageInterface $message): bool
@@ -57,7 +57,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/sms/v1/messages', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/sms/v1/messages', $this->getEndpoint());
 
         $options = $message->getOptions()?->toArray() ?? [];
         $options['body']['text'] = $message->getSubject();
@@ -65,7 +65,7 @@
         $options['from'] = $message->getFrom() ?: $this->from;
 
         if (!preg_match('/^[a-zA-Z0-9\s]{1,11}$/', $options['from'] ?? '')) {
-            throw new InvalidArgumentException(sprintf('The "From" value "%s" is not a valid sender ID.', $options['from']));
+            throw new InvalidArgumentException(\sprintf('The "From" value "%s" is not a valid sender ID.', $options['from']));
         }
 
         $response = $this->client->request('POST', $endpoint, [
@@ -84,7 +84,7 @@
 
         if (201 !== $statusCode) {
             $error = $response->getContent(false);
-            throw new TransportException(sprintf('Unable to send the SMS - "%s".', $error ?: 'unknown failure'), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS - "%s".', $error ?: 'unknown failure'), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Smsmode/Tests/SmsmodeTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Smsmode/Tests/SmsmodeTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Smsmode/Tests/SmsmodeTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Smsmode/Tests/SmsmodeTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Smsmode\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Smsmode\SmsmodeOptions;
 use Symfony\Component\Notifier\Bridge\Smsmode\SmsmodeTransport;
 use Symfony\Component\Notifier\Exception\InvalidArgumentException;
@@ -48,7 +49,7 @@
         $transport = $this->createTransport(null, $from);
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "From" value "%s" is not a valid sender ID.', $from));
+        $this->expectExceptionMessage(\sprintf('The "From" value "%s" is not a valid sender ID.', $from));
 
         $transport->send(new SmsMessage('+33612345678', 'Hello!'));
     }
@@ -60,17 +61,11 @@
     {
         $message = new SmsMessage('+33612345678', 'Hello!');
 
-        $response = $this->createMock(ResponseInterface::class);
-
-        $response->expects(self::exactly(2))->method('getStatusCode')->willReturn(201);
-
-        $response->expects(self::once())->method('getContent')->willReturn(json_encode(['messageId' => 'foo']));
-
-        $client = new MockHttpClient(function (string $method, string $url) use ($response): ResponseInterface {
+        $client = new MockHttpClient(static function (string $method, string $url): ResponseInterface {
             self::assertSame('POST', $method);
             self::assertSame('https://rest.smsmode.com/sms/v1/messages', $url);
 
-            return $response;
+            return new MockResponse(json_encode(['messageId' => 'foo']), ['http_code' => 201]);
         });
 
         $transport = $this->createTransport($client, $from);
@@ -84,16 +79,12 @@
     {
         $message = new SmsMessage('+33612345678', 'Hello!');
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects(self::exactly(2))->method('getStatusCode')->willReturn(201);
-        $response->expects(self::once())->method('getContent')->willReturn(json_encode(['messageId' => 'foo']));
-
-        $transport = $this->createTransport(new MockHttpClient(function (string $method, string $url, array $options) use ($response): ResponseInterface {
+        $transport = $this->createTransport(new MockHttpClient(function (string $method, string $url, array $options): ResponseInterface {
             $this->assertSame('POST', $method);
             $this->assertSame('https://rest.smsmode.com/sms/v1/messages', $url);
             $this->assertSame('Accept: application/json', $options['normalized_headers']['accept'][0]);
 
-            return $response;
+            return new MockResponse(json_encode(['messageId' => 'foo']), ['http_code' => 201]);
         }), 'foo');
 
         $result = $transport->send($message);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SpotHit/SpotHitTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SpotHit/SpotHitTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SpotHit/SpotHitTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SpotHit/SpotHitTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
             'smslongnbr' => $this->smsLongNBr,
         ]);
 
-        return sprintf('spothit://%s', $this->getEndpoint()).('' !== $query ? '?'.$query : '');
+        return \sprintf('spothit://%s', $this->getEndpoint()).('' !== $query ? '?'.$query : '');
     }
 
     public function setSmsLong(?bool $smsLong): self
@@ -90,7 +90,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://www.%s/api/envoyer/sms', $this->getEndpoint());
+        $endpoint = \sprintf('https://www.%s/api/envoyer/sms', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'body' => [
                 'key' => $this->token,
@@ -113,7 +113,7 @@
 
         if (!$data['resultat']) {
             $errors = \is_array($data['erreurs']) ? implode(',', $data['erreurs']) : $data['erreurs'];
-            throw new TransportException(sprintf('[HTTP %d] Unable to send the SMS: error(s) "%s".', $response->getStatusCode(), $errors), $response);
+            throw new TransportException(\sprintf('[HTTP %d] Unable to send the SMS: error(s) "%s".', $response->getStatusCode(), $errors), $response);
         }
 
         $sentMessage = new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SpotHit/Tests/SpotHitTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SpotHit/Tests/SpotHitTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/SpotHit/Tests/SpotHitTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/SpotHit/Tests/SpotHitTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -97,7 +97,7 @@
     public function testShouldForwardArgumentToRequest($setupTransport, $assertions)
     {
         $expectedRequest = [
-            function ($method, $url, $options) use ($assertions) {
+            static function ($method, $url, $options) use ($assertions) {
                 $bodyFields = [];
                 parse_str($options['body'], $bodyFields);
                 $assertions($bodyFields);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/TelegramTransportFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/TelegramTransportFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/TelegramTransportFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/TelegramTransportFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,6 +52,6 @@
             throw new IncompleteDsnException('Malformed token.', 'telegram://'.$dsn->getHost());
         }
 
-        return sprintf('%s:%s', $dsn->getUser(), $dsn->getPassword());
+        return \sprintf('%s:%s', $dsn->getUser(), $dsn->getPassword());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/TelegramTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/TelegramTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/TelegramTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/TelegramTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,10 +62,10 @@
     public function __toString(): string
     {
         if (null === $this->chatChannel) {
-            return sprintf('telegram://%s', $this->getEndpoint());
+            return \sprintf('telegram://%s', $this->getEndpoint());
         }
 
-        return sprintf('telegram://%s?channel=%s', $this->getEndpoint(), $this->chatChannel);
+        return \sprintf('telegram://%s?channel=%s', $this->getEndpoint(), $this->chatChannel);
     }
 
     public function supports(MessageInterface $message): bool
@@ -97,7 +97,7 @@
              *  - __underlined text__
              *  - various notations of images, f. ex. [title](url)
              *  - `code samples`.
-             * 
+             *
              * These formats should be taken care of when the message is constructed.
              *
              * @see https://core.telegram.org/bots/api#markdownv2-style
@@ -121,7 +121,7 @@
         $this->ensureExclusiveOptionsNotDuplicated($options);
         $options = $this->expandOptions($options, 'contact', 'location', 'venue');
 
-        $endpoint = sprintf('https://%s/bot%s/%s', $this->getEndpoint(), $this->token, $method);
+        $endpoint = \sprintf('https://%s/bot%s/%s', $this->getEndpoint(), $this->token, $method);
 
         $response = $this->client->request('POST', $endpoint, [
             $optionsContainer => array_filter($options),
@@ -136,7 +136,7 @@
         if (200 !== $statusCode) {
             $result = $response->toArray(false);
 
-            throw new TransportException('Unable to '.$this->getAction($options).' the Telegram message: '.$result['description'].sprintf(' (code %d).', $result['error_code']), $response);
+            throw new TransportException('Unable to '.$this->getAction($options).' the Telegram message: '.$result['description'].\sprintf(' (code %d).', $result['error_code']), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/Tests/TelegramTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/Tests/TelegramTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/Tests/TelegramTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Telegram/Tests/TelegramTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\HttpClient\Response\JsonMockResponse;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Telegram\TelegramOptions;
 use Symfony\Component\Notifier\Bridge\Telegram\TelegramTransport;
 use Symfony\Component\Notifier\Exception\MultipleExclusiveOptionsUsedException;
@@ -55,15 +56,7 @@
         $this->expectException(TransportException::class);
         $this->expectExceptionMessageMatches('/post.+testDescription.+400/');
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['description' => 'testDescription', 'error_code' => 400]));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['description' => 'testDescription', 'error_code' => 400]), ['http_code' => 400]));
 
         $transport = self::createTransport($client, 'testChannel');
 
@@ -75,15 +68,7 @@
         $this->expectException(TransportException::class);
         $this->expectExceptionMessageMatches('/edit.+testDescription.+404/');
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(400);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode(['description' => 'testDescription', 'error_code' => 404]));
-
-        $client = new MockHttpClient(static fn (): ResponseInterface => $response);
+        $client = new MockHttpClient(new MockResponse(json_encode(['description' => 'testDescription', 'error_code' => 404]), ['http_code' => 400]));
 
         $transport = $this->createTransport($client, 'testChannel');
         $transport->send(new ChatMessage(
@@ -404,7 +389,7 @@
                         'emoji' => '🤖',
                     ],
                     'caption' => 'testMessage',
-                    ],
+                ],
             ],
             'sticker-without-emoji' => [
                 'messageOptions' => (new TelegramOptions())->sticker('https://localhost/sticker.webp'),
@@ -848,7 +833,7 @@
 
                 BODY;
             $expectedBody = str_replace("\n", "\r\n", $expectedBody);
-            $expectedBody = sprintf($expectedBody, file_get_contents(self::FIXTURE_FILE));
+            $expectedBody = \sprintf($expectedBody, file_get_contents(self::FIXTURE_FILE));
 
             $body = '';
             do {
@@ -985,14 +970,14 @@
     public function testSendContactWithOptions()
     {
         $vCard = <<<V_CARD
-BEGIN:VCARD
-VERSION:3.0
-N:Doe;John;;;
-FN:John Doe
-EMAIL;type=INTERNET;type=WORK;type=pref:johnDoe@example.org
-TEL;type=WORK;type=pref:+330186657200
-END:VCARD
-V_CARD;
+            BEGIN:VCARD
+            VERSION:3.0
+            N:Doe;John;;;
+            FN:John Doe
+            EMAIL;type=INTERNET;type=WORK;type=pref:johnDoe@example.org
+            TEL;type=WORK;type=pref:+330186657200
+            END:VCARD
+            V_CARD;
 
         $response = new JsonMockResponse([
             'ok' => true,
@@ -1081,7 +1066,7 @@
      */
     public function testUsingMultipleExclusiveOptionsWillProvideExceptions(TelegramOptions $messageOptions)
     {
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []): ResponseInterface {
+        $client = new MockHttpClient(static function (string $method, string $url, array $options = []): ResponseInterface {
             self::fail('Telegram API should not be called');
         });
         $transport = self::createTransport($client, 'testChannel');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Telnyx/TelnyxTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Telnyx/TelnyxTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Telnyx/TelnyxTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Telnyx/TelnyxTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,10 +45,10 @@
     public function __toString(): string
     {
         if (null !== $this->messagingProfileId) {
-            return sprintf('telnyx://%s?from=%s&messaging_profile_id=%s', $this->getEndpoint(), $this->from, $this->messagingProfileId);
+            return \sprintf('telnyx://%s?from=%s&messaging_profile_id=%s', $this->getEndpoint(), $this->from, $this->messagingProfileId);
         }
 
-        return sprintf('telnyx://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('telnyx://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -76,7 +76,7 @@
             }
         }
 
-        $endpoint = sprintf('https://%s/v2/messages', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/v2/messages', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'auth_bearer' => $this->apiKey,
             'json' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Termii/TermiiTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Termii/TermiiTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Termii/TermiiTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Termii/TermiiTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,14 +35,14 @@
         private readonly string $from,
         private readonly string $channel,
         ?HttpClientInterface $client = null,
-        ?EventDispatcherInterface $dispatcher = null
+        ?EventDispatcherInterface $dispatcher = null,
     ) {
         parent::__construct($client, $dispatcher);
     }
 
     public function __toString(): string
     {
-        return sprintf('termii://%s?from=%s&channel=%s', $this->getEndpoint(), $this->from, $this->channel);
+        return \sprintf('termii://%s?from=%s&channel=%s', $this->getEndpoint(), $this->from, $this->channel);
     }
 
     public function supports(MessageInterface $message): bool
@@ -65,10 +65,10 @@
         $options['type'] ??= 'plain';
 
         if (!preg_match('/^[a-zA-Z0-9\s]{3,11}$/', $options['from']) && !preg_match('/^\+?[1-9]\d{1,14}$/', $options['from'])) {
-            throw new InvalidArgumentException(sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $options['from']));
+            throw new InvalidArgumentException(\sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $options['from']));
         }
 
-        $endpoint = sprintf('https://%s/api/sms/send', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/api/sms/send', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'json' => array_filter($options),
         ]);
@@ -85,7 +85,7 @@
             } catch (JsonException) {
                 $error['message'] = $response->getContent(false);
             }
-            throw new TransportException(sprintf('Unable to send the SMS - status code: "%s": "%s".', $statusCode, $error['message'] ?? 'unknown error'), $response);
+            throw new TransportException(\sprintf('Unable to send the SMS - status code: "%s": "%s".', $statusCode, $error['message'] ?? 'unknown error'), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Termii/Tests/TermiiTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Termii/Tests/TermiiTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Termii/Tests/TermiiTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Termii/Tests/TermiiTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Termii\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Termii\TermiiOptions;
 use Symfony\Component\Notifier\Bridge\Termii\TermiiTransport;
 use Symfony\Component\Notifier\Exception\InvalidArgumentException;
@@ -51,7 +52,7 @@
         $transport = $this->createTransport(null, $from);
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
+        $this->expectExceptionMessage(\sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
 
         $transport->send(new SmsMessage('+33612345678', 'Hello!'));
     }
@@ -62,14 +63,11 @@
     public function testNoInvalidArgumentExceptionIsThrownIfFromIsValid(string $from)
     {
         $message = new SmsMessage('+33612345678', 'Hello!');
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects(self::exactly(2))->method('getStatusCode')->willReturn(200);
-        $response->expects(self::once())->method('getContent')->willReturn(json_encode(['message' => 'Successfully sent', 'message_id' => 'foo', 'balance' => 9, 'user' => 'Foo Bar']));
-        $client = new MockHttpClient(function (string $method, string $url) use ($response): ResponseInterface {
+        $client = new MockHttpClient(static function (string $method, string $url): ResponseInterface {
             self::assertSame('POST', $method);
             self::assertSame('https://api.ng.termii.com/api/sms/send', $url);
 
-            return $response;
+            return new MockResponse(json_encode(['message' => 'Successfully sent', 'message_id' => 'foo', 'balance' => 9, 'user' => 'Foo Bar']));
         }
         );
         $transport = $this->createTransport($client, $from);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/TurboSms/Tests/TurboSmsTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/TurboSms/Tests/TurboSmsTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/TurboSms/Tests/TurboSmsTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/TurboSms/Tests/TurboSmsTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -118,7 +118,7 @@
             ]))
         ;
 
-        $client = new MockHttpClient(static fn() => $response);
+        $client = new MockHttpClient(static fn () => $response);
 
         $message = new SmsMessage('380931234567', 'Test');
 
@@ -166,7 +166,7 @@
         $this->expectExceptionMessage('The sender length of a TurboSMS message must not exceed 20 characters.');
 
         $message = new SmsMessage('380931234567', 'Hello!');
-        $transport = new TurboSmsTransport('authToken', 'abcdefghijklmnopqrstu', $this->createMock(HttpClientInterface::class));
+        $transport = new TurboSmsTransport('authToken', 'abcdefghijklmnopqrstu', new MockHttpClient());
 
         $transport->send($message);
     }
@@ -174,7 +174,7 @@
     public function testInvalidSubjectWithLatinSymbols()
     {
         $message = new SmsMessage('380931234567', str_repeat('z', 1522));
-        $transport = new TurboSmsTransport('authToken', 'sender', $this->createMock(HttpClientInterface::class));
+        $transport = new TurboSmsTransport('authToken', 'sender', new MockHttpClient());
 
         $this->expectException(LengthException::class);
         $this->expectExceptionMessage('The subject length for "latin" symbols of a TurboSMS message must not exceed 1521 characters.');
@@ -185,7 +185,7 @@
     public function testInvalidSubjectWithCyrillicSymbols()
     {
         $message = new SmsMessage('380931234567', str_repeat('z', 661).'Й');
-        $transport = new TurboSmsTransport('authToken', 'sender', $this->createMock(HttpClientInterface::class));
+        $transport = new TurboSmsTransport('authToken', 'sender', new MockHttpClient());
 
         $this->expectException(LengthException::class);
         $this->expectExceptionMessage('The subject length for "cyrillic" symbols of a TurboSMS message must not exceed 661 characters.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/TurboSms/TurboSmsTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/TurboSms/TurboSmsTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/TurboSms/TurboSmsTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/TurboSms/TurboSmsTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
 
     public function __toString(): string
     {
-        return sprintf('turbosms://%s?from=%s', $this->getEndpoint(), urlencode($this->from));
+        return \sprintf('turbosms://%s?from=%s', $this->getEndpoint(), urlencode($this->from));
     }
 
     public function supports(MessageInterface $message): bool
@@ -74,7 +74,7 @@
             $from = $this->from;
         }
 
-        $endpoint = sprintf('https://%s/message/send.json', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/message/send.json', $this->getEndpoint());
         $response = $this->client->request('POST', $endpoint, [
             'auth_bearer' => $this->authToken,
             'json' => [
@@ -92,7 +92,7 @@
             if (null === $messageId = $success['response_result'][0]['message_id']) {
                 $responseResult = $success['response_result'][0];
 
-                throw new TransportException(sprintf('Unable to send SMS with TurboSMS: Error code %d with message "%s".', (int) $responseResult['response_code'], $responseResult['response_status']), $response);
+                throw new TransportException(\sprintf('Unable to send SMS with TurboSMS: Error code %d with message "%s".', (int) $responseResult['response_code'], $responseResult['response_status']), $response);
             }
 
             $sentMessage = new SentMessage($message, (string) $this);
@@ -103,13 +103,13 @@
 
         $error = $response->toArray(false);
 
-        throw new TransportException(sprintf('Unable to send SMS with TurboSMS: Error code %d with message "%s".', (int) $error['response_code'], $error['response_status']), $response);
+        throw new TransportException(\sprintf('Unable to send SMS with TurboSMS: Error code %d with message "%s".', (int) $error['response_code'], $error['response_status']), $response);
     }
 
     private function assertValidFrom(string $from): void
     {
         if (mb_strlen($from, 'UTF-8') > self::SENDER_LIMIT) {
-            throw new LengthException(sprintf('The sender length of a TurboSMS message must not exceed %d characters.', self::SENDER_LIMIT));
+            throw new LengthException(\sprintf('The sender length of a TurboSMS message must not exceed %d characters.', self::SENDER_LIMIT));
         }
     }
 
@@ -125,7 +125,7 @@
         }
 
         if (mb_strlen($subject, 'UTF-8') > $subjectLimit) {
-            throw new LengthException(sprintf('The subject length for "%s" symbols of a TurboSMS message must not exceed %d characters.', $symbols, $subjectLimit));
+            throw new LengthException(\sprintf('The subject length for "%s" symbols of a TurboSMS message must not exceed %d characters.', $symbols, $subjectLimit));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Tests/TwilioTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Tests/TwilioTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Tests/TwilioTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Tests/TwilioTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Bridge\Twilio\Tests;
 
 use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Notifier\Bridge\Twilio\TwilioTransport;
 use Symfony\Component\Notifier\Exception\InvalidArgumentException;
 use Symfony\Component\Notifier\Message\ChatMessage;
@@ -52,7 +53,7 @@
         $transport = self::createTransport(null, $from);
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
+        $this->expectExceptionMessage(\sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
 
         $transport->send(new SmsMessage('+33612345678', 'Hello!'));
     }
@@ -65,7 +66,7 @@
         $transport = $this->createTransport();
 
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
+        $this->expectExceptionMessage(\sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
 
         $transport->send(new SmsMessage('+33612345678', 'Hello!', $from));
     }
@@ -88,23 +89,15 @@
     {
         $message = new SmsMessage('+33612345678', 'Hello!');
 
-        $response = $this->createMock(ResponseInterface::class);
-        $response->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->willReturn(201);
-        $response->expects($this->once())
-            ->method('getContent')
-            ->willReturn(json_encode([
-                'sid' => '123',
-                'message' => 'foo',
-                'more_info' => 'bar',
-            ]));
-
-        $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response): ResponseInterface {
+        $client = new MockHttpClient(function (string $method, string $url, array $options = []): ResponseInterface {
             $this->assertSame('POST', $method);
             $this->assertSame('https://api.twilio.com/2010-04-01/Accounts/accountSid/Messages.json', $url);
 
-            return $response;
+            return new MockResponse(json_encode([
+                'sid' => '123',
+                'message' => 'foo',
+                'more_info' => 'bar',
+            ]), ['http_code' => 201]);
         });
 
         $transport = self::createTransport($client, $from);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Tests/Webhook/TwilioRequestParserTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Tests/Webhook/TwilioRequestParserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Tests/Webhook/TwilioRequestParserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Tests/Webhook/TwilioRequestParserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Notifier\Bridge\Twilio\Webhook\TwilioRequestParser;
 use Symfony\Component\Webhook\Client\RequestParserInterface;
+use Symfony\Component\Webhook\Exception\RejectWebhookException;
 use Symfony\Component\Webhook\Test\AbstractRequestParserTestCase;
 
 class TwilioRequestParserTest extends AbstractRequestParserTestCase
@@ -36,4 +37,86 @@
     {
         return 'txt';
     }
+
+    public function testValidSignatureIsAccepted()
+    {
+        $secret = 's3cret-token';
+        $params = [
+            'MessageSid' => 'SM1234',
+            'MessageStatus' => 'delivered',
+            'To' => '+15555550100',
+        ];
+        $url = 'https://example.com/webhook';
+        $signature = $this->computeTwilioSignature($url, $params, $secret);
+
+        $request = Request::create($url, 'POST', $params, [], [], [
+            'Content-Type' => 'application/x-www-form-urlencoded',
+            'HTTP_X-Twilio-Signature' => $signature,
+        ]);
+
+        $event = (new TwilioRequestParser())->parse($request, $secret);
+        $this->assertNotNull($event);
+        $this->assertSame('SM1234', $event->getId());
+    }
+
+    public function testMissingSignatureHeaderIsRejected()
+    {
+        $request = Request::create('https://example.com/webhook', 'POST', [
+            'MessageSid' => 'SM1234',
+            'MessageStatus' => 'delivered',
+            'To' => '+15555550100',
+        ], [], [], [
+            'Content-Type' => 'application/x-www-form-urlencoded',
+        ]);
+
+        $this->expectException(RejectWebhookException::class);
+        (new TwilioRequestParser())->parse($request, 's3cret-token');
+    }
+
+    public function testBadSignatureIsRejected()
+    {
+        $request = Request::create('https://example.com/webhook', 'POST', [
+            'MessageSid' => 'SM1234',
+            'MessageStatus' => 'delivered',
+            'To' => '+15555550100',
+        ], [], [], [
+            'Content-Type' => 'application/x-www-form-urlencoded',
+            'HTTP_X-Twilio-Signature' => base64_encode('not-the-right-mac'),
+        ]);
+
+        $this->expectException(RejectWebhookException::class);
+        (new TwilioRequestParser())->parse($request, 's3cret-token');
+    }
+
+    public function testJsonContentTypeIsRejected()
+    {
+        $request = Request::create(
+            'https://example.com/webhook',
+            'POST',
+            [],
+            [],
+            [],
+            ['Content-Type' => 'application/json'],
+            json_encode([
+                'MessageSid' => 'SM1234',
+                'MessageStatus' => 'delivered',
+                'To' => '+15555550100',
+            ])
+        );
+
+        $this->expectException(RejectWebhookException::class);
+        $this->expectExceptionMessage('Payload is malformed.');
+        (new TwilioRequestParser())->parse($request, 's3cret-token');
+    }
+
+    private function computeTwilioSignature(string $url, array $params, string $secret): string
+    {
+        ksort($params);
+        $data = $url;
+        foreach ($params as $k => $v) {
+            $data .= $k.$v;
+        }
+
+        return base64_encode(hash_hmac('sha1', $data, $secret, true));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/TwilioTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/TwilioTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/TwilioTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/TwilioTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
 
     public function __toString(): string
     {
-        return sprintf('twilio://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('twilio://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -61,10 +61,10 @@
         $from = $message->getFrom() ?: $this->from;
 
         if (!preg_match('/^[a-zA-Z0-9\s]{2,11}$/', $from) && !preg_match('/^\+[1-9]\d{1,14}$/', $from)) {
-            throw new InvalidArgumentException(sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
+            throw new InvalidArgumentException(\sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $from));
         }
 
-        $endpoint = sprintf('https://%s/2010-04-01/Accounts/%s/Messages.json', $this->getEndpoint(), $this->accountSid);
+        $endpoint = \sprintf('https://%s/2010-04-01/Accounts/%s/Messages.json', $this->getEndpoint(), $this->accountSid);
         $options = $message->getOptions()?->toArray() ?? [];
         $body = [
             'From' => $from,
@@ -88,7 +88,7 @@
         if (201 !== $statusCode) {
             $error = $response->toArray(false);
 
-            throw new TransportException('Unable to send the SMS: '.$error['message'].sprintf(' (see %s).', $error['more_info']), $response);
+            throw new TransportException('Unable to send the SMS: '.$error['message'].\sprintf(' (see %s).', $error['more_info']), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Webhook/TwilioRequestParser.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Webhook/TwilioRequestParser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Webhook/TwilioRequestParser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Twilio/Webhook/TwilioRequestParser.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,6 +38,10 @@
             throw new RejectWebhookException(406, 'Payload is malformed.');
         }
 
+        if ('' !== $secret) {
+            $this->verifySignature($request, $payload, $secret);
+        }
+
         $name = match ($payload['MessageStatus']) {
             'delivered' => SmsEvent::DELIVERED,
             'failed' => SmsEvent::FAILED,
@@ -50,7 +54,7 @@
             'receiving' => null,
             'received' => null,
             'scheduled' => null,
-            default => throw new RejectWebhookException(406, sprintf('Unsupported event "%s".', $payload['event'])),
+            default => throw new RejectWebhookException(406, \sprintf('Unsupported event "%s".', $payload['MessageStatus'])),
         };
         if (!$name) {
             return null;
@@ -60,4 +64,30 @@
 
         return $event;
     }
+
+    /**
+     * Validates the X-Twilio-Signature header against the documented scheme:
+     * HMAC-SHA1 over the full request URL concatenated with the POST parameters
+     * sorted alphabetically by key (key1.value1.key2.value2...), then base64-encoded.
+     *
+     * @see https://www.twilio.com/docs/usage/webhooks/webhooks-security
+     */
+    private function verifySignature(Request $request, array $payload, #[\SensitiveParameter] string $secret): void
+    {
+        if (!$signature = $request->headers->get('X-Twilio-Signature')) {
+            throw new RejectWebhookException(406, 'Missing signature header.');
+        }
+
+        ksort($payload);
+        $data = $request->getUri();
+        foreach ($payload as $key => $value) {
+            $data .= $key.$value;
+        }
+
+        $expected = base64_encode(hash_hmac('sha1', $data, $secret, true));
+
+        if (!hash_equals($expected, $signature)) {
+            throw new RejectWebhookException(406, 'Signature is invalid.');
+        }
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Twitter/TwitterTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Twitter/TwitterTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Twitter/TwitterTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Twitter/TwitterTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
 
     public function __toString(): string
     {
-        return sprintf('twitter://%s', $this->getEndpoint());
+        return \sprintf('twitter://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -98,13 +98,13 @@
             implode('&', array_map('rawurlencode', [
                 $method,
                 $url,
-                implode('&', array_map(fn ($k) => rawurlencode($k).'='.rawurlencode($sign[$k]), array_keys($sign))),
+                implode('&', array_map(static fn ($k) => rawurlencode($k).'='.rawurlencode($sign[$k]), array_keys($sign))),
             ])),
             rawurlencode($this->apiSecret).'&'.rawurlencode($this->accessSecret),
             true
         ));
 
-        $options['headers'][] = 'Authorization: OAuth '.implode(', ', array_map(fn ($k) => $k.'="'.rawurlencode($oauth[$k]).'"', array_keys($oauth)));
+        $options['headers'][] = 'Authorization: OAuth '.implode(', ', array_map(static fn ($k) => $k.'="'.rawurlencode($oauth[$k]).'"', array_keys($oauth)));
 
         return $this->client->request($method, $url, $options);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Vonage/VonageTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Vonage/VonageTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Vonage/VonageTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Vonage/VonageTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
 
     public function __toString(): string
     {
-        return sprintf('vonage://%s?from=%s', $this->getEndpoint(), $this->from);
+        return \sprintf('vonage://%s?from=%s', $this->getEndpoint(), $this->from);
     }
 
     public function supports(MessageInterface $message): bool
@@ -76,7 +76,7 @@
 
         foreach ($result['messages'] as $msg) {
             if ($msg['status'] ?? false) {
-                throw new TransportException('Unable to send the SMS: '.$msg['error-text'].sprintf(' (code %s).', $msg['status']), $response);
+                throw new TransportException('Unable to send the SMS: '.$msg['error-text'].\sprintf(' (code %s).', $msg['status']), $response);
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Vonage/Webhook/VonageRequestParser.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Vonage/Webhook/VonageRequestParser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Vonage/Webhook/VonageRequestParser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Vonage/Webhook/VonageRequestParser.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
         }
 
         if ('sms' !== $payload['channel']) {
-            throw new RejectWebhookException(406, sprintf('Unsupported channel "%s".', $payload['channel']));
+            throw new RejectWebhookException(406, \sprintf('Unsupported channel "%s".', $payload['channel']));
         }
 
         $name = match ($payload['status']) {
@@ -63,7 +63,7 @@
             'rejected' => SmsEvent::FAILED,
             'submitted' => null,
             'undeliverable' => SmsEvent::FAILED,
-            default => throw new RejectWebhookException(406, sprintf('Unsupported event "%s".', $payload['status'])),
+            default => throw new RejectWebhookException(406, \sprintf('Unsupported event "%s".', $payload['status'])),
         };
         if (!$name) {
             return null;
@@ -83,7 +83,8 @@
         }
 
         [$header, $payload, $signature] = $tokenParts;
-        if ($signature !== $this->base64EncodeUrl(hash_hmac('sha256', $header.'.'.$payload, $secret, true))) {
+        $expected = $this->base64EncodeUrl(hash_hmac('sha256', $header.'.'.$payload, $secret, true));
+        if (!hash_equals($expected, $signature)) {
             throw new RejectWebhookException(406, 'Signature is wrong.');
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Yunpian/YunpianTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Yunpian/YunpianTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Yunpian/YunpianTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Yunpian/YunpianTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
 
     public function __toString(): string
     {
-        return sprintf('yunpian://%s', $this->getEndpoint());
+        return \sprintf('yunpian://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -55,10 +55,10 @@
         }
 
         if ('' !== $message->getFrom()) {
-            throw new InvalidArgumentException(sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
+            throw new InvalidArgumentException(\sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
         }
 
-        $endpoint = sprintf('https://%s/v2/sms/single_send.json', self::HOST);
+        $endpoint = \sprintf('https://%s/v2/sms/single_send.json', self::HOST);
         $response = $this->client->request('POST', $endpoint, [
             'body' => [
                 'apikey' => $this->apiKey,
@@ -74,7 +74,7 @@
         }
 
         if (isset($data['code']) && 0 !== (int) $data['code']) {
-            throw new TransportException(sprintf('Unable to send SMS: "Code: "%s". Message: "%s"".', $data['code'], $data['msg'] ?? 'Unknown reason'), $response);
+            throw new TransportException(\sprintf('Unable to send SMS: "Code: "%s". Message: "%s"".', $data['code'], $data['msg'] ?? 'Unknown reason'), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Zendesk/ZendeskTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Zendesk/ZendeskTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Zendesk/ZendeskTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Zendesk/ZendeskTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
 
     public function __toString(): string
     {
-        return sprintf('zendesk://%s', $this->getEndpoint());
+        return \sprintf('zendesk://%s', $this->getEndpoint());
     }
 
     public function supports(MessageInterface $message): bool
@@ -53,7 +53,7 @@
             throw new UnsupportedMessageTypeException(__CLASS__, ChatMessage::class, $message);
         }
 
-        $endpoint = sprintf('https://%s/api/v2/tickets.json', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/api/v2/tickets.json', $this->getEndpoint());
 
         $body = [
             'ticket' => [
@@ -88,7 +88,7 @@
                 $errorMessage = implode(' | ', array_values($errorMessage));
             }
 
-            throw new TransportException(sprintf('Unable to post the Zendesk message: "%s".', $errorMessage), $response);
+            throw new TransportException(\sprintf('Unable to post the Zendesk message: "%s".', $errorMessage), $response);
         }
 
         return new SentMessage($message, (string) $this);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Zulip/ZulipTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Zulip/ZulipTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Bridge/Zulip/ZulipTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Bridge/Zulip/ZulipTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
 
     public function __toString(): string
     {
-        return sprintf('zulip://%s?channel=%s', $this->getEndpoint(), $this->channel);
+        return \sprintf('zulip://%s?channel=%s', $this->getEndpoint(), $this->channel);
     }
 
     public function supports(MessageInterface $message): bool
@@ -63,7 +63,7 @@
         $options['content'] = $message->getSubject();
 
         if (null === $message->getRecipientId() && empty($options['topic'])) {
-            throw new LogicException(sprintf('The "%s" transport requires a topic when posting to streams.', __CLASS__));
+            throw new LogicException(\sprintf('The "%s" transport requires a topic when posting to streams.', __CLASS__));
         }
 
         if (null === $message->getRecipientId()) {
@@ -74,7 +74,7 @@
             $options['to'] = $message->getRecipientId();
         }
 
-        $endpoint = sprintf('https://%s/api/v1/messages', $this->getEndpoint());
+        $endpoint = \sprintf('https://%s/api/v1/messages', $this->getEndpoint());
 
         $response = $this->client->request('POST', $endpoint, [
             'auth_basic' => [$this->email, $this->token],
@@ -90,7 +90,7 @@
         if (200 !== $statusCode) {
             $result = $response->toArray(false);
 
-            throw new TransportException(sprintf('Unable to post the Zulip message: "%s" (%s).', $result['msg'], $result['code']), $response);
+            throw new TransportException(\sprintf('Unable to post the Zulip message: "%s" (%s).', $result['msg'], $result['code']), $response);
         }
 
         $success = $response->toArray(false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Channel/AbstractChannel.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Channel/AbstractChannel.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Channel/AbstractChannel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Channel/AbstractChannel.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public function __construct(?TransportInterface $transport = null, ?MessageBusInterface $bus = null)
     {
         if (null === $transport && null === $bus) {
-            throw new LogicException(sprintf('"%s" needs a Transport or a Bus but both cannot be "null".', static::class));
+            throw new LogicException(\sprintf('"%s" needs a Transport or a Bus but both cannot be "null".', static::class));
         }
 
         $this->transport = $transport;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Channel/ChannelPolicy.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Channel/ChannelPolicy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Channel/ChannelPolicy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Channel/ChannelPolicy.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
     public function getChannels(string $importance): array
     {
         if (!isset($this->policy[$importance])) {
-            throw new InvalidArgumentException(sprintf('Importance "%s" is not defined in the Policy.', $importance));
+            throw new InvalidArgumentException(\sprintf('Importance "%s" is not defined in the Policy.', $importance));
         }
 
         return $this->policy[$importance];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Channel/EmailChannel.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Channel/EmailChannel.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Channel/EmailChannel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Channel/EmailChannel.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
     public function __construct(?TransportInterface $transport = null, ?MessageBusInterface $bus = null, ?string $from = null, ?Envelope $envelope = null)
     {
         if (null === $transport && null === $bus) {
-            throw new LogicException(sprintf('"%s" needs a Transport or a Bus but both cannot be "null".', static::class));
+            throw new LogicException(\sprintf('"%s" needs a Transport or a Bus but both cannot be "null".', static::class));
         }
 
         $this->transport = $transport;
@@ -61,7 +61,7 @@
         if ($email instanceof Email) {
             if (!$email->getFrom()) {
                 if (null === $this->from) {
-                    throw new LogicException(sprintf('To send the "%s" notification by email, you must configure a "from" header by either setting a sender in the global "envelope" of the mailer configuration or by setting a "from" header in the "asEmailMessage()" method.', get_debug_type($notification)));
+                    throw new LogicException(\sprintf('To send the "%s" notification by email, you must configure a "from" header by either setting a sender in the global "envelope" of the mailer configuration or by setting a "from" header in the "asEmailMessage()" method.', get_debug_type($notification)));
                 }
 
                 $email->from($this->from);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,9 @@
     },
     "require-dev": {
         "symfony/event-dispatcher-contracts": "^2.5|^3",
+        "symfony/event-dispatcher": "^6.4|^7.0",
         "symfony/http-client-contracts": "^2.5|^3",
+        "symfony/http-client": "^6.4|^7.0",
         "symfony/http-foundation": "^5.4|^6.0|^7.0",
         "symfony/messenger": "^5.4|^6.0|^7.0"
     },
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/EventListener/SendFailedMessageToNotifierListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/EventListener/SendFailedMessageToNotifierListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/EventListener/SendFailedMessageToNotifierListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/EventListener/SendFailedMessageToNotifierListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
         }
         $envelope = $event->getEnvelope();
         $notification = Notification::fromThrowable($throwable)->importance(Notification::IMPORTANCE_HIGH);
-        $notification->subject(sprintf('A "%s" message has just failed: %s.', $envelope->getMessage()::class, $notification->getSubject()));
+        $notification->subject(\sprintf('A "%s" message has just failed: %s.', $envelope->getMessage()::class, $notification->getSubject()));
 
         $this->notifier->send($notification, ...$this->notifier->getAdminRecipients());
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/FlashMessageImportanceMapperException.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/FlashMessageImportanceMapperException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/FlashMessageImportanceMapperException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/FlashMessageImportanceMapperException.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
 {
     public function __construct(string $importance, string $mappingClass)
     {
-        $message = sprintf('The "%s" Notifier flash message mapper does not support an importance value of "%s".', $mappingClass, $importance);
+        $message = \sprintf('The "%s" Notifier flash message mapper does not support an importance value of "%s".', $mappingClass, $importance);
 
         parent::__construct($message);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/IncompleteDsnException.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/IncompleteDsnException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/IncompleteDsnException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/IncompleteDsnException.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
     {
         $this->dsn = $dsn;
         if ($dsn) {
-            $message = sprintf('Invalid "%s" notifier DSN: %s', $dsn, $message);
+            $message = \sprintf('Invalid "%s" notifier DSN: %s', $dsn, $message);
         }
 
         parent::__construct($message, 0, $previous);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/MissingRequiredOptionException.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/MissingRequiredOptionException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/MissingRequiredOptionException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/MissingRequiredOptionException.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
 {
     public function __construct(string $option, ?string $dsn = null, ?\Throwable $previous = null)
     {
-        $message = sprintf('The option "%s" is required but missing.', $option);
+        $message = \sprintf('The option "%s" is required but missing.', $option);
 
         parent::__construct($message, $dsn, $previous);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/MultipleExclusiveOptionsUsedException.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/MultipleExclusiveOptionsUsedException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/MultipleExclusiveOptionsUsedException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/MultipleExclusiveOptionsUsedException.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
      */
     public function __construct(array $usedExclusiveOptions, array $exclusiveOptions, ?\Throwable $previous = null)
     {
-        $message = sprintf(
+        $message = \sprintf(
             'Multiple exclusive options have been used "%s". Only one of "%s" can be used.',
             implode('", "', $usedExclusiveOptions),
             implode('", "', $exclusiveOptions)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/UnsupportedMessageTypeException.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/UnsupportedMessageTypeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/UnsupportedMessageTypeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/UnsupportedMessageTypeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 {
     public function __construct(string $transport, string $supported, MessageInterface $given)
     {
-        $message = sprintf(
+        $message = \sprintf(
             'The "%s" transport only supports instances of "%s" (instance of "%s" given).',
             $transport,
             $supported,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/UnsupportedSchemeException.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/UnsupportedSchemeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Exception/UnsupportedSchemeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Exception/UnsupportedSchemeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -313,14 +313,14 @@
         }
         $package = self::SCHEME_TO_PACKAGE_MAP[$provider] ?? null;
         if ($package && !class_exists($package['class'])) {
-            parent::__construct(sprintf('Unable to send notification via "%s" as the bridge is not installed. Try running "composer require %s".', $provider, $package['package']));
+            parent::__construct(\sprintf('Unable to send notification via "%s" as the bridge is not installed. Try running "composer require %s".', $provider, $package['package']));
 
             return;
         }
 
-        $message = sprintf('The "%s" scheme is not supported', $dsn->getScheme());
+        $message = \sprintf('The "%s" scheme is not supported', $dsn->getScheme());
         if ($name && $supported) {
-            $message .= sprintf('; supported schemes for notifier "%s" are: "%s"', $name, implode('", "', $supported));
+            $message .= \sprintf('; supported schemes for notifier "%s" are: "%s"', $name, implode('", "', $supported));
         }
 
         parent::__construct($message.'.', 0, $previous);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Message/EmailMessage.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Message/EmailMessage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Message/EmailMessage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Message/EmailMessage.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
     public static function fromNotification(Notification $notification, EmailRecipientInterface $recipient): self
     {
         if ('' === $recipient->getEmail()) {
-            throw new InvalidArgumentException(sprintf('"%s" needs an email, it cannot be empty.', __CLASS__));
+            throw new InvalidArgumentException(\sprintf('"%s" needs an email, it cannot be empty.', __CLASS__));
         }
 
         if (!class_exists(NotificationEmail::class)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Message/SmsMessage.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Message/SmsMessage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Message/SmsMessage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Message/SmsMessage.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function __construct(string $phone, string $subject, string $from = '', ?MessageOptionsInterface $options = null)
     {
         if ('' === $phone) {
-            throw new InvalidArgumentException(sprintf('"%s" needs a phone number, it cannot be empty.', __CLASS__));
+            throw new InvalidArgumentException(\sprintf('"%s" needs a phone number, it cannot be empty.', __CLASS__));
         }
 
         $this->subject = $subject;
@@ -53,7 +53,7 @@
     public function phone(string $phone): static
     {
         if ('' === $phone) {
-            throw new InvalidArgumentException(sprintf('"%s" needs a phone number, it cannot be empty.', static::class));
+            throw new InvalidArgumentException(\sprintf('"%s" needs a phone number, it cannot be empty.', static::class));
         }
 
         $this->phone = $phone;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Notification/Notification.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Notification/Notification.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Notification/Notification.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Notification/Notification.php	2026-05-20 10:56:49.000000000 +0200
@@ -141,7 +141,7 @@
     {
         $parts = explode('\\', $exception::class);
 
-        $this->subject = sprintf('%s: %s', array_pop($parts), $exception->getMessage());
+        $this->subject = \sprintf('%s: %s', array_pop($parts), $exception->getMessage());
         if (class_exists(FlattenException::class)) {
             $this->exception = $exception instanceof FlattenException ? $exception : FlattenException::createFromThrowable($exception);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Notifier.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Notifier.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Notifier.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Notifier.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,13 +72,13 @@
     {
         $channels = $notification->getChannels($recipient);
         if (!$channels) {
-            $errorPrefix = sprintf('Unable to determine which channels to use to send the "%s" notification', $notification::class);
+            $errorPrefix = \sprintf('Unable to determine which channels to use to send the "%s" notification', $notification::class);
             $error = 'you should either pass channels in the constructor, override its "getChannels()" method';
             if (null === $this->policy) {
-                throw new LogicException(sprintf('%s; %s, or configure a "%s".', $errorPrefix, $error, ChannelPolicy::class));
+                throw new LogicException(\sprintf('%s; %s, or configure a "%s".', $errorPrefix, $error, ChannelPolicy::class));
             }
             if (!$channels = $this->policy->getChannels($notification->getImportance())) {
-                throw new LogicException(sprintf('%s; the "%s" returns no channels for importance "%s"; %s.', $errorPrefix, ChannelPolicy::class, $notification->getImportance(), $error));
+                throw new LogicException(\sprintf('%s; the "%s" returns no channels for importance "%s"; %s.', $errorPrefix, ChannelPolicy::class, $notification->getImportance(), $error));
             }
         }
 
@@ -90,15 +90,15 @@
             }
 
             if (null === $channel = $this->getChannel($channelName)) {
-                throw new LogicException(sprintf('The "%s" channel does not exist.', $channelName));
+                throw new LogicException(\sprintf('The "%s" channel does not exist.', $channelName));
             }
 
             if ($channel instanceof SmsChannel && $recipient instanceof NoRecipient) {
-                throw new LogicException(sprintf('The "%s" channel needs a Recipient.', $channelName));
+                throw new LogicException(\sprintf('The "%s" channel needs a Recipient.', $channelName));
             }
 
             if (!$channel->supports($notification, $recipient)) {
-                throw new LogicException(sprintf('The "%s" channel is not supported.', $channelName));
+                throw new LogicException(\sprintf('The "%s" channel is not supported.', $channelName));
             }
 
             yield $channel => $transportName;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Recipient/Recipient.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Recipient/Recipient.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Recipient/Recipient.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Recipient/Recipient.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
     public function __construct(string $email = '', string $phone = '')
     {
         if ('' === $email && '' === $phone) {
-            throw new InvalidArgumentException(sprintf('"%s" needs an email or a phone but both cannot be empty.', static::class));
+            throw new InvalidArgumentException(\sprintf('"%s" needs an email or a phone but both cannot be empty.', static::class));
         }
 
         $this->email = $email;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationCount.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationCount.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationCount.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationCount.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
 
     public function toString(): string
     {
-        return sprintf('%shas %s "%d" emails', $this->transport ? $this->transport.' ' : '', $this->queued ? 'queued' : 'sent', $this->expectedValue);
+        return \sprintf('%shas %s "%d" emails', $this->transport ? $this->transport.' ' : '', $this->queued ? 'queued' : 'sent', $this->expectedValue);
     }
 
     /**
@@ -48,7 +48,7 @@
      */
     protected function failureDescription($events): string
     {
-        return sprintf('the Transport %s (%d %s)', $this->toString(), $this->countNotifications($events), $this->queued ? 'queued' : 'sent');
+        return \sprintf('the Transport %s (%d %s)', $this->toString(), $this->countNotifications($events), $this->queued ? 'queued' : 'sent');
     }
 
     private function countNotifications(NotificationEvents $events): int
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationSubjectContains.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationSubjectContains.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationSubjectContains.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationSubjectContains.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
 
     public function toString(): string
     {
-        return sprintf('contains "%s"', $this->expectedText);
+        return \sprintf('contains "%s"', $this->expectedText);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationTransportIsEqual.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationTransportIsEqual.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationTransportIsEqual.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Test/Constraint/NotificationTransportIsEqual.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
 
     public function toString(): string
     {
-        return sprintf('is "%s"', $this->expectedText);
+        return \sprintf('is "%s"', $this->expectedText);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Test/TransportTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Test/TransportTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Test/TransportTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Test/TransportTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -90,7 +90,7 @@
 
         $transport->setHost($customHost = self::CUSTOM_HOST);
 
-        $this->assertMatchesRegularExpression(sprintf('/^.*\:\/\/(%s|.*\@%s)/', $customHost, $customHost), (string) $transport);
+        $this->assertMatchesRegularExpression(\sprintf('/^.*\:\/\/(%s|.*\@%s)/', $customHost, $customHost), (string) $transport);
     }
 
     public function testCanSetCustomPort()
@@ -102,7 +102,7 @@
         /*
          * @see https://regex101.com/r/shT9O2/1
          */
-        $this->assertMatchesRegularExpression(sprintf('/^.*\:\/\/.*(\@.*)?\:%s((\?.*|\/.*))?$/', $customPort), (string) $transport);
+        $this->assertMatchesRegularExpression(\sprintf('/^.*\:\/\/.*(\@.*)?\:%s((\?.*|\/.*))?$/', $customPort), (string) $transport);
     }
 
     public function testCanSetCustomHostAndPort()
@@ -112,6 +112,6 @@
         $transport->setHost($customHost = self::CUSTOM_HOST);
         $transport->setPort($customPort = self::CUSTOM_PORT);
 
-        $this->assertMatchesRegularExpression(sprintf('/^.*\:\/\/(%s|.*\@%s)\:%s/', $customHost, $customHost, $customPort), (string) $transport);
+        $this->assertMatchesRegularExpression(\sprintf('/^.*\:\/\/(%s|.*\@%s)\:%s/', $customHost, $customHost, $customPort), (string) $transport);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Channel/BrowserChannelTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Channel/BrowserChannelTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Channel/BrowserChannelTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Channel/BrowserChannelTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
 use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
 use Symfony\Component\HttpFoundation\Session\Session;
+use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
 use Symfony\Component\Notifier\Channel\BrowserChannel;
 use Symfony\Component\Notifier\Exception\FlashMessageImportanceMapperException;
 use Symfony\Component\Notifier\FlashMessage\BootstrapFlashMessageImportanceMapper;
@@ -35,10 +36,9 @@
     public function testImportanceLevelIsReflectedInFlashMessageType(
         FlashMessageImportanceMapperInterface $mapper,
         string $importance,
-        string $expectedFlashMessageType
+        string $expectedFlashMessageType,
     ) {
-        $session = $this->createMock(Session::class);
-        $session->method('getFlashBag')->willReturn(new FlashBag());
+        $session = new Session(new MockArraySessionStorage(), null, new FlashBag());
         $browserChannel = $this->buildBrowserChannel($session, $mapper);
         $notification = new Notification();
         $notification->importance($importance);
@@ -51,8 +51,7 @@
 
     public function testUnknownImportanceMappingIsReported()
     {
-        $session = $this->createMock(Session::class);
-        $session->method('getFlashBag')->willReturn(new FlashBag());
+        $session = new Session(new MockArraySessionStorage(), null, new FlashBag());
         $browserChannel = $this->buildBrowserChannel($session, new DefaultFlashMessageImportanceMapper());
         $notification = new Notification();
         $notification->importance('unknown-importance-string');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/ChatterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/ChatterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/ChatterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/ChatterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,6 +42,9 @@
             ->method('send')
             ->with($message)
             ->willReturn($sentMessage);
+        $this->bus
+            ->expects($this->never())
+            ->method('dispatch');
 
         $chatter = new Chatter($this->transport);
         $this->assertSame($sentMessage, $chatter->send($message));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Event/FailedMessageEventTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Event/FailedMessageEventTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Event/FailedMessageEventTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Event/FailedMessageEventTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Notifier\Tests\Event;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\Notifier\Event\FailedMessageEvent;
 use Symfony\Component\Notifier\Event\MessageEvent;
 use Symfony\Component\Notifier\Message\ChatMessage;
@@ -20,9 +21,7 @@
 use Symfony\Component\Notifier\Message\SmsMessage;
 use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
 use Symfony\Component\Notifier\Transport\AbstractTransport;
-use Symfony\Component\Notifier\Transport\NullTransport;
 use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
-use Symfony\Contracts\HttpClient\HttpClientInterface;
 
 class FailedMessageEventTest extends TestCase
 {
@@ -53,7 +52,7 @@
     public function testFailedMessageEventIsDisptachIfError()
     {
         $eventDispatcherMock = $this->createMock(EventDispatcherInterface::class);
-        $clientMock = $this->createMock(HttpClientInterface::class);
+        $clientMock = new MockHttpClient();
 
         $transport = new class($clientMock, $eventDispatcherMock) extends AbstractTransport {
             public NullTransportException $exception;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Exception/UnsupportedSchemeExceptionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Exception/UnsupportedSchemeExceptionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Exception/UnsupportedSchemeExceptionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Exception/UnsupportedSchemeExceptionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -104,10 +104,10 @@
      */
     public function testMessageWhereSchemeIsPartOfSchemeToPackageMap(string $scheme, string $package)
     {
-        $dsn = new Dsn(sprintf('%s://localhost', $scheme));
+        $dsn = new Dsn(\sprintf('%s://localhost', $scheme));
 
         $this->assertSame(
-            sprintf('Unable to send notification via "%s" as the bridge is not installed. Try running "composer require %s".', $scheme, $package),
+            \sprintf('Unable to send notification via "%s" as the bridge is not installed. Try running "composer require %s".', $scheme, $package),
             (new UnsupportedSchemeException($dsn))->getMessage()
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/TexterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/TexterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/TexterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/TexterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,12 +23,10 @@
 class TexterTest extends TestCase
 {
     private MockObject&TransportInterface $transport;
-    private MockObject&MessageBusInterface $bus;
 
     protected function setUp(): void
     {
         $this->transport = $this->createMock(TransportInterface::class);
-        $this->bus = $this->createMock(MessageBusInterface::class);
     }
 
     public function testSendWithoutBus()
@@ -56,13 +54,14 @@
             ->method('send')
             ->with($message);
 
-        $this->bus
+        $bus = $this->createMock(MessageBusInterface::class);
+        $bus
             ->expects($this->once())
             ->method('dispatch')
             ->with($message)
             ->willReturn(new Envelope(new \stdClass()));
 
-        $texter = new Texter($this->transport, $this->bus);
+        $texter = new Texter($this->transport, $bus);
         $this->assertNull($texter->send($message));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Transport/DsnTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Transport/DsnTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Transport/DsnTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Transport/DsnTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -212,7 +212,7 @@
      */
     public function testGetRequiredOption(string $expectedValue, string $options, string $option)
     {
-        $dsn = new Dsn(sprintf('scheme://localhost?%s', $options));
+        $dsn = new Dsn(\sprintf('scheme://localhost?%s', $options));
 
         $this->assertSame($expectedValue, $dsn->getRequiredOption($option));
     }
@@ -237,7 +237,7 @@
      */
     public function testGetRequiredOptionThrowsMissingRequiredOptionException(string $expectedExceptionMessage, string $options, string $option)
     {
-        $dsn = new Dsn(sprintf('scheme://localhost?%s', $options));
+        $dsn = new Dsn(\sprintf('scheme://localhost?%s', $options));
 
         $this->expectException(MissingRequiredOptionException::class);
         $this->expectExceptionMessage($expectedExceptionMessage);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Transport/FailoverTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Transport/FailoverTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Transport/FailoverTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Transport/FailoverTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,8 +46,8 @@
 
     public function testSendMessageNotSupportedByAnyTransport()
     {
-        $t1 = $this->createMock(TransportInterface::class);
-        $t2 = $this->createMock(TransportInterface::class);
+        $t1 = $this->createStub(TransportInterface::class);
+        $t2 = $this->createStub(TransportInterface::class);
 
         $t = new FailoverTransport([$t1, $t2]);
 
@@ -61,7 +61,9 @@
         $message = new DummyMessage();
 
         $t1 = $this->createMock(TransportInterface::class);
-        $t1->method('supports')->with($message)->willReturn(true);
+        $t1->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
         $t1->expects($this->exactly(3))->method('send')->with($message)->willReturn(new SentMessage($message, 'test'));
 
         $t2 = $this->createMock(TransportInterface::class);
@@ -79,12 +81,16 @@
         $message = new DummyMessage();
 
         $t1 = $this->createMock(TransportInterface::class);
-        $t1->method('supports')->with($message)->willReturn(true);
-        $t1->expects($this->once())->method('send')->with($message)->willThrowException($this->createMock(TransportExceptionInterface::class));
+        $t1->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
+        $t1->expects($this->once())->method('send')->with($message)->willThrowException($this->createStub(TransportExceptionInterface::class));
 
         $t2 = $this->createMock(TransportInterface::class);
-        $t2->method('supports')->with($message)->willReturn(true);
-        $t2->expects($this->once())->method('send')->with($message)->willThrowException($this->createMock(TransportExceptionInterface::class));
+        $t2->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
+        $t2->expects($this->once())->method('send')->with($message)->willThrowException($this->createStub(TransportExceptionInterface::class));
 
         $t = new FailoverTransport([$t1, $t2]);
 
@@ -99,11 +105,15 @@
         $message = new DummyMessage();
 
         $t1 = $this->createMock(TransportInterface::class);
-        $t1->method('supports')->with($message)->willReturn(true);
-        $t1->expects($this->once())->method('send')->willThrowException($this->createMock(TransportExceptionInterface::class));
+        $t1->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
+        $t1->expects($this->once())->method('send')->willThrowException($this->createStub(TransportExceptionInterface::class));
 
         $t2 = $this->createMock(TransportInterface::class);
-        $t2->method('supports')->with($message)->willReturn(true);
+        $t2->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
         $t2->expects($this->exactly(1))->method('send')->with($message)->willReturn(new SentMessage($message, 'test'));
 
         $t = new FailoverTransport([$t1, $t2]);
@@ -116,18 +126,22 @@
         $message = new DummyMessage();
 
         $t1 = $this->createMock(TransportInterface::class);
-        $t1->method('supports')->with($message)->willReturn(true);
-        $t1->method('send')->willThrowException($this->createMock(TransportExceptionInterface::class));
+        $t1->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
+        $t1->method('send')->willThrowException($this->createStub(TransportExceptionInterface::class));
         $t1->expects($this->once())->method('send');
         $t2 = $this->createMock(TransportInterface::class);
-        $t2->method('supports')->with($message)->willReturn(true);
+        $t2->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
 
         $matcher = $this->exactly(3);
         $t2->expects($matcher)
             ->method('send')
             ->willReturnCallback(function () use ($matcher, $message) {
                 if (3 === $matcher->getInvocationCount()) {
-                    throw $this->createMock(TransportExceptionInterface::class);
+                    throw $this->createStub(TransportExceptionInterface::class);
                 }
 
                 return new SentMessage($message, 't2');
@@ -149,19 +163,23 @@
         $message = new DummyMessage();
 
         $t1 = $this->createMock(TransportInterface::class);
-        $t1->method('supports')->with($message)->willReturn(true);
+        $t1->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
 
         $t1Matcher = $this->exactly(2);
         $t1->expects($t1Matcher)->method('send')
             ->willReturnCallback(function () use ($t1Matcher, $message) {
                 if (1 === $t1Matcher->getInvocationCount()) {
-                    throw $this->createMock(TransportExceptionInterface::class);
+                    throw $this->createStub(TransportExceptionInterface::class);
                 }
 
                 return new SentMessage($message, 't1');
             });
         $t2 = $this->createMock(TransportInterface::class);
-        $t2->method('supports')->with($message)->willReturn(true);
+        $t2->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
 
         $t2Matcher = $this->exactly(2);
         $t2->expects($t2Matcher)->method('send')->willReturnCallback(function () use ($t2Matcher, $message) {
@@ -169,7 +187,7 @@
                 return new SentMessage($message, 't1');
             }
 
-            throw $this->createMock(TransportExceptionInterface::class);
+            throw $this->createStub(TransportExceptionInterface::class);
         });
 
         $t = new FailoverTransport([$t1, $t2], 1);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Transport/NullTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Transport/NullTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Transport/NullTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Transport/NullTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,12 +12,12 @@
 namespace Symfony\Component\Notifier\Tests\Transport;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\Notifier\Exception\UnsupportedSchemeException;
 use Symfony\Component\Notifier\Transport\Dsn;
 use Symfony\Component\Notifier\Transport\NullTransport;
 use Symfony\Component\Notifier\Transport\NullTransportFactory;
-use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
-use Symfony\Contracts\HttpClient\HttpClientInterface;
 
 /**
  * @author Jan Schädlich <jan.schaedlich@sensiolabs.de>
@@ -29,8 +29,8 @@
     protected function setUp(): void
     {
         $this->nullTransportFactory = new NullTransportFactory(
-            $this->createMock(EventDispatcherInterface::class),
-            $this->createMock(HttpClientInterface::class)
+            new EventDispatcher(),
+            new MockHttpClient()
         );
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Transport/TransportsTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Transport/TransportsTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Tests/Transport/TransportsTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Tests/Transport/TransportsTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,9 @@
 
         $message = new ChatMessage('subject');
 
-        $one->method('supports')->with($message)->willReturn(true);
+        $one->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
 
         $one->expects($this->once())->method('send')->willReturn(new SentMessage($message, 'one'));
 
@@ -48,11 +50,12 @@
 
         $message = new ChatMessage('subject');
 
-        $one->method('supports')->with($message)->willReturn(false);
-        $two->method('supports')->with($message)->willReturn(true);
-
-        $one->method('send')->with($message)->willReturn(new SentMessage($message, 'one'));
-        $two->method('send')->with($message)->willReturn(new SentMessage($message, 'two'));
+        $one->method('supports')->willReturnMap([
+            [$message, false],
+        ]);
+        $two->method('supports')->willReturnMap([
+            [$message, true],
+        ]);
 
         $one->expects($this->never())->method('send');
         $two->expects($this->once())->method('send')->willReturn(new SentMessage($message, 'two'));
@@ -66,7 +69,7 @@
     public function testThrowExceptionIfNoSupportedTransportWasFound()
     {
         $transports = new Transports([
-            'one' => $one = $this->createMock(TransportInterface::class),
+            'one' => $one = $this->createStub(TransportInterface::class),
         ]);
 
         $message = new ChatMessage('subject');
@@ -82,8 +85,8 @@
     public function testThrowExceptionIfTransportDefinedByMessageIsNotSupported()
     {
         $transports = new Transports([
-            'one' => $one = $this->createMock(TransportInterface::class),
-            'two' => $two = $this->createMock(TransportInterface::class),
+            'one' => $one = $this->createStub(TransportInterface::class),
+            'two' => $two = $this->createStub(TransportInterface::class),
         ]);
 
         $message = new ChatMessage('subject');
@@ -101,7 +104,7 @@
     public function testThrowExceptionIfTransportDefinedByMessageDoesNotExist()
     {
         $transports = new Transports([
-            'one' => $one = $this->createMock(TransportInterface::class),
+            'one' => $one = $this->createStub(TransportInterface::class),
         ]);
 
         $message = new ChatMessage('subject');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Transport/AbstractTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Transport/AbstractTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Transport/AbstractTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Transport/AbstractTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
         $this->client = $client;
         if (null === $client) {
             if (!class_exists(HttpClient::class)) {
-                throw new LogicException(sprintf('You cannot use "%s" as the HttpClient component is not installed. Try running "composer require symfony/http-client".', __CLASS__));
+                throw new LogicException(\sprintf('You cannot use "%s" as the HttpClient component is not installed. Try running "composer require symfony/http-client".', __CLASS__));
             }
 
             $this->client = HttpClient::create();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Transport/RoundRobinTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Transport/RoundRobinTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Transport/RoundRobinTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Transport/RoundRobinTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
     public function __construct(array $transports, int $retryPeriod = 60)
     {
         if (!$transports) {
-            throw new LogicException(sprintf('"%s" must have at least one transport configured.', static::class));
+            throw new LogicException(\sprintf('"%s" must have at least one transport configured.', static::class));
         }
 
         $this->transports = $transports;
@@ -65,7 +65,7 @@
     public function send(MessageInterface $message): SentMessage
     {
         if (!$this->supports($message)) {
-            throw new LogicException(sprintf('None of the configured Transports of "%s" supports the given message.', static::class));
+            throw new LogicException(\sprintf('None of the configured Transports of "%s" supports the given message.', static::class));
         }
 
         while ($transport = $this->getNextTransport($message)) {
@@ -103,7 +103,7 @@
             }
 
             if ((microtime(true) - $this->deadTransports[$transport]) > $this->retryPeriod) {
-                $this->deadTransports->detach($transport);
+                unset($this->deadTransports[$transport]);
 
                 break;
             }
@@ -120,7 +120,7 @@
 
     protected function isTransportDead(TransportInterface $transport): bool
     {
-        return $this->deadTransports->contains($transport);
+        return $this->deadTransports->offsetExists($transport);
     }
 
     protected function getInitialCursor(): int
@@ -140,3 +140,5 @@
         return ++$cursor >= \count($this->transports) ? 0 : $cursor;
     }
 }
+
+// @php-cs-fixer-ignore random_api_migration
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Transport/Transports.php symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Transport/Transports.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Notifier/Transport/Transports.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Notifier/Transport/Transports.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,15 +60,15 @@
                     return $transport->send($message);
                 }
             }
-            throw new LogicException(sprintf('None of the available transports support the given message (available transports: "%s").', implode('", "', array_keys($this->transports))));
+            throw new LogicException(\sprintf('None of the available transports support the given message (available transports: "%s").', implode('", "', array_keys($this->transports))));
         }
 
         if (!isset($this->transports[$transport])) {
-            throw new InvalidArgumentException(sprintf('The "%s" transport does not exist (available transports: "%s").', $transport, implode('", "', array_keys($this->transports))));
+            throw new InvalidArgumentException(\sprintf('The "%s" transport does not exist (available transports: "%s").', $transport, implode('", "', array_keys($this->transports))));
         }
 
         if (!$this->transports[$transport]->supports($message)) {
-            throw new LogicException(sprintf('The "%s" transport does not support the given message.', $transport));
+            throw new LogicException(\sprintf('The "%s" transport does not support the given message.', $transport));
         }
 
         return $this->transports[$transport]->send($message);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/OptionsResolver/Debug/OptionsResolverIntrospector.php symfony-6.4.40+dfsg/src/Symfony/Component/OptionsResolver/Debug/OptionsResolverIntrospector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/OptionsResolver/Debug/OptionsResolverIntrospector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/OptionsResolver/Debug/OptionsResolverIntrospector.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
         $this->get = \Closure::bind(function ($property, $option, $message) {
             /** @var OptionsResolver $this */
             if (!$this->isDefined($option)) {
-                throw new UndefinedOptionsException(sprintf('The option "%s" does not exist.', $option));
+                throw new UndefinedOptionsException(\sprintf('The option "%s" does not exist.', $option));
             }
 
             if (!\array_key_exists($option, $this->{$property})) {
@@ -45,7 +45,7 @@
      */
     public function getDefault(string $option): mixed
     {
-        return ($this->get)('defaults', $option, sprintf('No default value was set for the "%s" option.', $option));
+        return ($this->get)('defaults', $option, \sprintf('No default value was set for the "%s" option.', $option));
     }
 
     /**
@@ -55,7 +55,7 @@
      */
     public function getLazyClosures(string $option): array
     {
-        return ($this->get)('lazy', $option, sprintf('No lazy closures were set for the "%s" option.', $option));
+        return ($this->get)('lazy', $option, \sprintf('No lazy closures were set for the "%s" option.', $option));
     }
 
     /**
@@ -65,7 +65,7 @@
      */
     public function getAllowedTypes(string $option): array
     {
-        return ($this->get)('allowedTypes', $option, sprintf('No allowed types were set for the "%s" option.', $option));
+        return ($this->get)('allowedTypes', $option, \sprintf('No allowed types were set for the "%s" option.', $option));
     }
 
     /**
@@ -75,7 +75,7 @@
      */
     public function getAllowedValues(string $option): array
     {
-        return ($this->get)('allowedValues', $option, sprintf('No allowed values were set for the "%s" option.', $option));
+        return ($this->get)('allowedValues', $option, \sprintf('No allowed values were set for the "%s" option.', $option));
     }
 
     /**
@@ -91,7 +91,7 @@
      */
     public function getNormalizers(string $option): array
     {
-        return ($this->get)('normalizers', $option, sprintf('No normalizer was set for the "%s" option.', $option));
+        return ($this->get)('normalizers', $option, \sprintf('No normalizer was set for the "%s" option.', $option));
     }
 
     /**
@@ -99,6 +99,6 @@
      */
     public function getDeprecation(string $option): array
     {
-        return ($this->get)('deprecated', $option, sprintf('No deprecation was set for the "%s" option.', $option));
+        return ($this->get)('deprecated', $option, \sprintf('No deprecation was set for the "%s" option.', $option));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/OptionsResolver/OptionsResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/OptionsResolver/OptionsResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/OptionsResolver/OptionsResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/OptionsResolver/OptionsResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -438,11 +438,11 @@
         }
 
         if (!isset($this->defined[$option])) {
-            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist, defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+            throw new UndefinedOptionsException(\sprintf('The option "%s" does not exist, defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
         }
 
         if (!\is_string($message) && !$message instanceof \Closure) {
-            throw new InvalidArgumentException(sprintf('Invalid type for deprecation message argument, expected string or \Closure, but got "%s".', get_debug_type($message)));
+            throw new InvalidArgumentException(\sprintf('Invalid type for deprecation message argument, expected string or \Closure, but got "%s".', get_debug_type($message)));
         }
 
         // ignore if empty string
@@ -497,7 +497,7 @@
         }
 
         if (!isset($this->defined[$option])) {
-            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+            throw new UndefinedOptionsException(\sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
         }
 
         $this->normalizers[$option] = [$normalizer];
@@ -538,7 +538,7 @@
         }
 
         if (!isset($this->defined[$option])) {
-            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+            throw new UndefinedOptionsException(\sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
         }
 
         if ($forcePrepend) {
@@ -581,7 +581,7 @@
         }
 
         if (!isset($this->defined[$option])) {
-            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+            throw new UndefinedOptionsException(\sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
         }
 
         $this->allowedValues[$option] = \is_array($allowedValues) ? $allowedValues : [$allowedValues];
@@ -621,7 +621,7 @@
         }
 
         if (!isset($this->defined[$option])) {
-            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+            throw new UndefinedOptionsException(\sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
         }
 
         if (!\is_array($allowedValues)) {
@@ -661,7 +661,7 @@
         }
 
         if (!isset($this->defined[$option])) {
-            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+            throw new UndefinedOptionsException(\sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
         }
 
         $this->allowedTypes[$option] = (array) $allowedTypes;
@@ -695,7 +695,7 @@
         }
 
         if (!isset($this->defined[$option])) {
-            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+            throw new UndefinedOptionsException(\sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
         }
 
         if (!isset($this->allowedTypes[$option])) {
@@ -716,7 +716,7 @@
     public function define(string $option): OptionConfigurator
     {
         if (isset($this->defined[$option])) {
-            throw new OptionDefinitionException(sprintf('The option "%s" is already defined.', $option));
+            throw new OptionDefinitionException(\sprintf('The option "%s" is already defined.', $option));
         }
 
         return new OptionConfigurator($option, $this);
@@ -737,7 +737,7 @@
         }
 
         if (!isset($this->defined[$option])) {
-            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+            throw new UndefinedOptionsException(\sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
         }
 
         $this->info[$option] = $info;
@@ -751,7 +751,7 @@
     public function getInfo(string $option): ?string
     {
         if (!isset($this->defined[$option])) {
-            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+            throw new UndefinedOptionsException(\sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
         }
 
         return $this->info[$option] ?? null;
@@ -803,7 +803,7 @@
 
         foreach ((array) $optionNames as $option) {
             unset($this->defined[$option], $this->defaults[$option], $this->required[$option], $this->resolved[$option]);
-            unset($this->lazy[$option], $this->normalizers[$option], $this->allowedTypes[$option], $this->allowedValues[$option], $this->info[$option]);
+            unset($this->lazy[$option], $this->normalizers[$option], $this->allowedTypes[$option], $this->allowedValues[$option], $this->info[$option], $this->deprecated[$option]);
         }
 
         return $this;
@@ -873,7 +873,7 @@
             ksort($clone->defined);
             ksort($diff);
 
-            throw new UndefinedOptionsException(sprintf((\count($diff) > 1 ? 'The options "%s" do not exist.' : 'The option "%s" does not exist.').' Defined options are: "%s".', $this->formatOptions(array_keys($diff)), implode('", "', array_keys($clone->defined))));
+            throw new UndefinedOptionsException(\sprintf((\count($diff) > 1 ? 'The options "%s" do not exist.' : 'The option "%s" does not exist.').' Defined options are: "%s".', $this->formatOptions(array_keys($diff)), implode('", "', array_keys($clone->defined))));
         }
 
         // Override options set by the user
@@ -893,7 +893,7 @@
         if (\count($diff) > 0) {
             ksort($diff);
 
-            throw new MissingOptionsException(sprintf(\count($diff) > 1 ? 'The required options "%s" are missing.' : 'The required option "%s" is missing.', $this->formatOptions(array_keys($diff))));
+            throw new MissingOptionsException(\sprintf(\count($diff) > 1 ? 'The required options "%s" are missing.' : 'The required option "%s" is missing.', $this->formatOptions(array_keys($diff))));
         }
 
         // Lock the container
@@ -939,10 +939,10 @@
         // Check whether the option is set at all
         if (!isset($this->defaults[$option]) && !\array_key_exists($option, $this->defaults)) {
             if (!isset($this->defined[$option])) {
-                throw new NoSuchOptionException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+                throw new NoSuchOptionException(\sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
             }
 
-            throw new NoSuchOptionException(sprintf('The optional option "%s" has no value set. You should make sure it is set with "isset" before reading it.', $this->formatOptions([$option])));
+            throw new NoSuchOptionException(\sprintf('The optional option "%s" has no value set. You should make sure it is set with "isset" before reading it.', $this->formatOptions([$option])));
         }
 
         $value = $this->defaults[$option];
@@ -951,11 +951,11 @@
         if (isset($this->nested[$option])) {
             // If the closure is already being called, we have a cyclic dependency
             if (isset($this->calling[$option])) {
-                throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
+                throw new OptionDefinitionException(\sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
             }
 
             if (!\is_array($value)) {
-                throw new InvalidOptionsException(sprintf('The nested option "%s" with value %s is expected to be of type array, but is of type "%s".', $this->formatOptions([$option]), $this->formatValue($value), get_debug_type($value)));
+                throw new InvalidOptionsException(\sprintf('The nested option "%s" with value %s is expected to be of type array, but is of type "%s".', $this->formatOptions([$option]), $this->formatValue($value), get_debug_type($value)));
             }
 
             // The following section must be protected from cyclic calls.
@@ -964,6 +964,11 @@
                 $resolver = new self();
                 $resolver->prototype = false;
                 $resolver->parentsOptions = $this->parentsOptions;
+
+                if ($this->prototype && null !== $this->prototypeIndex && null !== ($parentOptionKey = array_key_last($resolver->parentsOptions))) {
+                    $resolver->parentsOptions[$parentOptionKey] .= \sprintf('[%s]', $this->prototypeIndex);
+                }
+
                 $resolver->parentsOptions[] = $option;
                 foreach ($this->nested[$option] as $closure) {
                     $closure($resolver, $this);
@@ -973,7 +978,7 @@
                     $values = [];
                     foreach ($value as $index => $prototypeValue) {
                         if (!\is_array($prototypeValue)) {
-                            throw new InvalidOptionsException(sprintf('The value of the option "%s" is expected to be of type array of array, but is of type array of "%s".', $this->formatOptions([$option]), get_debug_type($prototypeValue)));
+                            throw new InvalidOptionsException(\sprintf('The value of the option "%s" is expected to be of type array of array, but is of type array of "%s".', $this->formatOptions([$option]), get_debug_type($prototypeValue)));
                         }
 
                         $resolver->prototypeIndex = $index;
@@ -994,7 +999,7 @@
             // If the closure is already being called, we have a cyclic
             // dependency
             if (isset($this->calling[$option])) {
-                throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
+                throw new OptionDefinitionException(\sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
             }
 
             // The following section must be protected from cyclic
@@ -1030,10 +1035,10 @@
                 $allowedContainsArrayType = \count(array_filter($this->allowedTypes[$option], static fn ($item) => str_ends_with($item, '[]'))) > 0;
 
                 if (\is_array($value) && $allowedContainsArrayType) {
-                    throw new InvalidOptionsException(sprintf('The option "%s" with value %s is expected to be of type "%s", but one of the elements is of type "%s".', $this->formatOptions([$option]), $fmtActualValue, $fmtAllowedTypes, $fmtProvidedTypes));
+                    throw new InvalidOptionsException(\sprintf('The option "%s" with value %s is expected to be of type "%s", but one of the elements is of type "%s".', $this->formatOptions([$option]), $fmtActualValue, $fmtAllowedTypes, $fmtProvidedTypes));
                 }
 
-                throw new InvalidOptionsException(sprintf('The option "%s" with value %s is expected to be of type "%s", but is of type "%s".', $this->formatOptions([$option]), $fmtActualValue, $fmtAllowedTypes, $fmtProvidedTypes));
+                throw new InvalidOptionsException(\sprintf('The option "%s" with value %s is expected to be of type "%s", but is of type "%s".', $this->formatOptions([$option]), $fmtActualValue, $fmtAllowedTypes, $fmtProvidedTypes));
             }
         }
 
@@ -1062,21 +1067,21 @@
             }
 
             if (!$success) {
-                $message = sprintf(
+                $message = \sprintf(
                     'The option "%s" with value %s is invalid.',
                     $this->formatOptions([$option]),
                     $this->formatValue($value)
                 );
 
                 if (\count($printableAllowedValues) > 0) {
-                    $message .= sprintf(
+                    $message .= \sprintf(
                         ' Accepted values are: %s.',
                         $this->formatValues($printableAllowedValues)
                     );
                 }
 
                 if (isset($this->info[$option])) {
-                    $message .= sprintf(' Info: %s.', $this->info[$option]);
+                    $message .= \sprintf(' Info: %s.', $this->info[$option]);
                 }
 
                 throw new InvalidOptionsException($message);
@@ -1092,13 +1097,13 @@
             if ($message instanceof \Closure) {
                 // If the closure is already being called, we have a cyclic dependency
                 if (isset($this->calling[$option])) {
-                    throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
+                    throw new OptionDefinitionException(\sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
                 }
 
                 $this->calling[$option] = true;
                 try {
                     if (!\is_string($message = $message($this, $value))) {
-                        throw new InvalidOptionsException(sprintf('Invalid type for deprecation message, expected string but got "%s", return an empty string to ignore.', get_debug_type($message)));
+                        throw new InvalidOptionsException(\sprintf('Invalid type for deprecation message, expected string but got "%s", return an empty string to ignore.', get_debug_type($message)));
                     }
                 } finally {
                     unset($this->calling[$option]);
@@ -1115,7 +1120,7 @@
             // If the closure is already being called, we have a cyclic
             // dependency
             if (isset($this->calling[$option])) {
-                throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
+                throw new OptionDefinitionException(\sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
             }
 
             // The following section must be protected from cyclic
@@ -1293,14 +1298,14 @@
         if ($this->parentsOptions) {
             $prefix = array_shift($this->parentsOptions);
             if ($this->parentsOptions) {
-                $prefix .= sprintf('[%s]', implode('][', $this->parentsOptions));
+                $prefix .= \sprintf('[%s]', implode('][', $this->parentsOptions));
             }
 
             if ($this->prototype && null !== $this->prototypeIndex) {
-                $prefix .= sprintf('[%s]', $this->prototypeIndex);
+                $prefix .= \sprintf('[%s]', $this->prototypeIndex);
             }
 
-            $options = array_map(static fn (string $option): string => sprintf('%s[%s]', $prefix, $option), $options);
+            $options = array_map(static fn (string $option): string => \sprintf('%s[%s]', $prefix, $option), $options);
         }
 
         return implode('", "', $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/OptionsResolver/Tests/Debug/OptionsResolverIntrospectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/OptionsResolver/Tests/Debug/OptionsResolverIntrospectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/OptionsResolver/Tests/Debug/OptionsResolverIntrospectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/OptionsResolver/Tests/Debug/OptionsResolverIntrospectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,7 +63,7 @@
     {
         $resolver = new OptionsResolver();
         $closures = [];
-        $resolver->setDefault($option = 'foo', $closures[] = function (Options $options) {});
+        $resolver->setDefault($option = 'foo', $closures[] = static function (Options $options) {});
 
         $debug = new OptionsResolverIntrospector($resolver);
         $this->assertSame($closures, $debug->getLazyClosures($option));
@@ -156,7 +156,7 @@
     {
         $resolver = new OptionsResolver();
         $resolver->setDefined($option = 'foo');
-        $resolver->setNormalizer($option = 'foo', $normalizer = function () {});
+        $resolver->setNormalizer($option = 'foo', $normalizer = static function () {});
 
         $debug = new OptionsResolverIntrospector($resolver);
         $this->assertSame($normalizer, $debug->getNormalizer($option));
@@ -187,8 +187,8 @@
     {
         $resolver = new OptionsResolver();
         $resolver->setDefined('foo');
-        $resolver->addNormalizer('foo', $normalizer1 = function () {});
-        $resolver->addNormalizer('foo', $normalizer2 = function () {});
+        $resolver->addNormalizer('foo', $normalizer1 = static function () {});
+        $resolver->addNormalizer('foo', $normalizer2 = static function () {});
 
         $debug = new OptionsResolverIntrospector($resolver);
         $this->assertSame([$normalizer1, $normalizer2], $debug->getNormalizers('foo'));
@@ -233,7 +233,7 @@
     {
         $resolver = new OptionsResolver();
         $resolver->setDefined('foo');
-        $resolver->setDeprecated('foo', 'vendor/package', '1.1', $closure = function (Options $options, $value) {});
+        $resolver->setDeprecated('foo', 'vendor/package', '1.1', $closure = static function (Options $options, $value) {});
 
         $debug = new OptionsResolverIntrospector($resolver);
         $this->assertSame([
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,7 +78,7 @@
     public function testResolveFailsFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             $options->resolve([]);
         });
 
@@ -104,7 +104,7 @@
     public function testFailIfSetDefaultFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('lazy', function (Options $options) {
+        $this->resolver->setDefault('lazy', static function (Options $options) {
             $options->setDefault('default', 42);
         });
 
@@ -127,19 +127,19 @@
 
     public function testSetLazyReturnsThis()
     {
-        $this->assertSame($this->resolver, $this->resolver->setDefault('foo', function (Options $options) {}));
+        $this->assertSame($this->resolver, $this->resolver->setDefault('foo', static function (Options $options) {}));
     }
 
     public function testSetLazyClosure()
     {
-        $this->resolver->setDefault('foo', fn (Options $options) => 'lazy');
+        $this->resolver->setDefault('foo', static fn (Options $options) => 'lazy');
 
         $this->assertEquals(['foo' => 'lazy'], $this->resolver->resolve());
     }
 
     public function testClosureWithoutTypeHintNotInvoked()
     {
-        $closure = function ($options) {
+        $closure = static function ($options) {
             Assert::fail('Should not be called');
         };
 
@@ -150,7 +150,7 @@
 
     public function testClosureWithoutParametersNotInvoked()
     {
-        $closure = function () {
+        $closure = static function () {
             Assert::fail('Should not be called');
         };
 
@@ -161,7 +161,7 @@
 
     public function testClosureWithUnionTypesNotInvoked()
     {
-        $closure = function (int|string|null $value) {
+        $closure = static function (int|string|null $value) {
             Assert::fail('Should not be called');
         };
 
@@ -172,7 +172,7 @@
 
     public function testClosureWithIntersectionTypesNotInvoked()
     {
-        $closure = function (\Stringable&\JsonSerializable $value) {
+        $closure = static function (\Stringable&\JsonSerializable $value) {
             Assert::fail('Should not be called');
         };
 
@@ -187,7 +187,7 @@
         $this->resolver->setDefault('foo', 'bar');
 
         // defined by subclass
-        $this->resolver->setDefault('foo', function (Options $options, $previousValue) {
+        $this->resolver->setDefault('foo', static function (Options $options, $previousValue) {
             Assert::assertEquals('bar', $previousValue);
 
             return 'lazy';
@@ -199,10 +199,10 @@
     public function testAccessPreviousLazyDefaultValue()
     {
         // defined by superclass
-        $this->resolver->setDefault('foo', fn (Options $options) => 'bar');
+        $this->resolver->setDefault('foo', static fn (Options $options) => 'bar');
 
         // defined by subclass
-        $this->resolver->setDefault('foo', function (Options $options, $previousValue) {
+        $this->resolver->setDefault('foo', static function (Options $options, $previousValue) {
             Assert::assertEquals('bar', $previousValue);
 
             return 'lazy';
@@ -214,19 +214,19 @@
     public function testPreviousValueIsNotEvaluatedIfNoSecondArgument()
     {
         // defined by superclass
-        $this->resolver->setDefault('foo', function () {
+        $this->resolver->setDefault('foo', static function () {
             Assert::fail('Should not be called');
         });
 
         // defined by subclass, no $previousValue argument defined!
-        $this->resolver->setDefault('foo', fn (Options $options) => 'lazy');
+        $this->resolver->setDefault('foo', static fn (Options $options) => 'lazy');
 
         $this->assertEquals(['foo' => 'lazy'], $this->resolver->resolve());
     }
 
     public function testOverwrittenLazyOptionNotEvaluated()
     {
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             Assert::fail('Should not be called');
         });
 
@@ -239,13 +239,13 @@
     {
         $calls = 0;
 
-        $this->resolver->setDefault('lazy1', function (Options $options) use (&$calls) {
+        $this->resolver->setDefault('lazy1', static function (Options $options) use (&$calls) {
             Assert::assertSame(1, ++$calls);
 
             $options['lazy2'];
         });
 
-        $this->resolver->setDefault('lazy2', function (Options $options) use (&$calls) {
+        $this->resolver->setDefault('lazy2', static function (Options $options) use (&$calls) {
             Assert::assertSame(2, ++$calls);
         });
 
@@ -262,7 +262,7 @@
     public function testFailIfSetRequiredFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             $options->setRequired('bar');
         });
 
@@ -386,7 +386,7 @@
     public function testFailIfSetDefinedFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             $options->setDefined('bar');
         });
 
@@ -433,7 +433,7 @@
     public function testLazyOptionsAreDefined()
     {
         $this->assertFalse($this->resolver->isDefined('foo'));
-        $this->resolver->setDefault('foo', function (Options $options) {});
+        $this->resolver->setDefault('foo', static function (Options $options) {});
         $this->assertTrue($this->resolver->isDefined('foo'));
     }
 
@@ -483,7 +483,7 @@
         $this->expectException(AccessException::class);
         $this->resolver
             ->setDefault('bar', 'baz')
-            ->setDefault('foo', function (Options $options) {
+            ->setDefault('foo', static function (Options $options) {
                 $options->setDeprecated('bar', 'vendor/package', '1.1');
             })
             ->resolve()
@@ -502,7 +502,7 @@
         $this->expectExceptionMessage('Invalid type for deprecation message, expected string but got "bool", return an empty string to ignore.');
         $this->resolver
             ->setDefined('foo')
-            ->setDeprecated('foo', 'vendor/package', '1.1', fn (Options $options, $value) => false)
+            ->setDeprecated('foo', 'vendor/package', '1.1', static fn (Options $options, $value) => false)
         ;
         $this->resolver->resolve(['foo' => null]);
     }
@@ -513,10 +513,10 @@
         $this->expectExceptionMessage('The options "foo", "bar" have a cyclic dependency.');
         $this->resolver
             ->setDefined(['foo', 'bar'])
-            ->setDeprecated('foo', 'vendor/package', '1.1', function (Options $options, $value) {
+            ->setDeprecated('foo', 'vendor/package', '1.1', static function (Options $options, $value) {
                 $options['bar'];
             })
-            ->setDeprecated('bar', 'vendor/package', '1.1', function (Options $options, $value) {
+            ->setDeprecated('bar', 'vendor/package', '1.1', static function (Options $options, $value) {
                 $options['foo'];
             })
         ;
@@ -575,7 +575,7 @@
     public static function provideDeprecationData()
     {
         yield 'It deprecates an option with default message' => [
-            function (OptionsResolver $resolver) {
+            static function (OptionsResolver $resolver) {
                 $resolver
                     ->setDefined(['foo', 'bar'])
                     ->setDeprecated('foo', 'vendor/package', '1.1', 'The option "%name%" is deprecated.')
@@ -590,10 +590,10 @@
         ];
 
         yield 'It deprecates an option with custom message' => [
-            function (OptionsResolver $resolver) {
+            static function (OptionsResolver $resolver) {
                 $resolver
                     ->setDefined('foo')
-                    ->setDefault('bar', fn (Options $options) => $options['foo'])
+                    ->setDefault('bar', static fn (Options $options) => $options['foo'])
                     ->setDeprecated('foo', 'vendor/package', '1.1', 'The option "foo" is deprecated, use "bar" option instead.')
                 ;
             },
@@ -606,14 +606,14 @@
         ];
 
         yield 'It deprecates an option evaluated in another definition' => [
-            function (OptionsResolver $resolver) {
+            static function (OptionsResolver $resolver) {
                 // defined by superclass
                 $resolver
                     ->setDefault('foo', null)
                     ->setDeprecated('foo', 'vendor/package', '1.1', 'The option "%name%" is deprecated.')
                 ;
                 // defined by subclass
-                $resolver->setDefault('bar', function (Options $options) {
+                $resolver->setDefault('bar', static function (Options $options) {
                     return $options['foo']; // It triggers a deprecation
                 });
             },
@@ -626,13 +626,13 @@
         ];
 
         yield 'It deprecates allowed type and value' => [
-            function (OptionsResolver $resolver) {
+            static function (OptionsResolver $resolver) {
                 $resolver
                     ->setDefault('foo', null)
                     ->setAllowedTypes('foo', ['null', 'string', \stdClass::class])
-                    ->setDeprecated('foo', 'vendor/package', '1.1', function (Options $options, $value) {
+                    ->setDeprecated('foo', 'vendor/package', '1.1', static function (Options $options, $value) {
                         if ($value instanceof \stdClass) {
-                            return sprintf('Passing an instance of "%s" to option "foo" is deprecated, pass its FQCN instead.', \stdClass::class);
+                            return \sprintf('Passing an instance of "%s" to option "foo" is deprecated, pass its FQCN instead.', \stdClass::class);
                         }
 
                         return '';
@@ -648,11 +648,11 @@
         ];
 
         yield 'It triggers a deprecation based on the value only if option is provided by the user' => [
-            function (OptionsResolver $resolver) {
+            static function (OptionsResolver $resolver) {
                 $resolver
                     ->setDefined('foo')
                     ->setAllowedTypes('foo', ['null', 'bool'])
-                    ->setDeprecated('foo', 'vendor/package', '1.1', function (Options $options, $value) {
+                    ->setDeprecated('foo', 'vendor/package', '1.1', static function (Options $options, $value) {
                         if (!\is_bool($value)) {
                             return 'Passing a value different than true or false is deprecated.';
                         }
@@ -661,14 +661,14 @@
                     })
                     ->setDefault('baz', null)
                     ->setAllowedTypes('baz', ['null', 'int'])
-                    ->setDeprecated('baz', 'vendor/package', '1.1', function (Options $options, $value) {
+                    ->setDeprecated('baz', 'vendor/package', '1.1', static function (Options $options, $value) {
                         if (!\is_int($value)) {
                             return 'Not passing an integer is deprecated.';
                         }
 
                         return '';
                     })
-                    ->setDefault('bar', function (Options $options) {
+                    ->setDefault('bar', static function (Options $options) {
                         $options['baz']; // It does not triggers a deprecation
 
                         return $options['foo']; // It does not triggers a deprecation
@@ -684,10 +684,10 @@
         ];
 
         yield 'It ignores a deprecation if closure returns an empty string' => [
-            function (OptionsResolver $resolver) {
+            static function (OptionsResolver $resolver) {
                 $resolver
                     ->setDefault('foo', null)
-                    ->setDeprecated('foo', 'vendor/package', '1.1', fn (Options $options, $value) => '')
+                    ->setDeprecated('foo', 'vendor/package', '1.1', static fn (Options $options, $value) => '')
                 ;
             },
             ['foo' => Bar::class],
@@ -696,11 +696,11 @@
         ];
 
         yield 'It deprecates value depending on other option value' => [
-            function (OptionsResolver $resolver) {
+            static function (OptionsResolver $resolver) {
                 $resolver
                     ->setDefault('widget', null)
                     ->setDefault('date_format', null)
-                    ->setDeprecated('date_format', 'vendor/package', '1.1', function (Options $options, $dateFormat) {
+                    ->setDeprecated('date_format', 'vendor/package', '1.1', static function (Options $options, $dateFormat) {
                         if (null !== $dateFormat && 'single_text' === $options['widget']) {
                             return 'Using the "date_format" option when the "widget" option is set to "single_text" is deprecated.';
                         }
@@ -718,16 +718,16 @@
         ];
 
         yield 'It triggers a deprecation for each evaluation' => [
-            function (OptionsResolver $resolver) {
+            static function (OptionsResolver $resolver) {
                 $resolver
                     // defined by superclass
                     ->setDefined('foo')
                     ->setDeprecated('foo', 'vendor/package', '1.1', 'The option "%name%" is deprecated.')
                     // defined by subclass
-                    ->setDefault('bar', function (Options $options) {
+                    ->setDefault('bar', static function (Options $options) {
                         return $options['foo']; // It triggers a deprecation
                     })
-                    ->setNormalizer('bar', function (Options $options, $value) {
+                    ->setNormalizer('bar', static function (Options $options, $value) {
                         $options['foo']; // It triggers a deprecation
                         $options['foo']; // It triggers a deprecation
 
@@ -744,7 +744,7 @@
         ];
 
         yield 'It ignores a deprecation if no option is provided by the user' => [
-            function (OptionsResolver $resolver) {
+            static function (OptionsResolver $resolver) {
                 $resolver
                     ->setDefined('foo')
                     ->setDefault('bar', null)
@@ -758,12 +758,12 @@
         ];
 
         yield 'It explicitly ignores a deprecation' => [
-            function (OptionsResolver $resolver) {
+            static function (OptionsResolver $resolver) {
                 $resolver
-                    ->setDefault('baz', fn (Options $options) => $options->offsetGet('foo', false))
+                    ->setDefault('baz', static fn (Options $options) => $options->offsetGet('foo', false))
                     ->setDefault('foo', null)
                     ->setDeprecated('foo', 'vendor/package', '1.1', 'The option "%name%" is deprecated.')
-                    ->setDefault('bar', fn (Options $options) => $options->offsetGet('foo', false))
+                    ->setDefault('bar', static fn (Options $options) => $options->offsetGet('foo', false))
                 ;
             },
             [],
@@ -790,7 +790,7 @@
     public function testFailIfSetAllowedTypesFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             $options->setAllowedTypes('bar', 'string');
         });
 
@@ -948,7 +948,7 @@
     public function testFailIfAddAllowedTypesFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             $options->addAllowedTypes('bar', 'string');
         });
 
@@ -1022,7 +1022,7 @@
     public function testFailIfSetAllowedValuesFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             $options->setAllowedValues('bar', 'baz');
         });
 
@@ -1035,7 +1035,7 @@
     {
         $this->expectException(InvalidOptionsException::class);
         $this->expectExceptionMessage('The option "foo[bar]" with value "invalid value" is invalid. Accepted values are: "valid value".');
-        $this->resolver->setDefault('foo', function (OptionsResolver $resolver) {
+        $this->resolver->setDefault('foo', static function (OptionsResolver $resolver) {
             $resolver
                 ->setDefined('bar')
                 ->setAllowedValues('bar', 'valid value');
@@ -1048,7 +1048,7 @@
     {
         $this->expectException(InvalidOptionsException::class);
         $this->expectExceptionMessage('The option "foo[bar]" with value 1 is expected to be of type "string", but is of type "int".');
-        $this->resolver->setDefault('foo', function (OptionsResolver $resolver) {
+        $this->resolver->setDefault('foo', static function (OptionsResolver $resolver) {
             $resolver
                 ->setDefined('bar')
                 ->setAllowedTypes('bar', 'string');
@@ -1123,7 +1123,7 @@
     public function testResolveFailsIfClosureReturnsFalse()
     {
         $this->resolver->setDefault('foo', 42);
-        $this->resolver->setAllowedValues('foo', function ($value) use (&$passedValue) {
+        $this->resolver->setAllowedValues('foo', static function ($value) use (&$passedValue) {
             $passedValue = $value;
 
             return false;
@@ -1141,7 +1141,7 @@
     public function testResolveSucceedsIfClosureReturnsTrue()
     {
         $this->resolver->setDefault('foo', 'bar');
-        $this->resolver->setAllowedValues('foo', function ($value) use (&$passedValue) {
+        $this->resolver->setAllowedValues('foo', static function ($value) use (&$passedValue) {
             $passedValue = $value;
 
             return true;
@@ -1156,9 +1156,9 @@
         $this->expectException(InvalidOptionsException::class);
         $this->resolver->setDefault('foo', 42);
         $this->resolver->setAllowedValues('foo', [
-            fn () => false,
-            fn () => false,
-            fn () => false,
+            static fn () => false,
+            static fn () => false,
+            static fn () => false,
         ]);
 
         $this->resolver->resolve();
@@ -1168,9 +1168,9 @@
     {
         $this->resolver->setDefault('foo', 'bar');
         $this->resolver->setAllowedValues('foo', [
-            fn () => false,
-            fn () => true,
-            fn () => false,
+            static fn () => false,
+            static fn () => true,
+            static fn () => false,
         ]);
 
         $this->assertEquals(['foo' => 'bar'], $this->resolver->resolve());
@@ -1185,7 +1185,7 @@
     public function testFailIfAddAllowedValuesFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             $options->addAllowedValues('bar', 'baz');
         });
 
@@ -1258,8 +1258,8 @@
     {
         $this->expectException(InvalidOptionsException::class);
         $this->resolver->setDefault('foo', 42);
-        $this->resolver->setAllowedValues('foo', fn () => false);
-        $this->resolver->addAllowedValues('foo', fn () => false);
+        $this->resolver->setAllowedValues('foo', static fn () => false);
+        $this->resolver->addAllowedValues('foo', static fn () => false);
 
         $this->resolver->resolve();
     }
@@ -1267,8 +1267,8 @@
     public function testResolveSucceedsIfAnyAddedClosureReturnsTrue()
     {
         $this->resolver->setDefault('foo', 'bar');
-        $this->resolver->setAllowedValues('foo', fn () => false);
-        $this->resolver->addAllowedValues('foo', fn () => true);
+        $this->resolver->setAllowedValues('foo', static fn () => false);
+        $this->resolver->addAllowedValues('foo', static fn () => true);
 
         $this->assertEquals(['foo' => 'bar'], $this->resolver->resolve());
     }
@@ -1276,8 +1276,8 @@
     public function testResolveSucceedsIfAnyAddedClosureReturnsTrue2()
     {
         $this->resolver->setDefault('foo', 'bar');
-        $this->resolver->setAllowedValues('foo', fn () => true);
-        $this->resolver->addAllowedValues('foo', fn () => false);
+        $this->resolver->setAllowedValues('foo', static fn () => true);
+        $this->resolver->addAllowedValues('foo', static fn () => false);
 
         $this->assertEquals(['foo' => 'bar'], $this->resolver->resolve());
     }
@@ -1285,13 +1285,13 @@
     public function testSetNormalizerReturnsThis()
     {
         $this->resolver->setDefault('foo', 'bar');
-        $this->assertSame($this->resolver, $this->resolver->setNormalizer('foo', function () {}));
+        $this->assertSame($this->resolver, $this->resolver->setNormalizer('foo', static function () {}));
     }
 
     public function testSetNormalizerClosure()
     {
         $this->resolver->setDefault('foo', 'bar');
-        $this->resolver->setNormalizer('foo', fn () => 'normalized');
+        $this->resolver->setNormalizer('foo', static fn () => 'normalized');
 
         $this->assertEquals(['foo' => 'normalized'], $this->resolver->resolve());
     }
@@ -1299,14 +1299,14 @@
     public function testSetNormalizerFailsIfUnknownOption()
     {
         $this->expectException(UndefinedOptionsException::class);
-        $this->resolver->setNormalizer('foo', function () {});
+        $this->resolver->setNormalizer('foo', static function () {});
     }
 
     public function testFailIfSetNormalizerFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
-            $options->setNormalizer('foo', function () {});
+        $this->resolver->setDefault('foo', static function (Options $options) {
+            $options->setNormalizer('foo', static function () {});
         });
 
         $this->resolver->setDefault('bar', 'baz');
@@ -1318,7 +1318,7 @@
     {
         $this->resolver->setDefault('foo', 'bar');
 
-        $this->resolver->setNormalizer('foo', fn (Options $options, $value) => 'normalized['.$value.']');
+        $this->resolver->setNormalizer('foo', static fn (Options $options, $value) => 'normalized['.$value.']');
 
         $this->assertEquals(['foo' => 'normalized[bar]'], $this->resolver->resolve());
     }
@@ -1327,7 +1327,7 @@
     {
         $this->resolver->setDefault('foo', 'bar');
 
-        $this->resolver->setNormalizer('foo', fn (Options $options, $value) => 'normalized['.$value.']');
+        $this->resolver->setNormalizer('foo', static fn (Options $options, $value) => 'normalized['.$value.']');
 
         $resolved = $this->resolver->resolve(['foo' => 'baz']);
 
@@ -1341,7 +1341,7 @@
 
         $this->resolver->setAllowedTypes('foo', 'int');
 
-        $this->resolver->setNormalizer('foo', function () {
+        $this->resolver->setNormalizer('foo', static function () {
             Assert::fail('Should not be called.');
         });
 
@@ -1355,7 +1355,7 @@
 
         $this->resolver->setAllowedValues('foo', 'baz');
 
-        $this->resolver->setNormalizer('foo', function () {
+        $this->resolver->setNormalizer('foo', static function () {
             Assert::fail('Should not be called.');
         });
 
@@ -1367,8 +1367,7 @@
         $this->resolver->setDefault('default', 'bar');
         $this->resolver->setDefault('norm', 'baz');
 
-        $this->resolver->setNormalizer('norm', function (Options $options) {
-            /* @var TestCase $test */
+        $this->resolver->setNormalizer('norm', static function (Options $options) {
             Assert::assertSame('bar', $options['default']);
 
             return 'normalized';
@@ -1382,12 +1381,11 @@
 
     public function testNormalizerCanAccessLazyOptions()
     {
-        $this->resolver->setDefault('lazy', fn (Options $options) => 'bar');
+        $this->resolver->setDefault('lazy', static fn (Options $options) => 'bar');
         $this->resolver->setDefault('norm', 'baz');
 
-        $this->resolver->setNormalizer('norm', function (Options $options) {
-            /* @var TestCase $test */
-            Assert::assertEquals('bar', $options['lazy']);
+        $this->resolver->setNormalizer('norm', static function (Options $options) {
+            Assert::assertSame('bar', $options['lazy']);
 
             return 'normalized';
         });
@@ -1404,11 +1402,11 @@
         $this->resolver->setDefault('norm1', 'bar');
         $this->resolver->setDefault('norm2', 'baz');
 
-        $this->resolver->setNormalizer('norm1', function (Options $options) {
+        $this->resolver->setNormalizer('norm1', static function (Options $options) {
             $options['norm2'];
         });
 
-        $this->resolver->setNormalizer('norm2', function (Options $options) {
+        $this->resolver->setNormalizer('norm2', static function (Options $options) {
             $options['norm1'];
         });
 
@@ -1418,13 +1416,13 @@
     public function testFailIfCyclicDependencyBetweenNormalizerAndLazyOption()
     {
         $this->expectException(OptionDefinitionException::class);
-        $this->resolver->setDefault('lazy', function (Options $options) {
+        $this->resolver->setDefault('lazy', static function (Options $options) {
             $options['norm'];
         });
 
         $this->resolver->setDefault('norm', 'baz');
 
-        $this->resolver->setNormalizer('norm', function (Options $options) {
+        $this->resolver->setNormalizer('norm', static function (Options $options) {
             $options['lazy'];
         });
 
@@ -1437,7 +1435,7 @@
 
         $this->resolver->setDefaults(['catcher' => null, 'thrower' => null]);
 
-        $this->resolver->setNormalizer('catcher', function (Options $options) {
+        $this->resolver->setNormalizer('catcher', static function (Options $options) {
             try {
                 return $options['thrower'];
             } catch (\Exception $e) {
@@ -1445,7 +1443,7 @@
             }
         });
 
-        $this->resolver->setNormalizer('thrower', function () use (&$throw) {
+        $this->resolver->setNormalizer('thrower', static function () use (&$throw) {
             if ($throw) {
                 $throw = false;
                 throw new \UnexpectedValueException('throwing');
@@ -1461,7 +1459,7 @@
     {
         $throw = true;
 
-        $this->resolver->setDefault('catcher', function (Options $options) {
+        $this->resolver->setDefault('catcher', static function (Options $options) {
             try {
                 return $options['thrower'];
             } catch (\Exception $e) {
@@ -1469,7 +1467,7 @@
             }
         });
 
-        $this->resolver->setDefault('thrower', function (Options $options) use (&$throw) {
+        $this->resolver->setDefault('thrower', static function (Options $options) use (&$throw) {
             if ($throw) {
                 $throw = false;
                 throw new \UnexpectedValueException('throwing');
@@ -1488,12 +1486,12 @@
         $this->resolver->setDefault('norm1', 'bar');
         $this->resolver->setDefault('norm2', 'baz');
 
-        $this->resolver->setNormalizer('norm1', function ($options) use (&$calls) {
+        $this->resolver->setNormalizer('norm1', static function ($options) use (&$calls) {
             Assert::assertSame(1, ++$calls);
 
             $options['norm2'];
         });
-        $this->resolver->setNormalizer('norm2', function () use (&$calls) {
+        $this->resolver->setNormalizer('norm2', static function () use (&$calls) {
             Assert::assertSame(2, ++$calls);
         });
 
@@ -1506,7 +1504,7 @@
     {
         $this->resolver->setDefined('norm');
 
-        $this->resolver->setNormalizer('norm', function () {
+        $this->resolver->setNormalizer('norm', static function () {
             Assert::fail('Should not be called.');
         });
 
@@ -1517,16 +1515,16 @@
     {
         $this->resolver->setDefault('foo', 'bar');
 
-        $this->assertSame($this->resolver, $this->resolver->addNormalizer('foo', function () {}));
+        $this->assertSame($this->resolver, $this->resolver->addNormalizer('foo', static function () {}));
     }
 
     public function testAddNormalizerClosure()
     {
         // defined by superclass
         $this->resolver->setDefault('foo', 'bar');
-        $this->resolver->setNormalizer('foo', fn (Options $options, $value) => '1st-normalized-'.$value);
+        $this->resolver->setNormalizer('foo', static fn (Options $options, $value) => '1st-normalized-'.$value);
         // defined by subclass
-        $this->resolver->addNormalizer('foo', fn (Options $options, $value) => '2nd-normalized-'.$value);
+        $this->resolver->addNormalizer('foo', static fn (Options $options, $value) => '2nd-normalized-'.$value);
 
         $this->assertEquals(['foo' => '2nd-normalized-1st-normalized-bar'], $this->resolver->resolve());
     }
@@ -1535,9 +1533,9 @@
     {
         // defined by superclass
         $this->resolver->setDefault('foo', 'bar');
-        $this->resolver->setNormalizer('foo', fn (Options $options, $value) => '2nd-normalized-'.$value);
+        $this->resolver->setNormalizer('foo', static fn (Options $options, $value) => '2nd-normalized-'.$value);
         // defined by subclass
-        $this->resolver->addNormalizer('foo', fn (Options $options, $value) => '1st-normalized-'.$value, true);
+        $this->resolver->addNormalizer('foo', static fn (Options $options, $value) => '1st-normalized-'.$value, true);
 
         $this->assertEquals(['foo' => '2nd-normalized-1st-normalized-bar'], $this->resolver->resolve());
     }
@@ -1546,7 +1544,7 @@
     {
         // defined by superclass
         $this->resolver->setDefault('foo', 'bar');
-        $this->resolver->addNormalizer('foo', fn (Options $options, $value) => '1st-normalized-'.$value, true);
+        $this->resolver->addNormalizer('foo', static fn (Options $options, $value) => '1st-normalized-'.$value, true);
 
         $this->assertEquals(['foo' => '1st-normalized-bar'], $this->resolver->resolve());
     }
@@ -1554,14 +1552,14 @@
     public function testAddNormalizerFailsIfUnknownOption()
     {
         $this->expectException(UndefinedOptionsException::class);
-        $this->resolver->addNormalizer('foo', function () {});
+        $this->resolver->addNormalizer('foo', static function () {});
     }
 
     public function testFailIfAddNormalizerFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
-            $options->addNormalizer('foo', function () {});
+        $this->resolver->setDefault('foo', static function (Options $options) {
+            $options->addNormalizer('foo', static function () {});
         });
 
         $this->resolver->resolve();
@@ -1592,7 +1590,7 @@
     public function testFailIfSetDefaultsFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             $options->setDefaults(['two' => '2']);
         });
 
@@ -1628,7 +1626,7 @@
 
     public function testRemoveLazyOption()
     {
-        $this->resolver->setDefault('foo', fn (Options $options) => 'lazy');
+        $this->resolver->setDefault('foo', static fn (Options $options) => 'lazy');
         $this->resolver->remove('foo');
 
         $this->assertSame([], $this->resolver->resolve());
@@ -1637,7 +1635,7 @@
     public function testRemoveNormalizer()
     {
         $this->resolver->setDefault('foo', 'bar');
-        $this->resolver->setNormalizer('foo', fn (Options $options, $value) => 'normalized');
+        $this->resolver->setNormalizer('foo', static fn (Options $options, $value) => 'normalized');
         $this->resolver->remove('foo');
         $this->resolver->setDefault('foo', 'bar');
 
@@ -1667,7 +1665,7 @@
     public function testFailIfRemoveFromLazyOption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             $options->remove('bar');
         });
 
@@ -1698,7 +1696,7 @@
 
     public function testClearLazyOption()
     {
-        $this->resolver->setDefault('foo', fn (Options $options) => 'lazy');
+        $this->resolver->setDefault('foo', static fn (Options $options) => 'lazy');
         $this->resolver->clear();
 
         $this->assertSame([], $this->resolver->resolve());
@@ -1707,7 +1705,7 @@
     public function testClearNormalizer()
     {
         $this->resolver->setDefault('foo', 'bar');
-        $this->resolver->setNormalizer('foo', fn (Options $options, $value) => 'normalized');
+        $this->resolver->setNormalizer('foo', static fn (Options $options, $value) => 'normalized');
         $this->resolver->clear();
         $this->resolver->setDefault('foo', 'bar');
 
@@ -1737,7 +1735,7 @@
     public function testFailIfClearFromLazyption()
     {
         $this->expectException(AccessException::class);
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             $options->clear();
         });
 
@@ -1749,9 +1747,9 @@
     public function testClearOptionAndNormalizer()
     {
         $this->resolver->setDefault('foo1', 'bar');
-        $this->resolver->setNormalizer('foo1', fn (Options $options) => '');
+        $this->resolver->setNormalizer('foo1', static fn (Options $options) => '');
         $this->resolver->setDefault('foo2', 'bar');
-        $this->resolver->setNormalizer('foo2', fn (Options $options) => '');
+        $this->resolver->setNormalizer('foo2', static fn (Options $options) => '');
 
         $this->resolver->clear();
         $this->assertEmpty($this->resolver->resolve());
@@ -1763,9 +1761,9 @@
         $this->resolver->setDefault('default2', 1);
         $this->resolver->setRequired('required');
         $this->resolver->setDefined('defined');
-        $this->resolver->setDefault('lazy1', fn (Options $options) => 'lazy');
+        $this->resolver->setDefault('lazy1', static fn (Options $options) => 'lazy');
 
-        $this->resolver->setDefault('lazy2', function (Options $options) {
+        $this->resolver->setDefault('lazy2', static function (Options $options) {
             Assert::assertArrayHasKey('default1', $options);
             Assert::assertArrayHasKey('default2', $options);
             Assert::assertArrayHasKey('required', $options);
@@ -1821,7 +1819,7 @@
         $this->expectExceptionMessage('The option "undefined" does not exist. Defined options are: "foo", "lazy".');
         $this->resolver->setDefault('foo', 'bar');
 
-        $this->resolver->setDefault('lazy', function (Options $options) {
+        $this->resolver->setDefault('lazy', static function (Options $options) {
             $options['undefined'];
         });
 
@@ -1834,7 +1832,7 @@
         $this->expectExceptionMessage('The optional option "defined" has no value set. You should make sure it is set with "isset" before reading it.');
         $this->resolver->setDefined('defined');
 
-        $this->resolver->setDefault('lazy', function (Options $options) {
+        $this->resolver->setDefault('lazy', static function (Options $options) {
             $options['defined'];
         });
 
@@ -1844,11 +1842,11 @@
     public function testFailIfCyclicDependency()
     {
         $this->expectException(OptionDefinitionException::class);
-        $this->resolver->setDefault('lazy1', function (Options $options) {
+        $this->resolver->setDefault('lazy1', static function (Options $options) {
             $options['lazy2'];
         });
 
-        $this->resolver->setDefault('lazy2', function (Options $options) {
+        $this->resolver->setDefault('lazy2', static function (Options $options) {
             $options['lazy1'];
         });
 
@@ -1860,9 +1858,9 @@
         $this->resolver->setDefault('default', 0);
         $this->resolver->setRequired('required');
         $this->resolver->setDefined('defined');
-        $this->resolver->setDefault('lazy1', function () {});
+        $this->resolver->setDefault('lazy1', static function () {});
 
-        $this->resolver->setDefault('lazy2', function (Options $options) {
+        $this->resolver->setDefault('lazy2', static function (Options $options) {
             Assert::assertCount(4, $options);
         });
 
@@ -1880,7 +1878,7 @@
         $this->resolver->setDefault('foo', 0);
         $this->resolver->setRequired('bar');
         $this->resolver->setDefined('bar');
-        $this->resolver->setDefault('lazy1', function () {});
+        $this->resolver->setDefault('lazy1', static function () {});
 
         \count($this->resolver);
     }
@@ -2019,7 +2017,7 @@
     public function testIsNestedOption()
     {
         $this->resolver->setDefaults([
-            'database' => function (OptionsResolver $resolver) {
+            'database' => static function (OptionsResolver $resolver) {
                 $resolver->setDefined(['host', 'port']);
             },
         ]);
@@ -2032,7 +2030,7 @@
         $this->expectExceptionMessage('The option "database[foo]" does not exist. Defined options are: "host", "port".');
         $this->resolver->setDefaults([
             'name' => 'default',
-            'database' => function (OptionsResolver $resolver) {
+            'database' => static function (OptionsResolver $resolver) {
                 $resolver->setDefined(['host', 'port']);
             },
         ]);
@@ -2047,7 +2045,7 @@
         $this->expectExceptionMessage('The required option "database[host]" is missing.');
         $this->resolver->setDefaults([
             'name' => 'default',
-            'database' => function (OptionsResolver $resolver) {
+            'database' => static function (OptionsResolver $resolver) {
                 $resolver->setRequired('host');
             },
         ]);
@@ -2062,7 +2060,7 @@
         $this->expectExceptionMessage('The option "database[logging]" with value null is expected to be of type "bool", but is of type "null".');
         $this->resolver->setDefaults([
             'name' => 'default',
-            'database' => function (OptionsResolver $resolver) {
+            'database' => static function (OptionsResolver $resolver) {
                 $resolver
                     ->setDefined('logging')
                     ->setAllowedTypes('logging', 'bool');
@@ -2079,7 +2077,7 @@
         $this->expectExceptionMessage('The nested option "database" with value null is expected to be of type array, but is of type "null".');
         $this->resolver->setDefaults([
             'name' => 'default',
-            'database' => function (OptionsResolver $resolver) {
+            'database' => static function (OptionsResolver $resolver) {
                 $resolver->setDefined('host');
             },
         ]);
@@ -2092,7 +2090,7 @@
     {
         $this->resolver->setDefaults([
             'name' => 'default',
-            'database' => function (OptionsResolver $resolver) {
+            'database' => static function (OptionsResolver $resolver) {
                 $resolver->setDefined(['host', 'port']);
             },
         ]);
@@ -2108,7 +2106,7 @@
     {
         $this->resolver->setDefaults([
             'name' => 'default',
-            'database' => function (OptionsResolver $resolver) {
+            'database' => static function (OptionsResolver $resolver) {
                 $resolver->setDefaults([
                     'host' => 'localhost',
                     'port' => 3306,
@@ -2130,12 +2128,12 @@
     {
         $this->resolver->setDefaults([
             'name' => 'default',
-            'database' => function (OptionsResolver $resolver) {
+            'database' => static function (OptionsResolver $resolver) {
                 $resolver
                     ->setRequired(['dbname', 'host'])
                     ->setDefaults([
                         'port' => 3306,
-                        'replicas' => function (OptionsResolver $resolver) {
+                        'replicas' => static function (OptionsResolver $resolver) {
                             $resolver->setDefaults([
                                 'host' => 'replica1',
                                 'port' => 3306,
@@ -2168,8 +2166,8 @@
     public function testResolveLazyOptionUsingNestedOption()
     {
         $this->resolver->setDefaults([
-            'version' => fn (Options $options) => $options['database']['server_version'],
-            'database' => function (OptionsResolver $resolver) {
+            'version' => static fn (Options $options) => $options['database']['server_version'],
+            'database' => static function (OptionsResolver $resolver) {
                 $resolver->setDefault('server_version', '3.15');
             },
         ]);
@@ -2185,7 +2183,7 @@
     {
         $this->resolver
             ->setDefaults([
-                'database' => function (OptionsResolver $resolver) {
+                'database' => static function (OptionsResolver $resolver) {
                     $resolver->setDefaults([
                         'port' => 3306,
                         'host' => 'localhost',
@@ -2193,7 +2191,7 @@
                     ]);
                 },
             ])
-            ->setNormalizer('database', function (Options $options, $value) {
+            ->setNormalizer('database', static function (Options $options, $value) {
                 ksort($value);
 
                 return $value;
@@ -2210,18 +2208,18 @@
     public function testOverwrittenNestedOptionNotEvaluatedIfLazyDefault()
     {
         // defined by superclass
-        $this->resolver->setDefault('foo', function (OptionsResolver $resolver) {
+        $this->resolver->setDefault('foo', static function (OptionsResolver $resolver) {
             Assert::fail('Should not be called');
         });
         // defined by subclass
-        $this->resolver->setDefault('foo', fn (Options $options) => 'lazy');
+        $this->resolver->setDefault('foo', static fn (Options $options) => 'lazy');
         $this->assertSame(['foo' => 'lazy'], $this->resolver->resolve());
     }
 
     public function testOverwrittenNestedOptionNotEvaluatedIfScalarDefault()
     {
         // defined by superclass
-        $this->resolver->setDefault('foo', function (OptionsResolver $resolver) {
+        $this->resolver->setDefault('foo', static function (OptionsResolver $resolver) {
             Assert::fail('Should not be called');
         });
         // defined by subclass
@@ -2232,11 +2230,11 @@
     public function testOverwrittenLazyOptionNotEvaluatedIfNestedOption()
     {
         // defined by superclass
-        $this->resolver->setDefault('foo', function (Options $options) {
+        $this->resolver->setDefault('foo', static function (Options $options) {
             Assert::fail('Should not be called');
         });
         // defined by subclass
-        $this->resolver->setDefault('foo', function (OptionsResolver $resolver) {
+        $this->resolver->setDefault('foo', static function (OptionsResolver $resolver) {
             $resolver->setDefault('bar', 'baz');
         });
         $this->assertSame(['foo' => ['bar' => 'baz']], $this->resolver->resolve());
@@ -2245,15 +2243,15 @@
     public function testResolveAllNestedOptionDefinitions()
     {
         // defined by superclass
-        $this->resolver->setDefault('foo', function (OptionsResolver $resolver) {
+        $this->resolver->setDefault('foo', static function (OptionsResolver $resolver) {
             $resolver->setRequired('bar');
         });
         // defined by subclass
-        $this->resolver->setDefault('foo', function (OptionsResolver $resolver) {
+        $this->resolver->setDefault('foo', static function (OptionsResolver $resolver) {
             $resolver->setDefault('bar', 'baz');
         });
         // defined by subclass
-        $this->resolver->setDefault('foo', function (OptionsResolver $resolver) {
+        $this->resolver->setDefault('foo', static function (OptionsResolver $resolver) {
             $resolver->setDefault('ping', 'pong');
         });
         $this->assertSame(['foo' => ['ping' => 'pong', 'bar' => 'baz']], $this->resolver->resolve());
@@ -2262,11 +2260,11 @@
     public function testNormalizeNestedValue()
     {
         // defined by superclass
-        $this->resolver->setDefault('foo', function (OptionsResolver $resolver) {
+        $this->resolver->setDefault('foo', static function (OptionsResolver $resolver) {
             $resolver->setDefault('bar', null);
         });
         // defined by subclass
-        $this->resolver->setNormalizer('foo', function (Options $options, $resolvedValue) {
+        $this->resolver->setNormalizer('foo', static function (Options $options, $resolvedValue) {
             $resolvedValue['bar'] ??= 'baz';
 
             return $resolvedValue;
@@ -2277,7 +2275,7 @@
     public function testFailsIfCyclicDependencyBetweenSameNestedOption()
     {
         $this->expectException(OptionDefinitionException::class);
-        $this->resolver->setDefault('database', function (OptionsResolver $resolver, Options $parent) {
+        $this->resolver->setDefault('database', static function (OptionsResolver $resolver, Options $parent) {
             $resolver->setDefault('replicas', $parent['database']);
         });
         $this->resolver->resolve();
@@ -2287,8 +2285,8 @@
     {
         $this->expectException(OptionDefinitionException::class);
         $this->resolver->setDefaults([
-            'version' => fn (Options $options) => $options['database']['server_version'],
-            'database' => function (OptionsResolver $resolver, Options $parent) {
+            'version' => static fn (Options $options) => $options['database']['server_version'],
+            'database' => static function (OptionsResolver $resolver, Options $parent) {
                 $resolver->setDefault('server_version', $parent['version']);
             },
         ]);
@@ -2300,10 +2298,10 @@
         $this->expectException(OptionDefinitionException::class);
         $this->resolver
             ->setDefault('name', 'default')
-            ->setDefault('database', function (OptionsResolver $resolver, Options $parent) {
+            ->setDefault('database', static function (OptionsResolver $resolver, Options $parent) {
                 $resolver->setDefault('host', $parent['name']);
             })
-            ->setNormalizer('name', function (Options $options, $value) {
+            ->setNormalizer('name', static function (Options $options, $value) {
                 $options['database'];
             });
         $this->resolver->resolve();
@@ -2312,10 +2310,10 @@
     public function testFailsIfCyclicDependencyBetweenNestedOptions()
     {
         $this->expectException(OptionDefinitionException::class);
-        $this->resolver->setDefault('database', function (OptionsResolver $resolver, Options $parent) {
+        $this->resolver->setDefault('database', static function (OptionsResolver $resolver, Options $parent) {
             $resolver->setDefault('host', $parent['replica']['host']);
         });
-        $this->resolver->setDefault('replica', function (OptionsResolver $resolver, Options $parent) {
+        $this->resolver->setDefault('replica', static function (OptionsResolver $resolver, Options $parent) {
             $resolver->setDefault('host', $parent['database']['host']);
         });
         $this->resolver->resolve();
@@ -2325,7 +2323,7 @@
     {
         $this->resolver->setDefaults([
             'version' => 3.15,
-            'database' => function (OptionsResolver $resolver, Options $parent) {
+            'database' => static function (OptionsResolver $resolver, Options $parent) {
                 $resolver->setDefault('server_version', $parent['version']);
             },
         ]);
@@ -2334,7 +2332,7 @@
 
     public function testNestedClosureWithoutTypeHintNotInvoked()
     {
-        $closure = function ($resolver) {
+        $closure = static function ($resolver) {
             Assert::fail('Should not be called');
         };
         $this->resolver->setDefault('foo', $closure);
@@ -2343,7 +2341,7 @@
 
     public function testNestedClosureWithoutTypeHint2ndArgumentNotInvoked()
     {
-        $closure = function (OptionsResolver $resolver, $parent) {
+        $closure = static function (OptionsResolver $resolver, $parent) {
             Assert::fail('Should not be called');
         };
         $this->resolver->setDefault('foo', $closure);
@@ -2354,13 +2352,13 @@
     {
         $this->resolver->setDefaults([
             'ip' => null,
-            'database' => function (OptionsResolver $resolver, Options $parent) {
+            'database' => static function (OptionsResolver $resolver, Options $parent) {
                 $resolver->setDefault('host', $parent['ip']);
-                $resolver->setDefault('primary_replica', function (OptionsResolver $resolver, Options $parent) {
+                $resolver->setDefault('primary_replica', static function (OptionsResolver $resolver, Options $parent) {
                     $resolver->setDefault('host', $parent['host']);
                 });
             },
-            'secondary_replica' => fn (Options $options) => $options['database']['primary_replica']['host'],
+            'secondary_replica' => static fn (Options $options) => $options['database']['primary_replica']['host'],
         ]);
         $actualOptions = $this->resolver->resolve(['ip' => '127.0.0.1']);
         $expectedOptions = [
@@ -2378,11 +2376,11 @@
     {
         $this->resolver->setDefaults([
             'debug' => true,
-            'database' => function (OptionsResolver $resolver, Options $parent) {
+            'database' => static function (OptionsResolver $resolver, Options $parent) {
                 $resolver
                     ->setDefined('logging')
-                    ->setDefault('profiling', fn (Options $options) => $parent['debug'])
-                    ->setNormalizer('logging', fn (Options $options, $value) => false === $parent['debug'] ? true : $value);
+                    ->setDefault('profiling', static fn (Options $options) => $parent['debug'])
+                    ->setNormalizer('logging', static fn (Options $options, $value) => false === $parent['debug'] ? true : $value);
             },
         ]);
         $actualOptions = $this->resolver->resolve([
@@ -2417,9 +2415,9 @@
         ;
         $introspector = new OptionsResolverIntrospector($this->resolver);
 
-        $this->assertTrue(true, $this->resolver->isDefined('foo'));
-        $this->assertTrue(true, $this->resolver->isDeprecated('foo'));
-        $this->assertTrue(true, $this->resolver->hasDefault('foo'));
+        $this->assertTrue($this->resolver->isDefined('foo'));
+        $this->assertTrue($this->resolver->isDeprecated('foo'));
+        $this->assertTrue($this->resolver->hasDefault('foo'));
         $this->assertSame('bar', $introspector->getDefault('foo'));
         $this->assertSame(['string', 'bool'], $introspector->getAllowedTypes('foo'));
         $this->assertSame(['bar', 'zab'], $introspector->getAllowedValues('foo'));
@@ -2568,4 +2566,75 @@
 
         $this->assertSame($expectedOptions, $actualOptions);
     }
+
+    public function testRemoveAlsoRemovesDeprecation()
+    {
+        $this->resolver->setDefined('foo');
+        $this->resolver->setDeprecated('foo', 'vendor/package', '1.0');
+        $this->assertTrue($this->resolver->isDeprecated('foo'));
+
+        $this->resolver->remove('foo');
+        $this->assertFalse($this->resolver->isDeprecated('foo'));
+
+        $this->resolver->setDefault('foo', 'bar');
+        $this->assertFalse($this->resolver->isDeprecated('foo'));
+
+        $count = 0;
+        set_error_handler(static function (int $type) use (&$count) {
+            if (\E_USER_DEPRECATED === $type) {
+                ++$count;
+            }
+
+            return false;
+        });
+
+        try {
+            $this->resolver->resolve(['foo' => 'value']);
+            $this->assertSame(0, $count);
+        } finally {
+            restore_error_handler();
+        }
+    }
+
+    public function testNestedPrototypeErrorPathHasFullContext()
+    {
+        $resolver = new OptionsResolver();
+
+        $resolver->setDefault('connections', static function (OptionsResolver $connResolver) {
+            $connResolver->setPrototype(true);
+            $connResolver->setRequired(['host', 'database']);
+            $connResolver->setDefault('user', 'root');
+
+            $connResolver->setDefault('replicas', static function (OptionsResolver $replicaResolver) {
+                $replicaResolver->setPrototype(true);
+                $replicaResolver->setRequired(['host']);
+                $replicaResolver->setDefault('user', 'read_only');
+            });
+        });
+
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage('The required option "connections[main_db][replicas][1][host]" is missing.');
+
+        $options = [
+            'connections' => [
+                'main_db' => [
+                    'host' => 'localhost',
+                    'database' => 'app_db',
+                    'replicas' => [
+                        ['host' => 'replica-01.local', 'user' => 'read_only'],
+                        ['user' => 'other_user'], // Index 1 -> "host" is missing here
+                    ],
+                ],
+                'audit_db' => [
+                    'host' => 'audit.local',
+                    'database' => 'audit_db',
+                    'replicas' => [
+                        ['host' => 'audit-replica.local'],
+                    ],
+                ],
+            ],
+        ];
+
+        $resolver->resolve($options);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Command/UserPasswordHashCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Command/UserPasswordHashCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Command/UserPasswordHashCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Command/UserPasswordHashCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,42 +57,42 @@
             ->addOption('empty-salt', null, InputOption::VALUE_NONE, 'Do not generate a salt or let the hasher generate one.')
             ->setHelp(<<<EOF
 
-The <info>%command.name%</info> command hashes passwords according to your
-security configuration. This command is mainly used to generate passwords for
-the <comment>in_memory</comment> user provider type and for changing passwords
-in the database while developing the application.
+                The <info>%command.name%</info> command hashes passwords according to your
+                security configuration. This command is mainly used to generate passwords for
+                the <comment>in_memory</comment> user provider type and for changing passwords
+                in the database while developing the application.
 
-Suppose that you have the following security configuration in your application:
+                Suppose that you have the following security configuration in your application:
 
-<comment>
-# config/packages/security.yml
-security:
-    password_hashers:
-        Symfony\Component\Security\Core\User\InMemoryUser: plaintext
-        App\Entity\User: auto
-</comment>
+                <comment>
+                # config/packages/security.yml
+                security:
+                    password_hashers:
+                        Symfony\Component\Security\Core\User\InMemoryUser: plaintext
+                        App\Entity\User: auto
+                </comment>
 
-If you execute the command non-interactively, the first available configured
-user class under the <comment>security.password_hashers</comment> key is used and a random salt is
-generated to hash the password:
+                If you execute the command non-interactively, the first available configured
+                user class under the <comment>security.password_hashers</comment> key is used and a random salt is
+                generated to hash the password:
 
-  <info>php %command.full_name% --no-interaction [password]</info>
+                  <info>php %command.full_name% --no-interaction [password]</info>
 
-Pass the full user class path as the second argument to hash passwords for
-your own entities:
+                Pass the full user class path as the second argument to hash passwords for
+                your own entities:
 
-  <info>php %command.full_name% --no-interaction [password] 'App\Entity\User'</info>
+                  <info>php %command.full_name% --no-interaction [password] 'App\Entity\User'</info>
 
-Executing the command interactively allows you to generate a random salt for
-hashing the password:
+                Executing the command interactively allows you to generate a random salt for
+                hashing the password:
 
-  <info>php %command.full_name% [password] 'App\Entity\User'</info>
+                  <info>php %command.full_name% [password] 'App\Entity\User'</info>
 
-In case your hasher doesn't require a salt, add the <comment>empty-salt</comment> option:
+                In case your hasher doesn't require a salt, add the <comment>empty-salt</comment> option:
 
-  <info>php %command.full_name% --empty-salt [password] 'App\Entity\User'</info>
+                  <info>php %command.full_name% --empty-salt [password] 'App\Entity\User'</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -152,7 +152,7 @@
         $io->table(['Key', 'Value'], $rows);
 
         if (!$emptySalt) {
-            $errorIo->note(sprintf('Make sure that your salt storage field fits the salt length: %s chars', \strlen($salt)));
+            $errorIo->note(\sprintf('Make sure that your salt storage field fits the salt length: %s chars', \strlen($salt)));
         } elseif ($saltlessWithoutEmptySalt) {
             $errorIo->note('Self-salting hasher used: the hasher generated its own built-in salt.');
         }
@@ -178,7 +178,7 @@
     {
         $passwordQuestion = new Question('Type in your password to be hashed');
 
-        return $passwordQuestion->setValidator(function ($value) {
+        return $passwordQuestion->setValidator(static function ($value) {
             if ('' === trim($value)) {
                 throw new InvalidArgumentException('The password must not be empty.');
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Hasher/MessageDigestPasswordHasher.php symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Hasher/MessageDigestPasswordHasher.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Hasher/MessageDigestPasswordHasher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Hasher/MessageDigestPasswordHasher.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
         }
 
         if (!\in_array($this->algorithm, hash_algos(), true)) {
-            throw new LogicException(sprintf('The algorithm "%s" is not supported.', $this->algorithm));
+            throw new LogicException(\sprintf('The algorithm "%s" is not supported.', $this->algorithm));
         }
 
         $salted = $this->mergePasswordAndSalt($plainPassword, $salt);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Hasher/PasswordHasherFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Hasher/PasswordHasherFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Hasher/PasswordHasherFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Hasher/PasswordHasherFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
 
         if ($user instanceof PasswordHasherAwareInterface && null !== $hasherName = $user->getPasswordHasherName()) {
             if (!\array_key_exists($hasherName, $this->passwordHashers)) {
-                throw new \RuntimeException(sprintf('The password hasher "%s" was not configured.', $hasherName));
+                throw new \RuntimeException(\sprintf('The password hasher "%s" was not configured.', $hasherName));
             }
 
             $hasherKey = $hasherName;
@@ -53,7 +53,7 @@
         }
 
         if (null === $hasherKey) {
-            throw new \RuntimeException(sprintf('No password hasher has been configured for account "%s".', \is_object($user) ? get_debug_type($user) : $user));
+            throw new \RuntimeException(\sprintf('No password hasher has been configured for account "%s".', \is_object($user) ? get_debug_type($user) : $user));
         }
 
         if (!$this->passwordHashers[$hasherKey] instanceof PasswordHasherInterface) {
@@ -188,7 +188,7 @@
                     $config['algorithm'] = 'native';
                     $config['native_algorithm'] = \PASSWORD_ARGON2I;
                 } else {
-                    throw new LogicException(sprintf('Algorithm "argon2i" is not available. Use "%s" instead.', \defined('SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13') ? 'argon2id" or "auto' : 'auto'));
+                    throw new LogicException(\sprintf('Algorithm "argon2i" is not available. Use "%s" instead.', \defined('SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13') ? 'argon2id" or "auto' : 'auto'));
                 }
 
                 return $this->getHasherConfigFromAlgorithm($config);
@@ -200,7 +200,7 @@
                     $config['algorithm'] = 'native';
                     $config['native_algorithm'] = \PASSWORD_ARGON2ID;
                 } else {
-                    throw new LogicException(sprintf('Algorithm "argon2id" is not available. Either use "%s", upgrade to PHP 7.3+ or use libsodium 1.0.15+ instead.', \defined('PASSWORD_ARGON2I') || $hasSodium ? 'argon2i", "auto' : 'auto'));
+                    throw new LogicException(\sprintf('Algorithm "argon2id" is not available. Either use "%s", upgrade to PHP 7.3+ or use libsodium 1.0.15+ instead.', \defined('PASSWORD_ARGON2I') || $hasSodium ? 'argon2i", "auto' : 'auto'));
                 }
 
                 return $this->getHasherConfigFromAlgorithm($config);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Hasher/Pbkdf2PasswordHasher.php symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Hasher/Pbkdf2PasswordHasher.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Hasher/Pbkdf2PasswordHasher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Hasher/Pbkdf2PasswordHasher.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
         }
 
         if (!\in_array($this->algorithm, hash_algos(), true)) {
-            throw new LogicException(sprintf('The algorithm "%s" is not supported.', $this->algorithm));
+            throw new LogicException(\sprintf('The algorithm "%s" is not supported.', $this->algorithm));
         }
 
         $digest = hash_pbkdf2($this->algorithm, $plainPassword, $salt ?? '', $this->iterations, $this->length, true);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Tests/Command/UserPasswordHashCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Tests/Command/UserPasswordHashCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Tests/Command/UserPasswordHashCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Tests/Command/UserPasswordHashCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,7 +17,6 @@
 use Symfony\Component\PasswordHasher\Command\UserPasswordHashCommand;
 use Symfony\Component\PasswordHasher\Hasher\NativePasswordHasher;
 use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory;
-use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactoryInterface;
 use Symfony\Component\PasswordHasher\Hasher\Pbkdf2PasswordHasher;
 use Symfony\Component\PasswordHasher\Hasher\SodiumPasswordHasher;
 use Symfony\Component\Security\Core\User\InMemoryUser;
@@ -257,13 +256,14 @@
         ], ['decorated' => false]);
 
         $this->assertStringContainsString(<<<EOTXT
- For which user class would you like to hash a password? [Custom\Class\Native\User]:
-  [0] Custom\Class\Native\User
-  [1] Custom\Class\Pbkdf2\User
-  [2] Custom\Class\Test\User
-  [3] Symfony\Component\Security\Core\User\InMemoryUser
-EOTXT
-            , $this->passwordHasherCommandTester->getDisplay(true));
+             For which user class would you like to hash a password? [Custom\Class\Native\User]:
+              [0] Custom\Class\Native\User
+              [1] Custom\Class\Pbkdf2\User
+              [2] Custom\Class\Test\User
+              [3] Symfony\Component\Security\Core\User\InMemoryUser
+            EOTXT,
+            $this->passwordHasherCommandTester->getDisplay(true)
+        );
     }
 
     public function testNonInteractiveEncodePasswordUsesFirstUserClass()
@@ -280,7 +280,7 @@
         $this->expectException(\RuntimeException::class);
         $this->expectExceptionMessage('There are no configured password hashers for the "security" extension.');
 
-        $tester = new CommandTester(new UserPasswordHashCommand($this->getMockBuilder(PasswordHasherFactoryInterface::class)->getMock(), []));
+        $tester = new CommandTester(new UserPasswordHashCommand(new PasswordHasherFactory([]), []));
         $tester->execute([
             'password' => 'password',
         ], ['interactive' => false]);
@@ -291,7 +291,7 @@
      */
     public function testCompletionSuggestions(array $input, array $expectedSuggestions)
     {
-        $command = new UserPasswordHashCommand($this->createMock(PasswordHasherFactoryInterface::class), ['App\Entity\User']);
+        $command = new UserPasswordHashCommand(new PasswordHasherFactory([]), ['App\Entity\User']);
         $tester = new CommandCompletionTester($command);
 
         $this->assertSame($expectedSuggestions, $tester->complete($input));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/MigratingPasswordHasherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/MigratingPasswordHasherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/MigratingPasswordHasherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/MigratingPasswordHasherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,8 +42,8 @@
     {
         $bestHasher = new NativePasswordHasher(4, 12000, 4);
 
-        $extraHasher1 = $this->createMock(PasswordHasherInterface::class);
-        $extraHasher1->expects($this->any())
+        $extraHasher1 = $this->createStub(PasswordHasherInterface::class);
+        $extraHasher1
             ->method('verify')
             ->with('abc', 'foo', 'salt')
             ->willReturn(true);
@@ -52,8 +52,8 @@
 
         $this->assertTrue($hasher->verify('abc', 'foo', 'salt'));
 
-        $extraHasher2 = $this->createMock(PasswordHasherInterface::class);
-        $extraHasher2->expects($this->any())
+        $extraHasher2 = $this->createStub(PasswordHasherInterface::class);
+        $extraHasher2
             ->method('verify')
             ->willReturn(false);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/NativePasswordHasherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/NativePasswordHasherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/NativePasswordHasherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/NativePasswordHasherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
     public static function validRangeData()
     {
         $costs = range(4, 31);
-        array_walk($costs, function (&$cost) { $cost = [$cost]; });
+        array_walk($costs, static function (&$cost) { $cost = [$cost]; });
 
         return $costs;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/PasswordHasherFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/PasswordHasherFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/PasswordHasherFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/PasswordHasherFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
             'arguments' => ['sha512', true, 5],
         ]]);
 
-        $hasher = $factory->getPasswordHasher($this->createMock(PasswordAuthenticatedUserInterface::class));
+        $hasher = $factory->getPasswordHasher($this->createStub(PasswordAuthenticatedUserInterface::class));
         $expectedHasher = new MessageDigestPasswordHasher('sha512', true, 5);
 
         $this->assertEquals($expectedHasher->hash('foo', 'moo'), $hasher->hash('foo', 'moo'));
@@ -43,7 +43,7 @@
             PasswordAuthenticatedUserInterface::class => new MessageDigestPasswordHasher('sha1'),
         ]);
 
-        $hasher = $factory->getPasswordHasher($this->createMock(PasswordAuthenticatedUserInterface::class));
+        $hasher = $factory->getPasswordHasher($this->createStub(PasswordAuthenticatedUserInterface::class));
         $expectedHasher = new MessageDigestPasswordHasher('sha1');
         $this->assertEquals($expectedHasher->hash('foo', ''), $hasher->hash('foo', ''));
     }
@@ -54,7 +54,7 @@
             PasswordAuthenticatedUserInterface::class => ['instance' => new MessageDigestPasswordHasher('sha1')],
         ]);
 
-        $hasher = $factory->getPasswordHasher($this->createMock(PasswordAuthenticatedUserInterface::class));
+        $hasher = $factory->getPasswordHasher($this->createStub(PasswordAuthenticatedUserInterface::class));
         $expectedHasher = new MessageDigestPasswordHasher('sha1');
         $this->assertEquals($expectedHasher->hash('foo', ''), $hasher->hash('foo', ''));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/UserPasswordHasherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/UserPasswordHasherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/UserPasswordHasherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PasswordHasher/Tests/Hasher/UserPasswordHasherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\PasswordHasher\Hasher\NativePasswordHasher;
+use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory;
 use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactoryInterface;
 use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasher;
 use Symfony\Component\PasswordHasher\PasswordHasherInterface;
@@ -27,19 +28,17 @@
     {
         $user = new TestLegacyPasswordAuthenticatedUser('name', null, 'userSalt');
 
-        $mockHasher = $this->createMock(PasswordHasherInterface::class);
-        $mockHasher->expects($this->any())
+        $passwordHasher = $this->createStub(PasswordHasherInterface::class);
+        $passwordHasher
             ->method('hash')
             ->with($this->equalTo('plainPassword'), $this->equalTo('userSalt'))
             ->willReturn('hash');
 
-        $mockPasswordHasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
-        $mockPasswordHasherFactory->expects($this->any())
-            ->method('getPasswordHasher')
-            ->with($user)
-            ->willReturn($mockHasher);
+        $passwordHasherFactory = new PasswordHasherFactory([
+            $user::class => $passwordHasher,
+        ]);
 
-        $passwordHasher = new UserPasswordHasher($mockPasswordHasherFactory);
+        $passwordHasher = new UserPasswordHasher($passwordHasherFactory);
 
         $encoded = $passwordHasher->hashPassword($user, 'plainPassword');
         $this->assertEquals('hash', $encoded);
@@ -49,19 +48,17 @@
     {
         $user = new TestPasswordAuthenticatedUser();
 
-        $mockHasher = $this->createMock(PasswordHasherInterface::class);
-        $mockHasher->expects($this->any())
+        $passwordHasher = $this->createStub(PasswordHasherInterface::class);
+        $passwordHasher
             ->method('hash')
             ->with($this->equalTo('plainPassword'), $this->equalTo(null))
             ->willReturn('hash');
 
-        $mockPasswordHasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
-        $mockPasswordHasherFactory->expects($this->any())
-            ->method('getPasswordHasher')
-            ->with($user)
-            ->willReturn($mockHasher);
+        $passwordHasherFactory = new PasswordHasherFactory([
+            $user::class => $passwordHasher,
+        ]);
 
-        $passwordHasher = new UserPasswordHasher($mockPasswordHasherFactory);
+        $passwordHasher = new UserPasswordHasher($passwordHasherFactory);
 
         $hashedPassword = $passwordHasher->hashPassword($user, 'plainPassword');
 
@@ -72,19 +69,17 @@
     {
         $user = new TestLegacyPasswordAuthenticatedUser('user', 'hash', 'userSalt');
 
-        $mockHasher = $this->createMock(PasswordHasherInterface::class);
-        $mockHasher->expects($this->any())
+        $passwordHasher = $this->createStub(PasswordHasherInterface::class);
+        $passwordHasher
             ->method('verify')
             ->with($this->equalTo('hash'), $this->equalTo('plainPassword'), $this->equalTo('userSalt'))
             ->willReturn(true);
 
-        $mockPasswordHasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
-        $mockPasswordHasherFactory->expects($this->any())
-            ->method('getPasswordHasher')
-            ->with($user)
-            ->willReturn($mockHasher);
+        $passwordHasherFactory = new PasswordHasherFactory([
+            $user::class => $passwordHasher,
+        ]);
 
-        $passwordHasher = new UserPasswordHasher($mockPasswordHasherFactory);
+        $passwordHasher = new UserPasswordHasher($passwordHasherFactory);
 
         $isValid = $passwordHasher->isPasswordValid($user, 'plainPassword');
         $this->assertTrue($isValid);
@@ -94,19 +89,17 @@
     {
         $user = new TestPasswordAuthenticatedUser('hash');
 
-        $mockHasher = $this->createMock(PasswordHasherInterface::class);
-        $mockHasher->expects($this->any())
+        $passwordHasher = $this->createStub(PasswordHasherInterface::class);
+        $passwordHasher
             ->method('verify')
             ->with($this->equalTo('hash'), $this->equalTo('plainPassword'), $this->equalTo(null))
             ->willReturn(true);
 
-        $mockPasswordHasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
-        $mockPasswordHasherFactory->expects($this->any())
-            ->method('getPasswordHasher')
-            ->with($user)
-            ->willReturn($mockHasher);
+        $passwordHasherFactory = new PasswordHasherFactory([
+            $user::class => $passwordHasher,
+        ]);
 
-        $passwordHasher = new UserPasswordHasher($mockPasswordHasherFactory);
+        $passwordHasher = new UserPasswordHasher($passwordHasherFactory);
 
         $isValid = $passwordHasher->isPasswordValid($user, 'plainPassword');
         $this->assertTrue($isValid);
@@ -117,13 +110,13 @@
         $user = new InMemoryUser('username', null);
         $hasher = new NativePasswordHasher(4, 20000, 4);
 
-        $mockPasswordHasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
-        $mockPasswordHasherFactory->expects($this->any())
+        $passwordHasherFactory = $this->createStub(PasswordHasherFactoryInterface::class);
+        $passwordHasherFactory
             ->method('getPasswordHasher')
             ->with($user)
             ->willReturn($hasher, $hasher, new NativePasswordHasher(5, 20000, 5), $hasher);
 
-        $passwordHasher = new UserPasswordHasher($mockPasswordHasherFactory);
+        $passwordHasher = new UserPasswordHasher($passwordHasherFactory);
 
         \Closure::bind(function () use ($passwordHasher) { $this->password = $passwordHasher->hashPassword($this, 'foo', 'salt'); }, $user, class_exists(User::class) ? User::class : InMemoryUser::class)();
         $this->assertFalse($passwordHasher->needsRehash($user));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Exception/ProcessFailedException.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Exception/ProcessFailedException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Exception/ProcessFailedException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Exception/ProcessFailedException.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
             throw new InvalidArgumentException('Expected a failed process, but the given process was successful.');
         }
 
-        $error = sprintf('The command "%s" failed.'."\n\nExit Code: %s(%s)\n\nWorking directory: %s",
+        $error = \sprintf('The command "%s" failed.'."\n\nExit Code: %s(%s)\n\nWorking directory: %s",
             $process->getCommandLine(),
             $process->getExitCode(),
             $process->getExitCodeText(),
@@ -36,7 +36,7 @@
         );
 
         if (!$process->isOutputDisabled()) {
-            $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s",
+            $error .= \sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s",
                 $process->getOutput(),
                 $process->getErrorOutput()
             );
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Exception/ProcessSignaledException.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Exception/ProcessSignaledException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Exception/ProcessSignaledException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Exception/ProcessSignaledException.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     {
         $this->process = $process;
 
-        parent::__construct(sprintf('The process has been signaled with signal "%s".', $process->getTermSignal()));
+        parent::__construct(\sprintf('The process has been signaled with signal "%s".', $process->getTermSignal()));
     }
 
     public function getProcess(): Process
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Exception/ProcessTimedOutException.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Exception/ProcessTimedOutException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Exception/ProcessTimedOutException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Exception/ProcessTimedOutException.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
         $this->process = $process;
         $this->timeoutType = $timeoutType;
 
-        parent::__construct(sprintf(
+        parent::__construct(\sprintf(
             'The process "%s" exceeded the timeout of %s seconds.',
             $process->getCommandLine(),
             $this->getExceededTimeout()
@@ -67,7 +67,7 @@
         return match ($this->timeoutType) {
             self::TYPE_GENERAL => $this->process->getTimeout(),
             self::TYPE_IDLE => $this->process->getIdleTimeout(),
-            default => throw new \LogicException(sprintf('Unknown timeout type "%d".', $this->timeoutType)),
+            default => throw new \LogicException(\sprintf('Unknown timeout type "%d".', $this->timeoutType)),
         };
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/ExecutableFinder.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/ExecutableFinder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/ExecutableFinder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/ExecutableFinder.php	2026-05-20 10:56:49.000000000 +0200
@@ -74,7 +74,7 @@
             $suffixes = $this->suffixes;
             $suffixes = array_merge($suffixes, $pathExt ? explode(\PATH_SEPARATOR, $pathExt) : ['.exe', '.bat', '.cmd', '.com']);
         }
-        $suffixes = '' !== pathinfo($name, PATHINFO_EXTENSION) ? array_merge([''], $suffixes) : array_merge($suffixes, ['']);
+        $suffixes = '' !== pathinfo($name, \PATHINFO_EXTENSION) ? array_merge([''], $suffixes) : array_merge($suffixes, ['']);
         foreach ($suffixes as $suffix) {
             foreach ($dirs as $dir) {
                 if ('' === $dir) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/InputStream.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/InputStream.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/InputStream.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/InputStream.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
             return;
         }
         if ($this->isClosed()) {
-            throw new RuntimeException(sprintf('"%s" is closed.', static::class));
+            throw new RuntimeException(\sprintf('"%s" is closed.', static::class));
         }
         $this->input[] = ProcessUtils::validateInput(__METHOD__, $input);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/PhpProcess.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/PhpProcess.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/PhpProcess.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/PhpProcess.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,7 +52,7 @@
 
     public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, mixed $input = null, ?float $timeout = 60): static
     {
-        throw new LogicException(sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class));
+        throw new LogicException(\sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/PhpSubprocess.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/PhpSubprocess.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/PhpSubprocess.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/PhpSubprocess.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
 
     public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, mixed $input = null, ?float $timeout = 60): static
     {
-        throw new LogicException(sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class));
+        throw new LogicException(\sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class));
     }
 
     public function start(?callable $callback = null, array $env = []): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Pipes/AbstractPipes.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Pipes/AbstractPipes.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Pipes/AbstractPipes.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Pipes/AbstractPipes.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,14 +52,26 @@
 
     /**
      * Returns true if a system call has been interrupted.
+     *
+     * stream_select() returns false when the `select` system call is interrupted by an incoming signal.
      */
     protected function hasSystemCallBeenInterrupted(): bool
     {
         $lastError = $this->lastError;
         $this->lastError = null;
 
-        // stream_select returns false when the `select` system call is interrupted by an incoming signal
-        return null !== $lastError && false !== stripos($lastError, 'interrupted system call');
+        if (null === $lastError) {
+            return false;
+        }
+
+        if (false !== stripos($lastError, 'interrupted system call')) {
+            return true;
+        }
+
+        // on applications with a different locale than english, the message above is not found because
+        // it's translated. So we also check for the SOCKET_EINTR constant which is defined under
+        // Windows and UNIX-like platforms (if available on the platform).
+        return \defined('SOCKET_EINTR') && str_starts_with($lastError, 'stream_select(): Unable to select ['.\SOCKET_EINTR.']');
     }
 
     /**
@@ -72,10 +84,10 @@
         }
 
         foreach ($this->pipes as $pipe) {
-            stream_set_blocking($pipe, 0);
+            stream_set_blocking($pipe, false);
         }
         if (\is_resource($this->input)) {
-            stream_set_blocking($this->input, 0);
+            stream_set_blocking($this->input, false);
         }
 
         $this->blocked = false;
@@ -97,11 +109,11 @@
             if (!$input->valid()) {
                 $input = null;
             } elseif (\is_resource($input = $input->current())) {
-                stream_set_blocking($input, 0);
+                stream_set_blocking($input, false);
             } elseif (!isset($this->inputBuffer[0])) {
                 if (!\is_string($input)) {
                     if (!\is_scalar($input)) {
-                        throw new InvalidArgumentException(sprintf('"%s" yielded a value of type "%s", but only scalars and stream resources are supported.', get_debug_type($this->input), get_debug_type($input)));
+                        throw new InvalidArgumentException(\sprintf('"%s" yielded a value of type "%s", but only scalars and stream resources are supported.', get_debug_type($this->input), get_debug_type($input)));
                     }
                     $input = (string) $input;
                 }
@@ -123,9 +135,11 @@
 
         foreach ($w as $stdin) {
             if (isset($this->inputBuffer[0])) {
-                $written = fwrite($stdin, $this->inputBuffer);
+                if (false === $written = @fwrite($stdin, $this->inputBuffer)) {
+                    return $this->closeBrokenInputPipe();
+                }
                 $this->inputBuffer = substr($this->inputBuffer, $written);
-                if (isset($this->inputBuffer[0])) {
+                if (isset($this->inputBuffer[0]) && isset($this->pipes[0])) {
                     return [$this->pipes[0]];
                 }
             }
@@ -136,12 +150,14 @@
                     if (!isset($data[0])) {
                         break;
                     }
-                    $written = fwrite($stdin, $data);
+                    if (false === $written = @fwrite($stdin, $data)) {
+                        return $this->closeBrokenInputPipe();
+                    }
                     $data = substr($data, $written);
                     if (isset($data[0])) {
                         $this->inputBuffer = $data;
 
-                        return [$this->pipes[0]];
+                        return isset($this->pipes[0]) ? [$this->pipes[0]] : null;
                     }
                 }
                 if (feof($input)) {
@@ -166,6 +182,18 @@
         return null;
     }
 
+    private function closeBrokenInputPipe(): void
+    {
+        $this->lastError = error_get_last()['message'] ?? null;
+        if (\is_resource($this->pipes[0] ?? null)) {
+            fclose($this->pipes[0]);
+        }
+        unset($this->pipes[0]);
+
+        $this->input = null;
+        $this->inputBuffer = '';
+    }
+
     /**
      * @internal
      */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Pipes/UnixPipes.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Pipes/UnixPipes.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Pipes/UnixPipes.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Pipes/UnixPipes.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,12 +35,12 @@
         parent::__construct($input);
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Pipes/WindowsPipes.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Pipes/WindowsPipes.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Pipes/WindowsPipes.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Pipes/WindowsPipes.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,10 +50,10 @@
             ];
             $tmpDir = sys_get_temp_dir();
             $lastError = 'unknown reason';
-            set_error_handler(function ($type, $msg) use (&$lastError) { $lastError = $msg; });
+            set_error_handler(static function ($type, $msg) use (&$lastError) { $lastError = $msg; });
             for ($i = 0;; ++$i) {
                 foreach ($pipes as $pipe => $name) {
-                    $file = sprintf('%s\\sf_proc_%02X.%s', $tmpDir, $i, $name);
+                    $file = \sprintf('%s\\sf_proc_%02X.%s', $tmpDir, $i, $name);
 
                     if (!$h = fopen($file.'.lock', 'w')) {
                         if (file_exists($file.'.lock')) {
@@ -88,12 +88,12 @@
         parent::__construct($input);
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Process.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Process.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Process.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Process.php	2026-05-20 10:56:49.000000000 +0200
@@ -194,15 +194,12 @@
         return $process;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -259,7 +256,12 @@
      *
      * @return $this
      *
-     * @throws ProcessFailedException if the process didn't terminate successfully
+     * @throws ProcessFailedException   When process didn't terminate successfully
+     * @throws RuntimeException         When process can't be launched
+     * @throws RuntimeException         When process is already running
+     * @throws ProcessTimedOutException When process timed out
+     * @throws ProcessSignaledException When process stopped after receiving signal
+     * @throws LogicException           In case a callback is provided and output has been disabled
      *
      * @final
      */
@@ -334,13 +336,17 @@
 
         $envPairs = [];
         foreach ($env as $k => $v) {
-            if (false !== $v && false === \in_array($k, ['argc', 'argv', 'ARGC', 'ARGV'], true)) {
+            if (!\is_scalar($v ?? '') && !$v instanceof \Stringable) {
+                continue;
+            }
+
+            if (false !== $v && !\in_array($k = (string) $k, ['', 'argc', 'argv', 'ARGC', 'ARGV'], true) && !str_contains($k, '=') && !str_contains($k, "\0")) {
                 $envPairs[] = $k.'='.$v;
             }
         }
 
         if (!is_dir($this->cwd)) {
-            throw new RuntimeException(sprintf('The provided cwd "%s" does not exist.', $this->cwd));
+            throw new RuntimeException(\sprintf('The provided cwd "%s" does not exist.', $this->cwd));
         }
 
         $process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options);
@@ -1197,7 +1203,7 @@
         foreach ($options as $key => $value) {
             if (!\in_array($key, $existingOptions)) {
                 $this->options = $defaultOptions;
-                throw new LogicException(sprintf('Invalid option "%s" passed to "%s()". Supported options are "%s".', $key, __METHOD__, implode('", "', $existingOptions)));
+                throw new LogicException(\sprintf('Invalid option "%s" passed to "%s()". Supported options are "%s".', $key, __METHOD__, implode('", "', $existingOptions)));
             }
             $this->options[$key] = $value;
         }
@@ -1259,7 +1265,7 @@
     protected function buildCallback(?callable $callback = null): \Closure
     {
         if ($this->outputDisabled) {
-            return fn ($type, $data): bool => null !== $callback && $callback($type, $data);
+            return static fn ($type, $data): bool => null !== $callback && $callback($type, $data);
         }
 
         $out = self::OUT;
@@ -1453,10 +1459,10 @@
         }
 
         if ('\\' === \DIRECTORY_SEPARATOR) {
-            exec(sprintf('taskkill /F /T /PID %d 2>&1', $pid), $output, $exitCode);
+            exec(\sprintf('taskkill /F /T /PID %d 2>&1', $pid), $output, $exitCode);
             if ($exitCode && $this->isRunning()) {
                 if ($throwException) {
-                    throw new RuntimeException(sprintf('Unable to kill the process (%s).', implode(' ', $output)));
+                    throw new RuntimeException(\sprintf('Unable to kill the process (%s).', implode(' ', $output)));
                 }
 
                 return false;
@@ -1466,12 +1472,12 @@
                 $ok = @proc_terminate($this->process, $signal);
             } elseif (\function_exists('posix_kill')) {
                 $ok = @posix_kill($pid, $signal);
-            } elseif ($ok = proc_open(sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) {
+            } elseif ($ok = proc_open(\sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) {
                 $ok = false === fgets($pipes[2]);
             }
             if (!$ok) {
                 if ($throwException) {
-                    throw new RuntimeException(sprintf('Error while sending signal "%s".', $signal));
+                    throw new RuntimeException(\sprintf('Error while sending signal "%s".', $signal));
                 }
 
                 return false;
@@ -1497,7 +1503,7 @@
                     [^"%!^]*+
                 )++
             ) | [^"]*+ )"/x',
-            function ($m) use (&$env, $uid) {
+            static function ($m) use (&$env, $uid) {
                 static $varCount = 0;
                 static $varCache = [];
                 if (!isset($m[1])) {
@@ -1528,7 +1534,7 @@
 
         if (!$comSpec && $comSpec = (new ExecutableFinder())->find('cmd.exe')) {
             // Escape according to CommandLineToArgvW rules
-            $comSpec = '"'.preg_replace('{(\\\\*+)"}', '$1$1\"', $comSpec) .'"';
+            $comSpec = '"'.preg_replace('{(\\\\*+)"}', '$1$1\"', $comSpec).'"';
         }
 
         $cmd = ($comSpec ?? 'cmd').' /V:ON /E:ON /D /C ('.str_replace("\n", ' ', $cmd).')';
@@ -1547,7 +1553,7 @@
     private function requireProcessIsStarted(string $functionName): void
     {
         if (!$this->isStarted()) {
-            throw new LogicException(sprintf('Process must be started before calling "%s()".', $functionName));
+            throw new LogicException(\sprintf('Process must be started before calling "%s()".', $functionName));
         }
     }
 
@@ -1559,7 +1565,7 @@
     private function requireProcessIsTerminated(string $functionName): void
     {
         if (!$this->isTerminated()) {
-            throw new LogicException(sprintf('Process must be terminated before calling "%s()".', $functionName));
+            throw new LogicException(\sprintf('Process must be terminated before calling "%s()".', $functionName));
         }
     }
 
@@ -1577,7 +1583,7 @@
         if (str_contains($argument, "\0")) {
             $argument = str_replace("\0", '?', $argument);
         }
-        if (!preg_match('/[()%!^"<>&|\s]/', $argument)) {
+        if (!preg_match('/[()%!^"<>&|\s[\]=;*?\'$]/', $argument)) {
             return $argument;
         }
         $argument = preg_replace('/(\\\\+)$/', '$1$1', $argument);
@@ -1589,7 +1595,7 @@
     {
         return preg_replace_callback('/"\$\{:([_a-zA-Z]++[_a-zA-Z0-9]*+)\}"/', function ($matches) use ($commandline, $env) {
             if (!isset($env[$matches[1]]) || false === $env[$matches[1]]) {
-                throw new InvalidArgumentException(sprintf('Command line is missing a value for parameter "%s": ', $matches[1]).$commandline);
+                throw new InvalidArgumentException(\sprintf('Command line is missing a value for parameter "%s": ', $matches[1]).$commandline);
             }
 
             return $this->escapeArgument($env[$matches[1]]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/ProcessUtils.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/ProcessUtils.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/ProcessUtils.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/ProcessUtils.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
                 return new \IteratorIterator($input);
             }
 
-            throw new InvalidArgumentException(sprintf('"%s" only accepts strings, Traversable objects or stream resources.', $caller));
+            throw new InvalidArgumentException(\sprintf('"%s" only accepts strings, Traversable objects or stream resources.', $caller));
         }
 
         return $input;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -149,16 +149,16 @@
      */
     public function testEmptyDirInPath()
     {
-        putenv(sprintf('PATH=%s%s', \dirname(\PHP_BINARY), \PATH_SEPARATOR));
+        putenv(\sprintf('PATH=%s%s', \dirname(\PHP_BINARY), \PATH_SEPARATOR));
 
         try {
             touch('executable');
-            chmod('executable', 0700);
+            chmod('executable', 0o700);
 
             $finder = new ExecutableFinder();
             $result = $finder->find('executable');
 
-            $this->assertSame(sprintf('.%sexecutable', \DIRECTORY_SEPARATOR), $result);
+            $this->assertSame(\sprintf('.%sexecutable', \DIRECTORY_SEPARATOR), $result);
         } finally {
             unlink('executable');
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Tests/PhpProcessTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Tests/PhpProcessTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Tests/PhpProcessTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Tests/PhpProcessTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,8 +22,8 @@
     {
         $expected = 'hello world!';
         $process = new PhpProcess(<<<PHP
-<?php echo '$expected';
-PHP
+            <?php echo '$expected';
+            PHP
         );
         $process->start();
         $process->wait();
@@ -33,8 +33,8 @@
     public function testCommandLine()
     {
         $process = new PhpProcess(<<<'PHP'
-<?php echo phpversion().PHP_SAPI;
-PHP
+            <?php echo phpversion().PHP_SAPI;
+            PHP
         );
 
         $commandLine = $process->getCommandLine();
@@ -55,8 +55,8 @@
 
         $expected = 'hello world!';
         $script = <<<PHP
-<?php echo '$expected';
-PHP;
+            <?php echo '$expected';
+            PHP;
         $process = new PhpProcess($script, null, null, 60, $php);
         $process->run();
         $this->assertEquals($expected, $process->getOutput());
@@ -67,8 +67,8 @@
         static::expectException(LogicException::class);
         static::expectExceptionMessage('The "Symfony\Component\Process\PhpProcess::fromShellCommandline()" method cannot be called when using "Symfony\Component\Process\PhpProcess".');
         PhpProcess::fromShellCommandline(<<<PHP
-<?php echo 'Hello World!';
-PHP
+            <?php echo 'Hello World!';
+            PHP
         );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Tests/PipeStdinInStdoutStdErrStreamSelect.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Tests/PipeStdinInStdoutStdErrStreamSelect.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Tests/PipeStdinInStdoutStdErrStreamSelect.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Tests/PipeStdinInStdoutStdErrStreamSelect.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,9 +17,9 @@
 $read = [\STDIN];
 $write = [\STDOUT, \STDERR];
 
-stream_set_blocking(\STDIN, 0);
-stream_set_blocking(\STDOUT, 0);
-stream_set_blocking(\STDERR, 0);
+stream_set_blocking(\STDIN, false);
+stream_set_blocking(\STDOUT, false);
+stream_set_blocking(\STDERR, false);
 
 $out = $err = '';
 while ($read || $write) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Tests/ProcessTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Tests/ProcessTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Tests/ProcessTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Tests/ProcessTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -141,7 +141,7 @@
         $start = microtime(true);
 
         $completeOutput = '';
-        $result = $p->waitUntil(function ($type, $output) use (&$completeOutput) {
+        $result = $p->waitUntil(static function ($type, $output) use (&$completeOutput) {
             return str_contains($completeOutput .= $output, 'One more');
         });
         $this->assertTrue($result);
@@ -154,7 +154,7 @@
     {
         $p = $this->getProcess('echo foo');
         $p->start();
-        $this->assertFalse($p->waitUntil(fn () => false));
+        $this->assertFalse($p->waitUntil(static fn () => false));
     }
 
     public function testAllOutputIsActuallyReadOnTermination()
@@ -168,7 +168,7 @@
         // another byte which will never be read.
         $expectedOutputSize = PipesInterface::CHUNK_SIZE * 2 + 2;
 
-        $code = sprintf('echo str_repeat(\'*\', %d);', $expectedOutputSize);
+        $code = \sprintf('echo str_repeat(\'*\', %d);', $expectedOutputSize);
         $p = $this->getProcessForCode($code);
 
         $p->start();
@@ -191,7 +191,7 @@
     public function testCallbacksAreExecutedWithStart()
     {
         $process = $this->getProcess('echo foo');
-        $process->start(function ($type, $buffer) use (&$data) {
+        $process->start(static function ($type, $buffer) use (&$data) {
             $data .= $buffer;
         });
 
@@ -209,7 +209,7 @@
         // disabling output + not passing a callback to start() => read support disabled
         $process->disableOutput();
         $process->start();
-        $process->wait(function ($type, $buffer) use (&$data) {
+        $process->wait(static function ($type, $buffer) use (&$data) {
             $data .= $buffer;
         });
     }
@@ -275,7 +275,7 @@
 
         $p = $this->getProcessForCode('stream_copy_to_stream(STDIN, STDOUT);');
         $p->setInput($stream);
-        $p->start(function ($type, $data) use ($stream) {
+        $p->start(static function ($type, $data) use ($stream) {
             if ('hello' === $data) {
                 fclose($stream);
             }
@@ -359,7 +359,7 @@
      */
     public function testChainedCommandsOutput($expected, $operator, $input)
     {
-        $process = $this->getProcess(sprintf('echo %s %s echo %s', $input, $operator, $input));
+        $process = $this->getProcess(\sprintf('echo %s %s echo %s', $input, $operator, $input));
         $process->run();
         $this->assertEquals($expected, $process->getOutput());
     }
@@ -369,7 +369,7 @@
         $p = $this->getProcessForCode('echo \'foo\';');
 
         $called = false;
-        $p->run(function ($type, $buffer) use (&$called) {
+        $p->run(static function ($type, $buffer) use (&$called) {
             $called = 'foo' === $buffer;
         });
 
@@ -382,7 +382,7 @@
         $p->disableOutput();
 
         $called = false;
-        $p->run(function ($type, $buffer) use (&$called) {
+        $p->run(static function ($type, $buffer) use (&$called) {
             $called = 'foo' === $buffer;
         });
 
@@ -672,6 +672,24 @@
         $this->assertFalse($process->isRunning());
     }
 
+    public function testStopDoesNotThrowAfterBrokenPipe()
+    {
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            $this->markTestSkipped('Broken pipe notices are specific to Unix-like platforms.');
+        }
+
+        $process = $this->getProcess([self::$phpBin, '-r', 'exit(0);'], null, null, str_repeat('*', PipesInterface::CHUNK_SIZE * 32));
+
+        $process->run();
+        $this->assertSame(0, $process->getExitCode());
+
+        $process->stop(0);
+
+        // __destruct() should not trigger a broken pipe notice
+        self::$process = $process = null;
+        gc_collect_cycles();
+    }
+
     public function testIsSuccessful()
     {
         $process = $this->getProcess('echo foo');
@@ -980,7 +998,7 @@
         $process = $this->getProcess('foo');
 
         $this->expectException(LogicException::class);
-        $this->expectExceptionMessage(sprintf('Process must be started before calling "%s()".', $method));
+        $this->expectExceptionMessage(\sprintf('Process must be started before calling "%s()".', $method));
 
         $process->{$method}();
     }
@@ -1134,7 +1152,7 @@
     public function testStopTerminatesProcessCleanly()
     {
         $process = $this->getProcessForCode('echo 123; sleep(42);');
-        $process->run(function () use ($process) {
+        $process->run(static function () use ($process) {
             $process->stop();
         });
         $this->assertTrue(true, 'A call to stop() is not expected to cause wait() to throw a RuntimeException');
@@ -1143,7 +1161,7 @@
     public function testKillSignalTerminatesProcessCleanly()
     {
         $process = $this->getProcessForCode('echo 123; sleep(43);');
-        $process->run(function () use ($process) {
+        $process->run(static function () use ($process) {
             $process->signal(9); // SIGKILL
         });
         $this->assertTrue(true, 'A call to signal() is not expected to cause wait() to throw a RuntimeException');
@@ -1152,7 +1170,7 @@
     public function testTermSignalTerminatesProcessCleanly()
     {
         $process = $this->getProcessForCode('echo 123; sleep(44);');
-        $process->run(function () use ($process) {
+        $process->run(static function () use ($process) {
             $process->signal(15); // SIGTERM
         });
         $this->assertTrue(true, 'A call to signal() is not expected to cause wait() to throw a RuntimeException');
@@ -1221,7 +1239,7 @@
 
     public function testIteratorInput()
     {
-        $input = function () {
+        $input = static function () {
             yield 'ping';
             yield 'pong';
         };
@@ -1238,7 +1256,7 @@
         $process = $this->getProcessForCode('echo \'ping\'; echo fread(STDIN, 4); echo fread(STDIN, 4);');
         $process->setInput($input);
 
-        $process->start(function ($type, $data) use ($input) {
+        $process->start(static function ($type, $data) use ($input) {
             if ('ping' === $data) {
                 $input->write('pang');
             } elseif (!$input->isClosed()) {
@@ -1255,7 +1273,7 @@
     {
         $i = 0;
         $stream = fopen('php://memory', 'w+');
-        $stream = function () use ($stream, &$i) {
+        $stream = static function () use ($stream, &$i) {
             if ($i < 3) {
                 rewind($stream);
                 fwrite($stream, ++$i);
@@ -1273,7 +1291,7 @@
 
         $process = $this->getProcessForCode('echo fread(STDIN, 3);');
         $process->setInput($input);
-        $process->start(function ($type, $data) use ($input) {
+        $process->start(static function ($type, $data) use ($input) {
             $input->close();
         });
 
@@ -1284,7 +1302,7 @@
     public function testInputStreamWithGenerator()
     {
         $input = new InputStream();
-        $input->onEmpty(function ($input) {
+        $input->onEmpty(static function ($input) {
             yield 'pong';
             $input->close();
         });
@@ -1301,11 +1319,11 @@
     {
         $i = 0;
         $input = new InputStream();
-        $input->onEmpty(function () use (&$i) { ++$i; });
+        $input->onEmpty(static function () use (&$i) { ++$i; });
 
         $process = $this->getProcessForCode('echo 123; echo fread(STDIN, 1); echo 456;');
         $process->setInput($input);
-        $process->start(function ($type, $data) use ($input) {
+        $process->start(static function ($type, $data) use ($input) {
             if ('123' === $data) {
                 $input->close();
             }
@@ -1475,7 +1493,7 @@
 
     public function testRawCommandLine()
     {
-        $p = Process::fromShellCommandline(sprintf('"%s" -r %s "a" "" "b"', self::$phpBin, escapeshellarg('print_r($argv);')));
+        $p = Process::fromShellCommandline(\sprintf('"%s" -r %s "a" "" "b"', self::$phpBin, escapeshellarg('print_r($argv);')));
         $p->run();
 
         $expected = "Array\n(\n    [0] => -\n    [1] => a\n    [2] => \n    [3] => b\n)\n";
@@ -1496,6 +1514,26 @@
         yield [1.1];
     }
 
+    public function testMsysEscapingOnWindows()
+    {
+        if ('\\' !== \DIRECTORY_SEPARATOR) {
+            $this->markTestSkipped('This test is for Windows platform only');
+        }
+
+        file_put_contents('=foo.txt', 'This is a test file.');
+
+        try {
+            $p = $this->getProcess(['type', substr_replace(getcwd(), '=foo.txt', 2)]);
+            $p->mustRun();
+
+            $this->assertSame('This is a test file.', $p->getOutput());
+        } finally {
+            unlink('=foo.txt');
+        }
+
+        $this->assertSame(\sprintf('type "%s=foo.txt"', substr(getcwd(), 0, 2)), $p->getCommandLine());
+    }
+
     public function testPreparedCommand()
     {
         $p = Process::fromShellCommandline('echo "${:abc}"DEF');
@@ -1550,6 +1588,61 @@
         $this->assertSame($env, $p->getEnv());
     }
 
+    public function testEnvNonScalarValuesAreIgnored()
+    {
+        $_ENV['BAD_ARRAY_ENV'] = ['foo', 'bar'];
+        $_ENV['BAD_OBJECT_ENV'] = new \stdClass();
+
+        try {
+            $process = $this->getProcessForCode('echo "OK";');
+            $process->mustRun();
+
+            $this->assertSame('OK', $process->getOutput());
+        } finally {
+            unset($_ENV['BAD_ARRAY_ENV'], $_ENV['BAD_OBJECT_ENV']);
+        }
+    }
+
+    public function testEnvVarNamesCastToString()
+    {
+        $process = $this->getProcess('echo hello');
+        $process->setEnv([123 => 'value']);
+
+        $process->run();
+
+        $this->assertSame('hello'.\PHP_EOL, $process->getOutput());
+    }
+
+    public function testEnvVarNamesWithEqualsSigns()
+    {
+        $process = $this->getProcess('echo hello');
+        $process->setEnv(['VAR=NAME' => 'value']);
+
+        $process->run();
+
+        $this->assertSame('hello'.\PHP_EOL, $process->getOutput());
+    }
+
+    public function testEnvVarNamesWithNullBytes()
+    {
+        $process = $this->getProcess('echo hello');
+        $process->setEnv(["VAR\0NAME" => 'value']);
+
+        $process->run();
+
+        $this->assertSame('hello'.\PHP_EOL, $process->getOutput());
+    }
+
+    public function testEnvVarNamesEmpty()
+    {
+        $process = $this->getProcess('echo hello');
+        $process->setEnv(['' => 'value']);
+
+        $process->run();
+
+        $this->assertSame('hello'.\PHP_EOL, $process->getOutput());
+    }
+
     public function testWaitStoppedDeadProcess()
     {
         $process = $this->getProcess(self::$phpBin.' '.__DIR__.'/ErrorProcessInitiator.php -e '.self::$phpBin);
@@ -1578,9 +1671,7 @@
     public function testMultipleCallsToProcGetStatus()
     {
         $process = $this->getProcess('echo foo');
-        $process->start(static function () use ($process) {
-            return $process->isRunning();
-        });
+        $process->start(static fn () => $process->isRunning());
         while ($process->isRunning()) {
             usleep(1000);
         }
@@ -1590,9 +1681,7 @@
     public function testFailingProcessWithMultipleCallsToProcGetStatus()
     {
         $process = $this->getProcess('exit 123');
-        $process->start(static function () use ($process) {
-            return $process->isRunning();
-        });
+        $process->start(static fn () => $process->isRunning());
         while ($process->isRunning()) {
             usleep(1000);
         }
@@ -1605,9 +1694,7 @@
     public function testLongRunningProcessWithMultipleCallsToProcGetStatus()
     {
         $process = $this->getProcess('sleep 1 && echo "done" && php -r "exit(0);"');
-        $process->start(static function () use ($process) {
-            return $process->isRunning();
-        });
+        $process->start(static fn () => $process->isRunning());
         while ($process->isRunning()) {
             usleep(1000);
         }
@@ -1620,9 +1707,7 @@
     public function testLongRunningProcessWithMultipleCallsToProcGetStatusError()
     {
         $process = $this->getProcess('sleep 1 && echo "failure" && php -r "exit(123);"');
-        $process->start(static function () use ($process) {
-            return $process->isRunning();
-        });
+        $process->start(static fn () => $process->isRunning());
         while ($process->isRunning()) {
             usleep(1000);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Process/Tests/SignalListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Process/Tests/SignalListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Process/Tests/SignalListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Process/Tests/SignalListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -9,7 +9,10 @@
  * file that was distributed with this source code.
  */
 
-pcntl_signal(\SIGUSR1, function () { echo 'SIGUSR1'; exit; });
+pcntl_signal(\SIGUSR1, static function () {
+    echo 'SIGUSR1';
+    exit;
+});
 
 echo 'Caught ';
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
     "require": {
         "php": ">=8.1",
         "symfony/deprecation-contracts": "^2.5|^3",
-        "symfony/property-info": "^5.4|^6.0|^7.0"
+        "symfony/property-info": "^6.4.32|~7.3.10|^7.4.4"
     },
     "require-dev": {
         "symfony/cache": "^5.4|^6.0|^7.0"
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/Exception/UnexpectedTypeException.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/Exception/UnexpectedTypeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/Exception/UnexpectedTypeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/Exception/UnexpectedTypeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
      */
     public function __construct(mixed $value, PropertyPathInterface $path, int $pathIndex)
     {
-        $message = sprintf(
+        $message = \sprintf(
             'PropertyAccessor requires a graph of objects or arrays to operate on, '.
             'but it found type "%s" while trying to traverse path "%s" at property "%s".',
             \gettype($value),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/PropertyAccessorBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/PropertyAccessorBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/PropertyAccessorBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/PropertyAccessorBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -128,7 +128,7 @@
      */
     public function isMagicCallEnabled(): bool
     {
-        return (bool) ($this->magicMethods & PropertyAccessor::MAGIC_CALL);
+        return $this->magicMethods & PropertyAccessor::MAGIC_CALL;
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/PropertyAccessor.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/PropertyAccessor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/PropertyAccessor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/PropertyAccessor.php	2026-05-20 10:56:49.000000000 +0200
@@ -195,12 +195,12 @@
         if (preg_match('/^\S+::\S+\(\): Argument #\d+ \(\$\S+\) must be of type (\S+), (\S+) given/', $message, $matches)) {
             [, $expectedType, $actualType] = $matches;
 
-            throw new InvalidArgumentException(sprintf('Expected argument of type "%s", "%s" given at property path "%s".', $expectedType, 'NULL' === $actualType ? 'null' : $actualType, $propertyPath), 0, $previous);
+            throw new InvalidArgumentException(\sprintf('Expected argument of type "%s", "%s" given at property path "%s".', $expectedType, 'NULL' === $actualType ? 'null' : $actualType, $propertyPath), 0, $previous);
         }
         if (preg_match('/^Cannot assign (\S+) to property \S+::\$\S+ of type (\S+)$/', $message, $matches)) {
             [, $actualType, $expectedType] = $matches;
 
-            throw new InvalidArgumentException(sprintf('Expected argument of type "%s", "%s" given at property path "%s".', $expectedType, 'NULL' === $actualType ? 'null' : $actualType, $propertyPath), 0, $previous);
+            throw new InvalidArgumentException(\sprintf('Expected argument of type "%s", "%s" given at property path "%s".', $expectedType, 'NULL' === $actualType ? 'null' : $actualType, $propertyPath), 0, $previous);
         }
     }
 
@@ -216,7 +216,7 @@
             ];
 
             // handle stdClass with properties with a dot in the name
-            if ($objectOrArray instanceof \stdClass && str_contains($propertyPath, '.')  && property_exists($objectOrArray, $propertyPath)) {
+            if ($objectOrArray instanceof \stdClass && str_contains($propertyPath, '.') && property_exists($objectOrArray, $propertyPath)) {
                 $this->readProperty($zval, $propertyPath, $this->ignoreInvalidProperty);
             } else {
                 $this->readPropertiesUntil($zval, $propertyPath, $propertyPath->getLength(), $this->ignoreInvalidIndices);
@@ -308,13 +308,13 @@
                     if (!$ignoreInvalidIndices && !$isNullSafe) {
                         if (!\is_array($zval[self::VALUE])) {
                             if (!$zval[self::VALUE] instanceof \Traversable) {
-                                throw new NoSuchIndexException(sprintf('Cannot read index "%s" while trying to traverse path "%s".', $property, (string) $propertyPath));
+                                throw new NoSuchIndexException(\sprintf('Cannot read index "%s" while trying to traverse path "%s".', $property, (string) $propertyPath));
                             }
 
                             $zval[self::VALUE] = iterator_to_array($zval[self::VALUE]);
                         }
 
-                        throw new NoSuchIndexException(sprintf('Cannot read index "%s" while trying to traverse path "%s". Available indices are "%s".', $property, (string) $propertyPath, print_r(array_keys($zval[self::VALUE]), true)));
+                        throw new NoSuchIndexException(\sprintf('Cannot read index "%s" while trying to traverse path "%s". Available indices are "%s".', $property, (string) $propertyPath, print_r(array_keys($zval[self::VALUE]), true)));
                     }
 
                     if ($i + 1 < $propertyPath->getLength()) {
@@ -366,7 +366,7 @@
     private function readIndex(array $zval, string|int $index): array
     {
         if (!$zval[self::VALUE] instanceof \ArrayAccess && !\is_array($zval[self::VALUE])) {
-            throw new NoSuchIndexException(sprintf('Cannot read index "%s" from object of type "%s" because it doesn\'t implement \ArrayAccess.', $index, get_debug_type($zval[self::VALUE])));
+            throw new NoSuchIndexException(\sprintf('Cannot read index "%s" from object of type "%s" because it doesn\'t implement \ArrayAccess.', $index, get_debug_type($zval[self::VALUE])));
         }
 
         $result = self::RESULT_PROTO;
@@ -394,7 +394,7 @@
     private function readProperty(array $zval, string $property, bool $ignoreInvalidProperty = false, bool $isNullSafe = false): array
     {
         if (!\is_object($zval[self::VALUE])) {
-            throw new NoSuchPropertyException(sprintf('Cannot read property "%s" from an array. Maybe you intended to write the property path as "[%1$s]" instead.', $property));
+            throw new NoSuchPropertyException(\sprintf('Cannot read property "%s" from an array. Maybe you intended to write the property path as "[%1$s]" instead.', $property));
         }
 
         $result = self::RESULT_PROTO;
@@ -419,7 +419,7 @@
                             && $object instanceof $trace['class']
                             && preg_match('/Return value (?:of .*::\w+\(\) )?must be of (?:the )?type (\w+), null returned$/', $e->getMessage(), $matches)
                         ) {
-                            throw new UninitializedPropertyException(sprintf('The method "%s::%s()" returned "null", but expected type "%3$s". Did you forget to initialize a property or to make the return type nullable using "?%3$s"?', get_debug_type($object), $name, $matches[1]), 0, $e);
+                            throw new UninitializedPropertyException(\sprintf('The method "%s::%s()" returned "null", but expected type "%3$s". Did you forget to initialize a property or to make the return type nullable using "?%3$s"?', get_debug_type($object), $name, $matches[1]), 0, $e);
                         }
 
                         throw $e;
@@ -430,11 +430,11 @@
                             $r = new \ReflectionProperty($class, $name);
 
                             if ($r->isPublic() && !$r->hasType()) {
-                                throw new UninitializedPropertyException(sprintf('The property "%s::$%s" is not initialized.', $class, $name));
+                                throw new UninitializedPropertyException(\sprintf('The property "%s::$%s" is not initialized.', $class, $name));
                             }
                         } catch (\ReflectionException $e) {
                             if (!$ignoreInvalidProperty) {
-                                throw new NoSuchPropertyException(sprintf('Can\'t get a way to read the property "%s" in class "%s".', $property, $class));
+                                throw new NoSuchPropertyException(\sprintf('Can\'t get a way to read the property "%s" in class "%s".', $property, $class));
                             }
                         }
                     }
@@ -451,7 +451,7 @@
                     $r = new \ReflectionProperty(str_contains($matches[1], '@anonymous') ? $class : $matches[1], $matches[2]);
                     $type = ($type = $r->getType()) instanceof \ReflectionNamedType ? $type->getName() : (string) $type;
 
-                    throw new UninitializedPropertyException(sprintf('The property "%s::$%s" is not readable because it is typed "%s". You should initialize it or declare a default value instead.', $matches[1], $r->getName(), $type), 0, $e);
+                    throw new UninitializedPropertyException(\sprintf('The property "%s::$%s" is not readable because it is typed "%s". You should initialize it or declare a default value instead.', $matches[1], $r->getName(), $type), 0, $e);
                 }
 
                 throw $e;
@@ -464,7 +464,7 @@
         } elseif ($isNullSafe) {
             $result[self::VALUE] = null;
         } elseif (!$ignoreInvalidProperty) {
-            throw new NoSuchPropertyException(sprintf('Can\'t get a way to read the property "%s" in class "%s".', $property, $class));
+            throw new NoSuchPropertyException(\sprintf('Can\'t get a way to read the property "%s" in class "%s".', $property, $class));
         }
 
         // Objects are always passed around by reference
@@ -514,7 +514,7 @@
     private function writeIndex(array $zval, string|int $index, mixed $value): void
     {
         if (!$zval[self::VALUE] instanceof \ArrayAccess && !\is_array($zval[self::VALUE])) {
-            throw new NoSuchIndexException(sprintf('Cannot modify index "%s" in object of type "%s" because it doesn\'t implement \ArrayAccess.', $index, get_debug_type($zval[self::VALUE])));
+            throw new NoSuchIndexException(\sprintf('Cannot modify index "%s" in object of type "%s" because it doesn\'t implement \ArrayAccess.', $index, get_debug_type($zval[self::VALUE])));
         }
 
         $zval[self::REF][$index] = $value;
@@ -528,7 +528,7 @@
     private function writeProperty(array $zval, string $property, mixed $value, bool $recursive = false): void
     {
         if (!\is_object($zval[self::VALUE])) {
-            throw new NoSuchPropertyException(sprintf('Cannot write property "%s" to an array. Maybe you should write the property path as "[%1$s]" instead?', $property));
+            throw new NoSuchPropertyException(\sprintf('Cannot write property "%s" to an array. Maybe you should write the property path as "[%1$s]" instead?', $property));
         }
 
         $object = $zval[self::VALUE];
@@ -553,7 +553,7 @@
                     throw new NoSuchPropertyException(implode('. ', $mutator->getErrors()).'.');
                 }
 
-                throw new NoSuchPropertyException(sprintf('Could not determine access type for property "%s" in class "%s".', $property, get_debug_type($object)));
+                throw new NoSuchPropertyException(\sprintf('Could not determine access type for property "%s" in class "%s".', $property, get_debug_type($object)));
             }
         } catch (\TypeError $e) {
             if ($recursive || !$value instanceof \DateTimeInterface || !\in_array($value::class, ['DateTime', 'DateTimeImmutable'], true) || __FILE__ !== ($e->getTrace()[0]['file'] ?? null)) {
@@ -646,7 +646,7 @@
 
         $mutatorForArray = $this->getWriteInfo($object::class, $property, []);
         if (PropertyWriteInfo::TYPE_PROPERTY === $mutatorForArray->getType()) {
-            return $mutatorForArray->getVisibility() === 'public';
+            return 'public' === $mutatorForArray->getVisibility();
         }
 
         if (PropertyWriteInfo::TYPE_NONE !== $mutatorForArray->getType()) {
@@ -696,7 +696,7 @@
     public static function createCache(string $namespace, int $defaultLifetime, string $version, ?LoggerInterface $logger = null): AdapterInterface
     {
         if (!class_exists(ApcuAdapter::class)) {
-            throw new \LogicException(sprintf('The Symfony Cache component must be installed to use "%s()".', __METHOD__));
+            throw new \LogicException(\sprintf('The Symfony Cache component must be installed to use "%s()".', __METHOD__));
         }
 
         if (!ApcuAdapter::isSupported()) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/PropertyPathBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/PropertyPathBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/PropertyPathBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/PropertyPathBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,7 +86,7 @@
     public function remove(int $offset, int $length = 1)
     {
         if (!isset($this->elements[$offset])) {
-            throw new OutOfBoundsException(sprintf('The offset "%s" is not within the property path.', $offset));
+            throw new OutOfBoundsException(\sprintf('The offset "%s" is not within the property path.', $offset));
         }
 
         $this->resize($offset, $length, 0);
@@ -137,7 +137,7 @@
     public function replaceByIndex(int $offset, ?string $name = null)
     {
         if (!isset($this->elements[$offset])) {
-            throw new OutOfBoundsException(sprintf('The offset "%s" is not within the property path.', $offset));
+            throw new OutOfBoundsException(\sprintf('The offset "%s" is not within the property path.', $offset));
         }
 
         if (null !== $name) {
@@ -157,7 +157,7 @@
     public function replaceByProperty(int $offset, ?string $name = null)
     {
         if (!isset($this->elements[$offset])) {
-            throw new OutOfBoundsException(sprintf('The offset "%s" is not within the property path.', $offset));
+            throw new OutOfBoundsException(\sprintf('The offset "%s" is not within the property path.', $offset));
         }
 
         if (null !== $name) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/PropertyPath.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/PropertyPath.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/PropertyPath.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/PropertyPath.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,7 +72,6 @@
     {
         // Can be used as copy constructor
         if ($propertyPath instanceof self) {
-            /* @var PropertyPath $propertyPath */
             $this->elements = $propertyPath->elements;
             $this->length = $propertyPath->length;
             $this->isIndex = $propertyPath->isIndex;
@@ -122,7 +121,7 @@
         }
 
         if ('' !== $remaining) {
-            throw new InvalidPropertyPathException(sprintf('Could not parse property path "%s". Unexpected token "%s" at position %d.', $propertyPath, $remaining[0], $position));
+            throw new InvalidPropertyPathException(\sprintf('Could not parse property path "%s". Unexpected token "%s" at position %d.', $propertyPath, $remaining[0], $position));
         }
 
         $this->length = \count($this->elements);
@@ -171,7 +170,7 @@
     public function getElement(int $index): string
     {
         if (!isset($this->elements[$index])) {
-            throw new OutOfBoundsException(sprintf('The index "%s" is not within the property path.', $index));
+            throw new OutOfBoundsException(\sprintf('The index "%s" is not within the property path.', $index));
         }
 
         return $this->elements[$index];
@@ -180,7 +179,7 @@
     public function isProperty(int $index): bool
     {
         if (!isset($this->isIndex[$index])) {
-            throw new OutOfBoundsException(sprintf('The index "%s" is not within the property path.', $index));
+            throw new OutOfBoundsException(\sprintf('The index "%s" is not within the property path.', $index));
         }
 
         return !$this->isIndex[$index];
@@ -189,7 +188,7 @@
     public function isIndex(int $index): bool
     {
         if (!isset($this->isIndex[$index])) {
-            throw new OutOfBoundsException(sprintf('The index "%s" is not within the property path.', $index));
+            throw new OutOfBoundsException(\sprintf('The index "%s" is not within the property path.', $index));
         }
 
         return $this->isIndex[$index];
@@ -198,7 +197,7 @@
     public function isNullSafe(int $index): bool
     {
         if (!isset($this->isNullSafe[$index])) {
-            throw new OutOfBoundsException(sprintf('The index "%s" is not within the property path.', $index));
+            throw new OutOfBoundsException(\sprintf('The index "%s" is not within the property path.', $index));
         }
 
         return $this->isNullSafe[$index];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/Tests/Fixtures/TestIgnoreVoidAccessor.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/Tests/Fixtures/TestIgnoreVoidAccessor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/Tests/Fixtures/TestIgnoreVoidAccessor.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/Tests/Fixtures/TestIgnoreVoidAccessor.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,42 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\PropertyAccess\Tests\Fixtures;
+
+class TestIgnoreVoidAccessor
+{
+    public bool $setValue = false;
+    public bool $setterValue = false;
+    public bool $neverValue = false;
+    public bool $normalValue = false;
+
+    public function setValue(): void
+    {
+        $this->setValue = true;
+    }
+
+    public function setSetterValue(): void
+    {
+        $this->setterValue = true;
+    }
+
+    public function setNeverValue(): never
+    {
+        // Simulate a setter that does not return anything and exits
+        $this->neverValue = true;
+        exit;
+    }
+
+    public function setUndefinedValue(): void
+    {
+        // This method is intentionally left empty to simulate a missing setter
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorBuilderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorBuilderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorBuilderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorBuilderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -100,7 +100,7 @@
 
     public function testUseReadInfoExtractor()
     {
-        $readInfoExtractor = $this->createMock(PropertyReadInfoExtractorInterface::class);
+        $readInfoExtractor = $this->createStub(PropertyReadInfoExtractorInterface::class);
 
         $this->builder->setReadInfoExtractor($readInfoExtractor);
 
@@ -110,7 +110,7 @@
 
     public function testUseWriteInfoExtractor()
     {
-        $writeInfoExtractor = $this->createMock(PropertyWriteInfoExtractorInterface::class);
+        $writeInfoExtractor = $this->createStub(PropertyWriteInfoExtractorInterface::class);
 
         $this->builder->setWriteInfoExtractor($writeInfoExtractor);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorCollectionTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorCollectionTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorCollectionTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorCollectionTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -123,12 +123,12 @@
 
     public function testSetValueCallsAdderAndRemoverForNestedCollections()
     {
-        $car = $this->createMock(__CLASS__.'_CompositeCar');
+        $car = $this->createStub(__CLASS__.'_CompositeCar');
         $structure = $this->createMock(__CLASS__.'_CarStructure');
         $axesBefore = $this->getContainer([1 => 'second', 3 => 'fourth']);
         $axesAfter = $this->getContainer([0 => 'first', 1 => 'second', 2 => 'third']);
 
-        $car->expects($this->any())
+        $car
             ->method('getStructure')
             ->willReturn($structure);
 
@@ -158,11 +158,11 @@
     {
         $this->expectException(NoSuchPropertyException::class);
         $this->expectExceptionMessageMatches('/Could not determine access type for property "axes" in class "Mock_PropertyAccessorCollectionTestCase_CarNoAdderAndRemover_[^"]*"./');
-        $car = $this->createMock(__CLASS__.'_CarNoAdderAndRemover');
+        $car = $this->createStub(__CLASS__.'_CarNoAdderAndRemover');
         $axesBefore = $this->getContainer([1 => 'second', 3 => 'fourth']);
         $axesAfter = $this->getContainer([0 => 'first', 1 => 'second', 2 => 'third']);
 
-        $car->expects($this->any())
+        $car
             ->method('getAxes')
             ->willReturn($axesBefore);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,6 +32,7 @@
 use Symfony\Component\PropertyAccess\Tests\Fixtures\TestClassSetValue;
 use Symfony\Component\PropertyAccess\Tests\Fixtures\TestClassTypedProperty;
 use Symfony\Component\PropertyAccess\Tests\Fixtures\TestClassTypeErrorInsideCall;
+use Symfony\Component\PropertyAccess\Tests\Fixtures\TestIgnoreVoidAccessor;
 use Symfony\Component\PropertyAccess\Tests\Fixtures\TestPublicPropertyDynamicallyCreated;
 use Symfony\Component\PropertyAccess\Tests\Fixtures\TestPublicPropertyGetterOnObject;
 use Symfony\Component\PropertyAccess\Tests\Fixtures\TestPublicPropertyGetterOnObjectMagicGet;
@@ -52,6 +53,21 @@
         $this->propertyAccessor = new PropertyAccessor();
     }
 
+    public function testPrefersPropertyOverMethodWithSameNameAndRequiredArgs()
+    {
+        $obj = new class {
+            public bool $loaded = true;
+
+            // Same name as property, but requires an argument: must NOT be called for reading
+            public function loaded(string $arg): bool
+            {
+                throw new \RuntimeException('Method should not be invoked during property read');
+            }
+        };
+
+        $this->assertTrue($this->propertyAccessor->getValue($obj, 'loaded'));
+    }
+
     public static function getPathsWithMissingProperty()
     {
         return [
@@ -149,7 +165,7 @@
         $this->expectException(UninitializedPropertyException::class);
         $this->expectExceptionMessage('The method "class@anonymous::getUninitialized()" returned "null", but expected type "array". Did you forget to initialize a property or to make the return type nullable using "?array"?');
 
-        $object = new class() {
+        $object = new class {
             private $uninitialized;
 
             public function getUninitialized(): array
@@ -166,7 +182,7 @@
         $this->expectException(UninitializedPropertyException::class);
         $this->expectExceptionMessage('The property "class@anonymous::$uninitialized" is not readable because it is typed "string". You should initialize it or declare a default value instead.');
 
-        $object = new class() {
+        $object = new class {
             private string $uninitialized;
 
             public function getUninitialized(): string
@@ -183,7 +199,7 @@
         $this->expectException(UninitializedPropertyException::class);
         $this->expectExceptionMessage('The property "class@anonymous::$uninitialized" is not readable because it is typed "string". You should initialize it or declare a default value instead.');
 
-        $object = new class() {
+        $object = new class {
             public string $uninitialized;
         };
 
@@ -211,7 +227,7 @@
         $this->expectException(UninitializedPropertyException::class);
         $this->expectExceptionMessage('The method "stdClass@anonymous::getUninitialized()" returned "null", but expected type "array". Did you forget to initialize a property or to make the return type nullable using "?array"?');
 
-        $object = new class() extends \stdClass {
+        $object = new class extends \stdClass {
             private $uninitialized;
 
             public function getUninitialized(): array
@@ -228,7 +244,7 @@
         $this->expectException(UninitializedPropertyException::class);
         $this->expectExceptionMessage('The method "Symfony\Component\PropertyAccess\Tests\Fixtures\UninitializedPrivateProperty@anonymous::getUninitialized()" returned "null", but expected type "array". Did you forget to initialize a property or to make the return type nullable using "?array"?');
 
-        $object = new class() extends UninitializedPrivateProperty {
+        $object = new class extends UninitializedPrivateProperty {
         };
 
         $this->propertyAccessor->getValue($object, 'uninitialized');
@@ -980,6 +996,33 @@
         $this->propertyAccessor->getValue(new UninitializedObjectProperty(), 'privateUninitialized');
     }
 
+    /**
+     * @dataProvider voidAccessorProvider
+     */
+    public function testIgnoreVoidAccessor(string $property, mixed $value)
+    {
+        $object = new TestIgnoreVoidAccessor();
+        if (null === $value) {
+            $this->expectException(NoSuchPropertyException::class);
+        }
+
+        $this->assertSame(
+            $value,
+            $this->propertyAccessor->getValue($object, $property),
+        );
+    }
+
+    public static function voidAccessorProvider()
+    {
+        return [
+            ['setValue', false],
+            ['setterValue', false],
+            ['neverValue', false],
+            ['normalValue', false],
+            ['undefinedValue', null],
+        ];
+    }
+
     public function testGetValuePropertyThrowsExceptionIfUninitializedWithLazyGhost()
     {
         $this->expectException(UninitializedPropertyException::class);
@@ -1009,20 +1052,24 @@
 
     private function createUninitializedObjectPropertyGhost(): UninitializedObjectProperty
     {
-        if (!class_exists(ProxyHelper::class)) {
-            $this->markTestSkipped(sprintf('Class "%s" is required to run this test.', ProxyHelper::class));
-        }
+        if (\PHP_VERSION_ID < 80400) {
+            if (!class_exists(ProxyHelper::class)) {
+                $this->markTestSkipped(\sprintf('Class "%s" is required to run this test.', ProxyHelper::class));
+            }
 
-        $class = 'UninitializedObjectPropertyGhost';
+            $class = 'UninitializedObjectPropertyGhost';
 
-        if (!class_exists($class)) {
-            eval('class '.$class.ProxyHelper::generateLazyGhost(new \ReflectionClass(UninitializedObjectProperty::class)));
-        }
+            if (!class_exists($class)) {
+                eval('class '.$class.ProxyHelper::generateLazyGhost(new \ReflectionClass(UninitializedObjectProperty::class)));
+            }
+
+            $this->assertTrue(class_exists($class));
 
-        $this->assertTrue(class_exists($class));
+            return $class::createLazyGhost(initializer: static function ($instance) {
+            });
+        }
 
-        return $class::createLazyGhost(initializer: function ($instance) {
-        });
+        return (new \ReflectionClass(UninitializedObjectProperty::class))->newLazyGhost(static fn () => null);
     }
 
     /**
@@ -1072,7 +1119,7 @@
     }
 
     /**
-     * @return iterable<array{0: string, 1: null|class-string}>
+     * @return iterable<array{0: string, 1: class-string|null}>
      */
     public static function setValueWithAsymmetricVisibilityDataProvider(): iterable
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     },
     "conflict": {
         "doctrine/annotations": "<1.12",
-        "phpdocumentor/reflection-docblock": "<5.2",
+        "phpdocumentor/reflection-docblock": "<5.2|>=6",
         "phpdocumentor/type-resolver": "<1.5.1",
         "symfony/dependency-injection": "<5.4|>=6.0,<6.4",
         "symfony/cache": "<5.4",
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Extractor/PhpDocExtractor.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Extractor/PhpDocExtractor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Extractor/PhpDocExtractor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Extractor/PhpDocExtractor.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,8 @@
 namespace Symfony\Component\PropertyInfo\Extractor;
 
 use phpDocumentor\Reflection\DocBlock;
+use phpDocumentor\Reflection\DocBlock\Tags\Factory\StaticMethod;
+use phpDocumentor\Reflection\DocBlock\Tags\Generic;
 use phpDocumentor\Reflection\DocBlock\Tags\InvalidTag;
 use phpDocumentor\Reflection\DocBlockFactory;
 use phpDocumentor\Reflection\DocBlockFactoryInterface;
@@ -36,7 +38,7 @@
     public const MUTATOR = 2;
 
     /**
-     * @var array<string, array{DocBlock|null, int|null, string|null}>
+     * @var array<string, array{DocBlock|null, int|null, string|null, string|null}>
      */
     private array $docBlocks = [];
 
@@ -60,7 +62,11 @@
     public function __construct(?DocBlockFactoryInterface $docBlockFactory = null, ?array $mutatorPrefixes = null, ?array $accessorPrefixes = null, ?array $arrayMutatorPrefixes = null)
     {
         if (!class_exists(DocBlockFactory::class)) {
-            throw new \LogicException(sprintf('Unable to use the "%s" class as the "phpdocumentor/reflection-docblock" package is not installed. Try running composer require "phpdocumentor/reflection-docblock".', __CLASS__));
+            throw new \LogicException(\sprintf('Unable to use the "%s" class as the "phpdocumentor/reflection-docblock" package is not installed. Try running composer require "phpdocumentor/reflection-docblock".', __CLASS__));
+        }
+
+        if (!is_subclass_of(Generic::class, StaticMethod::class)) {
+            throw new \LogicException('symfony/property-info v6 does not support phpdocumentor/reflection-docblock v6. Please stick to ^5.2 in your composer.json file.');
         }
 
         $this->docBlockFactory = $docBlockFactory ?: DocBlockFactory::createInstance();
@@ -73,7 +79,7 @@
 
     public function getShortDescription(string $class, string $property, array $context = []): ?string
     {
-        /** @var $docBlock DocBlock */
+        /** @var DocBlock $docBlock */
         [$docBlock] = $this->getDocBlock($class, $property);
         if (!$docBlock) {
             return null;
@@ -100,7 +106,7 @@
 
     public function getLongDescription(string $class, string $property, array $context = []): ?string
     {
-        /** @var $docBlock DocBlock */
+        /** @var DocBlock $docBlock */
         [$docBlock] = $this->getDocBlock($class, $property);
         if (!$docBlock) {
             return null;
@@ -113,8 +119,8 @@
 
     public function getTypes(string $class, string $property, array $context = []): ?array
     {
-        /** @var $docBlock DocBlock */
-        [$docBlock, $source, $prefix] = $this->getDocBlock($class, $property);
+        /** @var DocBlock $docBlock */
+        [$docBlock, $source, $prefix, $declaringClass] = $this->getDocBlock($class, $property);
         if (!$docBlock) {
             return null;
         }
@@ -133,12 +139,15 @@
                 foreach ($this->phpDocTypeHelper->getTypes($tag->getType()) as $type) {
                     switch ($type->getClassName()) {
                         case 'self':
+                            $resolvedClass = $declaringClass ?? $class;
+                            break;
+
                         case 'static':
                             $resolvedClass = $class;
                             break;
 
                         case 'parent':
-                            if (false !== $resolvedClass = $parentClass ??= get_parent_class($class)) {
+                            if (false !== $resolvedClass = $parentClass ??= get_parent_class($declaringClass ?? $class)) {
                                 break;
                             }
                             // no break
@@ -210,18 +219,18 @@
 
     private function filterDocBlockParams(DocBlock $docBlock, string $allowedParam): DocBlock
     {
-        $tags = array_values(array_filter($docBlock->getTagsByName('param'), fn ($tag) => $tag instanceof DocBlock\Tags\Param && $allowedParam === $tag->getVariableName()));
+        $tags = array_values(array_filter($docBlock->getTagsByName('param'), static fn ($tag) => $tag instanceof DocBlock\Tags\Param && $allowedParam === $tag->getVariableName()));
 
         return new DocBlock($docBlock->getSummary(), $docBlock->getDescription(), $tags, $docBlock->getContext(),
             $docBlock->getLocation(), $docBlock->isTemplateStart(), $docBlock->isTemplateEnd());
     }
 
     /**
-     * @return array{DocBlock|null, int|null, string|null}
+     * @return array{DocBlock|null, int|null, string|null, string|null}
      */
     private function getDocBlock(string $class, string $property): array
     {
-        $propertyHash = sprintf('%s::%s', $class, $property);
+        $propertyHash = \sprintf('%s::%s', $class, $property);
 
         if (isset($this->docBlocks[$propertyHash])) {
             return $this->docBlocks[$propertyHash];
@@ -236,31 +245,36 @@
         $ucFirstProperty = ucfirst($property);
 
         switch (true) {
-            case $reflectionProperty?->isPromoted() && $docBlock = $this->getDocBlockFromConstructor($class, $property):
-                $data = [$docBlock, self::MUTATOR, null];
+            case $reflectionProperty?->isPromoted() && $docBlock = $this->getDocBlockFromConstructor($reflectionProperty->class, $property):
+                $data = [$docBlock, self::MUTATOR, null, $reflectionProperty->class];
                 break;
 
-            case $docBlock = $this->getDocBlockFromProperty($class, $property):
-                $data = [$docBlock, self::PROPERTY, null];
+            case [$docBlock, $declaringClass] = $this->getDocBlockFromProperty($class, $property):
+                $data = [$docBlock, self::PROPERTY, null, $declaringClass];
                 break;
 
-            case [$docBlock] = $this->getDocBlockFromMethod($class, $ucFirstProperty, self::ACCESSOR):
-                $data = [$docBlock, self::ACCESSOR, null];
+            case [$docBlock, , $declaringClass] = $this->getDocBlockFromMethod($class, $ucFirstProperty, self::ACCESSOR):
+                $data = [$docBlock, self::ACCESSOR, null, $declaringClass];
                 break;
 
-            case [$docBlock, $prefix] = $this->getDocBlockFromMethod($class, $ucFirstProperty, self::MUTATOR):
-                $data = [$docBlock, self::MUTATOR, $prefix];
+            case [$docBlock, $prefix, $declaringClass] = $this->getDocBlockFromMethod($class, $ucFirstProperty, self::MUTATOR):
+                $data = [$docBlock, self::MUTATOR, $prefix, $declaringClass];
                 break;
 
             default:
-                $data = [null, null, null];
+                $data = [null, null, null, null];
         }
 
         return $this->docBlocks[$propertyHash] = $data;
     }
 
-    private function getDocBlockFromProperty(string $class, string $property): ?DocBlock
+    /**
+     * @return array{DocBlock, string}|null
+     */
+    private function getDocBlockFromProperty(string $class, string $property, ?string $originalClass = null): ?array
     {
+        $originalClass ??= $class;
+
         // Use a ReflectionProperty instead of $class to get the parent class if applicable
         try {
             $reflectionProperty = new \ReflectionProperty($class, $property);
@@ -272,37 +286,45 @@
 
         foreach ($reflector->getTraits() as $trait) {
             if ($trait->hasProperty($property)) {
-                return $this->getDocBlockFromProperty($trait->getName(), $property);
+                return $this->getDocBlockFromProperty($trait->getName(), $property, $reflector->isTrait() ? $originalClass : $reflector->getName());
             }
         }
 
         try {
-            return $this->docBlockFactory->create($reflectionProperty, $this->createFromReflector($reflector));
+            $declaringClass = $reflector->isTrait() ? $originalClass : $reflector->getName();
+
+            return [$this->docBlockFactory->create($reflectionProperty, $this->createFromReflector($reflector)), $declaringClass];
         } catch (\InvalidArgumentException|\RuntimeException) {
             return null;
         }
     }
 
     /**
-     * @return array{DocBlock, string}|null
+     * @return array{DocBlock, string, string}|null
      */
-    private function getDocBlockFromMethod(string $class, string $ucFirstProperty, int $type): ?array
+    private function getDocBlockFromMethod(string $class, string $ucFirstProperty, int $type, ?string $originalClass = null): ?array
     {
+        $originalClass ??= $class;
         $prefixes = self::ACCESSOR === $type ? $this->accessorPrefixes : $this->mutatorPrefixes;
         $prefix = null;
+        $method = null;
 
         foreach ($prefixes as $prefix) {
             $methodName = $prefix.$ucFirstProperty;
 
             try {
-                $reflectionMethod = new \ReflectionMethod($class, $methodName);
-                if ($reflectionMethod->isStatic()) {
+                $method = new \ReflectionMethod($class, $methodName);
+                if ($method->isStatic()) {
+                    continue;
+                }
+
+                if (self::ACCESSOR === $type && \in_array((string) $method->getReturnType(), ['void', 'never'], true)) {
                     continue;
                 }
 
                 if (
-                    (self::ACCESSOR === $type && 0 === $reflectionMethod->getNumberOfRequiredParameters())
-                    || (self::MUTATOR === $type && $reflectionMethod->getNumberOfParameters() >= 1)
+                    (self::ACCESSOR === $type && !$method->getNumberOfRequiredParameters())
+                    || (self::MUTATOR === $type && $method->getNumberOfParameters() >= 1)
                 ) {
                     break;
                 }
@@ -311,20 +333,22 @@
             }
         }
 
-        if (!isset($reflectionMethod)) {
+        if (!$method) {
             return null;
         }
 
-        $reflector = $reflectionMethod->getDeclaringClass();
+        $reflector = $method->getDeclaringClass();
 
         foreach ($reflector->getTraits() as $trait) {
             if ($trait->hasMethod($methodName)) {
-                return $this->getDocBlockFromMethod($trait->getName(), $ucFirstProperty, $type);
+                return $this->getDocBlockFromMethod($trait->getName(), $ucFirstProperty, $type, $reflector->isTrait() ? $originalClass : $reflector->getName());
             }
         }
 
         try {
-            return [$this->docBlockFactory->create($reflectionMethod, $this->createFromReflector($reflector)), $prefix];
+            $declaringClass = $reflector->isTrait() ? $originalClass : $reflector->getName();
+
+            return [$this->docBlockFactory->create($method, $this->createFromReflector($reflector)), $prefix, $declaringClass];
         } catch (\InvalidArgumentException|\RuntimeException) {
             return null;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Extractor/PhpStanExtractor.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Extractor/PhpStanExtractor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Extractor/PhpStanExtractor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Extractor/PhpStanExtractor.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,11 +57,11 @@
     public function __construct(?array $mutatorPrefixes = null, ?array $accessorPrefixes = null, ?array $arrayMutatorPrefixes = null)
     {
         if (!class_exists(ContextFactory::class)) {
-            throw new \LogicException(sprintf('Unable to use the "%s" class as the "phpdocumentor/type-resolver" package is not installed. Try running composer require "phpdocumentor/type-resolver".', __CLASS__));
+            throw new \LogicException(\sprintf('Unable to use the "%s" class as the "phpdocumentor/type-resolver" package is not installed. Try running composer require "phpdocumentor/type-resolver".', __CLASS__));
         }
 
         if (!class_exists(PhpDocParser::class)) {
-            throw new \LogicException(sprintf('Unable to use the "%s" class as the "phpstan/phpdoc-parser" package is not installed. Try running composer require "phpstan/phpdoc-parser".', __CLASS__));
+            throw new \LogicException(\sprintf('Unable to use the "%s" class as the "phpstan/phpdoc-parser" package is not installed. Try running composer require "phpstan/phpdoc-parser".', __CLASS__));
         }
 
         $this->phpStanTypeHelper = new PhpStanTypeHelper();
@@ -154,7 +154,7 @@
     public function getTypesFromConstructor(string $class, string $property): ?array
     {
         if (null === $tagDocNode = $this->getDocBlockFromConstructor($class, $property)) {
-            return null;
+            return $this->getTypes($class, $property);
         }
 
         $types = [];
@@ -192,7 +192,7 @@
 
     private function filterDocBlockParams(PhpDocNode $docNode, string $allowedParam): ?ParamTagValueNode
     {
-        $tags = array_values(array_filter($docNode->getTagsByName('@param'), fn ($tagNode) => $tagNode instanceof PhpDocTagNode && ('$'.$allowedParam) === $tagNode->value->parameterName));
+        $tags = array_values(array_filter($docNode->getTagsByName('@param'), static fn ($tagNode) => $tagNode instanceof PhpDocTagNode && ('$'.$allowedParam) === $tagNode->value->parameterName));
 
         if (!$tags) {
             return null;
@@ -278,19 +278,24 @@
     {
         $prefixes = self::ACCESSOR === $type ? $this->accessorPrefixes : $this->mutatorPrefixes;
         $prefix = null;
+        $method = null;
 
         foreach ($prefixes as $prefix) {
             $methodName = $prefix.$ucFirstProperty;
 
             try {
-                $reflectionMethod = new \ReflectionMethod($class, $methodName);
-                if ($reflectionMethod->isStatic()) {
+                $method = new \ReflectionMethod($class, $methodName);
+                if ($method->isStatic()) {
+                    continue;
+                }
+
+                if (self::ACCESSOR === $type && \in_array((string) $method->getReturnType(), ['void', 'never'], true)) {
                     continue;
                 }
 
                 if (
-                    (self::ACCESSOR === $type && 0 === $reflectionMethod->getNumberOfRequiredParameters())
-                    || (self::MUTATOR === $type && $reflectionMethod->getNumberOfParameters() >= 1)
+                    (self::ACCESSOR === $type && !$method->getNumberOfRequiredParameters())
+                    || (self::MUTATOR === $type && $method->getNumberOfParameters() >= 1)
                 ) {
                     break;
                 }
@@ -299,17 +304,17 @@
             }
         }
 
-        if (!isset($reflectionMethod)) {
+        if (!$method) {
             return null;
         }
 
-        if (null === $rawDocNode = $reflectionMethod->getDocComment() ?: null) {
+        if (null === $rawDocNode = $method->getDocComment() ?: null) {
             return null;
         }
 
         $phpDocNode = $this->getPhpDocNode($rawDocNode);
 
-        return [$phpDocNode, $prefix, $reflectionMethod->class];
+        return [$phpDocNode, $prefix, $method->class];
     }
 
     private function getPhpDocNode(string $rawDocNode): PhpDocNode
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php	2026-05-20 10:56:49.000000000 +0200
@@ -138,7 +138,8 @@
             return $fromMutator;
         }
 
-        if ($fromAccessor = $this->extractFromAccessor($class, $property)) {
+        $allowedPrefixes = array_diff($this->accessorPrefixes, ['is', 'can', 'has']);
+        if ($fromAccessor = $this->extractFromAccessor($class, $property, $allowedPrefixes)) {
             return $fromAccessor;
         }
 
@@ -153,6 +154,11 @@
             return $fromPropertyDeclaration;
         }
 
+        $allowedPrefixes = array_diff($this->accessorPrefixes, $allowedPrefixes);
+        if ($fromAccessor = $this->extractFromAccessor($class, $property, $allowedPrefixes)) {
+            return $fromAccessor;
+        }
+
         return null;
     }
 
@@ -261,17 +267,13 @@
         foreach ($this->accessorPrefixes as $prefix) {
             $methodName = $prefix.$camelProp;
 
-            if ($reflClass->hasMethod($methodName) && $reflClass->getMethod($methodName)->getModifiers() & $this->methodReflectionFlags && !$reflClass->getMethod($methodName)->getNumberOfRequiredParameters()) {
-                $method = $reflClass->getMethod($methodName);
-
-                return new PropertyReadInfo(PropertyReadInfo::TYPE_METHOD, $methodName, $this->getReadVisiblityForMethod($method), $method->isStatic(), false);
+            if ($reflClass->hasMethod($methodName) && ($m = $reflClass->getMethod($methodName))->getModifiers() & $this->methodReflectionFlags && !$m->getNumberOfRequiredParameters() && !\in_array((string) $m->getReturnType(), ['void', 'never'], true)) {
+                return new PropertyReadInfo(PropertyReadInfo::TYPE_METHOD, $methodName, $this->getReadVisibilityForMethod($m), $m->isStatic(), false);
             }
         }
 
-        if ($allowGetterSetter && $reflClass->hasMethod($getsetter) && ($reflClass->getMethod($getsetter)->getModifiers() & $this->methodReflectionFlags)) {
-            $method = $reflClass->getMethod($getsetter);
-
-            return new PropertyReadInfo(PropertyReadInfo::TYPE_METHOD, $getsetter, $this->getReadVisiblityForMethod($method), $method->isStatic(), false);
+        if ($allowGetterSetter && $reflClass->hasMethod($getsetter) && ($m = $reflClass->getMethod($getsetter))->getModifiers() & $this->methodReflectionFlags && !$m->getNumberOfRequiredParameters() && !\in_array((string) $m->getReturnType(), ['void', 'never'], true)) {
+            return new PropertyReadInfo(PropertyReadInfo::TYPE_METHOD, $getsetter, $this->getReadVisibilityForMethod($m), $m->isStatic(), false);
         }
 
         if ($allowMagicGet && $reflClass->hasMethod('__get') && (($r = $reflClass->getMethod('__get'))->getModifiers() & $this->methodReflectionFlags)) {
@@ -279,7 +281,7 @@
         }
 
         if ($hasProperty && (($r = $reflClass->getProperty($property))->getModifiers() & $this->propertyReflectionFlags)) {
-            return new PropertyReadInfo(PropertyReadInfo::TYPE_PROPERTY, $property, $this->getReadVisiblityForProperty($r), $r->isStatic(), true);
+            return new PropertyReadInfo(PropertyReadInfo::TYPE_PROPERTY, $property, $this->getReadVisibilityForProperty($r), $r->isStatic(), true);
         }
 
         if ($allowMagicCall && $reflClass->hasMethod('__call') && ($reflClass->getMethod('__call')->getModifiers() & $this->methodReflectionFlags)) {
@@ -305,6 +307,7 @@
         $allowAdderRemover = $context['enable_adder_remover_extraction'] ?? true;
 
         $camelized = $this->camelize($property);
+        $nonCamelized = ucfirst($property);
         $constructor = $reflClass->getConstructor();
         $singulars = $this->inflector->singularize($camelized);
         $errors = [];
@@ -323,8 +326,8 @@
             $removerMethod = $reflClass->getMethod($removerAccessName);
 
             $mutator = new PropertyWriteInfo(PropertyWriteInfo::TYPE_ADDER_AND_REMOVER);
-            $mutator->setAdderInfo(new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $adderAccessName, $this->getWriteVisiblityForMethod($adderMethod), $adderMethod->isStatic()));
-            $mutator->setRemoverInfo(new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $removerAccessName, $this->getWriteVisiblityForMethod($removerMethod), $removerMethod->isStatic()));
+            $mutator->setAdderInfo(new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $adderAccessName, $this->getWriteVisibilityForMethod($adderMethod), $adderMethod->isStatic()));
+            $mutator->setRemoverInfo(new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $removerAccessName, $this->getWriteVisibilityForMethod($removerMethod), $removerMethod->isStatic()));
 
             return $mutator;
         }
@@ -343,30 +346,59 @@
             $method = $reflClass->getMethod($methodName);
 
             if (!\in_array($mutatorPrefix, $this->arrayMutatorPrefixes, true)) {
-                return new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $methodName, $this->getWriteVisiblityForMethod($method), $method->isStatic());
+                return new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $methodName, $this->getWriteVisibilityForMethod($method), $method->isStatic());
+            }
+        }
+
+        if ($camelized !== $nonCamelized) {
+            foreach ($this->mutatorPrefixes as $mutatorPrefix) {
+                $methodName = $mutatorPrefix.$nonCamelized;
+
+                [$accessible, $methodAccessibleErrors] = $this->isMethodAccessible($reflClass, $methodName, 1);
+                if (!$accessible) {
+                    $errors[] = $methodAccessibleErrors;
+                    continue;
+                }
+
+                $method = $reflClass->getMethod($methodName);
+
+                if (!\in_array($mutatorPrefix, $this->arrayMutatorPrefixes, true)) {
+                    return new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $methodName, $this->getWriteVisibilityForMethod($method), $method->isStatic());
+                }
             }
         }
 
         $getsetter = lcfirst($camelized);
+        $getsetterNonCamelized = lcfirst($nonCamelized);
 
         if ($allowGetterSetter) {
             [$accessible, $methodAccessibleErrors] = $this->isMethodAccessible($reflClass, $getsetter, 1);
             if ($accessible) {
                 $method = $reflClass->getMethod($getsetter);
 
-                return new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $getsetter, $this->getWriteVisiblityForMethod($method), $method->isStatic());
+                return new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $getsetter, $this->getWriteVisibilityForMethod($method), $method->isStatic());
             }
 
             $errors[] = $methodAccessibleErrors;
+
+            if ($getsetter !== $getsetterNonCamelized) {
+                [$accessible, $methodAccessibleErrors] = $this->isMethodAccessible($reflClass, $getsetterNonCamelized, 1);
+                if ($accessible) {
+                    $method = $reflClass->getMethod($getsetterNonCamelized);
+
+                    return new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $getsetterNonCamelized, $this->getWriteVisibilityForMethod($method), $method->isStatic());
+                }
+                $errors[] = $methodAccessibleErrors;
+            }
         }
 
         if ($reflClass->hasProperty($property) && ($reflClass->getProperty($property)->getModifiers() & $this->propertyReflectionFlags)) {
             $reflProperty = $reflClass->getProperty($property);
             if (!$reflProperty->isReadOnly()) {
-                return new PropertyWriteInfo(PropertyWriteInfo::TYPE_PROPERTY, $property, $this->getWriteVisiblityForProperty($reflProperty), $reflProperty->isStatic());
+                return new PropertyWriteInfo(PropertyWriteInfo::TYPE_PROPERTY, $property, $this->getWriteVisibilityForProperty($reflProperty), $reflProperty->isStatic());
             }
 
-            $errors[] = [sprintf('The property "%s" in class "%s" is a promoted readonly property.', $property, $reflClass->getName())];
+            $errors[] = [\sprintf('The property "%s" in class "%s" is a promoted readonly property.', $property, $reflClass->getName())];
             $allowMagicSet = $allowMagicCall = false;
         }
 
@@ -389,7 +421,7 @@
         }
 
         if (!$allowAdderRemover && null !== $adderAccessName && null !== $removerAccessName) {
-            $errors[] = [sprintf(
+            $errors[] = [\sprintf(
                 'The property "%s" in class "%s" can be defined with the methods "%s()" but '.
                 'the new value must be an array or an instance of \Traversable',
                 $property,
@@ -434,13 +466,17 @@
      *
      * @return Type[]|null
      */
-    private function extractFromAccessor(string $class, string $property): ?array
+    private function extractFromAccessor(string $class, string $property, array $allowedPrefixes): ?array
     {
         [$reflectionMethod, $prefix] = $this->getAccessorMethod($class, $property);
         if (null === $reflectionMethod) {
             return null;
         }
 
+        if (!\in_array($prefix, $allowedPrefixes, true)) {
+            return null;
+        }
+
         if ($reflectionType = $reflectionMethod->getReturnType()) {
             return $this->extractFromReflectionType($reflectionType, $reflectionMethod->getDeclaringClass());
         }
@@ -589,7 +625,7 @@
                     return (bool) ($this->propertyReflectionFlags & \ReflectionProperty::IS_PRIVATE);
                 }
 
-                if (\PHP_VERSION_ID >= 80400 &&$reflectionProperty->isVirtual() && !$reflectionProperty->hasHook(\PropertyHookType::Set)) {
+                if (\PHP_VERSION_ID >= 80400 && $reflectionProperty->isVirtual() && !$reflectionProperty->hasHook(\PropertyHookType::Set)) {
                     return false;
                 }
             }
@@ -721,9 +757,9 @@
             }
 
             if ($addMethodFound && !$removeMethodFound) {
-                $errors[] = [sprintf('The add method "%s" in class "%s" was found, but the corresponding remove method "%s" was not found', $addMethod, $reflClass->getName(), $removeMethod)];
+                $errors[] = [\sprintf('The add method "%s" in class "%s" was found, but the corresponding remove method "%s" was not found', $addMethod, $reflClass->getName(), $removeMethod)];
             } elseif (!$addMethodFound && $removeMethodFound) {
-                $errors[] = [sprintf('The remove method "%s" in class "%s" was found, but the corresponding add method "%s" was not found', $removeMethod, $reflClass->getName(), $addMethod)];
+                $errors[] = [\sprintf('The remove method "%s" in class "%s" was found, but the corresponding add method "%s" was not found', $removeMethod, $reflClass->getName(), $addMethod)];
             }
         }
 
@@ -741,9 +777,9 @@
             $method = $class->getMethod($methodName);
 
             if (\ReflectionMethod::IS_PUBLIC === $this->methodReflectionFlags && !$method->isPublic()) {
-                $errors[] = sprintf('The method "%s" in class "%s" was found but does not have public access.', $methodName, $class->getName());
+                $errors[] = \sprintf('The method "%s" in class "%s" was found but does not have public access.', $methodName, $class->getName());
             } elseif ($method->getNumberOfRequiredParameters() > $parameters || $method->getNumberOfParameters() < $parameters) {
-                $errors[] = sprintf('The method "%s" in class "%s" requires %d arguments, but should accept only %d.', $methodName, $class->getName(), $method->getNumberOfRequiredParameters(), $parameters);
+                $errors[] = \sprintf('The method "%s" in class "%s" requires %d arguments, but should accept only %d.', $methodName, $class->getName(), $method->getNumberOfRequiredParameters(), $parameters);
             } else {
                 return [true, $errors];
             }
@@ -757,6 +793,10 @@
      */
     private function camelize(string $string): string
     {
+        if ('' === ltrim($string, '_')) {
+            return $string;
+        }
+
         return str_replace(' ', '', ucwords(str_replace('_', ' ', $string)));
     }
 
@@ -804,7 +844,7 @@
         return $propertyFlags;
     }
 
-    private function getReadVisiblityForProperty(\ReflectionProperty $reflectionProperty): string
+    private function getReadVisibilityForProperty(\ReflectionProperty $reflectionProperty): string
     {
         if ($reflectionProperty->isPrivate()) {
             return PropertyReadInfo::VISIBILITY_PRIVATE;
@@ -817,7 +857,7 @@
         return PropertyReadInfo::VISIBILITY_PUBLIC;
     }
 
-    private function getReadVisiblityForMethod(\ReflectionMethod $reflectionMethod): string
+    private function getReadVisibilityForMethod(\ReflectionMethod $reflectionMethod): string
     {
         if ($reflectionMethod->isPrivate()) {
             return PropertyReadInfo::VISIBILITY_PRIVATE;
@@ -830,7 +870,7 @@
         return PropertyReadInfo::VISIBILITY_PUBLIC;
     }
 
-    private function getWriteVisiblityForProperty(\ReflectionProperty $reflectionProperty): string
+    private function getWriteVisibilityForProperty(\ReflectionProperty $reflectionProperty): string
     {
         if (\PHP_VERSION_ID >= 80400) {
             if ($reflectionProperty->isVirtual() && !$reflectionProperty->hasHook(\PropertyHookType::Set)) {
@@ -843,7 +883,7 @@
 
             if ($reflectionProperty->isProtectedSet()) {
                 return PropertyWriteInfo::VISIBILITY_PROTECTED;
-           }
+            }
         }
 
         if ($reflectionProperty->isPrivate()) {
@@ -857,7 +897,7 @@
         return PropertyWriteInfo::VISIBILITY_PUBLIC;
     }
 
-    private function getWriteVisiblityForMethod(\ReflectionMethod $reflectionMethod): string
+    private function getWriteVisibilityForMethod(\ReflectionMethod $reflectionMethod): string
     {
         if ($reflectionMethod->isPrivate()) {
             return PropertyWriteInfo::VISIBILITY_PRIVATE;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/PhpStan/NameScopeFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/PhpStan/NameScopeFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/PhpStan/NameScopeFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/PhpStan/NameScopeFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
 
         if (\is_string($fileName) && is_file($fileName)) {
             if (false === $contents = file_get_contents($fileName)) {
-                throw new \RuntimeException(sprintf('Unable to read file "%s".', $fileName));
+                throw new \RuntimeException(\sprintf('Unable to read file "%s".', $fileName));
             }
 
             $factory = new ContextFactory();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/PhpStan/NameScope.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/PhpStan/NameScope.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/PhpStan/NameScope.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/PhpStan/NameScope.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,11 +48,11 @@
             }
             array_shift($nameParts);
 
-            return sprintf('%s\\%s', $this->uses[$firstNamePart], implode('\\', $nameParts));
+            return \sprintf('%s\\%s', $this->uses[$firstNamePart], implode('\\', $nameParts));
         }
 
         if (null !== $this->namespace) {
-            return sprintf('%s\\%s', $this->namespace, $name);
+            return \sprintf('%s\\%s', $this->namespace, $name);
         }
 
         return $name;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpDocExtractorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpDocExtractorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpDocExtractorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpDocExtractorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,15 +11,29 @@
 
 namespace Symfony\Component\PropertyInfo\Tests\Extractor;
 
+use phpDocumentor\Reflection\PseudoTypes\IntMask;
+use phpDocumentor\Reflection\PseudoTypes\IntMaskOf;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\Dummy;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\DummyCollection;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ChildOfParentUsingTrait;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ChildOfParentWithPromotedSelfDocBlock;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ChildWithConstructorOverride;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ChildWithoutConstructorOverride;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ChildWithSelfDocBlock;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ClassUsingNestedTrait;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ClassUsingTraitWithSelfDocBlock;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ParentUsingTraitWithSelfDocBlock;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ParentWithPromotedPropertyDocBlock;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ParentWithPromotedSelfDocBlock;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\ParentWithSelfDocBlock;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\ParentDummy;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\Php80Dummy;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\PseudoTypeDummy;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\TraitUsage\DummyUsedInTrait;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\TraitUsage\DummyUsingTrait;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\VoidNeverReturnTypeDummy;
 use Symfony\Component\PropertyInfo\Type;
 
 /**
@@ -136,6 +150,7 @@
             ['listOfStrings', [new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true, new Type(Type::BUILTIN_TYPE_INT), new Type(Type::BUILTIN_TYPE_STRING))], null, null],
             ['self', [new Type(Type::BUILTIN_TYPE_OBJECT, false, Dummy::class)], null, null],
             ['collectionAsObject', [new Type(Type::BUILTIN_TYPE_OBJECT, false, DummyCollection::class, true, [new Type(Type::BUILTIN_TYPE_INT)], [new Type(Type::BUILTIN_TYPE_STRING)])], null, null],
+            ['unionWithMixed', null, null, null],
         ];
     }
 
@@ -397,7 +412,19 @@
 
     public function testUnknownPseudoType()
     {
-        $this->assertEquals([new Type(Type::BUILTIN_TYPE_OBJECT, false, 'scalar')], $this->extractor->getTypes(PseudoTypeDummy::class, 'unknownPseudoType'));
+        $this->assertEquals([
+            new Type(Type::BUILTIN_TYPE_OBJECT, false, 'Symfony\\Component\\PropertyInfo\\Tests\\Fixtures\\unknownpseudo'),
+        ], $this->extractor->getTypes(PseudoTypeDummy::class, 'unknownPseudoType'));
+    }
+
+    public function testScalarPseudoType()
+    {
+        $this->assertEquals([
+            new Type(Type::BUILTIN_TYPE_BOOL),
+            new Type(Type::BUILTIN_TYPE_FLOAT),
+            new Type(Type::BUILTIN_TYPE_INT),
+            new Type(Type::BUILTIN_TYPE_STRING),
+        ], $this->extractor->getTypes(PseudoTypeDummy::class, 'scalarPseudoType'));
     }
 
     public function testGenericInterface()
@@ -428,7 +455,7 @@
     /**
      * @dataProvider pseudoTypesProvider
      */
-    public function testPseudoTypes($property, array $type)
+    public function testPseudoTypes($property, ?array $type)
     {
         $this->assertEquals($type, $this->extractor->getTypes('Symfony\Component\PropertyInfo\Tests\Fixtures\PseudoTypesDummy', $property));
     }
@@ -445,6 +472,17 @@
             ['numericString', [new Type(Type::BUILTIN_TYPE_STRING, false, null)]],
             ['traitString', [new Type(Type::BUILTIN_TYPE_STRING, false, null)]],
             ['positiveInt', [new Type(Type::BUILTIN_TYPE_INT, false, null)]],
+            ['true', [new Type(Type::BUILTIN_TYPE_TRUE, false, null)]],
+            ['false', [new Type(Type::BUILTIN_TYPE_FALSE, false, null)]],
+            ['valueOfStrings', null],
+            ['valueOfIntegers', null],
+            ['keyOfStrings', null],
+            ['keyOfIntegers', null],
+            ['arrayKey', null],
+            ['intMask', class_exists(IntMask::class) ? [new Type(Type::BUILTIN_TYPE_INT, false, null)] : null],
+            ['intMaskOf', class_exists(IntMaskOf::class) ? [new Type(Type::BUILTIN_TYPE_INT, false, null)] : null],
+            ['conditional', null],
+            ['offsetAccess', null],
         ];
     }
 
@@ -463,6 +501,78 @@
             ['promotedAndMutated', [new Type(Type::BUILTIN_TYPE_STRING)]],
         ];
     }
+
+    public function testSkipVoidNeverReturnTypeAccessors()
+    {
+        // Methods that return void or never should be skipped, so no types should be extracted
+        $this->assertNull($this->extractor->getTypes(VoidNeverReturnTypeDummy::class, 'voidProperty'));
+        $this->assertNull($this->extractor->getTypes(VoidNeverReturnTypeDummy::class, 'neverProperty'));
+        // Normal getter should still work
+        $types = $this->extractor->getTypes(VoidNeverReturnTypeDummy::class, 'normalProperty');
+        $this->assertNotNull($types);
+        $this->assertCount(1, $types);
+        $this->assertEquals(Type::BUILTIN_TYPE_STRING, $types[0]->getBuiltinType());
+    }
+
+    /**
+     * @param class-string $class
+     * @param class-string $expectedResolvedClass
+     *
+     * @dataProvider selfDocBlockResolutionProvider
+     */
+    public function testSelfDocBlockResolvesToDeclaringClass(string $class, string $property, string $expectedResolvedClass)
+    {
+        $this->assertEquals([new Type(Type::BUILTIN_TYPE_OBJECT, false, $expectedResolvedClass)], $this->extractor->getTypes($class, $property));
+    }
+
+    /**
+     * @return iterable<string, array{0: class-string, 1: string, 2: class-string}>
+     */
+    public static function selfDocBlockResolutionProvider(): iterable
+    {
+        yield 'parent property' => [ParentWithSelfDocBlock::class, 'selfProp', ParentWithSelfDocBlock::class];
+        yield 'parent property from child' => [ChildWithSelfDocBlock::class, 'selfProp', ParentWithSelfDocBlock::class];
+        yield 'parent accessor' => [ParentWithSelfDocBlock::class, 'selfAccessor', ParentWithSelfDocBlock::class];
+        yield 'parent accessor from child' => [ChildWithSelfDocBlock::class, 'selfAccessor', ParentWithSelfDocBlock::class];
+        yield 'parent mutator' => [ParentWithSelfDocBlock::class, 'selfMutator', ParentWithSelfDocBlock::class];
+        yield 'parent mutator from child' => [ChildWithSelfDocBlock::class, 'selfMutator', ParentWithSelfDocBlock::class];
+        yield 'trait property' => [ClassUsingTraitWithSelfDocBlock::class, 'selfTraitProp', ClassUsingTraitWithSelfDocBlock::class];
+        yield 'trait accessor' => [ClassUsingTraitWithSelfDocBlock::class, 'selfTraitAccessor', ClassUsingTraitWithSelfDocBlock::class];
+        yield 'trait mutator' => [ClassUsingTraitWithSelfDocBlock::class, 'selfTraitMutator', ClassUsingTraitWithSelfDocBlock::class];
+        yield 'trait property from child' => [ChildOfParentUsingTrait::class, 'selfTraitProp', ParentUsingTraitWithSelfDocBlock::class];
+        yield 'trait accessor from child' => [ChildOfParentUsingTrait::class, 'selfTraitAccessor', ParentUsingTraitWithSelfDocBlock::class];
+        yield 'trait mutator from child' => [ChildOfParentUsingTrait::class, 'selfTraitMutator', ParentUsingTraitWithSelfDocBlock::class];
+        yield 'nested trait property' => [ClassUsingNestedTrait::class, 'innerSelfProp', ClassUsingNestedTrait::class];
+        yield 'promoted property' => [ParentWithPromotedSelfDocBlock::class, 'promotedSelfProp', ParentWithPromotedSelfDocBlock::class];
+        yield 'promoted property from child' => [ChildOfParentWithPromotedSelfDocBlock::class, 'promotedSelfProp', ParentWithPromotedSelfDocBlock::class];
+    }
+
+    /**
+     * @dataProvider inheritedPromotedPropertyWithConstructorOverrideProvider
+     */
+    public function testInheritedPromotedPropertyWithConstructorOverride(string $class, string $property, ?array $expectedTypes)
+    {
+        $this->assertEquals($expectedTypes, $this->extractor->getTypes($class, $property));
+    }
+
+    /**
+     * @return iterable<string, array{0: class-string, 1: string, 2: ?array}>
+     */
+    public static function inheritedPromotedPropertyWithConstructorOverrideProvider(): iterable
+    {
+        $expectedItemsType = [new Type(
+            Type::BUILTIN_TYPE_ARRAY,
+            false,
+            null,
+            true,
+            new Type(Type::BUILTIN_TYPE_STRING),
+            new Type(Type::BUILTIN_TYPE_INT)
+        )];
+
+        yield 'parent promoted property' => [ParentWithPromotedPropertyDocBlock::class, 'items', $expectedItemsType];
+        yield 'child without constructor override' => [ChildWithoutConstructorOverride::class, 'items', $expectedItemsType];
+        yield 'child with constructor override' => [ChildWithConstructorOverride::class, 'items', $expectedItemsType];
+    }
 }
 
 class EmptyDocBlock
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,6 +28,7 @@
 use Symfony\Component\PropertyInfo\Tests\Fixtures\TraitUsage\AnotherNamespace\DummyInAnotherNamespace;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\TraitUsage\DummyUsedInTrait;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\TraitUsage\DummyUsingTrait;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\VoidNeverReturnTypeDummy;
 use Symfony\Component\PropertyInfo\Type;
 
 require_once __DIR__.'/../Fixtures/Extractor/DummyNamespace.php';
@@ -370,12 +371,30 @@
             ['date', [new Type(Type::BUILTIN_TYPE_INT)]],
             ['timezone', [new Type(Type::BUILTIN_TYPE_OBJECT, false, 'DateTimeZone')]],
             ['dateObject', [new Type(Type::BUILTIN_TYPE_OBJECT, false, 'DateTimeInterface')]],
-            ['dateTime', null],
+            ['dateTime', [new Type(Type::BUILTIN_TYPE_INT)]],
             ['ddd', null],
         ];
     }
 
     /**
+     * @dataProvider provideConstructorTypesWithOnlyVarTags
+     */
+    public function testExtractConstructorTypesWithOnlyVarTags($property, ?array $type = null)
+    {
+        $this->assertEquals($type, $this->extractor->getTypesFromConstructor('Symfony\Component\PropertyInfo\Tests\Fixtures\ConstructorDummyWithVarTagsDocBlock', $property));
+    }
+
+    public static function provideConstructorTypesWithOnlyVarTags()
+    {
+        yield ['date', [new Type(Type::BUILTIN_TYPE_INT)]];
+        yield ['dateObject', [new Type(Type::BUILTIN_TYPE_OBJECT, false, 'DateTimeInterface')]];
+        yield ['objectsArray', [new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true, new Type(Type::BUILTIN_TYPE_INT), new Type(Type::BUILTIN_TYPE_OBJECT, false, 'Symfony\Component\PropertyInfo\Tests\Fixtures\ConstructorDummy'))]];
+        yield ['dateTime', null];
+        yield ['mixed', null];
+        yield ['timezone', null];
+    }
+
+    /**
      * @dataProvider unionTypesProvider
      */
     public function testExtractorUnionTypes(string $property, ?array $types)
@@ -501,6 +520,7 @@
 
     /**
      * @param list<Type> $expectedTypes
+     *
      * @dataProvider genericsProvider
      */
     public function testGenericsLegacy(string $property, array $expectedTypes)
@@ -568,6 +588,13 @@
             ],
         ];
     }
+
+    public function testSkipVoidNeverReturnTypeAccessors()
+    {
+        $this->assertNull($this->extractor->getTypes(VoidNeverReturnTypeDummy::class, 'voidProperty'));
+        $this->assertNull($this->extractor->getTypes(VoidNeverReturnTypeDummy::class, 'neverProperty'));
+        $this->assertEquals([new Type(Type::BUILTIN_TYPE_STRING)], $this->extractor->getTypes(VoidNeverReturnTypeDummy::class, 'normalProperty'));
+    }
 }
 
 class PhpStanOmittedParamTagTypeDocBlock
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,6 +19,7 @@
 use Symfony\Component\PropertyInfo\Tests\Fixtures\AsymmetricVisibility;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\DefaultValue;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\Dummy;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\DummyWithHasser;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\NotInstantiable;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\Php71Dummy;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\Php71DummyExtended;
@@ -28,7 +29,9 @@
 use Symfony\Component\PropertyInfo\Tests\Fixtures\Php7ParentDummy;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\Php81Dummy;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\SnakeCaseDummy;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\UnderscoreDummy;
 use Symfony\Component\PropertyInfo\Tests\Fixtures\VirtualProperties;
+use Symfony\Component\PropertyInfo\Tests\Fixtures\VoidNeverReturnTypeDummy;
 use Symfony\Component\PropertyInfo\Type;
 
 /**
@@ -72,6 +75,7 @@
                 'listOfStrings',
                 'parentAnnotation',
                 'genericInterface',
+                'unionWithMixed',
                 'foo',
                 'foo2',
                 'foo3',
@@ -138,6 +142,7 @@
                 'listOfStrings',
                 'parentAnnotation',
                 'genericInterface',
+                'unionWithMixed',
                 'foo',
                 'foo2',
                 'foo3',
@@ -193,6 +198,7 @@
                 'listOfStrings',
                 'parentAnnotation',
                 'genericInterface',
+                'unionWithMixed',
                 'foo',
                 'foo2',
                 'foo3',
@@ -361,31 +367,31 @@
     /**
      * @dataProvider getReadableProperties
      */
-    public function testIsReadable($property, $expected)
+    public function testIsReadable(string $class, string $property, bool $expected)
     {
-        $this->assertSame(
-            $expected,
-            $this->extractor->isReadable('Symfony\Component\PropertyInfo\Tests\Fixtures\Dummy', $property, [])
-        );
+        $this->assertSame($expected, $this->extractor->isReadable($class, $property, []));
     }
 
     public static function getReadableProperties()
     {
         return [
-            ['bar', false],
-            ['baz', false],
-            ['parent', true],
-            ['a', true],
-            ['b', false],
-            ['c', true],
-            ['d', true],
-            ['e', false],
-            ['f', false],
-            ['Id', true],
-            ['id', true],
-            ['Guid', true],
-            ['guid', false],
-            ['element', false],
+            [Dummy::class, 'bar', false],
+            [Dummy::class, 'baz', false],
+            [Dummy::class, 'parent', true],
+            [Dummy::class, 'a', true],
+            [Dummy::class, 'b', false],
+            [Dummy::class, 'c', true],
+            [Dummy::class, 'd', true],
+            [Dummy::class, 'e', false],
+            [Dummy::class, 'f', false],
+            [Dummy::class, 'Id', true],
+            [Dummy::class, 'id', true],
+            [Dummy::class, 'Guid', true],
+            [Dummy::class, 'guid', false],
+            [Dummy::class, 'element', false],
+            [UnderscoreDummy::class, '_', true],
+            [UnderscoreDummy::class, '__', true],
+            [UnderscoreDummy::class, '___', false],
         ];
     }
 
@@ -559,7 +565,11 @@
             [Dummy::class, 'static', true, PropertyReadInfo::TYPE_METHOD, 'getStatic', PropertyReadInfo::VISIBILITY_PUBLIC, true],
             [Dummy::class, 'foo', true, PropertyReadInfo::TYPE_PROPERTY, 'foo', PropertyReadInfo::VISIBILITY_PUBLIC, false],
             [Php71Dummy::class, 'foo', true, PropertyReadInfo::TYPE_METHOD, 'getFoo', PropertyReadInfo::VISIBILITY_PUBLIC, false],
-            [Php71Dummy::class, 'buz', true, PropertyReadInfo::TYPE_METHOD, 'getBuz', PropertyReadInfo::VISIBILITY_PUBLIC, false],
+            [Php71Dummy::class, 'buz', false, null, null, null, null],
+            [UnderscoreDummy::class, '_', true, PropertyReadInfo::TYPE_METHOD, 'get_', PropertyReadInfo::VISIBILITY_PUBLIC, false],
+            [UnderscoreDummy::class, '__', true, PropertyReadInfo::TYPE_METHOD, 'get__', PropertyReadInfo::VISIBILITY_PUBLIC, false],
+            [UnderscoreDummy::class, 'foo_bar', false, null, null, null, null],
+            [UnderscoreDummy::class, '_foo_', false, null, null, null, null],
         ];
     }
 
@@ -628,6 +638,9 @@
             [Php71DummyExtended2::class, 'string', false, false, '', '', null, null, PropertyWriteInfo::VISIBILITY_PUBLIC, false],
             [Php71DummyExtended2::class, 'string', true, false,  '', '', null, null, PropertyWriteInfo::VISIBILITY_PUBLIC, false],
             [Php71DummyExtended2::class, 'baz', false, true, PropertyWriteInfo::TYPE_ADDER_AND_REMOVER, null, 'addBaz', 'removeBaz', PropertyWriteInfo::VISIBILITY_PUBLIC, false],
+            [SnakeCaseDummy::class, 'snake_property', false, true, PropertyWriteInfo::TYPE_METHOD, 'setSnakeProperty', null, null, PropertyWriteInfo::VISIBILITY_PUBLIC, false],
+            [SnakeCaseDummy::class, 'snake_method', false, true, PropertyWriteInfo::TYPE_METHOD, 'setSnake_method', null, null, PropertyWriteInfo::VISIBILITY_PUBLIC, false],
+            [SnakeCaseDummy::class, 'snake_readonly', false, false, PropertyWriteInfo::TYPE_NONE, null, null, null, null, null],
         ];
     }
 
@@ -743,6 +756,7 @@
 
     /**
      * @dataProvider provideAsymmetricVisibilityMutator
+     *
      * @requires PHP 8.4
      */
     public function testAsymmetricVisibilityMutator(string $property, string $readVisibility, string $writeVisibility)
@@ -768,6 +782,7 @@
 
     /**
      * @dataProvider provideVirtualPropertiesMutator
+     *
      * @requires PHP 8.4
      */
     public function testVirtualPropertiesMutator(string $property, string $readVisibility, string $writeVisibility)
@@ -790,4 +805,50 @@
         yield ['virtualSetHookOnly', PropertyReadInfo::VISIBILITY_PUBLIC, PropertyWriteInfo::VISIBILITY_PUBLIC];
         yield ['virtualHook', PropertyReadInfo::VISIBILITY_PUBLIC, PropertyWriteInfo::VISIBILITY_PUBLIC];
     }
+
+    /**
+     * @dataProvider camelizeProvider
+     */
+    public function testCamelize(string $input, string $expected)
+    {
+        $reflection = new \ReflectionClass($this->extractor);
+        $method = $reflection->getMethod('camelize');
+
+        $this->assertSame($expected, $method->invoke($this->extractor, $input));
+    }
+
+    public static function camelizeProvider(): iterable
+    {
+        yield 'single underscore' => ['_', '_'];
+        yield 'double underscore' => ['__', '__'];
+        yield 'triple underscore' => ['___', '___'];
+
+        yield 'snake case' => ['foo_bar', 'FooBar'];
+        yield 'double snake case' => ['foo__bar', 'FooBar'];
+        yield 'leading underscore' => ['_foo', 'Foo'];
+        yield 'trailing underscore' => ['foo_', 'Foo'];
+        yield 'leading and trailing' => ['_foo_bar_', 'FooBar'];
+        yield 'empty string' => ['', ''];
+        yield 'no underscore' => ['fooBar', 'FooBar'];
+        yield 'pascal case' => ['FooBar', 'FooBar'];
+    }
+
+    public function testSkipVoidNeverReturnTypeAccessors()
+    {
+        $this->assertFalse($this->extractor->isReadable(VoidNeverReturnTypeDummy::class, 'voidProperty'));
+        $this->assertFalse($this->extractor->isReadable(VoidNeverReturnTypeDummy::class, 'neverProperty'));
+        $this->assertTrue($this->extractor->isReadable(VoidNeverReturnTypeDummy::class, 'normalProperty'));
+        $this->assertNull($this->extractor->getReadInfo(VoidNeverReturnTypeDummy::class, 'voidProperty'));
+        $this->assertNull($this->extractor->getReadInfo(VoidNeverReturnTypeDummy::class, 'neverProperty'));
+    }
+
+    public function testHasserDoesNotOverridePropertyType()
+    {
+        $this->assertEquals([new Type(Type::BUILTIN_TYPE_STRING, true)], $this->extractor->getTypes(DummyWithHasser::class, 'url'));
+    }
+
+    public function testIsserUsedForBoolPropertyWithoutOtherTypeSource()
+    {
+        $this->assertEquals([new Type(Type::BUILTIN_TYPE_BOOL)], $this->extractor->getTypes(DummyWithHasser::class, 'enabled'));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/SerializerExtractorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/SerializerExtractorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/SerializerExtractorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Extractor/SerializerExtractorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,6 +58,6 @@
 
     public function testGetPropertiesWithNonExistentClassReturnsNull()
     {
-        $this->assertSame(null, $this->extractor->getProperties('NonExistent'));
+        $this->assertNull($this->extractor->getProperties('NonExistent'));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/ConstructorDummyWithVarTagsDocBlock.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/ConstructorDummyWithVarTagsDocBlock.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/ConstructorDummyWithVarTagsDocBlock.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/ConstructorDummyWithVarTagsDocBlock.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\PropertyInfo\Tests\Fixtures;
+
+
+class ConstructorDummyWithVarTagsDocBlock
+{
+    public function __construct(
+        public \DateTimeZone $timezone,
+        /** @var int */
+        public $date,
+        /** @var \DateTimeInterface */
+        public $dateObject,
+        public \DateTimeImmutable $dateTime,
+        public $mixed,
+        /** @var ConstructorDummy[] */
+        public array $objectsArray,
+    )
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Dummy.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Dummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Dummy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Dummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -177,6 +177,9 @@
      */
     public $genericInterface;
 
+    /** @var string|mixed  */
+    public $unionWithMixed;
+
     public static function getStatic()
     {
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/DummyWithHasser.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/DummyWithHasser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/DummyWithHasser.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/DummyWithHasser.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,38 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\PropertyInfo\Tests\Fixtures;
+
+class DummyWithHasser
+{
+    private $enabled;
+
+    public function __construct(
+        public readonly ?string $url,
+        private bool $active,
+    ) {
+    }
+
+    public function hasUrl(): bool
+    {
+        return '' !== ($this->url ?? '');
+    }
+
+    public function isActive(): bool
+    {
+        return $this->active;
+    }
+
+    public function isEnabled(): bool
+    {
+        return $this->enabled;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/ParentWithPromotedPropertyDocBlock.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/ParentWithPromotedPropertyDocBlock.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/ParentWithPromotedPropertyDocBlock.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/ParentWithPromotedPropertyDocBlock.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,36 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor;
+
+class ParentWithPromotedPropertyDocBlock
+{
+    /**
+     * @param array<string, int> $items
+     */
+    public function __construct(
+        public $items = [],
+    ) {
+    }
+}
+
+class ChildWithoutConstructorOverride extends ParentWithPromotedPropertyDocBlock
+{
+}
+
+class ChildWithConstructorOverride extends ParentWithPromotedPropertyDocBlock
+{
+    public function __construct(
+        public $extraProp = null,
+    ) {
+        parent::__construct();
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/ParentWithSelfDocBlock.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/ParentWithSelfDocBlock.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/ParentWithSelfDocBlock.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/ParentWithSelfDocBlock.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,109 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor;
+
+class ParentWithSelfDocBlock
+{
+    /**
+     * @var self
+     */
+    public $selfProp;
+
+    /**
+     * @return self
+     */
+    public function getSelfAccessor()
+    {
+        return $this;
+    }
+
+    /**
+     * @param self $value
+     */
+    public function setSelfMutator($value)
+    {
+    }
+}
+
+class ChildWithSelfDocBlock extends ParentWithSelfDocBlock
+{
+}
+
+trait TraitWithSelfDocBlock
+{
+    /**
+     * @var self
+     */
+    public $selfTraitProp;
+
+    /**
+     * @return self
+     */
+    public function getSelfTraitAccessor()
+    {
+        return $this;
+    }
+
+    /**
+     * @param self $value
+     */
+    public function setSelfTraitMutator($value)
+    {
+    }
+}
+
+class ClassUsingTraitWithSelfDocBlock
+{
+    use TraitWithSelfDocBlock;
+}
+
+class ParentUsingTraitWithSelfDocBlock
+{
+    use TraitWithSelfDocBlock;
+}
+
+class ChildOfParentUsingTrait extends ParentUsingTraitWithSelfDocBlock
+{
+}
+
+trait InnerTraitWithSelf
+{
+    /**
+     * @var self
+     */
+    public $innerSelfProp;
+}
+
+trait OuterTrait
+{
+    use InnerTraitWithSelf;
+}
+
+class ClassUsingNestedTrait
+{
+    use OuterTrait;
+}
+
+class ParentWithPromotedSelfDocBlock
+{
+    /**
+     * @param self $promotedSelfProp
+     */
+    public function __construct(
+        public $promotedSelfProp = null,
+    ) {
+    }
+}
+
+class ChildOfParentWithPromotedSelfDocBlock extends ParentWithPromotedSelfDocBlock
+{
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PseudoTypeDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PseudoTypeDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PseudoTypeDummy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PseudoTypeDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,5 +16,10 @@
     /**
      * @var scalar
      */
+    public $scalarPseudoType;
+
+    /**
+     * @var unknownpseudo
+     */
     public $unknownPseudoType;
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PseudoTypesDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PseudoTypesDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PseudoTypesDummy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PseudoTypesDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,4 +45,37 @@
 
     /** @var literal-string */
     public $literalString;
+
+    /** @var true */
+    public $true;
+
+    /** @var false */
+    public $false;
+
+    /** @var value-of<self::STRINGS> */
+    public $valueOfStrings;
+
+    /** @var value-of<self::INTEGERS> */
+    public $valueOfIntegers;
+
+    /** @var key-of<self::STRINGS> */
+    public $keyOfStrings;
+
+    /** @var key-of<self::INTEGERS> */
+    public $keyOfIntegers;
+
+    /** @var array-key */
+    public $arrayKey;
+
+    /** @var int-mask<1,2,4> */
+    public $intMask;
+
+    /** @var int-mask-of<1|2|4> */
+    public $intMaskOf;
+
+    /** @var (T is int ? string : int) */
+    public $conditional;
+
+    /** @var self::STRINGS['A'] */
+    public $offsetAccess;
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/UnderscoreDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/UnderscoreDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/UnderscoreDummy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/UnderscoreDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,31 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\PropertyInfo\Tests\Fixtures;
+
+/**
+ * Fixture class for testing underscore-only properties.
+ */
+class UnderscoreDummy
+{
+    private float $_;
+    private float $__;
+
+    public function get_(): float
+    {
+        return $this->_;
+    }
+
+    public function get__(): float
+    {
+        return $this->__;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/VoidNeverReturnTypeDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/VoidNeverReturnTypeDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/VoidNeverReturnTypeDummy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Tests/Fixtures/VoidNeverReturnTypeDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,48 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\PropertyInfo\Tests\Fixtures;
+
+class VoidNeverReturnTypeDummy
+{
+    public string $normalProperty = 'value';
+
+    /**
+     * @return string
+     */
+    public function getNormalProperty(): string
+    {
+        return $this->normalProperty;
+    }
+
+    public function getVoidProperty(): void
+    {
+        // This looks like a getter but returns void, should be ignored
+    }
+
+    public function getNeverProperty(): never
+    {
+        // This looks like a getter but returns never, should be ignored
+        throw new \Exception('Never returns');
+    }
+
+    public function setValue(): void
+    {
+        // This looks like a setter but has no parameters, should be ignored as accessor
+    }
+
+    public function setNeverValue(): never
+    {
+        // This looks like a setter but has no parameters and returns never, should be ignored as accessor
+        throw new \Exception('Never returns');
+    }
+}
+
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Type.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Type.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Type.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Type.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,7 +79,7 @@
     public function __construct(string $builtinType, bool $nullable = false, ?string $class = null, bool $collection = false, array|self|null $collectionKeyType = null, array|self|null $collectionValueType = null)
     {
         if (!\in_array($builtinType, self::$builtinTypes)) {
-            throw new \InvalidArgumentException(sprintf('"%s" is not a valid PHP type.', $builtinType));
+            throw new \InvalidArgumentException(\sprintf('"%s" is not a valid PHP type.', $builtinType));
         }
 
         $this->builtinType = $builtinType;
@@ -99,7 +99,7 @@
         if (\is_array($collectionArgument)) {
             foreach ($collectionArgument as $type) {
                 if (!$type instanceof self) {
-                    throw new \TypeError(sprintf('"%s()": Argument #%d (%s) must be of type "%s[]", "%s" or "null", array value "%s" given.', __METHOD__, $argumentIndex, $argumentName, self::class, self::class, get_debug_type($collectionArgument)));
+                    throw new \TypeError(\sprintf('"%s()": Argument #%d (%s) must be of type "%s[]", "%s" or "null", array value "%s" given.', __METHOD__, $argumentIndex, $argumentName, self::class, self::class, get_debug_type($collectionArgument)));
                 }
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Util/PhpDocTypeHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Util/PhpDocTypeHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Util/PhpDocTypeHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Util/PhpDocTypeHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,8 +19,10 @@
 use phpDocumentor\Reflection\Types\Collection;
 use phpDocumentor\Reflection\Types\Compound;
 use phpDocumentor\Reflection\Types\Integer;
+use phpDocumentor\Reflection\Types\Mixed_;
 use phpDocumentor\Reflection\Types\Null_;
 use phpDocumentor\Reflection\Types\Nullable;
+use phpDocumentor\Reflection\Types\Scalar;
 use phpDocumentor\Reflection\Types\String_;
 use Symfony\Component\PropertyInfo\Type;
 
@@ -56,6 +58,15 @@
             $varType = $varType->getActualType();
         }
 
+        if ($varType instanceof Scalar) {
+            return [
+                new Type(Type::BUILTIN_TYPE_BOOL),
+                new Type(Type::BUILTIN_TYPE_FLOAT),
+                new Type(Type::BUILTIN_TYPE_INT),
+                new Type(Type::BUILTIN_TYPE_STRING),
+            ];
+        }
+
         if (!$varType instanceof Compound) {
             if ($varType instanceof Null_) {
                 $nullable = true;
@@ -73,6 +84,10 @@
         for ($typeIndex = 0; $varType->has($typeIndex); ++$typeIndex) {
             $type = $varType->get($typeIndex);
 
+            if ($type instanceof Mixed_) {
+                return [];
+            }
+
             if ($type instanceof ConstExpression) {
                 // It's safer to fall back to other extractors here, as resolving const types correctly is not easy at the moment
                 return [];
@@ -109,6 +124,10 @@
     {
         $docType = (string) $type;
 
+        if ('mixed[]' === $docType) {
+            $docType = 'array';
+        }
+
         if ($type instanceof Collection) {
             $fqsen = $type->getFqsen();
             if ($fqsen && 'list' === $fqsen->getName() && !class_exists(List_::class, false) && !class_exists((string) $fqsen)) {
@@ -118,7 +137,7 @@
 
             [$phpType, $class] = $this->getPhpTypeAndClass((string) $fqsen);
 
-            $collection = \is_a($class, \Traversable::class, true) || \is_a($class, \ArrayAccess::class, true);
+            $collection = is_a($class, \Traversable::class, true) || is_a($class, \ArrayAccess::class, true);
 
             // it's safer to fall back to other extractors if the generic type is too abstract
             if (!$collection && !class_exists($class)) {
@@ -152,19 +171,26 @@
             return new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true, $collectionKeyTypes, $collectionValueTypes);
         }
 
+        $docType = $this->normalizeType($docType);
+        [$phpType, $class] = $this->getPhpTypeAndClass($docType);
+
+        if ('array' === $docType) {
+            return new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true, null, null);
+        }
+
+        if (null === $class) {
+            return new Type($phpType, $nullable, $class);
+        }
+
         if ($type instanceof PseudoType) {
             if ($type->underlyingType() instanceof Integer) {
                 return new Type(Type::BUILTIN_TYPE_INT, $nullable, null);
             } elseif ($type->underlyingType() instanceof String_) {
                 return new Type(Type::BUILTIN_TYPE_STRING, $nullable, null);
             }
-        }
 
-        $docType = $this->normalizeType($docType);
-        [$phpType, $class] = $this->getPhpTypeAndClass($docType);
-
-        if ('array' === $docType) {
-            return new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true, null, null);
+            // It's safer to fall back to other extractors here, as resolving pseudo types correctly is not easy at the moment
+            return null;
         }
 
         return new Type($phpType, $nullable, $class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -125,7 +125,7 @@
                 return [$mainType];
             }
 
-            $collection = $mainType->isCollection() || \is_a($mainType->getClassName(), \Traversable::class, true) || \is_a($mainType->getClassName(), \ArrayAccess::class, true);
+            $collection = $mainType->isCollection() || is_a($mainType->getClassName(), \Traversable::class, true) || is_a($mainType->getClassName(), \ArrayAccess::class, true);
 
             // it's safer to fall back to other extractors if the generic type is too abstract
             if (!$collection && !class_exists($mainType->getClassName()) && !interface_exists($mainType->getClassName(), false)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/CompoundLimiter.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/CompoundLimiter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/CompoundLimiter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/CompoundLimiter.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public function __construct(array $limiters)
     {
         if (!$limiters) {
-            throw new \LogicException(sprintf('"%s::%s()" require at least one limiter.', self::class, __METHOD__));
+            throw new \LogicException(\sprintf('"%s::%s()" require at least one limiter.', self::class, __METHOD__));
         }
         $this->limiters = $limiters;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Exception/ReserveNotSupportedException.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Exception/ReserveNotSupportedException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Exception/ReserveNotSupportedException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Exception/ReserveNotSupportedException.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,6 +18,6 @@
 {
     public function __construct(string $limiterClass, int $code = 0, ?\Throwable $previous = null)
     {
-        parent::__construct(sprintf('Reserving tokens is not supported by "%s".', $limiterClass), $code, $previous);
+        parent::__construct(\sprintf('Reserving tokens is not supported by "%s".', $limiterClass), $code, $previous);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/FixedWindowLimiter.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/FixedWindowLimiter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/FixedWindowLimiter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/FixedWindowLimiter.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
     public function __construct(string $id, int $limit, \DateInterval $interval, StorageInterface $storage, ?LockInterface $lock = null)
     {
         if ($limit < 1) {
-            throw new \InvalidArgumentException(sprintf('Cannot set the limit of "%s" to 0, as that would never accept any hit.', __CLASS__));
+            throw new \InvalidArgumentException(\sprintf('Cannot set the limit of "%s" to 0, as that would never accept any hit.', __CLASS__));
         }
 
         $this->storage = $storage;
@@ -45,7 +45,7 @@
     public function reserve(int $tokens = 1, ?float $maxTime = null): Reservation
     {
         if ($tokens > $this->limit) {
-            throw new \InvalidArgumentException(sprintf('Cannot reserve more tokens (%d) than the size of the rate limiter (%d).', $tokens, $this->limit));
+            throw new \InvalidArgumentException(\sprintf('Cannot reserve more tokens (%d) than the size of the rate limiter (%d).', $tokens, $this->limit));
         }
 
         $this->lock?->acquire(true);
@@ -65,13 +65,18 @@
             } elseif ($availableTokens >= $tokens) {
                 $window->add($tokens, $now);
 
-                $reservation = new Reservation($now, new RateLimit($window->getAvailableTokens($now), \DateTimeImmutable::createFromFormat('U', floor($now)), true, $this->limit));
+                $retryAfter = $now;
+                if ($availableTokens === $tokens) {
+                    $retryAfter += $window->calculateTimeForTokens(1, $now);
+                }
+
+                $reservation = new Reservation($now, new RateLimit($window->getAvailableTokens($now), \DateTimeImmutable::createFromFormat('U', floor($retryAfter)), true, $this->limit));
             } else {
                 $waitDuration = $window->calculateTimeForTokens($tokens, $now);
 
                 if (null !== $maxTime && $waitDuration > $maxTime) {
                     // process needs to wait longer than set interval
-                    throw new MaxWaitDurationExceededException(sprintf('The rate limiter wait time ("%d" seconds) is longer than the provided maximum time ("%d" seconds).', $waitDuration, $maxTime), new RateLimit($window->getAvailableTokens($now), \DateTimeImmutable::createFromFormat('U', floor($now + $waitDuration)), false, $this->limit));
+                    throw new MaxWaitDurationExceededException(\sprintf('The rate limiter wait time ("%d" seconds) is longer than the provided maximum time ("%d" seconds).', $waitDuration, $maxTime), new RateLimit($window->getAvailableTokens($now), \DateTimeImmutable::createFromFormat('U', floor($now + $waitDuration)), false, $this->limit));
                 }
 
                 $window->add($tokens, $now);
@@ -79,7 +84,7 @@
                 $reservation = new Reservation($now + $waitDuration, new RateLimit($window->getAvailableTokens($now), \DateTimeImmutable::createFromFormat('U', floor($now + $waitDuration)), false, $this->limit));
             }
 
-            if (0 < $tokens) {
+            if (0 !== $tokens) {
                 $this->storage->save($window);
             }
         } finally {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/SlidingWindowLimiter.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/SlidingWindowLimiter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/SlidingWindowLimiter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/SlidingWindowLimiter.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
     public function reserve(int $tokens = 1, ?float $maxTime = null): Reservation
     {
         if ($tokens > $this->limit) {
-            throw new \InvalidArgumentException(sprintf('Cannot reserve more tokens (%d) than the size of the rate limiter (%d).', $tokens, $this->limit));
+            throw new \InvalidArgumentException(\sprintf('Cannot reserve more tokens (%d) than the size of the rate limiter (%d).', $tokens, $this->limit));
         }
 
         $this->lock?->acquire(true);
@@ -74,13 +74,18 @@
             if ($availableTokens >= $tokens) {
                 $window->add($tokens);
 
-                $reservation = new Reservation($now, new RateLimit($this->getAvailableTokens($window->getHitCount()), \DateTimeImmutable::createFromFormat('U', floor($now)), true, $this->limit));
+                $retryAfter = $now;
+                if ($availableTokens === $tokens) {
+                    $retryAfter += $window->calculateTimeForTokens($this->limit, $window->getHitCount());
+                }
+
+                $reservation = new Reservation($now, new RateLimit($this->getAvailableTokens($window->getHitCount()), \DateTimeImmutable::createFromFormat('U', floor($retryAfter)), true, $this->limit));
             } else {
                 $waitDuration = $window->calculateTimeForTokens($this->limit, $tokens);
 
                 if (null !== $maxTime && $waitDuration > $maxTime) {
                     // process needs to wait longer than set interval
-                    throw new MaxWaitDurationExceededException(sprintf('The rate limiter wait time ("%d" seconds) is longer than the provided maximum time ("%d" seconds).', $waitDuration, $maxTime), new RateLimit($this->getAvailableTokens($window->getHitCount()), \DateTimeImmutable::createFromFormat('U', floor($now + $waitDuration)), false, $this->limit));
+                    throw new MaxWaitDurationExceededException(\sprintf('The rate limiter wait time ("%d" seconds) is longer than the provided maximum time ("%d" seconds).', $waitDuration, $maxTime), new RateLimit($this->getAvailableTokens($window->getHitCount()), \DateTimeImmutable::createFromFormat('U', floor($now + $waitDuration)), false, $this->limit));
                 }
 
                 $window->add($tokens);
@@ -88,7 +93,7 @@
                 $reservation = new Reservation($now + $waitDuration, new RateLimit($this->getAvailableTokens($window->getHitCount()), \DateTimeImmutable::createFromFormat('U', floor($now + $waitDuration)), false, $this->limit));
             }
 
-            if (0 < $tokens) {
+            if (0 !== $tokens) {
                 $this->storage->save($window);
             }
         } finally {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/SlidingWindow.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/SlidingWindow.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/SlidingWindow.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/SlidingWindow.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function __construct(string $id, int $intervalInSeconds)
     {
         if ($intervalInSeconds < 1) {
-            throw new InvalidIntervalException(sprintf('The interval must be positive integer, "%d" given.', $intervalInSeconds));
+            throw new InvalidIntervalException(\sprintf('The interval must be positive integer, "%d" given.', $intervalInSeconds));
         }
         $this->id = $id;
         $this->intervalInSeconds = $intervalInSeconds;
@@ -70,7 +70,7 @@
 
     public function add(int $hits = 1): void
     {
-        $this->hitCount += $hits;
+        $this->hitCount = max(0, $this->hitCount + $hits);
     }
 
     /**
@@ -91,7 +91,7 @@
     {
         trigger_deprecation('symfony/ratelimiter', '6.4', 'The "%s()" method is deprecated, use "%s::calculateTimeForTokens" instead.', __METHOD__, self::class);
 
-        return \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', microtime(true) + $this->calculateTimeForTokens(max(1, $this->getHitCount()), 1)));
+        return \DateTimeImmutable::createFromFormat('U.u', \sprintf('%.6F', microtime(true) + $this->calculateTimeForTokens(max(1, $this->getHitCount()), 1)));
     }
 
     public function calculateTimeForTokens(int $maxSize, int $tokens): float
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/TokenBucketLimiter.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/TokenBucketLimiter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/TokenBucketLimiter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/TokenBucketLimiter.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
     public function reserve(int $tokens = 1, ?float $maxTime = null): Reservation
     {
         if ($tokens > $this->maxBurst) {
-            throw new \InvalidArgumentException(sprintf('Cannot reserve more tokens (%d) than the burst size of the rate limiter (%d).', $tokens, $this->maxBurst));
+            throw new \InvalidArgumentException(\sprintf('Cannot reserve more tokens (%d) than the burst size of the rate limiter (%d).', $tokens, $this->maxBurst));
         }
 
         $this->lock?->acquire(true);
@@ -75,16 +75,12 @@
                 // tokens are now available, update bucket
                 $bucket->setTokens($availableTokens - $tokens);
 
-                if (0 === $availableTokens) {
-                    // This means 0 tokens where consumed (discouraged in most cases).
-                    // Return the first time a new token is available
-                    $waitDuration = $this->rate->calculateTimeForTokens(1);
-                    $waitTime = \DateTimeImmutable::createFromFormat('U', floor($now + $waitDuration));
-                } else {
-                    $waitTime = \DateTimeImmutable::createFromFormat('U', floor($now));
+                $retryAfter = $now;
+                if ($availableTokens === $tokens) {
+                    $retryAfter += $this->rate->calculateTimeForTokens(1);
                 }
 
-                $reservation = new Reservation($now, new RateLimit($bucket->getAvailableTokens($now), $waitTime, true, $this->maxBurst));
+                $reservation = new Reservation($now, new RateLimit($bucket->getAvailableTokens($now), \DateTimeImmutable::createFromFormat('U', floor($retryAfter)), true, $this->maxBurst));
             } else {
                 $remainingTokens = $tokens - $availableTokens;
                 $waitDuration = $this->rate->calculateTimeForTokens($remainingTokens);
@@ -93,7 +89,7 @@
                     // process needs to wait longer than set interval
                     $rateLimit = new RateLimit($availableTokens, \DateTimeImmutable::createFromFormat('U', floor($now + $waitDuration)), false, $this->maxBurst);
 
-                    throw new MaxWaitDurationExceededException(sprintf('The rate limiter wait time ("%d" seconds) is longer than the provided maximum time ("%d" seconds).', $waitDuration, $maxTime), $rateLimit);
+                    throw new MaxWaitDurationExceededException(\sprintf('The rate limiter wait time ("%d" seconds) is longer than the provided maximum time ("%d" seconds).', $waitDuration, $maxTime), $rateLimit);
                 }
 
                 // at $now + $waitDuration all tokens will be reserved for this process,
@@ -103,7 +99,7 @@
                 $reservation = new Reservation($now + $waitDuration, new RateLimit(0, \DateTimeImmutable::createFromFormat('U', floor($now + $waitDuration)), false, $this->maxBurst));
             }
 
-            if (0 < $tokens) {
+            if (0 !== $tokens) {
                 $this->storage->save($bucket);
             }
         } finally {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/TokenBucket.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/TokenBucket.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/TokenBucket.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/TokenBucket.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
     public function __construct(string $id, int $initialTokens, Rate $rate, ?float $timer = null)
     {
         if ($initialTokens < 1) {
-            throw new \InvalidArgumentException(sprintf('Cannot set the limit of "%s" to 0, as that would never accept any hit.', TokenBucketLimiter::class));
+            throw new \InvalidArgumentException(\sprintf('Cannot set the limit of "%s" to 0, as that would never accept any hit.', TokenBucketLimiter::class));
         }
 
         $this->id = $id;
@@ -78,7 +78,12 @@
 
     public function getExpirationTime(): int
     {
-        return $this->rate->calculateTimeForTokens($this->burstSize);
+        // The bucket must persist long enough to cover both a natural refill
+        // back to the burst size and any outstanding reservation debt — the
+        // latter is tracked by a negative token count. Evicting early would
+        // lose the debt and let a fresh bucket hand out already-reserved
+        // tokens.
+        return $this->rate->calculateTimeForTokens(max($this->burstSize, $this->burstSize - $this->tokens));
     }
 
     public function __serialize(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/Window.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/Window.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Policy/Window.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Policy/Window.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,19 +41,22 @@
 
     public function getExpirationTime(): ?int
     {
-        return $this->intervalInSeconds;
+        // Keep the entry alive long enough for any reservation debt to be
+        // carried forward, otherwise resets that span an idle interval would
+        // re-issue the borrowed tokens and silently double the rate.
+        return $this->intervalInSeconds * max(1, (int) ceil($this->hitCount / $this->maxSize));
     }
 
     public function add(int $hits = 1, ?float $now = null): void
     {
         $now ??= microtime(true);
         if (($now - $this->timer) > $this->intervalInSeconds) {
-            // reset window
+            // carry any reservation debt forward instead of zeroing it
+            $this->hitCount = $this->getCarriedHitCount($now);
             $this->timer = $now;
-            $this->hitCount = 0;
         }
 
-        $this->hitCount += $hits;
+        $this->hitCount = max(0, $this->hitCount + $hits);
     }
 
     public function getHitCount(): int
@@ -63,12 +66,25 @@
 
     public function getAvailableTokens(float $now): int
     {
-        // if now is more than the window interval in the past, all tokens are available
-        if (($now - $this->timer) > $this->intervalInSeconds) {
-            return $this->maxSize;
+        return $this->maxSize - $this->getCarriedHitCount($now);
+    }
+
+    /**
+     * Returns the hit count after virtually applying any window resets that
+     * have occurred between $this->timer and $now, carrying over reservations
+     * that exceed the previous window's capacity (debt borrowed from future
+     * windows via reserve()).
+     */
+    private function getCarriedHitCount(float $now): int
+    {
+        $elapsed = $now - $this->timer;
+        if ($elapsed <= $this->intervalInSeconds) {
+            return $this->hitCount;
         }
 
-        return $this->maxSize - $this->hitCount;
+        $windowsElapsed = (int) ($elapsed / $this->intervalInSeconds);
+
+        return max(0, $this->hitCount - $windowsElapsed * $this->maxSize);
     }
 
     public function calculateTimeForTokens(int $tokens, float $now): int
@@ -77,7 +93,9 @@
             return 0;
         }
 
-        return (int) ceil($this->timer + $this->intervalInSeconds - $now);
+        $inWindow = (int) ceil(($this->hitCount + $tokens) / $this->maxSize) - 1;
+
+        return (int) ceil($this->timer + ($this->intervalInSeconds * $inWindow) - $now);
     }
 
     public function __serialize(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/RateLimiterFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/RateLimiterFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/RateLimiterFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/RateLimiterFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,11 +51,11 @@
             'fixed_window' => new FixedWindowLimiter($id, $this->config['limit'], $this->config['interval'], $this->storage, $lock),
             'sliding_window' => new SlidingWindowLimiter($id, $this->config['limit'], $this->config['interval'], $this->storage, $lock),
             'no_limit' => new NoLimiter(),
-            default => throw new \LogicException(sprintf('Limiter policy "%s" does not exists, it must be either "token_bucket", "sliding_window", "fixed_window" or "no_limit".', $this->config['policy'])),
+            default => throw new \LogicException(\sprintf('Limiter policy "%s" does not exists, it must be either "token_bucket", "sliding_window", "fixed_window" or "no_limit".', $this->config['policy'])),
         };
     }
 
-    protected static function configureOptions(OptionsResolver $options): void
+    private static function configureOptions(OptionsResolver $options): void
     {
         $intervalNormalizer = static function (Options $options, string $interval): \DateInterval {
             // Create DateTimeImmutable from unix timesatmp, so the default timezone is ignored and we don't need to
@@ -63,13 +63,13 @@
             $now = \DateTimeImmutable::createFromFormat('U', time());
 
             try {
-                $nowPlusInterval = @$now->modify('+' . $interval);
+                $nowPlusInterval = @$now->modify('+'.$interval);
             } catch (\DateMalformedStringException $e) {
-                throw new \LogicException(\sprintf('Cannot parse interval "%s", please use a valid unit as described on https://www.php.net/datetime.formats.relative.', $interval), 0, $e);
+                throw new \LogicException(\sprintf('Cannot parse interval "%s", please use a valid unit as described on https://php.net/datetime.formats#datetime.formats.relative', $interval), 0, $e);
             }
 
             if (!$nowPlusInterval) {
-                throw new \LogicException(\sprintf('Cannot parse interval "%s", please use a valid unit as described on https://www.php.net/datetime.formats.relative.', $interval));
+                throw new \LogicException(\sprintf('Cannot parse interval "%s", please use a valid unit as described on https://php.net/datetime.formats#datetime.formats.relative', $interval));
             }
 
             return $now->diff($nowPlusInterval);
@@ -84,13 +84,13 @@
             ->define('limit')->allowedTypes('int')
             ->define('interval')->allowedTypes('string')->normalize($intervalNormalizer)
             ->define('rate')
-                ->default(function (OptionsResolver $rate) use ($intervalNormalizer) {
+                ->default(static function (OptionsResolver $rate) use ($intervalNormalizer) {
                     $rate
                         ->define('amount')->allowedTypes('int')->default(1)
                         ->define('interval')->allowedTypes('string')->normalize($intervalNormalizer)
                     ;
                 })
-                ->normalize(function (Options $options, $value) {
+                ->normalize(static function (Options $options, $value) {
                     if (!isset($value['interval'])) {
                         return null;
                     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Tests/LimiterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Tests/LimiterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Tests/LimiterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Tests/LimiterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
     public function testWrongInterval()
     {
         $this->expectException(\LogicException::class);
-        $this->expectExceptionMessage('Cannot parse interval "1 minut", please use a valid unit as described on https://www.php.net/datetime.formats.relative.');
+        $this->expectExceptionMessage('Cannot parse interval "1 minut", please use a valid unit as described on https://php.net/datetime.formats#datetime.formats.relative');
 
         $this->createFactory([
             'id' => 'test',
@@ -61,6 +61,6 @@
 
     private function createFactory(array $options)
     {
-        return new RateLimiterFactory($options, $this->createMock(StorageInterface::class), $this->createMock(LockFactory::class));
+        return new RateLimiterFactory($options, $this->createStub(StorageInterface::class), $this->createStub(LockFactory::class));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/FixedWindowLimiterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/FixedWindowLimiterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/FixedWindowLimiterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/FixedWindowLimiterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,6 +33,8 @@
 
         ClockMock::register(InMemoryStorage::class);
         ClockMock::register(RateLimit::class);
+        ClockMock::register(Window::class);
+        ClockMock::register(FixedWindowLimiter::class);
     }
 
     public function testConsume()
@@ -57,6 +59,21 @@
         $this->assertEquals($retryAfter, $rateLimit->getRetryAfter());
     }
 
+    public function testConsumeLastToken()
+    {
+        $now = time();
+        $limiter = $this->createLimiter();
+        $limiter->consume(9);
+
+        $rateLimit = $limiter->consume(1);
+        $this->assertSame(0, $rateLimit->getRemainingTokens());
+        $this->assertTrue($rateLimit->isAccepted());
+        $this->assertEquals(
+            \DateTimeImmutable::createFromFormat('U', $now + 60),
+            $rateLimit->getRetryAfter()
+        );
+    }
+
     /**
      * @dataProvider provideConsumeOutsideInterval
      */
@@ -76,6 +93,48 @@
         $this->assertTrue($rateLimit->isAccepted());
     }
 
+    public function testReserveOutsideWindow()
+    {
+        $limiter = $this->createLimiter();
+
+        // initial reserve
+        $limiter->reserve(10);
+
+        // Reserve the first window and the second window
+        $firstReservation = $limiter->reserve(10);
+        $secondReservation = $limiter->reserve(10);
+
+        $this->assertFalse($firstReservation->getRateLimit()->isAccepted());
+        $this->assertFalse($secondReservation->getRateLimit()->isAccepted());
+        $this->assertEquals(60, ceil($firstReservation->getWaitDuration()));
+        $this->assertEquals(120, ceil($secondReservation->getWaitDuration()));
+    }
+
+    public function testReservePartiallyFilledWindow()
+    {
+        $limiter = $this->createLimiter();
+
+        $limiter->reserve(10);
+        $first = $limiter->reserve(5);
+        $second = $limiter->reserve(3);
+        $third = $limiter->reserve(5);
+
+        $this->assertEquals(60, ceil($first->getWaitDuration()));
+        // 3 more tokens still fit in the second window (5 + 3 = 8 <= 10)
+        $this->assertEquals(60, ceil($second->getWaitDuration()));
+        // these 5 tokens overflow into the third window (8 + 5 = 13 > 10)
+        $this->assertEquals(120, ceil($third->getWaitDuration()));
+    }
+
+    public function testReserveExactlyAvailable()
+    {
+        $limiter = $this->createLimiter('PT1S');
+
+        $this->assertEquals(0, $limiter->reserve(5)->getWaitDuration());
+        $this->assertEquals(0, $limiter->reserve(5)->getWaitDuration());
+        $this->assertEquals(1, $limiter->reserve(5)->getWaitDuration());
+    }
+
     public function testWaitIntervalOnConsumeOverLimit()
     {
         $limiter = $this->createLimiter();
@@ -112,6 +171,95 @@
         $this->assertSame(100, $window->getAvailableTokens($serverOneClock));
     }
 
+    public function testWindowCarriesOverReservedTokensAfterReset()
+    {
+        $now = microtime(true);
+        $window = new Window('id', 10, 10, $now);
+
+        // 15 hits = 5 borrowed from the next window
+        $window->add(15, $now);
+        $this->assertSame(15, $window->getHitCount());
+
+        // After one window has elapsed, the 5-token debt must remain instead of being zeroed out
+        $window->add(0, $now + 11);
+        $this->assertSame(5, $window->getHitCount());
+
+        // A second elapsed window clears the remaining debt
+        $window->add(0, $now + 22);
+        $this->assertSame(0, $window->getHitCount());
+    }
+
+    public function testWindowClearsLargeDebtWhenManyWindowsElapse()
+    {
+        $now = microtime(true);
+        $window = new Window('id', 10, 10, $now);
+
+        // 25 hits = 2 full windows of debt + 5
+        $window->add(25, $now);
+        $this->assertSame(25, $window->getHitCount());
+
+        // 35s later, three windows have elapsed (3 * 10 = 30 tokens recovered)
+        $window->add(0, $now + 35);
+        $this->assertSame(0, $window->getHitCount());
+    }
+
+    public function testWindowAvailableTokensAccountsForCarriedDebt()
+    {
+        $now = microtime(true);
+        $window = new Window('id', 10, 10, $now);
+
+        // 15 hits = 5 borrowed from the next window
+        $window->add(15, $now);
+
+        // Inside the current window, 0 tokens are available
+        $this->assertSame(-5, $window->getAvailableTokens($now));
+
+        // After one window has elapsed, only 5 tokens are free (debt subtracted)
+        $this->assertSame(5, $window->getAvailableTokens($now + 11));
+
+        // After two windows, all 10 tokens are free
+        $this->assertSame(10, $window->getAvailableTokens($now + 22));
+    }
+
+    public function testReservedTokensCarryAcrossWindowBoundaryViaStorage()
+    {
+        $limiter = new FixedWindowLimiter('test', 10, new \DateInterval('PT10S'), $this->storage);
+
+        // Window 1: A consumes 8, B reserves 7 — borrows 5 tokens from window 2
+        $this->assertEqualsWithDelta(0.0, $limiter->reserve(8)->getWaitDuration(), 1.0);
+        $this->assertEqualsWithDelta(10.0, $limiter->reserve(7)->getWaitDuration(), 1.0);
+
+        // Cross the window boundary while staying idle. The storage entry must
+        // outlive the bare interval so the carried 5-token debt persists.
+        sleep(11);
+
+        // Only 5 fresh tokens should be available in window 2 — consuming 6 must throttle
+        $this->assertFalse($limiter->consume(6)->isAccepted());
+
+        // Consuming exactly 5 must succeed and leave the window full
+        $rateLimit = $limiter->consume(5);
+        $this->assertTrue($rateLimit->isAccepted());
+        $this->assertSame(0, $rateLimit->getRemainingTokens());
+    }
+
+    public function testWindowExpirationGrowsWithCarriedDebt()
+    {
+        $now = microtime(true);
+        $window = new Window('id', 10, 10, $now);
+
+        // No hits yet — TTL is one interval, just to cover the current window
+        $this->assertSame(10, $window->getExpirationTime());
+
+        // 15 hits = 5 debt; entry must outlive 1 extra interval to carry it forward
+        $window->add(15, $now);
+        $this->assertSame(20, $window->getExpirationTime());
+
+        // 25 hits = 15 debt; needs 2 extra intervals
+        $window = new Window('id', 10, 10, $now);
+        $window->add(25, $now);
+        $this->assertSame(30, $window->getExpirationTime());
+    }
+
     public function testPeekConsume()
     {
         $limiter = $this->createLimiter();
@@ -140,6 +288,23 @@
         );
     }
 
+    public function testNegativeConsume()
+    {
+        $limiter = $this->createLimiter();
+
+        // negative consume without previous hits should have no effect
+        $rateLimit = $limiter->consume(-1);
+        $this->assertEquals(10, $rateLimit->getRemainingTokens());
+
+        $limiter->consume(10);
+
+        for ($i = 1; $i <= 3; ++$i) {
+            $rateLimit = $limiter->consume(-1);
+            $this->assertEquals($i, $rateLimit->getRemainingTokens());
+            $this->assertTrue($rateLimit->isAccepted());
+        }
+    }
+
     public static function provideConsumeOutsideInterval(): \Generator
     {
         yield ['PT15S'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/SlidingWindowLimiterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/SlidingWindowLimiterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/SlidingWindowLimiterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/SlidingWindowLimiterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,6 +70,20 @@
         $this->assertTrue($limiter->consume()->isAccepted());
     }
 
+    public function testConsumeLastToken()
+    {
+        $limiter = $this->createLimiter();
+        $limiter->consume(9);
+
+        $rateLimit = $limiter->consume(1);
+        $this->assertSame(0, $rateLimit->getRemainingTokens());
+        $this->assertTrue($rateLimit->isAccepted());
+        $this->assertEquals(
+            \DateTimeImmutable::createFromFormat('U', (string) floor(microtime(true) + 12)),
+            $rateLimit->getRetryAfter()
+        );
+    }
+
     public function testReserve()
     {
         $limiter = $this->createLimiter();
@@ -110,6 +124,23 @@
         );
     }
 
+    public function testNegativeConsume()
+    {
+        $limiter = $this->createLimiter();
+
+        // negative consume without previous hits should have no effect
+        $rateLimit = $limiter->consume(-1);
+        $this->assertEquals(10, $rateLimit->getRemainingTokens());
+
+        $limiter->consume(10);
+
+        for ($i = 1; $i <= 3; ++$i) {
+            $rateLimit = $limiter->consume(-1);
+            $this->assertEquals($i, $rateLimit->getRemainingTokens());
+            $this->assertTrue($rateLimit->isAccepted());
+        }
+    }
+
     private function createLimiter(): SlidingWindowLimiter
     {
         return new SlidingWindowLimiter('test', 10, new \DateInterval('PT12S'), $this->storage);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/TokenBucketLimiterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/TokenBucketLimiterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/TokenBucketLimiterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Tests/Policy/TokenBucketLimiterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -103,6 +103,35 @@
         $this->assertSame(10, $rateLimit->getLimit());
     }
 
+    public function testConsumeLastToken()
+    {
+        $rate = Rate::perSecond(1);
+        $limiter = $this->createLimiter(10, $rate);
+
+        $rateLimit = $limiter->consume(10);
+        $this->assertSame(0, $rateLimit->getRemainingTokens());
+        $this->assertTrue($rateLimit->isAccepted());
+        $this->assertEqualsWithDelta(time(), $rateLimit->getRetryAfter()->getTimestamp(), 10);
+    }
+
+    public function testConsumeZeroTokens()
+    {
+        $rate = Rate::perSecond(1);
+        $limiter = $this->createLimiter(10, $rate);
+
+        $rateLimit = $limiter->consume(0);
+        $this->assertTrue($rateLimit->isAccepted());
+        $this->assertEquals(time(), $rateLimit->getRetryAfter()->getTimestamp());
+
+        $limiter->reset();
+        $limiter->consume(10);
+
+        $rateLimit = $limiter->consume(0);
+        $this->assertTrue($rateLimit->isAccepted());
+        // no tokens available, retryAfter should point to when the next token regenerates
+        $this->assertEqualsWithDelta(time() + 1, $rateLimit->getRetryAfter()->getTimestamp(), 1);
+    }
+
     public function testWaitIntervalOnConsumeOverLimit()
     {
         $limiter = $this->createLimiter();
@@ -168,6 +197,23 @@
         );
     }
 
+    public function testNegativeConsume()
+    {
+        $limiter = $this->createLimiter();
+
+        // negative consume without previous hits should have no effect
+        $rateLimit = $limiter->consume(-1);
+        $this->assertEquals(10, $rateLimit->getRemainingTokens());
+
+        $limiter->consume(10);
+
+        for ($i = 1; $i <= 3; ++$i) {
+            $rateLimit = $limiter->consume(-1);
+            $this->assertEquals($i, $rateLimit->getRemainingTokens());
+            $this->assertTrue($rateLimit->isAccepted());
+        }
+    }
+
     public function testBucketRefilledWithStrictFrequency()
     {
         $limiter = $this->createLimiter(1000, new Rate(\DateInterval::createFromDateString('15 seconds'), 100));
@@ -194,6 +240,21 @@
         }
     }
 
+    public function testReservationDebtSurvivesCacheExpiration()
+    {
+        $rate = new Rate(\DateInterval::createFromDateString('10 seconds'), 10);
+        $limiter = $this->createLimiter(10, $rate);
+
+        $limiter->consume(10);
+
+        $this->assertEquals(10, $limiter->reserve(1)->getWaitDuration());
+
+        sleep(11);
+
+        $this->assertEquals(0, $limiter->reserve(9)->getWaitDuration());
+        $this->assertEquals(10, $limiter->reserve(1)->getWaitDuration());
+    }
+
     private function createLimiter($initialTokens = 10, ?Rate $rate = null)
     {
         return new TokenBucketLimiter('test', $initialTokens, $rate ?? Rate::perSecond(10), $this->storage);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Tests/Storage/CacheStorageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Tests/Storage/CacheStorageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RateLimiter/Tests/Storage/CacheStorageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RateLimiter/Tests/Storage/CacheStorageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\RateLimiter\Tests\Storage;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Psr\Cache\CacheItemInterface;
 use Psr\Cache\CacheItemPoolInterface;
@@ -20,68 +19,76 @@
 
 class CacheStorageTest extends TestCase
 {
-    private MockObject&CacheItemPoolInterface $pool;
-    private CacheStorage $storage;
-
-    protected function setUp(): void
-    {
-        $this->pool = $this->createMock(CacheItemPoolInterface::class);
-        $this->storage = new CacheStorage($this->pool);
-    }
-
     public function testSave()
     {
+        $pool = $this->createMock(CacheItemPoolInterface::class);
+        $storage = new CacheStorage($pool);
+
         $cacheItem = $this->createMock(CacheItemInterface::class);
         $cacheItem->expects($this->exactly(2))->method('expiresAfter')->with(10);
 
-        $this->pool->expects($this->any())->method('getItem')->with(sha1('test'))->willReturn($cacheItem);
-        $this->pool->expects($this->exactly(2))->method('save')->with($cacheItem);
+        $pool->method('getItem')->willReturnMap([
+            [sha1('test'), $cacheItem],
+        ]);
+        $pool->expects($this->exactly(2))->method('save')->with($cacheItem);
 
         $window = new Window('test', 10, 20);
-        $this->storage->save($window);
+        $storage->save($window);
 
         $window = unserialize(serialize($window));
-        $this->storage->save($window);
+        $storage->save($window);
     }
 
     public function testFetchExistingState()
     {
-        $cacheItem = $this->createMock(CacheItemInterface::class);
+        $pool = $this->createStub(CacheItemPoolInterface::class);
+        $storage = new CacheStorage($pool);
+
+        $cacheItem = $this->createStub(CacheItemInterface::class);
         $window = new Window('test', 10, 20);
-        $cacheItem->expects($this->any())->method('get')->willReturn($window);
-        $cacheItem->expects($this->any())->method('isHit')->willReturn(true);
+        $cacheItem->method('get')->willReturn($window);
+        $cacheItem->method('isHit')->willReturn(true);
 
-        $this->pool->expects($this->any())->method('getItem')->with(sha1('test'))->willReturn($cacheItem);
+        $pool->method('getItem')->with(sha1('test'))->willReturn($cacheItem);
 
-        $this->assertEquals($window, $this->storage->fetch('test'));
+        $this->assertEquals($window, $storage->fetch('test'));
     }
 
     public function testFetchExistingJunk()
     {
-        $cacheItem = $this->createMock(CacheItemInterface::class);
+        $pool = $this->createStub(CacheItemPoolInterface::class);
+        $storage = new CacheStorage($pool);
+
+        $cacheItem = $this->createStub(CacheItemInterface::class);
 
-        $cacheItem->expects($this->any())->method('get')->willReturn('junk');
-        $cacheItem->expects($this->any())->method('isHit')->willReturn(true);
+        $cacheItem->method('get')->willReturn('junk');
+        $cacheItem->method('isHit')->willReturn(true);
 
-        $this->pool->expects($this->any())->method('getItem')->with(sha1('test'))->willReturn($cacheItem);
+        $pool->method('getItem')->with(sha1('test'))->willReturn($cacheItem);
 
-        $this->assertNull($this->storage->fetch('test'));
+        $this->assertNull($storage->fetch('test'));
     }
 
     public function testFetchNonExistingState()
     {
-        $cacheItem = $this->createMock(CacheItemInterface::class);
-        $cacheItem->expects($this->any())->method('isHit')->willReturn(false);
+        $pool = $this->createStub(CacheItemPoolInterface::class);
+        $storage = new CacheStorage($pool);
+
+        $cacheItem = $this->createStub(CacheItemInterface::class);
+        $cacheItem->method('isHit')->willReturn(false);
 
-        $this->pool->expects($this->any())->method('getItem')->with(sha1('test'))->willReturn($cacheItem);
+        $pool->method('getItem')->with(sha1('test'))->willReturn($cacheItem);
 
-        $this->assertNull($this->storage->fetch('test'));
+        $this->assertNull($storage->fetch('test'));
     }
 
     public function testDelete()
     {
-        $this->pool->expects($this->once())->method('deleteItem')->with(sha1('test'))->willReturn(true);
+        $pool = $this->createMock(CacheItemPoolInterface::class);
+        $storage = new CacheStorage($pool);
+
+        $pool->expects($this->once())->method('deleteItem')->with(sha1('test'))->willReturn(true);
 
-        $this->storage->delete('test');
+        $storage->delete('test');
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/RemoteEvent/Messenger/ConsumeRemoteEventHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/RemoteEvent/Messenger/ConsumeRemoteEventHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/RemoteEvent/Messenger/ConsumeRemoteEventHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/RemoteEvent/Messenger/ConsumeRemoteEventHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,12 +28,12 @@
     public function __invoke(ConsumeRemoteEventMessage $message): void
     {
         if (!$this->consumers->has($message->getType())) {
-            throw new LogicException(sprintf('Unable to find a consumer for message of type "%s".', $message->getType()));
+            throw new LogicException(\sprintf('Unable to find a consumer for message of type "%s".', $message->getType()));
         }
         $consumer = $this->consumers->get($message->getType());
 
         if (!$consumer instanceof ConsumerInterface) {
-            throw new LogicException(sprintf('The consumer "%s" for message of type "%s" must implement "%s".', get_debug_type($consumer), $message->getType(), ConsumerInterface::class));
+            throw new LogicException(\sprintf('The consumer "%s" for message of type "%s" must implement "%s".', get_debug_type($consumer), $message->getType(), ConsumerInterface::class));
         }
 
         $consumer->consume($message->getEvent());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Attribute/Route.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Attribute/Route.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Attribute/Route.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Attribute/Route.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
         ?string $format = null,
         ?bool $utf8 = null,
         ?bool $stateless = null,
-        private ?string $env = null
+        private ?string $env = null,
     ) {
         if (\is_array($path)) {
             $this->localizedPaths = $path;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Exception/MissingMandatoryParametersException.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Exception/MissingMandatoryParametersException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Exception/MissingMandatoryParametersException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Exception/MissingMandatoryParametersException.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
         if (\is_array($missingParameters)) {
             $this->routeName = $routeName;
             $this->missingParameters = $missingParameters;
-            $message = sprintf('Some mandatory parameters are missing ("%s") to generate a URL for route "%s".', implode('", "', $missingParameters), $routeName);
+            $message = \sprintf('Some mandatory parameters are missing ("%s") to generate a URL for route "%s".', implode('", "', $missingParameters), $routeName);
         } else {
             trigger_deprecation('symfony/routing', '6.1', 'Construction of "%s" with an exception message is deprecated, provide the route name and an array of missing parameters instead.', __CLASS__);
             $message = $routeName;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Exception/RouteCircularReferenceException.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Exception/RouteCircularReferenceException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Exception/RouteCircularReferenceException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Exception/RouteCircularReferenceException.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,6 @@
 {
     public function __construct(string $routeId, array $path)
     {
-        parent::__construct(sprintf('Circular reference detected for route "%s", path: "%s".', $routeId, implode(' -> ', $path)));
+        parent::__construct(\sprintf('Circular reference detected for route "%s", path: "%s".', $routeId, implode(' -> ', $path)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Generator/CompiledUrlGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Generator/CompiledUrlGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Generator/CompiledUrlGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Generator/CompiledUrlGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
         }
 
         if (!isset($this->compiledRoutes[$name])) {
-            throw new RouteNotFoundException(sprintf('Unable to generate a URL for the named route "%s" as such route does not exist.', $name));
+            throw new RouteNotFoundException(\sprintf('Unable to generate a URL for the named route "%s" as such route does not exist.', $name));
         }
 
         [$variables, $defaults, $requirements, $tokens, $hostTokens, $requiredSchemes, $deprecations] = $this->compiledRoutes[$name] + [6 => []];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Generator/Dumper/CompiledUrlGeneratorDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Generator/Dumper/CompiledUrlGeneratorDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Generator/Dumper/CompiledUrlGeneratorDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Generator/Dumper/CompiledUrlGeneratorDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -69,7 +69,7 @@
             }
 
             if (null === $target = $routes->get($currentId)) {
-                throw new RouteNotFoundException(sprintf('Target route "%s" for alias "%s" does not exist.', $currentId, $name));
+                throw new RouteNotFoundException(\sprintf('Target route "%s" for alias "%s" does not exist.', $currentId, $name));
             }
 
             $compiledTarget = $target->compile();
@@ -91,14 +91,14 @@
     public function dump(array $options = []): string
     {
         return <<<EOF
-<?php
+            <?php
 
-// This file has been auto-generated by the Symfony Routing Component.
+            // This file has been auto-generated by the Symfony Routing Component.
 
-return [{$this->generateDeclaredRoutes()}
-];
+            return [{$this->generateDeclaredRoutes()}
+            ];
 
-EOF;
+            EOF;
     }
 
     /**
@@ -109,11 +109,11 @@
     {
         $routes = '';
         foreach ($this->getCompiledRoutes() as $name => $properties) {
-            $routes .= sprintf("\n    '%s' => %s,", $name, CompiledUrlMatcherDumper::export($properties));
+            $routes .= \sprintf("\n    '%s' => %s,", $name, CompiledUrlMatcherDumper::export($properties));
         }
 
         foreach ($this->getCompiledAliases() as $alias => $properties) {
-            $routes .= sprintf("\n    '%s' => %s,", $alias, CompiledUrlMatcherDumper::export($properties));
+            $routes .= \sprintf("\n    '%s' => %s,", $alias, CompiledUrlMatcherDumper::export($properties));
         }
 
         return $routes;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Generator/UrlGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Generator/UrlGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Generator/UrlGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Generator/UrlGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -131,7 +131,7 @@
         }
 
         if (null === $route ??= $this->routes->get($name)) {
-            throw new RouteNotFoundException(sprintf('Unable to generate a URL for the named route "%s" as such route does not exist.', $name));
+            throw new RouteNotFoundException(\sprintf('Unable to generate a URL for the named route "%s" as such route does not exist.', $name));
         }
 
         // the Route has a cache of its own and is not recompiled as long as it does not get modified
@@ -177,7 +177,7 @@
 
                 if (!$optional || $important || !\array_key_exists($varName, $defaults) || (null !== $mergedParams[$varName] && (string) $mergedParams[$varName] !== (string) $defaults[$varName])) {
                     // check requirement (while ignoring look-around patterns)
-                    if (null !== $this->strictRequirements && !preg_match('#^'.preg_replace('/\(\?(?:=|<=|!|<!)((?:[^()\\\\]+|\\\\.|\((?1)\))*)\)/', '', $token[2]).'$#i'.(empty($token[4]) ? '' : 'u'), $mergedParams[$token[3]] ?? '')) {
+                    if (null !== $this->strictRequirements && !preg_match('#^(?:'.preg_replace('/\(\?(?:=|<=|!|<!)((?:[^()\\\\]+|\\\\.|\((?1)\))*)\)/', '', $token[2]).')$#i'.(empty($token[4]) ? '' : 'u'), $mergedParams[$token[3]] ?? '')) {
                         if ($this->strictRequirements) {
                             throw new InvalidParameterException(strtr($message, ['{parameter}' => $varName, '{route}' => $name, '{expected}' => $token[2], '{given}' => $mergedParams[$varName]]));
                         }
@@ -230,7 +230,7 @@
             foreach ($hostTokens as $token) {
                 if ('variable' === $token[0]) {
                     // check requirement (while ignoring look-around patterns)
-                    if (null !== $this->strictRequirements && !preg_match('#^'.preg_replace('/\(\?(?:=|<=|!|<!)((?:[^()\\\\]+|\\\\.|\((?1)\))*)\)/', '', $token[2]).'$#i'.(empty($token[4]) ? '' : 'u'), $mergedParams[$token[3]])) {
+                    if (null !== $this->strictRequirements && !preg_match('#^(?:'.preg_replace('/\(\?(?:=|<=|!|<!)((?:[^()\\\\]+|\\\\.|\((?1)\))*)\)/', '', $token[2]).')$#i'.(empty($token[4]) ? '' : 'u'), $mergedParams[$token[3]])) {
                         if ($this->strictRequirements) {
                             throw new InvalidParameterException(strtr($message, ['{parameter}' => $token[3], '{route}' => $name, '{expected}' => $token[2], '{given}' => $mergedParams[$token[3]]]));
                         }
@@ -275,7 +275,7 @@
         }
 
         // add a query string if needed
-        $extra = array_udiff_assoc(array_diff_key($parameters, $variables), $defaults, fn ($a, $b) => $a == $b ? 0 : 1);
+        $extra = array_udiff_assoc(array_diff_key($parameters, $variables), $defaults, static fn ($a, $b) => $a == $b ? 0 : 1);
 
         array_walk_recursive($extra, $caster = static function (&$v) use (&$caster) {
             if (\is_object($v)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/AttributeClassLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/AttributeClassLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/AttributeClassLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/AttributeClassLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -94,7 +94,7 @@
         } elseif ($env instanceof \Stringable || \is_scalar($env)) {
             $this->env = (string) $env;
         } else {
-            throw new \TypeError(__METHOD__.sprintf(': Parameter $env was expected to be a string or null, "%s" given.', get_debug_type($env)));
+            throw new \TypeError(__METHOD__.\sprintf(': Parameter $env was expected to be a string or null, "%s" given.', get_debug_type($env)));
         }
     }
 
@@ -114,12 +114,12 @@
     public function load(mixed $class, ?string $type = null): RouteCollection
     {
         if (!class_exists($class)) {
-            throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $class));
+            throw new \InvalidArgumentException(\sprintf('Class "%s" does not exist.', $class));
         }
 
         $class = new \ReflectionClass($class);
         if ($class->isAbstract()) {
-            throw new \InvalidArgumentException(sprintf('Attributes from class "%s" cannot be read as it is abstract.', $class->getName()));
+            throw new \InvalidArgumentException(\sprintf('Attributes from class "%s" cannot be read as it is abstract.', $class->getName()));
         }
 
         $this->hasDeprecatedAnnotations = false;
@@ -144,7 +144,7 @@
 
                 if (1 === $collection->count() - \count($routeNamesBefore)) {
                     $newRouteName = current(array_diff(array_keys($collection->all()), $routeNamesBefore));
-                    if ($newRouteName !== $aliasName = sprintf('%s::%s', $class->name, $method->name)) {
+                    if ($newRouteName !== $aliasName = \sprintf('%s::%s', $class->name, $method->name)) {
                         $collection->addAlias($aliasName, $newRouteName);
                     }
                 }
@@ -162,7 +162,7 @@
                     $collection->addAlias($class->name, $invokeRouteName);
                 }
 
-                if ($invokeRouteName !== $aliasName = sprintf('%s::__invoke', $class->name)) {
+                if ($invokeRouteName !== $aliasName = \sprintf('%s::__invoke', $class->name)) {
                     $collection->addAlias($aliasName, $invokeRouteName);
                 }
             }
@@ -195,7 +195,7 @@
 
         foreach ($requirements as $placeholder => $requirement) {
             if (\is_int($placeholder)) {
-                throw new \InvalidArgumentException(sprintf('A placeholder name must be a string (%d given). Did you forget to specify the placeholder key for the requirement "%s" of route "%s" in "%s::%s()"?', $placeholder, $requirement, $name, $class->getName(), $method->getName()));
+                throw new \InvalidArgumentException(\sprintf('A placeholder name must be a string (%d given). Did you forget to specify the placeholder key for the requirement "%s" of route "%s" in "%s::%s()"?', $placeholder, $requirement, $name, $class->getName(), $method->getName()));
             }
         }
 
@@ -219,11 +219,11 @@
                     $paths[$locale] = $prefix.$localePath;
                 }
             } elseif ($missing = array_diff_key($prefix, $path)) {
-                throw new \LogicException(sprintf('Route to "%s" is missing paths for locale(s) "%s".', $class->name.'::'.$method->name, implode('", "', array_keys($missing))));
+                throw new \LogicException(\sprintf('Route to "%s" is missing paths for locale(s) "%s".', $class->name.'::'.$method->name, implode('", "', array_keys($missing))));
             } else {
                 foreach ($path as $locale => $localePath) {
                     if (!isset($prefix[$locale])) {
-                        throw new \LogicException(sprintf('Route to "%s" with locale "%s" is missing a corresponding prefix in class "%s".', $method->name, $locale, $class->name));
+                        throw new \LogicException(\sprintf('Route to "%s" with locale "%s" is missing a corresponding prefix in class "%s".', $method->name, $locale, $class->name));
                     }
 
                     $paths[$locale] = $prefix[$locale].$localePath;
@@ -242,7 +242,7 @@
                 continue;
             }
             foreach ($paths as $locale => $path) {
-                if (preg_match(sprintf('/\{%s(?:<.*?>)?\}/', preg_quote($param->name)), $path)) {
+                if (preg_match(\sprintf('/\{%s(?:<.*?>)?\}/', preg_quote($param->name)), $path)) {
                     if (\is_scalar($defaultValue = $param->getDefaultValue()) || null === $defaultValue) {
                         $defaults[$param->name] = $defaultValue;
                     } elseif ($defaultValue instanceof \BackedEnum) {
@@ -360,7 +360,7 @@
 
             foreach ($globals['requirements'] as $placeholder => $requirement) {
                 if (\is_int($placeholder)) {
-                    throw new \InvalidArgumentException(sprintf('A placeholder name must be a string (%d given). Did you forget to specify the placeholder key for the requirement "%s" in "%s"?', $placeholder, $requirement, $class->getName()));
+                    throw new \InvalidArgumentException(\sprintf('A placeholder name must be a string (%d given). Did you forget to specify the placeholder key for the requirement "%s" in "%s"?', $placeholder, $requirement, $class->getName()));
                 }
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/AttributeDirectoryLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/AttributeDirectoryLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/AttributeDirectoryLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/AttributeDirectoryLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,11 +37,11 @@
         $files = iterator_to_array(new \RecursiveIteratorIterator(
             new \RecursiveCallbackFilterIterator(
                 new \RecursiveDirectoryIterator($dir, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS),
-                fn (\SplFileInfo $current) => !str_starts_with($current->getBasename(), '.')
+                static fn (\SplFileInfo $current) => !str_starts_with($current->getBasename(), '.')
             ),
             \RecursiveIteratorIterator::LEAVES_ONLY
         ));
-        usort($files, fn (\SplFileInfo $a, \SplFileInfo $b) => (string) $a > (string) $b ? 1 : -1);
+        usort($files, static fn (\SplFileInfo $a, \SplFileInfo $b) => (string) $a > (string) $b ? 1 : -1);
 
         foreach ($files as $file) {
             if (!$file->isFile() || !str_ends_with($file->getFilename(), '.php')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/AttributeFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/AttributeFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/AttributeFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/AttributeFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -82,7 +82,7 @@
         $tokens = token_get_all(file_get_contents($file));
 
         if (1 === \count($tokens) && \T_INLINE_HTML === $tokens[0][0]) {
-            throw new \InvalidArgumentException(sprintf('The file "%s" does not contain PHP code. Did you forget to add the "<?php" start tag at the beginning of the file?', $file));
+            throw new \InvalidArgumentException(\sprintf('The file "%s" does not contain PHP code. Did you forget to add the "<?php" start tag at the beginning of the file?', $file));
         }
 
         $nsTokens = [\T_NS_SEPARATOR => true, \T_STRING => true];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Configurator/CollectionConfigurator.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Configurator/CollectionConfigurator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Configurator/CollectionConfigurator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Configurator/CollectionConfigurator.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,15 +38,12 @@
         $this->parentPrefixes = $parentPrefixes;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -84,11 +81,11 @@
             if (null === $this->parentPrefixes) {
                 // no-op
             } elseif ($missing = array_diff_key($this->parentPrefixes, $prefix)) {
-                throw new \LogicException(sprintf('Collection "%s" is missing prefixes for locale(s) "%s".', $this->name, implode('", "', array_keys($missing))));
+                throw new \LogicException(\sprintf('Collection "%s" is missing prefixes for locale(s) "%s".', $this->name, implode('", "', array_keys($missing))));
             } else {
                 foreach ($prefix as $locale => $localePrefix) {
                     if (!isset($this->parentPrefixes[$locale])) {
-                        throw new \LogicException(sprintf('Collection "%s" with locale "%s" is missing a corresponding prefix in its parent collection.', $this->name, $locale));
+                        throw new \LogicException(\sprintf('Collection "%s" with locale "%s" is missing a corresponding prefix in its parent collection.', $this->name, $locale));
                     }
 
                     $prefix[$locale] = $this->parentPrefixes[$locale].$localePrefix;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Configurator/ImportConfigurator.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Configurator/ImportConfigurator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Configurator/ImportConfigurator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Configurator/ImportConfigurator.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,15 +30,12 @@
         $this->route = $route;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    /**
-     * @return void
-     */
-    public function __wakeup()
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/HostTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/HostTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/HostTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/HostTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
                     $routes->add($name.'.'.$locale, $localizedRoute, $priority);
                 }
             } elseif (!isset($hosts[$locale])) {
-                throw new \InvalidArgumentException(sprintf('Route "%s" with locale "%s" is missing a corresponding host in its parent collection.', $name, $locale));
+                throw new \InvalidArgumentException(\sprintf('Route "%s" with locale "%s" is missing a corresponding host in its parent collection.', $name, $locale));
             } else {
                 $route->setHost($hosts[$locale]);
                 $route->setRequirement('_locale', preg_quote($locale));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/LocalizedRouteTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/LocalizedRouteTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/LocalizedRouteTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/LocalizedRouteTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,11 +37,11 @@
             if (null === $prefixes) {
                 $paths = $path;
             } elseif ($missing = array_diff_key($prefixes, $path)) {
-                throw new \LogicException(sprintf('Route "%s" is missing routes for locale(s) "%s".', $name, implode('", "', array_keys($missing))));
+                throw new \LogicException(\sprintf('Route "%s" is missing routes for locale(s) "%s".', $name, implode('", "', array_keys($missing))));
             } else {
                 foreach ($path as $locale => $localePath) {
                     if (!isset($prefixes[$locale])) {
-                        throw new \LogicException(sprintf('Route "%s" with locale "%s" is missing a corresponding prefix in its parent collection.', $name, $locale));
+                        throw new \LogicException(\sprintf('Route "%s" with locale "%s" is missing a corresponding prefix in its parent collection.', $name, $locale));
                     }
 
                     $paths[$locale] = $prefixes[$locale].$localePath;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/PrefixTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/PrefixTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/PrefixTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Configurator/Traits/PrefixTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,10 +27,17 @@
             foreach ($prefix as $locale => $localePrefix) {
                 $prefix[$locale] = trim(trim($localePrefix), '/');
             }
+            $aliases = [];
+            foreach ($routes->getAliases() as $name => $alias) {
+                $aliases[$alias->getId()][] = $name;
+            }
             foreach ($routes->all() as $name => $route) {
                 if (null === $locale = $route->getDefault('_locale')) {
                     $priority = $routes->getPriority($name) ?? 0;
                     $routes->remove($name);
+                    foreach ($aliases[$name] ?? [] as $aliasName) {
+                        $routes->remove($aliasName);
+                    }
                     foreach ($prefix as $locale => $localePrefix) {
                         $localizedRoute = clone $route;
                         $localizedRoute->setDefault('_locale', $locale);
@@ -38,9 +45,12 @@
                         $localizedRoute->setDefault('_canonical_route', $name);
                         $localizedRoute->setPath($localePrefix.(!$trailingSlashOnRoot && '/' === $route->getPath() ? '' : $route->getPath()));
                         $routes->add($name.'.'.$locale, $localizedRoute, $priority);
+                        foreach ($aliases[$name] ?? [] as $aliasName) {
+                            $routes->addAlias($aliasName.'.'.$locale, $name.'.'.$locale);
+                        }
                     }
                 } elseif (!isset($prefix[$locale])) {
-                    throw new \InvalidArgumentException(sprintf('Route "%s" with locale "%s" is missing a corresponding prefix in its parent collection.', $name, $locale));
+                    throw new \InvalidArgumentException(\sprintf('Route "%s" with locale "%s" is missing a corresponding prefix in its parent collection.', $name, $locale));
                 } else {
                     $route->setPath($prefix[$locale].(!$trailingSlashOnRoot && '/' === $route->getPath() ? '' : $route->getPath()));
                     $routes->add($name, $route, $routes->getPriority($name) ?? 0);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/ObjectLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/ObjectLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/ObjectLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/ObjectLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     public function load(mixed $resource, ?string $type = null): RouteCollection
     {
         if (!preg_match('/^[^\:]+(?:::(?:[^\:]+))?$/', $resource)) {
-            throw new \InvalidArgumentException(sprintf('Invalid resource "%s" passed to the %s route loader: use the format "object_id::method" or "object_id" if your object class has an "__invoke" method.', $resource, \is_string($type) ? '"'.$type.'"' : 'object'));
+            throw new \InvalidArgumentException(\sprintf('Invalid resource "%s" passed to the %s route loader: use the format "object_id::method" or "object_id" if your object class has an "__invoke" method.', $resource, \is_string($type) ? '"'.$type.'"' : 'object'));
         }
 
         $parts = explode('::', $resource);
@@ -45,11 +45,11 @@
         $loaderObject = $this->getObject($parts[0]);
 
         if (!\is_object($loaderObject)) {
-            throw new \TypeError(sprintf('"%s:getObject()" must return an object: "%s" returned.', static::class, get_debug_type($loaderObject)));
+            throw new \TypeError(\sprintf('"%s:getObject()" must return an object: "%s" returned.', static::class, get_debug_type($loaderObject)));
         }
 
         if (!\is_callable([$loaderObject, $method])) {
-            throw new \BadMethodCallException(sprintf('Method "%s" not found on "%s" when importing routing resource "%s".', $method, get_debug_type($loaderObject), $resource));
+            throw new \BadMethodCallException(\sprintf('Method "%s" not found on "%s" when importing routing resource "%s".', $method, get_debug_type($loaderObject), $resource));
         }
 
         $routeCollection = $loaderObject->$method($this, $this->env);
@@ -57,7 +57,7 @@
         if (!$routeCollection instanceof RouteCollection) {
             $type = get_debug_type($routeCollection);
 
-            throw new \LogicException(sprintf('The "%s::%s()" method must return a RouteCollection: "%s" returned.', get_debug_type($loaderObject), $method, $type));
+            throw new \LogicException(\sprintf('The "%s::%s()" method must return a RouteCollection: "%s" returned.', get_debug_type($loaderObject), $method, $type));
         }
 
         // make the object file tracked so that if it changes, the cache rebuilds
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Psr4DirectoryLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Psr4DirectoryLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/Psr4DirectoryLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/Psr4DirectoryLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,12 +38,13 @@
      */
     public function load(mixed $resource, ?string $type = null): ?RouteCollection
     {
+        $excluded = $resource['_excluded'] ?? [];
         $path = $this->locator->locate($resource['path'], $this->currentDirectory);
         if (!is_dir($path)) {
             return new RouteCollection();
         }
 
-        return $this->loadFromDirectory($path, trim($resource['namespace'], '\\'));
+        return $this->loadFromDirectory($path, trim($resource['namespace'], '\\'), $excluded);
     }
 
     public function supports(mixed $resource, ?string $type = null): bool
@@ -59,23 +60,28 @@
         return $loader;
     }
 
-    private function loadFromDirectory(string $directory, string $psr4Prefix): RouteCollection
+    private function loadFromDirectory(string $directory, string $psr4Prefix, array $excluded = []): RouteCollection
     {
         $collection = new RouteCollection();
         $collection->addResource(new DirectoryResource($directory, '/\.php$/'));
         $files = iterator_to_array(new \RecursiveIteratorIterator(
             new \RecursiveCallbackFilterIterator(
                 new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS),
-                fn (\SplFileInfo $current) => !str_starts_with($current->getBasename(), '.')
+                static fn (\SplFileInfo $current) => !str_starts_with($current->getBasename(), '.')
             ),
             \RecursiveIteratorIterator::SELF_FIRST
         ));
-        usort($files, fn (\SplFileInfo $a, \SplFileInfo $b) => (string) $a > (string) $b ? 1 : -1);
+        usort($files, static fn (\SplFileInfo $a, \SplFileInfo $b) => (string) $a > (string) $b ? 1 : -1);
 
         /** @var \SplFileInfo $file */
         foreach ($files as $file) {
+            $normalizedPath = rtrim(str_replace('\\', '/', $file->getPathname()), '/');
+            if (isset($excluded[$normalizedPath])) {
+                continue;
+            }
+
             if ($file->isDir()) {
-                $collection->addCollection($this->loadFromDirectory($file->getPathname(), $psr4Prefix.'\\'.$file->getFilename()));
+                $collection->addCollection($this->loadFromDirectory($file->getPathname(), $psr4Prefix.'\\'.$file->getFilename(), $excluded));
 
                 continue;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/XmlFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/XmlFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/XmlFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/XmlFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -90,7 +90,7 @@
                 }
                 break;
             default:
-                throw new \InvalidArgumentException(sprintf('Unknown tag "%s" used in file "%s". Expected "route" or "import".', $node->localName, $path));
+                throw new \InvalidArgumentException(\sprintf('Unknown tag "%s" used in file "%s". Expected "route" or "import".', $node->localName, $path));
         }
     }
 
@@ -109,7 +109,7 @@
     protected function parseRoute(RouteCollection $collection, \DOMElement $node, string $path)
     {
         if ('' === $id = $node->getAttribute('id')) {
-            throw new \InvalidArgumentException(sprintf('The <route> element in file "%s" must have an "id" attribute.', $path));
+            throw new \InvalidArgumentException(\sprintf('The <route> element in file "%s" must have an "id" attribute.', $path));
         }
 
         if ('' !== $alias = $node->getAttribute('alias')) {
@@ -128,11 +128,11 @@
         [$defaults, $requirements, $options, $condition, $paths, /* $prefixes */, $hosts] = $this->parseConfigs($node, $path);
 
         if (!$paths && '' === $node->getAttribute('path')) {
-            throw new \InvalidArgumentException(sprintf('The <route> element in file "%s" must have a "path" attribute or <path> child nodes.', $path));
+            throw new \InvalidArgumentException(\sprintf('The <route> element in file "%s" must have a "path" attribute or <path> child nodes.', $path));
         }
 
         if ($paths && '' !== $node->getAttribute('path')) {
-            throw new \InvalidArgumentException(sprintf('The <route> element in file "%s" must not have both a "path" attribute and <path> child nodes.', $path));
+            throw new \InvalidArgumentException(\sprintf('The <route> element in file "%s" must not have both a "path" attribute and <path> child nodes.', $path));
         }
 
         $routes = $this->createLocalizedRoute(new RouteCollection(), $id, $paths ?: $node->getAttribute('path'));
@@ -169,7 +169,7 @@
         }
 
         if (!$resource) {
-            throw new \InvalidArgumentException(sprintf('The <import> element in file "%s" must have a "resource" attribute or element.', $path));
+            throw new \InvalidArgumentException(\sprintf('The <import> element in file "%s" must have a "resource" attribute or element.', $path));
         }
 
         $type = $node->getAttribute('type');
@@ -182,7 +182,7 @@
         [$defaults, $requirements, $options, $condition, /* $paths */, $prefixes, $hosts] = $this->parseConfigs($node, $path);
 
         if ('' !== $prefix && $prefixes) {
-            throw new \InvalidArgumentException(sprintf('The <route> element in file "%s" must not have both a "prefix" attribute and <prefix> child nodes.', $path));
+            throw new \InvalidArgumentException(\sprintf('The <route> element in file "%s" must not have both a "prefix" attribute and <prefix> child nodes.', $path));
         }
 
         $exclude = [];
@@ -296,15 +296,15 @@
                 case 'resource':
                     break;
                 default:
-                    throw new \InvalidArgumentException(sprintf('Unknown tag "%s" used in file "%s". Expected "default", "requirement", "option" or "condition".', $n->localName, $path));
+                    throw new \InvalidArgumentException(\sprintf('Unknown tag "%s" used in file "%s". Expected "default", "requirement", "option" or "condition".', $n->localName, $path));
             }
         }
 
         if ($controller = $node->getAttribute('controller')) {
             if (isset($defaults['_controller'])) {
-                $name = $node->hasAttribute('id') ? sprintf('"%s".', $node->getAttribute('id')) : sprintf('the "%s" tag.', $node->tagName);
+                $name = $node->hasAttribute('id') ? \sprintf('"%s".', $node->getAttribute('id')) : \sprintf('the "%s" tag.', $node->tagName);
 
-                throw new \InvalidArgumentException(sprintf('The routing file "%s" must not specify both the "controller" attribute and the defaults key "_controller" for ', $path).$name);
+                throw new \InvalidArgumentException(\sprintf('The routing file "%s" must not specify both the "controller" attribute and the defaults key "_controller" for ', $path).$name);
             }
 
             $defaults['_controller'] = $controller;
@@ -320,9 +320,9 @@
         }
         if ($stateless = $node->getAttribute('stateless')) {
             if (isset($defaults['_stateless'])) {
-                $name = $node->hasAttribute('id') ? sprintf('"%s".', $node->getAttribute('id')) : sprintf('the "%s" tag.', $node->tagName);
+                $name = $node->hasAttribute('id') ? \sprintf('"%s".', $node->getAttribute('id')) : \sprintf('the "%s" tag.', $node->tagName);
 
-                throw new \InvalidArgumentException(sprintf('The routing file "%s" must not specify both the "stateless" attribute and the defaults key "_stateless" for ', $path).$name);
+                throw new \InvalidArgumentException(\sprintf('The routing file "%s" must not specify both the "stateless" attribute and the defaults key "_stateless" for ', $path).$name);
             }
 
             $defaults['_stateless'] = XmlUtils::phpize($stateless);
@@ -418,7 +418,7 @@
 
                 return $map;
             default:
-                throw new \InvalidArgumentException(sprintf('Unknown tag "%s" used in file "%s". Expected "bool", "int", "float", "string", "list", or "map".', $node->localName, $path));
+                throw new \InvalidArgumentException(\sprintf('Unknown tag "%s" used in file "%s". Expected "bool", "int", "float", "string", "list", or "map".', $node->localName, $path));
         }
     }
 
@@ -446,7 +446,7 @@
                 continue;
             }
             if ('deprecated' !== $child->localName) {
-                throw new \InvalidArgumentException(sprintf('Invalid child element "%s" defined for alias "%s" in "%s".', $child->localName, $node->getAttribute('id'), $path));
+                throw new \InvalidArgumentException(\sprintf('Invalid child element "%s" defined for alias "%s" in "%s".', $child->localName, $node->getAttribute('id'), $path));
             }
 
             $deprecatedNode = $child;
@@ -457,10 +457,10 @@
         }
 
         if (!$deprecatedNode->hasAttribute('package')) {
-            throw new \InvalidArgumentException(sprintf('The <deprecated> element in file "%s" must have a "package" attribute.', $path));
+            throw new \InvalidArgumentException(\sprintf('The <deprecated> element in file "%s" must have a "package" attribute.', $path));
         }
         if (!$deprecatedNode->hasAttribute('version')) {
-            throw new \InvalidArgumentException(sprintf('The <deprecated> element in file "%s" must have a "version" attribute.', $path));
+            throw new \InvalidArgumentException(\sprintf('The <deprecated> element in file "%s" must have a "version" attribute.', $path));
         }
 
         return [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/YamlFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/YamlFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Loader/YamlFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Loader/YamlFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,11 +46,11 @@
         $path = $this->locator->locate($file);
 
         if (!stream_is_local($path)) {
-            throw new \InvalidArgumentException(sprintf('This is not a local file "%s".', $path));
+            throw new \InvalidArgumentException(\sprintf('This is not a local file "%s".', $path));
         }
 
         if (!file_exists($path)) {
-            throw new \InvalidArgumentException(sprintf('File "%s" not found.', $path));
+            throw new \InvalidArgumentException(\sprintf('File "%s" not found.', $path));
         }
 
         $this->yamlParser ??= new YamlParser();
@@ -58,7 +58,7 @@
         try {
             $parsedConfig = $this->yamlParser->parseFile($path, Yaml::PARSE_CONSTANT);
         } catch (ParseException $e) {
-            throw new \InvalidArgumentException(sprintf('The file "%s" does not contain valid YAML: ', $path).$e->getMessage(), 0, $e);
+            throw new \InvalidArgumentException(\sprintf('The file "%s" does not contain valid YAML: ', $path).$e->getMessage(), 0, $e);
         }
 
         $collection = new RouteCollection();
@@ -71,7 +71,7 @@
 
         // not an array
         if (!\is_array($parsedConfig)) {
-            throw new \InvalidArgumentException(sprintf('The file "%s" must contain a YAML array.', $path));
+            throw new \InvalidArgumentException(\sprintf('The file "%s" must contain a YAML array.', $path));
         }
 
         foreach ($parsedConfig as $name => $config) {
@@ -137,7 +137,7 @@
 
         foreach ($requirements as $placeholder => $requirement) {
             if (\is_int($placeholder)) {
-                throw new \InvalidArgumentException(sprintf('A placeholder name must be a string (%d given). Did you forget to specify the placeholder key for the requirement "%s" of route "%s" in "%s"?', $placeholder, $requirement, $name, $path));
+                throw new \InvalidArgumentException(\sprintf('A placeholder name must be a string (%d given). Did you forget to specify the placeholder key for the requirement "%s" of route "%s" in "%s"?', $placeholder, $requirement, $name, $path));
             }
         }
 
@@ -252,7 +252,7 @@
     protected function validate(mixed $config, string $name, string $path)
     {
         if (!\is_array($config)) {
-            throw new \InvalidArgumentException(sprintf('The definition of "%s" in "%s" must be a YAML array.', $name, $path));
+            throw new \InvalidArgumentException(\sprintf('The definition of "%s" in "%s" must be a YAML array.', $name, $path));
         }
         if (isset($config['alias'])) {
             $this->validateAlias($config, $name, $path);
@@ -260,22 +260,22 @@
             return;
         }
         if ($extraKeys = array_diff(array_keys($config), self::AVAILABLE_KEYS)) {
-            throw new \InvalidArgumentException(sprintf('The routing file "%s" contains unsupported keys for "%s": "%s". Expected one of: "%s".', $path, $name, implode('", "', $extraKeys), implode('", "', self::AVAILABLE_KEYS)));
+            throw new \InvalidArgumentException(\sprintf('The routing file "%s" contains unsupported keys for "%s": "%s". Expected one of: "%s".', $path, $name, implode('", "', $extraKeys), implode('", "', self::AVAILABLE_KEYS)));
         }
         if (isset($config['resource']) && isset($config['path'])) {
-            throw new \InvalidArgumentException(sprintf('The routing file "%s" must not specify both the "resource" key and the "path" key for "%s". Choose between an import and a route definition.', $path, $name));
+            throw new \InvalidArgumentException(\sprintf('The routing file "%s" must not specify both the "resource" key and the "path" key for "%s". Choose between an import and a route definition.', $path, $name));
         }
         if (!isset($config['resource']) && isset($config['type'])) {
-            throw new \InvalidArgumentException(sprintf('The "type" key for the route definition "%s" in "%s" is unsupported. It is only available for imports in combination with the "resource" key.', $name, $path));
+            throw new \InvalidArgumentException(\sprintf('The "type" key for the route definition "%s" in "%s" is unsupported. It is only available for imports in combination with the "resource" key.', $name, $path));
         }
         if (!isset($config['resource']) && !isset($config['path'])) {
-            throw new \InvalidArgumentException(sprintf('You must define a "path" for the route "%s" in file "%s".', $name, $path));
+            throw new \InvalidArgumentException(\sprintf('You must define a "path" for the route "%s" in file "%s".', $name, $path));
         }
         if (isset($config['controller']) && isset($config['defaults']['_controller'])) {
-            throw new \InvalidArgumentException(sprintf('The routing file "%s" must not specify both the "controller" key and the defaults key "_controller" for "%s".', $path, $name));
+            throw new \InvalidArgumentException(\sprintf('The routing file "%s" must not specify both the "controller" key and the defaults key "_controller" for "%s".', $path, $name));
         }
         if (isset($config['stateless']) && isset($config['defaults']['_stateless'])) {
-            throw new \InvalidArgumentException(sprintf('The routing file "%s" must not specify both the "stateless" key and the defaults key "_stateless" for "%s".', $path, $name));
+            throw new \InvalidArgumentException(\sprintf('The routing file "%s" must not specify both the "stateless" key and the defaults key "_stateless" for "%s".', $path, $name));
         }
     }
 
@@ -287,16 +287,16 @@
     {
         foreach ($config as $key => $value) {
             if (!\in_array($key, ['alias', 'deprecated'], true)) {
-                throw new \InvalidArgumentException(sprintf('The routing file "%s" must not specify other keys than "alias" and "deprecated" for "%s".', $path, $name));
+                throw new \InvalidArgumentException(\sprintf('The routing file "%s" must not specify other keys than "alias" and "deprecated" for "%s".', $path, $name));
             }
 
             if ('deprecated' === $key) {
                 if (!isset($value['package'])) {
-                    throw new \InvalidArgumentException(sprintf('The routing file "%s" must specify the attribute "package" of the "deprecated" option for "%s".', $path, $name));
+                    throw new \InvalidArgumentException(\sprintf('The routing file "%s" must specify the attribute "package" of the "deprecated" option for "%s".', $path, $name));
                 }
 
                 if (!isset($value['version'])) {
-                    throw new \InvalidArgumentException(sprintf('The routing file "%s" must specify the attribute "version" of the "deprecated" option for "%s".', $path, $name));
+                    throw new \InvalidArgumentException(\sprintf('The routing file "%s" must specify the attribute "version" of the "deprecated" option for "%s".', $path, $name));
                 }
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,17 +37,17 @@
     public function dump(array $options = []): string
     {
         return <<<EOF
-<?php
+            <?php
 
-/**
- * This file has been auto-generated
- * by the Symfony Routing Component.
- */
+            /**
+             * This file has been auto-generated
+             * by the Symfony Routing Component.
+             */
 
-return [
-{$this->generateCompiledRoutes()}];
+            return [
+            {$this->generateCompiledRoutes()}];
 
-EOF;
+            EOF;
     }
 
     /**
@@ -115,12 +115,12 @@
             }
 
             $checkConditionCode = <<<EOF
-    static function (\$condition, \$context, \$request, \$params) { // \$checkCondition
-        switch (\$condition) {
-{$this->indent(implode("\n", $conditions), 3)}
-        }
-    }
-EOF;
+                    static function (\$condition, \$context, \$request, \$params) { // \$checkCondition
+                        switch (\$condition) {
+                {$this->indent(implode("\n", $conditions), 3)}
+                        }
+                    }
+                EOF;
             $compiledRoutes[4] = $forDump ? $checkConditionCode.",\n" : eval('return '.$checkConditionCode.';');
         } else {
             $compiledRoutes[4] = $forDump ? "    null, // \$checkCondition\n" : null;
@@ -137,7 +137,7 @@
 
         $code .= '[ // $staticRoutes'."\n";
         foreach ($staticRoutes as $path => $routes) {
-            $code .= sprintf("    %s => [\n", self::export($path));
+            $code .= \sprintf("    %s => [\n", self::export($path));
             foreach ($routes as $route) {
                 $code .= vsprintf("        [%s, %s, %s, %s, %s, %s, %s],\n", array_map([__CLASS__, 'export'], $route));
             }
@@ -145,11 +145,11 @@
         }
         $code .= "],\n";
 
-        $code .= sprintf("[ // \$regexpList%s\n],\n", $regexpCode);
+        $code .= \sprintf("[ // \$regexpList%s\n],\n", $regexpCode);
 
         $code .= '[ // $dynamicRoutes'."\n";
         foreach ($dynamicRoutes as $path => $routes) {
-            $code .= sprintf("    %s => [\n", self::export($path));
+            $code .= \sprintf("    %s => [\n", self::export($path));
             foreach ($routes as $route) {
                 $code .= vsprintf("        [%s, %s, %s, %s, %s, %s, %s],\n", array_map([__CLASS__, 'export'], $route));
             }
@@ -222,7 +222,12 @@
         foreach ($staticRoutes as $url => $routes) {
             $compiledRoutes[$url] = [];
             foreach ($routes as $name => [$route, $hasTrailingSlash]) {
-                $compiledRoutes[$url][] = $this->compileRoute($route, $name, (!$route->compile()->getHostVariables() ? $route->getHost() : $route->compile()->getHostRegex()) ?: null, $hasTrailingSlash, false, $conditions);
+                if ($route->compile()->getHostVariables()) {
+                    $host = $route->compile()->getHostRegex();
+                } elseif ($host = $route->getHost()) {
+                    $host = strtolower($host);
+                }
+                $compiledRoutes[$url][] = $this->compileRoute($route, $name, $host ?: null, $hasTrailingSlash, false, $conditions);
             }
         }
 
@@ -402,7 +407,7 @@
 
             $state->mark += 3 + $state->markTail + \strlen($regex) - $prefixLen;
             $state->markTail = 2 + \strlen($state->mark);
-            $rx = sprintf('|%s(*:%s)', substr($regex, $prefixLen), $state->mark);
+            $rx = \sprintf('|%s(*:%s)', substr($regex, $prefixLen), $state->mark);
             $code .= "\n            .".self::export($rx);
             $state->regex .= $rx;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/Dumper/CompiledUrlMatcherTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
             throw new MethodNotAllowedException(array_keys($allow));
         }
         if (!$this instanceof RedirectableUrlMatcherInterface) {
-            throw new ResourceNotFoundException(sprintf('No routes found for "%s".', $pathinfo));
+            throw new ResourceNotFoundException(\sprintf('No routes found for "%s".', $pathinfo));
         }
         if (!\in_array($this->context->getMethod(), ['HEAD', 'GET'], true)) {
             // no-op
@@ -57,7 +57,7 @@
             } finally {
                 $this->context->setScheme($scheme);
             }
-        } elseif ('/' !== $trimmedPathinfo = rtrim($pathinfo, '/') ?: '/') {
+        } elseif ('' !== $trimmedPathinfo = rtrim($pathinfo, '/')) {
             $pathinfo = $trimmedPathinfo === $pathinfo ? $pathinfo.'/' : $trimmedPathinfo;
             if ($ret = $this->doMatch($pathinfo, $allow, $allowSchemes)) {
                 return $this->redirect($pathinfo, $ret['_route']) + $ret;
@@ -67,14 +67,14 @@
             }
         }
 
-        throw new ResourceNotFoundException(sprintf('No routes found for "%s".', $pathinfo));
+        throw new ResourceNotFoundException(\sprintf('No routes found for "%s".', $pathinfo));
     }
 
     private function doMatch(string $pathinfo, array &$allow = [], array &$allowSchemes = []): array
     {
         $allow = $allowSchemes = [];
-        $pathinfo = rawurldecode($pathinfo) ?: '/';
-        $trimmedPathinfo = rtrim($pathinfo, '/') ?: '/';
+        $pathinfo = '' === ($pathinfo = rawurldecode($pathinfo)) ? '/' : $pathinfo;
+        $trimmedPathinfo = '' === ($trimmedPathinfo = rtrim($pathinfo, '/')) ? '/' : $trimmedPathinfo;
         $context = $this->context;
         $requestMethod = $canonicalMethod = $context->getMethod();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/ExpressionLanguageProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/ExpressionLanguageProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/ExpressionLanguageProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/ExpressionLanguageProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,8 +36,8 @@
         foreach ($this->functions->getProvidedServices() as $function => $type) {
             $functions[] = new ExpressionFunction(
                 $function,
-                static fn (...$args) => sprintf('($context->getParameter(\'_functions\')->get(%s)(%s))', var_export($function, true), implode(', ', $args)),
-                fn ($values, ...$args) => $values['context']->getParameter('_functions')->get($function)(...$args)
+                static fn (...$args) => \sprintf('($context->getParameter(\'_functions\')->get(%s)(%s))', var_export($function, true), implode(', ', $args)),
+                static fn ($values, ...$args) => $values['context']->getParameter('_functions')->get($function)(...$args)
             );
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
                 } finally {
                     $this->context->setScheme($scheme);
                 }
-            } elseif ('/' === $trimmedPathinfo = rtrim($pathinfo, '/') ?: '/') {
+            } elseif ('' === $trimmedPathinfo = rtrim($pathinfo, '/')) {
                 throw $e;
             } else {
                 try {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,7 +63,7 @@
             $method = 'GET';
         }
         $supportsTrailingSlash = 'GET' === $method && $this instanceof RedirectableUrlMatcherInterface;
-        $trimmedPathinfo = rtrim($pathinfo, '/') ?: '/';
+        $trimmedPathinfo = '' === ($trimmedPathinfo = rtrim($pathinfo, '/')) ? '/' : $trimmedPathinfo;
 
         foreach ($routes as $name => $route) {
             $compiledRoute = $route->compile();
@@ -72,7 +72,7 @@
 
             // check the static prefix of the URL first. Only use the more expensive preg_match when it matches
             if ('' !== $staticPrefix && !str_starts_with($trimmedPathinfo, $staticPrefix)) {
-                $this->addTrace(sprintf('Path "%s" does not match', $route->getPath()), self::ROUTE_DOES_NOT_MATCH, $name, $route);
+                $this->addTrace(\sprintf('Path "%s" does not match', $route->getPath()), self::ROUTE_DOES_NOT_MATCH, $name, $route);
                 continue;
             }
             $regex = $compiledRoute->getRegex();
@@ -86,7 +86,7 @@
                 $r = new Route($route->getPath(), $route->getDefaults(), [], $route->getOptions());
                 $cr = $r->compile();
                 if (!preg_match($cr->getRegex(), $pathinfo)) {
-                    $this->addTrace(sprintf('Path "%s" does not match', $route->getPath()), self::ROUTE_DOES_NOT_MATCH, $name, $route);
+                    $this->addTrace(\sprintf('Path "%s" does not match', $route->getPath()), self::ROUTE_DOES_NOT_MATCH, $name, $route);
 
                     continue;
                 }
@@ -96,7 +96,7 @@
                     $cr = $r->compile();
 
                     if (\in_array($n, $cr->getVariables()) && !preg_match($cr->getRegex(), $pathinfo)) {
-                        $this->addTrace(sprintf('Requirement for "%s" does not match (%s)', $n, $regex), self::ROUTE_ALMOST_MATCHES, $name, $route);
+                        $this->addTrace(\sprintf('Requirement for "%s" does not match (%s)', $n, $regex), self::ROUTE_ALMOST_MATCHES, $name, $route);
 
                         continue 2;
                     }
@@ -117,7 +117,7 @@
 
             $hostMatches = [];
             if ($compiledRoute->getHostRegex() && !preg_match($compiledRoute->getHostRegex(), $this->context->getHost(), $hostMatches)) {
-                $this->addTrace(sprintf('Host "%s" does not match the requirement ("%s")', $this->context->getHost(), $route->getHost()), self::ROUTE_ALMOST_MATCHES, $name, $route);
+                $this->addTrace(\sprintf('Host "%s" does not match the requirement ("%s")', $this->context->getHost(), $route->getHost()), self::ROUTE_ALMOST_MATCHES, $name, $route);
                 continue;
             }
 
@@ -126,7 +126,7 @@
             $status = $this->handleRouteRequirements($pathinfo, $name, $route, $attributes);
 
             if (self::REQUIREMENT_MISMATCH === $status[0]) {
-                $this->addTrace(sprintf('Condition "%s" does not evaluate to "true"', $route->getCondition()), self::ROUTE_ALMOST_MATCHES, $name, $route);
+                $this->addTrace(\sprintf('Condition "%s" does not evaluate to "true"', $route->getCondition()), self::ROUTE_ALMOST_MATCHES, $name, $route);
                 continue;
             }
 
@@ -136,19 +136,19 @@
 
                     return $this->allow = $this->allowSchemes = [];
                 }
-                $this->addTrace(sprintf('Path "%s" does not match', $route->getPath()), self::ROUTE_DOES_NOT_MATCH, $name, $route);
+                $this->addTrace(\sprintf('Path "%s" does not match', $route->getPath()), self::ROUTE_DOES_NOT_MATCH, $name, $route);
                 continue;
             }
 
             if ($route->getSchemes() && !$route->hasScheme($this->context->getScheme())) {
                 $this->allowSchemes = array_merge($this->allowSchemes, $route->getSchemes());
-                $this->addTrace(sprintf('Scheme "%s" does not match any of the required schemes (%s)', $this->context->getScheme(), implode(', ', $route->getSchemes())), self::ROUTE_ALMOST_MATCHES, $name, $route);
+                $this->addTrace(\sprintf('Scheme "%s" does not match any of the required schemes (%s)', $this->context->getScheme(), implode(', ', $route->getSchemes())), self::ROUTE_ALMOST_MATCHES, $name, $route);
                 continue;
             }
 
             if ($requiredMethods && !\in_array($method, $requiredMethods)) {
                 $this->allow = array_merge($this->allow, $requiredMethods);
-                $this->addTrace(sprintf('Method "%s" does not match any of the required methods (%s)', $this->context->getMethod(), implode(', ', $requiredMethods)), self::ROUTE_ALMOST_MATCHES, $name, $route);
+                $this->addTrace(\sprintf('Method "%s" does not match any of the required methods (%s)', $this->context->getMethod(), implode(', ', $requiredMethods)), self::ROUTE_ALMOST_MATCHES, $name, $route);
                 continue;
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/UrlMatcher.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/UrlMatcher.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Matcher/UrlMatcher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Matcher/UrlMatcher.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,8 +78,9 @@
     public function match(string $pathinfo): array
     {
         $this->allow = $this->allowSchemes = [];
+        $pathinfo = '' === ($pathinfo = rawurldecode($pathinfo)) ? '/' : $pathinfo;
 
-        if ($ret = $this->matchCollection(rawurldecode($pathinfo) ?: '/', $this->routes)) {
+        if ($ret = $this->matchCollection($pathinfo, $this->routes)) {
             return $ret;
         }
 
@@ -87,18 +88,21 @@
             throw new NoConfigurationException();
         }
 
-        throw 0 < \count($this->allow) ? new MethodNotAllowedException(array_unique($this->allow)) : new ResourceNotFoundException(sprintf('No routes found for "%s".', $pathinfo));
+        throw 0 < \count($this->allow) ? new MethodNotAllowedException(array_unique($this->allow)) : new ResourceNotFoundException(\sprintf('No routes found for "%s".', $pathinfo));
     }
 
     public function matchRequest(Request $request): array
     {
         $this->request = $request;
+        $originalContext = $this->context;
+        $this->context = (clone $originalContext)->fromRequest($request);
 
-        $ret = $this->match($request->getPathInfo());
-
-        $this->request = null;
-
-        return $ret;
+        try {
+            return $this->match($request->getPathInfo());
+        } finally {
+            $this->context = $originalContext;
+            $this->request = null;
+        }
     }
 
     /**
@@ -125,7 +129,7 @@
             $method = 'GET';
         }
         $supportsTrailingSlash = 'GET' === $method && $this instanceof RedirectableUrlMatcherInterface;
-        $trimmedPathinfo = rtrim($pathinfo, '/') ?: '/';
+        $trimmedPathinfo = '' === ($trimmedPathinfo = rtrim($pathinfo, '/')) ? '/' : $trimmedPathinfo;
 
         foreach ($routes as $name => $route) {
             $compiledRoute = $route->compile();
@@ -225,7 +229,7 @@
             $routeParameters = func_get_arg(3);
 
             if (!\is_array($routeParameters)) {
-                throw new \TypeError(sprintf('"%s": Argument $routeParameters is expected to be an array, got "%s".', __METHOD__, get_debug_type($routeParameters)));
+                throw new \TypeError(\sprintf('"%s": Argument $routeParameters is expected to be an array, got "%s".', __METHOD__, get_debug_type($routeParameters)));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Requirement/EnumRequirement.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Requirement/EnumRequirement.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Requirement/EnumRequirement.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Requirement/EnumRequirement.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     {
         if (\is_string($cases)) {
             if (!is_subclass_of($cases, \BackedEnum::class, true)) {
-                throw new InvalidArgumentException(sprintf('"%s" is not a "BackedEnum" class.', $cases));
+                throw new InvalidArgumentException(\sprintf('"%s" is not a "BackedEnum" class.', $cases));
             }
 
             $cases = $cases::cases();
@@ -35,13 +35,13 @@
 
             foreach ($cases as $case) {
                 if (!$case instanceof \BackedEnum) {
-                    throw new InvalidArgumentException(sprintf('Case must be a "BackedEnum" instance, "%s" given.', get_debug_type($case)));
+                    throw new InvalidArgumentException(\sprintf('Case must be a "BackedEnum" instance, "%s" given.', get_debug_type($case)));
                 }
 
                 $class ??= $case::class;
 
                 if (!$case instanceof $class) {
-                    throw new InvalidArgumentException(sprintf('"%s::%s" is not a case of "%s".', get_debug_type($case), $case->name, $class));
+                    throw new InvalidArgumentException(\sprintf('"%s::%s" is not a case of "%s".', get_debug_type($case), $case->name, $class));
                 }
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/RouteCollection.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/RouteCollection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/RouteCollection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/RouteCollection.php	2026-05-20 10:56:49.000000000 +0200
@@ -239,7 +239,13 @@
         }
 
         foreach ($this->aliases as $name => $alias) {
-            $prefixedAliases[$prefix.$name] = $alias->withId($prefix.$alias->getId());
+            $targetId = $alias->getId();
+
+            if (isset($this->routes[$targetId]) || isset($this->aliases[$targetId])) {
+                $targetId = $prefix.$targetId;
+            }
+
+            $prefixedAliases[$prefix.$name] = $alias->withId($targetId);
         }
 
         $this->routes = $prefixedRoutes;
@@ -387,7 +393,7 @@
     public function addAlias(string $name, string $alias): Alias
     {
         if ($name === $alias) {
-            throw new InvalidArgumentException(sprintf('Route alias "%s" can not reference itself.', $name));
+            throw new InvalidArgumentException(\sprintf('Route alias "%s" can not reference itself.', $name));
         }
 
         unset($this->routes[$name], $this->priorities[$name]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/RouteCompiler.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/RouteCompiler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/RouteCompiler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/RouteCompiler.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
 
         foreach ($pathVariables as $pathParam) {
             if ('_fragment' === $pathParam) {
-                throw new \InvalidArgumentException(sprintf('Route pattern "%s" cannot contain "_fragment" as a path parameter.', $route->getPath()));
+                throw new \InvalidArgumentException(\sprintf('Route pattern "%s" cannot contain "_fragment" as a path parameter.', $route->getPath()));
             }
         }
 
@@ -107,10 +107,10 @@
         $needsUtf8 = $route->getOption('utf8');
 
         if (!$needsUtf8 && $useUtf8 && preg_match('/[\x80-\xFF]/', $pattern)) {
-            throw new \LogicException(sprintf('Cannot use UTF-8 route patterns without setting the "utf8" option for route "%s".', $route->getPath()));
+            throw new \LogicException(\sprintf('Cannot use UTF-8 route patterns without setting the "utf8" option for route "%s".', $route->getPath()));
         }
         if (!$useUtf8 && $needsUtf8) {
-            throw new \LogicException(sprintf('Cannot mix UTF-8 requirements with non-UTF-8 pattern "%s".', $pattern));
+            throw new \LogicException(\sprintf('Cannot mix UTF-8 requirements with non-UTF-8 pattern "%s".', $pattern));
         }
 
         // Match all variables enclosed in "{}" and iterate over them. But we only want to match the innermost variable
@@ -136,14 +136,14 @@
             // A PCRE subpattern name must start with a non-digit. Also a PHP variable cannot start with a digit so the
             // variable would not be usable as a Controller action argument.
             if (preg_match('/^\d/', $varName)) {
-                throw new \DomainException(sprintf('Variable name "%s" cannot start with a digit in route pattern "%s". Please use a different name.', $varName, $pattern));
+                throw new \DomainException(\sprintf('Variable name "%s" cannot start with a digit in route pattern "%s". Please use a different name.', $varName, $pattern));
             }
             if (\in_array($varName, $variables)) {
-                throw new \LogicException(sprintf('Route pattern "%s" cannot reference variable name "%s" more than once.', $pattern, $varName));
+                throw new \LogicException(\sprintf('Route pattern "%s" cannot reference variable name "%s" more than once.', $pattern, $varName));
             }
 
             if (\strlen($varName) > self::VARIABLE_MAXIMUM_LENGTH) {
-                throw new \DomainException(sprintf('Variable name "%s" cannot be longer than %d characters in route pattern "%s". Please use a shorter name.', $varName, self::VARIABLE_MAXIMUM_LENGTH, $pattern));
+                throw new \DomainException(\sprintf('Variable name "%s" cannot be longer than %d characters in route pattern "%s". Please use a shorter name.', $varName, self::VARIABLE_MAXIMUM_LENGTH, $pattern));
             }
 
             if ($isSeparator && $precedingText !== $precedingChar) {
@@ -163,7 +163,7 @@
                 // Also even if {_format} was not optional the requirement prevents that {page} matches something that was originally
                 // part of {_format} when generating the URL, e.g. _format = 'mobile.html'.
                 $nextSeparator = self::findNextSeparator($followingPattern, $useUtf8);
-                $regexp = sprintf(
+                $regexp = \sprintf(
                     '[^%s%s]+',
                     preg_quote($defaultSeparator),
                     $defaultSeparator !== $nextSeparator && '' !== $nextSeparator ? preg_quote($nextSeparator) : ''
@@ -180,10 +180,10 @@
                 if (!preg_match('//u', $regexp)) {
                     $useUtf8 = false;
                 } elseif (!$needsUtf8 && preg_match('/[\x80-\xFF]|(?<!\\\\)\\\\(?:\\\\\\\\)*+(?-i:X|[pP][\{CLMNPSZ]|x\{[A-Fa-f0-9]{3})/', $regexp)) {
-                    throw new \LogicException(sprintf('Cannot use UTF-8 route requirements without setting the "utf8" option for variable "%s" in pattern "%s".', $varName, $pattern));
+                    throw new \LogicException(\sprintf('Cannot use UTF-8 route requirements without setting the "utf8" option for variable "%s" in pattern "%s".', $varName, $pattern));
                 }
                 if (!$useUtf8 && $needsUtf8) {
-                    throw new \LogicException(sprintf('Cannot mix UTF-8 requirement with non-UTF-8 charset for variable "%s" in pattern "%s".', $varName, $pattern));
+                    throw new \LogicException(\sprintf('Cannot mix UTF-8 requirement with non-UTF-8 charset for variable "%s" in pattern "%s".', $varName, $pattern));
                 }
                 $regexp = self::transformCapturingGroupsToNonCapturings($regexp);
             }
@@ -292,28 +292,26 @@
         if ('text' === $token[0]) {
             // Text tokens
             return preg_quote($token[1]);
-        } else {
-            // Variable tokens
-            if (0 === $index && 0 === $firstOptional) {
-                // When the only token is an optional variable token, the separator is required
-                return sprintf('%s(?P<%s>%s)?', preg_quote($token[1]), $token[3], $token[2]);
-            } else {
-                $regexp = sprintf('%s(?P<%s>%s)', preg_quote($token[1]), $token[3], $token[2]);
-                if ($index >= $firstOptional) {
-                    // Enclose each optional token in a subpattern to make it optional.
-                    // "?:" means it is non-capturing, i.e. the portion of the subject string that
-                    // matched the optional subpattern is not passed back.
-                    $regexp = "(?:$regexp";
-                    $nbTokens = \count($tokens);
-                    if ($nbTokens - 1 == $index) {
-                        // Close the optional subpatterns
-                        $regexp .= str_repeat(')?', $nbTokens - $firstOptional - (0 === $firstOptional ? 1 : 0));
-                    }
-                }
-
-                return $regexp;
+        }
+        // Variable tokens
+        if (0 === $index && 0 === $firstOptional) {
+            // When the only token is an optional variable token, the separator is required
+            return \sprintf('%s(?P<%s>%s)?', preg_quote($token[1]), $token[3], $token[2]);
+        }
+        $regexp = \sprintf('%s(?P<%s>%s)', preg_quote($token[1]), $token[3], $token[2]);
+        if ($index >= $firstOptional) {
+            // Enclose each optional token in a subpattern to make it optional.
+            // "?:" means it is non-capturing, i.e. the portion of the subject string that
+            // matched the optional subpattern is not passed back.
+            $regexp = "(?:$regexp";
+            $nbTokens = \count($tokens);
+            if ($nbTokens - 1 == $index) {
+                // Close the optional subpatterns
+                $regexp .= str_repeat(')?', $nbTokens - $firstOptional - (0 === $firstOptional ? 1 : 0));
             }
         }
+
+        return $regexp;
     }
 
     private static function transformCapturingGroupsToNonCapturings(string $regexp): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Route.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Route.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Route.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Route.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
      * Available options:
      *
      *  * compiler_class: A class name able to compile this route instance (RouteCompiler by default)
-     *  * utf8:           Whether UTF-8 matching is enforced ot not
+     *  * utf8:           Whether UTF-8 matching is enforced or not
      *
      * @param string                    $path         The path pattern to match
      * @param array                     $defaults     An array of default parameter values
@@ -445,7 +445,7 @@
         }
 
         if ('' === $regex) {
-            throw new \InvalidArgumentException(sprintf('Routing requirement for "%s" cannot be empty.', $key));
+            throw new \InvalidArgumentException(\sprintf('Routing requirement for "%s" cannot be empty.', $key));
         }
 
         return $regex;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Router.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Router.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Router.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Router.php	2026-05-20 10:56:49.000000000 +0200
@@ -144,7 +144,7 @@
         }
 
         if ($invalid) {
-            throw new \InvalidArgumentException(sprintf('The Router does not support the following options: "%s".', implode('", "', $invalid)));
+            throw new \InvalidArgumentException(\sprintf('The Router does not support the following options: "%s".', implode('", "', $invalid)));
         }
     }
 
@@ -158,7 +158,7 @@
     public function setOption(string $key, mixed $value)
     {
         if (!\array_key_exists($key, $this->options)) {
-            throw new \InvalidArgumentException(sprintf('The Router does not support the "%s" option.', $key));
+            throw new \InvalidArgumentException(\sprintf('The Router does not support the "%s" option.', $key));
         }
 
         $this->options[$key] = $value;
@@ -172,7 +172,7 @@
     public function getOption(string $key): mixed
     {
         if (!\array_key_exists($key, $this->options)) {
-            throw new \InvalidArgumentException(sprintf('The Router does not support the "%s" option.', $key));
+            throw new \InvalidArgumentException(\sprintf('The Router does not support the "%s" option.', $key));
         }
 
         return $this->options[$key];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -366,6 +366,14 @@
         $this->getGenerator($routes)->generate('test', ['foo' => '0'], UrlGeneratorInterface::ABSOLUTE_URL);
     }
 
+    public function testGenerateForRouteWithAlternationRequirementRejectsSubstringMatch()
+    {
+        $routes = $this->getRoutes('test', new Route('/{_locale}/blog', [], ['_locale' => 'en|fr|vi|de']));
+
+        $this->expectException(InvalidParameterException::class);
+        $this->getGenerator($routes)->generate('test', ['_locale' => '/evil.com']);
+    }
+
     public function testGenerateForRouteWithInvalidOptionalParameterNonStrict()
     {
         $routes = $this->getRoutes('test', new Route('/testing/{foo}', ['foo' => '1'], ['foo' => 'd+']));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/AttributeClassLoaderTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/AttributeClassLoaderTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/AttributeClassLoaderTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/AttributeClassLoaderTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -239,14 +239,14 @@
     public function testMissingPrefixLocale()
     {
         $this->expectException(\LogicException::class);
-        $this->expectExceptionMessage(sprintf('Route to "action" with locale "en" is missing a corresponding prefix in class "%s\LocalizedPrefixMissingLocaleActionController".', $this->getNamespace()));
+        $this->expectExceptionMessage(\sprintf('Route to "action" with locale "en" is missing a corresponding prefix in class "%s\LocalizedPrefixMissingLocaleActionController".', $this->getNamespace()));
         $this->loader->load($this->getNamespace().'\LocalizedPrefixMissingLocaleActionController');
     }
 
     public function testMissingRouteLocale()
     {
         $this->expectException(\LogicException::class);
-        $this->expectExceptionMessage(sprintf('Route to "%s\LocalizedPrefixMissingRouteLocaleActionController::action" is missing paths for locale(s) "en".', $this->getNamespace()));
+        $this->expectExceptionMessage(\sprintf('Route to "%s\LocalizedPrefixMissingRouteLocaleActionController::action" is missing paths for locale(s) "en".', $this->getNamespace()));
         $this->loader->load($this->getNamespace().'\LocalizedPrefixMissingRouteLocaleActionController');
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
     {
         $loader = new ClosureLoader();
 
-        $closure = function () {};
+        $closure = static function () {};
 
         $this->assertTrue($loader->supports($closure), '->supports() returns true if the resource is loadable');
         $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/Configurator/Traits/PrefixTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/Configurator/Traits/PrefixTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/Configurator/Traits/PrefixTraitTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/Configurator/Traits/PrefixTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,53 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Routing\Tests\Loader\Configurator\Traits;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Routing\Loader\Configurator\Traits\PrefixTrait;
+use Symfony\Component\Routing\Route;
+use Symfony\Component\Routing\RouteCollection;
+
+class PrefixTraitTest extends TestCase
+{
+    public function testAddLocalizedPrefixUpdatesAliases()
+    {
+        $collection = new RouteCollection();
+        $collection->add('app_route', new Route('/path'));
+        $collection->addAlias('app_alias', 'app_route');
+
+        $trait = new class {
+            use PrefixTrait;
+
+            public function add(RouteCollection $c, array $p)
+            {
+                $this->addPrefix($c, $p, false);
+            }
+        };
+
+        $trait->add($collection, ['en' => '/en', 'fr' => '/fr']);
+
+        $this->assertNull($collection->get('app_route'));
+
+        $this->assertNotNull($collection->get('app_route.en'));
+        $this->assertNotNull($collection->get('app_route.fr'));
+
+        $this->assertNull($collection->getAlias('app_alias'), 'The original alias should be removed as its target no longer exists');
+
+        $aliasEn = $collection->getAlias('app_alias.en');
+        $this->assertNotNull($aliasEn, 'Localized alias for EN should exist');
+        $this->assertEquals('app_route.en', $aliasEn->getId());
+
+        $aliasFr = $collection->getAlias('app_alias.fr');
+        $this->assertNotNull($aliasFr, 'Localized alias for FR should exist');
+        $this->assertEquals('app_route.fr', $aliasFr->getId());
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -104,7 +104,7 @@
 
     protected function getObject(string $id): object
     {
-        return $this->loaderMap[$id] ?? null;
+        return $this->loaderMap[$id];
     }
 }
 
@@ -127,7 +127,7 @@
     public function loadRoutes(TestObjectLoader $loader, ?string $env = null)
     {
         if ($this->env !== $env) {
-            throw new \InvalidArgumentException(sprintf('Expected env "%s", "%s" given.', $this->env, $env));
+            throw new \InvalidArgumentException(\sprintf('Expected env "%s", "%s" given.', $this->env, $env));
         }
 
         return $this->collection;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Config\FileLocator;
+use Symfony\Component\Config\FileLocatorInterface;
 use Symfony\Component\Config\Loader\LoaderResolver;
 use Symfony\Component\Config\Resource\FileResource;
 use Symfony\Component\Routing\Loader\AttributeClassLoader;
@@ -26,7 +27,7 @@
 {
     public function testSupports()
     {
-        $loader = new PhpFileLoader($this->createMock(FileLocator::class));
+        $loader = new PhpFileLoader($this->createStub(FileLocatorInterface::class));
 
         $this->assertTrue($loader->supports('foo.php'), '->supports() returns true if the resource is loadable');
         $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
@@ -346,7 +347,7 @@
         new LoaderResolver([
             $loader = new PhpFileLoader($locator),
             new Psr4DirectoryLoader($locator),
-            new class() extends AttributeClassLoader {
+            new class extends AttributeClassLoader {
                 protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, object $annot): void
                 {
                     $route->setDefault('_controller', $class->getName().'::'.$method->getName());
@@ -371,7 +372,7 @@
     {
         new LoaderResolver([
             $loader = new PhpFileLoader(new FileLocator(\dirname(__DIR__).'/Fixtures')),
-            new class() extends AttributeClassLoader {
+            new class extends AttributeClassLoader {
                 protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, object $annot): void
                 {
                     $route->setDefault('_controller', $class->getName().'::'.$method->getName());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/Psr4DirectoryLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/Psr4DirectoryLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/Psr4DirectoryLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/Psr4DirectoryLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,6 +65,38 @@
         $this->assertSame(MyChildController::class.'::someAction', $route->getDefault('_controller'));
     }
 
+    public function testExcludeSubNamespace()
+    {
+        $fixturesPath = \dirname(__DIR__).'/Fixtures';
+        $excluded = [
+            rtrim(str_replace('\\', '/', $fixturesPath.'/Psr4Controllers/SubNamespace'), '/') => true,
+        ];
+        $collection = $this->getLoader()->load(
+            ['path' => 'Psr4Controllers', 'namespace' => 'Symfony\Component\Routing\Tests\Fixtures\Psr4Controllers', '_excluded' => $excluded],
+            'attribute'
+        );
+
+        $this->assertNotNull($collection->get('my_route'));
+        $this->assertNull($collection->get('my_other_controller_one'));
+        $this->assertNull($collection->get('my_controller_with_a_trait'));
+        $this->assertNull($collection->get('my_child_controller_from_abstract'));
+    }
+
+    public function testExcludeSingleFile()
+    {
+        $fixturesPath = \dirname(__DIR__).'/Fixtures';
+        $excluded = [
+            rtrim(str_replace('\\', '/', $fixturesPath.'/Psr4Controllers/MyController.php'), '/') => true,
+        ];
+        $collection = $this->getLoader()->load(
+            ['path' => 'Psr4Controllers', 'namespace' => 'Symfony\Component\Routing\Tests\Fixtures\Psr4Controllers', '_excluded' => $excluded],
+            'attribute'
+        );
+
+        $this->assertNull($collection->get('my_route'));
+        $this->assertNotNull($collection->get('my_other_controller_one'));
+    }
+
     /**
      * @dataProvider provideNamespacesThatNeedTrimming
      */
@@ -105,7 +137,7 @@
         return new DelegatingLoader(
             new LoaderResolver([
                 new Psr4DirectoryLoader($locator),
-                new class() extends AttributeClassLoader {
+                new class extends AttributeClassLoader {
                     protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, object $annot): void
                     {
                         $route->setDefault('_controller', $class->getName().'::'.$method->getName());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Config\FileLocator;
+use Symfony\Component\Config\FileLocatorInterface;
 use Symfony\Component\Config\Loader\LoaderResolver;
 use Symfony\Component\Config\Resource\FileResource;
 use Symfony\Component\Routing\Loader\AttributeClassLoader;
@@ -27,7 +28,7 @@
 {
     public function testSupports()
     {
-        $loader = new XmlFileLoader($this->createMock(FileLocator::class));
+        $loader = new XmlFileLoader($this->createStub(FileLocatorInterface::class));
 
         $this->assertTrue($loader->supports('foo.xml'), '->supports() returns true if the resource is loadable');
         $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
@@ -616,7 +617,7 @@
         new LoaderResolver([
             $loader = new XmlFileLoader($locator),
             new Psr4DirectoryLoader($locator),
-            new class() extends AttributeClassLoader {
+            new class extends AttributeClassLoader {
                 protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, object $annot): void
                 {
                     $route->setDefault('_controller', $class->getName().'::'.$method->getName());
@@ -641,7 +642,7 @@
     {
         new LoaderResolver([
             $loader = new XmlFileLoader(new FileLocator(\dirname(__DIR__).'/Fixtures')),
-            new class() extends AttributeClassLoader {
+            new class extends AttributeClassLoader {
                 protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, object $annot): void
                 {
                     $route->setDefault('_controller', $class->getName().'::'.$method->getName());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Config\FileLocator;
+use Symfony\Component\Config\FileLocatorInterface;
 use Symfony\Component\Config\Loader\LoaderResolver;
 use Symfony\Component\Config\Resource\FileResource;
 use Symfony\Component\Routing\Loader\AttributeClassLoader;
@@ -26,7 +27,7 @@
 {
     public function testSupports()
     {
-        $loader = new YamlFileLoader($this->createMock(FileLocator::class));
+        $loader = new YamlFileLoader($this->createStub(FileLocatorInterface::class));
 
         $this->assertTrue($loader->supports('foo.yml'), '->supports() returns true if the resource is loadable');
         $this->assertTrue($loader->supports('foo.yaml'), '->supports() returns true if the resource is loadable');
@@ -477,7 +478,7 @@
     {
         new LoaderResolver([
             $loader = new YamlFileLoader(new FileLocator(\dirname(__DIR__).'/Fixtures/localized')),
-            new class() extends AttributeClassLoader {
+            new class extends AttributeClassLoader {
                 protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, object $annot): void
                 {
                     $route->setDefault('_controller', $class->getName().'::'.$method->getName());
@@ -496,12 +497,12 @@
     {
         new LoaderResolver([
             $loader = new YamlFileLoader(new FileLocator(\dirname(__DIR__).'/Fixtures/locale_and_host')),
-            new class() extends AttributeClassLoader {
+            new class extends AttributeClassLoader {
                 protected function configureRoute(
                     Route $route,
                     \ReflectionClass $class,
                     \ReflectionMethod $method,
-                    object $annot
+                    object $annot,
                 ): void {
                     $route->setDefault('_controller', $class->getName().'::'.$method->getName());
                 }
@@ -524,7 +525,7 @@
         new LoaderResolver([
             $loader = new YamlFileLoader($locator),
             new Psr4DirectoryLoader($locator),
-            new class() extends AttributeClassLoader {
+            new class extends AttributeClassLoader {
                 protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, object $annot): void
                 {
                     $route->setDefault('_controller', $class->getName().'::'.$method->getName());
@@ -549,7 +550,7 @@
     {
         new LoaderResolver([
             $loader = new YamlFileLoader(new FileLocator(\dirname(__DIR__).'/Fixtures')),
-            new class() extends AttributeClassLoader {
+            new class extends AttributeClassLoader {
                 protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, object $annot): void
                 {
                     $route->setDefault('_controller', $class->getName().'::'.$method->getName());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/CompiledRedirectableUrlMatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/CompiledRedirectableUrlMatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/CompiledRedirectableUrlMatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/CompiledRedirectableUrlMatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,11 +19,15 @@
 
 class CompiledRedirectableUrlMatcherTest extends RedirectableUrlMatcherTest
 {
-    protected function getUrlMatcher(RouteCollection $routes, ?RequestContext $context = null)
+    protected function getUrlMatcher(RouteCollection $routes, ?RequestContext $context = null, bool $mock = false)
     {
         $dumper = new CompiledUrlMatcherDumper($routes);
         $compiledRoutes = $dumper->getCompiledRoutes();
 
+        if (!$mock) {
+            return new TestCompiledRedirectableUrlMatcher($compiledRoutes, $context ?? new RequestContext());
+        }
+
         return $this->getMockBuilder(TestCompiledRedirectableUrlMatcher::class)
             ->setConstructorArgs([$compiledRoutes, $context ?? new RequestContext()])
             ->onlyMethods(['redirect'])
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/CompiledUrlMatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/CompiledUrlMatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/CompiledUrlMatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/CompiledUrlMatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,11 +13,33 @@
 
 use Symfony\Component\Routing\Matcher\CompiledUrlMatcher;
 use Symfony\Component\Routing\Matcher\Dumper\CompiledUrlMatcherDumper;
+use Symfony\Component\Routing\Matcher\UrlMatcher;
 use Symfony\Component\Routing\RequestContext;
+use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
 
 class CompiledUrlMatcherTest extends UrlMatcherTest
 {
+    public function testStaticHostIsCaseInsensitive()
+    {
+        $collection = new RouteCollection();
+        $collection->add('static_host_route', new Route('/test', [], [], [], 'API.example.com'));
+
+        $context = new RequestContext('/test', 'GET', 'api.example.com');
+        $matcher = new UrlMatcher($collection, $context);
+
+        $result = $matcher->match('/test');
+        $this->assertEquals('static_host_route', $result['_route'], 'UrlMatcher should match case-insensitive host');
+
+        $dumper = new CompiledUrlMatcherDumper($collection);
+        $compiledRoutes = $dumper->getCompiledRoutes();
+
+        $compiledMatcher = new CompiledUrlMatcher($compiledRoutes, $context);
+
+        $result = $compiledMatcher->match('/test');
+        $this->assertEquals('static_host_route', $result['_route'], 'CompiledUrlMatcher should match case-insensitive host');
+    }
+
     protected function getUrlMatcher(RouteCollection $routes, ?RequestContext $context = null)
     {
         $dumper = new CompiledUrlMatcherDumper($routes);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/Dumper/StaticPrefixCollectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/Dumper/StaticPrefixCollectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/Dumper/StaticPrefixCollectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/Dumper/StaticPrefixCollectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,10 +44,10 @@
                     ['/leading/segment/', 'leading_segment'],
                 ],
                 <<<EOF
-root
-prefix_segment
-leading_segment
-EOF
+                    root
+                    prefix_segment
+                    leading_segment
+                    EOF,
             ],
             'Nested - small group' => [
                 [
@@ -56,11 +56,11 @@
                     ['/prefix/segment/bb', 'leading_segment'],
                 ],
                 <<<EOF
-root
-/prefix/segment/
--> prefix_segment
--> leading_segment
-EOF
+                    root
+                    /prefix/segment/
+                    -> prefix_segment
+                    -> leading_segment
+                    EOF,
             ],
             'Nested - contains item at intersection' => [
                 [
@@ -69,11 +69,11 @@
                     ['/prefix/segment/bb', 'leading_segment'],
                 ],
                 <<<EOF
-root
-/prefix/segment/
--> prefix_segment
--> leading_segment
-EOF
+                    root
+                    /prefix/segment/
+                    -> prefix_segment
+                    -> leading_segment
+                    EOF,
             ],
             'Simple one level nesting' => [
                 [
@@ -83,12 +83,12 @@
                     ['/group/other/', 'other_segment'],
                 ],
                 <<<EOF
-root
-/group/
--> nested_segment
--> some_segment
--> other_segment
-EOF
+                    root
+                    /group/
+                    -> nested_segment
+                    -> some_segment
+                    -> other_segment
+                    EOF,
             ],
             'Retain matching order with groups' => [
                 [
@@ -101,16 +101,16 @@
                     ['/group/ff/', 'ff'],
                 ],
                 <<<EOF
-/group/
--> aa
--> bb
--> cc
-root
-/group/
--> dd
--> ee
--> ff
-EOF
+                    /group/
+                    -> aa
+                    -> bb
+                    -> cc
+                    root
+                    /group/
+                    -> dd
+                    -> ee
+                    -> ff
+                    EOF,
             ],
             'Retain complex matching order with groups at base' => [
                 [
@@ -127,22 +127,22 @@
                     ['/aaa/333/', 'third_aaa'],
                 ],
                 <<<EOF
-/aaa/
--> first_aaa
--> second_aaa
--> third_aaa
-/prefixed/
--> /prefixed/group/
--> -> aa
--> -> bb
--> -> cc
--> root
--> /prefixed/group/
--> -> dd
--> -> ee
--> -> ff
--> parent
-EOF
+                    /aaa/
+                    -> first_aaa
+                    -> second_aaa
+                    -> third_aaa
+                    /prefixed/
+                    -> /prefixed/group/
+                    -> -> aa
+                    -> -> bb
+                    -> -> cc
+                    -> root
+                    -> /prefixed/group/
+                    -> -> dd
+                    -> -> ee
+                    -> -> ff
+                    -> parent
+                    EOF,
             ],
 
             'Group regardless of segments' => [
@@ -155,15 +155,15 @@
                     ['/group-cc/', 'g3'],
                 ],
                 <<<EOF
-/aaa-
--> a1
--> a2
--> a3
-/group-
--> g1
--> g2
--> g3
-EOF
+                    /aaa-
+                    -> a1
+                    -> a2
+                    -> a3
+                    /group-
+                    -> g1
+                    -> g2
+                    -> g3
+                    EOF,
             ],
         ];
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/ExpressionLanguageProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/ExpressionLanguageProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/ExpressionLanguageProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/ExpressionLanguageProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,12 +25,12 @@
     protected function setUp(): void
     {
         $functionProvider = new ServiceLocator([
-            'env' => fn () => fn (string $arg) => [
+            'env' => static fn () => static fn (string $arg) => [
                 'APP_ENV' => 'test',
                 'PHP_VERSION' => '7.2',
             ][$arg] ?? null,
-            'sum' => fn () => fn ($a, $b) => $a + $b,
-            'foo' => fn () => fn () => 'bar',
+            'sum' => static fn () => static fn ($a, $b) => $a + $b,
+            'foo' => static fn () => static fn () => 'bar',
         ]);
 
         $this->context = new RequestContext();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
         $coll = new RouteCollection();
         $coll->add('foo', new Route('/foo/'));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher->expects($this->once())->method('redirect')->willReturn([]);
         $matcher->match('/foo');
     }
@@ -34,7 +34,7 @@
         $coll = new RouteCollection();
         $coll->add('foo', new Route('/foo'));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher->expects($this->once())->method('redirect')->willReturn([]);
         $matcher->match('/foo/');
     }
@@ -56,7 +56,7 @@
         $coll = new RouteCollection();
         $coll->add('foo', new Route('/foo', [], [], [], '', ['FTP', 'HTTPS']));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher
             ->expects($this->once())
             ->method('redirect')
@@ -71,7 +71,7 @@
         $coll = new RouteCollection();
         $coll->add('foo', new Route('/foo', [], [], [], '', ['https', 'http']));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher
             ->expects($this->never())
             ->method('redirect');
@@ -83,7 +83,7 @@
         $coll = new RouteCollection();
         $coll->add('foo', new Route('/foo/{bar}', [], [], [], '', ['https']));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher
             ->expects($this->once())
             ->method('redirect')
@@ -98,7 +98,7 @@
         $coll = new RouteCollection();
         $coll->add('foo', new Route('/', [], [], [], '', ['https']));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher
             ->expects($this->once())
             ->method('redirect')
@@ -112,7 +112,7 @@
         $coll = new RouteCollection();
         $coll->add('foo', new Route('/foo/{bar}/'));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher
             ->expects($this->once())
             ->method('redirect')
@@ -127,7 +127,7 @@
         $coll = new RouteCollection();
         $coll->add('foo', new Route('/foo:bar/'));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher->expects($this->once())->method('redirect')->with('/foo%3Abar/')->willReturn([]);
         $matcher->match('/foo%3Abar');
     }
@@ -136,7 +136,7 @@
     {
         $coll = new RouteCollection();
         $coll->add('foo', new Route('/foo', [], [], [], '', ['https']));
-        $matcher = $this->getUrlMatcher($coll, new RequestContext());
+        $matcher = $this->getUrlMatcher($coll, new RequestContext(), true);
         $matcher->expects($this->once())->method('redirect')->with('/foo', 'foo', 'https')->willReturn([]);
         $this->assertSame(['_route' => 'foo'], $matcher->match('/foo'));
     }
@@ -147,7 +147,7 @@
         $coll->add('foo', new Route('/foo/'));
         $coll->add('bar', new Route('/{name}'));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher->expects($this->once())->method('redirect')->with('/foo/', 'foo')->willReturn(['_route' => 'foo']);
         $this->assertSame(['_route' => 'foo'], $matcher->match('/foo'));
 
@@ -155,7 +155,7 @@
         $coll->add('foo', new Route('/foo'));
         $coll->add('bar', new Route('/{name}/'));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher->expects($this->once())->method('redirect')->with('/foo', 'foo')->willReturn(['_route' => 'foo']);
         $this->assertSame(['_route' => 'foo'], $matcher->match('/foo/'));
     }
@@ -165,7 +165,7 @@
         $coll = new RouteCollection();
         $coll->add('foo', (new Route('/foo/'))->setSchemes(['https']));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher->expects($this->once())->method('redirect')->with('/foo/', 'foo', 'https')->willReturn([]);
         $matcher->match('/foo');
     }
@@ -176,7 +176,7 @@
         $coll->add('a', new Route('/api/customers/{customerId}/contactpersons', [], [], [], '', [], ['post']));
         $coll->add('b', new Route('/api/customers/{customerId}/contactpersons/', [], [], [], '', [], ['get']));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $expected = [
             '_route' => 'b',
             'customerId' => '123',
@@ -192,7 +192,7 @@
         $coll = new RouteCollection();
         $coll->add('a', new Route('/{a}', [], ['a' => '\d+']));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher->expects($this->once())->method('redirect')->with('/123')->willReturn([]);
 
         $this->assertEquals(['_route' => 'a', 'a' => '123'], $matcher->match('/123/'));
@@ -203,14 +203,23 @@
         $coll = new RouteCollection();
         $coll->add('a', new Route('/fr-fr/{a}', ['a' => 'aaa'], ['a' => '.+']));
 
-        $matcher = $this->getUrlMatcher($coll);
+        $matcher = $this->getUrlMatcher($coll, null, true);
         $matcher->expects($this->once())->method('redirect')->with('/fr-fr')->willReturn([]);
 
         $this->assertEquals(['_route' => 'a', 'a' => 'aaa'], $matcher->match('/fr-fr/'));
     }
 
-    protected function getUrlMatcher(RouteCollection $routes, ?RequestContext $context = null)
+    protected function getUrlMatcher(RouteCollection $routes, ?RequestContext $context = null, bool $mock = false)
     {
+        if (!$mock) {
+            return new class($routes, $context ?? new RequestContext()) extends RedirectableUrlMatcher {
+                public function redirect(string $path, string $route, ?string $scheme = null): array
+                {
+                    return [];
+                }
+            };
+        }
+
         return $this->getMockBuilder(RedirectableUrlMatcher::class)
             ->setConstructorArgs([$routes, $context ?? new RequestContext()])
             ->onlyMethods(['redirect'])
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Routing\Tests\Matcher;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Routing\Exception\MethodNotAllowedException;
 use Symfony\Component\Routing\Exception\NoConfigurationException;
 use Symfony\Component\Routing\Exception\ResourceNotFoundException;
@@ -22,6 +23,17 @@
 
 class UrlMatcherTest extends TestCase
 {
+    public function testZero()
+    {
+        $coll = new RouteCollection();
+        $coll->add('index', new Route('/'));
+
+        $matcher = $this->getUrlMatcher($coll);
+
+        $this->expectException(ResourceNotFoundException::class);
+        $matcher->match('0');
+    }
+
     public function testNoMethodSoAllowed()
     {
         $coll = new RouteCollection();
@@ -46,6 +58,33 @@
         }
     }
 
+    public function testMatchRequestHonorsTheRequestsMethodOverTheStaticContext()
+    {
+        $coll = new RouteCollection();
+        $coll->add('foo', new Route('/foo', [], [], [], '', [], ['GET']));
+
+        $matcher = $this->getUrlMatcher($coll, new RequestContext('', 'POST'));
+
+        $this->assertSame(
+            ['_route' => 'foo'],
+            $matcher->matchRequest(Request::create('/foo', 'GET'))
+        );
+    }
+
+    public function testMatchRequestRestoresTheContextAfterwards()
+    {
+        $coll = new RouteCollection();
+        $coll->add('foo', new Route('/foo', [], [], [], '', [], ['GET']));
+
+        $originalContext = new RequestContext('', 'POST', 'example.com');
+        $matcher = $this->getUrlMatcher($coll, $originalContext);
+        $matcher->matchRequest(Request::create('https://other.example/foo', 'GET'));
+
+        $this->assertSame('POST', $originalContext->getMethod());
+        $this->assertSame('example.com', $originalContext->getHost());
+        $this->assertSame($originalContext, $matcher->getContext());
+    }
+
     public function testMethodNotAllowedOnRoot()
     {
         $coll = new RouteCollection();
@@ -982,6 +1021,30 @@
         $this->assertEquals(['_route' => 'foo', 'bär' => 'baz', 'bäz' => 'foo'], $matcher->match('/foo/baz'));
     }
 
+    public function testParameterWithRequirementWithDefault()
+    {
+        $collection = new RouteCollection();
+
+        $route = new Route('/test/{foo}', ['foo' => 'foo-'], ['foo' => '\w+']);
+        $collection->add('test', $route);
+
+        $matcher = $this->getUrlMatcher($collection);
+
+        $result = $matcher->match('/test/foo');
+        $this->assertSame('test', $result['_route']);
+        $this->assertSame('foo', $result['foo']);
+
+        try {
+            $matcher->match('/test/foo-');
+        } catch (ResourceNotFoundException $e) {
+            $this->assertStringContainsString('No routes found', $e->getMessage());
+        }
+
+        $result = $matcher->match('/test');
+        $this->assertSame('test', $result['_route']);
+        $this->assertSame('foo-', $result['foo']);
+    }
+
     protected function getUrlMatcher(RouteCollection $routes, ?RequestContext $context = null)
     {
         return new UrlMatcher($routes, $context ?? new RequestContext());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/RouteCollectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/RouteCollectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/RouteCollectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/RouteCollectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -385,4 +385,18 @@
 
         $this->assertSame($expected, $collection3->all());
     }
+
+    public function testAddNamePrefixDoesNotBreakExternalAliases()
+    {
+        $collection = new RouteCollection();
+        $collection->add('local_route', new Route('/local'));
+        $collection->addAlias('alias_to_local', 'local_route');
+        $collection->addAlias('alias_to_external', 'external_route');
+        $collection->addNamePrefix('prefix_');
+
+        $aliases = $collection->getAliases();
+
+        $this->assertEquals('prefix_local_route', $aliases['prefix_alias_to_local']->getId(), 'Alias to local route should have its target prefixed');
+        $this->assertEquals('external_route', $aliases['prefix_alias_to_external']->getId(), 'Alias to external route should NOT have its target prefixed');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/RouteCompilerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/RouteCompilerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/RouteCompilerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/RouteCompilerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -287,9 +287,9 @@
     public static function getVariableNamesStartingWithADigit()
     {
         return [
-           ['09'],
-           ['123'],
-           ['1e2'],
+            ['09'],
+            ['123'],
+            ['1e2'],
         ];
     }
 
@@ -367,7 +367,7 @@
     public function testRouteWithTooLongVariableName()
     {
         $this->expectException(\DomainException::class);
-        $route = new Route(sprintf('/{%s}', str_repeat('a', RouteCompiler::VARIABLE_MAXIMUM_LENGTH + 1)));
+        $route = new Route(\sprintf('/{%s}', str_repeat('a', RouteCompiler::VARIABLE_MAXIMUM_LENGTH + 1)));
         $route->compile();
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/RouterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/RouterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/RouterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/RouterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Routing\Tests;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Config\Loader\LoaderInterface;
 use Symfony\Component\HttpFoundation\Request;
@@ -26,15 +25,10 @@
 
 class RouterTest extends TestCase
 {
-    private Router $router;
-    private MockObject&LoaderInterface $loader;
     private string $cacheDir;
 
     protected function setUp(): void
     {
-        $this->loader = $this->createMock(LoaderInterface::class);
-        $this->router = new Router($this->loader, 'routing.yml');
-
         $this->cacheDir = sys_get_temp_dir().\DIRECTORY_SEPARATOR.uniqid('router_', true);
     }
 
@@ -48,22 +42,24 @@
 
     public function testSetOptionsWithSupportedOptions()
     {
-        $this->router->setOptions([
+        $router = $this->getRouter();
+        $router->setOptions([
             'cache_dir' => './cache',
             'debug' => true,
             'resource_type' => 'ResourceType',
         ]);
 
-        $this->assertSame('./cache', $this->router->getOption('cache_dir'));
-        $this->assertTrue($this->router->getOption('debug'));
-        $this->assertSame('ResourceType', $this->router->getOption('resource_type'));
+        $this->assertSame('./cache', $router->getOption('cache_dir'));
+        $this->assertTrue($router->getOption('debug'));
+        $this->assertSame('ResourceType', $router->getOption('resource_type'));
     }
 
     public function testSetOptionsWithUnsupportedOptions()
     {
+        $router = $this->getRouter();
         $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionMessage('The Router does not support the following options: "option_foo", "option_bar"');
-        $this->router->setOptions([
+        $router->setOptions([
             'cache_dir' => './cache',
             'option_foo' => true,
             'option_bar' => 'baz',
@@ -73,71 +69,82 @@
 
     public function testSetOptionWithSupportedOption()
     {
-        $this->router->setOption('cache_dir', './cache');
+        $router = $this->getRouter();
+        $router->setOption('cache_dir', './cache');
 
-        $this->assertSame('./cache', $this->router->getOption('cache_dir'));
+        $this->assertSame('./cache', $router->getOption('cache_dir'));
     }
 
     public function testSetOptionWithUnsupportedOption()
     {
+        $router = $this->getRouter();
         $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionMessage('The Router does not support the "option_foo" option');
-        $this->router->setOption('option_foo', true);
+        $router->setOption('option_foo', true);
     }
 
     public function testGetOptionWithUnsupportedOption()
     {
+        $router = $this->getRouter();
         $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionMessage('The Router does not support the "option_foo" option');
-        $this->router->getOption('option_foo', true);
+        $router->getOption('option_foo');
     }
 
     public function testThatRouteCollectionIsLoaded()
     {
-        $this->router->setOption('resource_type', 'ResourceType');
+        $loader = $this->createMock(LoaderInterface::class);
+        $router = $this->getRouter($loader);
+        $router->setOption('resource_type', 'ResourceType');
 
         $routeCollection = new RouteCollection();
 
-        $this->loader->expects($this->once())
+        $loader->expects($this->once())
             ->method('load')->with('routing.yml', 'ResourceType')
             ->willReturn($routeCollection);
 
-        $this->assertSame($routeCollection, $this->router->getRouteCollection());
+        $this->assertSame($routeCollection, $router->getRouteCollection());
     }
 
     public function testMatcherIsCreatedIfCacheIsNotConfigured()
     {
-        $this->router->setOption('cache_dir', null);
+        $loader = $this->createMock(LoaderInterface::class);
+        $router = $this->getRouter($loader);
+        $router->setOption('cache_dir', null);
 
-        $this->loader->expects($this->once())
+        $loader->expects($this->once())
             ->method('load')->with('routing.yml', null)
             ->willReturn(new RouteCollection());
 
-        $this->assertInstanceOf(UrlMatcher::class, $this->router->getMatcher());
+        $this->assertInstanceOf(UrlMatcher::class, $router->getMatcher());
     }
 
     public function testGeneratorIsCreatedIfCacheIsNotConfigured()
     {
-        $this->router->setOption('cache_dir', null);
+        $loader = $this->createMock(LoaderInterface::class);
+        $router = $this->getRouter($loader);
+        $router->setOption('cache_dir', null);
 
-        $this->loader->expects($this->once())
+        $loader->expects($this->once())
             ->method('load')->with('routing.yml', null)
             ->willReturn(new RouteCollection());
 
-        $this->assertInstanceOf(CompiledUrlGenerator::class, $this->router->getGenerator());
+        $this->assertInstanceOf(CompiledUrlGenerator::class, $router->getGenerator());
     }
 
     public function testGeneratorIsCreatedIfCacheIsNotConfiguredNotCompiled()
     {
-        $this->router->setOption('cache_dir', null);
-        $this->router->setOption('generator_class', UrlGenerator::class);
+        $loader = $this->createMock(LoaderInterface::class);
+        $router = $this->getRouter($loader);
+        $router->setOption('cache_dir', null);
+        $router->setOption('generator_class', UrlGenerator::class);
 
-        $this->loader->expects($this->once())
+        $loader->expects($this->once())
             ->method('load')->with('routing.yml', null)
             ->willReturn(new RouteCollection());
 
-        $this->assertInstanceOf(UrlGenerator::class, $this->router->getGenerator());
-        $this->assertNotInstanceOf(CompiledUrlGenerator::class, $this->router->getGenerator());
+        $this->assertInstanceOf(UrlGenerator::class, $router->getGenerator());
+        $this->assertNotInstanceOf(CompiledUrlGenerator::class, $router->getGenerator());
     }
 
     public function testMatchRequestWithUrlMatcherInterface()
@@ -145,10 +152,11 @@
         $matcher = $this->createMock(UrlMatcherInterface::class);
         $matcher->expects($this->once())->method('match');
 
-        $p = new \ReflectionProperty($this->router, 'matcher');
-        $p->setValue($this->router, $matcher);
+        $router = $this->getRouter();
+        $p = new \ReflectionProperty($router, 'matcher');
+        $p->setValue($router, $matcher);
 
-        $this->router->matchRequest(Request::create('/'));
+        $router->matchRequest(Request::create('/'));
     }
 
     public function testMatchRequestWithRequestMatcherInterface()
@@ -156,19 +164,21 @@
         $matcher = $this->createMock(RequestMatcherInterface::class);
         $matcher->expects($this->once())->method('matchRequest');
 
-        $p = new \ReflectionProperty($this->router, 'matcher');
-        $p->setValue($this->router, $matcher);
+        $router = $this->getRouter();
+        $p = new \ReflectionProperty($router, 'matcher');
+        $p->setValue($router, $matcher);
 
-        $this->router->matchRequest(Request::create('/'));
+        $router->matchRequest(Request::create('/'));
     }
 
     public function testDefaultLocaleIsPassedToGeneratorClass()
     {
-        $this->loader->expects($this->once())
+        $loader = $this->createMock(LoaderInterface::class);
+        $loader->expects($this->once())
             ->method('load')->with('routing.yml', null)
             ->willReturn(new RouteCollection());
 
-        $router = new Router($this->loader, 'routing.yml', [
+        $router = new Router($loader, 'routing.yml', [
             'cache_dir' => null,
         ], null, null, 'hr');
 
@@ -183,11 +193,12 @@
 
     public function testDefaultLocaleIsPassedToCompiledGeneratorCacheClass()
     {
-        $this->loader->expects($this->once())
+        $loader = $this->createMock(LoaderInterface::class);
+        $loader->expects($this->once())
             ->method('load')->with('routing.yml', null)
             ->willReturn(new RouteCollection());
 
-        $router = new Router($this->loader, 'routing.yml', [
+        $router = new Router($loader, 'routing.yml', [
             'cache_dir' => $this->cacheDir,
         ], null, null, 'hr');
 
@@ -199,4 +210,9 @@
 
         $this->assertSame('hr', $p->getValue($generator));
     }
+
+    private function getRouter(?LoaderInterface $loader = null): Router
+    {
+        return new Router($loader ?? $this->createStub(LoaderInterface::class), 'routing.yml');
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/RouteTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/RouteTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Routing/Tests/RouteTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Routing/Tests/RouteTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,7 +65,7 @@
         $route = new Route('/{foo}');
         $route->setOptions(['foo' => 'bar']);
         $this->assertEquals(array_merge([
-        'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler',
+            'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler',
         ], ['foo' => 'bar']), $route->getOptions(), '->setOptions() sets the options');
         $this->assertEquals($route, $route->setOptions([]), '->setOptions() implements a fluent interface');
 
@@ -98,7 +98,7 @@
         $this->assertEquals('bar2', $route->getDefault('foo2'), '->getDefault() return the default value');
         $this->assertNull($route->getDefault('not_defined'), '->getDefault() return null if default value is not set');
 
-        $route->setDefault('_controller', $closure = fn () => 'Hello');
+        $route->setDefault('_controller', $closure = static fn () => 'Hello');
         $this->assertEquals($closure, $route->getDefault('_controller'), '->setDefault() sets a default value');
 
         $route->setDefaults(['foo' => 'foo']);
@@ -154,13 +154,13 @@
     public static function getInvalidRequirements()
     {
         return [
-           [''],
-           ['^$'],
-           ['^'],
-           ['$'],
-           ['\A\z'],
-           ['\A'],
-           ['\z'],
+            [''],
+            ['^$'],
+            ['^'],
+            ['$'],
+            ['\A\z'],
+            ['\A'],
+            ['\z'],
         ];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/GenericRuntime.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/GenericRuntime.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/GenericRuntime.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/GenericRuntime.php	2026-05-20 10:56:49.000000000 +0200
@@ -69,7 +69,7 @@
         }
 
         if ($debug) {
-            umask(0000);
+            umask(0o000);
             $_SERVER[$debugKey] = $_ENV[$debugKey] = '1';
         } else {
             $_SERVER[$debugKey] = $_ENV[$debugKey] = '0';
@@ -125,14 +125,14 @@
             }
 
             if (!\is_callable($application)) {
-                throw new \LogicException(sprintf('"%s" doesn\'t know how to handle apps of type "%s".', get_debug_type($this), get_debug_type($application)));
+                throw new \LogicException(\sprintf('"%s" doesn\'t know how to handle apps of type "%s".', get_debug_type($this), get_debug_type($application)));
             }
 
             $application = $application(...);
         }
 
         if ($_SERVER[$this->options['debug_var_name']] && ($r = new \ReflectionFunction($application)) && $r->getNumberOfRequiredParameters()) {
-            throw new \ArgumentCountError(sprintf('Zero argument should be required by the runner callable, but at least one is in "%s" on line "%d.', $r->getFileName(), $r->getStartLine()));
+            throw new \ArgumentCountError(\sprintf('Zero argument should be required by the runner callable, but at least one is in "%s" on line "%d.', $r->getFileName(), $r->getStartLine()));
         }
 
         return new ClosureRunner($application);
@@ -171,7 +171,7 @@
         if (!$runtime = $this->getRuntime($type)) {
             $r = $parameter->getDeclaringFunction();
 
-            throw new \InvalidArgumentException(sprintf('Cannot resolve argument "%s $%s" in "%s" on line "%d": "%s" supports only arguments "array $context", "array $argv" and "array $request", or a runtime named "Symfony\Runtime\%1$sRuntime".', $type, $parameter->name, $r->getFileName(), $r->getStartLine(), get_debug_type($this)));
+            throw new \InvalidArgumentException(\sprintf('Cannot resolve argument "%s $%s" in "%s" on line "%d": "%s" supports only arguments "array $context", "array $argv" and "array $request", or a runtime named "Symfony\Runtime\%1$sRuntime".', $type, $parameter->name, $r->getFileName(), $r->getStartLine(), get_debug_type($this)));
         }
 
         return $runtime->getArgument($parameter, $type);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Internal/BasicErrorHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Internal/BasicErrorHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Internal/BasicErrorHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Internal/BasicErrorHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 {
     public static function register(bool $debug): void
     {
-        error_reporting(-1);
+        error_reporting(\E_ALL & ~\E_DEPRECATED & ~\E_USER_DEPRECATED);
 
         if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
             ini_set('display_errors', $debug);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Internal/ComposerPlugin.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Internal/ComposerPlugin.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Internal/ComposerPlugin.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Internal/ComposerPlugin.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
             }
 
             if (!is_file($autoloadTemplate)) {
-                throw new \InvalidArgumentException(sprintf('File "%s" defined under "extra.runtime.autoload_template" in your composer.json file not found.', $this->composer->getPackage()->getExtra()['runtime']['autoload_template']));
+                throw new \InvalidArgumentException(\sprintf('File "%s" defined under "extra.runtime.autoload_template" in your composer.json file not found.', $this->composer->getPackage()->getExtra()['runtime']['autoload_template']));
             }
         }
 
@@ -117,3 +117,5 @@
         ];
     }
 }
+
+// @php-cs-fixer-ignore no_useless_concat_operator Disable to not override hack about __DIR__ and Composer pre-processes plugins
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Internal/SymfonyErrorHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Internal/SymfonyErrorHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Internal/SymfonyErrorHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Internal/SymfonyErrorHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
             return;
         }
 
-        error_reporting(-1);
+        error_reporting(\E_ALL & ~\E_DEPRECATED & ~\E_USER_DEPRECATED);
 
         if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
             ini_set('display_errors', $debug);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Resolver/DebugClosureResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Resolver/DebugClosureResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Resolver/DebugClosureResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Resolver/DebugClosureResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
 
                 $r = new \ReflectionFunction($closure);
 
-                throw new \TypeError(sprintf('Unexpected value of type "%s" returned, "object" expected from "%s" on line "%d".', get_debug_type($app), $r->getFileName(), $r->getStartLine()));
+                throw new \TypeError(\sprintf('Unexpected value of type "%s" returned, "object" expected from "%s" on line "%d".', get_debug_type($app), $r->getFileName(), $r->getStartLine()));
             },
             $arguments,
         ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Runner/ClosureRunner.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Runner/ClosureRunner.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Runner/ClosureRunner.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Runner/ClosureRunner.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
         if (null !== $exitStatus && !\is_int($exitStatus)) {
             $r = new \ReflectionFunction($this->closure);
 
-            throw new \TypeError(sprintf('Unexpected value of type "%s" returned, "string|int|null" expected from "%s" on line "%d".', get_debug_type($exitStatus), $r->getFileName(), $r->getStartLine()));
+            throw new \TypeError(\sprintf('Unexpected value of type "%s" returned, "string|int|null" expected from "%s" on line "%d".', get_debug_type($exitStatus), $r->getFileName(), $r->getStartLine()));
         }
 
         return $exitStatus ?? 0;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/SymfonyRuntime.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/SymfonyRuntime.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/SymfonyRuntime.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/SymfonyRuntime.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,6 +70,7 @@
     private readonly ConsoleOutput $output;
     private readonly Application $console;
     private readonly Command $command;
+    private readonly Request $request;
 
     /**
      * @param array {
@@ -95,7 +96,7 @@
 
         if (isset($options['env'])) {
             $_SERVER[$envKey] = $options['env'];
-        } elseif (empty($_GET) && isset($_SERVER['argv']) && class_exists(ArgvInput::class)) {
+        } elseif (!isset($_SERVER['QUERY_STRING']) && isset($_SERVER['argv']) && class_exists(ArgvInput::class)) {
             $this->options = $options;
             $this->getInput();
         }
@@ -108,7 +109,7 @@
 
             if (isset($this->input) && ($options['dotenv_overload'] ?? false)) {
                 if ($this->input->getParameterOption(['--env', '-e'], $_SERVER[$envKey], true) !== $_SERVER[$envKey]) {
-                    throw new \LogicException(sprintf('Cannot use "--env" or "-e" when the "%s" file defines "%s" and the "dotenv_overload" runtime option is true.', $options['dotenv_path'] ?? '.env', $envKey));
+                    throw new \LogicException(\sprintf('Cannot use "--env" or "-e" when the "%s" file defines "%s" and the "dotenv_overload" runtime option is true.', $options['dotenv_path'] ?? '.env', $envKey));
                 }
 
                 if ($_SERVER[$debugKey] && $this->input->hasParameterOption('--no-debug', true)) {
@@ -131,7 +132,7 @@
     public function getRunner(?object $application): RunnerInterface
     {
         if ($application instanceof HttpKernelInterface) {
-            return new HttpKernelRunner($application, Request::createFromGlobals(), $this->options['debug'] ?? false);
+            return new HttpKernelRunner($application, $this->request ??= Request::createFromGlobals(), $this->options['debug'] ?? false);
         }
 
         if ($application instanceof Response) {
@@ -144,7 +145,11 @@
 
             if (!$application->getName() || !$console->has($application->getName())) {
                 $application->setName($_SERVER['argv'][0]);
-                $console->add($application);
+                if (method_exists($console, 'addCommand')) {
+                    $console->addCommand($application);
+                } else {
+                    $console->add($application);
+                }
             }
 
             $console->setDefaultCommand($application->getName(), true);
@@ -175,7 +180,7 @@
     protected function getArgument(\ReflectionParameter $parameter, ?string $type): mixed
     {
         return match ($type) {
-            Request::class => Request::createFromGlobals(),
+            Request::class => $this->request ??= Request::createFromGlobals(),
             InputInterface::class => $this->getInput(),
             OutputInterface::class => $this->output ??= new ConsoleOutput(),
             Application::class => $this->console ??= new Application(),
@@ -203,7 +208,7 @@
 
     private function getInput(): ArgvInput
     {
-        if (!empty($_GET) && filter_var(ini_get('register_argc_argv'), \FILTER_VALIDATE_BOOL)) {
+        if (isset($_SERVER['QUERY_STRING']) && filter_var(\ini_get('register_argc_argv'), \FILTER_VALIDATE_BOOL)) {
             throw new \Exception('CLI applications cannot be run safely on non-CLI SAPIs with register_argc_argv=On.');
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/application.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/application.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/application.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/application.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,14 +16,20 @@
 
 require __DIR__.'/autoload.php';
 
-return function (array $context) {
+return static function (array $context) {
     $command = new Command('go');
-    $command->setCode(function (InputInterface $input, OutputInterface $output) use ($context) {
+    $command->setCode(static function (InputInterface $input, OutputInterface $output) use ($context): int {
         $output->write('OK Application '.$context['SOME_VAR']);
+
+        return 0;
     });
 
     $app = new Application();
-    $app->add($command);
+    if (method_exists($app, 'addCommand')) {
+        $app->addCommand($command);
+    } else {
+        $app->add($command);
+    }
     $app->setDefaultCommand('go', true);
 
     return $app;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/autoload.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/autoload.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/autoload.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/autoload.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 $_SERVER['APP_RUNTIME_OPTIONS'] ??= [];
 $_SERVER['APP_RUNTIME_OPTIONS'] += [
+    'error_handler' => false,
     'project_dir' => __DIR__,
 ] + ($_SERVER['APP_RUNTIME_OPTIONS'] ?? []);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command2.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command2.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command2.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command2.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,7 @@
 
 require __DIR__.'/autoload.php';
 
-return function (Command $command, InputInterface $input, OutputInterface $output, array $context) {
+return static function (Command $command, InputInterface $input, OutputInterface $output, array $context) {
     $command->addArgument('name', null, 'Who should I greet?', 'World');
 
     return static function () use ($input, $output, $context) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command_list.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command_list.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command_list.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command_list.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,11 @@
     $command->setName('my_command');
 
     [$cmd, $args] = $runtime->getResolver(require __DIR__.'/command.php')->resolve();
-    $app->add($cmd(...$args));
+    if (method_exists($app, 'addCommand')) {
+        $app->addCommand($cmd(...$args));
+    } else {
+        $app->add($cmd(...$args));
+    }
 
     return $app;
 };
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/command.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,10 +16,12 @@
 
 require __DIR__.'/autoload.php';
 
-return function (Command $command, InputInterface $input, OutputInterface $output, array $context) {
+return static function (Command $command, InputInterface $input, OutputInterface $output, array $context) {
     $command->addOption('hello', 'e', InputOption::VALUE_REQUIRED, 'How should I greet?', 'OK');
 
-    return $command->setCode(function () use ($input, $output, $context) {
+    return $command->setCode(static function () use ($input, $output, $context): int {
         $output->write($input->getOption('hello').' Command '.$context['SOME_VAR']);
+
+        return 0;
     });
 };
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_debug_exists_0_to_1.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_debug_exists_0_to_1.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_debug_exists_0_to_1.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_debug_exists_0_to_1.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,8 @@
 
 require __DIR__.'/autoload.php';
 
-return static fn (Command $command, OutputInterface $output, array $context): Command => $command->setCode(static function () use ($output, $context): void {
+return static fn (Command $command, OutputInterface $output, array $context): Command => $command->setCode(static function () use ($output, $context): int {
     $output->writeln($context['DEBUG_ENABLED']);
+
+    return 0;
 });
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_debug_exists_1_to_0.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_debug_exists_1_to_0.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_debug_exists_1_to_0.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_debug_exists_1_to_0.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,8 @@
 
 require __DIR__.'/autoload.php';
 
-return static fn (Command $command, OutputInterface $output, array $context): Command => $command->setCode(static function () use ($output, $context): void {
+return static fn (Command $command, OutputInterface $output, array $context): Command => $command->setCode(static function () use ($output, $context): int {
     $output->writeln($context['DEBUG_MODE']);
+
+    return 0;
 });
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_env_exists.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_env_exists.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_env_exists.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_env_exists.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,8 @@
 
 require __DIR__.'/autoload.php';
 
-return static fn (Command $command, OutputInterface $output, array $context): Command => $command->setCode(static function () use ($output, $context): void {
+return static fn (Command $command, OutputInterface $output, array $context): Command => $command->setCode(static function () use ($output, $context): int {
     $output->writeln($context['ENV_MODE']);
+
+    return 0;
 });
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_no_debug.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_no_debug.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_no_debug.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload_command_no_debug.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,6 +19,8 @@
 
 require __DIR__.'/autoload.php';
 
-return static fn (Command $command, OutputInterface $output, array $context): Command => $command->setCode(static function () use ($output, $context): void {
+return static fn (Command $command, OutputInterface $output, array $context): Command => $command->setCode(static function () use ($output, $context): int {
     $output->writeln($context['DEBUG_ENABLED']);
+
+    return 0;
 });
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/dotenv_overload.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,4 +19,4 @@
 
 require __DIR__.'/autoload.php';
 
-return fn (Request $request, array $context) => new Response('OK Request '.$context['SOME_VAR']);
+return static fn (Request $request, array $context) => new Response('OK Request '.$context['SOME_VAR']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/generic-request.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/generic-request.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/generic-request.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/generic-request.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,10 +18,10 @@
 $_SERVER['APP_RUNTIME'] = GenericRuntime::class;
 require __DIR__.'/autoload.php';
 
-return function (Request $request, array $context) {
+return static function (Request $request, array $context) {
     echo class_exists(RequestRuntime::class, false) ? 'OK request runtime' : 'KO request runtime', "\n";
 
-    return new StreamedResponse(function () use ($context) {
+    return new StreamedResponse(static function () use ($context) {
         echo 'OK Request '.$context['SOME_VAR'], "\n";
         echo class_exists(ResponseRuntime::class, false) ? 'KO response runtime' : 'OK response runtime', "\n";
     });
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/hello.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/hello.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/hello.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/hello.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,6 @@
 
 require __DIR__.'/autoload.php';
 
-return function (array $context): void {
+return static function (array $context): void {
     echo 'Hello World ', $context['SOME_VAR'];
 };
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,4 +32,6 @@
     }
 }
 
-return fn (array $context) => new TestKernel($context['APP_ENV'], $context['SOME_VAR']);
+return static fn (array $context) => new TestKernel($context['APP_ENV'], $context['SOME_VAR']);
+
+// @php-cs-fixer-ignore psr_autoloading
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel_query_string_argv_bypass.phpt symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel_query_string_argv_bypass.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel_query_string_argv_bypass.phpt	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel_query_string_argv_bypass.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,21 @@
+--TEST--
+Test that argv is ignored on web requests even when $_GET parses empty (QUERY_STRING gap)
+--INI--
+display_errors=1
+register_argc_argv=1
+--FILE--
+<?php
+
+// A real web request with QUERY_STRING="=+--env=prod+--no-debug":
+// parse_str() drops the leading "=" token so $_GET is empty,
+// but the web SAPI builds argv from the raw query and feeds attacker flags in.
+$_GET = [];
+$_SERVER['QUERY_STRING'] = '=+--env=prod+--no-debug';
+$_SERVER['argc'] = 3;
+$_SERVER['argv'] = ['=', '--env=prod', '--no-debug'];
+
+require $_SERVER['SCRIPT_FILENAME'] = __DIR__.'/kernel.php';
+
+?>
+--EXPECTF--
+OK Kernel (env=dev) foo_bar
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel_register_argc_argv.phpt symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel_register_argc_argv.phpt
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel_register_argc_argv.phpt	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/kernel_register_argc_argv.phpt	2026-05-20 10:56:49.000000000 +0200
@@ -8,6 +8,7 @@
 
 // emulating PHP behavior with register_argc_argv=1
 $_GET['-e_test'] = '';
+$_SERVER['QUERY_STRING'] = '-e_test=';
 $_SERVER['argc'] = 1;
 $_SERVER['argv'] = [' ', '-e', 'test'];
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/request.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/request.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/request.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/request.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,4 +14,4 @@
 
 require __DIR__.'/autoload.php';
 
-return fn (Request $request, array $context) => new Response('OK Request '.$context['SOME_VAR']);
+return static fn (Request $request, array $context) => new Response('OK Request '.$context['SOME_VAR']);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/runtime-options.php symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/runtime-options.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Runtime/Tests/phpt/runtime-options.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Runtime/Tests/phpt/runtime-options.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,7 @@
 ];
 require __DIR__.'/autoload.php';
 
-return function (array $context): void {
+return static function (array $context): void {
     if (isset($context['APP_ENV']) || isset($context['APP_DEBUG'])) {
         echo 'An error occurred on the variable name options.';
     } else {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Command/DebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Command/DebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Command/DebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Command/DebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,9 @@
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Style\SymfonyStyle;
 use Symfony\Component\Scheduler\RecurringMessage;
+use Symfony\Component\Scheduler\Schedule;
 use Symfony\Component\Scheduler\ScheduleProviderInterface;
+use Symfony\Contracts\Cache\ItemInterface;
 use Symfony\Contracts\Service\ServiceProviderInterface;
 
 /**
@@ -42,7 +44,7 @@
     protected function configure(): void
     {
         $this
-            ->addArgument('schedule', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, sprintf('The schedule name (one of "%s")', implode('", "', $this->scheduleNames)), null, $this->scheduleNames)
+            ->addArgument('schedule', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, \sprintf('The schedule name (one of "%s")', implode('", "', $this->scheduleNames)), null, $this->scheduleNames)
             ->addOption('date', null, InputOption::VALUE_REQUIRED, 'The date to use for the next run date', 'now')
             ->addOption('all', null, InputOption::VALUE_NONE, 'Display all recurring messages, including the terminated ones')
             ->setHelp(<<<'EOF'
@@ -78,24 +80,30 @@
             return 2;
         }
 
-        $date = new \DateTimeImmutable($input->getOption('date'));
-        if ('now' !== $input->getOption('date')) {
-            $io->comment(sprintf('All next run dates computed from %s.', $date->format('r')));
+        $dateOption = $input->getOption('date');
+        $date = new \DateTimeImmutable($dateOption);
+        if ('now' !== $dateOption) {
+            $io->comment(\sprintf('All next run dates computed from %s.', $date->format('r')));
         }
 
         foreach ($names as $name) {
             $io->section($name);
 
-            /** @var ScheduleProviderInterface $schedule */
-            $schedule = $this->schedules->get($name);
-            if (!$messages = $schedule->getSchedule()->getRecurringMessages()) {
-                $io->warning(sprintf('No recurring messages found for schedule "%s".', $name));
+            /** @var Schedule $schedule */
+            $schedule = $this->schedules->get($name)->getSchedule();
+            if (!$messages = $schedule->getRecurringMessages()) {
+                $io->warning(\sprintf('No recurring messages found for schedule "%s".', $name));
 
                 continue;
             }
+            $effectiveDate = $date;
+            if ('now' === $dateOption && null !== $checkpoint = self::getStatefulCheckpointTime($schedule, $name)) {
+                $effectiveDate = $checkpoint;
+                $io->comment(\sprintf('Schedule "%s" is stateful: next run dates computed from stored checkpoint %s.', $name, $effectiveDate->format('r')));
+            }
             $io->table(
                 ['Trigger', 'Provider', 'Next Run'],
-                array_filter(array_map(self::renderRecurringMessage(...), $messages, array_fill(0, \count($messages), $date), array_fill(0, \count($messages), $input->getOption('all')))),
+                array_filter(array_map(self::renderRecurringMessage(...), $messages, array_fill(0, \count($messages), $effectiveDate), array_fill(0, \count($messages), $input->getOption('all')))),
             );
         }
 
@@ -103,6 +111,33 @@
     }
 
     /**
+     * Returns a stateful schedule's last-run time, read from its cache without populating it.
+     *
+     * This mirrors the worker's checkpoint storage (key and `[\DateTimeImmutable $time, int $index,
+     * \DateTimeImmutable $from]` tuple, owned by {@see \Symfony\Component\Scheduler\Generator\Checkpoint}).
+     * It is a best-effort base date for the displayed next runs, not an exact replay of the worker;
+     * anything unexpected falls back to `null` so `debug:scheduler` keeps using `now` instead of crashing.
+     */
+    private static function getStatefulCheckpointTime(Schedule $schedule, string $name): ?\DateTimeImmutable
+    {
+        if (!$state = $schedule->getState()) {
+            return null;
+        }
+
+        $checkpoint = $state->get('scheduler_checkpoint_'.$name, static function (ItemInterface $item, bool &$save) {
+            $save = false;
+
+            return null;
+        });
+
+        if (!\is_array($checkpoint)) {
+            return null;
+        }
+
+        return ($checkpoint[0] ?? null) instanceof \DateTimeImmutable ? $checkpoint[0] : null;
+    }
+
+    /**
      * @return array{0:string,1:string,2:string}|null
      */
     private static function renderRecurringMessage(RecurringMessage $recurringMessage, \DateTimeImmutable $date, bool $all): ?array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
     },
     "require-dev": {
         "dragonmantank/cron-expression": "^3.1",
-        "symfony/cache": "^5.4|^6.0|^7.0",
+        "symfony/cache": "^6.4.36|^7.4.8",
         "symfony/console": "^5.4|^6.0|^7.0",
         "symfony/dependency-injection": "^5.4|^6.0|^7.0",
         "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/DependencyInjection/AddScheduleMessengerPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/DependencyInjection/AddScheduleMessengerPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/DependencyInjection/AddScheduleMessengerPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/DependencyInjection/AddScheduleMessengerPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Scheduler\DependencyInjection;
 
+use Symfony\Component\Console\Input\ArrayInput;
 use Symfony\Component\Console\Messenger\RunCommandMessage;
 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -54,8 +55,17 @@
                 $serviceDefinition = $container->getDefinition($serviceId);
                 $scheduleName = $tagAttributes['schedule'] ?? 'default';
 
-                if ($serviceDefinition->hasTag('console.command')) {
-                    $message = new Definition(RunCommandMessage::class, [$serviceDefinition->getClass()::getDefaultName().(empty($tagAttributes['arguments']) ? '' : " {$tagAttributes['arguments']}")]);
+                if ($commandTags = $serviceDefinition->getTag('console.command')) {
+                    $aliases = explode('|', $commandTags[0]['command'] ?? $serviceDefinition->getClass()::getDefaultName() ?? '');
+                    if ('' === $commandName = array_shift($aliases)) {
+                        $commandName = array_shift($aliases) ?? '';
+                    }
+                    if (\is_array($arguments = $tagAttributes['arguments'] ?? '')) {
+                        $input = (string) new ArrayInput(['command' => $commandName, ...$arguments]);
+                    } else {
+                        $input = $commandName.('' !== $arguments ? " $arguments" : '');
+                    }
+                    $message = new Definition(RunCommandMessage::class, [$input]);
                 } else {
                     $message = new Definition(ServiceCallMessage::class, [$serviceId, $tagAttributes['method'] ?? '__invoke', (array) ($tagAttributes['arguments'] ?? [])]);
                 }
@@ -66,17 +76,17 @@
 
                 $taskArguments = [
                     '$message' => $message,
-                ] + array_filter(match ($tagAttributes['trigger'] ?? throw new InvalidArgumentException(sprintf('Tag "scheduler.task" is missing attribute "trigger" on service "%s".', $serviceId))) {
+                ] + array_filter(match ($tagAttributes['trigger'] ?? throw new InvalidArgumentException(\sprintf('Tag "scheduler.task" is missing attribute "trigger" on service "%s".', $serviceId))) {
                     'every' => [
-                        '$frequency' => $tagAttributes['frequency'] ?? throw new InvalidArgumentException(sprintf('Tag "scheduler.task" is missing attribute "frequency" on service "%s".', $serviceId)),
+                        '$frequency' => $tagAttributes['frequency'] ?? throw new InvalidArgumentException(\sprintf('Tag "scheduler.task" is missing attribute "frequency" on service "%s".', $serviceId)),
                         '$from' => $tagAttributes['from'] ?? null,
                         '$until' => $tagAttributes['until'] ?? null,
                     ],
                     'cron' => [
-                        '$expression' => $tagAttributes['expression'] ?? throw new InvalidArgumentException(sprintf('Tag "scheduler.task" is missing attribute "expression" on service "%s".', $serviceId)),
+                        '$expression' => $tagAttributes['expression'] ?? throw new InvalidArgumentException(\sprintf('Tag "scheduler.task" is missing attribute "expression" on service "%s".', $serviceId)),
                         '$timezone' => $tagAttributes['timezone'] ?? null,
                     ],
-                }, fn ($value) => null !== $value);
+                }, static fn ($value) => null !== $value);
 
                 $tasksPerSchedule[$scheduleName][] = $taskDefinition = (new Definition(RecurringMessage::class))
                     ->setFactory([RecurringMessage::class, $tagAttributes['trigger']])
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Generator/Checkpoint.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Generator/Checkpoint.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Generator/Checkpoint.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Generator/Checkpoint.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,11 +11,14 @@
 
 namespace Symfony\Component\Scheduler\Generator;
 
+use Psr\Cache\CacheItemInterface;
 use Symfony\Component\Lock\LockInterface;
 use Symfony\Contracts\Cache\CacheInterface;
 
 final class Checkpoint implements CheckpointInterface
 {
+    private const CACHE_EXPIRY = 5 * 365 * 86400; // 5 years
+
     private \DateTimeImmutable $from;
     private \DateTimeImmutable $time;
     private int $index = -1;
@@ -38,7 +41,11 @@
         }
 
         if ($this->cache) {
-            [$this->time, $this->index, $this->from] = $this->cache->get($this->name, fn () => [$now, -1, $now]) + [2 => $now];
+            [$this->time, $this->index, $this->from] = $this->cache->get($this->name, static function (CacheItemInterface $item) use ($now) {
+                $item->expiresAfter(self::CACHE_EXPIRY);
+
+                return [$now, -1, $now];
+            }) + [2 => $now];
             $this->save($this->time, $this->index);
         } elseif ($this->reset) {
             $this->reset = false;
@@ -71,7 +78,12 @@
         $this->time = $time;
         $this->index = $index;
         $this->from ??= $time;
-        $this->cache?->get($this->name, fn () => [$time, $index, $this->from], \INF);
+        $from = $this->from;
+        $this->cache?->get($this->name, static function (CacheItemInterface $item) use ($time, $index, $from) {
+            $item->expiresAfter(self::CACHE_EXPIRY);
+
+            return [$time, $index, $from];
+        }, \INF);
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Messenger/SchedulerTransportFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Messenger/SchedulerTransportFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Messenger/SchedulerTransportFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Messenger/SchedulerTransportFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,10 +37,10 @@
             throw new InvalidArgumentException('The Schedule DSN must contains a name, e.g. "schedule://default".');
         }
         if (false === $scheduleName = parse_url($dsn, \PHP_URL_HOST)) {
-            throw new InvalidArgumentException(sprintf('The given Schedule DSN "%s" is invalid.', $dsn));
+            throw new InvalidArgumentException(\sprintf('The given Schedule DSN "%s" is invalid.', $dsn));
         }
         if (!$this->scheduleProviders->has($scheduleName)) {
-            throw new InvalidArgumentException(sprintf('The schedule "%s" is not found.', $scheduleName));
+            throw new InvalidArgumentException(\sprintf('The schedule "%s" is not found.', $scheduleName));
         }
 
         /** @var ScheduleProviderInterface $scheduleProvider */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Messenger/SchedulerTransport.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Messenger/SchedulerTransport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Messenger/SchedulerTransport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Messenger/SchedulerTransport.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,7 +52,7 @@
 
     public function send(Envelope $envelope): Envelope
     {
-        throw new LogicException(sprintf('"%s" cannot send messages.', __CLASS__));
+        throw new LogicException(\sprintf('"%s" cannot send messages.', __CLASS__));
     }
 
     public function getMessageGenerator(): MessageGeneratorInterface
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Schedule.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Schedule.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Schedule.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Schedule.php	2026-05-20 10:56:49.000000000 +0200
@@ -142,7 +142,7 @@
     public function before(callable $listener, int $priority = 0): static
     {
         if (!$this->dispatcher) {
-            throw new LogicException(sprintf('To register a listener with "%s()", you need to set an event dispatcher on the Schedule.', __METHOD__));
+            throw new LogicException(\sprintf('To register a listener with "%s()", you need to set an event dispatcher on the Schedule.', __METHOD__));
         }
 
         $this->dispatcher->addListener(PreRunEvent::class, $listener, $priority);
@@ -153,7 +153,7 @@
     public function after(callable $listener, int $priority = 0): static
     {
         if (!$this->dispatcher) {
-            throw new LogicException(sprintf('To register a listener with "%s()", you need to set an event dispatcher on the Schedule.', __METHOD__));
+            throw new LogicException(\sprintf('To register a listener with "%s()", you need to set an event dispatcher on the Schedule.', __METHOD__));
         }
 
         $this->dispatcher->addListener(PostRunEvent::class, $listener, $priority);
@@ -164,7 +164,7 @@
     public function onFailure(callable $listener, int $priority = 0): static
     {
         if (!$this->dispatcher) {
-            throw new LogicException(sprintf('To register a listener with "%s()", you need to set an event dispatcher on the Schedule.', __METHOD__));
+            throw new LogicException(\sprintf('To register a listener with "%s()", you need to set an event dispatcher on the Schedule.', __METHOD__));
         }
 
         $this->dispatcher->addListener(FailureEvent::class, $listener, $priority);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Command/DebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Command/DebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Command/DebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Command/DebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,11 +12,13 @@
 namespace Symfony\Component\Scheduler\Tests\Command;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Cache\Adapter\ArrayAdapter;
 use Symfony\Component\Console\Tester\CommandTester;
 use Symfony\Component\Scheduler\Command\DebugCommand;
 use Symfony\Component\Scheduler\RecurringMessage;
 use Symfony\Component\Scheduler\Schedule;
 use Symfony\Component\Scheduler\Trigger\CallbackTrigger;
+use Symfony\Contracts\Cache\ItemInterface;
 use Symfony\Contracts\Service\ServiceProviderInterface;
 
 /**
@@ -38,14 +40,14 @@
 
         $tester->execute([], ['decorated' => false]);
 
-        $filler = str_repeat(' ', 92);
-        $this->assertSame("\nScheduler\n=========\n\n [ERROR] No schedules found.{$filler}\n\n", $tester->getDisplay(true));
+        $display = preg_replace('/ +$/m', '', $tester->getDisplay(true));
+        $this->assertSame("\nScheduler\n=========\n\n [ERROR] No schedules found.\n\n", $display);
     }
 
     public function testExecuteWithScheduleWithoutTriggerDoesNotDisplayMessage()
     {
         $schedule = new Schedule();
-        $schedule->add(RecurringMessage::trigger(new CallbackTrigger(fn () => null, 'test'), new \stdClass()));
+        $schedule->add(RecurringMessage::trigger(new CallbackTrigger(static fn () => null, 'test'), new \stdClass()));
 
         $schedules = $this->createMock(ServiceProviderInterface::class);
         $schedules
@@ -80,7 +82,7 @@
     public function testExecuteWithScheduleWithoutTriggerShowingNoNextRunWithAllOption()
     {
         $schedule = new Schedule();
-        $schedule->add(RecurringMessage::trigger(new CallbackTrigger(fn () => null, 'test'), new \stdClass()));
+        $schedule->add(RecurringMessage::trigger(new CallbackTrigger(static fn () => null, 'test'), new \stdClass()));
 
         $schedules = $this->createMock(ServiceProviderInterface::class);
         $schedules
@@ -150,4 +152,66 @@
             " ------------------------------- ---------- --------------------------------- \n".
             "\n/", $tester->getDisplay(true));
     }
+
+    public function testExecuteWithStatefulScheduleUsesStoredCheckpoint()
+    {
+        $cache = new ArrayAdapter();
+        $checkpointTime = new \DateTimeImmutable('2024-01-15 10:00:00 UTC');
+        $cache->get('scheduler_checkpoint_schedule_name', static fn (ItemInterface $item) => [$checkpointTime, 0, $checkpointTime]);
+
+        $schedule = (new Schedule())->stateful($cache);
+        $schedule->add(RecurringMessage::every('1 hour', new \stdClass()));
+
+        $schedules = $this->createMock(ServiceProviderInterface::class);
+        $schedules
+            ->expects($this->once())
+            ->method('getProvidedServices')
+            ->willReturn(['schedule_name' => $schedule])
+        ;
+        $schedules
+            ->expects($this->once())
+            ->method('get')
+            ->willReturn($schedule)
+        ;
+
+        $command = new DebugCommand($schedules);
+        $tester = new CommandTester($command);
+
+        $tester->execute([], ['decorated' => false]);
+
+        $display = $tester->getDisplay(true);
+        $this->assertStringContainsString('stateful', $display);
+        // "every 1 hour" seeded with checkpoint 2024-01-15 10:00:00 UTC ⇒ next run 11:00:00 UTC, not "now + 1h"
+        $this->assertStringContainsString('Mon, 15 Jan 2024 11:00:00 +0000', $display);
+    }
+
+    public function testExecuteWithStatefulScheduleWithoutCheckpointFallsBackToNow()
+    {
+        // Stateful schedule but no checkpoint stored yet ⇒ command must not mention "stateful" and use "now".
+        $cache = new ArrayAdapter();
+
+        $schedule = (new Schedule())->stateful($cache);
+        $schedule->add(RecurringMessage::every('1 hour', new \stdClass()));
+
+        $schedules = $this->createMock(ServiceProviderInterface::class);
+        $schedules
+            ->expects($this->once())
+            ->method('getProvidedServices')
+            ->willReturn(['schedule_name' => $schedule])
+        ;
+        $schedules
+            ->expects($this->once())
+            ->method('get')
+            ->willReturn($schedule)
+        ;
+
+        $command = new DebugCommand($schedules);
+        $tester = new CommandTester($command);
+
+        $tester->execute([], ['decorated' => false]);
+
+        $display = $tester->getDisplay(true);
+        $this->assertStringNotContainsString('stateful', $display);
+        $this->assertMatchesRegularExpression('/every 1 hour\s+stdClass\s+\w{3}, \d{1,2} \w{3} \d{4} \d{2}:\d{2}:\d{2} (\+|-)\d{4}/', $display);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/DependencyInjection/AddScheduleMessengerPassTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/DependencyInjection/AddScheduleMessengerPassTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/DependencyInjection/AddScheduleMessengerPassTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/DependencyInjection/AddScheduleMessengerPassTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,105 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Scheduler\Tests\DependencyInjection;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Console\Attribute\AsCommand;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\Scheduler\DependencyInjection\AddScheduleMessengerPass;
+
+class AddScheduleMessengerPassTest extends TestCase
+{
+    /**
+     * @dataProvider processSchedulerTaskCommandProvider
+     */
+    public function testProcessSchedulerTaskCommand(array $arguments, string $expectedCommand)
+    {
+        $container = new ContainerBuilder();
+
+        $definition = new Definition(SchedulableCommand::class);
+        $definition->addTag('console.command');
+        $definition->addTag('scheduler.task', $arguments);
+        $container->setDefinition(SchedulableCommand::class, $definition);
+
+        (new AddScheduleMessengerPass())->process($container);
+
+        $schedulerProvider = $container->getDefinition('scheduler.provider.default');
+        $calls = $schedulerProvider->getMethodCalls();
+
+        $this->assertCount(1, $calls);
+        $this->assertCount(2, $calls[0]);
+
+        $messageDefinition = $calls[0][1][0];
+        $messageArguments = $messageDefinition->getArgument('$message');
+        $command = $messageArguments->getArgument(0);
+
+        $this->assertSame($expectedCommand, $command);
+    }
+
+    /**
+     * @dataProvider processSchedulerTaskCommandNameFromTagProvider
+     */
+    public function testProcessSchedulerTaskCommandNameFromTag(array $commandTagAttributes, string $expectedCommand)
+    {
+        $container = new ContainerBuilder();
+
+        $definition = new Definition(SchedulableCommand::class);
+        $definition->addTag('console.command', $commandTagAttributes);
+        $definition->addTag('scheduler.task', ['trigger' => 'every', 'frequency' => '1 hour']);
+        $container->setDefinition(SchedulableCommand::class, $definition);
+
+        (new AddScheduleMessengerPass())->process($container);
+
+        $schedulerProvider = $container->getDefinition('scheduler.provider.default');
+        $calls = $schedulerProvider->getMethodCalls();
+
+        $messageDefinition = $calls[0][1][0];
+        $messageArguments = $messageDefinition->getArgument('$message');
+        $command = $messageArguments->getArgument(0);
+
+        $this->assertSame($expectedCommand, $command);
+    }
+
+    public static function processSchedulerTaskCommandNameFromTagProvider(): iterable
+    {
+        yield 'tag command attribute overrides attribute name' => [['command' => 'custom-name'], 'custom-name'];
+        yield 'tag command attribute with aliases' => [['command' => 'custom-name|alias1|alias2'], 'custom-name'];
+        yield 'tag command attribute with hidden leading pipe' => [['command' => '|real-name'], 'real-name'];
+    }
+
+    public static function processSchedulerTaskCommandProvider(): iterable
+    {
+        yield 'no arguments' => [['trigger' => 'every', 'frequency' => '1 hour'], 'schedulable'];
+        yield 'null arguments' => [['trigger' => 'every', 'frequency' => '1 hour', 'arguments' => null], 'schedulable'];
+        yield 'empty arguments' => [['trigger' => 'every', 'frequency' => '1 hour', 'arguments' => ''], 'schedulable'];
+        yield 'test argument' => [['trigger' => 'every', 'frequency' => '1 hour', 'arguments' => 'test'], 'schedulable test'];
+        yield 'array arguments' => [['trigger' => 'every', 'frequency' => '1 hour', 'arguments' => ['arg1', 'arg2']], 'schedulable arg1 arg2'];
+        yield 'array arguments with spaces' => [['trigger' => 'every', 'frequency' => '1 hour', 'arguments' => ['hello world', 'foo']], 'schedulable '.escapeshellarg('hello world').' foo'];
+        yield 'empty array arguments' => [['trigger' => 'every', 'frequency' => '1 hour', 'arguments' => []], 'schedulable'];
+        yield 'array options' => [['trigger' => 'every', 'frequency' => '1 hour', 'arguments' => ['--option1' => 'first', '--option2' => true, '--option3' => false]], 'schedulable --option1=first --option2=1 --option3'];
+        yield 'array arguments and options' => [['trigger' => 'every', 'frequency' => '1 hour', 'arguments' => ['arg1' => 'first_one', 'arg2' => 'second_one', '--option1' => 'first', '--option2' => true, '--option3' => false]], 'schedulable first_one second_one --option1=first --option2=1 --option3'];
+    }
+}
+
+#[AsCommand(name: 'schedulable')]
+class SchedulableCommand
+{
+    public function __invoke(): void
+    {
+    }
+
+    public static function getDefaultName()
+    {
+        return 'schedulable';
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/EventListener/DispatchSchedulerEventListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/EventListener/DispatchSchedulerEventListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/EventListener/DispatchSchedulerEventListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/EventListener/DispatchSchedulerEventListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
 {
     public function testDispatchSchedulerEvents()
     {
-        $trigger = $this->createMock(TriggerInterface::class);
+        $trigger = $this->createStub(TriggerInterface::class);
         $defaultRecurringMessage = RecurringMessage::trigger($trigger, (object) ['id' => 'default']);
 
         $schedulerProvider = new SomeScheduleProvider([$defaultRecurringMessage]);
@@ -40,7 +40,7 @@
         $scheduleProviderLocator->expects($this->any())->method('has')->willReturn(true);
         $scheduleProviderLocator->expects($this->any())->method('get')->willReturn($schedulerProvider);
 
-        $context = new MessageContext('default', 'default', $trigger, $this->createMock(\DateTimeImmutable::class));
+        $context = new MessageContext('default', 'default', $trigger, new \DateTimeImmutable());
         $envelope = (new Envelope(new \stdClass()))->with(new ScheduledStamp($context));
 
         /** @var ContainerInterface $scheduleProviderLocator */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Generator/CheckpointTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Generator/CheckpointTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Generator/CheckpointTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Generator/CheckpointTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,6 +19,7 @@
 use Symfony\Component\Lock\NoLock;
 use Symfony\Component\Lock\Store\InMemoryStore;
 use Symfony\Component\Scheduler\Generator\Checkpoint;
+use Symfony\Contracts\Cache\ItemInterface;
 
 class CheckpointTest extends TestCase
 {
@@ -48,7 +49,7 @@
         $this->assertTrue($checkpoint->acquire($now));
         $this->assertEquals($now, $checkpoint->time());
         $this->assertEquals(-1, $checkpoint->index());
-        $this->assertEquals([$now, -1, $now], $cache->get('cache', fn () => []));
+        $this->assertEquals([$now, -1, $now], $cache->get('cache', static fn () => []));
     }
 
     public function testWithStateLoadStateOnAcquiring()
@@ -56,12 +57,12 @@
         $checkpoint = new Checkpoint('cache', new NoLock(), $cache = new ArrayAdapter());
         $now = new \DateTimeImmutable('2020-02-20 20:20:20Z');
 
-        $cache->get('cache', fn () => [$now, 0], \INF);
+        $cache->get('cache', static fn () => [$now, 0], \INF);
 
         $this->assertTrue($checkpoint->acquire($startedAt = $now->modify('1 min')));
         $this->assertEquals($now, $checkpoint->time());
         $this->assertEquals(0, $checkpoint->index());
-        $this->assertEquals([$now, 0, $startedAt], $cache->get('cache', fn () => []));
+        $this->assertEquals([$now, 0, $startedAt], $cache->get('cache', static fn () => []));
     }
 
     public function testWithLockInitStateOnFirstAcquiring()
@@ -113,7 +114,7 @@
         $this->assertSame($now, $checkpoint->time());
         $this->assertSame(3, $checkpoint->index());
         $this->assertSame($startedAt, $checkpoint->from());
-        $this->assertEquals([$now, 3, $startedAt], $cache->get('cache', fn () => []));
+        $this->assertEquals([$now, 3, $startedAt], $cache->get('cache', static fn () => []));
     }
 
     public function testWithLockSave()
@@ -141,7 +142,7 @@
 
         $this->assertSame($now, $checkpoint->time());
         $this->assertSame(3, $checkpoint->index());
-        $this->assertEquals([$now, 3, $startTime], $cache->get('dummy', fn () => []));
+        $this->assertEquals([$now, 3, $startTime], $cache->get('dummy', static fn () => []));
     }
 
     public function testWithCacheFullCycle()
@@ -149,23 +150,20 @@
         $checkpoint = new Checkpoint('cache', new NoLock(), $cache = new ArrayAdapter());
         $now = new \DateTimeImmutable('2020-02-20 20:20:20Z');
 
-        // init
-        $cache->get('cache', fn () => [$now->modify('-1 min'), 3], \INF);
+        $cache->get('cache', static fn () => [$now->modify('-1 min'), 3], \INF);
 
-        // action
         $acquired = $checkpoint->acquire($now);
         $lastTime = $checkpoint->time();
         $lastIndex = $checkpoint->index();
         $checkpoint->save($now, 0);
         $checkpoint->release($now, null);
 
-        // asserting
         $this->assertTrue($acquired);
         $this->assertEquals($now->modify('-1 min'), $lastTime);
         $this->assertSame(3, $lastIndex);
         $this->assertEquals($now, $checkpoint->time());
         $this->assertSame(0, $checkpoint->index());
-        $this->assertEquals([$now, 0, $now], $cache->get('cache', fn () => []));
+        $this->assertEquals([$now, 0, $now], $cache->get('cache', static fn () => []));
     }
 
     public function testWithLockResetStateAfterLockedAcquiring()
@@ -259,17 +257,14 @@
         $checkpoint = new Checkpoint('dummy', $lock);
         $now = new \DateTimeImmutable('2020-02-20 20:20:20Z');
 
-        // init
         $checkpoint->save($now->modify('-1 min'), 3);
 
-        // action
         $acquired = $checkpoint->acquire($now);
         $lastTime = $checkpoint->time();
         $lastIndex = $checkpoint->index();
         $checkpoint->save($now, 0);
         $checkpoint->release($now, null);
 
-        // asserting
         $this->assertTrue($acquired);
         $this->assertEquals($now->modify('-1 min'), $lastTime);
         $this->assertSame(3, $lastIndex);
@@ -277,4 +272,17 @@
         $this->assertSame(0, $checkpoint->index());
         $this->assertFalse($lock->isAcquired());
     }
+
+    public function testCheckpointOverridesPoolDefaultLifetime()
+    {
+        $cache = new ArrayAdapter(1);
+        $checkpoint = new Checkpoint('cache', new NoLock(), $cache);
+        $now = new \DateTimeImmutable('2020-02-20 20:20:20Z');
+
+        $checkpoint->acquire($now);
+        $checkpoint->save($now, 5);
+
+        $expiry = $cache->getItem('cache')->getMetadata()[ItemInterface::METADATA_EXPIRY] ?? null;
+        $this->assertGreaterThan(time() + 365 * 86400, $expiry);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Generator/MessageGeneratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Generator/MessageGeneratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Generator/MessageGeneratorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Generator/MessageGeneratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -287,7 +287,7 @@
                 '22:12:01' => [],
             ],
             'schedule' => [
-                RecurringMessage::trigger(new class() implements TriggerInterface {
+                RecurringMessage::trigger(new class implements TriggerInterface {
                     public function __toString(): string
                     {
                         return 'foo';
@@ -304,11 +304,11 @@
 
     private function createMessage(object $message, string ...$runs): RecurringMessage
     {
-        $runs = array_map(fn ($time) => self::makeDateTime($time), $runs);
+        $runs = array_map(static fn ($time) => self::makeDateTime($time), $runs);
         sort($runs);
 
         $ticks = [self::makeDateTime(''), 0];
-        $trigger = $this->createMock(TriggerInterface::class);
+        $trigger = $this->createStub(TriggerInterface::class);
         $trigger
             ->method('getNextRunDate')
             ->willReturnCallback(function (\DateTimeImmutable $lastTick) use ($runs, &$ticks): \DateTimeImmutable {
@@ -318,7 +318,7 @@
                 } elseif ($lastTick == $tick && $count < 2) {
                     $ticks = [$lastTick, ++$count];
                 } else {
-                    $this->fail(sprintf('Invalid tick %s', $lastTick->format(\DateTimeImmutable::RFC3339_EXTENDED)));
+                    $this->fail(\sprintf('Invalid tick %s', $lastTick->format(\DateTimeImmutable::RFC3339_EXTENDED)));
                 }
 
                 foreach ($runs as $run) {
@@ -327,7 +327,7 @@
                     }
                 }
 
-                $this->fail(sprintf('There is no next run for tick %s', $lastTick->format(\DateTimeImmutable::RFC3339_EXTENDED)));
+                $this->fail(\sprintf('There is no next run for tick %s', $lastTick->format(\DateTimeImmutable::RFC3339_EXTENDED)));
             });
 
         return RecurringMessage::trigger($trigger, $message);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,8 +12,8 @@
 namespace Symfony\Component\Scheduler\Tests\Messenger;
 
 use PHPUnit\Framework\TestCase;
-use Psr\Clock\ClockInterface;
 use Psr\Container\ContainerInterface;
+use Symfony\Component\Clock\MockClock;
 use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface;
 use Symfony\Component\Scheduler\Exception\InvalidArgumentException;
 use Symfony\Component\Scheduler\Generator\MessageGenerator;
@@ -29,9 +29,9 @@
 {
     public function testCreateTransport()
     {
-        $trigger = $this->createMock(TriggerInterface::class);
-        $serializer = $this->createMock(SerializerInterface::class);
-        $clock = $this->createMock(ClockInterface::class);
+        $trigger = $this->createStub(TriggerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
+        $clock = new MockClock();
 
         $defaultRecurringMessage = RecurringMessage::trigger($trigger, (object) ['id' => 'default']);
         $customRecurringMessage = RecurringMessage::trigger($trigger, (object) ['id' => 'custom']);
@@ -41,8 +41,8 @@
 
         $factory = new SchedulerTransportFactory(
             new Container([
-                'default' => fn () => new SomeScheduleProvider([$defaultRecurringMessage]),
-                'custom' => fn () => new SomeScheduleProvider([$customRecurringMessage]),
+                'default' => static fn () => new SomeScheduleProvider([$defaultRecurringMessage]),
+                'custom' => static fn () => new SomeScheduleProvider([$customRecurringMessage]),
             ]),
             $clock,
         );
@@ -58,7 +58,7 @@
         $this->expectException(InvalidArgumentException::class);
         $this->expectExceptionMessage('The given Schedule DSN "schedule://#wrong" is invalid.');
 
-        $factory->createTransport('schedule://#wrong', [], $this->createMock(SerializerInterface::class));
+        $factory->createTransport('schedule://#wrong', [], $this->createStub(SerializerInterface::class));
     }
 
     public function testNoName()
@@ -68,7 +68,7 @@
         $this->expectException(InvalidArgumentException::class);
         $this->expectExceptionMessage('The Schedule DSN must contains a name, e.g. "schedule://default".');
 
-        $factory->createTransport('schedule://', [], $this->createMock(SerializerInterface::class));
+        $factory->createTransport('schedule://', [], $this->createStub(SerializerInterface::class));
     }
 
     public function testNotFound()
@@ -78,7 +78,7 @@
         $this->expectException(InvalidArgumentException::class);
         $this->expectExceptionMessage('The schedule "not-exists" is not found.');
 
-        $factory->createTransport('schedule://not-exists', [], $this->createMock(SerializerInterface::class));
+        $factory->createTransport('schedule://not-exists', [], $this->createStub(SerializerInterface::class));
     }
 
     public function testSupports()
@@ -95,9 +95,9 @@
     {
         return new SchedulerTransportFactory(
             new Container([
-                'default' => fn () => $this->createMock(ScheduleProviderInterface::class),
+                'default' => fn () => $this->createStub(ScheduleProviderInterface::class),
             ]),
-            $this->createMock(ClockInterface::class),
+            new MockClock(),
         );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,9 +29,9 @@
             (object) ['id' => 'first'],
             (object) ['id' => 'second'],
         ];
-        $generator = $this->createMock(MessageGeneratorInterface::class);
+        $generator = $this->createStub(MessageGeneratorInterface::class);
         $generator->method('getMessages')->willReturnCallback(function () use ($messages): \Generator {
-            $trigger = $this->createMock(TriggerInterface::class);
+            $trigger = $this->createStub(TriggerInterface::class);
             $triggerAt = new \DateTimeImmutable('2020-02-20T02:00:00', new \DateTimeZone('UTC'));
             yield (new MessageContext('default', 'id1', $trigger, $triggerAt)) => $messages[0];
             yield (new MessageContext('default', 'id2', $trigger, $triggerAt)) => $messages[1];
@@ -51,9 +51,9 @@
 
     public function testAddsStampToInnerRedispatchMessageEnvelope()
     {
-        $generator = $this->createMock(MessageGeneratorInterface::class);
+        $generator = $this->createStub(MessageGeneratorInterface::class);
         $generator->method('getMessages')->willReturnCallback(function (): \Generator {
-            yield new MessageContext('default', 'id', $this->createMock(TriggerInterface::class), new \DateTimeImmutable()) => new RedispatchMessage(new \stdClass(), ['transport']);
+            yield new MessageContext('default', 'id', $this->createStub(TriggerInterface::class), new \DateTimeImmutable()) => new RedispatchMessage(new \stdClass(), ['transport']);
         });
         $envelopes = iterator_to_array((new SchedulerTransport($generator))->get());
 
@@ -66,7 +66,7 @@
 
     public function testAckIgnored()
     {
-        $transport = new SchedulerTransport($this->createMock(MessageGeneratorInterface::class));
+        $transport = new SchedulerTransport($this->createStub(MessageGeneratorInterface::class));
 
         $this->expectNotToPerformAssertions();
         $transport->ack(new Envelope(new \stdClass()));
@@ -74,7 +74,7 @@
 
     public function testRejectException()
     {
-        $transport = new SchedulerTransport($this->createMock(MessageGeneratorInterface::class));
+        $transport = new SchedulerTransport($this->createStub(MessageGeneratorInterface::class));
 
         $this->expectNotToPerformAssertions();
         $transport->reject(new Envelope(new \stdClass()));
@@ -82,7 +82,7 @@
 
     public function testSendException()
     {
-        $transport = new SchedulerTransport($this->createMock(MessageGeneratorInterface::class));
+        $transport = new SchedulerTransport($this->createStub(MessageGeneratorInterface::class));
 
         $this->expectException(LogicException::class);
         $transport->send(new Envelope(new \stdClass()));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/AbstractDecoratedTriggerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/AbstractDecoratedTriggerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/AbstractDecoratedTriggerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/AbstractDecoratedTriggerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 {
     public function testCanGetInnerTrigger()
     {
-        $trigger = new JitterTrigger($inner = $this->createMock(TriggerInterface::class));
+        $trigger = new JitterTrigger($inner = $this->createStub(TriggerInterface::class));
 
         $this->assertSame($inner, $trigger->inner());
         $this->assertSame([$trigger], iterator_to_array($trigger->decorators()));
@@ -29,7 +29,7 @@
     public function testCanGetNestedInnerTrigger()
     {
         $trigger = new ExcludeTimeTrigger(
-            $jitter = new JitterTrigger($inner = $this->createMock(TriggerInterface::class)),
+            $jitter = new JitterTrigger($inner = $this->createStub(TriggerInterface::class)),
             new \DateTimeImmutable(),
             new \DateTimeImmutable(),
         );
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackMessageProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackMessageProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackMessageProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackMessageProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,16 +20,16 @@
 {
     public function testToString()
     {
-        $context = new MessageContext('test', 'test', $this->createMock(TriggerInterface::class), $this->createMock(\DateTimeImmutable::class));
-        $messageProvider = new CallbackMessageProvider(fn () => []);
+        $context = new MessageContext('test', 'test', $this->createStub(TriggerInterface::class), new \DateTimeImmutable());
+        $messageProvider = new CallbackMessageProvider(static fn () => []);
         $this->assertEquals([], $messageProvider->getMessages($context));
         $this->assertEquals('', $messageProvider->getId());
 
-        $messageProvider = new CallbackMessageProvider(fn () => [new \stdClass()], '');
+        $messageProvider = new CallbackMessageProvider(static fn () => [new \stdClass()], '');
         $this->assertEquals([new \stdClass()], $messageProvider->getMessages($context));
         $this->assertSame('', $messageProvider->getId());
 
-        $messageProvider = new CallbackMessageProvider(fn () => yield new \stdClass(), 'foo', 'bar');
+        $messageProvider = new CallbackMessageProvider(static fn () => yield new \stdClass(), 'foo', 'bar');
         $this->assertInstanceOf(\Generator::class, $messageProvider->getMessages($context));
         $this->assertSame('foo', $messageProvider->getId());
         $this->assertSame('bar', (string) $messageProvider);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackTriggerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackTriggerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackTriggerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackTriggerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,13 +18,13 @@
 {
     public function testToString()
     {
-        $trigger = new CallbackTrigger(fn () => null);
+        $trigger = new CallbackTrigger(static fn () => null);
         $this->assertMatchesRegularExpression('/^[\da-f]{32}$/', (string) $trigger);
 
-        $trigger = new CallbackTrigger(fn () => null, '');
+        $trigger = new CallbackTrigger(static fn () => null, '');
         $this->assertSame('', (string) $trigger);
 
-        $trigger = new CallbackTrigger(fn () => null, 'foo');
+        $trigger = new CallbackTrigger(static fn () => null, 'foo');
         $this->assertSame('foo', (string) $trigger);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/ExcludeTimeTriggerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/ExcludeTimeTriggerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/ExcludeTimeTriggerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/ExcludeTimeTriggerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
 {
     public function testGetNextRun()
     {
-        $inner = $this->createMock(TriggerInterface::class);
+        $inner = $this->createStub(TriggerInterface::class);
         $inner
             ->method('getNextRunDate')
             ->willReturnCallback(static fn (\DateTimeImmutable $d) => $d->modify('+1 sec'));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/JitterTriggerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/JitterTriggerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/JitterTriggerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Tests/Trigger/JitterTriggerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,13 +20,13 @@
     public function testCanAddJitter()
     {
         $time = new \DateTimeImmutable();
-        $inner = $this->createMock(TriggerInterface::class);
+        $inner = $this->createStub(TriggerInterface::class);
         $inner->method('getNextRunDate')->willReturn($time);
 
         $trigger = new JitterTrigger($inner);
 
         $values = array_map(
-            fn () => (int) $trigger->getNextRunDate($time)?->getTimestamp(),
+            static fn () => (int) $trigger->getNextRunDate($time)?->getTimestamp(),
             array_fill(0, 100, null)
         );
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Trigger/CronExpressionTrigger.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Trigger/CronExpressionTrigger.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Trigger/CronExpressionTrigger.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Trigger/CronExpressionTrigger.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,7 +61,7 @@
     public static function fromSpec(string $expression = '* * * * *', ?string $context = null, \DateTimeZone|string|null $timezone = null): self
     {
         if (!class_exists(CronExpression::class)) {
-            throw new LogicException(sprintf('You cannot use "%s" as the "cron expression" package is not installed. Try running "composer require dragonmantank/cron-expression".', __CLASS__));
+            throw new LogicException(\sprintf('You cannot use "%s" as the "cron expression" package is not installed. Try running "composer require dragonmantank/cron-expression".', __CLASS__));
         }
 
         if (!str_contains($expression, '#')) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Trigger/JitterTrigger.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Trigger/JitterTrigger.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Trigger/JitterTrigger.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Trigger/JitterTrigger.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
 
     public function __toString(): string
     {
-        return sprintf('%s with 0-%d second jitter', $this->trigger, $this->maxSeconds);
+        return \sprintf('%s with 0-%d second jitter', $this->trigger, $this->maxSeconds);
     }
 
     public function getNextRunDate(\DateTimeImmutable $run): ?\DateTimeImmutable
@@ -35,6 +35,6 @@
             return null;
         }
 
-        return $nextRun->add(new \DateInterval(sprintf('PT%sS', random_int(0, $this->maxSeconds))));
+        return $nextRun->add(new \DateInterval(\sprintf('PT%sS', random_int(0, $this->maxSeconds))));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Trigger/PeriodicalTrigger.php symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Trigger/PeriodicalTrigger.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Scheduler/Trigger/PeriodicalTrigger.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Scheduler/Trigger/PeriodicalTrigger.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
             }
 
             $this->intervalInSeconds = (int) $interval;
-            $this->description = sprintf('every %d seconds', $this->intervalInSeconds);
+            $this->description = \sprintf('every %d seconds', $this->intervalInSeconds);
 
             return;
         }
@@ -44,18 +44,18 @@
         try {
             if (\is_string($interval) && 'P' === ($interval[0] ?? '')) {
                 $this->intervalInSeconds = $this->calcInterval(new \DateInterval($interval));
-                $this->description = sprintf('every %d seconds (%s)', $this->intervalInSeconds, $interval);
+                $this->description = \sprintf('every %d seconds (%s)', $this->intervalInSeconds, $interval);
 
                 return;
             }
 
             $i = $interval;
             if (\is_string($interval)) {
-                $this->description = sprintf('every %s', $interval);
+                $this->description = \sprintf('every %s', $interval);
                 $i = @\DateInterval::createFromDateString($interval);
 
                 if (false === $i) {
-                    throw new InvalidArgumentException(sprintf('Invalid interval "%s": ', $interval).error_get_last()['message']);
+                    throw new InvalidArgumentException(\sprintf('Invalid interval "%s": ', $interval).error_get_last()['message']);
                 }
             } else {
                 $a = (array) $interval;
@@ -65,13 +65,13 @@
             if ($this->canBeConvertedToSeconds($i)) {
                 $this->intervalInSeconds = $this->calcInterval($i);
                 if ('DateInterval' === $this->description) {
-                    $this->description = sprintf('every %s seconds', $this->intervalInSeconds);
+                    $this->description = \sprintf('every %s seconds', $this->intervalInSeconds);
                 }
             } else {
                 $this->interval = $i;
             }
         } catch (\Exception $e) {
-            throw new InvalidArgumentException(sprintf('Invalid interval "%s": ', $interval instanceof \DateInterval ? 'instance of \DateInterval' : $interval).$e->getMessage(), 0, $e);
+            throw new InvalidArgumentException(\sprintf('Invalid interval "%s": ', $interval instanceof \DateInterval ? 'instance of \DateInterval' : $interval).$e->getMessage(), 0, $e);
         }
     }
 
@@ -98,7 +98,7 @@
             $from = (float) $fromDate->format('U.u');
             $delta = $run->format('U.u') - $from;
             $recurrencesPassed = floor($delta / $this->intervalInSeconds);
-            $nextRunTimestamp = sprintf('%.6F', ($recurrencesPassed + 1) * $this->intervalInSeconds + $from);
+            $nextRunTimestamp = \sprintf('%.6F', ($recurrencesPassed + 1) * $this->intervalInSeconds + $from);
             $nextRun = \DateTimeImmutable::createFromFormat('U.u', $nextRunTimestamp)->setTimezone($fromDate->getTimezone());
 
             if ($this->from > $nextRun) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,6 +17,12 @@
 /**
  * Base class for Token instances.
  *
+ * Note that the token's role names are decoupled from the user's roles on purpose: token roles describe
+ * the authentication context (e.g. a `SwitchUserToken` adds `ROLE_PREVIOUS_ADMIN`), not the user's
+ * permanent role assignment. This is why `setUser()` only updates the user reference and leaves the
+ * role names untouched. `ContextListener` is the component responsible for comparing the stored role
+ * names against `$user->getRoles()` and deauthenticating when they diverge.
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  */
@@ -134,7 +140,7 @@
     public function getAttribute(string $name): mixed
     {
         if (!\array_key_exists($name, $this->attributes)) {
-            throw new \InvalidArgumentException(sprintf('This token has no "%s" attribute.', $name));
+            throw new \InvalidArgumentException(\sprintf('This token has no "%s" attribute.', $name));
         }
 
         return $this->attributes[$name];
@@ -158,7 +164,7 @@
             $roles[] = $role;
         }
 
-        return sprintf('%s(user="%s", roles="%s")', $class, $this->getUserIdentifier(), implode(', ', $roles));
+        return \sprintf('%s(user="%s", roles="%s")', $class, $this->getUserIdentifier(), implode(', ', $roles));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/PreAuthenticatedToken.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/PreAuthenticatedToken.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/PreAuthenticatedToken.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/PreAuthenticatedToken.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,6 @@
     public function __unserialize(array $data): void
     {
         [, $this->firewallName, $parentData] = $data;
-        $parentData = \is_array($parentData) ? $parentData : unserialize($parentData);
         parent::__unserialize($parentData);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/RememberMeToken.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/RememberMeToken.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/RememberMeToken.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/RememberMeToken.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,7 +65,6 @@
     public function __unserialize(array $data): void
     {
         [$this->secret, $this->firewallName, $parentData] = $data;
-        $parentData = \is_array($parentData) ? $parentData : unserialize($parentData);
         parent::__unserialize($parentData);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/SwitchUserToken.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/SwitchUserToken.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/SwitchUserToken.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/SwitchUserToken.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,7 +60,6 @@
         } else {
             [$this->originalToken, $this->originatedFromUri, $parentData] = $data;
         }
-        $parentData = \is_array($parentData) ? $parentData : unserialize($parentData);
         parent::__unserialize($parentData);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/UsernamePasswordToken.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/UsernamePasswordToken.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/UsernamePasswordToken.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authentication/Token/UsernamePasswordToken.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,6 @@
     public function __unserialize(array $data): void
     {
         [, $this->firewallName, $parentData] = $data;
-        $parentData = \is_array($parentData) ? $parentData : unserialize($parentData);
         parent::__unserialize($parentData);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
     {
         // Special case for AccessListener, do not remove the right side of the condition before 6.0
         if (\count($attributes) > 1 && !$allowMultipleAttributes) {
-            throw new InvalidArgumentException(sprintf('Passing more than one Security attribute to "%s()" is not supported.', __METHOD__));
+            throw new InvalidArgumentException(\sprintf('Passing more than one Security attribute to "%s()" is not supported.', __METHOD__));
         }
 
         return $this->strategy->decide(
@@ -69,7 +69,7 @@
         foreach ($this->getVoters($attributes, $object) as $voter) {
             $result = $voter->vote($token, $object, $attributes);
             if (!\is_int($result) || !(self::VALID_VOTES[$result] ?? false)) {
-                throw new \LogicException(sprintf('"%s::vote()" must return one of "%s" constants ("ACCESS_GRANTED", "ACCESS_DENIED" or "ACCESS_ABSTAIN"), "%s" returned.', get_debug_type($voter), VoterInterface::class, var_export($result, true)));
+                throw new \LogicException(\sprintf('"%s::vote()" must return one of "%s" constants ("ACCESS_GRANTED", "ACCESS_DENIED" or "ACCESS_ABSTAIN"), "%s" returned.', get_debug_type($voter), VoterInterface::class, var_export($result, true)));
             }
 
             yield $result;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authorization/AuthorizationChecker.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authorization/AuthorizationChecker.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authorization/AuthorizationChecker.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authorization/AuthorizationChecker.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function __construct(TokenStorageInterface $tokenStorage, AccessDecisionManagerInterface $accessDecisionManager, bool $exceptionOnNoToken = false)
     {
         if ($exceptionOnNoToken) {
-            throw new \LogicException(sprintf('Argument $exceptionOnNoToken of "%s()" must be set to "false".', __METHOD__));
+            throw new \LogicException(\sprintf('Argument $exceptionOnNoToken of "%s()" must be set to "false".', __METHOD__));
         }
 
         $this->tokenStorage = $tokenStorage;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authorization/ExpressionLanguage.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authorization/ExpressionLanguage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authorization/ExpressionLanguage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authorization/ExpressionLanguage.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,7 @@
 use Symfony\Component\ExpressionLanguage\ExpressionLanguage as BaseExpressionLanguage;
 
 if (!class_exists(BaseExpressionLanguage::class)) {
-    throw new \LogicException(sprintf('The "%s" class requires the "ExpressionLanguage" component. Try running "composer require symfony/expression-language".', ExpressionLanguage::class));
+    throw new \LogicException(\sprintf('The "%s" class requires the "ExpressionLanguage" component. Try running "composer require symfony/expression-language".', ExpressionLanguage::class));
 } else {
     // Help opcache.preload discover always-needed symbols
     class_exists(ExpressionLanguageProvider::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authorization/ExpressionLanguageProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authorization/ExpressionLanguageProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Authorization/ExpressionLanguageProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Authorization/ExpressionLanguageProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,13 +24,13 @@
     public function getFunctions(): array
     {
         return [
-            new ExpressionFunction('is_authenticated', fn () => '$auth_checker->isGranted("IS_AUTHENTICATED")', fn (array $variables) => $variables['auth_checker']->isGranted('IS_AUTHENTICATED')),
+            new ExpressionFunction('is_authenticated', static fn () => '$auth_checker->isGranted("IS_AUTHENTICATED")', static fn (array $variables) => $variables['auth_checker']->isGranted('IS_AUTHENTICATED')),
 
-            new ExpressionFunction('is_fully_authenticated', fn () => '$token && $auth_checker->isGranted("IS_AUTHENTICATED_FULLY")', fn (array $variables) => $variables['token'] && $variables['auth_checker']->isGranted('IS_AUTHENTICATED_FULLY')),
+            new ExpressionFunction('is_fully_authenticated', static fn () => '$token && $auth_checker->isGranted("IS_AUTHENTICATED_FULLY")', static fn (array $variables) => $variables['token'] && $variables['auth_checker']->isGranted('IS_AUTHENTICATED_FULLY')),
 
-            new ExpressionFunction('is_granted', fn ($attributes, $object = 'null') => sprintf('$auth_checker->isGranted(%s, %s)', $attributes, $object), fn (array $variables, $attributes, $object = null) => $variables['auth_checker']->isGranted($attributes, $object)),
+            new ExpressionFunction('is_granted', static fn ($attributes, $object = 'null') => \sprintf('$auth_checker->isGranted(%s, %s)', $attributes, $object), static fn (array $variables, $attributes, $object = null) => $variables['auth_checker']->isGranted($attributes, $object)),
 
-            new ExpressionFunction('is_remember_me', fn () => '$token && $auth_checker->isGranted("IS_REMEMBERED")', fn (array $variables) => $variables['token'] && $variables['auth_checker']->isGranted('IS_REMEMBERED')),
+            new ExpressionFunction('is_remember_me', static fn () => '$token && $auth_checker->isGranted("IS_REMEMBERED")', static fn (array $variables) => $variables['token'] && $variables['auth_checker']->isGranted('IS_REMEMBERED')),
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Exception/AccountStatusException.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Exception/AccountStatusException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Exception/AccountStatusException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Exception/AccountStatusException.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,6 @@
     public function __unserialize(array $data): void
     {
         [$this->user, $parentData] = $data;
-        $parentData = \is_array($parentData) ? $parentData : unserialize($parentData);
         parent::__unserialize($parentData);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Exception/CustomUserMessageAuthenticationException.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Exception/CustomUserMessageAuthenticationException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Exception/CustomUserMessageAuthenticationException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Exception/CustomUserMessageAuthenticationException.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,6 @@
     public function __unserialize(array $data): void
     {
         [$parentData, $this->messageKey, $this->messageData] = $data;
-        $parentData = \is_array($parentData) ? $parentData : unserialize($parentData);
         parent::__unserialize($parentData);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Exception/TooManyLoginAttemptsAuthenticationException.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Exception/TooManyLoginAttemptsAuthenticationException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Exception/TooManyLoginAttemptsAuthenticationException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Exception/TooManyLoginAttemptsAuthenticationException.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,6 @@
     public function __unserialize(array $data): void
     {
         [$this->threshold, $parentData] = $data;
-        $parentData = \is_array($parentData) ? $parentData : unserialize($parentData);
         parent::__unserialize($parentData);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Exception/UserNotFoundException.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Exception/UserNotFoundException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Exception/UserNotFoundException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Exception/UserNotFoundException.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,6 @@
     public function __unserialize(array $data): void
     {
         [$this->identifier, $parentData] = $data;
-        $parentData = \is_array($parentData) ? $parentData : unserialize($parentData);
         parent::__unserialize($parentData);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.af.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.af.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.af.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.af.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -72,11 +72,11 @@
             </trans-unit>
             <trans-unit id="19">
                 <source>Too many failed login attempts, please try again in %minutes% minute.</source>
-                <target state="needs-review-translation">Te veel mislukte aanmeldpogings, probeer asseblief weer oor %minutes% minuut.</target>
+                <target>Te veel mislukte aanmeldpogings, probeer asseblief weer oor %minutes% minute.</target>
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Te veel mislukte aanmeldpogings, probeer asseblief weer oor %minutes% minute.</target>
+                <target>Te veel mislukte aanmeldpogings, probeer asseblief weer oor %minutes% minute.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.az.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.az.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.az.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.az.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Çox sayda uğursuz giriş cəhdi, zəhmət olmasa %minutes% dəqiqə sonra yenidən cəhd edin.|Çox sayda uğursuz giriş cəhdi, zəhmət olmasa %minutes% dəqiqə sonra yenidən cəhd edin.</target>
+                <target>Çox sayda uğursuz giriş cəhdi, zəhmət olmasa %minutes% dəqiqə sonra yenidən cəhd edin.|Çox sayda uğursuz giriş cəhdi, zəhmət olmasa %minutes% dəqiqə sonra yenidən cəhd edin.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.be.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.be.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.be.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.be.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Занадта шмат няўдалых спробаў уваходу, калі ласка, паспрабуйце зноў праз %minutes% хвіліну.|Занадта шмат няўдалых спробаў уваходу, калі ласка, паспрабуйце зноў праз %minutes% хвіліны.|Занадта шмат няўдалых спробаў уваходу, калі ласка, паспрабуйце зноў праз %minutes% хвілін.</target>
+                <target>Занадта вялікая колькасць няўдалых спробаў уваходу. Калі ласка, паспрабуйце зноў праз %minutes% хвіліну.|Занадта вялікая колькасць няўдалых спробаў уваходу. Калі ласка, паспрабуйце зноў праз %minutes% хвіліны.|Занадта вялікая колькасць няўдалых спробаў уваходу. Калі ласка, паспрабуйце зноў праз %minutes% хвілін.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.da.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.da.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.da.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.da.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">For mange mislykkede loginforsøg, prøv igen om %minutes% minutter.</target>
+                <target>For mange mislykkede loginforsøg, prøv igen om %minutes% minutter.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.es.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.es.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.es.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.es.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Demasiados intentos fallidos de inicio de sesión, inténtelo de nuevo en %minutes% minutos.</target>
+                <target>Demasiados intentos fallidos de inicio de sesión, inténtelo de nuevo en %minutes% minutos.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.et.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.et.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.et.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.et.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Liiga palju nurjunud sisselogimiskatseid, proovige uuesti %minutes% minuti pärast.</target>
+                <target>Liiga palju nurjunud sisselogimiskatseid, proovige uuesti %minutes% minuti pärast.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -4,7 +4,7 @@
         <body>
             <trans-unit id="1">
                 <source>An authentication exception occurred.</source>
-                <target>Autentikointi poikkeus tapahtui.</target>
+                <target>Autentikointipoikkeus tapahtui.</target>
             </trans-unit>
             <trans-unit id="2">
                 <source>Authentication credentials could not be found.</source>
@@ -20,7 +20,7 @@
             </trans-unit>
             <trans-unit id="5">
                 <source>Cookie has already been used by someone else.</source>
-                <target>Eväste on jo jonkin muun käytössä.</target>
+                <target>Eväste on jo jonkun muun käytössä.</target>
             </trans-unit>
             <trans-unit id="6">
                 <source>Not privileged to request the resource.</source>
@@ -28,11 +28,11 @@
             </trans-unit>
             <trans-unit id="7">
                 <source>Invalid CSRF token.</source>
-                <target>Virheellinen CSRF tunnus.</target>
+                <target>Virheellinen CSRF-tunnus.</target>
             </trans-unit>
             <trans-unit id="9">
                 <source>No authentication provider found to support the authentication token.</source>
-                <target>Autentikointi tunnukselle ei löydetty tuettua autentikointi tarjoajaa.</target>
+                <target>Autentikointitunnukselle ei löydetty tuettua autentikoinnintarjoajaa.</target>
             </trans-unit>
             <trans-unit id="10">
                 <source>No session available, it either timed out or cookies are not enabled.</source>
@@ -44,7 +44,7 @@
             </trans-unit>
             <trans-unit id="12">
                 <source>Username could not be found.</source>
-                <target>Käyttäjätunnusta ei löydetty.</target>
+                <target>Käyttäjätunnusta ei löytynyt.</target>
             </trans-unit>
             <trans-unit id="13">
                 <source>Account has expired.</source>
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Liian monta epäonnistunutta kirjautumisyritystä, yritä uudelleen %minutes% minuutin kuluttua.</target>
+                <target>Liian monta epäonnistunutta kirjautumisyritystä, yritä uudelleen %minutes% minuutin kuluttua.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.gl.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.gl.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.gl.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.gl.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Demasiados intentos fallidos de inicio de sesión, inténtao de novo en %minutes% minutos.</target>
+                <target>Demasiados intentos errados de inicio de sesión, inténtao de novo en %minutes% minutos.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.hy.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.hy.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.hy.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.hy.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Չափազանց շատ անհաջող մուտքի փորձեր, խնդրում ենք փորձել կրկին %minutes% րոպեից.</target>
+                <target>Չափազանց շատ անհաջող մուտքի փորձեր, խնդրում ենք փորձել կրկին %minutes% րոպեից.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.lb.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.lb.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.lb.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.lb.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Ze vill Feeler beim Umellen, versicht weg erëm an %minutes% Minutten.</target>
+                <target>Ze vill Feeler beim Umellen, versicht weg erëm an %minutes% Minutten.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.lt.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.lt.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.lt.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.lt.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Per daug nesėkmingų prisijungimo bandymų, bandykite vėl po %minutes% minutės.|Per daug nesėkmingų prisijungimo bandymų, bandykite vėl po %minutes% minučių.</target>
+                <target>Per daug nesėkmingų prisijungimo bandymų, bandykite vėl po %minutes% minutės.|Per daug nesėkmingų prisijungimo bandymų, bandykite vėl po %minutes% minučių.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.nb.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.nb.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.nb.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.nb.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">For mange mislykkede påloggingsforsøk, prøv igjen om %minutes% minutter.</target>
+                <target>For mange mislykkede påloggingsforsøk, prøv igjen om %minutes% minutter.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.no.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.no.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.no.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.no.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">For mange mislykkede påloggingsforsøk, prøv igjen om %minutes% minutter.</target>
+                <target>For mange mislykkede påloggingsforsøk, prøv igjen om %minutes% minutter.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">För många misslyckade inloggningsförsök, vänligen försök igen om %minutes% minuter.</target>
+                <target>För många misslyckade inloggningsförsök, försök igen om %minutes% minuter.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.uz.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.uz.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.uz.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Resources/translations/security.uz.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
             </trans-unit>
             <trans-unit id="20">
                 <source>Too many failed login attempts, please try again in %minutes% minutes.</source>
-                <target state="needs-review-translation">Koʻplab muvaffaqiyatsiz kirish urinishlari, iltimos, %minutes% daqiqadan so'ng qayta urinib koʻring.|Koʻplab muvaffaqiyatsiz kirish urinishlari, iltimos, %minutes% daqiqadan so'ng qayta urinib koʻring.</target>
+                <target>Koʻplab muvaffaqiyatsiz kirish urinishlari, iltimos, %minutes% daqiqadan so'ng qayta urinib koʻring.|Koʻplab muvaffaqiyatsiz kirish urinishlari, iltimos, %minutes% daqiqadan so'ng qayta urinib koʻring.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Signature/SignatureHasher.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Signature/SignatureHasher.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Signature/SignatureHasher.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Signature/SignatureHasher.php	2026-05-20 10:56:49.000000000 +0200
@@ -94,7 +94,7 @@
 
         if ($this->expiredSignaturesStorage && $this->maxUses) {
             if ($this->expiredSignaturesStorage->countUsages($hash) >= $this->maxUses) {
-                throw new ExpiredSignatureException(sprintf('Signature can only be used "%d" times.', $this->maxUses));
+                throw new ExpiredSignatureException(\sprintf('Signature can only be used "%d" times.', $this->maxUses));
             }
 
             $this->expiredSignaturesStorage->incrementUsages($hash);
@@ -118,7 +118,7 @@
             }
 
             if (!\is_scalar($value) && !$value instanceof \Stringable) {
-                throw new \InvalidArgumentException(sprintf('The property path "%s" on the user object "%s" must return a value that can be cast to a string, but "%s" was returned.', $property, $user::class, get_debug_type($value)));
+                throw new \InvalidArgumentException(\sprintf('The property path "%s" on the user object "%s" must return a value that can be cast to a string, but "%s" was returned.', $property, $user::class, get_debug_type($value)));
             }
             hash_update($fieldsHash, ':'.base64_encode($value));
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Test/AccessDecisionStrategyTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Test/AccessDecisionStrategyTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Test/AccessDecisionStrategyTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Test/AccessDecisionStrategyTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Security\Core\Test;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
 use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
 use Symfony\Component\Security\Core\Authorization\AccessDecisionManager;
 use Symfony\Component\Security\Core\Authorization\Strategy\AccessDecisionStrategyInterface;
@@ -31,10 +32,9 @@
      */
     final public function testDecide(AccessDecisionStrategyInterface $strategy, array $voters, bool $expected)
     {
-        $token = $this->createMock(TokenInterface::class);
         $manager = new AccessDecisionManager($voters, $strategy);
 
-        $this->assertSame($expected, $manager->decide($token, ['ROLE_FOO']));
+        $this->assertSame($expected, $manager->decide(new NullToken(), ['ROLE_FOO']));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authentication/Token/RememberMeTokenTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authentication/Token/RememberMeTokenTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authentication/Token/RememberMeTokenTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authentication/Token/RememberMeTokenTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,7 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Security\Core\Authentication\Token\RememberMeToken;
-use Symfony\Component\Security\Core\User\UserInterface;
+use Symfony\Component\Security\Core\User\InMemoryUser;
 
 class RememberMeTokenTest extends TestCase
 {
@@ -38,15 +38,20 @@
         );
     }
 
-    protected function getUser($roles = ['ROLE_FOO'])
+    public function testUnserializeRejectsLegacyStringParentData()
     {
-        $user = $this->createMock(UserInterface::class);
-        $user
-            ->expects($this->any())
-            ->method('getRoles')
-            ->willReturn($roles)
-        ;
+        $token = new RememberMeToken($this->getUser(), 'fookey', 'foo');
+        $data = $token->__serialize();
+        $data[2] = serialize($data[2]);
+
+        $token = new RememberMeToken($this->getUser(), 'fookey', 'foo');
+
+        $this->expectException(\TypeError::class);
+        $token->__unserialize($data);
+    }
 
-        return $user;
+    protected function getUser($roles = ['ROLE_FOO'])
+    {
+        return new InMemoryUser('John', 'password', $roles);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authentication/Token/Storage/UsageTrackingTokenStorageTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authentication/Token/Storage/UsageTrackingTokenStorageTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authentication/Token/Storage/UsageTrackingTokenStorageTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authentication/Token/Storage/UsageTrackingTokenStorageTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,7 +68,7 @@
 
     public function testWithoutMainRequest()
     {
-        $locator = new class(['request_stack' => fn () => new RequestStack()]) implements ContainerInterface {
+        $locator = new class(['request_stack' => static fn () => new RequestStack()]) implements ContainerInterface {
             use ServiceLocatorTrait;
         };
         $tokenStorage = new TokenStorage();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/AccessDecisionManagerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/AccessDecisionManagerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/AccessDecisionManagerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/AccessDecisionManagerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use PHPUnit\Framework\Assert;
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
 use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
 use Symfony\Component\Security\Core\Authorization\AccessDecisionManager;
 use Symfony\Component\Security\Core\Authorization\Strategy\AccessDecisionStrategyInterface;
@@ -31,15 +32,13 @@
 
     public function testVoterCalls()
     {
-        $token = $this->createMock(TokenInterface::class);
-
         $voters = [
             $this->getExpectedVoter(VoterInterface::ACCESS_DENIED),
             $this->getExpectedVoter(VoterInterface::ACCESS_GRANTED),
             $this->getUnexpectedVoter(),
         ];
 
-        $strategy = new class() implements AccessDecisionStrategyInterface {
+        $strategy = new class implements AccessDecisionStrategyInterface {
             public function decide(\Traversable $results): bool
             {
                 $i = 0;
@@ -62,12 +61,12 @@
 
         $manager = new AccessDecisionManager($voters, $strategy);
 
-        $this->assertTrue($manager->decide($token, ['ROLE_FOO']));
+        $this->assertTrue($manager->decide(new NullToken(), ['ROLE_FOO']));
     }
 
     public function testCacheableVoters()
     {
-        $token = $this->createMock(TokenInterface::class);
+        $token = new NullToken();
         $voter = $this->createMock(CacheableVoterInterface::class);
 
         $voter
@@ -92,7 +91,7 @@
 
     public function testCacheableVotersIgnoresNonStringAttributes()
     {
-        $token = $this->createMock(TokenInterface::class);
+        $token = new NullToken();
         $voter = $this->createMock(CacheableVoterInterface::class);
         $voter
             ->expects($this->never())
@@ -114,7 +113,7 @@
 
     public function testCacheableVotersWithMultipleAttributes()
     {
-        $token = $this->createMock(TokenInterface::class);
+        $token = new NullToken();
         $voter = $this->createMock(CacheableVoterInterface::class);
         $voter
             ->expects($this->exactly(2))
@@ -147,7 +146,7 @@
 
     public function testCacheableVotersWithEmptyAttributes()
     {
-        $token = $this->createMock(TokenInterface::class);
+        $token = new NullToken();
         $voter = $this->createMock(CacheableVoterInterface::class);
         $voter
             ->expects($this->never())
@@ -169,7 +168,7 @@
 
     public function testCacheableVotersSupportsMethodsCalledOnce()
     {
-        $token = $this->createMock(TokenInterface::class);
+        $token = new NullToken();
         $voter = $this->createMock(CacheableVoterInterface::class);
         $voter
             ->expects($this->once())
@@ -194,7 +193,7 @@
 
     public function testCacheableVotersNotCalled()
     {
-        $token = $this->createMock(TokenInterface::class);
+        $token = new NullToken();
         $voter = $this->createMock(CacheableVoterInterface::class);
         $voter
             ->expects($this->once())
@@ -214,7 +213,7 @@
 
     public function testCacheableVotersWithMultipleAttributesAndNonString()
     {
-        $token = $this->createMock(TokenInterface::class);
+        $token = new NullToken();
         $voter = $this->createMock(CacheableVoterInterface::class);
         $voter
             ->expects($this->once())
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/TraceableAccessDecisionManagerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/TraceableAccessDecisionManagerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/TraceableAccessDecisionManagerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/TraceableAccessDecisionManagerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Security\Core\Tests\Authorization;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
 use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
 use Symfony\Component\Security\Core\Authorization\AccessDecisionManager;
 use Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface;
@@ -26,7 +27,7 @@
      */
     public function testDecideLog(array $expectedLog, array $attributes, $object, array $voterVotes, bool $result)
     {
-        $token = $this->createMock(TokenInterface::class);
+        $token = new NullToken();
         $admMock = $this->createMock(AccessDecisionManagerInterface::class);
 
         $adm = new TraceableAccessDecisionManager($admMock);
@@ -35,7 +36,7 @@
             ->expects($this->once())
             ->method('decide')
             ->with($token, $attributes, $object)
-            ->willReturnCallback(function ($token, $attributes, $object) use ($voterVotes, $adm, $result) {
+            ->willReturnCallback(static function ($token, $attributes, $object) use ($voterVotes, $adm, $result) {
                 foreach ($voterVotes as $voterVote) {
                     [$voter, $vote] = $voterVote;
                     $adm->addVoterVote($voter, $attributes, $vote);
@@ -176,27 +177,17 @@
      */
     public function testAccessDecisionManagerCalledByVoter()
     {
-        $voter1 = $this
-            ->getMockBuilder(VoterInterface::class)
-            ->onlyMethods(['vote'])
-            ->getMock();
-
-        $voter2 = $this
-            ->getMockBuilder(VoterInterface::class)
-            ->onlyMethods(['vote'])
-            ->getMock();
-
-        $voter3 = $this
-            ->getMockBuilder(VoterInterface::class)
-            ->onlyMethods(['vote'])
-            ->getMock();
+        $voter1 = $this->createStub(VoterInterface::class);
+
+        $voter2 = $this->createStub(VoterInterface::class);
+
+        $voter3 = $this->createStub(VoterInterface::class);
 
         $sut = new TraceableAccessDecisionManager(new AccessDecisionManager([$voter1, $voter2, $voter3]));
 
         $voter1
-            ->expects($this->any())
             ->method('vote')
-            ->willReturnCallback(function (TokenInterface $token, $subject, array $attributes) use ($sut, $voter1) {
+            ->willReturnCallback(static function (TokenInterface $token, $subject, array $attributes) use ($sut, $voter1) {
                 $vote = \in_array('attr1', $attributes) ? VoterInterface::ACCESS_GRANTED : VoterInterface::ACCESS_ABSTAIN;
                 $sut->addVoterVote($voter1, $attributes, $vote);
 
@@ -204,9 +195,8 @@
             });
 
         $voter2
-            ->expects($this->any())
             ->method('vote')
-            ->willReturnCallback(function (TokenInterface $token, $subject, array $attributes) use ($sut, $voter2) {
+            ->willReturnCallback(static function (TokenInterface $token, $subject, array $attributes) use ($sut, $voter2) {
                 if (\in_array('attr2', $attributes)) {
                     $vote = null == $subject ? VoterInterface::ACCESS_GRANTED : VoterInterface::ACCESS_DENIED;
                 } else {
@@ -219,9 +209,8 @@
             });
 
         $voter3
-            ->expects($this->any())
             ->method('vote')
-            ->willReturnCallback(function (TokenInterface $token, $subject, array $attributes) use ($sut, $voter3) {
+            ->willReturnCallback(static function (TokenInterface $token, $subject, array $attributes) use ($sut, $voter3) {
                 if (\in_array('attr2', $attributes) && $subject) {
                     $vote = $sut->decide($token, $attributes) ? VoterInterface::ACCESS_GRANTED : VoterInterface::ACCESS_DENIED;
                 } else {
@@ -233,7 +222,7 @@
                 return $vote;
             });
 
-        $token = $this->createMock(TokenInterface::class);
+        $token = new NullToken();
         $sut->decide($token, ['attr1'], null);
         $sut->decide($token, ['attr2'], $obj = new \stdClass());
 
@@ -270,7 +259,7 @@
 
     public function testCustomAccessDecisionManagerReturnsEmptyStrategy()
     {
-        $admMock = $this->createMock(AccessDecisionManagerInterface::class);
+        $admMock = $this->createStub(AccessDecisionManagerInterface::class);
 
         $adm = new TraceableAccessDecisionManager($admMock);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/AuthenticatedVoterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/AuthenticatedVoterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/AuthenticatedVoterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/AuthenticatedVoterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -90,7 +90,7 @@
         $user = new InMemoryUser('wouter', '', ['ROLE_USER']);
 
         if ('fully' === $authenticated) {
-            $token = new class() extends AbstractToken {
+            $token = new class extends AbstractToken {
                 public function getCredentials()
                 {
                 }
@@ -105,7 +105,7 @@
         }
 
         if ('impersonated' === $authenticated) {
-            return $this->getMockBuilder(SwitchUserToken::class)->disableOriginalConstructor()->getMock();
+            return new SwitchUserToken(new InMemoryUser('John', 'password'), 'main', ['ROLE_USER'], new NullToken());
         }
 
         return new NullToken();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/ExpressionVoterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/ExpressionVoterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/ExpressionVoterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/ExpressionVoterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Component\ExpressionLanguage\Expression;
 use Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolverInterface;
 use Symfony\Component\Security\Core\Authentication\Token\AbstractToken;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
 use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
 use Symfony\Component\Security\Core\Authorization\ExpressionLanguage;
 use Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter;
@@ -47,42 +48,44 @@
 
     protected function getTokenWithRoleNames(array $roles, $tokenExpectsGetRoles = true)
     {
-        $token = $this->createMock(AbstractToken::class);
-
         if ($tokenExpectsGetRoles) {
-            $token->expects($this->once())
+            $mock = $this->createMock(AbstractToken::class);
+            $mock->expects($this->once())
                 ->method('getRoleNames')
                 ->willReturn($roles);
+
+            return $mock;
         }
 
-        return $token;
+        return new NullToken();
     }
 
     protected function createExpressionLanguage($expressionLanguageExpectsEvaluate = true)
     {
-        $mock = $this->createMock(ExpressionLanguage::class);
-
         if ($expressionLanguageExpectsEvaluate) {
+            $mock = $this->createMock(ExpressionLanguage::class);
             $mock->expects($this->once())
                 ->method('evaluate')
                 ->willReturn(true);
+
+            return $mock;
         }
 
-        return $mock;
+        return new ExpressionLanguage();
     }
 
     protected function createTrustResolver()
     {
-        return $this->createMock(AuthenticationTrustResolverInterface::class);
+        return $this->createStub(AuthenticationTrustResolverInterface::class);
     }
 
     protected function createAuthorizationChecker()
     {
-        return $this->createMock(AuthorizationCheckerInterface::class);
+        return $this->createStub(AuthorizationCheckerInterface::class);
     }
 
     protected static function createExpression()
     {
-        return new Expression('');
+        return new Expression('is_granted("ROLE_ADMIN") or is_granted("ROLE_MANAGER")');
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/VoterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/VoterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/VoterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/VoterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Security\Core\Tests\Authorization\Voter;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
 use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
 use Symfony\Component\Security\Core\Authorization\Voter\Voter;
 use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface;
@@ -22,7 +23,7 @@
 
     protected function setUp(): void
     {
-        $this->token = $this->createMock(TokenInterface::class);
+        $this->token = new NullToken();
     }
 
     public static function getTests(): array
@@ -41,7 +42,7 @@
 
             [$voter, ['DELETE'], VoterInterface::ACCESS_ABSTAIN, new \stdClass(), 'ACCESS_ABSTAIN if no attribute is supported'],
 
-            [$voter, ['EDIT'], VoterInterface::ACCESS_ABSTAIN, new class() {}, 'ACCESS_ABSTAIN if class is not supported'],
+            [$voter, ['EDIT'], VoterInterface::ACCESS_ABSTAIN, new class {}, 'ACCESS_ABSTAIN if class is not supported'],
 
             [$voter, ['EDIT'], VoterInterface::ACCESS_ABSTAIN, null, 'ACCESS_ABSTAIN if object is null'],
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Resources/TranslationFilesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Resources/TranslationFilesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Resources/TranslationFilesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Resources/TranslationFilesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
 
         $errors = XliffUtils::validateSchema($document);
 
-        $this->assertCount(0, $errors, sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
+        $this->assertCount(0, $errors, \sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
     }
 
     /**
@@ -39,13 +39,13 @@
 
         $errors = XliffUtils::validateSchema($document);
 
-        $this->assertCount(0, $errors, sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
+        $this->assertCount(0, $errors, \sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
     }
 
     public static function provideTranslationFiles()
     {
         return array_map(
-            fn ($filePath) => (array) $filePath,
+            static fn ($filePath) => (array) $filePath,
             glob(\dirname(__DIR__, 2).'/Resources/translations/*.xlf')
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/User/ChainUserCheckerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/User/ChainUserCheckerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/User/ChainUserCheckerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/User/ChainUserCheckerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,14 +13,14 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Security\Core\User\ChainUserChecker;
+use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Core\User\UserCheckerInterface;
-use Symfony\Component\Security\Core\User\UserInterface;
 
 final class ChainUserCheckerTest extends TestCase
 {
     public function testForwardsPreAuthToAllUserCheckers()
     {
-        $user = $this->createMock(UserInterface::class);
+        $user = new InMemoryUser('John', 'password');
 
         $checker1 = $this->createMock(UserCheckerInterface::class);
         $checker1->expects($this->once())
@@ -42,7 +42,7 @@
 
     public function testForwardsPostAuthToAllUserCheckers()
     {
-        $user = $this->createMock(UserInterface::class);
+        $user = new InMemoryUser('John', 'password');
 
         $checker1 = $this->createMock(UserCheckerInterface::class);
         $checker1->expects($this->once())
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/User/ChainUserProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/User/ChainUserProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/User/ChainUserProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/User/ChainUserProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,12 +14,13 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
 use Symfony\Component\Security\Core\Exception\UserNotFoundException;
+use Symfony\Component\Security\Core\User\AttributesBasedUserProviderInterface;
 use Symfony\Component\Security\Core\User\ChainUserProvider;
 use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Core\User\InMemoryUserProvider;
 use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
 use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
-use Symfony\Component\Security\Core\User\UserInterface;
+use Symfony\Component\Security\Core\User\UserProviderInterface;
 
 class ChainUserProviderTest extends TestCase
 {
@@ -38,13 +39,43 @@
             ->expects($this->once())
             ->method('loadUserByIdentifier')
             ->with($this->equalTo('foo'))
-            ->willReturn($account = $this->createMock(UserInterface::class))
+            ->willReturn($account = new InMemoryUser('John', 'password'))
         ;
 
         $provider = new ChainUserProvider([$provider1, $provider2]);
         $this->assertSame($account, $provider->loadUserByIdentifier('foo'));
     }
 
+    public function testLoadUserByIdentifierWithAttributes()
+    {
+        $provider0 = $this->createMock(ChainUserProvider::class);
+        $provider0
+            ->expects($this->once())
+            ->method('loadUserByIdentifier')
+            ->with($this->equalTo('foo'), $this->equalTo(['attr' => 5]))
+            ->willThrowException(new UserNotFoundException('not found'))
+        ;
+
+        $provider1 = $this->createMock(UserProviderInterface::class);
+        $provider1
+            ->expects($this->once())
+            ->method('loadUserByIdentifier')
+            ->with($this->equalTo('foo'))
+            ->willThrowException(new UserNotFoundException('not found'))
+        ;
+
+        $provider2 = $this->createMock(AttributesBasedUserProviderInterface::class);
+        $provider2
+            ->expects($this->once())
+            ->method('loadUserByIdentifier')
+            ->with($this->equalTo('foo'), $this->equalTo(['attr' => 5]))
+            ->willReturn($account = new InMemoryUser('John', 'password'))
+        ;
+
+        $provider = new ChainUserProvider([$provider0, $provider1, $provider2]);
+        $this->assertSame($account, $provider->loadUserByIdentifier('foo', ['attr' => 5]));
+    }
+
     public function testLoadUserByIdentifierThrowsUserNotFoundException()
     {
         $this->expectException(UserNotFoundException::class);
@@ -100,11 +131,11 @@
         $provider3
             ->expects($this->once())
             ->method('refreshUser')
-            ->willReturn($account = $this->createMock(UserInterface::class))
+            ->willReturn($account = new InMemoryUser('John', 'password'))
         ;
 
         $provider = new ChainUserProvider([$provider1, $provider2, $provider3]);
-        $this->assertSame($account, $provider->refreshUser($this->createMock(UserInterface::class)));
+        $this->assertSame($account, $provider->refreshUser(new InMemoryUser('John', 'password')));
     }
 
     public function testRefreshUserAgain()
@@ -132,11 +163,11 @@
         $provider2
             ->expects($this->once())
             ->method('refreshUser')
-            ->willReturn($account = $this->createMock(UserInterface::class))
+            ->willReturn($account = new InMemoryUser('John', 'password'))
         ;
 
         $provider = new ChainUserProvider([$provider1, $provider2]);
-        $this->assertSame($account, $provider->refreshUser($this->createMock(UserInterface::class)));
+        $this->assertSame($account, $provider->refreshUser(new InMemoryUser('John', 'password')));
     }
 
     public function testRefreshUserThrowsUnsupportedUserException()
@@ -169,7 +200,7 @@
         ;
 
         $provider = new ChainUserProvider([$provider1, $provider2]);
-        $provider->refreshUser($this->createMock(UserInterface::class));
+        $provider->refreshUser(new InMemoryUser('John', 'password'));
     }
 
     public function testSupportsClass()
@@ -241,11 +272,11 @@
         $provider2
             ->expects($this->once())
             ->method('refreshUser')
-            ->willReturn($account = $this->createMock(UserInterface::class))
+            ->willReturn($account = new InMemoryUser('John', 'password'))
         ;
 
         $provider = new ChainUserProvider(new \ArrayObject([$provider1, $provider2]));
-        $this->assertSame($account, $provider->refreshUser($this->createMock(UserInterface::class)));
+        $this->assertSame($account, $provider->refreshUser(new InMemoryUser('John', 'password')));
     }
 
     public function testPasswordUpgrades()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/User/InMemoryUserCheckerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/User/InMemoryUserCheckerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/User/InMemoryUserCheckerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/User/InMemoryUserCheckerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,6 @@
 use Symfony\Component\Security\Core\Exception\DisabledException;
 use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Core\User\InMemoryUserChecker;
-use Symfony\Component\Security\Core\User\UserInterface;
 
 class InMemoryUserCheckerTest extends TestCase
 {
@@ -23,7 +22,7 @@
     {
         $checker = new InMemoryUserChecker();
 
-        $this->assertNull($checker->checkPostAuth($this->createMock(UserInterface::class)));
+        $this->assertNull($checker->checkPostAuth(new InMemoryUser('John', 'password')));
     }
 
     public function testCheckPostAuthPass()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/User/InMemoryUserTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/User/InMemoryUserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/User/InMemoryUserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/User/InMemoryUserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -93,6 +93,6 @@
     public function testIsEqualToWithDifferentUser()
     {
         $user = new InMemoryUser('username', 'password');
-        $this->assertFalse($user->isEqualTo($this->createMock(UserInterface::class)));
+        $this->assertFalse($user->isEqualTo($this->createStub(UserInterface::class)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/User/OidcUserTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/User/OidcUserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/User/OidcUserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/User/OidcUserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,27 +27,27 @@
     public function testCreateFullUserWithAdditionalClaimsUsingPositionalParameters()
     {
         $this->assertEquals(new OidcUser(
-            userIdentifier: 'john.doe',
-            roles: ['ROLE_USER', 'ROLE_ADMIN'],
-            sub: 'e21bf182-1538-406e-8ccb-e25a17aba39f',
-            name: 'John DOE',
-            givenName: 'John',
-            familyName: 'DOE',
-            middleName: 'Fitzgerald',
-            nickname: 'Johnny',
-            preferredUsername: 'john.doe',
-            profile: 'https://www.example.com/john-doe',
-            picture: 'https://www.example.com/pics/john-doe.jpg',
-            website: 'https://www.example.com',
-            email: 'john.doe@example.com',
-            emailVerified: true,
-            gender: 'male',
-            birthdate: '1980-05-15',
-            zoneinfo: 'Europe/Paris',
-            locale: 'fr-FR',
-            phoneNumber: '+33 (0) 6 12 34 56 78',
-            phoneNumberVerified: false,
-            address: [
+            'john.doe',
+            ['ROLE_USER', 'ROLE_ADMIN'],
+            'e21bf182-1538-406e-8ccb-e25a17aba39f',
+            'John DOE',
+            'John',
+            'DOE',
+            'Fitzgerald',
+            'Johnny',
+            'john.doe',
+            'https://www.example.com/john-doe',
+            'https://www.example.com/pics/john-doe.jpg',
+            'https://www.example.com',
+            'john.doe@example.com',
+            true,
+            'male',
+            '1980-05-15',
+            'Europe/Paris',
+            'fr-FR',
+            '+33 (0) 6 12 34 56 78',
+            false,
+            [
                 'formatted' => '1 Rue des Moulins 75000 Paris - France',
                 'street_address' => '1 Rue des Moulins',
                 'locality' => 'Paris',
@@ -55,8 +55,8 @@
                 'postal_code' => '75000',
                 'country' => 'France',
             ],
-            updatedAt: (new \DateTimeImmutable())->setTimestamp(1669628917),
-            additionalClaims: [
+            (new \DateTimeImmutable())->setTimestamp(1669628917),
+            ...[
                 'impersonator' => [
                     'username' => 'jane.doe@example.com',
                 ],
@@ -102,27 +102,27 @@
     public function testCreateFullUserWithAdditionalClaims()
     {
         $this->assertEquals(new OidcUser(
-            userIdentifier: 'john.doe',
-            roles: ['ROLE_USER', 'ROLE_ADMIN'],
-            sub: 'e21bf182-1538-406e-8ccb-e25a17aba39f',
-            name: 'John DOE',
-            givenName: 'John',
-            familyName: 'DOE',
-            middleName: 'Fitzgerald',
-            nickname: 'Johnny',
-            preferredUsername: 'john.doe',
-            profile: 'https://www.example.com/john-doe',
-            picture: 'https://www.example.com/pics/john-doe.jpg',
-            website: 'https://www.example.com',
-            email: 'john.doe@example.com',
-            emailVerified: true,
-            gender: 'male',
-            birthdate: '1980-05-15',
-            zoneinfo: 'Europe/Paris',
-            locale: 'fr-FR',
-            phoneNumber: '+33 (0) 6 12 34 56 78',
-            phoneNumberVerified: false,
-            address: [
+            'john.doe',
+            ['ROLE_USER', 'ROLE_ADMIN'],
+            'e21bf182-1538-406e-8ccb-e25a17aba39f',
+            'John DOE',
+            'John',
+            'DOE',
+            'Fitzgerald',
+            'Johnny',
+            'john.doe',
+            'https://www.example.com/john-doe',
+            'https://www.example.com/pics/john-doe.jpg',
+            'https://www.example.com',
+            'john.doe@example.com',
+            true,
+            'male',
+            '1980-05-15',
+            'Europe/Paris',
+            'fr-FR',
+            '+33 (0) 6 12 34 56 78',
+            false,
+            [
                 'formatted' => '1 Rue des Moulins 75000 Paris - France',
                 'street_address' => '1 Rue des Moulins',
                 'locality' => 'Paris',
@@ -130,13 +130,11 @@
                 'postal_code' => '75000',
                 'country' => 'France',
             ],
-            updatedAt: (new \DateTimeImmutable())->setTimestamp(1669628917),
-            additionalClaims: [
-                [
-                    'username' => 'jane.doe@example.com',
-                ],
-                12345,
+            (new \DateTimeImmutable())->setTimestamp(1669628917),
+            [
+                'username' => 'jane.doe@example.com',
             ],
+            12345,
         ), new OidcUser(
             'john.doe',
             ['ROLE_USER', 'ROLE_ADMIN'],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Validator/Constraints/UserPasswordTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Validator/Constraints/UserPasswordTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Tests/Validator/Constraints/UserPasswordTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Tests/Validator/Constraints/UserPasswordTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
         $metadata = new ClassMetadata(UserPasswordDummy::class);
         self::assertTrue((new AttributeLoader())->loadClassMetadata($metadata));
 
-        yield 'attribute' => [$metadata->properties['b']->constraints[0]];
+        yield 'attribute' => [$metadata->getPropertyMetadata('b')[0]->getConstraints()[0]];
     }
 
     public function testAttributes()
@@ -50,12 +50,12 @@
         $metadata = new ClassMetadata(UserPasswordDummy::class);
         self::assertTrue((new AttributeLoader())->loadClassMetadata($metadata));
 
-        [$bConstraint] = $metadata->properties['b']->getConstraints();
+        [$bConstraint] = $metadata->getPropertyMetadata('b')[0]->getConstraints();
         self::assertSame('myMessage', $bConstraint->message);
         self::assertSame(['Default', 'UserPasswordDummy'], $bConstraint->groups);
         self::assertNull($bConstraint->payload);
 
-        [$cConstraint] = $metadata->properties['c']->getConstraints();
+        [$cConstraint] = $metadata->getPropertyMetadata('c')[0]->getConstraints();
         self::assertSame(['my_group'], $cConstraint->groups);
         self::assertSame('some attached data', $cConstraint->payload);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/User/ChainUserProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/User/ChainUserProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/User/ChainUserProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/User/ChainUserProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,17 +56,25 @@
         return $this->loadUserByIdentifier($username);
     }
 
-    public function loadUserByIdentifier(string $identifier): UserInterface
+    /**
+     * @param array $attributes
+     */
+    public function loadUserByIdentifier(string $identifier/* , array $attributes = [] */): UserInterface
     {
+        $attributes = \func_num_args() > 1 ? func_get_arg(1) : [];
         foreach ($this->providers as $provider) {
             try {
+                if ($provider instanceof AttributesBasedUserProviderInterface || $provider instanceof self) {
+                    return $provider->loadUserByIdentifier($identifier, $attributes);
+                }
+
                 return $provider->loadUserByIdentifier($identifier);
             } catch (UserNotFoundException) {
                 // try next one
             }
         }
 
-        $ex = new UserNotFoundException(sprintf('There is no user with identifier "%s".', $identifier));
+        $ex = new UserNotFoundException(\sprintf('There is no user with identifier "%s".', $identifier));
         $ex->setUserIdentifier($identifier);
         throw $ex;
     }
@@ -92,12 +100,11 @@
 
         if ($supportedUserFound) {
             $username = $user->getUserIdentifier();
-            $e = new UserNotFoundException(sprintf('There is no user with name "%s".', $username));
+            $e = new UserNotFoundException(\sprintf('There is no user with name "%s".', $username));
             $e->setUserIdentifier($username);
             throw $e;
-        } else {
-            throw new UnsupportedUserException(sprintf('There is no user provider for user "%s". Shouldn\'t the "supportsClass()" method of your user provider return true for this classname?', get_debug_type($user)));
         }
+        throw new UnsupportedUserException(\sprintf('There is no user provider for user "%s". Shouldn\'t the "supportsClass()" method of your user provider return true for this classname?', get_debug_type($user)));
     }
 
     public function supportsClass(string $class): bool
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/User/InMemoryUserProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/User/InMemoryUserProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/User/InMemoryUserProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/User/InMemoryUserProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -80,7 +80,7 @@
     public function refreshUser(UserInterface $user): UserInterface
     {
         if (!$user instanceof InMemoryUser) {
-            throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
+            throw new UnsupportedUserException(\sprintf('Instances of "%s" are not supported.', get_debug_type($user)));
         }
 
         $storedUser = $this->getUser($user->getUserIdentifier());
@@ -104,7 +104,7 @@
     private function getUser(string $username): UserInterface
     {
         if (!isset($this->users[strtolower($username)])) {
-            $ex = new UserNotFoundException(sprintf('Username "%s" does not exist.', $username));
+            $ex = new UserNotFoundException(\sprintf('Username "%s" does not exist.', $username));
             $ex->setUserIdentifier($username);
 
             throw $ex;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/User/MissingUserProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/User/MissingUserProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/User/MissingUserProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/User/MissingUserProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
      */
     public function __construct(string $firewall)
     {
-        throw new InvalidConfigurationException(sprintf('"%s" firewall requires a user provider but none was defined.', $firewall));
+        throw new InvalidConfigurationException(\sprintf('"%s" firewall requires a user provider but none was defined.', $firewall));
     }
 
     public function loadUserByUsername(string $username): UserInterface
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/User/OidcUser.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/User/OidcUser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/User/OidcUser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/User/OidcUser.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
         private ?\DateTimeInterface $updatedAt = null,
 
         // Additional Claims (https://openid.net/specs/openid-connect-core-1_0.html#AdditionalClaims)
-        ...$additionalClaims
+        ...$additionalClaims,
     ) {
         if (null === $sub || '' === $sub) {
             throw new \InvalidArgumentException('The "sub" claim cannot be empty.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/User/UserInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/User/UserInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/User/UserInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/User/UserInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,9 +15,7 @@
  * Represents the interface that all user classes must implement.
  *
  * This interface is useful because the authentication layer can deal with
- * the object through its lifecycle, using the object to get the hashed
- * password (for checking against a submitted password), assigning roles
- * and so on.
+ * the object through its lifecycle, assigning roles and so on.
  *
  * Regardless of how your users are loaded or where they come from (a database,
  * configuration, web service, etc.), you will have a class that implements
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Validator/Constraints/UserPasswordValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Validator/Constraints/UserPasswordValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Core/Validator/Constraints/UserPasswordValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Core/Validator/Constraints/UserPasswordValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
         $user = $this->tokenStorage->getToken()->getUser();
 
         if (!$user instanceof PasswordAuthenticatedUserInterface) {
-            throw new ConstraintDefinitionException(sprintf('The "%s" class must implement the "%s" interface.', get_debug_type($user), PasswordAuthenticatedUserInterface::class));
+            throw new ConstraintDefinitionException(\sprintf('The "%s" class must implement the "%s" interface.', get_debug_type($user), PasswordAuthenticatedUserInterface::class));
         }
 
         $hasher = $this->hasherFactory->getPasswordHasher($user);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Csrf/CsrfTokenManager.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Csrf/CsrfTokenManager.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Csrf/CsrfTokenManager.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Csrf/CsrfTokenManager.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,12 +42,12 @@
         $this->generator = $generator ?? new UriSafeTokenGenerator();
         $this->storage = $storage ?? new NativeSessionTokenStorage();
 
-        $superGlobalNamespaceGenerator = fn () => !empty($_SERVER['HTTPS']) && 'off' !== strtolower($_SERVER['HTTPS']) ? 'https-' : '';
+        $superGlobalNamespaceGenerator = static fn () => !empty($_SERVER['HTTPS']) && 'off' !== strtolower($_SERVER['HTTPS']) ? 'https-' : '';
 
         if (null === $namespace) {
             $this->namespace = $superGlobalNamespaceGenerator;
         } elseif ($namespace instanceof RequestStack) {
-            $this->namespace = function () use ($namespace, $superGlobalNamespaceGenerator) {
+            $this->namespace = static function () use ($namespace, $superGlobalNamespaceGenerator) {
                 if ($request = $namespace->getMainRequest()) {
                     return $request->isSecure() ? 'https-' : '';
                 }
@@ -59,7 +59,7 @@
         } elseif (\is_callable($namespace)) {
             $this->namespace = $namespace(...);
         } else {
-            throw new InvalidArgumentException(sprintf('$namespace must be a string, a callable returning a string, null or an instance of "RequestStack". "%s" given.', get_debug_type($namespace)));
+            throw new InvalidArgumentException(\sprintf('$namespace must be a string, a callable returning a string, null or an instance of "RequestStack". "%s" given.', get_debug_type($namespace)));
         }
     }
 
@@ -112,7 +112,7 @@
         $key = random_bytes(32);
         $value = $this->xor($value, $key);
 
-        return sprintf('%s.%s.%s', substr(hash('xxh128', $key), 0, 1 + (\ord($key[0]) % 32)), rtrim(strtr(base64_encode($key), '+/', '-_'), '='), rtrim(strtr(base64_encode($value), '+/', '-_'), '='));
+        return \sprintf('%s.%s.%s', substr(hash('xxh128', $key), 0, 1 + (\ord($key[0]) % 32)), rtrim(strtr(base64_encode($key), '+/', '-_'), '='), rtrim(strtr(base64_encode($value), '+/', '-_'), '='));
     }
 
     private function derandomize(string $value): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Csrf/Tests/CsrfTokenManagerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Csrf/Tests/CsrfTokenManagerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Csrf/Tests/CsrfTokenManagerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Csrf/Tests/CsrfTokenManagerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,32 +27,50 @@
 {
     public function testGetNonExistingTokenEmptyNamespace()
     {
-        $this->assertGetNonExistingToken(...$this->getEmptyNamespaceMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertGetNonExistingToken('', $this->getEmptyNamespaceMocks($generator, $storage), $storage, $generator);
     }
 
     public function testGetNonExistingTokenHttpsNamespace()
     {
-        $this->assertGetNonExistingToken(...$this->getHttpsNamespaceMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertGetNonExistingToken('https-', $this->getHttpsNamespaceMocks($generator, $storage), $storage, $generator);
     }
 
     public function testGetNonExistingTokenCustomNamespace()
     {
-        $this->assertGetNonExistingToken(...$this->getCustomNamespaceMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertGetNonExistingToken('aNamespace-', $this->getCustomNamespaceMocks($generator, $storage), $storage, $generator);
     }
 
     public function testGetNonExistingTokenRequestStack()
     {
-        $this->assertGetNonExistingToken(...$this->getRequestStackMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertGetNonExistingToken('https-', $this->getRequestStackMocks($generator, $storage), $storage, $generator);
     }
 
     public function testGetNonExistingTokenClosure()
     {
-        $this->assertGetNonExistingToken(...$this->getClosureMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertGetNonExistingToken('generated-', $this->getClosureMocks($generator, $storage), $storage, $generator);
     }
 
     public function testGetNonExistingTokenRequestStackEmptyNamespace()
     {
-        $this->assertGetNonExistingToken(...$this->getRequestStackWithEmptyNamespaceMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertGetNonExistingToken('', $this->getRequestStackWithEmptyNamespaceMocks($generator, $storage), $storage, $generator);
     }
 
     private function assertGetNonExistingToken($namespace, $manager, $storage, $generator): void
@@ -79,32 +97,50 @@
 
     public function testUseExistingTokenIfAvailableEmptyNamespace()
     {
-        $this->assertUseExistingTokenIfAvailable(...$this->getEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertUseExistingTokenIfAvailable('', $this->getEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testUseExistingTokenIfAvailableHttpsNamespace()
     {
-        $this->assertUseExistingTokenIfAvailable(...$this->getHttpsNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertUseExistingTokenIfAvailable('https-', $this->getHttpsNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testUseExistingTokenIfAvailableCustomNamespace()
     {
-        $this->assertUseExistingTokenIfAvailable(...$this->getCustomNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertUseExistingTokenIfAvailable('aNamespace-', $this->getCustomNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testUseExistingTokenIfAvailableRequestStack()
     {
-        $this->assertUseExistingTokenIfAvailable(...$this->getRequestStackMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertUseExistingTokenIfAvailable('https-', $this->getRequestStackMocks($generator, $storage), $storage);
     }
 
     public function testUseExistingTokenIfAvailableClosure()
     {
-        $this->assertUseExistingTokenIfAvailable(...$this->getClosureMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertUseExistingTokenIfAvailable('generated-', $this->getClosureMocks($generator, $storage), $storage);
     }
 
     public function testUseExistingTokenIfAvailableRequestStackEmptyNamespace()
     {
-        $this->assertUseExistingTokenIfAvailable(...$this->getRequestStackWithEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertUseExistingTokenIfAvailable('', $this->getRequestStackWithEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     private function assertUseExistingTokenIfAvailable($namespace, $manager, $storage): void
@@ -128,42 +164,60 @@
 
     public function testRandomizeTheTokenEmptyNamespace()
     {
-        $this->assertRandomizeTheToken(...$this->getEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createStub(TokenStorageInterface::class);
+
+        $this->assertRandomizeTheToken('', $this->getEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testRandomizeTheTokenHttpsNamespace()
     {
-        $this->assertRandomizeTheToken(...$this->getHttpsNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createStub(TokenStorageInterface::class);
+
+        $this->assertRandomizeTheToken('https-', $this->getHttpsNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testRandomizeTheTokenCustomNamespace()
     {
-        $this->assertRandomizeTheToken(...$this->getCustomNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createStub(TokenStorageInterface::class);
+
+        $this->assertRandomizeTheToken('aNamespace-', $this->getCustomNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testRandomizeTheTokenRequestStack()
     {
-        $this->assertRandomizeTheToken(...$this->getRequestStackMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createStub(TokenStorageInterface::class);
+
+        $this->assertRandomizeTheToken('https-', $this->getRequestStackMocks($generator, $storage), $storage);
     }
 
     public function testRandomizeTheTokenClosure()
     {
-        $this->assertRandomizeTheToken(...$this->getClosureMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createStub(TokenStorageInterface::class);
+
+        $this->assertRandomizeTheToken('generated-', $this->getClosureMocks($generator, $storage), $storage);
     }
 
     public function testRandomizeTheTokenRequestStackEmptyNamespace()
     {
-        $this->assertRandomizeTheToken(...$this->getRequestStackWithEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createStub(TokenStorageInterface::class);
+
+        $this->assertRandomizeTheToken('', $this->getRequestStackWithEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     private function assertRandomizeTheToken($namespace, $manager, $storage): void
     {
-        $storage->expects($this->any())
+        $storage
             ->method('hasToken')
             ->with($namespace.'token_id')
             ->willReturn(true);
 
-        $storage->expects($this->any())
+        $storage
             ->method('getToken')
             ->with($namespace.'token_id')
             ->willReturn('TOKEN');
@@ -182,32 +236,50 @@
 
     public function testRefreshTokenAlwaysReturnsNewTokenEmptyNamespace()
     {
-        $this->assertRefreshTokenAlwaysReturnsNewToken(...$this->getEmptyNamespaceMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRefreshTokenAlwaysReturnsNewToken('', $this->getEmptyNamespaceMocks($generator, $storage), $storage, $generator);
     }
 
     public function testRefreshTokenAlwaysReturnsNewTokenHttpsNamespace()
     {
-        $this->assertRefreshTokenAlwaysReturnsNewToken(...$this->getHttpsNamespaceMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRefreshTokenAlwaysReturnsNewToken('https-', $this->getHttpsNamespaceMocks($generator, $storage), $storage, $generator);
     }
 
     public function testRefreshTokenAlwaysReturnsNewTokenCustomNamespace()
     {
-        $this->assertRefreshTokenAlwaysReturnsNewToken(...$this->getCustomNamespaceMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRefreshTokenAlwaysReturnsNewToken('aNamespace-', $this->getCustomNamespaceMocks($generator, $storage), $storage, $generator);
     }
 
     public function testRefreshTokenAlwaysReturnsNewTokenRequestStack()
     {
-        $this->assertRefreshTokenAlwaysReturnsNewToken(...$this->getRequestStackMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRefreshTokenAlwaysReturnsNewToken('https-', $this->getRequestStackMocks($generator, $storage), $storage, $generator);
     }
 
     public function testRefreshTokenAlwaysReturnsNewTokenClosure()
     {
-        $this->assertRefreshTokenAlwaysReturnsNewToken(...$this->getClosureMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRefreshTokenAlwaysReturnsNewToken('generated-', $this->getClosureMocks($generator, $storage), $storage, $generator);
     }
 
     public function testRefreshTokenAlwaysReturnsNewTokenRequestStackEmptyNamespace()
     {
-        $this->assertRefreshTokenAlwaysReturnsNewToken(...$this->getRequestStackWithEmptyNamespaceMocks());
+        $generator = $this->createMock(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRefreshTokenAlwaysReturnsNewToken('', $this->getRequestStackWithEmptyNamespaceMocks($generator, $storage), $storage, $generator);
     }
 
     private function assertRefreshTokenAlwaysReturnsNewToken($namespace, $manager, $storage, $generator): void
@@ -232,32 +304,50 @@
 
     public function testMatchingTokenIsValidEmptyNamespace()
     {
-        $this->assertMatchingTokenIsValid(...$this->getEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValid('', $this->getEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testMatchingTokenIsValidHttpsNamespace()
     {
-        $this->assertMatchingTokenIsValid(...$this->getHttpsNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValid('https-', $this->getHttpsNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testMatchingTokenIsValidCustomNamespace()
     {
-        $this->assertMatchingTokenIsValid(...$this->getCustomNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValid('aNamespace-', $this->getCustomNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testMatchingTokenIsValidRequestStack()
     {
-        $this->assertMatchingTokenIsValid(...$this->getRequestStackMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValid('https-', $this->getRequestStackMocks($generator, $storage), $storage);
     }
 
     public function testMatchingTokenIsValidClosure()
     {
-        $this->assertMatchingTokenIsValid(...$this->getClosureMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValid('generated-', $this->getClosureMocks($generator, $storage), $storage);
     }
 
     public function testMatchingTokenIsValidRequestStackEmptyNamespace()
     {
-        $this->assertMatchingTokenIsValid(...$this->getRequestStackWithEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValid('', $this->getRequestStackWithEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     private function assertMatchingTokenIsValid($namespace, $manager, $storage)
@@ -279,32 +369,50 @@
 
     public function testMatchingTokenIsValidWithLegacyTokenEmptyNamespace()
     {
-        $this->assertMatchingTokenIsValidWithLegacyToken(...$this->getEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValidWithLegacyToken('', $this->getEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testMatchingTokenIsValidWithLegacyTokenHttpsNamespace()
     {
-        $this->assertMatchingTokenIsValidWithLegacyToken(...$this->getHttpsNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValidWithLegacyToken('https-', $this->getHttpsNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testMatchingTokenIsValidWithLegacyTokenCustomNamespace()
     {
-        $this->assertMatchingTokenIsValidWithLegacyToken(...$this->getCustomNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValidWithLegacyToken('aNamespace-', $this->getCustomNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testMatchingTokenIsValidWithLegacyTokenRequestStack()
     {
-        $this->assertMatchingTokenIsValidWithLegacyToken(...$this->getRequestStackMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValidWithLegacyToken('https-', $this->getRequestStackMocks($generator, $storage), $storage);
     }
 
     public function testMatchingTokenIsValidWithLegacyTokenClosure()
     {
-        $this->assertMatchingTokenIsValidWithLegacyToken(...$this->getClosureMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValidWithLegacyToken('generated-', $this->getClosureMocks($generator, $storage), $storage);
     }
 
     public function testMatchingTokenIsValidWithLegacyTokenRequestStackEmptyNamespace()
     {
-        $this->assertMatchingTokenIsValidWithLegacyToken(...$this->getRequestStackWithEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertMatchingTokenIsValidWithLegacyToken('', $this->getRequestStackWithEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     private function assertMatchingTokenIsValidWithLegacyToken($namespace, $manager, $storage): void
@@ -324,32 +432,50 @@
 
     public function testNonMatchingTokenIsNotValidEmptyNamespace()
     {
-        $this->assertNonMatchingTokenIsNotValid(...$this->getEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonMatchingTokenIsNotValid('', $this->getEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testNonMatchingTokenIsNotValidHttpsNamespace()
     {
-        $this->assertNonMatchingTokenIsNotValid(...$this->getHttpsNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonMatchingTokenIsNotValid('https-', $this->getHttpsNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testNonMatchingTokenIsNotValidCustomNamespace()
     {
-        $this->assertNonMatchingTokenIsNotValid(...$this->getCustomNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonMatchingTokenIsNotValid('aNamespace-', $this->getCustomNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testNonMatchingTokenIsNotValidRequestStack()
     {
-        $this->assertNonMatchingTokenIsNotValid(...$this->getRequestStackMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonMatchingTokenIsNotValid('https-', $this->getRequestStackMocks($generator, $storage), $storage);
     }
 
     public function testNonMatchingTokenIsNotValidClosure()
     {
-        $this->assertNonMatchingTokenIsNotValid(...$this->getClosureMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonMatchingTokenIsNotValid('generated-', $this->getClosureMocks($generator, $storage), $storage);
     }
 
     public function testNonMatchingTokenIsNotValidRequestStackEmptyNamespace()
     {
-        $this->assertNonMatchingTokenIsNotValid(...$this->getRequestStackWithEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonMatchingTokenIsNotValid('', $this->getRequestStackWithEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     private function assertNonMatchingTokenIsNotValid($namespace, $manager, $storage): void
@@ -369,32 +495,50 @@
 
     public function testNonExistingTokenIsNotValidEmptyNamespace()
     {
-        $this->assertNonExistingTokenIsNotValid(...$this->getEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonExistingTokenIsNotValid('', $this->getEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testNonExistingTokenIsNotValidHttpsNamespace()
     {
-        $this->assertNonExistingTokenIsNotValid(...$this->getHttpsNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonExistingTokenIsNotValid('https-', $this->getHttpsNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testNonExistingTokenIsNotValidCustomNamespace()
     {
-        $this->assertNonExistingTokenIsNotValid(...$this->getCustomNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonExistingTokenIsNotValid('aNamespace-', $this->getCustomNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testNonExistingTokenIsNotValidRequestStack()
     {
-        $this->assertNonExistingTokenIsNotValid(...$this->getRequestStackMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonExistingTokenIsNotValid('https-', $this->getRequestStackMocks($generator, $storage), $storage);
     }
 
     public function testNonExistingTokenIsNotValidClosure()
     {
-        $this->assertNonExistingTokenIsNotValid(...$this->getClosureMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonExistingTokenIsNotValid('generated-', $this->getClosureMocks($generator, $storage), $storage);
     }
 
     public function testNonExistingTokenIsNotValidRequestStackEmptyNamespace()
     {
-        $this->assertNonExistingTokenIsNotValid(...$this->getRequestStackWithEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertNonExistingTokenIsNotValid('', $this->getRequestStackWithEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     private function assertNonExistingTokenIsNotValid($namespace, $manager, $storage): void
@@ -412,8 +556,8 @@
 
     public function testTokenShouldNotTriggerDivisionByZero()
     {
-        [$generator, $storage] = $this->getGeneratorAndStorage();
-        $manager = new CsrfTokenManager($generator, $storage);
+        $storage = $this->createMock(TokenStorageInterface::class);
+        $manager = new CsrfTokenManager($this->createStub(TokenGeneratorInterface::class), $storage);
 
         // Scenario: the token that was returned is abc.def.ghi, and gets modified in the browser to abc..ghi
 
@@ -432,32 +576,50 @@
 
     public function testRemoveTokenEmptyNamespace()
     {
-        $this->assertRemoveToken(...$this->getEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRemoveToken('', $this->getEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testRemoveTokenHttpsNamespace()
     {
-        $this->assertRemoveToken(...$this->getHttpsNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRemoveToken('https-', $this->getHttpsNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testRemoveTokenCustomNamespace()
     {
-        $this->assertRemoveToken(...$this->getCustomNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRemoveToken('aNamespace-', $this->getCustomNamespaceMocks($generator, $storage), $storage);
     }
 
     public function testRemoveTokenRequestStack()
     {
-        $this->assertRemoveToken(...$this->getRequestStackMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRemoveToken('https-', $this->getRequestStackMocks($generator, $storage), $storage);
     }
 
     public function testRemoveTokenClosure()
     {
-        $this->assertRemoveToken(...$this->getClosureMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRemoveToken('generated-', $this->getClosureMocks($generator, $storage), $storage);
     }
 
     public function testRemoveTokenRequestStackEmptyNamespace()
     {
-        $this->assertRemoveToken(...$this->getRequestStackWithEmptyNamespaceMocks());
+        $generator = $this->createStub(TokenGeneratorInterface::class);
+        $storage = $this->createMock(TokenStorageInterface::class);
+
+        $this->assertRemoveToken('', $this->getRequestStackWithEmptyNamespaceMocks($generator, $storage), $storage);
     }
 
     private function assertRemoveToken($namespace, $manager, $storage): void
@@ -474,69 +636,50 @@
     {
         $generator = $this->createMock(TokenGeneratorInterface::class);
         $generator->expects($this->once())->method('generateToken')->willReturn('random');
-        $storage = $this->createMock(TokenStorageInterface::class);
 
         $requestStack = new RequestStack();
         $requestStack->push(new Request([], [], [], [], [], ['HTTPS' => 'on']));
 
-        $manager = new CsrfTokenManager($generator, $storage);
+        $manager = new CsrfTokenManager($generator, $this->createStub(TokenStorageInterface::class));
 
         $token = $manager->getToken('foo');
         $this->assertSame('foo', $token->getId());
     }
 
-    private function getEmptyNamespaceMocks(): array
+    private function getEmptyNamespaceMocks(TokenGeneratorInterface $generator, TokenStorageInterface $storage): CsrfTokenManager
     {
-        [$generator, $storage] = $this->getGeneratorAndStorage();
-
-        return ['', new CsrfTokenManager($generator, $storage, ''), $storage, $generator];
+        return new CsrfTokenManager($generator, $storage, '');
     }
 
-    private function getHttpsNamespaceMocks(): array
+    private function getHttpsNamespaceMocks(TokenGeneratorInterface $generator, TokenStorageInterface $storage): CsrfTokenManager
     {
-        [$generator, $storage] = $this->getGeneratorAndStorage();
-
-        return ['https-', new CsrfTokenManager($generator, $storage), $storage, $generator];
+        return new CsrfTokenManager($generator, $storage);
     }
 
-    private function getCustomNamespaceMocks(): array
+    private function getCustomNamespaceMocks(TokenGeneratorInterface $generator, TokenStorageInterface $storage): CsrfTokenManager
     {
-        [$generator, $storage] = $this->getGeneratorAndStorage();
-
-        return ['aNamespace-', new CsrfTokenManager($generator, $storage, 'aNamespace-'), $storage, $generator];
+        return new CsrfTokenManager($generator, $storage, 'aNamespace-');
     }
 
-    private function getRequestStackMocks(): array
+    private function getRequestStackMocks(TokenGeneratorInterface $generator, TokenStorageInterface $storage): CsrfTokenManager
     {
         $requestStack = new RequestStack();
         $requestStack->push(new Request([], [], [], [], [], ['HTTPS' => 'on']));
-        [$generator, $storage] = $this->getGeneratorAndStorage();
 
-        return ['https-', new CsrfTokenManager($generator, $storage, $requestStack), $storage, $generator];
+        return new CsrfTokenManager($generator, $storage, $requestStack);
     }
 
-    private function getClosureMocks(): array
+    private function getClosureMocks(TokenGeneratorInterface $generator, TokenStorageInterface $storage): CsrfTokenManager
     {
-        [$generator, $storage] = $this->getGeneratorAndStorage();
-
-        return ['generated-', new CsrfTokenManager($generator, $storage, fn () => 'generated-'), $storage, $generator];
+        return new CsrfTokenManager($generator, $storage, static fn () => 'generated-');
     }
 
-    private function getRequestStackWithEmptyNamespaceMocks(): array
+    private function getRequestStackWithEmptyNamespaceMocks(TokenGeneratorInterface $generator, TokenStorageInterface $storage): CsrfTokenManager
     {
         $requestStack = new RequestStack();
         $requestStack->push(new Request());
-        [$generator, $storage] = $this->getGeneratorAndStorage();
 
-        return ['', new CsrfTokenManager($generator, $storage, $requestStack), $storage, $generator];
-    }
-
-    private function getGeneratorAndStorage(): array
-    {
-        return [
-            $this->createMock(TokenGeneratorInterface::class),
-            $this->createMock(TokenStorageInterface::class),
-        ];
+        return new CsrfTokenManager($generator, $storage, $requestStack);
     }
 
     protected function setUp(): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/AccessToken/FormEncodedBodyExtractor.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/AccessToken/FormEncodedBodyExtractor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/AccessToken/FormEncodedBodyExtractor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/AccessToken/FormEncodedBodyExtractor.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
 final class FormEncodedBodyExtractor implements AccessTokenExtractorInterface
 {
     public function __construct(
-        private readonly string $parameter = 'access_token'
+        private readonly string $parameter = 'access_token',
     ) {
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/AccessToken/HeaderAccessTokenExtractor.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/AccessToken/HeaderAccessTokenExtractor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/AccessToken/HeaderAccessTokenExtractor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/AccessToken/HeaderAccessTokenExtractor.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,9 +26,9 @@
 
     public function __construct(
         private readonly string $headerParameter = 'Authorization',
-        private readonly string $tokenType = 'Bearer'
+        private readonly string $tokenType = 'Bearer',
     ) {
-        $this->regex = sprintf(
+        $this->regex = \sprintf(
             '/^%s([a-zA-Z0-9\-_\+~\/\.]+=*)$/',
             '' === $this->tokenType ? '' : preg_quote($this->tokenType).'\s+'
         );
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/AccessToken/Oidc/OidcTokenHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/AccessToken/Oidc/OidcTokenHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/AccessToken/Oidc/OidcTokenHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/AccessToken/Oidc/OidcTokenHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
         private array $issuers,
         private string $claim = 'sub',
         private ?LoggerInterface $logger = null,
-        private ClockInterface $clock = new Clock()
+        private ClockInterface $clock = new Clock(),
     ) {
     }
 
@@ -85,10 +85,10 @@
             ];
             $claimCheckerManager = new ClaimCheckerManager($checkers);
             // if this check fails, an InvalidClaimException is thrown
-            $claimCheckerManager->check($claims);
+            $claimCheckerManager->check($claims, ['iat', 'exp', 'aud', 'iss']);
 
             if (empty($claims[$this->claim])) {
-                throw new MissingClaimException(sprintf('"%s" claim not found.', $this->claim));
+                throw new MissingClaimException(\sprintf('"%s" claim not found.', $this->claim));
             }
 
             // UserLoader argument can be overridden by a UserProvider on AccessTokenAuthenticator::authenticate
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/AccessToken/Oidc/OidcUserInfoTokenHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/AccessToken/Oidc/OidcUserInfoTokenHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/AccessToken/Oidc/OidcUserInfoTokenHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/AccessToken/Oidc/OidcUserInfoTokenHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
     public function __construct(
         private HttpClientInterface $client,
         private ?LoggerInterface $logger = null,
-        private string $claim = 'sub'
+        private string $claim = 'sub',
     ) {
     }
 
@@ -43,7 +43,7 @@
             ])->toArray();
 
             if (empty($claims[$this->claim])) {
-                throw new MissingClaimException(sprintf('"%s" claim not found on OIDC server response.', $this->claim));
+                throw new MissingClaimException(\sprintf('"%s" claim not found on OIDC server response.', $this->claim));
             }
 
             // UserLoader argument can be overridden by a UserProvider on AccessTokenAuthenticator::authenticate
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authentication/AuthenticatorManager.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authentication/AuthenticatorManager.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authentication/AuthenticatorManager.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authentication/AuthenticatorManager.php	2026-05-20 10:56:49.000000000 +0200
@@ -76,7 +76,7 @@
     public function authenticateUser(UserInterface $user, AuthenticatorInterface $authenticator, Request $request, array $badges = []): ?Response
     {
         // create an authentication token for the User
-        $passport = new SelfValidatingPassport(new UserBadge($user->getUserIdentifier(), fn () => $user), $badges);
+        $passport = new SelfValidatingPassport(new UserBadge($user->getUserIdentifier(), static fn () => $user), $badges);
         $token = $authenticator->createToken($passport, $this->firewallName);
 
         // announce the authentication token
@@ -105,7 +105,7 @@
             $this->logger?->debug('Checking support on authenticator.', ['firewall_name' => $this->firewallName, 'authenticator' => $authenticator::class]);
 
             if (!$authenticator instanceof AuthenticatorInterface) {
-                throw new \InvalidArgumentException(sprintf('Authenticator "%s" must implement "%s".', get_debug_type($authenticator), AuthenticatorInterface::class));
+                throw new \InvalidArgumentException(\sprintf('Authenticator "%s" must implement "%s".', get_debug_type($authenticator), AuthenticatorInterface::class));
             }
 
             if (false !== $supports = $authenticator->supports($request)) {
@@ -183,7 +183,7 @@
             $resolvedBadges = [];
             foreach ($passport->getBadges() as $badge) {
                 if (!$badge->isResolved()) {
-                    throw new BadCredentialsException(sprintf('Authentication failed: Security badge "%s" is not resolved, did you forget to register the correct listeners?', get_debug_type($badge)));
+                    throw new BadCredentialsException(\sprintf('Authentication failed: Security badge "%s" is not resolved, did you forget to register the correct listeners?', get_debug_type($badge)));
                 }
 
                 $resolvedBadges[] = $badge::class;
@@ -191,7 +191,7 @@
 
             $missingRequiredBadges = array_diff($this->requiredBadges, $resolvedBadges);
             if ($missingRequiredBadges) {
-                throw new BadCredentialsException(sprintf('Authentication failed; Some badges marked as required by the firewall config are not available on the passport: "%s".', implode('", "', $missingRequiredBadges)));
+                throw new BadCredentialsException(\sprintf('Authentication failed; Some badges marked as required by the firewall config are not available on the passport: "%s".', implode('", "', $missingRequiredBadges)));
             }
 
             // create the authentication token
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authentication/DefaultAuthenticationFailureHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authentication/DefaultAuthenticationFailureHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authentication/DefaultAuthenticationFailureHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authentication/DefaultAuthenticationFailureHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
         if (\is_string($failureUrl) && (str_starts_with($failureUrl, '/') || str_starts_with($failureUrl, 'http'))) {
             $options['failure_path'] = $failureUrl;
         } elseif ($this->logger && $failureUrl) {
-            $this->logger->debug(sprintf('Ignoring query parameter "%s": not a valid URL.', $options['failure_path_parameter']));
+            $this->logger->debug(\sprintf('Ignoring query parameter "%s": not a valid URL.', $options['failure_path_parameter']));
         }
 
         $options['failure_path'] ??= $options['login_path'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authentication/DefaultAuthenticationSuccessHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authentication/DefaultAuthenticationSuccessHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authentication/DefaultAuthenticationSuccessHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authentication/DefaultAuthenticationSuccessHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -99,7 +99,7 @@
         }
 
         if ($this->logger && $targetUrl) {
-            $this->logger->debug(sprintf('Ignoring query parameter "%s": not a valid URL.', $this->options['target_path_parameter']));
+            $this->logger->debug(\sprintf('Ignoring query parameter "%s": not a valid URL.', $this->options['target_path_parameter']));
         }
 
         $firewallName = $this->getFirewallName();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/AbstractLoginFormAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/AbstractLoginFormAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/AbstractLoginFormAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/AbstractLoginFormAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,6 +27,12 @@
 {
     /**
      * Return the URL to the login page.
+     *
+     * The default `supports()` implementation below compares this value
+     * character-for-character against the current request path
+     * (`$request->getBaseUrl().$request->getPathInfo()`), so this must return a
+     * path (e.g. `/login`). If you build the URL via `HttpUtils::generateUri()`,
+     * which may produce an absolute URL, also override `supports()`.
      */
     abstract protected function getLoginUrl(Request $request): string;
 
@@ -34,8 +40,10 @@
      * Override to change the request conditions that have to be
      * matched in order to handle the login form submit.
      *
-     * This default implementation handles all POST requests to the
-     * login path (@see getLoginUrl()).
+     * This default implementation handles POST requests whose path equals
+     * the value returned by `getLoginUrl()`; the comparison is strict,
+     * so `getLoginUrl()` must return a path rather than an absolute URL.
+     * Or this method need to be overridden.
      */
     public function supports(Request $request): bool
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/AccessTokenAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/AccessTokenAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/AccessTokenAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/AccessTokenAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -118,9 +118,9 @@
             if (null === $v || '' === $v) {
                 continue;
             }
-            $values[] = sprintf('%s="%s"', $k, $v);
+            $values[] = \sprintf('%s="%s"', $k, $v);
         }
 
-        return sprintf('Bearer %s', implode(',', $values));
+        return \sprintf('Bearer %s', implode(',', $values));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/Debug/TraceableAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/Debug/TraceableAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/Debug/TraceableAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/Debug/TraceableAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,12 +48,10 @@
             'stub' => $this->stub ??= class_exists(ClassStub::class) ? new ClassStub($this->authenticator::class) : $this->authenticator::class,
             'authenticated' => $this->authenticated,
             'badges' => array_map(
-                static function (BadgeInterface $badge): array {
-                    return [
-                        'stub' => class_exists(ClassStub::class) ? new ClassStub($badge::class) : $badge::class,
-                        'resolved' => $badge->isResolved(),
-                    ];
-                },
+                static fn (BadgeInterface $badge): array => [
+                    'stub' => class_exists(ClassStub::class) ? new ClassStub($badge::class) : $badge::class,
+                    'resolved' => $badge->isResolved(),
+                ],
                 $this->passport?->getBadges() ?? [],
             ),
         ];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/FormLoginAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/FormLoginAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/FormLoginAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/FormLoginAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -124,7 +124,7 @@
         }
 
         if (!\is_string($credentials['username']) && !$credentials['username'] instanceof \Stringable) {
-            throw new BadRequestHttpException(sprintf('The key "%s" must be a string, "%s" given.', $this->options['username_parameter'], \gettype($credentials['username'])));
+            throw new BadRequestHttpException(\sprintf('The key "%s" must be a string, "%s" given.', $this->options['username_parameter'], \gettype($credentials['username'])));
         }
 
         $credentials['username'] = trim($credentials['username']);
@@ -132,11 +132,11 @@
         $request->getSession()->set(SecurityRequestAttributes::LAST_USERNAME, $credentials['username']);
 
         if (!\is_string($credentials['password']) && (!\is_object($credentials['password']) || !method_exists($credentials['password'], '__toString'))) {
-            throw new BadRequestHttpException(sprintf('The key "%s" must be a string, "%s" given.', $this->options['password_parameter'], \gettype($credentials['password'])));
+            throw new BadRequestHttpException(\sprintf('The key "%s" must be a string, "%s" given.', $this->options['password_parameter'], \gettype($credentials['password'])));
         }
 
         if (!\is_string($credentials['csrf_token'] ?? '') && (!\is_object($credentials['csrf_token']) || !method_exists($credentials['csrf_token'], '__toString'))) {
-            throw new BadRequestHttpException(sprintf('The key "%s" must be a string, "%s" given.', $this->options['csrf_parameter'], \gettype($credentials['csrf_token'])));
+            throw new BadRequestHttpException(\sprintf('The key "%s" must be a string, "%s" given.', $this->options['csrf_parameter'], \gettype($credentials['csrf_token'])));
         }
 
         return $credentials;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/HttpBasicAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/HttpBasicAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/HttpBasicAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/HttpBasicAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
     public function start(Request $request, ?AuthenticationException $authException = null): Response
     {
         $response = new Response();
-        $response->headers->set('WWW-Authenticate', sprintf('Basic realm="%s"', $this->realmName));
+        $response->headers->set('WWW-Authenticate', \sprintf('Basic realm="%s"', $this->realmName));
         $response->setStatusCode(401);
 
         return $response;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/JsonLoginAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/JsonLoginAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/JsonLoginAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/JsonLoginAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -149,10 +149,10 @@
             $credentials['username'] = $this->propertyAccessor->getValue($data, $this->options['username_path']);
 
             if (!\is_string($credentials['username'])) {
-                throw new BadRequestHttpException(sprintf('The key "%s" must be a string.', $this->options['username_path']));
+                throw new BadRequestHttpException(\sprintf('The key "%s" must be a string.', $this->options['username_path']));
             }
         } catch (AccessException $e) {
-            throw new BadRequestHttpException(sprintf('The key "%s" must be provided.', $this->options['username_path']), $e);
+            throw new BadRequestHttpException(\sprintf('The key "%s" must be provided.', $this->options['username_path']), $e);
         }
 
         try {
@@ -160,10 +160,10 @@
             $this->propertyAccessor->setValue($data, $this->options['password_path'], null);
 
             if (!\is_string($credentials['password'])) {
-                throw new BadRequestHttpException(sprintf('The key "%s" must be a string.', $this->options['password_path']));
+                throw new BadRequestHttpException(\sprintf('The key "%s" must be a string.', $this->options['password_path']));
             }
         } catch (AccessException $e) {
-            throw new BadRequestHttpException(sprintf('The key "%s" must be provided.', $this->options['password_path']), $e);
+            throw new BadRequestHttpException(\sprintf('The key "%s" must be provided.', $this->options['password_path']), $e);
         }
 
         if ('' === $credentials['username'] || '' === $credentials['password']) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/Passport/Badge/UserBadge.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/Passport/Badge/UserBadge.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/Passport/Badge/UserBadge.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/Passport/Badge/UserBadge.php	2026-05-20 10:56:49.000000000 +0200
@@ -80,7 +80,7 @@
         }
 
         if (null === $this->userLoader) {
-            throw new \LogicException(sprintf('No user loader is configured, did you forget to register the "%s" listener?', UserProviderListener::class));
+            throw new \LogicException(\sprintf('No user loader is configured, did you forget to register the "%s" listener?', UserProviderListener::class));
         }
 
         if (null === $this->getAttributes()) {
@@ -98,7 +98,7 @@
         }
 
         if (!$user instanceof UserInterface) {
-            throw new AuthenticationServiceException(sprintf('The user provider must return a UserInterface object, "%s" given.', get_debug_type($user)));
+            throw new AuthenticationServiceException(\sprintf('The user provider must return a UserInterface object, "%s" given.', get_debug_type($user)));
         }
 
         return $this->user = $user;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,7 +78,7 @@
         if (2 === \func_num_args()) {
             $badgeFqcn = func_get_arg(1);
             if (!\is_string($badgeFqcn)) {
-                throw new \LogicException(sprintf('Second argument of "%s" must be a string.', __METHOD__));
+                throw new \LogicException(\sprintf('Second argument of "%s" must be a string.', __METHOD__));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/RemoteUserAuthenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/RemoteUserAuthenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/RemoteUserAuthenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/RemoteUserAuthenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
     protected function extractUsername(Request $request): ?string
     {
         if (!$request->server->has($this->userKey)) {
-            throw new BadCredentialsException(sprintf('User key was not found: "%s".', $this->userKey));
+            throw new BadCredentialsException(\sprintf('User key was not found: "%s".', $this->userKey));
         }
 
         return $request->server->get($this->userKey) ?: null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/X509Authenticator.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/X509Authenticator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Authenticator/X509Authenticator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Authenticator/X509Authenticator.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,13 +48,19 @@
             $username = $request->server->get($this->userKey);
         } elseif (
             $request->server->has($this->credentialsKey)
-            && preg_match('#'.preg_quote($this->credentialUserIdentifier, '#').'=([^,/]++)#', $request->server->get($this->credentialsKey), $matches)
+            && preg_match(
+                'emailAddress' === $this->credentialUserIdentifier
+                    ? '#(?:^|[,/])\s*(?:emailAddress|1\.2\.840\.113549\.1\.9\.1)=([^,/@]++@[^,/]++)#'
+                    : '#(?:^|[,/])\s*'.preg_quote($this->credentialUserIdentifier, '#').'=([^,/]++)#',
+                $request->server->get($this->credentialsKey),
+                $matches,
+            )
         ) {
             $username = trim($matches[1]);
         }
 
         if (null === $username) {
-            throw new BadCredentialsException(sprintf('SSL credentials not found: "%s", "%s".', $this->userKey, $this->credentialsKey));
+            throw new BadCredentialsException(\sprintf('SSL credentials not found: "%s", "%s".', $this->userKey, $this->credentialsKey));
         }
 
         return $username;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Controller/UserValueResolver.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Controller/UserValueResolver.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Controller/UserValueResolver.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Controller/UserValueResolver.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,7 +65,7 @@
             }
 
             if (!$argument->isNullable()) {
-                throw new AccessDeniedException(sprintf('There is no logged-in user to pass to $%s, make the argument nullable if you want to allow anonymous access to the action.', $argument->getName()));
+                throw new AccessDeniedException(\sprintf('There is no logged-in user to pass to $%s, make the argument nullable if you want to allow anonymous access to the action.', $argument->getName()));
             }
 
             return [null];
@@ -75,6 +75,6 @@
             return [$user];
         }
 
-        throw new AccessDeniedException(sprintf('The logged-in user is an instance of "%s" but a user of type "%s" is expected.', $user::class, $argument->getType()));
+        throw new AccessDeniedException(\sprintf('The logged-in user is an instance of "%s" but a user of type "%s" is expected.', $user::class, $argument->getType()));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/EventListener/CheckCredentialsListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/EventListener/CheckCredentialsListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/EventListener/CheckCredentialsListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/EventListener/CheckCredentialsListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
             $user = $passport->getUser();
 
             if (!$user instanceof PasswordAuthenticatedUserInterface) {
-                throw new \LogicException(sprintf('Class "%s" must implement "%s" for using password-based authentication.', get_debug_type($user), PasswordAuthenticatedUserInterface::class));
+                throw new \LogicException(\sprintf('Class "%s" must implement "%s" for using password-based authentication.', get_debug_type($user), PasswordAuthenticatedUserInterface::class));
             }
 
             /** @var PasswordCredentials $badge */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/EventListener/ClearSiteDataLogoutListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/EventListener/ClearSiteDataLogoutListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/EventListener/ClearSiteDataLogoutListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/EventListener/ClearSiteDataLogoutListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     public function onLogout(LogoutEvent $event): void
     {
         if (!$event->getResponse()?->headers->has(static::HEADER_NAME)) {
-            $event->getResponse()->headers->set(static::HEADER_NAME, implode(', ', array_map(fn ($v) => '"'.$v.'"', $this->cookieValue)));
+            $event->getResponse()->headers->set(static::HEADER_NAME, implode(', ', array_map(static fn ($v) => '"'.$v.'"', $this->cookieValue)));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/EventListener/IsGrantedAttributeListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/EventListener/IsGrantedAttributeListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/EventListener/IsGrantedAttributeListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/EventListener/IsGrantedAttributeListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,7 +63,7 @@
             }
 
             if (!$this->authChecker->isGranted($attribute->attribute, $subject)) {
-                $message = $attribute->message ?: sprintf('Access Denied by #[IsGranted(%s)] on controller', $this->getIsGrantedString($attribute));
+                $message = $attribute->message ?: \sprintf('Access Denied by #[IsGranted(%s)] on controller', $this->getIsGrantedString($attribute));
 
                 if ($statusCode = $attribute->statusCode) {
                     throw new HttpException($statusCode, $message, code: $attribute->exceptionCode ?? 0);
@@ -95,7 +95,7 @@
         }
 
         if (!\array_key_exists($subjectRef, $arguments)) {
-            throw new RuntimeException(sprintf('Could not find the subject "%s" for the #[IsGranted] attribute. Try adding a "$%s" argument to your controller method.', $subjectRef, $subjectRef));
+            throw new RuntimeException(\sprintf('Could not find the subject "%s" for the #[IsGranted] attribute. Try adding a "$%s" argument to your controller method.', $subjectRef, $subjectRef));
         }
 
         return $arguments[$subjectRef];
@@ -103,15 +103,15 @@
 
     private function getIsGrantedString(IsGranted $isGranted): string
     {
-        $processValue = fn ($value) => sprintf($value instanceof Expression ? 'new Expression("%s")' : '"%s"', $value);
+        $processValue = static fn ($value) => \sprintf($value instanceof Expression ? 'new Expression("%s")' : '"%s"', $value);
 
         $argsString = $processValue($isGranted->attribute);
 
         if (null !== $subject = $isGranted->subject) {
-            $subject = !\is_array($subject) ? $processValue($subject) : array_map(function ($key, $value) use ($processValue) {
+            $subject = !\is_array($subject) ? $processValue($subject) : array_map(static function ($key, $value) use ($processValue) {
                 $value = $processValue($value);
 
-                return \is_string($key) ? sprintf('"%s" => %s', $key, $value) : $value;
+                return \is_string($key) ? \sprintf('"%s" => %s', $key, $value) : $value;
             }, array_keys($subject), $subject);
 
             $argsString .= ', '.(!\is_array($subject) ? $subject : '['.implode(', ', $subject).']');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/EventListener/SessionStrategyListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/EventListener/SessionStrategyListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/EventListener/SessionStrategyListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/EventListener/SessionStrategyListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
             $user = $token->getUserIdentifier();
             $previousUser = $previousToken->getUserIdentifier();
 
-            if ('' !== ($user ?? '') && $user === $previousUser && \get_class($token) === \get_class($previousToken)) {
+            if ('' !== ($user ?? '') && $user === $previousUser && $token::class === $previousToken::class) {
                 return;
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Firewall/AccessListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Firewall/AccessListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Firewall/AccessListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Firewall/AccessListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
     public function __construct(TokenStorageInterface $tokenStorage, AccessDecisionManagerInterface $accessDecisionManager, AccessMapInterface $map, bool $exceptionOnNoToken = false)
     {
         if (false !== $exceptionOnNoToken) {
-            throw new \LogicException(sprintf('Argument $exceptionOnNoToken of "%s()" must be set to "false".', __METHOD__));
+            throw new \LogicException(\sprintf('Argument $exceptionOnNoToken of "%s()" must be set to "false".', __METHOD__));
         }
 
         $this->tokenStorage = $tokenStorage;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Firewall/ContextListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Firewall/ContextListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Firewall/ContextListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Firewall/ContextListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -203,7 +203,7 @@
 
         foreach ($this->userProviders as $provider) {
             if (!$provider instanceof UserProviderInterface) {
-                throw new \InvalidArgumentException(sprintf('User provider "%s" must implement "%s".', get_debug_type($provider), UserProviderInterface::class));
+                throw new \InvalidArgumentException(\sprintf('User provider "%s" must implement "%s".', get_debug_type($provider), UserProviderInterface::class));
             }
 
             if (!$provider->supportsClass($userClass)) {
@@ -212,11 +212,9 @@
 
             try {
                 $refreshedUser = $provider->refreshUser($user);
-                $newToken = clone $token;
-                $newToken->setUser($refreshedUser, false);
 
                 // tokens can be deauthenticated if the user has been changed.
-                if ($token instanceof AbstractToken && $this->hasUserChanged($user, $newToken)) {
+                if ($token instanceof AbstractToken && self::hasUserChanged($token, $user, $refreshedUser)) {
                     $userDeauthenticated = true;
 
                     $this->logger?->debug('Cannot refresh token because user has changed.', ['username' => $refreshedUser->getUserIdentifier(), 'provider' => $provider::class]);
@@ -255,14 +253,14 @@
             return null;
         }
 
-        throw new \RuntimeException(sprintf('There is no user provider for user "%s". Shouldn\'t the "supportsClass()" method of your user provider return true for this classname?', $userClass));
+        throw new \RuntimeException(\sprintf('There is no user provider for user "%s". Shouldn\'t the "supportsClass()" method of your user provider return true for this classname?', $userClass));
     }
 
     private function safelyUnserialize(string $serializedToken): mixed
     {
         $token = null;
         $prevUnserializeHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback');
-        $prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler) {
+        $prevErrorHandler = set_error_handler(static function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler) {
             if (__FILE__ === $file && !\in_array($type, [\E_DEPRECATED, \E_USER_DEPRECATED], true)) {
                 throw new \ErrorException($msg, 0x37313BC, $type, $file, $line);
             }
@@ -285,10 +283,8 @@
         return $token;
     }
 
-    private static function hasUserChanged(UserInterface $originalUser, TokenInterface $refreshedToken): bool
+    private static function hasUserChanged(AbstractToken $token, UserInterface $originalUser, UserInterface $refreshedUser): bool
     {
-        $refreshedUser = $refreshedToken->getUser();
-
         if ($originalUser instanceof EquatableInterface) {
             return !$originalUser->isEqualTo($refreshedUser);
         }
@@ -309,13 +305,15 @@
 
         $userRoles = array_map('strval', (array) $refreshedUser->getRoles());
 
-        if ($refreshedToken instanceof SwitchUserToken) {
+        if ($token instanceof SwitchUserToken) {
             $userRoles[] = 'ROLE_PREVIOUS_ADMIN';
         }
 
+        $tokenRoleNames = $token->getRoleNames();
+
         if (
-            \count($userRoles) !== \count($refreshedToken->getRoleNames())
-            || \count($userRoles) !== \count(array_intersect($userRoles, $refreshedToken->getRoleNames()))
+            \count($userRoles) !== \count($tokenRoleNames)
+            || \count($userRoles) !== \count(array_intersect($userRoles, $tokenRoleNames))
         ) {
             return true;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Firewall/ExceptionListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Firewall/ExceptionListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Firewall/ExceptionListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Firewall/ExceptionListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -211,7 +211,7 @@
         if (!$response instanceof Response) {
             $given = get_debug_type($response);
 
-            throw new \LogicException(sprintf('The "%s::start()" method must return a Response object ("%s" returned).', get_debug_type($this->authenticationEntryPoint), $given));
+            throw new \LogicException(\sprintf('The "%s::start()" method must return a Response object ("%s" returned).', get_debug_type($this->authenticationEntryPoint), $given));
         }
 
         return $response;
@@ -227,7 +227,7 @@
 
     private function throwUnauthorizedException(AuthenticationException $authException): never
     {
-        $this->logger?->notice(sprintf('No Authentication entry point configured, returning a %s HTTP response. Configure "entry_point" on the firewall "%s" if you want to modify the response.', Response::HTTP_UNAUTHORIZED, $this->firewallName));
+        $this->logger?->notice(\sprintf('No Authentication entry point configured, returning a %s HTTP response. Configure "entry_point" on the firewall "%s" if you want to modify the response.', Response::HTTP_UNAUTHORIZED, $this->firewallName));
 
         throw new HttpException(Response::HTTP_UNAUTHORIZED, $authException->getMessage(), $authException, [], $authException->getCode());
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Firewall/SwitchUserListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Firewall/SwitchUserListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Firewall/SwitchUserListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Firewall/SwitchUserListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -124,7 +124,7 @@
         if (!$this->stateless) {
             $request->query->remove($this->usernameParameter);
             $request->server->set('QUERY_STRING', http_build_query($request->query->all(), '', '&'));
-            $response = new RedirectResponse($this->urlGenerator && $this->targetRoute ? $this->urlGenerator->generate($this->targetRoute) : $request->getUri(), 302);
+            $response = new RedirectResponse($this->urlGenerator && $this->targetRoute && self::EXIT_VALUE !== $username ? $this->urlGenerator->generate($this->targetRoute) : $request->getUri(), 302);
 
             $event->setResponse($response);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/FirewallMapInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/FirewallMapInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/FirewallMapInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/FirewallMapInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Security\Http\Firewall\ExceptionListener;
+use Symfony\Component\Security\Http\Firewall\FirewallListenerInterface;
 use Symfony\Component\Security\Http\Firewall\LogoutListener;
 
 /**
@@ -35,7 +36,7 @@
      * If there is no logout listener, the third element of the outer array
      * must be null.
      *
-     * @return array{iterable<mixed, callable>, ExceptionListener, LogoutListener}
+     * @return array{iterable<mixed, callable|FirewallListenerInterface>, ExceptionListener, LogoutListener}
      */
     public function getListeners(Request $request);
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/FirewallMap.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/FirewallMap.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/FirewallMap.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/FirewallMap.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\RequestMatcherInterface;
 use Symfony\Component\Security\Http\Firewall\ExceptionListener;
+use Symfony\Component\Security\Http\Firewall\FirewallListenerInterface;
 use Symfony\Component\Security\Http\Firewall\LogoutListener;
 
 /**
@@ -25,12 +26,12 @@
 class FirewallMap implements FirewallMapInterface
 {
     /**
-     * @var list<array{RequestMatcherInterface, list<callable>, ExceptionListener|null, LogoutListener|null}>
+     * @var list<array{RequestMatcherInterface, list<callable|FirewallListenerInterface>, ExceptionListener|null, LogoutListener|null}>
      */
     private array $map = [];
 
     /**
-     * @param list<callable> $listeners
+     * @param list<callable|FirewallListenerInterface> $listeners
      *
      * @return void
      */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Firewall.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Firewall.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Firewall.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Firewall.php	2026-05-20 10:56:49.000000000 +0200
@@ -125,7 +125,11 @@
     protected function callListeners(RequestEvent $event, iterable $listeners)
     {
         foreach ($listeners as $listener) {
-            $listener($event);
+            if (!$listener instanceof FirewallListenerInterface) {
+                $listener($event);
+            } elseif (false !== $listener->supports($event->getRequest())) {
+                $listener->authenticate($event);
+            }
 
             if ($event->hasResponse()) {
                 break;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/HttpUtils.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/HttpUtils.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/HttpUtils.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/HttpUtils.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,10 +53,10 @@
      */
     public function createRedirectResponse(Request $request, string $path, int $status = 302): RedirectResponse
     {
-        if (null !== $this->secureDomainRegexp && 'https' === $this->urlMatcher->getContext()->getScheme() && preg_match('#^https?:[/\\\\]{2,}+[^/]++#i', $path, $host) && !preg_match(sprintf($this->secureDomainRegexp, preg_quote($request->getHttpHost())), $host[0])) {
+        if (null !== $this->secureDomainRegexp && 'https' === $this->urlMatcher->getContext()->getScheme() && preg_match('#^https?:[/\\\\]{2,}+[^/]++#i', $path, $host) && !preg_match(\sprintf($this->secureDomainRegexp, preg_quote($request->getHttpHost())), $host[0])) {
             $path = '/';
         }
-        if (null !== $this->domainRegexp && preg_match('#^https?:[/\\\\]{2,}+[^/]++#i', $path, $host) && !preg_match(sprintf($this->domainRegexp, preg_quote($request->getHttpHost())), $host[0])) {
+        if (null !== $this->domainRegexp && preg_match('#^https?:[/\\\\]{2,}+[^/]++#i', $path, $host) && !preg_match(\sprintf($this->domainRegexp, preg_quote($request->getHttpHost())), $host[0])) {
             $path = '/';
         }
 
@@ -70,7 +70,33 @@
      */
     public function createRequest(Request $request, string $path): Request
     {
-        $newRequest = Request::create($this->generateUri($request, $path), 'get', [], $request->cookies->all(), [], $request->server->all());
+        if ($trustedProxies = Request::getTrustedProxies()) {
+            Request::setTrustedProxies([], Request::getTrustedHeaderSet());
+        }
+
+        // Trusted proxies are disabled above, so getBaseUrl() now returns only the
+        // webserver-derived portion of the base URL (e.g. an Apache "Alias /myapp …"
+        // sub-directory install). That portion must remain in the generated sub-request
+        // URI so it can re-detect its own base URL from SCRIPT_NAME/REQUEST_URI; only
+        // the trusted-proxy prefix is dropped from the URL generator's context here,
+        // otherwise it would be doubled once the sub-request is processed.
+        $context = $this->urlGenerator?->getContext();
+        $contextBaseUrl = $context?->getBaseUrl();
+        $realBaseUrl = null !== $context ? $request->getBaseUrl() : null;
+        if ($resetBaseUrl = $contextBaseUrl !== $realBaseUrl) {
+            $context->setBaseUrl($realBaseUrl);
+        }
+
+        try {
+            $newRequest = Request::create($this->generateUri($request, $path), 'get', [], $request->cookies->all(), [], $request->server->all());
+        } finally {
+            if ($trustedProxies) {
+                Request::setTrustedProxies($trustedProxies, Request::getTrustedHeaderSet());
+            }
+            if ($resetBaseUrl) {
+                $context->setBaseUrl($contextBaseUrl);
+            }
+        }
 
         static $setSession;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/LoginLink/LoginLinkHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/LoginLink/LoginLinkHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/LoginLink/LoginLinkHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/LoginLink/LoginLinkHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,9 +86,16 @@
         if (!$hash = $request->get('hash')) {
             throw new InvalidLoginLinkException('Missing "hash" parameter.');
         }
+        if (!\is_string($hash)) {
+            throw new InvalidLoginLinkException('Invalid "hash" parameter.');
+        }
+
         if (!$expires = $request->get('expires')) {
             throw new InvalidLoginLinkException('Missing "expires" parameter.');
         }
+        if (!preg_match('/^\d+$/', $expires)) {
+            throw new InvalidLoginLinkException('Invalid "expires" parameter.');
+        }
 
         try {
             $this->signatureHasher->acceptSignatureHash($userIdentifier, $expires, $hash);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/LoginLink/LoginLinkNotification.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/LoginLink/LoginLinkNotification.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/LoginLink/LoginLinkNotification.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/LoginLink/LoginLinkNotification.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
     public function asEmailMessage(EmailRecipientInterface $recipient, ?string $transport = null): ?EmailMessage
     {
         if (!class_exists(NotificationEmail::class)) {
-            throw new \LogicException(sprintf('The "%s" method requires "symfony/twig-bridge:>4.4".', __METHOD__));
+            throw new \LogicException(\sprintf('The "%s" method requires "symfony/twig-bridge:>4.4".', __METHOD__));
         }
 
         $email = NotificationEmail::asPublicEmail()
@@ -66,6 +66,6 @@
             $durationString = floor($hours).' hour'.($hours >= 2 ? 's' : '');
         }
 
-        return sprintf('Click on the %s to confirm you want to sign in. This link will expire in %s.', $target, $durationString);
+        return \sprintf('Click on the %s to confirm you want to sign in. This link will expire in %s.', $target, $durationString);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Logout/LogoutUrlGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Logout/LogoutUrlGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Logout/LogoutUrlGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Logout/LogoutUrlGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -129,7 +129,7 @@
                 return $this->listeners[$key];
             }
 
-            throw new \InvalidArgumentException(sprintf('No LogoutListener found for firewall key "%s".', $key));
+            throw new \InvalidArgumentException(\sprintf('No LogoutListener found for firewall key "%s".', $key));
         }
 
         // Fetch the current provider key from token, if possible
@@ -146,8 +146,8 @@
         }
 
         // Fetch from injected current firewall information, if possible
-        if (isset($this->listeners[$this->currentFirewallName])) {
-            return $this->listeners[$this->currentFirewallName];
+        if (isset($this->listeners[$this->currentFirewallName ?? ''])) {
+            return $this->listeners[$this->currentFirewallName ?? ''];
         }
 
         foreach ($this->listeners as $listener) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/RememberMe/AbstractRememberMeHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/RememberMe/AbstractRememberMeHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/RememberMe/AbstractRememberMeHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/RememberMe/AbstractRememberMeHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
         }
 
         if (!$user instanceof UserInterface) {
-            throw new \LogicException(sprintf('The UserProviderInterface implementation must return an instance of UserInterface, but returned "%s".', get_debug_type($user)));
+            throw new \LogicException(\sprintf('The UserProviderInterface implementation must return an instance of UserInterface, but returned "%s".', get_debug_type($user)));
         }
 
         $this->processRememberMe($rememberMeDetails, $user);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/RememberMe/PersistentRememberMeHandler.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/RememberMe/PersistentRememberMeHandler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/RememberMe/PersistentRememberMeHandler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/RememberMe/PersistentRememberMeHandler.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,23 +55,23 @@
         }
 
         if (!$userProvider instanceof UserProviderInterface) {
-            throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be an instance of "%s", "%s" given.', __CLASS__, UserProviderInterface::class, get_debug_type($userProvider)));
+            throw new \TypeError(\sprintf('Argument 2 passed to "%s()" must be an instance of "%s", "%s" given.', __CLASS__, UserProviderInterface::class, get_debug_type($userProvider)));
         }
 
         if (!$requestStack instanceof RequestStack) {
-            throw new \TypeError(sprintf('Argument 3 passed to "%s()" must be an instance of "%s", "%s" given.', __CLASS__, RequestStack::class, get_debug_type($userProvider)));
+            throw new \TypeError(\sprintf('Argument 3 passed to "%s()" must be an instance of "%s", "%s" given.', __CLASS__, RequestStack::class, get_debug_type($userProvider)));
         }
 
         if (!\is_array($options)) {
-            throw new \TypeError(sprintf('Argument 4 passed to "%s()" must be an array, "%s" given.', __CLASS__, get_debug_type($userProvider)));
+            throw new \TypeError(\sprintf('Argument 4 passed to "%s()" must be an array, "%s" given.', __CLASS__, get_debug_type($userProvider)));
         }
 
         if (null !== $logger && !$logger instanceof LoggerInterface) {
-            throw new \TypeError(sprintf('Argument 5 passed to "%s()" must be an instance of "%s", "%s" given.', __CLASS__, LoggerInterface::class, get_debug_type($userProvider)));
+            throw new \TypeError(\sprintf('Argument 5 passed to "%s()" must be an instance of "%s", "%s" given.', __CLASS__, LoggerInterface::class, get_debug_type($userProvider)));
         }
 
         if (null !== $tokenVerifier && !$tokenVerifier instanceof TokenVerifierInterface) {
-            throw new \TypeError(sprintf('Argument 6 passed to "%s()" must be an instance of "%s", "%s" given.', __CLASS__, TokenVerifierInterface::class, get_debug_type($userProvider)));
+            throw new \TypeError(\sprintf('Argument 6 passed to "%s()" must be an instance of "%s", "%s" given.', __CLASS__, TokenVerifierInterface::class, get_debug_type($userProvider)));
         }
 
         parent::__construct($userProvider, $requestStack, $options, $logger);
@@ -160,7 +160,12 @@
             return;
         }
 
-        $rememberMeDetails = RememberMeDetails::fromRawCookie($cookie);
+        try {
+            $rememberMeDetails = RememberMeDetails::fromRawCookie($cookie);
+        } catch (AuthenticationException) {
+            // malformed cookie should not fail the response and can be simply ignored
+            return;
+        }
         [$series] = explode(':', $rememberMeDetails->getValue());
         $this->tokenProvider->deleteTokenBySeries($series);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Session/SessionAuthenticationStrategy.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Session/SessionAuthenticationStrategy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Session/SessionAuthenticationStrategy.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Session/SessionAuthenticationStrategy.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
                 return;
 
             default:
-                throw new \RuntimeException(sprintf('Invalid session authentication strategy "%s".', $this->strategy));
+                throw new \RuntimeException(\sprintf('Invalid session authentication strategy "%s".', $this->strategy));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/AccessMapTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/AccessMapTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/AccessMapTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/AccessMapTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
 {
     public function testReturnsFirstMatchedPattern()
     {
-        $request = $this->createMock(Request::class);
+        $request = new Request();
         $requestMatcher1 = $this->getRequestMatcher($request, false);
         $requestMatcher2 = $this->getRequestMatcher($request, true);
 
@@ -33,7 +33,7 @@
 
     public function testReturnsEmptyPatternIfNoneMatched()
     {
-        $request = $this->createMock(Request::class);
+        $request = new Request();
         $requestMatcher = $this->getRequestMatcher($request, false);
 
         $map = new AccessMap();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcTokenHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
         ))->getUserBadgeFrom($token);
         $actualUser = $userBadge->getUserLoader()();
 
-        $this->assertEquals(new UserBadge($expected, new FallbackUserLoader(fn () => $expectedUser), $claims), $userBadge);
+        $this->assertEquals(new UserBadge($expected, new FallbackUserLoader(static fn () => $expectedUser), $claims), $userBadge);
         $this->assertInstanceOf(OidcUser::class, $actualUser);
         $this->assertEquals($expectedUser, $actualUser);
         $this->assertEquals($claims, $userBadge->getAttributes());
@@ -98,10 +98,8 @@
 
     public static function getInvalidTokens(): iterable
     {
-        // Invalid token
-        yield ['invalid'];
-        // Token is expired
-        yield [
+        yield 'Invalid token' => ['invalid'];
+        yield 'Token is expired' => [
             self::buildJWS(json_encode([
                 'iat' => time() - 3600,
                 'nbf' => time() - 3600,
@@ -112,8 +110,7 @@
                 'email' => 'foo@example.com',
             ])),
         ];
-        // Invalid audience
-        yield [
+        yield 'Invalid audience' => [
             self::buildJWS(json_encode([
                 'iat' => time(),
                 'nbf' => time(),
@@ -124,6 +121,42 @@
                 'email' => 'foo@example.com',
             ])),
         ];
+        yield 'Missing "aud" claim' => [
+            self::buildJWS(json_encode([
+                'iat' => time(),
+                'nbf' => time(),
+                'exp' => time() + 3600,
+                'iss' => 'https://www.example.com',
+                'sub' => 'e21bf182-1538-406e-8ccb-e25a17aba39f',
+            ])),
+        ];
+        yield 'Missing "iss" claim' => [
+            self::buildJWS(json_encode([
+                'iat' => time(),
+                'nbf' => time(),
+                'exp' => time() + 3600,
+                'aud' => self::AUDIENCE,
+                'sub' => 'e21bf182-1538-406e-8ccb-e25a17aba39f',
+            ])),
+        ];
+        yield 'Missing "exp" claim' => [
+            self::buildJWS(json_encode([
+                'iat' => time(),
+                'nbf' => time(),
+                'iss' => 'https://www.example.com',
+                'aud' => self::AUDIENCE,
+                'sub' => 'e21bf182-1538-406e-8ccb-e25a17aba39f',
+            ])),
+        ];
+        yield 'Missing "iat" claim' => [
+            self::buildJWS(json_encode([
+                'nbf' => time(),
+                'exp' => time() + 3600,
+                'iss' => 'https://www.example.com',
+                'aud' => self::AUDIENCE,
+                'sub' => 'e21bf182-1538-406e-8ccb-e25a17aba39f',
+            ])),
+        ];
     }
 
     public function testThrowsAnErrorIfUserPropertyIsMissing()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcUserInfoTokenHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcUserInfoTokenHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcUserInfoTokenHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/AccessToken/Oidc/OidcUserInfoTokenHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,7 +48,7 @@
         $userBadge = (new OidcUserInfoTokenHandler($clientMock, null, $claim))->getUserBadgeFrom($accessToken);
         $actualUser = $userBadge->getUserLoader()();
 
-        $this->assertEquals(new UserBadge($expected, new FallbackUserLoader(fn () => $expectedUser), $claims), $userBadge);
+        $this->assertEquals(new UserBadge($expected, new FallbackUserLoader(static fn () => $expectedUser), $claims), $userBadge);
         $this->assertInstanceOf(OidcUser::class, $actualUser);
         $this->assertEquals($expectedUser, $actualUser);
         $this->assertEquals($claims, $userBadge->getAttributes());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,13 +11,13 @@
 
 namespace Symfony\Component\Security\Http\Tests\Authentication;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Psr\Log\AbstractLogger;
 use Psr\Log\LoggerInterface;
 use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
 use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
 use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
@@ -38,22 +38,21 @@
 
 class AuthenticatorManagerTest extends TestCase
 {
-    private MockObject&TokenStorageInterface $tokenStorage;
+    private TokenStorageInterface $tokenStorage;
     private EventDispatcher $eventDispatcher;
     private Request $request;
     private InMemoryUser $user;
-    private MockObject&TokenInterface $token;
+    private TokenInterface $token;
     private Response $response;
 
     protected function setUp(): void
     {
-        $this->tokenStorage = $this->createMock(TokenStorageInterface::class);
+        $this->tokenStorage = new TokenStorage();
         $this->eventDispatcher = new EventDispatcher();
         $this->request = new Request();
         $this->user = new InMemoryUser('wouter', null);
-        $this->token = $this->createMock(TokenInterface::class);
-        $this->token->expects($this->any())->method('getUser')->willReturn($this->user);
-        $this->response = $this->createMock(Response::class);
+        $this->token = new UsernamePasswordToken($this->user, 'main');
+        $this->response = new Response();
     }
 
     /**
@@ -94,7 +93,8 @@
         // the attribute stores the supported authenticators, returning false now
         // means support changed between calling supports() and authenticateRequest()
         // (which is the case with lazy firewalls)
-        $authenticator = $this->createAuthenticator(false);
+        $authenticator = $this->createMock(TestInteractiveAuthenticator::class);
+        $authenticator->method('supports')->willReturn(false);
         $this->request->attributes->set('_security_authenticators', [$authenticator]);
 
         $authenticator->expects($this->never())->method('authenticate');
@@ -108,13 +108,26 @@
      */
     public function testAuthenticateRequest($matchingAuthenticatorIndex)
     {
-        $authenticators = [$this->createAuthenticator(0 === $matchingAuthenticatorIndex), $this->createAuthenticator(1 === $matchingAuthenticatorIndex)];
+        $matchingAuthenticator = $this->createStub(TestInteractiveAuthenticator::class);
+        $matchingAuthenticator->method('supports')->willReturn(true);
+        $notMatchingAuthenticator = $this->createMock(TestInteractiveAuthenticator::class);
+        $notMatchingAuthenticator->method('supports')->willReturn(false);
+        $notMatchingAuthenticator->expects($this->never())->method('authenticate');
+
+        if (0 === $matchingAuthenticatorIndex) {
+            $authenticators = [
+                $matchingAuthenticator,
+                $notMatchingAuthenticator,
+            ];
+        } else {
+            $authenticators = [
+                $notMatchingAuthenticator,
+                $matchingAuthenticator,
+            ];
+        }
         $this->request->attributes->set('_security_authenticators', $authenticators);
-        $matchingAuthenticator = $authenticators[$matchingAuthenticatorIndex];
-
-        $authenticators[($matchingAuthenticatorIndex + 1) % 2]->expects($this->never())->method('authenticate');
 
-        $matchingAuthenticator->expects($this->any())->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
+        $matchingAuthenticator->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
 
         $listenerCalled = false;
         $this->eventDispatcher->addListener(CheckPassportEvent::class, function (CheckPassportEvent $event) use (&$listenerCalled, $matchingAuthenticator) {
@@ -122,13 +135,12 @@
                 $listenerCalled = true;
             }
         });
-        $matchingAuthenticator->expects($this->any())->method('createToken')->willReturn($this->token);
-
-        $this->tokenStorage->expects($this->once())->method('setToken')->with($this->token);
+        $matchingAuthenticator->method('createToken')->willReturn($this->token);
 
         $manager = $this->createManager($authenticators);
         $this->assertNull($manager->authenticateRequest($this->request));
         $this->assertTrue($listenerCalled, 'The CheckPassportEvent listener is not called');
+        $this->assertSame($this->token, $this->tokenStorage->getToken());
     }
 
     public static function provideMatchingAuthenticatorIndex()
@@ -139,10 +151,10 @@
 
     public function testNoCredentialsValidated()
     {
-        $authenticator = $this->createAuthenticator();
+        $authenticator = $this->createMock(TestInteractiveAuthenticator::class);
         $this->request->attributes->set('_security_authenticators', [$authenticator]);
 
-        $authenticator->expects($this->any())->method('authenticate')->willReturn(new Passport(new UserBadge('wouter', fn () => $this->user), new PasswordCredentials('pass')));
+        $authenticator->method('authenticate')->willReturn(new Passport(new UserBadge('wouter', fn () => $this->user), new PasswordCredentials('pass')));
 
         $authenticator->expects($this->once())
             ->method('onAuthenticationFailure')
@@ -154,12 +166,12 @@
 
     public function testRequiredBadgeMissing()
     {
-        $authenticator = $this->createAuthenticator();
+        $authenticator = $this->createMock(TestInteractiveAuthenticator::class);
         $this->request->attributes->set('_security_authenticators', [$authenticator]);
 
-        $authenticator->expects($this->any())->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter')));
+        $authenticator->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter')));
 
-        $authenticator->expects($this->once())->method('onAuthenticationFailure')->with($this->anything(), $this->callback(fn ($exception) => 'Authentication failed; Some badges marked as required by the firewall config are not available on the passport: "'.CsrfTokenBadge::class.'".' === $exception->getMessage()));
+        $authenticator->expects($this->once())->method('onAuthenticationFailure')->with($this->anything(), $this->callback(static fn ($exception) => 'Authentication failed; Some badges marked as required by the firewall config are not available on the passport: "'.CsrfTokenBadge::class.'".' === $exception->getMessage()));
 
         $manager = $this->createManager([$authenticator], 'main', true, [CsrfTokenBadge::class]);
         $manager->authenticateRequest($this->request);
@@ -167,13 +179,13 @@
 
     public function testAllRequiredBadgesPresent()
     {
-        $authenticator = $this->createAuthenticator();
+        $authenticator = $this->createMock(TestInteractiveAuthenticator::class);
         $this->request->attributes->set('_security_authenticators', [$authenticator]);
 
         $csrfBadge = new CsrfTokenBadge('csrfid', 'csrftoken');
         $csrfBadge->markResolved();
-        $authenticator->expects($this->any())->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter'), [$csrfBadge]));
-        $authenticator->expects($this->any())->method('createToken')->willReturn(new UsernamePasswordToken($this->user, 'main'));
+        $authenticator->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter'), [$csrfBadge]));
+        $authenticator->method('createToken')->willReturn(new UsernamePasswordToken($this->user, 'main'));
 
         $authenticator->expects($this->once())->method('onAuthenticationSuccess');
 
@@ -186,14 +198,15 @@
      */
     public function testEraseCredentials($eraseCredentials)
     {
-        $authenticator = $this->createAuthenticator();
+        $authenticator = $this->createStub(TestInteractiveAuthenticator::class);
         $this->request->attributes->set('_security_authenticators', [$authenticator]);
 
-        $authenticator->expects($this->any())->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
+        $authenticator->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
 
-        $authenticator->expects($this->any())->method('createToken')->willReturn($this->token);
+        $token = $this->createMock(TokenInterface::class);
+        $authenticator->method('createToken')->willReturn($token);
 
-        $this->token->expects($eraseCredentials ? $this->once() : $this->never())->method('eraseCredentials');
+        $token->expects($eraseCredentials ? $this->once() : $this->never())->method('eraseCredentials');
 
         $manager = $this->createManager([$authenticator], 'main', $eraseCredentials);
         $manager->authenticateRequest($this->request);
@@ -207,26 +220,24 @@
 
     public function testAuthenticateRequestCanModifyTokenFromEvent()
     {
-        $authenticator = $this->createAuthenticator();
+        $authenticator = $this->createStub(TestInteractiveAuthenticator::class);
         $this->request->attributes->set('_security_authenticators', [$authenticator]);
 
-        $authenticator->expects($this->any())->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
+        $authenticator->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
 
-        $authenticator->expects($this->any())->method('createToken')->willReturn($this->token);
+        $authenticator->method('createToken')->willReturn($this->token);
 
-        $modifiedToken = $this->createMock(TokenInterface::class);
-        $modifiedToken->expects($this->any())->method('getUser')->willReturn($this->user);
+        $modifiedToken = new UsernamePasswordToken($this->user, 'main');
         $listenerCalled = false;
-        $this->eventDispatcher->addListener(AuthenticationTokenCreatedEvent::class, function (AuthenticationTokenCreatedEvent $event) use (&$listenerCalled, $modifiedToken) {
+        $this->eventDispatcher->addListener(AuthenticationTokenCreatedEvent::class, static function (AuthenticationTokenCreatedEvent $event) use (&$listenerCalled, $modifiedToken) {
             $event->setAuthenticatedToken($modifiedToken);
             $listenerCalled = true;
         });
 
-        $this->tokenStorage->expects($this->once())->method('setToken')->with($this->identicalTo($modifiedToken));
-
         $manager = $this->createManager([$authenticator]);
         $this->assertNull($manager->authenticateRequest($this->request));
         $this->assertTrue($listenerCalled, 'The AuthenticationTokenCreatedEvent listener is not called');
+        $this->assertSame($modifiedToken, $this->tokenStorage->getToken());
     }
 
     public function testAuthenticateUser()
@@ -235,45 +246,41 @@
         $authenticator->expects($this->any())->method('createToken')->willReturn($this->token);
         $authenticator->expects($this->any())->method('onAuthenticationSuccess')->willReturn($this->response);
 
-        $this->tokenStorage->expects($this->once())->method('setToken')->with($this->token);
-
         $manager = $this->createManager([$authenticator]);
         $manager->authenticateUser($this->user, $authenticator, $this->request);
+
+        $this->assertSame($this->token, $this->tokenStorage->getToken());
     }
 
     public function testAuthenticateUserCanModifyTokenFromEvent()
     {
-        $authenticator = $this->createAuthenticator();
-        $authenticator->expects($this->any())->method('createToken')->willReturn($this->token);
-        $authenticator->expects($this->any())->method('onAuthenticationSuccess')->willReturn($this->response);
+        $authenticator = $this->createStub(TestInteractiveAuthenticator::class);
+        $authenticator->method('createToken')->willReturn($this->token);
+        $authenticator->method('onAuthenticationSuccess')->willReturn($this->response);
 
-        $modifiedToken = $this->createMock(TokenInterface::class);
-        $modifiedToken->expects($this->any())->method('getUser')->willReturn($this->user);
+        $modifiedToken = new UsernamePasswordToken($this->user, 'main');
         $listenerCalled = false;
-        $this->eventDispatcher->addListener(AuthenticationTokenCreatedEvent::class, function (AuthenticationTokenCreatedEvent $event) use (&$listenerCalled, $modifiedToken) {
+        $this->eventDispatcher->addListener(AuthenticationTokenCreatedEvent::class, static function (AuthenticationTokenCreatedEvent $event) use (&$listenerCalled, $modifiedToken) {
             $event->setAuthenticatedToken($modifiedToken);
             $listenerCalled = true;
         });
 
-        $this->tokenStorage->expects($this->once())->method('setToken')->with($this->identicalTo($modifiedToken));
-
         $manager = $this->createManager([$authenticator]);
         $manager->authenticateUser($this->user, $authenticator, $this->request);
         $this->assertTrue($listenerCalled, 'The AuthenticationTokenCreatedEvent listener is not called');
+        $this->assertSame($modifiedToken, $this->tokenStorage->getToken());
     }
 
     public function testInteractiveAuthenticator()
     {
-        $authenticator = $this->createMock(TestInteractiveAuthenticator::class);
-        $authenticator->expects($this->any())->method('isInteractive')->willReturn(true);
+        $authenticator = $this->createStub(TestInteractiveAuthenticator::class);
+        $authenticator->method('isInteractive')->willReturn(true);
         $this->request->attributes->set('_security_authenticators', [$authenticator]);
 
-        $authenticator->expects($this->any())->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
-        $authenticator->expects($this->any())->method('createToken')->willReturn($this->token);
-
-        $this->tokenStorage->expects($this->once())->method('setToken')->with($this->token);
+        $authenticator->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
+        $authenticator->method('createToken')->willReturn($this->token);
 
-        $authenticator->expects($this->any())
+        $authenticator
             ->method('onAuthenticationSuccess')
             ->with($this->anything(), $this->token, 'main')
             ->willReturn($this->response);
@@ -281,20 +288,19 @@
         $manager = $this->createManager([$authenticator]);
         $response = $manager->authenticateRequest($this->request);
         $this->assertSame($this->response, $response);
+        $this->assertSame($this->token, $this->tokenStorage->getToken());
     }
 
     public function testLegacyInteractiveAuthenticator()
     {
-        $authenticator = $this->createMock(InteractiveAuthenticatorInterface::class);
-        $authenticator->expects($this->any())->method('isInteractive')->willReturn(true);
+        $authenticator = $this->createStub(InteractiveAuthenticatorInterface::class);
+        $authenticator->method('isInteractive')->willReturn(true);
         $this->request->attributes->set('_security_authenticators', [$authenticator]);
 
-        $authenticator->expects($this->any())->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
-        $authenticator->expects($this->any())->method('createToken')->willReturn($this->token);
-
-        $this->tokenStorage->expects($this->once())->method('setToken')->with($this->token);
+        $authenticator->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
+        $authenticator->method('createToken')->willReturn($this->token);
 
-        $authenticator->expects($this->any())
+        $authenticator
             ->method('onAuthenticationSuccess')
             ->with($this->anything(), $this->token, 'main')
             ->willReturn($this->response);
@@ -302,19 +308,20 @@
         $manager = $this->createManager([$authenticator]);
         $response = $manager->authenticateRequest($this->request);
         $this->assertSame($this->response, $response);
+        $this->assertSame($this->token, $this->tokenStorage->getToken());
     }
 
     public function testAuthenticateRequestHidesInvalidUserExceptions()
     {
         $invalidUserException = new UserNotFoundException();
-        $authenticator = $this->createMock(TestInteractiveAuthenticator::class);
+        $authenticator = $this->createStub(TestInteractiveAuthenticator::class);
         $this->request->attributes->set('_security_authenticators', [$authenticator]);
 
-        $authenticator->expects($this->any())->method('authenticate')->willThrowException($invalidUserException);
+        $authenticator->method('authenticate')->willThrowException($invalidUserException);
 
-        $authenticator->expects($this->any())
+        $authenticator
             ->method('onAuthenticationFailure')
-            ->with($this->equalTo($this->request), $this->callback(fn ($e) => $e instanceof BadCredentialsException && $invalidUserException === $e->getPrevious()))
+            ->with($this->equalTo($this->request), $this->callback(static fn ($e) => $e instanceof BadCredentialsException && $invalidUserException === $e->getPrevious()))
             ->willReturn($this->response);
 
         $manager = $this->createManager([$authenticator]);
@@ -324,26 +331,24 @@
 
     public function testLogsUseTheDecoratedAuthenticatorWhenItIsTraceable()
     {
-        $authenticator = $this->createMock(TestInteractiveAuthenticator::class);
-        $authenticator->expects($this->any())->method('isInteractive')->willReturn(true);
+        $authenticator = $this->createStub(TestInteractiveAuthenticator::class);
+        $authenticator->method('isInteractive')->willReturn(true);
         $this->request->attributes->set('_security_authenticators', [new TraceableAuthenticator($authenticator)]);
 
-        $authenticator->expects($this->any())->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
-        $authenticator->expects($this->any())->method('createToken')->willReturn($this->token);
-
-        $this->tokenStorage->expects($this->once())->method('setToken')->with($this->token);
+        $authenticator->method('authenticate')->willReturn(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
+        $authenticator->method('createToken')->willReturn($this->token);
 
-        $authenticator->expects($this->any())
+        $authenticator
             ->method('onAuthenticationSuccess')
             ->with($this->anything(), $this->token, 'main')
             ->willReturn($this->response);
 
-        $authenticator->expects($this->any())
+        $authenticator
             ->method('onAuthenticationSuccess')
             ->with($this->anything(), $this->token, 'main')
             ->willReturn($this->response);
 
-        $logger = new class() extends AbstractLogger {
+        $logger = new class extends AbstractLogger {
             public array $logContexts = [];
 
             public function log($level, $message, array $context = []): void
@@ -358,6 +363,7 @@
         $response = $manager->authenticateRequest($this->request);
         $this->assertSame($this->response, $response);
         $this->assertStringContainsString('Mock_TestInteractiveAuthenticator', $logger->logContexts[0]['authenticator']);
+        $this->assertSame($this->token, $this->tokenStorage->getToken());
     }
 
     private function createAuthenticator(?bool $supports = true)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/DefaultAuthenticationFailureHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/DefaultAuthenticationFailureHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/DefaultAuthenticationFailureHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/DefaultAuthenticationFailureHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,14 +11,16 @@
 
 namespace Symfony\Component\Security\Http\Tests\Authentication;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
 use Symfony\Component\HttpFoundation\ParameterBag;
 use Symfony\Component\HttpFoundation\RedirectResponse;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpFoundation\Session\Session;
 use Symfony\Component\HttpFoundation\Session\SessionInterface;
+use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\Security\Core\Exception\AuthenticationException;
 use Symfony\Component\Security\Http\Authentication\DefaultAuthenticationFailureHandler;
@@ -27,28 +29,16 @@
 
 class DefaultAuthenticationFailureHandlerTest extends TestCase
 {
-    private MockObject&HttpKernelInterface $httpKernel;
-    private MockObject&HttpUtils $httpUtils;
-    private MockObject&LoggerInterface $logger;
     private Request $request;
-    private Response $response;
-    private MockObject&SessionInterface $session;
+    private SessionInterface $session;
     private AuthenticationException $exception;
 
     protected function setUp(): void
     {
-        $this->response = new Response();
-        $this->httpKernel = $this->createMock(HttpKernelInterface::class);
-        $this->httpKernel->expects($this->any())
-            ->method('handle')->willReturn($this->response);
-
-        $this->httpUtils = $this->createMock(HttpUtils::class);
-        $this->logger = $this->createMock(LoggerInterface::class);
-
-        $this->session = $this->createMock(SessionInterface::class);
-        $this->request = $this->createMock(Request::class);
+        $this->session = new Session(new MockArraySessionStorage());
+        $this->request = Request::create('https://localhost/');
         $this->request->attributes = new ParameterBag(['_stateless' => false]);
-        $this->request->expects($this->any())->method('getSession')->willReturn($this->session);
+        $this->request->setSession($this->session);
         $this->exception = $this->getMockBuilder(AuthenticationException::class)->onlyMethods(['getMessage'])->getMock();
     }
 
@@ -56,78 +46,80 @@
     {
         $options = ['failure_forward' => true];
 
-        $subRequest = $this->getRequest();
+        $subRequest = new Request();
+        $subRequest->attributes = $this->createMock(ParameterBag::class);
         $subRequest->attributes->expects($this->once())
             ->method('set')->with(SecurityRequestAttributes::AUTHENTICATION_ERROR, $this->exception);
-        $this->httpUtils->expects($this->once())
+        $httpUtils = $this->createMock(HttpUtils::class);
+        $httpUtils->expects($this->once())
             ->method('createRequest')->with($this->request, '/login')
             ->willReturn($subRequest);
 
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, $options, $this->logger);
+        $response = new Response();
+        $httpKernel = $this->createStub(HttpKernelInterface::class);
+        $httpKernel->method('handle')->willReturn($response);
+        $handler = new DefaultAuthenticationFailureHandler($httpKernel, $httpUtils, $options, new NullLogger());
         $result = $handler->onAuthenticationFailure($this->request, $this->exception);
 
-        $this->assertSame($this->response, $result);
+        $this->assertSame($response, $result);
     }
 
     public function testRedirect()
     {
-        $response = new RedirectResponse('/login');
-        $this->httpUtils->expects($this->once())
-            ->method('createRedirectResponse')->with($this->request, '/login')
-            ->willReturn($response);
-
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, [], $this->logger);
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), [], new NullLogger());
         $result = $handler->onAuthenticationFailure($this->request, $this->exception);
 
-        $this->assertSame($response, $result);
+        $this->assertEquals(new RedirectResponse('https://localhost/login'), $result);
     }
 
     public function testExceptionIsPersistedInSession()
     {
-        $this->session->expects($this->once())
-            ->method('set')->with(SecurityRequestAttributes::AUTHENTICATION_ERROR, $this->exception);
-
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, [], $this->logger);
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), [], new NullLogger());
         $handler->onAuthenticationFailure($this->request, $this->exception);
+
+        $this->assertTrue($this->session->has(SecurityRequestAttributes::AUTHENTICATION_ERROR));
+        $this->assertSame($this->exception, $this->session->get(SecurityRequestAttributes::AUTHENTICATION_ERROR));
     }
 
     public function testExceptionIsNotPersistedInSessionOnStatelessRequest()
     {
         $this->request->attributes = new ParameterBag(['_stateless' => true]);
 
-        $this->session->expects($this->never())
-            ->method('set')->with(SecurityRequestAttributes::AUTHENTICATION_ERROR, $this->exception);
-
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, [], $this->logger);
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), [], new NullLogger());
         $handler->onAuthenticationFailure($this->request, $this->exception);
+
+        $this->assertFalse($this->session->has(SecurityRequestAttributes::AUTHENTICATION_ERROR));
     }
 
     public function testExceptionIsPassedInRequestOnForward()
     {
         $options = ['failure_forward' => true];
 
-        $subRequest = $this->getRequest();
+        $subRequest = new Request();
+        $subRequest->attributes = $this->createMock(ParameterBag::class);
         $subRequest->attributes->expects($this->once())
             ->method('set')->with(SecurityRequestAttributes::AUTHENTICATION_ERROR, $this->exception);
 
-        $this->httpUtils->expects($this->once())
+        $httpUtils = $this->createMock(HttpUtils::class);
+        $httpUtils->expects($this->once())
             ->method('createRequest')->with($this->request, '/login')
             ->willReturn($subRequest);
 
-        $this->session->expects($this->never())->method('set');
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), $httpUtils, $options, new NullLogger());
+        $result = $handler->onAuthenticationFailure($this->request, $this->exception);
 
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, $options, $this->logger);
-        $handler->onAuthenticationFailure($this->request, $this->exception);
+        $this->assertSame([], $this->session->all());
     }
 
     public function testRedirectIsLogged()
     {
-        $this->logger
+        $logger = $this->createMock(LoggerInterface::class);
+        $logger
             ->expects($this->once())
             ->method('debug')
             ->with('Authentication failure, redirect triggered.', ['failure_path' => '/login']);
 
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, [], $this->logger);
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), [], $logger);
         $handler->onAuthenticationFailure($this->request, $this->exception);
     }
 
@@ -135,16 +127,13 @@
     {
         $options = ['failure_forward' => true];
 
-        $this->httpUtils->expects($this->once())
-            ->method('createRequest')->with($this->request, '/login')
-            ->willReturn($this->getRequest());
-
-        $this->logger
+        $logger = $this->createMock(LoggerInterface::class);
+        $logger
             ->expects($this->once())
             ->method('debug')
             ->with('Authentication failure, forward triggered.', ['failure_path' => '/login']);
 
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, $options, $this->logger);
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), $options, $logger);
         $handler->onAuthenticationFailure($this->request, $this->exception);
     }
 
@@ -152,63 +141,52 @@
     {
         $options = ['failure_path' => '/auth/login'];
 
-        $this->httpUtils->expects($this->once())
-            ->method('createRedirectResponse')->with($this->request, '/auth/login');
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), $options, new NullLogger());
+        $result = $handler->onAuthenticationFailure($this->request, $this->exception);
 
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, $options, $this->logger);
-        $handler->onAuthenticationFailure($this->request, $this->exception);
+        $this->assertEquals(new RedirectResponse('https://localhost/auth/login'), $result);
     }
 
     public function testFailurePathCanBeOverwrittenWithRequest()
     {
-        $this->request->expects($this->once())
-            ->method('get')->with('_failure_path')
-            ->willReturn('/auth/login');
+        $this->request->attributes->set('_failure_path', '/auth/login');
 
-        $this->httpUtils->expects($this->once())
-            ->method('createRedirectResponse')->with($this->request, '/auth/login');
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), [], new NullLogger());
+        $result = $handler->onAuthenticationFailure($this->request, $this->exception);
 
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, [], $this->logger);
-        $handler->onAuthenticationFailure($this->request, $this->exception);
+        $this->assertEquals(new RedirectResponse('https://localhost/auth/login'), $result);
     }
 
     public function testFailurePathCanBeOverwrittenWithNestedAttributeInRequest()
     {
-        $this->request->expects($this->once())
-            ->method('get')->with('_failure_path')
-            ->willReturn(['value' => '/auth/login']);
+        $this->request->attributes->set('_failure_path', ['value' => '/auth/login']);
 
-        $this->httpUtils->expects($this->once())
-            ->method('createRedirectResponse')->with($this->request, '/auth/login');
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), ['failure_path_parameter' => '_failure_path[value]'], new NullLogger());
+        $result = $handler->onAuthenticationFailure($this->request, $this->exception);
 
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, ['failure_path_parameter' => '_failure_path[value]'], $this->logger);
-        $handler->onAuthenticationFailure($this->request, $this->exception);
+        $this->assertEquals(new RedirectResponse('https://localhost/auth/login'), $result);
     }
 
     public function testFailurePathParameterCanBeOverwritten()
     {
         $options = ['failure_path_parameter' => '_my_failure_path'];
 
-        $this->request->expects($this->once())
-            ->method('get')->with('_my_failure_path')
-            ->willReturn('/auth/login');
+        $this->request->attributes->set('_my_failure_path', '/auth/login');
 
-        $this->httpUtils->expects($this->once())
-            ->method('createRedirectResponse')->with($this->request, '/auth/login');
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), $options, new NullLogger());
+        $result = $handler->onAuthenticationFailure($this->request, $this->exception);
 
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, $options, $this->logger);
-        $handler->onAuthenticationFailure($this->request, $this->exception);
+        $this->assertEquals(new RedirectResponse('https://localhost/auth/login'), $result);
     }
 
     public function testFailurePathFromRequestWithInvalidUrl()
     {
         $options = ['failure_path_parameter' => '_my_failure_path'];
 
-        $this->request->expects($this->once())
-            ->method('get')->with('_my_failure_path')
-            ->willReturn('some_route_name');
+        $this->request->attributes->set('_my_failure_path', 'some_route_name');
 
-        $this->logger->expects($this->exactly(2))
+        $logger = $this->createMock(LoggerInterface::class);
+        $logger->expects($this->exactly(2))
             ->method('debug')
             ->willReturnCallback(function (...$args) {
                 static $series = [
@@ -220,7 +198,7 @@
                 $this->assertSame($expectedArgs, $args);
             });
 
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, $options, $this->logger);
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), $options, $logger);
 
         $handler->onAuthenticationFailure($this->request, $this->exception);
     }
@@ -229,22 +207,11 @@
     {
         $options = ['failure_path_parameter' => '_my_failure_path'];
 
-        $this->request->expects($this->once())
-            ->method('get')->with('_my_failure_path')
-            ->willReturn('https://localhost/some-path');
-
-        $this->httpUtils->expects($this->once())
-            ->method('createRedirectResponse')->with($this->request, 'https://localhost/some-path');
+        $this->request->attributes->set('_my_failure_path', 'https://localhost/some-path');
 
-        $handler = new DefaultAuthenticationFailureHandler($this->httpKernel, $this->httpUtils, $options, $this->logger);
-        $handler->onAuthenticationFailure($this->request, $this->exception);
-    }
-
-    private function getRequest()
-    {
-        $request = $this->createMock(Request::class);
-        $request->attributes = $this->createMock(ParameterBag::class);
+        $handler = new DefaultAuthenticationFailureHandler($this->createStub(HttpKernelInterface::class), new HttpUtils(), $options, new NullLogger());
+        $result = $handler->onAuthenticationFailure($this->request, $this->exception);
 
-        return $request;
+        $this->assertEquals(new RedirectResponse('https://localhost/some-path'), $result);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/DefaultAuthenticationSuccessHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/DefaultAuthenticationSuccessHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/DefaultAuthenticationSuccessHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authentication/DefaultAuthenticationSuccessHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,10 +13,13 @@
 
 use PHPUnit\Framework\TestCase;
 use Psr\Log\LoggerInterface;
+use Symfony\Component\HttpFoundation\RedirectResponse;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Session\Session;
 use Symfony\Component\HttpFoundation\Session\SessionInterface;
+use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
 use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
-use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
 use Symfony\Component\Security\Http\Authentication\DefaultAuthenticationSuccessHandler;
 use Symfony\Component\Security\Http\HttpUtils;
 
@@ -27,33 +30,31 @@
      */
     public function testRequestRedirections(Request $request, $options, $redirectedUrl)
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $urlGenerator->expects($this->any())->method('generate')->willReturn('http://localhost/login');
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
+        $urlGenerator->method('generate')->willReturn('http://localhost/login');
         $httpUtils = new HttpUtils($urlGenerator);
-        $token = $this->createMock(TokenInterface::class);
         $handler = new DefaultAuthenticationSuccessHandler($httpUtils, $options);
         if ($request->hasSession()) {
             $handler->setFirewallName('admin');
         }
-        $this->assertSame('http://localhost'.$redirectedUrl, $handler->onAuthenticationSuccess($request, $token)->getTargetUrl());
+        $this->assertSame('http://localhost'.$redirectedUrl, $handler->onAuthenticationSuccess($request, new NullToken())->getTargetUrl());
     }
 
     public function testRequestRedirectionsWithTargetPathInSessions()
     {
-        $session = $this->createMock(SessionInterface::class);
-        $session->expects($this->once())->method('get')->with('_security.admin.target_path')->willReturn('/admin/dashboard');
-        $session->expects($this->once())->method('remove')->with('_security.admin.target_path');
+        $session = new Session(new MockArraySessionStorage());
+        $session->set('_security.admin.target_path', '/admin/dashboard');
         $requestWithSession = Request::create('/');
         $requestWithSession->setSession($session);
 
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $urlGenerator->expects($this->any())->method('generate')->willReturn('http://localhost/login');
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
+        $urlGenerator->method('generate')->willReturn('http://localhost/login');
         $httpUtils = new HttpUtils($urlGenerator);
-        $token = $this->createMock(TokenInterface::class);
         $handler = new DefaultAuthenticationSuccessHandler($httpUtils);
         $handler->setFirewallName('admin');
 
-        $this->assertSame('http://localhost/admin/dashboard', $handler->onAuthenticationSuccess($requestWithSession, $token)->getTargetUrl());
+        $this->assertSame('http://localhost/admin/dashboard', $handler->onAuthenticationSuccess($requestWithSession, new NullToken())->getTargetUrl());
+        $this->assertFalse($session->has('_security.admin.target_path'));
     }
 
     public function testStatelessRequestRedirections()
@@ -65,14 +66,13 @@
         $statelessRequest->setSession($session);
         $statelessRequest->attributes->set('_stateless', true);
 
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
-        $urlGenerator->expects($this->any())->method('generate')->willReturn('http://localhost/login');
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
+        $urlGenerator->method('generate')->willReturn('http://localhost/login');
         $httpUtils = new HttpUtils($urlGenerator);
-        $token = $this->createMock(TokenInterface::class);
         $handler = new DefaultAuthenticationSuccessHandler($httpUtils);
         $handler->setFirewallName('admin');
 
-        $this->assertSame('http://localhost/', $handler->onAuthenticationSuccess($statelessRequest, $token)->getTargetUrl());
+        $this->assertSame('http://localhost/', $handler->onAuthenticationSuccess($statelessRequest, new NullToken())->getTargetUrl());
     }
 
     public static function getRequestRedirections()
@@ -143,23 +143,19 @@
 
     public function testTargetPathFromRequestWithInvalidUrl()
     {
-        $httpUtils = $this->createMock(HttpUtils::class);
         $options = ['target_path_parameter' => '_my_target_path'];
-        $token = $this->createMock(TokenInterface::class);
 
-        $request = $this->createMock(Request::class);
-        $request->expects($this->once())
-            ->method('get')->with('_my_target_path')
-            ->willReturn('some_route_name');
+        $request = Request::create('/');
+        $request->attributes->set('_my_target_path', 'some_route_name');
 
         $logger = $this->createMock(LoggerInterface::class);
         $logger->expects($this->once())
             ->method('debug')
             ->with('Ignoring query parameter "_my_target_path": not a valid URL.');
 
-        $handler = new DefaultAuthenticationSuccessHandler($httpUtils, $options, $logger);
+        $handler = new DefaultAuthenticationSuccessHandler(new HttpUtils($this->createStub(UrlGeneratorInterface::class)), $options, $logger);
 
-        $handler->onAuthenticationSuccess($request, $token);
+        $handler->onAuthenticationSuccess($request, new NullToken());
     }
 
     public function testTargetPathWithAbsoluteUrlFromRequest()
@@ -171,11 +167,9 @@
             ->method('get')->with('_my_target_path')
             ->willReturn('https://localhost/some-path');
 
-        $httpUtils = $this->createMock(HttpUtils::class);
-        $httpUtils->expects($this->once())
-            ->method('createRedirectResponse')->with($request, 'https://localhost/some-path');
+        $handler = new DefaultAuthenticationSuccessHandler(new HttpUtils($this->createStub(UrlGeneratorInterface::class)), $options);
+        $response = $handler->onAuthenticationSuccess($request, new NullToken());
 
-        $handler = new DefaultAuthenticationSuccessHandler($httpUtils, $options);
-        $handler->onAuthenticationSuccess($request, $this->createMock(TokenInterface::class));
+        $this->assertEquals(new RedirectResponse('https://localhost/some-path'), $response);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/AbstractAuthenticatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/AbstractAuthenticatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/AbstractAuthenticatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/AbstractAuthenticatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         $authenticator = new ConcreteAuthenticator();
         $this->assertInstanceOf(
             PostAuthenticationToken::class,
-            $authenticator->createToken(new SelfValidatingPassport(new UserBadge('dummy', fn () => new InMemoryUser('robin', 'hood'))), 'dummy')
+            $authenticator->createToken(new SelfValidatingPassport(new UserBadge('dummy', static fn () => new InMemoryUser('robin', 'hood'))), 'dummy')
         );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/AccessTokenAuthenticatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/AccessTokenAuthenticatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/AccessTokenAuthenticatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/AccessTokenAuthenticatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -9,7 +9,7 @@
  * file that was distributed with this source code.
  */
 
-namespace Authenticator;
+namespace Symfony\Component\Security\Http\Tests\Authenticator;
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
@@ -25,14 +25,10 @@
 
 class AccessTokenAuthenticatorTest extends TestCase
 {
-    private AccessTokenHandlerInterface $accessTokenHandler;
-    private AccessTokenExtractorInterface $accessTokenExtractor;
     private InMemoryUserProvider $userProvider;
 
     protected function setUp(): void
     {
-        $this->accessTokenHandler = $this->createMock(AccessTokenHandlerInterface::class);
-        $this->accessTokenExtractor = $this->createMock(AccessTokenExtractorInterface::class);
         $this->userProvider = new InMemoryUserProvider(['test' => ['password' => 's$cr$t']]);
     }
 
@@ -43,15 +39,16 @@
 
         $request = Request::create('/test');
 
-        $this->accessTokenExtractor
+        $accessTokenExtractor = $this->createMock(AccessTokenExtractorInterface::class);
+        $accessTokenExtractor
             ->expects($this->once())
             ->method('extractAccessToken')
             ->with($request)
             ->willReturn(null);
 
         $authenticator = new AccessTokenAuthenticator(
-            $this->accessTokenHandler,
-            $this->accessTokenExtractor,
+            $this->createStub(AccessTokenHandlerInterface::class),
+            $accessTokenExtractor,
         );
 
         $authenticator->authenticate($request);
@@ -61,20 +58,22 @@
     {
         $request = Request::create('/test');
 
-        $this->accessTokenExtractor
+        $accessTokenHandler = $this->createMock(AccessTokenHandlerInterface::class);
+        $accessTokenExtractor = $this->createMock(AccessTokenExtractorInterface::class);
+        $accessTokenExtractor
             ->expects($this->once())
             ->method('extractAccessToken')
             ->with($request)
             ->willReturn('test');
-        $this->accessTokenHandler
+        $accessTokenHandler
             ->expects($this->once())
             ->method('getUserBadgeFrom')
             ->with('test')
-            ->willReturn(new UserBadge('john', fn () => new InMemoryUser('john', null)));
+            ->willReturn(new UserBadge('john', static fn () => new InMemoryUser('john', null)));
 
         $authenticator = new AccessTokenAuthenticator(
-            $this->accessTokenHandler,
-            $this->accessTokenExtractor,
+            $accessTokenHandler,
+            $accessTokenExtractor,
             $this->userProvider,
         );
 
@@ -87,20 +86,22 @@
     {
         $request = Request::create('/test');
 
-        $this->accessTokenExtractor
+        $accessTokenHandler = $this->createMock(AccessTokenHandlerInterface::class);
+        $accessTokenExtractor = $this->createMock(AccessTokenExtractorInterface::class);
+        $accessTokenExtractor
             ->expects($this->once())
             ->method('extractAccessToken')
             ->with($request)
             ->willReturn('test');
-        $this->accessTokenHandler
+        $accessTokenHandler
             ->expects($this->once())
             ->method('getUserBadgeFrom')
             ->with('test')
             ->willReturn(new UserBadge('test'));
 
         $authenticator = new AccessTokenAuthenticator(
-            $this->accessTokenHandler,
-            $this->accessTokenExtractor,
+            $accessTokenHandler,
+            $accessTokenExtractor,
             $this->userProvider,
         );
 
@@ -113,20 +114,22 @@
     {
         $request = Request::create('/test');
 
-        $this->accessTokenExtractor
+        $accessTokenHandler = $this->createMock(AccessTokenHandlerInterface::class);
+        $accessTokenExtractor = $this->createMock(AccessTokenExtractorInterface::class);
+        $accessTokenExtractor
             ->expects($this->once())
             ->method('extractAccessToken')
             ->with($request)
             ->willReturn('test');
-        $this->accessTokenHandler
+        $accessTokenHandler
             ->expects($this->once())
             ->method('getUserBadgeFrom')
             ->with('test')
-            ->willReturn(new UserBadge('john', fn () => new InMemoryUser('john', null)));
+            ->willReturn(new UserBadge('john', static fn () => new InMemoryUser('john', null)));
 
         $authenticator = new AccessTokenAuthenticator(
-            $this->accessTokenHandler,
-            $this->accessTokenExtractor,
+            $accessTokenHandler,
+            $accessTokenExtractor,
             $this->userProvider,
         );
 
@@ -139,20 +142,22 @@
     {
         $request = Request::create('/test');
 
-        $this->accessTokenExtractor
+        $accessTokenHandler = $this->createMock(AccessTokenHandlerInterface::class);
+        $accessTokenExtractor = $this->createMock(AccessTokenExtractorInterface::class);
+        $accessTokenExtractor
             ->expects($this->once())
             ->method('extractAccessToken')
             ->with($request)
             ->willReturn('test');
-        $this->accessTokenHandler
+        $accessTokenHandler
             ->expects($this->once())
             ->method('getUserBadgeFrom')
             ->with('test')
-            ->willReturn(new UserBadge('test', new FallbackUserLoader(fn () => new InMemoryUser('john', null))));
+            ->willReturn(new UserBadge('test', new FallbackUserLoader(static fn () => new InMemoryUser('john', null))));
 
         $authenticator = new AccessTokenAuthenticator(
-            $this->accessTokenHandler,
-            $this->accessTokenExtractor,
+            $accessTokenHandler,
+            $accessTokenExtractor,
             $this->userProvider,
         );
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/Debug/TraceableAuthenticatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/Debug/TraceableAuthenticatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/Debug/TraceableAuthenticatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/Debug/TraceableAuthenticatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,7 @@
     public function testGetInfo()
     {
         $request = new Request();
-        $passport = new SelfValidatingPassport(new UserBadge('robin', function () {}));
+        $passport = new SelfValidatingPassport(new UserBadge('robin', static function () {}));
 
         $authenticator = $this->createMock(AuthenticatorInterface::class);
         $authenticator
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/FormLoginAuthenticatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/FormLoginAuthenticatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/FormLoginAuthenticatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/FormLoginAuthenticatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,10 +11,10 @@
 
 namespace Symfony\Component\Security\Http\Tests\Authenticator;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Session\SessionInterface;
+use Symfony\Component\HttpFoundation\Session\Session;
+use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
 use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
 use Symfony\Component\Security\Core\Exception\BadCredentialsException;
 use Symfony\Component\Security\Core\User\InMemoryUserProvider;
@@ -31,15 +31,15 @@
 class FormLoginAuthenticatorTest extends TestCase
 {
     private InMemoryUserProvider $userProvider;
-    private MockObject&AuthenticationSuccessHandlerInterface $successHandler;
-    private MockObject&AuthenticationFailureHandlerInterface $failureHandler;
+    private AuthenticationSuccessHandlerInterface $successHandler;
+    private AuthenticationFailureHandlerInterface $failureHandler;
     private FormLoginAuthenticator $authenticator;
 
     protected function setUp(): void
     {
         $this->userProvider = new InMemoryUserProvider(['test' => ['password' => 's$cr$t']]);
-        $this->successHandler = $this->createMock(AuthenticationSuccessHandlerInterface::class);
-        $this->failureHandler = $this->createMock(AuthenticationFailureHandlerInterface::class);
+        $this->successHandler = $this->createStub(AuthenticationSuccessHandlerInterface::class);
+        $this->failureHandler = $this->createStub(AuthenticationFailureHandlerInterface::class);
     }
 
     /**
@@ -55,7 +55,7 @@
         }
 
         $request = Request::create('/login_check', 'POST', ['_username' => $username, '_password' => 's$cr$t']);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator();
         $this->authenticator->authenticate($request);
@@ -76,7 +76,7 @@
         $this->expectExceptionMessage('The key "_username" must be a string, "array" given.');
 
         $request = Request::create('/login_check', 'POST', ['_username' => []]);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator(['post_only' => $postOnly]);
         $this->authenticator->authenticate($request);
@@ -91,7 +91,7 @@
         $this->expectExceptionMessage('The key "_username" must be a string, "integer" given.');
 
         $request = Request::create('/login_check', 'POST', ['_username' => 42]);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator(['post_only' => $postOnly]);
         $this->authenticator->authenticate($request);
@@ -106,7 +106,7 @@
         $this->expectExceptionMessage('The key "_username" must be a string, "object" given.');
 
         $request = Request::create('/login_check', 'POST', ['_username' => new \stdClass()]);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator(['post_only' => $postOnly]);
         $this->authenticator->authenticate($request);
@@ -121,7 +121,7 @@
         $usernameObject->expects($this->once())->method('__toString')->willReturn('someUsername');
 
         $request = Request::create('/login_check', 'POST', ['_username' => $usernameObject, '_password' => 's$cr$t']);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator(['post_only' => $postOnly]);
         $this->authenticator->authenticate($request);
@@ -136,7 +136,7 @@
         $this->expectExceptionMessage('The key "_password" must be a string, "array" given.');
 
         $request = Request::create('/login_check', 'POST', ['_username' => 'foo', '_password' => []]);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator(['post_only' => $postOnly]);
         $this->authenticator->authenticate($request);
@@ -147,7 +147,7 @@
      */
     public function testHandleNonStringPasswordWithToString(bool $postOnly)
     {
-        $passwordObject = new class() {
+        $passwordObject = new class {
             public function __toString()
             {
                 return 's$cr$t';
@@ -155,7 +155,7 @@
         };
 
         $request = Request::create('/login_check', 'POST', ['_username' => 'foo', '_password' => $passwordObject]);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator(['post_only' => $postOnly]);
         $passport = $this->authenticator->authenticate($request);
@@ -171,7 +171,7 @@
     public function testHandleNonStringCsrfTokenWithArray($postOnly)
     {
         $request = Request::create('/login_check', 'POST', ['_username' => 'foo', '_password' => 'bar', '_csrf_token' => []]);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator(['post_only' => $postOnly]);
 
@@ -187,7 +187,7 @@
     public function testHandleNonStringCsrfTokenWithInt($postOnly)
     {
         $request = Request::create('/login_check', 'POST', ['_username' => 'foo', '_password' => 'bar', '_csrf_token' => 42]);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator(['post_only' => $postOnly]);
 
@@ -203,7 +203,7 @@
     public function testHandleNonStringCsrfTokenWithObject($postOnly)
     {
         $request = Request::create('/login_check', 'POST', ['_username' => 'foo', '_password' => 'bar', '_csrf_token' => new \stdClass()]);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator(['post_only' => $postOnly]);
 
@@ -222,7 +222,7 @@
     public function testCsrfProtection()
     {
         $request = Request::create('/login_check', 'POST', ['_username' => 'wouter', '_password' => 's$cr$t']);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->setUpAuthenticator(['enable_csrf' => true]);
         $passport = $this->authenticator->authenticate($request);
@@ -232,7 +232,7 @@
     public function testUpgradePassword()
     {
         $request = Request::create('/login_check', 'POST', ['_username' => 'wouter', '_password' => 's$cr$t']);
-        $request->setSession($this->createSession());
+        $request->setSession(new Session(new MockArraySessionStorage()));
 
         $this->userProvider = new PasswordUpgraderProvider(['test' => ['password' => 's$cr$t']]);
 
@@ -268,11 +268,6 @@
     {
         $this->authenticator = new FormLoginAuthenticator(new HttpUtils(), $this->userProvider, $this->successHandler, $this->failureHandler, $options);
     }
-
-    private function createSession()
-    {
-        return $this->createMock(SessionInterface::class);
-    }
 }
 
 class DummyUserClass
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/HttpBasicAuthenticatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/HttpBasicAuthenticatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/HttpBasicAuthenticatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/HttpBasicAuthenticatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,8 +13,6 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactoryInterface;
-use Symfony\Component\PasswordHasher\PasswordHasherInterface;
 use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Core\User\InMemoryUserProvider;
 use Symfony\Component\Security\Http\Authenticator\HttpBasicAuthenticator;
@@ -30,14 +28,6 @@
     protected function setUp(): void
     {
         $this->userProvider = new InMemoryUserProvider();
-
-        $hasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
-        $hasher = $this->createMock(PasswordHasherInterface::class);
-        $hasherFactory
-            ->expects($this->any())
-            ->method('getPasswordHasher')
-            ->willReturn($hasher);
-
         $this->authenticator = new HttpBasicAuthenticator('test', $this->userProvider);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/JsonLoginAuthenticatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/JsonLoginAuthenticatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/JsonLoginAuthenticatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/JsonLoginAuthenticatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -124,7 +124,7 @@
         yield [$request, 'The key "password" must be a string.'];
 
         $username = str_repeat('x', UserBadge::MAX_USERNAME_LENGTH + 1);
-        $request = new Request([], [], [], [], [], ['HTTP_CONTENT_TYPE' => 'application/json'], sprintf('{"username": "%s", "password": "foo"}', $username));
+        $request = new Request([], [], [], [], [], ['HTTP_CONTENT_TYPE' => 'application/json'], \sprintf('{"username": "%s", "password": "foo"}', $username));
         yield [$request, 'Username too long.', BadCredentialsException::class];
     }
 
@@ -172,7 +172,7 @@
     {
         $this->setUpAuthenticator();
 
-        $response = $this->authenticator->onAuthenticationFailure(new Request(), new class() extends AuthenticationException {
+        $response = $this->authenticator->onAuthenticationFailure(new Request(), new class extends AuthenticationException {
             public function getMessageData(): array
             {
                 return ['%failed_attempts%' => 3];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/LoginLinkAuthenticatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/LoginLinkAuthenticatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/LoginLinkAuthenticatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/LoginLinkAuthenticatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,10 +11,9 @@
 
 namespace Symfony\Component\Security\Http\Tests\Authenticator;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Security\Core\User\UserInterface;
+use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface;
 use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
 use Symfony\Component\Security\Http\Authenticator\LoginLinkAuthenticator;
@@ -28,16 +27,16 @@
 
 class LoginLinkAuthenticatorTest extends TestCase
 {
-    private MockObject&LoginLinkHandlerInterface $loginLinkHandler;
-    private MockObject&AuthenticationSuccessHandlerInterface $successHandler;
-    private MockObject&AuthenticationFailureHandlerInterface $failureHandler;
+    private LoginLinkHandlerInterface $loginLinkHandler;
+    private AuthenticationSuccessHandlerInterface $successHandler;
+    private AuthenticationFailureHandlerInterface $failureHandler;
     private LoginLinkAuthenticator $authenticator;
 
     protected function setUp(): void
     {
-        $this->loginLinkHandler = $this->createMock(LoginLinkHandlerInterface::class);
-        $this->successHandler = $this->createMock(AuthenticationSuccessHandlerInterface::class);
-        $this->failureHandler = $this->createMock(AuthenticationFailureHandlerInterface::class);
+        $this->loginLinkHandler = $this->createStub(LoginLinkHandlerInterface::class);
+        $this->successHandler = $this->createStub(AuthenticationSuccessHandlerInterface::class);
+        $this->failureHandler = $this->createStub(AuthenticationFailureHandlerInterface::class);
     }
 
     /**
@@ -60,16 +59,15 @@
 
     public function testSuccessfulAuthenticate()
     {
-        $this->setUpAuthenticator();
-
         $request = Request::create('/login/link/check?stuff=1&user=weaverryan');
-        $user = $this->createMock(UserInterface::class);
-        $this->loginLinkHandler->expects($this->once())
+        $user = new InMemoryUser('John', 'password');
+        $loginLinkHandler = $this->createMock(LoginLinkHandlerInterface::class);
+        $loginLinkHandler->expects($this->once())
             ->method('consumeLoginLink')
             ->with($request)
             ->willReturn($user);
 
-        $passport = $this->authenticator->authenticate($request);
+        $passport = (new LoginLinkAuthenticator($loginLinkHandler, new HttpUtils(), $this->successHandler, $this->failureHandler, []))->authenticate($request);
         $this->assertInstanceOf(SelfValidatingPassport::class, $passport);
         /** @var UserBadge $userBadge */
         $userBadge = $passport->getBadge(UserBadge::class);
@@ -83,12 +81,14 @@
         $this->setUpAuthenticator();
 
         $request = Request::create('/login/link/check?stuff=1&user=weaverryan');
-        $this->loginLinkHandler->expects($this->once())
+        $loginLinkHandler = $this->createMock(LoginLinkHandlerInterface::class);
+        $loginLinkHandler->expects($this->once())
             ->method('consumeLoginLink')
             ->with($request)
             ->willThrowException(new ExpiredLoginLinkException());
 
-        $passport = $this->authenticator->authenticate($request);
+        $passport = (new LoginLinkAuthenticator($loginLinkHandler, new HttpUtils(), $this->successHandler, $this->failureHandler, []))->authenticate($request);
+
         // trigger the user loader to try to load the user
         $passport->getBadge(UserBadge::class)->getUser();
     }
@@ -99,11 +99,11 @@
         $this->setUpAuthenticator();
 
         $request = Request::create('/login/link/check?stuff=1');
-        $this->createMock(UserInterface::class);
-        $this->loginLinkHandler->expects($this->never())
+        $loginLinkHandler = $this->createMock(LoginLinkHandlerInterface::class);
+        $loginLinkHandler->expects($this->never())
             ->method('consumeLoginLink');
 
-        $this->authenticator->authenticate($request);
+        (new LoginLinkAuthenticator($loginLinkHandler, new HttpUtils(), $this->successHandler, $this->failureHandler, []))->authenticate($request);
     }
 
     public function testPassportBadges()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/Passport/Badge/UserBadgeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/Passport/Badge/UserBadgeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/Passport/Badge/UserBadgeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/Passport/Badge/UserBadgeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
 {
     public function testUserNotFound()
     {
-        $badge = new UserBadge('dummy', fn () => null);
+        $badge = new UserBadge('dummy', static fn () => null);
         $this->expectException(UserNotFoundException::class);
         $badge->getUser();
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/RememberMeAuthenticatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/RememberMeAuthenticatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/RememberMeAuthenticatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/RememberMeAuthenticatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Security\Http\Tests\Authenticator;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Cookie;
 use Symfony\Component\HttpFoundation\Request;
@@ -26,13 +25,13 @@
 
 class RememberMeAuthenticatorTest extends TestCase
 {
-    private MockObject&RememberMeHandlerInterface $rememberMeHandler;
+    private RememberMeHandlerInterface $rememberMeHandler;
     private TokenStorage $tokenStorage;
     private RememberMeAuthenticator $authenticator;
 
     protected function setUp(): void
     {
-        $this->rememberMeHandler = $this->createMock(RememberMeHandlerInterface::class);
+        $this->rememberMeHandler = $this->createStub(RememberMeHandlerInterface::class);
         $this->tokenStorage = new TokenStorage();
         $this->authenticator = new RememberMeAuthenticator($this->rememberMeHandler, 's3cr3t', $this->tokenStorage, '_remember_me_cookie');
     }
@@ -69,11 +68,12 @@
 
     public function testAuthenticate()
     {
+        $rememberMeHandler = $this->createMock(RememberMeHandlerInterface::class);
         $rememberMeDetails = new RememberMeDetails(InMemoryUser::class, 'wouter', 1, 'secret');
         $request = Request::create('/', 'GET', [], ['_remember_me_cookie' => $rememberMeDetails->toString()]);
-        $passport = $this->authenticator->authenticate($request);
+        $passport = (new RememberMeAuthenticator($rememberMeHandler, 's3cr3t', $this->tokenStorage, '_remember_me_cookie'))->authenticate($request);
 
-        $this->rememberMeHandler->expects($this->once())->method('consumeRememberMeCookie')->with($this->callback(fn ($arg) => $rememberMeDetails == $arg));
+        $rememberMeHandler->expects($this->once())->method('consumeRememberMeCookie')->with($this->callback(static fn ($arg) => $rememberMeDetails == $arg));
         $passport->getUser(); // trigger the user loader
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/X509AuthenticatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/X509AuthenticatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/X509AuthenticatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Authenticator/X509AuthenticatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -81,6 +81,26 @@
         yield ['cert+something@example.com', 'emailAddress=cert+something@example.com,CN=Sample certificate DN'];
         yield ['cert+something@example.com', 'emailAddress=cert+something@example.com'];
         yield ['firstname.lastname@mycompany.co.uk', 'emailAddress=firstname.lastname@mycompany.co.uk,CN=Firstname.Lastname,OU=london,OU=company design and engineering,OU=Issuer London,OU=Roaming,OU=Interactive,OU=Users,OU=Standard,OU=Business,DC=england,DC=core,DC=company,DC=co,DC=uk'];
+        yield ['cert@example.com', '1.2.840.113549.1.9.1=cert@example.com,CN=Sample certificate DN'];
+        yield ['cert@example.com', 'CN=Sample certificate DN/1.2.840.113549.1.9.1=cert@example.com'];
+    }
+
+    /**
+     * @dataProvider provideSpoofedDns
+     */
+    public function testAuthenticationRejectsSpoofedEmailInDn(string $dn)
+    {
+        $request = $this->createRequest(['SSL_CLIENT_S_DN' => $dn]);
+
+        $this->assertFalse($this->authenticator->supports($request));
+    }
+
+    public static function provideSpoofedDns()
+    {
+        yield ['CN=emailAddress=admin@target.example,O=Attacker Corp'];
+        yield ['CN=foo,OU=emailAddress=admin@target.example,O=Attacker'];
+        yield ['CN=1.2.840.113549.1.9.1=admin@target.example,O=Attacker Corp'];
+        yield ['CN=foo,OU=1.2.840.113549.1.9.1=admin@target.example,O=Attacker'];
     }
 
     public function testSupportNoData()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Controller/UserValueResolverTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Controller/UserValueResolverTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Controller/UserValueResolverTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Controller/UserValueResolverTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,6 +24,7 @@
 use Symfony\Component\Security\Core\User\UserInterface;
 use Symfony\Component\Security\Http\Attribute\CurrentUser;
 use Symfony\Component\Security\Http\Controller\UserValueResolver;
+use Symfony\Component\Security\Http\Tests\Fixtures\CustomUser;
 
 class UserValueResolverTest extends TestCase
 {
@@ -125,7 +126,7 @@
 
     public function testResolveThrowsAccessDeniedWithWrongUserClass()
     {
-        $user = $this->createMock(UserInterface::class);
+        $user = new CustomUser('John', ['ROLE_USER'], 'password', 'hash');
         $token = new UsernamePasswordToken($user, 'provider');
         $tokenStorage = new TokenStorage();
         $tokenStorage->setToken($token);
@@ -134,7 +135,7 @@
         $metadata = new ArgumentMetadata('foo', InMemoryUser::class, false, false, null, false, [new CurrentUser()]);
 
         $this->expectException(AccessDeniedException::class);
-        $this->expectExceptionMessageMatches('/^The logged-in user is an instance of "Mock_UserInterface[^"]+" but a user of type "Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\InMemoryUser" is expected.$/');
+        $this->expectExceptionMessage(\sprintf('The logged-in user is an instance of "%s" but a user of type "Symfony\Component\Security\Core\User\InMemoryUser" is expected.', $user::class));
         $resolver->resolve(Request::create('/'), $metadata);
     }
 
@@ -168,7 +169,7 @@
         $tokenStorage->setToken($token);
 
         $argumentResolver = new ArgumentResolver(null, [new UserValueResolver($tokenStorage)]);
-        $this->assertSame([$user], $argumentResolver->getArguments(Request::create('/'), function (UserInterface $user) {}));
+        $this->assertSame([$user], $argumentResolver->getArguments(Request::create('/'), static function (UserInterface $user) {}));
     }
 
     public function testIntegrationNoUser()
@@ -176,6 +177,6 @@
         $tokenStorage = new TokenStorage();
 
         $argumentResolver = new ArgumentResolver(null, [new UserValueResolver($tokenStorage), new DefaultValueResolver()]);
-        $this->assertSame([null], $argumentResolver->getArguments(Request::create('/'), function (?UserInterface $user = null) {}));
+        $this->assertSame([null], $argumentResolver->getArguments(Request::create('/'), static function (?UserInterface $user = null) {}));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CheckCredentialsListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CheckCredentialsListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CheckCredentialsListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CheckCredentialsListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,13 +11,11 @@
 
 namespace Symfony\Component\Security\Http\Tests\EventListener;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
-use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactoryInterface;
+use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory;
 use Symfony\Component\PasswordHasher\PasswordHasherInterface;
 use Symfony\Component\Security\Core\Exception\BadCredentialsException;
 use Symfony\Component\Security\Core\User\InMemoryUser;
-use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\PasswordUpgradeBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\CustomCredentials;
@@ -26,17 +24,14 @@
 use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
 use Symfony\Component\Security\Http\Event\CheckPassportEvent;
 use Symfony\Component\Security\Http\EventListener\CheckCredentialsListener;
+use Symfony\Component\Security\Http\Tests\Fixtures\DummyAuthenticator;
 
 class CheckCredentialsListenerTest extends TestCase
 {
-    private MockObject&PasswordHasherFactoryInterface $hasherFactory;
-    private CheckCredentialsListener $listener;
     private InMemoryUser $user;
 
     protected function setUp(): void
     {
-        $this->hasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
-        $this->listener = new CheckCredentialsListener($this->hasherFactory);
         $this->user = new InMemoryUser('wouter', 'password-hash');
     }
 
@@ -45,10 +40,12 @@
      */
     public function testPasswordAuthenticated($password, $passwordValid, $result)
     {
-        $hasher = $this->createMock(PasswordHasherInterface::class);
-        $hasher->expects($this->any())->method('verify')->with('password-hash', $password)->willReturn($passwordValid);
+        $hasher = $this->createStub(PasswordHasherInterface::class);
+        $hasher->method('verify')->with('password-hash', $password)->willReturn($passwordValid);
 
-        $this->hasherFactory->expects($this->any())->method('getPasswordHasher')->with($this->identicalTo($this->user))->willReturn($hasher);
+        $hasherFactory = new PasswordHasherFactory([
+            InMemoryUser::class => $hasher,
+        ]);
 
         if (false === $result) {
             $this->expectException(BadCredentialsException::class);
@@ -56,7 +53,7 @@
         }
 
         $credentials = new PasswordCredentials($password);
-        $this->listener->checkPassport($this->createEvent(new Passport(new UserBadge('wouter', fn () => $this->user), $credentials)));
+        (new CheckCredentialsListener($hasherFactory))->checkPassport($this->createEvent(new Passport(new UserBadge('wouter', fn () => $this->user), $credentials)));
 
         if (true === $result) {
             $this->assertTrue($credentials->isResolved());
@@ -74,10 +71,11 @@
         $this->expectException(BadCredentialsException::class);
         $this->expectExceptionMessage('The presented password cannot be empty.');
 
-        $this->hasherFactory->expects($this->never())->method('getPasswordHasher');
+        $hasherFactory = $this->createMock(PasswordHasherFactory::class);
+        $hasherFactory->expects($this->never())->method('getPasswordHasher');
 
         $event = $this->createEvent(new Passport(new UserBadge('wouter', fn () => $this->user), new PasswordCredentials('')));
-        $this->listener->checkPassport($event);
+        (new CheckCredentialsListener($hasherFactory))->checkPassport($event);
     }
 
     /**
@@ -85,14 +83,15 @@
      */
     public function testCustomAuthenticated($result)
     {
-        $this->hasherFactory->expects($this->never())->method('getPasswordHasher');
+        $hasherFactory = $this->createMock(PasswordHasherFactory::class);
+        $hasherFactory->expects($this->never())->method('getPasswordHasher');
 
         if (false === $result) {
             $this->expectException(BadCredentialsException::class);
         }
 
-        $credentials = new CustomCredentials(fn () => $result, ['password' => 'foo']);
-        $this->listener->checkPassport($this->createEvent(new Passport(new UserBadge('wouter', fn () => $this->user), $credentials)));
+        $credentials = new CustomCredentials(static fn () => $result, ['password' => 'foo']);
+        (new CheckCredentialsListener($hasherFactory))->checkPassport($this->createEvent(new Passport(new UserBadge('wouter', fn () => $this->user), $credentials)));
 
         if (true === $result) {
             $this->assertTrue($credentials->isResolved());
@@ -107,21 +106,24 @@
 
     public function testNoCredentialsBadgeProvided()
     {
-        $this->hasherFactory->expects($this->never())->method('getPasswordHasher');
+        $hasherFactory = $this->createMock(PasswordHasherFactory::class);
+        $hasherFactory->expects($this->never())->method('getPasswordHasher');
 
         $event = $this->createEvent(new SelfValidatingPassport(new UserBadge('wouter', fn () => $this->user)));
-        $this->listener->checkPassport($event);
+        (new CheckCredentialsListener($hasherFactory))->checkPassport($event);
     }
 
     public function testAddsPasswordUpgradeBadge()
     {
-        $hasher = $this->createMock(PasswordHasherInterface::class);
-        $hasher->expects($this->any())->method('verify')->with('password-hash', 'ThePa$$word')->willReturn(true);
+        $hasher = $this->createStub(PasswordHasherInterface::class);
+        $hasher->method('verify')->with('password-hash', 'ThePa$$word')->willReturn(true);
 
-        $this->hasherFactory->expects($this->any())->method('getPasswordHasher')->with($this->identicalTo($this->user))->willReturn($hasher);
+        $hasherFactory = new PasswordHasherFactory([
+            InMemoryUser::class => $hasher,
+        ]);
 
         $passport = new Passport(new UserBadge('wouter', fn () => $this->user), new PasswordCredentials('ThePa$$word'));
-        $this->listener->checkPassport($this->createEvent($passport));
+        (new CheckCredentialsListener($hasherFactory))->checkPassport($this->createEvent($passport));
 
         $this->assertTrue($passport->hasBadge(PasswordUpgradeBadge::class));
         $this->assertEquals('ThePa$$word', $passport->getBadge(PasswordUpgradeBadge::class)->getAndErasePlaintextPassword());
@@ -129,10 +131,12 @@
 
     public function testAddsNoPasswordUpgradeBadgeIfItAlreadyExists()
     {
-        $hasher = $this->createMock(PasswordHasherInterface::class);
-        $hasher->expects($this->any())->method('verify')->with('password-hash', 'ThePa$$word')->willReturn(true);
+        $hasher = $this->createStub(PasswordHasherInterface::class);
+        $hasher->method('verify')->with('password-hash', 'ThePa$$word')->willReturn(true);
 
-        $this->hasherFactory->expects($this->any())->method('getPasswordHasher')->with($this->identicalTo($this->user))->willReturn($hasher);
+        $hasherFactory = new PasswordHasherFactory([
+            InMemoryUser::class => $hasher,
+        ]);
 
         $passport = $this->getMockBuilder(Passport::class)
             ->onlyMethods(['addBadge'])
@@ -141,15 +145,17 @@
 
         $passport->expects($this->never())->method('addBadge')->with($this->isInstanceOf(PasswordUpgradeBadge::class));
 
-        $this->listener->checkPassport($this->createEvent($passport));
+        (new CheckCredentialsListener($hasherFactory))->checkPassport($this->createEvent($passport));
     }
 
     public function testAddsNoPasswordUpgradeBadgeIfPasswordIsInvalid()
     {
-        $hasher = $this->createMock(PasswordHasherInterface::class);
-        $hasher->expects($this->any())->method('verify')->with('password-hash', 'ThePa$$word')->willReturn(false);
+        $hasher = $this->createStub(PasswordHasherInterface::class);
+        $hasher->method('verify')->with('password-hash', 'ThePa$$word')->willReturn(false);
 
-        $this->hasherFactory->expects($this->any())->method('getPasswordHasher')->with($this->identicalTo($this->user))->willReturn($hasher);
+        $hasherFactory = new PasswordHasherFactory([
+            InMemoryUser::class => $hasher,
+        ]);
 
         $passport = $this->getMockBuilder(Passport::class)
             ->onlyMethods(['addBadge'])
@@ -158,11 +164,11 @@
 
         $passport->expects($this->never())->method('addBadge')->with($this->isInstanceOf(PasswordUpgradeBadge::class));
 
-        $this->listener->checkPassport($this->createEvent($passport));
+        (new CheckCredentialsListener($hasherFactory))->checkPassport($this->createEvent($passport));
     }
 
     private function createEvent($passport)
     {
-        return new CheckPassportEvent($this->createMock(AuthenticatorInterface::class), $passport);
+        return new CheckPassportEvent(new DummyAuthenticator(), $passport);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CheckRememberMeConditionsListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CheckRememberMeConditionsListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CheckRememberMeConditionsListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CheckRememberMeConditionsListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,15 +14,15 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
 use Symfony\Component\Security\Core\User\InMemoryUser;
-use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\RememberMeBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\Passport;
 use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
 use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
 use Symfony\Component\Security\Http\EventListener\CheckRememberMeConditionsListener;
+use Symfony\Component\Security\Http\Tests\Fixtures\DummyAuthenticator;
 
 class CheckRememberMeConditionsListenerTest extends TestCase
 {
@@ -143,11 +143,11 @@
 
     private function createLoginSuccessfulEvent(Passport $passport)
     {
-        return new LoginSuccessEvent($this->createMock(AuthenticatorInterface::class), $passport, $this->createMock(TokenInterface::class), $this->request, $this->response, 'main_firewall');
+        return new LoginSuccessEvent(new DummyAuthenticator(), $passport, new NullToken(), $this->request, $this->response, 'main_firewall');
     }
 
     private function createPassport(?array $badges = null)
     {
-        return new SelfValidatingPassport(new UserBadge('test', fn ($username) => new InMemoryUser($username, null)), $badges ?? [new RememberMeBadge(['_remember_me' => true])]);
+        return new SelfValidatingPassport(new UserBadge('test', static fn ($username) => new InMemoryUser($username, null)), $badges ?? [new RememberMeBadge(['_remember_me' => true])]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CsrfProtectionListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CsrfProtectionListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CsrfProtectionListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/CsrfProtectionListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,48 +11,42 @@
 
 namespace Symfony\Component\Security\Http\Tests\EventListener;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException;
 use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Csrf\CsrfToken;
 use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
-use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\CsrfTokenBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
 use Symfony\Component\Security\Http\Event\CheckPassportEvent;
 use Symfony\Component\Security\Http\EventListener\CsrfProtectionListener;
+use Symfony\Component\Security\Http\Tests\Fixtures\DummyAuthenticator;
 
 class CsrfProtectionListenerTest extends TestCase
 {
-    private MockObject&CsrfTokenManagerInterface $csrfTokenManager;
-    private CsrfProtectionListener $listener;
-
-    protected function setUp(): void
-    {
-        $this->csrfTokenManager = $this->createMock(CsrfTokenManagerInterface::class);
-        $this->listener = new CsrfProtectionListener($this->csrfTokenManager);
-    }
-
     public function testNoCsrfTokenBadge()
     {
-        $this->csrfTokenManager->expects($this->never())->method('isTokenValid');
+        $csrfTokenManager = $this->createMock(CsrfTokenManagerInterface::class);
+        $csrfTokenManager->expects($this->never())->method('isTokenValid');
 
         $event = $this->createEvent($this->createPassport(null));
-        $this->listener->checkPassport($event);
+        $listener = new CsrfProtectionListener($csrfTokenManager);
+        $listener->checkPassport($event);
     }
 
     public function testValidCsrfToken()
     {
-        $this->csrfTokenManager->expects($this->any())
+        $csrfTokenManager = $this->createStub(CsrfTokenManagerInterface::class);
+        $csrfTokenManager
             ->method('isTokenValid')
             ->with(new CsrfToken('authenticator_token_id', 'abc123'))
             ->willReturn(true);
 
         $badge = new CsrfTokenBadge('authenticator_token_id', 'abc123');
         $event = $this->createEvent($this->createPassport($badge));
-        $this->listener->checkPassport($event);
+        $listener = new CsrfProtectionListener($csrfTokenManager);
+        $listener->checkPassport($event);
 
         $this->assertTrue($badge->isResolved());
     }
@@ -62,23 +56,26 @@
         $this->expectException(InvalidCsrfTokenException::class);
         $this->expectExceptionMessage('Invalid CSRF token.');
 
-        $this->csrfTokenManager->expects($this->any())
+        $csrfTokenManager = $this->createStub(CsrfTokenManagerInterface::class);
+        $csrfTokenManager
             ->method('isTokenValid')
             ->with(new CsrfToken('authenticator_token_id', 'abc123'))
             ->willReturn(false);
 
         $event = $this->createEvent($this->createPassport(new CsrfTokenBadge('authenticator_token_id', 'abc123')));
-        $this->listener->checkPassport($event);
+        $listener = new CsrfProtectionListener($csrfTokenManager);
+
+        $listener->checkPassport($event);
     }
 
     private function createEvent($passport)
     {
-        return new CheckPassportEvent($this->createMock(AuthenticatorInterface::class), $passport);
+        return new CheckPassportEvent(new DummyAuthenticator(), $passport);
     }
 
     private function createPassport(?CsrfTokenBadge $badge)
     {
-        $passport = new SelfValidatingPassport(new UserBadge('wouter', fn ($username) => new InMemoryUser($username, 'pass')));
+        $passport = new SelfValidatingPassport(new UserBadge('wouter', static fn ($username) => new InMemoryUser($username, 'pass')));
         if ($badge) {
             $passport->addBadge($badge);
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/IsGrantedAttributeListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/IsGrantedAttributeListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/IsGrantedAttributeListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/IsGrantedAttributeListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
             ->willReturn(true);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeController(), 'foo'],
             [],
             new Request(),
@@ -50,7 +50,7 @@
             ->willReturn(true);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeController(), 'bar'],
             [],
             new Request(),
@@ -68,7 +68,7 @@
             ->method('isGranted');
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'noAttribute'],
             [],
             new Request(),
@@ -88,7 +88,7 @@
             ->willReturn(true);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'admin'],
             [],
             new Request(),
@@ -109,7 +109,7 @@
             ->willReturn(true);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'withSubject'],
             ['arg1Value', 'arg2Value'],
             new Request(),
@@ -134,7 +134,7 @@
             ->willReturn(true);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'withSubjectArray'],
             ['arg1Value', 'arg2Value'],
             new Request(),
@@ -155,7 +155,7 @@
             ->willReturn(true);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'withSubject'],
             ['arg1Value', null],
             new Request(),
@@ -178,7 +178,7 @@
             ->willReturn(true);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'withSubjectArray'],
             ['arg1Value', null],
             new Request(),
@@ -193,10 +193,10 @@
     {
         $this->expectException(\RuntimeException::class);
 
-        $authChecker = $this->createMock(AuthorizationCheckerInterface::class);
+        $authChecker = $this->createStub(AuthorizationCheckerInterface::class);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'withMissingSubject'],
             [],
             new Request(),
@@ -217,8 +217,8 @@
             ->method('isGranted')
             ->willReturn(false);
 
-        $expressionLanguage = $this->createMock(ExpressionLanguage::class);
-        $expressionLanguage->expects($this->any())
+        $expressionLanguage = $this->createStub(ExpressionLanguage::class);
+        $expressionLanguage
             ->method('evaluate')
             ->willReturn('bar');
 
@@ -228,7 +228,7 @@
         $listener = new IsGrantedAttributeListener($authChecker, $expressionLanguage);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), $method],
             $arguments,
             new Request(),
@@ -264,13 +264,13 @@
         $this->expectException(HttpException::class);
         $this->expectExceptionMessage('Not found');
 
-        $authChecker = $this->createMock(AuthorizationCheckerInterface::class);
-        $authChecker->expects($this->any())
+        $authChecker = $this->createStub(AuthorizationCheckerInterface::class);
+        $authChecker
             ->method('isGranted')
             ->willReturn(false);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'notFound'],
             [],
             new Request(),
@@ -290,7 +290,7 @@
             ->willReturn(true);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'withExpressionInAttribute'],
             ['postVal'],
             new Request(),
@@ -321,7 +321,7 @@
             ->willReturn('author');
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'withExpressionInSubject'],
             ['postVal'],
             $request,
@@ -352,7 +352,7 @@
             ->willReturn('author');
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'withNestedExpressionInSubject'],
             ['postVal', 'arg2Val'],
             $request,
@@ -374,7 +374,7 @@
             ->willReturn(true);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'withRequestAsSubject'],
             [],
             $request,
@@ -391,13 +391,13 @@
         $this->expectExceptionMessage('Exception Code');
         $this->expectExceptionCode(10010);
 
-        $authChecker = $this->createMock(AuthorizationCheckerInterface::class);
-        $authChecker->expects($this->any())
+        $authChecker = $this->createStub(AuthorizationCheckerInterface::class);
+        $authChecker
             ->method('isGranted')
             ->willReturn(false);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'exceptionCodeInHttpException'],
             [],
             new Request(),
@@ -414,13 +414,13 @@
         $this->expectExceptionMessage('Exception Code');
         $this->expectExceptionCode(10010);
 
-        $authChecker = $this->createMock(AuthorizationCheckerInterface::class);
-        $authChecker->expects($this->any())
+        $authChecker = $this->createStub(AuthorizationCheckerInterface::class);
+        $authChecker
             ->method('isGranted')
             ->willReturn(false);
 
         $event = new ControllerArgumentsEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             [new IsGrantedAttributeMethodsController(), 'exceptionCodeInAccessDeniedException'],
             [],
             new Request(),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/LoginThrottlingListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/LoginThrottlingListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/LoginThrottlingListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/LoginThrottlingListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,13 +18,13 @@
 use Symfony\Component\RateLimiter\Storage\InMemoryStorage;
 use Symfony\Component\Security\Core\Exception\AuthenticationException;
 use Symfony\Component\Security\Core\Exception\TooManyLoginAttemptsAuthenticationException;
-use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
 use Symfony\Component\Security\Http\Event\CheckPassportEvent;
 use Symfony\Component\Security\Http\Event\LoginFailureEvent;
 use Symfony\Component\Security\Http\EventListener\LoginThrottlingListener;
 use Symfony\Component\Security\Http\RateLimiter\DefaultLoginRateLimiter;
+use Symfony\Component\Security\Http\Tests\Fixtures\DummyAuthenticator;
 
 class LoginThrottlingListenerTest extends TestCase
 {
@@ -107,12 +107,12 @@
 
     private function createLoginFailedEvent($passport)
     {
-        return new LoginFailureEvent($this->createMock(AuthenticationException::class), $this->createMock(AuthenticatorInterface::class), $this->requestStack->getCurrentRequest(), null, 'main', $passport);
+        return new LoginFailureEvent(new AuthenticationException(), new DummyAuthenticator(), $this->requestStack->getCurrentRequest(), null, 'main', $passport);
     }
 
     private function createCheckPassportEvent($passport)
     {
-        return new CheckPassportEvent($this->createMock(AuthenticatorInterface::class), $passport);
+        return new CheckPassportEvent(new DummyAuthenticator(), $passport);
     }
 
     private function createRequest($ip = '192.168.1.0')
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/PasswordMigratingListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/PasswordMigratingListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/PasswordMigratingListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/PasswordMigratingListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,9 +11,9 @@
 
 namespace Symfony\Component\Security\Http\Tests\EventListener;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory;
 use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactoryInterface;
 use Symfony\Component\PasswordHasher\PasswordHasherInterface;
 use Symfony\Component\Security\Core\Authentication\Token\NullToken;
@@ -32,19 +32,19 @@
 
 class PasswordMigratingListenerTest extends TestCase
 {
-    private MockObject&PasswordHasherFactoryInterface $hasherFactory;
+    private PasswordHasherFactoryInterface $hasherFactory;
     private PasswordMigratingListener $listener;
-    private UserInterface&PasswordAuthenticatedUserInterface $user;
+    private PasswordAuthenticatedUserInterface $user;
 
     protected function setUp(): void
     {
-        $this->user = $this->createMock(TestPasswordAuthenticatedUser::class);
-        $this->user->expects($this->any())->method('getPassword')->willReturn('old-hash');
-        $encoder = $this->createMock(PasswordHasherInterface::class);
-        $encoder->expects($this->any())->method('needsRehash')->willReturn(true);
-        $encoder->expects($this->any())->method('hash')->with('pa$$word', null)->willReturn('new-hash');
-        $this->hasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
-        $this->hasherFactory->expects($this->any())->method('getPasswordHasher')->with($this->user)->willReturn($encoder);
+        $this->user = new InMemoryUser('John', 'old-hash');
+        $encoder = $this->createStub(PasswordHasherInterface::class);
+        $encoder->method('needsRehash')->willReturn(true);
+        $encoder->method('hash')->with('pa$$word', null)->willReturn('new-hash');
+        $this->hasherFactory = new PasswordHasherFactory([
+            InMemoryUser::class => $encoder,
+        ]);
         $this->listener = new PasswordMigratingListener($this->hasherFactory);
     }
 
@@ -53,18 +53,19 @@
      */
     public function testUnsupportedEvents($event)
     {
-        $this->hasherFactory->expects($this->never())->method('getPasswordHasher');
+        $hasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
+        $hasherFactory->expects($this->never())->method('getPasswordHasher');
 
-        $this->listener->onLoginSuccess($event);
+        (new PasswordMigratingListener($hasherFactory))->onLoginSuccess($event);
     }
 
     public static function provideUnsupportedEvents()
     {
         // no password upgrade badge
-        yield [self::createEvent(new SelfValidatingPassport(new UserBadge('test', fn () => new DummyTestPasswordAuthenticatedUser())))];
+        yield [self::createEvent(new SelfValidatingPassport(new UserBadge('test', static fn () => new DummyTestPasswordAuthenticatedUser())))];
 
         // blank password
-        yield [self::createEvent(new SelfValidatingPassport(new UserBadge('test', fn () => new DummyTestPasswordAuthenticatedUser()), [new PasswordUpgradeBadge('', self::createPasswordUpgrader())]))];
+        yield [self::createEvent(new SelfValidatingPassport(new UserBadge('test', static fn () => new DummyTestPasswordAuthenticatedUser()), [new PasswordUpgradeBadge('', self::createPasswordUpgrader())]))];
     }
 
     public function testUpgradeWithUpgrader()
@@ -82,7 +83,7 @@
     public function testUpgradeWithoutUpgrader()
     {
         $userLoader = $this->createMock(TestMigratingUserProvider::class);
-        $userLoader->expects($this->any())->method('loadUserByIdentifier')->willReturn($this->user);
+        $userLoader->method('loadUserByIdentifier')->willReturn($this->user);
 
         $userLoader->expects($this->exactly(2))
             ->method('upgradePassword')
@@ -100,10 +101,11 @@
     {
         $this->user = new InMemoryUser('test', null);
 
-        $this->hasherFactory->expects($this->never())->method('getPasswordHasher');
+        $hasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
+        $hasherFactory->expects($this->never())->method('getPasswordHasher');
 
         $event = $this->createEvent(new SelfValidatingPassport(new UserBadge('test', fn () => $this->user), [new PasswordUpgradeBadge('pa$$word')]));
-        $this->listener->onLoginSuccess($event);
+        (new PasswordMigratingListener($hasherFactory))->onLoginSuccess($event);
     }
 
     private static function createPasswordUpgrader()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/RememberMeListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/RememberMeListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/RememberMeListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/RememberMeListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,9 +15,8 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
 use Symfony\Component\Security\Core\User\InMemoryUser;
-use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\RememberMeBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\Passport;
@@ -25,6 +24,7 @@
 use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
 use Symfony\Component\Security\Http\EventListener\RememberMeListener;
 use Symfony\Component\Security\Http\RememberMe\RememberMeHandlerInterface;
+use Symfony\Component\Security\Http\Tests\Fixtures\DummyAuthenticator;
 
 class RememberMeListenerTest extends TestCase
 {
@@ -69,7 +69,7 @@
     {
         $passport ??= $this->createPassport();
 
-        return new LoginSuccessEvent($this->createMock(AuthenticatorInterface::class), $passport, $this->createMock(TokenInterface::class), $this->request, $this->response, 'main_firewall');
+        return new LoginSuccessEvent(new DummyAuthenticator(), $passport, new NullToken(), $this->request, $this->response, 'main_firewall');
     }
 
     private function createPassport(?array $badges = null)
@@ -80,6 +80,6 @@
             $badges = [$badge];
         }
 
-        return new SelfValidatingPassport(new UserBadge('test', fn ($username) => new InMemoryUser($username, null)), $badges);
+        return new SelfValidatingPassport(new UserBadge('test', static fn ($username) => new InMemoryUser($username, null)), $badges);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/SessionLogoutListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/SessionLogoutListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/SessionLogoutListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/SessionLogoutListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,9 +34,8 @@
         $session = $this->createMock(Session::class);
         $session->expects($this->once())->method('invalidate');
 
-        $request = $this->createMock(Request::class);
-        $request->method('getSession')->willReturn($session);
-        $request->method('hasSession')->willReturn(true);
+        $request = new Request();
+        $request->setSession($session);
 
         $sessionLogoutListener = new SessionLogoutListener();
         $sessionLogoutListener->onLogout(new LogoutEvent($request, null));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/SessionStrategyListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/SessionStrategyListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/SessionStrategyListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/SessionStrategyListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,23 +11,24 @@
 
 namespace Symfony\Component\Security\Http\Tests\EventListener;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Session\SessionInterface;
+use Symfony\Component\HttpFoundation\Session\Session;
+use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
 use Symfony\Component\Security\Core\Authentication\Token\NullToken;
+use Symfony\Component\Security\Core\Authentication\Token\PreAuthenticatedToken;
 use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
 use Symfony\Component\Security\Core\User\InMemoryUser;
-use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
 use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
 use Symfony\Component\Security\Http\EventListener\SessionStrategyListener;
 use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface;
+use Symfony\Component\Security\Http\Tests\Fixtures\DummyAuthenticator;
 
 class SessionStrategyListenerTest extends TestCase
 {
-    private MockObject&SessionAuthenticationStrategyInterface $sessionAuthenticationStrategy;
+    private SessionAuthenticationStrategyInterface $sessionAuthenticationStrategy;
     private SessionStrategyListener $listener;
     private Request $request;
     private NullToken $token;
@@ -37,7 +38,7 @@
         $this->sessionAuthenticationStrategy = $this->createMock(SessionAuthenticationStrategyInterface::class);
         $this->listener = new SessionStrategyListener($this->sessionAuthenticationStrategy);
         $this->request = new Request();
-        $this->token = $this->createMock(NullToken::class);
+        $this->token = new NullToken();
     }
 
     public function testRequestWithSession()
@@ -69,16 +70,10 @@
         $this->configurePreviousSession();
         $this->sessionAuthenticationStrategy->expects($this->never())->method('onAuthentication');
 
-        $token = $this->createMock(NullToken::class);
-        $token->expects($this->once())
-            ->method('getUserIdentifier')
-            ->willReturn('test');
-        $previousToken = $this->createMock(NullToken::class);
-        $previousToken->expects($this->once())
-            ->method('getUserIdentifier')
-            ->willReturn('test');
+        $token = new UsernamePasswordToken(new InMemoryUser('test', 'password'), 'main');
+        $previousToken = new UsernamePasswordToken(new InMemoryUser('test', 'password'), 'main');
 
-        $event = new LoginSuccessEvent($this->createMock(AuthenticatorInterface::class), new SelfValidatingPassport(new UserBadge('test', function () {})), $token, $this->request, null, 'main_firewall', $previousToken);
+        $event = new LoginSuccessEvent(new DummyAuthenticator(), new SelfValidatingPassport(new UserBadge('test', static function () {})), $token, $this->request, null, 'main_firewall', $previousToken);
 
         $this->listener->onSuccessfulLogin($event);
     }
@@ -87,33 +82,25 @@
     {
         $this->configurePreviousSession();
 
-        $token = $this->createMock(NullToken::class);
-        $token->expects($this->once())
-            ->method('getUserIdentifier')
-            ->willReturn('test');
-        $previousToken = $this->createMock(UsernamePasswordToken::class);
-        $previousToken->expects($this->once())
-            ->method('getUserIdentifier')
-            ->willReturn('test');
+        $token = new PreAuthenticatedToken(new InMemoryUser('test', 'password'), 'main');
+        $previousToken = new UsernamePasswordToken(new InMemoryUser('test', 'password'), 'main');
 
         $this->sessionAuthenticationStrategy->expects($this->once())->method('onAuthentication')->with($this->request, $token);
 
-        $event = new LoginSuccessEvent($this->createMock(AuthenticatorInterface::class), new SelfValidatingPassport(new UserBadge('test', function () {})), $token, $this->request, null, 'main_firewall', $previousToken);
+        $event = new LoginSuccessEvent(new DummyAuthenticator(), new SelfValidatingPassport(new UserBadge('test', static function () {})), $token, $this->request, null, 'main_firewall', $previousToken);
 
         $this->listener->onSuccessfulLogin($event);
     }
 
     private function createEvent($firewallName)
     {
-        return new LoginSuccessEvent($this->createMock(AuthenticatorInterface::class), new SelfValidatingPassport(new UserBadge('test', fn ($username) => new InMemoryUser($username, null))), $this->token, $this->request, null, $firewallName);
+        return new LoginSuccessEvent(new DummyAuthenticator(), new SelfValidatingPassport(new UserBadge('test', static fn ($username) => new InMemoryUser($username, null))), $this->token, $this->request, null, $firewallName);
     }
 
     private function configurePreviousSession()
     {
-        $session = $this->createMock(SessionInterface::class);
-        $session->expects($this->any())
-            ->method('getName')
-            ->willReturn('test_session_name');
+        $sessionStorage = new MockArraySessionStorage('test_session_name');
+        $session = new Session($sessionStorage);
         $this->request->setSession($session);
         $this->request->cookies->set('test_session_name', 'session_cookie_val');
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/UserCheckerListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/UserCheckerListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/UserCheckerListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/UserCheckerListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,13 +16,13 @@
 use Symfony\Component\Security\Core\Event\AuthenticationSuccessEvent;
 use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Core\User\UserCheckerInterface;
-use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\PreAuthenticatedUserBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
 use Symfony\Component\Security\Http\Authenticator\Token\PostAuthenticationToken;
 use Symfony\Component\Security\Http\Event\CheckPassportEvent;
 use Symfony\Component\Security\Http\EventListener\UserCheckerListener;
+use Symfony\Component\Security\Http\Tests\Fixtures\DummyAuthenticator;
 
 class UserCheckerListenerTest extends TestCase
 {
@@ -62,7 +62,7 @@
     {
         $passport ??= new SelfValidatingPassport(new UserBadge('test', fn () => $this->user));
 
-        return new CheckPassportEvent($this->createMock(AuthenticatorInterface::class), $passport);
+        return new CheckPassportEvent(new DummyAuthenticator(), $passport);
     }
 
     private function createAuthenticationSuccessEvent()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/UserProviderListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/UserProviderListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/UserProviderListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/EventListener/UserProviderListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,11 +14,11 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Security\Core\User\InMemoryUser;
 use Symfony\Component\Security\Core\User\InMemoryUserProvider;
-use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
 use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
 use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
 use Symfony\Component\Security\Http\Event\CheckPassportEvent;
 use Symfony\Component\Security\Http\EventListener\UserProviderListener;
+use Symfony\Component\Security\Http\Tests\Fixtures\DummyAuthenticator;
 
 class UserProviderListenerTest extends TestCase
 {
@@ -35,7 +35,7 @@
     {
         $passport = new SelfValidatingPassport(new UserBadge('wouter'));
 
-        $this->listener->checkPassport(new CheckPassportEvent($this->createMock(AuthenticatorInterface::class), $passport));
+        $this->listener->checkPassport(new CheckPassportEvent(new DummyAuthenticator(), $passport));
 
         $user = new InMemoryUser('wouter', null);
         $this->userProvider->createUser($user);
@@ -48,13 +48,13 @@
     public function testNotOverrideUserLoader($passport)
     {
         $badgeBefore = $passport->hasBadge(UserBadge::class) ? $passport->getBadge(UserBadge::class) : null;
-        $this->listener->checkPassport(new CheckPassportEvent($this->createMock(AuthenticatorInterface::class), $passport));
+        $this->listener->checkPassport(new CheckPassportEvent(new DummyAuthenticator(), $passport));
 
         $this->assertEquals($passport->hasBadge(UserBadge::class) ? $passport->getBadge(UserBadge::class) : null, $badgeBefore);
     }
 
     public static function provideCompletePassports()
     {
-        yield [new SelfValidatingPassport(new UserBadge('wouter', function () {}))];
+        yield [new SelfValidatingPassport(new UserBadge('wouter', static function () {}))];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/AccessListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/AccessListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/AccessListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/AccessListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,6 +24,7 @@
 use Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter;
 use Symfony\Component\Security\Core\Exception\AccessDeniedException;
 use Symfony\Component\Security\Core\User\InMemoryUser;
+use Symfony\Component\Security\Http\AccessMap;
 use Symfony\Component\Security\Http\AccessMapInterface;
 use Symfony\Component\Security\Http\Event\LazyResponseEvent;
 use Symfony\Component\Security\Http\Firewall\AccessListener;
@@ -43,18 +44,14 @@
             ->willReturn([['foo' => 'bar'], null])
         ;
 
-        $token = new class() extends AbstractToken {
+        $token = new class extends AbstractToken {
             public function getCredentials(): mixed
             {
             }
         };
 
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $tokenStorage
-            ->expects($this->any())
-            ->method('getToken')
-            ->willReturn($token)
-        ;
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($token);
 
         $accessDecisionManager = $this->createMock(AccessDecisionManagerInterface::class);
         $accessDecisionManager
@@ -70,7 +67,7 @@
             $accessMap
         );
 
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
     }
 
     public function testHandleWhenThereIsNoAccessMapEntryMatchingTheRequest()
@@ -93,11 +90,11 @@
 
         $listener = new AccessListener(
             $tokenStorage,
-            $this->createMock(AccessDecisionManagerInterface::class),
+            $this->createStub(AccessDecisionManagerInterface::class),
             $accessMap
         );
 
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
     }
 
     public function testHandleWhenAccessMapReturnsEmptyAttributes()
@@ -120,11 +117,11 @@
 
         $listener = new AccessListener(
             $tokenStorage,
-            $this->createMock(AccessDecisionManagerInterface::class),
+            $this->createStub(AccessDecisionManagerInterface::class),
             $accessMap
         );
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         $listener(new LazyResponseEvent($event));
     }
@@ -155,7 +152,7 @@
             false
         );
 
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
     }
 
     public function testHandleWhenPublicAccessIsAllowed()
@@ -183,7 +180,7 @@
             false
         );
 
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
     }
 
     public function testHandleWhenPublicAccessWhileAuthenticated()
@@ -213,10 +210,10 @@
             false
         );
 
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
     }
 
-    public function testHandleMWithultipleAttributesShouldBeHandledAsAnd()
+    public function testHandleWithMultipleAttributesShouldBeHandledAsAnd()
     {
         $request = new Request();
 
@@ -263,8 +260,8 @@
             ->willReturn([[AuthenticatedVoter::PUBLIC_ACCESS], null])
         ;
 
-        $listener = new AccessListener($tokenStorage, $this->createMock(AccessDecisionManagerInterface::class), $accessMap, false);
-        $listener(new LazyResponseEvent(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST)));
+        $listener = new AccessListener($tokenStorage, $this->createStub(AccessDecisionManagerInterface::class), $accessMap, false);
+        $listener(new LazyResponseEvent(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST)));
     }
 
     public function testConstructWithTrueExceptionOnNoToken()
@@ -272,12 +269,10 @@
         $tokenStorage = $this->createMock(TokenStorageInterface::class);
         $tokenStorage->expects($this->never())->method(self::anything());
 
-        $accessMap = $this->createMock(AccessMapInterface::class);
-
         $this->expectExceptionObject(
             new \LogicException('Argument $exceptionOnNoToken of "Symfony\Component\Security\Http\Firewall\AccessListener::__construct()" must be set to "false".')
         );
 
-        new AccessListener($tokenStorage, $this->createMock(AccessDecisionManagerInterface::class), $accessMap, true);
+        new AccessListener($tokenStorage, $this->createStub(AccessDecisionManagerInterface::class), new AccessMap(), true);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ChannelListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ChannelListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ChannelListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ChannelListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,29 +15,20 @@
 use Symfony\Component\HttpFoundation\HeaderBag;
 use Symfony\Component\HttpFoundation\RedirectResponse;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\RequestMatcher\SchemeRequestMatcher;
 use Symfony\Component\HttpKernel\Event\RequestEvent;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\Security\Http\AccessMapInterface;
+use Symfony\Component\Security\Http\AccessMap;
 use Symfony\Component\Security\Http\Firewall\ChannelListener;
 
 class ChannelListenerTest extends TestCase
 {
     public function testHandleWithNotSecuredRequestAndHttpChannel()
     {
-        $request = $this->createMock(Request::class);
-        $request
-            ->expects($this->any())
-            ->method('isSecure')
-            ->willReturn(false)
-        ;
-
-        $accessMap = $this->createMock(AccessMapInterface::class);
-        $accessMap
-            ->expects($this->any())
-            ->method('getPatterns')
-            ->with($this->equalTo($request))
-            ->willReturn([[], 'http'])
-        ;
+        $request = Request::create('http://symfony.com');
+
+        $accessMap = new AccessMap();
+        $accessMap->add(new SchemeRequestMatcher('https'), [], 'http');
 
         $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
@@ -49,20 +40,10 @@
 
     public function testHandleWithSecuredRequestAndHttpsChannel()
     {
-        $request = $this->createMock(Request::class);
-        $request
-            ->expects($this->any())
-            ->method('isSecure')
-            ->willReturn(true)
-        ;
-
-        $accessMap = $this->createMock(AccessMapInterface::class);
-        $accessMap
-            ->expects($this->any())
-            ->method('getPatterns')
-            ->with($this->equalTo($request))
-            ->willReturn([[], 'https'])
-        ;
+        $request = Request::create('https://symfony.com');
+
+        $accessMap = new AccessMap();
+        $accessMap->add(new SchemeRequestMatcher('http'), [], 'https');
 
         $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
@@ -74,75 +55,45 @@
 
     public function testHandleWithNotSecuredRequestAndHttpsChannel()
     {
-        $request = $this->createMock(Request::class);
-        $request
-            ->expects($this->any())
-            ->method('isSecure')
-            ->willReturn(false)
-        ;
-
-        $accessMap = $this->createMock(AccessMapInterface::class);
-        $accessMap
-            ->expects($this->any())
-            ->method('getPatterns')
-            ->with($this->equalTo($request))
-            ->willReturn([[], 'https'])
-        ;
+        $request = Request::create('http://symfony.com');
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $accessMap = new AccessMap();
+        $accessMap->add(new SchemeRequestMatcher('http'), [], 'https');
+
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         $listener = new ChannelListener($accessMap);
         $listener($event);
 
         $response = $event->getResponse();
         $this->assertInstanceOf(RedirectResponse::class, $response);
-        $this->assertEquals('https://', $response->getTargetUrl());
+        $this->assertEquals('https://symfony.com/', $response->getTargetUrl());
     }
 
     public function testHandleWithSecuredRequestAndHttpChannel()
     {
-        $request = $this->createMock(Request::class);
-        $request
-            ->expects($this->any())
-            ->method('isSecure')
-            ->willReturn(true)
-        ;
-
-        $accessMap = $this->createMock(AccessMapInterface::class);
-        $accessMap
-            ->expects($this->any())
-            ->method('getPatterns')
-            ->with($this->equalTo($request))
-            ->willReturn([[], 'http'])
-        ;
+        $request = Request::create('https://symfony.com');
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $accessMap = new AccessMap();
+        $accessMap->add(new SchemeRequestMatcher('https'), [], 'http');
+
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         $listener = new ChannelListener($accessMap);
         $listener($event);
 
         $response = $event->getResponse();
         $this->assertInstanceOf(RedirectResponse::class, $response);
-        $this->assertEquals('http://', $response->getTargetUrl());
+        $this->assertEquals('http://symfony.com/', $response->getTargetUrl());
     }
 
     public function testSupportsWithoutHeaders()
     {
-        $request = $this->createMock(Request::class);
-        $request
-            ->expects($this->any())
-            ->method('isSecure')
-            ->willReturn(false)
-        ;
+        $request = Request::create('http://symfony.com');
         $request->headers = new HeaderBag();
 
-        $accessMap = $this->createMock(AccessMapInterface::class);
-        $accessMap
-            ->expects($this->any())
-            ->method('getPatterns')
-            ->with($this->equalTo($request))
-            ->willReturn([[], 'https'])
-        ;
+        $accessMap = new AccessMap();
+        $accessMap->add(new SchemeRequestMatcher('http'), [], 'https');
 
         $listener = new ChannelListener($accessMap);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ContextListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ContextListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ContextListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ContextListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,6 @@
 use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpFoundation\Session\Session;
-use Symfony\Component\HttpFoundation\Session\SessionInterface;
 use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
 use Symfony\Component\HttpKernel\Event\RequestEvent;
 use Symfony\Component\HttpKernel\Event\ResponseEvent;
@@ -46,7 +45,7 @@
         $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionMessage('$contextKey must not be empty');
         new ContextListener(
-            $this->createMock(TokenStorageInterface::class),
+            new TokenStorage(),
             [],
             ''
         );
@@ -77,7 +76,7 @@
         $this->expectExceptionMessage('Cannot authenticate a "Symfony\Component\Security\Http\Tests\Fixtures\NullUserToken" token because it doesn\'t store a user.');
 
         $listener->authenticate(new RequestEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             $request,
             HttpKernelInterface::MAIN_REQUEST,
         ));
@@ -127,7 +126,7 @@
         $request->setSession($session);
 
         $event = new ResponseEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             $request,
             HttpKernelInterface::MAIN_REQUEST,
             new Response()
@@ -146,7 +145,7 @@
         $request->setSession($session);
 
         $event = new ResponseEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             $request,
             HttpKernelInterface::MAIN_REQUEST,
             new Response()
@@ -164,12 +163,8 @@
     public function testInvalidTokenInSession($token)
     {
         $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $session = $this->createMock(SessionInterface::class);
-        $session->expects($this->any())->method('getName')->willReturn('SESSIONNAME');
-        $session->expects($this->any())
-            ->method('get')
-            ->with('_security_key123')
-            ->willReturn($token);
+        $session = new Session(new MockArraySessionStorage('SESSIONNAME'));
+        $session->set('_security_key123', $token);
         $request = new Request([], [], [], ['SESSIONNAME' => true]);
         $request->setSession($session);
 
@@ -178,7 +173,7 @@
             ->with(null);
 
         $listener = new ContextListener($tokenStorage, [], 'key123');
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
     }
 
     public static function provideInvalidToken()
@@ -194,7 +189,7 @@
 
     public function testHandleAddsKernelResponseListener()
     {
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
+        $tokenStorage = new TokenStorage();
         $dispatcher = $this->createMock(EventDispatcherInterface::class);
         $listener = new ContextListener($tokenStorage, [], 'key123', null, $dispatcher);
 
@@ -202,14 +197,13 @@
             ->method('addListener')
             ->with(KernelEvents::RESPONSE, $listener->onKernelResponse(...));
 
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST));
     }
 
     public function testOnKernelResponseListenerRemovesItself()
     {
-        $session = $this->createMock(SessionInterface::class);
-        $session->expects($this->any())->method('getName')->willReturn('SESSIONNAME');
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
+        $session = new Session(new MockArraySessionStorage('SESSIONNAME'));
+        $tokenStorage = new TokenStorage();
         $dispatcher = $this->createMock(EventDispatcherInterface::class);
 
         $listener = new ContextListener($tokenStorage, [], 'key123', null, $dispatcher);
@@ -218,7 +212,7 @@
         $request->attributes->set('_security_firewall_run', '_security_key123');
         $request->setSession($session);
 
-        $event = new ResponseEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, new Response());
+        $event = new ResponseEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, new Response());
 
         $dispatcher->expects($this->once())
             ->method('removeListener')
@@ -235,7 +229,7 @@
         $tokenStorage->expects($this->once())->method('setToken')->with(null);
 
         $listener = new ContextListener($tokenStorage, [], 'key123');
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
     }
 
     public function testIfTokenIsDeauthenticated()
@@ -261,7 +255,7 @@
         $request->cookies->set('MOCKSESSID', true);
 
         $listener = new ContextListener($tokenStorage, [new NotSupportingUserProvider(true), new NotSupportingUserProvider(false), new SupportingUserProvider($refreshedUser)], 'context_key');
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
 
         $this->assertInstanceOf(CustomToken::class, $tokenStorage->getToken());
         $this->assertSame($refreshedUser, $tokenStorage->getToken()->getUser());
@@ -325,7 +319,7 @@
 
         $tokenStorage = new TokenStorage();
         $listener = new ContextListener($tokenStorage, [], 'context_key', null, null, null, $tokenStorage->getToken(...));
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
 
         $this->assertSame($usageIndex, $session->getUsageIndex());
     }
@@ -347,9 +341,9 @@
         $tokenStorage = new TokenStorage();
 
         $listener = new ContextListener($tokenStorage, [], 'context_key', null, null, null, $tokenStorage->getToken(...));
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
 
-        $listener->onKernelResponse(new ResponseEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, new Response()));
+        $listener->onKernelResponse(new ResponseEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, new Response()));
     }
 
     public function testOnKernelResponseRemoveListener()
@@ -364,7 +358,7 @@
         $request->setSession($session);
 
         $dispatcher = new EventDispatcher();
-        $httpKernel = $this->createMock(HttpKernelInterface::class);
+        $httpKernel = $this->createStub(HttpKernelInterface::class);
 
         $listener = new ContextListener($tokenStorage, [], 'session', null, $dispatcher, null, $tokenStorage->getToken(...));
         $this->assertEmpty($dispatcher->getListeners());
@@ -389,7 +383,7 @@
             $session->set('_security_session', $original);
         }
 
-        $factories = ['request_stack' => fn () => $requestStack];
+        $factories = ['request_stack' => static fn () => $requestStack];
         $tokenStorage = new UsageTrackingTokenStorage(new TokenStorage(), new class($factories) implements ContainerInterface {
             use ServiceLocatorTrait;
         });
@@ -402,7 +396,7 @@
         $usageIndex = $session->getUsageIndex();
 
         $event = new ResponseEvent(
-            $this->createMock(HttpKernelInterface::class),
+            $this->createStub(HttpKernelInterface::class),
             $request,
             HttpKernelInterface::MAIN_REQUEST,
             new Response()
@@ -435,7 +429,7 @@
         $tokenStorage = new TokenStorage();
         $usageIndex = $session->getUsageIndex();
 
-        $factories = ['request_stack' => fn () => $requestStack];
+        $factories = ['request_stack' => static fn () => $requestStack];
         $tokenStorage = new UsageTrackingTokenStorage($tokenStorage, new class($factories) implements ContainerInterface {
             use ServiceLocatorTrait;
         });
@@ -443,7 +437,7 @@
 
         $listener = new ContextListener($tokenStorage, $userProviders, 'context_key', null, null, null, $sessionTrackerEnabler);
 
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
 
         if (null !== $user) {
             ++$usageIndex;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,8 +19,9 @@
 use Symfony\Component\HttpKernel\Exception\HttpException;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolverInterface;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
-use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
 use Symfony\Component\Security\Core\Exception\AccessDeniedException;
 use Symfony\Component\Security\Core\Exception\AuthenticationException;
 use Symfony\Component\Security\Core\Exception\LogoutException;
@@ -117,8 +118,8 @@
      */
     public function testAccessDeniedExceptionFullFledgedAndWithoutAccessDeniedHandlerAndWithErrorPage(\Exception $exception, ?\Exception $eventException = null)
     {
-        $kernel = $this->createMock(HttpKernelInterface::class);
-        $kernel->expects($this->once())->method('handle')->willReturn(new Response('Unauthorized', 401));
+        $kernel = $this->createStub(HttpKernelInterface::class);
+        $kernel->method('handle')->willReturn(new Response('Unauthorized', 401));
 
         $event = $this->createEvent($exception, $kernel);
 
@@ -160,7 +161,7 @@
         $event = $this->createEvent($exception);
 
         $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $tokenStorage->expects($this->once())->method('getToken')->willReturn($this->createMock(TokenInterface::class));
+        $tokenStorage->expects($this->once())->method('getToken')->willReturn(new NullToken());
 
         $listener = $this->createExceptionListener($tokenStorage, $this->createTrustResolver(false), null, $this->createEntryPoint());
         $listener->onKernelException($event);
@@ -221,7 +222,7 @@
 
     private function createEvent(\Exception $exception, $kernel = null)
     {
-        $kernel ??= $this->createMock(HttpKernelInterface::class);
+        $kernel ??= $this->createStub(HttpKernelInterface::class);
 
         return new ExceptionEvent($kernel, Request::create('/'), HttpKernelInterface::MAIN_REQUEST, $exception);
     }
@@ -229,9 +230,9 @@
     private function createExceptionListener(?TokenStorageInterface $tokenStorage = null, ?AuthenticationTrustResolverInterface $trustResolver = null, ?HttpUtils $httpUtils = null, ?AuthenticationEntryPointInterface $authenticationEntryPoint = null, $errorPage = null, ?AccessDeniedHandlerInterface $accessDeniedHandler = null)
     {
         return new ExceptionListener(
-            $tokenStorage ?? $this->createMock(TokenStorageInterface::class),
-            $trustResolver ?? $this->createMock(AuthenticationTrustResolverInterface::class),
-            $httpUtils ?? $this->createMock(HttpUtils::class),
+            $tokenStorage ?? new TokenStorage(),
+            $trustResolver ?? $this->createStub(AuthenticationTrustResolverInterface::class),
+            $httpUtils ?? new HttpUtils(),
             'key',
             $authenticationEntryPoint,
             $errorPage,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,12 +13,14 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Event\RequestEvent;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
-use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
 use Symfony\Component\Security\Core\Exception\LogoutException;
 use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
 use Symfony\Component\Security\Http\Event\LogoutEvent;
@@ -30,10 +32,10 @@
     public function testHandleUnmatchedPath()
     {
         $dispatcher = $this->getEventDispatcher();
-        [$listener, , $httpUtils, $options] = $this->getListener($dispatcher);
+        [$listener, , $httpUtils, $options] = $this->getListener(null, $this->createMock(HttpUtils::class), $dispatcher);
 
         $logoutEventDispatched = false;
-        $dispatcher->addListener(LogoutEvent::class, function () use (&$logoutEventDispatched) {
+        $dispatcher->addListener(LogoutEvent::class, static function () use (&$logoutEventDispatched) {
             $logoutEventDispatched = true;
         });
 
@@ -44,17 +46,17 @@
             ->with($request, $options['logout_path'])
             ->willReturn(false);
 
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
 
         $this->assertFalse($logoutEventDispatched, 'LogoutEvent should not have been dispatched.');
     }
 
     public function testHandleMatchedPathWithCsrfValidation()
     {
-        $tokenManager = $this->getTokenManager();
+        $tokenManager = $this->createMock(CsrfTokenManagerInterface::class);
         $dispatcher = $this->getEventDispatcher();
 
-        [$listener, $tokenStorage, $httpUtils, $options] = $this->getListener($dispatcher, $tokenManager);
+        [$listener, $tokenStorage, $httpUtils, $options] = $this->getListener($this->createMock(TokenStorageInterface::class), $this->createMock(HttpUtils::class), $dispatcher, $tokenManager);
 
         $request = new Request();
         $request->query->set('_csrf_token', 'token');
@@ -69,7 +71,7 @@
             ->willReturn(true);
 
         $response = new Response();
-        $dispatcher->addListener(LogoutEvent::class, function (LogoutEvent $event) use ($response) {
+        $dispatcher->addListener(LogoutEvent::class, static function (LogoutEvent $event) use ($response) {
             $event->setResponse($response);
         });
 
@@ -81,7 +83,7 @@
             ->method('setToken')
             ->with(null);
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         $listener($event);
 
@@ -91,7 +93,7 @@
     public function testHandleMatchedPathWithoutCsrfValidation()
     {
         $dispatcher = $this->getEventDispatcher();
-        [$listener, $tokenStorage, $httpUtils, $options] = $this->getListener($dispatcher);
+        [$listener, $tokenStorage, $httpUtils, $options] = $this->getListener($this->createMock(TokenStorageInterface::class), $this->createMock(HttpUtils::class), $dispatcher);
 
         $request = new Request();
 
@@ -101,7 +103,7 @@
             ->willReturn(true);
 
         $response = new Response();
-        $dispatcher->addListener(LogoutEvent::class, function (LogoutEvent $event) use ($response) {
+        $dispatcher->addListener(LogoutEvent::class, static function (LogoutEvent $event) use ($response) {
             $event->setResponse($response);
         });
 
@@ -113,7 +115,7 @@
             ->method('setToken')
             ->with(null);
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         $listener($event);
 
@@ -124,7 +126,7 @@
     {
         $this->expectException(\RuntimeException::class);
 
-        [$listener, , $httpUtils, $options] = $this->getListener();
+        [$listener, , $httpUtils, $options] = $this->getListener(null, $this->createMock(HttpUtils::class));
 
         $request = new Request();
 
@@ -133,7 +135,7 @@
             ->with($request, $options['logout_path'])
             ->willReturn(true);
 
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
     }
 
     /**
@@ -144,7 +146,7 @@
         $this->expectException(LogoutException::class);
         $tokenManager = $this->getTokenManager();
 
-        [$listener, , $httpUtils, $options] = $this->getListener(null, $tokenManager);
+        [$listener, , $httpUtils, $options] = $this->getListener(null, $this->createMock(HttpUtils::class), null, $tokenManager);
 
         $request = new Request();
         if (null !== $invalidToken) {
@@ -160,7 +162,7 @@
             ->method('isTokenValid')
             ->willReturn(false);
 
-        $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
+        $listener(new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST));
     }
 
     public static function provideInvalidCsrfTokens(): array
@@ -174,24 +176,26 @@
 
     private function getTokenManager()
     {
-        return $this->createMock(CsrfTokenManagerInterface::class);
+        return $this->createStub(CsrfTokenManagerInterface::class);
     }
 
     private function getTokenStorage()
     {
-        return $this->createMock(TokenStorageInterface::class);
+        return new TokenStorage();
     }
 
     private function getHttpUtils()
     {
-        return $this->createMock(HttpUtils::class);
+        return new HttpUtils();
     }
 
-    private function getListener($eventDispatcher = null, $tokenManager = null)
+    private function getListener(?TokenStorageInterface $tokenStorage = null, ?HttpUtils $httpUtils = null, ?EventDispatcherInterface $eventDispatcher = null, ?CsrfTokenManagerInterface $tokenManager = null)
     {
+        $tokenStorage ??= $this->getTokenStorage();
+        $httpUtils ??= $this->getHttpUtils();
         $listener = new LogoutListener(
-            $tokenStorage = $this->getTokenStorage(),
-            $httpUtils = $this->getHttpUtils(),
+            $tokenStorage,
+            $httpUtils,
             $eventDispatcher ?? $this->getEventDispatcher(),
             $options = [
                 'csrf_parameter' => '_csrf_token',
@@ -212,6 +216,6 @@
 
     private function getToken()
     {
-        return $this->createMock(TokenInterface::class);
+        return new NullToken();
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/SwitchUserListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/SwitchUserListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/SwitchUserListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Firewall/SwitchUserListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,12 +11,12 @@
 
 namespace Symfony\Component\Security\Http\Tests\Firewall;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\RedirectResponse;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\Event\RequestEvent;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
 use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 use Symfony\Component\Security\Core\Authentication\Token\SwitchUserToken;
 use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
@@ -25,6 +25,7 @@
 use Symfony\Component\Security\Core\Exception\AccessDeniedException;
 use Symfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException;
 use Symfony\Component\Security\Core\User\InMemoryUser;
+use Symfony\Component\Security\Core\User\InMemoryUserChecker;
 use Symfony\Component\Security\Core\User\InMemoryUserProvider;
 use Symfony\Component\Security\Core\User\UserCheckerInterface;
 use Symfony\Component\Security\Http\Event\SwitchUserEvent;
@@ -36,8 +37,8 @@
 {
     private TokenStorage $tokenStorage;
     private InMemoryUserProvider $userProvider;
-    private MockObject&UserCheckerInterface $userChecker;
-    private MockObject&AccessDecisionManagerInterface $accessDecisionManager;
+    private UserCheckerInterface $userChecker;
+    private AccessDecisionManagerInterface $accessDecisionManager;
     private Request $request;
     private RequestEvent $event;
 
@@ -45,10 +46,10 @@
     {
         $this->tokenStorage = new TokenStorage();
         $this->userProvider = new InMemoryUserProvider(['kuba' => []]);
-        $this->userChecker = $this->createMock(UserCheckerInterface::class);
-        $this->accessDecisionManager = $this->createMock(AccessDecisionManagerInterface::class);
+        $this->userChecker = new InMemoryUserChecker();
+        $this->accessDecisionManager = $this->createStub(AccessDecisionManagerInterface::class);
         $this->request = new Request();
-        $this->event = new RequestEvent($this->createMock(HttpKernelInterface::class), $this->request, HttpKernelInterface::MAIN_REQUEST);
+        $this->event = new RequestEvent($this->createStub(HttpKernelInterface::class), $this->request, HttpKernelInterface::MAIN_REQUEST);
     }
 
     public function testFirewallNameIsRequired()
@@ -105,13 +106,26 @@
         $this->assertSame($originalToken, $this->tokenStorage->getToken());
     }
 
+    public function testExitUserDoesNotRedirectToTargetRoute()
+    {
+        $originalToken = new UsernamePasswordToken(new InMemoryUser('username', '', []), 'key', []);
+        $this->tokenStorage->setToken(new SwitchUserToken(new InMemoryUser('username', '', ['ROLE_USER']), 'key', ['ROLE_USER'], $originalToken));
+
+        $this->request->query->set('_switch_user', SwitchUserListener::EXIT_VALUE);
+
+        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $this->accessDecisionManager, null, '_switch_user', 'ROLE_ALLOWED_TO_SWITCH', null, false, $this->createStub(UrlGeneratorInterface::class), 'whatever');
+        $listener($this->event);
+
+        $this->assertInstanceOf(RedirectResponse::class, $this->event->getResponse());
+        $this->assertSame($this->request->getUri(), $this->event->getResponse()->getTargetUrl());
+    }
+
     public function testExitUserDispatchesEventWithRefreshedUser()
     {
         $originalUser = new InMemoryUser('username', null);
         $refreshedUser = new InMemoryUser('username', null);
-        $userProvider = $this->createMock(InMemoryUserProvider::class);
+        $userProvider = $this->createStub(InMemoryUserProvider::class);
         $userProvider
-            ->expects($this->any())
             ->method('refreshUser')
             ->with($this->identicalTo($originalUser))
             ->willReturn($refreshedUser);
@@ -124,7 +138,7 @@
             ->expects($this->once())
             ->method('dispatch')
             ->with(
-                $this->callback(fn (SwitchUserEvent $event) => $event->getTargetUser() === $refreshedUser),
+                $this->callback(static fn (SwitchUserEvent $event) => $event->getTargetUser() === $refreshedUser),
                 SecurityEvents::SWITCH_USER
             )
         ;
@@ -142,11 +156,12 @@
         $this->tokenStorage->setToken($token);
         $this->request->query->set('_switch_user', 'kuba');
 
-        $this->accessDecisionManager->expects($this->once())
+        $accessDecisionManager = $this->createMock(AccessDecisionManagerInterface::class);
+        $accessDecisionManager->expects($this->once())
             ->method('decide')->with($token, ['ROLE_ALLOWED_TO_SWITCH'])
             ->willReturn(false);
 
-        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $this->accessDecisionManager);
+        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $accessDecisionManager);
         $listener($this->event);
     }
 
@@ -158,10 +173,11 @@
         $this->tokenStorage->setToken($token);
         $this->request->query->set('_switch_user', 'not-existing');
 
-        $this->accessDecisionManager->expects($this->never())
+        $accessDecisionManager = $this->createMock(AccessDecisionManagerInterface::class);
+        $accessDecisionManager->expects($this->never())
             ->method('decide');
 
-        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $this->accessDecisionManager);
+        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $accessDecisionManager);
         $listener($this->event);
     }
 
@@ -172,14 +188,16 @@
         $this->tokenStorage->setToken($token);
         $this->request->query->set('_switch_user', 'kuba');
 
-        $this->accessDecisionManager->expects($this->once())
-            ->method('decide')->with($token, ['ROLE_ALLOWED_TO_SWITCH'], $this->callback(fn ($user) => 'kuba' === $user->getUserIdentifier()))
+        $accessDecisionManager = $this->createMock(AccessDecisionManagerInterface::class);
+        $accessDecisionManager->expects($this->once())
+            ->method('decide')->with($token, ['ROLE_ALLOWED_TO_SWITCH'], $this->callback(static fn ($user) => 'kuba' === $user->getUserIdentifier()))
             ->willReturn(true);
 
-        $this->userChecker->expects($this->once())
-            ->method('checkPostAuth')->with($this->callback(fn ($user) => 'kuba' === $user->getUserIdentifier()));
+        $userChecker = $this->createMock(UserCheckerInterface::class);
+        $userChecker->expects($this->once())
+            ->method('checkPostAuth')->with($this->callback(static fn ($user) => 'kuba' === $user->getUserIdentifier()));
 
-        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $this->accessDecisionManager);
+        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $userChecker, 'provider123', $accessDecisionManager);
         $listener($this->event);
 
         $this->assertSame([], $this->request->query->all());
@@ -197,18 +215,20 @@
 
         $this->request->query->set('_switch_user', 'kuba');
 
-        $targetsUser = $this->callback(fn ($user) => 'kuba' === $user->getUserIdentifier());
-        $this->accessDecisionManager->expects($this->once())
-            ->method('decide')->with(self::callback(function (TokenInterface $token) use ($originalToken, $tokenStorage) {
+        $targetsUser = $this->callback(static fn ($user) => 'kuba' === $user->getUserIdentifier());
+        $accessDecisionManager = $this->createMock(AccessDecisionManagerInterface::class);
+        $accessDecisionManager->expects($this->once())
+            ->method('decide')->with(self::callback(static function (TokenInterface $token) use ($originalToken, $tokenStorage) {
                 // the token storage should also contain the original token for voters depending on it
                 return $token === $originalToken && $tokenStorage->getToken() === $originalToken;
             }), ['ROLE_ALLOWED_TO_SWITCH'], $targetsUser)
             ->willReturn(true);
 
-        $this->userChecker->expects($this->once())
+        $userChecker = $this->createMock(UserCheckerInterface::class);
+        $userChecker->expects($this->once())
             ->method('checkPostAuth')->with($targetsUser);
 
-        $listener = new SwitchUserListener($tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $this->accessDecisionManager, null, '_switch_user', 'ROLE_ALLOWED_TO_SWITCH', null, false);
+        $listener = new SwitchUserListener($tokenStorage, $this->userProvider, $userChecker, 'provider123', $accessDecisionManager, null, '_switch_user', 'ROLE_ALLOWED_TO_SWITCH', null, false);
         $listener($this->event);
 
         $this->assertSame([], $this->request->query->all());
@@ -227,14 +247,16 @@
 
         $this->userProvider->createUser($user = new InMemoryUser('0', null));
 
-        $this->accessDecisionManager->expects($this->once())
+        $accessDecisionManager = $this->createMock(AccessDecisionManagerInterface::class);
+        $accessDecisionManager->expects($this->once())
             ->method('decide')->with($token, ['ROLE_ALLOWED_TO_SWITCH'])
             ->willReturn(true);
 
-        $this->userChecker->expects($this->once())
-            ->method('checkPostAuth')->with($this->callback(fn ($argUser) => $user->isEqualTo($argUser)));
+        $userChecker = $this->createMock(UserCheckerInterface::class);
+        $userChecker->expects($this->once())
+            ->method('checkPostAuth')->with($this->callback(static fn ($argUser) => $user->isEqualTo($argUser)));
 
-        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $this->accessDecisionManager);
+        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $userChecker, 'provider123', $accessDecisionManager);
         $listener($this->event);
 
         $this->assertSame([], $this->request->query->all());
@@ -253,15 +275,17 @@
             'section' => 2,
         ]);
 
-        $targetsUser = $this->callback(fn ($user) => 'kuba' === $user->getUserIdentifier());
-        $this->accessDecisionManager->expects($this->once())
+        $targetsUser = $this->callback(static fn ($user) => 'kuba' === $user->getUserIdentifier());
+        $accessDecisionManager = $this->createMock(AccessDecisionManagerInterface::class);
+        $accessDecisionManager->expects($this->once())
             ->method('decide')->with($token, ['ROLE_ALLOWED_TO_SWITCH'], $targetsUser)
             ->willReturn(true);
 
-        $this->userChecker->expects($this->once())
+        $userChecker = $this->createMock(UserCheckerInterface::class);
+        $userChecker->expects($this->once())
             ->method('checkPostAuth')->with($targetsUser);
 
-        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $this->accessDecisionManager);
+        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $userChecker, 'provider123', $accessDecisionManager);
         $listener($this->event);
 
         $this->assertSame('page=3&section=2', $this->request->server->get('QUERY_STRING'));
@@ -279,8 +303,9 @@
         $this->tokenStorage->setToken($token);
         $this->request->query->set('_switch_user', 'kuba');
 
-        $this->accessDecisionManager->expects($this->any())
-            ->method('decide')->with($token, ['ROLE_ALLOWED_TO_SWITCH'], $this->callback(fn ($user) => 'kuba' === $user->getUserIdentifier()))
+        $accessDecisionManager = $this->createMock(AccessDecisionManagerInterface::class);
+        $accessDecisionManager->expects($this->once())
+            ->method('decide')->with($token, ['ROLE_ALLOWED_TO_SWITCH'], $this->callback(static fn ($user) => 'kuba' === $user->getUserIdentifier()))
             ->willReturn(true);
 
         $dispatcher = $this->createMock(EventDispatcherInterface::class);
@@ -288,7 +313,7 @@
             ->expects($this->once())
             ->method('dispatch')
             ->with(
-                $this->callback(function (SwitchUserEvent $event) use ($replacedToken) {
+                $this->callback(static function (SwitchUserEvent $event) use ($replacedToken) {
                     if ('kuba' !== $event->getTargetUser()->getUserIdentifier()) {
                         return false;
                     }
@@ -299,7 +324,7 @@
                 SecurityEvents::SWITCH_USER
             );
 
-        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $this->accessDecisionManager, null, '_switch_user', 'ROLE_ALLOWED_TO_SWITCH', $dispatcher);
+        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $accessDecisionManager, null, '_switch_user', 'ROLE_ALLOWED_TO_SWITCH', $dispatcher);
         $listener($this->event);
 
         $this->assertSame($replacedToken, $this->tokenStorage->getToken());
@@ -321,15 +346,17 @@
         $this->tokenStorage->setToken($token);
         $this->request->query->set('_switch_user', 'kuba');
 
-        $targetsUser = $this->callback(fn ($user) => 'kuba' === $user->getUserIdentifier());
-        $this->accessDecisionManager->expects($this->once())
+        $targetsUser = $this->callback(static fn ($user) => 'kuba' === $user->getUserIdentifier());
+        $accessDecisionManager = $this->createMock(AccessDecisionManagerInterface::class);
+        $accessDecisionManager->expects($this->once())
             ->method('decide')->with($token, ['ROLE_ALLOWED_TO_SWITCH'], $targetsUser)
             ->willReturn(true);
 
-        $this->userChecker->expects($this->once())
+        $userChecker = $this->createMock(UserCheckerInterface::class);
+        $userChecker->expects($this->once())
             ->method('checkPostAuth')->with($targetsUser);
 
-        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $this->accessDecisionManager, null, '_switch_user', 'ROLE_ALLOWED_TO_SWITCH', null, true);
+        $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $userChecker, 'provider123', $accessDecisionManager, null, '_switch_user', 'ROLE_ALLOWED_TO_SWITCH', null, true);
         $listener($this->event);
 
         $this->assertInstanceOf(UsernamePasswordToken::class, $this->tokenStorage->getToken());
@@ -340,9 +367,8 @@
     {
         $originalUser = new InMemoryUser('username', null);
         $refreshedOriginalUser = new InMemoryUser('username', null);
-        $userProvider = $this->createMock(InMemoryUserProvider::class);
+        $userProvider = $this->createStub(InMemoryUserProvider::class);
         $userProvider
-            ->expects($this->any())
             ->method('refreshUser')
             ->with($this->identicalTo($originalUser))
             ->willReturn($refreshedOriginalUser);
@@ -355,7 +381,7 @@
             ->expects($this->once())
             ->method('dispatch')
             ->with(
-                $this->callback(fn (SwitchUserEvent $event) => $event->getToken()->getUser() === $refreshedOriginalUser),
+                $this->callback(static fn (SwitchUserEvent $event) => $event->getToken()->getUser() === $refreshedOriginalUser),
                 SecurityEvents::SWITCH_USER
             )
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/FirewallMapTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/FirewallMapTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/FirewallMapTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/FirewallMapTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
             ->willReturn(false)
         ;
 
-        $map->add($notMatchingMatcher, [function () {}]);
+        $map->add($notMatchingMatcher, [static function () {}]);
 
         $matchingMatcher = $this->createMock(RequestMatcherInterface::class);
         $matchingMatcher
@@ -42,8 +42,8 @@
             ->with($this->equalTo($request))
             ->willReturn(true)
         ;
-        $theListener = function () {};
-        $theException = $this->createMock(ExceptionListener::class);
+        $theListener = static function () {};
+        $theException = $this->createStub(ExceptionListener::class);
 
         $map->add($matchingMatcher, [$theListener], $theException);
 
@@ -53,7 +53,7 @@
             ->method('matches')
         ;
 
-        $map->add($tooLateMatcher, [function () {}]);
+        $map->add($tooLateMatcher, [static function () {}]);
 
         [$listeners, $exception] = $map->getListeners($request);
 
@@ -75,10 +75,10 @@
             ->willReturn(false)
         ;
 
-        $map->add($notMatchingMatcher, [function () {}]);
+        $map->add($notMatchingMatcher, [static function () {}]);
 
-        $theListener = function () {};
-        $theException = $this->createMock(ExceptionListener::class);
+        $theListener = static function () {};
+        $theException = $this->createStub(ExceptionListener::class);
 
         $map->add(null, [$theListener], $theException);
 
@@ -88,7 +88,7 @@
             ->method('matches')
         ;
 
-        $map->add($tooLateMatcher, [function () {}]);
+        $map->add($tooLateMatcher, [static function () {}]);
 
         [$listeners, $exception] = $map->getListeners($request);
 
@@ -110,7 +110,7 @@
             ->willReturn(false)
         ;
 
-        $map->add($notMatchingMatcher, [function () {}]);
+        $map->add($notMatchingMatcher, [static function () {}]);
 
         [$listeners, $exception] = $map->getListeners($request);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/FirewallTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/FirewallTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/FirewallTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/FirewallTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,20 +12,22 @@
 namespace Symfony\Component\Security\Http\Tests;
 
 use PHPUnit\Framework\TestCase;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Event\RequestEvent;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\Security\Http\Firewall;
+use Symfony\Component\Security\Http\Firewall\AbstractListener;
 use Symfony\Component\Security\Http\Firewall\ExceptionListener;
+use Symfony\Component\Security\Http\Firewall\FirewallListenerInterface;
 use Symfony\Component\Security\Http\FirewallMapInterface;
 
 class FirewallTest extends TestCase
 {
     public function testOnKernelRequestRegistersExceptionListener()
     {
-        $dispatcher = $this->createMock(EventDispatcherInterface::class);
+        $dispatcher = new EventDispatcher();
 
         $listener = $this->createMock(ExceptionListener::class);
         $listener
@@ -34,7 +36,7 @@
             ->with($this->equalTo($dispatcher))
         ;
 
-        $request = $this->createMock(Request::class);
+        $request = new Request();
 
         $map = $this->createMock(FirewallMapInterface::class);
         $map
@@ -44,7 +46,7 @@
             ->willReturn([[], $listener, null])
         ;
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
 
         $firewall = new Firewall($map, $dispatcher);
         $firewall->onKernelRequest($event);
@@ -54,11 +56,11 @@
     {
         $called = [];
 
-        $first = function () use (&$called) {
+        $first = static function () use (&$called) {
             $called[] = 1;
         };
 
-        $second = function () use (&$called) {
+        $second = static function () use (&$called) {
             $called[] = 2;
         };
 
@@ -69,10 +71,10 @@
             ->willReturn([[$first, $second], null, null])
         ;
 
-        $event = new RequestEvent($this->createMock(HttpKernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST);
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST);
         $event->setResponse(new Response());
 
-        $firewall = new Firewall($map, $this->createMock(EventDispatcherInterface::class));
+        $firewall = new Firewall($map, new EventDispatcher());
         $firewall->onKernelRequest($event);
 
         $this->assertSame([1], $called);
@@ -87,14 +89,73 @@
         ;
 
         $event = new RequestEvent(
-            $this->createMock(HttpKernelInterface::class),
-            $this->createMock(Request::class),
+            $this->createStub(HttpKernelInterface::class),
+            new Request(),
             HttpKernelInterface::SUB_REQUEST
         );
 
-        $firewall = new Firewall($map, $this->createMock(EventDispatcherInterface::class));
+        $firewall = new Firewall($map, new EventDispatcher());
         $firewall->onKernelRequest($event);
 
         $this->assertFalse($event->hasResponse());
     }
+
+    public function testListenersAreCalled()
+    {
+        $calledListeners = [];
+
+        $callableListener = static function () use (&$calledListeners) { $calledListeners[] = 'callableListener'; };
+        $firewallListener = new class($calledListeners) implements FirewallListenerInterface {
+            public function __construct(private array &$calledListeners)
+            {
+            }
+
+            public function supports(Request $request): ?bool
+            {
+                return true;
+            }
+
+            public function authenticate(RequestEvent $event): void
+            {
+                $this->calledListeners[] = 'firewallListener';
+            }
+
+            public static function getPriority(): int
+            {
+                return 0;
+            }
+        };
+        $callableFirewallListener = new class($calledListeners) extends AbstractListener {
+            public function __construct(private array &$calledListeners)
+            {
+            }
+
+            public function supports(Request $request): ?bool
+            {
+                return true;
+            }
+
+            public function authenticate(RequestEvent $event): void
+            {
+                $this->calledListeners[] = 'callableFirewallListener';
+            }
+        };
+
+        $request = new Request();
+
+        $map = $this->createMock(FirewallMapInterface::class);
+        $map
+            ->expects($this->once())
+            ->method('getListeners')
+            ->with($this->equalTo($request))
+            ->willReturn([[$callableListener, $firewallListener, $callableFirewallListener], null, null])
+        ;
+
+        $event = new RequestEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST);
+
+        $firewall = new Firewall($map, new EventDispatcher());
+        $firewall->onKernelRequest($event);
+
+        $this->assertSame(['callableListener', 'firewallListener', 'callableFirewallListener'], $calledListeners);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Fixtures/CustomUser.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Fixtures/CustomUser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Fixtures/CustomUser.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Fixtures/CustomUser.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,59 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Security\Http\Tests\Fixtures;
+
+use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
+use Symfony\Component\Security\Core\User\UserInterface;
+
+final class CustomUser implements UserInterface, PasswordAuthenticatedUserInterface
+{
+    public function __construct(
+        private string $username,
+        private array $roles,
+        private ?string $password,
+        private ?bool $hashPassword,
+    ) {
+    }
+
+    public function getUserIdentifier(): string
+    {
+        return $this->username;
+    }
+
+    public function getRoles(): array
+    {
+        return $this->roles;
+    }
+
+    public function getPassword(): ?string
+    {
+        return $this->password ?? null;
+    }
+
+    public function eraseCredentials(): void
+    {
+    }
+
+    public function __serialize(): array
+    {
+        $data = (array) $this;
+        $passwordKey = \sprintf("\0%s\0password", self::class);
+
+        if ($this->hashPassword) {
+            $data[$passwordKey] = hash('crc32c', $this->password);
+        } elseif (null !== $this->hashPassword) {
+            unset($data[$passwordKey]);
+        }
+
+        return $data;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/HttpUtilsTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/HttpUtilsTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/HttpUtilsTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/HttpUtilsTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,13 +13,17 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Session\SessionInterface;
+use Symfony\Component\HttpFoundation\Session\Session;
+use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
 use Symfony\Component\Routing\Exception\MethodNotAllowedException;
 use Symfony\Component\Routing\Exception\ResourceNotFoundException;
+use Symfony\Component\Routing\Generator\UrlGenerator;
 use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
 use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
 use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
 use Symfony\Component\Routing\RequestContext;
+use Symfony\Component\Routing\Route;
+use Symfony\Component\Routing\RouteCollection;
 use Symfony\Component\Security\Http\HttpUtils;
 use Symfony\Component\Security\Http\SecurityRequestAttributes;
 
@@ -139,18 +143,16 @@
 
     public function testCreateRedirectResponseWithRouteName()
     {
-        $utils = new HttpUtils($urlGenerator = $this->createMock(UrlGeneratorInterface::class));
+        $utils = new HttpUtils($urlGenerator = $this->createStub(UrlGeneratorInterface::class));
 
         $urlGenerator
-            ->expects($this->any())
             ->method('generate')
             ->with('foobar', [], UrlGeneratorInterface::ABSOLUTE_URL)
             ->willReturn('http://localhost/foo/bar')
         ;
         $urlGenerator
-            ->expects($this->any())
             ->method('getContext')
-            ->willReturn($this->createMock(RequestContext::class))
+            ->willReturn(new RequestContext())
         ;
 
         $response = $utils->createRedirectResponse($this->getRequest(), 'foobar');
@@ -181,9 +183,8 @@
             ->willReturn('/foo/bar')
         ;
         $urlGenerator
-            ->expects($this->any())
             ->method('getContext')
-            ->willReturn($this->createMock(RequestContext::class))
+            ->willReturn(new RequestContext())
         ;
 
         $subRequest = $utils->createRequest($this->getRequest(), 'foobar');
@@ -193,7 +194,7 @@
 
     public function testCreateRequestWithAbsoluteUrl()
     {
-        $utils = new HttpUtils($this->createMock(UrlGeneratorInterface::class));
+        $utils = new HttpUtils($this->createStub(UrlGeneratorInterface::class));
         $subRequest = $utils->createRequest($this->getRequest(), 'http://symfony.com/');
 
         $this->assertEquals('/', $subRequest->getPathInfo());
@@ -202,7 +203,7 @@
     public function testCreateRequestPassesSessionToTheNewRequest()
     {
         $request = $this->getRequest();
-        $request->setSession($session = $this->createMock(SessionInterface::class));
+        $request->setSession($session = new Session(new MockArraySessionStorage()));
 
         $utils = new HttpUtils($this->getUrlGenerator());
         $subRequest = $utils->createRequest($request, '/foobar');
@@ -233,6 +234,94 @@
         ];
     }
 
+    public function testCreateRequestFromPathHandlesTrustedHeaders()
+    {
+        Request::setTrustedProxies(['127.0.0.1'], Request::HEADER_X_FORWARDED_PREFIX);
+
+        $this->assertSame(
+            'http://localhost/foo/',
+            (new HttpUtils())->createRequest(Request::create('/', server: ['HTTP_X_FORWARDED_PREFIX' => '/foo']), '/')->getUri(),
+        );
+    }
+
+    public function testCreateRequestFromRouteHandlesTrustedHeaders()
+    {
+        Request::setTrustedProxies(['127.0.0.1'], Request::HEADER_X_FORWARDED_PREFIX);
+
+        $request = Request::create('/', server: ['HTTP_X_FORWARDED_PREFIX' => '/foo']);
+
+        $urlGenerator = new UrlGenerator(
+            $routeCollection = new RouteCollection(),
+            (new RequestContext())->fromRequest($request),
+        );
+        $routeCollection->add('root', new Route('/'));
+
+        $this->assertSame(
+            'http://localhost/foo/',
+            (new HttpUtils($urlGenerator))->createRequest($request, 'root')->getUri(),
+        );
+    }
+
+    public function testCreateRequestFromRoutePreservesScriptNameBaseUrl()
+    {
+        // Sub-directory install (Apache "Alias /myapp /var/www/myapp/public" + mod_rewrite).
+        // The master request's base URL comes from SCRIPT_NAME, NOT from X-Forwarded-Prefix.
+        // The sub-request created for a `form_login.use_forward` login MUST inherit that base
+        // URL so the URL generator (re-initialized from the sub-request via
+        // RouterListener::onKernelRequest) emits form action URLs prefixed with `/myapp`.
+        $server = [
+            'REQUEST_URI' => '/myapp/',
+            'SCRIPT_NAME' => '/myapp/index.php',
+            'PHP_SELF' => '/myapp/index.php',
+            'SCRIPT_FILENAME' => '/var/www/myapp/public/index.php',
+        ];
+        $request = new Request([], [], [], [], [], $server);
+        $this->assertSame('/myapp', $request->getBaseUrl());
+
+        $urlGenerator = new UrlGenerator(
+            $routeCollection = new RouteCollection(),
+            (new RequestContext())->fromRequest($request),
+        );
+        $routeCollection->add('app_login', new Route('/login'));
+
+        $subRequest = (new HttpUtils($urlGenerator))->createRequest($request, 'app_login');
+
+        $this->assertSame('/myapp', $subRequest->getBaseUrl());
+        $this->assertSame('http://localhost/myapp/login', $subRequest->getUri());
+    }
+
+    public function testCreateRequestFromRouteBehindProxyPreservesScriptNameBaseUrl()
+    {
+        // Sub-directory install (Apache "Alias /myapp …") behind a trusted proxy adding
+        // an extra prefix: getBaseUrl() === "/proxy-prefix" + "/myapp". Only the
+        // "/proxy-prefix" part may be dropped from the generated sub-request URI; the
+        // "/myapp" part stays so the sub-request re-detects it from SCRIPT_NAME, and the
+        // proxy prefix is re-added (not doubled) once the sub-request is processed.
+        Request::setTrustedProxies(['127.0.0.1'], Request::HEADER_X_FORWARDED_PREFIX);
+
+        $server = [
+            'REQUEST_URI' => '/myapp/',
+            'SCRIPT_NAME' => '/myapp/index.php',
+            'PHP_SELF' => '/myapp/index.php',
+            'SCRIPT_FILENAME' => '/var/www/myapp/public/index.php',
+            'REMOTE_ADDR' => '127.0.0.1',
+            'HTTP_X_FORWARDED_PREFIX' => '/proxy-prefix',
+        ];
+        $request = new Request([], [], [], [], [], $server);
+        $this->assertSame('/proxy-prefix/myapp', $request->getBaseUrl());
+
+        $urlGenerator = new UrlGenerator(
+            $routeCollection = new RouteCollection(),
+            (new RequestContext())->fromRequest($request),
+        );
+        $routeCollection->add('app_login', new Route('/login'));
+
+        $subRequest = (new HttpUtils($urlGenerator))->createRequest($request, 'app_login');
+
+        $this->assertSame('/proxy-prefix/myapp', $subRequest->getBaseUrl());
+        $this->assertSame('http://localhost/proxy-prefix/myapp/login', $subRequest->getUri());
+    }
+
     public function testCheckRequestPath()
     {
         $utils = new HttpUtils($this->getUrlGenerator());
@@ -248,9 +337,8 @@
 
     public function testCheckRequestPathWithUrlMatcherAndResourceNotFound()
     {
-        $urlMatcher = $this->createMock(UrlMatcherInterface::class);
+        $urlMatcher = $this->createStub(UrlMatcherInterface::class);
         $urlMatcher
-            ->expects($this->any())
             ->method('match')
             ->with('/')
             ->willThrowException(new ResourceNotFoundException())
@@ -263,9 +351,8 @@
     public function testCheckRequestPathWithUrlMatcherAndMethodNotAllowed()
     {
         $request = $this->getRequest();
-        $urlMatcher = $this->createMock(RequestMatcherInterface::class);
+        $urlMatcher = $this->createStub(RequestMatcherInterface::class);
         $urlMatcher
-            ->expects($this->any())
             ->method('matchRequest')
             ->with($request)
             ->willThrowException(new MethodNotAllowedException([]))
@@ -277,9 +364,8 @@
 
     public function testCheckRequestPathWithUrlMatcherAndResourceFoundByUrl()
     {
-        $urlMatcher = $this->createMock(UrlMatcherInterface::class);
+        $urlMatcher = $this->createStub(UrlMatcherInterface::class);
         $urlMatcher
-            ->expects($this->any())
             ->method('match')
             ->with('/foo/bar')
             ->willReturn(['_route' => 'foobar'])
@@ -292,9 +378,8 @@
     public function testCheckRequestPathWithUrlMatcherAndResourceFoundByRequest()
     {
         $request = $this->getRequest();
-        $urlMatcher = $this->createMock(RequestMatcherInterface::class);
+        $urlMatcher = $this->createStub(RequestMatcherInterface::class);
         $urlMatcher
-            ->expects($this->any())
             ->method('matchRequest')
             ->with($request)
             ->willReturn(['_route' => 'foobar'])
@@ -307,9 +392,8 @@
     public function testCheckRequestPathWithUrlMatcherLoadingException()
     {
         $this->expectException(\RuntimeException::class);
-        $urlMatcher = $this->createMock(UrlMatcherInterface::class);
+        $urlMatcher = $this->createStub(UrlMatcherInterface::class);
         $urlMatcher
-            ->expects($this->any())
             ->method('match')
             ->willThrowException(new \RuntimeException())
         ;
@@ -336,9 +420,8 @@
 
     public function testCheckPathWithoutRouteParam()
     {
-        $urlMatcher = $this->createMock(UrlMatcherInterface::class);
+        $urlMatcher = $this->createStub(UrlMatcherInterface::class);
         $urlMatcher
-            ->expects($this->any())
             ->method('match')
             ->willReturn(['_controller' => 'PathController'])
         ;
@@ -375,9 +458,8 @@
 
     private function getUrlGenerator($generatedUrl = '/foo/bar')
     {
-        $urlGenerator = $this->createMock(UrlGeneratorInterface::class);
+        $urlGenerator = $this->createStub(UrlGeneratorInterface::class);
         $urlGenerator
-            ->expects($this->any())
             ->method('generate')
             ->willReturn($generatedUrl)
         ;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/LoginLink/LoginLinkHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/LoginLink/LoginLinkHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/LoginLink/LoginLinkHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/LoginLink/LoginLinkHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,6 @@
 namespace Symfony\Component\Security\Http\Tests\LoginLink;
 
 use PHPUnit\Framework\Constraint\Constraint;
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Psr\Cache\CacheItemPoolInterface;
 use Symfony\Component\Cache\Adapter\ArrayAdapter;
@@ -32,7 +31,7 @@
 
 class LoginLinkHandlerTest extends TestCase
 {
-    private MockObject&UrlGeneratorInterface $router;
+    private UrlGeneratorInterface $router;
     private TestLoginLinkHandlerUserProvider $userProvider;
     private PropertyAccessorInterface $propertyAccessor;
     private ExpiredSignatureStorage $expiredLinkStorage;
@@ -40,7 +39,6 @@
 
     protected function setUp(): void
     {
-        $this->router = $this->createMock(UrlGeneratorInterface::class);
         $this->userProvider = new TestLoginLinkHandlerUserProvider();
         $this->propertyAccessor = PropertyAccess::createPropertyAccessor();
         $this->expiredLinkCache = new ArrayAdapter();
@@ -54,6 +52,7 @@
      */
     public function testCreateLoginLink($user, array $extraProperties, ?Request $request = null)
     {
+        $this->router = $this->createMock(UrlGeneratorInterface::class);
         $this->router->expects($this->once())
             ->method('generate')
             ->with(
@@ -125,6 +124,7 @@
     {
         $extraProperties = ['emailProperty' => 'ryan@symfonycasts.com', 'passwordProperty' => 'pwhash'];
 
+        $this->router = $this->createMock(UrlGeneratorInterface::class);
         $this->router->expects($this->once())
             ->method('generate')
             ->with(
@@ -156,7 +156,7 @@
     {
         $expires = time() + 500;
         $signature = $this->createSignatureHash('weaverryan', $expires);
-        $request = Request::create(sprintf('/login/verify?user=weaverryan&hash=%s&expires=%d', $signature, $expires));
+        $request = Request::create(\sprintf('/login/verify?user=weaverryan&hash=%s&expires=%d', $signature, $expires));
 
         $user = new TestLoginLinkHandlerUser('weaverryan', 'ryan@symfonycasts.com', 'pwhash');
         $this->userProvider->createUser($user);
@@ -173,7 +173,7 @@
     {
         $expires = time() - 500;
         $signature = $this->createSignatureHash('weaverryan', $expires);
-        $request = Request::create(sprintf('/login/verify?user=weaverryan&hash=%s&expires=%d', $signature, $expires));
+        $request = Request::create(\sprintf('/login/verify?user=weaverryan&hash=%s&expires=%d', $signature, $expires));
 
         $linker = $this->createLinker(['max_uses' => 3]);
         $this->expectException(ExpiredLoginLinkException::class);
@@ -191,7 +191,7 @@
 
     public function testConsumeLoginLinkWithDifferentSignature()
     {
-        $request = Request::create(sprintf('/login/verify?user=weaverryan&hash=fake_hash&expires=%d', time() + 500));
+        $request = Request::create(\sprintf('/login/verify?user=weaverryan&hash=fake_hash&expires=%d', time() + 500));
 
         $linker = $this->createLinker();
         $this->expectException(InvalidLoginLinkException::class);
@@ -202,7 +202,7 @@
     {
         $expires = time() + 500;
         $signature = $this->createSignatureHash('weaverryan', $expires);
-        $request = Request::create(sprintf('/login/verify?user=weaverryan&hash=%s&expires=%d', $signature, $expires));
+        $request = Request::create(\sprintf('/login/verify?user=weaverryan&hash=%s&expires=%d', $signature, $expires));
 
         $user = new TestLoginLinkHandlerUser('weaverryan', 'ryan@symfonycasts.com', 'pwhash');
         $this->userProvider->createUser($user);
@@ -240,6 +240,30 @@
         $linker->consumeLoginLink($request);
     }
 
+    public function testConsumeLoginLinkWithInvalidExpiration()
+    {
+        $user = new TestLoginLinkHandlerUser('weaverryan', 'ryan@symfonycasts.com', 'pwhash');
+        $this->userProvider->createUser($user);
+
+        $this->expectException(InvalidLoginLinkException::class);
+        $request = Request::create('/login/verify?user=weaverryan&hash=thehash&expires=%E2%80%AA1000000000%E2%80%AC');
+
+        $linker = $this->createLinker();
+        $linker->consumeLoginLink($request);
+    }
+
+    public function testConsumeLoginLinkWithInvalidHash()
+    {
+        $user = new TestLoginLinkHandlerUser('weaverryan', 'ryan@symfonycasts.com', 'pwhash');
+        $this->userProvider->createUser($user);
+
+        $this->expectException(InvalidLoginLinkException::class);
+        $request = Request::create('/login/verify?user=weaverryan&hash[]=an&hash[]=array&expires=1000000000');
+
+        $linker = $this->createLinker();
+        $linker->consumeLoginLink($request);
+    }
+
     private function createSignatureHash(string $username, int $expires, array $extraFields = ['emailProperty' => 'ryan@symfonycasts.com', 'passwordProperty' => 'pwhash']): string
     {
         $hasher = new SignatureHasher($this->propertyAccessor, array_keys($extraFields), 's3cret');
@@ -255,7 +279,7 @@
             'route_name' => 'app_check_login_link_route',
         ], $options);
 
-        return new LoginLinkHandler($this->router, $this->userProvider, new SignatureHasher($this->propertyAccessor, $extraProperties, 's3cret', $this->expiredLinkStorage, $options['max_uses'] ?? null), $options);
+        return new LoginLinkHandler($this->router ?? $this->createStub(UrlGeneratorInterface::class), $this->userProvider, new SignatureHasher($this->propertyAccessor, $extraProperties, 's3cret', $this->expiredLinkStorage, $options['max_uses'] ?? null), $options);
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/RememberMe/PersistentRememberMeHandlerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/RememberMe/PersistentRememberMeHandlerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/RememberMe/PersistentRememberMeHandlerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/RememberMe/PersistentRememberMeHandlerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,11 +11,11 @@
 
 namespace Symfony\Component\Security\Http\Tests\RememberMe;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Cookie;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\RequestStack;
+use Symfony\Component\Security\Core\Authentication\RememberMe\InMemoryTokenProvider;
 use Symfony\Component\Security\Core\Authentication\RememberMe\PersistentToken;
 use Symfony\Component\Security\Core\Authentication\RememberMe\TokenProviderInterface;
 use Symfony\Component\Security\Core\Authentication\RememberMe\TokenVerifierInterface;
@@ -29,43 +29,60 @@
 
 class PersistentRememberMeHandlerTest extends TestCase
 {
-    private MockObject&TokenProviderInterface $tokenProvider;
+    private TokenProviderInterface $tokenProvider;
     private InMemoryUserProvider $userProvider;
     private RequestStack $requestStack;
     private Request $request;
-    private PersistentRememberMeHandler $handler;
 
     protected function setUp(): void
     {
-        $this->tokenProvider = $this->createMock(TokenProviderInterface::class);
+        $this->tokenProvider = new InMemoryTokenProvider();
         $this->userProvider = new InMemoryUserProvider();
         $this->userProvider->createUser(new InMemoryUser('wouter', null));
         $this->requestStack = new RequestStack();
         $this->request = Request::create('/login');
         $this->requestStack->push($this->request);
-        $this->handler = new PersistentRememberMeHandler($this->tokenProvider, $this->userProvider, $this->requestStack, []);
     }
 
     public function testCreateRememberMeCookie()
     {
-        $this->tokenProvider->expects($this->once())
+        $tokenProvider = $this->createMock(TokenProviderInterface::class);
+        $tokenProvider->expects($this->once())
             ->method('createNewToken')
-            ->with($this->callback(fn ($persistentToken) => $persistentToken instanceof PersistentToken
+            ->with($this->callback(static fn ($persistentToken) => $persistentToken instanceof PersistentToken
                 && 'wouter' === $persistentToken->getUserIdentifier()
                 && InMemoryUser::class === $persistentToken->getClass()));
 
-        $this->handler->createRememberMeCookie(new InMemoryUser('wouter', null));
+        (new PersistentRememberMeHandler($tokenProvider, $this->userProvider, $this->requestStack, []))->createRememberMeCookie(new InMemoryUser('wouter', null));
     }
 
     public function testClearRememberMeCookie()
     {
-        $this->tokenProvider->expects($this->once())
+        $tokenProvider = $this->createMock(TokenProviderInterface::class);
+        $tokenProvider->expects($this->once())
             ->method('deleteTokenBySeries')
             ->with('series1');
 
         $this->request->cookies->set('REMEMBERME', (new RememberMeDetails(InMemoryUser::class, 'wouter', 0, 'series1:tokenvalue'))->toString());
 
-        $this->handler->clearRememberMeCookie();
+        (new PersistentRememberMeHandler($tokenProvider, $this->userProvider, $this->requestStack, []))->clearRememberMeCookie();
+
+        $this->assertTrue($this->request->attributes->has(ResponseListener::COOKIE_ATTR_NAME));
+
+        /** @var Cookie $cookie */
+        $cookie = $this->request->attributes->get(ResponseListener::COOKIE_ATTR_NAME);
+        $this->assertNull($cookie->getValue());
+    }
+
+    public function testClearRememberMeCookieMalformedCookie()
+    {
+        $tokenProvider = $this->createMock(TokenProviderInterface::class);
+        $tokenProvider->expects($this->exactly(0))
+            ->method('deleteTokenBySeries');
+
+        $this->request->cookies->set('REMEMBERME', 'malformed');
+
+        (new PersistentRememberMeHandler($tokenProvider, $this->userProvider, $this->requestStack, []))->clearRememberMeCookie();
 
         $this->assertTrue($this->request->attributes->has(ResponseListener::COOKIE_ATTR_NAME));
 
@@ -76,16 +93,18 @@
 
     public function testConsumeRememberMeCookieValid()
     {
-        $this->tokenProvider->expects($this->any())
+        $tokenProvider = $this->createMock(TokenProviderInterface::class);
+        $tokenProvider
             ->method('loadTokenBySeries')
-            ->with('series1')
-            ->willReturn(new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue', $lastUsed = new \DateTimeImmutable('-10 min')))
+            ->willReturnMap([
+                ['series1', new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue', $lastUsed = new \DateTimeImmutable('-10 min'))],
+            ])
         ;
 
-        $this->tokenProvider->expects($this->once())->method('updateToken')->with('series1');
+        $tokenProvider->expects($this->once())->method('updateToken')->with('series1');
 
         $rememberMeDetails = new RememberMeDetails(InMemoryUser::class, 'wouter', 360, 'series1:tokenvalue');
-        $this->handler->consumeRememberMeCookie($rememberMeDetails);
+        (new PersistentRememberMeHandler($tokenProvider, $this->userProvider, $this->requestStack, []))->consumeRememberMeCookie($rememberMeDetails);
 
         // assert that the cookie has been updated with a new base64 encoded token value
         $this->assertTrue($this->request->attributes->has(ResponseListener::COOKIE_ATTR_NAME));
@@ -104,7 +123,8 @@
 
     public function testConsumeRememberMeCookieInvalidOwner()
     {
-        $this->tokenProvider->expects($this->any())
+        $tokenProvider = $this->createStub(TokenProviderInterface::class);
+        $tokenProvider
             ->method('loadTokenBySeries')
             ->with('series1')
             ->willReturn(new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue', new \DateTime('-10 min')))
@@ -114,38 +134,30 @@
 
         $this->expectException(AuthenticationException::class);
         $this->expectExceptionMessage('The cookie\'s hash is invalid.');
-        $this->handler->consumeRememberMeCookie($rememberMeDetails);
+        (new PersistentRememberMeHandler($tokenProvider, $this->userProvider, $this->requestStack, []))->consumeRememberMeCookie($rememberMeDetails);
     }
 
     public function testConsumeRememberMeCookieInvalidValue()
     {
-        $this->tokenProvider->expects($this->any())
-            ->method('loadTokenBySeries')
-            ->with('series1')
-            ->willReturn(new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue', new \DateTime('-10 min')))
-        ;
+        $this->tokenProvider->createNewToken(new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue', new \DateTime('-10 min')));
 
         $rememberMeDetails = new RememberMeDetails(InMemoryUser::class, 'wouter', 360, 'series1:tokenvalue:somethingelse');
 
         $this->expectException(AuthenticationException::class);
         $this->expectExceptionMessage('This token was already used. The account is possibly compromised.');
-        $this->handler->consumeRememberMeCookie($rememberMeDetails);
+        (new PersistentRememberMeHandler($this->tokenProvider, $this->userProvider, $this->requestStack, []))->consumeRememberMeCookie($rememberMeDetails);
     }
 
     public function testConsumeRememberMeCookieValidByValidatorWithoutUpdate()
     {
-        $verifier = $this->createMock(TokenVerifierInterface::class);
+        $verifier = $this->createStub(TokenVerifierInterface::class);
         $handler = new PersistentRememberMeHandler($this->tokenProvider, $this->userProvider, $this->requestStack, [], null, $verifier);
 
         $persistentToken = new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue', new \DateTimeImmutable('30 seconds'));
 
-        $this->tokenProvider->expects($this->any())
-            ->method('loadTokenBySeries')
-            ->with('series1')
-            ->willReturn($persistentToken)
-        ;
+        $this->tokenProvider->createNewToken($persistentToken);
 
-        $verifier->expects($this->any())
+        $verifier
             ->method('verifyToken')
             ->with($persistentToken, 'oldTokenValue')
             ->willReturn(true)
@@ -161,14 +173,16 @@
     {
         $this->expectException(CookieTheftException::class);
 
-        $this->tokenProvider->expects($this->any())
+        $tokenProvider = $this->createMock(TokenProviderInterface::class);
+        $tokenProvider
             ->method('loadTokenBySeries')
-            ->with('series1')
-            ->willReturn(new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue1', new \DateTimeImmutable('-10 min')));
+            ->willReturnMap([
+                ['series1', new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue1', new \DateTimeImmutable('-10 min'))],
+            ]);
 
-        $this->tokenProvider->expects($this->never())->method('updateToken')->with('series1');
+        $tokenProvider->expects($this->never())->method('updateToken')->with('series1');
 
-        $this->handler->consumeRememberMeCookie(new RememberMeDetails(InMemoryUser::class, 'wouter', 360, 'series1:tokenvalue'));
+        (new PersistentRememberMeHandler($tokenProvider, $this->userProvider, $this->requestStack, []))->consumeRememberMeCookie(new RememberMeDetails(InMemoryUser::class, 'wouter', 360, 'series1:tokenvalue'));
     }
 
     public function testConsumeRememberMeCookieExpired()
@@ -176,28 +190,32 @@
         $this->expectException(AuthenticationException::class);
         $this->expectExceptionMessage('The cookie has expired.');
 
-        $this->tokenProvider->expects($this->any())
+        $tokenProvider = $this->createMock(TokenProviderInterface::class);
+        $tokenProvider
             ->method('loadTokenBySeries')
-            ->with('series1')
-            ->willReturn(new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue', new \DateTimeImmutable('@'.(time() - (31536000 + 1)))));
+            ->willReturnMap([
+                ['series1', new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue', new \DateTimeImmutable('@'.(time() - (31536000 + 1))))],
+            ]);
 
-        $this->tokenProvider->expects($this->never())->method('updateToken')->with('series1');
+        $tokenProvider->expects($this->never())->method('updateToken')->with('series1');
 
-        $this->handler->consumeRememberMeCookie(new RememberMeDetails(InMemoryUser::class, 'wouter', 360, 'series1:tokenvalue'));
+        (new PersistentRememberMeHandler($tokenProvider, $this->userProvider, $this->requestStack, []))->consumeRememberMeCookie(new RememberMeDetails(InMemoryUser::class, 'wouter', 360, 'series1:tokenvalue'));
     }
 
     public function testBase64EncodedTokens()
     {
-        $this->tokenProvider->expects($this->any())
+        $tokenProvider = $this->createMock(TokenProviderInterface::class);
+        $tokenProvider
             ->method('loadTokenBySeries')
-            ->with('series1')
-            ->willReturn(new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue', new \DateTimeImmutable('-10 min')))
+            ->willReturnMap([
+                ['series1', new PersistentToken(InMemoryUser::class, 'wouter', 'series1', 'tokenvalue', new \DateTimeImmutable('-10 min'))],
+            ])
         ;
 
-        $this->tokenProvider->expects($this->once())->method('updateToken')->with('series1');
+        $tokenProvider->expects($this->once())->method('updateToken')->with('series1');
 
         $rememberMeDetails = new RememberMeDetails(InMemoryUser::class, 'wouter', 360, 'series1:tokenvalue');
         $rememberMeDetails = RememberMeDetails::fromRawCookie(base64_encode($rememberMeDetails->toString()));
-        $this->handler->consumeRememberMeCookie($rememberMeDetails);
+        (new PersistentRememberMeHandler($tokenProvider, $this->userProvider, $this->requestStack, []))->consumeRememberMeCookie($rememberMeDetails);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/RememberMe/ResponseListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/RememberMe/ResponseListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/RememberMe/ResponseListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/RememberMe/ResponseListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -90,6 +90,6 @@
 
     private function getEvent(Request $request, Response $response, int $type = HttpKernelInterface::MAIN_REQUEST): ResponseEvent
     {
-        return new ResponseEvent($this->createMock(HttpKernelInterface::class), $request, $type, $response);
+        return new ResponseEvent($this->createStub(HttpKernelInterface::class), $request, $type, $response);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Session/SessionAuthenticationStrategyTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Session/SessionAuthenticationStrategyTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Security/Http/Tests/Session/SessionAuthenticationStrategyTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Security/Http/Tests/Session/SessionAuthenticationStrategyTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,7 +14,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Session\SessionInterface;
-use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+use Symfony\Component\Security\Core\Authentication\Token\NullToken;
 use Symfony\Component\Security\Csrf\TokenStorage\ClearableTokenStorageInterface;
 use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy;
 
@@ -22,22 +22,22 @@
 {
     public function testSessionIsNotChanged()
     {
-        $request = $this->getRequest();
+        $request = $this->createMock(Request::class);
         $request->expects($this->never())->method('getSession');
 
         $strategy = new SessionAuthenticationStrategy(SessionAuthenticationStrategy::NONE);
-        $strategy->onAuthentication($request, $this->createMock(TokenInterface::class));
+        $strategy->onAuthentication($request, new NullToken());
     }
 
     public function testUnsupportedStrategy()
     {
         $this->expectException(\RuntimeException::class);
         $this->expectExceptionMessage('Invalid session authentication strategy "foo"');
-        $request = $this->getRequest();
+        $request = $this->createMock(Request::class);
         $request->expects($this->never())->method('getSession');
 
         $strategy = new SessionAuthenticationStrategy('foo');
-        $strategy->onAuthentication($request, $this->createMock(TokenInterface::class));
+        $strategy->onAuthentication($request, new NullToken());
     }
 
     public function testSessionIsMigrated()
@@ -46,7 +46,7 @@
         $session->expects($this->once())->method('migrate')->with($this->equalTo(true));
 
         $strategy = new SessionAuthenticationStrategy(SessionAuthenticationStrategy::MIGRATE);
-        $strategy->onAuthentication($this->getRequest($session), $this->createMock(TokenInterface::class));
+        $strategy->onAuthentication($this->getRequest($session), new NullToken());
     }
 
     public function testSessionIsInvalidated()
@@ -55,7 +55,7 @@
         $session->expects($this->once())->method('invalidate');
 
         $strategy = new SessionAuthenticationStrategy(SessionAuthenticationStrategy::INVALIDATE);
-        $strategy->onAuthentication($this->getRequest($session), $this->createMock(TokenInterface::class));
+        $strategy->onAuthentication($this->getRequest($session), new NullToken());
     }
 
     public function testCsrfTokensAreCleared()
@@ -67,15 +67,15 @@
         $csrfStorage->expects($this->once())->method('clear');
 
         $strategy = new SessionAuthenticationStrategy(SessionAuthenticationStrategy::MIGRATE, $csrfStorage);
-        $strategy->onAuthentication($this->getRequest($session), $this->createMock(TokenInterface::class));
+        $strategy->onAuthentication($this->getRequest($session), new NullToken());
     }
 
     private function getRequest($session = null)
     {
-        $request = $this->createMock(Request::class);
+        $request = new Request();
 
         if (null !== $session) {
-            $request->expects($this->any())->method('getSession')->willReturn($session);
+            $request->setSession($session);
         }
 
         return $request;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreAcquiringException.php symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreAcquiringException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreAcquiringException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreAcquiringException.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,6 +23,6 @@
 {
     public function __construct(Key $key, string $message)
     {
-        parent::__construct(sprintf('The semaphore "%s" could not be acquired: %s.', $key, $message));
+        parent::__construct(\sprintf('The semaphore "%s" could not be acquired: %s.', $key, $message));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreExpiredException.php symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreExpiredException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreExpiredException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreExpiredException.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,6 +23,6 @@
 {
     public function __construct(Key $key, string $message)
     {
-        parent::__construct(sprintf('The semaphore "%s" has expired: %s.', $key, $message));
+        parent::__construct(\sprintf('The semaphore "%s" has expired: %s.', $key, $message));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreReleasingException.php symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreReleasingException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreReleasingException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Exception/SemaphoreReleasingException.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,6 +23,6 @@
 {
     public function __construct(Key $key, string $message)
     {
-        parent::__construct(sprintf('The semaphore "%s" could not be released: %s.', $key, $message));
+        parent::__construct(\sprintf('The semaphore "%s" could not be released: %s.', $key, $message));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Semaphore.php symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Semaphore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Semaphore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Semaphore.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,12 +43,12 @@
         $this->autoRelease = $autoRelease;
     }
 
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
     }
 
-    public function __wakeup(): void
+    public function __unserialize(array $data): void
     {
         throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
     }
@@ -83,7 +83,7 @@
         } catch (\Exception $e) {
             $this->logger?->notice('Failed to acquire the "{resource}" semaphore.', ['resource' => $this->key, 'exception' => $e]);
 
-            throw new RuntimeException(sprintf('Failed to acquire the "%s" semaphore.', $this->key), 0, $e);
+            throw new RuntimeException(\sprintf('Failed to acquire the "%s" semaphore.', $this->key), 0, $e);
         }
     }
 
@@ -109,7 +109,7 @@
         } catch (\Exception $e) {
             $this->logger?->notice('Failed to define an expiration for the "{resource}" semaphore.', ['resource' => $this->key, 'exception' => $e]);
 
-            throw new RuntimeException(sprintf('Failed to define an expiration for the "%s" semaphore.', $this->key), 0, $e);
+            throw new RuntimeException(\sprintf('Failed to define an expiration for the "%s" semaphore.', $this->key), 0, $e);
         }
     }
 
@@ -128,7 +128,7 @@
         } catch (\Exception $e) {
             $this->logger?->notice('Failed to release the "{resource}" semaphore.', ['resource' => $this->key]);
 
-            throw new RuntimeException(sprintf('Failed to release the "%s" semaphore.', $this->key), 0, $e);
+            throw new RuntimeException(\sprintf('Failed to release the "%s" semaphore.', $this->key), 0, $e);
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Store/RedisStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Store/RedisStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Store/RedisStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Store/RedisStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -92,7 +92,7 @@
             $key->getWeight(),
         ];
 
-        if (!$this->evaluate($script, sprintf('{%s}', $key), $args)) {
+        if (!$this->evaluate($script, \sprintf('{%s}', $key), $args)) {
             throw new SemaphoreAcquiringException($key, 'the script return false');
         }
     }
@@ -129,7 +129,7 @@
             return added
         ';
 
-        $ret = $this->evaluate($script, sprintf('{%s}', $key), [time() + $ttlInSecond, $this->getUniqueToken($key)]);
+        $ret = $this->evaluate($script, \sprintf('{%s}', $key), [time() + $ttlInSecond, $this->getUniqueToken($key)]);
 
         // Occurs when redis has been reset
         if (false === $ret) {
@@ -157,12 +157,12 @@
             return redis.call("ZREM", weightKey, identifier)
         ';
 
-        $this->evaluate($script, sprintf('{%s}', $key), [$this->getUniqueToken($key)]);
+        $this->evaluate($script, \sprintf('{%s}', $key), [$this->getUniqueToken($key)]);
     }
 
     public function exists(Key $key): bool
     {
-        return (bool) $this->redis->zScore(sprintf('{%s}:weight', $key), $this->getUniqueToken($key));
+        return (bool) $this->redis->zScore(\sprintf('{%s}:weight', $key), $this->getUniqueToken($key));
     }
 
     private function evaluate(string $script, string $resource, array $args): mixed
@@ -179,7 +179,7 @@
             return $this->redis->eval(...array_merge([$script, 1, $resource], $args));
         }
 
-        throw new InvalidArgumentException(sprintf('"%s()" expects being initialized with a Redis, RedisArray, RedisCluster or Predis\ClientInterface, "%s" given.', __METHOD__, get_debug_type($this->redis)));
+        throw new InvalidArgumentException(\sprintf('"%s()" expects being initialized with a Redis, RedisArray, RedisCluster or Predis\ClientInterface, "%s" given.', __METHOD__, get_debug_type($this->redis)));
     }
 
     private function getUniqueToken(Key $key): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Store/StoreFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Store/StoreFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Store/StoreFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Store/StoreFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
                 return new RedisStore($connection);
 
             case !\is_string($connection):
-                throw new InvalidArgumentException(sprintf('Unsupported Connection: "%s".', $connection::class));
+                throw new InvalidArgumentException(\sprintf('Unsupported Connection: "%s".', $connection::class));
             case str_starts_with($connection, 'redis:'):
             case str_starts_with($connection, 'rediss:'):
                 if (!class_exists(AbstractAdapter::class)) {
@@ -45,6 +45,6 @@
                 return new RedisStore($connection);
         }
 
-        throw new InvalidArgumentException(sprintf('Unsupported Connection: "%s".', $connection));
+        throw new InvalidArgumentException(\sprintf('Unsupported Connection: "%s".', $connection));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Tests/SemaphoreFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Tests/SemaphoreFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Tests/SemaphoreFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Tests/SemaphoreFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Semaphore\Tests;
 
 use PHPUnit\Framework\TestCase;
-use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
 use Symfony\Component\Semaphore\Key;
 use Symfony\Component\Semaphore\PersistingStoreInterface;
 use Symfony\Component\Semaphore\SemaphoreFactory;
@@ -31,15 +31,14 @@
         $store
             ->expects($this->exactly(2))
             ->method('save')
-            ->with($this->callback(function ($key) use (&$keys) {
+            ->with($this->callback(static function ($key) use (&$keys) {
                 $keys[] = $key;
 
                 return true;
             }));
 
-        $logger = $this->createMock(LoggerInterface::class);
         $factory = new SemaphoreFactory($store);
-        $factory->setLogger($logger);
+        $factory->setLogger(new NullLogger());
 
         $semaphore1 = $factory->createSemaphore('foo', 4);
         $semaphore2 = $factory->createSemaphore('foo', 4);
@@ -59,15 +58,14 @@
         $store
             ->expects($this->exactly(2))
             ->method('save')
-            ->with($this->callback(function ($key) use (&$keys) {
+            ->with($this->callback(static function ($key) use (&$keys) {
                 $keys[] = $key;
 
                 return true;
             }));
 
-        $logger = $this->createMock(LoggerInterface::class);
         $factory = new SemaphoreFactory($store);
-        $factory->setLogger($logger);
+        $factory->setLogger(new NullLogger());
 
         $key = new Key('foo', 4);
         $semaphore1 = $factory->createSemaphoreFromKey($key);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Tests/SemaphoreTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Tests/SemaphoreTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Tests/SemaphoreTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Tests/SemaphoreTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -240,7 +240,7 @@
 
     public function testExpiration()
     {
-        $store = $this->createMock(PersistingStoreInterface::class);
+        $store = $this->createStub(PersistingStoreInterface::class);
 
         $key = new Key('key', 1);
         $semaphore = new Semaphore($key, $store);
@@ -257,7 +257,7 @@
      */
     public function testExpirationResetAfter()
     {
-        $store = $this->createMock(PersistingStoreInterface::class);
+        $store = $this->createStub(PersistingStoreInterface::class);
 
         $key = new Key('key', 1);
         $semaphore = new Semaphore($key, $store, 1);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Tests/Store/RelayStoreTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Tests/Store/RelayStoreTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Semaphore/Tests/Store/RelayStoreTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Semaphore/Tests/Store/RelayStoreTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,20 +15,22 @@
 
 /**
  * @requires extension relay
+ *
+ * @group integration
  */
 class RelayStoreTest extends AbstractRedisStoreTestCase
 {
     protected function setUp(): void
     {
-        $this->getRedisConnection()->flushDB();
+        try {
+            $this->getRedisConnection()->flushDB();
+        } catch (\Relay\Exception $e) {
+            self::markTestSkipped($e->getMessage());
+        }
     }
 
     public static function setUpBeforeClass(): void
     {
-        if (\PHP_VERSION_ID <= 80500 && isset($_SERVER['GITHUB_ACTIONS'])) {
-            self::markTestSkipped('Test segfaults on PHP 8.5');
-        }
-
         try {
             new Relay(...explode(':', getenv('REDIS_HOST')));
         } catch (\Relay\Exception $e) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/Context.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/Context.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/Context.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/Context.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,14 +39,14 @@
         string|array $groups = [],
     ) {
         if (!$context && !$normalizationContext && !$denormalizationContext) {
-            throw new InvalidArgumentException(sprintf('At least one of the "context", "normalizationContext", or "denormalizationContext" options must be provided as a non-empty array to "%s".', static::class));
+            throw new InvalidArgumentException(\sprintf('At least one of the "context", "normalizationContext", or "denormalizationContext" options must be provided as a non-empty array to "%s".', static::class));
         }
 
         $this->groups = (array) $groups;
 
         foreach ($this->groups as $group) {
             if (!\is_string($group)) {
-                throw new InvalidArgumentException(sprintf('Parameter "groups" given to "%s" must be a string or an array of strings, "%s" given.', static::class, get_debug_type($group)));
+                throw new InvalidArgumentException(\sprintf('Parameter "groups" given to "%s" must be a string or an array of strings, "%s" given.', static::class, get_debug_type($group)));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/DiscriminatorMap.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/DiscriminatorMap.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/DiscriminatorMap.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/DiscriminatorMap.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,11 +30,11 @@
         private readonly array $mapping,
     ) {
         if (empty($typeProperty)) {
-            throw new InvalidArgumentException(sprintf('Parameter "typeProperty" given to "%s" cannot be empty.', static::class));
+            throw new InvalidArgumentException(\sprintf('Parameter "typeProperty" given to "%s" cannot be empty.', static::class));
         }
 
         if (empty($mapping)) {
-            throw new InvalidArgumentException(sprintf('Parameter "mapping" given to "%s" cannot be empty.', static::class));
+            throw new InvalidArgumentException(\sprintf('Parameter "mapping" given to "%s" cannot be empty.', static::class));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/Groups.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/Groups.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/Groups.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/Groups.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,12 +38,12 @@
         $this->groups = (array) $groups;
 
         if (!$this->groups) {
-            throw new InvalidArgumentException(sprintf('Parameter given to "%s" cannot be empty.', static::class));
+            throw new InvalidArgumentException(\sprintf('Parameter given to "%s" cannot be empty.', static::class));
         }
 
         foreach ($this->groups as $group) {
             if (!\is_string($group) || '' === $group) {
-                throw new InvalidArgumentException(sprintf('Parameter given to "%s" must be a string or an array of non-empty strings.', static::class));
+                throw new InvalidArgumentException(\sprintf('Parameter given to "%s" must be a string or an array of non-empty strings.', static::class));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/MaxDepth.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/MaxDepth.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/MaxDepth.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/MaxDepth.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
     public function __construct(private readonly int $maxDepth)
     {
         if ($maxDepth <= 0) {
-            throw new InvalidArgumentException(sprintf('Parameter given to "%s" must be a positive integer.', static::class));
+            throw new InvalidArgumentException(\sprintf('Parameter given to "%s" must be a positive integer.', static::class));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/SerializedName.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/SerializedName.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/SerializedName.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/SerializedName.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
     public function __construct(private readonly string $serializedName)
     {
         if ('' === $serializedName) {
-            throw new InvalidArgumentException(sprintf('Parameter given to "%s" must be a non-empty string.', self::class));
+            throw new InvalidArgumentException(\sprintf('Parameter given to "%s" must be a non-empty string.', self::class));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/SerializedPath.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/SerializedPath.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Attribute/SerializedPath.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Attribute/SerializedPath.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
         try {
             $this->serializedPath = new PropertyPath($serializedPath);
         } catch (InvalidPropertyPathException $pathException) {
-            throw new InvalidArgumentException(sprintf('Parameter given to "%s" must be a valid property path.', self::class));
+            throw new InvalidArgumentException(\sprintf('Parameter given to "%s" must be a valid property path.', self::class));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Command/DebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Command/DebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Command/DebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Command/DebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
 
         if (!class_exists($class)) {
             $io = new SymfonyStyle($input, $output);
-            $io->error(sprintf('Class "%s" was not found.', $class));
+            $io->error(\sprintf('Class "%s" was not found.', $class));
 
             return Command::FAILURE;
         }
@@ -62,7 +62,7 @@
     private function dumpSerializerDataForClass(InputInterface $input, OutputInterface $output, string $class): void
     {
         $io = new SymfonyStyle($input, $output);
-        $title = sprintf('<info>%s</info>', $class);
+        $title = \sprintf('<info>%s</info>', $class);
         $rows = [];
         $dump = new Dumper($output);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Encoder/CsvEncoderContextBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Encoder/CsvEncoderContextBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Encoder/CsvEncoderContextBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Encoder/CsvEncoderContextBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
     public function withDelimiter(?string $delimiter): static
     {
         if (null !== $delimiter && 1 !== \strlen($delimiter)) {
-            throw new InvalidArgumentException(sprintf('The "%s" delimiter must be a single character.', $delimiter));
+            throw new InvalidArgumentException(\sprintf('The "%s" delimiter must be a single character.', $delimiter));
         }
 
         return $this->with(CsvEncoder::DELIMITER_KEY, $delimiter);
@@ -51,7 +51,7 @@
     public function withEnclosure(?string $enclosure): static
     {
         if (null !== $enclosure && 1 !== \strlen($enclosure)) {
-            throw new InvalidArgumentException(sprintf('The "%s" enclosure must be a single character.', $enclosure));
+            throw new InvalidArgumentException(\sprintf('The "%s" enclosure must be a single character.', $enclosure));
         }
 
         return $this->with(CsvEncoder::ENCLOSURE_KEY, $enclosure);
@@ -67,7 +67,7 @@
     public function withEscapeChar(?string $escapeChar): static
     {
         if (null !== $escapeChar && \strlen($escapeChar) > 1) {
-            throw new InvalidArgumentException(sprintf('The "%s" escape character must be empty or a single character.', $escapeChar));
+            throw new InvalidArgumentException(\sprintf('The "%s" escape character must be empty or a single character.', $escapeChar));
         }
 
         return $this->with(CsvEncoder::ESCAPE_CHAR_KEY, $escapeChar);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Encoder/JsonEncoderContextBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Encoder/JsonEncoderContextBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Encoder/JsonEncoderContextBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Encoder/JsonEncoderContextBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,7 +28,7 @@
     /**
      * Configures the json_encode flags bitmask.
      *
-     * @see https://www.php.net/manual/en/json.constants.php
+     * @see https://php.net/json.constants
      *
      * @param positive-int|null $options
      */
@@ -40,7 +40,7 @@
     /**
      * Configures the json_decode flags bitmask.
      *
-     * @see https://www.php.net/manual/en/json.constants.php
+     * @see https://php.net/json.constants
      *
      * @param positive-int|null $options
      */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Encoder/XmlEncoderContextBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Encoder/XmlEncoderContextBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Encoder/XmlEncoderContextBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Encoder/XmlEncoderContextBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     /**
      * Configures node types to ignore while decoding.
      *
-     * @see https://www.php.net/manual/en/dom.constants.php
+     * @see https://php.net/dom.constants
      *
      * @param list<int>|null $decoderIgnoredNodeTypes
      */
@@ -48,7 +48,7 @@
     /**
      * Configures node types to ignore while encoding.
      *
-     * @see https://www.php.net/manual/en/dom.constants.php
+     * @see https://php.net/dom.constants
      *
      * @param list<int>|null $encoderIgnoredNodeTypes
      */
@@ -60,7 +60,7 @@
     /**
      * Configures the DOMDocument encoding.
      *
-     * @see https://www.php.net/manual/en/class.domdocument.php#domdocument.props.encoding
+     * @see https://php.net/class.domdocument#domdocument.props.encoding
      */
     public function withEncoding(?string $encoding): static
     {
@@ -70,7 +70,7 @@
     /**
      * Configures whether to encode with indentation and extra space.
      *
-     * @see https://php.net/manual/en/class.domdocument.php#domdocument.props.formatoutput
+     * @see https://php.net/class.domdocument#domdocument.props.formatoutput
      */
     public function withFormatOutput(?bool $formatOutput): static
     {
@@ -80,7 +80,7 @@
     /**
      * Configures the DOMDocument::loadXml options bitmask.
      *
-     * @see https://www.php.net/manual/en/libxml.constants.php
+     * @see https://php.net/libxml.constants
      *
      * @param positive-int|null $loadOptions
      */
@@ -92,7 +92,7 @@
     /**
      * Configures the DOMDocument::saveXml options bitmask.
      *
-     * @see https://www.php.net/manual/en/libxml.constants.php
+     * @see https://php.net/libxml.constants
      *
      * @param positive-int|null $saveOptions
      */
@@ -120,7 +120,7 @@
     /**
      * Configures whether the document will be standalone.
      *
-     * @see https://php.net/manual/en/class.domdocument.php#domdocument.props.xmlstandalone
+     * @see https://php.net/class.domdocument#domdocument.props.xmlstandalone
      */
     public function withStandalone(?bool $standalone): static
     {
@@ -138,7 +138,7 @@
     /**
      * Configures the version number of the document.
      *
-     * @see https://php.net/manual/en/class.domdocument.php#domdocument.props.xmlversion
+     * @see https://php.net/class.domdocument#domdocument.props.xmlversion
      */
     public function withVersion(?string $version): static
     {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/AbstractNormalizerContextBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/AbstractNormalizerContextBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/AbstractNormalizerContextBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/AbstractNormalizerContextBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -87,7 +87,7 @@
 
         foreach ($it as $attribute) {
             if (!\is_string($attribute)) {
-                throw new InvalidArgumentException(sprintf('Each attribute must be a string, "%s" given.', get_debug_type($attribute)));
+                throw new InvalidArgumentException(\sprintf('Each attribute must be a string, "%s" given.', get_debug_type($attribute)));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/AbstractObjectNormalizerContextBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/AbstractObjectNormalizerContextBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/AbstractObjectNormalizerContextBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/AbstractObjectNormalizerContextBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
         preg_match_all('/(?<!%)(?:%{2})*%(?<specifier>[a-z])/', $depthKeyPattern, $matches);
 
         if (2 !== \count($matches['specifier']) || 's' !== $matches['specifier'][0] || 's' !== $matches['specifier'][1]) {
-            throw new InvalidArgumentException(sprintf('The depth key pattern "%s" is not valid. You must set exactly two string placeholders.', $depthKeyPattern));
+            throw new InvalidArgumentException(\sprintf('The depth key pattern "%s" is not valid. You must set exactly two string placeholders.', $depthKeyPattern));
         }
 
         return $this->with(AbstractObjectNormalizer::DEPTH_KEY_PATTERN, $depthKeyPattern);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/DateTimeNormalizerContextBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/DateTimeNormalizerContextBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/DateTimeNormalizerContextBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/DateTimeNormalizerContextBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
             try {
                 $timezone = new \DateTimeZone($timezone);
             } catch (\Exception $e) {
-                throw new InvalidArgumentException(sprintf('The "%s" timezone is invalid.', $timezone), previous: $e);
+                throw new InvalidArgumentException(\sprintf('The "%s" timezone is invalid.', $timezone), previous: $e);
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/UidNormalizerContextBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/UidNormalizerContextBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/UidNormalizerContextBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/UidNormalizerContextBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
     public function withNormalizationFormat(?string $normalizationFormat): static
     {
         if (null !== $normalizationFormat && !\in_array($normalizationFormat, UidNormalizer::NORMALIZATION_FORMATS, true)) {
-            throw new InvalidArgumentException(sprintf('The "%s" normalization format is not valid.', $normalizationFormat));
+            throw new InvalidArgumentException(\sprintf('The "%s" normalization format is not valid.', $normalizationFormat));
         }
 
         return $this->with(UidNormalizer::NORMALIZATION_FORMAT_KEY, $normalizationFormat);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/UnwrappingDenormalizerContextBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/UnwrappingDenormalizerContextBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/UnwrappingDenormalizerContextBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Context/Normalizer/UnwrappingDenormalizerContextBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
         try {
             new PropertyPath($unwrapPath);
         } catch (InvalidPropertyPathException $e) {
-            throw new InvalidArgumentException(sprintf('The "%s" property path is not valid.', $unwrapPath), previous: $e);
+            throw new InvalidArgumentException(\sprintf('The "%s" property path is not valid.', $unwrapPath), previous: $e);
         }
 
         return $this->with(UnwrappingDenormalizer::UNWRAP_PATH, $unwrapPath);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/DataCollector/SerializerDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/DataCollector/SerializerDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/DataCollector/SerializerDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/DataCollector/SerializerDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,7 @@
         $totalTime = 0;
 
         foreach ($this->data as $handled) {
-            $totalTime += array_sum(array_map(fn (array $el): float => $el['time'], $handled));
+            $totalTime += array_sum(array_map(static fn (array $el): float => $el['time'], $handled));
         }
 
         return $totalTime;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     public function encode(mixed $data, string $format, array $context = []): string
     {
         if (!$this->encoder instanceof EncoderInterface) {
-            throw new \BadMethodCallException(sprintf('The "%s()" method cannot be called as nested encoder doesn\'t implements "%s".', __METHOD__, EncoderInterface::class));
+            throw new \BadMethodCallException(\sprintf('The "%s()" method cannot be called as nested encoder doesn\'t implements "%s".', __METHOD__, EncoderInterface::class));
         }
 
         $startTime = microtime(true);
@@ -62,7 +62,7 @@
     public function decode(string $data, string $format, array $context = []): mixed
     {
         if (!$this->encoder instanceof DecoderInterface) {
-            throw new \BadMethodCallException(sprintf('The "%s()" method cannot be called as nested encoder doesn\'t implements "%s".', __METHOD__, DecoderInterface::class));
+            throw new \BadMethodCallException(\sprintf('The "%s()" method cannot be called as nested encoder doesn\'t implements "%s".', __METHOD__, DecoderInterface::class));
         }
 
         $startTime = microtime(true);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
     public function normalize(mixed $object, ?string $format = null, array $context = []): array|string|int|float|bool|\ArrayObject|null
     {
         if (!$this->normalizer instanceof NormalizerInterface) {
-            throw new \BadMethodCallException(sprintf('The "%s()" method cannot be called as nested normalizer doesn\'t implements "%s".', __METHOD__, NormalizerInterface::class));
+            throw new \BadMethodCallException(\sprintf('The "%s()" method cannot be called as nested normalizer doesn\'t implements "%s".', __METHOD__, NormalizerInterface::class));
         }
 
         $startTime = microtime(true);
@@ -77,7 +77,7 @@
     public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed
     {
         if (!$this->normalizer instanceof DenormalizerInterface) {
-            throw new \BadMethodCallException(sprintf('The "%s()" method cannot be called as nested normalizer doesn\'t implements "%s".', __METHOD__, DenormalizerInterface::class));
+            throw new \BadMethodCallException(\sprintf('The "%s()" method cannot be called as nested normalizer doesn\'t implements "%s".', __METHOD__, DenormalizerInterface::class));
         }
 
         $startTime = microtime(true);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php	2026-05-20 10:56:49.000000000 +0200
@@ -179,8 +179,8 @@
                 && $method === $trace[$i]['function']
                 && is_a($trace[$i]['class'], $interface, true)
             ) {
-                $file = $trace[$i]['file'];
-                $line = $trace[$i]['line'];
+                $file = $trace[$i]['file'] ?? $trace[$i + 1]['file'];
+                $line = $trace[$i]['line'] ?? $trace[$i + 1]['line'];
 
                 break;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Encoder/ChainDecoder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Encoder/ChainDecoder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Encoder/ChainDecoder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Encoder/ChainDecoder.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
      * @param array<DecoderInterface> $decoders
      */
     public function __construct(
-        private readonly array $decoders = []
+        private readonly array $decoders = [],
     ) {
     }
 
@@ -78,6 +78,6 @@
             }
         }
 
-        throw new RuntimeException(sprintf('No decoder found for format "%s".', $format));
+        throw new RuntimeException(\sprintf('No decoder found for format "%s".', $format));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Encoder/ChainEncoder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Encoder/ChainEncoder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Encoder/ChainEncoder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Encoder/ChainEncoder.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
      * @param array<EncoderInterface> $encoders
      */
     public function __construct(
-        private readonly array $encoders = []
+        private readonly array $encoders = [],
     ) {
     }
 
@@ -101,6 +101,6 @@
             }
         }
 
-        throw new RuntimeException(sprintf('No encoder found for format "%s".', $format));
+        throw new RuntimeException(\sprintf('No encoder found for format "%s".', $format));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Encoder/CsvEncoder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Encoder/CsvEncoder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Encoder/CsvEncoder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Encoder/CsvEncoder.php	2026-05-20 10:56:49.000000000 +0200
@@ -65,6 +65,10 @@
         } elseif (empty($data)) {
             $data = [[]];
         } else {
+            if ($data instanceof \Traversable) {
+                // Generators can only be iterated once — convert to array to allow multiple traversals
+                $data = iterator_to_array($data);
+            }
             // Sequential arrays of arrays are considered as collections
             $i = 0;
             foreach ($data as $key => $value) {
@@ -241,7 +245,7 @@
         $asCollection = $context[self::AS_COLLECTION_KEY] ?? $this->defaultContext[self::AS_COLLECTION_KEY];
 
         if (!\is_array($headers)) {
-            throw new InvalidArgumentException(sprintf('The "%s" context variable must be an array or null, given "%s".', self::HEADERS_KEY, get_debug_type($headers)));
+            throw new InvalidArgumentException(\sprintf('The "%s" context variable must be an array or null, given "%s".', self::HEADERS_KEY, get_debug_type($headers)));
         }
 
         return [$delimiter, $enclosure, $escapeChar, $keySeparator, $headers, $escapeFormulas, $outputBom, $asCollection];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Encoder/JsonDecode.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Encoder/JsonDecode.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Encoder/JsonDecode.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Encoder/JsonDecode.php	2026-05-20 10:56:49.000000000 +0200
@@ -111,7 +111,7 @@
         }
 
         if (!class_exists(JsonParser::class)) {
-            throw new UnsupportedException(sprintf('Enabling "%s" serializer option requires seld/jsonlint. Try running "composer require seld/jsonlint".', self::DETAILED_ERROR_MESSAGES));
+            throw new UnsupportedException(\sprintf('Enabling "%s" serializer option requires seld/jsonlint. Try running "composer require seld/jsonlint".', self::DETAILED_ERROR_MESSAGES));
         }
 
         throw new NotEncodableValueException((new JsonParser())->lint($data)?->getMessage() ?: $errorMessage);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Encoder/XmlEncoder.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Encoder/XmlEncoder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Encoder/XmlEncoder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Encoder/XmlEncoder.php	2026-05-20 10:56:49.000000000 +0200
@@ -391,7 +391,7 @@
 
         if (\is_object($data)) {
             if (null === $this->serializer) {
-                throw new BadMethodCallException(sprintf('The serializer needs to be set to allow "%s()" to be used with object data.', __METHOD__));
+                throw new BadMethodCallException(\sprintf('The serializer needs to be set to allow "%s()" to be used with object data.', __METHOD__));
             }
 
             $data = $this->serializer->normalize($data, $format, $context);
@@ -410,7 +410,7 @@
             return $this->appendNode($parentNode, $data, $format, $context, 'data');
         }
 
-        throw new NotEncodableValueException('An unexpected value could not be serialized: '.(!\is_resource($data) ? var_export($data, true) : sprintf('%s resource', get_resource_type($data))));
+        throw new NotEncodableValueException('An unexpected value could not be serialized: '.(!\is_resource($data) ? var_export($data, true) : \sprintf('%s resource', get_resource_type($data))));
     }
 
     /**
@@ -459,12 +459,12 @@
             $node->appendChild($child);
         } elseif (\is_object($val)) {
             if (null === $this->serializer) {
-                throw new BadMethodCallException(sprintf('The serializer needs to be set to allow "%s()" to be used with object data.', __METHOD__));
+                throw new BadMethodCallException(\sprintf('The serializer needs to be set to allow "%s()" to be used with object data.', __METHOD__));
             }
 
             return $this->selectNodeType($node, $this->serializer->normalize($val, $format, $context), $format, $context);
         } elseif (is_numeric($val)) {
-            return $this->appendText($node, (string) $val);
+            return $this->appendText($node, is_nan($val) ? 'NAN' : (string) $val);
         } elseif (\is_string($val) && $this->needsCdataWrapping($val, $context)) {
             return $this->appendCData($node, $val);
         } elseif (\is_string($val)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Exception/ExtraAttributesException.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Exception/ExtraAttributesException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Exception/ExtraAttributesException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Exception/ExtraAttributesException.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
         private readonly array $extraAttributes,
         ?\Throwable $previous = null,
     ) {
-        $msg = sprintf('Extra attributes are not allowed ("%s" %s unknown).', implode('", "', $extraAttributes), \count($extraAttributes) > 1 ? 'are' : 'is');
+        $msg = \sprintf('Extra attributes are not allowed ("%s" %s unknown).', implode('", "', $extraAttributes), \count($extraAttributes) > 1 ? 'are' : 'is');
 
         parent::__construct($msg, 0, $previous);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/ClassMetadataFactoryCompiler.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/ClassMetadataFactoryCompiler.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/ClassMetadataFactoryCompiler.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/ClassMetadataFactoryCompiler.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,13 +25,13 @@
     public function compile(array $classMetadatas): string
     {
         return <<<EOF
-<?php
+            <?php
 
-// This file has been auto-generated by the Symfony Serializer Component.
+            // This file has been auto-generated by the Symfony Serializer Component.
 
-return [{$this->generateDeclaredClassMetadata($classMetadatas)}
-];
-EOF;
+            return [{$this->generateDeclaredClassMetadata($classMetadatas)}
+            ];
+            EOF;
     }
 
     /**
@@ -57,7 +57,7 @@
                 $classMetadata->getClassDiscriminatorMapping()->getTypesMapping(),
             ] : null;
 
-            $compiled .= sprintf("\n'%s' => %s,", $classMetadata->getName(), VarExporter::export([
+            $compiled .= \sprintf("\n'%s' => %s,", $classMetadata->getName(), VarExporter::export([
                 $attributesMetadata,
                 $classDiscriminatorMapping,
             ]));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/ClassResolverTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/ClassResolverTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/ClassResolverTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/ClassResolverTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
     {
         if (\is_string($value)) {
             if (!class_exists($value) && !interface_exists($value, false)) {
-                throw new InvalidArgumentException(sprintf('The class or interface "%s" does not exist.', $value));
+                throw new InvalidArgumentException(\sprintf('The class or interface "%s" does not exist.', $value));
             }
 
             return ltrim($value, '\\');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/CompiledClassMetadataFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/CompiledClassMetadataFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/CompiledClassMetadataFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Factory/CompiledClassMetadataFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
 
         $compiledClassMetadata = require $compiledClassMetadataFile;
         if (!\is_array($compiledClassMetadata)) {
-            throw new \RuntimeException(sprintf('Compiled metadata must be of the type array, %s given.', \gettype($compiledClassMetadata)));
+            throw new \RuntimeException(\sprintf('Compiled metadata must be of the type array, %s given.', \gettype($compiledClassMetadata)));
         }
 
         $this->compiledClassMetadata = $compiledClassMetadata;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/AccessorCollisionResolverTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/AccessorCollisionResolverTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/AccessorCollisionResolverTrait.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/AccessorCollisionResolverTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,101 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Mapping\Loader;
+
+use Symfony\Component\Serializer\Attribute\Ignore;
+
+/**
+ * Provides methods to detect accessor name collisions during serialization.
+ *
+ * @internal
+ */
+trait AccessorCollisionResolverTrait
+{
+    private function getAttributeNameFromAccessor(\ReflectionClass $class, \ReflectionMethod $method, bool $andMutator): ?string
+    {
+        $methodName = $method->name;
+
+        $i = match ($methodName[0]) {
+            's' => $andMutator && str_starts_with($methodName, 'set') ? 3 : null,
+            'g' => str_starts_with($methodName, 'get') ? 3 : null,
+            'h' => str_starts_with($methodName, 'has') ? 3 : null,
+            'c' => str_starts_with($methodName, 'can') ? 3 : null,
+            'i' => str_starts_with($methodName, 'is') ? 2 : null,
+            default => null,
+        };
+
+        // ctype_lower check to find out if method looks like accessor but actually is not, e.g. hash, cancel
+        if (null === $i || ctype_lower($methodName[$i] ?? 'a') || (!$andMutator && $method->isStatic())) {
+            return null;
+        }
+
+        if ('s' === $methodName[0] ? !$method->getNumberOfParameters() : ($method->getNumberOfRequiredParameters() || \in_array((string) $method->getReturnType(), ['void', 'never'], true))) {
+            return null;
+        }
+
+        $attributeName = substr($methodName, $i);
+
+        if (!$class->hasProperty($attributeName)) {
+            $attributeName = lcfirst($attributeName);
+        }
+
+        return $attributeName;
+    }
+
+    private function hasPropertyForAccessor(\ReflectionClass $class, string $propName): bool
+    {
+        do {
+            if ($class->hasProperty($propName)) {
+                return true;
+            }
+        } while ($class = $class->getParentClass());
+
+        return false;
+    }
+
+    private function hasAttributeNameCollision(\ReflectionClass $class, string $attributeName, string $methodName): bool
+    {
+        if ($this->hasPropertyForAccessor($class, $attributeName)) {
+            return true;
+        }
+
+        if ($class->hasMethod($attributeName)) {
+            $candidate = $class->getMethod($attributeName);
+            if ($candidate->getName() !== $methodName && $this->isReadableAccessorMethod($candidate)) {
+                return true;
+            }
+        }
+
+        $ucAttributeName = ucfirst($attributeName);
+        foreach (['get', 'is', 'has', 'can'] as $prefix) {
+            $candidateName = $prefix.$ucAttributeName;
+            if ($candidateName === $methodName || !$class->hasMethod($candidateName)) {
+                continue;
+            }
+
+            if ($this->isReadableAccessorMethod($class->getMethod($candidateName))) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    private function isReadableAccessorMethod(\ReflectionMethod $method): bool
+    {
+        return $method->isPublic()
+            && !$method->isStatic()
+            && !$method->getAttributes(Ignore::class)
+            && !$method->getNumberOfRequiredParameters()
+            && !\in_array((string) $method->getReturnType(), ['void', 'never'], true);
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/AttributeLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/AttributeLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/AttributeLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/AttributeLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,6 +34,8 @@
  */
 class AttributeLoader implements LoaderInterface
 {
+    use AccessorCollisionResolverTrait;
+
     private const KNOWN_ATTRIBUTES = [
         DiscriminatorMap::class,
         Groups::class,
@@ -123,14 +125,21 @@
             if ($method->getDeclaringClass()->name !== $className) {
                 continue;
             }
+            $name = $method->name;
 
-            if (0 === stripos($method->name, 'get') && $method->getNumberOfRequiredParameters()) {
+            if (0 === stripos($name, 'get') && $method->getNumberOfRequiredParameters()) {
                 continue; /*  matches the BC behavior in `Symfony\Component\Serializer\Normalizer\ObjectNormalizer::extractAttributes` */
             }
 
-            $accessorOrMutator = preg_match('/^(get|is|has|set)(.+)$/i', $method->name, $matches);
-            if ($accessorOrMutator && !ctype_lower($matches[2][0])) {
-                $attributeName = lcfirst($matches[2]);
+            $attributeName = $this->getAttributeNameFromAccessor($reflectionClass, $method, true);
+            $accessorOrMutator = null !== $attributeName;
+            $hasProperty = $this->hasPropertyForAccessor($method->getDeclaringClass(), $name);
+            $attributeMetadata = null;
+
+            if ($hasProperty || $accessorOrMutator) {
+                if (null === $attributeName || 's' !== $name[0] && $hasProperty && $this->hasAttributeNameCollision($reflectionClass, $attributeName, $name)) {
+                    $attributeName = $name;
+                }
 
                 if (isset($attributesMetadata[$attributeName])) {
                     $attributeMetadata = $attributesMetadata[$attributeName];
@@ -142,38 +151,38 @@
 
             foreach ($this->loadAttributes($method) as $annotation) {
                 if ($annotation instanceof Groups) {
-                    if (!$accessorOrMutator) {
-                        throw new MappingException(sprintf('Groups on "%s::%s()" cannot be added. Groups can only be added on methods beginning with "get", "is", "has" or "set".', $className, $method->name));
+                    if (!$attributeMetadata) {
+                        throw new MappingException(\sprintf('Groups on "%s::%s()" cannot be added. Groups can only be added on methods beginning with "get", "is", "has", "can" or "set".', $className, $method->name));
                     }
 
                     foreach ($annotation->getGroups() as $group) {
                         $attributeMetadata->addGroup($group);
                     }
                 } elseif ($annotation instanceof MaxDepth) {
-                    if (!$accessorOrMutator) {
-                        throw new MappingException(sprintf('MaxDepth on "%s::%s()" cannot be added. MaxDepth can only be added on methods beginning with "get", "is", "has" or "set".', $className, $method->name));
+                    if (!$attributeMetadata) {
+                        throw new MappingException(\sprintf('MaxDepth on "%s::%s()" cannot be added. MaxDepth can only be added on methods beginning with "get", "is", "has", "can" or "set".', $className, $method->name));
                     }
 
                     $attributeMetadata->setMaxDepth($annotation->getMaxDepth());
                 } elseif ($annotation instanceof SerializedName) {
-                    if (!$accessorOrMutator) {
-                        throw new MappingException(sprintf('SerializedName on "%s::%s()" cannot be added. SerializedName can only be added on methods beginning with "get", "is", "has" or "set".', $className, $method->name));
+                    if (!$attributeMetadata) {
+                        throw new MappingException(\sprintf('SerializedName on "%s::%s()" cannot be added. SerializedName can only be added on methods beginning with "get", "is", "has", "can" or "set".', $className, $method->name));
                     }
 
                     $attributeMetadata->setSerializedName($annotation->getSerializedName());
                 } elseif ($annotation instanceof SerializedPath) {
-                    if (!$accessorOrMutator) {
-                        throw new MappingException(sprintf('SerializedPath on "%s::%s()" cannot be added. SerializedPath can only be added on methods beginning with "get", "is", "has" or "set".', $className, $method->name));
+                    if (!$attributeMetadata) {
+                        throw new MappingException(\sprintf('SerializedPath on "%s::%s()" cannot be added. SerializedPath can only be added on methods beginning with "get", "is", "has", "can" or "set".', $className, $method->name));
                     }
 
                     $attributeMetadata->setSerializedPath($annotation->getSerializedPath());
                 } elseif ($annotation instanceof Ignore) {
-                    if ($accessorOrMutator) {
+                    if ($attributeMetadata) {
                         $attributeMetadata->setIgnore(true);
                     }
                 } elseif ($annotation instanceof Context) {
-                    if (!$accessorOrMutator) {
-                        throw new MappingException(sprintf('Context on "%s::%s()" cannot be added. Context can only be added on methods beginning with "get", "is", "has" or "set".', $className, $method->name));
+                    if (!$attributeMetadata) {
+                        throw new MappingException(\sprintf('Context on "%s::%s()" cannot be added. Context can only be added on methods beginning with "get", "is", "has", "can" or "set".', $className, $method->name));
                     }
 
                     $this->setAttributeContextsForGroups($annotation, $attributeMetadata);
@@ -198,12 +207,12 @@
                     }
                     $on = match (true) {
                         $reflector instanceof \ReflectionClass => ' on class '.$reflector->name,
-                        $reflector instanceof \ReflectionMethod => sprintf(' on "%s::%s()"', $reflector->getDeclaringClass()->name, $reflector->name),
-                        $reflector instanceof \ReflectionProperty => sprintf(' on "%s::$%s"', $reflector->getDeclaringClass()->name, $reflector->name),
+                        $reflector instanceof \ReflectionMethod => \sprintf(' on "%s::%s()"', $reflector->getDeclaringClass()->name, $reflector->name),
+                        $reflector instanceof \ReflectionProperty => \sprintf(' on "%s::$%s"', $reflector->getDeclaringClass()->name, $reflector->name),
                         default => '',
                     };
 
-                    throw new MappingException(sprintf('Could not instantiate attribute "%s"%s.', $attribute->getName(), $on), 0, $e);
+                    throw new MappingException(\sprintf('Could not instantiate attribute "%s"%s.', $attribute->getName(), $on), 0, $e);
                 }
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/FileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/FileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/FileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/FileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,11 +30,11 @@
     public function __construct(string $file)
     {
         if (!is_file($file)) {
-            throw new MappingException(sprintf('The mapping file "%s" does not exist.', $file));
+            throw new MappingException(\sprintf('The mapping file "%s" does not exist.', $file));
         }
 
         if (!is_readable($file)) {
-            throw new MappingException(sprintf('The mapping file "%s" is not readable.', $file));
+            throw new MappingException(\sprintf('The mapping file "%s" is not readable.', $file));
         }
 
         $this->file = $file;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/LoaderChain.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/LoaderChain.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/LoaderChain.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/LoaderChain.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
     {
         foreach ($loaders as $loader) {
             if (!$loader instanceof LoaderInterface) {
-                throw new MappingException(sprintf('Class "%s" is expected to implement LoaderInterface.', get_debug_type($loader)));
+                throw new MappingException(\sprintf('Class "%s" is expected to implement LoaderInterface.', get_debug_type($loader)));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/XmlFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/XmlFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/XmlFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/XmlFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -70,7 +70,7 @@
                     try {
                         $attributeMetadata->setSerializedPath(new PropertyPath((string) $attribute['serialized-path']));
                     } catch (InvalidPropertyPathException) {
-                        throw new MappingException(sprintf('The "serialized-path" value must be a valid property path for the attribute "%s" of the class "%s".', $attributeName, $classMetadata->getName()));
+                        throw new MappingException(\sprintf('The "serialized-path" value must be a valid property path for the attribute "%s" of the class "%s".', $attributeName, $classMetadata->getName()));
                     }
                 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/YamlFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/YamlFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/YamlFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Mapping/Loader/YamlFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,12 +59,12 @@
 
                 if (isset($data['groups'])) {
                     if (!\is_array($data['groups'])) {
-                        throw new MappingException(sprintf('The "groups" key must be an array of strings in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
+                        throw new MappingException(\sprintf('The "groups" key must be an array of strings in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
                     }
 
                     foreach ($data['groups'] as $group) {
                         if (!\is_string($group)) {
-                            throw new MappingException(sprintf('Group names must be strings in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
+                            throw new MappingException(\sprintf('Group names must be strings in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
                         }
 
                         $attributeMetadata->addGroup($group);
@@ -73,7 +73,7 @@
 
                 if (isset($data['max_depth'])) {
                     if (!\is_int($data['max_depth'])) {
-                        throw new MappingException(sprintf('The "max_depth" value must be an integer in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
+                        throw new MappingException(\sprintf('The "max_depth" value must be an integer in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
                     }
 
                     $attributeMetadata->setMaxDepth($data['max_depth']);
@@ -81,7 +81,7 @@
 
                 if (isset($data['serialized_name'])) {
                     if (!\is_string($data['serialized_name']) || '' === $data['serialized_name']) {
-                        throw new MappingException(sprintf('The "serialized_name" value must be a non-empty string in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
+                        throw new MappingException(\sprintf('The "serialized_name" value must be a non-empty string in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
                     }
 
                     $attributeMetadata->setSerializedName($data['serialized_name']);
@@ -91,13 +91,13 @@
                     try {
                         $attributeMetadata->setSerializedPath(new PropertyPath((string) $data['serialized_path']));
                     } catch (InvalidPropertyPathException) {
-                        throw new MappingException(sprintf('The "serialized_path" value must be a valid property path in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
+                        throw new MappingException(\sprintf('The "serialized_path" value must be a valid property path in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
                     }
                 }
 
                 if (isset($data['ignore'])) {
                     if (!\is_bool($data['ignore'])) {
-                        throw new MappingException(sprintf('The "ignore" value must be a boolean in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
+                        throw new MappingException(\sprintf('The "ignore" value must be a boolean in "%s" for the attribute "%s" of the class "%s".', $this->file, $attribute, $classMetadata->getName()));
                     }
 
                     $attributeMetadata->setIgnore($data['ignore']);
@@ -124,11 +124,11 @@
 
         if (isset($yaml['discriminator_map'])) {
             if (!isset($yaml['discriminator_map']['type_property'])) {
-                throw new MappingException(sprintf('The "type_property" key must be set for the discriminator map of the class "%s" in "%s".', $classMetadata->getName(), $this->file));
+                throw new MappingException(\sprintf('The "type_property" key must be set for the discriminator map of the class "%s" in "%s".', $classMetadata->getName(), $this->file));
             }
 
             if (!isset($yaml['discriminator_map']['mapping'])) {
-                throw new MappingException(sprintf('The "mapping" key must be set for the discriminator map of the class "%s" in "%s".', $classMetadata->getName(), $this->file));
+                throw new MappingException(\sprintf('The "mapping" key must be set for the discriminator map of the class "%s" in "%s".', $classMetadata->getName(), $this->file));
             }
 
             $classMetadata->setClassDiscriminatorMapping(new ClassDiscriminatorMapping(
@@ -153,7 +153,7 @@
     private function getClassesFromYaml(): array
     {
         if (!stream_is_local($this->file)) {
-            throw new MappingException(sprintf('This is not a local file "%s".', $this->file));
+            throw new MappingException(\sprintf('This is not a local file "%s".', $this->file));
         }
 
         $this->yamlParser ??= new Parser();
@@ -165,7 +165,7 @@
         }
 
         if (!\is_array($classes)) {
-            throw new MappingException(sprintf('The file "%s" must contain a YAML array.', $this->file));
+            throw new MappingException(\sprintf('The file "%s" must contain a YAML array.', $this->file));
         }
 
         return $classes;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/NameConverter/CamelCaseToSnakeCaseNameConverter.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/NameConverter/CamelCaseToSnakeCaseNameConverter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/NameConverter/CamelCaseToSnakeCaseNameConverter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/NameConverter/CamelCaseToSnakeCaseNameConverter.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,7 +39,7 @@
 
     public function denormalize(string $propertyName): string
     {
-        $camelCasedName = preg_replace_callback('/(^|_|\.)+(.)/', fn ($match) => ('.' === $match[1] ? '_' : '').strtoupper($match[2]), $propertyName);
+        $camelCasedName = preg_replace_callback('/(^|_|\.)+(.)/', static fn ($match) => ('.' === $match[1] ? '_' : '').strtoupper($match[2]), $propertyName);
 
         if ($this->lowerCamelCase) {
             $camelCasedName = lcfirst($camelCasedName);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/NameConverter/MetadataAwareNameConverter.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/NameConverter/MetadataAwareNameConverter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/NameConverter/MetadataAwareNameConverter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/NameConverter/MetadataAwareNameConverter.php	2026-05-20 10:56:49.000000000 +0200
@@ -80,7 +80,7 @@
         }
 
         if (null !== $attributesMetadata[$propertyName]->getSerializedName() && null !== $attributesMetadata[$propertyName]->getSerializedPath()) {
-            throw new LogicException(sprintf('Found SerializedName and SerializedPath attributes on property "%s" of class "%s".', $propertyName, $class));
+            throw new LogicException(\sprintf('Found SerializedName and SerializedPath attributes on property "%s" of class "%s".', $propertyName, $class));
         }
 
         return $attributesMetadata[$propertyName]->getSerializedName() ?? null;
@@ -124,7 +124,7 @@
             }
 
             if (null !== $metadata->getSerializedName() && null !== $metadata->getSerializedPath()) {
-                throw new LogicException(sprintf('Found SerializedName and SerializedPath attributes on property "%s" of class "%s".', $name, $class));
+                throw new LogicException(\sprintf('Found SerializedName and SerializedPath attributes on property "%s" of class "%s".', $name, $class));
             }
 
             $metadataGroups = $metadata->getGroups();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -152,7 +152,7 @@
         $this->validateCallbackContext($this->defaultContext, 'default');
 
         if (isset($this->defaultContext[self::CIRCULAR_REFERENCE_HANDLER]) && !\is_callable($this->defaultContext[self::CIRCULAR_REFERENCE_HANDLER])) {
-            throw new InvalidArgumentException(sprintf('Invalid callback found in the "%s" default context option.', self::CIRCULAR_REFERENCE_HANDLER));
+            throw new InvalidArgumentException(\sprintf('Invalid callback found in the "%s" default context option.', self::CIRCULAR_REFERENCE_HANDLER));
         }
     }
 
@@ -208,7 +208,7 @@
             return $circularReferenceHandler($object, $format, $context);
         }
 
-        throw new CircularReferenceException(sprintf('A circular reference has been detected when serializing the object of class "%s" (configured limit: %d).', get_debug_type($object), $context[self::CIRCULAR_REFERENCE_LIMIT] ?? $this->defaultContext[self::CIRCULAR_REFERENCE_LIMIT]));
+        throw new CircularReferenceException(\sprintf('A circular reference has been detected when serializing the object of class "%s" (configured limit: %d).', get_debug_type($object), $context[self::CIRCULAR_REFERENCE_LIMIT] ?? $this->defaultContext[self::CIRCULAR_REFERENCE_LIMIT]));
     }
 
     /**
@@ -225,7 +225,7 @@
         $allowExtraAttributes = $context[self::ALLOW_EXTRA_ATTRIBUTES] ?? $this->defaultContext[self::ALLOW_EXTRA_ATTRIBUTES];
         if (!$this->classMetadataFactory) {
             if (!$allowExtraAttributes) {
-                throw new LogicException(sprintf('A class metadata factory must be provided in the constructor when setting "%s" to false.', self::ALLOW_EXTRA_ATTRIBUTES));
+                throw new LogicException(\sprintf('A class metadata factory must be provided in the constructor when setting "%s" to false.', self::ALLOW_EXTRA_ATTRIBUTES));
             }
 
             return false;
@@ -250,9 +250,14 @@
             }
         }
 
-        if (!$ignoreUsed && [] === $groups && $allowExtraAttributes) {
-            // Backward Compatibility with the code using this method written before the introduction of @Ignore
-            return false;
+        if (!$ignoreUsed && $allowExtraAttributes) {
+            if ([] === $groups) {
+                return false;
+            }
+
+            if ([] === $allowedAttributes && \in_array('*', $groups, true)) {
+                return false;
+            }
         }
 
         return $allowedAttributes;
@@ -333,7 +338,6 @@
 
         $constructor = $this->getConstructor($data, $class, $context, $reflectionClass, $allowedAttributes);
         if ($constructor) {
-            $context['has_constructor'] = true;
             if (true !== $constructor->isPublic()) {
                 return $reflectionClass->newInstanceWithoutConstructor();
             }
@@ -342,6 +346,7 @@
             $missingConstructorArguments = [];
             $params = [];
             $unsetKeys = [];
+            $collectedErrorCountBeforeConstructor = \count($context['not_normalizable_value_exceptions'] ?? []);
 
             foreach ($constructorParameters as $constructorParameter) {
                 $paramName = $constructorParameter->name;
@@ -353,7 +358,7 @@
                 if ($constructorParameter->isVariadic()) {
                     if ($allowed && !$ignored && (isset($data[$key]) || \array_key_exists($key, $data))) {
                         if (!\is_array($data[$key])) {
-                            throw new RuntimeException(sprintf('Cannot create an instance of "%s" from serialized data because the variadic parameter "%s" can only accept an array.', $class, $constructorParameter->name));
+                            throw new RuntimeException(\sprintf('Cannot create an instance of "%s" from serialized data because the variadic parameter "%s" can only accept an array.', $class, $constructorParameter->name));
                         }
 
                         $variadicParameters = [];
@@ -408,16 +413,22 @@
                         continue;
                     }
 
-                    $constructorParameterType = 'unknown';
+                    $constructorParameterTypes = [];
                     $reflectionType = $constructorParameter->getType();
-                    if ($reflectionType instanceof \ReflectionNamedType) {
-                        $constructorParameterType = $reflectionType->getName();
+                    if ($reflectionType instanceof \ReflectionUnionType) {
+                        foreach ($reflectionType->getTypes() as $reflectionType) {
+                            $constructorParameterTypes[] = (string) $reflectionType;
+                        }
+                    } elseif ($reflectionType instanceof \ReflectionType) {
+                        $constructorParameterTypes[] = (string) $reflectionType;
+                    } else {
+                        $constructorParameterTypes[] = 'unknown';
                     }
 
                     $exception = NotNormalizableValueException::createForUnexpectedDataType(
-                        sprintf('Failed to create object because the class misses the "%s" property.', $constructorParameter->name),
+                        \sprintf('Failed to create object because the class misses the "%s" property.', $constructorParameter->name),
                         null,
-                        [$constructorParameterType],
+                        $constructorParameterTypes,
                         $attributeContext['deserialization_path'] ?? null,
                         true
                     );
@@ -426,7 +437,7 @@
             }
 
             if ($missingConstructorArguments) {
-                throw new MissingConstructorArgumentsException(sprintf('Cannot create an instance of "%s" from serialized data because its constructor requires the following parameters to be present : "$%s".', $class, implode('", "$', $missingConstructorArguments)), 0, null, $missingConstructorArguments, $class);
+                throw new MissingConstructorArgumentsException(\sprintf('Cannot create an instance of "%s" from serialized data because its constructor requires the following parameters to be present : "$%s".', $class, implode('", "$', $missingConstructorArguments)), 0, null, $missingConstructorArguments, $class);
             }
 
             if (!$constructor->isConstructor()) {
@@ -454,19 +465,28 @@
                     throw $e;
                 }
 
+                // Only report the TypeError when no constructor-argument error was collected for
+                // this instantiation. When the loop above already recorded missing or invalid
+                // arguments, the TypeError is a downstream consequence of those errors and would
+                // just duplicate the report.
+                if (\count($context['not_normalizable_value_exceptions']) === $collectedErrorCountBeforeConstructor) {
+                    $context['not_normalizable_value_exceptions'][] = NotNormalizableValueException::createForUnexpectedDataType(
+                        \sprintf('Failed to create an instance of "%s" from constructor: %s', $class, $e->getMessage()),
+                        null,
+                        ['unknown'],
+                        $context['deserialization_path'] ?? null,
+                        false,
+                        0,
+                        $e,
+                    );
+                }
+
                 return $reflectionClass->newInstanceWithoutConstructor();
             }
         }
 
-        unset($context['has_constructor']);
-
         if (!$reflectionClass->isInstantiable()) {
-            throw NotNormalizableValueException::createForUnexpectedDataType(
-                sprintf('Failed to create object because the class "%s" is not instantiable.', $class),
-                $data,
-                ['unknown'],
-                $context['deserialization_path'] ?? null
-            );
+            throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('Failed to create object because the class "%s" is not instantiable.', $class), $data, ['unknown'], $context['deserialization_path'] ?? null);
         }
 
         return new $class();
@@ -483,13 +503,13 @@
                 new \ReflectionClass($parameterClass); // throws a \ReflectionException if the class doesn't exist
 
                 if (!$this->serializer instanceof DenormalizerInterface) {
-                    throw new LogicException(sprintf('Cannot create an instance of "%s" from serialized data because the serializer inject in "%s" is not a denormalizer.', $parameterClass, static::class));
+                    throw new LogicException(\sprintf('Cannot create an instance of "%s" from serialized data because the serializer inject in "%s" is not a denormalizer.', $parameterClass, static::class));
                 }
 
                 $parameterData = $this->serializer->denormalize($parameterData, $parameterClass, $format, $this->createChildContext($context, $parameterName, $format));
             }
         } catch (\ReflectionException $e) {
-            throw new RuntimeException(sprintf('Could not determine the class of the parameter "%s".', $parameterName), 0, $e);
+            throw new RuntimeException(\sprintf('Could not determine the class of the parameter "%s".', $parameterName), 0, $e);
         } catch (MissingConstructorArgumentsException $e) {
             if (!$parameter->getType()->allowsNull()) {
                 throw $e;
@@ -529,12 +549,12 @@
         }
 
         if (!\is_array($context[self::CALLBACKS])) {
-            throw new InvalidArgumentException(sprintf('The "%s"%s context option must be an array of callables.', self::CALLBACKS, '' !== $contextType ? " $contextType" : ''));
+            throw new InvalidArgumentException(\sprintf('The "%s"%s context option must be an array of callables.', self::CALLBACKS, '' !== $contextType ? " $contextType" : ''));
         }
 
         foreach ($context[self::CALLBACKS] as $attribute => $callback) {
             if (!\is_callable($callback)) {
-                throw new InvalidArgumentException(sprintf('Invalid callback found for attribute "%s" in the "%s"%s context option.', $attribute, self::CALLBACKS, '' !== $contextType ? " $contextType" : ''));
+                throw new InvalidArgumentException(\sprintf('Invalid callback found for attribute "%s" in the "%s"%s context option.', $attribute, self::CALLBACKS, '' !== $contextType ? " $contextType" : ''));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
 
 namespace Symfony\Component\Serializer\Normalizer;
 
-use Symfony\Component\PropertyAccess\Exception\InvalidArgumentException as PropertyAccessInvalidArgumentException;
+use Symfony\Component\PropertyAccess\Exception\NoSuchIndexException;
 use Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException;
 use Symfony\Component\PropertyAccess\Exception\UninitializedPropertyException;
 use Symfony\Component\PropertyAccess\PropertyAccess;
@@ -25,6 +25,7 @@
 use Symfony\Component\Serializer\Exception\LogicException;
 use Symfony\Component\Serializer\Exception\MissingConstructorArgumentsException;
 use Symfony\Component\Serializer\Exception\NotNormalizableValueException;
+use Symfony\Component\Serializer\Mapping\AttributeMetadata;
 use Symfony\Component\Serializer\Mapping\AttributeMetadataInterface;
 use Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata;
 use Symfony\Component\Serializer\Mapping\ClassDiscriminatorResolverInterface;
@@ -126,7 +127,7 @@
         parent::__construct($classMetadataFactory, $nameConverter, $defaultContext);
 
         if (isset($this->defaultContext[self::MAX_DEPTH_HANDLER]) && !\is_callable($this->defaultContext[self::MAX_DEPTH_HANDLER])) {
-            throw new InvalidArgumentException(sprintf('The "%s" given in the default context is not callable.', self::MAX_DEPTH_HANDLER));
+            throw new InvalidArgumentException(\sprintf('The "%s" given in the default context is not callable.', self::MAX_DEPTH_HANDLER));
         }
 
         $this->defaultContext[self::EXCLUDE_FROM_CACHE_KEY] = array_merge($this->defaultContext[self::EXCLUDE_FROM_CACHE_KEY] ?? [], [self::CIRCULAR_REFERENCE_LIMIT_COUNTERS]);
@@ -174,7 +175,7 @@
         if (isset($context[self::MAX_DEPTH_HANDLER])) {
             $maxDepthHandler = $context[self::MAX_DEPTH_HANDLER];
             if (!\is_callable($maxDepthHandler)) {
-                throw new InvalidArgumentException(sprintf('The "%s" given in the context is not callable.', self::MAX_DEPTH_HANDLER));
+                throw new InvalidArgumentException(\sprintf('The "%s" given in the context is not callable.', self::MAX_DEPTH_HANDLER));
             }
         } else {
             $maxDepthHandler = null;
@@ -192,8 +193,8 @@
                 $attributeValue = $attribute === $this->classDiscriminatorResolver?->getMappingForMappedObject($object)?->getTypeProperty()
                     ? $this->classDiscriminatorResolver?->getTypeForMappedObject($object)
                     : $this->getAttributeValue($object, $attribute, $format, $attributeContext);
-            } catch (UninitializedPropertyException|\Error $e) {
-                if (($context[self::SKIP_UNINITIALIZED_VALUES] ?? $this->defaultContext[self::SKIP_UNINITIALIZED_VALUES] ?? true) && $this->isUninitializedValueError($e)) {
+            } catch (UninitializedPropertyException $e) {
+                if ($context[self::SKIP_UNINITIALIZED_VALUES] ?? $this->defaultContext[self::SKIP_UNINITIALIZED_VALUES] ?? true) {
                     continue;
                 }
                 throw $e;
@@ -209,13 +210,12 @@
         foreach ($stack as $attribute => $attributeValue) {
             $attributeContext = $this->getAttributeNormalizationContext($object, $attribute, $context);
 
-            if (null === $attributeValue || \is_scalar($attributeValue)) {
-                $data = $this->updateData($data, $attribute, $attributeValue, $class, $format, $attributeContext, $attributesMetadata, $classMetadata);
-                continue;
-            }
-
             if (!$this->serializer instanceof NormalizerInterface) {
-                throw new LogicException(sprintf('Cannot normalize attribute "%s" because the injected serializer is not a normalizer.', $attribute));
+                if (null === $attributeValue || \is_scalar($attributeValue)) {
+                    $data = $this->updateData($data, $attribute, $attributeValue, $class, $format, $attributeContext, $attributesMetadata, $classMetadata);
+                    continue;
+                }
+                throw new LogicException(\sprintf('Cannot normalize attribute "%s" because the injected serializer is not a normalizer.', $attribute));
             }
 
             $childContext = $this->createChildContext($attributeContext, $attribute, $format);
@@ -291,6 +291,8 @@
      * Gets the attribute value.
      *
      * @return mixed
+     *
+     * @throws UninitializedPropertyException When the attribute exists but is not initialized on the object
      */
     abstract protected function getAttributeValue(object $object, string $attribute, ?string $format = null, array $context = []);
 
@@ -333,15 +335,16 @@
 
         $nestedAttributes = $this->getNestedAttributes($mappedClass);
         $nestedData = $originalNestedData = [];
-        $propertyAccessor = PropertyAccess::createPropertyAccessor();
+        $propertyAccessor = PropertyAccess::createPropertyAccessorBuilder()->enableExceptionOnInvalidIndex()->getPropertyAccessor();
         foreach ($nestedAttributes as $property => $serializedPath) {
-            if (null === $value = $propertyAccessor->getValue($normalizedData, $serializedPath)) {
-                continue;
+            try {
+                $value = $propertyAccessor->getValue($normalizedData, $serializedPath);
+                $convertedProperty = $this->nameConverter ? $this->nameConverter->normalize($property, $mappedClass, $format, $context) : $property;
+                $nestedData[$convertedProperty] = $value;
+                $originalNestedData[$property] = $value;
+                $normalizedData = $this->removeNestedValue($serializedPath->getElements(), $normalizedData);
+            } catch (NoSuchIndexException) {
             }
-            $convertedProperty = $this->nameConverter ? $this->nameConverter->normalize($property, $mappedClass, $format, $context) : $property;
-            $nestedData[$convertedProperty] = $value;
-            $originalNestedData[$property] = $value;
-            $normalizedData = $this->removeNestedValue($serializedPath->getElements(), $normalizedData);
         }
 
         $normalizedData = $nestedData + $normalizedData;
@@ -354,7 +357,17 @@
                 $notConverted = $attribute;
                 $attribute = $this->nameConverter->denormalize($attribute, $resolvedClass, $format, $context);
                 if (isset($nestedData[$notConverted]) && !isset($originalNestedData[$attribute])) {
-                    throw new LogicException(sprintf('Duplicate values for key "%s" found. One value is set via the SerializedPath attribute: "%s", the other one is set via the SerializedName attribute: "%s".', $notConverted, implode('->', $nestedAttributes[$notConverted]->getElements()), $attribute));
+                    throw new LogicException(\sprintf('Duplicate values for key "%s" found. One value is set via the SerializedPath attribute: "%s", the other one is set via the SerializedName attribute: "%s".', $notConverted, implode('->', $nestedAttributes[$notConverted]->getElements()), $attribute));
+                }
+
+                if ($attribute === $notConverted
+                    && !($context[self::ALLOW_EXTRA_ATTRIBUTES] ?? $this->defaultContext[self::ALLOW_EXTRA_ATTRIBUTES])
+                    && (false === $allowedAttributes || \in_array($attribute, $allowedAttributes, true))
+                    && $this->nameConverter->normalize($attribute, $resolvedClass, $format, $context) !== $attribute
+                ) {
+                    // Input was in wrong format (e.g., camelCase when snake_case expected)
+                    $extraAttributes[] = $notConverted;
+                    continue;
                 }
             }
 
@@ -376,8 +389,8 @@
                         ? $discriminatorMapping
                         : $this->getAttributeValue($object, $attribute, $format, $attributeContext);
                 } catch (NoSuchPropertyException) {
-                } catch (UninitializedPropertyException|\Error $e) {
-                    if (!(($context[self::SKIP_UNINITIALIZED_VALUES] ?? $this->defaultContext[self::SKIP_UNINITIALIZED_VALUES] ?? true) && $this->isUninitializedValueError($e))) {
+                } catch (UninitializedPropertyException $e) {
+                    if (!($context[self::SKIP_UNINITIALIZED_VALUES] ?? $this->defaultContext[self::SKIP_UNINITIALIZED_VALUES] ?? true)) {
                         throw $e;
                     }
                 }
@@ -401,16 +414,7 @@
 
             try {
                 $this->setAttributeValue($object, $attribute, $value, $format, $attributeContext);
-            } catch (PropertyAccessInvalidArgumentException $e) {
-                $exception = NotNormalizableValueException::createForUnexpectedDataType(
-                    sprintf('Failed to denormalize attribute "%s" value for class "%s": '.$e->getMessage(), $attribute, $type),
-                    $data,
-                    ['unknown'],
-                    $attributeContext['deserialization_path'] ?? null,
-                    false,
-                    $e->getCode(),
-                    $e
-                );
+            } catch (NotNormalizableValueException $exception) {
                 if (isset($context['not_normalizable_value_exceptions'])) {
                     $context['not_normalizable_value_exceptions'][] = $exception;
                     continue;
@@ -428,6 +432,8 @@
 
     /**
      * @return void
+     *
+     * @throws NotNormalizableValueException When the value cannot be assigned to the attribute (e.g. type mismatch)
      */
     abstract protected function setAttributeValue(object $object, string $attribute, mixed $value, ?string $format = null, array $context = []);
 
@@ -464,7 +470,7 @@
 
             // This try-catch should cover all NotNormalizableValueException (and all return branches after the first
             // exception) so we could try denormalizing all types of an union type. If the target type is not an union
-            // type, we will just re-throw the catched exception.
+            // type, we will just re-throw the caught exception.
             // In the case of no denormalization succeeds with an union type, it will fall back to the default exception
             // with the acceptable types list.
             try {
@@ -494,14 +500,14 @@
                             } elseif ('true' === $data || '1' === $data) {
                                 $data = true;
                             } else {
-                                throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The type of the "%s" attribute for class "%s" must be bool ("%s" given).', $attribute, $currentClass, $data), $data, [Type::BUILTIN_TYPE_BOOL], $context['deserialization_path'] ?? null);
+                                throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('The type of the "%s" attribute for class "%s" must be bool ("%s" given).', $attribute, $currentClass, $data), $data, [Type::BUILTIN_TYPE_BOOL], $context['deserialization_path'] ?? null);
                             }
                             break;
                         case Type::BUILTIN_TYPE_INT:
                             if (ctype_digit(isset($data[0]) && '-' === $data[0] ? substr($data, 1) : $data)) {
                                 $data = (int) $data;
                             } else {
-                                throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The type of the "%s" attribute for class "%s" must be int ("%s" given).', $attribute, $currentClass, $data), $data, [Type::BUILTIN_TYPE_INT], $context['deserialization_path'] ?? null);
+                                throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('The type of the "%s" attribute for class "%s" must be int ("%s" given).', $attribute, $currentClass, $data), $data, [Type::BUILTIN_TYPE_INT], $context['deserialization_path'] ?? null);
                             }
                             break;
                         case Type::BUILTIN_TYPE_FLOAT:
@@ -513,7 +519,7 @@
                                 'NaN' => \NAN,
                                 'INF' => \INF,
                                 '-INF' => -\INF,
-                                default => throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The type of the "%s" attribute for class "%s" must be float ("%s" given).', $attribute, $currentClass, $data), $data, [Type::BUILTIN_TYPE_FLOAT], $context['deserialization_path'] ?? null),
+                                default => throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('The type of the "%s" attribute for class "%s" must be float ("%s" given).', $attribute, $currentClass, $data), $data, [Type::BUILTIN_TYPE_FLOAT], $context['deserialization_path'] ?? null),
                             };
                     }
                 }
@@ -522,18 +528,18 @@
                     $builtinType = Type::BUILTIN_TYPE_OBJECT;
                     $class = $collectionValueType->getClassName().'[]';
 
-                    if (\count($collectionKeyType = $type->getCollectionKeyTypes()) > 0) {
+                    if ($collectionKeyType = $type->getCollectionKeyTypes()) {
                         $context['key_type'] = \count($collectionKeyType) > 1 ? $collectionKeyType : $collectionKeyType[0];
                     }
 
                     $context['value_type'] = $collectionValueType;
-                } elseif ($type->isCollection() && \count($collectionValueType = $type->getCollectionValueTypes()) > 0 && Type::BUILTIN_TYPE_ARRAY === $collectionValueType[0]->getBuiltinType()) {
+                } elseif ($type->isCollection() && ($collectionValueType = $type->getCollectionValueTypes()) && Type::BUILTIN_TYPE_ARRAY === $collectionValueType[0]->getBuiltinType()) {
                     // get inner type for any nested array
                     [$innerType] = $collectionValueType;
 
                     // note that it will break for any other builtinType
                     $dimensions = '[]';
-                    while (\count($innerType->getCollectionValueTypes()) > 0 && Type::BUILTIN_TYPE_ARRAY === $innerType->getBuiltinType()) {
+                    while ($innerType->getCollectionValueTypes() && Type::BUILTIN_TYPE_ARRAY === $innerType->getBuiltinType()) {
                         $dimensions .= '[]';
                         [$innerType] = $innerType->getCollectionValueTypes();
                     }
@@ -542,6 +548,12 @@
                         // the builtinType is the inner one and the class is the class followed by []...[]
                         $builtinType = $innerType->getBuiltinType();
                         $class = $innerType->getClassName().$dimensions;
+
+                        if ($collectionKeyType = $type->getCollectionKeyTypes()) {
+                            $context['key_type'] = \count($collectionKeyType) > 1 ? $collectionKeyType : $collectionKeyType[0];
+                        }
+
+                        $context['value_type'] = $collectionValueType[0];
                     } else {
                         // default fallback (keep it as array)
                         $builtinType = $type->getBuiltinType();
@@ -556,7 +568,7 @@
 
                 if (Type::BUILTIN_TYPE_OBJECT === $builtinType && null !== $class) {
                     if (!$this->serializer instanceof DenormalizerInterface) {
-                        throw new LogicException(sprintf('Cannot denormalize attribute "%s" for class "%s" because injected serializer is not a denormalizer.', $attribute, $class));
+                        throw new LogicException(\sprintf('Cannot denormalize attribute "%s" for class "%s" because injected serializer is not a denormalizer.', $attribute, $class));
                     }
 
                     $childContext = $this->createChildContext($context, $attribute, $format);
@@ -600,6 +612,8 @@
                 if (!$isUnionType && !$isNullable) {
                     throw $e;
                 }
+
+                $expectedTypes[Type::BUILTIN_TYPE_OBJECT === $builtinType && $class ? $class : $builtinType] = true;
             } catch (ExtraAttributesException $e) {
                 if (!$isUnionType && !$isNullable) {
                     throw $e;
@@ -635,7 +649,7 @@
             return $data;
         }
 
-        throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The type of the "%s" attribute for class "%s" must be one of "%s" ("%s" given).', $attribute, $currentClass, implode('", "', array_keys($expectedTypes)), get_debug_type($data)), $data, array_keys($expectedTypes), $context['deserialization_path'] ?? $attribute);
+        throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('The type of the "%s" attribute for class "%s" must be one of "%s" ("%s" given).', $attribute, $currentClass, implode('", "', array_keys($expectedTypes)), get_debug_type($data)), $data, array_keys($expectedTypes), $context['deserialization_path'] ?? $attribute);
     }
 
     /**
@@ -701,7 +715,7 @@
         if (null !== $classMetadata && null !== $serializedPath = ($attributesMetadata[$attribute] ?? null)?->getSerializedPath()) {
             $propertyAccessor = PropertyAccess::createPropertyAccessor();
             if ($propertyAccessor->isReadable($data, $serializedPath) && null !== $propertyAccessor->getValue($data, $serializedPath)) {
-                throw new LogicException(sprintf('The element you are trying to set is already populated: "%s".', (string) $serializedPath));
+                throw new LogicException(\sprintf('The element you are trying to set is already populated: "%s".', (string) $serializedPath));
             }
             $propertyAccessor->setValue($data, $serializedPath, $attributeValue);
 
@@ -730,7 +744,7 @@
             return false;
         }
 
-        $key = sprintf(self::DEPTH_KEY_PATTERN, $class, $attribute);
+        $key = \sprintf(self::DEPTH_KEY_PATTERN, $class, $attribute);
         if (!isset($context[$key])) {
             $context[$key] = 1;
 
@@ -765,6 +779,30 @@
         return $context;
     }
 
+    protected function getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false)
+    {
+        if (false === $allowedAttributes = parent::getAllowedAttributes($classOrObject, $context, $attributesAsString)) {
+            return false;
+        }
+
+        if (null !== $this->classDiscriminatorResolver) {
+            $class = \is_object($classOrObject) ? $classOrObject::class : $classOrObject;
+            if (null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForMappedObject($classOrObject)) {
+                $allowedAttributes[] = $attributesAsString ? $discriminatorMapping->getTypeProperty() : new AttributeMetadata($discriminatorMapping->getTypeProperty());
+            }
+
+            if (null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForClass($class)) {
+                $attributes = [];
+                foreach ($discriminatorMapping->getTypesMapping() as $mappedClass) {
+                    $attributes[] = parent::getAllowedAttributes($mappedClass, $context, $attributesAsString);
+                }
+                $allowedAttributes = array_merge($allowedAttributes, ...$attributes);
+            }
+        }
+
+        return $allowedAttributes;
+    }
+
     /**
      * Builds the cache key for the attributes cache.
      *
@@ -791,17 +829,6 @@
     }
 
     /**
-     * This error may occur when specific object normalizer implementation gets attribute value
-     * by accessing a public uninitialized property or by calling a method accessing such property.
-     */
-    private function isUninitializedValueError(\Error|UninitializedPropertyException $e): bool
-    {
-        return $e instanceof UninitializedPropertyException
-            || str_starts_with($e->getMessage(), 'Typed property')
-            && str_ends_with($e->getMessage(), 'must not be accessed before initialization');
-    }
-
-    /**
      * Returns all attributes with a SerializedPath attribute and the respective path.
      */
     private function getNestedAttributes(string $class): array
@@ -819,7 +846,7 @@
             }
             $pathIdentifier = implode(',', $serializedPath->getElements());
             if (isset($serializedPaths[$pathIdentifier])) {
-                throw new LogicException(sprintf('Duplicate serialized path: "%s" used for properties "%s" and "%s".', $pathIdentifier, $serializedPaths[$pathIdentifier], $name));
+                throw new LogicException(\sprintf('Duplicate serialized path: "%s" used for properties "%s" and "%s".', $pathIdentifier, $serializedPaths[$pathIdentifier], $name));
             }
             $serializedPaths[$pathIdentifier] = $name;
             $properties[$name] = $serializedPath;
@@ -831,7 +858,7 @@
     private function removeNestedValue(array $path, array $data): array
     {
         $element = array_shift($path);
-        if (!$path || !$data[$element] = $this->removeNestedValue($path, $data[$element])) {
+        if (!$path || !$data[$element] || !$data[$element] = $this->removeNestedValue($path, $data[$element])) {
             unset($data[$element]);
         }
 
@@ -852,11 +879,11 @@
         }
 
         if (null === $type = $data[$mapping->getTypeProperty()] ?? null) {
-            throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('Type property "%s" not found for the abstract object "%s".', $mapping->getTypeProperty(), $class), null, ['string'], isset($context['deserialization_path']) ? $context['deserialization_path'].'.'.$mapping->getTypeProperty() : $mapping->getTypeProperty(), false);
+            throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('Type property "%s" not found for the abstract object "%s".', $mapping->getTypeProperty(), $class), null, ['string'], isset($context['deserialization_path']) ? $context['deserialization_path'].'.'.$mapping->getTypeProperty() : $mapping->getTypeProperty(), false);
         }
 
         if (null === $mappedClass = $mapping->getClassForType($type)) {
-            throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The type "%s" is not a valid value.', $type), $type, ['string'], isset($context['deserialization_path']) ? $context['deserialization_path'].'.'.$mapping->getTypeProperty() : $mapping->getTypeProperty(), true);
+            throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('The type "%s" is not a valid value.', $type), $type, ['string'], isset($context['deserialization_path']) ? $context['deserialization_path'].'.'.$mapping->getTypeProperty() : $mapping->getTypeProperty(), true);
         }
 
         return $mappedClass;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/ArrayDenormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/ArrayDenormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/ArrayDenormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/ArrayDenormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
             throw new BadMethodCallException('Please set a denormalizer before calling denormalize()!');
         }
         if (!\is_array($data)) {
-            throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('Data expected to be "%s", "%s" given.', $type, get_debug_type($data)), $data, [Type::BUILTIN_TYPE_ARRAY], $context['deserialization_path'] ?? null);
+            throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('Data expected to be "%s", "%s" given.', $type, get_debug_type($data)), $data, [Type::BUILTIN_TYPE_ARRAY], $context['deserialization_path'] ?? null);
         }
         if (!str_ends_with($type, '[]')) {
             throw new InvalidArgumentException('Unsupported class: '.$type);
@@ -58,13 +58,22 @@
 
         $type = substr($type, 0, -2);
 
-        $builtinTypes = array_map(static function (Type $keyType) {
-            return $keyType->getBuiltinType();
-        }, \is_array($keyType = $context['key_type'] ?? []) ? $keyType : [$keyType]);
+        $builtinTypes = array_map(static fn (Type $keyType) => $keyType->getBuiltinType(), \is_array($keyType = $context['key_type'] ?? []) ? $keyType : [$keyType]);
+
+        $valueType = $context['value_type'] ?? null;
+        if ($valueType instanceof Type && $valueType->isCollection()) {
+            if ($collectionKeyTypes = $valueType->getCollectionKeyTypes()) {
+                $context['key_type'] = \count($collectionKeyTypes) > 1 ? $collectionKeyTypes : $collectionKeyTypes[0];
+            }
+
+            if ($collectionValueTypes = $valueType->getCollectionValueTypes()) {
+                $context['value_type'] = $collectionValueTypes[0];
+            }
+        }
 
         foreach ($data as $key => $value) {
             $subContext = $context;
-            $subContext['deserialization_path'] = ($context['deserialization_path'] ?? false) ? sprintf('%s[%s]', $context['deserialization_path'], $key) : "[$key]";
+            $subContext['deserialization_path'] = ($context['deserialization_path'] ?? false) ? \sprintf('%s[%s]', $context['deserialization_path'], $key) : "[$key]";
 
             $this->validateKeyType($builtinTypes, $key, $subContext['deserialization_path']);
 
@@ -77,7 +86,7 @@
     public function supportsDenormalization(mixed $data, string $type, ?string $format = null, array $context = []): bool
     {
         if (null === $this->denormalizer) {
-            throw new BadMethodCallException(sprintf('The nested denormalizer needs to be set to allow "%s()" to be used.', __METHOD__));
+            throw new BadMethodCallException(\sprintf('The nested denormalizer needs to be set to allow "%s()" to be used.', __METHOD__));
         }
 
         return str_ends_with($type, '[]')
@@ -109,6 +118,6 @@
             }
         }
 
-        throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The type of the key "%s" must be "%s" ("%s" given).', $key, implode('", "', $builtinTypes), get_debug_type($key)), $key, $builtinTypes, $path, true);
+        throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('The type of the key "%s" must be "%s" ("%s" given).', $key, implode('", "', $builtinTypes), get_debug_type($key)), $key, $builtinTypes, $path, true);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/BackedEnumNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/BackedEnumNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/BackedEnumNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/BackedEnumNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function getSupportedTypes(?string $format): array
     {
         return [
-           \BackedEnum::class => true,
+            \BackedEnum::class => true,
         ];
     }
 
@@ -57,30 +57,24 @@
             throw new InvalidArgumentException('The data must belong to a backed enumeration.');
         }
 
-        if ($context[self::ALLOW_INVALID_VALUES] ?? false) {
-            if (null === $data || (!\is_int($data) && !\is_string($data))) {
-                return null;
-            }
+        $allowInvalidValues = $context[self::ALLOW_INVALID_VALUES] ?? false;
 
-            try {
-                return $type::tryFrom($data);
-            } catch (\TypeError) {
+        if (!\is_int($data) && !\is_string($data)) {
+            if ($allowInvalidValues) {
                 return null;
             }
-        }
 
-        if (!\is_int($data) && !\is_string($data)) {
             throw NotNormalizableValueException::createForUnexpectedDataType('The data is neither an integer nor a string, you should pass an integer or a string that can be parsed as an enumeration case of type '.$type.'.', $data, [Type::BUILTIN_TYPE_INT, Type::BUILTIN_TYPE_STRING], $context['deserialization_path'] ?? null, true);
         }
 
         try {
             return $type::from($data);
-        } catch (\ValueError $e) {
-            if (isset($context['has_constructor'])) {
-                throw new InvalidArgumentException('The data must belong to a backed enumeration of type '.$type, 0, $e);
+        } catch (\ValueError|\TypeError $e) {
+            if ($allowInvalidValues) {
+                return null;
             }
 
-            throw NotNormalizableValueException::createForUnexpectedDataType('The data must belong to a backed enumeration of type '.$type, $data, [$type], $context['deserialization_path'] ?? null, true, 0, $e);
+            throw NotNormalizableValueException::createForUnexpectedDataType('The data must belong to a backed enumeration of type '.$type, $data, [Type::BUILTIN_TYPE_INT, Type::BUILTIN_TYPE_STRING], $context['deserialization_path'] ?? null, true, 0, $e);
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/ConstraintViolationListNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/ConstraintViolationListNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/ConstraintViolationListNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/ConstraintViolationListNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,11 @@
         $violations = [];
         $messages = [];
         foreach ($object as $violation) {
-            $propertyPath = $this->nameConverter ? $this->nameConverter->normalize($violation->getPropertyPath(), null, $format, $context) : $violation->getPropertyPath();
+            $propertyPath = $violation->getPropertyPath();
+
+            if (null !== $this->nameConverter) {
+                $propertyPath = $this->normalizePropertyPath($propertyPath, \is_object($violation->getRoot()) ? \get_class($violation->getRoot()) : null, $format, $context);
+            }
 
             $violationEntry = [
                 'propertyPath' => $propertyPath,
@@ -71,7 +75,7 @@
                 'parameters' => $violation->getParameters(),
             ];
             if (null !== $code = $violation->getCode()) {
-                $violationEntry['type'] = sprintf('urn:uuid:%s', $code);
+                $violationEntry['type'] = \sprintf('urn:uuid:%s', $code);
             }
 
             $constraint = $violation->getConstraint();
@@ -87,7 +91,7 @@
 
             $violations[] = $violationEntry;
 
-            $prefix = $propertyPath ? sprintf('%s: ', $propertyPath) : '';
+            $prefix = $propertyPath ? \sprintf('%s: ', $propertyPath) : '';
             $messages[] = $prefix.$violation->getMessage();
         }
 
@@ -108,6 +112,48 @@
         return $result + ['violations' => $violations];
     }
 
+    private function normalizePropertyPath(string $propertyPath, ?string $class, ?string $format, array $context): string
+    {
+        if (!str_contains($propertyPath, '.')) {
+            return $this->nameConverter->normalize($propertyPath, $class, $format, $context);
+        }
+
+        $result = [];
+        $currentClass = $class;
+
+        foreach (explode('.', $propertyPath) as $segment) {
+            $subscript = '';
+            $propertyName = $segment;
+            if (false !== $bracketPos = strpos($segment, '[')) {
+                $propertyName = substr($segment, 0, $bracketPos);
+                $subscript = substr($segment, $bracketPos);
+            }
+
+            $result[] = $this->nameConverter->normalize($propertyName, $currentClass, $format, $context).$subscript;
+
+            $currentClass = $this->getPropertyClassFromReflection($currentClass, $propertyName);
+        }
+
+        return implode('.', $result);
+    }
+
+    private function getPropertyClassFromReflection(?string $class, string $property): ?string
+    {
+        if (null === $class) {
+            return null;
+        }
+
+        try {
+            $type = (new \ReflectionProperty($class, $property))->getType();
+            if ($type instanceof \ReflectionNamedType && !$type->isBuiltin()) {
+                return $type->getName();
+            }
+        } catch (\ReflectionException) {
+        }
+
+        return null;
+    }
+
     /**
      * @param array $context
      */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/DataUriNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/DataUriNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/DataUriNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/DataUriNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,10 +72,10 @@
         }
 
         if ('text' === explode('/', $mimeType, 2)[0]) {
-            return sprintf('data:%s,%s', $mimeType, rawurlencode($data));
+            return \sprintf('data:%s,%s', $mimeType, rawurlencode($data));
         }
 
-        return sprintf('data:%s;base64,%s', $mimeType, base64_encode($data));
+        return \sprintf('data:%s;base64,%s', $mimeType, base64_encode($data));
     }
 
     /**
@@ -104,7 +104,7 @@
             switch ($type) {
                 case File::class:
                     if (!class_exists(File::class)) {
-                        throw new InvalidArgumentException(sprintf('Cannot denormalize to a "%s" without the HttpFoundation component installed. Try running "composer require symfony/http-foundation".', File::class));
+                        throw new InvalidArgumentException(\sprintf('Cannot denormalize to a "%s" without the HttpFoundation component installed. Try running "composer require symfony/http-foundation".', File::class));
                     }
 
                     return new File($data, false);
@@ -117,7 +117,7 @@
             throw NotNormalizableValueException::createForUnexpectedDataType($exception->getMessage(), $data, ['string'], $context['deserialization_path'] ?? null, false, $exception->getCode(), $exception);
         }
 
-        throw new InvalidArgumentException(sprintf('The class parameter "%s" is not supported. It must be one of "SplFileInfo", "SplFileObject" or "Symfony\Component\HttpFoundation\File\File".', $type));
+        throw new InvalidArgumentException(\sprintf('The class parameter "%s" is not supported. It must be one of "SplFileInfo", "SplFileObject" or "Symfony\Component\HttpFoundation\File\File".', $type));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/DateIntervalNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/DateIntervalNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/DateIntervalNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/DateIntervalNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -100,7 +100,7 @@
         }
         $valuePattern = '/^'.$signPattern.preg_replace('/%([yYmMdDhHiIsSwW])(\w)/', '(?:(?P<$1>\d+)$2)?', preg_replace('/(T.*)$/', '($1)?', $dateIntervalFormat)).'$/';
         if (!preg_match($valuePattern, $data)) {
-            throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('Value "%s" contains intervals not accepted by format "%s".', $data, $dateIntervalFormat), $data, ['string'], $context['deserialization_path'] ?? null, false);
+            throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('Value "%s" contains intervals not accepted by format "%s".', $data, $dateIntervalFormat), $data, ['string'], $context['deserialization_path'] ?? null, false);
         }
 
         try {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/DateTimeNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/DateTimeNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/DateTimeNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/DateTimeNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -95,8 +95,12 @@
     {
         if (\is_int($data) || \is_float($data)) {
             switch ($context[self::FORMAT_KEY] ?? $this->defaultContext[self::FORMAT_KEY] ?? null) {
-                case 'U': $data = sprintf('%d', $data); break;
-                case 'U.u': $data = sprintf('%.6F', $data); break;
+                case 'U':
+                    $data = \sprintf('%d', $data);
+                    break;
+                case 'U.u':
+                    $data = \sprintf('%.6F', $data);
+                    break;
             }
         }
 
@@ -119,7 +123,7 @@
 
                 $dateTimeErrors = $type::getLastErrors();
 
-                throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('Parsing datetime string "%s" using format "%s" resulted in %d errors: ', $data, $dateTimeFormat, $dateTimeErrors['error_count'])."\n".implode("\n", $this->formatDateTimeErrors($dateTimeErrors['errors'])), $data, [Type::BUILTIN_TYPE_STRING], $context['deserialization_path'] ?? null, true);
+                throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('Parsing datetime string "%s" using format "%s" resulted in %d errors: ', $data, $dateTimeFormat, $dateTimeErrors['error_count'])."\n".implode("\n", $this->formatDateTimeErrors($dateTimeErrors['errors'])), $data, [Type::BUILTIN_TYPE_STRING], $context['deserialization_path'] ?? null, true);
             }
 
             $defaultDateTimeFormat = $this->defaultContext[self::FORMAT_KEY] ?? null;
@@ -166,7 +170,7 @@
         $formattedErrors = [];
 
         foreach ($errors as $pos => $message) {
-            $formattedErrors[] = sprintf('at position %d: %s', $pos, $message);
+            $formattedErrors[] = \sprintf('at position %d: %s', $pos, $message);
         }
 
         return $formattedErrors;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Serializer\Normalizer;
 
+use Symfony\Component\PropertyAccess\Exception\UninitializedPropertyException;
 use Symfony\Component\Serializer\Annotation\Ignore as LegacyIgnore;
 use Symfony\Component\Serializer\Attribute\Ignore;
 
@@ -98,15 +99,16 @@
     }
 
     /**
-     * Checks if a method's name matches /^(get|is|has).+$/ and can be called non-statically without parameters.
+     * Checks if a method's name matches /^(get|is|has|can).+$/ and can be called non-statically without parameters.
      */
     private function isGetMethod(\ReflectionMethod $method): bool
     {
         return !$method->isStatic()
             && !($method->getAttributes(Ignore::class) || $method->getAttributes(LegacyIgnore::class))
             && !$method->getNumberOfRequiredParameters()
+            && !\in_array((string) $method->getReturnType(), ['void', 'never'], true)
             && ((2 < ($methodLength = \strlen($method->name)) && str_starts_with($method->name, 'is') && !ctype_lower($method->name[2]))
-                || (3 < $methodLength && (str_starts_with($method->name, 'has') || str_starts_with($method->name, 'get')) && !ctype_lower($method->name[3]))
+                || (3 < $methodLength && (str_starts_with($method->name, 'has') || str_starts_with($method->name, 'get') || str_starts_with($method->name, 'can')) && !ctype_lower($method->name[3]))
             );
     }
 
@@ -121,7 +123,7 @@
             && 3 < \strlen($method->name)
             && str_starts_with($method->name, 'set')
             && !ctype_lower($method->name[3])
-            ;
+        ;
     }
 
     protected function extractAttributes(object $object, ?string $format = null, array $context = []): array
@@ -147,19 +149,31 @@
 
     protected function getAttributeValue(object $object, string $attribute, ?string $format = null, array $context = []): mixed
     {
-        $getter = 'get'.$attribute;
-        if (method_exists($object, $getter) && \is_callable([$object, $getter])) {
-            return $object->$getter();
-        }
+        try {
+            $getter = 'get'.$attribute;
+            if (method_exists($object, $getter) && \is_callable([$object, $getter])) {
+                return $object->$getter();
+            }
 
-        $isser = 'is'.$attribute;
-        if (method_exists($object, $isser) && \is_callable([$object, $isser])) {
-            return $object->$isser();
-        }
+            $isser = 'is'.$attribute;
+            if (method_exists($object, $isser) && \is_callable([$object, $isser])) {
+                return $object->$isser();
+            }
+
+            $haser = 'has'.$attribute;
+            if (method_exists($object, $haser) && \is_callable([$object, $haser])) {
+                return $object->$haser();
+            }
 
-        $haser = 'has'.$attribute;
-        if (method_exists($object, $haser) && \is_callable([$object, $haser])) {
-            return $object->$haser();
+            $caner = 'can'.$attribute;
+            if (method_exists($object, $caner) && \is_callable([$object, $caner])) {
+                return $object->$caner();
+            }
+        } catch (\Error $e) {
+            if (str_starts_with($e->getMessage(), 'Typed property') && str_ends_with($e->getMessage(), 'must not be accessed before initialization')) {
+                throw new UninitializedPropertyException(\sprintf('The property "%s::$%s" is not initialized.', $object::class, $attribute), 0, $e);
+            }
+            throw $e;
         }
 
         return null;
@@ -188,7 +202,11 @@
             return false;
         }
 
-        $class = \is_object($classOrObject) ? \get_class($classOrObject) : $classOrObject;
+        $class = \is_object($classOrObject) ? $classOrObject::class : $classOrObject;
+
+        if ($this->classDiscriminatorResolver?->getMappingForMappedObject($classOrObject)?->getTypeProperty() === $attribute) {
+            return true;
+        }
 
         if (!isset(self::$reflectionCache[$class])) {
             self::$reflectionCache[$class] = new \ReflectionClass($class);
@@ -197,7 +215,7 @@
         $reflection = self::$reflectionCache[$class];
 
         if ($context['_read_attributes'] ?? true) {
-            foreach (['get', 'is', 'has'] as $getterPrefix) {
+            foreach (['get', 'is', 'has', 'can'] as $getterPrefix) {
                 $getter = $getterPrefix.$attribute;
                 $reflectionMethod = $reflection->hasMethod($getter) ? $reflection->getMethod($getter) : null;
                 if ($reflectionMethod && $this->isGetMethod($reflectionMethod)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/JsonSerializableNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/JsonSerializableNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/JsonSerializableNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/JsonSerializableNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
         }
 
         if (!$object instanceof \JsonSerializable) {
-            throw new InvalidArgumentException(sprintf('The object must implement "%s".', \JsonSerializable::class));
+            throw new InvalidArgumentException(\sprintf('The object must implement "%s".', \JsonSerializable::class));
         }
 
         if (!$this->serializer instanceof NormalizerInterface) {
@@ -65,7 +65,7 @@
 
     public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed
     {
-        throw new LogicException(sprintf('Cannot denormalize with "%s".', \JsonSerializable::class));
+        throw new LogicException(\sprintf('Cannot denormalize with "%s".', \JsonSerializable::class));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/MimeMessageNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/MimeMessageNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/MimeMessageNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/MimeMessageNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,7 @@
     public function setSerializer(SerializerInterface $serializer): void
     {
         if (!$serializer instanceof NormalizerInterface || !$serializer instanceof DenormalizerInterface) {
-            throw new LogicException(sprintf('The passed serializer should implement both NormalizerInterface and DenormalizerInterface, "%s" given.', get_debug_type($serializer)));
+            throw new LogicException(\sprintf('The passed serializer should implement both NormalizerInterface and DenormalizerInterface, "%s" given.', get_debug_type($serializer)));
         }
         $this->serializer = $serializer;
         $this->normalizer->setSerializer($serializer);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Serializer\Normalizer;
 
+use Symfony\Component\PropertyAccess\Exception\InvalidArgumentException as PropertyAccessInvalidArgumentException;
 use Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException;
 use Symfony\Component\PropertyAccess\PropertyAccess;
 use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
@@ -18,11 +19,12 @@
 use Symfony\Component\PropertyInfo\PropertyInfoExtractorInterface;
 use Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface;
 use Symfony\Component\PropertyInfo\PropertyWriteInfo;
-use Symfony\Component\Serializer\Annotation\Ignore;
+use Symfony\Component\Serializer\Attribute\Ignore;
 use Symfony\Component\Serializer\Exception\LogicException;
-use Symfony\Component\Serializer\Mapping\AttributeMetadata;
+use Symfony\Component\Serializer\Exception\NotNormalizableValueException;
 use Symfony\Component\Serializer\Mapping\ClassDiscriminatorResolverInterface;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
+use Symfony\Component\Serializer\Mapping\Loader\AccessorCollisionResolverTrait;
 use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
 
 /**
@@ -34,6 +36,8 @@
  */
 class ObjectNormalizer extends AbstractObjectNormalizer
 {
+    use AccessorCollisionResolverTrait;
+
     private static $reflectionCache = [];
     private static $isReadableCache = [];
     private static $isWritableCache = [];
@@ -88,38 +92,11 @@
         $reflClass = new \ReflectionClass($class);
 
         foreach ($reflClass->getMethods(\ReflectionMethod::IS_PUBLIC) as $reflMethod) {
-            if (
-                0 !== $reflMethod->getNumberOfRequiredParameters()
-                || $reflMethod->isStatic()
-                || $reflMethod->isConstructor()
-                || $reflMethod->isDestructor()
-            ) {
-                continue;
-            }
-
             $name = $reflMethod->name;
-            $attributeName = null;
+            $attributeName = $this->getAttributeNameFromAccessor($reflClass, $reflMethod, false);
 
-            // ctype_lower check to find out if method looks like accessor but actually is not, e.g. hash, cancel
-            if (3 < \strlen($name) && !ctype_lower($name[3]) && match ($name[0]) {
-                'g' => str_starts_with($name, 'get'),
-                'h' => str_starts_with($name, 'has'),
-                'c' => str_starts_with($name, 'can'),
-                default => false,
-            }) {
-                // getters, hassers and canners
-                $attributeName = substr($name, 3);
-
-                if (!$reflClass->hasProperty($attributeName)) {
-                    $attributeName = lcfirst($attributeName);
-                }
-            } elseif ('is' !== $name && str_starts_with($name, 'is') && !ctype_lower($name[2])) {
-                // issers
-                $attributeName = substr($name, 2);
-
-                if (!$reflClass->hasProperty($attributeName)) {
-                    $attributeName = lcfirst($attributeName);
-                }
+            if ($this->hasPropertyForAccessor($reflMethod->getDeclaringClass(), $name) && (null === $attributeName || $this->hasAttributeNameCollision($reflClass, $attributeName, $name))) {
+                $attributeName = $name;
             }
 
             if (null !== $attributeName && $this->isAllowedAttribute($object, $attributeName, $format, $context)) {
@@ -161,68 +138,50 @@
             $this->propertyAccessor->setValue($object, $attribute, $value);
         } catch (NoSuchPropertyException) {
             // Properties not found are ignored
+        } catch (PropertyAccessInvalidArgumentException $e) {
+            throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('Failed to denormalize attribute "%s" value for class "%s": %s', $attribute, $object::class, $e->getMessage()), $value, ['unknown'], $context['deserialization_path'] ?? null, false, $e->getCode(), $e);
         }
     }
 
-    protected function getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false): array|bool
+    protected function isAllowedAttribute($classOrObject, string $attribute, ?string $format = null, array $context = [])
     {
-        if (false === $allowedAttributes = parent::getAllowedAttributes($classOrObject, $context, $attributesAsString)) {
+        if (!parent::isAllowedAttribute($classOrObject, $attribute, $format, $context)) {
             return false;
         }
 
-        if (null !== $this->classDiscriminatorResolver) {
-            $class = \is_object($classOrObject) ? $classOrObject::class : $classOrObject;
-            if (null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForMappedObject($classOrObject)) {
-                $allowedAttributes[] = $attributesAsString ? $discriminatorMapping->getTypeProperty() : new AttributeMetadata($discriminatorMapping->getTypeProperty());
-            }
+        $class = \is_object($classOrObject) ? $classOrObject::class : $classOrObject;
 
-            if (null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForClass($class)) {
-                $attributes = [];
-                foreach ($discriminatorMapping->getTypesMapping() as $mappedClass) {
-                    $attributes[] = parent::getAllowedAttributes($mappedClass, $context, $attributesAsString);
-                }
-                $allowedAttributes = array_merge($allowedAttributes, ...$attributes);
-            }
+        if ($this->classDiscriminatorResolver?->getMappingForMappedObject($classOrObject)?->getTypeProperty() === $attribute) {
+            return true;
         }
 
-        return $allowedAttributes;
-    }
+        if ($context['_read_attributes'] ?? true) {
+            $context = array_intersect_key($context, ['enable_getter_setter_extraction' => true, 'enable_magic_methods_extraction' => true]);
+            $cacheKey = $class.$attribute.hash('xxh128', serialize($context));
 
-    protected function isAllowedAttribute($classOrObject, string $attribute, ?string $format = null, array $context = [])
-    {
-        if (!parent::isAllowedAttribute($classOrObject, $attribute, $format, $context)) {
-            return false;
+            return self::$isReadableCache[$cacheKey] ??= $this->propertyInfoExtractor->isReadable($class, $attribute, $context) || $this->hasAttributeAccessorMethod($class, $attribute) || (\is_object($classOrObject) && $this->propertyAccessor->isReadable($classOrObject, $attribute));
         }
 
-        $class = \is_object($classOrObject) ? \get_class($classOrObject) : $classOrObject;
-
-        if ($context['_read_attributes'] ?? true) {
-            if (!isset(self::$isReadableCache[$class.$attribute])) {
-                self::$isReadableCache[$class.$attribute] = $this->propertyInfoExtractor->isReadable($class, $attribute) || $this->hasAttributeAccessorMethod($class, $attribute) || (\is_object($classOrObject) && $this->propertyAccessor->isReadable($classOrObject, $attribute));
-            }
+        $context = array_intersect_key($context, ['enable_getter_setter_extraction' => true, 'enable_magic_methods_extraction' => true, 'enable_constructor_extraction' => true, 'enable_adder_remover_extraction' => true]);
+        $cacheKey = $class.$attribute.hash('xxh128', serialize($context));
 
-            return self::$isReadableCache[$class.$attribute];
+        if (isset(self::$isWritableCache[$cacheKey])) {
+            return self::$isWritableCache[$cacheKey];
         }
 
-        if (!isset(self::$isWritableCache[$class.$attribute])) {
-            if (str_contains($attribute, '.')) {
-                self::$isWritableCache[$class.$attribute] = true;
-            } else {
-                self::$isWritableCache[$class.$attribute] = $this->propertyInfoExtractor->isWritable($class, $attribute)
-                    || (($writeInfo = $this->writeInfoExtractor->getWriteInfo($class, $attribute)) && PropertyWriteInfo::TYPE_NONE !== $writeInfo->getType());
-            }
+        if (str_contains($attribute, '.') || $this->propertyInfoExtractor->isWritable($class, $attribute, $context)) {
+            return self::$isWritableCache[$cacheKey] = true;
         }
 
-        return self::$isWritableCache[$class.$attribute];
+        $writeType = $this->writeInfoExtractor->getWriteInfo($class, $attribute, $context)?->getType();
+
+        return self::$isWritableCache[$cacheKey] = !\in_array($writeType, [null, PropertyWriteInfo::TYPE_NONE], true)
+            && (PropertyWriteInfo::TYPE_PROPERTY !== $writeType || !property_exists($class, $attribute));
     }
 
     private function hasAttributeAccessorMethod(string $class, string $attribute): bool
     {
-        if (!isset(self::$reflectionCache[$class])) {
-            self::$reflectionCache[$class] = new \ReflectionClass($class);
-        }
-
-        $reflection = self::$reflectionCache[$class];
+        $reflection = self::$reflectionCache[$class] ??= new \ReflectionClass($class);
 
         if (!$reflection->hasMethod($attribute)) {
             return false;
@@ -232,6 +191,7 @@
 
         return !$method->isStatic()
             && !$method->getAttributes(Ignore::class)
-            && !$method->getNumberOfRequiredParameters();
+            && !$method->getNumberOfRequiredParameters()
+            && !\in_array((string) $method->getReturnType(), ['void', 'never'], true);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/ProblemNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/ProblemNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/ProblemNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/ProblemNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
     public function normalize(mixed $object, ?string $format = null, array $context = []): array
     {
         if (!$object instanceof FlattenException) {
-            throw new InvalidArgumentException(sprintf('The object must implement "%s".', FlattenException::class));
+            throw new InvalidArgumentException(\sprintf('The object must implement "%s".', FlattenException::class));
         }
 
         $data = [];
@@ -65,13 +65,13 @@
             $exception = $exception->getPrevious();
 
             if ($exception instanceof PartialDenormalizationException) {
-                $trans = $this->translator ? $this->translator->trans(...) : fn ($m, $p) => strtr($m, $p);
+                $trans = $this->translator ? $this->translator->trans(...) : static fn ($m, $p) => strtr($m, $p);
                 $template = 'This value should be of type {{ type }}.';
                 $data = [
                     self::TYPE => 'https://symfony.com/errors/validation',
                     self::TITLE => 'Validation Failed',
                     'violations' => array_map(
-                        fn ($e) => [
+                        static fn ($e) => [
                             'propertyPath' => $e->getPath(),
                             'title' => $trans($template, [
                                 '{{ type }}' => implode('|', $e->getExpectedTypes() ?? ['?']),
@@ -84,7 +84,7 @@
                         $exception->getErrors()
                     ),
                 ];
-                $data['detail'] = implode("\n", array_map(fn ($e) => $e['propertyPath'].': '.$e['title'], $data['violations']));
+                $data['detail'] = implode("\n", array_map(static fn ($e) => $e['propertyPath'].': '.$e['title'], $data['violations']));
             } elseif (($exception instanceof ValidationFailedException || $exception instanceof MessageValidationFailedException)
                 && $this->serializer instanceof NormalizerInterface
                 && $this->serializer->supportsNormalization($exception->getViolations(), $format, $context)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,8 @@
 
 use Symfony\Component\PropertyAccess\Exception\UninitializedPropertyException;
 use Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface;
+use Symfony\Component\Serializer\Exception\LogicException;
+use Symfony\Component\Serializer\Exception\NotNormalizableValueException;
 use Symfony\Component\Serializer\Mapping\ClassDiscriminatorResolverInterface;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
 use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
@@ -116,6 +118,10 @@
             return false;
         }
 
+        if ($this->classDiscriminatorResolver?->getMappingForMappedObject($classOrObject)?->getTypeProperty() === $attribute) {
+            return true;
+        }
+
         try {
             $reflectionProperty = $this->getReflectionProperty($classOrObject, $attribute);
         } catch (\ReflectionException) {
@@ -170,6 +176,10 @@
         }
 
         if ($reflectionProperty->hasType()) {
+            if (!$reflectionProperty->isInitialized($object)) {
+                throw new UninitializedPropertyException(\sprintf('The property "%s::$%s" is not initialized.', $object::class, $reflectionProperty->name));
+            }
+
             return $reflectionProperty->getValue($object);
         }
 
@@ -180,7 +190,7 @@
                 || ($reflectionProperty->isProtected() && !\array_key_exists("\0*\0{$reflectionProperty->name}", $propertyValues))
                 || ($reflectionProperty->isPrivate() && !\array_key_exists("\0{$reflectionProperty->class}\0{$reflectionProperty->name}", $propertyValues))
             ) {
-                throw new UninitializedPropertyException(sprintf('The property "%s::$%s" is not initialized.', $object::class, $reflectionProperty->name));
+                throw new UninitializedPropertyException(\sprintf('The property "%s::$%s" is not initialized.', $object::class, $reflectionProperty->name));
             }
         }
 
@@ -202,7 +212,26 @@
             return;
         }
 
-        $reflectionProperty->setValue($object, $value);
+        try {
+            if (!$reflectionProperty->isReadOnly()) {
+                $reflectionProperty->setValue($object, $value);
+
+                return;
+            }
+
+            if (!$reflectionProperty->isInitialized($object)) {
+                $declaringClass = $reflectionProperty->getDeclaringClass();
+                $declaringClass->getProperty($reflectionProperty->getName())->setValue($object, $value);
+
+                return;
+            }
+        } catch (\TypeError $e) {
+            throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('Failed to denormalize attribute "%s" value for class "%s": %s', $attribute, $object::class, $e->getMessage()), $value, ['unknown'], $context['deserialization_path'] ?? null, false, $e->getCode(), $e);
+        }
+
+        if ($reflectionProperty->getValue($object) !== $value) {
+            throw new LogicException(\sprintf('Attempting to change readonly property "%s"::$%s.', $object::class, $reflectionProperty->getName()));
+        }
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/TranslatableNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/TranslatableNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/TranslatableNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/TranslatableNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
     public function normalize(mixed $object, ?string $format = null, array $context = []): string
     {
         if (!$object instanceof TranslatableInterface) {
-            throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The object must implement the "%s".', TranslatableInterface::class), $object, [TranslatableInterface::class]);
+            throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('The object must implement the "%s".', TranslatableInterface::class), $object, [TranslatableInterface::class]);
         }
 
         return $object->trans($this->translator, $context[self::NORMALIZATION_LOCALE_KEY] ?? $this->defaultContext[self::NORMALIZATION_LOCALE_KEY]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/UidNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/UidNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Normalizer/UidNormalizer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Normalizer/UidNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,7 @@
             self::NORMALIZATION_FORMAT_BASE58 => $object->toBase58(),
             self::NORMALIZATION_FORMAT_BASE32 => $object->toBase32(),
             self::NORMALIZATION_FORMAT_RFC4122 => $object->toRfc4122(),
-            default => throw new LogicException(sprintf('The "%s" format is not valid.', $context[self::NORMALIZATION_FORMAT_KEY] ?? $this->defaultContext[self::NORMALIZATION_FORMAT_KEY])),
+            default => throw new LogicException(\sprintf('The "%s" format is not valid.', $context[self::NORMALIZATION_FORMAT_KEY] ?? $this->defaultContext[self::NORMALIZATION_FORMAT_KEY])),
         };
     }
 
@@ -78,7 +78,7 @@
 
             return $type::fromString($data);
         } catch (\InvalidArgumentException|\TypeError) {
-            throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The data is not a valid "%s" string representation.', $type), $data, [Type::BUILTIN_TYPE_STRING], $context['deserialization_path'] ?? null, true);
+            throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('The data is not a valid "%s" string representation.', $type), $data, [Type::BUILTIN_TYPE_STRING], $context['deserialization_path'] ?? null, true);
         } catch (\Error $e) { // @deprecated remove this catch block in 7.0
             if (str_starts_with($e->getMessage(), 'Cannot instantiate abstract class')) {
                 return $this->denormalize($data, AbstractUid::class, $format, $context);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/SerializerInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/SerializerInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/SerializerInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/SerializerInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,9 +32,9 @@
      * @param TType                $type
      * @param array<string, mixed> $context
      *
-     * @psalm-return (TType is class-string<TObject> ? TObject : mixed)
-     *
      * @phpstan-return ($type is class-string<TObject> ? TObject : mixed)
+     *
+     * @psalm-return (TType is class-string<TObject> ? TObject : mixed)
      */
     public function deserialize(mixed $data, string $type, string $format, array $context = []): mixed;
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Serializer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Serializer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Serializer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Serializer.php	2026-05-20 10:56:49.000000000 +0200
@@ -105,7 +105,7 @@
             }
 
             if (!($normalizer instanceof NormalizerInterface || $normalizer instanceof DenormalizerInterface)) {
-                throw new InvalidArgumentException(sprintf('The class "%s" neither implements "%s" nor "%s".', get_debug_type($normalizer), NormalizerInterface::class, DenormalizerInterface::class));
+                throw new InvalidArgumentException(\sprintf('The class "%s" neither implements "%s" nor "%s".', get_debug_type($normalizer), NormalizerInterface::class, DenormalizerInterface::class));
             }
         }
 
@@ -123,7 +123,7 @@
             }
 
             if (!($encoder instanceof EncoderInterface || $encoder instanceof DecoderInterface)) {
-                throw new InvalidArgumentException(sprintf('The class "%s" neither implements "%s" nor "%s".', get_debug_type($encoder), EncoderInterface::class, DecoderInterface::class));
+                throw new InvalidArgumentException(\sprintf('The class "%s" neither implements "%s" nor "%s".', get_debug_type($encoder), EncoderInterface::class, DecoderInterface::class));
             }
         }
         $this->encoder = new ChainEncoder($realEncoders);
@@ -133,7 +133,7 @@
     final public function serialize(mixed $data, string $format, array $context = []): string
     {
         if (!$this->supportsEncoding($format, $context)) {
-            throw new UnsupportedFormatException(sprintf('Serialization for the format "%s" is not supported.', $format));
+            throw new UnsupportedFormatException(\sprintf('Serialization for the format "%s" is not supported.', $format));
         }
 
         if ($this->encoder->needsNormalization($format, $context)) {
@@ -146,7 +146,7 @@
     final public function deserialize(mixed $data, string $type, string $format, array $context = []): mixed
     {
         if (!$this->supportsDecoding($format, $context)) {
-            throw new UnsupportedFormatException(sprintf('Deserialization for the format "%s" is not supported.', $format));
+            throw new UnsupportedFormatException(\sprintf('Deserialization for the format "%s" is not supported.', $format));
         }
 
         $data = $this->decode($data, $format, $context);
@@ -187,10 +187,10 @@
                 throw new LogicException('You must register at least one normalizer to be able to normalize objects.');
             }
 
-            throw new NotNormalizableValueException(sprintf('Could not normalize object of type "%s", no supporting normalizer found.', get_debug_type($data)));
+            throw new NotNormalizableValueException(\sprintf('Could not normalize object of type "%s", no supporting normalizer found.', get_debug_type($data)));
         }
 
-        throw new NotNormalizableValueException('An unexpected value could not be normalized: '.(!\is_resource($data) ? var_export($data, true) : sprintf('"%s" resource', get_resource_type($data))));
+        throw new NotNormalizableValueException('An unexpected value could not be normalized: '.(!\is_resource($data) ? var_export($data, true) : \sprintf('"%s" resource', get_resource_type($data))));
     }
 
     /**
@@ -208,7 +208,7 @@
         // Check for a denormalizer first, e.g. the data is wrapped
         if (!$normalizer && isset(self::SCALAR_TYPES[$type])) {
             if (!('is_'.$type)($data)) {
-                throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('Data expected to be of type "%s" ("%s" given).', $type, get_debug_type($data)), $data, [$type], $context['deserialization_path'] ?? null, true);
+                throw NotNormalizableValueException::createForUnexpectedDataType(\sprintf('Data expected to be of type "%s" ("%s" given).', $type, get_debug_type($data)), $data, [$type], $context['deserialization_path'] ?? null, true);
             }
 
             return $data;
@@ -219,10 +219,10 @@
         }
 
         if (!$normalizer) {
-            throw new NotNormalizableValueException(sprintf('Could not denormalize object of type "%s", no supporting normalizer found.', $type));
+            throw new NotNormalizableValueException(\sprintf('Could not denormalize object of type "%s", no supporting normalizer found.', $type));
         }
 
-        if (isset($context[DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS]) || isset($this->defaultContext[DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS])) {
+        if ((isset($context[DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS]) || isset($this->defaultContext[DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS])) && !isset($context['not_normalizable_value_exceptions'])) {
             unset($context[DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS]);
             $context['not_normalizable_value_exceptions'] = [];
             $errors = &$context['not_normalizable_value_exceptions'];
@@ -237,7 +237,7 @@
                         continue;
                     }
 
-                    $uniqueErrors[$error->getPath()] = $uniqueErrors[$error->getPath()] ?? $error;
+                    $uniqueErrors[$error->getPath()] ??= $error;
                 }
 
                 throw new PartialDenormalizationException($denormalized, array_values($uniqueErrors));
@@ -281,8 +281,8 @@
             $genericType = '*';
         }
 
-        if (!isset($this->normalizerCache[$format][$type])) {
-            $this->normalizerCache[$format][$type] = [];
+        if (!isset($this->normalizerCache[$format ?? ''][$type])) {
+            $this->normalizerCache[$format ?? ''][$type] = [];
 
             foreach ($this->normalizers as $k => $normalizer) {
                 if (!$normalizer instanceof NormalizerInterface) {
@@ -293,9 +293,9 @@
                     trigger_deprecation('symfony/serializer', '6.3', '"%s" should implement "NormalizerInterface::getSupportedTypes(?string $format): array".', $normalizer::class);
 
                     if (!$normalizer instanceof CacheableSupportsMethodInterface || !$normalizer->hasCacheableSupportsMethod()) {
-                        $this->normalizerCache[$format][$type][$k] = false;
+                        $this->normalizerCache[$format ?? ''][$type][$k] = false;
                     } elseif ($normalizer->supportsNormalization($data, $format, $context)) {
-                        $this->normalizerCache[$format][$type][$k] = true;
+                        $this->normalizerCache[$format ?? ''][$type][$k] = true;
                         break;
                     }
 
@@ -313,7 +313,7 @@
 
                     if (null === $isCacheable) {
                         unset($supportedTypes['*'], $supportedTypes['object']);
-                    } elseif ($this->normalizerCache[$format][$type][$k] = $isCacheable && $normalizer->supportsNormalization($data, $format, $context)) {
+                    } elseif ($this->normalizerCache[$format ?? ''][$type][$k] = $isCacheable && $normalizer->supportsNormalization($data, $format, $context)) {
                         break 2;
                     }
 
@@ -324,13 +324,13 @@
                     continue;
                 }
 
-                if ($this->normalizerCache[$format][$type][$k] ??= $isCacheable && $normalizer->supportsNormalization($data, $format, $context)) {
+                if ($this->normalizerCache[$format ?? ''][$type][$k] ??= $isCacheable && $normalizer->supportsNormalization($data, $format, $context)) {
                     break;
                 }
             }
         }
 
-        foreach ($this->normalizerCache[$format][$type] as $k => $cached) {
+        foreach ($this->normalizerCache[$format ?? ''][$type] as $k => $cached) {
             $normalizer = $this->normalizers[$k];
             if ($cached || $normalizer->supportsNormalization($data, $format, $context)) {
                 return $normalizer;
@@ -350,8 +350,8 @@
      */
     private function getDenormalizer(mixed $data, string $class, ?string $format, array $context): ?DenormalizerInterface
     {
-        if (!isset($this->denormalizerCache[$format][$class])) {
-            $this->denormalizerCache[$format][$class] = [];
+        if (!isset($this->denormalizerCache[$format ?? ''][$class])) {
+            $this->denormalizerCache[$format ?? ''][$class] = [];
             $genericType = class_exists($class) || interface_exists($class, false) ? 'object' : '*';
 
             foreach ($this->normalizers as $k => $normalizer) {
@@ -363,9 +363,9 @@
                     trigger_deprecation('symfony/serializer', '6.3', '"%s" should implement "DenormalizerInterface::getSupportedTypes(?string $format): array".', $normalizer::class);
 
                     if (!$normalizer instanceof CacheableSupportsMethodInterface || !$normalizer->hasCacheableSupportsMethod()) {
-                        $this->denormalizerCache[$format][$class][$k] = false;
+                        $this->denormalizerCache[$format ?? ''][$class][$k] = false;
                     } elseif ($normalizer->supportsDenormalization(null, $class, $format, $context)) {
-                        $this->denormalizerCache[$format][$class][$k] = true;
+                        $this->denormalizerCache[$format ?? ''][$class][$k] = true;
                         break;
                     }
 
@@ -386,7 +386,7 @@
 
                     if (null === $isCacheable) {
                         unset($supportedTypes['*'], $supportedTypes['object']);
-                    } elseif ($this->denormalizerCache[$format][$class][$k] = $isCacheable && $normalizer->supportsDenormalization(null, $class, $format, $context)) {
+                    } elseif ($this->denormalizerCache[$format ?? ''][$class][$k] = $isCacheable && $normalizer->supportsDenormalization(null, $class, $format, $context)) {
                         break 2;
                     }
 
@@ -397,13 +397,13 @@
                     continue;
                 }
 
-                if ($this->denormalizerCache[$format][$class][$k] ??= $isCacheable && $normalizer->supportsDenormalization(null, $class, $format, $context)) {
+                if ($this->denormalizerCache[$format ?? ''][$class][$k] ??= $isCacheable && $normalizer->supportsDenormalization(null, $class, $format, $context)) {
                     break;
                 }
             }
         }
 
-        foreach ($this->denormalizerCache[$format][$class] as $k => $cached) {
+        foreach ($this->denormalizerCache[$format ?? ''][$class] as $k => $cached) {
             $normalizer = $this->normalizers[$k];
             if ($cached || $normalizer->supportsDenormalization($data, $class, $format, $context)) {
                 return $normalizer;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Annotation/ContextTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Annotation/ContextTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Annotation/ContextTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Annotation/ContextTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
     public function testInvalidGroupOption()
     {
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('Parameter "groups" given to "%s" must be a string or an array of strings, "stdClass" given', Context::class));
+        $this->expectExceptionMessage(\sprintf('Parameter "groups" given to "%s" must be a string or an array of strings, "stdClass" given', Context::class));
 
         new Context(context: ['foo' => 'bar'], groups: ['fine', new \stdClass()]);
     }
@@ -76,78 +76,78 @@
     public static function provideValidInputs(): iterable
     {
         yield 'named arguments: with context option' => [
-            fn () => new Context(context: ['foo' => 'bar']),
+            static fn () => new Context(context: ['foo' => 'bar']),
             <<<DUMP
-Symfony\Component\Serializer\Attribute\Context {
-  -groups: []
-  -context: [
-    "foo" => "bar",
-  ]
-  -normalizationContext: []
-  -denormalizationContext: []
-}
-DUMP
+                Symfony\Component\Serializer\Attribute\Context {
+                  -groups: []
+                  -context: [
+                    "foo" => "bar",
+                  ]
+                  -normalizationContext: []
+                  -denormalizationContext: []
+                }
+                DUMP,
         ];
 
         yield 'named arguments: with normalization context option' => [
-            fn () => new Context(normalizationContext: ['foo' => 'bar']),
+            static fn () => new Context(normalizationContext: ['foo' => 'bar']),
             <<<DUMP
-Symfony\Component\Serializer\Attribute\Context {
-  -groups: []
-  -context: []
-  -normalizationContext: [
-    "foo" => "bar",
-  ]
-  -denormalizationContext: []
-}
-DUMP
+                Symfony\Component\Serializer\Attribute\Context {
+                  -groups: []
+                  -context: []
+                  -normalizationContext: [
+                    "foo" => "bar",
+                  ]
+                  -denormalizationContext: []
+                }
+                DUMP,
         ];
 
         yield 'named arguments: with denormalization context option' => [
-            fn () => new Context(denormalizationContext: ['foo' => 'bar']),
+            static fn () => new Context(denormalizationContext: ['foo' => 'bar']),
             <<<DUMP
-Symfony\Component\Serializer\Attribute\Context {
-  -groups: []
-  -context: []
-  -normalizationContext: []
-  -denormalizationContext: [
-    "foo" => "bar",
-  ]
-}
-DUMP
+                Symfony\Component\Serializer\Attribute\Context {
+                  -groups: []
+                  -context: []
+                  -normalizationContext: []
+                  -denormalizationContext: [
+                    "foo" => "bar",
+                  ]
+                }
+                DUMP,
         ];
 
         yield 'named arguments: with groups option as string' => [
-            fn () => new Context(context: ['foo' => 'bar'], groups: 'a'),
+            static fn () => new Context(context: ['foo' => 'bar'], groups: 'a'),
             <<<DUMP
-Symfony\Component\Serializer\Attribute\Context {
-  -groups: [
-    "a",
-  ]
-  -context: [
-    "foo" => "bar",
-  ]
-  -normalizationContext: []
-  -denormalizationContext: []
-}
-DUMP
+                Symfony\Component\Serializer\Attribute\Context {
+                  -groups: [
+                    "a",
+                  ]
+                  -context: [
+                    "foo" => "bar",
+                  ]
+                  -normalizationContext: []
+                  -denormalizationContext: []
+                }
+                DUMP,
         ];
 
         yield 'named arguments: with groups option as array' => [
-            fn () => new Context(context: ['foo' => 'bar'], groups: ['a', 'b']),
+            static fn () => new Context(context: ['foo' => 'bar'], groups: ['a', 'b']),
             <<<DUMP
-Symfony\Component\Serializer\Attribute\Context {
-  -groups: [
-    "a",
-    "b",
-  ]
-  -context: [
-    "foo" => "bar",
-  ]
-  -normalizationContext: []
-  -denormalizationContext: []
-}
-DUMP
+                Symfony\Component\Serializer\Attribute\Context {
+                  -groups: [
+                    "a",
+                    "b",
+                  ]
+                  -context: [
+                    "foo" => "bar",
+                  ]
+                  -normalizationContext: []
+                  -denormalizationContext: []
+                }
+                DUMP,
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/CacheWarmer/CompiledClassMetadataCacheWarmerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/CacheWarmer/CompiledClassMetadataCacheWarmerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/CacheWarmer/CompiledClassMetadataCacheWarmerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/CacheWarmer/CompiledClassMetadataCacheWarmerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,43 +15,36 @@
 use Symfony\Component\Filesystem\Filesystem;
 use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface;
 use Symfony\Component\Serializer\CacheWarmer\CompiledClassMetadataCacheWarmer;
+use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryCompiler;
-use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
+use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
 
 final class CompiledClassMetadataCacheWarmerTest extends TestCase
 {
     public function testItImplementsCacheWarmerInterface()
     {
-        $classMetadataFactory = $this->createMock(ClassMetadataFactoryInterface::class);
-        $filesystem = $this->createMock(Filesystem::class);
-
-        $compiledClassMetadataCacheWarmer = new CompiledClassMetadataCacheWarmer([], $classMetadataFactory, new ClassMetadataFactoryCompiler(), $filesystem);
+        $compiledClassMetadataCacheWarmer = new CompiledClassMetadataCacheWarmer([], new ClassMetadataFactory(new AttributeLoader()), new ClassMetadataFactoryCompiler(), new Filesystem());
 
         $this->assertInstanceOf(CacheWarmerInterface::class, $compiledClassMetadataCacheWarmer);
     }
 
     public function testItIsAnOptionalCacheWarmer()
     {
-        $classMetadataFactory = $this->createMock(ClassMetadataFactoryInterface::class);
-        $filesystem = $this->createMock(Filesystem::class);
-
-        $compiledClassMetadataCacheWarmer = new CompiledClassMetadataCacheWarmer([], $classMetadataFactory, new ClassMetadataFactoryCompiler(), $filesystem);
+        $compiledClassMetadataCacheWarmer = new CompiledClassMetadataCacheWarmer([], new ClassMetadataFactory(new AttributeLoader()), new ClassMetadataFactoryCompiler(), new Filesystem());
 
         $this->assertTrue($compiledClassMetadataCacheWarmer->isOptional());
     }
 
     public function testItDumpCompiledClassMetadatas()
     {
-        $classMetadataFactory = $this->createMock(ClassMetadataFactoryInterface::class);
-
         $code = <<<EOF
-<?php
+            <?php
 
-// This file has been auto-generated by the Symfony Serializer Component.
+            // This file has been auto-generated by the Symfony Serializer Component.
 
-return [
-];
-EOF;
+            return [
+            ];
+            EOF;
 
         $filesystem = $this->createMock(Filesystem::class);
         $filesystem
@@ -60,7 +53,7 @@
             ->with('/var/cache/prod/serializer.class.metadata.php', $code)
         ;
 
-        $compiledClassMetadataCacheWarmer = new CompiledClassMetadataCacheWarmer([], $classMetadataFactory, new ClassMetadataFactoryCompiler(), $filesystem);
+        $compiledClassMetadataCacheWarmer = new CompiledClassMetadataCacheWarmer([], new ClassMetadataFactory(new AttributeLoader()), new ClassMetadataFactoryCompiler(), $filesystem);
 
         $compiledClassMetadataCacheWarmer->warmUp('/var/cache/prod');
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Command/DebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Command/DebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Command/DebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Command/DebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,6 @@
 use Symfony\Component\Console\Tester\CommandTester;
 use Symfony\Component\Serializer\Command\DebugCommand;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
-use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
 use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
 use Symfony\Component\Serializer\Tests\Dummy\DummyClassOne;
 
@@ -79,9 +78,7 @@
 
     public function testOutputWithInvalidClassArgument()
     {
-        $serializer = $this->createMock(ClassMetadataFactoryInterface::class);
-
-        $command = new DebugCommand($serializer);
+        $command = new DebugCommand(new ClassMetadataFactory(new AttributeLoader()));
 
         $tester = new CommandTester($command);
         $tester->execute(['class' => 'App\\NotFoundResource'], ['decorated' => false]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Context/ContextBuilderTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Context/ContextBuilderTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Context/ContextBuilderTraitTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Context/ContextBuilderTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
 {
     public function testWithContext()
     {
-        $contextBuilder = new class() implements ContextBuilderInterface {
+        $contextBuilder = new class implements ContextBuilderInterface {
             use ContextBuilderTrait;
         };
 
@@ -37,7 +37,7 @@
 
     public function testWith()
     {
-        $contextBuilder = new class() {
+        $contextBuilder = new class {
             use ContextBuilderTrait;
 
             public function withFoo(string $value): static
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Context/Normalizer/AbstractNormalizerContextBuilderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Context/Normalizer/AbstractNormalizerContextBuilderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Context/Normalizer/AbstractNormalizerContextBuilderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Context/Normalizer/AbstractNormalizerContextBuilderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
 
     protected function setUp(): void
     {
-        $this->contextBuilder = new class() extends AbstractNormalizerContextBuilder {};
+        $this->contextBuilder = new class extends AbstractNormalizerContextBuilder {};
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Context/Normalizer/AbstractObjectNormalizerContextBuilderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Context/Normalizer/AbstractObjectNormalizerContextBuilderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Context/Normalizer/AbstractObjectNormalizerContextBuilderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Context/Normalizer/AbstractObjectNormalizerContextBuilderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
 
     protected function setUp(): void
     {
-        $this->contextBuilder = new class() extends AbstractObjectNormalizerContextBuilder {};
+        $this->contextBuilder = new class extends AbstractObjectNormalizerContextBuilder {};
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableEncoderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableEncoderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableEncoderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableEncoderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,8 +42,8 @@
 
     public function testCollectEncodingData()
     {
-        $encoder = $this->createMock(EncoderInterface::class);
-        $decoder = $this->createMock(DecoderInterface::class);
+        $encoder = $this->createStub(EncoderInterface::class);
+        $decoder = $this->createStub(DecoderInterface::class);
 
         $dataCollector = $this->createMock(SerializerDataCollector::class);
         $dataCollector
@@ -61,8 +61,8 @@
 
     public function testNotCollectEncodingDataIfNoDebugTraceId()
     {
-        $encoder = $this->createMock(EncoderInterface::class);
-        $decoder = $this->createMock(DecoderInterface::class);
+        $encoder = $this->createStub(EncoderInterface::class);
+        $decoder = $this->createStub(DecoderInterface::class);
 
         $dataCollector = $this->createMock(SerializerDataCollector::class);
         $dataCollector->expects($this->never())->method('collectEncoding');
@@ -76,22 +76,22 @@
     {
         $this->expectException(\BadMethodCallException::class);
 
-        (new TraceableEncoder($this->createMock(DecoderInterface::class), new SerializerDataCollector()))->encode('data', 'format');
+        (new TraceableEncoder($this->createStub(DecoderInterface::class), new SerializerDataCollector()))->encode('data', 'format');
     }
 
     public function testCannotDecodeIfNotDecoder()
     {
         $this->expectException(\BadMethodCallException::class);
 
-        (new TraceableEncoder($this->createMock(EncoderInterface::class), new SerializerDataCollector()))->decode('data', 'format');
+        (new TraceableEncoder($this->createStub(EncoderInterface::class), new SerializerDataCollector()))->decode('data', 'format');
     }
 
     public function testSupports()
     {
-        $encoder = $this->createMock(EncoderInterface::class);
+        $encoder = $this->createStub(EncoderInterface::class);
         $encoder->method('supportsEncoding')->willReturn(true);
 
-        $decoder = $this->createMock(DecoderInterface::class);
+        $decoder = $this->createStub(DecoderInterface::class);
         $decoder->method('supportsDecoding')->willReturn(true);
 
         $traceableEncoder = new TraceableEncoder($encoder, new SerializerDataCollector());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,9 +44,9 @@
 
     public function testCollectNormalizationData()
     {
-        $normalizer = $this->createMock(NormalizerInterface::class);
+        $normalizer = $this->createStub(NormalizerInterface::class);
         $normalizer->method('getSupportedTypes')->willReturn(['*' => false]);
-        $denormalizer = $this->createMock(DenormalizerInterface::class);
+        $denormalizer = $this->createStub(DenormalizerInterface::class);
         $denormalizer->method('getSupportedTypes')->willReturn(['*' => false]);
 
         $dataCollector = $this->createMock(SerializerDataCollector::class);
@@ -65,9 +65,9 @@
 
     public function testNotCollectNormalizationDataIfNoDebugTraceId()
     {
-        $normalizer = $this->createMock(NormalizerInterface::class);
+        $normalizer = $this->createStub(NormalizerInterface::class);
         $normalizer->method('getSupportedTypes')->willReturn(['*' => false]);
-        $denormalizer = $this->createMock(DenormalizerInterface::class);
+        $denormalizer = $this->createStub(DenormalizerInterface::class);
         $denormalizer->method('getSupportedTypes')->willReturn(['*' => false]);
 
         $dataCollector = $this->createMock(SerializerDataCollector::class);
@@ -82,23 +82,23 @@
     {
         $this->expectException(\BadMethodCallException::class);
 
-        (new TraceableNormalizer($this->createMock(DenormalizerInterface::class), new SerializerDataCollector()))->normalize('data');
+        (new TraceableNormalizer($this->createStub(DenormalizerInterface::class), new SerializerDataCollector()))->normalize('data');
     }
 
     public function testCannotDenormalizeIfNotDenormalizer()
     {
         $this->expectException(\BadMethodCallException::class);
 
-        (new TraceableNormalizer($this->createMock(NormalizerInterface::class), new SerializerDataCollector()))->denormalize('data', 'type');
+        (new TraceableNormalizer($this->createStub(NormalizerInterface::class), new SerializerDataCollector()))->denormalize('data', 'type');
     }
 
     public function testSupports()
     {
-        $normalizer = $this->createMock(NormalizerInterface::class);
+        $normalizer = $this->createStub(NormalizerInterface::class);
         $normalizer->method('getSupportedTypes')->willReturn(['*' => false]);
         $normalizer->method('supportsNormalization')->willReturn(true);
 
-        $denormalizer = $this->createMock(DenormalizerInterface::class);
+        $denormalizer = $this->createStub(DenormalizerInterface::class);
         $denormalizer->method('getSupportedTypes')->willReturn(['*' => false]);
         $denormalizer->method('supportsDenormalization')->willReturn(true);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -106,7 +106,7 @@
 
     public function testAddDebugTraceIdInContext()
     {
-        $serializer = $this->createMock(Serializer::class);
+        $serializer = $this->createStub(Serializer::class);
 
         foreach (['serialize', 'deserialize', 'normalize', 'denormalize', 'encode', 'decode'] as $method) {
             $serializer->method($method)->willReturnCallback(function (): string {
@@ -126,6 +126,40 @@
         $traceableSerializer->encode('data', 'format');
         $traceableSerializer->decode('data', 'format');
     }
+
+    public function testCollectedCaller()
+    {
+        $serializer = new \Symfony\Component\Serializer\Serializer();
+
+        $collector = new SerializerDataCollector();
+        $traceableSerializer = new TraceableSerializer($serializer, $collector);
+
+        $traceableSerializer->normalize('data');
+        $collector->lateCollect();
+
+        $this->assertSame([
+            'name' => 'TraceableSerializerTest.php',
+            'file' => __FILE__,
+            'line' => __LINE__ - 6,
+        ], $collector->getData()['normalize'][0]['caller']);
+    }
+
+    public function testCollectedCallerFromArrayMap()
+    {
+        $serializer = new \Symfony\Component\Serializer\Serializer();
+
+        $collector = new SerializerDataCollector();
+        $traceableSerializer = new TraceableSerializer($serializer, $collector);
+
+        array_map([$traceableSerializer, 'normalize'], ['data']);
+        $collector->lateCollect();
+
+        $this->assertSame([
+            'name' => 'TraceableSerializerTest.php',
+            'file' => __FILE__,
+            'line' => __LINE__ - 6,
+        ], $collector->getData()['normalize'][0]['caller']);
+    }
 }
 
 class Serializer implements SerializerInterface, NormalizerInterface, DenormalizerInterface, EncoderInterface, DecoderInterface
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/DeserializeNestedArrayOfObjectsTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/DeserializeNestedArrayOfObjectsTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/DeserializeNestedArrayOfObjectsTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/DeserializeNestedArrayOfObjectsTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,12 +36,12 @@
     public function testPropertyPhpDoc($class)
     {
         $json = <<<EOF
-{
-    "animals": [
-        {"name": "Bug"}
-    ]
-}
-EOF;
+            {
+                "animals": [
+                    {"name": "Bug"}
+                ]
+            }
+            EOF;
         $serializer = new Serializer([
             new ObjectNormalizer(null, null, null, new PhpDocExtractor()),
             new ArrayDenormalizer(),
@@ -57,23 +57,23 @@
     public function testPropertyPhpDocWithKeyTypes()
     {
         $json = <<<EOF
-{
-    "animalsInt": [
-        {"name": "Bug"}
-    ],
-    "animalsString": {
-        "animal1": {"name": "Bug"}
-    },
-    "animalsUnion": {
-        "animal2": {"name": "Bug"},
-        "2": {"name": "Dog"}
-    },
-    "animalsGenerics": {
-        "animal3": {"name": "Bug"},
-        "3": {"name": "Dog"}
-    }
-}
-EOF;
+            {
+                "animalsInt": [
+                    {"name": "Bug"}
+                ],
+                "animalsString": {
+                    "animal1": {"name": "Bug"}
+                },
+                "animalsUnion": {
+                    "animal2": {"name": "Bug"},
+                    "2": {"name": "Dog"}
+                },
+                "animalsGenerics": {
+                    "animal3": {"name": "Bug"},
+                    "3": {"name": "Dog"}
+                }
+            }
+            EOF;
         $serializer = new Serializer([
             new ObjectNormalizer(null, null, null, new PhpDocExtractor()),
             new ArrayDenormalizer(),
@@ -102,6 +102,30 @@
         self::assertArrayHasKey(3, $zoo->animalsGenerics);
         self::assertInstanceOf(Animal::class, $zoo->animalsGenerics[3]);
     }
+
+    public function testNestedArrayWithStringKeyUnderList()
+    {
+        $json = <<<EOF
+            {
+                "foos": [{"operators": {"something": [{"name": "Bug"}]}}]
+            }
+            EOF;
+        $serializer = new Serializer([
+            new ObjectNormalizer(null, null, null, new PhpDocExtractor()),
+            new ArrayDenormalizer(),
+        ], ['json' => new JsonEncoder()]);
+
+        /** @var BarWithNestedKeyTypes $bar */
+        $bar = $serializer->deserialize($json, BarWithNestedKeyTypes::class, 'json');
+
+        self::assertCount(1, $bar->foos);
+        self::assertInstanceOf(FooWithStringKeyedList::class, $bar->foos[0]);
+        self::assertCount(1, $bar->foos[0]->operators);
+        self::assertArrayHasKey('something', $bar->foos[0]->operators);
+        self::assertCount(1, $bar->foos[0]->operators['something']);
+        self::assertInstanceOf(Animal::class, $bar->foos[0]->operators['something'][0]);
+        self::assertSame('Bug', $bar->foos[0]->operators['something'][0]->getName());
+    }
 }
 
 class Zoo
@@ -178,3 +202,19 @@
         $this->name = $name;
     }
 }
+
+class FooWithStringKeyedList
+{
+    /** @param array<string, list<Animal>> $operators */
+    public function __construct(public array $operators = [])
+    {
+    }
+}
+
+class BarWithNestedKeyTypes
+{
+    /** @param list<FooWithStringKeyedList> $foos */
+    public function __construct(public array $foos = [])
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Dummy/DummyClassTwo.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Dummy/DummyClassTwo.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Dummy/DummyClassTwo.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Dummy/DummyClassTwo.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,20 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Dummy;
+
+use Symfony\Component\Serializer\Attribute\SerializedName;
+
+class DummyClassTwo
+{
+    #[SerializedName('nested')]
+    public DummyClassOne $child;
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/ChainDecoderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/ChainDecoderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/ChainDecoderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/ChainDecoderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Serializer\Tests\Encoder;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Serializer\Encoder\ChainDecoder;
 use Symfony\Component\Serializer\Encoder\ContextAwareDecoderInterface;
@@ -24,72 +23,90 @@
     private const FORMAT_2 = 'format2';
     private const FORMAT_3 = 'format3';
 
-    private ChainDecoder $chainDecoder;
-    private MockObject&ContextAwareDecoderInterface $decoder1;
-    private MockObject&DecoderInterface $decoder2;
-
-    protected function setUp(): void
-    {
-        $this->decoder1 = $this->createMock(ContextAwareDecoderInterface::class);
-        $this->decoder1
-            ->method('supportsDecoding')
-            ->willReturnMap([
-                [self::FORMAT_1, [], true],
-                [self::FORMAT_2, [], false],
-                [self::FORMAT_3, [], false],
-                [self::FORMAT_3, ['foo' => 'bar'], true],
-                [self::FORMAT_3, ['foo' => 'bar2'], false],
-            ]);
-
-        $this->decoder2 = $this->createMock(DecoderInterface::class);
-        $this->decoder2
-            ->method('supportsDecoding')
-            ->willReturnMap([
-                [self::FORMAT_1, [], false],
-                [self::FORMAT_2, [], true],
-                [self::FORMAT_3, [], false],
-                [self::FORMAT_3, ['foo' => 'bar'], false],
-                [self::FORMAT_3, ['foo' => 'bar2'], true],
-            ]);
-
-        $this->chainDecoder = new ChainDecoder([$this->decoder1, $this->decoder2]);
-    }
-
     public function testSupportsDecoding()
     {
-        $this->decoder1
+        $decoder1 = $this->createDecoder1();
+        $decoder1
             ->method('decode')
             ->willReturn('result1');
-        $this->decoder2
+        $decoder2 = $this->createDecoder2();
+        $decoder2
             ->method('decode')
             ->willReturn('result2');
+        $chainDecoder = new ChainDecoder([$decoder1, $decoder2]);
 
-        $this->assertTrue($this->chainDecoder->supportsDecoding(self::FORMAT_1));
-        $this->assertEquals('result1', $this->chainDecoder->decode('', self::FORMAT_1, []));
+        $this->assertTrue($chainDecoder->supportsDecoding(self::FORMAT_1));
+        $this->assertEquals('result1', $chainDecoder->decode('', self::FORMAT_1, []));
 
-        $this->assertTrue($this->chainDecoder->supportsDecoding(self::FORMAT_2));
-        $this->assertEquals('result2', $this->chainDecoder->decode('', self::FORMAT_2, []));
+        $this->assertTrue($chainDecoder->supportsDecoding(self::FORMAT_2));
+        $this->assertEquals('result2', $chainDecoder->decode('', self::FORMAT_2, []));
 
-        $this->assertFalse($this->chainDecoder->supportsDecoding(self::FORMAT_3));
+        $this->assertFalse($chainDecoder->supportsDecoding(self::FORMAT_3));
 
-        $this->assertTrue($this->chainDecoder->supportsDecoding(self::FORMAT_3, ['foo' => 'bar']));
-        $this->assertEquals('result1', $this->chainDecoder->decode('', self::FORMAT_3, ['foo' => 'bar']));
+        $this->assertTrue($chainDecoder->supportsDecoding(self::FORMAT_3, ['foo' => 'bar']));
+        $this->assertEquals('result1', $chainDecoder->decode('', self::FORMAT_3, ['foo' => 'bar']));
 
-        $this->assertTrue($this->chainDecoder->supportsDecoding(self::FORMAT_3, ['foo' => 'bar2']));
-        $this->assertEquals('result2', $this->chainDecoder->decode('', self::FORMAT_3, ['foo' => 'bar2']));
+        $this->assertTrue($chainDecoder->supportsDecoding(self::FORMAT_3, ['foo' => 'bar2']));
+        $this->assertEquals('result2', $chainDecoder->decode('', self::FORMAT_3, ['foo' => 'bar2']));
     }
 
     public function testDecode()
     {
-        $this->decoder1->expects($this->never())->method('decode');
-        $this->decoder2->expects($this->once())->method('decode');
+        $decoder1 = $this->createDecoder1(true);
+        $decoder1->expects($this->never())->method('decode');
+        $decoder2 = $this->createDecoder2(true);
+        $decoder2->expects($this->once())->method('decode');
+        $chainDecoder = new ChainDecoder([$decoder1, $decoder2]);
 
-        $this->chainDecoder->decode('string_to_decode', self::FORMAT_2);
+        $chainDecoder->decode('string_to_decode', self::FORMAT_2);
     }
 
     public function testDecodeUnsupportedFormat()
     {
+        $chainDecoder = new ChainDecoder([$this->createDecoder1(), $this->createDecoder2()]);
         $this->expectException(RuntimeException::class);
-        $this->chainDecoder->decode('string_to_decode', self::FORMAT_3);
+        $chainDecoder->decode('string_to_decode', self::FORMAT_3);
+    }
+
+    private function createDecoder1(bool $mock = false): DecoderInterface
+    {
+        if ($mock) {
+            $decoder = $this->createMock(ContextAwareDecoderInterface::class);
+        } else {
+            $decoder = $this->createStub(ContextAwareDecoderInterface::class);
+        }
+
+        $decoder
+            ->method('supportsDecoding')
+            ->willReturnMap([
+                [self::FORMAT_1, [], true],
+                [self::FORMAT_2, [], false],
+                [self::FORMAT_3, [], false],
+                [self::FORMAT_3, ['foo' => 'bar'], true],
+                [self::FORMAT_3, ['foo' => 'bar2'], false],
+            ]);
+
+        return $decoder;
+    }
+
+    private function createDecoder2(bool $mock = false): DecoderInterface
+    {
+        if ($mock) {
+            $decoder = $this->createMock(DecoderInterface::class);
+        } else {
+            $decoder = $this->createStub(DecoderInterface::class);
+        }
+
+        $decoder
+            ->method('supportsDecoding')
+            ->willReturnMap([
+                [self::FORMAT_1, [], false],
+                [self::FORMAT_2, [], true],
+                [self::FORMAT_3, [], false],
+                [self::FORMAT_3, ['foo' => 'bar'], false],
+                [self::FORMAT_3, ['foo' => 'bar2'], true],
+            ]);
+
+        return $decoder;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/ChainEncoderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/ChainEncoderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/ChainEncoderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/ChainEncoderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Serializer\Tests\Encoder;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Serializer\Debug\TraceableEncoder;
 use Symfony\Component\Serializer\Encoder\ChainEncoder;
@@ -26,79 +25,59 @@
     private const FORMAT_2 = 'format2';
     private const FORMAT_3 = 'format3';
 
-    private ChainEncoder $chainEncoder;
-    private MockObject&ContextAwareEncoderInterface $encoder1;
-    private MockObject&EncoderInterface $encoder2;
-
-    protected function setUp(): void
-    {
-        $this->encoder1 = $this->createMock(ContextAwareEncoderInterface::class);
-        $this->encoder1
-            ->method('supportsEncoding')
-            ->willReturnMap([
-                [self::FORMAT_1, [], true],
-                [self::FORMAT_2, [], false],
-                [self::FORMAT_3, [], false],
-                [self::FORMAT_3, ['foo' => 'bar'], true],
-                [self::FORMAT_3, ['foo' => 'bar2'], false],
-            ]);
-
-        $this->encoder2 = $this->createMock(EncoderInterface::class);
-        $this->encoder2
-            ->method('supportsEncoding')
-            ->willReturnMap([
-                [self::FORMAT_1, [], false],
-                [self::FORMAT_2, [], true],
-                [self::FORMAT_3, [], false],
-                [self::FORMAT_3, ['foo' => 'bar'], false],
-                [self::FORMAT_3, ['foo' => 'bar2'], true],
-            ]);
-
-        $this->chainEncoder = new ChainEncoder([$this->encoder1, $this->encoder2]);
-    }
-
     public function testSupportsEncoding()
     {
-        $this->encoder1
+        $encoder1 = $this->createEncoder1();
+        $encoder1
             ->method('encode')
             ->willReturn('result1');
-        $this->encoder2
+        $encoder2 = $this->createEncoder2();
+        $encoder2
             ->method('encode')
             ->willReturn('result2');
 
-        $this->assertTrue($this->chainEncoder->supportsEncoding(self::FORMAT_1));
-        $this->assertEquals('result1', $this->chainEncoder->encode('', self::FORMAT_1, []));
+        $chainEncoder = new ChainEncoder([$encoder1, $encoder2]);
+
+        $this->assertTrue($chainEncoder->supportsEncoding(self::FORMAT_1));
+        $this->assertEquals('result1', $chainEncoder->encode('', self::FORMAT_1, []));
 
-        $this->assertTrue($this->chainEncoder->supportsEncoding(self::FORMAT_2));
-        $this->assertEquals('result2', $this->chainEncoder->encode('', self::FORMAT_2, []));
+        $this->assertTrue($chainEncoder->supportsEncoding(self::FORMAT_2));
+        $this->assertEquals('result2', $chainEncoder->encode('', self::FORMAT_2, []));
 
-        $this->assertFalse($this->chainEncoder->supportsEncoding(self::FORMAT_3));
+        $this->assertFalse($chainEncoder->supportsEncoding(self::FORMAT_3));
 
-        $this->assertTrue($this->chainEncoder->supportsEncoding(self::FORMAT_3, ['foo' => 'bar']));
-        $this->assertEquals('result1', $this->chainEncoder->encode('', self::FORMAT_3, ['foo' => 'bar']));
+        $this->assertTrue($chainEncoder->supportsEncoding(self::FORMAT_3, ['foo' => 'bar']));
+        $this->assertEquals('result1', $chainEncoder->encode('', self::FORMAT_3, ['foo' => 'bar']));
 
-        $this->assertTrue($this->chainEncoder->supportsEncoding(self::FORMAT_3, ['foo' => 'bar2']));
-        $this->assertEquals('result2', $this->chainEncoder->encode('', self::FORMAT_3, ['foo' => 'bar2']));
+        $this->assertTrue($chainEncoder->supportsEncoding(self::FORMAT_3, ['foo' => 'bar2']));
+        $this->assertEquals('result2', $chainEncoder->encode('', self::FORMAT_3, ['foo' => 'bar2']));
     }
 
     public function testEncode()
     {
-        $this->encoder1->expects($this->never())->method('encode');
-        $this->encoder2->expects($this->once())->method('encode')->willReturn('foo:123');
+        $encoder1 = $this->createEncoder1(true);
+        $encoder1->expects($this->never())->method('encode');
+        $encoder2 = $this->createEncoder2(true);
+        $encoder2->expects($this->once())->method('encode')->willReturn('foo:123');
 
-        $this->assertSame('foo:123', $this->chainEncoder->encode(['foo' => 123], self::FORMAT_2));
+        $chainEncoder = new ChainEncoder([$encoder1, $encoder2]);
+
+        $this->assertSame('foo:123', $chainEncoder->encode(['foo' => 123], self::FORMAT_2));
     }
 
     public function testEncodeUnsupportedFormat()
     {
+        $chainEncoder = new ChainEncoder([$this->createEncoder1(), $this->createEncoder2()]);
         $this->expectException(RuntimeException::class);
-        $this->chainEncoder->encode(['foo' => 123], self::FORMAT_3);
+        $chainEncoder->encode(['foo' => 123], self::FORMAT_3);
     }
 
     public function testNeedsNormalizationBasic()
     {
-        $this->assertTrue($this->chainEncoder->needsNormalization(self::FORMAT_1));
-        $this->assertTrue($this->chainEncoder->needsNormalization(self::FORMAT_2));
+        $chainEncoder = new ChainEncoder([$this->createEncoder1(), $this->createEncoder2()]);
+
+        $this->assertTrue($chainEncoder->needsNormalization(self::FORMAT_1));
+        $this->assertTrue($chainEncoder->needsNormalization(self::FORMAT_2));
     }
 
     public function testNeedsNormalizationNormalizationAware()
@@ -111,18 +90,60 @@
 
     public function testNeedsNormalizationTraceableEncoder()
     {
-        $traceableEncoder = $this->createMock(TraceableEncoder::class);
+        $traceableEncoder = $this->createStub(TraceableEncoder::class);
         $traceableEncoder->method('needsNormalization')->willReturn(true);
         $traceableEncoder->method('supportsEncoding')->willReturn(true);
 
         $this->assertTrue((new ChainEncoder([$traceableEncoder]))->needsNormalization('format'));
 
-        $traceableEncoder = $this->createMock(TraceableEncoder::class);
+        $traceableEncoder = $this->createStub(TraceableEncoder::class);
         $traceableEncoder->method('needsNormalization')->willReturn(false);
         $traceableEncoder->method('supportsEncoding')->willReturn(true);
 
         $this->assertFalse((new ChainEncoder([$traceableEncoder]))->needsNormalization('format'));
     }
+
+    private function createEncoder1(bool $mock = false): EncoderInterface
+    {
+        if ($mock) {
+            $encoder = $this->createMock(ContextAwareEncoderInterface::class);
+        } else {
+            $encoder = $this->createStub(ContextAwareEncoderInterface::class);
+        }
+
+        $encoder
+            ->method('supportsEncoding')
+            ->willReturnMap([
+                [self::FORMAT_1, [], true],
+                [self::FORMAT_2, [], false],
+                [self::FORMAT_3, [], false],
+                [self::FORMAT_3, ['foo' => 'bar'], true],
+                [self::FORMAT_3, ['foo' => 'bar2'], false],
+            ]);
+
+        return $encoder;
+    }
+
+    private function createEncoder2(bool $mock = false): EncoderInterface
+    {
+        if ($mock) {
+            $encoder = $this->createMock(EncoderInterface::class);
+        } else {
+            $encoder = $this->createStub(EncoderInterface::class);
+        }
+
+        $encoder
+            ->method('supportsEncoding')
+            ->willReturnMap([
+                [self::FORMAT_1, [], false],
+                [self::FORMAT_2, [], true],
+                [self::FORMAT_3, [], false],
+                [self::FORMAT_3, ['foo' => 'bar'], false],
+                [self::FORMAT_3, ['foo' => 'bar2'], true],
+            ]);
+
+        return $encoder;
+    }
 }
 
 class NormalizationAwareEncoder implements EncoderInterface, NormalizationAwareInterface
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/CsvEncoderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/CsvEncoderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/CsvEncoderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/CsvEncoderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,11 +40,12 @@
 
         // Check that true and false are appropriately handled
         $this->assertSame($csv = <<<'CSV'
-string,int,false,true,int_one,string_one
-foo,2,0,1,1,1
+            string,int,false,true,int_one,string_one
+            foo,2,0,1,1,1
 
-CSV
-            , $this->encoder->encode($data, 'csv'));
+            CSV,
+            $this->encoder->encode($data, 'csv')
+        );
 
         $this->assertSame([
             'string' => 'foo',
@@ -59,11 +60,12 @@
     public function testDoubleQuotesAndSlashes()
     {
         $this->assertSame($csv = <<<'CSV'
-0,1,2,3,4,5
-,"""","foo""","\""",\,foo\
+            0,1,2,3,4,5
+            ,"""","foo""","\""",\,foo\
 
-CSV
-            , $this->encoder->encode($data = ['', '"', 'foo"', '\\"', '\\', 'foo\\'], 'csv'));
+            CSV,
+            $this->encoder->encode($data = ['', '"', 'foo"', '\\"', '\\', 'foo\\'], 'csv')
+        );
 
         $this->assertSame($data, $this->encoder->decode($csv, 'csv', [CsvEncoder::AS_COLLECTION_KEY => false]));
     }
@@ -86,11 +88,12 @@
         $value = ['foo' => 'hello', 'bar' => 'hey ho'];
 
         $this->assertEquals(<<<'CSV'
-foo,bar
-hello,"hey ho"
+            foo,bar
+            hello,"hey ho"
 
-CSV
-            , $this->encoder->encode($value, 'csv'));
+            CSV,
+            $this->encoder->encode($value, 'csv')
+        );
     }
 
     public function testEncodeCollection()
@@ -101,32 +104,35 @@
         ];
 
         $this->assertEquals(<<<'CSV'
-foo,bar
-hello,"hey ho"
-hi,"let's go"
+            foo,bar
+            hello,"hey ho"
+            hi,"let's go"
 
-CSV
-            , $this->encoder->encode($value, 'csv'));
+            CSV,
+            $this->encoder->encode($value, 'csv')
+        );
     }
 
     public function testEncodePlainIndexedArray()
     {
         $this->assertEquals(<<<'CSV'
-0,1,2
-a,b,c
+            0,1,2
+            a,b,c
 
-CSV
-            , $this->encoder->encode(['a', 'b', 'c'], 'csv'));
+            CSV,
+            $this->encoder->encode(['a', 'b', 'c'], 'csv')
+        );
     }
 
     public function testEncodeNonArray()
     {
         $this->assertEquals(<<<'CSV'
-0
-foo
+            0
+            foo
 
-CSV
-            , $this->encoder->encode('foo', 'csv'));
+            CSV,
+            $this->encoder->encode('foo', 'csv')
+        );
     }
 
     public function testEncodeNestedArrays()
@@ -137,11 +143,12 @@
         ]];
 
         $this->assertEquals(<<<'CSV'
-foo,bar.0.id,bar.0.1,bar.1.baz,bar.1.foo
-hello,yo,wesh,Halo,olá
+            foo,bar.0.id,bar.0.1,bar.1.baz,bar.1.foo
+            hello,yo,wesh,Halo,olá
 
-CSV
-            , $this->encoder->encode($value, 'csv'));
+            CSV,
+            $this->encoder->encode($value, 'csv')
+        );
     }
 
     public function testEncodeCustomSettings()
@@ -156,11 +163,12 @@
         $value = ['a' => 'he\'llo', 'c' => ['d' => 'foo']];
 
         $this->assertEquals(<<<'CSV'
-a;c-d
-'he''llo';foo
+            a;c-d
+            'he''llo';foo
 
-CSV
-            , $this->encoder->encode($value, 'csv'));
+            CSV,
+            $this->encoder->encode($value, 'csv')
+        );
     }
 
     public function testEncodeCustomSettingsPassedInContext()
@@ -168,16 +176,17 @@
         $value = ['a' => 'he\'llo', 'c' => ['d' => 'foo']];
 
         $this->assertSame(<<<'CSV'
-a;c-d
-'he''llo';foo
+            a;c-d
+            'he''llo';foo
 
-CSV
-            , $this->encoder->encode($value, 'csv', [
+            CSV,
+            $this->encoder->encode($value, 'csv', [
                 CsvEncoder::DELIMITER_KEY => ';',
                 CsvEncoder::ENCLOSURE_KEY => "'",
                 CsvEncoder::ESCAPE_CHAR_KEY => '',
                 CsvEncoder::KEY_SEPARATOR_KEY => '-',
-            ]));
+            ])
+        );
     }
 
     public function testEncodeCustomSettingsPassedInConstructor()
@@ -191,11 +200,12 @@
         $value = ['a' => 'he\'llo', 'c' => ['d' => 'foo']];
 
         $this->assertSame(<<<'CSV'
-a;c-d
-'he''llo';foo
+            a;c-d
+            'he''llo';foo
 
-CSV
-            , $encoder->encode($value, 'csv'));
+            CSV,
+            $encoder->encode($value, 'csv')
+        );
     }
 
     public function testEncodeEmptyArray()
@@ -226,12 +236,12 @@
             ['a' => ['bar', 'foo'], 'c' => 'pong'],
         ];
         $csv = <<<CSV
-a.0,a.1,c,b
-foo,bar,,
-,,,baz
-bar,foo,pong,
+            a.0,a.1,c,b
+            foo,bar,,
+            ,,,baz
+            bar,foo,pong,
 
-CSV;
+            CSV;
 
         $this->assertEquals($csv, $this->encoder->encode($value, 'csv'));
     }
@@ -248,10 +258,10 @@
             ['a' => 'foo', 'b' => 'bar'],
         ];
         $csv = <<<CSV
-b,c,a
-bar,,foo
+            b,c,a
+            bar,,foo
 
-CSV;
+            CSV;
 
         $this->assertEquals($csv, $this->encoder->encode($value, 'csv', $context));
     }
@@ -261,190 +271,211 @@
         $this->encoder = new CsvEncoder([CsvEncoder::ESCAPE_FORMULAS_KEY => true]);
 
         $this->assertSame(<<<'CSV'
-0
-'=2+3
+            0
+            '=2+3
 
-CSV
-            , $this->encoder->encode(['=2+3'], 'csv'));
+            CSV,
+            $this->encoder->encode(['=2+3'], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-'-2+3
+            0
+            '-2+3
 
-CSV
-            , $this->encoder->encode(['-2+3'], 'csv'));
+            CSV,
+            $this->encoder->encode(['-2+3'], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-'+2+3
+            0
+            '+2+3
 
-CSV
-            , $this->encoder->encode(['+2+3'], 'csv'));
+            CSV,
+            $this->encoder->encode(['+2+3'], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-'@MyDataColumn
+            0
+            '@MyDataColumn
 
-CSV
-            , $this->encoder->encode(['@MyDataColumn'], 'csv'));
+            CSV,
+            $this->encoder->encode(['@MyDataColumn'], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-"'	tab"
+            0
+            "'	tab"
 
-CSV
-            , $this->encoder->encode(["\ttab"], 'csv'));
+            CSV,
+            $this->encoder->encode(["\ttab"], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-"'=1+2"";=1+2"
+            0
+            "'=1+2"";=1+2"
 
-CSV
-            , $this->encoder->encode(['=1+2";=1+2'], 'csv'));
+            CSV,
+            $this->encoder->encode(['=1+2";=1+2'], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-"'=1+2'"" ;,=1+2"
+            0
+            "'=1+2'"" ;,=1+2"
 
-CSV
-            , $this->encoder->encode(['=1+2\'" ;,=1+2'], 'csv'));
+            CSV,
+            $this->encoder->encode(['=1+2\'" ;,=1+2'], 'csv')
+        );
     }
 
     public function testDoNotEncodeFormulas()
     {
         $this->assertSame(<<<'CSV'
-0
-=2+3
+            0
+            =2+3
 
-CSV
-            , $this->encoder->encode(['=2+3'], 'csv'));
+            CSV,
+            $this->encoder->encode(['=2+3'], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
--2+3
+            0
+            -2+3
 
-CSV
-            , $this->encoder->encode(['-2+3'], 'csv'));
+            CSV,
+            $this->encoder->encode(['-2+3'], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-+2+3
+            0
+            +2+3
 
-CSV
-            , $this->encoder->encode(['+2+3'], 'csv'));
+            CSV,
+            $this->encoder->encode(['+2+3'], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-@MyDataColumn
+            0
+            @MyDataColumn
 
-CSV
-            , $this->encoder->encode(['@MyDataColumn'], 'csv'));
+            CSV,
+            $this->encoder->encode(['@MyDataColumn'], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-"	tab"
+            0
+            "	tab"
 
-CSV
-            , $this->encoder->encode(["\ttab"], 'csv'));
+            CSV,
+            $this->encoder->encode(["\ttab"], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-"=1+2"";=1+2"
+            0
+            "=1+2"";=1+2"
 
-CSV
-            , $this->encoder->encode(['=1+2";=1+2'], 'csv'));
+            CSV,
+            $this->encoder->encode(['=1+2";=1+2'], 'csv')
+        );
 
         $this->assertSame(<<<'CSV'
-0
-"=1+2'"" ;,=1+2"
+            0
+            "=1+2'"" ;,=1+2"
 
-CSV
-            , $this->encoder->encode(['=1+2\'" ;,=1+2'], 'csv'));
+            CSV,
+            $this->encoder->encode(['=1+2\'" ;,=1+2'], 'csv')
+        );
     }
 
     public function testEncodeFormulasWithSettingsPassedInContext()
     {
         $this->assertSame(<<<'CSV'
-0
-'=2+3
+            0
+            '=2+3
 
-CSV
-            , $this->encoder->encode(['=2+3'], 'csv', [
+            CSV,
+            $this->encoder->encode(['=2+3'], 'csv', [
                 CsvEncoder::ESCAPE_FORMULAS_KEY => true,
-            ]));
+            ])
+        );
 
         $this->assertSame(<<<'CSV'
-0
-'-2+3
+            0
+            '-2+3
 
-CSV
-            , $this->encoder->encode(['-2+3'], 'csv', [
+            CSV,
+            $this->encoder->encode(['-2+3'], 'csv', [
                 CsvEncoder::ESCAPE_FORMULAS_KEY => true,
-            ]));
+            ])
+        );
 
         $this->assertSame(<<<'CSV'
-0
-'+2+3
+            0
+            '+2+3
 
-CSV
-            , $this->encoder->encode(['+2+3'], 'csv', [
+            CSV,
+            $this->encoder->encode(['+2+3'], 'csv', [
                 CsvEncoder::ESCAPE_FORMULAS_KEY => true,
-            ]));
+            ])
+        );
 
         $this->assertSame(<<<'CSV'
-0
-'@MyDataColumn
+            0
+            '@MyDataColumn
 
-CSV
-            , $this->encoder->encode(['@MyDataColumn'], 'csv', [
+            CSV,
+            $this->encoder->encode(['@MyDataColumn'], 'csv', [
                 CsvEncoder::ESCAPE_FORMULAS_KEY => true,
-            ]));
+            ])
+        );
 
         $this->assertSame(<<<'CSV'
-0
-"'	tab"
+            0
+            "'	tab"
 
-CSV
-            , $this->encoder->encode(["\ttab"], 'csv', [
+            CSV,
+            $this->encoder->encode(["\ttab"], 'csv', [
                 CsvEncoder::ESCAPE_FORMULAS_KEY => true,
-            ]));
+            ])
+        );
 
         $this->assertSame(<<<'CSV'
-0
-"'=1+2"";=1+2"
+            0
+            "'=1+2"";=1+2"
 
-CSV
-            , $this->encoder->encode(['=1+2";=1+2'], 'csv', [
+            CSV,
+            $this->encoder->encode(['=1+2";=1+2'], 'csv', [
                 CsvEncoder::ESCAPE_FORMULAS_KEY => true,
-            ]));
+            ])
+        );
 
         $this->assertSame(<<<'CSV'
-0
-"'=1+2'"" ;,=1+2"
+            0
+            "'=1+2'"" ;,=1+2"
 
-CSV
-            , $this->encoder->encode(['=1+2\'" ;,=1+2'], 'csv', [
+            CSV,
+            $this->encoder->encode(['=1+2\'" ;,=1+2'], 'csv', [
                 CsvEncoder::ESCAPE_FORMULAS_KEY => true,
-            ]));
+            ])
+        );
     }
 
     public function testEncodeWithoutHeader()
     {
         $this->assertSame(<<<'CSV'
-a,b
-c,d
+            a,b
+            c,d
 
-CSV
-            , $this->encoder->encode([['a', 'b'], ['c', 'd']], 'csv', [
+            CSV,
+            $this->encoder->encode([['a', 'b'], ['c', 'd']], 'csv', [
                 CsvEncoder::NO_HEADERS_KEY => true,
             ]));
         $encoder = new CsvEncoder([CsvEncoder::NO_HEADERS_KEY => true]);
         $this->assertSame(<<<'CSV'
-a,b
-c,d
+            a,b
+            c,d
 
-CSV
-            , $encoder->encode([['a', 'b'], ['c', 'd']], 'csv', [
+            CSV,
+            $encoder->encode([['a', 'b'], ['c', 'd']], 'csv', [
                 CsvEncoder::NO_HEADERS_KEY => true,
             ]));
     }
@@ -454,11 +485,12 @@
         $value = new \ArrayObject(['foo' => 'hello', 'bar' => 'hey ho']);
 
         $this->assertEquals(<<<'CSV'
-foo,bar
-hello,"hey ho"
+            foo,bar
+            hello,"hey ho"
 
-CSV
-            , $this->encoder->encode($value, 'csv'));
+            CSV,
+            $this->encoder->encode($value, 'csv')
+        );
 
         $value = new \ArrayObject();
 
@@ -470,11 +502,12 @@
         $value = new \ArrayObject(['foo' => new \ArrayObject(['nested' => 'value']), 'bar' => new \ArrayObject(['another' => 'word'])]);
 
         $this->assertEquals(<<<'CSV'
-foo.nested,bar.another
-value,word
+            foo.nested,bar.another
+            value,word
 
-CSV
-            , $this->encoder->encode($value, 'csv'));
+            CSV,
+            $this->encoder->encode($value, 'csv')
+        );
     }
 
     public function testEncodeEmptyArrayObject()
@@ -497,10 +530,12 @@
         $expected = ['foo' => 'a', 'bar' => 'b'];
 
         $this->assertEquals($expected, $this->encoder->decode(<<<'CSV'
-foo,bar
-a,b
-CSV
-            , 'csv', [CsvEncoder::AS_COLLECTION_KEY => false]));
+            foo,bar
+            a,b
+            CSV,
+            'csv',
+            [CsvEncoder::AS_COLLECTION_KEY => false]
+        ));
     }
 
     public function testDecodeCollection()
@@ -512,13 +547,14 @@
         ];
 
         $this->assertEquals($expected, $this->encoder->decode(<<<'CSV'
-foo,bar
-a,b
-c,d
-f
-
-CSV
-            , 'csv'));
+            foo,bar
+            a,b
+            c,d
+            f
+
+            CSV,
+            'csv'
+        ));
     }
 
     public function testDecode()
@@ -528,11 +564,12 @@
         ];
 
         $this->assertEquals($expected, $this->encoder->decode(<<<'CSV'
-foo
-a
+            foo
+            a
 
-CSV
-            , 'csv'));
+            CSV,
+            'csv'
+        ));
     }
 
     public function testDecodeToManyRelation()
@@ -545,13 +582,14 @@
         ];
 
         $this->assertEquals($expected, $this->encoder->decode(<<<'CSV'
-foo,relations.0.a,relations.1.a
-bar,b,b
-bat,b,
-bat,b
-baz,c,c
-CSV
-            , 'csv'));
+            foo,relations.0.a,relations.1.a
+            bar,b,b
+            bat,b,
+            bat,b
+            baz,c,c
+            CSV,
+            'csv'
+        ));
     }
 
     public function testDecodeNestedArrays()
@@ -562,11 +600,12 @@
         ];
 
         $this->assertEquals($expected, $this->encoder->decode(<<<'CSV'
-foo,bar.baz.bat
-a,b
-c,d
-CSV
-            , 'csv'));
+            foo,bar.baz.bat
+            a,b
+            c,d
+            CSV,
+            'csv'
+        ));
     }
 
     public function testDecodeCustomSettings()
@@ -580,20 +619,22 @@
 
         $expected = [['a' => 'hell\'o', 'bar' => ['baz' => 'b']]];
         $this->assertEquals($expected, $this->encoder->decode(<<<'CSV'
-a;bar-baz
-'hell''o';b;c
-CSV
-            , 'csv'));
+            a;bar-baz
+            'hell''o';b;c
+            CSV,
+            'csv'
+        ));
     }
 
     public function testDecodeCustomSettingsPassedInContext()
     {
         $expected = [['a' => 'hell\'o', 'bar' => ['baz' => 'b']]];
         $this->assertEquals($expected, $this->encoder->decode(<<<'CSV'
-a;bar-baz
-'hell''o';b;c
-CSV
-            , 'csv', [
+            a;bar-baz
+            'hell''o';b;c
+            CSV,
+            'csv',
+            [
                 CsvEncoder::DELIMITER_KEY => ';',
                 CsvEncoder::ENCLOSURE_KEY => "'",
                 CsvEncoder::ESCAPE_CHAR_KEY => '',
@@ -612,10 +653,11 @@
         ]);
         $expected = [['a' => 'hell\'o', 'bar' => ['baz' => 'b']]];
         $this->assertEquals($expected, $encoder->decode(<<<'CSV'
-a;bar-baz
-'hell''o';b;c
-CSV
-            , 'csv'));
+            a;bar-baz
+            'hell''o';b;c
+            CSV,
+            'csv'
+        ));
     }
 
     public function testDecodeMalformedCollection()
@@ -627,13 +669,14 @@
         ];
 
         $this->assertEquals($expected, $this->encoder->decode(<<<'CSV'
-foo,bar
-a,b,e
-c,d,g,h
-f
-
-CSV
-            , 'csv'));
+            foo,bar
+            a,b,e
+            c,d,g,h
+            f
+
+            CSV,
+            'csv'
+        ));
     }
 
     public function testDecodeEmptyArray()
@@ -644,20 +687,22 @@
     public function testDecodeWithoutHeader()
     {
         $this->assertEquals([['a', 'b'], ['c', 'd']], $this->encoder->decode(<<<'CSV'
-a,b
-c,d
+            a,b
+            c,d
 
-CSV
-            , 'csv', [
+            CSV,
+            'csv',
+            [
                 CsvEncoder::NO_HEADERS_KEY => true,
             ]));
         $encoder = new CsvEncoder([CsvEncoder::NO_HEADERS_KEY => true]);
         $this->assertEquals([['a', 'b'], ['c', 'd']], $encoder->decode(<<<'CSV'
-a,b
-c,d
+            a,b
+            c,d
 
-CSV
-            , 'csv', [
+            CSV,
+            'csv',
+            [
                 CsvEncoder::NO_HEADERS_KEY => true,
             ]));
     }
@@ -667,11 +712,12 @@
         $value = ['foo' => 'hello', 'bar' => 'hey ho'];
 
         $this->assertEquals("\xEF\xBB\xBF".<<<'CSV'
-foo,bar
-hello,"hey ho"
+            foo,bar
+            hello,"hey ho"
 
-CSV
-            , $this->encoder->encode($value, 'csv', [CsvEncoder::OUTPUT_UTF8_BOM_KEY => true]));
+            CSV,
+            $this->encoder->encode($value, 'csv', [CsvEncoder::OUTPUT_UTF8_BOM_KEY => true])
+        );
     }
 
     public function testBOMCanNotBeAddedToNonUtf8Csv()
@@ -686,10 +732,10 @@
     public function testBOMIsStripped()
     {
         $csv = "\xEF\xBB\xBF".<<<'CSV'
-foo,bar
-hello,"hey ho"
+            foo,bar
+            hello,"hey ho"
 
-CSV;
+            CSV;
         $this->assertEquals(
             ['foo' => 'hello', 'bar' => 'hey ho'],
             $this->encoder->decode($csv, 'csv', [CsvEncoder::AS_COLLECTION_KEY => false])
@@ -710,4 +756,28 @@
         $encoder = new CsvEncoder([CsvEncoder::END_OF_LINE => "\r\n"]);
         $this->assertSame("foo,bar\r\nhello,test\r\n", $encoder->encode($value, 'csv'));
     }
+
+    /** @dataProvider provideIterable */
+    public function testIterable(mixed $data)
+    {
+        $this->assertEquals(<<<'CSV'
+            foo,bar
+            hello,"hey ho"
+            hi,"let's go"
+
+            CSV, $this->encoder->encode($data, 'csv'));
+    }
+
+    public static function provideIterable()
+    {
+        $data = [
+            ['foo' => 'hello', 'bar' => 'hey ho'],
+            ['foo' => 'hi', 'bar' => 'let\'s go'],
+        ];
+
+        yield 'array' => [$data];
+        yield 'array iterator' => [new \ArrayIterator($data)];
+        yield 'iterator aggregate' => [new \IteratorIterator(new \ArrayIterator($data))];
+        yield 'generator' => [(static fn (): \Generator => yield from $data)()];
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -187,15 +187,15 @@
     {
         $array = ['person' => ['name' => 'George Abitbol', 'age' => null]];
         $expected = <<<'XML'
-<?xml version="1.0"?>
-<response>
-  <person>
-    <name>George Abitbol</name>
-    <age></age>
-  </person>
-</response>
+            <?xml version="1.0"?>
+            <response>
+              <person>
+                <name>George Abitbol</name>
+                <age></age>
+              </person>
+            </response>
 
-XML;
+            XML;
 
         $context = [
             'xml_format_output' => true,
@@ -290,9 +290,9 @@
     public function testDecodeBigDigitAttributes()
     {
         $source = <<<XML
-<?xml version="1.0"?>
-<document index="182077241760011681341821060401202210011000045913000000017100">Name</document>
-XML;
+            <?xml version="1.0"?>
+            <document index="182077241760011681341821060401202210011000045913000000017100">Name</document>
+            XML;
 
         $this->assertSame(['@index' => 182077241760011681341821060401202210011000045913000000017100, '#' => 'Name'], $this->encoder->decode($source, 'xml'));
     }
@@ -300,9 +300,9 @@
     public function testDecodeNegativeIntAttribute()
     {
         $source = <<<XML
-<?xml version="1.0"?>
-<document index="-1234">Name</document>
-XML;
+            <?xml version="1.0"?>
+            <document index="-1234">Name</document>
+            XML;
 
         $this->assertSame(['@index' => -1234, '#' => 'Name'], $this->encoder->decode($source, 'xml'));
     }
@@ -310,9 +310,9 @@
     public function testDecodeFloatAttribute()
     {
         $source = <<<XML
-<?xml version="1.0"?>
-<document index="12.11">Name</document>
-XML;
+            <?xml version="1.0"?>
+            <document index="12.11">Name</document>
+            XML;
 
         $this->assertSame(['@index' => 12.11, '#' => 'Name'], $this->encoder->decode($source, 'xml'));
     }
@@ -320,9 +320,9 @@
     public function testDecodeNegativeFloatAttribute()
     {
         $source = <<<XML
-<?xml version="1.0"?>
-<document index="-12.11">Name</document>
-XML;
+            <?xml version="1.0"?>
+            <document index="-12.11">Name</document>
+            XML;
 
         $this->assertSame(['@index' => -12.11, '#' => 'Name'], $this->encoder->decode($source, 'xml'));
     }
@@ -330,9 +330,9 @@
     public function testDecodeFloatAttributeWithZeroWholeNumber()
     {
         $source = <<<XML
-<?xml version="1.0"?>
-<document index="0.123">Name</document>
-XML;
+            <?xml version="1.0"?>
+            <document index="0.123">Name</document>
+            XML;
 
         $this->assertSame(['@index' => 0.123, '#' => 'Name'], $this->encoder->decode($source, 'xml'));
     }
@@ -340,9 +340,9 @@
     public function testNoTypeCastRootAttribute()
     {
         $source = <<<XML
-<?xml version="1.0"?>
-<document a="123"></document>
-XML;
+            <?xml version="1.0"?>
+            <document a="123"></document>
+            XML;
 
         $data = $this->encoder->decode($source, 'xml', ['xml_type_cast_attributes' => false]);
         $expected = [
@@ -355,11 +355,11 @@
     public function testNoTypeCastAttribute()
     {
         $source = <<<XML
-<?xml version="1.0"?>
-<document a="018" b="-12.11">
-    <node a="018" b="-12.11"/>
-</document>
-XML;
+            <?xml version="1.0"?>
+            <document a="018" b="-12.11">
+                <node a="018" b="-12.11"/>
+            </document>
+            XML;
 
         $data = $this->encoder->decode($source, 'xml', ['xml_type_cast_attributes' => false]);
         $expected = [
@@ -377,9 +377,9 @@
     public function testDoesNotTypeCastStringsStartingWith0()
     {
         $source = <<<XML
-<?xml version="1.0"?>
-<document a="018"></document>
-XML;
+            <?xml version="1.0"?>
+            <document a="018"></document>
+            XML;
 
         $data = $this->encoder->decode($source, 'xml');
         $this->assertSame('018', $data['@a']);
@@ -425,10 +425,10 @@
         $this->encoder->setSerializer($serializer);
 
         $expected = <<<'XML'
-<?xml version="1.0"?>
-<response><foo>normalizedFoo</foo><bar>normalizedBar</bar></response>
+            <?xml version="1.0"?>
+            <response><foo>normalizedFoo</foo><bar>normalizedBar</bar></response>
 
-XML;
+            XML;
 
         $this->assertEquals($expected, $serializer->serialize(new NormalizableTraversableDummy(), 'xml'));
     }
@@ -547,36 +547,36 @@
     public function testDecodeXMLWithProcessInstruction()
     {
         $source = <<<'XML'
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="/xsl/xmlverbatimwrapper.xsl"?>
-    <?display table-view?>
-    <?sort alpha-ascending?>
-    <response>
-        <foo>foo</foo>
-        <?textinfo whitespace is allowed ?>
-        <bar>a</bar>
-        <bar>b</bar>
-        <baz>
-            <key>val</key>
-            <key2>val</key2>
-            <item key="A B">bar</item>
-            <item>
-                <title>title1</title>
-            </item>
-            <?item ignore-title ?>
-            <item>
-                <title>title2</title>
-            </item>
-            <Barry>
-                <FooBar id="1">
-                    <Baz>Ed</Baz>
-                </FooBar>
-            </Barry>
-        </baz>
-        <qux>1</qux>
-    </response>
-    <?instruction <value> ?>
-XML;
+            <?xml version="1.0"?>
+            <?xml-stylesheet type="text/xsl" href="/xsl/xmlverbatimwrapper.xsl"?>
+                <?display table-view?>
+                <?sort alpha-ascending?>
+                <response>
+                    <foo>foo</foo>
+                    <?textinfo whitespace is allowed ?>
+                    <bar>a</bar>
+                    <bar>b</bar>
+                    <baz>
+                        <key>val</key>
+                        <key2>val</key2>
+                        <item key="A B">bar</item>
+                        <item>
+                            <title>title1</title>
+                        </item>
+                        <?item ignore-title ?>
+                        <item>
+                            <title>title2</title>
+                        </item>
+                        <Barry>
+                            <FooBar id="1">
+                                <Baz>Ed</Baz>
+                            </FooBar>
+                        </Barry>
+                    </baz>
+                    <qux>1</qux>
+                </response>
+                <?instruction <value> ?>
+            XML;
         $obj = $this->getObject();
 
         $this->assertEquals(get_object_vars($obj), $this->encoder->decode($source, 'xml'));
@@ -585,18 +585,18 @@
     public function testDecodeIgnoreWhiteSpace()
     {
         $source = <<<'XML'
-<?xml version="1.0"?>
-<people>
-    <person>
-        <firstname>Benjamin</firstname>
-        <lastname>Alexandre</lastname>
-    </person>
-    <person>
-        <firstname>Damien</firstname>
-        <lastname>Clay</lastname>
-    </person>
-</people>
-XML;
+            <?xml version="1.0"?>
+            <people>
+                <person>
+                    <firstname>Benjamin</firstname>
+                    <lastname>Alexandre</lastname>
+                </person>
+                <person>
+                    <firstname>Damien</firstname>
+                    <lastname>Clay</lastname>
+                </person>
+            </people>
+            XML;
         $expected = ['person' => [
             ['firstname' => 'Benjamin', 'lastname' => 'Alexandre'],
             ['firstname' => 'Damien', 'lastname' => 'Clay'],
@@ -608,25 +608,25 @@
     public function testDecodeIgnoreComments()
     {
         $source = <<<'XML'
-<?xml version="1.0"?>
-<!-- This comment should not become the root node. -->
-<people>
-    <person>
-        <!-- Even if the first comment didn't become the root node, we don't
-             want this comment either. -->
-        <firstname>Benjamin</firstname>
-        <lastname>Alexandre</lastname>
-    </person>
-    <person>
-        <firstname>Damien</firstname>
-        <lastname>Clay</lastname>
-    </person>
-</people>
-XML;
+            <?xml version="1.0"?>
+            <!-- This comment should not become the root node. -->
+            <people>
+                <person>
+                    <!-- Even if the first comment didn't become the root node, we don't
+                         want this comment either. -->
+                    <firstname>Benjamin</firstname>
+                    <lastname>Alexandre</lastname>
+                </person>
+                <person>
+                    <firstname>Damien</firstname>
+                    <lastname>Clay</lastname>
+                </person>
+            </people>
+            XML;
 
         $expected = ['person' => [
-          ['firstname' => 'Benjamin', 'lastname' => 'Alexandre'],
-          ['firstname' => 'Damien', 'lastname' => 'Clay'],
+            ['firstname' => 'Benjamin', 'lastname' => 'Alexandre'],
+            ['firstname' => 'Damien', 'lastname' => 'Clay'],
         ]];
 
         $this->assertEquals($expected, $this->encoder->decode($source, 'xml'));
@@ -635,22 +635,22 @@
     public function testDecodeIgnoreDocumentType()
     {
         $source = <<<'XML'
-<?xml version="1.0"?>
-<!DOCTYPE people>
-<people>
-    <person>
-        <firstname>Benjamin</firstname>
-        <lastname>Alexandre</lastname>
-    </person>
-    <person>
-        <firstname>Damien</firstname>
-        <lastname>Clay</lastname>
-    </person>
-</people>
-XML;
+            <?xml version="1.0"?>
+            <!DOCTYPE people>
+            <people>
+                <person>
+                    <firstname>Benjamin</firstname>
+                    <lastname>Alexandre</lastname>
+                </person>
+                <person>
+                    <firstname>Damien</firstname>
+                    <lastname>Clay</lastname>
+                </person>
+            </people>
+            XML;
         $expected = ['person' => [
-          ['firstname' => 'Benjamin', 'lastname' => 'Alexandre'],
-          ['firstname' => 'Damien', 'lastname' => 'Clay'],
+            ['firstname' => 'Benjamin', 'lastname' => 'Alexandre'],
+            ['firstname' => 'Damien', 'lastname' => 'Clay'],
         ]];
         $this->assertEquals($expected, $this->encoder->decode(
             $source,
@@ -662,19 +662,19 @@
     public function testDecodePreserveComments()
     {
         $source = <<<'XML'
-<?xml version="1.0"?>
-<people>
-    <person>
-        <!-- This comment should be decoded. -->
-        <firstname>Benjamin</firstname>
-        <lastname>Alexandre</lastname>
-    </person>
-    <person>
-        <firstname>Damien</firstname>
-        <lastname>Clay</lastname>
-    </person>
-</people>
-XML;
+            <?xml version="1.0"?>
+            <people>
+                <person>
+                    <!-- This comment should be decoded. -->
+                    <firstname>Benjamin</firstname>
+                    <lastname>Alexandre</lastname>
+                </person>
+                <person>
+                    <firstname>Damien</firstname>
+                    <lastname>Clay</lastname>
+                </person>
+            </people>
+            XML;
 
         $this->encoder = new XmlEncoder([
             XmlEncoder::ROOT_NODE_NAME => 'people',
@@ -684,8 +684,8 @@
         $this->encoder->setSerializer($serializer);
 
         $expected = ['person' => [
-          ['firstname' => 'Benjamin', 'lastname' => 'Alexandre', '#comment' => ' This comment should be decoded. '],
-          ['firstname' => 'Damien', 'lastname' => 'Clay'],
+            ['firstname' => 'Benjamin', 'lastname' => 'Alexandre', '#comment' => ' This comment should be decoded. '],
+            ['firstname' => 'Damien', 'lastname' => 'Clay'],
         ]];
 
         $this->assertEquals($expected, $this->encoder->decode($source, 'xml'));
@@ -698,14 +698,14 @@
         $this->encoder->setSerializer($serializer);
 
         $source = <<<'XML'
-<?xml version="1.0"?>
-<order_rows nodeType="order_row" virtualEntity="true">
-    <order_row>
-        <id><![CDATA[16]]></id>
-        <test><![CDATA[16]]></test>
-    </order_row>
-</order_rows>
-XML;
+            <?xml version="1.0"?>
+            <order_rows nodeType="order_row" virtualEntity="true">
+                <order_row>
+                    <id><![CDATA[16]]></id>
+                    <test><![CDATA[16]]></test>
+                </order_row>
+            </order_rows>
+            XML;
         $expected = [
             '@nodeType' => 'order_row',
             '@virtualEntity' => 'true',
@@ -844,10 +844,10 @@
     public function testEncodeXmlWithBoolValue()
     {
         $expectedXml = <<<'XML'
-<?xml version="1.0"?>
-<response><foo>1</foo><bar>0</bar></response>
+            <?xml version="1.0"?>
+            <response><foo>1</foo><bar>0</bar></response>
 
-XML;
+            XML;
 
         $actualXml = $this->encoder->encode(['foo' => true, 'bar' => false], 'xml');
 
@@ -857,10 +857,10 @@
     public function testEncodeXmlWithDomNodeValue()
     {
         $expectedXml = <<<'XML'
-<?xml version="1.0"?>
-<response><foo>bar</foo><bar>foo &amp; bar</bar></response>
+            <?xml version="1.0"?>
+            <response><foo>bar</foo><bar>foo &amp; bar</bar></response>
 
-XML;
+            XML;
         $document = new \DOMDocument();
 
         $actualXml = $this->encoder->encode(['foo' => $document->createTextNode('bar'), 'bar' => $document->createTextNode('foo & bar')], 'xml');
@@ -903,10 +903,10 @@
 
         $encoder = $this->createXmlEncoderWithEnvelopeNormalizer();
         $expected = <<<'XML'
-<?xml version="1.0"?>
-<response><message>PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxyZXNwb25zZT48dGV4dD5TeW1mb255IGlzIGdyZWF0PC90ZXh0PjwvcmVzcG9uc2U+Cg==</message></response>
+            <?xml version="1.0"?>
+            <response><message>PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxyZXNwb25zZT48dGV4dD5TeW1mb255IGlzIGdyZWF0PC90ZXh0PjwvcmVzcG9uc2U+Cg==</message></response>
 
-XML;
+            XML;
 
         $this->assertSame($expected, $encoder->encode($envelope, 'xml'));
     }
@@ -914,10 +914,10 @@
     public function testEncodeComment()
     {
         $expected = <<<'XML'
-<?xml version="1.0"?>
-<response><!-- foo --></response>
+            <?xml version="1.0"?>
+            <response><!-- foo --></response>
 
-XML;
+            XML;
 
         $data = ['#comment' => ' foo '];
 
@@ -944,16 +944,36 @@
         ]);
 
         $expected = <<<'XML'
-<?xml version="1.0"?>
-<response/>
+            <?xml version="1.0"?>
+            <response/>
 
-XML;
+            XML;
 
         $data = ['#comment' => ' foo '];
 
         $this->assertEquals($expected, $encoder->encode($data, 'xml'));
     }
 
+    public function testEncodeNan()
+    {
+        $value = \NAN;
+
+        $expected = '<?xml version="1.0"?>'."\n".
+            '<response>NAN</response>'."\n";
+
+        $this->assertEquals($expected, $this->encoder->encode($value, 'xml'));
+    }
+
+    public function testEncodeInfinite()
+    {
+        $value = \INF;
+
+        $expected = '<?xml version="1.0"?>'."\n".
+            '<response>INF</response>'."\n";
+
+        $this->assertEquals($expected, $this->encoder->encode($value, 'xml'));
+    }
+
     private function createXmlEncoderWithEnvelopeNormalizer(): XmlEncoder
     {
         $normalizers = [
@@ -1004,14 +1024,14 @@
 
     private function createXmlWithDateTime(): string
     {
-        return sprintf('<?xml version="1.0"?>
+        return \sprintf('<?xml version="1.0"?>
 <response><dateTime>%s</dateTime></response>
 ', $this->exampleDateTimeString);
     }
 
     private function createXmlWithDateTimeField(): string
     {
-        return sprintf('<?xml version="1.0"?>
+        return \sprintf('<?xml version="1.0"?>
 <response><foo dateTime="%s"/></response>
 ', $this->exampleDateTimeString);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/YamlEncoderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/YamlEncoderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/YamlEncoderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Encoder/YamlEncoderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,9 +62,9 @@
         $encoder = new YamlEncoder(null, null, [YamlEncoder::YAML_INLINE => 100, YamlEncoder::YAML_INDENTATION => 7]);
 
         $expected = <<<'END'
-foo:
-       bar: baz
-END;
+            foo:
+                   bar: baz
+            END;
         $this->assertSame($expected."\n", $encoder->encode(['foo' => ['bar' => 'baz']], 'yaml'));
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/AsymmetricVisibilityDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/AsymmetricVisibilityDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/AsymmetricVisibilityDummy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/AsymmetricVisibilityDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,23 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+final class AsymmetricVisibilityDummy
+{
+    private(set) string $type;
+
+    public function __construct(
+        public readonly string $item,
+    ) {
+        $this->type = 'final';
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/AccessorishGetters.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/AccessorishGetters.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/AccessorishGetters.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/AccessorishGetters.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
     {
     }
 
-    public function setField4()
+    public function setField4($value)
     {
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/GroupDummyWithIsPrefixedProperty.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/GroupDummyWithIsPrefixedProperty.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/GroupDummyWithIsPrefixedProperty.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/GroupDummyWithIsPrefixedProperty.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures\Attributes;
+
+use Symfony\Component\Serializer\Attribute\Groups;
+
+class GroupDummyWithIsPrefixedProperty
+{
+    private bool $isSomething = false;
+
+    #[Groups(['test'])]
+    public function isSomething(): bool
+    {
+        return $this->isSomething;
+    }
+
+    public function setIsSomething(bool $isSomething): void
+    {
+        $this->isSomething = $isSomething;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/BookDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/BookDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/BookDummy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/BookDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+class BookDummy
+{
+    public function __construct(
+        public private(set) string $title,
+        public protected(set) string $author,
+        protected private(set) int $pubYear,
+    ) {
+    }
+
+    public function getPubYear(): int
+    {
+        return $this->pubYear;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ChildClassDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ChildClassDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ChildClassDummy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ChildClassDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,17 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+readonly class ChildClassDummy extends ParentClassDummy
+{
+    public string $childProp;
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,7 @@
     'one' => DummyMessageNumberOne::class,
     'two' => DummyMessageNumberTwo::class,
     'three' => DummyMessageNumberThree::class,
+    'four' => DummyMessageNumberFour::class,
 ])]
 interface DummyMessageInterface
 {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageNumberFour.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageNumberFour.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageNumberFour.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageNumberFour.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,29 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+use Symfony\Component\Serializer\Attribute\Ignore;
+
+abstract class SomeAbstract {
+    #[Ignore]
+    public function getDescription()
+    {
+        return 'Hello, World!';
+    }
+}
+
+class DummyMessageNumberFour extends SomeAbstract implements DummyMessageInterface
+{
+    public function __construct(public $one)
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyWithObjectConstructor.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyWithObjectConstructor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyWithObjectConstructor.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyWithObjectConstructor.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,19 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+class DummyWithObjectConstructor
+{
+    public function __construct(public DummyFirstChildQuux $nested)
+    {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyWithUnion.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyWithUnion.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyWithUnion.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/DummyWithUnion.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,24 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+/**
+ * @author Dmitrii <github.com/d-mitrofanov-v>
+ */
+class DummyWithUnion
+{
+    public function __construct(
+        public int|float $value,
+        public string|int $value2,
+    ) {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/MagicSetDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/MagicSetDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/MagicSetDummy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/MagicSetDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+class MagicSetDummy
+{
+    public array $params = [];
+
+    public function __set(string $name, mixed $value): void
+    {
+        $this->params[$name] = $value;
+    }
+
+    public function __get(string $name)
+    {
+        return $this->params[$name] ?? null;
+    }
+
+    public function __isset(string $name): bool
+    {
+        return true;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ParentClassDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ParentClassDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ParentClassDummy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ParentClassDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,22 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+readonly class ParentClassDummy
+{
+    private string $parentProp;
+
+    public function getParentProp(): string
+    {
+        return $this->parentProp;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ScalarNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ScalarNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ScalarNormalizer.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/ScalarNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,42 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
+
+class ScalarNormalizer implements NormalizerInterface
+{
+    public function normalize(mixed $object, ?string $format = null, array $context = []): string
+    {
+        $data = $object;
+
+        if (!\is_string($data)) {
+            $data = (string) $object;
+        }
+
+        return strtoupper($data);
+    }
+
+    public function supportsNormalization(mixed $data, ?string $format = null, array $context = []): bool
+    {
+        return \is_scalar($data);
+    }
+
+    public function getSupportedTypes(?string $format): array
+    {
+        return [
+            'native-boolean' => true,
+            'native-integer' => true,
+            'native-string' => true,
+        ];
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/SpecialBookDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/SpecialBookDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/SpecialBookDummy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/SpecialBookDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,16 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+class SpecialBookDummy extends BookDummy
+{
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/StdClassNormalizer.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/StdClassNormalizer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/StdClassNormalizer.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/StdClassNormalizer.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,34 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
+
+class StdClassNormalizer implements NormalizerInterface
+{
+    public function normalize(mixed $object, ?string $format = null, array $context = []): string
+    {
+        return 'string_object';
+    }
+
+    public function supportsNormalization(mixed $data, ?string $format = null, array $context = []): bool
+    {
+        return $data instanceof \stdClass;
+    }
+
+    public function getSupportedTypes(?string $format): array
+    {
+        return [
+            \stdClass::class => true,
+        ];
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/VoidNeverReturnTypeDummy.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/VoidNeverReturnTypeDummy.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/VoidNeverReturnTypeDummy.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Fixtures/VoidNeverReturnTypeDummy.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,45 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Fixtures;
+
+class VoidNeverReturnTypeDummy
+{
+    public string $normalProperty = 'value';
+
+    public function getNormalProperty(): string
+    {
+        return $this->normalProperty;
+    }
+
+    public function getVoidProperty(): void
+    {
+        // This looks like a getter but returns void, should be ignored
+    }
+
+    public function getNeverProperty(): never
+    {
+        // This looks like a getter but returns never, should be ignored
+        throw new \Exception('Never returns');
+    }
+
+    public function setValue(): void
+    {
+        // This looks like a setter but has no parameters, should be ignored as accessor
+    }
+
+    public function setNeverValue(): never
+    {
+        // This looks like a setter but has no parameters and returns never, should be ignored as accessor
+        throw new \Exception('Never returns');
+    }
+}
+
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Factory/CacheMetadataFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Factory/CacheMetadataFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Factory/CacheMetadataFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Factory/CacheMetadataFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,9 @@
 use Symfony\Component\Serializer\Exception\InvalidArgumentException;
 use Symfony\Component\Serializer\Mapping\ClassMetadata;
 use Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory;
+use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
+use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
 use Symfony\Component\Serializer\Tests\Fixtures\Dummy;
 
 /**
@@ -59,15 +61,14 @@
     public function testInvalidClassThrowsException()
     {
         $this->expectException(InvalidArgumentException::class);
-        $decorated = $this->createMock(ClassMetadataFactoryInterface::class);
-        $factory = new CacheClassMetadataFactory($decorated, new ArrayAdapter());
+        $factory = new CacheClassMetadataFactory(new ClassMetadataFactory(new AttributeLoader()), new ArrayAdapter());
 
         $factory->getMetadataFor('Not\Exist');
     }
 
     public function testAnonymousClass()
     {
-        $anonymousObject = new class() {
+        $anonymousObject = new class {
         };
 
         $metadata = new ClassMetadata($anonymousObject::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Factory/CompiledClassMetadataFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Factory/CompiledClassMetadataFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Factory/CompiledClassMetadataFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Factory/CompiledClassMetadataFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,8 +14,10 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Serializer\Mapping\AttributeMetadata;
 use Symfony\Component\Serializer\Mapping\ClassMetadata;
+use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
 use Symfony\Component\Serializer\Mapping\Factory\CompiledClassMetadataFactory;
+use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\SerializedNameDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\Dummy;
 
@@ -26,8 +28,7 @@
 {
     public function testItImplementsClassMetadataFactoryInterface()
     {
-        $classMetadataFactory = $this->createMock(ClassMetadataFactoryInterface::class);
-        $compiledClassMetadataFactory = new CompiledClassMetadataFactory(__DIR__.'/../../Fixtures/serializer.class.metadata.php', $classMetadataFactory);
+        $compiledClassMetadataFactory = new CompiledClassMetadataFactory(__DIR__.'/../../Fixtures/serializer.class.metadata.php', new ClassMetadataFactory(new AttributeLoader()));
 
         $this->assertInstanceOf(ClassMetadataFactoryInterface::class, $compiledClassMetadataFactory);
     }
@@ -37,8 +38,7 @@
         $this->expectException(\RuntimeException::class);
         $this->expectExceptionMessageMatches('#File ".*/Fixtures/not-found-serializer.class.metadata.php" could not be found.#');
 
-        $classMetadataFactory = $this->createMock(ClassMetadataFactoryInterface::class);
-        new CompiledClassMetadataFactory(__DIR__.'/../../Fixtures/not-found-serializer.class.metadata.php', $classMetadataFactory);
+        new CompiledClassMetadataFactory(__DIR__.'/../../Fixtures/not-found-serializer.class.metadata.php', new ClassMetadataFactory(new AttributeLoader()));
     }
 
     public function testItThrowAnExceptionWhenMetadataIsNotOfTypeArray()
@@ -46,8 +46,7 @@
         $this->expectException(\RuntimeException::class);
         $this->expectExceptionMessage('Compiled metadata must be of the type array, object given.');
 
-        $classMetadataFactory = $this->createMock(ClassMetadataFactoryInterface::class);
-        new CompiledClassMetadataFactory(__DIR__.'/../../Fixtures/object-metadata.php', $classMetadataFactory);
+        new CompiledClassMetadataFactory(__DIR__.'/../../Fixtures/object-metadata.php', new ClassMetadataFactory(new AttributeLoader()));
     }
 
     /**
@@ -91,8 +90,7 @@
 
     public function testItReturnsTheSameInstance()
     {
-        $classMetadataFactory = $this->createMock(ClassMetadataFactoryInterface::class);
-        $compiledClassMetadataFactory = new CompiledClassMetadataFactory(__DIR__.'/../../Fixtures/serializer.class.metadata.php', $classMetadataFactory);
+        $compiledClassMetadataFactory = new CompiledClassMetadataFactory(__DIR__.'/../../Fixtures/serializer.class.metadata.php', new ClassMetadataFactory(new AttributeLoader()));
 
         $this->assertSame($compiledClassMetadataFactory->getMetadataFor(Dummy::class), $compiledClassMetadataFactory->getMetadataFor(Dummy::class));
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Loader/AttributeLoaderTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Loader/AttributeLoaderTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Loader/AttributeLoaderTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Loader/AttributeLoaderTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -154,7 +154,7 @@
         $class = $this->getNamespace().'\BadMethodContextDummy';
 
         $this->expectException(MappingException::class);
-        $this->expectExceptionMessage(sprintf('Context on "%s::badMethod()" cannot be added', $class));
+        $this->expectExceptionMessage(\sprintf('Context on "%s::badMethod()" cannot be added', $class));
 
         $loader = $this->getLoaderForContextMapping();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Loader/AttributeLoaderWithAttributesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Loader/AttributeLoaderWithAttributesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Loader/AttributeLoaderWithAttributesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Mapping/Loader/AttributeLoaderWithAttributesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use Symfony\Component\Serializer\Exception\MappingException;
 use Symfony\Component\Serializer\Mapping\ClassMetadata;
 use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
+use Symfony\Component\Serializer\Tests\Fixtures\VoidNeverReturnTypeDummy;
 
 class AttributeLoaderWithAttributesTest extends AttributeLoaderTestCase
 {
@@ -36,4 +37,15 @@
 
         $this->loader->loadClassMetadata($classMetadata);
     }
+
+    public function testSkipVoidNeverReturnTypeAccessors()
+    {
+        $classMetadata = new ClassMetadata(VoidNeverReturnTypeDummy::class);
+        $this->loader->loadClassMetadata($classMetadata);
+
+        $attributesMetadata = $classMetadata->getAttributesMetadata();
+        $this->assertArrayHasKey('normalProperty', $attributesMetadata);
+        $this->assertArrayNotHasKey('voidProperty', $attributesMetadata);
+        $this->assertArrayNotHasKey('neverProperty', $attributesMetadata);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/NameConverter/MetadataAwareNameConverterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/NameConverter/MetadataAwareNameConverterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/NameConverter/MetadataAwareNameConverterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/NameConverter/MetadataAwareNameConverterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,6 @@
 use Symfony\Component\Serializer\Attribute\SerializedPath;
 use Symfony\Component\Serializer\Exception\LogicException;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
-use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
 use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
 use Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter;
 use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
@@ -30,8 +29,7 @@
 {
     public function testInterface()
     {
-        $classMetadataFactory = $this->createMock(ClassMetadataFactoryInterface::class);
-        $nameConverter = new MetadataAwareNameConverter($classMetadataFactory);
+        $nameConverter = new MetadataAwareNameConverter(new ClassMetadataFactory(new AttributeLoader()));
         $this->assertInstanceOf(NameConverterInterface::class, $nameConverter);
     }
 
@@ -54,7 +52,7 @@
     {
         $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
 
-        $fallback = $this->createMock(NameConverterInterface::class);
+        $fallback = $this->createStub(NameConverterInterface::class);
         $fallback
             ->method('normalize')
             ->willReturnCallback(static fn ($propertyName) => strtoupper($propertyName))
@@ -84,7 +82,7 @@
     {
         $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
 
-        $fallback = $this->createMock(NameConverterInterface::class);
+        $fallback = $this->createStub(NameConverterInterface::class);
         $fallback
             ->method('denormalize')
             ->willReturnCallback(static fn ($propertyName) => strtolower($propertyName))
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Serializer\Tests\Normalizer;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor;
 use Symfony\Component\Serializer\Encoder\JsonEncoder;
@@ -19,9 +18,7 @@
 use Symfony\Component\Serializer\Exception\NotNormalizableValueException;
 use Symfony\Component\Serializer\Mapping\AttributeMetadata;
 use Symfony\Component\Serializer\Mapping\ClassMetadata;
-use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
-use Symfony\Component\Serializer\Mapping\Loader\LoaderChain;
 use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
 use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
 use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
@@ -46,12 +43,11 @@
 class AbstractNormalizerTest extends TestCase
 {
     private AbstractNormalizerDummy $normalizer;
-    private MockObject&ClassMetadataFactoryInterface $classMetadata;
+    private ClassMetadataFactoryInterface $classMetadata;
 
     protected function setUp(): void
     {
-        $loader = $this->getMockBuilder(LoaderChain::class)->setConstructorArgs([[]])->getMock();
-        $this->classMetadata = $this->getMockBuilder(ClassMetadataFactory::class)->setConstructorArgs([$loader])->getMock();
+        $this->classMetadata = $this->createStub(ClassMetadataFactoryInterface::class);
         $this->normalizer = new AbstractNormalizerDummy($this->classMetadata);
     }
 
@@ -87,6 +83,16 @@
         $this->assertEquals(['a1', 'a2', 'a3', 'a4'], $result);
     }
 
+    public function testGetAllowedAttributesWithWildcardGroupAndNoMetadata()
+    {
+        $classMetadata = new ClassMetadata('c');
+
+        $this->classMetadata->method('getMetadataFor')->willReturn($classMetadata);
+
+        $result = $this->normalizer->getAllowedAttributes('c', [AbstractNormalizer::GROUPS => ['*']], true);
+        $this->assertFalse($result);
+    }
+
     public function testGetAllowedAttributesAsObjects()
     {
         $classMetadata = new ClassMetadata('c');
@@ -271,7 +277,7 @@
     public static function getNormalizerWithCustomNameConverter()
     {
         $extractor = new PhpDocExtractor();
-        $nameConverter = new class() implements NameConverterInterface {
+        $nameConverter = new class implements NameConverterInterface {
             public function normalize(string $propertyName): string
             {
                 return ucfirst($propertyName);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Serializer\Tests\Normalizer;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\PropertyAccess\PropertyPath;
 use Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor;
 use Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor;
 use Symfony\Component\PropertyInfo\PropertyInfoExtractor;
@@ -42,6 +43,7 @@
 use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
 use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
 use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
+use Symfony\Component\Serializer\Normalizer\PropertyNormalizer;
 use Symfony\Component\Serializer\Serializer;
 use Symfony\Component\Serializer\SerializerAwareInterface;
 use Symfony\Component\Serializer\SerializerInterface;
@@ -49,6 +51,8 @@
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\AbstractDummyFirstChild;
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\AbstractDummySecondChild;
 use Symfony\Component\Serializer\Tests\Fixtures\DummyFirstChildQuux;
+use Symfony\Component\Serializer\Tests\Fixtures\DummyMessageInterface;
+use Symfony\Component\Serializer\Tests\Fixtures\DummyMessageNumberFour;
 use Symfony\Component\Serializer\Tests\Fixtures\DummySecondChildQuux;
 use Symfony\Component\Serializer\Tests\Fixtures\DummyString;
 use Symfony\Component\Serializer\Tests\Fixtures\DummyWithNotNormalizable;
@@ -418,7 +422,7 @@
 
     private function getDenormalizerForDummyCollection()
     {
-        $extractor = $this->createMock(PhpDocExtractor::class);
+        $extractor = $this->createStub(PhpDocExtractor::class);
         $extractor->method('getTypes')
             ->willReturn(
                 [new Type('array', false, null, true, new Type('int'), new Type('object', false, DummyChild::class))],
@@ -473,7 +477,7 @@
 
     private function getDenormalizerForStringCollection()
     {
-        $extractor = $this->createMock(PhpDocExtractor::class);
+        $extractor = $this->createStub(PhpDocExtractor::class);
         $extractor->method('getTypes')
             ->willReturn(
                 [new Type('array', false, null, true, new Type('int'), new Type('string'))],
@@ -493,7 +497,7 @@
     {
         $factory = new ClassMetadataFactory(new AttributeLoader());
 
-        $loaderMock = new class() implements ClassMetadataFactoryInterface {
+        $loaderMock = new class implements ClassMetadataFactoryInterface {
             public function getMetadataFor($value): ClassMetadataInterface
             {
                 if (AbstractDummy::class === $value) {
@@ -528,7 +532,7 @@
     {
         $factory = new ClassMetadataFactory(new AttributeLoader());
 
-        $loaderMock = new class() implements ClassMetadataFactoryInterface {
+        $loaderMock = new class implements ClassMetadataFactoryInterface {
             public function getMetadataFor($value): ClassMetadataInterface
             {
                 if (AbstractDummy::class === $value) {
@@ -581,7 +585,7 @@
 
     public function testDenormalizeWithNestedDiscriminatorMap()
     {
-        $classDiscriminatorResolver = new class() implements ClassDiscriminatorResolverInterface {
+        $classDiscriminatorResolver = new class implements ClassDiscriminatorResolverInterface {
             public function getMappingForClass(string $class): ?ClassDiscriminatorMapping
             {
                 return match ($class) {
@@ -660,7 +664,7 @@
 
     private function getDenormalizerForObjectWithBasicProperties()
     {
-        $extractor = $this->createMock(PhpDocExtractor::class);
+        $extractor = $this->createStub(PhpDocExtractor::class);
         $extractor->method('getTypes')
             ->willReturn(
                 [new Type('bool')],
@@ -814,7 +818,7 @@
             '99' => 'baz',
         ];
 
-        $obj = new class() {
+        $obj = new class {
             #[SerializedName('1')]
             public $foo;
 
@@ -838,7 +842,7 @@
             ],
         ];
 
-        $obj = new class() {
+        $obj = new class {
             #[SerializedPath('[data][id]')]
             public $id;
         };
@@ -847,9 +851,68 @@
         $this->assertSame('nested-id', $test->id);
     }
 
+    public function testDenormalizeMissingAndNullNestedValues()
+    {
+        $normalizer = new AbstractObjectNormalizerWithMetadata();
+
+        $data = [
+            'data' => [
+                'foo' => null,
+            ],
+        ];
+
+        $obj = new class {
+            #[SerializedPath('[data][foo]')]
+            public ?string $foo;
+
+            #[SerializedPath('[data][bar]')]
+            public ?string $bar;
+        };
+
+        $test = $normalizer->denormalize($data, $obj::class);
+        $this->assertNull($test->foo);
+        $this->assertFalse((new \ReflectionProperty($obj, 'bar'))->isInitialized($obj));
+    }
+
+    public function testDenormalizeNullCoalescingValues()
+    {
+        if (!method_exists(PropertyPath::class, 'isNullSafe')) {
+            $this->markTestSkipped('null coalescing property path is not supported before symfony/property-access 6.2');
+        }
+
+        $normalizer = new AbstractObjectNormalizerWithMetadata();
+
+        $data = [
+            'data' => [
+                'foo' => 'test',
+            ],
+            'empty_data' => null,
+        ];
+
+        $obj = new class {
+            #[SerializedPath('[data][foo?]')]
+            public ?string $foo;
+
+            #[SerializedPath('[data][bar?]')]
+            public ?string $bar;
+
+            #[SerializedPath('[empty_data?][nothing]')]
+            public ?string $nothing;
+
+            #[SerializedPath('[not_set?][nothing]')]
+            public ?string $notSet;
+        };
+
+        $test = $normalizer->denormalize($data, $obj::class);
+        $this->assertSame('test', $test->foo);
+        $this->assertFalse((new \ReflectionProperty($obj, 'bar'))->isInitialized($obj));
+        $this->assertNull($test->nothing);
+        $this->assertFalse((new \ReflectionProperty($obj, 'notSet'))->isInitialized($obj));
+    }
+
     public function testNormalizeBasedOnAllowedAttributes()
     {
-        $normalizer = new class() extends AbstractObjectNormalizer {
+        $normalizer = new class extends AbstractObjectNormalizer {
             protected function getAllowedAttributes($classOrObject, array $context, bool $attributesAsString = false): array
             {
                 return ['foo'];
@@ -924,7 +987,7 @@
         $foobar->bar = 'bar';
         $foobar->baz = 'baz';
 
-        $normalizer = new class() extends AbstractObjectNormalizerDummy {
+        $normalizer = new class extends AbstractObjectNormalizerDummy {
             public $childContextCacheKey;
 
             protected function extractAttributes(object $object, ?string $format = null, array $context = []): array
@@ -957,15 +1020,15 @@
         $this->assertSame($firstChildContextCacheKey, $secondChildContextCacheKey);
     }
 
-    public function testChildContextKeepsOriginalContextCacheKey()
+    public function testChildContextChangesContextCacheKey()
     {
         $foobar = new Dummy();
         $foobar->foo = new EmptyDummy();
         $foobar->bar = 'bar';
         $foobar->baz = 'baz';
 
-        $normalizer = new class() extends AbstractObjectNormalizerDummy {
-            public $childContextCacheKey;
+        $normalizer = new class extends AbstractObjectNormalizerDummy {
+            public array $childContextCacheKeys = [];
 
             protected function extractAttributes(object $object, ?string $format = null, array $context = []): array
             {
@@ -980,7 +1043,7 @@
             protected function createChildContext(array $parentContext, string $attribute, ?string $format): array
             {
                 $childContext = parent::createChildContext($parentContext, $attribute, $format);
-                $this->childContextCacheKey = $childContext['cache_key'];
+                $this->childContextCacheKeys[$attribute] = $childContext['cache_key'];
 
                 return $childContext;
             }
@@ -989,7 +1052,7 @@
         $serializer = new Serializer([$normalizer]);
         $serializer->normalize($foobar, null, ['cache_key' => 'hardcoded', 'iri' => '/dummy/1']);
 
-        $this->assertSame('hardcoded-foo', $normalizer->childContextCacheKey);
+        $this->assertSame(['foo' => 'hardcoded-foo', 'bar' => 'hardcoded-bar', 'baz' => 'hardcoded-baz'], $normalizer->childContextCacheKeys);
     }
 
     public function testChildContextCacheKeyStaysFalseWhenOriginalCacheKeyIsFalse()
@@ -999,7 +1062,7 @@
         $foobar->bar = 'bar';
         $foobar->baz = 'baz';
 
-        $normalizer = new class() extends AbstractObjectNormalizerDummy {
+        $normalizer = new class extends AbstractObjectNormalizerDummy {
             public $childContextCacheKey;
 
             protected function extractAttributes(object $object, ?string $format = null, array $context = []): array
@@ -1029,7 +1092,7 @@
 
     public function testDenormalizeXmlScalar()
     {
-        $normalizer = new class() extends AbstractObjectNormalizer {
+        $normalizer = new class extends AbstractObjectNormalizer {
             public function __construct()
             {
                 parent::__construct(null, new MetadataAwareNameConverter(new ClassMetadataFactory(new AttributeLoader())));
@@ -1087,6 +1150,25 @@
             [['foo' => false], TruePropertyDummy::class],
         ];
     }
+
+    public function testDeserializeAndSerializeConstructorAndIgnoreAndInterfacedObjectsWithTheClassMetadataDiscriminator()
+    {
+        $example = new DummyMessageNumberFour('Hello');
+
+        $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
+
+        $normalizer = new PropertyNormalizer(
+            $classMetadataFactory,
+            null,
+            new PropertyInfoExtractor([], [new PhpDocExtractor(), new ReflectionExtractor()]),
+            new ClassDiscriminatorFromClassMetadata($classMetadataFactory),
+        );
+
+        $serialized = $normalizer->normalize($example, 'json');
+        $deserialized = $normalizer->denormalize($serialized, DummyMessageInterface::class, 'json');
+
+        $this->assertEquals($example, $deserialized);
+    }
 }
 
 class AbstractObjectNormalizerDummy extends AbstractObjectNormalizer
@@ -1487,7 +1569,7 @@
 
 class NotSerializable
 {
-    public function __sleep(): array
+    public function __serialize(): array
     {
         throw new \Error('not serializable');
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ArrayDenormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ArrayDenormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ArrayDenormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ArrayDenormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,23 +11,12 @@
 
 namespace Symfony\Component\Serializer\Tests\Normalizer;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer;
 use Symfony\Component\Serializer\Tests\Fixtures\UpcomingDenormalizerInterface as DenormalizerInterface;
 
 class ArrayDenormalizerTest extends TestCase
 {
-    private ArrayDenormalizer $denormalizer;
-    private MockObject&DenormalizerInterface $serializer;
-
-    protected function setUp(): void
-    {
-        $this->serializer = $this->createMock(DenormalizerInterface::class);
-        $this->denormalizer = new ArrayDenormalizer();
-        $this->denormalizer->setDenormalizer($this->serializer);
-    }
-
     public function testDenormalize()
     {
         $series = [
@@ -35,7 +24,8 @@
             [[['foo' => 'three', 'bar' => 'four']], new ArrayDummy('three', 'four')],
         ];
 
-        $this->serializer->expects($this->exactly(2))
+        $nestedDenormalizer = $this->createMock(DenormalizerInterface::class);
+        $nestedDenormalizer->expects($this->exactly(2))
             ->method('denormalize')
             ->willReturnCallback(function ($data) use (&$series) {
                 [$expectedArgs, $return] = array_shift($series);
@@ -45,7 +35,9 @@
             })
         ;
 
-        $result = $this->denormalizer->denormalize(
+        $denormalizer = new ArrayDenormalizer();
+        $denormalizer->setDenormalizer($nestedDenormalizer);
+        $result = $denormalizer->denormalize(
             [
                 ['foo' => 'one', 'bar' => 'two'],
                 ['foo' => 'three', 'bar' => 'four'],
@@ -64,13 +56,16 @@
 
     public function testSupportsValidArray()
     {
-        $this->serializer->expects($this->once())
+        $nestedDenormalizer = $this->createMock(DenormalizerInterface::class);
+        $nestedDenormalizer->expects($this->once())
             ->method('supportsDenormalization')
             ->with($this->anything(), ArrayDummy::class, 'json', ['con' => 'text'])
             ->willReturn(true);
+        $denormalizer = new ArrayDenormalizer();
+        $denormalizer->setDenormalizer($nestedDenormalizer);
 
         $this->assertTrue(
-            $this->denormalizer->supportsDenormalization(
+            $denormalizer->supportsDenormalization(
                 [
                     ['foo' => 'one', 'bar' => 'two'],
                     ['foo' => 'three', 'bar' => 'four'],
@@ -84,12 +79,15 @@
 
     public function testSupportsInvalidArray()
     {
-        $this->serializer->expects($this->any())
+        $nestedDenormalizer = $this->createStub(DenormalizerInterface::class);
+        $nestedDenormalizer
             ->method('supportsDenormalization')
             ->willReturn(false);
+        $denormalizer = new ArrayDenormalizer();
+        $denormalizer->setDenormalizer($nestedDenormalizer);
 
         $this->assertFalse(
-            $this->denormalizer->supportsDenormalization(
+            $denormalizer->supportsDenormalization(
                 [
                     ['foo' => 'one', 'bar' => 'two'],
                     ['foo' => 'three', 'bar' => 'four'],
@@ -101,8 +99,11 @@
 
     public function testSupportsNoArray()
     {
+        $denormalizer = new ArrayDenormalizer();
+        $denormalizer->setDenormalizer($this->createStub(DenormalizerInterface::class));
+
         $this->assertFalse(
-            $this->denormalizer->supportsDenormalization(
+            $denormalizer->supportsDenormalization(
                 ['foo' => 'one', 'bar' => 'two'],
                 ArrayDummy::class
             )
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/BackedEnumNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/BackedEnumNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/BackedEnumNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/BackedEnumNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Serializer\Tests\Normalizer;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\PropertyInfo\Type;
 use Symfony\Component\Serializer\Exception\InvalidArgumentException;
 use Symfony\Component\Serializer\Exception\NotNormalizableValueException;
 use Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer;
@@ -126,4 +127,32 @@
 
         $this->assertSame(StringBackedEnumDummy::GET, $this->normalizer->denormalize('GET', StringBackedEnumDummy::class, null, [BackedEnumNormalizer::ALLOW_INVALID_VALUES => true]));
     }
+
+    public function testDenormalizeInvalidValueWithAllowInvalidAndCollectErrorsReturnsNull()
+    {
+        $context = [
+            BackedEnumNormalizer::ALLOW_INVALID_VALUES => true,
+            'not_normalizable_value_exceptions' => [],
+        ];
+
+        $this->assertNull($this->normalizer->denormalize('invalid-value', StringBackedEnumDummy::class, null, $context));
+    }
+
+    public function testDenormalizeInvalidValueInConstructorContextThrowsPathAwareNotNormalizableValueException()
+    {
+        try {
+            $this->normalizer->denormalize('invalid-value', StringBackedEnumDummy::class, null, [
+                'has_constructor' => true,
+                'deserialization_path' => 'get',
+            ]);
+
+            self::fail(\sprintf('Failed asserting that exception of type "%s" is thrown.', NotNormalizableValueException::class));
+        } catch (NotNormalizableValueException $e) {
+            $this->assertSame('get', $e->getPath());
+            $this->assertSame('string', $e->getCurrentType());
+            $this->assertSame([Type::BUILTIN_TYPE_INT, Type::BUILTIN_TYPE_STRING], $e->getExpectedTypes());
+            $this->assertTrue($e->canUseMessageForUser());
+            $this->assertSame('The data must belong to a backed enumeration of type '.StringBackedEnumDummy::class, $e->getMessage());
+        }
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ConstraintViolationListNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ConstraintViolationListNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ConstraintViolationListNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ConstraintViolationListNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,8 +12,14 @@
 namespace Symfony\Component\Serializer\Tests\Normalizer;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Serializer\Mapping\ClassMetadata;
+use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
+use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
 use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
+use Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter;
 use Symfony\Component\Serializer\Normalizer\ConstraintViolationListNormalizer;
+use Symfony\Component\Serializer\Tests\Dummy\DummyClassOne;
+use Symfony\Component\Serializer\Tests\Dummy\DummyClassTwo;
 use Symfony\Component\Validator\Constraints\NotNull;
 use Symfony\Component\Validator\ConstraintViolation;
 use Symfony\Component\Validator\ConstraintViolationList;
@@ -50,23 +56,23 @@
             'detail' => 'd: a
 4: 1',
             'violations' => [
-                    [
-                        'propertyPath' => 'd',
-                        'title' => 'a',
-                        'template' => 'b',
-                        'type' => 'urn:uuid:f',
-                        'parameters' => [
-                            'value' => 'foo',
-                        ],
-                    ],
-                    [
-                        'propertyPath' => '4',
-                        'title' => '1',
-                        'template' => '2',
-                        'type' => 'urn:uuid:6',
-                        'parameters' => [],
+                [
+                    'propertyPath' => 'd',
+                    'title' => 'a',
+                    'template' => 'b',
+                    'type' => 'urn:uuid:f',
+                    'parameters' => [
+                        'value' => 'foo',
                     ],
                 ],
+                [
+                    'propertyPath' => '4',
+                    'title' => '1',
+                    'template' => '2',
+                    'type' => 'urn:uuid:6',
+                    'parameters' => [],
+                ],
+            ],
         ];
 
         $this->assertEquals($expected, $this->normalizer->normalize($list));
@@ -108,6 +114,66 @@
                     'parameters' => [],
                 ],
             ],
+        ];
+
+        $this->assertEquals($expected, $normalizer->normalize($list));
+    }
+
+    public function testNormalizeWithMetadataAwareNameConverter()
+    {
+        $attributeLoader = new AttributeLoader();
+        $attributeLoader->loadClassMetadata(new ClassMetadata(DummyClassOne::class));
+
+        $nameConverter = new MetadataAwareNameConverter(new ClassMetadataFactory($attributeLoader));
+        $normalizer = new ConstraintViolationListNormalizer([], $nameConverter);
+
+        $list = new ConstraintViolationList([
+            new ConstraintViolation('too long', 'a', [], new DummyClassOne(), 'code', ''),
+        ]);
+
+        $expected = [
+            'type' => 'https://symfony.com/errors/validation',
+            'title' => 'Validation Failed',
+            'detail' => 'identifier: too long',
+            'violations' => [
+                [
+                    'propertyPath' => 'identifier',
+                    'title' => 'too long',
+                    'template' => 'a',
+                    'parameters' => [],
+                ],
+            ],
+        ];
+
+        $this->assertEquals($expected, $normalizer->normalize($list));
+    }
+
+    public function testNormalizeWithMetadataAwareNameConverterAndNestedPath()
+    {
+        $attributeLoader = new AttributeLoader();
+        $attributeLoader->loadClassMetadata(new ClassMetadata(DummyClassTwo::class));
+        $attributeLoader->loadClassMetadata(new ClassMetadata(DummyClassOne::class));
+
+        $nameConverter = new MetadataAwareNameConverter(new ClassMetadataFactory($attributeLoader));
+        $normalizer = new ConstraintViolationListNormalizer([], $nameConverter);
+
+        $root = new DummyClassTwo();
+        $list = new ConstraintViolationList([
+            new ConstraintViolation('too long', 'a', [], $root, 'child.code', ''),
+        ]);
+
+        $expected = [
+            'type' => 'https://symfony.com/errors/validation',
+            'title' => 'Validation Failed',
+            'detail' => 'nested.identifier: too long',
+            'violations' => [
+                [
+                    'propertyPath' => 'nested.identifier',
+                    'title' => 'too long',
+                    'template' => 'a',
+                    'parameters' => [],
+                ],
+            ],
         ];
 
         $this->assertEquals($expected, $normalizer->normalize($list));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/DateTimeNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,9 +54,9 @@
 
     public function testNormalizeUsingTimeZonePassedInConstructor()
     {
-        $normalizer = new DateTimeNormalizer([DateTimeNormalizer::TIMEZONE_KEY => new \DateTimeZone('Japan')]);
+        $normalizer = new DateTimeNormalizer([DateTimeNormalizer::TIMEZONE_KEY => new \DateTimeZone('Asia/Tokyo')]);
 
-        $this->assertSame('2016-12-01T00:00:00+09:00', $normalizer->normalize(new \DateTimeImmutable('2016/12/01', new \DateTimeZone('Japan'))));
+        $this->assertSame('2016-12-01T00:00:00+09:00', $normalizer->normalize(new \DateTimeImmutable('2016/12/01', new \DateTimeZone('Asia/Tokyo'))));
         $this->assertSame('2016-12-01T09:00:00+09:00', $normalizer->normalize(new \DateTimeImmutable('2016/12/01', new \DateTimeZone('UTC'))));
     }
 
@@ -73,9 +73,9 @@
     public static function normalizeUsingTimeZonePassedInContextProvider()
     {
         yield ['2016-12-01T00:00:00+00:00', new \DateTimeImmutable('2016/12/01', new \DateTimeZone('UTC')), null];
-        yield ['2016-12-01T00:00:00+09:00', new \DateTimeImmutable('2016/12/01', new \DateTimeZone('Japan')), new \DateTimeZone('Japan')];
-        yield ['2016-12-01T09:00:00+09:00', new \DateTimeImmutable('2016/12/01', new \DateTimeZone('UTC')), new \DateTimeZone('Japan')];
-        yield ['2016-12-01T09:00:00+09:00', new \DateTime('2016/12/01', new \DateTimeZone('UTC')), new \DateTimeZone('Japan')];
+        yield ['2016-12-01T00:00:00+09:00', new \DateTimeImmutable('2016/12/01', new \DateTimeZone('Asia/Tokyo')), new \DateTimeZone('Asia/Tokyo')];
+        yield ['2016-12-01T09:00:00+09:00', new \DateTimeImmutable('2016/12/01', new \DateTimeZone('UTC')), new \DateTimeZone('Asia/Tokyo')];
+        yield ['2016-12-01T09:00:00+09:00', new \DateTime('2016/12/01', new \DateTimeZone('UTC')), new \DateTimeZone('Asia/Tokyo')];
     }
 
     /**
@@ -139,7 +139,7 @@
                 '2018-12-01T18:03:06.067634',
                 new \DateTimeZone('UTC')
             ),
-            new \DateTimeZone('Europe/Kiev'),
+            new \DateTimeZone(\in_array('Europe/Kyiv', \DateTimeZone::listIdentifiers(), true) ? 'Europe/Kyiv' : 'Europe/Kiev'),
         ];
 
         yield [
@@ -181,7 +181,7 @@
 
     public function testDenormalizeUsingTimezonePassedInConstructor()
     {
-        $timezone = new \DateTimeZone('Japan');
+        $timezone = new \DateTimeZone('Asia/Tokyo');
         $expected = new \DateTimeImmutable('2016/12/01 17:35:00', $timezone);
         $normalizer = new DateTimeNormalizer([DateTimeNormalizer::TIMEZONE_KEY => $timezone]);
 
@@ -214,18 +214,18 @@
     {
         yield 'with timezone' => [
             '2016/12/01 17:35:00',
-            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Japan')),
-            new \DateTimeZone('Japan'),
+            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Asia/Tokyo')),
+            new \DateTimeZone('Asia/Tokyo'),
         ];
         yield 'with timezone as string' => [
             '2016/12/01 17:35:00',
-            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Japan')),
-            'Japan',
+            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Asia/Tokyo')),
+            'Asia/Tokyo',
         ];
         yield 'with format without timezone information' => [
             '2016.12.01 17:35:00',
-            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Japan')),
-            new \DateTimeZone('Japan'),
+            new \DateTimeImmutable('2016/12/01 17:35:00', new \DateTimeZone('Asia/Tokyo')),
+            new \DateTimeZone('Asia/Tokyo'),
             'Y.m.d H:i:s',
         ];
         yield 'ignored with format with timezone information' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/CallbacksTestTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/CallbacksTestTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/CallbacksTestTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/CallbacksTestTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
     {
         $normalizer = $this->getNormalizerForCallbacksWithPropertyTypeExtractor();
 
-        $obj = new class() extends CallbacksObject {
+        $obj = new class extends CallbacksObject {
             public function __construct()
             {
             }
@@ -101,7 +101,7 @@
     {
         $normalizer = $this->getNormalizerForCallbacksWithPropertyTypeExtractor();
 
-        $objWithNoConstructorArgument = new class() extends CallbacksObject {
+        $objWithNoConstructorArgument = new class extends CallbacksObject {
             public function __construct()
             {
             }
@@ -131,7 +131,7 @@
         return [
             'Change a string' => [
                 [
-                    'bar' => function ($bar) {
+                    'bar' => static function ($bar) {
                         static::assertEquals('baz', $bar);
 
                         return 'baz';
@@ -142,7 +142,7 @@
             ],
             'Null an item' => [
                 [
-                    'bar' => function ($value, $object, $attributeName, $format, $context) {
+                    'bar' => static function ($value, $object, $attributeName, $format, $context) {
                         static::assertSame('baz', $value);
                         static::assertInstanceOf(CallbacksObject::class, $object);
                         static::assertSame('bar', $attributeName);
@@ -155,7 +155,7 @@
             ],
             'Format a date' => [
                 [
-                    'bar' => function ($bar) {
+                    'bar' => static function ($bar) {
                         static::assertInstanceOf(\DateTimeImmutable::class, $bar);
 
                         return $bar->format('d-m-Y H:i:s');
@@ -166,7 +166,7 @@
             ],
             'Collect a property' => [
                 [
-                    'bar' => function (array $bars) {
+                    'bar' => static function (array $bars) {
                         $result = '';
                         foreach ($bars as $bar) {
                             $result .= $bar->bar;
@@ -180,7 +180,7 @@
             ],
             'Count a property' => [
                 [
-                    'bar' => fn (array $bars) => \count($bars),
+                    'bar' => static fn (array $bars) => \count($bars),
                 ],
                 [new CallbacksObject(), new CallbacksObject()],
                 ['bar' => 2, 'foo' => null],
@@ -193,7 +193,7 @@
         return [
             'Change a string' => [
                 [
-                    'bar' => function ($bar) {
+                    'bar' => static function ($bar) {
                         static::assertEquals('bar', $bar);
 
                         return $bar;
@@ -204,7 +204,7 @@
             ],
             'Null an item' => [
                 [
-                    'bar' => function ($value, $object, $attributeName, $format, $context) {
+                    'bar' => static function ($value, $object, $attributeName, $format, $context) {
                         static::assertSame('baz', $value);
                         static::assertTrue(is_a($object, CallbacksObject::class, true));
                         static::assertSame('bar', $attributeName);
@@ -217,7 +217,7 @@
             ],
             'Format a date' => [
                 [
-                    'bar' => function ($bar) {
+                    'bar' => static function ($bar) {
                         static::assertIsString($bar);
 
                         return \DateTimeImmutable::createFromFormat('d-m-Y H:i:s', $bar);
@@ -228,7 +228,7 @@
             ],
             'Collect a property' => [
                 [
-                    'bar' => function (array $bars) {
+                    'bar' => static function (array $bars) {
                         $result = '';
                         foreach ($bars as $bar) {
                             $result .= $bar->bar;
@@ -242,7 +242,7 @@
             ],
             'Count a property' => [
                 [
-                    'bar' => fn (array $bars) => \count($bars),
+                    'bar' => static fn (array $bars) => \count($bars),
                 ],
                 [new CallbacksObject(), new CallbacksObject()],
                 new CallbacksObject(2),
@@ -255,7 +255,7 @@
         return [
             'Change a typed string' => [
                 [
-                    'foo' => function ($foo) {
+                    'foo' => static function ($foo) {
                         static::assertEquals('foo', $foo);
 
                         return $foo;
@@ -266,7 +266,7 @@
             ],
             'Null an typed item' => [
                 [
-                    'foo' => function ($value, $object, $attributeName, $format, $context) {
+                    'foo' => static function ($value, $object, $attributeName, $format, $context) {
                         static::assertSame('fool', $value);
                         static::assertTrue(is_a($object, CallbacksObject::class, true));
                         static::assertSame('foo', $attributeName);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/CircularReferenceTestTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/CircularReferenceTestTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/CircularReferenceTestTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/CircularReferenceTestTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
         $obj = $this->getSelfReferencingModel();
 
         $this->expectException(CircularReferenceException::class);
-        $this->expectExceptionMessage(sprintf('A circular reference has been detected when serializing the object of class "%s" (configured limit: %d).', $obj::class, $expectedLimit));
+        $this->expectExceptionMessage(\sprintf('A circular reference has been detected when serializing the object of class "%s" (configured limit: %d).', $obj::class, $expectedLimit));
         $normalizer->normalize($obj, null, $context);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/ConstructorArgumentsTestTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/ConstructorArgumentsTestTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/ConstructorArgumentsTestTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/ConstructorArgumentsTestTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,10 +64,10 @@
         $normalizer = $this->getDenormalizerForConstructArguments();
         try {
             $normalizer->denormalize($data, ConstructorArgumentsObject::class);
-            self::fail(sprintf('Failed asserting that exception of type "%s" is thrown.', MissingConstructorArgumentsException::class));
+            self::fail(\sprintf('Failed asserting that exception of type "%s" is thrown.', MissingConstructorArgumentsException::class));
         } catch (MissingConstructorArgumentsException $e) {
             self::assertSame(ConstructorArgumentsObject::class, $e->getClass());
-            self::assertSame(sprintf('Cannot create an instance of "%s" from serialized data because its constructor requires the following parameters to be present : "$foo", "$baz".', ConstructorArgumentsObject::class), $e->getMessage());
+            self::assertSame(\sprintf('Cannot create an instance of "%s" from serialized data because its constructor requires the following parameters to be present : "$foo", "$baz".', ConstructorArgumentsObject::class), $e->getMessage());
             self::assertSame(['foo', 'baz'], $e->getMissingConstructorArguments());
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/SkipUninitializedValuesTestTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/SkipUninitializedValuesTestTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/SkipUninitializedValuesTestTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/Features/SkipUninitializedValuesTestTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,9 +58,7 @@
             $normalizer->normalize($object, null, ['skip_uninitialized_values' => false, 'groups' => ['foo']]);
             $this->fail('Normalizing an object with uninitialized property should have failed');
         } catch (UninitializedPropertyException $e) {
-            self::assertSame('The property "Symfony\Component\Serializer\Tests\Normalizer\Features\TypedPropertiesObject::$unInitialized" is not readable because it is typed "string". You should initialize it or declare a default value instead.', $e->getMessage());
-        } catch (\Error $e) {
-            self::assertSame('Typed property Symfony\Component\Serializer\Tests\Normalizer\Features\TypedPropertiesObject::$unInitialized must not be accessed before initialization', $e->getMessage());
+            self::assertStringContainsString('unInitialized', $e->getMessage());
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/FormErrorNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/FormErrorNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/FormErrorNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/FormErrorNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     {
         $this->normalizer = new FormErrorNormalizer();
 
-        $this->form = $this->createMock(FormInterface::class);
+        $this->form = $this->createStub(FormInterface::class);
         $this->form->method('isSubmitted')->willReturn(true);
         $this->form->method('all')->willReturn([]);
 
@@ -45,7 +45,7 @@
 
     public function testSupportsNormalizationWithNotSubmittedForm()
     {
-        $form = $this->createMock(FormInterface::class);
+        $form = $this->createStub(FormInterface::class);
         $this->assertFalse($this->normalizer->supportsNormalization($form));
     }
 
@@ -77,7 +77,7 @@
 
     public function testNormalizeWithChildren()
     {
-        $exptected = [
+        $expected = [
             'code' => null,
             'title' => 'Validation Failed',
             'type' => 'https://symfony.com/errors/form',
@@ -117,7 +117,7 @@
             ],
         ];
 
-        $form = clone $form1 = clone $form2 = clone $form3 = $this->createMock(FormInterface::class);
+        $form = clone $form1 = clone $form2 = clone $form3 = $this->createStub(FormInterface::class);
 
         $form1->method('getErrors')
             ->willReturn(new FormErrorIterator($form1, [
@@ -142,7 +142,7 @@
 
         $form2->method('all')->willReturn([$form3]);
 
-        $form = $this->createMock(FormInterface::class);
+        $form = $this->createStub(FormInterface::class);
         $form->method('isSubmitted')->willReturn(true);
         $form->method('all')->willReturn([$form1, $form2]);
         $form->method('getErrors')
@@ -151,6 +151,6 @@
             ])
             );
 
-        $this->assertEquals($exptected, $this->normalizer->normalize($form));
+        $this->assertEquals($expected, $this->normalizer->normalize($form));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Serializer\Tests\Normalizer;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor;
 use Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor;
@@ -34,7 +33,10 @@
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\ClassWithIgnoreAttribute;
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\GroupDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\CircularReferenceDummy;
+use Symfony\Component\Serializer\Tests\Fixtures\ScalarNormalizer;
 use Symfony\Component\Serializer\Tests\Fixtures\SiblingHolder;
+use Symfony\Component\Serializer\Tests\Fixtures\StdClassNormalizer;
+use Symfony\Component\Serializer\Tests\Fixtures\VoidNeverReturnTypeDummy;
 use Symfony\Component\Serializer\Tests\Normalizer\Features\CacheableObjectAttributesTestTrait;
 use Symfony\Component\Serializer\Tests\Normalizer\Features\CallbacksTestTrait;
 use Symfony\Component\Serializer\Tests\Normalizer\Features\CircularReferenceTestTrait;
@@ -61,7 +63,7 @@
     use TypeEnforcementTestTrait;
 
     private GetSetMethodNormalizer $normalizer;
-    private SerializerInterface&NormalizerInterface&MockObject $serializer;
+    private SerializerInterface&NormalizerInterface $serializer;
 
     protected function setUp(): void
     {
@@ -70,8 +72,8 @@
 
     private function createNormalizer(array $defaultContext = []): void
     {
-        $this->serializer = $this->createMock(SerializerNormalizer::class);
         $this->normalizer = new GetSetMethodNormalizer(null, null, null, null, null, $defaultContext);
+        $this->serializer = new Serializer([$this->normalizer, new StdClassNormalizer()]);
         $this->normalizer->setSerializer($this->serializer);
     }
 
@@ -91,13 +93,6 @@
         $obj->setCamelCase('camelcase');
         $obj->setObject($object);
 
-        $this->serializer
-            ->expects($this->once())
-            ->method('normalize')
-            ->with($object, 'any')
-            ->willReturn('string_object')
-        ;
-
         $this->assertEquals(
             [
                 'foo' => 'foo',
@@ -111,6 +106,29 @@
         );
     }
 
+    public function testNormalizeWithoutSerializer()
+    {
+        $obj = new GetSetDummy();
+        $obj->setFoo('foo');
+        $obj->setBar('bar');
+        $obj->setBaz(true);
+        $obj->setCamelCase('camelcase');
+
+        $this->normalizer = new GetSetMethodNormalizer();
+
+        $this->assertEquals(
+            [
+                'foo' => 'foo',
+                'bar' => 'bar',
+                'baz' => true,
+                'fooBar' => 'foobar',
+                'camelCase' => 'camelcase',
+                'object' => null,
+            ],
+            $this->normalizer->normalize($obj, 'any')
+        );
+    }
+
     public function testDenormalize()
     {
         $obj = $this->normalizer->denormalize(
@@ -377,8 +395,7 @@
     {
         $this->expectException(LogicException::class);
         $this->expectExceptionMessage('Cannot normalize attribute "object" because the injected serializer is not a normalizer');
-        $serializer = $this->createMock(SerializerInterface::class);
-        $this->normalizer->setSerializer($serializer);
+        $this->normalizer->setSerializer($this->createStub(SerializerInterface::class));
 
         $obj = new GetSetDummy();
         $object = new \stdClass();
@@ -506,6 +523,18 @@
         return new GetSetMethodNormalizer(new ClassMetadataFactory(new AttributeLoader()));
     }
 
+    public function testUnrelatedErrorFromGetterIsNotSwallowed()
+    {
+        $normalizer = new GetSetMethodNormalizer();
+
+        $this->expectException(\TypeError::class);
+        $this->expectExceptionMessage('intentional getter failure');
+
+        $normalizer->normalize(new GetSetDummyWithThrowingGetter(), null, [
+            'skip_uninitialized_values' => true,
+        ]);
+    }
+
     public function testNormalizeWithDiscriminator()
     {
         $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
@@ -523,6 +552,30 @@
         $this->assertSame(['class' => 'class', 123 => 123], $normalizer->normalize(new GetSetWithAccessorishMethod()));
     }
 
+    public function testNormalizeWithScalarValueNormalizer()
+    {
+        $normalizer = new GetSetMethodNormalizer();
+        $normalizer->setSerializer(new Serializer([$normalizer, new ScalarNormalizer()]));
+
+        $obj = new GetSetDummy();
+        $obj->setFoo('foo');
+        $obj->setBar(10);
+        $obj->setBaz(true);
+        $obj->setCamelCase('camelcase');
+
+        $this->assertSame(
+            [
+                'foo' => 'FOO',
+                'bar' => '10',
+                'baz' => '1',
+                'fooBar' => 'FOO10',
+                'camelCase' => 'CAMELCASE',
+                'object' => null,
+            ],
+            $normalizer->normalize($obj, 'any')
+        );
+    }
+
     public function testDenormalizeWithDiscriminator()
     {
         $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
@@ -563,6 +616,55 @@
         $obj = $this->normalizer->denormalize($data, GetSetDummyWithOptionalAndMultipleSetterArgs::class);
         $this->assertSame($expected, $obj->$method());
     }
+
+    public function testDiscriminatorWithAllowExtraAttributesFalse()
+    {
+        // Discriminator type property should be allowed with allow_extra_attributes=false
+        $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
+        $discriminator = new ClassDiscriminatorFromClassMetadata($classMetadataFactory);
+        $normalizer = new GetSetMethodNormalizer($classMetadataFactory, null, null, $discriminator);
+
+        $obj = $normalizer->denormalize(
+            ['type' => 'one'],
+            GetSetMethodDummyInterface::class,
+            null,
+            [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => false]
+        );
+
+        $this->assertInstanceOf(GetSetMethodDiscriminatedDummyOne::class, $obj);
+    }
+
+    public function testSkipVoidNeverReturnTypeAccessors()
+    {
+        $obj = new VoidNeverReturnTypeDummy();
+        $normalized = $this->normalizer->normalize($obj);
+        $this->assertArrayHasKey('normalProperty', $normalized);
+        $this->assertArrayNotHasKey('voidProperty', $normalized);
+        $this->assertArrayNotHasKey('neverProperty', $normalized);
+        $this->assertEquals('value', $normalized['normalProperty']);
+    }
+
+    public function testNormalizeWithCanPrefixMethods()
+    {
+        $obj = new GetSetDummyWithCanMethods();
+        $obj->setName('Alice');
+
+        $this->assertEquals(
+            ['name' => 'Alice', 'edit' => true, 'delete' => false],
+            $this->normalizer->normalize($obj, 'any')
+        );
+    }
+
+    public function testNormalizeWithCanPrefixOnly()
+    {
+        $obj = new GetSetDummyWithCanOnly();
+
+        $this->assertTrue($this->normalizer->supportsNormalization($obj));
+        $this->assertEquals(
+            ['read' => true, 'write' => false],
+            $this->normalizer->normalize($obj, 'any')
+        );
+    }
 }
 
 class GetSetDummy
@@ -684,10 +786,6 @@
     }
 }
 
-abstract class SerializerNormalizer implements SerializerInterface, NormalizerInterface
-{
-}
-
 class GetConstructorOptionalArgsDummy
 {
     protected $foo;
@@ -722,6 +820,14 @@
     }
 }
 
+class GetSetDummyWithThrowingGetter
+{
+    public function getValue(): string
+    {
+        throw new \TypeError('intentional getter failure');
+    }
+}
+
 class GetConstructorArgsWithDefaultValueDummy
 {
     protected $foo;
@@ -953,3 +1059,41 @@
     {
     }
 }
+
+class GetSetDummyWithCanMethods
+{
+    private $name;
+
+    public function getName()
+    {
+        return $this->name;
+    }
+
+    public function setName($name)
+    {
+        $this->name = $name;
+    }
+
+    public function canEdit(): bool
+    {
+        return true;
+    }
+
+    public function canDelete(): bool
+    {
+        return false;
+    }
+}
+
+class GetSetDummyWithCanOnly
+{
+    public function canRead(): bool
+    {
+        return true;
+    }
+
+    public function canWrite(): bool
+    {
+        return false;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/JsonSerializableNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/JsonSerializableNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/JsonSerializableNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/JsonSerializableNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Serializer\Tests\Normalizer;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Serializer\Exception\CircularReferenceException;
 use Symfony\Component\Serializer\Exception\InvalidArgumentException;
@@ -30,30 +29,19 @@
 {
     use CircularReferenceTestTrait;
 
-    private JsonSerializableNormalizer $normalizer;
-    private MockObject&JsonSerializerNormalizer $serializer;
-
-    protected function setUp(): void
-    {
-        $this->createNormalizer();
-    }
-
-    private function createNormalizer(array $defaultContext = [])
-    {
-        $this->serializer = $this->createMock(JsonSerializerNormalizer::class);
-        $this->normalizer = new JsonSerializableNormalizer(null, null, $defaultContext);
-        $this->normalizer->setSerializer($this->serializer);
-    }
-
     public function testSupportNormalization()
     {
-        $this->assertTrue($this->normalizer->supportsNormalization(new JsonSerializableDummy()));
-        $this->assertFalse($this->normalizer->supportsNormalization(new \stdClass()));
+        $normalizer = new JsonSerializableNormalizer();
+        $normalizer->setSerializer($this->createStub(JsonSerializerNormalizer::class));
+
+        $this->assertTrue($normalizer->supportsNormalization(new JsonSerializableDummy()));
+        $this->assertFalse($normalizer->supportsNormalization(new \stdClass()));
     }
 
     public function testNormalize()
     {
-        $this->serializer
+        $serializer = $this->createMock(JsonSerializerNormalizer::class);
+        $serializer
             ->expects($this->once())
             ->method('normalize')
             ->willReturnCallback(function ($data) {
@@ -62,26 +50,30 @@
                 return 'string_object';
             })
         ;
+        $normalizer = new JsonSerializableNormalizer();
+        $normalizer->setSerializer($serializer);
 
-        $this->assertEquals('string_object', $this->normalizer->normalize(new JsonSerializableDummy()));
+        $this->assertEquals('string_object', $normalizer->normalize(new JsonSerializableDummy()));
     }
 
     public function testCircularNormalize()
     {
         $this->expectException(CircularReferenceException::class);
-        $this->createNormalizer([JsonSerializableNormalizer::CIRCULAR_REFERENCE_LIMIT => 1]);
+        $normalizer = new JsonSerializableNormalizer(null, null, [JsonSerializableNormalizer::CIRCULAR_REFERENCE_LIMIT => 1]);
 
-        $this->serializer
+        $serializer = $this->createMock(JsonSerializerNormalizer::class);
+        $serializer
             ->expects($this->once())
             ->method('normalize')
-            ->willReturnCallback(function ($data, $format, $context) {
-                $this->normalizer->normalize($data['qux'], $format, $context);
+            ->willReturnCallback(static function ($data, $format, $context) use ($normalizer) {
+                $normalizer->normalize($data['qux'], $format, $context);
 
                 return 'string_object';
             })
         ;
+        $normalizer->setSerializer($serializer);
 
-        $this->assertEquals('string_object', $this->normalizer->normalize(new JsonSerializableDummy()));
+        $this->assertEquals('string_object', $normalizer->normalize(new JsonSerializableDummy()));
     }
 
     protected function getNormalizerForCircularReference(array $defaultContext): JsonSerializableNormalizer
@@ -99,9 +91,12 @@
 
     public function testInvalidDataThrowException()
     {
+        $normalizer = new JsonSerializableNormalizer();
+        $normalizer->setSerializer($this->createStub(JsonSerializerNormalizer::class));
+
         $this->expectException(InvalidArgumentException::class);
         $this->expectExceptionMessage('The object must implement "JsonSerializable".');
-        $this->normalizer->normalize(new \stdClass());
+        $normalizer->normalize(new \stdClass());
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/MapDenormalizationTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/MapDenormalizationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/MapDenormalizationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/MapDenormalizationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -187,7 +187,7 @@
 
     private function getSerializer()
     {
-        $loaderMock = new class() implements ClassMetadataFactoryInterface {
+        $loaderMock = new class implements ClassMetadataFactoryInterface {
             public function getMetadataFor($value): ClassMetadataInterface
             {
                 if (AbstractDummyValue::class === $value) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,16 +12,23 @@
 namespace Symfony\Component\Serializer\Tests\Normalizer;
 
 use PHPStan\PhpDocParser\Parser\PhpDocParser;
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\PropertyAccess\PropertyAccessorBuilder;
+use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
 use Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor;
 use Symfony\Component\PropertyInfo\Extractor\PhpStanExtractor;
 use Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor;
 use Symfony\Component\PropertyInfo\PropertyInfoExtractor;
+use Symfony\Component\PropertyInfo\PropertyInfoExtractorInterface;
+use Symfony\Component\Serializer\Attribute\Groups;
 use Symfony\Component\Serializer\Attribute\Ignore;
+use Symfony\Component\Serializer\Exception\ExtraAttributesException;
 use Symfony\Component\Serializer\Exception\LogicException;
+use Symfony\Component\Serializer\Exception\NotNormalizableValueException;
+use Symfony\Component\Serializer\Exception\PartialDenormalizationException;
 use Symfony\Component\Serializer\Exception\RuntimeException;
 use Symfony\Component\Serializer\Exception\UnexpectedValueException;
+use Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
 use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
@@ -30,21 +37,28 @@
 use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
 use Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter;
 use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
+use Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer;
 use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer;
 use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
+use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
 use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
 use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
 use Symfony\Component\Serializer\Serializer;
 use Symfony\Component\Serializer\SerializerInterface;
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\GroupDummy;
+use Symfony\Component\Serializer\Tests\Fixtures\Attributes\GroupDummyWithIsPrefixedProperty;
 use Symfony\Component\Serializer\Tests\Fixtures\CircularReferenceDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\DummyPrivatePropertyWithoutGetter;
+use Symfony\Component\Serializer\Tests\Fixtures\DummyWithUnion;
 use Symfony\Component\Serializer\Tests\Fixtures\FormatAndContextAwareNormalizer;
+use Symfony\Component\Serializer\Tests\Fixtures\MagicSetDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\OtherSerializedNameDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\Php74Dummy;
 use Symfony\Component\Serializer\Tests\Fixtures\Php74DummyPrivate;
 use Symfony\Component\Serializer\Tests\Fixtures\Php80Dummy;
 use Symfony\Component\Serializer\Tests\Fixtures\SiblingHolder;
+use Symfony\Component\Serializer\Tests\Fixtures\StdClassNormalizer;
+use Symfony\Component\Serializer\Tests\Fixtures\VoidNeverReturnTypeDummy;
 use Symfony\Component\Serializer\Tests\Normalizer\Features\AttributesTestTrait;
 use Symfony\Component\Serializer\Tests\Normalizer\Features\CacheableObjectAttributesTestTrait;
 use Symfony\Component\Serializer\Tests\Normalizer\Features\CallbacksTestTrait;
@@ -82,7 +96,7 @@
     use TypeEnforcementTestTrait;
 
     private ObjectNormalizer $normalizer;
-    private SerializerInterface&NormalizerInterface&MockObject $serializer;
+    private SerializerInterface&NormalizerInterface $serializer;
 
     protected function setUp(): void
     {
@@ -91,8 +105,8 @@
 
     private function createNormalizer(array $defaultContext = [], ?ClassMetadataFactoryInterface $classMetadataFactory = null): void
     {
-        $this->serializer = $this->createMock(ObjectSerializerNormalizer::class);
         $this->normalizer = new ObjectNormalizer($classMetadataFactory, null, null, null, null, null, $defaultContext);
+        $this->serializer = new Serializer([new StdClassNormalizer(), $this->normalizer]);
         $this->normalizer->setSerializer($this->serializer);
     }
 
@@ -107,13 +121,6 @@
         $obj->setObject($object);
         $obj->setGo(true);
 
-        $this->serializer
-            ->expects($this->once())
-            ->method('normalize')
-            ->with($object, 'any')
-            ->willReturn('string_object')
-        ;
-
         $this->assertEquals(
             [
                 'foo' => 'foo',
@@ -128,6 +135,32 @@
         );
     }
 
+    public function testNormalizeWithoutSerializer()
+    {
+        $obj = new ObjectDummy();
+        $obj->setFoo('foo');
+        $obj->bar = 'bar';
+        $obj->setBaz(true);
+        $obj->setCamelCase('camelcase');
+        $obj->setObject(null);
+        $obj->setGo(true);
+
+        $this->normalizer = new ObjectNormalizer();
+
+        $this->assertEquals(
+            [
+                'foo' => 'foo',
+                'bar' => 'bar',
+                'baz' => true,
+                'fooBar' => 'foobar',
+                'camelCase' => 'camelcase',
+                'object' => null,
+                'go' => true,
+            ],
+            $this->normalizer->normalize($obj, 'any')
+        );
+    }
+
     public function testNormalizeObjectWithUninitializedProperties()
     {
         $obj = new Php74Dummy();
@@ -157,6 +190,29 @@
         );
     }
 
+    public function testNormalizeWithDisabledMagicMethodsExtractionInContext()
+    {
+        $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
+        $propertyInfoExtractor = $this->createMock(PropertyInfoExtractorInterface::class);
+        $propertyInfoExtractor
+            ->expects($this->once())
+            ->method('isReadable')
+            ->with(ObjectWithGroupedMagicGetPrivateProperty::class, 'foo', ['enable_magic_methods_extraction' => 0])
+            ->willReturn(false);
+        $propertyAccessor = $this->createMock(PropertyAccessorInterface::class);
+        $propertyAccessor
+            ->expects($this->once())
+            ->method('isReadable')
+            ->with($this->isInstanceOf(ObjectWithGroupedMagicGetPrivateProperty::class), 'foo')
+            ->willReturn(false);
+        $normalizer = new ObjectNormalizer($classMetadataFactory, null, $propertyAccessor, null, null, null, [], $propertyInfoExtractor);
+
+        $this->assertSame([], $normalizer->normalize(new ObjectWithGroupedMagicGetPrivateProperty(), null, [
+            'groups' => ['read'],
+            'enable_magic_methods_extraction' => 0,
+        ]));
+    }
+
     public function testNormalizeObjectWithUninitializedPrivateProperties()
     {
         $obj = new Php74DummyPrivate();
@@ -269,7 +325,7 @@
 
     public function testConstructorWithObjectDenormalizeUsingPropertyInfoExtractor()
     {
-        $serializer = $this->createMock(ObjectSerializerNormalizer::class);
+        $serializer = $this->createStub(ObjectSerializerNormalizer::class);
         $normalizer = new ObjectNormalizer(null, null, null, null, null, null, [], new PropertyInfoExtractor());
         $normalizer->setSerializer($serializer);
 
@@ -341,6 +397,49 @@
         $normalizer->denormalize($data, DummyWithConstructorInexistingObject::class);
     }
 
+    public function testConstructorWithNotMatchingUnionTypes()
+    {
+        $data = [
+            'value' => 'string',
+            'value2' => 'string',
+        ];
+        $normalizer = new ObjectNormalizer(new ClassMetadataFactory(new AttributeLoader()), null, null, new PropertyInfoExtractor([], [new ReflectionExtractor()]));
+
+        $this->expectException(NotNormalizableValueException::class);
+        $this->expectExceptionMessage('The type of the "value" attribute for class "Symfony\Component\Serializer\Tests\Fixtures\DummyWithUnion" must be one of "int", "float" ("string" given).');
+
+        $normalizer->denormalize($data, DummyWithUnion::class, 'xml', [
+            AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => false,
+        ]);
+    }
+
+    public function testTypeMismatchOnTypedPropertyIsCollectedAsDenormalizationError()
+    {
+        $extractor = new PropertyInfoExtractor([], [new PhpDocExtractor(), new ReflectionExtractor()]);
+        $serializer = new Serializer([new ObjectNormalizer(null, null, null, $extractor)]);
+
+        try {
+            $serializer->denormalize(
+                ['name' => ['oops']],
+                ObjectTypedDummy::class,
+                null,
+                [
+                    DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS => true,
+                    AbstractObjectNormalizer::DISABLE_TYPE_ENFORCEMENT => true,
+                ],
+            );
+
+            $this->fail(\sprintf('Expected a "%s".', PartialDenormalizationException::class));
+        } catch (PartialDenormalizationException $e) {
+            $this->assertCount(1, $e->getErrors());
+            $error = $e->getErrors()[0];
+            $this->assertInstanceOf(NotNormalizableValueException::class, $error);
+            $this->assertSame('name', $error->getPath());
+            $this->assertSame('array', $error->getCurrentType());
+            $this->assertSame(['unknown'], $error->getExpectedTypes());
+        }
+    }
+
     // attributes
 
     protected function getNormalizerForAttributes(): ObjectNormalizer
@@ -642,7 +741,7 @@
     {
         $this->expectException(LogicException::class);
         $this->expectExceptionMessage('Cannot normalize attribute "object" because the injected serializer is not a normalizer');
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $this->normalizer->setSerializer($serializer);
 
         $obj = new ObjectDummy();
@@ -660,6 +759,19 @@
         );
     }
 
+    public function testDenormalizeMagicSet()
+    {
+        $obj = $this->normalizer->denormalize(
+            ['param1' => 'test', 'param2' => 42],
+            MagicSetDummy::class,
+            'any',
+            [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => true]
+        );
+
+        $this->assertSame('test', $obj->params['param1']);
+        $this->assertSame(42, $obj->params['param2']);
+    }
+
     public function testNoTraversableSupport()
     {
         $this->assertFalse($this->normalizer->supportsNormalization(new \ArrayObject()));
@@ -670,6 +782,13 @@
         $this->assertEquals(['foo' => 'K'], $this->normalizer->normalize(new ObjectWithStaticPropertiesAndMethods()));
     }
 
+    public function testNormalizeStaticWithGroups()
+    {
+        $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
+        $this->createNormalizer([], $classMetadataFactory);
+        $this->assertEquals(['baz' => 'L'], $this->normalizer->normalize(new ObjectWithStaticMethodWithGroups(), null, [AbstractNormalizer::GROUPS => ['test']]));
+    }
+
     public function testNormalizeUpperCaseAttributes()
     {
         $this->assertEquals(['Foo' => 'Foo', 'Bar' => 'BarBar'], $this->normalizer->normalize(new ObjectWithUpperCaseAttributeNames()));
@@ -688,7 +807,7 @@
             'go' => null,
         ];
 
-        $this->assertEquals($expected, $this->normalizer->normalize($objectDummy, null, ['not_serializable' => function () {
+        $this->assertEquals($expected, $this->normalizer->normalize($objectDummy, null, ['not_serializable' => static function () {
         }]));
     }
 
@@ -737,7 +856,7 @@
         $normalizer = new ObjectNormalizer(null, null, null, $extractor);
         $serializer = new Serializer([new ArrayDenormalizer(), new DateTimeNormalizer(), $normalizer]);
 
-        $this->assertSame('bar', $serializer->denormalize(['foo' => 'bar'], (new class() {
+        $this->assertSame('bar', $serializer->denormalize(['foo' => 'bar'], (new class {
             /** @var self::*|null */
             public $foo;
         })::class)->foo);
@@ -786,15 +905,15 @@
 
     public function testAdvancedNameConverter()
     {
-        $nameConverter = new class() implements AdvancedNameConverterInterface {
+        $nameConverter = new class implements AdvancedNameConverterInterface {
             public function normalize(string $propertyName, ?string $class = null, ?string $format = null, array $context = []): string
             {
-                return sprintf('%s-%s-%s-%s', $propertyName, $class, $format, $context['foo']);
+                return \sprintf('%s-%s-%s-%s', $propertyName, $class, $format, $context['foo']);
             }
 
             public function denormalize(string $propertyName, ?string $class = null, ?string $format = null, array $context = []): string
             {
-                return sprintf('%s-%s-%s-%s', $propertyName, $class, $format, $context['foo']);
+                return \sprintf('%s-%s-%s-%s', $propertyName, $class, $format, $context['foo']);
             }
         };
 
@@ -830,7 +949,7 @@
 
     public function testObjectClassResolver()
     {
-        $classResolver = fn ($object) => ObjectDummy::class;
+        $classResolver = static fn ($object) => ObjectDummy::class;
 
         $normalizer = new ObjectNormalizer(null, null, null, null, null, $classResolver);
 
@@ -938,10 +1057,27 @@
         $this->assertSame([], $normalizer->normalize($class));
     }
 
-    public function testNormalizeWithMethodNamesSimilarToAccessors()
+    // accessors
+
+    protected function getNormalizerForAccessors($accessorPrefixes = null): ObjectNormalizer
     {
+        $accessorPrefixes ??= ReflectionExtractor::$defaultAccessorPrefixes;
         $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
-        $normalizer = new ObjectNormalizer($classMetadataFactory);
+        $propertyAccessorBuilder = (new PropertyAccessorBuilder())
+            ->setReadInfoExtractor(
+                new ReflectionExtractor([], $accessorPrefixes, null, false)
+            );
+
+        return new ObjectNormalizer(
+            $classMetadataFactory,
+            null,
+            $propertyAccessorBuilder->getPropertyAccessor(),
+        );
+    }
+
+    public function testNormalizeWithMethodNamesSimilarToAccessors()
+    {
+        $normalizer = $this->getNormalizerForAccessors();
 
         $object = new ObjectWithAccessorishMethods();
         $normalized = $normalizer->normalize($object);
@@ -952,9 +1088,347 @@
             'tell' => true,
             'class' => true,
             'responsibility' => true,
-            123 => 321
+            123 => 321,
+        ], $normalized);
+    }
+
+    public function testNormalizeObjectWithPublicPropertyAccessorPrecedence()
+    {
+        $normalizer = $this->getNormalizerForAccessors();
+
+        $object = new ObjectWithPropertyAndAllAccessorMethods(
+            'foo',
+        );
+        $normalized = $normalizer->normalize($object);
+
+        // The getter method should take precedence over all other accessor methods
+        $this->assertSame([
+            'foo' => 'foo',
+        ], $normalized);
+    }
+
+    public function testNormalizeObjectWithPropertyAndAccessorMethodsWithSameName()
+    {
+        $normalizer = $this->getNormalizerForAccessors();
+
+        $object = new ObjectWithPropertyAndAccessorSameName(
+            'foo',
+            'getFoo',
+            'canFoo',
+            'hasFoo',
+            'isFoo'
+        );
+        $normalized = $normalizer->normalize($object);
+
+        // Accessor methods with exactly the same name as the property should take precedence
+        $this->assertSame([
+            'getFoo' => 'getFoo',
+            'canFoo' => 'canFoo',
+            'hasFoo' => 'hasFoo',
+            'isFoo' => 'isFoo',
+            // The getFoo accessor method is used for foo, thus it's also 'getFoo' instead of 'foo'
+            'foo' => 'getFoo',
+        ], $normalized);
+
+        $denormalized = $this->normalizer->denormalize($normalized, ObjectWithPropertyAndAccessorSameName::class);
+
+        $this->assertSame('getFoo', $denormalized->getFoo());
+
+        // On the initial object the value was 'foo', but the normalizer prefers the accessor method 'getFoo'
+        // Thus on the denormalized object the value is 'getFoo'
+        $this->assertSame('foo', $object->foo);
+        $this->assertSame('getFoo', $denormalized->foo);
+
+        $this->assertSame('hasFoo', $denormalized->hasFoo());
+        $this->assertSame('canFoo', $denormalized->canFoo());
+        $this->assertSame('isFoo', $denormalized->isFoo());
+    }
+
+    public function testNormalizeChildExtendsObjectWithPropertyAndAccessorSameName()
+    {
+        // This test follows the same logic used in testNormalizeObjectWithPropertyAndAccessorMethodsWithSameName()
+        $normalizer = $this->getNormalizerForAccessors();
+
+        $object = new ChildExtendsObjectWithPropertyAndAccessorSameName(
+            'foo',
+            'getFoo',
+            'canFoo',
+            'hasFoo',
+            'isFoo'
+        );
+        $normalized = $normalizer->normalize($object);
+
+        $this->assertSame([
+            'getFoo' => 'getFoo',
+            'canFoo' => 'canFoo',
+            'hasFoo' => 'hasFoo',
+            'isFoo' => 'isFoo',
+            // The getFoo accessor method is used for foo, thus it's also 'getFoo' instead of 'foo'
+            'foo' => 'getFoo',
+        ], $normalized);
+
+        $denormalized = $this->normalizer->denormalize($normalized, ChildExtendsObjectWithPropertyAndAccessorSameName::class);
+
+        $this->assertSame('getFoo', $denormalized->getFoo());
+
+        // On the initial object the value was 'foo', but the normalizer prefers the accessor method 'getFoo'
+        // Thus on the denormalized object the value is 'getFoo'
+        $this->assertSame('foo', $object->foo);
+        $this->assertSame('getFoo', $denormalized->foo);
+
+        $this->assertSame('hasFoo', $denormalized->hasFoo());
+        $this->assertSame('canFoo', $denormalized->canFoo());
+        $this->assertSame('isFoo', $denormalized->isFoo());
+    }
+
+    public function testNormalizeChildWithPropertySameAsParentMethod()
+    {
+        $normalizer = $this->getNormalizerForAccessors();
+
+        $object = new ChildWithPropertySameAsParentMethod('foo');
+        $normalized = $normalizer->normalize($object);
+
+        $this->assertSame([
+            'foo' => 'foo',
         ], $normalized);
     }
+
+    public function testNormalizeObjectWithMethodSameNameAsProperty()
+    {
+        $normalizer = new ObjectNormalizer(new ClassMetadataFactory(new AttributeLoader()));
+
+        $object = new ObjectWithMethodSameNameThanProperty(true);
+
+        $this->assertSame(['shouldDoThing' => true], $normalizer->normalize($object));
+        $this->assertSame(['shouldDoThing' => true], $normalizer->normalize($object, null, ['groups' => 'foo']));
+        $this->assertSame([], $normalizer->normalize($object, null, ['groups' => 'bar']));
+    }
+
+    public function testIgnoreAttributeOnMethodWithSameNameAsProperty()
+    {
+        $normalizer = new ObjectNormalizer(new ClassMetadataFactory(new AttributeLoader()));
+
+        $object = new ObjectWithIgnoredMethodSameNameAsProperty('should_be_ignored', 'should_be_serialized');
+
+        $this->assertSame(['visible' => 'should_be_serialized'], $normalizer->normalize($object));
+    }
+
+    public function testIgnoreAttributeOnMethodWithSameNameAsPropertyWithGroups()
+    {
+        $normalizer = new ObjectNormalizer(new ClassMetadataFactory(new AttributeLoader()));
+
+        $object = new ObjectWithIgnoredMethodSameNameAsPropertyWithGroups('ignored', 'visible_default', 'visible_group');
+
+        // without groups - should include both visible properties
+        $this->assertSame(['visibleDefault' => 'visible_default', 'visibleGroup' => 'visible_group'], $normalizer->normalize($object));
+
+        // with groups - should only include group-specific property, ignored method should never appear
+        $this->assertSame(['visibleGroup' => 'visible_group'], $normalizer->normalize($object, null, ['groups' => ['group1']]));
+    }
+
+    /**
+     * Priority of accessor methods is defined by the PropertyReadInfoExtractorInterface passed to the PropertyAccessor
+     * component. By default ReflectionExtractor::$defaultAccessorPrefixes are used.
+     */
+    public function testPrecedenceOfAccessorMethods()
+    {
+        // by default 'is' comes before 'has'
+        $defaultAccessorPrefixNormalizer = $this->getNormalizerForAccessors();
+        $swappedAccessorPrefixNormalizer = $this->getNormalizerForAccessors(['has', 'is']);
+
+        // Nearly equal class, only accessor order is different
+        $isserHasserObject = new ObjectWithPropertyIsserAndHasser('foo');
+        $hasserIsserObject = new ObjectWithPropertyHasserAndIsser('foo');
+
+        // default precedence (is, has)
+        $normalizedDefaultIsserHasser = $defaultAccessorPrefixNormalizer->normalize($isserHasserObject);
+        $normalizedDefaultHasserIsser = $defaultAccessorPrefixNormalizer->normalize($hasserIsserObject);
+
+        $this->assertSame([
+            'foo' => 'isFoo',
+        ], $normalizedDefaultIsserHasser);
+        $this->assertSame([
+            'foo' => 'isFoo',
+        ], $normalizedDefaultHasserIsser);
+
+        // swapped precedence (has, is)
+        $normalizedSwappedIsserHasser = $swappedAccessorPrefixNormalizer->normalize($isserHasserObject);
+        $normalizedSwappedHasserIsser = $swappedAccessorPrefixNormalizer->normalize($hasserIsserObject);
+
+        $this->assertSame([
+            'foo' => 'hasFoo',
+        ], $normalizedSwappedIsserHasser);
+        $this->assertSame([
+            'foo' => 'hasFoo',
+        ], $normalizedSwappedHasserIsser);
+    }
+
+    public function testIsserPrefersBaseNameWhenNoCollision()
+    {
+        $normalizer = new ObjectNormalizer();
+
+        $object = new ObjectWithIsPrefixedPropertyOnly(true);
+
+        $this->assertSame(['published' => true], $normalizer->normalize($object));
+    }
+
+    public function testIsserKeepsPrefixWhenBaseNameCollides()
+    {
+        $normalizer = new ObjectNormalizer();
+
+        $object = new ObjectWithIsPrefixedPropertyAndPublishedGetter(true, 'live');
+
+        $this->assertEquals([
+            'published' => 'live',
+            'isPublished' => true,
+        ], $normalizer->normalize($object));
+    }
+
+    public function testIsserKeepsPrefixWhenPublicPropertyCollidesWithoutGetter()
+    {
+        $normalizer = new ObjectNormalizer();
+
+        $object = new ObjectWithIsserAndPublicPropertyNoGetter(true, 'live');
+
+        // Both should appear: isPublished keeps prefix because $published property exists
+        $this->assertEquals([
+            'isPublished' => true,
+            'published' => 'live',
+        ], $normalizer->normalize($object));
+    }
+
+    public function testIsserWithPublicPropertyCollision()
+    {
+        $normalizer = new ObjectNormalizer();
+
+        $object = new ObjectWithPublicPublishedPropertyAndIsser('live');
+
+        // The isser takes precedence over the public property - this documents existing behavior
+        $this->assertSame(['published' => true], $normalizer->normalize($object));
+    }
+
+    public function testIsserWithPrivatePropertyNoMethodNamedProperty()
+    {
+        $normalizer = new ObjectNormalizer();
+
+        $object = new ObjectWithPrivatePublishedAndIsser(true);
+
+        // isPublished() should normalize to 'published', not 'isPublished'
+        // because there's no $isPublished property that would cause a collision
+        $this->assertSame(['published' => true], $normalizer->normalize($object));
+    }
+
+    public function testDiscriminatorWithAllowExtraAttributesFalse()
+    {
+        // Discriminator type property should be allowed with allow_extra_attributes=false
+        $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
+        $discriminator = new ClassDiscriminatorFromClassMetadata($classMetadataFactory);
+        $normalizer = new ObjectNormalizer($classMetadataFactory, null, null, null, $discriminator);
+
+        $obj = $normalizer->denormalize(
+            ['type' => 'type_a'],
+            DiscriminatorDummyInterface::class,
+            null,
+            [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => false]
+        );
+
+        $this->assertInstanceOf(DiscriminatorDummyTypeA::class, $obj);
+    }
+
+    public function testNameConverterWithWrongCaseAndAllowExtraAttributesFalse()
+    {
+        $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
+        $normalizer = new ObjectNormalizer($classMetadataFactory, new CamelCaseToSnakeCaseNameConverter());
+
+        $result = $normalizer->denormalize(
+            ['some_camel_case_property' => 1],
+            NameConverterTestDummy::class,
+            null,
+            [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => false]
+        );
+        $this->assertSame(1, $result->someCamelCaseProperty);
+
+        $this->expectException(ExtraAttributesException::class);
+        $this->expectExceptionMessage('someCamelCaseProperty');
+        $normalizer->denormalize(
+            ['someCamelCaseProperty' => 1],
+            NameConverterTestDummy::class,
+            null,
+            [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => false]
+        );
+    }
+
+    public function testNameConverterWithWrongCaseAndAllowExtraAttributesTrue()
+    {
+        $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
+        $normalizer = new ObjectNormalizer($classMetadataFactory, new CamelCaseToSnakeCaseNameConverter());
+
+        $result = $normalizer->denormalize(
+            ['someCamelCaseProperty' => 999],
+            NameConverterTestDummy::class,
+            null,
+            [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => true]
+        );
+        $this->assertSame(0, $result->someCamelCaseProperty);
+
+        $result = $normalizer->denormalize(
+            ['some_camel_case_property' => 42],
+            NameConverterTestDummy::class,
+            null,
+            [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => true]
+        );
+        $this->assertSame(42, $result->someCamelCaseProperty);
+    }
+
+    public function testNormalizeObjectWithGroupsAndIsPrefixedProperty()
+    {
+        $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
+        $normalizer = new ObjectNormalizer($classMetadataFactory);
+        $serializer = new Serializer([$normalizer]);
+        $normalizer->setSerializer($serializer);
+
+        $object = new GroupDummyWithIsPrefixedProperty();
+
+        $normalizedWithoutGroups = $normalizer->normalize($object);
+        $this->assertArrayHasKey('something', $normalizedWithoutGroups);
+
+        $normalizedWithGroups = $normalizer->normalize($object, null, [AbstractNormalizer::GROUPS => ['test']]);
+        $this->assertArrayHasKey('something', $normalizedWithGroups);
+    }
+
+    public function testNormalizeObjectWithGroupsAndIsPrefixedPropertyWithCollision()
+    {
+        $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
+        $normalizer = new ObjectNormalizer($classMetadataFactory);
+        $serializer = new Serializer([$normalizer]);
+        $normalizer->setSerializer($serializer);
+
+        $object = new GroupDummyWithIsPrefixedPropertyAndPublishedGetter();
+
+        $normalizedWithGroups = $normalizer->normalize($object, null, [AbstractNormalizer::GROUPS => ['test']]);
+
+        $this->assertArrayHasKey('isPublished', $normalizedWithGroups);
+        $this->assertArrayNotHasKey('published', $normalizedWithGroups);
+    }
+
+    public function testSkipVoidNeverReturnTypeAccessors()
+    {
+        $obj = new VoidNeverReturnTypeDummy();
+        $normalized = $this->normalizer->normalize($obj);
+        $this->assertArrayHasKey('normalProperty', $normalized);
+        $this->assertArrayNotHasKey('voidProperty', $normalized);
+        $this->assertArrayNotHasKey('neverProperty', $normalized);
+        $this->assertEquals('value', $normalized['normalProperty']);
+    }
+
+    public function testMetadataIsAppliedToTheRightValue()
+    {
+        $obj = new ObjectWithMetadata();
+        $normalizer = new ObjectNormalizer(new ClassMetadataFactory(new AttributeLoader()));
+        $normalized = $normalizer->normalize($obj);
+
+        $this->assertSame(['name' => 'John', 'foo' => 42, 'hello' => 'Hello i am John'], $normalized);
+    }
 }
 
 class ProxyObjectDummy extends ObjectDummy
@@ -1062,6 +1536,15 @@
     }
 }
 
+class ObjectWithStaticMethodWithGroups
+{
+    #[Groups('test')]
+    public static function getBaz()
+    {
+        return 'L';
+    }
+}
+
 class ObjectTypeHinted
 {
     public function setFoo(array $f)
@@ -1136,6 +1619,17 @@
     }
 }
 
+class ObjectWithGroupedMagicGetPrivateProperty
+{
+    #[Groups(['read'])]
+    private string $foo = 'foo';
+
+    public function __get($name)
+    {
+        return 'foo';
+    }
+}
+
 class DummyWithConstructorObject
 {
     private $id;
@@ -1297,3 +1791,339 @@
         $this->accessorishCalled = true;
     }
 }
+
+#[\Symfony\Component\Serializer\Attribute\DiscriminatorMap(
+    typeProperty: 'type',
+    mapping: [
+        'type_a' => DiscriminatorDummyTypeA::class,
+        'type_b' => DiscriminatorDummyTypeB::class,
+    ]
+)]
+interface DiscriminatorDummyInterface
+{
+}
+
+class DiscriminatorDummyTypeA implements DiscriminatorDummyInterface
+{
+}
+
+class DiscriminatorDummyTypeB implements DiscriminatorDummyInterface
+{
+}
+
+class ObjectWithPropertyAndAllAccessorMethods
+{
+    public function __construct(
+        private $foo,
+    ) {
+    }
+
+    public function canFoo()
+    {
+        return 'canFoo';
+    }
+
+    public function getFoo()
+    {
+        return $this->foo;
+    }
+
+    public function hasFoo()
+    {
+        return 'hasFoo';
+    }
+
+    public function isFoo()
+    {
+        return 'isFoo';
+    }
+}
+
+class ObjectWithPropertyAndAccessorSameName
+{
+    public function __construct(
+        public $foo,
+        private $getFoo,
+        private $canFoo = null,
+        private $hasFoo = null,
+        private $isFoo = null,
+    ) {
+    }
+
+    public function getFoo()
+    {
+        return $this->getFoo;
+    }
+
+    public function canFoo()
+    {
+        return $this->canFoo;
+    }
+
+    public function hasFoo()
+    {
+        return $this->hasFoo;
+    }
+
+    public function isFoo()
+    {
+        return $this->isFoo;
+    }
+}
+
+class ChildExtendsObjectWithPropertyAndAccessorSameName extends ObjectWithPropertyAndAccessorSameName
+{
+}
+
+class ChildWithPropertySameAsParentMethod extends ObjectWithPropertyAndAllAccessorMethods
+{
+    private $canFoo;
+    private $getFoo;
+    private $hasFoo;
+    private $isFoo;
+}
+
+class ObjectWithPropertyHasserAndIsser
+{
+    public function __construct(
+        private $foo,
+    ) {
+    }
+
+    public function hasFoo()
+    {
+        return 'hasFoo';
+    }
+
+    public function isFoo()
+    {
+        return 'isFoo';
+    }
+}
+
+class ObjectWithPropertyIsserAndHasser
+{
+    public function __construct(
+        private $foo,
+    ) {
+    }
+
+    public function isFoo()
+    {
+        return 'isFoo';
+    }
+
+    public function hasFoo()
+    {
+        return 'hasFoo';
+    }
+}
+
+class ObjectWithIsPrefixedPropertyOnly
+{
+    public function __construct(
+        private bool $isPublished,
+    ) {
+    }
+
+    public function isPublished(): bool
+    {
+        return $this->isPublished;
+    }
+}
+
+class ObjectWithIsPrefixedPropertyAndPublishedGetter
+{
+    public function __construct(
+        private bool $isPublished,
+        private string $published,
+    ) {
+    }
+
+    public function getPublished(): string
+    {
+        return $this->published;
+    }
+
+    public function isPublished(): bool
+    {
+        return $this->isPublished;
+    }
+}
+
+class GroupDummyWithIsPrefixedPropertyAndPublishedGetter
+{
+    private bool $isPublished = true;
+    private string $published = 'live';
+
+    #[Groups(['test'])]
+    public function isPublished(): bool
+    {
+        return $this->isPublished;
+    }
+
+    public function getPublished(): string
+    {
+        return $this->published;
+    }
+}
+
+class ObjectWithPublicPublishedPropertyAndIsser
+{
+    public string $published;
+
+    public function __construct(string $published)
+    {
+        $this->published = $published;
+    }
+
+    public function isPublished(): bool
+    {
+        return '' !== $this->published;
+    }
+}
+
+class ObjectWithPrivatePublishedAndIsser
+{
+    public function __construct(
+        private bool $published,
+    ) {
+    }
+
+    public function isPublished(): bool
+    {
+        return $this->published;
+    }
+}
+
+class ObjectWithIsserAndPublicPropertyNoGetter
+{
+    public string $published;
+
+    public function __construct(
+        private bool $isPublished,
+        string $published,
+    ) {
+        $this->published = $published;
+    }
+
+    public function isPublished(): bool
+    {
+        return $this->isPublished;
+    }
+}
+
+class ObjectWithMethodSameNameThanProperty
+{
+    public function __construct(
+        private $shouldDoThing,
+    ) {
+    }
+
+    #[Groups(['Default', 'foo'])]
+    public function shouldDoThing()
+    {
+        return $this->shouldDoThing;
+    }
+}
+
+class ObjectWithIgnoredMethodSameNameAsProperty
+{
+    public string $visible;
+
+    private $ignored;
+
+    public function __construct(string $ignored, string $visible)
+    {
+        $this->ignored = $ignored;
+        $this->visible = $visible;
+    }
+
+    #[Ignore]
+    public function ignored()
+    {
+        return $this->ignored;
+    }
+}
+
+class ObjectWithIgnoredMethodSameNameAsPropertyWithGroups
+{
+    public string $visibleDefault;
+    public string $visibleGroup;
+
+    private $ignored;
+
+    public function __construct(string $ignored, string $visibleDefault, string $visibleGroup)
+    {
+        $this->ignored = $ignored;
+        $this->visibleDefault = $visibleDefault;
+        $this->visibleGroup = $visibleGroup;
+    }
+
+    #[Ignore]
+    public function ignored()
+    {
+        return $this->ignored;
+    }
+
+    #[Groups(['group1'])]
+    public function visibleGroup()
+    {
+        return $this->visibleGroup;
+    }
+}
+
+class NameConverterTestDummy
+{
+    public function __construct(
+        public readonly int $someCamelCaseProperty = 0,
+    ) {
+    }
+}
+
+class NameConverterTestDummyMultiple
+{
+    public function __construct(
+        public readonly int $someCamelCaseProperty = 0,
+        public readonly int $anotherProperty = 0,
+    ) {
+    }
+}
+
+class ObjectWithMetadata
+{
+    private int $foo;
+    private string $name;
+
+    public function __construct()
+    {
+        $this->foo = 42;
+        $this->name = 'John';
+    }
+
+    public function getName(): string
+    {
+        return $this->name;
+    }
+
+    public function getFoo(): int
+    {
+        return $this->foo;
+    }
+
+    #[Ignore]
+    public function isEqualTo(self $test): bool
+    {
+        return $this->name === $test->getName();
+    }
+
+    public function getHello(): string
+    {
+        return 'Hello i am '.$this->getName();
+    }
+}
+
+class ObjectTypedDummy
+{
+    public string $name;
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,11 +17,14 @@
 use Symfony\Component\PropertyInfo\PropertyInfoExtractor;
 use Symfony\Component\Serializer\Attribute\DiscriminatorMap;
 use Symfony\Component\Serializer\Exception\LogicException;
+use Symfony\Component\Serializer\Exception\NotNormalizableValueException;
+use Symfony\Component\Serializer\Exception\PartialDenormalizationException;
 use Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
 use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
 use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
 use Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter;
+use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
 use Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer;
 use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer;
 use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
@@ -30,10 +33,12 @@
 use Symfony\Component\Serializer\SerializerInterface;
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\GroupDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\GroupDummyChild;
+use Symfony\Component\Serializer\Tests\Fixtures\ChildClassDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\Dummy;
 use Symfony\Component\Serializer\Tests\Fixtures\Php74Dummy;
 use Symfony\Component\Serializer\Tests\Fixtures\PropertyCircularReferenceDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\PropertySiblingHolder;
+use Symfony\Component\Serializer\Tests\Fixtures\SpecialBookDummy;
 use Symfony\Component\Serializer\Tests\Normalizer\Features\CacheableObjectAttributesTestTrait;
 use Symfony\Component\Serializer\Tests\Normalizer\Features\CallbacksTestTrait;
 use Symfony\Component\Serializer\Tests\Normalizer\Features\CircularReferenceTestTrait;
@@ -69,7 +74,7 @@
 
     private function createNormalizer(array $defaultContext = []): void
     {
-        $this->serializer = $this->createMock(SerializerInterface::class);
+        $this->serializer = $this->createStub(SerializerInterface::class);
         $this->normalizer = new PropertyNormalizer(null, null, null, null, null, $defaultContext);
         $this->normalizer->setSerializer($this->serializer);
     }
@@ -174,6 +179,39 @@
         $this->assertEquals('bar', $obj->getBar());
     }
 
+    /**
+     * @requires PHP 8.2
+     */
+    public function testDenormalizeWithReadOnlyClass()
+    {
+        /** @var ChildClassDummy $object */
+        $object = $this->normalizer->denormalize(
+            ['parentProp' => 'parentProp', 'childProp' => 'childProp'],
+            ChildClassDummy::class,
+            'any'
+        );
+
+        $this->assertSame('parentProp', $object->getParentProp());
+        $this->assertSame('childProp', $object->childProp);
+    }
+
+    /**
+     * @requires PHP 8.4
+     */
+    public function testDenormalizeWithAsymmetricPropertyVisibility()
+    {
+        /** @var SpecialBookDummy $object */
+        $object = $this->normalizer->denormalize(
+            ['title' => 'life', 'author' => 'Santiago San Martin', 'pubYear' => 2000],
+            SpecialBookDummy::class,
+            'any'
+        );
+
+        $this->assertSame('life', $object->title);
+        $this->assertSame('Santiago San Martin', $object->author);
+        $this->assertSame(2000, $object->getPubYear());
+    }
+
     public function testNormalizeWithParentClass()
     {
         $group = new GroupDummyChild();
@@ -401,7 +439,7 @@
     {
         $this->expectException(LogicException::class);
         $this->expectExceptionMessage('Cannot normalize attribute "bar" because the injected serializer is not a normalizer');
-        $serializer = $this->createMock(SerializerInterface::class);
+        $serializer = $this->createStub(SerializerInterface::class);
         $this->normalizer->setSerializer($serializer);
 
         $obj = new PropertyDummy();
@@ -430,19 +468,19 @@
     {
         $normalizer = $this->getDenormalizerForTypeEnforcement();
         $root = $normalizer->denormalize([
-                'children' => [[
-                    ['foo' => 'one', 'bar' => 'two'],
-                    ['foo' => 'three', 'bar' => 'four'],
-                ]],
-                'grandChildren' => [[[
-                    ['foo' => 'five', 'bar' => 'six'],
-                    ['foo' => 'seven', 'bar' => 'eight'],
-                ]]],
-                'intMatrix' => [
-                    [0, 1, 2],
-                    [3, 4, 5],
-                ],
+            'children' => [[
+                ['foo' => 'one', 'bar' => 'two'],
+                ['foo' => 'three', 'bar' => 'four'],
+            ]],
+            'grandChildren' => [[[
+                ['foo' => 'five', 'bar' => 'six'],
+                ['foo' => 'seven', 'bar' => 'eight'],
+            ]]],
+            'intMatrix' => [
+                [0, 1, 2],
+                [3, 4, 5],
             ],
+        ],
             RootDummy::class,
             'any'
         );
@@ -516,6 +554,90 @@
 
         $this->assertEquals($denormalized, $normalizer->denormalize(['type' => 'two', 'url' => 'url'], PropertyDummyInterface::class));
     }
+
+    public function testDiscriminatorWithAllowExtraAttributesFalse()
+    {
+        // Discriminator type property should be allowed with allow_extra_attributes=false
+        $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
+        $discriminator = new ClassDiscriminatorFromClassMetadata($classMetadataFactory);
+        $normalizer = new PropertyNormalizer($classMetadataFactory, null, null, $discriminator);
+
+        $obj = $normalizer->denormalize(
+            ['type' => 'one'],
+            PropertyDummyInterface::class,
+            null,
+            [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => false]
+        );
+
+        $this->assertInstanceOf(PropertyDiscriminatedDummyOne::class, $obj);
+    }
+
+    /**
+     * @dataProvider provideTypedPropertyDummies
+     */
+    public function testTypeMismatchOnTypedPropertyIsCollectedAsDenormalizationError(string $class)
+    {
+        $extractor = new PropertyInfoExtractor([], [new PhpDocExtractor(), new ReflectionExtractor()]);
+        $serializer = new Serializer([new PropertyNormalizer(null, null, $extractor)]);
+
+        try {
+            $serializer->denormalize(
+                ['name' => ['oops']],
+                $class,
+                null,
+                [
+                    DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS => true,
+                    AbstractObjectNormalizer::DISABLE_TYPE_ENFORCEMENT => true,
+                ],
+            );
+
+            $this->fail(\sprintf('Expected a "%s".', PartialDenormalizationException::class));
+        } catch (PartialDenormalizationException $e) {
+            $this->assertCount(1, $e->getErrors());
+            $error = $e->getErrors()[0];
+            $this->assertInstanceOf(NotNormalizableValueException::class, $error);
+            $this->assertSame('name', $error->getPath());
+            $this->assertSame('array', $error->getCurrentType());
+            $this->assertSame(['unknown'], $error->getExpectedTypes());
+            $this->assertInstanceOf(\TypeError::class, $error->getPrevious());
+        }
+    }
+
+    public static function provideTypedPropertyDummies(): iterable
+    {
+        yield 'readonly typed property' => [PropertyReadonlyTypedDummy::class];
+        yield 'plain typed property' => [PropertyTypedDummy::class];
+    }
+
+    public function testTypeMismatchOnTypedPropertyIsRethrownAsNotNormalizableValueException()
+    {
+        $extractor = new PropertyInfoExtractor([], [new PhpDocExtractor(), new ReflectionExtractor()]);
+        $serializer = new Serializer([new PropertyNormalizer(null, null, $extractor)]);
+
+        try {
+            $serializer->denormalize(
+                ['name' => ['oops']],
+                PropertyTypedDummy::class,
+                null,
+                [AbstractObjectNormalizer::DISABLE_TYPE_ENFORCEMENT => true],
+            );
+
+            $this->fail(\sprintf('Expected a "%s".', NotNormalizableValueException::class));
+        } catch (NotNormalizableValueException $e) {
+            $this->assertSame('name', $e->getPath());
+            $this->assertInstanceOf(\TypeError::class, $e->getPrevious());
+        }
+    }
+}
+
+class PropertyReadonlyTypedDummy
+{
+    public readonly string $name;
+}
+
+class PropertyTypedDummy
+{
+    public string $name;
 }
 
 class PropertyDummy
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/TranslatableNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/TranslatableNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/TranslatableNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/TranslatableNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Component\Serializer\Normalizer\TranslatableNormalizer;
 use Symfony\Contracts\Translation\TranslatableInterface;
 use Symfony\Contracts\Translation\TranslatorInterface;
+use Symfony\Contracts\Translation\TranslatorTrait;
 
 class TranslatableNormalizerTest extends TestCase
 {
@@ -22,7 +23,7 @@
 
     protected function setUp(): void
     {
-        $this->normalizer = new TranslatableNormalizer($this->createMock(TranslatorInterface::class));
+        $this->normalizer = new TranslatableNormalizer(new IdentityTranslator());
     }
 
     public function testSupportsNormalization()
@@ -43,7 +44,7 @@
     public function testNormalizeWithNormalizationLocalePassedInConstructor()
     {
         $normalizer = new TranslatableNormalizer(
-            $this->createMock(TranslatorInterface::class),
+            new IdentityTranslator(),
             ['translatable_normalization_locale' => 'es'],
         );
         $message = new TestMessage();
@@ -61,3 +62,8 @@
         return 'key_'.($locale ?? 'null');
     }
 }
+
+class IdentityTranslator implements TranslatorInterface
+{
+    use TranslatorTrait;
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UidNormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UidNormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UidNormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UidNormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,8 +50,8 @@
     {
         $uidFormats = [null, 'canonical', 'base58', 'base32', 'rfc4122'];
         $data = [
-             [
-                 UuidV1::fromString('9b7541de-6f87-11ea-ab3c-9da9a81562fc'),
+            [
+                UuidV1::fromString('9b7541de-6f87-11ea-ab3c-9da9a81562fc'),
                 '9b7541de-6f87-11ea-ab3c-9da9a81562fc',
                 '9b7541de-6f87-11ea-ab3c-9da9a81562fc',
                 'LCQS8f2p5SDSiAt9V7ZYnF',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UnwrappinDenormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UnwrappinDenormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UnwrappinDenormalizerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UnwrappinDenormalizerTest.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,84 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Normalizer;
-
-use PHPUnit\Framework\MockObject\MockObject;
-use PHPUnit\Framework\TestCase;
-use Symfony\Component\Serializer\Normalizer\UnwrappingDenormalizer;
-use Symfony\Component\Serializer\Serializer;
-use Symfony\Component\Serializer\Tests\Normalizer\Features\ObjectDummy;
-
-/**
- * @author Eduard Bulava <bulavaeduard@gmail.com>
- */
-class UnwrappinDenormalizerTest extends TestCase
-{
-    private UnwrappingDenormalizer $denormalizer;
-    private MockObject&Serializer $serializer;
-
-    protected function setUp(): void
-    {
-        $this->serializer = $this->createMock(Serializer::class);
-        $this->denormalizer = new UnwrappingDenormalizer();
-        $this->denormalizer->setSerializer($this->serializer);
-    }
-
-    public function testSupportsNormalization()
-    {
-        $this->assertTrue($this->denormalizer->supportsDenormalization([], 'stdClass', 'any', [UnwrappingDenormalizer::UNWRAP_PATH => '[baz][inner]']));
-        $this->assertFalse($this->denormalizer->supportsDenormalization([], 'stdClass', 'any', [UnwrappingDenormalizer::UNWRAP_PATH => '[baz][inner]', 'unwrapped' => true]));
-        $this->assertFalse($this->denormalizer->supportsDenormalization([], 'stdClass', 'any', []));
-    }
-
-    public function testDenormalize()
-    {
-        $expected = new ObjectDummy();
-        $expected->setBaz(true);
-        $expected->bar = 'bar';
-        $expected->setFoo('foo');
-
-        $this->serializer->expects($this->exactly(1))
-            ->method('denormalize')
-            ->with(['foo' => 'foo', 'bar' => 'bar', 'baz' => true])
-            ->willReturn($expected);
-
-        $result = $this->denormalizer->denormalize(
-            ['data' => ['foo' => 'foo', 'bar' => 'bar', 'baz' => true]],
-            ObjectDummy::class,
-            'any',
-            [UnwrappingDenormalizer::UNWRAP_PATH => '[data]']
-        );
-
-        $this->assertEquals('foo', $result->getFoo());
-        $this->assertEquals('bar', $result->bar);
-        $this->assertTrue($result->isBaz());
-    }
-
-    public function testDenormalizeInvalidPath()
-    {
-        $this->serializer->expects($this->exactly(1))
-            ->method('denormalize')
-            ->with(null)
-            ->willReturn(new ObjectDummy());
-
-        $obj = $this->denormalizer->denormalize(
-            ['data' => ['foo' => 'foo', 'bar' => 'bar', 'baz' => true]],
-            ObjectDummy::class,
-            'any',
-            [UnwrappingDenormalizer::UNWRAP_PATH => '[invalid]']
-        );
-
-        $this->assertNull($obj->getFoo());
-        $this->assertNull($obj->bar);
-        $this->assertNull($obj->isBaz());
-    }
-}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UnwrappingDenormalizerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UnwrappingDenormalizerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UnwrappingDenormalizerTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/Normalizer/UnwrappingDenormalizerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Serializer\Tests\Normalizer;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Serializer\Normalizer\UnwrappingDenormalizer;
+use Symfony\Component\Serializer\Serializer;
+use Symfony\Component\Serializer\Tests\Normalizer\Features\ObjectDummy;
+
+/**
+ * @author Eduard Bulava <bulavaeduard@gmail.com>
+ */
+class UnwrappingDenormalizerTest extends TestCase
+{
+    public function testSupportsNormalization()
+    {
+        $denormalizer = new UnwrappingDenormalizer();
+        $denormalizer->setSerializer($this->createStub(Serializer::class));
+
+        $this->assertTrue($denormalizer->supportsDenormalization([], 'stdClass', 'any', [UnwrappingDenormalizer::UNWRAP_PATH => '[baz][inner]']));
+        $this->assertFalse($denormalizer->supportsDenormalization([], 'stdClass', 'any', [UnwrappingDenormalizer::UNWRAP_PATH => '[baz][inner]', 'unwrapped' => true]));
+        $this->assertFalse($denormalizer->supportsDenormalization([], 'stdClass', 'any', []));
+    }
+
+    public function testDenormalize()
+    {
+        $expected = new ObjectDummy();
+        $expected->setBaz(true);
+        $expected->bar = 'bar';
+        $expected->setFoo('foo');
+
+        $serializer = $this->createMock(Serializer::class);
+        $serializer->expects($this->exactly(1))
+            ->method('denormalize')
+            ->with(['foo' => 'foo', 'bar' => 'bar', 'baz' => true])
+            ->willReturn($expected);
+        $denormalizer = new UnwrappingDenormalizer();
+        $denormalizer->setSerializer($serializer);
+
+        $result = $denormalizer->denormalize(
+            ['data' => ['foo' => 'foo', 'bar' => 'bar', 'baz' => true]],
+            ObjectDummy::class,
+            'any',
+            [UnwrappingDenormalizer::UNWRAP_PATH => '[data]']
+        );
+
+        $this->assertEquals('foo', $result->getFoo());
+        $this->assertEquals('bar', $result->bar);
+        $this->assertTrue($result->isBaz());
+    }
+
+    public function testDenormalizeInvalidPath()
+    {
+        $serializer = $this->createMock(Serializer::class);
+        $serializer->expects($this->exactly(1))
+            ->method('denormalize')
+            ->with(null)
+            ->willReturn(new ObjectDummy());
+        $denormalizer = new UnwrappingDenormalizer();
+        $denormalizer->setSerializer($serializer);
+
+        $obj = $denormalizer->denormalize(
+            ['data' => ['foo' => 'foo', 'bar' => 'bar', 'baz' => true]],
+            ObjectDummy::class,
+            'any',
+            [UnwrappingDenormalizer::UNWRAP_PATH => '[invalid]']
+        );
+
+        $this->assertNull($obj->getFoo());
+        $this->assertNull($obj->bar);
+        $this->assertNull($obj->isBaz());
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/SerializerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/SerializerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Serializer/Tests/SerializerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Serializer/Tests/SerializerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -48,6 +48,7 @@
 use Symfony\Component\Serializer\Normalizer\UidNormalizer;
 use Symfony\Component\Serializer\Normalizer\UnwrappingDenormalizer;
 use Symfony\Component\Serializer\Serializer;
+use Symfony\Component\Serializer\Tests\Fixtures\AsymmetricVisibilityDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\AbstractDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\AbstractDummyFirstChild;
 use Symfony\Component\Serializer\Tests\Fixtures\Attributes\AbstractDummySecondChild;
@@ -61,6 +62,7 @@
 use Symfony\Component\Serializer\Tests\Fixtures\DummyObjectWithEnumConstructor;
 use Symfony\Component\Serializer\Tests\Fixtures\DummyObjectWithEnumProperty;
 use Symfony\Component\Serializer\Tests\Fixtures\DummyWithObjectOrNull;
+use Symfony\Component\Serializer\Tests\Fixtures\DummyWithUnion;
 use Symfony\Component\Serializer\Tests\Fixtures\DummyWithVariadicParameter;
 use Symfony\Component\Serializer\Tests\Fixtures\FalseBuiltInDummy;
 use Symfony\Component\Serializer\Tests\Fixtures\FooImplementationDummy;
@@ -99,7 +101,7 @@
     public function testNormalizeNoMatch()
     {
         $this->expectException(UnexpectedValueException::class);
-        $serializer = new Serializer([$this->createMock(CustomNormalizer::class)]);
+        $serializer = new Serializer([$this->createStub(NormalizerInterface::class)]);
         $serializer->normalize(new \stdClass(), 'xml');
     }
 
@@ -127,7 +129,7 @@
     public function testDenormalizeNoMatch()
     {
         $this->expectException(UnexpectedValueException::class);
-        $serializer = new Serializer([$this->createMock(CustomNormalizer::class)]);
+        $serializer = new Serializer([$this->createStub(NormalizerInterface::class)]);
         $serializer->denormalize('foo', 'stdClass');
     }
 
@@ -158,13 +160,13 @@
 
     public function testNormalizeWithSupportOnData()
     {
-        $normalizer1 = $this->createMock(NormalizerInterface::class);
+        $normalizer1 = $this->createStub(NormalizerInterface::class);
         $normalizer1->method('getSupportedTypes')->willReturn(['*' => false]);
         $normalizer1->method('supportsNormalization')
-            ->willReturnCallback(fn ($data, $format) => isset($data->test));
+            ->willReturnCallback(static fn ($data, $format) => isset($data->test));
         $normalizer1->method('normalize')->willReturn('test1');
 
-        $normalizer2 = $this->createMock(NormalizerInterface::class);
+        $normalizer2 = $this->createStub(NormalizerInterface::class);
         $normalizer2->method('getSupportedTypes')->willReturn(['*' => false]);
         $normalizer2->method('supportsNormalization')
             ->willReturn(true);
@@ -181,13 +183,13 @@
 
     public function testDenormalizeWithSupportOnData()
     {
-        $denormalizer1 = $this->createMock(DenormalizerInterface::class);
+        $denormalizer1 = $this->createStub(DenormalizerInterface::class);
         $denormalizer1->method('getSupportedTypes')->willReturn(['*' => false]);
         $denormalizer1->method('supportsDenormalization')
-            ->willReturnCallback(fn ($data, $type, $format) => isset($data['test1']));
+            ->willReturnCallback(static fn ($data, $type, $format) => isset($data['test1']));
         $denormalizer1->method('denormalize')->willReturn('test1');
 
-        $denormalizer2 = $this->createMock(DenormalizerInterface::class);
+        $denormalizer2 = $this->createStub(DenormalizerInterface::class);
         $denormalizer2->method('getSupportedTypes')->willReturn(['*' => false]);
         $denormalizer2->method('supportsDenormalization')
             ->willReturn(true);
@@ -408,7 +410,7 @@
         $example = new AbstractDummyFirstChild('foo-value', 'bar-value');
         $example->setQuux(new DummyFirstChildQuux('quux'));
 
-        $loaderMock = new class() implements ClassMetadataFactoryInterface {
+        $loaderMock = new class implements ClassMetadataFactoryInterface {
             public function getMetadataFor($value): ClassMetadataInterface
             {
                 if (AbstractDummy::class === $value) {
@@ -589,10 +591,10 @@
         $data['c2'] = new \ArrayObject(['nested' => new \ArrayObject(['k' => 'v'])]);
         $data['d1'] = new \ArrayObject(['nested' => []]);
         $data['d2'] = new \ArrayObject(['nested' => ['k' => 'v']]);
-        $data['e1'] = new class() {
+        $data['e1'] = new class {
             public $map = [];
         };
-        $data['e2'] = new class() {
+        $data['e2'] = new class {
             public $map = ['k' => 'v'];
         };
         $data['f1'] = new class(new \ArrayObject()) {
@@ -951,7 +953,7 @@
 
         $this->assertInstanceOf(Php74Full::class, $th->getData());
 
-        $exceptionsAsArray = array_map(fn (NotNormalizableValueException $e): array => [
+        $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $e): array => [
             'currentType' => $e->getCurrentType(),
             'expectedTypes' => $e->getExpectedTypes(),
             'path' => $e->getPath(),
@@ -1165,7 +1167,7 @@
         $this->assertInstanceOf(Php74Full::class, $th->getData()[0]);
         $this->assertInstanceOf(Php74Full::class, $th->getData()[1]);
 
-        $exceptionsAsArray = array_map(fn (NotNormalizableValueException $e): array => [
+        $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $e): array => [
             'currentType' => $e->getCurrentType(),
             'expectedTypes' => $e->getExpectedTypes(),
             'path' => $e->getPath(),
@@ -1192,7 +1194,7 @@
                 'useMessageForUser' => false,
                 'message' => 'The type of the "string" attribute for class "Symfony\\Component\\Serializer\\Tests\\Fixtures\\Php74Full" must be one of "string" ("null" given).',
             ],
-            ];
+        ];
 
         $this->assertSame($expected, $exceptionsAsArray);
     }
@@ -1220,7 +1222,7 @@
 
         $this->assertInstanceOf(Php74Full::class, $th->getData());
 
-        $exceptionsAsArray = array_map(fn (NotNormalizableValueException $e): array => [
+        $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $e): array => [
             'currentType' => $e->getCurrentType(),
             'expectedTypes' => $e->getExpectedTypes(),
             'path' => $e->getPath(),
@@ -1289,7 +1291,7 @@
 
         $this->assertInstanceOf(Php80WithPromotedTypedConstructor::class, $th->getData());
 
-        $exceptionsAsArray = array_map(fn (NotNormalizableValueException $e): array => [
+        $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $e): array => [
             'currentType' => $e->getCurrentType(),
             'expectedTypes' => $e->getExpectedTypes(),
             'path' => $e->getPath(),
@@ -1357,15 +1359,13 @@
         $this->assertTrue($object->bool);
         $this->assertSame(1, $object->int);
 
-        $exceptionsAsArray = array_map(function (NotNormalizableValueException $e): array {
-            return [
-                'currentType' => $e->getCurrentType(),
-                'expectedTypes' => $e->getExpectedTypes(),
-                'path' => $e->getPath(),
-                'useMessageForUser' => $e->canUseMessageForUser(),
-                'message' => $e->getMessage(),
-            ];
-        }, $th->getErrors());
+        $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $e): array => [
+            'currentType' => $e->getCurrentType(),
+            'expectedTypes' => $e->getExpectedTypes(),
+            'path' => $e->getPath(),
+            'useMessageForUser' => $e->canUseMessageForUser(),
+            'message' => $e->getMessage(),
+        ], $th->getErrors());
 
         $expected = [
             [
@@ -1391,6 +1391,60 @@
         $this->assertSame($expected, $exceptionsAsArray);
     }
 
+    public function testCollectDenormalizationErrorsWithUnionConstructorTypes()
+    {
+        $json = '{}';
+
+        $serializer = new Serializer(
+            [new ObjectNormalizer()],
+            ['json' => new JsonEncoder()]
+        );
+
+        try {
+            $serializer->deserialize(
+                $json,
+                DummyWithUnion::class,
+                'json',
+                [DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS => true]
+            );
+
+            $this->fail();
+        } catch (\Throwable $th) {
+            $this->assertInstanceOf(PartialDenormalizationException::class, $th);
+        }
+
+        $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $e): array => [
+            'currentType' => $e->getCurrentType(),
+            'expectedTypes' => $e->getExpectedTypes(),
+            'path' => $e->getPath(),
+            'useMessageForUser' => $e->canUseMessageForUser(),
+            'message' => $e->getMessage(),
+        ], $th->getErrors());
+
+        $expected = [
+            [
+                'currentType' => 'null',
+                'expectedTypes' => [
+                    'int', 'float',
+                ],
+                'path' => 'value',
+                'useMessageForUser' => true,
+                'message' => 'Failed to create object because the class misses the "value" property.',
+            ],
+            [
+                'currentType' => 'null',
+                'expectedTypes' => [
+                    'string', 'int',
+                ],
+                'path' => 'value2',
+                'useMessageForUser' => true,
+                'message' => 'Failed to create object because the class misses the "value2" property.',
+            ],
+        ];
+
+        $this->assertSame($expected, $exceptionsAsArray);
+    }
+
     public function testCollectDenormalizationErrorsWithEnumConstructor()
     {
         $serializer = new Serializer(
@@ -1409,7 +1463,7 @@
             $this->assertInstanceOf(PartialDenormalizationException::class, $th);
         }
 
-        $exceptionsAsArray = array_map(fn (NotNormalizableValueException $e): array => [
+        $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $e): array => [
             'currentType' => $e->getCurrentType(),
             'useMessageForUser' => $e->canUseMessageForUser(),
             'message' => $e->getMessage(),
@@ -1442,19 +1496,17 @@
 
         try {
             $serializer->deserialize('{"get": "POST"}', DummyObjectWithEnumProperty::class, 'json', [
-                 DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS => true,
-             ]);
+                DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS => true,
+            ]);
         } catch (\Throwable $e) {
             $this->assertInstanceOf(PartialDenormalizationException::class, $e);
         }
 
-        $exceptionsAsArray = array_map(function (NotNormalizableValueException $e): array {
-            return [
-                'currentType' => $e->getCurrentType(),
-                'useMessageForUser' => $e->canUseMessageForUser(),
-                'message' => $e->getMessage(),
-            ];
-        }, $e->getErrors());
+        $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $e): array => [
+            'currentType' => $e->getCurrentType(),
+            'useMessageForUser' => $e->canUseMessageForUser(),
+            'message' => $e->getMessage(),
+        ], $e->getErrors());
 
         $expected = [
             [
@@ -1467,7 +1519,7 @@
         $this->assertSame($expected, $exceptionsAsArray);
     }
 
-    public function testNoCollectDenormalizationErrorsWithWrongEnumOnConstructor()
+    public function testCollectDenormalizationErrorsWithWrongEnumOnConstructor()
     {
         $serializer = new Serializer(
             [
@@ -1481,9 +1533,65 @@
             $serializer->deserialize('{"get": "POST"}', DummyObjectWithEnumConstructor::class, 'json', [
                 DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS => true,
             ]);
-        } catch (\Throwable $th) {
-            $this->assertNotInstanceOf(PartialDenormalizationException::class, $th);
-            $this->assertInstanceOf(InvalidArgumentException::class, $th);
+            self::fail(\sprintf('Failed asserting that exception of type "%s" is thrown.', PartialDenormalizationException::class));
+        } catch (PartialDenormalizationException $e) {
+            $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $error): array => [
+                'currentType' => $error->getCurrentType(),
+                'path' => $error->getPath(),
+                'useMessageForUser' => $error->canUseMessageForUser(),
+                'message' => $error->getMessage(),
+            ], $e->getErrors());
+
+            $this->assertSame([
+                [
+                    'currentType' => 'string',
+                    'path' => 'get',
+                    'useMessageForUser' => true,
+                    'message' => 'The data must belong to a backed enumeration of type Symfony\Component\Serializer\Tests\Fixtures\StringBackedEnumDummy',
+                ],
+            ], $exceptionsAsArray);
+        }
+    }
+
+    public function testCollectDenormalizationErrorsCapturesConstructorTypeError()
+    {
+        $classStringDenormalizer = new class implements DenormalizerInterface {
+            public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): object
+            {
+                return new $data();
+            }
+
+            public function supportsDenormalization(mixed $data, string $type, ?string $format = null, array $context = []): bool
+            {
+                return \is_string($data) && class_exists($data);
+            }
+
+            public function getSupportedTypes(?string $format): array
+            {
+                return ['*' => false];
+            }
+        };
+
+        $serializer = new Serializer([$classStringDenormalizer, new ObjectNormalizer()]);
+
+        $target = Fixtures\DummyWithObjectConstructor::class;
+        $otherClass = Php74Full::class;
+
+        try {
+            $serializer->denormalize(
+                ['nested' => $otherClass],
+                $target,
+                context: [DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS => true],
+            );
+            self::fail(\sprintf('Failed asserting that exception of type "%s" is thrown.', PartialDenormalizationException::class));
+        } catch (PartialDenormalizationException $e) {
+            $capturedFromTypeError = array_values(array_filter(
+                $e->getErrors(),
+                static fn (NotNormalizableValueException $error): bool => $error->getPrevious() instanceof \TypeError,
+            ));
+            self::assertCount(1, $capturedFromTypeError, 'Constructor TypeError must be captured exactly once as a NotNormalizableValueException.');
+            self::assertFalse($capturedFromTypeError[0]->canUseMessageForUser());
+            self::assertSame(['unknown'], $capturedFromTypeError[0]->getExpectedTypes());
         }
     }
 
@@ -1614,15 +1722,13 @@
         $this->assertFalse(isset($object->two));
         $this->assertSame('three string', $object->three);
 
-        $exceptionsAsArray = array_map(function (NotNormalizableValueException $e): array {
-            return [
-                'currentType' => $e->getCurrentType(),
-                'expectedTypes' => $e->getExpectedTypes(),
-                'path' => $e->getPath(),
-                'useMessageForUser' => $e->canUseMessageForUser(),
-                'message' => $e->getMessage(),
-            ];
-        }, $th->getErrors());
+        $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $e): array => [
+            'currentType' => $e->getCurrentType(),
+            'expectedTypes' => $e->getExpectedTypes(),
+            'path' => $e->getPath(),
+            'useMessageForUser' => $e->canUseMessageForUser(),
+            'message' => $e->getMessage(),
+        ], $th->getErrors());
 
         $expected = [
             [
@@ -1677,6 +1783,65 @@
 
         $serializer->denormalize($data, DummyWithVariadicParameter::class);
     }
+
+    public function testDenormalizationFailsWithMultipleErrorsInDefaultContext()
+    {
+        $serializer = new Serializer(
+            [new DateTimeNormalizer(), new ObjectNormalizer()],
+            [],
+            [DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS => true]
+        );
+
+        $data = ['date' => '', 'unknown' => null];
+
+        try {
+            $serializer->denormalize($data, DummyEntityWithStringAndDateTime::class);
+            $this->fail('Expected PartialDenormalizationException was not thrown');
+        } catch (PartialDenormalizationException $e) {
+            $this->assertIsArray($e->getErrors());
+            $this->assertCount(2, $e->getErrors(), 'Expected two denormalization errors');
+
+            $exceptionsAsArray = array_map(static fn (NotNormalizableValueException $ex): array => [
+                'currentType' => $ex->getCurrentType(),
+                'expectedTypes' => $ex->getExpectedTypes(),
+                'path' => $ex->getPath(),
+                'useMessageForUser' => $ex->canUseMessageForUser(),
+                'message' => $ex->getMessage(),
+            ], $e->getErrors());
+
+            $expected = [
+                [
+                    'currentType' => 'null',
+                    'expectedTypes' => ['string'],
+                    'path' => 'bar',
+                    'useMessageForUser' => true,
+                    'message' => 'Failed to create object because the class misses the "bar" property.',
+                ],
+                [
+                    'currentType' => 'string',
+                    'expectedTypes' => ['string'],
+                    'path' => 'date',
+                    'useMessageForUser' => true,
+                    'message' => 'The data is either not an string, an empty string, or null; you should pass a string that can be parsed with the passed format or a valid DateTime string.',
+                ],
+            ];
+
+            $this->assertSame($expected, $exceptionsAsArray);
+        }
+    }
+
+    /**
+     * @requires PHP 8.4
+     */
+    public function testDeserializeObjectWithAsymmetricPropertyVisibility()
+    {
+        $serializer = new Serializer([new ObjectNormalizer()], ['json' => new JsonEncoder()]);
+        /** @var AsymmetricVisibilityDummy $object */
+        $object = $serializer->deserialize(json_encode(['type' => 'This value must not be changed because the property has a private setter', 'item' => 'one']), AsymmetricVisibilityDummy::class, 'json');
+
+        $this->assertSame('one', $object->item);
+        $this->assertSame('final', $object->type); // Value set in the constructor; must not be changed during deserialization
+    }
 }
 
 class Model
@@ -1743,6 +1908,15 @@
     }
 }
 
+class DummyEntityWithStringAndDateTime
+{
+    public function __construct(
+        public string $bar,
+        public \DateTimeInterface $date,
+    ) {
+    }
+}
+
 class DummyUnionType
 {
     /**
@@ -1843,3 +2017,18 @@
 interface DenormalizerAwareDenormalizer extends DenormalizerInterface, DenormalizerAwareInterface
 {
 }
+
+enum SerializerTestBackedEnum: string
+{
+    case PENDING = 'pending';
+    case ACTIVE = 'active';
+}
+
+class SerializerTestRequestDto
+{
+    public function __construct(
+        public int $id,
+        public SerializerTestBackedEnum $status,
+    ) {
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Stopwatch/Section.php symfony-6.4.40+dfsg/src/Symfony/Component/Stopwatch/Section.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Stopwatch/Section.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Stopwatch/Section.php	2026-05-20 10:56:49.000000000 +0200
@@ -115,7 +115,7 @@
     public function stopEvent(string $name): StopwatchEvent
     {
         if (!isset($this->events[$name])) {
-            throw new \LogicException(sprintf('Event "%s" is not started.', $name));
+            throw new \LogicException(\sprintf('Event "%s" is not started.', $name));
         }
 
         return $this->events[$name]->stop();
@@ -139,7 +139,7 @@
     public function getEvent(string $name): StopwatchEvent
     {
         if (!isset($this->events[$name])) {
-            throw new \LogicException(sprintf('Event "%s" is not known.', $name));
+            throw new \LogicException(\sprintf('Event "%s" is not known.', $name));
         }
 
         return $this->events[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Stopwatch/StopwatchEvent.php symfony-6.4.40+dfsg/src/Symfony/Component/Stopwatch/StopwatchEvent.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Stopwatch/StopwatchEvent.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Stopwatch/StopwatchEvent.php	2026-05-20 10:56:49.000000000 +0200
@@ -221,6 +221,6 @@
 
     public function __toString(): string
     {
-        return sprintf('%s/%s: %.2F MiB - %d ms', $this->getCategory(), $this->getName(), $this->getMemory() / 1024 / 1024, $this->getDuration());
+        return \sprintf('%s/%s: %.2F MiB - %d ms', $this->getCategory(), $this->getName(), $this->getMemory() / 1024 / 1024, $this->getDuration());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Stopwatch/StopwatchPeriod.php symfony-6.4.40+dfsg/src/Symfony/Component/Stopwatch/StopwatchPeriod.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Stopwatch/StopwatchPeriod.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Stopwatch/StopwatchPeriod.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,6 +68,6 @@
 
     public function __toString(): string
     {
-        return sprintf('%.2F MiB - %d ms', $this->getMemory() / 1024 / 1024, $this->getDuration());
+        return \sprintf('%.2F MiB - %d ms', $this->getMemory() / 1024 / 1024, $this->getDuration());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Stopwatch/Stopwatch.php symfony-6.4.40+dfsg/src/Symfony/Component/Stopwatch/Stopwatch.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Stopwatch/Stopwatch.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Stopwatch/Stopwatch.php	2026-05-20 10:56:49.000000000 +0200
@@ -66,7 +66,7 @@
         $current = end($this->activeSections);
 
         if (null !== $id && null === $current->get($id)) {
-            throw new \LogicException(sprintf('The section "%s" has been started at an other level and cannot be opened.', $id));
+            throw new \LogicException(\sprintf('The section "%s" has been started at an other level and cannot be opened.', $id));
         }
 
         $this->start('__section__.child', 'section');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/AbstractString.php symfony-6.4.40+dfsg/src/Symfony/Component/String/AbstractString.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/AbstractString.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/AbstractString.php	2026-05-20 10:56:49.000000000 +0200
@@ -263,7 +263,7 @@
     public function endsWith(string|iterable $suffix): bool
     {
         if (\is_string($suffix)) {
-            throw new \TypeError(sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
+            throw new \TypeError(\sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
         }
 
         foreach ($suffix as $s) {
@@ -312,7 +312,7 @@
     public function equalsTo(string|iterable $string): bool
     {
         if (\is_string($string)) {
-            throw new \TypeError(sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
+            throw new \TypeError(\sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
         }
 
         foreach ($string as $s) {
@@ -340,7 +340,7 @@
     public function indexOf(string|iterable $needle, int $offset = 0): ?int
     {
         if (\is_string($needle)) {
-            throw new \TypeError(sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
+            throw new \TypeError(\sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
         }
 
         $i = \PHP_INT_MAX;
@@ -362,7 +362,7 @@
     public function indexOfLast(string|iterable $needle, int $offset = 0): ?int
     {
         if (\is_string($needle)) {
-            throw new \TypeError(sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
+            throw new \TypeError(\sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
         }
 
         $i = null;
@@ -414,7 +414,7 @@
     public function repeat(int $multiplier): static
     {
         if (0 > $multiplier) {
-            throw new InvalidArgumentException(sprintf('Multiplier must be positive, %d given.', $multiplier));
+            throw new InvalidArgumentException(\sprintf('Multiplier must be positive, %d given.', $multiplier));
         }
 
         $str = clone $this;
@@ -481,7 +481,7 @@
     public function startsWith(string|iterable $prefix): bool
     {
         if (\is_string($prefix)) {
-            throw new \TypeError(sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
+            throw new \TypeError(\sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
         }
 
         foreach ($prefix as $prefix) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/AbstractUnicodeString.php symfony-6.4.40+dfsg/src/Symfony/Component/String/AbstractUnicodeString.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/AbstractUnicodeString.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/AbstractUnicodeString.php	2026-05-20 10:56:49.000000000 +0200
@@ -124,7 +124,7 @@
                         }
 
                         if (null === $transliterator) {
-                            throw new InvalidArgumentException(sprintf('Unknown transliteration rule "%s".', $rule));
+                            throw new InvalidArgumentException(\sprintf('Unknown transliteration rule "%s".', $rule));
                         }
 
                         self::$transliterators['any-latin/bgn'] = $transliterator;
@@ -142,7 +142,7 @@
                         $c = (string) iconv('UTF-8', 'ASCII//TRANSLIT', $c[0]);
 
                         if ('' === $c && '' === iconv('UTF-8', 'ASCII//TRANSLIT', '²')) {
-                            throw new \LogicException(sprintf('"%s" requires a translit-able iconv implementation, try installing "gnu-libiconv" if you\'re using Alpine Linux.', static::class));
+                            throw new \LogicException(\sprintf('"%s" requires a translit-able iconv implementation, try installing "gnu-libiconv" if you\'re using Alpine Linux.', static::class));
                         }
 
                         return 1 < \strlen($c) ? ltrim($c, '\'`"^~') : ('' !== $c ? $c : '?');
@@ -530,6 +530,8 @@
     private function wcswidth(string $string): int
     {
         $width = 0;
+        $lastChar = null;
+        $lastWidth = null;
 
         foreach (preg_split('//u', $string, -1, \PREG_SPLIT_NO_EMPTY) as $c) {
             $codePoint = mb_ord($c, 'UTF-8');
@@ -552,6 +554,20 @@
                 return -1;
             }
 
+            if (0xFE0F === $codePoint) {
+                if (\PCRE_VERSION_MAJOR < 10 || \PCRE_VERSION_MAJOR === 10 && \PCRE_VERSION_MINOR < 40) {
+                    $regex = '/\p{So}/u';
+                } else {
+                    $regex = '/\p{Emoji}/u';
+                }
+                if (null !== $lastChar && 1 === $lastWidth && preg_match($regex, $lastChar)) {
+                    ++$width;
+                    $lastWidth = 2;
+                }
+
+                continue;
+            }
+
             self::$tableZero ??= require __DIR__.'/Resources/data/wcswidth_table_zero.php';
 
             if ($codePoint >= self::$tableZero[0][0] && $codePoint <= self::$tableZero[$ubound = \count(self::$tableZero) - 1][1]) {
@@ -582,6 +598,8 @@
                         $ubound = $mid - 1;
                     } else {
                         $width += 2;
+                        $lastChar = $c;
+                        $lastWidth = 2;
 
                         continue 2;
                     }
@@ -589,6 +607,8 @@
             }
 
             ++$width;
+            $lastChar = $c;
+            $lastWidth = 1;
         }
 
         return $width;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/ByteString.php symfony-6.4.40+dfsg/src/Symfony/Component/String/ByteString.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/ByteString.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/ByteString.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
     public static function fromRandom(int $length = 16, ?string $alphabet = null): self
     {
         if ($length <= 0) {
-            throw new InvalidArgumentException(sprintf('A strictly positive length is expected, "%d" given.', $length));
+            throw new InvalidArgumentException(\sprintf('A strictly positive length is expected, "%d" given.', $length));
         }
 
         $alphabet ??= self::ALPHABET_ALPHANUMERIC;
@@ -436,7 +436,7 @@
         }
 
         if (!$validEncoding) {
-            throw new InvalidArgumentException(sprintf('Invalid "%s" string.', $fromEncoding ?? 'Windows-1252'));
+            throw new InvalidArgumentException(\sprintf('Invalid "%s" string.', $fromEncoding ?? 'Windows-1252'));
         }
 
         $u->string = mb_convert_encoding($this->string, 'UTF-8', $fromEncoding ?? 'Windows-1252');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/String/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -23,9 +23,8 @@
         "symfony/polyfill-mbstring": "~1.0"
     },
     "require-dev": {
-        "symfony/error-handler": "^5.4|^6.0|^7.0",
-        "symfony/intl": "^6.2|^7.0",
         "symfony/http-client": "^5.4|^6.0|^7.0",
+        "symfony/intl": "^6.2|^7.0",
         "symfony/translation-contracts": "^2.5|^3.0",
         "symfony/var-exporter": "^5.4|^6.0|^7.0"
     },
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/Inflector/EnglishInflector.php symfony-6.4.40+dfsg/src/Symfony/Component/String/Inflector/EnglishInflector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/Inflector/EnglishInflector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/Inflector/EnglishInflector.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,9 +25,22 @@
         // Fourth entry: Whether the suffix may succeed a consonant
         // Fifth entry: singular suffix, normal
 
+        // insignias (insigne), insignia (insigne)
+        ['saingisni', 9, true, true, 'insigne'],
+        ['aingisni', 8, true, true, 'insigne'],
+
+        // passersby (passerby)
+        ['ybsressap', 9, true, true, 'passerby'],
+
+        // nodes (node)
+        ['sedon', 5, true, true, 'node'],
+
         // bacteria (bacterium)
         ['airetcab', 8, true, true, 'bacterium'],
 
+        // issues (issue)
+        ['seussi', 6, true, true, 'issue'],
+
         // corpora (corpus)
         ['aroproc', 7, true, true, 'corpus'],
 
@@ -166,6 +179,12 @@
         // edges (edge)
         ['segd', 4, true, true, 'dge'],
 
+        // outages (outage) - specific fix to avoid 'outag'
+        ['segatuo', 7, true, true, 'outage'],
+
+        // traces (trace), faces (face), places (place), pieces (piece)
+        ['sec', 3, true, true, 'ce'],
+
         // roses (rose), garages (garage), cassettes (cassette),
         // waltzes (waltz), heroes (hero), bushes (bush), arches (arch),
         // shoes (shoe)
@@ -196,6 +215,15 @@
         // Fourth entry: Whether the suffix may succeed a consonant
         // Fifth entry: plural suffix, normal
 
+        // passerby (passersby)
+        ['ybressap', 8, true, true, 'passersby'],
+
+        // insigne (insignia, insignias)
+        ['engisni', 7, true, true, ['insignia', 'insignias']],
+
+        // nodes (node)
+        ['edon', 4, true, true, 'nodes'],
+
         // axes (axis)
         ['sixa', 4, false, false, 'axes'],
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/LazyString.php symfony-6.4.40+dfsg/src/Symfony/Component/String/LazyString.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/LazyString.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/LazyString.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public static function fromCallable(callable|array $callback, mixed ...$arguments): static
     {
         if (\is_array($callback) && !\is_callable($callback) && !(($callback[0] ?? null) instanceof \Closure || 2 < \count($callback))) {
-            throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be a callable or a [Closure, method] lazy-callable, "%s" given.', __METHOD__, '['.implode(', ', array_map('get_debug_type', $callback)).']'));
+            throw new \TypeError(\sprintf('Argument 1 passed to "%s()" must be a callable or a [Closure, method] lazy-callable, "%s" given.', __METHOD__, '['.implode(', ', array_map('get_debug_type', $callback)).']'));
         }
 
         $lazyString = new static();
@@ -94,7 +94,7 @@
                 $r = new \ReflectionFunction($this->value);
                 $callback = $r->getStaticVariables()['callback'];
 
-                $e = new \TypeError(sprintf('Return value of %s() passed to %s::fromCallable() must be of the type string, %s returned.', $callback, static::class, $type));
+                $e = new \TypeError(\sprintf('Return value of %s() passed to %s::fromCallable() must be of the type string, %s returned.', $callback, static::class, $type));
             }
 
             throw $e;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/Resources/bin/update-data.php symfony-6.4.40+dfsg/src/Symfony/Component/String/Resources/bin/update-data.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/Resources/bin/update-data.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/Resources/bin/update-data.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
 error_reporting(\E_ALL);
 
 set_error_handler(static function (int $type, string $msg, string $file, int $line): void {
-    throw new \ErrorException($msg, 0, $type, $file, $line);
+    throw new ErrorException($msg, 0, $type, $file, $line);
 });
 
 set_exception_handler(static function (Throwable $exception): void {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/Resources/WcswidthDataGenerator.php symfony-6.4.40+dfsg/src/Symfony/Component/String/Resources/WcswidthDataGenerator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/Resources/WcswidthDataGenerator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/Resources/WcswidthDataGenerator.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
         $content = $this->getHeader($version).'return '.VarExporter::export($this->format($rawData)).";\n";
 
         if (!file_put_contents($this->outDir.'/'.$fileName, $content)) {
-            throw new RuntimeException(sprintf('The "%s" file could not be written.', $fileName));
+            throw new RuntimeException(\sprintf('The "%s" file could not be written.', $fileName));
         }
     }
 
@@ -82,17 +82,17 @@
         $date = (new \DateTimeImmutable())->format('c');
 
         return <<<EOT
-<?php
+            <?php
 
-/*
- * This file has been auto-generated by the Symfony String Component for internal use.
- *
- * Unicode version: $version
- * Date: $date
- */
+            /*
+             * This file has been auto-generated by the Symfony String Component for internal use.
+             *
+             * Unicode version: $version
+             * Date: $date
+             */
 
 
-EOT;
+            EOT;
     }
 
     private function format(array $rawData): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/Slugger/AsciiSlugger.php symfony-6.4.40+dfsg/src/Symfony/Component/String/Slugger/AsciiSlugger.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/Slugger/AsciiSlugger.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/Slugger/AsciiSlugger.php	2026-05-20 10:56:49.000000000 +0200
@@ -95,7 +95,7 @@
     public function withEmoji(bool|string $emoji = true): static
     {
         if (false !== $emoji && !class_exists(EmojiTransliterator::class)) {
-            throw new \LogicException(sprintf('You cannot use the "%s()" method as the "symfony/intl" package is not installed. Try running "composer require symfony/intl".', __METHOD__));
+            throw new \LogicException(\sprintf('You cannot use the "%s()" method as the "symfony/intl" package is not installed. Try running "composer require symfony/intl".', __METHOD__));
         }
 
         $new = clone $this;
@@ -131,8 +131,8 @@
 
         if (\is_array($this->symbolsMap)) {
             $map = null;
-            if (isset($this->symbolsMap[$locale])) {
-                $map = $this->symbolsMap[$locale];
+            if (isset($this->symbolsMap[$locale ?? ''])) {
+                $map = $this->symbolsMap[$locale ?? ''];
             } else {
                 $parent = self::getParentLocale($locale);
                 if ($parent && isset($this->symbolsMap[$parent])) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -993,8 +993,8 @@
             ['April,15,2003', 'April 15, 2003', '/(\w+) (\d+), (\d+)/i', '${1},$2,$3'],
             ['5/27/1999', '1999-5-27', '/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/', '\3/\4/\1\2'],
             ['Copyright 2000', 'Copyright 1999', '([0-9]+)', '2000'],
-            ['hello world! this is a test', 'HELLO WORLD! THIS is a test', '/\b([A-Z]+)\b/', fn ($word) => strtolower($word[1])],
-            ['COPYRIGHT 1999', 'Copyright 1999', '/[a-z]/', function ($matches) {
+            ['hello world! this is a test', 'HELLO WORLD! THIS is a test', '/\b([A-Z]+)\b/', static fn ($word) => strtolower($word[1])],
+            ['COPYRIGHT 1999', 'Copyright 1999', '/[a-z]/', static function ($matches) {
                 foreach ($matches as $match) {
                     return strtoupper($match);
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/AbstractUnicodeTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/AbstractUnicodeTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/AbstractUnicodeTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/AbstractUnicodeTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -17,14 +17,22 @@
 {
     public static function provideWidth(): array
     {
-        return array_merge(
-            parent::provideWidth(),
-            [
-                [14, '<<<END
+        $unicodeWidthTests = [
+            [1, '⚠'],
+            [2, '⚠️'],
+            [14, '<<<END
 This is a
 multiline text
 END'],
-            ]
+        ];
+
+        if (\PCRE_VERSION_MAJOR > 10 || \PCRE_VERSION_MAJOR === 10 && \PCRE_VERSION_MINOR >= 40) {
+            $unicodeWidthTests[] = [2, '1️⃣'];
+        }
+
+        return array_merge(
+            parent::provideWidth(),
+            $unicodeWidthTests
         );
     }
 
@@ -44,7 +52,7 @@
 
     public function testAsciiClosureRule()
     {
-        $rule = fn ($c) => str_replace('ö', 'OE', $c);
+        $rule = static fn ($c) => str_replace('ö', 'OE', $c);
 
         $s = static::createFromString('Dieser Wert sollte größer oder gleich');
         $this->assertSame('Dieser Wert sollte grOEsser oder gleich', (string) $s->ascii([$rule]));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/Inflector/EnglishInflectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/Inflector/EnglishInflectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/Inflector/EnglishInflectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/Inflector/EnglishInflectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -103,6 +103,7 @@
             ['indices', ['index', 'indix', 'indice']],
             ['ions', 'ion'],
             ['irises', ['iris', 'irise', 'irisis']],
+            ['issues', 'issue'],
             ['kisses', 'kiss'],
             ['knives', 'knife'],
             ['lamps', 'lamp'],
@@ -122,8 +123,10 @@
             ['nebulae', 'nebula'],
             ['neuroses', ['neuros', 'neurose', 'neurosis']],
             ['news', 'news'],
+            ['nodes', 'node'],
             ['oases', ['oas', 'oase', 'oasis']],
             ['objectives', 'objective'],
+            ['outages', 'outage'],
             ['oxen', 'ox'],
             ['parties', 'party'],
             ['people', 'person'],
@@ -163,21 +166,21 @@
             ['teeth', 'tooth'],
             ['theses', ['thes', 'these', 'thesis']],
             ['thieves', ['thief', 'thieve', 'thieff']],
+            ['traces', 'trace'],
             ['treasons', 'treason'],
             ['trees', 'tree'],
             ['waltzes', ['waltz', 'waltze']],
             ['wives', 'wife'],
             ['zombies', 'zombie'],
+            ['passersby', 'passerby'],
+            ['rattles', 'rattle'],
+            ['insignia', 'insigne'],
+            ['insignias', 'insigne'],
 
             // test casing: if the first letter was uppercase, it should remain so
             ['Men', 'Man'],
             ['GrandChildren', 'GrandChild'],
             ['SubTrees', 'SubTree'],
-
-            // Known issues
-            // ['insignia', 'insigne'],
-            // ['insignias', 'insigne'],
-            // ['rattles', 'rattle'],
         ];
     }
 
@@ -259,8 +262,10 @@
             ['house', 'houses'],
             ['icon', 'icons'],
             ['index', ['indicies', 'indexes']],
+            ['insigne', ['insignia', 'insignias']],
             ['ion', 'ions'],
             ['iris', 'irises'],
+            ['issue', 'issues'],
             ['kiss', 'kisses'],
             ['knife', 'knives'],
             ['lamp', 'lamps'],
@@ -278,10 +283,12 @@
             ['nebula', 'nebulae'],
             ['neurosis', 'neuroses'],
             ['news', 'news'],
+            ['node', 'nodes'],
             ['oasis', 'oases'],
             ['objective', 'objectives'],
             ['ox', 'oxen'],
             ['party', 'parties'],
+            ['passerby', 'passersby'],
             ['person', ['persons', 'people']],
             ['phenomenon', 'phenomena'],
             ['photo', 'photos'],
@@ -293,6 +300,7 @@
             ['quiz', 'quizzes'],
             ['quorum', ['quora', 'quorums']],
             ['radius', 'radii'],
+            ['rattle', 'rattles'],
             ['roof', ['roofs', 'rooves']],
             ['rose', 'roses'],
             ['sandwich', 'sandwiches'],
@@ -316,6 +324,7 @@
             ['tag', 'tags'],
             ['thief', ['thiefs', 'thieves']],
             ['tooth', 'teeth'],
+            ['trace', 'traces'],
             ['treason', 'treasons'],
             ['tree', 'trees'],
             ['waltz', 'waltzes'],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/LazyStringTest.php symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/LazyStringTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/LazyStringTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/LazyStringTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,6 @@
 namespace Symfony\Component\String\Tests;
 
 use PHPUnit\Framework\TestCase;
-use Symfony\Component\ErrorHandler\ErrorHandler;
 use Symfony\Component\String\LazyString;
 
 class LazyStringTest extends TestCase
@@ -20,7 +19,7 @@
     public function testLazyString()
     {
         $count = 0;
-        $s = LazyString::fromCallable(function () use (&$count) {
+        $s = LazyString::fromCallable(static function () use (&$count) {
             return ++$count;
         });
 
@@ -34,9 +33,7 @@
      */
     public function testReturnTypeError()
     {
-        ErrorHandler::register();
-
-        $s = LazyString::fromCallable(fn () => []);
+        $s = LazyString::fromCallable(static fn () => []);
 
         $this->expectException(\TypeError::class);
         $this->expectExceptionMessageMatches('{^Return value of .*\{closure.*\}\(\) passed to '.preg_quote(LazyString::class).'::fromCallable\(\) must be of the type string, array returned\.$}');
@@ -47,7 +44,7 @@
     public function testLazyCallable()
     {
         $count = 0;
-        $s = LazyString::fromCallable([function () use (&$count) {
+        $s = LazyString::fromCallable([static function () use (&$count) {
             return new class($count) {
                 private int $count;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/Slugger/AsciiSluggerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/Slugger/AsciiSluggerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/Slugger/AsciiSluggerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/Slugger/AsciiSluggerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -112,7 +112,7 @@
      */
     public function testSlugEmojiWithSetLocale()
     {
-        if (!setlocale(LC_ALL, 'C.UTF-8')) {
+        if (!setlocale(\LC_ALL, 'C.UTF-8')) {
             $this->markTestSkipped('Unable to switch to the "C.UTF-8" locale.');
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/UnicodeStringTest.php symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/UnicodeStringTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/Tests/UnicodeStringTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/Tests/UnicodeStringTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,56 @@
 
 class UnicodeStringTest extends AbstractUnicodeTestCase
 {
+    /**
+     * @dataProvider provideTrimNormalization
+     */
+    public function testTrimPrefixNormalization(string $expected, string $string, $prefix)
+    {
+        $str = new UnicodeString($string);
+        $this->assertSame($expected, $str->trimPrefix($prefix)->toString());
+    }
+
+    /**
+     * @dataProvider provideTrimNormalization
+     */
+    public function testTrimSuffixNormalization(string $expected, string $string, $suffix)
+    {
+        $suffixStr = match (true) {
+            $suffix instanceof AbstractString => $suffix->toString(),
+            \is_array($suffix) => implode('', $suffix),
+            $suffix instanceof \Traversable => implode('', iterator_to_array($suffix)),
+            default => (string) $suffix,
+        };
+
+        $str = new UnicodeString($expected.$suffixStr);
+        $this->assertSame($expected, $str->trimSuffix($suffix)->toString());
+    }
+
+    public static function provideTrimNormalization(): iterable
+    {
+        // "é" in NFC (\xC3\xA9) vs NFD (\x65\xCC\x81)
+        $nfc = "\xC3\xA9";
+        $nfd = "\x65\xCC\x81";
+
+        yield 'nfc_string_nfd_prefix' => ['abc', $nfc.'abc', $nfd];
+        yield 'nfd_string_nfc_prefix' => ['abc', $nfd.'abc', $nfc];
+
+        yield 'abstract_string' => ['abc', $nfc.'abc', new UnicodeString($nfd)];
+
+        yield 'array' => ['abc', $nfc.'abc', [$nfd]];
+
+        yield 'stringable' => ['abc', $nfc.'abc', new class($nfd) implements \Stringable {
+            public function __construct(private string $s)
+            {
+            }
+
+            public function __toString(): string
+            {
+                return $this->s;
+            }
+        }];
+    }
+
     protected static function createFromString(string $string): AbstractString
     {
         return new UnicodeString($string);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/String/UnicodeString.php symfony-6.4.40+dfsg/src/Symfony/Component/String/UnicodeString.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/String/UnicodeString.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/String/UnicodeString.php	2026-05-20 10:56:49.000000000 +0200
@@ -362,6 +362,44 @@
         return $prefix === grapheme_extract($this->string, \strlen($prefix), \GRAPHEME_EXTR_MAXBYTES);
     }
 
+    public function trimPrefix($prefix): static
+    {
+        if (\is_array($prefix) || $prefix instanceof \Traversable) {
+            return parent::trimPrefix($prefix);
+        }
+
+        if ($prefix instanceof AbstractString) {
+            $prefix = $prefix->string;
+        } else {
+            $prefix = (string) $prefix;
+        }
+
+        if (!normalizer_is_normalized($prefix, \Normalizer::NFC)) {
+            $prefix = normalizer_normalize($prefix, \Normalizer::NFC);
+        }
+
+        return parent::trimPrefix($prefix);
+    }
+
+    public function trimSuffix($suffix): static
+    {
+        if (\is_array($suffix) || $suffix instanceof \Traversable) {
+            return parent::trimSuffix($suffix);
+        }
+
+        if ($suffix instanceof AbstractString) {
+            $suffix = $suffix->string;
+        } else {
+            $suffix = (string) $suffix;
+        }
+
+        if (!normalizer_is_normalized($suffix, \Normalizer::NFC)) {
+            $suffix = normalizer_normalize($suffix, \Normalizer::NFC);
+        }
+
+        return parent::trimSuffix($suffix);
+    }
+
     /**
      * @return void
      */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Templating/DelegatingEngine.php symfony-6.4.40+dfsg/src/Symfony/Component/Templating/DelegatingEngine.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Templating/DelegatingEngine.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Templating/DelegatingEngine.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
     {
         $engine = $this->getEngine($name);
         if (!$engine instanceof StreamingEngineInterface) {
-            throw new \LogicException(sprintf('Template "%s" cannot be streamed as the engine supporting it does not implement StreamingEngineInterface.', $name));
+            throw new \LogicException(\sprintf('Template "%s" cannot be streamed as the engine supporting it does not implement StreamingEngineInterface.', $name));
         }
 
         $engine->stream($name, $parameters);
@@ -92,6 +92,6 @@
             }
         }
 
-        throw new \RuntimeException(sprintf('No engine is able to work with the template "%s".', $name));
+        throw new \RuntimeException(\sprintf('No engine is able to work with the template "%s".', $name));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Templating/Helper/SlotsHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/Templating/Helper/SlotsHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Templating/Helper/SlotsHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Templating/Helper/SlotsHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
     public function start(string $name)
     {
         if (\in_array($name, $this->openSlots)) {
-            throw new \InvalidArgumentException(sprintf('A slot named "%s" is already started.', $name));
+            throw new \InvalidArgumentException(\sprintf('A slot named "%s" is already started.', $name));
         }
 
         $this->openSlots[] = $name;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Templating/Loader/CacheLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Templating/Loader/CacheLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Templating/Loader/CacheLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Templating/Loader/CacheLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -61,8 +61,8 @@
 
         $content = $storage->getContent();
 
-        if (!is_dir($dir) && !@mkdir($dir, 0777, true) && !is_dir($dir)) {
-            throw new \RuntimeException(sprintf('Cache Loader was not able to create directory "%s".', $dir));
+        if (!is_dir($dir) && !@mkdir($dir, 0o777, true) && !is_dir($dir)) {
+            throw new \RuntimeException(\sprintf('Cache Loader was not able to create directory "%s".', $dir));
         }
 
         file_put_contents($path, $content);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Templating/PhpEngine.php symfony-6.4.40+dfsg/src/Symfony/Component/Templating/PhpEngine.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Templating/PhpEngine.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Templating/PhpEngine.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,7 +78,7 @@
         $parameters = array_replace($this->getGlobals(), $parameters);
         // render
         if (false === $content = $this->evaluate($storage, $parameters)) {
-            throw new \RuntimeException(sprintf('The template "%s" cannot be rendered.', $this->parser->parse($name)));
+            throw new \RuntimeException(\sprintf('The template "%s" cannot be rendered.', $this->parser->parse($name)));
         }
 
         // decorator
@@ -191,7 +191,7 @@
      */
     public function offsetUnset(mixed $name): void
     {
-        throw new \LogicException(sprintf('You can\'t unset a helper (%s).', $name));
+        throw new \LogicException(\sprintf('You can\'t unset a helper (%s).', $name));
     }
 
     /**
@@ -250,7 +250,7 @@
     public function get(string $name): HelperInterface
     {
         if (!isset($this->helpers[$name])) {
-            throw new \InvalidArgumentException(sprintf('The helper "%s" is not defined.', $name));
+            throw new \InvalidArgumentException(\sprintf('The helper "%s" is not defined.', $name));
         }
 
         return $this->helpers[$name];
@@ -332,7 +332,7 @@
     public function getEscaper(string $context): callable
     {
         if (!isset($this->escapers[$context])) {
-            throw new \InvalidArgumentException(sprintf('No registered escaper for context "%s".', $context));
+            throw new \InvalidArgumentException(\sprintf('No registered escaper for context "%s".', $context));
         }
 
         return $this->escapers[$context];
@@ -404,7 +404,7 @@
                         $value = iconv($this->getCharset(), 'UTF-8', $value);
                     }
 
-                    $callback = function ($matches) {
+                    $callback = static function ($matches) {
                         $char = $matches[0];
 
                         // \xHH
@@ -458,7 +458,7 @@
         $storage = $this->loader->load($template);
 
         if (false === $storage) {
-            throw new \InvalidArgumentException(sprintf('The template "%s" does not exist.', $template));
+            throw new \InvalidArgumentException(\sprintf('The template "%s" does not exist.', $template));
         }
 
         return $this->cache[$key] = $storage;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Templating/TemplateReference.php symfony-6.4.40+dfsg/src/Symfony/Component/Templating/TemplateReference.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Templating/TemplateReference.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Templating/TemplateReference.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
         if (\array_key_exists($name, $this->parameters)) {
             $this->parameters[$name] = $value;
         } else {
-            throw new \InvalidArgumentException(sprintf('The template does not support the "%s" parameter.', $name));
+            throw new \InvalidArgumentException(\sprintf('The template does not support the "%s" parameter.', $name));
         }
 
         return $this;
@@ -54,7 +54,7 @@
             return $this->parameters[$name];
         }
 
-        throw new \InvalidArgumentException(sprintf('The template does not support the "%s" parameter.', $name));
+        throw new \InvalidArgumentException(\sprintf('The template does not support the "%s" parameter.', $name));
     }
 
     public function all(): array
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Templating/Tests/Loader/CacheLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Templating/Tests/Loader/CacheLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Templating/Tests/Loader/CacheLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Templating/Tests/Loader/CacheLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,8 +31,8 @@
 
     public function testLoad()
     {
-        $dir = sys_get_temp_dir().\DIRECTORY_SEPARATOR.mt_rand(111111, 999999);
-        mkdir($dir, 0777, true);
+        $dir = sys_get_temp_dir().\DIRECTORY_SEPARATOR.random_int(111111, 999999);
+        mkdir($dir, 0o777, true);
 
         $loader = new ProjectTemplateCacheLoader($varLoader = new ProjectTemplateLoaderVar(), $dir);
         $this->assertFalse($loader->load(new TemplateReference('foo', 'php')), '->load() returns false if the embed loader is not able to load the template');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Templating/Tests/PhpEngineTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Templating/Tests/PhpEngineTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Templating/Tests/PhpEngineTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Templating/Tests/PhpEngineTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
     public function testOffsetGet()
     {
         $engine = new ProjectTemplateEngine(new TemplateNameParser(), $this->loader);
-        $engine->set($helper = new \Symfony\Component\Templating\Tests\Fixtures\SimpleHelper('bar'), 'foo');
+        $engine->set($helper = new Fixtures\SimpleHelper('bar'), 'foo');
         $this->assertEquals($helper, $engine['foo'], '->offsetGet() returns the value of a helper');
 
         try {
@@ -53,7 +53,7 @@
     public function testGetSetHas()
     {
         $engine = new ProjectTemplateEngine(new TemplateNameParser(), $this->loader);
-        $foo = new \Symfony\Component\Templating\Tests\Fixtures\SimpleHelper('foo');
+        $foo = new Fixtures\SimpleHelper('foo');
         $engine->set($foo);
         $this->assertEquals($foo, $engine->get('foo'), '->set() sets a helper');
 
@@ -78,7 +78,7 @@
     public function testUnsetHelper()
     {
         $engine = new ProjectTemplateEngine(new TemplateNameParser(), $this->loader);
-        $foo = new \Symfony\Component\Templating\Tests\Fixtures\SimpleHelper('foo');
+        $foo = new Fixtures\SimpleHelper('foo');
         $engine->set($foo);
 
         $this->expectException(\LogicException::class);
@@ -98,13 +98,13 @@
         }
 
         $engine = new ProjectTemplateEngine(new TemplateNameParser(), $this->loader, [new SlotsHelper()]);
-        $engine->set(new \Symfony\Component\Templating\Tests\Fixtures\SimpleHelper('bar'));
+        $engine->set(new Fixtures\SimpleHelper('bar'));
         $this->loader->setTemplate('foo.php', '<?php $this->extend("layout.php"); echo $this[\'foo\'].$foo ?>');
         $this->loader->setTemplate('layout.php', '-<?php echo $this[\'slots\']->get("_content") ?>-');
         $this->assertEquals('-barfoo-', $engine->render('foo.php', ['foo' => 'foo']), '->render() uses the decorator to decorate the template');
 
         $engine = new ProjectTemplateEngine(new TemplateNameParser(), $this->loader, [new SlotsHelper()]);
-        $engine->set(new \Symfony\Component\Templating\Tests\Fixtures\SimpleHelper('bar'));
+        $engine->set(new Fixtures\SimpleHelper('bar'));
         $this->loader->setTemplate('bar.php', 'bar');
         $this->loader->setTemplate('foo.php', '<?php $this->extend("layout.php"); echo $foo ?>');
         $this->loader->setTemplate('layout.php', '<?php echo $this->render("bar.php") ?>-<?php echo $this[\'slots\']->get("_content") ?>-');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/CrowdinProviderFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/CrowdinProviderFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/CrowdinProviderFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/CrowdinProviderFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,7 +51,7 @@
         $endpoint = preg_replace('/(^|\.)default$/', '\1'.self::HOST, $dsn->getHost());
         $endpoint .= $dsn->getPort() ? ':'.$dsn->getPort() : '';
 
-        $client = ScopingHttpClient::forBaseUri($this->client, sprintf('https://%s/api/v2/projects/%d/', $endpoint, $this->getUser($dsn)), [
+        $client = ScopingHttpClient::forBaseUri($this->client, \sprintf('https://%s/api/v2/projects/%d/', $endpoint, $this->getUser($dsn)), [
             'auth_bearer' => $this->getPassword($dsn),
         ], preg_quote('https://'.$endpoint.'/api/v2/'));
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/CrowdinProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/CrowdinProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/CrowdinProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/CrowdinProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Component\Translation\Dumper\XliffFileDumper;
 use Symfony\Component\Translation\Exception\ProviderException;
 use Symfony\Component\Translation\Loader\LoaderInterface;
+use Symfony\Component\Translation\MessageCatalogue;
 use Symfony\Component\Translation\Provider\ProviderInterface;
 use Symfony\Component\Translation\TranslatorBag;
 use Symfony\Component\Translation\TranslatorBagInterface;
@@ -50,7 +51,7 @@
 
     public function __toString(): string
     {
-        return sprintf('crowdin://%s', $this->endpoint);
+        return \sprintf('crowdin://%s', $this->endpoint);
     }
 
     public function write(TranslatorBagInterface $translatorBag): void
@@ -76,6 +77,25 @@
                     if (!$fileId) {
                         $file = $this->addFile($domain, $content);
                     } else {
+                        $sourceFileInfo = $this->downloadSourceFile($fileId);
+                        $sourceFile = $this->client->request('GET', $sourceFileInfo->toArray()['data']['url']);
+
+                        $providerCatalogue = $this->loader->load(
+                            $sourceFile->getContent(),
+                            $this->defaultLocale,
+                            $domain
+                        );
+                        $allMessages = array_merge(
+                            $providerCatalogue->all($domain),
+                            $catalogue->all($domain)
+                        );
+
+                        $content = $this->xliffFileDumper->formatCatalogue(
+                            new MessageCatalogue($this->defaultLocale, [$domain => $allMessages]),
+                            $domain,
+                            ['default_locale' => $this->defaultLocale],
+                        );
+
                         $file = $this->updateFile($fileId, $domain, $content);
                     }
 
@@ -96,7 +116,7 @@
 
         foreach ($responses as $response) {
             if (200 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->error(sprintf('Unable to upload translations to Crowdin: "%s".', $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to upload translations to Crowdin: "%s".', $response->getContent(false)));
 
                 if (500 <= $statusCode) {
                     throw new ProviderException('Unable to upload translations to Crowdin.', $response);
@@ -131,17 +151,17 @@
             }
         }
 
-        /* @var ResponseInterface $response */
+        /** @var ResponseInterface $response */
         $downloads = [];
         foreach ($responses as [$response, $locale, $domain]) {
             if (204 === $response->getStatusCode()) {
-                $this->logger->error(sprintf('No content in exported file: "%s".', $response->getContent(false)));
+                $this->logger->error(\sprintf('No content in exported file: "%s".', $response->getContent(false)));
 
                 continue;
             }
 
             if (200 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->error(sprintf('Unable to export file: "%s".', $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to export file: "%s".', $response->getContent(false)));
 
                 if (500 <= $statusCode) {
                     throw new ProviderException('Unable to export file.', $response);
@@ -156,7 +176,7 @@
 
         foreach ($downloads as [$response, $locale, $domain]) {
             if (200 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->error(sprintf('Unable to download file content: "%s".', $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to download file content: "%s".', $response->getContent(false)));
 
                 if (500 <= $statusCode) {
                     throw new ProviderException('Unable to download file content.', $response);
@@ -206,7 +226,7 @@
             }
 
             if (204 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->warning(sprintf('Unable to delete string: "%s".', $response->getContent(false)));
+                $this->logger->warning(\sprintf('Unable to delete string: "%s".', $response->getContent(false)));
 
                 if (500 <= $statusCode) {
                     throw new ProviderException('Unable to delete string.', $response);
@@ -217,7 +237,7 @@
 
     private function getFileIdByDomain(array $filesMap, string $domain): ?int
     {
-        return $filesMap[sprintf('%s.%s', $domain, 'xlf')] ?? null;
+        return $filesMap[\sprintf('%s.%s', $domain, 'xlf')] ?? null;
     }
 
     private function mapStrings(int $fileId): array
@@ -251,15 +271,15 @@
         $response = $this->client->request('POST', 'files', [
             'json' => [
                 'storageId' => $storageId,
-                'name' => sprintf('%s.%s', $domain, 'xlf'),
+                'name' => \sprintf('%s.%s', $domain, 'xlf'),
             ],
         ]);
 
         if (201 !== $statusCode = $response->getStatusCode()) {
-            $this->logger->error(sprintf('Unable to create a File in Crowdin for domain "%s": "%s".', $domain, $response->getContent(false)));
+            $this->logger->error(\sprintf('Unable to create a File in Crowdin for domain "%s": "%s".', $domain, $response->getContent(false)));
 
             if (500 <= $statusCode) {
-                throw new ProviderException(sprintf('Unable to create a File in Crowdin for domain "%s".', $domain), $response);
+                throw new ProviderException(\sprintf('Unable to create a File in Crowdin for domain "%s".', $domain), $response);
             }
 
             return null;
@@ -283,10 +303,10 @@
         ]);
 
         if (200 !== $statusCode = $response->getStatusCode()) {
-            $this->logger->error(sprintf('Unable to update file in Crowdin for file ID "%d" and domain "%s": "%s".', $fileId, $domain, $response->getContent(false)));
+            $this->logger->error(\sprintf('Unable to update file in Crowdin for file ID "%d" and domain "%s": "%s".', $fileId, $domain, $response->getContent(false)));
 
             if (500 <= $statusCode) {
-                throw new ProviderException(sprintf('Unable to update file in Crowdin for file ID "%d" and domain "%s".', $fileId, $domain), $response);
+                throw new ProviderException(\sprintf('Unable to update file in Crowdin for file ID "%d" and domain "%s".', $fileId, $domain), $response);
             }
 
             return null;
@@ -331,7 +351,7 @@
          * @see https://developer.crowdin.com/api/v2/#operation/api.projects.files.download.get (Crowdin API)
          * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.projects.files.download.get (Crowdin Enterprise API)
          */
-        return $this->client->request('GET', sprintf('files/%d/download', $fileId));
+        return $this->client->request('GET', \sprintf('files/%d/download', $fileId));
     }
 
     private function listStrings(int $fileId, int $limit, int $offset): array
@@ -349,7 +369,7 @@
         ]);
 
         if (200 !== $response->getStatusCode()) {
-            throw new ProviderException(sprintf('Unable to list strings for file "%d".', $fileId), $response);
+            throw new ProviderException(\sprintf('Unable to list strings for file "%d".', $fileId), $response);
         }
 
         return $response->toArray()['data'];
@@ -372,14 +392,14 @@
          */
         $response = $this->client->request('POST', '../../storages', [
             'headers' => [
-                'Crowdin-API-FileName' => urlencode(sprintf('%s.%s', $domain, 'xlf')),
+                'Crowdin-API-FileName' => urlencode(\sprintf('%s.%s', $domain, 'xlf')),
                 'Content-Type' => 'application/octet-stream',
             ],
             'body' => $content,
         ]);
 
         if (201 !== $response->getStatusCode()) {
-            throw new ProviderException(sprintf('Unable to add a Storage in Crowdin for domain "%s".', $domain), $response);
+            throw new ProviderException(\sprintf('Unable to add a Storage in Crowdin for domain "%s".', $domain), $response);
         }
 
         return $response->toArray()['data']['id'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/Tests/CrowdinProviderFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/Tests/CrowdinProviderFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/Tests/CrowdinProviderFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/Tests/CrowdinProviderFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,11 @@
 
 namespace Symfony\Component\Translation\Bridge\Crowdin\Tests;
 
+use Psr\Log\NullLogger;
+use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\Translation\Bridge\Crowdin\CrowdinProviderFactory;
+use Symfony\Component\Translation\Dumper\XliffFileDumper;
+use Symfony\Component\Translation\Loader\ArrayLoader;
 use Symfony\Component\Translation\Provider\ProviderFactoryInterface;
 use Symfony\Component\Translation\Test\ProviderFactoryTestCase;
 
@@ -48,6 +52,6 @@
 
     public function createFactory(): ProviderFactoryInterface
     {
-        return new CrowdinProviderFactory($this->getClient(), $this->getLogger(), $this->getDefaultLocale(), $this->getLoader(), $this->getXliffFileDumper());
+        return new CrowdinProviderFactory(new MockHttpClient(), new NullLogger(), $this->getDefaultLocale(), new ArrayLoader(), new XliffFileDumper());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/Tests/CrowdinProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/Tests/CrowdinProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/Tests/CrowdinProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Crowdin/Tests/CrowdinProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,6 +21,7 @@
 use Symfony\Component\Translation\Exception\ProviderException;
 use Symfony\Component\Translation\Loader\ArrayLoader;
 use Symfony\Component\Translation\Loader\LoaderInterface;
+use Symfony\Component\Translation\Loader\XliffFileLoader;
 use Symfony\Component\Translation\MessageCatalogue;
 use Symfony\Component\Translation\Provider\ProviderInterface;
 use Symfony\Component\Translation\Test\ProviderTestCase;
@@ -68,40 +69,40 @@
         $this->xliffFileDumper = new XliffFileDumper();
 
         $expectedMessagesFileContent = <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="a">
-        <source>a</source>
-        <target>trans_en_a</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF;
+            XLIFF;
 
         $expectedValidatorsFileContent = <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="post.num_comments">
-        <source>post.num_comments</source>
-        <target>{count, plural, one {# comment} other {# comments}}</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="post.num_comments">
+                    <source>post.num_comments</source>
+                    <target>{count, plural, one {# comment} other {# comments}}</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF;
+            XLIFF;
 
         $responses = [
             'listFiles' => function (string $method, string $url, array $options = []): ResponseInterface {
@@ -170,22 +171,22 @@
         $this->xliffFileDumper = new XliffFileDumper();
 
         $expectedMessagesFileContent = <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="a">
-        <source>a</source>
-        <target>trans_en_a</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF;
+            XLIFF;
 
         $responses = [
             'listFiles' => function (string $method, string $url, array $options = []): ResponseInterface {
@@ -240,23 +241,45 @@
     {
         $this->xliffFileDumper = new XliffFileDumper();
 
+        $sourceFileContent = <<<'XLIFF'
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+
+            XLIFF;
+
         $expectedMessagesFileContent = <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="a">
-        <source>a</source>
-        <target>trans_en_a</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_a</target>
+                  </trans-unit>
+                  <trans-unit id="%s" resname="b">
+                    <source>b</source>
+                    <target>trans_en_b</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF;
+            XLIFF;
 
         $responses = [
             'listFiles' => function (string $method, string $url, array $options = []): ResponseInterface {
@@ -279,6 +302,18 @@
 
                 return new MockResponse(json_encode(['data' => ['languageMapping' => []]]));
             },
+            'downloadSource' => function (string $method, string $url): ResponseInterface {
+                $this->assertSame('GET', $method);
+                $this->assertSame('https://api.crowdin.com/api/v2/projects/1/files/12/download', $url);
+
+                return new JsonMockResponse(['data' => ['url' => 'https://file.url']]);
+            },
+            'downloadFile' => function (string $method, string $url) use ($sourceFileContent): ResponseInterface {
+                $this->assertSame('GET', $method);
+                $this->assertSame('https://file.url/', $url);
+
+                return new MockResponse($sourceFileContent);
+            },
             'addStorage' => function (string $method, string $url, array $options = []) use ($expectedMessagesFileContent): ResponseInterface {
                 $this->assertSame('POST', $method);
                 $this->assertSame('https://api.crowdin.com/api/v2/storages', $url);
@@ -288,7 +323,7 @@
 
                 return new JsonMockResponse(['data' => ['id' => 19]], ['http_code' => 201]);
             },
-            'UpdateFile' => function (string $method, string $url, array $options = []): ResponseInterface {
+            'updateFile' => function (string $method, string $url, array $options = []): ResponseInterface {
                 $this->assertSame('PUT', $method);
                 $this->assertSame('https://api.crowdin.com/api/v2/projects/1/files/12', $url);
                 $this->assertSame('{"storageId":19}', $options['body']);
@@ -299,14 +334,14 @@
 
         $translatorBag = new TranslatorBag();
         $translatorBag->addCatalogue(new MessageCatalogue('en', [
-            'messages' => ['a' => 'trans_en_a'],
+            'messages' => ['b' => 'trans_en_b'],
             'validators' => ['post.num_comments' => '{count, plural, one {# comment} other {# comments}}'],
         ]));
 
         $provider = self::createProvider((new MockHttpClient($responses))->withOptions([
             'base_uri' => 'https://api.crowdin.com/api/v2/projects/1/',
             'auth_bearer' => 'API_TOKEN',
-        ]), $this->getLoader(), $this->getLogger(), $this->getDefaultLocale(), 'api.crowdin.com/api/v2/projects/1/');
+        ]), new XliffFileLoader(), $this->getLogger(), $this->getDefaultLocale(), 'api.crowdin.com/api/v2/projects/1/');
 
         $this->expectException(ProviderException::class);
         $this->expectExceptionMessage('Unable to update file in Crowdin for file ID "12" and domain "messages".');
@@ -318,41 +353,59 @@
     {
         $this->xliffFileDumper = new XliffFileDumper();
 
+        $sourceFileContent = <<<'XLIFF'
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+
+            XLIFF;
+
         $expectedMessagesTranslationsContent = <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="a">
-        <source>a</source>
-        <target>trans_fr_a</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_fr_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF;
+            XLIFF;
 
         $expectedMessagesFileContent = <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="a">
-        <source>a</source>
-        <target>trans_en_a</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF;
+            XLIFF;
 
         $responses = [
             'listFiles' => function (string $method, string $url): ResponseInterface {
@@ -374,6 +427,18 @@
 
                 return new MockResponse(json_encode(['data' => ['languageMapping' => []]]));
             },
+            'downloadSource' => function (string $method, string $url): ResponseInterface {
+                $this->assertSame('GET', $method);
+                $this->assertSame('https://api.crowdin.com/api/v2/projects/1/files/12/download', $url);
+
+                return new JsonMockResponse(['data' => ['url' => 'https://file.url']]);
+            },
+            'downloadFile' => function (string $method, string $url) use ($sourceFileContent): ResponseInterface {
+                $this->assertSame('GET', $method);
+                $this->assertSame('https://file.url/', $url);
+
+                return new MockResponse($sourceFileContent);
+            },
             'addStorage' => function (string $method, string $url, array $options = []) use ($expectedMessagesFileContent): ResponseInterface {
                 $this->assertSame('POST', $method);
                 $this->assertSame('https://api.crowdin.com/api/v2/storages', $url);
@@ -399,9 +464,9 @@
 
                 return new JsonMockResponse(['data' => ['id' => 19]], ['http_code' => 201]);
             },
-            'UploadTranslations' => function (string $method, string $url, array $options = []): ResponseInterface {
+            'uploadTranslations' => function (string $method, string $url, array $options = []): ResponseInterface {
                 $this->assertSame('POST', $method);
-                $this->assertSame(sprintf('https://api.crowdin.com/api/v2/projects/1/translations/%s', 'fr'), $url);
+                $this->assertSame(\sprintf('https://api.crowdin.com/api/v2/projects/1/translations/%s', 'fr'), $url);
                 $this->assertSame('{"storageId":19,"fileId":12}', $options['body']);
 
                 return new MockResponse('', ['http_code' => 500]);
@@ -419,7 +484,7 @@
         $provider = self::createProvider((new MockHttpClient($responses))->withOptions([
             'base_uri' => 'https://api.crowdin.com/api/v2/projects/1/',
             'auth_bearer' => 'API_TOKEN',
-        ]), $this->getLoader(), $this->getLogger(), $this->getDefaultLocale(), 'api.crowdin.com/api/v2/projects/1/');
+        ]), new XliffFileLoader(), $this->getLogger(), $this->getDefaultLocale(), 'api.crowdin.com/api/v2/projects/1/');
 
         $this->expectException(ProviderException::class);
         $this->expectExceptionMessage('Unable to upload translations to Crowdin.');
@@ -431,27 +496,45 @@
     {
         $this->xliffFileDumper = new XliffFileDumper();
 
+        $sourceFileContent = <<<'XLIFF'
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+
+            XLIFF;
+
         $expectedMessagesFileContent = <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="a">
-        <source>a</source>
-        <target>trans_en_a</target>
-      </trans-unit>
-      <trans-unit id="%s" resname="b">
-        <source>b</source>
-        <target>trans_en_b</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_a</target>
+                  </trans-unit>
+                  <trans-unit id="%s" resname="b">
+                    <source>b</source>
+                    <target>trans_en_b</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF;
+            XLIFF;
 
         $responses = [
             'listFiles' => function (string $method, string $url): ResponseInterface {
@@ -473,6 +556,18 @@
 
                 return new MockResponse(json_encode(['data' => ['languageMapping' => []]]));
             },
+            'downloadSource' => function (string $method, string $url): ResponseInterface {
+                $this->assertSame('GET', $method);
+                $this->assertSame('https://api.crowdin.com/api/v2/projects/1/files/12/download', $url);
+
+                return new JsonMockResponse(['data' => ['url' => 'https://file.url']]);
+            },
+            'downloadFile' => function (string $method, string $url) use ($sourceFileContent): ResponseInterface {
+                $this->assertSame('GET', $method);
+                $this->assertSame('https://file.url/', $url);
+
+                return new MockResponse($sourceFileContent);
+            },
             'addStorage' => function (string $method, string $url, array $options = []) use ($expectedMessagesFileContent): ResponseInterface {
                 $this->assertSame('POST', $method);
                 $this->assertSame('https://api.crowdin.com/api/v2/storages', $url);
@@ -482,7 +577,7 @@
 
                 return new JsonMockResponse(['data' => ['id' => 19]], ['http_code' => 201]);
             },
-            'UpdateFile' => function (string $method, string $url, array $options = []): ResponseInterface {
+            'updateFile' => function (string $method, string $url, array $options = []): ResponseInterface {
                 $this->assertSame('PUT', $method);
                 $this->assertSame('https://api.crowdin.com/api/v2/projects/1/files/12', $url);
                 $this->assertSame('{"storageId":19}', $options['body']);
@@ -499,7 +594,7 @@
         $provider = self::createProvider((new MockHttpClient($responses))->withOptions([
             'base_uri' => 'https://api.crowdin.com/api/v2/projects/1/',
             'auth_bearer' => 'API_TOKEN',
-        ]), $this->getLoader(), $this->getLogger(), $this->getDefaultLocale(), 'api.crowdin.com/api/v2/projects/1/');
+        ]), new XliffFileLoader(), $this->getLogger(), $this->getDefaultLocale(), 'api.crowdin.com/api/v2/projects/1/');
 
         $provider->write($translatorBag);
     }
@@ -511,23 +606,41 @@
     {
         $this->xliffFileDumper = new XliffFileDumper();
 
+        $sourceFileContent = <<<'XLIFF'
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+
+            XLIFF;
+
         $expectedMessagesFileContent = <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="a">
-        <source>a</source>
-        <target>trans_en_a</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF;
+            XLIFF;
 
         $responses = [
             'listFiles' => function (string $method, string $url): ResponseInterface {
@@ -557,6 +670,18 @@
                     ],
                 ]));
             },
+            'downloadSource' => function (string $method, string $url): ResponseInterface {
+                $this->assertSame('GET', $method);
+                $this->assertSame('https://api.crowdin.com/api/v2/projects/1/files/12/download', $url);
+
+                return new JsonMockResponse(['data' => ['url' => 'https://file.url']]);
+            },
+            'downloadFile' => function (string $method, string $url) use ($sourceFileContent): ResponseInterface {
+                $this->assertSame('GET', $method);
+                $this->assertSame('https://file.url/', $url);
+
+                return new MockResponse($sourceFileContent);
+            },
             'addStorage' => function (string $method, string $url, array $options = []) use ($expectedMessagesFileContent): ResponseInterface {
                 $this->assertSame('POST', $method);
                 $this->assertSame('https://api.crowdin.com/api/v2/storages', $url);
@@ -584,7 +709,7 @@
             },
             'uploadTranslations' => function (string $method, string $url, array $options = []) use ($expectedLocale): ResponseInterface {
                 $this->assertSame('POST', $method);
-                $this->assertSame(sprintf('https://api.crowdin.com/api/v2/projects/1/translations/%s', $expectedLocale), $url);
+                $this->assertSame(\sprintf('https://api.crowdin.com/api/v2/projects/1/translations/%s', $expectedLocale), $url);
                 $this->assertSame('{"storageId":19,"fileId":12}', $options['body']);
 
                 return new MockResponse();
@@ -600,7 +725,7 @@
             },
             'uploadTranslations2' => function (string $method, string $url, array $options = []) use ($expectedLocale): ResponseInterface {
                 $this->assertSame('POST', $method);
-                $this->assertSame(sprintf('https://api.crowdin.com/api/v2/projects/1/translations/%s', $expectedLocale), $url);
+                $this->assertSame(\sprintf('https://api.crowdin.com/api/v2/projects/1/translations/%s', $expectedLocale), $url);
                 $this->assertSame('{"storageId":19,"fileId":12}', $options['body']);
 
                 return new MockResponse();
@@ -610,7 +735,7 @@
         $provider = self::createProvider((new MockHttpClient($responses))->withOptions([
             'base_uri' => 'https://api.crowdin.com/api/v2/projects/1/',
             'auth_bearer' => 'API_TOKEN',
-        ]), $this->getLoader(), $this->getLogger(), $this->getDefaultLocale(), 'api.crowdin.com/api/v2/projects/1/');
+        ]), new XliffFileLoader(), $this->getLogger(), $this->getDefaultLocale(), 'api.crowdin.com/api/v2/projects/1/');
 
         $provider->write($translatorBag);
     }
@@ -628,22 +753,22 @@
         ], 'fr'));
 
         yield [$translatorBagFr, 'fr', <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="a">
-        <source>a</source>
-        <target>trans_fr_a</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_fr_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF
+            XLIFF
         ];
 
         $translatorBagPt = new TranslatorBag();
@@ -655,22 +780,22 @@
         ], 'pt'));
 
         yield [$translatorBagPt, 'pt-PT', <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="pt" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="a">
-        <source>a</source>
-        <target>trans_pt_a</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="pt" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_pt_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF
+            XLIFF
         ];
 
         $translatorBagEnGb = new TranslatorBag();
@@ -682,22 +807,22 @@
         ], 'en_GB'));
 
         yield [$translatorBagEnGb, 'en-GB', <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="en-GB" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="a">
-        <source>a</source>
-        <target>trans_en_gb_a</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en-GB" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="a">
+                    <source>a</source>
+                    <target>trans_en_gb_a</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF
+            XLIFF
         ];
     }
 
@@ -737,7 +862,7 @@
             'exportProjectTranslations' => function (string $method, string $url, array $options = []) use ($expectedTargetLanguageId): ResponseInterface {
                 $this->assertSame('POST', $method);
                 $this->assertSame('https://api.crowdin.com/api/v2/projects/1/translations/exports', $url);
-                $this->assertSame(sprintf('{"targetLanguageId":"%s","fileIds":[12]}', $expectedTargetLanguageId), $options['body']);
+                $this->assertSame(\sprintf('{"targetLanguageId":"%s","fileIds":[12]}', $expectedTargetLanguageId), $options['body']);
 
                 return new JsonMockResponse(['data' => ['url' => 'https://file.url']]);
             },
@@ -749,8 +874,8 @@
             },
         ];
 
-        $loader = $this->getLoader();
-        $loader->expects($this->once())
+        $this->loader = $this->createMock(LoaderInterface::class);
+        $this->loader->expects($this->once())
             ->method('load')
             ->willReturn($expectedTranslatorBag->getCatalogue($locale));
 
@@ -775,26 +900,25 @@
         ], 'fr'));
 
         yield ['fr', 'messages', <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="fr" datatype="database" tool-id="crowdin">
-    <header>
-      <tool tool-id="crowdin" tool-name="Crowdin" tool-version="1.0.25 20201211-1" tool-company="Crowdin"/>
-    </header>
-    <body>
-      <trans-unit id="crowdin:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext">
-        <source>index.hello</source>
-        <target state="translated">Bonjour</target>
-      </trans-unit>
-      <trans-unit id="crowdin:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="crowdin:format=icu">
-        <source>index.greetings</source>
-        <target state="translated">Bienvenue, {firstname} !</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-            ,
+            <?xml version="1.0" encoding="UTF-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="fr" datatype="database" tool-id="crowdin">
+                <header>
+                  <tool tool-id="crowdin" tool-name="Crowdin" tool-version="1.0.25 20201211-1" tool-company="Crowdin"/>
+                </header>
+                <body>
+                  <trans-unit id="crowdin:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext">
+                    <source>index.hello</source>
+                    <target state="translated">Bonjour</target>
+                  </trans-unit>
+                  <trans-unit id="crowdin:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="crowdin:format=icu">
+                    <source>index.greetings</source>
+                    <target state="translated">Bienvenue, {firstname} !</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+            XLIFF,
             $expectedTranslatorBagFr, 'fr',
         ];
 
@@ -805,26 +929,25 @@
         ], 'en_GB'));
 
         yield ['en_GB', 'messages', <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="en_GB" datatype="database" tool-id="crowdin">
-    <header>
-      <tool tool-id="crowdin" tool-name="Crowdin" tool-version="1.0.25 20201211-1" tool-company="Crowdin"/>
-    </header>
-    <body>
-      <trans-unit id="crowdin:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext">
-        <source>index.hello</source>
-        <target state="translated">Hello</target>
-      </trans-unit>
-      <trans-unit id="crowdin:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="crowdin:format=icu">
-        <source>index.greetings</source>
-        <target state="translated">Welcome, {firstname}!</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-            ,
+            <?xml version="1.0" encoding="UTF-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="en_GB" datatype="database" tool-id="crowdin">
+                <header>
+                  <tool tool-id="crowdin" tool-name="Crowdin" tool-version="1.0.25 20201211-1" tool-company="Crowdin"/>
+                </header>
+                <body>
+                  <trans-unit id="crowdin:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext">
+                    <source>index.hello</source>
+                    <target state="translated">Hello</target>
+                  </trans-unit>
+                  <trans-unit id="crowdin:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="crowdin:format=icu">
+                    <source>index.greetings</source>
+                    <target state="translated">Welcome, {firstname}!</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+            XLIFF,
             $expectedTranslatorBagEnUs, 'en-GB',
         ];
     }
@@ -876,8 +999,8 @@
             },
         ];
 
-        $loader = $this->getLoader();
-        $loader->expects($this->once())
+        $this->loader = $this->createMock(LoaderInterface::class);
+        $this->loader->expects($this->once())
             ->method('load')
             ->willReturn($expectedTranslatorBag->getCatalogue($locale));
 
@@ -902,26 +1025,25 @@
         ], 'en', 'messages'));
 
         yield ['en', 'messages', <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" target-language="fr" datatype="plaintext" tool-id="crowdin">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="crowdin:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext">
-        <source>index.hello</source>
-        <target state="translated">Hello</target>
-      </trans-unit>
-      <trans-unit id="crowdin:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="crowdin:format=icu">
-        <source>index.greetings</source>
-        <target state="translated">Welcome, {firstname} !</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-            ,
+            <?xml version="1.0" encoding="UTF-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" target-language="fr" datatype="plaintext" tool-id="crowdin">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="crowdin:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext">
+                    <source>index.hello</source>
+                    <target state="translated">Hello</target>
+                  </trans-unit>
+                  <trans-unit id="crowdin:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="crowdin:format=icu">
+                    <source>index.greetings</source>
+                    <target state="translated">Welcome, {firstname} !</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+            XLIFF,
             $expectedTranslatorBagEn,
         ];
     }
@@ -1061,13 +1183,7 @@
                 $this->assertSame('GET', $method);
                 $this->assertSame('https://api.crowdin.com/api/v2/projects/1/strings?fileId=12&limit=500&offset=500', $url);
 
-                $response = $this->createMock(ResponseInterface::class);
-                $response->expects($this->any())
-                    ->method('getContent')
-                    ->with(false)
-                    ->willReturn(json_encode(['data' => []]));
-
-                return $response;
+                return new JsonMockResponse(['data' => []]);
             },
             'deleteString1' => function (string $method, string $url): ResponseInterface {
                 $this->assertSame('DELETE', $method);
@@ -1172,13 +1288,7 @@
                 $this->assertSame('GET', $method);
                 $this->assertSame('https://api.crowdin.com/api/v2/projects/1/strings?fileId=12&limit=500&offset=500', $url);
 
-                $response = $this->createMock(ResponseInterface::class);
-                $response->expects($this->any())
-                    ->method('getContent')
-                    ->with(false)
-                    ->willReturn(json_encode(['data' => []]));
-
-                return $response;
+                return new JsonMockResponse(['data' => []]);
             },
             'deleteString1' => function (string $method, string $url): ResponseInterface {
                 $this->assertSame('DELETE', $method);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,7 @@
 
     public function __toString(): string
     {
-        return sprintf('loco://%s', $this->endpoint);
+        return \sprintf('loco://%s', $this->endpoint);
     }
 
     public function write(TranslatorBagInterface $translatorBag): void
@@ -104,9 +104,9 @@
                 $previousCatalogue = $this->translatorBag?->getCatalogue($locale);
 
                 // Loco forbids concurrent requests, so the requests must be synchronous in order to prevent "429 Too Many Requests" errors.
-                $response = $this->client->request('GET', sprintf('export/locale/%s.xlf', rawurlencode($locale)), [
+                $response = $this->client->request('GET', \sprintf('export/locale/%s.xlf', rawurlencode($locale)), [
                     'query' => [
-                        'filter' => $domain,
+                        'filter' => '*' !== $domain ? $domain : '',
                         'status' => 'translated,blank-translation',
                     ],
                     'headers' => [
@@ -115,12 +115,12 @@
                 ]);
 
                 if (404 === $response->getStatusCode()) {
-                    $this->logger->warning(sprintf('Locale "%s" for domain "%s" does not exist in Loco.', $locale, $domain));
+                    $this->logger->warning(\sprintf('Locale "%s" for domain "%s" does not exist in Loco.', $locale, $domain));
                     continue;
                 }
 
                 if (304 === $response->getStatusCode()) {
-                    $this->logger->info(sprintf('No modifications found for locale "%s" and domain "%s" in Loco.', $locale, $domain));
+                    $this->logger->info(\sprintf('No modifications found for locale "%s" and domain "%s" in Loco.', $locale, $domain));
 
                     $catalogue = new MessageCatalogue($locale);
                     $previousMessages = $previousCatalogue->all($domain);
@@ -183,7 +183,7 @@
 
         foreach (array_keys($catalogue->all()) as $domain) {
             foreach ($this->getAssetsIds($domain) as $id) {
-                $responses[$id] = $this->client->request('DELETE', sprintf('assets/%s.json', rawurlencode($id)));
+                $responses[$id] = $this->client->request('DELETE', \sprintf('assets/%s.json', rawurlencode($id)));
             }
         }
 
@@ -193,10 +193,10 @@
             }
 
             if (200 !== $statusCode && 404 !== $statusCode) {
-                $this->logger->error(sprintf('Unable to delete translation key "%s" to Loco: "%s".', $key, $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to delete translation key "%s" to Loco: "%s".', $key, $response->getContent(false)));
 
                 if (500 <= $statusCode) {
-                    throw new ProviderException(sprintf('Unable to delete translation key "%s" to Loco.', $key), $response);
+                    throw new ProviderException(\sprintf('Unable to delete translation key "%s" to Loco.', $key), $response);
                 }
             }
         }
@@ -210,14 +210,14 @@
         $response = $this->client->request('GET', 'assets', ['query' => ['filter' => $domain]]);
 
         if (200 !== $statusCode = $response->getStatusCode()) {
-            $this->logger->error(sprintf('Unable to get assets from Loco: "%s".', $response->getContent(false)));
+            $this->logger->error(\sprintf('Unable to get assets from Loco: "%s".', $response->getContent(false)));
 
             if (500 <= $statusCode) {
                 throw new ProviderException('Unable to get assets from Loco.', $response);
             }
         }
 
-        return array_map(fn ($asset) => $asset['id'], $response->toArray(false));
+        return array_map(static fn ($asset) => $asset['id'], $response->toArray(false));
     }
 
     private function createAssets(array $keys, string $domain): array
@@ -237,10 +237,10 @@
 
         foreach ($responses as $key => $response) {
             if (201 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->error(sprintf('Unable to add new translation key "%s" to Loco: (status code: "%s") "%s".', $key, $statusCode, $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to add new translation key "%s" to Loco: (status code: "%s") "%s".', $key, $statusCode, $response->getContent(false)));
 
                 if (500 <= $statusCode) {
-                    throw new ProviderException(sprintf('Unable to add new translation key "%s" to Loco: (status code: "%s").', $key, $statusCode), $response);
+                    throw new ProviderException(\sprintf('Unable to add new translation key "%s" to Loco: (status code: "%s").', $key, $statusCode), $response);
                 }
             } else {
                 $createdIds[] = $response->toArray(false)['id'];
@@ -255,7 +255,7 @@
         $responses = [];
 
         foreach ($translations as $id => $message) {
-            $responses[$id] = $this->client->request('POST', sprintf('translations/%s/%s', rawurlencode($id), rawurlencode($locale)), [
+            $responses[$id] = $this->client->request('POST', \sprintf('translations/%s/%s', rawurlencode($id), rawurlencode($locale)), [
                 'body' => $message,
                 'headers' => ['Content-Type' => 'text/plain'],
             ]);
@@ -263,10 +263,10 @@
 
         foreach ($responses as $id => $response) {
             if (200 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->error(sprintf('Unable to add translation for key "%s" in locale "%s" to Loco: "%s".', $id, $locale, $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to add translation for key "%s" in locale "%s" to Loco: "%s".', $id, $locale, $response->getContent(false)));
 
                 if (500 <= $statusCode) {
-                    throw new ProviderException(sprintf('Unable to add translation for key "%s" in locale "%s" to Loco.', $id, $locale), $response);
+                    throw new ProviderException(\sprintf('Unable to add translation for key "%s" in locale "%s" to Loco.', $id, $locale), $response);
                 }
             }
         }
@@ -290,30 +290,30 @@
 
         if ([] !== $idsWithoutComma) {
             // Set tags for all ids without comma.
-            $response = $this->client->request('POST', sprintf('tags/%s.json', rawurlencode($tag)), [
+            $response = $this->client->request('POST', \sprintf('tags/%s.json', rawurlencode($tag)), [
                 'body' => implode(',', $idsWithoutComma),
             ]);
 
             if (200 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->error(sprintf('Unable to tag assets with "%s" on Loco: "%s".', $tag, $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to tag assets with "%s" on Loco: "%s".', $tag, $response->getContent(false)));
 
                 if (500 <= $statusCode) {
-                    throw new ProviderException(sprintf('Unable to tag assets with "%s" on Loco.', $tag), $response);
+                    throw new ProviderException(\sprintf('Unable to tag assets with "%s" on Loco.', $tag), $response);
                 }
             }
         }
 
         // Set tags for each id with comma one by one.
         foreach ($idsWithComma as $id) {
-            $response = $this->client->request('POST', sprintf('assets/%s/tags', rawurlencode($id)), [
+            $response = $this->client->request('POST', \sprintf('assets/%s/tags', rawurlencode($id)), [
                 'body' => ['name' => $tag],
             ]);
 
             if (200 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->error(sprintf('Unable to tag asset "%s" with "%s" on Loco: "%s".', $id, $tag, $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to tag asset "%s" with "%s" on Loco: "%s".', $id, $tag, $response->getContent(false)));
 
                 if (500 <= $statusCode) {
-                    throw new ProviderException(sprintf('Unable to tag asset "%s" with "%s" on Loco.', $id, $tag), $response);
+                    throw new ProviderException(\sprintf('Unable to tag asset "%s" with "%s" on Loco.', $id, $tag), $response);
                 }
             }
         }
@@ -328,10 +328,10 @@
         ]);
 
         if (201 !== $statusCode = $response->getStatusCode()) {
-            $this->logger->error(sprintf('Unable to create tag "%s" on Loco: "%s".', $tag, $response->getContent(false)));
+            $this->logger->error(\sprintf('Unable to create tag "%s" on Loco: "%s".', $tag, $response->getContent(false)));
 
             if (500 <= $statusCode) {
-                throw new ProviderException(sprintf('Unable to create tag "%s" on Loco.', $tag), $response);
+                throw new ProviderException(\sprintf('Unable to create tag "%s" on Loco.', $tag), $response);
             }
         }
     }
@@ -342,7 +342,7 @@
         $content = $response->toArray(false);
 
         if (200 !== $response->getStatusCode()) {
-            throw new ProviderException(sprintf('Unable to get tags on Loco: "%s".', $response->getContent(false)), $response);
+            throw new ProviderException(\sprintf('Unable to get tags on Loco: "%s".', $response->getContent(false)), $response);
         }
 
         return $content ?: [];
@@ -357,10 +357,10 @@
         ]);
 
         if (201 !== $statusCode = $response->getStatusCode()) {
-            $this->logger->error(sprintf('Unable to create locale "%s" on Loco: "%s".', $locale, $response->getContent(false)));
+            $this->logger->error(\sprintf('Unable to create locale "%s" on Loco: "%s".', $locale, $response->getContent(false)));
 
             if (500 <= $statusCode) {
-                throw new ProviderException(sprintf('Unable to create locale "%s" on Loco.', $locale), $response);
+                throw new ProviderException(\sprintf('Unable to create locale "%s" on Loco.', $locale), $response);
             }
         }
     }
@@ -371,10 +371,10 @@
         $content = $response->toArray(false);
 
         if (200 !== $response->getStatusCode()) {
-            throw new ProviderException(sprintf('Unable to get locales on Loco: "%s".', $response->getContent(false)), $response);
+            throw new ProviderException(\sprintf('Unable to get locales on Loco: "%s".', $response->getContent(false)), $response);
         }
 
-        return array_reduce($content, function ($carry, $locale) {
+        return array_reduce($content, static function ($carry, $locale) {
             $carry[] = $locale['code'];
 
             return $carry;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,9 +11,13 @@
 
 namespace Symfony\Component\Translation\Bridge\Loco\Tests;
 
+use Psr\Log\NullLogger;
+use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\Translation\Bridge\Loco\LocoProviderFactory;
+use Symfony\Component\Translation\Loader\ArrayLoader;
 use Symfony\Component\Translation\Provider\ProviderFactoryInterface;
 use Symfony\Component\Translation\Test\ProviderFactoryTestCase;
+use Symfony\Component\Translation\TranslatorBag;
 
 class LocoProviderFactoryTest extends ProviderFactoryTestCase
 {
@@ -43,6 +47,6 @@
 
     public function createFactory(): ProviderFactoryInterface
     {
-        return new LocoProviderFactory($this->getClient(), $this->getLogger(), $this->getDefaultLocale(), $this->getLoader(), $this->getTranslatorBag());
+        return new LocoProviderFactory(new MockHttpClient(), new NullLogger(), $this->getDefaultLocale(), new ArrayLoader(), new TranslatorBag());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderFactoryWithoutTranslatorBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderFactoryWithoutTranslatorBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderFactoryWithoutTranslatorBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderFactoryWithoutTranslatorBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,13 +11,16 @@
 
 namespace Symfony\Component\Translation\Bridge\Loco\Tests;
 
+use Psr\Log\NullLogger;
+use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\Translation\Bridge\Loco\LocoProviderFactory;
+use Symfony\Component\Translation\Loader\ArrayLoader;
 use Symfony\Component\Translation\Provider\ProviderFactoryInterface;
 
 class LocoProviderFactoryWithoutTranslatorBagTest extends LocoProviderFactoryTest
 {
     public function createFactory(): ProviderFactoryInterface
     {
-        return new LocoProviderFactory($this->getClient(), $this->getLogger(), $this->getDefaultLocale(), $this->getLoader(), null);
+        return new LocoProviderFactory(new MockHttpClient(), new NullLogger(), $this->getDefaultLocale(), new ArrayLoader(), null);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -703,21 +703,17 @@
      */
     public function testReadForOneLocaleAndOneDomain(string $locale, string $domain, string $responseContent, TranslatorBag $expectedTranslatorBag)
     {
-        $loader = $this->getLoader();
-        $loader->expects($this->once())
+        $this->loader = $this->createMock(LoaderInterface::class);
+        $this->loader->expects($this->once())
             ->method('load')
             ->willReturn((new XliffFileLoader())->load($responseContent, $locale, $domain));
 
-        $this->getTranslatorBag()->expects($this->any())
-            ->method('getCatalogue')
-            ->willReturn(new MessageCatalogue($locale));
-
         $provider = self::createProvider((new MockHttpClient(new MockResponse($responseContent)))->withOptions([
             'base_uri' => 'https://localise.biz/api/',
             'headers' => [
                 'Authorization' => 'Loco API_KEY',
             ],
-        ]), $loader, new NullLogger(), 'en', 'localise.biz/api/');
+        ]), $this->loader, new NullLogger(), 'en', 'localise.biz/api/');
         $translatorBag = $provider->read([$domain], [$locale]);
         // We don't want to assert equality of metadata here, due to the ArrayLoader usage.
         foreach ($translatorBag->getCatalogues() as $catalogue) {
@@ -744,8 +740,8 @@
             }
         }
 
-        $loader = $this->getLoader();
-        $loader->expects($this->exactly(\count($consecutiveLoadArguments)))
+        $this->loader = $this->createMock(LoaderInterface::class);
+        $this->loader->expects($this->exactly(\count($consecutiveLoadArguments)))
             ->method('load')
             ->willReturnCallback(function (...$args) use (&$consecutiveLoadArguments, &$consecutiveLoadReturns) {
                 $this->assertSame(array_shift($consecutiveLoadArguments), $args);
@@ -753,16 +749,12 @@
                 return array_shift($consecutiveLoadReturns);
             });
 
-        $this->getTranslatorBag()->expects($this->any())
-            ->method('getCatalogue')
-            ->willReturn(new MessageCatalogue($locale));
-
         $provider = self::createProvider((new MockHttpClient($responses))->withOptions([
             'base_uri' => 'https://localise.biz/api/',
             'headers' => [
                 'Authorization' => 'Loco API_KEY',
             ],
-        ]), $loader, $this->getLogger(), 'en', 'localise.biz/api/');
+        ]), $this->loader, $this->getLogger(), 'en', 'localise.biz/api/');
         $translatorBag = $provider->read($domains, $locales);
         // We don't want to assert equality of metadata here, due to the ArrayLoader usage.
         foreach ($translatorBag->getCatalogues() as $catalogue) {
@@ -800,8 +792,8 @@
             }
         }
 
-        $loader = $this->getLoader();
-        $loader->expects($this->exactly(\count($consecutiveLoadArguments)))
+        $this->loader = $this->createMock(LoaderInterface::class);
+        $this->loader->expects($this->exactly(\count($consecutiveLoadArguments)))
             ->method('load')
             ->willReturnCallback(function (...$args) use (&$consecutiveLoadArguments, &$consecutiveLoadReturns) {
                 $this->assertSame(array_shift($consecutiveLoadArguments), $args);
@@ -949,26 +941,25 @@
         ], 'en', 'messages+intl-icu'));
 
         yield ['en', 'messages+intl-icu', <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
-    <header>
-      <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
-    </header>
-    <body>
-      <trans-unit id="loco:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext" extradata="loco:format=icu">
-        <source>index.hello</source>
-        <target state="translated">Hello</target>
-      </trans-unit>
-      <trans-unit id="loco:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="loco:format=icu">
-        <source>index.greetings</source>
-        <target state="translated">Welcome, {firstname}!</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-            ,
+            <?xml version="1.0" encoding="UTF-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+              <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
+                <header>
+                  <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
+                </header>
+                <body>
+                  <trans-unit id="loco:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext" extradata="loco:format=icu">
+                    <source>index.hello</source>
+                    <target state="translated">Hello</target>
+                  </trans-unit>
+                  <trans-unit id="loco:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="loco:format=icu">
+                    <source>index.greetings</source>
+                    <target state="translated">Welcome, {firstname}!</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+            XLIFF,
             $expectedTranslatorBagEn,
         ];
 
@@ -979,26 +970,25 @@
         ], 'fr', 'messages+intl-icu'));
 
         yield ['fr', 'messages+intl-icu', <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
-    <header>
-      <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
-    </header>
-    <body>
-      <trans-unit id="loco:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext" extradata="loco:format=icu">
-        <source>index.hello</source>
-        <target state="translated">Bonjour</target>
-      </trans-unit>
-      <trans-unit id="loco:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="loco:format=icu">
-        <source>index.greetings</source>
-        <target state="translated">Bienvenue, {firstname} !</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-            ,
+            <?xml version="1.0" encoding="UTF-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+              <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
+                <header>
+                  <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
+                </header>
+                <body>
+                  <trans-unit id="loco:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext" extradata="loco:format=icu">
+                    <source>index.hello</source>
+                    <target state="translated">Bonjour</target>
+                  </trans-unit>
+                  <trans-unit id="loco:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="loco:format=icu">
+                    <source>index.greetings</source>
+                    <target state="translated">Bienvenue, {firstname} !</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+            XLIFF,
             $expectedTranslatorBagFr,
         ];
     }
@@ -1035,117 +1025,111 @@
             [
                 'en' => [
                     'messages' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
-    <header>
-      <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
-    </header>
-    <body>
-      <trans-unit id="loco:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext">
-        <source>index.hello</source>
-        <target state="translated">Hello</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-                    ,
+                        <?xml version="1.0" encoding="UTF-8"?>
+                        <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+                          <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
+                            <header>
+                              <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
+                            </header>
+                            <body>
+                              <trans-unit id="loco:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext">
+                                <source>index.hello</source>
+                                <target state="translated">Hello</target>
+                              </trans-unit>
+                            </body>
+                          </file>
+                        </xliff>
+                        XLIFF,
                     'messages+intl-icu' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
-    <header>
-      <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
-    </header>
-    <body>
-      <trans-unit id="loco:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="loco:format=icu">
-        <source>index.greetings</source>
-        <target state="translated">Welcome, {firstname}!</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-                    ,
+                        <?xml version="1.0" encoding="UTF-8"?>
+                        <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+                          <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
+                            <header>
+                              <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
+                            </header>
+                            <body>
+                              <trans-unit id="loco:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="loco:format=icu">
+                                <source>index.greetings</source>
+                                <target state="translated">Welcome, {firstname}!</target>
+                              </trans-unit>
+                            </body>
+                          </file>
+                        </xliff>
+                        XLIFF,
                     'validators' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
-    <header>
-      <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
-    </header>
-    <body>
-      <trans-unit id="loco:5fd89b853ee27904dd6c5f68" resname="firstname.error" datatype="plaintext">
-        <source>firstname.error</source>
-        <target state="translated">Firstname must contains only letters.</target>
-      </trans-unit>
-      <trans-unit id="loco:5fd89b8542e5aa5cc27457e3" resname="lastname.error" datatype="plaintext" extradata="loco:format=icu">
-        <source>lastname.error</source>
-        <target state="translated">Lastname must contains only letters.</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-                    ,
+                        <?xml version="1.0" encoding="UTF-8"?>
+                        <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+                          <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
+                            <header>
+                              <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
+                            </header>
+                            <body>
+                              <trans-unit id="loco:5fd89b853ee27904dd6c5f68" resname="firstname.error" datatype="plaintext">
+                                <source>firstname.error</source>
+                                <target state="translated">Firstname must contains only letters.</target>
+                              </trans-unit>
+                              <trans-unit id="loco:5fd89b8542e5aa5cc27457e3" resname="lastname.error" datatype="plaintext" extradata="loco:format=icu">
+                                <source>lastname.error</source>
+                                <target state="translated">Lastname must contains only letters.</target>
+                              </trans-unit>
+                            </body>
+                          </file>
+                        </xliff>
+                        XLIFF,
                 ],
                 'fr' => [
                     'messages' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
-    <header>
-      <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
-    </header>
-    <body>
-      <trans-unit id="loco:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext">
-        <source>index.hello</source>
-        <target state="translated">Bonjour</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-                    ,
+                        <?xml version="1.0" encoding="UTF-8"?>
+                        <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+                          <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
+                            <header>
+                              <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
+                            </header>
+                            <body>
+                              <trans-unit id="loco:5fd89b853ee27904dd6c5f67" resname="index.hello" datatype="plaintext">
+                                <source>index.hello</source>
+                                <target state="translated">Bonjour</target>
+                              </trans-unit>
+                            </body>
+                          </file>
+                        </xliff>
+                        XLIFF,
                     'messages+intl-icu' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
-    <header>
-      <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
-    </header>
-    <body>
-      <trans-unit id="loco:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="loco:format=icu">
-        <source>index.greetings</source>
-        <target state="translated">Bienvenue, {firstname} !</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-                    ,
+                        <?xml version="1.0" encoding="UTF-8"?>
+                        <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+                          <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
+                            <header>
+                              <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
+                            </header>
+                            <body>
+                              <trans-unit id="loco:5fd89b8542e5aa5cc27457e2" resname="index.greetings" datatype="plaintext" extradata="loco:format=icu">
+                                <source>index.greetings</source>
+                                <target state="translated">Bienvenue, {firstname} !</target>
+                              </trans-unit>
+                            </body>
+                          </file>
+                        </xliff>
+                        XLIFF,
                     'validators' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
-    <header>
-      <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
-    </header>
-    <body>
-      <trans-unit id="loco:5fd89b853ee27904dd6c5f68" resname="firstname.error" datatype="plaintext">
-        <source>firstname.error</source>
-        <target state="translated">Le prénom ne peut contenir que des lettres.</target>
-      </trans-unit>
-      <trans-unit id="loco:5fd89b8542e5aa5cc27457e3" resname="lastname.error" datatype="plaintext" extradata="loco:format=icu">
-        <source>lastname.error</source>
-        <target state="translated">Le nom de famille ne peut contenir que des lettres.</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-                    ,
+                        <?xml version="1.0" encoding="UTF-8"?>
+                        <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+                          <file original="https://localise.biz/user/symfony-translation-provider" source-language="en" datatype="database" tool-id="loco">
+                            <header>
+                              <tool tool-id="loco" tool-name="Loco" tool-version="1.0.25 20201211-1" tool-company="Loco"/>
+                            </header>
+                            <body>
+                              <trans-unit id="loco:5fd89b853ee27904dd6c5f68" resname="firstname.error" datatype="plaintext">
+                                <source>firstname.error</source>
+                                <target state="translated">Le prénom ne peut contenir que des lettres.</target>
+                              </trans-unit>
+                              <trans-unit id="loco:5fd89b8542e5aa5cc27457e3" resname="lastname.error" datatype="plaintext" extradata="loco:format=icu">
+                                <source>lastname.error</source>
+                                <target state="translated">Le nom de famille ne peut contenir que des lettres.</target>
+                              </trans-unit>
+                            </body>
+                          </file>
+                        </xliff>
+                        XLIFF,
                 ],
             ],
             $expectedTranslatorBag,
@@ -1170,4 +1154,30 @@
             yield [$locales, $domains, $responseContents, $lastModifieds, $expectedTranslatorBag];
         }
     }
+
+    public function testReadForAllDomains()
+    {
+        $this->loader = $this->createMock(LoaderInterface::class);
+        $this->loader->expects($this->once())
+            ->method('load')
+            ->willReturn(new MessageCatalogue('fr'));
+
+        $provider = self::createProvider(
+            new MockHttpClient([
+                function (string $method, string $url, array $options = []): ResponseInterface {
+                    $this->assertSame('GET', $method);
+                    $this->assertSame('https://localise.biz/api/export/locale/fr.xlf?filter=&status=translated%2Cblank-translation', $url);
+                    $this->assertSame(['filter' => '', 'status' => 'translated,blank-translation'], $options['query']);
+
+                    return new MockResponse();
+                },
+            ], 'https://localise.biz/api/'),
+            $this->getLoader(),
+            $this->getLogger(),
+            $this->getDefaultLocale(),
+            'localise.biz/api/',
+        );
+
+        $this->translatorBag = $provider->read(['*'], ['fr']);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderWithoutTranslatorBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderWithoutTranslatorBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderWithoutTranslatorBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderWithoutTranslatorBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,6 +60,7 @@
             }
         }
 
+        $this->loader = $this->createMock(LoaderInterface::class);
         $loader = $this->getLoader();
         $consecutiveLoadArguments = array_merge($consecutiveLoadArguments, $consecutiveLoadArguments);
         $consecutiveLoadReturns = array_merge($consecutiveLoadReturns, $consecutiveLoadReturns);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/LokaliseProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/LokaliseProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/LokaliseProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/LokaliseProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use Psr\Log\LoggerInterface;
 use Symfony\Component\Translation\Exception\ProviderException;
+use Symfony\Component\Translation\Exception\RuntimeException;
 use Symfony\Component\Translation\Loader\LoaderInterface;
 use Symfony\Component\Translation\MessageCatalogueInterface;
 use Symfony\Component\Translation\Provider\ProviderInterface;
@@ -31,6 +32,9 @@
 final class LokaliseProvider implements ProviderInterface
 {
     private const LOKALISE_GET_KEYS_LIMIT = 5000;
+    private const PROJECT_TOO_BIG_STATUS_CODE = 413;
+    private const FAILED_PROCESS_STATUS = ['cancelled', 'failed'];
+    private const SUCESS_PROCESS_STATUS = 'finished';
 
     private HttpClientInterface $client;
     private LoaderInterface $loader;
@@ -49,7 +53,7 @@
 
     public function __toString(): string
     {
-        return sprintf('lokalise://%s', $this->endpoint);
+        return \sprintf('lokalise://%s', $this->endpoint);
     }
 
     /**
@@ -136,7 +140,7 @@
         ]);
 
         if (200 !== $response->getStatusCode()) {
-            throw new ProviderException(sprintf('Unable to delete keys from Lokalise: "%s".', $response->getContent(false)), $response);
+            throw new ProviderException(\sprintf('Unable to delete keys from Lokalise: "%s".', $response->getContent(false)), $response);
         }
     }
 
@@ -165,17 +169,131 @@
         }
 
         if (200 !== $response->getStatusCode()) {
-            throw new ProviderException(sprintf('Unable to export translations from Lokalise: "%s".', $response->getContent(false)), $response);
+            if (self::PROJECT_TOO_BIG_STATUS_CODE !== ($responseContent['error']['code'] ?? null)) {
+                throw new ProviderException(\sprintf('Unable to export translations from Lokalise: "%s".', $response->getContent(false)), $response);
+            }
+            if (!\extension_loaded('zip')) {
+                throw new ProviderException(\sprintf('Unable to export translations from Lokalise: "%s". Make sure that the "zip" extension is enabled.', $response->getContent(false)), $response);
+            }
+
+            return $this->exportFilesAsync($locales, $domains);
         }
 
         // Lokalise returns languages with "-" separator, we need to reformat them to "_" separator.
-        $reformattedLanguages = array_map(function ($language) {
-            return str_replace('-', '_', $language);
-        }, array_keys($responseContent['files']));
+        $reformattedLanguages = array_map(static fn ($language) => str_replace('-', '_', $language), array_keys($responseContent['files']));
 
         return array_combine($reformattedLanguages, $responseContent['files']);
     }
 
+    /**
+     * @see https://developers.lokalise.com/reference/download-files-async
+     */
+    private function exportFilesAsync(array $locales, array $domains): array
+    {
+        $response = $this->client->request('POST', 'files/async-download', [
+            'json' => [
+                'format' => 'symfony_xliff',
+                'original_filenames' => true,
+                'filter_langs' => array_values($locales),
+                'filter_filenames' => array_map($this->getLokaliseFilenameFromDomain(...), $domains),
+                'export_empty_as' => 'skip',
+                'replace_breaks' => false,
+            ],
+        ]);
+
+        if (200 !== $response->getStatusCode()) {
+            throw new ProviderException(\sprintf('Unable to export translations from Lokalise: "%s".', $response->getContent(false)), $response);
+        }
+
+        $processId = $response->toArray()['process_id'];
+        while (true) {
+            $response = $this->client->request('GET', \sprintf('processes/%s', $processId));
+            $process = $response->toArray()['process'];
+            if (\in_array($process['status'], self::FAILED_PROCESS_STATUS, true)) {
+                throw new ProviderException(\sprintf('Unable to export translations from Lokalise: "%s".', $response->getContent(false)), $response);
+            }
+            if (self::SUCESS_PROCESS_STATUS === $process['status']) {
+                $downloadUrl = $process['details']['download_url'];
+                break;
+            }
+            usleep(500000);
+        }
+
+        $response = $this->client->request('GET', $downloadUrl, ['buffer' => false]);
+        if (200 !== $response->getStatusCode()) {
+            throw new ProviderException(\sprintf('Unable to download translations file from Lokalise: "%s".', $response->getContent(false)), $response);
+        }
+        $zipFile = tempnam(sys_get_temp_dir(), 'lokalise');
+        $extractPath = $zipFile.'.dir';
+        try {
+            if (!$h = @fopen($zipFile, 'w')) {
+                throw new RuntimeException(error_get_last()['message'] ?? 'Failed to create temporary file.');
+            }
+            foreach ($this->client->stream($response) as $chunk) {
+                fwrite($h, $chunk->getContent());
+            }
+            fclose($h);
+
+            $zip = new \ZipArchive();
+            if (!$zip->open($zipFile)) {
+                throw new RuntimeException('Failed to open zipped translations from Lokalise.');
+            }
+
+            try {
+                if (!$zip->extractTo($extractPath)) {
+                    throw new RuntimeException('Failed to unzip translations from Lokalize.');
+                }
+            } finally {
+                $zip->close();
+            }
+
+            return $this->getZipContents($extractPath);
+        } finally {
+            if (\is_resource($h)) {
+                fclose($h);
+            }
+            @unlink($zipFile);
+            $this->removeDir($extractPath);
+        }
+    }
+
+    private function getZipContents(string $dir): array
+    {
+        $contents = [];
+        foreach (scandir($dir) as $lang) {
+            if (\in_array($lang, ['.', '..'], true)) {
+                continue;
+            }
+            $path = $dir.'/'.$lang;
+            // Lokalise returns languages with "-" separator, we need to reformat them to "_" separator.
+            $lang = str_replace('-', '_', $lang);
+            foreach (scandir($path) as $name) {
+                if (!\in_array($name, ['.', '..'], true)) {
+                    $contents[$lang][$name]['content'] = file_get_contents($path.'/'.$name);
+                }
+            }
+        }
+
+        return $contents;
+    }
+
+    private function removeDir(string $dir): void
+    {
+        if (!is_dir($dir)) {
+            return;
+        }
+        $it = new \RecursiveDirectoryIterator($dir, \RecursiveDirectoryIterator::SKIP_DOTS);
+        $files = new \RecursiveIteratorIterator($it, \RecursiveIteratorIterator::CHILD_FIRST);
+        foreach ($files as $file) {
+            if ($file->isDir()) {
+                rmdir($file->getPathname());
+            } else {
+                unlink($file->getPathname());
+            }
+        }
+        rmdir($dir);
+    }
+
     private function createKeys(array $keys, string $domain): array
     {
         $keysToCreate = [];
@@ -208,7 +326,7 @@
 
         foreach ($responses as $response) {
             if (200 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->error(sprintf('Unable to create keys to Lokalise: "%s".', $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to create keys to Lokalise: "%s".', $response->getContent(false)));
 
                 if (500 <= $statusCode) {
                     throw new ProviderException('Unable to create keys to Lokalise.', $response);
@@ -272,7 +390,7 @@
         ]);
 
         if (200 !== $statusCode = $response->getStatusCode()) {
-            $this->logger->error(sprintf('Unable to create/update translations to Lokalise: "%s".', $response->getContent(false)));
+            $this->logger->error(\sprintf('Unable to create/update translations to Lokalise: "%s".', $response->getContent(false)));
 
             if (500 <= $statusCode) {
                 throw new ProviderException('Unable to create/update translations to Lokalise.', $response);
@@ -292,7 +410,7 @@
         ]);
 
         if (200 !== $statusCode = $response->getStatusCode()) {
-            $this->logger->error(sprintf('Unable to get keys ids from Lokalise: "%s".', $response->getContent(false)));
+            $this->logger->error(\sprintf('Unable to get keys ids from Lokalise: "%s".', $response->getContent(false)));
 
             if (500 <= $statusCode) {
                 throw new ProviderException('Unable to get keys ids from Lokalise.', $response);
@@ -346,7 +464,7 @@
         $response = $this->client->request('GET', 'languages');
 
         if (200 !== $statusCode = $response->getStatusCode()) {
-            $this->logger->error(sprintf('Unable to get languages from Lokalise: "%s".', $response->getContent(false)));
+            $this->logger->error(\sprintf('Unable to get languages from Lokalise: "%s".', $response->getContent(false)));
 
             if (500 <= $statusCode) {
                 throw new ProviderException('Unable to get languages from Lokalise.', $response);
@@ -373,7 +491,7 @@
         ]);
 
         if (200 !== $statusCode = $response->getStatusCode()) {
-            $this->logger->error(sprintf('Unable to create languages on Lokalise: "%s".', $response->getContent(false)));
+            $this->logger->error(\sprintf('Unable to create languages on Lokalise: "%s".', $response->getContent(false)));
 
             if (500 <= $statusCode) {
                 throw new ProviderException('Unable to create languages on Lokalise.', $response);
@@ -383,6 +501,6 @@
 
     private function getLokaliseFilenameFromDomain(string $domain): string
     {
-        return sprintf('%s.xliff', $domain);
+        return \sprintf('%s.xliff', $domain);
     }
 }
Les fichiers binaires /tmp/BYAOhEC4uE/symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/Tests/Fixtures/Symfony-locale.zip et /tmp/QEOU4Z8YyZ/symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/Tests/Fixtures/Symfony-locale.zip sont différents
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/Tests/LokaliseProviderFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/Tests/LokaliseProviderFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/Tests/LokaliseProviderFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/Tests/LokaliseProviderFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,9 +11,11 @@
 
 namespace Symfony\Component\Translation\Bridge\Lokalise\Tests;
 
+use Psr\Log\NullLogger;
 use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\HttpClient\Response\JsonMockResponse;
 use Symfony\Component\Translation\Bridge\Lokalise\LokaliseProviderFactory;
+use Symfony\Component\Translation\Loader\ArrayLoader;
 use Symfony\Component\Translation\Provider\Dsn;
 use Symfony\Component\Translation\Provider\ProviderFactoryInterface;
 use Symfony\Component\Translation\Test\ProviderFactoryTestCase;
@@ -48,7 +50,7 @@
     {
         $response = new JsonMockResponse(['files' => []]);
         $httpClient = new MockHttpClient([$response]);
-        $factory = new LokaliseProviderFactory($httpClient, $this->getLogger(), $this->getDefaultLocale(), $this->getLoader());
+        $factory = new LokaliseProviderFactory($httpClient, new NullLogger(), $this->getDefaultLocale(), new ArrayLoader());
         $provider = $factory->create(new Dsn('lokalise://PROJECT_ID:API_KEY@default'));
 
         // Make a real HTTP request.
@@ -59,6 +61,6 @@
 
     public function createFactory(): ProviderFactoryInterface
     {
-        return new LokaliseProviderFactory($this->getClient(), $this->getLogger(), $this->getDefaultLocale(), $this->getLoader());
+        return new LokaliseProviderFactory(new MockHttpClient(), new NullLogger(), $this->getDefaultLocale(), new ArrayLoader());
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/Tests/LokaliseProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/Tests/LokaliseProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/Tests/LokaliseProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Lokalise/Tests/LokaliseProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -654,8 +654,8 @@
         $consecutiveLoadArguments = [];
         $consecutiveLoadReturns = [];
         $response = new JsonMockResponse([
-            'files' => array_reduce($locales, function ($carry, $locale) use ($domains, $responseContents, &$consecutiveLoadArguments, &$consecutiveLoadReturns) {
-                $carry[$locale] = array_reduce($domains, function ($carry, $domain) use ($locale, $responseContents, &$consecutiveLoadArguments, &$consecutiveLoadReturns) {
+            'files' => array_reduce($locales, static function ($carry, $locale) use ($domains, $responseContents, &$consecutiveLoadArguments, &$consecutiveLoadReturns) {
+                $carry[$locale] = array_reduce($domains, static function ($carry, $domain) use ($locale, $responseContents, &$consecutiveLoadArguments, &$consecutiveLoadReturns) {
                     $carry[$domain.'.xliff'] = [
                         'content' => $responseContents[$locale][$domain],
                     ];
@@ -670,7 +670,7 @@
             }, []),
         ]);
 
-        $loader = $this->getLoader();
+        $loader = $this->createMock(LoaderInterface::class);
         $loader->expects($this->exactly(\count($consecutiveLoadArguments)))
             ->method('load')
             ->willReturnCallback(function (...$args) use (&$consecutiveLoadArguments, &$consecutiveLoadReturns) {
@@ -697,6 +697,88 @@
         }
     }
 
+    /**
+     * @requires extension zip
+     */
+    public function testReadWithExportAsync()
+    {
+        $zipLocation = __DIR__.\DIRECTORY_SEPARATOR.'Fixtures'.\DIRECTORY_SEPARATOR.'Symfony-locale.zip';
+        $firstResponse = static fn (): ResponseInterface => new JsonMockResponse(
+            ['error' => ['code' => 413, 'message' => 'test']],
+            ['http_code' => 406],
+        );
+        $secondResponse = static fn (): ResponseInterface => new JsonMockResponse(
+            ['process_id' => 123],
+        );
+        $thirdResponse = static fn (): ResponseInterface => new JsonMockResponse(
+            ['process' => ['status' => 'finished', 'details' => ['download_url' => 'https://api.lokalise.com/Symfony-locale.zip']]],
+        );
+        $fourResponse = function (string $method, string $url, array $options = []) use ($zipLocation): ResponseInterface {
+            $this->assertSame('GET', $method);
+            $this->assertSame('https://api.lokalise.com/Symfony-locale.zip', $url);
+            $this->assertFalse($options['buffer']);
+
+            return new MockResponse(file_get_contents($zipLocation));
+        };
+
+        $provider = self::createProvider((new MockHttpClient([$firstResponse, $secondResponse, $thirdResponse, $fourResponse]))->withOptions([
+            'base_uri' => 'https://api.lokalise.com/api2/projects/PROJECT_ID/',
+            'headers' => ['X-Api-Token' => 'API_KEY'],
+        ]), new XliffFileLoader(), $this->getLogger(), $this->getDefaultLocale(), 'api.lokalise.com');
+        $translatorBag = $provider->read(['foo'], ['baz']);
+
+        // We don't want to assert equality of metadata here, due to the ArrayLoader usage.
+        /** @var MessageCatalogue $catalogue */
+        foreach ($translatorBag->getCatalogues() as $catalogue) {
+            $catalogue->deleteMetadata('', '');
+        }
+
+        $arrayLoader = new ArrayLoader();
+        $expectedTranslatorBag = new TranslatorBag();
+        $expectedTranslatorBag->addCatalogue($arrayLoader->load(
+            [
+                'how are you' => 'How are you?',
+                'welcome_header' => 'Hello world!',
+            ],
+            'en',
+            'no_filename'
+        ));
+        $expectedTranslatorBag->addCatalogue($arrayLoader->load(
+            [
+                'how are you' => 'Como estas?',
+                'welcome_header' => 'Hola mundo!',
+            ],
+            'es',
+            'no_filename'
+        ));
+        $this->assertEquals($expectedTranslatorBag->getCatalogues(), $translatorBag->getCatalogues());
+    }
+
+    /**
+     * @requires extension zip
+     */
+    public function testReadWithExportAsyncFailedProcess()
+    {
+        $firstResponse = static fn (): ResponseInterface => new JsonMockResponse(
+            ['error' => ['code' => 413, 'message' => 'test']],
+            ['http_code' => 406],
+        );
+        $secondResponse = static fn (): ResponseInterface => new JsonMockResponse(
+            ['process_id' => 123],
+        );
+        $thirdResponse = static fn (): ResponseInterface => new JsonMockResponse(
+            ['process' => ['status' => 'failed']],
+        );
+
+        $provider = self::createProvider((new MockHttpClient([$firstResponse, $secondResponse, $thirdResponse]))->withOptions([
+            'base_uri' => 'https://api.lokalise.com/api2/projects/PROJECT_ID/',
+            'headers' => ['X-Api-Token' => 'API_KEY'],
+        ]), new XliffFileLoader(), $this->getLogger(), $this->getDefaultLocale(), 'api.lokalise.com');
+
+        $this->expectException(ProviderException::class);
+        $provider->read(['foo'], ['baz']);
+    }
+
     public function testDeleteProcess()
     {
         $getKeysIdsForMessagesDomainResponse = function (string $method, string $url, array $options = []): ResponseInterface {
@@ -816,26 +898,25 @@
         ], 'en'));
 
         yield ['en', 'messages', <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="en">
-    <header>
-      <tool tool-id="lokalise.com" tool-name="Lokalise"/>
-    </header>
-    <body>
-      <trans-unit id="index.greetings" resname="index.greetings">
-        <source>index.greetings</source>
-        <target>Welcome, {firstname}!</target>
-      </trans-unit>
-      <trans-unit id="index.hello" resname="index.hello">
-        <source>index.hello</source>
-        <target>Hello</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-            ,
+            <?xml version="1.0" encoding="UTF-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+              <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="en">
+                <header>
+                  <tool tool-id="lokalise.com" tool-name="Lokalise"/>
+                </header>
+                <body>
+                  <trans-unit id="index.greetings" resname="index.greetings">
+                    <source>index.greetings</source>
+                    <target>Welcome, {firstname}!</target>
+                  </trans-unit>
+                  <trans-unit id="index.hello" resname="index.hello">
+                    <source>index.hello</source>
+                    <target>Hello</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+            XLIFF,
             $expectedTranslatorBagEn,
         ];
 
@@ -846,26 +927,25 @@
         ], 'en_US'));
 
         yield ['en_US', 'messages', <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="en-US">
-    <header>
-      <tool tool-id="lokalise.com" tool-name="Lokalise"/>
-    </header>
-    <body>
-      <trans-unit id="index.greetings" resname="index.greetings">
-        <source>index.greetings</source>
-        <target>Welcome, {firstname}!</target>
-      </trans-unit>
-      <trans-unit id="index.hello" resname="index.hello">
-        <source>index.hello</source>
-        <target>Hello</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-            ,
+            <?xml version="1.0" encoding="UTF-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+              <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="en-US">
+                <header>
+                  <tool tool-id="lokalise.com" tool-name="Lokalise"/>
+                </header>
+                <body>
+                  <trans-unit id="index.greetings" resname="index.greetings">
+                    <source>index.greetings</source>
+                    <target>Welcome, {firstname}!</target>
+                  </trans-unit>
+                  <trans-unit id="index.hello" resname="index.hello">
+                    <source>index.hello</source>
+                    <target>Hello</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+            XLIFF,
             $expectedTranslatorBagEnUS,
         ];
 
@@ -876,26 +956,25 @@
         ], 'fr'));
 
         yield ['fr', 'messages', <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="fr">
-    <header>
-      <tool tool-id="lokalise.com" tool-name="Lokalise"/>
-    </header>
-    <body>
-      <trans-unit id="index.greetings" resname="index.greetings">
-        <source>index.greetings</source>
-        <target>Bienvenue, {firstname} !</target>
-      </trans-unit>
-      <trans-unit id="index.hello" resname="index.hello">
-        <source>index.hello</source>
-        <target>Bonjour</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-            ,
+            <?xml version="1.0" encoding="UTF-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+              <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="fr">
+                <header>
+                  <tool tool-id="lokalise.com" tool-name="Lokalise"/>
+                </header>
+                <body>
+                  <trans-unit id="index.greetings" resname="index.greetings">
+                    <source>index.greetings</source>
+                    <target>Bienvenue, {firstname} !</target>
+                  </trans-unit>
+                  <trans-unit id="index.hello" resname="index.hello">
+                    <source>index.hello</source>
+                    <target>Bonjour</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+            XLIFF,
             $expectedTranslatorBagFr,
         ];
     }
@@ -928,91 +1007,87 @@
             [
                 'en' => [
                     'messages' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="en">
-    <header>
-      <tool tool-id="lokalise.com" tool-name="Lokalise"/>
-    </header>
-    <body>
-      <trans-unit id="index.greetings" resname="index.greetings">
-        <source>index.greetings</source>
-        <target>Welcome, {firstname}!</target>
-      </trans-unit>
-      <trans-unit id="index.hello" resname="index.hello">
-        <source>index.hello</source>
-        <target>Hello</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-                    ,
+                        <?xml version="1.0" encoding="UTF-8"?>
+                        <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+                          <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="en">
+                            <header>
+                              <tool tool-id="lokalise.com" tool-name="Lokalise"/>
+                            </header>
+                            <body>
+                              <trans-unit id="index.greetings" resname="index.greetings">
+                                <source>index.greetings</source>
+                                <target>Welcome, {firstname}!</target>
+                              </trans-unit>
+                              <trans-unit id="index.hello" resname="index.hello">
+                                <source>index.hello</source>
+                                <target>Hello</target>
+                              </trans-unit>
+                            </body>
+                          </file>
+                        </xliff>
+                        XLIFF,
                     'validators' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="en">
-    <header>
-      <tool tool-id="lokalise.com" tool-name="Lokalise"/>
-    </header>
-    <body>
-      <trans-unit id="lastname.error" resname="lastname.error">
-        <source>lastname.error</source>
-        <target>Lastname must contains only letters.</target>
-      </trans-unit>
-      <trans-unit id="firstname.error" resname="firstname.error">
-        <source>firstname.error</source>
-        <target>Firstname must contains only letters.</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-                    ,
+                        <?xml version="1.0" encoding="UTF-8"?>
+                        <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+                          <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="en">
+                            <header>
+                              <tool tool-id="lokalise.com" tool-name="Lokalise"/>
+                            </header>
+                            <body>
+                              <trans-unit id="lastname.error" resname="lastname.error">
+                                <source>lastname.error</source>
+                                <target>Lastname must contains only letters.</target>
+                              </trans-unit>
+                              <trans-unit id="firstname.error" resname="firstname.error">
+                                <source>firstname.error</source>
+                                <target>Firstname must contains only letters.</target>
+                              </trans-unit>
+                            </body>
+                          </file>
+                        </xliff>
+                        XLIFF,
                 ],
                 'fr' => [
                     'messages' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="fr">
-    <header>
-      <tool tool-id="lokalise.com" tool-name="Lokalise"/>
-    </header>
-    <body>
-      <trans-unit id="index.greetings" resname="index.greetings">
-        <source>index.greetings</source>
-        <target>Bienvenue, {firstname} !</target>
-      </trans-unit>
-      <trans-unit id="index.hello" resname="index.hello">
-        <source>index.hello</source>
-        <target>Bonjour</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-                    ,
+                        <?xml version="1.0" encoding="UTF-8"?>
+                        <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+                          <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="fr">
+                            <header>
+                              <tool tool-id="lokalise.com" tool-name="Lokalise"/>
+                            </header>
+                            <body>
+                              <trans-unit id="index.greetings" resname="index.greetings">
+                                <source>index.greetings</source>
+                                <target>Bienvenue, {firstname} !</target>
+                              </trans-unit>
+                              <trans-unit id="index.hello" resname="index.hello">
+                                <source>index.hello</source>
+                                <target>Bonjour</target>
+                              </trans-unit>
+                            </body>
+                          </file>
+                        </xliff>
+                        XLIFF,
                     'validators' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
-  <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="fr">
-    <header>
-      <tool tool-id="lokalise.com" tool-name="Lokalise"/>
-    </header>
-    <body>
-      <trans-unit id="lastname.error" resname="lastname.error">
-        <source>lastname.error</source>
-        <target>Le nom de famille ne peut contenir que des lettres.</target>
-      </trans-unit>
-      <trans-unit id="firstname.error" resname="firstname.error">
-        <source>firstname.error</source>
-        <target>Le prénom ne peut contenir que des lettres.</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF
-                    ,
+                        <?xml version="1.0" encoding="UTF-8"?>
+                        <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+                          <file original="" datatype="plaintext" xml:space="preserve" source-language="en" target-language="fr">
+                            <header>
+                              <tool tool-id="lokalise.com" tool-name="Lokalise"/>
+                            </header>
+                            <body>
+                              <trans-unit id="lastname.error" resname="lastname.error">
+                                <source>lastname.error</source>
+                                <target>Le nom de famille ne peut contenir que des lettres.</target>
+                              </trans-unit>
+                              <trans-unit id="firstname.error" resname="firstname.error">
+                                <source>firstname.error</source>
+                                <target>Le prénom ne peut contenir que des lettres.</target>
+                              </trans-unit>
+                            </body>
+                          </file>
+                        </xliff>
+                        XLIFF,
                 ],
             ],
             $expectedTranslatorBag,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -22,6 +22,9 @@
         "symfony/mime": "^5.4|^6.0|^7.0",
         "symfony/translation": "^5.4|^6.0|^7.0"
     },
+    "require-dev": {
+        "symfony/cache": "^6.4|^7.3"
+    },
     "autoload": {
         "psr-4": { "Symfony\\Component\\Translation\\Bridge\\Phrase\\": "" },
         "exclude-from-classmap": [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/phpunit.xml.dist symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/phpunit.xml.dist
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/phpunit.xml.dist	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/phpunit.xml.dist	2026-05-20 10:56:49.000000000 +0200
@@ -10,11 +10,6 @@
 >
     <php>
         <ini name="error_reporting" value="-1" />
-        <ini name="memory_limit" value="-1" />
-        <ini name="log_errors_max_len" value="0" />
-        <ini name="zend.assertions" value="1" />
-        <ini name="assert.exception" value="1" />
-        <ini name="xdebug.show_exception_trace" value="0" />
     </php>
 
     <testsuites>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/PhraseProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/PhraseProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/PhraseProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/PhraseProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
 
     public function __toString(): string
     {
-        return sprintf('phrase://%s', $this->endpoint);
+        return \sprintf('phrase://%s', $this->endpoint);
     }
 
     public function write(TranslatorBagInterface $translatorBag): void
@@ -63,7 +63,7 @@
                 $phraseLocale = $this->getLocale($catalogue->getLocale());
 
                 $content = $this->xliffFileDumper->formatCatalogue($catalogue, $domain, ['default_locale' => $this->defaultLocale]);
-                $filename = sprintf('%d-%s-%s.xlf', date('YmdHis'), $domain, $catalogue->getLocale());
+                $filename = \sprintf('%d-%s-%s.xlf', date('YmdHis'), $domain, $catalogue->getLocale());
 
                 $this->writeConfig['tags'] = $domain;
                 $this->writeConfig['locale_id'] = $phraseLocale;
@@ -77,7 +77,7 @@
                 ]);
 
                 if (201 !== $statusCode = $response->getStatusCode()) {
-                    $this->logger->error(sprintf('Unable to upload translations for domain "%s" to phrase: "%s".', $domain, $response->getContent(false)));
+                    $this->logger->error(\sprintf('Unable to upload translations for domain "%s" to phrase: "%s".', $domain, $response->getContent(false)));
 
                     $this->throwProviderException($statusCode, $response, 'Unable to upload translations to phrase.');
                 }
@@ -115,7 +115,7 @@
                 ]);
 
                 if (200 !== ($statusCode = $response->getStatusCode()) && 304 !== $statusCode) {
-                    $this->logger->error(sprintf('Unable to get translations for locale "%s" from phrase: "%s".', $locale, $response->getContent(false)));
+                    $this->logger->error(\sprintf('Unable to get translations for locale "%s" from phrase: "%s".', $locale, $response->getContent(false)));
 
                     $this->throwProviderException($statusCode, $response, 'Unable to get translations from phrase.');
                 }
@@ -156,7 +156,7 @@
             ]);
 
             if (200 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->error(sprintf('Unable to delete key "%s" in phrase: "%s".', $name, $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to delete key "%s" in phrase: "%s".', $name, $response->getContent(false)));
 
                 $this->throwProviderException($statusCode, $response, 'Unable to delete key in phrase.');
             }
@@ -167,7 +167,7 @@
     {
         array_multisort($options);
 
-        return sprintf('%s.%s.%s', $locale, $domain, sha1(serialize($options)));
+        return \sprintf('%s.%s.%s', $locale, $domain, sha1(serialize($options)));
     }
 
     private function getLocale(string $locale): string
@@ -206,7 +206,7 @@
         ]);
 
         if (201 !== $statusCode = $response->getStatusCode()) {
-            $this->logger->error(sprintf('Unable to create locale "%s" in phrase: "%s".', $locale, $response->getContent(false)));
+            $this->logger->error(\sprintf('Unable to create locale "%s" in phrase: "%s".', $locale, $response->getContent(false)));
 
             $this->throwProviderException($statusCode, $response, 'Unable to create locale phrase.');
         }
@@ -229,7 +229,7 @@
             ]);
 
             if (200 !== $statusCode = $response->getStatusCode()) {
-                $this->logger->error(sprintf('Unable to get locales from phrase: "%s".', $response->getContent(false)));
+                $this->logger->error(\sprintf('Unable to get locales from phrase: "%s".', $response->getContent(false)));
 
                 $this->throwProviderException($statusCode, $response, 'Unable to get locales from phrase.');
             }
@@ -248,7 +248,7 @@
         $headers = $response->getHeaders(false);
 
         throw match (true) {
-            429 === $statusCode => new ProviderException(sprintf('Rate limit exceeded (%s). please wait %s seconds.',
+            429 === $statusCode => new ProviderException(\sprintf('Rate limit exceeded (%s). please wait %s seconds.',
                 $headers['x-rate-limit-limit'][0],
                 $headers['x-rate-limit-reset'][0]
             ), $response),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,29 +11,32 @@
 
 namespace Symfony\Component\Translation\Bridge\Phrase\Tests;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Psr\Cache\CacheItemPoolInterface;
 use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
+use Symfony\Component\Cache\Adapter\NullAdapter;
 use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\Translation\Bridge\Phrase\PhraseProviderFactory;
 use Symfony\Component\Translation\Dumper\XliffFileDumper;
 use Symfony\Component\Translation\Exception\IncompleteDsnException;
 use Symfony\Component\Translation\Exception\MissingRequiredOptionException;
 use Symfony\Component\Translation\Exception\UnsupportedSchemeException;
+use Symfony\Component\Translation\Loader\ArrayLoader;
 use Symfony\Component\Translation\Loader\LoaderInterface;
 use Symfony\Component\Translation\Provider\Dsn;
+use Symfony\Contracts\HttpClient\HttpClientInterface;
 
 /**
  * @author wicliff <wicliff.wolda@gmail.com>
  */
 class PhraseProviderFactoryTest extends TestCase
 {
-    private MockObject&MockHttpClient $httpClient;
-    private MockObject&LoggerInterface $logger;
-    private MockObject&LoaderInterface $loader;
-    private MockObject&XliffFileDumper $xliffFileDumper;
-    private MockObject&CacheItemPoolInterface $cache;
+    private MockHttpClient $httpClient;
+    private LoggerInterface $logger;
+    private LoaderInterface $loader;
+    private XliffFileDumper $xliffFileDumper;
+    private CacheItemPoolInterface $cache;
     private string $defaultLocale;
 
     /**
@@ -98,7 +101,8 @@
 
     public function testHttpClientConfig()
     {
-        $this->getHttpClient()
+        $httpClient = $this->createMock(HttpClientInterface::class);
+        $httpClient
             ->expects(self::once())
             ->method('withOptions')
             ->with([
@@ -111,7 +115,7 @@
 
         $dsn = new Dsn('phrase://PROJECT_ID:API_TOKEN@api.us.app.phrase.com:8080?userAgent=myProject');
 
-        $this->createFactory()
+        $this->createFactory($httpClient)
             ->create($dsn);
     }
 
@@ -144,10 +148,10 @@
         yield 'not supported' => [false, 'unsupported://PROJECT_ID:API_TOKEN@default?userAgent=myProject'];
     }
 
-    private function createFactory(): PhraseProviderFactory
+    private function createFactory(?HttpClientInterface $httpClient = null): PhraseProviderFactory
     {
         return new PhraseProviderFactory(
-            $this->getHttpClient(),
+            $httpClient ?? $this->getHttpClient(),
             $this->getLogger(),
             $this->getLoader(),
             $this->getXliffFileDumper(),
@@ -156,29 +160,29 @@
         );
     }
 
-    private function getHttpClient(): MockObject&MockHttpClient
+    private function getHttpClient(): MockHttpClient
     {
-        return $this->httpClient ??= $this->createMock(MockHttpClient::class);
+        return $this->httpClient ??= new MockHttpClient();
     }
 
-    private function getLogger(): MockObject&LoggerInterface
+    private function getLogger(): LoggerInterface
     {
-        return $this->logger ??= $this->createMock(LoggerInterface::class);
+        return $this->logger ??= new NullLogger();
     }
 
-    private function getLoader(): MockObject&LoaderInterface
+    private function getLoader(): LoaderInterface
     {
-        return $this->loader ??= $this->createMock(LoaderInterface::class);
+        return $this->loader ??= new ArrayLoader();
     }
 
-    private function getXliffFileDumper(): XliffFileDumper&MockObject
+    private function getXliffFileDumper(): XliffFileDumper
     {
-        return $this->xliffFileDumper ??= $this->createMock(XliffFileDumper::class);
+        return $this->xliffFileDumper ??= new XliffFileDumper();
     }
 
-    private function getCache(): MockObject&CacheItemPoolInterface
+    private function getCache(): CacheItemPoolInterface
     {
-        return $this->cache ??= $this->createMock(CacheItemPoolInterface::class);
+        return $this->cache ??= new NullAdapter();
     }
 
     private function getDefaultLocale(): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Bridge/Phrase/Tests/PhraseProviderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,11 +11,11 @@
 
 namespace Symfony\Component\Translation\Bridge\Phrase\Tests;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Psr\Cache\CacheItemInterface;
 use Psr\Cache\CacheItemPoolInterface;
 use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
 use Symfony\Component\HttpClient\HttpClientTrait;
 use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\HttpClient\Response\JsonMockResponse;
@@ -39,10 +39,10 @@
     }
 
     private MockHttpClient $httpClient;
-    private MockObject&LoggerInterface $logger;
-    private MockObject&LoaderInterface $loader;
-    private MockObject&XliffFileDumper $xliffFileDumper;
-    private MockObject&CacheItemPoolInterface $cache;
+    private LoggerInterface $logger;
+    private LoaderInterface $loader;
+    private XliffFileDumper $xliffFileDumper;
+    private CacheItemPoolInterface $cache;
     private string $defaultLocale;
     private string $endpoint;
     private array $readConfig;
@@ -78,7 +78,6 @@
             }));
 
         $this->getCache()
-            ->expects(self::once())
             ->method('getItem')
             ->with(self::callback(function ($v) use ($locale, $domain) {
                 $this->assertStringStartsWith($locale.'.'.$domain.'.', $v);
@@ -93,7 +92,6 @@
         ];
 
         $this->getLoader()
-            ->expects($this->once())
             ->method('load')
             ->willReturn($expectedTranslatorBag->getCatalogue($locale));
 
@@ -132,6 +130,7 @@
                 return true;
             }));
 
+        $this->cache = $this->createMock(CacheItemPoolInterface::class);
         $this->getCache()
             ->expects(self::once())
             ->method('getItem')
@@ -161,7 +160,6 @@
         ];
 
         $this->getLoader()
-            ->expects($this->once())
             ->method('load')
             ->willReturn($expectedTranslatorBag->getCatalogue($locale));
 
@@ -210,6 +208,7 @@
         $item->expects(self::once())->method('isHit')->willReturn(false);
         $item->expects(self::never())->method('set');
 
+        $this->cache = $this->createMock(CacheItemPoolInterface::class);
         $this->getCache()
             ->expects(self::once())
             ->method('getItem')
@@ -221,6 +220,7 @@
             ->willReturn($item);
 
         $this->getCache()->expects(self::never())->method('save');
+        $this->loader = $this->createMock(LoaderInterface::class);
         $this->getLoader()->expects($this->once())->method('load')->willReturn($bag->getCatalogue($locale));
 
         $responses = [
@@ -265,6 +265,7 @@
      */
     public function testCacheKeyOptionsSort(array $options, string $expectedKey)
     {
+        $this->cache = $this->createMock(CacheItemPoolInterface::class);
         $this->getCache()->expects(self::once())->method('getItem')->with($expectedKey);
         $this->getLoader()->method('load')->willReturn(new MessageCatalogue('en'));
 
@@ -301,7 +302,6 @@
         $item->method('get')->willReturn($cachedValue);
 
         $this->getCache()
-            ->expects(self::once())
             ->method('getItem')
             ->willReturn($item);
 
@@ -385,6 +385,7 @@
         $this->expectExceptionCode(0);
         $this->expectExceptionMessage($expectedExceptionMessage);
 
+        $this->logger = $this->createMock(LoggerInterface::class);
         $this->getLogger()
             ->expects(self::once())
             ->method('error')
@@ -421,6 +422,7 @@
         $this->expectExceptionCode(0);
         $this->expectExceptionMessage($expectedExceptionMessage);
 
+        $this->logger = $this->createMock(LoggerInterface::class);
         $this->getLogger()
             ->expects(self::once())
             ->method('error')
@@ -545,6 +547,7 @@
         $this->expectExceptionCode(0);
         $this->expectExceptionMessage($expectedExceptionMessage);
 
+        $this->logger = $this->createMock(LoggerInterface::class);
         $this->getLogger()
             ->expects(self::once())
             ->method('error')
@@ -633,6 +636,7 @@
         $this->expectExceptionCode(0);
         $this->expectExceptionMessage($expectedExceptionMessage);
 
+        $this->logger = $this->createMock(LoggerInterface::class);
         $this->getLogger()
             ->expects(self::once())
             ->method('error')
@@ -751,6 +755,7 @@
         $this->expectExceptionCode(0);
         $this->expectExceptionMessage($expectedExceptionMessage);
 
+        $this->logger = $this->createMock(LoggerInterface::class);
         $this->getLogger()
             ->expects(self::once())
             ->method('error')
@@ -792,26 +797,26 @@
     public static function writeProvider(): \Generator
     {
         $expectedEnglishXliff = <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en-GB" target-language="en-GB" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="general.back">
-        <source>general.back</source>
-        <target><![CDATA[back &!]]></target>
-      </trans-unit>
-      <trans-unit id="%s" resname="general.cancel">
-        <source>general.cancel</source>
-        <target>Cancel</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en-GB" target-language="en-GB" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="general.back">
+                    <source>general.back</source>
+                    <target><![CDATA[back &!]]></target>
+                  </trans-unit>
+                  <trans-unit id="%s" resname="general.cancel">
+                    <source>general.cancel</source>
+                    <target>Cancel</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF;
+            XLIFF;
 
         $bag = new TranslatorBag();
         $bag->addCatalogue(new MessageCatalogue('en_GB', [
@@ -832,26 +837,26 @@
         ];
 
         $expectedGermanXliff = <<<'XLIFF'
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en-GB" target-language="de" datatype="plaintext" original="file.ext">
-    <header>
-      <tool tool-id="symfony" tool-name="Symfony"/>
-    </header>
-    <body>
-      <trans-unit id="%s" resname="general.back">
-        <source>general.back</source>
-        <target>zurück</target>
-      </trans-unit>
-      <trans-unit id="%s" resname="general.cancel">
-        <source>general.cancel</source>
-        <target>Abbrechen</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en-GB" target-language="de" datatype="plaintext" original="file.ext">
+                <header>
+                  <tool tool-id="symfony" tool-name="Symfony"/>
+                </header>
+                <body>
+                  <trans-unit id="%s" resname="general.back">
+                    <source>general.back</source>
+                    <target>zurück</target>
+                  </trans-unit>
+                  <trans-unit id="%s" resname="general.cancel">
+                    <source>general.cancel</source>
+                    <target>Abbrechen</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
 
-XLIFF;
+            XLIFF;
 
         $bag = new TranslatorBag();
         $bag->addCatalogue(new MessageCatalogue('de', [
@@ -960,23 +965,23 @@
             'locale_id' => '13604ec993beefcdaba732812cdb828c',
             'domain' => 'messages',
             'content' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file original="global" datatype="plaintext" source-language="de" target-language="en-GB">
-    <body>
-      <trans-unit id="general.back" resname="general.back">
-        <source xml:lang="de"><![CDATA[zurück </rant >]]></source>
-        <target xml:lang="en" state="signed-off"><![CDATA[back  {{ placeholder }} </rant >]]></target>
-        <note>this should have a cdata section</note>
-      </trans-unit>
-      <trans-unit id="general.cancel" resname="general.cancel">
-        <source xml:lang="de">Abbrechen</source>
-        <target xml:lang="en" state="translated">Cancel</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF,
+                <?xml version="1.0" encoding="UTF-8"?>
+                <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+                  <file original="global" datatype="plaintext" source-language="de" target-language="en-GB">
+                    <body>
+                      <trans-unit id="general.back" resname="general.back">
+                        <source xml:lang="de"><![CDATA[zurück </rant >]]></source>
+                        <target xml:lang="en" state="signed-off"><![CDATA[back  {{ placeholder }} </rant >]]></target>
+                        <note>this should have a cdata section</note>
+                      </trans-unit>
+                      <trans-unit id="general.cancel" resname="general.cancel">
+                        <source xml:lang="de">Abbrechen</source>
+                        <target xml:lang="en" state="translated">Cancel</target>
+                      </trans-unit>
+                    </body>
+                  </file>
+                </xliff>
+                XLIFF,
             'expected bag' => $bag,
         ];
 
@@ -1008,23 +1013,23 @@
             'locale_id' => '5fea6ed5c21767730918a9400e420832',
             'domain' => 'validators',
             'content' => <<<'XLIFF'
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file original="file.ext" datatype="plaintext" source-language="de" target-language="de">
-    <body>
-      <trans-unit id="A PHP extension caused the upload to fail." resname="A PHP extension caused the upload to fail.">
-        <source xml:lang="de">Eine PHP-Erweiterung verhinderte den Upload.</source>
-        <target xml:lang="de" state="signed-off">Eine PHP-Erweiterung verhinderte den Upload.</target>
-      </trans-unit>
-      <trans-unit id="An empty file is not allowed." resname="An empty file is not allowed.">
-        <source xml:lang="de">Eine leere Datei ist nicht erlaubt.</source>
-        <target xml:lang="de" state="signed-off">Eine leere Datei ist nicht erlaubt.</target>
-        <note>be sure not to allow an empty file</note>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF,
+                <?xml version="1.0" encoding="UTF-8"?>
+                <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+                  <file original="file.ext" datatype="plaintext" source-language="de" target-language="de">
+                    <body>
+                      <trans-unit id="A PHP extension caused the upload to fail." resname="A PHP extension caused the upload to fail.">
+                        <source xml:lang="de">Eine PHP-Erweiterung verhinderte den Upload.</source>
+                        <target xml:lang="de" state="signed-off">Eine PHP-Erweiterung verhinderte den Upload.</target>
+                      </trans-unit>
+                      <trans-unit id="An empty file is not allowed." resname="An empty file is not allowed.">
+                        <source xml:lang="de">Eine leere Datei ist nicht erlaubt.</source>
+                        <target xml:lang="de" state="signed-off">Eine leere Datei ist nicht erlaubt.</target>
+                        <note>be sure not to allow an empty file</note>
+                      </trans-unit>
+                    </body>
+                  </file>
+                </xliff>
+                XLIFF,
             'expected bag' => $bag,
         ];
     }
@@ -1124,24 +1129,24 @@
         return $this->httpClient ??= new MockHttpClient();
     }
 
-    private function getLogger(): MockObject&LoggerInterface
+    private function getLogger(): LoggerInterface
     {
-        return $this->logger ??= $this->createMock(LoggerInterface::class);
+        return $this->logger ??= new NullLogger();
     }
 
-    private function getLoader(): MockObject&LoaderInterface
+    private function getLoader(): LoaderInterface
     {
-        return $this->loader ??= $this->createMock(LoaderInterface::class);
+        return $this->loader ??= $this->createStub(LoaderInterface::class);
     }
 
-    private function getXliffFileDumper(): XliffFileDumper&MockObject
+    private function getXliffFileDumper(): XliffFileDumper
     {
-        return $this->xliffFileDumper ??= $this->createMock(XliffFileDumper::class);
+        return $this->xliffFileDumper ??= $this->createStub(XliffFileDumper::class);
     }
 
-    private function getCache(): MockObject&CacheItemPoolInterface
+    private function getCache(): CacheItemPoolInterface
     {
-        return $this->cache ??= $this->createMock(CacheItemPoolInterface::class);
+        return $this->cache ??= $this->createStub(CacheItemPoolInterface::class);
     }
 
     private function getDefaultLocale(): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Catalogue/AbstractOperation.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Catalogue/AbstractOperation.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Catalogue/AbstractOperation.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Catalogue/AbstractOperation.php	2026-05-20 10:56:49.000000000 +0200
@@ -97,7 +97,7 @@
     public function getMessages(string $domain): array
     {
         if (!\in_array($domain, $this->getDomains())) {
-            throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain));
+            throw new InvalidArgumentException(\sprintf('Invalid domain: "%s".', $domain));
         }
 
         if (!isset($this->messages[$domain][self::ALL_BATCH])) {
@@ -110,7 +110,7 @@
     public function getNewMessages(string $domain): array
     {
         if (!\in_array($domain, $this->getDomains())) {
-            throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain));
+            throw new InvalidArgumentException(\sprintf('Invalid domain: "%s".', $domain));
         }
 
         if (!isset($this->messages[$domain][self::NEW_BATCH])) {
@@ -123,7 +123,7 @@
     public function getObsoleteMessages(string $domain): array
     {
         if (!\in_array($domain, $this->getDomains())) {
-            throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain));
+            throw new InvalidArgumentException(\sprintf('Invalid domain: "%s".', $domain));
         }
 
         if (!isset($this->messages[$domain][self::OBSOLETE_BATCH])) {
@@ -160,7 +160,7 @@
                 self::OBSOLETE_BATCH => $this->getObsoleteMessages($domain),
                 self::NEW_BATCH => $this->getNewMessages($domain),
                 self::ALL_BATCH => $this->getMessages($domain),
-                default => throw new \InvalidArgumentException(sprintf('$batch argument must be one of ["%s", "%s", "%s"].', self::ALL_BATCH, self::NEW_BATCH, self::OBSOLETE_BATCH)),
+                default => throw new \InvalidArgumentException(\sprintf('$batch argument must be one of ["%s", "%s", "%s"].', self::ALL_BATCH, self::NEW_BATCH, self::OBSOLETE_BATCH)),
             };
 
             if (!$messages || (!$this->source->all($intlDomain) && $this->source->all($domain))) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Command/TranslationPullCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Command/TranslationPullCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Command/TranslationPullCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Command/TranslationPullCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -92,27 +92,27 @@
                 new InputArgument('provider', null !== $defaultProvider ? InputArgument::OPTIONAL : InputArgument::REQUIRED, 'The provider to pull translations from.', $defaultProvider),
                 new InputOption('force', null, InputOption::VALUE_NONE, 'Override existing translations with provider ones (it will delete not synchronized messages).'),
                 new InputOption('intl-icu', null, InputOption::VALUE_NONE, 'Associated to --force option, it will write messages in "%domain%+intl-icu.%locale%.xlf" files.'),
-                new InputOption('domains', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the domains to pull.'),
-                new InputOption('locales', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the locales to pull.'),
-                new InputOption('format', null, InputOption::VALUE_OPTIONAL, 'Override the default output format.', 'xlf12'),
-                new InputOption('as-tree', null, InputOption::VALUE_OPTIONAL, 'Write messages as a tree-like structure. Needs --format=yaml. The given value defines the level where to switch to inline YAML'),
+                new InputOption('domains', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Specify the domains to pull.'),
+                new InputOption('locales', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Specify the locales to pull.'),
+                new InputOption('format', null, InputOption::VALUE_REQUIRED, 'Override the default output format.', 'xlf12'),
+                new InputOption('as-tree', null, InputOption::VALUE_REQUIRED, 'Write messages as a tree-like structure. Needs --format=yaml. The given value defines the level where to switch to inline YAML'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</> command pulls translations from the given provider. Only
-new translations are pulled, existing ones are not overwritten.
+                The <info>%command.name%</> command pulls translations from the given provider. Only
+                new translations are pulled, existing ones are not overwritten.
 
-You can overwrite existing translations (and remove the missing ones on local side) by using the <comment>--force</> flag:
+                You can overwrite existing translations (and remove the missing ones on local side) by using the <comment>--force</> flag:
 
-  <info>php %command.full_name% --force provider</>
+                  <info>php %command.full_name% --force provider</>
 
-Full example:
+                Full example:
 
-  <info>php %command.full_name% provider --force --domains=messages --domains=validators --locales=en</>
+                  <info>php %command.full_name% provider --force --domains=messages --domains=validators --locales=en</>
 
-This command pulls all translations associated with the <comment>messages</> and <comment>validators</> domains for the <comment>en</> locale.
-Local translations for the specified domains and locale are deleted if they're not present on the provider and overwritten if it's the case.
-Local translations for others domains and locales are ignored.
-EOF
+                This command pulls all translations associated with the <comment>messages</> and <comment>validators</> domains for the <comment>en</> locale.
+                Local translations for the specified domains and locale are deleted if they're not present on the provider and overwritten if it's the case.
+                Local translations for others domains and locales are ignored.
+                EOF
             )
         ;
     }
@@ -163,7 +163,7 @@
                 $this->writer->write($operation->getResult(), $format, $writeOptions);
             }
 
-            $io->success(sprintf('Local translations has been updated from "%s" (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
+            $io->success(\sprintf('Local translations has been updated from "%s" (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
 
             return 0;
         }
@@ -177,7 +177,7 @@
             $this->writer->write($catalogue, $format, $writeOptions);
         }
 
-        $io->success(sprintf('New translations from "%s" has been written locally (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
+        $io->success(\sprintf('New translations from "%s" has been written locally (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
 
         return 0;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Command/TranslationPushCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Command/TranslationPushCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Command/TranslationPushCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Command/TranslationPushCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,29 +83,29 @@
                 new InputArgument('provider', null !== $defaultProvider ? InputArgument::OPTIONAL : InputArgument::REQUIRED, 'The provider to push translations to.', $defaultProvider),
                 new InputOption('force', null, InputOption::VALUE_NONE, 'Override existing translations with local ones (it will delete not synchronized messages).'),
                 new InputOption('delete-missing', null, InputOption::VALUE_NONE, 'Delete translations available on provider but not locally.'),
-                new InputOption('domains', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the domains to push.'),
-                new InputOption('locales', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the locales to push.', $this->enabledLocales),
+                new InputOption('domains', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Specify the domains to push.'),
+                new InputOption('locales', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Specify the locales to push.', $this->enabledLocales),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</> command pushes translations to the given provider. Only new
-translations are pushed, existing ones are not overwritten.
+                The <info>%command.name%</> command pushes translations to the given provider. Only new
+                translations are pushed, existing ones are not overwritten.
 
-You can overwrite existing translations by using the <comment>--force</> flag:
+                You can overwrite existing translations by using the <comment>--force</> flag:
 
-  <info>php %command.full_name% --force provider</>
+                  <info>php %command.full_name% --force provider</>
 
-You can delete provider translations which are not present locally by using the <comment>--delete-missing</> flag:
+                You can delete provider translations which are not present locally by using the <comment>--delete-missing</> flag:
 
-  <info>php %command.full_name% --delete-missing provider</>
+                  <info>php %command.full_name% --delete-missing provider</>
 
-Full example:
+                Full example:
 
-  <info>php %command.full_name% provider --force --delete-missing --domains=messages --domains=validators --locales=en</>
+                  <info>php %command.full_name% provider --force --delete-missing --domains=messages --domains=validators --locales=en</>
 
-This command pushes all translations associated with the <comment>messages</> and <comment>validators</> domains for the <comment>en</> locale.
-Provider translations for the specified domains and locale are deleted if they're not present locally and overwritten if it's the case.
-Provider translations for others domains and locales are ignored.
-EOF
+                This command pushes all translations associated with the <comment>messages</> and <comment>validators</> domains for the <comment>en</> locale.
+                Provider translations for the specified domains and locale are deleted if they're not present locally and overwritten if it's the case.
+                Provider translations for others domains and locales are ignored.
+                EOF
             )
         ;
     }
@@ -115,7 +115,7 @@
         $provider = $this->providers->get($input->getArgument('provider'));
 
         if (!$this->enabledLocales) {
-            throw new InvalidArgumentException(sprintf('You must define "framework.enabled_locales" or "framework.translator.providers.%s.locales" config key in order to work with translation providers.', parse_url($provider, \PHP_URL_SCHEME)));
+            throw new InvalidArgumentException(\sprintf('You must define "framework.enabled_locales" or "framework.translator.providers.%s.locales" config key in order to work with translation providers.', parse_url($provider, \PHP_URL_SCHEME)));
         }
 
         $io = new SymfonyStyle($input, $output);
@@ -139,7 +139,7 @@
         if (!$deleteMissing && $force) {
             $provider->write($localTranslations);
 
-            $io->success(sprintf('All local translations has been sent to "%s" (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
+            $io->success(\sprintf('All local translations has been sent to "%s" (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
 
             return 0;
         }
@@ -149,7 +149,7 @@
         if ($deleteMissing) {
             $provider->delete($providerTranslations->diff($localTranslations));
 
-            $io->success(sprintf('Missing translations on "%s" has been deleted (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
+            $io->success(\sprintf('Missing translations on "%s" has been deleted (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
 
             // Read provider translations again, after missing translations deletion,
             // to avoid push freshly deleted translations.
@@ -164,7 +164,7 @@
 
         $provider->write($translationsToWrite);
 
-        $io->success(sprintf('%s local translations has been sent to "%s" (for "%s" locale(s), and "%s" domain(s)).', $force ? 'All' : 'New', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
+        $io->success(\sprintf('%s local translations has been sent to "%s" (for "%s" locale(s), and "%s" domain(s)).', $force ? 'All' : 'New', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
 
         return 0;
     }
@@ -174,7 +174,7 @@
         $domains = [];
 
         foreach ($translatorBag->getCatalogues() as $catalogue) {
-            $domains += $catalogue->getDomains();
+            $domains = array_merge($domains, $catalogue->getDomains());
         }
 
         return array_unique($domains);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Command/XliffLintCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Command/XliffLintCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Command/XliffLintCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Command/XliffLintCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,25 +57,25 @@
     {
         $this
             ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN')
-            ->addOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())))
+            ->addOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())))
             ->setHelp(<<<EOF
-The <info>%command.name%</info> command lints an XLIFF file and outputs to STDOUT
-the first encountered syntax error.
+                The <info>%command.name%</info> command lints an XLIFF file and outputs to STDOUT
+                the first encountered syntax error.
 
-You can validates XLIFF contents passed from STDIN:
+                You can validates XLIFF contents passed from STDIN:
 
-  <info>cat filename | php %command.full_name% -</info>
+                  <info>cat filename | php %command.full_name% -</info>
 
-You can also validate the syntax of a file:
+                You can also validate the syntax of a file:
 
-  <info>php %command.full_name% filename</info>
+                  <info>php %command.full_name% filename</info>
 
-Or of a whole directory:
+                Or of a whole directory:
 
-  <info>php %command.full_name% dirname</info>
-  <info>php %command.full_name% dirname --format=json</info>
+                  <info>php %command.full_name% dirname</info>
+                  <info>php %command.full_name% dirname --format=json</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -98,7 +98,7 @@
         $filesInfo = [];
         foreach ($filenames as $filename) {
             if (!$this->isReadable($filename)) {
-                throw new RuntimeException(sprintf('File or directory "%s" is not readable.', $filename));
+                throw new RuntimeException(\sprintf('File or directory "%s" is not readable.', $filename));
             }
 
             foreach ($this->getFiles($filename) as $file) {
@@ -124,18 +124,18 @@
         $document->loadXML($content);
 
         if (null !== $targetLanguage = $this->getTargetLanguageFromFile($document)) {
-            $normalizedLocalePattern = sprintf('(%s|%s)', preg_quote($targetLanguage, '/'), preg_quote(str_replace('-', '_', $targetLanguage), '/'));
+            $normalizedLocalePattern = \sprintf('(%s|%s)', preg_quote($targetLanguage, '/'), preg_quote(str_replace('-', '_', $targetLanguage), '/'));
             // strict file names require translation files to be named '____.locale.xlf'
             // otherwise, both '____.locale.xlf' and 'locale.____.xlf' are allowed
             // also, the regexp matching must be case-insensitive, as defined for 'target-language' values
             // http://docs.oasis-open.org/xliff/v1.2/os/xliff-core.html#target-language
-            $expectedFilenamePattern = $this->requireStrictFileNames ? sprintf('/^.*\.(?i:%s)\.(?:xlf|xliff)/', $normalizedLocalePattern) : sprintf('/^(?:.*\.(?i:%s)|(?i:%s)\..*)\.(?:xlf|xliff)/', $normalizedLocalePattern, $normalizedLocalePattern);
+            $expectedFilenamePattern = $this->requireStrictFileNames ? \sprintf('/^.*\.(?i:%s)\.(?:xlf|xliff)/', $normalizedLocalePattern) : \sprintf('/^(?:.*\.(?i:%s)|(?i:%s)\..*)\.(?:xlf|xliff)/', $normalizedLocalePattern, $normalizedLocalePattern);
 
             if (0 === preg_match($expectedFilenamePattern, basename($file))) {
                 $errors[] = [
                     'line' => -1,
                     'column' => -1,
-                    'message' => sprintf('There is a mismatch between the language included in the file name ("%s") and the "%s" value used in the "target-language" attribute of the file.', basename($file), $targetLanguage),
+                    'message' => \sprintf('There is a mismatch between the language included in the file name ("%s") and the "%s" value used in the "target-language" attribute of the file.', basename($file), $targetLanguage),
                 ];
             }
         }
@@ -160,7 +160,7 @@
             'txt' => $this->displayTxt($io, $files),
             'json' => $this->displayJson($io, $files),
             'github' => $this->displayTxt($io, $files, true),
-            default => throw new InvalidArgumentException(sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
+            default => throw new InvalidArgumentException(\sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
         };
     }
 
@@ -172,25 +172,25 @@
 
         foreach ($filesInfo as $info) {
             if ($info['valid'] && $this->displayCorrectFiles) {
-                $io->comment('<info>OK</info>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
+                $io->comment('<info>OK</info>'.($info['file'] ? \sprintf(' in %s', $info['file']) : ''));
             } elseif (!$info['valid']) {
                 ++$erroredFiles;
-                $io->text('<error> ERROR </error>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
-                $io->listing(array_map(function ($error) use ($info, $githubReporter) {
+                $io->text('<error> ERROR </error>'.($info['file'] ? \sprintf(' in %s', $info['file']) : ''));
+                $io->listing(array_map(static function ($error) use ($info, $githubReporter) {
                     // general document errors have a '-1' line number
                     $line = -1 === $error['line'] ? null : $error['line'];
 
                     $githubReporter?->error($error['message'], $info['file'], $line, null !== $line ? $error['column'] : null);
 
-                    return null === $line ? $error['message'] : sprintf('Line %d, Column %d: %s', $line, $error['column'], $error['message']);
+                    return null === $line ? $error['message'] : \sprintf('Line %d, Column %d: %s', $line, $error['column'], $error['message']);
                 }, $info['messages']));
             }
         }
 
         if (0 === $erroredFiles) {
-            $io->success(sprintf('All %d XLIFF files contain valid syntax.', $countFiles));
+            $io->success(\sprintf('All %d XLIFF files contain valid syntax.', $countFiles));
         } else {
-            $io->warning(sprintf('%d XLIFF files have valid syntax and %d contain errors.', $countFiles - $erroredFiles, $erroredFiles));
+            $io->warning(\sprintf('%d XLIFF files have valid syntax and %d contain errors.', $countFiles - $erroredFiles, $erroredFiles));
         }
 
         return min($erroredFiles, 1);
@@ -200,7 +200,7 @@
     {
         $errors = 0;
 
-        array_walk($filesInfo, function (&$v) use (&$errors) {
+        array_walk($filesInfo, static function (&$v) use (&$errors) {
             $v['file'] = (string) $v['file'];
             if (!$v['valid']) {
                 ++$errors;
@@ -237,7 +237,7 @@
      */
     private function getDirectoryIterator(string $directory): iterable
     {
-        $default = fn ($directory) => new \RecursiveIteratorIterator(
+        $default = static fn ($directory) => new \RecursiveIteratorIterator(
             new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS),
             \RecursiveIteratorIterator::LEAVES_ONLY
         );
@@ -251,7 +251,7 @@
 
     private function isReadable(string $fileOrDirectory): bool
     {
-        $default = fn ($fileOrDirectory) => is_readable($fileOrDirectory);
+        $default = static fn ($fileOrDirectory) => is_readable($fileOrDirectory);
 
         if (null !== $this->isReadableProvider) {
             return ($this->isReadableProvider)($fileOrDirectory, $default);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/DataCollectorTranslator.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/DataCollectorTranslator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/DataCollectorTranslator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/DataCollectorTranslator.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
     public function __construct(TranslatorInterface $translator)
     {
         if (!$translator instanceof TranslatorBagInterface || !$translator instanceof LocaleAwareInterface) {
-            throw new InvalidArgumentException(sprintf('The Translator "%s" must implement TranslatorInterface, TranslatorBagInterface and LocaleAwareInterface.', get_debug_type($translator)));
+            throw new InvalidArgumentException(\sprintf('The Translator "%s" must implement TranslatorInterface, TranslatorBagInterface and LocaleAwareInterface.', get_debug_type($translator)));
         }
 
         $this->translator = $translator;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/DependencyInjection/LoggingTranslatorPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/DependencyInjection/LoggingTranslatorPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/DependencyInjection/LoggingTranslatorPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/DependencyInjection/LoggingTranslatorPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
         $class = $container->getParameterBag()->resolveValue($definition->getClass());
 
         if (!$r = $container->getReflectionClass($class)) {
-            throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $translatorAlias));
+            throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $translatorAlias));
         }
 
         if (!$r->isSubclassOf(TranslatorInterface::class) || !$r->isSubclassOf(TranslatorBagInterface::class)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/DependencyInjection/TranslationExtractorPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/DependencyInjection/TranslationExtractorPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/DependencyInjection/TranslationExtractorPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/DependencyInjection/TranslationExtractorPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
 
         foreach ($container->findTaggedServiceIds('translation.extractor', true) as $id => $attributes) {
             if (!isset($attributes[0]['alias'])) {
-                throw new RuntimeException(sprintf('The alias for the tag "translation.extractor" of service "%s" must be set.', $id));
+                throw new RuntimeException(\sprintf('The alias for the tag "translation.extractor" of service "%s" must be set.', $id));
             }
 
             $definition->addMethodCall('addExtractor', [$attributes[0]['alias'], new Reference($id)]);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/DependencyInjection/TranslatorPathsPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/DependencyInjection/TranslatorPathsPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/DependencyInjection/TranslatorPathsPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/DependencyInjection/TranslatorPathsPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,10 +96,10 @@
                     $class = $this->definitions[$i]->getClass();
 
                     if (ServiceLocator::class === $class) {
-                        if (!isset($this->controllers[$this->currentId])) {
+                        if (!isset($this->controllers[$this->currentId ?? ''])) {
                             continue;
                         }
-                        foreach ($this->controllers[$this->currentId] as $class => $_) {
+                        foreach ($this->controllers[$this->currentId ?? ''] as $class => $_) {
                             $this->paths[$class] = true;
                         }
                     } else {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Dumper/FileDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Dumper/FileDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Dumper/FileDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Dumper/FileDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,8 +56,8 @@
             $fullpath = $options['path'].'/'.$this->getRelativePath($domain, $messages->getLocale());
             if (!file_exists($fullpath)) {
                 $directory = \dirname($fullpath);
-                if (!file_exists($directory) && !@mkdir($directory, 0777, true)) {
-                    throw new RuntimeException(sprintf('Unable to create directory "%s".', $directory));
+                if (!file_exists($directory) && !@mkdir($directory, 0o777, true)) {
+                    throw new RuntimeException(\sprintf('Unable to create directory "%s".', $directory));
                 }
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Dumper/PoFileDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Dumper/PoFileDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Dumper/PoFileDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Dumper/PoFileDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -51,14 +51,14 @@
             $sourceRules = $this->getStandardRules($source);
             $targetRules = $this->getStandardRules($target);
             if (2 == \count($sourceRules) && [] !== $targetRules) {
-                $output .= sprintf('msgid "%s"'."\n", $this->escape($sourceRules[0]));
-                $output .= sprintf('msgid_plural "%s"'."\n", $this->escape($sourceRules[1]));
+                $output .= \sprintf('msgid "%s"'."\n", $this->escape($sourceRules[0]));
+                $output .= \sprintf('msgid_plural "%s"'."\n", $this->escape($sourceRules[1]));
                 foreach ($targetRules as $i => $targetRule) {
-                    $output .= sprintf('msgstr[%d] "%s"'."\n", $i, $this->escape($targetRule));
+                    $output .= \sprintf('msgstr[%d] "%s"'."\n", $i, $this->escape($targetRule));
                 }
             } else {
-                $output .= sprintf('msgid "%s"'."\n", $this->escape($source));
-                $output .= sprintf('msgstr "%s"'."\n", $this->escape($target));
+                $output .= \sprintf('msgid "%s"'."\n", $this->escape($source));
+                $output .= \sprintf('msgstr "%s"'."\n", $this->escape($target));
             }
         }
 
@@ -76,22 +76,22 @@
         }
 
         $intervalRegexp = <<<'EOF'
-/^(?P<interval>
-    ({\s*
-        (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*)
-    \s*})
-
-        |
-
-    (?P<left_delimiter>[\[\]])
-        \s*
-        (?P<left>-Inf|\-?\d+(\.\d+)?)
-        \s*,\s*
-        (?P<right>\+?Inf|\-?\d+(\.\d+)?)
-        \s*
-    (?P<right_delimiter>[\[\]])
-)\s*(?P<message>.*?)$/xs
-EOF;
+            /^(?P<interval>
+                ({\s*
+                    (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*)
+                \s*})
+
+                    |
+
+                (?P<left_delimiter>[\[\]])
+                    \s*
+                    (?P<left>-Inf|\-?\d+(\.\d+)?)
+                    \s*,\s*
+                    (?P<right>\+?Inf|\-?\d+(\.\d+)?)
+                    \s*
+                (?P<right_delimiter>[\[\]])
+            )\s*(?P<message>.*?)$/xs
+            EOF;
 
         $standardRules = [];
         foreach ($parts as $part) {
@@ -100,9 +100,8 @@
             if (preg_match($intervalRegexp, $part)) {
                 // Explicit rule is not a standard rule.
                 return [];
-            } else {
-                $standardRules[] = $part;
             }
+            $standardRules[] = $part;
         }
 
         return $standardRules;
@@ -123,7 +122,7 @@
         $output = null;
 
         foreach ((array) $comments as $comment) {
-            $output .= sprintf('#%s %s'."\n", $prefix, $comment);
+            $output .= \sprintf('#%s %s'."\n", $prefix, $comment);
         }
 
         return $output;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Dumper/XliffFileDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Dumper/XliffFileDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Dumper/XliffFileDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Dumper/XliffFileDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
             return $this->dumpXliff2($defaultLocale, $messages, $domain);
         }
 
-        throw new InvalidArgumentException(sprintf('No support implemented for dumping XLIFF version "%s".', $xliffVersion));
+        throw new InvalidArgumentException(\sprintf('No support implemented for dumping XLIFF version "%s".', $xliffVersion));
     }
 
     protected function getExtension(): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Exception/IncompleteDsnException.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Exception/IncompleteDsnException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Exception/IncompleteDsnException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Exception/IncompleteDsnException.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,7 +16,7 @@
     public function __construct(string $message, ?string $dsn = null, ?\Throwable $previous = null)
     {
         if ($dsn) {
-            $message = sprintf('Invalid "%s" provider DSN: ', $dsn).$message;
+            $message = \sprintf('Invalid "%s" provider DSN: ', $dsn).$message;
         }
 
         parent::__construct($message, 0, $previous);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Exception/MissingRequiredOptionException.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Exception/MissingRequiredOptionException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Exception/MissingRequiredOptionException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Exception/MissingRequiredOptionException.php	2026-05-20 10:56:49.000000000 +0200
@@ -18,7 +18,7 @@
 {
     public function __construct(string $option, ?string $dsn = null, ?\Throwable $previous = null)
     {
-        $message = sprintf('The option "%s" is required but missing.', $option);
+        $message = \sprintf('The option "%s" is required but missing.', $option);
 
         parent::__construct($message, $dsn, $previous);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Exception/UnsupportedSchemeException.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Exception/UnsupportedSchemeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Exception/UnsupportedSchemeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Exception/UnsupportedSchemeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,14 +43,14 @@
         }
         $package = self::SCHEME_TO_PACKAGE_MAP[$provider] ?? null;
         if ($package && !class_exists($package['class'])) {
-            parent::__construct(sprintf('Unable to synchronize translations via "%s" as the provider is not installed. Try running "composer require %s".', $provider, $package['package']));
+            parent::__construct(\sprintf('Unable to synchronize translations via "%s" as the provider is not installed. Try running "composer require %s".', $provider, $package['package']));
 
             return;
         }
 
-        $message = sprintf('The "%s" scheme is not supported', $dsn->getScheme());
+        $message = \sprintf('The "%s" scheme is not supported', $dsn->getScheme());
         if ($name && $supported) {
-            $message .= sprintf('; supported schemes for translation provider "%s" are: "%s"', $name, implode('", "', $supported));
+            $message .= \sprintf('; supported schemes for translation provider "%s" are: "%s"', $name, implode('", "', $supported));
         }
 
         parent::__construct($message.'.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Extractor/AbstractFileExtractor.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Extractor/AbstractFileExtractor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Extractor/AbstractFileExtractor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Extractor/AbstractFileExtractor.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
     protected function isFile(string $file): bool
     {
         if (!is_file($file)) {
-            throw new InvalidArgumentException(sprintf('The "%s" file does not exist.', $file));
+            throw new InvalidArgumentException(\sprintf('The "%s" file does not exist.', $file));
         }
 
         return true;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Extractor/PhpAstExtractor.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Extractor/PhpAstExtractor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Extractor/PhpAstExtractor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Extractor/PhpAstExtractor.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
         private string $prefix = '',
     ) {
         if (!class_exists(ParserFactory::class)) {
-            throw new \LogicException(sprintf('You cannot use "%s" as the "nikic/php-parser" package is not installed. Try running "composer require nikic/php-parser".', static::class));
+            throw new \LogicException(\sprintf('You cannot use "%s" as the "nikic/php-parser" package is not installed. Try running "composer require nikic/php-parser".', static::class));
         }
 
         $this->parser = (new ParserFactory())->createForHostVersion();
@@ -77,7 +77,7 @@
     protected function extractFromDirectory(array|string $resource): iterable|Finder
     {
         if (!class_exists(Finder::class)) {
-            throw new \LogicException(sprintf('You cannot use "%s" as the "symfony/finder" package is not installed. Try running "composer require symfony/finder".', static::class));
+            throw new \LogicException(\sprintf('You cannot use "%s" as the "symfony/finder" package is not installed. Try running "composer require symfony/finder".', static::class));
         }
 
         return (new Finder())->files()->name('*.php')->in($resource);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Extractor/PhpExtractor.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Extractor/PhpExtractor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Extractor/PhpExtractor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Extractor/PhpExtractor.php	2026-05-20 10:56:49.000000000 +0200
@@ -323,7 +323,7 @@
     protected function extractFromDirectory(string|array $directory): iterable
     {
         if (!class_exists(Finder::class)) {
-            throw new \LogicException(sprintf('You cannot use "%s" as the "symfony/finder" package is not installed. Try running "composer require symfony/finder".', static::class));
+            throw new \LogicException(\sprintf('You cannot use "%s" as the "symfony/finder" package is not installed. Try running "composer require symfony/finder".', static::class));
         }
 
         $finder = new Finder();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Extractor/PhpStringTokenParser.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Extractor/PhpStringTokenParser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Extractor/PhpStringTokenParser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Extractor/PhpStringTokenParser.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,9 +83,9 @@
                 ['\\', '\''],
                 substr($str, $bLength + 1, -1)
             );
-        } else {
-            return self::parseEscapeSequences(substr($str, $bLength + 1, -1), '"');
         }
+
+        return self::parseEscapeSequences(substr($str, $bLength + 1, -1), '"');
     }
 
     /**
@@ -115,9 +115,9 @@
             return self::$replacements[$str];
         } elseif ('x' === $str[0] || 'X' === $str[0]) {
             return \chr(hexdec($str));
-        } else {
-            return \chr(octdec($str));
         }
+
+        return \chr(octdec($str));
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Extractor/Visitor/ConstraintVisitor.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Extractor/Visitor/ConstraintVisitor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Extractor/Visitor/ConstraintVisitor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Extractor/Visitor/ConstraintVisitor.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
 final class ConstraintVisitor extends AbstractVisitor implements NodeVisitor
 {
     public function __construct(
-        private readonly array $constraintClassNames = []
+        private readonly array $constraintClassNames = [],
     ) {
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Formatter/IntlFormatter.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Formatter/IntlFormatter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Formatter/IntlFormatter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Formatter/IntlFormatter.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
             try {
                 $this->cache[$locale][$message] = $formatter = new \MessageFormatter($locale, $message);
             } catch (\IntlException $e) {
-                throw new InvalidArgumentException(sprintf('Invalid message format (error #%d): ', intl_get_error_code()).intl_get_error_message(), 0, $e);
+                throw new InvalidArgumentException(\sprintf('Invalid message format (error #%d): ', intl_get_error_code()).intl_get_error_message(), 0, $e);
             }
         }
 
@@ -49,7 +49,7 @@
         }
 
         if (false === $message = $formatter->format($parameters)) {
-            throw new InvalidArgumentException(sprintf('Unable to format message (error #%s): ', $formatter->getErrorCode()).$formatter->getErrorMessage());
+            throw new InvalidArgumentException(\sprintf('Unable to format message (error #%s): ', $formatter->getErrorCode()).$formatter->getErrorMessage());
         }
 
         return $message;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/CsvFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/CsvFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/CsvFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/CsvFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,10 +31,10 @@
         try {
             $file = new \SplFileObject($resource, 'rb');
         } catch (\RuntimeException $e) {
-            throw new NotFoundResourceException(sprintf('Error opening file "%s".', $resource), 0, $e);
+            throw new NotFoundResourceException(\sprintf('Error opening file "%s".', $resource), 0, $e);
         }
 
-        $file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY);
+        $file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY | \SplFileObject::DROP_NEW_LINE);
         $file->setCsvControl($this->delimiter, $this->enclosure, $this->escape);
 
         foreach ($file as $data) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/FileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/FileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/FileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/FileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,11 +24,11 @@
     public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue
     {
         if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
+            throw new InvalidResourceException(\sprintf('This is not a local file "%s".', $resource));
         }
 
         if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
+            throw new NotFoundResourceException(\sprintf('File "%s" not found.', $resource));
         }
 
         $messages = $this->loadResource($resource);
@@ -38,7 +38,7 @@
 
         // not an array
         if (!\is_array($messages)) {
-            throw new InvalidResourceException(sprintf('Unable to load file "%s".', $resource));
+            throw new InvalidResourceException(\sprintf('Unable to load file "%s".', $resource));
         }
 
         $catalogue = parent::load($messages, $locale, $domain);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/IcuDatFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/IcuDatFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/IcuDatFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/IcuDatFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,11 +26,11 @@
     public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue
     {
         if (!stream_is_local($resource.'.dat')) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
+            throw new InvalidResourceException(\sprintf('This is not a local file "%s".', $resource));
         }
 
         if (!file_exists($resource.'.dat')) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
+            throw new NotFoundResourceException(\sprintf('File "%s" not found.', $resource));
         }
 
         try {
@@ -40,7 +40,7 @@
         }
 
         if (!$rb) {
-            throw new InvalidResourceException(sprintf('Cannot load resource "%s".', $resource));
+            throw new InvalidResourceException(\sprintf('Cannot load resource "%s".', $resource));
         } elseif (intl_is_failure($rb->getErrorCode())) {
             throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode());
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/IcuResFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/IcuResFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/IcuResFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/IcuResFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,11 +26,11 @@
     public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue
     {
         if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
+            throw new InvalidResourceException(\sprintf('This is not a local file "%s".', $resource));
         }
 
         if (!is_dir($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
+            throw new NotFoundResourceException(\sprintf('File "%s" not found.', $resource));
         }
 
         try {
@@ -40,7 +40,7 @@
         }
 
         if (!$rb) {
-            throw new InvalidResourceException(sprintf('Cannot load resource "%s".', $resource));
+            throw new InvalidResourceException(\sprintf('Cannot load resource "%s".', $resource));
         } elseif (intl_is_failure($rb->getErrorCode())) {
             throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode());
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/QtFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/QtFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/QtFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/QtFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,17 +32,17 @@
         }
 
         if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
+            throw new InvalidResourceException(\sprintf('This is not a local file "%s".', $resource));
         }
 
         if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
+            throw new NotFoundResourceException(\sprintf('File "%s" not found.', $resource));
         }
 
         try {
             $dom = XmlUtils::loadFile($resource);
         } catch (\InvalidArgumentException $e) {
-            throw new InvalidResourceException(sprintf('Unable to load "%s".', $resource), $e->getCode(), $e);
+            throw new InvalidResourceException(\sprintf('Unable to load "%s".', $resource), $e->getCode(), $e);
         }
 
         $internalErrors = libxml_use_internal_errors(true);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/XliffFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/XliffFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/XliffFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/XliffFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,15 +36,15 @@
 
         if (!$this->isXmlString($resource)) {
             if (!stream_is_local($resource)) {
-                throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
+                throw new InvalidResourceException(\sprintf('This is not a local file "%s".', $resource));
             }
 
             if (!file_exists($resource)) {
-                throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
+                throw new NotFoundResourceException(\sprintf('File "%s" not found.', $resource));
             }
 
             if (!is_file($resource)) {
-                throw new InvalidResourceException(sprintf('This is neither a file nor an XLIFF string "%s".', $resource));
+                throw new InvalidResourceException(\sprintf('This is neither a file nor an XLIFF string "%s".', $resource));
             }
         }
 
@@ -55,11 +55,11 @@
                 $dom = XmlUtils::loadFile($resource);
             }
         } catch (\InvalidArgumentException|XmlParsingException|InvalidXmlException $e) {
-            throw new InvalidResourceException(sprintf('Unable to load "%s": ', $resource).$e->getMessage(), $e->getCode(), $e);
+            throw new InvalidResourceException(\sprintf('Unable to load "%s": ', $resource).$e->getMessage(), $e->getCode(), $e);
         }
 
         if ($errors = XliffUtils::validateSchema($dom)) {
-            throw new InvalidResourceException(sprintf('Invalid resource provided: "%s"; Errors: ', $resource).XliffUtils::getErrorsAsString($errors));
+            throw new InvalidResourceException(\sprintf('Invalid resource provided: "%s"; Errors: ', $resource).XliffUtils::getErrorsAsString($errors));
         }
 
         $catalogue = new MessageCatalogue($locale);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/YamlFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/YamlFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Loader/YamlFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Loader/YamlFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
     protected function loadResource(string $resource): array
     {
         if (!isset($this->yamlParser)) {
-            if (!class_exists(\Symfony\Component\Yaml\Parser::class)) {
+            if (!class_exists(YamlParser::class)) {
                 throw new LogicException('Loading translations from the YAML format requires the Symfony Yaml component.');
             }
 
@@ -39,11 +39,11 @@
         try {
             $messages = $this->yamlParser->parseFile($resource, Yaml::PARSE_CONSTANT);
         } catch (ParseException $e) {
-            throw new InvalidResourceException(sprintf('The file "%s" does not contain valid YAML: ', $resource).$e->getMessage(), 0, $e);
+            throw new InvalidResourceException(\sprintf('The file "%s" does not contain valid YAML: ', $resource).$e->getMessage(), 0, $e);
         }
 
         if (null !== $messages && !\is_array($messages)) {
-            throw new InvalidResourceException(sprintf('Unable to load file "%s".', $resource));
+            throw new InvalidResourceException(\sprintf('Unable to load file "%s".', $resource));
         }
 
         return $messages ?: [];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/LoggingTranslator.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/LoggingTranslator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/LoggingTranslator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/LoggingTranslator.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function __construct(TranslatorInterface $translator, LoggerInterface $logger)
     {
         if (!$translator instanceof TranslatorBagInterface || !$translator instanceof LocaleAwareInterface) {
-            throw new InvalidArgumentException(sprintf('The Translator "%s" must implement TranslatorInterface, TranslatorBagInterface and LocaleAwareInterface.', get_debug_type($translator)));
+            throw new InvalidArgumentException(\sprintf('The Translator "%s" must implement TranslatorInterface, TranslatorBagInterface and LocaleAwareInterface.', get_debug_type($translator)));
         }
 
         $this->translator = $translator;
@@ -56,7 +56,7 @@
             return;
         }
 
-        $this->logger->debug(sprintf('The locale of the translator has changed from "%s" to "%s".', $prev, $locale));
+        $this->logger->debug(\sprintf('The locale of the translator has changed from "%s" to "%s".', $prev, $locale));
     }
 
     public function getLocale(): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/MessageCatalogue.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/MessageCatalogue.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/MessageCatalogue.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/MessageCatalogue.php	2026-05-20 10:56:49.000000000 +0200
@@ -155,7 +155,7 @@
     public function addCatalogue(MessageCatalogueInterface $catalogue)
     {
         if ($catalogue->getLocale() !== $this->locale) {
-            throw new LogicException(sprintf('Cannot add a catalogue for locale "%s" as the current locale for this catalogue is "%s".', $catalogue->getLocale(), $this->locale));
+            throw new LogicException(\sprintf('Cannot add a catalogue for locale "%s" as the current locale for this catalogue is "%s".', $catalogue->getLocale(), $this->locale));
         }
 
         foreach ($catalogue->all() as $domain => $messages) {
@@ -190,14 +190,14 @@
         $c = $catalogue;
         while ($c = $c->getFallbackCatalogue()) {
             if ($c->getLocale() === $this->getLocale()) {
-                throw new LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
+                throw new LogicException(\sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
             }
         }
 
         $c = $this;
         do {
             if ($c->getLocale() === $catalogue->getLocale()) {
-                throw new LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
+                throw new LogicException(\sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
             }
 
             foreach ($catalogue->getResources() as $resource) {
@@ -237,6 +237,16 @@
             return $this->metadata;
         }
 
+        if (isset($this->metadata[$domain.self::INTL_DOMAIN_SUFFIX])) {
+            if ('' === $key) {
+                return $this->metadata[$domain.self::INTL_DOMAIN_SUFFIX];
+            }
+
+            if (isset($this->metadata[$domain.self::INTL_DOMAIN_SUFFIX][$key])) {
+                return $this->metadata[$domain.self::INTL_DOMAIN_SUFFIX][$key];
+            }
+        }
+
         if (isset($this->metadata[$domain])) {
             if ('' == $key) {
                 return $this->metadata[$domain];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Provider/TranslationProviderCollection.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Provider/TranslationProviderCollection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Provider/TranslationProviderCollection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Provider/TranslationProviderCollection.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
     public function get(string $name): ProviderInterface
     {
         if (!$this->has($name)) {
-            throw new InvalidArgumentException(sprintf('Provider "%s" not found. Available: "%s".', $name, (string) $this));
+            throw new InvalidArgumentException(\sprintf('Provider "%s" not found. Available: "%s".', $name, (string) $this));
         }
 
         return $this->providers[$name];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/PseudoLocalizationTranslator.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/PseudoLocalizationTranslator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/PseudoLocalizationTranslator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/PseudoLocalizationTranslator.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
      *  * parse_html:
      *      type: boolean
      *      default: false
-     *      description: parse the translated string as HTML - looking for HTML tags has a performance impact but allows to preserve them from alterations - it also allows to compute the visible translated string length which is useful to correctly expand ot when it contains HTML
+     *      description: parse the translated string as HTML - looking for HTML tags has a performance impact but allows to preserve them from alterations - it also allows to compute the visible translated string length which is useful to correctly expand or when it contains HTML
      *      warning: unclosed tags are unsupported, they will be fixed (closed) by the parser - eg, "foo <div>bar" => "foo <div>bar</div>"
      *
      *  * localizable_html_attributes:
@@ -363,3 +363,5 @@
         return false === ($encoding = mb_detect_encoding($s, null, true)) ? \strlen($s) : mb_strlen($s, $encoding);
     }
 }
+
+// @php-cs-fixer-ignore random_api_migration As logic is coupled with mt_srand() in tests
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Resources/bin/translation-status.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Resources/bin/translation-status.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Resources/bin/translation-status.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Resources/bin/translation-status.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,27 +15,27 @@
 
 $usageInstructions = <<<END
 
-  Usage instructions
-  -------------------------------------------------------------------------------
+      Usage instructions
+      -------------------------------------------------------------------------------
 
-  $ cd symfony-code-root-directory/
+      $ cd symfony-code-root-directory/
 
-  # show the translation status of all locales
-  $ php translation-status.php
+      # show the translation status of all locales
+      $ php translation-status.php
 
-  # only show the translation status of incomplete or erroneous locales
-  $ php translation-status.php --incomplete
+      # only show the translation status of incomplete or erroneous locales
+      $ php translation-status.php --incomplete
 
-  # show the translation status of all locales, all their missing translations and mismatches between trans-unit id and source
-  $ php translation-status.php -v
+      # show the translation status of all locales, all their missing translations and mismatches between trans-unit id and source
+      $ php translation-status.php -v
 
-  # show the status of a single locale
-  $ php translation-status.php fr
+      # show the status of a single locale
+      $ php translation-status.php fr
 
-  # show the status of a single locale, missing translations and mismatches between trans-unit id and source
-  $ php translation-status.php fr -v
+      # show the status of a single locale, missing translations and mismatches between trans-unit id and source
+      $ php translation-status.php fr -v
 
-END;
+    END;
 
 $config = [
     // if TRUE, the full list of missing translations is displayed
@@ -87,8 +87,8 @@
     $translationFilePaths = findTranslationFiles($originalFilePath, $config['locale_to_analyze']);
     $translationStatus = calculateTranslationStatus($originalFilePath, $translationFilePaths);
 
-    $totalMissingTranslations += array_sum(array_map(fn ($translation) => count($translation['missingKeys']), array_values($translationStatus)));
-    $totalTranslationMismatches += array_sum(array_map(fn ($translation) => count($translation['mismatches']), array_values($translationStatus)));
+    $totalMissingTranslations += array_sum(array_map(static fn ($translation) => count($translation['missingKeys']), array_values($translationStatus)));
+    $totalTranslationMismatches += array_sum(array_map(static fn ($translation) => count($translation['mismatches']), array_values($translationStatus)));
 
     printTranslationStatus($originalFilePath, $translationStatus, $config['verbose_output'], $config['include_completed_languages']);
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Resources/data/parents.json symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Resources/data/parents.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Resources/data/parents.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Resources/data/parents.json	2026-05-20 10:56:49.000000000 +0200
@@ -23,6 +23,7 @@
     "en_DG": "en_001",
     "en_DK": "en_150",
     "en_DM": "en_001",
+    "en_EE": "en_150",
     "en_ER": "en_001",
     "en_ES": "en_150",
     "en_FI": "en_150",
@@ -32,6 +33,7 @@
     "en_FR": "en_150",
     "en_GB": "en_001",
     "en_GD": "en_001",
+    "en_GE": "en_150",
     "en_GG": "en_001",
     "en_GH": "en_001",
     "en_GI": "en_001",
@@ -56,6 +58,8 @@
     "en_LC": "en_001",
     "en_LR": "en_001",
     "en_LS": "en_001",
+    "en_LT": "en_150",
+    "en_LV": "en_150",
     "en_MG": "en_001",
     "en_MO": "en_001",
     "en_MS": "en_001",
@@ -98,6 +102,7 @@
     "en_TT": "en_001",
     "en_TV": "en_001",
     "en_TZ": "en_001",
+    "en_UA": "en_150",
     "en_UG": "en_001",
     "en_VC": "en_001",
     "en_VG": "en_001",
@@ -130,6 +135,7 @@
     "es_VE": "es_419",
     "ff_Adlm": "root",
     "hi_Latn": "en_IN",
+    "kk_Arab": "root",
     "ks_Deva": "root",
     "nb": "no",
     "nn": "no",
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Test/ProviderTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Test/ProviderTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Test/ProviderTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Test/ProviderTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,10 +14,13 @@
 use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
 use Symfony\Component\HttpClient\MockHttpClient;
 use Symfony\Component\Translation\Dumper\XliffFileDumper;
+use Symfony\Component\Translation\Loader\ArrayLoader;
 use Symfony\Component\Translation\Loader\LoaderInterface;
 use Symfony\Component\Translation\Provider\ProviderInterface;
+use Symfony\Component\Translation\TranslatorBag;
 use Symfony\Component\Translation\TranslatorBagInterface;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
 
@@ -57,12 +60,12 @@
 
     protected function getLoader(): LoaderInterface
     {
-        return $this->loader ??= $this->createMock(LoaderInterface::class);
+        return $this->loader ??= new ArrayLoader();
     }
 
     protected function getLogger(): LoggerInterface
     {
-        return $this->logger ??= $this->createMock(LoggerInterface::class);
+        return $this->logger ??= new NullLogger();
     }
 
     protected function getDefaultLocale(): string
@@ -72,11 +75,11 @@
 
     protected function getXliffFileDumper(): XliffFileDumper
     {
-        return $this->xliffFileDumper ??= $this->createMock(XliffFileDumper::class);
+        return $this->xliffFileDumper ??= new XliffFileDumper();
     }
 
     protected function getTranslatorBag(): TranslatorBagInterface
     {
-        return $this->translatorBag ??= $this->createMock(TranslatorBagInterface::class);
+        return $this->translatorBag ??= new TranslatorBag();
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Catalogue/MessageCatalogueTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Catalogue/MessageCatalogueTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Catalogue/MessageCatalogueTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Catalogue/MessageCatalogueTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Tests\Catalogue;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Translation\MessageCatalogue;
+
+class MessageCatalogueTest extends TestCase
+{
+    public function testIcuMetadataKept()
+    {
+        $mc = new MessageCatalogue('en', ['messages' => ['a' => 'new_a']]);
+        $metadata = ['metadata' => 'value'];
+        $mc->setMetadata('a', $metadata, 'messages+intl-icu');
+        $this->assertEquals($metadata, $mc->getMetadata('a', 'messages'));
+        $this->assertEquals($metadata, $mc->getMetadata('a', 'messages+intl-icu'));
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationProviderTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationProviderTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationProviderTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationProviderTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -63,7 +63,7 @@
         }
         $yamlContent .= "\n";
 
-        $filename = sprintf('%s/%s', $this->translationAppDir.'/translations', str_replace('%locale%', $targetLanguage, $fileNamePattern));
+        $filename = \sprintf('%s/%s', $this->translationAppDir.'/translations', str_replace('%locale%', $targetLanguage, $fileNamePattern));
         file_put_contents($filename, $yamlContent);
 
         $this->files[] = $filename;
@@ -77,45 +77,45 @@
             $transUnits = '';
             foreach ($messages as $key => $value) {
                 $transUnits .= <<<XLIFF
-<trans-unit id="$key">
-    <source>$key</source>
-    <target>$value</target>
-</trans-unit>
-XLIFF;
+                    <trans-unit id="$key">
+                        <source>$key</source>
+                        <target>$value</target>
+                    </trans-unit>
+                    XLIFF;
             }
             $xliffContent = <<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="$targetLanguage" datatype="plaintext" original="file.ext">
-        <body>
-            $transUnits
-        </body>
-    </file>
-</xliff>
-XLIFF;
+                <?xml version="1.0"?>
+                <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                    <file source-language="en" target-language="$targetLanguage" datatype="plaintext" original="file.ext">
+                        <body>
+                            $transUnits
+                        </body>
+                    </file>
+                </xliff>
+                XLIFF;
         } else {
             $units = '';
             foreach ($messages as $key => $value) {
                 $units .= <<<XLIFF
-<unit id="$key">
-  <segment>
-    <source>$key</source>
-    <target>$value</target>
-  </segment>
-</unit>
-XLIFF;
+                    <unit id="$key">
+                      <segment>
+                        <source>$key</source>
+                        <target>$value</target>
+                      </segment>
+                    </unit>
+                    XLIFF;
             }
             $xliffContent = <<<XLIFF
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="$targetLanguage">
-  <file id="messages.$targetLanguage">
-    $units
-  </file>
-</xliff>
-XLIFF;
+                <?xml version="1.0" encoding="utf-8"?>
+                <xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="$targetLanguage">
+                  <file id="messages.$targetLanguage">
+                    $units
+                  </file>
+                </xliff>
+                XLIFF;
         }
 
-        $filename = sprintf('%s/%s', $this->translationAppDir.'/translations', str_replace('%locale%', $targetLanguage, $fileNamePattern));
+        $filename = \sprintf('%s/%s', $this->translationAppDir.'/translations', str_replace('%locale%', $targetLanguage, $fileNamePattern));
         file_put_contents($filename, $xliffContent);
 
         $this->files[] = $filename;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationPullCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationPullCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationPullCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationPullCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -86,81 +86,85 @@
 
         $this->assertStringContainsString('[OK] New translations from "null" has been written locally (for "en, fr" locale(s), and "messages, messages+intl-icu"', trim($tester->getDisplay()));
         $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="994ixRL" resname="new.foo">
-                <source>new.foo</source>
-                <target>newFoo</target>
-            </trans-unit>
-            <trans-unit id="7bRlYkK" resname="note">
-                <source>note</source>
-                <target>NOTE</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameEn));
-        $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="1IHotcu" resname="say_hello">
-                <source>say_hello</source>
-                <target>Welcome, {firstname}!</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameEnIcu));
-        $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="994ixRL" resname="new.foo">
-                <source>new.foo</source>
-                <target>nouveauFoo</target>
-            </trans-unit>
-            <trans-unit id="7bRlYkK" resname="note">
-                <source>note</source>
-                <target>NOTE</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameFr));
-        $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="1IHotcu" resname="say_hello">
-                <source>say_hello</source>
-                <target>Bonjour, {firstname}!</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameFrIcu));
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="994ixRL" resname="new.foo">
+                            <source>new.foo</source>
+                            <target>newFoo</target>
+                        </trans-unit>
+                        <trans-unit id="7bRlYkK" resname="note">
+                            <source>note</source>
+                            <target>NOTE</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameEn)
+        );
+        $this->assertXmlStringEqualsXmlString(<<<XLIFF
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="1IHotcu" resname="say_hello">
+                            <source>say_hello</source>
+                            <target>Welcome, {firstname}!</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameEnIcu)
+        );
+        $this->assertXmlStringEqualsXmlString(<<<XLIFF
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="994ixRL" resname="new.foo">
+                            <source>new.foo</source>
+                            <target>nouveauFoo</target>
+                        </trans-unit>
+                        <trans-unit id="7bRlYkK" resname="note">
+                            <source>note</source>
+                            <target>NOTE</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameFr)
+        );
+        $this->assertXmlStringEqualsXmlString(<<<XLIFF
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="1IHotcu" resname="say_hello">
+                            <source>say_hello</source>
+                            <target>Bonjour, {firstname}!</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameFrIcu)
+        );
     }
 
     public function testPullNewXlf20Messages()
@@ -196,45 +200,47 @@
 
         $this->assertStringContainsString('[OK] New translations from "null" has been written locally (for "en, fr" locale(s), and "messages" domain(s)).', trim($tester->getDisplay()));
         $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="en">
-  <file id="messages.en">
-    <unit id="994ixRL" name="new.foo">
-      <segment>
-        <source>new.foo</source>
-        <target>newFoo</target>
-      </segment>
-    </unit>
-    <unit id="7bRlYkK" name="note">
-      <segment>
-        <source>note</source>
-        <target>NOTE</target>
-      </segment>
-    </unit>
-  </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameEn));
-        $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="fr">
-  <file id="messages.fr">
-    <unit id="994ixRL" name="new.foo">
-      <segment>
-        <source>new.foo</source>
-        <target>nouveauFoo</target>
-      </segment>
-    </unit>
-    <unit id="7bRlYkK" name="note">
-      <segment>
-        <source>note</source>
-        <target>NOTE</target>
-      </segment>
-    </unit>
-  </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameFr));
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="en">
+              <file id="messages.en">
+                <unit id="994ixRL" name="new.foo">
+                  <segment>
+                    <source>new.foo</source>
+                    <target>newFoo</target>
+                  </segment>
+                </unit>
+                <unit id="7bRlYkK" name="note">
+                  <segment>
+                    <source>note</source>
+                    <target>NOTE</target>
+                  </segment>
+                </unit>
+              </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameEn)
+        );
+        $this->assertXmlStringEqualsXmlString(<<<XLIFF
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="fr">
+              <file id="messages.fr">
+                <unit id="994ixRL" name="new.foo">
+                  <segment>
+                    <source>new.foo</source>
+                    <target>nouveauFoo</target>
+                  </segment>
+                </unit>
+                <unit id="7bRlYkK" name="note">
+                  <segment>
+                    <source>note</source>
+                    <target>NOTE</target>
+                  </segment>
+                </unit>
+              </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameFr)
+        );
     }
 
     public function testPullNewYamlMessagesAsInlined()
@@ -270,15 +276,19 @@
 
         $this->assertStringContainsString('[OK] New translations from "null" has been written locally (for "en, fr" locale(s), and "messages" domain(s)).', trim($tester->getDisplay()));
         $this->assertEquals(<<<YAML
-new.foo: newFoo
-note: NOTE
+            new.foo: newFoo
+            note: NOTE
 
-YAML, file_get_contents($filenameEn));
+            YAML,
+            file_get_contents($filenameEn)
+        );
         $this->assertEquals(<<<YAML
-new.foo: nouveauFoo
-note: NOTE
+            new.foo: nouveauFoo
+            note: NOTE
 
-YAML, file_get_contents($filenameFr));
+            YAML,
+            file_get_contents($filenameFr)
+        );
     }
 
     public function testPullNewYamlMessagesAsTree()
@@ -314,17 +324,21 @@
 
         $this->assertStringContainsString('[OK] New translations from "null" has been written locally (for "en, fr" locale(s), and "messages" domain(s)).', trim($tester->getDisplay()));
         $this->assertEquals(<<<YAML
-new:
-    foo: newFoo
-note: NOTE
-
-YAML, file_get_contents($filenameEn));
+            new:
+                foo: newFoo
+            note: NOTE
+
+            YAML,
+            file_get_contents($filenameEn)
+        );
         $this->assertEquals(<<<YAML
-new:
-    foo: nouveauFoo
-note: NOTE
-
-YAML, file_get_contents($filenameFr));
+            new:
+                foo: nouveauFoo
+            note: NOTE
+
+            YAML,
+            file_get_contents($filenameFr)
+        );
     }
 
     public function testPullForceMessages()
@@ -370,90 +384,94 @@
 
         $this->assertStringContainsString('[OK] Local translations has been updated from "null" (for "en, fr" locale(s), and "messages, validators" domain(s)).', trim($tester->getDisplay()));
         $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="7bRlYkK" resname="note">
-                <source>note</source>
-                <target>UPDATED NOTE</target>
-            </trans-unit>
-            <trans-unit id="994ixRL" resname="new.foo">
-                <source>new.foo</source>
-                <target>newFoo</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameMessagesEn));
-        $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="7bRlYkK" resname="note">
-                <source>note</source>
-                <target>NOTE MISE À JOUR</target>
-            </trans-unit>
-            <trans-unit id="994ixRL" resname="new.foo">
-                <source>new.foo</source>
-                <target>nouveauFoo</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameMessagesFr));
-
-        $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="kA4akVr" resname="foo.error">
-                <source>foo.error</source>
-                <target>Bad value</target>
-            </trans-unit>
-            <trans-unit id="OcBtn3X" resname="bar.error">
-                <source>bar.error</source>
-                <target>Bar error</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameValidatorsEn));
-        $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="kA4akVr" resname="foo.error">
-                <source>foo.error</source>
-                <target>Valeur invalide</target>
-            </trans-unit>
-            <trans-unit id="OcBtn3X" resname="bar.error">
-                <source>bar.error</source>
-                <target>Bar erreur</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameValidatorsFr));
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="7bRlYkK" resname="note">
+                            <source>note</source>
+                            <target>UPDATED NOTE</target>
+                        </trans-unit>
+                        <trans-unit id="994ixRL" resname="new.foo">
+                            <source>new.foo</source>
+                            <target>newFoo</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameMessagesEn)
+        );
+        $this->assertXmlStringEqualsXmlString(<<<XLIFF
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="7bRlYkK" resname="note">
+                            <source>note</source>
+                            <target>NOTE MISE À JOUR</target>
+                        </trans-unit>
+                        <trans-unit id="994ixRL" resname="new.foo">
+                            <source>new.foo</source>
+                            <target>nouveauFoo</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameMessagesFr)
+        );
+
+        $this->assertXmlStringEqualsXmlString(<<<XLIFF
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="kA4akVr" resname="foo.error">
+                            <source>foo.error</source>
+                            <target>Bad value</target>
+                        </trans-unit>
+                        <trans-unit id="OcBtn3X" resname="bar.error">
+                            <source>bar.error</source>
+                            <target>Bar error</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameValidatorsEn)
+        );
+        $this->assertXmlStringEqualsXmlString(<<<XLIFF
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="kA4akVr" resname="foo.error">
+                            <source>foo.error</source>
+                            <target>Valeur invalide</target>
+                        </trans-unit>
+                        <trans-unit id="OcBtn3X" resname="bar.error">
+                            <source>bar.error</source>
+                            <target>Bar erreur</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameValidatorsFr)
+        );
     }
 
     /**
@@ -493,47 +511,49 @@
 
         $this->assertStringContainsString('[OK] Local translations has been updated from "null" (for "en, fr" locale(s), and "messages" domain(s)).', trim($tester->getDisplay()));
         $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="7bRlYkK" resname="note">
-                <source>note</source>
-                <target>UPDATED NOTE</target>
-            </trans-unit>
-            <trans-unit id="994ixRL" resname="new.foo">
-                <source>new.foo</source>
-                <target>newFoo</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameEn));
-        $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="7bRlYkK" resname="note">
-                <source>note</source>
-                <target>NOTE MISE À JOUR</target>
-            </trans-unit>
-            <trans-unit id="994ixRL" resname="new.foo">
-                <source>new.foo</source>
-                <target>nouveauFoo</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameFr));
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="7bRlYkK" resname="note">
+                            <source>note</source>
+                            <target>UPDATED NOTE</target>
+                        </trans-unit>
+                        <trans-unit id="994ixRL" resname="new.foo">
+                            <source>new.foo</source>
+                            <target>newFoo</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameEn)
+        );
+        $this->assertXmlStringEqualsXmlString(<<<XLIFF
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="7bRlYkK" resname="note">
+                            <source>note</source>
+                            <target>NOTE MISE À JOUR</target>
+                        </trans-unit>
+                        <trans-unit id="994ixRL" resname="new.foo">
+                            <source>new.foo</source>
+                            <target>nouveauFoo</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameFr)
+        );
     }
 
     public function testPullMessagesWithDefaultLocale()
@@ -569,47 +589,49 @@
 
         $this->assertStringContainsString('[OK] New translations from "null" has been written locally (for "en, fr" locale(s), and "messages" domain(s)).', trim($tester->getDisplay()));
         $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="fr" target-language="en" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="994ixRL" resname="new.foo">
-                <source>new.foo</source>
-                <target>newFoo</target>
-            </trans-unit>
-            <trans-unit id="7bRlYkK" resname="note">
-                <source>note</source>
-                <target>NOTE</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameEn));
-        $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="fr" target-language="fr" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="994ixRL" resname="new.foo">
-                <source>new.foo</source>
-                <target>nouveauFoo</target>
-            </trans-unit>
-            <trans-unit id="7bRlYkK" resname="note">
-                <source>note</source>
-                <target>NOTE</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameFr));
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="fr" target-language="en" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="994ixRL" resname="new.foo">
+                            <source>new.foo</source>
+                            <target>newFoo</target>
+                        </trans-unit>
+                        <trans-unit id="7bRlYkK" resname="note">
+                            <source>note</source>
+                            <target>NOTE</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameEn)
+        );
+        $this->assertXmlStringEqualsXmlString(<<<XLIFF
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="fr" target-language="fr" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="994ixRL" resname="new.foo">
+                            <source>new.foo</source>
+                            <target>nouveauFoo</target>
+                        </trans-unit>
+                        <trans-unit id="7bRlYkK" resname="note">
+                            <source>note</source>
+                            <target>NOTE</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameFr)
+        );
     }
 
     public function testPullMessagesMultipleDomains()
@@ -646,47 +668,49 @@
 
         $this->assertStringContainsString('[OK] New translations from "null" has been written locally (for "en" locale(s), and "messages, domain" domain(s)).', trim($tester->getDisplay()));
         $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="994ixRL" resname="new.foo">
-                <source>new.foo</source>
-                <target>newFoo</target>
-            </trans-unit>
-            <trans-unit id="7bRlYkK" resname="note">
-                <source>note</source>
-                <target>NOTE</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameMessages));
-        $this->assertXmlStringEqualsXmlString(<<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
-        <header>
-            <tool tool-id="symfony" tool-name="Symfony"/>
-        </header>
-        <body>
-            <trans-unit id="994ixRL" resname="new.foo">
-                <source>new.foo</source>
-                <target>newFoo</target>
-            </trans-unit>
-            <trans-unit id="7bRlYkK" resname="note">
-                <source>note</source>
-                <target>NOTE</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF
-            , file_get_contents($filenameDomain));
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="994ixRL" resname="new.foo">
+                            <source>new.foo</source>
+                            <target>newFoo</target>
+                        </trans-unit>
+                        <trans-unit id="7bRlYkK" resname="note">
+                            <source>note</source>
+                            <target>NOTE</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameMessages)
+        );
+        $this->assertXmlStringEqualsXmlString(<<<XLIFF
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
+                    <header>
+                        <tool tool-id="symfony" tool-name="Symfony"/>
+                    </header>
+                    <body>
+                        <trans-unit id="994ixRL" resname="new.foo">
+                            <source>new.foo</source>
+                            <target>newFoo</target>
+                        </trans-unit>
+                        <trans-unit id="7bRlYkK" resname="note">
+                            <source>note</source>
+                            <target>NOTE</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF,
+            file_get_contents($filenameDomain)
+        );
     }
 
     /**
@@ -695,7 +719,7 @@
     public function testComplete(array $input, array $expectedSuggestions)
     {
         $application = new Application();
-        $application->add($this->createCommand($this->createMock(ProviderInterface::class), ['en', 'fr', 'it'], ['messages', 'validators'], 'en', ['loco', 'crowdin', 'lokalise']));
+        $application->add($this->createCommand($this->createStub(ProviderInterface::class), ['en', 'fr', 'it'], ['messages', 'validators'], 'en', ['loco', 'crowdin', 'lokalise']));
 
         $tester = new CommandCompletionTester($application->get('translation:pull'));
         $suggestions = $tester->complete($input);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationPushCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationPushCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationPushCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Command/TranslationPushCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -199,10 +199,11 @@
         ], 'fr'));
 
         $provider = $this->createMock(ProviderInterface::class);
-        $provider->expects($this->any())
+        $provider
             ->method('read')
-            ->with($domains, $locales)
-            ->willReturn($providerReadTranslatorBag);
+            ->willReturnMap([
+                [$domains, $locales, $providerReadTranslatorBag],
+            ]);
 
         // Create local bag, with a missing message.
         $localTranslatorBag = new TranslatorBag();
@@ -221,10 +222,11 @@
         $providerReadTranslatorBag->addCatalogue($arrayLoader->load(['note' => 'NOTE'], 'en'));
         $providerReadTranslatorBag->addCatalogue($arrayLoader->load(['note' => 'NOTE'], 'fr'));
 
-        $provider->expects($this->any())
+        $provider
             ->method('read')
-            ->with($domains, $locales)
-            ->willReturn($providerReadTranslatorBag);
+            ->willReturnMap([
+                [$domains, $locales, $providerReadTranslatorBag],
+            ]);
 
         $provider->expects($this->once())
             ->method('write')
@@ -261,10 +263,11 @@
         ], 'fr'));
 
         $provider = $this->createMock(ProviderInterface::class);
-        $provider->expects($this->any())
+        $provider
             ->method('read')
-            ->with($domains, $locales)
-            ->willReturn($providerReadTranslatorBag);
+            ->willReturnMap([
+                [$domains, $locales, $providerReadTranslatorBag],
+            ]);
 
         // Create local bag, with a missing message, an updated one and a new one.
         $localTranslatorBag = new TranslatorBag();
@@ -283,10 +286,11 @@
         $providerReadTranslatorBag->addCatalogue($arrayLoader->load(['note' => 'NOTE'], 'en'));
         $providerReadTranslatorBag->addCatalogue($arrayLoader->load(['note' => 'NOTE'], 'fr'));
 
-        $provider->expects($this->any())
+        $provider
             ->method('read')
-            ->with($domains, $locales)
-            ->willReturn($providerReadTranslatorBag);
+            ->willReturnMap([
+                [$domains, $locales, $providerReadTranslatorBag],
+            ]);
 
         $translationBagToWrite = $localTranslatorBag->diff($providerReadTranslatorBag);
         $translationBagToWrite->addBag($localTranslatorBag->intersect($providerReadTranslatorBag));
@@ -312,7 +316,6 @@
         $arrayLoader = new ArrayLoader();
         $xliffLoader = new XliffFileLoader();
         $locales = ['en', 'fr'];
-        $domains = ['messages'];
 
         // Simulate existing messages on Provider
         $providerReadTranslatorBag = new TranslatorBag();
@@ -322,23 +325,28 @@
         $provider = $this->createMock(FilteringProvider::class);
         $provider->expects($this->once())
             ->method('read')
-            ->with($domains, $locales)
+            ->with($this->equalToCanonicalizing(['messages', 'validators']), $locales)
             ->willReturn($providerReadTranslatorBag);
         $provider->expects($this->once())
             ->method('getDomains')
-            ->willReturn(['messages']);
+            ->willReturn([]);
 
-        $filenameEn = $this->createFile([
+        $filenameMessagesEn = $this->createFile([
             'note' => 'NOTE',
             'new.foo' => 'newFoo',
         ]);
-        $filenameFr = $this->createFile([
+        $filenameMessagesFr = $this->createFile([
             'note' => 'NOTE',
             'new.foo' => 'nouveauFoo',
         ], 'fr');
+        $filenameValidatorsFr = $this->createFile([
+            'foo.error' => 'Valeur erronée',
+            'bar.success' => 'Formulaire valide !',
+        ], 'fr', 'validators.%locale%.xlf');
         $localTranslatorBag = new TranslatorBag();
-        $localTranslatorBag->addCatalogue($xliffLoader->load($filenameEn, 'en'));
-        $localTranslatorBag->addCatalogue($xliffLoader->load($filenameFr, 'fr'));
+        $localTranslatorBag->addCatalogue($xliffLoader->load($filenameMessagesEn, 'en'));
+        $localTranslatorBag->addCatalogue($xliffLoader->load($filenameMessagesFr, 'fr'));
+        $localTranslatorBag->addCatalogue($xliffLoader->load($filenameValidatorsFr, 'fr', 'validators'));
 
         $provider->expects($this->once())
             ->method('write')
@@ -366,7 +374,7 @@
 
         $tester->execute(['--locales' => ['en', 'fr']]);
 
-        $this->assertStringContainsString('[OK] New local translations has been sent to "null" (for "en, fr" locale(s), and "messages" domain(s)).', trim($tester->getDisplay()));
+        $this->assertStringContainsString('[OK] New local translations has been sent to "null" (for "en, fr" locale(s), and "messages, validators" domain(s)).', trim($tester->getDisplay()));
     }
 
     /**
@@ -375,7 +383,7 @@
     public function testComplete(array $input, array $expectedSuggestions)
     {
         $application = new Application();
-        $application->add($this->createCommand($this->createMock(ProviderInterface::class), ['en', 'fr', 'it'], ['messages', 'validators'], ['loco', 'crowdin', 'lokalise']));
+        $application->add($this->createCommand($this->createStub(ProviderInterface::class), ['en', 'fr', 'it'], ['messages', 'validators'], ['loco', 'crowdin', 'lokalise']));
 
         $tester = new CommandCompletionTester($application->get('translation:push'));
         $suggestions = $tester->complete($input);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Command/XliffLintCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Command/XliffLintCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Command/XliffLintCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Command/XliffLintCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -132,12 +132,12 @@
     {
         $command = new XliffLintCommand();
         $expected = <<<EOF
-Or of a whole directory:
+            Or of a whole directory:
 
-  <info>php %command.full_name% dirname</info>
-  <info>php %command.full_name% dirname --format=json</info>
+              <info>php %command.full_name% dirname</info>
+              <info>php %command.full_name% dirname --format=json</info>
 
-EOF;
+            EOF;
 
         $this->assertStringContainsString($expected, $command->getHelp());
     }
@@ -182,20 +182,20 @@
     private function createFile($sourceContent = 'note', $targetLanguage = 'en', $fileNamePattern = 'messages.%locale%.xlf'): string
     {
         $xliffContent = <<<XLIFF
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" target-language="$targetLanguage" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="note">
-                <source>$sourceContent</source>
-                <target>NOTE</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
-XLIFF;
+            <?xml version="1.0"?>
+            <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+                <file source-language="en" target-language="$targetLanguage" datatype="plaintext" original="file.ext">
+                    <body>
+                        <trans-unit id="note">
+                            <source>$sourceContent</source>
+                            <target>NOTE</target>
+                        </trans-unit>
+                    </body>
+                </file>
+            </xliff>
+            XLIFF;
 
-        $filename = sprintf('%s/translation-xliff-lint-test/%s', sys_get_temp_dir(), str_replace('%locale%', 'en', $fileNamePattern));
+        $filename = \sprintf('%s/translation-xliff-lint-test/%s', sys_get_temp_dir(), str_replace('%locale%', 'en', $fileNamePattern));
         file_put_contents($filename, $xliffContent);
 
         $this->files[] = $filename;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/DataCollector/TranslationDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/DataCollector/TranslationDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/DataCollector/TranslationDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/DataCollector/TranslationDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,15 +16,13 @@
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\Translation\DataCollector\TranslationDataCollector;
 use Symfony\Component\Translation\DataCollectorTranslator;
+use Symfony\Component\Translation\Translator;
 
 class TranslationDataCollectorTest extends TestCase
 {
     public function testCollectEmptyMessages()
     {
-        $translator = $this->getTranslator();
-        $translator->expects($this->any())->method('getCollectedMessages')->willReturn([]);
-
-        $dataCollector = new TranslationDataCollector($translator);
+        $dataCollector = new TranslationDataCollector(new DataCollectorTranslator(new Translator('en')));
         $dataCollector->lateCollect();
 
         $this->assertEquals(0, $dataCollector->getCountMissings());
@@ -139,7 +137,7 @@
         $translator->method('getFallbackLocales')->willReturn(['en']);
 
         $dataCollector = new TranslationDataCollector($translator);
-        $dataCollector->collect($this->createMock(Request::class), $this->createMock(Response::class));
+        $dataCollector->collect(new Request(), new Response());
 
         $this->assertSame('fr', $dataCollector->getLocale());
         $this->assertSame(['en'], $dataCollector->getFallbackLocales());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Exception/ProviderExceptionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Exception/ProviderExceptionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Exception/ProviderExceptionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Exception/ProviderExceptionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,7 +19,7 @@
 {
     public function testExceptionWithDebugMessage()
     {
-        $mock = $this->createMock(ResponseInterface::class);
+        $mock = $this->createStub(ResponseInterface::class);
         $mock->method('getInfo')->willReturn('debug');
 
         $exception = new ProviderException('Exception message', $mock, 503);
@@ -28,7 +28,7 @@
 
     public function testExceptionWithNullAsDebugMessage()
     {
-        $mock = $this->createMock(ResponseInterface::class);
+        $mock = $this->createStub(ResponseInterface::class);
         $mock->method('getInfo')->willReturn(null);
 
         $exception = new ProviderException('Exception message', $mock, 503);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Exception/UnsupportedSchemeExceptionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Exception/UnsupportedSchemeExceptionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Exception/UnsupportedSchemeExceptionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Exception/UnsupportedSchemeExceptionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,10 +41,10 @@
      */
     public function testMessageWhereSchemeIsPartOfSchemeToPackageMap(string $scheme, string $package)
     {
-        $dsn = new Dsn(sprintf('%s://localhost', $scheme));
+        $dsn = new Dsn(\sprintf('%s://localhost', $scheme));
 
         $this->assertSame(
-            sprintf('Unable to synchronize translations via "%s" as the provider is not installed. Try running "composer require %s".', $scheme, $package),
+            \sprintf('Unable to synchronize translations via "%s" as the provider is not installed. Try running "composer require %s".', $scheme, $package),
             (new UnsupportedSchemeException($dsn))->getMessage()
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Extractor/PhpAstExtractorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Extractor/PhpAstExtractorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Extractor/PhpAstExtractorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Extractor/PhpAstExtractorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,11 +42,11 @@
         $extractor->extract($resource, $catalogue);
 
         $expectedHeredoc = <<<EOF
-heredoc key with whitespace and escaped \$\n sequences
-EOF;
+            heredoc key with whitespace and escaped \$\n sequences
+            EOF;
         $expectedNowdoc = <<<'EOF'
-nowdoc key with whitespace and nonescaped \$\n sequences
-EOF;
+            nowdoc key with whitespace and nonescaped \$\n sequences
+            EOF;
         $expectedCatalogue = [
             'messages' => [
                 'translatable single-quoted key' => 'prefixtranslatable single-quoted key',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Extractor/PhpExtractorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Extractor/PhpExtractorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Extractor/PhpExtractorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Extractor/PhpExtractorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,11 +36,11 @@
         $extractor->extract($resource, $catalogue);
 
         $expectedHeredoc = <<<EOF
-heredoc key with whitespace and escaped \$\n sequences
-EOF;
+            heredoc key with whitespace and escaped \$\n sequences
+            EOF;
         $expectedNowdoc = <<<'EOF'
-nowdoc key with whitespace and nonescaped \$\n sequences
-EOF;
+            nowdoc key with whitespace and nonescaped \$\n sequences
+            EOF;
         // Assert
         $expectedCatalogue = [
             'messages' => [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Fixtures/resources.csv symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Fixtures/resources.csv
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Fixtures/resources.csv	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Fixtures/resources.csv	2026-05-20 10:56:49.000000000 +0200
@@ -1,4 +1,6 @@
 "foo"; "bar"
 #"bar"; "foo"
+
+# all incorrect examples:
 "incorrect"; "number"; "columns"; "will"; "be"; "ignored"
-"incorrect"
\ Pas de fin de ligne à la fin du fichier
+"incorrect"
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Formatter/IntlFormatterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Formatter/IntlFormatterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Formatter/IntlFormatterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Formatter/IntlFormatterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,23 +41,23 @@
         }
 
         $chooseMessage = <<<'_MSG_'
-{gender_of_host, select,
-  female {{num_guests, plural, offset:1
-      =0 {{host} does not give a party.}
-      =1 {{host} invites {guest} to her party.}
-      =2 {{host} invites {guest} and one other person to her party.}
-     other {{host} invites {guest} as one of the # people invited to her party.}}}
-  male   {{num_guests, plural, offset:1
-      =0 {{host} does not give a party.}
-      =1 {{host} invites {guest} to his party.}
-      =2 {{host} invites {guest} and one other person to his party.}
-     other {{host} invites {guest} as one of the # people invited to his party.}}}
-  other {{num_guests, plural, offset:1
-      =0 {{host} does not give a party.}
-      =1 {{host} invites {guest} to their party.}
-      =2 {{host} invites {guest} and one other person to their party.}
-     other {{host} invites {guest} as one of the # people invited to their party.}}}}
-_MSG_;
+            {gender_of_host, select,
+              female {{num_guests, plural, offset:1
+                  =0 {{host} does not give a party.}
+                  =1 {{host} invites {guest} to her party.}
+                  =2 {{host} invites {guest} and one other person to her party.}
+                 other {{host} invites {guest} as one of the # people invited to her party.}}}
+              male   {{num_guests, plural, offset:1
+                  =0 {{host} does not give a party.}
+                  =1 {{host} invites {guest} to his party.}
+                  =2 {{host} invites {guest} and one other person to his party.}
+                 other {{host} invites {guest} as one of the # people invited to his party.}}}
+              other {{num_guests, plural, offset:1
+                  =0 {{host} does not give a party.}
+                  =1 {{host} invites {guest} to their party.}
+                  =2 {{host} invites {guest} and one other person to their party.}
+                 other {{host} invites {guest} as one of the # people invited to their party.}}}}
+            _MSG_;
 
         $message = (new IntlFormatter())->formatIntl($chooseMessage, 'en', [
             'gender_of_host' => 'male',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Loader/QtFileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Loader/QtFileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Loader/QtFileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Loader/QtFileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
         $resource = __DIR__.'/../Fixtures/empty.xlf';
 
         $this->expectException(InvalidResourceException::class);
-        $this->expectExceptionMessage(sprintf('Unable to load "%s".', $resource));
+        $this->expectExceptionMessage(\sprintf('Unable to load "%s".', $resource));
 
         $loader->load($resource, 'en', 'domain1');
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Loader/XliffFileLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Loader/XliffFileLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Loader/XliffFileLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Loader/XliffFileLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,38 +35,38 @@
     {
         $loader = new XliffFileLoader();
         $resource = <<<XLIFF
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" datatype="plaintext" original="file.ext">
-    <body>
-      <trans-unit id="1">
-        <source>foo</source>
-        <target>bar</target>
-      </trans-unit>
-      <trans-unit id="2">
-        <source>extra</source>
-      </trans-unit>
-      <trans-unit id="3">
-        <source>key</source>
-        <target></target>
-      </trans-unit>
-      <trans-unit id="4">
-        <source>test</source>
-        <target state="needs-translation">with</target>
-        <note>note</note>
-      </trans-unit>
-      <trans-unit id="5">
-        <source>baz</source>
-        <target state="needs-translation">baz</target>
-      </trans-unit>
-      <trans-unit id="6" resname="buz">
-        <source>baz</source>
-        <target state="needs-translation">buz</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
-XLIFF;
+            <?xml version="1.0" encoding="utf-8"?>
+            <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+              <file source-language="en" datatype="plaintext" original="file.ext">
+                <body>
+                  <trans-unit id="1">
+                    <source>foo</source>
+                    <target>bar</target>
+                  </trans-unit>
+                  <trans-unit id="2">
+                    <source>extra</source>
+                  </trans-unit>
+                  <trans-unit id="3">
+                    <source>key</source>
+                    <target></target>
+                  </trans-unit>
+                  <trans-unit id="4">
+                    <source>test</source>
+                    <target state="needs-translation">with</target>
+                    <note>note</note>
+                  </trans-unit>
+                  <trans-unit id="5">
+                    <source>baz</source>
+                    <target state="needs-translation">baz</target>
+                  </trans-unit>
+                  <trans-unit id="6" resname="buz">
+                    <source>baz</source>
+                    <target state="needs-translation">buz</target>
+                  </trans-unit>
+                </body>
+              </file>
+            </xliff>
+            XLIFF;
 
         $catalogue = $loader->load($resource, 'en', 'domain1');
 
@@ -193,7 +193,7 @@
         $resource = __DIR__.'/../Fixtures/empty.xlf';
 
         $this->expectException(InvalidResourceException::class);
-        $this->expectExceptionMessage(sprintf('Unable to load "%s":', $resource));
+        $this->expectExceptionMessage(\sprintf('Unable to load "%s":', $resource));
 
         $loader->load($resource, 'en', 'domain1');
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -138,11 +138,11 @@
 
     public function testAddCatalogue()
     {
-        $r = $this->createMock(ResourceInterface::class);
-        $r->expects($this->any())->method('__toString')->willReturn('r');
+        $r = $this->createStub(ResourceInterface::class);
+        $r->method('__toString')->willReturn('r');
 
-        $r1 = $this->createMock(ResourceInterface::class);
-        $r1->expects($this->any())->method('__toString')->willReturn('r1');
+        $r1 = $this->createStub(ResourceInterface::class);
+        $r1->method('__toString')->willReturn('r1');
 
         $catalogue = new MessageCatalogue('en', ['domain1' => ['foo' => 'foo']]);
         $catalogue->addResource($r);
@@ -162,14 +162,14 @@
 
     public function testAddFallbackCatalogue()
     {
-        $r = $this->createMock(ResourceInterface::class);
-        $r->expects($this->any())->method('__toString')->willReturn('r');
+        $r = $this->createStub(ResourceInterface::class);
+        $r->method('__toString')->willReturn('r');
 
-        $r1 = $this->createMock(ResourceInterface::class);
-        $r1->expects($this->any())->method('__toString')->willReturn('r1');
+        $r1 = $this->createStub(ResourceInterface::class);
+        $r1->method('__toString')->willReturn('r1');
 
-        $r2 = $this->createMock(ResourceInterface::class);
-        $r2->expects($this->any())->method('__toString')->willReturn('r2');
+        $r2 = $this->createStub(ResourceInterface::class);
+        $r2->method('__toString')->willReturn('r2');
 
         $catalogue = new MessageCatalogue('fr_FR', ['domain1' => ['foo' => 'foo'], 'domain2' => ['bar' => 'bar']]);
         $catalogue->addResource($r);
@@ -221,12 +221,12 @@
     public function testGetAddResource()
     {
         $catalogue = new MessageCatalogue('en');
-        $r = $this->createMock(ResourceInterface::class);
-        $r->expects($this->any())->method('__toString')->willReturn('r');
+        $r = $this->createStub(ResourceInterface::class);
+        $r->method('__toString')->willReturn('r');
         $catalogue->addResource($r);
         $catalogue->addResource($r);
-        $r1 = $this->createMock(ResourceInterface::class);
-        $r1->expects($this->any())->method('__toString')->willReturn('r1');
+        $r1 = $this->createStub(ResourceInterface::class);
+        $r1->method('__toString')->willReturn('r1');
         $catalogue->addResource($r1);
 
         $this->assertEquals([$r, $r1], $catalogue->getResources());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Provider/DsnTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Provider/DsnTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Provider/DsnTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Provider/DsnTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -212,7 +212,7 @@
      */
     public function testGetRequiredOption(string $expectedValue, string $options, string $option)
     {
-        $dsn = new Dsn(sprintf('scheme://localhost?%s', $options));
+        $dsn = new Dsn(\sprintf('scheme://localhost?%s', $options));
 
         $this->assertSame($expectedValue, $dsn->getRequiredOption($option));
     }
@@ -237,7 +237,7 @@
      */
     public function testGetRequiredOptionThrowsMissingRequiredOptionException(string $expectedExceptionMessage, string $options, string $option)
     {
-        $dsn = new Dsn(sprintf('scheme://localhost?%s', $options));
+        $dsn = new Dsn(\sprintf('scheme://localhost?%s', $options));
 
         $this->expectException(MissingRequiredOptionException::class);
         $this->expectExceptionMessage($expectedExceptionMessage);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Provider/TranslationProviderCollectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Provider/TranslationProviderCollectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Provider/TranslationProviderCollectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Provider/TranslationProviderCollectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Translation\Tests\Provider;
 
 use PHPUnit\Framework\TestCase;
-use Symfony\Component\Translation\Provider\ProviderInterface;
+use Symfony\Component\Translation\Provider\NullProvider;
 use Symfony\Component\Translation\Provider\TranslationProviderCollection;
 
 class TranslationProviderCollectionTest extends TestCase
@@ -25,10 +25,10 @@
     public function testKeysWithGenerator()
     {
         $this->assertSame(['foo', 'baz'], (new TranslationProviderCollection(
-            (function () {
-                yield 'foo' => $this->createMock(ProviderInterface::class);
+            (static function () {
+                yield 'foo' => new NullProvider();
 
-                yield 'baz' => $this->createMock(ProviderInterface::class);
+                yield 'baz' => new NullProvider();
             })()
         ))->keys());
     }
@@ -45,11 +45,11 @@
 
     public function testGet()
     {
-        $provider = $this->createMock(ProviderInterface::class);
+        $provider = new NullProvider();
 
         $this->assertSame($provider, (new TranslationProviderCollection([
             'foo' => $provider,
-            'baz' => $this->createMock(ProviderInterface::class),
+            'baz' => new NullProvider(),
         ]))->get('foo'));
     }
 
@@ -64,8 +64,8 @@
     private function createProviderCollection(): TranslationProviderCollection
     {
         return new TranslationProviderCollection([
-            'foo' => $this->createMock(ProviderInterface::class),
-            'baz' => $this->createMock(ProviderInterface::class),
+            'foo' => new NullProvider(),
+            'baz' => new NullProvider(),
         ]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/PseudoLocalizationTranslatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/PseudoLocalizationTranslatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/PseudoLocalizationTranslatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/PseudoLocalizationTranslatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -81,3 +81,5 @@
         ], $options);
     }
 }
+
+// @php-cs-fixer-ignore random_api_migration As logic is coupled with mt_rand() in src
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/TranslatorBagTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/TranslatorBagTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/TranslatorBagTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/TranslatorBagTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,9 +27,9 @@
         $this->assertEquals(['en' => $messages], $this->getAllMessagesFromTranslatorBag($bag));
 
         $messages = ['domain1+intl-icu' => ['foo' => 'bar']] + $messages + [
-                'domain2+intl-icu' => ['bar' => 'foo'],
-                'domain3+intl-icu' => ['biz' => 'biz'],
-            ];
+            'domain2+intl-icu' => ['bar' => 'foo'],
+            'domain3+intl-icu' => ['biz' => 'biz'],
+        ];
         $catalogue = new MessageCatalogue('en', $messages);
 
         $bag = new TranslatorBag();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,9 +46,9 @@
                 continue;
             }
             if ($path->isDir()) {
-                rmdir($path->__toString());
+                @rmdir($path->__toString());
             } else {
-                unlink($path->__toString());
+                @unlink($path->__toString());
             }
         }
         rmdir($this->tmpDir);
@@ -60,7 +60,7 @@
     public function testThatACacheIsUsed($debug)
     {
         if (!class_exists(\MessageFormatter::class)) {
-            $this->markTestSkipped(sprintf('Skipping test as the required "%s" class does not exist. Consider installing the "intl" PHP extension or the "symfony/polyfill-intl-messageformatter" package.', \MessageFormatter::class));
+            $this->markTestSkipped(\sprintf('Skipping test as the required "%s" class does not exist. Consider installing the "intl" PHP extension or the "symfony/polyfill-intl-messageformatter" package.', \MessageFormatter::class));
         }
 
         $locale = 'any_locale';
@@ -252,7 +252,7 @@
 
     public function testRefreshCacheWhenResourcesAreNoLongerFresh()
     {
-        $resource = $this->createMock(SelfCheckingResourceInterface::class);
+        $resource = $this->createStub(SelfCheckingResourceInterface::class);
         $loader = $this->createMock(LoaderInterface::class);
         $resource->method('isFresh')->willReturn(false);
         $loader
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/TranslatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/TranslatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/TranslatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/TranslatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -398,7 +398,7 @@
     public function testTransICU(...$args)
     {
         if (!class_exists(\MessageFormatter::class)) {
-            $this->markTestSkipped(sprintf('Skipping test as the required "%s" class does not exist. Consider installing the "intl" PHP extension or the "symfony/polyfill-intl-messageformatter" package.', \MessageFormatter::class));
+            $this->markTestSkipped(\sprintf('Skipping test as the required "%s" class does not exist. Consider installing the "intl" PHP extension or the "symfony/polyfill-intl-messageformatter" package.', \MessageFormatter::class));
         }
 
         $this->testTrans(...$args);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Util/XliffUtilsTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Util/XliffUtilsTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Util/XliffUtilsTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Util/XliffUtilsTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,123 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Tests\Util;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Translation\Util\XliffUtils;
+
+class XliffUtilsTest extends TestCase
+{
+    /**
+     * @dataProvider providePaths
+     */
+    public function testGetFileUrlEncodesPathSegments(string $path, string $expected)
+    {
+        $method = new \ReflectionMethod(XliffUtils::class, 'getFileUrl');
+
+        $this->assertSame($expected, $method->invoke(null, $path));
+    }
+
+    public static function providePaths(): iterable
+    {
+        yield 'plain POSIX path' => [
+            '/tmp/symfony123',
+            'file:////tmp/symfony123',
+        ];
+
+        // Windows usernames may contain spaces. Without rawurlencode, the
+        // resulting `file:///` URL is syntactically invalid and triggers a
+        // libxml "Invalid Schema" warning when fed to schemaValidateSource().
+        yield 'POSIX path with spaces' => [
+            '/tmp/dir with space/symfony123',
+            'file:////tmp/dir%20with%20space/symfony123',
+        ];
+
+        yield 'POSIX path with non-ASCII characters' => [
+            '/tmp/中文/symfony123',
+            'file:////tmp/%E4%B8%AD%E6%96%87/symfony123',
+        ];
+    }
+
+    public function testEncodedUrlPreventsLibxmlInvalidSchemaErrors()
+    {
+        $dir = sys_get_temp_dir().\DIRECTORY_SEPARATOR.uniqid('symfony_xliff_', false).' with space';
+
+        if (!@mkdir($dir) && !is_dir($dir)) {
+            $this->markTestSkipped(\sprintf('Could not create tmp dir "%s".', $dir));
+        }
+
+        $tmpfile = tempnam($dir, 'symfony');
+
+        try {
+            if (!\is_string($tmpfile) || \dirname($tmpfile) !== $dir) {
+                $this->markTestSkipped(\sprintf('tempnam() did not place the file under "%s".', $dir));
+            }
+
+            file_put_contents($tmpfile, '<?xml version="1.0" encoding="utf-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <xsd:element name="test" type="testType" />
+  <xsd:complexType name="testType"/>
+</xsd:schema>');
+
+            $encodedUrl = (new \ReflectionMethod(XliffUtils::class, 'getFileUrl'))->invoke(null, $tmpfile);
+
+            $result = $this->validateSchemaInclude($encodedUrl);
+            $this->assertSame([], $result['php_warnings'], 'Encoded URL must not emit a "DOMDocument::schemaValidateSource(): Invalid Schema" PHP warning.');
+            $this->assertSame([], $result['libxml_errors'], 'Encoded URL must not produce libxml URI parsing errors when included.');
+        } finally {
+            if (\is_string($tmpfile)) {
+                @unlink($tmpfile);
+            }
+            @rmdir($dir);
+        }
+    }
+
+    /**
+     * @return array{php_warnings: list<string>, libxml_errors: list<string>}
+     */
+    private function validateSchemaInclude(string $schemaLocation): array
+    {
+        $dom = new \DOMDocument();
+        $dom->loadXML('<?xml version="1.0"?><test/>');
+
+        $phpWarnings = [];
+        set_error_handler(static function (int $errno, string $msg) use (&$phpWarnings): bool {
+            if (str_contains($msg, 'Invalid Schema')) {
+                $phpWarnings[] = $msg;
+            }
+
+            return true;
+        }, \E_WARNING);
+
+        $internalErrors = libxml_use_internal_errors(true);
+        libxml_clear_errors();
+
+        try {
+            @$dom->schemaValidateSource('<?xml version="1.0" encoding="utf-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <xsd:include schemaLocation="'.$schemaLocation.'" />
+</xsd:schema>');
+        } finally {
+            $libxmlErrors = array_values(array_filter(
+                array_map(static fn (\LibXMLError $e): string => trim($e->message), libxml_get_errors()),
+                static fn (string $m): bool => str_contains($m, 'could not build an URI')
+                    || str_contains($m, 'xmlSchemaParseIncludeOrRedefine')
+            ));
+
+            libxml_clear_errors();
+            libxml_use_internal_errors($internalErrors);
+            restore_error_handler();
+        }
+
+        return ['php_warnings' => $phpWarnings, 'libxml_errors' => $libxmlErrors];
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Writer/TranslationWriterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Writer/TranslationWriterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Tests/Writer/TranslationWriterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Tests/Writer/TranslationWriterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,8 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Translation\Dumper\DumperInterface;
+use Symfony\Component\Translation\Dumper\XliffFileDumper;
+use Symfony\Component\Translation\Dumper\YamlFileDumper;
 use Symfony\Component\Translation\Exception\InvalidArgumentException;
 use Symfony\Component\Translation\Exception\RuntimeException;
 use Symfony\Component\Translation\MessageCatalogue;
@@ -35,8 +37,8 @@
     public function testGetFormats()
     {
         $writer = new TranslationWriter();
-        $writer->addDumper('foo', $this->createMock(DumperInterface::class));
-        $writer->addDumper('bar', $this->createMock(DumperInterface::class));
+        $writer->addDumper('foo', new YamlFileDumper());
+        $writer->addDumper('bar', new XliffFileDumper());
 
         $this->assertEquals(['foo', 'bar'], $writer->getFormats());
     }
@@ -53,13 +55,13 @@
     public function testUnwritableDirectory()
     {
         $writer = new TranslationWriter();
-        $writer->addDumper('foo', $this->createMock(DumperInterface::class));
+        $writer->addDumper('foo', new YamlFileDumper());
 
         $path = tempnam(sys_get_temp_dir(), '');
         file_put_contents($path, '');
 
         $this->expectException(RuntimeException::class);
-        $this->expectExceptionMessage(sprintf('Translation Writer was not able to create directory "%s".', $path));
+        $this->expectExceptionMessage(\sprintf('Translation Writer was not able to create directory "%s".', $path));
 
         $writer->write(new MessageCatalogue('en'), 'foo', ['path' => $path]);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/TranslatableMessage.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/TranslatableMessage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/TranslatableMessage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/TranslatableMessage.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,9 +52,13 @@
 
     public function trans(TranslatorInterface $translator, ?string $locale = null): string
     {
-        return $translator->trans($this->getMessage(), array_map(
-            static fn ($parameter) => $parameter instanceof TranslatableInterface ? $parameter->trans($translator, $locale) : $parameter,
-            $this->getParameters()
-        ), $this->getDomain(), $locale);
+        $parameters = $this->getParameters();
+        foreach ($parameters as $k => $v) {
+            if ($v instanceof TranslatableInterface) {
+                $parameters[$k] = $v->trans($translator, $locale);
+            }
+        }
+
+        return $translator->trans($this->getMessage(), $parameters, $this->getDomain(), $locale);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Translator.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Translator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Translator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Translator.php	2026-05-20 10:56:49.000000000 +0200
@@ -290,18 +290,17 @@
         $this->initializeCatalogue($locale);
         $fallbackContent = $this->getFallbackContent($this->catalogues[$locale]);
 
-        $content = sprintf(<<<EOF
-<?php
+        $content = \sprintf(<<<EOF
+            <?php
 
-use Symfony\Component\Translation\MessageCatalogue;
+            use Symfony\Component\Translation\MessageCatalogue;
 
-\$catalogue = new MessageCatalogue('%s', %s);
+            \$catalogue = new MessageCatalogue('%s', %s);
 
-%s
-return \$catalogue;
+            %s
+            return \$catalogue;
 
-EOF
-            ,
+            EOF,
             $locale,
             var_export($this->getAllMessages($this->catalogues[$locale]), true),
             $fallbackContent
@@ -321,12 +320,11 @@
             $fallbackSuffix = ucfirst(preg_replace($replacementPattern, '_', $fallback));
             $currentSuffix = ucfirst(preg_replace($replacementPattern, '_', $current));
 
-            $fallbackContent .= sprintf(<<<'EOF'
-$catalogue%s = new MessageCatalogue('%s', %s);
-$catalogue%s->addFallbackCatalogue($catalogue%s);
+            $fallbackContent .= \sprintf(<<<'EOF'
+                $catalogue%s = new MessageCatalogue('%s', %s);
+                $catalogue%s->addFallbackCatalogue($catalogue%s);
 
-EOF
-                ,
+                EOF,
                 $fallbackSuffix,
                 $fallback,
                 var_export($this->getAllMessages($fallbackCatalogue), true),
@@ -356,10 +354,10 @@
             foreach ($this->resources[$locale] as $resource) {
                 if (!isset($this->loaders[$resource[0]])) {
                     if (\is_string($resource[1])) {
-                        throw new RuntimeException(sprintf('No loader is registered for the "%s" format when loading the "%s" resource.', $resource[0], $resource[1]));
+                        throw new RuntimeException(\sprintf('No loader is registered for the "%s" format when loading the "%s" resource.', $resource[0], $resource[1]));
                     }
 
-                    throw new RuntimeException(sprintf('No loader is registered for the "%s" format.', $resource[0]));
+                    throw new RuntimeException(\sprintf('No loader is registered for the "%s" format.', $resource[0]));
                 }
                 $this->catalogues[$locale]->addCatalogue($this->loaders[$resource[0]]->load($resource[1], $locale, $resource[2]));
             }
@@ -438,7 +436,7 @@
     protected function assertValidLocale(string $locale)
     {
         if (!preg_match('/^[a-z0-9@_\\.\\-]*$/i', $locale)) {
-            throw new InvalidArgumentException(sprintf('Invalid "%s" locale.', $locale));
+            throw new InvalidArgumentException(\sprintf('Invalid "%s" locale.', $locale));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Util/XliffUtils.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Util/XliffUtils.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Util/XliffUtils.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Util/XliffUtils.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
             $namespace = $xliff->attributes->getNamedItem('xmlns');
             if ($namespace) {
                 if (0 !== substr_compare('urn:oasis:names:tc:xliff:document:', $namespace->nodeValue, 0, 34)) {
-                    throw new InvalidArgumentException(sprintf('Not a valid XLIFF namespace "%s".', $namespace));
+                    throw new InvalidArgumentException(\sprintf('Not a valid XLIFF namespace "%s".', $namespace));
                 }
 
                 return substr($namespace, 34);
@@ -83,6 +83,24 @@
         return [];
     }
 
+    public static function getErrorsAsString(array $xmlErrors): string
+    {
+        $errorsAsString = '';
+
+        foreach ($xmlErrors as $error) {
+            $errorsAsString .= \sprintf("[%s %s] %s (in %s - line %d, column %d)\n",
+                \LIBXML_ERR_WARNING === $error['level'] ? 'WARNING' : 'ERROR',
+                $error['code'],
+                $error['message'],
+                $error['file'],
+                $error['line'],
+                $error['column']
+            );
+        }
+
+        return $errorsAsString;
+    }
+
     private static function shouldEnableEntityLoader(): bool
     {
         static $dom, $schema;
@@ -96,7 +114,7 @@
             });
             $schema = '<?xml version="1.0" encoding="utf-8"?>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <xsd:include schemaLocation="file:///'.str_replace('\\', '/', $tmpfile).'" />
+  <xsd:include schemaLocation="'.self::getFileUrl($tmpfile).'" />
 </xsd:schema>';
             file_put_contents($tmpfile, '<?xml version="1.0" encoding="utf-8"?>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
@@ -108,22 +126,17 @@
         return !@$dom->schemaValidateSource($schema);
     }
 
-    public static function getErrorsAsString(array $xmlErrors): string
+    private static function getFileUrl(string $path): string
     {
-        $errorsAsString = '';
-
-        foreach ($xmlErrors as $error) {
-            $errorsAsString .= sprintf("[%s %s] %s (in %s - line %d, column %d)\n",
-                \LIBXML_ERR_WARNING === $error['level'] ? 'WARNING' : 'ERROR',
-                $error['code'],
-                $error['message'],
-                $error['file'],
-                $error['line'],
-                $error['column']
-            );
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            $parts = explode('/', str_replace('\\', '/', $path));
+            $drive = array_shift($parts).'/';
+        } else {
+            $parts = explode('/', $path);
+            $drive = '';
         }
 
-        return $errorsAsString;
+        return 'file:///'.$drive.implode('/', array_map('rawurlencode', $parts));
     }
 
     private static function getSchema(string $xliffVersion): string
@@ -135,7 +148,7 @@
             $schemaSource = file_get_contents(__DIR__.'/../Resources/schemas/xliff-core-2.0.xsd');
             $xmlUri = 'informativeCopiesOf3rdPartySchemas/w3c/xml.xsd';
         } else {
-            throw new InvalidArgumentException(sprintf('No support implemented for loading XLIFF version "%s".', $xliffVersion));
+            throw new InvalidArgumentException(\sprintf('No support implemented for loading XLIFF version "%s".', $xliffVersion));
         }
 
         return self::fixXmlLocation($schemaSource, $xmlUri);
@@ -146,23 +159,22 @@
      */
     private static function fixXmlLocation(string $schemaSource, string $xmlUri): string
     {
-        $newPath = str_replace('\\', '/', __DIR__).'/../Resources/schemas/xml.xsd';
-        $parts = explode('/', $newPath);
-        $locationstart = 'file:///';
-        if (0 === stripos($newPath, 'phar://')) {
-            $tmpfile = tempnam(sys_get_temp_dir(), 'symfony');
-            if ($tmpfile) {
-                copy($newPath, $tmpfile);
-                $parts = explode('/', str_replace('\\', '/', $tmpfile));
+        $path = __DIR__.'/../Resources/schemas/xml.xsd';
+
+        if (0 === stripos($path, 'phar://')) {
+            if ($tmpfile = tempnam(sys_get_temp_dir(), 'symfony')) {
+                copy($path, $tmpfile);
+                $newPath = self::getFileUrl($tmpfile);
             } else {
+                $parts = explode('/', '\\' === \DIRECTORY_SEPARATOR ? str_replace('\\', '/', $path) : $path);
                 array_shift($parts);
-                $locationstart = 'phar:///';
+                $drive = '\\' === \DIRECTORY_SEPARATOR ? array_shift($parts).'/' : '';
+                $newPath = 'phar:///'.$drive.implode('/', array_map('rawurlencode', $parts));
             }
+        } else {
+            $newPath = self::getFileUrl($path);
         }
 
-        $drive = '\\' === \DIRECTORY_SEPARATOR ? array_shift($parts).'/' : '';
-        $newPath = $locationstart.$drive.implode('/', array_map('rawurlencode', $parts));
-
         return str_replace($xmlUri, $newPath, $schemaSource);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Writer/TranslationWriter.php symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Writer/TranslationWriter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Translation/Writer/TranslationWriter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Translation/Writer/TranslationWriter.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,14 +59,14 @@
     public function write(MessageCatalogue $catalogue, string $format, array $options = [])
     {
         if (!isset($this->dumpers[$format])) {
-            throw new InvalidArgumentException(sprintf('There is no dumper associated with format "%s".', $format));
+            throw new InvalidArgumentException(\sprintf('There is no dumper associated with format "%s".', $format));
         }
 
         // get the right dumper
         $dumper = $this->dumpers[$format];
 
-        if (isset($options['path']) && !is_dir($options['path']) && !@mkdir($options['path'], 0777, true) && !is_dir($options['path'])) {
-            throw new RuntimeException(sprintf('Translation Writer was not able to create directory "%s".', $options['path']));
+        if (isset($options['path']) && !is_dir($options['path']) && !@mkdir($options['path'], 0o777, true) && !is_dir($options['path'])) {
+            throw new RuntimeException(\sprintf('Translation Writer was not able to create directory "%s".', $options['path']));
         }
 
         // save
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/AbstractUid.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/AbstractUid.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/AbstractUid.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/AbstractUid.php	2026-05-20 10:56:49.000000000 +0200
@@ -95,7 +95,7 @@
      */
     public function toBase58(): string
     {
-        return strtr(sprintf('%022s', BinaryUtil::toBase($this->toBinary(), BinaryUtil::BASE58)), '0', '1');
+        return strtr(\sprintf('%022s', BinaryUtil::toBase($this->toBinary(), BinaryUtil::BASE58)), '0', '1');
     }
 
     /**
@@ -108,7 +108,7 @@
     public function toBase32(): string
     {
         $uid = bin2hex($this->toBinary());
-        $uid = sprintf('%02s%04s%04s%04s%04s%04s%04s',
+        $uid = \sprintf('%02s%04s%04s%04s%04s%04s%04s',
             base_convert(substr($uid, 0, 2), 16, 32),
             base_convert(substr($uid, 2, 5), 16, 32),
             base_convert(substr($uid, 7, 5), 16, 32),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/BinaryUtil.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/BinaryUtil.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/BinaryUtil.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/BinaryUtil.php	2026-05-20 10:56:49.000000000 +0200
@@ -173,3 +173,5 @@
         return bin2hex($time);
     }
 }
+
+// @php-cs-fixer-ignore long_to_shorthand_operator To prevent false positive causing "Cannot use assign-op operators with string offsets" error
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Command/GenerateUlidCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Command/GenerateUlidCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Command/GenerateUlidCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Command/GenerateUlidCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,25 +40,25 @@
             ->setDefinition([
                 new InputOption('time', null, InputOption::VALUE_REQUIRED, 'The ULID timestamp: a parsable date/time string'),
                 new InputOption('count', 'c', InputOption::VALUE_REQUIRED, 'The number of ULID to generate', 1),
-                new InputOption('format', 'f', InputOption::VALUE_REQUIRED, sprintf('The ULID output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'base32'),
+                new InputOption('format', 'f', InputOption::VALUE_REQUIRED, \sprintf('The ULID output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'base32'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> command generates a ULID.
+                The <info>%command.name%</info> command generates a ULID.
 
-    <info>php %command.full_name%</info>
+                    <info>php %command.full_name%</info>
 
-To specify the timestamp:
+                To specify the timestamp:
 
-    <info>php %command.full_name% --time="2021-02-16 14:09:08"</info>
+                    <info>php %command.full_name% --time="2021-02-16 14:09:08"</info>
 
-To generate several ULIDs:
+                To generate several ULIDs:
 
-    <info>php %command.full_name% --count=10</info>
+                    <info>php %command.full_name% --count=10</info>
 
-To output a specific format:
+                To output a specific format:
 
-    <info>php %command.full_name% --format=rfc4122</info>
-EOF
+                    <info>php %command.full_name% --format=rfc4122</info>
+                EOF
             )
         ;
     }
@@ -71,7 +71,7 @@
             try {
                 $time = new \DateTimeImmutable($time);
             } catch (\Exception $e) {
-                $io->error(sprintf('Invalid timestamp "%s": %s', $time, str_replace('DateTimeImmutable::__construct(): ', '', $e->getMessage())));
+                $io->error(\sprintf('Invalid timestamp "%s": %s', $time, str_replace('DateTimeImmutable::__construct(): ', '', $e->getMessage())));
 
                 return 1;
             }
@@ -82,7 +82,7 @@
         if (\in_array($formatOption, $this->getAvailableFormatOptions())) {
             $format = 'to'.ucfirst($formatOption);
         } else {
-            $io->error(sprintf('Invalid format "%s", supported formats are "%s".', $formatOption, implode('", "', $this->getAvailableFormatOptions())));
+            $io->error(\sprintf('Invalid format "%s", supported formats are "%s".', $formatOption, implode('", "', $this->getAvailableFormatOptions())));
 
             return 1;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Command/GenerateUuidCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Command/GenerateUuidCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Command/GenerateUuidCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Command/GenerateUuidCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,41 +45,41 @@
                 new InputOption('namespace', null, InputOption::VALUE_REQUIRED, 'The UUID to use at the namespace for named-based UUIDs, predefined namespaces keywords "dns", "url", "oid" and "x500" are accepted'),
                 new InputOption('random-based', null, InputOption::VALUE_NONE, 'To generate a random-based UUID'),
                 new InputOption('count', 'c', InputOption::VALUE_REQUIRED, 'The number of UUID to generate', 1),
-                new InputOption('format', 'f', InputOption::VALUE_REQUIRED, sprintf('The UUID output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'rfc4122'),
+                new InputOption('format', 'f', InputOption::VALUE_REQUIRED, \sprintf('The UUID output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'rfc4122'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> generates a UUID.
+                The <info>%command.name%</info> generates a UUID.
 
-    <info>php %command.full_name%</info>
+                    <info>php %command.full_name%</info>
 
-To generate a time-based UUID:
+                To generate a time-based UUID:
 
-    <info>php %command.full_name% --time-based=now</info>
+                    <info>php %command.full_name% --time-based=now</info>
 
-To specify a time-based UUID's node:
+                To specify a time-based UUID's node:
 
-    <info>php %command.full_name% --time-based=@1613480254 --node=fb3502dc-137e-4849-8886-ac90d07f64a7</info>
+                    <info>php %command.full_name% --time-based=@1613480254 --node=fb3502dc-137e-4849-8886-ac90d07f64a7</info>
 
-To generate a name-based UUID:
+                To generate a name-based UUID:
 
-    <info>php %command.full_name% --name-based=foo</info>
+                    <info>php %command.full_name% --name-based=foo</info>
 
-To specify a name-based UUID's namespace:
+                To specify a name-based UUID's namespace:
 
-    <info>php %command.full_name% --name-based=bar --namespace=fb3502dc-137e-4849-8886-ac90d07f64a7</info>
+                    <info>php %command.full_name% --name-based=bar --namespace=fb3502dc-137e-4849-8886-ac90d07f64a7</info>
 
-To generate a random-based UUID:
+                To generate a random-based UUID:
 
-    <info>php %command.full_name% --random-based</info>
+                    <info>php %command.full_name% --random-based</info>
 
-To generate several UUIDs:
+                To generate several UUIDs:
 
-    <info>php %command.full_name% --count=10</info>
+                    <info>php %command.full_name% --count=10</info>
 
-To output a specific format:
+                To output a specific format:
 
-    <info>php %command.full_name% --format=base58</info>
-EOF
+                    <info>php %command.full_name% --format=base58</info>
+                EOF
             )
         ;
     }
@@ -118,7 +118,7 @@
                     try {
                         $node = Uuid::fromString($node);
                     } catch (\InvalidArgumentException $e) {
-                        $io->error(sprintf('Invalid node "%s": %s', $node, $e->getMessage()));
+                        $io->error(\sprintf('Invalid node "%s": %s', $node, $e->getMessage()));
 
                         return 1;
                     }
@@ -127,7 +127,7 @@
                 try {
                     new \DateTimeImmutable($time);
                 } catch (\Exception $e) {
-                    $io->error(sprintf('Invalid timestamp "%s": %s', $time, str_replace('DateTimeImmutable::__construct(): ', '', $e->getMessage())));
+                    $io->error(\sprintf('Invalid timestamp "%s": %s', $time, str_replace('DateTimeImmutable::__construct(): ', '', $e->getMessage())));
 
                     return 1;
                 }
@@ -140,7 +140,7 @@
                     try {
                         $namespace = Uuid::fromString($namespace);
                     } catch (\InvalidArgumentException $e) {
-                        $io->error(sprintf('Invalid namespace "%s": %s', $namespace, $e->getMessage()));
+                        $io->error(\sprintf('Invalid namespace "%s": %s', $namespace, $e->getMessage()));
 
                         return 1;
                     }
@@ -171,7 +171,7 @@
         if (\in_array($formatOption, $this->getAvailableFormatOptions())) {
             $format = 'to'.ucfirst($formatOption);
         } else {
-            $io->error(sprintf('Invalid format "%s", supported formats are "%s".', $formatOption, implode('", "', $this->getAvailableFormatOptions())));
+            $io->error(\sprintf('Invalid format "%s", supported formats are "%s".', $formatOption, implode('", "', $this->getAvailableFormatOptions())));
 
             return 1;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Command/InspectUlidCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Command/InspectUlidCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Command/InspectUlidCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Command/InspectUlidCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,12 +31,12 @@
                 new InputArgument('ulid', InputArgument::REQUIRED, 'The ULID to inspect'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> displays information about a ULID.
+                The <info>%command.name%</info> displays information about a ULID.
 
-    <info>php %command.full_name% 01EWAKBCMWQ2C94EXNN60ZBS0Q</info>
-    <info>php %command.full_name% 1BVdfLn3ERmbjYBLCdaaLW</info>
-    <info>php %command.full_name% 01771535-b29c-b898-923b-b5a981f5e417</info>
-EOF
+                    <info>php %command.full_name% 01EWAKBCMWQ2C94EXNN60ZBS0Q</info>
+                    <info>php %command.full_name% 1BVdfLn3ERmbjYBLCdaaLW</info>
+                    <info>php %command.full_name% 01771535-b29c-b898-923b-b5a981f5e417</info>
+                EOF
             )
         ;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Command/InspectUuidCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Command/InspectUuidCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Command/InspectUuidCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Command/InspectUuidCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,12 +34,12 @@
                 new InputArgument('uuid', InputArgument::REQUIRED, 'The UUID to inspect'),
             ])
             ->setHelp(<<<'EOF'
-The <info>%command.name%</info> displays information about a UUID.
+                The <info>%command.name%</info> displays information about a UUID.
 
-    <info>php %command.full_name% a7613e0a-5986-11eb-a861-2bf05af69e52</info>
-    <info>php %command.full_name% MfnmaUvvQ1h8B14vTwt6dX</info>
-    <info>php %command.full_name% 57C4Z0MPC627NTGR9BY1DFD7JJ</info>
-EOF
+                    <info>php %command.full_name% a7613e0a-5986-11eb-a861-2bf05af69e52</info>
+                    <info>php %command.full_name% MfnmaUvvQ1h8B14vTwt6dX</info>
+                    <info>php %command.full_name% 57C4Z0MPC627NTGR9BY1DFD7JJ</info>
+                EOF
             )
         ;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Factory/UuidFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Factory/UuidFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Factory/UuidFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Factory/UuidFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,7 +72,7 @@
         $namespace ??= $this->nameBasedNamespace;
 
         if (null === $namespace) {
-            throw new \LogicException(sprintf('A namespace should be defined when using "%s()".', __METHOD__));
+            throw new \LogicException(\sprintf('A namespace should be defined when using "%s()".', __METHOD__));
         }
 
         return new NameBasedUuidFactory($this->nameBasedClass, $this->getNamespace($namespace));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Tests/Command/InspectUlidCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Tests/Command/InspectUlidCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Tests/Command/InspectUlidCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Tests/Command/InspectUlidCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
         $commandTester = new CommandTester(new InspectUlidCommand());
 
         $this->assertSame(1, $commandTester->execute(['ulid' => 'foobar']));
-        $this->assertStringContainsString('Invalid ULID: "foobar"', $commandTester->getDisplay());
+        $this->assertStringContainsString('Invalid ULID.', $commandTester->getDisplay());
 
         foreach ([
             '01E439TP9XJZ9RPFH3T1PYBCR8',
@@ -31,20 +31,21 @@
         ] as $ulid) {
             $this->assertSame(0, $commandTester->execute(['ulid' => $ulid]));
             $this->assertSame(<<<EOF
- ---------------------- -------------------------------------- 
-  Label                  Value                                 
- ---------------------- -------------------------------------- 
-  toBase32 (canonical)   01E439TP9XJZ9RPFH3T1PYBCR8            
-  toBase58               1BKocMc5BnrVcuq2ti4Eqm                
-  toRfc4122              0171069d-593d-97d3-8b3e-23d06de5b308  
-  toHex                  0x0171069d593d97d38b3e23d06de5b308    
- ---------------------- -------------------------------------- 
-  Time                   2020-03-23 08:58:27.517 UTC           
- ---------------------- -------------------------------------- 
+                 ---------------------- -------------------------------------- 
+                  Label                  Value                                 
+                 ---------------------- -------------------------------------- 
+                  toBase32 (canonical)   01E439TP9XJZ9RPFH3T1PYBCR8            
+                  toBase58               1BKocMc5BnrVcuq2ti4Eqm                
+                  toRfc4122              0171069d-593d-97d3-8b3e-23d06de5b308  
+                  toHex                  0x0171069d593d97d38b3e23d06de5b308    
+                 ---------------------- -------------------------------------- 
+                  Time                   2020-03-23 08:58:27.517 UTC           
+                 ---------------------- -------------------------------------- 
 
 
-EOF
-                , $commandTester->getDisplay(true));
+                EOF,
+                $commandTester->getDisplay(true)
+            );
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Tests/Command/InspectUuidCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Tests/Command/InspectUuidCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Tests/Command/InspectUuidCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Tests/Command/InspectUuidCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,7 +22,7 @@
         $commandTester = new CommandTester(new InspectUuidCommand());
 
         $this->assertSame(1, $commandTester->execute(['uuid' => 'foobar']));
-        $this->assertStringContainsString('Invalid UUID: "foobar"', $commandTester->getDisplay());
+        $this->assertStringContainsString('Invalid UUID.', $commandTester->getDisplay());
     }
 
     public function testNil()
@@ -31,19 +31,20 @@
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '00000000-0000-0000-0000-000000000000']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 nil                                   
-  toRfc4122 (canonical)   00000000-0000-0000-0000-000000000000  
-  toBase58                1111111111111111111111                
-  toBase32                00000000000000000000000000            
-  toHex                   0x00000000000000000000000000000000    
- ----------------------- -------------------------------------- 
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 nil                                   
+              toRfc4122 (canonical)   00000000-0000-0000-0000-000000000000  
+              toBase58                1111111111111111111111                
+              toBase32                00000000000000000000000000            
+              toHex                   0x00000000000000000000000000000000    
+             ----------------------- -------------------------------------- 
 
 
-EOF
-            , $commandTester->getDisplay(true));
+            EOF,
+            $commandTester->getDisplay(true)
+        );
     }
 
     public function testUnknown()
@@ -52,67 +53,71 @@
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '461cc9b9-2397-0dba-91e9-33af4c63f7ec']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 0                                     
-  toRfc4122 (canonical)   461cc9b9-2397-0dba-91e9-33af4c63f7ec  
-  toBase58                9f9nftX6dw4oVPm5uT17um                
-  toBase32                263K4VJ8WQ1PX93T9KNX667XZC            
-  toHex                   0x461cc9b923970dba91e933af4c63f7ec    
- ----------------------- -------------------------------------- 
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 0                                     
+              toRfc4122 (canonical)   461cc9b9-2397-0dba-91e9-33af4c63f7ec  
+              toBase58                9f9nftX6dw4oVPm5uT17um                
+              toBase32                263K4VJ8WQ1PX93T9KNX667XZC            
+              toHex                   0x461cc9b923970dba91e933af4c63f7ec    
+             ----------------------- -------------------------------------- 
 
 
-EOF
-            , $commandTester->getDisplay(true));
+            EOF,
+            $commandTester->getDisplay(true)
+        );
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '461cc9b9-2397-2dba-91e9-33af4c63f7ec']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 2                                     
-  toRfc4122 (canonical)   461cc9b9-2397-2dba-91e9-33af4c63f7ec  
-  toBase58                9f9nftX6fjLfNnvSAHMV7Z                
-  toBase32                263K4VJ8WQ5PX93T9KNX667XZC            
-  toHex                   0x461cc9b923972dba91e933af4c63f7ec    
- ----------------------- -------------------------------------- 
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 2                                     
+              toRfc4122 (canonical)   461cc9b9-2397-2dba-91e9-33af4c63f7ec  
+              toBase58                9f9nftX6fjLfNnvSAHMV7Z                
+              toBase32                263K4VJ8WQ5PX93T9KNX667XZC            
+              toHex                   0x461cc9b923972dba91e933af4c63f7ec    
+             ----------------------- -------------------------------------- 
 
 
-EOF
-            , $commandTester->getDisplay(true));
+            EOF,
+            $commandTester->getDisplay(true)
+        );
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '461cc9b9-2397-adba-91e9-33af4c63f7ec']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 10                                    
-  toRfc4122 (canonical)   461cc9b9-2397-adba-91e9-33af4c63f7ec  
-  toBase58                9f9nftX6nvS6vPZqBckwvj                
-  toBase32                263K4VJ8WQNPX93T9KNX667XZC            
-  toHex                   0x461cc9b92397adba91e933af4c63f7ec    
- ----------------------- -------------------------------------- 
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 10                                    
+              toRfc4122 (canonical)   461cc9b9-2397-adba-91e9-33af4c63f7ec  
+              toBase58                9f9nftX6nvS6vPZqBckwvj                
+              toBase32                263K4VJ8WQNPX93T9KNX667XZC            
+              toHex                   0x461cc9b92397adba91e933af4c63f7ec    
+             ----------------------- -------------------------------------- 
 
 
-EOF
-            , $commandTester->getDisplay(true));
+            EOF,
+            $commandTester->getDisplay(true)
+        );
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '461cc9b9-2397-cdba-91e9-33af4c63f7ec']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 12                                    
-  toRfc4122 (canonical)   461cc9b9-2397-cdba-91e9-33af4c63f7ec  
-  toBase58                9f9nftX6pihxonjBST7K8X                
-  toBase32                263K4VJ8WQSPX93T9KNX667XZC            
-  toHex                   0x461cc9b92397cdba91e933af4c63f7ec    
- ----------------------- -------------------------------------- 
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 12                                    
+              toRfc4122 (canonical)   461cc9b9-2397-cdba-91e9-33af4c63f7ec  
+              toBase58                9f9nftX6pihxonjBST7K8X                
+              toBase32                263K4VJ8WQSPX93T9KNX667XZC            
+              toHex                   0x461cc9b92397cdba91e933af4c63f7ec    
+             ----------------------- -------------------------------------- 
 
 
-EOF
-            , $commandTester->getDisplay(true));
+            EOF,
+            $commandTester->getDisplay(true)
+        );
     }
 
     public function testV1()
@@ -121,21 +126,22 @@
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '4c8e3a2a-5993-11eb-a861-2bf05af69e52']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 1                                     
-  toRfc4122 (canonical)   4c8e3a2a-5993-11eb-a861-2bf05af69e52  
-  toBase58                ATJGVdrgFqvc6thDFXv1Qu                
-  toBase32                2CHRX2MPCK27NTGR9BY1DFD7JJ            
-  toHex                   0x4c8e3a2a599311eba8612bf05af69e52    
- ----------------------- -------------------------------------- 
-  Time                    2021-01-18 13:44:34.438609 UTC        
- ----------------------- -------------------------------------- 
-
-
-EOF
-            , $commandTester->getDisplay(true));
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 1                                     
+              toRfc4122 (canonical)   4c8e3a2a-5993-11eb-a861-2bf05af69e52  
+              toBase58                ATJGVdrgFqvc6thDFXv1Qu                
+              toBase32                2CHRX2MPCK27NTGR9BY1DFD7JJ            
+              toHex                   0x4c8e3a2a599311eba8612bf05af69e52    
+             ----------------------- -------------------------------------- 
+              Time                    2021-01-18 13:44:34.438609 UTC        
+             ----------------------- -------------------------------------- 
+
+
+            EOF,
+            $commandTester->getDisplay(true)
+        );
     }
 
     public function testV3()
@@ -144,19 +150,20 @@
 
         $this->assertSame(0, $commandTester->execute(['uuid' => 'd108a1a0-957e-3c77-b110-d3f912374439']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 3                                     
-  toRfc4122 (canonical)   d108a1a0-957e-3c77-b110-d3f912374439  
-  toBase58                Sp7q16VVeC7zPsMPVEToq2                
-  toBase32                6H12GT15BY7HVV246KZ493EH1S            
-  toHex                   0xd108a1a0957e3c77b110d3f912374439    
- ----------------------- -------------------------------------- 
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 3                                     
+              toRfc4122 (canonical)   d108a1a0-957e-3c77-b110-d3f912374439  
+              toBase58                Sp7q16VVeC7zPsMPVEToq2                
+              toBase32                6H12GT15BY7HVV246KZ493EH1S            
+              toHex                   0xd108a1a0957e3c77b110d3f912374439    
+             ----------------------- -------------------------------------- 
 
 
-EOF
-            , $commandTester->getDisplay(true));
+            EOF,
+            $commandTester->getDisplay(true)
+        );
     }
 
     public function testV4()
@@ -165,19 +172,20 @@
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '705c6eab-a535-4f49-bd51-436d0e81206a']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 4                                     
-  toRfc4122 (canonical)   705c6eab-a535-4f49-bd51-436d0e81206a  
-  toBase58                EsjuVs1nd42xt7jSB8hNQH                
-  toBase32                3GBHQAQ99N9X4VTMA3DM78283A            
-  toHex                   0x705c6eaba5354f49bd51436d0e81206a    
- ----------------------- -------------------------------------- 
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 4                                     
+              toRfc4122 (canonical)   705c6eab-a535-4f49-bd51-436d0e81206a  
+              toBase58                EsjuVs1nd42xt7jSB8hNQH                
+              toBase32                3GBHQAQ99N9X4VTMA3DM78283A            
+              toHex                   0x705c6eaba5354f49bd51436d0e81206a    
+             ----------------------- -------------------------------------- 
 
 
-EOF
-            , $commandTester->getDisplay(true));
+            EOF,
+            $commandTester->getDisplay(true)
+        );
     }
 
     public function testV5()
@@ -186,19 +194,20 @@
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '4ec6c3ad-de94-5f75-b5f0-ad56661a30c4']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 5                                     
-  toRfc4122 (canonical)   4ec6c3ad-de94-5f75-b5f0-ad56661a30c4  
-  toBase58                AjCoyQeK6TtFemqYWV5uKZ                
-  toBase32                2ERV1TVQMMBXTVBW5DASK1MC64            
-  toHex                   0x4ec6c3adde945f75b5f0ad56661a30c4    
- ----------------------- -------------------------------------- 
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 5                                     
+              toRfc4122 (canonical)   4ec6c3ad-de94-5f75-b5f0-ad56661a30c4  
+              toBase58                AjCoyQeK6TtFemqYWV5uKZ                
+              toBase32                2ERV1TVQMMBXTVBW5DASK1MC64            
+              toHex                   0x4ec6c3adde945f75b5f0ad56661a30c4    
+             ----------------------- -------------------------------------- 
 
 
-EOF
-            , $commandTester->getDisplay(true));
+            EOF,
+            $commandTester->getDisplay(true)
+        );
     }
 
     public function testV6()
@@ -207,21 +216,22 @@
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '1eb59937-b0a7-6288-a861-db3dc2d8d4db']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 6                                     
-  toRfc4122 (canonical)   1eb59937-b0a7-6288-a861-db3dc2d8d4db  
-  toBase58                4nwhs6vwvNU2AbcCSD1XP8                
-  toBase32                0YPPCKFC57CA4AGREV7Q1DHN6V            
-  toHex                   0x1eb59937b0a76288a861db3dc2d8d4db    
- ----------------------- -------------------------------------- 
-  Time                    2021-01-18 13:45:52.427892 UTC        
- ----------------------- -------------------------------------- 
-
-
-EOF
-            , $commandTester->getDisplay(true));
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 6                                     
+              toRfc4122 (canonical)   1eb59937-b0a7-6288-a861-db3dc2d8d4db  
+              toBase58                4nwhs6vwvNU2AbcCSD1XP8                
+              toBase32                0YPPCKFC57CA4AGREV7Q1DHN6V            
+              toHex                   0x1eb59937b0a76288a861db3dc2d8d4db    
+             ----------------------- -------------------------------------- 
+              Time                    2021-01-18 13:45:52.427892 UTC        
+             ----------------------- -------------------------------------- 
+
+
+            EOF,
+            $commandTester->getDisplay(true)
+        );
     }
 
     public function testV7()
@@ -230,21 +240,22 @@
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '017f22e2-79b0-7cc3-98c4-dc0c0c07398f']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 7                                     
-  toRfc4122 (canonical)   017f22e2-79b0-7cc3-98c4-dc0c0c07398f  
-  toBase58                1BihbxwwQ4NZZpKRH9JDCz                
-  toBase32                01FWHE4YDGFK1SHH6W1G60EECF            
-  toHex                   0x017f22e279b07cc398c4dc0c0c07398f    
- ----------------------- -------------------------------------- 
-  Time                    2022-02-22 19:22:22.000000 UTC        
- ----------------------- -------------------------------------- 
-
-
-EOF
-            , $commandTester->getDisplay(true));
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 7                                     
+              toRfc4122 (canonical)   017f22e2-79b0-7cc3-98c4-dc0c0c07398f  
+              toBase58                1BihbxwwQ4NZZpKRH9JDCz                
+              toBase32                01FWHE4YDGFK1SHH6W1G60EECF            
+              toHex                   0x017f22e279b07cc398c4dc0c0c07398f    
+             ----------------------- -------------------------------------- 
+              Time                    2022-02-22 19:22:22.000000 UTC        
+             ----------------------- -------------------------------------- 
+
+
+            EOF,
+            $commandTester->getDisplay(true)
+        );
     }
 
     public function testV8()
@@ -253,18 +264,19 @@
 
         $this->assertSame(0, $commandTester->execute(['uuid' => '017f22e2-79b0-8cc3-98c4-dc0c0c07398f']));
         $this->assertSame(<<<EOF
- ----------------------- -------------------------------------- 
-  Label                   Value                                 
- ----------------------- -------------------------------------- 
-  Version                 8                                     
-  toRfc4122 (canonical)   017f22e2-79b0-8cc3-98c4-dc0c0c07398f  
-  toBase58                1BihbxwwQxWVWWu6QZUPot                
-  toBase32                01FWHE4YDGHK1SHH6W1G60EECF            
-  toHex                   0x017f22e279b08cc398c4dc0c0c07398f    
- ----------------------- -------------------------------------- 
+             ----------------------- -------------------------------------- 
+              Label                   Value                                 
+             ----------------------- -------------------------------------- 
+              Version                 8                                     
+              toRfc4122 (canonical)   017f22e2-79b0-8cc3-98c4-dc0c0c07398f  
+              toBase58                1BihbxwwQxWVWWu6QZUPot                
+              toBase32                01FWHE4YDGHK1SHH6W1G60EECF            
+              toHex                   0x017f22e279b08cc398c4dc0c0c07398f    
+             ----------------------- -------------------------------------- 
 
 
-EOF
-            , $commandTester->getDisplay(true));
+            EOF,
+            $commandTester->getDisplay(true)
+        );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Tests/UlidTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Tests/UlidTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Tests/UlidTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Tests/UlidTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,7 +42,7 @@
     public function testWithInvalidUlid()
     {
         $this->expectException(\InvalidArgumentException::class);
-        $this->expectExceptionMessage('Invalid ULID: "this is not a ulid".');
+        $this->expectExceptionMessage('Invalid ULID.');
 
         new Ulid('this is not a ulid');
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Tests/UuidTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Tests/UuidTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Tests/UuidTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Tests/UuidTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     public function testConstructorWithInvalidUuid(string $uuid)
     {
         $this->expectException(\InvalidArgumentException::class);
-        $this->expectExceptionMessage('Invalid UUID: "'.$uuid.'".');
+        $this->expectExceptionMessage('Invalid UUID.');
 
         Uuid::fromString($uuid);
     }
@@ -59,7 +59,7 @@
         $class = Uuid::class.'V'.$uuid[14];
 
         $this->expectException(\InvalidArgumentException::class);
-        $this->expectExceptionMessage('Invalid UUIDv'.$uuid[14].': "'.$uuid.'".');
+        $this->expectExceptionMessage('Invalid UUIDv'.$uuid[14].'.');
 
         new $class($uuid);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Ulid.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Ulid.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Ulid.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Ulid.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
             $this->uid = $ulid;
         } else {
             if (!self::isValid($ulid)) {
-                throw new \InvalidArgumentException(sprintf('Invalid ULID: "%s".', $ulid));
+                throw new \InvalidArgumentException('Invalid ULID.');
             }
 
             $this->uid = strtoupper($ulid);
@@ -73,7 +73,7 @@
         }
 
         $ulid = bin2hex($ulid);
-        $ulid = sprintf('%02s%04s%04s%04s%04s%04s%04s',
+        $ulid = \sprintf('%02s%04s%04s%04s%04s%04s%04s',
             base_convert(substr($ulid, 0, 2), 16, 32),
             base_convert(substr($ulid, 2, 5), 16, 32),
             base_convert(substr($ulid, 7, 5), 16, 32),
@@ -101,7 +101,7 @@
     {
         $ulid = strtr($this->uid, 'ABCDEFGHJKMNPQRSTVWXYZ', 'abcdefghijklmnopqrstuv');
 
-        $ulid = sprintf('%02s%05s%05s%05s%05s%05s%05s',
+        $ulid = \sprintf('%02s%05s%05s%05s%05s%05s%05s',
             base_convert(substr($ulid, 0, 2), 32, 16),
             base_convert(substr($ulid, 2, 4), 32, 16),
             base_convert(substr($ulid, 6, 4), 32, 16),
@@ -133,7 +133,7 @@
         if (\PHP_INT_SIZE >= 8) {
             $time = (string) hexdec(base_convert($time, 32, 16));
         } else {
-            $time = sprintf('%02s%05s%05s',
+            $time = \sprintf('%02s%05s%05s',
                 base_convert(substr($time, 0, 2), 32, 16),
                 base_convert(substr($time, 2, 4), 32, 16),
                 base_convert(substr($time, 6, 4), 32, 16)
@@ -190,14 +190,14 @@
             $time = base_convert($time, 10, 32);
         } else {
             $time = str_pad(bin2hex(BinaryUtil::fromBase($time, BinaryUtil::BASE10)), 12, '0', \STR_PAD_LEFT);
-            $time = sprintf('%s%04s%04s',
+            $time = \sprintf('%s%04s%04s',
                 base_convert(substr($time, 0, 2), 16, 32),
                 base_convert(substr($time, 2, 5), 16, 32),
                 base_convert(substr($time, 7, 5), 16, 32)
             );
         }
 
-        return strtr(sprintf('%010s%04s%04s%04s%04s',
+        return strtr(\sprintf('%010s%04s%04s%04s%04s',
             $time,
             base_convert(self::$rand[1], 10, 32),
             base_convert(self::$rand[2], 10, 32),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Uuid.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Uuid.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/Uuid.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/Uuid.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,13 +32,13 @@
         $type = preg_match('{^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$}Di', $uuid) ? (int) $uuid[14] : false;
 
         if (false === $type || (static::TYPE ?: $type) !== $type) {
-            throw new \InvalidArgumentException(sprintf('Invalid UUID%s: "%s".', static::TYPE ? 'v'.static::TYPE : '', $uuid));
+            throw new \InvalidArgumentException(\sprintf('Invalid UUID%s.', static::TYPE ? 'v'.static::TYPE : ''));
         }
 
         $this->uid = strtolower($uuid);
 
         if ($checkVariant && !\in_array($this->uid[19], ['8', '9', 'a', 'b'], true)) {
-            throw new \InvalidArgumentException(sprintf('Invalid UUID%s: "%s".', static::TYPE ? 'v'.static::TYPE : '', $uuid));
+            throw new \InvalidArgumentException(\sprintf('Invalid UUID%s.', static::TYPE ? 'v'.static::TYPE : ''));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/UuidV1.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/UuidV1.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/UuidV1.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/UuidV1.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
                 $seq = substr($uuid, 19, 4);
 
                 do {
-                    self::$clockSeq = sprintf('%04x', random_int(0, 0x3FFF) | 0x8000);
+                    self::$clockSeq = \sprintf('%04x', random_int(0, 0x3FFF) | 0x8000);
                 } while ($seq === self::$clockSeq);
 
                 $seq = self::$clockSeq;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/UuidV6.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/UuidV6.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/UuidV6.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/UuidV6.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,7 @@
         if (!isset(self::$node)) {
             $seed = [random_int(0, 0xFFFFFF), random_int(0, 0xFFFFFF)];
             $node = unpack('N2', hex2bin('00'.substr($uuidV1, 24, 6)).hex2bin('00'.substr($uuidV1, 30)));
-            self::$node = sprintf('%06x%06x', ($seed[0] ^ $node[1]) | 0x010000, $seed[1] ^ $node[2]);
+            self::$node = \sprintf('%06x%06x', ($seed[0] ^ $node[1]) | 0x010000, $seed[1] ^ $node[2]);
         }
 
         return $uuid.self::$node;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Uid/UuidV7.php symfony-6.4.40+dfsg/src/Symfony/Component/Uid/UuidV7.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Uid/UuidV7.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Uid/UuidV7.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,7 +60,7 @@
 
         if ($time > self::$time || (null !== $mtime && $time !== self::$time)) {
             randomize:
-            self::$rand = unpack('n*', isset(self::$seed) ? random_bytes(10) : self::$seed = random_bytes(16));
+            self::$rand = unpack('S*', isset(self::$seed) ? random_bytes(10) : self::$seed = random_bytes(16));
             self::$rand[1] &= 0x03FF;
             self::$time = $time;
         } else {
@@ -76,7 +76,7 @@
             // 24-bit number in the self::$seedParts list and decrement self::$seedIndex.
 
             if (!self::$seedIndex) {
-                $s = unpack('l*', self::$seed = hash('sha512', self::$seed, true));
+                $s = unpack(\PHP_INT_SIZE >= 8 ? 'L*' : 'l*', self::$seed = hash('sha512', self::$seed, true));
                 $s[] = ($s[1] >> 8 & 0xFF0000) | ($s[2] >> 16 & 0xFF00) | ($s[3] >> 24 & 0xFF);
                 $s[] = ($s[4] >> 8 & 0xFF0000) | ($s[5] >> 16 & 0xFF00) | ($s[6] >> 24 & 0xFF);
                 $s[] = ($s[7] >> 8 & 0xFF0000) | ($s[8] >> 16 & 0xFF00) | ($s[9] >> 24 & 0xFF);
@@ -113,7 +113,7 @@
             $time = bin2hex(BinaryUtil::fromBase($time, BinaryUtil::BASE10));
         }
 
-        return substr_replace(sprintf('%012s-%04x-%04x-%04x%04x%04x',
+        return substr_replace(\sprintf('%012s-%04x-%04x-%04x%04x%04x',
             $time,
             0x7000 | (self::$rand[1] << 2) | (self::$rand[2] >> 14),
             0x8000 | (self::$rand[2] & 0x3FFF),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Command/DebugCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Command/DebugCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Command/DebugCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Command/DebugCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,10 +56,10 @@
             ->addArgument('class', InputArgument::REQUIRED, 'A fully qualified class name or a path')
             ->addOption('show-all', null, InputOption::VALUE_NONE, 'Show all classes even if they have no validation constraints')
             ->setHelp(<<<'EOF'
-The <info>%command.name% 'App\Entity\Dummy'</info> command dumps the validators for the dummy class.
+                The <info>%command.name% 'App\Entity\Dummy'</info> command dumps the validators for the dummy class.
 
-The <info>%command.name% src/</info> command dumps the validators for the `src` directory.
-EOF
+                The <info>%command.name% src/</info> command dumps the validators for the `src` directory.
+                EOF
             )
         ;
     }
@@ -80,7 +80,7 @@
             }
         } catch (DirectoryNotFoundException) {
             $io = new SymfonyStyle($input, $output);
-            $io->error(sprintf('Neither class nor path were found with "%s" argument.', $input->getArgument('class')));
+            $io->error(\sprintf('Neither class nor path were found with "%s" argument.', $input->getArgument('class')));
 
             return 1;
         }
@@ -91,7 +91,7 @@
     private function dumpValidatorsForClass(InputInterface $input, OutputInterface $output, string $class): void
     {
         $io = new SymfonyStyle($input, $output);
-        $title = sprintf('<info>%s</info>', $class);
+        $title = \sprintf('<info>%s</info>', $class);
         $rows = [];
         $dump = new Dumper($output);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraint.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraint.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraint.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraint.php	2026-05-20 10:56:49.000000000 +0200
@@ -82,7 +82,7 @@
         }
 
         if (!isset(static::$errorNames[$errorCode])) {
-            throw new InvalidArgumentException(sprintf('The error code "%s" does not exist for constraint of type "%s".', $errorCode, static::class));
+            throw new InvalidArgumentException(\sprintf('The error code "%s" does not exist for constraint of type "%s".', $errorCode, static::class));
         }
 
         trigger_deprecation('symfony/validator', '6.1', 'The "%s::$errorNames" property is deprecated, use protected const ERROR_NAMES instead.', static::class);
@@ -144,7 +144,7 @@
 
         if (\is_array($options) && isset($options['value']) && !property_exists($this, 'value')) {
             if (null === $defaultOption) {
-                throw new ConstraintDefinitionException(sprintf('No default option is configured for constraint "%s".', static::class));
+                throw new ConstraintDefinitionException(\sprintf('No default option is configured for constraint "%s".', static::class));
             }
 
             $options[$defaultOption] = $options['value'];
@@ -165,7 +165,7 @@
             }
         } elseif (null !== $options && !(\is_array($options) && 0 === \count($options))) {
             if (null === $defaultOption) {
-                throw new ConstraintDefinitionException(sprintf('No default option is configured for constraint "%s".', static::class));
+                throw new ConstraintDefinitionException(\sprintf('No default option is configured for constraint "%s".', static::class));
             }
 
             if (\array_key_exists($defaultOption, $knownOptions)) {
@@ -177,11 +177,11 @@
         }
 
         if (\count($invalidOptions) > 0) {
-            throw new InvalidOptionsException(sprintf('The options "%s" do not exist in constraint "%s".', implode('", "', $invalidOptions), static::class), $invalidOptions);
+            throw new InvalidOptionsException(\sprintf('The options "%s" do not exist in constraint "%s".', implode('", "', $invalidOptions), static::class), $invalidOptions);
         }
 
         if (\count($missingOptions) > 0) {
-            throw new MissingOptionsException(sprintf('The options "%s" must be set for constraint "%s".', implode('", "', array_keys($missingOptions)), static::class), array_keys($missingOptions));
+            throw new MissingOptionsException(\sprintf('The options "%s" must be set for constraint "%s".', implode('", "', array_keys($missingOptions)), static::class), array_keys($missingOptions));
         }
 
         return $normalizedOptions;
@@ -206,7 +206,7 @@
             return;
         }
 
-        throw new InvalidOptionsException(sprintf('The option "%s" does not exist in constraint "%s".', $option, static::class), [$option]);
+        throw new InvalidOptionsException(\sprintf('The option "%s" does not exist in constraint "%s".', $option, static::class), [$option]);
     }
 
     /**
@@ -226,7 +226,7 @@
             return $this->groups;
         }
 
-        throw new InvalidOptionsException(sprintf('The option "%s" does not exist in constraint "%s".', $option, static::class), [$option]);
+        throw new InvalidOptionsException(\sprintf('The option "%s" does not exist in constraint "%s".', $option, static::class), [$option]);
     }
 
     public function __isset(string $option): bool
@@ -242,7 +242,7 @@
     public function addImplicitGroupName(string $group)
     {
         if (null === $this->groups && \array_key_exists('groups', (array) $this)) {
-            throw new \LogicException(sprintf('"%s::$groups" is set to null. Did you forget to call "%s::__construct()"?', static::class, self::class));
+            throw new \LogicException(\sprintf('"%s::$groups" is set to null. Did you forget to call "%s::__construct()"?', static::class, self::class));
         }
 
         if (\in_array(self::DEFAULT_GROUP, $this->groups) && !\in_array($group, $this->groups)) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/AbstractComparison.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/AbstractComparison.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/AbstractComparison.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/AbstractComparison.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,15 +42,15 @@
         $this->propertyPath = $propertyPath ?? $this->propertyPath;
 
         if (null === $this->value && null === $this->propertyPath) {
-            throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires either the "value" or "propertyPath" option to be set.', static::class));
+            throw new ConstraintDefinitionException(\sprintf('The "%s" constraint requires either the "value" or "propertyPath" option to be set.', static::class));
         }
 
         if (null !== $this->value && null !== $this->propertyPath) {
-            throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires only one of the "value" or "propertyPath" options to be set, not both.', static::class));
+            throw new ConstraintDefinitionException(\sprintf('The "%s" constraint requires only one of the "value" or "propertyPath" options to be set, not both.', static::class));
         }
 
         if (null !== $this->propertyPath && !class_exists(PropertyAccess::class)) {
-            throw new LogicException(sprintf('The "%s" constraint requires the Symfony PropertyAccess component to use the "propertyPath" option. Try running "composer require symfony/property-access".', static::class));
+            throw new LogicException(\sprintf('The "%s" constraint requires the Symfony PropertyAccess component to use the "propertyPath" option. Try running "composer require symfony/property-access".', static::class));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
             try {
                 $comparedValue = $this->getPropertyAccessor()->getValue($object, $path);
             } catch (NoSuchPropertyException $e) {
-                throw new ConstraintDefinitionException(sprintf('Invalid property path "%s" provided to "%s" constraint: ', $path, get_debug_type($constraint)).$e->getMessage(), 0, $e);
+                throw new ConstraintDefinitionException(\sprintf('Invalid property path "%s" provided to "%s" constraint: ', $path, get_debug_type($constraint)).$e->getMessage(), 0, $e);
             } catch (UninitializedPropertyException) {
                 $comparedValue = null;
             }
@@ -71,7 +71,7 @@
             try {
                 $comparedValue = new $value($comparedValue);
             } catch (\Exception) {
-                throw new ConstraintDefinitionException(sprintf('The compared value "%s" could not be converted to a "%s" instance in the "%s" constraint.', $comparedValue, get_debug_type($value), get_debug_type($constraint)));
+                throw new ConstraintDefinitionException(\sprintf('The compared value "%s" could not be converted to a "%s" instance in the "%s" constraint.', $comparedValue, get_debug_type($value), get_debug_type($constraint)));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Bic.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Bic.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Bic.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Bic.php	2026-05-20 10:56:49.000000000 +0200
@@ -69,7 +69,7 @@
         }
 
         if (null !== $this->ibanPropertyPath && !class_exists(PropertyAccess::class)) {
-            throw new LogicException(sprintf('The "symfony/property-access" component is required to use the "%s" constraint with the "ibanPropertyPath" option. Try running "composer require symfony/property-access".', self::class));
+            throw new LogicException(\sprintf('The "symfony/property-access" component is required to use the "%s" constraint with the "ibanPropertyPath" option. Try running "composer require symfony/property-access".', self::class));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/BicValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/BicValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/BicValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/BicValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -130,7 +130,7 @@
             try {
                 $iban = $this->getPropertyAccessor()->getValue($object, $path);
             } catch (NoSuchPropertyException $e) {
-                throw new ConstraintDefinitionException(sprintf('Invalid property path "%s" provided to "%s" constraint: ', $path, get_debug_type($constraint)).$e->getMessage(), 0, $e);
+                throw new ConstraintDefinitionException(\sprintf('Invalid property path "%s" provided to "%s" constraint: ', $path, get_debug_type($constraint)).$e->getMessage(), 0, $e);
             } catch (UninitializedPropertyException) {
                 $iban = null;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/CallbackValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/CallbackValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/CallbackValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/CallbackValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
             $method($object, $this->context, $constraint->payload);
         } elseif (null !== $object) {
             if (!method_exists($object, $method)) {
-                throw new ConstraintDefinitionException(sprintf('Method "%s" targeted by Callback constraint does not exist in class "%s".', $method, get_debug_type($object)));
+                throw new ConstraintDefinitionException(\sprintf('Method "%s" targeted by Callback constraint does not exist in class "%s".', $method, get_debug_type($object)));
             }
 
             $reflMethod = new \ReflectionMethod($object, $method);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/CardScheme.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/CardScheme.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/CardScheme.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/CardScheme.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,7 @@
     {
         if (\is_array($schemes) && \is_string(key($schemes))) {
             $options = array_merge($schemes, $options);
-        } else {
+        } elseif (null !== $schemes) {
             $options['value'] = $schemes;
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Cascade.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Cascade.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Cascade.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Cascade.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,12 +29,13 @@
     {
         if (\is_array($exclude) && !array_is_list($exclude)) {
             $options = array_merge($exclude, $options ?? []);
+            $options['exclude'] = array_flip((array) ($options['exclude'] ?? []));
         } else {
             $this->exclude = array_flip((array) $exclude);
         }
 
         if (\is_array($options) && \array_key_exists('groups', $options)) {
-            throw new ConstraintDefinitionException(sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__));
+            throw new ConstraintDefinitionException(\sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__));
         }
 
         parent::__construct($options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/ChoiceValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/ChoiceValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/ChoiceValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/ChoiceValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,8 +56,8 @@
                 throw new ConstraintDefinitionException('The Choice constraint expects a valid callback.');
             }
             $choices = $choices();
-            if (!is_array($choices)) {
-                throw new ConstraintDefinitionException(sprintf('The Choice constraint callback "%s" is expected to return an array, but returned "%s".', trim($this->formatValue($constraint->callback), '"'), get_debug_type($choices)));
+            if (!\is_array($choices)) {
+                throw new ConstraintDefinitionException(\sprintf('The Choice constraint callback "%s" is expected to return an array, but returned "%s".', trim($this->formatValue($constraint->callback), '"'), get_debug_type($choices)));
             }
         } else {
             $choices = $constraint->choices;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Cidr.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Cidr.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Cidr.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Cidr.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,12 +62,12 @@
         ?int $netmaskMax = null,
         ?string $message = null,
         ?array $groups = null,
-        $payload = null
+        $payload = null,
     ) {
         $this->version = $version ?? $options['version'] ?? $this->version;
 
         if (!\array_key_exists($this->version, self::NET_MAXES)) {
-            throw new ConstraintDefinitionException(sprintf('The option "version" must be one of "%s".', implode('", "', array_keys(self::NET_MAXES))));
+            throw new ConstraintDefinitionException(\sprintf('The option "version" must be one of "%s".', implode('", "', array_keys(self::NET_MAXES))));
         }
 
         $this->netmaskMin = $netmaskMin ?? $options['netmaskMin'] ?? $this->netmaskMin;
@@ -77,7 +77,7 @@
         unset($options['netmaskMin'], $options['netmaskMax'], $options['version']);
 
         if ($this->netmaskMin < 0 || $this->netmaskMax > self::NET_MAXES[$this->version] || $this->netmaskMin > $this->netmaskMax) {
-            throw new ConstraintDefinitionException(sprintf('The netmask range must be between 0 and %d.', self::NET_MAXES[$this->version]));
+            throw new ConstraintDefinitionException(\sprintf('The netmask range must be between 0 and %d.', self::NET_MAXES[$this->version]));
         }
 
         parent::__construct($options, $groups, $payload);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Collection.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Collection.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Collection.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Collection.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
         parent::initializeNestedConstraints();
 
         if (!\is_array($this->fields)) {
-            throw new ConstraintDefinitionException(sprintf('The option "fields" is expected to be an array in constraint "%s".', __CLASS__));
+            throw new ConstraintDefinitionException(\sprintf('The option "fields" is expected to be an array in constraint "%s".', __CLASS__));
         }
 
         foreach ($this->fields as $fieldName => $field) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/CollectionValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/CollectionValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/CollectionValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/CollectionValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -50,7 +50,6 @@
         $context = $this->context;
 
         foreach ($constraint->fields as $field => $fieldConstraint) {
-            // bug fix issue #2779
             $existsInArray = \is_array($value) && \array_key_exists($field, $value);
             $existsInArrayAccess = $value instanceof \ArrayAccess && $value->offsetExists($field);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Composite.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Composite.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Composite.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Composite.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,7 +55,7 @@
 
         $this->initializeNestedConstraints();
 
-        /* @var Constraint[] $nestedConstraints */
+        /** @var Constraint[] $nestedConstraints */
         $compositeOption = $this->getCompositeOption();
         $nestedConstraints = $this->$compositeOption;
 
@@ -69,11 +69,11 @@
                     $constraint = $constraint::class;
                 }
 
-                throw new ConstraintDefinitionException(sprintf('The value "%s" is not an instance of Constraint in constraint "%s".', $constraint, static::class));
+                throw new ConstraintDefinitionException(\sprintf('The value "%s" is not an instance of Constraint in constraint "%s".', $constraint, static::class));
             }
 
             if ($constraint instanceof Valid) {
-                throw new ConstraintDefinitionException(sprintf('The constraint Valid cannot be nested inside constraint "%s". You can only declare the Valid constraint directly on a field or method.', static::class));
+                throw new ConstraintDefinitionException(\sprintf('The constraint Valid cannot be nested inside constraint "%s". You can only declare the Valid constraint directly on a field or method.', static::class));
             }
         }
 
@@ -98,7 +98,7 @@
                 $excessGroups = array_diff($constraint->groups, $this->groups);
 
                 if (\count($excessGroups) > 0) {
-                    throw new ConstraintDefinitionException(sprintf('The group(s) "%s" passed to the constraint "%s" should also be passed to its containing constraint "%s".', implode('", "', $excessGroups), get_debug_type($constraint), static::class));
+                    throw new ConstraintDefinitionException(\sprintf('The group(s) "%s" passed to the constraint "%s" should also be passed to its containing constraint "%s".', implode('", "', $excessGroups), get_debug_type($constraint), static::class));
                 }
             } else {
                 $constraint->groups = $this->groups;
@@ -137,7 +137,7 @@
      */
     public function getNestedConstraints(): array
     {
-        /* @var Constraint[] $nestedConstraints */
+        /** @var Constraint[] $nestedConstraints */
         return $this->{$this->getCompositeOption()};
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Compound.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Compound.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Compound.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Compound.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
     public function __construct(mixed $options = null)
     {
         if (isset($options[$this->getCompositeOption()])) {
-            throw new ConstraintDefinitionException(sprintf('You can\'t redefine the "%s" option. Use the "%s::getConstraints()" method instead.', $this->getCompositeOption(), __CLASS__));
+            throw new ConstraintDefinitionException(\sprintf('You can\'t redefine the "%s" option. Use the "%s::getConstraints()" method instead.', $this->getCompositeOption(), __CLASS__));
         }
 
         $this->constraints = $this->getConstraints($this->normalizeOptions($options));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Count.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Count.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Count.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Count.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,7 +59,7 @@
         ?string $divisibleByMessage = null,
         ?array $groups = null,
         mixed $payload = null,
-        array $options = []
+        array $options = [],
     ) {
         if (\is_array($exactly)) {
             $options = array_merge($exactly, $options);
@@ -86,7 +86,7 @@
         $this->divisibleByMessage = $divisibleByMessage ?? $this->divisibleByMessage;
 
         if (null === $this->min && null === $this->max && null === $this->divisibleBy) {
-            throw new MissingOptionsException(sprintf('Either option "min", "max" or "divisibleBy" must be given for constraint "%s".', __CLASS__), ['min', 'max', 'divisibleBy']);
+            throw new MissingOptionsException(\sprintf('Either option "min", "max" or "divisibleBy" must be given for constraint "%s".', __CLASS__), ['min', 'max', 'divisibleBy']);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Country.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Country.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Country.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Country.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
         ?string $message = null,
         ?bool $alpha3 = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         if (!class_exists(Countries::class)) {
             throw new LogicException('The Intl component is required to use the Country constraint. Try running "composer require symfony/intl".');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/CssColor.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/CssColor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/CssColor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/CssColor.php	2026-05-20 10:56:49.000000000 +0200
@@ -80,13 +80,13 @@
             $options = array_merge($formats, $options ?? []);
         } elseif (\is_array($formats)) {
             if ([] === array_intersect(self::$validationModes, $formats)) {
-                throw new InvalidArgumentException(sprintf('The "formats" parameter value is not valid. It must contain one or more of the following values: "%s".', $validationModesAsString));
+                throw new InvalidArgumentException(\sprintf('The "formats" parameter value is not valid. It must contain one or more of the following values: "%s".', $validationModesAsString));
             }
 
             $options['value'] = $formats;
         } elseif (\is_string($formats)) {
             if (!\in_array($formats, self::$validationModes)) {
-                throw new InvalidArgumentException(sprintf('The "formats" parameter value is not valid. It must contain one or more of the following values: "%s".', $validationModesAsString));
+                throw new InvalidArgumentException(\sprintf('The "formats" parameter value is not valid. It must contain one or more of the following values: "%s".', $validationModesAsString));
             }
 
             $options['value'] = [$formats];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
         }
 
         if (str_ends_with($constraint->format, '+')) {
-            $errors['warnings'] = array_filter($errors['warnings'], fn ($warning) => 'Trailing data' !== $warning);
+            $errors['warnings'] = array_filter($errors['warnings'], static fn ($warning) => 'Trailing data' !== $warning);
         }
 
         foreach ($errors['warnings'] as $warning) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/DisableAutoMapping.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/DisableAutoMapping.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/DisableAutoMapping.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/DisableAutoMapping.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function __construct(?array $options = null)
     {
         if (\is_array($options) && \array_key_exists('groups', $options)) {
-            throw new ConstraintDefinitionException(sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__));
+            throw new ConstraintDefinitionException(\sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__));
         }
 
         parent::__construct($options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/DivisibleByValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/DivisibleByValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/DivisibleByValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/DivisibleByValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,10 +43,10 @@
             $quotient = $value1 / $value2;
             $rounded = round($quotient);
 
-            return sprintf('%.12e', $quotient) === sprintf('%.12e', $rounded);
+            return \sprintf('%.12e', $quotient) === \sprintf('%.12e', $rounded);
         }
 
-        return sprintf('%.12e', $value2) === sprintf('%.12e', $remainder);
+        return \sprintf('%.12e', $value2) === \sprintf('%.12e', $remainder);
     }
 
     protected function getErrorCode(): ?string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Email.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Email.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Email.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Email.php	2026-05-20 10:56:49.000000000 +0200
@@ -62,7 +62,7 @@
         ?string $mode = null,
         ?callable $normalizer = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         if (\is_array($options) && \array_key_exists('mode', $options) && !\in_array($options['mode'], self::VALIDATION_MODES, true)) {
             throw new InvalidArgumentException('The "mode" parameter value is not valid.');
@@ -83,11 +83,11 @@
         }
 
         if (self::VALIDATION_MODE_STRICT === $this->mode && !class_exists(StrictEmailValidator::class)) {
-            throw new LogicException(sprintf('The "egulias/email-validator" component is required to use the "%s" constraint in strict mode. Try running "composer require egulias/email-validator".', __CLASS__));
+            throw new LogicException(\sprintf('The "egulias/email-validator" component is required to use the "%s" constraint in strict mode. Try running "composer require egulias/email-validator".', __CLASS__));
         }
 
         if (null !== $this->normalizer && !\is_callable($this->normalizer)) {
-            throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
+            throw new InvalidArgumentException(\sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/EmailValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/EmailValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/EmailValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/EmailValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,14 +79,14 @@
 
         if (null === $constraint->mode) {
             if (Email::VALIDATION_MODE_STRICT === $this->defaultMode && !class_exists(EguliasEmailValidator::class)) {
-                throw new LogicException(sprintf('The "egulias/email-validator" component is required to make the "%s" constraint default to strict mode. Try running "composer require egulias/email-validator".', Email::class));
+                throw new LogicException(\sprintf('The "egulias/email-validator" component is required to make the "%s" constraint default to strict mode. Try running "composer require egulias/email-validator".', Email::class));
             }
 
             $constraint->mode = $this->defaultMode;
         }
 
         if (!\in_array($constraint->mode, Email::VALIDATION_MODES, true)) {
-            throw new InvalidArgumentException(sprintf('The "%s::$mode" parameter value is not valid.', get_debug_type($constraint)));
+            throw new InvalidArgumentException(\sprintf('The "%s::$mode" parameter value is not valid.', get_debug_type($constraint)));
         }
 
         if (Email::VALIDATION_MODE_STRICT === $constraint->mode) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/EnableAutoMapping.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/EnableAutoMapping.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/EnableAutoMapping.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/EnableAutoMapping.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
     public function __construct(?array $options = null)
     {
         if (\is_array($options) && \array_key_exists('groups', $options)) {
-            throw new ConstraintDefinitionException(sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__));
+            throw new ConstraintDefinitionException(\sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__));
         }
 
         parent::__construct($options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/ExpressionLanguageProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/ExpressionLanguageProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/ExpressionLanguageProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/ExpressionLanguageProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,14 +19,10 @@
     public function getFunctions(): array
     {
         return [
-            new ExpressionFunction('is_valid', function (...$arguments) {
-                return sprintf(
-                    '0 === $context->getValidator()->inContext($context)->validate(%s)->getViolations()->count()',
-                    implode(', ', $arguments)
-                );
-            }, function (array $variables, ...$arguments): bool {
-                return 0 === $variables['context']->getValidator()->inContext($variables['context'])->validate(...$arguments)->getViolations()->count();
-            }),
+            new ExpressionFunction('is_valid', static fn (...$arguments) => \sprintf(
+                '0 === $context->getValidator()->inContext($context)->validate(%s)->getViolations()->count()',
+                implode(', ', $arguments)
+            ), static fn (array $variables, ...$arguments) => 0 === $variables['context']->getValidator()->inContext($variables['context'])->validate(...$arguments)->getViolations()->count()),
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/ExpressionLanguageSyntaxValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/ExpressionLanguageSyntaxValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/ExpressionLanguageSyntaxValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/ExpressionLanguageSyntaxValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,7 +32,7 @@
     public function __construct(?ExpressionLanguage $expressionLanguage = null)
     {
         if (!class_exists(ExpressionLanguage::class)) {
-            throw new \LogicException(sprintf('The "%s" class requires the "ExpressionLanguage" component. Try running "composer require symfony/expression-language".', self::class));
+            throw new \LogicException(\sprintf('The "%s" class requires the "ExpressionLanguage" component. Try running "composer require symfony/expression-language".', self::class));
         }
 
         $this->expressionLanguage = $expressionLanguage;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Expression.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Expression.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Expression.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Expression.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,12 +52,12 @@
         ?bool $negate = null,
     ) {
         if (!class_exists(ExpressionLanguage::class)) {
-            throw new LogicException(sprintf('The "symfony/expression-language" component is required to use the "%s" constraint. Try running "composer require symfony/expression-language".', __CLASS__));
+            throw new LogicException(\sprintf('The "symfony/expression-language" component is required to use the "%s" constraint. Try running "composer require symfony/expression-language".', __CLASS__));
         }
 
         if (\is_array($expression)) {
             $options = array_merge($expression, $options);
-        } else {
+        } elseif (null !== $expression) {
             $options['value'] = $expression;
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/File.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/File.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/File.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/File.php	2026-05-20 10:56:49.000000000 +0200
@@ -180,7 +180,7 @@
             $this->maxSize = $matches[1] * $factors[$unit = strtolower($matches[2])];
             $this->binaryFormat ??= 2 === \strlen($unit);
         } else {
-            throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum size.', $maxSize));
+            throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid maximum size.', $maxSize));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Hostname.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Hostname.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Hostname.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Hostname.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
         ?string $message = null,
         ?bool $requireTld = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         parent::__construct($options, $groups, $payload);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Image.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Image.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Image.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Image.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
      */
     protected static $errorNames = self::ERROR_NAMES;
 
-    public $mimeTypes = 'image/*';
+    public $mimeTypes;
     public $minWidth;
     public $maxWidth;
     public $maxHeight;
@@ -140,7 +140,9 @@
         ?string $allowPortraitMessage = null,
         ?string $corruptedMessage = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
+        array|string|null $extensions = null,
+        ?string $extensionsMessage = null,
     ) {
         parent::__construct(
             $options,
@@ -163,7 +165,9 @@
             $uploadExtensionErrorMessage,
             $uploadErrorMessage,
             $groups,
-            $payload
+            $payload,
+            $extensions,
+            $extensionsMessage,
         );
 
         $this->minWidth = $minWidth ?? $this->minWidth;
@@ -192,6 +196,10 @@
         $this->allowPortraitMessage = $allowPortraitMessage ?? $this->allowPortraitMessage;
         $this->corruptedMessage = $corruptedMessage ?? $this->corruptedMessage;
 
+        if (null === $this->mimeTypes && [] === $this->extensions) {
+            $this->mimeTypes = 'image/*';
+        }
+
         if (!\in_array('image/*', (array) $this->mimeTypes, true) && !\array_key_exists('mimeTypesMessage', $options ?? []) && null === $mimeTypesMessage) {
             $this->mimeTypesMessage = 'The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.';
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/ImageValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/ImageValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/ImageValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/ImageValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,7 +68,7 @@
 
         if ($constraint->minWidth) {
             if (!ctype_digit((string) $constraint->minWidth)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum width.', $constraint->minWidth));
+                throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid minimum width.', $constraint->minWidth));
             }
 
             if ($width < $constraint->minWidth) {
@@ -84,7 +84,7 @@
 
         if ($constraint->maxWidth) {
             if (!ctype_digit((string) $constraint->maxWidth)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum width.', $constraint->maxWidth));
+                throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid maximum width.', $constraint->maxWidth));
             }
 
             if ($width > $constraint->maxWidth) {
@@ -100,7 +100,7 @@
 
         if ($constraint->minHeight) {
             if (!ctype_digit((string) $constraint->minHeight)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum height.', $constraint->minHeight));
+                throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid minimum height.', $constraint->minHeight));
             }
 
             if ($height < $constraint->minHeight) {
@@ -116,7 +116,7 @@
 
         if ($constraint->maxHeight) {
             if (!ctype_digit((string) $constraint->maxHeight)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum height.', $constraint->maxHeight));
+                throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid maximum height.', $constraint->maxHeight));
             }
 
             if ($height > $constraint->maxHeight) {
@@ -132,7 +132,7 @@
 
         if (null !== $constraint->minPixels) {
             if (!ctype_digit((string) $constraint->minPixels)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum amount of pixels.', $constraint->minPixels));
+                throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid minimum amount of pixels.', $constraint->minPixels));
             }
 
             if ($pixels < $constraint->minPixels) {
@@ -148,7 +148,7 @@
 
         if (null !== $constraint->maxPixels) {
             if (!ctype_digit((string) $constraint->maxPixels)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum amount of pixels.', $constraint->maxPixels));
+                throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid maximum amount of pixels.', $constraint->maxPixels));
             }
 
             if ($pixels > $constraint->maxPixels) {
@@ -166,7 +166,7 @@
 
         if (null !== $constraint->minRatio) {
             if (!is_numeric((string) $constraint->minRatio)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum ratio.', $constraint->minRatio));
+                throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid minimum ratio.', $constraint->minRatio));
             }
 
             if ($ratio < round($constraint->minRatio, 2)) {
@@ -180,7 +180,7 @@
 
         if (null !== $constraint->maxRatio) {
             if (!is_numeric((string) $constraint->maxRatio)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum ratio.', $constraint->maxRatio));
+                throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid maximum ratio.', $constraint->maxRatio));
             }
 
             if ($ratio > round($constraint->maxRatio, 2)) {
@@ -230,8 +230,6 @@
 
                 return;
             }
-
-            imagedestroy($resource);
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Ip.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Ip.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Ip.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Ip.php	2026-05-20 10:56:49.000000000 +0200
@@ -93,7 +93,7 @@
         ?string $message = null,
         ?callable $normalizer = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         parent::__construct($options, $groups, $payload);
 
@@ -102,11 +102,11 @@
         $this->normalizer = $normalizer ?? $this->normalizer;
 
         if (!\in_array($this->version, self::$versions)) {
-            throw new ConstraintDefinitionException(sprintf('The option "version" must be one of "%s".', implode('", "', self::$versions)));
+            throw new ConstraintDefinitionException(\sprintf('The option "version" must be one of "%s".', implode('", "', self::$versions)));
         }
 
         if (null !== $this->normalizer && !\is_callable($this->normalizer)) {
-            throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
+            throw new InvalidArgumentException(\sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Isbn.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Isbn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Isbn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Isbn.php	2026-05-20 10:56:49.000000000 +0200
@@ -60,7 +60,7 @@
         ?string $bothIsbnMessage = null,
         ?array $groups = null,
         mixed $payload = null,
-        array $options = []
+        array $options = [],
     ) {
         if (\is_array($type)) {
             $options = array_merge($type, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Issn.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Issn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Issn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Issn.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
         ?bool $caseSensitive = null,
         ?bool $requireHyphen = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         parent::__construct($options, $groups, $payload);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Language.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Language.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Language.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Language.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
         ?string $message = null,
         ?bool $alpha3 = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         if (!class_exists(Languages::class)) {
             throw new LogicException('The Intl component is required to use the Language constraint. Try running "composer require symfony/intl".');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Length.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Length.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Length.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Length.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,7 +79,7 @@
         ?string $charsetMessage = null,
         ?array $groups = null,
         mixed $payload = null,
-        array $options = []
+        array $options = [],
     ) {
         if (\is_array($exactly)) {
             $options = array_merge($exactly, $options);
@@ -108,15 +108,15 @@
         $this->charsetMessage = $charsetMessage ?? $this->charsetMessage;
 
         if (null === $this->min && null === $this->max) {
-            throw new MissingOptionsException(sprintf('Either option "min" or "max" must be given for constraint "%s".', __CLASS__), ['min', 'max']);
+            throw new MissingOptionsException(\sprintf('Either option "min" or "max" must be given for constraint "%s".', __CLASS__), ['min', 'max']);
         }
 
         if (null !== $this->normalizer && !\is_callable($this->normalizer)) {
-            throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
+            throw new InvalidArgumentException(\sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
         }
 
         if (!\in_array($this->countUnit, self::VALID_COUNT_UNITS)) {
-            throw new InvalidArgumentException(sprintf('The "countUnit" option must be one of the "%s"::COUNT_* constants ("%s" given).', __CLASS__, $this->countUnit));
+            throw new InvalidArgumentException(\sprintf('The "countUnit" option must be one of the "%s"::COUNT_* constants ("%s" given).', __CLASS__, $this->countUnit));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Locale.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Locale.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Locale.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Locale.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
         ?string $message = null,
         ?bool $canonicalize = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         if (!class_exists(Locales::class)) {
             throw new LogicException('The Intl component is required to use the Locale constraint. Try running "composer require symfony/intl".');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/LocaleValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/LocaleValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/LocaleValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/LocaleValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
             $value = \Locale::canonicalize($value);
         }
 
-        if (!Locales::exists($value)) {
+        if (null === $value || !Locales::exists($value)) {
             $this->context->buildViolation($constraint->message)
                 ->setParameter('{{ value }}', $this->formatValue($inputValue))
                 ->setCode(Locale::NO_SUCH_LOCALE_ERROR)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Luhn.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Luhn.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Luhn.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Luhn.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
         ?array $options = null,
         ?string $message = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         parent::__construct($options, $groups, $payload);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/NoSuspiciousCharacters.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/NoSuspiciousCharacters.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/NoSuspiciousCharacters.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/NoSuspiciousCharacters.php	2026-05-20 10:56:49.000000000 +0200
@@ -94,7 +94,7 @@
         ?int $restrictionLevel = null,
         ?array $locales = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         if (!class_exists(\Spoofchecker::class)) {
             throw new LogicException('The intl extension is required to use the NoSuspiciousCharacters constraint.');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/NotBlank.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/NotBlank.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/NotBlank.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/NotBlank.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
         $this->normalizer = $normalizer ?? $this->normalizer;
 
         if (null !== $this->normalizer && !\is_callable($this->normalizer)) {
-            throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
+            throw new InvalidArgumentException(\sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/NotCompromisedPassword.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/NotCompromisedPassword.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/NotCompromisedPassword.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/NotCompromisedPassword.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
         ?int $threshold = null,
         ?bool $skipOnError = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         parent::__construct($options, $groups, $payload);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/NotCompromisedPasswordValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/NotCompromisedPasswordValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/NotCompromisedPasswordValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/NotCompromisedPasswordValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,7 +40,7 @@
     public function __construct(?HttpClientInterface $httpClient = null, string $charset = 'UTF-8', bool $enabled = true, ?string $endpoint = null)
     {
         if (null === $httpClient && !class_exists(HttpClient::class)) {
-            throw new LogicException(sprintf('The "%s" class requires the "HttpClient" component. Try running "composer require symfony/http-client".', self::class));
+            throw new LogicException(\sprintf('The "%s" class requires the "HttpClient" component. Try running "composer require symfony/http-client".', self::class));
         }
 
         $this->httpClient = $httpClient ?? HttpClient::create();
@@ -79,7 +79,7 @@
 
         $hash = strtoupper(sha1($value));
         $hashPrefix = substr($hash, 0, 5);
-        $url = sprintf($this->endpoint, $hashPrefix);
+        $url = \sprintf($this->endpoint, $hashPrefix);
 
         try {
             $result = $this->httpClient->request('GET', $url, ['headers' => ['Add-Padding' => 'true']])->getContent();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/PasswordStrength.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/PasswordStrength.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/PasswordStrength.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/PasswordStrength.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
         $this->message = $message ?? $this->message;
 
         if ($this->minScore < 1 || 4 < $this->minScore) {
-            throw new ConstraintDefinitionException(sprintf('The parameter "minScore" of the "%s" constraint must be an integer between 1 and 4.', self::class));
+            throw new ConstraintDefinitionException(\sprintf('The parameter "minScore" of the "%s" constraint must be an integer between 1 and 4.', self::class));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Range.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Range.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Range.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Range.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
     public $minMessage = 'This value should be {{ limit }} or more.';
     public $maxMessage = 'This value should be {{ limit }} or less.';
     public $invalidMessage = 'This value should be a valid number.';
-    public $invalidDateTimeMessage = 'This value should be a valid datetime.';
+    public $invalidDateTimeMessage = 'This value is not a valid datetime.';
     public $min;
     public $minPropertyPath;
     public $max;
@@ -65,7 +65,7 @@
         mixed $max = null,
         ?string $maxPropertyPath = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         parent::__construct($options, $groups, $payload);
 
@@ -80,23 +80,23 @@
         $this->maxPropertyPath = $maxPropertyPath ?? $this->maxPropertyPath;
 
         if (null === $this->min && null === $this->minPropertyPath && null === $this->max && null === $this->maxPropertyPath) {
-            throw new MissingOptionsException(sprintf('Either option "min", "minPropertyPath", "max" or "maxPropertyPath" must be given for constraint "%s".', __CLASS__), ['min', 'minPropertyPath', 'max', 'maxPropertyPath']);
+            throw new MissingOptionsException(\sprintf('Either option "min", "minPropertyPath", "max" or "maxPropertyPath" must be given for constraint "%s".', __CLASS__), ['min', 'minPropertyPath', 'max', 'maxPropertyPath']);
         }
 
         if (null !== $this->min && null !== $this->minPropertyPath) {
-            throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires only one of the "min" or "minPropertyPath" options to be set, not both.', static::class));
+            throw new ConstraintDefinitionException(\sprintf('The "%s" constraint requires only one of the "min" or "minPropertyPath" options to be set, not both.', static::class));
         }
 
         if (null !== $this->max && null !== $this->maxPropertyPath) {
-            throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires only one of the "max" or "maxPropertyPath" options to be set, not both.', static::class));
+            throw new ConstraintDefinitionException(\sprintf('The "%s" constraint requires only one of the "max" or "maxPropertyPath" options to be set, not both.', static::class));
         }
 
         if ((null !== $this->minPropertyPath || null !== $this->maxPropertyPath) && !class_exists(PropertyAccess::class)) {
-            throw new LogicException(sprintf('The "%s" constraint requires the Symfony PropertyAccess component to use the "minPropertyPath" or "maxPropertyPath" option. Try running "composer require symfony/property-access".', static::class));
+            throw new LogicException(\sprintf('The "%s" constraint requires the Symfony PropertyAccess component to use the "minPropertyPath" or "maxPropertyPath" option. Try running "composer require symfony/property-access".', static::class));
         }
 
         if (null !== $this->min && null !== $this->max && ($minMessage || $maxMessage || isset($options['minMessage']) || isset($options['maxMessage']))) {
-            throw new ConstraintDefinitionException(sprintf('The "%s" constraint can not use "minMessage" and "maxMessage" when the "min" and "max" options are both set. Use "notInRangeMessage" instead.', static::class));
+            throw new ConstraintDefinitionException(\sprintf('The "%s" constraint can not use "minMessage" and "maxMessage" when the "min" and "max" options are both set. Use "notInRangeMessage" instead.', static::class));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/RangeValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/RangeValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/RangeValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/RangeValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,7 +73,7 @@
                 try {
                     $min = new $value($min);
                 } catch (\Exception) {
-                    throw new ConstraintDefinitionException(sprintf('The min value "%s" could not be converted to a "%s" instance in the "%s" constraint.', $min, get_debug_type($value), get_debug_type($constraint)));
+                    throw new ConstraintDefinitionException(\sprintf('The min value "%s" could not be converted to a "%s" instance in the "%s" constraint.', $min, get_debug_type($value), get_debug_type($constraint)));
                 }
             }
 
@@ -81,7 +81,7 @@
                 try {
                     $max = new $value($max);
                 } catch (\Exception) {
-                    throw new ConstraintDefinitionException(sprintf('The max value "%s" could not be converted to a "%s" instance in the "%s" constraint.', $max, get_debug_type($value), get_debug_type($constraint)));
+                    throw new ConstraintDefinitionException(\sprintf('The max value "%s" could not be converted to a "%s" instance in the "%s" constraint.', $max, get_debug_type($value), get_debug_type($constraint)));
                 }
             }
         }
@@ -162,7 +162,7 @@
         try {
             return $this->getPropertyAccessor()->getValue($object, $propertyPath);
         } catch (NoSuchPropertyException $e) {
-            throw new ConstraintDefinitionException(sprintf('Invalid property path "%s" provided to "%s" constraint: ', $propertyPath, get_debug_type($constraint)).$e->getMessage(), 0, $e);
+            throw new ConstraintDefinitionException(\sprintf('Invalid property path "%s" provided to "%s" constraint: ', $propertyPath, get_debug_type($constraint)).$e->getMessage(), 0, $e);
         } catch (UninitializedPropertyException) {
             return null;
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Regex.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Regex.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Regex.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Regex.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
         ?callable $normalizer = null,
         ?array $groups = null,
         mixed $payload = null,
-        array $options = []
+        array $options = [],
     ) {
         if (\is_array($pattern)) {
             $options = array_merge($pattern, $options);
@@ -65,7 +65,7 @@
         $this->normalizer = $normalizer ?? $this->normalizer;
 
         if (null !== $this->normalizer && !\is_callable($this->normalizer)) {
-            throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
+            throw new InvalidArgumentException(\sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/RegexValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/RegexValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/RegexValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/RegexValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,9 @@
             $value = ($constraint->normalizer)($value);
         }
 
-        if ($constraint->match xor preg_match($constraint->pattern, $value)) {
+        $expectedResult = $constraint->match ? 1 : 0;
+
+        if (preg_match($constraint->pattern, $value) !== $expectedResult) {
             $this->context->buildViolation($constraint->message)
                 ->setParameter('{{ value }}', $this->formatValue($value))
                 ->setParameter('{{ pattern }}', $constraint->pattern)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Timezone.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Timezone.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Timezone.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Timezone.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,7 +53,7 @@
         ?bool $intlCompatible = null,
         ?array $groups = null,
         mixed $payload = null,
-        array $options = []
+        array $options = [],
     ) {
         if (\is_array($zone)) {
             $options = array_merge($zone, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Traverse.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Traverse.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Traverse.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Traverse.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,7 +27,7 @@
     public function __construct(bool|array|null $traverse = null)
     {
         if (\is_array($traverse) && \array_key_exists('groups', $traverse)) {
-            throw new ConstraintDefinitionException(sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__));
+            throw new ConstraintDefinitionException(\sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__));
         }
 
         parent::__construct($traverse);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Ulid.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Ulid.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Ulid.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Ulid.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
         ?array $options = null,
         ?string $message = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         parent::__construct($options, $groups, $payload);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Unique.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Unique.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Unique.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Unique.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,7 @@
         $this->fields = $fields ?? $this->fields;
 
         if (null !== $this->normalizer && !\is_callable($this->normalizer)) {
-            throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
+            throw new InvalidArgumentException(\sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/UniqueValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/UniqueValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/UniqueValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/UniqueValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
         foreach ($value as $element) {
             $element = $normalizer($element);
 
-            if ($fields && !$element = $this->reduceElementKeys($fields, $element)) {
+            if ($fields && !(\is_array($element) && $element = $this->reduceElementKeys($fields, $element))) {
                 continue;
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Url.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Url.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Url.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Url.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
         ?bool $relativeProtocol = null,
         ?callable $normalizer = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         parent::__construct($options, $groups, $payload);
 
@@ -57,7 +57,7 @@
         $this->normalizer = $normalizer ?? $this->normalizer;
 
         if (null !== $this->normalizer && !\is_callable($this->normalizer)) {
-            throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
+            throw new InvalidArgumentException(\sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/UrlValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/UrlValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/UrlValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/UrlValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -21,34 +21,36 @@
  */
 class UrlValidator extends ConstraintValidator
 {
-    public const PATTERN = '~^
+    public const PATTERN = <<<'REGEX'
+        {^
             (%s)://                                 # protocol
-            (((?:[\_\.\pL\pN-]|%%[0-9A-Fa-f]{2})+:)?((?:[\_\.\pL\pN-]|%%[0-9A-Fa-f]{2})+)@)?  # basic auth
+            ((?:[\pL\pN\-._~!$&'()*+,;=]|%%[0-9A-Fa-f]{2})++(?::(?:[:\pL\pN\-._~!$&'()*+,;=]|%%[0-9A-Fa-f]{2})*+)?@)?  # basic auth
             (
                 (?:
                     (?:
                         (?:[\pL\pN\pS\pM\-\_]++\.)+
                         (?:
-                            (?:xn--[a-z0-9-]++)                       # punycode in tld
+                            (?:xn--[a-z0-9-]++)     # punycode in tld
                             |
-                            (?:[\pL\pN\pM]++)                         # no punycode in tld
+                            (?:[\pL\pN\pM]++)       # no punycode in tld
                         )
-                    )                                                 # a multi-level domain name
+                    )                               # a multi-level domain name
                         |
-                    [a-z0-9\-\_]++                                    # a single-level domain name
+                    [a-z0-9\-\_]++                  # a single-level domain name
                 )\.?
-                    |                                                 # or
-                \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}                    # an IP address
-                    |                                                 # or
+                    |                               # or
+                \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}  # an IP address
+                    |                               # or
                 \[
                     (?:(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-f]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,1}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,2}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,3}(?:(?:[0-9a-f]{1,4})))?::(?:(?:[0-9a-f]{1,4})):)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,4}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,5}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,6}(?:(?:[0-9a-f]{1,4})))?::))))
                 \]  # an IPv6 address
             )
             (:[0-9]+)?                              # a port (optional)
-            (?:/ (?:[\pL\pN\pS\pM\-._\~!$&\'()*+,;=:@]|%%[0-9A-Fa-f]{2})* )*    # a path
-            (?:\? (?:[\pL\pN\-._\~!$&\'\[\]()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )?   # a query (optional)
-            (?:\# (?:[\pL\pN\-._\~!$&\'()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )?       # a fragment (optional)
-        $~ixuD';
+            (?:/ (?:[\pL\pN\pS\pM\-._~!$&'()*+,;=:@]|%%[0-9A-Fa-f]{2})* )*  # a path
+            (?:\? (?:[\pL\pN\-._~!$&'()*+,;=:@/?[\]]|%%[0-9A-Fa-f]{2})* )?  # a query (optional)
+            (?:\# (?:[\pL\pN\-._~!$&'()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )?     # a fragment (optional)
+        $}ixuD
+        REGEX;
 
     /**
      * @return void
@@ -77,7 +79,7 @@
         }
 
         $pattern = $constraint->relativeProtocol ? str_replace('(%s):', '(?:(%s):)?', static::PATTERN) : static::PATTERN;
-        $pattern = sprintf($pattern, implode('|', $constraint->protocols));
+        $pattern = \sprintf($pattern, implode('|', $constraint->protocols));
 
         if (!preg_match($pattern, $value)) {
             $this->context->buildViolation($constraint->message)
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Uuid.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Uuid.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/Uuid.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/Uuid.php	2026-05-20 10:56:49.000000000 +0200
@@ -110,7 +110,7 @@
         ?bool $strict = null,
         ?callable $normalizer = null,
         ?array $groups = null,
-        mixed $payload = null
+        mixed $payload = null,
     ) {
         parent::__construct($options, $groups, $payload);
 
@@ -120,7 +120,7 @@
         $this->normalizer = $normalizer ?? $this->normalizer;
 
         if (null !== $this->normalizer && !\is_callable($this->normalizer)) {
-            throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
+            throw new InvalidArgumentException(\sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer)));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/When.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/When.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/When.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/When.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,14 +30,17 @@
     public function __construct(string|Expression|array $expression, array|Constraint|null $constraints = null, ?array $values = null, ?array $groups = null, $payload = null, array $options = [])
     {
         if (!class_exists(ExpressionLanguage::class)) {
-            throw new LogicException(sprintf('The "symfony/expression-language" component is required to use the "%s" constraint. Try running "composer require symfony/expression-language".', __CLASS__));
+            throw new LogicException(\sprintf('The "symfony/expression-language" component is required to use the "%s" constraint. Try running "composer require symfony/expression-language".', __CLASS__));
         }
 
         if (\is_array($expression)) {
             $options = array_merge($expression, $options);
         } else {
             $options['expression'] = $expression;
-            $options['constraints'] = $constraints;
+
+            if (null !== $constraints) {
+                $options['constraints'] = $constraints;
+            }
         }
 
         if (isset($options['constraints']) && !\is_array($options['constraints'])) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/WhenValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/WhenValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/WhenValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/WhenValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
     private function getExpressionLanguage(): ExpressionLanguage
     {
         if (!class_exists(ExpressionLanguage::class)) {
-            throw new LogicException(sprintf('The "symfony/expression-language" component is required to use the "%s" validator. Try running "composer require symfony/expression-language".', __CLASS__));
+            throw new LogicException(\sprintf('The "symfony/expression-language" component is required to use the "%s" validator. Try running "composer require symfony/expression-language".', __CLASS__));
         }
 
         return $this->expressionLanguage ??= new ExpressionLanguage();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/ZeroComparisonConstraintTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/ZeroComparisonConstraintTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Constraints/ZeroComparisonConstraintTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Constraints/ZeroComparisonConstraintTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,11 +26,11 @@
         $options ??= [];
 
         if (isset($options['propertyPath'])) {
-            throw new ConstraintDefinitionException(sprintf('The "propertyPath" option of the "%s" constraint cannot be set.', static::class));
+            throw new ConstraintDefinitionException(\sprintf('The "propertyPath" option of the "%s" constraint cannot be set.', static::class));
         }
 
         if (isset($options['value'])) {
-            throw new ConstraintDefinitionException(sprintf('The "value" option of the "%s" constraint cannot be set.', static::class));
+            throw new ConstraintDefinitionException(\sprintf('The "value" option of the "%s" constraint cannot be set.', static::class));
         }
 
         parent::__construct(0, null, $message, $groups, $payload, $options);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/ConstraintValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/ConstraintValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/ConstraintValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/ConstraintValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
                 $formatter = new \IntlDateFormatter(\Locale::getDefault(), \IntlDateFormatter::MEDIUM, \IntlDateFormatter::SHORT, 'UTC');
 
                 return $formatter->format(new \DateTimeImmutable(
-                    $value->format('Y-m-d H:i:s.u'),
+                    ($value->format('y') > 0 ? '+' : '').$value->format('Y-m-d H:i:s.u'),
                     new \DateTimeZone('UTC')
                 ));
             }
@@ -127,6 +127,10 @@
             return 'true';
         }
 
+        if (is_nan($value)) {
+            return 'NAN';
+        }
+
         return (string) $value;
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/ConstraintViolationList.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/ConstraintViolationList.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/ConstraintViolationList.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/ConstraintViolationList.php	2026-05-20 10:56:49.000000000 +0200
@@ -79,7 +79,7 @@
     public function get(int $offset): ConstraintViolationInterface
     {
         if (!isset($this->violations[$offset])) {
-            throw new OutOfBoundsException(sprintf('The offset "%s" does not exist.', $offset));
+            throw new OutOfBoundsException(\sprintf('The offset "%s" does not exist.', $offset));
         }
 
         return $this->violations[$offset];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/ContainerConstraintValidatorFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/ContainerConstraintValidatorFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/ContainerConstraintValidatorFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/ContainerConstraintValidatorFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
                 $this->validators[$name] = $this->container->get($name);
             } else {
                 if (!class_exists($name)) {
-                    throw new ValidatorException(sprintf('Constraint validator "%s" does not exist or is not enabled. Check the "validatedBy" method in your constraint class "%s".', $name, get_debug_type($constraint)));
+                    throw new ValidatorException(\sprintf('Constraint validator "%s" does not exist or is not enabled. Check the "validatedBy" method in your constraint class "%s".', $name, get_debug_type($constraint)));
                 }
 
                 $this->validators[$name] = new $name();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/DataCollector/ValidatorDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/DataCollector/ValidatorDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/DataCollector/ValidatorDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/DataCollector/ValidatorDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
     {
         $collected = $this->validator->getCollectedData();
         $this->data['calls'] = $this->cloneVar($collected);
-        $this->data['violations_count'] = array_reduce($collected, fn ($previous, $item) => $previous + \count($item['violations']), 0);
+        $this->data['violations_count'] = array_reduce($collected, static fn ($previous, $item) => $previous + \count($item['violations']), 0);
     }
 
     public function getCalls(): Data
@@ -75,7 +75,7 @@
     protected function getCasters(): array
     {
         return parent::getCasters() + [
-            \Exception::class => function (\Exception $e, array $a, Stub $s) {
+            \Exception::class => static function (\Exception $e, array $a, Stub $s) {
                 foreach (["\0Exception\0previous", "\0Exception\0trace"] as $k) {
                     if (isset($a[$k])) {
                         unset($a[$k]);
@@ -85,7 +85,7 @@
 
                 return $a;
             },
-            FormInterface::class => fn (FormInterface $f, array $a) => [
+            FormInterface::class => static fn (FormInterface $f, array $a) => [
                 Caster::PREFIX_VIRTUAL.'name' => $f->getName(),
                 Caster::PREFIX_VIRTUAL.'type_class' => new ClassStub($f->getConfig()->getType()->getInnerType()::class),
                 Caster::PREFIX_VIRTUAL.'data' => $f->getData(),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/DependencyInjection/AddAutoMappingConfigurationPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/DependencyInjection/AddAutoMappingConfigurationPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/DependencyInjection/AddAutoMappingConfigurationPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/DependencyInjection/AddAutoMappingConfigurationPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -82,6 +82,6 @@
             $regexps[] = '^'.$regex;
         }
 
-        return sprintf('{%s}', implode('|', $regexps));
+        return \sprintf('{%s}', implode('|', $regexps));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Exception/UnexpectedTypeException.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Exception/UnexpectedTypeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Exception/UnexpectedTypeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Exception/UnexpectedTypeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,6 @@
 {
     public function __construct(mixed $value, string $expectedType)
     {
-        parent::__construct(sprintf('Expected argument of type "%s", "%s" given', $expectedType, get_debug_type($value)));
+        parent::__construct(\sprintf('Expected argument of type "%s", "%s" given', $expectedType, get_debug_type($value)));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/ClassMetadata.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/ClassMetadata.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/ClassMetadata.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/ClassMetadata.php	2026-05-20 10:56:49.000000000 +0200
@@ -398,11 +398,11 @@
         }
 
         if (\in_array(Constraint::DEFAULT_GROUP, $groupSequence->groups, true)) {
-            throw new GroupDefinitionException(sprintf('The group "%s" is not allowed in group sequences.', Constraint::DEFAULT_GROUP));
+            throw new GroupDefinitionException(\sprintf('The group "%s" is not allowed in group sequences.', Constraint::DEFAULT_GROUP));
         }
 
         if (!\in_array($this->getDefaultGroup(), $groupSequence->groups, true)) {
-            throw new GroupDefinitionException(sprintf('The group "%s" is missing in the group sequence.', $this->getDefaultGroup()));
+            throw new GroupDefinitionException(\sprintf('The group "%s" is missing in the group sequence.', $this->getDefaultGroup()));
         }
 
         $this->groupSequence = $groupSequence;
@@ -442,7 +442,7 @@
         }
 
         if (null === $this->groupProvider && !$this->getReflectionClass()->implementsInterface(GroupSequenceProviderInterface::class)) {
-            throw new GroupDefinitionException(sprintf('Class "%s" must implement GroupSequenceProviderInterface.', $this->name));
+            throw new GroupDefinitionException(\sprintf('Class "%s" must implement GroupSequenceProviderInterface.', $this->name));
         }
 
         $this->groupSequenceProvider = $active;
@@ -478,7 +478,7 @@
     private function checkConstraint(Constraint $constraint): void
     {
         if (!\in_array(Constraint::CLASS_CONSTRAINT, (array) $constraint->getTargets(), true)) {
-            throw new ConstraintDefinitionException(sprintf('The constraint "%s" cannot be put on classes.', get_debug_type($constraint)));
+            throw new ConstraintDefinitionException(\sprintf('The constraint "%s" cannot be put on classes.', get_debug_type($constraint)));
         }
 
         if ($constraint instanceof Composite) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Factory/LazyLoadingMetadataFactory.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Factory/LazyLoadingMetadataFactory.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Factory/LazyLoadingMetadataFactory.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Factory/LazyLoadingMetadataFactory.php	2026-05-20 10:56:49.000000000 +0200
@@ -71,7 +71,7 @@
     public function getMetadataFor(mixed $value): MetadataInterface
     {
         if (!\is_object($value) && !\is_string($value)) {
-            throw new NoSuchMetadataException(sprintf('Cannot create metadata for non-objects. Got: "%s".', get_debug_type($value)));
+            throw new NoSuchMetadataException(\sprintf('Cannot create metadata for non-objects. Got: "%s".', get_debug_type($value)));
         }
 
         $class = ltrim(\is_object($value) ? $value::class : $value, '\\');
@@ -81,7 +81,7 @@
         }
 
         if (!class_exists($class) && !interface_exists($class, false)) {
-            throw new NoSuchMetadataException(sprintf('The class or interface "%s" does not exist.', $class));
+            throw new NoSuchMetadataException(\sprintf('The class or interface "%s" does not exist.', $class));
         }
 
         $cacheItem = $this->cache?->getItem($this->escapeClassName($class));
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/GenericMetadata.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/GenericMetadata.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/GenericMetadata.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/GenericMetadata.php	2026-05-20 10:56:49.000000000 +0200
@@ -133,7 +133,7 @@
     public function addConstraint(Constraint $constraint): static
     {
         if ($constraint instanceof Traverse || $constraint instanceof Cascade) {
-            throw new ConstraintDefinitionException(sprintf('The constraint "%s" can only be put on classes. Please use "Symfony\Component\Validator\Constraints\Valid" instead.', get_debug_type($constraint)));
+            throw new ConstraintDefinitionException(\sprintf('The constraint "%s" can only be put on classes. Please use "Symfony\Component\Validator\Constraints\Valid" instead.', get_debug_type($constraint)));
         }
 
         if ($constraint instanceof Valid && null === $constraint->groups) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/GetterMetadata.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/GetterMetadata.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/GetterMetadata.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/GetterMetadata.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,10 +53,10 @@
             } elseif (method_exists($class, $hasMethod)) {
                 $method = $hasMethod;
             } else {
-                throw new ValidatorException(sprintf('Neither of these methods exist in class "%s": "%s", "%s", "%s".', $class, $getMethod, $isMethod, $hasMethod));
+                throw new ValidatorException(\sprintf('Neither of these methods exist in class "%s": "%s", "%s", "%s".', $class, $getMethod, $isMethod, $hasMethod));
             }
         } elseif (!method_exists($class, $method)) {
-            throw new ValidatorException(sprintf('The "%s()" method does not exist in class "%s".', $method, $class));
+            throw new ValidatorException(\sprintf('The "%s()" method does not exist in class "%s".', $method, $class));
         }
 
         parent::__construct($class, $method, $property);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -78,7 +78,7 @@
             [$prefix, $className] = explode(':', $name, 2);
 
             if (!isset($this->namespaces[$prefix])) {
-                throw new MappingException(sprintf('Undefined namespace prefix "%s".', $prefix));
+                throw new MappingException(\sprintf('Undefined namespace prefix "%s".', $prefix));
             }
 
             $className = $this->namespaces[$prefix].$className;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/AnnotationLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/AnnotationLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/AnnotationLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/AnnotationLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
                         if (preg_match('/^(get|is|has)(.+)$/i', $method->name, $matches)) {
                             $metadata->addGetterMethodConstraint(lcfirst($matches[2]), $matches[0], $constraint);
                         } else {
-                            throw new MappingException(sprintf('The constraint on "%s::%s()" cannot be added. Constraints can only be added on methods beginning with "get", "is" or "has".', $className, $method->name));
+                            throw new MappingException(\sprintf('The constraint on "%s::%s()" cannot be added. Constraints can only be added on methods beginning with "get", "is" or "has".', $className, $method->name));
                         }
                     }
 
@@ -118,13 +118,13 @@
         $annotations = [];
 
         if ($reflection instanceof \ReflectionClass && $annotations = $this->reader->getClassAnnotations($reflection)) {
-            $this->triggerDeprecationIfAnnotationIsUsed($annotations, sprintf('Class "%s"', $reflection->getName()));
+            $this->triggerDeprecationIfAnnotationIsUsed($annotations, \sprintf('Class "%s"', $reflection->getName()));
         }
         if ($reflection instanceof \ReflectionMethod && $annotations = $this->reader->getMethodAnnotations($reflection)) {
-            $this->triggerDeprecationIfAnnotationIsUsed($annotations, sprintf('Method "%s::%s()"', $reflection->getDeclaringClass()->getName(), $reflection->getName()));
+            $this->triggerDeprecationIfAnnotationIsUsed($annotations, \sprintf('Method "%s::%s()"', $reflection->getDeclaringClass()->getName(), $reflection->getName()));
         }
         if ($reflection instanceof \ReflectionProperty && $annotations = $this->reader->getPropertyAnnotations($reflection)) {
-            $this->triggerDeprecationIfAnnotationIsUsed($annotations, sprintf('Property "%s::$%s"', $reflection->getDeclaringClass()->getName(), $reflection->getName()));
+            $this->triggerDeprecationIfAnnotationIsUsed($annotations, \sprintf('Property "%s::$%s"', $reflection->getDeclaringClass()->getName(), $reflection->getName()));
         }
 
         foreach ($dedup as $annotation) {
@@ -151,7 +151,7 @@
                 || $annotation instanceof GroupSequence
                 || $annotation instanceof GroupSequenceProvider
             ) {
-                trigger_deprecation('symfony/validator', '6.4', sprintf('%s uses Doctrine Annotations to configure validation constraints, which is deprecated. Use PHP attributes instead.', $messagePrefix));
+                trigger_deprecation('symfony/validator', '6.4', \sprintf('%s uses Doctrine Annotations to configure validation constraints, which is deprecated. Use PHP attributes instead.', $messagePrefix));
                 break;
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/FileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/FileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/FileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/FileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,15 +35,15 @@
     public function __construct(string $file)
     {
         if (!is_file($file)) {
-            throw new MappingException(sprintf('The mapping file "%s" does not exist.', $file));
+            throw new MappingException(\sprintf('The mapping file "%s" does not exist.', $file));
         }
 
         if (!is_readable($file)) {
-            throw new MappingException(sprintf('The mapping file "%s" is not readable.', $file));
+            throw new MappingException(\sprintf('The mapping file "%s" is not readable.', $file));
         }
 
         if (!stream_is_local($this->file)) {
-            throw new MappingException(sprintf('The mapping file "%s" is not a local file.', $file));
+            throw new MappingException(\sprintf('The mapping file "%s" is not a local file.', $file));
         }
 
         $this->file = $file;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/LoaderChain.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/LoaderChain.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/LoaderChain.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/LoaderChain.php	2026-05-20 10:56:49.000000000 +0200
@@ -36,7 +36,7 @@
     {
         foreach ($loaders as $loader) {
             if (!$loader instanceof LoaderInterface) {
-                throw new MappingException(sprintf('Class "%s" is expected to implement LoaderInterface.', get_debug_type($loader)));
+                throw new MappingException(\sprintf('Class "%s" is expected to implement LoaderInterface.', get_debug_type($loader)));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/StaticMethodLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/StaticMethodLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/StaticMethodLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/StaticMethodLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -46,7 +46,7 @@
             }
 
             if (!$reflMethod->isStatic()) {
-                throw new MappingException(sprintf('The method "%s::%s()" should be static.', $reflClass->name, $this->methodName));
+                throw new MappingException(\sprintf('The method "%s::%s()" should be static.', $reflClass->name, $this->methodName));
             }
 
             if ($reflMethod->getDeclaringClass()->name != $reflClass->name) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php	2026-05-20 10:56:49.000000000 +0200
@@ -121,7 +121,7 @@
         try {
             $classes = $this->yamlParser->parseFile($path, Yaml::PARSE_CONSTANT);
         } catch (ParseException $e) {
-            throw new \InvalidArgumentException(sprintf('The file "%s" does not contain valid YAML: ', $path).$e->getMessage(), 0, $e);
+            throw new \InvalidArgumentException(\sprintf('The file "%s" does not contain valid YAML: ', $path).$e->getMessage(), 0, $e);
         }
 
         // empty file
@@ -131,7 +131,7 @@
 
         // not an array
         if (!\is_array($classes)) {
-            throw new \InvalidArgumentException(sprintf('The file "%s" must contain a YAML array.', $this->file));
+            throw new \InvalidArgumentException(\sprintf('The file "%s" must contain a YAML array.', $this->file));
         }
 
         return $classes;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/MemberMetadata.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/MemberMetadata.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/MemberMetadata.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/MemberMetadata.php	2026-05-20 10:56:49.000000000 +0200
@@ -151,7 +151,7 @@
     private function checkConstraint(Constraint $constraint): void
     {
         if (!\in_array(Constraint::PROPERTY_CONSTRAINT, (array) $constraint->getTargets(), true)) {
-            throw new ConstraintDefinitionException(sprintf('The constraint "%s" cannot be put on properties or getters.', get_debug_type($constraint)));
+            throw new ConstraintDefinitionException(\sprintf('The constraint "%s" cannot be put on properties or getters.', get_debug_type($constraint)));
         }
 
         if ($constraint instanceof Composite) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/PropertyMetadata.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/PropertyMetadata.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Mapping/PropertyMetadata.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Mapping/PropertyMetadata.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
     public function __construct(string $class, string $name)
     {
         if (!property_exists($class, $name)) {
-            throw new ValidatorException(sprintf('Property "%s" does not exist in class "%s".', $name, $class));
+            throw new ValidatorException(\sprintf('Property "%s" does not exist in class "%s".', $name, $class));
         }
 
         parent::__construct($class, $name, $name);
@@ -51,9 +51,9 @@
             // There is no way to check if a property has been unset or if it is uninitialized.
             // When trying to access an uninitialized property, __get method is triggered.
 
-            // If __get method is not present, no fallback is possible
+            // If there is neither __get method nor get hook, no fallback is possible
             // Otherwise we need to catch an Error in case we are trying to access an uninitialized but set property.
-            if (!method_exists($object, '__get')) {
+            if (!method_exists($object, '__get') && (\PHP_VERSION_ID < 80400 || !$reflProperty->hasHook(\PropertyHookType::Get))) {
                 return null;
             }
 
@@ -75,7 +75,7 @@
             $objectOrClassName = get_parent_class($objectOrClassName);
 
             if (false === $objectOrClassName) {
-                throw new ValidatorException(sprintf('Property "%s" does not exist in class "%s".', $this->getName(), $originalClass));
+                throw new ValidatorException(\sprintf('Property "%s" does not exist in class "%s".', $this->getName(), $originalClass));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/bin/sync-iban-formats.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/bin/sync-iban-formats.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/bin/sync-iban-formats.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/bin/sync-iban-formats.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,7 +11,7 @@
  */
 
 if ('cli' !== \PHP_SAPI) {
-    throw new \Exception('This script must be run from the command line.');
+    throw new Exception('This script must be run from the command line.');
 }
 
 /*
@@ -24,7 +24,7 @@
 error_reporting(\E_ALL);
 
 set_error_handler(static function (int $type, string $msg, string $file, int $line): void {
-    throw new \ErrorException($msg, 0, $type, $file, $line);
+    throw new ErrorException($msg, 0, $type, $file, $line);
 });
 
 echo "Collecting IBAN formats...\n";
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.af.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.af.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.af.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.af.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -24,7 +24,7 @@
             </trans-unit>
             <trans-unit id="6">
                 <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Jy moet ten minste {{ limit }} kies.|Jy moet ten minste {{ limit }} keuses kies.</target>
+                <target>Jy moet ten minste {{ limit }} keuse kies.|Jy moet ten minste {{ limit }} keuses kies.</target>
             </trans-unit>
             <trans-unit id="7">
                 <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Hierdie waarde is nie 'n geldige IP-adres nie.</target>
+                <target>Hierdie waarde is nie 'n geldige IP-adres nie.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -192,7 +192,7 @@
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target state="needs-review-translation">Geen tydelike gids is in php.ini opgestel nie, of die opgestelde gids bestaan nie.</target>
+                <target>Geen tydelike vouer is in php.ini gekonfigureer nie, of die gekonfigureerde vouer bestaan ​​nie.</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
@@ -208,7 +208,7 @@
             </trans-unit>
             <trans-unit id="55">
                 <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Hierdie versameling moet {{ limit }} element of minder bevat.|Hierdie versameling moet {{ limit }} elemente of meer bevat.</target>
+                <target>Hierdie versameling moet {{ limit }} element of minder bevat.|Hierdie versameling moet {{ limit }} elemente of minder bevat.</target>
             </trans-unit>
             <trans-unit id="56">
                 <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Hierdie waarde is nie 'n geldige Internasionale Bankrekeningnommer (IBAN) nie.</target>
+                <target>Hierdie waarde is nie 'n geldige Internasionale Bankrekeningnommer (IBAN) nie.</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Hierdie waarde is nie 'n geldige Besigheid Identifiseerder Kode (BIC) nie.</target>
+                <target>Hierdie waarde is nie 'n geldige Besigheid Identifiseerder Kode (BIC) nie.</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Hierdie waarde is nie 'n geldige UUID nie.</target>
+                <target>Hierdie waarde is nie 'n geldige UUID nie.</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -360,7 +360,7 @@
             </trans-unit>
             <trans-unit id="93">
                 <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source>
-                <target state="needs-review-translation">Hierdie wagwoord is in 'n data-oortreding uitgelek, dit mag nie gebruik word nie. Gebruik asseblief 'n ander wagwoord.</target>
+                <target>Hierdie wagwoord is in 'n data-oortreding uitgelek, dit mag nie gebruik word nie. Gebruik asseblief 'n ander wagwoord.</target>
             </trans-unit>
             <trans-unit id="94">
                 <source>This value should be between {{ min }} and {{ max }}.</source>
@@ -404,75 +404,155 @@
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target state="needs-review-translation">Die lêernaam is te lank. Dit moet {{ filename_max_length }} karakter of minder hê.|Die lêernaam is te lank. Dit moet {{ filename_max_length }} karakters of minder hê.</target>
+                <target>Die lêernaam is te lank. Dit moet {{ filename_max_length }} karakters of minder hê.|Die lêernaam is te lank. Dit moet {{ filename_max_length }} karakters of minder hê.</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
-                <target state="needs-review-translation">Die wagwoordsterkte is te laag. Gebruik asseblief 'n sterker wagwoord.</target>
+                <target>Die wachtwoord sterkte is te laag. Gebruik asseblief 'een sterker wachtwoord.</target>
             </trans-unit>
             <trans-unit id="106">
                 <source>This value contains characters that are not allowed by the current restriction-level.</source>
-                <target state="needs-review-translation">Hierdie waarde bevat karakters wat nie toegelaat word deur die huidige beperkingsvlak nie.</target>
+                <target>Hierdie waarde bevat karakters wat nie toegelaat word deur die huidige beperkingsvlak nie.</target>
             </trans-unit>
             <trans-unit id="107">
                 <source>Using invisible characters is not allowed.</source>
-                <target state="needs-review-translation">Die gebruik van onsigbare karakters word nie toegelaat nie.</target>
+                <target>Die gebruik van onsigbare karakters word nie toegelaat nie.</target>
             </trans-unit>
             <trans-unit id="108">
                 <source>Mixing numbers from different scripts is not allowed.</source>
-                <target state="needs-review-translation">Die meng van nommers van verskillende skrifte word nie toegelaat nie.</target>
+                <target>Die meng van nommers van verskillende skrifte word nie toegelaat nie.</target>
             </trans-unit>
             <trans-unit id="109">
                 <source>Using hidden overlay characters is not allowed.</source>
-                <target state="needs-review-translation">Die gebruik van verborge oorvleuelende karakters word nie toegelaat nie.</target>
+                <target>Die gebruik van verborgen oorvleuelende karakters word nie toegelaat nie.</target>
             </trans-unit>
             <trans-unit id="110">
                 <source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
-                <target state="needs-review-translation">Die uitbreiding van die lêer is ongeldig ({{ extension }}). Toegelate uitbreidings is {{ extensions }}.</target>
+                <target>Die uitbreiding van de lêer is ongeldig ({{ extension }}). Toegelaten uitbreidings is {{ extensions }}.</target>
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
-                <target state="needs-review-translation">Die opgespoorde karakterkodering is ongeldig ({{ detected }}). Toegelate koderings is {{ encodings }}.</target>
+                <target>Die opgespoorde karakterkodering is ongeldig ({{ detected }}). Toegelate koderings is {{ encodings }}.</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target state="needs-review-translation">Hierdie waarde is nie 'n geldige MAC-adres nie.</target>
+                <target>Hierdie waarde is nie 'n geldige MAC-adres nie.</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Die URL mis 'n topvlakdomein.</target>
+                <target>Die URL mis 'n topvlakdomein.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Hierdie waarde is te kort. Dit moet ten minste een woord bevat.|Hierdie waarde is te kort. Dit moet ten minste {{ min }} woorde bevat.</target>
+                <target>Hierdie waarde is te kort. Dit moet ten minste een woord bevat.|Hierdie waarde is te kort. Dit moet ten minste {{ min }} woorde bevat.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Hierdie waarde is te lank. Dit moet een woord bevat.,Hierdie waarde is te lank. Dit moet {{ max }} woorde of minder bevat.</target>
+                <target>Hierdie waarde is te lank. Dit moet een woord bevat.,Hierdie waarde is te lank. Dit moet {{ max }} woorde of minder bevat.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Hierdie waarde stel nie 'n geldige week in die ISO 8601-formaat voor nie.</target>
+                <target>Hierdie waarde stel nie 'n geldige week in die ISO 8601-formaat voor nie.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Hierdie waarde is nie 'n geldige week nie.</target>
+                <target>Hierdie waarde is nie 'n geldige week nie.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Hierdie waarde mag nie voor week "{{ min }}" wees nie.</target>
+                <target>Hierdie waarde mag niet voor week "{{ min }}" wees nie.</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Hierdie waarde mag nie na week "{{ max }}" kom nie.</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Hierdie waarde is nie 'n geldige slug nie.</target>
+                <target>Hierdie waarde mag nie na week "{{ max }}" kom nie.</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Hierdie waarde is nie 'n geldige Twig-sjabloon nie.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Hierdie lêer is nie 'n geldige video nie.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Die grootte van die video kon nie bepaal word nie.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Die videowydte is te groot ({{ width }}px). Toegelate maksimum wydte is {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Die videobreedte is te klein ({{ width }}px). Minimum verwagte breedte is {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Die videohoogte is te groot ({{ height }}px). Toegestane maximum hoogte is {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Die videohoogte is te klein ({{ height }}px). Minimum hoogte verwag is {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Die video het te min pixels ({{ pixels }}). Minimum hoeveelheid verwag is {{ min_pixels }} pixels.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Die video het te veel pixels ({{ pixels }}). Maksimum verwagte hoeveelheid is {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Die videoratio is te groot ({{ ratio }}). Toegelate maksimum ratio is {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Die videoratio is te klein ({{ ratio }}). Minimum verwagte ratio is {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Die video is vierkantig ({{ width }}x{{ height }}px). Vierkantige video's word nie toegelaat nie.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Die video is landskap georiënteer ({{ width }}x{{ height }} px). Landskapvideo's word nie toegelaat nie.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Die video is portretgeoriënteerd ({{ width }}x{{ height }}px). Portretgeoriënteerde video's word nie toegelaat nie.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Die videolêer is korrup.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Die video bevat veelvuldige strome. Slegs een stroom word toegelaat.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Nie-ondersteunde videokodek "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Nie-ondersteunde videohouer "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Die beeldlêer is beskadig.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Die beeld het te min pixels ({{ pixels }}). Minimum hoeveelheid verwag is {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Die beeld het te veel pixels ({{ pixels }}). Maksimum verwagte aantal is {{ max_pixels }} pixels.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Hierdie lêernaam stem nie ooreen met die verwagte karakterstel nie.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ar.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ar.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ar.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ar.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>يجب ألا تكون هذه القيمة بعد الأسبوع "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>هذه القيمة ليست رمزا صالحا.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>هذه القيمة ليست نموذج Twig صالح.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>هذا الملف غير صالح كفيديو.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>تعذّر تحديد حجم الفيديو.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>عرض الفيديو كبير جدًا ({{ width }}px). الحد الأقصى المسموح للعرض هو {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>عرض الفيديو صغير جدًا ({{ width }}px). العرض الأدنى المتوقع هو {{ min_width }} بكسل.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>ارتفاع الفيديو كبير جدًا ({{ height }}px). الحد الأقصى المسموح للارتفاع هو {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>ارتفاع الفيديو صغير جدًا ({{ height }} بكسل). الارتفاع الأدنى المتوقع هو {{ min_height }} بكسل.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>الفيديو منخفض الجودة جداً ({{ pixels }} بكسل). الحد الأدنى المتوقع هو {{ min_pixels }} بكسل.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>دقة الفيديو مرتفعة جداً ({{ pixels }} بكسل). الحد الأقصى المتوقع هو {{ max_pixels }} بكسل.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>نسبة أبعاد الفيديو كبيرة جدًا ({{ ratio }}). أعلى نسبة متوقعة هي {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>نسبة أبعاد الفيديو صغيرة جدًا ({{ ratio }}). أقل نسبة متوقعة هي {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>الفيديو مربع ({{ width }}x{{ height }}px). مقاطع الفيديو ذات الشكل المربع غير مسموح بها.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>الفيديو بوضعية أفقية ({{ width }}x{{ height }} بكسل). مقاطع الفيديو الأفقية غير مسموح بها.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>الفيديو ذو اتجاه عمودي ({{ width }}x{{ height }} بكسل). مقاطع الفيديو ذات الاتجاه العمودي غير مسموح بها.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>ملف الفيديو تالف.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>الفيديو يحتوي على عدة مسارات (صوت أو صورة)، ومسموح بمسار واحد فقط.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>الترميز المستخدم في الفيديو غير مدعوم. "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>ملف الفيديو بصيغة غير مدعومة "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>ملف الصورة تالف.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>الصورة منخفضة الجودة جدًا ({{ pixels }} بكسل)، و الحد الأدنى المتوقع: {{ min_pixels }} بكسل.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>جودة الصورة مرتفعة جدًا ({{ pixels }} بكسل). العدد الأقصى المتوقع هو {{ max_pixels }} بكسل.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>اسم الملف يحتوي على أحرف غير مسموح بها.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.az.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.az.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.az.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.az.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Bu dəyər etibarlı bir IP ünvanı deyil.</target>
+                <target>Bu dəyər etibarlı bir IP ünvanı deyil.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -192,7 +192,7 @@
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target state="needs-review-translation">php.ini-də müvəqqəti qovluq quraşdırılmayıb, və ya quraşdırılmış qovluq mövcud deyil.</target>
+                <target>php.ini-də müvəqqəti qovluq quraşdırılmayıb, və ya quraşdırılmış qovluq mövcud deyil.</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Bu dəyər etibarlı bir Beynəlxalq Bank Hesab Nömrəsi (IBAN) deyil.</target>
+                <target>Bu dəyər etibarlı bir Beynəlxalq Bank Hesab Nömrəsi (IBAN) deyil.</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Bu dəyər etibarlı bir Biznes Təyinat Kodu (BIC) deyil.</target>
+                <target>Bu dəyər etibarlı bir Biznes Təyinat Kodu (BIC) deyil.</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Bu dəyər etibarlı bir UUID deyil.</target>
+                <target>Bu dəyər etibarlı bir UUID deyil.</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -436,43 +436,123 @@
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target state="needs-review-translation">Bu dəyər etibarlı bir MAC ünvanı deyil.</target>
+                <target>Bu dəyər etibarlı bir MAC ünvanı deyil.</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Bu URL yuxarı səviyyəli domeni çatışmır.</target>
+                <target>Bu URL yuxarı səviyyəli domeni çatışmır.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Bu dəyər çox qısadır. Heç olmasa bir söz daxil etməlisiniz.|Bu dəyər çox qısadır. Heç olmasa {{ min }} söz daxil etməlisiniz.</target>
+                <target>Bu dəyər çox qısadır. Heç olmasa bir söz daxil etməlisiniz.|Bu dəyər çox qısadır. Heç olmasa {{ min }} söz daxil etməlisiniz.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Bu dəyər çox uzundur. Yalnız bir söz daxil etməlisiniz.|Bu dəyər çox uzundur. {{ max }} və ya daha az söz daxil etməlisiniz.</target>
+                <target>Bu dəyər çox uzundur. Yalnız bir söz daxil etməlisiniz.|Bu dəyər çox uzundur. {{ max }} və ya daha az söz daxil etməlisiniz.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Bu dəyər ISO 8601 formatında etibarlı bir həftəni təmsil etmir.</target>
+                <target>Bu dəyər ISO 8601 formatında etibarlı bir həftəni təmsil etmir.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Bu dəyər etibarlı bir həftə deyil.</target>
+                <target>Bu dəyər etibarlı bir həftə deyil.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Bu dəyər "{{ min }}" həftəsindən əvvəl olmamalıdır.</target>
+                <target>Bu dəyər "{{ min }}" həftəsindən əvvəl olmamalıdır.</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Bu dəyər "{{ max }}" həftəsindən sonra olmamalıdır.</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Bu dəyər etibarlı slug deyil.</target>
+                <target>Bu dəyər "{{ max }}" həftəsindən sonra olmamalıdır.</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Bu dəyər etibarlı Twig şablonu deyil.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Bu fayl etibarlı video deyil.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Videonun ölçüsünü təyin etmək mümkün olmadı.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Video enliyi çox böyükdür ({{ width }}px). İcazə verilən maksimal enlik {{ max_width }}px-dir.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Video eni çox kiçikdir ({{ width }}px). Gözlənilən minimum en {{ min_width }}px-dir.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Video hündürlüyü çox böyükdür ({{ height }}px). İcazə verilən maksimum hündürlük {{ max_height }}px-dir.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Videonun hündürlüyü çox kiçikdir ({{ height }}px). Gözlənilən minimum hündürlük {{ min_height }}px-dir.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videoda piksellərin sayı çox azdır ({{ pixels }}). Gözlənilən minimum miqdar {{ min_pixels }}-dir.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videoda həddindən artıq piksel var ({{ pixels }}). Gözlənilən maksimum miqdar {{ max_pixels }}-dir.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Video nisbəti çox böyükdür ({{ ratio }}). İcazə verilən maksimal nisbət {{ max_ratio }}‑dir.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Video nisbəti çox kiçikdir ({{ ratio }}). Gözlənilən minimal nisbət {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Video kvadratdır ({{ width }}x{{ height }}px). Kvadrat videolara icazə verilmir.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Video üfiqi istiqamətdədir ({{ width }}x{{ height }} piksel). Üfiqi videolara icazə verilmir.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Video portret istiqamətindədir ({{ width }}x{{ height }} piksel). Portret istiqamətli videolara icazə verilmir.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Video faylı zədələnib.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Video bir neçə axın ehtiva edir. Yalnız bir axına icazə verilir.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Dəstəklənməyən video kodeki "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Dəstəklənməyən video konteyneri "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Şəkil faylı korlanıb.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Şəkildə piksel sayı çox azdır ({{ pixels }}). Gözlənilən minimum miqdar {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Şəkildə çox piksel var ({{ pixels }}). Gözlənilən maksimum say {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Bu fayl adı gözlənilən simvol dəstinə uyğun gəlmir.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.be.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.be.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.be.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.be.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
             </trans-unit>
             <trans-unit id="5">
                 <source>The value you selected is not a valid choice.</source>
-                <target>Абранае вамі значэнне не сапраўднае.</target>
+                <target>Выбранае вамі значэнне не з’яўляецца сапраўдным.</target>
             </trans-unit>
             <trans-unit id="6">
                 <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
@@ -32,7 +32,7 @@
             </trans-unit>
             <trans-unit id="8">
                 <source>One or more of the given values is invalid.</source>
-                <target>Адзін або некалькі пазначаных значэнняў з'яўляецца несапраўдным.</target>
+                <target>Адно або некалькі з зададзеных значэнняў не з’яўляюцца сапраўднымі.</target>
             </trans-unit>
             <trans-unit id="9">
                 <source>This field was not expected.</source>
@@ -76,15 +76,15 @@
             </trans-unit>
             <trans-unit id="19">
                 <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Значэнне занадта доўгае. Яно павінна мець {{ limit }} сімвал або менш.|Значэнне занадта доўгае. Яно павінна мець {{ limit }} сімвалаў або менш.</target>
+                <target>Значэнне занадта доўгае. Яно павінна мець не больш за {{ limit }} сімвал.|Значэнне занадта доўгае. Яно павінна мець не больш за {{ limit }} сімвалаў.</target>
             </trans-unit>
             <trans-unit id="20">
                 <source>This value should be {{ limit }} or more.</source>
-                <target>Значэнне павінна быць {{ limit }} або больш.</target>
+                <target>Значэнне павінна быць не менш за {{ limit }}.</target>
             </trans-unit>
             <trans-unit id="21">
                 <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Значэнне занадта кароткае. Яно павінна мець прынамсі {{ limit }} сімвал.|Значэнне занадта кароткае. Яно павінна мець прынамсі {{ limit }} сімвалаў.</target>
+                <target>Значэнне занадта кароткае. Яно павінна мець не менш за {{ limit }} сімвал.|Значэнне занадта кароткае. Яно павінна мець не менш за {{ limit }} сімвалаў.</target>
             </trans-unit>
             <trans-unit id="22">
                 <source>This value should not be blank.</source>
@@ -100,7 +100,7 @@
             </trans-unit>
             <trans-unit id="25">
                 <source>This value is not valid.</source>
-                <target>Значэнне з'яўляецца не сапраўдным.</target>
+                <target>Значэнне не з'яўляецца сапраўдным.</target>
             </trans-unit>
             <trans-unit id="26">
                 <source>This value is not a valid time.</source>
@@ -112,7 +112,7 @@
             </trans-unit>
             <trans-unit id="31">
                 <source>The two values should be equal.</source>
-                <target>Абодва значэнні павінны быць аднолькавымі.</target>
+                <target>Абодва значэнні павінны супадаць.</target>
             </trans-unit>
             <trans-unit id="32">
                 <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
@@ -136,11 +136,11 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Гэта значэнне не з'яўляецца сапраўдным IP-адрасам.</target>
+                <target>Гэта значэнне не з'яўляецца сапраўдным IP-адрасам.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
-                <target>Значэнне не з'яўляецца сапраўдным мовай.</target>
+                <target>Значэнне не з'яўляецца сапраўднай мовай.</target>
             </trans-unit>
             <trans-unit id="39">
                 <source>This value is not a valid locale.</source>
@@ -168,11 +168,11 @@
             </trans-unit>
             <trans-unit id="45">
                 <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Гэты выява занадта вялікая ({{ width }}px). Дазваляецца максімальная вышыня {{ max_width }}px.</target>
+                <target>Гэтая выява занадта высокая ({{ height }}px). Дазваляецца максімальная вышыня — {{ max_height }}px.</target>
             </trans-unit>
             <trans-unit id="46">
                 <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Гэта выява занадта маленькая ({{ width }}px). Дазваляецца мінімальная вышыня {{ min_width }}px.</target>
+                <target>Гэтая выява занадта нізкая ({{ height }}px). Дазваляецца мінімальная вышыня — {{ min_height }}px.</target>
             </trans-unit>
             <trans-unit id="47">
                 <source>This value should be the user's current password.</source>
@@ -204,11 +204,11 @@
             </trans-unit>
             <trans-unit id="54">
                 <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Калекцыя павінна змяшчаць прынамсі {{ limit }} элемент.|Калекцыя павінна змяшчаць прынамсі {{ limit }} элементаў.</target>
+                <target>Калекцыя павінна змяшчаць не менш за {{ limit }} элемент.|Калекцыя павінна змяшчаць не менш за {{ limit }} элементаў.</target>
             </trans-unit>
             <trans-unit id="55">
                 <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Калекцыя павінна змяшчаць {{ limit }} або менш элемент.|Калекцыя павінна змяшчаць {{ limit }} або менш элементаў.</target>
+                <target>Калекцыя павінна змяшчаць не больш за {{ limit }} элемент.|Калекцыя павінна змяшчаць не больш за {{ limit }} элементаў.</target>
             </trans-unit>
             <trans-unit id="56">
                 <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Гэта значэнне не з'яўляецца сапраўдным міжнародным нумарам банкаўскага рахунку (IBAN).</target>
+                <target>Гэта значэнне не з'яўляецца сапраўдным міжнародным нумарам банкаўскага рахунку (IBAN).</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -236,7 +236,7 @@
             </trans-unit>
             <trans-unit id="62">
                 <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Гэта значэнне не з'яўляецца сапраўдным ISBN-10 або ISBN-13.</target>
+                <target>Гэта значэнне не з'яўляецца ні сапраўдным ISBN-10, ні сапраўдным ISBN-13.</target>
             </trans-unit>
             <trans-unit id="63">
                 <source>This value is not a valid ISSN.</source>
@@ -252,11 +252,11 @@
             </trans-unit>
             <trans-unit id="66">
                 <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Значэнне павінна быць больш чым {{ compared_value }}.</target>
+                <target>Значэнне павінна быць больш за {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="67">
                 <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Значэнне павінна быць больш чым або раўняцца {{ compared_value }}.</target>
+                <target>Значэнне павінна быць больш за або роўнае {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="68">
                 <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
@@ -264,11 +264,11 @@
             </trans-unit>
             <trans-unit id="69">
                 <source>This value should be less than {{ compared_value }}.</source>
-                <target>Значэнне павінна быць менш чым {{ compared_value }}.</target>
+                <target>Значэнне павінна быць менш за {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="70">
                 <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Значэнне павінна быць менш чым або раўняцца {{ compared_value }}.</target>
+                <target>Значэнне павінна быць менш за або роўнае {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="71">
                 <source>This value should not be equal to {{ compared_value }}.</source>
@@ -280,11 +280,11 @@
             </trans-unit>
             <trans-unit id="73">
                 <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Суадносіны бакоў выявы з'яўляецца занадта вялікім ({{ ratio }}). Дазваляецца максімальныя суадносіны {{max_ratio}} .</target>
+                <target>Суадносіны бакоў выявы занадта вялікія ({{ ratio }}). Дазваляецца максімальныя суадносіны {{max_ratio}} .</target>
             </trans-unit>
             <trans-unit id="74">
                 <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Суадносіны бакоў выявы з'яўляецца занадта маленькімі ({{ ratio }}). Дазваляецца мінімальныя суадносіны {{ min_ratio }}.</target>
+                <target>Суадносіны бакоў выявы занадта малыя ({{ ratio }}). Дазваляецца мінімальныя суадносіны {{ min_ratio }}.</target>
             </trans-unit>
             <trans-unit id="75">
                 <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
@@ -304,7 +304,7 @@
             </trans-unit>
             <trans-unit id="79">
                 <source>The host could not be resolved.</source>
-                <target>Не магчыма знайсці імя хоста.</target>
+                <target>Не магчыма вызначыць імя хоста.</target>
             </trans-unit>
             <trans-unit id="80">
                 <source>This value does not match the expected {{ charset }} charset.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Гэта значэнне не з'яўляецца сапраўдным кодам ідэнтыфікацыі бізнесу (BIC).</target>
+                <target>Гэта значэнне не з'яўляецца сапраўдным кодам ідэнтыфікацыі банка (BIC).</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Гэта значэнне не з'яўляецца сапраўдным UUID.</target>
+                <target>Гэта значэнне не з'яўляецца сапраўдным UUID.</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -344,7 +344,7 @@
             </trans-unit>
             <trans-unit id="89">
                 <source>This value should be either positive or zero.</source>
-                <target>Значэнне павінна быць дадатным ці нуль.</target>
+                <target>Значэнне павінна быць або дадатным, або роўным нулю.</target>
             </trans-unit>
             <trans-unit id="90">
                 <source>This value should be negative.</source>
@@ -352,7 +352,7 @@
             </trans-unit>
             <trans-unit id="91">
                 <source>This value should be either negative or zero.</source>
-                <target>Значэнне павінна быць адмоўным ці нуль.</target>
+                <target>Значэнне павінна быць або адмоўным, або роўным нулю.</target>
             </trans-unit>
             <trans-unit id="92">
                 <source>This value is not a valid timezone.</source>
@@ -368,11 +368,11 @@
             </trans-unit>
             <trans-unit id="95">
                 <source>This value is not a valid hostname.</source>
-                <target>Значэнне не з'яўляецца карэктным імем хаста.</target>
+                <target>Значэнне не з'яўляецца сапраўднай/карэктнай назвай хоста.</target>
             </trans-unit>
             <trans-unit id="96">
                 <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source>
-                <target>Колькасць элементаў у гэтай калекцыі павінна быць кратным {{compared_value}}.</target>
+                <target>Колькасць элементаў у гэтай калекцыі павінна быць кратнай {{compared_value}}.</target>
             </trans-unit>
             <trans-unit id="97">
                 <source>This value should satisfy at least one of the following constraints:</source>
@@ -388,7 +388,7 @@
             </trans-unit>
             <trans-unit id="100">
                 <source>This value should be a valid expression.</source>
-                <target>Значэнне не з'яўляецца сапраўдным выразам.</target>
+                <target>Значэнне павінна быць сапраўдным выразам.</target>
             </trans-unit>
             <trans-unit id="101">
                 <source>This value is not a valid CSS color.</source>
@@ -404,7 +404,7 @@
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target>Назва файла занадта доўгая. Ён павінен мець {{ filename_max_length }} сімвал або менш.|Назва файла занадта доўгая. Ён павінен мець {{ filename_max_length }} сімвалы або менш.|Назва файла занадта доўгая. Ён павінен мець {{ filename_max_length }} сімвалаў або менш.</target>
+                <target>Назва файла занадта доўгая. Яна павинна мець {{ filename_max_length }} сімвал або менш.|Назва файла занадта доўгая. Яна павінна мець {{ filename_max_length }} сімвалы або менш.|Назва файла занадта доўгая. Яна павінна мець {{ filename_max_length }} сімвалаў або менш.</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
@@ -420,7 +420,7 @@
             </trans-unit>
             <trans-unit id="108">
                 <source>Mixing numbers from different scripts is not allowed.</source>
-                <target>Змешванне лікаў з розных алфавітаў не дапускаецца.</target>
+                <target>Змешванне лічбаў з розных алфавітаў не дапускаецца.</target>
             </trans-unit>
             <trans-unit id="109">
                 <source>Using hidden overlay characters is not allowed.</source>
@@ -428,51 +428,131 @@
             </trans-unit>
             <trans-unit id="110">
                 <source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
-                <target state="needs-review-translation">Пашырэнне файла няслушнае ({{ extension }}). Дазволеныя пашырэнні: {{ extensions }}.</target>
+                <target>Пашырэнне файла недапушчальнае ({{ extension }}). Дазволеныя пашырэнні: {{ extensions }}.</target>
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
-                <target state="needs-review-translation">Выяўленая кадыроўка знакаў няслушная ({{ detected }}). Дазволеныя кадыроўкі: {{ encodings }}.</target>
+                <target>Выяўленая кадзіроўка недапушчальная ({{ detected }}). Дазволеныя кадзіроўкі: {{ encodings }}.</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target state="needs-review-translation">Гэта значэнне не з'яўляецца сапраўдным MAC-адрасам.</target>
+                <target>Гэта значэнне не з'яўляецца сапраўдным MAC-адрасам.</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Гэтаму URL бракуе дамен верхняга ўзроўню.</target>
+                <target>У гэтым URL няма дамена верхняга ўзроўню.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Гэта значэнне занадта кароткае. Яно павінна ўтрымліваць хаця б адно слова.|Гэта значэнне занадта кароткае. Яно павінна ўтрымліваць хаця б {{ min }} словы.</target>
+                <target>Гэта значэнне занадта кароткае. Яно павінна ўтрымліваць хаця б адно слова.|Гэта значэнне занадта кароткае. Яно павінна ўтрымліваць хаця б {{ min }} слоў.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Гэта значэнне занадта доўгае. Яно павінна ўтрымліваць адно слова.|Гэта значэнне занадта доўгае. Яно павінна ўтрымліваць {{ max }} словы або менш.</target>
+                <target>Гэта значэнне занадта доўгае. Яно павінна ўтрымліваць адно слова.|Гэта значэнне занадта доўгае. Яно павінна ўтрымліваць {{ max }} слоў або менш.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Гэта значэнне не адпавядае правільнаму тыдні ў фармаце ISO 8601.</target>
+                <target>Гэта значэнне не адпавядае сапраўднаму тыдню ў фармаце ISO 8601.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Гэта значэнне не з'яўляецца сапраўдным тыднем.</target>
+                <target>Гэта значэнне не з'яўляецца сапраўдным тыднем.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Гэта значэнне не павінна быць раней за тыдзень "{{ min }}".</target>
+                <target>Гэта значэнне не павінна быць раней за тыдзень "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Гэта значэнне не павінна быць пасля тыдня "{{ max }}".</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Гэта значэнне не з'яўляецца сапраўдным слугам.</target>
+                <target>Гэта значэнне не павінна быць пасля тыдня "{{ max }}".</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Гэта значэнне не з'яўляецца сапраўдным шаблонам Twig.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Гэты файл не з'яўляецца сапраўдным відэа.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Не ўдалося вызначыць памер відэа.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Шырыня відэа занадта вялікая ({{ width }}px). Дапушчальная максімальная шырыня — {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Шырыня відэа занадта малая ({{ width }}px). Мінімальная чаканая шырыня — {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Вышыня відэа занадта вялікая ({{ height }}px). Дазволеная максімальная вышыня — {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Вышыня відэа занадта малая ({{ height }}px). Чаканая мінімальная вышыня — {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Відэа мае занадта мала пікселяў ({{ pixels }}). Мінімальная колькасць чакаецца {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Відэа мае занадта шмат пікселяў ({{ pixels }}). Максімальна дапушчальная колькасць — {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Суадносіны відэа занадта вялікія ({{ ratio }}). Дапушчальнае максімальнае суадносіна — {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Суадносіны відэа занадта малыя ({{ ratio }}). Мінімальнае чаканае суадносіна — {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Відэа квадратнае ({{ width }}x{{ height }}px). Квадратныя відэа не дазваляюцца.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Відэа ў ландшафтнай арыентацыі ({{ width }}x{{ height }} px). Ландшафтныя відэа не дазваляюцца.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Відэа ў партрэтнай арыентацыі ({{ width }}x{{ height }}px). Відэа ў партрэтнай арыентацыі не дазваляюцца.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Відэафайл пашкоджаны.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Відэа змяшчае некалькі патокаў. Дазволены толькі адзін паток.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Непадтрымліваемы відэакодэк «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Непадтрымліваемы кантэйнер відэа "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Файл выявы пашкоджаны.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>У выяве занадта мала пікселяў ({{ pixels }}). Мінімальная колькасць — {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Малюнак мае занадта шмат пікселяў ({{ pixels }}). Максімальная дапушчальная колькасць {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Гэта назва файла не адпавядае чаканаму набору знакаў.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -444,35 +444,115 @@
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Тази стойност е твърде кратка. Трябва да съдържа поне една дума.|Тази стойност е твърде кратка. Трябва да съдържа поне {{ min }} думи.</target>
+                <target>Стойността е твърде кратка. Трябва да съдържа поне една дума.|Стойността е твърде кратка. Трябва да съдържа поне {{ min }} думи.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Тази стойност е твърде дълга. Трябва да съдържа само една дума.|Тази стойност е твърде дълга. Трябва да съдържа {{ max }} думи или по-малко.</target>
+                <target>Стойността е твърде дълга. Трябва да съдържа само една дума.|Стойността е твърде дълга. Трябва да съдържа {{ max }} думи или по-малко.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Тази стойност не представлява валидна седмица във формат ISO 8601.</target>
+                <target>Тази стойност не представлява валидна седмица във формат ISO 8601.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Тази стойност не е валидна седмица.</target>
+                <target>Тази стойност не е валидна седмица.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Тази стойност не трябва да бъде преди седмица "{{ min }}".</target>
+                <target>Стойността не трябва да бъде преди седмица "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Тази стойност не трябва да бъде след седмица "{{ max }}".</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Тази стойност не е валиден слаг.</target>
+                <target>Тази стойност не трябва да бъде след седмица "{{ max }}".</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Тази стойност не е валиден Twig шаблон.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Този файл не е валидно видео.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Размерът на видеото не може да бъде установен.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Ширината на видеото е твърде голяма ({{ width }}px). Допустимата максимална ширина е {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Ширината на видеото е твърде малка ({{ width }}px). Минималната изисквана ширина е {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Височината на видеото е твърде голяма ({{ height }}px). Максимално допустимата височина е {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Височината на видеото е твърде малка ({{ height }}px). Очакваната минимална височина е {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Видеото има твърде малко пиксели ({{ pixels }}). Минимално изискуемото количество е {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Видеото има твърде много пиксели ({{ pixels }}). Максималният допустим брой е {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Съотношението на видеото е твърде голямо ({{ ratio }}). Позволеното максимално съотношение е {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Съотношението на видеото е твърде малко ({{ ratio }}). Минималното очаквано съотношение е {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Видеото е квадратно ({{ width }}x{{ height }}px). Квадратни видеа не са позволени.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Видеото е в хоризонтална ориентация ({{ width }}x{{ height }}px). Хоризонтални видеа не са позволени.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Видеото е с портретна ориентация ({{ width }}x{{ height }}px). Видеа с портретна ориентация не са позволени.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Видеофайлът е повреден.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Видеото съдържа множество потоци. Разрешен е само един поток.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Неподдържан видео кодек „{{ codec }}“.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Неподдържан видео контейнер "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Файлът с изображение е повреден.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Изображението има твърде малко пиксели ({{ pixels }}). Минималният изискуем брой е {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Изображението има твърде много пиксели ({{ pixels }}). Максималният допустим брой е {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Името на файла не съответства на очаквания набор от знаци.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.bs.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.bs.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.bs.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.bs.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target state="needs-review-translation">Ova vrijednost ne bi trebala biti nakon sedmice "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Ova vrijednost nije važeći slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">Ova vrijednost nije važeći Twig šablon.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">Ova datoteka nije važeći video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">Veličina videa nije mogla biti utvrđena.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">Širina videa je prevelika ({{ width }}px). Dozvoljena maksimalna širina je {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">Širina videa je premala ({{ width }}px). Minimalna očekivana širina je {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">Visina videa je prevelika ({{ height }}px). Dozvoljena maksimalna visina je {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">Visina videa je premala ({{ height }}px). Očekivana minimalna visina je {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Video ima premalo piksela ({{ pixels }}). Očekivana minimalna količina je {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Video ima previše piksela ({{ pixels }}). Očekivana maksimalna količina je {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">Omjer videa je prevelik ({{ ratio }}). Dozvoljeni maksimalni omjer je {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">Omjer videa je premali ({{ ratio }}). Minimalni očekivani omjer je {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">Video je kvadratan ({{ width }}x{{ height }}px). Kvadratni video zapisi nisu dozvoljeni.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Video je vodoravne orijentacije ({{ width }}x{{ height }} px). Vodoravni video zapisi nisu dozvoljeni.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Video je uspravno orijentisan ({{ width }}x{{ height }}px). Video zapisi uspravne orijentacije nisu dozvoljeni.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">Video datoteka je oštećena.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">Video sadrži više tokova. Dozvoljen je samo jedan tok.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">Nepodržani video kodek "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">Nepodržani video kontejner "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">Datoteka slike je oštećena.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Slika ima premalo piksela ({{ pixels }}). Očekivani minimalni broj je {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Slika ima previše piksela ({{ pixels }}). Očekivani maksimalni broj je {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">Naziv ove datoteke ne odgovara očekivanom skupu znakova.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ca.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ca.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ca.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ca.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Aquest valor no ha de ser posterior a la setmana "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Aquest valor no és un slug vàlid.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Aquest valor no és una plantilla Twig vàlida.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Aquest fitxer no és un vídeo vàlid.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>No s'ha pogut detectar la mida del vídeo.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>L'amplada del vídeo és massa gran ({{ width }}px). L'amplada màxima permesa és {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>L'amplada del vídeo és massa petita ({{ width }}px). L'amplada mínima esperada és {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>L'altura del vídeo és massa gran ({{ height }}px). L'altura màxima permesa és {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>L'altura del vídeo és massa petita ({{ height }}px). L'altura mínima esperada és {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>El vídeo no té suficients píxels ({{ pixels }}). La quantitat mínima esperada és {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>El vídeo té massa píxels ({{ pixels }}). La quantitat màxima prevista és {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>La relació del vídeo és massa gran ({{ ratio }}). La relació màxima permesa és {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>La relació del vídeo és massa petita ({{ ratio }}). La relació mínima esperada és {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>El vídeo és quadrat ({{ width }}x{{ height }}px). No es permeten vídeos quadrats.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>El vídeo té orientació horitzontal ({{ width }}x{{ height }} px). No es permeten vídeos horitzontals.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>El vídeo és en orientació vertical ({{ width }}x{{ height }} px). No es permeten vídeos en orientació vertical.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>El fitxer de vídeo està espatllat.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>El vídeo conté diversos fluxos. Només es permet un sol flux.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Còdec de vídeo incompatible «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Contenidor de vídeo incompatible "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>El fitxer d'imatge està espatllat.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>La imatge no té suficients píxels ({{ pixels }}). La quantitat mínima esperada és {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>La imatge té massa píxels ({{ pixels }}). El nombre màxim esperat és {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Aquest nom de fitxer no coincideix amb el charset esperat.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -160,19 +160,19 @@
             </trans-unit>
             <trans-unit id="43">
                 <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Obrázek je příliš široký ({{ width }}px). Maximální povolená šířka obrázku je {{ max_width }}px.</target>
+                <target>Obrázek je příliš široký ({{ width }}px). Maximální povolená šířka je {{ max_width }}px.</target>
             </trans-unit>
             <trans-unit id="44">
                 <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Obrázek je příliš úzký ({{ width }}px). Minimální šířka musí být {{ min_width }}px.</target>
+                <target>Obrázek je příliš úzký ({{ width }}px). Minimální očekávaná šířka je {{ min_width }}px.</target>
             </trans-unit>
             <trans-unit id="45">
                 <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Obrázek je příliš vysoký ({{ height }}px). Maximální povolená výška obrázku je {{ max_height }}px.</target>
+                <target>Obrázek je příliš vysoký ({{ height }}px). Maximální povolená výška je {{ max_height }}px.</target>
             </trans-unit>
             <trans-unit id="46">
                 <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Obrázek je příliš nízký ({{ height }}px). Minimální výška obrázku musí být {{ min_height }}px.</target>
+                <target>Obrázek je příliš nízký ({{ height }}px). Minimální očekávaná výška je {{ min_height }}px.</target>
             </trans-unit>
             <trans-unit id="47">
                 <source>This value should be the user's current password.</source>
@@ -280,15 +280,15 @@
             </trans-unit>
             <trans-unit id="73">
                 <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Poměr stran obrázku je příliš velký ({{ ratio }}). Maximální povolený poměr stran obrázku je {{ max_ratio }}.</target>
+                <target>Poměr stran obrázku je příliš velký ({{ ratio }}). Maximální povolený poměr stran je {{ max_ratio }}.</target>
             </trans-unit>
             <trans-unit id="74">
                 <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Poměr stran obrázku je příliš malý ({{ ratio }}). Minimální povolený poměr stran obrázku je {{ min_ratio }}.</target>
+                <target>Poměr stran obrázku je příliš malý ({{ ratio }}). Minimální očekávaný poměr stran je {{ min_ratio }}.</target>
             </trans-unit>
             <trans-unit id="75">
                 <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Strany obrázku jsou čtvercové ({{ width }}x{{ height }}px). Čtvercové obrázky nejsou povolené.</target>
+                <target>Obrázek je čtvercový ({{ width }}x{{ height }}px). Čtvercové obrázky nejsou povolené.</target>
             </trans-unit>
             <trans-unit id="76">
                 <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Tato hodnota by neměla být týden za "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Tato hodnota není platný slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Tato hodnota není platná Twig šablona.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Tento soubor není video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Nepodařily se zjistit rozměry videa.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Video je příliš široké ({{ width }}px). Maximální povolená šířka je {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Video je příliš úzké ({{ width }}px). Minimální očekávaná šířka je {{ min_width }} px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Video je příliš vysoké ({{ height }}px). Maximální povolená výška je {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Video je příliš nízké ({{ height }}px). Minimální očekávaná výška je {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Video má příliš málo pixelů ({{ pixels }} pixelů). Minimální očekávané množství je {{ min_pixels }} pixelů.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Video má příliš mnoho pixelů ({{ pixels }} pixelů). Maximální očekávané množství je {{ max_pixels }} pixelů.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Poměr stran videa je příliš velký ({{ ratio }}). Maximální povolený poměr stran je {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Poměr stran videa je příliš malý ({{ ratio }}). Minimální očekávaný poměr stran je {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Video je čtvercové ({{ width }}x{{ height }}px). Čtvercová videa nejsou povolená.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Video je orientované na šířku ({{ width }}x{{ height }} px). Videa orientovaná na šířku nejsou povolená.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Video je orientované na výšku ({{ width }}x{{ height }} px). Videa orientovaná na výšku nejsou povolená.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Soubor videa je poškozený.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Video obsahuje více proudů. Povolen je pouze jeden proud.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Nepodporovaný kodek videa "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Nepodporovaný kontejner videa "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Soubor obrázku je poškozený.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Obrázek má příliš málo pixelů ({{ pixels }} pixelů). Minimální očekávané množství je {{ min_pixels }} pixelů.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Obrázek má příliš mnoho pixelů ({{ pixels }} pixelů). Maximální očekávané množství je {{ max_pixels }} pixelů.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Tento název souboru neodpovídá očekávané znakové sadě.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.cy.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.cy.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.cy.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.cy.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target state="needs-review-translation">Ni ddylai'r gwerth hwn fod ar ôl yr wythnos "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Nid yw'r gwerth hwn yn slug dilys.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">Nid yw'r gwerth hwn yn dempled Twig dilys.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">Nid yw’r ffeil hon yn fideo dilys.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">Nid oedd modd canfod maint y fideo.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">Mae lled y fideo yn rhy fawr ({{ width }}px). Y lled uchaf a ganiateir yw {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">Mae lled y fideo yn rhy fach ({{ width }}px). Lled lleiaf disgwyliedig yw {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">Mae uchder y fideo yn rhy fawr ({{ height }}px). Yr uchder mwyaf a ganiateir yw {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">Mae uchder y fideo yn rhy fach ({{ height }}px). Yr uchder lleiaf disgwyliedig yw {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Mae gan y fideo rhy ychydig o bicseli ({{ pixels }}). Y swm lleiaf disgwyliedig yw {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Mae gan y fideo ormod o bicseli ({{ pixels }}). Y swm uchaf disgwyliedig yw {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">Mae cymhareb y fideo yn rhy fawr ({{ ratio }}). Y gymhareb uchaf a ganiateir yw {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">Mae cymhareb y fideo yn rhy fach ({{ ratio }}). Y gymhareb leiaf ddisgwyliedig yw {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">Mae'r fideo'n sgwâr ({{ width }}x{{ height }}px). Nid yw fideos sgwâr yn cael eu caniatáu.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Mae’r fideo yn dirwedd ({{ width }}x{{ height }} px). Ni chaniateir fideos tirwedd.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Mae'r fideo wedi'i gyfeirio'n bortread ({{ width }}x{{ height }}px). Nid yw fideos portread yn cael eu caniatáu.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">Mae'r ffeil fideo wedi'i llygru.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">Mae'r fideo yn cynnwys sawl ffrwd. Dim ond un ffrwd a ganiateir.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">Codec fideo heb ei gefnogi "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">Cynhwysydd fideo heb ei gefnogi "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">Mae'r ffeil delwedd wedi'i llygru.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Mae gan y ddelwedd rhy ychydig o bicseli ({{ pixels }}). Y lleiafswm disgwyliedig yw {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Mae gan y ddelwedd ormod o bicseli ({{ pixels }}). Y nifer uchaf disgwyliedig yw {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">Nid yw'r enw ffeil hwn yn cyfateb i'r set nodau ddisgwyliedig.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.da.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.da.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.da.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.da.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Denne værdi er ikke en gyldig IP-adresse.</target>
+                <target>Denne værdi er ikke en gyldig IP-adresse.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -192,7 +192,7 @@
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target state="needs-review-translation">Der blev ikke konfigureret en midlertidig mappe i php.ini, eller den konfigurerede mappe eksisterer ikke.</target>
+                <target>Der blev ikke konfigureret en midlertidig mappe i php.ini, eller den konfigurerede mappe eksisterer ikke.</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Denne værdi er ikke et gyldigt internationalt bankkontonummer (IBAN).</target>
+                <target>Denne værdi er ikke et gyldigt internationalt bankkontonummer (IBAN).</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Denne værdi er ikke en gyldig forretningsidentifikationskode (BIC).</target>
+                <target>Denne værdi er ikke en gyldig forretningsidentifikationskode (BIC).</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Denne værdi er ikke en gyldig UUID.</target>
+                <target>Denne værdi er ikke en gyldig UUID.</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -436,43 +436,123 @@
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target state="needs-review-translation">Denne værdi er ikke en gyldig MAC-adresse.</target>
+                <target>Denne værdi er ikke en gyldig MAC-adresse.</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Denne URL mangler et topdomæne.</target>
+                <target>Denne URL mangler et topdomæne.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Denne værdi er for kort. Den skal indeholde mindst ét ord.|Denne værdi er for kort. Den skal indeholde mindst {{ min }} ord.</target>
+                <target>Denne værdi er for kort. Den skal indeholde mindst ét ord.|Denne værdi er for kort. Den skal indeholde mindst {{ min }} ord.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Denne værdi er for lang. Den skal indeholde ét ord.|Denne værdi er for lang. Den skal indeholde {{ max }} ord eller færre.</target>
+                <target>Denne værdi er for lang. Den skal indeholde ét ord.|Denne værdi er for lang. Den skal indeholde {{ max }} ord eller færre.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Denne værdi repræsenterer ikke en gyldig uge i ISO 8601-formatet.</target>
+                <target>Denne værdi repræsenterer ikke en gyldig uge i ISO 8601-formatet.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Denne værdi er ikke en gyldig uge.</target>
+                <target>Denne værdi er ikke en gyldig uge.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Denne værdi bør ikke være før uge "{{ min }}".</target>
+                <target>Denne værdi bør ikke være før uge "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Denne værdi bør ikke være efter uge "{{ max }}".</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Denne værdi er ikke en gyldig slug.</target>
+                <target>Denne værdi bør ikke være efter uge "{{ max }}".</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Denne værdi er ikke en gyldig Twig-skabelon.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Denne fil er ikke en gyldig video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Videostørrelsen kunne ikke registreres.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Videobredden er for stor ({{ width }}px). Tilladt maksimal bredde er {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Videobredden er for lille ({{ width }}px). Mindste forventede bredde er {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Videoens højde er for stor ({{ height }}px). Tilladt maksimal højde er {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Videoens højde er for lille ({{ height }}px). Forventet minimumshøjde er {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videoen har for få pixels ({{ pixels }}). Forventet minimum er {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videoen har for mange pixels ({{ pixels }}). Forventet maksimummængde er {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Videoforholdet er for stort ({{ ratio }}). Tilladt maksimalforhold er {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Videoforholdet er for lille ({{ ratio }}). Forventet minimumsforhold er {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Videoen er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske videoer er ikke tilladt.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Videoen er i liggende format ({{ width }}x{{ height }} px). Liggende videoer er ikke tilladt.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Videoen er i portrætformat ({{ width }}x{{ height }}px). Portrætvideoer er ikke tilladt.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Videofilen er beskadiget.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Videoen indeholder flere streams. Kun én stream er tilladt.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Ikke-understøttet videokodek "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Ikke-understøttet videocontainer "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Billedfilen er beskadiget.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Billedet har for få pixels ({{ pixels }}). Forventet minimum er {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Billedet har for mange pixels ({{ pixels }}). Forventet maksimalt antal er {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Dette filnavn matcher ikke det forventede tegnsæt.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,14 +466,94 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Dieser Wert darf nicht nach der Woche "{{ max }}" sein.</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Dieser Wert ist kein gültiger Slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
                 <target>Dieser Wert ist kein valides Twig-Template.</target>
             </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Diese Datei ist kein gültiges Video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Die Größe des Videos konnte nicht ermittelt werden.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Das Video ist zu breit ({{ width }}px). Die zulässige maximale Breite ist {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Das Video ist nicht breit genug ({{ width }}px). Die erwartete Mindestbreite ist {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Die Videohöhe ist zu hoch ({{ height }}px). Die zulässige maximale Höhe ist {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Die Videohöhe ist zu klein ({{ height }}px). Die erwartete Mindesthöhe ist {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Das Video hat zu wenige Pixel ({{ pixels }}). Die erwartete Mindestanzahl ist {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Das Video hat zu viele Pixel ({{ pixels }}). Die erwartete Höchstanzahl ist {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Das Video-Seitenverhältnis ist zu hoch ({{ ratio }}). Das zulässige maximale Verhältnis ist {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Das Video-Seitenverhältnis ist zu klein ({{ ratio }}). Das erwartete Mindestverhältnis ist {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Das Video ist quadratisch ({{ width }}x{{ height }}px). Quadratische Videos sind nicht erlaubt.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Das Video ist im Querformat ({{ width }}x{{ height }} px). Querformat-Videos sind nicht erlaubt.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Das Video ist hochkant ausgerichtet ({{ width }}x{{ height }}px). Hochkant-Videos sind nicht erlaubt.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Die Videodatei ist beschädigt.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Das Video enthält mehrere Streams. Es ist nur ein Stream erlaubt.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Nicht unterstützter Videocodec "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Nicht unterstützter Videocontainer "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Die Bilddatei ist beschädigt.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Das Bild hat zu wenige Pixel ({{ pixels }}). Erwartete Mindestanzahl ist {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Das Bild hat zu viele Pixel ({{ pixels }}). Erwartete Höchstanzahl ist {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Dieser Dateiname entspricht nicht dem erwarteten Zeichensatz.</target>
+            </trans-unit>
         </body>
     </file>
 </xliff>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.el.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.el.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.el.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.el.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -20,7 +20,7 @@
             </trans-unit>
             <trans-unit id="5">
                 <source>The value you selected is not a valid choice.</source>
-                <target>Η τιμή που επιλέχθηκε δεν αντιστοιχεί σε έγκυρη επιλογή.</target>
+                <target>Η τιμή που επιλέξατε δεν αντιστοιχεί σε έγκυρη επιλογή.</target>
             </trans-unit>
             <trans-unit id="6">
                 <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
@@ -40,19 +40,19 @@
             </trans-unit>
             <trans-unit id="10">
                 <source>This field is missing.</source>
-                <target>Λείπει αυτό το πεδίο.</target>
+                <target>Αυτό το πεδίο λείπει.</target>
             </trans-unit>
             <trans-unit id="11">
                 <source>This value is not a valid date.</source>
-                <target>Η τιμή δεν αντιστοιχεί σε έγκυρη ημερομηνία.</target>
+                <target>Αυτή τιμή δεν αντιστοιχεί σε έγκυρη ημερομηνία.</target>
             </trans-unit>
             <trans-unit id="12">
                 <source>This value is not a valid datetime.</source>
-                <target>Η τιμή δεν αντιστοιχεί σε έγκυρη ημερομηνία και ώρα.</target>
+                <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρη ημερομηνία και ώρα.</target>
             </trans-unit>
             <trans-unit id="13">
                 <source>This value is not a valid email address.</source>
-                <target>Η τιμή δεν αντιστοιχεί σε έγκυρο email.</target>
+                <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομίου.</target>
             </trans-unit>
             <trans-unit id="14">
                 <source>The file could not be found.</source>
@@ -72,19 +72,19 @@
             </trans-unit>
             <trans-unit id="18">
                 <source>This value should be {{ limit }} or less.</source>
-                <target>Αυτή η τιμή θα έπρεπε να είναι {{ limit }} ή λιγότερο.</target>
+                <target>Αυτή η τιμή πρέπει να είναι {{ limit }} ή λιγότερο.</target>
             </trans-unit>
             <trans-unit id="19">
                 <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Αυτή η τιμή είναι πολύ μεγάλη. Θα έπρεπε να έχει {{ limit }} χαρακτήρα ή λιγότερο.|Αυτή η τιμή είναι πολύ μεγάλη. Θα έπρεπε να έχει {{ limit }} χαρακτήρες ή λιγότερο.</target>
+                <target>Αυτή η τιμή είναι πολύ μεγάλη. Πρέπει να έχει {{ limit }} χαρακτήρα ή λιγότερο.|Αυτή η τιμή είναι πολύ μεγάλη. Πρέπει να έχει {{ limit }} χαρακτήρες ή λιγότερο.</target>
             </trans-unit>
             <trans-unit id="20">
                 <source>This value should be {{ limit }} or more.</source>
-                <target>Αυτή η τιμή θα έπρεπε να είναι {{ limit }} ή περισσότερο.</target>
+                <target>Αυτή η τιμή πρέπει να είναι {{ limit }} ή περισσότερο.</target>
             </trans-unit>
             <trans-unit id="21">
                 <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Αυτή η τιμή είναι πολύ μικρή. Θα έπρεπε να έχει {{ limit }} χαρακτήρα ή περισσότερο.|Αυτή η τιμή είναι πολύ μικρή. Θα έπρεπε να έχει {{ limit }} χαρακτήρες ή περισσότερο.</target>
+                <target>Αυτή η τιμή είναι πολύ μικρή. Πρέπει να έχει {{ limit }} χαρακτήρα ή περισσότερο.|Αυτή η τιμή είναι πολύ μικρή. Πρέπει να έχει {{ limit }} χαρακτήρες ή περισσότερο.</target>
             </trans-unit>
             <trans-unit id="22">
                 <source>This value should not be blank.</source>
@@ -108,11 +108,11 @@
             </trans-unit>
             <trans-unit id="27">
                 <source>This value is not a valid URL.</source>
-                <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρο URL.</target>
+                <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρο σύνδεσμο.</target>
             </trans-unit>
             <trans-unit id="31">
                 <source>The two values should be equal.</source>
-                <target>Οι δύο τιμές θα πρέπει να είναι ίδιες.</target>
+                <target>Οι δύο τιμές θα πρέπει να είναι ίσες.</target>
             </trans-unit>
             <trans-unit id="32">
                 <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
@@ -124,11 +124,11 @@
             </trans-unit>
             <trans-unit id="34">
                 <source>The file could not be uploaded.</source>
-                <target>Το αρχείο δε μπορεί να ανέβει.</target>
+                <target>Το αρχείο δε μπορεί να μεταφορτωθεί.</target>
             </trans-unit>
             <trans-unit id="35">
                 <source>This value should be a valid number.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι ένας έγκυρος αριθμός.</target>
+                <target>Αυτή η τιμή πρέπει να είναι ένας έγκυρος αριθμός.</target>
             </trans-unit>
             <trans-unit id="36">
                 <source>This file is not a valid image.</source>
@@ -144,7 +144,7 @@
             </trans-unit>
             <trans-unit id="39">
                 <source>This value is not a valid locale.</source>
-                <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρο κωδικό τοποθεσίας.</target>
+                <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρη τοποθεσία.</target>
             </trans-unit>
             <trans-unit id="40">
                 <source>This value is not a valid country.</source>
@@ -176,23 +176,23 @@
             </trans-unit>
             <trans-unit id="47">
                 <source>This value should be the user's current password.</source>
-                <target>Αυτή η τιμή θα έπρεπε να είναι ο τρέχων κωδικός.</target>
+                <target>Αυτή η τιμή πρέπει να είναι ο τρέχων κωδικός του χρήστη.</target>
             </trans-unit>
             <trans-unit id="48">
                 <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Αυτή η τιμή θα έπρεπε να έχει ακριβώς {{ limit }} χαρακτήρα.|Αυτή η τιμή θα έπρεπε να έχει ακριβώς {{ limit }} χαρακτήρες.</target>
+                <target>Αυτή η τιμή πρέπει να έχει ακριβώς {{ limit }} χαρακτήρα.|Αυτή η τιμή πρέπει να έχει ακριβώς {{ limit }} χαρακτήρες.</target>
             </trans-unit>
             <trans-unit id="49">
                 <source>The file was only partially uploaded.</source>
-                <target>Το αρχείο δεν ανέβηκε ολόκληρο.</target>
+                <target>Το αρχείο δεν μεταφορτώθηκε ολόκληρο.</target>
             </trans-unit>
             <trans-unit id="50">
                 <source>No file was uploaded.</source>
-                <target>Δεν ανέβηκε κανένα αρχείο.</target>
+                <target>Δεν μεταφορτώθηκε κανένα αρχείο.</target>
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target>Δεν έχει ρυθμιστεί προσωρινός φάκελος στο php.ini, ή ο ρυθμισμένος φάκελος δεν υπάρχει.</target>
+                <target>Δεν έχει ρυθμιστεί προσωρινός φάκελος στο php.ini ή ο ρυθμισμένος φάκελος δεν υπάρχει.</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
@@ -204,15 +204,15 @@
             </trans-unit>
             <trans-unit id="54">
                 <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Αυτή η συλλογή θα πρέπει να περιέχει {{ limit }} στοιχείο ή περισσότερα.|Αυτή η συλλογή θα πρέπει να περιέχει {{ limit }} στοιχεία ή περισσότερα.</target>
+                <target>Αυτή η συλλογή πρέπει να περιέχει {{ limit }} στοιχείο ή περισσότερα.|Αυτή η συλλογή πρέπει να περιέχει {{ limit }} στοιχεία ή περισσότερα.</target>
             </trans-unit>
             <trans-unit id="55">
                 <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Αυτή η συλλογή θα πρέπει να περιέχει {{ limit }} στοιχείo ή λιγότερα.|Αυτή η συλλογή θα πρέπει να περιέχει {{ limit }} στοιχεία ή λιγότερα.</target>
+                <target>Αυτή η συλλογή πρέπει να περιέχει {{ limit }} στοιχείo ή λιγότερα.|Αυτή η συλλογή πρέπει να περιέχει {{ limit }} στοιχεία ή λιγότερα.</target>
             </trans-unit>
             <trans-unit id="56">
                 <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Αυτή η συλλογή θα πρέπει να περιέχει ακριβώς {{ limit }} στοιχείo.|Αυτή η συλλογή θα πρέπει να περιέχει ακριβώς {{ limit }} στοιχεία.</target>
+                <target>Αυτή η συλλογή πρέπει να περιέχει ακριβώς {{ limit }} στοιχείo.|Αυτή η συλλογή πρέπει να περιέχει ακριβώς {{ limit }} στοιχεία.</target>
             </trans-unit>
             <trans-unit id="57">
                 <source>Invalid card number.</source>
@@ -228,23 +228,23 @@
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
-                <target>Αυτό δεν είναι έγκυρος κωδικός ISBN-10.</target>
+                <target>Αυτός δεν είναι έγκυρος κωδικός ISBN-10.</target>
             </trans-unit>
             <trans-unit id="61">
                 <source>This value is not a valid ISBN-13.</source>
-                <target>Αυτό δεν είναι έγκυρος κωδικός ISBN-13.</target>
+                <target>Αυτός δεν είναι έγκυρος κωδικός ISBN-13.</target>
             </trans-unit>
             <trans-unit id="62">
                 <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Αυτό δεν είναι ούτε έγκυρος κωδικός ISBN-10 ούτε έγκυρος κωδικός ISBN-13.</target>
+                <target>Αυτός δεν είναι ούτε ένας έγκυρος κωδικός ISBN-10 ούτε έγκυρος κωδικός ISBN-13.</target>
             </trans-unit>
             <trans-unit id="63">
                 <source>This value is not a valid ISSN.</source>
-                <target>Αυτό δεν είναι έγκυρος κωδικός ISSN.</target>
+                <target>Αυτός δεν είναι έγκυρος κωδικός ISSN.</target>
             </trans-unit>
             <trans-unit id="64">
                 <source>This value is not a valid currency.</source>
-                <target>Αυτό δεν αντιστοιχεί σε έγκυρο νόμισμα.</target>
+                <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρο νόμισμα.</target>
             </trans-unit>
             <trans-unit id="65">
                 <source>This value should be equal to {{ compared_value }}.</source>
@@ -260,7 +260,7 @@
             </trans-unit>
             <trans-unit id="68">
                 <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι πανομοιότυπη με {{ compared_value_type }} {{ compared_value }}.</target>
+                <target>Αυτή η τιμή θα πρέπει να είναι ίδια με {{ compared_value_type }} {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="69">
                 <source>This value should be less than {{ compared_value }}.</source>
@@ -276,15 +276,15 @@
             </trans-unit>
             <trans-unit id="72">
                 <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Αυτή η τιμή δεν πρέπει να είναι πανομοιότυπη με {{ compared_value_type }} {{ compared_value }}.</target>
+                <target>Αυτή η τιμή δεν πρέπει να είναι ίδια με {{ compared_value_type }} {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="73">
                 <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Η αναλογία πλάτους-ύψους της εικόνας είναι πολύ μεγάλη ({{ ratio }}). Μέγιστη επιτρεπτή αναλογία {{ max_ratio }}.</target>
+                <target>Η αναλογία της εικόνας είναι πολύ μεγάλη ({{ ratio }}). Μέγιστη επιτρεπτή αναλογία {{ max_ratio }}.</target>
             </trans-unit>
             <trans-unit id="74">
                 <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Η αναλογία πλάτους-ύψους της εικόνας είναι πολύ μικρή ({{ ratio }}). Ελάχιστη επιτρεπτή αναλογία {{ min_ratio }}.</target>
+                <target>Η αναλογία της εικόνας είναι πολύ μικρή ({{ ratio }}). Ελάχιστη επιτρεπτή αναλογία {{ min_ratio }}.</target>
             </trans-unit>
             <trans-unit id="75">
                 <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
@@ -304,7 +304,7 @@
             </trans-unit>
             <trans-unit id="79">
                 <source>The host could not be resolved.</source>
-                <target>Η διεύθυνση δεν μπόρεσε να επιλυθεί.</target>
+                <target>Δεν ήταν δυνατή η επίλυση του κεντρικού υπολογιστή.</target>
             </trans-unit>
             <trans-unit id="80">
                 <source>This value does not match the expected {{ charset }} charset.</source>
@@ -324,7 +324,7 @@
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
-                <target>Αυτή η τιμή θα έπρεπε να είναι πολλαπλάσιο του {{ compared_value }}.</target>
+                <target>Αυτή η τιμή πρέπει να είναι πολλαπλάσιο του {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="85">
                 <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source>
@@ -332,31 +332,31 @@
             </trans-unit>
             <trans-unit id="86">
                 <source>This value should be valid JSON.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι έγκυρο JSON.</target>
+                <target>Αυτή η τιμή πρέπει να είναι έγκυρο JSON.</target>
             </trans-unit>
             <trans-unit id="87">
                 <source>This collection should contain only unique elements.</source>
-                <target>Αυτή η συλλογή θα πρέπει να περιέχει μόνο μοναδικά στοιχεία.</target>
+                <target>Αυτή η συλλογή πρέπει να περιέχει μόνο μοναδικά στοιχεία.</target>
             </trans-unit>
             <trans-unit id="88">
                 <source>This value should be positive.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι θετική.</target>
+                <target>Αυτή η τιμή πρέπει να είναι θετική.</target>
             </trans-unit>
             <trans-unit id="89">
                 <source>This value should be either positive or zero.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι θετική ή μηδενική.</target>
+                <target>Αυτή η τιμή πρέπει να είναι θετική ή μηδενική.</target>
             </trans-unit>
             <trans-unit id="90">
                 <source>This value should be negative.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι αρνητική.</target>
+                <target>Αυτή η τιμή πρέπει να είναι αρνητική.</target>
             </trans-unit>
             <trans-unit id="91">
                 <source>This value should be either negative or zero.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι αρνητική ή μηδενική.</target>
+                <target>Αυτή η τιμή πρέπει να είναι αρνητική ή μηδενική.</target>
             </trans-unit>
             <trans-unit id="92">
                 <source>This value is not a valid timezone.</source>
-                <target>Αυτή η τιμή θα δεν είναι έγκυρη ζώνη ώρας.</target>
+                <target>Αυτή η τιμή δεν είναι έγκυρη ζώνη ώρας.</target>
             </trans-unit>
             <trans-unit id="93">
                 <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source>
@@ -364,27 +364,27 @@
             </trans-unit>
             <trans-unit id="94">
                 <source>This value should be between {{ min }} and {{ max }}.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι μεταξύ {{ min }} και {{ max }}.</target>
+                <target>Αυτή η τιμή πρέπει να είναι μεταξύ {{ min }} και {{ max }}.</target>
             </trans-unit>
             <trans-unit id="95">
                 <source>This value is not a valid hostname.</source>
-                <target>Αυτή η τιμή δεν είναι έγκυρο όνομα υποδοχής.</target>
+                <target>Αυτή η τιμή δεν είναι έγκυρο όνομα κεντρικού υπολογιστή.</target>
             </trans-unit>
             <trans-unit id="96">
                 <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source>
-                <target>Το νούμερο των στοιχείων σε αυτή τη συλλογή θα πρέπει να είναι πολλαπλάσιο του {{ compared_value }}.</target>
+                <target>Το νούμερο των στοιχείων σε αυτή τη συλλογή πρέπει να είναι πολλαπλάσιο του {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="97">
                 <source>This value should satisfy at least one of the following constraints:</source>
-                <target>Αυτή η τιμή θα πρέπει να ικανοποιεί τουλάχιστον έναν από τους παρακάτω περιορισμούς: </target>
+                <target>Αυτή η τιμή πρέπει να ικανοποιεί τουλάχιστον έναν από τους παρακάτω περιορισμούς: </target>
             </trans-unit>
             <trans-unit id="98">
                 <source>Each element of this collection should satisfy its own set of constraints.</source>
-                <target>Κάθε στοιχείο σε αυτή τη συλλογή θα πρέπει να ικανοποιεί το δικό του σύνολο περιορισμών.</target>
+                <target>Κάθε στοιχείο σε αυτή τη συλλογή πρέπει να ικανοποιεί το δικό του σύνολο περιορισμών.</target>
             </trans-unit>
             <trans-unit id="99">
                 <source>This value is not a valid International Securities Identification Number (ISIN).</source>
-                <target>Αυτή η τιμή δεν είναι έγκυρο International Securities Identification Number (ISIN).</target>
+                <target>Αυτή η τιμή δεν είναι έγκυρος Διεθνής Αριθμός Αναγνώρισης Τίτλων (ISIN).</target>
             </trans-unit>
             <trans-unit id="100">
                 <source>This value should be a valid expression.</source>
@@ -396,7 +396,7 @@
             </trans-unit>
             <trans-unit id="102">
                 <source>This value is not a valid CIDR notation.</source>
-                <target>Αυτή η τιμή δεν είναι έγκυρη CIDR σημειογραφία.</target>
+                <target>Αυτή η τιμή δεν είναι έγκυρη σημειογραφία CIDR.</target>
             </trans-unit>
             <trans-unit id="103">
                 <source>The value of the netmask should be between {{ min }} and {{ max }}.</source>
@@ -440,19 +440,19 @@
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Αυτή η διεύθυνση URL λείπει ένας τομέας ανώτατου επιπέδου.</target>
+                <target>Λείπει ένας τομέας ανώτατου επιπέδου απο τον σύνδεσμο.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Αυτή η τιμή είναι πολύ σύντομη. Πρέπει να περιέχει τουλάχιστον μία λέξη.|Αυτή η τιμή είναι πολύ σύντομη. Πρέπει να περιέχει τουλάχιστον {{ min }} λέξεις.</target>
+                <target>Αυτή η τιμή είναι πολύ σύντομη. Πρέπει να περιέχει τουλάχιστον μία λέξη.|Αυτή η τιμή είναι πολύ σύντομη. Πρέπει να περιέχει τουλάχιστον {{ min }} λέξεις.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Αυτή η τιμή είναι πολύ μεγάλη. Πρέπει να περιέχει μόνο μία λέξη.|Αυτή η τιμή είναι πολύ μεγάλη. Πρέπει να περιέχει {{ max }} λέξεις ή λιγότερες.</target>
+                <target>Αυτή η τιμή είναι πολύ μεγάλη. Πρέπει να περιέχει μόνο μία λέξη.|Αυτή η τιμή είναι πολύ μεγάλη. Πρέπει να περιέχει {{ max }} λέξεις ή λιγότερες.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Αυτή η τιμή δεν αντιπροσωπεύει έγκυρη εβδομάδα στη μορφή ISO 8601.</target>
+                <target>Αυτή η τιμή δεν αντιπροσωπεύει έγκυρη εβδομάδα στη μορφή ISO 8601.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Αυτή η τιμή δεν πρέπει να είναι μετά την εβδομάδα "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Αυτή η τιμή δεν είναι έγκυρο slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Αυτή η τιμή δεν είναι έγκυρο πρότυπο Twig.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Αυτό το αρχείο δεν είναι έγκυρο βίντεο.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Δεν ήταν δυνατή η ανίχνευση του μεγέθους του βίντεο.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Το πλάτος του βίντεο είναι πολύ μεγάλο ({{ width }}px). Το επιτρεπόμενο μέγιστο πλάτος είναι {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Το πλάτος του βίντεο είναι πολύ μικρό ({{ width }}px). Το ελάχιστο αναμενόμενο πλάτος είναι {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Το ύψος του βίντεο είναι πολύ μεγάλο ({{ height }}px). Το επιτρεπόμενο μέγιστο ύψος είναι {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Το ύψος του βίντεο είναι πολύ μικρό ({{ height }}px). Το αναμενόμενο ελάχιστο ύψος είναι {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Το βίντεο έχει πολύ λίγα εικονοστοιχεία ({{ pixels }}). Η ελάχιστη αναμενόμενη ποσότητα είναι {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Το βίντεο έχει πάρα πολλά εικονοστοιχεία ({{ pixels }}). Η μέγιστη αναμενόμενη ποσότητα είναι {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Η αναλογία του βίντεο είναι πολύ μεγάλη ({{ ratio }}). Η μέγιστη επιτρεπτή αναλογία είναι {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Η αναλογία βίντεο είναι πολύ μικρή ({{ ratio }}). Η ελάχιστη αναμενόμενη αναλογία είναι {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Το βίντεο είναι τετράγωνο ({{ width }}x{{ height }}px). Τα τετράγωνα βίντεο δεν επιτρέπονται.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Το βίντεο είναι σε οριζόντιο προσανατολισμό ({{ width }}x{{ height }} px). Τα οριζόντια βίντεο δεν επιτρέπονται.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Το βίντεο είναι σε κάθετο προσανατολισμό ({{ width }}x{{ height }}px). Βίντεο κάθετου προσανατολισμού δεν επιτρέπονται.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Το αρχείο του βίντεο είναι κατεστραμμένο.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Το βίντεο περιέχει πολλαπλά ρεύματα. Επιτρέπεται μόνο ένα ρεύμα.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Μη υποστηριζόμενος κωδικοποιητής βίντεο «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Μη υποστηριζόμενος περιέκτης βίντεο "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Το αρχείο της εικόνας είναι κατεστραμμένο.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Η εικόνα έχει πολύ λίγα εικονοστοιχεία ({{ pixels }}). Η αναμενόμενη ελάχιστη ποσότητα είναι {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Η εικόνα έχει πάρα πολλούς εικονοστοιχείους ({{ pixels }}). Ο μέγιστος αναμενόμενος αριθμός είναι {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Αυτό το όνομα αρχείου δεν αντιστοιχεί στο αναμενόμενο σύνολο χαρακτήρων.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.en.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.en.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.en.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.en.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,14 +466,94 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>This value should not be after week "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>This value is not a valid slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
                 <target>This value is not a valid Twig template.</target>
             </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>This file is not a valid video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>The size of the video could not be detected.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>The video file is corrupted.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>The video contains multiple streams. Only one stream is allowed.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Unsupported video codec "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Unsupported video container "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>The image file is corrupted.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>This filename does not match the expected charset.</target>
+            </trans-unit>
         </body>
     </file>
 </xliff>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.es.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.es.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.es.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.es.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -160,11 +160,11 @@
             </trans-unit>
             <trans-unit id="43">
                 <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>El ancho de la imagen es demasiado grande ({{ width }}px). El ancho máximo permitido es de {{ max_width }}px.</target>
+                <target>La anchura de la imagen es demasiado grande ({{ width }}px). La anchura máxima permitida es de {{ max_width }}px.</target>
             </trans-unit>
             <trans-unit id="44">
                 <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>El ancho de la imagen es demasiado pequeño ({{ width }}px). El ancho mínimo requerido es {{ min_width }}px.</target>
+                <target>La anchura de la imagen es demasiado pequeña ({{ width }}px). La anchura mínima requerida es de {{ min_width }}px.</target>
             </trans-unit>
             <trans-unit id="45">
                 <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Este valor no debe ser posterior a la semana "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Este valor no es un slug válido.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Este valor no es una plantilla Twig válida.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Este archivo no es un vídeo válido.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>No se pudo detectar el tamaño del vídeo.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>La anchura del vídeo es demasiado grande ({{ width }}px). La anchura máxima permitida es de {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>La anchura del vídeo es demasiado pequeña ({{ width }}px). La anchura mínima requerida es de {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>La altura del vídeo es demasiado grande ({{ height }}px). La altura máxima permitida es de {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>La altura del vídeo es demasiado pequeña ({{ height }}px). La altura mínima requerida es de {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>El vídeo no tiene suficientes píxeles ({{ pixels }}). La cantidad mínima requerida es de {{ min_pixels }}px.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>El vídeo tiene demasiados píxeles ({{ pixels }}). La cantidad máxima permitida es de {{ max_pixels }}px.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>La relación de aspecto del vídeo es demasiado grande ({{ ratio }}). La máxima relación de aspecto permitida es de {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>La relación de aspecto del vídeo es demasiado pequeña ({{ ratio }}). La mínima relación de aspecto permitida es de {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>El vídeo es cuadrado ({{ width }}x{{ height }}px). Los vídeos cuadrados no están permitidos.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>El vídeo está orientado horizontalmente ({{ width }}x{{ height }}px). Los vídeos orientados horizontalmente no están permitidos.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>El vídeo está orientado verticalmente ({{ width }}x{{ height }}px). Los vídeos orientados verticalmente no están permitidos.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>El archivo de vídeo está dañado.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>El vídeo contiene múltiples flujos. Solo se permite un flujo.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>El códec de vídeo "{{ codec }}" no es compatible.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>El contenedor de vídeo "{{ container }}" no es compatible.</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>El archivo de imagen está dañado.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>La imagen no tiene suficientes píxeles ({{ pixels }}). La cantidad mínima requerida es de {{ min_pixels }}px.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>La imagen tiene demasiados píxeles ({{ pixels }}). La cantidad máxima permitida es de {{ max_pixels }}px.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>El nombre de este archivo no utiliza el conjunto de caracteres esperado.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.et.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.et.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.et.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.et.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -440,39 +440,119 @@
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Sellel URL-il puudub ülataseme domeen.</target>
+                <target>Sellel URL-il puudub ülataseme domeen.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">See väärtus on liiga lühike. See peaks sisaldama vähemalt ühte sõna.|See väärtus on liiga lühike. See peaks sisaldama vähemalt {{ min }} sõna.</target>
+                <target>See väärtus on liiga lühike. See peaks sisaldama vähemalt ühte sõna.|See väärtus on liiga lühike. See peaks sisaldama vähemalt {{ min }} sõna.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">See väärtus on liiga pikk. See peaks sisaldama ainult ühte sõna.|See väärtus on liiga pikk. See peaks sisaldama {{ max }} sõna või vähem.</target>
+                <target>See väärtus on liiga pikk. See peaks sisaldama ainult ühte sõna.|See väärtus on liiga pikk. See peaks sisaldama {{ max }} sõna või vähem.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">See väärtus ei esinda kehtivat nädalat ISO 8601 formaadis.</target>
+                <target>See väärtus ei esinda kehtivat nädalat ISO 8601 formaadis.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">See väärtus ei ole kehtiv nädal.</target>
+                <target>See väärtus ei ole kehtiv nädal.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">See väärtus ei tohiks olla enne nädalat "{{ min }}".</target>
+                <target>See väärtus ei tohiks olla enne nädalat "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">See väärtus ei tohiks olla pärast nädalat "{{ max }}".</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">See väärtus ei ole kehtiv slug.</target>
+                <target>See väärtus ei tohiks olla pärast nädalat "{{ max }}".</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>See väärtus ei ole kehtiv Twig'i mall.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>See fail ei ole kehtiv video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Video suurust ei õnnestunud tuvastada.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Video laius on liiga suur ({{ width }}px). Lubatud maksimaalne laius on {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Video laius on liiga väike ({{ width }}px). Oodatav minimaalne laius on {{ min_width }} px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Video kõrgus on liiga suur ({{ height }}px). Lubatud maksimaalne kõrgus on {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Video kõrgus on liiga väike ({{ height }}px). Oodatav minimaalne kõrgus on {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videol on liiga vähe piksleid ({{ pixels }}). Oodatav miinimum on {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videol on liiga palju piksleid ({{ pixels }}). Eeldatav maksimaalne kogus on {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Video suhe on liiga suur ({{ ratio }}). Lubatud maksimaalne suhe on {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Video kuvasuhe on liiga väike ({{ ratio }}). Eeldatav miinimumsuhe on {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Video on ruudukujuline ({{ width }}x{{ height }}px). Ruutvideod pole lubatud.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Video on horisontaalses asendis ({{ width }}x{{ height }} px). Horisontaalseid videoid ei ole lubatud.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Video on püstsuunas ({{ width }}x{{ height }} px). Püstsuunalised videod pole lubatud.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Videofail on rikutud.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Video sisaldab mitu voogu. Lubatud on ainult üks voog.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Toetamata videokoodek „{{ codec }}“.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Toetamata videokonteiner "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Pildifail on rikutud.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Pildil on liiga vähe piksleid ({{ pixels }}). Oodatav miinimum on {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Pildil on liiga palju piksleid ({{ pixels }}). Oodatav maksimaalne hulk on {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>See failinimi ei vasta eeldatavale märgistikule.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.eu.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.eu.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.eu.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.eu.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target state="needs-review-translation">Balio hau ez luke astearen "{{ max }}" ondoren egon behar.</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Balio hau ez da slug balioduna.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">Balio hau ez da Twig txantiloi baliozko bat.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">Fitxategi hau ez da baliozko bideo bat.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">Ezin izan da bideoaren tamaina detektatu.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">Bideoaren zabalera handiegia da ({{ width }}px). Baimendutako gehieneko zabalera {{ max_width }}px da.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">Bideoaren zabalera txikiegia da ({{ width }}px). Gutxieneko espero den zabalera {{ min_width }}px da.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">Bideoaren altuera handiegia da ({{ height }}px). Onartutako gehienezko altuera {{ max_height }}px da.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">Bideoaren altuera txikiegia da ({{ height }}px). Espero den gutxieneko altuera {{ min_height }}px da.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Bideoak pixel gutiegi ditu ({{ pixels }}). Gutxieneko espero den kopurua {{ min_pixels }} da.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Bideoak pixel gehiegi ditu ({{ pixels }}). Espero den gehieneko kopurua {{ max_pixels }} da.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">Bideoaren erlazioa handiegia da ({{ ratio }}). Onartutako gehieneko erlazioa {{ max_ratio }} da.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">Bideoaren erlazioa txikiegia da ({{ ratio }}). Espero den gutxieneko erlazioa {{ min_ratio }} da.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">Bideoa karratua da ({{ width }}x{{ height }}px). Bideo karratuak ez dira onartzen.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Bideoa paisaia orientazioan dago ({{ width }}x{{ height }} px). Paisaia-orientazioko bideoak ez daude baimenduta.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Bideoa bertikal orientatuta dago ({{ width }}x{{ height }} px). Orientazio bertikaleko bideoak ez dira onartzen.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">Bideo fitxategia hondatuta dago.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">Bideoak korronte anitz ditu. Korronte bakarra onartzen da.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">Bideo kodek onartugabea "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">Onartzen ez den bideo edukiontzia "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">Irudi fitxategia hondatuta dago.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Irudiak pixelen kopuru gutiegi du ({{ pixels }}). Espero den gutxienekoa {{ min_pixels }} da.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Irudiak pixel gehiegi ditu ({{ pixels }}). Espero den gehienezko kopurua {{ max_pixels }} da.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">Fitxategi-izen honek ez du espero zen karaktere multzoarekin bat egiten.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fa.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fa.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fa.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fa.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target>این مقدار یه آدرس آی‌پی معتبر نمی‌باشد.</target>
+                <target>این مقدار یک آدرس آی‌پی معتبر نمی‌باشد.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>این مقدار نباید بعد از هفته "{{ max }}" باشد.</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>این مقدار یک slug معتبر نیست.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>این مقدار یک قالب معتبر Twig نیست.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>این فایل یک ویدئوی معتبر نیست.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>اندازه ویدئو قابل تشخیص نبود.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>عرض ویدئو خیلی زیاد است ({{ width }}px). حداکثر عرض مجاز {{ max_width }}px می‌باشد.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>عرض ویدئو خیلی کم است ({{ width }}px). حداقل عرض مورد انتظار {{ min_width }}px می‌باشد.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>ارتفاع ویدئو خیلی زیاد است ({{ height }}px). حداکثر ارتفاع مجاز {{ max_height }}px می‌باشد.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>ارتفاع ویدئو خیلی کم است ({{ height }}px). حداقل ارتفاع مورد انتظار {{ min_height }}px می‌باشد.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>مقدار پیکسل‌های ویدئو خیلی کم است ({{ pixels }}px). حداقل مقدار مورد انتظار {{ min_pixels }}px می‌باشد.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>مقدار پیکسل‌های ویدئو خیلی زیاد است ({{ pixels }}px). حداکثر مقدار مورد انتظار {{ max_pixels }}px می‌باشد.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>نسبت ویدئو خیلی بزرگ است ({{ ratio }}). حداکثر نسبت مجاز {{ max_ratio }} است.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>نسبت ویدئو خیلی کوچک است ({{ ratio }}). نسبت حداقل مورد انتظار {{ min_ratio }} است.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>ویدئو مربعی است ({{ width }}x{{ height }}px). ویدئوهای مربعی مجاز نیستند.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>ویدئو به صورت افقی است ({{ width }}x{{ height }} پیکسل). ویدئوهای افقی مجاز نیستند.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>ویدئو به صورت عمودی است ({{ width }}x{{ height }}px). ویدئوهای عمودی مجاز نیستند.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>فایل ویدئو خراب است.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>ویدئو شامل چندین استریم است. در صورتی که فقط یک استریم مجاز است.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>قالب (کُدک) ویدئویی پشتیبانی نمی‌شود «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>فرمت ویدئو پشتیبانی نمی‌شود "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>فایل تصویر خراب است.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>تصویر پیکسل‌های خیلی کمی دارد ({{ pixels }}px). حداقل مقدار مورد انتظار {{ min_pixels }}px می‌باشد.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>تصویر پیکسل‌های خیلی زیادی دارد ({{ pixels }}px). حداکثر مقدار مورد انتظار {{ max_pixels }}px می‌باشد.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>نام فایل مجاز نیست.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fi.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fi.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fi.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fi.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Tämä arvo ei ole kelvollinen IP-osoite.</target>
+                <target>Tämä arvo ei ole kelvollinen IP-osoite.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -192,7 +192,7 @@
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target state="needs-review-translation">Väliaikaista kansiota ei ole määritetty php.ini:ssä, tai määritetty kansio ei ole olemassa.</target>
+                <target>Väliaikaista kansiota ei ole määritetty php.ini:ssä, tai määritetty kansio ei ole olemassa.</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Tämä arvo ei ole kelvollinen kansainvälinen pankkitilinumero (IBAN).</target>
+                <target>Tämä arvo ei ole kelvollinen kansainvälinen pankkitilinumero (IBAN).</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Tämä arvo ei ole kelvollinen liiketoiminnan tunnistekoodi (BIC).</target>
+                <target>Tämä arvo ei ole kelvollinen liiketoiminnan tunnistekoodi (BIC).</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Tämä arvo ei ole kelvollinen UUID.</target>
+                <target>Tämä arvo ei ole kelvollinen UUID.</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -440,39 +440,119 @@
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Tästä URL-osoitteesta puuttuu ylätason verkkotunnus.</target>
+                <target>Tästä URL-osoitteesta puuttuu ylätason verkkotunnus.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Tämä arvo on liian lyhyt. Sen pitäisi sisältää vähintään yksi sana.|Tämä arvo on liian lyhyt. Sen pitäisi sisältää vähintään {{ min }} sanaa.</target>
+                <target>Tämä arvo on liian lyhyt. Sen pitäisi sisältää vähintään yksi sana.|Tämä arvo on liian lyhyt. Sen pitäisi sisältää vähintään {{ min }} sanaa.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Tämä arvo on liian pitkä. Sen pitäisi sisältää vain yksi sana.|Tämä arvo on liian pitkä. Sen pitäisi sisältää {{ max }} sanaa tai vähemmän.</target>
+                <target>Tämä arvo on liian pitkä. Sen pitäisi sisältää vain yksi sana.|Tämä arvo on liian pitkä. Sen pitäisi sisältää {{ max }} sanaa tai vähemmän.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Tämä arvo ei esitä kelvollista viikkoa ISO 8601 -muodossa.</target>
+                <target>Tämä arvo ei esitä kelvollista viikkoa ISO 8601 -muodossa.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Tämä arvo ei ole kelvollinen viikko.</target>
+                <target>Tämä arvo ei ole kelvollinen viikko.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Tämän arvon ei pitäisi olla ennen viikkoa "{{ min }}".</target>
+                <target>Tämän arvon ei pitäisi olla ennen viikkoa "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Tämän arvon ei pitäisi olla viikon "{{ max }}" jälkeen.</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Tämä arvo ei ole kelvollinen slug.</target>
+                <target>Tämän arvon ei pitäisi olla viikon "{{ max }}" jälkeen.</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Tämä arvo ei ole kelvollinen Twig-malli.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Tämä tiedosto ei ole kelvollinen video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Videon kokoa ei voitu tunnistaa.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Videon leveys on liian suuri ({{ width }} px). Leveyden tulee olla enintään {{ max_width }} px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Videon leveys on liian pieni ({{ width }} px). Leveyden tulee olla vähintään {{ min_width }} px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Videon korkeus on liian suuri ({{ height }} px). Korkeuden tulee olla enintään {{ max_height }} px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Videon korkeus on liian pieni ({{ height }} px). Korkeuden tulee olla vähintään {{ min_height }} px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videossa on liian vähän pikseleitä ({{ pixels }}). Pikseleitä tulee olla vähintään {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videossa on liikaa pikseleitä ({{ pixels }}). Pikseleitä tulee olla enintään {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Videon kuvasuhde on liian suuri ({{ ratio }}). Suurin sallittu suhde on {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Videon kuvasuhde on liian pieni ({{ ratio }}). Pienin sallittu suhde on {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Video on neliön muotoinen ({{ width }}x{{ height }}px). Neliönmuotoiset videot eivät ole sallittuja.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Video on vaakasuuntainen ({{ width }}x{{ height }} px). Vaakasuuntaiset videot eivät ole sallittuja.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Video on pystysuuntainen ({{ width }}x{{ height }} px). Pystysuuntaiset videot eivät ole sallittuja.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Videotiedosto on vioittunut.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Videossa on useita virtoja. Vain yksi virta on sallittu.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Videokoodekkia ei tueta ({{ codec }}).</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Videon säiliömuotoa ei tueta ({{ container }}).</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Kuvatiedosto on vioittunut.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Kuvassa on liian vähän pikseleitä ({{ pixels }}). Pikseleitä tulee olla vähintään {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Kuvassa on liikaa pikseleitä ({{ pixels }}). Pikseleitä tulee olla enintään {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Tämä tiedostonimi ei vastaa odotettua merkistöä.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fr.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fr.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fr.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.fr.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Cette valeur ne doit pas être postérieure à la semaine "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Cette valeur n'est pas un slug valide.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Cette valeur n'est pas un modèle Twig valide.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Ce fichier n’est pas une vidéo valide.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>La taille de la vidéo n’a pas pu être détectée.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>La largeur de la vidéo est trop grande ({{ width }}px). La largeur maximale autorisée est de {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>La largeur de la vidéo est trop petite ({{ width }}px). La largeur minimale attendue est de {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>La hauteur de la vidéo est trop grande ({{ height }}px). La hauteur maximale autorisée est de {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>La hauteur de la vidéo est trop petite ({{ height }}px). La hauteur minimale attendue est de {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>La vidéo a trop peu de pixels ({{ pixels }}). La quantité minimale attendue est de {{ min_pixels }} pixels.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>La vidéo contient trop de pixels ({{ pixels }}). La quantité maximale attendue est de {{ max_pixels }} pixels.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Le ratio de la vidéo est trop élevé ({{ ratio }}). Le ratio maximal autorisé est de {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Le ratio de la vidéo est trop petit ({{ ratio }}). Le ratio minimum attendu est de {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>La vidéo est carrée ({{ width }}x{{ height }}px). Les vidéos carrées ne sont pas autorisées.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>La vidéo est au format paysage ({{ width }}x{{ height }} px). Les vidéos au format paysage ne sont pas autorisées.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>La vidéo est orientée en portrait ({{ width }}x{{ height }} px). Les vidéos en orientation portrait ne sont pas autorisées.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Le fichier vidéo est corrompu.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>La vidéo contient plusieurs flux. Un seul flux est autorisé.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Le codec vidéo «{{ codec }}» est non pris en charge.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Le conteneur vidéo «{{ container }}» est non pris en charge.</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Le fichier image est corrompu.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>L’image comporte trop peu de pixels ({{ pixels }}). La quantité minimale attendue est de {{ min_pixels }} pixels.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>L’image contient trop de pixels ({{ pixels }}). La quantité maximale attendue est de {{ max_pixels }} pixels.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Le nom de fichier ne correspond pas au jeu de caractères attendu.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Este valor non é un enderezo IP válido.</target>
+                <target>Este valor non é un enderezo IP válido.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Este valor non é un Número de Conta Bancaria Internacional (IBAN) válido.</target>
+                <target>Este valor non é un Número de Conta Bancaria Internacional (IBAN) válido.</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Este valor non é un Código de Identificación de Negocios (BIC) válido.</target>
+                <target>Este valor non é un Código de Identificación de Negocios (BIC) válido.</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Este valor non é un UUID válido.</target>
+                <target>Este valor non é un UUID válido.</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -404,75 +404,155 @@
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target state="needs-review-translation">O nome do ficheiro é demasiado longo. Debe ter {{ filename_max_length }} caracteres ou menos.</target>
+                <target>O nome do ficheiro é demasiado longo. Debe ter {{ filename_max_length }} caracteres ou menos.</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
-                <target state="needs-review-translation">A forza do contrasinal é demasiado baixa. Utilice un contrasinal máis forte.</target>
+                <target>O contrasinal é demasiado débil. Utilice un contrasinal máis seguro.</target>
             </trans-unit>
             <trans-unit id="106">
                 <source>This value contains characters that are not allowed by the current restriction-level.</source>
-                <target state="needs-review-translation">Este valor contén caracteres que non están permitidos polo nivel de restrición actual.</target>
+                <target>Este valor contén caracteres que non están permitidos polo nivel de restrición actual.</target>
             </trans-unit>
             <trans-unit id="107">
                 <source>Using invisible characters is not allowed.</source>
-                <target state="needs-review-translation">Non se permite usar caracteres invisibles.</target>
+                <target>Non se permite usar caracteres invisíbeis.</target>
             </trans-unit>
             <trans-unit id="108">
                 <source>Mixing numbers from different scripts is not allowed.</source>
-                <target state="needs-review-translation">Non se permite mesturar números de diferentes scripts.</target>
+                <target>Non se permite mesturar números de diferentes scripts.</target>
             </trans-unit>
             <trans-unit id="109">
                 <source>Using hidden overlay characters is not allowed.</source>
-                <target state="needs-review-translation">Non se permite usar caracteres de superposición ocultos.</target>
+                <target>Non se permite usar caracteres de superposición ocultos.</target>
             </trans-unit>
             <trans-unit id="110">
                 <source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
-                <target state="needs-review-translation">A extensión do ficheiro non é válida ({{ extension }}). As extensións permitidas son {{ extensions }}.</target>
+                <target>A extensión do ficheiro non é válida ({{ extension }}). As extensións permitidas son {{ extensions }}.</target>
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
-                <target state="needs-review-translation">A codificación de caracteres detectada non é válida ({{ detected }}). As codificacións permitidas son {{ encodings }}.</target>
+                <target>A codificación de caracteres detectada non é válida ({{ detected }}). As codificacións permitidas son {{ encodings }}.</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target state="needs-review-translation">Este valor non é un enderezo MAC válido.</target>
+                <target>Este valor non é un enderezo MAC válido.</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Esta URL non contén un dominio de nivel superior.</target>
+                <target>A esta URL fáltalle un dominio de nivel superior.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Este valor é demasiado curto. Debe conter polo menos unha palabra.|Este valor é demasiado curto. Debe conter polo menos {{ min }} palabras.</target>
+                <target>Este valor é curto de máis. Debe conter polo menos unha palabra.|Este valor é curto de máis. Debe conter polo menos {{ min }} palabras.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Este valor é demasiado longo. Debe conter só unha palabra.|Este valor é demasiado longo. Debe conter {{ max }} palabras ou menos.</target>
+                <target>Este valor é longo de máis. Debe conter só unha palabra.|Este valor é longo de máis. Debe conter {{ max }} palabras ou menos.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Este valor non representa unha semana válida no formato ISO 8601.</target>
+                <target>Este valor non representa unha semana válida no formato ISO 8601.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Este valor non é unha semana válida.</target>
+                <target>Este valor non é unha semana válida.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Este valor non debe ser anterior á semana "{{ min }}".</target>
+                <target>Este valor non debe ser anterior á semana "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Este valor non debe estar despois da semana "{{ max }}".</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Este valor non é un slug válido.</target>
+                <target>Este valor non debe estar despois da semana "{{ max }}".</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Este valor non é un modelo Twig válido.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Este ficheiro non é un vídeo válido.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Non se puido detectar o tamaño do vídeo.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>A anchura do vídeo é demasiado grande ({{ width }}px). A anchura máxima permitida é {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>A anchura do vídeo é demasiado pequena ({{ width }}px). A anchura mínima agardada é {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>A altura do vídeo é demasiado grande ({{ height }}px). A altura máxima permitida é {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>A altura do vídeo é demasiado pequena ({{ height }}px). A altura mínima agardada é {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>O vídeo ten moi poucos píxeles ({{ pixels }}). A cantidade mínima agardada é {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>O vídeo ten demasiados píxeles ({{ pixels }}). A cantidade máxima agardada é {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>A relación do vídeo é demasiado grande ({{ ratio }}). A relación máxima permitida é {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>A relación do vídeo é demasiado pequena ({{ ratio }}). A relación mínima agardada é {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>O vídeo é cadrado ({{ width }}x{{ height }}px). Non se permiten vídeos cadrados.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>O vídeo está en orientación horizontal ({{ width }}x{{ height }} px). Non se permiten vídeos en horizontal.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>O vídeo está en orientación vertical ({{ width }}x{{ height }} px). Non se permiten vídeos en orientación vertical.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>O ficheiro de vídeo está danado.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>O vídeo contén múltiples fluxos. Só se permite un fluxo.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Códec de vídeo non compatible «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Contedor de vídeo non compatible "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>O ficheiro de imaxe está danado.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>A imaxe ten moi poucos píxeles ({{ pixels }}). A cantidade mínima esperada é {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>A imaxe ten demasiados píxeles ({{ pixels }}). A cantidade máxima esperada é {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Este nome de ficheiro non coincide co charset agardado.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.he.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.he.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.he.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.he.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -440,39 +440,119 @@
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">לכתובת URL זו חסר דומיין רמה עליונה.</target>
+                <target>לכתובת URL זו חסר דומיין רמה עליונה.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">ערך זה קצר מדי. הוא צריך להכיל לפחות מילה אחת.|ערך זה קצר מדי. הוא צריך להכיל לפחות {{ min }} מילים.</target>
+                <target>ערך זה קצר מדי. הוא צריך להכיל לפחות מילה אחת.|ערך זה קצר מדי. הוא צריך להכיל לפחות {{ min }} מילים.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">ערך זה ארוך מדי. הוא צריך להכיל רק מילה אחת.|ערך זה ארוך מדי. הוא צריך להכיל {{ max }} מילים או פחות.</target>
+                <target>ערך זה ארוך מדי. הוא צריך להכיל רק מילה אחת.|ערך זה ארוך מדי. הוא צריך להכיל {{ max }} מילים או פחות.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">ערך זה אינו מייצג שבוע תקף בפורמט ISO 8601.</target>
+                <target>ערך זה אינו מייצג שבוע תקף בפורמט ISO 8601.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">ערך זה אינו שבוע חוקי.</target>
+                <target>ערך זה אינו שבוע חוקי.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">ערך זה לא אמור להיות לפני שבוע "{{ min }}".</target>
+                <target>ערך זה לא אמור להיות לפני שבוע "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">ערך זה לא אמור להיות לאחר שבוע "{{ max }}".</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">ערך זה אינו slug חוקי.</target>
+                <target>ערך זה לא אמור להיות לאחר שבוע "{{ max }}".</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>ערך זה אינו תבנית Twig חוקית.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>קובץ זה אינו וידאו תקין.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>לא ניתן היה לזהות את גודל הווידאו.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>רוחב הווידאו גדול מדי ({{ width }}px). רוחב מרבי מותר הוא {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>רוחב הווידאו קטן מדי ({{ width }}px). רוחב מינימלי צפוי הוא {{ min_width }} פיקסלים.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>גובה הווידאו גדול מדי ({{ height }}px). הגובה המקסימלי המותר הוא {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>גובה הווידאו קטן מדי ({{ height }}px). הגובה המינימלי הצפוי הוא {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>לסרטון יש מעט מדי פיקסלים ({{ pixels }}). הכמות המינימלית הצפויה היא {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>לסרטון יש יותר מדי פיקסלים ({{ pixels }}). הכמות המרבית הצפויה היא {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>יחס הווידאו גדול מדי ({{ ratio }}). יחס מקסימלי מותר הוא {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>יחס הווידאו קטן מדי ({{ ratio }}). יחס מינימלי צפוי הוא {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>הווידאו הוא מרובע ({{ width }}x{{ height }}px). סרטוני וידאו מרובעים אינם מותרים.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>הווידאו במצב לרוחב ({{ width }}x{{ height }} פיקסלים). סרטוני לרוחב אינם מותרים.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>הווידאו הוא בתצורת דיוקן ({{ width }}x{{ height }}px). סרטוני וידאו בתצורת דיוקן אינם מותרים.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>קובץ הווידאו פגום.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>הווידאו מכיל מספר זרמים. מותר זרם אחד בלבד.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>מקודד וידאו שאינו נתמך "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>מיכל וידאו שאינו נתמך "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>קובץ התמונה פגום.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>לתמונה יש מעט מדי פיקסלים ({{ pixels }}). הכמות המינימלית הצפויה היא {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>לתמונה יש יותר מדי פיקסלים ({{ pixels }}). הכמות המרבית הצפויה היא {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>שם הקובץ הזה אינו תואם את מערך התווים הצפוי.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hr.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hr.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hr.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hr.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Ova vrijednost ne bi trebala biti nakon tjedna "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Ova vrijednost nije valjani slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Ova vrijednost nije valjani Twig predložak.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Ova datoteka nije valjani videozapis.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Veličina videozapisa nije mogla biti određena.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Širina videozapisa je prevelika ({{ width }}px). Dopuštenа maksimalna širina je {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Širina videozapisa je premala ({{ width }}px). Očekivana minimalna širina je {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Visina videozapisa je prevelika ({{ height }}px). Dopuštena maksimalna visina je {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Visina videozapisa je premala ({{ height }}px). Očekivana minimalna visina je {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Video ima premalo piksela ({{ pixels }}). Očekivani minimalni broj je {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Video ima previše piksela ({{ pixels }}). Očekivani maksimalni broj je {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Omjer videa je prevelik ({{ ratio }}). Dopušteni maksimalni omjer je {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Omjer videa je premalen ({{ ratio }}). Minimalni očekivani omjer je {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Video je kvadratan ({{ width }}x{{ height }}px). Kvadratni videozapisi nisu dopušteni.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Video je vodoravne orijentacije ({{ width }}x{{ height }} px). Vodoravni videozapisi nisu dopušteni.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Video je okomite orijentacije ({{ width }}x{{ height }} px). Videozapisi okomite orijentacije nisu dopušteni.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Videodatoteka je oštećena.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Video sadrži više tokova. Dopušten je samo jedan tok.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Nepodržani video kodek "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Nepodržani video spremnik "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Datoteka slike je oštećena.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Slika ima premalo piksela ({{ pixels }}). Očekivani minimalni broj je {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Slika ima previše piksela ({{ pixels }}). Očekivani maksimalni broj je {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Naziv ove datoteke ne odgovara očekivanom skupu znakova.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hu.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hu.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hu.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hu.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Ez az érték nem lehet a "{{ max }}". hétnél későbbi.</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Ez az érték nem érvényes slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">Ez az érték nem érvényes Twig sablon.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">Ez a fájl nem érvényes videó.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">A videó méretét nem sikerült megállapítani.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">A videó szélessége túl nagy ({{ width }}px). A megengedett maximális szélesség {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">A videó szélessége túl kicsi ({{ width }}px). A várható minimális szélesség {{ min_width }} px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">A videó magassága túl nagy ({{ height }}px). A megengedett maximális magasság {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">A videó magassága túl kicsi ({{ height }}px). A minimálisan elvárt magasság {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">A videóban túl kevés a képpont ({{ pixels }}). Az elvárt minimális mennyiség {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">A videóban túl sok a képpont ({{ pixels }}). A várható maximális mennyiség {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">A videó aránya túl nagy ({{ ratio }}). A megengedett maximális arány {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">A videó képaránya túl kicsi ({{ ratio }}). A minimálisan elvárt arány {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">A videó négyzetes ({{ width }}x{{ height }}px). A négyzetes videók nem engedélyezettek.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">A videó fekvő tájolású ({{ width }}x{{ height }} px). Fekvő tájolású videók nem engedélyezettek.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">A videó álló tájolású ({{ width }}x{{ height }} px). Álló tájolású videók nem engedélyezettek.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">A videófájl sérült.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">A videó több adatfolyamot tartalmaz. Csak egy adatfolyam engedélyezett.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">Nem támogatott videokodek „{{ codec }}”.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">Nem támogatott videokonténer "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">A képfájl sérült.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">A képen túl kevés pixel van ({{ pixels }}). Az elvárt minimum {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">A kép túl sok pixelt tartalmaz ({{ pixels }}). A várható maximális mennyiség {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">Ez a fájlnév nem felel meg a várt karakterkészletnek.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hy.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hy.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hy.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.hy.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Այս արժեքը վավեր IP հասցե չէ։</target>
+                <target>Այս արժեքը վավեր IP հասցե չէ։</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -192,7 +192,7 @@
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target state="needs-review-translation">php.ini-ում չի կարգավորվել ժամանակավոր թղթապանակ, կամ կարգավորված թղթապանակը չկա։</target>
+                <target>php.ini-ում չի կարգավորվել ժամանակավոր թղթապանակ, կամ կարգավորված թղթապանակը չկա։</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Այս արժեքը վավեր միջազգային բանկային հաշվի համար (IBAN) չէ։</target>
+                <target>Այս արժեքը վավեր միջազգային բանկային հաշվի համար (IBAN) չէ։</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Այս արժեքը վավեր բիզնեսի նորմատիվ կոդ (BIC) չէ։</target>
+                <target>Այս արժեքը վավեր բիզնեսի նորմատիվ կոդ (BIC) չէ։</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Այս արժեքը վավեր UUID չէ։</target>
+                <target>Այս արժեքը վավեր UUID չէ։</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -392,87 +392,167 @@
             </trans-unit>
             <trans-unit id="101">
                 <source>This value is not a valid CSS color.</source>
-                <target state="needs-review-translation">Այս արժեքը վավեր CSS գույն չէ։</target>
+                <target>Այս արժեքը վավեր CSS գույն չէ։</target>
             </trans-unit>
             <trans-unit id="102">
                 <source>This value is not a valid CIDR notation.</source>
-                <target state="needs-review-translation">Այս արժեքը վավեր CIDR նշում չէ։</target>
+                <target>Այս արժեքը վավեր CIDR նշում չէ։</target>
             </trans-unit>
             <trans-unit id="103">
                 <source>The value of the netmask should be between {{ min }} and {{ max }}.</source>
-                <target state="needs-review-translation">Ցանցային դիմակի արժեքը պետք է լինի {{ min }}-ի և {{ max }}-ի միջև։</target>
+                <target>Ցանցային դիմակի արժեքը պետք է լինի {{ min }}-ի և {{ max }}-ի միջև։</target>
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target state="needs-review-translation">Ֆայլի անունը շատ երկար է։ Այն պետք է ունենա {{ filename_max_length }} նիշ կամ պակաս։</target>
+                <target>Ֆայլի անունը շատ երկար է։ Այն պետք է ունենա {{ filename_max_length }} նիշ կամ պակաս։</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
-                <target state="needs-review-translation">Գաղտնաբառի անվտանգությունը շատ ցածր է։ Խնդրում ենք գործածել ավելի ամրագույն գաղտնաբառ։</target>
+                <target>Գաղտնաբառի անվտանգությունը շատ ցածր է։ Խնդրում ենք գործածել ավելի ամրագույն գաղտնաբառ։</target>
             </trans-unit>
             <trans-unit id="106">
                 <source>This value contains characters that are not allowed by the current restriction-level.</source>
-                <target state="needs-review-translation">Այս արժեքը պարունակում է այն նիշերը, որոնք չեն թույլատրվում ըստ ընթացիկ սահմանումների։</target>
+                <target>Այս արժեքը պարունակում է այն նիշերը, որոնք չեն թույլատրվում ըստ ընթացիկ սահմանումների։</target>
             </trans-unit>
             <trans-unit id="107">
                 <source>Using invisible characters is not allowed.</source>
-                <target state="needs-review-translation">Անտեսանելի նիշերի օգտագործումը չի թույլատրվում։</target>
+                <target>Անտեսանելի նիշերի օգտագործումը չի թույլատրվում։</target>
             </trans-unit>
             <trans-unit id="108">
                 <source>Mixing numbers from different scripts is not allowed.</source>
-                <target state="needs-review-translation">Թվերի խառնուրդը տարբեր սցենարներից չի թույլատրվում։</target>
+                <target>Թվերի խառնուրդը տարբեր սցենարներից չի թույլատրվում։</target>
             </trans-unit>
             <trans-unit id="109">
                 <source>Using hidden overlay characters is not allowed.</source>
-                <target state="needs-review-translation">Թաքնված ծածկանիշերի օգտագործումը չի թույլատրվում։</target>
+                <target>Թաքնված ծածկանիշերի օգտագործումը չի թույլատրվում։</target>
             </trans-unit>
             <trans-unit id="110">
                 <source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
-                <target state="needs-review-translation">Ֆայլի ընդլայնումը անվավեր է ({{ extension }})։ Թույլատրվող ընդլայնումներն են՝ {{ extensions }}։</target>
+                <target>Ֆայլի ընդլայնումը անվավեր է ({{ extension }})։ Թույլատրվող ընդլայնումներն են՝ {{ extensions }}։</target>
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
-                <target state="needs-review-translation">Հայտնաբերված նիշագրության կոդը անվավեր է ({{ detected }})։ Թույլատրվող կոդերն են՝ {{ encodings }}։</target>
+                <target>Հայտնաբերված նիշագրության կոդը անվավեր է ({{ detected }})։ Թույլատրվող կոդերն են՝ {{ encodings }}։</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target state="needs-review-translation">Այս արժեքը վավեր MAC հասցե չէ։</target>
+                <target>Այս արժեքը վավեր MAC հասցե չէ։</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Այս URL-ը չունի վերին մակարդակի դոմեյն:</target>
+                <target>Այս URL-ը չունի վերին մակարդակի դոմեյն:</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Այս արժեքը շատ կարճ է: պետք է պարունակի գոնե մեկ բառ.|Այս արժեքը շատ կարճ է: պետք է պարունակի գոնե {{ min }} բառեր:</target>
+                <target>Այս արժեքը շատ կարճ է: պետք է պարունակի գոնե մեկ բառ.|Այս արժեքը շատ կարճ է: պետք է պարունակի գոնե {{ min }} բառեր:</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Այս արժեքը շատ երկար է: պետք է պարունակի միայն մեկ բառ.|Այս արժեքը շատ երկար է: պետք է պարունակի {{ max }} բառ կամ ավելի քիչ:</target>
+                <target>Այս արժեքը շատ երկար է: պետք է պարունակի միայն մեկ բառ.|Այս արժեքը շատ երկար է: պետք է պարունակի {{ max }} բառ կամ ավելի քիչ:</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Այս արժեքը չի ներկայացնում ISO 8601 ձևաչափով գործող շաբաթ։</target>
+                <target>Այս արժեքը չի ներկայացնում ISO 8601 ձևաչափով գործող շաբաթ։</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Այս արժեքը վավեր շաբաթ չէ:</target>
+                <target>Այս արժեքը վավեր շաբաթ չէ:</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Այս արժեքը չպետք է լինի «{{ min }}» շաբաթից առաջ։</target>
+                <target>Այս արժեքը չպետք է լինի «{{ min }}» շաբաթից առաջ։</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Այս արժեքը չպետք է լինի «{{ max }}» շաբաթից հետո։</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Այս արժեքը վավեր slug չէ:</target>
+                <target>Այս արժեքը չպետք է լինի «{{ max }}» շաբաթից հետո։</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Այս արժեքը վավեր Twig ձևանմուշ չէ:</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Այս ֆայլը վավեր տեսանյութ չէ։</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Չհաջողվեց հայտնաբերել տեսանյութի չափը.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Տեսահոլովակի լայնությունը չափազանց մեծ է ({{ width }}px)։ Թույլատրելի առավելագույն լայնությունը {{ max_width }}px է։</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Տեսանյութի լայնությունը չափազանց փոքր է ({{ width }}px). Սպասվող նվազագույն լայնքը {{ min_width }}px է.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Վիդեոյի բարձրությունը չափազանց մեծ է ({{ height }}px)։ Թույլատրելի առավելագույն բարձրությունը {{ max_height }}px է։</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Վիդեոյի բարձրությունը շատ փոքր է ({{ height }}px)։ Սպասվող նվազագույն բարձրությունը {{ min_height }}px է։</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Տեսանյութը ունի չափազանց քիչ պիքսելներ ({{ pixels }}). Սպասվող նվազագույն քանակը {{ min_pixels }} է։</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Տեսանյութը ունի չափազանց շատ պիքսելներ ({{ pixels }}). Սպասվող առավելագույն քանակը {{ max_pixels }} է։</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Տեսանյութի հարաբերակցությունը չափազանց մեծ է ({{ ratio }}): Թույլատրելի առավելագույն հարաբերակցությունը {{ max_ratio }} է։</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Վիդեոյի հարաբերակցությունը շատ փոքր է ({{ ratio }}). Ավելի փոքրագույն սպասվող հարաբերակցությունը {{ min_ratio }} է.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Տեսանյութը քառակուսի է ({{ width }}x{{ height }}px). Քառակուսի տեսանյութերը թույլատրելի չեն.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Տեսանյութը հորիզոնական կողմնորոշմամբ է ({{ width }}x{{ height }} px). Հորիզոնական տեսանյութերը թույլատրելի չեն.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Վիդեոն ուղղահայաց կողմնորոշված է ({{ width }}x{{ height }}px)։ Ուղղահայաց կողմնորոշմամբ տեսանյութերը թույլատրելի չեն։</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Տեսանյութի ֆայլը վնասված է.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Տեսանյութը պարունակում է բազմաթիվ հոսքեր։ Թույլատրվում է միայն մեկ հոսք։</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Չաջակցվող տեսանյութի կոդեկ «{{ codec }}»։</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Չաջակցվող վիդեո կոնտեյներ "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Պատկերի ֆայլը վնասված է։</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Պատկերը ունի չափազանց քիչ պիքսելներ ({{ pixels }}). Սպասվող նվազագույնը {{ min_pixels }} է։</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Պատկերը ունի չափազանց շատ պիքսել ({{ pixels }}). Սպասվող առավելագույն քանակը {{ max_pixels }} է.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Այս ֆայլի անունը չի համապատասխանում սպասվող նիշքերի հավաքածուին.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Nilai ini tidak boleh setelah minggu "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Nilai ini bukan slug yang valid.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Nilai ini bukan templat Twig yang valid.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Berkas ini bukan video yang valid.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Ukuran video tidak dapat dideteksi.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Lebar video terlalu besar ({{ width }}px). Lebar maksimum yang diizinkan adalah {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Lebar video terlalu kecil ({{ width }}px). Lebar minimum yang diharapkan adalah {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Tinggi video terlalu besar ({{ height }}px). Tinggi maksimum yang diizinkan adalah {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Tinggi video terlalu kecil ({{ height }}px). Tinggi minimum yang diharapkan adalah {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Video memiliki terlalu sedikit piksel ({{ pixels }}). Jumlah minimum yang diharapkan adalah {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Video memiliki terlalu banyak piksel ({{ pixels }}). Jumlah maksimum yang diharapkan adalah {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Rasio video terlalu besar ({{ ratio }}). Rasio maksimum yang diizinkan adalah {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Rasio video terlalu kecil ({{ ratio }}). Rasio minimum yang diharapkan adalah {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Video berbentuk persegi ({{ width }}x{{ height }}px). Video persegi tidak diizinkan.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Video berorientasi lanskap ({{ width }}x{{ height }}px). Video berorientasi lanskap tidak diizinkan.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Video berorientasi potret ({{ width }}x{{ height }}px). Video berorientasi potret tidak diizinkan.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Berkas video rusak.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Video berisi beberapa aliran. Hanya satu aliran yang diizinkan.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Kodek video tidak didukung "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Kontainer video tidak didukung "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Berkas gambar rusak.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Gambar memiliki terlalu sedikit piksel ({{ pixels }}). Jumlah minimum yang diharapkan adalah {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Gambar memiliki terlalu banyak piksel ({{ pixels }}). Jumlah maksimum yang diharapkan adalah {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Nama berkas ini tidak sesuai dengan set karakter yang diharapkan.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Questo valore non dovrebbe essere dopo la settimana "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Questo valore non è uno slug valido.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Questo valore non è un template Twig valido.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Questo file non è un video valido.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Non è stato possibile rilevare la dimensione del video.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>La larghezza del video è troppo grande ({{ width }}px). La larghezza massima consentita è {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>La larghezza del video è troppo piccola ({{ width }}px). La larghezza minima prevista è {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>L'altezza del video è troppo grande ({{ height }}px). L'altezza massima consentita è {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>L'altezza del video è troppo piccola ({{ height }}px). L'altezza minima prevista è {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Il video ha troppo pochi pixel ({{ pixels }}). La quantità minima prevista è {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Il video ha troppi pixel ({{ pixels }}). La quantità massima prevista è {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Il rapporto del video è troppo alto ({{ ratio }}). Il rapporto massimo consentito è {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Il rapporto del video è troppo piccolo ({{ ratio }}). Il rapporto minimo previsto è {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Il video è quadrato ({{ width }}x{{ height }}px). I video quadrati non sono consentiti.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Il video è in orientamento orizzontale ({{ width }}x{{ height }}px). I video orizzontali non sono consentiti.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Il video è in orientamento verticale ({{ width }}x{{ height }}px). I video in orientamento verticale non sono consentiti.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Il file video è danneggiato.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Il video contiene più flussi. È consentito un solo flusso.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Codec video non supportato «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Container video non supportato "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Il file immagine è danneggiato.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>L’immagine ha troppo pochi pixel ({{ pixels }}). La quantità minima prevista è {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>L’immagine ha troppi pixel ({{ pixels }}). La quantità massima prevista è {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Questo nome file non corrisponde al set di caratteri previsto.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -4,19 +4,19 @@
         <body>
             <trans-unit id="1">
                 <source>This value should be false.</source>
-                <target>falseでなければなりません。</target>
+                <target>この値はfalseでなければなりません。</target>
             </trans-unit>
             <trans-unit id="2">
                 <source>This value should be true.</source>
-                <target>trueでなければなりません。</target>
+                <target>この値はtrueでなければなりません。</target>
             </trans-unit>
             <trans-unit id="3">
                 <source>This value should be of type {{ type }}.</source>
-                <target>型は{{ type }}でなければなりません。</target>
+                <target>この値は{{ type }}型でなければなりません。</target>
             </trans-unit>
             <trans-unit id="4">
                 <source>This value should be blank.</source>
-                <target>空でなければなりません。</target>
+                <target>この値は空でなければなりません。</target>
             </trans-unit>
             <trans-unit id="5">
                 <source>The value you selected is not a valid choice.</source>
@@ -28,19 +28,19 @@
             </trans-unit>
             <trans-unit id="7">
                 <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>{{ limit }}個以内で選択してください。</target>
+                <target>{{ limit }}個以下で選択してください。</target>
             </trans-unit>
             <trans-unit id="8">
                 <source>One or more of the given values is invalid.</source>
-                <target>無効な選択肢が含まれています。</target>
+                <target>無効な値が含まれています。</target>
             </trans-unit>
             <trans-unit id="9">
                 <source>This field was not expected.</source>
-                <target>このフィールドは予期されていませんでした。</target>
+                <target>このフィールドは不要です。</target>
             </trans-unit>
             <trans-unit id="10">
                 <source>This field is missing.</source>
-                <target>このフィールドは、欠落しています。</target>
+                <target>このフィールドを入力してください。</target>
             </trans-unit>
             <trans-unit id="11">
                 <source>This value is not a valid date.</source>
@@ -60,43 +60,43 @@
             </trans-unit>
             <trans-unit id="15">
                 <source>The file is not readable.</source>
-                <target>ファイルを読み込めません。</target>
+                <target>ファイルが読み込めません。</target>
             </trans-unit>
             <trans-unit id="16">
                 <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>ファイルのサイズが大きすぎます({{ size }} {{ suffix }})。有効な最大サイズは{{ limit }} {{ suffix }}です。</target>
+                <target>ファイルのサイズが大きすぎます（{{ size }} {{ suffix }}）。{{ limit }} {{ suffix }}以下にしてください。</target>
             </trans-unit>
             <trans-unit id="17">
                 <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>ファイルのMIMEタイプが無効です({{ type }})。有効なMIMEタイプは{{ types }}です。</target>
+                <target>ファイルのMIMEタイプが無効です（{{ type }}）。有効なMIMEタイプは{{ types }}です。</target>
             </trans-unit>
             <trans-unit id="18">
                 <source>This value should be {{ limit }} or less.</source>
-                <target>{{ limit }}以下でなければなりません。</target>
+                <target>この値は{{ limit }}以下でなければなりません。</target>
             </trans-unit>
             <trans-unit id="19">
                 <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>値が長すぎます。{{ limit }}文字以内でなければなりません。</target>
+                <target>長すぎます。この値は{{ limit }}文字以下で入力してください。</target>
             </trans-unit>
             <trans-unit id="20">
                 <source>This value should be {{ limit }} or more.</source>
-                <target>{{ limit }}以上でなければなりません。</target>
+                <target>この値は{{ limit }}以上でなければなりません。</target>
             </trans-unit>
             <trans-unit id="21">
                 <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>値が短すぎます。{{ limit }}文字以上でなければなりません。</target>
+                <target>短すぎます。この値は{{ limit }}文字以上で入力してください。</target>
             </trans-unit>
             <trans-unit id="22">
                 <source>This value should not be blank.</source>
-                <target>空であってはなりません。</target>
+                <target>この値は空にできません。</target>
             </trans-unit>
             <trans-unit id="23">
                 <source>This value should not be null.</source>
-                <target>nullであってはなりません。</target>
+                <target>値を入力してください。</target>
             </trans-unit>
             <trans-unit id="24">
                 <source>This value should be null.</source>
-                <target>nullでなければなりません。</target>
+                <target>入力しないでください。</target>
             </trans-unit>
             <trans-unit id="25">
                 <source>This value is not valid.</source>
@@ -112,11 +112,11 @@
             </trans-unit>
             <trans-unit id="31">
                 <source>The two values should be equal.</source>
-                <target>2つの値が同じでなければなりません。</target>
+                <target>2つの値は同じでなければなりません。</target>
             </trans-unit>
             <trans-unit id="32">
                 <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>ファイルのサイズが大きすぎます。有効な最大サイズは{{ limit }} {{ suffix }}です。</target>
+                <target>ファイルのサイズが大きすぎます。許可されている最大サイズは{{ limit }} {{ suffix }}です。</target>
             </trans-unit>
             <trans-unit id="33">
                 <source>The file is too large.</source>
@@ -128,11 +128,11 @@
             </trans-unit>
             <trans-unit id="35">
                 <source>This value should be a valid number.</source>
-                <target>有効な数字ではありません。</target>
+                <target>この値は有効な数値でなければなりません。</target>
             </trans-unit>
             <trans-unit id="36">
                 <source>This file is not a valid image.</source>
-                <target>ファイルが画像ではありません。</target>
+                <target>選択されたファイルは有効な画像ではありません。</target>
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
@@ -160,31 +160,31 @@
             </trans-unit>
             <trans-unit id="43">
                 <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>画像の幅が大きすぎます({{ width }}ピクセル)。{{ max_width }}ピクセルまでにしてください。</target>
+                <target>画像の幅が大きすぎます（{{ width }}px）。{{ max_width }}px以下にしてください。</target>
             </trans-unit>
             <trans-unit id="44">
                 <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>画像の幅が小さすぎます({{ width }}ピクセル)。{{ min_width }}ピクセル以上にしてください。</target>
+                <target>画像の幅が小さすぎます（{{ width }}px）。{{ min_width }}px以上にしてください。</target>
             </trans-unit>
             <trans-unit id="45">
                 <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>画像の高さが大きすぎます({{ height }}ピクセル)。{{ max_height }}ピクセルまでにしてください。</target>
+                <target>画像の高さが大きすぎます（{{ height }}px）。{{ max_height }}px以下にしてください。</target>
             </trans-unit>
             <trans-unit id="46">
                 <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>画像の高さが小さすぎます({{ height }}ピクセル)。{{ min_height }}ピクセル以上にしてください。</target>
+                <target>画像の高さが小さすぎます（{{ height }}px）。{{ min_height }}px以上にしてください。</target>
             </trans-unit>
             <trans-unit id="47">
                 <source>This value should be the user's current password.</source>
-                <target>ユーザーの現在のパスワードでなければなりません。</target>
+                <target>現在のパスワードを入力してください。</target>
             </trans-unit>
             <trans-unit id="48">
                 <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>ちょうど{{ limit }}文字でなければなりません。</target>
+                <target>この値は{{ limit }}文字ちょうどで入力してください。</target>
             </trans-unit>
             <trans-unit id="49">
                 <source>The file was only partially uploaded.</source>
-                <target>ファイルのアップロードは完全ではありません。</target>
+                <target>ファイルのアップロードが完了しませんでした。</target>
             </trans-unit>
             <trans-unit id="50">
                 <source>No file was uploaded.</source>
@@ -200,15 +200,15 @@
             </trans-unit>
             <trans-unit id="53">
                 <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP拡張によってアップロードに失敗しました。</target>
+                <target>PHP拡張が原因でアップロードに失敗しました。</target>
             </trans-unit>
             <trans-unit id="54">
                 <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>{{ limit }}個以上の要素を含んでなければいけません。</target>
+                <target>要素は{{ limit }}個以上でなければなりません。</target>
             </trans-unit>
             <trans-unit id="55">
                 <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>要素は{{ limit }}個までです。</target>
+                <target>要素は{{ limit }}個以下でなければなりません。</target>
             </trans-unit>
             <trans-unit id="56">
                 <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
@@ -220,7 +220,7 @@
             </trans-unit>
             <trans-unit id="58">
                 <source>Unsupported card type or invalid card number.</source>
-                <target>未対応のカード種類又は無効なカード番号です。</target>
+                <target>対応していないカードまたは無効なカード番号です。</target>
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
@@ -236,7 +236,7 @@
             </trans-unit>
             <trans-unit id="62">
                 <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>有効なISBN-10コード又はISBN-13コードではありません。</target>
+                <target>有効なISBN-10コードまたはISBN-13コードではありません。</target>
             </trans-unit>
             <trans-unit id="63">
                 <source>This value is not a valid ISSN.</source>
@@ -244,59 +244,59 @@
             </trans-unit>
             <trans-unit id="64">
                 <source>This value is not a valid currency.</source>
-                <target>有効な貨幣ではありません。</target>
+                <target>有効な通貨ではありません。</target>
             </trans-unit>
             <trans-unit id="65">
                 <source>This value should be equal to {{ compared_value }}.</source>
-                <target>{{ compared_value }}と等しくなければなりません。</target>
+                <target>この値は{{ compared_value }}と同じ値でなければなりません。</target>
             </trans-unit>
             <trans-unit id="66">
                 <source>This value should be greater than {{ compared_value }}.</source>
-                <target>{{ compared_value }}より大きくなければなりません。</target>
+                <target>この値は{{ compared_value }}より大きくなければなりません。</target>
             </trans-unit>
             <trans-unit id="67">
                 <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>{{ compared_value }}以上でなければなりません。</target>
+                <target>この値は{{ compared_value }}以上でなければなりません。</target>
             </trans-unit>
             <trans-unit id="68">
                 <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>{{ compared_value_type }}としての{{ compared_value }}と等しくなければなりません。</target>
+                <target>この値は{{ compared_value_type }}型の{{ compared_value }}と同じでなければなりません。</target>
             </trans-unit>
             <trans-unit id="69">
                 <source>This value should be less than {{ compared_value }}.</source>
-                <target>{{ compared_value }}未満でなければなりません。</target>
+                <target>この値は{{ compared_value }}未満でなければなりません。</target>
             </trans-unit>
             <trans-unit id="70">
                 <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>{{ compared_value }}以下でなければなりません。</target>
+                <target>この値は{{ compared_value }}以下でなければなりません。</target>
             </trans-unit>
             <trans-unit id="71">
                 <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>{{ compared_value }}と等しくてはいけません。</target>
+                <target>この値は{{ compared_value }}と等しくてはいけません。</target>
             </trans-unit>
             <trans-unit id="72">
                 <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>{{ compared_value_type }}としての{{ compared_value }}と等しくてはいけません。</target>
+                <target>この値は{{ compared_value_type }}型の{{ compared_value }}と異なる値にしてください。</target>
             </trans-unit>
             <trans-unit id="73">
                 <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>画像のアスペクト比が大きすぎます({{ ratio }})。{{ max_ratio }}までにしてください。</target>
+                <target>画像のアスペクト比が大きすぎます（{{ ratio }}）。{{ max_ratio }}までにしてください。</target>
             </trans-unit>
             <trans-unit id="74">
                 <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>画像のアスペクト比が小さすぎます({{ ratio }})。{{ min_ratio }}以上にしてください。</target>
+                <target>画像のアスペクト比が小さすぎます（{{ ratio }}）。{{ min_ratio }}以上にしてください。</target>
             </trans-unit>
             <trans-unit id="75">
                 <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>画像が正方形になっています({{ width }}x{{ height }}ピクセル)。正方形の画像は許可されていません。</target>
+                <target>画像が正方形になっています（{{ width }}x{{ height }}px）。正方形の画像は許可されていません。</target>
             </trans-unit>
             <trans-unit id="76">
                 <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>画像が横向きになっています({{ width }}x{{ height }}ピクセル)。横向きの画像は許可されていません。</target>
+                <target>画像が横向きになっています（{{ width }}x{{ height }}px）。横向きの画像は許可されていません。</target>
             </trans-unit>
             <trans-unit id="77">
                 <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>画像が縦向きになっています({{ width }}x{{ height }}ピクセル)。縦向きの画像は許可されていません。</target>
+                <target>画像が縦向きになっています（{{ width }}x{{ height }}px）。縦向きの画像は許可されていません。</target>
             </trans-unit>
             <trans-unit id="78">
                 <source>An empty file is not allowed.</source>
@@ -308,11 +308,11 @@
             </trans-unit>
             <trans-unit id="80">
                 <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>この値は予期される文字コード（{{ charset }}）と異なります。</target>
+                <target>この値の文字コードが期待される{{ charset }}と一致しません。</target>
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target>有効なSWIFTコードではありません。</target>
+                <target>有効な事業者識別コード（BIC）ではありません。</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -324,7 +324,7 @@
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
-                <target>{{ compared_value }}の倍数でなければなりません。</target>
+                <target>この値は{{ compared_value }}の倍数でなければなりません。</target>
             </trans-unit>
             <trans-unit id="85">
                 <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source>
@@ -332,7 +332,7 @@
             </trans-unit>
             <trans-unit id="86">
                 <source>This value should be valid JSON.</source>
-                <target>JSONでなければなりません。</target>
+                <target>この値は有効なJSONでなければなりません。</target>
             </trans-unit>
             <trans-unit id="87">
                 <source>This collection should contain only unique elements.</source>
@@ -340,19 +340,19 @@
             </trans-unit>
             <trans-unit id="88">
                 <source>This value should be positive.</source>
-                <target>正の数でなければなりません。</target>
+                <target>この値は正の数でなければなりません。</target>
             </trans-unit>
             <trans-unit id="89">
                 <source>This value should be either positive or zero.</source>
-                <target>正の数、または0でなければなりません。</target>
+                <target>この値は正の数、または0でなければなりません。</target>
             </trans-unit>
             <trans-unit id="90">
                 <source>This value should be negative.</source>
-                <target>負の数でなければなりません。</target>
+                <target>この値は負の数でなければなりません。</target>
             </trans-unit>
             <trans-unit id="91">
                 <source>This value should be either negative or zero.</source>
-                <target>負の数、または0でなければなりません。</target>
+                <target>この値は負の数、または0でなければなりません。</target>
             </trans-unit>
             <trans-unit id="92">
                 <source>This value is not a valid timezone.</source>
@@ -360,11 +360,11 @@
             </trans-unit>
             <trans-unit id="93">
                 <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source>
-                <target>このパスワードは漏洩している為使用できません。</target>
+                <target>このパスワードは漏洩しているため使用できません。</target>
             </trans-unit>
             <trans-unit id="94">
                 <source>This value should be between {{ min }} and {{ max }}.</source>
-                <target>{{ min }}以上{{ max }}以下でなければなりません。</target>
+                <target>この値は{{ min }}以上{{ max }}以下でなければなりません。</target>
             </trans-unit>
             <trans-unit id="95">
                 <source>This value is not a valid hostname.</source>
@@ -376,11 +376,11 @@
             </trans-unit>
             <trans-unit id="97">
                 <source>This value should satisfy at least one of the following constraints:</source>
-                <target>以下の制約のうち少なくとも1つを満たす必要があります:</target>
+                <target>以下の制約のうち少なくとも1つを満たさなければなりません。</target>
             </trans-unit>
             <trans-unit id="98">
                 <source>Each element of this collection should satisfy its own set of constraints.</source>
-                <target>コレクションの各要素は、それぞれの制約を満たす必要があります。</target>
+                <target>コレクションの各要素は、それぞれの制約を満たさなければなりません。</target>
             </trans-unit>
             <trans-unit id="99">
                 <source>This value is not a valid International Securities Identification Number (ISIN).</source>
@@ -388,7 +388,7 @@
             </trans-unit>
             <trans-unit id="100">
                 <source>This value should be a valid expression.</source>
-                <target>式でなければなりません。</target>
+                <target>この値は有効な式形式でなければなりません。</target>
             </trans-unit>
             <trans-unit id="101">
                 <source>This value is not a valid CSS color.</source>
@@ -400,11 +400,11 @@
             </trans-unit>
             <trans-unit id="103">
                 <source>The value of the netmask should be between {{ min }} and {{ max }}.</source>
-                <target>ネットマスクの値は、{{ min }}から{{ max }}の間にある必要があります。</target>
+                <target>サブネットマスクは{{ min }}から{{ max }}の範囲で入力してください。</target>
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target>ファイル名が長すぎます。ファイル名の長さは{{ filename_max_length }}文字以下でなければなりません。</target>
+                <target>ファイル名が長すぎます。ファイル名は{{ filename_max_length }}文字以下でなければなりません。</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
@@ -412,7 +412,7 @@
             </trans-unit>
             <trans-unit id="106">
                 <source>This value contains characters that are not allowed by the current restriction-level.</source>
-                <target>この値は現在の制限レベルで許可されていない文字を含んでいます。</target>
+                <target>現在の設定では使用できない文字が含まれています。</target>
             </trans-unit>
             <trans-unit id="107">
                 <source>Using invisible characters is not allowed.</source>
@@ -428,11 +428,11 @@
             </trans-unit>
             <trans-unit id="110">
                 <source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
-                <target>ファイルの拡張子が無効です({{ extension }})。有効な拡張子は{{ extensions }}です。</target>
+                <target>ファイルの拡張子が無効です（{{ extension }}）。有効な拡張子は{{ extensions }}です。</target>
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
-                <target>検出された文字コードは無効です({{ detected }})。有効な文字コードは{{ encodings }}です。</target>
+                <target>検出された文字コードは無効です（{{ detected }}）。有効な文字コードは{{ encodings }}です。</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
@@ -444,35 +444,115 @@
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target>この値は短すぎます。{{ min }}単語以上にする必要があります。</target>
+                <target>短すぎます。この値は{{ min }}単語以上にする必要があります。</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target>この値は長すぎます。{{ max }}単語以下にする必要があります。</target>
+                <target>長すぎます。この値は{{ max }}単語以下にする必要があります。</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target>この値は ISO 8601 形式の有効な週を表していません。</target>
+                <target>週の形式が正しくありません（ISO 8601形式）。</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target>この値は有効な週ではありません。</target>
+                <target>有効な週形式ではありません。</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target>この値は週 "{{ min }}" より前であってはいけません。</target>
+                <target>週 "{{ min }}" 以降を指定してください。</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target>この値は週 "{{ max }}" 以降であってはいけません。</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>この値は有効なスラグではありません。</target>
+                <target>週 "{{ max }}" までを指定してください。</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>有効なTwigテンプレートではありません。</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>選択されたファイルは有効な動画ではありません。</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>動画のファイルサイズを検出できませんでした。</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>動画の幅が大きすぎます（{{ width }}px）。許可されている最大の幅は {{ max_width }}px です。</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>動画の幅が小さすぎます（{{ width }}px）。許可されている最小の幅は {{ min_width }}px です。</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>動画の高さが大きすぎます （{{ height }}px）。許可されている最大の高さは {{ max_height }}px です。</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>動画の高さが小さすぎます （{{ height }}px）。許可されている最小の高さは {{ min_height }}px です。</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>この動画のピクセル数が少なすぎます （{{ pixels }}）。許可されている最小ピクセル数は {{ min_pixels }} です。</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>この動画のピクセル数が多すぎます （{{ pixels }}）。許可されている最大ピクセル数は {{ max_pixels }} です。</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>動画のアスペクト比が大きすぎます （{{ ratio }}）。許可されている最大比率は {{ max_ratio }} です。</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>動画のアスペクト比が小さすぎます （{{ ratio }}）。許可されている最小比率は {{ min_ratio }} です。</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>動画は正方形です （{{ width }}x{{ height }}px）。正方形の動画は許可されていません。</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>動画は横向きです（{{ width }}x{{ height }}px）。横向きの動画は許可されていません。</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>動画は縦向きです（{{ width }}x{{ height }}px）。縦向きの動画は許可されていません。</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>動画ファイルが破損しています。</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>この動画には複数のストリームが含まれています。許可されるのは1つのストリームのみです。</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>サポートされていないビデオコーデック「{{ codec }}」です。</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>サポートされていない動画コンテナ「{{ container }}」です。</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>画像ファイルが破損しています。</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>画像のピクセル数が少なすぎます（{{ pixels }}）。許可されている最小ピクセル数は {{ min_pixels }} です。</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>画像のピクセル数が多すぎます（{{ pixels }}）。許可されている最大ピクセル数は {{ max_pixels }} です。</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>このファイル名は期待される文字セットと一致しません。</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lb.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lb.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lb.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lb.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Dëse Wäert ass keng gülteg IP-Adress.</target>
+                <target>Dëse Wäert ass keng gülteg IP-Adress.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Dëse Wäert ass keng gülteg International Bankkontonummer (IBAN).</target>
+                <target>Dëse Wäert ass keng gülteg International Bankkontonummer (IBAN).</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Dëse Wäert ass kee gültege Business Identifier Code (BIC).</target>
+                <target>Dëse Wäert ass kee gültege Business Identifier Code (BIC).</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Dëse Wäert ass keng gülteg UUID.</target>
+                <target>Dëse Wäert ass keng gülteg UUID.</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -436,43 +436,123 @@
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target state="needs-review-translation">Dëse Wäert ass keng gülteg MAC-Adress.</target>
+                <target>Dëse Wäert ass keng gülteg MAC-Adress.</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Dësen URL feelt eng Top-Level-Domain.</target>
+                <target>Dësen URL feelt eng Top-Level-Domain.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Dëse Wäert ass ze kuerz. Et sollt op d'mannst ee Wuert enthalen.|Dëse Wäert ass ze kuerz. Et sollt op d'mannst {{ min }} Wierder enthalen.</target>
+                <target>Dëse Wäert ass ze kuerz. Et sollt op d'mannst ee Wuert enthalen.|Dëse Wäert ass ze kuerz. Et sollt op d'mannst {{ min }} Wierder enthalen.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Dëse Wäert ass ze laang. Et sollt nëmmen ee Wuert enthalen.|Dëse Wäert ass ze laang. Et sollt {{ max }} Wierder oder manner enthalen.</target>
+                <target>Dëse Wäert ass ze laang. Et sollt nëmmen ee Wuert enthalen.|Dëse Wäert ass ze laang. Et sollt {{ max }} Wierder oder manner enthalen.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Dëse Wäert stellt keng valabel Woch am ISO 8601-Format duer.</target>
+                <target>Dëse Wäert stellt keng valabel Woch am ISO 8601-Format duer.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Dëse Wäert ass keng valabel Woch.</target>
+                <target>Dëse Wäert ass keng valabel Woch.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Dëse Wäert sollt net virun der Woch "{{ min }}" sinn.</target>
+                <target>Dëse Wäert sollt net virun der Woch "{{ min }}" sinn.</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Dëse Wäert sollt net no Woch "{{ max }}" sinn.</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Dëse Wäert ass kee gültege Slug.</target>
+                <target>Dëse Wäert sollt net no Woch "{{ max }}" sinn.</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Dëse Wäert ass kee valabelen Twig-Template.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Dës Datei ass kee gëltegen Video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>D'Gréisst vum Video konnt net erkannt ginn.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>D'Videobreed ass ze grouss ({{ width }}px). Erlaabt maximal Breed ass {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>D'Videobreed ass ze kleng ({{ width }}px). Minimal erwaart Breed ass {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>D'Videohéicht ass ze grouss ({{ height }}px). Erlaabt maximal Héicht ass {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>D'Videohéicht ass ze kleng ({{ height }}px). Erwaart Mindesthéicht ass {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>De Video huet ze wéineg Pixel ({{ pixels }}). Erwaart Minimum ass {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>De Video huet ze vill Pixel ({{ pixels }}). Déi erwaart maximal Zuel ass {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>D'Videoproportioun ass ze grouss ({{ ratio }}). Erlaabt maximal Proportioun ass {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>D'Videoratio ass ze kleng ({{ ratio }}). Minimal erwaart Ratio ass {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>De Video ass quadratesch ({{ width }}x{{ height }}px). Quadratesch Videoe sinn net erlaabt.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>De Video ass am Landschaftsformat ({{ width }}x{{ height }} px). Landschafts-Videoe sinn net erlaabt.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>De Video ass am Portraitformat ({{ width }}x{{ height }}px). Portrait-Videoe sinn net erlaabt.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>D'Videodatei ass beschiedegt.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>De Video enthält verschidde Stréimen. Nëmmen ee Stroum ass erlaabt.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Net ënnerstëtzte Videocodec „{{ codec }}“.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Net ënnerstëtzte Video-Container "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>D'Bilddatei ass beschiedegt.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>D'Bild huet ze wéineg Pixel ({{ pixels }}). Déi erwaart Mindestzuel ass {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>D'Bild huet ze vill Pixel ({{ pixels }}). Déi erwaart maximal Zuel ass {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Dësen Dateinumm entsprécht net dem erwaarten Zeechesaz.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lt.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lt.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lt.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lt.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -452,27 +452,107 @@
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Ši reikšmė neatitinka galiojančios savaitės ISO 8601 formatu.</target>
+                <target>Ši reikšmė neatitinka galiojančios savaitės ISO 8601 formatu.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Ši reikšmė nėra galiojanti savaitė.</target>
+                <target>Ši reikšmė nėra galiojanti savaitė.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Ši reikšmė neturėtų būti prieš savaitę "{{ min }}".</target>
+                <target>Ši reikšmė neturėtų būti prieš savaitę "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Ši reikšmė neturėtų būti po savaitės "{{ max }}".</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Ši reikšmė nėra tinkamas slug.</target>
+                <target>Ši reikšmė neturėtų būti po savaitės "{{ max }}".</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Ši reikšmė nėra tinkamas „Twig“ šablonas.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Šis failas nėra galiojantis vaizdo įrašas.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Nepavyko nustatyti vaizdo įrašo dydžio.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Vaizdo įrašo plotis per didelis ({{ width }}px). Leidžiamas didžiausias plotis yra {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Vaizdo įrašo plotis per mažas ({{ width }}px). Tikėtinas mažiausias plotis yra {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Vaizdo aukštis per didelis ({{ height }}px). Leidžiamas maksimalus aukštis yra {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Vaizdo aukštis per mažas ({{ height }}px). Tikėtinas minimalus aukštis yra {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Vaizdo įraše per mažai pikselių ({{ pixels }}). Tikimasi mažiausiai {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Vaizdo įraše per daug pikselių ({{ pixels }}). Tikimasi, kad didžiausias kiekis yra {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Vaizdo santykis per didelis ({{ ratio }}). Leidžiamas didžiausias santykis yra {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Vaizdo santykis per mažas ({{ ratio }}). Tikimasi mažiausias santykis yra {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Vaizdo įrašas yra kvadratinis ({{ width }}x{{ height }}px). Kvadratiniai vaizdo įrašai neleidžiami.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Vaizdo įrašas yra gulsčio formato ({{ width }}x{{ height }} px). Gulsčio formato vaizdo įrašai neleidžiami.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Vaizdo įrašas yra portreto orientacijos ({{ width }}x{{ height }}px). Portreto orientacijos vaizdo įrašai neleidžiami.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Vaizdo failas sugadintas.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Vaizdo įraše yra keli srautai. Leidžiamas tik vienas srautas.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Nepalaikomas vaizdo kodekas „{{ codec }}“.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Nepalaikomas vaizdo konteineris "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Paveikslėlio failas sugadintas.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Paveikslėlyje per mažai pikselių ({{ pixels }}). Tikimasi mažiausiai {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Paveikslėlis turi per daug pikselių ({{ pixels }}). Tikėtinas didžiausias kiekis yra {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Šis failo pavadinimas neatitinka laukiamo ženklų rinkinio.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lv.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lv.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lv.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.lv.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Šai vērtībai nevajadzētu būt pēc "{{ max }}" nedēļas.</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Šī vērtība nav derīgs slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Šī vērtība nav derīgs Twig šablons.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Šī datne nav derīgs video fails.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Neizdevās noteikt video izmēru.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Video platums ir pārāk liels ({{ width }}px). Atļautais maksimālais platums ir {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Video platums ir pārāk mazs ({{ width }}px). Sagaidāmais minimālais platums ir {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Video augstums ir pārāk liels ({{ height }}px). Atļautais maksimālais augstums ir {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Video augstums ir pārāk mazs ({{ height }}px). Sagaidāmais minimālais augstums ir {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Video ir pārāk maz pikseļu ({{ pixels }}). Sagaidāmais minimālais daudzums ir {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Video ir pārāk daudz pikseļu ({{ pixels }}). Paredzētais maksimālais daudzums ir {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Video attiecība ir pārāk liela ({{ ratio }}). Atļautā maksimālā attiecība ir {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Video attiecība ir pārāk maza ({{ ratio }}). Sagaidāmā minimālā attiecība ir {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Video ir kvadrātveida ({{ width }}x{{ height }}px). Kvadrātveida video nav atļauti.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Video ir ainavas orientācijā ({{ width }}x{{ height }} px). Ainavas formāta video nav atļauti.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Video ir portreta orientācijā ({{ width }}x{{ height }}px). Portreta orientācijas video nav atļauti.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Video fails ir bojāts.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Video satur vairākus straumējumus. Atļauta ir tikai viena straume.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Neatbalstīts video kodeks "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Neatbalstīts video konteiners "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Attēla fails ir bojāts.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Attēlam ir par maz pikseļu ({{ pixels }}). Sagaidāmais minimālais daudzums ir {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Attēlam ir pārāk daudz pikseļu ({{ pixels }}). Sagaidāmais maksimālais daudzums ir {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Šis faila nosaukums neatbilst paredzētajam rakstzīmju kopumam.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.mk.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.mk.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.mk.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.mk.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target state="needs-review-translation">Ова вредност не треба да биде по недела "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Оваа вредност не е валиден slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">Оваа вредност не е валиден Twig шаблон.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">Оваа датотека не е валидно видео.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">Големината на видеото не можеше да се утврди.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">Ширината на видеото е премногу голема ({{ width }}px). Дозволената максимална ширина е {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">Ширината на видеото е премала ({{ width }}px). Минималната очекувана ширина е {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">Висината на видеото е премногу голема ({{ height }}px). Дозволената максимална висина е {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">Висината на видеото е премала ({{ height }}px). Очекуваната минимална висина е {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Видеото има премалку пиксели ({{ pixels }}). Очекуван минимален износ е {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Видеото има премногу пиксели ({{ pixels }}). Очекуваниот максимален износ е {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">Соодносот на видеото е преголем ({{ ratio }}). Дозволениот максимален сооднос е {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">Односот на видеото е премал ({{ ratio }}). Очекуваниот минимален однос е {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">Видеото е квадратно ({{ width }}x{{ height }}px). Квадратни видеа не се дозволени.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Видеото е во хоризонтална ориентација ({{ width }}x{{ height }} px). Хоризонтални видеа не се дозволени.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Видеото е во портретна ориентација ({{ width }}x{{ height }}px). Видеа со портретна ориентација не се дозволени.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">Видео датотеката е оштетена.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">Видеото содржи повеќе струи. Дозволена е само една струја.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">Неподдржан видео кодек „{{ codec }}“.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">Неподдржан видео контејнер "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">Датотеката со слика е оштетена.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Сликата има премалку пиксели ({{ pixels }}). Очекуваниот минимален број е {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Сликата има премногу пиксели ({{ pixels }}). Очекуваната максимална количина е {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">Името на датотеката не одговара на очекуваниот збир на знаци.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.mn.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.mn.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.mn.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.mn.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target state="needs-review-translation">Энэ утга нь долоо хоног "{{ max }}" -аас хойш байх ёсгүй.</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Энэ утга хүчинтэй slug биш байна.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">Энэ утга нь Twig-ийн хүчинтэй загвар биш юм.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">Энэ файл хүчинтэй видео биш байна.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">Видеоны хэмжээг тодорхойлох боломжгүй байлаа.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">Видео өргөн хэт их байна ({{ width }}px). Зөвшөөрөгдөх дээд өргөн нь {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">Видео өргөн хэт бага байна ({{ width }}px). Хамгийн бага хүлээгдэж буй өргөн {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">Видеоны өндөр хэт их байна ({{ height }}px). Зөвшөөрөгдсөн дээд өндөр нь {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">Видео өндрийг хэт бага байна ({{ height }}px). Хамгийн бага өндрийн шаардлага {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Видео хэт цөөн пикселтэй байна ({{ pixels }}). Хүлээгдэж буй хамгийн бага хэмжээ нь {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Видео хэт олон пикселтэй байна ({{ pixels }}). Хүлээгдэж буй дээд хэмжээ нь {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">Видео харьцаа хэт их байна ({{ ratio }}). Зөвшөөрөгдөх дээд харьцаа {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">Видеоны харьцаа хэт жижиг байна ({{ ratio }}). Хамгийн бага хүлээгдэж буй харьцаа {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">Видео дөрвөлжин байна ({{ width }}x{{ height }}px). Дөрвөлжин видеонууд зөвшөөрөгдөхгүй.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Видео хэвтээ чиглэлтэй байна ({{ width }}x{{ height }} px). Хэвтээ видеонууд зөвшөөрөгдөхгүй.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Видео босоо чиглэлтэй ({{ width }}x{{ height }}px). Босоо чиглэлийн видеонууд зөвшөөрөгдөхгүй.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">Видео файл гэмтсэн байна.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">Видео нь олон урсгал агуулсан байна. Зөвхөн нэг урсгалыг зөвшөөрнө.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">Дэмжигдээгүй видео кодек "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">Дэмжигдээгүй видео контейнер "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">Зургийн файл гэмтсэн.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Зурган дээрх пикселийн тоо дэндүү цөөн байна ({{ pixels }}). Хүлээгдэж буй доод хэмжээ нь {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Зурагт хэт олон пиксел байна ({{ pixels }}). Хүлээгдэж буй дээд хэмжээ нь {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">Энэ файлын нэр хүлээгдэж буй тэмдэгтийн багцтай нийцэхгүй байна.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.my.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.my.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.my.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.my.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target state="needs-review-translation">ဤတန်ဖိုးသည် သီတင်းပတ် "{{ max }}" ပြီးနောက် ဖြစ်သင့်သည်မဟုတ်ပါ။</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">ဒီတန်ဖိုးသည်မှန်ကန်သော slug မဟုတ်ပါ။</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">ဤတန်ဖိုးသည် မှန်ကန်သော Twig တင်းပလိတ်မဟုတ်ပါ။</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">ဤဖိုင်သည် မှန်ကန်သော ဗီဒီယို မဟုတ်ပါ။</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">ဗီဒီယို၏ အရွယ်အစားကို စိစစ်မရနိုင်ခဲ့ပါ။</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">ဗီဒီယိုအကျယ် {{ width }}px သည် အလွန်ကြီးနေသည်။ ခွင့်ပြုထားသော အများဆုံးအကျယ်မှာ {{ max_width }}px ဖြစ်သည်။</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">ဗီဒီယိုအကျယ်အဝန်းမှာ သေးလွန်းနေပါတယ် ({{ width }}px)။ ခန့်မှန်းထားသော အနည်းဆုံး အကျယ်မှာ {{ min_width }}px ဖြစ်ပါတယ်။</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">ဗီဒီယိုအမြင့် ကြီးလွန်းသည် ({{ height }}px)။ ခွင့်ပြုထားသော အမြင့်အများဆုံးမှာ {{ max_height }}px ဖြစ်သည်။</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">ဗွီဒီယိုအမြင့် သက်သက်ငယ်နေပါသည် ({{ height }}px)။ မျှော်မှန်းထားသော အနည်းဆုံးအမြင့်မှာ {{ min_height }}px ဖြစ်သည်။</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">ဗီဒီယိုတွင် ပစ်ဆယ် အရေအတွက် နည်းလွန်းသည် ({{ pixels }})။ မျှော်လင့်ထားသည့် အနည်းဆုံး အရေအတွက်မှာ {{ min_pixels }} ဖြစ်သည်။</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">ဗီဒီယိုတွင် pixel များ အလွန်များနေသည် ({{ pixels }})။ မျှော်မှန်းထားသော အများဆုံးပမာဏမှာ {{ max_pixels }} ဖြစ်သည်။</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">ဗီဒီယို အချိုးအစား များလွန်းသည် ({{ ratio }})။ ခွင့်ပြုထားသော အများဆုံး အချိုးအစားမှာ {{ max_ratio }} ဖြစ်သည်။</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">ဗီဒီယိုအချိုးအစား သောလွန်းငယ်သည် ({{ ratio }})။ ခန့်မှန်းထားသော အနည်းဆုံး အချိုးအစားမှာ {{ min_ratio }} ဖြစ်သည်။</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">ဗီဒီယိုသည် စတုဂံဖြစ်သည် ({{ width }}x{{ height }}px)။ စတုဂံ ဗီဒီယိုများကို ခွင့်မပြုပါ။</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">ဗီဒီယိုသည် အလျားလိုက် ({{ width }}x{{ height }} px) ဖြစ်သည်။ အလျားလိုက်ဗီဒီယိုများကို ခွင့်မပြုပါ။</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">ဗီဒီယိုသည် ဒေါင်လိုက် ရှုထောင့်ဖြစ်သည် ({{ width }}x{{ height }}px)။ ဒေါင်လိုက် ဗီဒီယိုများကို ခွင့်မပြုပါ။</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">ဗီဒီယိုဖိုင် ပျက်စီးထားသည်။</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">ဗီဒီယိုတွင် စီးဆင်းမှုများ များစွာ ပါရှိသည်။ စီးဆင်းမှုတစ်ခုသာ ခွင့်ပြုထားသည်။</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">ပံ့ပိုးမထားသော ဗီဒီယိုကုဒက် "{{ codec }}" ။</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">မပံ့ပိုးထားသော ဗီဒီယို ကွန်တိနာ "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">ပုံဖိုင် ပျက်စီးနေသည်။</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">ပုံတွင် ပစ်ဆယ်များအလွန်နည်းပါးသည် ({{ pixels }})။ မျှော်မှန်းထားသော အနည်းဆုံး အရေအတွက်မှာ {{ min_pixels }} ဖြစ်သည်။</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">ပုံတွင် ပစ်ကဆယ်များ အလွန်များနေသည် ({{ pixels }}). လျှောက်ထားထားသော အများဆုံး ပမာဏမှာ {{ max_pixels }} ဖြစ်သည်.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">ဤဖိုင်နာမည်သည် မျှော်မှန်းထားသော အက္ခရာစုနှင့် ကိုက်ညီမှုမရှိပါ။</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nb.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nb.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nb.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nb.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig IP-adresse.</target>
+                <target>Denne verdien er ikke en gyldig IP-adresse.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -192,7 +192,7 @@
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target state="needs-review-translation">Ingen midlertidig mappe ble konfigurert i php.ini, eller den konfigurerte mappen eksisterer ikke.</target>
+                <target>Ingen midlertidig mappe ble konfigurert i php.ini, eller den konfigurerte mappen eksisterer ikke.</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Denne verdien er ikke et gyldig internasjonalt bankkontonummer (IBAN).</target>
+                <target>Denne verdien er ikke et gyldig internasjonalt bankkontonummer (IBAN).</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig forretningsidentifikasjonskode (BIC).</target>
+                <target>Denne verdien er ikke en gyldig forretningsidentifikasjonskode (BIC).</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig UUID.</target>
+                <target>Denne verdien er ikke en gyldig UUID.</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -404,75 +404,155 @@
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target state="needs-review-translation">Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.|Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.</target>
+                <target>Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.|Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
-                <target state="needs-review-translation">Passordstyrken er for lav. Vennligst bruk et sterkere passord.</target>
+                <target>Passordstyrken er for lav. Vennligst bruk et sterkere passord.</target>
             </trans-unit>
             <trans-unit id="106">
                 <source>This value contains characters that are not allowed by the current restriction-level.</source>
-                <target state="needs-review-translation">Denne verdien inneholder tegn som ikke er tillatt av gjeldende restriksjonsnivå.</target>
+                <target>Denne verdien inneholder tegn som ikke er tillatt av gjeldende restriksjonsnivå.</target>
             </trans-unit>
             <trans-unit id="107">
                 <source>Using invisible characters is not allowed.</source>
-                <target state="needs-review-translation">Det er ikke tillatt å bruke usynlige tegn.</target>
+                <target>Det er ikke tillatt å bruke usynlige tegn.</target>
             </trans-unit>
             <trans-unit id="108">
                 <source>Mixing numbers from different scripts is not allowed.</source>
-                <target state="needs-review-translation">Det er ikke tillatt å blande tall fra forskjellige skript.</target>
+                <target>Det er ikke tillatt å blande tall fra forskjellige skript.</target>
             </trans-unit>
             <trans-unit id="109">
                 <source>Using hidden overlay characters is not allowed.</source>
-                <target state="needs-review-translation">Det er ikke tillatt å bruke skjulte overleggskarakterer.</target>
+                <target>Det er ikke tillatt å bruke skjulte overleggskarakterer.</target>
             </trans-unit>
             <trans-unit id="110">
                 <source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
-                <target state="needs-review-translation">Filutvidelsen er ugyldig ({{ extension }}). Tillatte utvidelser er {{ extensions }}.</target>
+                <target>Filutvidelsen er ugyldig ({{ extension }}). Tillatte utvidelser er {{ extensions }}.</target>
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
-                <target state="needs-review-translation">Den oppdagede tegnkodingen er ugyldig ({{ detected }}). Tillatte kodinger er {{ encodings }}.</target>
+                <target>Den oppdagede tegnkodingen er ugyldig ({{ detected }}). Tillatte kodinger er {{ encodings }}.</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig MAC-adresse.</target>
+                <target>Denne verdien er ikke en gyldig MAC-adresse.</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Denne URL-en mangler et toppnivådomene.</target>
+                <target>Denne URL-en mangler et toppnivådomene.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Denne verdien er for kort. Den bør inneholde minst ett ord.|Denne verdien er for kort. Den bør inneholde minst {{ min }} ord.</target>
+                <target>Denne verdien er for kort. Den bør inneholde minst ett ord.|Denne verdien er for kort. Den bør inneholde minst {{ min }} ord.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Denne verdien er for lang. Den bør inneholde kun ett ord.|Denne verdien er for lang. Den bør inneholde {{ max }} ord eller færre.</target>
+                <target>Denne verdien er for lang. Den bør inneholde kun ett ord.|Denne verdien er for lang. Den bør inneholde {{ max }} ord eller færre.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Denne verdien representerer ikke en gyldig uke i ISO 8601-formatet.</target>
+                <target>Denne verdien representerer ikke en gyldig uke i ISO 8601-formatet.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig uke.</target>
+                <target>Denne verdien er ikke en gyldig uke.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Denne verdien bør ikke være før uke "{{ min }}".</target>
+                <target>Denne verdien bør ikke være før uke "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Denne verdien bør ikke være etter uke "{{ max }}".</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig slug.</target>
+                <target>Denne verdien bør ikke være etter uke "{{ max }}".</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Denne verdien er ikke en gyldig Twig-mal.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Denne filen er ikke en gyldig video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Videostørrelsen kunne ikke oppdages.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Videobredden er for stor ({{ width }}px). Tillatt maksimal bredde er {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Videobredden er for liten ({{ width }}px). Forventet minimumsbredde er {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Videohøyden er for stor ({{ height }}px). Tillatt maksimal høyde er {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Videoens høyde er for liten ({{ height }}px). Forventet minstehøyde er {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videoen har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videoen har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Video-forholdet er for stort ({{ ratio }}). Tillatt maksimalt forhold er {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Videoforholdet er for lite ({{ ratio }}). Forventet minimumsforhold er {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Videoen er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske videoer er ikke tillatt.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Videoen er i liggende format ({{ width }}x{{ height }} px). Liggende videoer er ikke tillatt.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Videoen er i portrettformat ({{ width }}x{{ height }}px). Portrettvideoer er ikke tillatt.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Videofilen er ødelagt.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Videoen inneholder flere strømmer. Kun én strøm er tillatt.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Ikke støttet videokodek «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Ikke-støttet videokontainer "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Bildefilen er ødelagt.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Bildet har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Bildet har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Dette filnavnet samsvarer ikke med forventet tegnsett.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nl.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nl.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nl.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nl.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Deze waarde mag niet na week "{{ max }}" liggen.</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Deze waarde is geen geldige slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Deze waarde is geen geldige Twig-template.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Dit bestand is geen geldige video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>De grootte van de video kon niet worden gedetecteerd.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>De videobreedte is te groot ({{ width }}px). Toegestane maximale breedte is {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>De videobreedte is te klein ({{ width }}px). Verwachte minimum breedte is {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>De videohoogte is te groot ({{ height }}px). Toegestane maximale hoogte is {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>De videohoogte is te klein ({{ height }}px). Verwachte minimale hoogte is {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>De video heeft te weinig pixels ({{ pixels }}). Verwachte minimumaantal is {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>De video heeft te veel pixels ({{ pixels }}). Het verwachte maximum is {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>De videoratio is te groot ({{ ratio }}). Toegestane maximale ratio is {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>De videoratio is te klein ({{ ratio }}). Verwachte minimumverhouding is {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>De video is vierkant ({{ width }}x{{ height }}px). Vierkante video's zijn niet toegestaan.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>De video is in liggende oriëntatie ({{ width }}x{{ height }} px). Liggende video's zijn niet toegestaan.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>De video is in portretstand ({{ width }}x{{ height }}px). Video's in portretstand zijn niet toegestaan.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Het videobestand is beschadigd.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>De video bevat meerdere streams. Slechts één stream is toegestaan.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Niet-ondersteunde videocodec ‘{{ codec }}’.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Niet-ondersteunde videocontainer "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Het afbeeldingsbestand is beschadigd.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>De afbeelding heeft te weinig pixels ({{ pixels }}). Verwachte minimumhoeveelheid is {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>De afbeelding heeft te veel pixels ({{ pixels }}). Het verwachte maximum is {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Deze bestandsnaam komt niet overeen met de verwachte tekencodering.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nn.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nn.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nn.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.nn.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target state="needs-review-translation">Denne verdien bør ikkje vere etter veke "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Denne verdien er ikkje ein gyldig slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">Denne verdien er ikkje ein gyldig Twig-mal.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">Denne fila er ikkje ein gyldig video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">Storleiken på videoen kunne ikkje oppdagast.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">Videobreidda er for stor ({{ width }}px). Tillaten maksimal breidde er {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">Videobreidda er for lita ({{ width }}px). Forventa minimumsbreidde er {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">Videoen si høgd er for stor ({{ height }}px). Tillaten maksimal høgd er {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">Videohøgda er for lita ({{ height }}px). Forventa minstehøgd er {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Videoen har for få pikslar ({{ pixels }}). Forventa minimum er {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Videoen har for mange pikslar ({{ pixels }}). Forventa maksimalt tal er {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">Videoforholdet er for stort ({{ ratio }}). Tillaten maksimal forhold er {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">Videoforholdet er for lite ({{ ratio }}). Forventa minimumsforhold er {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">Videoen er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske videoar er ikkje tillatne.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Videoen er i liggjande format ({{ width }}x{{ height }} px). Liggjande videoar er ikkje tillatne.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Videoen er i portrettformat ({{ width }}x{{ height }}px). Portrettvideoar er ikkje tillatne.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">Videofila er skadd.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">Videoen inneheld fleire straumar. Berre éin straum er tillaten.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">Ikkje støtta videokodek «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">Ikkje-støtta videokontainer "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">Bildefila er skadd.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Biletet har for få pikslar ({{ pixels }}). Forventa minimum er {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Biletet har for mange pikslar ({{ pixels }}). Forventa maksimalt tal er {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">Dette filnamnet samsvarar ikkje med forventa teiknsett.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.no.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.no.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.no.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.no.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig IP-adresse.</target>
+                <target>Denne verdien er ikke en gyldig IP-adresse.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -192,7 +192,7 @@
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target state="needs-review-translation">Ingen midlertidig mappe ble konfigurert i php.ini, eller den konfigurerte mappen eksisterer ikke.</target>
+                <target>Ingen midlertidig mappe ble konfigurert i php.ini, eller den konfigurerte mappen eksisterer ikke.</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Denne verdien er ikke et gyldig internasjonalt bankkontonummer (IBAN).</target>
+                <target>Denne verdien er ikke et gyldig internasjonalt bankkontonummer (IBAN).</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig forretningsidentifikasjonskode (BIC).</target>
+                <target>Denne verdien er ikke en gyldig forretningsidentifikasjonskode (BIC).</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig UUID.</target>
+                <target>Denne verdien er ikke en gyldig UUID.</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -404,75 +404,155 @@
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target state="needs-review-translation">Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.|Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.</target>
+                <target>Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.|Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
-                <target state="needs-review-translation">Passordstyrken er for lav. Vennligst bruk et sterkere passord.</target>
+                <target>Passordstyrken er for lav. Vennligst bruk et sterkere passord.</target>
             </trans-unit>
             <trans-unit id="106">
                 <source>This value contains characters that are not allowed by the current restriction-level.</source>
-                <target state="needs-review-translation">Denne verdien inneholder tegn som ikke er tillatt av gjeldende restriksjonsnivå.</target>
+                <target>Denne verdien inneholder tegn som ikke er tillatt av gjeldende restriksjonsnivå.</target>
             </trans-unit>
             <trans-unit id="107">
                 <source>Using invisible characters is not allowed.</source>
-                <target state="needs-review-translation">Det er ikke tillatt å bruke usynlige tegn.</target>
+                <target>Det er ikke tillatt å bruke usynlige tegn.</target>
             </trans-unit>
             <trans-unit id="108">
                 <source>Mixing numbers from different scripts is not allowed.</source>
-                <target state="needs-review-translation">Det er ikke tillatt å blande tall fra forskjellige skript.</target>
+                <target>Det er ikke tillatt å blande tall fra forskjellige skript.</target>
             </trans-unit>
             <trans-unit id="109">
                 <source>Using hidden overlay characters is not allowed.</source>
-                <target state="needs-review-translation">Det er ikke tillatt å bruke skjulte overleggskarakterer.</target>
+                <target>Det er ikke tillatt å bruke skjulte overleggskarakterer.</target>
             </trans-unit>
             <trans-unit id="110">
                 <source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
-                <target state="needs-review-translation">Filutvidelsen er ugyldig ({{ extension }}). Tillatte utvidelser er {{ extensions }}.</target>
+                <target>Filutvidelsen er ugyldig ({{ extension }}). Tillatte utvidelser er {{ extensions }}.</target>
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
-                <target state="needs-review-translation">Den oppdagede tegnkodingen er ugyldig ({{ detected }}). Tillatte kodinger er {{ encodings }}.</target>
+                <target>Den oppdagede tegnkodingen er ugyldig ({{ detected }}). Tillatte kodinger er {{ encodings }}.</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig MAC-adresse.</target>
+                <target>Denne verdien er ikke en gyldig MAC-adresse.</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Denne URL-en mangler et toppnivådomene.</target>
+                <target>Denne URL-en mangler et toppnivådomene.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Denne verdien er for kort. Den bør inneholde minst ett ord.|Denne verdien er for kort. Den bør inneholde minst {{ min }} ord.</target>
+                <target>Denne verdien er for kort. Den bør inneholde minst ett ord.|Denne verdien er for kort. Den bør inneholde minst {{ min }} ord.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Denne verdien er for lang. Den bør inneholde kun ett ord.|Denne verdien er for lang. Den bør inneholde {{ max }} ord eller færre.</target>
+                <target>Denne verdien er for lang. Den bør inneholde kun ett ord.|Denne verdien er for lang. Den bør inneholde {{ max }} ord eller færre.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Denne verdien representerer ikke en gyldig uke i ISO 8601-formatet.</target>
+                <target>Denne verdien representerer ikke en gyldig uke i ISO 8601-formatet.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig uke.</target>
+                <target>Denne verdien er ikke en gyldig uke.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Denne verdien bør ikke være før uke "{{ min }}".</target>
+                <target>Denne verdien bør ikke være før uke "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Denne verdien bør ikke være etter uke "{{ max }}".</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Denne verdien er ikke en gyldig slug.</target>
+                <target>Denne verdien bør ikke være etter uke "{{ max }}".</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Denne verdien er ikke en gyldig Twig-mal.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Denne filen er ikke en gyldig video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Videostørrelsen kunne ikke oppdages.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Videobredden er for stor ({{ width }}px). Tillatt maksimal bredde er {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Videobredden er for liten ({{ width }}px). Forventet minimumsbredde er {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Videohøyden er for stor ({{ height }}px). Tillatt maksimal høyde er {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Videoens høyde er for liten ({{ height }}px). Forventet minstehøyde er {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videoen har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videoen har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Video-forholdet er for stort ({{ ratio }}). Tillatt maksimalt forhold er {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Videoforholdet er for lite ({{ ratio }}). Forventet minimumsforhold er {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Videoen er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske videoer er ikke tillatt.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Videoen er i liggende format ({{ width }}x{{ height }} px). Liggende videoer er ikke tillatt.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Videoen er i portrettformat ({{ width }}x{{ height }}px). Portrettvideoer er ikke tillatt.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Videofilen er ødelagt.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Videoen inneholder flere strømmer. Kun én strøm er tillatt.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Ikke støttet videokodek «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Ikke-støttet videokontainer "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Bildefilen er ødelagt.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Bildet har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Bildet har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Dette filnavnet samsvarer ikke med forventet tegnsett.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pl.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pl.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pl.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pl.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -404,7 +404,7 @@
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target>Nazwa pliku jest za długa. Powinna mieć {{ filename_max_length }} znak lub mniej.|Nazwa pliku jest za długa. Powinna mieć {{ filename_max_length }} znaków lub mniej.</target>
+                <target>Nazwa pliku jest za długa. Powinna mieć {{ filename_max_length }} znak lub mniej.|Nazwa pliku jest za długa. Powinna mieć {{ filename_max_length }} znaki lub mniej.|Nazwa pliku jest za długa. Powinna mieć {{ filename_max_length }} znaków lub mniej.</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
@@ -448,7 +448,7 @@
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target>Ta wartość jest zbyt długa. Powinna zawierać jedno słowo.|Ta wartość jest zbyt długa. Powinna zawierać {{ max }} słów lub mniej.</target>
+                <target>Ta wartość jest zbyt długa. Powinna zawierać jedno słowo.|Ta wartość jest zbyt długa. Powinna zawierać {{ max }} słowa lub mniej.|Ta wartość jest zbyt długa. Powinna zawierać {{ max }} słów lub mniej.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
@@ -466,14 +466,94 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Ta wartość nie powinna być po tygodniu "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Ta wartość nie jest prawidłowym slugiem.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
                 <target>Ta wartość nie jest prawidłowym szablonem Twig.</target>
             </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Ten plik nie jest prawidłowym plikiem wideo.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Nie można wykryć rozmiaru wideo.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Szerokość wideo jest zbyt duża ({{ width }}px). Maksymalna dopuszczalna szerokość to {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Szerokość wideo jest zbyt mała ({{ width }}px). Oczekiwana minimalna szerokość to {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Wysokość wideo jest zbyt duża ({{ height }}px). Maksymalna dopuszczalna wysokość to {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Wysokość wideo jest zbyt mała ({{ height }}px). Oczekiwana minimalna wysokość to {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Wideo ma zbyt mało ({{ pixels }} pikseli). Oczekiwana minimalna liczba to {{ min_pixels }} pikseli.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Wideo ma zbyt wiele ({{ pixels }} pikseli). Oczekiwana maksymalna liczba to {{ max_pixels }} pikseli.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Współczynnik proporcji wideo jest zbyt duży ({{ ratio }}). Maksymalny dopuszczalny współczynnik to {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Współczynnik proporcji wideo jest zbyt mały ({{ ratio }}). Oczekiwany minimalny współczynnik to {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Wideo jest w formacie kwadratowym ({{ width }}x{{ height }}px). Filmy w tym formacie są niedozwolone.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Wideo ma orientację poziomą ({{ width }}x{{ height }}px). Filmy w orientacji poziomej są niedozwolone.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Wideo ma orientację pionową ({{ width }}x{{ height }}px). Filmy w orientacji pionowej są niedozwolone.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Plik wideo jest uszkodzony.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Wideo zawiera wiele strumieni. Dozwolony jest tylko jeden strumień.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Nieobsługiwany kodek wideo "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Nieobsługiwany kontener wideo "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Plik obrazu jest uszkodzony.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Obraz ma zbyt mało ({{ pixels }} pikseli). Oczekiwana minimalna liczba to {{ min_pixels }} pikseli.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Obraz ma zbyt wiele ({{ pixels }} pikseli). Oczekiwana maksymalna liczba to {{ max_pixels }} pikseli.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Ta nazwa pliku nie odpowiada oczekiwanemu zestawowi znaków.</target>
+            </trans-unit>
         </body>
     </file>
 </xliff>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Este valor não deve estar após a semana "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Este valor não é um slug válido.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Este valor não é um modelo Twig válido.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Este arquivo não é um vídeo válido.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Não foi possível detectar o tamanho do vídeo.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>A largura do vídeo é muito grande ({{ width }}px). A largura máxima permitida é {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>A largura do vídeo é muito pequena ({{ width }}px). A largura mínima esperada é {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>A altura do vídeo é muito grande ({{ height }}px). A altura máxima permitida é {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>A altura do vídeo é muito pequena ({{ height }}px). A altura mínima esperada é {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>O vídeo tem poucos pixels ({{ pixels }}). A quantidade mínima esperada é {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>O vídeo tem pixels demais ({{ pixels }}). A quantidade máxima esperada é {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>A proporção do vídeo é muito grande ({{ ratio }}). A proporção máxima permitida é {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>A proporção do vídeo é muito pequena ({{ ratio }}). A proporção mínima esperada é {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>O vídeo é quadrado ({{ width }}x{{ height }}px). Vídeos quadrados não são permitidos.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>O vídeo está no modo paisagem ({{ width }}x{{ height }}px). Vídeos em paisagem não são permitidos.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>O vídeo está em orientação vertical ({{ width }}x{{ height }}px). Vídeos em orientação vertical não são permitidos.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>O arquivo de vídeo está corrompido.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>O vídeo contém múltiplos fluxos. Apenas um fluxo é permitido.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Codec de vídeo não suportado "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Contêiner de vídeo não suportado "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>O arquivo de imagem está corrompido.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>A imagem tem pixels de menos ({{ pixels }}). A quantidade mínima esperada é {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>A imagem tem pixels demais ({{ pixels }}). A quantidade máxima esperada é {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Este nome de arquivo não corresponde ao conjunto de caracteres esperado.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pt.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pt.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pt.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.pt.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Este valor não deve estar após a semana "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Este valor não é um slug válido.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Este valor não é um modelo Twig válido.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Este ficheiro não é um vídeo válido.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Não foi possível detetar o tamanho do vídeo.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>A largura do vídeo é demasiado grande ({{ width }}px). A largura máxima permitida é {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>A largura do vídeo é demasiado pequena ({{ width }}px). A largura mínima esperada é {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>A altura do vídeo é demasiado grande ({{ height }}px). A altura máxima permitida é {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>A altura do vídeo é demasiado pequena ({{ height }}px). A altura mínima esperada é {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>O vídeo tem poucos píxeis ({{ pixels }} píxeis). A quantidade mínima esperada é {{ min_pixels }} píxeis.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>O vídeo tem demasiados píxeis ({{ pixels }} píxeis). A quantidade máxima esperada é {{ max_pixels }} píxeis.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>O rácio do vídeo é demasiado grande ({{ ratio }}). O rácio máximo permitido é {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>O rácio do vídeo é demasiado pequeno ({{ ratio }}). O rácio mínimo esperado é {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>O vídeo é quadrado ({{ width }}x{{ height }}px). Vídeos quadrados não são permitidos.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>O vídeo está orientado na horizontal ({{ width }}x{{ height }}px). Vídeos orientados na horizontal não são permitidos.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>O vídeo está orientado na vertical ({{ width }}x{{ height }}px). Vídeos orientados na vertical não são permitidos.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>O ficheiro de vídeo está corrompido.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>O vídeo contém múltiplos fluxos. Apenas é permitido um fluxo.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Codec de vídeo "{{ codec }}" não suportado.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Contentor de vídeo "{{ container }}" não suportado.</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>O ficheiro de imagem está corrompido.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>A imagem tem poucos píxeis ({{ pixels }} píxeis). A quantidade mínima esperada é {{ min_pixels }} píxeis.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>A imagem tem demasiados píxeis ({{ pixels }} píxeis). A quantidade máxima esperada é {{ max_pixels }} píxeis.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>O nome do ficheiro não corresponde ao conjunto de caracteres esperado.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ro.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ro.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ro.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ro.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -4,11 +4,11 @@
         <body>
             <trans-unit id="1">
                 <source>This value should be false.</source>
-                <target>Această valoare ar trebui să fie falsă (false).</target>
+                <target>Această valoare ar trebui să fie falsă.</target>
             </trans-unit>
             <trans-unit id="2">
                 <source>This value should be true.</source>
-                <target>Această valoare ar trebui să fie adevărată (true).</target>
+                <target>Această valoare ar trebui să fie adevărată.</target>
             </trans-unit>
             <trans-unit id="3">
                 <source>This value should be of type {{ type }}.</source>
@@ -16,7 +16,7 @@
             </trans-unit>
             <trans-unit id="4">
                 <source>This value should be blank.</source>
-                <target>Această valoare ar trebui sa fie goală.</target>
+                <target>Această valoare ar trebui să fie necompletată.</target>
             </trans-unit>
             <trans-unit id="5">
                 <source>The value you selected is not a valid choice.</source>
@@ -24,7 +24,7 @@
             </trans-unit>
             <trans-unit id="6">
                 <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Trebuie să selectați cel puțin {{ limit }} opțiune.|Trebuie să selectați cel puțin {{ limit }} opțiuni.|Trebuie să selectați cel puțin {{ limit }} de opțiuni</target>
+                <target>Trebuie să selectați cel puțin {{ limit }} opțiune.|Trebuie să selectați cel puțin {{ limit }} opțiuni.|Trebuie să selectați cel puțin {{ limit }} de opțiuni.</target>
             </trans-unit>
             <trans-unit id="7">
                 <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
@@ -36,11 +36,11 @@
             </trans-unit>
             <trans-unit id="9">
                 <source>This field was not expected.</source>
-                <target>Acest câmp nu era de aşteptat.</target>
+                <target>Acest câmp nu era prevăzut.</target>
             </trans-unit>
             <trans-unit id="10">
                 <source>This field is missing.</source>
-                <target>Acest câmp este lipsă.</target>
+                <target>Acest câmp lipsește.</target>
             </trans-unit>
             <trans-unit id="11">
                 <source>This value is not a valid date.</source>
@@ -68,7 +68,7 @@
             </trans-unit>
             <trans-unit id="17">
                 <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Tipul fișierului este invalid ({{ type }}). Tipurile permise de fișiere sunt ({{ types }}).</target>
+                <target>Tipul fișierului este invalid ({{ type }}). Tipurile de fișiere permise sunt {{ types }}.</target>
             </trans-unit>
             <trans-unit id="18">
                 <source>This value should be {{ limit }} or less.</source>
@@ -88,15 +88,15 @@
             </trans-unit>
             <trans-unit id="22">
                 <source>This value should not be blank.</source>
-                <target>Această valoare nu ar trebui să fie goală.</target>
+                <target>Această valoare nu ar trebui să fie necompletată.</target>
             </trans-unit>
             <trans-unit id="23">
                 <source>This value should not be null.</source>
-                <target>Această valoare nu ar trebui să fie nulă (null).</target>
+                <target>Această valoare nu ar trebui să fie nulă.</target>
             </trans-unit>
             <trans-unit id="24">
                 <source>This value should be null.</source>
-                <target>Această valoare ar trebui să fie nulă (null).</target>
+                <target>Această valoare ar trebui să fie nulă.</target>
             </trans-unit>
             <trans-unit id="25">
                 <source>This value is not valid.</source>
@@ -108,7 +108,7 @@
             </trans-unit>
             <trans-unit id="27">
                 <source>This value is not a valid URL.</source>
-                <target>Această valoare nu reprezintă un URL (link) valid.</target>
+                <target>Această valoare nu reprezintă un URL valid.</target>
             </trans-unit>
             <trans-unit id="31">
                 <source>The two values should be equal.</source>
@@ -116,7 +116,7 @@
             </trans-unit>
             <trans-unit id="32">
                 <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fișierul este prea mare. Mărimea maximă permisă este {{ limit }} {{ suffix }}.</target>
+                <target>Fișierul este prea mare. Mărimea maximă permisă este de {{ limit }} {{ suffix }}.</target>
             </trans-unit>
             <trans-unit id="33">
                 <source>The file is too large.</source>
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target>Această valoare nu este o adresă de IP validă.</target>
+                <target>Această valoare nu este o adresă IP validă.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -144,7 +144,7 @@
             </trans-unit>
             <trans-unit id="39">
                 <source>This value is not a valid locale.</source>
-                <target>Această valoare nu reprezintă un dialect (o limbă) corect.</target>
+                <target>Această valoare nu este o localizare validă.</target>
             </trans-unit>
             <trans-unit id="40">
                 <source>This value is not a valid country.</source>
@@ -188,7 +188,7 @@
             </trans-unit>
             <trans-unit id="50">
                 <source>No file was uploaded.</source>
-                <target>Nu a fost încărcat nici un fișier.</target>
+                <target>Nu a fost încărcat niciun fișier.</target>
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
@@ -196,11 +196,11 @@
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
-                <target>Nu a fost posibilă scrierea fișierului temporar pe disk.</target>
+                <target>Nu a fost posibilă scrierea fișierului temporar pe disc.</target>
             </trans-unit>
             <trans-unit id="53">
                 <source>A PHP extension caused the upload to fail.</source>
-                <target>O extensie PHP a prevenit încărcarea cu succes a fișierului.</target>
+                <target>O extensie PHP a cauzat eșecul încărcării.</target>
             </trans-unit>
             <trans-unit id="54">
                 <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
@@ -212,15 +212,15 @@
             </trans-unit>
             <trans-unit id="56">
                 <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Această colecție trebuie să conțină {{ limit }} element.|Această colecție trebuie să conțină {{ limit }} elemente.|Această colecție trebuie să conțină {{ limit }} de elemente.</target>
+                <target>Această colecție trebuie să conțină exact {{ limit }} element.|Această colecție trebuie să conțină exact {{ limit }} elemente.|Această colecție trebuie să conțină exact {{ limit }} de elemente.</target>
             </trans-unit>
             <trans-unit id="57">
                 <source>Invalid card number.</source>
-                <target>Numărul card invalid.</target>
+                <target>Numărul cardului este invalid.</target>
             </trans-unit>
             <trans-unit id="58">
                 <source>Unsupported card type or invalid card number.</source>
-                <target>Tipul sau numărul cardului nu sunt valide.</target>
+                <target>Tipul sau numărul cardului sunt invalide.</target>
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
@@ -252,7 +252,7 @@
             </trans-unit>
             <trans-unit id="66">
                 <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Această valoare trebuie să fie mai mare de {{ compared_value }}.</target>
+                <target>Această valoare trebuie să fie mai mare decât {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="67">
                 <source>This value should be greater than or equal to {{ compared_value }}.</source>
@@ -260,11 +260,11 @@
             </trans-unit>
             <trans-unit id="68">
                 <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Această valoare trebuie identică cu {{ compared_value_type }} {{ compared_value }}.</target>
+                <target>Această valoare trebuie să fie identică cu {{ compared_value_type }} {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="69">
                 <source>This value should be less than {{ compared_value }}.</source>
-                <target>Această valoare trebuie să fie mai mică de {{ compared_value }}.</target>
+                <target>Această valoare trebuie să fie mai mică decât {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="70">
                 <source>This value should be less than or equal to {{ compared_value }}.</source>
@@ -288,11 +288,11 @@
             </trans-unit>
             <trans-unit id="75">
                 <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Imaginea este un pătrat ({{ width }}x{{ height }}px). Imaginile pătrat nu sunt permise.</target>
+                <target>Imaginea este pătrată ({{ width }}x{{ height }}px). Imaginile pătrate nu sunt permise.</target>
             </trans-unit>
             <trans-unit id="76">
                 <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Imaginea are orientarea peisaj ({{ width }}x{{ height }}px). Imaginile cu orientare peisaj nu sunt permise.</target>
+                <target>Imaginea are orientarea orizontală ({{ width }}x{{ height }}px). Imaginile cu orientare orizontală nu sunt permise.</target>
             </trans-unit>
             <trans-unit id="77">
                 <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
@@ -304,7 +304,7 @@
             </trans-unit>
             <trans-unit id="79">
                 <source>The host could not be resolved.</source>
-                <target>Numele host nu a putut fi rezolvat către o adresă IP.</target>
+                <target>Host-ul nu a putut fi rezolvat.</target>
             </trans-unit>
             <trans-unit id="80">
                 <source>This value does not match the expected {{ charset }} charset.</source>
@@ -336,7 +336,7 @@
             </trans-unit>
             <trans-unit id="87">
                 <source>This collection should contain only unique elements.</source>
-                <target>Acest set ar trebui să conțină numai elemente unice.</target>
+                <target>Această colecție ar trebui să conțină numai elemente unice.</target>
             </trans-unit>
             <trans-unit id="88">
                 <source>This value should be positive.</source>
@@ -368,19 +368,19 @@
             </trans-unit>
             <trans-unit id="95">
                 <source>This value is not a valid hostname.</source>
-                <target>Această valoare nu este un numele gazdei valid.</target>
+                <target>Această valoare nu este un hostname valid.</target>
             </trans-unit>
             <trans-unit id="96">
                 <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source>
-                <target>Numărul de elemente din această colecție ar trebui să fie un multiplu al {{ compared_value }}.</target>
+                <target>Numărul de elemente din această colecție ar trebui să fie un multiplu de {{ compared_value }}.</target>
             </trans-unit>
             <trans-unit id="97">
                 <source>This value should satisfy at least one of the following constraints:</source>
-                <target>Această valoare trebuie să îndeplinească cel puțin una dintre următoarele reguli:</target>
+                <target>Această valoare trebuie să îndeplinească cel puțin una dintre următoarele condiții:</target>
             </trans-unit>
             <trans-unit id="98">
                 <source>Each element of this collection should satisfy its own set of constraints.</source>
-                <target>Fiecare element din acest set ar trebui să îndeplinească propriul set de reguli.</target>
+                <target>Fiecare element din acest set ar trebui să îndeplinească propriul set de condiții.</target>
             </trans-unit>
             <trans-unit id="99">
                 <source>This value is not a valid International Securities Identification Number (ISIN).</source>
@@ -400,11 +400,11 @@
             </trans-unit>
             <trans-unit id="103">
                 <source>The value of the netmask should be between {{ min }} and {{ max }}.</source>
-                <target>Valoarea netmask-ului trebuie sa fie intre {{ min }} si {{ max }}.</target>
+                <target>Valoarea măștii de rețea trebuie să fie între {{ min }} și {{ max }}.</target>
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target>Denumirea fișierului este prea lungă. Ea trebuie să conțină {{ filename_max_length }} caractere sau mai puține.|Denumirea fișierului este prea lungă. Ea trebuie să conțină {{ filename_max_length }} caractere sau mai puține.</target>
+                <target>Denumirea fișierului este prea lungă. Trebuie să conțină {{ filename_max_length }} caracter sau mai puțin.|Denumirea fișierului este prea lungă. Trebuie să conțină {{ filename_max_length }} caractere sau mai puține.</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
@@ -412,7 +412,7 @@
             </trans-unit>
             <trans-unit id="106">
                 <source>This value contains characters that are not allowed by the current restriction-level.</source>
-                <target>Această valoare conține caractere care nu sunt premise de nivelul de restricționare curent.</target>
+                <target>Această valoare conține caractere care nu sunt permise de nivelul de restricționare curent.</target>
             </trans-unit>
             <trans-unit id="107">
                 <source>Using invisible characters is not allowed.</source>
@@ -424,7 +424,7 @@
             </trans-unit>
             <trans-unit id="109">
                 <source>Using hidden overlay characters is not allowed.</source>
-                <target>Folosirea caracterelor invizibile suprapuse nu este permisă.</target>
+                <target>Folosirea caracterelor ascunse nu este permisă.</target>
             </trans-unit>
             <trans-unit id="110">
                 <source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
@@ -432,7 +432,7 @@
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
-                <target>Codificarea caracterelor detectate nu este valabilă ({{ detected }}). Codificările permise sunt {{ encodings }}.</target>
+                <target>Codificarea caracterelor detectate este invalidă ({{ detected }}). Codificările permise sunt {{ encodings }}.</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Această valoare nu trebuie să fie după săptămâna "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Această valoare nu este un slug valid.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Această valoare nu este un șablon Twig valid.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Acest fișier nu este un videoclip valid.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Dimensiunea videoclipului nu a putut fi detectată.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Lățimea videoclipului este prea mare ({{ width }}px). Lățimea maximă permisă este {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Lățimea videoclipului este prea mică ({{ width }}px). Lățimea minimă așteptată este {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Înălțimea videoclipului este prea mare ({{ height }}px). Înălțimea maximă permisă este {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Înălțimea videoclipului este prea mică ({{ height }}px). Înălțimea minimă așteptată este {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videoclipul are prea puțini pixeli ({{ pixels }}). Cantitatea minimă așteptată este {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videoclipul are prea mulți pixeli ({{ pixels }}). Cantitatea maximă așteptată este {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Raportul video este prea mare ({{ ratio }}). Raportul maxim permis este {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Raportul video este prea mic ({{ ratio }}). Raportul minim așteptat este {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Videoclipul este pătrat ({{ width }}x{{ height }}px). Videoclipurile pătrate nu sunt permise.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Videoclipul are orientare peisaj ({{ width }}x{{ height }} px). Videoclipurile în orientare peisaj nu sunt permise.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Videoclipul este în orientare portret ({{ width }}x{{ height }}px). Videoclipurile cu orientare portret nu sunt permise.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Fișierul video este corupt.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Videoclipul conține mai multe fluxuri. Doar un singur flux este permis.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Codec video nesuportat „{{ codec }}”.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Container video nesuportat "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Fișierul imagine este corupt.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Imaginea are prea puțini pixeli ({{ pixels }}). Cantitatea minimă așteptată este {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Imaginea are prea mulți pixeli ({{ pixels }}). Cantitatea maximă așteptată este {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Acest nume de fișier nu corespunde setului de caractere așteptat.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Это значение не должно быть после недели "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Это значение не является допустимым slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Это значение не является корректным шаблоном Twig.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Этот файл не является корректным видео.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Не удалось определить размер видео.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Ширина видео слишком велика ({{ width }}px). Максимально допустимая ширина {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Ширина видео слишком мала ({{ width }}px). Минимально допустимая ширина {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Высота видео слишком велика ({{ height }}px). Максимально допустимая высота {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Высота видео слишком мала ({{ height }}px). Минимально допустимая высота {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>В видео слишком мало пикселей ({{ pixels }} пикселей). Минимально допустимое количество {{ min_pixels }} пикселей.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>В видео слишком много пикселей ({{ pixels }} пикселей). Максимально допустимое количество {{ max_pixels }} пикселей.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Соотношение сторон видео слишком велико ({{ ratio }}). Максимально допустимое соотношение {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Соотношение сторон видео слишком мало ({{ ratio }}). Минимально допустимое соотношение {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Видео квадратное ({{ width }}x{{ height }}px). Квадратные видео не разрешены.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Видео в альбомной ориентации ({{ width }}x{{ height }}px). Видео в альбомной ориентации не разрешены.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Видео в портретной ориентации ({{ width }}x{{ height }}px). Видео в портретной ориентации не разрешены.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Видеофайл повреждён.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Видео содержит несколько потоков. Разрешён только один поток.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Неподдерживаемый видеокодек «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Неподдерживаемый видеоконтейнер «{{ container }}».</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Файл изображения повреждён.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>В изображении слишком мало пикселей ({{ pixels }} пикселей). Минимально допустимое количество {{ min_pixels }} пикселей.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>В изображении слишком много пикселей ({{ pixels }} пикселей). Максимально допустимое количество {{ max_pixels }} пикселей.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Это имя файла не соответствует ожидаемой кодировке.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sk.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sk.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sk.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sk.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Táto hodnota nie je platná IP adresa.</target>
+                <target>Táto hodnota nie je platná IP adresa.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Táto hodnota by nemala byť po týždni "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Táto hodnota nie je platný slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Táto hodnota nie je platnou Twig šablónou.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Tento súbor nie je platné video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Veľkosť videa sa nepodarilo zistiť.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Šírka videa je príliš veľká ({{ width }}px). Povolená maximálna šírka je {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Šírka videa je príliš malá ({{ width }}px). Očakávaná minimálna šírka je {{ min_width }} px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Výška videa je príliš veľká ({{ height }}px). Povolená maximálna výška je {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Výška videa je príliš malá ({{ height }}px). Očakávaná minimálna výška je {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Video má príliš málo pixelov ({{ pixels }}). Očakávané minimálne množstvo je {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Video má príliš veľa pixelov ({{ pixels }}). Očakávané maximálne množstvo je {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Pomer strán videa je príliš veľký ({{ ratio }}). Povolený maximálny pomer strán je {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Pomer strán videa je príliš malý ({{ ratio }}). Očakávaný minimálny pomer strán je {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Video je štvorcové ({{ width }}x{{ height }}px). Štvorcové videá nie sú povolené.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Video je orientované na šírku ({{ width }}x{{ height }} px). Videá orientované na šírku nie sú povolené.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Video je orientované na výšku ({{ width }}x{{ height }}px). Videá orientované na výšku nie sú povolené.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Videosúbor je poškodený.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Video obsahuje viacero tokov. Povolený je len jeden tok.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Nepodporovaný videokodek "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Nepodporovaný kontajner videa "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Súbor obrázka je poškodený.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Obrázok má príliš málo pixelov ({{ pixels }}). Očakávané minimálne množstvo je {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Obrázok má príliš veľa pixelov ({{ pixels }}). Očakávané maximálne množstvo je {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Tento názov súboru nezodpovedá očakávanej znakovej sade.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sl.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sl.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sl.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sl.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Ta vrednost ne sme biti po tednu "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Ta vrednost ni veljaven URL slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Ta vrednost ni veljavna predloga Twig.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Ta datoteka ni veljavna videodatoteka.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Velikosti videoposnetka ni bilo mogoče določiti.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Širina videoposnetka je prevelika ({{ width }}px). Največja dovoljena širina je {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Širina videoposnetka je premajhna ({{ width }}px). Najmanjša pričakovana širina je {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Višina videoposnetka je prevelika ({{ height }}px). Največja dovoljena višina je {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Višina videoposnetka je premajhna ({{ height }}px). Najmanjša pričakovana višina je {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videoposnetek ima premalo slikovnih pik ({{ pixels }}). Najmanjše pričakovano število je {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videoposnetek ima preveč slikovnih pik ({{ pixels }}). Največje pričakovano število je {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Razmerje videoposnetka je preveliko ({{ ratio }}). Največje dovoljeno razmerje je {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Razmerje videoposnetka je premajhno ({{ ratio }}). Najmanjše pričakovano razmerje je {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Videoposnetek je kvadraten ({{ width }}x{{ height }}px). Kvadratni videoposnetki niso dovoljeni.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Videoposnetek je ležeče usmerjen ({{ width }}x{{ height }}px). Ležeče usmerjeni videoposnetki niso dovoljeni.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Videoposnetek je pokončno usmerjen ({{ width }}x{{ height }}px). Pokončno usmerjeni videoposnetki niso dovoljeni.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Videodatoteka je poškodovana.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Videoposnetek vsebuje več tokov. Dovoljen je le en tok.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Nepodprt videokodek "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Nepodprt videovsebnik "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Slikovna datoteka je poškodovana.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Slika ima premalo slikovnih pik ({{ pixels }}). Najmanjše pričakovano število je {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Slika ima preveč slikovnih pik ({{ pixels }}). Največje pričakovano število je {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Ime datoteke ne ustreza pričakovanemu naboru znakov.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sq.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sq.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sq.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sq.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -61,23 +61,23 @@
             </trans-unit>
             <trans-unit id="13">
                 <source>This value is not a valid email address.</source>
-                <target>Kjo vlerë nuk është adresë email-i e vlefshme.</target>
+                <target>Kjo vlerë nuk është email adresë e vlefshme.</target>
             </trans-unit>
             <trans-unit id="14">
                 <source>The file could not be found.</source>
-                <target>Skeda nuk u gjet.</target>
+                <target>Fajli nuk u gjet.</target>
             </trans-unit>
             <trans-unit id="15">
                 <source>The file is not readable.</source>
-                <target>Skeda nuk është e lexueshme.</target>
+                <target>Fajli nuk është e lexueshme.</target>
             </trans-unit>
             <trans-unit id="16">
                 <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Skeda është shumë e madhe ({{ size }} {{ suffix }}). Madhësia maksimale e lejuar është {{ limit }} {{ suffix }}.</target>
+                <target>Fajli është shumë e madhe ({{ size }} {{ suffix }}). Madhësia maksimale e lejuar është {{ limit }} {{ suffix }}.</target>
             </trans-unit>
             <trans-unit id="17">
                 <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Lloji “mime” i skedës është i pavlefshëm ({{ type }}). Llojet “mime” të lejuara janë {{ types }}.</target>
+                <target>Lloji “mime” i fajlit është i pavlefshëm ({{ type }}). Llojet “mime” të lejuara janë {{ types }}.</target>
             </trans-unit>
             <trans-unit id="18">
                 <source>This value should be {{ limit }} or less.</source>
@@ -125,15 +125,15 @@
             </trans-unit>
             <trans-unit id="32">
                 <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Kjo skedë është shumë e madhe. Madhësia maksimale e lejuar është {{ limit }} {{ suffix }}.</target>
+                <target>Ky fajl është shumë i madhë. Madhësia maksimale e lejuar është {{ limit }} {{ suffix }}.</target>
             </trans-unit>
             <trans-unit id="33">
                 <source>The file is too large.</source>
-                <target>Kjo skedë është shumë e madhe.</target>
+                <target>Ky fajl është shumë i madhë.</target>
             </trans-unit>
             <trans-unit id="34">
                 <source>The file could not be uploaded.</source>
-                <target>Kjo skedë nuk mund të ngarkohet.</target>
+                <target>Ky fajl nuk mund të ngarkohet.</target>
             </trans-unit>
             <trans-unit id="35">
                 <source>This value should be a valid number.</source>
@@ -141,7 +141,7 @@
             </trans-unit>
             <trans-unit id="36">
                 <source>This file is not a valid image.</source>
-                <target>Kjo skedë nuk është një imazh i vlefshëm.</target>
+                <target>Ky fajl nuk është një imazh i vlefshëm.</target>
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
@@ -193,19 +193,19 @@
             </trans-unit>
             <trans-unit id="49">
                 <source>The file was only partially uploaded.</source>
-                <target>Kjo skedë është ngarkuar pjesërisht.</target>
+                <target>Ky fajl është ngarkuar pjesërisht.</target>
             </trans-unit>
             <trans-unit id="50">
                 <source>No file was uploaded.</source>
-                <target>Nuk është ngarkuar ndonjë skedë.</target>
+                <target>Nuk është ngarkuar ndonjë fajl.</target>
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target>Nuk është konfiguruar asnjë skedar i përkohshëm në php.ini, ose skedari i konfiguruar nuk ekziston.</target>
+                <target>Nuk është konfiguruar asnjë dosje e përkohshëm në php.ini, ose dosja e konfiguruar nuk ekziston.</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
-                <target>Nuk mund të shkruhet skeda e përkohshme në disk.</target>
+                <target>Nuk mund të shkruhet fajli e përkohshme në disk.</target>
             </trans-unit>
             <trans-unit id="53">
                 <source>A PHP extension caused the upload to fail.</source>
@@ -229,7 +229,7 @@
             </trans-unit>
             <trans-unit id="58">
                 <source>Unsupported card type or invalid card number.</source>
-                <target>Lloj karte i papranuar ose numër karte i pavlefshëm.</target>
+                <target>Lloji i kartës i papërkrahur ose numër kartës i pavlefshëm.</target>
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
@@ -309,7 +309,7 @@
             </trans-unit>
             <trans-unit id="78">
                 <source>An empty file is not allowed.</source>
-                <target>Një skedë e zbrazët nuk lejohet.</target>
+                <target>Një fajl i zbrazët nuk lejohet.</target>
             </trans-unit>
             <trans-unit id="79">
                 <source>The host could not be resolved.</source>
@@ -413,7 +413,7 @@
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target>Emri i skedës është shumë i gjatë. Duhet të ketë maksimumi {{ filename_max_length }} karakter ose më pak.|Emri i skedës është shumë i gjatë. Duhet të ketë maksimumi {{ filename_max_length }} karaktere ose më pak.</target>
+                <target>Emri i fajlit është shumë i gjatë. Duhet të ketë maksimumi {{ filename_max_length }} karakter ose më pak.|Emri i fajlit është shumë i gjatë. Duhet të ketë maksimumi {{ filename_max_length }} karaktere ose më pak.</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
@@ -437,7 +437,7 @@
             </trans-unit>
             <trans-unit id="110">
                 <source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
-                <target>Shtesa e skedarit është e pavlefshme ({{ extension }}). Shtesat e lejuara janë {{ extensions }}.</target>
+                <target>Shtesa e fajlit është e pavlefshme ({{ extension }}). Shtesat e lejuara janë {{ extensions }}.</target>
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
@@ -449,7 +449,7 @@
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Kësaj URL i mungon një domain i nivelit të lartë.</target>
+                <target>Kësaj URL-je i mungon një domain i nivelit të sipërm.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
@@ -475,13 +475,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Kjo vlerë nuk duhet të jetë pas javës "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Kjo vlerë nuk është një slug i vlefshëm.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Kjo vlerë nuk është një shabllon Twig i vlefshëm.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Ky fajl nuk është video e vlefshme.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Madhësia e videos nuk mund të zbulohej.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Gjerësia e videos është shumë e madhe ({{ width }}px). Gjerësia maksimale e lejuar është {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Gjerësia e videos është shumë e vogël ({{ width }}px). Gjerësia minimale e pritur është {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Lartësia e videos është shumë e madhe ({{ height }}px). Lartësia maksimale e lejuar është {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Lartësia e videos është shumë e vogël ({{ height }}px). Lartësia minimale e pritur është {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Video ka shumë pak pikselë ({{ pixels }}). Sasia minimale e pritur është {{ min_pixels }}px.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videoja ka tepër piksele ({{ pixels }}). Sasia maksimale e pritur është {{ max_pixels }}px.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Raporti i videos është shumë i madh ({{ ratio }}). Raporti maksimal i lejuar është {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Raporti i videos është shumë i vogël ({{ ratio }}). Raporti minimal i pritur është {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Videoja është katrore ({{ width }}x{{ height }}px). Videot katrore nuk lejohen.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Videoja është me orientim horizontal ({{ width }}x{{ height }}px). Videot horizontale nuk lejohen.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Videoja është me orientim portret ({{ width }}x{{ height }}px). Videot me orientim portret nuk lejohen.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Fajli i videos është i korruptuar.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Videoja përmban disa rrjedha. Lejohet vetëm një rrjedhë.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Kodeku videos është i pambështetur „{{ codec }}“.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Kontejneri videos është i pambështetur "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Fajli i imazhit është korruptuar.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Imazhi ka shumë pak pikselë ({{ pixels }}). Sasia minimale e pritur është {{ min_pixels }}px.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Imazhi ka shumë pikselë ({{ pixels }}). Shuma maksimale e pritur është {{ max_pixels }}px.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Ky emër fajlit nuk përputhet me grupin e pritur të karaktereve.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sr_Cyrl.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sr_Cyrl.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sr_Cyrl.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sr_Cyrl.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Ова вредност не треба да буде после недеље "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Ова вредност није валидан слуг.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Ова вредност није валидан Twig шаблон.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Ова датотека није валидан видео.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Величина видеа не може бити одређена.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Ширина видеа је превелика ({{ width }}px). Дозвољена максимална ширина је {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Ширина видеа је премала ({{ width }}px). Очекивана минимална ширина је {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Висина видеа је превелика ({{ height }}px). Дозвољена максимална висина је {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Висина видеа је премала ({{ height }}px). Очекивана минимална висина је {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Видео има премало пиксела ({{ pixels }}). Очекивани минимум је {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Видео има превише пиксела ({{ pixels }}). Очекивани максимум је {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Однос страница видеа је превелик ({{ ratio }}). Дозвољени максимални однос је {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Однос страница видеа је премали ({{ ratio }}). Очекивани минимални однос је {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Видео је квадратног облика ({{ width }}x{{ height }}px). Квадратни видео записи нису дозвољени.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Видео је у водоравној оријентацији ({{ width }}x{{ height }}px). Водоравно оријентисани видео записи нису дозвољени.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Видео је у портрет оријентацији ({{ width }}x{{ height }}px). Портретно оријентисани видео записи нису дозвољени.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Видео датотека је оштећена.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Видео садржи више токова. Дозвољен је само један ток.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Неподржан видео кодек „{{ codec }}“.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Неподржан видео контејнер „{{ container }}“.</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Датотека слике је оштећена.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Слика има премало пиксела ({{ pixels }}). Очекивани минимум је {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Слика има превише пиксела ({{ pixels }}). Очекивани максимум је {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Ово име датотеке не одговара очекиваном скупу знакова.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sr_Latn.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sr_Latn.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sr_Latn.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sr_Latn.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Ova vrednost ne treba da bude posle nedelje "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Ova vrednost nije validan slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">Ova vrednost nije važeći Twig šablon.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">Ova datoteka nije važeći video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">Nije bilo moguće utvrditi veličinu video snimka.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">Širina videa je prevelika ({{ width }}px). Dozvoljena maksimalna širina je {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">Širina videa je previše mala ({{ width }}px). Očekivana minimalna širina je {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">Visina videa je prevelika ({{ height }}px). Dozvoljena maksimalna visina je {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">Visina videa je premala ({{ height }}px). Očekivana minimalna visina je {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Video ima premalo piksela ({{ pixels }}). Očekivana minimalna količina je {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Video ima previše piksela ({{ pixels }}). Očekivana maksimalna količina je {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">Odnos slike videa je prevelik ({{ ratio }}). Dozvoljeni maksimalni odnos je {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">Odnos stranica videa je previše mali ({{ ratio }}). Očekivani minimalni odnos je {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">Video je kvadratnog oblika ({{ width }}x{{ height }}px). Kvadratni video zapisi nisu dozvoljeni.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Video je u vodoravnoj orijentaciji ({{ width }}x{{ height }} px). Vodoravni video zapisi nisu dozvoljeni.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Video je u portret orijentaciji ({{ width }}x{{ height }}px). Video zapisi u portret orijentaciji nisu dozvoljeni.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">Video datoteka je oštećena.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">Video sadrži više tokova. Dozvoljen je samo jedan tok.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">Nepodržan video kodek „{{ codec }}“.</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">Nepodržan video kontejner "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">Datoteka slike je oštećena.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Slika ima premalo piksela ({{ pixels }}). Očekivani minimalni broj je {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Slika ima previše piksela ({{ pixels }}). Očekivani maksimalni broj je {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">Ovo ime datoteke ne odgovara očekivanom skupu znakova.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -440,39 +440,119 @@
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Denna URL saknar en toppdomän.</target>
+                <target>Denna URL saknar en toppdomän.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Det här värdet är för kort. Det ska innehålla minst ett ord.|Det här värdet är för kort. Det ska innehålla minst {{ min }} ord.</target>
+                <target>Det här värdet är för kort. Det ska innehålla minst ett ord.|Det här värdet är för kort. Det ska innehålla minst {{ min }} ord.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Det här värdet är för långt. Det ska innehålla endast ett ord.|Det här värdet är för långt. Det ska innehålla {{ max }} ord eller färre.</target>
+                <target>Det här värdet är för långt. Det ska innehålla endast ett ord.|Det här värdet är för långt. Det ska innehålla {{ max }} ord eller färre.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Det här värdet representerar inte en giltig vecka i ISO 8601-formatet.</target>
+                <target>Det här värdet representerar inte en giltig vecka i ISO 8601-formatet.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Det här värdet är inte en giltig vecka.</target>
+                <target>Det här värdet är inte en giltig vecka.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Det här värdet bör inte vara före vecka "{{ min }}".</target>
+                <target>Det här värdet bör inte vara före vecka "{{ min }}".</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Det här värdet bör inte vara efter vecka "{{ max }}".</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Detta värde är inte en giltig slug.</target>
+                <target>Det här värdet bör inte vara efter vecka "{{ max }}".</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Det här värdet är inte en giltig Twig-mall.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Den här filen är inte en giltig video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Videons storlek kunde inte upptäckas.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Videobredden är för stor ({{ width }}px). Tillåten maximal bredd är {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Videobredden är för liten ({{ width }}px). Förväntad minsta bredd är {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Videons höjd är för stor ({{ height }}px). Tillåten maximal höjd är {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Videohöjden är för liten ({{ height }}px). Förväntad minimihöjd är {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videon har för få pixlar ({{ pixels }}). Förväntad miniminivå är {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videon har för många pixlar ({{ pixels }}). Förväntat maxantal är {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Videons förhållande är för stort ({{ ratio }}). Tillåtet maxförhållande är {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Videoförhållandet är för litet ({{ ratio }}). Förväntat minimiförhållande är {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Videon är kvadratisk ({{ width }}x{{ height }}px). Kvadratiska videor är inte tillåtna.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Videon är i liggande läge ({{ width }}x{{ height }}px). Liggande videor är inte tillåtna.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Videon är i porträttläge ({{ width }}x{{ height }}px). Videor i porträttläge är inte tillåtna.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Videofilen är skadad.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Videon innehåller flera strömmar. Endast en ström är tillåten.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Videokodek stöds inte "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Videokontainer stöds inte "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Bildfilen är skadad.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Bilden har för få pixlar ({{ pixels }}). Förväntat minimiantal är {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Bilden har för många pixlar ({{ pixels }}). Förväntat maxantal är {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Detta filnamn stämmer inte med förväntad teckenuppsättning.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.th.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.th.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.th.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.th.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target state="needs-review-translation">ค่านี้ไม่ควรจะอยู่หลังสัปดาห์ "{{ max }}"</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">ค่านี้ไม่ใช่ slug ที่ถูกต้อง</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">ค่านี้ไม่ใช่เทมเพลต Twig ที่ถูกต้อง</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">ไฟล์นี้ไม่ใช่วิดีโอที่ถูกต้อง</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">ไม่สามารถตรวจพบขนาดของวิดีโอได้</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">ความกว้างของวิดีโอใหญ่เกินไป ({{ width }}px). ความกว้างสูงสุดที่อนุญาตคือ {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">ความกว้างของวิดีโอเล็กเกินไป ({{ width }}px) ความกว้างขั้นต่ำที่คาดหวังคือ {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">ความสูงของวิดีโอสูงเกินไป ({{ height }}px). ความสูงสูงสุดที่อนุญาตคือ {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">ความสูงของวิดีโอมีขนาดเล็กเกินไป ({{ height }}px). ความสูงขั้นต่ำที่คาดไว้คือ {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">วิดีโอนี้มีพิกเซลน้อยเกินไป ({{ pixels }}). ปริมาณขั้นต่ำที่คาดไว้คือ {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">วิดีโอนี้มีพิกเซลมากเกินไป ({{ pixels }}). จำนวนสูงสุดที่คาดไว้คือ {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">อัตราส่วนวิดีโอใหญ่เกินไป ({{ ratio }}) อัตราส่วนสูงสุดที่อนุญาตคือ {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">อัตราส่วนวิดีโอเล็กเกินไป ({{ ratio }}). อัตราส่วนขั้นต่ำที่คาดหวังคือ {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">วิดีโอเป็นสี่เหลี่ยมจัตุรัส ({{ width }}x{{ height }}px). ไม่อนุญาตให้ใช้วิดีโอสี่เหลี่ยมจัตุรัส.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">วิดีโออยู่ในแนวนอน ({{ width }}x{{ height }} พิกเซล). ไม่อนุญาตวิดีโอแนวนอน</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">วิดีโอเป็นแนวตั้ง ({{ width }}x{{ height }}px) วิดีโอแนวตั้งไม่ได้รับอนุญาต</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">ไฟล์วิดีโอเสียหาย.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">วิดีโอนี้มีสตรีมหลายสตรีม อนุญาตเฉพาะสตรีมเดียวเท่านั้น</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">ไม่รองรับตัวแปลงสัญญาณวิดีโอ "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">ไม่รองรับคอนเทนเนอร์วิดีโอ "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">ไฟล์รูปภาพเสียหาย</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">รูปภาพมีพิกเซลน้อยเกินไป ({{ pixels }}). จำนวนขั้นต่ำที่คาดไว้คือ {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">ภาพมีพิกเซลมากเกินไป ({{ pixels }}). จำนวนสูงสุดที่คาดไว้คือ {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">ชื่อไฟล์นี้ไม่ตรงกับชุดอักขระที่คาดไว้.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.tl.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.tl.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.tl.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.tl.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -192,7 +192,7 @@
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target state="needs-review-translation">Walang pansamantalang folder na na-configure sa php.ini, o ang naka-configure na folder ay hindi naroroon.</target>
+                <target>Walang pansamantalang folder na na-configure sa php.ini, o hindi umiiral ang na-configure na folder.</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Ang halagang ito ay hindi dapat pagkatapos ng linggo "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Ang halagang ito ay hindi isang wastong slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Ang halagang ito ay hindi wastong Twig template.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Ang file na ito ay hindi wastong video.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Hindi matukoy ang laki ng video.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Masyadong malaki ang lapad ng video ({{ width }}px). Ang pinakamalaking pinapayagang lapad ay {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Masyadong maliit ang lapad ng video ({{ width }}px). Ang inaasahang pinakamababang lapad ay {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Masyadong malaki ang taas ng video ({{ height }}px). Ang pinakamalaking pinapayagang taas ay {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Masyadong maliit ang taas ng video ({{ height }}px). Ang inaasahang pinakamababang taas ay {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Masyadong kakaunti ang mga pixel ng video ({{ pixels }}). Ang inaasahang pinakamababang bilang ay {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Masyadong marami ang mga pixel ng video ({{ pixels }}). Ang inaasahang pinakamataas na bilang ay {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Masyadong malaki ang ratio ng video ({{ ratio }}). Ang pinakamalaking pinapayagang ratio ay {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Masyadong maliit ang ratio ng video ({{ ratio }}). Ang inaasahang pinakamababang ratio ay {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Parisukat ang video ({{ width }}x{{ height }}px). Hindi pinapayagan ang mga parisukat na video.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Naka-landscape ang video ({{ width }}x{{ height }}px). Hindi pinapayagan ang mga video na naka-landscape.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Naka-portrait ang video ({{ width }}x{{ height }}px). Hindi pinapayagan ang mga video na naka-portrait.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Sira ang video file.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Maraming stream ang video. Iisang stream lamang ang pinapayagan.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Hindi suportadong video codec "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Hindi suportadong video container "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Sira ang file ng larawan.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Masyadong kakaunti ang mga pixel ng larawan ({{ pixels }}). Ang inaasahang pinakamababang bilang ay {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Masyadong marami ang mga pixel ng larawan ({{ pixels }}). Ang inaasahang pinakamataas na bilang ay {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Ang pangalan ng file na ito ay hindi tumutugma sa inaasahang charset.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.tr.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.tr.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.tr.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.tr.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Bu değer “{{ max }}” haftasından sonra olmamalıdır</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Bu değer geçerli bir “slug” değildir.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Bu değer geçerli bir Twig şablonu olarak kabul edilmiyor.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Bu dosya geçerli bir video dosyası değil.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Videonun boyutu tespit edilemedi.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Video genişliği çok büyük ({{ width }}px). İzin verilen maksimum genişlik {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Video genişliği çok küçük ({{ width }}px). Beklenen minimum genişlik {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Video yüksekliği çok büyük ({{ height }}px). İzin verilen maksimum yükseklik {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Video yüksekliği çok küçük ({{ height }}px). Beklenen minimum yükseklik {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videodaki piksel sayısı çok az ({{ pixels }} piksel). Beklenen minimum miktar {{ min_pixels }} pikseldir.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videodaki piksel sayısı çok fazla ({{ pixels }} piksel). Beklenen maksimum miktar {{ max_pixels }} pikseldir.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Video oranı çok büyük ({{ ratio }}). İzin verilen maksimum oran {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Video oranı çok küçük ({{ ratio }}). Beklenen minimum oran {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Video kare biçimde ({{ width }}x{{ height }}px). Kare videolara izin verilmez.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Video yatay biçimde ({{ width }}x{{ height }}px). Yatay videolara izin verilmez.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Video dikey biçimde ({{ width }}x{{ height }}px). Dikey videolara izin verilmez.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Video dosyası bozuk.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Video birden fazla akış içeriyor. Yalnızca tek akışa izin verilir.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Desteklenmeyen video codec'i "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Desteklenmeyen video kapsayıcısı "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Görüntü dosyası bozulmuş.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Görüntüdeki piksel sayısı çok az ({{ pixels }}). Beklenen minimum miktar {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Görüntüdeki piksel sayısı çok fazla ({{ pixels }}). Beklenen maksimum miktar {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Bu dosya adı beklenen karakter kümesiyle eşleşmiyor.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>Це значення не повинно бути після тижня "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>Це значення не є дійсним slug.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Це значення не є дійсним шаблоном Twig.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Цей файл не є допустимим відеофайлом.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Не вдалося визначити розмір відеофайлу.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Ширина відеофайлу занадто велика ({{ width }}px). Максимально допустима ширина {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Ширина відеофайлу занадто мала ({{ width }}px). Мінімально допустима ширина {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Висота відеофайлу занадто велика ({{ height }}px). Максимально допустима висота {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Висота відеофайлу занадто мала ({{ height }}px). Мінімально допустима висота {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Кількість пікселів у відеофайлі занадто мала ({{ pixels }} пікселів). Мінімально допустима кількість {{ min_pixels }} пікселів.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Кількість пікселів у відеофайлі занадто велика ({{ pixels }} пікселів). Максимально допустима кількість {{ max_pixels }} пікселів.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Співвідношення сторін відеофайлу занадто велике ({{ ratio }}). Максимально допустиме співвідношення сторін {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Співвідношення сторін відеофайлу занадто мале ({{ ratio }}). Мінімально допустиме співвідношення сторін {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target> Відеофайл має квадратні пропорції ({{ width }}x{{ height }}px). Квадратні відеофайли не дозволені.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Відеофайл в альбомній орієнтації ({{ width }}x{{ height }}px). Відеофайли в альбомній орієнтації не дозволені.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Відеофайл у портретній орієнтації ({{ width }}x{{ height }}px). Відеофайли у портретній орієнтації не дозволені.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Відеофайл пошкоджено.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Відеофайл містить кілька потоків. Дозволено лише один потік.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Непідтримуваний відеокодек «{{ codec }}».</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Непідтримуваний відеоконтейнер "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Файл зображення пошкоджено.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Кількість пікселів у зображенні занадто мала ({{ pixels }} пікселів). Мінімально допустима кількість {{ min_pixels }} пікселів.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Кількість пікселів у зображенні занадто велика ({{ pixels }} пікселів). Максимально допустима кількість {{ max_pixels }} пікселів.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Назва файлу не відповідає очікуваному набору символів.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ur.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ur.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ur.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.ur.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target state="needs-review-translation">یہ قدر ہفتہ "{{ max }}" کے بعد نہیں ہونا چاہیے۔</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">یہ قدر درست سلاگ نہیں ہے۔</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">یہ قدر ایک درست Twig سانچہ نہیں ہے۔</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">یہ فائل ایک درست ویڈیو نہیں ہے۔</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">ویڈیو کا سائز معلوم نہیں کیا جا سکا۔</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">ویڈیو کی چوڑائی بہت زیادہ ہے ({{ width }}px)۔ اجازت شدہ زیادہ سے زیادہ چوڑائی {{ max_width }}px ہے۔</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">ویڈیو کی چوڑائی بہت کم ہے ({{ width }}px)۔ متوقع کم از کم چوڑائی {{ min_width }} پکسل ہے۔</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">ویڈیو کی اونچائی بہت زیادہ ہے ({{ height }}px)۔ مجاز زیادہ سے زیادہ اونچائی {{ max_height }}px ہے۔</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">ویڈیو کی اونچائی بہت کم ہے ({{ height }}px)۔ متوقع کم از کم اونچائی {{ min_height }}px ہے۔</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">ویڈیو میں پکسل بہت کم ہیں ({{ pixels }}). متوقع کم از کم مقدار {{ min_pixels }} ہے۔</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">ویڈیو میں پکسلز بہت زیادہ ہیں ({{ pixels }}). متوقع زیادہ سے زیادہ مقدار {{ max_pixels }} ہے۔</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">ویڈیو کا تناسب بہت بڑا ہے ({{ ratio }}). اجازت شدہ زیادہ سے زیادہ تناسب {{ max_ratio }} ہے۔</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">ویڈیو کا تناسب بہت چھوٹا ہے ({{ ratio }}). متوقع کم از کم تناسب {{ min_ratio }} ہے۔</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">ویڈیو مربع ہے ({{ width }}x{{ height }}px). مربع ویڈیوز کی اجازت نہیں ہے۔</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">ویڈیو افقی سمت میں ہے ({{ width }}x{{ height }} پکسل). افقی ویڈیوز کی اجازت نہیں ہے۔</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">ویڈیو عمودی رخ پر ہے ({{ width }}x{{ height }}px). عمودی رخ والی ویڈیوز کی اجازت نہیں ہے۔</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">ویڈیو فائل خراب ہے۔</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">ویڈیو میں متعدد اسٹریمز ہیں۔ صرف ایک اسٹریم کی اجازت ہے۔</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">غیر معاون ویڈیو کوڈیک "{{ codec }}"۔</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">غیر معاونت یافتہ ویڈیو کنٹینر "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">تصویری فائل خراب ہے۔</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">تصویر میں پکسلز بہت کم ہیں ({{ pixels }})۔ متوقع کم سے کم مقدار {{ min_pixels }} ہے۔</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">تصویر میں پکسلز بہت زیادہ ہیں ({{ pixels }}). متوقع زیادہ سے زیادہ مقدار {{ max_pixels }} ہے.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">اس فائل کا نام متوقع حرفوں کے مجموعے سے مطابقت نہیں رکھتا۔</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.uz.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.uz.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.uz.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.uz.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -136,7 +136,7 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target state="needs-review-translation">Bu qiymat haqiqiy IP manzil emas.</target>
+                <target>Bu qiymat haqiqiy IP manzil emas.</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
@@ -192,7 +192,7 @@
             </trans-unit>
             <trans-unit id="51" resname="No temporary folder was configured in php.ini.">
                 <source>No temporary folder was configured in php.ini, or the configured folder does not exist.</source>
-                <target state="needs-review-translation">php.ini da vaqtinchalik katalog sozlanmagan, yoki sozlangan katalog mavjud emas.</target>
+                <target>php.ini da vaqtinchalik katalog sozlanmagan, yoki sozlangan katalog mavjud emas.</target>
             </trans-unit>
             <trans-unit id="52">
                 <source>Cannot write temporary file to disk.</source>
@@ -224,7 +224,7 @@
             </trans-unit>
             <trans-unit id="59" resname="This is not a valid International Bank Account Number (IBAN).">
                 <source>This value is not a valid International Bank Account Number (IBAN).</source>
-                <target state="needs-review-translation">Bu qiymat haqiqiy Xalqaro Bank Hisob Raqami (IBAN) emas.</target>
+                <target>Bu qiymat haqiqiy Xalqaro Bank Hisob Raqami (IBAN) emas.</target>
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
@@ -312,7 +312,7 @@
             </trans-unit>
             <trans-unit id="81" resname="This is not a valid Business Identifier Code (BIC).">
                 <source>This value is not a valid Business Identifier Code (BIC).</source>
-                <target state="needs-review-translation">Bu qiymat haqiqiy Biznes Identifikatsiya Kodi (BIC) emas.</target>
+                <target>Bu qiymat haqiqiy Biznes Identifikatsiya Kodi (BIC) emas.</target>
             </trans-unit>
             <trans-unit id="82">
                 <source>Error</source>
@@ -320,7 +320,7 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target state="needs-review-translation">Bu qiymat haqiqiy UUID emas.</target>
+                <target>Bu qiymat haqiqiy UUID emas.</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
@@ -432,47 +432,127 @@
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
-                <target state="needs-review-translation">Aniqlangan belgi kodlamasi yaroqsiz ({{ detected }}). Ruxsat etilgan kodlamalar {{ encodings }}.</target>
+                <target>Aniqlangan belgi kodlamasi yaroqsiz ({{ detected }}). Ruxsat etilgan kodlamalar {{ encodings }}.</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target state="needs-review-translation">Bu qiymat haqiqiy MAC manzil emas.</target>
+                <target>Bu qiymat haqiqiy MAC manzil emas.</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target state="needs-review-translation">Bu URL yuqori darajali domenni o'z ichiga olmaydi.</target>
+                <target>Bu URL yuqori darajali domenni o'z ichiga olmaydi.</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target state="needs-review-translation">Bu qiymat juda qisqa. U kamida bitta so'z bo'lishi kerak.|Bu qiymat juda qisqa. U kamida {{ min }} so'z bo'lishi kerak.</target>
+                <target>Bu qiymat juda qisqa. U kamida bitta so'z bo'lishi kerak.|Bu qiymat juda qisqa. U kamida {{ min }} so'z bo'lishi kerak.</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target state="needs-review-translation">Bu qiymat juda uzun. U faqat bitta so'z bo'lishi kerak.|Bu qiymat juda uzun. U {{ max }} so'z yoki undan kam bo'lishi kerak.</target>
+                <target>Bu qiymat juda uzun. U faqat bitta so'z bo'lishi kerak.|Bu qiymat juda uzun. U {{ max }} so'z yoki undan kam bo'lishi kerak.</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
-                <target state="needs-review-translation">Bu qiymat ISO 8601 formatida haqiqiy haftaga mos kelmaydi.</target>
+                <target>Bu qiymat ISO 8601 formatida haqiqiy haftaga mos kelmaydi.</target>
             </trans-unit>
             <trans-unit id="117">
                 <source>This value is not a valid week.</source>
-                <target state="needs-review-translation">Bu qiymat haqiqiy hafta emas.</target>
+                <target>Bu qiymat haqiqiy hafta emas.</target>
             </trans-unit>
             <trans-unit id="118">
                 <source>This value should not be before week "{{ min }}".</source>
-                <target state="needs-review-translation">Bu qiymat "{{ min }}" haftadan oldin bo'lmasligi kerak.</target>
+                <target>Bu qiymat "{{ min }}" haftadan oldin bo'lmasligi kerak.</target>
             </trans-unit>
             <trans-unit id="119">
                 <source>This value should not be after week "{{ max }}".</source>
-                <target state="needs-review-translation">Bu qiymat "{{ max }}" haftadan keyin bo'lmasligi kerak.</target>
-            </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Bu qiymat yaroqli slug emas.</target>
+                <target>Bu qiymat "{{ max }}" haftadan keyin bo'lmasligi kerak.</target>
             </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>Bu qiymat yaroqli Twig shabloni emas.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>Ushbu fayl yaroqli video emas.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>Videoning hajmini aniqlab bo‘lmadi.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>Video kengligi juda katta ({{ width }}px). Ruxsat etilgan maksimal kenglik {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>Video kengligi juda kichik ({{ width }}px). Kutilayotgan minimal kenglik {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>Video balandligi juda katta ({{ height }}px). Ruxsat etilgan maksimal balandlik {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>Video balandligi juda kichik ({{ height }}px). Kutilayotgan minimal balandlik {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Videoda piksellar soni juda kam ({{ pixels }}). Kutilgan minimal miqdor {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Videoda juda ko‘p piksellar bor ({{ pixels }}). Kutilayotgan maksimal miqdor {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>Video nisbati juda katta ({{ ratio }}). Ruxsat etilgan maksimal nisbat {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>Video nisbati juda kichik ({{ ratio }}). Kutilayotgan minimal nisbat {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>Video kvadrat ({{ width }}x{{ height }}px). Kvadrat videolarga ruxsat berilmaydi.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>Video gorizontal yo‘nalishda ({{ width }}x{{ height }} px). Gorizontal videolarga ruxsat berilmaydi.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>Video portret yoʻnalishda ({{ width }}x{{ height }}px). Portret yoʻnalishidagi videolarga ruxsat berilmaydi.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>Video fayli buzilgan.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>Videoda bir nechta oqim mavjud. Faqat bitta oqimga ruxsat beriladi.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>Qo‘llab-quvvatlanmaydigan video kodek "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>Qo'llab-quvvatlanmaydigan video konteyner "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>Rasm fayli buzilgan.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>Tasvirda piksellar juda kam ({{ pixels }}). Kutilayotgan minimal miqdor {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>Tasvirda juda ko‘p piksel bor ({{ pixels }}). Kutilayotgan maksimal miqdor {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>Bu fayl nomi kutilgan belgi to‘plamiga mos kelmaydi.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.vi.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.vi.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.vi.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.vi.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target state="needs-review-translation">Giá trị này không nên sau tuần "{{ max }}".</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">Giá trị này không phải là một slug hợp lệ.</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target state="needs-review-translation">Giá trị này không phải là một mẫu Twig hợp lệ.</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target state="needs-review-translation">Tệp này không phải là video hợp lệ.</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target state="needs-review-translation">Không thể phát hiện kích thước của video.</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target state="needs-review-translation">Chiều rộng video quá lớn ({{ width }}px). Chiều rộng tối đa cho phép là {{ max_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target state="needs-review-translation">Chiều rộng video quá nhỏ ({{ width }}px). Chiều rộng tối thiểu mong đợi là {{ min_width }}px.</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target state="needs-review-translation">Chiều cao video quá lớn ({{ height }}px). Chiều cao tối đa cho phép là {{ max_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target state="needs-review-translation">Chiều cao video quá nhỏ ({{ height }}px). Chiều cao tối thiểu dự kiến là {{ min_height }}px.</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Video có quá ít điểm ảnh ({{ pixels }}). Lượng tối thiểu mong đợi là {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Video có quá nhiều điểm ảnh ({{ pixels }}). Số lượng tối đa dự kiến là {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target state="needs-review-translation">Tỉ lệ video quá lớn ({{ ratio }}). Tỉ lệ tối đa được phép là {{ max_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target state="needs-review-translation">Tỉ lệ video quá nhỏ ({{ ratio }}). Tỉ lệ tối thiểu dự kiến là {{ min_ratio }}.</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target state="needs-review-translation">Video có dạng hình vuông ({{ width }}x{{ height }}px). Không cho phép video hình vuông.</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Video có hướng ngang ({{ width }}x{{ height }} px). Không cho phép video ngang.</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target state="needs-review-translation">Video có hướng dọc ({{ width }}x{{ height }}px). Không cho phép video hướng dọc.</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target state="needs-review-translation">Tệp video bị hỏng.</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target state="needs-review-translation">Video chứa nhiều luồng. Chỉ cho phép một luồng.</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target state="needs-review-translation">Bộ mã hóa video không được hỗ trợ "{{ codec }}".</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target state="needs-review-translation">Bộ chứa video không được hỗ trợ "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target state="needs-review-translation">Tệp hình ảnh bị hỏng.</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target state="needs-review-translation">Hình ảnh có quá ít điểm ảnh ({{ pixels }}). Số lượng tối thiểu dự kiến là {{ min_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target state="needs-review-translation">Hình ảnh có quá nhiều điểm ảnh ({{ pixels }}). Lượng tối đa dự kiến là {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target state="needs-review-translation">Tên tệp này không khớp với bộ ký tự mong đợi.</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.zh_CN.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.zh_CN.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.zh_CN.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.zh_CN.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -4,23 +4,23 @@
         <body>
             <trans-unit id="1">
                 <source>This value should be false.</source>
-                <target>该变量的值应为 false 。</target>
+                <target>该值应为 false 。</target>
             </trans-unit>
             <trans-unit id="2">
                 <source>This value should be true.</source>
-                <target>该变量的值应为 true 。</target>
+                <target>该值应为 true 。</target>
             </trans-unit>
             <trans-unit id="3">
                 <source>This value should be of type {{ type }}.</source>
-                <target>该变量的类型应为 {{ type }} 。</target>
+                <target>该值的类型应为 {{ type }} 。</target>
             </trans-unit>
             <trans-unit id="4">
                 <source>This value should be blank.</source>
-                <target>该变量值应为空。</target>
+                <target>该值应为空。</target>
             </trans-unit>
             <trans-unit id="5">
                 <source>The value you selected is not a valid choice.</source>
-                <target>选定变量的值不是有效的选项。</target>
+                <target>该值不是有效的选项。</target>
             </trans-unit>
             <trans-unit id="6">
                 <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
@@ -36,11 +36,11 @@
             </trans-unit>
             <trans-unit id="9">
                 <source>This field was not expected.</source>
-                <target>此字段是多余的。</target>
+                <target>该字段是多余的。</target>
             </trans-unit>
             <trans-unit id="10">
                 <source>This field is missing.</source>
-                <target>此字段缺失。</target>
+                <target>该字段缺失。</target>
             </trans-unit>
             <trans-unit id="11">
                 <source>This value is not a valid date.</source>
@@ -64,43 +64,43 @@
             </trans-unit>
             <trans-unit id="16">
                 <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>文件太大 ({{ size }} {{ suffix }})。文件大小不可以超过 {{ limit }} {{ suffix }} 。</target>
+                <target>文件太大 ({{ size }} {{ suffix }})，文件大小不应超过 {{ limit }} {{ suffix }} 。</target>
             </trans-unit>
             <trans-unit id="17">
                 <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>无效的文件类型 ({{ type }}) 。允许的文件类型有 {{ types }} 。</target>
+                <target>无效的文件类型 ({{ type }}) ，允许的文件类型有 {{ types }} 。</target>
             </trans-unit>
             <trans-unit id="18">
                 <source>This value should be {{ limit }} or less.</source>
-                <target>这个变量的值应该小于或等于 {{ limit }}。</target>
+                <target>该值应小于或等于 {{ limit }} 。</target>
             </trans-unit>
             <trans-unit id="19">
                 <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>字符串太长，长度不可超过 {{ limit }} 个字符。</target>
+                <target>该值太长，长度不应超过 {{ limit }} 个字符。</target>
             </trans-unit>
             <trans-unit id="20">
                 <source>This value should be {{ limit }} or more.</source>
-                <target>该变量的值应该大于或等于 {{ limit }}。</target>
+                <target>该值应大于或等于 {{ limit }} 。</target>
             </trans-unit>
             <trans-unit id="21">
                 <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>字符串太短，长度不可少于 {{ limit }} 个字符。</target>
+                <target>该值太短，长度不应少于 {{ limit }} 个字符。</target>
             </trans-unit>
             <trans-unit id="22">
                 <source>This value should not be blank.</source>
-                <target>该变量不应为空。</target>
+                <target>该值不应为空。</target>
             </trans-unit>
             <trans-unit id="23">
                 <source>This value should not be null.</source>
-                <target>该变量不应为 null 。</target>
+                <target>该值不应为 null 。</target>
             </trans-unit>
             <trans-unit id="24">
                 <source>This value should be null.</source>
-                <target>该变量应为空 null 。</target>
+                <target>该值应为 null 。</target>
             </trans-unit>
             <trans-unit id="25">
                 <source>This value is not valid.</source>
-                <target>该变量值无效 。</target>
+                <target>该值无效。</target>
             </trans-unit>
             <trans-unit id="26">
                 <source>This value is not a valid time.</source>
@@ -112,11 +112,11 @@
             </trans-unit>
             <trans-unit id="31">
                 <source>The two values should be equal.</source>
-                <target>这两个变量的值应该相等。</target>
+                <target>该两个变量值应相等。</target>
             </trans-unit>
             <trans-unit id="32">
                 <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>文件太大，文件大小不可以超过 {{ limit }} {{ suffix }}。 </target>
+                <target>文件太大，文件大小不可以超过 {{ limit }} {{ suffix }} 。</target>
             </trans-unit>
             <trans-unit id="33">
                 <source>The file is too large.</source>
@@ -128,7 +128,7 @@
             </trans-unit>
             <trans-unit id="35">
                 <source>This value should be a valid number.</source>
-                <target>该值应该为有效的数字。</target>
+                <target>该值应为有效的数字。</target>
             </trans-unit>
             <trans-unit id="36">
                 <source>This file is not a valid image.</source>
@@ -136,19 +136,19 @@
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
-                <target>该值不是有效的IP地址。</target>
+                <target>该值不是有效的 IP 地址。</target>
             </trans-unit>
             <trans-unit id="38">
                 <source>This value is not a valid language.</source>
-                <target>该值不是有效的语言名。</target>
+                <target>该值不是有效的语言名称（language）。</target>
             </trans-unit>
             <trans-unit id="39">
                 <source>This value is not a valid locale.</source>
-                <target>该值不是有效的区域值（locale）。</target>
+                <target>该值不是有效的区域名称（locale）。</target>
             </trans-unit>
             <trans-unit id="40">
                 <source>This value is not a valid country.</source>
-                <target>该值不是有效的国家名。</target>
+                <target>该值不是有效的国家名称（country）。</target>
             </trans-unit>
             <trans-unit id="41">
                 <source>This value is already used.</source>
@@ -176,15 +176,15 @@
             </trans-unit>
             <trans-unit id="47">
                 <source>This value should be the user's current password.</source>
-                <target>该变量的值应为用户当前的密码。</target>
+                <target>该值应为用户当前的密码。</target>
             </trans-unit>
             <trans-unit id="48">
                 <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>该变量应为 {{ limit }} 个字符。</target>
+                <target>该值应为 {{ limit }} 个字符。</target>
             </trans-unit>
             <trans-unit id="49">
                 <source>The file was only partially uploaded.</source>
-                <target>该文件的上传不完整。</target>
+                <target>文件的上传不完整。</target>
             </trans-unit>
             <trans-unit id="50">
                 <source>No file was uploaded.</source>
@@ -204,15 +204,15 @@
             </trans-unit>
             <trans-unit id="54">
                 <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>该集合最少应包含 {{ limit }} 个元素。</target>
+                <target>该集合不应少于 {{ limit }} 个元素。</target>
             </trans-unit>
             <trans-unit id="55">
                 <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>该集合最多包含 {{ limit }} 个元素。</target>
+                <target>该集合不应超过 {{ limit }} 个元素。</target>
             </trans-unit>
             <trans-unit id="56">
                 <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>该集合应包含 {{ limit }} 个元素 element 。</target>
+                <target>该集合应为 {{ limit }} 个元素。</target>
             </trans-unit>
             <trans-unit id="57">
                 <source>Invalid card number.</source>
@@ -228,11 +228,11 @@
             </trans-unit>
             <trans-unit id="60">
                 <source>This value is not a valid ISBN-10.</source>
-                <target>该值不是有效的10位国际标准书号（ISBN-10）。</target>
+                <target>该值不是有效的 10 位国际标准书号（ISBN-10）。</target>
             </trans-unit>
             <trans-unit id="61">
                 <source>This value is not a valid ISBN-13.</source>
-                <target>该值不是有效的13位国际标准书号（ISBN-13）。</target>
+                <target>该值不是有效的 13 位国际标准书号（ISBN-13）。</target>
             </trans-unit>
             <trans-unit id="62">
                 <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
@@ -244,7 +244,7 @@
             </trans-unit>
             <trans-unit id="64">
                 <source>This value is not a valid currency.</source>
-                <target>该值不是有效的货币名（currency）。</target>
+                <target>该值不是有效的货币名称（currency）。</target>
             </trans-unit>
             <trans-unit id="65">
                 <source>This value should be equal to {{ compared_value }}.</source>
@@ -272,7 +272,7 @@
             </trans-unit>
             <trans-unit id="71">
                 <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>该值不应先等于 {{ compared_value }} 。</target>
+                <target>该值不应等于 {{ compared_value }} 。</target>
             </trans-unit>
             <trans-unit id="72">
                 <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
@@ -280,11 +280,11 @@
             </trans-unit>
             <trans-unit id="73">
                 <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>图片宽高比太大 ({{ ratio }})。允许的最大宽高比为 {{ max_ratio }}。</target>
+                <target>图片宽高比太大 ({{ ratio }})。允许的最大宽高比为 {{ max_ratio }} 。</target>
             </trans-unit>
             <trans-unit id="74">
                 <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>图片宽高比太小 ({{ ratio }})。允许的最大宽高比为 {{ min_ratio }}。</target>
+                <target>图片宽高比太小 ({{ ratio }})。允许的最大宽高比为 {{ min_ratio }} 。</target>
             </trans-unit>
             <trans-unit id="75">
                 <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
@@ -320,43 +320,43 @@
             </trans-unit>
             <trans-unit id="83" resname="This is not a valid UUID.">
                 <source>This value is not a valid UUID.</source>
-                <target>该值不是有效的UUID。</target>
+                <target>该值不是有效的 UUID 。</target>
             </trans-unit>
             <trans-unit id="84">
                 <source>This value should be a multiple of {{ compared_value }}.</source>
-                <target>此值应为 {{ compared_value }} 的倍数。</target>
+                <target>该值应为 {{ compared_value }} 的倍数。</target>
             </trans-unit>
             <trans-unit id="85">
                 <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source>
-                <target>此业务标识符代码（BIC）与IBAN {{ iban }} 无关。</target>
+                <target>该业务标识符代码（BIC）与 IBAN {{ iban }} 无关。</target>
             </trans-unit>
             <trans-unit id="86">
                 <source>This value should be valid JSON.</source>
-                <target>该值应该是有效的JSON。</target>
+                <target>该值应为有效的 JSON 。</target>
             </trans-unit>
             <trans-unit id="87">
                 <source>This collection should contain only unique elements.</source>
-                <target>该集合应仅包含独一无二的元素。</target>
+                <target>该集合不能包含重复项。</target>
             </trans-unit>
             <trans-unit id="88">
                 <source>This value should be positive.</source>
-                <target>数值应为正数。</target>
+                <target>该值应为正数。</target>
             </trans-unit>
             <trans-unit id="89">
                 <source>This value should be either positive or zero.</source>
-                <target>数值应是正数，或为零。</target>
+                <target>该值应为正数或零。</target>
             </trans-unit>
             <trans-unit id="90">
                 <source>This value should be negative.</source>
-                <target>数值应为负数。</target>
+                <target>该值应为负数。</target>
             </trans-unit>
             <trans-unit id="91">
                 <source>This value should be either negative or zero.</source>
-                <target>数值应是负数，或为零。</target>
+                <target>该值应为负数或零。</target>
             </trans-unit>
             <trans-unit id="92">
                 <source>This value is not a valid timezone.</source>
-                <target>无效时区。</target>
+                <target>该值不是有效的时区。</target>
             </trans-unit>
             <trans-unit id="93">
                 <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source>
@@ -364,7 +364,7 @@
             </trans-unit>
             <trans-unit id="94">
                 <source>This value should be between {{ min }} and {{ max }}.</source>
-                <target>该数值应在 {{ min }} 和 {{ max }} 之间。</target>
+                <target>该值应在 {{ min }} 和 {{ max }} 之间。</target>
             </trans-unit>
             <trans-unit id="95">
                 <source>This value is not a valid hostname.</source>
@@ -372,31 +372,31 @@
             </trans-unit>
             <trans-unit id="96">
                 <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source>
-                <target>该集合内的元素数量得是 {{ compared_value }} 的倍数。</target>
+                <target>该集合的元素数量应为 {{ compared_value }} 的倍数。</target>
             </trans-unit>
             <trans-unit id="97">
                 <source>This value should satisfy at least one of the following constraints:</source>
-                <target>该值需符合以下其中一个约束：</target>
+                <target>该值应符合以下其中一个约束：</target>
             </trans-unit>
             <trans-unit id="98">
                 <source>Each element of this collection should satisfy its own set of constraints.</source>
-                <target>该集合内的每个元素需符合元素本身规定的约束。</target>
+                <target>该集合的每个元素应符合元素本身规定的约束。</target>
             </trans-unit>
             <trans-unit id="99">
                 <source>This value is not a valid International Securities Identification Number (ISIN).</source>
-                <target>该值不是有效的国际证券识别码 （ISIN）。</target>
+                <target>该值不是有效的国际证券识别码（ISIN）。</target>
             </trans-unit>
             <trans-unit id="100">
                 <source>This value should be a valid expression.</source>
-                <target>该值需为一个有效的表达式。</target>
+                <target>该值应为一个有效的表达式。</target>
             </trans-unit>
             <trans-unit id="101">
                 <source>This value is not a valid CSS color.</source>
-                <target>该值不是有效的CSS颜色。</target>
+                <target>该值不是有效的 CSS 颜色。</target>
             </trans-unit>
             <trans-unit id="102">
                 <source>This value is not a valid CIDR notation.</source>
-                <target>该值不是一个有效的CIDR表示。</target>
+                <target>该值不是一个有效的 CIDR 表示。</target>
             </trans-unit>
             <trans-unit id="103">
                 <source>The value of the netmask should be between {{ min }} and {{ max }}.</source>
@@ -404,11 +404,11 @@
             </trans-unit>
             <trans-unit id="104">
                 <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
-                <target>该文件名过长，最长不应超过{{ filename_max_length }} 个字符。</target>
+                <target>文件名过长，最长不应超过{{ filename_max_length }} 个字符。</target>
             </trans-unit>
             <trans-unit id="105">
                 <source>The password strength is too low. Please use a stronger password.</source>
-                <target>该密码强度太低。请使用更复杂的密码。</target>
+                <target>密码强度太低。请使用更复杂的密码。</target>
             </trans-unit>
             <trans-unit id="106">
                 <source>This value contains characters that are not allowed by the current restriction-level.</source>
@@ -428,27 +428,27 @@
             </trans-unit>
             <trans-unit id="110">
                 <source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
-                <target>文件的扩展名无效 ({{ extension }})。允许的扩展名为 {{ extensions }}。</target>
+                <target>文件的扩展名无效 ({{ extension }})。允许的扩展名为 {{ extensions }} 。</target>
             </trans-unit>
             <trans-unit id="111">
                 <source>The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.</source>
-                <target>检测到的字符编码无效 ({{ detected }})。允许的编码为 {{ encodings }}。</target>
+                <target>检测到的字符编码无效 ({{ detected }})。允许的编码为 {{ encodings }} 。</target>
             </trans-unit>
             <trans-unit id="112">
                 <source>This value is not a valid MAC address.</source>
-                <target>该值不是有效的MAC地址。</target>
+                <target>该值不是有效的 MAC 地址。</target>
             </trans-unit>
             <trans-unit id="113">
                 <source>This URL is missing a top-level domain.</source>
-                <target>此URL缺少顶级域名。</target>
+                <target>该 URL 缺少顶级域名。</target>
             </trans-unit>
             <trans-unit id="114">
                 <source>This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words.</source>
-                <target>该值太短，应该至少包含一个词。|该值太短，应该至少包含 {{ min }} 个词。</target>
+                <target>该值太短，应至少包含一个词。|该值太短，应至少包含 {{ min }} 个词。</target>
             </trans-unit>
             <trans-unit id="115">
                 <source>This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less.</source>
-                <target>该值太长，应该只包含一个词。|该值太长，应该只包含 {{ max }} 个或更少个词。</target>
+                <target>该值太长，应只包含一个词。|该值太长，应只包含 {{ max }} 个或更少个词。</target>
             </trans-unit>
             <trans-unit id="116">
                 <source>This value does not represent a valid week in the ISO 8601 format.</source>
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>该值不应位于 "{{ max }}"周之后。</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target state="needs-review-translation">此值不是有效的 slug。</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>该值不是有效的 Twig 模板。</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>此文件不是有效的视频。</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>无法检测到视频的大小。</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>视频宽度过大（{{ width }}px）。允许的最大宽度为 {{ max_width }}px。</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>视频宽度太小（{{ width }}px）。预期的最小宽度为 {{ min_width }} 像素。</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>视频高度过大（{{ height }}px）。允许的最大高度为 {{ max_height }}px。</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>视频高度太小（{{ height }}px）。期望的最小高度为 {{ min_height }}px。</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>该视频像素过少 ({{ pixels }}). 期望的最小值为 {{ min_pixels }}。</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>该视频的像素过多（{{ pixels }}）。预期的最大数量为 {{ max_pixels }}。</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>视频纵横比过大（{{ ratio }}）。允许的最大纵横比为 {{ max_ratio }}。</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>视频纵横比过小（{{ ratio }}）。预期的最低比例为 {{ min_ratio }}。</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>视频为正方形 ({{ width }}x{{ height }}px)。不允许正方形视频。</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>视频为横向（{{ width }}x{{ height }} 像素）。不允许横向视频。</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>该视频为竖屏方向（{{ width }}x{{ height }}px）。不允许竖屏视频。</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>视频文件已损坏。</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>该视频包含多个流。只允许一个流。</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>不支持的视频编解码器“{{ codec }}”。</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>不支持的视频容器 "{{ container }}".</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>图像文件已损坏。</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>图像的像素太少（{{ pixels }}）。预期的最小数量为 {{ min_pixels }}。</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>图像的像素过多 ({{ pixels }}). 预期的最大数量为 {{ max_pixels }}.</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>该文件名与预期的字符集不匹配。</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.zh_TW.xlf symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.zh_TW.xlf
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.zh_TW.xlf	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Resources/translations/validators.zh_TW.xlf	2026-05-20 10:56:49.000000000 +0200
@@ -132,7 +132,7 @@
             </trans-unit>
             <trans-unit id="36">
                 <source>This file is not a valid image.</source>
-                <target>這個檔案不是有效的影像。</target>
+                <target>這個檔案不是有效的圖片。</target>
             </trans-unit>
             <trans-unit id="37" resname="This is not a valid IP address.">
                 <source>This value is not a valid IP address.</source>
@@ -156,23 +156,23 @@
             </trans-unit>
             <trans-unit id="42">
                 <source>The size of the image could not be detected.</source>
-                <target>無法偵測這個影像的大小。</target>
+                <target>無法偵測到圖片的大小。</target>
             </trans-unit>
             <trans-unit id="43">
                 <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>影像過寬（{{ width }}px）。允許的寬度上限是 {{ max_width }}px。</target>
+                <target>圖片寬度過大 ({{ width }}px)。允許的最大寬度為 {{ max_width }}px。</target>
             </trans-unit>
             <trans-unit id="44">
                 <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>影像過窄（{{ width }}px）。允許的寬度下限是 {{ max_width }}px。</target>
+                <target>圖片寬度過小 ({{ width }}px)。允許的最小寬度為 {{ max_width }}px。</target>
             </trans-unit>
             <trans-unit id="45">
                 <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>影像過長（{{ height }}px）。允許的長度上限是 {{ max_height }}px。</target>
+                <target>圖片高度過大 ({{ height }}px)。允許的最大長度為 {{ max_height }}px。</target>
             </trans-unit>
             <trans-unit id="46">
                 <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>影像過短（{{ height }}px）。允許的長度下限是 {{ max_height }}px。</target>
+                <target>圖片高度過小 ({{ height }}px)。允許的最小高度為 {{ max_height }}px。</target>
             </trans-unit>
             <trans-unit id="47">
                 <source>This value should be the user's current password.</source>
@@ -280,23 +280,23 @@
             </trans-unit>
             <trans-unit id="73">
                 <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>影像的比例過大（{{ ratio }}）。允許的最大比例是 {{ max_ratio }}。</target>
+                <target>圖片的比例過大 ({{ ratio }})。允許的最大比例為 {{ max_ratio }}。</target>
             </trans-unit>
             <trans-unit id="74">
                 <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>影像的比例過小（{{ ratio }}）。允許的最小比例是 {{ min_ratio }}。</target>
+                <target>圖片的比例過小 ({{ ratio }})。允許的最小比例為 {{ min_ratio }}。</target>
             </trans-unit>
             <trans-unit id="75">
                 <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>影像為正方形（{{ width }}x{{ height }}px）。不允許使用正方形影像。</target>
+                <target>圖片為正方形 ({{ width }}x{{ height }}px)。不允許使用正方形圖片。</target>
             </trans-unit>
             <trans-unit id="76">
                 <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>影像為橫向（{{ width }}x{{ height }}px）。不允許使用橫向影像。</target>
+                <target>圖片為橫向 ({{ width }}x{{ height }}px)。不允許使用橫向圖片。</target>
             </trans-unit>
             <trans-unit id="77">
                 <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>影像為縱向（{{ width }}x{{ height }}px）。不允許使用縱向影像。</target>
+                <target>圖片為縱向 ({{ width }}x{{ height }}px)。不允許使用縱向圖片。</target>
             </trans-unit>
             <trans-unit id="78">
                 <source>An empty file is not allowed.</source>
@@ -466,13 +466,93 @@
                 <source>This value should not be after week "{{ max }}".</source>
                 <target>這個數值不應晚於第「{{ max }}」週。</target>
             </trans-unit>
-            <trans-unit id="120">
-                <source>This value is not a valid slug.</source>
-                <target>這個數值不是有效的 slug。</target>
-            </trans-unit>
             <trans-unit id="121">
                 <source>This value is not a valid Twig template.</source>
-                <target state="needs-translation">This value is not a valid Twig template.</target>
+                <target>這個數值不是有效的 Twig 模板。</target>
+            </trans-unit>
+            <trans-unit id="122">
+                <source>This file is not a valid video.</source>
+                <target>這個檔案不是有效的影片。</target>
+            </trans-unit>
+            <trans-unit id="123">
+                <source>The size of the video could not be detected.</source>
+                <target>無法偵測到影片的大小。</target>
+            </trans-unit>
+            <trans-unit id="124">
+                <source>The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
+                <target>影片寬度過大 ({{ width }}px)。允許的最大寬度為 {{ max_width }}px。</target>
+            </trans-unit>
+            <trans-unit id="125">
+                <source>The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
+                <target>影片寬度過小 ({{ width }}p)。允許的最小寬度為 {{ min_width }}px。</target>
+            </trans-unit>
+            <trans-unit id="126">
+                <source>The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
+                <target>影片高度過大 ({{ height }}px)。允許的最大高度為 {{ max_height }}px。</target>
+            </trans-unit>
+            <trans-unit id="127">
+                <source>The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
+                <target>影片高度過小 ({{ height }}px)。允許的最小高度為 {{ min_height }}px。</target>
+            </trans-unit>
+            <trans-unit id="128">
+                <source>The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>影片的像素過少 ({{ pixels }} 像素). 允許的最小值為 {{ min_pixels }} 像素。</target>
+            </trans-unit>
+            <trans-unit id="129">
+                <source>The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>影片的像素過多 ({{ pixels }} 像素)。允許的最大值為 {{ max_pixels }} 像素。</target>
+            </trans-unit>
+            <trans-unit id="130">
+                <source>The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
+                <target>影片的比例過大 ({{ ratio }})。允許的最大比例為 {{ max_ratio }}。</target>
+            </trans-unit>
+            <trans-unit id="131">
+                <source>The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
+                <target>影片的比例過小 ({{ ratio }})。允許的最小比例為 {{ min_ratio }}。</target>
+            </trans-unit>
+            <trans-unit id="132">
+                <source>The video is square ({{ width }}x{{ height }}px). Square videos are not allowed.</source>
+                <target>影片為正方形 ({{ width }}x{{ height }}px)。不允許使用正方形影片。</target>
+            </trans-unit>
+            <trans-unit id="133">
+                <source>The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed.</source>
+                <target>影片為橫向 ({{ width }}x{{ height }}px)。不允許使用橫向影片。</target>
+            </trans-unit>
+            <trans-unit id="134">
+                <source>The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed.</source>
+                <target>影片為縱向 ({{ width }}x{{ height }}px)。不允許使用縱向影片。</target>
+            </trans-unit>
+            <trans-unit id="135">
+                <source>The video file is corrupted.</source>
+                <target>影片檔案已損壞。</target>
+            </trans-unit>
+            <trans-unit id="136">
+                <source>The video contains multiple streams. Only one stream is allowed.</source>
+                <target>影片包含多個串流。只允許單個串流。</target>
+            </trans-unit>
+            <trans-unit id="137">
+                <source>Unsupported video codec "{{ codec }}".</source>
+                <target>不支援的影片編解碼器: {{ codec }}。</target>
+            </trans-unit>
+            <trans-unit id="138">
+                <source>Unsupported video container "{{ container }}".</source>
+                <target>不支援的影片容器格式: {{ container }}。</target>
+            </trans-unit>
+            <trans-unit id="139">
+                <source>The image file is corrupted.</source>
+                <target>圖片檔案已損壞。</target>
+            </trans-unit>
+            <trans-unit id="140">
+                <source>The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.</source>
+                <target>圖片的像素過少 ({{ pixels }} 像素)。允許的最小值為 {{ min_pixels }} 像素。</target>
+            </trans-unit>
+            <trans-unit id="141">
+                <source>The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.</source>
+                <target>圖片的像素過多 ({{ pixels }} 像素)。允許的最大值為 {{ max_pixels }} 像素。</target>
+            </trans-unit>
+            <trans-unit id="142">
+                <source>This filename does not match the expected charset.</source>
+                <target>這個檔名與預期的字元集不相符。</target>
             </trans-unit>
         </body>
     </file>
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Test/ConstraintValidatorTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Test/ConstraintValidatorTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Test/ConstraintValidatorTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Test/ConstraintValidatorTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -123,10 +123,10 @@
 
     protected function createContext()
     {
-        $translator = $this->createMock(TranslatorInterface::class);
-        $translator->expects($this->any())->method('trans')->willReturnArgument(0);
-        $validator = $this->createMock(ValidatorInterface::class);
-        $validator->expects($this->any())
+        $translator = $this->createStub(TranslatorInterface::class);
+        $translator->method('trans')->willReturnArgument(0);
+        $validator = $this->createStub(ValidatorInterface::class);
+        $validator
             ->method('validate')
             ->willReturnCallback(fn () => $this->expectedViolations[$this->call++] ?? new ConstraintViolationList());
 
@@ -135,36 +135,47 @@
         $context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath);
         $context->setConstraint($this->constraint);
 
-        $contextualValidatorMockBuilder = $this->getMockBuilder(AssertingContextualValidator::class)
-            ->setConstructorArgs([$context]);
-        $contextualValidatorMethods = [
-            'atPath',
-            'validate',
-            'validateProperty',
-            'validatePropertyValue',
-            'getViolations',
-        ];
-
-        $contextualValidatorMockBuilder->onlyMethods($contextualValidatorMethods);
-        $contextualValidator = $contextualValidatorMockBuilder->getMock();
-        $contextualValidator->expects($this->any())
+        if (method_exists($this, 'getStubBuilder')) {
+            $contextualValidator = self::getStubBuilder(AssertingContextualValidator::class)
+                ->setConstructorArgs([$context])
+                ->onlyMethods([
+                    'atPath',
+                    'validate',
+                    'validateProperty',
+                    'validatePropertyValue',
+                    'getViolations',
+                ])
+                ->getStub();
+        } else {
+            $contextualValidator = $this->getMockBuilder(AssertingContextualValidator::class)
+                ->setConstructorArgs([$context])
+                ->onlyMethods([
+                    'atPath',
+                    'validate',
+                    'validateProperty',
+                    'validatePropertyValue',
+                    'getViolations',
+                ])
+                ->getMock();
+        }
+
+        $contextualValidator
             ->method('atPath')
-            ->willReturnCallback(fn ($path) => $contextualValidator->doAtPath($path));
-        $contextualValidator->expects($this->any())
+            ->willReturnCallback(static fn ($path) => $contextualValidator->doAtPath($path));
+        $contextualValidator
             ->method('validate')
-            ->willReturnCallback(fn ($value, $constraints = null, $groups = null) => $contextualValidator->doValidate($value, $constraints, $groups));
-        $contextualValidator->expects($this->any())
+            ->willReturnCallback(static fn ($value, $constraints = null, $groups = null) => $contextualValidator->doValidate($value, $constraints, $groups));
+        $contextualValidator
             ->method('validateProperty')
-            ->willReturnCallback(fn ($object, $propertyName, $groups = null) => $contextualValidator->validateProperty($object, $propertyName, $groups));
-        $contextualValidator->expects($this->any())
+            ->willReturnCallback(static fn ($object, $propertyName, $groups = null) => $contextualValidator->validateProperty($object, $propertyName, $groups));
+        $contextualValidator
             ->method('validatePropertyValue')
-            ->willReturnCallback(fn ($objectOrClass, $propertyName, $value, $groups = null) => $contextualValidator->doValidatePropertyValue($objectOrClass, $propertyName, $value, $groups));
-        $contextualValidator->expects($this->any())
+            ->willReturnCallback(static fn ($objectOrClass, $propertyName, $value, $groups = null) => $contextualValidator->doValidatePropertyValue($objectOrClass, $propertyName, $value, $groups));
+        $contextualValidator
             ->method('getViolations')
-            ->willReturnCallback(fn () => $contextualValidator->doGetViolations());
-        $validator->expects($this->any())
+            ->willReturnCallback(static fn () => $contextualValidator->doGetViolations());
+        $validator
             ->method('inContext')
-            ->with($context)
             ->willReturn($contextualValidator);
 
         return $context;
@@ -224,7 +235,7 @@
     protected function expectValidateAt(int $i, string $propertyPath, mixed $value, string|GroupSequence|array|null $group)
     {
         $validator = $this->context->getValidator()->inContext($this->context);
-        $validator->expectValidation($i, $propertyPath, $value, $group, function ($passedConstraints) {
+        $validator->expectValidation($i, $propertyPath, $value, $group, static function ($passedConstraints) {
             $expectedConstraints = LogicalOr::fromConstraints(new IsNull(), new IsIdentical([]), new IsInstanceOf(Valid::class));
 
             Assert::assertThat($passedConstraints, $expectedConstraints);
@@ -234,7 +245,7 @@
     protected function expectValidateValue(int $i, mixed $value, array $constraints = [], string|GroupSequence|array|null $group = null)
     {
         $contextualValidator = $this->context->getValidator()->inContext($this->context);
-        $contextualValidator->expectValidation($i, null, $value, $group, function ($passedConstraints) use ($constraints) {
+        $contextualValidator->expectValidation($i, null, $value, $group, static function ($passedConstraints) use ($constraints) {
             if (\is_array($constraints) && !\is_array($passedConstraints)) {
                 $passedConstraints = [$passedConstraints];
             }
@@ -246,7 +257,7 @@
     protected function expectFailingValueValidation(int $i, mixed $value, array $constraints, string|GroupSequence|array|null $group, ConstraintViolationInterface $violation)
     {
         $contextualValidator = $this->context->getValidator()->inContext($this->context);
-        $contextualValidator->expectValidation($i, null, $value, $group, function ($passedConstraints) use ($constraints) {
+        $contextualValidator->expectValidation($i, null, $value, $group, static function ($passedConstraints) use ($constraints) {
             if (\is_array($constraints) && !\is_array($passedConstraints)) {
                 $passedConstraints = [$passedConstraints];
             }
@@ -258,7 +269,7 @@
     protected function expectValidateValueAt(int $i, string $propertyPath, mixed $value, Constraint|array $constraints, string|GroupSequence|array|null $group = null)
     {
         $contextualValidator = $this->context->getValidator()->inContext($this->context);
-        $contextualValidator->expectValidation($i, $propertyPath, $value, $group, function ($passedConstraints) use ($constraints) {
+        $contextualValidator->expectValidation($i, $propertyPath, $value, $group, static function ($passedConstraints) use ($constraints) {
             Assert::assertEquals($constraints, $passedConstraints);
         });
     }
@@ -280,7 +291,7 @@
 
     protected function assertNoViolation()
     {
-        $this->assertSame(0, $violationsCount = \count($this->context->getViolations()), sprintf('0 violation expected. Got %u.', $violationsCount));
+        $this->assertSame(0, $violationsCount = \count($this->context->getViolations()), \sprintf('0 violation expected. Got %u.', $violationsCount));
     }
 
     protected function buildViolation(string|\Stringable $message): ConstraintViolationAssertion
@@ -423,7 +434,7 @@
 
         $violations = iterator_to_array($this->context->getViolations());
 
-        Assert::assertSame($expectedCount = \count($expected), $violationsCount = \count($violations), sprintf('%u violation(s) expected. Got %u.', $expectedCount, $violationsCount));
+        Assert::assertSame($expectedCount = \count($expected), $violationsCount = \count($violations), \sprintf('%u violation(s) expected. Got %u.', $expectedCount, $violationsCount));
 
         reset($violations);
 
@@ -491,7 +502,7 @@
         Assert::assertFalse($this->expectNoValidate, 'No validation calls have been expected.');
 
         if (!isset($this->expectedAtPath[++$this->atPathCalls])) {
-            throw new ExpectationFailedException(sprintf('Validation for property path "%s" was not expected.', $path));
+            throw new ExpectationFailedException(\sprintf('Validation for property path "%s" was not expected.', $path));
         }
 
         $expectedPath = $this->expectedAtPath[$this->atPathCalls];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Command/DebugCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Command/DebugCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Command/DebugCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Command/DebugCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,7 +15,6 @@
 use Symfony\Component\Console\Tester\CommandTester;
 use Symfony\Component\Validator\Command\DebugCommand;
 use Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory;
-use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface;
 use Symfony\Component\Validator\Mapping\Loader\AttributeLoader;
 use Symfony\Component\Validator\Tests\Dummy\DummyClassOne;
 
@@ -33,50 +32,50 @@
 
         $this->assertSame(<<<TXT
 
-Symfony\Component\Validator\Tests\Dummy\DummyClassOne
------------------------------------------------------
+            Symfony\Component\Validator\Tests\Dummy\DummyClassOne
+            -----------------------------------------------------
 
-+---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
-| Property      | Name                                               | Groups                 | Options                                                    |
-+---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
-| -             | Symfony\Component\Validator\Constraints\Expression | Default, DummyClassOne | [                                                          |
-|               |                                                    |                        |   "expression" => "1 + 1 = 2",                             |
-|               |                                                    |                        |   "message" => "This value is not valid.",                 |
-|               |                                                    |                        |   "negate" => true,                                        |
-|               |                                                    |                        |   "payload" => null,                                       |
-|               |                                                    |                        |   "values" => []                                           |
-|               |                                                    |                        | ]                                                          |
-| code          | property options                                   |                        | [                                                          |
-|               |                                                    |                        |   "cascadeStrategy" => "None",                             |
-|               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
-|               |                                                    |                        |   "traversalStrategy" => "None"                            |
-|               |                                                    |                        | ]                                                          |
-| code          | Symfony\Component\Validator\Constraints\NotBlank   | Default, DummyClassOne | [                                                          |
-|               |                                                    |                        |   "allowNull" => false,                                    |
-|               |                                                    |                        |   "message" => "This value should not be blank.",          |
-|               |                                                    |                        |   "normalizer" => null,                                    |
-|               |                                                    |                        |   "payload" => null                                        |
-|               |                                                    |                        | ]                                                          |
-| email         | property options                                   |                        | [                                                          |
-|               |                                                    |                        |   "cascadeStrategy" => "None",                             |
-|               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
-|               |                                                    |                        |   "traversalStrategy" => "None"                            |
-|               |                                                    |                        | ]                                                          |
-| email         | Symfony\Component\Validator\Constraints\Email      | Default, DummyClassOne | [                                                          |
-|               |                                                    |                        |   "message" => "This value is not a valid email address.", |
-|               |                                                    |                        |   "mode" => null,                                          |
-|               |                                                    |                        |   "normalizer" => null,                                    |
-|               |                                                    |                        |   "payload" => null                                        |
-|               |                                                    |                        | ]                                                          |
-| dummyClassTwo | property options                                   |                        | [                                                          |
-|               |                                                    |                        |   "cascadeStrategy" => "Cascade",                          |
-|               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
-|               |                                                    |                        |   "traversalStrategy" => "Implicit"                        |
-|               |                                                    |                        | ]                                                          |
-+---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
+            +---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
+            | Property      | Name                                               | Groups                 | Options                                                    |
+            +---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
+            | -             | Symfony\Component\Validator\Constraints\Expression | Default, DummyClassOne | [                                                          |
+            |               |                                                    |                        |   "expression" => "1 + 1 = 2",                             |
+            |               |                                                    |                        |   "message" => "This value is not valid.",                 |
+            |               |                                                    |                        |   "negate" => true,                                        |
+            |               |                                                    |                        |   "payload" => null,                                       |
+            |               |                                                    |                        |   "values" => []                                           |
+            |               |                                                    |                        | ]                                                          |
+            | code          | property options                                   |                        | [                                                          |
+            |               |                                                    |                        |   "cascadeStrategy" => "None",                             |
+            |               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
+            |               |                                                    |                        |   "traversalStrategy" => "None"                            |
+            |               |                                                    |                        | ]                                                          |
+            | code          | Symfony\Component\Validator\Constraints\NotBlank   | Default, DummyClassOne | [                                                          |
+            |               |                                                    |                        |   "allowNull" => false,                                    |
+            |               |                                                    |                        |   "message" => "This value should not be blank.",          |
+            |               |                                                    |                        |   "normalizer" => null,                                    |
+            |               |                                                    |                        |   "payload" => null                                        |
+            |               |                                                    |                        | ]                                                          |
+            | email         | property options                                   |                        | [                                                          |
+            |               |                                                    |                        |   "cascadeStrategy" => "None",                             |
+            |               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
+            |               |                                                    |                        |   "traversalStrategy" => "None"                            |
+            |               |                                                    |                        | ]                                                          |
+            | email         | Symfony\Component\Validator\Constraints\Email      | Default, DummyClassOne | [                                                          |
+            |               |                                                    |                        |   "message" => "This value is not a valid email address.", |
+            |               |                                                    |                        |   "mode" => null,                                          |
+            |               |                                                    |                        |   "normalizer" => null,                                    |
+            |               |                                                    |                        |   "payload" => null                                        |
+            |               |                                                    |                        | ]                                                          |
+            | dummyClassTwo | property options                                   |                        | [                                                          |
+            |               |                                                    |                        |   "cascadeStrategy" => "Cascade",                          |
+            |               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
+            |               |                                                    |                        |   "traversalStrategy" => "Implicit"                        |
+            |               |                                                    |                        | ]                                                          |
+            +---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
 
-TXT
-            , $tester->getDisplay(true)
+            TXT,
+            $tester->getDisplay(true)
         );
     }
 
@@ -89,108 +88,106 @@
 
         $this->assertSame(<<<TXT
 
-Symfony\Component\Validator\Tests\Dummy\DummyClassOne
------------------------------------------------------
+            Symfony\Component\Validator\Tests\Dummy\DummyClassOne
+            -----------------------------------------------------
 
-+---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
-| Property      | Name                                               | Groups                 | Options                                                    |
-+---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
-| -             | Symfony\Component\Validator\Constraints\Expression | Default, DummyClassOne | [                                                          |
-|               |                                                    |                        |   "expression" => "1 + 1 = 2",                             |
-|               |                                                    |                        |   "message" => "This value is not valid.",                 |
-|               |                                                    |                        |   "negate" => true,                                        |
-|               |                                                    |                        |   "payload" => null,                                       |
-|               |                                                    |                        |   "values" => []                                           |
-|               |                                                    |                        | ]                                                          |
-| code          | property options                                   |                        | [                                                          |
-|               |                                                    |                        |   "cascadeStrategy" => "None",                             |
-|               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
-|               |                                                    |                        |   "traversalStrategy" => "None"                            |
-|               |                                                    |                        | ]                                                          |
-| code          | Symfony\Component\Validator\Constraints\NotBlank   | Default, DummyClassOne | [                                                          |
-|               |                                                    |                        |   "allowNull" => false,                                    |
-|               |                                                    |                        |   "message" => "This value should not be blank.",          |
-|               |                                                    |                        |   "normalizer" => null,                                    |
-|               |                                                    |                        |   "payload" => null                                        |
-|               |                                                    |                        | ]                                                          |
-| email         | property options                                   |                        | [                                                          |
-|               |                                                    |                        |   "cascadeStrategy" => "None",                             |
-|               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
-|               |                                                    |                        |   "traversalStrategy" => "None"                            |
-|               |                                                    |                        | ]                                                          |
-| email         | Symfony\Component\Validator\Constraints\Email      | Default, DummyClassOne | [                                                          |
-|               |                                                    |                        |   "message" => "This value is not a valid email address.", |
-|               |                                                    |                        |   "mode" => null,                                          |
-|               |                                                    |                        |   "normalizer" => null,                                    |
-|               |                                                    |                        |   "payload" => null                                        |
-|               |                                                    |                        | ]                                                          |
-| dummyClassTwo | property options                                   |                        | [                                                          |
-|               |                                                    |                        |   "cascadeStrategy" => "Cascade",                          |
-|               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
-|               |                                                    |                        |   "traversalStrategy" => "Implicit"                        |
-|               |                                                    |                        | ]                                                          |
-+---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
-
-Symfony\Component\Validator\Tests\Dummy\DummyClassTwo
------------------------------------------------------
-
-+---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
-| Property      | Name                                               | Groups                 | Options                                                    |
-+---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
-| -             | Symfony\Component\Validator\Constraints\Expression | Default, DummyClassTwo | [                                                          |
-|               |                                                    |                        |   "expression" => "1 + 1 = 2",                             |
-|               |                                                    |                        |   "message" => "This value is not valid.",                 |
-|               |                                                    |                        |   "negate" => true,                                        |
-|               |                                                    |                        |   "payload" => null,                                       |
-|               |                                                    |                        |   "values" => []                                           |
-|               |                                                    |                        | ]                                                          |
-| code          | property options                                   |                        | [                                                          |
-|               |                                                    |                        |   "cascadeStrategy" => "None",                             |
-|               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
-|               |                                                    |                        |   "traversalStrategy" => "None"                            |
-|               |                                                    |                        | ]                                                          |
-| code          | Symfony\Component\Validator\Constraints\NotBlank   | Default, DummyClassTwo | [                                                          |
-|               |                                                    |                        |   "allowNull" => false,                                    |
-|               |                                                    |                        |   "message" => "This value should not be blank.",          |
-|               |                                                    |                        |   "normalizer" => null,                                    |
-|               |                                                    |                        |   "payload" => null                                        |
-|               |                                                    |                        | ]                                                          |
-| email         | property options                                   |                        | [                                                          |
-|               |                                                    |                        |   "cascadeStrategy" => "None",                             |
-|               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
-|               |                                                    |                        |   "traversalStrategy" => "None"                            |
-|               |                                                    |                        | ]                                                          |
-| email         | Symfony\Component\Validator\Constraints\Email      | Default, DummyClassTwo | [                                                          |
-|               |                                                    |                        |   "message" => "This value is not a valid email address.", |
-|               |                                                    |                        |   "mode" => null,                                          |
-|               |                                                    |                        |   "normalizer" => null,                                    |
-|               |                                                    |                        |   "payload" => null                                        |
-|               |                                                    |                        | ]                                                          |
-| dummyClassOne | property options                                   |                        | [                                                          |
-|               |                                                    |                        |   "cascadeStrategy" => "None",                             |
-|               |                                                    |                        |   "autoMappingStrategy" => "Disabled",                     |
-|               |                                                    |                        |   "traversalStrategy" => "None"                            |
-|               |                                                    |                        | ]                                                          |
-+---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
+            +---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
+            | Property      | Name                                               | Groups                 | Options                                                    |
+            +---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
+            | -             | Symfony\Component\Validator\Constraints\Expression | Default, DummyClassOne | [                                                          |
+            |               |                                                    |                        |   "expression" => "1 + 1 = 2",                             |
+            |               |                                                    |                        |   "message" => "This value is not valid.",                 |
+            |               |                                                    |                        |   "negate" => true,                                        |
+            |               |                                                    |                        |   "payload" => null,                                       |
+            |               |                                                    |                        |   "values" => []                                           |
+            |               |                                                    |                        | ]                                                          |
+            | code          | property options                                   |                        | [                                                          |
+            |               |                                                    |                        |   "cascadeStrategy" => "None",                             |
+            |               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
+            |               |                                                    |                        |   "traversalStrategy" => "None"                            |
+            |               |                                                    |                        | ]                                                          |
+            | code          | Symfony\Component\Validator\Constraints\NotBlank   | Default, DummyClassOne | [                                                          |
+            |               |                                                    |                        |   "allowNull" => false,                                    |
+            |               |                                                    |                        |   "message" => "This value should not be blank.",          |
+            |               |                                                    |                        |   "normalizer" => null,                                    |
+            |               |                                                    |                        |   "payload" => null                                        |
+            |               |                                                    |                        | ]                                                          |
+            | email         | property options                                   |                        | [                                                          |
+            |               |                                                    |                        |   "cascadeStrategy" => "None",                             |
+            |               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
+            |               |                                                    |                        |   "traversalStrategy" => "None"                            |
+            |               |                                                    |                        | ]                                                          |
+            | email         | Symfony\Component\Validator\Constraints\Email      | Default, DummyClassOne | [                                                          |
+            |               |                                                    |                        |   "message" => "This value is not a valid email address.", |
+            |               |                                                    |                        |   "mode" => null,                                          |
+            |               |                                                    |                        |   "normalizer" => null,                                    |
+            |               |                                                    |                        |   "payload" => null                                        |
+            |               |                                                    |                        | ]                                                          |
+            | dummyClassTwo | property options                                   |                        | [                                                          |
+            |               |                                                    |                        |   "cascadeStrategy" => "Cascade",                          |
+            |               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
+            |               |                                                    |                        |   "traversalStrategy" => "Implicit"                        |
+            |               |                                                    |                        | ]                                                          |
+            +---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
+
+            Symfony\Component\Validator\Tests\Dummy\DummyClassTwo
+            -----------------------------------------------------
+
+            +---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
+            | Property      | Name                                               | Groups                 | Options                                                    |
+            +---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
+            | -             | Symfony\Component\Validator\Constraints\Expression | Default, DummyClassTwo | [                                                          |
+            |               |                                                    |                        |   "expression" => "1 + 1 = 2",                             |
+            |               |                                                    |                        |   "message" => "This value is not valid.",                 |
+            |               |                                                    |                        |   "negate" => true,                                        |
+            |               |                                                    |                        |   "payload" => null,                                       |
+            |               |                                                    |                        |   "values" => []                                           |
+            |               |                                                    |                        | ]                                                          |
+            | code          | property options                                   |                        | [                                                          |
+            |               |                                                    |                        |   "cascadeStrategy" => "None",                             |
+            |               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
+            |               |                                                    |                        |   "traversalStrategy" => "None"                            |
+            |               |                                                    |                        | ]                                                          |
+            | code          | Symfony\Component\Validator\Constraints\NotBlank   | Default, DummyClassTwo | [                                                          |
+            |               |                                                    |                        |   "allowNull" => false,                                    |
+            |               |                                                    |                        |   "message" => "This value should not be blank.",          |
+            |               |                                                    |                        |   "normalizer" => null,                                    |
+            |               |                                                    |                        |   "payload" => null                                        |
+            |               |                                                    |                        | ]                                                          |
+            | email         | property options                                   |                        | [                                                          |
+            |               |                                                    |                        |   "cascadeStrategy" => "None",                             |
+            |               |                                                    |                        |   "autoMappingStrategy" => "None",                         |
+            |               |                                                    |                        |   "traversalStrategy" => "None"                            |
+            |               |                                                    |                        | ]                                                          |
+            | email         | Symfony\Component\Validator\Constraints\Email      | Default, DummyClassTwo | [                                                          |
+            |               |                                                    |                        |   "message" => "This value is not a valid email address.", |
+            |               |                                                    |                        |   "mode" => null,                                          |
+            |               |                                                    |                        |   "normalizer" => null,                                    |
+            |               |                                                    |                        |   "payload" => null                                        |
+            |               |                                                    |                        | ]                                                          |
+            | dummyClassOne | property options                                   |                        | [                                                          |
+            |               |                                                    |                        |   "cascadeStrategy" => "None",                             |
+            |               |                                                    |                        |   "autoMappingStrategy" => "Disabled",                     |
+            |               |                                                    |                        |   "traversalStrategy" => "None"                            |
+            |               |                                                    |                        | ]                                                          |
+            +---------------+----------------------------------------------------+------------------------+------------------------------------------------------------+
 
-TXT
-            , $tester->getDisplay(true)
+            TXT,
+            $tester->getDisplay(true)
         );
     }
 
     public function testOutputWithInvalidClassArgument()
     {
-        $validator = $this->createMock(MetadataFactoryInterface::class);
-
-        $command = new DebugCommand($validator);
+        $command = new DebugCommand(new LazyLoadingMetadataFactory());
 
         $tester = new CommandTester($command);
         $tester->execute(['class' => 'App\\NotFoundResource'], ['decorated' => false]);
 
         $this->assertStringContainsString(<<<TXT
-Neither class nor path were found with "App\NotFoundResource" argument.
-TXT
-            , $tester->getDisplay(true)
+            Neither class nor path were found with "App\NotFoundResource" argument.
+            TXT,
+            $tester->getDisplay(true)
         );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -156,7 +156,7 @@
         $constraint = $this->createConstraint(['propertyPath' => 'foo']);
 
         $this->expectException(ConstraintDefinitionException::class);
-        $this->expectExceptionMessage(sprintf('Invalid property path "foo" provided to "%s" constraint', $constraint::class));
+        $this->expectExceptionMessage(\sprintf('Invalid property path "foo" provided to "%s" constraint', $constraint::class));
 
         $object = new ComparisonTest_Class(5);
 
@@ -235,8 +235,8 @@
         $constraintClass = $constraint::class;
 
         return [
-            [$constraint, sprintf('The compared value "foo" could not be converted to a "DateTimeImmutable" instance in the "%s" constraint.', $constraintClass), new \DateTimeImmutable()],
-            [$constraint, sprintf('The compared value "foo" could not be converted to a "DateTime" instance in the "%s" constraint.', $constraintClass), new \DateTime()],
+            [$constraint, \sprintf('The compared value "foo" could not be converted to a "DateTimeImmutable" instance in the "%s" constraint.', $constraintClass), new \DateTimeImmutable()],
+            [$constraint, \sprintf('The compared value "foo" could not be converted to a "DateTime" instance in the "%s" constraint.', $constraintClass), new \DateTime()],
         ];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AllTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AllTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AllTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AllTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Component\Validator\Constraints\All;
 use Symfony\Component\Validator\Constraints\Valid;
 use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
+use Symfony\Component\Validator\Exception\MissingOptionsException;
 
 /**
  * @author Bernhard Schussek <bschussek@gmail.com>
@@ -36,4 +37,20 @@
             new Valid(),
         ]);
     }
+
+    public function testMissingConstraints()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "constraints" must be set for constraint "%s".', All::class));
+
+        new All(null);
+    }
+
+    public function testMissingConstraintsDoctrineStyle()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "constraints" must be set for constraint "%s".', All::class));
+
+        new All([]);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AtLeastOneOfTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AtLeastOneOfTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AtLeastOneOfTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AtLeastOneOfTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Component\Validator\Constraints\AtLeastOneOf;
 use Symfony\Component\Validator\Constraints\Valid;
 use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
+use Symfony\Component\Validator\Exception\MissingOptionsException;
 
 /**
  * @author Przemysław Bogusz <przemyslaw.bogusz@tubotax.pl>
@@ -36,4 +37,20 @@
             new Valid(),
         ]);
     }
+
+    public function testMissingConstraints()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "constraints" must be set for constraint "%s".', AtLeastOneOf::class));
+
+        new AtLeastOneOf(null);
+    }
+
+    public function testMissingConstraintsDoctrineStyle()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "constraints" must be set for constraint "%s".', AtLeastOneOf::class));
+
+        new AtLeastOneOf([]);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AtLeastOneOfValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AtLeastOneOfValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AtLeastOneOfValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/AtLeastOneOfValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -109,12 +109,12 @@
         $i = 0;
 
         foreach ($constraints as $constraint) {
-            $message[] = sprintf(' [%d] %s', ++$i, $validator->validate($value, $constraint)->get(0)->getMessage());
+            $message[] = \sprintf(' [%d] %s', ++$i, $validator->validate($value, $constraint)->get(0)->getMessage());
         }
 
         $violations = $validator->validate($value, $atLeastOneOf);
 
-        $this->assertCount(1, $violations, sprintf('1 violation expected. Got %u.', \count($violations)));
+        $this->assertCount(1, $violations, \sprintf('1 violation expected. Got %u.', \count($violations)));
         $this->assertEquals(new ConstraintViolation(implode('', $message), implode('', $message), [], $value, '', $value, null, AtLeastOneOf::AT_LEAST_ONE_OF_ERROR, $atLeastOneOf), $violations->get(0));
     }
 
@@ -127,7 +127,7 @@
 
         $violations = Validation::createValidator()->validate($value, $atLeastOneOf);
 
-        $this->assertCount(1, $violations, sprintf('1 violation expected. Got %u.', \count($violations)));
+        $this->assertCount(1, $violations, \sprintf('1 violation expected. Got %u.', \count($violations)));
         $this->assertEquals(new ConstraintViolation('foo', 'foo', [], $value, '', $value, null, AtLeastOneOf::AT_LEAST_ONE_OF_ERROR, $atLeastOneOf), $violations->get(0));
     }
 
@@ -191,7 +191,7 @@
     public function testContextIsPropagatedToNestedConstraints()
     {
         $validator = Validation::createValidatorBuilder()
-            ->setMetadataFactory(new class() implements MetadataFactoryInterface {
+            ->setMetadataFactory(new class implements MetadataFactoryInterface {
                 public function getMetadataFor($classOrObject): MetadataInterface
                 {
                     return (new ClassMetadata(ExpressionConstraintNested::class))
@@ -217,7 +217,7 @@
     public function testEmbeddedMessageTakenFromFailingConstraint()
     {
         $validator = Validation::createValidatorBuilder()
-            ->setMetadataFactory(new class() implements MetadataFactoryInterface {
+            ->setMetadataFactory(new class implements MetadataFactoryInterface {
                 public function getMetadataFor($classOrObject): MetadataInterface
                 {
                     return (new ClassMetadata(Data::class))
@@ -267,7 +267,7 @@
 
     public function testTranslatorIsCalledOnConstraintBaseMessageAndViolations()
     {
-        $translator = new class() implements TranslatorInterface, LocaleAwareInterface {
+        $translator = new class implements TranslatorInterface, LocaleAwareInterface {
             use TranslatorTrait;
 
             public function trans(?string $id, array $parameters = [], ?string $domain = null, ?string $locale = null): string
@@ -313,7 +313,7 @@
                 new Collection([
                     'bar' => new AtLeastOneOf([
                         new Type('int'),
-                        new Choice(['test1', 'test2'])
+                        new Choice(['test1', 'test2']),
                     ]),
                 ]),
                 new Collection([
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/BicValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/BicValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/BicValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/BicValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -173,7 +173,7 @@
         $constraint = new Bic(['ibanPropertyPath' => 'foo']);
 
         $this->expectException(ConstraintDefinitionException::class);
-        $this->expectExceptionMessage(sprintf('Invalid property path "foo" provided to "%s" constraint', $constraint::class));
+        $this->expectExceptionMessage(\sprintf('Invalid property path "foo" provided to "%s" constraint', $constraint::class));
 
         $object = new BicComparisonTestClass(5);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CallbackValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CallbackValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CallbackValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CallbackValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -98,7 +98,7 @@
     public function testClosure()
     {
         $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(function ($object, ExecutionContextInterface $context) {
+        $constraint = new Callback(static function ($object, ExecutionContextInterface $context) {
             $context->addViolation('My message', ['{{ value }}' => 'foobar']);
 
             return false;
@@ -113,7 +113,7 @@
 
     public function testClosureNullObject()
     {
-        $constraint = new Callback(function ($object, ExecutionContextInterface $context) {
+        $constraint = new Callback(static function ($object, ExecutionContextInterface $context) {
             $context->addViolation('My message', ['{{ value }}' => 'foobar']);
 
             return false;
@@ -130,7 +130,7 @@
     {
         $object = new CallbackValidatorTest_Object();
         $constraint = new Callback([
-            'callback' => function ($object, ExecutionContextInterface $context) {
+            'callback' => static function ($object, ExecutionContextInterface $context) {
                 $context->addViolation('My message', ['{{ value }}' => 'foobar']);
 
                 return false;
@@ -231,7 +231,7 @@
     {
         $object = new \stdClass();
         $payloadCopy = 'Replace me!';
-        $callback = function ($object, ExecutionContextInterface $constraint, $payload) use (&$payloadCopy) {
+        $callback = static function ($object, ExecutionContextInterface $constraint, $payload) use (&$payloadCopy) {
             $payloadCopy = $payload;
         };
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CardSchemeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CardSchemeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CardSchemeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CardSchemeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Validator\Constraints\CardScheme;
+use Symfony\Component\Validator\Exception\MissingOptionsException;
 use Symfony\Component\Validator\Mapping\ClassMetadata;
 use Symfony\Component\Validator\Mapping\Loader\AttributeLoader;
 
@@ -37,6 +38,14 @@
         self::assertSame(['my_group'], $cConstraint->groups);
         self::assertSame('some attached data', $cConstraint->payload);
     }
+
+    public function testMissingSchemes()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "schemes" must be set for constraint "%s".', CardScheme::class));
+
+        new CardScheme(null);
+    }
 }
 
 class CardSchemeDummy
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CascadeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CascadeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CascadeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CascadeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,6 +27,20 @@
         self::assertTrue($loader->loadClassMetadata($metadata));
         self::assertSame(CascadingStrategy::CASCADE, $metadata->getCascadingStrategy());
     }
+
+    public function testExcludeProperties()
+    {
+        $constraint = new Cascade(['foo', 'bar']);
+
+        self::assertSame(['foo' => 0, 'bar' => 1], $constraint->exclude);
+    }
+
+    public function testExcludePropertiesDoctrineStyle()
+    {
+        $constraint = new Cascade(['exclude' => ['foo', 'bar']]);
+
+        self::assertSame(['foo' => 0, 'bar' => 1], $constraint->exclude);
+    }
 }
 
 #[Cascade]
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -111,11 +111,11 @@
     {
         yield 'doctrine style, namespaced function' => [new Choice(['callback' => __NAMESPACE__.'\choice_callback'])];
         yield 'doctrine style, closure' => [new Choice([
-            'callback' => fn () => ['foo', 'bar'],
+            'callback' => static fn () => ['foo', 'bar'],
         ])];
         yield 'doctrine style, static method' => [new Choice(['callback' => [__CLASS__, 'staticCallback']])];
         yield 'named arguments, namespaced function' => [new Choice(callback: __NAMESPACE__.'\choice_callback')];
-        yield 'named arguments, closure' => [new Choice(callback: fn () => ['foo', 'bar'])];
+        yield 'named arguments, closure' => [new Choice(callback: static fn () => ['foo', 'bar'])];
         yield 'named arguments, static method' => [new Choice(callback: [__CLASS__, 'staticCallback'])];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CidrTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CidrTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CidrTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CidrTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,7 +52,7 @@
         $availableVersions = [Ip::ALL, Ip::V4, Ip::V6];
 
         self::expectException(ConstraintDefinitionException::class);
-        self::expectExceptionMessage(sprintf('The option "version" must be one of "%s".', implode('", "', $availableVersions)));
+        self::expectExceptionMessage(\sprintf('The option "version" must be one of "%s".', implode('", "', $availableVersions)));
 
         new Cidr(['version' => '8']);
     }
@@ -81,7 +81,7 @@
         $expectedMax = Ip::V4 == $ipVersion ? 32 : 128;
 
         self::expectException(ConstraintDefinitionException::class);
-        self::expectExceptionMessage(sprintf('The netmask range must be between 0 and %d.', $expectedMax));
+        self::expectExceptionMessage(\sprintf('The netmask range must be between 0 and %d.', $expectedMax));
 
         new Cidr([
             'version' => $ipVersion,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CollectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CollectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CollectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CollectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,6 +19,7 @@
 use Symfony\Component\Validator\Constraints\Valid;
 use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
 use Symfony\Component\Validator\Exception\InvalidOptionsException;
+use Symfony\Component\Validator\Exception\MissingOptionsException;
 
 /**
  * @author Bernhard Schussek <bschussek@gmail.com>
@@ -217,4 +218,12 @@
         $this->assertTrue($constraint->allowExtraFields);
         $this->assertSame('foo bar baz', $constraint->extraFieldsMessage);
     }
+
+    public function testMissingFields()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "fields" must be set for constraint "%s".', Collection::class));
+
+        new Collection(null);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CountryValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CountryValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CountryValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CountryValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -169,7 +169,7 @@
     public function testValidateUsingCountrySpecificLocale()
     {
         // in order to test with "en_GB"
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('en_GB');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CssColorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CssColorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CssColorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CssColorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,6 +40,26 @@
         self::assertSame(['my_group'], $cConstraint->groups);
         self::assertSame('some attached data', $cConstraint->payload);
     }
+
+    public function testMissingPatternDoctrineStyle()
+    {
+        $constraint = new CssColor([]);
+
+        $this->assertSame([
+            CssColor::HEX_LONG,
+            CssColor::HEX_LONG_WITH_ALPHA,
+            CssColor::HEX_SHORT,
+            CssColor::HEX_SHORT_WITH_ALPHA,
+            CssColor::BASIC_NAMED_COLORS,
+            CssColor::EXTENDED_NAMED_COLORS,
+            CssColor::SYSTEM_COLORS,
+            CssColor::KEYWORDS,
+            CssColor::RGB,
+            CssColor::RGBA,
+            CssColor::HSL,
+            CssColor::HSLA,
+        ], $constraint->formats);
+    }
 }
 
 class CssColorDummy
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CurrencyValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CurrencyValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CurrencyValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/CurrencyValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -75,7 +75,7 @@
      **/
     public function testValidCurrenciesWithCountrySpecificLocale($currency)
     {
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('en_GB');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/DisableAutoMappingTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/DisableAutoMappingTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/DisableAutoMappingTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/DisableAutoMappingTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public function testGroups()
     {
         $this->expectException(ConstraintDefinitionException::class);
-        $this->expectExceptionMessage(sprintf('The option "groups" is not supported by the constraint "%s".', DisableAutoMapping::class));
+        $this->expectExceptionMessage(\sprintf('The option "groups" is not supported by the constraint "%s".', DisableAutoMapping::class));
 
         new DisableAutoMapping(['groups' => 'foo']);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/DivisibleByValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/DivisibleByValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/DivisibleByValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/DivisibleByValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -88,7 +88,7 @@
     public function testThrowsOnNonNumericValues(string $expectedGivenType, $value, $comparedValue)
     {
         $this->expectException(UnexpectedValueException::class);
-        $this->expectExceptionMessage(sprintf('Expected argument of type "numeric", "%s" given', $expectedGivenType));
+        $this->expectExceptionMessage(\sprintf('Expected argument of type "numeric", "%s" given', $expectedGivenType));
 
         $this->validator->validate($value, $this->createConstraint([
             'value' => $comparedValue,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -115,7 +115,7 @@
             ['{}~!@!@£$%%^&*().!@£$%^&*()'],
             ['example@example.co..uk'],
             ['example@-example.com'],
-            [sprintf('example@%s.com', str_repeat('a', 64))],
+            [\sprintf('example@%s.com', str_repeat('a', 64))],
         ];
     }
 
@@ -243,7 +243,7 @@
             [' example@example.com '],
             [' example @example .com '],
             ['example@-example.com'],
-            [sprintf('example@%s.com', str_repeat('a', 64))],
+            [\sprintf('example@%s.com', str_repeat('a', 64))],
         ];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/EnableAutoMappingTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/EnableAutoMappingTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/EnableAutoMappingTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/EnableAutoMappingTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
     public function testGroups()
     {
         $this->expectException(ConstraintDefinitionException::class);
-        $this->expectExceptionMessage(sprintf('The option "groups" is not supported by the constraint "%s".', EnableAutoMapping::class));
+        $this->expectExceptionMessage(\sprintf('The option "groups" is not supported by the constraint "%s".', EnableAutoMapping::class));
 
         new EnableAutoMapping(['groups' => 'foo']);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ExpressionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ExpressionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ExpressionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ExpressionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Validator\Constraints\Expression;
+use Symfony\Component\Validator\Exception\MissingOptionsException;
 use Symfony\Component\Validator\Mapping\ClassMetadata;
 use Symfony\Component\Validator\Mapping\Loader\AttributeLoader;
 
@@ -41,6 +42,22 @@
         self::assertSame('some attached data', $cConstraint->payload);
         self::assertFalse($cConstraint->negate);
     }
+
+    public function testMissingPattern()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "expression" must be set for constraint "%s".', Expression::class));
+
+        new Expression(null);
+    }
+
+    public function testMissingPatternDoctrineStyle()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "expression" must be set for constraint "%s".', Expression::class));
+
+        new Expression([]);
+    }
 }
 
 class ExpressionDummy
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ExpressionValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ExpressionValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ExpressionValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ExpressionValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -258,12 +258,12 @@
             'expression' => 'false',
         ]);
 
-        $expressionLanguage = $this->createMock(ExpressionLanguage::class);
+        $expressionLanguage = $this->createStub(ExpressionLanguage::class);
 
         $used = false;
 
         $expressionLanguage->method('evaluate')
-            ->willReturnCallback(function () use (&$used) {
+            ->willReturnCallback(static function () use (&$used) {
                 $used = true;
 
                 return true;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/HostnameValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/HostnameValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/HostnameValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/HostnameValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -72,7 +72,7 @@
             ['xn--diseolatinoamericano-66b.com'],
             ['xn--ggle-0nda.com'],
             ['www.xn--simulateur-prt-2kb.fr'],
-            [sprintf('%s.com', str_repeat('a', 20))],
+            [\sprintf('%s.com', str_repeat('a', 20))],
         ];
     }
 
@@ -114,7 +114,7 @@
             ['qq--.com'],
             ['-example.com'],
             ['example-.com'],
-            [sprintf('%s.com', str_repeat('a', 300))],
+            [\sprintf('%s.com', str_repeat('a', 300))],
         ];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ImageValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ImageValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ImageValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ImageValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\Validator\Tests\Constraints;
 
+use Symfony\Component\HttpFoundation\File\File;
+use Symfony\Component\Mime\MimeTypes;
 use Symfony\Component\Validator\Constraints\Image;
 use Symfony\Component\Validator\Constraints\ImageValidator;
 use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
@@ -529,7 +531,7 @@
         $this->assertSame('image/*', $constraint->mimeTypes);
 
         $this->buildViolation('This file is not a valid image.')
-            ->setParameter('{{ file }}', sprintf('"%s"', $this->notAnImage))
+            ->setParameter('{{ file }}', \sprintf('"%s"', $this->notAnImage))
             ->setParameter('{{ type }}', '"text/plain"')
             ->setParameter('{{ types }}', '"image/*"')
             ->setParameter('{{ name }}', '"ccc.txt"')
@@ -556,7 +558,7 @@
         $this->validator->validate($this->image, $constraint);
 
         $this->buildViolation('The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.')
-            ->setParameter('{{ file }}', sprintf('"%s"', $this->image))
+            ->setParameter('{{ file }}', \sprintf('"%s"', $this->image))
             ->setParameter('{{ type }}', '"image/gif"')
             ->setParameter('{{ types }}', '"image/jpeg", "image/png"')
             ->setParameter('{{ name }}', '"test.gif"')
@@ -579,4 +581,75 @@
             ]),
         ];
     }
+
+    /**
+     * @dataProvider providerValidExtension
+     */
+    public function testExtensionValid(string $name)
+    {
+        if (!class_exists(MimeTypes::class)) {
+            $this->markTestSkipped('Guessing the mime type is not possible');
+        }
+
+        $constraint = new Image(mimeTypes: [], extensions: ['gif'], extensionsMessage: 'myMessage');
+
+        $this->validator->validate(new File(__DIR__.'/Fixtures/'.$name), $constraint);
+
+        $this->assertNoViolation();
+    }
+
+    public static function providerValidExtension(): iterable
+    {
+        yield ['test.gif'];
+        yield ['test.png.gif'];
+    }
+
+    /**
+     * @dataProvider provideInvalidExtension
+     */
+    public function testExtensionInvalid(string $name, string $extension)
+    {
+        $path = __DIR__.'/Fixtures/'.$name;
+        $constraint = new Image(extensions: ['png', 'svg'], extensionsMessage: 'myMessage');
+
+        $this->validator->validate(new File($path), $constraint);
+
+        $this->buildViolation('myMessage')
+            ->setParameters([
+                '{{ file }}' => '"'.$path.'"',
+                '{{ extension }}' => '"'.$extension.'"',
+                '{{ extensions }}' => '"png", "svg"',
+                '{{ name }}' => '"'.$name.'"',
+            ])
+            ->setCode(Image::INVALID_EXTENSION_ERROR)
+            ->assertRaised();
+    }
+
+    public static function provideInvalidExtension(): iterable
+    {
+        yield ['test.gif', 'gif'];
+        yield ['test.png.gif', 'gif'];
+    }
+
+    public function testExtensionAutodetectMimeTypesInvalid()
+    {
+        if (!class_exists(MimeTypes::class)) {
+            $this->markTestSkipped('Guessing the mime type is not possible');
+        }
+
+        $path = __DIR__.'/Fixtures/invalid-content.gif';
+        $constraint = new Image(mimeTypesMessage: 'myMessage', extensions: ['gif']);
+
+        $this->validator->validate(new File($path), $constraint);
+
+        $this->buildViolation('myMessage')
+            ->setParameters([
+                '{{ file }}' => '"'.$path.'"',
+                '{{ name }}' => '"invalid-content.gif"',
+                '{{ type }}' => '"text/plain"',
+                '{{ types }}' => '"image/gif"',
+            ])
+            ->setCode(Image::INVALID_MIME_TYPE_ERROR)
+            ->assertRaised();
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/IpValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/IpValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/IpValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/IpValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -95,7 +95,7 @@
     {
         $this->validator->validate(
             "\n\t2001:0db8:85a3:0000:0000:8a2e:0370:7334\r\n",
-            new Ip(version: \Symfony\Component\Validator\Constraints\Ip::V6, normalizer: 'trim')
+            new Ip(version: Ip::V6, normalizer: 'trim')
         );
 
         $this->assertNoViolation();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/IsbnValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/IsbnValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/IsbnValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/IsbnValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -121,7 +121,7 @@
 
     public function testNullIsValid()
     {
-        $constraint = new Isbn(true);
+        $constraint = new Isbn();
 
         $this->validator->validate(null, $constraint);
 
@@ -130,7 +130,7 @@
 
     public function testEmptyStringIsValid()
     {
-        $constraint = new Isbn(true);
+        $constraint = new Isbn();
 
         $this->validator->validate('', $constraint);
 
@@ -140,7 +140,7 @@
     public function testExpectsStringCompatibleType()
     {
         $this->expectException(UnexpectedValueException::class);
-        $constraint = new Isbn(true);
+        $constraint = new Isbn();
 
         $this->validator->validate(new \stdClass(), $constraint);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LanguageValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LanguageValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LanguageValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LanguageValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -167,7 +167,7 @@
 
     public function testValidateUsingCountrySpecificLocale()
     {
-        IntlTestHelper::requireFullIntl($this, false);
+        IntlTestHelper::requireFullIntl($this);
 
         \Locale::setDefault('fr_FR');
         $existingLanguage = 'en';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LengthTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LengthTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LengthTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LengthTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,7 +58,7 @@
     public function testInvalidCountUnitThrowsException()
     {
         $this->expectException(InvalidArgumentException::class);
-        $this->expectExceptionMessage(sprintf('The "countUnit" option must be one of the "%s"::COUNT_* constants ("%s" given).', Length::class, 'nonExistentCountUnit'));
+        $this->expectExceptionMessage(\sprintf('The "countUnit" option must be one of the "%s"::COUNT_* constants ("%s" given).', Length::class, 'nonExistentCountUnit'));
         new Length(['min' => 0, 'max' => 10, 'countUnit' => 'nonExistentCountUnit']);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,4 +83,19 @@
             [5, '5', true],
         ];
     }
+
+    public function testInvalidComparisonWithExtremeDateDoesNotThrow()
+    {
+        $constraint = new LessThanOrEqual(value: new \DateTimeImmutable('2025-01-01'));
+        $constraint->message = 'Constraint Message';
+
+        $extremeDate = (new \DateTimeImmutable())->setDate(185449, 12, 31)->setTime(23, 0, 0);
+
+        $this->validator->validate($extremeDate, $constraint);
+
+        $violations = $this->context->getViolations();
+        $this->assertCount(1, $violations);
+        $this->assertSame('Constraint Message', $violations[0]->getMessageTemplate());
+        $this->assertSame(LessThanOrEqual::TOO_HIGH_ERROR, $violations[0]->getCode());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LocaleValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LocaleValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LocaleValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/LocaleValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -91,6 +91,21 @@
         ];
     }
 
+    public function testTooLongLocale()
+    {
+        $constraint = new Locale([
+            'message' => 'myMessage',
+        ]);
+
+        $locale = str_repeat('a', (\defined('INTL_MAX_LOCALE_LEN') ? \INTL_MAX_LOCALE_LEN : 85) + 1);
+        $this->validator->validate($locale, $constraint);
+
+        $this->buildViolation('myMessage')
+            ->setParameter('{{ value }}', '"'.$locale.'"')
+            ->setCode(Locale::NO_SUCH_LOCALE_ERROR)
+            ->assertRaised();
+    }
+
     /**
      * @dataProvider getUncanonicalizedLocales
      */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/NotCompromisedPasswordValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/NotCompromisedPasswordValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/NotCompromisedPasswordValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/NotCompromisedPasswordValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\Validator\Tests\Constraints;
 
+use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\HttpClient\Response\MockResponse;
 use Symfony\Component\Validator\Constraints\Luhn;
 use Symfony\Component\Validator\Constraints\NotCompromisedPassword;
 use Symfony\Component\Validator\Constraints\NotCompromisedPasswordValidator;
@@ -18,9 +20,7 @@
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 use Symfony\Component\Validator\Test\ConstraintValidatorTestCase;
 use Symfony\Contracts\HttpClient\Exception\ExceptionInterface;
-use Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 /**
  * @author Kévin Dunglas <dunglas@gmail.com>
@@ -204,7 +204,6 @@
     public function testApiError()
     {
         $this->expectException(ExceptionInterface::class);
-        $this->expectExceptionMessage('Problem contacting the Have I been Pwned API.');
         $this->validator->validate(self::PASSWORD_TRIGGERING_AN_ERROR, new NotCompromisedPassword());
     }
 
@@ -213,8 +212,9 @@
      */
     public function testApiErrorSkipped(NotCompromisedPassword $constraint)
     {
+        self::expectNotToPerformAssertions();
+
         $this->validator->validate(self::PASSWORD_TRIGGERING_AN_ERROR, $constraint);
-        $this->assertTrue(true); // No exception have been thrown
     }
 
     public static function provideErrorSkippingConstraints(): iterable
@@ -225,44 +225,20 @@
 
     private function createHttpClientStub(?string $returnValue = null): HttpClientInterface
     {
-        $httpClientStub = $this->createMock(HttpClientInterface::class);
-        $httpClientStub->method('request')->willReturnCallback(
-            function (string $method, string $url) use ($returnValue): ResponseInterface {
-                if (self::PASSWORD_TRIGGERING_AN_ERROR_RANGE_URL === $url) {
-                    throw new class('Problem contacting the Have I been Pwned API.') extends \Exception implements ServerExceptionInterface {
-                        public function getResponse(): ResponseInterface
-                        {
-                            throw new \RuntimeException('Not implemented');
-                        }
-                    };
-                }
-
-                $responseStub = $this->createMock(ResponseInterface::class);
-                $responseStub
-                    ->method('getContent')
-                    ->willReturn($returnValue ?? implode("\r\n", self::RETURN));
-
-                return $responseStub;
+        return new MockHttpClient(static function ($method, $url) use ($returnValue) {
+            if (self::PASSWORD_TRIGGERING_AN_ERROR_RANGE_URL !== $url) {
+                return new MockResponse($returnValue ?? implode("\r\n", self::RETURN));
             }
-        );
-
-        return $httpClientStub;
+        });
     }
 
     private function createHttpClientStubCustomEndpoint($expectedEndpoint): HttpClientInterface
     {
-        $httpClientStub = $this->createMock(HttpClientInterface::class);
-        $httpClientStub->method('request')->with('GET', $expectedEndpoint)->willReturnCallback(
-            function (string $method, string $url): ResponseInterface {
-                $responseStub = $this->createMock(ResponseInterface::class);
-                $responseStub
-                    ->method('getContent')
-                    ->willReturn(implode("\r\n", self::RETURN));
-
-                return $responseStub;
-            }
-        );
+        return new MockHttpClient(function ($method, $url) use ($expectedEndpoint) {
+            $this->assertSame('GET', $method);
+            $this->assertSame($expectedEndpoint, $url);
 
-        return $httpClientStub;
+            return new MockResponse(implode("\r\n", self::RETURN));
+        });
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/RegexTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/RegexTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/RegexTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/RegexTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Validator\Constraints\Regex;
 use Symfony\Component\Validator\Exception\InvalidArgumentException;
+use Symfony\Component\Validator\Exception\MissingOptionsException;
 use Symfony\Component\Validator\Mapping\ClassMetadata;
 use Symfony\Component\Validator\Mapping\Loader\AttributeLoader;
 
@@ -132,6 +133,22 @@
         self::assertSame(['my_group'], $cConstraint->groups);
         self::assertSame('some attached data', $cConstraint->payload);
     }
+
+    public function testMissingPattern()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "pattern" must be set for constraint "%s".', Regex::class));
+
+        new Regex(null);
+    }
+
+    public function testMissingPatternDoctrineStyle()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "pattern" must be set for constraint "%s".', Regex::class));
+
+        new Regex([]);
+    }
 }
 
 class RegexDummy
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/RegexValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/RegexValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/RegexValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/RegexValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
             ['0'],
             ['090909'],
             [90909],
-            [new class() {
+            [new class {
                 public function __toString(): string
                 {
                     return '090909';
@@ -144,7 +144,7 @@
         return [
             ['abcd'],
             ['090foo'],
-            [new class() {
+            [new class {
                 public function __toString(): string
                 {
                     return 'abcd';
@@ -152,4 +152,19 @@
             }],
         ];
     }
+
+    public function testMatchFalseWithTooManyBacktrackingShouldNotPass()
+    {
+        $value = '<'.str_repeat('a', 1000000).'<a href="javascript:alert(1)">test</a>';
+        $pattern = '/<script|([^>]*?)(on\w+\s*=\s*(["\']).*?\3|href\s*=\s*(["\'])javascript:.*?\4)[^>]*?>/is';
+        $constraint = new Regex(pattern: $pattern, message: 'myMessage', match: false);
+
+        $this->validator->validate($value, $constraint);
+
+        $this->buildViolation('myMessage')
+            ->setParameter('{{ value }}', '"'.$value.'"')
+            ->setParameter('{{ pattern }}', $pattern)
+            ->setCode(Regex::REGEX_FAILED_ERROR)
+            ->assertRaised();
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/SequentiallyTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/SequentiallyTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/SequentiallyTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/SequentiallyTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,7 @@
 use Symfony\Component\Validator\Constraints\Sequentially;
 use Symfony\Component\Validator\Constraints\Valid;
 use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
+use Symfony\Component\Validator\Exception\MissingOptionsException;
 
 class SequentiallyTest extends TestCase
 {
@@ -35,4 +36,20 @@
             new Valid(),
         ]);
     }
+
+    public function testMissingConstraints()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "constraints" must be set for constraint "%s".', Sequentially::class));
+
+        new Sequentially(null);
+    }
+
+    public function testMissingConstraintsDoctrineStyle()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "constraints" must be set for constraint "%s".', Sequentially::class));
+
+        new Sequentially([]);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/TimezoneValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/TimezoneValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/TimezoneValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/TimezoneValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -132,7 +132,7 @@
         $this->validator->validate($timezone, $constraint);
 
         $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', sprintf('"%s"', $timezone))
+            ->setParameter('{{ value }}', \sprintf('"%s"', $timezone))
             ->setCode(Timezone::TIMEZONE_IDENTIFIER_ERROR)
             ->assertRaised();
     }
@@ -158,7 +158,7 @@
         $this->validator->validate($timezone, $constraint);
 
         $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', sprintf('"%s"', $timezone))
+            ->setParameter('{{ value }}', \sprintf('"%s"', $timezone))
             ->setCode(Timezone::TIMEZONE_IDENTIFIER_IN_ZONE_ERROR)
             ->assertRaised();
     }
@@ -239,7 +239,7 @@
         $this->validator->validate($timezone, $constraint);
 
         $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', sprintf('"%s"', $timezone))
+            ->setParameter('{{ value }}', \sprintf('"%s"', $timezone))
             ->setCode(Timezone::TIMEZONE_IDENTIFIER_IN_COUNTRY_ERROR)
             ->assertRaised();
     }
@@ -274,6 +274,11 @@
      */
     public function testDeprecatedTimezonesAreValidWithBC(string $timezone)
     {
+        // Skip test if the timezone is not available in the current timezone database
+        if (!\in_array($timezone, \DateTimeZone::listIdentifiers(\DateTimeZone::ALL_WITH_BC), true)) {
+            $this->markTestSkipped(\sprintf('Timezone "%s" is not available in the current timezone database', $timezone));
+        }
+
         $constraint = new Timezone(\DateTimeZone::ALL_WITH_BC);
 
         $this->validator->validate($timezone, $constraint);
@@ -293,7 +298,7 @@
         $this->validator->validate($timezone, $constraint);
 
         $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', sprintf('"%s"', $timezone))
+            ->setParameter('{{ value }}', \sprintf('"%s"', $timezone))
             ->setCode(Timezone::TIMEZONE_IDENTIFIER_ERROR)
             ->assertRaised();
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/TypeTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/TypeTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/TypeTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/TypeTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -13,6 +13,7 @@
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Validator\Constraints\Type;
+use Symfony\Component\Validator\Exception\MissingOptionsException;
 use Symfony\Component\Validator\Mapping\ClassMetadata;
 use Symfony\Component\Validator\Mapping\Loader\AttributeLoader;
 
@@ -36,6 +37,14 @@
         self::assertSame(['my_group'], $cConstraint->groups);
         self::assertSame('some attached data', $cConstraint->payload);
     }
+
+    public function testMissingType()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage(\sprintf('The options "type" must be set for constraint "%s".', Type::class));
+
+        new Type(null);
+    }
 }
 
 class TypeDummy
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/UniqueValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/UniqueValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/UniqueValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/UniqueValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -229,7 +229,7 @@
     public function testCollectionFieldNamesMustBeString(string $type, mixed $field)
     {
         $this->expectException(UnexpectedTypeException::class);
-        $this->expectExceptionMessage(sprintf('Expected argument of type "string", "%s" given', $type));
+        $this->expectExceptionMessage(\sprintf('Expected argument of type "string", "%s" given', $type));
 
         $this->validator->validate([['value' => 5], ['id' => 1, 'value' => 6]], new Unique(fields: [$field]));
     }
@@ -243,6 +243,30 @@
         ];
     }
 
+    /**
+     * @dataProvider getValidCollectionValues
+     */
+    public function testValidCollectionValues(array $value, array $fields)
+    {
+        $this->validator->validate($value, new Unique(fields: $fields));
+
+        $this->assertNoViolation();
+    }
+
+    public static function getValidCollectionValues(): array
+    {
+        return [
+            'unique empty item' => [
+                [['field' => 1], ['field' => 2], []],
+                ['field'],
+            ],
+            'unique non-array item' => [
+                [['field' => 1], ['field' => 2], '', 1, null],
+                ['field'],
+            ],
+        ];
+    }
+
     /**
      * @dataProvider getInvalidCollectionValues
      */
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -209,6 +209,8 @@
             ['http://বিডিআইএ.বাংলা'],
             ['http://www.example.com/คนแซ่ลี้/'],
             ['http://www.example.com/か/'],
+            ['https://l.o_g~i!n$u\'s(e)r*n+a,m;e=:p.a_s~s!w$o\'r(d)*+,;=secret@ftp.example.com/path/file.tar.gz'],
+            ['https://l(o)g%40in:pa$$+word%20secret@ftp.example.com/path/file.tar.gz'],
         ];
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ValidTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ValidTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ValidTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/ValidTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
 
     public function testAttributes()
     {
-        $metadata = new ClassMetaData(ValidDummy::class);
+        $metadata = new ClassMetadata(ValidDummy::class);
         $loader = new AttributeLoader();
         self::assertTrue($loader->loadClassMetadata($metadata));
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/WhenTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/WhenTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Constraints/WhenTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Constraints/WhenTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,6 +37,14 @@
         new When([]);
     }
 
+    public function testMissingConstraints()
+    {
+        $this->expectException(MissingOptionsException::class);
+        $this->expectExceptionMessage('The options "constraints" must be set for constraint "Symfony\Component\Validator\Constraints\When".');
+
+        new When('true');
+    }
+
     public function testNonConstraintsAreRejected()
     {
         $this->expectException(ConstraintDefinitionException::class);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/ConstraintViolationListTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/ConstraintViolationListTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/ConstraintViolationListTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/ConstraintViolationListTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -107,18 +107,18 @@
         ]);
 
         $expected = <<<'EOF'
-Root:
-    Error 1
-Root.foo.bar:
-    Error 2
-Root[baz]:
-    Error 3
-foo.bar:
-    Error 4
-[baz]:
-    Error 5
+            Root:
+                Error 1
+            Root.foo.bar:
+                Error 2
+            Root[baz]:
+                Error 3
+            foo.bar:
+                Error 4
+            [baz]:
+                Error 5
 
-EOF;
+            EOF;
 
         $this->assertEquals($expected, (string) $this->list);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/ConstraintViolationTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/ConstraintViolationTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/ConstraintViolationTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/ConstraintViolationTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,9 +30,9 @@
         );
 
         $expected = <<<'EOF'
-Root.property.path:
-    Array
-EOF;
+            Root.property.path:
+                Array
+            EOF;
 
         $this->assertSame($expected, (string) $violation);
     }
@@ -49,9 +49,9 @@
         );
 
         $expected = <<<'EOF'
-Array.some_value:
-    42 cannot be used here
-EOF;
+            Array.some_value:
+                42 cannot be used here
+            EOF;
 
         $this->assertSame($expected, (string) $violation);
     }
@@ -70,9 +70,9 @@
         );
 
         $expected = <<<'EOF'
-Array.some_value:
-    42 cannot be used here (code 0)
-EOF;
+            Array.some_value:
+                42 cannot be used here (code 0)
+            EOF;
 
         $this->assertSame($expected, (string) $violation);
     }
@@ -80,9 +80,9 @@
     public function testToStringOmitsEmptyCodes()
     {
         $expected = <<<'EOF'
-Array.some_value:
-    42 cannot be used here
-EOF;
+            Array.some_value:
+                42 cannot be used here
+            EOF;
 
         $violation = new ConstraintViolation(
             '42 cannot be used here',
@@ -124,9 +124,9 @@
         );
 
         $expected = <<<'EOF'
-Root.property.path:
-    toString
-EOF;
+            Root.property.path:
+                toString
+            EOF;
         $this->assertSame($expected, (string) $violation);
         $this->assertSame($message, $violation->getMessage());
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/DataCollector/ValidatorDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/DataCollector/ValidatorDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/DataCollector/ValidatorDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/DataCollector/ValidatorDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,14 +22,14 @@
 {
     public function testCollectsValidatorCalls()
     {
-        $originalValidator = $this->createMock(ValidatorInterface::class);
+        $originalValidator = $this->createStub(ValidatorInterface::class);
         $validator = new TraceableValidator($originalValidator);
 
         $collector = new ValidatorDataCollector($validator);
 
         $violations = new ConstraintViolationList([
-            $this->createMock(ConstraintViolation::class),
-            $this->createMock(ConstraintViolation::class),
+            $this->createStub(ConstraintViolation::class),
+            $this->createStub(ConstraintViolation::class),
         ]);
         $originalValidator->method('validate')->willReturn($violations);
 
@@ -52,14 +52,14 @@
 
     public function testReset()
     {
-        $originalValidator = $this->createMock(ValidatorInterface::class);
+        $originalValidator = $this->createStub(ValidatorInterface::class);
         $validator = new TraceableValidator($originalValidator);
 
         $collector = new ValidatorDataCollector($validator);
 
         $violations = new ConstraintViolationList([
-            $this->createMock(ConstraintViolation::class),
-            $this->createMock(ConstraintViolation::class),
+            $this->createStub(ConstraintViolation::class),
+            $this->createStub(ConstraintViolation::class),
         ]);
         $originalValidator->method('validate')->willReturn($violations);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Fixtures/EntityWithHook.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Fixtures/EntityWithHook.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Fixtures/EntityWithHook.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Fixtures/EntityWithHook.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,31 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Validator\Tests\Fixtures;
+
+class EntityWithHook
+{
+    public string $name;
+
+    protected int $id = 1;
+
+    protected string $withHook {
+        get {
+            $this->withHook ??= strtolower($this->name);
+
+            return $this->withHook;
+        }
+    }
+
+    protected string $withHookOnSelf {
+        get => strtolower($this->withHookOnSelf);
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,7 @@
 use Symfony\Component\Validator\Mapping\ClassMetadata;
 use Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory;
 use Symfony\Component\Validator\Mapping\Loader\LoaderInterface;
+use Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader;
 use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
 use Symfony\Component\Validator\Tests\Fixtures\NestedAttribute\Entity;
 use Symfony\Component\Validator\Tests\Fixtures\NestedAttribute\EntityParent;
@@ -111,9 +112,8 @@
     {
         $this->expectException(NoSuchMetadataException::class);
         $testedValue = 'error@example.com';
-        $loader = $this->createMock(LoaderInterface::class);
         $cache = $this->createMock(CacheItemPoolInterface::class);
-        $factory = new LazyLoadingMetadataFactory($loader, $cache);
+        $factory = new LazyLoadingMetadataFactory(new StaticMethodLoader(), $cache);
         $cache
             ->expects($this->never())
             ->method('getItem');
@@ -126,7 +126,7 @@
         $factory = new LazyLoadingMetadataFactory(new TestLoader(), $cache);
 
         $metadata = $factory->getMetadataFor(self::PARENT_CLASS);
-        $metadata->addConstraint(new Callback(function () {}));
+        $metadata->addConstraint(new Callback(static function () {}));
 
         $this->assertCount(3, $metadata->getConstraints());
 
@@ -137,7 +137,7 @@
 
     public function testGroupsFromParent()
     {
-        $reader = new \Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader();
+        $reader = new StaticMethodLoader();
         $factory = new LazyLoadingMetadataFactory($reader);
         $metadata = $factory->getMetadataFor('Symfony\Component\Validator\Tests\Fixtures\EntityStaticCarTurbo');
         $groups = [];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/FilesLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/FilesLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/FilesLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/FilesLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,6 +14,7 @@
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Validator\Mapping\ClassMetadata;
 use Symfony\Component\Validator\Mapping\Loader\LoaderInterface;
+use Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader;
 use Symfony\Component\Validator\Tests\Fixtures\FilesLoader;
 use Symfony\Component\Validator\Tests\Fixtures\NestedAttribute\Entity;
 
@@ -21,7 +22,7 @@
 {
     public function testCallsGetFileLoaderInstanceForeachPath()
     {
-        $loader = $this->getFilesLoader($this->createMock(LoaderInterface::class));
+        $loader = $this->getFilesLoader(new StaticMethodLoader());
         $this->assertEquals(4, $loader->getTimesCalled());
     }
 
@@ -36,11 +37,6 @@
 
     public function getFilesLoader(LoaderInterface $loader)
     {
-        return new class([
-            __DIR__.'/constraint-mapping.xml',
-            __DIR__.'/constraint-mapping.yaml',
-            __DIR__.'/constraint-mapping.test',
-            __DIR__.'/constraint-mapping.txt',
-        ], $loader) extends FilesLoader {};
+        return new class([__DIR__.'/constraint-mapping.xml', __DIR__.'/constraint-mapping.yaml', __DIR__.'/constraint-mapping.test', __DIR__.'/constraint-mapping.txt'], $loader) extends FilesLoader {};
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/LoaderChainTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/LoaderChainTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/LoaderChainTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/LoaderChainTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,13 +44,13 @@
     {
         $metadata = new ClassMetadata('\stdClass');
 
-        $loader1 = $this->createMock(LoaderInterface::class);
-        $loader1->expects($this->any())
+        $loader1 = $this->createStub(LoaderInterface::class);
+        $loader1
             ->method('loadClassMetadata')
             ->willReturn(true);
 
-        $loader2 = $this->createMock(LoaderInterface::class);
-        $loader2->expects($this->any())
+        $loader2 = $this->createStub(LoaderInterface::class);
+        $loader2
             ->method('loadClassMetadata')
             ->willReturn(false);
 
@@ -66,13 +66,13 @@
     {
         $metadata = new ClassMetadata('\stdClass');
 
-        $loader1 = $this->createMock(LoaderInterface::class);
-        $loader1->expects($this->any())
+        $loader1 = $this->createStub(LoaderInterface::class);
+        $loader1
             ->method('loadClassMetadata')
             ->willReturn(false);
 
-        $loader2 = $this->createMock(LoaderInterface::class);
-        $loader2->expects($this->any())
+        $loader2 = $this->createStub(LoaderInterface::class);
+        $loader2
             ->method('loadClassMetadata')
             ->willReturn(false);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/PropertyInfoLoaderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/PropertyInfoLoaderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/PropertyInfoLoaderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Mapping/Loader/PropertyInfoLoaderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
 {
     public function testLoadClassMetadata()
     {
-        $propertyInfoStub = $this->createMock(PropertyInfoExtractorInterface::class);
+        $propertyInfoStub = $this->createStub(PropertyInfoExtractorInterface::class);
         $propertyInfoStub
             ->method('getProperties')
             ->willReturn([
@@ -190,7 +190,7 @@
      */
     public function testClassValidator(bool $expected, ?string $classValidatorRegexp = null)
     {
-        $propertyInfoStub = $this->createMock(PropertyInfoExtractorInterface::class);
+        $propertyInfoStub = $this->createStub(PropertyInfoExtractorInterface::class);
         $propertyInfoStub
             ->method('getProperties')
             ->willReturn(['string'])
@@ -218,7 +218,7 @@
 
     public function testClassNoAutoMapping()
     {
-        $propertyInfoStub = $this->createMock(PropertyInfoExtractorInterface::class);
+        $propertyInfoStub = $this->createStub(PropertyInfoExtractorInterface::class);
         $propertyInfoStub
             ->method('getProperties')
             ->willReturn(['string', 'autoMappingExplicitlyEnabled'])
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Mapping/PropertyMetadataTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Mapping/PropertyMetadataTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Mapping/PropertyMetadataTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Mapping/PropertyMetadataTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,6 +16,7 @@
 use Symfony\Component\Validator\Mapping\PropertyMetadata;
 use Symfony\Component\Validator\Tests\Fixtures\Entity_74;
 use Symfony\Component\Validator\Tests\Fixtures\Entity_74_Proxy;
+use Symfony\Component\Validator\Tests\Fixtures\EntityWithHook;
 use Symfony\Component\Validator\Tests\Fixtures\NestedAttribute\Entity;
 use Symfony\Component\Validator\Tests\Fixtures\NestedAttribute\EntityParent;
 
@@ -77,4 +78,39 @@
         $this->assertNull($notUnsetMetadata->getPropertyValue($entity));
         $this->assertEquals(42, $metadata->getPropertyValue($entity));
     }
+
+    /**
+     * @requires PHP 8.4
+     */
+    public function testGetPropertyValueFromUninitializedPropertyShouldUseHookIfPresent()
+    {
+        $entity = new EntityWithHook();
+        $entity->name = 'FOOBAR';
+        $metadata = new PropertyMetadata(EntityWithHook::class, 'withHook');
+
+        $this->assertEquals('foobar', $metadata->getPropertyValue($entity));
+    }
+
+    /**
+     * @requires PHP 8.4
+     */
+    public function testGetPropertyValueFromUninitializedPropertyShouldReturnNullIfHookFails()
+    {
+        $entity = new EntityWithHook();
+        // $withHook uses $entity->name but it's not initialized
+        $metadata = new PropertyMetadata(EntityWithHook::class, 'withHook');
+
+        $this->assertNull($metadata->getPropertyValue($entity));
+    }
+
+    /**
+     * @requires PHP 8.4
+     */
+    public function testGetPropertyValueFromUninitializedPropertyWithHookReferencingItself()
+    {
+        $entity = new EntityWithHook();
+        $metadata = new PropertyMetadata(EntityWithHook::class, 'withHookOnSelf');
+
+        $this->assertNull($metadata->getPropertyValue($entity));
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Resources/TranslationFilesTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Resources/TranslationFilesTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Resources/TranslationFilesTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Resources/TranslationFilesTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
 
         $errors = XliffUtils::validateSchema($document);
 
-        $this->assertCount(0, $errors, sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
+        $this->assertCount(0, $errors, \sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
     }
 
     /**
@@ -39,13 +39,13 @@
 
         $errors = XliffUtils::validateSchema($document);
 
-        $this->assertCount(0, $errors, sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
+        $this->assertCount(0, $errors, \sprintf('"%s" is invalid:%s', $filePath, \PHP_EOL.implode(\PHP_EOL, array_column($errors, 'message'))));
     }
 
     public static function provideTranslationFiles()
     {
         return array_map(
-            fn ($filePath) => (array) $filePath,
+            static fn ($filePath) => (array) $filePath,
             glob(\dirname(__DIR__, 2).'/Resources/translations/*.xlf')
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Validator/RecursiveValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Validator/RecursiveValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Validator/RecursiveValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Validator/RecursiveValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -120,7 +120,7 @@
 
         $violations = $this->validate('Bernhard', $constraint, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -156,7 +156,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -195,7 +195,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -234,7 +234,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -271,7 +271,7 @@
 
         $violations = $this->validate($array, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -308,7 +308,7 @@
 
         $violations = $this->validate($array, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -345,7 +345,7 @@
 
         $violations = $this->validate($traversable, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -384,7 +384,7 @@
 
         $violations = $this->validate($traversable, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -422,7 +422,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -463,7 +463,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -504,7 +504,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -525,7 +525,7 @@
 
         $violations = $this->validate($entity);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -569,7 +569,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -610,7 +610,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -627,12 +627,12 @@
         $entity = new Entity();
         $entity->reference = ['key' => new Reference()];
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message %param%', ['%param%' => 'value']);
         };
 
         $this->metadata->addPropertyConstraint('reference', new Callback([
-            'callback' => function () {},
+            'callback' => static function () {},
             'groups' => 'Group',
         ]));
         $this->referenceMetadata->addConstraint(new Callback([
@@ -642,7 +642,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -654,7 +654,7 @@
         $entity = new Entity();
         $entity->reference = ['key' => new Reference()];
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message %param%', ['%param%' => 'value']);
         };
 
@@ -665,7 +665,7 @@
 
         $violations = $this->validate($entity);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
     }
 
@@ -677,7 +677,7 @@
         $entity = new Entity();
         $entity->reference = [2 => ['key' => new Reference()]];
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message %param%', ['%param%' => 'value']);
         };
 
@@ -689,7 +689,7 @@
 
         $violations = $this->validate($entity);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
     }
 
@@ -705,7 +705,7 @@
 
         $violations = $this->validate($entity);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -721,7 +721,7 @@
 
         $violations = $this->validate($entity);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -751,7 +751,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -768,7 +768,7 @@
         $entity = new Entity();
         $entity->reference = new \ArrayIterator(['key' => new Reference()]);
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message %param%', ['%param%' => 'value']);
         };
 
@@ -780,7 +780,7 @@
 
         $violations = $this->validate($entity);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -827,7 +827,7 @@
 
         $violations = $this->validate($entity, null, 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -860,7 +860,7 @@
             $context->addViolation('Message %param%', ['%param%' => 'value']);
         };
 
-        $callback2 = function ($value, ExecutionContextInterface $context) {
+        $callback2 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Other violation');
         };
 
@@ -875,7 +875,7 @@
 
         $violations = $this->validateProperty($entity, 'firstName', 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -918,7 +918,7 @@
             $context->addViolation('Message %param%', ['%param%' => 'value']);
         };
 
-        $callback2 = function ($value, ExecutionContextInterface $context) {
+        $callback2 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Other violation');
         };
 
@@ -938,7 +938,7 @@
             'Group'
         );
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -967,7 +967,7 @@
             $context->addViolation('Message %param%', ['%param%' => 'value']);
         };
 
-        $callback2 = function ($value, ExecutionContextInterface $context) {
+        $callback2 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Other violation');
         };
 
@@ -987,7 +987,7 @@
             'Group'
         );
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -1016,7 +1016,7 @@
         $entity->reference = new Reference();
         $entity->reference2 = $entity->reference;
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message');
         };
 
@@ -1026,7 +1026,7 @@
 
         $violations = $this->validate($entity);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
     }
 
@@ -1036,7 +1036,7 @@
         $entity->reference = new Reference();
         $entity->reference2 = new Reference();
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message');
         };
 
@@ -1046,7 +1046,7 @@
 
         $violations = $this->validate($entity);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(2, $violations);
     }
 
@@ -1054,7 +1054,7 @@
     {
         $entity = new Entity();
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message');
         };
 
@@ -1069,7 +1069,7 @@
 
         $violations = $this->validate($entity, null, 'Group 2');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
     }
 
@@ -1077,7 +1077,7 @@
     {
         $entity = new Entity();
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message');
         };
 
@@ -1092,7 +1092,7 @@
 
         $violations = $this->validate($entity, null, ['Group 1', 'Group 2']);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(2, $violations);
     }
 
@@ -1100,15 +1100,15 @@
     {
         $entity = new Entity();
 
-        $callback1 = function ($value, ExecutionContextInterface $context) {
+        $callback1 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Violation in Group 2');
         };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
+        $callback2 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Violation in Group 3');
         };
 
         $this->metadata->addConstraint(new Callback([
-            'callback' => function () {},
+            'callback' => static function () {},
             'groups' => 'Group 1',
         ]));
         $this->metadata->addConstraint(new Callback([
@@ -1125,7 +1125,7 @@
 
         $violations = $this->validate($entity, null, 'Default');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Violation in Group 2', $violations[0]->getMessage());
     }
@@ -1134,15 +1134,15 @@
     {
         $entity = new Entity();
 
-        $callback1 = function ($value, ExecutionContextInterface $context) {
+        $callback1 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Violation in Group 2');
         };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
+        $callback2 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Violation in Group 3');
         };
 
         $this->metadata->addConstraint(new Callback([
-            'callback' => function () {},
+            'callback' => static function () {},
             'groups' => 'Group 1',
         ]));
         $this->metadata->addConstraint(new Callback([
@@ -1159,7 +1159,7 @@
 
         $violations = $this->validate($entity, null, 'Default');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Violation in Group 2', $violations[0]->getMessage());
     }
@@ -1169,10 +1169,10 @@
         $entity = new Entity();
         $entity->reference = new Reference();
 
-        $callback1 = function ($value, ExecutionContextInterface $context) {
+        $callback1 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Violation in Default group');
         };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
+        $callback2 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Violation in group sequence');
         };
 
@@ -1191,7 +1191,7 @@
 
         $violations = $this->validate($entity, null, 'Default');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Violation in Default group', $violations[0]->getMessage());
     }
@@ -1200,10 +1200,10 @@
     {
         $entity = new Entity();
 
-        $callback1 = function ($value, ExecutionContextInterface $context) {
+        $callback1 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Violation in other group');
         };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
+        $callback2 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Violation in group sequence');
         };
 
@@ -1221,7 +1221,7 @@
 
         $violations = $this->validate($entity, null, 'Other Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Violation in other group', $violations[0]->getMessage());
     }
@@ -1233,16 +1233,16 @@
     {
         $entity = new GroupSequenceProviderEntity($sequence);
 
-        $callback1 = function ($value, ExecutionContextInterface $context) {
+        $callback1 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Violation in Group 2');
         };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
+        $callback2 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Violation in Group 3');
         };
 
         $metadata = new ClassMetadata($entity::class);
         $metadata->addConstraint(new Callback([
-            'callback' => function () {},
+            'callback' => static function () {},
             'groups' => 'Group 1',
         ]));
         $metadata->addConstraint(new Callback([
@@ -1259,7 +1259,7 @@
 
         $violations = $this->validate($entity, null, 'Default');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(\count($assertViolations), $violations);
         foreach ($assertViolations as $key => $message) {
             $this->assertSame($message, $violations[$key]->getMessage());
@@ -1339,15 +1339,15 @@
     {
         $entity = new Entity();
 
-        $callback1 = function ($value, ExecutionContextInterface $context) {
+        $callback1 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message 1');
         };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
+        $callback2 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message 2');
         };
 
         $this->metadata->addConstraint(new Callback([
-            'callback' => function () {},
+            'callback' => static function () {},
             'groups' => 'Group 1',
         ]));
         $this->metadata->addConstraint(new Callback([
@@ -1362,7 +1362,7 @@
         $sequence = new GroupSequence(['Group 1', 'Group 2', 'Group 3']);
         $violations = $this->validator->validate($entity, new Valid(), $sequence);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message 1', $violations[0]->getMessage());
     }
@@ -1372,10 +1372,10 @@
         $entity = new Entity();
         $entity->reference = new Reference();
 
-        $callback1 = function ($value, ExecutionContextInterface $context) {
+        $callback1 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Reference violation 1');
         };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
+        $callback2 = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Reference violation 2');
         };
 
@@ -1392,7 +1392,7 @@
         $sequence = new GroupSequence(['Group 1', 'Entity']);
         $violations = $this->validator->validate($entity, new Valid(), $sequence);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Reference violation 1', $violations[0]->getMessage());
     }
@@ -1410,7 +1410,7 @@
                 ->validate($value->reference, new Valid(), 'Group')
             ;
 
-            /* @var ConstraintViolationInterface[] $violations */
+            /** @var ConstraintViolationInterface[] $violations */
             $this->assertCount(1, $violations);
             $this->assertSame('Message value', $violations[0]->getMessage());
             $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -1451,7 +1451,7 @@
 
         $violations = $this->validator->validate($entity, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Separate violation', $violations[0]->getMessage());
     }
@@ -1507,7 +1507,7 @@
 
         $violations = $this->validator->validate($entity, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -1570,7 +1570,7 @@
 
         $violations = $this->validator->validate($entity, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -1608,7 +1608,7 @@
 
         $violations = $this->validate($traversable, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -1625,7 +1625,7 @@
         $entity = new Entity();
         $traversable = new \ArrayIterator(['key' => $entity]);
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message');
         };
 
@@ -1640,7 +1640,7 @@
 
         $violations = $this->validate($traversable, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
     }
 
@@ -1664,7 +1664,7 @@
 
         $violations = $this->validate($traversable, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -1699,7 +1699,7 @@
 
         $violations = $this->validate($entity, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -1726,7 +1726,7 @@
 
         $violations = $this->validate($entity, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -1753,7 +1753,7 @@
 
         $violations = $this->validate($entity, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -1773,7 +1773,7 @@
 
         $violations = $this->validate($entity, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -1795,7 +1795,7 @@
 
         $violations = $this->validate($entity, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(0, $violations);
     }
 
@@ -1804,7 +1804,7 @@
         $entity = new CascadingEntity();
         $entity->requiredChild = new CascadedChild();
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->buildViolation('Invalid child')
                 ->atPath('name')
                 ->addViolation()
@@ -1825,7 +1825,7 @@
 
         $violations = $this->validate($entity, new Valid(), 'Group');
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertInstanceOf(Callback::class, $violations->get(0)->getConstraint());
     }
@@ -1834,7 +1834,7 @@
     {
         $entity = new Entity();
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->buildViolation('Message %param%')
                 ->setParameter('%param%', 'value')
                 ->setInvalidValue('Invalid value')
@@ -1847,7 +1847,7 @@
 
         $violations = $this->validator->validate($entity);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
         $this->assertSame('Message value', $violations[0]->getMessage());
         $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
@@ -1863,7 +1863,7 @@
     {
         $entity = new Entity();
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message');
         };
 
@@ -1874,7 +1874,7 @@
 
         $violations = $this->validator->validate($entity, new Valid(), ['Group 1', 'Group 2']);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
     }
 
@@ -1882,7 +1882,7 @@
     {
         $entity = new Entity();
 
-        $callback = function ($value, ExecutionContextInterface $context) {
+        $callback = static function ($value, ExecutionContextInterface $context) {
             $context->addViolation('Message');
         };
 
@@ -1893,7 +1893,7 @@
 
         $violations = $this->validator->validate($entity, new Valid(), ['Group 1', 'Group 2']);
 
-        /* @var ConstraintViolationInterface[] $violations */
+        /** @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
     }
 
@@ -1936,7 +1936,7 @@
         $initializer1->expects($this->once())
             ->method('initialize')
             ->with($entity)
-            ->willReturnCallback(function ($object) {
+            ->willReturnCallback(static function ($object) {
                 $object->initialized = true;
             });
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Validator/TraceableValidatorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Validator/TraceableValidatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/Validator/TraceableValidatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/Validator/TraceableValidatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Validator\Tests\Validator;
 
 use PHPUnit\Framework\TestCase;
-use Symfony\Component\Validator\Constraint;
+use Symfony\Component\Validator\Constraints\NotNull;
 use Symfony\Component\Validator\ConstraintViolation;
 use Symfony\Component\Validator\ConstraintViolationList;
 use Symfony\Component\Validator\Context\ExecutionContextInterface;
@@ -27,15 +27,15 @@
     {
         $originalValidator = $this->createMock(ValidatorInterface::class);
         $violations = new ConstraintViolationList([
-            $this->createMock(ConstraintViolation::class),
-            $this->createMock(ConstraintViolation::class),
+            $this->createStub(ConstraintViolation::class),
+            $this->createStub(ConstraintViolation::class),
         ]);
         $originalValidator->expects($this->exactly(2))->method('validate')->willReturn($violations);
 
         $validator = new TraceableValidator($originalValidator);
 
         $object = new \stdClass();
-        $constraints = [$this->createMock(Constraint::class)];
+        $constraints = [new NotNull()];
         $groups = ['Default', 'Create'];
 
         $validator->validate($object, $constraints, $groups);
@@ -74,16 +74,16 @@
 
         $expects = fn ($method) => $originalValidator->expects($this->once())->method($method);
 
-        $expects('getMetadataFor')->willReturn($expected = $this->createMock(MetadataInterface::class));
+        $expects('getMetadataFor')->willReturn($expected = $this->createStub(MetadataInterface::class));
         $this->assertSame($expected, $validator->getMetadataFor('value'), 'returns original validator getMetadataFor() result');
 
         $expects('hasMetadataFor')->willReturn($expected = false);
         $this->assertSame($expected, $validator->hasMetadataFor('value'), 'returns original validator hasMetadataFor() result');
 
-        $expects('inContext')->willReturn($expected = $this->createMock(ContextualValidatorInterface::class));
-        $this->assertSame($expected, $validator->inContext($this->createMock(ExecutionContextInterface::class)), 'returns original validator inContext() result');
+        $expects('inContext')->willReturn($expected = $this->createStub(ContextualValidatorInterface::class));
+        $this->assertSame($expected, $validator->inContext($this->createStub(ExecutionContextInterface::class)), 'returns original validator inContext() result');
 
-        $expects('startContext')->willReturn($expected = $this->createMock(ContextualValidatorInterface::class));
+        $expects('startContext')->willReturn($expected = $this->createStub(ContextualValidatorInterface::class));
         $this->assertSame($expected, $validator->startContext(), 'returns original validator startContext() result');
 
         $expects('validate')->willReturn($expected = new ConstraintViolationList());
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -16,12 +16,12 @@
 use PHPUnit\Framework\TestCase;
 use Psr\Cache\CacheItemPoolInterface;
 use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait;
+use Symfony\Component\Translation\IdentityTranslator;
 use Symfony\Component\Validator\ConstraintValidatorFactoryInterface;
 use Symfony\Component\Validator\Mapping\Loader\AnnotationLoader;
 use Symfony\Component\Validator\ObjectInitializerInterface;
 use Symfony\Component\Validator\Validator\RecursiveValidator;
 use Symfony\Component\Validator\ValidatorBuilder;
-use Symfony\Contracts\Translation\TranslatorInterface;
 
 class ValidatorBuilderTest extends TestCase
 {
@@ -37,7 +37,7 @@
     public function testAddObjectInitializer()
     {
         $this->assertSame($this->builder, $this->builder->addObjectInitializer(
-            $this->createMock(ObjectInitializerInterface::class)
+            $this->createStub(ObjectInitializerInterface::class)
         ));
     }
 
@@ -143,21 +143,19 @@
 
     public function testSetMappingCache()
     {
-        $this->assertSame($this->builder, $this->builder->setMappingCache($this->createMock(CacheItemPoolInterface::class)));
+        $this->assertSame($this->builder, $this->builder->setMappingCache($this->createStub(CacheItemPoolInterface::class)));
     }
 
     public function testSetConstraintValidatorFactory()
     {
         $this->assertSame($this->builder, $this->builder->setConstraintValidatorFactory(
-            $this->createMock(ConstraintValidatorFactoryInterface::class))
+            $this->createStub(ConstraintValidatorFactoryInterface::class))
         );
     }
 
     public function testSetTranslator()
     {
-        $this->assertSame($this->builder, $this->builder->setTranslator(
-            $this->createMock(TranslatorInterface::class))
-        );
+        $this->assertSame($this->builder, $this->builder->setTranslator(new IdentityTranslator()));
     }
 
     public function testSetTranslationDomain()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -158,7 +158,7 @@
             return $this;
         }
 
-        throw new RuntimeException(sprintf('Cannot validate values of type "%s" automatically. Please provide a constraint.', get_debug_type($value)));
+        throw new RuntimeException(\sprintf('Cannot validate values of type "%s" automatically. Please provide a constraint.', get_debug_type($value)));
     }
 
     public function validateProperty(object $object, string $propertyName, string|GroupSequence|array|null $groups = null): static
@@ -166,7 +166,7 @@
         $classMetadata = $this->metadataFactory->getMetadataFor($object);
 
         if (!$classMetadata instanceof ClassMetadataInterface) {
-            throw new ValidatorException(sprintf('The metadata factory should return instances of "\Symfony\Component\Validator\Mapping\ClassMetadataInterface", got: "%s".', get_debug_type($classMetadata)));
+            throw new ValidatorException(\sprintf('The metadata factory should return instances of "\Symfony\Component\Validator\Mapping\ClassMetadataInterface", got: "%s".', get_debug_type($classMetadata)));
         }
 
         $propertyMetadatas = $classMetadata->getPropertyMetadata($propertyName);
@@ -207,7 +207,7 @@
         $classMetadata = $this->metadataFactory->getMetadataFor($objectOrClass);
 
         if (!$classMetadata instanceof ClassMetadataInterface) {
-            throw new ValidatorException(sprintf('The metadata factory should return instances of "\Symfony\Component\Validator\Mapping\ClassMetadataInterface", got: "%s".', get_debug_type($classMetadata)));
+            throw new ValidatorException(\sprintf('The metadata factory should return instances of "\Symfony\Component\Validator\Mapping\ClassMetadataInterface", got: "%s".', get_debug_type($classMetadata)));
         }
 
         $propertyMetadatas = $classMetadata->getPropertyMetadata($propertyName);
@@ -295,7 +295,7 @@
             $classMetadata = $this->metadataFactory->getMetadataFor($object);
 
             if (!$classMetadata instanceof ClassMetadataInterface) {
-                throw new UnsupportedMetadataException(sprintf('The metadata factory should return instances of "Symfony\Component\Validator\Mapping\ClassMetadataInterface", got: "%s".', get_debug_type($classMetadata)));
+                throw new UnsupportedMetadataException(\sprintf('The metadata factory should return instances of "Symfony\Component\Validator\Mapping\ClassMetadataInterface", got: "%s".', get_debug_type($classMetadata)));
             }
 
             $this->validateClassNode(
@@ -448,7 +448,7 @@
                     } else {
                         // The group sequence is dynamically obtained from the validated
                         // object
-                        /* @var \Symfony\Component\Validator\GroupSequenceProviderInterface $object */
+                        /** @var \Symfony\Component\Validator\GroupSequenceProviderInterface $object */
                         $group = $object->getGroupSequence();
                     }
                     $defaultOverridden = true;
@@ -498,7 +498,7 @@
             // returns two metadata objects, not just one
             foreach ($metadata->getPropertyMetadata($propertyName) as $propertyMetadata) {
                 if (!$propertyMetadata instanceof PropertyMetadataInterface) {
-                    throw new UnsupportedMetadataException(sprintf('The property metadata instances should implement "Symfony\Component\Validator\Mapping\PropertyMetadataInterface", got: "%s".', get_debug_type($propertyMetadata)));
+                    throw new UnsupportedMetadataException(\sprintf('The property metadata instances should implement "Symfony\Component\Validator\Mapping\PropertyMetadataInterface", got: "%s".', get_debug_type($propertyMetadata)));
                 }
 
                 if ($propertyMetadata instanceof GetterMetadata) {
@@ -539,7 +539,7 @@
 
         // If TRAVERSE, fail if we have no Traversable
         if (!$object instanceof \Traversable) {
-            throw new ConstraintDefinitionException(sprintf('Traversal was enabled for "%s", but this class does not implement "\Traversable".', get_debug_type($object)));
+            throw new ConstraintDefinitionException(\sprintf('Traversal was enabled for "%s", but this class does not implement "\Traversable".', get_debug_type($object)));
         }
 
         $this->validateEachObjectIn(
@@ -645,7 +645,7 @@
         }
 
         if (!\is_object($value)) {
-            throw new NoSuchMetadataException(sprintf('Cannot create metadata for non-objects. Got: "%s".', \gettype($value)));
+            throw new NoSuchMetadataException(\sprintf('Cannot create metadata for non-objects. Got: "%s".', \gettype($value)));
         }
 
         $this->validateObject(
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Validator/ValidatorInterface.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Validator/ValidatorInterface.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/Validator/ValidatorInterface.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/Validator/ValidatorInterface.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,7 +30,7 @@
      * If no constraint is passed, the constraint
      * {@link \Symfony\Component\Validator\Constraints\Valid} is assumed.
      *
-     * @param Constraint|Constraint[]                               $constraints The constraint(s) to validate against
+     * @param Constraint|Constraint[]|null                          $constraints The constraint(s) to validate against
      * @param string|GroupSequence|array<string|GroupSequence>|null $groups      The validation groups to validate. If none is given, "Default" is assumed
      *
      * @return ConstraintViolationListInterface A list of constraint violations
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Validator/ValidatorBuilder.php symfony-6.4.40+dfsg/src/Symfony/Component/Validator/ValidatorBuilder.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Validator/ValidatorBuilder.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Validator/ValidatorBuilder.php	2026-05-20 10:56:49.000000000 +0200
@@ -414,7 +414,7 @@
         $translator = $this->translator;
 
         if (null === $translator) {
-            $translator = new class() implements TranslatorInterface, LocaleAwareInterface {
+            $translator = new class implements TranslatorInterface, LocaleAwareInterface {
                 use TranslatorTrait;
             };
             // Force the locale to be 'en' when no translator is provided rather than relying on the Intl default locale
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/ClassStub.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/ClassStub.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/ClassStub.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/ClassStub.php	2026-05-20 10:56:49.000000000 +0200
@@ -56,7 +56,7 @@
             }
 
             if (str_contains($identifier, "@anonymous\0")) {
-                $this->value = $identifier = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $identifier);
+                $this->value = $identifier = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', static fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $identifier);
             }
 
             if (null !== $callable && $r instanceof \ReflectionFunctionAbstract) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/DateCaster.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/DateCaster.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/DateCaster.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/DateCaster.php	2026-05-20 10:56:49.000000000 +0200
@@ -105,16 +105,16 @@
         foreach (clone $p as $i => $d) {
             if (self::PERIOD_LIMIT === $i) {
                 $now = new \DateTimeImmutable('now', new \DateTimeZone('UTC'));
-                $dates[] = sprintf('%s more', ($end = $p->getEndDate())
+                $dates[] = \sprintf('%s more', ($end = $p->getEndDate())
                     ? ceil(($end->format('U.u') - $d->format('U.u')) / ((int) $now->add($p->getDateInterval())->format('U.u') - (int) $now->format('U.u')))
                     : $p->recurrences - $i
                 );
                 break;
             }
-            $dates[] = sprintf('%s) %s', $i + 1, self::formatDateTime($d));
+            $dates[] = \sprintf('%s) %s', $i + 1, self::formatDateTime($d));
         }
 
-        $period = sprintf(
+        $period = \sprintf(
             'every %s, from %s%s %s',
             self::formatInterval($p->getDateInterval()),
             $p->include_start_date ? '[' : ']',
@@ -134,6 +134,6 @@
 
     private static function formatSeconds(string $s, string $us): string
     {
-        return sprintf('%02d.%s', $s, 0 === ($len = \strlen($t = rtrim($us, '0'))) ? '0' : ($len <= 3 ? str_pad($t, 3, '0') : $us));
+        return \sprintf('%02d.%s', $s, 0 === ($len = \strlen($t = rtrim($us, '0'))) ? '0' : ($len <= 3 ? str_pad($t, 3, '0') : $us));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/ExceptionCaster.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/ExceptionCaster.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/ExceptionCaster.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/ExceptionCaster.php	2026-05-20 10:56:49.000000000 +0200
@@ -192,7 +192,7 @@
             } else {
                 $label = substr_replace($prefix, "title=Stack level $j.", 2, 0).$lastCall;
             }
-            $a[substr_replace($label, sprintf('separator=%s&', $frame instanceof EnumStub ? ' ' : ':'), 2, 0)] = $frame;
+            $a[substr_replace($label, \sprintf('separator=%s&', $frame instanceof EnumStub ? ' ' : ':'), 2, 0)] = $frame;
 
             $lastCall = $call;
         }
@@ -240,7 +240,7 @@
                         if (isset($f['object'])) {
                             $template = $f['object'];
                         } elseif ((new \ReflectionClass($f['class']))->isInstantiable()) {
-                            $template = unserialize(sprintf('O:%d:"%s":0:{}', \strlen($f['class']), $f['class']));
+                            $template = unserialize(\sprintf('O:%d:"%s":0:{}', \strlen($f['class']), $f['class']));
                         }
                         if (null !== $template) {
                             $ellipsis = 0;
@@ -264,7 +264,7 @@
                             $ellipsis += 1 + \strlen($f['line']);
                         }
                     }
-                    $srcAttr .= sprintf('&separator= &file=%s&line=%d', rawurlencode($f['file']), $f['line']);
+                    $srcAttr .= \sprintf('&separator= &file=%s&line=%d', rawurlencode($f['file']), $f['line']);
                 } else {
                     $srcAttr .= '&separator=:';
                 }
@@ -295,7 +295,7 @@
     public static function castFlattenException(FlattenException $e, array $a, Stub $stub, bool $isNested)
     {
         if ($isNested) {
-            $k = sprintf(Caster::PATTERN_PRIVATE, FlattenException::class, 'traceAsString');
+            $k = \sprintf(Caster::PATTERN_PRIVATE, FlattenException::class, 'traceAsString');
             $a[$k] = new CutStub($a[$k]);
         }
 
@@ -323,7 +323,7 @@
         unset($a[$xPrefix.'string'], $a[Caster::PREFIX_DYNAMIC.'xdebug_message']);
 
         if (isset($a[Caster::PREFIX_PROTECTED.'message']) && str_contains($a[Caster::PREFIX_PROTECTED.'message'], "@anonymous\0")) {
-            $a[Caster::PREFIX_PROTECTED.'message'] = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $a[Caster::PREFIX_PROTECTED.'message']);
+            $a[Caster::PREFIX_PROTECTED.'message'] = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', static fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $a[Caster::PREFIX_PROTECTED.'message']);
         }
 
         if (isset($a[Caster::PREFIX_PROTECTED.'file'], $a[Caster::PREFIX_PROTECTED.'line'])) {
@@ -411,7 +411,7 @@
                 }
             }
             $c->attr['lang'] = $lang;
-            $srcLines[sprintf("\0~separator=› &%d\0", $i + $line - $srcContext)] = $c;
+            $srcLines[\sprintf("\0~separator=› &%d\0", $i + $line - $srcContext)] = $c;
         }
 
         return new EnumStub($srcLines);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/FFICaster.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/FFICaster.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/FFICaster.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/FFICaster.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,7 +41,7 @@
             $type = \FFI::typeof($data);
         }
 
-        $stub->class = sprintf('%s<%s> size %d align %d', ($data ?? $type)::class, $type->getName(), $type->getSize(), $type->getAlignment());
+        $stub->class = \sprintf('%s<%s> size %d align %d', ($data ?? $type)::class, $type->getName(), $type->getSize(), $type->getAlignment());
 
         return match ($type->getKind()) {
             CType::TYPE_FLOAT,
@@ -86,7 +86,7 @@
             CType::ABI_MS => '[ms]',
             CType::ABI_SYSV => '[sysv]',
             CType::ABI_VECTORCALL => '[vectorcall]',
-            default => '[unknown abi]'
+            default => '[unknown abi]',
         };
 
         $returnType = $type->getFuncReturnType();
@@ -116,8 +116,8 @@
     {
         $result = [];
         $ffi = \FFI::cdef(<<<C
-            size_t zend_get_page_size(void);
-        C);
+                size_t zend_get_page_size(void);
+            C);
 
         $pageSize = $ffi->zend_get_page_size();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/PgSqlCaster.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/PgSqlCaster.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/PgSqlCaster.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/PgSqlCaster.php	2026-05-20 10:56:49.000000000 +0200
@@ -14,7 +14,7 @@
 use Symfony\Component\VarDumper\Cloner\Stub;
 
 /**
- * Casts pqsql resources to array representation.
+ * Casts pgsql resources to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
  *
@@ -140,11 +140,11 @@
         for ($i = 0; $i < $fields; ++$i) {
             $field = [
                 'name' => pg_field_name($result, $i),
-                'table' => sprintf('%s (OID: %s)', pg_field_table($result, $i), pg_field_table($result, $i, true)),
-                'type' => sprintf('%s (OID: %s)', pg_field_type($result, $i), pg_field_type_oid($result, $i)),
-                'nullable' => (bool) pg_field_is_null($result, $i),
+                'table' => \sprintf('%s (OID: %s)', pg_field_table($result, $i), pg_field_table($result, $i, true)),
+                'type' => \sprintf('%s (OID: %s)', pg_field_type($result, $i), pg_field_type_oid($result, $i)),
+                'nullable' => (bool) (\PHP_VERSION_ID >= 80300 ? pg_field_is_null($result, null, $i) : pg_field_is_null($result, $i)),
                 'storage' => pg_field_size($result, $i).' bytes',
-                'display' => pg_field_prtlen($result, $i).' chars',
+                'display' => (\PHP_VERSION_ID >= 80300 ? pg_field_prtlen($result, null, $i) : pg_field_prtlen($result, $i)).' chars',
             ];
             if (' (OID: )' === $field['table']) {
                 $field['table'] = null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/SplCaster.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/SplCaster.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/SplCaster.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/SplCaster.php	2026-05-20 10:56:49.000000000 +0200
@@ -141,7 +141,7 @@
         }
 
         if (isset($a[$prefix.'perms'])) {
-            $a[$prefix.'perms'] = new ConstStub(sprintf('0%o', $a[$prefix.'perms']), $a[$prefix.'perms']);
+            $a[$prefix.'perms'] = new ConstStub(\sprintf('0%o', $a[$prefix.'perms']), $a[$prefix.'perms']);
         }
 
         static $mapDate = ['aTime', 'mTime', 'cTime'];
@@ -208,7 +208,7 @@
             $storage[] = new EnumStub([
                 'object' => $obj,
                 'info' => $clone->getInfo(),
-             ]);
+            ]);
         }
 
         $a += [
@@ -249,7 +249,7 @@
             $map[] = new EnumStub([
                 'object' => $obj,
                 'data' => $data,
-             ]);
+            ]);
         }
 
         $a += [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/SymfonyCaster.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/SymfonyCaster.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Caster/SymfonyCaster.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Caster/SymfonyCaster.php	2026-05-20 10:56:49.000000000 +0200
@@ -54,7 +54,7 @@
      */
     public static function castHttpClient($client, array $a, Stub $stub, bool $isNested)
     {
-        $multiKey = sprintf("\0%s\0multi", $client::class);
+        $multiKey = \sprintf("\0%s\0multi", $client::class);
         if (isset($a[$multiKey])) {
             $a[$multiKey] = new CutStub($a[$multiKey]);
         }
@@ -90,12 +90,14 @@
 
         $instance = $a['realInstance'] ?? null;
 
-        $a = ['status' => new ConstStub(match ($a['status']) {
-            LazyObjectState::STATUS_INITIALIZED_FULL => 'INITIALIZED_FULL',
-            LazyObjectState::STATUS_INITIALIZED_PARTIAL => 'INITIALIZED_PARTIAL',
-            LazyObjectState::STATUS_UNINITIALIZED_FULL => 'UNINITIALIZED_FULL',
-            LazyObjectState::STATUS_UNINITIALIZED_PARTIAL => 'UNINITIALIZED_PARTIAL',
-        }, $a['status'])];
+        if (isset($a['status'])) { // forward-compat with Symfony 8
+            $a = ['status' => new ConstStub(match ($a['status']) {
+                LazyObjectState::STATUS_INITIALIZED_FULL => 'INITIALIZED_FULL',
+                LazyObjectState::STATUS_INITIALIZED_PARTIAL => 'INITIALIZED_PARTIAL',
+                LazyObjectState::STATUS_UNINITIALIZED_FULL => 'UNINITIALIZED_FULL',
+                LazyObjectState::STATUS_UNINITIALIZED_PARTIAL => 'UNINITIALIZED_PARTIAL',
+            }, $a['status'])];
+        }
 
         if ($instance) {
             $a['realInstance'] = $instance;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Cloner/Data.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Cloner/Data.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Cloner/Data.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Cloner/Data.php	2026-05-20 10:56:49.000000000 +0200
@@ -115,7 +115,7 @@
     public function getIterator(): \Traversable
     {
         if (!\is_array($value = $this->getValue())) {
-            throw new \LogicException(sprintf('"%s" object holds non-iterable type "%s".', self::class, get_debug_type($value)));
+            throw new \LogicException(\sprintf('"%s" object holds non-iterable type "%s".', self::class, get_debug_type($value)));
         }
 
         yield from $value;
@@ -168,7 +168,7 @@
             return (string) $value;
         }
 
-        return sprintf('%s (count=%d)', $this->getType(), \count($value));
+        return \sprintf('%s (count=%d)', $this->getType(), \count($value));
     }
 
     /**
@@ -298,7 +298,7 @@
         if (!$item instanceof Stub) {
             $cursor->attr = [];
             $type = \gettype($item);
-            if ($item && 'array' === $type) {
+            if ('array' === $type && $item) {
                 $item = $this->getStub($item);
             }
         } elseif (Stub::TYPE_REF === $item->type) {
@@ -375,7 +375,7 @@
                     break;
 
                 default:
-                    throw new \RuntimeException(sprintf('Unexpected Stub type: "%s".', $item->type));
+                    throw new \RuntimeException(\sprintf('Unexpected Stub type: "%s".', $item->type));
             }
         } elseif ('array' === $type) {
             $dumper->enterHash($cursor, Cursor::HASH_INDEXED, 0, false);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Cloner/Internal/NoDefault.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Cloner/Internal/NoDefault.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Cloner/Internal/NoDefault.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Cloner/Internal/NoDefault.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\VarDumper\Cloner\Internal;
-
-/**
- * Flags a typed property that has no default value.
- *
- * This dummy object is used to distinguish a property with a default value of null
- * from a property that is uninitialized by default.
- *
- * @internal
- */
-enum NoDefault
-{
-    case NoDefault;
-}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Cloner/Stub.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Cloner/Stub.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Cloner/Stub.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Cloner/Stub.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,8 +11,6 @@
 
 namespace Symfony\Component\VarDumper\Cloner;
 
-use Symfony\Component\VarDumper\Cloner\Internal\NoDefault;
-
 /**
  * Represents the main properties of a PHP variable.
  *
@@ -42,34 +40,37 @@
     public $position = 0;
     public $attr = [];
 
-    private static array $defaultProperties = [];
-
     /**
      * @internal
      */
-    public function __sleep(): array
+    protected static array $propertyDefaults = [];
+
+    public function __serialize(): array
     {
-        $properties = [];
+        static $noDefault = new \stdClass();
 
-        if (!isset(self::$defaultProperties[$c = static::class])) {
-            $reflection = new \ReflectionClass($c);
-            self::$defaultProperties[$c] = [];
-
-            foreach ($reflection->getProperties() as $p) {
-                if ($p->isStatic()) {
-                    continue;
+        if (self::class === static::class) {
+            $data = [];
+            foreach ($this as $k => $v) {
+                $default = self::$propertyDefaults[$this::class][$k] ??= ($p = new \ReflectionProperty($this, $k))->hasDefaultValue() ? $p->getDefaultValue() : ($p->hasType() ? $noDefault : null);
+                if ($noDefault === $default || $default !== $v) {
+                    $data[$k] = $v;
                 }
-
-                self::$defaultProperties[$c][$p->name] = $p->hasDefaultValue() ? $p->getDefaultValue() : ($p->hasType() ? NoDefault::NoDefault : null);
             }
+
+            return $data;
         }
 
-        foreach (self::$defaultProperties[$c] as $k => $v) {
-            if (NoDefault::NoDefault === $v || $this->$k !== $v) {
-                $properties[] = $k;
+        return \Closure::bind(function () use ($noDefault) {
+            $data = [];
+            foreach ($this as $k => $v) {
+                $default = self::$propertyDefaults[$this::class][$k] ??= ($p = new \ReflectionProperty($this, $k))->hasDefaultValue() ? $p->getDefaultValue() : ($p->hasType() ? $noDefault : null);
+                if ($noDefault === $default || $default !== $v) {
+                    $data[$k] = $v;
+                }
             }
-        }
 
-        return $properties;
+            return $data;
+        }, $this, $this::class)();
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Command/Descriptor/CliDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Command/Descriptor/CliDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Command/Descriptor/CliDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Command/Descriptor/CliDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,7 +47,7 @@
         if (isset($context['request'])) {
             $request = $context['request'];
             $this->lastIdentifier = $request['identifier'];
-            $section = sprintf('%s %s', $request['method'], $request['uri']);
+            $section = \sprintf('%s %s', $request['method'], $request['uri']);
             if ($controller = $request['controller']) {
                 $rows[] = ['controller', rtrim($this->dumper->dump($controller, true), "\n")];
             }
@@ -62,9 +62,9 @@
 
         if (isset($context['source'])) {
             $source = $context['source'];
-            $sourceInfo = sprintf('%s on line %d', $source['name'], $source['line']);
+            $sourceInfo = \sprintf('%s on line %d', $source['name'], $source['line']);
             if ($fileLink = $source['file_link'] ?? null) {
-                $sourceInfo = sprintf('<href=%s>%s</>', $fileLink, $sourceInfo);
+                $sourceInfo = \sprintf('<href=%s>%s</>', $fileLink, $sourceInfo);
             }
             $rows[] = ['source', $sourceInfo];
             $file = $source['file_relative'] ?? $source['file'];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Command/Descriptor/HtmlDescriptor.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Command/Descriptor/HtmlDescriptor.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Command/Descriptor/HtmlDescriptor.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Command/Descriptor/HtmlDescriptor.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
         if (isset($context['request'])) {
             $request = $context['request'];
             $controller = "<span class='dumped-tag'>{$this->dumper->dump($request['controller'], true, ['maxDepth' => 0])}</span>";
-            $title = sprintf('<code>%s</code> <a href="%s">%s</a>', $request['method'], $uri = $request['uri'], $uri);
+            $title = \sprintf('<code>%s</code> <a href="%s">%s</a>', $request['method'], $uri = $request['uri'], $uri);
             $dedupIdentifier = $request['identifier'];
         } elseif (isset($context['cli'])) {
             $title = '<code>$ </code>'.$context['cli']['command_line'];
@@ -58,9 +58,9 @@
         if (isset($context['source'])) {
             $source = $context['source'];
             $projectDir = $source['project_dir'] ?? null;
-            $sourceDescription = sprintf('%s on line %d', $source['name'], $source['line']);
+            $sourceDescription = \sprintf('%s on line %d', $source['name'], $source['line']);
             if (isset($source['file_link'])) {
-                $sourceDescription = sprintf('<a href="%s">%s</a>', $source['file_link'], $sourceDescription);
+                $sourceDescription = \sprintf('<a href="%s">%s</a>', $source['file_link'], $sourceDescription);
             }
         }
 
@@ -71,24 +71,24 @@
         ]);
 
         $output->writeln(<<<HTML
-<article data-dedup-id="$dedupIdentifier">
-    <header>
-        <div class="row">
-            <h2 class="col">$title</h2>
-            <time class="col text-small" title="$isoDate" datetime="$isoDate">
-                {$this->extractDate($context)}
-            </time>
-        </div>
-        {$this->renderTags($tags)}
-    </header>
-    <section class="body">
-        <p class="text-small">
-            $sourceDescription
-        </p>
-        {$this->dumper->dump($data, true)}
-    </section>
-</article>
-HTML
+            <article data-dedup-id="$dedupIdentifier">
+                <header>
+                    <div class="row">
+                        <h2 class="col">$title</h2>
+                        <time class="col text-small" title="$isoDate" datetime="$isoDate">
+                            {$this->extractDate($context)}
+                        </time>
+                    </div>
+                    {$this->renderTags($tags)}
+                </header>
+                <section class="body">
+                    <p class="text-small">
+                        $sourceDescription
+                    </p>
+                    {$this->dumper->dump($data, true)}
+                </section>
+            </article>
+            HTML
         );
     }
 
@@ -105,15 +105,15 @@
 
         $renderedTags = '';
         foreach ($tags as $key => $value) {
-            $renderedTags .= sprintf('<li><span class="badge">%s</span>%s</li>', $key, $value);
+            $renderedTags .= \sprintf('<li><span class="badge">%s</span>%s</li>', $key, $value);
         }
 
         return <<<HTML
-<div class="row">
-    <ul class="tags">
-        $renderedTags
-    </ul>
-</div>
-HTML;
+            <div class="row">
+                <ul class="tags">
+                    $renderedTags
+                </ul>
+            </div>
+            HTML;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Command/ServerDumpCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Command/ServerDumpCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Command/ServerDumpCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Command/ServerDumpCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,19 +57,19 @@
     protected function configure(): void
     {
         $this
-            ->addOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format (%s)', implode(', ', $this->getAvailableFormats())), 'cli')
+            ->addOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format (%s)', implode(', ', $this->getAvailableFormats())), 'cli')
             ->setHelp(<<<'EOF'
-<info>%command.name%</info> starts a dump server that collects and displays
-dumps in a single place for debugging you application:
+                <info>%command.name%</info> starts a dump server that collects and displays
+                dumps in a single place for debugging you application:
 
-  <info>php %command.full_name%</info>
+                  <info>php %command.full_name%</info>
 
-You can consult dumped data in HTML format in your browser by providing the <comment>--format=html</comment> option
-and redirecting the output to a file:
+                You can consult dumped data in HTML format in your browser by providing the <comment>--format=html</comment> option
+                and redirecting the output to a file:
 
-  <info>php %command.full_name% --format="html" > dump.html</info>
+                  <info>php %command.full_name% --format="html" > dump.html</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -80,7 +80,7 @@
         $format = $input->getOption('format');
 
         if (!$descriptor = $this->descriptors[$format] ?? null) {
-            throw new InvalidArgumentException(sprintf('Unsupported format "%s".', $format));
+            throw new InvalidArgumentException(\sprintf('Unsupported format "%s".', $format));
         }
 
         $errorIo = $io->getErrorStyle();
@@ -88,10 +88,10 @@
 
         $this->server->start();
 
-        $errorIo->success(sprintf('Server listening on %s', $this->server->getHost()));
+        $errorIo->success(\sprintf('Server listening on %s', $this->server->getHost()));
         $errorIo->comment('Quit the server with CONTROL-C.');
 
-        $this->server->listen(function (Data $data, array $context, int $clientId) use ($descriptor, $io) {
+        $this->server->listen(static function (Data $data, array $context, int $clientId) use ($descriptor, $io) {
             $descriptor->describe($io, $data, $context, $clientId);
         });
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/composer.json symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/composer.json
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/composer.json	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/composer.json	2026-05-20 10:56:49.000000000 +0200
@@ -21,7 +21,6 @@
         "symfony/polyfill-mbstring": "~1.0"
     },
     "require-dev": {
-        "ext-iconv": "*",
         "symfony/console": "^5.4|^6.0|^7.0",
         "symfony/error-handler": "^6.3|^7.0",
         "symfony/http-kernel": "^5.4|^6.0|^7.0",
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/AbstractDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/AbstractDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/AbstractDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/AbstractDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -188,17 +188,48 @@
             return $s;
         }
 
-        if (!\function_exists('iconv')) {
-            throw new \RuntimeException('Unable to convert a non-UTF-8 string to UTF-8: required function iconv() does not exist. You should install ext-iconv or symfony/polyfill-iconv.');
+        if (\function_exists('iconv')) {
+            if (false !== $c = @iconv($this->charset, 'UTF-8', $s)) {
+                return $c;
+            }
+            if ('CP1252' !== $this->charset && false !== $c = @iconv('CP1252', 'UTF-8', $s)) {
+                return $c;
+            }
         }
 
-        if (false !== $c = @iconv($this->charset, 'UTF-8', $s)) {
-            return $c;
+        $s .= $s;
+        $len = \strlen($s);
+        $mapCp1252 = false;
+
+        for ($i = $len >> 1, $j = 0; $i < $len; ++$i, ++$j) {
+            if ($s[$i] < "\x80") {
+                $s[$j] = $s[$i];
+            } elseif ($s[$i] < "\xC0") {
+                $s[$j] = "\xC2";
+                $s[++$j] = $s[$i];
+                if ($s[$i] < "\xA0") {
+                    $mapCp1252 = true;
+                }
+            } else {
+                $s[$j] = "\xC3";
+                $s[++$j] = \chr(\ord($s[$i]) - 64);
+            }
         }
-        if ('CP1252' !== $this->charset && false !== $c = @iconv('CP1252', 'UTF-8', $s)) {
-            return $c;
+
+        $s = substr($s, 0, $j);
+
+        if (!$mapCp1252) {
+            return $s;
         }
 
-        return iconv('CP850', 'UTF-8', $s);
+        return strtr($s, [
+            "\xC2\x80" => '€', "\xC2\x82" => '‚', "\xC2\x83" => 'ƒ', "\xC2\x84" => '„',
+            "\xC2\x85" => '…', "\xC2\x86" => '†', "\xC2\x87" => '‡', "\xC2\x88" => 'ˆ',
+            "\xC2\x89" => '‰', "\xC2\x8A" => 'Š', "\xC2\x8B" => '‹', "\xC2\x8C" => 'Œ',
+            "\xC2\x8D" => 'Ž', "\xC2\x91" => '‘', "\xC2\x92" => '’', "\xC2\x93" => '“',
+            "\xC2\x94" => '”', "\xC2\x95" => '•', "\xC2\x96" => '–', "\xC2\x97" => '—',
+            "\xC2\x98" => '˜', "\xC2\x99" => '™', "\xC2\x9A" => 'š', "\xC2\x9B" => '›',
+            "\xC2\x9C" => 'œ', "\xC2\x9E" => 'ž',
+        ]);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/CliDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/CliDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/CliDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/CliDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -479,18 +479,18 @@
         $map = static::$controlCharsMap;
         $startCchr = $this->colors ? "\033[m\033[{$this->styles['default']}m" : '';
         $endCchr = $this->colors ? "\033[m\033[{$this->styles[$style]}m" : '';
-        $value = preg_replace_callback(static::$controlCharsRx, function ($c) use ($map, $startCchr, $endCchr) {
+        $value = preg_replace_callback(static::$controlCharsRx, static function ($c) use ($map, $startCchr, $endCchr) {
             $s = $startCchr;
             $c = $c[$i = 0];
             do {
-                $s .= $map[$c[$i]] ?? sprintf('\x%02X', \ord($c[$i]));
+                $s .= $map[$c[$i]] ?? \sprintf('\x%02X', \ord($c[$i]));
             } while (isset($c[++$i]));
 
             return $s.$endCchr;
         }, $value, -1, $cchrCount);
 
         if (!($attr['binary'] ?? false)) {
-            $value = preg_replace_callback(static::$unicodeCharsRx, function ($c) use (&$cchrCount, $startCchr, $endCchr) {
+            $value = preg_replace_callback(static::$unicodeCharsRx, static function ($c) use (&$cchrCount, $startCchr, $endCchr) {
                 ++$cchrCount;
 
                 return $startCchr.'\u{'.strtoupper(dechex(mb_ord($c[0]))).'}'.$endCchr;
@@ -583,7 +583,7 @@
         }
 
         if ($this->colors) {
-            $this->line = sprintf("\033[%sm%s\033[m", $this->styles['default'], $this->line);
+            $this->line = \sprintf("\033[%sm%s\033[m", $this->styles['default'], $this->line);
         }
         parent::dumpLine($depth);
     }
@@ -666,7 +666,7 @@
             || 'Hyper' === getenv('TERM_PROGRAM');
 
         if (!$result) {
-            $version = sprintf(
+            $version = \sprintf(
                 '%s.%s.%s',
                 PHP_WINDOWS_VERSION_MAJOR,
                 PHP_WINDOWS_VERSION_MINOR,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/CliContextProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/CliContextProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/CliContextProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/CliContextProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,7 +26,7 @@
 
         return [
             'command_line' => $commandLine = implode(' ', $_SERVER['argv'] ?? []),
-            'identifier' => hash('crc32b', $commandLine.$_SERVER['REQUEST_TIME_FLOAT']),
+            'identifier' => hash('xxh128', $commandLine.'@'.$_SERVER['REQUEST_TIME_FLOAT']),
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/RequestContextProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/RequestContextProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/RequestContextProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/RequestContextProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
             'uri' => $request->getUri(),
             'method' => $request->getMethod(),
             'controller' => $controller ? $this->cloner->cloneVar($controller) : $controller,
-            'identifier' => spl_object_hash($request),
+            'identifier' => hash('xxh128', spl_object_id($request).'@'.$_SERVER['REQUEST_TIME_FLOAT']),
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/SourceContextProvider.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/SourceContextProvider.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/SourceContextProvider.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/ContextProvider/SourceContextProvider.php	2026-05-20 10:56:49.000000000 +0200
@@ -115,7 +115,7 @@
     {
         $html = '';
 
-        $dumper = new HtmlDumper(function ($line) use (&$html) { $html .= $line; }, $this->charset);
+        $dumper = new HtmlDumper(static function ($line) use (&$html) { $html .= $line; }, $this->charset);
         $dumper->setDumpHeader('');
         $dumper->setDumpBoundaries('', '');
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -98,7 +98,7 @@
     public function setTheme(string $themeName)
     {
         if (!isset(static::$themes[$themeName])) {
-            throw new \InvalidArgumentException(sprintf('Theme "%s" does not exist in class "%s".', $themeName, static::class));
+            throw new \InvalidArgumentException(\sprintf('Theme "%s" does not exist in class "%s".', $themeName, static::class));
         }
 
         $this->setStyles(static::$themes[$themeName]);
@@ -161,616 +161,616 @@
         }
 
         $line = str_replace('{$options}', json_encode($this->displayOptions, \JSON_FORCE_OBJECT), <<<'EOHTML'
-<script>
-Sfdump = window.Sfdump || (function (doc) {
+            <script>
+            Sfdump = window.Sfdump || (function (doc) {
 
-doc.documentElement.classList.add('sf-js-enabled');
+            doc.documentElement.classList.add('sf-js-enabled');
 
-var rxEsc = /([.*+?^${}()|\[\]\/\\])/g,
-    idRx = /\bsf-dump-\d+-ref[012]\w+\b/,
-    keyHint = 0 <= navigator.platform.toUpperCase().indexOf('MAC') ? 'Cmd' : 'Ctrl',
-    addEventListener = function (e, n, cb) {
-        e.addEventListener(n, cb, false);
-    };
-
-if (!doc.addEventListener) {
-    addEventListener = function (element, eventName, callback) {
-        element.attachEvent('on' + eventName, function (e) {
-            e.preventDefault = function () {e.returnValue = false;};
-            e.target = e.srcElement;
-            callback(e);
-        });
-    };
-}
-
-function toggle(a, recursive) {
-    var s = a.nextSibling || {}, oldClass = s.className, arrow, newClass;
-
-    if (/\bsf-dump-compact\b/.test(oldClass)) {
-        arrow = '▼';
-        newClass = 'sf-dump-expanded';
-    } else if (/\bsf-dump-expanded\b/.test(oldClass)) {
-        arrow = '▶';
-        newClass = 'sf-dump-compact';
-    } else {
-        return false;
-    }
+            var rxEsc = /([.*+?^${}()|\[\]\/\\])/g,
+                idRx = /\bsf-dump-\d+-ref[012]\w+\b/,
+                keyHint = 0 <= navigator.platform.toUpperCase().indexOf('MAC') ? 'Cmd' : 'Ctrl',
+                addEventListener = function (e, n, cb) {
+                    e.addEventListener(n, cb, false);
+                };
+
+            if (!doc.addEventListener) {
+                addEventListener = function (element, eventName, callback) {
+                    element.attachEvent('on' + eventName, function (e) {
+                        e.preventDefault = function () {e.returnValue = false;};
+                        e.target = e.srcElement;
+                        callback(e);
+                    });
+                };
+            }
+
+            function toggle(a, recursive) {
+                var s = a.nextSibling || {}, oldClass = s.className, arrow, newClass;
+
+                if (/\bsf-dump-compact\b/.test(oldClass)) {
+                    arrow = '▼';
+                    newClass = 'sf-dump-expanded';
+                } else if (/\bsf-dump-expanded\b/.test(oldClass)) {
+                    arrow = '▶';
+                    newClass = 'sf-dump-compact';
+                } else {
+                    return false;
+                }
+
+                if (doc.createEvent && s.dispatchEvent) {
+                    var event = doc.createEvent('Event');
+                    event.initEvent('sf-dump-expanded' === newClass ? 'sfbeforedumpexpand' : 'sfbeforedumpcollapse', true, false);
+
+                    s.dispatchEvent(event);
+                }
+
+                a.lastChild.innerHTML = arrow;
+                s.className = s.className.replace(/\bsf-dump-(compact|expanded)\b/, newClass);
+
+                if (recursive) {
+                    try {
+                        a = s.querySelectorAll('.'+oldClass);
+                        for (s = 0; s < a.length; ++s) {
+                            if (-1 == a[s].className.indexOf(newClass)) {
+                                a[s].className = newClass;
+                                a[s].previousSibling.lastChild.innerHTML = arrow;
+                            }
+                        }
+                    } catch (e) {
+                    }
+                }
 
-    if (doc.createEvent && s.dispatchEvent) {
-        var event = doc.createEvent('Event');
-        event.initEvent('sf-dump-expanded' === newClass ? 'sfbeforedumpexpand' : 'sfbeforedumpcollapse', true, false);
+                return true;
+            };
 
-        s.dispatchEvent(event);
-    }
+            function collapse(a, recursive) {
+                var s = a.nextSibling || {}, oldClass = s.className;
 
-    a.lastChild.innerHTML = arrow;
-    s.className = s.className.replace(/\bsf-dump-(compact|expanded)\b/, newClass);
+                if (/\bsf-dump-expanded\b/.test(oldClass)) {
+                    toggle(a, recursive);
 
-    if (recursive) {
-        try {
-            a = s.querySelectorAll('.'+oldClass);
-            for (s = 0; s < a.length; ++s) {
-                if (-1 == a[s].className.indexOf(newClass)) {
-                    a[s].className = newClass;
-                    a[s].previousSibling.lastChild.innerHTML = arrow;
+                    return true;
                 }
-            }
-        } catch (e) {
-        }
-    }
-
-    return true;
-};
 
-function collapse(a, recursive) {
-    var s = a.nextSibling || {}, oldClass = s.className;
+                return false;
+            };
 
-    if (/\bsf-dump-expanded\b/.test(oldClass)) {
-        toggle(a, recursive);
-
-        return true;
-    }
+            function expand(a, recursive) {
+                var s = a.nextSibling || {}, oldClass = s.className;
 
-    return false;
-};
+                if (/\bsf-dump-compact\b/.test(oldClass)) {
+                    toggle(a, recursive);
 
-function expand(a, recursive) {
-    var s = a.nextSibling || {}, oldClass = s.className;
+                    return true;
+                }
 
-    if (/\bsf-dump-compact\b/.test(oldClass)) {
-        toggle(a, recursive);
+                return false;
+            };
 
-        return true;
-    }
+            function collapseAll(root) {
+                var a = root.querySelector('a.sf-dump-toggle');
+                if (a) {
+                    collapse(a, true);
+                    expand(a);
 
-    return false;
-};
+                    return true;
+                }
 
-function collapseAll(root) {
-    var a = root.querySelector('a.sf-dump-toggle');
-    if (a) {
-        collapse(a, true);
-        expand(a);
+                return false;
+            }
 
-        return true;
-    }
+            function reveal(node) {
+                var previous, parents = [];
 
-    return false;
-}
+                while ((node = node.parentNode || {}) && (previous = node.previousSibling) && 'A' === previous.tagName) {
+                    parents.push(previous);
+                }
 
-function reveal(node) {
-    var previous, parents = [];
+                if (0 !== parents.length) {
+                    parents.forEach(function (parent) {
+                        expand(parent);
+                    });
 
-    while ((node = node.parentNode || {}) && (previous = node.previousSibling) && 'A' === previous.tagName) {
-        parents.push(previous);
-    }
+                    return true;
+                }
 
-    if (0 !== parents.length) {
-        parents.forEach(function (parent) {
-            expand(parent);
-        });
+                return false;
+            }
 
-        return true;
-    }
+            function highlight(root, activeNode, nodes) {
+                resetHighlightedNodes(root);
 
-    return false;
-}
+                Array.from(nodes||[]).forEach(function (node) {
+                    if (!/\bsf-dump-highlight\b/.test(node.className)) {
+                        node.className = node.className + ' sf-dump-highlight';
+                    }
+                });
 
-function highlight(root, activeNode, nodes) {
-    resetHighlightedNodes(root);
+                if (!/\bsf-dump-highlight-active\b/.test(activeNode.className)) {
+                    activeNode.className = activeNode.className + ' sf-dump-highlight-active';
+                }
+            }
 
-    Array.from(nodes||[]).forEach(function (node) {
-        if (!/\bsf-dump-highlight\b/.test(node.className)) {
-            node.className = node.className + ' sf-dump-highlight';
-        }
-    });
+            function resetHighlightedNodes(root) {
+                Array.from(root.querySelectorAll('.sf-dump-str, .sf-dump-key, .sf-dump-public, .sf-dump-protected, .sf-dump-private')).forEach(function (strNode) {
+                    strNode.className = strNode.className.replace(/\bsf-dump-highlight\b/, '');
+                    strNode.className = strNode.className.replace(/\bsf-dump-highlight-active\b/, '');
+                });
+            }
 
-    if (!/\bsf-dump-highlight-active\b/.test(activeNode.className)) {
-        activeNode.className = activeNode.className + ' sf-dump-highlight-active';
-    }
-}
+            return function (root, x) {
+                root = doc.getElementById(root);
 
-function resetHighlightedNodes(root) {
-    Array.from(root.querySelectorAll('.sf-dump-str, .sf-dump-key, .sf-dump-public, .sf-dump-protected, .sf-dump-private')).forEach(function (strNode) {
-        strNode.className = strNode.className.replace(/\bsf-dump-highlight\b/, '');
-        strNode.className = strNode.className.replace(/\bsf-dump-highlight-active\b/, '');
-    });
-}
-
-return function (root, x) {
-    root = doc.getElementById(root);
-
-    var indentRx = new RegExp('^('+(root.getAttribute('data-indent-pad') || '  ').replace(rxEsc, '\\$1')+')+', 'm'),
-        options = {$options},
-        elt = root.getElementsByTagName('A'),
-        len = elt.length,
-        i = 0, s, h,
-        t = [];
+                var indentRx = new RegExp('^('+(root.getAttribute('data-indent-pad') || '  ').replace(rxEsc, '\\$1')+')+', 'm'),
+                    options = {$options},
+                    elt = root.getElementsByTagName('A'),
+                    len = elt.length,
+                    i = 0, s, h,
+                    t = [];
 
-    while (i < len) t.push(elt[i++]);
+                while (i < len) t.push(elt[i++]);
 
-    for (i in x) {
-        options[i] = x[i];
-    }
+                for (i in x) {
+                    options[i] = x[i];
+                }
 
-    function a(e, f) {
-        addEventListener(root, e, function (e, n) {
-            if ('A' == e.target.tagName) {
-                f(e.target, e);
-            } else if ('A' == e.target.parentNode.tagName) {
-                f(e.target.parentNode, e);
-            } else {
-                n = /\bsf-dump-ellipsis\b/.test(e.target.className) ? e.target.parentNode : e.target;
+                function a(e, f) {
+                    addEventListener(root, e, function (e, n) {
+                        if ('A' == e.target.tagName) {
+                            f(e.target, e);
+                        } else if ('A' == e.target.parentNode.tagName) {
+                            f(e.target.parentNode, e);
+                        } else {
+                            n = /\bsf-dump-ellipsis\b/.test(e.target.className) ? e.target.parentNode : e.target;
 
-                if ((n = n.nextElementSibling) && 'A' == n.tagName) {
-                    if (!/\bsf-dump-toggle\b/.test(n.className)) {
-                        n = n.nextElementSibling || n;
-                    }
+                            if ((n = n.nextElementSibling) && 'A' == n.tagName) {
+                                if (!/\bsf-dump-toggle\b/.test(n.className)) {
+                                    n = n.nextElementSibling || n;
+                                }
 
-                    f(n, e, true);
-                }
-            }
-        });
-    };
-    function isCtrlKey(e) {
-        return e.ctrlKey || e.metaKey;
-    }
-    function xpathString(str) {
-        var parts = str.match(/[^'"]+|['"]/g).map(function (part) {
-            if ("'" == part)  {
-                return '"\'"';
-            }
-            if ('"' == part) {
-                return "'\"'";
-            }
+                                f(n, e, true);
+                            }
+                        }
+                    });
+                };
+                function isCtrlKey(e) {
+                    return e.ctrlKey || e.metaKey;
+                }
+                function xpathString(str) {
+                    var parts = str.match(/[^'"]+|['"]/g).map(function (part) {
+                        if ("'" == part)  {
+                            return '"\'"';
+                        }
+                        if ('"' == part) {
+                            return "'\"'";
+                        }
 
-            return "'" + part + "'";
-        });
+                        return "'" + part + "'";
+                    });
 
-        return "concat(" + parts.join(",") + ", '')";
-    }
-    function xpathHasClass(className) {
-        return "contains(concat(' ', normalize-space(@class), ' '), ' " + className +" ')";
-    }
-    a('mouseover', function (a, e, c) {
-        if (c) {
-            e.target.style.cursor = "pointer";
-        }
-    });
-    a('click', function (a, e, c) {
-        if (/\bsf-dump-toggle\b/.test(a.className)) {
-            e.preventDefault();
-            if (!toggle(a, isCtrlKey(e))) {
-                var r = doc.getElementById(a.getAttribute('href').slice(1)),
-                    s = r.previousSibling,
-                    f = r.parentNode,
-                    t = a.parentNode;
-                t.replaceChild(r, a);
-                f.replaceChild(a, s);
-                t.insertBefore(s, r);
-                f = f.firstChild.nodeValue.match(indentRx);
-                t = t.firstChild.nodeValue.match(indentRx);
-                if (f && t && f[0] !== t[0]) {
-                    r.innerHTML = r.innerHTML.replace(new RegExp('^'+f[0].replace(rxEsc, '\\$1'), 'mg'), t[0]);
+                    return "concat(" + parts.join(",") + ", '')";
                 }
-                if (/\bsf-dump-compact\b/.test(r.className)) {
-                    toggle(s, isCtrlKey(e));
+                function xpathHasClass(className) {
+                    return "contains(concat(' ', normalize-space(@class), ' '), ' " + className +" ')";
                 }
-            }
-
-            if (c) {
-            } else if (doc.getSelection) {
-                try {
-                    doc.getSelection().removeAllRanges();
-                } catch (e) {
-                    doc.getSelection().empty();
-                }
-            } else {
-                doc.selection.empty();
-            }
-        } else if (/\bsf-dump-str-toggle\b/.test(a.className)) {
-            e.preventDefault();
-            e = a.parentNode.parentNode;
-            e.className = e.className.replace(/\bsf-dump-str-(expand|collapse)\b/, a.parentNode.className);
-        }
-    });
-
-    elt = root.getElementsByTagName('SAMP');
-    len = elt.length;
-    i = 0;
-
-    while (i < len) t.push(elt[i++]);
-    len = t.length;
-
-    for (i = 0; i < len; ++i) {
-        elt = t[i];
-        if ('SAMP' == elt.tagName) {
-            a = elt.previousSibling || {};
-            if ('A' != a.tagName) {
-                a = doc.createElement('A');
-                a.className = 'sf-dump-ref';
-                elt.parentNode.insertBefore(a, elt);
-            } else {
-                a.innerHTML += ' ';
-            }
-            a.title = (a.title ? a.title+'\n[' : '[')+keyHint+'+click] Expand all children';
-            a.innerHTML += elt.className == 'sf-dump-compact' ? '<span>▶</span>' : '<span>▼</span>';
-            a.className += ' sf-dump-toggle';
-
-            x = 1;
-            if ('sf-dump' != elt.parentNode.className) {
-                x += elt.parentNode.getAttribute('data-depth')/1;
-            }
-        } else if (/\bsf-dump-ref\b/.test(elt.className) && (a = elt.getAttribute('href'))) {
-            a = a.slice(1);
-            elt.className += ' sf-dump-hover';
-            elt.className += ' '+a;
+                a('mouseover', function (a, e, c) {
+                    if (c) {
+                        e.target.style.cursor = "pointer";
+                    }
+                });
+                a('click', function (a, e, c) {
+                    if (/\bsf-dump-toggle\b/.test(a.className)) {
+                        e.preventDefault();
+                        if (!toggle(a, isCtrlKey(e))) {
+                            var r = doc.getElementById(a.getAttribute('href').slice(1)),
+                                s = r.previousSibling,
+                                f = r.parentNode,
+                                t = a.parentNode;
+                            t.replaceChild(r, a);
+                            f.replaceChild(a, s);
+                            t.insertBefore(s, r);
+                            f = f.firstChild.nodeValue.match(indentRx);
+                            t = t.firstChild.nodeValue.match(indentRx);
+                            if (f && t && f[0] !== t[0]) {
+                                r.innerHTML = r.innerHTML.replace(new RegExp('^'+f[0].replace(rxEsc, '\\$1'), 'mg'), t[0]);
+                            }
+                            if (/\bsf-dump-compact\b/.test(r.className)) {
+                                toggle(s, isCtrlKey(e));
+                            }
+                        }
 
-            if (/[\[{]$/.test(elt.previousSibling.nodeValue)) {
-                a = a != elt.nextSibling.id && doc.getElementById(a);
-                try {
-                    s = a.nextSibling;
-                    elt.appendChild(a);
-                    s.parentNode.insertBefore(a, s);
-                    if (/^[@#]/.test(elt.innerHTML)) {
-                        elt.innerHTML += ' <span>▶</span>';
-                    } else {
-                        elt.innerHTML = '<span>▶</span>';
-                        elt.className = 'sf-dump-ref';
+                        if (c) {
+                        } else if (doc.getSelection) {
+                            try {
+                                doc.getSelection().removeAllRanges();
+                            } catch (e) {
+                                doc.getSelection().empty();
+                            }
+                        } else {
+                            doc.selection.empty();
+                        }
+                    } else if (/\bsf-dump-str-toggle\b/.test(a.className)) {
+                        e.preventDefault();
+                        e = a.parentNode.parentNode;
+                        e.className = e.className.replace(/\bsf-dump-str-(expand|collapse)\b/, a.parentNode.className);
                     }
-                    elt.className += ' sf-dump-toggle';
-                } catch (e) {
-                    if ('&' == elt.innerHTML.charAt(0)) {
-                        elt.innerHTML = '…';
-                        elt.className = 'sf-dump-ref';
+                });
+
+                elt = root.getElementsByTagName('SAMP');
+                len = elt.length;
+                i = 0;
+
+                while (i < len) t.push(elt[i++]);
+                len = t.length;
+
+                for (i = 0; i < len; ++i) {
+                    elt = t[i];
+                    if ('SAMP' == elt.tagName) {
+                        a = elt.previousSibling || {};
+                        if ('A' != a.tagName) {
+                            a = doc.createElement('A');
+                            a.className = 'sf-dump-ref';
+                            elt.parentNode.insertBefore(a, elt);
+                        } else {
+                            a.innerHTML += ' ';
+                        }
+                        a.title = (a.title ? a.title+'\n[' : '[')+keyHint+'+click] Expand all children';
+                        a.innerHTML += elt.className == 'sf-dump-compact' ? '<span>▶</span>' : '<span>▼</span>';
+                        a.className += ' sf-dump-toggle';
+
+                        x = 1;
+                        if ('sf-dump' != elt.parentNode.className) {
+                            x += elt.parentNode.getAttribute('data-depth')/1;
+                        }
+                    } else if (/\bsf-dump-ref\b/.test(elt.className) && (a = elt.getAttribute('href'))) {
+                        a = a.slice(1);
+                        elt.className += ' sf-dump-hover';
+                        elt.className += ' '+a;
+
+                        if (/[\[{]$/.test(elt.previousSibling.nodeValue)) {
+                            a = a != elt.nextSibling.id && doc.getElementById(a);
+                            try {
+                                s = a.nextSibling;
+                                elt.appendChild(a);
+                                s.parentNode.insertBefore(a, s);
+                                if (/^[@#]/.test(elt.innerHTML)) {
+                                    elt.innerHTML += ' <span>▶</span>';
+                                } else {
+                                    elt.innerHTML = '<span>▶</span>';
+                                    elt.className = 'sf-dump-ref';
+                                }
+                                elt.className += ' sf-dump-toggle';
+                            } catch (e) {
+                                if ('&' == elt.innerHTML.charAt(0)) {
+                                    elt.innerHTML = '…';
+                                    elt.className = 'sf-dump-ref';
+                                }
+                            }
+                        }
                     }
                 }
-            }
-        }
-    }
 
-    if (doc.evaluate && Array.from && root.children.length > 1) {
-        root.setAttribute('tabindex', 0);
+                if (doc.evaluate && Array.from && root.children.length > 1) {
+                    root.setAttribute('tabindex', 0);
 
-        SearchState = function () {
-            this.nodes = [];
-            this.idx = 0;
-        };
-        SearchState.prototype = {
-            next: function () {
-                if (this.isEmpty()) {
-                    return this.current();
-                }
-                this.idx = this.idx < (this.nodes.length - 1) ? this.idx + 1 : 0;
-
-                return this.current();
-            },
-            previous: function () {
-                if (this.isEmpty()) {
-                    return this.current();
-                }
-                this.idx = this.idx > 0 ? this.idx - 1 : (this.nodes.length - 1);
-
-                return this.current();
-            },
-            isEmpty: function () {
-                return 0 === this.count();
-            },
-            current: function () {
-                if (this.isEmpty()) {
-                    return null;
-                }
-                return this.nodes[this.idx];
-            },
-            reset: function () {
-                this.nodes = [];
-                this.idx = 0;
-            },
-            count: function () {
-                return this.nodes.length;
-            },
-        };
-
-        function showCurrent(state)
-        {
-            var currentNode = state.current(), currentRect, searchRect;
-            if (currentNode) {
-                reveal(currentNode);
-                highlight(root, currentNode, state.nodes);
-                if ('scrollIntoView' in currentNode) {
-                    currentNode.scrollIntoView(true);
-                    currentRect = currentNode.getBoundingClientRect();
-                    searchRect = search.getBoundingClientRect();
-                    if (currentRect.top < (searchRect.top + searchRect.height)) {
-                        window.scrollBy(0, -(searchRect.top + searchRect.height + 5));
+                    SearchState = function () {
+                        this.nodes = [];
+                        this.idx = 0;
+                    };
+                    SearchState.prototype = {
+                        next: function () {
+                            if (this.isEmpty()) {
+                                return this.current();
+                            }
+                            this.idx = this.idx < (this.nodes.length - 1) ? this.idx + 1 : 0;
+
+                            return this.current();
+                        },
+                        previous: function () {
+                            if (this.isEmpty()) {
+                                return this.current();
+                            }
+                            this.idx = this.idx > 0 ? this.idx - 1 : (this.nodes.length - 1);
+
+                            return this.current();
+                        },
+                        isEmpty: function () {
+                            return 0 === this.count();
+                        },
+                        current: function () {
+                            if (this.isEmpty()) {
+                                return null;
+                            }
+                            return this.nodes[this.idx];
+                        },
+                        reset: function () {
+                            this.nodes = [];
+                            this.idx = 0;
+                        },
+                        count: function () {
+                            return this.nodes.length;
+                        },
+                    };
+
+                    function showCurrent(state)
+                    {
+                        var currentNode = state.current(), currentRect, searchRect;
+                        if (currentNode) {
+                            reveal(currentNode);
+                            highlight(root, currentNode, state.nodes);
+                            if ('scrollIntoView' in currentNode) {
+                                currentNode.scrollIntoView(true);
+                                currentRect = currentNode.getBoundingClientRect();
+                                searchRect = search.getBoundingClientRect();
+                                if (currentRect.top < (searchRect.top + searchRect.height)) {
+                                    window.scrollBy(0, -(searchRect.top + searchRect.height + 5));
+                                }
+                            }
+                        }
+                        counter.textContent = (state.isEmpty() ? 0 : state.idx + 1) + ' of ' + state.count();
                     }
-                }
-            }
-            counter.textContent = (state.isEmpty() ? 0 : state.idx + 1) + ' of ' + state.count();
-        }
-
-        var search = doc.createElement('div');
-        search.className = 'sf-dump-search-wrapper sf-dump-search-hidden';
-        search.innerHTML = '
-            <input type="text" class="sf-dump-search-input">
-            <span class="sf-dump-search-count">0 of 0<\/span>
-            <button type="button" class="sf-dump-search-input-previous" tabindex="-1">
-                <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 1331l-166 165q-19 19-45 19t-45-19L896 965l-531 531q-19 19-45 19t-45-19l-166-165q-19-19-19-45.5t19-45.5l742-741q19-19 45-19t45 19l742 741q19 19 19 45.5t-19 45.5z"\/><\/svg>
-            <\/button>
-            <button type="button" class="sf-dump-search-input-next" tabindex="-1">
-                <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 808l-742 741q-19 19-45 19t-45-19L109 808q-19-19-19-45.5t19-45.5l166-165q19-19 45-19t45 19l531 531 531-531q19-19 45-19t45 19l166 165q19 19 19 45.5t-19 45.5z"\/><\/svg>
-            <\/button>
-        ';
-        root.insertBefore(search, root.firstChild);
-
-        var state = new SearchState();
-        var searchInput = search.querySelector('.sf-dump-search-input');
-        var counter = search.querySelector('.sf-dump-search-count');
-        var searchInputTimer = 0;
-        var previousSearchQuery = '';
-
-        addEventListener(searchInput, 'keyup', function (e) {
-            var searchQuery = e.target.value;
-            /* Don't perform anything if the pressed key didn't change the query */
-            if (searchQuery === previousSearchQuery) {
-                return;
-            }
-            previousSearchQuery = searchQuery;
-            clearTimeout(searchInputTimer);
-            searchInputTimer = setTimeout(function () {
-                state.reset();
-                collapseAll(root);
-                resetHighlightedNodes(root);
-                if ('' === searchQuery) {
-                    counter.textContent = '0 of 0';
 
-                    return;
+                    var search = doc.createElement('div');
+                    search.className = 'sf-dump-search-wrapper sf-dump-search-hidden';
+                    search.innerHTML = '
+                        <input type="text" class="sf-dump-search-input">
+                        <span class="sf-dump-search-count">0 of 0<\/span>
+                        <button type="button" class="sf-dump-search-input-previous" tabindex="-1">
+                            <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 1331l-166 165q-19 19-45 19t-45-19L896 965l-531 531q-19 19-45 19t-45-19l-166-165q-19-19-19-45.5t19-45.5l742-741q19-19 45-19t45 19l742 741q19 19 19 45.5t-19 45.5z"\/><\/svg>
+                        <\/button>
+                        <button type="button" class="sf-dump-search-input-next" tabindex="-1">
+                            <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 808l-742 741q-19 19-45 19t-45-19L109 808q-19-19-19-45.5t19-45.5l166-165q19-19 45-19t45 19l531 531 531-531q19-19 45-19t45 19l166 165q19 19 19 45.5t-19 45.5z"\/><\/svg>
+                        <\/button>
+                    ';
+                    root.insertBefore(search, root.firstChild);
+
+                    var state = new SearchState();
+                    var searchInput = search.querySelector('.sf-dump-search-input');
+                    var counter = search.querySelector('.sf-dump-search-count');
+                    var searchInputTimer = 0;
+                    var previousSearchQuery = '';
+
+                    addEventListener(searchInput, 'keyup', function (e) {
+                        var searchQuery = e.target.value;
+                        /* Don't perform anything if the pressed key didn't change the query */
+                        if (searchQuery === previousSearchQuery) {
+                            return;
+                        }
+                        previousSearchQuery = searchQuery;
+                        clearTimeout(searchInputTimer);
+                        searchInputTimer = setTimeout(function () {
+                            state.reset();
+                            collapseAll(root);
+                            resetHighlightedNodes(root);
+                            if ('' === searchQuery) {
+                                counter.textContent = '0 of 0';
+
+                                return;
+                            }
+
+                            var classMatches = [
+                                "sf-dump-str",
+                                "sf-dump-key",
+                                "sf-dump-public",
+                                "sf-dump-protected",
+                                "sf-dump-private",
+                            ].map(xpathHasClass).join(' or ');
+
+                            var xpathResult = doc.evaluate('.//span[' + classMatches + '][contains(translate(child::text(), ' + xpathString(searchQuery.toUpperCase()) + ', ' + xpathString(searchQuery.toLowerCase()) + '), ' + xpathString(searchQuery.toLowerCase()) + ')]', root, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
+
+                            while (node = xpathResult.iterateNext()) state.nodes.push(node);
+
+                            showCurrent(state);
+                        }, 400);
+                    });
+
+                    Array.from(search.querySelectorAll('.sf-dump-search-input-next, .sf-dump-search-input-previous')).forEach(function (btn) {
+                        addEventListener(btn, 'click', function (e) {
+                            e.preventDefault();
+                            -1 !== e.target.className.indexOf('next') ? state.next() : state.previous();
+                            searchInput.focus();
+                            collapseAll(root);
+                            showCurrent(state);
+                        })
+                    });
+
+                    addEventListener(root, 'keydown', function (e) {
+                        var isSearchActive = !/\bsf-dump-search-hidden\b/.test(search.className);
+                        if ((114 === e.keyCode && !isSearchActive) || (isCtrlKey(e) && 70 === e.keyCode)) {
+                            /* F3 or CMD/CTRL + F */
+                            if (70 === e.keyCode && document.activeElement === searchInput) {
+                               /*
+                                * If CMD/CTRL + F is hit while having focus on search input,
+                                * the user probably meant to trigger browser search instead.
+                                * Let the browser execute its behavior:
+                                */
+                                return;
+                            }
+
+                            e.preventDefault();
+                            search.className = search.className.replace(/\bsf-dump-search-hidden\b/, '');
+                            searchInput.focus();
+                        } else if (isSearchActive) {
+                            if (27 === e.keyCode) {
+                                /* ESC key */
+                                search.className += ' sf-dump-search-hidden';
+                                e.preventDefault();
+                                resetHighlightedNodes(root);
+                                searchInput.value = '';
+                            } else if (
+                                (isCtrlKey(e) && 71 === e.keyCode) /* CMD/CTRL + G */
+                                || 13 === e.keyCode /* Enter */
+                                || 114 === e.keyCode /* F3 */
+                            ) {
+                                e.preventDefault();
+                                e.shiftKey ? state.previous() : state.next();
+                                collapseAll(root);
+                                showCurrent(state);
+                            }
+                        }
+                    });
                 }
 
-                var classMatches = [
-                    "sf-dump-str",
-                    "sf-dump-key",
-                    "sf-dump-public",
-                    "sf-dump-protected",
-                    "sf-dump-private",
-                ].map(xpathHasClass).join(' or ');
-
-                var xpathResult = doc.evaluate('.//span[' + classMatches + '][contains(translate(child::text(), ' + xpathString(searchQuery.toUpperCase()) + ', ' + xpathString(searchQuery.toLowerCase()) + '), ' + xpathString(searchQuery.toLowerCase()) + ')]', root, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
-
-                while (node = xpathResult.iterateNext()) state.nodes.push(node);
-
-                showCurrent(state);
-            }, 400);
-        });
-
-        Array.from(search.querySelectorAll('.sf-dump-search-input-next, .sf-dump-search-input-previous')).forEach(function (btn) {
-            addEventListener(btn, 'click', function (e) {
-                e.preventDefault();
-                -1 !== e.target.className.indexOf('next') ? state.next() : state.previous();
-                searchInput.focus();
-                collapseAll(root);
-                showCurrent(state);
-            })
-        });
-
-        addEventListener(root, 'keydown', function (e) {
-            var isSearchActive = !/\bsf-dump-search-hidden\b/.test(search.className);
-            if ((114 === e.keyCode && !isSearchActive) || (isCtrlKey(e) && 70 === e.keyCode)) {
-                /* F3 or CMD/CTRL + F */
-                if (70 === e.keyCode && document.activeElement === searchInput) {
-                   /*
-                    * If CMD/CTRL + F is hit while having focus on search input,
-                    * the user probably meant to trigger browser search instead.
-                    * Let the browser execute its behavior:
-                    */
+                if (0 >= options.maxStringLength) {
                     return;
                 }
-
-                e.preventDefault();
-                search.className = search.className.replace(/\bsf-dump-search-hidden\b/, '');
-                searchInput.focus();
-            } else if (isSearchActive) {
-                if (27 === e.keyCode) {
-                    /* ESC key */
-                    search.className += ' sf-dump-search-hidden';
-                    e.preventDefault();
-                    resetHighlightedNodes(root);
-                    searchInput.value = '';
-                } else if (
-                    (isCtrlKey(e) && 71 === e.keyCode) /* CMD/CTRL + G */
-                    || 13 === e.keyCode /* Enter */
-                    || 114 === e.keyCode /* F3 */
-                ) {
-                    e.preventDefault();
-                    e.shiftKey ? state.previous() : state.next();
-                    collapseAll(root);
-                    showCurrent(state);
+                try {
+                    elt = root.querySelectorAll('.sf-dump-str');
+                    len = elt.length;
+                    i = 0;
+                    t = [];
+
+                    while (i < len) t.push(elt[i++]);
+                    len = t.length;
+
+                    for (i = 0; i < len; ++i) {
+                        elt = t[i];
+                        s = elt.innerText || elt.textContent;
+                        x = s.length - options.maxStringLength;
+                        if (0 < x) {
+                            h = elt.innerHTML;
+                            elt[elt.innerText ? 'innerText' : 'textContent'] = s.substring(0, options.maxStringLength);
+                            elt.className += ' sf-dump-str-collapse';
+                            elt.innerHTML = '<span class=sf-dump-str-collapse>'+h+'<a class="sf-dump-ref sf-dump-str-toggle" title="Collapse"> ◀</a></span>'+
+                                '<span class=sf-dump-str-expand>'+elt.innerHTML+'<a class="sf-dump-ref sf-dump-str-toggle" title="'+x+' remaining characters"> ▶</a></span>';
+                        }
+                    }
+                } catch (e) {
                 }
-            }
-        });
-    }
+            };
 
-    if (0 >= options.maxStringLength) {
-        return;
-    }
-    try {
-        elt = root.querySelectorAll('.sf-dump-str');
-        len = elt.length;
-        i = 0;
-        t = [];
-
-        while (i < len) t.push(elt[i++]);
-        len = t.length;
-
-        for (i = 0; i < len; ++i) {
-            elt = t[i];
-            s = elt.innerText || elt.textContent;
-            x = s.length - options.maxStringLength;
-            if (0 < x) {
-                h = elt.innerHTML;
-                elt[elt.innerText ? 'innerText' : 'textContent'] = s.substring(0, options.maxStringLength);
-                elt.className += ' sf-dump-str-collapse';
-                elt.innerHTML = '<span class=sf-dump-str-collapse>'+h+'<a class="sf-dump-ref sf-dump-str-toggle" title="Collapse"> ◀</a></span>'+
-                    '<span class=sf-dump-str-expand>'+elt.innerHTML+'<a class="sf-dump-ref sf-dump-str-toggle" title="'+x+' remaining characters"> ▶</a></span>';
+            })(document);
+            </script><style>
+            .sf-js-enabled pre.sf-dump .sf-dump-compact,
+            .sf-js-enabled .sf-dump-str-collapse .sf-dump-str-collapse,
+            .sf-js-enabled .sf-dump-str-expand .sf-dump-str-expand {
+                display: none;
+            }
+            .sf-dump-hover:hover {
+                background-color: #B729D9;
+                color: #FFF !important;
+                border-radius: 2px;
+            }
+            pre.sf-dump {
+                display: block;
+                white-space: pre;
+                padding: 5px;
+                overflow: initial !important;
+            }
+            pre.sf-dump:after {
+               content: "";
+               visibility: hidden;
+               display: block;
+               height: 0;
+               clear: both;
+            }
+            pre.sf-dump .sf-dump-ellipsization {
+                display: inline-flex;
+            }
+            pre.sf-dump a {
+                text-decoration: none;
+                cursor: pointer;
+                border: 0;
+                outline: none;
+                color: inherit;
+            }
+            pre.sf-dump img {
+                max-width: 50em;
+                max-height: 50em;
+                margin: .5em 0 0 0;
+                padding: 0;
+                background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAHUlEQVQY02O8zAABilCaiQEN0EeA8QuUcX9g3QEAAjcC5piyhyEAAAAASUVORK5CYII=) #D3D3D3;
+            }
+            pre.sf-dump .sf-dump-ellipsis {
+                text-overflow: ellipsis;
+                white-space: nowrap;
+                overflow: hidden;
+            }
+            pre.sf-dump .sf-dump-ellipsis-tail {
+                flex-shrink: 0;
+            }
+            pre.sf-dump code {
+                display:inline;
+                padding:0;
+                background:none;
+            }
+            .sf-dump-public.sf-dump-highlight,
+            .sf-dump-protected.sf-dump-highlight,
+            .sf-dump-private.sf-dump-highlight,
+            .sf-dump-str.sf-dump-highlight,
+            .sf-dump-key.sf-dump-highlight {
+                background: rgba(111, 172, 204, 0.3);
+                border: 1px solid #7DA0B1;
+                border-radius: 3px;
+            }
+            .sf-dump-public.sf-dump-highlight-active,
+            .sf-dump-protected.sf-dump-highlight-active,
+            .sf-dump-private.sf-dump-highlight-active,
+            .sf-dump-str.sf-dump-highlight-active,
+            .sf-dump-key.sf-dump-highlight-active {
+                background: rgba(253, 175, 0, 0.4);
+                border: 1px solid #ffa500;
+                border-radius: 3px;
+            }
+            pre.sf-dump .sf-dump-search-hidden {
+                display: none !important;
+            }
+            pre.sf-dump .sf-dump-search-wrapper {
+                font-size: 0;
+                white-space: nowrap;
+                margin-bottom: 5px;
+                display: flex;
+                position: -webkit-sticky;
+                position: sticky;
+                top: 5px;
+            }
+            pre.sf-dump .sf-dump-search-wrapper > * {
+                vertical-align: top;
+                box-sizing: border-box;
+                height: 21px;
+                font-weight: normal;
+                border-radius: 0;
+                background: #FFF;
+                color: #757575;
+                border: 1px solid #BBB;
+            }
+            pre.sf-dump .sf-dump-search-wrapper > input.sf-dump-search-input {
+                padding: 3px;
+                height: 21px;
+                font-size: 12px;
+                border-right: none;
+                border-top-left-radius: 3px;
+                border-bottom-left-radius: 3px;
+                color: #000;
+                min-width: 15px;
+                width: 100%;
+            }
+            pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next,
+            pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous {
+                background: #F2F2F2;
+                outline: none;
+                border-left: none;
+                font-size: 0;
+                line-height: 0;
+            }
+            pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next {
+                border-top-right-radius: 3px;
+                border-bottom-right-radius: 3px;
+            }
+            pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next > svg,
+            pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous > svg {
+                pointer-events: none;
+                width: 12px;
+                height: 12px;
+            }
+            pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-count {
+                display: inline-block;
+                padding: 0 5px;
+                margin: 0;
+                border-left: none;
+                line-height: 21px;
+                font-size: 12px;
             }
-        }
-    } catch (e) {
-    }
-};
-
-})(document);
-</script><style>
-.sf-js-enabled pre.sf-dump .sf-dump-compact,
-.sf-js-enabled .sf-dump-str-collapse .sf-dump-str-collapse,
-.sf-js-enabled .sf-dump-str-expand .sf-dump-str-expand {
-    display: none;
-}
-.sf-dump-hover:hover {
-    background-color: #B729D9;
-    color: #FFF !important;
-    border-radius: 2px;
-}
-pre.sf-dump {
-    display: block;
-    white-space: pre;
-    padding: 5px;
-    overflow: initial !important;
-}
-pre.sf-dump:after {
-   content: "";
-   visibility: hidden;
-   display: block;
-   height: 0;
-   clear: both;
-}
-pre.sf-dump .sf-dump-ellipsization {
-    display: inline-flex;
-}
-pre.sf-dump a {
-    text-decoration: none;
-    cursor: pointer;
-    border: 0;
-    outline: none;
-    color: inherit;
-}
-pre.sf-dump img {
-    max-width: 50em;
-    max-height: 50em;
-    margin: .5em 0 0 0;
-    padding: 0;
-    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAHUlEQVQY02O8zAABilCaiQEN0EeA8QuUcX9g3QEAAjcC5piyhyEAAAAASUVORK5CYII=) #D3D3D3;
-}
-pre.sf-dump .sf-dump-ellipsis {
-    text-overflow: ellipsis;
-    white-space: nowrap;
-    overflow: hidden;
-}
-pre.sf-dump .sf-dump-ellipsis-tail {
-    flex-shrink: 0;
-}
-pre.sf-dump code {
-    display:inline;
-    padding:0;
-    background:none;
-}
-.sf-dump-public.sf-dump-highlight,
-.sf-dump-protected.sf-dump-highlight,
-.sf-dump-private.sf-dump-highlight,
-.sf-dump-str.sf-dump-highlight,
-.sf-dump-key.sf-dump-highlight {
-    background: rgba(111, 172, 204, 0.3);
-    border: 1px solid #7DA0B1;
-    border-radius: 3px;
-}
-.sf-dump-public.sf-dump-highlight-active,
-.sf-dump-protected.sf-dump-highlight-active,
-.sf-dump-private.sf-dump-highlight-active,
-.sf-dump-str.sf-dump-highlight-active,
-.sf-dump-key.sf-dump-highlight-active {
-    background: rgba(253, 175, 0, 0.4);
-    border: 1px solid #ffa500;
-    border-radius: 3px;
-}
-pre.sf-dump .sf-dump-search-hidden {
-    display: none !important;
-}
-pre.sf-dump .sf-dump-search-wrapper {
-    font-size: 0;
-    white-space: nowrap;
-    margin-bottom: 5px;
-    display: flex;
-    position: -webkit-sticky;
-    position: sticky;
-    top: 5px;
-}
-pre.sf-dump .sf-dump-search-wrapper > * {
-    vertical-align: top;
-    box-sizing: border-box;
-    height: 21px;
-    font-weight: normal;
-    border-radius: 0;
-    background: #FFF;
-    color: #757575;
-    border: 1px solid #BBB;
-}
-pre.sf-dump .sf-dump-search-wrapper > input.sf-dump-search-input {
-    padding: 3px;
-    height: 21px;
-    font-size: 12px;
-    border-right: none;
-    border-top-left-radius: 3px;
-    border-bottom-left-radius: 3px;
-    color: #000;
-    min-width: 15px;
-    width: 100%;
-}
-pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next,
-pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous {
-    background: #F2F2F2;
-    outline: none;
-    border-left: none;
-    font-size: 0;
-    line-height: 0;
-}
-pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next {
-    border-top-right-radius: 3px;
-    border-bottom-right-radius: 3px;
-}
-pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next > svg,
-pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous > svg {
-    pointer-events: none;
-    width: 12px;
-    height: 12px;
-}
-pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-count {
-    display: inline-block;
-    padding: 0 5px;
-    margin: 0;
-    border-left: none;
-    line-height: 21px;
-    font-size: 12px;
-}
-EOHTML
+            EOHTML
         );
 
         foreach ($this->styles as $class => $style) {
@@ -792,7 +792,7 @@
             $this->line .= $cursor->depth >= $this->displayOptions['maxDepth'] ? ' <samp class=sf-dump-compact>' : ' <samp class=sf-dump-expanded>';
             $this->endValue($cursor);
             $this->line .= $this->indentPad;
-            $this->line .= sprintf('<img src="data:%s;base64,%s" /></samp>', $cursor->attr['content-type'], base64_encode($cursor->attr['img-data']));
+            $this->line .= \sprintf('<img src="data:%s;base64,%s" /></samp>', $cursor->attr['content-type'], base64_encode($cursor->attr['img-data']));
             $this->endValue($cursor);
         } else {
             parent::dumpString($cursor, $str, $bin, $cut);
@@ -823,7 +823,7 @@
                 $r = Cursor::HASH_OBJECT !== $type ? 1 - (Cursor::HASH_RESOURCE !== $type) : 2;
                 $r .= $r && 0 < $cursor->softRefHandle ? $cursor->softRefHandle : $cursor->refIndex;
 
-                $this->line .= sprintf(' id=%s-ref%s', $this->dumpId, $r);
+                $this->line .= \sprintf(' id=%s-ref%s', $this->dumpId, $r);
             }
             $this->line .= $eol;
             $this->dumpLine($cursor->depth);
@@ -852,11 +852,11 @@
 
         if ('ref' === $style) {
             if (empty($attr['count'])) {
-                return sprintf('<a class=sf-dump-ref>%s</a>', $v);
+                return \sprintf('<a class=sf-dump-ref>%s</a>', $v);
             }
             $r = ('#' !== $v[0] ? 1 - ('@' !== $v[0]) : 2).substr($value, 1);
 
-            return sprintf('<a class=sf-dump-ref href=#%s-ref%s title="%d occurrences">%s</a>', $this->dumpId, $r, 1 + $attr['count'], $v);
+            return \sprintf('<a class=sf-dump-ref href=#%s-ref%s title="%d occurrences">%s</a>', $this->dumpId, $r, 1 + $attr['count'], $v);
         }
 
         $dumpClasses = ['sf-dump-'.$style];
@@ -867,7 +867,7 @@
         } elseif ('public' === $style) {
             $dumpTitle = empty($attr['dynamic']) ? 'Public property' : 'Runtime added dynamic property';
         } elseif ('str' === $style && 1 < $attr['length']) {
-            $dumpTitle = sprintf('%d%s characters', $attr['length'], $attr['binary'] ? ' binary or non-UTF-8' : '');
+            $dumpTitle = \sprintf('%d%s characters', $attr['length'], $attr['binary'] ? ' binary or non-UTF-8' : '');
         } elseif ('note' === $style && 0 < ($attr['depth'] ?? 0) && false !== $c = strrpos($value, '\\')) {
             $attr += [
                 'ellipsis' => \strlen($value) - $c,
@@ -879,7 +879,7 @@
         } elseif ('meta' === $style && isset($attr['title'])) {
             $dumpTitle = esc($this->utf8Encode($attr['title']));
         } elseif ('private' === $style) {
-            $dumpTitle = sprintf('Private property defined in class:&#10;`%s`', esc($this->utf8Encode($attr['class'])));
+            $dumpTitle = \sprintf('Private property defined in class:&#10;`%s`', esc($this->utf8Encode($attr['class'])));
         }
 
         if (isset($attr['ellipsis'])) {
@@ -890,23 +890,23 @@
             }
             $label = esc(substr($value, -$attr['ellipsis']));
             $dumpTitle = $v."\n".$dumpTitle;
-            $v = sprintf('<span class="%s">%s</span>', $ellipsisClass, substr($v, 0, -\strlen($label)));
+            $v = \sprintf('<span class="%s">%s</span>', $ellipsisClass, substr($v, 0, -\strlen($label)));
 
             if (!empty($attr['ellipsis-tail'])) {
                 $tail = \strlen(esc(substr($value, -$attr['ellipsis'], $attr['ellipsis-tail'])));
-                $v .= sprintf('<span class="%s">%s</span><span class="sf-dump-ellipsis-tail">%s</span>', $ellipsisClass, substr($label, 0, $tail), substr($label, $tail));
+                $v .= \sprintf('<span class="%s">%s</span><span class="sf-dump-ellipsis-tail">%s</span>', $ellipsisClass, substr($label, 0, $tail), substr($label, $tail));
             } else {
-                $v .= sprintf('<span class="sf-dump-ellipsis-tail">%s</span>', $label);
+                $v .= \sprintf('<span class="sf-dump-ellipsis-tail">%s</span>', $label);
             }
         }
 
         $map = static::$controlCharsMap;
-        $v = sprintf(
+        $v = \sprintf(
             '<span class=%s%s%1$s%s>%s</span>',
-            1 === count($dumpClasses) ? '' : '"',
+            1 === \count($dumpClasses) ? '' : '"',
             implode(' ', $dumpClasses),
             $dumpTitle ? ' title="'.$dumpTitle.'"' : '',
-            preg_replace_callback(static::$controlCharsRx, function ($c) use ($map) {
+            preg_replace_callback(static::$controlCharsRx, static function ($c) use ($map) {
                 $s = $b = '<span class="sf-dump-default';
                 $c = $c[$i = 0];
                 if ($ns = "\r" === $c[$i] || "\n" === $c[$i]) {
@@ -922,7 +922,7 @@
                         $s .= '">';
                     }
 
-                    $s .= $map[$c[$i]] ?? sprintf('\x%02X', \ord($c[$i]));
+                    $s .= $map[$c[$i]] ?? \sprintf('\x%02X', \ord($c[$i]));
                 } while (isset($c[++$i]));
 
                 return $s.'</span>';
@@ -930,9 +930,7 @@
         );
 
         if (!($attr['binary'] ?? false)) {
-            $v = preg_replace_callback(static::$unicodeCharsRx, function ($c) {
-                return '<span class=sf-dump-default>\u{'.strtoupper(dechex(mb_ord($c[0]))).'}</span>';
-            }, $v);
+            $v = preg_replace_callback(static::$unicodeCharsRx, static fn ($c) => '<span class=sf-dump-default>\u{'.strtoupper(dechex(mb_ord($c[0]))).'}</span>', $v);
         }
 
         if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], $attr['line'] ?? 0)) {
@@ -943,10 +941,10 @@
                 $v .= '^';
             }
             $target = isset($attr['file']) ? '' : ' target="_blank"';
-            $v = sprintf('<a href="%s"%s rel="noopener noreferrer">%s</a>', esc($this->utf8Encode($attr['href'])), $target, $v);
+            $v = \sprintf('<a href="%s"%s rel="noopener noreferrer">%s</a>', esc($this->utf8Encode($attr['href'])), $target, $v);
         }
         if (isset($attr['lang'])) {
-            $v = sprintf('<code class="%s">%s</code>', esc($attr['lang']), $v);
+            $v = \sprintf('<code class="%s">%s</code>', esc($attr['lang']), $v);
         }
         if ('label' === $style) {
             $v .= ' ';
@@ -961,7 +959,7 @@
     protected function dumpLine(int $depth, bool $endOfValue = false)
     {
         if (-1 === $this->lastDepth) {
-            $this->line = sprintf($this->dumpPrefix, $this->dumpId, $this->indentPad).$this->line;
+            $this->line = \sprintf($this->dumpPrefix, $this->dumpId, $this->indentPad).$this->line;
         }
         if ($this->headerIsDumped !== ($this->outputStream ?? $this->lineDumper)) {
             $this->line = $this->getDumpHeader().$this->line;
@@ -973,7 +971,7 @@
                 $args[] = json_encode($this->extraDisplayOptions, \JSON_FORCE_OBJECT);
             }
             // Replace is for BC
-            $this->line .= sprintf(str_replace('"%s"', '%s', $this->dumpSuffix), implode(', ', $args));
+            $this->line .= \sprintf(str_replace('"%s"', '%s', $this->dumpSuffix), implode(', ', $args));
         }
         $this->lastDepth = $depth;
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Resources/functions/dump.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Resources/functions/dump.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Resources/functions/dump.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Resources/functions/dump.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
 if (!function_exists('dd')) {
     function dd(mixed ...$vars): never
     {
-        if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) && !headers_sent()) {
+        if (!in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) && !headers_sent()) {
             header('HTTP/1.1 500 Internal Server Error');
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Server/DumpServer.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Server/DumpServer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Server/DumpServer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Server/DumpServer.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,7 +45,7 @@
     public function start(): void
     {
         if (!$this->socket = stream_socket_server($this->host, $errno, $errstr)) {
-            throw new \RuntimeException(sprintf('Server start failed on "%s": ', $this->host).$errstr.' '.$errno);
+            throw new \RuntimeException(\sprintf('Server start failed on "%s": ', $this->host).$errstr.' '.$errno);
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/CasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/CasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/CasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/CasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -157,28 +157,28 @@
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-stdClass@anonymous {
-  -foo: "foo"
-}
-EOTXT
-            , $c
+                stdClass@anonymous {
+                  -foo: "foo"
+                }
+                EOTXT,
+            $c
         );
 
         $c = eval('return new class implements \Countable { private $foo = "foo"; public function count(): int { return 0; } };');
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-Countable@anonymous {
-  -foo: "foo"
-}
-EOTXT
-            , $c
+                Countable@anonymous {
+                  -foo: "foo"
+                }
+                EOTXT,
+            $c
         );
     }
 
     public function testTypeErrorInDebugInfo()
     {
-        $this->assertDumpMatchesFormat('class@anonymous {}', new class() {
+        $this->assertDumpMatchesFormat('class@anonymous {}', new class {
             public function __debugInfo(): array
             {
                 return ['class' => \get_class(null)];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/DateCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/DateCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/DateCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/DateCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,10 +49,10 @@
         $date = new \DateTime($time, new \DateTimeZone($timezone));
 
         $xDump = <<<EODUMP
-DateTime @$xTimestamp {
-  date: $xDate
-}
-EODUMP;
+            DateTime @$xTimestamp {
+              date: $xDate
+            }
+            EODUMP;
 
         $this->assertDumpEquals($xDump, $date);
     }
@@ -65,10 +65,10 @@
         $date = new \DateTimeImmutable($time, new \DateTimeZone($timezone));
 
         $xDump = <<<EODUMP
-DateTimeImmutable @$xTimestamp {
-  date: $xDate
-}
-EODUMP;
+            DateTimeImmutable @$xTimestamp {
+              date: $xDate
+            }
+            EODUMP;
 
         $this->assertDumpEquals($xDump, $date);
     }
@@ -83,25 +83,25 @@
         $cast = DateCaster::castDateTime($date, Caster::castObject($date, \DateTimeImmutable::class), $stub, false, 0);
 
         $xDump = <<<EODUMP
-array:1 [
-  "\\x00~\\x00date" => $xDate
-]
-EODUMP;
+            array:1 [
+              "\\x00~\\x00date" => $xDate
+            ]
+            EODUMP;
 
         $this->assertDumpEquals($xDump, $cast);
 
         $xDump = <<<EODUMP
-Symfony\Component\VarDumper\Caster\ConstStub {
-  +type: 1
-  +class: "$xDate"
-  +value: "%A$xInfos%A"
-  +cut: 0
-  +handle: 0
-  +refCount: 0
-  +position: 0
-  +attr: []
-}
-EODUMP;
+            Symfony\Component\VarDumper\Caster\ConstStub {
+              +type: 1
+              +class: "$xDate"
+              +value: "%A$xInfos%A"
+              +cut: 0
+              +handle: 0
+              +refCount: 0
+              +position: 0
+              +attr: []
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $cast["\0~\0date"]);
     }
@@ -134,25 +134,25 @@
         $cast = DateCaster::castDateTime($date, Caster::castObject($date, \DateTime::class), $stub, false, 0);
 
         $xDump = <<<EODUMP
-array:1 [
-  "\\x00~\\x00date" => $xDate
-]
-EODUMP;
+            array:1 [
+              "\\x00~\\x00date" => $xDate
+            ]
+            EODUMP;
 
         $this->assertDumpEquals($xDump, $cast);
 
         $xDump = <<<EODUMP
-Symfony\Component\VarDumper\Caster\ConstStub {
-  +type: 1
-  +class: "$xDate"
-  +value: "%A$xInfos%A"
-  +cut: 0
-  +handle: 0
-  +refCount: 0
-  +position: 0
-  +attr: []
-}
-EODUMP;
+            Symfony\Component\VarDumper\Caster\ConstStub {
+              +type: 1
+              +class: "$xDate"
+              +value: "%A$xInfos%A"
+              +cut: 0
+              +handle: 0
+              +refCount: 0
+              +position: 0
+              +attr: []
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $cast["\0~\0date"]);
     }
@@ -180,26 +180,26 @@
         $xDate = '2020-02-13 00:00:00.123456 Europe/Paris (+01:00)';
         $xInfo = 'Thursday, February 13, 2020%Afrom now';
         $xDump = <<<EODUMP
-array:2 [
-  "\\x00Symfony\Component\VarDumper\Tests\Fixtures\DateTimeChild\\x00addedProperty" => "foo"
-  "\\x00~\\x00date" => $xDate
-]
-EODUMP;
+            array:2 [
+              "\\x00Symfony\Component\VarDumper\Tests\Fixtures\DateTimeChild\\x00addedProperty" => "foo"
+              "\\x00~\\x00date" => $xDate
+            ]
+            EODUMP;
 
         $this->assertDumpEquals($xDump, $dateCast);
 
         $xDump = <<<EODUMP
-Symfony\Component\VarDumper\Caster\ConstStub {
-  +type: 1
-  +class: "$xDate"
-  +value: "%A$xInfo%A"
-  +cut: 0
-  +handle: 0
-  +refCount: 0
-  +position: 0
-  +attr: []
-}
-EODUMP;
+            Symfony\Component\VarDumper\Caster\ConstStub {
+              +type: 1
+              +class: "$xDate"
+              +value: "%A$xInfo%A"
+              +cut: 0
+              +handle: 0
+              +refCount: 0
+              +position: 0
+              +attr: []
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $dateCast["\0~\0date"]);
     }
@@ -212,10 +212,10 @@
         $interval = $this->createInterval($intervalSpec, $ms, $invert);
 
         $xDump = <<<EODUMP
-DateInterval {
-  interval: $expected
-%A}
-EODUMP;
+            DateInterval {
+              interval: $expected
+            %A}
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $interval);
     }
@@ -228,10 +228,10 @@
         $interval = $this->createInterval($intervalSpec, $ms, $invert);
 
         $xDump = <<<EODUMP
-DateInterval {
-  interval: $expected
-}
-EODUMP;
+            DateInterval {
+              interval: $expected
+            }
+            EODUMP;
 
         $this->assertDumpEquals($xDump, $interval, Caster::EXCLUDE_VERBOSE);
     }
@@ -247,10 +247,10 @@
         $cast = DateCaster::castInterval($interval, ['foo' => 'bar'], $stub, false, Caster::EXCLUDE_VERBOSE);
 
         $xDump = <<<EODUMP
-array:1 [
-  "\\x00~\\x00interval" => $xInterval
-]
-EODUMP;
+            array:1 [
+              "\\x00~\\x00interval" => $xInterval
+            ]
+            EODUMP;
 
         $this->assertDumpEquals($xDump, $cast);
 
@@ -259,17 +259,17 @@
         }
 
         $xDump = <<<EODUMP
-Symfony\Component\VarDumper\Caster\ConstStub {
-  +type: 1
-  +class: "$xInterval"
-  +value: "$xSeconds"
-  +cut: 0
-  +handle: 0
-  +refCount: 0
-  +position: 0
-  +attr: []
-}
-EODUMP;
+            Symfony\Component\VarDumper\Caster\ConstStub {
+              +type: 1
+              +class: "$xInterval"
+              +value: "$xSeconds"
+              +cut: 0
+              +handle: 0
+              +refCount: 0
+              +position: 0
+              +attr: []
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $cast["\0~\0interval"]);
     }
@@ -315,10 +315,10 @@
         $timezone = new \DateTimeZone($timezone);
 
         $xDump = <<<EODUMP
-DateTimeZone {
-  timezone: $expected
-%A}
-EODUMP;
+            DateTimeZone {
+              timezone: $expected
+            %A}
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $timezone);
     }
@@ -331,10 +331,10 @@
         $timezone = new \DateTimeZone($timezone);
 
         $xDump = <<<EODUMP
-DateTimeZone {
-  timezone: $expected
-}
-EODUMP;
+            DateTimeZone {
+              timezone: $expected
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $timezone, Caster::EXCLUDE_VERBOSE);
     }
@@ -350,25 +350,25 @@
         $cast = DateCaster::castTimeZone($timezone, ['foo' => 'bar'], $stub, false, Caster::EXCLUDE_VERBOSE);
 
         $xDump = <<<EODUMP
-array:1 [
-  "\\x00~\\x00timezone" => $xTimezone
-]
-EODUMP;
+            array:1 [
+              "\\x00~\\x00timezone" => $xTimezone
+            ]
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $cast);
 
         $xDump = <<<EODUMP
-Symfony\Component\VarDumper\Caster\ConstStub {
-  +type: 1
-  +class: "$xTimezone"
-  +value: "$xRegion"
-  +cut: 0
-  +handle: 0
-  +refCount: 0
-  +position: 0
-  +attr: []
-}
-EODUMP;
+            Symfony\Component\VarDumper\Caster\ConstStub {
+              +type: 1
+              +class: "$xTimezone"
+              +value: "$xRegion"
+              +cut: 0
+              +handle: 0
+              +refCount: 0
+              +position: 0
+              +attr: []
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $cast["\0~\0timezone"]);
     }
@@ -408,10 +408,10 @@
         $p = new \DatePeriod(new \DateTimeImmutable($start), new \DateInterval($interval), \is_int($end) ? $end : new \DateTime($end), $options);
 
         $xDump = <<<EODUMP
-DatePeriod {
-  period: $expected
-%A}
-EODUMP;
+            DatePeriod {
+              period: $expected
+            %A}
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $p);
     }
@@ -427,25 +427,25 @@
         $cast = DateCaster::castPeriod($p, [], $stub, false, 0);
 
         $xDump = <<<EODUMP
-array:1 [
-  "\\x00~\\x00period" => $xPeriod
-]
-EODUMP;
+            array:1 [
+              "\\x00~\\x00period" => $xPeriod
+            ]
+            EODUMP;
 
         $this->assertDumpEquals($xDump, $cast);
 
         $xDump = <<<EODUMP
-Symfony\Component\VarDumper\Caster\ConstStub {
-  +type: 1
-  +class: "$xPeriod"
-  +value: "%A$xDates%A"
-  +cut: 0
-  +handle: 0
-  +refCount: 0
-  +position: 0
-  +attr: []
-}
-EODUMP;
+            Symfony\Component\VarDumper\Caster\ConstStub {
+              +type: 1
+              +class: "$xPeriod"
+              +value: "%A$xDates%A"
+              +cut: 0
+              +handle: 0
+              +refCount: 0
+              +position: 0
+              +attr: []
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xDump, $cast["\0~\0period"]);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/DoctrineCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,7 +29,7 @@
     {
         $classMetadata = new ClassMetadata(__CLASS__);
 
-        $collection = new PersistentCollection($this->createMock(EntityManagerInterface::class), $classMetadata, new ArrayCollection(['test']));
+        $collection = new PersistentCollection($this->createStub(EntityManagerInterface::class), $classMetadata, new ArrayCollection(['test']));
 
         if (property_exists(PersistentCollection::class, 'isDirty')) {
             // Collections >= 2
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/ExceptionCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/ExceptionCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/ExceptionCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/ExceptionCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -58,21 +58,21 @@
         $e = $this->getTestException('foo', $ref);
 
         $expectedDump = <<<'EODUMP'
-Exception {
-  #message: "foo"
-  #code: 0
-  #file: "%sExceptionCasterTest.php"
-  #line: %d
-  trace: {
-    %s%eTests%eCaster%eExceptionCasterTest.php:%d {
-      Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->getTestException($msg, &$ref = null)
-      › {
-      ›     return new \Exception(''.$msg);
-      › }
-    }
-    %s%eTests%eCaster%eExceptionCasterTest.php:%d { …}
-%A
-EODUMP;
+            Exception {
+              #message: "foo"
+              #code: 0
+              #file: "%sExceptionCasterTest.php"
+              #line: %d
+              trace: {
+                %s%eTests%eCaster%eExceptionCasterTest.php:%d {
+                  Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->getTestException($msg, &$ref = null)
+                  › {
+                  ›     return new \Exception(''.$msg);
+                  › }
+                }
+                %s%eTests%eCaster%eExceptionCasterTest.php:%d { …}
+            %A
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $e);
         $this->assertSame(['foo'], $ref);
@@ -83,21 +83,21 @@
         $e = $this->getTestError('foo');
 
         $expectedDump = <<<'EODUMP'
-Error {
-  #message: "foo"
-  #code: 0
-  #file: "%sExceptionCasterTest.php"
-  #line: %d
-  trace: {
-    %s%eTests%eCaster%eExceptionCasterTest.php:%d {
-      Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->getTestError($msg): Error
-      › {
-      ›     return new \Error(''.$msg);
-      › }
-    }
-    %s%eTests%eCaster%eExceptionCasterTest.php:%d { …}
-%A
-EODUMP;
+            Error {
+              #message: "foo"
+              #code: 0
+              #file: "%sExceptionCasterTest.php"
+              #line: %d
+              trace: {
+                %s%eTests%eCaster%eExceptionCasterTest.php:%d {
+                  Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->getTestError($msg): Error
+                  › {
+                  ›     return new \Error(''.$msg);
+                  › }
+                }
+                %s%eTests%eCaster%eExceptionCasterTest.php:%d { …}
+            %A
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $e);
     }
@@ -107,22 +107,22 @@
         $e = $this->getTestErrorException('foo');
 
         $expectedDump = <<<'EODUMP'
-ErrorException {
-  #message: "foo"
-  #code: 0
-  #file: "%sExceptionCasterTest.php"
-  #line: %d
-  #severity: E_ERROR
-  trace: {
-    %s%eTests%eCaster%eExceptionCasterTest.php:%d {
-      Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->getTestErrorException($msg): ErrorException
-      › {
-      ›     return new \ErrorException(''.$msg);
-      › }
-    }
-    %s%eTests%eCaster%eExceptionCasterTest.php:%d { …}
-%A
-EODUMP;
+            ErrorException {
+              #message: "foo"
+              #code: 0
+              #file: "%sExceptionCasterTest.php"
+              #line: %d
+              #severity: E_ERROR
+              trace: {
+                %s%eTests%eCaster%eExceptionCasterTest.php:%d {
+                  Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->getTestErrorException($msg): ErrorException
+                  › {
+                  ›     return new \ErrorException(''.$msg);
+                  › }
+                }
+                %s%eTests%eCaster%eExceptionCasterTest.php:%d { …}
+            %A
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $e);
     }
@@ -135,18 +135,18 @@
         $e = $this->getTestSilencedErrorContext();
 
         $expectedDump = <<<'EODUMP'
-Symfony\Component\ErrorHandler\Exception\SilencedErrorContext {
-  +count: 1
-  -severity: E_ERROR
-  trace: {
-    %s%eTests%eCaster%eExceptionCasterTest.php:%d {
-      › {
-      ›     return new SilencedErrorContext(\E_ERROR, __FILE__, __LINE__);
-      › }
-    }
-  }
-}
-EODUMP;
+            Symfony\Component\ErrorHandler\Exception\SilencedErrorContext {
+              +count: 1
+              -severity: E_ERROR
+              trace: {
+                %s%eTests%eCaster%eExceptionCasterTest.php:%d {
+                  › {
+                  ›     return new SilencedErrorContext(\E_ERROR, __FILE__, __LINE__);
+                  › }
+                }
+              }
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $e);
     }
@@ -156,16 +156,16 @@
         $e = $this->getTestException(2);
 
         $expectedDump = <<<'EODUMP'
-{
-  %s%eTests%eCaster%eExceptionCasterTest.php:%d {
-    Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->getTestException($msg, &$ref = null)
-    › {
-    ›     return new \Exception(''.$msg);
-    › }
-  }
-  %s%eTests%eCaster%eExceptionCasterTest.php:%d { …}
-%A
-EODUMP;
+            {
+              %s%eTests%eCaster%eExceptionCasterTest.php:%d {
+                Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->getTestException($msg, &$ref = null)
+                › {
+                ›     return new \Exception(''.$msg);
+                › }
+              }
+              %s%eTests%eCaster%eExceptionCasterTest.php:%d { …}
+            %A
+            EODUMP;
 
         $this->assertStringMatchesFormat($expectedDump, $this->getDump($e, 'trace'));
     }
@@ -176,21 +176,21 @@
         ExceptionCaster::$traceArgs = false;
 
         $expectedDump = <<<'EODUMP'
-Exception {
-  #message: "1"
-  #code: 0
-  #file: "%sExceptionCasterTest.php"
-  #line: %d
-  trace: {
-    %sExceptionCasterTest.php:%d {
-      Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->getTestException($msg, &$ref = null)
-      › {
-      ›     return new \Exception(''.$msg);
-      › }
-    }
-    %s%eTests%eCaster%eExceptionCasterTest.php:%d { …}
-%A
-EODUMP;
+            Exception {
+              #message: "1"
+              #code: 0
+              #file: "%sExceptionCasterTest.php"
+              #line: %d
+              trace: {
+                %sExceptionCasterTest.php:%d {
+                  Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->getTestException($msg, &$ref = null)
+                  › {
+                  ›     return new \Exception(''.$msg);
+                  › }
+                }
+                %s%eTests%eCaster%eExceptionCasterTest.php:%d { …}
+            %A
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $e);
     }
@@ -201,16 +201,16 @@
         ExceptionCaster::$srcContext = -1;
 
         $expectedDump = <<<'EODUMP'
-Exception {
-  #message: "1"
-  #code: 0
-  #file: "%sExceptionCasterTest.php"
-  #line: %d
-  trace: {
-    %s%eTests%eCaster%eExceptionCasterTest.php:%d
-    %s%eTests%eCaster%eExceptionCasterTest.php:%d
-%A
-EODUMP;
+            Exception {
+              #message: "1"
+              #code: 0
+              #file: "%sExceptionCasterTest.php"
+              #line: %d
+              trace: {
+                %s%eTests%eCaster%eExceptionCasterTest.php:%d
+                %s%eTests%eCaster%eExceptionCasterTest.php:%d
+            %A
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $e);
     }
@@ -224,17 +224,17 @@
         $nestingWrapper->trace = new TraceStub($innerExc->getTrace());
 
         $expectedDump = <<<'EODUMP'
-{
-  +"trace": {
-    %sTwig.php:%d {
-      AbstractTwigTemplate->provideError()
-      › {
-      ›     return $this->createError();
-      › }
-    }
-    %sExceptionCasterTest.php:%d { …}
-%A
-EODUMP;
+            {
+              +"trace": {
+                %sTwig.php:%d {
+                  AbstractTwigTemplate->provideError()
+                  › {
+                  ›     return $this->createError();
+                  › }
+                }
+                %sExceptionCasterTest.php:%d { …}
+            %A
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $nestingWrapper);
     }
@@ -256,20 +256,20 @@
         $dump = $dumper->dump($cloner->cloneVar($e)->withRefHandles(false), true);
 
         $expectedDump = <<<'EODUMP'
-<foo></foo><bar><span class=sf-dump-note>Exception</span> {<samp data-depth=1 class=sf-dump-expanded>
-  #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str>1</span>"
-  #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
-  #<span class=sf-dump-protected title="Protected property">file</span>: "<span class="sf-dump-str sf-dump-ellipsization" title="%sExceptionCasterTest.php
-%d characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%s%eVarDumper</span><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%e</span><span class="sf-dump-ellipsis-tail">Tests%eCaster%eExceptionCasterTest.php</span></span>"
-  #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>%d</span>
-  <span class=sf-dump-meta>trace</span>: {<samp data-depth=2 class=sf-dump-compact>
-    <span class="sf-dump-meta sf-dump-ellipsization" title="%sExceptionCasterTest.php
-Stack level %d."><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%s%eVarDumper</span><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%e</span><span class="sf-dump-ellipsis-tail">Tests%eCaster%eExceptionCasterTest.php</span></span>:<span class=sf-dump-num>%d</span>
-     &#8230;%d
-  </samp>}
-</samp>}
-</bar>
-EODUMP;
+            <foo></foo><bar><span class=sf-dump-note>Exception</span> {<samp data-depth=1 class=sf-dump-expanded>
+              #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str>1</span>"
+              #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
+              #<span class=sf-dump-protected title="Protected property">file</span>: "<span class="sf-dump-str sf-dump-ellipsization" title="%sExceptionCasterTest.php
+            %d characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%s%eVarDumper</span><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%e</span><span class="sf-dump-ellipsis-tail">Tests%eCaster%eExceptionCasterTest.php</span></span>"
+              #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>%d</span>
+              <span class=sf-dump-meta>trace</span>: {<samp data-depth=2 class=sf-dump-compact>
+                <span class="sf-dump-meta sf-dump-ellipsization" title="%sExceptionCasterTest.php
+            Stack level %d."><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%s%eVarDumper</span><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%e</span><span class="sf-dump-ellipsis-tail">Tests%eCaster%eExceptionCasterTest.php</span></span>:<span class=sf-dump-num>%d</span>
+                 &#8230;%d
+              </samp>}
+            </samp>}
+            </bar>
+            EODUMP;
 
         $this->assertStringMatchesFormat($expectedDump, $dump);
     }
@@ -293,32 +293,32 @@
         ];
 
         $expectedDump = <<<'EODUMP'
-array:2 [
-  0 => {
-    class: "__TwigTemplate_VarDumperFixture_u75a09"
-    src: {
-      %sTwig.php:1 {
-        ›%s
-        › foo bar
-        ›   twig source
-      }
-    }
-  }
-  1 => {
-    class: "__TwigTemplate_VarDumperFixture_u75a09"
-    object: __TwigTemplate_VarDumperFixture_u75a09 {
-    %A
-    }
-    src: {
-      %sExceptionCasterTest.php:2 {
-        › foo bar
-        ›   twig source
-        ›%s
-      }
-    }
-  }
-]
-EODUMP;
+            array:2 [
+              0 => {
+                class: "__TwigTemplate_VarDumperFixture_u75a09"
+                src: {
+                  %sTwig.php:1 {
+                    ›%s
+                    › foo bar
+                    ›   twig source
+                  }
+                }
+              }
+              1 => {
+                class: "__TwigTemplate_VarDumperFixture_u75a09"
+                object: __TwigTemplate_VarDumperFixture_u75a09 {
+                %A
+                }
+                src: {
+                  %sExceptionCasterTest.php:2 {
+                    › foo bar
+                    ›   twig source
+                    ›%s
+                  }
+                }
+              }
+            ]
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $f);
     }
@@ -328,30 +328,30 @@
         $e = $this->getTestException('foo');
 
         $expectedDump = <<<'EODUMP'
-Exception {
-  #message: "foo"
-  #code: 0
-  #file: "%sExceptionCasterTest.php"
-  #line: %d
-}
-EODUMP;
+            Exception {
+              #message: "foo"
+              #code: 0
+              #file: "%sExceptionCasterTest.php"
+              #line: %d
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $e, Caster::EXCLUDE_VERBOSE);
     }
 
     public function testAnonymous()
     {
-        $e = new \Exception(sprintf('Boo "%s" ba.', (new class('Foo') extends \Exception {
+        $e = new \Exception(\sprintf('Boo "%s" ba.', (new class('Foo') extends \Exception {
         })::class));
 
         $expectedDump = <<<'EODUMP'
-Exception {
-  #message: "Boo "Exception@anonymous" ba."
-  #code: 0
-  #file: "%sExceptionCasterTest.php"
-  #line: %d
-}
-EODUMP;
+            Exception {
+              #message: "Boo "Exception@anonymous" ba."
+              #code: 0
+              #file: "%sExceptionCasterTest.php"
+              #line: %d
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $e, Caster::EXCLUDE_VERBOSE);
     }
@@ -364,24 +364,24 @@
         $f = FlattenException::createFromThrowable(new \Exception('Hello'));
 
         $expectedDump = <<<'EODUMP'
-array:1 [
-  0 => Symfony\Component\ErrorHandler\Exception\FlattenException {
-    -message: "Hello"
-    -code: 0
-    -previous: null
-    -trace: array:%d %a
-    -traceAsString: ""…%d
-    -class: "Exception"
-    -statusCode: 500
-    -statusText: "Internal Server Error"
-    -headers: []
-    -file: "%sExceptionCasterTest.php"
-    -line: %d
-    -asString: null
-    -dataRepresentation: ? Symfony\Component\VarDumper\Cloner\Data
-  }
-]
-EODUMP;
+            array:1 [
+              0 => Symfony\Component\ErrorHandler\Exception\FlattenException {
+                -message: "Hello"
+                -code: 0
+                -previous: null
+                -trace: array:%d %a
+                -traceAsString: ""…%d
+                -class: "Exception"
+                -statusCode: 500
+                -statusText: "Internal Server Error"
+                -headers: []
+                -file: "%sExceptionCasterTest.php"
+                -line: %d
+                -asString: null
+                -dataRepresentation: ? Symfony\Component\VarDumper\Cloner\Data
+              }
+            ]
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, [$f], Caster::EXCLUDE_VERBOSE);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -42,57 +42,69 @@
     public function testCastAnonymousStruct()
     {
         $this->assertDumpEquals(<<<'PHP'
-        FFI\CData<struct <anonymous>> size 4 align 4 {
-          uint32_t x: 0
-        }
-        PHP, \FFI::cdef()->new('struct { uint32_t x; }'));
+            FFI\CData<struct <anonymous>> size 4 align 4 {
+              uint32_t x: 0
+            }
+            PHP,
+            \FFI::cdef()->new('struct { uint32_t x; }')
+        );
     }
 
     public function testCastNamedStruct()
     {
         $this->assertDumpEquals(<<<'PHP'
-        FFI\CData<struct Example> size 4 align 4 {
-          uint32_t x: 0
-        }
-        PHP, \FFI::cdef()->new('struct Example { uint32_t x; }'));
+            FFI\CData<struct Example> size 4 align 4 {
+              uint32_t x: 0
+            }
+            PHP,
+            \FFI::cdef()->new('struct Example { uint32_t x; }')
+        );
     }
 
     public function testCastAnonymousUnion()
     {
         $this->assertDumpEquals(<<<'PHP'
-        FFI\CData<union <anonymous>> size 4 align 4 {
-          uint32_t x: 0
-          uint32_t y: 0
-        }
-        PHP, \FFI::cdef()->new('union { uint32_t x; uint32_t y; }'));
+            FFI\CData<union <anonymous>> size 4 align 4 {
+              uint32_t x: 0
+              uint32_t y: 0
+            }
+            PHP,
+            \FFI::cdef()->new('union { uint32_t x; uint32_t y; }')
+        );
     }
 
     public function testCastNamedUnion()
     {
         $this->assertDumpEquals(<<<'PHP'
-        FFI\CData<union Example> size 4 align 4 {
-          uint32_t x: 0
-          uint32_t y: 0
-        }
-        PHP, \FFI::cdef()->new('union Example { uint32_t x; uint32_t y; }'));
+            FFI\CData<union Example> size 4 align 4 {
+              uint32_t x: 0
+              uint32_t y: 0
+            }
+            PHP,
+            \FFI::cdef()->new('union Example { uint32_t x; uint32_t y; }')
+        );
     }
 
     public function testCastAnonymousEnum()
     {
         $this->assertDumpEquals(<<<'PHP'
-        FFI\CData<enum <anonymous>> size 4 align 4 {
-          cdata: 0
-        }
-        PHP, \FFI::cdef()->new('enum { a, b }'));
+            FFI\CData<enum <anonymous>> size 4 align 4 {
+              cdata: 0
+            }
+            PHP,
+            \FFI::cdef()->new('enum { a, b }')
+        );
     }
 
     public function testCastNamedEnum()
     {
         $this->assertDumpEquals(<<<'PHP'
-        FFI\CData<enum Example> size 4 align 4 {
-          cdata: 0
-        }
-        PHP, \FFI::cdef()->new('enum Example { a, b }'));
+            FFI\CData<enum Example> size 4 align 4 {
+              cdata: 0
+            }
+            PHP,
+            \FFI::cdef()->new('enum Example { a, b }')
+        );
     }
 
     public static function scalarsDataProvider(): array
@@ -120,10 +132,12 @@
     public function testCastScalar(string $type, string $value, int $size, int $align)
     {
         $this->assertDumpEquals(<<<PHP
-        FFI\CData<$type> size $size align $align {
-          cdata: $value
-        }
-        PHP, \FFI::cdef()->new($type));
+            FFI\CData<$type> size $size align $align {
+              cdata: $value
+            }
+            PHP,
+            \FFI::cdef()->new($type)
+        );
     }
 
     public function testCastVoidFunction()
@@ -131,10 +145,12 @@
         $abi = \PHP_OS_FAMILY === 'Windows' ? '[cdecl]' : '[fastcall]';
 
         $this->assertDumpEquals(<<<PHP
-        $abi callable(): void {
-          returnType: FFI\CType<void> size 1 align 1 {}
-        }
-        PHP, \FFI::cdef()->new('void (*)(void)'));
+            $abi callable(): void {
+              returnType: FFI\CType<void> size 1 align 1 {}
+            }
+            PHP,
+            \FFI::cdef()->new('void (*)(void)')
+        );
     }
 
     public function testCastIntFunction()
@@ -142,10 +158,12 @@
         $abi = \PHP_OS_FAMILY === 'Windows' ? '[cdecl]' : '[fastcall]';
 
         $this->assertDumpEquals(<<<PHP
-        $abi callable(): uint64_t {
-          returnType: FFI\CType<uint64_t> size 8 align 8 {}
-        }
-        PHP, \FFI::cdef()->new('unsigned long long (*)(void)'));
+            $abi callable(): uint64_t {
+              returnType: FFI\CType<uint64_t> size 8 align 8 {}
+            }
+            PHP,
+            \FFI::cdef()->new('unsigned long long (*)(void)')
+        );
     }
 
     public function testCastFunctionWithArguments()
@@ -153,10 +171,12 @@
         $abi = \PHP_OS_FAMILY === 'Windows' ? '[cdecl]' : '[fastcall]';
 
         $this->assertDumpEquals(<<<PHP
-        $abi callable(int32_t, char*): void {
-          returnType: FFI\CType<void> size 1 align 1 {}
-        }
-        PHP, \FFI::cdef()->new('void (*)(int a, const char* b)'));
+            $abi callable(int32_t, char*): void {
+              returnType: FFI\CType<void> size 1 align 1 {}
+            }
+            PHP,
+            \FFI::cdef()->new('void (*)(int a, const char* b)')
+        );
     }
 
     public function testCastNonCuttedPointerToChar()
@@ -168,10 +188,12 @@
         \FFI::memcpy($pointer, $actualMessage, \strlen($actualMessage));
 
         $this->assertDumpEquals(<<<'PHP'
-        FFI\CData<char*> size 8 align 8 {
-          cdata: "Hello World!\x00"
-        }
-        PHP, $pointer);
+            FFI\CData<char*> size 8 align 8 {
+              cdata: "Hello World!\x00"
+            }
+            PHP,
+            $pointer
+        );
     }
 
     public function testCastCuttedPointerToChar()
@@ -188,8 +210,9 @@
         // so we need to cut the expected message to the maximum length
         // allowed by pages size of the current system
         $ffi = \FFI::cdef(<<<C
-            size_t zend_get_page_size(void);
-        C);
+                size_t zend_get_page_size(void);
+            C
+        );
 
         $pageSize = $ffi->zend_get_page_size();
         $start = $ffi->cast('uintptr_t', $ffi->cast('char*', $pointer))->cdata;
@@ -197,10 +220,12 @@
         $expectedMessage = substr($expectedMessage, 0, $max);
 
         $this->assertDumpEquals(<<<PHP
-        FFI\CData<char*> size 8 align 8 {
-          cdata: "$expectedMessage"…
-        }
-        PHP, $pointer);
+            FFI\CData<char*> size 8 align 8 {
+              cdata: "$expectedMessage"…
+            }
+            PHP,
+            $pointer
+        );
     }
 
     public function testCastNonTrailingCharPointer()
@@ -216,115 +241,130 @@
         $pointer[$actualLength] = "\x01";
 
         $this->assertDumpMatchesFormat(<<<PHP
-        FFI\CData<char*> size 8 align 8 {
-          cdata: %A"$actualMessage%s"
-        }
-        PHP, $pointer);
+            FFI\CData<char*> size 8 align 8 {
+              cdata: %A"$actualMessage%s"
+            }
+            PHP,
+            $pointer
+        );
     }
 
     public function testCastUnionWithDirectReferencedFields()
     {
         $ffi = \FFI::cdef(<<<'CPP'
-        typedef union Event {
-            int32_t x;
-            float y;
-        } Event;
-        CPP);
+            typedef union Event {
+                int32_t x;
+                float y;
+            } Event;
+            CPP
+        );
 
         $this->assertDumpEquals(<<<'OUTPUT'
-        FFI\CData<union Event> size 4 align 4 {
-          int32_t x: 0
-          float y: 0.0
-        }
-        OUTPUT, $ffi->new('Event'));
+            FFI\CData<union Event> size 4 align 4 {
+              int32_t x: 0
+              float y: 0.0
+            }
+            OUTPUT,
+            $ffi->new('Event')
+        );
     }
 
     public function testCastUnionWithPointerReferencedFields()
     {
         $ffi = \FFI::cdef(<<<'CPP'
-        typedef union Event {
-            void* something;
-            char* string;
-        } Event;
-        CPP);
+            typedef union Event {
+                void* something;
+                char* string;
+            } Event;
+            CPP
+        );
 
         $this->assertDumpEquals(<<<'OUTPUT'
-        FFI\CData<union Event> size 8 align 8 {
-          something?: FFI\CType<void*> size 8 align 8 {
-            0: FFI\CType<void> size 1 align 1 {}
-          }
-          string?: FFI\CType<char*> size 8 align 8 {
-            0: FFI\CType<char> size 1 align 1 {}
-          }
-        }
-        OUTPUT, $ffi->new('Event'));
+            FFI\CData<union Event> size 8 align 8 {
+              something?: FFI\CType<void*> size 8 align 8 {
+                0: FFI\CType<void> size 1 align 1 {}
+              }
+              string?: FFI\CType<char*> size 8 align 8 {
+                0: FFI\CType<char> size 1 align 1 {}
+              }
+            }
+            OUTPUT,
+            $ffi->new('Event')
+        );
     }
 
     public function testCastUnionWithMixedFields()
     {
         $ffi = \FFI::cdef(<<<'CPP'
-        typedef union Event {
-            void* a;
-            int32_t b;
-            char* c;
-            ptrdiff_t d;
-        } Event;
-        CPP);
+            typedef union Event {
+                void* a;
+                int32_t b;
+                char* c;
+                ptrdiff_t d;
+            } Event;
+            CPP
+        );
 
         $this->assertDumpEquals(<<<'OUTPUT'
-        FFI\CData<union Event> size 8 align 8 {
-          a?: FFI\CType<void*> size 8 align 8 {
-            0: FFI\CType<void> size 1 align 1 {}
-          }
-          int32_t b: 0
-          c?: FFI\CType<char*> size 8 align 8 {
-            0: FFI\CType<char> size 1 align 1 {}
-          }
-          int64_t d: 0
-        }
-        OUTPUT, $ffi->new('Event'));
+            FFI\CData<union Event> size 8 align 8 {
+              a?: FFI\CType<void*> size 8 align 8 {
+                0: FFI\CType<void> size 1 align 1 {}
+              }
+              int32_t b: 0
+              c?: FFI\CType<char*> size 8 align 8 {
+                0: FFI\CType<char> size 1 align 1 {}
+              }
+              int64_t d: 0
+            }
+            OUTPUT,
+            $ffi->new('Event')
+        );
     }
 
     public function testCastPointerToEmptyScalars()
     {
         $ffi = \FFI::cdef(<<<'CPP'
-        typedef struct {
-            int8_t *a;
-            uint8_t *b;
-            int64_t *c;
-            uint64_t *d;
-            float *e;
-            double *f;
-            bool *g;
-        } Example;
-        CPP);
+            typedef struct {
+                int8_t *a;
+                uint8_t *b;
+                int64_t *c;
+                uint64_t *d;
+                float *e;
+                double *f;
+                bool *g;
+            } Example;
+            CPP
+        );
 
         $this->assertDumpEquals(<<<'OUTPUT'
-        FFI\CData<struct <anonymous>> size 56 align 8 {
-          int8_t* a: null
-          uint8_t* b: null
-          int64_t* c: null
-          uint64_t* d: null
-          float* e: null
-          double* f: null
-          bool* g: null
-        }
-        OUTPUT, $ffi->new('Example'));
+            FFI\CData<struct <anonymous>> size 56 align 8 {
+              int8_t* a: null
+              uint8_t* b: null
+              int64_t* c: null
+              uint64_t* d: null
+              float* e: null
+              double* f: null
+              bool* g: null
+            }
+            OUTPUT,
+            $ffi->new('Example')
+        );
     }
 
     public function testCastPointerToNonEmptyScalars()
     {
         $ffi = \FFI::cdef(<<<'CPP'
-        typedef struct {
-            int8_t *a;
-            uint8_t *b;
-            int64_t *c;
-            uint64_t *d;
-            float *e;
-            double *f;
-            bool *g;
-        } Example;
-        CPP);
+            typedef struct {
+                int8_t *a;
+                uint8_t *b;
+                int64_t *c;
+                uint64_t *d;
+                float *e;
+                double *f;
+                bool *g;
+            } Example;
+            CPP
+        );
 
         // Create values
         $int = \FFI::cdef()->new('int64_t');
@@ -347,63 +387,70 @@
         $struct->g = \FFI::addr(\FFI::cdef()->cast('bool', $bool));
 
         $this->assertDumpEquals(<<<'OUTPUT'
-        FFI\CData<struct <anonymous>> size 56 align 8 {
-          a: FFI\CData<int8_t*> size 8 align 8 {
-            cdata: 42
-          }
-          b: FFI\CData<uint8_t*> size 8 align 8 {
-            cdata: 42
-          }
-          c: FFI\CData<int64_t*> size 8 align 8 {
-            cdata: 42
-          }
-          d: FFI\CData<uint64_t*> size 8 align 8 {
-            cdata: 42
-          }
-          e: FFI\CData<float*> size 8 align 8 {
-            cdata: 42.0
-          }
-          f: FFI\CData<double*> size 8 align 8 {
-            cdata: 42.2
-          }
-          g: FFI\CData<bool*> size 8 align 8 {
-            cdata: true
-          }
-        }
-        OUTPUT, $struct);
+            FFI\CData<struct <anonymous>> size 56 align 8 {
+              a: FFI\CData<int8_t*> size 8 align 8 {
+                cdata: 42
+              }
+              b: FFI\CData<uint8_t*> size 8 align 8 {
+                cdata: 42
+              }
+              c: FFI\CData<int64_t*> size 8 align 8 {
+                cdata: 42
+              }
+              d: FFI\CData<uint64_t*> size 8 align 8 {
+                cdata: 42
+              }
+              e: FFI\CData<float*> size 8 align 8 {
+                cdata: 42.0
+              }
+              f: FFI\CData<double*> size 8 align 8 {
+                cdata: 42.2
+              }
+              g: FFI\CData<bool*> size 8 align 8 {
+                cdata: true
+              }
+            }
+            OUTPUT,
+            $struct
+        );
     }
 
     public function testCastPointerToStruct()
     {
         $ffi = \FFI::cdef(<<<'CPP'
-        typedef struct {
-            int8_t a;
-        } Example;
-        CPP);
+            typedef struct {
+                int8_t a;
+            } Example;
+            CPP
+        );
 
         $struct = $ffi->new('Example', false);
 
         $this->assertDumpEquals(<<<'OUTPUT'
-        FFI\CData<struct <anonymous>*> size 8 align 8 {
-          cdata: FFI\CData<struct <anonymous>> size 1 align 1 {
-            int8_t a: 0
-          }
-        }
-        OUTPUT, \FFI::addr($struct));
+            FFI\CData<struct <anonymous>*> size 8 align 8 {
+              cdata: FFI\CData<struct <anonymous>> size 1 align 1 {
+                int8_t a: 0
+              }
+            }
+            OUTPUT,
+            \FFI::addr($struct)
+        );
 
         // Save the pointer as variable so that
         // it is not cleaned up by the GC
         $pointer = \FFI::addr($struct);
 
         $this->assertDumpEquals(<<<'OUTPUT'
-        FFI\CData<struct <anonymous>**> size 8 align 8 {
-          cdata: FFI\CData<struct <anonymous>*> size 8 align 8 {
-            cdata: FFI\CData<struct <anonymous>> size 1 align 1 {
-              int8_t a: 0
-            }
-          }
-        }
-        OUTPUT, \FFI::addr($pointer));
+            FFI\CData<struct <anonymous>**> size 8 align 8 {
+              cdata: FFI\CData<struct <anonymous>*> size 8 align 8 {
+                cdata: FFI\CData<struct <anonymous>> size 1 align 1 {
+                  int8_t a: 0
+                }
+              }
+            }
+            OUTPUT,
+            \FFI::addr($pointer)
+        );
 
         \FFI::free($struct);
     }
@@ -411,30 +458,31 @@
     public function testCastComplexType()
     {
         $ffi = \FFI::cdef(<<<'CPP'
-        typedef struct {
-            int x;
-            int y;
-        } Point;
-        typedef struct Example {
-            uint8_t a[32];
-            long b;
-            __extension__ union {
-                __extension__ struct {
-                    short c;
-                    long d;
+            typedef struct {
+                int x;
+                int y;
+            } Point;
+            typedef struct Example {
+                uint8_t a[32];
+                long b;
+                __extension__ union {
+                    __extension__ struct {
+                        short c;
+                        long d;
+                    };
+                    struct {
+                        Point point;
+                        float e;
+                    };
                 };
-                struct {
-                    Point point;
-                    float e;
-                };
-            };
-            short f;
-            bool g;
-            int (*func)(
-                struct __sub *h
-            );
-        } Example;
-        CPP);
+                short f;
+                bool g;
+                int (*func)(
+                    struct __sub *h
+                );
+            } Example;
+            CPP
+        );
 
         $var = $ffi->new('Example');
         $var->func = (static fn (object $p) => 42);
@@ -445,22 +493,24 @@
         $structSize = 56 + $longSize * 2;
 
         $this->assertDumpEquals(<<<OUTPUT
-        FFI\CData<struct Example> size $structSize align 8 {
-          a: FFI\CData<uint8_t[32]> size 32 align 1 {}
-          $longType b: 0
-          int16_t c: 0
-          $longType d: 0
-          point: FFI\CData<struct <anonymous>> size 8 align 4 {
-            int32_t x: 0
-            int32_t y: 0
-          }
-          float e: 0.0
-          int16_t f: 0
-          bool g: false
-          func: $abi callable(struct __sub*): int32_t {
-            returnType: FFI\CType<int32_t> size 4 align 4 {}
-          }
-        }
-        OUTPUT, $var);
+            FFI\CData<struct Example> size $structSize align 8 {
+              a: FFI\CData<uint8_t[32]> size 32 align 1 {}
+              $longType b: 0
+              int16_t c: 0
+              $longType d: 0
+              point: FFI\CData<struct <anonymous>> size 8 align 4 {
+                int32_t x: 0
+                int32_t y: 0
+              }
+              float e: 0.0
+              int16_t f: 0
+              bool g: false
+              func: $abi callable(struct __sub*): int32_t {
+                returnType: FFI\CType<int32_t> size 4 align 4 {}
+              }
+            }
+            OUTPUT,
+            $var
+        );
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/FiberCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/FiberCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/FiberCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/FiberCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,10 +23,10 @@
         $fiber = new \Fiber(static fn () => true);
 
         $expected = <<<EODUMP
-Fiber {
-  status: "not started"
-}
-EODUMP;
+            Fiber {
+              status: "not started"
+            }
+            EODUMP;
 
         $this->assertDumpEquals($expected, $fiber);
     }
@@ -37,10 +37,10 @@
         $fiber->start();
 
         $expected = <<<EODUMP
-Fiber {
-  status: "terminated"
-}
-EODUMP;
+            Fiber {
+              status: "terminated"
+            }
+            EODUMP;
 
         $this->assertDumpEquals($expected, $fiber);
     }
@@ -51,10 +51,10 @@
         $fiber->start();
 
         $expected = <<<EODUMP
-Fiber {
-  status: "suspended"
-}
-EODUMP;
+            Fiber {
+              status: "suspended"
+            }
+            EODUMP;
 
         $this->assertDumpEquals($expected, $fiber);
     }
@@ -63,10 +63,10 @@
     {
         $fiber = new \Fiber(function () {
             $expected = <<<EODUMP
-Fiber {
-  status: "running"
-}
-EODUMP;
+                Fiber {
+                  status: "running"
+                }
+                EODUMP;
 
             $this->assertDumpEquals($expected, \Fiber::getCurrent());
         });
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/GmpCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/GmpCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/GmpCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/GmpCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,22 +26,22 @@
     public function testCastGmp()
     {
         $gmpString = gmp_init('1234');
-        $gmpOctal = gmp_init(010);
+        $gmpOctal = gmp_init(0o10);
         $gmp = gmp_init('01101');
         $gmpDump = <<<EODUMP
-array:1 [
-  "\\x00~\\x00value" => %s
-]
-EODUMP;
-        $this->assertDumpEquals(sprintf($gmpDump, $gmpString), GmpCaster::castGmp($gmpString, [], new Stub(), false, 0));
-        $this->assertDumpEquals(sprintf($gmpDump, $gmpOctal), GmpCaster::castGmp($gmpOctal, [], new Stub(), false, 0));
-        $this->assertDumpEquals(sprintf($gmpDump, $gmp), GmpCaster::castGmp($gmp, [], new Stub(), false, 0));
+            array:1 [
+              "\\x00~\\x00value" => %s
+            ]
+            EODUMP;
+        $this->assertDumpEquals(\sprintf($gmpDump, $gmpString), GmpCaster::castGmp($gmpString, [], new Stub(), false, 0));
+        $this->assertDumpEquals(\sprintf($gmpDump, $gmpOctal), GmpCaster::castGmp($gmpOctal, [], new Stub(), false, 0));
+        $this->assertDumpEquals(\sprintf($gmpDump, $gmp), GmpCaster::castGmp($gmp, [], new Stub(), false, 0));
 
         $dump = <<<EODUMP
-GMP {
-  value: 577
-}
-EODUMP;
+            GMP {
+              value: 577
+            }
+            EODUMP;
 
         $this->assertDumpEquals($dump, $gmp);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/IntlCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/IntlCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/IntlCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/IntlCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,11 +26,11 @@
         $var = new \MessageFormatter('en', 'Hello {name}');
 
         $expected = <<<EOTXT
-MessageFormatter {
-  locale: "en"
-  pattern: "Hello {name}"
-}
-EOTXT;
+            MessageFormatter {
+              locale: "en"
+              pattern: "Hello {name}"
+            }
+            EOTXT;
         $this->assertDumpEquals($expected, $var);
     }
 
@@ -91,63 +91,63 @@
         $expectedSymbol18 = $var->getSymbol(\NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL);
 
         $expected = <<<EOTXT
-NumberFormatter {
-  locale: "$expectedLocale"
-  pattern: "$expectedPattern"
-  attributes: {
-    PARSE_INT_ONLY: $expectedAttribute1
-    GROUPING_USED: $expectedAttribute2
-    DECIMAL_ALWAYS_SHOWN: $expectedAttribute3
-    MAX_INTEGER_DIGITS: $expectedAttribute4
-    MIN_INTEGER_DIGITS: $expectedAttribute5
-    INTEGER_DIGITS: $expectedAttribute6
-    MAX_FRACTION_DIGITS: $expectedAttribute7
-    MIN_FRACTION_DIGITS: $expectedAttribute8
-    FRACTION_DIGITS: $expectedAttribute9
-    MULTIPLIER: $expectedAttribute10
-    GROUPING_SIZE: $expectedAttribute11
-    ROUNDING_MODE: $expectedAttribute12
-    ROUNDING_INCREMENT: $expectedAttribute13
-    FORMAT_WIDTH: $expectedAttribute14
-    PADDING_POSITION: $expectedAttribute15
-    SECONDARY_GROUPING_SIZE: $expectedAttribute16
-    SIGNIFICANT_DIGITS_USED: $expectedAttribute17
-    MIN_SIGNIFICANT_DIGITS: $expectedAttribute18
-    MAX_SIGNIFICANT_DIGITS: $expectedAttribute19
-    LENIENT_PARSE: $expectedAttribute20
-  }
-  text_attributes: {
-    POSITIVE_PREFIX: "$expectedTextAttribute1"
-    POSITIVE_SUFFIX: "$expectedTextAttribute2"
-    NEGATIVE_PREFIX: "$expectedTextAttribute3"
-    NEGATIVE_SUFFIX: "$expectedTextAttribute4"
-    PADDING_CHARACTER: "$expectedTextAttribute5"
-    CURRENCY_CODE: "$expectedTextAttribute6"
-    DEFAULT_RULESET: $expectedTextAttribute7
-    PUBLIC_RULESETS: $expectedTextAttribute8
-  }
-  symbols: {
-    DECIMAL_SEPARATOR_SYMBOL: "$expectedSymbol1"
-    GROUPING_SEPARATOR_SYMBOL: "$expectedSymbol2"
-    PATTERN_SEPARATOR_SYMBOL: "$expectedSymbol3"
-    PERCENT_SYMBOL: "$expectedSymbol4"
-    ZERO_DIGIT_SYMBOL: "$expectedSymbol5"
-    DIGIT_SYMBOL: "$expectedSymbol6"
-    MINUS_SIGN_SYMBOL: "$expectedSymbol7"
-    PLUS_SIGN_SYMBOL: "$expectedSymbol8"
-    CURRENCY_SYMBOL: "$expectedSymbol9"
-    INTL_CURRENCY_SYMBOL: "$expectedSymbol10"
-    MONETARY_SEPARATOR_SYMBOL: "$expectedSymbol11"
-    EXPONENTIAL_SYMBOL: "$expectedSymbol12"
-    PERMILL_SYMBOL: "$expectedSymbol13"
-    PAD_ESCAPE_SYMBOL: "$expectedSymbol14"
-    INFINITY_SYMBOL: "$expectedSymbol15"
-    NAN_SYMBOL: "$expectedSymbol16"
-    SIGNIFICANT_DIGIT_SYMBOL: "$expectedSymbol17"
-    MONETARY_GROUPING_SEPARATOR_SYMBOL: "$expectedSymbol18"
-  }
-}
-EOTXT;
+            NumberFormatter {
+              locale: "$expectedLocale"
+              pattern: "$expectedPattern"
+              attributes: {
+                PARSE_INT_ONLY: $expectedAttribute1
+                GROUPING_USED: $expectedAttribute2
+                DECIMAL_ALWAYS_SHOWN: $expectedAttribute3
+                MAX_INTEGER_DIGITS: $expectedAttribute4
+                MIN_INTEGER_DIGITS: $expectedAttribute5
+                INTEGER_DIGITS: $expectedAttribute6
+                MAX_FRACTION_DIGITS: $expectedAttribute7
+                MIN_FRACTION_DIGITS: $expectedAttribute8
+                FRACTION_DIGITS: $expectedAttribute9
+                MULTIPLIER: $expectedAttribute10
+                GROUPING_SIZE: $expectedAttribute11
+                ROUNDING_MODE: $expectedAttribute12
+                ROUNDING_INCREMENT: $expectedAttribute13
+                FORMAT_WIDTH: $expectedAttribute14
+                PADDING_POSITION: $expectedAttribute15
+                SECONDARY_GROUPING_SIZE: $expectedAttribute16
+                SIGNIFICANT_DIGITS_USED: $expectedAttribute17
+                MIN_SIGNIFICANT_DIGITS: $expectedAttribute18
+                MAX_SIGNIFICANT_DIGITS: $expectedAttribute19
+                LENIENT_PARSE: $expectedAttribute20
+              }
+              text_attributes: {
+                POSITIVE_PREFIX: "$expectedTextAttribute1"
+                POSITIVE_SUFFIX: "$expectedTextAttribute2"
+                NEGATIVE_PREFIX: "$expectedTextAttribute3"
+                NEGATIVE_SUFFIX: "$expectedTextAttribute4"
+                PADDING_CHARACTER: "$expectedTextAttribute5"
+                CURRENCY_CODE: "$expectedTextAttribute6"
+                DEFAULT_RULESET: $expectedTextAttribute7
+                PUBLIC_RULESETS: $expectedTextAttribute8
+              }
+              symbols: {
+                DECIMAL_SEPARATOR_SYMBOL: "$expectedSymbol1"
+                GROUPING_SEPARATOR_SYMBOL: "$expectedSymbol2"
+                PATTERN_SEPARATOR_SYMBOL: "$expectedSymbol3"
+                PERCENT_SYMBOL: "$expectedSymbol4"
+                ZERO_DIGIT_SYMBOL: "$expectedSymbol5"
+                DIGIT_SYMBOL: "$expectedSymbol6"
+                MINUS_SIGN_SYMBOL: "$expectedSymbol7"
+                PLUS_SIGN_SYMBOL: "$expectedSymbol8"
+                CURRENCY_SYMBOL: "$expectedSymbol9"
+                INTL_CURRENCY_SYMBOL: "$expectedSymbol10"
+                MONETARY_SEPARATOR_SYMBOL: "$expectedSymbol11"
+                EXPONENTIAL_SYMBOL: "$expectedSymbol12"
+                PERMILL_SYMBOL: "$expectedSymbol13"
+                PAD_ESCAPE_SYMBOL: "$expectedSymbol14"
+                INFINITY_SYMBOL: "$expectedSymbol15"
+                NAN_SYMBOL: "$expectedSymbol16"
+                SIGNIFICANT_DIGIT_SYMBOL: "$expectedSymbol17"
+                MONETARY_GROUPING_SEPARATOR_SYMBOL: "$expectedSymbol18"
+              }
+            }
+            EOTXT;
         $this->assertDumpEquals($expected, $var);
     }
 
@@ -161,13 +161,13 @@
         $expectedRawOffset = $var->getRawOffset();
 
         $expected = <<<EOTXT
-IntlTimeZone {
-  display_name: "$expectedDisplayName"
-  id: "$expectedID"
-  raw_offset: $expectedRawOffset
-  dst_savings: $expectedDSTSavings
-}
-EOTXT;
+            IntlTimeZone {
+              display_name: "$expectedDisplayName"
+              id: "$expectedID"
+              raw_offset: $expectedRawOffset
+              dst_savings: $expectedDSTSavings
+            }
+            EOTXT;
         $this->assertDumpEquals($expected, $var);
     }
 
@@ -180,12 +180,12 @@
         $expectedRawOffset = $var->getRawOffset();
 
         $expected = <<<EOTXT
-IntlTimeZone {
-  display_name: "$expectedDisplayName"
-  id: "$expectedID"
-  raw_offset: $expectedRawOffset
-}
-EOTXT;
+            IntlTimeZone {
+              display_name: "$expectedDisplayName"
+              id: "$expectedID"
+              raw_offset: $expectedRawOffset
+            }
+            EOTXT;
         $this->assertDumpEquals($expected, $var);
     }
 
@@ -209,23 +209,23 @@
         $expectedTimeZoneDSTSavings = $expectedTimeZone->getDSTSavings();
 
         $expected = <<<EOTXT
-IntlGregorianCalendar {
-  type: "$expectedType"
-  first_day_of_week: $expectedFirstDayOfWeek
-  minimal_days_in_first_week: $expectedMinimalDaysInFirstWeek
-  repeated_wall_time_option: $expectedRepeatedWallTimeOption
-  skipped_wall_time_option: $expectedSkippedWallTimeOption
-  time: $expectedTime
-  in_daylight_time: $expectedInDaylightTime
-  is_lenient: $expectedIsLenient
-  time_zone: IntlTimeZone {
-    display_name: "$expectedTimeZoneDisplayName"
-    id: "$expectedTimeZoneID"
-    raw_offset: $expectedTimeZoneRawOffset
-    dst_savings: $expectedTimeZoneDSTSavings
-  }
-}
-EOTXT;
+            IntlGregorianCalendar {
+              type: "$expectedType"
+              first_day_of_week: $expectedFirstDayOfWeek
+              minimal_days_in_first_week: $expectedMinimalDaysInFirstWeek
+              repeated_wall_time_option: $expectedRepeatedWallTimeOption
+              skipped_wall_time_option: $expectedSkippedWallTimeOption
+              time: $expectedTime
+              in_daylight_time: $expectedInDaylightTime
+              is_lenient: $expectedIsLenient
+              time_zone: IntlTimeZone {
+                display_name: "$expectedTimeZoneDisplayName"
+                id: "$expectedTimeZoneID"
+                raw_offset: $expectedTimeZoneRawOffset
+                dst_savings: $expectedTimeZoneDSTSavings
+              }
+            }
+            EOTXT;
         $this->assertDumpEquals($expected, $var);
     }
 
@@ -263,35 +263,35 @@
         $expectedCalendarObjectTimeZoneDSTSavings = $expectedTimeZone->useDaylightTime() ? "\n      dst_savings: ".$expectedCalendarObjectTimeZone->getDSTSavings() : '';
 
         $expected = <<<EOTXT
-IntlDateFormatter {
-  locale: "$expectedLocale"
-  pattern: "$expectedPattern"
-  calendar: $expectedCalendar
-  time_zone_id: "$expectedTimeZoneId"
-  time_type: $expectedTimeType
-  date_type: $expectedDateType
-  calendar_object: IntlGregorianCalendar {
-    type: "$expectedCalendarObjectType"
-    first_day_of_week: $expectedCalendarObjectFirstDayOfWeek
-    minimal_days_in_first_week: $expectedCalendarObjectMinimalDaysInFirstWeek
-    repeated_wall_time_option: $expectedCalendarObjectRepeatedWallTimeOption
-    skipped_wall_time_option: $expectedCalendarObjectSkippedWallTimeOption
-    time: $expectedCalendarObjectTime
-    in_daylight_time: $expectedCalendarObjectInDaylightTime
-    is_lenient: $expectedCalendarObjectIsLenient
-    time_zone: IntlTimeZone {
-      display_name: "$expectedCalendarObjectTimeZoneDisplayName"
-      id: "$expectedCalendarObjectTimeZoneID"
-      raw_offset: $expectedCalendarObjectTimeZoneRawOffset$expectedCalendarObjectTimeZoneDSTSavings
-    }
-  }
-  time_zone: IntlTimeZone {
-    display_name: "$expectedTimeZoneDisplayName"
-    id: "$expectedTimeZoneID"
-    raw_offset: $expectedTimeZoneRawOffset$expectedTimeZoneDSTSavings
-  }
-}
-EOTXT;
+            IntlDateFormatter {
+              locale: "$expectedLocale"
+              pattern: "$expectedPattern"
+              calendar: $expectedCalendar
+              time_zone_id: "$expectedTimeZoneId"
+              time_type: $expectedTimeType
+              date_type: $expectedDateType
+              calendar_object: IntlGregorianCalendar {
+                type: "$expectedCalendarObjectType"
+                first_day_of_week: $expectedCalendarObjectFirstDayOfWeek
+                minimal_days_in_first_week: $expectedCalendarObjectMinimalDaysInFirstWeek
+                repeated_wall_time_option: $expectedCalendarObjectRepeatedWallTimeOption
+                skipped_wall_time_option: $expectedCalendarObjectSkippedWallTimeOption
+                time: $expectedCalendarObjectTime
+                in_daylight_time: $expectedCalendarObjectInDaylightTime
+                is_lenient: $expectedCalendarObjectIsLenient
+                time_zone: IntlTimeZone {
+                  display_name: "$expectedCalendarObjectTimeZoneDisplayName"
+                  id: "$expectedCalendarObjectTimeZoneID"
+                  raw_offset: $expectedCalendarObjectTimeZoneRawOffset$expectedCalendarObjectTimeZoneDSTSavings
+                }
+              }
+              time_zone: IntlTimeZone {
+                display_name: "$expectedTimeZoneDisplayName"
+                id: "$expectedTimeZoneID"
+                raw_offset: $expectedTimeZoneRawOffset$expectedTimeZoneDSTSavings
+              }
+            }
+            EOTXT;
         $this->assertDumpEquals($expected, $var);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/MemcachedCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/MemcachedCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/MemcachedCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/MemcachedCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -32,22 +32,22 @@
         $var->addServer('127.0.0.2', 11212);
 
         $expected = <<<EOTXT
-Memcached {
-  servers: array:2 [
-    0 => array:3 [
-      "host" => "127.0.0.1"
-      "port" => 11211
-      "type" => "TCP"
-    ]
-    1 => array:3 [
-      "host" => "127.0.0.2"
-      "port" => 11212
-      "type" => "TCP"
-    ]
-  ]
-  options: {}
-}
-EOTXT;
+            Memcached {
+              servers: array:2 [
+                0 => array:3 [
+                  "host" => "127.0.0.1"
+                  "port" => 11211
+                  "type" => "TCP"
+                ]
+                1 => array:3 [
+                  "host" => "127.0.0.2"
+                  "port" => 11212
+                  "type" => "TCP"
+                ]
+              ]
+              options: {}
+            }
+            EOTXT;
         $this->assertDumpEquals($expected, $var);
     }
 
@@ -67,26 +67,26 @@
         $var->setOption(\Memcached::OPT_DISTRIBUTION, \Memcached::DISTRIBUTION_CONSISTENT);
 
         $expected = <<<'EOTXT'
-Memcached {
-  servers: array:2 [
-    0 => array:3 [
-      "host" => "127.0.0.1"
-      "port" => 11211
-      "type" => "TCP"
-    ]
-    1 => array:3 [
-      "host" => "127.0.0.2"
-      "port" => 11212
-      "type" => "TCP"
-    ]
-  ]
-  options: {
-    OPT_COMPRESSION: false
-    OPT_PREFIX_KEY: "pre"
-    OPT_DISTRIBUTION: 1
-  }
-}
-EOTXT;
+            Memcached {
+              servers: array:2 [
+                0 => array:3 [
+                  "host" => "127.0.0.1"
+                  "port" => 11211
+                  "type" => "TCP"
+                ]
+                1 => array:3 [
+                  "host" => "127.0.0.2"
+                  "port" => 11212
+                  "type" => "TCP"
+                ]
+              ]
+              options: {
+                OPT_COMPRESSION: false
+                OPT_PREFIX_KEY: "pre"
+                OPT_DISTRIBUTION: 1
+              }
+            }
+            EOTXT;
 
         $this->assertDumpEquals($expected, $var);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/MysqliCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/MysqliCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/MysqliCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/MysqliCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,10 +29,10 @@
         $driver->report_mode = 3;
 
         $xCast = <<<EODUMP
-mysqli_driver {%A
-  +report_mode: 3
-}
-EODUMP;
+            mysqli_driver {%A
+              +report_mode: 3
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xCast, $driver);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/PdoCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/PdoCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/PdoCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/PdoCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -45,43 +45,43 @@
 
         if (\PHP_VERSION_ID >= 80215 && \PHP_VERSION_ID < 80300 || \PHP_VERSION_ID >= 80302) {
             $xDump = <<<'EODUMP'
-array:2 [
-  "\x00~\x00inTransaction" => false
-  "\x00~\x00attributes" => array:10 [
-    "CASE" => NATURAL
-    "ERRMODE" => EXCEPTION
-    "PERSISTENT" => false
-    "DRIVER_NAME" => "sqlite"
-    "ORACLE_NULLS" => NATURAL
-    "CLIENT_VERSION" => "%s"
-    "SERVER_VERSION" => "%s"
-    "STATEMENT_CLASS" => array:%d [
-      0 => "PDOStatement"%A
-    ]
-    "STRINGIFY_FETCHES" => false
-    "DEFAULT_FETCH_MODE" => BOTH
-  ]
-]
-EODUMP;
+                array:2 [
+                  "\x00~\x00inTransaction" => false
+                  "\x00~\x00attributes" => array:10 [
+                    "CASE" => NATURAL
+                    "ERRMODE" => EXCEPTION
+                    "PERSISTENT" => false
+                    "DRIVER_NAME" => "sqlite"
+                    "ORACLE_NULLS" => NATURAL
+                    "CLIENT_VERSION" => "%s"
+                    "SERVER_VERSION" => "%s"
+                    "STATEMENT_CLASS" => array:%d [
+                      0 => "PDOStatement"%A
+                    ]
+                    "STRINGIFY_FETCHES" => false
+                    "DEFAULT_FETCH_MODE" => BOTH
+                  ]
+                ]
+                EODUMP;
         } else {
             $xDump = <<<'EODUMP'
-array:2 [
-  "\x00~\x00inTransaction" => false
-  "\x00~\x00attributes" => array:9 [
-    "CASE" => NATURAL
-    "ERRMODE" => EXCEPTION
-    "PERSISTENT" => false
-    "DRIVER_NAME" => "sqlite"
-    "ORACLE_NULLS" => NATURAL
-    "CLIENT_VERSION" => "%s"
-    "SERVER_VERSION" => "%s"
-    "STATEMENT_CLASS" => array:%d [
-      0 => "PDOStatement"%A
-    ]
-    "DEFAULT_FETCH_MODE" => BOTH
-  ]
-]
-EODUMP;
+                array:2 [
+                  "\x00~\x00inTransaction" => false
+                  "\x00~\x00attributes" => array:9 [
+                    "CASE" => NATURAL
+                    "ERRMODE" => EXCEPTION
+                    "PERSISTENT" => false
+                    "DRIVER_NAME" => "sqlite"
+                    "ORACLE_NULLS" => NATURAL
+                    "CLIENT_VERSION" => "%s"
+                    "SERVER_VERSION" => "%s"
+                    "STATEMENT_CLASS" => array:%d [
+                      0 => "PDOStatement"%A
+                    ]
+                    "DEFAULT_FETCH_MODE" => BOTH
+                  ]
+                ]
+                EODUMP;
         }
 
         $this->assertDumpMatchesFormat($xDump, $cast);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/RdKafkaCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/RdKafkaCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/RdKafkaCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/RdKafkaCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,26 +44,26 @@
     public function testDumpConf()
     {
         $conf = new Conf();
-        $conf->setErrorCb(function ($kafka, $err, $reason) {});
-        $conf->setDrMsgCb(function () {});
-        $conf->setRebalanceCb(function () {});
+        $conf->setErrorCb(static function ($kafka, $err, $reason) {});
+        $conf->setDrMsgCb(static function () {});
+        $conf->setRebalanceCb(static function () {});
 
         // BC with earlier version of extension rdkafka
         foreach (['setLogCb', 'setOffsetCommitCb', 'setStatsCb', 'setConsumeCb'] as $method) {
             if (method_exists($conf, $method)) {
-                $conf->{$method}(function () {});
+                $conf->{$method}(static function () {});
             }
         }
 
         $expectedDump = <<<EODUMP
-RdKafka\Conf {
-  builtin.features: "gzip,snappy,ssl,sasl,regex,lz4,sasl_gssapi,sasl_plain,sasl_scram,plugins%S"
-  client.id: "rdkafka"
-%A
-  dr_msg_cb: "0x%x"
-%A
-}
-EODUMP;
+            RdKafka\Conf {
+              builtin.features: "gzip,snappy,ssl,sasl,regex,lz4,sasl_gssapi,sasl_plain,sasl_scram,plugins%S"
+              client.id: "rdkafka"
+            %A
+              dr_msg_cb: "0x%x"
+            %A
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $conf);
     }
@@ -78,31 +78,31 @@
         $producer->addBrokers($this->broker);
 
         $expectedDump = <<<EODUMP
-RdKafka\Producer {
-%Aout_q_len: %d
-  orig_broker_id: 1001
-  orig_broker_name: "$this->broker/1001"
-  brokers: RdKafka\Metadata\Collection {
-    +0: RdKafka\Metadata\Broker {
-      id: 1001
-      host: "%s"
-      port: %d
-    }
-  }
-  topics: RdKafka\Metadata\Collection {
-    +0: RdKafka\Metadata\Topic {
-      name: "%s"
-      partitions: RdKafka\Metadata\Collection {
-        +0: RdKafka\Metadata\Partition {
-          id: 0
-          err: 0
-          leader: 1001
-        }%A
-      }
-    }%A
-  }
-}
-EODUMP;
+            RdKafka\Producer {
+            %Aout_q_len: %d
+              orig_broker_id: 1001
+              orig_broker_name: "$this->broker/1001"
+              brokers: RdKafka\Metadata\Collection {
+                +0: RdKafka\Metadata\Broker {
+                  id: 1001
+                  host: "%s"
+                  port: %d
+                }
+              }
+              topics: RdKafka\Metadata\Collection {
+                +0: RdKafka\Metadata\Topic {
+                  name: "%s"
+                  partitions: RdKafka\Metadata\Collection {
+                    +0: RdKafka\Metadata\Partition {
+                      id: 0
+                      err: 0
+                      leader: 1001
+                    }%A
+                  }
+                }%A
+              }
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $producer);
     }
@@ -113,20 +113,20 @@
         $topicConf->set('auto.offset.reset', 'smallest');
 
         $expectedDump = <<<EODUMP
-RdKafka\TopicConf {
-  request.required.acks: "%i"
-  request.timeout.ms: "%d"
-  message.timeout.ms: "300000"
-%A
-  auto.commit.enable: "true"
-  auto.commit.interval.ms: "60000"
-  auto.offset.reset: "smallest"
-  offset.store.path: "."
-  offset.store.sync.interval.ms: "-1"
-  offset.store.method: "broker"
-  consume.callback.max.messages: "0"
-}
-EODUMP;
+            RdKafka\TopicConf {
+              request.required.acks: "%i"
+              request.timeout.ms: "%d"
+              message.timeout.ms: "300000"
+            %A
+              auto.commit.enable: "true"
+              auto.commit.interval.ms: "60000"
+              auto.offset.reset: "smallest"
+              offset.store.path: "."
+              offset.store.sync.interval.ms: "-1"
+              offset.store.method: "broker"
+              consume.callback.max.messages: "0"
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $topicConf);
     }
@@ -145,34 +145,34 @@
         $consumer->subscribe([self::TOPIC]);
 
         $expectedDump = <<<EODUMP
-RdKafka\KafkaConsumer {
-%Asubscription: array:1 [
-    0 => "test-topic"
-  ]
-  assignment: []
-  orig_broker_id: %i
-  orig_broker_name: "$this->broker/%s"
-  brokers: RdKafka\Metadata\Collection {
-    +0: RdKafka\Metadata\Broker {
-      id: 1001
-      host: "%s"
-      port: %d
-    }
-  }
-  topics: RdKafka\Metadata\Collection {
-    +0: RdKafka\Metadata\Topic {
-      name: "%s"
-      partitions: RdKafka\Metadata\Collection {
-        +0: RdKafka\Metadata\Partition {
-          id: 0
-          err: 0
-          leader: 1001
-        }%A
-      }
-    }%A
-  }
-}
-EODUMP;
+            RdKafka\KafkaConsumer {
+            %Asubscription: array:1 [
+                0 => "test-topic"
+              ]
+              assignment: []
+              orig_broker_id: %i
+              orig_broker_name: "$this->broker/%s"
+              brokers: RdKafka\Metadata\Collection {
+                +0: RdKafka\Metadata\Broker {
+                  id: 1001
+                  host: "%s"
+                  port: %d
+                }
+              }
+              topics: RdKafka\Metadata\Collection {
+                +0: RdKafka\Metadata\Topic {
+                  name: "%s"
+                  partitions: RdKafka\Metadata\Collection {
+                    +0: RdKafka\Metadata\Partition {
+                      id: 0
+                      err: 0
+                      leader: 1001
+                    }%A
+                  }
+                }%A
+              }
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $consumer);
     }
@@ -186,10 +186,10 @@
         $topic->produce(\RD_KAFKA_PARTITION_UA, 0, '{}');
 
         $expectedDump = <<<EODUMP
-RdKafka\ProducerTopic {
-  name: "test"
-}
-EODUMP;
+            RdKafka\ProducerTopic {
+              name: "test"
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $topic);
     }
@@ -207,18 +207,18 @@
         $message = $consumer->consume(0);
 
         $expectedDump = <<<EODUMP
-RdKafka\Message {
-  +err: -185
-  +topic_name: null
-  +timestamp: null
-  +partition: 0
-  +payload: null
-  +len: null
-  +key: null
-  +offset: 0%A
-  errstr: "Local: Timed out"
-}
-EODUMP;
+            RdKafka\Message {
+              +err: -185
+              +topic_name: null
+              +timestamp: null
+              +partition: 0
+              +payload: null
+              +len: null
+              +key: null
+              +offset: 0%A
+              errstr: "Local: Timed out"
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $message);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/RedisCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/RedisCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/RedisCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/RedisCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,10 +31,10 @@
         $redis = new \Redis();
 
         $xCast = <<<'EODUMP'
-Redis {
-  isConnected: false
-}
-EODUMP;
+            Redis {
+              isConnected: false
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xCast, $redis);
     }
@@ -46,7 +46,7 @@
     public function testConnected(string $class)
     {
         if (!class_exists($class)) {
-            self::markTestSkipped(sprintf('"%s" class required', $class));
+            self::markTestSkipped(\sprintf('"%s" class required', $class));
         }
 
         $redisHost = explode(':', getenv('REDIS_HOST')) + [1 => 6379];
@@ -58,26 +58,26 @@
         }
 
         $xCast = <<<EODUMP
-%a {%A
-  isConnected: true
-  host: "{$redisHost[0]}"
-  port: {$redisHost[1]}
-  auth: null
-  mode: ATOMIC
-  dbNum: 0
-  timeout: 0.0
-  lastError: null
-  persistentId: %a
-  options: {
-    TCP_KEEPALIVE: %a
-    READ_TIMEOUT: 0.0
-    COMPRESSION: NONE
-    SERIALIZER: NONE
-    PREFIX: null
-    SCAN: NORETRY
-  }
-}
-EODUMP;
+            %a {%A
+              isConnected: true
+              host: "{$redisHost[0]}"
+              port: {$redisHost[1]}
+              auth: null
+              mode: ATOMIC
+              dbNum: 0
+              timeout: 0.0
+              lastError: null
+              persistentId: %a
+              options: {
+                TCP_KEEPALIVE: %a
+                READ_TIMEOUT: 0.0
+                COMPRESSION: NONE
+                SERIALIZER: NONE
+                PREFIX: null
+                SCAN: NORETRY
+              }
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($xCast, $redis);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,69 +37,69 @@
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionClass {
-  +name: "ReflectionClass"
-%Aimplements: array:%d [
-%A]
-  constants: array:%d [
-    0 => ReflectionClassConstant {
-      +name: "IS_IMPLICIT_ABSTRACT"
-      +class: "ReflectionClass"
-      modifiers: "public"
-      value: 16
-    }
-    1 => ReflectionClassConstant {
-      +name: "IS_EXPLICIT_ABSTRACT"
-      +class: "ReflectionClass"
-      modifiers: "public"
-      value: %d
-    }
-    2 => ReflectionClassConstant {
-      +name: "IS_FINAL"
-      +class: "ReflectionClass"
-      modifiers: "public"
-      value: %d
-    }
-%A]
-  properties: array:%d [
-    "name" => ReflectionProperty {
-%A    +name: "name"
-      +class: "ReflectionClass"
-%A    modifiers: "public"
-    }
-%A]
-  methods: array:%d [
-%A
-    "__construct" => ReflectionMethod {
-      +name: "__construct"
-      +class: "ReflectionClass"
-%A    parameters: {
-        $%s: ReflectionParameter {
-%A         position: 0
-%A
-}
-EOTXT
-            , $var
+                ReflectionClass {
+                  +name: "ReflectionClass"
+                %Aimplements: array:%d [
+                %A]
+                  constants: array:%d [
+                    0 => ReflectionClassConstant {
+                      +name: "IS_IMPLICIT_ABSTRACT"
+                      +class: "ReflectionClass"
+                      modifiers: "public"
+                      value: 16
+                    }
+                    1 => ReflectionClassConstant {
+                      +name: "IS_EXPLICIT_ABSTRACT"
+                      +class: "ReflectionClass"
+                      modifiers: "public"
+                      value: %d
+                    }
+                    2 => ReflectionClassConstant {
+                      +name: "IS_FINAL"
+                      +class: "ReflectionClass"
+                      modifiers: "public"
+                      value: %d
+                    }
+                %A]
+                  properties: array:%d [
+                    "name" => ReflectionProperty {
+                %A    +name: "name"
+                      +class: "ReflectionClass"
+                %A    modifiers: "public"
+                    }
+                %A]
+                  methods: array:%d [
+                %A
+                    "__construct" => ReflectionMethod {
+                      +name: "__construct"
+                      +class: "ReflectionClass"
+                %A    parameters: {
+                        $%s: ReflectionParameter {
+                %A         position: 0
+                %A
+                }
+                EOTXT,
+            $var
         );
     }
 
     public function testClosureCaster()
     {
         $a = $b = 123;
-        $var = function ($x) use ($a, &$b) {};
+        $var = static function ($x) use ($a, &$b) {};
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-Closure($x) {
-%Ause: {
-    $a: 123
-    $b: & 123
-  }
-  file: "%sReflectionCasterTest.php"
-  line: "%s"
-}
-EOTXT
-            , $var
+                Closure($x) {
+                %Ause: {
+                    $a: 123
+                    $b: & 123
+                  }
+                  file: "%sReflectionCasterTest.php"
+                  line: "%s"
+                }
+                EOTXT,
+            $var
         );
     }
 
@@ -112,28 +112,28 @@
 
         $this->assertDumpMatchesFormat(
             <<<EOTXT
-array:2 [
-  0 => Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest::testFromCallableClosureCaster() {
-    this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …}
-    file: "%sReflectionCasterTest.php"
-    line: "%d to %d"
-  }
-  1 => Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest::stub(): void {
-    returnType: "void"
-    file: "%sReflectionCasterTest.php"
-    line: "%d to %d"
-  }
-]
-EOTXT
-            , $var
+                array:2 [
+                  0 => Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest::testFromCallableClosureCaster() {
+                    this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …}
+                    file: "%sReflectionCasterTest.php"
+                    line: "%d to %d"
+                  }
+                  1 => Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest::stub(): void {
+                    returnType: "void"
+                    file: "%sReflectionCasterTest.php"
+                    line: "%d to %d"
+                  }
+                ]
+                EOTXT,
+            $var
         );
     }
 
     public function testClosureCasterExcludingVerbosity()
     {
-        $var = function &($a = 5) {};
+        $var = static function &($a = 5) {};
 
-        $this->assertDumpEquals('Closure&($a = 5) { …5}', $var, Caster::EXCLUDE_VERBOSE);
+        $this->assertDumpEquals('Closure&($a = 5) { …4}', $var, Caster::EXCLUDE_VERBOSE);
     }
 
     public function testReflectionParameter()
@@ -142,101 +142,101 @@
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionParameter {
-  +name: "arg1"
-  position: 0
-  allowsNull: true
-  typeHint: "Symfony\Component\VarDumper\Tests\Fixtures\NotLoadableClass"
-}
-EOTXT
-            , $var
+                ReflectionParameter {
+                  +name: "arg1"
+                  position: 0
+                  allowsNull: true
+                  typeHint: "Symfony\Component\VarDumper\Tests\Fixtures\NotLoadableClass"
+                }
+                EOTXT,
+            $var
         );
     }
 
     public function testReflectionParameterScalar()
     {
-        $f = function (int $a) {};
+        $f = static function (int $a) {};
         $var = new \ReflectionParameter($f, 0);
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionParameter {
-  +name: "a"
-  position: 0
-  typeHint: "int"
-}
-EOTXT
-            , $var
+                ReflectionParameter {
+                  +name: "a"
+                  position: 0
+                  typeHint: "int"
+                }
+                EOTXT,
+            $var
         );
     }
 
     public function testReflectionParameterMixed()
     {
-        $f = function (mixed $a) {};
+        $f = static function (mixed $a) {};
         $var = new \ReflectionParameter($f, 0);
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionParameter {
-  +name: "a"
-  position: 0
-  allowsNull: true
-  typeHint: "mixed"
-}
-EOTXT
-            , $var
+                ReflectionParameter {
+                  +name: "a"
+                  position: 0
+                  allowsNull: true
+                  typeHint: "mixed"
+                }
+                EOTXT,
+            $var
         );
     }
 
     public function testReflectionParameterUnion()
     {
-        $f = function (int|float $a) {};
+        $f = static function (int|float $a) {};
         $var = new \ReflectionParameter($f, 0);
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionParameter {
-  +name: "a"
-  position: 0
-  typeHint: "int|float"
-}
-EOTXT
-            , $var
+                ReflectionParameter {
+                  +name: "a"
+                  position: 0
+                  typeHint: "int|float"
+                }
+                EOTXT,
+            $var
         );
     }
 
     public function testReflectionParameterNullableUnion()
     {
-        $f = function (int|float|null $a) {};
+        $f = static function (int|float|null $a) {};
         $var = new \ReflectionParameter($f, 0);
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionParameter {
-  +name: "a"
-  position: 0
-  allowsNull: true
-  typeHint: "int|float|null"
-}
-EOTXT
-            , $var
+                ReflectionParameter {
+                  +name: "a"
+                  position: 0
+                  allowsNull: true
+                  typeHint: "int|float|null"
+                }
+                EOTXT,
+            $var
         );
     }
 
     public function testReflectionParameterIntersection()
     {
-        $f = function (\Traversable&\Countable $a) {};
+        $f = static function (\Traversable&\Countable $a) {};
         $var = new \ReflectionParameter($f, 0);
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionParameter {
-  +name: "a"
-  position: 0
-  typeHint: "Traversable&Countable"
-}
-EOTXT
-            , $var
+                ReflectionParameter {
+                  +name: "a"
+                  position: 0
+                  typeHint: "Traversable&Countable"
+                }
+                EOTXT,
+            $var
         );
     }
 
@@ -245,13 +245,13 @@
         $var = new \ReflectionProperty(ReflectionNamedTypeFixture::class, 'a');
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionProperty {
-  +name: "a"
-  +class: "Symfony\Component\VarDumper\Tests\Fixtures\ReflectionNamedTypeFixture"
-  modifiers: "public"
-}
-EOTXT
-            , $var
+                ReflectionProperty {
+                  +name: "a"
+                  +class: "Symfony\Component\VarDumper\Tests\Fixtures\ReflectionNamedTypeFixture"
+                  modifiers: "public"
+                }
+                EOTXT,
+            $var
         );
     }
 
@@ -260,13 +260,13 @@
         $var = (new \ReflectionProperty(ReflectionNamedTypeFixture::class, 'a'))->getType();
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionNamedType {
-  name: "int"
-  allowsNull: false
-  isBuiltin: true
-}
-EOTXT
-            , $var
+                ReflectionNamedType {
+                  name: "int"
+                  allowsNull: false
+                  isBuiltin: true
+                }
+                EOTXT,
+            $var
         );
     }
 
@@ -275,23 +275,23 @@
         $var = (new \ReflectionProperty(ReflectionUnionTypeFixture::class, 'a'))->getType();
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionUnionType {
-  allowsNull: false
-  types: array:2 [
-    0 => ReflectionNamedType {
-      name: "string"
-      allowsNull: false
-      isBuiltin: true
-    }
-    1 => ReflectionNamedType {
-      name: "int"
-      allowsNull: false
-      isBuiltin: true
-    }
-  ]
-}
-EOTXT
-            , $var
+                ReflectionUnionType {
+                  allowsNull: false
+                  types: array:2 [
+                    0 => ReflectionNamedType {
+                      name: "string"
+                      allowsNull: false
+                      isBuiltin: true
+                    }
+                    1 => ReflectionNamedType {
+                      name: "int"
+                      allowsNull: false
+                      isBuiltin: true
+                    }
+                  ]
+                }
+                EOTXT,
+            $var
         );
     }
 
@@ -300,23 +300,23 @@
         $var = (new \ReflectionProperty(ReflectionIntersectionTypeFixture::class, 'a'))->getType();
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionIntersectionType {
-  allowsNull: false
-  types: array:2 [
-    0 => ReflectionNamedType {
-      name: "Traversable"
-      allowsNull: false
-      isBuiltin: false
-    }
-    1 => ReflectionNamedType {
-      name: "Countable"
-      allowsNull: false
-      isBuiltin: false
-    }
-  ]
-}
-EOTXT
-            , $var
+                ReflectionIntersectionType {
+                  allowsNull: false
+                  types: array:2 [
+                    0 => ReflectionNamedType {
+                      name: "Traversable"
+                      allowsNull: false
+                      isBuiltin: false
+                    }
+                    1 => ReflectionNamedType {
+                      name: "Countable"
+                      allowsNull: false
+                      isBuiltin: false
+                    }
+                  ]
+                }
+                EOTXT,
+            $var
         );
     }
 
@@ -328,33 +328,33 @@
         $var = (new \ReflectionProperty(ReflectionUnionTypeWithIntersectionFixture::class, 'a'))->getType();
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-ReflectionUnionType {
-  allowsNull: true
-  types: array:2 [
-    0 => ReflectionIntersectionType {
-      allowsNull: false
-      types: array:2 [
-        0 => ReflectionNamedType {
-          name: "Traversable"
-          allowsNull: false
-          isBuiltin: false
-        }
-        1 => ReflectionNamedType {
-          name: "Countable"
-          allowsNull: false
-          isBuiltin: false
-        }
-      ]
-    }
-    1 => ReflectionNamedType {
-      name: "null"
-      allowsNull: true
-      isBuiltin: true
-    }
-  ]
-}
-EOTXT
-            , $var
+                ReflectionUnionType {
+                  allowsNull: true
+                  types: array:2 [
+                    0 => ReflectionIntersectionType {
+                      allowsNull: false
+                      types: array:2 [
+                        0 => ReflectionNamedType {
+                          name: "Traversable"
+                          allowsNull: false
+                          isBuiltin: false
+                        }
+                        1 => ReflectionNamedType {
+                          name: "Countable"
+                          allowsNull: false
+                          isBuiltin: false
+                        }
+                      ]
+                    }
+                    1 => ReflectionNamedType {
+                      name: "null"
+                      allowsNull: true
+                      isBuiltin: true
+                    }
+                  ]
+                }
+                EOTXT,
+            $var
         );
     }
 
@@ -363,47 +363,45 @@
         $var = new ExtendsReflectionTypeFixture();
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-Symfony\Component\VarDumper\Tests\Fixtures\ExtendsReflectionTypeFixture {
-  allowsNull: false
-}
-EOTXT
-            , $var
+                Symfony\Component\VarDumper\Tests\Fixtures\ExtendsReflectionTypeFixture {
+                  allowsNull: false
+                }
+                EOTXT,
+            $var
         );
     }
 
     public function testReturnType()
     {
-        $f = function (): int {};
+        $f = static function (): int {};
 
         $this->assertDumpMatchesFormat(
             <<<EOTXT
-Closure(): int {
-  returnType: "int"
-  class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
-  this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …}
-  file: "%s"
-  line: "%s"
-}
-EOTXT
-            , $f
+                Closure(): int {
+                  returnType: "int"
+                  class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
+                  file: "%s"
+                  line: "%s"
+                }
+                EOTXT,
+            $f
         );
     }
 
     public function testMixedReturnType()
     {
-        $f = function (): mixed {};
+        $f = static function (): mixed {};
 
         $this->assertDumpMatchesFormat(
             <<<EOTXT
-Closure(): mixed {
-  returnType: "mixed"
-  class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
-  this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …}
-  file: "%s"
-  line: "%s"
-}
-EOTXT
-            , $f
+                Closure(): mixed {
+                  returnType: "mixed"
+                  class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
+                  file: "%s"
+                  line: "%s"
+                }
+                EOTXT,
+            $f
         );
     }
 
@@ -416,50 +414,48 @@
 
         $this->assertDumpMatchesFormat(
             <<<EOTXT
-{$className}::foo(null \$bar): null {
-  returnType: "null"
-  this: {$className} { …}
-  file: "%s"
-  line: "%s"
-}
-EOTXT
-            , (new Php82NullStandaloneReturnType())->foo(...)
+                {$className}::foo(null \$bar): null {
+                  returnType: "null"
+                  this: {$className} { …}
+                  file: "%s"
+                  line: "%s"
+                }
+                EOTXT,
+            (new Php82NullStandaloneReturnType())->foo(...)
         );
     }
 
     public function testUnionReturnType()
     {
-        $f = function (): int|float {};
+        $f = static function (): int|float {};
 
         $this->assertDumpMatchesFormat(
             <<<EOTXT
-Closure(): int|float {
-  returnType: "int|float"
-  class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
-  this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …}
-  file: "%s"
-  line: "%s"
-}
-EOTXT
-            , $f
+                Closure(): int|float {
+                  returnType: "int|float"
+                  class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
+                  file: "%s"
+                  line: "%s"
+                }
+                EOTXT,
+            $f
         );
     }
 
     public function testNullableUnionReturnType()
     {
-        $f = function (): int|float|null {};
+        $f = static function (): int|float|null {};
 
         $this->assertDumpMatchesFormat(
             <<<EOTXT
-Closure(): int|float|null {
-  returnType: "int|float|null"
-  class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
-  this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …}
-  file: "%s"
-  line: "%s"
-}
-EOTXT
-            , $f
+                Closure(): int|float|null {
+                  returnType: "int|float|null"
+                  class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
+                  file: "%s"
+                  line: "%s"
+                }
+                EOTXT,
+            $f
         );
     }
 
@@ -476,19 +472,19 @@
         $generator = $generator->baz();
 
         $expectedDump = <<<'EODUMP'
-Generator {
-  this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
-  %s: {
-    %sGeneratorDemo.php:14 {
-      Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz()
-      › {
-      ›     yield from bar();
-      › }
-    }
-%A}
-  closed: false
-}
-EODUMP;
+            Generator {
+              this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
+              %s: {
+                %sGeneratorDemo.php:14 {
+                  Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz()
+                  › {
+                  ›     yield from bar();
+                  › }
+                }
+            %A}
+              closed: false
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $generator);
 
@@ -497,32 +493,32 @@
         }
 
         $expectedDump = <<<'EODUMP'
-array:2 [
-  0 => ReflectionGenerator {
-    this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
-    %s: {
-      %s%eTests%eFixtures%eGeneratorDemo.php:%d {
-        Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
-%A      ›     yield 1;
-%A    }
-      %s%eTests%eFixtures%eGeneratorDemo.php:20 { …}
-      %s%eTests%eFixtures%eGeneratorDemo.php:14 { …}
-%A  }
-    closed: false
-  }
-  1 => Generator {
-    %s: {
-      %s%eTests%eFixtures%eGeneratorDemo.php:%d {
-        Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
-        ›     yield 1;
-        › }
-        › 
-      }
-%A  }
-    closed: false
-  }
-]
-EODUMP;
+            array:2 [
+              0 => ReflectionGenerator {
+                this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
+                %s: {
+                  %s%eTests%eFixtures%eGeneratorDemo.php:%d {
+                    Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
+            %A      ›     yield 1;
+            %A    }
+                  %s%eTests%eFixtures%eGeneratorDemo.php:20 { …}
+                  %s%eTests%eFixtures%eGeneratorDemo.php:14 { …}
+            %A  }
+                closed: false
+              }
+              1 => Generator {
+                %s: {
+                  %s%eTests%eFixtures%eGeneratorDemo.php:%d {
+                    Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
+                    ›     yield 1;
+                    › }
+                    › 
+                  }
+            %A  }
+                closed: false
+              }
+            ]
+            EODUMP;
 
         $r = new \ReflectionGenerator($generator);
         $this->assertDumpMatchesFormat($expectedDump, [$r, $r->getExecutingGenerator()]);
@@ -531,10 +527,10 @@
         }
 
         $expectedDump = <<<'EODUMP'
-Generator {
-  closed: true
-}
-EODUMP;
+            Generator {
+              closed: true
+            }
+            EODUMP;
         $this->assertDumpMatchesFormat($expectedDump, $generator);
     }
 
@@ -551,21 +547,21 @@
         $generator = $generator->baz();
 
         $expectedDump = <<<'EODUMP'
-Generator {
-  function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz"
-  this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
-  %s: {
-    %sGeneratorDemo.php:12 {
-      Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz()
-      › 
-      › public function baz()
-      › {
-    }
-    Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz() {}
-%A}
-  closed: false
-}
-EODUMP;
+            Generator {
+              function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz"
+              this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
+              %s: {
+                %sGeneratorDemo.php:12 {
+                  Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz()
+                  › 
+                  › public function baz()
+                  › {
+                }
+                Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz() {}
+            %A}
+              closed: false
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $generator);
 
@@ -574,35 +570,35 @@
         }
 
         $expectedDump = <<<'EODUMP'
-array:2 [
-  0 => ReflectionGenerator {
-    this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
-    %s: {
-      %s%eTests%eFixtures%eGeneratorDemo.php:%d {
-        Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
-        › {
-        ›     yield 1;
-        › }
-%A    }
-      %s%eTests%eFixtures%eGeneratorDemo.php:20 { …}
-      %s%eTests%eFixtures%eGeneratorDemo.php:14 { …}
-%A  }
-    closed: false
-  }
-  1 => Generator {
-    function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo"
-    %s: {
-      %s%eTests%eFixtures%eGeneratorDemo.php:%d {
-        Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
-        › {
-        ›     yield 1;
-        › }
-      }
-%A  }
-    closed: false
-  }
-]
-EODUMP;
+            array:2 [
+              0 => ReflectionGenerator {
+                this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
+                %s: {
+                  %s%eTests%eFixtures%eGeneratorDemo.php:%d {
+                    Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
+                    › {
+                    ›     yield 1;
+                    › }
+            %A    }
+                  %s%eTests%eFixtures%eGeneratorDemo.php:20 { …}
+                  %s%eTests%eFixtures%eGeneratorDemo.php:14 { …}
+            %A  }
+                closed: false
+              }
+              1 => Generator {
+                function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo"
+                %s: {
+                  %s%eTests%eFixtures%eGeneratorDemo.php:%d {
+                    Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
+                    › {
+                    ›     yield 1;
+                    › }
+                  }
+            %A  }
+                closed: false
+              }
+            ]
+            EODUMP;
 
         $r = new \ReflectionGenerator($generator);
         $this->assertDumpMatchesFormat($expectedDump, [$r, $r->getExecutingGenerator()]);
@@ -611,28 +607,27 @@
         }
 
         $expectedDump = <<<'EODUMP'
-Generator {
-  function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz"
-  closed: true
-}
-EODUMP;
+            Generator {
+              function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz"
+              closed: true
+            }
+            EODUMP;
         $this->assertDumpMatchesFormat($expectedDump, $generator);
     }
 
     public function testNewInInitializer()
     {
-        $f = function ($a = new \stdClass()) {};
+        $f = static function ($a = new \stdClass()) {};
 
         $this->assertDumpMatchesFormat(
             <<<EOTXT
-Closure(\$a = new stdClass) {
-  class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
-  this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …}
-  file: "%s"
-  line: "%s"
-}
-EOTXT
-            , $f
+                Closure(\$a = new stdClass) {
+                  class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
+                  file: "%s"
+                  line: "%s"
+                }
+                EOTXT,
+            $f
         );
     }
 
@@ -642,18 +637,19 @@
         $dumpedAttributeNameProperty = (\PHP_VERSION_ID < 80400 ? '' : '+').'name';
 
         $this->assertDumpMatchesFormat(<<<EOTXT
-ReflectionClass {
-  +name: "Symfony\Component\VarDumper\Tests\Fixtures\LotsOfAttributes"
-%A  attributes: array:1 [
-    0 => ReflectionAttribute {
-      $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\MyAttribute"
-      arguments: []
-    }
-  ]
-%A
-}
-EOTXT
-            , $var);
+            ReflectionClass {
+              +name: "Symfony\Component\VarDumper\Tests\Fixtures\LotsOfAttributes"
+            %A  attributes: array:1 [
+                0 => ReflectionAttribute {
+                  $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\MyAttribute"
+                  arguments: []
+                }
+              ]
+            %A
+            }
+            EOTXT,
+            $var
+        );
     }
 
     public function testReflectionMethodWithAttribute()
@@ -662,21 +658,22 @@
         $dumpedAttributeNameProperty = (\PHP_VERSION_ID < 80400 ? '' : '+').'name';
 
         $this->assertDumpMatchesFormat(<<<EOTXT
-ReflectionMethod {
-  +name: "someMethod"
-  +class: "Symfony\Component\VarDumper\Tests\Fixtures\LotsOfAttributes"
-%A  attributes: array:1 [
-    0 => ReflectionAttribute {
-      $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\MyAttribute"
-      arguments: array:1 [
-        0 => "two"
-      ]
-    }
-  ]
-%A
-}
-EOTXT
-            , $var);
+            ReflectionMethod {
+              +name: "someMethod"
+              +class: "Symfony\Component\VarDumper\Tests\Fixtures\LotsOfAttributes"
+            %A  attributes: array:1 [
+                0 => ReflectionAttribute {
+                  $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\MyAttribute"
+                  arguments: array:1 [
+                    0 => "two"
+                  ]
+                }
+              ]
+            %A
+            }
+            EOTXT,
+            $var
+        );
     }
 
     public function testReflectionPropertyWithAttribute()
@@ -685,21 +682,22 @@
         $dumpedAttributeNameProperty = (\PHP_VERSION_ID < 80400 ? '' : '+').'name';
 
         $this->assertDumpMatchesFormat(<<<EOTXT
-ReflectionProperty {
-  +name: "someProperty"
-  +class: "Symfony\Component\VarDumper\Tests\Fixtures\LotsOfAttributes"
-%A  attributes: array:1 [
-    0 => ReflectionAttribute {
-      $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\MyAttribute"
-      arguments: array:2 [
-        0 => "one"
-        "extra" => "hello"
-      ]
-    }
-  ]
-}
-EOTXT
-            , $var);
+            ReflectionProperty {
+              +name: "someProperty"
+              +class: "Symfony\Component\VarDumper\Tests\Fixtures\LotsOfAttributes"
+            %A  attributes: array:1 [
+                0 => ReflectionAttribute {
+                  $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\MyAttribute"
+                  arguments: array:2 [
+                    0 => "one"
+                    "extra" => "hello"
+                  ]
+                }
+              ]
+            }
+            EOTXT,
+            $var
+        );
     }
 
     public function testReflectionClassConstantWithAttribute()
@@ -708,28 +706,29 @@
         $dumpedAttributeNameProperty = (\PHP_VERSION_ID < 80400 ? '' : '+').'name';
 
         $this->assertDumpMatchesFormat(<<<EOTXT
-ReflectionClassConstant {
-  +name: "SOME_CONSTANT"
-  +class: "Symfony\Component\VarDumper\Tests\Fixtures\LotsOfAttributes"
-  modifiers: "public"
-  value: "some value"
-  attributes: array:2 [
-    0 => ReflectionAttribute {
-      $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\RepeatableAttribute"
-      arguments: array:1 [
-        0 => "one"
-      ]
-    }
-    1 => ReflectionAttribute {
-      $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\RepeatableAttribute"
-      arguments: array:1 [
-        0 => "two"
-      ]
-    }
-  ]
-}
-EOTXT
-            , $var);
+            ReflectionClassConstant {
+              +name: "SOME_CONSTANT"
+              +class: "Symfony\Component\VarDumper\Tests\Fixtures\LotsOfAttributes"
+              modifiers: "public"
+              value: "some value"
+              attributes: array:2 [
+                0 => ReflectionAttribute {
+                  $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\RepeatableAttribute"
+                  arguments: array:1 [
+                    0 => "one"
+                  ]
+                }
+                1 => ReflectionAttribute {
+                  $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\RepeatableAttribute"
+                  arguments: array:1 [
+                    0 => "two"
+                  ]
+                }
+              ]
+            }
+            EOTXT,
+            $var
+        );
     }
 
     public function testReflectionParameterWithAttribute()
@@ -738,21 +737,22 @@
         $dumpedAttributeNameProperty = (\PHP_VERSION_ID < 80400 ? '' : '+').'name';
 
         $this->assertDumpMatchesFormat(<<<EOTXT
-ReflectionParameter {
-  +name: "someParameter"
-  position: 0
-  attributes: array:1 [
-    0 => ReflectionAttribute {
-      $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\MyAttribute"
-      arguments: array:1 [
-        0 => "three"
-      ]
-    }
-  ]
-%A
-}
-EOTXT
-            , $var);
+            ReflectionParameter {
+              +name: "someParameter"
+              position: 0
+              attributes: array:1 [
+                0 => ReflectionAttribute {
+                  $dumpedAttributeNameProperty: "Symfony\Component\VarDumper\Tests\Fixtures\MyAttribute"
+                  arguments: array:1 [
+                    0 => "three"
+                  ]
+                }
+              ]
+            %A
+            }
+            EOTXT,
+            $var
+        );
     }
 
     public static function stub(): void
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/SplCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/SplCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/SplCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/SplCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,41 +25,41 @@
     {
         return [
             [__FILE__, <<<'EOTXT'
-SplFileInfo {
-%Apath: "%sCaster"
-  filename: "SplCasterTest.php"
-  basename: "SplCasterTest.php"
-  pathname: "%sSplCasterTest.php"
-  extension: "php"
-  realPath: "%sSplCasterTest.php"
-  aTime: %s-%s-%d %d:%d:%d
-  mTime: %s-%s-%d %d:%d:%d
-  cTime: %s-%s-%d %d:%d:%d
-  inode: %i
-  size: %d
-  perms: 0%d
-  owner: %d
-  group: %d
-  type: "file"
-  writable: true
-  readable: true
-  executable: false
-  file: true
-  dir: false
-  link: false
-%A}
-EOTXT
+                SplFileInfo {
+                %Apath: "%sCaster"
+                  filename: "SplCasterTest.php"
+                  basename: "SplCasterTest.php"
+                  pathname: "%sSplCasterTest.php"
+                  extension: "php"
+                  realPath: "%sSplCasterTest.php"
+                  aTime: %s-%s-%d %d:%d:%d
+                  mTime: %s-%s-%d %d:%d:%d
+                  cTime: %s-%s-%d %d:%d:%d
+                  inode: %i
+                  size: %d
+                  perms: 0%d
+                  owner: %d
+                  group: %d
+                  type: "file"
+                  writable: true
+                  readable: true
+                  executable: false
+                  file: true
+                  dir: false
+                  link: false
+                %A}
+                EOTXT
             ],
             ['http://example.com/about', <<<'EOTXT'
-SplFileInfo {
-%Apath: "http://example.com"
-  filename: "about"
-  basename: "about"
-  pathname: "http://example.com/about"
-  extension: ""
-  realPath: false
-%A}
-EOTXT
+                SplFileInfo {
+                %Apath: "http://example.com"
+                  filename: "about"
+                  basename: "about"
+                  pathname: "http://example.com/about"
+                  extension: ""
+                  realPath: false
+                %A}
+                EOTXT
             ],
         ];
     }
@@ -75,47 +75,47 @@
         $var = new \SplFileObject(__FILE__);
         $var->setFlags(\SplFileObject::DROP_NEW_LINE | \SplFileObject::SKIP_EMPTY);
         $dump = <<<'EOTXT'
-SplFileObject {
-%Apath: "%sCaster"
-  filename: "SplCasterTest.php"
-  basename: "SplCasterTest.php"
-  pathname: "%sSplCasterTest.php"
-  extension: "php"
-  realPath: "%sSplCasterTest.php"
-  aTime: %s-%s-%d %d:%d:%d
-  mTime: %s-%s-%d %d:%d:%d
-  cTime: %s-%s-%d %d:%d:%d
-  inode: %i
-  size: %d
-  perms: 0%d
-  owner: %d
-  group: %d
-  type: "file"
-  writable: true
-  readable: true
-  executable: false
-  file: true
-  dir: false
-  link: false
-%AcsvControl: array:%d [
-    0 => ","
-    1 => """
-%A]
-  flags: DROP_NEW_LINE|SKIP_EMPTY
-  maxLineLen: 0
-  fstat: array:26 [
-    "dev" => %i
-    "ino" => %i
-    "nlink" => %d
-    "rdev" => 0
-    "blksize" => %i
-    "blocks" => %i
-     …20
-  ]
-  eof: false
-  key: 0
-}
-EOTXT;
+            SplFileObject {
+            %Apath: "%sCaster"
+              filename: "SplCasterTest.php"
+              basename: "SplCasterTest.php"
+              pathname: "%sSplCasterTest.php"
+              extension: "php"
+              realPath: "%sSplCasterTest.php"
+              aTime: %s-%s-%d %d:%d:%d
+              mTime: %s-%s-%d %d:%d:%d
+              cTime: %s-%s-%d %d:%d:%d
+              inode: %i
+              size: %d
+              perms: 0%d
+              owner: %d
+              group: %d
+              type: "file"
+              writable: true
+              readable: true
+              executable: false
+              file: true
+              dir: false
+              link: false
+            %AcsvControl: array:%d [
+                0 => ","
+                1 => """
+            %A]
+              flags: DROP_NEW_LINE|SKIP_EMPTY
+              maxLineLen: 0
+              fstat: array:26 [
+                "dev" => %i
+                "ino" => %i
+                "nlink" => %d
+                "rdev" => 0
+                "blksize" => %i
+                "blocks" => %i
+                 …20
+              ]
+              eof: false
+              key: 0
+            }
+            EOTXT;
         $this->assertDumpMatchesFormat($dump, $var);
     }
 
@@ -127,11 +127,11 @@
         $var = new \SplDoublyLinkedList();
         $var->setIteratorMode($modeValue);
         $dump = <<<EOTXT
-SplDoublyLinkedList {
-%Amode: $modeDump
-  dllist: []
-}
-EOTXT;
+            SplDoublyLinkedList {
+            %Amode: $modeDump
+              dllist: []
+            }
+            EOTXT;
         $this->assertDumpMatchesFormat($dump, $var);
     }
 
@@ -148,7 +148,7 @@
     public function testCastObjectStorageIsntModified()
     {
         $var = new \SplObjectStorage();
-        $var->attach(new \stdClass());
+        $var[new \stdClass()] = null;
         $var->rewind();
         $current = $var->current();
 
@@ -159,7 +159,7 @@
     public function testCastObjectStorageDumpsInfo()
     {
         $var = new \SplObjectStorage();
-        $var->attach(new \stdClass(), new \DateTimeImmutable());
+        $var[new \stdClass()] = new \DateTimeImmutable();
 
         $this->assertDumpMatchesFormat('%ADateTimeImmutable%A', $var);
     }
@@ -172,16 +172,16 @@
         $var->foo = 234;
 
         $expected = <<<EOTXT
-ArrayObject@anonymous {
-  +"foo": 234
-  storage: array:1 [
-    0 => 123
-  ]
-  flag::STD_PROP_LIST: false
-  flag::ARRAY_AS_PROPS: false
-  iteratorClass: "ArrayIterator"
-}
-EOTXT;
+            ArrayObject@anonymous {
+              +"foo": 234
+              storage: array:1 [
+                0 => 123
+              ]
+              flag::STD_PROP_LIST: false
+              flag::ARRAY_AS_PROPS: false
+              iteratorClass: "ArrayIterator"
+            }
+            EOTXT;
         $this->assertDumpEquals($expected, $var);
     }
 
@@ -190,15 +190,15 @@
         $var = new MyArrayIterator([234]);
 
         $expected = <<<EOTXT
-Symfony\Component\VarDumper\Tests\Caster\MyArrayIterator {
-  -foo: 123
-  storage: array:1 [
-    0 => 234
-  ]
-  flag::STD_PROP_LIST: false
-  flag::ARRAY_AS_PROPS: false
-}
-EOTXT;
+            Symfony\Component\VarDumper\Tests\Caster\MyArrayIterator {
+              -foo: 123
+              storage: array:1 [
+                0 => 234
+              ]
+              flag::STD_PROP_LIST: false
+              flag::ARRAY_AS_PROPS: false
+            }
+            EOTXT;
         $this->assertDumpEquals($expected, $var);
     }
 
@@ -207,10 +207,10 @@
         $var = new BadSplFileInfo();
 
         $expected = <<<EOTXT
-Symfony\Component\VarDumper\Tests\Caster\BadSplFileInfo {
-  ⚠: "The parent constructor was not called: the object is in an invalid state"
-}
-EOTXT;
+            Symfony\Component\VarDumper\Tests\Caster\BadSplFileInfo {
+              ⚠: "The parent constructor was not called: the object is in an invalid state"
+            }
+            EOTXT;
         $this->assertDumpEquals($expected, $var);
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/StubCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/StubCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/StubCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/StubCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,12 +30,12 @@
         $args = [new ArgsStub([123], __FUNCTION__, __CLASS__)];
 
         $expectedDump = <<<'EODUMP'
-array:1 [
-  0 => {
-    $foo: 123
-  }
-]
-EODUMP;
+            array:1 [
+              0 => {
+                $foo: 123
+              }
+            ]
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $args);
     }
@@ -45,15 +45,15 @@
         $args = [new ArgsStub([123, 456], __FUNCTION__, __CLASS__)];
 
         $expectedDump = <<<'EODUMP'
-array:1 [
-  0 => {
-    $foo: 123
-    ...: {
-      456
-    }
-  }
-]
-EODUMP;
+            array:1 [
+              0 => {
+                $foo: 123
+                ...: {
+                  456
+                }
+              }
+            ]
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $args);
     }
@@ -63,12 +63,12 @@
         $args = [new ArgsStub([123], __FUNCTION__, __CLASS__)];
 
         $expectedDump = <<<'EODUMP'
-array:1 [
-  0 => {
-    123
-  }
-]
-EODUMP;
+            array:1 [
+              0 => {
+                123
+              }
+            ]
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $args);
     }
@@ -78,12 +78,12 @@
         $args = [new ArgsStub([123], '{closure}', null)];
 
         $expectedDump = <<<'EODUMP'
-array:1 [
-  0 => {
-    123
-  }
-]
-EODUMP;
+            array:1 [
+              0 => {
+                123
+              }
+            ]
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $args);
     }
@@ -93,10 +93,10 @@
         $args = [new ScalarStub('🐛')];
 
         $expectedDump = <<<'EODUMP'
-array:1 [
-  0 => 🐛
-]
-EODUMP;
+            array:1 [
+              0 => 🐛
+            ]
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $args);
     }
@@ -113,11 +113,11 @@
         $dump = $dumper->dump($cloner->cloneVar($var), true);
 
         $expectedDump = <<<'EODUMP'
-<foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
-  <span class=sf-dump-index>0</span> => "<a href="%sStubCasterTest.php:0" rel="noopener noreferrer"><span class=sf-dump-str title="55 characters">Symfony\Component\VarDumper\Tests\Caster\StubCasterTest</span></a>"
-</samp>]
-</bar>
-EODUMP;
+            <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
+              <span class=sf-dump-index>0</span> => "<a href="%sStubCasterTest.php:0" rel="noopener noreferrer"><span class=sf-dump-str title="55 characters">Symfony\Component\VarDumper\Tests\Caster\StubCasterTest</span></a>"
+            </samp>]
+            </bar>
+            EODUMP;
 
         $this->assertStringMatchesFormat($expectedDump, $dump);
     }
@@ -134,11 +134,11 @@
         $dump = $dumper->dump($cloner->cloneVar($var), true);
 
         $expectedDump = <<<'EODUMP'
-<foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
-  <span class=sf-dump-index>0</span> => "<a href="http://example.com" target="_blank" rel="noopener noreferrer"><span class=sf-dump-str title="11 characters">example.com</span></a>"
-</samp>]
-</bar>
-EODUMP;
+            <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
+              <span class=sf-dump-index>0</span> => "<a href="http://example.com" target="_blank" rel="noopener noreferrer"><span class=sf-dump-str title="11 characters">example.com</span></a>"
+            </samp>]
+            </bar>
+            EODUMP;
 
         $this->assertStringMatchesFormat($expectedDump, $dump);
     }
@@ -154,11 +154,11 @@
         $dump = $dumper->dump($cloner->cloneVar($var), true, ['fileLinkFormat' => '%f:%l']);
 
         $expectedDump = <<<'EODUMP'
-<foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
-  <span class=sf-dump-index>0</span> => "<a href="%sFooInterface.php:10" rel="noopener noreferrer"><span class=sf-dump-str title="40 characters">hello(?stdClass $a, ?stdClass $b = null)</span></a>"
-</samp>]
-</bar>
-EODUMP;
+            <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
+              <span class=sf-dump-index>0</span> => "<a href="%sFooInterface.php:10" rel="noopener noreferrer"><span class=sf-dump-str title="40 characters">hello(?stdClass $a, ?stdClass $b = null)</span></a>"
+            </samp>]
+            </bar>
+            EODUMP;
 
         $this->assertStringMatchesFormat($expectedDump, $dump);
     }
@@ -174,12 +174,12 @@
         $dump = $dumper->dump($cloner->cloneVar($var), true);
 
         $expectedDump = <<<'EODUMP'
-<foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
-  <span class=sf-dump-index>0</span> => "<span class="sf-dump-str sf-dump-ellipsization" title="Symfony\Component\VarDumper\Tests\Caster\NotExisting
-52 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-class">Symfony\Component\VarDumper\Tests\Caster</span><span class="sf-dump-ellipsis sf-dump-ellipsis-class">\</span><span class="sf-dump-ellipsis-tail">NotExisting</span></span>"
-</samp>]
-</bar>
-EODUMP;
+            <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
+              <span class=sf-dump-index>0</span> => "<span class="sf-dump-str sf-dump-ellipsization" title="Symfony\Component\VarDumper\Tests\Caster\NotExisting
+            52 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-class">Symfony\Component\VarDumper\Tests\Caster</span><span class="sf-dump-ellipsis sf-dump-ellipsis-class">\</span><span class="sf-dump-ellipsis-tail">NotExisting</span></span>"
+            </samp>]
+            </bar>
+            EODUMP;
 
         $this->assertStringMatchesFormat($expectedDump, $dump);
     }
@@ -195,18 +195,18 @@
         $dump = $dumper->dump($cloner->cloneVar($var), true, ['fileLinkFormat' => '%f:%l']);
 
         $expectedDump = <<<'EODUMP'
-<foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
-  <span class=sf-dump-index>0</span> => "<a href="%sFooInterface.php:5" rel="noopener noreferrer"><span class=sf-dump-str title="5 characters">hello</span></a>"
-</samp>]
-</bar>
-EODUMP;
+            <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
+              <span class=sf-dump-index>0</span> => "<a href="%sFooInterface.php:5" rel="noopener noreferrer"><span class=sf-dump-str title="5 characters">hello</span></a>"
+            </samp>]
+            </bar>
+            EODUMP;
 
         $this->assertStringMatchesFormat($expectedDump, $dump);
     }
 
     public function testClassStubWithAnonymousClass()
     {
-        $var = [new ClassStub((new class() extends \Exception {
+        $var = [new ClassStub((new class extends \Exception {
         })::class)];
 
         $cloner = new VarCloner();
@@ -216,11 +216,11 @@
         $dump = $dumper->dump($cloner->cloneVar($var), true, ['fileLinkFormat' => '%f:%l']);
 
         $expectedDump = <<<'EODUMP'
-<foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
-  <span class=sf-dump-index>0</span> => "<a href="%sStubCasterTest.php:209" rel="noopener noreferrer"><span class=sf-dump-str title="19 characters">Exception@anonymous</span></a>"
-</samp>]
-</bar>
-EODUMP;
+            <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp data-depth=1 class=sf-dump-expanded>
+              <span class=sf-dump-index>0</span> => "<a href="%sStubCasterTest.php:209" rel="noopener noreferrer"><span class=sf-dump-str title="19 characters">Exception@anonymous</span></a>"
+            </samp>]
+            </bar>
+            EODUMP;
 
         $this->assertStringMatchesFormat($expectedDump, $dump);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/SymfonyCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/SymfonyCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/SymfonyCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/SymfonyCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,32 +25,32 @@
     {
         $uuid = new UuidV4('83a9db35-3c8c-4040-b3c1-02eccc00b419');
         $expectedDump = <<<EODUMP
-Symfony\Component\Uid\UuidV4 {
-  #uid: "83a9db35-3c8c-4040-b3c1-02eccc00b419"
-  toBase58: "HFzAAuYvev42cCjwqpnKqz"
-  toBase32: "43N7DKAF4C810B7G82XK601D0S"
-}
-EODUMP;
+            Symfony\Component\Uid\UuidV4 {
+              #uid: "83a9db35-3c8c-4040-b3c1-02eccc00b419"
+              toBase58: "HFzAAuYvev42cCjwqpnKqz"
+              toBase32: "43N7DKAF4C810B7G82XK601D0S"
+            }
+            EODUMP;
         $this->assertDumpEquals($expectedDump, $uuid);
 
         $uuid = new UuidV6('1ebc50e9-8a23-6704-ad6f-59afd5cda7e5');
         if (method_exists($uuid, 'getDateTime')) {
             $expectedDump = <<<EODUMP
-Symfony\Component\Uid\UuidV6 {
-  #uid: "1ebc50e9-8a23-6704-ad6f-59afd5cda7e5"
-  toBase58: "4o8c5m6v4L8h5teww36JDa"
-  toBase32: "0YQH8EK2H3CW2ATVTSNZAWV9Z5"
-  time: "2021-06-04 08:26:44.591386 UTC"
-}
-EODUMP;
+                Symfony\Component\Uid\UuidV6 {
+                  #uid: "1ebc50e9-8a23-6704-ad6f-59afd5cda7e5"
+                  toBase58: "4o8c5m6v4L8h5teww36JDa"
+                  toBase32: "0YQH8EK2H3CW2ATVTSNZAWV9Z5"
+                  time: "2021-06-04 08:26:44.591386 UTC"
+                }
+                EODUMP;
         } else {
             $expectedDump = <<<EODUMP
-Symfony\Component\Uid\UuidV6 {
-  #uid: "1ebc50e9-8a23-6704-ad6f-59afd5cda7e5"
-  toBase58: "4o8c5m6v4L8h5teww36JDa"
-  toBase32: "0YQH8EK2H3CW2ATVTSNZAWV9Z5"
-}
-EODUMP;
+                Symfony\Component\Uid\UuidV6 {
+                  #uid: "1ebc50e9-8a23-6704-ad6f-59afd5cda7e5"
+                  toBase58: "4o8c5m6v4L8h5teww36JDa"
+                  toBase32: "0YQH8EK2H3CW2ATVTSNZAWV9Z5"
+                }
+                EODUMP;
         }
 
         $this->assertDumpEquals($expectedDump, $uuid);
@@ -61,21 +61,21 @@
         $ulid = new Ulid('01F7B252SZQGTSQGYSGACASAW6');
         if (method_exists($ulid, 'getDateTime')) {
             $expectedDump = <<<EODUMP
-Symfony\Component\Uid\Ulid {
-  #uid: "01F7B252SZQGTSQGYSGACASAW6"
-  toBase58: "1Ba6pJPFWDwghSKFVvfQ1B"
-  toRfc4122: "0179d622-8b3f-bc35-9bc3-d98298acab86"
-  time: "2021-06-04 08:27:38.687 UTC"
-}
-EODUMP;
+                Symfony\Component\Uid\Ulid {
+                  #uid: "01F7B252SZQGTSQGYSGACASAW6"
+                  toBase58: "1Ba6pJPFWDwghSKFVvfQ1B"
+                  toRfc4122: "0179d622-8b3f-bc35-9bc3-d98298acab86"
+                  time: "2021-06-04 08:27:38.687 UTC"
+                }
+                EODUMP;
         } else {
             $expectedDump = <<<EODUMP
-Symfony\Component\Uid\Ulid {
-  #uid: "01F7B252SZQGTSQGYSGACASAW6"
-  toBase58: "1Ba6pJPFWDwghSKFVvfQ1B"
-  toRfc4122: "0179d622-8b3f-bc35-9bc3-d98298acab86"
-}
-EODUMP;
+                Symfony\Component\Uid\Ulid {
+                  #uid: "01F7B252SZQGTSQGYSGACASAW6"
+                  toBase58: "1Ba6pJPFWDwghSKFVvfQ1B"
+                  toRfc4122: "0179d622-8b3f-bc35-9bc3-d98298acab86"
+                }
+                EODUMP;
         }
 
         $this->assertDumpEquals($expectedDump, $ulid);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/XmlReaderCasterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/XmlReaderCasterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/XmlReaderCasterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Caster/XmlReaderCasterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,15 +39,15 @@
         $this->reader->setParserProperty(\XMLReader::SUBST_ENTITIES, true);
 
         $expectedDump = <<<'EODUMP'
-XMLReader {
-  +nodeType: NONE
-  parserProperties: {
-    SUBST_ENTITIES: true
-     …3
-  }
-   …12
-}
-EODUMP;
+            XMLReader {
+              +nodeType: NONE
+              parserProperties: {
+                SUBST_ENTITIES: true
+                 …3
+              }
+               …12
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $this->reader);
     }
@@ -67,180 +67,180 @@
     {
         return [
             [0, <<<'EODUMP'
-XMLReader {
-  +nodeType: NONE
-   …13
-}
-EODUMP
+                XMLReader {
+                  +nodeType: NONE
+                   …13
+                }
+                EODUMP
             ],
             [1, <<<'EODUMP'
-XMLReader {
-  +localName: "foo"
-  +nodeType: ELEMENT
-  +baseURI: "%sxml_reader.xml"
-   …11
-}
-EODUMP
+                XMLReader {
+                  +localName: "foo"
+                  +nodeType: ELEMENT
+                  +baseURI: "%sxml_reader.xml"
+                   …11
+                }
+                EODUMP
             ],
             [2, <<<'EODUMP'
-XMLReader {
-  +localName: "#text"
-  +nodeType: SIGNIFICANT_WHITESPACE
-  +depth: 1
-  +value: """
-    \n
-        
-    """
-  +baseURI: "%sxml_reader.xml"
-   …9
-}
-EODUMP
+                XMLReader {
+                  +localName: "#text"
+                  +nodeType: SIGNIFICANT_WHITESPACE
+                  +depth: 1
+                  +value: """
+                    \n
+                        
+                    """
+                  +baseURI: "%sxml_reader.xml"
+                   …9
+                }
+                EODUMP
             ],
             [3, <<<'EODUMP'
-XMLReader {
-  +localName: "bar"
-  +nodeType: ELEMENT
-  +depth: 1
-  +baseURI: "%sxml_reader.xml"
-   …10
-}
-EODUMP
+                XMLReader {
+                  +localName: "bar"
+                  +nodeType: ELEMENT
+                  +depth: 1
+                  +baseURI: "%sxml_reader.xml"
+                   …10
+                }
+                EODUMP
             ],
             [4, <<<'EODUMP'
-XMLReader {
-  +localName: "bar"
-  +nodeType: END_ELEMENT
-  +depth: 1
-  +baseURI: "%sxml_reader.xml"
-   …10
-}
-EODUMP
+                XMLReader {
+                  +localName: "bar"
+                  +nodeType: END_ELEMENT
+                  +depth: 1
+                  +baseURI: "%sxml_reader.xml"
+                   …10
+                }
+                EODUMP
             ],
             [6, <<<'EODUMP'
-XMLReader {
-  +localName: "bar"
-  +nodeType: ELEMENT
-  +depth: 1
-  +isEmptyElement: true
-  +baseURI: "%sxml_reader.xml"
-   …9
-}
-EODUMP
+                XMLReader {
+                  +localName: "bar"
+                  +nodeType: ELEMENT
+                  +depth: 1
+                  +isEmptyElement: true
+                  +baseURI: "%sxml_reader.xml"
+                   …9
+                }
+                EODUMP
             ],
             [9, <<<'EODUMP'
-XMLReader {
-  +localName: "#text"
-  +nodeType: TEXT
-  +depth: 2
-  +value: "With text"
-  +baseURI: "%sxml_reader.xml"
-   …9
-}
-EODUMP
+                XMLReader {
+                  +localName: "#text"
+                  +nodeType: TEXT
+                  +depth: 2
+                  +value: "With text"
+                  +baseURI: "%sxml_reader.xml"
+                   …9
+                }
+                EODUMP
             ],
             [12, <<<'EODUMP'
-XMLReader {
-  +localName: "bar"
-  +nodeType: ELEMENT
-  +depth: 1
-  +attributeCount: 2
-  +baseURI: "%sxml_reader.xml"
-   …9
-}
-EODUMP
+                XMLReader {
+                  +localName: "bar"
+                  +nodeType: ELEMENT
+                  +depth: 1
+                  +attributeCount: 2
+                  +baseURI: "%sxml_reader.xml"
+                   …9
+                }
+                EODUMP
             ],
             [13, <<<'EODUMP'
-XMLReader {
-  +localName: "bar"
-  +nodeType: END_ELEMENT
-  +depth: 1
-  +baseURI: "%sxml_reader.xml"
-   …10
-}
-EODUMP
+                XMLReader {
+                  +localName: "bar"
+                  +nodeType: END_ELEMENT
+                  +depth: 1
+                  +baseURI: "%sxml_reader.xml"
+                   …10
+                }
+                EODUMP
             ],
             [15, <<<'EODUMP'
-XMLReader {
-  +localName: "bar"
-  +nodeType: ELEMENT
-  +depth: 1
-  +attributeCount: 1
-  +baseURI: "%sxml_reader.xml"
-   …9
-}
-EODUMP
+                XMLReader {
+                  +localName: "bar"
+                  +nodeType: ELEMENT
+                  +depth: 1
+                  +attributeCount: 1
+                  +baseURI: "%sxml_reader.xml"
+                   …9
+                }
+                EODUMP
             ],
             [16, <<<'EODUMP'
-XMLReader {
-  +localName: "#text"
-  +nodeType: SIGNIFICANT_WHITESPACE
-  +depth: 2
-  +value: """
-    \n
-            
-    """
-  +baseURI: "%sxml_reader.xml"
-   …9
-}
-EODUMP
+                XMLReader {
+                  +localName: "#text"
+                  +nodeType: SIGNIFICANT_WHITESPACE
+                  +depth: 2
+                  +value: """
+                    \n
+                            
+                    """
+                  +baseURI: "%sxml_reader.xml"
+                   …9
+                }
+                EODUMP
             ],
             [17, <<<'EODUMP'
-XMLReader {
-  +localName: "baz"
-  +prefix: "baz"
-  +nodeType: ELEMENT
-  +depth: 2
-  +namespaceURI: "http://symfony.com"
-  +baseURI: "%sxml_reader.xml"
-   …8
-}
-EODUMP
+                XMLReader {
+                  +localName: "baz"
+                  +prefix: "baz"
+                  +nodeType: ELEMENT
+                  +depth: 2
+                  +namespaceURI: "http://symfony.com"
+                  +baseURI: "%sxml_reader.xml"
+                   …8
+                }
+                EODUMP
             ],
             [18, <<<'EODUMP'
-XMLReader {
-  +localName: "baz"
-  +prefix: "baz"
-  +nodeType: END_ELEMENT
-  +depth: 2
-  +namespaceURI: "http://symfony.com"
-  +baseURI: "%sxml_reader.xml"
-   …8
-}
-EODUMP
+                XMLReader {
+                  +localName: "baz"
+                  +prefix: "baz"
+                  +nodeType: END_ELEMENT
+                  +depth: 2
+                  +namespaceURI: "http://symfony.com"
+                  +baseURI: "%sxml_reader.xml"
+                   …8
+                }
+                EODUMP
             ],
             [19, <<<'EODUMP'
-XMLReader {
-  +localName: "#text"
-  +nodeType: SIGNIFICANT_WHITESPACE
-  +depth: 2
-  +value: """
-    \n
-        
-    """
-  +baseURI: "%sxml_reader.xml"
-   …9
-}
-EODUMP
+                XMLReader {
+                  +localName: "#text"
+                  +nodeType: SIGNIFICANT_WHITESPACE
+                  +depth: 2
+                  +value: """
+                    \n
+                        
+                    """
+                  +baseURI: "%sxml_reader.xml"
+                   …9
+                }
+                EODUMP
             ],
             [21, <<<'EODUMP'
-XMLReader {
-  +localName: "#text"
-  +nodeType: SIGNIFICANT_WHITESPACE
-  +depth: 1
-  +value: "\n"
-  +baseURI: "%sxml_reader.xml"
-   …9
-}
-EODUMP
+                XMLReader {
+                  +localName: "#text"
+                  +nodeType: SIGNIFICANT_WHITESPACE
+                  +depth: 1
+                  +value: "\n"
+                  +baseURI: "%sxml_reader.xml"
+                   …9
+                }
+                EODUMP
             ],
             [22, <<<'EODUMP'
-XMLReader {
-  +localName: "foo"
-  +nodeType: END_ELEMENT
-  +baseURI: "%sxml_reader.xml"
-   …11
-}
-EODUMP
+                XMLReader {
+                  +localName: "foo"
+                  +nodeType: END_ELEMENT
+                  +baseURI: "%sxml_reader.xml"
+                   …11
+                }
+                EODUMP
             ],
         ];
     }
@@ -250,11 +250,11 @@
         $this->reader = new \XMLReader();
 
         $expectedDump = <<<'EODUMP'
-XMLReader {
-  +nodeType: NONE
-   …13
-}
-EODUMP;
+            XMLReader {
+              +nodeType: NONE
+               …13
+            }
+            EODUMP;
 
         $this->assertDumpMatchesFormat($expectedDump, $this->reader);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Cloner/VarClonerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Cloner/VarClonerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Cloner/VarClonerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Cloner/VarClonerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,39 +29,39 @@
         $clone = $cloner->cloneVar($data);
 
         $expected = <<<EOTXT
-Symfony\Component\VarDumper\Cloner\Data Object
-(
-    [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-            [0] => Array
-                (
-                    [0] => Array
-                        (
-                            [1] => 1
-                        )
-
-                )
-
-            [1] => Array
-                (
-                    [%s] => 123
-                )
-
-        )
-
-    [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
-    [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-        )
+            Symfony\Component\VarDumper\Cloner\Data Object
+            (
+                [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                        [0] => Array
+                            (
+                                [0] => Array
+                                    (
+                                        [1] => 1
+                                    )
+
+                            )
+
+                        [1] => Array
+                            (
+                                [%s] => 123
+                            )
+
+                    )
+
+                [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
+                [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                    )
 
-)
+            )
 
-EOTXT;
-        $this->assertSame(sprintf($expected, \PHP_INT_MAX), print_r($clone, true));
+            EOTXT;
+        $this->assertSame(\sprintf($expected, \PHP_INT_MAX), print_r($clone, true));
     }
 
     public function testClone()
@@ -72,87 +72,87 @@
         $clone = $cloner->cloneVar($json);
 
         $expected = <<<EOTXT
-Symfony\Component\VarDumper\Cloner\Data Object
-(
-    [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-            [0] => Array
-                (
-                    [0] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 4
-                            [class] => stdClass
-                            [value] => 
-                            [cut] => 0
-                            [handle] => %i
-                            [refCount] => 0
-                            [position] => 1
-                            [attr] => Array
-                                (
-                                )
-
-                        )
-
-                )
-
-            [1] => Array
-                (
-                    [\000+\0001] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 4
-                            [class] => stdClass
-                            [value] => 
-                            [cut] => 0
-                            [handle] => %i
-                            [refCount] => 0
-                            [position] => 2
-                            [attr] => Array
-                                (
-                                )
-
-                        )
-
-                    [\000+\0002] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 4
-                            [class] => stdClass
-                            [value] => 
-                            [cut] => 0
-                            [handle] => %i
-                            [refCount] => 0
-                            [position] => 3
-                            [attr] => Array
-                                (
-                                )
-
-                        )
-
-                )
-
-            [2] => Array
-                (
-                    [\000+\000var] => val
-                )
-
-            [3] => Array
-                (
-                    [\000+\000var] => val
-                )
-
-        )
-
-    [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
-    [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-        )
+            Symfony\Component\VarDumper\Cloner\Data Object
+            (
+                [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                        [0] => Array
+                            (
+                                [0] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 4
+                                        [class] => stdClass
+                                        [value] => 
+                                        [cut] => 0
+                                        [handle] => %i
+                                        [refCount] => 0
+                                        [position] => 1
+                                        [attr] => Array
+                                            (
+                                            )
+
+                                    )
+
+                            )
+
+                        [1] => Array
+                            (
+                                [\000+\0001] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 4
+                                        [class] => stdClass
+                                        [value] => 
+                                        [cut] => 0
+                                        [handle] => %i
+                                        [refCount] => 0
+                                        [position] => 2
+                                        [attr] => Array
+                                            (
+                                            )
+
+                                    )
+
+                                [\000+\0002] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 4
+                                        [class] => stdClass
+                                        [value] => 
+                                        [cut] => 0
+                                        [handle] => %i
+                                        [refCount] => 0
+                                        [position] => 3
+                                        [attr] => Array
+                                            (
+                                            )
+
+                                    )
+
+                            )
+
+                        [2] => Array
+                            (
+                                [\000+\000var] => val
+                            )
+
+                        [3] => Array
+                            (
+                                [\000+\000var] => val
+                            )
+
+                    )
+
+                [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
+                [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                    )
 
-)
+            )
 
-EOTXT;
+            EOTXT;
         $this->assertStringMatchesFormat($expected, print_r($clone, true));
     }
 
@@ -203,128 +203,128 @@
         $clone = $cloner->cloneVar($data);
 
         $expected = <<<EOTXT
-Symfony\Component\VarDumper\Cloner\Data Object
-(
-    [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-            [0] => Array
-                (
-                    [0] => Array
-                        (
-                            [2] => 1
-                        )
-
-                )
-
-            [1] => Array
-                (
-                    [0] => Array
-                        (
-                            [2] => 2
-                        )
-
-                    [1] => Array
-                        (
-                            [2] => 3
-                        )
-
-                    [2] => Array
-                        (
-                            [2] => 4
-                        )
-
-                    [3] => Level 1 Item 0
-                    [4] => Array
-                        (
-                            [2] => 5
-                        )
-
-                )
-
-            [2] => Array
-                (
-                    [0] => Array
-                        (
-                            [2] => 6
-                        )
-
-                    [1] => Array
-                        (
-                            [0] => 2
-                            [1] => 7
-                        )
-
-                    [2] => Array
-                        (
-                            [0] => 1
-                            [2] => 0
-                        )
-
-                )
-
-            [3] => Array
-                (
-                    [0] => Array
-                        (
-                            [0] => 1
-                            [2] => 0
-                        )
-
-                    [1] => Level 2 Item 0
-                )
-
-            [4] => Array
-                (
-                    [0] => Level 2 Item 1
-                )
-
-            [5] => Array
-                (
-                    [0] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 2
-                            [class] => 2
-                            [value] => ABCDEFGHIJKLMNOPQRST
-                            [cut] => 6
-                            [handle] => 0
-                            [refCount] => 0
-                            [position] => 0
-                            [attr] => Array
-                                (
-                                )
-
-                        )
-
-                    [1] => SHORT
-                )
-
-            [6] => Array
-                (
-                    [0] => Level 3 Item 0
-                    [1] => Level 3 Item 1
-                    [2] => Level 3 Item 2
-                    [3] => Level 3 Item 3
-                )
-
-            [7] => Array
-                (
-                    [999] => Level 3 Item 4
-                )
-
-        )
-
-    [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
-    [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-        )
+            Symfony\Component\VarDumper\Cloner\Data Object
+            (
+                [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                        [0] => Array
+                            (
+                                [0] => Array
+                                    (
+                                        [2] => 1
+                                    )
+
+                            )
+
+                        [1] => Array
+                            (
+                                [0] => Array
+                                    (
+                                        [2] => 2
+                                    )
+
+                                [1] => Array
+                                    (
+                                        [2] => 3
+                                    )
+
+                                [2] => Array
+                                    (
+                                        [2] => 4
+                                    )
+
+                                [3] => Level 1 Item 0
+                                [4] => Array
+                                    (
+                                        [2] => 5
+                                    )
+
+                            )
+
+                        [2] => Array
+                            (
+                                [0] => Array
+                                    (
+                                        [2] => 6
+                                    )
+
+                                [1] => Array
+                                    (
+                                        [0] => 2
+                                        [1] => 7
+                                    )
+
+                                [2] => Array
+                                    (
+                                        [0] => 1
+                                        [2] => 0
+                                    )
+
+                            )
+
+                        [3] => Array
+                            (
+                                [0] => Array
+                                    (
+                                        [0] => 1
+                                        [2] => 0
+                                    )
+
+                                [1] => Level 2 Item 0
+                            )
+
+                        [4] => Array
+                            (
+                                [0] => Level 2 Item 1
+                            )
+
+                        [5] => Array
+                            (
+                                [0] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 2
+                                        [class] => 2
+                                        [value] => ABCDEFGHIJKLMNOPQRST
+                                        [cut] => 6
+                                        [handle] => 0
+                                        [refCount] => 0
+                                        [position] => 0
+                                        [attr] => Array
+                                            (
+                                            )
+
+                                    )
+
+                                [1] => SHORT
+                            )
+
+                        [6] => Array
+                            (
+                                [0] => Level 3 Item 0
+                                [1] => Level 3 Item 1
+                                [2] => Level 3 Item 2
+                                [3] => Level 3 Item 3
+                            )
+
+                        [7] => Array
+                            (
+                                [999] => Level 3 Item 4
+                            )
+
+                    )
+
+                [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
+                [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                    )
 
-)
+            )
 
-EOTXT;
+            EOTXT;
         $this->assertStringMatchesFormat($expected, print_r($clone, true));
     }
 
@@ -340,57 +340,57 @@
         $clone = $cloner->cloneVar($data);
 
         $expected = <<<'EOTXT'
-object(Symfony\Component\VarDumper\Cloner\Data)#%d (7) {
-  ["data":"Symfony\Component\VarDumper\Cloner\Data":private]=>
-  array(2) {
-    [0]=>
-    array(1) {
-      [0]=>
-      array(1) {
-        [1]=>
-        int(1)
-      }
-    }
-    [1]=>
-    array(1) {
-      ["1"]=>
-      object(Symfony\Component\VarDumper\Cloner\Stub)#%i (8) {
-        ["type"]=>
-        int(4)
-        ["class"]=>
-        string(8) "stdClass"
-        ["value"]=>
-        NULL
-        ["cut"]=>
-        int(0)
-        ["handle"]=>
-        int(%i)
-        ["refCount"]=>
-        int(0)
-        ["position"]=>
-        int(0)
-        ["attr"]=>
-        array(0) {
-        }
-      }
-    }
-  }
-  ["position":"Symfony\Component\VarDumper\Cloner\Data":private]=>
-  int(0)
-  ["key":"Symfony\Component\VarDumper\Cloner\Data":private]=>
-  int(0)
-  ["maxDepth":"Symfony\Component\VarDumper\Cloner\Data":private]=>
-  int(20)
-  ["maxItemsPerDepth":"Symfony\Component\VarDumper\Cloner\Data":private]=>
-  int(-1)
-  ["useRefHandles":"Symfony\Component\VarDumper\Cloner\Data":private]=>
-  int(-1)
-  ["context":"Symfony\Component\VarDumper\Cloner\Data":private]=>
-  array(0) {
-  }
-}
+            object(Symfony\Component\VarDumper\Cloner\Data)#%d (7) {
+              ["data":"Symfony\Component\VarDumper\Cloner\Data":private]=>
+              array(2) {
+                [0]=>
+                array(1) {
+                  [0]=>
+                  array(1) {
+                    [1]=>
+                    int(1)
+                  }
+                }
+                [1]=>
+                array(1) {
+                  ["1"]=>
+                  object(Symfony\Component\VarDumper\Cloner\Stub)#%i (8) {
+                    ["type"]=>
+                    int(4)
+                    ["class"]=>
+                    string(8) "stdClass"
+                    ["value"]=>
+                    NULL
+                    ["cut"]=>
+                    int(0)
+                    ["handle"]=>
+                    int(%i)
+                    ["refCount"]=>
+                    int(0)
+                    ["position"]=>
+                    int(0)
+                    ["attr"]=>
+                    array(0) {
+                    }
+                  }
+                }
+              }
+              ["position":"Symfony\Component\VarDumper\Cloner\Data":private]=>
+              int(0)
+              ["key":"Symfony\Component\VarDumper\Cloner\Data":private]=>
+              int(0)
+              ["maxDepth":"Symfony\Component\VarDumper\Cloner\Data":private]=>
+              int(20)
+              ["maxItemsPerDepth":"Symfony\Component\VarDumper\Cloner\Data":private]=>
+              int(-1)
+              ["useRefHandles":"Symfony\Component\VarDumper\Cloner\Data":private]=>
+              int(-1)
+              ["context":"Symfony\Component\VarDumper\Cloner\Data":private]=>
+              array(0) {
+              }
+            }
 
-EOTXT;
+            EOTXT;
         ob_start();
         var_dump($clone);
         $this->assertStringMatchesFormat(str_replace('"1"', '1', $expected), ob_get_clean());
@@ -399,8 +399,8 @@
     public function testCaster()
     {
         $cloner = new VarCloner([
-            '*' => fn ($obj, $array) => ['foo' => 123],
-            __CLASS__ => function ($obj, $array) {
+            '*' => static fn ($obj, $array) => ['foo' => 123],
+            __CLASS__ => static function ($obj, $array) {
                 ++$array['foo'];
 
                 return $array;
@@ -409,50 +409,50 @@
         $clone = $cloner->cloneVar($this);
 
         $expected = <<<EOTXT
-Symfony\Component\VarDumper\Cloner\Data Object
-(
-    [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-            [0] => Array
-                (
-                    [0] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 4
-                            [class] => %s
-                            [value] => 
-                            [cut] => 0
-                            [handle] => %i
-                            [refCount] => 0
-                            [position] => 1
-                            [attr] => Array
-                                (
-                                    [file] => %a%eVarClonerTest.php
-                                    [line] => 22
-                                )
-
-                        )
-
-                )
-
-            [1] => Array
-                (
-                    [foo] => 124
-                )
-
-        )
-
-    [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
-    [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-        )
+            Symfony\Component\VarDumper\Cloner\Data Object
+            (
+                [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                        [0] => Array
+                            (
+                                [0] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 4
+                                        [class] => %s
+                                        [value] => 
+                                        [cut] => 0
+                                        [handle] => %i
+                                        [refCount] => 0
+                                        [position] => 1
+                                        [attr] => Array
+                                            (
+                                                [file] => %a%eVarClonerTest.php
+                                                [line] => 22
+                                            )
+
+                                    )
+
+                            )
+
+                        [1] => Array
+                            (
+                                [foo] => 124
+                            )
+
+                    )
+
+                [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
+                [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                    )
 
-)
+            )
 
-EOTXT;
+            EOTXT;
         $this->assertStringMatchesFormat($expected, print_r($clone, true));
     }
 
@@ -464,108 +464,108 @@
         $clone = $cloner->cloneVar($data);
 
         $expected = <<<'EOTXT'
-Symfony\Component\VarDumper\Cloner\Data Object
-(
-    [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-            [0] => Array
-                (
-                    [0] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 4
-                            [class] => Symfony\Component\VarDumper\Tests\Fixtures\Php74
-                            [value] => 
-                            [cut] => 0
-                            [handle] => %i
-                            [refCount] => 0
-                            [position] => 1
-                            [attr] => Array
-                                (
-                                    [file] => %s
-                                    [line] => 5
-                                )
-
-                        )
-
-                )
-
-            [1] => Array
-                (
-                    [p1] => 123
-                    [p2] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 1
-                            [class] => 
-                            [value] => Symfony\Component\VarDumper\Cloner\Stub Object
-                                (
-                                    [type] => 4
-                                    [class] => stdClass
-                                    [value] => 
-                                    [cut] => 0
-                                    [handle] => %i
-                                    [refCount] => 1
-                                    [position] => 0
-                                    [attr] => Array
-                                        (
-                                        )
-
-                                )
-
-                            [cut] => 0
-                            [handle] => 1
-                            [refCount] => 1
-                            [position] => 0
-                            [attr] => Array
-                                (
-                                )
-
-                        )
-
-                    [p3] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 1
-                            [class] => 
-                            [value] => Symfony\Component\VarDumper\Cloner\Stub Object
-                                (
-                                    [type] => 4
-                                    [class] => stdClass
-                                    [value] => 
-                                    [cut] => 0
-                                    [handle] => %i
-                                    [refCount] => 1
-                                    [position] => 0
-                                    [attr] => Array
-                                        (
-                                        )
-
-                                )
-
-                            [cut] => 0
-                            [handle] => 1
-                            [refCount] => 1
-                            [position] => 0
-                            [attr] => Array
-                                (
-                                )
-
-                        )
-
-                )
-
-        )
-
-    [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
-    [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-        )
+            Symfony\Component\VarDumper\Cloner\Data Object
+            (
+                [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                        [0] => Array
+                            (
+                                [0] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 4
+                                        [class] => Symfony\Component\VarDumper\Tests\Fixtures\Php74
+                                        [value] => 
+                                        [cut] => 0
+                                        [handle] => %i
+                                        [refCount] => 0
+                                        [position] => 1
+                                        [attr] => Array
+                                            (
+                                                [file] => %s
+                                                [line] => 5
+                                            )
+
+                                    )
+
+                            )
+
+                        [1] => Array
+                            (
+                                [p1] => 123
+                                [p2] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 1
+                                        [class] => 
+                                        [value] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                            (
+                                                [type] => 4
+                                                [class] => stdClass
+                                                [value] => 
+                                                [cut] => 0
+                                                [handle] => %i
+                                                [refCount] => 1
+                                                [position] => 0
+                                                [attr] => Array
+                                                    (
+                                                    )
+
+                                            )
+
+                                        [cut] => 0
+                                        [handle] => 1
+                                        [refCount] => 1
+                                        [position] => 0
+                                        [attr] => Array
+                                            (
+                                            )
+
+                                    )
+
+                                [p3] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 1
+                                        [class] => 
+                                        [value] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                            (
+                                                [type] => 4
+                                                [class] => stdClass
+                                                [value] => 
+                                                [cut] => 0
+                                                [handle] => %i
+                                                [refCount] => 1
+                                                [position] => 0
+                                                [attr] => Array
+                                                    (
+                                                    )
+
+                                            )
+
+                                        [cut] => 0
+                                        [handle] => 1
+                                        [refCount] => 1
+                                        [position] => 0
+                                        [attr] => Array
+                                            (
+                                            )
+
+                                    )
+
+                            )
+
+                    )
+
+                [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
+                [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                    )
 
-)
+            )
 
-EOTXT;
+            EOTXT;
         $this->assertStringMatchesFormat($expected, print_r($clone, true));
     }
 
@@ -577,94 +577,94 @@
         $clone = $cloner->cloneVar($data);
 
         $expected = <<<'EOTXT'
-Symfony\Component\VarDumper\Cloner\Data Object
-(
-    [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-            [0] => Array
-                (
-                    [0] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 4
-                            [class] => Symfony\Component\VarDumper\Tests\Fixtures\Php81Enums
-                            [value] => 
-                            [cut] => 0
-                            [handle] => %i
-                            [refCount] => 0
-                            [position] => 1
-                            [attr] => Array
-                                (
-                                    [file] => %s
-                                    [line] => 5
-                                )
-
-                        )
-
-                )
-
-            [1] => Array
-                (
-                    [e1] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 4
-                            [class] => Symfony\Component\VarDumper\Tests\Fixtures\UnitEnumFixture
-                            [value] => 
-                            [cut] => 0
-                            [handle] => %i
-                            [refCount] => 0
-                            [position] => 2
-                            [attr] => Array
-                                (
-                                    [file] => %s
-                                    [line] => 5
-                                )
-
-                        )
-
-                    [e2] => Symfony\Component\VarDumper\Cloner\Stub Object
-                        (
-                            [type] => 4
-                            [class] => Symfony\Component\VarDumper\Tests\Fixtures\BackedEnumFixture
-                            [value] => 
-                            [cut] => 0
-                            [handle] => %i
-                            [refCount] => 0
-                            [position] => 3
-                            [attr] => Array
-                                (
-                                    [file] => %s
-                                    [line] => 5
-                                )
-
-                        )
-
-                )
-
-            [2] => Array
-                (
-                    [name] => Hearts
-                )
-
-            [3] => Array
-                (
-                    [name] => Diamonds
-                    [value] => D
-                )
-
-        )
-
-    [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
-    [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
-    [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
-    [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
-        (
-        )
+            Symfony\Component\VarDumper\Cloner\Data Object
+            (
+                [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                        [0] => Array
+                            (
+                                [0] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 4
+                                        [class] => Symfony\Component\VarDumper\Tests\Fixtures\Php81Enums
+                                        [value] => 
+                                        [cut] => 0
+                                        [handle] => %i
+                                        [refCount] => 0
+                                        [position] => 1
+                                        [attr] => Array
+                                            (
+                                                [file] => %s
+                                                [line] => 5
+                                            )
+
+                                    )
+
+                            )
+
+                        [1] => Array
+                            (
+                                [e1] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 4
+                                        [class] => Symfony\Component\VarDumper\Tests\Fixtures\UnitEnumFixture
+                                        [value] => 
+                                        [cut] => 0
+                                        [handle] => %i
+                                        [refCount] => 0
+                                        [position] => 2
+                                        [attr] => Array
+                                            (
+                                                [file] => %s
+                                                [line] => 5
+                                            )
+
+                                    )
+
+                                [e2] => Symfony\Component\VarDumper\Cloner\Stub Object
+                                    (
+                                        [type] => 4
+                                        [class] => Symfony\Component\VarDumper\Tests\Fixtures\BackedEnumFixture
+                                        [value] => 
+                                        [cut] => 0
+                                        [handle] => %i
+                                        [refCount] => 0
+                                        [position] => 3
+                                        [attr] => Array
+                                            (
+                                                [file] => %s
+                                                [line] => 5
+                                            )
+
+                                    )
+
+                            )
+
+                        [2] => Array
+                            (
+                                [name] => Hearts
+                            )
+
+                        [3] => Array
+                            (
+                                [name] => Diamonds
+                                [value] => D
+                            )
+
+                    )
+
+                [position:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [key:Symfony\Component\VarDumper\Cloner\Data:private] => 0
+                [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20
+                [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1
+                [context:Symfony\Component\VarDumper\Cloner\Data:private] => Array
+                    (
+                    )
 
-)
+            )
 
-EOTXT;
+            EOTXT;
         $this->assertStringMatchesFormat($expected, print_r($clone, true));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -44,7 +44,7 @@
     {
         $output = new BufferedOutput();
         $output->setDecorated($decorated);
-        $descriptor = new CliDescriptor(new CliDumper(fn ($s) => $s));
+        $descriptor = new CliDescriptor(new CliDumper(static fn ($s) => $s));
 
         $descriptor->describe($output, new Data([[123]]), $context + ['timestamp' => 1544804268.3668], 1);
 
@@ -62,15 +62,15 @@
                 ],
             ],
             <<<TXT
-Received from client #1
------------------------
+                Received from client #1
+                -----------------------
 
- -------- --------------------------------------------------------------------------------------------------- 
-  date     Fri, 14 Dec 2018 16:17:48 +0000                                                                    
-  source   CliDescriptorTest.php on line 30                                                                   
-  file     /Users/ogi/symfony/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php  
- -------- ---------------------------------------------------------------------------------------------------
-TXT
+                 -------- --------------------------------------------------------------------------------------------------- 
+                  date     Fri, 14 Dec 2018 16:17:48 +0000                                                                    
+                  source   CliDescriptorTest.php on line 30                                                                   
+                  file     /Users/ogi/symfony/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php  
+                 -------- ---------------------------------------------------------------------------------------------------
+                TXT,
         ];
 
         yield 'source full' => [
@@ -84,16 +84,16 @@
                 ],
             ],
             <<<TXT
-Received from client #1
------------------------
+                Received from client #1
+                -----------------------
 
- -------- -------------------------------------------------------------------------------- 
-  date     Fri, 14 Dec 2018 16:17:48 +0000                                                 
-  source   CliDescriptorTest.php on line 30                                                
-  file     src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php  
- -------- -------------------------------------------------------------------------------- 
+                 -------- -------------------------------------------------------------------------------- 
+                  date     Fri, 14 Dec 2018 16:17:48 +0000                                                 
+                  source   CliDescriptorTest.php on line 30                                                
+                  file     src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php  
+                 -------- -------------------------------------------------------------------------------- 
 
-TXT
+                TXT,
         ];
 
         yield 'source with hyperlink' => [
@@ -106,11 +106,10 @@
                 ],
             ],
             <<<TXT
-%A
-  source   \033]8;;phpstorm://open?file=/Users/ogi/symfony/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php&line=30\033\CliDescriptorTest.php on line 30\033]8;;\033%A
-%A
-TXT
-            , true,
+                %A
+                  source   \033]8;;phpstorm://open?file=/Users/ogi/symfony/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php&line=30\033\CliDescriptorTest.php on line 30\033]8;;\033%A
+                %A
+                TXT, true,
         ];
 
         yield 'cli' => [
@@ -121,13 +120,13 @@
                 ],
             ],
             <<<TXT
-$ bin/phpunit
--------------
+                $ bin/phpunit
+                -------------
 
- ------ --------------------------------- 
-  date   Fri, 14 Dec 2018 16:17:48 +0000  
- ------ ---------------------------------
-TXT
+                 ------ --------------------------------- 
+                  date   Fri, 14 Dec 2018 16:17:48 +0000  
+                 ------ ---------------------------------
+                TXT,
         ];
 
         yield 'request' => [
@@ -140,14 +139,14 @@
                 ],
             ],
             <<<TXT
-GET http://localhost/foo
-------------------------
+                GET http://localhost/foo
+                ------------------------
 
- ------------ --------------------------------- 
-  date         Fri, 14 Dec 2018 16:17:48 +0000  
-  controller   "FooController.php"              
- ------------ --------------------------------- 
-TXT
+                 ------------ --------------------------------- 
+                  date         Fri, 14 Dec 2018 16:17:48 +0000  
+                  controller   "FooController.php"              
+                 ------------ --------------------------------- 
+                TXT,
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/HtmlDescriptorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/HtmlDescriptorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/HtmlDescriptorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/HtmlDescriptorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,7 +35,7 @@
     public function testItOutputsStylesAndScriptsOnFirstDescribeCall()
     {
         $output = new BufferedOutput();
-        $dumper = $this->createMock(HtmlDumper::class);
+        $dumper = $this->createStub(HtmlDumper::class);
         $dumper->method('dump')->willReturn('[DUMPED]');
         $descriptor = new HtmlDescriptor($dumper);
 
@@ -54,7 +54,7 @@
     public function testDescribe(array $context, string $expectedOutput)
     {
         $output = new BufferedOutput();
-        $dumper = $this->createMock(HtmlDumper::class);
+        $dumper = $this->createStub(HtmlDumper::class);
         $dumper->method('dump')->willReturn('[DUMPED]');
         $descriptor = new HtmlDescriptor($dumper);
 
@@ -74,24 +74,24 @@
                 ],
             ],
             <<<TXT
-<article data-dedup-id="%s">
-    <header>
-        <div class="row">
-            <h2 class="col">-</h2>
-            <time class="col text-small" title="2018-12-14T16:17:48+00:00" datetime="2018-12-14T16:17:48+00:00">
-                Fri, 14 Dec 2018 16:17:48 +0000
-            </time>
-        </div>
-        
-    </header>
-    <section class="body">
-        <p class="text-small">
-            CliDescriptorTest.php on line 30
-        </p>
-        [DUMPED]
-    </section>
-</article>
-TXT
+                <article data-dedup-id="%s">
+                    <header>
+                        <div class="row">
+                            <h2 class="col">-</h2>
+                            <time class="col text-small" title="2018-12-14T16:17:48+00:00" datetime="2018-12-14T16:17:48+00:00">
+                                Fri, 14 Dec 2018 16:17:48 +0000
+                            </time>
+                        </div>
+                        
+                    </header>
+                    <section class="body">
+                        <p class="text-small">
+                            CliDescriptorTest.php on line 30
+                        </p>
+                        [DUMPED]
+                    </section>
+                </article>
+                TXT,
         ];
 
         yield 'source full' => [
@@ -106,28 +106,28 @@
                 ],
             ],
             <<<TXT
-<article data-dedup-id="%s">
-    <header>
-        <div class="row">
-            <h2 class="col">-</h2>
-            <time class="col text-small" title="2018-12-14T16:17:48+00:00" datetime="2018-12-14T16:17:48+00:00">
-                Fri, 14 Dec 2018 16:17:48 +0000
-            </time>
-        </div>
-        <div class="row">
-    <ul class="tags">
-        <li><span class="badge">project dir</span>src/Symfony/</li>
-    </ul>
-</div>
-    </header>
-    <section class="body">
-        <p class="text-small">
-            <a href="phpstorm://open?file=/Users/ogi/symfony/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php&line=30">CliDescriptorTest.php on line 30</a>
-        </p>
-        [DUMPED]
-    </section>
-</article>
-TXT
+                <article data-dedup-id="%s">
+                    <header>
+                        <div class="row">
+                            <h2 class="col">-</h2>
+                            <time class="col text-small" title="2018-12-14T16:17:48+00:00" datetime="2018-12-14T16:17:48+00:00">
+                                Fri, 14 Dec 2018 16:17:48 +0000
+                            </time>
+                        </div>
+                        <div class="row">
+                    <ul class="tags">
+                        <li><span class="badge">project dir</span>src/Symfony/</li>
+                    </ul>
+                </div>
+                    </header>
+                    <section class="body">
+                        <p class="text-small">
+                            <a href="phpstorm://open?file=/Users/ogi/symfony/src/Symfony/Component/VarDumper/Tests/Command/Descriptor/CliDescriptorTest.php&line=30">CliDescriptorTest.php on line 30</a>
+                        </p>
+                        [DUMPED]
+                    </section>
+                </article>
+                TXT,
         ];
 
         yield 'cli' => [
@@ -138,24 +138,24 @@
                 ],
             ],
             <<<TXT
-<article data-dedup-id="d8bece1c">
-    <header>
-        <div class="row">
-            <h2 class="col"><code>$ </code>bin/phpunit</h2>
-            <time class="col text-small" title="2018-12-14T16:17:48+00:00" datetime="2018-12-14T16:17:48+00:00">
-                Fri, 14 Dec 2018 16:17:48 +0000
-            </time>
-        </div>
-        
-    </header>
-    <section class="body">
-        <p class="text-small">
-            
-        </p>
-        [DUMPED]
-    </section>
-</article>
-TXT
+                <article data-dedup-id="d8bece1c">
+                    <header>
+                        <div class="row">
+                            <h2 class="col"><code>$ </code>bin/phpunit</h2>
+                            <time class="col text-small" title="2018-12-14T16:17:48+00:00" datetime="2018-12-14T16:17:48+00:00">
+                                Fri, 14 Dec 2018 16:17:48 +0000
+                            </time>
+                        </div>
+                        
+                    </header>
+                    <section class="body">
+                        <p class="text-small">
+                            
+                        </p>
+                        [DUMPED]
+                    </section>
+                </article>
+                TXT,
         ];
 
         yield 'request' => [
@@ -168,28 +168,28 @@
                 ],
             ],
             <<<TXT
-<article data-dedup-id="d8bece1c">
-    <header>
-        <div class="row">
-            <h2 class="col"><code>GET</code> <a href="http://localhost/foo">http://localhost/foo</a></h2>
-            <time class="col text-small" title="2018-12-14T16:17:48+00:00" datetime="2018-12-14T16:17:48+00:00">
-                Fri, 14 Dec 2018 16:17:48 +0000
-            </time>
-        </div>
-        <div class="row">
-    <ul class="tags">
-        <li><span class="badge">controller</span><span class='dumped-tag'>[DUMPED]</span></li>
-    </ul>
-</div>
-    </header>
-    <section class="body">
-        <p class="text-small">
-            
-        </p>
-        [DUMPED]
-    </section>
-</article>
-TXT
+                <article data-dedup-id="d8bece1c">
+                    <header>
+                        <div class="row">
+                            <h2 class="col"><code>GET</code> <a href="http://localhost/foo">http://localhost/foo</a></h2>
+                            <time class="col text-small" title="2018-12-14T16:17:48+00:00" datetime="2018-12-14T16:17:48+00:00">
+                                Fri, 14 Dec 2018 16:17:48 +0000
+                            </time>
+                        </div>
+                        <div class="row">
+                    <ul class="tags">
+                        <li><span class="badge">controller</span><span class='dumped-tag'>[DUMPED]</span></li>
+                    </ul>
+                </div>
+                    </header>
+                    <section class="body">
+                        <p class="text-small">
+                            
+                        </p>
+                        [DUMPED]
+                    </section>
+                </article>
+                TXT,
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Command/ServerDumpCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Command/ServerDumpCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Command/ServerDumpCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Command/ServerDumpCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,6 +38,6 @@
 
     private function createCommand(): ServerDumpCommand
     {
-        return new ServerDumpCommand($this->createMock(DumpServer::class));
+        return new ServerDumpCommand($this->createStub(DumpServer::class));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/CliDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/CliDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/CliDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/CliDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -39,12 +39,12 @@
         $dumper->setColors(false);
         $cloner = new VarCloner();
         $cloner->addCasters([
-            ':stream' => function ($res, $a) {
+            ':stream' => static function ($res, $a) {
                 unset($a['uri'], $a['wrapper_data']);
 
                 return $a;
             },
-            'Symfony\Component\VarDumper\Tests\Fixture\DumbFoo' => function ($foo, $a) {
+            'Symfony\Component\VarDumper\Tests\Fixture\DumbFoo' => static function ($foo, $a) {
                 $a['foo'] = new CutStub($a['foo']);
 
                 return $a;
@@ -61,58 +61,57 @@
 
         $this->assertStringMatchesFormat(
             <<<EOTXT
-array:25 [
-  "number" => 1
-  0 => &1 null
-  "const" => 1.1
-  1 => true
-  2 => false
-  3 => NAN
-  4 => INF
-  5 => -INF
-  6 => {$intMax}
-  "str" => "déjà\\n"
-  7 => b"""
-    é\\x01test\\t\\n
-    ing
-    """
-  "bo\\u{FEFF}m" => "te\\u{FEFF}st"
-  "[]" => []
-  "res" => stream resource {@{$res}
-%A  wrapper_type: "plainfile"
-    stream_type: "STDIO"
-    mode: "r"
-    unread_bytes: 0
-    seekable: true
-%A  options: []
-  }
-  "obj" => Symfony\Component\VarDumper\Tests\Fixture\DumbFoo {#%d
-    +foo: ""…3
-    +"bar": "bar"
-  }
-  "closure" => Closure(\$a, ?PDO &\$b = null) {#%d
-    class: "Symfony\Component\VarDumper\Tests\Dumper\CliDumperTest"
-    this: Symfony\Component\VarDumper\Tests\Dumper\CliDumperTest {#%d …}
-    file: "%s%eTests%eFixtures%edumb-var.php"
-    line: "{$var['line']} to {$var['line']}"
-  }
-  "line" => {$var['line']}
-  "nobj" => array:1 [
-    0 => &3 {#%d}
-  ]
-  "recurs" => &4 array:1 [
-    0 => &4 array:1 [&4]
-  ]
-  8 => &1 null
-  "sobj" => Symfony\Component\VarDumper\Tests\Fixture\DumbFoo {#%d}
-  "snobj" => &3 {#%d}
-  "snobj2" => {#%d}
-  "file" => "{$var['file']}"
-  b"bin-key-é" => ""
-]
+                array:25 [
+                  "number" => 1
+                  0 => &1 null
+                  "const" => 1.1
+                  1 => true
+                  2 => false
+                  3 => NAN
+                  4 => INF
+                  5 => -INF
+                  6 => {$intMax}
+                  "str" => "déjà\\n"
+                  7 => b"""
+                    é\\x01test\\t\\n
+                    ing
+                    """
+                  "bo\\u{FEFF}m" => "te\\u{FEFF}st"
+                  "[]" => []
+                  "res" => stream resource {@{$res}
+                %A  wrapper_type: "plainfile"
+                    stream_type: "STDIO"
+                    mode: "r"
+                    unread_bytes: 0
+                    seekable: true
+                %A  options: []
+                  }
+                  "obj" => Symfony\Component\VarDumper\Tests\Fixture\DumbFoo {#%d
+                    +foo: ""…3
+                    +"bar": "bar"
+                  }
+                  "closure" => Closure(\$a, ?PDO &\$b = null) {#%d
+                    class: "Symfony\Component\VarDumper\Tests\Dumper\CliDumperTest"
+                    this: Symfony\Component\VarDumper\Tests\Dumper\CliDumperTest {#%d …}
+                    file: "%s%eTests%eFixtures%edumb-var.php"
+                    line: "{$var['line']} to {$var['line']}"
+                  }
+                  "line" => {$var['line']}
+                  "nobj" => array:1 [
+                    0 => &3 {#%d}
+                  ]
+                  "recurs" => &4 array:1 [
+                    0 => &4 array:1 [&4]
+                  ]
+                  8 => &1 null
+                  "sobj" => Symfony\Component\VarDumper\Tests\Fixture\DumbFoo {#%d}
+                  "snobj" => &3 {#%d}
+                  "snobj2" => {#%d}
+                  "file" => "{$var['file']}"
+                  b"bin-key-é" => ""
+                ]
 
-EOTXT
-            ,
+                EOTXT,
             $out
         );
     }
@@ -148,63 +147,64 @@
         $dump = $dumper->dump($cloner->cloneVar($ex)->withRefHandles(false), true);
 
         $this->assertStringMatchesFormat(<<<'EOTXT'
-RuntimeException {
-  #message: "foo"
-  #code: 0
-  #file: "%ACliDumperTest.php"
-  #line: %d
-  trace: {
-    %ACliDumperTest.php:%d {
-      Symfony\Component\VarDumper\Tests\Dumper\CliDumperTest->testDumpWithCommaFlagsAndExceptionCodeExcerpt()
-      › 
-      › $ex = new \RuntimeException('foo');
-      › 
-    }
-    %A
-  }
-}
+            RuntimeException {
+              #message: "foo"
+              #code: 0
+              #file: "%ACliDumperTest.php"
+              #line: %d
+              trace: {
+                %ACliDumperTest.php:%d {
+                  Symfony\Component\VarDumper\Tests\Dumper\CliDumperTest->testDumpWithCommaFlagsAndExceptionCodeExcerpt()
+                  › 
+                  › $ex = new \RuntimeException('foo');
+                  › 
+                }
+                %A
+              }
+            }
 
-EOTXT
-            , $dump);
+            EOTXT,
+            $dump
+        );
     }
 
     public static function provideDumpWithCommaFlagTests()
     {
         $expected = <<<'EOTXT'
-array:3 [
-  "array" => array:2 [
-    0 => "a",
-    1 => "b"
-  ],
-  "string" => "hello",
-  "multiline string" => """
-    this\n
-    is\n
-    a\multiline\n
-    string
-    """
-]
+            array:3 [
+              "array" => array:2 [
+                0 => "a",
+                1 => "b"
+              ],
+              "string" => "hello",
+              "multiline string" => """
+                this\n
+                is\n
+                a\multiline\n
+                string
+                """
+            ]
 
-EOTXT;
+            EOTXT;
 
         yield [$expected, CliDumper::DUMP_COMMA_SEPARATOR];
 
         $expected = <<<'EOTXT'
-array:3 [
-  "array" => array:2 [
-    0 => "a",
-    1 => "b",
-  ],
-  "string" => "hello",
-  "multiline string" => """
-    this\n
-    is\n
-    a\multiline\n
-    string
-    """,
-]
+            array:3 [
+              "array" => array:2 [
+                0 => "a",
+                1 => "b",
+              ],
+              "string" => "hello",
+              "multiline string" => """
+                this\n
+                is\n
+                a\multiline\n
+                string
+                """,
+            ]
 
-EOTXT;
+            EOTXT;
 
         yield [$expected, CliDumper::DUMP_TRAILING_COMMA];
     }
@@ -219,14 +219,13 @@
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-array:4 [
-  0 => {}
-  1 => &1 null
-  2 => &1 null
-  "" => 2
-]
-EOTXT
-            ,
+                array:4 [
+                  0 => {}
+                  1 => &1 null
+                  2 => &1 null
+                  "" => 2
+                ]
+                EOTXT,
             $var
         );
     }
@@ -238,11 +237,10 @@
 
         $this->assertDumpMatchesFormat(
             <<<'EOTXT'
-{
-  +"1": 2
-}
-EOTXT
-            ,
+                {
+                  +"1": 2
+                }
+                EOTXT,
             $var
         );
     }
@@ -264,10 +262,9 @@
 
         $this->assertStringMatchesFormat(
             <<<EOTXT
-Closed resource @{$res}
+                Closed resource @{$res}
 
-EOTXT
-            ,
+                EOTXT,
             $out
         );
     }
@@ -284,19 +281,18 @@
 
         $this->assertDumpEquals(
             <<<EOTXT
-[
-  [
-    1
-    2
-    3
-  ]
-  [
-    0 => (3) "foo"
-    2 => (3) "bar"
-  ]
-]
-EOTXT
-            ,
+                [
+                  [
+                    1
+                    2
+                    3
+                  ]
+                  [
+                    0 => (3) "foo"
+                    2 => (3) "bar"
+                  ]
+                ]
+                EOTXT,
             $var
         );
 
@@ -315,7 +311,7 @@
         $dumper->setColors(false);
         $cloner = new VarCloner();
         $cloner->addCasters([
-            ':stream' => function ($res, $a) {
+            ':stream' => static function ($res, $a) {
                 unset($a['wrapper_data']);
 
                 return $a;
@@ -338,31 +334,30 @@
 
         $this->assertStringMatchesFormat(
             <<<EOTXT
-stream resource {@{$ref}
-  ⚠: Symfony\Component\VarDumper\Exception\ThrowingCasterException {#%d
-    #message: "Unexpected Exception thrown from a caster: Foobar"
-    trace: {
-      %sTwig.php:2 {
-        __TwigTemplate_VarDumperFixture_u75a09->doDisplay(array \$context, array \$blocks = []): array
-        › foo bar
-        ›   twig source
-        › 
-      }
-      %A%eTemplate.php:%d { …}
-      %s%eTests%eDumper%eCliDumperTest.php:%d { …}
-%A  }
-  }
-%Awrapper_type: "PHP"
-  stream_type: "MEMORY"
-  mode: "%s+b"
-  unread_bytes: 0
-  seekable: true
-  uri: "php://memory"
-%Aoptions: []
-}
+                stream resource {@{$ref}
+                  ⚠: Symfony\Component\VarDumper\Exception\ThrowingCasterException {#%d
+                    #message: "Unexpected Exception thrown from a caster: Foobar"
+                    trace: {
+                      %sTwig.php:2 {
+                        __TwigTemplate_VarDumperFixture_u75a09->doDisplay(array \$context, array \$blocks = []): array
+                        › foo bar
+                        ›   twig source
+                        › 
+                      }
+                      %A%eTemplate.php:%d { …}
+                      %s%eTests%eDumper%eCliDumperTest.php:%d { …}
+                %A  }
+                  }
+                %Awrapper_type: "PHP"
+                  stream_type: "MEMORY"
+                  mode: "%s+b"
+                  unread_bytes: 0
+                  seekable: true
+                  uri: "php://memory"
+                %Aoptions: []
+                }
 
-EOTXT
-            ,
+                EOTXT,
             $out
         );
     }
@@ -381,13 +376,12 @@
 
         $this->assertStringMatchesFormat(
             <<<EOTXT
-{#%d
-  +"foo": &1 "foo"
-  +"bar": &1 "foo"
-}
+                {#%d
+                  +"foo": &1 "foo"
+                  +"bar": &1 "foo"
+                }
 
-EOTXT
-            ,
+                EOTXT,
             $out
         );
     }
@@ -400,9 +394,8 @@
 
         $this->assertDumpMatchesFormat(
             <<<EOTXT
-__PHP_Incomplete_Class(Foo\Buzz) {}
-EOTXT
-            ,
+                __PHP_Incomplete_Class(Foo\Buzz) {}
+                EOTXT,
             $var
         );
     }
@@ -413,11 +406,11 @@
             ['foo' => 'bar'],
             0,
             <<<EOTXT
-\e[0;38;5;208m\e[38;5;38marray:1\e[0;38;5;208m [\e[m
-  \e[0;38;5;208m"\e[38;5;113mfoo\e[0;38;5;208m" => "\e[1;38;5;113mbar\e[0;38;5;208m"\e[m
-\e[0;38;5;208m]\e[m
+                \e[0;38;5;208m\e[38;5;38marray:1\e[0;38;5;208m [\e[m
+                  \e[0;38;5;208m"\e[38;5;113mfoo\e[0;38;5;208m" => "\e[1;38;5;113mbar\e[0;38;5;208m"\e[m
+                \e[0;38;5;208m]\e[m
 
-EOTXT
+                EOTXT,
         ];
 
         yield [[], AbstractDumper::DUMP_LIGHT_ARRAY, "\e[0;38;5;208m[]\e[m\n"];
@@ -426,11 +419,11 @@
             ['foo' => 'bar'],
             AbstractDumper::DUMP_LIGHT_ARRAY,
             <<<EOTXT
-\e[0;38;5;208m[\e[m
-  \e[0;38;5;208m"\e[38;5;113mfoo\e[0;38;5;208m" => "\e[1;38;5;113mbar\e[0;38;5;208m"\e[m
-\e[0;38;5;208m]\e[m
+                \e[0;38;5;208m[\e[m
+                  \e[0;38;5;208m"\e[38;5;113mfoo\e[0;38;5;208m" => "\e[1;38;5;113mbar\e[0;38;5;208m"\e[m
+                \e[0;38;5;208m]\e[m
 
-EOTXT
+                EOTXT,
         ];
 
         yield [[], 0, "\e[0;38;5;208m[]\e[m\n"];
@@ -446,7 +439,7 @@
         }
 
         $out = '';
-        $dumper = new CliDumper(function ($line, $depth) use (&$out) {
+        $dumper = new CliDumper(static function ($line, $depth) use (&$out) {
             if ($depth >= 0) {
                 $out .= str_repeat('  ', $depth).$line."\n";
             }
@@ -487,15 +480,14 @@
 
         $this->assertSame(
             <<<'EOTXT'
-{
-  foo: 123
-  +"bar": array:1 [
-    "bar" => 123
-  ]
-}
+                {
+                  foo: 123
+                  +"bar": array:1 [
+                    "bar" => 123
+                  ]
+                }
 
-EOTXT
-            ,
+                EOTXT,
             $dump
         );
     }
@@ -503,7 +495,7 @@
     public function testFileLinkFormat()
     {
         if (!class_exists(FileLinkFormatter::class)) {
-            $this->markTestSkipped(sprintf('Class "%s" is required to run this test.', FileLinkFormatter::class));
+            $this->markTestSkipped(\sprintf('Class "%s" is required to run this test.', FileLinkFormatter::class));
         }
 
         $data = new Data([
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/ContextualizedDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/ContextualizedDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/ContextualizedDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/ContextualizedDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -19,16 +19,20 @@
 
 /**
  * @author Kévin Thérage <therage.kevin@gmail.com>
+ *
+ * @backupGlobals
  */
 class ContextualizedDumperTest extends TestCase
 {
     public function testContextualizedCliDumper()
     {
+        $_ENV['SYMFONY_IDE'] = $_SERVER['SYMFONY_IDE'] = '';
         $wrappedDumper = new CliDumper('php://output');
         $wrappedDumper->setColors(true);
+        $wrappedDumper->setDisplayOptions(['fileLinkFormat' => 'file://%f#L%l']);
 
         $var = 'example';
-        $href = sprintf('file://%s#L%s', __FILE__, 37);
+        $href = \sprintf('file://%s#L%s', __FILE__, 41);
         $dumper = new ContextualizedDumper($wrappedDumper, [new SourceContextProvider()]);
         $cloner = new VarCloner();
         $data = $cloner->cloneVar($var);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/FunctionsTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/FunctionsTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/FunctionsTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/FunctionsTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -89,7 +89,7 @@
     {
         $cloner = new VarCloner();
         $dumper = new CliDumper('php://output');
-        VarDumper::setHandler(function ($var) use ($cloner, $dumper) {
+        VarDumper::setHandler(static function ($var) use ($cloner, $dumper) {
             $dumper->dump($cloner->cloneVar($var));
         });
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/HtmlDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/HtmlDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/HtmlDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/HtmlDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
         $dumper->setDumpBoundaries('<bar>', '</bar>');
         $cloner = new VarCloner();
         $cloner->addCasters([
-            ':stream' => function ($res, $a) {
+            ':stream' => static function ($res, $a) {
                 unset($a['uri'], $a['wrapper_data']);
 
                 return $a;
@@ -54,64 +54,63 @@
 
         $this->assertStringMatchesFormat(
             <<<EOTXT
-<foo></foo><bar><span class=sf-dump-note>array:25</span> [<samp data-depth=1 class=sf-dump-expanded>
-  "<span class=sf-dump-key>number</span>" => <span class=sf-dump-num>1</span>
-  <span class=sf-dump-key>0</span> => <a class=sf-dump-ref href=#{$dumpId}-ref01 title="2 occurrences">&amp;1</a> <span class=sf-dump-const>null</span>
-  "<span class=sf-dump-key>const</span>" => <span class=sf-dump-num>1.1</span>
-  <span class=sf-dump-key>1</span> => <span class=sf-dump-const>true</span>
-  <span class=sf-dump-key>2</span> => <span class=sf-dump-const>false</span>
-  <span class=sf-dump-key>3</span> => <span class=sf-dump-num>NAN</span>
-  <span class=sf-dump-key>4</span> => <span class=sf-dump-num>INF</span>
-  <span class=sf-dump-key>5</span> => <span class=sf-dump-num>-INF</span>
-  <span class=sf-dump-key>6</span> => <span class=sf-dump-num>{$intMax}</span>
-  "<span class=sf-dump-key>str</span>" => "<span class=sf-dump-str title="5 characters">d&%s;j&%s;<span class="sf-dump-default sf-dump-ns">\\n</span></span>"
-  <span class=sf-dump-key>7</span> => b"""
-    <span class=sf-dump-str title="11 binary or non-UTF-8 characters">&#233;<span class="sf-dump-default">\\x01</span>test<span class="sf-dump-default">\\t</span><span class="sf-dump-default sf-dump-ns">\\n</span></span>
-    <span class=sf-dump-str title="11 binary or non-UTF-8 characters">ing</span>
-    """
-  "<span class=sf-dump-key>bo<span class=sf-dump-default>\\u{FEFF}</span>m</span>" => "<span class=sf-dump-str title="5 characters">te<span class=sf-dump-default>\\u{FEFF}</span>st</span>"
-  "<span class=sf-dump-key>[]</span>" => []
-  "<span class=sf-dump-key>res</span>" => <span class=sf-dump-note>stream resource</span> <a class=sf-dump-ref>@{$res}</a><samp data-depth=2 class=sf-dump-compact>
-%A  <span class=sf-dump-meta>wrapper_type</span>: "<span class=sf-dump-str title="9 characters">plainfile</span>"
-    <span class=sf-dump-meta>stream_type</span>: "<span class=sf-dump-str title="5 characters">STDIO</span>"
-    <span class=sf-dump-meta>mode</span>: "<span class=sf-dump-str>r</span>"
-    <span class=sf-dump-meta>unread_bytes</span>: <span class=sf-dump-num>0</span>
-    <span class=sf-dump-meta>seekable</span>: <span class=sf-dump-const>true</span>
-%A  <span class=sf-dump-meta>options</span>: []
-  </samp>}
-  "<span class=sf-dump-key>obj</span>" => <span class="sf-dump-note sf-dump-ellipsization" title="Symfony\Component\VarDumper\Tests\Fixture\DumbFoo
-"><span class="sf-dump-ellipsis sf-dump-ellipsis-note">Symfony\Component\VarDumper\Tests\Fixture</span><span class="sf-dump-ellipsis sf-dump-ellipsis-note">\</span><span class="sf-dump-ellipsis-tail">DumbFoo</span></span> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="2 occurrences">#%d</a><samp data-depth=2 id={$dumpId}-ref2%d class=sf-dump-compact>
-    +<span class=sf-dump-public title="Public property">foo</span>: "<span class=sf-dump-str title="3 characters">foo</span>"
-    +"<span class=sf-dump-public title="Runtime added dynamic property">bar</span>": "<span class=sf-dump-str title="3 characters">bar</span>"
-  </samp>}
-  "<span class=sf-dump-key>closure</span>" => <span class=sf-dump-note>Closure(\$a, ?PDO &amp;\$b = null)</span> {<a class=sf-dump-ref>#%d</a><samp data-depth=2 class=sf-dump-compact>
-    <span class=sf-dump-meta>class</span>: "<span class="sf-dump-str sf-dump-ellipsization" title="Symfony\Component\VarDumper\Tests\Dumper\HtmlDumperTest
-55 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-class">Symfony\Component\VarDumper\Tests\Dumper</span><span class="sf-dump-ellipsis sf-dump-ellipsis-class">\</span><span class="sf-dump-ellipsis-tail">HtmlDumperTest</span></span>"
-    <span class=sf-dump-meta>this</span>: <span class="sf-dump-note sf-dump-ellipsization" title="Symfony\Component\VarDumper\Tests\Dumper\HtmlDumperTest
-"><span class="sf-dump-ellipsis sf-dump-ellipsis-note">Symfony\Component\VarDumper\Tests\Dumper</span><span class="sf-dump-ellipsis sf-dump-ellipsis-note">\</span><span class="sf-dump-ellipsis-tail">HtmlDumperTest</span></span> {<a class=sf-dump-ref>#%d</a> &%s;}
-    <span class=sf-dump-meta>file</span>: "<span class="sf-dump-str sf-dump-ellipsization" title="{$var['file']}
-%d characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%s%eVarDumper</span><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%e</span><span class="sf-dump-ellipsis-tail">Tests%eFixtures%edumb-var.php</span></span>"
-    <span class=sf-dump-meta>line</span>: "<span class=sf-dump-str title="%d characters">{$var['line']} to {$var['line']}</span>"
-  </samp>}
-  "<span class=sf-dump-key>line</span>" => <span class=sf-dump-num>{$var['line']}</span>
-  "<span class=sf-dump-key>nobj</span>" => <span class=sf-dump-note>array:1</span> [<samp data-depth=2 class=sf-dump-compact>
-    <span class=sf-dump-index>0</span> => <a class=sf-dump-ref href=#{$dumpId}-ref03 title="2 occurrences">&amp;3</a> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="3 occurrences">#%d</a>}
-  </samp>]
-  "<span class=sf-dump-key>recurs</span>" => <a class=sf-dump-ref href=#{$dumpId}-ref04 title="2 occurrences">&amp;4</a> <span class=sf-dump-note>array:1</span> [<samp data-depth=2 id={$dumpId}-ref04 class=sf-dump-compact>
-    <span class=sf-dump-index>0</span> => <a class=sf-dump-ref href=#{$dumpId}-ref04 title="2 occurrences">&amp;4</a> <span class=sf-dump-note>array:1</span> [<a class=sf-dump-ref href=#{$dumpId}-ref04 title="2 occurrences">&amp;4</a>]
-  </samp>]
-  <span class=sf-dump-key>8</span> => <a class=sf-dump-ref href=#{$dumpId}-ref01 title="2 occurrences">&amp;1</a> <span class=sf-dump-const>null</span>
-  "<span class=sf-dump-key>sobj</span>" => <span class="sf-dump-note sf-dump-ellipsization" title="Symfony\Component\VarDumper\Tests\Fixture\DumbFoo
-"><span class="sf-dump-ellipsis sf-dump-ellipsis-note">Symfony\Component\VarDumper\Tests\Fixture</span><span class="sf-dump-ellipsis sf-dump-ellipsis-note">\</span><span class="sf-dump-ellipsis-tail">DumbFoo</span></span> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="2 occurrences">#%d</a>}
-  "<span class=sf-dump-key>snobj</span>" => <a class=sf-dump-ref href=#{$dumpId}-ref03 title="2 occurrences">&amp;3</a> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="3 occurrences">#%d</a>}
-  "<span class=sf-dump-key>snobj2</span>" => {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="3 occurrences">#%d</a>}
-  "<span class=sf-dump-key>file</span>" => "<span class=sf-dump-str title="%d characters">{$var['file']}</span>"
-  b"<span class=sf-dump-key>bin-key-&%s;</span>" => ""
-</samp>]
-</bar>
+                <foo></foo><bar><span class=sf-dump-note>array:25</span> [<samp data-depth=1 class=sf-dump-expanded>
+                  "<span class=sf-dump-key>number</span>" => <span class=sf-dump-num>1</span>
+                  <span class=sf-dump-key>0</span> => <a class=sf-dump-ref href=#{$dumpId}-ref01 title="2 occurrences">&amp;1</a> <span class=sf-dump-const>null</span>
+                  "<span class=sf-dump-key>const</span>" => <span class=sf-dump-num>1.1</span>
+                  <span class=sf-dump-key>1</span> => <span class=sf-dump-const>true</span>
+                  <span class=sf-dump-key>2</span> => <span class=sf-dump-const>false</span>
+                  <span class=sf-dump-key>3</span> => <span class=sf-dump-num>NAN</span>
+                  <span class=sf-dump-key>4</span> => <span class=sf-dump-num>INF</span>
+                  <span class=sf-dump-key>5</span> => <span class=sf-dump-num>-INF</span>
+                  <span class=sf-dump-key>6</span> => <span class=sf-dump-num>{$intMax}</span>
+                  "<span class=sf-dump-key>str</span>" => "<span class=sf-dump-str title="5 characters">d&%s;j&%s;<span class="sf-dump-default sf-dump-ns">\\n</span></span>"
+                  <span class=sf-dump-key>7</span> => b"""
+                    <span class=sf-dump-str title="11 binary or non-UTF-8 characters">&#233;<span class="sf-dump-default">\\x01</span>test<span class="sf-dump-default">\\t</span><span class="sf-dump-default sf-dump-ns">\\n</span></span>
+                    <span class=sf-dump-str title="11 binary or non-UTF-8 characters">ing</span>
+                    """
+                  "<span class=sf-dump-key>bo<span class=sf-dump-default>\\u{FEFF}</span>m</span>" => "<span class=sf-dump-str title="5 characters">te<span class=sf-dump-default>\\u{FEFF}</span>st</span>"
+                  "<span class=sf-dump-key>[]</span>" => []
+                  "<span class=sf-dump-key>res</span>" => <span class=sf-dump-note>stream resource</span> <a class=sf-dump-ref>@{$res}</a><samp data-depth=2 class=sf-dump-compact>
+                %A  <span class=sf-dump-meta>wrapper_type</span>: "<span class=sf-dump-str title="9 characters">plainfile</span>"
+                    <span class=sf-dump-meta>stream_type</span>: "<span class=sf-dump-str title="5 characters">STDIO</span>"
+                    <span class=sf-dump-meta>mode</span>: "<span class=sf-dump-str>r</span>"
+                    <span class=sf-dump-meta>unread_bytes</span>: <span class=sf-dump-num>0</span>
+                    <span class=sf-dump-meta>seekable</span>: <span class=sf-dump-const>true</span>
+                %A  <span class=sf-dump-meta>options</span>: []
+                  </samp>}
+                  "<span class=sf-dump-key>obj</span>" => <span class="sf-dump-note sf-dump-ellipsization" title="Symfony\Component\VarDumper\Tests\Fixture\DumbFoo
+                "><span class="sf-dump-ellipsis sf-dump-ellipsis-note">Symfony\Component\VarDumper\Tests\Fixture</span><span class="sf-dump-ellipsis sf-dump-ellipsis-note">\</span><span class="sf-dump-ellipsis-tail">DumbFoo</span></span> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="2 occurrences">#%d</a><samp data-depth=2 id={$dumpId}-ref2%d class=sf-dump-compact>
+                    +<span class=sf-dump-public title="Public property">foo</span>: "<span class=sf-dump-str title="3 characters">foo</span>"
+                    +"<span class=sf-dump-public title="Runtime added dynamic property">bar</span>": "<span class=sf-dump-str title="3 characters">bar</span>"
+                  </samp>}
+                  "<span class=sf-dump-key>closure</span>" => <span class=sf-dump-note>Closure(\$a, ?PDO &amp;\$b = null)</span> {<a class=sf-dump-ref>#%d</a><samp data-depth=2 class=sf-dump-compact>
+                    <span class=sf-dump-meta>class</span>: "<span class="sf-dump-str sf-dump-ellipsization" title="Symfony\Component\VarDumper\Tests\Dumper\HtmlDumperTest
+                55 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-class">Symfony\Component\VarDumper\Tests\Dumper</span><span class="sf-dump-ellipsis sf-dump-ellipsis-class">\</span><span class="sf-dump-ellipsis-tail">HtmlDumperTest</span></span>"
+                    <span class=sf-dump-meta>this</span>: <span class="sf-dump-note sf-dump-ellipsization" title="Symfony\Component\VarDumper\Tests\Dumper\HtmlDumperTest
+                "><span class="sf-dump-ellipsis sf-dump-ellipsis-note">Symfony\Component\VarDumper\Tests\Dumper</span><span class="sf-dump-ellipsis sf-dump-ellipsis-note">\</span><span class="sf-dump-ellipsis-tail">HtmlDumperTest</span></span> {<a class=sf-dump-ref>#%d</a> &%s;}
+                    <span class=sf-dump-meta>file</span>: "<span class="sf-dump-str sf-dump-ellipsization" title="{$var['file']}
+                %d characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%s%eVarDumper</span><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%e</span><span class="sf-dump-ellipsis-tail">Tests%eFixtures%edumb-var.php</span></span>"
+                    <span class=sf-dump-meta>line</span>: "<span class=sf-dump-str title="%d characters">{$var['line']} to {$var['line']}</span>"
+                  </samp>}
+                  "<span class=sf-dump-key>line</span>" => <span class=sf-dump-num>{$var['line']}</span>
+                  "<span class=sf-dump-key>nobj</span>" => <span class=sf-dump-note>array:1</span> [<samp data-depth=2 class=sf-dump-compact>
+                    <span class=sf-dump-index>0</span> => <a class=sf-dump-ref href=#{$dumpId}-ref03 title="2 occurrences">&amp;3</a> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="3 occurrences">#%d</a>}
+                  </samp>]
+                  "<span class=sf-dump-key>recurs</span>" => <a class=sf-dump-ref href=#{$dumpId}-ref04 title="2 occurrences">&amp;4</a> <span class=sf-dump-note>array:1</span> [<samp data-depth=2 id={$dumpId}-ref04 class=sf-dump-compact>
+                    <span class=sf-dump-index>0</span> => <a class=sf-dump-ref href=#{$dumpId}-ref04 title="2 occurrences">&amp;4</a> <span class=sf-dump-note>array:1</span> [<a class=sf-dump-ref href=#{$dumpId}-ref04 title="2 occurrences">&amp;4</a>]
+                  </samp>]
+                  <span class=sf-dump-key>8</span> => <a class=sf-dump-ref href=#{$dumpId}-ref01 title="2 occurrences">&amp;1</a> <span class=sf-dump-const>null</span>
+                  "<span class=sf-dump-key>sobj</span>" => <span class="sf-dump-note sf-dump-ellipsization" title="Symfony\Component\VarDumper\Tests\Fixture\DumbFoo
+                "><span class="sf-dump-ellipsis sf-dump-ellipsis-note">Symfony\Component\VarDumper\Tests\Fixture</span><span class="sf-dump-ellipsis sf-dump-ellipsis-note">\</span><span class="sf-dump-ellipsis-tail">DumbFoo</span></span> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="2 occurrences">#%d</a>}
+                  "<span class=sf-dump-key>snobj</span>" => <a class=sf-dump-ref href=#{$dumpId}-ref03 title="2 occurrences">&amp;3</a> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="3 occurrences">#%d</a>}
+                  "<span class=sf-dump-key>snobj2</span>" => {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="3 occurrences">#%d</a>}
+                  "<span class=sf-dump-key>file</span>" => "<span class=sf-dump-str title="%d characters">{$var['file']}</span>"
+                  b"<span class=sf-dump-key>bin-key-&%s;</span>" => ""
+                </samp>]
+                </bar>
 
-EOTXT
-            ,
+                EOTXT,
 
             $out
         );
@@ -131,11 +130,10 @@
 
         $this->assertStringMatchesFormat(
             <<<'EOTXT'
-<foo></foo><bar>b"<span class=sf-dump-str title="7 binary or non-UTF-8 characters">&#1057;&#1083;&#1086;&#1074;&#1072;&#1088;&#1100;</span>"
-</bar>
+                <foo></foo><bar>b"<span class=sf-dump-str title="7 binary or non-UTF-8 characters">&#1057;&#1083;&#1086;&#1074;&#1072;&#1088;&#1100;</span>"
+                </bar>
 
-EOTXT
-            ,
+                EOTXT,
             $out
         );
     }
@@ -155,13 +153,12 @@
         $out = stream_get_contents($out, -1, 0);
 
         $this->assertSame(<<<'EOTXT'
-<foo></foo><bar><span class=sf-dump-num>123</span>
-</bar>
-<bar><span class=sf-dump-num>456</span>
-</bar>
+            <foo></foo><bar><span class=sf-dump-num>123</span>
+            </bar>
+            <bar><span class=sf-dump-num>456</span>
+            </bar>
 
-EOTXT
-            ,
+            EOTXT,
             $out
         );
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/ServerDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/ServerDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/ServerDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Dumper/ServerDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
         $cloner = new VarCloner();
         $data = $cloner->cloneVar('foo');
         $dumper = new ServerDumper(self::VAR_DUMPER_SERVER, $wrappedDumper, [
-            'foo_provider' => new class() implements ContextProviderInterface {
+            'foo_provider' => new class implements ContextProviderInterface {
                 public function getContext(): ?array
                 {
                     return ['foo'];
@@ -74,16 +74,17 @@
 
         $this->assertTrue($process->isSuccessful());
         $this->assertStringMatchesFormat(<<<'DUMP'
-(3) "foo"
-[
-  "timestamp" => %d.%d
-  "foo_provider" => [
-    (3) "foo"
-  ]
-]
-%d
-DUMP
-            , $dumped);
+            (3) "foo"
+            [
+              "timestamp" => %d.%d
+              "foo_provider" => [
+                (3) "foo"
+              ]
+            ]
+            %d
+            DUMP,
+            $dumped
+        );
     }
 
     private function getServerProcess(): Process
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Server/ConnectionTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Server/ConnectionTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Server/ConnectionTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Server/ConnectionTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
         $cloner = new VarCloner();
         $data = $cloner->cloneVar('foo');
         $connection = new Connection(self::VAR_DUMPER_SERVER, [
-            'foo_provider' => new class() implements ContextProviderInterface {
+            'foo_provider' => new class implements ContextProviderInterface {
                 public function getContext(): ?array
                 {
                     return ['foo'];
@@ -56,17 +56,18 @@
 
         $this->assertTrue($process->isSuccessful());
         $this->assertStringMatchesFormat(<<<'DUMP'
-(3) "foo"
-[
-  "timestamp" => %d.%d
-  "foo_provider" => [
-    (3) "foo"
-  ]
-]
-%d
+            (3) "foo"
+            [
+              "timestamp" => %d.%d
+              "foo_provider" => [
+                (3) "foo"
+              ]
+            ]
+            %d
 
-DUMP
-            , $dumped);
+            DUMP,
+            $dumped
+        );
     }
 
     public function testNoServer()
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Test/VarDumperTestTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Test/VarDumperTestTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/Tests/Test/VarDumperTestTraitTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/Tests/Test/VarDumperTestTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,16 +25,16 @@
         $howMany = 700;
         $data = array_fill_keys(range(0, $howMany), ['a', 'b', 'c', 'd']);
 
-        $expected = sprintf("array:%d [\n", $howMany + 1);
+        $expected = \sprintf("array:%d [\n", $howMany + 1);
         for ($i = 0; $i <= $howMany; ++$i) {
             $expected .= <<<EODUMP
-  $i => array:4 [
-    0 => "a"
-    1 => "b"
-    2 => "c"
-    3 => "d"
-  ]\n
-EODUMP;
+                  $i => array:4 [
+                    0 => "a"
+                    1 => "b"
+                    2 => "c"
+                    3 => "d"
+                  ]\n
+                EODUMP;
         }
         $expected .= "]\n";
 
@@ -60,15 +60,16 @@
         $this->assertSame($casters, $this->varDumperConfig['casters']);
 
         $this->assertDumpEquals(<<<DUMP
-[
-  1,
-  2,
-  DateTimeImmutable {
-    +date: "09/07/2019"
-  }
-]
-DUMP
-            , [1, 2, new \DateTimeImmutable('2019-07-09T0:00:00+00:00')]);
+            [
+              1,
+              2,
+              DateTimeImmutable {
+                +date: "09/07/2019"
+              }
+            ]
+            DUMP,
+            [1, 2, new \DateTimeImmutable('2019-07-09T0:00:00+00:00')]
+        );
 
         $this->tearDownVarDumper();
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/VarDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/VarDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarDumper/VarDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarDumper/VarDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -96,7 +96,7 @@
             $dumper = new ContextualizedDumper($dumper, [new SourceContextProvider()]);
         }
 
-        self::$handler = function ($var, ?string $label = null) use ($cloner, $dumper) {
+        self::$handler = static function ($var, ?string $label = null) use ($cloner, $dumper) {
             $var = $cloner->cloneVar($var);
 
             if (null !== $label) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Exception/ClassNotFoundException.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Exception/ClassNotFoundException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Exception/ClassNotFoundException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Exception/ClassNotFoundException.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,6 @@
 {
     public function __construct(string $class, ?\Throwable $previous = null)
     {
-        parent::__construct(sprintf('Class "%s" not found.', $class), 0, $previous);
+        parent::__construct(\sprintf('Class "%s" not found.', $class), 0, $previous);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Exception/NotInstantiableTypeException.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Exception/NotInstantiableTypeException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Exception/NotInstantiableTypeException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Exception/NotInstantiableTypeException.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,6 +15,6 @@
 {
     public function __construct(string $type, ?\Throwable $previous = null)
     {
-        parent::__construct(sprintf('Type "%s" is not instantiable.', $type), 0, $previous);
+        parent::__construct(\sprintf('Type "%s" is not instantiable.', $type), 0, $previous);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Internal/Exporter.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Internal/Exporter.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Internal/Exporter.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Internal/Exporter.php	2026-05-20 10:56:49.000000000 +0200
@@ -76,33 +76,23 @@
             $class = $value::class;
             $reflector = Registry::$reflectors[$class] ??= Registry::getClassReflector($class);
             $properties = [];
+            $sleep = null;
+            $proto = Registry::$prototypes[$class];
 
             if ($reflector->hasMethod('__serialize')) {
                 if (!$reflector->getMethod('__serialize')->isPublic()) {
-                    throw new \Error(sprintf('Call to %s method "%s::__serialize()".', $reflector->getMethod('__serialize')->isProtected() ? 'protected' : 'private', $class));
+                    throw new \Error(\sprintf('Call to %s method "%s::__serialize()".', $reflector->getMethod('__serialize')->isProtected() ? 'protected' : 'private', $class));
                 }
 
-                if (!\is_array($serializeProperties = $value->__serialize())) {
+                if (!\is_array($arrayValue = $value->__serialize())) {
                     throw new \TypeError($class.'::__serialize() must return an array');
                 }
 
                 if ($reflector->hasMethod('__unserialize')) {
-                    $properties = $serializeProperties;
-                } else {
-                    foreach ($serializeProperties as $n => $v) {
-                        $p = $reflector->hasProperty($n) ? $reflector->getProperty($n) : null;
-                        $c = $p && (\PHP_VERSION_ID >= 80400 ? $p->isProtectedSet() || $p->isPrivateSet() : $p->isReadOnly()) ? $p->class : 'stdClass';
-                        $properties[$c][$n] = $v;
-                    }
+                    $properties = $arrayValue;
+                    goto prepare_value;
                 }
-
-                goto prepare_value;
-            }
-
-            $sleep = null;
-            $proto = Registry::$prototypes[$class];
-
-            if (($value instanceof \ArrayIterator || $value instanceof \ArrayObject) && null !== $proto) {
+            } elseif (($value instanceof \ArrayIterator || $value instanceof \ArrayObject) && null !== $proto) {
                 // ArrayIterator and ArrayObject need special care because their "flags"
                 // option changes the behavior of the (array) casting operator.
                 [$arrayValue, $properties] = self::getArrayObjectProperties($value, $proto);
@@ -118,10 +108,7 @@
                 }
                 $properties = ['SplObjectStorage' => ["\0" => $properties]];
                 $arrayValue = (array) $value;
-            } elseif ($value instanceof \Serializable
-                || $value instanceof \__PHP_Incomplete_Class
-                || \PHP_VERSION_ID < 80200 && $value instanceof \DatePeriod
-            ) {
+            } elseif ($value instanceof \Serializable || $value instanceof \__PHP_Incomplete_Class || \PHP_VERSION_ID < 80200 && $value instanceof \DatePeriod) {
                 ++$objectsCount;
                 $objectsPool[$value] = [$id = \count($objectsPool), serialize($value), [], 0];
                 $value = new Reference($id);
@@ -145,16 +132,15 @@
                 $i = 0;
                 $n = (string) $name;
                 if ('' === $n || "\0" !== $n[0]) {
-                    $p = $reflector->hasProperty($n) ? $reflector->getProperty($n) : null;
-                    $c = $p && (\PHP_VERSION_ID >= 80400 ? $p->isProtectedSet() || $p->isPrivateSet() : $p->isReadOnly()) ? $p->class : 'stdClass';
+                    $parent = $reflector;
+                    do {
+                        $p = $parent->hasProperty($n) ? $parent->getProperty($n) : null;
+                    } while (!$p && $parent = $parent->getParentClass());
+
+                    $c = $p && (!$p->isPublic() || (\PHP_VERSION_ID >= 80400 ? $p->isProtectedSet() || $p->isPrivateSet() : $p->isReadOnly())) ? $p->class : 'stdClass';
                 } elseif ('*' === $n[1]) {
                     $n = substr($n, 3);
                     $c = $reflector->getProperty($n)->class;
-                    if ('Error' === $c) {
-                        $c = 'TypeError';
-                    } elseif ('Exception' === $c) {
-                        $c = 'ErrorException';
-                    }
                 } else {
                     $i = strpos($n, "\0", 2);
                     $c = substr($n, 1, $i - 1);
@@ -167,13 +153,22 @@
                     }
                     unset($sleep[$name], $sleep[$n]);
                 }
-                if (!\array_key_exists($name, $proto) || $proto[$name] !== $v || "\x00Error\x00trace" === $name || "\x00Exception\x00trace" === $name) {
+                if ("\x00Error\x00trace" === $name || "\x00Exception\x00trace" === $name) {
                     $properties[$c][$n] = $v;
+                } elseif (!\array_key_exists($name, $proto) || $proto[$name] !== $v) {
+                    $properties[match ($c) {
+                        'Error' => 'TypeError',
+                        'Exception' => 'ErrorException',
+                        default => $c,
+                    }][$n] = $v;
                 }
             }
             if ($sleep) {
                 foreach ($sleep as $n => $v) {
-                    trigger_error(sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $n), \E_USER_NOTICE);
+                    if (\is_string($n) && $reflector->hasProperty($n)) {
+                        continue;
+                    }
+                    trigger_error(\sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $n), \E_USER_NOTICE);
                 }
             }
             if (method_exists($class, '__unserialize')) {
@@ -226,10 +221,10 @@
         $subIndent = $indent.'    ';
 
         if (\is_string($value)) {
-            $code = sprintf("'%s'", addcslashes($value, "'\\"));
+            $code = \sprintf("'%s'", addcslashes($value, "'\\"));
 
-            $code = preg_replace_callback("/((?:[\\0\\r\\n]|\u{202A}|\u{202B}|\u{202D}|\u{202E}|\u{2066}|\u{2067}|\u{2068}|\u{202C}|\u{2069})++)(.)/", function ($m) use ($subIndent) {
-                $m[1] = sprintf('\'."%s".\'', str_replace(
+            $code = preg_replace_callback("/((?:[\\0\\r\\n]|\u{202A}|\u{202B}|\u{202D}|\u{202E}|\u{2066}|\u{2067}|\u{2068}|\u{202C}|\u{2069})++)(.)/", static function ($m) use ($subIndent) {
+                $m[1] = \sprintf('\'."%s".\'', str_replace(
                     ["\0", "\r", "\n", "\u{202A}", "\u{202B}", "\u{202D}", "\u{202E}", "\u{2066}", "\u{2067}", "\u{2068}", "\u{202C}", "\u{2069}", '\n\\'],
                     ['\0', '\r', '\n', '\u{202A}', '\u{202B}', '\u{202D}', '\u{202E}', '\u{2066}', '\u{2067}', '\u{2068}', '\u{202C}', '\u{2069}', '\n"'."\n".$subIndent.'."\\'],
                     $m[1]
@@ -287,7 +282,7 @@
             return self::exportHydrator($value, $indent, $subIndent);
         }
 
-        throw new \UnexpectedValueException(sprintf('Cannot export value of type "%s".', get_debug_type($value)));
+        throw new \UnexpectedValueException(\sprintf('Cannot export value of type "%s".', get_debug_type($value)));
     }
 
     private static function exportRegistry(Registry $value, string $indent, string $subIndent): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Internal/Hydrator.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Internal/Hydrator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Internal/Hydrator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Internal/Hydrator.php	2026-05-20 10:56:49.000000000 +0200
@@ -73,11 +73,11 @@
                 return $baseHydrator;
 
             case 'ErrorException':
-                return $baseHydrator->bindTo(null, new class() extends \ErrorException {
+                return $baseHydrator->bindTo(null, new class extends \ErrorException {
                 });
 
             case 'TypeError':
-                return $baseHydrator->bindTo(null, new class() extends \Error {
+                return $baseHydrator->bindTo(null, new class extends \Error {
                 });
 
             case 'SplObjectStorage':
@@ -86,7 +86,7 @@
                         if ("\0" === $name) {
                             foreach ($values as $i => $v) {
                                 for ($j = 0; $j < \count($v); ++$j) {
-                                    $objects[$i]->attach($v[$j], $v[++$j]);
+                                    $objects[$i][$v[$j]] = $v[++$j];
                                 }
                             }
                             continue;
@@ -178,11 +178,11 @@
                 return $baseHydrator;
 
             case 'ErrorException':
-                return $baseHydrator->bindTo(new \stdClass(), new class() extends \ErrorException {
+                return $baseHydrator->bindTo(new \stdClass(), new class extends \ErrorException {
                 });
 
             case 'TypeError':
-                return $baseHydrator->bindTo(new \stdClass(), new class() extends \Error {
+                return $baseHydrator->bindTo(new \stdClass(), new class extends \Error {
                 });
 
             case 'SplObjectStorage':
@@ -194,7 +194,7 @@
                             continue;
                         }
                         for ($i = 0; $i < \count($value); ++$i) {
-                            $object->attach($value[$i], $value[++$i]);
+                            $object[$value[$i]] = $value[++$i];
                         }
                     }
                 };
@@ -231,7 +231,11 @@
                 if (\PHP_VERSION_ID >= 80400 && !$propertyReflector->isAbstract() && $propertyReflector->getHooks()) {
                     $notByRef->{$propertyReflector->name} = $propertyReflector->setRawValue(...);
                 } elseif ($propertyReflector->isReadOnly()) {
-                    $notByRef->{$propertyReflector->name} = true;
+                    $notByRef->{$propertyReflector->name} = static function ($object, $value) use ($propertyReflector) {
+                        if (!$propertyReflector->isInitialized($object)) {
+                            $propertyReflector->setValue($object, $value);
+                        }
+                    };
                 }
             }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Internal/LazyObjectState.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Internal/LazyObjectState.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Internal/LazyObjectState.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Internal/LazyObjectState.php	2026-05-20 10:56:49.000000000 +0200
@@ -67,7 +67,7 @@
 
             if ($initializer = $this->initializer["\0"] ?? null) {
                 if (!\is_array($values = $initializer($instance, LazyObjectRegistry::$defaultProperties[$class]))) {
-                    throw new \TypeError(sprintf('The lazy-initializer defined for instance of "%s" must return an array, got "%s".', $class, get_debug_type($values)));
+                    throw new \TypeError(\sprintf('The lazy-initializer defined for instance of "%s" must return an array, got "%s".', $class, get_debug_type($values)));
                 }
                 $properties = (array) $instance;
                 foreach ($values as $key => $value) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/LazyGhostTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/LazyGhostTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/LazyGhostTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/LazyGhostTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -120,7 +120,7 @@
 
             if (null === $values) {
                 if (!\is_array($values = ($state->initializer["\0"])($this, Registry::$defaultProperties[$class]))) {
-                    throw new \TypeError(sprintf('The lazy-initializer defined for instance of "%s" must return an array, got "%s".', $class, get_debug_type($values)));
+                    throw new \TypeError(\sprintf('The lazy-initializer defined for instance of "%s" must return an array, got "%s".', $class, get_debug_type($values)));
                 }
 
                 if (\array_key_exists($key, $properties = (array) $this)) {
@@ -198,7 +198,7 @@
 
         if (null === $class) {
             $frame = debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0];
-            trigger_error(sprintf('Undefined property: %s::$%s in %s on line %s', $this::class, $name, $frame['file'], $frame['line']), \E_USER_NOTICE);
+            trigger_error(\sprintf('Undefined property: %s::$%s in %s on line %s', $this::class, $name, $frame['file'], $frame['line']), \E_USER_NOTICE);
         }
 
         get_in_scope:
@@ -375,7 +375,7 @@
             $value = $properties[$k = $name] ?? $properties[$k = "\0*\0$name"] ?? $properties[$k = "\0$class\0$name"] ?? $properties[$k = "\0$scope\0$name"] ?? $k = null;
 
             if (null === $k) {
-                trigger_error(sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $name), \E_USER_NOTICE);
+                trigger_error(\sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $name), \E_USER_NOTICE);
             } else {
                 $data[$k] = $value;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/LazyProxyTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/LazyProxyTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/LazyProxyTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/LazyProxyTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -120,7 +120,7 @@
 
         if (!$parent && null === $class && !\array_key_exists($name, (array) $instance)) {
             $frame = debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0];
-            trigger_error(sprintf('Undefined property: %s::$%s in %s on line %s', $instance::class, $name, $frame['file'], $frame['line']), \E_USER_NOTICE);
+            trigger_error(\sprintf('Undefined property: %s::$%s in %s on line %s', $instance::class, $name, $frame['file'], $frame['line']), \E_USER_NOTICE);
         }
 
         get_in_scope:
@@ -306,7 +306,7 @@
             $value = $properties[$k = $name] ?? $properties[$k = "\0*\0$name"] ?? $properties[$k = "\0$class\0$name"] ?? $properties[$k = "\0$scope\0$name"] ?? $k = null;
 
             if (null === $k) {
-                trigger_error(sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $name), \E_USER_NOTICE);
+                trigger_error(\sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $name), \E_USER_NOTICE);
             } else {
                 $data[$k] = $value;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/ProxyHelper.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/ProxyHelper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/ProxyHelper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/ProxyHelper.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,19 +28,19 @@
     public static function generateLazyGhost(\ReflectionClass $class): string
     {
         if (\PHP_VERSION_ID >= 80200 && \PHP_VERSION_ID < 80300 && $class->isReadOnly()) {
-            throw new LogicException(sprintf('Cannot generate lazy ghost with PHP < 8.3: class "%s" is readonly.', $class->name));
+            throw new LogicException(\sprintf('Cannot generate lazy ghost with PHP < 8.3: class "%s" is readonly.', $class->name));
         }
         if ($class->isFinal()) {
-            throw new LogicException(sprintf('Cannot generate lazy ghost: class "%s" is final.', $class->name));
+            throw new LogicException(\sprintf('Cannot generate lazy ghost: class "%s" is final.', $class->name));
         }
         if ($class->isInterface() || $class->isAbstract() || $class->isTrait()) {
             throw new LogicException(\sprintf('Cannot generate lazy ghost: "%s" is not a concrete class.', $class->name));
         }
         if (\stdClass::class !== $class->name && $class->isInternal()) {
-            throw new LogicException(sprintf('Cannot generate lazy ghost: class "%s" is internal.', $class->name));
+            throw new LogicException(\sprintf('Cannot generate lazy ghost: class "%s" is internal.', $class->name));
         }
         if ($class->hasMethod('__get') && 'mixed' !== (self::exportType($class->getMethod('__get')) ?? 'mixed')) {
-            throw new LogicException(sprintf('Cannot generate lazy ghost: return type of method "%s::__get()" should be "mixed".', $class->name));
+            throw new LogicException(\sprintf('Cannot generate lazy ghost: return type of method "%s::__get()" should be "mixed".', $class->name));
         }
 
         static $traitMethods;
@@ -48,14 +48,14 @@
 
         foreach ($traitMethods as $method) {
             if ($class->hasMethod($method->name) && $class->getMethod($method->name)->isFinal()) {
-                throw new LogicException(sprintf('Cannot generate lazy ghost: method "%s::%s()" is final.', $class->name, $method->name));
+                throw new LogicException(\sprintf('Cannot generate lazy ghost: method "%s::%s()" is final.', $class->name, $method->name));
             }
         }
 
         $parent = $class;
         while ($parent = $parent->getParentClass()) {
             if (\stdClass::class !== $parent->name && $parent->isInternal()) {
-                throw new LogicException(sprintf('Cannot generate lazy ghost: class "%s" extends "%s" which is internal.', $class->name, $parent->name));
+                throw new LogicException(\sprintf('Cannot generate lazy ghost: class "%s" extends "%s" which is internal.', $class->name, $parent->name));
             }
         }
 
@@ -70,7 +70,7 @@
             }
 
             if ($flags & (\ReflectionProperty::IS_FINAL | \ReflectionProperty::IS_PRIVATE)) {
-                throw new LogicException(sprintf('Cannot generate lazy ghost: property "%s::$%s" is final or private(set).', $class->name, $name));
+                throw new LogicException(\sprintf('Cannot generate lazy ghost: property "%s::$%s" is final or private(set).', $class->name, $name));
             }
 
             $p = $propertyScopes[$k][4] ?? Hydrator::$propertyScopes[$class->name][$k][4] = new \ReflectionProperty($scope, $name);
@@ -80,7 +80,7 @@
                 .($p->isProtected() ? 'protected' : 'public')
                 .($p->isProtectedSet() ? ' protected(set)' : '')
                 ." {$type} \${$name}"
-                .($p->hasDefaultValue() ? ' = '.$p->getDefaultValue() : '')
+                .($p->hasDefaultValue() ? ' = '.VarExporter::export($p->getDefaultValue()) : '')
                 ." {\n";
 
             foreach ($p->getHooks() as $hook => $method) {
@@ -92,7 +92,7 @@
                     $arg = '$'.$method->getParameters()[0]->name;
                     $hooks .= "        set({$parameters}) { \$this->initializeLazyObject(); parent::\${$name}::set({$arg}); }\n";
                 } else {
-                    throw new LogicException(sprintf('Cannot generate lazy ghost: hook "%s::%s()" is not supported.', $class->name, $method->name));
+                    throw new LogicException(\sprintf('Cannot generate lazy ghost: hook "%s::%s()" is not supported.', $class->name, $method->name));
                 }
             }
 
@@ -127,13 +127,13 @@
     public static function generateLazyProxy(?\ReflectionClass $class, array $interfaces = []): string
     {
         if (!class_exists($class?->name ?? \stdClass::class, false)) {
-            throw new LogicException(sprintf('Cannot generate lazy proxy: "%s" is not a class.', $class->name));
+            throw new LogicException(\sprintf('Cannot generate lazy proxy: "%s" is not a class.', $class->name));
         }
         if ($class?->isFinal()) {
-            throw new LogicException(sprintf('Cannot generate lazy proxy: class "%s" is final.', $class->name));
+            throw new LogicException(\sprintf('Cannot generate lazy proxy: class "%s" is final.', $class->name));
         }
         if (\PHP_VERSION_ID >= 80200 && \PHP_VERSION_ID < 80300 && $class?->isReadOnly()) {
-            throw new LogicException(sprintf('Cannot generate lazy proxy with PHP < 8.3: class "%s" is readonly.', $class->name));
+            throw new LogicException(\sprintf('Cannot generate lazy proxy with PHP < 8.3: class "%s" is readonly.', $class->name));
         }
 
         $propertyScopes = $class ? Hydrator::$propertyScopes[$class->name] ??= Hydrator::getPropertyScopes($class->name) : [];
@@ -159,7 +159,7 @@
                 }
 
                 if ($flags & (\ReflectionProperty::IS_FINAL | \ReflectionProperty::IS_PRIVATE)) {
-                    throw new LogicException(sprintf('Cannot generate lazy proxy: property "%s::$%s" is final or private(set).', $class->name, $name));
+                    throw new LogicException(\sprintf('Cannot generate lazy proxy: property "%s::$%s" is final or private(set).', $class->name, $name));
                 }
 
                 $p = $propertyScopes[$k][4] ?? Hydrator::$propertyScopes[$class->name][$k][4] = new \ReflectionProperty($scope, $name);
@@ -170,7 +170,7 @@
         $methodReflectors = [$class?->getMethods(\ReflectionMethod::IS_PUBLIC | \ReflectionMethod::IS_PROTECTED) ?? []];
         foreach ($interfaces as $interface) {
             if (!$interface->isInterface()) {
-                throw new LogicException(sprintf('Cannot generate lazy proxy: "%s" is not an interface.', $interface->name));
+                throw new LogicException(\sprintf('Cannot generate lazy proxy: "%s" is not an interface.', $interface->name));
             }
             $methodReflectors[] = $interface->getMethods();
 
@@ -204,31 +204,31 @@
                 if ('get' === $hook) {
                     $ref = ($method->returnsReference() ? '&' : '');
                     $hooks .= <<<EOPHP
-                            {$ref}get {
-                                if (isset(\$this->lazyObjectState)) {
-                                    return (\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$p->name};
-                                }
+                                {$ref}get {
+                                    if (isset(\$this->lazyObjectState)) {
+                                        return (\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$p->name};
+                                    }
 
-                                return parent::\${$p->name}::get();
-                            }
+                                    return parent::\${$p->name}::get();
+                                }
 
-                    EOPHP;
+                        EOPHP;
                 } elseif ('set' === $hook) {
                     $parameters = self::exportParameters($method, true);
                     $arg = '$'.$method->getParameters()[0]->name;
                     $hooks .= <<<EOPHP
-                            set({$parameters}) {
-                                if (isset(\$this->lazyObjectState)) {
-                                    \$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)();
-                                    \$this->lazyObjectState->realInstance->{$p->name} = {$arg};
-                                }
+                                set({$parameters}) {
+                                    if (isset(\$this->lazyObjectState)) {
+                                        \$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)();
+                                        \$this->lazyObjectState->realInstance->{$p->name} = {$arg};
+                                    }
 
-                                parent::\${$p->name}::set({$arg});
-                            }
+                                    parent::\${$p->name}::set({$arg});
+                                }
 
-                    EOPHP;
+                        EOPHP;
                 } else {
-                    throw new LogicException(sprintf('Cannot generate lazy proxy: hook "%s::%s()" is not supported.', $class->name, $method->name));
+                    throw new LogicException(\sprintf('Cannot generate lazy proxy: hook "%s::%s()" is not supported.', $class->name, $method->name));
                 }
             }
 
@@ -266,7 +266,7 @@
             }
             if ($method->isFinal()) {
                 if ($extendsInternalClass || $methodsHaveToBeProxied || method_exists(LazyProxyTrait::class, $method->name)) {
-                    throw new LogicException(sprintf('Cannot generate lazy proxy: method "%s::%s()" is final.', $class->name, $method->name));
+                    throw new LogicException(\sprintf('Cannot generate lazy proxy: method "%s::%s()" is final.', $class->name, $method->name));
                 }
                 continue;
             }
@@ -281,12 +281,12 @@
                 $body = "        $parentCall;";
             } elseif (str_ends_with($signature, '): never') || str_ends_with($signature, '): void')) {
                 $body = <<<EOPHP
-                        if (isset(\$this->lazyObjectState)) {
-                            (\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
-                        } else {
-                            {$parentCall};
-                        }
-                EOPHP;
+                            if (isset(\$this->lazyObjectState)) {
+                                (\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
+                            } else {
+                                {$parentCall};
+                            }
+                    EOPHP;
             } else {
                 if (!$methodsHaveToBeProxied && !$method->isAbstract()) {
                     // Skip proxying methods that might return $this
@@ -303,12 +303,12 @@
                 }
 
                 $body = <<<EOPHP
-                        if (isset(\$this->lazyObjectState)) {
-                            return (\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
-                        }
+                            if (isset(\$this->lazyObjectState)) {
+                                return (\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args});
+                            }
 
-                        return {$parentCall};
-                EOPHP;
+                            return {$parentCall};
+                    EOPHP;
             }
             $methods[$lcName] = "    {$signature}\n    {\n{$body}\n    }";
         }
@@ -335,10 +335,10 @@
         ) {
             // fix contravariance type problem when $class declares a `__unserialize()` method without typehint.
             $lazyProxyTraitStatement = <<<EOPHP
-            use \Symfony\Component\VarExporter\LazyProxyTrait {
-                    __unserialize as private __doUnserialize;
-                }
-            EOPHP;
+                use \Symfony\Component\VarExporter\LazyProxyTrait {
+                        __unserialize as private __doUnserialize;
+                    }
+                EOPHP;
 
             $body .= <<<EOPHP
 
@@ -350,8 +350,8 @@
                 EOPHP;
         } else {
             $lazyProxyTraitStatement = <<<EOPHP
-            use \Symfony\Component\VarExporter\LazyProxyTrait;
-            EOPHP;
+                use \Symfony\Component\VarExporter\LazyProxyTrait;
+                EOPHP;
         }
 
         return <<<EOPHP
@@ -396,7 +396,7 @@
             $args = substr($args, 0, -2);
         } else {
             $args = explode(', ', $args, 1 + $byRefIndex);
-            $args[$byRefIndex] = sprintf('...\array_slice(\func_get_args(), %d)', $byRefIndex);
+            $args[$byRefIndex] = \sprintf('...\array_slice(\func_get_args(), %d)', $byRefIndex);
             $args = implode(', ', $args);
         }
 
@@ -477,7 +477,9 @@
             return '';
         }
         if (null === $glue) {
-            return (!$noBuiltin && $type->allowsNull() && !\in_array($name, ['mixed', 'null'], true) ? '?' : '').$types[0];
+            $defaultNull = $owner instanceof \ReflectionParameter && 'NULL' === rtrim(substr(explode('$'.$owner->name.' = ', (string) $owner, 2)[1] ?? '', 0, -2));
+
+            return (!$noBuiltin && ($type->allowsNull() || $defaultNull) && !\in_array($name, ['mixed', 'null'], true) ? '?' : '').$types[0];
         }
         sort($types);
 
@@ -514,7 +516,7 @@
 
         $regexp = '/([\[\( ]|^)([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z0-9_\x7f-\xff]++)*+)(\(?)(?!: )/';
         $callback = (false !== strpbrk($default, "\\:('") && $class = $param->getDeclaringClass())
-            ? fn ($m) => $m[1].match ($m[2]) {
+            ? static fn ($m) => $m[1].match ($m[2]) {
                 'new', 'false', 'true', 'null' => $m[2],
                 'NULL' => 'null',
                 'self' => '\\'.$class->name,
@@ -522,13 +524,13 @@
                 'parent' => ($parent = $class->getParentClass()) ? '\\'.$parent->name : 'parent',
                 default => self::exportSymbol($m[2], '(' !== $m[3], $namespace),
             }.$m[3]
-            : fn ($m) => $m[1].match ($m[2]) {
+            : static fn ($m) => $m[1].match ($m[2]) {
                 'new', 'false', 'true', 'null', 'self', 'parent' => $m[2],
                 'NULL' => 'null',
                 default => self::exportSymbol($m[2], '(' !== $m[3], $namespace),
             }.$m[3];
 
-        return implode('', array_map(fn ($part) => match ($part[0]) {
+        return implode('', array_map(static fn ($part) => match ($part[0]) {
             '"' => $part, // for internal classes only
             "'" => false !== strpbrk($part, "\\\0\r\n") ? '"'.substr(str_replace(['$', "\0", "\r", "\n"], ['\$', '\0', '\r', '\n'], $part), 1, -1).'"' : $part,
             default => preg_replace_callback($regexp, $callback, $part),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/GoodNight.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/GoodNight.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/GoodNight.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/GoodNight.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,33 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarExporter\Tests\Fixtures;
+
+class GoodNight
+{
+    public $good;
+    protected $foo;
+    private $bar;
+
+    public function __construct()
+    {
+        unset($this->good);
+        $this->foo = 'afternoon';
+        $this->bar = 'morning';
+    }
+
+    public function __sleep(): array
+    {
+        $this->good = 'night';
+
+        return ['good', 'foo', "\0*\0foo", "\0".__CLASS__."\0bar"];
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/LazyProxy/HookedWithDefaultValue.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/LazyProxy/HookedWithDefaultValue.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/LazyProxy/HookedWithDefaultValue.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/LazyProxy/HookedWithDefaultValue.php	2026-05-20 10:56:49.000000000 +0200
@@ -4,8 +4,18 @@
 
 class HookedWithDefaultValue
 {
-    public int $backedWithDefault = 321 {
-        get => $this->backedWithDefault;
-        set => $this->backedWithDefault = $value;
+    public int $backedIntWithDefault = 321 {
+        get => $this->backedIntWithDefault;
+        set => $this->backedIntWithDefault = $value;
+    }
+
+    public string $backedStringWithDefault = '321' {
+        get => $this->backedStringWithDefault;
+        set => $this->backedStringWithDefault = $value;
+    }
+
+    public bool $backedBoolWithDefault = false {
+        get => $this->backedBoolWithDefault;
+        set => $this->backedBoolWithDefault = $value;
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/MyWakeup.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/MyWakeup.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/MyWakeup.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/MyWakeup.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,33 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarExporter\Tests\Fixtures;
+
+class MyWakeup
+{
+    public $sub;
+    public $bis;
+    public $baz;
+    public $def = 234;
+
+    public function __sleep(): array
+    {
+        return ['sub', 'baz'];
+    }
+
+    public function __wakeup()
+    {
+        if (123 === $this->sub) {
+            $this->bis = 123;
+            $this->baz = 123;
+        }
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/php74-serializable.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/php74-serializable.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/php74-serializable.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/php74-serializable.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,7 +2,7 @@
 
 return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
     $o = [
-        clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['Symfony\\Component\\VarExporter\\Tests\\Php74Serializable'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\Php74Serializable')),
+        clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['Symfony\\Component\\VarExporter\\Tests\\Fixtures\\Php74Serializable'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\Fixtures\\Php74Serializable')),
         clone ($p['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
     ],
     null,
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/Php74Serializable.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/Php74Serializable.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/Php74Serializable.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/Php74Serializable.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,47 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarExporter\Tests\Fixtures;
+
+class Php74Serializable implements \Serializable
+{
+    public $foo;
+
+    public function __serialize(): array
+    {
+        return [$this->foo = new \stdClass()];
+    }
+
+    public function __unserialize(array $data)
+    {
+        [$this->foo] = $data;
+    }
+
+    public function __sleep(): array
+    {
+        throw new \BadMethodCallException();
+    }
+
+    public function __wakeup()
+    {
+        throw new \BadMethodCallException();
+    }
+
+    public function serialize(): string
+    {
+        throw new \BadMethodCallException();
+    }
+
+    public function unserialize($ser)
+    {
+        throw new \BadMethodCallException();
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/__serialize-but-no-__unserialize.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/__serialize-but-no-__unserialize.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/__serialize-but-no-__unserialize.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/__serialize-but-no-__unserialize.php	2026-05-20 10:56:49.000000000 +0200
@@ -6,11 +6,21 @@
     ],
     null,
     [
-        'stdClass' => [
+        'Symfony\\Component\\VarExporter\\Tests\\ParentOf__SerializeButNo__Unserialize' => [
             'foo' => [
+                'foo',
+            ],
+        ],
+        'stdClass' => [
+            'baz' => [
                 'ccc',
             ],
         ],
+        'Symfony\\Component\\VarExporter\\Tests\\__SerializeButNo__Unserialize' => [
+            'bar' => [
+                'ddd',
+            ],
+        ],
     ],
     $o[0],
     []
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/SleepUninitialized.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/SleepUninitialized.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/SleepUninitialized.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/SleepUninitialized.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,31 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarExporter\Tests\Fixtures;
+
+abstract class SleepUninitializedBase
+{
+    public string $set;
+    public string $unsetOnParent;
+
+    public function __sleep(): array
+    {
+        return ['set', 'unsetOnParent'];
+    }
+}
+
+class SleepUninitialized extends SleepUninitializedBase
+{
+    public function __construct(string $value)
+    {
+        $this->set = $value;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/var-on-sleep.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/var-on-sleep.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/var-on-sleep.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/var-on-sleep.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,7 +2,7 @@
 
 return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
     $o = [
-        clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['Symfony\\Component\\VarExporter\\Tests\\GoodNight'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\GoodNight')),
+        clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['Symfony\\Component\\VarExporter\\Tests\\Fixtures\\GoodNight'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\Fixtures\\GoodNight')),
     ],
     null,
     [
@@ -11,7 +11,7 @@
                 'night',
             ],
         ],
-        'Symfony\\Component\\VarExporter\\Tests\\GoodNight' => [
+        'Symfony\\Component\\VarExporter\\Tests\\Fixtures\\GoodNight' => [
             'foo' => [
                 'afternoon',
             ],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/wakeup.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/wakeup.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/wakeup.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/wakeup.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,8 +2,8 @@
 
 return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
     $o = [
-        clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['Symfony\\Component\\VarExporter\\Tests\\MyWakeup'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\MyWakeup')),
-        clone $p['Symfony\\Component\\VarExporter\\Tests\\MyWakeup'],
+        clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['Symfony\\Component\\VarExporter\\Tests\\Fixtures\\MyWakeup'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\Fixtures\\MyWakeup')),
+        clone $p['Symfony\\Component\\VarExporter\\Tests\\Fixtures\\MyWakeup'],
     ],
     null,
     [
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/wakeup-refl.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/wakeup-refl.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/wakeup-refl.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/Fixtures/wakeup-refl.php	2026-05-20 10:56:49.000000000 +0200
@@ -2,7 +2,7 @@
 
 return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
     $o = [
-        clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['Symfony\\Component\\VarExporter\\Tests\\MyWakeup'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\MyWakeup')),
+        clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['Symfony\\Component\\VarExporter\\Tests\\Fixtures\\MyWakeup'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\Fixtures\\MyWakeup')),
     ],
     null,
     [],
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/HydratorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/HydratorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/HydratorTest.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/HydratorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,58 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarExporter\Tests;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\VarExporter\Hydrator;
+use Symfony\Component\VarExporter\Instantiator;
+
+class HydratorTest extends TestCase
+{
+    public function testHydrateInitializedReadonlyProperty()
+    {
+        $object = new HydratorTestClass(123);
+
+        Hydrator::hydrate($object, [
+            'value' => 456,
+            'status' => 'hydrated',
+        ]);
+
+        $this->assertSame(123, $object->getValue());
+        $this->assertSame('hydrated', $object->status);
+    }
+
+    public function testHydrateUninitializedReadonlyProperty()
+    {
+        $object = Instantiator::instantiate(HydratorTestClass::class);
+
+        Hydrator::hydrate($object, ['value' => 456]);
+
+        $this->assertSame(456, $object->getValue());
+    }
+}
+
+class HydratorTestClass
+{
+    public string $status = 'new';
+
+    private readonly int $value;
+
+    public function __construct(int $value)
+    {
+        $this->value = $value;
+    }
+
+    public function getValue(): int
+    {
+        return $this->value;
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/LazyGhostTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/LazyGhostTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/LazyGhostTraitTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/LazyGhostTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,8 @@
 namespace Symfony\Component\VarExporter\Tests;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Serializer\Mapping\AttributeMetadata;
+use Symfony\Component\Serializer\Mapping\ClassMetadata;
 use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
 use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
 use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
@@ -30,11 +32,33 @@
 use Symfony\Component\VarExporter\Tests\Fixtures\LazyProxy\HookedWithDefaultValue;
 use Symfony\Component\VarExporter\Tests\Fixtures\SimpleObject;
 
+$errorHandler = set_error_handler(static function (int $errno, string $errstr) use (&$errorHandler) {
+    if (\E_DEPRECATED === $errno && str_contains($errstr, 'serialize()')) {
+        // We're testing if the component handles deprecated Serializable and __sleep/wakeup implementations well.
+        // This kind of implementation triggers a deprecation warning that we explicitly want to ignore here.
+        return true;
+    }
+
+    return $errorHandler ? $errorHandler(...\func_get_args()) : false;
+});
+
+try {
+    foreach ([
+        MagicClass::class,
+        ClassMetadata::class,
+        AttributeMetadata::class,
+    ] as $class) {
+        class_exists($class);
+    }
+} finally {
+    restore_error_handler();
+}
+
 class LazyGhostTraitTest extends TestCase
 {
     public function testGetPublic()
     {
-        $instance = ChildTestClass::createLazyGhost(function (ChildTestClass $ghost) {
+        $instance = ChildTestClass::createLazyGhost(static function (ChildTestClass $ghost) {
             $ghost->__construct();
         });
 
@@ -45,7 +69,7 @@
 
     public function testGetPrivate()
     {
-        $instance = ChildTestClass::createLazyGhost(function (ChildTestClass $ghost) {
+        $instance = ChildTestClass::createLazyGhost(static function (ChildTestClass $ghost) {
             $ghost->__construct();
         });
 
@@ -56,7 +80,7 @@
 
     public function testIssetPublic()
     {
-        $instance = ChildTestClass::createLazyGhost(function (ChildTestClass $ghost) {
+        $instance = ChildTestClass::createLazyGhost(static function (ChildTestClass $ghost) {
             $ghost->__construct();
         });
 
@@ -67,7 +91,7 @@
 
     public function testUnsetPublic()
     {
-        $instance = ChildTestClass::createLazyGhost(function (ChildTestClass $ghost) {
+        $instance = ChildTestClass::createLazyGhost(static function (ChildTestClass $ghost) {
             $ghost->__construct();
         });
 
@@ -81,7 +105,7 @@
 
     public function testSetPublic()
     {
-        $instance = ChildTestClass::createLazyGhost(function (ChildTestClass $ghost) {
+        $instance = ChildTestClass::createLazyGhost(static function (ChildTestClass $ghost) {
             $ghost->__construct();
         });
 
@@ -93,7 +117,7 @@
 
     public function testSetPrivate()
     {
-        $instance = ChildTestClass::createLazyGhost(function (ChildTestClass $ghost) {
+        $instance = ChildTestClass::createLazyGhost(static function (ChildTestClass $ghost) {
             $ghost->__construct();
         });
 
@@ -105,7 +129,7 @@
 
     public function testClone()
     {
-        $instance = ChildTestClass::createLazyGhost(function (ChildTestClass $ghost) {
+        $instance = ChildTestClass::createLazyGhost(static function (ChildTestClass $ghost) {
             $ghost->__construct();
         });
 
@@ -121,7 +145,7 @@
 
     public function testSerialize()
     {
-        $instance = ChildTestClass::createLazyGhost(function (ChildTestClass $ghost) {
+        $instance = ChildTestClass::createLazyGhost(static function (ChildTestClass $ghost) {
             $ghost->__construct();
         });
 
@@ -169,14 +193,14 @@
     {
         yield [new MagicClass()];
 
-        yield [ChildMagicClass::createLazyGhost(function (ChildMagicClass $instance) {
+        yield [ChildMagicClass::createLazyGhost(static function (ChildMagicClass $instance) {
             $instance->__construct();
         })];
     }
 
     public function testResetLazyGhost()
     {
-        $instance = ChildMagicClass::createLazyGhost(function (ChildMagicClass $instance) {
+        $instance = ChildMagicClass::createLazyGhost(static function (ChildMagicClass $instance) {
             $instance->__construct();
         });
 
@@ -189,7 +213,7 @@
     public function testFullInitialization()
     {
         $counter = 0;
-        $instance = ChildTestClass::createLazyGhost(function (ChildTestClass $ghost) use (&$counter) {
+        $instance = ChildTestClass::createLazyGhost(static function (ChildTestClass $ghost) use (&$counter) {
             ++$counter;
             $ghost->__construct();
         });
@@ -239,7 +263,7 @@
 
                 return 6 === $default ? 678 : -1;
             },
-            'dummyProperty' => fn () => 123,
+            'dummyProperty' => static fn () => 123,
         ]);
 
         $this->assertSame(["\0".TestClass::class."\0lazyObjectState"], array_keys((array) $instance));
@@ -302,14 +326,14 @@
      */
     public function testPartialInitializationWithNastyPassByRef()
     {
-        $instance = ChildTestClass::createLazyGhost(['public' => fn (ChildTestClass $instance, string &$property, ?string &$scope, mixed $default) => $property = $scope = 123]);
+        $instance = ChildTestClass::createLazyGhost(['public' => static fn (ChildTestClass $instance, string &$property, ?string &$scope, mixed $default) => $property = $scope = 123]);
 
         $this->assertSame(123, $instance->public);
     }
 
     public function testSetStdClassProperty()
     {
-        $instance = ChildStdClass::createLazyGhost(function (ChildStdClass $ghost) {
+        $instance = ChildStdClass::createLazyGhost(static function (ChildStdClass $ghost) {
         });
 
         $instance->public = 12;
@@ -318,14 +342,14 @@
 
     public function testLazyClass()
     {
-        $obj = new LazyClass(fn ($proxy) => $proxy->public = 123);
+        $obj = new LazyClass(static fn ($proxy) => $proxy->public = 123);
 
         $this->assertSame(123, $obj->public);
     }
 
     public function testReflectionPropertyGetValue()
     {
-        $obj = TestClass::createLazyGhost(fn ($proxy) => $proxy->__construct());
+        $obj = TestClass::createLazyGhost(static fn ($proxy) => $proxy->__construct());
 
         $r = new \ReflectionProperty($obj, 'private');
 
@@ -426,10 +450,10 @@
 
     public function testIndirectModification()
     {
-        $obj = new class() {
+        $obj = new class {
             public array $foo;
         };
-        $proxy = $this->createLazyGhost($obj::class, fn () => null);
+        $proxy = $this->createLazyGhost($obj::class, static fn () => null);
 
         $proxy->foo[] = 123;
 
@@ -441,7 +465,7 @@
      */
     public function testReadOnlyClass()
     {
-        $proxy = $this->createLazyGhost(ReadOnlyClass::class, fn ($proxy) => $proxy->__construct(123));
+        $proxy = $this->createLazyGhost(ReadOnlyClass::class, static fn ($proxy) => $proxy->__construct(123));
 
         $this->assertSame(123, $proxy->foo);
     }
@@ -459,7 +483,7 @@
 
     public function testAccessingUninializedPropertyWithLazyGhost()
     {
-        $object = $this->createLazyGhost(ClassWithUninitializedObjectProperty::class, function ($instance) {});
+        $object = $this->createLazyGhost(ClassWithUninitializedObjectProperty::class, static function ($instance) {});
 
         $this->expectException(\Error::class);
         $this->expectExceptionCode(0);
@@ -470,7 +494,7 @@
 
     public function testNormalization()
     {
-        $object = $this->createLazyGhost(SimpleObject::class, function ($instance) {});
+        $object = $this->createLazyGhost(SimpleObject::class, static function ($instance) {});
 
         $loader = new AttributeLoader();
         $metadataFactory = new ClassMetadataFactory($loader);
@@ -487,7 +511,7 @@
     public function testPropertyHooks()
     {
         $initialized = false;
-        $object = $this->createLazyGhost(Hooked::class, function ($instance) use (&$initialized) {
+        $object = $this->createLazyGhost(Hooked::class, static function ($instance) use (&$initialized) {
             $initialized = true;
         });
 
@@ -497,7 +521,7 @@
         $this->assertTrue($initialized);
 
         $initialized = false;
-        $object = $this->createLazyGhost(Hooked::class, function ($instance) use (&$initialized) {
+        $object = $this->createLazyGhost(Hooked::class, static function ($instance) use (&$initialized) {
             $initialized = true;
         });
 
@@ -512,20 +536,26 @@
     public function testPropertyHooksWithDefaultValue()
     {
         $initialized = false;
-        $object = $this->createLazyGhost(HookedWithDefaultValue::class, function ($instance) use (&$initialized) {
+        $object = $this->createLazyGhost(HookedWithDefaultValue::class, static function ($instance) use (&$initialized) {
             $initialized = true;
         });
 
-        $this->assertSame(321, $object->backedWithDefault);
+        $this->assertSame(321, $object->backedIntWithDefault);
+        $this->assertSame('321', $object->backedStringWithDefault);
+        $this->assertFalse($object->backedBoolWithDefault);
         $this->assertTrue($initialized);
 
         $initialized = false;
-        $object = $this->createLazyGhost(HookedWithDefaultValue::class, function ($instance) use (&$initialized) {
+        $object = $this->createLazyGhost(HookedWithDefaultValue::class, static function ($instance) use (&$initialized) {
             $initialized = true;
         });
-        $object->backedWithDefault = 654;
+        $object->backedIntWithDefault = 654;
+        $object->backedStringWithDefault = '654';
+        $object->backedBoolWithDefault = true;
         $this->assertTrue($initialized);
-        $this->assertSame(654, $object->backedWithDefault);
+        $this->assertSame(654, $object->backedIntWithDefault);
+        $this->assertSame('654', $object->backedStringWithDefault);
+        $this->assertTrue($object->backedBoolWithDefault);
     }
 
     /**
@@ -533,14 +563,14 @@
      */
     public function testAsymmetricVisibility()
     {
-        $object = $this->createLazyGhost(AsymmetricVisibility::class, function ($instance) {
+        $object = $this->createLazyGhost(AsymmetricVisibility::class, static function ($instance) {
             $instance->__construct(123, 234);
         });
 
         $this->assertSame(123, $object->foo);
         $this->assertSame(234, $object->getBar());
 
-        $object = $this->createLazyGhost(AsymmetricVisibility::class, function ($instance) {
+        $object = $this->createLazyGhost(AsymmetricVisibility::class, static function ($instance) {
             $instance->__construct(123, 234);
         });
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/LazyProxyTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/LazyProxyTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/LazyProxyTraitTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/LazyProxyTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -30,12 +30,32 @@
 use Symfony\Component\VarExporter\Tests\Fixtures\LazyProxy\TestWakeupClass;
 use Symfony\Component\VarExporter\Tests\Fixtures\SimpleObject;
 
+$errorHandler = set_error_handler(static function (int $errno, string $errstr) use (&$errorHandler) {
+    if (\E_DEPRECATED === $errno && str_contains($errstr, 'serialize()')) {
+        // We're testing if the component handles deprecated Serializable and __sleep/wakeup implementations well.
+        // This kind of implementation triggers a deprecation warning that we explicitly want to ignore here.
+        return true;
+    }
+
+    return $errorHandler ? $errorHandler(...\func_get_args()) : false;
+});
+
+try {
+    foreach ([
+        TestWakeupClass::class,
+    ] as $class) {
+        class_exists($class);
+    }
+} finally {
+    restore_error_handler();
+}
+
 class LazyProxyTraitTest extends TestCase
 {
     public function testGetter()
     {
         $initCounter = 0;
-        $proxy = $this->createLazyProxy(TestClass::class, function () use (&$initCounter) {
+        $proxy = $this->createLazyProxy(TestClass::class, static function () use (&$initCounter) {
             ++$initCounter;
 
             return new TestClass((object) ['hello' => 'world']);
@@ -60,7 +80,7 @@
     public function testInitialize()
     {
         $initCounter = 0;
-        $proxy = $this->createLazyProxy(TestClass::class, function () use (&$initCounter) {
+        $proxy = $this->createLazyProxy(TestClass::class, static function () use (&$initCounter) {
             ++$initCounter;
 
             return new TestClass((object) ['hello' => 'world']);
@@ -80,7 +100,7 @@
     public function testClone()
     {
         $initCounter = 0;
-        $proxy = $this->createLazyProxy(TestClass::class, function () use (&$initCounter) {
+        $proxy = $this->createLazyProxy(TestClass::class, static function () use (&$initCounter) {
             ++$initCounter;
 
             return new TestClass((object) ['hello' => 'world']);
@@ -101,7 +121,7 @@
     public function testUnserialize()
     {
         $initCounter = 0;
-        $proxy = $this->createLazyProxy(TestUnserializeClass::class, function () use (&$initCounter) {
+        $proxy = $this->createLazyProxy(TestUnserializeClass::class, static function () use (&$initCounter) {
             ++$initCounter;
 
             return new TestUnserializeClass((object) ['hello' => 'world']);
@@ -123,7 +143,7 @@
     public function testWakeup()
     {
         $initCounter = 0;
-        $proxy = $this->createLazyProxy(TestWakeupClass::class, function () use (&$initCounter) {
+        $proxy = $this->createLazyProxy(TestWakeupClass::class, static function () use (&$initCounter) {
             ++$initCounter;
 
             return new TestWakeupClass((object) ['hello' => 'world']);
@@ -143,7 +163,7 @@
     public function testDestruct()
     {
         $initCounter = 0;
-        $proxy = $this->createLazyProxy(TestClass::class, function () use (&$initCounter) {
+        $proxy = $this->createLazyProxy(TestClass::class, static function () use (&$initCounter) {
             ++$initCounter;
 
             return new TestClass((object) ['hello' => 'world']);
@@ -152,7 +172,7 @@
         unset($proxy);
         $this->assertSame(0, $initCounter);
 
-        $proxy = $this->createLazyProxy(TestClass::class, function () use (&$initCounter) {
+        $proxy = $this->createLazyProxy(TestClass::class, static function () use (&$initCounter) {
             ++$initCounter;
 
             return new TestClass((object) ['hello' => 'world']);
@@ -166,7 +186,7 @@
     public function testDynamicProperty()
     {
         $initCounter = 0;
-        $proxy = $this->createLazyProxy(TestClass::class, function () use (&$initCounter) {
+        $proxy = $this->createLazyProxy(TestClass::class, static function () use (&$initCounter) {
             ++$initCounter;
 
             return new TestClass((object) ['hello' => 'world']);
@@ -184,14 +204,14 @@
 
     public function testStringMagicGet()
     {
-        $proxy = $this->createLazyProxy(StringMagicGetClass::class, fn () => new StringMagicGetClass());
+        $proxy = $this->createLazyProxy(StringMagicGetClass::class, static fn () => new StringMagicGetClass());
 
         $this->assertSame('abc', $proxy->abc);
     }
 
     public function testFinalPublicClass()
     {
-        $proxy = $this->createLazyProxy(FinalPublicClass::class, fn () => new FinalPublicClass());
+        $proxy = $this->createLazyProxy(FinalPublicClass::class, static fn () => new FinalPublicClass());
 
         $this->assertSame(1, $proxy->increment());
         $this->assertSame(2, $proxy->increment());
@@ -200,7 +220,7 @@
 
     public function testOverwritePropClass()
     {
-        $proxy = $this->createLazyProxy(TestOverwritePropClass::class, fn () => new TestOverwritePropClass('123', 5));
+        $proxy = $this->createLazyProxy(TestOverwritePropClass::class, static fn () => new TestOverwritePropClass('123', 5));
 
         $this->assertSame('123', $proxy->getDep());
         $this->assertSame(1, $proxy->increment());
@@ -208,7 +228,7 @@
 
     public function testWither()
     {
-        $obj = new class() {
+        $obj = new class {
             public $foo = 123;
 
             public function withFoo($foo): static
@@ -219,7 +239,7 @@
                 return $clone;
             }
         };
-        $proxy = $this->createLazyProxy($obj::class, fn () => $obj);
+        $proxy = $this->createLazyProxy($obj::class, static fn () => $obj);
 
         $clone = $proxy->withFoo(234);
         $this->assertSame($clone::class, $proxy::class);
@@ -229,7 +249,7 @@
 
     public function testFluent()
     {
-        $obj = new class() {
+        $obj = new class {
             public $foo = 123;
 
             public function setFoo($foo): static
@@ -239,7 +259,7 @@
                 return $this;
             }
         };
-        $proxy = $this->createLazyProxy($obj::class, fn () => $obj);
+        $proxy = $this->createLazyProxy($obj::class, static fn () => $obj);
 
         $this->assertSame($proxy->setFoo(234), $proxy);
         $this->assertSame(234, $proxy->foo);
@@ -247,10 +267,10 @@
 
     public function testIndirectModification()
     {
-        $obj = new class() {
+        $obj = new class {
             public array $foo;
         };
-        $proxy = $this->createLazyProxy($obj::class, fn () => $obj);
+        $proxy = $this->createLazyProxy($obj::class, static fn () => $obj);
 
         $proxy->foo[] = 123;
 
@@ -267,21 +287,21 @@
             $this->expectExceptionMessage('Cannot generate lazy proxy with PHP < 8.3: class "Symfony\Component\VarExporter\Tests\Fixtures\LazyProxy\ReadOnlyClass" is readonly.');
         }
 
-        $proxy = $this->createLazyProxy(ReadOnlyClass::class, fn () => new ReadOnlyClass(123));
+        $proxy = $this->createLazyProxy(ReadOnlyClass::class, static fn () => new ReadOnlyClass(123));
 
         $this->assertSame(123, $proxy->foo);
     }
 
     public function testLazyDecoratorClass()
     {
-        $obj = new class() extends TestClass {
+        $obj = new class extends TestClass {
             use LazyProxyTrait {
                 createLazyProxy as private;
             }
 
             public function __construct()
             {
-                self::createLazyProxy(fn () => new TestClass((object) ['foo' => 123]), $this);
+                self::createLazyProxy(static fn () => new TestClass((object) ['foo' => 123]), $this);
             }
         };
 
@@ -290,7 +310,7 @@
 
     public function testNormalization()
     {
-        $object = $this->createLazyProxy(SimpleObject::class, fn () => new SimpleObject());
+        $object = $this->createLazyProxy(SimpleObject::class, static fn () => new SimpleObject());
 
         $loader = new AttributeLoader();
         $metadataFactory = new ClassMetadataFactory($loader);
@@ -307,7 +327,7 @@
     public function testConcretePropertyHooks()
     {
         $initialized = false;
-        $object = $this->createLazyProxy(Hooked::class, function () use (&$initialized) {
+        $object = $this->createLazyProxy(Hooked::class, static function () use (&$initialized) {
             $initialized = true;
 
             return new Hooked();
@@ -319,7 +339,7 @@
         $this->assertTrue($initialized);
 
         $initialized = false;
-        $object = $this->createLazyProxy(Hooked::class, function () use (&$initialized) {
+        $object = $this->createLazyProxy(Hooked::class, static function () use (&$initialized) {
             $initialized = true;
 
             return new Hooked();
@@ -336,7 +356,7 @@
     public function testAbstractPropertyHooks()
     {
         $initialized = false;
-        $object = $this->createLazyProxy(AbstractHooked::class, function () use (&$initialized) {
+        $object = $this->createLazyProxy(AbstractHooked::class, static function () use (&$initialized) {
             $initialized = true;
 
             return new class extends AbstractHooked {
@@ -350,7 +370,7 @@
         $this->assertTrue($initialized);
 
         $initialized = false;
-        $object = $this->createLazyProxy(AbstractHooked::class, function () use (&$initialized) {
+        $object = $this->createLazyProxy(AbstractHooked::class, static function () use (&$initialized) {
             $initialized = true;
 
             return new class extends AbstractHooked {
@@ -369,16 +389,12 @@
      */
     public function testAsymmetricVisibility()
     {
-        $object = $this->createLazyProxy(AsymmetricVisibility::class, function () {
-            return new AsymmetricVisibility(123, 234);
-        });
+        $object = $this->createLazyProxy(AsymmetricVisibility::class, static fn () => new AsymmetricVisibility(123, 234));
 
         $this->assertSame(123, $object->foo);
         $this->assertSame(234, $object->getBar());
 
-        $object = $this->createLazyProxy(AsymmetricVisibility::class, function () {
-            return new AsymmetricVisibility(123, 234);
-        });
+        $object = $this->createLazyProxy(AsymmetricVisibility::class, static fn () => new AsymmetricVisibility(123, 234));
 
         $this->assertSame(234, $object->getBar());
         $this->assertSame(123, $object->foo);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/ProxyHelperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/ProxyHelperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/ProxyHelperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/ProxyHelperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -47,17 +47,17 @@
     public function testExportSignatureFQ()
     {
         $expected = <<<'EOPHP'
-        public function bar($a = \Symfony\Component\VarExporter\Tests\Bar::BAZ,
-        $b = new \Symfony\Component\VarExporter\Tests\Bar(\Symfony\Component\VarExporter\Tests\Bar::BAZ, bar: \Symfony\Component\VarExporter\Tests\Bar::BAZ),
-        $c = new \stdClass(),
-        $d = new \Symfony\Component\VarExporter\Tests\TestSignatureFQ(),
-        $e = new \Symfony\Component\VarExporter\Tests\Bar(),
-        $f = new \Symfony\Component\VarExporter\Tests\Qux(),
-        $g = new \Symfony\Component\VarExporter\Tests\Qux(),
-        $i = new \Qux(),
-        $j = \stdClass::BAZ,
-        $k = \Symfony\Component\VarExporter\Tests\Bar)
-        EOPHP;
+            public function bar($a = \Symfony\Component\VarExporter\Tests\Bar::BAZ,
+            $b = new \Symfony\Component\VarExporter\Tests\Bar(\Symfony\Component\VarExporter\Tests\Bar::BAZ, bar: \Symfony\Component\VarExporter\Tests\Bar::BAZ),
+            $c = new \stdClass(),
+            $d = new \Symfony\Component\VarExporter\Tests\TestSignatureFQ(),
+            $e = new \Symfony\Component\VarExporter\Tests\Bar(),
+            $f = new \Symfony\Component\VarExporter\Tests\Qux(),
+            $g = new \Symfony\Component\VarExporter\Tests\Qux(),
+            $i = new \Qux(),
+            $j = \stdClass::BAZ,
+            $k = \Symfony\Component\VarExporter\Tests\Bar)
+            EOPHP;
 
         $this->assertSame($expected, str_replace(', $', ",\n$", ProxyHelper::exportSignature(new \ReflectionMethod(TestSignatureFQ::class, 'bar'))));
     }
@@ -65,46 +65,46 @@
     public function testGenerateLazyProxy()
     {
         $expected = <<<'EOPHP'
-         extends \Symfony\Component\VarExporter\Tests\TestForProxyHelper implements \Symfony\Component\VarExporter\LazyObjectInterface
-        {
-            use \Symfony\Component\VarExporter\LazyProxyTrait;
-
-            private const LAZY_OBJECT_PROPERTY_SCOPES = [];
-
-            public function foo1(): ?\Symfony\Component\VarExporter\Tests\Bar
+             extends \Symfony\Component\VarExporter\Tests\TestForProxyHelper implements \Symfony\Component\VarExporter\LazyObjectInterface
             {
-                if (isset($this->lazyObjectState)) {
-                    return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo1(...\func_get_args());
-                }
+                use \Symfony\Component\VarExporter\LazyProxyTrait;
 
-                return parent::foo1(...\func_get_args());
-            }
+                private const LAZY_OBJECT_PROPERTY_SCOPES = [];
 
-            public function foo4(\Symfony\Component\VarExporter\Tests\Bar|string $b, &$d): void
-            {
-                if (isset($this->lazyObjectState)) {
-                    ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo4($b, $d, ...\array_slice(\func_get_args(), 2));
-                } else {
-                    parent::foo4($b, $d, ...\array_slice(\func_get_args(), 2));
+                public function foo1(): ?\Symfony\Component\VarExporter\Tests\Bar
+                {
+                    if (isset($this->lazyObjectState)) {
+                        return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo1(...\func_get_args());
+                    }
+
+                    return parent::foo1(...\func_get_args());
                 }
-            }
 
-            protected function foo7()
-            {
-                if (isset($this->lazyObjectState)) {
-                    return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo7(...\func_get_args());
+                public function foo4(\Symfony\Component\VarExporter\Tests\Bar|string $b, &$d): void
+                {
+                    if (isset($this->lazyObjectState)) {
+                        ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo4($b, $d, ...\array_slice(\func_get_args(), 2));
+                    } else {
+                        parent::foo4($b, $d, ...\array_slice(\func_get_args(), 2));
+                    }
                 }
 
-                return throw new \BadMethodCallException('Cannot forward abstract method "Symfony\Component\VarExporter\Tests\TestForProxyHelper::foo7()".');
+                protected function foo7()
+                {
+                    if (isset($this->lazyObjectState)) {
+                        return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo7(...\func_get_args());
+                    }
+
+                    return throw new \BadMethodCallException('Cannot forward abstract method "Symfony\Component\VarExporter\Tests\TestForProxyHelper::foo7()".');
+                }
             }
-        }
 
-        // Help opcache.preload discover always-needed symbols
-        class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
-        class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
-        class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
+            // Help opcache.preload discover always-needed symbols
+            class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
+            class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
+            class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
 
-        EOPHP;
+            EOPHP;
 
         $this->assertSame($expected, ProxyHelper::generateLazyProxy(new \ReflectionClass(TestForProxyHelper::class)));
     }
@@ -112,51 +112,51 @@
     public function testGenerateLazyProxyForInterfaces()
     {
         $expected = <<<'EOPHP'
-         implements \Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface1, \Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface2, \Symfony\Component\VarExporter\LazyObjectInterface
-        {
-            use \Symfony\Component\VarExporter\LazyProxyTrait;
+             implements \Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface1, \Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface2, \Symfony\Component\VarExporter\LazyObjectInterface
+            {
+                use \Symfony\Component\VarExporter\LazyProxyTrait;
 
-            private const LAZY_OBJECT_PROPERTY_SCOPES = [];
+                private const LAZY_OBJECT_PROPERTY_SCOPES = [];
 
-            public function initializeLazyObject(): \Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface1&\Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface2
-            {
-                if ($state = $this->lazyObjectState ?? null) {
-                    return $state->realInstance ??= ($state->initializer)();
+                public function initializeLazyObject(): \Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface1&\Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface2
+                {
+                    if ($state = $this->lazyObjectState ?? null) {
+                        return $state->realInstance ??= ($state->initializer)();
+                    }
+
+                    return $this;
                 }
 
-                return $this;
-            }
+                public function foo1(): ?\Symfony\Component\VarExporter\Tests\Bar
+                {
+                    if (isset($this->lazyObjectState)) {
+                        return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo1(...\func_get_args());
+                    }
 
-            public function foo1(): ?\Symfony\Component\VarExporter\Tests\Bar
-            {
-                if (isset($this->lazyObjectState)) {
-                    return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo1(...\func_get_args());
+                    return throw new \BadMethodCallException('Cannot forward abstract method "Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface1::foo1()".');
                 }
 
-                return throw new \BadMethodCallException('Cannot forward abstract method "Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface1::foo1()".');
-            }
+                public function foo2(?\Symfony\Component\VarExporter\Tests\Bar $b, ...$d): \Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface2
+                {
+                    if (isset($this->lazyObjectState)) {
+                        return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo2(...\func_get_args());
+                    }
 
-            public function foo2(?\Symfony\Component\VarExporter\Tests\Bar $b, ...$d): \Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface2
-            {
-                if (isset($this->lazyObjectState)) {
-                    return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo2(...\func_get_args());
+                    return throw new \BadMethodCallException('Cannot forward abstract method "Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface2::foo2()".');
                 }
 
-                return throw new \BadMethodCallException('Cannot forward abstract method "Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface2::foo2()".');
-            }
-
-            public static function foo3(): string
-            {
-                throw new \BadMethodCallException('Cannot forward abstract method "Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface2::foo3()".');
+                public static function foo3(): string
+                {
+                    throw new \BadMethodCallException('Cannot forward abstract method "Symfony\Component\VarExporter\Tests\TestForProxyHelperInterface2::foo3()".');
+                }
             }
-        }
 
-        // Help opcache.preload discover always-needed symbols
-        class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
-        class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
-        class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
+            // Help opcache.preload discover always-needed symbols
+            class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
+            class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
+            class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
 
-        EOPHP;
+            EOPHP;
 
         $this->assertSame($expected, ProxyHelper::generateLazyProxy(null, [new \ReflectionClass(TestForProxyHelperInterface1::class), new \ReflectionClass(TestForProxyHelperInterface2::class)]));
     }
@@ -171,57 +171,57 @@
 
     public static function classWithUnserializeMagicMethodProvider(): iterable
     {
-        yield 'not type hinted __unserialize method' => [new class() {
+        yield 'not type hinted __unserialize method' => [new class {
             public function __unserialize($array)
             {
             }
         }, <<<'EOPHP'
-        implements \Symfony\Component\VarExporter\LazyObjectInterface
-        {
-            use \Symfony\Component\VarExporter\LazyProxyTrait {
-                __unserialize as private __doUnserialize;
-            }
+            implements \Symfony\Component\VarExporter\LazyObjectInterface
+            {
+                use \Symfony\Component\VarExporter\LazyProxyTrait {
+                    __unserialize as private __doUnserialize;
+                }
 
-            private const LAZY_OBJECT_PROPERTY_SCOPES = [];
+                private const LAZY_OBJECT_PROPERTY_SCOPES = [];
 
-            public function __unserialize($data): void
-            {
-                $this->__doUnserialize($data);
+                public function __unserialize($data): void
+                {
+                    $this->__doUnserialize($data);
+                }
             }
-        }
-        EOPHP];
+            EOPHP];
 
-        yield 'type hinted __unserialize method' => [new class() {
+        yield 'type hinted __unserialize method' => [new class {
             public function __unserialize(array $array)
             {
             }
         }, <<<'EOPHP'
-        implements \Symfony\Component\VarExporter\LazyObjectInterface
-        {
-            use \Symfony\Component\VarExporter\LazyProxyTrait;
-
-            private const LAZY_OBJECT_PROPERTY_SCOPES = [];
-        }
-        EOPHP];
+            implements \Symfony\Component\VarExporter\LazyObjectInterface
+            {
+                use \Symfony\Component\VarExporter\LazyProxyTrait;
+
+                private const LAZY_OBJECT_PROPERTY_SCOPES = [];
+            }
+            EOPHP];
     }
 
     public function testAttributes()
     {
         $expected = <<<'EOPHP'
 
-            public function foo(#[\SensitiveParameter] $a): int
-            {
-                if (isset($this->lazyObjectState)) {
-                    return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo(...\func_get_args());
-                }
+                public function foo(#[\SensitiveParameter] $a): int
+                {
+                    if (isset($this->lazyObjectState)) {
+                        return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->foo(...\func_get_args());
+                    }
 
-                return parent::foo(...\func_get_args());
+                    return parent::foo(...\func_get_args());
+                }
             }
-        }
 
-        EOPHP;
+            EOPHP;
 
-        $class = new \ReflectionClass(new class() {
+        $class = new \ReflectionClass(new class {
             #[SomeAttribute]
             public function foo(#[\SensitiveParameter, AnotherAttribute] $a): int
             {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/VarExporterTest.php symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/VarExporterTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/VarExporter/Tests/VarExporterTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/VarExporter/Tests/VarExporterTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -20,9 +20,37 @@
 use Symfony\Component\VarExporter\Tests\Fixtures\FooReadonly;
 use Symfony\Component\VarExporter\Tests\Fixtures\FooSerializable;
 use Symfony\Component\VarExporter\Tests\Fixtures\FooUnitEnum;
+use Symfony\Component\VarExporter\Tests\Fixtures\GoodNight;
 use Symfony\Component\VarExporter\Tests\Fixtures\MySerializable;
+use Symfony\Component\VarExporter\Tests\Fixtures\MyWakeup;
+use Symfony\Component\VarExporter\Tests\Fixtures\Php74Serializable;
+use Symfony\Component\VarExporter\Tests\Fixtures\SleepUninitialized;
 use Symfony\Component\VarExporter\VarExporter;
 
+$errorHandler = set_error_handler(static function (int $errno, string $errstr) use (&$errorHandler) {
+    if (\E_DEPRECATED === $errno && str_contains($errstr, 'serialize()')) {
+        // We're testing if the component handles deprecated Serializable and __sleep/wakeup implementations well.
+        // This kind of implementation triggers a deprecation warning that we explicitly want to ignore here.
+        return true;
+    }
+
+    return $errorHandler ? $errorHandler(...\func_get_args()) : false;
+});
+
+try {
+    foreach ([
+        MySerializable::class,
+        FooSerializable::class,
+        GoodNight::class,
+        Php74Serializable::class,
+        MyWakeup::class,
+    ] as $class) {
+        class_exists($class);
+    }
+} finally {
+    restore_error_handler();
+}
+
 class VarExporterTest extends TestCase
 {
     use VarDumperTestTrait;
@@ -58,15 +86,15 @@
     {
         yield [hash_init('md5')];
         yield [new \ReflectionClass(\stdClass::class)];
-        yield [(new \ReflectionFunction(function (): int {}))->getReturnType()];
-        yield [new \ReflectionGenerator((function () { yield 123; })())];
-        yield [function () {}];
-        yield [function () { yield 123; }];
+        yield [(new \ReflectionFunction(static function (): int {}))->getReturnType()];
+        yield [new \ReflectionGenerator((static function () { yield 123; })())];
+        yield [static function () {}];
+        yield [static function () { yield 123; }];
         yield [new \SplFileInfo(__FILE__)];
         yield [$h = fopen(__FILE__, 'r')];
         yield [[$h]];
 
-        $a = new class() {
+        $a = new class {
         };
 
         yield [$a];
@@ -142,23 +170,8 @@
         yield ['array-iterator', new \ArrayIterator([123], 1)];
         yield ['array-object-custom', new MyArrayObject([234])];
 
-        $errorHandler = set_error_handler(static function (int $errno, string $errstr) use (&$errorHandler) {
-            if (\E_DEPRECATED === $errno && str_contains($errstr, 'implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead')) {
-                // We're testing if the component handles deprecated Serializable implementations well.
-                // This kind of implementation triggers a deprecation warning since PHP 8.1 that we explicitly want to
-                // ignore here. We probably need to reevaluate this piece of code for PHP 9.
-                return true;
-            }
-
-            return $errorHandler ? $errorHandler(...\func_get_args()) : false;
-        });
-
-        try {
-            $mySerializable = new MySerializable();
-            $fooSerializable = new FooSerializable('bar');
-        } finally {
-            restore_error_handler();
-        }
+        $mySerializable = new MySerializable();
+        $fooSerializable = new FooSerializable('bar');
 
         yield ['serializable', [$mySerializable, $mySerializable]];
         yield ['foo-serializable', $fooSerializable];
@@ -252,26 +265,23 @@
     {
         $this->assertSame('"\0\r\u{202A}\u{202B}\u{202D}\u{202E}\u{2066}\u{2067}\u{2068}\u{202C}\u{2069}\n"', VarExporter::export("\0\r\u{202A}\u{202B}\u{202D}\u{202E}\u{2066}\u{2067}\u{2068}\u{202C}\u{2069}\n"));
     }
-}
 
-class MyWakeup
-{
-    public $sub;
-    public $bis;
-    public $baz;
-    public $def = 234;
-
-    public function __sleep(): array
+    public function testSleepListingUninitializedTypedPropertyEmitsNoNotice()
     {
-        return ['sub', 'baz'];
-    }
+        $errors = [];
+        $previous = set_error_handler(static function (int $errno, string $errstr) use (&$errors) {
+            $errors[] = $errstr;
 
-    public function __wakeup()
-    {
-        if (123 === $this->sub) {
-            $this->bis = 123;
-            $this->baz = 123;
+            return true;
+        });
+
+        try {
+            VarExporter::export(new SleepUninitialized('hello'));
+        } finally {
+            restore_error_handler();
         }
+
+        $this->assertSame([], $errors);
     }
 }
 
@@ -337,27 +347,6 @@
     }
 }
 
-class GoodNight
-{
-    public $good;
-    protected $foo;
-    private $bar;
-
-    public function __construct()
-    {
-        unset($this->good);
-        $this->foo = 'afternoon';
-        $this->bar = 'morning';
-    }
-
-    public function __sleep(): array
-    {
-        $this->good = 'night';
-
-        return ['good', 'foo', "\0*\0foo", "\0".__CLASS__."\0bar"];
-    }
-}
-
 final class FinalError extends \Error
 {
     public function __construct(bool $throw = true)
@@ -413,41 +402,6 @@
     }
 }
 
-class Php74Serializable implements \Serializable
-{
-    public $foo;
-
-    public function __serialize(): array
-    {
-        return [$this->foo = new \stdClass()];
-    }
-
-    public function __unserialize(array $data)
-    {
-        [$this->foo] = $data;
-    }
-
-    public function __sleep(): array
-    {
-        throw new \BadMethodCallException();
-    }
-
-    public function __wakeup()
-    {
-        throw new \BadMethodCallException();
-    }
-
-    public function serialize(): string
-    {
-        throw new \BadMethodCallException();
-    }
-
-    public function unserialize($ser)
-    {
-        throw new \BadMethodCallException();
-    }
-}
-
 #[\AllowDynamicProperties]
 class ArrayObject extends \ArrayObject
 {
@@ -468,19 +422,33 @@
     }
 }
 
-class __SerializeButNo__Unserialize
+class ParentOf__SerializeButNo__Unserialize
 {
-    public $foo;
+    private $foo = 'foo';
+
+    public function getFoo()
+    {
+        return $this->foo;
+    }
+}
+
+class __SerializeButNo__Unserialize extends ParentOf__SerializeButNo__Unserialize
+{
+    public $baz;
+    private $bar;
 
     public function __construct()
     {
-        $this->foo = 'ccc';
+        $this->baz = 'ccc';
+        $this->bar = 'ddd';
     }
 
     public function __serialize(): array
     {
         return [
-            'foo' => $this->foo,
+            'foo' => $this->getFoo(),
+            'baz' => $this->baz,
+            'bar' => $this->bar,
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Webhook/Client/RequestParser.php symfony-6.4.40+dfsg/src/Symfony/Component/Webhook/Client/RequestParser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Webhook/Client/RequestParser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Webhook/Client/RequestParser.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,7 +52,7 @@
 
         foreach ([$this->signatureHeaderName, $this->eventHeaderName, $this->idHeaderName] as $header) {
             if (!$request->headers->has($header)) {
-                throw new RejectWebhookException(406, sprintf('Missing "%s" HTTP request signature header.', $header));
+                throw new RejectWebhookException(406, \sprintf('Missing "%s" HTTP request signature header.', $header));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Webhook/Test/AbstractRequestParserTestCase.php symfony-6.4.40+dfsg/src/Symfony/Component/Webhook/Test/AbstractRequestParserTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Webhook/Test/AbstractRequestParserTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Webhook/Test/AbstractRequestParserTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,7 +43,7 @@
 
             yield $filename => [
                 file_get_contents($file),
-                include(str_replace('.'.static::getFixtureExtension(), '.php', $file->getPathname())),
+                include (str_replace('.'.static::getFixtureExtension(), '.php', $file->getPathname())),
             ];
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/WebLink/HttpHeaderSerializer.php symfony-6.4.40+dfsg/src/Symfony/Component/WebLink/HttpHeaderSerializer.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/WebLink/HttpHeaderSerializer.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/WebLink/HttpHeaderSerializer.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,18 +35,18 @@
                 continue;
             }
 
-            $attributesParts = ['', sprintf('rel="%s"', implode(' ', $link->getRels()))];
+            $attributesParts = ['', \sprintf('rel="%s"', implode(' ', $link->getRels()))];
             foreach ($link->getAttributes() as $key => $value) {
                 if (\is_array($value)) {
                     foreach ($value as $v) {
-                        $attributesParts[] = sprintf('%s="%s"', $key, preg_replace('/(?<!\\\\)"/', '\"', $v));
+                        $attributesParts[] = \sprintf('%s="%s"', $key, preg_replace('/(?<!\\\\)"/', '\"', $v));
                     }
 
                     continue;
                 }
 
                 if (!\is_bool($value)) {
-                    $attributesParts[] = sprintf('%s="%s"', $key, preg_replace('/(?<!\\\\)"/', '\"', $value));
+                    $attributesParts[] = \sprintf('%s="%s"', $key, preg_replace('/(?<!\\\\)"/', '\"', $value));
 
                     continue;
                 }
@@ -56,7 +56,7 @@
                 }
             }
 
-            $elements[] = sprintf('<%s>%s', $link->getHref(), implode('; ', $attributesParts));
+            $elements[] = \sprintf('<%s>%s', $link->getHref(), implode('; ', $attributesParts));
         }
 
         return $elements ? implode(',', $elements) : null;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/WebLink/Link.php symfony-6.4.40+dfsg/src/Symfony/Component/WebLink/Link.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/WebLink/Link.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/WebLink/Link.php	2026-05-20 10:56:49.000000000 +0200
@@ -98,6 +98,12 @@
     public const REL_PREDECESSOR_VERSION = 'predecessor-version';
     public const REL_PREFETCH = 'prefetch';
     public const REL_PRELOAD = 'preload';
+
+    /**
+     * This feature is deprecated and superseded by the Speculation Rules API.
+     *
+     * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel/prerender
+     */
     public const REL_PRERENDER = 'prerender';
     public const REL_PREV = 'prev';
     public const REL_PREVIEW = 'preview';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/WebLink/Tests/EventListener/AddLinkHeaderListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/WebLink/Tests/EventListener/AddLinkHeaderListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/WebLink/Tests/EventListener/AddLinkHeaderListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/WebLink/Tests/EventListener/AddLinkHeaderListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -34,7 +34,7 @@
 
         $subscriber = new AddLinkHeaderListener();
 
-        $event = new ResponseEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, $response);
+        $event = new ResponseEvent($this->createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, $response);
 
         $subscriber->onKernelResponse($event);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Attribute/BuildEventNameTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Attribute/BuildEventNameTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Attribute/BuildEventNameTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Attribute/BuildEventNameTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -24,16 +24,16 @@
     {
         if (null === $workflow) {
             if (null !== $node) {
-                throw new LogicException(sprintf('The "%s" argument of "%s" cannot be used without a "workflow" argument.', $argument, self::class));
+                throw new LogicException(\sprintf('The "%s" argument of "%s" cannot be used without a "workflow" argument.', $argument, self::class));
             }
 
-            return sprintf('workflow.%s', $keyword);
+            return \sprintf('workflow.%s', $keyword);
         }
 
         if (null === $node) {
-            return sprintf('workflow.%s.%s', $workflow, $keyword);
+            return \sprintf('workflow.%s.%s', $workflow, $keyword);
         }
 
-        return sprintf('workflow.%s.%s.%s', $workflow, $keyword, $node);
+        return \sprintf('workflow.%s.%s.%s', $workflow, $keyword, $node);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/DataCollector/WorkflowDataCollector.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/DataCollector/WorkflowDataCollector.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/DataCollector/WorkflowDataCollector.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/DataCollector/WorkflowDataCollector.php	2026-05-20 10:56:49.000000000 +0200
@@ -92,17 +92,17 @@
     {
         $casters = [
             ...parent::getCasters(),
-            TransitionBlocker::class => function ($v, array $a, Stub $s, $isNested) {
+            TransitionBlocker::class => static function ($v, array $a, Stub $s, $isNested) {
                 unset(
-                    $a[sprintf(Caster::PATTERN_PRIVATE, $v::class, 'code')],
-                    $a[sprintf(Caster::PATTERN_PRIVATE, $v::class, 'parameters')],
+                    $a[\sprintf(Caster::PATTERN_PRIVATE, $v::class, 'code')],
+                    $a[\sprintf(Caster::PATTERN_PRIVATE, $v::class, 'parameters')],
                 );
 
                 $s->cut += 2;
 
                 return $a;
             },
-            Marking::class => function ($v, array $a, Stub $s, $isNested) {
+            Marking::class => static function ($v, array $a, Stub $s, $isNested) {
                 $a[Caster::PREFIX_VIRTUAL.'.places'] = array_keys($v->getPlaces());
 
                 return $a;
@@ -129,9 +129,9 @@
                 'entered',
             ];
             foreach ($subEventNames as $subEventName) {
-                $eventNames[] = sprintf('workflow.%s', $subEventName);
-                $eventNames[] = sprintf('workflow.%s.%s', $workflow->getName(), $subEventName);
-                $eventNames[] = sprintf('workflow.%s.%s.%s', $workflow->getName(), $subEventName, $place);
+                $eventNames[] = \sprintf('workflow.%s', $subEventName);
+                $eventNames[] = \sprintf('workflow.%s.%s', $workflow->getName(), $subEventName);
+                $eventNames[] = \sprintf('workflow.%s.%s.%s', $workflow->getName(), $subEventName, $place);
             }
             foreach ($eventNames as $eventName) {
                 foreach ($this->eventDispatcher->getListeners($eventName) as $listener) {
@@ -151,9 +151,9 @@
                 'announce',
             ];
             foreach ($subEventNames as $subEventName) {
-                $eventNames[] = sprintf('workflow.%s', $subEventName);
-                $eventNames[] = sprintf('workflow.%s.%s', $workflow->getName(), $subEventName);
-                $eventNames[] = sprintf('workflow.%s.%s.%s', $workflow->getName(), $subEventName, $transition->getName());
+                $eventNames[] = \sprintf('workflow.%s', $subEventName);
+                $eventNames[] = \sprintf('workflow.%s.%s', $workflow->getName(), $subEventName);
+                $eventNames[] = \sprintf('workflow.%s.%s.%s', $workflow->getName(), $subEventName, $transition->getName());
             }
             foreach ($eventNames as $eventName) {
                 foreach ($this->eventDispatcher->getListeners($eventName) as $listener) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Debug/TraceableWorkflow.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Debug/TraceableWorkflow.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Debug/TraceableWorkflow.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Debug/TraceableWorkflow.php	2026-05-20 10:56:49.000000000 +0200
@@ -88,6 +88,11 @@
         return $this->calls;
     }
 
+    public function reset(): void
+    {
+        $this->calls = [];
+    }
+
     private function callInner(string $method, array $args): mixed
     {
         $sMethod = $this->workflow::class.'::'.$method;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Definition.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Definition.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Definition.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Definition.php	2026-05-20 10:56:49.000000000 +0200
@@ -89,7 +89,7 @@
 
         foreach ($places as $place) {
             if (!isset($this->places[$place])) {
-                throw new LogicException(sprintf('Place "%s" cannot be the initial place as it does not exist.', $place));
+                throw new LogicException(\sprintf('Place "%s" cannot be the initial place as it does not exist.', $place));
             }
         }
 
@@ -111,13 +111,13 @@
 
         foreach ($transition->getFroms() as $from) {
             if (!isset($this->places[$from])) {
-                throw new LogicException(sprintf('Place "%s" referenced in transition "%s" does not exist.', $from, $name));
+                throw new LogicException(\sprintf('Place "%s" referenced in transition "%s" does not exist.', $from, $name));
             }
         }
 
         foreach ($transition->getTos() as $to) {
             if (!isset($this->places[$to])) {
-                throw new LogicException(sprintf('Place "%s" referenced in transition "%s" does not exist.', $to, $name));
+                throw new LogicException(\sprintf('Place "%s" referenced in transition "%s" does not exist.', $to, $name));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/DependencyInjection/WorkflowDebugPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/DependencyInjection/WorkflowDebugPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/DependencyInjection/WorkflowDebugPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/DependencyInjection/WorkflowDebugPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,9 @@
                 ->setArguments([
                     new Reference("debug.{$id}.inner"),
                     new Reference('debug.stopwatch'),
-                ]);
+                ])
+                ->addTag('kernel.reset', ['method' => 'reset'])
+            ;
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/DependencyInjection/WorkflowGuardListenerPass.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/DependencyInjection/WorkflowGuardListenerPass.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/DependencyInjection/WorkflowGuardListenerPass.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/DependencyInjection/WorkflowGuardListenerPass.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
 
         foreach ($servicesNeeded as $service) {
             if (!$container->has($service)) {
-                throw new LogicException(sprintf('The "%s" service is needed to be able to use the workflow guard listener.', $service));
+                throw new LogicException(\sprintf('The "%s" service is needed to be able to use the workflow guard listener.', $service));
             }
         }
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Dumper/GraphvizDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Dumper/GraphvizDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Dumper/GraphvizDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Dumper/GraphvizDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -141,7 +141,7 @@
     /**
      * @internal
      */
-    protected function addPlaces(array $places, float $withMetadata): string
+    protected function addPlaces(array $places, bool $withMetadata): string
     {
         $code = '';
 
@@ -154,14 +154,14 @@
             }
 
             if ($withMetadata) {
-                $escapedLabel = sprintf('<<B>%s</B>%s>', $this->escape($placeName), $this->addMetadata($place['attributes']['metadata']));
+                $escapedLabel = \sprintf('<<B>%s</B>%s>', $this->escapeHtml($placeName), $this->addMetadata($place['attributes']['metadata']));
                 // Don't include metadata in default attributes used to format the place
                 unset($place['attributes']['metadata']);
             } else {
-                $escapedLabel = sprintf('"%s"', $this->escape($placeName));
+                $escapedLabel = \sprintf('"%s"', $this->escape($placeName));
             }
 
-            $code .= sprintf("  place_%s [label=%s, shape=circle%s];\n", $this->dotize($id), $escapedLabel, $this->addAttributes($place['attributes']));
+            $code .= \sprintf("  place_%s [label=%s, shape=circle%s];\n", $this->dotize($id), $escapedLabel, $this->addAttributes($place['attributes']));
         }
 
         return $code;
@@ -176,12 +176,12 @@
 
         foreach ($transitions as $i => $place) {
             if ($withMetadata) {
-                $escapedLabel = sprintf('<<B>%s</B>%s>', $this->escape($place['name']), $this->addMetadata($place['metadata']));
+                $escapedLabel = \sprintf('<<B>%s</B>%s>', $this->escapeHtml($place['name']), $this->addMetadata($place['metadata']));
             } else {
                 $escapedLabel = '"'.$this->escape($place['name']).'"';
             }
 
-            $code .= sprintf("  transition_%s [label=%s,%s];\n", $this->dotize($i), $escapedLabel, $this->addAttributes($place['attributes']));
+            $code .= \sprintf("  transition_%s [label=%s,%s];\n", $this->dotize($i), $escapedLabel, $this->addAttributes($place['attributes']));
         }
 
         return $code;
@@ -229,12 +229,12 @@
 
         foreach ($edges as $edge) {
             if ('from' === $edge['direction']) {
-                $code .= sprintf("  place_%s -> transition_%s [style=\"solid\"];\n",
+                $code .= \sprintf("  place_%s -> transition_%s [style=\"solid\"];\n",
                     $this->dotize($edge['from']),
                     $this->dotize($edge['transition_number'])
                 );
             } else {
-                $code .= sprintf("  transition_%s -> place_%s [style=\"solid\"];\n",
+                $code .= \sprintf("  transition_%s -> place_%s [style=\"solid\"];\n",
                     $this->dotize($edge['transition_number']),
                     $this->dotize($edge['to'])
                 );
@@ -249,9 +249,9 @@
      */
     protected function startDot(array $options, string $label): string
     {
-        return sprintf("digraph workflow {\n  %s%s\n  node [%s];\n  edge [%s];\n\n",
+        return \sprintf("digraph workflow {\n  %s%s\n  node [%s];\n  edge [%s];\n\n",
             $this->addOptions($options['graph']),
-            '""' !== $label && '<>' !== $label ? sprintf(' label=%s', $label) : '',
+            '""' !== $label && '<>' !== $label ? \sprintf(' label=%s', $label) : '',
             $this->addOptions($options['node']),
             $this->addOptions($options['edge'])
         );
@@ -284,12 +284,24 @@
     /**
      * @internal
      */
+    protected function escapeHtml(string|bool $value): string
+    {
+        if (\is_bool($value)) {
+            return $value ? '1' : '0';
+        }
+
+        return htmlspecialchars($value, \ENT_XML1 | \ENT_QUOTES, 'UTF-8');
+    }
+
+    /**
+     * @internal
+     */
     protected function addAttributes(array $attributes): string
     {
         $code = [];
 
         foreach ($attributes as $k => $v) {
-            $code[] = sprintf('%s="%s"', $k, $this->escape($v));
+            $code[] = \sprintf('%s="%s"', $k, $this->escape($v));
         }
 
         return $code ? ' '.implode(' ', $code) : '';
@@ -303,23 +315,23 @@
      *
      * @internal
      */
-    protected function formatLabel(Definition $definition, string $withMetadata, array $options): string
+    protected function formatLabel(Definition $definition, bool $withMetadata, array $options): string
     {
         $currentLabel = $options['label'] ?? '';
 
         if (!$withMetadata) {
             // Only currentLabel to handle. If null, will be translated to empty string
-            return sprintf('"%s"', $this->escape($currentLabel));
+            return \sprintf('"%s"', $this->escape($currentLabel));
         }
         $workflowMetadata = $definition->getMetadataStore()->getWorkflowMetadata();
 
         if ('' === $currentLabel) {
             // Only metadata to handle
-            return sprintf('<%s>', $this->addMetadata($workflowMetadata, false));
+            return \sprintf('<%s>', $this->addMetadata($workflowMetadata, false));
         }
 
         // currentLabel and metadata to handle
-        return sprintf('<<B>%s</B>%s>', $this->escape($currentLabel), $this->addMetadata($workflowMetadata));
+        return \sprintf('<<B>%s</B>%s>', $this->escapeHtml($currentLabel), $this->addMetadata($workflowMetadata));
     }
 
     private function addOptions(array $options): string
@@ -327,7 +339,7 @@
         $code = [];
 
         foreach ($options as $k => $v) {
-            $code[] = sprintf('%s="%s"', $k, $v);
+            $code[] = \sprintf('%s="%s"', $k, $v);
         }
 
         return implode(' ', $code);
@@ -344,10 +356,10 @@
 
         foreach ($metadata as $key => $value) {
             if ($skipSeparator) {
-                $code[] = sprintf('%s: %s', $this->escape($key), $this->escape($value));
+                $code[] = \sprintf('%s: %s', $this->escapeHtml($key), $this->escapeHtml($value));
                 $skipSeparator = false;
             } else {
-                $code[] = sprintf('%s%s: %s', '<BR/>', $this->escape($key), $this->escape($value));
+                $code[] = \sprintf('%s%s: %s', '<BR/>', $this->escapeHtml($key), $this->escapeHtml($value));
             }
         }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Dumper/MermaidDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Dumper/MermaidDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Dumper/MermaidDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Dumper/MermaidDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -142,7 +142,7 @@
 
         $placeNodeName = 'place'.$placeId;
         $placeNodeFormat = '%s'.$labelShape;
-        $placeNode = sprintf($placeNodeFormat, $placeNodeName, $placeLabel);
+        $placeNode = \sprintf($placeNodeFormat, $placeNodeName, $placeLabel);
 
         $placeStyle = $this->styleNode($meta, $placeNodeName, $hasMarking);
 
@@ -154,7 +154,7 @@
         $nodeStyles = [];
 
         if (\array_key_exists('bg_color', $meta)) {
-            $nodeStyles[] = sprintf(
+            $nodeStyles[] = \sprintf(
                 'fill:%s',
                 $meta['bg_color']
             );
@@ -168,7 +168,7 @@
             return '';
         }
 
-        return sprintf('style %s %s', $nodeName, implode(',', $nodeStyles));
+        return \sprintf('style %s %s', $nodeName, implode(',', $nodeStyles));
     }
 
     /**
@@ -179,26 +179,26 @@
     {
         $label = str_replace('"', '#quot;', $label);
 
-        return sprintf('"%s"', $label);
+        return \sprintf('"%s"', $label);
     }
 
     public function validateDirection(string $direction): void
     {
         if (!\in_array($direction, self::VALID_DIRECTIONS, true)) {
-            throw new InvalidArgumentException(sprintf('Direction "%s" is not valid, valid directions are: "%s".', $direction, implode(', ', self::VALID_DIRECTIONS)));
+            throw new InvalidArgumentException(\sprintf('Direction "%s" is not valid, valid directions are: "%s".', $direction, implode(', ', self::VALID_DIRECTIONS)));
         }
     }
 
     private function validateTransitionType(string $transitionType): void
     {
         if (!\in_array($transitionType, self::VALID_TRANSITION_TYPES, true)) {
-            throw new InvalidArgumentException(sprintf('Transition type "%s" is not valid, valid types are: "%s".', $transitionType, implode(', ', self::VALID_TRANSITION_TYPES)));
+            throw new InvalidArgumentException(\sprintf('Transition type "%s" is not valid, valid types are: "%s".', $transitionType, implode(', ', self::VALID_TRANSITION_TYPES)));
         }
     }
 
     private function styleStateMachineTransition(string $from, string $to, string $transitionLabel, array $transitionMeta): array
     {
-        $transitionOutput = [sprintf('%s-->|%s|%s', $from, str_replace("\n", ' ', $this->escape($transitionLabel)), $to)];
+        $transitionOutput = [\sprintf('%s-->|%s|%s', $from, str_replace("\n", ' ', $this->escape($transitionLabel)), $to)];
 
         $linkStyle = $this->styleLink($transitionMeta);
         if ('' !== $linkStyle) {
@@ -217,7 +217,7 @@
         $transitionLabel = $this->escape($transitionLabel);
         $transitionNodeName = 'transition'.$transitionId;
 
-        $transitionOutput[] = sprintf('%s[%s]', $transitionNodeName, $transitionLabel);
+        $transitionOutput[] = \sprintf('%s[%s]', $transitionNodeName, $transitionLabel);
 
         $transitionNodeStyle = $this->styleNode($transitionMeta, $transitionNodeName);
         if ('' !== $transitionNodeStyle) {
@@ -225,7 +225,7 @@
         }
 
         $connectionStyle = '%s-->%s';
-        $transitionOutput[] = sprintf($connectionStyle, $from, $transitionNodeName);
+        $transitionOutput[] = \sprintf($connectionStyle, $from, $transitionNodeName);
 
         $linkStyle = $this->styleLink($transitionMeta);
         if ('' !== $linkStyle) {
@@ -234,7 +234,7 @@
 
         ++$this->linkCount;
 
-        $transitionOutput[] = sprintf($connectionStyle, $transitionNodeName, $to);
+        $transitionOutput[] = \sprintf($connectionStyle, $transitionNodeName, $to);
 
         $linkStyle = $this->styleLink($transitionMeta);
         if ('' !== $linkStyle) {
@@ -249,7 +249,7 @@
     private function styleLink(array $transitionMeta): string
     {
         if (\array_key_exists('color', $transitionMeta)) {
-            return sprintf('linkStyle %d stroke:%s', $this->linkCount, $transitionMeta['color']);
+            return \sprintf('linkStyle %d stroke:%s', $this->linkCount, $transitionMeta['color']);
         }
 
         return '';
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Dumper/PlantUmlDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Dumper/PlantUmlDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Dumper/PlantUmlDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Dumper/PlantUmlDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -228,9 +228,9 @@
         if (null !== $color) {
             // Close and open <font> before and after every '\n' string,
             // so that the style is applied properly on every line
-            $to = str_replace('\n', sprintf('</font>\n<font color=%1$s>', $color), $to);
+            $to = str_replace('\n', \sprintf('</font>\n<font color=%1$s>', $color), $to);
 
-            $to = sprintf(
+            $to = \sprintf(
                 '<font color=%1$s>%2$s</font>',
                 $color,
                 $to
@@ -247,7 +247,7 @@
             $color = '#'.$color;
         }
 
-        return sprintf('[%s]', $color);
+        return \sprintf('[%s]', $color);
     }
 
     private function getColorId(string $color): string
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Dumper/StateMachineGraphvizDumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Dumper/StateMachineGraphvizDumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Dumper/StateMachineGraphvizDumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Dumper/StateMachineGraphvizDumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -89,7 +89,7 @@
 
         foreach ($edges as $id => $edges) {
             foreach ($edges as $edge) {
-                $code .= sprintf(
+                $code .= \sprintf(
                     "  place_%s -> place_%s [label=\"%s\" style=\"%s\"%s];\n",
                     $this->dotize($id),
                     $this->dotize($edge['to']),
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/EventListener/AuditTrailListener.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/EventListener/AuditTrailListener.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/EventListener/AuditTrailListener.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/EventListener/AuditTrailListener.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
     public function onLeave(Event $event)
     {
         foreach ($event->getTransition()->getFroms() as $place) {
-            $this->logger->info(sprintf('Leaving "%s" for subject of class "%s" in workflow "%s".', $place, $event->getSubject()::class, $event->getWorkflowName()));
+            $this->logger->info(\sprintf('Leaving "%s" for subject of class "%s" in workflow "%s".', $place, $event->getSubject()::class, $event->getWorkflowName()));
         }
     }
 
@@ -42,7 +42,7 @@
      */
     public function onTransition(Event $event)
     {
-        $this->logger->info(sprintf('Transition "%s" for subject of class "%s" in workflow "%s".', $event->getTransition()->getName(), $event->getSubject()::class, $event->getWorkflowName()));
+        $this->logger->info(\sprintf('Transition "%s" for subject of class "%s" in workflow "%s".', $event->getTransition()->getName(), $event->getSubject()::class, $event->getWorkflowName()));
     }
 
     /**
@@ -51,7 +51,7 @@
     public function onEnter(Event $event)
     {
         foreach ($event->getTransition()->getTos() as $place) {
-            $this->logger->info(sprintf('Entering "%s" for subject of class "%s" in workflow "%s".', $place, $event->getSubject()::class, $event->getWorkflowName()));
+            $this->logger->info(\sprintf('Entering "%s" for subject of class "%s" in workflow "%s".', $place, $event->getSubject()::class, $event->getWorkflowName()));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/EventListener/ExpressionLanguage.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/EventListener/ExpressionLanguage.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/EventListener/ExpressionLanguage.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/EventListener/ExpressionLanguage.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,9 +29,9 @@
     {
         parent::registerFunctions();
 
-        $this->register('is_granted', fn ($attributes, $object = 'null') => sprintf('$auth_checker->isGranted(%s, %s)', $attributes, $object), fn (array $variables, $attributes, $object = null) => $variables['auth_checker']->isGranted($attributes, $object));
+        $this->register('is_granted', static fn ($attributes, $object = 'null') => \sprintf('$auth_checker->isGranted(%s, %s)', $attributes, $object), static fn (array $variables, $attributes, $object = null) => $variables['auth_checker']->isGranted($attributes, $object));
 
-        $this->register('is_valid', fn ($object = 'null', $groups = 'null') => sprintf('0 === count($validator->validate(%s, null, %s))', $object, $groups), function (array $variables, $object = null, $groups = null) {
+        $this->register('is_valid', static fn ($object = 'null', $groups = 'null') => \sprintf('0 === count($validator->validate(%s, null, %s))', $object, $groups), static function (array $variables, $object = null, $groups = null) {
             if (!$variables['validator'] instanceof ValidatorInterface) {
                 throw new RuntimeException('"is_valid" cannot be used as the Validator component is not installed. Try running "composer require symfony/validator".');
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Exception/NotEnabledTransitionException.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Exception/NotEnabledTransitionException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Exception/NotEnabledTransitionException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Exception/NotEnabledTransitionException.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
 
     public function __construct(object $subject, string $transitionName, WorkflowInterface $workflow, TransitionBlockerList $transitionBlockerList, array $context = [])
     {
-        parent::__construct($subject, $transitionName, $workflow, sprintf('Transition "%s" is not enabled for workflow "%s".', $transitionName, $workflow->getName()), $context);
+        parent::__construct($subject, $transitionName, $workflow, \sprintf('Transition "%s" is not enabled for workflow "%s".', $transitionName, $workflow->getName()), $context);
 
         $this->transitionBlockerList = $transitionBlockerList;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Exception/UndefinedTransitionException.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Exception/UndefinedTransitionException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Exception/UndefinedTransitionException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Exception/UndefinedTransitionException.php	2026-05-20 10:56:49.000000000 +0200
@@ -22,6 +22,6 @@
 {
     public function __construct(object $subject, string $transitionName, WorkflowInterface $workflow, array $context = [])
     {
-        parent::__construct($subject, $transitionName, $workflow, sprintf('Transition "%s" is not defined for workflow "%s".', $transitionName, $workflow->getName()), $context);
+        parent::__construct($subject, $transitionName, $workflow, \sprintf('Transition "%s" is not defined for workflow "%s".', $transitionName, $workflow->getName()), $context);
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/MarkingStore/MethodMarkingStore.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/MarkingStore/MethodMarkingStore.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/MarkingStore/MethodMarkingStore.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/MarkingStore/MethodMarkingStore.php	2026-05-20 10:56:49.000000000 +0200
@@ -53,8 +53,7 @@
         try {
             $marking = ($this->getGetter($subject))();
         } catch (\Error $e) {
-            $unInitializedPropertyMessage = sprintf('Typed property %s::$%s must not be accessed before initialization', get_debug_type($subject), $this->property);
-            if ($e->getMessage() !== $unInitializedPropertyMessage) {
+            if (!str_starts_with($e->getMessage(), 'Typed property ') || !str_ends_with($e->getMessage(), '::$'.$this->property.' must not be accessed before initialization')) {
                 throw $e;
             }
         }
@@ -66,7 +65,7 @@
         if ($this->singleState) {
             $marking = [(string) $marking => 1];
         } elseif (!\is_array($marking)) {
-            throw new LogicException(sprintf('The marking stored in "%s::$%s" is not an array and the Workflow\'s Marking store is instantiated with $singleState=false.', get_debug_type($subject), $this->property));
+            throw new LogicException(\sprintf('The marking stored in "%s::$%s" is not an array and the Workflow\'s Marking store is instantiated with $singleState=false.', get_debug_type($subject), $this->property));
         }
 
         return new Marking($marking);
@@ -118,7 +117,7 @@
         } catch (\ReflectionException) {
         }
 
-        throw new LogicException(sprintf('Cannot store marking: class "%s" should have either a public method named "%s()" or a public property named "$%s"; none found.', get_debug_type($subject), $method, $property));
+        throw new LogicException(\sprintf('Cannot store marking: class "%s" should have either a public method named "%s()" or a public property named "$%s"; none found.', get_debug_type($subject), $method, $property));
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Registry.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Registry.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Registry.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Registry.php	2026-05-20 10:56:49.000000000 +0200
@@ -52,13 +52,13 @@
         }
 
         if (!$matched) {
-            throw new InvalidArgumentException(sprintf('Unable to find a workflow for class "%s".', get_debug_type($subject)));
+            throw new InvalidArgumentException(\sprintf('Unable to find a workflow for class "%s".', get_debug_type($subject)));
         }
 
         if (2 <= \count($matched)) {
             $names = array_map(static fn (WorkflowInterface $workflow): string => $workflow->getName(), $matched);
 
-            throw new InvalidArgumentException(sprintf('Too many workflows (%s) match this subject (%s); set a different name on each and use the second (name) argument of this method.', implode(', ', $names), get_debug_type($subject)));
+            throw new InvalidArgumentException(\sprintf('Too many workflows (%s) match this subject (%s); set a different name on each and use the second (name) argument of this method.', implode(', ', $names), get_debug_type($subject)));
         }
 
         return $matched[0];
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/Attribute/AsListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/Attribute/AsListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/Attribute/AsListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/Attribute/AsListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -64,7 +64,7 @@
     public function testTransitionThrowException(string $class)
     {
         $this->expectException(LogicException::class);
-        $this->expectExceptionMessage(sprintf('The "transition" argument of "%s" cannot be used without a "workflow" argument.', $class));
+        $this->expectExceptionMessage(\sprintf('The "transition" argument of "%s" cannot be used without a "workflow" argument.', $class));
 
         new $class(transition: 'some');
     }
@@ -83,7 +83,7 @@
     public function testPlaceThrowException(string $class)
     {
         $this->expectException(LogicException::class);
-        $this->expectExceptionMessage(sprintf('The "place" argument of "%s" cannot be used without a "workflow" argument.', $class));
+        $this->expectExceptionMessage(\sprintf('The "place" argument of "%s" cannot be used without a "workflow" argument.', $class));
 
         new $class(place: 'some');
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/DataCollector/WorkflowDataCollectorTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/DataCollector/WorkflowDataCollectorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/DataCollector/WorkflowDataCollectorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/DataCollector/WorkflowDataCollectorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -15,10 +15,10 @@
 use Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter;
 use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolverInterface;
-use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
-use Symfony\Component\Security\Core\Role\RoleHierarchyInterface;
-use Symfony\Component\Validator\Validator\ValidatorInterface;
+use Symfony\Component\Security\Core\Role\RoleHierarchy;
+use Symfony\Component\Validator\ValidatorBuilder;
 use Symfony\Component\Workflow\DataCollector\WorkflowDataCollector;
 use Symfony\Component\Workflow\EventListener\ExpressionLanguage;
 use Symfony\Component\Workflow\EventListener\GuardListener;
@@ -34,19 +34,19 @@
         $workflow1 = new Workflow($this->createComplexWorkflowDefinition(), name: 'workflow1');
         $workflow2 = new Workflow($this->createSimpleWorkflowDefinition(), name: 'workflow2');
         $dispatcher = new EventDispatcher();
-        $dispatcher->addListener('workflow.workflow2.leave.a', fn () => true);
+        $dispatcher->addListener('workflow.workflow2.leave.a', static fn () => true);
         $dispatcher->addListener('workflow.workflow2.leave.a', [self::class, 'noop']);
         $dispatcher->addListener('workflow.workflow2.leave.a', [$this, 'noop']);
         $dispatcher->addListener('workflow.workflow2.leave.a', $this->noop(...));
         $dispatcher->addListener('workflow.workflow2.leave.a', 'var_dump');
         $guardListener = new GuardListener(
             ['workflow.workflow2.guard.t1' => ['my_expression']],
-            $this->createMock(ExpressionLanguage::class),
-            $this->createMock(TokenStorageInterface::class),
-            $this->createMock(AuthorizationCheckerInterface::class),
-            $this->createMock(AuthenticationTrustResolverInterface::class),
-            $this->createMock(RoleHierarchyInterface::class),
-            $this->createMock(ValidatorInterface::class)
+            new ExpressionLanguage(),
+            new TokenStorage(),
+            $this->createStub(AuthorizationCheckerInterface::class),
+            $this->createStub(AuthenticationTrustResolverInterface::class),
+            new RoleHierarchy([]),
+            (new ValidatorBuilder())->getValidator()
         );
         $dispatcher->addListener('workflow.workflow2.guard.t1', [$guardListener, 'onTransition']);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/Debug/TraceableWorkflowTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/Debug/TraceableWorkflowTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/Debug/TraceableWorkflowTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/Debug/TraceableWorkflowTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -23,7 +23,7 @@
 {
     private MockObject|Workflow $innerWorkflow;
 
-    private StopWatch $stopwatch;
+    private Stopwatch $stopwatch;
 
     private TraceableWorkflow $traceableWorkflow;
 
@@ -97,4 +97,14 @@
 
         yield ['getEnabledTransition', [$subject, 'foo'], null];
     }
+
+    public function testReset()
+    {
+        $this->innerWorkflow->expects($this->once())->method('can')->willReturn(true);
+        $this->traceableWorkflow->can(new \stdClass(), 'foo');
+        $this->assertCount(1, $this->traceableWorkflow->getCalls());
+
+        $this->traceableWorkflow->reset();
+        $this->assertCount(0, $this->traceableWorkflow->getCalls());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/GraphvizDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/GraphvizDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/GraphvizDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/GraphvizDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,9 +12,12 @@
 namespace Symfony\Component\Workflow\Tests\Dumper;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Workflow\Definition;
 use Symfony\Component\Workflow\Dumper\GraphvizDumper;
 use Symfony\Component\Workflow\Marking;
+use Symfony\Component\Workflow\Metadata\InMemoryMetadataStore;
 use Symfony\Component\Workflow\Tests\WorkflowBuilderTrait;
+use Symfony\Component\Workflow\Transition;
 
 class GraphvizDumperTest extends TestCase
 {
@@ -291,6 +294,39 @@
 ';
     }
 
+    public function testDumpEscapesSpecialCharactersInHtmlLabels()
+    {
+        $transitionWithSpecialChars = new Transition('t1', 'a', 'b');
+        $transitions = [$transitionWithSpecialChars];
+
+        $placesMetadata = [
+            'a' => [
+                'label' => 'A & B <tag>',
+                'description' => 'has "quotes" & <html>',
+            ],
+        ];
+
+        $transitionsMetadata = new \SplObjectStorage();
+        $transitionsMetadata[$transitionWithSpecialChars] = [
+            'label' => 'Run <script>alert(1)</script>',
+            'note' => 'a > b & c < d',
+        ];
+
+        $store = new InMemoryMetadataStore([], $placesMetadata, $transitionsMetadata);
+        $definition = new Definition(['a', 'b'], $transitions, null, $store);
+
+        $dump = (new GraphvizDumper())->dump($definition, null, ['with-metadata' => true, 'label' => 'Title with <b>bold</b> & "quotes"']);
+
+        $this->assertStringContainsString('<<B>A &amp; B &lt;tag&gt;</B>', $dump);
+        $this->assertStringContainsString('description: has &quot;quotes&quot; &amp; &lt;html&gt;', $dump);
+        $this->assertStringContainsString('<<B>Run &lt;script&gt;alert(1)&lt;/script&gt;</B>', $dump);
+        $this->assertStringContainsString('note: a &gt; b &amp; c &lt; d', $dump);
+        $this->assertStringContainsString('<<B>Title with &lt;b&gt;bold&lt;/b&gt; &amp; &quot;quotes&quot;</B>', $dump);
+
+        $this->assertStringNotContainsString('<script>alert(1)</script>', $dump);
+        $this->assertStringNotContainsString('<tag>', $dump);
+    }
+
     public static function provideSimpleWorkflowDumpWithoutMarkingWithMetadata(): string
     {
         return 'digraph workflow {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/MermaidDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/MermaidDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/MermaidDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/MermaidDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -104,7 +104,7 @@
             ."transition4-->place6\n"
             ."transition5[\"t6\"]\n"
             ."place5-->transition5\n"
-            ."transition5-->place6",
+            .'transition5-->place6',
         ];
         yield [
             self::createWorkflowWithSameNameTransition(),
@@ -124,7 +124,7 @@
             ."transition2-->place0\n"
             ."transition3[\"to_a\"]\n"
             ."place2-->transition3\n"
-            ."transition3-->place0",
+            .'transition3-->place0',
         ];
         yield [
             self::createSimpleWorkflowDefinition(),
@@ -140,7 +140,7 @@
             ."linkStyle 1 stroke:Grey\n"
             ."transition1[\"t2\"]\n"
             ."place1-->transition1\n"
-            ."transition1-->place2",
+            .'transition1-->place2',
         ];
     }
 
@@ -169,7 +169,7 @@
             ."place1-->transition0\n"
             ."transition1[\"t1\"]\n"
             ."place2-->transition1\n"
-            ."transition1-->place3",
+            .'transition1-->place3',
         ];
     }
 
@@ -186,7 +186,7 @@
             ."place3-->|\"My custom transition label 3\"|place1\n"
             ."linkStyle 1 stroke:Grey\n"
             ."place1-->|\"t2\"|place2\n"
-            ."place1-->|\"t3\"|place3",
+            .'place1-->|"t3"|place3',
         ];
     }
 
@@ -212,7 +212,7 @@
             ."linkStyle 1 stroke:Grey\n"
             ."transition1[\"t2\"]\n"
             ."place1-->transition1\n"
-            ."transition1-->place2",
+            .'transition1-->place2',
         ];
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/StateMachineGraphvizDumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/StateMachineGraphvizDumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/StateMachineGraphvizDumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/Dumper/StateMachineGraphvizDumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,23 +27,23 @@
         $dump = (new StateMachineGraphvizDumper())->dump($definition);
 
         $expected = <<<'EOGRAPH'
-digraph workflow {
-  ratio="compress" rankdir="LR"
-  node [fontsize="9" fontname="Arial" color="#333333" fillcolor="lightblue" fixedsize="false" width="1"];
-  edge [fontsize="9" fontname="Arial" color="#333333" arrowhead="normal" arrowsize="0.5"];
-
-  place_86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 [label="a", shape=circle style="filled"];
-  place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="b", shape=circle];
-  place_84a516841ba77a5b4648de2cd0dfcb30ea46dbb4 [label="c", shape=circle];
-  place_3c363836cf4e16666669a25da280a1865c2d2874 [label="d", shape=circle];
-  place_86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 -> place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="t1" style="solid"];
-  place_3c363836cf4e16666669a25da280a1865c2d2874 -> place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="My custom transition
-label 3" style="solid" fontcolor="Grey" color="Red"];
-  place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 -> place_84a516841ba77a5b4648de2cd0dfcb30ea46dbb4 [label="t2" style="solid" color="Blue"];
-  place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 -> place_3c363836cf4e16666669a25da280a1865c2d2874 [label="t3" style="solid"];
-}
+            digraph workflow {
+              ratio="compress" rankdir="LR"
+              node [fontsize="9" fontname="Arial" color="#333333" fillcolor="lightblue" fixedsize="false" width="1"];
+              edge [fontsize="9" fontname="Arial" color="#333333" arrowhead="normal" arrowsize="0.5"];
+
+              place_86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 [label="a", shape=circle style="filled"];
+              place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="b", shape=circle];
+              place_84a516841ba77a5b4648de2cd0dfcb30ea46dbb4 [label="c", shape=circle];
+              place_3c363836cf4e16666669a25da280a1865c2d2874 [label="d", shape=circle];
+              place_86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 -> place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="t1" style="solid"];
+              place_3c363836cf4e16666669a25da280a1865c2d2874 -> place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="My custom transition
+            label 3" style="solid" fontcolor="Grey" color="Red"];
+              place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 -> place_84a516841ba77a5b4648de2cd0dfcb30ea46dbb4 [label="t2" style="solid" color="Blue"];
+              place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 -> place_3c363836cf4e16666669a25da280a1865c2d2874 [label="t3" style="solid"];
+            }
 
-EOGRAPH;
+            EOGRAPH;
 
         $this->assertEquals($expected, $dump);
     }
@@ -54,23 +54,23 @@
         $marking = new Marking(['b' => 1]);
 
         $expected = <<<'EOGRAPH'
-digraph workflow {
-  ratio="compress" rankdir="LR"
-  node [fontsize="9" fontname="Arial" color="#333333" fillcolor="lightblue" fixedsize="false" width="1"];
-  edge [fontsize="9" fontname="Arial" color="#333333" arrowhead="normal" arrowsize="0.5"];
-
-  place_86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 [label="a", shape=circle style="filled"];
-  place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="b", shape=circle color="#FF0000" shape="doublecircle"];
-  place_84a516841ba77a5b4648de2cd0dfcb30ea46dbb4 [label="c", shape=circle];
-  place_3c363836cf4e16666669a25da280a1865c2d2874 [label="d", shape=circle];
-  place_86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 -> place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="t1" style="solid"];
-  place_3c363836cf4e16666669a25da280a1865c2d2874 -> place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="My custom transition
-label 3" style="solid" fontcolor="Grey" color="Red"];
-  place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 -> place_84a516841ba77a5b4648de2cd0dfcb30ea46dbb4 [label="t2" style="solid" color="Blue"];
-  place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 -> place_3c363836cf4e16666669a25da280a1865c2d2874 [label="t3" style="solid"];
-}
+            digraph workflow {
+              ratio="compress" rankdir="LR"
+              node [fontsize="9" fontname="Arial" color="#333333" fillcolor="lightblue" fixedsize="false" width="1"];
+              edge [fontsize="9" fontname="Arial" color="#333333" arrowhead="normal" arrowsize="0.5"];
+
+              place_86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 [label="a", shape=circle style="filled"];
+              place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="b", shape=circle color="#FF0000" shape="doublecircle"];
+              place_84a516841ba77a5b4648de2cd0dfcb30ea46dbb4 [label="c", shape=circle];
+              place_3c363836cf4e16666669a25da280a1865c2d2874 [label="d", shape=circle];
+              place_86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 -> place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="t1" style="solid"];
+              place_3c363836cf4e16666669a25da280a1865c2d2874 -> place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 [label="My custom transition
+            label 3" style="solid" fontcolor="Grey" color="Red"];
+              place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 -> place_84a516841ba77a5b4648de2cd0dfcb30ea46dbb4 [label="t2" style="solid" color="Blue"];
+              place_e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98 -> place_3c363836cf4e16666669a25da280a1865c2d2874 [label="t3" style="solid"];
+            }
 
-EOGRAPH;
+            EOGRAPH;
 
         $dump = (new StateMachineGraphvizDumper())->dump($definition, $marking);
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/EventListener/GuardListenerTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/EventListener/GuardListenerTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/EventListener/GuardListenerTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/EventListener/GuardListenerTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,10 +11,9 @@
 
 namespace Symfony\Component\Workflow\Tests\EventListener;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolverInterface;
-use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
 use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
 use Symfony\Component\Security\Core\Role\RoleHierarchy;
@@ -22,6 +21,7 @@
 use Symfony\Component\Validator\ConstraintViolation;
 use Symfony\Component\Validator\ConstraintViolationList;
 use Symfony\Component\Validator\Validator\ValidatorInterface;
+use Symfony\Component\Validator\ValidatorBuilder;
 use Symfony\Component\Workflow\Event\GuardEvent;
 use Symfony\Component\Workflow\EventListener\ExpressionLanguage;
 use Symfony\Component\Workflow\EventListener\GuardExpression;
@@ -33,9 +33,8 @@
 
 class GuardListenerTest extends TestCase
 {
-    private MockObject&AuthorizationCheckerInterface $authenticationChecker;
-    private MockObject&ValidatorInterface $validator;
-    private GuardListener $listener;
+    private ?AuthorizationCheckerInterface $authenticationChecker = null;
+    private ?ValidatorInterface $validator = null;
     private array $configuration;
 
     protected function setUp(): void
@@ -48,15 +47,6 @@
                 new GuardExpression(new Transition('name', 'from', 'to'), 'is_valid(subject)'),
             ],
         ];
-        $expressionLanguage = new ExpressionLanguage();
-        $token = new UsernamePasswordToken(new InMemoryUser('username', 'credentials', ['ROLE_USER']), 'provider', ['ROLE_USER']);
-        $tokenStorage = $this->createMock(TokenStorageInterface::class);
-        $tokenStorage->expects($this->any())->method('getToken')->willReturn($token);
-        $this->authenticationChecker = $this->createMock(AuthorizationCheckerInterface::class);
-        $trustResolver = $this->createMock(AuthenticationTrustResolverInterface::class);
-        $this->validator = $this->createMock(ValidatorInterface::class);
-        $roleHierarchy = new RoleHierarchy([]);
-        $this->listener = new GuardListener($this->configuration, $expressionLanguage, $tokenStorage, $this->authenticationChecker, $trustResolver, $roleHierarchy, $this->validator);
     }
 
     public function testWithNotSupportedEvent()
@@ -65,7 +55,7 @@
         $this->configureAuthenticationChecker(false);
         $this->configureValidator(false);
 
-        $this->listener->onTransition($event, 'not supported');
+        $this->createGuardListener()->onTransition($event, 'not supported');
 
         $this->assertFalse($event->isBlocked());
     }
@@ -75,7 +65,7 @@
         $event = $this->createEvent();
         $this->configureAuthenticationChecker(true, false);
 
-        $this->listener->onTransition($event, 'test_is_granted');
+        $this->createGuardListener()->onTransition($event, 'test_is_granted');
 
         $this->assertTrue($event->isBlocked());
     }
@@ -85,7 +75,7 @@
         $event = $this->createEvent();
         $this->configureAuthenticationChecker(true, true);
 
-        $this->listener->onTransition($event, 'test_is_granted');
+        $this->createGuardListener()->onTransition($event, 'test_is_granted');
 
         $this->assertFalse($event->isBlocked());
     }
@@ -95,7 +85,7 @@
         $event = $this->createEvent();
         $this->configureValidator(true, false);
 
-        $this->listener->onTransition($event, 'test_is_valid');
+        $this->createGuardListener()->onTransition($event, 'test_is_valid');
 
         $this->assertTrue($event->isBlocked());
     }
@@ -105,7 +95,7 @@
         $event = $this->createEvent();
         $this->configureValidator(true, true);
 
-        $this->listener->onTransition($event, 'test_is_valid');
+        $this->createGuardListener()->onTransition($event, 'test_is_valid');
 
         $this->assertFalse($event->isBlocked());
     }
@@ -114,7 +104,7 @@
     {
         $event = $this->createEvent();
         $this->configureValidator(false);
-        $this->listener->onTransition($event, 'test_expression');
+        $this->createGuardListener()->onTransition($event, 'test_expression');
 
         $this->assertFalse($event->isBlocked());
     }
@@ -123,7 +113,7 @@
     {
         $event = $this->createEvent($this->configuration['test_expression'][1]->getTransition());
         $this->configureValidator(true, true);
-        $this->listener->onTransition($event, 'test_expression');
+        $this->createGuardListener()->onTransition($event, 'test_expression');
 
         $this->assertFalse($event->isBlocked());
     }
@@ -132,7 +122,7 @@
     {
         $event = $this->createEvent($this->configuration['test_expression'][1]->getTransition());
         $this->configureValidator(true, false);
-        $this->listener->onTransition($event, 'test_expression');
+        $this->createGuardListener()->onTransition($event, 'test_expression');
 
         $this->assertTrue($event->isBlocked());
     }
@@ -142,13 +132,15 @@
         $subject = new Subject();
         $transition ??= new Transition('name', 'from', 'to');
 
-        $workflow = $this->createMock(WorkflowInterface::class);
+        $workflow = $this->createStub(WorkflowInterface::class);
 
         return new GuardEvent($subject, new Marking($subject->getMarking() ?? []), $transition, $workflow);
     }
 
     private function configureAuthenticationChecker($isUsed, $granted = true)
     {
+        $this->authenticationChecker ??= $this->createMock(AuthorizationCheckerInterface::class);
+
         if (!$isUsed) {
             $this->authenticationChecker
                 ->expects($this->never())
@@ -167,6 +159,8 @@
 
     private function configureValidator($isUsed, $valid = true): void
     {
+        $this->validator ??= $this->createMock(ValidatorInterface::class);
+
         if (!$isUsed) {
             $this->validator
                 ->expects($this->never())
@@ -182,4 +176,13 @@
             ->willReturn(new ConstraintViolationList($valid ? [] : [new ConstraintViolation('a violation', null, [], '', null, '')]))
         ;
     }
+
+    private function createGuardListener(): GuardListener
+    {
+        $token = new UsernamePasswordToken(new InMemoryUser('username', 'credentials', ['ROLE_USER']), 'provider', ['ROLE_USER']);
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($token);
+
+        return new GuardListener($this->configuration, new ExpressionLanguage(), $tokenStorage, $this->authenticationChecker ?? $this->createStub(AuthorizationCheckerInterface::class), $this->createStub(AuthenticationTrustResolverInterface::class), new RoleHierarchy([]), $this->validator ?? (new ValidatorBuilder())->getValidator());
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/MarkingStore/MethodMarkingStoreTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/MarkingStore/MethodMarkingStoreTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/MarkingStore/MethodMarkingStoreTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/MarkingStore/MethodMarkingStoreTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -107,6 +107,16 @@
         $markingStore->getMarking($subject);
     }
 
+    public function testGetMarkingWithUninitializedPropertyInheritance()
+    {
+        $subject = new ChildInheritingProperty();
+
+        $markingStore = new MethodMarkingStore(true, 'place');
+        $marking = $markingStore->getMarking($subject);
+
+        $this->assertCount(0, $marking->getPlaces());
+    }
+
     private function createValueObject(string $markingValue): object
     {
         return new class($markingValue) {
@@ -124,3 +134,12 @@
         };
     }
 }
+
+class ParentWithProperty
+{
+    public string $place;
+}
+
+class ChildInheritingProperty extends ParentWithProperty
+{
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/RegistryTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/RegistryTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/RegistryTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/RegistryTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,15 +11,14 @@
 
 namespace Symfony\Component\Workflow\Tests;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\Workflow\Definition;
 use Symfony\Component\Workflow\Exception\InvalidArgumentException;
 use Symfony\Component\Workflow\MarkingStore\MarkingStoreInterface;
 use Symfony\Component\Workflow\Registry;
 use Symfony\Component\Workflow\SupportStrategy\WorkflowSupportStrategyInterface;
 use Symfony\Component\Workflow\Workflow;
-use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
 
 class RegistryTest extends TestCase
 {
@@ -29,9 +28,9 @@
     {
         $this->registry = new Registry();
 
-        $this->registry->addWorkflow(new Workflow(new Definition([], []), $this->createMock(MarkingStoreInterface::class), $this->createMock(EventDispatcherInterface::class), 'workflow1'), $this->createWorkflowSupportStrategy(Subject1::class));
-        $this->registry->addWorkflow(new Workflow(new Definition([], []), $this->createMock(MarkingStoreInterface::class), $this->createMock(EventDispatcherInterface::class), 'workflow2'), $this->createWorkflowSupportStrategy(Subject2::class));
-        $this->registry->addWorkflow(new Workflow(new Definition([], []), $this->createMock(MarkingStoreInterface::class), $this->createMock(EventDispatcherInterface::class), 'workflow3'), $this->createWorkflowSupportStrategy(Subject2::class));
+        $this->registry->addWorkflow(new Workflow(new Definition([], []), $this->createStub(MarkingStoreInterface::class), new EventDispatcher(), 'workflow1'), $this->createWorkflowSupportStrategy(Subject1::class));
+        $this->registry->addWorkflow(new Workflow(new Definition([], []), $this->createStub(MarkingStoreInterface::class), new EventDispatcher(), 'workflow2'), $this->createWorkflowSupportStrategy(Subject2::class));
+        $this->registry->addWorkflow(new Workflow(new Definition([], []), $this->createStub(MarkingStoreInterface::class), new EventDispatcher(), 'workflow3'), $this->createWorkflowSupportStrategy(Subject2::class));
     }
 
     public function testHasWithMatch()
@@ -104,11 +103,11 @@
         $this->assertCount(0, $workflows);
     }
 
-    private function createWorkflowSupportStrategy($supportedClassName): MockObject&WorkflowSupportStrategyInterface
+    private function createWorkflowSupportStrategy($supportedClassName): WorkflowSupportStrategyInterface
     {
-        $strategy = $this->createMock(WorkflowSupportStrategyInterface::class);
-        $strategy->expects($this->any())->method('supports')
-            ->willReturnCallback(fn ($workflow, $subject) => $subject instanceof $supportedClassName);
+        $strategy = $this->createStub(WorkflowSupportStrategyInterface::class);
+        $strategy->method('supports')
+            ->willReturnCallback(static fn ($workflow, $subject) => $subject instanceof $supportedClassName);
 
         return $strategy;
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/StateMachineTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/StateMachineTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/StateMachineTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/StateMachineTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -87,8 +87,8 @@
         $dispatcher = new EventDispatcher();
         $net = new StateMachine($definition, null, $dispatcher);
 
-        $dispatcher->addListener('workflow.guard', function (GuardEvent $event) {
-            $event->addTransitionBlocker(new TransitionBlocker(sprintf('Transition blocker of place %s', $event->getTransition()->getFroms()[0]), 'blocker'));
+        $dispatcher->addListener('workflow.guard', static function (GuardEvent $event) {
+            $event->addTransitionBlocker(new TransitionBlocker(\sprintf('Transition blocker of place %s', $event->getTransition()->getFroms()[0]), 'blocker'));
         });
 
         $subject = new Subject();
@@ -123,8 +123,8 @@
         $dispatcher = new EventDispatcher();
         $net = new StateMachine($definition, null, $dispatcher);
 
-        $dispatcher->addListener('workflow.guard', function (GuardEvent $event) {
-            $event->addTransitionBlocker(new TransitionBlocker(sprintf('Transition blocker of place %s', $event->getTransition()->getFroms()[0]), 'blocker'));
+        $dispatcher->addListener('workflow.guard', static function (GuardEvent $event) {
+            $event->addTransitionBlocker(new TransitionBlocker(\sprintf('Transition blocker of place %s', $event->getTransition()->getFroms()[0]), 'blocker'));
         });
 
         $subject = new Subject();
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/SupportStrategy/InstanceOfSupportStrategyTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/SupportStrategy/InstanceOfSupportStrategyTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/SupportStrategy/InstanceOfSupportStrategyTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/SupportStrategy/InstanceOfSupportStrategyTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -11,10 +11,9 @@
 
 namespace Symfony\Component\Workflow\Tests\SupportStrategy;
 
-use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Workflow\SupportStrategy\InstanceOfSupportStrategy;
-use Symfony\Component\Workflow\Workflow;
+use Symfony\Component\Workflow\WorkflowInterface;
 
 class InstanceOfSupportStrategyTest extends TestCase
 {
@@ -22,21 +21,14 @@
     {
         $strategy = new InstanceOfSupportStrategy(Subject1::class);
 
-        $this->assertTrue($strategy->supports($this->createWorkflow(), new Subject1()));
+        $this->assertTrue($strategy->supports($this->createStub(WorkflowInterface::class), new Subject1()));
     }
 
     public function testSupportsIfNotClassInstance()
     {
         $strategy = new InstanceOfSupportStrategy(Subject2::class);
 
-        $this->assertFalse($strategy->supports($this->createWorkflow(), new Subject1()));
-    }
-
-    private function createWorkflow(): MockObject&Workflow
-    {
-        return $this->getMockBuilder(Workflow::class)
-            ->disableOriginalConstructor()
-            ->getMock();
+        $this->assertFalse($strategy->supports($this->createStub(WorkflowInterface::class), new Subject1()));
     }
 }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/WorkflowBuilderTrait.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/WorkflowBuilderTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/WorkflowBuilderTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/WorkflowBuilderTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -129,9 +129,9 @@
         $transitionsMetadata = new \SplObjectStorage();
         // PHP 7.2 doesn't allow this heredoc syntax in an array, use a dedicated variable instead
         $label = <<<'EOTXT'
-My custom transition
-label 3
-EOTXT;
+            My custom transition
+            label 3
+            EOTXT;
         $transitionsMetadata[$transitionWithMetadataDumpStyle] = [
             'label' => $label,
             'color' => 'Grey',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/WorkflowTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/WorkflowTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Tests/WorkflowTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Tests/WorkflowTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -121,7 +121,7 @@
         $definition = $this->createComplexWorkflowDefinition();
         $subject = new Subject();
         $eventDispatcher = new EventDispatcher();
-        $eventDispatcher->addListener('workflow.workflow_name.guard.t1', function (GuardEvent $event) {
+        $eventDispatcher->addListener('workflow.workflow_name.guard.t1', static function (GuardEvent $event) {
             $event->setBlocked(true);
         });
         $workflow = new Workflow($definition, new MethodMarkingStore(), $eventDispatcher, 'workflow_name');
@@ -141,10 +141,10 @@
         $workflow->apply($subject, 't1');
         $workflow->apply($subject, 't2');
 
-        $eventDispatcher->addListener('workflow.workflow_name.guard.t3', function () use (&$dispatchedEvents) {
+        $eventDispatcher->addListener('workflow.workflow_name.guard.t3', static function () use (&$dispatchedEvents) {
             $dispatchedEvents[] = 'workflow_name.guard.t3';
         });
-        $eventDispatcher->addListener('workflow.workflow_name.guard.t4', function () use (&$dispatchedEvents) {
+        $eventDispatcher->addListener('workflow.workflow_name.guard.t4', static function () use (&$dispatchedEvents) {
             $dispatchedEvents[] = 'workflow_name.guard.t4';
         });
 
@@ -225,17 +225,17 @@
         $dispatcher = new EventDispatcher();
         $workflow = new Workflow($definition, new MethodMarkingStore(), $dispatcher);
 
-        $dispatcher->addListener('workflow.guard', function (GuardEvent $event) {
+        $dispatcher->addListener('workflow.guard', static function (GuardEvent $event) {
             $event->addTransitionBlocker(new TransitionBlocker('Transition blocker 1', 'blocker_1'));
             $event->addTransitionBlocker(new TransitionBlocker('Transition blocker 2', 'blocker_2'));
         });
-        $dispatcher->addListener('workflow.guard', function (GuardEvent $event) {
+        $dispatcher->addListener('workflow.guard', static function (GuardEvent $event) {
             $event->addTransitionBlocker(new TransitionBlocker('Transition blocker 3', 'blocker_3'));
         });
-        $dispatcher->addListener('workflow.guard', function (GuardEvent $event) {
+        $dispatcher->addListener('workflow.guard', static function (GuardEvent $event) {
             $event->setBlocked(true);
         });
-        $dispatcher->addListener('workflow.guard', function (GuardEvent $event) {
+        $dispatcher->addListener('workflow.guard', static function (GuardEvent $event) {
             $event->setBlocked(true, 'You should not pass !!');
         });
 
@@ -575,7 +575,7 @@
         $definition = $this->createComplexWorkflowDefinition();
         $subject = new Subject();
         $eventDispatcher = new EventDispatcher();
-        $eventDispatcher->addListener('workflow.transition', function (TransitionEvent $event) {
+        $eventDispatcher->addListener('workflow.transition', static function (TransitionEvent $event) {
             $event->setContext(array_merge($event->getContext(), ['user' => 'admin']));
         });
         $workflow = new Workflow($definition, new MethodMarkingStore(), $eventDispatcher);
@@ -652,7 +652,7 @@
 
         $workflow = new Workflow($definition, new MethodMarkingStore(), $dispatcher);
 
-        $dispatcher->addListener('workflow.transition', function (TransitionEvent $event) {
+        $dispatcher->addListener('workflow.transition', static function (TransitionEvent $event) {
             $event->setContext(['foo' => 'bar']);
         });
 
@@ -711,7 +711,7 @@
         $workflow = new Workflow($definition, new MethodMarkingStore(), $dispatcher, $name);
 
         $calls = [];
-        $listener = function (Event $event) use (&$calls) {
+        $listener = static function (Event $event) use (&$calls) {
             $calls[] = $event;
         };
         $dispatcher->addListener("workflow.$name.entered.A", $listener);
@@ -764,7 +764,7 @@
         $definition = $this->createComplexWorkflowDefinition();
         $subject = new Subject();
         $eventDispatcher = new EventDispatcher();
-        $eventDispatcher->addListener('workflow.workflow_name.guard.t1', function (GuardEvent $event) {
+        $eventDispatcher->addListener('workflow.workflow_name.guard.t1', static function (GuardEvent $event) {
             $event->setBlocked(true);
         });
         $workflow = new Workflow($definition, new MethodMarkingStore(), $eventDispatcher, 'workflow_name');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -28,19 +28,19 @@
         foreach ($definition->getTransitions() as $transition) {
             // Make sure that each transition has exactly one TO
             if (1 !== \count($transition->getTos())) {
-                throw new InvalidDefinitionException(sprintf('A transition in StateMachine can only have one output. But the transition "%s" in StateMachine "%s" has %d outputs.', $transition->getName(), $name, \count($transition->getTos())));
+                throw new InvalidDefinitionException(\sprintf('A transition in StateMachine can only have one output. But the transition "%s" in StateMachine "%s" has %d outputs.', $transition->getName(), $name, \count($transition->getTos())));
             }
 
             // Make sure that each transition has exactly one FROM
             $froms = $transition->getFroms();
             if (1 !== \count($froms)) {
-                throw new InvalidDefinitionException(sprintf('A transition in StateMachine can only have one input. But the transition "%s" in StateMachine "%s" has %d inputs.', $transition->getName(), $name, \count($froms)));
+                throw new InvalidDefinitionException(\sprintf('A transition in StateMachine can only have one input. But the transition "%s" in StateMachine "%s" has %d inputs.', $transition->getName(), $name, \count($froms)));
             }
 
             // Enforcing uniqueness of the names of transitions starting at each node
             $from = reset($froms);
             if (isset($transitionFromNames[$from][$transition->getName()])) {
-                throw new InvalidDefinitionException(sprintf('A transition from a place/state must have an unique name. Multiple transitions named "%s" from place/state "%s" were found on StateMachine "%s".', $transition->getName(), $from, $name));
+                throw new InvalidDefinitionException(\sprintf('A transition from a place/state must have an unique name. Multiple transitions named "%s" from place/state "%s" were found on StateMachine "%s".', $transition->getName(), $from, $name));
             }
 
             $transitionFromNames[$from][$transition->getName()] = true;
@@ -48,7 +48,7 @@
 
         $initialPlaces = $definition->getInitialPlaces();
         if (2 <= \count($initialPlaces)) {
-            throw new InvalidDefinitionException(sprintf('The state machine "%s" cannot store many places. But the definition has %d initial places. Only one is supported.', $name, \count($initialPlaces)));
+            throw new InvalidDefinitionException(\sprintf('The state machine "%s" cannot store many places. But the definition has %d initial places. Only one is supported.', $name, \count($initialPlaces)));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php	2026-05-20 10:56:49.000000000 +0200
@@ -37,7 +37,7 @@
         foreach ($definition->getTransitions() as $transition) {
             foreach ($transition->getFroms() as $from) {
                 if (\in_array($transition->getName(), $places[$from])) {
-                    throw new InvalidDefinitionException(sprintf('All transitions for a place must have an unique name. Multiple transitions named "%s" where found for place "%s" in workflow "%s".', $transition->getName(), $from, $name));
+                    throw new InvalidDefinitionException(\sprintf('All transitions for a place must have an unique name. Multiple transitions named "%s" where found for place "%s" in workflow "%s".', $transition->getName(), $from, $name));
                 }
                 $places[$from][] = $transition->getName();
             }
@@ -49,13 +49,13 @@
 
         foreach ($definition->getTransitions() as $transition) {
             if (1 < \count($transition->getTos())) {
-                throw new InvalidDefinitionException(sprintf('The marking store of workflow "%s" cannot store many places. But the transition "%s" has too many output (%d). Only one is accepted.', $name, $transition->getName(), \count($transition->getTos())));
+                throw new InvalidDefinitionException(\sprintf('The marking store of workflow "%s" cannot store many places. But the transition "%s" has too many output (%d). Only one is accepted.', $name, $transition->getName(), \count($transition->getTos())));
             }
         }
 
         $initialPlaces = $definition->getInitialPlaces();
         if (2 <= \count($initialPlaces)) {
-            throw new InvalidDefinitionException(sprintf('The marking store of workflow "%s" cannot store many places. But the definition has %d initial places. Only one is supported.', $name, \count($initialPlaces)));
+            throw new InvalidDefinitionException(\sprintf('The marking store of workflow "%s" cannot store many places. But the definition has %d initial places. Only one is supported.', $name, \count($initialPlaces)));
         }
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Workflow.php symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Workflow.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Workflow/Workflow.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Workflow/Workflow.php	2026-05-20 10:56:49.000000000 +0200
@@ -83,7 +83,7 @@
         // check if the subject is already in the workflow
         if (!$marking->getPlaces()) {
             if (!$this->definition->getInitialPlaces()) {
-                throw new LogicException(sprintf('The Marking is empty and there is no initial place for workflow "%s".', $this->name));
+                throw new LogicException(\sprintf('The Marking is empty and there is no initial place for workflow "%s".', $this->name));
             }
             foreach ($this->definition->getInitialPlaces() as $place) {
                 $marking->mark($place);
@@ -103,7 +103,7 @@
         $places = $this->definition->getPlaces();
         foreach ($marking->getPlaces() as $placeName => $nbToken) {
             if (!isset($places[$placeName])) {
-                $message = sprintf('Place "%s" is not valid for workflow "%s".', $placeName, $this->name);
+                $message = \sprintf('Place "%s" is not valid for workflow "%s".', $placeName, $this->name);
                 if (!$places) {
                     $message .= ' It seems you forgot to add places to the current workflow.';
                 }
@@ -319,8 +319,8 @@
         $event = new GuardEvent($subject, $marking, $transition, $this);
 
         $this->dispatcher->dispatch($event, WorkflowEvents::GUARD);
-        $this->dispatcher->dispatch($event, sprintf('workflow.%s.guard', $this->name));
-        $this->dispatcher->dispatch($event, sprintf('workflow.%s.guard.%s', $this->name, $transition->getName()));
+        $this->dispatcher->dispatch($event, \sprintf('workflow.%s.guard', $this->name));
+        $this->dispatcher->dispatch($event, \sprintf('workflow.%s.guard.%s', $this->name, $transition->getName()));
 
         return $event;
     }
@@ -333,10 +333,10 @@
             $event = new LeaveEvent($subject, $marking, $transition, $this, $context);
 
             $this->dispatcher->dispatch($event, WorkflowEvents::LEAVE);
-            $this->dispatcher->dispatch($event, sprintf('workflow.%s.leave', $this->name));
+            $this->dispatcher->dispatch($event, \sprintf('workflow.%s.leave', $this->name));
 
             foreach ($places as $place) {
-                $this->dispatcher->dispatch($event, sprintf('workflow.%s.leave.%s', $this->name, $place));
+                $this->dispatcher->dispatch($event, \sprintf('workflow.%s.leave.%s', $this->name, $place));
             }
         }
 
@@ -354,8 +354,8 @@
         $event = new TransitionEvent($subject, $marking, $transition, $this, $context);
 
         $this->dispatcher->dispatch($event, WorkflowEvents::TRANSITION);
-        $this->dispatcher->dispatch($event, sprintf('workflow.%s.transition', $this->name));
-        $this->dispatcher->dispatch($event, sprintf('workflow.%s.transition.%s', $this->name, $transition->getName()));
+        $this->dispatcher->dispatch($event, \sprintf('workflow.%s.transition', $this->name));
+        $this->dispatcher->dispatch($event, \sprintf('workflow.%s.transition.%s', $this->name, $transition->getName()));
 
         return $event->getContext();
     }
@@ -368,10 +368,10 @@
             $event = new EnterEvent($subject, $marking, $transition, $this, $context);
 
             $this->dispatcher->dispatch($event, WorkflowEvents::ENTER);
-            $this->dispatcher->dispatch($event, sprintf('workflow.%s.enter', $this->name));
+            $this->dispatcher->dispatch($event, \sprintf('workflow.%s.enter', $this->name));
 
             foreach ($places as $place) {
-                $this->dispatcher->dispatch($event, sprintf('workflow.%s.enter.%s', $this->name, $place));
+                $this->dispatcher->dispatch($event, \sprintf('workflow.%s.enter.%s', $this->name, $place));
             }
         }
 
@@ -389,7 +389,7 @@
         $event = new EnteredEvent($subject, $marking, $transition, $this, $context);
 
         $this->dispatcher->dispatch($event, WorkflowEvents::ENTERED);
-        $this->dispatcher->dispatch($event, sprintf('workflow.%s.entered', $this->name));
+        $this->dispatcher->dispatch($event, \sprintf('workflow.%s.entered', $this->name));
 
         $placeNames = [];
         if ($transition) {
@@ -398,7 +398,7 @@
             $placeNames = $this->definition->getInitialPlaces();
         }
         foreach ($placeNames as $placeName) {
-            $this->dispatcher->dispatch($event, sprintf('workflow.%s.entered.%s', $this->name, $placeName));
+            $this->dispatcher->dispatch($event, \sprintf('workflow.%s.entered.%s', $this->name, $placeName));
         }
     }
 
@@ -411,8 +411,8 @@
         $event = new CompletedEvent($subject, $marking, $transition, $this, $context);
 
         $this->dispatcher->dispatch($event, WorkflowEvents::COMPLETED);
-        $this->dispatcher->dispatch($event, sprintf('workflow.%s.completed', $this->name));
-        $this->dispatcher->dispatch($event, sprintf('workflow.%s.completed.%s', $this->name, $transition->getName()));
+        $this->dispatcher->dispatch($event, \sprintf('workflow.%s.completed', $this->name));
+        $this->dispatcher->dispatch($event, \sprintf('workflow.%s.completed.%s', $this->name, $transition->getName()));
     }
 
     private function announce(object $subject, Transition $initialTransition, Marking $marking, array $context): void
@@ -424,10 +424,10 @@
         $event = new AnnounceEvent($subject, $marking, $initialTransition, $this, $context);
 
         $this->dispatcher->dispatch($event, WorkflowEvents::ANNOUNCE);
-        $this->dispatcher->dispatch($event, sprintf('workflow.%s.announce', $this->name));
+        $this->dispatcher->dispatch($event, \sprintf('workflow.%s.announce', $this->name));
 
         foreach ($this->getEnabledTransitions($subject) as $transition) {
-            $this->dispatcher->dispatch($event, sprintf('workflow.%s.announce.%s', $this->name, $transition->getName()));
+            $this->dispatcher->dispatch($event, \sprintf('workflow.%s.announce.%s', $this->name, $transition->getName()));
         }
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/CHANGELOG.md symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/CHANGELOG.md
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/CHANGELOG.md	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/CHANGELOG.md	2026-05-20 10:56:49.000000000 +0200
@@ -20,6 +20,9 @@
 5.4
 ---
 
+ * Add a `$maxNestingLevel` argument to `Parser::__construct()`, `Yaml::parse()` and `Yaml::parseFile()` to bound recursion depth (default 128)
+ * Add a `$maxAliasesForCollections` argument to `Parser::__construct()`, `Yaml::parse()` and `Yaml::parseFile()` to bound alias expansion of collection values (default 128)
+ * Add `Yaml::PARSE_EXCEPTION_ON_ALIAS` to reject YAML aliases while parsing untrusted input
  * Add new `lint:yaml dirname --exclude=/dirname/foo.yaml --exclude=/dirname/bar.yaml`
    option to exclude one or more specific files from multiple file list
  * Allow negatable for the parse tags option with `--no-parse-tags`
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Command/LintCommand.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Command/LintCommand.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Command/LintCommand.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Command/LintCommand.php	2026-05-20 10:56:49.000000000 +0200
@@ -57,31 +57,31 @@
     {
         $this
             ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN')
-            ->addOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())))
+            ->addOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())))
             ->addOption('exclude', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Path(s) to exclude')
             ->addOption('parse-tags', null, InputOption::VALUE_NEGATABLE, 'Parse custom tags', null)
             ->setHelp(<<<EOF
-The <info>%command.name%</info> command lints a YAML file and outputs to STDOUT
-the first encountered syntax error.
+                The <info>%command.name%</info> command lints a YAML file and outputs to STDOUT
+                the first encountered syntax error.
 
-You can validates YAML contents passed from STDIN:
+                You can validates YAML contents passed from STDIN:
 
-  <info>cat filename | php %command.full_name% -</info>
+                  <info>cat filename | php %command.full_name% -</info>
 
-You can also validate the syntax of a file:
+                You can also validate the syntax of a file:
 
-  <info>php %command.full_name% filename</info>
+                  <info>php %command.full_name% filename</info>
 
-Or of a whole directory:
+                Or of a whole directory:
 
-  <info>php %command.full_name% dirname</info>
-  <info>php %command.full_name% dirname --format=json</info>
+                  <info>php %command.full_name% dirname</info>
+                  <info>php %command.full_name% dirname --format=json</info>
 
-You can also exclude one or more specific files:
+                You can also exclude one or more specific files:
 
-  <info>php %command.full_name% dirname --exclude="dirname/foo.yaml" --exclude="dirname/bar.yaml"</info>
+                  <info>php %command.full_name% dirname --exclude="dirname/foo.yaml" --exclude="dirname/bar.yaml"</info>
 
-EOF
+                EOF
             )
         ;
     }
@@ -114,7 +114,7 @@
         $filesInfo = [];
         foreach ($filenames as $filename) {
             if (!$this->isReadable($filename)) {
-                throw new RuntimeException(sprintf('File or directory "%s" is not readable.', $filename));
+                throw new RuntimeException(\sprintf('File or directory "%s" is not readable.', $filename));
             }
 
             foreach ($this->getFiles($filename) as $file) {
@@ -154,7 +154,7 @@
             'txt' => $this->displayTxt($io, $files),
             'json' => $this->displayJson($io, $files),
             'github' => $this->displayTxt($io, $files, true),
-            default => throw new InvalidArgumentException(sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
+            default => throw new InvalidArgumentException(\sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
         };
     }
 
@@ -170,11 +170,11 @@
 
         foreach ($filesInfo as $info) {
             if ($info['valid'] && $this->displayCorrectFiles) {
-                $io->comment('<info>OK</info>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
+                $io->comment('<info>OK</info>'.($info['file'] ? \sprintf(' in %s', $info['file']) : ''));
             } elseif (!$info['valid']) {
                 ++$erroredFiles;
-                $io->text('<error> ERROR </error>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
-                $io->text(sprintf('<error> >> %s</error>', $info['message']));
+                $io->text('<error> ERROR </error>'.($info['file'] ? \sprintf(' in %s', $info['file']) : ''));
+                $io->text(\sprintf('<error> >> %s</error>', $info['message']));
 
                 if (str_contains($info['message'], 'PARSE_CUSTOM_TAGS')) {
                     $suggestTagOption = true;
@@ -187,9 +187,9 @@
         }
 
         if (0 === $erroredFiles) {
-            $io->success(sprintf('All %d YAML files contain valid syntax.', $countFiles));
+            $io->success(\sprintf('All %d YAML files contain valid syntax.', $countFiles));
         } else {
-            $io->warning(sprintf('%d YAML files have valid syntax and %d contain errors.%s', $countFiles - $erroredFiles, $erroredFiles, $suggestTagOption ? ' Use the --parse-tags option if you want parse custom tags.' : ''));
+            $io->warning(\sprintf('%d YAML files have valid syntax and %d contain errors.%s', $countFiles - $erroredFiles, $erroredFiles, $suggestTagOption ? ' Use the --parse-tags option if you want parse custom tags.' : ''));
         }
 
         return min($erroredFiles, 1);
@@ -199,7 +199,7 @@
     {
         $errors = 0;
 
-        array_walk($filesInfo, function (&$v) use (&$errors) {
+        array_walk($filesInfo, static function (&$v) use (&$errors) {
             $v['file'] = (string) $v['file'];
             if (!$v['valid']) {
                 ++$errors;
@@ -239,7 +239,7 @@
 
     private function getDirectoryIterator(string $directory): iterable
     {
-        $default = fn ($directory) => new \RecursiveIteratorIterator(
+        $default = static fn ($directory) => new \RecursiveIteratorIterator(
             new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS),
             \RecursiveIteratorIterator::LEAVES_ONLY
         );
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Dumper.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Dumper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Dumper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Dumper.php	2026-05-20 10:56:49.000000000 +0200
@@ -81,13 +81,13 @@
                         $blockChompingIndicator = '-';
                     }
 
-                    $output .= sprintf('%s%s%s |%s%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', '', $blockIndentationIndicator, $blockChompingIndicator);
+                    $output .= \sprintf('%s%s%s |%s%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', '', $blockIndentationIndicator, $blockChompingIndicator);
 
                     foreach (explode("\n", $value) as $row) {
                         if ('' === $row) {
                             $output .= "\n";
                         } else {
-                            $output .= sprintf("\n%s%s%s", $prefix, str_repeat(' ', $this->indentation), $row);
+                            $output .= \sprintf("\n%s%s%s", $prefix, str_repeat(' ', $this->indentation), $row);
                         }
                     }
 
@@ -95,14 +95,14 @@
                 }
 
                 if ($value instanceof TaggedValue) {
-                    $output .= sprintf('%s%s !%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', $value->getTag());
+                    $output .= \sprintf('%s%s !%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', $value->getTag());
 
                     if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value->getValue()) && str_contains($value->getValue(), "\n") && !str_contains($value->getValue(), "\r\n")) {
                         $blockIndentationIndicator = $this->getBlockIndentationIndicator($value->getValue());
-                        $output .= sprintf(' |%s', $blockIndentationIndicator);
+                        $output .= \sprintf(' |%s', $blockIndentationIndicator);
 
                         foreach (explode("\n", $value->getValue()) as $row) {
-                            $output .= sprintf("\n%s%s%s", $prefix, str_repeat(' ', $this->indentation), $row);
+                            $output .= \sprintf("\n%s%s%s", $prefix, str_repeat(' ', $this->indentation), $row);
                         }
 
                         continue;
@@ -126,7 +126,7 @@
 
                 $willBeInlined = $inline - 1 <= 0 || !\is_array($value) && $dumpObjectAsInlineMap || empty($value);
 
-                $output .= sprintf('%s%s%s%s',
+                $output .= \sprintf('%s%s%s%s',
                     $prefix,
                     $dumpAsMap ? Inline::dump($key, $flags).':' : '-',
                     $willBeInlined ? ' ' : "\n",
@@ -140,14 +140,14 @@
 
     private function dumpTaggedValue(TaggedValue $value, int $inline, int $indent, int $flags, string $prefix): string
     {
-        $output = sprintf('%s!%s', $prefix ? $prefix.' ' : '', $value->getTag());
+        $output = \sprintf('%s!%s', $prefix ? $prefix.' ' : '', $value->getTag());
 
         if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value->getValue()) && str_contains($value->getValue(), "\n") && !str_contains($value->getValue(), "\r\n")) {
             $blockIndentationIndicator = $this->getBlockIndentationIndicator($value->getValue());
-            $output .= sprintf(' |%s', $blockIndentationIndicator);
+            $output .= \sprintf(' |%s', $blockIndentationIndicator);
 
             foreach (explode("\n", $value->getValue()) as $row) {
-                $output .= sprintf("\n%s%s%s", $prefix, str_repeat(' ', $this->indentation), $row);
+                $output .= \sprintf("\n%s%s%s", $prefix, str_repeat(' ', $this->indentation), $row);
             }
 
             return $output;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Escaper.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Escaper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Escaper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Escaper.php	2026-05-20 10:56:49.000000000 +0200
@@ -29,21 +29,21 @@
     // on the input arrays. This ordering of the characters avoids the use of strtr,
     // which performs more slowly.
     private const ESCAPEES = ['\\', '\\\\', '\\"', '"',
-                                     "\x00",  "\x01",  "\x02",  "\x03",  "\x04",  "\x05",  "\x06",  "\x07",
-                                     "\x08",  "\x09",  "\x0a",  "\x0b",  "\x0c",  "\x0d",  "\x0e",  "\x0f",
-                                     "\x10",  "\x11",  "\x12",  "\x13",  "\x14",  "\x15",  "\x16",  "\x17",
-                                     "\x18",  "\x19",  "\x1a",  "\x1b",  "\x1c",  "\x1d",  "\x1e",  "\x1f",
-                                     "\x7f",
-                                     "\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9",
-                               ];
+        "\x00",  "\x01",  "\x02",  "\x03",  "\x04",  "\x05",  "\x06",  "\x07",
+        "\x08",  "\x09",  "\x0a",  "\x0b",  "\x0c",  "\x0d",  "\x0e",  "\x0f",
+        "\x10",  "\x11",  "\x12",  "\x13",  "\x14",  "\x15",  "\x16",  "\x17",
+        "\x18",  "\x19",  "\x1a",  "\x1b",  "\x1c",  "\x1d",  "\x1e",  "\x1f",
+        "\x7f",
+        "\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9",
+    ];
     private const ESCAPED = ['\\\\', '\\"', '\\\\', '\\"',
-                                     '\\0',   '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\a',
-                                     '\\b',   '\\t',   '\\n',   '\\v',   '\\f',   '\\r',   '\\x0e', '\\x0f',
-                                     '\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17',
-                                     '\\x18', '\\x19', '\\x1a', '\\e',   '\\x1c', '\\x1d', '\\x1e', '\\x1f',
-                                     '\\x7f',
-                                     '\\N', '\\_', '\\L', '\\P',
-                              ];
+        '\\0',   '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\a',
+        '\\b',   '\\t',   '\\n',   '\\v',   '\\f',   '\\r',   '\\x0e', '\\x0f',
+        '\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17',
+        '\\x18', '\\x19', '\\x1a', '\\e',   '\\x1c', '\\x1d', '\\x1e', '\\x1f',
+        '\\x7f',
+        '\\N', '\\_', '\\L', '\\P',
+    ];
 
     /**
      * Determines if a PHP value would require double quoting in YAML.
@@ -62,7 +62,7 @@
      */
     public static function escapeWithDoubleQuotes(string $value): string
     {
-        return sprintf('"%s"', str_replace(self::ESCAPEES, self::ESCAPED, $value));
+        return \sprintf('"%s"', str_replace(self::ESCAPEES, self::ESCAPED, $value));
     }
 
     /**
@@ -90,6 +90,6 @@
      */
     public static function escapeWithSingleQuotes(string $value): string
     {
-        return sprintf("'%s'", str_replace('\'', '\'\'', $value));
+        return \sprintf("'%s'", str_replace('\'', '\'\'', $value));
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Exception/ParseException.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Exception/ParseException.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Exception/ParseException.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Exception/ParseException.php	2026-05-20 10:56:49.000000000 +0200
@@ -114,15 +114,15 @@
         }
 
         if (null !== $this->parsedFile) {
-            $this->message .= sprintf(' in %s', json_encode($this->parsedFile, \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE));
+            $this->message .= \sprintf(' in %s', json_encode($this->parsedFile, \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE));
         }
 
         if ($this->parsedLine >= 0) {
-            $this->message .= sprintf(' at line %d', $this->parsedLine);
+            $this->message .= \sprintf(' at line %d', $this->parsedLine);
         }
 
         if ($this->snippet) {
-            $this->message .= sprintf(' (near "%s")', $this->snippet);
+            $this->message .= \sprintf(' (near "%s")', $this->snippet);
         }
 
         if ($dot) {
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Inline.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Inline.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Inline.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Inline.php	2026-05-20 10:56:49.000000000 +0200
@@ -55,9 +55,10 @@
      *
      * @throws ParseException
      */
-    public static function parse(string $value, int $flags = 0, array &$references = []): mixed
+    public static function parse(string $value, int $flags = 0, array &$references = [], ?ParserState $state = null): mixed
     {
         self::initialize($flags);
+        $state ??= new ParserState();
 
         $value = trim($value);
 
@@ -66,23 +67,24 @@
         }
 
         $i = 0;
+        $isQuoted = null;
         $tag = self::parseTag($value, $i, $flags);
         switch ($value[$i]) {
             case '[':
-                $result = self::parseSequence($value, $flags, $i, $references);
+                $result = self::parseSequence($state, $value, $flags, $i, $references);
                 ++$i;
                 break;
             case '{':
-                $result = self::parseMapping($value, $flags, $i, $references);
+                $result = self::parseMapping($state, $value, $flags, $i, $references);
                 ++$i;
                 break;
             default:
-                $result = self::parseScalar($value, $flags, null, $i, true, $references);
+                $result = self::parseScalar($value, $flags, null, $i, true, $references, $isQuoted, $state);
         }
 
         // some comments are allowed at the end
         if (preg_replace('/\s*#.*$/A', '', substr($value, $i))) {
-            throw new ParseException(sprintf('Unexpected characters near "%s".', substr($value, $i)), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
+            throw new ParseException(\sprintf('Unexpected characters near "%s".', substr($value, $i)), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
         }
 
         if (null !== $tag && '' !== $tag) {
@@ -105,7 +107,7 @@
         switch (true) {
             case \is_resource($value):
                 if (Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE & $flags) {
-                    throw new DumpException(sprintf('Unable to dump PHP resources in a YAML file ("%s").', get_resource_type($value)));
+                    throw new DumpException(\sprintf('Unable to dump PHP resources in a YAML file ("%s").', get_resource_type($value)));
                 }
 
                 return self::dumpNull($flags);
@@ -116,7 +118,7 @@
                     default => 'Y-m-d\TH:i:s.uP',
                 });
             case $value instanceof \UnitEnum:
-                return sprintf('!php/const %s::%s', $value::class, $value->name);
+                return \sprintf('!php/const %s::%s', $value::class, $value->name);
             case \is_object($value):
                 if ($value instanceof TaggedValue) {
                     return '!'.$value->getTag().' '.self::dump($value->getValue(), $flags);
@@ -227,7 +229,7 @@
                 $output[] = self::dump($val, $flags);
             }
 
-            return sprintf('[%s]', implode(', ', $output));
+            return \sprintf('[%s]', implode(', ', $output));
         }
 
         return self::dumpHashArray($value, $flags);
@@ -247,10 +249,10 @@
                 $key = (string) $key;
             }
 
-            $output[] = sprintf('%s: %s', self::dump($key, $flags), self::dump($val, $flags));
+            $output[] = \sprintf('%s: %s', self::dump($key, $flags), self::dump($val, $flags));
         }
 
-        return sprintf('{ %s }', implode(', ', $output));
+        return \sprintf('{ %s }', implode(', ', $output));
     }
 
     private static function dumpNull(int $flags): string
@@ -267,7 +269,7 @@
      *
      * @throws ParseException When malformed inline YAML string is parsed
      */
-    public static function parseScalar(string $scalar, int $flags = 0, ?array $delimiters = null, int &$i = 0, bool $evaluate = true, array &$references = [], ?bool &$isQuoted = null): mixed
+    public static function parseScalar(string $scalar, int $flags = 0, ?array $delimiters = null, int &$i = 0, bool $evaluate = true, array &$references = [], ?bool &$isQuoted = null, ?ParserState $state = null): mixed
     {
         if (\in_array($scalar[$i], ['"', "'"], true)) {
             // quoted scalar
@@ -277,10 +279,10 @@
             if (null !== $delimiters) {
                 $tmp = ltrim(substr($scalar, $i), " \n");
                 if ('' === $tmp) {
-                    throw new ParseException(sprintf('Unexpected end of line, expected one of "%s".', implode('', $delimiters)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+                    throw new ParseException(\sprintf('Unexpected end of line, expected one of "%s".', implode('', $delimiters)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                 }
                 if (!\in_array($tmp[0], $delimiters)) {
-                    throw new ParseException(sprintf('Unexpected characters (%s).', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+                    throw new ParseException(\sprintf('Unexpected characters (%s).', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                 }
             }
         } else {
@@ -300,16 +302,17 @@
                 $i += \strlen($output);
                 $output = trim($output);
             } else {
-                throw new ParseException(sprintf('Malformed inline YAML string: "%s".', $scalar), self::$parsedLineNumber + 1, null, self::$parsedFilename);
+                throw new ParseException(\sprintf('Malformed inline YAML string: "%s".', $scalar), self::$parsedLineNumber + 1, null, self::$parsedFilename);
             }
 
             // a non-quoted string cannot start with @ or ` (reserved) nor with a scalar indicator (| or >)
             if ($output && ('@' === $output[0] || '`' === $output[0] || '|' === $output[0] || '>' === $output[0] || '%' === $output[0])) {
-                throw new ParseException(sprintf('The reserved indicator "%s" cannot start a plain scalar; you need to quote the scalar.', $output[0]), self::$parsedLineNumber + 1, $output, self::$parsedFilename);
+                throw new ParseException(\sprintf('The reserved indicator "%s" cannot start a plain scalar; you need to quote the scalar.', $output[0]), self::$parsedLineNumber + 1, $output, self::$parsedFilename);
             }
 
             if ($evaluate) {
-                $output = self::evaluateScalar($output, $flags, $references, $isQuoted);
+                $state ??= new ParserState();
+                $output = self::evaluateScalar($state, $output, $flags, $references, $isQuoted);
             }
         }
 
@@ -324,7 +327,7 @@
     private static function parseQuotedScalar(string $scalar, int &$i = 0): string
     {
         if (!Parser::preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) {
-            throw new ParseException(sprintf('Malformed inline YAML string: "%s".', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+            throw new ParseException(\sprintf('Malformed inline YAML string: "%s".', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
         }
 
         $output = substr($match[0], 1, -1);
@@ -346,73 +349,102 @@
      *
      * @throws ParseException When malformed inline YAML string is parsed
      */
-    private static function parseSequence(string $sequence, int $flags, int &$i = 0, array &$references = []): array
+    private static function parseSequence(ParserState $state, string $sequence, int $flags, int &$i = 0, array &$references = []): array
     {
+        $state->enterNestingLevel(self::$parsedLineNumber + 1, null, self::$parsedFilename);
+
         $output = [];
         $len = \strlen($sequence);
         ++$i;
 
-        // [foo, bar, ...]
-        $lastToken = null;
-        while ($i < $len) {
-            if (']' === $sequence[$i]) {
-                return $output;
-            }
-            if (',' === $sequence[$i] || ' ' === $sequence[$i]) {
-                if (',' === $sequence[$i] && (null === $lastToken || 'separator' === $lastToken)) {
-                    $output[] = null;
-                } elseif (',' === $sequence[$i]) {
-                    $lastToken = 'separator';
+        try {
+            // [foo, bar, ...]
+            $lastToken = null;
+            while ($i < $len) {
+                if (']' === $sequence[$i]) {
+                    return $output;
                 }
+                if (',' === $sequence[$i] || ' ' === $sequence[$i]) {
+                    if (',' === $sequence[$i] && (null === $lastToken || 'separator' === $lastToken)) {
+                        $output[] = null;
+                    } elseif (',' === $sequence[$i]) {
+                        $lastToken = 'separator';
+                    }
 
-                ++$i;
+                    ++$i;
 
-                continue;
-            }
+                    continue;
+                }
 
-            $tag = self::parseTag($sequence, $i, $flags);
-            switch ($sequence[$i]) {
-                case '[':
-                    // nested sequence
-                    $value = self::parseSequence($sequence, $flags, $i, $references);
-                    break;
-                case '{':
-                    // nested mapping
-                    $value = self::parseMapping($sequence, $flags, $i, $references);
-                    break;
-                default:
-                    $value = self::parseScalar($sequence, $flags, [',', ']'], $i, null === $tag, $references, $isQuoted);
+                $tag = self::parseTag($sequence, $i, $flags);
+                switch ($sequence[$i]) {
+                    case '[':
+                        // nested sequence
+                        $value = self::parseSequence($state, $sequence, $flags, $i, $references);
+                        break;
+                    case '{':
+                        // nested mapping
+                        $value = self::parseMapping($state, $sequence, $flags, $i, $references);
+                        break;
+                    default:
+                        $hasAnchorAtStart = null === $tag && isset($sequence[$i]) && '&' === $sequence[$i];
+                        $value = self::parseScalar($sequence, $flags, [',', ']'], $i, null === $tag, $references, $isQuoted, $state);
 
-                    // the value can be an array if a reference has been resolved to an array var
-                    if (\is_string($value) && !$isQuoted && str_contains($value, ': ')) {
-                        // embedded mapping?
-                        try {
-                            $pos = 0;
-                            $value = self::parseMapping('{'.$value.'}', $flags, $pos, $references);
-                        } catch (\InvalidArgumentException) {
-                            // no, it's not
+                        // the value can be an array if a reference has been resolved to an array var
+                        if (\is_string($value) && !$isQuoted && str_contains($value, ': ')) {
+                            // embedded mapping?
+                            $j = $i;
+                            $mappingValue = $value;
+                            $mappingException = null;
+                            do {
+                                try {
+                                    $pos = 0;
+                                    $value = self::parseMapping($state, '{'.$mappingValue.'}', $flags, $pos, $references);
+                                    $i = $j;
+                                    $mappingException = null;
+                                    break;
+                                } catch (ParseException $exception) {
+                                    $mappingException = $exception;
+                                    if ($j >= $len) {
+                                        break;
+                                    }
+
+                                    $mappingValue .= $sequence[$j++];
+                                    if ($j >= $len) {
+                                        break;
+                                    }
+
+                                    $mappingValue .= self::parseScalar($sequence, $flags, [',', ']'], $j, null === $tag, $references);
+                                }
+                            } while ($j < $len);
+
+                            if ($mappingException) {
+                                throw $mappingException;
+                            }
                         }
-                    }
 
-                    if (!$isQuoted && \is_string($value) && '' !== $value && '&' === $value[0] && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) {
-                        $references[$matches['ref']] = $matches['value'];
-                        $value = $matches['value'];
-                    }
+                        if ($hasAnchorAtStart && !$isQuoted && \is_string($value) && '' !== $value && '&' === $value[0] && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) {
+                            $value = '' === $matches['value'] ? null : $matches['value'];
+                            $references[$matches['ref']] = $value;
+                        }
 
-                    --$i;
-            }
+                        --$i;
+                }
 
-            if (null !== $tag && '' !== $tag) {
-                $value = new TaggedValue($tag, $value);
-            }
+                if (null !== $tag && '' !== $tag) {
+                    $value = new TaggedValue($tag, $value);
+                }
 
-            $output[] = $value;
+                $output[] = $value;
 
-            $lastToken = 'value';
-            ++$i;
-        }
+                $lastToken = 'value';
+                ++$i;
+            }
 
-        throw new ParseException(sprintf('Malformed inline YAML string: "%s".', $sequence), self::$parsedLineNumber + 1, null, self::$parsedFilename);
+            throw new ParseException(\sprintf('Malformed inline YAML string: "%s".', $sequence), self::$parsedLineNumber + 1, null, self::$parsedFilename);
+        } finally {
+            $state->leaveNestingLevel();
+        }
     }
 
     /**
@@ -420,143 +452,150 @@
      *
      * @throws ParseException When malformed inline YAML string is parsed
      */
-    private static function parseMapping(string $mapping, int $flags, int &$i = 0, array &$references = []): array|\stdClass
+    private static function parseMapping(ParserState $state, string $mapping, int $flags, int &$i = 0, array &$references = []): array|\stdClass
     {
+        $state->enterNestingLevel(self::$parsedLineNumber + 1, null, self::$parsedFilename);
+
         $output = [];
         $len = \strlen($mapping);
         ++$i;
         $allowOverwrite = false;
 
-        // {foo: bar, bar:foo, ...}
-        while ($i < $len) {
-            switch ($mapping[$i]) {
-                case ' ':
-                case ',':
-                case "\n":
-                    ++$i;
-                    continue 2;
-                case '}':
-                    if (self::$objectForMap) {
-                        return (object) $output;
-                    }
+        try {
+            // {foo: bar, bar:foo, ...}
+            while ($i < $len) {
+                switch ($mapping[$i]) {
+                    case ' ':
+                    case ',':
+                    case "\n":
+                        ++$i;
+                        continue 2;
+                    case '}':
+                        if (self::$objectForMap) {
+                            return (object) $output;
+                        }
 
-                    return $output;
-            }
+                        return $output;
+                }
 
-            // key
-            $offsetBeforeKeyParsing = $i;
-            $isKeyQuoted = \in_array($mapping[$i], ['"', "'"], true);
-            $key = self::parseScalar($mapping, $flags, [':', ' '], $i, false);
+                // key
+                $offsetBeforeKeyParsing = $i;
+                $isKeyQuoted = \in_array($mapping[$i], ['"', "'"], true);
+                $key = self::parseScalar($mapping, $flags, [':', ' '], $i, false);
 
-            if ($offsetBeforeKeyParsing === $i) {
-                throw new ParseException('Missing mapping key.', self::$parsedLineNumber + 1, $mapping);
-            }
+                if ($offsetBeforeKeyParsing === $i) {
+                    throw new ParseException('Missing mapping key.', self::$parsedLineNumber + 1, $mapping);
+                }
 
-            if ('!php/const' === $key || '!php/enum' === $key) {
-                $key .= ' '.self::parseScalar($mapping, $flags, [':'], $i, false);
-                $key = self::evaluateScalar($key, $flags);
-            }
+                if ('!php/const' === $key || '!php/enum' === $key) {
+                    $key .= ' '.self::parseScalar($mapping, $flags, ['(?<!:):(?!:)'], $i, false);
+                    $key = self::evaluateScalar($state, $key, $flags);
+                }
 
-            if (false === $i = strpos($mapping, ':', $i)) {
-                break;
-            }
+                if (false === $i = strpos($mapping, ':', $i)) {
+                    break;
+                }
 
-            if (!$isKeyQuoted) {
-                $evaluatedKey = self::evaluateScalar($key, $flags, $references);
+                if (!$isKeyQuoted) {
+                    $evaluatedKey = self::evaluateScalar($state, $key, $flags, $references);
 
-                if ('' !== $key && $evaluatedKey !== $key && !\is_string($evaluatedKey) && !\is_int($evaluatedKey)) {
-                    throw new ParseException('Implicit casting of incompatible mapping keys to strings is not supported. Quote your evaluable mapping keys instead.', self::$parsedLineNumber + 1, $mapping);
+                    if ('' !== $key && $evaluatedKey !== $key && !\is_string($evaluatedKey) && !\is_int($evaluatedKey)) {
+                        throw new ParseException('Implicit casting of incompatible mapping keys to strings is not supported. Quote your evaluable mapping keys instead.', self::$parsedLineNumber + 1, $mapping);
+                    }
                 }
-            }
 
-            if (!$isKeyQuoted && (!isset($mapping[$i + 1]) || !\in_array($mapping[$i + 1], [' ', ',', '[', ']', '{', '}', "\n"], true))) {
-                throw new ParseException('Colons must be followed by a space or an indication character (i.e. " ", ",", "[", "]", "{", "}").', self::$parsedLineNumber + 1, $mapping);
-            }
+                if (!$isKeyQuoted && (!isset($mapping[$i + 1]) || !\in_array($mapping[$i + 1], [' ', ',', '[', ']', '{', '}', "\n"], true))) {
+                    throw new ParseException('Colons must be followed by a space or an indication character (i.e. " ", ",", "[", "]", "{", "}").', self::$parsedLineNumber + 1, $mapping);
+                }
 
-            if ('<<' === $key) {
-                $allowOverwrite = true;
-            }
+                if ('<<' === $key) {
+                    $allowOverwrite = true;
+                }
 
-            while ($i < $len) {
-                if (':' === $mapping[$i] || ' ' === $mapping[$i] || "\n" === $mapping[$i]) {
-                    ++$i;
+                while ($i < $len) {
+                    if (':' === $mapping[$i] || ' ' === $mapping[$i] || "\n" === $mapping[$i]) {
+                        ++$i;
 
-                    continue;
-                }
+                        continue;
+                    }
 
-                $tag = self::parseTag($mapping, $i, $flags);
-                switch ($mapping[$i]) {
-                    case '[':
-                        // nested sequence
-                        $value = self::parseSequence($mapping, $flags, $i, $references);
-                        // Spec: Keys MUST be unique; first one wins.
-                        // Parser cannot abort this mapping earlier, since lines
-                        // are processed sequentially.
-                        // But overwriting is allowed when a merge node is used in current block.
-                        if ('<<' === $key) {
-                            foreach ($value as $parsedValue) {
-                                $output += $parsedValue;
-                            }
-                        } elseif ($allowOverwrite || !isset($output[$key])) {
-                            if (null !== $tag) {
-                                $output[$key] = new TaggedValue($tag, $value);
-                            } else {
-                                $output[$key] = $value;
-                            }
-                        } elseif (isset($output[$key])) {
-                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
-                        }
-                        break;
-                    case '{':
-                        // nested mapping
-                        $value = self::parseMapping($mapping, $flags, $i, $references);
-                        // Spec: Keys MUST be unique; first one wins.
-                        // Parser cannot abort this mapping earlier, since lines
-                        // are processed sequentially.
-                        // But overwriting is allowed when a merge node is used in current block.
-                        if ('<<' === $key) {
-                            $output += $value;
-                        } elseif ($allowOverwrite || !isset($output[$key])) {
-                            if (null !== $tag) {
-                                $output[$key] = new TaggedValue($tag, $value);
-                            } else {
-                                $output[$key] = $value;
-                            }
-                        } elseif (isset($output[$key])) {
-                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
-                        }
-                        break;
-                    default:
-                        $value = self::parseScalar($mapping, $flags, [',', '}', "\n"], $i, null === $tag, $references, $isValueQuoted);
-                        // Spec: Keys MUST be unique; first one wins.
-                        // Parser cannot abort this mapping earlier, since lines
-                        // are processed sequentially.
-                        // But overwriting is allowed when a merge node is used in current block.
-                        if ('<<' === $key) {
-                            $output += $value;
-                        } elseif ($allowOverwrite || !isset($output[$key])) {
-                            if (!$isValueQuoted && \is_string($value) && '' !== $value && '&' === $value[0] && !self::isBinaryString($value) && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) {
-                                $references[$matches['ref']] = $matches['value'];
-                                $value = $matches['value'];
-                            }
-
-                            if (null !== $tag) {
-                                $output[$key] = new TaggedValue($tag, $value);
-                            } else {
-                                $output[$key] = $value;
+                    $tag = self::parseTag($mapping, $i, $flags);
+                    switch ($mapping[$i]) {
+                        case '[':
+                            // nested sequence
+                            $value = self::parseSequence($state, $mapping, $flags, $i, $references);
+                            // Spec: Keys MUST be unique; first one wins.
+                            // Parser cannot abort this mapping earlier, since lines
+                            // are processed sequentially.
+                            // But overwriting is allowed when a merge node is used in current block.
+                            if ('<<' === $key) {
+                                foreach ($value as $parsedValue) {
+                                    $output += $parsedValue;
+                                }
+                            } elseif ($allowOverwrite || !isset($output[$key])) {
+                                if (null !== $tag) {
+                                    $output[$key] = new TaggedValue($tag, $value);
+                                } else {
+                                    $output[$key] = $value;
+                                }
+                            } elseif (isset($output[$key])) {
+                                throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
+                            }
+                            break;
+                        case '{':
+                            // nested mapping
+                            $value = self::parseMapping($state, $mapping, $flags, $i, $references);
+                            // Spec: Keys MUST be unique; first one wins.
+                            // Parser cannot abort this mapping earlier, since lines
+                            // are processed sequentially.
+                            // But overwriting is allowed when a merge node is used in current block.
+                            if ('<<' === $key) {
+                                $output += $value;
+                            } elseif ($allowOverwrite || !isset($output[$key])) {
+                                if (null !== $tag) {
+                                    $output[$key] = new TaggedValue($tag, $value);
+                                } else {
+                                    $output[$key] = $value;
+                                }
+                            } elseif (isset($output[$key])) {
+                                throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
+                            }
+                            break;
+                        default:
+                            $hasAnchorAtStart = null === $tag && isset($mapping[$i]) && '&' === $mapping[$i];
+                            $value = self::parseScalar($mapping, $flags, [',', '}', "\n"], $i, null === $tag, $references, $isValueQuoted, $state);
+                            // Spec: Keys MUST be unique; first one wins.
+                            // Parser cannot abort this mapping earlier, since lines
+                            // are processed sequentially.
+                            // But overwriting is allowed when a merge node is used in current block.
+                            if ('<<' === $key) {
+                                $output += $value;
+                            } elseif ($allowOverwrite || !isset($output[$key])) {
+                                if ($hasAnchorAtStart && !$isValueQuoted && \is_string($value) && '' !== $value && '&' === $value[0] && !self::isBinaryString($value) && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) {
+                                    $value = '' === $matches['value'] ? null : $matches['value'];
+                                    $references[$matches['ref']] = $value;
+                                }
+
+                                if (null !== $tag) {
+                                    $output[$key] = new TaggedValue($tag, $value);
+                                } else {
+                                    $output[$key] = $value;
+                                }
+                            } elseif (isset($output[$key])) {
+                                throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
                             }
-                        } elseif (isset($output[$key])) {
-                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
-                        }
-                        --$i;
-                }
-                ++$i;
+                            --$i;
+                    }
+                    ++$i;
 
-                continue 2;
+                    continue 2;
+                }
             }
-        }
 
-        throw new ParseException(sprintf('Malformed inline YAML string: "%s".', $mapping), self::$parsedLineNumber + 1, null, self::$parsedFilename);
+            throw new ParseException(\sprintf('Malformed inline YAML string: "%s".', $mapping), self::$parsedLineNumber + 1, null, self::$parsedFilename);
+        } finally {
+            $state->leaveNestingLevel();
+        }
     }
 
     /**
@@ -564,7 +603,7 @@
      *
      * @throws ParseException when object parsing support was disabled and the parser detected a PHP object or when a reference could not be resolved
      */
-    private static function evaluateScalar(string $scalar, int $flags, array &$references = [], ?bool &$isQuotedString = null): mixed
+    private static function evaluateScalar(ParserState $state, string $scalar, int $flags, array &$references = [], ?bool &$isQuotedString = null): mixed
     {
         $isQuotedString = false;
         $scalar = trim($scalar);
@@ -582,9 +621,11 @@
             }
 
             if (!\array_key_exists($value, $references)) {
-                throw new ParseException(sprintf('Reference "%s" does not exist.', $value), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
+                throw new ParseException(\sprintf('Reference "%s" does not exist.', $value), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
             }
 
+            $state->countAlias($references[$value], self::$parsedLineNumber + 1, null, self::$parsedFilename);
+
             return $references[$value];
         }
 
@@ -637,10 +678,10 @@
                                 return \constant($const);
                             }
 
-                            throw new ParseException(sprintf('The constant "%s" is not defined.', $const), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+                            throw new ParseException(\sprintf('The constant "%s" is not defined.', $const), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                         }
                         if (self::$exceptionOnInvalidType) {
-                            throw new ParseException(sprintf('The string "%s" could not be parsed as a constant. Did you forget to pass the "Yaml::PARSE_CONSTANT" flag to the parser?', $scalar), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+                            throw new ParseException(\sprintf('The string "%s" could not be parsed as a constant. Did you forget to pass the "Yaml::PARSE_CONSTANT" flag to the parser?', $scalar), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                         }
 
                         return null;
@@ -656,25 +697,25 @@
                                 $enum = substr($enum, 0, -7);
                             }
                             if (!\defined($enum)) {
-                                throw new ParseException(sprintf('The enum "%s" is not defined.', $enum), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+                                throw new ParseException(\sprintf('The enum "%s" is not defined.', $enum), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                             }
 
                             $value = \constant($enum);
 
                             if (!$value instanceof \UnitEnum) {
-                                throw new ParseException(sprintf('The string "%s" is not the name of a valid enum.', $enum), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+                                throw new ParseException(\sprintf('The string "%s" is not the name of a valid enum.', $enum), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                             }
                             if (!$useValue) {
                                 return $value;
                             }
                             if (!$value instanceof \BackedEnum) {
-                                throw new ParseException(sprintf('The enum "%s" defines no value next to its name.', $enum), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+                                throw new ParseException(\sprintf('The enum "%s" defines no value next to its name.', $enum), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                             }
 
                             return $value->value;
                         }
                         if (self::$exceptionOnInvalidType) {
-                            throw new ParseException(sprintf('The string "%s" could not be parsed as an enum. Did you forget to pass the "Yaml::PARSE_CONSTANT" flag to the parser?', $scalar), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+                            throw new ParseException(\sprintf('The string "%s" could not be parsed as an enum. Did you forget to pass the "Yaml::PARSE_CONSTANT" flag to the parser?', $scalar), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                         }
 
                         return null;
@@ -684,7 +725,7 @@
                         return self::evaluateBinaryScalar(substr($scalar, 9));
                 }
 
-                throw new ParseException(sprintf('The string "%s" could not be parsed as it uses an unsupported built-in tag.', $scalar), self::$parsedLineNumber, $scalar, self::$parsedFilename);
+                throw new ParseException(\sprintf('The string "%s" could not be parsed as it uses an unsupported built-in tag.', $scalar), self::$parsedLineNumber, $scalar, self::$parsedFilename);
             case preg_match('/^(?:\+|-)?0o(?P<value>[0-7_]++)$/', $scalar, $matches):
                 $value = str_replace('_', '', $matches['value']);
 
@@ -701,6 +742,10 @@
                 switch (true) {
                     case ctype_digit($scalar):
                     case '-' === $scalar[0] && ctype_digit(substr($scalar, 1)):
+                        if ($scalar < \PHP_INT_MIN || \PHP_INT_MAX < $scalar) {
+                            return $scalar;
+                        }
+
                         $cast = (int) $scalar;
 
                         return ($scalar === (string) $cast) ? $cast : $scalar;
@@ -737,7 +782,7 @@
                             if (false !== $scalar = $time->getTimestamp()) {
                                 return $scalar;
                             }
-                        } catch (\ValueError) {
+                        } catch (\DateRangeError|\ValueError) {
                             // no-op
                         }
 
@@ -774,30 +819,36 @@
 
         // Built-in tags
         if ('' !== $tag && '!' === $tag[0]) {
-            throw new ParseException(sprintf('The built-in tag "!%s" is not implemented.', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
+            throw new ParseException(\sprintf('The built-in tag "!%s" is not implemented.', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
         }
 
         if ('' !== $tag && !isset($value[$i])) {
-            throw new ParseException(sprintf('Missing value for tag "%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
+            throw new ParseException(\sprintf('Missing value for tag "%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
         }
 
         if ('' === $tag || Yaml::PARSE_CUSTOM_TAGS & $flags) {
             return $tag;
         }
 
-        throw new ParseException(sprintf('Tags support is not enabled. Enable the "Yaml::PARSE_CUSTOM_TAGS" flag to use "!%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
+        throw new ParseException(\sprintf('Tags support is not enabled. Enable the "Yaml::PARSE_CUSTOM_TAGS" flag to use "!%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
     }
 
     public static function evaluateBinaryScalar(string $scalar): string
     {
         $parsedBinaryData = self::parseScalar(preg_replace('/\s/', '', $scalar));
 
+        if (!\is_scalar($parsedBinaryData ?? '') && !$parsedBinaryData instanceof \Stringable) {
+            throw new ParseException(\sprintf('The "!!binary" tag only supports a base64 encoded string, got "%s".', get_debug_type($parsedBinaryData)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+        }
+
+        $parsedBinaryData = (string) $parsedBinaryData;
+
         if (0 !== (\strlen($parsedBinaryData) % 4)) {
-            throw new ParseException(sprintf('The normalized base64 encoded data (data without whitespace characters) length must be a multiple of four (%d bytes given).', \strlen($parsedBinaryData)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+            throw new ParseException(\sprintf('The normalized base64 encoded data (data without whitespace characters) length must be a multiple of four (%d bytes given).', \strlen($parsedBinaryData)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
         }
 
         if (!Parser::preg_match('#^[A-Z0-9+/]+={0,2}$#i', $parsedBinaryData)) {
-            throw new ParseException(sprintf('The base64 encoded data (%s) contains invalid characters.', $parsedBinaryData), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
+            throw new ParseException(\sprintf('The base64 encoded data (%s) contains invalid characters.', $parsedBinaryData), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
         }
 
         return base64_decode($parsedBinaryData, true);
@@ -816,19 +867,19 @@
     private static function getTimestampRegex(): string
     {
         return <<<EOF
-        ~^
-        (?P<year>[0-9][0-9][0-9][0-9])
-        -(?P<month>[0-9][0-9]?)
-        -(?P<day>[0-9][0-9]?)
-        (?:(?:[Tt]|[ \t]+)
-        (?P<hour>[0-9][0-9]?)
-        :(?P<minute>[0-9][0-9])
-        :(?P<second>[0-9][0-9])
-        (?:\.(?P<fraction>[0-9]*))?
-        (?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?)
-        (?::(?P<tz_minute>[0-9][0-9]))?))?)?
-        $~x
-EOF;
+                    ~^
+                    (?P<year>[0-9][0-9][0-9][0-9])
+                    -(?P<month>[0-9][0-9]?)
+                    -(?P<day>[0-9][0-9]?)
+                    (?:(?:[Tt]|[ \t]+)
+                    (?P<hour>[0-9][0-9]?)
+                    :(?P<minute>[0-9][0-9])
+                    :(?P<second>[0-9][0-9])
+                    (?:\.(?P<fraction>[0-9]*))?
+                    (?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?)
+                    (?::(?P<tz_minute>[0-9][0-9]))?))?)?
+                    $~x
+            EOF;
     }
 
     /**
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Parser.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Parser.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Parser.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Parser.php	2026-05-20 10:56:49.000000000 +0200
@@ -26,6 +26,8 @@
     public const TAG_PATTERN = '(?P<tag>![\w!.\/:-]+)';
     public const BLOCK_SCALAR_HEADER_PATTERN = '(?P<separator>\||>)(?P<modifiers>\+|\-|\d+|\+\d+|\-\d+|\d+\+|\d+\-)?(?P<comments> +#.*)?';
     public const REFERENCE_PATTERN = '#^&(?P<ref>[^ ]++) *+(?P<value>.*)#u';
+    public const DEFAULT_MAX_NESTING_LEVEL = 128;
+    public const DEFAULT_MAX_ALIASES_FOR_COLLECTIONS = 128;
 
     private ?string $filename = null;
     private int $offset = 0;
@@ -38,6 +40,21 @@
     private array $skippedLineNumbers = [];
     private array $locallySkippedLineNumbers = [];
     private array $refsBeingParsed = [];
+    private ?ParserState $state = null;
+
+    public function __construct(int $maxNestingLevel = self::DEFAULT_MAX_NESTING_LEVEL, int $maxAliasesForCollections = self::DEFAULT_MAX_ALIASES_FOR_COLLECTIONS)
+    {
+        if ($maxNestingLevel < 1) {
+            throw new \InvalidArgumentException('The maximum nesting depth must be greater than 0.');
+        }
+
+        if ($maxAliasesForCollections < 0) {
+            throw new \InvalidArgumentException('The maximum number of collection aliases must be greater than or equal to 0.');
+        }
+
+        $this->getState()->maxNestingLevel = $maxNestingLevel;
+        $this->getState()->maxAliasesForCollections = $maxAliasesForCollections;
+    }
 
     /**
      * Parses a YAML file into a PHP value.
@@ -50,11 +67,11 @@
     public function parseFile(string $filename, int $flags = 0): mixed
     {
         if (!is_file($filename)) {
-            throw new ParseException(sprintf('File "%s" does not exist.', $filename));
+            throw new ParseException(\sprintf('File "%s" does not exist.', $filename));
         }
 
         if (!is_readable($filename)) {
-            throw new ParseException(sprintf('File "%s" cannot be read.', $filename));
+            throw new ParseException(\sprintf('File "%s" cannot be read.', $filename));
         }
 
         $this->filename = $filename;
@@ -81,6 +98,9 @@
         }
 
         $this->refs = [];
+        $state = $this->getState();
+        $state->reset();
+        $state->aliasesEnabled = 0 === (Yaml::PARSE_EXCEPTION_ON_ALIAS & $flags);
 
         try {
             $data = $this->doParse($value, $flags);
@@ -94,11 +114,17 @@
             $this->skippedLineNumbers = [];
             $this->locallySkippedLineNumbers = [];
             $this->totalNumberOfLines = null;
+            $state->reset();
         }
 
         return $data;
     }
 
+    private function getState(): ParserState
+    {
+        return $this->state ?? $this->state = new ParserState();
+    }
+
     private function doParse(string $value, int $flags): mixed
     {
         $this->currentLineNb = -1;
@@ -235,14 +261,16 @@
                         $refName = substr(rtrim($values['value']), 1);
                         if (!\array_key_exists($refName, $this->refs)) {
                             if (false !== $pos = array_search($refName, $this->refsBeingParsed, true)) {
-                                throw new ParseException(sprintf('Circular reference [%s] detected for reference "%s".', implode(', ', array_merge(\array_slice($this->refsBeingParsed, $pos), [$refName])), $refName), $this->currentLineNb + 1, $this->currentLine, $this->filename);
+                                throw new ParseException(\sprintf('Circular reference [%s] detected for reference "%s".', implode(', ', array_merge(\array_slice($this->refsBeingParsed, $pos), [$refName])), $refName), $this->currentLineNb + 1, $this->currentLine, $this->filename);
                             }
 
-                            throw new ParseException(sprintf('Reference "%s" does not exist.', $refName), $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
+                            throw new ParseException(\sprintf('Reference "%s" does not exist.', $refName), $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                         }
 
                         $refValue = $this->refs[$refName];
 
+                        $this->getState()->countAlias($refValue, $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
+
                         if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $refValue instanceof \stdClass) {
                             $refValue = (array) $refValue;
                         }
@@ -311,7 +339,7 @@
                                 $data[$key] = null;
                             }
                         } else {
-                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
+                            throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
                         }
                     } else {
                         // remember the parsed line number here in case we need it to provide some contexts in error messages below
@@ -334,7 +362,7 @@
                                 $data[$key] = $value;
                             }
                         } else {
-                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $realCurrentLineNbKey + 1, $this->currentLine);
+                            throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), $realCurrentLineNbKey + 1, $this->currentLine);
                         }
                     }
                 } else {
@@ -344,7 +372,7 @@
                     if ($allowOverwrite || !isset($data[$key])) {
                         $data[$key] = $value;
                     } else {
-                        throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
+                        throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
                     }
                 }
                 if ($isRef) {
@@ -357,7 +385,7 @@
                 }
 
                 try {
-                    return Inline::parse($this->lexInlineQuotedString(), $flags, $this->refs);
+                    return Inline::parse($this->lexInlineQuotedString(), $flags, $this->refs, $this->state);
                 } catch (ParseException $e) {
                     $e->setParsedLine($this->getRealCurrentLineNb() + 1);
                     $e->setSnippet($this->currentLine);
@@ -370,7 +398,7 @@
                 }
 
                 try {
-                    $parsedMapping = Inline::parse($this->lexInlineMapping(), $flags, $this->refs);
+                    $parsedMapping = Inline::parse($this->lexInlineMapping(), $flags, $this->refs, $this->state);
 
                     while ($this->moveToNextLine()) {
                         if (!$this->isCurrentLineEmpty()) {
@@ -391,7 +419,7 @@
                 }
 
                 try {
-                    $parsedSequence = Inline::parse($this->lexInlineSequence(), $flags, $this->refs);
+                    $parsedSequence = Inline::parse($this->lexInlineSequence(), $flags, $this->refs, $this->state);
 
                     while ($this->moveToNextLine()) {
                         if (!$this->isCurrentLineEmpty()) {
@@ -419,7 +447,7 @@
                 // 1-liner optionally followed by newline(s)
                 if (\is_string($value) && $this->lines[0] === trim($value)) {
                     try {
-                        $value = Inline::parse($this->lines[0], $flags, $this->refs);
+                        $value = Inline::parse($this->lines[0], $flags, $this->refs, $this->state);
                     } catch (ParseException $e) {
                         $e->setParsedLine($this->getRealCurrentLineNb() + 1);
                         $e->setSnippet($this->currentLine);
@@ -475,7 +503,7 @@
                     }
 
                     try {
-                        return Inline::parse(trim($value));
+                        return Inline::parse(trim($value), 0, $this->refs, $this->state);
                     } catch (ParseException) {
                         // fall-through to the ParseException thrown below
                     }
@@ -520,8 +548,15 @@
         $parser->skippedLineNumbers = $skippedLineNumbers;
         $parser->refs = &$this->refs;
         $parser->refsBeingParsed = $this->refsBeingParsed;
+        $parser->state = $this->state;
 
-        return $parser->doParse($yaml, $flags);
+        $this->getState()->enterNestingLevel($offset + 1, $this->currentLine, $this->filename);
+
+        try {
+            return $parser->doParse($yaml, $flags);
+        } finally {
+            $this->getState()->leaveNestingLevel();
+        }
     }
 
     /**
@@ -711,12 +746,14 @@
 
             if (!\array_key_exists($value, $this->refs)) {
                 if (false !== $pos = array_search($value, $this->refsBeingParsed, true)) {
-                    throw new ParseException(sprintf('Circular reference [%s] detected for reference "%s".', implode(', ', array_merge(\array_slice($this->refsBeingParsed, $pos), [$value])), $value), $this->currentLineNb + 1, $this->currentLine, $this->filename);
+                    throw new ParseException(\sprintf('Circular reference [%s] detected for reference "%s".', implode(', ', array_merge(\array_slice($this->refsBeingParsed, $pos), [$value])), $value), $this->currentLineNb + 1, $this->currentLine, $this->filename);
                 }
 
-                throw new ParseException(sprintf('Reference "%s" does not exist.', $value), $this->currentLineNb + 1, $this->currentLine, $this->filename);
+                throw new ParseException(\sprintf('Reference "%s" does not exist.', $value), $this->currentLineNb + 1, $this->currentLine, $this->filename);
             }
 
+            $this->getState()->countAlias($this->refs[$value], $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
+
             return $this->refs[$value];
         }
 
@@ -740,21 +777,21 @@
             if ('' !== $value && '{' === $value[0]) {
                 $cursor = \strlen(rtrim($this->currentLine)) - \strlen(rtrim($value));
 
-                return Inline::parse($this->lexInlineMapping($cursor), $flags, $this->refs);
+                return Inline::parse($this->lexInlineMapping($cursor), $flags, $this->refs, $this->state);
             } elseif ('' !== $value && '[' === $value[0]) {
                 $cursor = \strlen(rtrim($this->currentLine)) - \strlen(rtrim($value));
 
-                return Inline::parse($this->lexInlineSequence($cursor), $flags, $this->refs);
+                return Inline::parse($this->lexInlineSequence($cursor), $flags, $this->refs, $this->state);
             }
 
             switch ($value[0] ?? '') {
                 case '"':
                 case "'":
                     $cursor = \strlen(rtrim($this->currentLine)) - \strlen(rtrim($value));
-                    $parsedValue = Inline::parse($this->lexInlineQuotedString($cursor), $flags, $this->refs);
+                    $parsedValue = Inline::parse($this->lexInlineQuotedString($cursor), $flags, $this->refs, $this->state);
 
                     if (isset($this->currentLine[$cursor]) && preg_replace('/\s*(#.*)?$/A', '', substr($this->currentLine, $cursor))) {
-                        throw new ParseException(sprintf('Unexpected characters near "%s".', substr($this->currentLine, $cursor)));
+                        throw new ParseException(\sprintf('Unexpected characters near "%s".', substr($this->currentLine, $cursor)));
                     }
 
                     return $parsedValue;
@@ -769,6 +806,14 @@
                             break;
                         }
 
+                        if ($this->isCurrentLineComment()) {
+                            break;
+                        }
+
+                        if ('mapping' === $context && str_contains($this->currentLine, ': ') && !$this->isCurrentLineComment()) {
+                            throw new ParseException('A colon cannot be used in an unquoted mapping value.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
+                        }
+
                         $lines[] = trim($this->currentLine);
                     }
 
@@ -787,7 +832,7 @@
 
                     Inline::$parsedLineNumber = $this->getRealCurrentLineNb();
 
-                    $parsedValue = Inline::parse($value, $flags, $this->refs);
+                    $parsedValue = Inline::parse($value, $flags, $this->refs, $this->state);
 
                     if ('mapping' === $context && \is_string($parsedValue) && '"' !== $value[0] && "'" !== $value[0] && '[' !== $value[0] && '{' !== $value[0] && '!' !== $value[0] && str_contains($parsedValue, ': ')) {
                         throw new ParseException('A colon cannot be used in an unquoted mapping value.', $this->getRealCurrentLineNb() + 1, $value, $this->filename);
@@ -839,7 +884,7 @@
         }
 
         if ($indentation > 0) {
-            $pattern = sprintf('/^ {%d}(.*)$/', $indentation);
+            $pattern = \sprintf('/^ {%d}(.*)$/', $indentation);
 
             while (
                 $notEOF && (
@@ -976,11 +1021,11 @@
 
         // strip YAML header
         $count = 0;
-        $value = preg_replace('#^\%YAML[: ][\d\.]+.*\n#u', '', $value, -1, $count);
+        $value = preg_replace('#^%YAML[: ][\d.]++[^\n]*+\n#u', '', $value, -1, $count);
         $this->offset += $count;
 
         // remove leading comments
-        $trimmedValue = preg_replace('#^(\#.*?\n)+#s', '', $value, -1, $count);
+        $trimmedValue = preg_replace('#^(?:\#[^\n]*+\n)++#', '', $value, -1, $count);
         if (1 === $count) {
             // items have been removed, update the offset
             $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n");
@@ -988,14 +1033,14 @@
         }
 
         // remove start of the document marker (---)
-        $trimmedValue = preg_replace('#^\-\-\-.*?\n#s', '', $value, -1, $count);
+        $trimmedValue = preg_replace('#^---[^\n]*+\n#', '', $value, -1, $count);
         if (1 === $count) {
             // items have been removed, update the offset
             $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n");
             $value = $trimmedValue;
 
             // remove end of the document marker (...)
-            $value = preg_replace('#\.\.\.\s*$#', '', $value);
+            $value = preg_replace('#\.\.\.[ \t]*+$#', '', $value);
         }
 
         return $value;
@@ -1081,14 +1126,14 @@
 
         // Built-in tags
         if ($tag && '!' === $tag[0]) {
-            throw new ParseException(sprintf('The built-in tag "!%s" is not implemented.', $tag), $this->getRealCurrentLineNb() + 1, $value, $this->filename);
+            throw new ParseException(\sprintf('The built-in tag "!%s" is not implemented.', $tag), $this->getRealCurrentLineNb() + 1, $value, $this->filename);
         }
 
         if (Yaml::PARSE_CUSTOM_TAGS & $flags) {
             return $tag;
         }
 
-        throw new ParseException(sprintf('Tags support is not enabled. You must use the flag "Yaml::PARSE_CUSTOM_TAGS" to use "%s".', $matches['tag']), $this->getRealCurrentLineNb() + 1, $value, $this->filename);
+        throw new ParseException(\sprintf('Tags support is not enabled. You must use the flag "Yaml::PARSE_CUSTOM_TAGS" to use "%s".', $matches['tag']), $this->getRealCurrentLineNb() + 1, $value, $this->filename);
     }
 
     private function lexInlineQuotedString(int &$cursor = 0): string
@@ -1159,8 +1204,8 @@
     {
         $offset = $cursor;
 
-        while ($cursor < strlen($this->currentLine)) {
-            if (in_array($this->currentLine[$cursor], ['[', ']', '{', '}', ',', ':'], true)) {
+        while ($cursor < \strlen($this->currentLine)) {
+            if (\in_array($this->currentLine[$cursor], ['[', ']', '{', '}', ',', ':'], true)) {
                 break;
             }
 
@@ -1217,8 +1262,8 @@
                         $value .= $this->currentLine[$cursor];
                         ++$cursor;
 
-                        if ($consumeUntilEol && isset($this->currentLine[$cursor]) && ($whitespaces = strspn($this->currentLine, ' ', $cursor) + $cursor) < strlen($this->currentLine) && '#' !== $this->currentLine[$whitespaces]) {
-                            throw new ParseException(sprintf('Unexpected token "%s".', trim(substr($this->currentLine, $cursor))));
+                        if ($consumeUntilEol && isset($this->currentLine[$cursor]) && ($whitespaces = strspn($this->currentLine, ' ', $cursor) + $cursor) < \strlen($this->currentLine) && '#' !== $this->currentLine[$whitespaces]) {
+                            throw new ParseException(\sprintf('Unexpected token "%s".', trim(substr($this->currentLine, $cursor))));
                         }
 
                         return $value;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/ParserState.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/ParserState.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/ParserState.php	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/ParserState.php	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,69 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Yaml;
+
+use Symfony\Component\Yaml\Exception\ParseException;
+use Symfony\Component\Yaml\Tag\TaggedValue;
+
+/**
+ * @internal
+ */
+final class ParserState
+{
+    public int $maxNestingLevel = Parser::DEFAULT_MAX_NESTING_LEVEL;
+    public int $currentNestingLevel = 0;
+    public int $maxAliasesForCollections = Parser::DEFAULT_MAX_ALIASES_FOR_COLLECTIONS;
+    public int $collectionAliasCount = 0;
+    public bool $aliasesEnabled = true;
+
+    public function reset(): void
+    {
+        $this->currentNestingLevel = 0;
+        $this->collectionAliasCount = 0;
+        $this->aliasesEnabled = true;
+    }
+
+    public function enterNestingLevel(int $line, ?string $snippet, ?string $filename): void
+    {
+        if (++$this->currentNestingLevel > $this->maxNestingLevel) {
+            --$this->currentNestingLevel;
+
+            throw new ParseException(\sprintf('Maximum nesting depth of %d exceeded.', $this->maxNestingLevel), $line, $snippet, $filename);
+        }
+    }
+
+    public function leaveNestingLevel(): void
+    {
+        if ($this->currentNestingLevel > 0) {
+            --$this->currentNestingLevel;
+        }
+    }
+
+    public function countAlias(mixed $refValue, int $line, ?string $snippet, ?string $filename): void
+    {
+        if (!$this->aliasesEnabled) {
+            throw new ParseException('Aliases are disabled.', $line, $snippet, $filename);
+        }
+
+        if ($refValue instanceof TaggedValue) {
+            $refValue = $refValue->getValue();
+        }
+
+        if (!\is_array($refValue) && !$refValue instanceof \stdClass) {
+            return;
+        }
+
+        if (++$this->collectionAliasCount > $this->maxAliasesForCollections) {
+            throw new ParseException(\sprintf('Maximum number of collection aliases (%d) exceeded. This limit can be increased via the Parser constructor.', $this->maxAliasesForCollections), $line, $snippet, $filename);
+        }
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -68,9 +68,9 @@
     public function testLintIncorrectFileWithGithubFormat()
     {
         $incorrectContent = <<<YAML
-foo:
-bar
-YAML;
+            foo:
+            bar
+            YAML;
         $tester = $this->createCommandTester();
         $filename = $this->createFile($incorrectContent);
 
@@ -89,9 +89,9 @@
             putenv('GITHUB_ACTIONS=1');
 
             $incorrectContent = <<<YAML
-foo:
-bar
-YAML;
+                foo:
+                bar
+                YAML;
             $tester = $this->createCommandTester();
             $filename = $this->createFile($incorrectContent);
 
@@ -106,8 +106,8 @@
     public function testConstantAsKey()
     {
         $yaml = <<<YAML
-!php/const 'Symfony\Component\Yaml\Tests\Command\Foo::TEST': bar
-YAML;
+            !php/const 'Symfony\Component\Yaml\Tests\Command\Foo::TEST': bar
+            YAML;
         $ret = $this->createCommandTester()->execute(['filename' => $this->createFile($yaml)], ['verbosity' => OutputInterface::VERBOSITY_VERBOSE, 'decorated' => false]);
         $this->assertSame(0, $ret, 'lint:yaml exits with code 0 in case of success');
     }
@@ -115,8 +115,8 @@
     public function testCustomTags()
     {
         $yaml = <<<YAML
-foo: !my_tag {foo: bar}
-YAML;
+            foo: !my_tag {foo: bar}
+            YAML;
         $ret = $this->createCommandTester()->execute(['filename' => $this->createFile($yaml), '--parse-tags' => true], ['verbosity' => OutputInterface::VERBOSITY_VERBOSE, 'decorated' => false]);
         $this->assertSame(0, $ret, 'lint:yaml exits with code 0 in case of success');
     }
@@ -124,8 +124,8 @@
     public function testCustomTagsError()
     {
         $yaml = <<<YAML
-foo: !my_tag {foo: bar}
-YAML;
+            foo: !my_tag {foo: bar}
+            YAML;
         $ret = $this->createCommandTester()->execute(['filename' => $this->createFile($yaml)], ['verbosity' => OutputInterface::VERBOSITY_VERBOSE, 'decorated' => false]);
         $this->assertSame(1, $ret, 'lint:yaml exits with code 1 in case of error');
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Tests/DumperTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Tests/DumperTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Tests/DumperTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Tests/DumperTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -59,26 +59,26 @@
     {
         $dumper = new Dumper(7);
         $expected = <<<'EOF'
-'': bar
-foo: '#bar'
-"foo'bar": {  }
-bar:
-       - 1
-       - foo
-       -
-              a: A
-foobar:
-       foo: bar
-       bar:
-              - 1
-              - foo
-       foobar:
-              foo: bar
-              bar:
-                     - 1
-                     - foo
+            '': bar
+            foo: '#bar'
+            "foo'bar": {  }
+            bar:
+                   - 1
+                   - foo
+                   -
+                          a: A
+            foobar:
+                   foo: bar
+                   bar:
+                          - 1
+                          - foo
+                   foobar:
+                          foo: bar
+                          bar:
+                                 - 1
+                                 - foo
 
-EOF;
+            EOF;
         $this->assertSame($expected, $dumper->dump($this->array, 4, 0));
         $this->assertSameData($this->array, $this->parser->parse($expected));
     }
@@ -114,83 +114,83 @@
     public function testInlineLevel()
     {
         $expected = <<<'EOF'
-{ '': bar, foo: '#bar', "foo'bar": {  }, bar: [1, foo, { a: A }], foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } } }
-EOF;
+            { '': bar, foo: '#bar', "foo'bar": {  }, bar: [1, foo, { a: A }], foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } } }
+            EOF;
         $this->assertSame($expected, $this->dumper->dump($this->array, -10), '->dump() takes an inline level argument');
         $this->assertSame($expected, $this->dumper->dump($this->array, 0), '->dump() takes an inline level argument');
         $this->assertSameData($this->array, $this->parser->parse($expected));
 
         $expected = <<<'EOF'
-'': bar
-foo: '#bar'
-"foo'bar": {  }
-bar: [1, foo, { a: A }]
-foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } }
+            '': bar
+            foo: '#bar'
+            "foo'bar": {  }
+            bar: [1, foo, { a: A }]
+            foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } }
 
-EOF;
+            EOF;
         $this->assertSame($expected, $this->dumper->dump($this->array, 1), '->dump() takes an inline level argument');
         $this->assertSameData($this->array, $this->parser->parse($expected));
 
         $expected = <<<'EOF'
-'': bar
-foo: '#bar'
-"foo'bar": {  }
-bar:
-    - 1
-    - foo
-    - { a: A }
-foobar:
-    foo: bar
-    bar: [1, foo]
-    foobar: { foo: bar, bar: [1, foo] }
+            '': bar
+            foo: '#bar'
+            "foo'bar": {  }
+            bar:
+                - 1
+                - foo
+                - { a: A }
+            foobar:
+                foo: bar
+                bar: [1, foo]
+                foobar: { foo: bar, bar: [1, foo] }
 
-EOF;
+            EOF;
         $this->assertSame($expected, $this->dumper->dump($this->array, 2), '->dump() takes an inline level argument');
         $this->assertSameData($this->array, $this->parser->parse($expected));
 
         $expected = <<<'EOF'
-'': bar
-foo: '#bar'
-"foo'bar": {  }
-bar:
-    - 1
-    - foo
-    -
-        a: A
-foobar:
-    foo: bar
-    bar:
-        - 1
-        - foo
-    foobar:
-        foo: bar
-        bar: [1, foo]
+            '': bar
+            foo: '#bar'
+            "foo'bar": {  }
+            bar:
+                - 1
+                - foo
+                -
+                    a: A
+            foobar:
+                foo: bar
+                bar:
+                    - 1
+                    - foo
+                foobar:
+                    foo: bar
+                    bar: [1, foo]
 
-EOF;
+            EOF;
         $this->assertSame($expected, $this->dumper->dump($this->array, 3), '->dump() takes an inline level argument');
         $this->assertSameData($this->array, $this->parser->parse($expected));
 
         $expected = <<<'EOF'
-'': bar
-foo: '#bar'
-"foo'bar": {  }
-bar:
-    - 1
-    - foo
-    -
-        a: A
-foobar:
-    foo: bar
-    bar:
-        - 1
-        - foo
-    foobar:
-        foo: bar
-        bar:
-            - 1
-            - foo
+            '': bar
+            foo: '#bar'
+            "foo'bar": {  }
+            bar:
+                - 1
+                - foo
+                -
+                    a: A
+            foobar:
+                foo: bar
+                bar:
+                    - 1
+                    - foo
+                foobar:
+                    foo: bar
+                    bar:
+                        - 1
+                        - foo
 
-EOF;
+            EOF;
         $this->assertSame($expected, $this->dumper->dump($this->array, 4), '->dump() takes an inline level argument');
         $this->assertSame($expected, $this->dumper->dump($this->array, 10), '->dump() takes an inline level argument');
         $this->assertSameData($this->array, $this->parser->parse($expected));
@@ -313,13 +313,13 @@
         $yaml = $this->dumper->dump($outer, 2, 0, Yaml::DUMP_OBJECT_AS_MAP);
 
         $expected = <<<YAML
-outer1: a
-outer2:
-    inner1: b
-    inner2: c
-    inner3: { deep1: d, deep2: e }
+            outer1: a
+            outer2:
+                inner1: b
+                inner2: c
+                inner3: { deep1: d, deep2: e }
 
-YAML;
+            YAML;
         $this->assertSame($expected, $yaml);
     }
 
@@ -331,8 +331,8 @@
 
         $yaml = $this->dumper->dump($outer, 0, 0, Yaml::DUMP_OBJECT_AS_MAP);
         $expected = <<<YAML
-{ 0: a, 1: { 0: b, 1: c, 2: { 0: d, 1: e } } }
-YAML;
+            { 0: a, 1: { 0: b, 1: c, 2: { 0: d, 1: e } } }
+            YAML;
         $this->assertSame($expected, $yaml);
     }
 
@@ -343,13 +343,13 @@
         $outer = new \ArrayObject(['a', $inner]);
         $yaml = $this->dumper->dump($outer, 2, 0, Yaml::DUMP_OBJECT_AS_MAP);
         $expected = <<<YAML
-0: a
-1:
-    0: b
-    1: c
-    2: { 0: d, 1: e }
+            0: a
+            1:
+                0: b
+                1: c
+                2: { 0: d, 1: e }
 
-YAML;
+            YAML;
         $this->assertSame($expected, $yaml);
     }
 
@@ -381,13 +381,13 @@
         $yaml = $this->dumper->dump($outer, 2, 0, Yaml::DUMP_OBJECT_AS_MAP);
 
         $expected = <<<YAML
-outer1: a
-outer2:
-    inner1: b
-    inner2: c
-    inner3: { deep1: d, deep2: e }
+            outer1: a
+            outer2:
+                inner1: b
+                inner2: c
+                inner3: { deep1: d, deep2: e }
 
-YAML;
+            YAML;
         $this->assertSame($expected, $yaml);
         $this->assertSameData($outer, $this->parser->parse($yaml, Yaml::PARSE_OBJECT_FOR_MAP));
     }
@@ -407,13 +407,13 @@
         $yaml = $this->dumper->dump($data, 2);
 
         $expected = <<<YAML
-- !user
-  username: jane
-- !names
-  - john
-  - claire
+            - !user
+              username: jane
+            - !names
+              - john
+              - claire
 
-YAML;
+            YAML;
         $this->assertSame($expected, $yaml);
         $this->assertSameData($data, $this->parser->parse($expected, Yaml::PARSE_CUSTOM_TAGS));
     }
@@ -445,10 +445,10 @@
         $data = new TaggedValue('user', ['name' => 'jane']);
 
         $expected = <<<'YAML'
-!user
-name: jane
+            !user
+            name: jane
 
-YAML;
+            YAML;
         $yaml = $this->dumper->dump($data, 2);
         $this->assertSame($expected, $yaml);
     }
@@ -487,11 +487,11 @@
         $yaml = $this->dumper->dump($data, 1);
 
         $expected = <<<YAML
-- !user { username: jane }
-- !names [john, claire]
-- !number 5
+            - !user { username: jane }
+            - !names [john, claire]
+            - !number 5
 
-YAML;
+            YAML;
         $this->assertSame($expected, $yaml);
         $this->assertSameData($data, $this->parser->parse($expected, Yaml::PARSE_CUSTOM_TAGS));
     }
@@ -512,14 +512,14 @@
         $yaml = $this->dumper->dump($data, 2);
 
         $expected = <<<YAML
-user1: !user
-    username: jane
-names1: !names
-    - john
-    - claire
-count: !number 5
+            user1: !user
+                username: jane
+            names1: !names
+                - john
+                - claire
+            count: !number 5
 
-YAML;
+            YAML;
         $this->assertSame($expected, $yaml);
         $this->assertSameData($data, $this->parser->parse($expected, Yaml::PARSE_CUSTOM_TAGS));
     }
@@ -539,10 +539,10 @@
         $yaml = $this->dumper->dump($data, 1);
 
         $expected = <<<YAML
-user1: !user { username: jane }
-names1: !names [john, claire]
+            user1: !user { username: jane }
+            names1: !names [john, claire]
 
-YAML;
+            YAML;
         $this->assertSame($expected, $yaml);
         $this->assertSameData($data, $this->parser->parse($expected, Yaml::PARSE_CUSTOM_TAGS));
     }
@@ -554,10 +554,10 @@
             'user2' => new TaggedValue('user', 'john'),
         ];
         $expected = <<<YAML
-user1: !user jane
-user2: !user john
+            user1: !user jane
+            user2: !user john
 
-YAML;
+            YAML;
 
         $this->assertSame($expected, $this->dumper->dump($data, 2));
         $this->assertSameData($data, $this->parser->parse($expected, Yaml::PARSE_CUSTOM_TAGS));
@@ -569,9 +569,9 @@
             'foo' => new TaggedValue('bar', null),
         ];
         $expected = <<<YAML
-foo: !bar null
+            foo: !bar null
 
-YAML;
+            YAML;
 
         $this->assertSame($expected, $this->dumper->dump($data, 2));
         $this->assertSameData($data, $this->parser->parse($expected, Yaml::PARSE_CUSTOM_TAGS | Yaml::PARSE_CONSTANT));
@@ -651,10 +651,10 @@
             ],
         ];
         $expected = <<<'YAML'
-data:
-    foo: !bar "foo\r\nline with trailing spaces:\n  \nbar\ninteger like line:\n123456789\nempty line:\n\nbaz"
+            data:
+                foo: !bar "foo\r\nline with trailing spaces:\n  \nbar\ninteger like line:\n123456789\nempty line:\n\nbaz"
 
-YAML;
+            YAML;
         $yml = $this->dumper->dump($data, 2, 0, Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK);
         $this->assertSame($expected, $yml);
         $this->assertSameData($data, $this->parser->parse($expected, Yaml::PARSE_CUSTOM_TAGS));
@@ -674,22 +674,22 @@
         ];
         $yml = $this->dumper->dump($data, 2, 0, Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK);
         $expected = str_replace("@\n", "\n", <<<'YAML'
-data:
-    single_line: 'foo bar baz'
-    multi_line: |-
-        foo
-        line with trailing spaces:
-          @
-        bar
-        integer like line:
-        123456789
-        empty line:
-
-        baz
-    multi_line_with_carriage_return: "foo\nbar\r\nbaz"
-    nested_inlined_multi_line_string: { inlined_multi_line: "foo\nbar\r\nempty line:\n\nbaz" }
+            data:
+                single_line: 'foo bar baz'
+                multi_line: |-
+                    foo
+                    line with trailing spaces:
+                      @
+                    bar
+                    integer like line:
+                    123456789
+                    empty line:
+
+                    baz
+                multi_line_with_carriage_return: "foo\nbar\r\nbaz"
+                nested_inlined_multi_line_string: { inlined_multi_line: "foo\nbar\r\nempty line:\n\nbaz" }
 
-YAML
+            YAML
         );
         $this->assertSame($expected, $yml);
         $this->assertSame($data, $this->parser->parse($yml));
@@ -762,10 +762,10 @@
             ],
         ];
         $expected = <<<'YAML'
-parent:
-    foo: "bar\n\rbaz: qux"
+            parent:
+                foo: "bar\n\rbaz: qux"
 
-YAML;
+            YAML;
         $this->assertSame($expected, $this->dumper->dump($data, 4, 0, Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK));
         $this->assertSame($data, $this->parser->parse($expected));
     }
@@ -804,31 +804,31 @@
         $yaml = $this->dumper->dump($data, 2, 0, Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK);
 
         $expected = <<<YAML
-'clip 1': |
-    one
-    two
-'clip 2': |
-    one
-    two
-'keep 1': |
-    one
-    two
-'keep 2': |+
-    one
-    two
-
-'keep 3': |+
-    one
-    two
-
-
-'strip 1': |-
-    one
-    two
-'strip 2': |-
-    one
-    two
-YAML;
+            'clip 1': |
+                one
+                two
+            'clip 2': |
+                one
+                two
+            'keep 1': |
+                one
+                two
+            'keep 2': |+
+                one
+                two
+
+            'keep 3': |+
+                one
+                two
+
+
+            'strip 1': |-
+                one
+                two
+            'strip 2': |-
+                one
+                two
+            YAML;
 
         $this->assertSame($expected, $yaml);
         $this->assertSame($data, $this->parser->parse($yaml));
@@ -878,9 +878,9 @@
         ];
 
         $expected = <<<'YAML'
-        '200': foo
+            '200': foo
 
-        YAML;
+            YAML;
 
         yield 'Int key with flag' => [
             [200 => 'foo'],
@@ -890,9 +890,9 @@
         ];
 
         $expected = <<<'YAML'
-        200: foo
+            200: foo
 
-        YAML;
+            YAML;
 
         yield 'Int key without flag' => [
             [200 => 'foo'],
@@ -902,10 +902,10 @@
         ];
 
         $expected = <<<'YAML'
-        - 200
-        - foo
+            - 200
+            - foo
 
-        YAML;
+            YAML;
 
         yield 'List array with flag' => [
             [200, 'foo'],
@@ -915,9 +915,9 @@
         ];
 
         $expected = <<<'YAML'
-        '200': !number 5
+            '200': !number 5
 
-        YAML;
+            YAML;
 
         yield 'Int tagged value with flag' => [
             [
@@ -929,9 +929,9 @@
         ];
 
         $expected = <<<'YAML'
-        200: !number 5
+            200: !number 5
 
-        YAML;
+            YAML;
 
         yield 'Int tagged value without flag' => [
             [
@@ -946,11 +946,11 @@
     public function testDumpIdeographicSpaces()
     {
         $expected = <<<YAML
-alone: '　'
-within_string: 'a　b'
-regular_space: 'a b'
+            alone: '　'
+            within_string: 'a　b'
+            regular_space: 'a b'
 
-YAML;
+            YAML;
         $this->assertSame($expected, $this->dumper->dump([
             'alone' => '　',
             'within_string' => 'a　b',
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Tests/InlineTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Tests/InlineTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Tests/InlineTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Tests/InlineTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -31,7 +31,7 @@
      */
     public function testParse(string $yaml, $value, $flags = 0)
     {
-        $this->assertSame($value, Inline::parse($yaml, $flags), sprintf('::parse() converts an inline YAML to a PHP structure (%s)', $yaml));
+        $this->assertSame($value, Inline::parse($yaml, $flags), \sprintf('::parse() converts an inline YAML to a PHP structure (%s)', $yaml));
     }
 
     /**
@@ -63,6 +63,7 @@
             ['{ foo: !php/const PHP_INT_MAX }', ['foo' => \PHP_INT_MAX]],
             ['{ !php/const PHP_INT_MAX: foo }', [\PHP_INT_MAX => 'foo']],
             ['!php/const NULL', null],
+            ['{ !php/const Symfony\Component\Yaml\Yaml::PARSE_CONSTANT: foo }', [Yaml::PARSE_CONSTANT => 'foo']],
         ];
     }
 
@@ -117,7 +118,7 @@
      */
     public function testDump($yaml, $value, $parseFlags = 0)
     {
-        $this->assertEquals($yaml, Inline::dump($value), sprintf('::dump() converts a PHP structure to an inline YAML (%s)', $yaml));
+        $this->assertEquals($yaml, Inline::dump($value), \sprintf('::dump() converts a PHP structure to an inline YAML (%s)', $yaml));
 
         $this->assertSame($value, Inline::parse(Inline::dump($value), $parseFlags), 'check consistency');
     }
@@ -202,6 +203,14 @@
         Inline::parse('{ foo: bar } bar');
     }
 
+    public function testParseEmbeddedMappingWithDuplicateKeysShouldThrowException()
+    {
+        $this->expectException(ParseException::class);
+        $this->expectExceptionMessageMatches('/Duplicate key "bar" detected/');
+
+        Inline::parse('[ foo: { bar: 1, bar: 2 } ]');
+    }
+
     public function testParseInvalidTaggedSequenceShouldThrowException()
     {
         $this->expectException(ParseException::class);
@@ -270,9 +279,9 @@
     public function testParseUnquotedScalarStartingWithReservedIndicator($indicator)
     {
         $this->expectException(ParseException::class);
-        $this->expectExceptionMessage(sprintf('cannot start a plain scalar; you need to quote the scalar at line 1 (near "%sfoo").', $indicator));
+        $this->expectExceptionMessage(\sprintf('cannot start a plain scalar; you need to quote the scalar at line 1 (near "%sfoo").', $indicator));
 
-        Inline::parse(sprintf('{ foo: %sfoo }', $indicator));
+        Inline::parse(\sprintf('{ foo: %sfoo }', $indicator));
     }
 
     public static function getReservedIndicators()
@@ -286,9 +295,9 @@
     public function testParseUnquotedScalarStartingWithScalarIndicator($indicator)
     {
         $this->expectException(ParseException::class);
-        $this->expectExceptionMessage(sprintf('cannot start a plain scalar; you need to quote the scalar at line 1 (near "%sfoo").', $indicator));
+        $this->expectExceptionMessage(\sprintf('cannot start a plain scalar; you need to quote the scalar at line 1 (near "%sfoo").', $indicator));
 
-        Inline::parse(sprintf('{ foo: %sfoo }', $indicator));
+        Inline::parse(\sprintf('{ foo: %sfoo }', $indicator));
     }
 
     public static function getScalarIndicators()
@@ -333,8 +342,8 @@
             ['123.45_67', 123.4567],
             ['0x4D2', 0x4D2],
             ['0x_4_D_2_', 0x4D2],
-            ['0o2333', 02333],
-            ['0o_2_3_3_3', 02333],
+            ['0o2333', 0o2333],
+            ['0o_2_3_3_3', 0o2333],
             ['.Inf', -log(0)],
             ['-.Inf', log(0)],
             ["'686e444'", '686e444'],
@@ -398,6 +407,10 @@
             ['[foo, bar: { foo: bar }]', ['foo', '1' => ['bar' => ['foo' => 'bar']]]],
             ['[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']', ['foo', '@foo.baz', ['%foo%' => 'foo is %foo%', 'bar' => '%foo%'], true, '@service_container']],
 
+            ['[ foo: { bar: [ \'foobar\', 12 ] } ]', [['foo' => ['bar' => ['foobar', 12]]]]],
+            ['[ foo: { bar: \'foobar\', baz: false } ]', [['foo' => ['bar' => 'foobar', 'baz' => false]]]],
+            ['[ foo: { bar: [ \'foobar\', 12 ], baz: true } ]', [['foo' => ['bar' => ['foobar', 12], 'baz' => true]]]],
+
             // Binary string not utf8-compliant but starting with and utf8-equivalent "&" character
             ['{ uid: !!binary Ju0Yh+uqSXOagJZFTlUt8g== }', ['uid' => hex2bin('26ed1887ebaa49739a8096454e552df2')]],
         ];
@@ -416,7 +429,7 @@
             ["'quoted string'", 'quoted string'],
             ['12.30e+02', 12.30e+02],
             ['0x4D2', 0x4D2],
-            ['0o2333', 02333],
+            ['0o2333', 0o2333],
             ['.Inf', -log(0)],
             ['-.Inf', log(0)],
             ["'686e444'", '686e444'],
@@ -481,6 +494,10 @@
             ['[foo, [[], {}]]', ['foo', [[], new \stdClass()]]],
             ['[foo, [[{}, {}], {}]]', ['foo', [[new \stdClass(), new \stdClass()], new \stdClass()]]],
             ['[foo, {bar: {}}]', ['foo', '1' => (object) ['bar' => new \stdClass()]]],
+
+            ['[ foo: { bar: [ \'foobar\', 12 ] } ]', [(object) ['foo' => (object) ['bar' => ['foobar', 12]]]]],
+            ['[ foo: { bar: \'foobar\', baz: false } ]', [(object) ['foo' => (object) ['bar' => 'foobar', 'baz' => false]]]],
+            ['[ foo: { bar: [ \'foobar\', 12 ], baz: true } ]', [(object) ['foo' => (object) ['bar' => ['foobar', 12], 'baz' => true]]]],
         ];
     }
 
@@ -498,7 +515,7 @@
             ['1230.0', 12.30e+02],
             ['1.23E+45', 12.30e+44],
             ['1234', 0x4D2],
-            ['1243', 02333],
+            ['1243', 0o2333],
             ["'0x_4_D_2_'", '0x_4_D_2_'],
             ["'0_2_3_3_3'", '0_2_3_3_3'],
             ['.Inf', -log(0)],
@@ -784,6 +801,7 @@
             'invalid characters' => ['!!binary "SGVsbG8#d29ybGQ="', '/The base64 encoded data \(.*\) contains invalid characters/'],
             'too many equals characters' => ['!!binary "SGVsbG8gd29yb==="', '/The base64 encoded data \(.*\) contains invalid characters/'],
             'misplaced equals character' => ['!!binary "SGVsbG8gd29ybG=Q"', '/The base64 encoded data \(.*\) contains invalid characters/'],
+            'unparsable scalar value' => ['!!binary !php/object a', '/The base64 encoded data \(\) contains invalid characters/'],
         ];
     }
 
@@ -1114,8 +1132,8 @@
     public function testParseQuotedReferenceLikeStringsInMapping()
     {
         $yaml = <<<YAML
-{foo: '&foo', bar: "&bar", baz: !!str '&baz'}
-YAML;
+            {foo: '&foo', bar: "&bar", baz: !!str '&baz'}
+            YAML;
 
         $this->assertSame(['foo' => '&foo', 'bar' => '&bar', 'baz' => '&baz'], Inline::parse($yaml));
     }
@@ -1123,8 +1141,8 @@
     public function testParseQuotedReferenceLikeStringsInSequence()
     {
         $yaml = <<<YAML
-['&foo', "&bar", !!str '&baz']
-YAML;
+            ['&foo', "&bar", !!str '&baz']
+            YAML;
 
         $this->assertSame(['&foo', '&bar', '&baz'], Inline::parse($yaml));
     }
@@ -1135,4 +1153,25 @@
         $this->assertSame([null, 'foo', 'bar'], Inline::parse('[, foo, bar]'));
         $this->assertSame(['foo', 'bar'], Inline::parse('[foo, bar, ]'));
     }
+
+    public function testFlowAndBlockProduceSameOutputForAmpersandPrefixedItems()
+    {
+        $this->assertSame([null], Inline::parse('[&string4]'));
+        $this->assertSame(['foo' => null], Inline::parse('{foo: &string4}'));
+
+        $this->assertSame(['&string3'], Inline::parse('[!!str &string3]'));
+        $this->assertSame(['foo' => '&string3'], Inline::parse('{foo: !!str &string3}'));
+
+        $yaml = <<<YAML
+            block:
+                - '&string1'
+                - "&string2"
+                - !!str &string3
+                - &string4
+            flow: ['&string1', "&string2", !!str &string3, &string4 ]
+            YAML;
+        $parsed = Yaml::parse($yaml);
+        $this->assertSame(['&string1', '&string2', '&string3', null], $parsed['block']);
+        $this->assertSame($parsed['block'], $parsed['flow']);
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Tests/ParserTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Tests/ParserTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Tests/ParserTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Tests/ParserTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -33,7 +33,7 @@
     {
         $this->parser = null;
 
-        chmod(__DIR__.'/Fixtures/not_readable.yml', 0644);
+        chmod(__DIR__.'/Fixtures/not_readable.yml', 0o644);
     }
 
     public function testTopLevelNumber()
@@ -87,9 +87,9 @@
     public function testTaggedValueTopLevelAssoc()
     {
         $yml = <<<'YAML'
-!user
-name: barbara
-YAML;
+            !user
+            name: barbara
+            YAML;
         $data = $this->parser->parse($yml, Yaml::PARSE_CUSTOM_TAGS);
         $expected = new TaggedValue('user', ['name' => 'barbara']);
         $this->assertSameData($expected, $data);
@@ -98,9 +98,9 @@
     public function testTaggedValueTopLevelList()
     {
         $yml = <<<'YAML'
-!users
-- barbara
-YAML;
+            !users
+            - barbara
+            YAML;
         $data = $this->parser->parse($yml, Yaml::PARSE_CUSTOM_TAGS);
         $expected = new TaggedValue('users', ['barbara']);
         $this->assertSameData($expected, $data);
@@ -109,9 +109,9 @@
     public function testTaggedTextAsListItem()
     {
         $yml = <<<'YAML'
-- !text |
-  first line
-YAML;
+            - !text |
+              first line
+            YAML;
         // @todo Fix the parser, eliminate this exception.
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Unable to parse at line 2 (near "!text |").');
@@ -216,10 +216,10 @@
     public function testEndOfTheDocumentMarker()
     {
         $yaml = <<<'EOF'
---- %YAML:1.0
-foo
-...
-EOF;
+            --- %YAML:1.0
+            foo
+            ...
+            EOF;
 
         $this->assertEquals('foo', $this->parser->parse($yaml));
     }
@@ -229,14 +229,14 @@
         $tests = [];
 
         $yaml = <<<'EOF'
-foo: |-
-    one
-    two
-bar: |-
-    one
-    two
+            foo: |-
+                one
+                two
+            bar: |-
+                one
+                two
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "one\ntwo",
             'bar' => "one\ntwo",
@@ -244,16 +244,16 @@
         $tests['Literal block chomping strip with single trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: |-
-    one
-    two
+            foo: |-
+                one
+                two
 
-bar: |-
-    one
-    two
+            bar: |-
+                one
+                two
 
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "one\ntwo",
             'bar' => "one\ntwo",
@@ -261,21 +261,21 @@
         $tests['Literal block chomping strip with multiple trailing newlines'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-{}
+            {}
 
 
-EOF;
+            EOF;
         $expected = [];
         $tests['Literal block chomping strip with multiple trailing newlines after a 1-liner'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: |-
-    one
-    two
-bar: |-
-    one
-    two
-EOF;
+            foo: |-
+                one
+                two
+            bar: |-
+                one
+                two
+            EOF;
         $expected = [
             'foo' => "one\ntwo",
             'bar' => "one\ntwo",
@@ -283,14 +283,14 @@
         $tests['Literal block chomping strip without trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: |
-    one
-    two
-bar: |
-    one
-    two
+            foo: |
+                one
+                two
+            bar: |
+                one
+                two
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "one\ntwo\n",
             'bar' => "one\ntwo\n",
@@ -298,16 +298,16 @@
         $tests['Literal block chomping clip with single trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: |
-    one
-    two
+            foo: |
+                one
+                two
 
-bar: |
-    one
-    two
+            bar: |
+                one
+                two
 
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "one\ntwo\n",
             'bar' => "one\ntwo\n",
@@ -315,12 +315,12 @@
         $tests['Literal block chomping clip with multiple trailing newlines'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo:
-- bar: |
-    one
+            foo:
+            - bar: |
+                one
 
-    two
-EOF;
+                two
+            EOF;
         $expected = [
             'foo' => [
                 [
@@ -331,13 +331,13 @@
         $tests['Literal block chomping clip with embedded blank line inside unindented collection'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: |
-    one
-    two
-bar: |
-    one
-    two
-EOF;
+            foo: |
+                one
+                two
+            bar: |
+                one
+                two
+            EOF;
         $expected = [
             'foo' => "one\ntwo\n",
             'bar' => "one\ntwo",
@@ -345,14 +345,14 @@
         $tests['Literal block chomping clip without trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: |+
-    one
-    two
-bar: |+
-    one
-    two
+            foo: |+
+                one
+                two
+            bar: |+
+                one
+                two
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "one\ntwo\n",
             'bar' => "one\ntwo\n",
@@ -360,16 +360,16 @@
         $tests['Literal block chomping keep with single trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: |+
-    one
-    two
+            foo: |+
+                one
+                two
 
-bar: |+
-    one
-    two
+            bar: |+
+                one
+                two
 
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "one\ntwo\n\n",
             'bar' => "one\ntwo\n\n",
@@ -377,13 +377,13 @@
         $tests['Literal block chomping keep with multiple trailing newlines'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: |+
-    one
-    two
-bar: |+
-    one
-    two
-EOF;
+            foo: |+
+                one
+                two
+            bar: |+
+                one
+                two
+            EOF;
         $expected = [
             'foo' => "one\ntwo\n",
             'bar' => "one\ntwo",
@@ -391,14 +391,14 @@
         $tests['Literal block chomping keep without trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: >-
-    one
-    two
-bar: >-
-    one
-    two
+            foo: >-
+                one
+                two
+            bar: >-
+                one
+                two
 
-EOF;
+            EOF;
         $expected = [
             'foo' => 'one two',
             'bar' => 'one two',
@@ -406,16 +406,16 @@
         $tests['Folded block chomping strip with single trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: >-
-    one
-    two
+            foo: >-
+                one
+                two
 
-bar: >-
-    one
-    two
+            bar: >-
+                one
+                two
 
 
-EOF;
+            EOF;
         $expected = [
             'foo' => 'one two',
             'bar' => 'one two',
@@ -423,13 +423,13 @@
         $tests['Folded block chomping strip with multiple trailing newlines'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: >-
-    one
-    two
-bar: >-
-    one
-    two
-EOF;
+            foo: >-
+                one
+                two
+            bar: >-
+                one
+                two
+            EOF;
         $expected = [
             'foo' => 'one two',
             'bar' => 'one two',
@@ -437,14 +437,14 @@
         $tests['Folded block chomping strip without trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: >
-    one
-    two
-bar: >
-    one
-    two
+            foo: >
+                one
+                two
+            bar: >
+                one
+                two
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "one two\n",
             'bar' => "one two\n",
@@ -452,16 +452,16 @@
         $tests['Folded block chomping clip with single trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: >
-    one
-    two
+            foo: >
+                one
+                two
 
-bar: >
-    one
-    two
+            bar: >
+                one
+                two
 
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "one two\n",
             'bar' => "one two\n",
@@ -469,13 +469,13 @@
         $tests['Folded block chomping clip with multiple trailing newlines'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: >
-    one
-    two
-bar: >
-    one
-    two
-EOF;
+            foo: >
+                one
+                two
+            bar: >
+                one
+                two
+            EOF;
         $expected = [
             'foo' => "one two\n",
             'bar' => 'one two',
@@ -483,14 +483,14 @@
         $tests['Folded block chomping clip without trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: >+
-    one
-    two
-bar: >+
-    one
-    two
+            foo: >+
+                one
+                two
+            bar: >+
+                one
+                two
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "one two\n",
             'bar' => "one two\n",
@@ -498,16 +498,16 @@
         $tests['Folded block chomping keep with single trailing newline'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: >+
-    one
-    two
+            foo: >+
+                one
+                two
 
-bar: >+
-    one
-    two
+            bar: >+
+                one
+                two
 
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "one two\n\n",
             'bar' => "one two\n\n",
@@ -515,13 +515,13 @@
         $tests['Folded block chomping keep with multiple trailing newlines'] = [$expected, $yaml];
 
         $yaml = <<<'EOF'
-foo: >+
-    one
-    two
-bar: >+
-    one
-    two
-EOF;
+            foo: >+
+                one
+                two
+            bar: >+
+                one
+                two
+            EOF;
         $expected = [
             'foo' => "one two\n",
             'bar' => 'one two',
@@ -547,12 +547,12 @@
     public function testBlockLiteralWithLeadingNewlines()
     {
         $yaml = <<<'EOF'
-foo: |-
+            foo: |-
 
 
-    bar
+                bar
 
-EOF;
+            EOF;
         $expected = [
             'foo' => "\n\nbar",
         ];
@@ -563,18 +563,18 @@
     public function testObjectSupportEnabled()
     {
         $input = <<<'EOF'
-foo: !php/object O:30:"Symfony\Component\Yaml\Tests\B":1:{s:1:"b";s:3:"foo";}
-bar: 1
-EOF;
+            foo: !php/object O:30:"Symfony\Component\Yaml\Tests\B":1:{s:1:"b";s:3:"foo";}
+            bar: 1
+            EOF;
         $this->assertSameData(['foo' => new B(), 'bar' => 1], $this->parser->parse($input, Yaml::PARSE_OBJECT), '->parse() is able to parse objects');
     }
 
     public function testObjectSupportDisabledButNoExceptions()
     {
         $input = <<<'EOF'
-foo: !php/object O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";}
-bar: 1
-EOF;
+            foo: !php/object O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";}
+            bar: 1
+            EOF;
         $this->assertSameData(['foo' => null, 'bar' => 1], $this->parser->parse($input), '->parse() does not parse objects');
     }
 
@@ -593,9 +593,9 @@
         $tests = [];
 
         $yaml = <<<'EOF'
-foo:
-    fiz: [cat]
-EOF;
+            foo:
+                fiz: [cat]
+            EOF;
         $expected = new \stdClass();
         $expected->foo = new \stdClass();
         $expected->foo->fiz = ['cat'];
@@ -614,10 +614,10 @@
         $tests['object-for-map-is-applied-after-parsing'] = [$yaml, $expected];
 
         $yaml = <<<'EOT'
-array:
-  - key: one
-  - key: two
-EOT;
+            array:
+              - key: one
+              - key: two
+            EOT;
         $expected = new \stdClass();
         $expected->array = [];
         $expected->array[0] = new \stdClass();
@@ -627,10 +627,10 @@
         $tests['nest-map-and-sequence'] = [$yaml, $expected];
 
         $yaml = <<<'YAML'
-map:
-  1: one
-  2: two
-YAML;
+            map:
+              1: one
+              2: two
+            YAML;
         $expected = new \stdClass();
         $expected->map = new \stdClass();
         $expected->map->{1} = 'one';
@@ -638,10 +638,10 @@
         $tests['numeric-keys'] = [$yaml, $expected];
 
         $yaml = <<<'YAML'
-map:
-  '0': one
-  '1': two
-YAML;
+            map:
+              '0': one
+              '1': two
+            YAML;
         $expected = new \stdClass();
         $expected->map = new \stdClass();
         $expected->map->{0} = 'one';
@@ -655,9 +655,9 @@
     {
         $this->expectException(ParseException::class);
         $yaml = <<<'EOF'
-foo: !php/object:O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";}
-bar: 1
-EOF;
+            foo: !php/object:O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";}
+            bar: 1
+            EOF;
 
         $this->parser->parse($yaml, Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE);
     }
@@ -668,10 +668,10 @@
         $this->expectExceptionMessage('Mapping values are not allowed in multi-line blocks at line 2 (near "dbal:wrong").');
 
         $yaml = <<<'EOF'
-data:
-    dbal:wrong
-        default_connection: monolith
-EOF;
+            data:
+                dbal:wrong
+                    default_connection: monolith
+            EOF;
         $this->parser->parse($yaml);
     }
 
@@ -713,12 +713,12 @@
         $this->expectException(ParseException::class);
         $yaml = <<<'EOF'
 
-collection:
--item1
--item2
--item3
+            collection:
+            -item1
+            -item2
+            -item3
 
-EOF;
+            EOF;
 
         $this->parser->parse($yaml);
     }
@@ -728,11 +728,11 @@
         $this->expectException(ParseException::class);
         $yaml = <<<'EOF'
 
-collection:
--  key: foo
-  foo: bar
+            collection:
+            -  key: foo
+              foo: bar
 
-EOF;
+            EOF;
 
         $this->parser->parse($yaml);
     }
@@ -742,17 +742,17 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessageMatches('/^Multiple documents are not supported.+/');
         Yaml::parse(<<<'EOL'
-# Ranking of 1998 home runs
----
-- Mark McGwire
-- Sammy Sosa
-- Ken Griffey
-
-# Team ranking
----
-- Chicago Cubs
-- St Louis Cardinals
-EOL
+            # Ranking of 1998 home runs
+            ---
+            - Mark McGwire
+            - Sammy Sosa
+            - Ken Griffey
+
+            # Team ranking
+            ---
+            - Chicago Cubs
+            - St Louis Cardinals
+            EOL
         );
     }
 
@@ -760,24 +760,24 @@
     {
         $this->expectException(ParseException::class);
         Yaml::parse(<<<'EOF'
-yaml:
-  hash: me
-  - array stuff
-EOF
+            yaml:
+              hash: me
+              - array stuff
+            EOF
         );
     }
 
     public function testSequenceInMappingStartedBySingleDashLine()
     {
         $yaml = <<<'EOT'
-a:
--
-  b:
-  -
-    bar: baz
-- foo
-d: e
-EOT;
+            a:
+            -
+              b:
+              -
+                bar: baz
+            - foo
+            d: e
+            EOT;
         $expected = [
             'a' => [
                 [
@@ -798,12 +798,12 @@
     public function testSequenceFollowedByCommentEmbeddedInMapping()
     {
         $yaml = <<<'EOT'
-a:
-    b:
-        - c
-# comment
-    d: e
-EOT;
+            a:
+                b:
+                    - c
+            # comment
+                d: e
+            EOT;
         $expected = [
             'a' => [
                 'b' => ['c'],
@@ -817,14 +817,14 @@
     public function testNonStringFollowedByCommentEmbeddedInMapping()
     {
         $yaml = <<<'EOT'
-a:
-    b:
-        {}
-# comment
-    d:
-        1.1
-# another comment
-EOT;
+            a:
+                b:
+                    {}
+            # comment
+                d:
+                    1.1
+            # another comment
+            EOT;
         $expected = [
             'a' => [
                 'b' => [],
@@ -840,22 +840,22 @@
         $tests = [];
 
         $yaml = <<<'EOT'
-a
-    b:
-EOT;
+            a
+                b:
+            EOT;
         $tests['parse error on first line'] = [$yaml];
 
         $yaml = <<<'EOT'
-a
+            a
 
-b
-    c:
-EOT;
+            b
+                c:
+            EOT;
         $tests['parse error due to inconsistent indentation'] = [$yaml];
 
         $yaml = <<<'EOT'
- &  *  !  |  >  '  "  %  @  ` #, { asd a;sdasd }-@^qw3
-EOT;
+             &  *  !  |  >  '  "  %  @  ` #, { asd a;sdasd }-@^qw3
+            EOT;
         $tests['symfony/symfony/issues/22967#issuecomment-322067742'] = [$yaml];
 
         return $tests;
@@ -873,11 +873,11 @@
     public function testMultiLineStringLastResortParsing()
     {
         $yaml = <<<'EOT'
-test:
-  You can have things that don't look like strings here
-  true
-  yes you can
-EOT;
+            test:
+              You can have things that don't look like strings here
+              true
+              yes you can
+            EOT;
         $expected = [
             'test' => 'You can have things that don\'t look like strings here true yes you can',
         ];
@@ -885,10 +885,10 @@
         $this->assertSame($expected, $this->parser->parse($yaml));
 
         $yaml = <<<'EOT'
-a:
-    b
-       c
-EOT;
+            a:
+                b
+                   c
+            EOT;
         $expected = [
             'a' => 'b c',
         ];
@@ -900,10 +900,10 @@
     {
         $this->expectException(ParseException::class);
         Yaml::parse(<<<'EOF'
-yaml:
-  - array stuff
-  hash: me
-EOF
+            yaml:
+              - array stuff
+              hash: me
+            EOF
         );
     }
 
@@ -912,11 +912,11 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('missing colon');
         Yaml::parse(<<<'EOF'
-foo:
-    - bar
-"missing colon"
-    foo: bar
-EOF
+            foo:
+                - bar
+            "missing colon"
+                foo: bar
+            EOF
         );
     }
 
@@ -935,13 +935,13 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Duplicate key "child" detected');
         $input = <<<'EOD'
-parent:
-    child: first
-    child: duplicate
-parent:
-    child: duplicate
-    child: duplicate
-EOD;
+            parent:
+                child: first
+                child: duplicate
+            parent:
+                child: duplicate
+                child: duplicate
+            EOD;
         $expected = [
             'parent' => [
                 'child' => 'first',
@@ -955,9 +955,9 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Duplicate key "child" detected');
         $input = <<<'EOD'
-parent: { child: first, child: duplicate }
-parent: { child: duplicate, child: duplicate }
-EOD;
+            parent: { child: first, child: duplicate }
+            parent: { child: duplicate, child: duplicate }
+            EOD;
         $expected = [
             'parent' => [
                 'child' => 'first',
@@ -972,7 +972,7 @@
     public function testParseExceptionOnDuplicate($input, $duplicateKey, $lineNumber)
     {
         $this->expectException(ParseException::class);
-        $this->expectExceptionMessage(sprintf('Duplicate key "%s" detected at line %d', $duplicateKey, $lineNumber));
+        $this->expectExceptionMessage(\sprintf('Duplicate key "%s" detected at line %d', $duplicateKey, $lineNumber));
 
         Yaml::parse($input);
     }
@@ -982,53 +982,53 @@
         $tests = [];
 
         $yaml = <<<EOD
-parent: { child: first, child: duplicate }
-EOD;
+            parent: { child: first, child: duplicate }
+            EOD;
         $tests[] = [$yaml, 'child', 1];
 
         $yaml = <<<EOD
-parent:
-  child: first,
-  child: duplicate
-EOD;
+            parent:
+              child: first,
+              child: duplicate
+            EOD;
         $tests[] = [$yaml, 'child', 3];
 
         $yaml = <<<EOD
-parent: { child: foo }
-parent: { child: bar }
-EOD;
+            parent: { child: foo }
+            parent: { child: bar }
+            EOD;
         $tests[] = [$yaml, 'parent', 2];
 
         $yaml = <<<EOD
-parent: { child_mapping: { value: bar},  child_mapping: { value: bar} }
-EOD;
+            parent: { child_mapping: { value: bar},  child_mapping: { value: bar} }
+            EOD;
         $tests[] = [$yaml, 'child_mapping', 1];
 
         $yaml = <<<EOD
-parent:
-  child_mapping:
-    value: bar
-  child_mapping:
-    value: bar
-EOD;
+            parent:
+              child_mapping:
+                value: bar
+              child_mapping:
+                value: bar
+            EOD;
         $tests[] = [$yaml, 'child_mapping', 4];
 
         $yaml = <<<EOD
-parent: { child_sequence: ['key1', 'key2', 'key3'],  child_sequence: ['key1', 'key2', 'key3'] }
-EOD;
+            parent: { child_sequence: ['key1', 'key2', 'key3'],  child_sequence: ['key1', 'key2', 'key3'] }
+            EOD;
         $tests[] = [$yaml, 'child_sequence', 1];
 
         $yaml = <<<EOD
-parent:
-  child_sequence:
-    - key1
-    - key2
-    - key3
-  child_sequence:
-    - key1
-    - key2
-    - key3
-EOD;
+            parent:
+              child_sequence:
+                - key1
+                - key2
+                - key3
+              child_sequence:
+                - key1
+                - key2
+                - key3
+            EOD;
         $tests[] = [$yaml, 'child_sequence', 6];
 
         return $tests;
@@ -1037,8 +1037,8 @@
     public function testEmptyValue()
     {
         $input = <<<'EOF'
-hash:
-EOF;
+            hash:
+            EOF;
 
         $this->assertSame(['hash' => null], Yaml::parse($input));
     }
@@ -1055,74 +1055,74 @@
                 ],
             ],
         ], Yaml::parse(<<<'EOF'
-# comment 1
-services:
-# comment 2
-    # comment 3
-    app.foo_service:
-        class: Foo
-# comment 4
-    # comment 5
-    app/bar_service:
-        class: Bar
-EOF
+            # comment 1
+            services:
+            # comment 2
+                # comment 3
+                app.foo_service:
+                    class: Foo
+            # comment 4
+                # comment 5
+                app/bar_service:
+                    class: Bar
+            EOF
         ));
     }
 
     public function testStringBlockWithComments()
     {
         $this->assertSame(['content' => <<<'EOT'
-# comment 1
-header
+            # comment 1
+            header
 
-    # comment 2
-    <body>
-        <h1>title</h1>
-    </body>
+                # comment 2
+                <body>
+                    <h1>title</h1>
+                </body>
 
-footer # comment3
-EOT
+            footer # comment3
+            EOT
         ], Yaml::parse(<<<'EOF'
-content: |
-    # comment 1
-    header
-
-        # comment 2
-        <body>
-            <h1>title</h1>
-        </body>
+            content: |
+                # comment 1
+                header
+
+                    # comment 2
+                    <body>
+                        <h1>title</h1>
+                    </body>
 
-    footer # comment3
-EOF
+                footer # comment3
+            EOF
         ));
     }
 
     public function testFoldedStringBlockWithComments()
     {
         $this->assertSame([['content' => <<<'EOT'
-# comment 1
-header
+            # comment 1
+            header
 
-    # comment 2
-    <body>
-        <h1>title</h1>
-    </body>
+                # comment 2
+                <body>
+                    <h1>title</h1>
+                </body>
 
-footer # comment3
-EOT
+            footer # comment3
+            EOT
         ]], Yaml::parse(<<<'EOF'
--
-    content: |
-        # comment 1
-        header
-
-            # comment 2
-            <body>
-                <h1>title</h1>
-            </body>
+            -
+                content: |
+                    # comment 1
+                    header
+
+                        # comment 2
+                        <body>
+                            <h1>title</h1>
+                        </body>
 
-        footer # comment3
-EOF
+                    footer # comment3
+            EOF
         ));
     }
 
@@ -1131,30 +1131,30 @@
         $this->assertSame([[
             'title' => 'some title',
             'content' => <<<'EOT'
-# comment 1
-header
+                # comment 1
+                header
 
-    # comment 2
-    <body>
-        <h1>title</h1>
-    </body>
+                    # comment 2
+                    <body>
+                        <h1>title</h1>
+                    </body>
 
-footer # comment3
-EOT
+                footer # comment3
+                EOT,
         ]], Yaml::parse(<<<'EOF'
--
-    title: some title
-    content: |
-        # comment 1
-        header
-
-            # comment 2
-            <body>
-                <h1>title</h1>
-            </body>
+            -
+                title: some title
+                content: |
+                    # comment 1
+                    header
+
+                        # comment 2
+                        <body>
+                            <h1>title</h1>
+                        </body>
 
-        footer # comment3
-EOF
+                    footer # comment3
+            EOF
         ));
     }
 
@@ -1175,31 +1175,31 @@
             'baz' => ['foo'],
             'foobar' => ['foo'],
         ], Yaml::parse(<<<'EOF'
-var:  &var var-value
-scalar: *var
-list: [ *var ]
-list_in_list: [[ *var ]]
-map_in_list: [ { key: *var } ]
-embedded_mapping: [ key: *var ]
-map: { key: *var }
-list_in_map: { key: [*var] }
-map_in_map: { foo: { bar: *var } }
-foo: { bar: &baz baz }
-bar: { foo: *baz }
-baz: [ &foo foo ]
-foobar: [ *foo ]
-EOF
+            var:  &var var-value
+            scalar: *var
+            list: [ *var ]
+            list_in_list: [[ *var ]]
+            map_in_list: [ { key: *var } ]
+            embedded_mapping: [ key: *var ]
+            map: { key: *var }
+            list_in_map: { key: [*var] }
+            map_in_map: { foo: { bar: *var } }
+            foo: { bar: &baz baz }
+            bar: { foo: *baz }
+            baz: [ &foo foo ]
+            foobar: [ *foo ]
+            EOF
         ));
     }
 
     public function testYamlDirective()
     {
         $yaml = <<<'EOF'
-%YAML 1.2
----
-foo: 1
-bar: 2
-EOF;
+            %YAML 1.2
+            ---
+            foo: 1
+            bar: 2
+            EOF;
         $this->assertSame(['foo' => 1, 'bar' => 2], $this->parser->parse($yaml));
     }
 
@@ -1208,10 +1208,10 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Numeric keys are not supported. Quote your evaluable mapping keys instead');
         $yaml = <<<'EOF'
-foo:
-    1.2: "bar"
-    1.3: "baz"
-EOF;
+            foo:
+                1.2: "bar"
+                1.3: "baz"
+            EOF;
 
         $this->parser->parse($yaml);
     }
@@ -1221,9 +1221,9 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Non-string keys are not supported. Quote your evaluable mapping keys instead');
         $yaml = <<<'EOF'
-true: foo
-false: bar
-EOF;
+            true: foo
+            false: bar
+            EOF;
 
         $this->parser->parse($yaml);
     }
@@ -1231,15 +1231,15 @@
     public function testExplicitStringCasting()
     {
         $yaml = <<<'EOF'
-'1.2': "bar"
-!!str 1.3: "baz"
+            '1.2': "bar"
+            !!str 1.3: "baz"
 
-'true': foo
-!!str false: bar
+            'true': foo
+            !!str false: bar
 
-!!str null: 'null'
-'~': 'null'
-EOF;
+            !!str null: 'null'
+            '~': 'null'
+            EOF;
 
         $expected = [
             '1.2' => 'bar',
@@ -1258,8 +1258,8 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('A colon cannot be used in an unquoted mapping value');
         $yaml = <<<'EOF'
-foo: bar: baz
-EOF;
+            foo: bar: baz
+            EOF;
 
         $this->parser->parse($yaml);
     }
@@ -1267,9 +1267,9 @@
     public function testColonInMappingValueExceptionNotTriggeredByColonInComment()
     {
         $yaml = <<<'EOT'
-foo:
-    bar: foobar # Note: a comment after a colon
-EOT;
+            foo:
+                bar: foobar # Note: a comment after a colon
+            EOT;
 
         $this->assertSame(['foo' => ['bar' => 'foobar']], $this->parser->parse($yaml));
     }
@@ -1287,96 +1287,92 @@
         $tests = [];
 
         $yaml = <<<'EOT'
-pages:
-    -
-        title: some title
-        content: |
-            # comment 1
-            header
-
-                # comment 2
-                <body>
-                    <h1>title</h1>
-                </body>
+            pages:
+                -
+                    title: some title
+                    content: |
+                        # comment 1
+                        header
+
+                            # comment 2
+                            <body>
+                                <h1>title</h1>
+                            </body>
 
-            footer # comment3
-EOT;
+                        footer # comment3
+            EOT;
         $expected = [
             'pages' => [
                 [
                     'title' => 'some title',
                     'content' => <<<'EOT'
-# comment 1
-header
+                        # comment 1
+                        header
+
+                            # comment 2
+                            <body>
+                                <h1>title</h1>
+                            </body>
 
-    # comment 2
-    <body>
-        <h1>title</h1>
-    </body>
-
-footer # comment3
-EOT
-                    ,
+                        footer # comment3
+                        EOT,
                 ],
             ],
         ];
         $tests[] = [$yaml, $expected];
 
         $yaml = <<<'EOT'
-test: |
-    foo
-    # bar
-    baz
-collection:
-    - one: |
-        foo
-        # bar
-        baz
-    - two: |
-        foo
-        # bar
-        baz
-EOT;
+            test: |
+                foo
+                # bar
+                baz
+            collection:
+                - one: |
+                    foo
+                    # bar
+                    baz
+                - two: |
+                    foo
+                    # bar
+                    baz
+            EOT;
         $expected = [
             'test' => <<<'EOT'
-foo
-# bar
-baz
+                foo
+                # bar
+                baz
 
-EOT
-            ,
+                EOT,
             'collection' => [
                 [
                     'one' => <<<'EOT'
-foo
-# bar
-baz
+                        foo
+                        # bar
+                        baz
 
-EOT
-                    ,
+                        EOT,
                 ],
                 [
                     'two' => <<<'EOT'
-foo
-# bar
-baz
-EOT
-                    ,
+                        foo
+                        # bar
+                        baz
+                        EOT,
                 ],
             ],
         ];
         $tests[] = [$yaml, $expected];
 
         $yaml = <<<'EOT'
-foo:
-  bar:
-    scalar-block: >
-      line1
-      line2>
-  baz:
-# comment
-    foobar: ~
-EOT;
+            foo:
+              bar:
+                scalar-block: >
+                  line1
+                  line2>
+              baz:
+            # comment
+                foobar: ~
+            EOT;
         $expected = [
             'foo' => [
                 'bar' => [
@@ -1390,13 +1386,13 @@
         $tests[] = [$yaml, $expected];
 
         $yaml = <<<'EOT'
-a:
-    b: hello
-#    c: |
-#        first row
-#        second row
-    d: hello
-EOT;
+            a:
+                b: hello
+            #    c: |
+            #        first row
+            #        second row
+                d: hello
+            EOT;
         $expected = [
             'a' => [
                 'b' => 'hello',
@@ -1411,22 +1407,21 @@
     public function testBlankLinesAreParsedAsNewLinesInFoldedBlocks()
     {
         $yaml = <<<'EOT'
-test: >
-    <h2>A heading</h2>
+            test: >
+                <h2>A heading</h2>
 
-    <ul>
-    <li>a list</li>
-    <li>may be a good example</li>
-    </ul>
-EOT;
+                <ul>
+                <li>a list</li>
+                <li>may be a good example</li>
+                </ul>
+            EOT;
 
         $this->assertSame(
             [
                 'test' => <<<'EOT'
-<h2>A heading</h2>
-<ul> <li>a list</li> <li>may be a good example</li> </ul>
-EOT
-                ,
+                    <h2>A heading</h2>
+                    <ul> <li>a list</li> <li>may be a good example</li> </ul>
+                    EOT,
             ],
             $this->parser->parse($yaml)
         );
@@ -1435,25 +1430,24 @@
     public function testAdditionallyIndentedLinesAreParsedAsNewLinesInFoldedBlocks()
     {
         $yaml = <<<'EOT'
-test: >
-    <h2>A heading</h2>
+            test: >
+                <h2>A heading</h2>
 
-    <ul>
-      <li>a list</li>
-      <li>may be a good example</li>
-    </ul>
-EOT;
+                <ul>
+                  <li>a list</li>
+                  <li>may be a good example</li>
+                </ul>
+            EOT;
 
         $this->assertSame(
             [
                 'test' => <<<'EOT'
-<h2>A heading</h2>
-<ul>
-  <li>a list</li>
-  <li>may be a good example</li>
-</ul>
-EOT
-                ,
+                    <h2>A heading</h2>
+                    <ul>
+                      <li>a list</li>
+                      <li>may be a good example</li>
+                    </ul>
+                    EOT,
             ],
             $this->parser->parse($yaml)
         );
@@ -1475,15 +1469,15 @@
             'containing spaces' => ['data: !!binary  "SGVs bG8gd 29ybGQ="'],
             'in block scalar' => [
                 <<<'EOT'
-data: !!binary |
-    SGVsbG8gd29ybGQ=
-EOT
+                    data: !!binary |
+                        SGVsbG8gd29ybGQ=
+                    EOT,
             ],
             'containing spaces in block scalar' => [
                 <<<'EOT'
-data: !!binary |
-    SGVs bG8gd 29ybGQ=
-EOT
+                    data: !!binary |
+                        SGVs bG8gd 29ybGQ=
+                    EOT,
             ],
         ];
     }
@@ -1508,34 +1502,30 @@
             'misplaced equals character' => ['data: !!binary "SGVsbG8gd29ybG=Q"', '/The base64 encoded data \(.*\) contains invalid characters/'],
             'length not a multiple of four in block scalar' => [
                 <<<'EOT'
-data: !!binary |
-    SGVsbG8d29ybGQ=
-EOT
-                ,
+                    data: !!binary |
+                        SGVsbG8d29ybGQ=
+                    EOT,
                 '/The normalized base64 encoded data \(data without whitespace characters\) length must be a multiple of four \(\d+ bytes given\)/',
             ],
             'invalid characters in block scalar' => [
                 <<<'EOT'
-data: !!binary |
-    SGVsbG8#d29ybGQ=
-EOT
-                ,
+                    data: !!binary |
+                        SGVsbG8#d29ybGQ=
+                    EOT,
                 '/The base64 encoded data \(.*\) contains invalid characters/',
             ],
             'too many equals characters in block scalar' => [
                 <<<'EOT'
-data: !!binary |
-    SGVsbG8gd29yb===
-EOT
-                ,
+                    data: !!binary |
+                        SGVsbG8gd29yb===
+                    EOT,
                 '/The base64 encoded data \(.*\) contains invalid characters/',
             ],
             'misplaced equals character in block scalar' => [
                 <<<'EOT'
-data: !!binary |
-    SGVsbG8gd29ybG=Q
-EOT
-                ,
+                    data: !!binary |
+                        SGVsbG8gd29ybG=Q
+                    EOT,
                 '/The base64 encoded data \(.*\) contains invalid characters/',
             ],
         ];
@@ -1544,8 +1534,8 @@
     public function testParseDateWithSubseconds()
     {
         $yaml = <<<'EOT'
-date: 2002-12-14T01:23:45.670000Z
-EOT;
+            date: 2002-12-14T01:23:45.670000Z
+            EOT;
 
         $this->assertSameData(['date' => 1039829025.67], $this->parser->parse($yaml));
     }
@@ -1553,8 +1543,8 @@
     public function testParseDateAsMappingValue()
     {
         $yaml = <<<'EOT'
-date: 2002-12-14
-EOT;
+            date: 2002-12-14
+            EOT;
         $expectedDate = (new \DateTimeImmutable())
             ->setTimeZone(new \DateTimeZone('UTC'))
             ->setDate(2002, 12, 14)
@@ -1569,7 +1559,7 @@
     public function testParserThrowsExceptionWithCorrectLineNumber($lineNumber, $yaml)
     {
         $this->expectException(ParseException::class);
-        $this->expectExceptionMessage(sprintf('Unexpected characters near "," at line %d (near "bar: "123",").', $lineNumber));
+        $this->expectExceptionMessage(\sprintf('Unexpected characters near "," at line %d (near "bar: "123",").', $lineNumber));
 
         $this->parser->parse($yaml);
     }
@@ -1580,49 +1570,49 @@
             [
                 4,
                 <<<'YAML'
-foo:
-    -
-        # bar
-        bar: "123",
-YAML
+                    foo:
+                        -
+                            # bar
+                            bar: "123",
+                    YAML,
             ],
             [
                 5,
                 <<<'YAML'
-foo:
-    -
-        # bar
-        # bar
-        bar: "123",
-YAML
+                    foo:
+                        -
+                            # bar
+                            # bar
+                            bar: "123",
+                    YAML,
             ],
             [
                 8,
                 <<<'YAML'
-foo:
-    -
-        # foobar
-        baz: 123
-bar:
-    -
-        # bar
-        bar: "123",
-YAML
+                    foo:
+                        -
+                            # foobar
+                            baz: 123
+                    bar:
+                        -
+                            # bar
+                            bar: "123",
+                    YAML,
             ],
             [
                 10,
                 <<<'YAML'
-foo:
-    -
-        # foobar
-        # foobar
-        baz: 123
-bar:
-    -
-        # bar
-        # bar
-        bar: "123",
-YAML
+                    foo:
+                        -
+                            # foobar
+                            # foobar
+                            baz: 123
+                    bar:
+                        -
+                            # bar
+                            # bar
+                            bar: "123",
+                    YAML,
             ],
         ];
     }
@@ -1630,12 +1620,12 @@
     public function testParseMultiLineQuotedString()
     {
         $yaml = <<<EOT
-foo: "bar
-  baz
-   foobar
-foo"
-bar: baz
-EOT;
+            foo: "bar
+              baz
+               foobar
+            foo"
+            bar: baz
+            EOT;
 
         $this->assertSame(['foo' => 'bar baz foobar foo', 'bar' => 'baz'], $this->parser->parse($yaml));
     }
@@ -1643,10 +1633,10 @@
     public function testMultiLineQuotedStringWithTrailingBackslash()
     {
         $yaml = <<<YAML
-foobar:
-    "foo\
-    bar"
-YAML;
+            foobar:
+                "foo\
+                bar"
+            YAML;
 
         $this->assertSame(['foobar' => 'foobar'], $this->parser->parse($yaml));
     }
@@ -1654,11 +1644,11 @@
     public function testCommentCharactersInMultiLineQuotedStrings()
     {
         $yaml = <<<YAML
-foo:
-    foobar: 'foo
-      #bar'
-    bar: baz
-YAML;
+            foo:
+                foobar: 'foo
+                  #bar'
+                bar: baz
+            YAML;
         $expected = [
             'foo' => [
                 'foobar' => 'foo #bar',
@@ -1672,10 +1662,10 @@
     public function testBlankLinesInQuotedMultiLineString()
     {
         $yaml = <<<YAML
-foobar: 'foo
+            foobar: 'foo
 
-    bar'
-YAML;
+                bar'
+            YAML;
         $expected = [
             'foobar' => "foo\nbar",
         ];
@@ -1686,10 +1676,10 @@
     public function testEscapedQuoteInQuotedMultiLineString()
     {
         $yaml = <<<YAML
-foobar: "foo
-    \\"bar\\"
-    baz"
-YAML;
+            foobar: "foo
+                \\"bar\\"
+                baz"
+            YAML;
         $expected = [
             'foobar' => 'foo "bar" baz',
         ];
@@ -1700,9 +1690,9 @@
     public function testBackslashInQuotedMultiLineString()
     {
         $yaml = <<<YAML
-foobar: "foo
-    bar\\\\"
-YAML;
+            foobar: "foo
+                bar\\\\"
+            YAML;
         $expected = [
             'foobar' => 'foo bar\\',
         ];
@@ -1726,14 +1716,14 @@
                 [
                     'foo' => 'bar  bar',
                     'fiz' => 'cat      cat',
-                ]
+                ],
             ],
             'sequence' => [
                 '[ bar  bar, cat      cat ]',
                 [
                     'bar  bar',
                     'cat      cat',
-                ]
+                ],
             ],
         ];
     }
@@ -1741,17 +1731,166 @@
     public function testParseMultiLineUnquotedString()
     {
         $yaml = <<<EOT
-foo: bar
-  baz
-   foobar
-  foo
-bar: baz
-EOT;
+            foo: bar
+              baz
+               foobar
+              foo
+            bar: baz
+            EOT;
 
         $this->assertSame(['foo' => 'bar baz foobar foo', 'bar' => 'baz'], $this->parser->parse($yaml));
     }
 
     /**
+     * @dataProvider getUnquotedMultilineScalarHandlesCommentsAndBlanksData
+     */
+    public function testUnquotedMultilineScalarHandlesCommentsAndBlanks(string $yaml, array $expected)
+    {
+        $this->assertSame($expected, $this->parser->parse($yaml));
+    }
+
+    public static function getUnquotedMultilineScalarHandlesCommentsAndBlanksData()
+    {
+        yield 'comments interspersed stops scalar' => [
+            <<<YAML
+                key: unquoted
+                  # this comment terminates
+                another_key: works
+                YAML,
+            [
+                'key' => 'unquoted',
+                'another_key' => 'works',
+            ],
+        ];
+
+        yield 'only comments' => [
+            <<<YAML
+                key: unquoted
+                  # this comment should be ignored
+                  # another comment
+                another_key: works
+                YAML,
+            [
+                'key' => 'unquoted',
+                'another_key' => 'works',
+            ],
+        ];
+
+        yield 'blank lines are preserved and comment stops scalar' => [
+            <<<YAML
+                key: unquoted
+                  next line
+
+                  # this comment terminates the scalar
+                another_key: works
+                YAML,
+            [
+                'key' => 'unquoted next line',
+                'another_key' => 'works',
+            ],
+        ];
+
+        yield 'comment at end' => [
+            <<<YAML
+                key: unquoted
+                  next line
+                  # comment at end
+                another_key: works
+                YAML,
+            [
+                'key' => 'unquoted next line',
+                'another_key' => 'works',
+            ],
+        ];
+    }
+
+    public function testUnquotedMultilineScalarThrowsOnOrphanedLineAfterComment()
+    {
+        $this->expectException(ParseException::class);
+        $this->expectExceptionMessage('Unable to parse at line 3 (near "  next line")');
+
+        $yaml = <<<YAML
+            key: unquoted
+              # this comment terminates
+              next line
+            another_key: works
+            YAML;
+
+        $this->parser->parse($yaml);
+    }
+
+    public function testUnquotedMultilineScalarWithBlankLines()
+    {
+        $yaml = <<<YAML
+            foo:
+              line 1
+
+              line 2
+            YAML;
+        $this->assertSame(['foo' => "line 1\nline 2"], $this->parser->parse($yaml));
+    }
+
+    /**
+     * @dataProvider provideInvalidYamlFiles
+     */
+    public function testLineNumberInException(int $expectedLine, string $yaml, string $message)
+    {
+        $this->expectException(ParseException::class);
+        $this->expectExceptionMessage($message);
+        $this->expectExceptionMessage(\sprintf('at line %d', $expectedLine));
+
+        $this->parser->parse($yaml);
+    }
+
+    public static function provideInvalidYamlFiles(): iterable
+    {
+        yield 'invalid_nested_under_scalar' => [
+            4,
+            <<<YAML
+                en:
+                  NONAMESPACE: Include Entity without Namespace
+                  Invalid: Foo
+                    About: 'About us'
+                    - Invalid
+                YAML,
+            'Unable to parse',
+        ];
+
+        yield 'invalid_nested_under_scalar_with_trailing_newlines' => [
+            4,
+            <<<YAML
+                en:
+                  NONAMESPACE: Include Entity without Namespace
+                  Invalid: Foo
+                    About: 'About us'
+                    - Invalid
+
+
+                YAML,
+            'Unable to parse',
+        ];
+
+        yield 'colon_in_unquoted_value' => [
+            2,
+            <<<YAML
+                foo: bar
+                  baz: qux
+                YAML,
+            'A colon cannot be used in an unquoted mapping value',
+        ];
+
+        yield 'colon_in_unquoted_value_multiline' => [
+            2,
+            <<<YAML
+                foo:
+                  bar
+                  baz: qux
+                YAML,
+            'Mapping values are not allowed in multi-line blocks',
+        ];
+    }
+
+    /**
      * @dataProvider unquotedStringWithTrailingComment
      */
     public function testParseMultiLineUnquotedStringWithTrailingComment(string $yaml, array $expected)
@@ -1764,51 +1903,51 @@
         return [
             'comment after comma' => [
                 <<<'YAML'
-                {
-                    foo: 3, # comment
-                    bar: 3
-                }
-                YAML,
+                    {
+                        foo: 3, # comment
+                        bar: 3
+                    }
+                    YAML,
                 ['foo' => 3, 'bar' => 3],
             ],
             'comment after space' => [
                 <<<'YAML'
-                {
-                    foo: 3 # comment
-                }
-                YAML,
+                    {
+                        foo: 3 # comment
+                    }
+                    YAML,
                 ['foo' => 3],
             ],
             'comment after space, but missing space after #' => [
                 <<<'YAML'
-                {
-                    foo: 3 #comment
-                }
-                YAML,
+                    {
+                        foo: 3 #comment
+                    }
+                    YAML,
                 ['foo' => 3],
             ],
             'comment after tab' => [
                 <<<YAML
-                {
-                    foo: 3\t# comment
-                }
-                YAML,
+                    {
+                        foo: 3\t# comment
+                    }
+                    YAML,
                 ['foo' => 3],
             ],
             'comment after tab, but missing space after #' => [
                 <<<YAML
-                {
-                    foo: 3\t#comment
-                }
-                YAML,
+                    {
+                        foo: 3\t#comment
+                    }
+                    YAML,
                 ['foo' => 3],
             ],
             '# in mapping value' => [
                 <<<'YAML'
-                {
-                    foo: example.com/#about
-                }
-                YAML,
+                    {
+                        foo: example.com/#about
+                    }
+                    YAML,
                 ['foo' => 'example.com/#about'],
             ],
         ];
@@ -1827,12 +1966,11 @@
         return [
             'single quoted string' => [
                 <<<YAML
-entries:
- - message: 'No emails received before timeout - Address: ''test@testemail.company.com''
-       Keyword: ''Your Order confirmation'' ttl: 50'
-   outcome: failed
-YAML
-                ,
+                    entries:
+                     - message: 'No emails received before timeout - Address: ''test@testemail.company.com''
+                           Keyword: ''Your Order confirmation'' ttl: 50'
+                       outcome: failed
+                    YAML,
                 [
                     'entries' => [
                         [
@@ -1844,12 +1982,11 @@
             ],
             'double quoted string' => [
                 <<<YAML
-entries:
- - message: "No emails received before timeout - Address: \"test@testemail.company.com\"
-       Keyword: \"Your Order confirmation\" ttl: 50"
-   outcome: failed
-YAML
-                ,
+                    entries:
+                     - message: "No emails received before timeout - Address: \"test@testemail.company.com\"
+                           Keyword: \"Your Order confirmation\" ttl: 50"
+                       outcome: failed
+                    YAML,
                 [
                     'entries' => [
                         [
@@ -1885,13 +2022,13 @@
         $tests = [];
 
         $yaml = <<<'EOF'
-foo:
-- bar:
-    one
-
-    two
-    three
-EOF;
+            foo:
+            - bar:
+                one
+
+                two
+                three
+            EOF;
         $expected = [
             'foo' => [
                 [
@@ -1903,35 +2040,35 @@
         $tests[] = [$yaml, $expected, false];
 
         $yaml = <<<'EOF'
-bar
-"foo"
-EOF;
+            bar
+            "foo"
+            EOF;
         $expected = 'bar "foo"';
 
         $tests[] = [$yaml, $expected, false];
 
         $yaml = <<<'EOF'
-bar
-"foo
-EOF;
+            bar
+            "foo
+            EOF;
         $expected = 'bar "foo';
 
         $tests[] = [$yaml, $expected, false];
 
         $yaml = <<<'EOF'
-bar
+            bar
 
-'foo'
-EOF;
+            'foo'
+            EOF;
         $expected = "bar\n'foo'";
 
         $tests[] = [$yaml, $expected, false];
 
         $yaml = <<<'EOF'
-bar
+            bar
 
-foo'
-EOF;
+            foo'
+            EOF;
         $expected = "bar\nfoo'";
 
         $tests[] = [$yaml, $expected, false];
@@ -1953,42 +2090,38 @@
             'mapping' => [
                 ['foo' => 'bar', 'bar' => 'baz'],
                 <<<YAML
-{
-    'foo': 'bar',
-    'bar': 'baz'
-}
-YAML
-                ,
+                    {
+                        'foo': 'bar',
+                        'bar': 'baz'
+                    }
+                    YAML,
             ],
             'mapping with unquoted strings and values' => [
                 ['foo' => 'bar', 'bar' => 'baz'],
                 <<<YAML
-{
-    foo: bar,
-    bar: baz
-}
-YAML
-                ,
+                    {
+                        foo: bar,
+                        bar: baz
+                    }
+                    YAML,
             ],
             'sequence' => [
                 ['foo', 'bar'],
                 <<<YAML
-[
-    'foo',
-    'bar'
-]
-YAML
-                ,
+                    [
+                        'foo',
+                        'bar'
+                    ]
+                    YAML,
             ],
             'sequence with unquoted items' => [
                 ['foo', 'bar'],
                 <<<YAML
-[
-    foo,
-    bar
-]
-YAML
-                ,
+                    [
+                        foo,
+                        bar
+                    ]
+                    YAML,
             ],
             'nested mapping terminating at end of line' => [
                 [
@@ -1997,10 +2130,9 @@
                     ],
                 ],
                 <<<YAML
-{ foo: { bar: foobar }
-}
-YAML
-                ,
+                    { foo: { bar: foobar }
+                    }
+                    YAML,
             ],
             'nested sequence terminating at end of line' => [
                 [
@@ -2011,9 +2143,9 @@
                     ],
                 ],
                 <<<YAML
-[ foo, [bar, baz]
-]
-YAML
+                    [ foo, [bar, baz]
+                    ]
+                    YAML,
             ],
             'nested sequence spanning multiple lines' => [
                 [
@@ -2021,21 +2153,20 @@
                     ['entry2'],
                 ],
                 <<<YAML
-[
-    ['entry1', {}],
-    ['entry2']
-]
-YAML
+                    [
+                        ['entry1', {}],
+                        ['entry2']
+                    ]
+                    YAML,
             ],
             'sequence nested in mapping' => [
                 ['foo' => ['bar', 'foobar'], 'bar' => ['baz']],
                 <<<YAML
-{
-    'foo': ['bar', 'foobar'],
-    'bar': ['baz']
-}
-YAML
-                ,
+                    {
+                        'foo': ['bar', 'foobar'],
+                        'bar': ['baz']
+                    }
+                    YAML,
             ],
             'sequence spanning multiple lines nested in mapping' => [
                 [
@@ -2046,12 +2177,11 @@
                     ],
                 ],
                 <<<YAML
-foobar: [foo,
-    bar,
-    baz
-]
-YAML
-                ,
+                    foobar: [foo,
+                        bar,
+                        baz
+                    ]
+                    YAML,
             ],
             'sequence spanning multiple lines nested in mapping with a following mapping' => [
                 [
@@ -2062,12 +2192,12 @@
                     'bar' => 'baz',
                 ],
                 <<<YAML
-foobar: [
-    foo,
-    bar,
-]
-bar: baz
-YAML
+                    foobar: [
+                        foo,
+                        bar,
+                    ]
+                    bar: baz
+                    YAML,
             ],
             'nested sequence nested in mapping starting on the same line' => [
                 [
@@ -2080,12 +2210,11 @@
                     ],
                 ],
                 <<<YAML
-foo: [foobar, [
-    bar,
-    baz
-]]
-YAML
-                ,
+                    foo: [foobar, [
+                        bar,
+                        baz
+                    ]]
+                    YAML,
             ],
             'nested sequence nested in mapping starting on the following line' => [
                 [
@@ -2098,25 +2227,23 @@
                     ],
                 ],
                 <<<YAML
-foo: [foobar,
-    [
-        bar,
-        baz
-]]
-YAML
-                ,
+                    foo: [foobar,
+                        [
+                            bar,
+                            baz
+                    ]]
+                    YAML,
             ],
             'mapping nested in sequence' => [
                 ['foo', ['bar' => 'baz']],
                 <<<YAML
-[
-    'foo',
-    {
-        'bar': 'baz'
-    }
-]
-YAML
-                ,
+                    [
+                        'foo',
+                        {
+                            'bar': 'baz'
+                        }
+                    ]
+                    YAML,
             ],
             'mapping spanning multiple lines nested in sequence' => [
                 [
@@ -2126,12 +2253,11 @@
                     ],
                 ],
                 <<<YAML
-- {
-    foo: bar,
-    bar: baz
-}
-YAML
-                ,
+                    - {
+                        foo: bar,
+                        bar: baz
+                    }
+                    YAML,
             ],
             'nested mapping nested in sequence starting on the same line' => [
                 [
@@ -2143,13 +2269,12 @@
                     ],
                 ],
                 <<<YAML
-- { foo: {
-        bar: foobar
-    },
-    bar: baz
-}
-YAML
-                ,
+                    - { foo: {
+                            bar: foobar
+                        },
+                        bar: baz
+                    }
+                    YAML,
             ],
             'nested mapping nested in sequence starting on the following line' => [
                 [
@@ -2161,40 +2286,37 @@
                     ],
                 ],
                 <<<YAML
-- { foo:
-    {
-        bar: foobar
-    },
-    bar: baz
-}
-YAML
-                ,
+                    - { foo:
+                        {
+                            bar: foobar
+                        },
+                        bar: baz
+                    }
+                    YAML,
             ],
             'single quoted multi-line string' => [
                 "foo\nbar",
                 <<<YAML
-'foo
+                    'foo
 
-bar'
-YAML
-                ,
+                    bar'
+                    YAML,
             ],
             'double quoted multi-line string' => [
                 "foo\nbar",
                 <<<YAML
-'foo
+                    'foo
 
-bar'
-YAML
-                ,
+                    bar'
+                    YAML,
             ],
             'single-quoted multi-line mapping value' => [
                 ['foo' => "bar\nbaz"],
                 <<<YAML
-foo: 'bar
+                    foo: 'bar
 
-baz'
-YAML
+                    baz'
+                    YAML,
             ],
             'mixed mapping with inline notation having separated lines' => [
                 [
@@ -2205,12 +2327,12 @@
                     'param' => 'some',
                 ],
                 <<<YAML
-map: {
-    key: "value",
-    a: "b"
-}
-param: "some"
-YAML
+                    map: {
+                        key: "value",
+                        a: "b"
+                    }
+                    param: "some"
+                    YAML,
             ],
             'mixed mapping with inline notation on one line' => [
                 [
@@ -2221,9 +2343,9 @@
                     'param' => 'some',
                 ],
                 <<<YAML
-map: {key: "value", a: "b"}
-param: "some"
-YAML
+                    map: {key: "value", a: "b"}
+                    param: "some"
+                    YAML,
             ],
             'mixed mapping with inline notation on one line with a comment' => [
                 [
@@ -2234,9 +2356,9 @@
                     'param' => 'some',
                 ],
                 <<<YAML
-map: {key: "value", a: "b"} # comment
-param: "some"
-YAML
+                    map: {key: "value", a: "b"} # comment
+                    param: "some"
+                    YAML,
             ],
             'mixed mapping with compact inline notation on one line' => [
                 [
@@ -2247,10 +2369,10 @@
                     'param' => 'some',
                 ],
                 <<<YAML
-map: {key: "value",
-a: "b"}
-param: "some"
-YAML
+                    map: {key: "value",
+                    a: "b"}
+                    param: "some"
+                    YAML,
             ],
             'nested collections containing strings with bracket chars' => [
                 [
@@ -2264,33 +2386,33 @@
                     ['foo' => 'bar}'],
                 ],
                 <<<YAML
-[
-    [
-        "]"
-    ],
-    [
-        "}"
-    ],
-    [
-        "ba[r"
-    ],
-    [
-        '[ba]r'
-    ],
-    [
-        "bar]"
-    ],
-    {
-        foo: "bar{"
-    },
-    {
-        foo: "b{ar}"
-    },
-    {
-        foo: 'bar}'
-    }
-]
-YAML
+                    [
+                        [
+                            "]"
+                        ],
+                        [
+                            "}"
+                        ],
+                        [
+                            "ba[r"
+                        ],
+                        [
+                            '[ba]r'
+                        ],
+                        [
+                            "bar]"
+                        ],
+                        {
+                            foo: "bar{"
+                        },
+                        {
+                            foo: "b{ar}"
+                        },
+                        {
+                            foo: 'bar}'
+                        }
+                    ]
+                    YAML,
             ],
             'escaped characters in quoted strings' => [
                 [
@@ -2304,14 +2426,14 @@
                     ['te"st]'],
                 ],
                 <<<YAML
-[
-    ["te\"st"],["test"],['te''st'],["te\"st]"],
-    ["te\"st"],
-    ["test"],
-    ['te''st'],
-    ["te\"st]"]
-]
-YAML
+                    [
+                        ["te\"st"],["test"],['te''st'],["te\"st]"],
+                        ["te\"st"],
+                        ["test"],
+                        ['te''st'],
+                        ["te\"st]"]
+                    ]
+                    YAML,
             ],
         ];
     }
@@ -2322,9 +2444,9 @@
         $this->expectExceptionMessage('Unable to parse at line 2 (near "foobar").');
 
         $yaml = <<<YAML
-{ foo: bar }
-foobar
-YAML;
+            { foo: bar }
+            foobar
+            YAML;
 
         $this->parser->parse($yaml);
     }
@@ -2335,8 +2457,8 @@
         $this->expectExceptionMessage('Unexpected token "baz" at line 1 (near "{ foo: bar } baz").');
 
         $yaml = <<<YAML
-{ foo: bar } baz
-YAML;
+            { foo: bar } baz
+            YAML;
 
         $this->parser->parse($yaml);
     }
@@ -2347,8 +2469,8 @@
         $this->expectExceptionMessage('Unexpected token ",bar," at line 1 (near "[\'foo\'],bar,").');
 
         $yaml = <<<YAML
-['foo'],bar,
-YAML;
+            ['foo'],bar,
+            YAML;
 
         $this->parser->parse($yaml);
     }
@@ -2382,35 +2504,35 @@
                     'quz' => new TaggedValue('long', 'this is a long text'),
                 ],
                 <<<YAML
-foo: !inline bar
-quz: !long >
-  this is a long
-  text
-YAML
+                    foo: !inline bar
+                    quz: !long >
+                      this is a long
+                      text
+                    YAML,
             ],
             'sequences' => [
                 [new TaggedValue('foo', ['yaml']), new TaggedValue('quz', ['bar'])],
                 <<<YAML
-- !foo
-    - yaml
-- !quz [bar]
-YAML
+                    - !foo
+                        - yaml
+                    - !quz [bar]
+                    YAML,
             ],
             'mappings' => [
                 new TaggedValue('foo', ['foo' => new TaggedValue('quz', ['bar']), 'quz' => new TaggedValue('foo', ['quz' => 'bar'])]),
                 <<<YAML
-!foo
-foo: !quz [bar]
-quz: !foo
-   quz: bar
-YAML
+                    !foo
+                    foo: !quz [bar]
+                    quz: !foo
+                       quz: bar
+                    YAML,
             ],
             'inline' => [
                 [new TaggedValue('foo', ['foo', 'bar']), new TaggedValue('quz', ['foo' => 'bar', 'quz' => new TaggedValue('bar', ['one' => 'bar'])])],
                 <<<YAML
-- !foo [foo, bar]
-- !quz {foo: bar, quz: !bar {one: bar}}
-YAML
+                    - !foo [foo, bar]
+                    - !quz {foo: bar, quz: !bar {one: bar}}
+                    YAML,
             ],
             'spaces-around-tag-value-in-sequence' => [
                 [new TaggedValue('foo', 'bar')],
@@ -2421,24 +2543,24 @@
                     [new TaggedValue('foo', ['foo', 'baz'])],
                 ],
                 <<<YAML
-- [!foo [
-    foo,
-    baz
-    #bar
-  ]]
-YAML
+                    - [!foo [
+                        foo,
+                        baz
+                        #bar
+                      ]]
+                    YAML,
             ],
             'with-comments-trailing-comma' => [
                 [
                     [new TaggedValue('foo', ['foo', 'baz'])],
                 ],
                 <<<YAML
-- [!foo [
-    foo,
-    baz,
-    #bar
-  ]]
-YAML
+                    - [!foo [
+                        foo,
+                        baz,
+                        #bar
+                      ]]
+                    YAML,
             ],
         ];
     }
@@ -2481,10 +2603,10 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Complex mappings are not supported at line 1 (near "? "1"").');
         $yaml = <<<YAML
-? "1"
-:
-  name: végétalien
-YAML;
+            ? "1"
+            :
+              name: végétalien
+            YAML;
 
         $this->parser->parse($yaml);
     }
@@ -2494,11 +2616,11 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Complex mappings are not supported at line 2 (near "? "1"").');
         $yaml = <<<YAML
-diet:
-  ? "1"
-  :
-    name: végétalien
-YAML;
+            diet:
+              ? "1"
+              :
+                name: végétalien
+            YAML;
 
         $this->parser->parse($yaml);
     }
@@ -2508,10 +2630,10 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Complex mappings are not supported at line 1 (near "- ? "1"").');
         $yaml = <<<YAML
-- ? "1"
-  :
-    name: végétalien
-YAML;
+            - ? "1"
+              :
+                name: végétalien
+            YAML;
 
         $this->parser->parse($yaml);
     }
@@ -2521,10 +2643,10 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Unable to parse at line 2 (near "  foo = bar").');
         $ini = <<<INI
-[parameters]
-  foo = bar
-  bar = %foo%
-INI;
+            [parameters]
+              foo = bar
+              bar = %foo%
+            INI;
 
         $this->parser->parse($ini);
     }
@@ -2574,29 +2696,29 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Reference "foo" does not exist at line 2');
         $yaml = <<<YAML
-foo: &foo
-    baz: foobar
-bar:
-    <<: *foo
-YAML;
+            foo: &foo
+                baz: foobar
+            bar:
+                <<: *foo
+            YAML;
         $this->parser->parse($yaml);
 
         $yaml = <<<YAML
-bar:
-    <<: *foo
-YAML;
+            bar:
+                <<: *foo
+            YAML;
         $this->parser->parse($yaml);
     }
 
     public function testPhpConstantTagMappingKey()
     {
         $yaml = <<<YAML
-transitions:
-    !php/const 'Symfony\Component\Yaml\Tests\B::FOO':
-        from:
-            - !php/const 'Symfony\Component\Yaml\Tests\B::BAR'
-        to: !php/const 'Symfony\Component\Yaml\Tests\B::BAZ'
-YAML;
+            transitions:
+                !php/const 'Symfony\Component\Yaml\Tests\B::FOO':
+                    from:
+                        - !php/const 'Symfony\Component\Yaml\Tests\B::BAR'
+                    to: !php/const 'Symfony\Component\Yaml\Tests\B::BAZ'
+            YAML;
         $expected = [
             'transitions' => [
                 'foo' => [
@@ -2633,13 +2755,13 @@
     public function testPhpConstantTagMappingAsScalarKey()
     {
         $yaml = <<<YAML
-map1:
-  - foo: 'value_0'
-    !php/const 'Symfony\Component\Yaml\Tests\B::BAR': 'value_1'
-map2:
-  - !php/const 'Symfony\Component\Yaml\Tests\B::FOO': 'value_0'
-    bar: 'value_1'
-YAML;
+            map1:
+              - foo: 'value_0'
+                !php/const 'Symfony\Component\Yaml\Tests\B::BAR': 'value_1'
+            map2:
+              - !php/const 'Symfony\Component\Yaml\Tests\B::FOO': 'value_0'
+                bar: 'value_1'
+            YAML;
         $this->assertSame([
             'map1' => [['foo' => 'value_0', 'bar' => 'value_1']],
             'map2' => [['foo' => 'value_0', 'bar' => 'value_1']],
@@ -2649,10 +2771,10 @@
     public function testTagMappingAsScalarKey()
     {
         $yaml = <<<YAML
-map1:
-  - !!str 0: 'value_0'
-    !!str 1: 'value_1'
-YAML;
+            map1:
+              - !!str 0: 'value_0'
+                !!str 1: 'value_1'
+            YAML;
         $this->assertSame([
             'map1' => [['0' => 'value_0', '1' => 'value_1']],
         ], $this->parser->parse($yaml));
@@ -2661,19 +2783,19 @@
     public function testMergeKeysWhenMappingsAreParsedAsObjects()
     {
         $yaml = <<<YAML
-foo: &FOO
-    bar: 1
-bar: &BAR
-    baz: 2
-    <<: *FOO
-baz:
-    baz_foo: 3
-    <<:
-        baz_bar: 4
-foobar:
-    bar: ~
-    <<: [*FOO, *BAR]
-YAML;
+            foo: &FOO
+                bar: 1
+            bar: &BAR
+                baz: 2
+                <<: *FOO
+            baz:
+                baz_foo: 3
+                <<:
+                    baz_bar: 4
+            foobar:
+                bar: ~
+                <<: [*FOO, *BAR]
+            YAML;
         $expected = (object) [
             'foo' => (object) [
                 'bar' => 1,
@@ -2727,7 +2849,7 @@
         }
 
         $file = __DIR__.'/Fixtures/not_readable.yml';
-        chmod($file, 0200);
+        chmod($file, 0o200);
 
         $this->parser->parseFile($file);
     }
@@ -2735,15 +2857,15 @@
     public function testParseReferencesOnMergeKeys()
     {
         $yaml = <<<YAML
-mergekeyrefdef:
-    a: foo
-    <<: &quux
-        b: bar
-        c: baz
-mergekeyderef:
-    d: quux
-    <<: *quux
-YAML;
+            mergekeyrefdef:
+                a: foo
+                <<: &quux
+                    b: bar
+                    c: baz
+            mergekeyderef:
+                d: quux
+                <<: *quux
+            YAML;
         $expected = [
             'mergekeyrefdef' => [
                 'a' => 'foo',
@@ -2763,15 +2885,15 @@
     public function testParseReferencesOnMergeKeysWithMappingsParsedAsObjects()
     {
         $yaml = <<<YAML
-mergekeyrefdef:
-    a: foo
-    <<: &quux
-        b: bar
-        c: baz
-mergekeyderef:
-    d: quux
-    <<: *quux
-YAML;
+            mergekeyrefdef:
+                a: foo
+                <<: &quux
+                    b: bar
+                    c: baz
+            mergekeyderef:
+                d: quux
+                <<: *quux
+            YAML;
         $expected = (object) [
             'mergekeyrefdef' => (object) [
                 'a' => 'foo',
@@ -2793,8 +2915,8 @@
         $this->expectException(ParseException::class);
         $this->expectExceptionMessage('Reference "foo" does not exist');
         $yaml = <<<EOE
-foo: { &foo { a: Steve, <<: *foo} }
-EOE;
+            foo: { &foo { a: Steve, <<: *foo} }
+            EOE;
         $this->parser->parse($yaml);
     }
 
@@ -2813,28 +2935,28 @@
         $tests = [];
 
         $yaml = <<<YAML
-foo:
-    - &foo
-      - &bar
-        bar: foobar
-        baz: *foo
-YAML;
+            foo:
+                - &foo
+                  - &bar
+                    bar: foobar
+                    baz: *foo
+            YAML;
         $tests['sequence'] = [$yaml];
 
         $yaml = <<<YAML
-foo: &foo
-    bar: &bar
-        foobar: baz
-        baz: *foo
-YAML;
+            foo: &foo
+                bar: &bar
+                    foobar: baz
+                    baz: *foo
+            YAML;
         $tests['mapping'] = [$yaml];
 
         $yaml = <<<YAML
-foo: &foo
-    bar: &bar
-        foobar: baz
-        <<: *foo
-YAML;
+            foo: &foo
+                bar: &bar
+                    foobar: baz
+                    <<: *foo
+            YAML;
         $tests['mapping with merge key'] = [$yaml];
 
         return $tests;
@@ -2843,18 +2965,18 @@
     public function testBlockScalarArray()
     {
         $yaml = <<<'YAML'
-anyOf:
-  - $ref: >-
-      #/string/bar
-anyOfMultiline:
-  - $ref: >-
-      #/string/bar
-      second line
-nested:
-  anyOf:
-    - $ref: >-
-        #/string/bar
-YAML;
+            anyOf:
+              - $ref: >-
+                  #/string/bar
+            anyOfMultiline:
+              - $ref: >-
+                  #/string/bar
+                  second line
+            nested:
+              anyOf:
+                - $ref: >-
+                    #/string/bar
+            YAML;
         $expected = [
             'anyOf' => [
                 0 => [
@@ -2891,11 +3013,11 @@
         $tests = [];
 
         $yaml = <<<YAML
-foo:
-  - bar: "foobar"
-    # A comment
-    baz: "foobaz"
-YAML;
+            foo:
+              - bar: "foobar"
+                # A comment
+                baz: "foobaz"
+            YAML;
         $expected = [
             'foo' => [
                 [
@@ -2907,11 +3029,11 @@
         $tests['comment line is first line in indented block'] = [$yaml, $expected];
 
         $yaml = <<<YAML
-foo:
-    - bar:
-        # comment
-        baz: [1, 2, 3]
-YAML;
+            foo:
+                - bar:
+                    # comment
+                    baz: [1, 2, 3]
+            YAML;
         $expected = [
             'foo' => [
                 [
@@ -2924,10 +3046,10 @@
         $tests['mapping value on new line starting with a comment line'] = [$yaml, $expected];
 
         $yaml = <<<YAML
-foo:
-  -
-    bar: foobar
-YAML;
+            foo:
+              -
+                bar: foobar
+            YAML;
         $expected = [
             'foo' => [
                 [
@@ -2938,10 +3060,10 @@
         $tests['mapping in sequence starting on a new line'] = [$yaml, $expected];
 
         $yaml = <<<YAML
-foo:
+            foo:
 
-    bar: baz
-YAML;
+                bar: baz
+            YAML;
         $expected = [
             'foo' => [
                 'bar' => 'baz',
@@ -2955,11 +3077,11 @@
     public function testMultiLineComment()
     {
         $yaml = <<<YAML
-parameters:
-    abc
+            parameters:
+                abc
 
-# Comment
-YAML;
+            # Comment
+            YAML;
 
         $this->assertSame(['parameters' => 'abc'], $this->parser->parse($yaml));
     }
@@ -2967,14 +3089,14 @@
     public function testParseValueWithModifiers()
     {
         $yaml = <<<YAML
-parameters:
-    abc: |+5 # plus five spaces indent
-         one
-         two
-         three
-         four
-         five
-YAML;
+            parameters:
+                abc: |+5 # plus five spaces indent
+                     one
+                     two
+                     three
+                     four
+                     five
+            YAML;
         $this->assertSame(
             [
                 'parameters' => [
@@ -2988,14 +3110,14 @@
     public function testParseValueWithNegativeModifiers()
     {
         $yaml = <<<YAML
-parameters:
-    abc: |-3 # minus
-       one
-       two
-       three
-       four
-       five
-YAML;
+            parameters:
+                abc: |-3 # minus
+                   one
+                   two
+                   three
+                   four
+                   five
+            YAML;
         $this->assertSame(
             [
                 'parameters' => [
@@ -3067,12 +3189,12 @@
     {
         $shortDocument = 'foo: bar';
         $longDocument = <<<YAML
-a:
-    b: |
-        row
-        row2
-c: d
-YAML;
+            a:
+                b: |
+                    row
+                    row2
+            c: d
+            YAML;
 
         // The first parsing set and fixed the totalNumberOfLines in the Parser before, so parsing the short document here
         // to reproduce the issue. If the issue would not have been fixed, the next assertion will fail
@@ -3086,11 +3208,11 @@
     public function testParseIdeographicSpaces()
     {
         $expected = <<<YAML
-unquoted: \u{3000}
-quoted: '\u{3000}'
-within_string: 'a　b'
-regular_space: 'a b'
-YAML;
+            unquoted: \u{3000}
+            quoted: '\u{3000}'
+            within_string: 'a　b'
+            regular_space: 'a b'
+            YAML;
         $this->assertSame([
             'unquoted' => '　',
             'quoted' => '　',
@@ -3104,6 +3226,130 @@
         $this->assertSame(['foo' => [null]], (new Parser())->parse("foo:\n-\n\n"));
     }
 
+    public function testParseRejectsDocumentsThatExceedTheDefaultNestingDepth()
+    {
+        $this->expectException(ParseException::class);
+        $this->expectExceptionMessage('Maximum nesting depth');
+
+        $yaml = "root:\n";
+        for ($i = 1; $i <= Parser::DEFAULT_MAX_NESTING_LEVEL + 1; ++$i) {
+            $yaml .= str_repeat('  ', $i).sprintf("level%d:\n", $i);
+        }
+
+        $this->parser->parse($yaml);
+    }
+
+    public function testParseRejectsDocumentsThatExceedTheConfiguredCollectionAliasLimit()
+    {
+        $parser = new Parser(Parser::DEFAULT_MAX_NESTING_LEVEL, 5);
+
+        $this->expectException(ParseException::class);
+        $this->expectExceptionMessage('Maximum number of collection aliases');
+
+        $yaml = <<<YAML
+a0: &a0 [foo]
+a1: &a1 [*a0, *a0, *a0]
+payload: [*a1, *a1, *a1]
+YAML;
+
+        $parser->parse($yaml);
+    }
+
+    public function testParseCountsTaggedValueCollectionAliases()
+    {
+        $parser = new Parser(Parser::DEFAULT_MAX_NESTING_LEVEL, 2);
+
+        $this->expectException(ParseException::class);
+        $this->expectExceptionMessage('Maximum number of collection aliases');
+
+        $yaml = <<<YAML
+a: &a !my_tag [foo, bar]
+b: *a
+c: *a
+d: *a
+YAML;
+
+        $parser->parse($yaml, Yaml::PARSE_CUSTOM_TAGS);
+    }
+
+    public function testParseAcceptsScalarAliasesWithoutCountingThem()
+    {
+        $parser = new Parser(Parser::DEFAULT_MAX_NESTING_LEVEL, 1);
+
+        $yaml = <<<YAML
+anchor: &val scalar_value
+a: *val
+b: *val
+c: *val
+d: *val
+YAML;
+
+        $result = $parser->parse($yaml);
+
+        $this->assertSame('scalar_value', $result['a']);
+        $this->assertSame('scalar_value', $result['d']);
+    }
+
+    public function testParseAcceptsLargeCollectionAliasedOnce()
+    {
+        $items = implode(', ', array_map(function ($i) { return "item$i"; }, range(1, 500)));
+        $yaml = <<<YAML
+defaults: &defaults [$items]
+a: *defaults
+YAML;
+
+        $result = $this->parser->parse($yaml);
+
+        $this->assertCount(500, $result['a']);
+    }
+
+    public function testParseRejectsBlockAliasesWhenDisabled()
+    {
+        $this->expectException(ParseException::class);
+        $this->expectExceptionMessage('Aliases are disabled');
+
+        $yaml = <<<YAML
+defaults: &defaults [foo, bar]
+a: *defaults
+YAML;
+
+        $this->parser->parse($yaml, Yaml::PARSE_EXCEPTION_ON_ALIAS);
+    }
+
+    public function testParseRejectsInlineAliasesWhenDisabled()
+    {
+        $this->expectException(ParseException::class);
+        $this->expectExceptionMessage('Aliases are disabled');
+
+        $yaml = <<<YAML
+defaults: &defaults [foo, bar]
+a: [*defaults]
+YAML;
+
+        $this->parser->parse($yaml, Yaml::PARSE_EXCEPTION_ON_ALIAS);
+    }
+
+    public function testParseHandlesLargeYamlHeaders()
+    {
+        $yaml = "%YAML:".str_repeat('1', 100000)."\nfoo: bar\n";
+
+        $this->assertSame(['foo' => 'bar'], $this->parser->parse($yaml));
+    }
+
+    public function testParseHandlesLargeLeadingComments()
+    {
+        $yaml = '#'.str_repeat('comment', 20000)."\nfoo: bar\n";
+
+        $this->assertSame(['foo' => 'bar'], $this->parser->parse($yaml));
+    }
+
+    public function testParseHandlesLargeDocumentMarkers()
+    {
+        $yaml = '--- '.str_repeat('header', 20000)."\nfoo: bar\n...   ";
+
+        $this->assertSame(['foo' => 'bar'], $this->parser->parse($yaml));
+    }
+
     private function assertSameData($expected, $actual)
     {
         $this->assertEquals($expected, $actual);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Tests/YamlTest.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Tests/YamlTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Tests/YamlTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Tests/YamlTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,8 @@
 namespace Symfony\Component\Yaml\Tests;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Yaml\Exception\ParseException;
+use Symfony\Component\Yaml\Parser;
 use Symfony\Component\Yaml\Yaml;
 
 class YamlTest extends TestCase
@@ -37,4 +39,34 @@
         $this->expectExceptionMessage('The indentation must be greater than zero');
         Yaml::dump(['lorem' => 'ipsum', 'dolor' => 'sit'], 2, -4);
     }
+
+    public function testParseAllowsConfiguringTheMaximumNestingLevel()
+    {
+        $yaml = "root:\n  child:\n    grandchild:\n      greatgrandchild: value\n";
+
+        $this->expectException(ParseException::class);
+        $this->expectExceptionMessage('Maximum nesting depth of 2 exceeded');
+
+        Yaml::parse($yaml, 0, 2);
+    }
+
+    public function testParseFileAllowsConfiguringTheMaximumCollectionAliasCount()
+    {
+        $file = tempnam(sys_get_temp_dir(), 'yaml_');
+
+        file_put_contents($file, <<<YAML
+defaults: &defaults [foo, bar]
+copy: *defaults
+YAML
+);
+
+        $this->expectException(ParseException::class);
+        $this->expectExceptionMessage('Maximum number of collection aliases (0) exceeded.');
+
+        try {
+            Yaml::parseFile($file, 0, Parser::DEFAULT_MAX_NESTING_LEVEL, 0);
+        } finally {
+            unlink($file);
+        }
+    }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Unescaper.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Unescaper.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Unescaper.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Unescaper.php	2026-05-20 10:56:49.000000000 +0200
@@ -84,7 +84,7 @@
             'x' => self::utf8chr(hexdec(substr($value, 2, 2))),
             'u' => self::utf8chr(hexdec(substr($value, 2, 4))),
             'U' => self::utf8chr(hexdec(substr($value, 2, 8))),
-            default => throw new ParseException(sprintf('Found unknown escape character "%s".', $value)),
+            default => throw new ParseException(\sprintf('Found unknown escape character "%s".', $value)),
         };
     }
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Yaml.php symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Yaml.php
--- symfony-6.4.21+dfsg/src/Symfony/Component/Yaml/Yaml.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Component/Yaml/Yaml.php	2026-05-20 10:56:49.000000000 +0200
@@ -35,6 +35,7 @@
     public const DUMP_EMPTY_ARRAY_AS_SEQUENCE = 1024;
     public const DUMP_NULL_AS_TILDE = 2048;
     public const DUMP_NUMERIC_KEY_AS_STRING = 4096;
+    public const PARSE_EXCEPTION_ON_ALIAS = 8192;
 
     /**
      * Parses a YAML file into a PHP value.
@@ -44,14 +45,16 @@
      *     $array = Yaml::parseFile('config.yml');
      *     print_r($array);
      *
-     * @param string $filename The path to the YAML file to be parsed
-     * @param int    $flags    A bit field of PARSE_* constants to customize the YAML parser behavior
+     * @param string $filename                 The path to the YAML file to be parsed
+     * @param int    $flags                    A bit field of PARSE_* constants to customize the YAML parser behavior
+     * @param int    $maxNestingLevel          The maximum nesting depth for nested YAML blocks
+     * @param int    $maxAliasesForCollections The maximum number of collection aliases to resolve
      *
      * @throws ParseException If the file could not be read or the YAML is not valid
      */
-    public static function parseFile(string $filename, int $flags = 0): mixed
+    public static function parseFile(string $filename, int $flags = 0, int $maxNestingLevel = Parser::DEFAULT_MAX_NESTING_LEVEL, int $maxAliasesForCollections = Parser::DEFAULT_MAX_ALIASES_FOR_COLLECTIONS): mixed
     {
-        $yaml = new Parser();
+        $yaml = new Parser($maxNestingLevel, $maxAliasesForCollections);
 
         return $yaml->parseFile($filename, $flags);
     }
@@ -65,14 +68,16 @@
      *   print_r($array);
      *  </code>
      *
-     * @param string $input A string containing YAML
-     * @param int    $flags A bit field of PARSE_* constants to customize the YAML parser behavior
+     * @param string $input                    A string containing YAML
+     * @param int    $flags                    A bit field of PARSE_* constants to customize the YAML parser behavior
+     * @param int    $maxNestingLevel          The maximum nesting depth for nested YAML blocks
+     * @param int    $maxAliasesForCollections The maximum number of collection aliases to resolve
      *
      * @throws ParseException If the YAML is not valid
      */
-    public static function parse(string $input, int $flags = 0): mixed
+    public static function parse(string $input, int $flags = 0, int $maxNestingLevel = Parser::DEFAULT_MAX_NESTING_LEVEL, int $maxAliasesForCollections = Parser::DEFAULT_MAX_ALIASES_FOR_COLLECTIONS): mixed
     {
-        $yaml = new Parser();
+        $yaml = new Parser($maxNestingLevel, $maxAliasesForCollections);
 
         return $yaml->parse($input, $flags);
     }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Contracts/Cache/CacheTrait.php symfony-6.4.40+dfsg/src/Symfony/Contracts/Cache/CacheTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Contracts/Cache/CacheTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Contracts/Cache/CacheTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -38,7 +38,7 @@
     private function doGet(CacheItemPoolInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null, ?LoggerInterface $logger = null): mixed
     {
         if (0 > $beta ??= 1.0) {
-            throw new class(sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta)) extends \InvalidArgumentException implements InvalidArgumentException {};
+            throw new class(\sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta)) extends \InvalidArgumentException implements InvalidArgumentException {};
         }
 
         $item = $pool->getItem($key);
@@ -54,7 +54,7 @@
                 $item->expiresAt(null);
                 $logger?->info('Item "{key}" elected for early recomputation {delta}s before its expiration', [
                     'key' => $key,
-                    'delta' => sprintf('%.1f', $expiry - $now),
+                    'delta' => \sprintf('%.1f', $expiry - $now),
                 ]);
             }
         }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Contracts/HttpClient/Test/HttpClientTestCase.php symfony-6.4.40+dfsg/src/Symfony/Contracts/HttpClient/Test/HttpClientTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Contracts/HttpClient/Test/HttpClientTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Contracts/HttpClient/Test/HttpClientTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -25,7 +25,7 @@
 {
     public static function setUpBeforeClass(): void
     {
-        if (!function_exists('ob_gzhandler')) {
+        if (!\function_exists('ob_gzhandler')) {
             static::markTestSkipped('The "ob_gzhandler" function is not available.');
         }
 
@@ -145,7 +145,7 @@
 
         $this->assertSame($firstContent, $secondContent);
 
-        $response = $client->request('GET', 'http://localhost:8057', ['buffer' => fn () => false]);
+        $response = $client->request('GET', 'http://localhost:8057', ['buffer' => static fn () => false]);
         $response->getContent();
 
         $this->expectException(TransportExceptionInterface::class);
@@ -156,7 +156,7 @@
     {
         $client = $this->getHttpClient(__FUNCTION__);
 
-        $response = $client->request('GET', 'http://localhost:8057', ['buffer' => function () use (&$response) {
+        $response = $client->request('GET', 'http://localhost:8057', ['buffer' => static function () use (&$response) {
             $response->cancel();
 
             return true;
@@ -172,7 +172,7 @@
     {
         $client = $this->getHttpClient(__FUNCTION__);
 
-        $response = $client->request('GET', 'http://localhost:8057', ['buffer' => function () {
+        $response = $client->request('GET', 'http://localhost:8057', ['buffer' => static function () {
             throw new \Exception('Boo.');
         }]);
 
@@ -323,7 +323,7 @@
         $this->expectException(TransportExceptionInterface::class);
 
         $response = $client->request('POST', 'http://localhost:8057/', [
-            'body' => function () { yield []; },
+            'body' => static function () { yield []; },
         ]);
 
         $response->getStatusCode();
@@ -351,7 +351,7 @@
         $response = $client->request('POST', 'http://localhost:8057/301', [
             'auth_basic' => 'foo:bar',
             'headers' => $headers,
-            'body' => function () {
+            'body' => static function () {
                 yield 'foo=bar';
             },
         ]);
@@ -375,9 +375,7 @@
             'Content-Type: application/json',
         ];
 
-        $filteredHeaders = array_values(array_filter($response->getInfo('response_headers'), function ($h) {
-            return \in_array(substr($h, 0, 4), ['HTTP', 'Loca', 'Cont'], true) && 'Content-Encoding: gzip' !== $h;
-        }));
+        $filteredHeaders = array_values(array_filter($response->getInfo('response_headers'), static fn ($h) => \in_array(substr($h, 0, 4), ['HTTP', 'Loca', 'Cont'], true) && 'Content-Encoding: gzip' !== $h));
 
         $this->assertSame($expected, $filteredHeaders);
     }
@@ -419,7 +417,7 @@
         $client = $this->getHttpClient(__FUNCTION__);
 
         $response = $client->request('POST', 'http://localhost:8057/307', [
-            'body' => function () {
+            'body' => static function () {
                 yield 'foo=bar';
             },
             'max_redirects' => 0,
@@ -463,9 +461,7 @@
             'Content-Type: application/json',
         ];
 
-        $filteredHeaders = array_values(array_filter($response->getInfo('response_headers'), function ($h) {
-            return \in_array(substr($h, 0, 4), ['HTTP', 'Loca', 'Cont'], true);
-        }));
+        $filteredHeaders = array_values(array_filter($response->getInfo('response_headers'), static fn ($h) => \in_array(substr($h, 0, 4), ['HTTP', 'Loca', 'Cont'], true)));
 
         $this->assertSame($expected, $filteredHeaders);
     }
@@ -547,7 +543,7 @@
         $response = $client->request('POST', 'http://localhost:8057/post', [
             'headers' => ['Content-Length' => 14],
             'body' => 'foo=0123456789',
-            'on_progress' => function (...$state) use (&$steps) { $steps[] = $state; },
+            'on_progress' => static function (...$state) use (&$steps) { $steps[] = $state; },
         ]);
 
         $body = $response->toArray();
@@ -607,7 +603,7 @@
         $client = $this->getHttpClient(__FUNCTION__);
 
         $response = $client->request('POST', 'http://localhost:8057/post', [
-            'body' => function () {
+            'body' => static function () {
                 yield 'foo';
                 yield '';
                 yield '=';
@@ -658,7 +654,7 @@
     {
         $client = $this->getHttpClient(__FUNCTION__);
         $response = $client->request('GET', 'http://localhost:8057/timeout-body', [
-            'on_progress' => function ($dlNow) {
+            'on_progress' => static function ($dlNow) {
                 if (0 < $dlNow) {
                     throw new \Exception('Aborting the request.');
                 }
@@ -682,7 +678,7 @@
     {
         $client = $this->getHttpClient(__FUNCTION__);
         $response = $client->request('GET', 'http://localhost:8057/timeout-body', [
-            'on_progress' => function ($dlNow) {
+            'on_progress' => static function ($dlNow) {
                 if (0 < $dlNow) {
                     throw new \Error('BUG.');
                 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Contracts/Service/ServiceLocatorTrait.php symfony-6.4.40+dfsg/src/Symfony/Contracts/Service/ServiceLocatorTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Contracts/Service/ServiceLocatorTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Contracts/Service/ServiceLocatorTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -91,16 +91,16 @@
         } else {
             $last = array_pop($alternatives);
             if ($alternatives) {
-                $message = sprintf('only knows about the "%s" and "%s" services.', implode('", "', $alternatives), $last);
+                $message = \sprintf('only knows about the "%s" and "%s" services.', implode('", "', $alternatives), $last);
             } else {
-                $message = sprintf('only knows about the "%s" service.', $last);
+                $message = \sprintf('only knows about the "%s" service.', $last);
             }
         }
 
         if ($this->loading) {
-            $message = sprintf('The service "%s" has a dependency on a non-existent service "%s". This locator %s', end($this->loading), $id, $message);
+            $message = \sprintf('The service "%s" has a dependency on a non-existent service "%s". This locator %s', end($this->loading), $id, $message);
         } else {
-            $message = sprintf('Service "%s" not found: the current service locator %s', $id, $message);
+            $message = \sprintf('Service "%s" not found: the current service locator %s', $id, $message);
         }
 
         return new class($message) extends \InvalidArgumentException implements NotFoundExceptionInterface {
@@ -109,7 +109,7 @@
 
     private function createCircularReferenceException(string $id, array $path): ContainerExceptionInterface
     {
-        return new class(sprintf('Circular reference detected for service "%s", path: "%s".', $id, implode(' -> ', $path))) extends \RuntimeException implements ContainerExceptionInterface {
+        return new class(\sprintf('Circular reference detected for service "%s", path: "%s".', $id, implode(' -> ', $path))) extends \RuntimeException implements ContainerExceptionInterface {
         };
     }
 }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Contracts/Service/ServiceSubscriberTrait.php symfony-6.4.40+dfsg/src/Symfony/Contracts/Service/ServiceSubscriberTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Contracts/Service/ServiceSubscriberTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Contracts/Service/ServiceSubscriberTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -40,14 +40,14 @@
             }
 
             if ($method->isStatic() || $method->isAbstract() || $method->isGenerator() || $method->isInternal() || $method->getNumberOfRequiredParameters()) {
-                throw new \LogicException(sprintf('Cannot use "%s" on method "%s::%s()" (can only be used on non-static, non-abstract methods with no parameters).', SubscribedService::class, self::class, $method->name));
+                throw new \LogicException(\sprintf('Cannot use "%s" on method "%s::%s()" (can only be used on non-static, non-abstract methods with no parameters).', SubscribedService::class, self::class, $method->name));
             }
 
             if (!$returnType = $method->getReturnType()) {
-                throw new \LogicException(sprintf('Cannot use "%s" on methods without a return type in "%s::%s()".', SubscribedService::class, $method->name, self::class));
+                throw new \LogicException(\sprintf('Cannot use "%s" on methods without a return type in "%s::%s()".', SubscribedService::class, $method->name, self::class));
             }
 
-            /* @var SubscribedService $attribute */
+            /** @var SubscribedService $attribute */
             $attribute = $attribute->newInstance();
             $attribute->key ??= self::class.'::'.$method->name;
             $attribute->type ??= $returnType instanceof \ReflectionNamedType ? $returnType->getName() : (string) $returnType;
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Contracts/Service/Test/ServiceLocatorTestCase.php symfony-6.4.40+dfsg/src/Symfony/Contracts/Service/Test/ServiceLocatorTestCase.php
--- symfony-6.4.21+dfsg/src/Symfony/Contracts/Service/Test/ServiceLocatorTestCase.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Contracts/Service/Test/ServiceLocatorTestCase.php	2026-05-20 10:56:49.000000000 +0200
@@ -27,9 +27,9 @@
     public function testHas()
     {
         $locator = $this->getServiceLocator([
-            'foo' => fn () => 'bar',
-            'bar' => fn () => 'baz',
-            fn () => 'dummy',
+            'foo' => static fn () => 'bar',
+            'bar' => static fn () => 'baz',
+            static fn () => 'dummy',
         ]);
 
         $this->assertTrue($locator->has('foo'));
@@ -40,8 +40,8 @@
     public function testGet()
     {
         $locator = $this->getServiceLocator([
-            'foo' => fn () => 'bar',
-            'bar' => fn () => 'baz',
+            'foo' => static fn () => 'bar',
+            'bar' => static fn () => 'baz',
         ]);
 
         $this->assertSame('bar', $locator->get('foo'));
@@ -52,7 +52,7 @@
     {
         $i = 0;
         $locator = $this->getServiceLocator([
-            'foo' => function () use (&$i) {
+            'foo' => static function () use (&$i) {
                 ++$i;
 
                 return 'bar';
@@ -71,7 +71,7 @@
             $this->expectExceptionMessage('The service "foo" has a dependency on a non-existent service "bar". This locator only knows about the "foo" service.');
         }
         $locator = $this->getServiceLocator([
-            'foo' => function () use (&$locator) { return $locator->get('bar'); },
+            'foo' => static function () use (&$locator) { return $locator->get('bar'); },
         ]);
 
         $locator->get('foo');
@@ -82,9 +82,9 @@
         $this->expectException(\Psr\Container\ContainerExceptionInterface::class);
         $this->expectExceptionMessage('Circular reference detected for service "bar", path: "bar -> baz -> bar".');
         $locator = $this->getServiceLocator([
-            'foo' => function () use (&$locator) { return $locator->get('bar'); },
-            'bar' => function () use (&$locator) { return $locator->get('baz'); },
-            'baz' => function () use (&$locator) { return $locator->get('bar'); },
+            'foo' => static function () use (&$locator) { return $locator->get('bar'); },
+            'bar' => static function () use (&$locator) { return $locator->get('baz'); },
+            'baz' => static function () use (&$locator) { return $locator->get('bar'); },
         ]);
 
         $locator->get('foo');
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Contracts/splitsh.json symfony-6.4.40+dfsg/src/Symfony/Contracts/splitsh.json
--- symfony-6.4.21+dfsg/src/Symfony/Contracts/splitsh.json	1970-01-01 01:00:00.000000000 +0100
+++ symfony-6.4.40+dfsg/src/Symfony/Contracts/splitsh.json	2026-05-20 10:56:49.000000000 +0200
@@ -0,0 +1,13 @@
+{
+    "subtrees": {
+        "cache-contracts": "Cache",
+        "deprecation-contracts": "Deprecation",
+        "event-dispatcher-contracts": "EventDispatcher",
+        "http-client-contracts": "HttpClient",
+        "service-contracts": "Service",
+        "translation-contracts": "Translation"
+    },
+    "defaults": {
+        "git_constraint": "<1.8.2"
+    }
+}
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Contracts/Tests/Cache/CacheTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Contracts/Tests/Cache/CacheTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Contracts/Tests/Cache/CacheTraitTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Contracts/Tests/Cache/CacheTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -43,9 +43,7 @@
         $cache->expects($this->once())
             ->method('save');
 
-        $callback = function (CacheItemInterface $item) {
-            return 'computed data';
-        };
+        $callback = static fn (CacheItemInterface $item) => 'computed data';
 
         $cache->get('key', $callback);
     }
@@ -101,22 +99,16 @@
         $cache->expects($this->once())
             ->method('save');
 
-        $callback = function (CacheItemInterface $item) {
-            return 'computed data';
-        };
+        $callback = static fn (CacheItemInterface $item) => 'computed data';
 
         $cache->get('key', $callback, \INF);
     }
 
     public function testExceptionOnNegativeBeta()
     {
-        $cache = $this->getMockBuilder(TestPool::class)
-            ->onlyMethods(['getItem', 'save'])
-            ->getMock();
+        $cache = new TestPool();
 
-        $callback = function (CacheItemInterface $item) {
-            return 'computed data';
-        };
+        $callback = static fn (CacheItemInterface $item) => 'computed data';
 
         $this->expectException(\InvalidArgumentException::class);
         $cache->get('key', $callback, -2);
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Contracts/Tests/Service/ServiceSubscriberTraitTest.php symfony-6.4.40+dfsg/src/Symfony/Contracts/Tests/Service/ServiceSubscriberTraitTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Contracts/Tests/Service/ServiceSubscriberTraitTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Contracts/Tests/Service/ServiceSubscriberTraitTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -49,7 +49,7 @@
         $container = new class([]) implements ContainerInterface {
             use ServiceLocatorTrait;
         };
-        $service = new class() extends ParentWithMagicCall {
+        $service = new class extends ParentWithMagicCall {
             use ServiceSubscriberTrait;
         };
 
@@ -62,7 +62,7 @@
         $container = new class([]) implements ContainerInterface {
             use ServiceLocatorTrait;
         };
-        $service = new class() {
+        $service = new class {
             use ServiceSubscriberTrait;
         };
 
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Contracts/Translation/Test/TranslatorTest.php symfony-6.4.40+dfsg/src/Symfony/Contracts/Translation/Test/TranslatorTest.php
--- symfony-6.4.21+dfsg/src/Symfony/Contracts/Translation/Test/TranslatorTest.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Contracts/Translation/Test/TranslatorTest.php	2026-05-20 10:56:49.000000000 +0200
@@ -12,6 +12,7 @@
 namespace Symfony\Contracts\Translation\Test;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Translation\TranslatableMessage;
 use Symfony\Contracts\Translation\TranslatorInterface;
 use Symfony\Contracts\Translation\TranslatorTrait;
 
@@ -45,7 +46,7 @@
 
     public function getTranslator(): TranslatorInterface
     {
-        return new class() implements TranslatorInterface {
+        return new class implements TranslatorInterface {
             use TranslatorTrait;
         };
     }
@@ -116,10 +117,12 @@
 
     public static function getTransTests()
     {
-        return [
-            ['Symfony is great!', 'Symfony is great!', []],
-            ['Symfony is awesome!', 'Symfony is %what%!', ['%what%' => 'awesome']],
-        ];
+        yield ['Symfony is great!', 'Symfony is great!', []];
+        yield ['Symfony is awesome!', 'Symfony is %what%!', ['%what%' => 'awesome']];
+
+        if (class_exists(TranslatableMessage::class)) {
+            yield ['He said "Symfony is awesome!".', 'He said "%what%".', ['%what%' => new TranslatableMessage('Symfony is %what%!', ['%what%' => 'awesome'])]];
+        }
     }
 
     public static function getTransChoiceTests()
@@ -365,7 +368,7 @@
 
     protected function generateTestData($langCodes)
     {
-        $translator = new class() {
+        $translator = new class {
             use TranslatorTrait {
                 getPluralizationRule as public;
             }
diff -Nru symfony-6.4.21+dfsg/src/Symfony/Contracts/Translation/TranslatorTrait.php symfony-6.4.40+dfsg/src/Symfony/Contracts/Translation/TranslatorTrait.php
--- symfony-6.4.21+dfsg/src/Symfony/Contracts/Translation/TranslatorTrait.php	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/src/Symfony/Contracts/Translation/TranslatorTrait.php	2026-05-20 10:56:49.000000000 +0200
@@ -41,6 +41,12 @@
             return '';
         }
 
+        foreach ($parameters as $k => $v) {
+            if ($v instanceof TranslatableInterface) {
+                $parameters[$k] = $v->trans($this, $locale);
+            }
+        }
+
         if (!isset($parameters['%count%']) || !is_numeric($parameters['%count%'])) {
             return strtr($id, $parameters);
         }
@@ -56,22 +62,22 @@
         }
 
         $intervalRegexp = <<<'EOF'
-/^(?P<interval>
-    ({\s*
-        (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*)
-    \s*})
-
-        |
-
-    (?P<left_delimiter>[\[\]])
-        \s*
-        (?P<left>-Inf|\-?\d+(\.\d+)?)
-        \s*,\s*
-        (?P<right>\+?Inf|\-?\d+(\.\d+)?)
-        \s*
-    (?P<right_delimiter>[\[\]])
-)\s*(?P<message>.*?)$/xs
-EOF;
+            /^(?P<interval>
+                ({\s*
+                    (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*)
+                \s*})
+
+                    |
+
+                (?P<left_delimiter>[\[\]])
+                    \s*
+                    (?P<left>-Inf|\-?\d+(\.\d+)?)
+                    \s*,\s*
+                    (?P<right>\+?Inf|\-?\d+(\.\d+)?)
+                    \s*
+                (?P<right_delimiter>[\[\]])
+            )\s*(?P<message>.*?)$/xs
+            EOF;
 
         $standardRules = [];
         foreach ($parts as $part) {
@@ -111,7 +117,7 @@
                 return strtr($standardRules[0], $parameters);
             }
 
-            $message = sprintf('Unable to choose a translation for "%s" with locale "%s" for value "%d". Double check that this translation has the correct plural options (e.g. "There is one apple|There are %%count%% apples").', $id, $locale, $number);
+            $message = \sprintf('Unable to choose a translation for "%s" with locale "%s" for value "%d". Double check that this translation has the correct plural options (e.g. "There is one apple|There are %%count%% apples").', $id, $locale, $number);
 
             if (class_exists(InvalidArgumentException::class)) {
                 throw new InvalidArgumentException($message);
diff -Nru symfony-6.4.21+dfsg/UPGRADE-6.4.md symfony-6.4.40+dfsg/UPGRADE-6.4.md
--- symfony-6.4.21+dfsg/UPGRADE-6.4.md	2025-05-02 10:46:49.000000000 +0200
+++ symfony-6.4.40+dfsg/UPGRADE-6.4.md	2026-05-20 10:56:49.000000000 +0200
@@ -96,7 +96,7 @@
 DoctrineBridge
 --------------
 
- * [BC Break] Add argument `$buildDir` to `ProxyCacheWarmer::warmUp()` 
+ * [BC Break] Add argument `$buildDir` to `ProxyCacheWarmer::warmUp()`
  * [BC Break] Add return type-hints to `EntityFactory`
  * Deprecate `DbalLogger`, use a middleware instead
  * Deprecate not constructing `DoctrineDataCollector` with an instance of `DebugDataHolder`
@@ -126,6 +126,7 @@
 ---------------
 
  * [BC break] Add native return type to `Translator` and to `Application::reset()`
+ * `AbstractController::render()` no longer calls `renderView()`
  * Deprecate the integration of Doctrine annotations, either uninstall the `doctrine/annotations` package or disable
    the integration by setting `framework.annotations` to `false`
  * Deprecate not setting some config options, their defaults will change in Symfony 7.0:
